--- linux-ein-5.4.0.orig/Documentation/ABI/stable/sysfs-driver-mlxreg-io
+++ linux-ein-5.4.0/Documentation/ABI/stable/sysfs-driver-mlxreg-io
@@ -29,13 +29,13 @@
 
 		The files are read only.
 
-What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/jtag_enable
+What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version
 
 Date:		November 2018
 KernelVersion:	5.0
 Contact:	Vadim Pasternak <vadimpmellanox.com>
 Description:	These files show with which CPLD versions have been burned
-		on LED board.
+		on LED or Gearbox board.
 
 		The files are read only.
 
@@ -121,6 +121,15 @@
 
 		The files are read only.
 
+What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version
+Date:		November 2018
+KernelVersion:	5.0
+Contact:	Vadim Pasternak <vadimpmellanox.com>
+Description:	These files show with which CPLD versions have been burned
+		on LED board.
+
+		The files are read only.
+
 Date:		June 2019
 KernelVersion:	5.3
 Contact:	Vadim Pasternak <vadimpmellanox.com>
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/debugfs-aufs
+++ linux-ein-5.4.0/Documentation/ABI/testing/debugfs-aufs
@@ -0,0 +1,55 @@
+What:		/debug/aufs/si_<id>/
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		Under /debug/aufs, a directory named si_<id> is created
+		per aufs mount, where <id> is a unique id generated
+		internally.
+
+What:		/debug/aufs/si_<id>/plink
+Date:		Apr 2013
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It has three lines and shows the information about the
+		pseudo-link. The first line is a single number
+		representing a number of buckets. The second line is a
+		number of pseudo-links per buckets (separated by a
+		blank). The last line is a single number representing a
+		total number of psedo-links.
+		When the aufs mount option 'noplink' is specified, it
+		will show "1\n0\n0\n".
+
+What:		/debug/aufs/si_<id>/xib
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the consumed blocks by xib (External Inode Number
+		Bitmap), its block size and file size.
+		When the aufs mount option 'noxino' is specified, it
+		will be empty. About XINO files, see the aufs manual.
+
+What:		/debug/aufs/si_<id>/xi0, xi1 ... xiN and xiN-N
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the consumed blocks by xino (External Inode Number
+		Translation Table), its link count, block size and file
+		size.
+		Due to the file size limit, there may exist multiple
+		xino files per branch.  In this case, "-N" is added to
+		the filename and it corresponds to the index of the
+		internal xino array.  "-0" is omitted.
+		When the aufs mount option 'noxino' is specified, Those
+		entries won't exist.  About XINO files, see the aufs
+		manual.
+
+What:		/debug/aufs/si_<id>/xigen
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the consumed blocks by xigen (External Inode
+		Generation Table), its block size and file size.
+		If CONFIG_AUFS_EXPORT is disabled, this entry will not
+		be created.
+		When the aufs mount option 'noxino' is specified, it
+		will be empty. About XINO files, see the aufs manual.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/debugfs-hisi-hpre
+++ linux-ein-5.4.0/Documentation/ABI/testing/debugfs-hisi-hpre
@@ -0,0 +1,57 @@
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/regs
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump debug registers from the HPRE cluster.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/cluster[0-3]/cluster_ctrl
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Write the HPRE core selection in the cluster into this file,
+		and then we can read the debug information of the core.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/rdclr_en
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    HPRE cores debug registers read clear control. 1 means enable
+		register read clear, otherwise 0. Writing to this file has no
+		functional effect, only enable or disable counters clear after
+		reading of these registers.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/current_qm
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One HPRE controller has one PF and multiple VFs, each function
+		has a QM. Select the QM which below qm refers to.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/regs
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump debug registers from the HPRE.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/qm/qm_regs
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump debug registers from the QM.
+		Available for PF and VF in host. VF in guest currently only
+		has one debug register.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/qm/current_q
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One QM may contain multiple queues. Select specific queue to
+		show its debug registers in above qm_regs.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_hpre/<bdf>/qm/clear_enable
+Date:           Sep 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    QM debug registers(qm_regs) read clear control. 1 means enable
+		register read clear, otherwise 0.
+		Writing to this file has no functional effect, only enable or
+		disable counters clear after reading of these registers.
+		Only available for PF.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/debugfs-hisi-sec
+++ linux-ein-5.4.0/Documentation/ABI/testing/debugfs-hisi-sec
@@ -0,0 +1,43 @@
+What:           /sys/kernel/debug/hisi_sec/<bdf>/sec_dfx
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump the debug registers of SEC cores.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/clear_enable
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Enabling/disabling of clear action after reading
+		the SEC debug registers.
+		0: disable, 1: enable.
+		Only available for PF, and take no other effect on SEC.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/current_qm
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One SEC controller has one PF and multiple VFs, each function
+		has a QM. This file can be used to select the QM which below
+		qm refers to.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/qm/qm_regs
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Dump of QM related debug registers.
+		Available for PF and VF in host. VF in guest currently only
+		has one debug register.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/qm/current_q
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    One QM of SEC may contain multiple queues. Select specific
+		queue to show its debug registers in above 'qm_regs'.
+		Only available for PF.
+
+What:           /sys/kernel/debug/hisi_sec/<bdf>/qm/clear_enable
+Date:           Oct 2019
+Contact:        linux-crypto@vger.kernel.org
+Description:    Enabling/disabling of clear action after reading
+		the SEC's QM debug registers.
+		0: disable, 1: enable.
+		Only available for PF, and take no other effect on SEC.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/evm
+++ linux-ein-5.4.0/Documentation/ABI/testing/evm
@@ -42,8 +42,30 @@
 		modification of EVM-protected metadata and
 		disable all further modification of policy
 
-		Note that once a key has been loaded, it will no longer be
-		possible to enable metadata modification.
+		Echoing a value is additive, the new value is added to the
+		existing initialization flags.
+
+		For example, after::
+
+		  echo 2 ><securityfs>/evm
+
+		another echo can be performed::
+
+		  echo 1 ><securityfs>/evm
+
+		and the resulting value will be 3.
+
+		Note that once an HMAC key has been loaded, it will no longer
+		be possible to enable metadata modification. Signaling that an
+		HMAC key has been loaded will clear the corresponding flag.
+		For example, if the current value is 6 (2 and 4 set)::
+
+		  echo 1 ><securityfs>/evm
+
+		will set the new value to 3 (4 cleared).
+
+		Loading an HMAC key is the only way to disable metadata
+		modification.
 
 		Until key loading has been signaled EVM can not create
 		or validate the 'security.evm' xattr, but returns
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/ima_policy
+++ linux-ein-5.4.0/Documentation/ABI/testing/ima_policy
@@ -25,6 +25,7 @@
 			lsm:	[[subj_user=] [subj_role=] [subj_type=]
 				 [obj_user=] [obj_role=] [obj_type=]]
 			option:	[[appraise_type=]] [template=] [permit_directio]
+				[appraise_flag=]
 		base: 	func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK][MODULE_CHECK]
 				[FIRMWARE_CHECK]
 				[KEXEC_KERNEL_CHECK] [KEXEC_INITRAMFS_CHECK]
@@ -38,6 +39,9 @@
 			fowner:= decimal value
 		lsm:  	are LSM specific
 		option:	appraise_type:= [imasig] [imasig|modsig]
+			appraise_flag:= [check_blacklist]
+			Currently, blacklist check is only for files signed with appended
+			signature.
 			template:= name of a defined IMA template type
 			(eg, ima-ng). Only valid when action is "measure".
 			pcr:= decimal value
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-ata
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-ata
@@ -107,13 +107,14 @@
 				described in ATA8 7.16 and 7.17. Only valid if
 				the device is not a PM.
 
-		pio_mode:	(RO) Transfer modes supported by the device when
-				in PIO mode. Mostly used by PATA device.
+		pio_mode:	(RO) PIO transfer mode used by the device.
+				Mostly used by PATA devices.
 
-		xfer_mode:	(RO) Current transfer mode
+		xfer_mode:	(RO) Current transfer mode. Mostly used by
+				PATA devices.
 
-		dma_mode:	(RO) Transfer modes supported by the device when
-				in DMA mode. Mostly used by PATA device.
+		dma_mode:	(RO) DMA transfer mode used by the device.
+				Mostly used by PATA devices.
 
 		class:		(RO) Device class. Can be "ata" for disk,
 				"atapi" for packet device, "pmp" for PM, or
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-aufs
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-aufs
@@ -0,0 +1,31 @@
+What:		/sys/fs/aufs/si_<id>/
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		Under /sys/fs/aufs, a directory named si_<id> is created
+		per aufs mount, where <id> is a unique id generated
+		internally.
+
+What:		/sys/fs/aufs/si_<id>/br0, br1 ... brN
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the abolute path of a member directory (which
+		is called branch) in aufs, and its permission.
+
+What:		/sys/fs/aufs/si_<id>/brid0, brid1 ... bridN
+Date:		July 2013
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the id of a member directory (which is called
+		branch) in aufs.
+
+What:		/sys/fs/aufs/si_<id>/xi_path
+Date:		March 2009
+Contact:	J. R. Okajima <hooanon05g@gmail.com>
+Description:
+		It shows the abolute path of XINO (External Inode Number
+		Bitmap, Translation Table and Generation Table) file
+		even if it is the default path.
+		When the aufs mount option 'noxino' is specified, it
+		will be empty. About XINO files, see the aufs manual.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-iio
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-bus-iio
@@ -138,7 +138,7 @@
 		Raw capacitance measurement from channel Y. Units after
 		application of scale and offset are nanofarads.
 
-What:		/sys/.../iio:deviceX/in_capacitanceY-in_capacitanceZ_raw
+What:		/sys/.../iio:deviceX/in_capacitanceY-capacitanceZ_raw
 KernelVersion:	3.2
 Contact:	linux-iio@vger.kernel.org
 Description:
@@ -1566,7 +1566,8 @@
 KernelVersion:	4.3
 Contact:	linux-iio@vger.kernel.org
 Description:
-		Raw (unscaled no offset etc.) percentage reading of a substance.
+		Raw (unscaled no offset etc.) reading of a substance. Units
+		after application of scale and offset are percents.
 
 What:		/sys/bus/iio/devices/iio:deviceX/in_resistance_raw
 What:		/sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-iio-vf610
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-bus-iio-vf610
@@ -1,4 +1,4 @@
-What:		/sys/bus/iio/devices/iio:deviceX/conversion_mode
+What:		/sys/bus/iio/devices/iio:deviceX/in_conversion_mode
 KernelVersion:	4.2
 Contact:	linux-iio@vger.kernel.org
 Description:
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-mei
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-bus-mei
@@ -4,7 +4,7 @@
 Contact:	Samuel Ortiz <sameo@linux.intel.com>
 		linux-mei@linux.intel.com
 Description:	Stores the same MODALIAS value emitted by uevent
-		Format: mei:<mei device name>:<device uuid>:
+		Format: mei:<mei device name>:<device uuid>:<protocol version>
 
 What:		/sys/bus/mei/devices/.../name
 Date:		May 2015
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-optee-devices
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-bus-optee-devices
@@ -0,0 +1,8 @@
+What:		/sys/bus/tee/devices/optee-ta-<uuid>/
+Date:           May 2020
+KernelVersion   5.8
+Contact:        op-tee@lists.trustedfirmware.org
+Description:
+		OP-TEE bus provides reference to registered drivers under this directory. The <uuid>
+		matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers
+		are free to create needed API under optee-ta-<uuid> directory.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-bus-pci
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-bus-pci
@@ -347,3 +347,16 @@
 		If the device has any Peer-to-Peer memory registered, this
 	        file contains a '1' if the memory has been published for
 		use outside the driver that owns the device.
+
+What:		/sys/bus/pci/devices/.../link/clkpm
+		/sys/bus/pci/devices/.../link/l0s_aspm
+		/sys/bus/pci/devices/.../link/l1_aspm
+		/sys/bus/pci/devices/.../link/l1_1_aspm
+		/sys/bus/pci/devices/.../link/l1_2_aspm
+		/sys/bus/pci/devices/.../link/l1_1_pcipm
+		/sys/bus/pci/devices/.../link/l1_2_pcipm
+Date:		October 2019
+Contact:	Heiner Kallweit <hkallweit1@gmail.com>
+Description:	If ASPM is supported for an endpoint, these files can be
+		used to disable or enable the individual power management
+		states. Write y/1/on to enable, n/0/off to disable.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-class-devfreq
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-class-devfreq
@@ -7,6 +7,13 @@
 		The name of devfreq object denoted as ... is same as the
 		name of device using devfreq.
 
+What:		/sys/class/devfreq/.../name
+Date:		November 2019
+Contact:	Chanwoo Choi <cw00.choi@samsung.com>
+Description:
+		The /sys/class/devfreq/.../name shows the name of device
+		of the corresponding devfreq object.
+
 What:		/sys/class/devfreq/.../governor
 Date:		September 2011
 Contact:	MyungJoo Ham <myungjoo.ham@samsung.com>
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-devices-system-cpu
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-devices-system-cpu
@@ -480,14 +480,17 @@
 		cpu_capacity: capacity of cpu#.
 
 What:		/sys/devices/system/cpu/vulnerabilities
+		/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
+		/sys/devices/system/cpu/vulnerabilities/itlb_multihit
+		/sys/devices/system/cpu/vulnerabilities/l1tf
+		/sys/devices/system/cpu/vulnerabilities/mds
 		/sys/devices/system/cpu/vulnerabilities/meltdown
+		/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
+		/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
 		/sys/devices/system/cpu/vulnerabilities/spectre_v1
 		/sys/devices/system/cpu/vulnerabilities/spectre_v2
-		/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
-		/sys/devices/system/cpu/vulnerabilities/l1tf
-		/sys/devices/system/cpu/vulnerabilities/mds
+		/sys/devices/system/cpu/vulnerabilities/srbds
 		/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
-		/sys/devices/system/cpu/vulnerabilities/itlb_multihit
 Date:		January 2018
 Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
 Description:	Information about CPU vulnerabilities
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-kernel-oops_count
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-kernel-oops_count
@@ -0,0 +1,6 @@
+What:		/sys/kernel/oops_count
+Date:		November 2022
+KernelVersion:	6.2.0
+Contact:	Linux Kernel Hardening List <linux-hardening@vger.kernel.org>
+Description:
+		Shows how many times the system has Oopsed since last boot.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-kernel-warn_count
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-kernel-warn_count
@@ -0,0 +1,6 @@
+What:		/sys/kernel/warn_count
+Date:		November 2022
+KernelVersion:	6.2.0
+Contact:	Linux Kernel Hardening List <linux-hardening@vger.kernel.org>
+Description:
+		Shows how many times the system has Warned since last boot.
--- linux-ein-5.4.0.orig/Documentation/ABI/testing/sysfs-secvar
+++ linux-ein-5.4.0/Documentation/ABI/testing/sysfs-secvar
@@ -0,0 +1,46 @@
+What:		/sys/firmware/secvar
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	This directory is created if the POWER firmware supports OS
+		secureboot, thereby secure variables. It exposes interface
+		for reading/writing the secure variables
+
+What:		/sys/firmware/secvar/vars
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	This directory lists all the secure variables that are supported
+		by the firmware.
+
+What:		/sys/firmware/secvar/format
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	A string indicating which backend is in use by the firmware.
+		This determines the format of the variable and the accepted
+		format of variable updates.
+
+What:		/sys/firmware/secvar/vars/<variable name>
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	Each secure variable is represented as a directory named as
+		<variable_name>. The variable name is unique and is in ASCII
+		representation. The data and size can be determined by reading
+		their respective attribute files.
+
+What:		/sys/firmware/secvar/vars/<variable_name>/size
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	An integer representation of the size of the content of the
+		variable. In other words, it represents the size of the data.
+
+What:		/sys/firmware/secvar/vars/<variable_name>/data
+Date:		August 2019
+Contact:	Nayna Jain h<nayna@linux.ibm.com>
+Description:	A read-only file containing the value of the variable. The size
+		of the file represents the maximum size of the variable data.
+
+What:		/sys/firmware/secvar/vars/<variable_name>/update
+Date:		August 2019
+Contact:	Nayna Jain <nayna@linux.ibm.com>
+Description:	A write-only file that is used to submit the new value for the
+		variable. The size of the file represents the maximum size of
+		the variable data that can be written.
--- linux-ein-5.4.0.orig/Documentation/DMA-attributes.txt
+++ linux-ein-5.4.0/Documentation/DMA-attributes.txt
@@ -5,24 +5,6 @@
 This document describes the semantics of the DMA attributes that are
 defined in linux/dma-mapping.h.
 
-DMA_ATTR_WRITE_BARRIER
-----------------------
-
-DMA_ATTR_WRITE_BARRIER is a (write) barrier attribute for DMA.  DMA
-to a memory region with the DMA_ATTR_WRITE_BARRIER attribute forces
-all pending DMA writes to complete, and thus provides a mechanism to
-strictly order DMA from a device across all intervening busses and
-bridges.  This barrier is not specific to a particular type of
-interconnect, it applies to the system as a whole, and so its
-implementation must account for the idiosyncrasies of the system all
-the way from the DMA device to memory.
-
-As an example of a situation where DMA_ATTR_WRITE_BARRIER would be
-useful, suppose that a device does a DMA write to indicate that data is
-ready and available in memory.  The DMA of the "completion indication"
-could race with data DMA.  Mapping the memory used for completion
-indications with DMA_ATTR_WRITE_BARRIER would prevent the race.
-
 DMA_ATTR_WEAK_ORDERING
 ----------------------
 
--- linux-ein-5.4.0.orig/Documentation/accounting/psi.rst
+++ linux-ein-5.4.0/Documentation/accounting/psi.rst
@@ -90,7 +90,8 @@
 for the same psi metric can be specified. However for each trigger a separate
 file descriptor is required to be able to poll it separately from others,
 therefore for each trigger a separate open() syscall should be made even
-when opening the same psi interface file.
+when opening the same psi interface file. Write operations to a file descriptor
+with an already existing psi trigger will fail with EBUSY.
 
 Monitors activate only when system enters stall state for the monitored
 psi metric and deactivates upon exit from the stall state. While system is
--- linux-ein-5.4.0.orig/Documentation/admin-guide/cgroup-v1/memory.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/cgroup-v1/memory.rst
@@ -82,6 +82,8 @@
  memory.swappiness		     set/show swappiness parameter of vmscan
 				     (See sysctl's vm.swappiness)
  memory.move_charge_at_immigrate     set/show controls of moving charges
+                                     This knob is deprecated and shouldn't be
+                                     used.
  memory.oom_control		     set/show oom controls.
  memory.numa_stat		     show the number of memory usage per numa
 				     node
@@ -745,8 +747,15 @@
        It is recommended to set the soft limit always below the hard limit,
        otherwise the hard limit will take precedence.
 
-8. Move charges at task migration
-=================================
+8. Move charges at task migration (DEPRECATED!)
+===============================================
+
+THIS IS DEPRECATED!
+
+It's expensive and unreliable! It's better practice to launch workload
+tasks directly from inside their target cgroup. Use dedicated workload
+cgroups to allow fine-grained policy adjustments without having to
+move physical pages between control domains.
 
 Users can move charges associated with a task along with task migration, that
 is, uncharge task's pages from the old cgroup and charge them to the new cgroup.
--- linux-ein-5.4.0.orig/Documentation/admin-guide/device-mapper/dm-integrity.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/device-mapper/dm-integrity.rst
@@ -177,6 +177,12 @@
 	The bitmap flush interval in milliseconds. The metadata buffers
 	are synchronized when this interval expires.
 
+legacy_recalculate
+	Allow recalculating of volumes with HMAC keys. This is disabled by
+	default for security reasons - an attacker could modify the volume,
+	set recalc_sector to zero, and the kernel would not detect the
+	modification.
+
 
 The journal mode (D/J), buffer_sectors, journal_watermark, commit_time can
 be changed when reloading the target (load an inactive table and swap the
--- linux-ein-5.4.0.orig/Documentation/admin-guide/device-mapper/index.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/device-mapper/index.rst
@@ -8,6 +8,7 @@
     cache-policies
     cache
     delay
+    dm-clone
     dm-crypt
     dm-flakey
     dm-init
--- linux-ein-5.4.0.orig/Documentation/admin-guide/devices.txt
+++ linux-ein-5.4.0/Documentation/admin-guide/devices.txt
@@ -3002,10 +3002,10 @@
 		65 = /dev/infiniband/issm1     Second InfiniBand IsSM device
 		  ...
 		127 = /dev/infiniband/issm63    63rd InfiniBand IsSM device
-		128 = /dev/infiniband/uverbs0   First InfiniBand verbs device
-		129 = /dev/infiniband/uverbs1   Second InfiniBand verbs device
+		192 = /dev/infiniband/uverbs0   First InfiniBand verbs device
+		193 = /dev/infiniband/uverbs1   Second InfiniBand verbs device
 		  ...
-		159 = /dev/infiniband/uverbs31  31st InfiniBand verbs device
+		223 = /dev/infiniband/uverbs31  31st InfiniBand verbs device
 
  232 char	Biometric Devices
 		0 = /dev/biometric/sensor0/fingerprint	first fingerprint sensor on first device
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/cross-thread-rsb.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/cross-thread-rsb.rst
@@ -0,0 +1,92 @@
+
+.. SPDX-License-Identifier: GPL-2.0
+
+Cross-Thread Return Address Predictions
+=======================================
+
+Certain AMD and Hygon processors are subject to a cross-thread return address
+predictions vulnerability. When running in SMT mode and one sibling thread
+transitions out of C0 state, the other sibling thread could use return target
+predictions from the sibling thread that transitioned out of C0.
+
+The Spectre v2 mitigations protect the Linux kernel, as it fills the return
+address prediction entries with safe targets when context switching to the idle
+thread. However, KVM does allow a VMM to prevent exiting guest mode when
+transitioning out of C0. This could result in a guest-controlled return target
+being consumed by the sibling thread.
+
+Affected processors
+-------------------
+
+The following CPUs are vulnerable:
+
+    - AMD Family 17h processors
+    - Hygon Family 18h processors
+
+Related CVEs
+------------
+
+The following CVE entry is related to this issue:
+
+   ==============  =======================================
+   CVE-2022-27672  Cross-Thread Return Address Predictions
+   ==============  =======================================
+
+Problem
+-------
+
+Affected SMT-capable processors support 1T and 2T modes of execution when SMT
+is enabled. In 2T mode, both threads in a core are executing code. For the
+processor core to enter 1T mode, it is required that one of the threads
+requests to transition out of the C0 state. This can be communicated with the
+HLT instruction or with an MWAIT instruction that requests non-C0.
+When the thread re-enters the C0 state, the processor transitions back
+to 2T mode, assuming the other thread is also still in C0 state.
+
+In affected processors, the return address predictor (RAP) is partitioned
+depending on the SMT mode. For instance, in 2T mode each thread uses a private
+16-entry RAP, but in 1T mode, the active thread uses a 32-entry RAP. Upon
+transition between 1T/2T mode, the RAP contents are not modified but the RAP
+pointers (which control the next return target to use for predictions) may
+change. This behavior may result in return targets from one SMT thread being
+used by RET predictions in the sibling thread following a 1T/2T switch. In
+particular, a RET instruction executed immediately after a transition to 1T may
+use a return target from the thread that just became idle. In theory, this
+could lead to information disclosure if the return targets used do not come
+from trustworthy code.
+
+Attack scenarios
+----------------
+
+An attack can be mounted on affected processors by performing a series of CALL
+instructions with targeted return locations and then transitioning out of C0
+state.
+
+Mitigation mechanism
+--------------------
+
+Before entering idle state, the kernel context switches to the idle thread. The
+context switch fills the RAP entries (referred to as the RSB in Linux) with safe
+targets by performing a sequence of CALL instructions.
+
+Prevent a guest VM from directly putting the processor into an idle state by
+intercepting HLT and MWAIT instructions.
+
+Both mitigations are required to fully address this issue.
+
+Mitigation control on the kernel command line
+---------------------------------------------
+
+Use existing Spectre v2 mitigations that will fill the RSB on context switch.
+
+Mitigation control for KVM - module parameter
+---------------------------------------------
+
+By default, the KVM hypervisor mitigates this issue by intercepting guest
+attempts to transition out of C0. A VMM can use the KVM_CAP_X86_DISABLE_EXITS
+capability to override those interceptions, but since this is not common, the
+mitigation that covers this path is not enabled by default.
+
+The mitigation for the KVM_CAP_X86_DISABLE_EXITS capability can be turned on
+using the boolean module parameter mitigate_smt_rsb, e.g.:
+        kvm.mitigate_smt_rsb=1
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
@@ -0,0 +1,109 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+GDS - Gather Data Sampling
+==========================
+
+Gather Data Sampling is a hardware vulnerability which allows unprivileged
+speculative access to data which was previously stored in vector registers.
+
+Problem
+-------
+When a gather instruction performs loads from memory, different data elements
+are merged into the destination vector register. However, when a gather
+instruction that is transiently executed encounters a fault, stale data from
+architectural or internal vector registers may get transiently forwarded to the
+destination vector register instead. This will allow a malicious attacker to
+infer stale data using typical side channel techniques like cache timing
+attacks. GDS is a purely sampling-based attack.
+
+The attacker uses gather instructions to infer the stale vector register data.
+The victim does not need to do anything special other than use the vector
+registers. The victim does not need to use gather instructions to be
+vulnerable.
+
+Because the buffers are shared between Hyper-Threads cross Hyper-Thread attacks
+are possible.
+
+Attack scenarios
+----------------
+Without mitigation, GDS can infer stale data across virtually all
+permission boundaries:
+
+	Non-enclaves can infer SGX enclave data
+	Userspace can infer kernel data
+	Guests can infer data from hosts
+	Guest can infer guest from other guests
+	Users can infer data from other users
+
+Because of this, it is important to ensure that the mitigation stays enabled in
+lower-privilege contexts like guests and when running outside SGX enclaves.
+
+The hardware enforces the mitigation for SGX. Likewise, VMMs should  ensure
+that guests are not allowed to disable the GDS mitigation. If a host erred and
+allowed this, a guest could theoretically disable GDS mitigation, mount an
+attack, and re-enable it.
+
+Mitigation mechanism
+--------------------
+This issue is mitigated in microcode. The microcode defines the following new
+bits:
+
+ ================================   ===   ============================
+ IA32_ARCH_CAPABILITIES[GDS_CTRL]   R/O   Enumerates GDS vulnerability
+                                          and mitigation support.
+ IA32_ARCH_CAPABILITIES[GDS_NO]     R/O   Processor is not vulnerable.
+ IA32_MCU_OPT_CTRL[GDS_MITG_DIS]    R/W   Disables the mitigation
+                                          0 by default.
+ IA32_MCU_OPT_CTRL[GDS_MITG_LOCK]   R/W   Locks GDS_MITG_DIS=0. Writes
+                                          to GDS_MITG_DIS are ignored
+                                          Can't be cleared once set.
+ ================================   ===   ============================
+
+GDS can also be mitigated on systems that don't have updated microcode by
+disabling AVX. This can be done by setting gather_data_sampling="force" or
+"clearcpuid=avx" on the kernel command-line.
+
+If used, these options will disable AVX use by turning off XSAVE YMM support.
+However, the processor will still enumerate AVX support.  Userspace that
+does not follow proper AVX enumeration to check both AVX *and* XSAVE YMM
+support will break.
+
+Mitigation control on the kernel command line
+---------------------------------------------
+The mitigation can be disabled by setting "gather_data_sampling=off" or
+"mitigations=off" on the kernel command line. Not specifying either will default
+to the mitigation being enabled. Specifying "gather_data_sampling=force" will
+use the microcode mitigation when available or disable AVX on affected systems
+where the microcode hasn't been updated to include the mitigation.
+
+GDS System Information
+------------------------
+The kernel provides vulnerability status information through sysfs. For
+GDS this can be accessed by the following sysfs file:
+
+/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
+
+The possible values contained in this file are:
+
+ ============================== =============================================
+ Not affected                   Processor not vulnerable.
+ Vulnerable                     Processor vulnerable and mitigation disabled.
+ Vulnerable: No microcode       Processor vulnerable and microcode is missing
+                                mitigation.
+ Mitigation: AVX disabled,
+ no microcode                   Processor is vulnerable and microcode is missing
+                                mitigation. AVX disabled as mitigation.
+ Mitigation: Microcode          Processor is vulnerable and mitigation is in
+                                effect.
+ Mitigation: Microcode (locked) Processor is vulnerable and mitigation is in
+                                effect and cannot be disabled.
+ Unknown: Dependent on
+ hypervisor status              Running on a virtual guest processor that is
+                                affected but with no way to know if host
+                                processor is mitigated or vulnerable.
+ ============================== =============================================
+
+GDS Default mitigation
+----------------------
+The updated microcode will enable the mitigation by default. The kernel's
+default action is to leave the mitigation enabled.
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/index.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/index.rst
@@ -14,3 +14,7 @@
    mds
    tsx_async_abort
    multihit.rst
+   special-register-buffer-data-sampling.rst
+   processor_mmio_stale_data.rst
+   cross-thread-rsb.rst
+   gather_data_sampling.rst
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/mds.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/mds.rst
@@ -265,8 +265,11 @@
 
   ============  =============================================================
 
-Not specifying this option is equivalent to "mds=full".
-
+Not specifying this option is equivalent to "mds=full". For processors
+that are affected by both TAA (TSX Asynchronous Abort) and MDS,
+specifying just "mds=off" without an accompanying "tsx_async_abort=off"
+will have no effect as the same mitigation is used for both
+vulnerabilities.
 
 Mitigation selection guide
 --------------------------
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
@@ -0,0 +1,260 @@
+=========================================
+Processor MMIO Stale Data Vulnerabilities
+=========================================
+
+Processor MMIO Stale Data Vulnerabilities are a class of memory-mapped I/O
+(MMIO) vulnerabilities that can expose data. The sequences of operations for
+exposing data range from simple to very complex. Because most of the
+vulnerabilities require the attacker to have access to MMIO, many environments
+are not affected. System environments using virtualization where MMIO access is
+provided to untrusted guests may need mitigation. These vulnerabilities are
+not transient execution attacks. However, these vulnerabilities may propagate
+stale data into core fill buffers where the data can subsequently be inferred
+by an unmitigated transient execution attack. Mitigation for these
+vulnerabilities includes a combination of microcode update and software
+changes, depending on the platform and usage model. Some of these mitigations
+are similar to those used to mitigate Microarchitectural Data Sampling (MDS) or
+those used to mitigate Special Register Buffer Data Sampling (SRBDS).
+
+Data Propagators
+================
+Propagators are operations that result in stale data being copied or moved from
+one microarchitectural buffer or register to another. Processor MMIO Stale Data
+Vulnerabilities are operations that may result in stale data being directly
+read into an architectural, software-visible state or sampled from a buffer or
+register.
+
+Fill Buffer Stale Data Propagator (FBSDP)
+-----------------------------------------
+Stale data may propagate from fill buffers (FB) into the non-coherent portion
+of the uncore on some non-coherent writes. Fill buffer propagation by itself
+does not make stale data architecturally visible. Stale data must be propagated
+to a location where it is subject to reading or sampling.
+
+Sideband Stale Data Propagator (SSDP)
+-------------------------------------
+The sideband stale data propagator (SSDP) is limited to the client (including
+Intel Xeon server E3) uncore implementation. The sideband response buffer is
+shared by all client cores. For non-coherent reads that go to sideband
+destinations, the uncore logic returns 64 bytes of data to the core, including
+both requested data and unrequested stale data, from a transaction buffer and
+the sideband response buffer. As a result, stale data from the sideband
+response and transaction buffers may now reside in a core fill buffer.
+
+Primary Stale Data Propagator (PSDP)
+------------------------------------
+The primary stale data propagator (PSDP) is limited to the client (including
+Intel Xeon server E3) uncore implementation. Similar to the sideband response
+buffer, the primary response buffer is shared by all client cores. For some
+processors, MMIO primary reads will return 64 bytes of data to the core fill
+buffer including both requested data and unrequested stale data. This is
+similar to the sideband stale data propagator.
+
+Vulnerabilities
+===============
+Device Register Partial Write (DRPW) (CVE-2022-21166)
+-----------------------------------------------------
+Some endpoint MMIO registers incorrectly handle writes that are smaller than
+the register size. Instead of aborting the write or only copying the correct
+subset of bytes (for example, 2 bytes for a 2-byte write), more bytes than
+specified by the write transaction may be written to the register. On
+processors affected by FBSDP, this may expose stale data from the fill buffers
+of the core that created the write transaction.
+
+Shared Buffers Data Sampling (SBDS) (CVE-2022-21125)
+----------------------------------------------------
+After propagators may have moved data around the uncore and copied stale data
+into client core fill buffers, processors affected by MFBDS can leak data from
+the fill buffer. It is limited to the client (including Intel Xeon server E3)
+uncore implementation.
+
+Shared Buffers Data Read (SBDR) (CVE-2022-21123)
+------------------------------------------------
+It is similar to Shared Buffer Data Sampling (SBDS) except that the data is
+directly read into the architectural software-visible state. It is limited to
+the client (including Intel Xeon server E3) uncore implementation.
+
+Affected Processors
+===================
+Not all the CPUs are affected by all the variants. For instance, most
+processors for the server market (excluding Intel Xeon E3 processors) are
+impacted by only Device Register Partial Write (DRPW).
+
+Below is the list of affected Intel processors [#f1]_:
+
+   ===================  ============  =========
+   Common name          Family_Model  Steppings
+   ===================  ============  =========
+   HASWELL_X            06_3FH        2,4
+   SKYLAKE_L            06_4EH        3
+   BROADWELL_X          06_4FH        All
+   SKYLAKE_X            06_55H        3,4,6,7,11
+   BROADWELL_D          06_56H        3,4,5
+   SKYLAKE              06_5EH        3
+   ICELAKE_X            06_6AH        4,5,6
+   ICELAKE_D            06_6CH        1
+   ICELAKE_L            06_7EH        5
+   ATOM_TREMONT_D       06_86H        All
+   LAKEFIELD            06_8AH        1
+   KABYLAKE_L           06_8EH        9 to 12
+   ATOM_TREMONT         06_96H        1
+   ATOM_TREMONT_L       06_9CH        0
+   KABYLAKE             06_9EH        9 to 13
+   COMETLAKE            06_A5H        2,3,5
+   COMETLAKE_L          06_A6H        0,1
+   ROCKETLAKE           06_A7H        1
+   ===================  ============  =========
+
+If a CPU is in the affected processor list, but not affected by a variant, it
+is indicated by new bits in MSR IA32_ARCH_CAPABILITIES. As described in a later
+section, mitigation largely remains the same for all the variants, i.e. to
+clear the CPU fill buffers via VERW instruction.
+
+New bits in MSRs
+================
+Newer processors and microcode update on existing affected processors added new
+bits to IA32_ARCH_CAPABILITIES MSR. These bits can be used to enumerate
+specific variants of Processor MMIO Stale Data vulnerabilities and mitigation
+capability.
+
+MSR IA32_ARCH_CAPABILITIES
+--------------------------
+Bit 13 - SBDR_SSDP_NO - When set, processor is not affected by either the
+	 Shared Buffers Data Read (SBDR) vulnerability or the sideband stale
+	 data propagator (SSDP).
+Bit 14 - FBSDP_NO - When set, processor is not affected by the Fill Buffer
+	 Stale Data Propagator (FBSDP).
+Bit 15 - PSDP_NO - When set, processor is not affected by Primary Stale Data
+	 Propagator (PSDP).
+Bit 17 - FB_CLEAR - When set, VERW instruction will overwrite CPU fill buffer
+	 values as part of MD_CLEAR operations. Processors that do not
+	 enumerate MDS_NO (meaning they are affected by MDS) but that do
+	 enumerate support for both L1D_FLUSH and MD_CLEAR implicitly enumerate
+	 FB_CLEAR as part of their MD_CLEAR support.
+Bit 18 - FB_CLEAR_CTRL - Processor supports read and write to MSR
+	 IA32_MCU_OPT_CTRL[FB_CLEAR_DIS]. On such processors, the FB_CLEAR_DIS
+	 bit can be set to cause the VERW instruction to not perform the
+	 FB_CLEAR action. Not all processors that support FB_CLEAR will support
+	 FB_CLEAR_CTRL.
+
+MSR IA32_MCU_OPT_CTRL
+---------------------
+Bit 3 - FB_CLEAR_DIS - When set, VERW instruction does not perform the FB_CLEAR
+action. This may be useful to reduce the performance impact of FB_CLEAR in
+cases where system software deems it warranted (for example, when performance
+is more critical, or the untrusted software has no MMIO access). Note that
+FB_CLEAR_DIS has no impact on enumeration (for example, it does not change
+FB_CLEAR or MD_CLEAR enumeration) and it may not be supported on all processors
+that enumerate FB_CLEAR.
+
+Mitigation
+==========
+Like MDS, all variants of Processor MMIO Stale Data vulnerabilities  have the
+same mitigation strategy to force the CPU to clear the affected buffers before
+an attacker can extract the secrets.
+
+This is achieved by using the otherwise unused and obsolete VERW instruction in
+combination with a microcode update. The microcode clears the affected CPU
+buffers when the VERW instruction is executed.
+
+Kernel reuses the MDS function to invoke the buffer clearing:
+
+	mds_clear_cpu_buffers()
+
+On MDS affected CPUs, the kernel already invokes CPU buffer clear on
+kernel/userspace, hypervisor/guest and C-state (idle) transitions. No
+additional mitigation is needed on such CPUs.
+
+For CPUs not affected by MDS or TAA, mitigation is needed only for the attacker
+with MMIO capability. Therefore, VERW is not required for kernel/userspace. For
+virtualization case, VERW is only needed at VMENTER for a guest with MMIO
+capability.
+
+Mitigation points
+-----------------
+Return to user space
+^^^^^^^^^^^^^^^^^^^^
+Same mitigation as MDS when affected by MDS/TAA, otherwise no mitigation
+needed.
+
+C-State transition
+^^^^^^^^^^^^^^^^^^
+Control register writes by CPU during C-state transition can propagate data
+from fill buffer to uncore buffers. Execute VERW before C-state transition to
+clear CPU fill buffers.
+
+Guest entry point
+^^^^^^^^^^^^^^^^^
+Same mitigation as MDS when processor is also affected by MDS/TAA, otherwise
+execute VERW at VMENTER only for MMIO capable guests. On CPUs not affected by
+MDS/TAA, guest without MMIO access cannot extract secrets using Processor MMIO
+Stale Data vulnerabilities, so there is no need to execute VERW for such guests.
+
+Mitigation control on the kernel command line
+---------------------------------------------
+The kernel command line allows to control the Processor MMIO Stale Data
+mitigations at boot time with the option "mmio_stale_data=". The valid
+arguments for this option are:
+
+  ==========  =================================================================
+  full        If the CPU is vulnerable, enable mitigation; CPU buffer clearing
+              on exit to userspace and when entering a VM. Idle transitions are
+              protected as well. It does not automatically disable SMT.
+  full,nosmt  Same as full, with SMT disabled on vulnerable CPUs. This is the
+              complete mitigation.
+  off         Disables mitigation completely.
+  ==========  =================================================================
+
+If the CPU is affected and mmio_stale_data=off is not supplied on the kernel
+command line, then the kernel selects the appropriate mitigation.
+
+Mitigation status information
+-----------------------------
+The Linux kernel provides a sysfs interface to enumerate the current
+vulnerability status of the system: whether the system is vulnerable, and
+which mitigations are active. The relevant sysfs file is:
+
+	/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
+
+The possible values in this file are:
+
+  .. list-table::
+
+     * - 'Not affected'
+       - The processor is not vulnerable
+     * - 'Vulnerable'
+       - The processor is vulnerable, but no mitigation enabled
+     * - 'Vulnerable: Clear CPU buffers attempted, no microcode'
+       - The processor is vulnerable, but microcode is not updated. The
+         mitigation is enabled on a best effort basis.
+     * - 'Mitigation: Clear CPU buffers'
+       - The processor is vulnerable and the CPU buffer clearing mitigation is
+         enabled.
+     * - 'Unknown: No mitigations'
+       - The processor vulnerability status is unknown because it is
+	 out of Servicing period. Mitigation is not attempted.
+
+Definitions:
+------------
+
+Servicing period: The process of providing functional and security updates to
+Intel processors or platforms, utilizing the Intel Platform Update (IPU)
+process or other similar mechanisms.
+
+End of Servicing Updates (ESU): ESU is the date at which Intel will no
+longer provide Servicing, such as through IPU or other similar update
+processes. ESU dates will typically be aligned to end of quarter.
+
+If the processor is vulnerable then the following information is appended to
+the above information:
+
+  ========================  ===========================================
+  'SMT vulnerable'          SMT is enabled
+  'SMT disabled'            SMT is disabled
+  'SMT Host state unknown'  Kernel runs in a VM, Host SMT state unknown
+  ========================  ===========================================
+
+References
+----------
+.. [#f1] Affected Processors
+   https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/processors-affected-consolidated-product-cpu-model.html
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst
@@ -0,0 +1,149 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+SRBDS - Special Register Buffer Data Sampling
+=============================================
+
+SRBDS is a hardware vulnerability that allows MDS :doc:`mds` techniques to
+infer values returned from special register accesses.  Special register
+accesses are accesses to off core registers.  According to Intel's evaluation,
+the special register reads that have a security expectation of privacy are
+RDRAND, RDSEED and SGX EGETKEY.
+
+When RDRAND, RDSEED and EGETKEY instructions are used, the data is moved
+to the core through the special register mechanism that is susceptible
+to MDS attacks.
+
+Affected processors
+--------------------
+Core models (desktop, mobile, Xeon-E3) that implement RDRAND and/or RDSEED may
+be affected.
+
+A processor is affected by SRBDS if its Family_Model and stepping is
+in the following list, with the exception of the listed processors
+exporting MDS_NO while Intel TSX is available yet not enabled. The
+latter class of processors are only affected when Intel TSX is enabled
+by software using TSX_CTRL_MSR otherwise they are not affected.
+
+  =============  ============  ========
+  common name    Family_Model  Stepping
+  =============  ============  ========
+  IvyBridge      06_3AH        All
+
+  Haswell        06_3CH        All
+  Haswell_L      06_45H        All
+  Haswell_G      06_46H        All
+
+  Broadwell_G    06_47H        All
+  Broadwell      06_3DH        All
+
+  Skylake_L      06_4EH        All
+  Skylake        06_5EH        All
+
+  Kabylake_L     06_8EH        <= 0xC
+  Kabylake       06_9EH        <= 0xD
+  =============  ============  ========
+
+Related CVEs
+------------
+
+The following CVE entry is related to this SRBDS issue:
+
+    ==============  =====  =====================================
+    CVE-2020-0543   SRBDS  Special Register Buffer Data Sampling
+    ==============  =====  =====================================
+
+Attack scenarios
+----------------
+An unprivileged user can extract values returned from RDRAND and RDSEED
+executed on another core or sibling thread using MDS techniques.
+
+
+Mitigation mechanism
+-------------------
+Intel will release microcode updates that modify the RDRAND, RDSEED, and
+EGETKEY instructions to overwrite secret special register data in the shared
+staging buffer before the secret data can be accessed by another logical
+processor.
+
+During execution of the RDRAND, RDSEED, or EGETKEY instructions, off-core
+accesses from other logical processors will be delayed until the special
+register read is complete and the secret data in the shared staging buffer is
+overwritten.
+
+This has three effects on performance:
+
+#. RDRAND, RDSEED, or EGETKEY instructions have higher latency.
+
+#. Executing RDRAND at the same time on multiple logical processors will be
+   serialized, resulting in an overall reduction in the maximum RDRAND
+   bandwidth.
+
+#. Executing RDRAND, RDSEED or EGETKEY will delay memory accesses from other
+   logical processors that miss their core caches, with an impact similar to
+   legacy locked cache-line-split accesses.
+
+The microcode updates provide an opt-out mechanism (RNGDS_MITG_DIS) to disable
+the mitigation for RDRAND and RDSEED instructions executed outside of Intel
+Software Guard Extensions (Intel SGX) enclaves. On logical processors that
+disable the mitigation using this opt-out mechanism, RDRAND and RDSEED do not
+take longer to execute and do not impact performance of sibling logical
+processors memory accesses. The opt-out mechanism does not affect Intel SGX
+enclaves (including execution of RDRAND or RDSEED inside an enclave, as well
+as EGETKEY execution).
+
+IA32_MCU_OPT_CTRL MSR Definition
+--------------------------------
+Along with the mitigation for this issue, Intel added a new thread-scope
+IA32_MCU_OPT_CTRL MSR, (address 0x123). The presence of this MSR and
+RNGDS_MITG_DIS (bit 0) is enumerated by CPUID.(EAX=07H,ECX=0).EDX[SRBDS_CTRL =
+9]==1. This MSR is introduced through the microcode update.
+
+Setting IA32_MCU_OPT_CTRL[0] (RNGDS_MITG_DIS) to 1 for a logical processor
+disables the mitigation for RDRAND and RDSEED executed outside of an Intel SGX
+enclave on that logical processor. Opting out of the mitigation for a
+particular logical processor does not affect the RDRAND and RDSEED mitigations
+for other logical processors.
+
+Note that inside of an Intel SGX enclave, the mitigation is applied regardless
+of the value of RNGDS_MITG_DS.
+
+Mitigation control on the kernel command line
+---------------------------------------------
+The kernel command line allows control over the SRBDS mitigation at boot time
+with the option "srbds=".  The option for this is:
+
+  ============= =============================================================
+  off           This option disables SRBDS mitigation for RDRAND and RDSEED on
+                affected platforms.
+  ============= =============================================================
+
+SRBDS System Information
+-----------------------
+The Linux kernel provides vulnerability status information through sysfs.  For
+SRBDS this can be accessed by the following sysfs file:
+/sys/devices/system/cpu/vulnerabilities/srbds
+
+The possible values contained in this file are:
+
+ ============================== =============================================
+ Not affected                   Processor not vulnerable
+ Vulnerable                     Processor vulnerable and mitigation disabled
+ Vulnerable: No microcode       Processor vulnerable and microcode is missing
+                                mitigation
+ Mitigation: Microcode          Processor is vulnerable and mitigation is in
+                                effect.
+ Mitigation: TSX disabled       Processor is only vulnerable when TSX is
+                                enabled while this system was booted with TSX
+                                disabled.
+ Unknown: Dependent on
+ hypervisor status              Running on virtual guest processor that is
+                                affected but with no way to know if host
+                                processor is mitigated or vulnerable.
+ ============================== =============================================
+
+SRBDS Default mitigation
+------------------------
+This new microcode serializes processor access during execution of RDRAND,
+RDSEED ensures that the shared buffer is overwritten before it is released for
+reuse.  Use the "srbds=off" kernel command line to disable the mitigation for
+RDRAND and RDSEED.
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/spectre.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/spectre.rst
@@ -60,8 +60,8 @@
 Spectre variant 1 attacks take advantage of speculative execution of
 conditional branches, while Spectre variant 2 attacks use speculative
 execution of indirect branches to leak privileged memory.
-See :ref:`[1] <spec_ref1>` :ref:`[5] <spec_ref5>` :ref:`[7] <spec_ref7>`
-:ref:`[10] <spec_ref10>` :ref:`[11] <spec_ref11>`.
+See :ref:`[1] <spec_ref1>` :ref:`[5] <spec_ref5>` :ref:`[6] <spec_ref6>`
+:ref:`[7] <spec_ref7>` :ref:`[10] <spec_ref10>` :ref:`[11] <spec_ref11>`.
 
 Spectre variant 1 (Bounds Check Bypass)
 ---------------------------------------
@@ -131,6 +131,19 @@
 speculative execution's side effects left in level 1 cache to infer the
 victim's data.
 
+Yet another variant 2 attack vector is for the attacker to poison the
+Branch History Buffer (BHB) to speculatively steer an indirect branch
+to a specific Branch Target Buffer (BTB) entry, even if the entry isn't
+associated with the source address of the indirect branch. Specifically,
+the BHB might be shared across privilege levels even in the presence of
+Enhanced IBRS.
+
+Currently the only known real-world BHB attack vector is via
+unprivileged eBPF. Therefore, it's highly recommended to not enable
+unprivileged eBPF, especially when eIBRS is used (without retpolines).
+For a full mitigation against BHB attacks, it's recommended to use
+retpolines (or eIBRS combined with retpolines).
+
 Attack scenarios
 ----------------
 
@@ -364,13 +377,15 @@
 
   - Kernel status:
 
-  ====================================  =================================
-  'Not affected'                        The processor is not vulnerable
-  'Vulnerable'                          Vulnerable, no mitigation
-  'Mitigation: Full generic retpoline'  Software-focused mitigation
-  'Mitigation: Full AMD retpoline'      AMD-specific software mitigation
-  'Mitigation: Enhanced IBRS'           Hardware-focused mitigation
-  ====================================  =================================
+  ========================================  =================================
+  'Not affected'                            The processor is not vulnerable
+  'Mitigation: None'                        Vulnerable, no mitigation
+  'Mitigation: Retpolines'                  Use Retpoline thunks
+  'Mitigation: LFENCE'                      Use LFENCE instructions
+  'Mitigation: Enhanced IBRS'               Hardware-focused mitigation
+  'Mitigation: Enhanced IBRS + Retpolines'  Hardware-focused + Retpolines
+  'Mitigation: Enhanced IBRS + LFENCE'      Hardware-focused + LFENCE
+  ========================================  =================================
 
   - Firmware status: Show if Indirect Branch Restricted Speculation (IBRS) is
     used to protect against Spectre variant 2 attacks when calling firmware (x86 only).
@@ -407,6 +422,14 @@
   'RSB filling'   Protection of RSB on context switch enabled
   =============   ===========================================
 
+  - EIBRS Post-barrier Return Stack Buffer (PBRSB) protection status:
+
+  ===========================  =======================================================
+  'PBRSB-eIBRS: SW sequence'   CPU is affected and protection of RSB on VMEXIT enabled
+  'PBRSB-eIBRS: Vulnerable'    CPU is vulnerable
+  'PBRSB-eIBRS: Not affected'  CPU is not affected by PBRSB
+  ===========================  =======================================================
+
 Full mitigation might require a microcode update from the CPU
 vendor. When the necessary microcode is not available, the kernel will
 report vulnerability.
@@ -456,8 +479,16 @@
    On Intel Skylake-era systems the mitigation covers most, but not all,
    cases. See :ref:`[3] <spec_ref3>` for more details.
 
-   On CPUs with hardware mitigation for Spectre variant 2 (e.g. Enhanced
-   IBRS on x86), retpoline is automatically disabled at run time.
+   On CPUs with hardware mitigation for Spectre variant 2 (e.g. IBRS
+   or enhanced IBRS on x86), retpoline is automatically disabled at run time.
+
+   Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at
+   boot, by setting the IBRS bit, and they're automatically protected against
+   Spectre v2 variant attacks, including cross-thread branch target injections
+   on SMT systems (STIBP). In other words, eIBRS enables STIBP too.
+
+   Legacy IBRS systems clear the IBRS bit on exit to userspace and
+   therefore explicitly enable STIBP for that
 
    The retpoline mitigation is turned on by default on vulnerable
    CPUs. It can be forced on or off by the administrator
@@ -468,7 +499,7 @@
    before invoking any firmware code to prevent Spectre variant 2 exploits
    using the firmware.
 
-   Using kernel address space randomization (CONFIG_RANDOMIZE_SLAB=y
+   Using kernel address space randomization (CONFIG_RANDOMIZE_BASE=y
    and CONFIG_SLAB_FREELIST_RANDOM=y in the kernel configuration) makes
    attacks on the kernel generally more difficult.
 
@@ -481,9 +512,12 @@
    For Spectre variant 2 mitigation, individual user programs
    can be compiled with return trampolines for indirect branches.
    This protects them from consuming poisoned entries in the branch
-   target buffer left by malicious software.  Alternatively, the
-   programs can disable their indirect branch speculation via prctl()
-   (See :ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
+   target buffer left by malicious software.
+
+   On legacy IBRS systems, at return to userspace, implicit STIBP is disabled
+   because the kernel clears the IBRS bit. In this case, the userspace programs
+   can disable indirect branch speculation via prctl() (See
+   :ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
    On x86, this will turn on STIBP to guard against attacks from the
    sibling thread when the user program is running, and use IBPB to
    flush the branch target buffer when switching to/from the program.
@@ -584,12 +618,13 @@
 
 		Specific mitigations can also be selected manually:
 
-		retpoline
-					replace indirect branches
-		retpoline,generic
-					google's original retpoline
-		retpoline,amd
-					AMD-specific minimal thunk
+                retpoline               auto pick between generic,lfence
+                retpoline,generic       Retpolines
+                retpoline,lfence        LFENCE; indirect branch
+                retpoline,amd           alias for retpoline,lfence
+                eibrs                   enhanced IBRS
+                eibrs,retpoline         enhanced IBRS + Retpolines
+                eibrs,lfence            enhanced IBRS + LFENCE
 
 		Not specifying this option is equivalent to
 		spectre_v2=auto.
@@ -730,7 +765,7 @@
 
 .. _spec_ref6:
 
-[6] `Software techniques for managing speculation on AMD processors <https://developer.amd.com/wp-content/resources/90343-B_SoftwareTechniquesforManagingSpeculation_WP_7-18Update_FNL.pdf>`_.
+[6] `Software techniques for managing speculation on AMD processors <https://developer.amd.com/wp-content/resources/Managing-Speculation-on-AMD-Processors.pdf>`_.
 
 ARM white papers:
 
--- linux-ein-5.4.0.orig/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst
@@ -174,7 +174,10 @@
                 CPU is not vulnerable to cross-thread TAA attacks.
   ============  =============================================================
 
-Not specifying this option is equivalent to "tsx_async_abort=full".
+Not specifying this option is equivalent to "tsx_async_abort=full". For
+processors that are affected by both TAA and MDS, specifying just
+"tsx_async_abort=off" without an accompanying "mds=off" will have no
+effect as the same mitigation is used for both vulnerabilities.
 
 The kernel command line also allows to control the TSX feature using the
 parameter "tsx=" on CPUs which support TSX control. MSR_IA32_TSX_CTRL is used
--- linux-ein-5.4.0.orig/Documentation/admin-guide/iostats.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/iostats.rst
@@ -99,7 +99,7 @@
 
     Since 5.0 this field counts jiffies when at least one request was
     started or completed. If request runs more than 2 jiffies then some
-    I/O time will not be accounted unless there are other requests.
+    I/O time might be not accounted in case of concurrent requests.
 
 Field 11 -- weighted # of milliseconds spent doing I/Os
     This field is incremented at each I/O start, I/O completion, I/O
@@ -133,6 +133,9 @@
 summed to) and the result given to the user.  There is no convenient
 user interface for accessing the per-CPU counters themselves.
 
+Since 4.19 request times are measured with nanoseconds precision and
+truncated to milliseconds before showing in this interface.
+
 Disks vs Partitions
 -------------------
 
--- linux-ein-5.4.0.orig/Documentation/admin-guide/kdump/vmcoreinfo.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/kdump/vmcoreinfo.rst
@@ -393,6 +393,17 @@
 The kernel randomization offset. Used to compute the page offset. If
 KASLR is disabled, this value is zero.
 
+TCR_EL1.T1SZ
+------------
+
+Indicates the size offset of the memory region addressed by TTBR1_EL1.
+The region size is 2^(64-T1SZ) bytes.
+
+TTBR1_EL1 is the table base address register specified by ARMv8-A
+architecture which is used to lookup the page-tables for the Virtual
+addresses in the higher VA range (refer to ARMv8 ARM document for
+more details).
+
 arm
 ===
 
--- linux-ein-5.4.0.orig/Documentation/admin-guide/kernel-parameters.txt
+++ linux-ein-5.4.0/Documentation/admin-guide/kernel-parameters.txt
@@ -113,7 +113,7 @@
 			the GPE dispatcher.
 			This facility can be used to prevent such uncontrolled
 			GPE floodings.
-			Format: <int>
+			Format: <byte>
 
 	acpi_no_auto_serialize	[HW,ACPI]
 			Disable auto-serialization of AML methods
@@ -136,6 +136,10 @@
 			dynamic table installation which will install SSDT
 			tables to /sys/firmware/acpi/tables/dynamic.
 
+	acpi_no_watchdog	[HW,ACPI,WDT]
+			Ignore the ACPI-based watchdog interface (WDAT) and let
+			a native driver control the watchdog device instead.
+
 	acpi_rsdp=	[ACPI,EFI,KEXEC]
 			Pass the RSDP address to the kernel, mostly used
 			on machines running EFI runtime service to boot the
@@ -563,7 +567,13 @@
 			loops can be debugged more effectively on production
 			systems.
 
-	clearcpuid=BITNUM [X86]
+	clocksource.max_cswd_read_retries= [KNL]
+			Number of clocksource_watchdog() retries due to
+			external delays before the clock will be marked
+			unstable.  Defaults to three retries, that is,
+			four attempts to read the clock under test.
+
+	clearcpuid=BITNUM[,BITNUM...] [X86]
 			Disable CPUID feature X for the kernel. See
 			arch/x86/include/asm/cpufeatures.h for the valid bit
 			numbers. Note the Linux specific bits are not necessarily
@@ -680,6 +690,10 @@
 			0: default value, disable debugging
 			1: enable debugging at boot time
 
+	cpufreq_driver= [X86] Allow only the named cpu frequency scaling driver
+			to register. Example: cpufreq_driver=powernow-k8
+			Format: { none | STRING }
+
 	cpuidle.off=1	[CPU_IDLE]
 			disable the cpuidle sub-system
 
@@ -815,10 +829,6 @@
 
 	debugpat	[X86] Enable PAT debugging
 
-	decnet.addr=	[HW,NET]
-			Format: <area>[,<node>]
-			See also Documentation/networking/decnet.txt.
-
 	default_hugepagesz=
 			[same as hugepagesz=] The size of the default
 			HugeTLB page size. This is the size represented by
@@ -836,6 +846,18 @@
 			dump out devices still on the deferred probe list after
 			retrying.
 
+	dfltcc=		[HW,S390]
+			Format: { on | off | def_only | inf_only | always }
+			on:       s390 zlib hardware support for compression on
+			          level 1 and decompression (default)
+			off:      No s390 zlib hardware support
+			def_only: s390 zlib hardware support for deflate
+			          only (compression on level 1)
+			inf_only: s390 zlib hardware support for inflate
+			          only (decompression)
+			always:   Same as 'on' but ignores the selected compression
+			          level always using hardware support (used for debugging)
+
 	dhash_entries=	[KNL]
 			Set number of hash buckets for dentry cache.
 
@@ -1330,6 +1352,26 @@
 			Format: off | on
 			default: on
 
+	gather_data_sampling=
+			[X86,INTEL] Control the Gather Data Sampling (GDS)
+			mitigation.
+
+			Gather Data Sampling is a hardware vulnerability which
+			allows unprivileged speculative access to data which was
+			previously stored in vector registers.
+
+			This issue is mitigated by default in updated microcode.
+			The mitigation may have a performance impact but can be
+			disabled. On systems without the microcode mitigation
+			disabling AVX serves as a mitigation.
+
+			force:	Disable AVX to mitigate systems without
+				microcode mitigation. No effect if the microcode
+				mitigation is present. Known to cause crashes in
+				userspace with buggy AVX enumeration.
+
+			off:	Disable GDS mitigation.
+
 	gcov_persist=	[GCOV] When non-zero (default), profiling data for
 			kernel modules is saved and remains accessible via
 			debugfs, even when the module is unloaded/reloaded.
@@ -1477,6 +1519,8 @@
 			architectures force reset to be always executed
 	i8042.unlock	[HW] Unlock (ignore) the keylock
 	i8042.kbdreset	[HW] Reset device connected to KBD port
+	i8042.probe_defer
+			[HW] Allow deferred probing upon i8042 probe errors
 
 	i810=		[HW,DRM]
 
@@ -1932,24 +1976,57 @@
 
 	ivrs_ioapic	[HW,X86_64]
 			Provide an override to the IOAPIC-ID<->DEVICE-ID
-			mapping provided in the IVRS ACPI table. For
-			example, to map IOAPIC-ID decimal 10 to
-			PCI device 00:14.0 write the parameter as:
+			mapping provided in the IVRS ACPI table.
+			By default, PCI segment is 0, and can be omitted.
+
+			For example, to map IOAPIC-ID decimal 10 to
+			PCI segment 0x1 and PCI device 00:14.0,
+			write the parameter as:
+				ivrs_ioapic=10@0001:00:14.0
+
+			Deprecated formats:
+			* To map IOAPIC-ID decimal 10 to PCI device 00:14.0
+			  write the parameter as:
 				ivrs_ioapic[10]=00:14.0
+			* To map IOAPIC-ID decimal 10 to PCI segment 0x1 and
+			  PCI device 00:14.0 write the parameter as:
+				ivrs_ioapic[10]=0001:00:14.0
 
 	ivrs_hpet	[HW,X86_64]
 			Provide an override to the HPET-ID<->DEVICE-ID
-			mapping provided in the IVRS ACPI table. For
-			example, to map HPET-ID decimal 0 to
-			PCI device 00:14.0 write the parameter as:
+			mapping provided in the IVRS ACPI table.
+			By default, PCI segment is 0, and can be omitted.
+
+			For example, to map HPET-ID decimal 10 to
+			PCI segment 0x1 and PCI device 00:14.0,
+			write the parameter as:
+				ivrs_hpet=10@0001:00:14.0
+
+			Deprecated formats:
+			* To map HPET-ID decimal 0 to PCI device 00:14.0
+			  write the parameter as:
 				ivrs_hpet[0]=00:14.0
+			* To map HPET-ID decimal 10 to PCI segment 0x1 and
+			  PCI device 00:14.0 write the parameter as:
+				ivrs_ioapic[10]=0001:00:14.0
 
 	ivrs_acpihid	[HW,X86_64]
 			Provide an override to the ACPI-HID:UID<->DEVICE-ID
-			mapping provided in the IVRS ACPI table. For
-			example, to map UART-HID:UID AMD0020:0 to
-			PCI device 00:14.5 write the parameter as:
+			mapping provided in the IVRS ACPI table.
+			By default, PCI segment is 0, and can be omitted.
+
+			For example, to map UART-HID:UID AMD0020:0 to
+			PCI segment 0x1 and PCI device ID 00:14.5,
+			write the parameter as:
+				ivrs_acpihid=AMD0020:0@0001:00:14.5
+
+			Deprecated formats:
+			* To map UART-HID:UID AMD0020:0 to PCI segment is 0,
+			  PCI device ID 00:14.5, write the parameter as:
 				ivrs_acpihid[00:14.5]=AMD0020:0
+			* To map UART-HID:UID AMD0020:0 to PCI segment 0x1 and
+			  PCI device ID 00:14.5, write the parameter as:
+				ivrs_acpihid[0001:00:14.5]=AMD0020:0
 
 	js=		[HW,JOY] Analog joystick
 			See Documentation/input/joydev/joystick.rst.
@@ -2102,8 +2179,12 @@
 			Default is 1 (enabled)
 
 	kvm-intel.emulate_invalid_guest_state=
-			[KVM,Intel] Enable emulation of invalid guest states
-			Default is 0 (disabled)
+			[KVM,Intel] Disable emulation of invalid guest state.
+			Ignored if kvm-intel.enable_unrestricted_guest=1, as
+			guest state is never invalid for unrestricted guests.
+			This param doesn't apply to nested guests (L2), as KVM
+			never emulates invalid L2 guest state.
+			Default is 1 (enabled)
 
 	kvm-intel.flexpriority=
 			[KVM,Intel] Disable FlexPriority feature (TPR shadow).
@@ -2473,6 +2554,12 @@
 				     SMT on vulnerable CPUs
 			off        - Unconditionally disable MDS mitigation
 
+			On TAA-affected machines, mds=off can be prevented by
+			an active TAA mitigation as both vulnerabilities are
+			mitigated with the same mechanism so in order to disable
+			this mitigation, you need to specify tsx_async_abort=off
+			too.
+
 			Not specifying this option is equivalent to
 			mds=full.
 
@@ -2645,18 +2732,26 @@
 				Disable all optional CPU mitigations.  This
 				improves system performance, but it may also
 				expose users to several CPU vulnerabilities.
-				Equivalent to: nopti [X86,PPC]
-					       kpti=0 [ARM64]
-					       nospectre_v1 [X86,PPC]
+				Equivalent to: if nokaslr then kpti=0 [ARM64]
+					       gather_data_sampling=off [X86]
+					       kvm.nx_huge_pages=off [X86]
+					       l1tf=off [X86]
+					       mds=off [X86]
+					       mmio_stale_data=off [X86]
+					       no_entry_flush [PPC]
+					       no_uaccess_flush [PPC]
+					       mmio_stale_data=off [X86]
 					       nobp=0 [S390]
+					       nopti [X86,PPC]
+					       nospectre_bhb [ARM64]
+					       nospectre_v1 [X86,PPC]
 					       nospectre_v2 [X86,PPC,S390,ARM64]
-					       spectre_v2_user=off [X86]
+					       retbleed=off [X86]
 					       spec_store_bypass_disable=off [X86,PPC]
+					       spectre_v2_user=off [X86]
+					       srbds=off [X86,INTEL]
 					       ssbd=force-off [ARM64]
-					       l1tf=off [X86]
-					       mds=off [X86]
 					       tsx_async_abort=off [X86]
-					       kvm.nx_huge_pages=off [X86]
 
 				Exceptions:
 					       This does not have any effect on
@@ -2678,6 +2773,7 @@
 				Equivalent to: l1tf=flush,nosmt [X86]
 					       mds=full,nosmt [X86]
 					       tsx_async_abort=full,nosmt [X86]
+					       mmio_stale_data=full,nosmt [X86]
 
 	mminit_loglevel=
 			[KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
@@ -2687,6 +2783,40 @@
 			log everything. Information is printed at KERN_DEBUG
 			so loglevel=8 may also need to be specified.
 
+	mmio_stale_data=
+			[X86,INTEL] Control mitigation for the Processor
+			MMIO Stale Data vulnerabilities.
+
+			Processor MMIO Stale Data is a class of
+			vulnerabilities that may expose data after an MMIO
+			operation. Exposed data could originate or end in
+			the same CPU buffers as affected by MDS and TAA.
+			Therefore, similar to MDS and TAA, the mitigation
+			is to clear the affected CPU buffers.
+
+			This parameter controls the mitigation. The
+			options are:
+
+			full       - Enable mitigation on vulnerable CPUs
+
+			full,nosmt - Enable mitigation and disable SMT on
+				     vulnerable CPUs.
+
+			off        - Unconditionally disable mitigation
+
+			On MDS or TAA affected machines,
+			mmio_stale_data=off can be prevented by an active
+			MDS or TAA mitigation as these vulnerabilities are
+			mitigated with the same mechanism so in order to
+			disable this mitigation, you need to specify
+			mds=off and tsx_async_abort=off too.
+
+			Not specifying this option is equivalent to
+			mmio_stale_data=full.
+
+			For details see:
+			Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
+
 	module.sig_enforce
 			[KNL] When CONFIG_MODULE_SIG is set, this means that
 			modules without (valid) signatures will fail to load.
@@ -2731,7 +2861,7 @@
 			<name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]
 
 	mtdparts=	[MTD]
-			See drivers/mtd/cmdlinepart.c.
+			See drivers/mtd/parsers/cmdlinepart.c
 
 	multitce=off	[PPC]  This parameter disables the use of the pSeries
 			firmware feature for updating multiple TCE entries
@@ -2979,6 +3109,8 @@
 
 	noefi		Disable EFI runtime services support.
 
+	no_entry_flush  [PPC] Don't flush the L1-D cache when entering the kernel.
+
 	noexec		[IA-64]
 
 	noexec		[X86]
@@ -3028,6 +3160,9 @@
 	nospec_store_bypass_disable
 			[HW] Disable all mitigations for the Speculative Store Bypass vulnerability
 
+	no_uaccess_flush
+	                [PPC] Don't flush the L1-D cache after accessing user data.
+
 	noxsave		[BUGS=X86] Disables x86 extended register state save
 			and restore using xsave. The kernel will fallback to
 			enabling legacy floating-point and sse state.
@@ -3402,6 +3537,12 @@
 		nomsi		[MSI] If the PCI_MSI kernel config parameter is
 				enabled, this kernel boot option can be used to
 				disable the use of MSI interrupts system-wide.
+		clearmsi	[X86] Clears MSI/MSI-X enable bits early in boot
+				time in order to avoid issues like adapters
+				screaming irqs and preventing boot progress.
+				Also, it enforces the PCI Local Bus spec
+				rule that those bits should be 0 in system reset
+				events (useful for kexec/kdump cases).
 		noioapicquirk	[APIC] Disable all boot interrupt quirks.
 				Safety option to keep boot IRQs enabled. This
 				should never be necessary.
@@ -3555,6 +3696,8 @@
 				may put more devices in an IOMMU group.
 		force_floating	[S390] Force usage of floating interrupts.
 		nomio		[S390] Do not use MIO instructions.
+		norid		[S390] ignore the RID field and force use of
+				one PCI domain per PCI function
 
 	pcie_aspm=	[PCIE] Forcibly enable or disable PCIe Active State Power
 			Management.
@@ -3567,6 +3710,8 @@
 			even if the platform doesn't give the OS permission to
 			use them.  This may cause conflicts if the platform
 			also tries to use these services.
+		dpc-native	Use native PCIe service for DPC only.  May
+				cause conflicts if firmware uses AER or DPC.
 		compat	Disable native PCIe services (PME, AER, DPC, PCIe
 			hotplug).
 
@@ -3720,6 +3865,11 @@
 			before loading.
 			See Documentation/admin-guide/blockdev/ramdisk.rst.
 
+	prot_virt=	[S390] enable hosting protected virtual machines
+			isolated from the hypervisor (if hardware supports
+			that).
+			Format: <bool>
+
 	psi=		[KNL] Enable or disable pressure stall information
 			tracking.
 			Format: <bool>
@@ -3777,6 +3927,12 @@
 			fully seed the kernel's CRNG. Default is controlled
 			by CONFIG_RANDOM_TRUST_CPU.
 
+	random.trust_bootloader={on,off}
+			[KNL] Enable or disable trusting the use of a
+			seed passed by the bootloader (if available) to
+			fully seed the kernel's CRNG. Default is controlled
+			by CONFIG_RANDOM_TRUST_BOOTLOADER.
+
 	ras=option[,option,...]	[KNL] RAS-specific options
 
 		cec_disable	[X86]
@@ -4227,6 +4383,18 @@
 
 	retain_initrd	[RAM] Keep initrd memory after extraction
 
+	retbleed=	[X86] Control mitigation of RETBleed (Arbitrary
+			Speculative Code Execution with Return Instructions)
+			vulnerability.
+
+			off         - unconditionally disable
+			auto        - automatically select a migitation
+
+			Selecting 'auto' will choose a mitigation method at run
+			time according to the CPU.
+
+			Not specifying this option is equivalent to retbleed=auto.
+
 	rfkill.default_state=
 		0	"airplane mode".  All wifi, bluetooth, wimax, gps, fm,
 			etc. communication is blocked by default.
@@ -4464,8 +4632,13 @@
 			Specific mitigations can also be selected manually:
 
 			retpoline	  - replace indirect branches
-			retpoline,generic - google's original retpoline
-			retpoline,amd     - AMD-specific minimal thunk
+			retpoline,generic - Retpolines
+			retpoline,lfence  - LFENCE; indirect branch
+			retpoline,amd     - alias for retpoline,lfence
+			eibrs		  - enhanced IBRS
+			eibrs,retpoline   - enhanced IBRS + Retpolines
+			eibrs,lfence      - enhanced IBRS + LFENCE
+			ibrs		  - use IBRS to protect kernel
 
 			Not specifying this option is equivalent to
 			spectre_v2=auto.
@@ -4569,6 +4742,26 @@
 	spia_pedr=
 	spia_peddr=
 
+	srbds=		[X86,INTEL]
+			Control the Special Register Buffer Data Sampling
+			(SRBDS) mitigation.
+
+			Certain CPUs are vulnerable to an MDS-like
+			exploit which can leak bits from the random
+			number generator.
+
+			By default, this issue is mitigated by
+			microcode.  However, the microcode fix can cause
+			the RDRAND and RDSEED instructions to become
+			much slower.  Among other effects, this will
+			result in reduced throughput from /dev/urandom.
+
+			The microcode mitigation can be disabled with
+			the following option:
+
+			off:    Disable mitigation and remove
+				performance impact to RDRAND and RDSEED
+
 	srcutree.counter_wrap_check [KNL]
 			Specifies how frequently to check for
 			grace-period sequence counter wrap for the
@@ -4931,6 +5124,11 @@
 				     vulnerable to cross-thread TAA attacks.
 			off        - Unconditionally disable TAA mitigation
 
+			On MDS-affected machines, tsx_async_abort=off can be
+			prevented by an active MDS mitigation as both vulnerabilities
+			are mitigated with the same mechanism so in order to disable
+			this mitigation, you need to specify mds=off too.
+
 			Not specifying this option is equivalent to
 			tsx_async_abort=full.  On CPUs which are MDS affected
 			and deploy MDS mitigation, TAA mitigation is not
@@ -4990,8 +5188,7 @@
 
 	usbcore.old_scheme_first=
 			[USB] Start with the old device initialization
-			scheme,  applies only to low and full-speed devices
-			 (default 0 = off).
+			scheme (default 0 = off).
 
 	usbcore.usbfs_memory_mb=
 			[USB] Memory limit (in MB) for buffers allocated by
@@ -5090,13 +5287,13 @@
 			Flags is a set of characters, each corresponding
 			to a common usb-storage quirk flag as follows:
 				a = SANE_SENSE (collect more than 18 bytes
-					of sense data);
+					of sense data, not on uas);
 				b = BAD_SENSE (don't collect more than 18
-					bytes of sense data);
+					bytes of sense data, not on uas);
 				c = FIX_CAPACITY (decrease the reported
 					device capacity by one sector);
 				d = NO_READ_DISC_INFO (don't use
-					READ_DISC_INFO command);
+					READ_DISC_INFO command, not on uas);
 				e = NO_READ_CAPACITY_16 (don't use
 					READ_CAPACITY_16 command);
 				f = NO_REPORT_OPCODES (don't use report opcodes
@@ -5110,18 +5307,20 @@
 					device);
 				j = NO_REPORT_LUNS (don't use report luns
 					command, uas only);
+				k = NO_SAME (do not use WRITE_SAME, uas only)
 				l = NOT_LOCKABLE (don't try to lock and
-					unlock ejectable media);
+					unlock ejectable media, not on uas);
 				m = MAX_SECTORS_64 (don't transfer more
-					than 64 sectors = 32 KB at a time);
+					than 64 sectors = 32 KB at a time,
+					not on uas);
 				n = INITIAL_READ10 (force a retry of the
-					initial READ(10) command);
+					initial READ(10) command, not on uas);
 				o = CAPACITY_OK (accept the capacity
-					reported by the device);
+					reported by the device, not on uas);
 				p = WRITE_CACHE (the device cache is ON
-					by default);
+					by default, not on uas);
 				r = IGNORE_RESIDUE (the device reports
-					bogus residue values);
+					bogus residue values, not on uas);
 				s = SINGLE_LUN (the device has only one
 					Logical Unit);
 				t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
@@ -5130,7 +5329,8 @@
 				w = NO_WP_DETECT (don't test whether the
 					medium is write-protected).
 				y = ALWAYS_SYNC (issue a SYNCHRONIZE_CACHE
-					even if the device claims no cache)
+					even if the device claims no cache,
+					not on uas)
 			Example: quirks=0419:aaf5:rl,0421:0433:rc
 
 	user_debug=	[KNL,ARM]
@@ -5408,6 +5608,10 @@
 			This option is obsoleted by the "nopv" option, which
 			has equivalent effect for XEN platform.
 
+	xen_no_vector_callback
+			[KNL,X86,XEN] Disable the vector callback for Xen
+			event channel interrupts.
+
 	xen_scrub_pages=	[XEN]
 			Boolean option to control scrubbing pages before giving them back
 			to Xen, for use by other domains. Can be also changed at runtime
@@ -5426,6 +5630,21 @@
 			as generic guest with no PV drivers. Currently support
 			XEN HVM, KVM, HYPER_V and VMWARE guest.
 
+	xen.balloon_boot_timeout= [XEN]
+			The time (in seconds) to wait before giving up to boot
+			in case initial ballooning fails to free enough memory.
+			Applies only when running as HVM or PVH guest and
+			started with less memory configured than allowed at
+			max. Default is 180.
+
+	xen.event_eoi_delay=	[XEN]
+			How long to delay EOI handling in case of event
+			storms (jiffies). Default is 10.
+
+	xen.event_loop_timeout=	[XEN]
+			After which time (jiffies) the event handling loop
+			should start to delay EOI handling. Default is 2.
+
 	xirc2ps_cs=	[NET,PCMCIA]
 			Format:
 			<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
--- linux-ein-5.4.0.orig/Documentation/admin-guide/pm/cpuidle.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/pm/cpuidle.rst
@@ -676,8 +676,8 @@
 by default this way, for example.
 
 The other kernel command line parameters controlling CPU idle time management
-described below are only relevant for the *x86* architecture and some of
-them affect Intel processors only.
+described below are only relevant for the *x86* architecture and references
+to ``intel_idle`` affect Intel processors only.
 
 The *x86* architecture support code recognizes three kernel command line
 options related to CPU idle time management: ``idle=poll``, ``idle=halt``,
@@ -699,10 +699,13 @@
 energy-efficiency.  Thus using it for performance reasons may not be a good idea
 at all.]
 
-The ``idle=nomwait`` option disables the ``intel_idle`` driver and causes
-``acpi_idle`` to be used (as long as all of the information needed by it is
-there in the system's ACPI tables), but it is not allowed to use the
-``MWAIT`` instruction of the CPUs to ask the hardware to enter idle states.
+The ``idle=nomwait`` option prevents the use of ``MWAIT`` instruction of
+the CPU to enter idle states. When this option is used, the ``acpi_idle``
+driver will use the ``HLT`` instruction instead of ``MWAIT``. On systems
+running Intel processors, this option disables the ``intel_idle`` driver
+and forces the use of the ``acpi_idle`` driver instead. Note that in either
+case, ``acpi_idle`` driver will function only if all the information needed
+by it is in the system's ACPI tables.
 
 In addition to the architecture-level kernel command line options affecting CPU
 idle time management, there are parameters affecting individual ``CPUIdle``
--- linux-ein-5.4.0.orig/Documentation/admin-guide/security-bugs.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/security-bugs.rst
@@ -56,31 +56,28 @@
 of the report are treated confidentially even after the embargo has been
 lifted, in perpetuity.
 
-Coordination
-------------
+Coordination with other groups
+------------------------------
 
-Fixes for sensitive bugs, such as those that might lead to privilege
-escalations, may need to be coordinated with the private
-<linux-distros@vs.openwall.org> mailing list so that distribution vendors
-are well prepared to issue a fixed kernel upon public disclosure of the
-upstream fix. Distros will need some time to test the proposed patch and
-will generally request at least a few days of embargo, and vendor update
-publication prefers to happen Tuesday through Thursday. When appropriate,
-the security team can assist with this coordination, or the reporter can
-include linux-distros from the start. In this case, remember to prefix
-the email Subject line with "[vs]" as described in the linux-distros wiki:
-<http://oss-security.openwall.org/wiki/mailing-lists/distros#how-to-use-the-lists>
+The kernel security team strongly recommends that reporters of potential
+security issues NEVER contact the "linux-distros" mailing list until
+AFTER discussing it with the kernel security team.  Do not Cc: both
+lists at once.  You may contact the linux-distros mailing list after a
+fix has been agreed on and you fully understand the requirements that
+doing so will impose on you and the kernel community.
+
+The different lists have different goals and the linux-distros rules do
+not contribute to actually fixing any potential security problems.
 
 CVE assignment
 --------------
 
-The security team does not normally assign CVEs, nor do we require them
-for reports or fixes, as this can needlessly complicate the process and
-may delay the bug handling. If a reporter wishes to have a CVE identifier
-assigned ahead of public disclosure, they will need to contact the private
-linux-distros list, described above. When such a CVE identifier is known
-before a patch is provided, it is desirable to mention it in the commit
-message if the reporter agrees.
+The security team does not assign CVEs, nor do we require them for
+reports or fixes, as this can needlessly complicate the process and may
+delay the bug handling.  If a reporter wishes to have a CVE identifier
+assigned, they should find one by themselves, for example by contacting
+MITRE directly.  However under no circumstances will a patch inclusion
+be delayed to wait for a CVE identifier to arrive.
 
 Non-disclosure agreements
 -------------------------
--- linux-ein-5.4.0.orig/Documentation/admin-guide/sysctl/kernel.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/sysctl/kernel.rst
@@ -48,6 +48,8 @@
 - hyperv_record_panic_msg
 - kexec_load_disabled
 - kptr_restrict
+- io_uring_disabled
+- io_uring_group
 - l2cr                        [ PPC only ]
 - modprobe                    ==> Documentation/debugging-modules.txt
 - modules_disabled
@@ -415,7 +417,6 @@
 
 kptr_restrict:
 ==============
-
 This toggle indicates whether restrictions are placed on
 exposing kernel addresses via /proc and other interfaces.
 
@@ -438,6 +439,35 @@
 %pK will be replaced with 0's regardless of privileges.
 
 
+io_uring_disabled:
+==================
+
+Prevents all processes from creating new io_uring instances. Enabling this
+shrinks the kernel's attack surface.
+
+= ======================================================================
+0 All processes can create io_uring instances as normal. This is the
+  default setting.
+1 io_uring creation is disabled (io_uring_setup() will fail with
+  -EPERM) for unprivileged processes not in the io_uring_group group.
+  Existing io_uring instances can still be used.  See the
+  documentation for io_uring_group for more information.
+2 io_uring creation is disabled for all processes. io_uring_setup()
+  always fails with -EPERM. Existing io_uring instances can still be
+  used.
+= ======================================================================
+
+
+io_uring_group:
+===============
+
+When io_uring_disabled is set to 1, a process must either be
+privileged (CAP_SYS_ADMIN) or be in the io_uring_group group in order
+to create an io_uring instance.  If io_uring_group is set to -1 (the
+default), only processes with the CAP_SYS_ADMIN capability may create
+io_uring instances.
+
+
 l2cr: (PPC only)
 ================
 
@@ -557,6 +587,15 @@
 scanned for a given scan.
 
 
+oops_limit
+==========
+
+Number of kernel oopses after which the kernel should panic when
+``panic_on_oops`` is not set. Setting this to 0 disables checking
+the count. Setting this to  1 has the same effect as setting
+``panic_on_oops=1``. The default value is 10000.
+
+
 osrelease, ostype & version:
 ============================
 
@@ -862,9 +901,40 @@
 a one-time setting until next reboot: once set, it cannot be changed by
 this sysctl interface anymore.
 
+pty
+===
 
-randomize_va_space:
-===================
+See Documentation/filesystems/devpts.rst.
+
+
+random
+======
+
+This is a directory, with the following entries:
+
+* ``boot_id``: a UUID generated the first time this is retrieved, and
+  unvarying after that;
+
+* ``uuid``: a UUID generated every time this is retrieved (this can
+  thus be used to generate UUIDs at will);
+
+* ``entropy_avail``: the pool's entropy count, in bits;
+
+* ``poolsize``: the entropy pool size, in bits;
+
+* ``urandom_min_reseed_secs``: obsolete (used to determine the minimum
+  number of seconds between urandom pool reseeding). This file is
+  writable for compatibility purposes, but writing to it has no effect
+  on any RNG behavior;
+
+* ``write_wakeup_threshold``: when the entropy count drops below this
+  (as a number of bits), processes waiting to write to ``/dev/random``
+  are woken up. This file is writable for compatibility purposes, but
+  writing to it has no effect on any RNG behavior.
+
+
+randomize_va_space
+==================
 
 This option can be used to select the type of process address
 space randomization that is used in the system, for architectures
@@ -1125,6 +1195,37 @@
 example.  If a system hangs up, try pressing the NMI switch.
 
 
+unprivileged_bpf_disabled:
+==========================
+
+Writing 1 to this entry will disable unprivileged calls to ``bpf()``;
+once disabled, calling ``bpf()`` without ``CAP_SYS_ADMIN`` will return
+``-EPERM``. Once set to 1, this can't be cleared from the running kernel
+anymore.
+
+Writing 2 to this entry will also disable unprivileged calls to ``bpf()``,
+however, an admin can still change this setting later on, if needed, by
+writing 0 or 1 to this entry.
+
+If ``BPF_UNPRIV_DEFAULT_OFF`` is enabled in the kernel config, then this
+entry will default to 2 instead of 0.
+
+= =============================================================
+0 Unprivileged calls to ``bpf()`` are enabled
+1 Unprivileged calls to ``bpf()`` are disabled without recovery
+2 Unprivileged calls to ``bpf()`` are disabled
+= =============================================================
+
+
+warn_limit
+==========
+
+Number of kernel warnings after which the kernel should panic when
+``panic_on_warn`` is not set. Setting this to 0 disables checking
+the warning count. Setting this to 1 has the same effect as setting
+``panic_on_warn=1``. The default value is 0.
+
+
 watchdog:
 =========
 
--- linux-ein-5.4.0.orig/Documentation/admin-guide/sysctl/net.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/sysctl/net.rst
@@ -31,17 +31,18 @@
 
 Table : Subdirectories in /proc/sys/net
 
- ========= =================== = ========== ==================
+ ========= =================== = ========== ===================
  Directory Content               Directory  Content
- ========= =================== = ========== ==================
- core      General parameter     appletalk  Appletalk protocol
- unix      Unix domain sockets   netrom     NET/ROM
- 802       E802 protocol         ax25       AX25
- ethernet  Ethernet protocol     rose       X.25 PLP layer
+ ========= =================== = ========== ===================
+ 802       E802 protocol         mptcp      Multipath TCP
+ appletalk Appletalk protocol    netfilter  Network Filter
+ ax25      AX25                  netrom     NET/ROM
+ bridge    Bridging              rose       X.25 PLP layer
+ core      General parameter     tipc       TIPC
+ ethernet  Ethernet protocol     unix       Unix domain sockets
  ipv4      IP version 4          x25        X.25 protocol
- bridge    Bridging              decnet     DEC net
- ipv6      IP version 6          tipc       TIPC
- ========= =================== = ========== ==================
+ ipv6      IP version 6
+ ========= =================== = ========== ===================
 
 1. /proc/sys/net/core - Network core options
 ============================================
--- linux-ein-5.4.0.orig/Documentation/admin-guide/sysctl/vm.rst
+++ linux-ein-5.4.0/Documentation/admin-guide/sysctl/vm.rst
@@ -61,6 +61,7 @@
 - overcommit_memory
 - overcommit_ratio
 - page-cluster
+- page_lock_unfairness
 - panic_on_oom
 - percpu_pagelist_fraction
 - stat_interval
@@ -741,6 +742,14 @@
 that consecutive pages readahead would have brought in.
 
 
+page_lock_unfairness
+====================
+
+This value determines the number of times that the page lock can be
+stolen from under a waiter. After the lock is stolen the number of times
+specified in this file (default is 5), the "fair lock handoff" semantics
+will apply, and the waiter will only be awakened if the lock can be taken.
+
 panic_on_oom
 ============
 
--- linux-ein-5.4.0.orig/Documentation/arm/memory.rst
+++ linux-ein-5.4.0/Documentation/arm/memory.rst
@@ -45,9 +45,14 @@
 fffe0000	fffe7fff	ITCM mapping area for platforms with
 				ITCM mounted inside the CPU.
 
-ffc00000	ffefffff	Fixmap mapping region.  Addresses provided
+ffc80000	ffefffff	Fixmap mapping region.  Addresses provided
 				by fix_to_virt() will be located here.
 
+ffc00000	ffc7ffff	Guard region
+
+ff800000	ffbfffff	Permanent, fixed read-only mapping of the
+				firmware provided DT blob
+
 fee00000	feffffff	Mapping of PCI I/O space. This is a static
 				mapping within the vmalloc space.
 
--- linux-ein-5.4.0.orig/Documentation/arm64/silicon-errata.rst
+++ linux-ein-5.4.0/Documentation/arm64/silicon-errata.rst
@@ -70,8 +70,12 @@
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A57      | #834220         | ARM64_ERRATUM_834220        |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A57      | #1742098        | ARM64_ERRATUM_1742098       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A72      | #853709         | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A72      | #1655431        | ARM64_ERRATUM_1742098       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A73      | #858921         | ARM64_ERRATUM_858921        |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A55      | #1024718        | ARM64_ERRATUM_1024718       |
@@ -88,6 +92,8 @@
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1349291        | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-N1     | #1542419        | ARM64_ERRATUM_1542419       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | MMU-500         | #841119,826419  | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
@@ -128,6 +134,9 @@
 +----------------+-----------------+-----------------+-----------------------------+
 | Hisilicon      | Hip08 SMMU PMCG | #162001800      | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
+| Hisilicon      | Hip08 SMMU PMCG | #162001900      | N/A                         |
+|                | Hip09 SMMU PMCG |                 |                             |
++----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
 | Qualcomm Tech. | Kryo/Falkor v1  | E1003           | QCOM_FALKOR_ERRATUM_1003    |
 +----------------+-----------------+-----------------+-----------------------------+
--- linux-ein-5.4.0.orig/Documentation/arm64/tagged-address-abi.rst
+++ linux-ein-5.4.0/Documentation/arm64/tagged-address-abi.rst
@@ -44,8 +44,25 @@
 how the user addresses are used by the kernel:
 
 1. User addresses not accessed by the kernel but used for address space
-   management (e.g. ``mmap()``, ``mprotect()``, ``madvise()``). The use
-   of valid tagged pointers in this context is always allowed.
+   management (e.g. ``mprotect()``, ``madvise()``). The use of valid
+   tagged pointers in this context is allowed with these exceptions:
+
+   - ``brk()``, ``mmap()`` and the ``new_address`` argument to
+     ``mremap()`` as these have the potential to alias with existing
+      user addresses.
+
+     NOTE: This behaviour changed in v5.6 and so some earlier kernels may
+     incorrectly accept valid tagged pointers for the ``brk()``,
+     ``mmap()`` and ``mremap()`` system calls.
+
+   - The ``range.start``, ``start`` and ``dst`` arguments to the
+     ``UFFDIO_*`` ``ioctl()``s used on a file descriptor obtained from
+     ``userfaultfd()``, as fault addresses subsequently obtained by reading
+     the file descriptor will be untagged, which may otherwise confuse
+     tag-unaware programs.
+
+     NOTE: This behaviour changed in v5.14 and so some earlier kernels may
+     incorrectly accept valid tagged pointers for this system call.
 
 2. User addresses accessed by the kernel (e.g. ``write()``). This ABI
    relaxation is disabled by default and the application thread needs to
--- linux-ein-5.4.0.orig/Documentation/asm-annotations.rst
+++ linux-ein-5.4.0/Documentation/asm-annotations.rst
@@ -0,0 +1,216 @@
+Assembler Annotations
+=====================
+
+Copyright (c) 2017-2019 Jiri Slaby
+
+This document describes the new macros for annotation of data and code in
+assembly. In particular, it contains information about ``SYM_FUNC_START``,
+``SYM_FUNC_END``, ``SYM_CODE_START``, and similar.
+
+Rationale
+---------
+Some code like entries, trampolines, or boot code needs to be written in
+assembly. The same as in C, such code is grouped into functions and
+accompanied with data. Standard assemblers do not force users into precisely
+marking these pieces as code, data, or even specifying their length.
+Nevertheless, assemblers provide developers with such annotations to aid
+debuggers throughout assembly. On top of that, developers also want to mark
+some functions as *global* in order to be visible outside of their translation
+units.
+
+Over time, the Linux kernel has adopted macros from various projects (like
+``binutils``) to facilitate such annotations. So for historic reasons,
+developers have been using ``ENTRY``, ``END``, ``ENDPROC``, and other
+annotations in assembly.  Due to the lack of their documentation, the macros
+are used in rather wrong contexts at some locations. Clearly, ``ENTRY`` was
+intended to denote the beginning of global symbols (be it data or code).
+``END`` used to mark the end of data or end of special functions with
+*non-standard* calling convention. In contrast, ``ENDPROC`` should annotate
+only ends of *standard* functions.
+
+When these macros are used correctly, they help assemblers generate a nice
+object with both sizes and types set correctly. For example, the result of
+``arch/x86/lib/putuser.S``::
+
+   Num:    Value          Size Type    Bind   Vis      Ndx Name
+    25: 0000000000000000    33 FUNC    GLOBAL DEFAULT    1 __put_user_1
+    29: 0000000000000030    37 FUNC    GLOBAL DEFAULT    1 __put_user_2
+    32: 0000000000000060    36 FUNC    GLOBAL DEFAULT    1 __put_user_4
+    35: 0000000000000090    37 FUNC    GLOBAL DEFAULT    1 __put_user_8
+
+This is not only important for debugging purposes. When there are properly
+annotated objects like this, tools can be run on them to generate more useful
+information. In particular, on properly annotated objects, ``objtool`` can be
+run to check and fix the object if needed. Currently, ``objtool`` can report
+missing frame pointer setup/destruction in functions. It can also
+automatically generate annotations for :doc:`ORC unwinder <x86/orc-unwinder>`
+for most code. Both of these are especially important to support reliable
+stack traces which are in turn necessary for :doc:`Kernel live patching
+<livepatch/livepatch>`.
+
+Caveat and Discussion
+---------------------
+As one might realize, there were only three macros previously. That is indeed
+insufficient to cover all the combinations of cases:
+
+* standard/non-standard function
+* code/data
+* global/local symbol
+
+There was a discussion_ and instead of extending the current ``ENTRY/END*``
+macros, it was decided that brand new macros should be introduced instead::
+
+    So how about using macro names that actually show the purpose, instead
+    of importing all the crappy, historic, essentially randomly chosen
+    debug symbol macro names from the binutils and older kernels?
+
+.. _discussion: https://lkml.kernel.org/r/20170217104757.28588-1-jslaby@suse.cz
+
+Macros Description
+------------------
+
+The new macros are prefixed with the ``SYM_`` prefix and can be divided into
+three main groups:
+
+1. ``SYM_FUNC_*`` -- to annotate C-like functions. This means functions with
+   standard C calling conventions, i.e. the stack contains a return address at
+   the predefined place and a return from the function can happen in a
+   standard way. When frame pointers are enabled, save/restore of frame
+   pointer shall happen at the start/end of a function, respectively, too.
+
+   Checking tools like ``objtool`` should ensure such marked functions conform
+   to these rules. The tools can also easily annotate these functions with
+   debugging information (like *ORC data*) automatically.
+
+2. ``SYM_CODE_*`` -- special functions called with special stack. Be it
+   interrupt handlers with special stack content, trampolines, or startup
+   functions.
+
+   Checking tools mostly ignore checking of these functions. But some debug
+   information still can be generated automatically. For correct debug data,
+   this code needs hints like ``UNWIND_HINT_REGS`` provided by developers.
+
+3. ``SYM_DATA*`` -- obviously data belonging to ``.data`` sections and not to
+   ``.text``. Data do not contain instructions, so they have to be treated
+   specially by the tools: they should not treat the bytes as instructions,
+   nor assign any debug information to them.
+
+Instruction Macros
+~~~~~~~~~~~~~~~~~~
+This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
+
+* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
+  most frequent markings**. They are used for functions with standard calling
+  conventions -- global and local. Like in C, they both align the functions to
+  architecture specific ``__ALIGN`` bytes. There are also ``_NOALIGN`` variants
+  for special cases where developers do not want this implicit alignment.
+
+  ``SYM_FUNC_START_WEAK`` and ``SYM_FUNC_START_WEAK_NOALIGN`` markings are
+  also offered as an assembler counterpart to the *weak* attribute known from
+  C.
+
+  All of these **shall** be coupled with ``SYM_FUNC_END``. First, it marks
+  the sequence of instructions as a function and computes its size to the
+  generated object file. Second, it also eases checking and processing such
+  object files as the tools can trivially find exact function boundaries.
+
+  So in most cases, developers should write something like in the following
+  example, having some asm instructions in between the macros, of course::
+
+    SYM_FUNC_START(function_hook)
+        ... asm insns ...
+    SYM_FUNC_END(function_hook)
+
+  In fact, this kind of annotation corresponds to the now deprecated ``ENTRY``
+  and ``ENDPROC`` macros.
+
+* ``SYM_FUNC_START_ALIAS`` and ``SYM_FUNC_START_LOCAL_ALIAS`` serve for those
+  who decided to have two or more names for one function. The typical use is::
+
+    SYM_FUNC_START_ALIAS(__memset)
+    SYM_FUNC_START(memset)
+        ... asm insns ...
+    SYM_FUNC_END(memset)
+    SYM_FUNC_END_ALIAS(__memset)
+
+  In this example, one can call ``__memset`` or ``memset`` with the same
+  result, except the debug information for the instructions is generated to
+  the object file only once -- for the non-``ALIAS`` case.
+
+* ``SYM_CODE_START`` and ``SYM_CODE_START_LOCAL`` should be used only in
+  special cases -- if you know what you are doing. This is used exclusively
+  for interrupt handlers and similar where the calling convention is not the C
+  one. ``_NOALIGN`` variants exist too. The use is the same as for the ``FUNC``
+  category above::
+
+    SYM_CODE_START_LOCAL(bad_put_user)
+        ... asm insns ...
+    SYM_CODE_END(bad_put_user)
+
+  Again, every ``SYM_CODE_START*`` **shall** be coupled by ``SYM_CODE_END``.
+
+  To some extent, this category corresponds to deprecated ``ENTRY`` and
+  ``END``. Except ``END`` had several other meanings too.
+
+* ``SYM_INNER_LABEL*`` is used to denote a label inside some
+  ``SYM_{CODE,FUNC}_START`` and ``SYM_{CODE,FUNC}_END``.  They are very similar
+  to C labels, except they can be made global. An example of use::
+
+    SYM_CODE_START(ftrace_caller)
+        /* save_mcount_regs fills in first two parameters */
+        ...
+
+    SYM_INNER_LABEL(ftrace_caller_op_ptr, SYM_L_GLOBAL)
+        /* Load the ftrace_ops into the 3rd parameter */
+        ...
+
+    SYM_INNER_LABEL(ftrace_call, SYM_L_GLOBAL)
+        call ftrace_stub
+        ...
+        retq
+    SYM_CODE_END(ftrace_caller)
+
+Data Macros
+~~~~~~~~~~~
+Similar to instructions, there is a couple of macros to describe data in the
+assembly.
+
+* ``SYM_DATA_START`` and ``SYM_DATA_START_LOCAL`` mark the start of some data
+  and shall be used in conjunction with either ``SYM_DATA_END``, or
+  ``SYM_DATA_END_LABEL``. The latter adds also a label to the end, so that
+  people can use ``lstack`` and (local) ``lstack_end`` in the following
+  example::
+
+    SYM_DATA_START_LOCAL(lstack)
+        .skip 4096
+    SYM_DATA_END_LABEL(lstack, SYM_L_LOCAL, lstack_end)
+
+* ``SYM_DATA`` and ``SYM_DATA_LOCAL`` are variants for simple, mostly one-line
+  data::
+
+    SYM_DATA(HEAP,     .long rm_heap)
+    SYM_DATA(heap_end, .long rm_stack)
+
+  In the end, they expand to ``SYM_DATA_START`` with ``SYM_DATA_END``
+  internally.
+
+Support Macros
+~~~~~~~~~~~~~~
+All the above reduce themselves to some invocation of ``SYM_START``,
+``SYM_END``, or ``SYM_ENTRY`` at last. Normally, developers should avoid using
+these.
+
+Further, in the above examples, one could see ``SYM_L_LOCAL``. There are also
+``SYM_L_GLOBAL`` and ``SYM_L_WEAK``. All are intended to denote linkage of a
+symbol marked by them. They are used either in ``_LABEL`` variants of the
+earlier macros, or in ``SYM_START``.
+
+
+Overriding Macros
+~~~~~~~~~~~~~~~~~
+Architecture can also override any of the macros in their own
+``asm/linkage.h``, including macros specifying the type of a symbol
+(``SYM_T_FUNC``, ``SYM_T_OBJECT``, and ``SYM_T_NONE``).  As every macro
+described in this file is surrounded by ``#ifdef`` + ``#endif``, it is enough
+to define the macros differently in the aforementioned architecture-dependent
+header.
--- linux-ein-5.4.0.orig/Documentation/atomic_bitops.txt
+++ linux-ein-5.4.0/Documentation/atomic_bitops.txt
@@ -59,7 +59,7 @@
  - RMW operations that have a return value are fully ordered.
 
  - RMW operations that are conditional are unordered on FAILURE,
-   otherwise the above rules apply. In the case of test_and_{}_bit() operations,
+   otherwise the above rules apply. In the case of test_and_set_bit_lock(),
    if the bit in memory is unchanged by the operation then it is deemed to have
    failed.
 
--- linux-ein-5.4.0.orig/Documentation/cgroups/namespace.txt
+++ linux-ein-5.4.0/Documentation/cgroups/namespace.txt
@@ -0,0 +1,142 @@
+			CGroup Namespaces
+
+CGroup Namespace provides a mechanism to virtualize the view of the
+/proc/<pid>/cgroup file. The CLONE_NEWCGROUP clone-flag can be used with
+clone() and unshare() syscalls to create a new cgroup namespace.
+The process running inside the cgroup namespace will have its /proc/<pid>/cgroup
+output restricted to cgroupns-root. cgroupns-root is the cgroup of the process
+at the time of creation of the cgroup namespace.
+
+Prior to CGroup Namespace, the /proc/<pid>/cgroup file used to show complete
+path of the cgroup of a process. In a container setup (where a set of cgroups
+and namespaces are intended to isolate processes), the /proc/<pid>/cgroup file
+may leak potential system level information to the isolated processes.
+
+For Example:
+  $ cat /proc/self/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1
+
+The path '/batchjobs/container_id1' can generally be considered as system-data
+and its desirable to not expose it to the isolated process.
+
+CGroup Namespaces can be used to restrict visibility of this path.
+For Example:
+  # Before creating cgroup namespace
+  $ ls -l /proc/self/ns/cgroup
+  lrwxrwxrwx 1 root root 0 2014-07-15 10:37 /proc/self/ns/cgroup -> cgroup:[4026531835]
+  $ cat /proc/self/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1
+
+  # unshare(CLONE_NEWCGROUP) and exec /bin/bash
+  $ ~/unshare -c
+  [ns]$ ls -l /proc/self/ns/cgroup
+  lrwxrwxrwx 1 root root 0 2014-07-15 10:35 /proc/self/ns/cgroup -> cgroup:[4026532183]
+  # From within new cgroupns, process sees that its in the root cgroup
+  [ns]$ cat /proc/self/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/
+
+  # From global cgroupns:
+  $ cat /proc/<pid>/cgroup
+  0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1
+
+  # Unshare cgroupns along with userns and mountns
+  # Following calls unshare(CLONE_NEWCGROUP|CLONE_NEWUSER|CLONE_NEWNS), then
+  # sets up uid/gid map and execs /bin/bash
+  $ ~/unshare -c -u -m
+  # Originally, we were in /batchjobs/container_id1 cgroup. Mount our own cgroup
+  # hierarchy.
+  [ns]$ mount -t cgroup cgroup /tmp/cgroup
+  [ns]$ ls -l /tmp/cgroup
+  total 0
+  -r--r--r-- 1 root root 0 2014-10-13 09:32 cgroup.controllers
+  -r--r--r-- 1 root root 0 2014-10-13 09:32 cgroup.populated
+  -rw-r--r-- 1 root root 0 2014-10-13 09:25 cgroup.procs
+  -rw-r--r-- 1 root root 0 2014-10-13 09:32 cgroup.subtree_control
+
+The cgroupns-root (/batchjobs/container_id1 in above example) becomes the
+filesystem root for the namespace specific cgroupfs mount.
+
+The virtualization of /proc/self/cgroup file combined with restricting
+the view of cgroup hierarchy by namespace-private cgroupfs mount
+should provide a completely isolated cgroup view inside the container.
+
+In its current form, the cgroup namespaces patcheset provides following
+behavior:
+
+(1) The 'cgroupns-root' for a cgroup namespace is the cgroup in which
+    the process calling unshare is running.
+    For ex. if a process in /batchjobs/container_id1 cgroup calls unshare,
+    cgroup /batchjobs/container_id1 becomes the cgroupns-root.
+    For the init_cgroup_ns, this is the real root ('/') cgroup
+    (identified in code as cgrp_dfl_root.cgrp).
+
+(2) The cgroupns-root cgroup does not change even if the namespace
+    creator process later moves to a different cgroup.
+    $ ~/unshare -c # unshare cgroupns in some cgroup
+    [ns]$ cat /proc/self/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/
+    [ns]$ mkdir sub_cgrp_1
+    [ns]$ echo 0 > sub_cgrp_1/cgroup.procs
+    [ns]$ cat /proc/self/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/sub_cgrp_1
+
+(3) Each process gets its CGROUPNS specific view of /proc/<pid>/cgroup
+(a) Processes running inside the cgroup namespace will be able to see
+    cgroup paths (in /proc/self/cgroup) only inside their root cgroup
+    [ns]$ sleep 100000 &  # From within unshared cgroupns
+    [1] 7353
+    [ns]$ echo 7353 > sub_cgrp_1/cgroup.procs
+    [ns]$ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/sub_cgrp_1
+
+(b) From global cgroupns, the real cgroup path will be visible:
+    $ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/batchjobs/container_id1/sub_cgrp_1
+
+(c) From a sibling cgroupns (cgroupns root-ed at a different cgroup), cgroup
+    path relative to its own cgroupns-root will be shown:
+    # ns2's cgroupns-root is at '/batchjobs/container_id2'
+    [ns2]$ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/../container_id2/sub_cgrp_1
+
+    Note that the relative path always starts with '/' to indicate that its
+    relative to the cgroupns-root of the caller.
+
+(4) Processes inside a cgroupns can move in-and-out of the cgroupns-root
+    (if they have proper access to external cgroups).
+    # From inside cgroupns (with cgroupns-root at /batchjobs/container_id1), and
+    # assuming that the global hierarchy is still accessible inside cgroupns:
+    $ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/sub_cgrp_1
+    $ echo 7353 > batchjobs/container_id2/cgroup.procs
+    $ cat /proc/7353/cgroup
+    0:cpuset,cpu,cpuacct,memory,devices,freezer,hugetlb:/../container_id2
+
+    Note that this kind of setup is not encouraged. A task inside cgroupns
+    should only be exposed to its own cgroupns hierarchy. Otherwise it makes
+    the virtualization of /proc/<pid>/cgroup less useful.
+
+(5) Setns to another cgroup namespace is allowed when:
+    (a) the process has CAP_SYS_ADMIN in its current userns
+    (b) the process has CAP_SYS_ADMIN in the target cgroupns' userns
+    No implicit cgroup changes happen with attaching to another cgroupns. It
+    is expected that the somone moves the attaching process under the target
+    cgroupns-root.
+
+(6) When some thread from a multi-threaded process unshares its
+    cgroup-namespace, the new cgroupns gets applied to the entire process (all
+    the threads). For the unified-hierarchy this is expected as it only allows
+    process-level containerization.  For the legacy hierarchies this may be
+    unexpected.  So all the threads in the process will have the same cgroup.
+
+(7) The cgroup namespace is alive as long as there is atleast 1
+    process inside it. When the last process exits, the cgroup
+    namespace is destroyed. The cgroupns-root and the actual cgroups
+    remain though.
+
+(8) Namespace specific cgroup hierarchy can be mounted by a process running
+    inside cgroupns:
+    $ mount -t cgroup -o __DEVEL__sane_behavior cgroup $MOUNT_POINT
+
+    This will mount the unified cgroup hierarchy with cgroupns-root as the
+    filesystem root. The process needs CAP_SYS_ADMIN in its userns and mntns.
--- linux-ein-5.4.0.orig/Documentation/conf.py
+++ linux-ein-5.4.0/Documentation/conf.py
@@ -98,7 +98,7 @@
 #
 # This is also used if you do content translation via gettext catalogs.
 # Usually you set "language" from the command line for these cases.
-language = None
+language = 'en'
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
--- linux-ein-5.4.0.orig/Documentation/core-api/printk-formats.rst
+++ linux-ein-5.4.0/Documentation/core-api/printk-formats.rst
@@ -508,6 +508,12 @@
 Thanks
 ======
 
+Kernel messages:
+
+       %pj	123456
+
+       For generating the jhash of a string truncated to six digits
+
 If you add other %p extensions, please extend <lib/test_printf.c> with
 one or more test cases, if at all feasible.
 
--- linux-ein-5.4.0.orig/Documentation/core-api/xarray.rst
+++ linux-ein-5.4.0/Documentation/core-api/xarray.rst
@@ -461,13 +461,15 @@
 Each entry will only be returned once, no matter how many indices it
 occupies.
 
-Using xas_next() or xas_prev() with a multi-index xa_state
-is not supported.  Using either of these functions on a multi-index entry
-will reveal sibling entries; these should be skipped over by the caller.
+Using xas_next() or xas_prev() with a multi-index xa_state is not
+supported.  Using either of these functions on a multi-index entry will
+reveal sibling entries; these should be skipped over by the caller.
 
-Storing ``NULL`` into any index of a multi-index entry will set the entry
-at every index to ``NULL`` and dissolve the tie.  Splitting a multi-index
-entry into entries occupying smaller ranges is not yet supported.
+Storing ``NULL`` into any index of a multi-index entry will set the
+entry at every index to ``NULL`` and dissolve the tie.  A multi-index
+entry can be split into entries occupying smaller ranges by calling
+xas_split_alloc() without the xa_lock held, followed by taking the lock
+and calling xas_split().
 
 Functions and structures
 ========================
--- linux-ein-5.4.0.orig/Documentation/dev-tools/gdb-kernel-debugging.rst
+++ linux-ein-5.4.0/Documentation/dev-tools/gdb-kernel-debugging.rst
@@ -39,6 +39,10 @@
   this mode. In this case, you should build the kernel with
   CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR.
 
+- Build the gdb scripts (required on kernels v5.1 and above)::
+
+    make scripts_gdb
+
 - Enable the gdb stub of QEMU/KVM, either
 
     - at VM startup time by appending "-s" to the QEMU command line
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/Makefile
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/Makefile
@@ -12,7 +12,6 @@
 	$(call if_changed,chk_binding)
 
 DT_TMP_SCHEMA := processed-schema.yaml
-extra-y += $(DT_TMP_SCHEMA)
 
 quiet_cmd_mk_schema = SCHEMA  $@
       cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs)
@@ -26,8 +25,12 @@
 
 DT_SCHEMA_FILES ?= $(addprefix $(src)/,$(DT_DOCS))
 
+ifeq ($(CHECK_DTBS),)
 extra-y += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES))
 extra-y += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES))
+endif
 
 $(obj)/$(DT_TMP_SCHEMA): $(DT_SCHEMA_FILES) FORCE
 	$(call if_changed,mk_schema)
+
+extra-y += $(DT_TMP_SCHEMA)
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/arm/fsl.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -240,6 +240,7 @@
           - enum:
               - boundary,imx8mq-nitrogen8m # i.MX8MQ NITROGEN Board
               - fsl,imx8mq-evk            # i.MX8MQ EVK Board
+              - google,imx8mq-phanbell    # Google Coral Edge TPU
               - purism,librem5-devkit     # Purism Librem5 devkit
               - solidrun,hummingboard-pulse # SolidRun Hummingboard Pulse
               - technexion,pico-pi-imx8m  # TechNexion PICO-PI-8M evk
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/arm/qcom.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -112,8 +112,8 @@
           - const: qcom,msm8974
 
       - items:
-          - const: qcom,msm8916-mtp/1
           - const: qcom,msm8916-mtp
+          - const: qcom,msm8916-mtp/1
           - const: qcom,msm8916
 
       - items:
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/arm/tegra.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/arm/tegra.yaml
@@ -49,7 +49,7 @@
           - const: toradex,apalis_t30
           - const: nvidia,tegra30
       - items:
-          - const: toradex,apalis_t30-eval-v1.1
+          - const: toradex,apalis_t30-v1.1-eval
           - const: toradex,apalis_t30-eval
           - const: toradex,apalis_t30-v1.1
           - const: toradex,apalis_t30
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/clock/imx8mp-clock.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/clock/imx8mp-clock.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bindings/clock/imx8mp-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX8M Plus Clock Control Module Binding
+
+maintainers:
+  - Anson Huang <Anson.Huang@nxp.com>
+
+description:
+  NXP i.MX8M Plus clock control module is an integrated clock controller, which
+  generates and supplies to all modules.
+
+properties:
+  compatible:
+    const: fsl,imx8mp-ccm
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: 32k osc
+      - description: 24m osc
+      - description: ext1 clock input
+      - description: ext2 clock input
+      - description: ext3 clock input
+      - description: ext4 clock input
+
+  clock-names:
+    items:
+      - const: osc_32k
+      - const: osc_24m
+      - const: clk_ext1
+      - const: clk_ext2
+      - const: clk_ext3
+      - const: clk_ext4
+
+  '#clock-cells':
+    const: 1
+    description:
+      The clock consumer should specify the desired clock by having the clock
+      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mp-clock.h
+      for the full list of i.MX8M Plus clock IDs.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+
+examples:
+  # Clock Control Module node:
+  - |
+    clk: clock-controller@30380000 {
+        compatible = "fsl,imx8mp-ccm";
+        reg = <0x30380000 0x10000>;
+        #clock-cells = <1>;
+        clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>,
+                 <&clk_ext2>, <&clk_ext3>, <&clk_ext4>;
+        clock-names = "osc_32k", "osc_24m", "clk_ext1",
+                      "clk_ext2", "clk_ext3", "clk_ext4";
+    };
+
+...
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
@@ -46,7 +46,7 @@
 Example (R-Car H3):
 
 	usb2_clksel: clock-controller@e6590630 {
-		compatible = "renesas,r8a77950-rcar-usb2-clock-sel",
+		compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
 			     "renesas,rcar-gen3-usb2-clock-sel";
 		reg = <0 0xe6590630 0 0x02>;
 		clocks = <&cpg CPG_MOD 703>, <&usb_extal>, <&usb_xtal>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
@@ -10,6 +10,9 @@
 maintainers:
   - Neil Armstrong <narmstrong@baylibre.com>
 
+allOf:
+  - $ref: /schemas/sound/name-prefix.yaml#
+
 description: |
   The Amlogic Meson Synopsys Designware Integration is composed of
   - A Synopsys DesignWare HDMI Controller IP
@@ -101,6 +104,8 @@
   "#sound-dai-cells":
     const: 0
 
+  sound-name-prefix: true
+
 required:
   - compatible
   - reg
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
@@ -78,6 +78,10 @@
   interrupts:
     maxItems: 1
 
+  amlogic,canvas:
+    description: should point to a canvas provider node
+    $ref: /schemas/types.yaml#/definitions/phandle
+
   power-domains:
     maxItems: 1
     description: phandle to the associated power domain
@@ -106,6 +110,7 @@
   - port@1
   - "#address-cells"
   - "#size-cells"
+  - amlogic,canvas
 
 examples:
   - |
@@ -116,6 +121,7 @@
         interrupts = <3>;
         #address-cells = <1>;
         #size-cells = <0>;
+        amlogic,canvas = <&canvas>;
 
         /* CVBS VDAC output port */
         port@0 {
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt
@@ -1,10 +1,10 @@
-Analog Device ADV7511(W)/13/33 HDMI Encoders
+Analog Device ADV7511(W)/13/33/35 HDMI Encoders
 -----------------------------------------
 
-The ADV7511, ADV7511W, ADV7513 and ADV7533 are HDMI audio and video transmitters
-compatible with HDMI 1.4 and DVI 1.0. They support color space conversion,
-S/PDIF, CEC and HDCP. ADV7533 supports the DSI interface for input pixels, while
-the others support RGB interface.
+The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
+transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
+conversion, S/PDIF, CEC and HDCP. ADV7533 and ADV7535 support the DSI interface
+for input pixels, while the others support RGB interface.
 
 Required properties:
 
@@ -13,6 +13,7 @@
 		"adi,adv7511w"
 		"adi,adv7513"
 		"adi,adv7533"
+		"adi,adv7535"
 
 - reg: I2C slave addresses
   The ADV7511 internal registers are split into four pages exposed through
@@ -52,7 +53,7 @@
 - bgvdd-supply: A 1.8V supply that powers up the BGVDD pin. This is
   needed only for ADV7511.
 
-The following properties are required for ADV7533:
+The following properties are required for ADV7533 and ADV7535:
 
 - adi,dsi-lanes: Number of DSI data lanes connected to the DSI host. It should
   be one of 1, 2, 3 or 4.
@@ -71,23 +72,31 @@
 - adi,embedded-sync: The input uses synchronization signals embedded in the
   data stream (similar to BT.656). Defaults to separate H/V synchronization
   signals.
-- adi,disable-timing-generator: Only for ADV7533. Disables the internal timing
-  generator. The chip will rely on the sync signals in the DSI data lanes,
-  rather than generate its own timings for HDMI output.
+- adi,disable-timing-generator: Only for ADV7533 and ADV7535. Disables the
+  internal timing generator. The chip will rely on the sync signals in the DSI
+  data lanes, rather than generate its own timings for HDMI output.
 - clocks: from common clock binding: reference to the CEC clock.
 - clock-names: from common clock binding: must be "cec".
 - reg-names : Names of maps with programmable addresses.
 	It can contain any map needing a non-default address.
 	Possible maps names are : "main", "edid", "cec", "packet"
+- adi,dsi-channel: Only for ADV7533 and ADV7535. DSI channel number to be used
+  when communicating with the DSI peripheral. It should be one of 0, 1, 2 or 3.
+- adi,addr-cec: Only for ADV7533 and ADV7535. The I2C DSI-CEC register map
+  address to be programmed into the MAIN register map.
+- adi,addr-edid: Only for ADV7533 and ADV7535. The I2C EDID register map
+  to be programmed into the MAIN register map.
+- adi,addr-pkt: Only for ADV7533 and ADV7535. The I2C PACKET register map
+  to be programmed into the MAIN register map.
 
 Required nodes:
 
 The ADV7511 has two video ports. Their connections are modelled using the OF
 graph bindings specified in Documentation/devicetree/bindings/graph.txt.
 
-- Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533, the
-  remote endpoint phandle should be a reference to a valid mipi_dsi_host device
-  node.
+- Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533 and
+  ADV7535, the remote endpoint phandle should be a reference to a valid
+  mipi_dsi_host device node.
 - Video port 1 for the HDMI output
 - Audio port 2 for the HDMI audio input
 
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/bridge/nxp,seiko-43wvfig.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/bridge/nxp,seiko-43wvfig.txt
@@ -0,0 +1,40 @@
+Legacy Freescale RA169Z20 adapter card for Seiko 43WVFIG panel, driver bindings
+
+This is an adapter card made for the 4.3", 800x480, LCD panel Seiko 43WVFIG.
+The LCD panel is a 24bit DPI bus, while the adapter card has two ports:
+18-bit and 24-bit data input. For the 18-bit data input, the adapter card
+is demuxing some of the data lines, in order to feed all of the 24 lines
+needed by the LCD.
+
+Required properties:
+- compatible: 	"nxp,seiko-43wvfig"
+- bus_mode:	must be one of <18> or <24>, depending on the input port
+		used (18-bit or 24-bit)
+- port:		input and output port nodes with endpoint definitions as
+		defined in Documentation/devicetree/bindings/graph.txt;
+		the input port should be connected to an lcd controller
+		while the output port should be connected to the Seiko
+		43wvfig LCD panel
+
+Example:
+	seiko_adapter: seiko-adapter {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "nxp,seiko-43wvfig";
+		bus_mode = <18>;
+
+		port@0 {
+			reg = <0>;
+			adapter_in: endpoint {
+				remote-endpoint = <&lcdif_out>;
+			};
+		};
+		port@1 {
+			reg = <1>;
+			adapter_out: endpoint {
+				remote-endpoint = <&panel_in>;
+			};
+		};
+	};
+
+-
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/bridge/sec_dsim.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/bridge/sec_dsim.txt
@@ -0,0 +1,60 @@
+Samsung MIPI DSIM bridge bindings
+
+The MIPI DSIM host controller drives the video signals from
+display controller to video peripherals using DSI protocol.
+This is an un-managed DSI bridge. In order to use this bridge,
+an encoder or bridge must be implemented to manage the platform
+specific initializations.
+
+Required properties:
+- compatible: 		"fsl,imx8mm-mipi-dsim"
+- reg: 			the register range of the MIPI DSIM controller
+- interrupts: 		the interrupt number for this module
+- clock, clock-names: 	phandles to the MIPI-DSI clocks described in
+  Documentation/devicetree/bindings/clock/clock-bindings.txt
+	"cfg"		- DSIM access clock
+	"pll-ref"	- DSIM PHY PLL reference clock
+- assigned-clocks:	phandles to clocks that requires initial configuration
+- assigned-clock-rates:	rates of the clocks that requires initial configuration
+- pref-clk:		Assign DPHY PLL reference clock frequency. If not exists,
+			DSIM bridge driver will use the default lock frequency
+			which is 27MHz.
+- port: 		input and output port nodes with endpoint definitions as
+			defined in Documentation/devicetree/bindings/graph.txt;
+			the input port should be connected to an encoder or a
+			bridge that manages this MIPI DSIM host and the output
+			port should be connected to a panel or a bridge input
+			port
+
+Optional properties:
+-dsi-gpr:		a phandle which provides the MIPI DSIM control and gpr registers
+
+example:
+	mipi_dsi: mipi_dsi@32E10000 {
+		compatible = "fsl,imx8mm-mipi-dsim";
+		reg = <0x0 0x32e10000 0x0 0x400>;
+		clocks = <&clk IMX8MM_CLK_DSI_CORE_DIV>,
+			 <&clk IMX8MM_CLK_DSI_PHY_REF_DIV>;
+		clock-names = "cfg", "pll-ref";
+		assigned-clocks = <&clk IMX8MM_CLK_DSI_CORE_SRC>,
+				  <&clk IMX8MM_CLK_DSI_PHY_REF_SRC>;
+		assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
+					 <&clk IMX8MM_VIDEO_PLL1_OUT>;
+		assigned-clock-rates = <266000000>, <594000000>;
+		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+		dsi-gpr = <&dispmix_gpr>;
+		status = "disabled";
+
+		port@0 {
+			dsim_from_lcdif: endpoint {
+				remote-endpoint = <&lcdif_to_dsim>;
+			};
+		};
+
+		port@1 {
+			dsim_to_adv7535: endpoint {
+				remote-endpoint = <&adv7535_from_dsim>;
+			};
+		};
+
+	};
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
@@ -0,0 +1,108 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2019 NXP
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: iMX8MQ Display Controller Subsystem (DCSS)
+
+maintainers:
+  - Laurentiu Palcu <laurentiu.palcu@nxp.com>
+
+description:
+
+  The DCSS (display controller sub system) is used to source up to three
+  display buffers, compose them, and drive a display using HDMI 2.0a(with HDCP
+  2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10
+  image processing capabilities are included to provide a solution capable of
+  driving next generation high dynamic range displays.
+
+properties:
+  compatible:
+    const: nxp,imx8mq-dcss
+
+  reg:
+    items:
+      - description: DCSS base address and size, up to IRQ steer start
+      - description: DCSS BLKCTL base address and size
+
+  interrupts:
+    items:
+      - description: Context loader completion and error interrupt
+      - description: DTG interrupt used to signal context loader trigger time
+      - description: DTG interrupt for Vblank
+
+  interrupt-names:
+    items:
+      - const: ctxld
+      - const: ctxld_kick
+      - const: vblank
+
+  clocks:
+    items:
+      - description: Display APB clock for all peripheral PIO access interfaces
+      - description: Display AXI clock needed by DPR, Scaler, RTRAM_CTRL
+      - description: RTRAM clock
+      - description: Pixel clock, can be driven either by HDMI phy clock or MIPI
+      - description: DTRC clock, needed by video decompressor
+
+  clock-names:
+    items:
+      - const: apb
+      - const: axi
+      - const: rtrm
+      - const: pix
+      - const: dtrc
+
+  assigned-clocks:
+    items:
+      - description: Phandle and clock specifier of IMX8MQ_CLK_DISP_AXI_ROOT
+      - description: Phandle and clock specifier of IMX8MQ_CLK_DISP_RTRM
+      - description: Phandle and clock specifier of either IMX8MQ_VIDEO2_PLL1_REF_SEL or
+                     IMX8MQ_VIDEO_PLL1_REF_SEL
+
+  assigned-clock-parents:
+    items:
+      - description: Phandle and clock specifier of IMX8MQ_SYS1_PLL_800M
+      - description: Phandle and clock specifier of IMX8MQ_SYS1_PLL_800M
+      - description: Phandle and clock specifier of IMX8MQ_CLK_27M
+
+  assigned-clock-rates:
+    items:
+      - description: Must be 800 MHz
+      - description: Must be 400 MHz
+
+  port:
+    type: object
+    description:
+      A port node pointing to the input port of a HDMI/DP or MIPI display bridge.
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8mq-clock.h>
+    dcss: display-controller@32e00000 {
+        compatible = "nxp,imx8mq-dcss";
+        reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
+        interrupts = <6>, <8>, <9>;
+        interrupt-names = "ctxld", "ctxld_kick", "vblank";
+        interrupt-parent = <&irqsteer>;
+        clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>, <&clk IMX8MQ_CLK_DISP_AXI_ROOT>,
+                 <&clk IMX8MQ_CLK_DISP_RTRM_ROOT>, <&clk IMX8MQ_VIDEO2_PLL_OUT>,
+                 <&clk IMX8MQ_CLK_DISP_DTRC>;
+        clock-names = "apb", "axi", "rtrm", "pix", "dtrc";
+        assigned-clocks = <&clk IMX8MQ_CLK_DISP_AXI>, <&clk IMX8MQ_CLK_DISP_RTRM>,
+                          <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>;
+        assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, <&clk IMX8MQ_SYS1_PLL_800M>,
+                                 <&clk IMX8MQ_CLK_27M>;
+        assigned-clock-rates = <800000000>,
+                               <400000000>;
+        port {
+            dcss_out: endpoint {
+                remote-endpoint = <&hdmi_in>;
+            };
+        };
+    };
+
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt
@@ -16,6 +16,9 @@
   Documentation/devicetree/bindings/graph.txt. This port should be connected
   to the input port of an attached HDMI or LVDS encoder chip.
 
+Optional properties:
+- pinctrl-names: Contain "default" and "sleep".
+
 Example:
 
 dpi0: dpi@1401d000 {
@@ -26,6 +29,9 @@
 		 <&mmsys CLK_MM_DPI_ENGINE>,
 		 <&apmixedsys CLK_APMIXED_TVDPLL>;
 	clock-names = "pixel", "engine", "pll";
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&dpi_pin_func>;
+	pinctrl-1 = <&dpi_pin_idle>;
 
 	port {
 		dpi0_out: endpoint {
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml
@@ -58,7 +58,7 @@
 then:
   properties:
     clocks:
-      maxItems: 2
+      minItems: 2
 
   required:
     - clock-names
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
@@ -51,8 +51,14 @@
 	22	SSI Dual FIFO	(needs firmware ver >= 2)
 	23	Shared ASRC
 	24	SAI
+	25	HDMI Audio
 
-The third cell specifies the transfer priority as below.
+The third cell specifies the transfer priority and software done
+as below.
+
+	Bit31: sw_done
+	Bit15~Bit8: selector
+	Bit7~Bit0: priority level
 
 	ID	transfer priority
 	-------------------------
@@ -60,6 +66,9 @@
 	1	Medium
 	2	Low
 
+For example: 0x80000000 means sw_done enabled for done0 sector and
+	High priority for PDM on i.mx8mm.
+
 Optional properties:
 
 - gpr : The phandle to the General Purpose Register (GPR) node.
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt
@@ -34,8 +34,8 @@
 Use specific request line passing from dma
 For example, MMC request line is 5
 
-	sdhci: sdhci@98e00000 {
-		compatible = "moxa,moxart-sdhci";
+	mmc: mmc@98e00000 {
+		compatible = "moxa,moxart-mmc";
 		reg = <0x98e00000 0x5C>;
 		interrupts = <5 0>;
 		clocks = <&clk_apb>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/gpio/gpio-altera.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/gpio/gpio-altera.txt
@@ -9,8 +9,9 @@
   - The second cell is reserved and is currently unused.
 - gpio-controller : Marks the device node as a GPIO controller.
 - interrupt-controller: Mark the device node as an interrupt controller
-- #interrupt-cells : Should be 1. The interrupt type is fixed in the hardware.
+- #interrupt-cells : Should be 2. The interrupt type is fixed in the hardware.
   - The first cell is the GPIO offset number within the GPIO controller.
+  - The second cell is the interrupt trigger type and level flags.
 - interrupts: Specify the interrupt.
 - altr,interrupt-type: Specifies the interrupt trigger type the GPIO
   hardware is synthesized. This field is required if the Altera GPIO controller
@@ -38,6 +39,6 @@
 	altr,interrupt-type = <IRQ_TYPE_EDGE_RISING>;
 	#gpio-cells = <2>;
 	gpio-controller;
-	#interrupt-cells = <1>;
+	#interrupt-cells = <2>;
 	interrupt-controller;
 };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/gpio/sgpio-aspeed.txt
@@ -20,8 +20,9 @@
 - gpio-controller : Marks the device node as a GPIO controller
 - interrupts : Interrupt specifier, see interrupt-controller/interrupts.txt
 - interrupt-controller : Mark the GPIO controller as an interrupt-controller
-- ngpios : number of GPIO lines, see gpio.txt
-  (should be multiple of 8, up to 80 pins)
+- ngpios : number of *hardware* GPIO lines, see gpio.txt. This will expose
+  2 software GPIOs per hardware GPIO: one for hardware input, one for hardware
+  output. Up to 80 pins, must be a multiple of 8.
 - clocks : A phandle to the APB clock for SGPM clock division
 - bus-frequency : SGPM CLK frequency
 
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
@@ -85,7 +85,7 @@
       Must be the device tree identifier of the over-sampling
       mode pins. As the line is active high, it should be marked
       GPIO_ACTIVE_HIGH.
-    maxItems: 1
+    maxItems: 3
 
   adi,sw-mode:
     description:
@@ -128,9 +128,9 @@
                 adi,conversion-start-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
                 reset-gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
                 adi,first-data-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
-                adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH
-                                                &gpio 23 GPIO_ACTIVE_HIGH
-                                                &gpio 26 GPIO_ACTIVE_HIGH>;
+                adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>,
+                                               <&gpio 23 GPIO_ACTIVE_HIGH>,
+                                               <&gpio 26 GPIO_ACTIVE_HIGH>;
                 standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
                 adi,sw-mode;
         };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
@@ -21,7 +21,7 @@
 
 Example:
 	mux: mux-controller {
-		compatible = "mux-gpio";
+		compatible = "gpio-mux";
 		#mux-control-cells = <0>;
 
 		mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/input/touchscreen/focaltech-ts.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/input/touchscreen/focaltech-ts.txt
@@ -0,0 +1,48 @@
+FocalTech touch controller
+
+The focaltech controller is connected to host processor via i2c.
+The controller generates interrupts when the user touches the panel.
+The host controller is expected to read the touch coordinates over
+i2c and pass the coordinates to the rest of the system.
+
+Required properties:
+ - compatible		: should be "focaltech,fts"
+ - reg			: i2c slave address of the device, should be <0x38>
+ - interrupt-parent	: parent of interrupt
+ - interrupts		: irq gpio, "0x02" stands for that the irq triggered by falling edge.
+ - focaltech,irq-gpio	: irq gpio, same as "interrupts" node.
+ - focaltech,reset-gpio	: reset gpio
+ - focaltech,num-max-touches	: maximum number of touches support
+ - focaltech,display-coords	: display resolution in pixels. A four tuple consisting of minX, minY, maxX and maxY.
+
+Optional properties:
+ - focaltech,have-key		: specify if virtual keys are supported
+ - focaltech,key-number		: number of keys
+ - focaltech,keys		: virtual key codes mapping to the coords
+ - focaltech,key-y-coord	: constant y coordinate of keys, depends on the y resolution
+ - focaltech,key-x-coords	: constant x coordinates of keys, depends on the x resolution
+ - focaltech,swap-xy		: swap x-y coordinates
+ - focaltech,panel-type		: set panel type, default is FT5416 panel
+ - focaltech,scaling-down-half	: scale down the x-y coordiantes to half
+
+
+Example:
+	i2c@f9927000 {
+		focaltech@38{
+			compatible = "focaltech,fts";
+			reg = <0x38>;
+			interrupt-parent = <&msm_gpio>;
+			interrupts = <13 0x02>;
+			focaltech,reset-gpio = <&msm_gpio 12 0x01>;
+			focaltech,irq-gpio = <&msm_gpio 13 0x02>;
+			focaltech,max-touch-number = <5>;
+			focaltech,display-coords =  <0 0 1080 1920>;
+
+			focaltech,have-key;
+			focaltech,key-number = <3>;
+			focaltech,keys = <139 102 158>;
+			focaltech,key-y-coord = <2000>;
+			focaltech,key-x-coords = <200 600 800>;
+			focaltech,swap-xy;
+		};
+	};
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
@@ -87,7 +87,7 @@
 		ranges;
 
 		/* APU<->RPU0 IPI mailbox controller */
-		ipi_mailbox_rpu0: mailbox@ff90400 {
+		ipi_mailbox_rpu0: mailbox@ff990400 {
 			reg = <0xff990400 0x20>,
 			      <0xff990420 0x20>,
 			      <0xff990080 0x20>,
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ahc1ec0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Advantech Embedded Controller (AHC1EC0)
+
+maintainers:
+  - Campion Kang <campion.kang@advantech.com.tw>
+
+description: |
+  AHC1EC0 is one of the embedded controllers used by Advantech to provide several
+  functions such as watchdog, hwmon, brightness, etc. Advantech related applications
+  can control the whole system via these functions.
+
+properties:
+  compatible:
+    const: advantech,ahc1ec0
+
+  advantech,sub-dev-nb:
+    description:
+      The number of sub-devices specified in the platform.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maxItems: 1
+
+  advantech,sub-dev:
+    description:
+      A list of the sub-devices supported in the platform. Defines for the
+      appropriate values can found in dt-bindings/mfd/ahc1ec0-dt.h.
+    $ref: "/schemas/types.yaml#/definitions/uint32-array"
+    minItems: 1
+    maxItems: 6
+
+  advantech,hwmon-profile:
+    description:
+      The number of sub-devices specified in the platform. Defines for the
+      hwmon profiles can found in dt-bindings/mfd/ahc1ec0-dt.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maxItems: 1
+
+required:
+  - compatible
+  - advantech,sub-dev-nb
+  - advantech,sub-dev
+
+if:
+  properties:
+    advantech,sub-dev:
+      contains:
+        const: 0x3
+then:
+  required:
+    - advantech,hwmon-profile
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/mfd/ahc1ec0-dt.h>
+    ahc1ec0 {
+        compatible = "advantech,ahc1ec0";
+
+        advantech,sub-dev-nb = <2>;
+        advantech,sub-dev = <AHC1EC0_SUBDEV_HWMON
+                             AHC1EC0_SUBDEV_WDT>;
+
+        advantech,hwmon-profile = <AHC1EC0_HWMON_PRO_UNO2271G>;
+    };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml
@@ -0,0 +1,197 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Gateworks System Controller
+
+description: |
+  The Gateworks System Controller (GSC) is a device present across various
+  Gateworks product families that provides a set of system related features
+  such as the following (refer to the board hardware user manuals to see what
+  features are present)
+   - Watchdog Timer
+   - GPIO
+   - Pushbutton controller
+   - Hardware monitor with ADC's for temperature and voltage rails and
+     fan controller
+
+maintainers:
+  - Tim Harvey <tharvey@gateworks.com>
+  - Robert Jones <rjones@gateworks.com>
+
+properties:
+  $nodename:
+    pattern: "gsc@[0-9a-f]{1,2}"
+  compatible:
+    const: gw,gsc
+
+  reg:
+    description: I2C device address
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  adc:
+    type: object
+    description: Optional hardware monitoring module
+
+    properties:
+      compatible:
+        const: gw,gsc-adc
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    patternProperties:
+      "^channel@[0-9]+$":
+        type: object
+        description: |
+          Properties for a single ADC which can report cooked values
+          (i.e. temperature sensor based on thermister), raw values
+          (i.e. voltage rail with a pre-scaling resistor divider).
+
+        properties:
+          reg:
+            description: Register of the ADC
+            maxItems: 1
+
+          label:
+            description: Name of the ADC input
+
+          gw,mode:
+            description: |
+              conversion mode:
+                0 - temperature, in C*10
+                1 - pre-scaled 24-bit voltage value
+                2 - scaled voltage based on an optional resistor divider
+                    and optional offset
+                3 - pre-scaled 16-bit voltage value
+            $ref: /schemas/types.yaml#/definitions/uint32
+            enum: [0, 1, 2, 3]
+
+          gw,voltage-divider-ohms:
+            description: Values of resistors for divider on raw ADC input
+            maxItems: 2
+            items:
+             minimum: 1000
+             maximum: 1000000
+
+          gw,voltage-offset-microvolt:
+            description: |
+              A positive voltage offset to apply to a raw ADC
+              (i.e. to compensate for a diode drop).
+            minimum: 0
+            maximum: 1000000
+
+        required:
+          - gw,mode
+          - reg
+          - label
+
+    required:
+      - compatible
+      - "#address-cells"
+      - "#size-cells"
+
+patternProperties:
+  "^fan-controller@[0-9a-f]+$":
+    type: object
+    description: Optional fan controller
+
+    properties:
+      compatible:
+        const: gw,gsc-fan
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+      reg:
+        description: The fan controller base address
+        maxItems: 1
+
+    required:
+      - compatible
+      - reg
+      - "#address-cells"
+      - "#size-cells"
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-controller
+  - "#interrupt-cells"
+  - "#address-cells"
+  - "#size-cells"
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        gsc@20 {
+            compatible = "gw,gsc";
+            reg = <0x20>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <4 GPIO_ACTIVE_LOW>;
+            interrupt-controller;
+            #interrupt-cells = <1>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            adc {
+                compatible = "gw,gsc-adc";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                channel@0 { /* A0: Board Temperature */
+                    reg = <0x00>;
+                    label = "temp";
+                    gw,mode = <0>;
+                };
+
+                channel@2 { /* A1: Input Voltage (raw ADC) */
+                    reg = <0x02>;
+                    label = "vdd_vin";
+                    gw,mode = <1>;
+                    gw,voltage-divider-ohms = <22100 1000>;
+                    gw,voltage-offset-microvolt = <800000>;
+                };
+
+                channel@b { /* A2: Battery voltage */
+                    reg = <0x0b>;
+                    label = "vdd_bat";
+                    gw,mode = <1>;
+                };
+            };
+
+            fan-controller@2c {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                compatible = "gw,gsc-fan";
+                reg = <0x2c>;
+            };
+        };
+    };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mmc/mtk-sd.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mmc/mtk-sd.txt
@@ -49,6 +49,8 @@
 		     error caused by stop clock(fifo full)
 		     Valid range = [0:0x7]. if not present, default value is 0.
 		     applied to compatible "mediatek,mt2701-mmc".
+- resets: Phandle and reset specifier pair to softreset line of MSDC IP.
+- reset-names: Should be "hrst".
 
 Examples:
 mmc0: mmc@11230000 {
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
@@ -15,8 +15,15 @@
   - "nvidia,tegra210-sdhci": for Tegra210
   - "nvidia,tegra186-sdhci": for Tegra186
   - "nvidia,tegra194-sdhci": for Tegra194
-- clocks : Must contain one entry, for the module clock.
-  See ../clocks/clock-bindings.txt for details.
+- clocks: For Tegra210, Tegra186 and Tegra194 must contain two entries.
+	  One for the module clock and one for the timeout clock.
+	  For all other Tegra devices, must contain a single entry for
+	  the module clock. See ../clocks/clock-bindings.txt for details.
+- clock-names: For Tegra210, Tegra186 and Tegra194 must contain the
+	       strings 'sdhci' and 'tmclk' to represent the module and
+	       the timeout clocks, respectively.
+	       For all other Tegra devices must contain the string 'sdhci'
+	       to represent the module clock.
 - resets : Must contain an entry for each entry in reset-names.
   See ../reset/reset.txt for details.
 - reset-names : Must include the following entries:
@@ -99,7 +106,7 @@
 
 Example:
 sdhci@700b0000 {
-	compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
+	compatible = "nvidia,tegra124-sdhci";
 	reg = <0x0 0x700b0000 0x0 0x200>;
 	interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
 	clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
@@ -107,6 +114,25 @@
 	resets = <&tegra_car 14>;
 	reset-names = "sdhci";
 	pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+	pinctrl-0 = <&sdmmc1_3v3>;
+	pinctrl-1 = <&sdmmc1_1v8>;
+	nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
+	nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
+	nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
+	nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
+	status = "disabled";
+};
+
+sdhci@700b0000 {
+	compatible = "nvidia,tegra210-sdhci";
+	reg = <0x0 0x700b0000 0x0 0x200>;
+	interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+	clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
+		 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+	clock-names = "sdhci", "tmclk";
+	resets = <&tegra_car 14>;
+	reset-names = "sdhci";
+	pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
 	pinctrl-0 = <&sdmmc1_3v3>;
 	pinctrl-1 = <&sdmmc1_1v8>;
 	nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
@@ -122,7 +122,7 @@
 	so the device should have enough free bytes available its OOB/Spare
 	area to accommodate ECC for entire page. In general following expression
 	helps in determining if given device can accommodate ECC syndrome:
-	"2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE"
+	"2 + (PAGESIZE / 512) * ECC_BYTES" <= OOBSIZE"
 	where
 		OOBSIZE		number of bytes in OOB/spare area
 		PAGESIZE	number of bytes in main-area of device page
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/mtd/nand-controller.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/mtd/nand-controller.yaml
@@ -44,7 +44,7 @@
     properties:
       reg:
         description:
-          Contains the native Ready/Busy IDs.
+          Contains the chip-select IDs.
 
       nand-ecc-mode:
         allOf:
@@ -139,6 +139,6 @@
         nand-ecc-mode = "soft";
         nand-ecc-algo = "bch";
 
-        /* controller specific properties */
+        /* NAND chip specific properties */
       };
     };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/btusb.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/btusb.txt
@@ -38,7 +38,7 @@
 	compatible = "usb1286,204e";
 	reg = <1>;
 	interrupt-parent = <&gpio0>;
-	interrupt-name = "wakeup";
+	interrupt-names = "wakeup";
 	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
     };
 };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
@@ -31,9 +31,9 @@
 		#address-cells = <1>;
 		#size-cells = <1>;
 		spi-max-frequency = <10000000>;
-		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+		bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
 		interrupt-parent = <&gpio1>;
-		interrupts = <14 GPIO_ACTIVE_LOW>;
+		interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
 		device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
 		device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
 		reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/ethernet-controller.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/ethernet-controller.yaml
@@ -51,7 +51,7 @@
     description:
       Reference to an nvmem node for the MAC address
 
-  nvmem-cells-names:
+  nvmem-cell-names:
     const: mac-address
 
   phy-connection-type:
@@ -190,6 +190,11 @@
                 Indicates that full-duplex is used. When absent, half
                 duplex is assumed.
 
+            pause:
+              $ref: /schemas/types.yaml#definitions/flag
+              description:
+                Indicates that pause should be enabled.
+
             asym-pause:
               $ref: /schemas/types.yaml#definitions/flag
               description:
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/ethernet-phy.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/ethernet-phy.yaml
@@ -87,6 +87,14 @@
       compensate for the board being designed with the lanes
       swapped.
 
+  enet-phy-lane-no-swap:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If set, indicates that PHY will disable swap of the
+      TX/RX lanes. This property allows the PHY to work correcly after
+      e.g. wrong bootstrap configuration caused by issues in PCB
+      layout design.
+
   eee-broken-100tx:
     $ref: /schemas/types.yaml#definitions/flag
     description:
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/fsl-fec.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/fsl-fec.txt
@@ -22,6 +22,11 @@
 - fsl,err006687-workaround-present: If present indicates that the system has
   the hardware workaround for ERR006687 applied and does not need a software
   workaround.
+- fsl,stop-mode: register bits of stop mode control, the format is
+		 <&gpr req_gpr req_bit>.
+		 gpr is the phandle to general purpose register node.
+		 req_gpr is the gpr register offset for ENET stop request.
+		 req_bit is the gpr bit offset for ENET stop request.
  -interrupt-names:  names of the interrupts listed in interrupts property in
   the same order. The defaults if not specified are
   __Number of interrupts__   __Default__
@@ -80,6 +85,7 @@
 	phy-supply = <&reg_fec_supply>;
 	phy-handle = <&ethphy>;
 	mdio {
+	        clock-frequency = <5000000>;
 		ethphy: ethernet-phy@6 {
 			compatible = "ethernet-phy-ieee802.3-c22";
 			reg = <6>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/fsl-fman.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/fsl-fman.txt
@@ -110,6 +110,13 @@
 		Usage: required
 		Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt
 
+- fsl,erratum-a050385
+		Usage: optional
+		Value type: boolean
+		Definition: A boolean property. Indicates the presence of the
+		erratum A050385 which indicates that DMA transactions that are
+		split can result in a FMan lock.
+
 =============================================================================
 FMan MURAM Node
 
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/mdio.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/mdio.yaml
@@ -39,6 +39,18 @@
       and must therefore be appropriately determined based on all PHY
       requirements (maximum value of all per-PHY RESET pulse widths).
 
+  clock-frequency:
+    description:
+      Desired MDIO bus clock frequency in Hz. Values greater than IEEE 802.3
+      defined 2.5MHz should only be used when all devices on the bus support
+      the given clock speed.
+
+  suppress-preamble:
+    description:
+      The 32 bit preamble should be suppressed. In order for this to
+      work, all devices on the bus must support suppressed preamble.
+    type: boolean
+
 patternProperties:
   "^ethernet-phy@[0-9a-f]+$":
     type: object
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
@@ -25,7 +25,7 @@
 		clock-frequency = <100000>;
 
 		interrupt-parent = <&gpio1>;
-		interrupts = <29 GPIO_ACTIVE_HIGH>;
+		interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
 
 		enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
 		firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/nfc/pn544.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/nfc/pn544.txt
@@ -25,7 +25,7 @@
 		clock-frequency = <400000>;
 
 		interrupt-parent = <&gpio1>;
-		interrupts = <17 GPIO_ACTIVE_HIGH>;
+		interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
 
 		enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
 		firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -347,6 +347,7 @@
               - st,spear600-gmac
 
     then:
+      properties:
         snps,tso:
           $ref: /schemas/types.yaml#definitions/flag
           description:
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
@@ -81,6 +81,12 @@
 	Definition: Name of external front end module used. Some valid FEM names
 		    for example: "microsemi-lx5586", "sky85703-11"
 		    and "sky85803" etc.
+- qcom,snoc-host-cap-8bit-quirk:
+	Usage: Optional
+	Value type: <empty>
+	Definition: Quirk specifying that the firmware expects the 8bit version
+		    of the host capability QMI request
+
 
 Example (to supply PCI based wifi block details):
 
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
@@ -10,6 +10,8 @@
 	- "fsl,imx6qp-pcie"
 	- "fsl,imx7d-pcie"
 	- "fsl,imx8mq-pcie"
+	- "fsl,imx8qm-pcie"
+	- "fsl,imx8qxp-pcie"
 - reg: base address and length of the PCIe controller
 - interrupts: A list of interrupt outputs of the controller. Must contain an
   entry for each entry in the interrupt-names property.
@@ -38,6 +40,9 @@
   The regulator will be enabled when initializing the PCIe host and
   disabled either as part of the init process or when shutting down the
   host.
+- vph-supply: Should specify the regulator in charge of VPH one of the three
+  PCIe PHY powers. This regulator can be supplied by both 1.8v and 3.3v voltage
+  supplies.
 
 Additional required properties for imx6sx-pcie:
 - clock names: Must include the following additional entries:
@@ -60,6 +65,17 @@
 - clock-names: Must include the following additional entries:
 	- "pcie_aux"
 
+Additional required properties for imx8 pcie:
+- hsio-cfg: hsio configration mode when the pcie node is supported.
+  mode 1: pciea 2 lanes and one sata ahci port.
+  mode 2: pciea 1 lane, pcieb 1 lane and one sata ahci port.
+  mode 3: pciea 2 lanes, pcieb 1 lane.
+- local-addr: the local address used in hsio module.
+	Example:
+		hsio-cfg = <PCIEAX2PCIEBX1>;
+		hsio = <&hsio>;
+		local-addr = <0x80000000>;
+
 Example:
 
 	pcie@01000000 {
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
@@ -118,7 +118,7 @@
 --------
 
 	pcie@14180000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
 		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x38000000 0x0 0x00040000   /* configuration space (256K) */
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt
@@ -5,6 +5,9 @@
 - compatible: should be one of:
 	"fsl,imx8-ddr-pmu"
 	"fsl,imx8m-ddr-pmu"
+	"fsl,imx8mp-ddr-pmu"
+	"fsl,imx8dxl-ddr-pmu"
+	"fsl,imx8dxl-db-pmu"
 
 - reg: physical address and size
 
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/phy/amlogic,g12a-usb3-pcie-phy.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/phy/amlogic,g12a-usb3-pcie-phy.yaml
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2019 BayLibre, SAS
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/phy/amlogic,g12a-usb3-pcie-phy.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Amlogic G12A USB3 + PCIE Combo PHY
+
+maintainers:
+  - Neil Armstrong <narmstrong@baylibre.com>
+
+properties:
+  compatible:
+    enum:
+      - amlogic,g12a-usb3-pcie-phy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: ref_clk
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: phy
+
+  "#phy-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - "#phy-cells"
+
+examples:
+  - |
+    phy@46000 {
+          compatible = "amlogic,g12a-usb3-pcie-phy";
+          reg = <0x46000 0x2000>;
+          clocks = <&ref_clk>;
+          clock-names = "ref_clk";
+          resets = <&phy_reset>;
+          reset-names = "phy";
+          #phy-cells = <1>;
+    };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.txt
@@ -1,7 +1,7 @@
 * Freescale i.MX8MQ USB3 PHY binding
 
 Required properties:
-- compatible:	Should be "fsl,imx8mq-usb-phy"
+- compatible:	Should be "fsl,imx8mq-usb-phy" or "fsl,imx8mp-usb-phy"
 - #phys-cells:	must be 0 (see phy-bindings.txt in this directory)
 - reg:		The base address and length of the registers
 - clocks:	phandles to the clocks for each clock listed in clock-names
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/fsl,imx8mp-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale IMX8MP IOMUX Controller
+
+maintainers:
+  - Anson Huang <Anson.Huang@nxp.com>
+
+description:
+  Please refer to fsl,imx-pinctrl.txt and pinctrl-bindings.txt in this directory
+  for common binding part and usage.
+
+properties:
+  compatible:
+    const: fsl,imx8mp-iomuxc
+
+  reg:
+    maxItems: 1
+
+# Client device subnode's properties
+patternProperties:
+  'grp$':
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+
+    properties:
+      fsl,pins:
+        description:
+          each entry consists of 6 integers and represents the mux and config
+          setting for one pin. The first 5 integers <mux_reg conf_reg input_reg
+          mux_val input_val> are specified using a PIN_FUNC_ID macro, which can
+          be found in <arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h>. The last
+          integer CONFIG is the pad setting value like pull-up on this pin. Please
+          refer to i.MX8M Plus Reference Manual for detailed CONFIG settings.
+        allOf:
+          - $ref: /schemas/types.yaml#/definitions/uint32-matrix
+          - items:
+              items:
+                - description: |
+                    "mux_reg" indicates the offset of mux register.
+                - description: |
+                    "conf_reg" indicates the offset of pad configuration register.
+                - description: |
+                    "input_reg" indicates the offset of select input register.
+                - description: |
+                    "mux_val" indicates the mux value to be applied.
+                - description: |
+                    "input_val" indicates the select input value to be applied.
+                - description: |
+                    "pad_setting" indicates the pad configuration value to be applied.
+
+    required:
+      - fsl,pins
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  # Pinmux controller node
+  - |
+    iomuxc: pinctrl@30330000 {
+        compatible = "fsl,imx8mp-iomuxc";
+        reg = <0x30330000 0x10000>;
+
+        pinctrl_uart2: uart2grp {
+            fsl,pins =
+                <0x228 0x488 0x5F0 0x0 0x6	0x49>,
+                <0x228 0x488 0x000 0x0 0x0	0x49>;
+        };
+    };
+
+...
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/pinctrl/marvell,armada-37xx-pinctrl.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/pinctrl/marvell,armada-37xx-pinctrl.txt
@@ -43,19 +43,19 @@
 
 group pwm0
  - pin 11 (GPIO1-11)
- - functions pwm, gpio
+ - functions pwm, led, gpio
 
 group pwm1
  - pin 12
- - functions pwm, gpio
+ - functions pwm, led, gpio
 
 group pwm2
  - pin 13
- - functions pwm, gpio
+ - functions pwm, led, gpio
 
 group pwm3
  - pin 14
- - functions pwm, gpio
+ - functions pwm, led, gpio
 
 group pmic1
  - pin 7
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
@@ -0,0 +1,195 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/nxp,pca9450-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP PCA9450A/B/C Power Management Integrated Circuit regulators
+
+maintainers:
+  - Robin Gong <yibin.gong@nxp.com>
+
+description: |
+  Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
+  definition for each of these nodes is defined using the standard
+  binding for regulators at
+  Documentation/devicetree/bindings/regulator/regulator.txt.
+  Datasheet is available at
+  https://www.nxp.com/docs/en/data-sheet/PCA9450DS.pdf
+
+#The valid names for PCA9450 regulator nodes are:
+#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6,
+#LDO1, LDO2, LDO3, LDO4, LDO5
+#Note: Buck3 removed on PCA9450B and connect with Buck1 on PCA9450C.
+
+properties:
+  compatible:
+    enum:
+      - nxp,pca9450a
+      - nxp,pca9450b
+      - nxp,pca9450c
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description: |
+      list of regulators provided by this controller
+
+    patternProperties:
+      "^LDO[1-5]$":
+        type: object
+        $ref: regulator.yaml#
+        description:
+          Properties for single LDO regulator.
+
+        properties:
+          regulator-name:
+            pattern: "^LDO[1-5]$"
+            description:
+              should be "LDO1", ..., "LDO5"
+
+        unevaluatedProperties: false
+
+      "^BUCK[1-6]$":
+        type: object
+        $ref: regulator.yaml#
+        description:
+          Properties for single BUCK regulator.
+
+        properties:
+          regulator-name:
+            pattern: "^BUCK[1-6]$"
+            description:
+              should be "BUCK1", ..., "BUCK6"
+
+          nxp,dvs-run-voltage:
+            $ref: "/schemas/types.yaml#/definitions/uint32"
+            minimum: 600000
+            maximum: 2187500
+            description:
+              PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
+              dvs(dynamic voltage scaling) property.
+
+          nxp,dvs-standby-voltage:
+            $ref: "/schemas/types.yaml#/definitions/uint32"
+            minimum: 600000
+            maximum: 2187500
+            description:
+              PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
+              dvs(dynamic voltage scaling) property.
+
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
+  sd-vsel-gpios:
+    description: GPIO that is used to switch LDO5 between being configured by
+      LDO5CTRL_L or LDO5CTRL_H register. Use this if the SD_VSEL signal is
+      connected to a host GPIO.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - regulators
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        pmic: pmic@25 {
+            compatible = "nxp,pca9450b";
+            reg = <0x25>;
+            pinctrl-0 = <&pinctrl_pmic>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+            regulators {
+                buck1: BUCK1 {
+                    regulator-name = "BUCK1";
+                    regulator-min-microvolt = <600000>;
+                    regulator-max-microvolt = <2187500>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-ramp-delay = <3125>;
+                };
+                buck2: BUCK2 {
+                    regulator-name = "BUCK2";
+                    regulator-min-microvolt = <600000>;
+                    regulator-max-microvolt = <2187500>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-ramp-delay = <3125>;
+                    nxp,dvs-run-voltage = <950000>;
+                    nxp,dvs-standby-voltage = <850000>;
+                };
+                buck4: BUCK4 {
+                    regulator-name = "BUCK4";
+                    regulator-min-microvolt = <600000>;
+                    regulator-max-microvolt = <3400000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+                buck5: BUCK5 {
+                    regulator-name = "BUCK5";
+                    regulator-min-microvolt = <600000>;
+                    regulator-max-microvolt = <3400000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+                buck6: BUCK6 {
+                    regulator-name = "BUCK6";
+                    regulator-min-microvolt = <600000>;
+                    regulator-max-microvolt = <3400000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+
+                ldo1: LDO1 {
+                    regulator-name = "LDO1";
+                    regulator-min-microvolt = <1600000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+                ldo2: LDO2 {
+                    regulator-name = "LDO2";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <1150000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+                ldo3: LDO3 {
+                    regulator-name = "LDO3";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+                ldo4: LDO4 {
+                    regulator-name = "LDO4";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+                ldo5: LDO5 {
+                    regulator-name = "LDO5";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+            };
+        };
+    };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt
@@ -13,6 +13,14 @@
 
 
 Required properties of the main device node (the parent!):
+ - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
+   for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
+
+ [1] If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
+     property is specified, then all the eight voltage values for the
+     's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
+
+Optional properties of the main device node (the parent!):
  - s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
    units for buck2 when changing voltage using gpio dvs. Refer to [1] below
    for additional information.
@@ -25,26 +33,13 @@
    units for buck4 when changing voltage using gpio dvs. Refer to [1] below
    for additional information.
 
- - s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
-   for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
-
- [1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
-     property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
-     property should specify atleast one voltage level (which would be a
-     safe operating voltage).
-
-     If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
-     property is specified, then all the eight voltage values for the
-     's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
-
-Optional properties of the main device node (the parent!):
  - s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
  - s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
  - s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.
 
 Additional properties required if either of the optional properties are used:
 
- - s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
+ - s5m8767,pmic-buck-default-dvs-idx: Default voltage setting selected from
    the possible 8 options selectable by the dvs gpios. The value of this
    property should be between 0 and 7. If not specified or if out of range, the
    default value of this property is set to 0.
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
@@ -22,6 +22,6 @@
 	};
 
 	&ethernet_switch {
-		resets = <&reset>;
+		resets = <&reset 26>;
 		reset-names = "switch";
 	};
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/reset/fsl,imx7-src.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/reset/fsl,imx7-src.txt
@@ -9,6 +9,8 @@
 	- For i.MX7 SoCs should be "fsl,imx7d-src", "syscon"
 	- For i.MX8MQ SoCs should be "fsl,imx8mq-src", "syscon"
 	- For i.MX8MM SoCs should be "fsl,imx8mm-src", "fsl,imx8mq-src", "syscon"
+	- For i.MX8MN SoCs should be "fsl,imx8mn-src", "fsl,imx8mq-src", "syscon"
+	- For i.MX8MP SoCs should be "fsl,imx8mp-src", "syscon"
 - reg: should be register base and length as documented in the
   datasheet
 - interrupts: Should contain SRC interrupt
@@ -49,4 +51,6 @@
 For list of all valid reset indices see
 <dt-bindings/reset/imx7-reset.h> for i.MX7,
 <dt-bindings/reset/imx8mq-reset.h> for i.MX8MQ and
-<dt-bindings/reset/imx8mq-reset.h> for i.MX8MM
+<dt-bindings/reset/imx8mq-reset.h> for i.MX8MM and
+<dt-bindings/reset/imx8mq-reset.h> for i.MX8MN and
+<dt-bindings/reset/imx8mp-reset.h> for i.MX8MP
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/reset/nxp,dispmix-clk-en.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/reset/nxp,dispmix-clk-en.txt
@@ -0,0 +1,58 @@
+NXP Display Mix clk-en Reset Controller
+=======================================
+
+This binding describes a reset controller device that is used to enable
+or disable the internal clocks for all the submodules(such as, LCDIF,
+MIPI DSI, MIPI CSI, ISI and etc) included by the Display Mix subsystem
+on IMX8MM and IMX8MN platforms. Like sft-rstn, only assert and deassert
+functions are required for submodule internal clocks enable or disable,
+that means the clk-en can be treated as a real reset controller.
+
+Please also refer to reset.txt in this directory for common reset
+controller binding usage.
+
+Required properties:
+- compatible: Should be "fsl,imx8mm-dispmix-clk-en" or
+			"fsl,imx8mn-dispmix-clk-en".
+- reg: should be register base and length as documented in the datasheet.
+- clocks: phandle and clock specifier to disp apb clock for register access.
+- clock-names: should be "disp-apb".
+- power-domains: phandle to dispmix power domain.
+- reset-cells: 1, see below.
+
+example:
+
+	dispmix_clk_en: dispmix-clk-en@32e28004 {
+		compatible = "fsl,imx8mn-dispmix-clk-en";
+		reg = <0x0 0x32e28004 0x0 0x4>;
+		clocks = <&clk IMX8MN_CLK_DISP_APB_ROOT>;
+		clock-names = "disp-apb";
+		power-domains = <&dispmix_pd>;
+		#reset-cells = <1>;
+	};
+
+Specifying clk-en control of devices
+====================================
+
+Device nodes in Display Mix should specify the reset channel required in
+their "resets" property, containing a phandle to the clk-en device node
+and an index to specify which channel to use, as described in
+Documentation/devicetree/bindings/reset/reset.txt.
+
+example:
+
+	lcdif_resets: lcdif-resets {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		#reset-cells = <0>;
+
+		lcdif-clk-enable {
+			compatible = "lcdif,clk-enable";
+			resets = <&dispmix_clk_en IMX8MN_LCDIF_APB_CLK_EN>,
+				 <&dispmix_clk_en IMX8MN_LCDIF_PIXEL_CLK_EN>;
+		};
+	};
+
+Macro definitions for the supported reset channels can be found in:
+include/dt-bindings/reset/imx8mm-dispmix.h and
+include/dt-bindings/reset/imx8mn-dispmix.h.
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/reset/nxp,dispmix-mipi-rst.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/reset/nxp,dispmix-mipi-rst.txt
@@ -0,0 +1,57 @@
+NXP Display Mix mipi-rst Reset Controller
+=========================================
+
+This binding describes a reset controller device that is used to reset
+or de-reset the MIPI DPHY master direction(for MIPI DSI) and slave
+direction(for MIPI CSI) included by the Display Mix subsystem on IMX8MM
+and IMX8MN platforms. Like sft-rstn, only assert and deassert functions
+are required for PHY reset or de-reset.
+
+Please also refer to reset.txt in this directory for common reset
+controller binding usage.
+
+Required properties:
+- compatible: Should be "fsl,imx8mm-dispmix-mipi-rst" or
+			"fsl,imx8mn-dispmix-mipi-rst".
+- reg: should be register base and length as documented in the datasheet.
+- clocks: phandle and clock specifier to disp apb clock for register access.
+- clock-names: should be "disp-apb".
+- power-domains: phandle to dispmix power domain.
+- reset-cells: 1, see below.
+
+example:
+
+	dispmix_mipi_rst: dispmix-mipi-rst@32e28008 {
+		compatible = "fsl,imx8mn-dispmix-mipi-rst";
+		reg = <0x0 0x32e28008 0x0 0x4>;
+		clocks = <&clk IMX8MN_CLK_DISP_APB_ROOT>;
+		clock-names = "disp-apb";
+		active_low;
+		power-domains = <&dispmix_pd>;
+		#reset-cells = <1>;
+	};
+
+Specifying mipi-rst control of devices
+======================================
+
+Device nodes in Display Mix should specify the reset channel required in
+their "resets" property, containing a phandle to the mipi-rst device node
+and an index to specify which channel to use, as described in
+Documentation/devicetree/bindings/reset/reset.txt.
+
+example:
+
+	mipi_dsi_resets: mipi-dsi-resets {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		#reset-cells = <0>;
+
+		dsi-mipi-reset {
+			compatible = "dsi,mipi-reset";
+			resets = <&dispmix_mipi_rst IMX8MN_MIPI_M_RESET>;
+                };
+	};
+
+Macro definitions for the supported reset channels can be found in:
+include/dt-bindings/reset/imx8mm-dispmix.h and
+include/dt-bindings/reset/imx8mn-dispmix.h.
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/reset/nxp,dispmix-sft-rstn.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/reset/nxp,dispmix-sft-rstn.txt
@@ -0,0 +1,58 @@
+NXP Display Mix sft-rstn Reset Controller
+=========================================
+
+This binding describes a reset controller device that is used to reset
+or de-reset all the submodules(such as, LCDIF, MIPI DSI, MIPI CSI, ISI
+and etc) included by the Display Mix subsystem on IMX8MM and IMX8MN
+platforms. Only assert and deassert functions are required for submodule
+reset or de-reset.
+
+Please also refer to reset.txt in this directory for common reset
+controller binding usage.
+
+Required properties:
+- compatible: Should be "fsl,imx8mm-dispmix-sft-rstn" or
+			"fsl,imx8mn-dispmix-sft-rstn".
+- reg: should be register base and length as documented in the datasheet.
+- clocks: phandle and clock specifier to disp apb clock for register access.
+- clock-names: should be "disp-apb".
+- power-domains: phandle to dispmix power domain.
+- reset-cells: 1, see below.
+
+example:
+
+	dispmix_sft_rstn: dispmix-sft-rstn@32e28000 {
+		compatible = "fsl,imx8mm-dispmix-sft-rstn";
+		reg = <0x0 0x32e28000 0x0 0x4>;
+		clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+		clock-names = "disp-apb";
+		active_low;
+		power-domains = <&dispmix_pd>;
+		#reset-cells = <1>;
+	};
+
+Specifying sft-rstn control of devices
+======================================
+
+Device nodes in Display Mix should specify the reset channel required in
+their "resets" property, containing a phandle to the sft-rstn device node
+and an index to specify which channel to use, as described in
+Documentation/devicetree/bindings/reset/reset.txt.
+
+example:
+
+        lcdif_resets: lcdif-resets {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                #reset-cells = <0>;
+
+                lcdif-soft-resetn {
+                        compatible = "lcdif,soft-resetn";
+                        resets = <&dispmix_sft_rstn IMX8MN_LCDIF_APB_CLK_RESET>,
+                                 <&dispmix_sft_rstn IMX8MN_LCDIF_PIXEL_CLK_RESET>;
+                };
+        };
+
+Macro definitions for the supported reset channels can be found in:
+include/dt-bindings/reset/imx8mm-dispmix.h and
+include/dt-bindings/reset/imx8mn-dispmix.h.
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/rng/omap3_rom_rng.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/rng/omap3_rom_rng.txt
@@ -0,0 +1,27 @@
+OMAP ROM RNG driver binding
+
+Secure SoCs may provide RNG via secure ROM calls like Nokia N900 does. The
+implementation can depend on the SoC secure ROM used.
+
+- compatible:
+	Usage: required
+	Value type: <string>
+	Definition: must be "nokia,n900-rom-rng"
+
+- clocks:
+	Usage: required
+	Value type: <prop-encoded-array>
+	Definition: reference to the the RNG interface clock
+
+- clock-names:
+	Usage: required
+	Value type: <stringlist>
+	Definition: must be "ick"
+
+Example:
+
+	rom_rng: rng {
+		compatible = "nokia,n900-rom-rng";
+		clocks = <&rng_ick>;
+		clock-names = "ick";
+	};
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml
@@ -128,7 +128,6 @@
   - compatible
   - reg
   - interrupts
-  - clocks
   - clock-output-names
 
 additionalProperties: false
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/soc/fsl/fsl,rpmsg.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/soc/fsl/fsl,rpmsg.txt
@@ -0,0 +1,77 @@
+i.MX RPMSG platform implementations
+
+Distributed framework is used in IMX RPMSG implementation, refer to the
+following requirements:
+  - The CAN functions contained in M core and RTOS should be ready and
+    complete functional in 50ms after AMP system is turned on.
+  - Partition reset. System wouldn't be stalled by the exceptions (e.x
+    the reset triggered by the system hang) occurred at the other side.
+    And the RPMSG mechanism should be recovered automactilly after the
+    partition reset is completed.
+In this scenario, the M core and RTOS would be kicked off by bootloader
+firstly, then A core and Linux would be loaded later. Both M core/RTOS
+and A core/Linux are running independly.
+One physical memory region used to store the vring is mandatory required
+to pre-reserved and well-knowned by both A core and M core
+
+Required properties:
+- compatible: "fsl,imx8qxp-rpmsg", "fsl,imx8mq-rpmsg", "fsl,imx8mm-rpmsg",
+  "fsl,imx8qm-rpmsg", "fsl,imx7ulp-rpmsg", "fsl,imx7d-rpmsg",
+  "fsl,imx6sx-rpmsg".
+- vdev-nums: The number of the remote virtual devices.
+- reg: The reserved phisical DDR memory used to store vring descriptors.
+
+Optional properties:
+- rpmsg_dma_reserved: The reserved per device dma pool, that used to
+  allocate the shared memory buffers from the per device.
+  And it is optional for some platforms, since the system dma pool
+  is used to allocate the shared memory buffers directly on them.
+- mub-partition: The partition ID of muB side, that's optional
+  and used on i.mx8qm/8qxp for partition reset. The default
+  value is 3 in driver without this property.
+
+=====================================================================
+Mailbox used by iMX RPMSG
+
+- mboxes: mailboxes used in the RPMSG transactions.
+- mbox-names: names of the mailboxes used in RPMSG.
+	- "tx":TX channel with 32bit transmit register and IRQ transmit
+	- "rx":RX channel with 32bit receive register and IRQ support
+	- "rxdb":RX doorbell channel.
+
+Example:
+Rpmsg node in board dts file.
+&rpmsg{
+	/*
+	 * 64K for one rpmsg instance:
+	 */
+	vdev-nums = <2>;
+	reg = <0x0 0x90000000 0x0 0x20000>;
+	status = "okay";
+};
+
+SOC level dts node definitions:
+rpmsg_reserved: rpmsg@0x90000000 {
+	no-map;
+	reg = <0 0x90000000 0 0x400000>;
+};
+rpmsg_dma_reserved:rpmsg_dma@0x90400000 {
+	compatible = "shared-dma-pool";
+	no-map;
+	reg = <0 0x90400000 0 0x1C00000>;
+};
+rpmsg: rpmsg{
+	compatible = "fsl,imx8qxp-rpmsg";
+	/* up to now, the following channels are used in imx rpmsg
+	 * - tx1/rx1: messages channel.
+	 * - general interrupt1: remote proc finish re-init rpmsg stack
+	 *   when A core is partition reset.
+	 */
+	mbox-names = "tx", "rx", "rxdb";
+	mboxes = <&lsio_mu5 0 1
+		  &lsio_mu5 1 1
+		  &lsio_mu5 3 1>;
+	mub-partition = <3>;
+	memory-region = <&rpmsg_dma_reserved>;
+	status = "disabled";
+};
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/sound/fsl,spdif.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/sound/fsl,spdif.txt
@@ -6,7 +6,11 @@
 
 Required properties:
 
-  - compatible		: Compatible list, must contain "fsl,imx35-spdif".
+  - compatible		: Compatible list, should contain one of the following
+			  compatibles:
+			  "fsl,imx35-spdif",
+			  "fsl,vf610-spdif",
+			  "fsl,imx6sx-spdif",
 
   - reg			: Offset and length of the register set for the device.
 
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
@@ -34,6 +34,8 @@
 
  "fsl,imx-audio-wm8960"
 
+ "fsl,imx-audio-mqs"
+
 Required properties:
 
   - compatible		: Contains one of entries in the compatible list.
@@ -44,6 +46,11 @@
 
   - audio-codec		: The phandle of an audio codec
 
+Optional properties:
+
+  - audio-asrc		: The phandle of ASRC. It can be absent if there's no
+			  need to add ASRC support via DPCM.
+
   - audio-routing	: A list of the connections between audio components.
 			  Each entry is a pair of strings, the first being the
 			  connection's sink, the second being the connection's
@@ -60,11 +67,6 @@
 			        coexisting in order to support the old bindings
 				of wm8962 and sgtl5000.
 
-Optional properties:
-
-  - audio-asrc		: The phandle of ASRC. It can be absent if there's no
-			  need to add ASRC support via DPCM.
-
 Optional unless SSI is selected as a CPU DAI:
 
   - mux-int-port	: The internal port of the i.MX audio muxer (AUDMUX)
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/sound/imx-audio-cdnhdmi.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/sound/imx-audio-cdnhdmi.txt
@@ -0,0 +1,16 @@
+Freescale i.MX audio complex with Cadence HDMI
+
+Required properties:
+- compatible : "fsl,imx-audio-cdnhdmi", "fsl,imx8mq-evk-cdnhdmi"
+- model : The user-visible name of this sound complex
+- audio-cpu : The phandle of the i.MX SAI controller
+- protocol : 0 is hdmi,  1 is dp.
+
+Example:
+
+sound-hdmi {
+	compatible = "fsl,imx-audio-cdnhdmi";
+	model = "imx-audio-hdmi";
+	audio-cpu = <&sai4>;
+	protocol = <0>;
+};
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/sound/mt8183-mt6358-ts3a227-max98357.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/sound/mt8183-mt6358-ts3a227-max98357.txt
@@ -2,9 +2,11 @@
 
 Required properties:
 - compatible : "mediatek,mt8183_mt6358_ts3a227_max98357"
-- mediatek,headset-codec: the phandles of ts3a227 codecs
 - mediatek,platform: the phandle of MT8183 ASoC platform
 
+Optional properties:
+- mediatek,headset-codec: the phandles of ts3a227 codecs
+
 Example:
 
 	sound {
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/sound/qcom,wcd9335.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/sound/qcom,wcd9335.txt
@@ -109,7 +109,7 @@
 	reg  = <1 0>;
 	interrupts = <&msmgpio 54 IRQ_TYPE_LEVEL_HIGH>;
 	interrupt-names = "intr2"
-	reset-gpios = <&msmgpio 64 0>;
+	reset-gpios = <&msmgpio 64 GPIO_ACTIVE_LOW>;
 	slim-ifc-dev  = <&wc9335_ifd>;
 	clock-names = "mclk", "native";
 	clocks = <&rpmcc RPM_SMD_DIV_CLK1>,
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/sound/wm8994.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/sound/wm8994.txt
@@ -14,9 +14,15 @@
   - #gpio-cells : Must be 2. The first cell is the pin number and the
     second cell is used to specify optional parameters (currently unused).
 
-  - AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
-    SPKVDD1-supply, SPKVDD2-supply : power supplies for the device, as covered
-    in Documentation/devicetree/bindings/regulator/regulator.txt
+  - power supplies for the device, as covered in
+    Documentation/devicetree/bindings/regulator/regulator.txt, depending
+    on compatible:
+    - for wlf,wm1811 and wlf,wm8958:
+      AVDD1-supply, AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply,
+      DCVDD-supply, CPVDD-supply, SPKVDD1-supply, SPKVDD2-supply
+    - for wlf,wm8994:
+      AVDD1-supply, AVDD2-supply, DBVDD-supply, DCVDD-supply, CPVDD-supply,
+      SPKVDD1-supply, SPKVDD2-supply
 
 Optional properties:
 
@@ -73,11 +79,11 @@
 
 	lineout1-se;
 
+	AVDD1-supply = <&regulator>;
 	AVDD2-supply = <&regulator>;
 	CPVDD-supply = <&regulator>;
-	DBVDD1-supply = <&regulator>;
-	DBVDD2-supply = <&regulator>;
-	DBVDD3-supply = <&regulator>;
+	DBVDD-supply = <&regulator>;
+	DCVDD-supply = <&regulator>;
 	SPKVDD1-supply = <&regulator>;
 	SPKVDD2-supply = <&regulator>;
 };
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/spi/spi-mxic.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/spi/spi-mxic.txt
@@ -8,11 +8,13 @@
 - reg: should contain 2 entries, one for the registers and one for the direct
        mapping area
 - reg-names: should contain "regs" and "dirmap"
-- interrupts: interrupt line connected to the SPI controller
 - clock-names: should contain "ps_clk", "send_clk" and "send_dly_clk"
 - clocks: should contain 3 entries for the "ps_clk", "send_clk" and
 	  "send_dly_clk" clocks
 
+Optional properties:
+- interrupts: interrupt line connected to the SPI controller
+
 Example:
 
 	spi@43c30000 {
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
@@ -2,6 +2,11 @@
 
 Required properties:
   - compatible : Should be "nxp,lx2160a-fspi"
+			    "nxp,imx8qxp-fspi"
+			    "nxp,imx8mm-fspi"
+			    "nxp,imx8mp-fspi"
+			    "nxp,imx8dxl-fspi"
+
   - reg :        First contains the register location and length,
                  Second contains the memory mapping address and length
   - reg-names :  Should contain the resource reg names:
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/usb/dwc3.txt
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -75,6 +75,8 @@
 			from P0 to P1/P2/P3 without delay.
  - snps,dis-tx-ipgap-linecheck-quirk: when set, disable u2mac linestate check
 			during HS transmit.
+ - snps,parkmode-disable-ss-quirk: when set, all SuperSpeed bus instances in
+			park mode are disabled.
  - snps,dis_metastability_quirk: when set, disable metastability workaround.
 			CAUTION: use only if you are absolutely sure of it.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
--- linux-ein-5.4.0.orig/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ linux-ein-5.4.0/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -381,6 +381,8 @@
     description: Gumstix, Inc.
   "^gw,.*":
     description: Gateworks Corporation
+                 use "gateworks" vendor prefix
+    deprecated: true
   "^hannstar,.*":
     description: HannStar Display Corporation
   "^haoyu,.*":
--- linux-ein-5.4.0.orig/Documentation/devicetree/writing-schema.rst
+++ linux-ein-5.4.0/Documentation/devicetree/writing-schema.rst
@@ -130,11 +130,13 @@
 
     make dt_binding_check
 
-In order to perform validation of DT source files, use the `dtbs_check` target::
+In order to perform validation of DT source files, use the ``dtbs_check`` target::
 
     make dtbs_check
 
-This will first run the `dt_binding_check` which generates the processed schema.
+Note that ``dtbs_check`` will skip any binding schema files with errors. It is
+necessary to use ``dt_binding_check`` to get all the validation errors in the
+binding schema files.
 
 It is also possible to run checks with a single schema file by setting the
 ``DT_SCHEMA_FILES`` variable to a specific schema file.
--- linux-ein-5.4.0.orig/Documentation/driver-api/dmaengine/dmatest.rst
+++ linux-ein-5.4.0/Documentation/driver-api/dmaengine/dmatest.rst
@@ -143,13 +143,14 @@
 Allocating Channels
 -------------------
 
-Channels are required to be configured prior to starting the test run.
-Attempting to run the test without configuring the channels will fail.
+Channels do not need to be configured prior to starting a test run. Attempting
+to run the test without configuring the channels will result in testing any
+channels that are available.
 
 Example::
 
     % echo 1 > /sys/module/dmatest/parameters/run
-    dmatest: Could not start test, no channels configured
+    dmatest: No channels configured, continue with any
 
 Channels are registered using the "channel" parameter. Channels can be requested by their
 name, once requested, the channel is registered and a pending thread is added to the test list.
--- linux-ein-5.4.0.orig/Documentation/driver-api/firewire.rst
+++ linux-ein-5.4.0/Documentation/driver-api/firewire.rst
@@ -19,7 +19,7 @@
 Firewire char device data structures
 ====================================
 
-.. include:: /ABI/stable/firewire-cdev
+.. include:: ../ABI/stable/firewire-cdev
     :literal:
 
 .. kernel-doc:: include/uapi/linux/firewire-cdev.h
@@ -28,7 +28,7 @@
 Firewire device probing and sysfs interfaces
 ============================================
 
-.. include:: /ABI/stable/sysfs-bus-firewire
+.. include:: ../ABI/stable/sysfs-bus-firewire
     :literal:
 
 .. kernel-doc:: drivers/firewire/core-device.c
--- linux-ein-5.4.0.orig/Documentation/driver-api/libata.rst
+++ linux-ein-5.4.0/Documentation/driver-api/libata.rst
@@ -250,7 +250,7 @@
 
 ::
 
-    void (*qc_prep) (struct ata_queued_cmd *qc);
+    enum ata_completion_errors (*qc_prep) (struct ata_queued_cmd *qc);
     int (*qc_issue) (struct ata_queued_cmd *qc);
 
 
--- linux-ein-5.4.0.orig/Documentation/driver-api/spi.rst
+++ linux-ein-5.4.0/Documentation/driver-api/spi.rst
@@ -25,8 +25,8 @@
 a pair of FIFOs connected to dual DMA engines on the other side of the
 SPI shift register (maximizing throughput). Such drivers bridge between
 whatever bus they sit on (often the platform bus) and SPI, and expose
-the SPI side of their device as a :c:type:`struct spi_master
-<spi_master>`. SPI devices are children of that master,
+the SPI side of their device as a :c:type:`struct spi_controller
+<spi_controller>`. SPI devices are children of that master,
 represented as a :c:type:`struct spi_device <spi_device>` and
 manufactured from :c:type:`struct spi_board_info
 <spi_board_info>` descriptors which are usually provided by
--- linux-ein-5.4.0.orig/Documentation/fault-injection/fault-injection.rst
+++ linux-ein-5.4.0/Documentation/fault-injection/fault-injection.rst
@@ -74,8 +74,8 @@
 
 - /sys/kernel/debug/fail*/times:
 
-	specifies how many times failures may happen at most.
-	A value of -1 means "no limit".
+	specifies how many times failures may happen at most. A value of -1
+	means "no limit".
 
 - /sys/kernel/debug/fail*/space:
 
@@ -163,11 +163,13 @@
 	- ERRNO: retval must be -1 to -MAX_ERRNO (-4096).
 	- ERR_NULL: retval must be 0 or -1 to -MAX_ERRNO (-4096).
 
-- /sys/kernel/debug/fail_function/<functiuon-name>/retval:
+- /sys/kernel/debug/fail_function/<function-name>/retval:
 
-	specifies the "error" return value to inject to the given
-	function for given function. This will be created when
-	user specifies new injection entry.
+	specifies the "error" return value to inject to the given function.
+	This will be created when the user specifies a new injection entry.
+	Note that this file only accepts unsigned values. So, if you want to
+	use a negative errno, you better use 'printf' instead of 'echo', e.g.:
+	$ printf %#x -12 > retval
 
 Boot option
 ^^^^^^^^^^^
@@ -331,7 +333,7 @@
     FAILTYPE=fail_function
     FAILFUNC=open_ctree
     echo $FAILFUNC > /sys/kernel/debug/$FAILTYPE/inject
-    echo -12 > /sys/kernel/debug/$FAILTYPE/$FAILFUNC/retval
+    printf %#x -12 > /sys/kernel/debug/$FAILTYPE/$FAILFUNC/retval
     echo N > /sys/kernel/debug/$FAILTYPE/task-filter
     echo 100 > /sys/kernel/debug/$FAILTYPE/probability
     echo 0 > /sys/kernel/debug/$FAILTYPE/interval
--- linux-ein-5.4.0.orig/Documentation/fb/fbcon.rst
+++ linux-ein-5.4.0/Documentation/fb/fbcon.rst
@@ -127,7 +127,7 @@
 	is typically located on the same video card.  Thus, the consoles that
 	are controlled by the VGA console will be garbled.
 
-4. fbcon=rotate:<n>
+5. fbcon=rotate:<n>
 
 	This option changes the orientation angle of the console display. The
 	value 'n' accepts the following:
@@ -152,21 +152,21 @@
 	Actually, the underlying fb driver is totally ignorant of console
 	rotation.
 
-5. fbcon=margin:<color>
+6. fbcon=margin:<color>
 
 	This option specifies the color of the margins. The margins are the
 	leftover area at the right and the bottom of the screen that are not
 	used by text. By default, this area will be black. The 'color' value
 	is an integer number that depends on the framebuffer driver being used.
 
-6. fbcon=nodefer
+7. fbcon=nodefer
 
 	If the kernel is compiled with deferred fbcon takeover support, normally
 	the framebuffer contents, left in place by the firmware/bootloader, will
 	be preserved until there actually is some text is output to the console.
 	This option causes fbcon to bind immediately to the fbdev device.
 
-7. fbcon=logo-pos:<location>
+8. fbcon=logo-pos:<location>
 
 	The only possible 'location' is 'center' (without quotes), and when
 	given, the bootup logo is moved from the default top-left corner
--- linux-ein-5.4.0.orig/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ linux-ein-5.4.0/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -24,7 +24,7 @@
     |      parisc: |  ok  |
     |     powerpc: |  ok  |
     |       riscv: | TODO |
-    |        s390: | TODO |
+    |        s390: |  ok  |
     |          sh: | TODO |
     |       sparc: | TODO |
     |          um: | TODO |
--- linux-ein-5.4.0.orig/Documentation/filesystems/affs.txt
+++ linux-ein-5.4.0/Documentation/filesystems/affs.txt
@@ -93,13 +93,15 @@
 
   - R maps to r for user, group and others. On directories, R implies x.
 
-  - If both W and D are allowed, w will be set.
+  - W maps to w.
 
   - E maps to x.
 
-  - H and P are always retained and ignored under Linux.
+  - D is ignored.
 
-  - A is always reset when a file is written to.
+  - H, S and P are always retained and ignored under Linux.
+
+  - A is cleared when a file is written to.
 
 User id and group id will be used unless set[gu]id are given as mount
 options. Since most of the Amiga file systems are single user systems
@@ -111,11 +113,13 @@
 
 The Linux rwxrwxrwx file mode is handled as follows:
 
-  - r permission will set R for user, group and others.
+  - r permission will allow R for user, group and others.
+
+  - w permission will allow W for user, group and others.
 
-  - w permission will set W and D for user, group and others.
+  - x permission of the user will allow E for plain files.
 
-  - x permission of the user will set E for plain files.
+  - D will be allowed for user, group and others.
 
   - All other flags (suid, sgid, ...) are ignored and will
     not be retained.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/README
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/README
@@ -0,0 +1,401 @@
+
+Aufs5 -- advanced multi layered unification filesystem version 5.x
+http://aufs.sf.net
+Junjiro R. Okajima
+
+
+0. Introduction
+----------------------------------------
+In the early days, aufs was entirely re-designed and re-implemented
+Unionfs Version 1.x series. Adding many original ideas, approaches,
+improvements and implementations, it became totally different from
+Unionfs while keeping the basic features.
+Later, Unionfs Version 2.x series began taking some of the same
+approaches to aufs1's.
+Unionfs was being developed by Professor Erez Zadok at Stony Brook
+University and his team.
+
+Aufs5 supports linux-v5.0 and later, If you want older kernel version
+support,
+- for linux-v4.x series, try aufs4-linux.git or aufs4-standalone.git
+- for linux-v3.x series, try aufs3-linux.git or aufs3-standalone.git
+- for linux-v2.6.16 and later, try aufs2-2.6.git, aufs2-standalone.git
+  or aufs1 from CVS on SourceForge.
+
+Note: it becomes clear that "Aufs was rejected. Let's give it up."
+      According to Christoph Hellwig, linux rejects all union-type
+      filesystems but UnionMount.
+<http://marc.info/?l=linux-kernel&m=123938533724484&w=2>
+
+PS. Al Viro seems have a plan to merge aufs as well as overlayfs and
+    UnionMount, and he pointed out an issue around a directory mutex
+    lock and aufs addressed it. But it is still unsure whether aufs will
+    be merged (or any other union solution).
+<http://marc.info/?l=linux-kernel&m=136312705029295&w=1>
+
+
+1. Features
+----------------------------------------
+- unite several directories into a single virtual filesystem. The member
+  directory is called as a branch.
+- you can specify the permission flags to the branch, which are 'readonly',
+  'readwrite' and 'whiteout-able.'
+- by upper writable branch, internal copyup and whiteout, files/dirs on
+  readonly branch are modifiable logically.
+- dynamic branch manipulation, add, del.
+- etc...
+
+Also there are many enhancements in aufs, such as:
+- test only the highest one for the directory permission (dirperm1)
+- copyup on open (coo=)
+- 'move' policy for copy-up between two writable branches, after
+  checking free space.
+- xattr, acl
+- readdir(3) in userspace.
+- keep inode number by external inode number table
+- keep the timestamps of file/dir in internal copyup operation
+- seekable directory, supporting NFS readdir.
+- whiteout is hardlinked in order to reduce the consumption of inodes
+  on branch
+- do not copyup, nor create a whiteout when it is unnecessary
+- revert a single systemcall when an error occurs in aufs
+- remount interface instead of ioctl
+- maintain /etc/mtab by an external command, /sbin/mount.aufs.
+- loopback mounted filesystem as a branch
+- kernel thread for removing the dir who has a plenty of whiteouts
+- support copyup sparse file (a file which has a 'hole' in it)
+- default permission flags for branches
+- selectable permission flags for ro branch, whether whiteout can
+  exist or not
+- export via NFS.
+- support <sysfs>/fs/aufs and <debugfs>/aufs.
+- support multiple writable branches, some policies to select one
+  among multiple writable branches.
+- a new semantics for link(2) and rename(2) to support multiple
+  writable branches.
+- no glibc changes are required.
+- pseudo hardlink (hardlink over branches)
+- allow a direct access manually to a file on branch, e.g. bypassing aufs.
+  including NFS or remote filesystem branch.
+- userspace wrapper for pathconf(3)/fpathconf(3) with _PC_LINK_MAX.
+- and more...
+
+Currently these features are dropped temporary from aufs5.
+See design/08plan.txt in detail.
+- nested mount, i.e. aufs as readonly no-whiteout branch of another aufs
+  (robr)
+- statistics of aufs thread (/sys/fs/aufs/stat)
+
+Features or just an idea in the future (see also design/*.txt),
+- reorder the branch index without del/re-add.
+- permanent xino files for NFSD
+- an option for refreshing the opened files after add/del branches
+- light version, without branch manipulation. (unnecessary?)
+- copyup in userspace
+- inotify in userspace
+- readv/writev
+
+
+2. Download
+----------------------------------------
+There are three GIT trees for aufs5, aufs5-linux.git,
+aufs5-standalone.git, and aufs-util.git. Note that there is no "5" in
+"aufs-util.git."
+While the aufs-util is always necessary, you need either of aufs5-linux
+or aufs5-standalone.
+
+The aufs5-linux tree includes the whole linux mainline GIT tree,
+git://git.kernel.org/.../torvalds/linux.git.
+And you cannot select CONFIG_AUFS_FS=m for this version, eg. you cannot
+build aufs5 as an external kernel module.
+Several extra patches are not included in this tree. Only
+aufs5-standalone tree contains them. They are described in the later
+section "Configuration and Compilation."
+
+On the other hand, the aufs5-standalone tree has only aufs source files
+and necessary patches, and you can select CONFIG_AUFS_FS=m.
+But you need to apply all aufs patches manually.
+
+You will find GIT branches whose name is in form of "aufs5.x" where "x"
+represents the linux kernel version, "linux-5.x". For instance,
+"aufs5.0" is for linux-5.0. For latest "linux-5.x-rcN", use
+"aufs5.x-rcN" branch.
+
+o aufs5-linux tree
+$ git clone --reference /your/linux/git/tree \
+	git://github.com/sfjro/aufs5-linux.git aufs5-linux.git
+- if you don't have linux GIT tree, then remove "--reference ..."
+$ cd aufs5-linux.git
+$ git checkout origin/aufs5.0
+
+Or You may want to directly git-pull aufs into your linux GIT tree, and
+leave the patch-work to GIT.
+$ cd /your/linux/git/tree
+$ git remote add aufs5 git://github.com/sfjro/aufs5-linux.git
+$ git fetch aufs5
+$ git checkout -b my5.0 v5.0
+$ (add your local change...)
+$ git pull aufs5 aufs5.0
+- now you have v5.0 + your_changes + aufs5.0 in you my5.0 branch.
+- you may need to solve some conflicts between your_changes and
+  aufs5.0. in this case, git-rerere is recommended so that you can
+  solve the similar conflicts automatically when you upgrade to 5.1 or
+  later in the future.
+
+o aufs5-standalone tree
+$ git clone git://github.com/sfjro/aufs5-standalone.git aufs5-standalone.git
+$ cd aufs5-standalone.git
+$ git checkout origin/aufs5.0
+
+o aufs-util tree
+$ git clone git://git.code.sf.net/p/aufs/aufs-util aufs-util.git
+- note that the public aufs-util.git is on SourceForge instead of
+  GitHUB.
+$ cd aufs-util.git
+$ git checkout origin/aufs5.0
+
+Note: The 5.x-rcN branch is to be used with `rc' kernel versions ONLY.
+The minor version number, 'x' in '5.x', of aufs may not always
+follow the minor version number of the kernel.
+Because changes in the kernel that cause the use of a new
+minor version number do not always require changes to aufs-util.
+
+Since aufs-util has its own minor version number, you may not be
+able to find a GIT branch in aufs-util for your kernel's
+exact minor version number.
+In this case, you should git-checkout the branch for the
+nearest lower number.
+
+For (an unreleased) example:
+If you are using "linux-5.10" and the "aufs5.10" branch
+does not exist in aufs-util repository, then "aufs5.9", "aufs5.8"
+or something numerically smaller is the branch for your kernel.
+
+Also you can view all branches by
+	$ git branch -a
+
+
+3. Configuration and Compilation
+----------------------------------------
+Make sure you have git-checkout'ed the correct branch.
+
+For aufs5-linux tree,
+- enable CONFIG_AUFS_FS.
+- set other aufs configurations if necessary.
+
+For aufs5-standalone tree,
+There are several ways to build.
+
+1.
+- apply ./aufs5-kbuild.patch to your kernel source files.
+- apply ./aufs5-base.patch too.
+- apply ./aufs5-mmap.patch too.
+- apply ./aufs5-standalone.patch too, if you have a plan to set
+  CONFIG_AUFS_FS=m. otherwise you don't need ./aufs5-standalone.patch.
+- copy ./{Documentation,fs,include/uapi/linux/aufs_type.h} files to your
+  kernel source tree. Never copy $PWD/include/uapi/linux/Kbuild.
+- enable CONFIG_AUFS_FS, you can select either
+  =m or =y.
+- and build your kernel as usual.
+- install the built kernel.
+- install the header files too by "make headers_install" to the
+  directory where you specify. By default, it is $PWD/usr.
+  "make help" shows a brief note for headers_install.
+- and reboot your system.
+
+2.
+- module only (CONFIG_AUFS_FS=m).
+- apply ./aufs5-base.patch to your kernel source files.
+- apply ./aufs5-mmap.patch too.
+- apply ./aufs5-standalone.patch too.
+- build your kernel, don't forget "make headers_install", and reboot.
+- edit ./config.mk and set other aufs configurations if necessary.
+  Note: You should read $PWD/fs/aufs/Kconfig carefully which describes
+  every aufs configurations.
+- build the module by simple "make".
+- you can specify ${KDIR} make variable which points to your kernel
+  source tree.
+- install the files
+  + run "make install" to install the aufs module, or copy the built
+    $PWD/aufs.ko to /lib/modules/... and run depmod -a (or reboot simply).
+  + run "make install_headers" (instead of headers_install) to install
+    the modified aufs header file (you can specify DESTDIR which is
+    available in aufs standalone version's Makefile only), or copy
+    $PWD/usr/include/linux/aufs_type.h to /usr/include/linux or wherever
+    you like manually. By default, the target directory is $PWD/usr.
+- no need to apply aufs5-kbuild.patch, nor copying source files to your
+  kernel source tree.
+
+Note: The header file aufs_type.h is necessary to build aufs-util
+      as well as "make headers_install" in the kernel source tree.
+      headers_install is subject to be forgotten, but it is essentially
+      necessary, not only for building aufs-util.
+      You may not meet problems without headers_install in some older
+      version though.
+
+And then,
+- read README in aufs-util, build and install it
+- note that your distribution may contain an obsoleted version of
+  aufs_type.h in /usr/include/linux or something. When you build aufs
+  utilities, make sure that your compiler refers the correct aufs header
+  file which is built by "make headers_install."
+- if you want to use readdir(3) in userspace or pathconf(3) wrapper,
+  then run "make install_ulib" too. And refer to the aufs manual in
+  detail.
+
+There several other patches in aufs5-standalone.git. They are all
+optional. When you meet some problems, they will help you.
+- aufs5-loopback.patch
+  Supports a nested loopback mount in a branch-fs. This patch is
+  unnecessary until aufs produces a message like "you may want to try
+  another patch for loopback file".
+- proc_mounts.patch
+  When there are many mountpoints and many mount(2)/umount(2) are
+  running, then /proc/mounts may not show the all mountpoints.  This
+  patch makes /proc/mounts always show the full mountpoints list.
+  If you don't want to apply this patch and meet such problem, then you
+  need to increase the value of 'ProcMounts_Times' make-variable in
+  aufs-util.git as a second best solution.
+- vfs-ino.patch
+  Modifies a system global kernel internal function get_next_ino() in
+  order to stop assigning 0 for an inode-number. Not directly related to
+  aufs, but recommended generally.
+- tmpfs-idr.patch
+  Keeps the tmpfs inode number as the lowest value. Effective to reduce
+  the size of aufs XINO files for tmpfs branch. Also it prevents the
+  duplication of inode number, which is important for backup tools and
+  other utilities. When you find aufs XINO files for tmpfs branch
+  growing too much, try this patch.
+- lockdep-debug.patch
+  Because aufs is not only an ordinary filesystem (callee of VFS), but
+  also a caller of VFS functions for branch filesystems, subclassing of
+  the internal locks for LOCKDEP is necessary. LOCKDEP is a debugging
+  feature of linux kernel. If you enable CONFIG_LOCKDEP, then you will
+  need to apply this debug patch to expand several constant values.
+  If you don't know what LOCKDEP is, then you don't have apply this
+  patch.
+
+
+4. Usage
+----------------------------------------
+At first, make sure aufs-util are installed, and please read the aufs
+manual, aufs.5 in aufs-util.git tree.
+$ man -l aufs.5
+
+And then,
+$ mkdir /tmp/rw /tmp/aufs
+# mount -t aufs -o br=/tmp/rw:${HOME} none /tmp/aufs
+
+Here is another example. The result is equivalent.
+# mount -t aufs -o br=/tmp/rw=rw:${HOME}=ro none /tmp/aufs
+  Or
+# mount -t aufs -o br:/tmp/rw none /tmp/aufs
+# mount -o remount,append:${HOME} /tmp/aufs
+
+Then, you can see whole tree of your home dir through /tmp/aufs. If
+you modify a file under /tmp/aufs, the one on your home directory is
+not affected, instead the same named file will be newly created under
+/tmp/rw. And all of your modification to a file will be applied to
+the one under /tmp/rw. This is called the file based Copy on Write
+(COW) method.
+Aufs mount options are described in aufs.5.
+If you run chroot or something and make your aufs as a root directory,
+then you need to customize the shutdown script. See the aufs manual in
+detail.
+
+Additionally, there are some sample usages of aufs which are a
+diskless system with network booting, and LiveCD over NFS.
+See sample dir in CVS tree on SourceForge.
+
+
+5. Contact
+----------------------------------------
+When you have any problems or strange behaviour in aufs, please let me
+know with:
+- /proc/mounts (instead of the output of mount(8))
+- /sys/module/aufs/*
+- /sys/fs/aufs/* (if you have them)
+- /debug/aufs/* (if you have them)
+- linux kernel version
+  if your kernel is not plain, for example modified by distributor,
+  the url where i can download its source is necessary too.
+- aufs version which was printed at loading the module or booting the
+  system, instead of the date you downloaded.
+- configuration (define/undefine CONFIG_AUFS_xxx)
+- kernel configuration or /proc/config.gz (if you have it)
+- LSM (linux security module, if you are using)
+- behaviour which you think to be incorrect
+- actual operation, reproducible one is better
+- mailto: aufs-users at lists.sourceforge.net
+
+Usually, I don't watch the Public Areas(Bugs, Support Requests, Patches,
+and Feature Requests) on SourceForge. Please join and write to
+aufs-users ML.
+
+
+6. Acknowledgements
+----------------------------------------
+Thanks to everyone who have tried and are using aufs, whoever
+have reported a bug or any feedback.
+
+Especially donators:
+Tomas Matejicek(slax.org) made a donation (much more than once).
+	Since Apr 2010, Tomas M (the author of Slax and Linux Live
+	scripts) is making "doubling" donations.
+	Unfortunately I cannot list all of the donators, but I really
+	appreciate.
+	It ends Aug 2010, but the ordinary donation URL is still available.
+	<http://sourceforge.net/donate/index.php?group_id=167503>
+Dai Itasaka made a donation (2007/8).
+Chuck Smith made a donation (2008/4, 10 and 12).
+Henk Schoneveld made a donation (2008/9).
+Chih-Wei Huang, ASUS, CTC donated Eee PC 4G (2008/10).
+Francois Dupoux made a donation (2008/11).
+Bruno Cesar Ribas and Luis Carlos Erpen de Bona, C3SL serves public
+	aufs2 GIT tree (2009/2).
+William Grant made a donation (2009/3).
+Patrick Lane made a donation (2009/4).
+The Mail Archive (mail-archive.com) made donations (2009/5).
+Nippy Networks (Ed Wildgoose) made a donation (2009/7).
+New Dream Network, LLC (www.dreamhost.com) made a donation (2009/11).
+Pavel Pronskiy made a donation (2011/2).
+Iridium and Inmarsat satellite phone retailer (www.mailasail.com), Nippy
+	Networks (Ed Wildgoose) made a donation for hardware (2011/3).
+Max Lekomcev (DOM-TV project) made a donation (2011/7, 12, 2012/3, 6 and
+11).
+Sam Liddicott made a donation (2011/9).
+Era Scarecrow made a donation (2013/4).
+Bor Ratajc made a donation (2013/4).
+Alessandro Gorreta made a donation (2013/4).
+POIRETTE Marc made a donation (2013/4).
+Alessandro Gorreta made a donation (2013/4).
+lauri kasvandik made a donation (2013/5).
+"pemasu from Finland" made a donation (2013/7).
+The Parted Magic Project made a donation (2013/9 and 11).
+Pavel Barta made a donation (2013/10).
+Nikolay Pertsev made a donation (2014/5).
+James B made a donation (2014/7 and 2015/7).
+Stefano Di Biase made a donation (2014/8).
+Daniel Epellei made a donation (2015/1).
+OmegaPhil made a donation (2016/1, 2018/4).
+Tomasz Szewczyk made a donation (2016/4).
+James Burry made a donation (2016/12).
+Carsten Rose made a donation (2018/9).
+Porteus Kiosk made a donation (2018/10).
+
+Thank you very much.
+Donations are always, including future donations, very important and
+helpful for me to keep on developing aufs.
+
+
+7.
+----------------------------------------
+If you are an experienced user, no explanation is needed. Aufs is
+just a linux filesystem.
+
+
+Enjoy!
+
+# Local variables: ;
+# mode: text;
+# End: ;
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/01intro.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/01intro.txt
@@ -0,0 +1,171 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Introduction
+----------------------------------------
+
+aufs [ei ju: ef es] | /ey-yoo-ef-es/ | [a u f s]
+1. abbrev. for "advanced multi-layered unification filesystem".
+2. abbrev. for "another unionfs".
+3. abbrev. for "auf das" in German which means "on the" in English.
+   Ex. "Butter aufs Brot"(G) means "butter onto bread"(E).
+   But "Filesystem aufs Filesystem" is hard to understand.
+4. abbrev. for "African Urban Fashion Show".
+
+AUFS is a filesystem with features:
+- multi layered stackable unification filesystem, the member directory
+  is called as a branch.
+- branch permission and attribute, 'readonly', 'real-readonly',
+  'readwrite', 'whiteout-able', 'link-able whiteout', etc. and their
+  combination.
+- internal "file copy-on-write".
+- logical deletion, whiteout.
+- dynamic branch manipulation, adding, deleting and changing permission.
+- allow bypassing aufs, user's direct branch access.
+- external inode number translation table and bitmap which maintains the
+  persistent aufs inode number.
+- seekable directory, including NFS readdir.
+- file mapping, mmap and sharing pages.
+- pseudo-link, hardlink over branches.
+- loopback mounted filesystem as a branch.
+- several policies to select one among multiple writable branches.
+- revert a single systemcall when an error occurs in aufs.
+- and more...
+
+
+Multi Layered Stackable Unification Filesystem
+----------------------------------------------------------------------
+Most people already knows what it is.
+It is a filesystem which unifies several directories and provides a
+merged single directory. When users access a file, the access will be
+passed/re-directed/converted (sorry, I am not sure which English word is
+correct) to the real file on the member filesystem. The member
+filesystem is called 'lower filesystem' or 'branch' and has a mode
+'readonly' and 'readwrite.' And the deletion for a file on the lower
+readonly branch is handled by creating 'whiteout' on the upper writable
+branch.
+
+On LKML, there have been discussions about UnionMount (Jan Blunck,
+Bharata B Rao and Valerie Aurora) and Unionfs (Erez Zadok). They took
+different approaches to implement the merged-view.
+The former tries putting it into VFS, and the latter implements as a
+separate filesystem.
+(If I misunderstand about these implementations, please let me know and
+I shall correct it. Because it is a long time ago when I read their
+source files last time).
+
+UnionMount's approach will be able to small, but may be hard to share
+branches between several UnionMount since the whiteout in it is
+implemented in the inode on branch filesystem and always
+shared. According to Bharata's post, readdir does not seems to be
+finished yet.
+There are several missing features known in this implementations such as
+- for users, the inode number may change silently. eg. copy-up.
+- link(2) may break by copy-up.
+- read(2) may get an obsoleted filedata (fstat(2) too).
+- fcntl(F_SETLK) may be broken by copy-up.
+- unnecessary copy-up may happen, for example mmap(MAP_PRIVATE) after
+  open(O_RDWR).
+
+In linux-3.18, "overlay" filesystem (formerly known as "overlayfs") was
+merged into mainline. This is another implementation of UnionMount as a
+separated filesystem. All the limitations and known problems which
+UnionMount are equally inherited to "overlay" filesystem.
+
+Unionfs has a longer history. When I started implementing a stackable
+filesystem (Aug 2005), it already existed. It has virtual super_block,
+inode, dentry and file objects and they have an array pointing lower
+same kind objects. After contributing many patches for Unionfs, I
+re-started my project AUFS (Jun 2006).
+
+In AUFS, the structure of filesystem resembles to Unionfs, but I
+implemented my own ideas, approaches and enhancements and it became
+totally different one.
+
+Comparing DM snapshot and fs based implementation
+- the number of bytes to be copied between devices is much smaller.
+- the type of filesystem must be one and only.
+- the fs must be writable, no readonly fs, even for the lower original
+  device. so the compression fs will not be usable. but if we use
+  loopback mount, we may address this issue.
+  for instance,
+	mount /cdrom/squashfs.img /sq
+	losetup /sq/ext2.img
+	losetup /somewhere/cow
+	dmsetup "snapshot /dev/loop0 /dev/loop1 ..."
+- it will be difficult (or needs more operations) to extract the
+  difference between the original device and COW.
+- DM snapshot-merge may help a lot when users try merging. in the
+  fs-layer union, users will use rsync(1).
+
+You may want to read my old paper "Filesystems in LiveCD"
+(http://aufs.sourceforge.net/aufs2/report/sq/sq.pdf).
+
+
+Several characters/aspects/persona of aufs
+----------------------------------------------------------------------
+
+Aufs has several characters, aspects or persona.
+1. a filesystem, callee of VFS helper
+2. sub-VFS, caller of VFS helper for branches
+3. a virtual filesystem which maintains persistent inode number
+4. reader/writer of files on branches such like an application
+
+1. Callee of VFS Helper
+As an ordinary linux filesystem, aufs is a callee of VFS. For instance,
+unlink(2) from an application reaches sys_unlink() kernel function and
+then vfs_unlink() is called. vfs_unlink() is one of VFS helper and it
+calls filesystem specific unlink operation. Actually aufs implements the
+unlink operation but it behaves like a redirector.
+
+2. Caller of VFS Helper for Branches
+aufs_unlink() passes the unlink request to the branch filesystem as if
+it were called from VFS. So the called unlink operation of the branch
+filesystem acts as usual. As a caller of VFS helper, aufs should handle
+every necessary pre/post operation for the branch filesystem.
+- acquire the lock for the parent dir on a branch
+- lookup in a branch
+- revalidate dentry on a branch
+- mnt_want_write() for a branch
+- vfs_unlink() for a branch
+- mnt_drop_write() for a branch
+- release the lock on a branch
+
+3. Persistent Inode Number
+One of the most important issue for a filesystem is to maintain inode
+numbers. This is particularly important to support exporting a
+filesystem via NFS. Aufs is a virtual filesystem which doesn't have a
+backend block device for its own. But some storage is necessary to
+keep and maintain the inode numbers. It may be a large space and may not
+suit to keep in memory. Aufs rents some space from its first writable
+branch filesystem (by default) and creates file(s) on it. These files
+are created by aufs internally and removed soon (currently) keeping
+opened.
+Note: Because these files are removed, they are totally gone after
+      unmounting aufs. It means the inode numbers are not persistent
+      across unmount or reboot. I have a plan to make them really
+      persistent which will be important for aufs on NFS server.
+
+4. Read/Write Files Internally (copy-on-write)
+Because a branch can be readonly, when you write a file on it, aufs will
+"copy-up" it to the upper writable branch internally. And then write the
+originally requested thing to the file. Generally kernel doesn't
+open/read/write file actively. In aufs, even a single write may cause a
+internal "file copy". This behaviour is very similar to cp(1) command.
+
+Some people may think it is better to pass such work to user space
+helper, instead of doing in kernel space. Actually I am still thinking
+about it. But currently I have implemented it in kernel space.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/02struct.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/02struct.txt
@@ -0,0 +1,258 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Basic Aufs Internal Structure
+
+Superblock/Inode/Dentry/File Objects
+----------------------------------------------------------------------
+As like an ordinary filesystem, aufs has its own
+superblock/inode/dentry/file objects. All these objects have a
+dynamically allocated array and store the same kind of pointers to the
+lower filesystem, branch.
+For example, when you build a union with one readwrite branch and one
+readonly, mounted /au, /rw and /ro respectively.
+- /au = /rw + /ro
+- /ro/fileA exists but /rw/fileA
+
+Aufs lookup operation finds /ro/fileA and gets dentry for that. These
+pointers are stored in a aufs dentry. The array in aufs dentry will be,
+- [0] = NULL (because /rw/fileA doesn't exist)
+- [1] = /ro/fileA
+
+This style of an array is essentially same to the aufs
+superblock/inode/dentry/file objects.
+
+Because aufs supports manipulating branches, ie. add/delete/change
+branches dynamically, these objects has its own generation. When
+branches are changed, the generation in aufs superblock is
+incremented. And a generation in other object are compared when it is
+accessed. When a generation in other objects are obsoleted, aufs
+refreshes the internal array.
+
+
+Superblock
+----------------------------------------------------------------------
+Additionally aufs superblock has some data for policies to select one
+among multiple writable branches, XIB files, pseudo-links and kobject.
+See below in detail.
+About the policies which supports copy-down a directory, see
+wbr_policy.txt too.
+
+
+Branch and XINO(External Inode Number Translation Table)
+----------------------------------------------------------------------
+Every branch has its own xino (external inode number translation table)
+file. The xino file is created and unlinked by aufs internally. When two
+members of a union exist on the same filesystem, they share the single
+xino file.
+The struct of a xino file is simple, just a sequence of aufs inode
+numbers which is indexed by the lower inode number.
+In the above sample, assume the inode number of /ro/fileA is i111 and
+aufs assigns the inode number i999 for fileA. Then aufs writes 999 as
+4(8) bytes at 111 * 4(8) bytes offset in the xino file.
+
+When the inode numbers are not contiguous, the xino file will be sparse
+which has a hole in it and doesn't consume as much disk space as it
+might appear. If your branch filesystem consumes disk space for such
+holes, then you should specify 'xino=' option at mounting aufs.
+
+Aufs has a mount option to free the disk blocks for such holes in XINO
+files on tmpfs or ramdisk. But it is not so effective actually. If you
+meet a problem of disk shortage due to XINO files, then you should try
+"tmpfs-ino.patch" (and "vfs-ino.patch" too) in aufs4-standalone.git.
+The patch localizes the assignment inumbers per tmpfs-mount and avoid
+the holes in XINO files.
+
+Also a writable branch has three kinds of "whiteout bases". All these
+are existed when the branch is joined to aufs, and their names are
+whiteout-ed doubly, so that users will never see their names in aufs
+hierarchy.
+1. a regular file which will be hardlinked to all whiteouts.
+2. a directory to store a pseudo-link.
+3. a directory to store an "orphan"-ed file temporary.
+
+1. Whiteout Base
+   When you remove a file on a readonly branch, aufs handles it as a
+   logical deletion and creates a whiteout on the upper writable branch
+   as a hardlink of this file in order not to consume inode on the
+   writable branch.
+2. Pseudo-link Dir
+   See below, Pseudo-link.
+3. Step-Parent Dir
+   When "fileC" exists on the lower readonly branch only and it is
+   opened and removed with its parent dir, and then user writes
+   something into it, then aufs copies-up fileC to this
+   directory. Because there is no other dir to store fileC. After
+   creating a file under this dir, the file is unlinked.
+
+Because aufs supports manipulating branches, ie. add/delete/change
+dynamically, a branch has its own id. When the branch order changes,
+aufs finds the new index by searching the branch id.
+
+
+Pseudo-link
+----------------------------------------------------------------------
+Assume "fileA" exists on the lower readonly branch only and it is
+hardlinked to "fileB" on the branch. When you write something to fileA,
+aufs copies-up it to the upper writable branch. Additionally aufs
+creates a hardlink under the Pseudo-link Directory of the writable
+branch. The inode of a pseudo-link is kept in aufs super_block as a
+simple list. If fileB is read after unlinking fileA, aufs returns
+filedata from the pseudo-link instead of the lower readonly
+branch. Because the pseudo-link is based upon the inode, to keep the
+inode number by xino (see above) is essentially necessary.
+
+All the hardlinks under the Pseudo-link Directory of the writable branch
+should be restored in a proper location later. Aufs provides a utility
+to do this. The userspace helpers executed at remounting and unmounting
+aufs by default.
+During this utility is running, it puts aufs into the pseudo-link
+maintenance mode. In this mode, only the process which began the
+maintenance mode (and its child processes) is allowed to operate in
+aufs. Some other processes which are not related to the pseudo-link will
+be allowed to run too, but the rest have to return an error or wait
+until the maintenance mode ends. If a process already acquires an inode
+mutex (in VFS), it has to return an error.
+
+
+XIB(external inode number bitmap)
+----------------------------------------------------------------------
+Addition to the xino file per a branch, aufs has an external inode number
+bitmap in a superblock object. It is also an internal file such like a
+xino file.
+It is a simple bitmap to mark whether the aufs inode number is in-use or
+not.
+To reduce the file I/O, aufs prepares a single memory page to cache xib.
+
+As well as XINO files, aufs has a feature to truncate/refresh XIB to
+reduce the number of consumed disk blocks for these files.
+
+
+Virtual or Vertical Dir, and Readdir in Userspace
+----------------------------------------------------------------------
+In order to support multiple layers (branches), aufs readdir operation
+constructs a virtual dir block on memory. For readdir, aufs calls
+vfs_readdir() internally for each dir on branches, merges their entries
+with eliminating the whiteout-ed ones, and sets it to file (dir)
+object. So the file object has its entry list until it is closed. The
+entry list will be updated when the file position is zero and becomes
+obsoleted. This decision is made in aufs automatically.
+
+The dynamically allocated memory block for the name of entries has a
+unit of 512 bytes (by default) and stores the names contiguously (no
+padding). Another block for each entry is handled by kmem_cache too.
+During building dir blocks, aufs creates hash list and judging whether
+the entry is whiteouted by its upper branch or already listed.
+The merged result is cached in the corresponding inode object and
+maintained by a customizable life-time option.
+
+Some people may call it can be a security hole or invite DoS attack
+since the opened and once readdir-ed dir (file object) holds its entry
+list and becomes a pressure for system memory. But I'd say it is similar
+to files under /proc or /sys. The virtual files in them also holds a
+memory page (generally) while they are opened. When an idea to reduce
+memory for them is introduced, it will be applied to aufs too.
+For those who really hate this situation, I've developed readdir(3)
+library which operates this merging in userspace. You just need to set
+LD_PRELOAD environment variable, and aufs will not consume no memory in
+kernel space for readdir(3).
+
+
+Workqueue
+----------------------------------------------------------------------
+Aufs sometimes requires privilege access to a branch. For instance,
+in copy-up/down operation. When a user process is going to make changes
+to a file which exists in the lower readonly branch only, and the mode
+of one of ancestor directories may not be writable by a user
+process. Here aufs copy-up the file with its ancestors and they may
+require privilege to set its owner/group/mode/etc.
+This is a typical case of a application character of aufs (see
+Introduction).
+
+Aufs uses workqueue synchronously for this case. It creates its own
+workqueue. The workqueue is a kernel thread and has privilege. Aufs
+passes the request to call mkdir or write (for example), and wait for
+its completion. This approach solves a problem of a signal handler
+simply.
+If aufs didn't adopt the workqueue and changed the privilege of the
+process, then the process may receive the unexpected SIGXFSZ or other
+signals.
+
+Also aufs uses the system global workqueue ("events" kernel thread) too
+for asynchronous tasks, such like handling inotify/fsnotify, re-creating a
+whiteout base and etc. This is unrelated to a privilege.
+Most of aufs operation tries acquiring a rw_semaphore for aufs
+superblock at the beginning, at the same time waits for the completion
+of all queued asynchronous tasks.
+
+
+Whiteout
+----------------------------------------------------------------------
+The whiteout in aufs is very similar to Unionfs's. That is represented
+by its filename. UnionMount takes an approach of a file mode, but I am
+afraid several utilities (find(1) or something) will have to support it.
+
+Basically the whiteout represents "logical deletion" which stops aufs to
+lookup further, but also it represents "dir is opaque" which also stop
+further lookup.
+
+In aufs, rmdir(2) and rename(2) for dir uses whiteout alternatively.
+In order to make several functions in a single systemcall to be
+revertible, aufs adopts an approach to rename a directory to a temporary
+unique whiteouted name.
+For example, in rename(2) dir where the target dir already existed, aufs
+renames the target dir to a temporary unique whiteouted name before the
+actual rename on a branch, and then handles other actions (make it opaque,
+update the attributes, etc). If an error happens in these actions, aufs
+simply renames the whiteouted name back and returns an error. If all are
+succeeded, aufs registers a function to remove the whiteouted unique
+temporary name completely and asynchronously to the system global
+workqueue.
+
+
+Copy-up
+----------------------------------------------------------------------
+It is a well-known feature or concept.
+When user modifies a file on a readonly branch, aufs operate "copy-up"
+internally and makes change to the new file on the upper writable branch.
+When the trigger systemcall does not update the timestamps of the parent
+dir, aufs reverts it after copy-up.
+
+
+Move-down (aufs3.9 and later)
+----------------------------------------------------------------------
+"Copy-up" is one of the essential feature in aufs. It copies a file from
+the lower readonly branch to the upper writable branch when a user
+changes something about the file.
+"Move-down" is an opposite action of copy-up. Basically this action is
+ran manually instead of automatically and internally.
+For desgin and implementation, aufs has to consider these issues.
+- whiteout for the file may exist on the lower branch.
+- ancestor directories may not exist on the lower branch.
+- diropq for the ancestor directories may exist on the upper branch.
+- free space on the lower branch will reduce.
+- another access to the file may happen during moving-down, including
+  UDBA (see "Revalidate Dentry and UDBA").
+- the file should not be hard-linked nor pseudo-linked. they should be
+  handled by auplink utility later.
+
+Sometimes users want to move-down a file from the upper writable branch
+to the lower readonly or writable branch. For instance,
+- the free space of the upper writable branch is going to run out.
+- create a new intermediate branch between the upper and lower branch.
+- etc.
+
+For this purpose, use "aumvdown" command in aufs-util.git.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/03atomic_open.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/03atomic_open.txt
@@ -0,0 +1,85 @@
+
+# Copyright (C) 2015-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Support for a branch who has its ->atomic_open()
+----------------------------------------------------------------------
+The filesystems who implement its ->atomic_open() are not majority. For
+example NFSv4 does, and aufs should call NFSv4 ->atomic_open,
+particularly for open(O_CREAT|O_EXCL, 0400) case. Other than
+->atomic_open(), NFSv4 returns an error for this open(2). While I am not
+sure whether all filesystems who have ->atomic_open() behave like this,
+but NFSv4 surely returns the error.
+
+In order to support ->atomic_open() for aufs, there are a few
+approaches.
+
+A. Introduce aufs_atomic_open()
+   - calls one of VFS:do_last(), lookup_open() or atomic_open() for
+     branch fs.
+B. Introduce aufs_atomic_open() calling create, open and chmod. this is
+   an aufs user Pip Cet's approach
+   - calls aufs_create(), VFS finish_open() and notify_change().
+   - pass fake-mode to finish_open(), and then correct the mode by
+     notify_change().
+C. Extend aufs_open() to call branch fs's ->atomic_open()
+   - no aufs_atomic_open().
+   - aufs_lookup() registers the TID to an aufs internal object.
+   - aufs_create() does nothing when the matching TID is registered, but
+     registers the mode.
+   - aufs_open() calls branch fs's ->atomic_open() when the matching
+     TID is registered.
+D. Extend aufs_open() to re-try branch fs's ->open() with superuser's
+   credential
+   - no aufs_atomic_open().
+   - aufs_create() registers the TID to an internal object. this info
+     represents "this process created this file just now."
+   - when aufs gets EACCES from branch fs's ->open(), then confirm the
+     registered TID and re-try open() with superuser's credential.
+
+Pros and cons for each approach.
+
+A.
+   - straightforward but highly depends upon VFS internal.
+   - the atomic behavaiour is kept.
+   - some of parameters such as nameidata are hard to reproduce for
+     branch fs.
+   - large overhead.
+B.
+   - easy to implement.
+   - the atomic behavaiour is lost.
+C.
+   - the atomic behavaiour is kept.
+   - dirty and tricky.
+   - VFS checks whether the file is created correctly after calling
+     ->create(), which means this approach doesn't work.
+D.
+   - easy to implement.
+   - the atomic behavaiour is lost.
+   - to open a file with superuser's credential and give it to a user
+     process is a bad idea, since the file object keeps the credential
+     in it. It may affect LSM or something. This approach doesn't work
+     either.
+
+The approach A is ideal, but it hard to implement. So here is a
+variation of A, which is to be implemented.
+
+A-1. Introduce aufs_atomic_open()
+     - calls branch fs ->atomic_open() if exists. otherwise calls
+       vfs_create() and finish_open().
+     - the demerit is that the several checks after branch fs
+       ->atomic_open() are lost. in the ordinary case, the checks are
+       done by VFS:do_last(), lookup_open() and atomic_open(). some can
+       be implemented in aufs, but not all I am afraid.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/03lookup.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/03lookup.txt
@@ -0,0 +1,113 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Lookup in a Branch
+----------------------------------------------------------------------
+Since aufs has a character of sub-VFS (see Introduction), it operates
+lookup for branches as VFS does. It may be a heavy work. But almost all
+lookup operation in aufs is the simplest case, ie. lookup only an entry
+directly connected to its parent. Digging down the directory hierarchy
+is unnecessary. VFS has a function lookup_one_len() for that use, and
+aufs calls it.
+
+When a branch is a remote filesystem, aufs basically relies upon its
+->d_revalidate(), also aufs forces the hardest revalidate tests for
+them.
+For d_revalidate, aufs implements three levels of revalidate tests. See
+"Revalidate Dentry and UDBA" in detail.
+
+
+Test Only the Highest One for the Directory Permission (dirperm1 option)
+----------------------------------------------------------------------
+Let's try case study.
+- aufs has two branches, upper readwrite and lower readonly.
+  /au = /rw + /ro
+- "dirA" exists under /ro, but /rw. and its mode is 0700.
+- user invoked "chmod a+rx /au/dirA"
+- the internal copy-up is activated and "/rw/dirA" is created and its
+  permission bits are set to world readable.
+- then "/au/dirA" becomes world readable?
+
+In this case, /ro/dirA is still 0700 since it exists in readonly branch,
+or it may be a natively readonly filesystem. If aufs respects the lower
+branch, it should not respond readdir request from other users. But user
+allowed it by chmod. Should really aufs rejects showing the entries
+under /ro/dirA?
+
+To be honest, I don't have a good solution for this case. So aufs
+implements 'dirperm1' and 'nodirperm1' mount options, and leave it to
+users.
+When dirperm1 is specified, aufs checks only the highest one for the
+directory permission, and shows the entries. Otherwise, as usual, checks
+every dir existing on all branches and rejects the request.
+
+As a side effect, dirperm1 option improves the performance of aufs
+because the number of permission check is reduced when the number of
+branch is many.
+
+
+Revalidate Dentry and UDBA (User's Direct Branch Access)
+----------------------------------------------------------------------
+Generally VFS helpers re-validate a dentry as a part of lookup.
+0. digging down the directory hierarchy.
+1. lock the parent dir by its i_mutex.
+2. lookup the final (child) entry.
+3. revalidate it.
+4. call the actual operation (create, unlink, etc.)
+5. unlock the parent dir
+
+If the filesystem implements its ->d_revalidate() (step 3), then it is
+called. Actually aufs implements it and checks the dentry on a branch is
+still valid.
+But it is not enough. Because aufs has to release the lock for the
+parent dir on a branch at the end of ->lookup() (step 2) and
+->d_revalidate() (step 3) while the i_mutex of the aufs dir is still
+held by VFS.
+If the file on a branch is changed directly, eg. bypassing aufs, after
+aufs released the lock, then the subsequent operation may cause
+something unpleasant result.
+
+This situation is a result of VFS architecture, ->lookup() and
+->d_revalidate() is separated. But I never say it is wrong. It is a good
+design from VFS's point of view. It is just not suitable for sub-VFS
+character in aufs.
+
+Aufs supports such case by three level of revalidation which is
+selectable by user.
+1. Simple Revalidate
+   Addition to the native flow in VFS's, confirm the child-parent
+   relationship on the branch just after locking the parent dir on the
+   branch in the "actual operation" (step 4). When this validation
+   fails, aufs returns EBUSY. ->d_revalidate() (step 3) in aufs still
+   checks the validation of the dentry on branches.
+2. Monitor Changes Internally by Inotify/Fsnotify
+   Addition to above, in the "actual operation" (step 4) aufs re-lookup
+   the dentry on the branch, and returns EBUSY if it finds different
+   dentry.
+   Additionally, aufs sets the inotify/fsnotify watch for every dir on branches
+   during it is in cache. When the event is notified, aufs registers a
+   function to kernel 'events' thread by schedule_work(). And the
+   function sets some special status to the cached aufs dentry and inode
+   private data. If they are not cached, then aufs has nothing to
+   do. When the same file is accessed through aufs (step 0-3) later,
+   aufs will detect the status and refresh all necessary data.
+   In this mode, aufs has to ignore the event which is fired by aufs
+   itself.
+3. No Extra Validation
+   This is the simplest test and doesn't add any additional revalidation
+   test, and skip the revalidation in step 4. It is useful and improves
+   aufs performance when system surely hide the aufs branches from user,
+   by over-mounting something (or another method).
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/04branch.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/04branch.txt
@@ -0,0 +1,74 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Branch Manipulation
+
+Since aufs supports dynamic branch manipulation, ie. add/remove a branch
+and changing its permission/attribute, there are a lot of works to do.
+
+
+Add a Branch
+----------------------------------------------------------------------
+o Confirm the adding dir exists outside of aufs, including loopback
+  mount, and its various attributes.
+o Initialize the xino file and whiteout bases if necessary.
+  See struct.txt.
+
+o Check the owner/group/mode of the directory
+  When the owner/group/mode of the adding directory differs from the
+  existing branch, aufs issues a warning because it may impose a
+  security risk.
+  For example, when a upper writable branch has a world writable empty
+  top directory, a malicious user can create any files on the writable
+  branch directly, like copy-up and modify manually. If something like
+  /etc/{passwd,shadow} exists on the lower readonly branch but the upper
+  writable branch, and the writable branch is world-writable, then a
+  malicious guy may create /etc/passwd on the writable branch directly
+  and the infected file will be valid in aufs.
+  I am afraid it can be a security issue, but aufs can do nothing except
+  producing a warning.
+
+
+Delete a Branch
+----------------------------------------------------------------------
+o Confirm the deleting branch is not busy
+  To be general, there is one merit to adopt "remount" interface to
+  manipulate branches. It is to discard caches. At deleting a branch,
+  aufs checks the still cached (and connected) dentries and inodes. If
+  there are any, then they are all in-use. An inode without its
+  corresponding dentry can be alive alone (for example, inotify/fsnotify case).
+
+  For the cached one, aufs checks whether the same named entry exists on
+  other branches.
+  If the cached one is a directory, because aufs provides a merged view
+  to users, as long as one dir is left on any branch aufs can show the
+  dir to users. In this case, the branch can be removed from aufs.
+  Otherwise aufs rejects deleting the branch.
+
+  If any file on the deleting branch is opened by aufs, then aufs
+  rejects deleting.
+
+
+Modify the Permission of a Branch
+----------------------------------------------------------------------
+o Re-initialize or remove the xino file and whiteout bases if necessary.
+  See struct.txt.
+
+o rw --> ro: Confirm the modifying branch is not busy
+  Aufs rejects the request if any of these conditions are true.
+  - a file on the branch is mmap-ed.
+  - a regular file on the branch is opened for write and there is no
+    same named entry on the upper branch.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/05wbr_policy.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/05wbr_policy.txt
@@ -0,0 +1,64 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Policies to Select One among Multiple Writable Branches
+----------------------------------------------------------------------
+When the number of writable branch is more than one, aufs has to decide
+the target branch for file creation or copy-up. By default, the highest
+writable branch which has the parent (or ancestor) dir of the target
+file is chosen (top-down-parent policy).
+By user's request, aufs implements some other policies to select the
+writable branch, for file creation several policies, round-robin,
+most-free-space, and other policies. For copy-up, top-down-parent,
+bottom-up-parent, bottom-up and others.
+
+As expected, the round-robin policy selects the branch in circular. When
+you have two writable branches and creates 10 new files, 5 files will be
+created for each branch. mkdir(2) systemcall is an exception. When you
+create 10 new directories, all will be created on the same branch.
+And the most-free-space policy selects the one which has most free
+space among the writable branches. The amount of free space will be
+checked by aufs internally, and users can specify its time interval.
+
+The policies for copy-up is more simple,
+top-down-parent is equivalent to the same named on in create policy,
+bottom-up-parent selects the writable branch where the parent dir
+exists and the nearest upper one from the copyup-source,
+bottom-up selects the nearest upper writable branch from the
+copyup-source, regardless the existence of the parent dir.
+
+There are some rules or exceptions to apply these policies.
+- If there is a readonly branch above the policy-selected branch and
+  the parent dir is marked as opaque (a variation of whiteout), or the
+  target (creating) file is whiteout-ed on the upper readonly branch,
+  then the result of the policy is ignored and the target file will be
+  created on the nearest upper writable branch than the readonly branch.
+- If there is a writable branch above the policy-selected branch and
+  the parent dir is marked as opaque or the target file is whiteouted
+  on the branch, then the result of the policy is ignored and the target
+  file will be created on the highest one among the upper writable
+  branches who has diropq or whiteout. In case of whiteout, aufs removes
+  it as usual.
+- link(2) and rename(2) systemcalls are exceptions in every policy.
+  They try selecting the branch where the source exists as possible
+  since copyup a large file will take long time. If it can't be,
+  ie. the branch where the source exists is readonly, then they will
+  follow the copyup policy.
+- There is an exception for rename(2) when the target exists.
+  If the rename target exists, aufs compares the index of the branches
+  where the source and the target exists and selects the higher
+  one. If the selected branch is readonly, then aufs follows the
+  copyup policy.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/06dirren.dot
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/06dirren.dot
@@ -0,0 +1,31 @@
+
+// to view this graph, run dot(1) command in GRAPHVIZ.
+
+digraph G {
+node [shape=box];
+whinfo [label="detailed info file\n(lower_brid_root-hinum, h_inum, namelen, old name)"];
+
+node [shape=oval];
+
+aufs_rename -> whinfo [label="store/remove"];
+
+node [shape=oval];
+inode_list [label="h_inum list in branch\ncache"];
+
+node [shape=box];
+whinode [label="h_inum list file"];
+
+node [shape=oval];
+brmgmt [label="br_add/del/mod/umount"];
+
+brmgmt -> inode_list [label="create/remove"];
+brmgmt -> whinode [label="load/store"];
+
+inode_list -> whinode [style=dashed,dir=both];
+
+aufs_rename -> inode_list [label="add/del"];
+
+aufs_lookup -> inode_list [label="search"];
+
+aufs_lookup -> whinfo [label="load/remove"];
+}
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/06dirren.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/06dirren.txt
@@ -0,0 +1,102 @@
+
+# Copyright (C) 2017-2020 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Special handling for renaming a directory (DIRREN)
+----------------------------------------------------------------------
+First, let's assume we have a simple usecase.
+
+- /u = /rw + /ro
+- /rw/dirA exists
+- /ro/dirA and /ro/dirA/file exist too
+- there is no dirB on both branches
+- a user issues rename("dirA", "dirB")
+
+Now, what should aufs behave against this rename(2)?
+There are a few possible cases.
+
+A. returns EROFS.
+   since dirA exists on a readonly branch which cannot be renamed.
+B. returns EXDEV.
+   it is possible to copy-up dirA (only the dir itself), but the child
+   entries ("file" in this case) should not be. it must be a bad
+   approach to copy-up recursively.
+C. returns a success.
+   even the branch /ro is readonly, aufs tries renaming it. Obviously it
+   is a violation of aufs' policy.
+D. construct an extra information which indicates that /ro/dirA should
+   be handled as the name of dirB.
+   overlayfs has a similar feature called REDIRECT.
+
+Until now, aufs implements the case B only which returns EXDEV, and
+expects the userspace application behaves like mv(1) which tries
+issueing rename(2) recursively.
+
+A new aufs feature called DIRREN is introduced which implements the case
+D. There are several "extra information" added.
+
+1. detailed info per renamed directory
+   path: /rw/dirB/$AUFS_WH_DR_INFO_PFX.<lower branch-id>
+2. the inode-number list of directories on a branch
+   path: /rw/dirB/$AUFS_WH_DR_BRHINO
+
+The filename of "detailed info per directory" represents the lower
+branch, and its format is
+- a type of the branch id
+  one of these.
+  + uuid (not implemented yet)
+  + fsid
+  + dev
+- the inode-number of the branch root dir
+
+And it contains these info in a single regular file.
+- magic number
+- branch's inode-number of the logically renamed dir
+- the name of the before-renamed dir
+
+The "detailed info per directory" file is created in aufs rename(2), and
+loaded in any lookup.
+The info is considered in lookup for the matching case only. Here
+"matching" means that the root of branch (in the info filename) is same
+to the current looking-up branch. After looking-up the before-renamed
+name, the inode-number is compared. And the matched dentry is used.
+
+The "inode-number list of directories" is a regular file which contains
+simply the inode-numbers on the branch. The file is created or updated
+in removing the branch, and loaded in adding the branch. Its lifetime is
+equal to the branch.
+The list is refered in lookup, and when the current target inode is
+found in the list, the aufs tries loading the "detailed info per
+directory" and get the changed and valid name of the dir.
+
+Theoretically these "extra informaiton" may be able to be put into XATTR
+in the dir inode. But aufs doesn't choose this way because
+1. XATTR may not be supported by the branch (or its configuration)
+2. XATTR may have its size limit.
+3. XATTR may be less easy to convert than a regular file, when the
+   format of the info is changed in the future.
+At the same time, I agree that the regular file approach is much slower
+than XATTR approach. So, in the future, aufs may take the XATTR or other
+better approach.
+
+This DIRREN feature is enabled by aufs configuration, and is activated
+by a new mount option.
+
+For the more complicated case, there is a work with UDBA option, which
+is to dected the direct access to the branches (by-passing aufs) and to
+maintain the cashes in aufs. Since a single cached aufs dentry may
+contains two names, before- and after-rename, the name comparision in
+UDBA handler may not work correctly. In this case, the behaviour will be
+equivalen to udba=reval case.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/06fhsm.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/06fhsm.txt
@@ -0,0 +1,120 @@
+
+# Copyright (C) 2011-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+File-based Hierarchical Storage Management (FHSM)
+----------------------------------------------------------------------
+Hierarchical Storage Management (or HSM) is a well-known feature in the
+storage world. Aufs provides this feature as file-based with multiple
+writable branches, based upon the principle of "Colder, the Lower".
+Here the word "colder" means that the less used files, and "lower" means
+that the position in the order of the stacked branches vertically.
+These multiple writable branches are prioritized, ie. the topmost one
+should be the fastest drive and be used heavily.
+
+o Characters in aufs FHSM story
+- aufs itself and a new branch attribute.
+- a new ioctl interface to move-down and to establish a connection with
+  the daemon ("move-down" is a converse of "copy-up").
+- userspace tool and daemon.
+
+The userspace daemon establishes a connection with aufs and waits for
+the notification. The notified information is very similar to struct
+statfs containing the number of consumed blocks and inodes.
+When the consumed blocks/inodes of a branch exceeds the user-specified
+upper watermark, the daemon activates its move-down process until the
+consumed blocks/inodes reaches the user-specified lower watermark.
+
+The actual move-down is done by aufs based upon the request from
+user-space since we need to maintain the inode number and the internal
+pointer arrays in aufs.
+
+Currently aufs FHSM handles the regular files only. Additionally they
+must not be hard-linked nor pseudo-linked.
+
+
+o Cowork of aufs and the user-space daemon
+  During the userspace daemon established the connection, aufs sends a
+  small notification to it whenever aufs writes something into the
+  writable branch. But it may cost high since aufs issues statfs(2)
+  internally. So user can specify a new option to cache the
+  info. Actually the notification is controlled by these factors.
+  + the specified cache time.
+  + classified as "force" by aufs internally.
+  Until the specified time expires, aufs doesn't send the info
+  except the forced cases. When aufs decide forcing, the info is always
+  notified to userspace.
+  For example, the number of free inodes is generally large enough and
+  the shortage of it happens rarely. So aufs doesn't force the
+  notification when creating a new file, directory and others. This is
+  the typical case which aufs doesn't force.
+  When aufs writes the actual filedata and the files consumes any of new
+  blocks, the aufs forces notifying.
+
+
+o Interfaces in aufs
+- New branch attribute.
+  + fhsm
+    Specifies that the branch is managed by FHSM feature. In other word,
+    participant in the FHSM.
+    When nofhsm is set to the branch, it will not be the source/target
+    branch of the move-down operation. This attribute is set
+    independently from coo and moo attributes, and if you want full
+    FHSM, you should specify them as well.
+- New mount option.
+  + fhsm_sec
+    Specifies a second to suppress many less important info to be
+    notified.
+- New ioctl.
+  + AUFS_CTL_FHSM_FD
+    create a new file descriptor which userspace can read the notification
+    (a subset of struct statfs) from aufs.
+- Module parameter 'brs'
+  It has to be set to 1. Otherwise the new mount option 'fhsm' will not
+  be set.
+- mount helpers /sbin/mount.aufs and /sbin/umount.aufs
+  When there are two or more branches with fhsm attributes,
+  /sbin/mount.aufs invokes the user-space daemon and /sbin/umount.aufs
+  terminates it. As a result of remounting and branch-manipulation, the
+  number of branches with fhsm attribute can be one. In this case,
+  /sbin/mount.aufs will terminate the user-space daemon.
+
+
+Finally the operation is done as these steps in kernel-space.
+- make sure that,
+  + no one else is using the file.
+  + the file is not hard-linked.
+  + the file is not pseudo-linked.
+  + the file is a regular file.
+  + the parent dir is not opaqued.
+- find the target writable branch.
+- make sure the file is not whiteout-ed by the upper (than the target)
+  branch.
+- make the parent dir on the target branch.
+- mutex lock the inode on the branch.
+- unlink the whiteout on the target branch (if exists).
+- lookup and create the whiteout-ed temporary name on the target branch.
+- copy the file as the whiteout-ed temporary name on the target branch.
+- rename the whiteout-ed temporary name to the original name.
+- unlink the file on the source branch.
+- maintain the internal pointer array and the external inode number
+  table (XINO).
+- maintain the timestamps and other attributes of the parent dir and the
+  file.
+
+And of course, in every step, an error may happen. So the operation
+should restore the original file state after an error happens.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/06mmap.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/06mmap.txt
@@ -0,0 +1,72 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+mmap(2) -- File Memory Mapping
+----------------------------------------------------------------------
+In aufs, the file-mapped pages are handled by a branch fs directly, no
+interaction with aufs. It means aufs_mmap() calls the branch fs's
+->mmap().
+This approach is simple and good, but there is one problem.
+Under /proc, several entries show the mmapped files by its path (with
+device and inode number), and the printed path will be the path on the
+branch fs's instead of virtual aufs's.
+This is not a problem in most cases, but some utilities lsof(1) (and its
+user) may expect the path on aufs.
+
+To address this issue, aufs adds a new member called vm_prfile in struct
+vm_area_struct (and struct vm_region). The original vm_file points to
+the file on the branch fs in order to handle everything correctly as
+usual. The new vm_prfile points to a virtual file in aufs, and the
+show-functions in procfs refers to vm_prfile if it is set.
+Also we need to maintain several other places where touching vm_file
+such like
+- fork()/clone() copies vma and the reference count of vm_file is
+  incremented.
+- merging vma maintains the ref count too.
+
+This is not a good approach. It just fakes the printed path. But it
+leaves all behaviour around f_mapping unchanged. This is surely an
+advantage.
+Actually aufs had adopted another complicated approach which calls
+generic_file_mmap() and handles struct vm_operations_struct. In this
+approach, aufs met a hard problem and I could not solve it without
+switching the approach.
+
+There may be one more another approach which is
+- bind-mount the branch-root onto the aufs-root internally
+- grab the new vfsmount (ie. struct mount)
+- lazy-umount the branch-root internally
+- in open(2) the aufs-file, open the branch-file with the hidden
+  vfsmount (instead of the original branch's vfsmount)
+- ideally this "bind-mount and lazy-umount" should be done atomically,
+  but it may be possible from userspace by the mount helper.
+
+Adding the internal hidden vfsmount and using it in opening a file, the
+file path under /proc will be printed correctly. This approach looks
+smarter, but is not possible I am afraid.
+- aufs-root may be bind-mount later. when it happens, another hidden
+  vfsmount will be required.
+- it is hard to get the chance to bind-mount and lazy-umount
+  + in kernel-space, FS can have vfsmount in open(2) via
+    file->f_path, and aufs can know its vfsmount. But several locks are
+    already acquired, and if aufs tries to bind-mount and lazy-umount
+    here, then it may cause a deadlock.
+  + in user-space, bind-mount doesn't invoke the mount helper.
+- since /proc shows dev and ino, aufs has to give vma these info. it
+  means a new member vm_prinode will be necessary. this is essentially
+  equivalent to vm_prfile described above.
+
+I have to give up this "looks-smater" approach.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/06xattr.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/06xattr.txt
@@ -0,0 +1,96 @@
+
+# Copyright (C) 2014-2020 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Listing XATTR/EA and getting the value
+----------------------------------------------------------------------
+For the inode standard attributes (owner, group, timestamps, etc.), aufs
+shows the values from the topmost existing file. This behaviour is good
+for the non-dir entries since the bahaviour exactly matches the shown
+information. But for the directories, aufs considers all the same named
+entries on the lower branches. Which means, if one of the lower entry
+rejects readdir call, then aufs returns an error even if the topmost
+entry allows it. This behaviour is necessary to respect the branch fs's
+security, but can make users confused since the user-visible standard
+attributes don't match the behaviour.
+To address this issue, aufs has a mount option called dirperm1 which
+checks the permission for the topmost entry only, and ignores the lower
+entry's permission.
+
+A similar issue can happen around XATTR.
+getxattr(2) and listxattr(2) families behave as if dirperm1 option is
+always set. Otherwise these very unpleasant situation would happen.
+- listxattr(2) may return the duplicated entries.
+- users may not be able to remove or reset the XATTR forever,
+
+
+XATTR/EA support in the internal (copy,move)-(up,down)
+----------------------------------------------------------------------
+Generally the extended attributes of inode are categorized as these.
+- "security" for LSM and capability.
+- "system" for posix ACL, 'acl' mount option is required for the branch
+  fs generally.
+- "trusted" for userspace, CAP_SYS_ADMIN is required.
+- "user" for userspace, 'user_xattr' mount option is required for the
+  branch fs generally.
+
+Moreover there are some other categories. Aufs handles these rather
+unpopular categories as the ordinary ones, ie. there is no special
+condition nor exception.
+
+In copy-up, the support for XATTR on the dst branch may differ from the
+src branch. In this case, the copy-up operation will get an error and
+the original user operation which triggered the copy-up will fail. It
+can happen that even all copy-up will fail.
+When both of src and dst branches support XATTR and if an error occurs
+during copying XATTR, then the copy-up should fail obviously. That is a
+good reason and aufs should return an error to userspace. But when only
+the src branch support that XATTR, aufs should not return an error.
+For example, the src branch supports ACL but the dst branch doesn't
+because the dst branch may natively un-support it or temporary
+un-support it due to "noacl" mount option. Of course, the dst branch fs
+may NOT return an error even if the XATTR is not supported. It is
+totally up to the branch fs.
+
+Anyway when the aufs internal copy-up gets an error from the dst branch
+fs, then aufs tries removing the just copied entry and returns the error
+to the userspace. The worst case of this situation will be all copy-up
+will fail.
+
+For the copy-up operation, there two basic approaches.
+- copy the specified XATTR only (by category above), and return the
+  error unconditionally if it happens.
+- copy all XATTR, and ignore the error on the specified category only.
+
+In order to support XATTR and to implement the correct behaviour, aufs
+chooses the latter approach and introduces some new branch attributes,
+"icexsec", "icexsys", "icextr", "icexusr", and "icexoth".
+They correspond to the XATTR namespaces (see above). Additionally, to be
+convenient, "icex" is also provided which means all "icex*" attributes
+are set (here the word "icex" stands for "ignore copy-error on XATTR").
+
+The meaning of these attributes is to ignore the error from setting
+XATTR on that branch.
+Note that aufs tries copying all XATTR unconditionally, and ignores the
+error from the dst branch according to the specified attributes.
+
+Some XATTR may have its default value. The default value may come from
+the parent dir or the environment. If the default value is set at the
+file creating-time, it will be overwritten by copy-up.
+Some contradiction may happen I am afraid.
+Do we need another attribute to stop copying XATTR? I am unsure. For
+now, aufs implements the branch attributes to ignore the error.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/07export.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/07export.txt
@@ -0,0 +1,58 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Export Aufs via NFS
+----------------------------------------------------------------------
+Here is an approach.
+- like xino/xib, add a new file 'xigen' which stores aufs inode
+  generation.
+- iget_locked(): initialize aufs inode generation for a new inode, and
+  store it in xigen file.
+- destroy_inode(): increment aufs inode generation and store it in xigen
+  file. it is necessary even if it is not unlinked, because any data of
+  inode may be changed by UDBA.
+- encode_fh(): for a root dir, simply return FILEID_ROOT. otherwise
+  build file handle by
+  + branch id (4 bytes)
+  + superblock generation (4 bytes)
+  + inode number (4 or 8 bytes)
+  + parent dir inode number (4 or 8 bytes)
+  + inode generation (4 bytes))
+  + return value of exportfs_encode_fh() for the parent on a branch (4
+    bytes)
+  + file handle for a branch (by exportfs_encode_fh())
+- fh_to_dentry():
+  + find the index of a branch from its id in handle, and check it is
+    still exist in aufs.
+  + 1st level: get the inode number from handle and search it in cache.
+  + 2nd level: if not found in cache, get the parent inode number from
+    the handle and search it in cache. and then open the found parent
+    dir, find the matching inode number by vfs_readdir() and get its
+    name, and call lookup_one_len() for the target dentry.
+  + 3rd level: if the parent dir is not cached, call
+    exportfs_decode_fh() for a branch and get the parent on a branch,
+    build a pathname of it, convert it a pathname in aufs, call
+    path_lookup(). now aufs gets a parent dir dentry, then handle it as
+    the 2nd level.
+  + to open the dir, aufs needs struct vfsmount. aufs keeps vfsmount
+    for every branch, but not itself. to get this, (currently) aufs
+    searches in current->nsproxy->mnt_ns list. it may not be a good
+    idea, but I didn't get other approach.
+  + test the generation of the gotten inode.
+- every inode operation: they may get EBUSY due to UDBA. in this case,
+  convert it into ESTALE for NFSD.
+- readdir(): call lockdep_on/off() because filldir in NFSD calls
+  lookup_one_len(), vfs_getattr(), encode_fh() and others.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/08shwh.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/08shwh.txt
@@ -0,0 +1,52 @@
+
+# Copyright (C) 2005-2020 Junjiro R. Okajima
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Show Whiteout Mode (shwh)
+----------------------------------------------------------------------
+Generally aufs hides the name of whiteouts. But in some cases, to show
+them is very useful for users. For instance, creating a new middle layer
+(branch) by merging existing layers.
+
+(borrowing aufs1 HOW-TO from a user, Michael Towers)
+When you have three branches,
+- Bottom: 'system', squashfs (underlying base system), read-only
+- Middle: 'mods', squashfs, read-only
+- Top: 'overlay', ram (tmpfs), read-write
+
+The top layer is loaded at boot time and saved at shutdown, to preserve
+the changes made to the system during the session.
+When larger changes have been made, or smaller changes have accumulated,
+the size of the saved top layer data grows. At this point, it would be
+nice to be able to merge the two overlay branches ('mods' and 'overlay')
+and rewrite the 'mods' squashfs, clearing the top layer and thus
+restoring save and load speed.
+
+This merging is simplified by the use of another aufs mount, of just the
+two overlay branches using the 'shwh' option.
+# mount -t aufs -o ro,shwh,br:/livesys/overlay=ro+wh:/livesys/mods=rr+wh \
+	aufs /livesys/merge_union
+
+A merged view of these two branches is then available at
+/livesys/merge_union, and the new feature is that the whiteouts are
+visible!
+Note that in 'shwh' mode the aufs mount must be 'ro', which will disable
+writing to all branches. Also the default mode for all branches is 'ro'.
+It is now possible to save the combined contents of the two overlay
+branches to a new squashfs, e.g.:
+# mksquashfs /livesys/merge_union /path/to/newmods.squash
+
+This new squashfs archive can be stored on the boot device and the
+initramfs will use it to replace the old one at the next boot.
--- linux-ein-5.4.0.orig/Documentation/filesystems/aufs/design/10dynop.txt
+++ linux-ein-5.4.0/Documentation/filesystems/aufs/design/10dynop.txt
@@ -0,0 +1,47 @@
+
+# Copyright (C) 2010-2020 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Dynamically customizable FS operations
+----------------------------------------------------------------------
+Generally FS operations (struct inode_operations, struct
+address_space_operations, struct file_operations, etc.) are defined as
+"static const", but it never means that FS have only one set of
+operation. Some FS have multiple sets of them. For instance, ext2 has
+three sets, one for XIP, for NOBH, and for normal.
+Since aufs overrides and redirects these operations, sometimes aufs has
+to change its behaviour according to the branch FS type. More importantly
+VFS acts differently if a function (member in the struct) is set or
+not. It means aufs should have several sets of operations and select one
+among them according to the branch FS definition.
+
+In order to solve this problem and not to affect the behaviour of VFS,
+aufs defines these operations dynamically. For instance, aufs defines
+dummy direct_IO function for struct address_space_operations, but it may
+not be set to the address_space_operations actually. When the branch FS
+doesn't have it, aufs doesn't set it to its address_space_operations
+while the function definition itself is still alive. So the behaviour
+itself will not change, and it will return an error when direct_IO is
+not set.
+
+The lifetime of these dynamically generated operation object is
+maintained by aufs branch object. When the branch is removed from aufs,
+the reference counter of the object is decremented. When it reaches
+zero, the dynamically generated operation object will be freed.
+
+This approach is designed to support AIO (io_submit), Direct I/O and
+XIP (DAX) mainly.
+Currently this approach is applied to address_space_operations for
+regular files only.
--- linux-ein-5.4.0.orig/Documentation/filesystems/directory-locking.rst
+++ linux-ein-5.4.0/Documentation/filesystems/directory-locking.rst
@@ -22,12 +22,11 @@
 3) object removal.  Locking rules: caller locks parent, finds victim,
 locks victim and calls the method.  Locks are exclusive.
 
-4) rename() that is _not_ cross-directory.  Locking rules: caller locks
-the parent and finds source and target.  In case of exchange (with
-RENAME_EXCHANGE in flags argument) lock both.  In any case,
-if the target already exists, lock it.  If the source is a non-directory,
-lock it.  If we need to lock both, lock them in inode pointer order.
-Then call the method.  All locks are exclusive.
+4) rename() that is _not_ cross-directory.  Locking rules: caller locks the
+parent and finds source and target.  We lock both (provided they exist).  If we
+need to lock two inodes of different type (dir vs non-dir), we lock directory
+first.  If we need to lock two inodes of the same type, lock them in inode
+pointer order.  Then call the method.  All locks are exclusive.
 NB: we might get away with locking the the source (and target in exchange
 case) shared.
 
@@ -44,15 +43,17 @@
 rules:
 
 	* lock the filesystem
-	* lock parents in "ancestors first" order.
+	* lock parents in "ancestors first" order. If one is not ancestor of
+	  the other, lock them in inode pointer order.
 	* find source and target.
 	* if old parent is equal to or is a descendent of target
 	  fail with -ENOTEMPTY
 	* if new parent is equal to or is a descendent of source
 	  fail with -ELOOP
-	* If it's an exchange, lock both the source and the target.
-	* If the target exists, lock it.  If the source is a non-directory,
-	  lock it.  If we need to lock both, do so in inode pointer order.
+	* Lock both the source and the target provided they exist. If we
+	  need to lock two inodes of different type (dir vs non-dir), we lock
+	  the directory first. If we need to lock two inodes of the same type,
+	  lock them in inode pointer order.
 	* call the method.
 
 All ->i_rwsem are taken exclusive.  Again, we might get away with locking
@@ -66,8 +67,9 @@
 
 Proof:
 
-	First of all, at any moment we have a partial ordering of the
-	objects - A < B iff A is an ancestor of B.
+	First of all, at any moment we have a linear ordering of the
+	objects - A < B iff (A is an ancestor of B) or (B is not an ancestor
+        of A and ptr(A) < ptr(B)).
 
 	That ordering can change.  However, the following is true:
 
--- linux-ein-5.4.0.orig/Documentation/filesystems/ext4/attributes.rst
+++ linux-ein-5.4.0/Documentation/filesystems/ext4/attributes.rst
@@ -76,7 +76,7 @@
      - Checksum of the extended attribute block.
    * - 0x14
      - \_\_u32
-     - h\_reserved[2]
+     - h\_reserved[3]
      - Zero.
 
 The checksum is calculated against the FS UUID, the 64-bit block number
--- linux-ein-5.4.0.orig/Documentation/filesystems/porting.rst
+++ linux-ein-5.4.0/Documentation/filesystems/porting.rst
@@ -850,3 +850,11 @@
 d_alloc_pseudo() is internal-only; uses outside of alloc_file_pseudo() are
 very suspect (and won't work in modules).  Such uses are very likely to
 be misspelled d_alloc_anon().
+
+---
+
+**mandatory**
+
+[should've been added in 2016] stale comment in finish_open() nonwithstanding,
+failure exits in ->atomic_open() instances should *NOT* fput() the file,
+no matter what.  Everything is handled by the caller.
--- linux-ein-5.4.0.orig/Documentation/filesystems/seq_file.txt
+++ linux-ein-5.4.0/Documentation/filesystems/seq_file.txt
@@ -192,6 +192,12 @@
 is a reasonable thing to do. The seq_file code will also avoid taking any
 other locks while the iterator is active.
 
+The iterater value returned by start() or next() is guaranteed to be
+passed to a subsequent next() or stop() call.  This allows resources
+such as locks that were taken to be reliably released.  There is *no*
+guarantee that the iterator will be passed to show(), though in practice
+it often will be.
+
 
 Formatted output
 
--- linux-ein-5.4.0.orig/Documentation/filesystems/sysfs.txt
+++ linux-ein-5.4.0/Documentation/filesystems/sysfs.txt
@@ -232,12 +232,10 @@
   is 4096. 
 
 - show() methods should return the number of bytes printed into the
-  buffer. This is the return value of scnprintf().
+  buffer.
 
-- show() must not use snprintf() when formatting the value to be
-  returned to user space. If you can guarantee that an overflow
-  will never happen you can use sprintf() otherwise you must use
-  scnprintf().
+- show() should only use sysfs_emit() or sysfs_emit_at() when formatting
+  the value to be returned to user space.
 
 - store() should return the number of bytes used from the buffer. If the
   entire buffer has been used, just return the count argument.
--- linux-ein-5.4.0.orig/Documentation/filesystems/vfs.rst
+++ linux-ein-5.4.0/Documentation/filesystems/vfs.rst
@@ -1173,7 +1173,7 @@
 	return
 	-ECHILD and it will be called again in ref-walk mode.
 
-``_weak_revalidate``
+``d_weak_revalidate``
 	called when the VFS needs to revalidate a "jumped" dentry.  This
 	is called when a path-walk ends at dentry that was not acquired
 	by doing a lookup in the parent directory.  This includes "/",
--- linux-ein-5.4.0.orig/Documentation/firmware-guide/acpi/apei/einj.rst
+++ linux-ein-5.4.0/Documentation/firmware-guide/acpi/apei/einj.rst
@@ -168,7 +168,7 @@
   0x00000008	Memory Correctable
   0x00000010	Memory Uncorrectable non-fatal
   # echo 0x12345000 > param1		# Set memory address for injection
-  # echo $((-1 << 12)) > param2		# Mask 0xfffffffffffff000 - anywhere in this page
+  # echo 0xfffffffffffff000 > param2		# Mask - anywhere in this page
   # echo 0x8 > error_type			# Choose correctable memory error
   # echo 1 > error_inject			# Inject now
 
--- linux-ein-5.4.0.orig/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
+++ linux-ein-5.4.0/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
@@ -5,7 +5,7 @@
 Referencing hierarchical data nodes
 ===================================
 
-:Copyright: |copy| 2018 Intel Corporation
+:Copyright: |copy| 2018, 2021 Intel Corporation
 :Author: Sakari Ailus <sakari.ailus@linux.intel.com>
 
 ACPI in general allows referring to device objects in the tree only.
@@ -52,12 +52,14 @@
 	    Name (NOD0, Package() {
 		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
 		Package () {
+		    Package () { "reg", 0 },
 		    Package () { "random-property", 3 },
 		}
 	    })
 	    Name (NOD1, Package() {
 		ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
 		Package () {
+		    Package () { "reg", 1 },
 		    Package () { "anothernode", "ANOD" },
 		}
 	    })
@@ -74,7 +76,11 @@
 	    Name (_DSD, Package () {
 		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
 		Package () {
-		    Package () { "reference", ^DEV0, "node@1", "anothernode" },
+		    Package () {
+			"reference", Package () {
+			    ^DEV0, "node@1", "anothernode"
+			}
+		    },
 		}
 	    })
 	}
--- linux-ein-5.4.0.orig/Documentation/hwmon/gsc-hwmon.rst
+++ linux-ein-5.4.0/Documentation/hwmon/gsc-hwmon.rst
@@ -0,0 +1,53 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+Kernel driver gsc-hwmon
+=======================
+
+Supported chips: Gateworks GSC
+Datasheet: http://trac.gateworks.com/wiki/gsc
+Author: Tim Harvey <tharvey@gateworks.com>
+
+Description:
+------------
+
+This driver supports hardware monitoring for the temperature sensor,
+various ADC's connected to the GSC, and optional FAN controller available
+on some boards.
+
+
+Voltage Monitoring
+------------------
+
+The voltage inputs are scaled either internally or by the driver depending
+on the GSC version and firmware. The values returned by the driver do not need
+further scaling. The voltage input labels provide the voltage rail name:
+
+inX_input                  Measured voltage (mV).
+inX_label                  Name of voltage rail.
+
+
+Temperature Monitoring
+----------------------
+
+Temperatures are measured with 12-bit or 10-bit resolution and are scaled
+either internally or by the driver depending on the GSC version and firmware.
+The values returned by the driver reflect millidegree Celcius:
+
+tempX_input                Measured temperature.
+tempX_label                Name of temperature input.
+
+
+PWM Output Control
+------------------
+
+The GSC features 1 PWM output that operates in automatic mode where the
+PWM value will be scalled depending on 6 temperature boundaries.
+The tempeature boundaries are read-write and in millidegree Celcius and the
+read-only PWM values range from 0 (off) to 255 (full speed).
+Fan speed will be set to minimum (off) when the temperature sensor reads
+less than pwm1_auto_point1_temp and maximum when the temperature sensor
+equals or exceeds pwm1_auto_point6_temp.
+
+pwm1_auto_point[1-6]_pwm       PWM value.
+pwm1_auto_point[1-6]_temp      Temperature boundary.
+
--- linux-ein-5.4.0.orig/Documentation/hwmon/index.rst
+++ linux-ein-5.4.0/Documentation/hwmon/index.rst
@@ -56,6 +56,7 @@
    ftsteutates
    g760a
    g762
+   gsc-hwmon
    gl518sm
    hih6130
    ibmaem
--- linux-ein-5.4.0.orig/Documentation/hwmon/lm90.rst
+++ linux-ein-5.4.0/Documentation/hwmon/lm90.rst
@@ -123,6 +123,18 @@
 
 	       http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
 
+  * Maxim MAX6654
+
+    Prefix: 'max6654'
+
+    Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
+
+			   0x4c, 0x4d and 0x4e
+
+    Datasheet: Publicly available at the Maxim website
+
+	       https://www.maximintegrated.com/en/products/sensors/MAX6654.html
+
   * Maxim MAX6657
 
     Prefix: 'max6657'
@@ -253,6 +265,16 @@
 
 	       http://www.ti.com/litv/pdf/sbos686
 
+  * Texas Instruments TMP461
+
+    Prefix: 'tmp461'
+
+    Addresses scanned: I2C 0x48 through 0x4F
+
+    Datasheet: Publicly available at TI website
+
+	       https://www.ti.com/lit/gpn/tmp461
+
 Author: Jean Delvare <jdelvare@suse.de>
 
 
@@ -301,6 +323,13 @@
   * Extended temperature range (breaks compatibility)
   * Lower resolution for remote temperature
 
+MAX6654:
+  * Better local resolution
+  * Selectable address
+  * Remote sensor type selection
+  * Extended temperature range
+  * Extended resolution only available when conversion rate <= 1 Hz
+
 MAX6657 and MAX6658:
   * Better local resolution
   * Remote sensor type selection
@@ -336,8 +365,8 @@
 
 All temperature values are given in degrees Celsius. Resolution
 is 1.0 degree for the local temperature, 0.125 degree for the remote
-temperature, except for the MAX6657, MAX6658 and MAX6659 which have a
-resolution of 0.125 degree for both temperatures.
+temperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have
+a resolution of 0.125 degree for both temperatures.
 
 Each sensor has its own high and low limits, plus a critical limit.
 Additionally, there is a relative hysteresis value common to both critical
--- linux-ein-5.4.0.orig/Documentation/hwmon/max31790.rst
+++ linux-ein-5.4.0/Documentation/hwmon/max31790.rst
@@ -38,6 +38,7 @@
 fan[1-12]_input    RO  fan tachometer speed in RPM
 fan[1-12]_fault    RO  fan experienced fault
 fan[1-6]_target    RW  desired fan speed in RPM
-pwm[1-6]_enable    RW  regulator mode, 0=disabled, 1=manual mode, 2=rpm mode
-pwm[1-6]           RW  fan target duty cycle (0-255)
+pwm[1-6]_enable    RW  regulator mode, 0=disabled (duty cycle=0%), 1=manual mode, 2=rpm mode
+pwm[1-6]           RW  read: current pwm duty cycle,
+                       write: target pwm duty cycle (0-255)
 ================== === =======================================================
--- linux-ein-5.4.0.orig/Documentation/index.rst
+++ linux-ein-5.4.0/Documentation/index.rst
@@ -135,6 +135,14 @@
    mic/index
    scheduler/index
 
+Architecture-agnostic documentation
+-----------------------------------
+
+.. toctree::
+   :maxdepth: 2
+
+   asm-annotations
+
 Architecture-specific documentation
 -----------------------------------
 
--- linux-ein-5.4.0.orig/Documentation/input/joydev/joystick.rst
+++ linux-ein-5.4.0/Documentation/input/joydev/joystick.rst
@@ -517,6 +517,7 @@
 * AVB Mag Turbo Force
 * AVB Top Shot Pegasus
 * AVB Top Shot Force Feedback Racing Wheel
+* Boeder Force Feedback Wheel
 * Logitech WingMan Force
 * Logitech WingMan Force Wheel
 * Guillemot Race Leader Force Feedback
--- linux-ein-5.4.0.orig/Documentation/ioctl/ioctl-number.rst
+++ linux-ein-5.4.0/Documentation/ioctl/ioctl-number.rst
@@ -158,7 +158,8 @@
 'I'   00-0F  drivers/isdn/divert/isdn_divert.h                       conflict!
 'I'   40-4F  linux/mISDNif.h                                         conflict!
 'J'   00-1F  drivers/scsi/gdth_ioctl.h
-'K'   all    linux/kd.h
+'K'   all    linux/kd.h                                              conflict!
+'K'   00-01  linux/caam_keygen.h                                     conflict! caam driver
 'L'   00-1F  linux/loop.h                                            conflict!
 'L'   10-1F  drivers/scsi/mpt3sas/mpt3sas_ctl.h                      conflict!
 'L'   20-2F  linux/lightnvm.h
@@ -301,7 +302,6 @@
 0x89  00-06  arch/x86/include/asm/sockios.h
 0x89  0B-DF  linux/sockios.h
 0x89  E0-EF  linux/sockios.h                                         SIOCPROTOPRIVATE range
-0x89  E0-EF  linux/dn.h                                              PROTOPRIVATE range
 0x89  F0-FF  linux/sockios.h                                         SIOCDEVPRIVATE range
 0x8B  all    linux/wireless.h
 0x8C  00-3F                                                          WiNRADiO driver
--- linux-ein-5.4.0.orig/Documentation/kbuild/index.rst
+++ linux-ein-5.4.0/Documentation/kbuild/index.rst
@@ -19,6 +19,7 @@
 
     issues
     reproducible-builds
+    llvm
 
 .. only::  subproject and html
 
--- linux-ein-5.4.0.orig/Documentation/kbuild/kbuild.rst
+++ linux-ein-5.4.0/Documentation/kbuild/kbuild.rst
@@ -262,3 +262,8 @@
 These two variables allow to override the user@host string displayed during
 boot and in /proc/version. The default value is the output of the commands
 whoami and host, respectively.
+
+LLVM
+----
+If this variable is set to 1, Kbuild will use Clang and LLVM utilities instead
+of GCC and GNU binutils to build the kernel.
--- linux-ein-5.4.0.orig/Documentation/kbuild/llvm.rst
+++ linux-ein-5.4.0/Documentation/kbuild/llvm.rst
@@ -0,0 +1,87 @@
+==============================
+Building Linux with Clang/LLVM
+==============================
+
+This document covers how to build the Linux kernel with Clang and LLVM
+utilities.
+
+About
+-----
+
+The Linux kernel has always traditionally been compiled with GNU toolchains
+such as GCC and binutils. Ongoing work has allowed for `Clang
+<https://clang.llvm.org/>`_ and `LLVM <https://llvm.org/>`_ utilities to be
+used as viable substitutes. Distributions such as `Android
+<https://www.android.com/>`_, `ChromeOS
+<https://www.chromium.org/chromium-os>`_, and `OpenMandriva
+<https://www.openmandriva.org/>`_ use Clang built kernels.  `LLVM is a
+collection of toolchain components implemented in terms of C++ objects
+<https://www.aosabook.org/en/llvm.html>`_. Clang is a front-end to LLVM that
+supports C and the GNU C extensions required by the kernel, and is pronounced
+"klang," not "see-lang."
+
+Clang
+-----
+
+The compiler used can be swapped out via `CC=` command line argument to `make`.
+`CC=` should be set when selecting a config and during a build.
+
+	make CC=clang defconfig
+
+	make CC=clang
+
+Cross Compiling
+---------------
+
+A single Clang compiler binary will typically contain all supported backends,
+which can help simplify cross compiling.
+
+	ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang
+
+`CROSS_COMPILE` is not used to prefix the Clang compiler binary, instead
+`CROSS_COMPILE` is used to set a command line flag: `--target <triple>`. For
+example:
+
+	clang --target aarch64-linux-gnu foo.c
+
+LLVM Utilities
+--------------
+
+LLVM has substitutes for GNU binutils utilities. Kbuild supports `LLVM=1`
+to enable them.
+
+	make LLVM=1
+
+They can be enabled individually. The full list of the parameters:
+
+	make CC=clang LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip \\
+	  OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size \\
+	  READELF=llvm-readelf HOSTCC=clang HOSTCXX=clang++ HOSTAR=llvm-ar \\
+	  HOSTLD=ld.lld
+
+Currently, the integrated assembler is disabled by default. You can pass
+`LLVM_IAS=1` to enable it.
+
+Getting Help
+------------
+
+- `Website <https://clangbuiltlinux.github.io/>`_
+- `Mailing List <https://groups.google.com/forum/#!forum/clang-built-linux>`_: <clang-built-linux@googlegroups.com>
+- `Issue Tracker <https://github.com/ClangBuiltLinux/linux/issues>`_
+- IRC: #clangbuiltlinux on chat.freenode.net
+- `Telegram <https://t.me/ClangBuiltLinux>`_: @ClangBuiltLinux
+- `Wiki <https://github.com/ClangBuiltLinux/linux/wiki>`_
+- `Beginner Bugs <https://github.com/ClangBuiltLinux/linux/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`_
+
+Getting LLVM
+-------------
+
+- http://releases.llvm.org/download.html
+- https://github.com/llvm/llvm-project
+- https://llvm.org/docs/GettingStarted.html
+- https://llvm.org/docs/CMake.html
+- https://apt.llvm.org/
+- https://www.archlinux.org/packages/extra/x86_64/llvm/
+- https://github.com/ClangBuiltLinux/tc-build
+- https://github.com/ClangBuiltLinux/linux/wiki/Building-Clang-from-source
+- https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/
--- linux-ein-5.4.0.orig/Documentation/kbuild/makefiles.rst
+++ linux-ein-5.4.0/Documentation/kbuild/makefiles.rst
@@ -1115,23 +1115,6 @@
 	In this example, extra-y is used to list object files that
 	shall be built, but shall not be linked as part of built-in.a.
 
-    header-test-y
-
-	header-test-y specifies headers (`*.h`) in the current directory that
-	should be compile tested to ensure they are self-contained,
-	i.e. compilable as standalone units. If CONFIG_HEADER_TEST is enabled,
-	this builds them as part of extra-y.
-
-    header-test-pattern-y
-
-	This works as a weaker version of header-test-y, and accepts wildcard
-	patterns. The typical usage is::
-
-		header-test-pattern-y += *.h
-
-	This specifies all the files that matches to `*.h` in the current
-	directory, but the files in 'header-test-' are excluded.
-
 6.7 Commands useful for building a boot image
 ---------------------------------------------
 
--- linux-ein-5.4.0.orig/Documentation/kbuild/modules.rst
+++ linux-ein-5.4.0/Documentation/kbuild/modules.rst
@@ -470,9 +470,9 @@
 
 	The syntax of the Module.symvers file is::
 
-	<CRC>       <Symbol>          <Namespace>  <Module>                         <Export Type>
+	<CRC>       <Symbol>         <Module>                         <Export Type>     <Namespace>
 
-	0xe1cc2a05  usb_stor_suspend  USB_STORAGE  drivers/usb/storage/usb-storage  EXPORT_SYMBOL_GPL
+	0xe1cc2a05  usb_stor_suspend drivers/usb/storage/usb-storage  EXPORT_SYMBOL_GPL USB_STORAGE
 
 	The fields are separated by tabs and values may be empty (e.g.
 	if no namespace is defined for an exported symbol).
--- linux-ein-5.4.0.orig/Documentation/kmsg/IPVS
+++ linux-ein-5.4.0/Documentation/kmsg/IPVS
@@ -0,0 +1,81 @@
+/*? Text: "%s(): NULL arg\n" */
+/*? Text: "%s(): NULL scheduler_name\n" */
+/*? Text: "%s(): [%s] pe already existed in the system\n" */
+/*? Text: "%s(): [%s] pe already linked\n" */
+/*? Text: "%s(): [%s] pe is not in the list. failed\n" */
+/*? Text: "%s(): [%s] scheduler already existed in the system\n" */
+/*? Text: "%s(): [%s] scheduler already linked\n" */
+/*? Text: "%s(): [%s] scheduler is not in the list. failed\n" */
+/*? Text: "%s(): done error\n" */
+/*? Text: "%s(): init error\n" */
+/*? Text: "%s(): lower threshold is higher than upper threshold\n" */
+/*? Text: "%s(): no memory\n" */
+/*? Text: "%s(): request for already hashed, called from %pF\n" */
+/*? Text: "%s(): request for unhash flagged, called from %pF\n" */
+/*? Text: "%s(): server weight less than zero\n" */
+/*? Text: "%s: %s %pI4:%d - %s\n" */
+/*? Text: "%s: %s [%pI6]:%d - %s\n" */
+/*? Text: "%s: %s [%pI6c]:%d - %s\n" */
+/*? Text: "%s: FWM %u 0x%08X - %s\n" */
+/*? Text: "%s: enter\n" */
+/*? Text: "%s: loaded support on port[%d] = %d\n" */
+/*? Text: "BACKUP v0, Dropping buffer bogus conn options\n" */
+/*? Text: "BACKUP v0, bogus conn\n" */
+/*? Text: "BACKUP, Dropping buffer, Err: %d in decoding\n" */
+/*? Text: "BACKUP, Dropping buffer, Unknown version %d\n" */
+/*? Text: "BACKUP, Dropping buffer, msg > buffer\n" */
+/*? Text: "BACKUP, Dropping buffer, to small\n" */
+/*? Text: "BACKUP, Invalid PE parameters\n" */
+/*? Text: "BUG control DEL with n=0 : %s:%d to %s:%d\n" */
+/*? Text: "Connection hash table configured (size=%d, memory=%ldKbytes)\n" */
+/*? Text: "Error binding address of the mcast interface\n" */
+/*? Text: "Error binding to the multicast addr\n" */
+/*? Text: "Error connecting to the multicast addr\n" */
+/*? Text: "Error during creation of socket; terminating\n" */
+/*? Text: "Error joining to the multicast group\n" */
+/*? Text: "Error setting outbound mcast interface\n" */
+/*? Text: "Failed to stop Backup Daemon\n" */
+/*? Text: "Failed to stop Master Daemon\n" */
+/*? Text: "Registered protocols (%s)\n" */
+/*? Text: "SYNC, connection pe_data invalid\n" */
+/*? Text: "Schedule: port zero only supported in persistent services, check your ipvs configuration\n" */
+/*? Text: "Scheduler module ip_vs_%s not found\n" */
+/*? Text: "There is no net ptr to find in the skb in %s() line:%d\n" */
+/*? Text: "UDP no ns data\n" */
+/*? Text: "You probably need to specify IP address on multicast interface.\n" */
+/*? Text: "[%s] pe registered.\n" */
+/*? Text: "[%s] pe unregistered.\n" */
+/*? Text: "[%s] scheduler registered.\n" */
+/*? Text: "[%s] scheduler unregistered.\n" */
+/*? Text: "can't register hooks.\n" */
+/*? Text: "can't register netlink/ioctl.\n" */
+/*? Text: "can't setup connection table.\n" */
+/*? Text: "can't setup control.\n" */
+/*? Text: "cannot register Generic Netlink interface.\n" */
+/*? Text: "cannot register sockopt.\n" */
+/*? Text: "get_ctl: len %u < %u\n" */
+/*? Text: "ip_vs_send_async error %d\n" */
+/*? Text: "ip_vs_sync_buff_create failed.\n" */
+/*? Text: "ipvs loaded.\n" */
+/*? Text: "ipvs unloaded.\n" */
+/*? Text: "length: %u != %u\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "not enough space in Netlink message\n" */
+/*? Text: "persistence engine module ip_vs_pe_%s not found\n" */
+/*? Text: "receiving message error\n" */
+/*? Text: "request control ADD for already controlled: %s:%d to %s:%d\n" */
+/*? Text: "request control DEL for uncontrolled: %s:%d to %s:%d\n" */
+/*? Text: "set_ctl: invalid protocol: %d %pI4:%d %s\n" */
+/*? Text: "set_ctl: len %u != %u\n" */
+/*? Text: "shouldn't reach here, because the box is on the half connection in the tun/dr module.\n" */
+/*? Text: "stopping backup sync thread %d ...\n" */
+/*? Text: "stopping master sync thread %d ...\n" */
+/*? Text: "sync thread started: state = BACKUP, mcast_ifn = %s, syncid = %d\n" */
+/*? Text: "sync thread started: state = MASTER, mcast_ifn = %s, syncid = %d\n" */
+/*? Text: "unknown Generic Netlink command\n" */
+/*? Text: "sync thread started: state = MASTER, mcast_ifn = %s, syncid = %d, id = %d\n" */
+/*? Text: "sync thread started: state = BACKUP, mcast_ifn = %s, syncid = %d, id = %d\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "Unknown mcast interface: %s\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/aes_s390
+++ linux-ein-5.4.0/Documentation/kmsg/s390/aes_s390
@@ -0,0 +1,45 @@
+/*?
+ * Text: "Allocating XTS fallback algorithm %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: algorithm name
+ * Description:
+ * The aes_s390 module failed to allocate a software fallback for the AES
+ * modes that are not supported by the hardware. A possible reason for this
+ * problem is that the aes_generic module that provides the fallback
+ * algorithms is not available.
+ * User action:
+ * Ensure that the aes_generic module is available and loaded and reload
+ * the aes_s390 module.
+ */
+
+/*?
+ * Text: "Allocating AES fallback algorithm %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: algorithm name
+ * Description:
+ * The advanced encryption standard (AES) algorithm includes three modes with
+ * 128-bit, 192-bit, and 256-bit keys. Your hardware system only provides
+ * hardware acceleration for the 128-bit mode. The aes_s390 module failed to
+ * allocate a software fallback for the AES modes that are not supported by the
+ * hardware. A possible reason for this problem is that the aes_generic module
+ * that provides the fallback algorithms is not available.
+ * User action:
+ * Use the 128-bit mode only or ensure that the aes_generic module is available
+ * and loaded and reload the aes_s390 module.
+ */
+
+/*?
+ * Text: "AES hardware acceleration is only available for 128-bit keys\n"
+ * Severity: Informational
+ * Description:
+ * The advanced encryption standard (AES) algorithm includes three modes with
+ * 128-bit, 192-bit, and 256-bit keys. Your hardware system only provides
+ * hardware acceleration for the 128-bit key mode. The aes_s390 module
+ * will use the less performant software fallback algorithm for the 192-bit
+ * and 256-bit key modes.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/af_iucv
+++ linux-ein-5.4.0/Documentation/kmsg/s390/af_iucv
@@ -0,0 +1,23 @@
+/*?
+ * Text: "Application %s on z/VM guest %s exceeds message limit\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: application name
+ *   @2: z/VM user ID
+ * Description:
+ * Messages or packets destined for the application have accumulated and
+ * reached the maximum value. The default for the message limit is 65535.
+ * You can specify a different limit as the value for MSGLIMIT within
+ * the IUCV statement of the z/VM virtual machine on which the application
+ * runs.
+ * User action:
+ * Ensure that you do not send data faster than the application retrieves
+ * them. Ensure that the message limit on the z/VM guest virtual machine
+ * on which the application runs is high enough.
+ */
+
+/*? Text: "Attempt to release alive iucv socket %p\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/ap
+++ linux-ein-5.4.0/Documentation/kmsg/s390/ap
@@ -0,0 +1,49 @@
+/*?
+ * Text: "%d is not a valid cryptographic domain\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: AP  domain index
+ * Description:
+ * The cryptographic domain specified for the 'domain=' module or kernel
+ * parameter must be an integer in the range 0 to 15.
+ * User action:
+ * Reload the cryptographic device driver with a correct module parameter.
+ * If the device driver has been compiled into the kernel, correct the value
+ * in the kernel parameter line and reboot Linux.
+ */
+
+/*?
+ * Text: "The hardware system does not support AP instructions\n"
+ * Severity: Warning
+ * Description:
+ * The ap module addresses AP adapters through AP instructions. The hardware
+ * system on which the Linux instance runs does not support AP instructions.
+ * The ap module cannot detect any AP adapters.
+ * User action:
+ * Load the ap module only if your Linux instance runs on hardware that
+ * supports AP instructions. If the ap module has been compiled into the kernel,
+ * ignore this message.
+ */
+
+/*?
+ * Text: "Registering adapter interrupts for AP device %02x.%04x failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: AP device ID
+ *   @2: AP queue
+ * Description:
+ * The hardware system supports AP adapter interrupts but failed to enable
+ * an adapter for interrupts. Possible causes for this error are:
+ * i)   The AP adapter firmware does not support AP interrupts.
+ * ii)  An AP adapter firmware update to a firmware level that supports AP
+ *      adapter interrupts failed.
+ * iii) The AP adapter firmware has been successfully updated to a level that
+ *      supports AP interrupts but the new firmware has not been activated.
+ * User action:
+ * Ensure that the firmware on your AP adapters support AP interrupts and that
+ * any firmware updates have completed successfully. If necessary, deconfigure
+ * your cryptographic adapters and reconfigure them to ensure that any firmware
+ * updates become active, then reload the ap module. If the ap module has been
+ * compiled into the kernel, reboot Linux.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/appldata
+++ linux-ein-5.4.0/Documentation/kmsg/s390/appldata
@@ -0,0 +1,91 @@
+/*?
+ * Text: "Starting the data collection for %s failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: appldata module
+ *   @2: return code
+ * Description:
+ * The specified data collection module used the z/VM diagnose call
+ * DIAG 0xDC to start writing data. z/VM returned an error and the data
+ * collection could not start. If the return code is 5, your z/VM guest
+ * virtual machine is not authorized to write data records.
+ * User action:
+ * If the return code is 5, ensure that your z/VM guest virtual machine's
+ * entry in the z/VM directory includes the OPTION APPLMON statement.
+ * For other return codes see the section about DIAGNOSE Code X'DC'
+ * in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Stopping the data collection for %s failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: appldata module
+ *   @2: return code
+ * Description:
+ * The specified data collection module used the z/VM diagnose call DIAG 0xDC
+ * to stop writing data. z/VM returned an error and the data collection
+ * continues.
+ * User action:
+ * See the section about DIAGNOSE Code X'DC' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Starting a new OS data collection failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * After a CPU hotplug event, the record size for the running operating
+ * system data collection is no longer correct. The appldata_os module tried
+ * to start a new data collection with the correct record size but received
+ * an error from the z/VM diagnose call DIAG 0xDC. Any data collected with
+ * the current record size might be faulty.
+ * User action:
+ * Start a new data collection with the cappldata_os module. For information
+ * about starting data collections see "Device Drivers, Features, and
+ * Commands". For information about the return codes see the section about
+ * DIAGNOSE Code X'DC' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Stopping a faulty OS data collection failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * After a CPU hotplug event, the record size for the running operating
+ * system data collection is no longer correct. The appldata_os module tried
+ * to stop the faulty data collection but received an error from the z/VM
+ * diagnose call DIAG 0xDC. Any data collected with the current record size
+ * might be faulty.
+ * User action:
+ * Try to restart appldata_os monitoring. For information about stopping
+ * and starting data collections see "Device Drivers, Features, and
+ * Commands". For information about the return codes see the section about
+ * DIAGNOSE Code X'DC' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Maximum OS record size %i exceeds the maximum record size %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: no of bytes
+ *   @2: no of bytes
+ * Description:
+ * The OS record size grows with the number of CPUs and is adjusted by the
+ * appldata_os module in response to CPU hotplug events. For more than 110
+ * CPUs the record size would exceed the maximum record size of 4024 bytes
+ * that is  supported by the z/VM hypervisor. To prevent the maximum supported
+ * record size from being exceeded while data collection is in progress,
+ * you cannot load the appldata_os module on Linux instances that are
+ * configured for a maximum of more than 110 CPUs.
+ * User action:
+ * If you do not want to collect operating system data, you can ignore this
+ * message. If you want to collect operating system data, reconfigure your
+ * Linux instance to support less than 110 CPUs.
+ */
+
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/bpf_jit
+++ linux-ein-5.4.0/Documentation/kmsg/s390/bpf_jit
@@ -0,0 +1,16 @@
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+
+/*?
+ * Text: "Unknown opcode %02x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: Instruction opcode
+ * Description:
+ * The BPF JIT compiler has found an unknown instruction in the BPF program
+ * and therefore stops the compilation. As a fallback, the interpreter is used.
+ * User action:
+ * Report this problem and the error message to your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/cio
+++ linux-ein-5.4.0/Documentation/kmsg/s390/cio
@@ -0,0 +1,247 @@
+/*?
+ * Text: "%s is not a valid device for the cio_ignore kernel parameter\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device bus-ID
+ * Description:
+ * The device specification for the cio_ignore kernel parameter is
+ * syntactically incorrect or specifies an unknown device. This device is not
+ * excluded from being sensed and analyzed.
+ * User action:
+ * Correct your device specification in the kernel parameter line to have the
+ * device excluded when you next reboot Linux. You can write the correct
+ * device specification to /proc/cio_ignore to add the device to the list of
+ * devices to be excluded. This does not immediately make the device
+ * inaccessible but the device is ignored if it disappears and later reappears.
+ */
+
+/*?
+ * Text: "0.%x.%04x to 0.%x.%04x is not a valid range for cio_ignore\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: from subchannel set ID
+ *   @2: from device number
+ *   @3: to subchannel set ID
+ *   @4: to device number
+ * Description:
+ * The device range specified for the cio_ignore kernel parameter is
+ * syntactically incorrect. No devices specified with this range are
+ * excluded from being sensed and analyzed.
+ * User action:
+ * Correct your range specification in the kernel parameter line to have the
+ * range of devices  excluded when you next reboot Linux. You can write the
+ * correct range specification to /proc/cio_ignore to add the range of devices
+ * to the list of devices to be excluded. This does not immediately make the
+ * devices in the range inaccessible but any of these devices are ignored if
+ * they disappear and later reappear.
+ */
+
+/*?
+ * Text: "Processing %s for channel path %x.%02x\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: configuration change
+ *   @2: channel subsystem ID
+ *   @3: CHPID
+ * Description:
+ * A configuration change is in progress for the given channel path.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "No CCW console was found\n"
+ * Severity: Warning
+ * Description:
+ * Linux did not find the expected CCW console and tries to use an alternative
+ * console. A possible reason why the console was not found is that the console
+ * has been specified in the cio_ignore list.
+ * User action:
+ * None, if an appropriate alternative console has been found, and you want
+ * to use this alternative console. If you want to use the CCW console, ensure
+ * that is not specified in the cio_ignore list, explicitly specify the console
+ * with the 'condev=' kernel parameter, and reboot Linux.
+ */
+
+/*?
+ * Text: "Channel measurement facility initialized using format %s (mode %s)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: format
+ *   @2: mode
+ * Description:
+ * The channel measurement facility has been initialized successfully.
+ * Format 'extended' should be used for z990 and later mainframe systems.
+ * Format 'basic' is intended for earlier mainframes. Mode 'autodetected' means
+ * that the format has been set automatically. Mode 'parameter' means that the
+ * format has been set according to the 'format=' kernel parameter.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The CSS device driver initialization failed with errno=%d\n"
+ * Severity: Alert
+ * Parameter:
+ *   @1: Return code
+ * Description:
+ * The channel subsystem bus could not be established.
+ * User action:
+ * See the errno man page to find out what caused the problem.
+ */
+ /*? Text: "%s: Got subchannel machine check but no sch_event handler provided.\n" */
+
+/*?
+ * Text: "%s: Setting the device online failed because it is boxed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * Initialization of a device did not complete because it did not respond in
+ * time or it was reserved by another operating system.
+ * User action:
+ * Make sure that the device is working correctly, then try again to set it
+ * online. For devices that support the reserve/release mechanism (for example
+ * DASDs), you can try to override the reservation of the other system by
+ * writing 'force' to the 'online' sysfs attribute of the affected device.
+ */
+
+/*?
+ * Text: "%s: Setting the device online failed because it is not operational\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * Initialization of a device did not complete because it is not present or
+ * not operational.
+ * User action:
+ * Make sure that the device is present and working correctly, then try again
+ * to set it online.
+ */
+
+/*?
+ * Text: "%s: The device stopped operating while being set offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * While the device was set offline, it was not present or not operational.
+ * The device is now inactive, but setting it online again might fail.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The device entered boxed state while being set offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: Device bus-ID
+ * Description:
+ * While the device was set offline, it did not respond in time or it was
+ * reserved by another operating system. The device is now inactive, but
+ * setting it online again might fail.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Logging for subchannel 0.%x.%04x failed with errno=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: subchannel set ID
+ *   @2: subchannel number
+ *   @3: errno
+ * Description:
+ * Capturing model-dependent logs and traces could not be triggered for the
+ * specified subchannel.
+ * User action:
+ * See the errno man page to find out what caused the problem.
+ */
+
+/*?
+ * Text: "Logging for subchannel 0.%x.%04x was triggered\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: subchannel set ID
+ *   @2: subchannel number
+ * Description:
+ * Model-dependent logs and traces may be captured for the specified
+ * subchannel.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: No interrupt was received within %lus (CS=%02x, DS=%02x, CHPID=%x.%02x)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device number
+ *   @2: timeout value
+ *   @3: channel status
+ *   @4: device status
+ *   @5: channel subsystem ID
+ *   @6: CHPID
+ * Description:
+ * Internal I/Os are used by the common I/O layer to ensure that devices are
+ * operational and accessible.
+ * The common I/O layer did not receive an interrupt for an internal I/O
+ * during the specified timeout period.
+ * As a result, the device might assume a state that makes the device
+ * unusable to Linux until the problem is resolved.
+ * User action:
+ * Make sure that the device is working correctly and try the action again.
+ */
+
+/*?
+ * Text: "Link stopped: RS=%02x RSID=%04x IC=%02x IUPARAMS=%s IUNODEID=%s AUPARAMS=%s AUNODEID=%s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: reporting source
+ *   @2: reporting source ID
+ *   @3: incident code
+ *   @4: incident unit parameters
+ *   @5: incident unit node ID
+ *   @6: attached unit parameters
+ *   @7: attached unit node ID
+ *
+ * Description:
+ * A hardware error has occurred. A unit at one end of an interface
+ * link has detected a failure in the link or in one of the units attached to
+ * the link. As a result, data transfer across the link has stopped. In the
+ * message text, the node IDs of involved units are represented in the
+ * following format: TTTTTT/MDL,MMM.PPSSSSSSSSSSSS,XXXX where TTTTTT refers to
+ * the machine type, MDL the model number, MMM the manufacturer, PP the
+ * manufacturing plant, SSSSSSSSSSSS the unit sequence number and XXXX the
+ * machine type-dependent physical interface number. If no data is available
+ * for the unit parameters or node ID field, "n/a" is used instead.
+ *
+ * User action:
+ * Report the problem to your support organization.
+ */
+
+/*?
+ * Text: "Link degraded: RS=%02x RSID=%04x IC=%02x IUPARAMS=%s IUNODEID=%s AUPARAMS=%s AUNODEID=%s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: reporting source
+ *   @2: reporting source ID
+ *   @3: incident code
+ *   @4: incident unit parameters
+ *   @5: incident unit node ID
+ *   @6: attached unit parameters
+ *   @7: attached unit node ID
+ * Description:
+ * A hardware error has occurred. A unit at one end of an interface
+ * link has detected a failure in the link or in one of the units attached to
+ * the link. As a result, data transfer across the link is degraded. In the
+ * message text, the node IDs of involved units are represented in the
+ * following format: TTTTTT/MDL,MMM.PPSSSSSSSSSSSS,XXXX where TTTTTT refers to
+ * the machine type, MDL the model number, MMM the manufacturer, PP the
+ * manufacturing plant, SSSSSSSSSSSS the unit sequence number and XXXX the
+ * machine type-dependent physical interface number. If no data is available
+ * for the unit parameters or node ID field, "n/a" is used instead.
+ *
+ * User action:
+ * Report the problem to your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/cpcmd
+++ linux-ein-5.4.0/Documentation/kmsg/s390/cpcmd
@@ -0,0 +1,16 @@
+/*?
+ * Text: "The cpcmd kernel function failed to allocate a response buffer\n"
+ * Severity: Warning
+ * Description:
+ * IPL code, console detection, and device drivers like vmcp or vmlogrdr use
+ * the cpcmd kernel function to send commands to the z/VM control program (CP).
+ * If a program that uses the cpcmd function does not allocate a contiguous
+ * response buffer below 2 GB guest real storage, cpcmd creates a bounce buffer
+ * to be used as the response buffer. Because of low memory or memory
+ * fragmentation, cpcmd could not create the bounce buffer.
+ * User action:
+ * Look for related page allocation failure messages and at the stack trace to
+ * find out which program or operation failed. Free some memory and retry the
+ * failed operation. Consider allocating more memory to your z/VM guest virtual
+ * machine.
+ */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/cpu
+++ linux-ein-5.4.0/Documentation/kmsg/s390/cpu
@@ -0,0 +1,46 @@
+/*?
+ * Text: "%d configured CPUs, %d standby CPUs\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: number of configured CPUs
+ *   @2: number of standby CPUs
+ * Description:
+ * The kernel detected the given number of configured and standby CPUs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The CPU configuration topology of the machine is:"
+ * Severity: Informational
+ * Description:
+ * The first six values of the topology information represent fields Mag6 to
+ * Mag1 of system-information block (SYSIB) 15.1.2. These fields specify the
+ * maximum numbers of topology-list entries (TLE) at successive topology nesting
+ * levels. The last value represents the MNest value of SYSIB 15.1.2 which
+ * specifies the maximum possible nesting that can be configured through
+ * dynamic changes. For details see the SYSIB 15.1.2 information in the
+ * "Principles of Operation."
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU %i exceeds the maximum %i and is excluded from the dump\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: CPU number
+ *   @2: maximum CPU number
+ * Description:
+ * The Linux kernel is used as a system dumper but it runs on more CPUs than
+ * it has been compiled for with the CONFIG_NR_CPUS kernel configuration
+ * option. The system dump will be created but information on one or more
+ * CPUs will be missing.
+ * User action:
+ * Update the system dump kernel to a newer version that supports more
+ * CPUs or reduce the number of installed CPUs and reproduce the problem
+ * that should be analyzed. If you send the system dump that prompted this
+ * message to a support organization, be sure to communicate that the dump
+ * does not include all CPU information.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/cpum_cf
+++ linux-ein-5.4.0/Documentation/kmsg/s390/cpum_cf
@@ -0,0 +1,68 @@
+/*?
+ * Text: "Enabling the performance measuring unit failed with rc=%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error condition
+ * Description:
+ * The device driver failed to enable CPU counter sets with the
+ * load counter controls (lcctl) instruction.
+ * See the section about lcctl in "The Load-Program-Parameter and the CPU-Measurement
+ * Facilities", SA23-2260, for an explanation of the error conditions.
+ * User action:
+ * Stop the performance measurement programs and try again.
+ */
+
+/*?
+ * Text: "Disabling the performance measuring unit failed with rc=%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error condition
+ * Description:
+ * The device driver failed to disable CPU counter sets with the
+ * load counter controls (lcctl) instruction.
+ * See the section about lcctl in "The Load-Program-Parameter and the CPU-Measurement
+ * Facilities", SA23-2260, for an explanation of the error conditions.
+ * User action:
+ * Stop the performance measurement programs and try again.
+ */
+
+/*?
+ * Text: "Registering the cpum_cf PMU failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *  @1: error code
+ * Description:
+ * The device driver could not register the Performance Measurement Unit (PMU)
+ * for the CPU-measurement counter facility.
+ * A possible cause of this problem is memory constraints.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your Linux instance.
+ */
+
+/*?
+ * Text: "CPU[%i] Counter data was lost\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: cpu number
+ * Description:
+ * CPU counter data was lost because of machine internal
+ * high-priority activities.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Registering for CPU-measurement alerts failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *  @1: error code
+ * Description:
+ * The device driver could not register to receive CPU-measurement alerts.
+ * Alerts make you aware of measurement errors.
+ * A possible cause of this problem is memory constraints.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your Linux instance.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/cpum_sf
+++ linux-ein-5.4.0/Documentation/kmsg/s390/cpum_sf
@@ -0,0 +1,104 @@
+/*?
+ * Text: "The sampling buffer limits have changed to: min=%lu max=%lu (diag=x%lu)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: minimum size in sample-data-blocks
+ *   @2: maximum size in sample-data-blocks
+ *   @3: size factor for buffering diagnostic-sampling data entries
+ * Description:
+ * The minimum or maximum size limit for the sampling facility buffer was
+ * changed.  The change is effective immediately.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Switching off the sampling facility failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error condition
+ * Description:
+ * The CPU-measurement sampling facility could not be switched off and continues
+ * to run.  For details, see LOAD SAMPLING CONTROLS in
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * If this problem persists, reboot your Linux instance.
+ */
+
+/*?
+ * Text: "Sample data was lost\n"
+ * Severity: Error
+ * Description:
+ * Sample data was lost because of machine-internal high-priority activities.
+ * The sampling facility is stopped.
+ * User action:
+ * End all performance measurement sessions.  Discard the measurement data,
+ * which are likely to be flawed.  Repeat your measurements.
+ * If the problem persists, contact your hardware administrator.
+ */
+
+/*?
+ * Text: "Sampling facility support for perf is not available: reason=%04x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: reason code
+ * Description:
+ * The device driver could not initialize the sampling facility support.
+ * Possible reason codes are:
+ * 0001: The device driver failed to query CPU-measurement sampling facility
+ *	 information.
+ *
+ * 0002: The device driver does not support the basic-sampling function that
+ *	 is available on the LPAR within which the Linux instance runs.
+ *
+ * 0003: The device driver could not register to receive CPU-measurement alerts.
+ *	 A possible cause of this problem is memory constraints.
+ *
+ * 0004: The device driver could not register the Performance Measurement Unit
+ *	 (PMU) for the CPU-measurement sampling facility.
+ *	 A possible cause of this problem is memory constraints.
+ * User action:
+ * Consider assigning more memory to your Linux instance.
+ */
+
+/*?
+ * Text: "Loading sampling controls failed: op=%i err=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: Type of operation
+ *   @2: Error condition
+ * Description:
+ * The sampling facility support could not load sampling controls to enable
+ * (operation type 1) or disable (operation type 2) the CPU-measurement sampling
+ * facility.  For details of the error condition, see LOAD SAMPLING CONTROLS in
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * If the problem persists, reboot your Linux instance.
+ */
+
+/*?
+ * Text: "A sampling buffer entry is incorrect (alert=0x%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: Alert code
+ * Description:
+ * An incorrect sampling facility buffer entry was detected. The alert code
+ * indicates the root cause, for example, an incorrect entry address or an
+ * incorrect sample-data-block-table entry.
+ * User action:
+ * End active performance measurement sessions, for example, perf processes. If
+ * the problem persists, reboot your Linux instance.
+ */
+
+/*?
+ * Text: "Registering for s390dbf failed\n"
+ * Severity: Error
+ * Description:
+ * The device driver failed to register for the s390 debug feature.  You will
+ * not receive any debug information.  A possible cause of this problem is
+ * memory constraints.
+ * User action:
+ * Consider assigning more memory
+ * to your Linux instance.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/crc32-vx
+++ linux-ein-5.4.0/Documentation/kmsg/s390/crc32-vx
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/ctcm
+++ linux-ein-5.4.0/Documentation/kmsg/s390/ctcm
@@ -0,0 +1,202 @@
+/*?
+ * Text: "%s: An I/O-error occurred on the CTCM device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * An I/O error was detected on one of the subchannels of the CTCM device.
+ * Depending on the error, the CTCM device driver might attempt an automatic
+ * recovery.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ */
+
+/*?
+ * Text: "%s: An adapter hardware operation timed out\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * The CTCM device uses an adapter to physically connect to its communication
+ * peer. An operation on this adapter timed out.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ */
+
+/*?
+ * Text: "%s: An error occurred on the adapter hardware\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * The CTCM device uses an adapter to physically connect to its communication
+ * peer. An operation on this adapter returned an error.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ */
+
+/*?
+ * Text: "%s: The communication peer has disconnected\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * The remote device has disconnected. Possible reasons are that the remote
+ * interface has been closed or that the operating system instance with the
+ * communication peer has been rebooted or shut down.
+ * User action:
+ * Check the status of the peer device. Ensure that the peer operating system
+ * instance is running and that the peer interface is operational.
+ */
+
+/*?
+ * Text: "%s: The remote operating system is not available\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * The operating system instance with the communication peer has disconnected.
+ * Possible reasons are that the operating system instance has been rebooted
+ * or shut down.
+ * User action:
+ * Ensure that the peer operating system instance is running and that the peer
+ * interface is operational.
+ */
+
+/*?
+ * Text: "%s: The adapter received a non-specific IRQ\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * The adapter hardware used by the CTCM device received an IRQ that cannot
+ * be mapped to a particular device. This is a hardware problem.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. Check if
+ * the connection to the remote device still works. If the CTCM device is not
+ * operational, set it offline and back online. If this does not resolve the
+ * problem, perform a manual recovery. See "Device Drivers, Features, and
+ * Commands" for details about how to recover a CTCM device. If this problem
+ * persists, gather Linux debug data, collect the hardware logs, and report the
+ * problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: A check occurred on the subchannel\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ * Description:
+ * A check condition has been detected on the subchannel.
+ * User action:
+ * Check if the connection to the remote device still works. If the CTCM device
+ * is not operational, set it offline and back online. If this does not resolve
+ * the problem, perform a manual recovery. See "Device Drivers, Features, and
+ * Commands" for details about how to recover a CTCM device. If this problem
+ * persists, gather Linux debug data and report the problem to your support
+ * organization.
+ */
+
+/*?
+ * Text: "%s: The communication peer is busy\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * A busy target device was reported. This might be a temporary problem.
+ * User action:
+ * If this problem persists or is reported frequently ensure that the target
+ * device is working properly.
+ */
+
+/*?
+ * Text: "%s: The specified target device is not valid\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: channel ID
+ * Description:
+ * A target device was called with a faulty device specification. This is an
+ * adapter hardware problem.
+ * User action:
+ * Gather Linux debug data, collect the hardware logs, and contact IBM support.
+ */
+
+/*?
+ * Text: "An I/O operation resulted in error %04x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: channel ID
+ *   @2: error information
+ * Description:
+ * A hardware operation ended with an error.
+ * User action:
+ * Check the status of the CTCM device, for example, with ifconfig. If the
+ * device is not operational, perform a manual recovery. See "Device Drivers,
+ * Features, and Commands" for details about how to recover a CTCM device.
+ * If this problem persists, gather Linux debug data, collect the hardware logs,
+ * and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Initialization failed with RX/TX init handshake error %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ *   @2: error information
+ * Description:
+ * A problem occurred during the initialization of the connection. If the
+ * connection can be established after an automatic recovery, a success message
+ * is issued.
+ * User action:
+ * If the problem is not resolved by the automatic recovery process, check the
+ * local and remote device. If this problem persists, gather Linux debug data
+ * and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The network backlog for %s is exceeded, package dropped\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ *   @2: calling function
+ * Description:
+ * There is more network traffic than can be handled by the device. The device
+ * is closed and some data has not been transmitted. The device might be
+ * recovered automatically.
+ * User action:
+ * Investigate and resolve the congestion. If necessary, set the device
+ * online to make it operational.
+ */
+
+/*?
+ * Text: "%s: The XID used in the MPC protocol is not valid, rc = %d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the CTCM device
+ *   @2: return code
+ * Description:
+ * The exchange identification (XID) used by the CTCM device driver when
+ * in MPC mode is not valid.
+ * User action:
+ * Note the error information provided with this message and contact your
+ * support organization.
+ */
+
+/*? Text: "CTCM driver unloaded\n" */
+/*? Text: "%s: %s Internal error: net_device is NULL, ch = 0x%p\n" */
+/*? Text: "%s / Initializing the ctcm device driver failed, ret = %d\n" */
+/*? Text: "%s: %s: Internal error: Can't determine channel for interrupt device %s\n" */
+/*? Text: "CTCM driver initialized\n" */
+/*? Text: "%s: setup OK : r/w = %s/%s, protocol : %d\n" */
+/*? Text: "%s: Connected with remote side\n" */
+/*? Text: "%s: Restarting device\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/dasd
+++ linux-ein-5.4.0/Documentation/kmsg/s390/dasd
@@ -0,0 +1,704 @@
+/* dasd_ioctl */
+
+/*?
+ * Text: "%s: The DASD has been put in the quiesce state\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * No I/O operation is possible on this device.
+ * User action:
+ * Resume the DASD to enable I/O operations.
+ */
+
+/*?
+ * Text: "%s: I/O operations have been resumed on the DASD\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD is no longer in state quiesce and I/O operations can be performed
+ * on the device.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be formatted while it is enabled\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD you try to format is enabled. Enabled devices cannot be formatted.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: The specified DASD is a partition and cannot be formatted\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD you try to format is a partition. Partitions cannot be formatted
+ * separately. You can only format a complete DASD including all its partitions.
+ * User action:
+ * Format the complete DASD.
+ * ATTENTION: Formatting irreversibly destroys all data on all partitions
+ * of the DASD.
+ */
+
+/*?
+ * Text: "%s: The specified DASD is a partition and cannot be checked\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD you try to check is a partition. Partitions cannot be checked
+ * separately. You can only check a complete DASD including all its partitions.
+ * User action:
+ * Check the complete DASD.
+ */
+
+/*?
+ * Text: "%s: Formatting unit %d failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: start track
+ *   @3: return code
+ * Description:
+ * The formatting process might have been interrupted by a signal, for example,
+ * CTRL+C. If the process was not interrupted intentionally, an I/O error
+ * might have occurred.
+ * User action:
+ * Retry to format the device. If the error persists, check the log file for
+ * related error messages. If you cannot resolve the error, note the return
+ * code and contact your support organization.
+ */
+
+
+/* dasd */
+
+/*?
+ * Text: "%s: Cancelling request %p failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ *   @3: return code of previous function
+ * Description:
+ * In response to a user action, the DASD device driver tried but failed to
+ * cancel a previously started I/O operation.
+ * User action:
+ * Try the action again.
+ */
+
+/*?
+ * Text: "%s: Flushing the DASD request queue failed for request %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * As part of the unloading process, the DASD device driver flushes the
+ * request queue. This failed because a previously started I/O operation
+ * could not be canceled.
+ * User action:
+ * Try again to unload the DASD device driver or to shut down Linux.
+ */
+
+/*?
+ * Text: "The DASD device driver could not be initialized\n"
+ * Severity: Informational
+ * Description:
+ * The initialization of the DASD device driver failed because of previous
+ * errors.
+ * User action:
+ * Check for related previous error messages.
+ */
+
+/*?
+ * Text: "%s: Accessing the DASD failed because it is in probeonly mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The dasd= module or kernel parameter specified the probeonly attribute for
+ * the DASD you are trying to access. The DASD device driver cannot access
+ * DASDs that are in probeonly mode.
+ * User action:
+ * Change the dasd= parameter as to omit probeonly for the DASD and reload
+ * the DASD device driver. If the DASD device driver has been compiled into
+ * the kernel, reboot Linux.
+ */
+
+/*?
+ * Text: "%s: cqr %p timed out (%lus), %i retries remaining\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: request
+ *   @3: timeout value
+ *   @4: number of retries left
+ * Description:
+ * A try of the error recovery procedure (ERP) for the channel queued request
+ * (cqr) timed out and failed to recover the error. ERP continues for the DASD.
+ * User action:
+ * Ignore this message if it occurs infrequently and if the recovery succeeds
+ * during one of the retries. If this error persists, check for related
+ * previous error messages and report the problem to your support organization.
+ *
+ * The timeout can be changed by writing a new value to the sysfs 'expires' attribute of the DASD. The value specifies the timeout in seconds.
+ */
+
+/*?
+ * Text: "%s: cqr %p timed out (%lus) but cannot be ended, retrying in 5 s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: request
+ *   @3: timeout value
+ * Description:
+ * A try of the error recovery procedure (ERP) for the channel queued request
+ * (cqr) timed out and failed to recover the error. The I/O request submitted
+ * during the try could not be canceled. The ERP waits for 5 seconds before
+ * trying again.
+ * User action:
+ * Ignore this message if it occurs infrequently and if the recovery succeeds
+ * during one of the retries. If this error persists, check for related
+ * previous error messages and report the problem to your support organization.
+ *
+ * The timeout can be changed by writing a new value to the sysfs 'expires' attribute of the DASD. The value specifies the timeout in seconds.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be set offline while it is in use\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD cannot be set offline because it is in use by an internal process.
+ * An action to free the DASD might not have completed yet.
+ * User action:
+ * Wait some time and set the DASD offline later.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be set offline with open count %i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: count
+ * Description:
+ * The DASD is being used by one or more processes and cannot be set offline.
+ * User action:
+ * Ensure that the DASD is not in use anymore, for example, unmount all
+ * partitions. Then try again to set the DASD offline.
+ */
+
+/*?
+ * Text: "%s: Setting the DASD online failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * The DASD could not be set online because of previous errors.
+ * User action:
+ * Look for previous error messages. If you cannot resolve the error, note
+ * the return code and contact your support organization.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online with discipline %s failed with rc=%i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: discipline
+ *   @3: return code
+ * Description:
+ * The DASD could not be set online because of previous errors.
+ * User action:
+ * Look for previous error messages. If you cannot resolve the error, note the
+ * return code and contact your support organization.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online failed because of missing DIAG discipline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD was to be set online with discipline DIAG but this discipline of
+ * the DASD device driver is not available.
+ * User action:
+ * Ensure that the dasd_diag_mod module is loaded. If your Linux system does
+ * not include this module, you cannot set DASDs online with the DIAG
+ * discipline.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online failed because of a missing discipline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD was to be set online with a DASD device driver discipline that
+ * is not available.
+ * User action:
+ * Ensure that all DASD modules are loaded correctly.
+ */
+
+---------------------------
+
+/*?
+ * Text: "The statistics feature has been switched off\n"
+ * Severity: Informational
+ * Description:
+ * The statistics feature of the DASD device driver has been switched off.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The statistics feature has been switched on\n"
+ * Severity: Informational
+ * Description:
+ * The statistics feature of the DASD device driver has been switched on.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The statistics have been reset\n"
+ * Severity: Informational
+ * Description:
+ * The DASD statistics data have been reset.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s is not a supported value for /proc/dasd/statistics\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: value
+ * Description:
+ * An incorrect value has been written to /proc/dasd/statistics.
+ * The supported values are: 'set on', 'set off', and 'reset'.
+ * User action:
+ * Write a supported value to /proc/dasd/statistics.
+ */
+
+/*?
+ * Text: "%s is not a valid device range\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: range
+ * Description:
+ * A device range specified with the dasd= parameter is not valid.
+ * User action:
+ * Examine the dasd= parameter and correct the device range.
+ */
+
+/*?
+ * Text: "The probeonly mode has been activated\n"
+ * Severity: Informational
+ * Description:
+ * The probeonly mode of the DASD device driver has been activated. In this
+ * mode the device driver rejects any 'open' syscalls with EPERM.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The IPL device is not a CCW device\n"
+ * Severity: Error
+ * Description:
+ * The value for the dasd= parameter contains the 'ipldev' keyword. During
+ * the boot process this keyword is replaced with the device from which the
+ * IPL was performed. The 'ipldev' keyword is not valid if the IPL device is
+ * not a CCW device.
+ * User action:
+ * Do not specify the 'ipldev' keyword when performing an IPL from a device
+ * other than a CCW device.
+ */
+
+/*?
+ * Text: "A closing parenthesis ')' is missing in the dasd= parameter\n"
+ * Severity: Warning
+ * Description:
+ * The specification for the dasd= kernel or module parameter has an opening
+ * parenthesis '(' * without a matching closing parenthesis ')'.
+ * User action:
+ * Correct the parameter value.
+ */
+
+/*?
+ * Text: "The autodetection mode has been activated\n"
+ * Severity: Informational
+ * Description:
+ * The autodetection mode of the DASD device driver has been activated. In
+ * this mode the DASD device driver sets all detected DASDs online.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%*s is not a supported device option\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: length of option code
+ *   @2: option code
+ * Description:
+ * The dasd= parameter includes an unknown option for a DASD or a device range.
+ * Options are specified in parenthesis and immediately follow a device or
+ * device range.
+ * User action:
+ * Check the dasd= syntax and remove any unsupported options from the dasd=
+ * parameter specification.
+ */
+
+/*?
+ * Text: "PAV support has be deactivated\n"
+ * Severity: Informational
+ * Description:
+ * The 'nopav' keyword has been specified with the dasd= kernel or module
+ * parameter. The Parallel Access Volume (PAV) support of the DASD device
+ * driver has been deactivated.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "'nopav' is not supported on z/VM\n"
+ * Severity: Informational
+ * Description:
+ * For Linux instances that run as guest operating systems of the z/VM
+ * hypervisor Parallel Access Volume (PAV) support is controlled by z/VM not
+ * by Linux.
+ * User action:
+ * Remove 'nopav' from the dasd= module or kernel parameter specification.
+ */
+
+/*?
+ * Text: "High Performance FICON support has been deactivated\n"
+ * Severity: Informational
+ * Description:
+ * The 'nofcx' keyword has been specified with the dasd= kernel or module
+ * parameter. The High Performance FICON (transport mode) support of the DASD
+ * device driver has been deactivated.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The dasd= parameter value %s has an invalid ending\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: parameter value
+ * Description:
+ * The specified value for the dasd= kernel or module parameter is not correct.
+ * User action:
+ * Check the module or the kernel parameter.
+ */
+
+/*?
+ * Text: "Registering the device driver with major number %d failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DASD major
+ * Description:
+ * Major number 94 is reserved for the DASD device driver. The DASD device
+ * driver failed to register with this major number. Another device driver
+ * might have used major number 94.
+ * User action:
+ * Determine which device driver uses major number 94 instead of the DASD
+ * device driver and unload this device driver. Then try again to load the
+ * DASD device driver.
+ */
+
+/*?
+  * Text: "%s: default ERP has run out of retries and failed\n"
+  * Severity: Error
+  * Parameter:
+  *   @1: bus ID of the DASD
+  * Description:
+  * The error recovery procedure (ERP) tried to recover an error but the number
+  * of retries for the I/O was exceeded before the error could be resolved.
+  * User action:
+  * Check for related previous error messages.
+  */
+
+/*?
+ * Text: "%s: Unable to terminate request %p on suspend\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * As part of the suspend process, the DASD device driver terminates requests
+ * on the request queue. This failed because a previously started I/O operation
+ * could not be canceled. The suspend process will be stopped.
+ * User action:
+ * Try again to suspend the system.
+ */
+
+/*?
+ * Text: "%s: ERP failed for the DASD\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error recovery procedure (ERP) was performed for the DASD but failed.
+ * User action:
+ * Check the message log for previous related error messages.
+ */
+
+/*?
+ * Text: "%s: An error occurred in the DASD device driver, reason=%s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This problem indicates a program error in the DASD device driver.
+ * User action:
+ * Note the reason code and contact your support organization.
+*/
+
+/*?
+ * Text: "%s: No operational channel path is left for the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * All channel paths to the device have become non-operational. The DASD
+ * device driver suspends I/O operations and queues I/O requests for this
+ * device until at least one channel path becomes operational again.
+ * User action:
+ * Ensure that each channel path to the device has been set up correctly
+ * and that the related physical cable connections are in place.
+ */
+
+/*?
+ * Text: "%s: No verified channel paths remain for the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * All verified channel paths to the device have become non-operational.
+ * Any other paths to the device have previously been identified as not usable.
+ * The DASD device driver suspends I/O operations and queues I/O requests
+ * for this device until at least one channel path becomes operational
+ * again.
+ * User action:
+ * Ensure that each channel path to the device has been set up correctly
+ * and that the related physical cable connections are in place.
+ * Set all paths to the device offline and online again to repeat the path
+ * verification. Alternatively, set the device offline and online again to
+ * verify all available paths for this device.
+ * If this problem persists, gather Linux debug data and report the problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: A channel path to the device has become operational\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * At least one channel path of this device has become operational again.
+ * The DASD device driver resumes I/O operations to the device and processes
+ * the I/O requests that were queued while there was no operational channel path.
+ * User action:
+ * None.
+ */
+
+------------------------------------------------------------------------------------
+/* dasd_diag */
+
+/*?
+ * Text: "%s: A 64-bit DIAG call failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * 64-bit DIAG calls require a 64-bit z/VM version.
+ * User action:
+ * Use z/VM 5.2 or later or set the sysfs 'use_diag' attribute of the DASD to 0
+ * to switch off DIAG.
+ */
+
+/*?
+ * Text: "%s: Accessing the DASD failed because of an incorrect format (rc=%d)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * The format of the DASD is not correct.
+ * User action:
+ * Check the device format. For details about the return code see the
+ * section about the INITIALIZE function for DIAGNOSE Code X'250'
+ * in "z/VM CP Programming Services". If you cannot resolve the error, note
+ * the return code and contact your support organization.
+ */
+
+/*?
+ * Text: "%s: New DASD with %ld byte/block, total size %ld KB%s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: bytes per block
+ *   @3: size
+ *   @4: access mode
+ * Description:
+ * A DASD with the indicated block size and total size has been set online.
+ * If the DASD is configured as read-only to the real or virtual hardware,
+ * the message includes an indication of this hardware access mode. The
+ * hardware access mode is independent from the 'readonly' attribute of
+ * the device in sysfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: DIAG ERP failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * An error in the DIAG processing could not be recovered by the error
+ * recovery procedure (ERP) of the DIAG discipline.
+ * User action:
+ * Note the return code, check for related I/O errors, and report this problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: DIAG initialization failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * Initializing the DASD with the DIAG discipline failed. Possible reasons for
+ * this problem are that the device has a device type other than FBA or ECKD,
+ * or has a block size other than one of the supported sizes:
+ * 512 byte, 1024 byte, 2048 byte, or 4096 byte.
+ * User action:
+ * Ensure that the device can be written to and has a supported device type
+ * and block size. For details about the return code see the section about
+ * the INITIALIZE function for DIAGNOSE Code X'250' in "z/VM CP Programming
+ * Services". If you cannot resolve the error, note the error code and contact
+ * your support organization.
+ */
+
+/*?
+ * Text: "%s: Device type %d is not supported in DIAG mode\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: device type
+ * Description:
+ * Only DASD of type FBA and ECKD are supported in DIAG mode.
+ * User action:
+ * Set the sysfs 'use_diag' attribute of the DASD to 0 and try again to access
+ * the DASD.
+ */
+
+/*?
+ * Text: "Discipline %s cannot be used without z/VM\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: discipline name
+ * Description:
+ * The discipline that is specified with the dasd= kernel or module parameter
+ * is only available for Linux instances that run as guest operating
+ * systems of the z/VM hypervisor.
+ * User action:
+ * Remove the unsupported discipline from the parameter string.
+ */
+
+/*?
+ * Text: "%s: The access mode of a DIAG device changed to read-only\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A device changed its access mode from writeable to
+ * read-only while in use.
+ * User action:
+ * Set the device offline, ensure that the device is configured correctly in
+ * z/VM, then set the device online again.
+ */
+
+------------------------------------------------------------------------------------
+/* dasd_erp */
+
+/*?
+ * Text: "%s: A timeout error occurred for cqr %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * A channel queued request (cqr) failed because it timed out.
+ * One possible reason for this error is that a request did not
+ * complete within the timeout interval specified for the DASD.
+ * The timeout interval is set as the value of the 'timeout' sysfs
+ * attribute of a DASD. A value of 0 disables the timeout function.
+ * The timeout function can be used; for example, by mirroring setups;
+ * to quickly process a request queue for a DASD that has become unavailable.
+ * User action:
+ * Check the message log for previous related error messages.  Verify
+ * that the storage server and the connection from host to storage
+ * server are operational.  If the 'timeout' sysfs attribute of the
+ * DASD has been set to a value other than 0, verify that this
+ * setting is intentional and change it if required.
+ */
+
+/*?
+ * Text: "%s: A transport error occurred for cqr %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to request
+ * Description:
+ * A channel queued request (cqr) failed because the connection to the
+ * device was lost and the 'failfast' flag is set for the request.
+ * This flag can result from, for example:
+ *
+ * - A software layer above the DASD device driver;
+ *   for example, in a host based mirroring setup.
+ *
+ * - Value 1 for the 'failfast' sysfs attribute of the DASD.
+ *   This setting applies to all requests on the DASD.
+ *
+ * User action:
+ * Ensure that each channel path to the device has been set up
+ * correctly and that the related physical cable connections are in
+ * place. If the 'failfast' attribute of the DASD is set to 1,
+ * verify that this setting is intentional and change it to 0 if required.
+ */
+
+/*?
+ * Text: "%s Setting the DASD online failed because the required module %s could not be loaded (rc=%d)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: kernel module name
+ *   @3: return code
+ * Description:
+ * The DASD was to be set online with discipline DIAG but this discipline of
+ * the DASD device driver is not available and an attempt to load the
+ * corresponding kernel module failed with the specified return code.
+ *
+ * User action:
+ * Ensure that the kernel module with the specified name is correctly installed
+ * or set the sysfs 'use_diag' attribute of the DASD to 0 to switch off DIAG.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/dasd-eckd
+++ linux-ein-5.4.0/Documentation/kmsg/s390/dasd-eckd
@@ -0,0 +1,2154 @@
+/* dasd_eckd */
+
+/*?
+ * Text: "%s: ERP failed for the DASD\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error recovery procedure (ERP) was performed for the DASD but failed.
+ * User action:
+ * Check the message log for previous related error messages.
+ */
+
+/*?
+ * Text: "%s: An error occurred in the DASD device driver, reason=%s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This problem indicates a program error in the DASD device driver.
+ * User action:
+ * Note the reason code and contact your support organization.
+*/
+
+/*?
+ * Text: "%s: Allocating memory for private DASD data failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD device driver maintains data structures for each DASD it manages.
+ * There is not enough memory to allocate these data structures for one or
+ * more DASD.
+ * User action:
+ * Free some memory and try the operation again.
+ */
+
+/*?
+ * Text: "%s: DASD with %d KB/block, %d KB total size, %d KB/track, %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: block size
+ *   @3: DASD size
+ *   @4: track size
+ *   @5: disc layout
+ * Description:
+ * A DASD with the shown characteristics has been set online.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Start track number %u used in formatting is too big\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: track number
+ * Description:
+ * The DASD format I/O control was used incorrectly by a formatting tool.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: Stop track number %u used in formatting is too big\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: track number
+ * Description:
+ * The DASD format I/O control was used incorrectly by a formatting tool.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: The DASD is not formatted\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A DASD has been set online but it has not been formatted yet. You must
+ * format the DASD before you can use it.
+ * User action:
+ * Format the DASD, for example, with dasdfmt.
+ */
+
+/*?
+ * Text: "%s: 0x%x is not a known command\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: command
+ * Description:
+ * This problem is likely to be caused by a programming error.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "%s: Track 0 has no records following the VTOC\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Linux has identified a volume table of contents (VTOC) on the DASD but
+ * cannot read any data records following the VTOC. A possible cause of this
+ * problem is that the DASD has been used with another System z operating
+ * system.
+ * User action:
+ * Format the DASD for usage with Linux, for example, with dasdfmt.
+ * ATTENTION: Formatting irreversibly destroys all data on the DASD.
+ */
+
+/*?
+ * Text: "%s: An I/O control call used incorrect flags 0x%x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: flags
+ * Description:
+ * The DASD format I/O control was used incorrectly.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: New DASD %04X/%02X (CU %04X/%02X) with %d cylinders, %d heads, %d sectors%s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: device type
+ *   @3: device model
+ *   @4: control unit type
+ *   @5: control unit model
+ *   @6: number of cylinders
+ *   @7: tracks per cylinder
+ *   @8: sectors per track
+ *   @9: access mode
+ * Description:
+ * A DASD with the shown characteristics has been set online.
+ * If the DASD is configured as read-only to the real or virtual hardware,
+ * the message includes an indication of this hardware access mode. The
+ * hardware access mode is independent from the 'readonly' attribute of
+ * the device in sysfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The disk layout of the DASD is not supported\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD device driver only supports the following disk layouts: CDL, LDL,
+ * FBA, CMS, and CMS RESERVED.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Start track %u used in formatting exceeds end track\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: track number
+ * Description:
+ * The DASD format I/O control was used incorrectly by a formatting tool.
+ * User action:
+ * Contact the owner of the formatting tool.
+ */
+
+/*?
+ * Text: "%s: The DASD cache mode was set to %x (%i cylinder prestage)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: operation mode
+ *   @3: number of cylinders
+ * Description:
+ * The DASD cache mode has been changed. See the storage system documentation
+ * for information about the different cache operation modes.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be formatted with block size %u\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: block size
+ * Description:
+ * The block size specified for a format instruction is not valid. The block
+ * size must be between 512 and 4096 byte and must be a power of 2.
+ * User action:
+ * Call the format command with a supported block size.
+ */
+
+/*?
+ * Text: "%s: The UID of the DASD has changed\n"
+ * Severity: Error
+ * Parameter:
+ * @1: bus ID of the DASD
+ * Description:
+ * The Unique Identifier (UID) of a DASD that is currently in use has changed.
+ * This indicates that the physical disk has been replaced.
+ * User action:
+ * None if the replacement was intentional.
+ * If the disk change is not expected, stop using the disk to prevent possible
+ * data loss.
+*/
+
+
+/* dasd_3990_erp */
+
+/*?
+ * Text: "%s: is offline or not installed - INTERVENTION REQUIRED!!\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD to be accessed is not in an accessible state. The I/O operation
+ * will wait until the device is operational again. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * Make the DASD accessible again. For details see the storage system
+ * documentation.
+ */
+
+/*?
+ * Text: "%s: The DASD cannot be reached on any path (lpum=%x/opm=%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: last path used mask
+ *   @3: online path mask
+ * Description:
+ * After a path to the DASD failed, the error recovery procedure of the DASD
+ * device driver tried but failed to reconnect the DASD through an alternative
+ * path.
+ * User action:
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place. Check the file systems on the DASD when it is
+ * accessible again.
+ */
+
+/*?
+ * Text: "%s: Unable to allocate DCTL-CQR\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an internal error.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Parameter\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A data argument of a command is not valid. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - DPS Installation Check\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This operating system independent message is issued by the storage system
+ *  for one of the following reasons:
+ * - A 3380 Model D or E DASD does not have the Dynamic Path Selection (DPS)
+ * feature in the DASD A-unit.
+ * - The device type of an attached DASD is not supported by the firmware.
+ * - A type 3390 DASD is attached to a 3 MB channel.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Drive motor switch is off\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - CCW Count less than required\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The CCW count of a command is less than required. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Channel requested ... %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system. The possible reason codes indicate the following problems:
+ * 00 No Message.
+ * 01 The channel has requested unit check sense data.
+ * 02 The channel has requested retry and retry is exhausted.
+ * 03 A SA Check-2 error has occurred. This sense is presented with
+ *    Equipment Check.
+ * 04 The channel has requested retry and retry is not possible.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Status Not As Required: reason %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: reason code
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system. There are several potential reasons for this message;
+ * byte 8 contains the reason code.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device status 1 not valid\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Storage Path Restart\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An operation for an active channel program was queued in a Storage Control
+ * when a warm start was received by the path. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Reset Notification\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A system reset or its equivalent was received on an interface. The Unit
+ * Check that generates this sense is posted to the next channel initiated
+ * selection following the resetting event. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Command Sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An incorrect sequence of commands has occurred. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Missing device address bit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Subsystem Processing Error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A firmware logic error has been detected. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Seek incomplete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Command\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command was issued that is not in the 2107/1750 command set.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Command Invalid on Secondary Address\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command or order not allowed on a PPRC secondary device has been received
+ * by the secondary device. This is an operating system independent message
+ * that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Invalid Defective/Alternate Track Pointer\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A defective track has been accessed. The subsystem generates an invalid
+ * Defective/Alternate Track Pointer as a part of RAID Recovery.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Channel Returned with Incorrect retry CCW\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command portion of the CCW returned after a command retry sequence does
+ * not match the command for which retry was signaled. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Diagnostic of Special Command Violates File Mask\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A command is not allowed under the Access Authorization specified by the
+ * File Mask. This is an operating system independent message that is issued
+ * by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Head address does not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device did not respond to selection\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device check-2 error or Set Sector is not complete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Device Error Source\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The device has completed soft error logging. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Data Pinned for Device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Modified data in cache or in persistent storage exists for the DASD. The
+ * data cannot be destaged to the device. This track is the first track pinned
+ * for this device. This is an operating system independent message that is
+ * issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel C\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device Status 1 not as expected\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 0 - Device Fenced - device = %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: sense data byte 4
+ * Description:
+ * The device shown in sense byte 4 has been fenced. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Interruption cannot be reset\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Index missing\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - DASD Fast Write inhibited\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * DASD Fast Write is not allowed because of a nonvolatile storage battery
+ * check condition. This is an operating system independent message that is
+ * issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid tag-in for an extended command sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Key area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Count area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Track physical address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - 3990 check-2 error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Offset active cannot be reset\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - RCC 1 and RCC 2 sequences not successful\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in count address area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Data area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel A\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in count address area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the key area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Caching status reset to default\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage director has assigned two new subsystem status devices and
+ * resets the status to its default value. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the data area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Device not ready\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in key area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - DASD controller failed to set or reset the long busy latch\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 1 - Cylinder address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 3 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in data area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - Support facility errors\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Key area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - End operation with transfer count not zero\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 2 - Microcode detected error %02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: error code
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the count area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 3 - Allegiance terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Allegiance terminated because of a Reset Allegiance or an Unconditional
+ * Reserve command on another channel. This is an operating system independent
+ * message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Home address area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Count area error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid tag-in during selection sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in data area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in home address area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Home address area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - Data area error; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in home address area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the home address area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the home address area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the count area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 4 - No sync byte in key area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid DCC selection response or timeout\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the data area\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Operation Terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage system ends an operation related to an active channel program
+ * when termination and redrive are required and logging is not desired.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel B\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 5 - Data Check in the key area; offset active\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Volume is suspended duplex\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The duplex pair volume has entered the suspended duplex state because of a
+ * failure. This is an operating system independent message that is issued by
+ * the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel D\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - RCC 1 sequence not successful\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel E\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - 3990 microcode time out when stopping selection\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel F\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - RCC initiated by a connection check alert\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel G\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - extra RCC required\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 6 - Overrun on channel H\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Unexpected end operation response code\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Permanent path error (DASD controller not available)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Missing end operation; device transfer incomplete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Cache or nonvolatile storage equipment failure\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An equipment failure has occurred in the cache storage or nonvolatile
+ * storage of the storage system. This is an operating system independent
+ * message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - DPS cannot be filled\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Error correction code hardware fault\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Missing end operation; device transfer complete\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - DASD controller not available on disconnected command chain\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - No interruption from device during a command chain\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - No response to selection after a poll interruption\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Track physical address did not compare while oriented\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Head address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Invalid tag-in for an immediate command sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Cylinder address did not compare\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - DPS checks after a system reset or selective reset\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Caching reinitiated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Caching has been automatically reinitiated following an error.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - End operation with transfer count zero\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 7 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Short busy time-out during device selection\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Caching terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage system was unable to initiate caching or had to suspend caching
+ * for a 3990 control unit. If this problem is caused by a failure condition,
+ * an additional message will provide more information about the failure.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * Check for additional messages that point out possible failures. For more
+ * information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Subsystem status cannot be determined\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The status of a DASD Fast Write or PPRC volume cannot be determined.
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Nonvolatile storage terminated\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The storage director has stopped using nonvolatile storage or cannot
+ * initiate nonvolatile storage. If this problem is caused by a failure, an
+ * additional message will provide more information about the failure. This is
+ * an operating system independent message that is issued by the storage system.
+ * User action:
+ * Check for additional messages that point out possible failures. For more
+ * information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT 8 - Reserved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: Write inhibited path encountered\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an informational message.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: FORMAT 9 - Device check-2 error\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This is an operating system independent message that is issued by the
+ * storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Track format incorrect\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A track format error occurred while data was being written to the DASD or
+ * while a duplex pair was being established. This is an operating system
+ * independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: FORMAT F - Cache fast write access not authorized\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A request for Cache Fast Write Data access cannot be satisfied because
+ * of missing access authorization for the storage system. This is an operating
+ * system independent message that is issued by the storage system.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: Data recovered during retry with PCI fetch mode active\n"
+ * Severity: Emerg
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * A data error has been recovered on the storages system but the Linux file
+ * system cannot be informed about the data mismatch. To prevent Linux from
+ * running with incorrect data, the DASD device driver will trigger a kernel
+ * panic.
+ * User action:
+ * Reset your real or virtual hardware and reboot Linux.
+ */
+
+/*?
+ * Text: "%s: The specified record was not found\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The record to be accessed does not exist. The DASD might be unformatted
+ * or defect.
+ * User action:
+ * Try to format the DASD or replace it.
+ * ATTENTION: Formatting irreversibly destroys all data on the DASD.
+ */
+
+/*?
+ * Text: "%s: ERP %p (%02x) refers to %p\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: pointer to ERP
+ *   @3: ERP status
+ *   @4: cqr
+ * Description:
+ * This message provides debug information for the enhanced error recovery
+ * procedure (ERP).
+ * User action:
+ * If you do not need this information, you can suppress this message by
+ * switching off ERP logging, for example, by writing '1' to the 'erplog'
+ * sysfs attribute of the DASD.
+ */
+
+/*?
+ * Text: "%s: ERP chain at END of ERP-ACTION\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This message provides debug information for the enhanced error recovery
+ * procedure (ERP).
+ * User action:
+ * If you do not need this information, you can suppress this message by
+ * switching off ERP logging, for example, by writing '1' to the 'erplog'
+ * sysfs attribute of the DASD.
+ */
+
+/*?
+ * Text: "%s: The cylinder data for accessing the DASD is inconsistent\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error occurred in the storage system hardware.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: Accessing the DASD failed because of a hardware error\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An error occurred in the storage system hardware.
+ * User action:
+ * For more information see the documentation of your storage system.
+ */
+
+/*?
+ * Text: "%s: ERP chain at BEGINNING of ERP-ACTION\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This message provides debug information for the enhanced error recovery
+ * procedure (ERP).
+ * User action:
+ * If you do not need this information, you can suppress this message by
+ * switching off ERP logging, for example, by writing '1' to the 'erplog'
+ * sysfs attribute of the DASD.
+ */
+
+/*?
+ * Text: "%s: ERP %p has run out of retries and failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: ERP pointer
+ * Description:
+ * The error recovery procedure (ERP) tried to recover an error but the number
+ * of retries for the I/O was exceeded before the error could be resolved.
+ * User action:
+ * Check for related previous error messages.
+ */
+
+/*?
+ * Text: "%s: SIM - SRC: %02x%02x%02x%02x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: sense byte
+ *   @3: sense byte
+ *   @4: sense byte
+ *   @5: sense byte
+ * Description:
+ * This error message is a System Information Message (SIM) generated by the
+ * storage system. The System Reference Code (SRC) defines the error in detail.
+ * User action:
+ * Look up the SRC in the storage server documentation.
+ */
+
+/*?
+ * Text: "%s: log SIM - SRC: %02x%02x%02x%02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: sense byte
+ *   @3: sense byte
+ *   @4: sense byte
+ *   @5: sense byte
+ * Description:
+ * This System Information Message (SIM) is generated by the storage system.
+ * The System Reference Code (SRC) defines the error in detail.
+ * User action:
+ * Look up the SRC in the storage server documentation.
+ */
+
+/*?
+ * Text: "%s: Reading device feature codes failed with rc=%d\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ * Description:
+ * The device feature codes state which advanced features are supported by a
+ * device.
+ * Examples for advanced features are PAV or high performance FICON.
+ * Some early devices do not provide feature codes and no advanced features are
+ * available on these devices.
+ * User action:
+ * None, if the DASD does not provide feature codes. If the DASD provides
+ * feature codes, make sure that it is working correctly, then set it offline
+ * and back online.
+ */
+
+/*?
+ * Text: "%s: A channel path group could not be established\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * Initialization of a DASD did not complete because a channel path group
+ * could not be established.
+ * User action:
+ * Make sure that the DASD is working correctly, then try again to set it
+ * online. If initialization still fails, reboot.
+ */
+
+/*?
+ * Text: "%s: The DASD is not operating in multipath mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD channel path group could not be configured to use multipath mode.
+ * This might negatively affect I/O performance on this DASD.
+ * User action:
+ * Make sure that the DASD is working correctly, then try again to set it
+ * online. If initialization still fails, reboot.
+ */
+
+/*?
+ * Text: "%s: Detecting the DASD disk layout failed because of an I/O error\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The disk layout of the DASD could not be detected because of an unexpected
+ * I/O error. The DASD device driver treats the device like an unformatted DASD,
+ * and partitions on the device are not accessible.
+ * User action:
+ * If the DASD is formatted, make sure that the DASD is working correctly,
+ * then set it offline and back online. If the DASD is unformatted, format the
+ * DASD, for example, with dasdfmt.
+ * ATTENTION: Formatting irreversibly destroys all data on the DASD.
+ */
+
+/*?
+ * Text: "%s: An I/O request was rejected because writing is inhibited\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * An I/O request was returned with an error indication of 'command reject'
+ * and 'write inhibited'. The most likely reason for this error is a
+ * failed write request to a device that was attached as read-only in z/VM.
+ * User action:
+ * Set the device offline, ensure that the device is configured correctly in
+ * z/VM, then set the device online again.
+ */
+
+/*?
+ * Text: "%s: An Alias device was reassigned to a new base device with UID: %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the alias
+ *   @2: UID of new base device
+ * Description:
+ * The alias device with the indicated bus ID has been reassigned. The UID of the new base device is shown in the message.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Detecting the maximum supported data size for zHPF requests failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * High Performance FICON (zHPF) requests are limited to a hardware-dependent
+ * maximum data size. The DASD device driver failed to detect this size and zHPF
+ * is not available for this device.
+ * User action:
+ * Set the device offline and online again. If this problem persists, gather
+ * Linux debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Reading device feature codes failed (rc=%d) for new path %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ *   @3: path mask
+ * Description:
+ * A new path has been made available to the a device.
+ * A command to read the device feature codes on this device returned an error.
+ * The new path will not be used for I/O.
+ * User action:
+ * Set the new path offline and online again to repeat the path verification.
+ * Alternatively, set the device offline and online again to
+ * verify all available paths for this device.
+ * If this problem persists, gather Linux debug data and report the problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: Detecting the maximum data size for zHPF requests failed (rc=%d) for a new path %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: return code
+ *   @3: path mask
+ * Description:
+ * High Performance FICON (zHPF) requests are limited to a hardware-dependent
+ * maximum data size. A command to detect this size for
+ * a new path returned an error. The new path will not be used for I/O.
+ * User action:
+ * Set the new path offline and online again to repeat the path verification.
+ * Alternatively, set the device offline and online again to
+ * verify all available paths for this device.
+ * If this problem persists, gather Linux debug data and report the problem
+ * to your support organization.
+ */
+
+/*?
+ * Text: "%s: The maximum data size for zHPF requests %u on a new path %x is below the active maximum %u\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: size in bytes
+ *   @3: path mask
+ *   @4: size in bytes
+ * Description:
+ * High Performance FICON (zHPF) requests are limited to a hardware-dependent
+ * maximum data size. The maximum of the new path is below
+ * the previously established common maximum for the
+ * existing paths for this device. This could cause requests on the new
+ * path to fail. The new path will not be used for I/O.
+ * User action:
+ * Set the device offline and online again to establish a new common maximum
+ * data size for the device.
+ */
+
+/*?
+ * Text: "%s: The device reservation was lost\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * This Linux instance has lost its reservation of the device to another
+ * operating system instance. Depending on the reservation policy for the
+ * device, I/O might be blocked until the other operating system instance
+ * surrenders the reservation or all I/O requests might fail until the
+ * device is reset.
+ * User action:
+ * None, if this situation is handled by system automation software.
+ * If this situation is not handled by automation, check the
+ * last_known_reservation_state attribute of the device in sysfs.
+ * If the value is 'lost', verify that the device is no longer reserved
+ * by another operating system instance, then set the device offline and
+ * online again. For any other value of the last_known_reservation_state
+ * no action is required. I/O will resume when the device reservation is
+ * surrendered by the other operating system instance.
+ */
+
+/*?
+ * Text: "%s: The storage server does not support raw-track access\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD cannot be accessed in raw-track access mode because the storage
+ * server does not have all required features for this access mode.
+ * In raw-track access mode, the DASD device driver accesses complete ECKD
+ * tracks.
+ * By default, the DASD device driver accesses only the data fields of ECKD
+ * devices and omits the count and key data fields.
+ * User action:
+ * Ensure that the raw_track_access sysfs attribute of the DASD has the value
+ * 0 to access the device in default ECKD mode.
+ */
+
+/*?
+ * Text: "%s: The newly added channel path %02X will not be used because it leads to a different device %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: logical path mask
+ *   @3: UID
+ * Description:
+ * The newly added channel path has a different UID than the DASD device. This indicates
+ * an incorrect cabling. This path is not going to be used.
+ * User action:
+ * Check the cabling of the DASD device. Disconnect and reconnect the cable.
+ */
+
+/*?
+ * Text: "%s: Not all channel paths lead to the same device, path %02X leads to device %s instead of %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: logical path mask
+ *   @3: UID
+ *   @4: UID
+ * Description:
+ * Some channel paths have a different UID than others. This indicates
+ * an incorrect cabling. The DASD device is not enabled.
+ * User action:
+ * Check cabling of the DASD device and retry to enable the device.
+ */
+
+/*?
+ * Text: "Service on the storage server caused path %x.%02x to go offline"
+ * Severity: Warning
+ * Parameter:
+ *   @1: channel subsystem ID
+ *   @2: CHPID
+ * Description:
+ * A channel path to the DASD has been set offline because of
+ * a service action on the storage server. The path will be set back
+ * online automatically when the service action is completed.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Path %x.%02x is back online after service on the storage server"
+ * Severity: Informational
+ * Parameter:
+ *   @1: channel subsystem ID
+ *   @2: CHPID
+ * Description:
+ * A path had been set offline temporarily because of a service
+ * action on the storage server.
+ * The service action has completed, and the channel path is available
+ * again.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: High Performance FICON disabled\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * High Performance FICON (HPF) has been disabled. Either the device
+ * lost HPF functionality, or none of the remaining channel paths are
+ * HPF capable.
+ * User action:
+ * Report the problem to your support organization.
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * Reset the device and channel paths by writing "all" or a logical path mask
+ * to the path_reset sysfs attribute of the device.
+ */
+
+/*?
+ * Text: "%s: Channel path %02X lost HPF functionality and is disabled\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: logical path mask
+ * Description:
+ * A channel path has lost High Performance FICON (HPF) functionality
+ * and was removed from regular operations.
+ * User action:
+ * Report the problem to your support organization.
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * Reset the device and channel paths by writing "all" or a logical path mask
+ * to the path_reset sysfs attribute of the device.
+ */
+
+/*?
+ * Text: "%s: Path %x.%02x (pathmask %02x) is disabled - IFCC threshold exceeded\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: cssid
+ *   @3: chpid
+ *   @4: logical path mask
+ * Description:
+ * Due to numerous interface or channel control checks (IFCCs), a channel path
+ * was removed from regular operations to retain good I/O performance.
+ * User action:
+ * Ensure that the cabling between the storage server and the mainframe
+ * system is securely in place.
+ * Reset the device and channel paths by writing "all" or a logical path mask
+ * to the path_reset sysfs attribute of the device.
+ * If the problem persists, report it to your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/dasd-fba
+++ linux-ein-5.4.0/Documentation/kmsg/s390/dasd-fba
@@ -0,0 +1,36 @@
+
+/*?
+ * Text: "%s: New FBA DASD %04X/%02X (CU %04X/%02X) with %d MB and %d B/blk%s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the DASD
+ *   @2: device type
+ *   @3: device model
+ *   @4: control unit type
+ *   @5: control unit model
+ *   @6: size
+ *   @7: bytes per block
+ *   @8: access mode
+ * Description:
+ * A DASD with the shown characteristics has been set online.
+ * If the DASD is configured as read-only to the real or virtual hardware,
+ * the message includes an indication of this hardware access mode. The
+ * hardware access mode is independent from the 'readonly' attribute of
+ * the device in sysfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Allocating memory for private DASD data failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the DASD
+ * Description:
+ * The DASD device driver maintains data structures for each DASD it manages.
+ * There is not enough memory to allocate these data structures for one or
+ * more DASD.
+ * User action:
+ * Free some memory and try the operation again.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/dcssblk
+++ linux-ein-5.4.0/Documentation/kmsg/s390/dcssblk
@@ -0,0 +1,206 @@
+/*?
+ * Text: "Adjacent DCSSs %s and %s are not contiguous\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: name 1
+ *   @2: name 2
+ * Description:
+ * You can only map a set of two or more DCSSs to a single DCSS device if the
+ * DCSSs in the set form a contiguous memory space. The DCSS device cannot be
+ * created because there is a memory gap between two adjacent DCSSs.
+ * User action:
+ * Ensure that you have specified all DCSSs that belong to the set. Check the
+ * definitions of the DCSSs on the z/VM hypervisor to verify that they form
+ * a contiguous memory space.
+ */
+
+/*?
+ * Text: "DCSS %s and DCSS %s have incompatible types\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: name 1
+ *   @2: name 2
+ * Description:
+ * You can only map a set of two or more DCSSs to a single DCSS device if
+ * either all DCSSs in the set have the same type or if the set contains DCSSs
+ * of the two types EW and EN but no other type. The DCSS device cannot be
+ * created because at least two of the specified DCSSs are not compatible.
+ * User action:
+ * Check the definitions of the DCSSs on the z/VM hypervisor to verify that
+ * their types are compatible.
+ */
+
+/*?
+ * Text: "DCSS %s is of type SC and cannot be loaded as exclusive-writable\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * You cannot load a DCSS device in exclusive-writable access mode if the DCSS
+ * devise maps to one or more DCSSs of type SC.
+ * User action:
+ * Load the DCSS in shared access mode.
+ */
+
+/*?
+ * Text: "DCSS device %s is removed after a failed access mode change\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * To change the access mode of a DCSS device, all DCSSs that map to the device
+ * were unloaded. Reloading the DCSSs for the new access mode failed and the
+ * device is removed.
+ * User action:
+ * Look for related messages to find out why the DCSSs could not be reloaded.
+ * If necessary, add the device again.
+ */
+
+/*?
+ * Text: "All DCSSs that map to device %s are saved\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request has been submitted for the DCSS device. Changes to all DCSSs
+ * that map to the device are saved permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Device %s is in use, its DCSSs will be saved when it becomes idle\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request for the device has been deferred until the device becomes
+ * idle. Then changes to all DCSSs that the device maps to will be saved
+ * permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "A pending save request for device %s has been canceled\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request for the DCSSs that map to a DCSS device has been pending
+ * while the device was in use. This save request has been canceled. Changes to
+ * the DCSSs will not be saved permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Loaded %s with total size %lu bytes and capacity %lu sectors\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS names
+ *   @2: total size in bytes
+ *   @3: total size in 512 byte sectors
+ * Description:
+ * The listed DCSSs have been verified as contiguous and successfully loaded.
+ * The displayed sizes are the sums of all DCSSs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Device %s cannot be removed because it is not a known device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * The DCSS device you are trying to remove is not known to the DCSS device
+ * driver.
+ * User action:
+ * List the entries under /sys/devices/dcssblk/ to see the names of the
+ * existing DCSS devices.
+ */
+
+/*?
+ * Text: "Device %s cannot be removed while it is in use\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * You are trying to remove a device that is in use.
+ * User action:
+ * Make sure that all users of the device close the device before you try to
+ * remove it.
+ */
+
+/*?
+ * Text: "Device %s has become idle and is being saved now\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A save request for the DCSSs that map to a DCSS device has been pending
+ * while the device was in use. The device has become idle and all changes
+ * to the DCSSs are now saved permanently.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Writing to %s failed because it is a read-only device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * The DCSS device is in shared access mode and cannot be written to. Depending
+ * on the type of the DCSSs that the device maps to, you might be able to
+ * change the access mode to exclusive-writable.
+ * User action:
+ * If the DCSSs of the device are of type SC, do not attempt to write to the
+ * device. If the DCSSs of the device are of type ER or SR, change the access
+ * mode to exclusive-writable before writing to the device.
+ */
+
+/*?
+ * Text: "The address range of DCSS %s changed while the system was suspended\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * After resuming the system, the start address or end address of a DCSS does
+ * not match the address when the system was suspended. DCSSs must not be
+ * changed after the system was suspended.
+ * This error cannot be recovered. The system is stopped with a kernel panic.
+ * User action:
+ * Reboot Linux.
+ */
+
+/*?
+ * Text: "Suspending the system failed because DCSS device %s is writable\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * A system cannot be suspended if one or more DCSSs are accessed in exclusive-
+ * writable mode. DCSS segment types EW, SW, and EN are always writable and
+ * must be removed before a system is suspended.
+ * User action:
+ * Remove all DCSSs of segment types EW, SW, and EN by writing the DCSS name to
+ * the sysfs 'remove' attribute. Set the access mode for all DCSSs of segment
+ * types SR and ER to read-only by writing 1 to the sysfs 'shared' attribute of
+ * the DCSS. Then try again to suspend the system.
+ */
+
+/*?
+ * Text: "DCSS %s is of type SN or EN and cannot be saved\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * DCSSs of type SN or EN cannot be saved.
+ * User action:
+ * If the DCSS was set up with the intention to prevent the content from being saved,
+ * no action is necessary.
+ * To be able to save the content, you must define the DCSS with a type other than SN or EN.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/diag288_wdt
+++ linux-ein-5.4.0/Documentation/kmsg/s390/diag288_wdt
@@ -0,0 +1,66 @@
+/*?
+ * Text: "The watchdog cannot be activated\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to activate the diag288 watchdog.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays inactive.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "The watchdog cannot be initialized\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to initialize the diag288 watchdog.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays inactive.
+ * A possible reason for this error is that your real or virtual hardware does not support
+ * the diag288 watchdog.
+ * User action:
+ * Confirm that the diag288 watchdog is supported in your environment.
+ * Use a watchdog that is supported in your environment.
+ */
+
+/*?
+ * Text: "The watchdog cannot be deactivated\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to deactivate the diag288 watchdog.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays active and a watchdog timeout will trigger the configured timeout action.
+ * The diag288 watchdog device driver might intentionally be configured to prevent deactivation.
+ * User action:
+ * You can configure the diag288 watchdog device driver such that it can be deactivated.
+ * If the diag288 device driver has been compiled as a separate module, diag288_wdt, reload the module
+ * without specifying the 'nowayout' module parameter.
+ * If the diag288 device driver has been compiled into your kernel,
+ * reboot Linux without specifying the 'diag288.nowayout' kernel parameter'.
+ */
+
+/*?
+ * Text: "The watchdog timer cannot be started or reset\n"
+ * Severity: Error
+ * Description:
+ * Diagnose instruction 0x288 was called to start the diag288 watchdog or to set timer back to zero.
+ * The diagnose call returned an error that cannot be handled by the device driver.
+ * The watchdog stays inactive or becomes inactive.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "Linux cannot be suspended while the watchdog is in use\n"
+ * Severity: Error
+ * Description:
+ * The watchdog must not time out while Linux is suspended.
+ * Therefore, the diag288 watchdog device driver prevents Linux from being suspended
+ * while the watchdog is in use.
+ * User action:
+ * i) Stop the watchdog application. ii) If the problem persists, close the watchdog
+ * device node by issuing 'echo V > /dev/watchdog'.
+ * iii) If the device driver still prevents Linux from being suspended,
+ * contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/extmem
+++ linux-ein-5.4.0/Documentation/kmsg/s390/extmem
@@ -0,0 +1,293 @@
+/*?
+ * Text: "Querying a DCSS type failed with rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The DCSS kernel interface used z/VM diagnose call X'64' to query the
+ * type of a DCSS. z/VM failed to determine the type and returned an error.
+ * User action:
+ * Look for related messages to find out which DCSS is affected.
+ * For details about the return codes see the section about DIAGNOSE Code
+ * X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Loading DCSS %s failed with rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: return code
+ * Description:
+ * The DCSS kernel interface used diagnose call X'64' to load a DCSS. z/VM
+ * failed to load the DCSS and returned an error.
+ * User action:
+ * For details about the return codes see the section about DIAGNOSE Code
+ * X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "DCSS %s of range %p to %p and type %s loaded as exclusive-writable\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: starting page address
+ *   @3: ending page address
+ *   @4: DCSS type
+ * Description:
+ * The DCSS was loaded successfully in exclusive-writable access mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "DCSS %s of range %p to %p and type %s loaded in shared access mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: starting page address
+ *   @3: ending page address
+ *   @4: DCSS type
+ * Description:
+ * The DCSS was loaded successfully in shared access mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "DCSS %s is already in the requested access mode\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * A request to reload a DCSS with a new access mode has been rejected
+ * because the new access mode is the same as the current access mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "DCSS %s is in use and cannot be reloaded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * Reloading a DCSS in a different access mode has failed because the DCSS is
+ * being used by one or more device drivers. The DCSS remains loaded with the
+ * current access mode.
+ * User action:
+ * Ensure that the DCSS is not used by any device driver then try again to
+ * load the DCSS with the new access mode.
+ */
+
+/*?
+ * Text: "DCSS %s overlaps with used memory resources and cannot be reloaded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The DCSS has been unloaded and cannot be reloaded because it overlaps with
+ * another loaded DCSS or with the memory of the z/VM guest virtual machine
+ * (guest storage).
+ * User action:
+ * Ensure that no DCSS is loaded that has overlapping memory resources
+ * with the DCSS you want to reload. If the DCSS overlaps with guest storage,
+ * use the DEF STORE CONFIG z/VM CP command to create a sufficient storage gap
+ * for the DCSS. For details, see the section about the DCSS device driver in
+ * "Device Drivers, Features, and Commands".
+ */
+
+/*?
+ * Text: "Reloading DCSS %s failed with rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: return code
+ * Description:
+ * The DCSS kernel interface used z/VM diagnose call X'64' to reload a DCSS
+ * in a different access mode. The DCSS was unloaded but z/VM failed to reload
+ * the DCSS.
+ * User action:
+ * For details about the return codes see the section about DIAGNOSE Code
+ * X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "Unloading unknown DCSS %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The specified DCSS cannot be unloaded. The DCSS is known to the DCSS device
+ * driver but not to the DCSS kernel interface. This problem indicates a
+ * program error in extmem.c.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*?
+ * Text: "Saving unknown DCSS %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The specified DCSS cannot be saved. The DCSS is known to the DCSS device
+ * driver but not to the DCSS kernel interface. This problem indicates a
+ * program error in extmem.c.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*?
+ * Text: "Saving a DCSS failed with DEFSEG response code %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: response-code
+ * Description:
+ * The DEFSEG z/VM CP command failed to permanently save changes to a DCSS.
+ * User action:
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP DEFSEG command (typically privilege class E).
+ * Look for related messages to find the cause of this error. See also message
+ * HCP<response-code>E in the DEFSEG section of the "z/VM CP Command and
+ * Utility Reference".
+ */
+
+/*?
+ * Text: "Saving a DCSS failed with SAVESEG response code %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: response-code
+ * Description:
+ * The SAVESEG z/VM CP command failed to permanently save changes to a DCSS.
+ * User action:
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP SAVESEG command (typically privilege class E).
+ * Look for related messages to find the cause of this error. See also message
+ * HCP<response-code>E in the SAVESEG section of the "z/VM CP Command and
+ * Utility Reference".
+ */
+
+/*?
+ * Text: "DCSS %s cannot be loaded or queried\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You cannot load or query the specified DCSS because it either is not defined
+ * in the z/VM hypervisor, or it is a class S DCSS, or it is above 2047 MB
+ * and the Linux system is a 31-bit system.
+ * User action:
+ * Use the CP command "QUERY NSS" to find out if the DCSS is a valid
+ * DCSS that can be loaded.
+ */
+
+/*?
+ * Text: "DCSS %s cannot be loaded or queried without z/VM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * A DCSS is a z/VM resource. Your Linux instance is not running as a z/VM
+ * guest operating system and, therefore, cannot load DCSSs.
+ * User action:
+ * Load DCSSs only on Linux instances that run as z/VM guest operating systems.
+ */
+
+/*?
+ * Text: "Loading or querying DCSS %s resulted in a hardware error\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * Either the z/VM DIAGNOSE X'64' query or load call issued for the DCSS
+ * returned with an error.
+ * User action:
+ * Look for previous extmem message to find the return code from the
+ * DIAGNOSE X'64' query or load call. For details about the return codes see
+ * the section about DIAGNOSE Code X'64' in "z/VM CP Programming Services".
+ */
+
+/*?
+ * Text: "DCSS %s has multiple page ranges and cannot be loaded or queried\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You can only load or query a DCSS with multiple page ranges if:
+ * - The DCSS has 6 or fewer page ranges
+ * - The page ranges form a contiguous address space
+ * - The page ranges are of type EW or EN
+ * User action:
+ * Check the definition of the DCSS to make sure that the conditions for
+ * DCSSs with multiple page ranges are met.
+ */
+
+/*?
+ * Text: "%s needs used memory resources and cannot be loaded or queried\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You cannot load or query the DCSS because it overlaps with an already
+ * loaded DCSS or with the memory of the z/VM guest virtual machine
+ * (guest storage).
+ * User action:
+ * Ensure that no DCSS is loaded that has overlapping memory resources
+ * with the DCSS you want to load or query. If the DCSS overlaps with guest
+ * storage, use the DEF STORE CONFIG z/VM CP command to create a sufficient
+ * storage gap for the DCSS. For details, see the section about the DCSS
+ * device driver in "Device Drivers, Features, and Commands".
+ */
+
+/*?
+ * Text: "DCSS %s is already loaded in a different access mode\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The DCSS you are trying to load has already been loaded in a different
+ * access mode. You cannot simultaneously load the DCSS in different modes.
+ * User action:
+ * Reload the DCSS in a different mode or load it with the same mode in which
+ * it has already been loaded.
+ */
+
+/*?
+ * Text: "There is not enough memory to load or query DCSS %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The available memory is not enough to load or query the DCSS.
+ * User action:
+ * Free some memory and repeat the failed operation.
+ */
+
+/*?
+ * Text: "DCSS %s overlaps with used storage and cannot be loaded\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * You cannot load the DCSS because it overlaps with an already loaded DCSS
+ * or with the memory of the z/VM guest virtual machine (guest storage).
+ * User action:
+ * Ensure that no DCSS is loaded that has overlapping memory resources
+ * with the DCSS you want to load. If the DCSS overlaps with guest storage,
+ * use the DEF STORE CONFIG z/VM CP command to create a sufficient storage gap
+ * for the DCSS. For details, see the section about the DCSS device driver in
+ * "Device Drivers, Features, and Commands".
+ */
+
+/*?
+ * Text: "DCSS %s exceeds the kernel mapping range (%lu) and cannot be loaded\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ *   @2: kernel mapping range in bytes
+ * Description:
+ * You cannot load the DCSS because it exceeds the kernel mapping range limit.
+ * User action:
+ * Ensure that the DCSS range is defined below the kernel mapping range.
+ */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/hmcdrv
+++ linux-ein-5.4.0/Documentation/kmsg/s390/hmcdrv
@@ -0,0 +1,22 @@
+/*?
+ * Text: "Allocating the requested cache size of %zu bytes failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: size
+ * Description:
+ * You cannot use the 'hmcdrv' module.
+ * Either the cache size that was specified for the 'hmcdrv' module exceeded
+ * the maximum of 1048576 (1 megabyte), or not enough free memory was
+ * available.
+ * If the 'hmcdrv' module was compiled into the kernel, the cache size was
+ * specified with the 'hmcdrv.cachesize' kernel parameter.
+ * For a separate 'hmcdrv' module, the cache size was specified with the
+ * 'cachesize=' module parameter.
+ * User action:
+ * Specify a smaller cache size and try again to load the module.
+ * Do not exceed the maximum specification of 1048576 (1 megabyte).
+ * If necessary, free some memory and try again.
+ * If the module is compiled into the kernel, you must reboot Linux to change
+ * the cache size specification.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/hugetlb
+++ linux-ein-5.4.0/Documentation/kmsg/s390/hugetlb
@@ -0,0 +1,13 @@
+/*?
+ * Text: "hugepagesz= specifies an unsupported page size %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: size
+ * Description:
+ * The hugepagesz= kernel parameter specifies a huge page size
+ * that is not supported.
+ * User action:
+ * Specify "1M" for 1 MB huge pages. These are supported as of z10.
+ * Specify "2G" for 2 GB huge pages. These are supported as of zEC12
+ * and zBC12 machines.
+ */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/hvc_iucv
+++ linux-ein-5.4.0/Documentation/kmsg/s390/hvc_iucv
@@ -0,0 +1,123 @@
+/*?
+ * Text: "The z/VM IUCV HVC device driver cannot be used without z/VM\n"
+ * Severity: Notice
+ * Description:
+ * The z/VM IUCV hypervisor console (HVC) device driver requires the
+ * z/VM inter-user communication vehicle (IUCV).
+ * User action:
+ * Set "hvc_iucv=" to zero in the kernel parameter line and reboot Linux.
+ */
+
+/*?
+ * Text: "%lu is not a valid value for the hvc_iucv= kernel parameter\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: hvc_iucv_devices
+ * Description:
+ * The "hvc_iucv=" kernel parameter specifies the number of z/VM IUCV
+ * hypervisor console (HVC) terminal devices.
+ * The parameter value ranges from 0 to 8.
+ * If zero is specified, the z/VM IUCV HVC device driver is disabled
+ * and no IUCV-based terminal access is available.
+ * User action:
+ * Correct the "hvc_iucv=" setting in the kernel parameter line and
+ * reboot Linux.
+ */
+
+/*?
+ * Text: "Creating a new HVC terminal device failed with error code=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: errno
+ * Description:
+ * The device driver initialization failed to allocate a new
+ * HVC terminal device.
+ * A possible cause of this problem is memory constraints.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Registering HVC terminal device as Linux console failed\n"
+ * Severity: Error
+ * Description:
+ * The device driver initialization failed to set up the first HVC terminal
+ * device for use as Linux console.
+ * User action:
+ * If the error code is -12 (ENOMEM), consider assigning more memory
+ * to your z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Registering IUCV handlers failed with error code=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: errno
+ * Description:
+ * The device driver initialization failed to register with z/VM IUCV to
+ * handle IUCV connections, as well as sending and receiving of IUCV messages.
+ * User action:
+ * Check for related IUCV error messages and see the errno manual page
+ * to find out what caused the problem.
+ */
+
+/*?
+ * Text: "Allocating memory failed with reason code=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: reason
+ * Description:
+ * The z/VM IUCV hypervisor console (HVC) device driver initialization failed,
+ * because of a general memory allocation failure. The reason code indicates
+ * the memory operation that has failed:
+ * 	kmem_cache (reason code=1),
+ * 	mempool (reason code=2), or
+ * 	hvc_iucv_allow= (reason code=3)
+ * User action:
+ * Consider assigning more memory to your z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "hvc_iucv_allow= does not specify a valid z/VM user ID list\n"
+ * Severity: Error
+ * Description:
+ * The "hvc_iucv_allow=" kernel parameter specifies a comma-separated list
+ * of z/VM user IDs that are permitted to connect to the z/VM IUCV hypervisor
+ * device driver.
+ * The z/VM user IDs in the list must not exceed eight characters and must
+ * not contain spaces.
+ * User action:
+ * Correct the "hvc_iucv_allow=" setting in the kernel parameter line and reboot
+ * Linux.
+ */
+
+/*?
+ * Text: "hvc_iucv_allow= specifies too many z/VM user IDs\n"
+ * Severity: Error
+ * Description:
+ * The "hvc_iucv_allow=" kernel parameter specifies a comma-separated list
+ * of z/VM user IDs that are permitted to connect to the z/VM IUCV hypervisor
+ * device driver.
+ * The number of z/VM user IDs that are specified with the "hvc_iucv_allow="
+ * kernel parameter exceeds the maximum of 500.
+ * User action:
+ * Correct the "hvc_iucv_allow=" setting by reducing the z/VM user IDs in
+ * the list and reboot Linux.
+ */
+
+/*?
+ * Text: "A connection request from z/VM user ID %s was refused\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: ID
+ * Description:
+ * An IUCV connection request from another z/VM guest virtual machine has been
+ * refused. The request was from a z/VM guest virtual machine that is not
+ * listed by the "hvc_iucv_allow=" kernel parameter.
+ * User action:
+ * Check the "hvc_iucv_allow=" kernel parameter setting.
+ * Consider adding the z/VM user ID to the "hvc_iucv_allow=" list in the kernel
+ * parameter line and reboot Linux.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/hypfs
+++ linux-ein-5.4.0/Documentation/kmsg/s390/hypfs
@@ -0,0 +1,56 @@
+/*?
+ * Text: "The hardware system does not support hypfs\n"
+ * Severity: Error
+ * Description:
+ * hypfs requires DIAGNOSE Code X'204' but this diagnose code is not available
+ * on your hardware. You need more recent hardware to use hypfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The hardware system does not provide all functions required by hypfs\n"
+ * Severity: Error
+ * Description:
+ * hypfs requires DIAGNOSE Code X'224' but this diagnode code is not available
+ * on your hardware. You need more recent hardware to use hypfs.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Updating the hypfs tree failed\n"
+ * Severity: Error
+ * Description:
+ * There was not enough memory available to update the hypfs tree.
+ * User action:
+ * Free some memory and try again to update the hypfs tree. Consider assigning
+ * more memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "%s is not a valid mount option\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: mount option
+ * Description:
+ * hypfs has detected mount options that are not valid.
+ * User action:
+ * See "Device Drivers Features and Commands" for information about valid
+ * mount options for hypfs.
+ */
+
+/*?
+ * Text: "Initialization of hypfs failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error code
+ * Description:
+ * Initialization of hypfs failed because of resource or hardware constraints.
+ * Possible reasons for this problem are insufficient free memory or missing
+ * hardware interfaces.
+ * User action:
+ * See errno.h for information about the error codes.
+ */
+
+/*? Text: "Hypervisor filesystem mounted\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/iucv
+++ linux-ein-5.4.0/Documentation/kmsg/s390/iucv
@@ -0,0 +1,33 @@
+/*?
+ * Text: "Defining an interrupt buffer on CPU %i failed with 0x%02x (%s)\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: CPU number
+ *   @2: hexadecimal error value
+ *   @3: short error code explanation
+ * Description:
+ * Defining an interrupt buffer for external interrupts failed. Error
+ * value 0x03 indicates a problem with the z/VM directory entry of the
+ * z/VM guest virtual machine. This problem can also be caused by a
+ * program error.
+ * User action:
+ * If the error value is 0x03, examine the z/VM directory entry of your
+ * z/VM guest virtual machine. If the directory entry is correct or if the
+ * error value is not 0x03, report this problem to your support organization.
+ */
+
+/*?
+ * Text: "Suspending Linux did not completely close all IUCV connections\n"
+ * Severity: Warning
+ * Description:
+ * When resuming a suspended Linux instance, the IUCV base code found
+ * data structures from one or more IUCV connections that existed before the
+ * Linux instance was suspended. Modules that use IUCV connections must close
+ * these connections when a Linux instance is suspended. This problem
+ * indicates an error in a program that used an IUCV connection.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*? Text: "iucv_external_interrupt: out of memory\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/lcs
+++ linux-ein-5.4.0/Documentation/kmsg/s390/lcs
@@ -0,0 +1,169 @@
+/*?
+ * Text: "%s:  Allocating a socket buffer to interface %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: network interface
+ * Description:
+ * LAN channel station (LCS) devices require a socket buffer (SKB) structure
+ * for storing incoming data. The LCS device driver failed to allocate an SKB
+ * structure to the LCS device. A likely cause of this problem is memory
+ * constraints.
+ * User action:
+ * Free some memory and repeat the failed operation.
+ */
+
+/*?
+ * Text: "%s:  Shutting down the LCS device failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * A request to shut down a LAN channel station (LCS) device resulted in an
+ * error. The error is logged in the LCS trace at trace level 4.
+ * User action:
+ * Try again to shut down the device. If the error persists, see the LCS trace
+ * to find out what causes the error.
+ */
+
+/*?
+ * Text: "%s: Detecting a network adapter for LCS devices failed with rc=%d (0x%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: lcs_detect return code in decimal notation
+ *   @3: lcs_detect return code in hexadecimal notation
+ * Description:
+ * The LCS device driver could not initialize a network adapter.
+ * User action:
+ * Ensure that the physical connection from the port to the network is
+ * in place. If the error persists, note the return code from the error
+ * message and contact IBM support.
+ */
+
+/*?
+ * Text: "%s: A recovery process has been started for the LCS device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * The LAN channel station (LCS) device is shut down and restarted. The recovery
+ * process might have been initiated by a user or started automatically as a
+ * response to a device problem.
+ * User action:
+ * Wait until a message indicates the completion of the recovery process.
+ */
+
+/*?
+ * Text: "%s: An I/O-error occurred on the LCS device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * The LAN channel station (LCS) device reported a problem that can be recovered
+ * by the LCS device driver. Repeated occurrences of this problem indicate a
+ * malfunctioning device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process for the
+ * device, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device.
+ */
+
+/*?
+ * Text: "%s: A command timed out on the LCS device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ * Description:
+ * The LAN channel station (LCS) device reported a problem that can be recovered
+ * by the LCS device driver. Repeated occurrences of this problem indicate a
+ * malfunctioning device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process for the
+ * device, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device.
+ */
+
+/*?
+ * Text: "%s: An error occurred on the LCS device, rc=%ld\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: return code
+ * Description:
+ * The LAN channel station (LCS) device reported a problem that can be recovered
+ * by the LCS device driver. Repeated occurrences of this problem indicate a
+ * malfunctioning device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process for the
+ * device, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device.
+ */
+
+/*?
+ * Text: "%s: The LCS device stopped because of an error, dstat=0x%X, cstat=0x%X \n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: device status
+ *   @3: subchannel status
+ * Description:
+ * The LAN channel station (LCS) device reported an error. The LCS device driver
+ * might start a device recovery process.
+ * User action:
+ * If the device driver does not start a recovery process, initiate a recovery
+ * process, for example, by writing '1' to the 'recover' sysfs attribute of the
+ * device. If the problem persists, note the status information provided with
+ * the message and contact IBM support.
+ */
+
+/*?
+ * Text: "%s: Starting an LCS device resulted in an error, rc=%d!\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: ccw_device_start return code in decimal notation
+ * Description:
+ * The LAN channel station (LCS) device driver failed to initialize an LCS
+ * device. The device is not operational.
+ * User action:
+ * Initiate a recovery process, for example, by writing '1' to the 'recover'
+ * sysfs attribute of the device. If the problem persists, contact IBM support.
+ */
+
+/*?
+ * Text: "%s: Sending data from the LCS device to the LAN failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the LCS device
+ *   @2: ccw_device_resume return code in decimal notation
+ * Description:
+ * The LAN channel station (LCS) device driver could not send data to the LAN
+ * using the LCS device. This might be a temporary problem. Operations continue
+ * on the LCS device.
+ * User action:
+ * If this problem occurs frequently, initiate a recovery process, for example,
+ * by writing '1' to the 'recover' sysfs attribute of the device. If the
+ * problem persists, contact IBM support.
+ */
+
+/*? Text: "Query IPAssist failed. Assuming unsupported!\n" */
+/*? Text: "Stoplan for %s initiated by LGW\n" */
+/*? Text: "Not enough memory to add new multicast entry!\n" */
+/*? Text: "Not enough memory for debug facility.\n" */
+/*? Text: "Adding multicast address failed. Table possibly full!\n" */
+/*? Text: "Error in opening device!\n" */
+/*? Text: "LCS device %s %s IPv6 support\n" */
+/*? Text: "Device %s successfully recovered!\n" */
+/*? Text: "LCS device %s %s Multicast support\n" */
+/*? Text: " Initialization failed\n" */
+/*? Text: "Loading %s\n" */
+/*? Text: "Initialization failed\n" */
+/*? Text: "Terminating lcs module.\n" */
+/*? Text: "Device %s could not be recovered!\n" */
+/*? Text: "Initializing the lcs device driver failed\n" */
+/*? Text: "%s: The lcs device driver failed to recover the device\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/monreader
+++ linux-ein-5.4.0/Documentation/kmsg/s390/monreader
@@ -0,0 +1,128 @@
+/*?
+ * Text: "Reading monitor data failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The z/VM *MONITOR record device driver failed to read monitor data
+ * because the IUCV REPLY function failed. The read function against
+ * the monitor record device returns EIO. All monitor data that has been read
+ * since the last read with 0 size is incorrect.
+ * User action:
+ * Disregard all monitor data that has been read since the last read with
+ * 0 size. If the device driver has been compiled as a separate module, unload
+ * and reload the monreader module. If the device driver has been compiled
+ * into the kernel, reboot Linux. For more information about possible causes
+ * of the error see the IUCV section in "z/VM CP Programming Services" and
+ * the *MONITOR section in "z/VM Performance".
+ */
+
+/*?
+ * Text: "z/VM *MONITOR system service disconnected with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: IPUSER SEVER return code
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor records through
+ * an IUCV connection to the z/VM *MONITOR system service. This connection
+ * has been severed and the read function of the z/VM *MONITOR device driver
+ * returns EIO. All data received since the last read with 0 size is incorrect.
+ * User action:
+ * Disregard all monitor data read since the last read with 0 size. Close and
+ * reopen the monitor record device. For information about the IPUSER SEVER
+ * return codes see "z/VM Performance".
+ */
+
+/*?
+ * Text: "The read queue for monitor data is full\n"
+ * Severity: Warning
+ * Description:
+ * The read function of the z/VM *MONITOR device driver returns EOVERFLOW
+ * because not enough monitor data has been read since the monitor device
+ * has been opened. Monitor data already read are valid and subsequent reads
+ * return valid data but some intermediate data might be missing.
+ * User action:
+ * Be aware that monitor data might be missing. Assure that you regularly
+ * read monitor data after opening the monitor record device.
+ */
+
+/*?
+ * Text: "Connecting to the z/VM *MONITOR system service failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: IUCV CONNECT return code
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor records through
+ * an IUCV connection to the z/VM *MONITOR system service. This connection
+ * could not be established when the monitor record device was opened. If
+ * the return code is 15, your z/VM guest virtual machine is not authorized
+ * to connect to the *MONITOR system service.
+ * User action:
+ * If the return code is 15, ensure that the IUCV *MONITOR statement is
+ * included in the z/VM directory entry for your z/VM guest virtual machine.
+ * For other IUCV CONNECT return codes see the IUCV section in "CP Programming
+ * Services" and the *MONITOR section in "z/VM  Performance".
+ */
+
+/*?
+ * Text: "Disconnecting the z/VM *MONITOR system service failed with rc=%i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: IUCV SEVER return code
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor data through an
+ * IUCV connection to the z/VM *MONITOR system service. This connection
+ * could not be closed when the monitor record device was closed. You might
+ * not be able to resume monitoring.
+ * User action:
+ * No immediate action is necessary. If you cannot open the monitor record
+ * device in the future, reboot Linux. For information about the IUCV SEVER
+ * return codes see the IUCV section in "CP Programming Services" and the
+ * *MONITOR section in "z/VM  Performance".
+ */
+
+/*?
+ * Text: "The z/VM *MONITOR record device driver cannot be loaded without z/VM\n"
+ * Severity: Error
+ * Description:
+ * The z/VM *MONITOR record device driver uses z/VM system services to provide
+ * monitor data about z/VM guest operating systems to applications on Linux.
+ * On Linux instances that run in environments other than the z/VM hypervisor,
+ * the z/VM *MONITOR record device driver does not provide any useful
+ * function and the corresponding monreader module cannot be loaded.
+ * User action:
+ * Load the z/VM *MONITOR record device driver only on Linux instances that run
+ * as guest operating systems of the z/VM hypervisor. If the z/VM *MONITOR
+ * record device driver has been compiled into the kernel, ignore this message.
+ */
+
+/*?
+ * Text: "The z/VM *MONITOR record device driver failed to register with IUCV\n"
+ * Severity: Error
+ * Description:
+ * The z/VM *MONITOR record device driver receives monitor data through an IUCV
+ * connection and needs to register with the IUCV device driver. This
+ * registration failed and the z/VM *MONITOR record device driver was not
+ * loaded. A possible cause of this problem is insufficient memory.
+ * User action:
+ * Free some memory and try again to load the module. If the z/VM *MONITOR
+ * record device driver has been compiled into the kernel, you might have to
+ * configure more memory and reboot Linux. If you do not want to read monitor
+ * data, ignore this message.
+ */
+
+/*?
+ * Text: "The specified *MONITOR DCSS %s does not have the required type SC\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: DCSS name
+ * Description:
+ * The DCSS that was specified with the monreader.mondcss kernel parameter or
+ * with the mondcss module parameter cannot be a *MONITOR DCSS because it is
+ * not of type SC.
+ * User action:
+ * Confirm that you are using the name of the DCSS that has been configured as
+ * the *MONITOR DCSS on the z/VM hypervisor. If the default name, MONDCSS, is
+ * used, omit the monreader.mondcss or mondcss parameter.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/monwriter
+++ linux-ein-5.4.0/Documentation/kmsg/s390/monwriter
@@ -0,0 +1,17 @@
+/*?
+ * Text: "Writing monitor data failed with rc=%i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The monitor stream application device driver used the z/VM diagnose call
+ * DIAG X'DC' to start writing monitor data. z/VM returned an error and the
+ * monitor data cannot be written. If the return code is 5, your z/VM guest
+ * virtual machine is not authorized to write monitor data.
+ * User action:
+ * If the return code is 5, ensure that your z/VM guest virtual machine's
+ * entry in the z/VM directory includes the OPTION APPLMON statement.
+ * For other return codes see the section about DIAGNOSE Code X'DC'
+ * in "z/VM CP Programming Services".
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/netiucv
+++ linux-ein-5.4.0/Documentation/kmsg/s390/netiucv
@@ -0,0 +1,156 @@
+/*?
+ * Text: "%s: The peer interface of the IUCV device has closed the connection\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ * Description:
+ * The peer interface on the remote z/VM guest virtual machine has closed the
+ * connection. Do not expect further packets on this interface. Any packets
+ * you send to this interface will be dropped.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The IUCV device failed to connect to z/VM guest %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: z/VM user ID
+ * Description:
+ * The connection cannot be established because the z/VM guest virtual
+ * machine with the peer interface is not running.
+ * User action:
+ * Ensure that the z/VM guest virtual machine with the peer interface is
+ * running; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: The IUCV device failed to connect to the peer on z/VM guest %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: z/VM user ID
+ * Description:
+ * The connection cannot be established because the z/VM guest virtual machine
+ * with the peer interface is not configured for IUCV connections.
+ * User action:
+ * Configure the z/VM guest virtual machine with the peer interface for IUCV
+ * connections; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: Connecting the IUCV device would exceed the maximum number of IUCV connections\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ * Description:
+ * The connection cannot be established because the maximum number of IUCV
+ * connections has been reached on the local z/VM guest virtual machine.
+ * User action:
+ * Close some of the established IUCV connections on the local z/VM guest
+ * virtual machine; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: z/VM guest %s has too many IUCV connections to connect with the IUCV device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * Connecting to the remote z/VM guest virtual machine failed because the
+ * maximum number of IUCV connections for the remote z/VM guest virtual
+ * machine has been reached.
+ * User action:
+ * Close some of the established IUCV connections on the remote z/VM guest
+ * virtual machine; then try again to establish the connection.
+ */
+
+/*?
+ * Text: "%s: The IUCV device cannot connect to a z/VM guest with no IUCV authorization\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ * Description:
+ * Because the remote z/VM guest virtual machine is not authorized for IUCV
+ * connections, the connection cannot be established.
+ * User action:
+ * Add the statements 'IUCV ALLOW' and 'IUCV ANY' to the z/VM directory
+ * entry of the remote z/VM guest virtual machine; then try again to
+ * establish the connection. See "z/VM CP Planning and Administration"
+ * for details about the IUCV statements.
+ */
+
+/*?
+ * Text: "%s: Connecting the IUCV device failed with error %d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: error code
+ * Description:
+ * The connection cannot be established because of an IUCV CONNECT error.
+ * User action:
+ * Report this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The IUCV device has been connected successfully to %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * The connection has been established and the interface is ready to
+ * transmit communication packages.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The IUCV interface to %s has been established successfully\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * The IUCV interface to the remote z/VM guest virtual machine has been
+ * established and can be activated with "ifconfig up" or an equivalent
+ * command.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The IUCV device is connected to %s and cannot be removed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * Removing a connection failed because the interface is active with a peer
+ * interface on a remote z/VM guest virtual machine.
+ * User action:
+ * Deactivate the interface with "ifconfig down" or an equivalent command;
+ * then try again to remove the interface.
+ */
+
+/*?
+ * Text: "%s: The peer z/VM guest %s has closed the connection\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the IUCV device
+ *   @2: remote z/VM user ID
+ * Description:
+ * The peer interface is no longer available.
+ * User action:
+ * Either deactivate and remove the interface, or wait for the peer
+ * z/VM guest to re-establish the interface.
+ */
+
+/*? Text: "driver unloaded\n" */
+/*? Text: "driver initialized\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/numa
+++ linux-ein-5.4.0/Documentation/kmsg/s390/numa
@@ -0,0 +1,11 @@
+/*?
+ * Text: "NUMA mode: %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: mode
+ * Description:
+ * Linux started with the specified NUMA mode.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/numa_emu
+++ linux-ein-5.4.0/Documentation/kmsg/s390/numa_emu
@@ -0,0 +1,50 @@
+/*?
+ * Text: "Not enough memory for %d nodes, reducing node count\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: requested number of nodes
+ * Description:
+ * Using the requested memory stripe size for emulating the requested number of
+ * NUMA nodes requires more than the available memory. The number of nodes is
+ * specified with the emu_nodes= kernel parameter. The memory stripe size to
+ * be used for distributing the available memory among the nodes is specified
+ * with the emu_size= kernel parameter. Fewer nodes were created than the
+ * requested number; each node has one memory stripe of the requested size.
+ * User action:
+ * Specify fewer nodes, reduce the memory stripe size, or make more memory
+ * available to your Linux instance.
+ */
+
+/*?
+ * Text: "Creating %d nodes with memory stripe size %ld MB\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: number of nodes
+ *   @2: stripe size
+ * Description:
+ * NUMA emulation is activated with the reported number of NUMA nodes.
+ * The specified memory stripe size is used to distribute, in round-robin
+ * fashion, the available memory among the nodes.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Increasing memory stripe size from %ld MB to %ld MB\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: requested memory stripe size
+ *   @2: adjusted memory stripe size
+ * Description:
+ * NUMA  emulation  could  not  use  the  requested memory stripe size and
+ * therefore has increased it to the next possible value.
+ * The requested memory stripe size is a default value or it was specified
+ * with the emu_size= kernel parameter.
+ * The memory stripe size must be a multiple of the memory block size that
+ * can be read in hexadecimal notation from
+ * /sys/devices/system/memory/block_size_bytes.
+ * User action:
+ * To avoid this message in the future, specify a valid memory stripe size
+ * with the emu_size= kernel parameter.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/os_info
+++ linux-ein-5.4.0/Documentation/kmsg/s390/os_info
@@ -0,0 +1,36 @@
+/*?
+ * Text: "entry %i: %s (addr=0x%lx size=%lu)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: entry ID
+ *   @2: entry state
+ *   @3: entry address
+ *   @4: entry size
+ * Description:
+ * Linux is running in kdump mode and reports information defined by the
+ * previously running production kernel. Possible values for
+ * "entry state" are:
+ *
+ * - copied: The entry has been found, verified, and copied
+ *
+ * - not available: The entry has not been defined
+ *
+ * - checksum failed: The entry has been found, but it is not valid
+ * User action:
+ * If kdump fails, contact your service organization and include this message
+ * in the error report.
+ */
+
+/*?
+ * Text: "crashkernel: addr=0x%lx size=%lu\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: address
+ *   @2: size
+ * Description:
+ * Linux is running in kdump mode and reports the address and size of
+ * the memory area that was reserved for kdump by the previously running
+ * production kernel.
+ * User action:
+ * None.
+ */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/perf
+++ linux-ein-5.4.0/Documentation/kmsg/s390/perf
@@ -0,0 +1,90 @@
+/*?
+ * Text: "CPU[%i] CPUM_CF: ver=%u.%u A=%04x E=%04x C=%04x\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: first version number
+ *   @3: second version number
+ *   @4: counter set authorization
+ *   @5: counter set enable controls
+ *   @6: counter set activation controls
+ * Description:
+ * This message displays information about the CPU-measurement counter facility
+ * (CPUM_CF) on a particular CPU.  For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU[%i] CPUM_SF: basic=%i diag=%i min=%lu max=%lu cpu_speed=%u\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: authorization status for the basic-sampling function
+ *   @3: authorization status for the diagnostic-sampling function
+ *   @4: minimum sampling interval
+ *   @5: maximum sampling interval
+ *   @6: cpu speed
+ * Description:
+ * This message displays generic information about the CPU-measurement sampling
+ * facility (CPUM_SF) on a particular CPU.  For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU[%i] CPUM_SF: Basic-sampling: a=%i e=%i c=%i bsdes=%i tear=%016lx dear=%016lx\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: authorization control
+ *   @3: enable control
+ *   @4: activation control
+ *   @5: basic-sampling-data-entry size
+ *   @6: tear register contents
+ *   @7: dear register contents
+ * Description:
+ * This message displays information about the basic-sampling function of the
+ * CPU-measurement sampling facility (CPUM_SF) on a particular CPU.
+ * For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "CPU[%i] CPUM_SF: Diagnostic-sampling: a=%i e=%i c=%i dsdes=%i tear=%016lx dear=%016lx\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: cpu number
+ *   @2: authorization control
+ *   @3: enable control
+ *   @4: activation control
+ *   @5: diagnostic-sampling-data-entry size
+ *   @6: tear register contents
+ *   @7: dear register contents
+ * Description:
+ * This message displays information about the diagnostic-sampling function of the
+ * CPU-measurement sampling facility (CPUM_SF) on a particular CPU.
+ * For details, see
+ * "The Load-Program-Parameter and the CPU-Measurement Facilities", SA23-2260.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The sampling facility is already reserved by %p\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: address of perf sampling support owner
+ * Description:
+ * A process tried to reserve the sampling facility support, but it was already
+ * reserved by another process.
+ * User action:
+ * Check whether another process, for example, the perf program or OProfile is
+ * currently active.  Retry activating the sampling facility after the other
+ * process has ended.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/prng
+++ linux-ein-5.4.0/Documentation/kmsg/s390/prng
@@ -0,0 +1,103 @@
+/* prng */
+
+/*?
+ * Text: "prng runs in TDES mode with chunksize=%d and reseed_limit=%u\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: read chunk size in bytes
+ *   @2: reseed limit
+ * Description:
+ * The pseudo-random number device driver started in triple DES mode.
+ * For IBM mainframes earlier than IBM zEnterprise EC12 (zEC12),
+ * triple DES is the only available mode.
+ * As of zEC12, the preferred mode is SHA-512.
+ * User action:
+ * If triple DES is the expected mode, no action is required.
+ * Otherwise, verify that the prng started with the mode= module or
+ * prng.mode= kernel parameter set to a value other than 1.
+ * The value 1 forces triple DES mode. Also ensure that the mainframe
+ * runs with the latest firmware level.
+ */
+
+/*?
+ * Text: "The prng module stopped after running in triple DES mode\n"
+ * Severity: Informational
+ * Description:
+ * The pseudo-random number device driver was running in triple DES mode.
+ * The device driver module, prng, was unloaded, or it stopped
+ * because Linux shut down.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The prng module cannot start in SHA-512 mode\n"
+ * Severity: Error
+ * Description:
+ * The pseudo-random number device driver was loaded with the mode= module parameter
+ * or the prng.mode= kernel parameter set to 2. This setting forces SHA-512 mode,
+ * but the required support for MSA 5 is not available. This support requires an IBM
+ * zEnterprise EC12 (zEC12) or later mainframe.
+ * User action:
+ * If your mainframe is earlier than zEC12, set the mode= module or
+ * prng.mode= kernel parameter to 0 or 1 to run the
+ * pseudo-random number device driver in triple DES mode.
+ * Otherwise, ensure that MSA 5 support available.
+ */
+
+/*?
+ * Text: "prng runs in SHA-512 mode with chunksize=%d and reseed_limit=%u\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: read chunk size in bytes
+ *   @2: reseed limit
+ * Description:
+ * The pseudo-random number device driver started in SHA-512 mode.
+ * As of IBM zEnterprise EC12, this is the preferred mode.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The prng module stopped after running in SHA-512 mode\n"
+ * Severity: Informational
+ * Description:
+ * The pseudo-random number device driver was running in SHA-512 mode.
+ * The device driver module, prng, was unloaded, or stopped
+ * because Linux shut down.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The prng self test state test for the SHA-512 mode failed\n"
+ * Severity: Error
+ * Description:
+ * The pseudo-random number device driver is not operational because the self test failed.
+ * After processing a published National Institute of Standards and Technology (NIST) test vector for the
+ * Deterministic Random Bit Generator (DRBG) algorithm, the device driver
+ * was not in the expected working state. This failure might indicate
+ * that the cryptographic software or hardware is not working correctly.
+ * The processed NIST test vector was: Hash Drbg, Sha-512, Count #0.
+ * User action:
+ * Unload and reload the prng module, or
+ * if prng was compiled into the kernel, restart Linux.
+ * If the error persists, contact your support organization.
+ */
+
+/*?
+ * Text: "The prng self test data test for the SHA-512 mode failed\n"
+ * Severity: Error
+ * Description:
+ * The pseudo-random number device driver is not operational because the self test failed.
+ * After processing a published National Institute of Standards and Technology (NIST) test vector for the
+ * Deterministic Random Bit Generator (DRBG) algorithm, the device driver
+ * did not produce the expected pseudo-random data. This failure might indicate
+ * that the cryptographic software or hardware is not working correctly.
+ * The processed NIST test vector was: Hash Drbg, Sha-512, Count #0.
+ * User action:
+ * Unload and reload the prng module, or
+ * if prng was compiled into the kernel, restart Linux.
+ * If the error persists, contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/qeth
+++ linux-ein-5.4.0/Documentation/kmsg/s390/qeth
@@ -0,0 +1,929 @@
+/*?
+ * Text: "%s: The LAN is offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A start LAN command was sent by the qeth device driver but the physical or
+ * virtual adapter has not started the LAN. The LAN might take a few seconds
+ * to become available.
+ * User action:
+ * Check the status of the qeth device, for example, with the lsqeth command.
+ * If the device does not become operational within a few seconds, initiate a
+ * recovery process, for example, by writing '1' to the 'recover' sysfs
+ * attribute of the device.
+ */
+
+/*?
+ * Text: "%s: A recovery process has been started for the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A recovery process was started either by the qeth device driver or through
+ * a user command.
+ * User action:
+ * Wait until a message indicates the completion of the recovery process.
+ */
+
+/*?
+ * Text: "%s: The qeth device driver failed to recover an error on the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver performed an automatic recovery operation to recover
+ * an error on a qeth device. The recovery operation failed.
+ * User action:
+ * Try the following actions in the given order: i) Check the status of the
+ * qeth device, for example, with the lsqeth command. ii) Initiate a recovery
+ * process by writing '1' to the 'recover' sysfs attribute of the device.
+ * iii) Ungroup and regroup the subchannel triplet of the device. vi) Reboot
+ * Linux. v) If the problem persists, gather Linux debug data and report the
+ * problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Device recovery failed to restore all offload features\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver performed a recovery operation on a qeth device. Part
+ * of the recovery is to restore the offload features that were enabled before
+ * the recovery. At least one of those offload features could not be restored.
+ * User action:
+ * Check which offload features are enabled on the device, for example with
+ * the "ethtool -k" command. Try to explicitly re-enable the missing offload
+ * features for the device, for example with the "ethtool -K" command.
+ */
+
+/*?
+ * Text: "%s: The link for interface %s on CHPID 0x%X failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ *   @3: CHPID
+ * Description:
+ * A network link failed. A possible reason for this error is that a physical
+ * network cable has been disconnected.
+ * User action:
+ * Ensure that the network cable on the adapter hardware is connected properly.
+ * If the connection is to a guest LAN, ensure that the device is still coupled
+ * to the guest LAN.
+ */
+
+/*?
+ * Text: "%s: The link for %s on CHPID 0x%X has been restored\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ *   @3: CHPID
+ * Description:
+ * A failed network link has been re-established. A device recovery is in
+ * progress.
+ * User action:
+ * Wait until a message indicates the completion of the recovery process.
+ */
+
+/*?
+ * Text: "%s: A hardware operation timed out on the device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A hardware operation timed out on the qeth device.
+ * User action:
+ * Check the status of the qeth device, for example, with the lsqeth command.
+ * If the device is not operational, initiate a recovery process, for example,
+ * by writing '1' to the 'recover' sysfs attribute of the device.
+ */
+
+/*?
+ * Text: "%s: The adapter hardware is of an unknown type\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver does not recognize the adapter hardware. The cause
+ * of this problem could be a hardware error or a Linux level that does not
+ * support your adapter hardware.
+ * User action:
+ * i) Investigate if your adapter hardware is supported by your Linux level.
+ * Consider using hardware that is supported by your Linux level or upgrading
+ * to a Linux level that supports your hardware. ii) Install the latest
+ * firmware on your adapter hardware. iii) If the problem persists and is not
+ * caused by a version mismatch, contact IBM support.
+ */
+
+/*?
+ * Text: "%s: The adapter is used exclusively by another host\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth adapter is exclusively used by another host.
+ * User action:
+ * Use another qeth adapter or configure this one not exclusively to a
+ * particular host.
+ */
+
+/*?
+ * Text: "%s: QDIO reported an error, rc=%i\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: return code
+ * Description:
+ * The QDIO subsystem reported an error.
+ * User action:
+ * Check for related QDIO errors. Check the status of the qeth device, for
+ * example, with the lsqeth command. If the device is not operational, initiate
+ * a recovery process, for example, by writing '1' to the 'recover' sysfs
+ * attribute of the device.
+ */
+
+/*?
+ * Text: "%s: There is no kernel module to support discipline %d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: discipline
+ * Description:
+ * The qeth device driver or a user command requested a kernel module for a
+ * particular qeth discipline. Either the discipline is not supported by the
+ * qeth device driver or the requested module is not available to your Linux
+ * system.
+ * User action:
+ * Check if the requested discipline module has been compiled into the kernel
+ * or is present in /lib/modules/<version>/kernel/drivers/s390/net.
+ */
+
+/*?
+ * Text: "Initializing the qeth device driver failed\n"
+ * Severity: Error
+ * Parameter:
+ * Description:
+ * The base module of the qeth device driver could not be initialized.
+ * User action:
+ * See errno.h to determine the reason for the error.
+ * i) Reboot Linux. ii) If the problem persists, gather Linux debug data and
+ * report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Registering IP address %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: IP address
+ * Description:
+ * An IP address could not be registered with the network adapter.
+ * User action:
+ * Check if another operating system instance has already registered the
+ * IP address with the same network adapter or at the same logical IP subnet.
+ */
+
+/*?
+ * Text: "%s: Reading the adapter MAC address failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device driver could not read the MAC address from the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting ARP processing support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start ARP support on the network adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting IP fragmentation support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start IP fragmentation support on the
+ * network adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting VLAN support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start VLAN support on the network adapter.
+ * User action:
+ * None if you do not require VLAN support. If you need VLAN support,
+ * ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting multicast support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not start multicast support on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Activating IPv6 support for %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not activate IPv6 support on the network
+ * adapter.
+ * User action:
+ * None if you do not require IPv6 communication. If you need IPv6 support,
+ * ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Enabling the passthrough mode for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not enable the passthrough mode on the
+ * network adapter. The passthrough mode is required for all network traffic
+ * other than IPv4. In particular, the passthrough mode is required for IPv6
+ * traffic.
+ * User action:
+ * None if all you want to support is IPv4 communication. If you want to support
+ * IPv6 or other network traffic apart from IPv4, ungroup and regroup the
+ * subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Enabling broadcast filtering for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not enable broadcast filtering on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up broadcast filtering for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not set up broadcast filtering on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up broadcast echo filtering for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not set up broadcast echo filtering on the
+ * network adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting HW checksumming for %s failed, using SW checksumming\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports hardware checksumming for IP packages
+ * but the qeth device driver could not start hardware checksumming on the
+ * adapter. The qeth device driver continues to use software checksumming for
+ * IP packages.
+ * User action:
+ * None if you do not require hardware checksumming for network
+ * traffic. If you want to enable hardware checksumming, ungroup and regroup
+ * the subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Enabling HW checksumming for %s failed, using SW checksumming\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports hardware checksumming for IP packages
+ * but the qeth device driver could not enable hardware checksumming on the
+ * adapter. The qeth device driver continues to use software checksumming for
+ * IP packages.
+ * User action:
+ * None if you do not require hardware checksumming for network
+ * traffic. If you want to enable hardware checksumming, ungroup and regroup
+ * the subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Starting outbound TCP segmentation offload for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports TCP segmentation offload, but the qeth device
+ * driver could not start this support on the adapter.
+ * User action:
+ * None if you do not require TCP segmentation offload. If you want to
+ * enable TCP segmentation offload, ungroup and regroup the subchannel triplet
+ * of the device. If this does not resolve the problem, reboot Linux. If the
+ * problem persists, gather Linux debug data and report the problem to your
+ * support organization.
+ */
+
+/*?
+ * Text: "%s: The network adapter failed to generate a unique ID\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * In IBM mainframe environments, network interfaces are not identified by
+ * a specific MAC address. Therefore, the network adapters provide the network
+ * interfaces with unique IDs to be used in their IPv6 link local addresses.
+ * Without such a unique ID, duplicate addresses might be assigned in other
+ * LPARs.
+ * User action:
+ * Install the latest firmware on the adapter hardware. Manually, configure
+ * an IPv6 link local address for this device.
+ */
+
+/*?
+ * Text: "There is no IPv6 support for the layer 3 discipline\n"
+ * Severity: Warning
+ * Description:
+ * If you want to use IPv6 with the layer 3 discipline, you need a Linux kernel
+ * with IPv6 support. Because your Linux kernel has not been compiled with
+ * IPv6 support, you cannot use IPv6 with the layer 3 discipline, even if your
+ * adapter supports IPv6.
+ * User action:
+ * Use a Linux kernel that has been complied to include IPv6 support if you
+ * want to use IPv6 with layer 3 qeth devices.
+ */
+
+/*?
+ * Text: "%s: The qeth device is not configured for the OSI layer required by z/VM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A qeth device that connects to a virtual network on z/VM must be configured for the
+ * same Open Systems Interconnection (OSI) layer as the virtual network. An ETHERNET
+ * guest LAN or VSWITCH uses the data link layer (layer 2) while an IP guest LAN
+ * or VSWITCH uses the network layer (layer 3).
+ * User action:
+ * If you are connecting to an ETHERNET guest LAN or VSWITCH, set the layer2 sysfs
+ * attribute of the qeth device to 1. If you are connecting to an IP guest LAN or
+ * VSWITCH, set the layer2 sysfs attribute of the qeth device to 0.
+ */
+
+/*?
+ * Text: "%s: Starting source MAC-address support for %s failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The qeth device driver could not enable source MAC-address on the network
+ * adapter.
+ * User action:
+ * Ungroup and regroup the subchannel triplet of the device. If this does not
+ * resolve the problem, reboot Linux. If the problem persists, gather Linux
+ * debug data and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: MAC address %pM already exists\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: MAC-address
+ * Description:
+ * Setting the MAC address for the qeth device fails, because this
+ * MAC address is already defined on the OSA CHPID.
+ * User action:
+ * Use a different MAC address for this qeth device.
+ */
+
+/*?
+ * Text: "%s: MAC address %pM is not authorized\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: MAC-address
+ * Description:
+ * This qeth device is a virtual network interface card (NIC), to which z/VM
+ * has already assigned a MAC address. z/VM MAC address verification does
+ * not allow you to change this predefined address.
+ * User action:
+ * None; use the MAC address that has been assigned by z/VM.
+ */
+
+/*?
+ * Text: "%s: The HiperSockets network traffic analyzer is activated\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+ * The corresponding HiperSockets interface has been switched into promiscuous mode.
+ * As a result, the HiperSockets network traffic analyzer is started on the device.
+ * User action:
+ * None.
+ */
+
+ /*?
+  * Text: "%s: The HiperSockets network traffic analyzer is deactivated\n"
+  * Severity: Informational
+  * Parameter:
+  *   @1: bus ID of the qeth device
+  * Description:
+  * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+  * Promiscuous mode has been switched off for the corresponding HiperSockets interface
+  * As a result, the HiperSockets network traffic analyzer is stopped on the device.
+  * User action:
+  * None.
+  */
+
+/*?
+ * Text: "%s: The device is not authorized to run as a HiperSockets network traffic analyzer\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+ * The corresponding HiperSockets interface is switched into promiscuous mode
+ * but the network traffic analyzer (NTA) rules configured at the Support Element (SE)
+ * do not allow tracing. Possible reasons are:
+ * - Tracing is not authorized for all HiperSockets LANs in the mainframe system
+ * - Tracing is not authorized for this HiperSockets LAN
+ * - LPAR is not authorized to enable an NTA
+ * User action:
+ * Configure appropriate HiperSockets NTA rules at the SE.
+ */
+
+/*?
+ * Text: "%s: A HiperSockets network traffic analyzer is already active in the HiperSockets LAN\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The sysfs 'sniffer' attribute of the HiperSockets device has the value '1'.
+ * The HiperSockets interface is switched into promiscuous mode but another
+ * HiperSockets device on the same HiperSockets LAN is already running as
+ * a network traffic analyzer.
+ * A HiperSockets LAN can only have one active network traffic analyzer.
+ * User action:
+ * Do not configure multiple HiperSockets devices in the same HiperSockets LAN as
+ * tracing devices.
+ */
+
+/*?
+ * Text: "%s: Enabling HW TX checksumming for %s failed, using SW TX checksumming\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ * Description:
+ * The network adapter supports hardware checksumming for outgoing IP packages
+ * but the qeth device driver could not enable hardware TX checksumming on the
+ * adapter. The qeth device driver continues to use software checksumming for
+ * outgoing IP packages.
+ * User action:
+ * None if you do not require hardware checksumming for outgoing network
+ * traffic. If you want to enable hardware checksumming, ungroup and regroup
+ * the subchannel triplet of the device. If this does not resolve the problem,
+ * reboot Linux. If the problem persists, gather Linux debug data and report
+ * the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: A connection could not be established because of an OLM limit\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * z/OS has activated Optimized Latency Mode (OLM) for a connection through an OSA Express3 adapter.
+ * This reduces the maximum number of concurrent connections per physical port for shared adapters.
+ * The new connection would exceed the maximum. Linux cannot establish further connections using
+ * this adapter.
+ * User action:
+ * If possible, deactivate an existing connection that uses this adapter and try again to establish
+ * the new connection. If you cannot free an existing connection, use a different adapter for the
+ * new connection.
+ */
+
+/*?
+ * Text: "%s: Setting the device online failed because of insufficient authorization\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The qeth device is configured with OSX CHPIDs. An OSX CHPID cannot be activated unless the LPAR is explicitly authorized to access it.
+ * For z/VM guest operating systems, the z/VM user ID must be explicitly authorized in addition to the LPAR.
+ * You grant these authorizations through the Service Element.
+ * User action:
+ * At the Service Element, authorize the LPAR and, if applicable, the z/VM user ID for using the OSX CHPIDs with which the qeth device has been configured.
+ * Then try again to set the device online.
+ */
+
+/*?
+ * Text: "%s: portname is deprecated and is ignored\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * An OSA-Express port name was required to identify a shared OSA port.
+ * All operating system instances that shared the port had to use the same port name.
+ * This requirement no longer applies, and the specified portname attribute is ignored.
+ * User action:
+ * For future upgrades, remove OSA port name specifications from your
+ * network configuration.
+ */
+
+/*? Text: "core functions removed\n" */
+/*? Text: "%s: Device is a%s card%s%s%s\nwith link type %s.\n" */
+/*? Text: "%s: issue_next_read failed: no iob available!\n" */
+/*? Text: "%s: Priority Queueing not supported\n" */
+/*? Text: "%s: sense data available. cstat 0x%X dstat 0x%X\n" */
+/*? Text: "loading core functions\n" */
+/*? Text: "%s: MAC address %pM successfully registered on device %s\n" */
+/*? Text: "%s: Device successfully recovered!\n" */
+/*? Text: "register layer 2 discipline\n" */
+/*? Text: "unregister layer 2 discipline\n" */
+/*? Text: "%s: Hardware IP fragmentation not supported on %s\n" */
+/*? Text: "%s: IPv6 not supported on %s\n" */
+/*? Text: "%s: VLAN not supported on %s\n" */
+/*? Text: "%s: Inbound source MAC-address not supported on %s\n" */
+/*? Text: "%s: IPV6 enabled\n" */
+/*? Text: "%s: ARP processing not supported on %s!\n" */
+/*? Text: "%s: Hardware IP fragmentation enabled \n" */
+/*? Text: "%s: set adapter parameters not supported.\n" */
+/*? Text: "%s: VLAN enabled\n" */
+/*? Text: "register layer 3 discipline\n" */
+/*? Text: "%s: Outbound TSO enabled\n" */
+/*? Text: "%s: Broadcast not supported on %s\n" */
+/*? Text: "%s: Outbound TSO not supported on %s\n" */
+/*? Text: "%s: Inbound HW Checksumming not supported on %s,\ncontinuing using Inbound SW Checksumming\n" */
+/*? Text: "%s: Using no checksumming on %s.\n" */
+/*? Text: "%s: Broadcast enabled\n" */
+/*? Text: "%s: Multicast not supported on %s\n" */
+/*? Text: "%s: Using SW checksumming on %s.\n" */
+/*? Text: "%s: HW Checksumming (%sbound) enabled\n" */
+/*? Text: "unregister layer 3 discipline\n" */
+/*? Text: "%s: Multicast enabled\n" */
+/*? Text: "%s: QDIO data connection isolation is deactivated\n" */
+/*? Text: "%s: QDIO data connection isolation is activated\n" */
+/*? Text: "%s: Adapter does not support QDIO data connection isolation\n" */
+/*? Text: "%s: Adapter is dedicated. QDIO data connection isolation not supported\n" */
+/*? Text: "%s: TSO does not permit QDIO data connection isolation\n" */
+/*? Text: "%s: HW TX Checksumming enabled\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "qeth_l3: ignoring TR device\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+
+/*?
+ * Text: "%s: Turning off reflective relay mode at the adjacent switch failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The policy for the QDIO data connection isolation was
+ * changed successfully, and communications are now handled according to the
+ * new policy. The ISOLATION_FORWARD policy is no longer used, but the qeth
+ * device driver could not turn off the reflective relay mode on the adjacent
+ * switch port.
+ * User action:
+ * Check the adjacent switch for errors and correct the problem.
+ */
+
+/*?
+ * Text: "%s: The adjacent switch port does not support reflective relay mode\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The 'isolation' sysfs attribute of the qeth device could not be set to 'forward'.
+ * This setting selects the ISOLATION_FORWARD policy for the QDIO data connection
+ * isolation. The ISOLATION_FORWARD policy requires a network adapter in Virtual
+ * Ethernet Port Aggregator (VEPA) mode with an adjacent switch port in reflective
+ * relay mode.
+ * User action:
+ * Use a switch port that supports reflective relay mode if you want to use the
+ * ISOLATION_FORWARD policy for the qeth device.
+ */
+
+/*?
+ * Text: "%s: The reflective relay mode cannot be enabled at the adjacent switch port"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The 'isolation' sysfs attribute of the qeth device could not be set to 'forward'.
+ * This setting selects the ISOLATION_FORWARD policy for the QDIO data connection
+ * isolation. The ISOLATION_FORWARD policy requires a network adapter in Virtual
+ * Ethernet Port Aggregator (VEPA) mode with an adjacent switch port in reflective relay
+ * mode. The qeth device driver failed to enable the required reflective relay mode on
+ * the adjacent switch port although the switch port supports this mode.
+ * User action:
+ * Enable reflective relay mode on the switch for the adjacent port and try again.
+ */
+
+/*?
+ * Text: "%s: Interface %s is down because the adjacent port is no longer in reflective relay mode\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: interface name
+ * Description:
+ * The ISOLATION_FORWARD policy is active for the QDIO data connection isolation
+ * of the qeth device. This policy requires a network adapter in Virtual Ethernet
+ * Port Aggregator (VEPA) mode with an adjacent switch port in reflective relay mode.
+ * The reflective relay mode on the adjacent switch port was disabled. The qeth device
+ * was set offline and the interface was deactivated to prevent any unintended network traffic.
+ * User action:
+ * Enable the reflective relay mode again on the adjacent port or use the 'isolation'
+ * sysfs attribute of the qeth device to set a different policy for the QDIO data connection
+ * isolation. You can then resume operations by setting the qeth device back
+ * online and activating the interface.
+ */
+
+/*?
+ * Text: "%s: Failed to create completion queue\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device could not be configured with a completion queue.
+ * A completion queue is required to operate AF_IUCV communication in an LPAR.
+ * User action:
+ * i) Investigate if you have the latest firmware level in place.
+ * ii) If the problem persists and is not caused by a version mismatch, contact IBM
+ * support.
+ */
+
+/*?
+ * Text: "%s: Completion Queueing supported\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device supports completion queueing. This is required to
+ * set up AF_IUCV communication in an LPAR.
+ */
+
+/*?
+ * Text: "%s: Completion Queue support enabled"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device is enabled for completion queueing. This is part of
+ * the process to set up AF_IUCV communication in an LPAR.
+ */
+
+/*?
+ * Text: "%s: Completion Queue support disabled"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The HiperSockets device is disabled for completion queueing. This device
+ * cannot or no longer be used to set up AF_IUCV communication in an LPAR.
+ */
+
+/*?
+ * Text: "%s: The device represents a Bridge Capable Port\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * You can configure this device as a Bridge Port.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The device is not configured as a Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The Bridge Port role cannot be withdrawn from a device
+ * that is not configured as a Bridge Port.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The LAN already has a primary Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A LAN can have multiple secondary Bridge Ports, but only
+ * one primary Bridge Port. Configuring the device as a
+ * primary Bridge Port failed because another port on the
+ * LAN has been configured as the primary Bridge Port.
+ * User action:
+ * Find out which operating system instance has configured the primary
+ * Bridge Port. Assure that the primary role for this port is withdrawn
+ * before trying again to configure your device as the primary Bridge
+ * Port. Alternatively, consider configuring your device as a secondary
+ * Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The device is already a secondary Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A device cannot be configured as a primary or secondary
+ * Bridge Port if it is already configured as a secondary Bridge Port.
+ * User action:
+ * None, if you want the device to be a secondary Bridge Port.
+ * If you want to configure the device as the primary Bridge Port,
+ * withdraw the secondary role by writing 'none' to the 'bridgeport_role'
+ * sysfs attribute of the device. Then try again to configure the
+ * device as the primary Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The LAN cannot have more secondary Bridge Ports\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A LAN can have up to five secondary Bridge Ports.
+ * You cannot configure a further device as a secondary
+ * Bridge Port unless the Bridge Ports role is withdrawn from one of
+ * the existing secondary Bridge Ports.
+ * User action:
+ * Assure that the Bridge Port role is withdrawn from one of the
+ * existing secondary Bridge Ports before trying again to configure your
+ * device as a secondary Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The device is already a primary Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * A device cannot be configured as a primary or secondary
+ * Bridge Port if it is already configured as a primary Bridge Port.
+ * User action:
+ * None, if you want the device to be a primary Bridge Port.
+ * If you want to configure the device as a secondary Bridge Port,
+ * withdraw the primary role by writing 'none' to the 'bridgeport_role'
+ * sysfs attribute of the device. Then try again to configure the
+ * device as the secondary Bridge Port.
+ */
+
+/*?
+ * Text: "%s: The device is not authorized to be a Bridge Port\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * The device cannot be configured as a Bridge Port because
+ * the required authorizations in the hardware are not in place.
+ * User action:
+ * See your hardware documentation about how to authorize
+ * ports for becoming a Bridge Port.
+ */
+
+/*?
+ * Text: "%s: A Bridge Port is already configured by a different operating system\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * Linux instances cannot configure the target port as a Bridge Port.
+ * Another operating system already uses a Bridge Port on the HiperSockets
+ * or on the OSA adapter. For example, a z/VM instance might be using
+ * a port in a VSWITCH configuration. Multiple Bridge Ports on the same
+ * HiperSockets or OSA adapter must be configured by instances of the same
+ * operating system, for example, all Linux or all z/VM.
+ * User action:
+ * Reconsider your network topology. Configure Bridge Ports only for ports
+ * on adapters where any other Bridge Ports are configured by other Linux
+ * instances.
+ */
+
+/*?
+ * Text: "%s: Setting address notification failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * Enabling or disabling the address notification feature of a
+ * HiperSockets device failed. The device might not be configured as a
+ * Bridge Port.
+ * User action:
+ * None, unless you need address notifications for this device.
+ * If you need notifications, confirm that your device is attached to a
+ * HiperSockets LAN that supports Bridge Capable Ports and that your
+ * device is configured as a Bridge Port. If the 'bridgeport_role'
+ * sysfs attribute of the device contains, one of the values 'primary'
+ * or 'secondary' and you cannot set the address notification, contact
+ * your support organization.
+ */
+
+/*?
+ * Text: "%s: Address notification from the Bridge Port stopped %s (%s)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ *   @2: network interface name
+ *   @3: error reported by the hardware
+ * Description:
+ * A Bridge Port no longer provides address notifications.
+ * Possible reasons include traffic overflow and that the device is no
+ * longer configured as a Bridge Port. A udev event with
+ * BRIDGEDHOST=abort was emitted to alert applications that rely on the
+ * address notifications.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The qeth driver ran out of channel command buffers\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the qeth device
+ * Description:
+ * Command buffers can temporarily run out during periods of
+ * intense network configuration activities.
+ * The device driver recovers from this condition as outstanding
+ * commands are completed.
+ * User action:
+ * Wait for a short time. If the problem persists,
+ * initiate a recovery process by writing '1' to the 'recover'
+ * sysfs attribute of the device.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/s390dbf
+++ linux-ein-5.4.0/Documentation/kmsg/s390/s390dbf
@@ -0,0 +1,83 @@
+/*?
+ * Text: "Root becomes the owner of all s390dbf files in sysfs\n"
+ * Severity: Warning
+ * Description:
+ * The S/390 debug feature you are using only supports uid/gid = 0.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Registering debug feature %s failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: feature name
+ * Description:
+ * The initialization of an S/390 debug feature failed. A likely cause of this
+ * problem is memory constraints. The system keeps running, but the debug
+ * data for this feature will not be available in sysfs.
+ * User action:
+ * Consider assigning more memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Registering view %s/%s would exceed the maximum number of views %i\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: feature name
+ *   @2: view name
+ *   @3: maximum
+ * Description:
+ * The maximum number of allowed debug feature views has been reached. The
+ * view has not been registered. The system keeps running but the new view
+ * will not be available in sysfs. This is a program error.
+ * User action:
+ * Report this problem to your support partner.
+ */
+
+/*?
+ * Text: "%s is not a valid level for a debug feature\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: level
+ * Description:
+ * Setting a new level for a debug feature by using the 'level' sysfs attribute
+ * failed. Valid levels are the minus sign (-) and the integers in the
+ * range 0 to 6. The minus sign switches off the feature. The numbers switch
+ * the feature on, where higher numbers produce more debug output.
+ * User action:
+ * Write a valid value to the 'level' sysfs attribute.
+ */
+
+/*?
+ * Text: "Flushing debug data failed because %c is not a valid area\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: debug area number
+ * Description:
+ * Flushing a debug area by using the 'flush' sysfs attribute failed. Valid
+ * values are the minus sign (-) for flushing all areas, or the number of the
+ * respective area for flushing a single area.
+ * User action:
+ * Write a valid area number or the minus sign (-) to the 'flush' sysfs
+ * attribute.
+ */
+
+/*?
+ * Text: "Allocating memory for %i pages failed\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: number of pages
+ * Description:
+ * Setting the debug feature size by using the 'page' sysfs attribute failed.
+ * Linux did not have enough memory for expanding the debug feature to the
+ * requested size.
+ * User action:
+ * Use a smaller number of pages for the debug feature or allocate more
+ * memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*? Text: "%s: set new size (%i pages)\n" */
+/*? Text: "%s: switched off\n" */
+/*? Text: "%s: level %i is out of range (%i - %i)\n" */
+/*? Text: "Registering view %s/%s failed due to out of memory\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/sclp_cmd
+++ linux-ein-5.4.0/Documentation/kmsg/s390/sclp_cmd
@@ -0,0 +1,44 @@
+/*? Text: "sync request failed (cmd=0x%08x, status=0x%02x)\n" */
+/*? Text: "readcpuinfo failed (response=0x%04x)\n" */
+/*? Text: "configure cpu failed (cmd=0x%08x, response=0x%04x)\n" */
+/*? Text: "configure channel-path failed (cmd=0x%08x, response=0x%04x)\n" */
+/*? Text: "read channel-path info failed (response=0x%04x)\n" */
+/*? Text: "assign storage failed (cmd=0x%08x, response=0x%04x, rn=0x%04x)\n" */
+/*? Text: "configure PCI I/O adapter failed: cmd=0x%08x  response=0x%04x\n" */
+/*? Text: "request failed (status=0x%02x)\n" */
+/*? Text: "request failed with response code 0x%x\n" */
+
+/*?
+ * Text: "Memory hotplug state changed, suspend refused.\n"
+ * Severity: Error
+ * Description:
+ * Suspend is refused after a memory hotplug operation was performed.
+ * User action:
+ * The system needs to be restarted and no memory hotplug operation must be
+ * performed in order to allow suspend.
+ */
+
+/*?
+ * Text: "Standby memory at 0x%llx (%lluM of %lluM usable)\n"
+ * Severity: Informational
+ * Parameter:
+ * @1: start address of standby memory
+ * @2: usable memory in MB
+ * @3: total detected memory in MB
+ * Description:
+ * Standby memory was detected. It can be used for memory hotplug only
+ * if it is aligned to the Linux hotplug memory block size.
+ * If the aligned amount of memory matches the total amount,
+ * all detected standby memory can be used. Otherwise, some of the detected
+ * memory is unaligned and cannot be used.
+ * User action:
+ * None, if the usable and the total amount of detected standby memory match.
+ * If the amounts of memory do not match,
+ * check the memory setup of your guest virtual machine and ensure that
+ * the standby memory start and end
+ * address is aligned to the Linux hotplug memory block size.
+ * On Linux, issue "cat /sys/devices/system/memory/block_size_bytes"
+ * to find the hotplug memory block size value in hexadecimal notation.
+ * On z/VM, query your memory setup with "vmcp q v store".
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/sclp_config
+++ linux-ein-5.4.0/Documentation/kmsg/s390/sclp_config
@@ -0,0 +1,15 @@
+/*?
+ * Text: "CPU capability may have changed\n"
+ * Severity: Informational
+ * Description:
+ * The capability of the CPUs in the configuration may have been upgraded
+ * or downgraded. This message may also appear if the capability of the
+ * CPUs in the configuration did not change.
+ * For details see the STORE SYSTEM INFORMATION description in the
+ * "Principles of Operation."
+ * User action:
+ * The user can examine /proc/sysinfo for CPU capability values.
+ */
+/*? Text: "Open for Business request failed with response code 0x%04x\n" */
+/*? Text: "SCLP receiver did not register to receive Configuration Management Data Events.\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/sclp_cpi
+++ linux-ein-5.4.0/Documentation/kmsg/s390/sclp_cpi
@@ -0,0 +1,3 @@
+/*? Text: "request failed (status=0x%02x)\n" */
+/*? Text: "request failed with response code 0x%x\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/sclp_ocf
+++ linux-ein-5.4.0/Documentation/kmsg/s390/sclp_ocf
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/sclp_sdias
+++ linux-ein-5.4.0/Documentation/kmsg/s390/sclp_sdias
@@ -0,0 +1,4 @@
+/*? Text: "sclp_send failed for get_nr_blocks\n" */
+/*? Text: "SCLP error: %x\n" */
+/*? Text: "sclp_send failed: %x\n" */
+/*? Text: "Error from SCLP while copying hsa. Event status = %x\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/scm_block
+++ linux-ein-5.4.0/Documentation/kmsg/s390/scm_block
@@ -0,0 +1,51 @@
+/*?
+ * Text: "%lx: The capabilities of the SCM increment changed\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: start address of the SCM increment
+ * Description:
+ * A configuration change is in progress for the storage class memory (SCM)
+ * increment.
+ * User action:
+ * Verify that the capability of the SCM increment is as intended; for
+ * example, with lsscm.
+ */
+
+/*?
+ * Text: "An I/O operation to SCM failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * An error occurred during I/O to storage class memory (SCM). The operation
+ * was repeated, but the maximum number of retries was exceeded before the
+ * request could be fulfilled.
+ * User action:
+ * Contact your support organization.
+ */
+
+/*?
+ * Text: "%lx: Write access to the SCM increment is suspended\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: start address of the SCM increment
+ * Description:
+ * A concurrent firmware upgrade is in progress. For the duration of the
+ * upgrade, write access to the storage class memory (SCM) increment has been
+ * suspended.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%lx: Write access to the SCM increment is restored\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: start address of the SCM increment
+ * Description:
+ * Write access to the storage class memory (SCM) increment was restored
+ * after a temporary suspension during a concurrent firmware upgrade.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/setup
+++ linux-ein-5.4.0/Documentation/kmsg/s390/setup
@@ -0,0 +1,165 @@
+/*?
+ * Text: "The initial RAM disk does not fit into the memory\n"
+ * Severity: Error
+ * Description:
+ * The load address and the size of the initial RAM disk specify a memory
+ * area that is not available.
+ * User action:
+ * Lower the load address of the initial RAM disk, reduce the size of the
+ * initial RAM disk, or increase the size of the system memory to make the
+ * initial RAM disk fit into the memory.
+ */
+
+/*?
+ * Text: "The maximum memory size is %luMB\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: size in MB
+ * Description:
+ * The system memory size cannot exceed the amount of memory that is
+ * provided by the real or virtual hardware. It can be further reduced
+ * through an upper memory address limit that is specified with the
+ * mem= kernel parameter.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running as a z/VM guest operating system in 31-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 31-bit Linux kernel detected that it is running as a guest operating
+ * system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running natively in 31-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 31-bit Linux kernel detected that it is running on an IBM mainframe,
+ * either as the sole operating system in an LPAR or as the sole operating
+ * system on the entire mainframe. The Linux kernel is not running as a
+ * guest operating system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The hardware system has IEEE compatible floating point units\n"
+ * Severity: Informational
+ * Description:
+ * The Linux kernel detected that it is running on a hardware system with
+ * CPUs that have IEEE compatible floating point units.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The hardware system has no IEEE compatible floating point units\n"
+ * Severity: Informational
+ * Description:
+ * The Linux kernel detected that it is running on a hardware system with
+ * CPUs that do not have IEEE compatible floating point units.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running as a z/VM guest operating system in 64-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 64-bit Linux kernel detected that it is running as a guest operating
+ * system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running under KVM in 64-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 64-bit Linux kernel detected that it is running as a guest operating
+ * system of the KVM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Linux is running natively in 64-bit mode\n"
+ * Severity: Informational
+ * Description:
+ * The 64-bit Linux kernel detected that it is running on an IBM mainframe,
+ * either as the sole operating system in an LPAR or as the sole operating
+ * system on the entire mainframe. The Linux kernel is not running as a
+ * guest operating system of the z/VM hypervisor.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "Defining the Linux kernel NSS failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The Linux kernel could not define the named saved system (NSS) with
+ * the z/VM CP DEFSYS command. The return code represents the numeric
+ * portion of the CP DEFSYS error message.
+ * User action:
+ * For return code 1, the z/VM guest virtual machine is not authorized
+ * to define named saved systems.
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP DEFSYS command (typically privilege class E).
+ * For other return codes, see the help and message documentation for
+ * the CP DEFSYS command.
+ */
+
+/*?
+ * Text: "Saving the Linux kernel NSS failed with rc=%d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: return code
+ * Description:
+ * The Linux kernel could not save the named saved system (NSS) with
+ * the z/VM CP SAVESYS command. The return code represents the numeric
+ * portion of the CP SAVESYS error message.
+ * User action:
+ * For return code 1, the z/VM guest virtual machine is not authorized
+ * to save named saved systems.
+ * Ensure that the z/VM guest virtual machine is authorized to issue
+ * the CP SAVESYS command (typically privilege class E).
+ * For other return codes, see the help and message documentation for
+ * the CP SAVESYS command.
+ */
+
+/*?
+ * Text: "crashkernel reservation failed: %s\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: reason string
+ * Description:
+ * The memory reservation for the kdump "crashkernel" parameter was not
+ * successful. The Linux kernel was either not able to find a free memory
+ * area or an invalid area has been defined. The reason string describes the
+ * cause of the failure in more detail.
+ * User action:
+ * Increase the memory footprint of your virtual machine or adjust the values
+ * for the "crashkernel" kernel parameter. Then boot your Linux system again.
+ */
+
+/*?
+ * Text: "Reserving %lluMB of memory at %lluMB for crashkernel (System RAM: %luMB)\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: amount of reserved memory
+ *   @2: storage location of reserved memory
+ *   @3: amount of system RAM
+ * Description:
+ * The memory reservation for the kdump "crashkernel" parameter was successful
+ * and a kdump kernel can now be loaded with the kexec tool.
+ * User action:
+ * None.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/smsgiucv
+++ linux-ein-5.4.0/Documentation/kmsg/s390/smsgiucv
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/smsgiucv_app
+++ linux-ein-5.4.0/Documentation/kmsg/s390/smsgiucv_app
@@ -0,0 +1 @@
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/tape
+++ linux-ein-5.4.0/Documentation/kmsg/s390/tape
@@ -0,0 +1,63 @@
+/*?
+ * Text: "%s: A tape unit was detached while in use\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A tape unit has been detached from the I/O configuration while a tape
+ * was being accessed. This typically results in I/O error messages and
+ * potentially in damaged data on the tape.
+ * User action:
+ * Check the output of the application that accesses the tape device.
+ * If this problem occurred during a write-type operation, consider repeating
+ * the operation after bringing the tape device back online.
+ */
+
+/*?
+ * Text: "%s: A tape cartridge has been mounted\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A tape cartridge has been inserted into the tape unit. The tape in the
+ * tape unit is ready to be accessed.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The tape cartridge has been successfully unloaded\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape cartridge has been unloaded from the tape unit. Insert a tape
+ * cartridge before accessing the tape device.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "A cartridge is loaded in tape device %s, refusing to suspend\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A request to suspend a tape device currently loaded with a cartridge is
+ * rejected.
+ * User action:
+ * Unload the tape device. Then try to suspend the system again.
+ */
+
+/*?
+ * Text: "Tape device %s is busy, refusing to suspend\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A request to suspend a tape device being currently in use is rejected.
+ * User action:
+ * Terminate applications performing tape operations
+ * and then try to suspend the system again.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/tape_34xx
+++ linux-ein-5.4.0/Documentation/kmsg/s390/tape_34xx
@@ -0,0 +1,418 @@
+/*?
+ * Text: "%s: An unexpected condition %d occurred in tape error recovery\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: number
+ * Description:
+ * The control unit has reported an error condition that is not recognized by
+ * the error recovery process of the tape device driver.
+ * User action:
+ * Report this problem and the condition number from the message to your
+ * support organization.
+ */
+
+/*?
+ * Text: "%s: A data overrun occurred between the control unit and tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A data overrun error has occurred on the connection between the control
+ * unit and the tape unit. If this problem occurred during a write-type
+ * operation, the integrity of the data on the tape might be compromised.
+ * User action:
+ * Use a faster connection. If this problem occurred during a write-type
+ * operation, consider repositioning the tape and repeating the operation.
+ */
+
+/*?
+ * Text: "%s: The block ID sequence on the tape is incorrect\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The control unit has detected an incorrect block ID sequence on the tape.
+ * This problem typically indicates that the data on the tape is damaged.
+ * User action:
+ * If this problem occurred during a write-type operation reposition the tape
+ * and repeat the operation.
+ */
+
+/*?
+ * Text: "%s: A read error occurred that cannot be recovered\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A read error has occurred that cannot be recovered. The current tape might
+ * be damaged.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: A write error on the tape cannot be recovered\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A write error has occurred that could not be recovered by the automatic
+ * error recovery process.
+ * User action:
+ * Use a different tape cartridge.
+ */
+
+/*?
+ * Text: "%s: Writing the ID-mark failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The ID-mark at the beginning of tape could not be written. The tape medium
+ * might be write-protected.
+ * User action:
+ * Try a different tape cartridge. Ensure that the write-protection on the
+ * cartridge is switched off.
+ */
+
+/*?
+ * Text: "%s: Reading the tape beyond the end of the recorded area failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A read-type operation failed because it extended beyond the end of the
+ * recorded area on the tape medium.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The tape contains an incorrect block ID sequence\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The control unit has detected an incorrect block ID sequence on the tape.
+ * This problem typically indicates that the data on the tape is damaged.
+ * User action:
+ * If this problem occurred during a write-type operation reposition the tape
+ * and repeat the operation.
+ */
+
+/*?
+ * Text: "%s: A path equipment check occurred for the tape device\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A path equipment check has occurred. This check indicates problems with the
+ * connection between the mainframe system and the tape control unit.
+ * User action:
+ * Ensure that the cable connections between the mainframe system and the
+ * control unit are securely in place and not damaged.
+ */
+
+/*?
+ * Text: "%s: The tape unit cannot process the tape format\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * Either the tape unit is not able to read the format ID mark, or the
+ * specified format is not supported by the tape unit.
+ * User action:
+ * If you do not need the data recorded on the current tape, use a different
+ * tape or write a new format ID mark at the beginning of the tape. Be aware
+ * that writing a new ID mark leads to a loss of all data that has been
+ * recorded on the tape. If you need the data on the current tape, use a tape
+ * unit that supports the tape format.
+ */
+
+/*?
+ * Text: "%s: The tape medium is write-protected\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A write-type operation failed because the tape medium is write-protected.
+ * User action:
+ * Eject the tape cartridge, switch off the write protection on the cartridge,
+ * insert the cartridge, and try the operation again.
+ */
+
+/*?
+ * Text: "%s: The tape does not have the required tape tension\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape does not have the required tape tension.
+ * User action:
+ * Rewind and reposition the tape, then repeat the operation.
+ */
+
+/*?
+ * Text: "%s: The tape unit failed to load the cartridge\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An error has occurred while loading the tape cartridge.
+ * User action:
+ * Unload the cartridge and load it again.
+ */
+
+/*?
+ * Text: "%s: Automatic unloading of the tape cartridge failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit failed to unload the cartridge.
+ * User action:
+ * Unload the cartridge manually by using the eject button on the tape unit.
+ */
+
+/*?
+ * Text: "%s: An equipment check has occurred on the tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * Possible reasons for the check condition are a unit adapter error, a buffer
+ * error on the lower interface, an unusable internal path, or an error that
+ * has occurred while loading the cartridge.
+ * User action:
+ * Examine the tape unit and the cartridge loader. Consult the tape unit
+ * documentation for details.
+ */
+
+/*?
+ * Text: "%s: The tape information states an incorrect length\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape is shorter than stated at the beginning of the tape data. A
+ * possible reason for this problem is that the tape might have been physically
+ * truncated. Data written to the tape might be incomplete or damaged.
+ * User action:
+ * If this problem occurred during a write-type operation, consider repeating
+ * the operation with a different tape cartridge.
+ */
+
+/*?
+ * Text: "%s: The tape unit is not ready\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit is online but not ready.
+ * User action:
+ * Turn the ready switch on the tape unit to the ready position and try the
+ * operation again.
+ */
+
+/*?
+ * Text: "%s: The tape medium has been rewound or unloaded manually\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit rewind button, unload button, or both have been used to
+ * rewind or unload the tape cartridge. A tape cartridge other than the
+ * intended cartridge might have been inserted or the tape medium might not
+ * be at the expected position.
+ * User action:
+ * Verify that the correct tape cartridge has been inserted and that the tape
+ * medium is at the required position before continuing to work with the tape.
+ */
+
+/*?
+ * Text: "%s: The tape subsystem is running in degraded mode\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape subsystem is not operating at its maximum performance.
+ * User action:
+ * Contact your service representative for the tape unit and report this
+ * problem.
+ */
+
+/*?
+ * Text: "%s: The tape unit is already assigned\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit is already assigned to another channel path.
+ * User action:
+ * Free the tape unit from the operating system instance to which it is
+ * currently assigned then try again.
+ */
+
+/*?
+ * Text: "%s: The tape unit is not online\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit is not online to the tape device driver.
+ * User action:
+ * Ensure that the tape unit is operational and that the cable connections
+ * between the control unit and the tape unit are securely in place and not
+ * damaged.
+ */
+
+/*?
+ * Text: "%s: The control unit has fenced access to the tape volume\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The control unit fences further access to the current tape volume. The data
+ * integrity on the tape volume might have been compromised.
+ * User action:
+ * Rewind and unload the tape cartridge.
+ */
+
+/*?
+ * Text: "%s: A parity error occurred on the tape bus\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * A data parity check error occurred on the bus. Data that was read or written
+ * while the error occurred is not valid.
+ * User action:
+ * Reposition the tape and repeat the read-type or write-type operation.
+ */
+
+/*?
+ * Text: "%s: I/O error recovery failed on the tape control unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An I/O error occurred that cannot be recovered by the automatic error
+ * recovery process of the tape control unit. The application that operates
+ * the tape unit will receive a return value of -EIO which indicates an
+ * I/O error. The data on the tape might be damaged.
+ * User action:
+ * If this problem occurred during a write-type operation, consider
+ * repositioning the tape and repeating the operation.
+ */
+
+/*?
+ * Text: "%s: The tape unit requires a firmware update\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit requires firmware patches from the tape control unit but the
+ * required patches are not available on the control unit.
+ * User action:
+ * Make the require patches available on the control unit then reposition the
+ * tape and retry the operation. For details about obtaining and installing
+ * firmware updates see the control unit documentation.
+ */
+
+/*?
+ * Text: "%s: The maximum block size for buffered mode is exceeded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The block to be written is larger than allowed for the buffered mode.
+ * User action:
+ * Use a smaller block size.
+ */
+
+/*?
+ * Text: "%s: A channel interface error cannot be recovered\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An error has occurred on the channel interface. This error cannot
+ * be recovered by the control unit error recovery process.
+ * User action:
+ * See the documentation of the control unit.
+ */
+
+/*?
+ * Text: "%s: A channel protocol error occurred\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * An error was detected in the channel protocol.
+ * User action:
+ * Reposition the tape and try the operation again.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support the compaction algorithm\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit cannot read the current tape. The data on the tape has been
+ * compressed with an algorithm that is not supported by the tape unit.
+ * User action:
+ * Use a tape unit that supports the compaction algorithm used for the
+ * current tape.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support tape format 3480-2 XF\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit does not support tapes recorded in the 3480-2 XF format.
+ * User action:
+ * If you do not need the data recorded on the current tape, rewind the tape
+ * and overwrite it with a supported format. If you need the data on the
+ * current tape, use a tape unit that supports the tape format.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support format 3480 XF\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit does not support tapes recorded in the 3480 XF format.
+ * User action:
+ * If you do not need the data recorded on the current tape, rewind the tape
+ * and overwrite it with a supported format. If you need the data on the
+ * current tape, use a tape unit that supports the tape format.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support the current tape length\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The length of the tape in the cartridge is incompatible with the tape unit.
+ * User action:
+ * Either use a different tape unit or use a tape with a supported length.
+ */
+
+/*?
+ * Text: "%s: The tape unit does not support the tape length\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The length of the tape in the cartridge is incompatible with the tape
+ * unit.
+ * User action:
+ * Either use a different tape unit or use a tape with a supported length.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/tape_3590
+++ linux-ein-5.4.0/Documentation/kmsg/s390/tape_3590
@@ -0,0 +1,183 @@
+/*?
+ * Text: "%s: The tape medium must be loaded into a different tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape device has indicated an error condition that requires loading
+ * the tape cartridge into a different tape unit to recover.
+ * User action:
+ * Unload the cartridge and use a different tape unit to retry the operation.
+ */
+
+/*?
+ * Text: "%s: Tape media information: exception %s, service %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: exception
+ *   @3: service
+ * Description:
+ * This is an operating system independent tape medium information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: Device subsystem information: exception %s, service %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: exception
+ *   @3: required service action
+ * Description:
+ * This is an operating system independent device subsystem information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: I/O subsystem information: exception %s, service %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: exception
+ *   @3: required service action
+ * Description:
+ * This is an operating system independent I/O subsystem information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit has issued sense message %s\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: sense message code
+ * Description:
+ * The tape unit has issued an operating system independent sense message.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit has issued an unknown sense message code 0x%x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: code
+ * Description:
+ * The tape device driver has received an unknown sense message from the
+ * tape unit.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: MIM SEV=%i, MC=%02x, ES=%x/%x, RC=%02x-%04x-%02x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: SEV
+ *   @3: message code
+ *   @4: exception
+ *   @5: required service action
+ *   @6: refcode
+ *   @7: mid
+ *   @8: fid
+ * Description:
+ * This is an operating system independent information message that was
+ * issued by the tape unit. The information in the message is intended for
+ * the IBM customer engineer.
+ * User action:
+ * See to the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: IOSIM SEV=%i, DEVTYPE=3590/%02x, MC=%02x, ES=%x/%x, REF=0x%04x-0x%04x-0x%04x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: SEV
+ *   @3: model
+ *   @4: message code
+ *   @5: exception
+ *   @6: required service action
+ *   @7: refcode1
+ *   @8: refcode2
+ *   @9: refcode3
+ * Description:
+ * This is an operating system independent I/O subsystem information message
+ * that was issued by the tape unit. The information in the message is
+ * intended for the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: DEVSIM SEV=%i, DEVTYPE=3590/%02x, MC=%02x, ES=%x/%x, REF=0x%04x-0x%04x-0x%04x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: SEV
+ *   @3: model
+ *   @4: message code
+ *   @5: exception
+ *   @6: required service action
+ *   @7: refcode1
+ *   @8: refcode2
+ *   @9: refcode3
+ * Description:
+ * This is an operating system independent device subsystem information message
+ * issued by the tape unit. The information in the message is intended for
+ * the IBM customer engineer.
+ * User action:
+ * See the documentation for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit has issued an unknown sense message code %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ *   @2: code
+ * Description:
+ * The tape device has issued a sense message, that is unknown to the device
+ * driver.
+ * User action:
+ * Use the message code printed as hexadecimal value and see the documentation
+ * for the tape unit for further information.
+ */
+
+/*?
+ * Text: "%s: The tape unit failed to obtain the encryption key from EKM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * The tape unit was unable to retrieve the encryption key required to decode
+ * the data on the tape from the enterprise key manager (EKM).
+ * User action:
+ * See the EKM and tape unit documentation for information about how to enable
+ * the tape unit to retrieve the encryption key.
+ */
+
+/*?
+ * Text: "%s: A different host has privileged access to the tape unit\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the tape device
+ * Description:
+ * You cannot access the tape unit because a different operating system
+ * instance has privileged access to the unit.
+ * User action:
+ * Unload the current cartridge to solve this problem.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/time
+++ linux-ein-5.4.0/Documentation/kmsg/s390/time
@@ -0,0 +1,36 @@
+/*?
+ * Text: "The ETR interface has adjusted the clock by %li microseconds\n"
+ * Severity: Notice
+ * Parameter:
+ *   @1: number of microseconds
+ * Description:
+ * The external time reference (ETR) interface has synchronized the system
+ * clock  with the external reference and set it to a new value. The time
+ * difference between the old and new clock value has been passed to the
+ * network time protocol (NTP) as a single shot adjustment.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "The real or virtual hardware system does not provide an ETR interface\n"
+ * Severity: Warning
+ * Description:
+ * The 'etr=' parameter has been passed on the kernel parameter line for
+ * a Linux instance that does not have access to the external time reference
+ * (ETR) facility.
+ * User action:
+ * To avoid this warning remove the 'etr=' kernel parameter.
+ */
+
+/*?
+ * Text: "The real or virtual hardware system does not provide an STP interface\n"
+ * Severity: Warning
+ * Description:
+ * The 'stp=' parameter has been passed on the kernel parameter line for
+ * a Linux instance that does not have access to the server time protocol
+ * (STP) facility.
+ * User action:
+ * To avoid this warning remove the 'stp=' kernel parameter.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/vmlogrdr
+++ linux-ein-5.4.0/Documentation/kmsg/s390/vmlogrdr
@@ -0,0 +1,19 @@
+/*? Text: "vmlogrdr: failed to start recording automatically\n" */
+/*? Text: "vmlogrdr: connection severed with reason %i\n" */
+/*? Text: "vmlogrdr: iucv connection to %s failed with rc %i \n" */
+/*? Text: "vmlogrdr: failed to stop recording automatically\n" */
+/*? Text: "not running under VM, driver not loaded.\n" */
+
+/*?
+ * Text: "vmlogrdr: device %s is busy. Refuse to suspend.\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name
+ * Description:
+ * Suspending vmlogrdr devices that are in uses is not supported.
+ * A request to suspend such a device is refused.
+ * User action:
+ * Close all applications that use any of the vmlogrdr devices
+ * and then try to suspend the system again.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/vmur
+++ linux-ein-5.4.0/Documentation/kmsg/s390/vmur
@@ -0,0 +1,48 @@
+/*?
+ * Text: "The %s cannot be loaded without z/VM\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: z/VM virtual unit record device driver
+ * Description:
+ * The z/VM virtual unit record device driver provides Linux with access to
+ * z/VM virtual unit record devices like punch card readers, card punches, and
+ * line printers. On Linux instances that run in environments other than the
+ * z/VM hypervisor, the device driver does not provide any useful function and
+ * the corresponding vmur module cannot be loaded.
+ * User action:
+ * Load the vmur module only on Linux instances that run as guest operating
+ * systems of the z/VM hypervisor. If the z/VM virtual unit record device
+ * has been compiled into the kernel, ignore this message.
+ */
+
+/*?
+ * Text: "Kernel function alloc_chrdev_region failed with error code %d\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: error code according to errno definitions
+ * Description:
+ * The z/VM virtual unit record device driver (vmur) needs to register a range
+ * of character device minor numbers from 0x0000 to 0xffff.
+ * This registration failed, probably because of memory constraints.
+ * User action:
+ * Free some memory and reload the vmur module. If the z/VM virtual unit
+ * record device driver has been compiled into the kernel reboot Linux.
+ * Consider assigning more memory to your LPAR or z/VM guest virtual machine.
+ */
+
+/*?
+ * Text: "Unit record device %s is busy, %s refusing to suspend.\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the unit record device
+ *   @1: z/VM virtual unit record device driver
+ * Description:
+ * Linux cannot be suspended while a unit record device is in use.
+ * User action:
+ * Stop all applications that work on z/VM spool file queues, for example, the
+ * vmur tool. Then try again to suspend Linux.
+ */
+
+/*? Text: "%s loaded.\n" */
+/*? Text: "%s unloaded.\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/xpram
+++ linux-ein-5.4.0/Documentation/kmsg/s390/xpram
@@ -0,0 +1,74 @@
+/*?
+ * Text: "%d is not a valid number of XPRAM devices\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: number of partitions
+ * Description:
+ * The number of XPRAM partitions specified for the 'devs' module parameter
+ * or with the 'xpram.parts' kernel parameter must be an integer in the
+ * range 1 to 32. The XPRAM device driver created a maximum of 32 partitions
+ * that are probably not configured as intended.
+ * User action:
+ * If the XPRAM device driver has been compiled as a separate module,
+ * unload the module and load it again with a correct value for the 'devs'
+ * module parameter. If the XPRAM device driver has been compiled
+ * into the kernel, correct the 'xpram.parts' parameter in the kernel
+ * command line and restart Linux.
+ */
+
+/*?
+ * Text: "Not enough expanded memory available\n"
+ * Severity: Error
+ * Description:
+ * The amount of expanded memory required to set up your XPRAM partitions
+ * depends on the 'sizes' parameter specified for the xpram module or on
+ * the specifications for the 'xpram.parts' parameter if the XPRAM device
+ * driver has been compiled into the kernel. Your
+ * current specification exceed the amount of available expanded memory.
+ * Your XPRAM partitions are probably not configured as intended.
+ * User action:
+ * If the XPRAM device driver has been compiled as a separate module,
+ * unload the xpram module and load it again with an appropriate value
+ * for the 'sizes' module parameter. If the XPRAM device driver has been
+ * compiled into the kernel, adjust the 'xpram.parts' parameter in the
+ * kernel command line and restart Linux. If you need more than the
+ * available expanded memory, increase the expanded memory allocation for
+ * your virtual hardware or LPAR.
+ */
+
+/*?
+ * Text: "No expanded memory available\n"
+ * Severity: Error
+ * Description:
+ * The XPRAM device driver has been loaded in a Linux instance that runs
+ * in an LPAR or virtual hardware without expanded memory.
+ * No XPRAM partitions are created.
+ * User action:
+ * Allocate expanded memory for your LPAR or virtual hardware or do not
+ * load the xpram module. You can ignore this message, if you do not want
+ * to create XPRAM partitions.
+ */
+
+/*?
+ * Text: "Resuming the system failed: %s\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: cause of the failure
+ * Description:
+ * A system cannot be resumed if the expanded memory setup changes
+ * after hibernation. Possible reasons for the failure are:
+ * - Expanded memory was removed after hibernation.
+ * - Size of the expanded memory changed after hibernation.
+ * The system is stopped with a kernel panic.
+ * User action:
+ * Reboot Linux.
+ */
+
+/*? Text: "  number of devices (partitions): %d \n" */
+/*? Text: "  size of partition %d: %u kB\n" */
+/*? Text: "  size of partition %d to be set automatically\n" */
+/*? Text: "  memory needed (for sized partitions): %lu kB\n" */
+/*? Text: "  partitions to be sized automatically: %d\n" */
+/*? Text: "  automatically determined partition size: %lu kB\n" */
+/*? Text: "  %u pages expanded memory found (%lu KB).\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/zcrypt
+++ linux-ein-5.4.0/Documentation/kmsg/s390/zcrypt
@@ -0,0 +1,22 @@
+/*?
+ * Text: "Cryptographic device %02x.%04x failed and was set offline\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: AP device ID
+ *   @2: AP queue
+ * Description:
+ * A cryptographic device failed to process a cryptographic request.
+ * The cryptographic device driver could not correct the error and
+ * set the device offline. The application that issued the
+ * request received an indication that the request has failed.
+ * User action:
+ * Use the lszcrypt command to confirm that the cryptographic
+ * hardware is still configured to your LPAR or z/VM guest virtual
+ * machine. If the device is available to your Linux instance the
+ * command output contains a line that begins with 'card<device index>',
+ * where <device index> is the two-digit decimal number in the message text.
+ * After ensuring that the device is available, use the chzcrypt command to
+ * set it online again.
+ * If the error persists, contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/zdump
+++ linux-ein-5.4.0/Documentation/kmsg/s390/zdump
@@ -0,0 +1,27 @@
+/*?
+ * Text: "The 32-bit dump tool cannot be used for a 64-bit system\n"
+ * Severity: Alert
+ * Description:
+ * The dump process ends without creating a system dump.
+ * User action:
+ * Use a 64-bit dump tool to obtain a system dump for 64-bit Linux instance.
+ */
+/*?
+ * Text: "The 64-bit dump tool cannot be used for a 32-bit system\n"
+ * Severity: Alert
+ * Description:
+ * The dump process ends without creating a system dump.
+ * User action:
+ * Use a 32-bit dump tool to obtain a system dump for 32-bit Linux instance.
+ */
+/*?
+ * Text: "The dump process started for a 64-bit operating system\n"
+ * Severity: Alert
+ * Description:
+ * The SCSI dump process started to create a dump for a 64-bit operating
+ * system instance.
+ * User action:
+ * None.
+ */
+/*? Text: "0x%x is an unknown architecture.\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/zfcp
+++ linux-ein-5.4.0/Documentation/kmsg/s390/zfcp
@@ -0,0 +1,709 @@
+/*?
+ * Text: "%s is not a valid SCSI device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device specification
+ * Description:
+ * The specification for an initial SCSI device provided with the 'zfcp.device'
+ * kernel parameter or with the 'device' module parameter is syntactically
+ * incorrect. The specified SCSI device could not be attached to the Linux
+ * system.
+ * User action:
+ * Correct the value for the 'zfcp.device' or 'device' parameter and reboot
+ * Linux. See "Device Drivers, Features, and Commands" for information about
+ * the syntax.
+ */
+
+/*?
+ * Text: "The zfcp device driver could not register with the common I/O layer\n"
+ * Severity: Error
+ * Description:
+ * The device driver initialization failed. A possible cause of this problem is
+ * memory constraints.
+ * User action:
+ * Free some memory and try again to load the zfcp device driver. If the zfcp
+ * device driver has been compiled into the kernel, reboot Linux. Consider
+ * assigning more memory to your LPAR or z/VM guest virtual machine. If the
+ * problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up data structures for the FCP adapter failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The zfcp device driver could not allocate data structures for an FCP adapter.
+ * A possible reason for this problem is memory constraints.
+ * User action:
+ * Set the FCP adapter offline or detach it from the Linux system, free some
+ * memory and set the FCP adapter online again or attach it again. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The FCP device is operational again\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * An FCP device has been unavailable because it had been detached from the
+ * Linux system or because the corresponding CHPID was offline. The FCP device
+ * is now available again and the zfcp device driver resumes all operations to
+ * the FCP device.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The CHPID for the FCP device is offline\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The CHPID for an FCP device has been set offline, either logically in Linux
+ * or on the hardware.
+ * User action:
+ * Find out which CHPID corresponds to the FCP device, for example, with the
+ * lscss command. Check if the CHPID has been set logically offline in sysfs.
+ * Write 'on' to the CHPID's status attribute to set it online. If the CHPID is
+ * online in sysfs, find out if it has been varied offline through a hardware
+ * management interface, for example the service element (SE).
+ */
+
+/*?
+ * Text: "%s: The FCP device has been detached\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * An FCP device is no longer available to Linux.
+ * User action:
+ * Ensure that the FCP adapter is operational and attached to the LPAR or z/VM
+ * virtual machine.
+ */
+
+/*?
+ * Text: "%s: The FCP device did not respond within the specified time\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The common I/O layer waited for a response from the FCP adapter but
+ * no response was received within the specified time limit. This might
+ * indicate a hardware problem.
+ * User action:
+ * Consult your hardware administrator. If this problem persists,
+ * gather Linux debug data, collect the FCP adapter hardware logs, and
+ * report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Registering the FCP device with the SCSI stack failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter could not be registered with the Linux SCSI
+ * stack. A possible reason for this problem is memory constraints.
+ * User action:
+ * Set the FCP adapter offline or detach it from the Linux system, free some
+ * memory and set the FCP adapter online again or attach it again. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: ERP cannot recover an error on the FCP device\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * An error occurred on an FCP device. The error recovery procedure (ERP)
+ * could not resolve the error. The FCP device driver cannot use the FCP device.
+ * User action:
+ * Check for previous error messages for the same FCP device to find the
+ * cause of the problem.
+ */
+
+/*?
+ * Text: "%s: Creating an ERP thread for the FCP device failed.\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The zfcp device driver could not set up error recovery procedure (ERP)
+ * processing for the FCP device. The FCP device is not available for use
+ * in Linux.
+ * User action:
+ * Free some memory and try again to load the zfcp device driver. If the zfcp
+ * device driver has been compiled into the kernel, reboot Linux. Consider
+ * assigning more memory to your LPAR or z/VM guest virtual machine. If the
+ * problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: ERP failed for LUN 0x%016Lx on port 0x%016Lx\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: LUN
+ *   @3: WWPN
+ * Description:
+ * An error occurred on the SCSI device at the specified LUN. The error recovery
+ * procedure (ERP) could not resolve the error. The SCSI device is not
+ * available.
+ * User action:
+ * Verify that the LUN is correct. Check the fibre channel fabric for errors
+ * related to the specified WWPN and LUN, the storage server, and Linux.
+ */
+
+/*?
+ * Text: "%s: ERP failed for remote port 0x%016Lx\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: WWPN
+ * Description:
+ * An error occurred on a remote port. The error recovery procedure (ERP)
+ * could not resolve the error. The port is not available.
+ * User action:
+ * Verify that the WWPN is correct and check the fibre channel fabric for
+ * errors related to the WWPN.
+ */
+
+/*?
+ * Text: "%s: Registering port 0x%016Lx failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: WWPN
+ * Description:
+ * The Linux kernel could not allocate enough memory to register the
+ * remote port with the indicated WWPN with the SCSI stack. The remote
+ * port is not available.
+ * User action:
+ * Free some memory and trigger the rescan for ports.
+ */
+
+/*?
+ * Text: "%s: A QDIO problem occurred\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * QDIO reported a problem to the zfcp device driver. The zfcp device driver
+ * tries to recover this problem.
+ * User action:
+ * Check for related error messages. If this problem occurs frequently, gather
+ * Linux debug data and contact your support organization.
+ */
+
+/*?
+ * Text: "%s: Setting up the QDIO connection to the FCP adapter failed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The zfcp device driver failed to establish a QDIO connection with the FCP
+ * adapter.
+ * User action:
+ * Set the FCP adapter offline or detach it from the Linux system, free some
+ * memory and set the FCP adapter online again or attach it again. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter reported a problem that cannot be recovered\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter has a problem that cannot be recovered by the zfcp device
+ * driver. The zfcp device driver stopped using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: There is a wrap plug instead of a fibre channel cable\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter is not physically connected to the fibre channel fabric.
+ * User action:
+ * Remove the wrap plug from the FCP adapter and connect the adapter with the
+ * fibre channel fabric.
+ */
+
+/*?
+ * Text: "%s: FCP device not operational because of an unsupported FC class\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter hardware does not support the fibre channel service class
+ * requested by the zfcp device driver. This problem indicates a program error
+ * in the zfcp device driver.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: 0x%Lx is an ambiguous request identifier\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: request ID
+ * Description:
+ * The FCP adapter reported that it received the same request ID twice. This is
+ * an error. The zfcp device driver stopped using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: QTCB version 0x%x not supported by FCP adapter (0x%x to 0x%x)\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: requested version
+ *   @3: lowest supported version
+ *   @4: highest supported version
+ * Description:
+ * See message text.
+ * The queue transfer control block (QTCB) version requested by the zfcp device
+ * driver is not supported by the FCP adapter hardware.
+ * User action:
+ * If the requested version is higher than the highest version supported by the
+ * hardware, install more recent firmware on the FCP adapter. If the requested
+ * version is lower then the lowest version supported by the hardware, upgrade
+ * to a Linux level with a more recent zfcp device driver.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter could not log in to the fibre channel fabric\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The fibre channel switch rejected the login request from the FCP adapter.
+ * User action:
+ * Check the fibre channel fabric or switch logs for possible errors.
+ */
+
+/*?
+ * Text: "%s: The FCP device is suspended because of a firmware update\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP device is not available while a firmware update is in progress. This
+ * problem is temporary. The FCP device will resume operations when the
+ * firmware update is completed.
+ * User action:
+ * Wait 10 seconds and try the operation again.
+ */
+
+/*?
+ * Text: "%s: All NPIV ports on the FCP adapter have been assigned\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The number of N_Port ID Virtualization (NPIV) ports that can be assigned
+ * on an FCP adapter is limited. Once assigned, NPIV ports are not released
+ * automatically but have to be released explicitly through the support
+ * element (SE).
+ * User action:
+ * Identify NPIV ports that have been assigned but are no longer in use and
+ * release them from the SE.
+ */
+
+/*?
+ * Text: "%s: The link between the FCP adapter and the FC fabric is down\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter is not usable. Specific error information is not available.
+ * User action:
+ * Check the cabling and the fibre channel fabric configuration. If this
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The QTCB type is not supported by the FCP adapter\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The queue transfer control block (QTCB) type requested by the zfcp device
+ * driver is not supported by the FCP adapter hardware.
+ * User action:
+ * Install the latest firmware on your FCP adapter hardware. If this does not
+ * resolve the problem, upgrade to a Linux level with a more recent zfcp device
+ * driver. If the problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: The error threshold for checksum statistics has been exceeded\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter has reported a large number of bit errors. This might
+ * indicate a problem with the physical components of the fibre channel fabric.
+ * Details about the errors have been written to the HBA trace for the FCP
+ * adapter.
+ * User action:
+ * Check for problems in the fibre channel fabric and ensure that all cables
+ * are properly plugged.
+ */
+
+/*?
+ * Text: "%s: The local link has been restored\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * A problem with the connection between the FCP adapter and the adjacent node
+ * on the fibre channel fabric has been resolved. The FCP adapter is now
+ * available again.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: The mode table on the FCP adapter has been damaged\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * This is an FCP adapter hardware problem.
+ * User action:
+ * Report this problem with FCP hardware logs to IBM support.
+ */
+
+/*?
+ * Text: "%s: The adjacent fibre channel node does not support FCP\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The fibre channel switch or storage system that is connected to the FCP
+ * channel does not support the fibre channel protocol (FCP). The zfcp
+ * device driver stopped using the FCP device.
+ * User action:
+ * Check the adjacent fibre channel node.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter does not recognize the command 0x%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: command
+ * Description:
+ * A command code that was sent from the zfcp device driver to the FCP adapter
+ * is not valid. The zfcp device driver stopped using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: There is no light signal from the local fibre channel cable\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * There is no signal on the fibre channel cable that connects the FCP adapter
+ * to the fibre channel fabric.
+ * User action:
+ * Ensure that the cable is in place and connected properly to the FCP adapter
+ * and to the adjacent fibre channel switch or storage system.
+ */
+
+/*?
+ * Text: "%s: The WWPN assignment file on the FCP adapter has been damaged\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * This is an FCP adapter hardware problem.
+ * User action:
+ * Report this problem with FCP hardware logs to IBM support.
+ */
+
+/*?
+ * Text: "%s: The FCP device detected a WWPN that is duplicate or not valid\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * This condition indicates an error in the FCP adapter hardware or in the z/VM
+ * hypervisor.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to IBM support.
+ */
+
+/*?
+ * Text: "%s: The fibre channel fabric does not support NPIV\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP adapter requires N_Port ID Virtualization (NPIV) from the adjacent
+ * fibre channel node. Either the FCP adapter is connected to a fibre channel
+ * switch that does not support NPIV or the FCP adapter tries to use NPIV in a
+ * point-to-point setup. The connection is not operational.
+ * User action:
+ * Verify that NPIV is correctly used for this connection. Check the FCP adapter
+ * configuration and the fibre channel switch configuration. If necessary,
+ * update the fibre channel switch firmware.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter cannot support more NPIV ports\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * N_Port ID Virtualization (NPIV) ports consume physical resources on the FCP
+ * adapter. The FCP adapter resources are exhausted. The connection is not
+ * operational.
+ * User action:
+ * Analyze the number of available NPIV ports and which operating system
+ * instances use them. If necessary, reconfigure your setup to move some
+ * NPIV ports to an FCP adapter with free resources.
+ */
+
+/*?
+ * Text: "%s: The adjacent switch cannot support more NPIV ports\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * N_Port ID Virtualization (NPIV) ports consume physical resources. The
+ * resources of the fibre channel switch that is connected to the FCP adapter
+ * are exhausted. The connection is not operational.
+ * User action:
+ * Analyze the number of available NPIV ports on the adjacent fibre channel
+ * switch and how they are used. If necessary, reconfigure your fibre channel
+ * fabric to accommodate the required NPIV ports.
+ */
+
+/*?
+ * Text: "%s: 0x%x is not a valid transfer protocol status\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: status information
+ * Description:
+ * The transfer protocol status information reported by the FCP adapter is not
+ * a valid status for the zfcp device driver. The zfcp device driver stopped
+ * using the FCP device.
+ * User action:
+ * Gather Linux debug data, collect the FCP adapter hardware logs, and report
+ * this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Unknown or unsupported arbitrated loop fibre channel topology detected\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The FCP device is connected to a fibre channel arbitrated loop or the FCP adapter
+ * reported an unknown fibre channel topology. The zfcp device driver supports
+ * point-to-point connections and switched fibre channel fabrics but not arbitrated
+ * loop topologies. The FCP device cannot be used.
+ * User action:
+ * Check the fibre channel setup and ensure that only supported topologies are
+ * connected to the FCP adapter.
+ */
+
+/*?
+ * Text: "%s: FCP adapter maximum QTCB size (%d bytes) is too small\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: maximum supported size
+ *   @3: requested QTCB size
+ * Description:
+ * The queue transfer control block (QTCB) size requested by the zfcp
+ * device driver is not supported by the FCP adapter hardware.
+ * User action:
+ * Update the firmware on your FCP adapter hardware to the latest
+ * available level and update the Linux kernel to the latest supported
+ * level. If the problem persists, contact your support organization.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter only supports newer control block versions\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The protocol supported by the FCP adapter is not compatible with the zfcp
+ * device driver.
+ * User action:
+ * Upgrade your Linux kernel to a level that includes a zfcp device driver
+ * with support for the control block version required by your FCP adapter.
+ */
+
+/*?
+ * Text: "%s: The FCP adapter only supports older control block versions\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ * Description:
+ * The protocol supported by the FCP adapter is not compatible with the zfcp
+ * device driver.
+ * User action:
+ * Install the latest firmware on your FCP adapter.
+ */
+
+/*?
+ * Text: "%s: Not enough FCP adapter resources to open remote port 0x%016Lx\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: WWPN
+ * Description:
+ * Each port that is opened consumes physical resources of the FCP adapter to
+ * which it is attached. These resources are exhausted and the specified port
+ * cannot be opened.
+ * User action:
+ * Reduce the total number of remote ports that are attached to the
+ * FCP adapter.
+ */
+
+/*?
+ * Text: "%s: LUN 0x%Lx on port 0x%Lx is already in use by CSS%d, MIF Image ID %x\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: LUN
+ *   @3: remote port WWPN
+ *   @4: channel subsystem ID
+ *   @5: MIF Image ID of the LPAR
+ * Description:
+ * The SCSI device at the indicated LUN is already in use by another system.
+ * Only one system at a time can use the SCSI device.
+ * User action:
+ * Ensure that the other system stops using the device before trying to use it.
+ */
+
+/*?
+ * Text: "%s: No handle is available for LUN 0x%016Lx on port 0x%016Lx\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: LUN
+ *   @3: WWPN
+ * Description:
+ * The FCP adapter can only open a limited number of SCSI devices. This limit
+ * has been reached and the SCSI device at the indicated LUN cannot be opened.
+ * User action:
+ * For FCP subchannels running in non-NPIV mode, check all SCSI
+ * devices opened through the FCP adapter and close some of them.  For
+ * FCP subchannels running in NPIV mode, verify the SAN zoning and
+ * host connections on the storage systems. Ensure that the zoning and
+ * host connections only allow access to the required LUNs. As a
+ * workaround, disable the automatic LUN scanning by setting the
+ * zfcp.allow_lun_scan kernel parameter or the allow_lun_scan module
+ * parameter to 0.
+ */
+
+/*?
+ * Text: "%s: Incorrect direction %d, LUN 0x%016Lx on port 0x%016Lx closed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: value in direction field
+ *   @3: LUN
+ *   @4: WWPN
+ * Description:
+ * The direction field in a SCSI request contains an incorrect value. The zfcp
+ * device driver closed down the SCSI device at the indicated LUN.
+ * User action:
+ * Gather Linux debug data and report this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Incorrect CDB length %d, LUN 0x%016Lx on port 0x%016Lx closed\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: value in length field
+ *   @3: LUN
+ *   @4: WWPN
+ * Description:
+ * The control-data-block (CDB) length field in a SCSI request is not valid or
+ * too large for the FCP adapter. The zfcp device driver closed down the SCSI
+ * device at the indicated LUN.
+ * User action:
+ * Gather Linux debug data and report this problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: Opening WKA port 0x%x failed\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: destination ID of the WKA port
+ * Description:
+ * The FCP adapter rejected a request to open the specified
+ * well-known address (WKA) port. No retry is possible.
+ * User action:
+ * Verify the setup and check if the maximum number of remote ports
+ * used through this adapter is below the maximum allowed. If the
+ * problem persists, gather Linux debug data, collect the FCP adapter
+ * hardware logs, and report the problem to your support organization.
+ */
+
+/*?
+ * Text: "%s: The name server reported %d words residual data\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: number of words in residual data
+ * Description:
+ * The fibre channel name server sent too much information about remote ports.
+ * The zfcp device driver did not receive sufficient information to attach all
+ * available remote ports in the SAN.
+ * User action:
+ * Verify that you are running the latest firmware level on the FCP
+ * adapter. Check your SAN setup and consider reducing the number of ports
+ * visible to the FCP adapter by using more restrictive zoning in the SAN.
+ */
+
+/*?
+ * Text: "%s: A port opened with WWPN 0x%016Lx returned data that identifies it as WWPN 0x%016Lx\n"
+ * Severity: Warning
+ * Parameter:
+ *   @1: bus ID of the zfcp device
+ *   @2: expected WWPN
+ *   @3: reported WWPN
+ * Description:
+ * A remote port was opened successfully, but it reported an
+ * unexpected WWPN in the returned port login (PLOGI) data. This
+ * condition might have been caused by a change applied to the SAN
+ * configuration while the port was being opened.
+ * User action:
+ * If this condition is only temporary and access to the remote port
+ * is possible, no action is required. If the condition persists,
+ * identify the storage system with the specified WWPN and contact the
+ * support organization of the storage system.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/s390/zpci
+++ linux-ein-5.4.0/Documentation/kmsg/s390/zpci
@@ -0,0 +1,42 @@
+/*?
+ * Text: "%s: Event 0x%x reconfigured PCI function 0x%x\n"
+ * Severity: Informational
+ * Parameter:
+ *   @1: device name of the function
+ *   @2: PCI event code
+ *   @3: function ID
+ * Description:
+ * The availability of a PCI function has changed.
+ * Possible reasons for the change include PCI configuration actions on the
+ * Hardware Management Console or hypervisor.
+ * For shared PCI functions, the function might also have been reserved or
+ * released by another system.
+ * If the device name of a function is shown as 'n/a', the device registration
+ * with the PCI device driver has not completed.
+ * The function ID identifies the function to the I/O configuration (IOCDS).
+ * The PCI event code can be useful diagnostic information for your support
+ * organization.
+ * User action:
+ * None.
+ */
+
+/*?
+ * Text: "%s: Event 0x%x reports an error for PCI function 0x%x\n"
+ * Severity: Error
+ * Parameter:
+ *   @1: device name of the function
+ *   @2: PCI event code
+ *   @3: function ID
+ * Description:
+ * A PCI function entered an error state from which it cannot recover
+ * automatically.
+ * User action:
+ * Trigger a recovery action by writing '1' to the 'recover' sysfs attribute
+ * of the PCI function.
+ * In sysfs, PCI functions are represented as /sys/bus/pci/devices/<name>,
+ * where <name> is the device name of the function.
+ * If the device name of a function is shown as 'n/a', the device
+ * registration with the PCI device driver has not completed.
+ * If the problem persists, contact your support organization.
+ */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
--- linux-ein-5.4.0.orig/Documentation/kmsg/sbp_target
+++ linux-ein-5.4.0/Documentation/kmsg/sbp_target
@@ -0,0 +1,49 @@
+/*? Text: "ABORT TASK SET not implemented\n" */
+/*? Text: "ABORT TASK not implemented\n" */
+/*? Text: "Cannot change the directory_id on an active target.\n" */
+/*? Text: "Cannot enable a target with no LUNs!\n" */
+/*? Text: "Could not update Config ROM\n" */
+/*? Text: "Ignoring ORB_POINTER write while active.\n" */
+/*? Text: "LOGICAL UNIT RESET not implemented\n" */
+/*? Text: "Node ACL not found for %s\n" */
+/*? Text: "Only one TPG per Unit is possible.\n" */
+/*? Text: "QUERY LOGINS not implemented\n" */
+/*? Text: "Reconnect timer expired for node: %016llx\n" */
+/*? Text: "SET PASSWORD not implemented\n" */
+/*? Text: "TARGET RESET not implemented\n" */
+/*? Text: "Unable to allocate struct sbp_nacl\n" */
+/*? Text: "Unable to allocate struct sbp_tpg\n" */
+/*? Text: "Unable to allocate struct sbp_tport\n" */
+/*? Text: "Waiting for reconnect from node: %016llx\n" */
+/*? Text: "cannot find login: %d\n" */
+/*? Text: "failed to allocate login descriptor\n" */
+/*? Text: "failed to allocate login response block\n" */
+/*? Text: "failed to allocate session descriptor\n" */
+/*? Text: "failed to init se_session\n" */
+/*? Text: "failed to map command block handler: %d\n" */
+/*? Text: "failed to read peer GUID: %d\n" */
+/*? Text: "ignoring management request while busy\n" */
+/*? Text: "ignoring request from foreign node (%x != %x)\n" */
+/*? Text: "ignoring request with wrong generation\n" */
+/*? Text: "initiator already logged-in\n" */
+/*? Text: "login to unknown LUN: %d\n" */
+/*? Text: "logout from different node ID\n" */
+/*? Text: "max number of logins reached\n" */
+/*? Text: "mgt_agent LOGIN to LUN %d from %016llx\n" */
+/*? Text: "mgt_agent LOGOUT from LUN %d session %d\n" */
+/*? Text: "mgt_agent RECONNECT from %016llx\n" */
+/*? Text: "mgt_agent RECONNECT login GUID doesn't match\n" */
+/*? Text: "mgt_agent RECONNECT unknown login ID\n" */
+/*? Text: "mgt_orb bad request\n" */
+/*? Text: "netif_stop_queue() cannot be called before register_netdev()\n" */
+/*? Text: "refusing exclusive login with other active logins\n" */
+/*? Text: "refusing login while another exclusive login present\n" */
+/*? Text: "sbp_run_transaction: page size ignored\n" */
+/*? Text: "sbp_send_sense: unknown sense format: 0x%x\n" */
+/*? Text: "target_fabric_configfs_init() failed\n" */
+/*? Text: "target_fabric_configfs_register() failed for SBP\n" */
+/*? Text: "unknown management function 0x%x\n" */
+/*? Text: "unlink LUN: failed to update unit directory\n" */
+/*? Text: "flen=%u proglen=%u pass=%u image=%pK from=%s pid=%d\n" */
+/*? Text: "%s selects TX queue %d, but real number of TX queues is %d\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
\ No newline at end of file
--- linux-ein-5.4.0.orig/Documentation/kmsg/zram
+++ linux-ein-5.4.0/Documentation/kmsg/zram
@@ -0,0 +1,34 @@
+/*? Text: "Error allocating compressor buffer space\n" */
+/*? Text: "Error allocating memory for compressed page: %u, size=%zu\n" */
+/*? Text: "Error creating memory pool\n" */
+/*? Text: "num_devices not specified. Using default: 1\n" */
+/*? Text: "Error allocating compressor working memory!\n" */
+/*? Text: "Error allocating zram address table\n" */
+/*? Text: "Unable to get major number\n" */
+/*? Text: "Compression failed! err=%d\n" */
+/*? Text: "Decompression failed! err=%d, page=%u\n" */
+/*? Text: "There is little point creating a zram of greater than twice the size of memory since we expect a 2:1 compression ratio. Note that zram uses about 0.1%% of the size of the disk when not in use so a huge zram is wasteful.\n\tMemory Size: %zu kB\n\tSize you selected: %llu kB\nContinuing anyway ...\n" */
+/*? Text: "disk size not provided. You can use disksize_kb module param to specify size.\nUsing default: (%u%% of RAM).\n" */
+/*? Text: "Error creating sysfs group" */
+/*? Text: "Error allocating memory for incompressible page: %u\n" */
+/*? Text: "Creating %u devices ...\n" */
+/*? Text: "Initialization failed: err=%d\n" */
+/*? Text: "Error allocating disk queue for device %d\n" */
+/*? Text: "Error allocating disk structure for device %d\n" */
+/*? Text: "Invalid value for num_devices: %u\n" */
+/*? Text: "Error allocating temp memory!\n" */
+/*? Text: "Unable to allocate temp memory\n" */
+/*? Text: "Created %u device(s) ...\n" */
+/*? Text: "There is little point creating a zram of greater than twice the size of memory since we expect a 2:1 compression ratio. Note that zram uses about 0.1%% of the size of the disk when not in use so a huge zram is wasteful.\n\tMemory Size: %lu kB\n\tSize you selected: %llu kB\nContinuing anyway ...\n" */
+/*? Text: "Cannot change disksize for initialized device\n" */
+/*? Text: "Can't change algorithm for initialized device\n" */
+/*? Text: "Cannot initialise %s compressing backend\n" */
+/*? Text: "Cannot change max compression streams\n" */
+/*? Text: "Destroyed %u device(s)\n" */
+/*? Text: "Created %u device(s)\n" */
+/*? Text: "Unable to register zram-control class\n" */
+/*? Text: "Removed device: %s\n" */
+/*? Text: "Added device: %s\n" */
+/*? Text: "Error creating sysfs group for device %d\n" */
+/*? Text: "Error allocating memory for compressed page: %u, size=%u\n" */
+/*? Text: "%s: %d output lines suppressed due to ratelimiting\n" */
\ No newline at end of file
--- linux-ein-5.4.0.orig/Documentation/lzo.txt
+++ linux-ein-5.4.0/Documentation/lzo.txt
@@ -159,11 +159,15 @@
            distance = 16384 + (H << 14) + D
            state = S (copy S literals after this block)
            End of stream is reached if distance == 16384
+           In version 1 only, to prevent ambiguity with the RLE case when
+           ((distance & 0x803f) == 0x803f) && (261 <= length <= 264), the
+           compressor must not emit block copies where distance and length
+           meet these conditions.
 
         In version 1 only, this instruction is also used to encode a run of
-        zeros if distance = 0xbfff, i.e. H = 1 and the D bits are all 1.
+           zeros if distance = 0xbfff, i.e. H = 1 and the D bits are all 1.
            In this case, it is followed by a fourth byte, X.
-           run length = ((X << 3) | (0 0 0 0 0 L L L)) + 4.
+           run length = ((X << 3) | (0 0 0 0 0 L L L)) + 4
 
       0 0 1 L L L L L  (32..63)
            Copy of small block within 16kB distance (preferably less than 34B)
--- linux-ein-5.4.0.orig/Documentation/media/uapi/v4l/colorspaces-defs.rst
+++ linux-ein-5.4.0/Documentation/media/uapi/v4l/colorspaces-defs.rst
@@ -36,8 +36,7 @@
 :c:type:`v4l2_hsv_encoding` specifies which encoding is used.
 
 .. note:: The default R'G'B' quantization is full range for all
-   colorspaces except for BT.2020 which uses limited range R'G'B'
-   quantization.
+   colorspaces. HSV formats are always full range.
 
 .. tabularcolumns:: |p{6.7cm}|p{10.8cm}|
 
@@ -169,8 +168,8 @@
       - Details
     * - ``V4L2_QUANTIZATION_DEFAULT``
       - Use the default quantization encoding as defined by the
-	colorspace. This is always full range for R'G'B' (except for the
-	BT.2020 colorspace) and HSV. It is usually limited range for Y'CbCr.
+	colorspace. This is always full range for R'G'B' and HSV.
+	It is usually limited range for Y'CbCr.
     * - ``V4L2_QUANTIZATION_FULL_RANGE``
       - Use the full range quantization encoding. I.e. the range [0…1] is
 	mapped to [0…255] (with possible clipping to [1…254] to avoid the
@@ -180,4 +179,4 @@
     * - ``V4L2_QUANTIZATION_LIM_RANGE``
       - Use the limited range quantization encoding. I.e. the range [0…1]
 	is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
-	[16…240].
+	[16…240]. Limited Range cannot be used with HSV.
--- linux-ein-5.4.0.orig/Documentation/media/uapi/v4l/colorspaces-details.rst
+++ linux-ein-5.4.0/Documentation/media/uapi/v4l/colorspaces-details.rst
@@ -377,9 +377,8 @@
 The :ref:`itu2020` standard defines the colorspace used by Ultra-high
 definition television (UHDTV). The default transfer function is
 ``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is
-``V4L2_YCBCR_ENC_BT2020``. The default R'G'B' quantization is limited
-range (!), and so is the default Y'CbCr quantization. The chromaticities
-of the primary colors and the white reference are:
+``V4L2_YCBCR_ENC_BT2020``. The default Y'CbCr quantization is limited range.
+The chromaticities of the primary colors and the white reference are:
 
 
 
--- linux-ein-5.4.0.orig/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst
+++ linux-ein-5.4.0/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst
@@ -17,7 +17,8 @@
 ===========
 
 Similar to the packed RGB formats these formats store the Y, Cb and Cr
-component of each pixel in one 16 or 32 bit word.
+component of each pixel next to each other in memory. They occupy 16, 24 or 32
+bits per pixel.
 
 
 .. raw:: latex
@@ -154,9 +155,40 @@
       - Cb\ :sub:`5`
       - Cb\ :sub:`4`
       - Cb\ :sub:`3`
-
       -  :cspan:`15`
+      -
+    * .. _V4L2-PIX-FMT-YUV24:
+
+      - ``V4L2_PIX_FMT_YUV24``
+      - 'YUV3'
+
+      - Y'\ :sub:`7`
+      - Y'\ :sub:`6`
+      - Y'\ :sub:`5`
+      - Y'\ :sub:`4`
+      - Y'\ :sub:`3`
+      - Y'\ :sub:`2`
+      - Y'\ :sub:`1`
+      - Y'\ :sub:`0`
+
+      - Cb\ :sub:`7`
+      - Cb\ :sub:`6`
+      - Cb\ :sub:`5`
+      - Cb\ :sub:`4`
+      - Cb\ :sub:`3`
+      - Cb\ :sub:`2`
+      - Cb\ :sub:`1`
+      - Cb\ :sub:`0`
 
+      - Cr\ :sub:`7`
+      - Cr\ :sub:`6`
+      - Cr\ :sub:`5`
+      - Cr\ :sub:`4`
+      - Cr\ :sub:`3`
+      - Cr\ :sub:`2`
+      - Cr\ :sub:`1`
+      - Cr\ :sub:`0`
+      -
     * .. _V4L2-PIX-FMT-YUV32:
 
       - ``V4L2_PIX_FMT_YUV32``
--- linux-ein-5.4.0.orig/Documentation/media/uapi/v4l/subdev-formats.rst
+++ linux-ein-5.4.0/Documentation/media/uapi/v4l/subdev-formats.rst
@@ -7794,3 +7794,30 @@
       - 0x5001
       - Interleaved raw UYVY and JPEG image format with embedded meta-data
 	used by Samsung S3C73MX camera sensors.
+
+.. _v4l2-mbus-metadata-fmts:
+
+Metadata Formats
+^^^^^^^^^^^^^^^^
+
+This section lists all metadata formats.
+
+The following table lists the existing metadata formats.
+
+.. tabularcolumns:: |p{8.0cm}|p{1.4cm}|p{7.7cm}|
+
+.. flat-table:: Metadata formats
+    :header-rows:  1
+    :stub-columns: 0
+
+    * - Identifier
+      - Code
+      - Comments
+    * .. _MEDIA-BUS-FMT-METADATA-FIXED:
+
+      - MEDIA_BUS_FMT_METADATA_FIXED
+      - 0x7001
+      - This format should be used when the same driver handles
+	both sides of the link and the bus format is a fixed
+	metadata format that is not configurable from userspace.
+	Width and height will be set to 0 for this format.
--- linux-ein-5.4.0.orig/Documentation/networking/af_xdp.rst
+++ linux-ein-5.4.0/Documentation/networking/af_xdp.rst
@@ -40,13 +40,13 @@
 appropriate (malloc, mmap, huge pages, etc). This memory area is then
 registered with the kernel using the new setsockopt XDP_UMEM_REG. The
 UMEM also has two rings: the FILL ring and the COMPLETION ring. The
-fill ring is used by the application to send down addr for the kernel
+FILL ring is used by the application to send down addr for the kernel
 to fill in with RX packet data. References to these frames will then
 appear in the RX ring once each packet has been received. The
-completion ring, on the other hand, contains frame addr that the
+COMPLETION ring, on the other hand, contains frame addr that the
 kernel has transmitted completely and can now be used again by user
 space, for either TX or RX. Thus, the frame addrs appearing in the
-completion ring are addrs that were previously transmitted using the
+COMPLETION ring are addrs that were previously transmitted using the
 TX ring. In summary, the RX and FILL rings are used for the RX path
 and the TX and COMPLETION rings are used for the TX path.
 
@@ -91,11 +91,16 @@
 ========
 
 In order to use an AF_XDP socket, a number of associated objects need
-to be setup.
+to be setup. These objects and their options are explained in the
+following sections.
 
-Jonathan Corbet has also written an excellent article on LWN,
-"Accelerating networking with AF_XDP". It can be found at
-https://lwn.net/Articles/750845/.
+For an overview on how AF_XDP works, you can also take a look at the
+Linux Plumbers paper from 2018 on the subject:
+http://vger.kernel.org/lpc_net2018_talks/lpc18_paper_af_xdp_perf-v2.pdf. Do
+NOT consult the paper from 2017 on "AF_PACKET v4", the first attempt
+at AF_XDP. Nearly everything changed since then. Jonathan Corbet has
+also written an excellent article on LWN, "Accelerating networking
+with AF_XDP". It can be found at https://lwn.net/Articles/750845/.
 
 UMEM
 ----
@@ -113,22 +118,22 @@
 struct sockaddr_xdp member sxdp_flags, and passing the file descriptor
 of A to struct sockaddr_xdp member sxdp_shared_umem_fd.
 
-The UMEM has two single-producer/single-consumer rings, that are used
+The UMEM has two single-producer/single-consumer rings that are used
 to transfer ownership of UMEM frames between the kernel and the
 user-space application.
 
 Rings
 -----
 
-There are a four different kind of rings: Fill, Completion, RX and
+There are a four different kind of rings: FILL, COMPLETION, RX and
 TX. All rings are single-producer/single-consumer, so the user-space
 application need explicit synchronization of multiple
 processes/threads are reading/writing to them.
 
-The UMEM uses two rings: Fill and Completion. Each socket associated
+The UMEM uses two rings: FILL and COMPLETION. Each socket associated
 with the UMEM must have an RX queue, TX queue or both. Say, that there
 is a setup with four sockets (all doing TX and RX). Then there will be
-one Fill ring, one Completion ring, four TX rings and four RX rings.
+one FILL ring, one COMPLETION ring, four TX rings and four RX rings.
 
 The rings are head(producer)/tail(consumer) based rings. A producer
 writes the data ring at the index pointed out by struct xdp_ring
@@ -146,7 +151,7 @@
 UMEM Fill Ring
 ~~~~~~~~~~~~~~
 
-The Fill ring is used to transfer ownership of UMEM frames from
+The FILL ring is used to transfer ownership of UMEM frames from
 user-space to kernel-space. The UMEM addrs are passed in the ring. As
 an example, if the UMEM is 64k and each chunk is 4k, then the UMEM has
 16 chunks and can pass addrs between 0 and 64k.
@@ -164,8 +169,8 @@
 UMEM Completion Ring
 ~~~~~~~~~~~~~~~~~~~~
 
-The Completion Ring is used transfer ownership of UMEM frames from
-kernel-space to user-space. Just like the Fill ring, UMEM indicies are
+The COMPLETION Ring is used transfer ownership of UMEM frames from
+kernel-space to user-space. Just like the FILL ring, UMEM indices are
 used.
 
 Frames passed from the kernel to user-space are frames that has been
@@ -181,7 +186,7 @@
 is a struct xdp_desc descriptor. The descriptor contains UMEM offset
 (addr) and the length of the data (len).
 
-If no frames have been passed to kernel via the Fill ring, no
+If no frames have been passed to kernel via the FILL ring, no
 descriptors will (or can) appear on the RX ring.
 
 The user application consumes struct xdp_desc descriptors from this
@@ -199,8 +204,24 @@
 The user application produces struct xdp_desc descriptors to this
 ring.
 
+Libbpf
+======
+
+Libbpf is a helper library for eBPF and XDP that makes using these
+technologies a lot simpler. It also contains specific helper functions
+in tools/lib/bpf/xsk.h for facilitating the use of AF_XDP. It
+contains two types of functions: those that can be used to make the
+setup of AF_XDP socket easier and ones that can be used in the data
+plane to access the rings safely and quickly. To see an example on how
+to use this API, please take a look at the sample application in
+samples/bpf/xdpsock_usr.c which uses libbpf for both setup and data
+plane operations.
+
+We recommend that you use this library unless you have become a power
+user. It will make your program a lot simpler.
+
 XSKMAP / BPF_MAP_TYPE_XSKMAP
-----------------------------
+============================
 
 On XDP side there is a BPF map type BPF_MAP_TYPE_XSKMAP (XSKMAP) that
 is used in conjunction with bpf_redirect_map() to pass the ingress
@@ -216,21 +237,193 @@
 successfully pass data to the socket. Please refer to the sample
 application (samples/bpf/) in for an example.
 
+Configuration Flags and Socket Options
+======================================
+
+These are the various configuration flags that can be used to control
+and monitor the behavior of AF_XDP sockets.
+
+XDP_COPY and XDP_ZERO_COPY bind flags
+-------------------------------------
+
+When you bind to a socket, the kernel will first try to use zero-copy
+copy. If zero-copy is not supported, it will fall back on using copy
+mode, i.e. copying all packets out to user space. But if you would
+like to force a certain mode, you can use the following flags. If you
+pass the XDP_COPY flag to the bind call, the kernel will force the
+socket into copy mode. If it cannot use copy mode, the bind call will
+fail with an error. Conversely, the XDP_ZERO_COPY flag will force the
+socket into zero-copy mode or fail.
+
+XDP_SHARED_UMEM bind flag
+-------------------------
+
+This flag enables you to bind multiple sockets to the same UMEM, but
+only if they share the same queue id. In this mode, each socket has
+their own RX and TX rings, but the UMEM (tied to the fist socket
+created) only has a single FILL ring and a single COMPLETION
+ring. To use this mode, create the first socket and bind it in the normal
+way. Create a second socket and create an RX and a TX ring, or at
+least one of them, but no FILL or COMPLETION rings as the ones from
+the first socket will be used. In the bind call, set he
+XDP_SHARED_UMEM option and provide the initial socket's fd in the
+sxdp_shared_umem_fd field. You can attach an arbitrary number of extra
+sockets this way.
+
+What socket will then a packet arrive on? This is decided by the XDP
+program. Put all the sockets in the XSK_MAP and just indicate which
+index in the array you would like to send each packet to. A simple
+round-robin example of distributing packets is shown below:
+
+.. code-block:: c
+
+   #include <linux/bpf.h>
+   #include "bpf_helpers.h"
+
+   #define MAX_SOCKS 16
+
+   struct {
+        __uint(type, BPF_MAP_TYPE_XSKMAP);
+        __uint(max_entries, MAX_SOCKS);
+        __uint(key_size, sizeof(int));
+        __uint(value_size, sizeof(int));
+   } xsks_map SEC(".maps");
+
+   static unsigned int rr;
+
+   SEC("xdp_sock") int xdp_sock_prog(struct xdp_md *ctx)
+   {
+	rr = (rr + 1) & (MAX_SOCKS - 1);
+
+	return bpf_redirect_map(&xsks_map, rr, 0);
+   }
+
+Note, that since there is only a single set of FILL and COMPLETION
+rings, and they are single producer, single consumer rings, you need
+to make sure that multiple processes or threads do not use these rings
+concurrently. There are no synchronization primitives in the
+libbpf code that protects multiple users at this point in time.
+
+XDP_USE_NEED_WAKEUP bind flag
+-----------------------------
+
+This option adds support for a new flag called need_wakeup that is
+present in the FILL ring and the TX ring, the rings for which user
+space is a producer. When this option is set in the bind call, the
+need_wakeup flag will be set if the kernel needs to be explicitly
+woken up by a syscall to continue processing packets. If the flag is
+zero, no syscall is needed.
+
+If the flag is set on the FILL ring, the application needs to call
+poll() to be able to continue to receive packets on the RX ring. This
+can happen, for example, when the kernel has detected that there are no
+more buffers on the FILL ring and no buffers left on the RX HW ring of
+the NIC. In this case, interrupts are turned off as the NIC cannot
+receive any packets (as there are no buffers to put them in), and the
+need_wakeup flag is set so that user space can put buffers on the
+FILL ring and then call poll() so that the kernel driver can put these
+buffers on the HW ring and start to receive packets.
+
+If the flag is set for the TX ring, it means that the application
+needs to explicitly notify the kernel to send any packets put on the
+TX ring. This can be accomplished either by a poll() call, as in the
+RX path, or by calling sendto().
+
+An example of how to use this flag can be found in
+samples/bpf/xdpsock_user.c. An example with the use of libbpf helpers
+would look like this for the TX path:
+
+.. code-block:: c
+
+   if (xsk_ring_prod__needs_wakeup(&my_tx_ring))
+      sendto(xsk_socket__fd(xsk_handle), NULL, 0, MSG_DONTWAIT, NULL, 0);
+
+I.e., only use the syscall if the flag is set.
+
+We recommend that you always enable this mode as it usually leads to
+better performance especially if you run the application and the
+driver on the same core, but also if you use different cores for the
+application and the kernel driver, as it reduces the number of
+syscalls needed for the TX path.
+
+XDP_{RX|TX|UMEM_FILL|UMEM_COMPLETION}_RING setsockopts
+------------------------------------------------------
+
+These setsockopts sets the number of descriptors that the RX, TX,
+FILL, and COMPLETION rings respectively should have. It is mandatory
+to set the size of at least one of the RX and TX rings. If you set
+both, you will be able to both receive and send traffic from your
+application, but if you only want to do one of them, you can save
+resources by only setting up one of them. Both the FILL ring and the
+COMPLETION ring are mandatory if you have a UMEM tied to your socket,
+which is the normal case. But if the XDP_SHARED_UMEM flag is used, any
+socket after the first one does not have a UMEM and should in that
+case not have any FILL or COMPLETION rings created.
+
+XDP_UMEM_REG setsockopt
+-----------------------
+
+This setsockopt registers a UMEM to a socket. This is the area that
+contain all the buffers that packet can recide in. The call takes a
+pointer to the beginning of this area and the size of it. Moreover, it
+also has parameter called chunk_size that is the size that the UMEM is
+divided into. It can only be 2K or 4K at the moment. If you have an
+UMEM area that is 128K and a chunk size of 2K, this means that you
+will be able to hold a maximum of 128K / 2K = 64 packets in your UMEM
+area and that your largest packet size can be 2K.
+
+There is also an option to set the headroom of each single buffer in
+the UMEM. If you set this to N bytes, it means that the packet will
+start N bytes into the buffer leaving the first N bytes for the
+application to use. The final option is the flags field, but it will
+be dealt with in separate sections for each UMEM flag.
+
+SO_BINDTODEVICE setsockopt
+--------------------------
+
+This is a generic SOL_SOCKET option that can be used to tie AF_XDP
+socket to a particular network interface.  It is useful when a socket
+is created by a privileged process and passed to a non-privileged one.
+Once the option is set, kernel will refuse attempts to bind that socket
+to a different interface.  Updating the value requires CAP_NET_RAW.
+
+XDP_STATISTICS getsockopt
+-------------------------
+
+Gets drop statistics of a socket that can be useful for debug
+purposes. The supported statistics are shown below:
+
+.. code-block:: c
+
+   struct xdp_statistics {
+	  __u64 rx_dropped; /* Dropped for reasons other than invalid desc */
+	  __u64 rx_invalid_descs; /* Dropped due to invalid descriptor */
+	  __u64 tx_invalid_descs; /* Dropped due to invalid descriptor */
+   };
+
+XDP_OPTIONS getsockopt
+----------------------
+
+Gets options from an XDP socket. The only one supported so far is
+XDP_OPTIONS_ZEROCOPY which tells you if zero-copy is on or not.
+
 Usage
 =====
 
-In order to use AF_XDP sockets there are two parts needed. The
+In order to use AF_XDP sockets two parts are needed. The
 user-space application and the XDP program. For a complete setup and
 usage example, please refer to the sample application. The user-space
 side is xdpsock_user.c and the XDP side is part of libbpf.
 
-The XDP code sample included in tools/lib/bpf/xsk.c is the following::
+The XDP code sample included in tools/lib/bpf/xsk.c is the following:
+
+.. code-block:: c
 
    SEC("xdp_sock") int xdp_sock_prog(struct xdp_md *ctx)
    {
        int index = ctx->rx_queue_index;
 
-       // A set entry here means that the correspnding queue_id
+       // A set entry here means that the corresponding queue_id
        // has an active AF_XDP socket bound to it.
        if (bpf_map_lookup_elem(&xsks_map, &index))
            return bpf_redirect_map(&xsks_map, index, 0);
@@ -238,7 +431,10 @@
        return XDP_PASS;
    }
 
-Naive ring dequeue and enqueue could look like this::
+A simple but not so performance ring dequeue and enqueue could look
+like this:
+
+.. code-block:: c
 
     // struct xdp_rxtx_ring {
     // 	__u32 *producer;
@@ -287,17 +483,16 @@
         return 0;
     }
 
-
-For a more optimized version, please refer to the sample application.
+But please use the libbpf functions as they are optimized and ready to
+use. Will make your life easier.
 
 Sample application
 ==================
 
 There is a xdpsock benchmarking/test application included that
-demonstrates how to use AF_XDP sockets with both private and shared
-UMEMs. Say that you would like your UDP traffic from port 4242 to end
-up in queue 16, that we will enable AF_XDP on. Here, we use ethtool
-for this::
+demonstrates how to use AF_XDP sockets with private UMEMs. Say that
+you would like your UDP traffic from port 4242 to end up in queue 16,
+that we will enable AF_XDP on. Here, we use ethtool for this::
 
       ethtool -N p3p2 rx-flow-hash udp4 fn
       ethtool -N p3p2 flow-type udp4 src-port 4242 dst-port 4242 \
@@ -311,13 +506,18 @@
 For XDP_SKB mode, use the switch "-S" instead of "-N" and all options
 can be displayed with "-h", as usual.
 
+This sample application uses libbpf to make the setup and usage of
+AF_XDP simpler. If you want to know how the raw uapi of AF_XDP is
+really used to make something more advanced, take a look at the libbpf
+code in tools/lib/bpf/xsk.[ch].
+
 FAQ
 =======
 
 Q: I am not seeing any traffic on the socket. What am I doing wrong?
 
 A: When a netdev of a physical NIC is initialized, Linux usually
-   allocates one Rx and Tx queue pair per core. So on a 8 core system,
+   allocates one RX and TX queue pair per core. So on a 8 core system,
    queue ids 0 to 7 will be allocated, one per core. In the AF_XDP
    bind call or the xsk_socket__create libbpf function call, you
    specify a specific queue id to bind to and it is only the traffic
@@ -343,9 +543,21 @@
      sudo ethtool -N <interface> flow-type udp4 src-port 4242 dst-port \
      4242 action 2
 
-   A number of other ways are possible all up to the capabilitites of
+   A number of other ways are possible all up to the capabilities of
    the NIC you have.
 
+Q: Can I use the XSKMAP to implement a switch betwen different umems
+   in copy mode?
+
+A: The short answer is no, that is not supported at the moment. The
+   XSKMAP can only be used to switch traffic coming in on queue id X
+   to sockets bound to the same queue id X. The XSKMAP can contain
+   sockets bound to different queue ids, for example X and Y, but only
+   traffic goming in from queue id Y can be directed to sockets bound
+   to the same queue id Y. In zero-copy mode, you should use the
+   switch, or other distribution mechanism, in your NIC to direct
+   traffic to the correct queue id and socket.
+
 Credits
 =======
 
--- linux-ein-5.4.0.orig/Documentation/networking/bonding.txt
+++ linux-ein-5.4.0/Documentation/networking/bonding.txt
@@ -191,11 +191,12 @@
 ad_actor_system
 
 	In an AD system, this specifies the mac-address for the actor in
-	protocol packet exchanges (LACPDUs). The value cannot be NULL or
-	multicast. It is preferred to have the local-admin bit set for this
-	mac but driver does not enforce it. If the value is not given then
-	system defaults to using the masters' mac address as actors' system
-	address.
+	protocol packet exchanges (LACPDUs). The value cannot be a multicast
+	address. If the all-zeroes MAC is specified, bonding will internally
+	use the MAC of the bond itself. It is preferred to have the
+	local-admin bit set for this mac but driver does not enforce it. If
+	the value is not given then system defaults to using the masters'
+	mac address as actors' system address.
 
 	This parameter has effect only in 802.3ad mode and is available through
 	SysFs interface.
--- linux-ein-5.4.0.orig/Documentation/networking/device_drivers/amazon/ena.txt
+++ linux-ein-5.4.0/Documentation/networking/device_drivers/amazon/ena.txt
@@ -248,7 +248,7 @@
   inputs for hash functions.
 - The driver configures RSS settings using the AQ SetFeature command
   (ENA_ADMIN_RSS_HASH_FUNCTION, ENA_ADMIN_RSS_HASH_INPUT and
-  ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG properties).
+  ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG properties).
 - If the NETIF_F_RXHASH flag is set, the 32-bit result of the hash
   function delivered in the Rx CQ descriptor is set in the received
   SKB.
--- linux-ein-5.4.0.orig/Documentation/networking/device_drivers/mellanox/mlx5.rst
+++ linux-ein-5.4.0/Documentation/networking/device_drivers/mellanox/mlx5.rst
@@ -154,6 +154,27 @@
       values:
          cmode runtime value smfs
 
+enable_roce: RoCE enablement state
+----------------------------------
+RoCE enablement state controls driver support for RoCE traffic.
+When RoCE is disabled, there is no gid table, only raw ethernet QPs are supported and traffic on the well known UDP RoCE port is handled as raw ethernet traffic.
+
+To change RoCE enablement state a user must change the driverinit cmode value and run devlink reload.
+
+User command examples:
+
+- Disable RoCE::
+
+    $ devlink dev param set pci/0000:06:00.0 name enable_roce value false cmode driverinit
+    $ devlink dev reload pci/0000:06:00.0
+
+- Read RoCE enablement state::
+
+    $ devlink dev param show pci/0000:06:00.0 name enable_roce
+      pci/0000:06:00.0:
+      name enable_roce type generic
+      values:
+         cmode driverinit value true
 
 Devlink health reporters
 ========================
--- linux-ein-5.4.0.orig/Documentation/networking/devlink-params-mlx5.txt
+++ linux-ein-5.4.0/Documentation/networking/devlink-params-mlx5.txt
@@ -0,0 +1,17 @@
+flow_steering_mode	[DEVICE, DRIVER-SPECIFIC]
+			Controls the flow steering mode of the driver.
+			Two modes are supported:
+			1. 'dmfs' - Device managed flow steering.
+			2. 'smfs  - Software/Driver managed flow steering.
+			In DMFS mode, the HW steering entities are created and
+			managed through the Firmware.
+			In SMFS mode, the HW steering entities are created and
+			managed though by the driver directly into Hardware
+			without firmware intervention.
+			Type: String
+			Configuration mode: runtime
+
+enable_roce		[DEVICE, GENERIC]
+			Enable handling of RoCE traffic in the device.
+			Defaultly enabled.
+			Configuration mode: driverinit
--- linux-ein-5.4.0.orig/Documentation/networking/devlink-params.txt
+++ linux-ein-5.4.0/Documentation/networking/devlink-params.txt
@@ -65,3 +65,7 @@
 			  Reset only if device firmware can be found in the
 			  filesystem.
 			Type: u8
+
+enable_roce		[DEVICE, GENERIC]
+			Enable handling of RoCE traffic in the device.
+			Type: Boolean
--- linux-ein-5.4.0.orig/Documentation/networking/ip-sysctl.txt
+++ linux-ein-5.4.0/Documentation/networking/ip-sysctl.txt
@@ -876,7 +876,7 @@
 cipso_cache_bucket_size - INTEGER
 	The CIPSO label cache consists of a fixed size hash table with each
 	hash bucket containing a number of cache entries.  This variable limits
-	the number of entries in each hash bucket; the larger the value the
+	the number of entries in each hash bucket; the larger the value is, the
 	more CIPSO label mappings that can be cached.  When the number of
 	entries in a given hash bucket reaches this limit adding new entries
 	causes the oldest entry in the bucket to be removed to make room.
@@ -953,7 +953,7 @@
 	which can be quite useful - but may break some applications.
 	Default: 0
 
-ip_dynaddr - BOOLEAN
+ip_dynaddr - INTEGER
 	If set non-zero, enables support for dynamic addresses.
 	If set to a non-zero value larger than 1, a kernel log
 	message will be printed when dynamic address rewriting
@@ -1000,12 +1000,14 @@
 icmp_msgs_per_sec - INTEGER
 	Limit maximal number of ICMP packets sent per second from this host.
 	Only messages whose type matches icmp_ratemask (see below) are
-	controlled by this limit.
+	controlled by this limit. For security reasons, the precise count
+	of messages per second is randomized.
 	Default: 1000
 
 icmp_msgs_burst - INTEGER
 	icmp_msgs_per_sec controls number of ICMP packets sent per second,
 	while icmp_msgs_burst controls the burst size of these packets.
+	For security reasons, the precise burst size is randomized.
 	Default: 50
 
 icmp_ratemask - INTEGER
@@ -2282,7 +2284,14 @@
 	Default: 4K
 
 sctp_wmem  - vector of 3 INTEGERs: min, default, max
-	Currently this tunable has no effect.
+	Only the first value ("min") is used, "default" and "max" are
+	ignored.
+
+	min: Minimum size of send buffer that can be used by SCTP sockets.
+	It is guaranteed to each SCTP socket (but not association) even
+	under moderate memory pressure.
+
+	Default: 4K
 
 addr_scope_policy - INTEGER
 	Control IPv4 address scoping - draft-stewart-tsvwg-sctp-ipv4-00
--- linux-ein-5.4.0.orig/Documentation/networking/ipvs-sysctl.txt
+++ linux-ein-5.4.0/Documentation/networking/ipvs-sysctl.txt
@@ -30,8 +30,7 @@
 
 	0: disable any special handling on port reuse. The new
 	connection will be delivered to the same real server that was
-	servicing the previous connection. This will effectively
-	disable expire_nodest_conn.
+	servicing the previous connection.
 
 	bit 1: enable rescheduling of new connections when it is safe.
 	That is, whenever expire_nodest_conn and for TCP sockets, when
--- linux-ein-5.4.0.orig/Documentation/networking/j1939.rst
+++ linux-ein-5.4.0/Documentation/networking/j1939.rst
@@ -339,7 +339,7 @@
 			.pgn = J1939_PGN_ADDRESS_CLAIMED,
 			.pgn_mask = J1939_PGN_PDU1_MAX,
 		}, {
-			.pgn = J1939_PGN_ADDRESS_REQUEST,
+			.pgn = J1939_PGN_REQUEST,
 			.pgn_mask = J1939_PGN_PDU1_MAX,
 		}, {
 			.pgn = J1939_PGN_ADDRESS_COMMANDED,
@@ -414,8 +414,8 @@
 		.can_family = AF_CAN,
 		.can_addr.j1939 = {
 			.name = J1939_NO_NAME;
-			.pgn = 0x30,
-			.addr = 0x12300,
+			.addr = 0x30,
+			.pgn = 0x12300,
 		},
 	};
 
--- linux-ein-5.4.0.orig/Documentation/networking/nf_flowtable.txt
+++ linux-ein-5.4.0/Documentation/networking/nf_flowtable.txt
@@ -76,7 +76,7 @@
 
         table inet x {
 		flowtable f {
-			hook ingress priority 0 devices = { eth0, eth1 };
+			hook ingress priority 0; devices = { eth0, eth1 };
 		}
                 chain y {
                         type filter hook forward priority 0; policy accept;
--- linux-ein-5.4.0.orig/Documentation/power/runtime_pm.rst
+++ linux-ein-5.4.0/Documentation/power/runtime_pm.rst
@@ -382,6 +382,12 @@
       nonzero, increment the counter and return 1; otherwise return 0 without
       changing the counter
 
+  `int pm_runtime_get_if_active(struct device *dev, bool ign_usage_count);`
+    - return -EINVAL if 'power.disable_depth' is nonzero; otherwise, if the
+      runtime PM status is RPM_ACTIVE, and either ign_usage_count is true
+      or the device's usage_count is non-zero, increment the counter and
+      return 1; otherwise return 0 without changing the counter
+
   `void pm_runtime_put_noidle(struct device *dev);`
     - decrement the device's usage counter
 
--- linux-ein-5.4.0.orig/Documentation/process/code-of-conduct-interpretation.rst
+++ linux-ein-5.4.0/Documentation/process/code-of-conduct-interpretation.rst
@@ -51,7 +51,7 @@
 uncertain how to handle situations that come up.  It will not be
 considered a violation report unless you want it to be.  If you are
 uncertain about approaching the TAB or any other maintainers, please
-reach out to our conflict mediator, Mishi Choudhary <mishi@linux.com>.
+reach out to our conflict mediator, Joanna Lee <jlee@linuxfoundation.org>.
 
 In the end, "be kind to each other" is really what the end goal is for
 everybody.  We know everyone is human and we all fail at times, but the
--- linux-ein-5.4.0.orig/Documentation/process/stable-kernel-rules.rst
+++ linux-ein-5.4.0/Documentation/process/stable-kernel-rules.rst
@@ -174,7 +174,16 @@
  - The finalized and tagged releases of all stable kernels can be found
    in separate branches per version at:
 
-	https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
+	https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
+
+ - The release candidate of all stable kernel versions can be found at:
+
+        https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/
+
+   .. warning::
+      The -stable-rc tree is a snapshot in time of the stable-queue tree and
+      will change frequently, hence will be rebased often. It should only be
+      used for testing purposes (e.g. to be consumed by CI systems).
 
 
 Review committee
--- linux-ein-5.4.0.orig/Documentation/process/submitting-patches.rst
+++ linux-ein-5.4.0/Documentation/process/submitting-patches.rst
@@ -133,7 +133,7 @@
 
 The maintainer will thank you if you write your patch description in a
 form which can be easily pulled into Linux's source code management
-system, ``git``, as a "commit log".  See :ref:`explicit_in_reply_to`.
+system, ``git``, as a "commit log".  See :ref:`the_canonical_patch_format`.
 
 Solve only one problem per patch.  If your description starts to get
 long, that's a sign that you probably need to split up your patch.
--- linux-ein-5.4.0.orig/Documentation/remoteproc.txt
+++ linux-ein-5.4.0/Documentation/remoteproc.txt
@@ -230,7 +230,7 @@
 Binary Firmware Structure
 =========================
 
-At this point remoteproc only supports ELF32 firmware binaries. However,
+At this point remoteproc supports ELF32 and ELF64 firmware binaries. However,
 it is quite expected that other platforms/devices which we'd want to
 support with this framework will be based on different binary formats.
 
--- linux-ein-5.4.0.orig/Documentation/s390/index.rst
+++ linux-ein-5.4.0/Documentation/s390/index.rst
@@ -15,6 +15,7 @@
     vfio-ccw
     zfcpdump
     common_io
+    pci
 
     text_files
 
--- linux-ein-5.4.0.orig/Documentation/s390/pci.rst
+++ linux-ein-5.4.0/Documentation/s390/pci.rst
@@ -0,0 +1,126 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=========
+S/390 PCI
+=========
+
+Authors:
+        - Pierre Morel
+
+Copyright, IBM Corp. 2020
+
+
+command line parameters and debugfs entries
+===========================================
+
+Command line parameters
+-----------------------
+
+* nomio
+
+  Do not use MIO instructions.
+
+* norid
+
+  Ignore the RID field and force use of one PCI domain per PCI function.
+
+debugfs entries
+---------------
+
+* /sys/kernel/debug/s390dbf/pci_*/ (S/390 debug feature)
+
+  Some views generated by the debug feature to hold various debug outputs.
+
+  - /sys/kernel/debug/s390dbf/pci_msg/sprintf
+    Messages from the processing of PCI events like machine check handling
+    and setting of global functionality like UID checking.
+
+  The level of logging can be changed to be more or less verbose by piping to
+  /sys/kernel/debug/s390dbf/pci_*/level a number between 0 and 6; see the
+  documentation on the S/390 debug feature (Documentation/s390/s390dbf.rst)
+  for details.
+
+Sysfs entries
+=============
+
+Specific entries, or entries specificities for zPCI functions.
+
+* /sys/bus/pci/slots/XXXXXXXX
+
+  The slot entries are setup using the FID (Function Identifier) of the
+  PCI function.
+
+  - /sys/bus/pci/slots/XXXXXXXX/power
+
+  A physical function currently supporting virtual function can not be
+  powered-off until all virtual-function have been removed with
+  echo 0 > /sys/bus/pci/devices/XXXX:XX:XX.X/sriov_numvf
+
+* /sys/bus/pci/devices/XXXX:XX:XX.X/
+
+  - function_id
+    zPCI function identifier unique for the complete Z System.
+    It define uniquely a function in the system.
+
+  - function_handle
+    Low level identifier used for a configured PCI function.
+    It may be useful for debuging.
+
+  - pchid
+    Model dependent location of the I/O adapter.
+
+  - pfgid
+    PCI Function Group ID, functions sharing identical functionality
+    are using a common identifier.
+    A PCI group defines interrupts, IOMMU, IOTLB and DMA specifics.
+
+  - vfn
+    The Virtual Function Number, from 1 to N for virtual functions.
+    0 for physical functions.
+
+  - pft
+    PCI function type specifies the type of the PCI function.
+
+  - port
+    The port correspond to the physical port the function is attached to.
+    It also gives an indication on the physical function a virtual function
+    is attached to.
+
+  - uid
+    The UID, Unique Identifier is defined when configuring a LPAR and is
+    unique inside an LPAR.
+
+  - pfip/segmentX
+    The segments are used to determine the isolation of a function.
+    They corresponds to the physical path to the function.
+    The more the segment are different the more the functions are isolated.
+
+Enumeration and hotplug
+=======================
+
+The PCI address is made of 4 parts: domain, bus, device and function,
+like in DDDD:BB:dd.f
+
+* When not using multi-functions (norid is set or firmware does not support
+  multi-functions)
+
+  - There is only one function per domain.
+
+  - the domain is set from the zPCI function's UID as defined during the
+    LPAR creation.
+
+  - Addresses look like DDDD:00:00.0
+
+* When using multi-functions (norid parameter is not set), there are some
+  change in the way zPCI functions are addressed:
+
+  - There is still only one bus per domain.
+
+  - There can be up to 256 functions per bus.
+
+  - The domain part of the address of all functions of all functions for
+    a multi-Function device is set from the zPCI function's UID as defined
+    in the LPAR creation for the function zero.
+
+  - New functions will only be ready to be used after the function zero
+    (the function with devfn 0) has been enumerated.
--- linux-ein-5.4.0.orig/Documentation/scsi/smartpqi.txt
+++ linux-ein-5.4.0/Documentation/scsi/smartpqi.txt
@@ -29,7 +29,7 @@
   smartpqi host attributes:
   -------------------------
   /sys/class/scsi_host/host*/rescan
-  /sys/class/scsi_host/host*/version
+  /sys/class/scsi_host/host*/driver_version
 
   The host rescan attribute is a write only attribute. Writing to this
   attribute will trigger the driver to scan for new, changed, or removed
--- linux-ein-5.4.0.orig/Documentation/sound/hd-audio/index.rst
+++ linux-ein-5.4.0/Documentation/sound/hd-audio/index.rst
@@ -8,3 +8,4 @@
    models
    controls
    dp-mst
+   realtek-pc-beep
--- linux-ein-5.4.0.orig/Documentation/sound/hd-audio/models.rst
+++ linux-ein-5.4.0/Documentation/sound/hd-audio/models.rst
@@ -216,8 +216,6 @@
     ALC298 fixups on Dell AIO machines
 alc275-dell-xps
     ALC275 fixups on Dell XPS models
-alc256-dell-xps13
-    ALC256 fixups on Dell XPS13
 lenovo-spk-noise
     Workaround for speaker noise on Lenovo machines
 lenovo-hotkey
@@ -263,6 +261,10 @@
 huawei-mbx-stereo
     Enable initialization verbs for Huawei MBX stereo speakers;
     might be risky, try this at your own risk
+alc298-samsung-headphone
+    Samsung laptops with ALC298
+alc256-samsung-headphone
+    Samsung laptops with ALC256
 
 ALC66x/67x/892
 ==============
@@ -700,7 +702,7 @@
 no-jd
     BIOS setup but without jack-detection
 intel
-    Intel DG45* mobos
+    Intel D*45* mobos
 dell-m6-amic
     Dell desktops/laptops with analog mics
 dell-m6-dmic
--- linux-ein-5.4.0.orig/Documentation/sound/hd-audio/realtek-pc-beep.rst
+++ linux-ein-5.4.0/Documentation/sound/hd-audio/realtek-pc-beep.rst
@@ -0,0 +1,129 @@
+===============================
+Realtek PC Beep Hidden Register
+===============================
+
+This file documents the "PC Beep Hidden Register", which is present in certain
+Realtek HDA codecs and controls a muxer and pair of passthrough mixers that can
+route audio between pins but aren't themselves exposed as HDA widgets. As far
+as I can tell, these hidden routes are designed to allow flexible PC Beep output
+for codecs that don't have mixer widgets in their output paths. Why it's easier
+to hide a mixer behind an undocumented vendor register than to just expose it
+as a widget, I have no idea.
+
+Register Description
+====================
+
+The register is accessed via processing coefficient 0x36 on NID 20h. Bits not
+identified below have no discernible effect on my machine, a Dell XPS 13 9350::
+
+  MSB                           LSB
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  | |h|S|L|         | B |R|       | Known bits
+  +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+  |0|0|1|1|  0x7  |0|0x0|1|  0x7  | Reset value
+  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+1Ah input select (B): 2 bits
+  When zero, expose the PC Beep line (from the internal beep generator, when
+  enabled with the Set Beep Generation verb on NID 01h, or else from the
+  external PCBEEP pin) on the 1Ah pin node. When nonzero, expose the headphone
+  jack (or possibly Line In on some machines) input instead. If PC Beep is
+  selected, the 1Ah boost control has no effect.
+
+Amplify 1Ah loopback, left (L): 1 bit
+  Amplify the left channel of 1Ah before mixing it into outputs as specified
+  by h and S bits. Does not affect the level of 1Ah exposed to other widgets.
+
+Amplify 1Ah loopback, right (R): 1 bit
+  Amplify the right channel of 1Ah before mixing it into outputs as specified
+  by h and S bits. Does not affect the level of 1Ah exposed to other widgets.
+
+Loopback 1Ah to 21h [active low] (h): 1 bit
+  When zero, mix 1Ah (possibly with amplification, depending on L and R bits)
+  into 21h (headphone jack on my machine). Mixed signal respects the mute
+  setting on 21h.
+
+Loopback 1Ah to 14h (S): 1 bit
+  When one, mix 1Ah (possibly with amplification, depending on L and R bits)
+  into 14h (internal speaker on my machine). Mixed signal **ignores** the mute
+  setting on 14h and is present whenever 14h is configured as an output.
+
+Path diagrams
+=============
+
+1Ah input selection (DIV is the PC Beep divider set on NID 01h)::
+
+  <Beep generator>   <PCBEEP pin>    <Headphone jack>
+          |                |                |
+          +--DIV--+--!DIV--+       {1Ah boost control}
+                  |                         |
+                  +--(b == 0)--+--(b != 0)--+
+                               |
+               >1Ah (Beep/Headphone Mic/Line In)<
+
+Loopback of 1Ah to 21h/14h::
+
+               <1Ah (Beep/Headphone Mic/Line In)>
+                               |
+                        {amplify if L/R}
+                               |
+                  +-----!h-----+-----S-----+
+                  |                        |
+          {21h mute control}               |
+                  |                        |
+          >21h (Headphone)<     >14h (Internal Speaker)<
+
+Background
+==========
+
+All Realtek HDA codecs have a vendor-defined widget with node ID 20h which
+provides access to a bank of registers that control various codec functions.
+Registers are read and written via the standard HDA processing coefficient
+verbs (Set/Get Coefficient Index, Set/Get Processing Coefficient). The node is
+named "Realtek Vendor Registers" in public datasheets' verb listings and,
+apart from that, is entirely undocumented.
+
+This particular register, exposed at coefficient 0x36 and named in commits from
+Realtek, is of note: unlike most registers, which seem to control detailed
+amplifier parameters not in scope of the HDA specification, it controls audio
+routing which could just as easily have been defined using standard HDA mixer
+and selector widgets.
+
+Specifically, it selects between two sources for the input pin widget with Node
+ID (NID) 1Ah: the widget's signal can come either from an audio jack (on my
+laptop, a Dell XPS 13 9350, it's the headphone jack, but comments in Realtek
+commits indicate that it might be a Line In on some machines) or from the PC
+Beep line (which is itself multiplexed between the codec's internal beep
+generator and external PCBEEP pin, depending on if the beep generator is
+enabled via verbs on NID 01h). Additionally, it can mix (with optional
+amplification) that signal onto the 21h and/or 14h output pins.
+
+The register's reset value is 0x3717, corresponding to PC Beep on 1Ah that is
+then amplified and mixed into both the headphones and the speakers. Not only
+does this violate the HDA specification, which says that "[a vendor defined
+beep input pin] connection may be maintained *only* while the Link reset
+(**RST#**) is asserted", it means that we cannot ignore the register if we care
+about the input that 1Ah would otherwise expose or if the PCBEEP trace is
+poorly shielded and picks up chassis noise (both of which are the case on my
+machine).
+
+Unfortunately, there are lots of ways to get this register configuration wrong.
+Linux, it seems, has gone through most of them. For one, the register resets
+after S3 suspend: judging by existing code, this isn't the case for all vendor
+registers, and it's led to some fixes that improve behavior on cold boot but
+don't last after suspend. Other fixes have successfully switched the 1Ah input
+away from PC Beep but have failed to disable both loopback paths. On my
+machine, this means that the headphone input is amplified and looped back to
+the headphone output, which uses the exact same pins! As you might expect, this
+causes terrible headphone noise, the character of which is controlled by the
+1Ah boost control. (If you've seen instructions online to fix XPS 13 headphone
+noise by changing "Headphone Mic Boost" in ALSA, now you know why.)
+
+The information here has been obtained through black-box reverse engineering of
+the ALC256 codec's behavior and is not guaranteed to be correct. It likely
+also applies for the ALC255, ALC257, ALC235, and ALC236, since those codecs
+seem to be close relatives of the ALC256. (They all share one initialization
+function.) Additionally, other codecs like the ALC225 and ALC285 also have this
+register, judging by existing fixups in ``patch_realtek.c``, but specific
+data (e.g. node IDs, bit positions, pin mappings) for those codecs may differ
+from what I've described here.
--- linux-ein-5.4.0.orig/Documentation/sphinx/load_config.py
+++ linux-ein-5.4.0/Documentation/sphinx/load_config.py
@@ -3,7 +3,7 @@
 
 import os
 import sys
-from sphinx.util.pycompat import execfile_
+from sphinx.util.osutil import fs_encoding
 
 # ------------------------------------------------------------------------------
 def loadConfig(namespace):
@@ -48,7 +48,9 @@
             sys.stdout.write("load additional sphinx-config: %s\n" % config_file)
             config = namespace.copy()
             config['__file__'] = config_file
-            execfile_(config_file, config)
+            with open(config_file, 'rb') as f:
+                code = compile(f.read(), fs_encoding, 'exec')
+                exec(code, config)
             del config['__file__']
             namespace.update(config)
         else:
--- linux-ein-5.4.0.orig/Documentation/sphinx/parse-headers.pl
+++ linux-ein-5.4.0/Documentation/sphinx/parse-headers.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 use strict;
 use Text::Tabs;
 use Getopt::Long;
--- linux-ein-5.4.0.orig/Documentation/target/tcm_mod_builder.py
+++ linux-ein-5.4.0/Documentation/target/tcm_mod_builder.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD
 #
 # Copyright (c) 2010 Rising Tide Systems
--- linux-ein-5.4.0.orig/Documentation/trace/histogram.rst
+++ linux-ein-5.4.0/Documentation/trace/histogram.rst
@@ -39,7 +39,7 @@
   will use the event's kernel stacktrace as the key.  The keywords
   'keys' or 'key' can be used to specify keys, and the keywords
   'values', 'vals', or 'val' can be used to specify values.  Compound
-  keys consisting of up to two fields can be specified by the 'keys'
+  keys consisting of up to three fields can be specified by the 'keys'
   keyword.  Hashing a compound key produces a unique entry in the
   table for each unique combination of component keys, and can be
   useful for providing more fine-grained summaries of event data.
@@ -191,7 +191,7 @@
                                 with the event, in nanoseconds.  May be
 			        modified by .usecs to have timestamps
 			        interpreted as microseconds.
-    cpu                    int  the cpu on which the event occurred.
+    common_cpu             int  the cpu on which the event occurred.
     ====================== ==== =======================================
 
 Extended error information
--- linux-ein-5.4.0.orig/Documentation/trace/postprocess/decode_msr.py
+++ linux-ein-5.4.0/Documentation/trace/postprocess/decode_msr.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # add symbolic names to read_msr / write_msr in trace
 # decode_msr msr-index.h < trace
 import sys
--- linux-ein-5.4.0.orig/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl
+++ linux-ein-5.4.0/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 # This is a POC (proof of concept or piece of crap, take your pick) for reading the
 # text representation of trace output related to page allocation. It makes an attempt
 # to extract some high-level information on what is going on. The accuracy of the parser
--- linux-ein-5.4.0.orig/Documentation/trace/postprocess/trace-vmscan-postprocess.pl
+++ linux-ein-5.4.0/Documentation/trace/postprocess/trace-vmscan-postprocess.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 # This is a POC for reading the text representation of trace output related to
 # page reclaim. It makes an attempt to extract some high-level information on
 # what is going on. The accuracy of the parser may vary
--- linux-ein-5.4.0.orig/Documentation/userspace-api/seccomp_filter.rst
+++ linux-ein-5.4.0/Documentation/userspace-api/seccomp_filter.rst
@@ -250,14 +250,14 @@
 seccomp notification fd to receive a ``struct seccomp_notif``, which contains
 five members: the input length of the structure, a unique-per-filter ``id``,
 the ``pid`` of the task which triggered this request (which may be 0 if the
-task is in a pid ns not visible from the listener's pid namespace), a ``flags``
-member which for now only has ``SECCOMP_NOTIF_FLAG_SIGNALED``, representing
-whether or not the notification is a result of a non-fatal signal, and the
-``data`` passed to seccomp. Userspace can then make a decision based on this
-information about what to do, and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a
-response, indicating what should be returned to userspace. The ``id`` member of
-``struct seccomp_notif_resp`` should be the same ``id`` as in ``struct
-seccomp_notif``.
+task is in a pid ns not visible from the listener's pid namespace). The
+notification also contains the ``data`` passed to seccomp, and a filters flag.
+The structure should be zeroed out prior to calling the ioctl.
+
+Userspace can then make a decision based on this information about what to do,
+and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a response, indicating what should be
+returned to userspace. The ``id`` member of ``struct seccomp_notif_resp`` should
+be the same ``id`` as in ``struct seccomp_notif``.
 
 It is worth noting that ``struct seccomp_data`` contains the values of register
 arguments to the syscall, but does not contain pointers to memory. The task's
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/api.txt
+++ linux-ein-5.4.0/Documentation/virt/kvm/api.txt
@@ -172,6 +172,9 @@
 be retrieved using KVM_CAP_ARM_VM_IPA_SIZE of the KVM_CHECK_EXTENSION
 ioctl() at run-time.
 
+Creation of the VM will fail if the requested IPA size (whether it is
+implicit or explicit) is unsupported on the host.
+
 Please note that configuring the IPA size does not affect the capability
 exposed by the guest CPUs in ID_AA64MMFR0_EL1[PARange]. It only affects
 size of the address translated by the stage2 level (guest physical to
@@ -1132,6 +1135,9 @@
 the entire memory slot size.  Any object may back this memory, including
 anonymous memory, ordinary files, and hugetlbfs.
 
+On architectures that support a form of address tagging, userspace_addr must
+be an untagged address.
+
 It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
 be identical.  This allows large pages in the guest to be backed by large
 pages in the host.
@@ -1897,9 +1903,11 @@
 Parameters: struct kvm_one_reg (in)
 Returns: 0 on success, negative value on failure
 Errors:
-  ENOENT:   no such register
-  EINVAL:   invalid register ID, or no such register
-  EPERM:    (arm64) register access not allowed before vcpu finalization
+  ENOENT   no such register
+  EINVAL   invalid register ID, or no such register or used with VMs in
+           protected virtualization mode on s390
+  EPERM    (arm64) register access not allowed before vcpu finalization
+
 (These error codes are indicative only: do not rely on a specific error
 code being returned in a specific situation.)
 
@@ -2290,9 +2298,11 @@
 Parameters: struct kvm_one_reg (in and out)
 Returns: 0 on success, negative value on failure
 Errors include:
-  ENOENT:   no such register
-  EINVAL:   invalid register ID, or no such register
-  EPERM:    (arm64) register access not allowed before vcpu finalization
+  ENOENT   no such register
+  EINVAL   invalid register ID, or no such register or used with VMs in
+           protected virtualization mode on s390
+  EPERM    (arm64) register access not allowed before vcpu finalization
+
 (These error codes are indicative only: do not rely on a specific error
 code being returned in a specific situation.)
 
@@ -3058,51 +3068,116 @@
 
 4.89 KVM_S390_MEM_OP
 
-Capability: KVM_CAP_S390_MEM_OP
-Architectures: s390
-Type: vcpu ioctl
-Parameters: struct kvm_s390_mem_op (in)
-Returns: = 0 on success,
-         < 0 on generic error (e.g. -EFAULT or -ENOMEM),
-         > 0 if an exception occurred while walking the page tables
-
-Read or write data from/to the logical (virtual) memory of a VCPU.
+:Capability: KVM_CAP_S390_MEM_OP, KVM_CAP_S390_PROTECTED, KVM_CAP_S390_MEM_OP_EXTENSION
+:Architectures: s390
+:Type: vm ioctl, vcpu ioctl
+:Parameters: struct kvm_s390_mem_op (in)
+:Returns: = 0 on success,
+          < 0 on generic error (e.g. -EFAULT or -ENOMEM),
+          > 0 if an exception occurred while walking the page tables
+
+Read or write data from/to the VM's memory.
+The KVM_CAP_S390_MEM_OP_EXTENSION capability specifies what functionality is
+supported.
 
-Parameters are specified via the following structure:
+Parameters are specified via the following structure::
 
-struct kvm_s390_mem_op {
+  struct kvm_s390_mem_op {
 	__u64 gaddr;		/* the guest address */
 	__u64 flags;		/* flags */
 	__u32 size;		/* amount of bytes */
 	__u32 op;		/* type of operation */
 	__u64 buf;		/* buffer in userspace */
-	__u8 ar;		/* the access register number */
-	__u8 reserved[31];	/* should be set to 0 */
-};
-
-The type of operation is specified in the "op" field. It is either
-KVM_S390_MEMOP_LOGICAL_READ for reading from logical memory space or
-KVM_S390_MEMOP_LOGICAL_WRITE for writing to logical memory space. The
-KVM_S390_MEMOP_F_CHECK_ONLY flag can be set in the "flags" field to check
-whether the corresponding memory access would create an access exception
-(without touching the data in the memory at the destination). In case an
-access exception occurred while walking the MMU tables of the guest, the
-ioctl returns a positive error number to indicate the type of exception.
-This exception is also raised directly at the corresponding VCPU if the
-flag KVM_S390_MEMOP_F_INJECT_EXCEPTION is set in the "flags" field.
+	union {
+		struct {
+			__u8 ar;	/* the access register number */
+			__u8 key;	/* access key, ignored if flag unset */
+		};
+		__u32 sida_offset; /* offset into the sida */
+		__u8 reserved[32]; /* ignored */
+	};
+  };
 
 The start address of the memory region has to be specified in the "gaddr"
 field, and the length of the region in the "size" field (which must not
 be 0). The maximum value for "size" can be obtained by checking the
 KVM_CAP_S390_MEM_OP capability. "buf" is the buffer supplied by the
 userspace application where the read data should be written to for
-KVM_S390_MEMOP_LOGICAL_READ, or where the data that should be written is
-stored for a KVM_S390_MEMOP_LOGICAL_WRITE. When KVM_S390_MEMOP_F_CHECK_ONLY
-is specified, "buf" is unused and can be NULL. "ar" designates the access
-register number to be used; the valid range is 0..15.
+a read access, or where the data that should be written is stored for
+a write access.  The "reserved" field is meant for future extensions.
+Reserved and unused values are ignored. Future extension that add members must
+introduce new flags.
+
+The type of operation is specified in the "op" field. Flags modifying
+their behavior can be set in the "flags" field. Undefined flag bits must
+be set to 0.
+
+Possible operations are:
+  * ``KVM_S390_MEMOP_LOGICAL_READ``
+  * ``KVM_S390_MEMOP_LOGICAL_WRITE``
+  * ``KVM_S390_MEMOP_ABSOLUTE_READ``
+  * ``KVM_S390_MEMOP_ABSOLUTE_WRITE``
+  * ``KVM_S390_MEMOP_SIDA_READ``
+  * ``KVM_S390_MEMOP_SIDA_WRITE``
+
+Logical read/write:
+
+Access logical memory, i.e. translate the given guest address to an absolute
+address given the state of the VCPU and use the absolute address as target of
+the access. "ar" designates the access register number to be used; the valid
+range is 0..15.
+Logical accesses are permitted for the VCPU ioctl only.
+Logical accesses are permitted for non-protected guests only.
+
+Supported flags:
+  * ``KVM_S390_MEMOP_F_CHECK_ONLY``
+  * ``KVM_S390_MEMOP_F_INJECT_EXCEPTION``
+  * ``KVM_S390_MEMOP_F_SKEY_PROTECTION``
+
+The KVM_S390_MEMOP_F_CHECK_ONLY flag can be set to check whether the
+corresponding memory access would cause an access exception; however,
+no actual access to the data in memory at the destination is performed.
+In this case, "buf" is unused and can be NULL.
+
+In case an access exception occurred during the access (or would occur
+in case of KVM_S390_MEMOP_F_CHECK_ONLY), the ioctl returns a positive
+error number indicating the type of exception. This exception is also
+raised directly at the corresponding VCPU if the flag
+KVM_S390_MEMOP_F_INJECT_EXCEPTION is set.
+
+If the KVM_S390_MEMOP_F_SKEY_PROTECTION flag is set, storage key
+protection is also in effect and may cause exceptions if accesses are
+prohibited given the access key designated by "key"; the valid range is 0..15.
+KVM_S390_MEMOP_F_SKEY_PROTECTION is available if KVM_CAP_S390_MEM_OP_EXTENSION
+is > 0.
+
+Absolute read/write:
+
+Access absolute memory. This operation is intended to be used with the
+KVM_S390_MEMOP_F_SKEY_PROTECTION flag, to allow accessing memory and performing
+the checks required for storage key protection as one operation (as opposed to
+user space getting the storage keys, performing the checks, and accessing
+memory thereafter, which could lead to a delay between check and access).
+Absolute accesses are permitted for the VM ioctl if KVM_CAP_S390_MEM_OP_EXTENSION
+is > 0.
+Currently absolute accesses are not permitted for VCPU ioctls.
+Absolute accesses are permitted for non-protected guests only.
+
+Supported flags:
+  * ``KVM_S390_MEMOP_F_CHECK_ONLY``
+  * ``KVM_S390_MEMOP_F_SKEY_PROTECTION``
+
+The semantics of the flags are as for logical accesses.
+
+SIDA read/write:
+
+Access the secure instruction data area which contains memory operands necessary
+for instruction emulation for protected guests.
+SIDA accesses are available if the KVM_CAP_S390_PROTECTED capability is available.
+SIDA accesses are permitted for the VCPU ioctl only.
+SIDA accesses are permitted for protected guests only.
 
-The "reserved" field is meant for future extensions. It is not used by
-KVM with the currently defined set of flags.
+No flags are supported.
 
 4.90 KVM_S390_GET_SKEYS
 
@@ -3609,6 +3684,18 @@
 Parameters: struct kvm_s390_cmma_log (in, out)
 Returns: 0 on success, a negative value on error
 
+Errors:
+
+  ======     =============================================================
+  ENOMEM     not enough memory can be allocated to complete the task
+  ENXIO      if CMMA is not enabled
+  EINVAL     if KVM_S390_CMMA_PEEK is not set but migration mode was not enabled
+  EINVAL     if KVM_S390_CMMA_PEEK is not set but dirty tracking has been
+             disabled (and thus migration mode was automatically disabled)
+  EFAULT     if the userspace address is invalid or if no page table is
+             present for the addresses (e.g. when using hugepages).
+  ======     =============================================================
+
 This ioctl is used to get the values of the CMMA bits on the s390
 architecture. It is meant to be used in two scenarios:
 - During live migration to save the CMMA values. Live migration needs
@@ -3685,12 +3772,6 @@
 
 values points to the userspace buffer where the result will be stored.
 
-This ioctl can fail with -ENOMEM if not enough memory can be allocated to
-complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
-KVM_S390_CMMA_PEEK is not set but migration mode was not enabled, with
--EFAULT if the userspace address is invalid or if no page table is
-present for the addresses (e.g. when using hugepages).
-
 4.108 KVM_S390_SET_CMMA_BITS
 
 Capability: KVM_CAP_S390_CMMA_MIGRATION
@@ -4127,6 +4208,90 @@
 #define KVM_PMU_EVENT_DENY 1
 
 
+4.122 KVM_S390_NORMAL_RESET
+
+Capability: KVM_CAP_S390_VCPU_RESETS
+Architectures: s390
+Type: vcpu ioctl
+Parameters: none
+Returns: 0
+
+This ioctl resets VCPU registers and control structures according to
+the cpu reset definition in the POP (Principles Of Operation).
+
+4.123 KVM_S390_INITIAL_RESET
+
+Capability: none
+Architectures: s390
+Type: vcpu ioctl
+Parameters: none
+Returns: 0
+
+This ioctl resets VCPU registers and control structures according to
+the initial cpu reset definition in the POP. However, the cpu is not
+put into ESA mode. This reset is a superset of the normal reset.
+
+4.124 KVM_S390_CLEAR_RESET
+
+Capability: KVM_CAP_S390_VCPU_RESETS
+Architectures: s390
+Type: vcpu ioctl
+Parameters: none
+Returns: 0
+
+This ioctl resets VCPU registers and control structures according to
+the clear cpu reset definition in the POP. However, the cpu is not put
+into ESA mode. This reset is a superset of the initial reset.
+
+
+4.125 KVM_S390_PV_COMMAND
+-------------------------
+
+:Capability: KVM_CAP_S390_PROTECTED
+:Architectures: s390
+:Type: vm ioctl
+:Parameters: struct kvm_pv_cmd
+:Returns: 0 on success, < 0 on error
+
+::
+
+  struct kvm_pv_cmd {
+	__u32 cmd;	/* Command to be executed */
+	__u16 rc;	/* Ultravisor return code */
+	__u16 rrc;	/* Ultravisor return reason code */
+	__u64 data;	/* Data or address */
+	__u32 flags;    /* flags for future extensions. Must be 0 for now */
+	__u32 reserved[3];
+  };
+
+cmd values:
+
+KVM_PV_ENABLE
+  Allocate memory and register the VM with the Ultravisor, thereby
+  donating memory to the Ultravisor that will become inaccessible to
+  KVM. All existing CPUs are converted to protected ones. After this
+  command has succeeded, any CPU added via hotplug will become
+  protected during its creation as well.
+
+KVM_PV_DISABLE
+
+  Deregister the VM from the Ultravisor and reclaim the memory that
+  had been donated to the Ultravisor, making it usable by the kernel
+  again.  All registered VCPUs are converted back to non-protected
+  ones.
+
+KVM_PV_VM_SET_SEC_PARMS
+  Pass the image header from VM memory to the Ultravisor in
+  preparation of image unpacking and verification.
+
+KVM_PV_VM_UNPACK
+  Unpack (protect and decrypt) a page of the encrypted boot image.
+
+KVM_PV_VM_VERIFY
+  Verify the integrity of the unpacked image. Only if this succeeds,
+  KVM is allowed to start protected VCPUs.
+
+
 5. The kvm_run structure
 ------------------------
 
@@ -4444,9 +4609,11 @@
 #define KVM_EXIT_HYPERV_SYNIC          1
 #define KVM_EXIT_HYPERV_HCALL          2
 			__u32 type;
+			__u32 pad1;
 			union {
 				struct {
 					__u32 msr;
+					__u32 pad2;
 					__u64 control;
 					__u64 evt_page;
 					__u64 msg_page;
@@ -5322,3 +5489,21 @@
 flush hypercalls by Hyper-V) so userspace should disable KVM identification
 in CPUID and only exposes Hyper-V identification. In this case, guest
 thinks it's running on Hyper-V and only use Hyper-V hypercalls.
+
+8.22 KVM_CAP_S390_VCPU_RESETS
+
+Architectures: s390
+
+This capability indicates that the KVM_S390_NORMAL_RESET and
+KVM_S390_CLEAR_RESET ioctls are available.
+
+8.23 KVM_CAP_S390_PROTECTED
+
+Architecture: s390
+
+
+This capability indicates that the Ultravisor has been initialized and
+KVM can therefore start protected VMs.
+This capability governs the KVM_S390_PV_COMMAND ioctl and the
+KVM_MP_STATE_LOAD MP_STATE. KVM_SET_MP_STATE can fail for protected
+guests when the state change is invalid.
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/devices/s390_flic.txt
+++ linux-ein-5.4.0/Documentation/virt/kvm/devices/s390_flic.txt
@@ -100,15 +100,9 @@
       mask or unmask the adapter, as specified in mask
 
     KVM_S390_IO_ADAPTER_MAP
-      perform a gmap translation for the guest address provided in addr,
-      pin a userspace page for the translated address and add it to the
-      list of mappings
-      Note: A new mapping will be created unconditionally; therefore,
-            the calling code should avoid making duplicate mappings.
-
+      This is now a no-op. The mapping is purely done by the irq route.
     KVM_S390_IO_ADAPTER_UNMAP
-      release a userspace page for the translated address specified in addr
-      from the list of mappings
+      This is now a no-op. The mapping is purely done by the irq route.
 
   KVM_DEV_FLIC_AISM
     modify the adapter-interruption-suppression mode for a given isc if the
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/devices/vm.txt
+++ linux-ein-5.4.0/Documentation/virt/kvm/devices/vm.txt
@@ -183,6 +183,7 @@
 Parameters: address of a buffer in user space to store the data (u8) to
 Returns:    -EFAULT if the given address is not accessible from kernel space
 	    -EINVAL if setting the TOD clock extension to != 0 is not supported
+        -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor)
 
 3.2. ATTRIBUTE: KVM_S390_VM_TOD_LOW
 
@@ -191,6 +192,8 @@
 
 Parameters: address of a buffer in user space to store the data (u64) to
 Returns:    -EFAULT if the given address is not accessible from kernel space
+        -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor)
+
 
 3.3. ATTRIBUTE: KVM_S390_VM_TOD_EXT
 Allows user space to set/get bits 0-63 of the TOD clock register as defined in
@@ -202,6 +205,7 @@
             (kvm_s390_vm_tod_clock) to
 Returns:    -EFAULT if the given address is not accessible from kernel space
 	    -EINVAL if setting the TOD clock extension to != 0 is not supported
+        -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor)
 
 4. GROUP: KVM_S390_VM_CRYPTO
 Architectures: s390
@@ -254,6 +258,10 @@
 Setting this attribute when migration mode is already active will have
 no effects.
 
+Dirty tracking must be enabled on all memslots, else -EINVAL is returned. When
+dirty tracking is disabled on any memslot, migration mode is automatically
+stopped.
+
 Parameters: none
 Returns:    -ENOMEM if there is not enough free memory to start migration mode
 	    -EINVAL if the state of the VM is invalid (e.g. no memory defined)
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/index.rst
+++ linux-ein-5.4.0/Documentation/virt/kvm/index.rst
@@ -9,4 +9,6 @@
 
    amd-memory-encryption
    cpuid
+   s390-pv
+   s390-pv-boot
    vcpu-requests
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/mmu.txt
+++ linux-ein-5.4.0/Documentation/virt/kvm/mmu.txt
@@ -152,8 +152,8 @@
     shadow pages) so role.quadrant takes values in the range 0..3.  Each
     quadrant maps 1GB virtual address space.
   role.access:
-    Inherited guest access permissions in the form uwx.  Note execute
-    permission is positive, not negative.
+    Inherited guest access permissions from the parent ptes in the form uwx.
+    Note execute permission is positive, not negative.
   role.invalid:
     The page is invalid and should not be used.  It is a root page that is
     currently pinned (by a cpu hardware register pointing to it); once it is
@@ -420,7 +420,7 @@
 number, it will ignore the cached MMIO information and handle the page
 fault through the slow path.
 
-Since only 19 bits are used to store generation-number on mmio spte, all
+Since only 18 bits are used to store generation-number on mmio spte, all
 pages are zapped when there is an overflow.
 
 Unfortunately, a single memory access might access kvm_memslots(kvm) multiple
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/s390-pv-boot.rst
+++ linux-ein-5.4.0/Documentation/virt/kvm/s390-pv-boot.rst
@@ -0,0 +1,84 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+======================================
+s390 (IBM Z) Boot/IPL of Protected VMs
+======================================
+
+Summary
+-------
+The memory of Protected Virtual Machines (PVMs) is not accessible to
+I/O or the hypervisor. In those cases where the hypervisor needs to
+access the memory of a PVM, that memory must be made accessible.
+Memory made accessible to the hypervisor will be encrypted. See
+:doc:`s390-pv` for details."
+
+On IPL (boot) a small plaintext bootloader is started, which provides
+information about the encrypted components and necessary metadata to
+KVM to decrypt the protected virtual machine.
+
+Based on this data, KVM will make the protected virtual machine known
+to the Ultravisor (UV) and instruct it to secure the memory of the
+PVM, decrypt the components and verify the data and address list
+hashes, to ensure integrity. Afterwards KVM can run the PVM via the
+SIE instruction which the UV will intercept and execute on KVM's
+behalf.
+
+As the guest image is just like an opaque kernel image that does the
+switch into PV mode itself, the user can load encrypted guest
+executables and data via every available method (network, dasd, scsi,
+direct kernel, ...) without the need to change the boot process.
+
+
+Diag308
+-------
+This diagnose instruction is the basic mechanism to handle IPL and
+related operations for virtual machines. The VM can set and retrieve
+IPL information blocks, that specify the IPL method/devices and
+request VM memory and subsystem resets, as well as IPLs.
+
+For PVMs this concept has been extended with new subcodes:
+
+Subcode 8: Set an IPL Information Block of type 5 (information block
+for PVMs)
+Subcode 9: Store the saved block in guest memory
+Subcode 10: Move into Protected Virtualization mode
+
+The new PV load-device-specific-parameters field specifies all data
+that is necessary to move into PV mode.
+
+* PV Header origin
+* PV Header length
+* List of Components composed of
+   * AES-XTS Tweak prefix
+   * Origin
+   * Size
+
+The PV header contains the keys and hashes, which the UV will use to
+decrypt and verify the PV, as well as control flags and a start PSW.
+
+The components are for instance an encrypted kernel, kernel parameters
+and initrd. The components are decrypted by the UV.
+
+After the initial import of the encrypted data, all defined pages will
+contain the guest content. All non-specified pages will start out as
+zero pages on first access.
+
+
+When running in protected virtualization mode, some subcodes will result in
+exceptions or return error codes.
+
+Subcodes 4 and 7, which specify operations that do not clear the guest
+memory, will result in specification exceptions. This is because the
+UV will clear all memory when a secure VM is removed, and therefore
+non-clearing IPL subcodes are not allowed.
+
+Subcodes 8, 9, 10 will result in specification exceptions.
+Re-IPL into a protected mode is only possible via a detour into non
+protected mode.
+
+Keys
+----
+Every CEC will have a unique public key to enable tooling to build
+encrypted images.
+See  `s390-tools <https://github.com/ibm-s390-tools/s390-tools/>`_
+for the tooling.
--- linux-ein-5.4.0.orig/Documentation/virt/kvm/s390-pv.rst
+++ linux-ein-5.4.0/Documentation/virt/kvm/s390-pv.rst
@@ -0,0 +1,116 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=========================================
+s390 (IBM Z) Ultravisor and Protected VMs
+=========================================
+
+Summary
+-------
+Protected virtual machines (PVM) are KVM VMs that do not allow KVM to
+access VM state like guest memory or guest registers. Instead, the
+PVMs are mostly managed by a new entity called Ultravisor (UV). The UV
+provides an API that can be used by PVMs and KVM to request management
+actions.
+
+Each guest starts in non-protected mode and then may make a request to
+transition into protected mode. On transition, KVM registers the guest
+and its VCPUs with the Ultravisor and prepares everything for running
+it.
+
+The Ultravisor will secure and decrypt the guest's boot memory
+(i.e. kernel/initrd). It will safeguard state changes like VCPU
+starts/stops and injected interrupts while the guest is running.
+
+As access to the guest's state, such as the SIE state description, is
+normally needed to be able to run a VM, some changes have been made in
+the behavior of the SIE instruction. A new format 4 state description
+has been introduced, where some fields have different meanings for a
+PVM. SIE exits are minimized as much as possible to improve speed and
+reduce exposed guest state.
+
+
+Interrupt injection
+-------------------
+Interrupt injection is safeguarded by the Ultravisor. As KVM doesn't
+have access to the VCPUs' lowcores, injection is handled via the
+format 4 state description.
+
+Machine check, external, IO and restart interruptions each can be
+injected on SIE entry via a bit in the interrupt injection control
+field (offset 0x54). If the guest cpu is not enabled for the interrupt
+at the time of injection, a validity interception is recognized. The
+format 4 state description contains fields in the interception data
+block where data associated with the interrupt can be transported.
+
+Program and Service Call exceptions have another layer of
+safeguarding; they can only be injected for instructions that have
+been intercepted into KVM. The exceptions need to be a valid outcome
+of an instruction emulation by KVM, e.g. we can never inject a
+addressing exception as they are reported by SIE since KVM has no
+access to the guest memory.
+
+
+Mask notification interceptions
+-------------------------------
+KVM cannot intercept lctl(g) and lpsw(e) anymore in order to be
+notified when a PVM enables a certain class of interrupt.  As a
+replacement, two new interception codes have been introduced: One
+indicating that the contents of CRs 0, 6, or 14 have been changed,
+indicating different interruption subclasses; and one indicating that
+PSW bit 13 has been changed, indicating that a machine check
+intervention was requested and those are now enabled.
+
+Instruction emulation
+---------------------
+With the format 4 state description for PVMs, the SIE instruction already
+interprets more instructions than it does with format 2. It is not able
+to interpret every instruction, but needs to hand some tasks to KVM;
+therefore, the SIE and the ultravisor safeguard emulation inputs and outputs.
+
+The control structures associated with SIE provide the Secure
+Instruction Data Area (SIDA), the Interception Parameters (IP) and the
+Secure Interception General Register Save Area.  Guest GRs and most of
+the instruction data, such as I/O data structures, are filtered.
+Instruction data is copied to and from the SIDA when needed.  Guest
+GRs are put into / retrieved from the Secure Interception General
+Register Save Area.
+
+Only GR values needed to emulate an instruction will be copied into this
+save area and the real register numbers will be hidden.
+
+The Interception Parameters state description field still contains the
+the bytes of the instruction text, but with pre-set register values
+instead of the actual ones. I.e. each instruction always uses the same
+instruction text, in order not to leak guest instruction text.
+This also implies that the register content that a guest had in r<n>
+may be in r<m> from the hypervisor's point of view.
+
+The Secure Instruction Data Area contains instruction storage
+data. Instruction data, i.e. data being referenced by an instruction
+like the SCCB for sclp, is moved via the SIDA. When an instruction is
+intercepted, the SIE will only allow data and program interrupts for
+this instruction to be moved to the guest via the two data areas
+discussed before. Other data is either ignored or results in validity
+interceptions.
+
+
+Instruction emulation interceptions
+-----------------------------------
+There are two types of SIE secure instruction intercepts: the normal
+and the notification type. Normal secure instruction intercepts will
+make the guest pending for instruction completion of the intercepted
+instruction type, i.e. on SIE entry it is attempted to complete
+emulation of the instruction with the data provided by KVM. That might
+be a program exception or instruction completion.
+
+The notification type intercepts inform KVM about guest environment
+changes due to guest instruction interpretation. Such an interception
+is recognized, for example, for the store prefix instruction to provide
+the new lowcore location. On SIE reentry, any KVM data in the data areas
+is ignored and execution continues as if the guest instruction had
+completed. For that reason KVM is not allowed to inject a program
+interrupt.
+
+Links
+-----
+`KVM Forum 2019 presentation <https://static.sched.com/hosted_files/kvmforum2019/3b/ibm_protected_vms_s390x.pdf>`_
--- linux-ein-5.4.0.orig/Documentation/vm/memory-model.rst
+++ linux-ein-5.4.0/Documentation/vm/memory-model.rst
@@ -52,8 +52,7 @@
 usable until the call to :c:func:`memblock_free_all` that hands all
 the memory to the page allocator.
 
-If an architecture enables `CONFIG_ARCH_HAS_HOLES_MEMORYMODEL` option,
-it may free parts of the `mem_map` array that do not cover the
+An architecture may free parts of the `mem_map` array that do not cover the
 actual physical pages. In such case, the architecture specific
 :c:func:`pfn_valid` implementation should take the holes in the
 `mem_map` into account.
--- linux-ein-5.4.0.orig/Documentation/vm/slub.rst
+++ linux-ein-5.4.0/Documentation/vm/slub.rst
@@ -160,7 +160,7 @@
 Here is a sample of slub debug output::
 
  ====================================================================
- BUG kmalloc-8: Redzone overwritten
+ BUG kmalloc-8: Right Redzone overwritten
  --------------------------------------------------------------------
 
  INFO: 0xc90f6d28-0xc90f6d2b. First byte 0x00 instead of 0xcc
@@ -168,10 +168,10 @@
  INFO: Object 0xc90f6d20 @offset=3360 fp=0xc90f6d58
  INFO: Allocated in get_modalias+0x61/0xf5 age=53 cpu=1 pid=554
 
- Bytes b4 0xc90f6d10:  00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ
-   Object 0xc90f6d20:  31 30 31 39 2e 30 30 35                         1019.005
-  Redzone 0xc90f6d28:  00 cc cc cc                                     .
-  Padding 0xc90f6d50:  5a 5a 5a 5a 5a 5a 5a 5a                         ZZZZZZZZ
+ Bytes b4 (0xc90f6d10): 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ
+ Object   (0xc90f6d20): 31 30 31 39 2e 30 30 35                         1019.005
+ Redzone  (0xc90f6d28): 00 cc cc cc                                     .
+ Padding  (0xc90f6d50): 5a 5a 5a 5a 5a 5a 5a 5a                         ZZZZZZZZ
 
    [<c010523d>] dump_trace+0x63/0x1eb
    [<c01053df>] show_trace_log_lvl+0x1a/0x2f
--- linux-ein-5.4.0.orig/Documentation/x86/topology.rst
+++ linux-ein-5.4.0/Documentation/x86/topology.rst
@@ -41,6 +41,8 @@
 Packages contain a number of cores plus shared resources, e.g. DRAM
 controller, shared caches etc.
 
+Modern systems may also use the term 'Die' for package.
+
 AMD nomenclature for package is 'Node'.
 
 Package-related topology information in the kernel:
@@ -53,11 +55,18 @@
 
     The number of dies in a package. This information is retrieved via CPUID.
 
+  - cpuinfo_x86.cpu_die_id:
+
+    The physical ID of the die. This information is retrieved via CPUID.
+
   - cpuinfo_x86.phys_proc_id:
 
     The physical ID of the package. This information is retrieved via CPUID
     and deduced from the APIC IDs of the cores in the package.
 
+    Modern systems use this value for the socket. There may be multiple
+    packages within a socket. This value may differ from cpu_die_id.
+
   - cpuinfo_x86.logical_proc_id:
 
     The logical ID of the package. As we do not trust BIOSes to enumerate the
--- linux-ein-5.4.0.orig/Documentation/xtensa/mmu.rst
+++ linux-ein-5.4.0/Documentation/xtensa/mmu.rst
@@ -82,7 +82,8 @@
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0xc0000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0xc7ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0xc8000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
@@ -124,7 +125,8 @@
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0xa0000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0xa7ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0xa8000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
@@ -167,7 +169,8 @@
   +------------------+
   | VMALLOC area     |  VMALLOC_START            0x90000000  128MB - 64KB
   +------------------+  VMALLOC_END
-  | Cache aliasing   |  TLBTEMP_BASE_1           0x97ff0000  DCACHE_WAY_SIZE
+  +------------------+
+  | Cache aliasing   |  TLBTEMP_BASE_1           0x98000000  DCACHE_WAY_SIZE
   | remap area 1     |
   +------------------+
   | Cache aliasing   |  TLBTEMP_BASE_2                       DCACHE_WAY_SIZE
--- linux-ein-5.4.0.orig/Kconfig
+++ linux-ein-5.4.0/Kconfig
@@ -21,6 +21,8 @@
 
 source "drivers/Kconfig"
 
+source "ubuntu/Kconfig"
+
 source "fs/Kconfig"
 
 source "security/Kconfig"
--- linux-ein-5.4.0.orig/MAINTAINERS
+++ linux-ein-5.4.0/MAINTAINERS
@@ -537,6 +537,17 @@
 F:	Documentation/scsi/advansys.txt
 F:	drivers/scsi/advansys.c
 
+ADVANTECH AHC1EC0 EMBEDDED CONTROLLER DRIVER
+M:	Campion Kang <campion.kang@advantech.com.tw>
+L:	linux-kernel@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
+F:	drivers/hwmon/ahc1ec0-hwmon.c
+F:	drivers/mfd/ahc1ec0.c
+F:	drivers/watchdog/ahc1ec0-wdt.c
+F:	include/dt-bindings/mfd/ahc1ec0-dt.h
+F:	include/linux/mfd/ahc1ec0.h
+
 ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
 M:	Michael Hennerich <michael.hennerich@analog.com>
 W:	http://wiki.analog.com/ADXL345
@@ -1101,7 +1112,7 @@
 M:	William Breathitt Gray <vilhelm.gray@gmail.com>
 L:	linux-iio@vger.kernel.org
 S:	Maintained
-F:	drivers/iio/adc/stx104.c
+F:	drivers/iio/addac/stx104.c
 
 APM DRIVER
 M:	Jiri Kosina <jikos@kernel.org>
@@ -2832,6 +2843,19 @@
 F:	include/uapi/linux/audit.h
 F:	kernel/audit*
 
+AUFS (advanced multi layered unification filesystem) FILESYSTEM
+M:	"J. R. Okajima" <hooanon05g@gmail.com>
+L:	aufs-users@lists.sourceforge.net (members only)
+L:	linux-unionfs@vger.kernel.org
+W:	http://aufs.sourceforge.net
+T:	git://github.com/sfjro/aufs4-linux.git
+S:	Supported
+F:	Documentation/filesystems/aufs/
+F:	Documentation/ABI/testing/debugfs-aufs
+F:	Documentation/ABI/testing/sysfs-aufs
+F:	fs/aufs/
+F:	include/uapi/linux/aufs_type.h
+
 AUXILIARY DISPLAY DRIVERS
 M:	Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
 S:	Maintained
@@ -4028,6 +4052,7 @@
 C:	irc://chat.freenode.net/clangbuiltlinux
 S:	Supported
 K:	\b(?i:clang|llvm)\b
+F:	Documentation/kbuild/llvm.rst
 
 CLEANCACHE API
 M:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
@@ -4616,13 +4641,6 @@
 F:	include/linux/tfrc.h
 F:	net/dccp/
 
-DECnet NETWORK LAYER
-W:	http://linux-decnet.sourceforge.net
-L:	linux-decnet-user@lists.sourceforge.net
-S:	Orphan
-F:	Documentation/networking/decnet.txt
-F:	net/decnet/
-
 DECSTATION PLATFORM SUPPORT
 M:	"Maciej W. Rozycki" <macro@linux-mips.org>
 L:	linux-mips@vger.kernel.org
@@ -6775,6 +6793,17 @@
 F:	tools/perf/bench/futex*
 F:	Documentation/*futex*
 
+GATEWORKS SYSTEM CONTROLLER (GSC) DRIVER
+M:	Tim Harvey <tharvey@gateworks.com>
+M:	Robert Jones <rjones@gateworks.com>
+S:	Maintained
+F:	Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml
+F:	drivers/mfd/gateworks-gsc.c
+F:	include/linux/mfd/gsc.h
+F:	Documentation/hwmon/gsc-hwmon.rst
+F:	drivers/hwmon/gsc-hwmon.c
+F:	include/linux/platform_data/gsc_hwmon.h
+
 GCC PLUGINS
 M:	Kees Cook <keescook@chromium.org>
 R:	Emese Revfy <re.emese@gmail.com>
@@ -6973,6 +7002,7 @@
 S:	Maintained
 F:	Documentation/firmware-guide/acpi/gpio-properties.rst
 F:	drivers/gpio/gpiolib-acpi.c
+F:	drivers/gpio/gpiolib-acpi.h
 
 GPIO IR Transmitter
 M:	Sean Young <sean@mess.org>
@@ -7364,6 +7394,25 @@
 F:	net/802/hippi.c
 F:	drivers/net/hippi/
 
+HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
+M:	Zaibo Xu <xuzaibo@huawei.com>
+L:	linux-crypto@vger.kernel.org
+S:	Maintained
+F:	drivers/crypto/hisilicon/sec2/sec_crypto.c
+F:	drivers/crypto/hisilicon/sec2/sec_main.c
+F:	drivers/crypto/hisilicon/sec2/sec_crypto.h
+F:	drivers/crypto/hisilicon/sec2/sec.h
+F:	Documentation/ABI/testing/debugfs-hisi-sec
+
+HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
+M:	Zaibo Xu <xuzaibo@huawei.com>
+L:	linux-crypto@vger.kernel.org
+S:	Maintained
+F:	drivers/crypto/hisilicon/hpre/hpre_crypto.c
+F:	drivers/crypto/hisilicon/hpre/hpre_main.c
+F:	drivers/crypto/hisilicon/hpre/hpre.h
+F:	Documentation/ABI/testing/debugfs-hisi-hpre
+
 HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
 M:	Yisen Zhuang <yisen.zhuang@huawei.com>
 M:	Salil Mehta <salil.mehta@huawei.com>
@@ -7372,6 +7421,11 @@
 S:	Maintained
 F:	drivers/net/ethernet/hisilicon/hns3/
 
+HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
+M:	Zaibo Xu <xuzaibo@huawei.com>
+S:	Maintained
+F:	drivers/char/hw_random/hisi-trng-v2.c
+
 HISILICON LPC BUS DRIVER
 M:	john.garry@huawei.com
 W:	http://www.hisilicon.com
@@ -7410,6 +7464,12 @@
 F:	drivers/scsi/hisi_sas/
 F:	Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
 
+HISILICON V3XX SPI NOR FLASH Controller Driver
+M:	John Garry <john.garry@huawei.com>
+W:	http://www.hisilicon.com
+S:	Maintained
+F:	drivers/spi/spi-hisi-sfc-v3xx.c
+
 HISILICON QM AND ZIP Controller DRIVER
 M:	Zhou Wang <wangzhou1@hisilicon.com>
 L:	linux-crypto@vger.kernel.org
@@ -7417,7 +7477,6 @@
 F:	drivers/crypto/hisilicon/qm.c
 F:	drivers/crypto/hisilicon/qm.h
 F:	drivers/crypto/hisilicon/sgl.c
-F:	drivers/crypto/hisilicon/sgl.h
 F:	drivers/crypto/hisilicon/zip/
 F:	Documentation/ABI/testing/debugfs-hisi-zip
 
@@ -8200,7 +8259,7 @@
 M:	Rodrigo Vivi <rodrigo.vivi@intel.com>
 L:	intel-gfx@lists.freedesktop.org
 W:	https://01.org/linuxgraphics/
-B:	https://01.org/linuxgraphics/documentation/how-report-bugs
+B:	https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 C:	irc://chat.freenode.net/intel-gfx
 Q:	http://patchwork.freedesktop.org/project/intel-gfx/
 T:	git git://anongit.freedesktop.org/drm-intel
@@ -8703,8 +8762,10 @@
 L:	netdev@vger.kernel.org
 W:	http://www.isdn4linux.de
 S:	Maintained
-F:	drivers/isdn/mISDN
-F:	drivers/isdn/hardware
+F:	drivers/isdn/mISDN/
+F:	drivers/isdn/hardware/
+F:	drivers/isdn/Kconfig
+F:	drivers/isdn/Makefile
 
 ISDN/CAPI SUBSYSTEM
 M:	Karsten Keil <isdn@linux-pingi.de>
@@ -8991,6 +9052,7 @@
 W:	http://www.ibm.com/developerworks/linux/linux390/
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
 S:	Supported
+F:	Documentation/virt/kvm/s390*
 F:	arch/s390/include/uapi/asm/kvm*
 F:	arch/s390/include/asm/gmap.h
 F:	arch/s390/include/asm/kvm*
@@ -11662,6 +11724,14 @@
 F:	drivers/iio/gyro/fxas21002c_i2c.c
 F:	drivers/iio/gyro/fxas21002c_spi.c
 
+NXP i.MX 8MQ DCSS DRIVER
+M:	Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
+R:	Lucas Stach <l.stach@pengutronix.de>
+L:	dri-devel@lists.freedesktop.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
+F:	drivers/gpu/drm/imx/dcss/
+
 NXP SGTL5000 DRIVER
 M:	Fabio Estevam <festevam@gmail.com>
 L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
@@ -12067,6 +12137,7 @@
 M:	Jens Wiklander <jens.wiklander@linaro.org>
 L:	tee-dev@lists.linaro.org
 S:	Maintained
+F:	Documentation/ABI/testing/sysfs-bus-optee-devices
 F:	drivers/tee/optee/
 
 OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER
@@ -13636,6 +13707,7 @@
 
 RANDOM NUMBER DRIVER
 M:	"Theodore Ts'o" <tytso@mit.edu>
+M:	Jason A. Donenfeld <Jason@zx2c4.com>
 S:	Maintained
 F:	drivers/char/random.c
 
@@ -14131,6 +14203,7 @@
 S:	Supported
 F:	arch/s390/pci/
 F:	drivers/pci/hotplug/s390_pci_hpc.c
+F:	Documentation/s390/pci.rst
 
 S390 VFIO-CCW DRIVER
 M:	Cornelia Huck <cohuck@redhat.com>
@@ -14656,6 +14729,7 @@
 S:	Maintained
 F:	drivers/net/phy/phylink.c
 F:	drivers/net/phy/sfp*
+F:	include/linux/mdio/mdio-i2c.h
 F:	include/linux/phylink.h
 F:	include/linux/sfp.h
 K:	phylink
@@ -17859,7 +17933,8 @@
 F:	sound/xen/*
 
 XFS FILESYSTEM
-M:	Darrick J. Wong <darrick.wong@oracle.com>
+M:	Chandan Babu R <chandan.babu@oracle.com>
+M:	Darrick J. Wong <djwong@kernel.org>
 M:	linux-xfs@vger.kernel.org
 L:	linux-xfs@vger.kernel.org
 W:	http://xfs.org/
--- linux-ein-5.4.0.orig/Makefile
+++ linux-ein-5.4.0/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 0
+SUBLEVEL = 259
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
@@ -89,9 +89,16 @@
 
 # If the user is running make -s (silent mode), suppress echoing of
 # commands
+# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
 
-ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
-  quiet=silent_
+ifeq ($(filter 3.%,$(MAKE_VERSION)),)
+silence:=$(findstring s,$(firstword -$(MAKEFLAGS)))
+else
+silence:=$(findstring s,$(filter-out --%,$(MAKEFLAGS)))
+endif
+
+ifeq ($(silence),s)
+quiet=silent_
 endif
 
 export quiet Q KBUILD_VERBOSE
@@ -206,6 +213,20 @@
   KBUILD_CHECKSRC = 0
 endif
 
+# Call message checker as part of the C compilation
+#
+# Use 'make D=1' to enable checking
+# Use 'make D=2' to create the message catalog
+
+ifdef D
+  ifeq ("$(origin D)", "command line")
+    KBUILD_KMSG_CHECK = $(D)
+  endif
+endif
+ifndef KBUILD_KMSG_CHECK
+  KBUILD_KMSG_CHECK = 0
+endif
+
 # Use make M=dir or set the environment variable KBUILD_EXTMOD to specify the
 # directory of external module to build. Setting M= takes precedence.
 ifeq ("$(origin M)", "command line")
@@ -394,8 +415,13 @@
 HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null)
 HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null)
 
-HOSTCC       = gcc
-HOSTCXX      = g++
+ifneq ($(LLVM),)
+HOSTCC	= clang
+HOSTCXX	= clang++
+else
+HOSTCC	= gcc
+HOSTCXX	= g++
+endif
 KBUILD_HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
 		-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS) \
 		$(HOSTCFLAGS)
@@ -404,31 +430,49 @@
 KBUILD_HOSTLDLIBS   := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
 
 # Make variables (CC, etc...)
-AS		= $(CROSS_COMPILE)as
-LD		= $(CROSS_COMPILE)ld
-CC		= $(CROSS_COMPILE)gcc
 CPP		= $(CC) -E
+ifneq ($(LLVM),)
+CC		= clang
+LD		= ld.lld
+AR		= llvm-ar
+NM		= llvm-nm
+OBJCOPY		= llvm-objcopy
+OBJDUMP		= llvm-objdump
+READELF		= llvm-readelf
+OBJSIZE		= llvm-size
+STRIP		= llvm-strip
+else
+CC		= $(CROSS_COMPILE)gcc
+LD		= $(CROSS_COMPILE)ld
 AR		= $(CROSS_COMPILE)ar
 NM		= $(CROSS_COMPILE)nm
-STRIP		= $(CROSS_COMPILE)strip
 OBJCOPY		= $(CROSS_COMPILE)objcopy
 OBJDUMP		= $(CROSS_COMPILE)objdump
+READELF		= $(CROSS_COMPILE)readelf
 OBJSIZE		= $(CROSS_COMPILE)size
+STRIP		= $(CROSS_COMPILE)strip
+endif
 PAHOLE		= pahole
 LEX		= flex
 YACC		= bison
 AWK		= awk
 INSTALLKERNEL  := installkernel
-DEPMOD		= /sbin/depmod
+DEPMOD		= depmod
 PERL		= perl
 PYTHON		= python
-PYTHON2		= python2
 PYTHON3		= python3
 CHECK		= sparse
 BASH		= bash
+KGZIP		= gzip
+KBZIP2		= bzip2
+KLZOP		= lzop
+LZMA		= lzma
+LZ4		= lz4c
+XZ		= xz
 
 CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
 		  -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
+KMSG_CHECK	= $(srctree)/scripts/kmsg-doc
 NOSTDINC_FLAGS :=
 CFLAGS_MODULE   =
 AFLAGS_MODULE   =
@@ -437,6 +481,13 @@
 AFLAGS_KERNEL	=
 LDFLAGS_vmlinux =
 
+# Prefer linux-backports-modules
+ifneq ($(KBUILD_SRC),)
+ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes)
+UBUNTUINCLUDE := -I/usr/src/linux-headers-lbm-$(KERNELRELEASE)
+endif
+endif
+
 # Use USERINCLUDE when you must reference the UAPI directories only.
 USERINCLUDE    := \
 		-I$(srctree)/arch/$(SRCARCH)/include/uapi \
@@ -448,17 +499,21 @@
 # Use LINUXINCLUDE when you must reference the include/ directory.
 # Needed to be compatible with the O= option
 LINUXINCLUDE    := \
+		$(UBUNTUINCLUDE) \
 		-I$(srctree)/arch/$(SRCARCH)/include \
 		-I$(objtree)/arch/$(SRCARCH)/include/generated \
 		$(if $(building_out_of_srctree),-I$(srctree)/include) \
 		-I$(objtree)/include \
 		$(USERINCLUDE)
 
+# UBUNTU: Include our third party driver stuff too
+LINUXINCLUDE   += -Iubuntu/include $(if $(KBUILD_SRC),-I$(srctree)/ubuntu/include)
+
 KBUILD_AFLAGS   := -D__ASSEMBLY__ -fno-PIE
 KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
 		   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
 		   -Werror=implicit-function-declaration -Werror=implicit-int \
-		   -Wno-format-security \
+		   -Werror=return-type -Wno-format-security \
 		   -std=gnu89
 KBUILD_CPPFLAGS := -D__KERNEL__
 KBUILD_AFLAGS_KERNEL :=
@@ -471,15 +526,17 @@
 GCC_PLUGINS_CFLAGS :=
 CLANG_FLAGS :=
 
-export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
-export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE PAHOLE LEX YACC AWK INSTALLKERNEL
-export PERL PYTHON PYTHON2 PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
+export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
+export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE READELF PAHOLE LEX YACC AWK INSTALLKERNEL
+export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
+export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ
 export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
 export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
 export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN
 export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
+export KBUILD_KMSG_CHECK KMSG_CHECK
 export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
 export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
 
@@ -528,13 +585,13 @@
 ifneq ($(CROSS_COMPILE),)
 CLANG_FLAGS	+= --target=$(notdir $(CROSS_COMPILE:%-=%))
 GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
-CLANG_FLAGS	+= --prefix=$(GCC_TOOLCHAIN_DIR)
+CLANG_FLAGS	+= --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
 GCC_TOOLCHAIN	:= $(realpath $(GCC_TOOLCHAIN_DIR)/..)
 endif
 ifneq ($(GCC_TOOLCHAIN),)
 CLANG_FLAGS	+= --gcc-toolchain=$(GCC_TOOLCHAIN)
 endif
-ifeq ($(shell $(AS) --version 2>&1 | head -n 1 | grep clang),)
+ifneq ($(LLVM_IAS),1)
 CLANG_FLAGS	+= -no-integrated-as
 endif
 CLANG_FLAGS	+= -Werror=unknown-warning-option
@@ -587,12 +644,8 @@
 KBUILD_BUILTIN := 1
 
 # If we have only "make modules", don't compile built-in objects.
-# When we're building modules with modversions, we need to consider
-# the built-in objects during the descend as well, in order to
-# make sure the checksums are up to date before we record them.
-
 ifeq ($(MAKECMDGOALS),modules)
-  KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1)
+  KBUILD_BUILTIN :=
 endif
 
 # If we have "make <whatever> modules", compile modules
@@ -616,9 +669,8 @@
 ifeq ($(KBUILD_EXTMOD),)
 # Objects we will link into vmlinux / subdirs we need to visit
 init-y		:= init/
-drivers-y	:= drivers/ sound/
+drivers-y	:= drivers/ sound/ ubuntu/
 drivers-$(CONFIG_SAMPLES) += samples/
-drivers-$(CONFIG_KERNEL_HEADER_TEST) += include/
 net-y		:= net/
 libs-y		:= lib/
 core-y		:= usr/
@@ -708,12 +760,9 @@
 KBUILD_CFLAGS += -Os
 endif
 
-ifdef CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED
-KBUILD_CFLAGS   += -Wno-maybe-uninitialized
-endif
-
 # Tell gcc to never replace conditional load with a non-conditional one
 KBUILD_CFLAGS	+= $(call cc-option,--param=allow-store-data-races=0)
+KBUILD_CFLAGS	+= $(call cc-option,-fno-allow-store-data-races)
 
 include scripts/Makefile.kcov
 include scripts/Makefile.gcc-plugins
@@ -750,17 +799,21 @@
 KBUILD_CFLAGS += -mno-global-merge
 else
 
-# These warnings generated too much noise in a regular build.
-# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
-KBUILD_CFLAGS += -Wno-unused-but-set-variable
-
 # Warn about unmarked fall-throughs in switch statement.
 # Disabled for clang while comment to attribute conversion happens and
 # https://github.com/ClangBuiltLinux/linux/issues/636 is discussed.
 KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,)
 endif
 
+# These warnings generated too much noise in a regular build.
+# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
+KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
+
 KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
+
+# These result in bogus false positives
+KBUILD_CFLAGS += $(call cc-disable-warning, dangling-pointer)
+
 ifdef CONFIG_FRAME_POINTER
 KBUILD_CFLAGS	+= -fno-omit-frame-pointer -fno-optimize-sibling-calls
 else
@@ -787,8 +840,13 @@
 else
 DEBUG_CFLAGS	+= -g
 endif
+ifeq ($(LLVM_IAS),1)
+KBUILD_AFLAGS	+= -g
+else
 KBUILD_AFLAGS	+= -Wa,-gdwarf-2
 endif
+endif
+
 ifdef CONFIG_DEBUG_INFO_DWARF4
 DEBUG_CFLAGS	+= -gdwarf-4
 endif
@@ -861,6 +919,17 @@
 # disable stringop warnings in gcc 8+
 KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
 
+# We'll want to enable this eventually, but it's not going away for 5.7 at least
+KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
+KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
+KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
+
+# Another good warning that we'll want to enable eventually
+KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
+
+# Enabled with W=2, disabled by default as noisy
+KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
+
 # disable invalid "can't wrap" optimizations for signed / pointers
 KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
 
@@ -891,12 +960,6 @@
 # change __FILE__ to the relative path from the srctree
 KBUILD_CFLAGS	+= $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
 
-# ensure -fcf-protection is disabled when using retpoline as it is
-# incompatible with -mindirect-branch=thunk-extern
-ifdef CONFIG_RETPOLINE
-KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
-endif
-
 include scripts/Makefile.kasan
 include scripts/Makefile.extrawarn
 include scripts/Makefile.ubsan
@@ -909,12 +972,15 @@
 KBUILD_LDFLAGS_MODULE += --build-id
 LDFLAGS_vmlinux += --build-id
 
+KBUILD_LDFLAGS	+= -z noexecstack
+KBUILD_LDFLAGS	+= $(call ld-option,--no-warn-rwx-segments)
+
 ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
 LDFLAGS_vmlinux	+= $(call ld-option, -X,)
 endif
 
 ifeq ($(CONFIG_RELR),y)
-LDFLAGS_vmlinux	+= --pack-dyn-relocs=relr
+LDFLAGS_vmlinux	+= --pack-dyn-relocs=relr --use-android-relr-tags
 endif
 
 # make the checker run with the right architecture
@@ -978,10 +1044,10 @@
 mod_compress_cmd = true
 ifdef CONFIG_MODULE_COMPRESS
   ifdef CONFIG_MODULE_COMPRESS_GZIP
-    mod_compress_cmd = gzip -n -f
+    mod_compress_cmd = $(KGZIP) -n -f
   endif # CONFIG_MODULE_COMPRESS_GZIP
   ifdef CONFIG_MODULE_COMPRESS_XZ
-    mod_compress_cmd = xz -f
+    mod_compress_cmd = $(XZ) -f
   endif # CONFIG_MODULE_COMPRESS_XZ
 endif # CONFIG_MODULE_COMPRESS
 export mod_compress_cmd
@@ -999,7 +1065,7 @@
 
 ifdef CONFIG_STACK_VALIDATION
   has_libelf := $(call try-run,\
-		echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0)
+		echo "int main() {}" | $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0)
   ifeq ($(has_libelf),1)
     objtool_target := tools/objtool FORCE
   else
@@ -1050,7 +1116,7 @@
 ifdef CONFIG_TRIM_UNUSED_KSYMS
 autoksyms_recursive: descend modules.order
 	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
-	  "$(MAKE) -f $(srctree)/Makefile vmlinux"
+	  "$(MAKE) -f $(srctree)/Makefile autoksyms_recursive"
 endif
 
 # For the kernel to actually contain only the needed exported symbols,
@@ -1152,11 +1218,19 @@
 endef
 
 define filechk_version.h
-	echo \#define LINUX_VERSION_CODE $(shell                         \
-	expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
-	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
+	if [ $(SUBLEVEL) -gt 255 ]; then                                 \
+		echo \#define LINUX_VERSION_CODE $(shell                 \
+		expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + 255); \
+	else                                                             \
+		echo \#define LINUX_VERSION_CODE $(shell                 \
+		expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
+	fi;                                                              \
+	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) +  \
+	((c) > 255 ? 255 : (c)))'
 endef
 
+$(version_h): PATCHLEVEL := $(if $(PATCHLEVEL), $(PATCHLEVEL), 0)
+$(version_h): SUBLEVEL := $(if $(SUBLEVEL), $(SUBLEVEL), 0)
 $(version_h): FORCE
 	$(call filechk,version.h)
 	$(Q)rm -f $(old_version_h)
@@ -1195,20 +1269,17 @@
 	  $(error Headers not exportable for the $(SRCARCH) architecture))
 	$(Q)$(MAKE) $(hdr-inst)=include/uapi
 	$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi
+	$(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders=
 
+# Deprecated. It is no-op now.
 PHONY += headers_check
-headers_check: headers
-	$(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1
-	$(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi HDRCHECK=1
+headers_check:
+	@:
 
 ifdef CONFIG_HEADERS_INSTALL
 prepare: headers
 endif
 
-ifdef CONFIG_HEADERS_CHECK
-all: headers_check
-endif
-
 PHONY += scripts_unifdef
 scripts_unifdef: scripts_basic
 	$(Q)$(MAKE) $(build)=scripts scripts/unifdef
@@ -1242,12 +1313,16 @@
 %.dtb: include/config/kernel.release scripts_dtc
 	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
 
-PHONY += dtbs dtbs_install dt_binding_check
-dtbs dtbs_check: include/config/kernel.release scripts_dtc
+PHONY += dtbs dtbs_install dtbs_check
+dtbs: include/config/kernel.release scripts_dtc
 	$(Q)$(MAKE) $(build)=$(dtstree)
 
+ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
+dtbs: dt_binding_check
+endif
+
 dtbs_check: export CHECK_DTBS=1
-dtbs_check: dt_binding_check
+dtbs_check: dtbs
 
 dtbs_install:
 	$(Q)$(MAKE) $(dtbinst)=$(dtstree)
@@ -1262,6 +1337,7 @@
 scripts_dtc: scripts_basic
 	$(Q)$(MAKE) $(build)=scripts/dtc
 
+PHONY += dt_binding_check
 dt_binding_check: scripts_dtc
 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings
 
@@ -1274,6 +1350,13 @@
 
 all: modules
 
+# When we're building modules with modversions, we need to consider
+# the built-in objects during the descend as well, in order to
+# make sure the checksums are up to date before we record them.
+ifdef CONFIG_MODVERSIONS
+  KBUILD_BUILTIN := 1
+endif
+
 # Build modules
 #
 # A module can be listed more than once in obj-m resulting in
@@ -1476,7 +1559,6 @@
 	@echo  '  versioncheck    - Sanity check on version.h usage'
 	@echo  '  includecheck    - Check for duplicate included header files'
 	@echo  '  export_report   - List the usages of all exported symbols'
-	@echo  '  headers_check   - Sanity check on exported headers'
 	@echo  '  headerdep       - Detect inclusion cycles in headers'
 	@echo  '  coccicheck      - Check with Coccinelle'
 	@echo  ''
@@ -1641,6 +1723,50 @@
 PHONY += prepare
 endif # KBUILD_EXTMOD
 
+# Single targets
+# ---------------------------------------------------------------------------
+# To build individual files in subdirectories, you can do like this:
+#
+#   make foo/bar/baz.s
+#
+# The supported suffixes for single-target are listed in 'single-targets'
+#
+# To build only under specific subdirectories, you can do like this:
+#
+#   make foo/bar/baz/
+
+ifdef single-build
+
+# .ko is special because modpost is needed
+single-ko := $(sort $(filter %.ko, $(MAKECMDGOALS)))
+single-no-ko := $(sort $(patsubst %.ko,%.mod, $(MAKECMDGOALS)))
+
+$(single-ko): single_modpost
+	@:
+$(single-no-ko): descend
+	@:
+
+ifeq ($(KBUILD_EXTMOD),)
+# For the single build of in-tree modules, use a temporary file to avoid
+# the situation of modules_install installing an invalid modules.order.
+MODORDER := .modules.tmp
+endif
+
+PHONY += single_modpost
+single_modpost: $(single-no-ko)
+	$(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER)
+	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
+
+KBUILD_MODULES := 1
+
+export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko))
+
+# trim unrelated directories
+build-dirs := $(foreach d, $(build-dirs), \
+			$(if $(filter $(d)/%, $(KBUILD_SINGLE_TARGETS)), $(d)))
+
+endif
+
 # Handle descending into subdirectories listed in $(build-dirs)
 # Preset locale variables to speed up the build process. Limit locale
 # tweaks to this spot to avoid wrong language settings when running
@@ -1649,7 +1775,9 @@
 PHONY += descend $(build-dirs)
 descend: $(build-dirs)
 $(build-dirs): prepare
-	$(Q)$(MAKE) $(build)=$@ single-build=$(single-build) need-builtin=1 need-modorder=1
+	$(Q)$(MAKE) $(build)=$@ \
+	single-build=$(if $(filter-out $@/, $(single-no-ko)),1) \
+	need-builtin=1 need-modorder=1
 
 clean-dirs := $(addprefix _clean_, $(clean-dirs))
 PHONY += $(clean-dirs) clean
@@ -1753,50 +1881,6 @@
 	$(Q)mkdir -p $(objtree)/tools
 	$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ $*
 
-# Single targets
-# ---------------------------------------------------------------------------
-# To build individual files in subdirectories, you can do like this:
-#
-#   make foo/bar/baz.s
-#
-# The supported suffixes for single-target are listed in 'single-targets'
-#
-# To build only under specific subdirectories, you can do like this:
-#
-#   make foo/bar/baz/
-
-ifdef single-build
-
-single-all := $(filter $(single-targets), $(MAKECMDGOALS))
-
-# .ko is special because modpost is needed
-single-ko := $(sort $(filter %.ko, $(single-all)))
-single-no-ko := $(sort $(patsubst %.ko,%.mod, $(single-all)))
-
-$(single-ko): single_modpost
-	@:
-$(single-no-ko): descend
-	@:
-
-ifeq ($(KBUILD_EXTMOD),)
-# For the single build of in-tree modules, use a temporary file to avoid
-# the situation of modules_install installing an invalid modules.order.
-MODORDER := .modules.tmp
-endif
-
-PHONY += single_modpost
-single_modpost: $(single-no-ko)
-	$(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER)
-	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-
-KBUILD_MODULES := 1
-
-export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko))
-
-single-build = $(if $(filter-out $@/, $(single-no-ko)),1)
-
-endif
-
 # FIXME Should go into a make.lib or something
 # ===========================================================================
 
--- linux-ein-5.4.0.orig/Ubuntu.md
+++ linux-ein-5.4.0/Ubuntu.md
@@ -0,0 +1,7 @@
+Name:    linux-imx
+Version: 5.4.0
+Series:  20.04 (focal)
+Description:
+    This is the source code for the Ubuntu linux kernel for the 20.04 series. This
+    source tree is used to produce the flavours: imx.
+    This kernel is configured to support specialized IMX devices.
--- linux-ein-5.4.0.orig/arch/Kconfig
+++ linux-ein-5.4.0/arch/Kconfig
@@ -131,6 +131,22 @@
 	    managed by the kernel and kept transparent to the probed
 	    application. )
 
+config HAVE_64BIT_ALIGNED_ACCESS
+	def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
+	help
+	  Some architectures require 64 bit accesses to be 64 bit
+	  aligned, which also requires structs containing 64 bit values
+	  to be 64 bit aligned too. This includes some 32 bit
+	  architectures which can do 64 bit accesses, as well as 64 bit
+	  architectures without unaligned access.
+
+	  This symbol should be selected by an architecture if 64 bit
+	  accesses are required to be 64 bit aligned in this way even
+	  though it is not a 64 bit architecture.
+
+	  See Documentation/unaligned-memory-access.txt for more
+	  information on the topic of unaligned memory accesses.
+
 config HAVE_EFFICIENT_UNALIGNED_ACCESS
 	bool
 	help
@@ -255,6 +271,9 @@
 	select ARCH_HAS_DMA_PREP_COHERENT
 	bool
 
+config ARCH_HAS_CPU_FINALIZE_INIT
+	bool
+
 # Select if arch init_task must go in the __init_task_data section
 config ARCH_TASK_STRUCT_ON_STACK
        bool
@@ -396,15 +415,22 @@
 config HAVE_RCU_TABLE_FREE
 	bool
 
-config HAVE_RCU_TABLE_NO_INVALIDATE
+config HAVE_MMU_GATHER_PAGE_SIZE
 	bool
 
-config HAVE_MMU_GATHER_PAGE_SIZE
+config MMU_GATHER_NO_RANGE
 	bool
 
 config HAVE_MMU_GATHER_NO_GATHER
 	bool
 
+config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+	bool
+	help
+	  Temporary select until all architectures can be converted to have
+	  irqs disabled over activate_mm. Architectures that do IPI based TLB
+	  shootdowns should enable this.
+
 config ARCH_HAVE_NMI_SAFE_CMPXCHG
 	bool
 
@@ -892,27 +918,6 @@
 config ARCH_HAS_PHYS_TO_DMA
 	bool
 
-config ARCH_HAS_REFCOUNT
-	bool
-	help
-	  An architecture selects this when it has implemented refcount_t
-	  using open coded assembly primitives that provide an optimized
-	  refcount_t implementation, possibly at the expense of some full
-	  refcount state checks of CONFIG_REFCOUNT_FULL=y.
-
-	  The refcount overflow check behavior, however, must be retained.
-	  Catching overflows is the primary security concern for protecting
-	  against bugs in reference counts.
-
-config REFCOUNT_FULL
-	bool "Perform full reference count validation at the expense of speed"
-	help
-	  Enabling this switches the refcounting infrastructure from a fast
-	  unchecked atomic_t implementation to a fully state checked
-	  implementation, which can be (slightly) slower but provides protections
-	  against various use-after-free conditions that can be used in
-	  security flaw exploits.
-
 config HAVE_ARCH_COMPILER_H
 	bool
 	help
--- linux-ein-5.4.0.orig/arch/alpha/configs/defconfig
+++ linux-ein-5.4.0/arch/alpha/configs/defconfig
@@ -36,7 +36,6 @@
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_AIC7XXX=m
 CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
 # CONFIG_AIC7XXX_DEBUG_ENABLE is not set
--- linux-ein-5.4.0.orig/arch/alpha/include/asm/io.h
+++ linux-ein-5.4.0/arch/alpha/include/asm/io.h
@@ -61,7 +61,7 @@
  * Change virtual addresses to physical addresses and vv.
  */
 #ifdef USE_48_BIT_KSEG
-static inline unsigned long virt_to_phys(void *address)
+static inline unsigned long virt_to_phys(volatile void *address)
 {
 	return (unsigned long)address - IDENT_ADDR;
 }
@@ -71,7 +71,7 @@
 	return (void *) (address + IDENT_ADDR);
 }
 #else
-static inline unsigned long virt_to_phys(void *address)
+static inline unsigned long virt_to_phys(volatile void *address)
 {
         unsigned long phys = (unsigned long)address;
 
@@ -107,7 +107,7 @@
 extern unsigned long __direct_map_base;
 extern unsigned long __direct_map_size;
 
-static inline unsigned long __deprecated virt_to_bus(void *address)
+static inline unsigned long __deprecated virt_to_bus(volatile void *address)
 {
 	unsigned long phys = virt_to_phys(address);
 	unsigned long bus = phys + __direct_map_base;
@@ -322,14 +322,18 @@
 #if IO_CONCAT(__IO_PREFIX,trivial_io_bw)
 extern inline unsigned int ioread8(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
 	mb();
 	return ret;
 }
 
 extern inline unsigned int ioread16(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
 	mb();
 	return ret;
 }
@@ -370,7 +374,9 @@
 #if IO_CONCAT(__IO_PREFIX,trivial_io_lq)
 extern inline unsigned int ioread32(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
 	mb();
 	return ret;
 }
@@ -415,14 +421,18 @@
 
 extern inline u8 readb(const volatile void __iomem *addr)
 {
-	u8 ret = __raw_readb(addr);
+	u8 ret;
+	mb();
+	ret = __raw_readb(addr);
 	mb();
 	return ret;
 }
 
 extern inline u16 readw(const volatile void __iomem *addr)
 {
-	u16 ret = __raw_readw(addr);
+	u16 ret;
+	mb();
+	ret = __raw_readw(addr);
 	mb();
 	return ret;
 }
@@ -463,14 +473,18 @@
 
 extern inline u32 readl(const volatile void __iomem *addr)
 {
-	u32 ret = __raw_readl(addr);
+	u32 ret;
+	mb();
+	ret = __raw_readl(addr);
 	mb();
 	return ret;
 }
 
 extern inline u64 readq(const volatile void __iomem *addr)
 {
-	u64 ret = __raw_readq(addr);
+	u64 ret;
+	mb();
+	ret = __raw_readq(addr);
 	mb();
 	return ret;
 }
@@ -488,10 +502,10 @@
 }
 #endif
 
-#define ioread16be(p) be16_to_cpu(ioread16(p))
-#define ioread32be(p) be32_to_cpu(ioread32(p))
-#define iowrite16be(v,p) iowrite16(cpu_to_be16(v), (p))
-#define iowrite32be(v,p) iowrite32(cpu_to_be32(v), (p))
+#define ioread16be(p) swab16(ioread16(p))
+#define ioread32be(p) swab32(ioread32(p))
+#define iowrite16be(v,p) iowrite16(swab16(v), (p))
+#define iowrite32be(v,p) iowrite32(swab32(v), (p))
 
 #define inb_p		inb
 #define inw_p		inw
@@ -499,14 +513,44 @@
 #define outb_p		outb
 #define outw_p		outw
 #define outl_p		outl
-#define readb_relaxed(addr)	__raw_readb(addr)
-#define readw_relaxed(addr)	__raw_readw(addr)
-#define readl_relaxed(addr)	__raw_readl(addr)
-#define readq_relaxed(addr)	__raw_readq(addr)
-#define writeb_relaxed(b, addr)	__raw_writeb(b, addr)
-#define writew_relaxed(b, addr)	__raw_writew(b, addr)
-#define writel_relaxed(b, addr)	__raw_writel(b, addr)
-#define writeq_relaxed(b, addr)	__raw_writeq(b, addr)
+
+extern u8 readb_relaxed(const volatile void __iomem *addr);
+extern u16 readw_relaxed(const volatile void __iomem *addr);
+extern u32 readl_relaxed(const volatile void __iomem *addr);
+extern u64 readq_relaxed(const volatile void __iomem *addr);
+
+#if IO_CONCAT(__IO_PREFIX,trivial_io_bw)
+extern inline u8 readb_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readb(addr);
+}
+
+extern inline u16 readw_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readw(addr);
+}
+#endif
+
+#if IO_CONCAT(__IO_PREFIX,trivial_io_lq)
+extern inline u32 readl_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readl(addr);
+}
+
+extern inline u64 readq_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readq(addr);
+}
+#endif
+
+#define writeb_relaxed	writeb
+#define writew_relaxed	writew
+#define writel_relaxed	writel
+#define writeq_relaxed	writeq
 
 /*
  * String version of IO memory access ops:
--- linux-ein-5.4.0.orig/arch/alpha/include/asm/timex.h
+++ linux-ein-5.4.0/arch/alpha/include/asm/timex.h
@@ -28,5 +28,6 @@
 	__asm__ __volatile__ ("rpcc %0" : "=r"(ret));
 	return ret;
 }
+#define get_cycles get_cycles
 
 #endif
--- linux-ein-5.4.0.orig/arch/alpha/kernel/entry.S
+++ linux-ein-5.4.0/arch/alpha/kernel/entry.S
@@ -469,8 +469,10 @@
 #ifdef CONFIG_AUDITSYSCALL
 	lda     $6, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
 	and     $3, $6, $3
-#endif
 	bne     $3, strace
+#else
+	blbs    $3, strace		/* check for SYSCALL_TRACE in disguise */
+#endif
 	beq	$4, 1f
 	ldq	$27, 0($5)
 1:	jsr	$26, ($27), sys_ni_syscall
--- linux-ein-5.4.0.orig/arch/alpha/kernel/io.c
+++ linux-ein-5.4.0/arch/alpha/kernel/io.c
@@ -16,21 +16,27 @@
 unsigned int
 ioread8(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread8)(addr);
 	mb();
 	return ret;
 }
 
 unsigned int ioread16(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread16)(addr);
 	mb();
 	return ret;
 }
 
 unsigned int ioread32(void __iomem *addr)
 {
-	unsigned int ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
+	unsigned int ret;
+	mb();
+	ret = IO_CONCAT(__IO_PREFIX,ioread32)(addr);
 	mb();
 	return ret;
 }
@@ -148,28 +154,36 @@
 
 u8 readb(const volatile void __iomem *addr)
 {
-	u8 ret = __raw_readb(addr);
+	u8 ret;
+	mb();
+	ret = __raw_readb(addr);
 	mb();
 	return ret;
 }
 
 u16 readw(const volatile void __iomem *addr)
 {
-	u16 ret = __raw_readw(addr);
+	u16 ret;
+	mb();
+	ret = __raw_readw(addr);
 	mb();
 	return ret;
 }
 
 u32 readl(const volatile void __iomem *addr)
 {
-	u32 ret = __raw_readl(addr);
+	u32 ret;
+	mb();
+	ret = __raw_readl(addr);
 	mb();
 	return ret;
 }
 
 u64 readq(const volatile void __iomem *addr)
 {
-	u64 ret = __raw_readq(addr);
+	u64 ret;
+	mb();
+	ret = __raw_readq(addr);
 	mb();
 	return ret;
 }
@@ -207,6 +221,38 @@
 EXPORT_SYMBOL(writel);
 EXPORT_SYMBOL(writeq);
 
+/*
+ * The _relaxed functions must be ordered w.r.t. each other, but they don't
+ * have to be ordered w.r.t. other memory accesses.
+ */
+u8 readb_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readb(addr);
+}
+
+u16 readw_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readw(addr);
+}
+
+u32 readl_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readl(addr);
+}
+
+u64 readq_relaxed(const volatile void __iomem *addr)
+{
+	mb();
+	return __raw_readq(addr);
+}
+
+EXPORT_SYMBOL(readb_relaxed);
+EXPORT_SYMBOL(readw_relaxed);
+EXPORT_SYMBOL(readl_relaxed);
+EXPORT_SYMBOL(readq_relaxed);
 
 /*
  * Read COUNT 8-bit bytes from port PORT into memory starting at SRC.
--- linux-ein-5.4.0.orig/arch/alpha/kernel/module.c
+++ linux-ein-5.4.0/arch/alpha/kernel/module.c
@@ -146,10 +146,8 @@
 	base = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr;
 	symtab = (Elf64_Sym *)sechdrs[symindex].sh_addr;
 
-	/* The small sections were sorted to the end of the segment.
-	   The following should definitely cover them.  */
-	gp = (u64)me->core_layout.base + me->core_layout.size - 0x8000;
 	got = sechdrs[me->arch.gotsecindex].sh_addr;
+	gp = got + 0x8000;
 
 	for (i = 0; i < n; i++) {
 		unsigned long r_sym = ELF64_R_SYM (rela[i].r_info);
--- linux-ein-5.4.0.orig/arch/alpha/kernel/setup.c
+++ linux-ein-5.4.0/arch/alpha/kernel/setup.c
@@ -394,8 +394,7 @@
 extern void setup_memory(void *);
 #endif /* !CONFIG_DISCONTIGMEM */
 
-int __init
-page_is_ram(unsigned long pfn)
+int page_is_ram(unsigned long pfn)
 {
 	struct memclust_struct * cluster;
 	struct memdesc_struct * memdesc;
--- linux-ein-5.4.0.orig/arch/alpha/kernel/smp.c
+++ linux-ein-5.4.0/arch/alpha/kernel/smp.c
@@ -585,7 +585,7 @@
 smp_send_stop(void)
 {
 	cpumask_t to_whom;
-	cpumask_copy(&to_whom, cpu_possible_mask);
+	cpumask_copy(&to_whom, cpu_online_mask);
 	cpumask_clear_cpu(smp_processor_id(), &to_whom);
 #ifdef DEBUG_IPI_MSG
 	if (hard_smp_processor_id() != boot_cpu_id)
--- linux-ein-5.4.0.orig/arch/alpha/kernel/srmcons.c
+++ linux-ein-5.4.0/arch/alpha/kernel/srmcons.c
@@ -59,7 +59,7 @@
 	} while((result.bits.status & 1) && (++loops < 10));
 
 	if (count)
-		tty_schedule_flip(port);
+		tty_flip_buffer_push(port);
 
 	return count;
 }
--- linux-ein-5.4.0.orig/arch/alpha/kernel/traps.c
+++ linux-ein-5.4.0/arch/alpha/kernel/traps.c
@@ -192,7 +192,7 @@
 		local_irq_enable();
 		while (1);
 	}
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 #ifndef CONFIG_MATHEMU
@@ -235,7 +235,21 @@
 {
 	int signo, code;
 
-	if ((regs->ps & ~IPL_MAX) == 0) {
+	if (type == 3) { /* FEN fault */
+		/* Irritating users can call PAL_clrfen to disable the
+		   FPU for the process.  The kernel will then trap in
+		   do_switch_stack and undo_switch_stack when we try
+		   to save and restore the FP registers.
+
+		   Given that GCC by default generates code that uses the
+		   FP registers, PAL_clrfen is not useful except for DoS
+		   attacks.  So turn the bleeding FPU back on and be done
+		   with it.  */
+		current_thread_info()->pcb.flags |= 1;
+		__reload_thread(&current_thread_info()->pcb);
+		return;
+	}
+	if (!user_mode(regs)) {
 		if (type == 1) {
 			const unsigned int *data
 			  = (const unsigned int *) regs->pc;
@@ -368,20 +382,6 @@
 		}
 		break;
 
-	      case 3: /* FEN fault */
-		/* Irritating users can call PAL_clrfen to disable the
-		   FPU for the process.  The kernel will then trap in
-		   do_switch_stack and undo_switch_stack when we try
-		   to save and restore the FP registers.
-
-		   Given that GCC by default generates code that uses the
-		   FP registers, PAL_clrfen is not useful except for DoS
-		   attacks.  So turn the bleeding FPU back on and be done
-		   with it.  */
-		current_thread_info()->pcb.flags |= 1;
-		__reload_thread(&current_thread_info()->pcb);
-		return;
-
 	      case 5: /* illoc */
 	      default: /* unexpected instruction-fault type */
 		      ;
@@ -577,7 +577,7 @@
 
 	printk("Bad unaligned kernel access at %016lx: %p %lx %lu\n",
 		pc, va, opcode, reg);
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 
 got_exception:
 	/* Ok, we caught the exception, but we don't want it.  Is there
@@ -632,7 +632,7 @@
 		local_irq_enable();
 		while (1);
 	}
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 /*
--- linux-ein-5.4.0.orig/arch/alpha/mm/fault.c
+++ linux-ein-5.4.0/arch/alpha/mm/fault.c
@@ -206,7 +206,7 @@
 	printk(KERN_ALERT "Unable to handle kernel paging request at "
 	       "virtual address %016lx\n", address);
 	die_if_kernel("Oops", regs, cause, (unsigned long*)regs - 16);
-	do_exit(SIGKILL);
+	make_task_dead(SIGKILL);
 
 	/* We ran out of memory, or some other thing happened to us that
 	   made us unable to handle the page fault gracefully.  */
--- linux-ein-5.4.0.orig/arch/arc/Kconfig
+++ linux-ein-5.4.0/arch/arc/Kconfig
@@ -29,6 +29,7 @@
 	select GENERIC_SMP_IDLE_THREAD
 	select HAVE_ARCH_KGDB
 	select HAVE_ARCH_TRACEHOOK
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DEBUG_STACKOVERFLOW
 	select HAVE_FUTEX_CMPXCHG if FUTEX
 	select HAVE_IOREMAP_PROT
--- linux-ein-5.4.0.orig/arch/arc/Makefile
+++ linux-ein-5.4.0/arch/arc/Makefile
@@ -90,16 +90,22 @@
 
 boot		:= arch/arc/boot
 
-#default target for make without any arguments.
-KBUILD_IMAGE	:= $(boot)/bootpImage
-
-all:	bootpImage
-bootpImage: vmlinux
-
-boot_targets += uImage uImage.bin uImage.gz
+boot_targets := uImage.bin uImage.gz uImage.lzma
 
+PHONY += $(boot_targets)
 $(boot_targets): vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 
+uimage-default-y			:= uImage.bin
+uimage-default-$(CONFIG_KERNEL_GZIP)	:= uImage.gz
+uimage-default-$(CONFIG_KERNEL_LZMA)	:= uImage.lzma
+
+PHONY += uImage
+uImage: $(uimage-default-y)
+	@ln -sf $< $(boot)/uImage
+	@$(kecho) '  Image $(boot)/uImage is ready'
+
+CLEAN_FILES += $(boot)/uImage
+
 archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
--- linux-ein-5.4.0.orig/arch/arc/boot/Makefile
+++ linux-ein-5.4.0/arch/arc/boot/Makefile
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
-targets := vmlinux.bin vmlinux.bin.gz uImage
+targets := vmlinux.bin vmlinux.bin.gz
 
 # uImage build relies on mkimage being availble on your host for ARC target
 # You will need to build u-boot for ARC, rename mkimage to arc-elf32-mkimage
@@ -13,11 +13,6 @@
 UIMAGE_LOADADDR    = $(CONFIG_LINUX_LINK_BASE)
 UIMAGE_ENTRYADDR   = $(LINUX_START_TEXT)
 
-suffix-y := bin
-suffix-$(CONFIG_KERNEL_GZIP)	:= gz
-suffix-$(CONFIG_KERNEL_LZMA)	:= lzma
-
-targets += uImage
 targets += uImage.bin
 targets += uImage.gz
 targets += uImage.lzma
@@ -42,7 +37,3 @@
 
 $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE
 	$(call if_changed,uimage,lzma)
-
-$(obj)/uImage: $(obj)/uImage.$(suffix-y)
-	@ln -sf $(notdir $<) $@
-	@echo '  Image $@ is ready'
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/axc001.dtsi
+++ linux-ein-5.4.0/arch/arc/boot/dts/axc001.dtsi
@@ -85,7 +85,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/axc003.dtsi
+++ linux-ein-5.4.0/arch/arc/boot/dts/axc003.dtsi
@@ -129,7 +129,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/axc003_idu.dtsi
+++ linux-ein-5.4.0/arch/arc/boot/dts/axc003_idu.dtsi
@@ -135,7 +135,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/axs10x_mb.dtsi
+++ linux-ein-5.4.0/arch/arc/boot/dts/axs10x_mb.dtsi
@@ -77,6 +77,7 @@
 			interrupt-names = "macirq";
 			phy-mode = "rgmii";
 			snps,pbl = < 32 >;
+			snps,multicast-filter-bins = <256>;
 			clocks = <&apbclk>;
 			clock-names = "stmmaceth";
 			max-speed = <100>;
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/hsdk.dts
+++ linux-ein-5.4.0/arch/arc/boot/dts/hsdk.dts
@@ -88,6 +88,8 @@
 
 	arcpct: pct {
 		compatible = "snps,archs-pct";
+		interrupt-parent = <&cpu_intc>;
+		interrupts = <20>;
 	};
 
 	/* TIMER0 with interrupt for clockevent */
@@ -208,7 +210,7 @@
 			reg = <0x8000 0x2000>;
 			interrupts = <10>;
 			interrupt-names = "macirq";
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 			snps,pbl = <32>;
 			snps,multicast-filter-bins = <256>;
 			clocks = <&gmacclk>;
@@ -226,7 +228,7 @@
 				#address-cells = <1>;
 				#size-cells = <0>;
 				compatible = "snps,dwmac-mdio";
-				phy0: ethernet-phy@0 {
+				phy0: ethernet-phy@0 { /* Micrel KSZ9031 */
 					reg = <0>;
 				};
 			};
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/vdk_axc003.dtsi
+++ linux-ein-5.4.0/arch/arc/boot/dts/vdk_axc003.dtsi
@@ -46,7 +46,7 @@
 
 	};
 
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0xe0012000 0x200 >;
--- linux-ein-5.4.0.orig/arch/arc/boot/dts/vdk_axc003_idu.dtsi
+++ linux-ein-5.4.0/arch/arc/boot/dts/vdk_axc003_idu.dtsi
@@ -54,7 +54,7 @@
 
 	};
 
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0xe0012000 0x200 >;
--- linux-ein-5.4.0.orig/arch/arc/include/asm/elf.h
+++ linux-ein-5.4.0/arch/arc/include/asm/elf.h
@@ -19,7 +19,7 @@
 #define  R_ARC_32_PCREL		0x31
 
 /*to set parameters in the core dumps */
-#define ELF_ARCH		EM_ARCOMPACT
+#define ELF_ARCH		EM_ARC_INUSE
 #define ELF_CLASS		ELFCLASS32
 
 #ifdef CONFIG_CPU_BIG_ENDIAN
--- linux-ein-5.4.0.orig/arch/arc/include/asm/io.h
+++ linux-ein-5.4.0/arch/arc/include/asm/io.h
@@ -32,7 +32,7 @@
 {
 }
 
-extern void iounmap(const void __iomem *addr);
+extern void iounmap(const volatile void __iomem *addr);
 
 #define ioremap_nocache(phy, sz)	ioremap(phy, sz)
 #define ioremap_wc(phy, sz)		ioremap(phy, sz)
--- linux-ein-5.4.0.orig/arch/arc/include/asm/linkage.h
+++ linux-ein-5.4.0/arch/arc/include/asm/linkage.h
@@ -8,6 +8,10 @@
 
 #include <asm/dwarf.h>
 
+#define ASM_NL		 `	/* use '`' to mark new line in macro */
+#define __ALIGN		.align 4
+#define __ALIGN_STR	__stringify(__ALIGN)
+
 #ifdef __ASSEMBLY__
 
 .macro ST2 e, o, off
@@ -28,8 +32,6 @@
 #endif
 .endm
 
-#define ASM_NL		 `	/* use '`' to mark new line in macro */
-
 /* annotation for data we want in DCCM - if enabled in .config */
 .macro ARCFP_DATA nm
 #ifdef CONFIG_ARC_HAS_DCCM
--- linux-ein-5.4.0.orig/arch/arc/include/asm/page.h
+++ linux-ein-5.4.0/arch/arc/include/asm/page.h
@@ -7,9 +7,22 @@
 
 #include <uapi/asm/page.h>
 
+#ifdef CONFIG_ARC_HAS_PAE40
+
+#define MAX_POSSIBLE_PHYSMEM_BITS	40
+#define PAGE_MASK_PHYS			(0xff00000000ull | PAGE_MASK)
+
+#else /* CONFIG_ARC_HAS_PAE40 */
+
+#define MAX_POSSIBLE_PHYSMEM_BITS	32
+#define PAGE_MASK_PHYS			PAGE_MASK
+
+#endif /* CONFIG_ARC_HAS_PAE40 */
+
 #ifndef __ASSEMBLY__
 
 #define clear_page(paddr)		memset((paddr), 0, PAGE_SIZE)
+#define copy_user_page(to, from, vaddr, pg)	copy_page(to, from)
 #define copy_page(to, from)		memcpy((to), (from), PAGE_SIZE)
 
 struct vm_area_struct;
--- linux-ein-5.4.0.orig/arch/arc/include/asm/pgtable.h
+++ linux-ein-5.4.0/arch/arc/include/asm/pgtable.h
@@ -108,8 +108,8 @@
 #define ___DEF (_PAGE_PRESENT | _PAGE_CACHEABLE)
 
 /* Set of bits not changed in pte_modify */
-#define _PAGE_CHG_MASK	(PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_SPECIAL)
-
+#define _PAGE_CHG_MASK	(PAGE_MASK_PHYS | _PAGE_ACCESSED | _PAGE_DIRTY | \
+							   _PAGE_SPECIAL)
 /* More Abbrevaited helpers */
 #define PAGE_U_NONE     __pgprot(___DEF)
 #define PAGE_U_R        __pgprot(___DEF | _PAGE_READ)
@@ -133,11 +133,7 @@
 #define PTE_BITS_IN_PD0		(_PAGE_GLOBAL | _PAGE_PRESENT | _PAGE_HW_SZ)
 #define PTE_BITS_RWX		(_PAGE_EXECUTE | _PAGE_WRITE | _PAGE_READ)
 
-#ifdef CONFIG_ARC_HAS_PAE40
-#define PTE_BITS_NON_RWX_IN_PD1	(0xff00000000 | PAGE_MASK | _PAGE_CACHEABLE)
-#else
-#define PTE_BITS_NON_RWX_IN_PD1	(PAGE_MASK | _PAGE_CACHEABLE)
-#endif
+#define PTE_BITS_NON_RWX_IN_PD1	(PAGE_MASK_PHYS | _PAGE_CACHEABLE)
 
 /**************************************************************************
  * Mapping of vm_flags (Generic VM) to PTE flags (arch specific)
--- linux-ein-5.4.0.orig/arch/arc/include/asm/syscalls.h
+++ linux-ein-5.4.0/arch/arc/include/asm/syscalls.h
@@ -11,6 +11,7 @@
 #include <linux/types.h>
 
 int sys_clone_wrapper(int, int, int, int, int);
+int sys_clone3_wrapper(void *, size_t);
 int sys_cacheflush(uint32_t, uint32_t uint32_t);
 int sys_arc_settls(void *);
 int sys_arc_gettls(void);
--- linux-ein-5.4.0.orig/arch/arc/include/uapi/asm/page.h
+++ linux-ein-5.4.0/arch/arc/include/uapi/asm/page.h
@@ -33,5 +33,4 @@
 
 #define PAGE_MASK	(~(PAGE_SIZE-1))
 
-
 #endif /* _UAPI__ASM_ARC_PAGE_H */
--- linux-ein-5.4.0.orig/arch/arc/include/uapi/asm/sigcontext.h
+++ linux-ein-5.4.0/arch/arc/include/uapi/asm/sigcontext.h
@@ -18,6 +18,7 @@
  */
 struct sigcontext {
 	struct user_regs_struct regs;
+	struct user_regs_arcv2 v2abi;
 };
 
 #endif /* _ASM_ARC_SIGCONTEXT_H */
--- linux-ein-5.4.0.orig/arch/arc/include/uapi/asm/unistd.h
+++ linux-ein-5.4.0/arch/arc/include/uapi/asm/unistd.h
@@ -21,6 +21,7 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_SYS_EXECVE
 #define __ARCH_WANT_SYS_CLONE
+#define __ARCH_WANT_SYS_CLONE3
 #define __ARCH_WANT_SYS_VFORK
 #define __ARCH_WANT_SYS_FORK
 #define __ARCH_WANT_TIME32_SYSCALLS
--- linux-ein-5.4.0.orig/arch/arc/kernel/entry.S
+++ linux-ein-5.4.0/arch/arc/kernel/entry.S
@@ -35,6 +35,18 @@
 	b .Lret_from_system_call
 END(sys_clone_wrapper)
 
+ENTRY(sys_clone3_wrapper)
+	SAVE_CALLEE_SAVED_USER
+	bl  @sys_clone3
+	DISCARD_CALLEE_SAVED_USER
+
+	GET_CURR_THR_INFO_FLAGS   r10
+	btst r10, TIF_SYSCALL_TRACE
+	bnz  tracesys_exit
+
+	b .Lret_from_system_call
+END(sys_clone3_wrapper)
+
 ENTRY(ret_from_fork)
 	; when the forked child comes here from the __switch_to function
 	; r0 has the last task pointer.
@@ -153,7 +165,6 @@
 tracesys:
 	; save EFA in case tracer wants the PC of traced task
 	; using ERET won't work since next-PC has already committed
-	lr  r12, [efa]
 	GET_CURR_TASK_FIELD_PTR   TASK_THREAD, r11
 	st  r12, [r11, THREAD_FAULT_ADDR]	; thread.fault_address
 
@@ -166,7 +177,7 @@
 
 	; Do the Sys Call as we normally would.
 	; Validate the Sys Call number
-	cmp     r8,  NR_syscalls
+	cmp     r8,  NR_syscalls - 1
 	mov.hi  r0, -ENOSYS
 	bhi     tracesys_exit
 
@@ -188,6 +199,7 @@
 	st  r0, [sp, PT_r0]     ; sys call return value in pt_regs
 
 	;POST Sys Call Ptrace Hook
+	mov r0, sp		; pt_regs needed
 	bl  @syscall_trace_exit
 	b   ret_from_exception ; NOT ret_from_system_call at is saves r0 which
 	; we'd done before calling post hook above
@@ -196,15 +208,9 @@
 ; Breakpoint TRAP
 ; ---------------------------------------------
 trap_with_param:
-
-	; stop_pc info by gdb needs this info
-	lr  r0, [efa]
+	mov r0, r12	; EFA in case ptracer/gdb wants stop_pc
 	mov r1, sp
 
-	; Now that we have read EFA, it is safe to do "fake" rtie
-	;   and get out of CPU exception mode
-	FAKE_RET_FROM_EXCPN
-
 	; Save callee regs in case gdb wants to have a look
 	; SP will grow up by size of CALLEE Reg-File
 	; NOTE: clobbers r12
@@ -231,6 +237,10 @@
 
 	EXCEPTION_PROLOGUE
 
+	lr  r12, [efa]
+
+	FAKE_RET_FROM_EXCPN
+
 	;============ TRAP 1   :breakpoints
 	; Check ECR for trap with arg (PROLOGUE ensures r10 has ECR)
 	bmsk.f 0, r10, 7
@@ -238,9 +248,6 @@
 
 	;============ TRAP  (no param): syscall top level
 
-	; First return from Exception to pure K mode (Exception/IRQs renabled)
-	FAKE_RET_FROM_EXCPN
-
 	; If syscall tracing ongoing, invoke pre-post-hooks
 	GET_CURR_THR_INFO_FLAGS   r10
 	btst r10, TIF_SYSCALL_TRACE
@@ -249,7 +256,7 @@
 	;============ Normal syscall case
 
 	; syscall num shd not exceed the total system calls avail
-	cmp     r8,  NR_syscalls
+	cmp     r8,  NR_syscalls - 1
 	mov.hi  r0, -ENOSYS
 	bhi     .Lret_from_system_call
 
--- linux-ein-5.4.0.orig/arch/arc/kernel/perf_event.c
+++ linux-ein-5.4.0/arch/arc/kernel/perf_event.c
@@ -562,7 +562,7 @@
 {
 	struct arc_reg_pct_build pct_bcr;
 	struct arc_reg_cc_build cc_bcr;
-	int i, has_interrupts;
+	int i, has_interrupts, irq = -1;
 	int counter_size;	/* in bits */
 
 	union cc_name {
@@ -638,22 +638,25 @@
 	};
 
 	if (has_interrupts) {
-		int irq = platform_get_irq(pdev, 0);
-
-		if (irq < 0) {
-			pr_err("Cannot get IRQ number for the platform\n");
-			return -ENODEV;
+		irq = platform_get_irq(pdev, 0);
+		if (irq >= 0) {
+			int ret;
+
+			arc_pmu->irq = irq;
+
+			/* intc map function ensures irq_set_percpu_devid() called */
+			ret = request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
+						 this_cpu_ptr(&arc_pmu_cpu));
+
+			if (!ret)
+				on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
+			else
+				irq = -1;
 		}
 
-		arc_pmu->irq = irq;
-
-		/* intc map function ensures irq_set_percpu_devid() called */
-		request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
-				   this_cpu_ptr(&arc_pmu_cpu));
-
-		on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
+	}
 
-	} else
+	if (irq == -1)
 		arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
 
 	/*
--- linux-ein-5.4.0.orig/arch/arc/kernel/process.c
+++ linux-ein-5.4.0/arch/arc/kernel/process.c
@@ -171,9 +171,8 @@
  * |    user_r25    |
  * ------------------  <===== END of PAGE
  */
-int copy_thread(unsigned long clone_flags,
-		unsigned long usp, unsigned long kthread_arg,
-		struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long usp,
+	unsigned long kthread_arg, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *c_regs;        /* child's pt_regs */
 	unsigned long *childksp;       /* to unwind out of __switch_to() */
@@ -231,7 +230,7 @@
 		 * set task's userland tls data ptr from 4th arg
 		 * clone C-lib call is difft from clone sys-call
 		 */
-		task_thread_info(p)->thr_ptr = regs->r3;
+		task_thread_info(p)->thr_ptr = tls;
 	} else {
 		/* Normal fork case: set parent's TLS ptr in child */
 		task_thread_info(p)->thr_ptr =
--- linux-ein-5.4.0.orig/arch/arc/kernel/setup.c
+++ linux-ein-5.4.0/arch/arc/kernel/setup.c
@@ -12,6 +12,7 @@
 #include <linux/clocksource.h>
 #include <linux/console.h>
 #include <linux/module.h>
+#include <linux/sizes.h>
 #include <linux/cpu.h>
 #include <linux/of_fdt.h>
 #include <linux/of.h>
@@ -409,12 +410,12 @@
 	if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr)
 		panic("Linux built with incorrect DCCM Base address\n");
 
-	if (CONFIG_ARC_DCCM_SZ != cpu->dccm.sz)
+	if (CONFIG_ARC_DCCM_SZ * SZ_1K != cpu->dccm.sz)
 		panic("Linux built with incorrect DCCM Size\n");
 #endif
 
 #ifdef CONFIG_ARC_HAS_ICCM
-	if (CONFIG_ARC_ICCM_SZ != cpu->iccm.sz)
+	if (CONFIG_ARC_ICCM_SZ * SZ_1K != cpu->iccm.sz)
 		panic("Linux built with incorrect ICCM Size\n");
 #endif
 
--- linux-ein-5.4.0.orig/arch/arc/kernel/signal.c
+++ linux-ein-5.4.0/arch/arc/kernel/signal.c
@@ -61,6 +61,41 @@
 	unsigned int sigret_magic;
 };
 
+static int save_arcv2_regs(struct sigcontext *mctx, struct pt_regs *regs)
+{
+	int err = 0;
+#ifndef CONFIG_ISA_ARCOMPACT
+	struct user_regs_arcv2 v2abi;
+
+	v2abi.r30 = regs->r30;
+#ifdef CONFIG_ARC_HAS_ACCL_REGS
+	v2abi.r58 = regs->r58;
+	v2abi.r59 = regs->r59;
+#else
+	v2abi.r58 = v2abi.r59 = 0;
+#endif
+	err = __copy_to_user(&mctx->v2abi, &v2abi, sizeof(v2abi));
+#endif
+	return err;
+}
+
+static int restore_arcv2_regs(struct sigcontext *mctx, struct pt_regs *regs)
+{
+	int err = 0;
+#ifndef CONFIG_ISA_ARCOMPACT
+	struct user_regs_arcv2 v2abi;
+
+	err = __copy_from_user(&v2abi, &mctx->v2abi, sizeof(v2abi));
+
+	regs->r30 = v2abi.r30;
+#ifdef CONFIG_ARC_HAS_ACCL_REGS
+	regs->r58 = v2abi.r58;
+	regs->r59 = v2abi.r59;
+#endif
+#endif
+	return err;
+}
+
 static int
 stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
 	       sigset_t *set)
@@ -94,9 +129,13 @@
 
 	err = __copy_to_user(&(sf->uc.uc_mcontext.regs.scratch), &uregs.scratch,
 			     sizeof(sf->uc.uc_mcontext.regs.scratch));
+
+	if (is_isa_arcv2())
+		err |= save_arcv2_regs(&(sf->uc.uc_mcontext), regs);
+
 	err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t));
 
-	return err;
+	return err ? -EFAULT : 0;
 }
 
 static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
@@ -109,8 +148,12 @@
 	err |= __copy_from_user(&uregs.scratch,
 				&(sf->uc.uc_mcontext.regs.scratch),
 				sizeof(sf->uc.uc_mcontext.regs.scratch));
+
+	if (is_isa_arcv2())
+		err |= restore_arcv2_regs(&(sf->uc.uc_mcontext), regs);
+
 	if (err)
-		return err;
+		return -EFAULT;
 
 	set_current_blocked(&set);
 	regs->bta	= uregs.scratch.bta;
--- linux-ein-5.4.0.orig/arch/arc/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/arc/kernel/stacktrace.c
@@ -38,15 +38,15 @@
 
 #ifdef CONFIG_ARC_DW2_UNWIND
 
-static void seed_unwind_frame_info(struct task_struct *tsk,
-				   struct pt_regs *regs,
-				   struct unwind_frame_info *frame_info)
+static int
+seed_unwind_frame_info(struct task_struct *tsk, struct pt_regs *regs,
+		       struct unwind_frame_info *frame_info)
 {
 	/*
 	 * synchronous unwinding (e.g. dump_stack)
 	 *  - uses current values of SP and friends
 	 */
-	if (tsk == NULL && regs == NULL) {
+	if (regs == NULL && (tsk == NULL || tsk == current)) {
 		unsigned long fp, sp, blink, ret;
 		frame_info->task = current;
 
@@ -65,11 +65,15 @@
 		frame_info->call_frame = 0;
 	} else if (regs == NULL) {
 		/*
-		 * Asynchronous unwinding of sleeping task
-		 *  - Gets SP etc from task's pt_regs (saved bottom of kernel
-		 *    mode stack of task)
+		 * Asynchronous unwinding of a likely sleeping task
+		 *  - first ensure it is actually sleeping
+		 *  - if so, it will be in __switch_to, kernel mode SP of task
+		 *    is safe-kept and BLINK at a well known location in there
 		 */
 
+		if (tsk->state == TASK_RUNNING)
+			return -1;
+
 		frame_info->task = tsk;
 
 		frame_info->regs.r27 = TSK_K_FP(tsk);
@@ -103,6 +107,8 @@
 		frame_info->regs.r63 = regs->ret;
 		frame_info->call_frame = 0;
 	}
+
+	return 0;
 }
 
 #endif
@@ -112,11 +118,12 @@
 		int (*consumer_fn) (unsigned int, void *), void *arg)
 {
 #ifdef CONFIG_ARC_DW2_UNWIND
-	int ret = 0;
+	int ret = 0, cnt = 0;
 	unsigned int address;
 	struct unwind_frame_info frame_info;
 
-	seed_unwind_frame_info(tsk, regs, &frame_info);
+	if (seed_unwind_frame_info(tsk, regs, &frame_info))
+		return 0;
 
 	while (1) {
 		address = UNW_PC(&frame_info);
@@ -132,6 +139,11 @@
 			break;
 
 		frame_info.regs.r63 = frame_info.regs.r31;
+
+		if (cnt++ > 128) {
+			printk("unwinder looping too long, aborting !\n");
+			return 0;
+		}
 	}
 
 	return address;		/* return the last address it saw */
--- linux-ein-5.4.0.orig/arch/arc/kernel/sys.c
+++ linux-ein-5.4.0/arch/arc/kernel/sys.c
@@ -7,6 +7,7 @@
 #include <asm/syscalls.h>
 
 #define sys_clone	sys_clone_wrapper
+#define sys_clone3	sys_clone3_wrapper
 
 #undef __SYSCALL
 #define __SYSCALL(nr, call) [nr] = (call),
--- linux-ein-5.4.0.orig/arch/arc/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/arc/kernel/vmlinux.lds.S
@@ -88,6 +88,8 @@
 		CPUIDLE_TEXT
 		LOCK_TEXT
 		KPROBES_TEXT
+		IRQENTRY_TEXT
+		SOFTIRQENTRY_TEXT
 		*(.fixup)
 		*(.gnu.warning)
 	}
--- linux-ein-5.4.0.orig/arch/arc/mm/cache.c
+++ linux-ein-5.4.0/arch/arc/mm/cache.c
@@ -1123,7 +1123,7 @@
 	clear_page(to);
 	clear_bit(PG_dc_clean, &page->flags);
 }
-
+EXPORT_SYMBOL(clear_user_page);
 
 /**********************************************************************
  * Explicit Cache flush request from user space via syscall
--- linux-ein-5.4.0.orig/arch/arc/mm/dma.c
+++ linux-ein-5.4.0/arch/arc/mm/dma.c
@@ -48,8 +48,8 @@
  * upper layer functions (in include/linux/dma-mapping.h)
  */
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_TO_DEVICE:
@@ -69,8 +69,8 @@
 	}
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_TO_DEVICE:
--- linux-ein-5.4.0.orig/arch/arc/mm/ioremap.c
+++ linux-ein-5.4.0/arch/arc/mm/ioremap.c
@@ -53,9 +53,10 @@
 void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size,
 			   unsigned long flags)
 {
+	unsigned int off;
 	unsigned long vaddr;
 	struct vm_struct *area;
-	phys_addr_t off, end;
+	phys_addr_t end;
 	pgprot_t prot = __pgprot(flags);
 
 	/* Don't allow wraparound, zero size */
@@ -72,7 +73,7 @@
 
 	/* Mappings have to be page-aligned */
 	off = paddr & ~PAGE_MASK;
-	paddr &= PAGE_MASK;
+	paddr &= PAGE_MASK_PHYS;
 	size = PAGE_ALIGN(end + 1) - paddr;
 
 	/*
@@ -92,7 +93,7 @@
 EXPORT_SYMBOL(ioremap_prot);
 
 
-void iounmap(const void __iomem *addr)
+void iounmap(const volatile void __iomem *addr)
 {
 	/* weird double cast to handle phys_addr_t > 32 bits */
 	if (arc_uncached_addr_space((phys_addr_t)(u32)addr))
--- linux-ein-5.4.0.orig/arch/arc/mm/tlb.c
+++ linux-ein-5.4.0/arch/arc/mm/tlb.c
@@ -597,7 +597,7 @@
 		      pte_t *ptep)
 {
 	unsigned long vaddr = vaddr_unaligned & PAGE_MASK;
-	phys_addr_t paddr = pte_val(*ptep) & PAGE_MASK;
+	phys_addr_t paddr = pte_val(*ptep) & PAGE_MASK_PHYS;
 	struct page *page = pfn_to_page(pte_pfn(*ptep));
 
 	create_tlb(vma, vaddr, ptep);
--- linux-ein-5.4.0.orig/arch/arc/plat-eznps/Kconfig
+++ linux-ein-5.4.0/arch/arc/plat-eznps/Kconfig
@@ -6,8 +6,9 @@
 
 menuconfig ARC_PLAT_EZNPS
 	bool "\"EZchip\" ARC dev platform"
+	depends on ISA_ARCOMPACT
 	select CPU_BIG_ENDIAN
-	select CLKSRC_NPS
+	select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
 	select EZNPS_GIC
 	select EZCHIP_NPS_MANAGEMENT_ENET if ETHERNET
 	help
--- linux-ein-5.4.0.orig/arch/arc/plat-eznps/include/plat/ctop.h
+++ linux-ein-5.4.0/arch/arc/plat-eznps/include/plat/ctop.h
@@ -33,7 +33,6 @@
 #define CTOP_AUX_DPC				(CTOP_AUX_BASE + 0x02C)
 #define CTOP_AUX_LPC				(CTOP_AUX_BASE + 0x030)
 #define CTOP_AUX_EFLAGS				(CTOP_AUX_BASE + 0x080)
-#define CTOP_AUX_IACK				(CTOP_AUX_BASE + 0x088)
 #define CTOP_AUX_GPA1				(CTOP_AUX_BASE + 0x08C)
 #define CTOP_AUX_UDMC				(CTOP_AUX_BASE + 0x300)
 
--- linux-ein-5.4.0.orig/arch/arc/plat-hsdk/Kconfig
+++ linux-ein-5.4.0/arch/arc/plat-hsdk/Kconfig
@@ -8,5 +8,6 @@
 	select ARC_HAS_ACCL_REGS
 	select ARC_IRQ_NO_AUTOSAVE
 	select CLK_HSDK
+	select RESET_CONTROLLER
 	select RESET_HSDK
 	select HAVE_PCI
--- linux-ein-5.4.0.orig/arch/arm/Kconfig
+++ linux-ein-5.4.0/arch/arm/Kconfig
@@ -5,6 +5,7 @@
 	select ARCH_32BIT_OFF_T
 	select ARCH_CLOCKSOURCE_DATA
 	select ARCH_HAS_BINFMT_FLAT
+	select ARCH_HAS_CPU_FINALIZE_INIT if MMU
 	select ARCH_HAS_DEBUG_VIRTUAL if MMU
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_DMA_COHERENT_TO_PFN if SWIOTLB
@@ -26,7 +27,7 @@
 	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
 	select ARCH_HAVE_CUSTOM_GPIO_H
 	select ARCH_HAS_GCOV_PROFILE_ALL
-	select ARCH_KEEP_MEMBLOCK if HAVE_ARCH_PFN_VALID || KEXEC
+	select ARCH_KEEP_MEMBLOCK
 	select ARCH_MIGHT_HAVE_PC_PARPORT
 	select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN
 	select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
@@ -73,8 +74,9 @@
 	select HAVE_ARM_SMCCC if CPU_V7
 	select HAVE_EBPF_JIT if !CPU_ENDIAN_BE32
 	select HAVE_CONTEXT_TRACKING
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_C_RECORDMCOUNT
-	select HAVE_DEBUG_KMEMLEAK
+	select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL
 	select HAVE_DMA_CONTIGUOUS if MMU
 	select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
 	select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
@@ -84,6 +86,7 @@
 	select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
 	select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG
 	select HAVE_FUNCTION_TRACER if !XIP_KERNEL && (CC_IS_GCC || CLANG_VERSION >= 100000)
+	select HAVE_FUTEX_CMPXCHG if FUTEX
 	select HAVE_GCC_PLUGINS
 	select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
 	select HAVE_IDE if PCI || ISA || PCMCIA
@@ -117,7 +120,6 @@
 	select OLD_SIGSUSPEND3
 	select PCI_SYSCALL if PCI
 	select PERF_USE_VMALLOC
-	select REFCOUNT_FULL
 	select RTC_LIB
 	select SYS_SUPPORTS_APM_EMULATION
 	# Above selects are sorted alphabetically; please add new ones
@@ -506,8 +508,10 @@
 	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select NEED_MACH_IO_H
+	select S3C2410_WATCHDOG
 	select SAMSUNG_ATAGS
 	select USE_OF
+	select WATCHDOG
 	help
 	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
 	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
@@ -517,7 +521,6 @@
 config ARCH_OMAP1
 	bool "TI OMAP1"
 	depends on MMU
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_OMAP
 	select CLKDEV_LOOKUP
 	select CLKSRC_MMIO
@@ -1514,9 +1517,6 @@
 	  UNPREDICTABLE (in fact it can be predicted that it won't work
 	  at all). If in doubt say N.
 
-config ARCH_HAS_HOLES_MEMORYMODEL
-	bool
-
 config ARCH_SPARSEMEM_ENABLE
 	bool
 
@@ -1524,7 +1524,7 @@
 	def_bool ARCH_SPARSEMEM_ENABLE
 
 config HAVE_ARCH_PFN_VALID
-	def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
+	def_bool y
 
 config HIGHMEM
 	bool "High Memory Support"
@@ -1838,7 +1838,6 @@
 choice
 	prompt "Kernel command line type" if CMDLINE != ""
 	default CMDLINE_FROM_BOOTLOADER
-	depends on ATAGS
 
 config CMDLINE_FROM_BOOTLOADER
 	bool "Use bootloader kernel arguments if available"
@@ -1906,7 +1905,7 @@
 config KEXEC
 	bool "Kexec system call (EXPERIMENTAL)"
 	depends on (!SMP || PM_SLEEP_SMP)
-	depends on !CPU_V7M
+	depends on MMU
 	select KEXEC_CORE
 	help
 	  kexec is a system call that implements the ability to shutdown your
--- linux-ein-5.4.0.orig/arch/arm/Makefile
+++ linux-ein-5.4.0/arch/arm/Makefile
@@ -66,15 +66,15 @@
 # Note that GCC does not numerically define an architecture version
 # macro, but instead defines a whole series of macros which makes
 # testing for a specific architecture or later rather impossible.
-arch-$(CONFIG_CPU_32v7M)	=-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
-arch-$(CONFIG_CPU_32v7)		=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
-arch-$(CONFIG_CPU_32v6)		=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
+arch-$(CONFIG_CPU_32v7M)	=-D__LINUX_ARM_ARCH__=7 -march=armv7-m
+arch-$(CONFIG_CPU_32v7)		=-D__LINUX_ARM_ARCH__=7 -march=armv7-a
+arch-$(CONFIG_CPU_32v6)		=-D__LINUX_ARM_ARCH__=6 -march=armv6
 # Only override the compiler option if ARMv6. The ARMv6K extensions are
 # always available in ARMv7
 ifeq ($(CONFIG_CPU_32v6),y)
-arch-$(CONFIG_CPU_32v6K)	=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
+arch-$(CONFIG_CPU_32v6K)	=-D__LINUX_ARM_ARCH__=6 -march=armv6k
 endif
-arch-$(CONFIG_CPU_32v5)		=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t)
+arch-$(CONFIG_CPU_32v5)		=-D__LINUX_ARM_ARCH__=5 -march=armv5te
 arch-$(CONFIG_CPU_32v4T)	=-D__LINUX_ARM_ARCH__=4 -march=armv4t
 arch-$(CONFIG_CPU_32v4)		=-D__LINUX_ARM_ARCH__=4 -march=armv4
 arch-$(CONFIG_CPU_32v3)		=-D__LINUX_ARM_ARCH__=3 -march=armv3m
@@ -88,7 +88,7 @@
 tune-$(CONFIG_CPU_ARM740T)	=-mtune=arm7tdmi
 tune-$(CONFIG_CPU_ARM9TDMI)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM940T)	=-mtune=arm9tdmi
-tune-$(CONFIG_CPU_ARM946E)	=$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
+tune-$(CONFIG_CPU_ARM946E)	=-mtune=arm9e
 tune-$(CONFIG_CPU_ARM920T)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM922T)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM925T)	=-mtune=arm9tdmi
@@ -96,11 +96,11 @@
 tune-$(CONFIG_CPU_FA526)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_SA110)	=-mtune=strongarm110
 tune-$(CONFIG_CPU_SA1100)	=-mtune=strongarm1100
-tune-$(CONFIG_CPU_XSCALE)	=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
-tune-$(CONFIG_CPU_XSC3)		=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
-tune-$(CONFIG_CPU_FEROCEON)	=$(call cc-option,-mtune=marvell-f,-mtune=xscale)
-tune-$(CONFIG_CPU_V6)		=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
-tune-$(CONFIG_CPU_V6K)		=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
+tune-$(CONFIG_CPU_XSCALE)	=-mtune=xscale
+tune-$(CONFIG_CPU_XSC3)		=-mtune=xscale
+tune-$(CONFIG_CPU_FEROCEON)	=-mtune=xscale
+tune-$(CONFIG_CPU_V6)		=-mtune=arm1136j-s
+tune-$(CONFIG_CPU_V6K)		=-mtune=arm1136j-s
 
 # Evaluate tune cc-option calls now
 tune-y := $(tune-y)
@@ -307,13 +307,15 @@
 ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y)
 prepare: stack_protector_prepare
 stack_protector_prepare: prepare0
-	$(eval KBUILD_CFLAGS += \
+	$(eval SSP_PLUGIN_CFLAGS := \
 		-fplugin-arg-arm_ssp_per_task_plugin-tso=$(shell	\
 			awk '{if ($$2 == "THREAD_SZ_ORDER") print $$3;}'\
 				include/generated/asm-offsets.h)	\
 		-fplugin-arg-arm_ssp_per_task_plugin-offset=$(shell	\
 			awk '{if ($$2 == "TI_STACK_CANARY") print $$3;}'\
 				include/generated/asm-offsets.h))
+	$(eval KBUILD_CFLAGS += $(SSP_PLUGIN_CFLAGS))
+	$(eval GCC_PLUGINS_CFLAGS += $(SSP_PLUGIN_CFLAGS))
 endif
 
 all:	$(notdir $(KBUILD_IMAGE))
--- linux-ein-5.4.0.orig/arch/arm/boot/bootp/init.S
+++ linux-ein-5.4.0/arch/arm/boot/bootp/init.S
@@ -13,7 +13,7 @@
  *  size immediately following the kernel, we could build this into
  *  a binary blob, and concatenate the zImage using the cat command.
  */
-		.section .start,#alloc,#execinstr
+		.section .start, "ax"
 		.type	_start, #function
 		.globl	_start
 
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/Makefile
+++ linux-ein-5.4.0/arch/arm/boot/compressed/Makefile
@@ -90,6 +90,8 @@
 	$(addprefix $(obj)/,$(libfdt_hdrs))
 
 ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
+CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
+CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
 OBJS	+= $(libfdt_objs) atags_to_fdt.o
 endif
 
@@ -101,7 +103,6 @@
 		$(libfdt) $(libfdt_hdrs) hyp-stub.S
 
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
-KBUILD_CFLAGS += $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
 
 ifeq ($(CONFIG_FUNCTION_TRACER),y)
 ORIG_CFLAGS := $(KBUILD_CFLAGS)
@@ -117,13 +118,14 @@
 CFLAGS_fdt_rw.o := $(nossp_flags)
 CFLAGS_fdt_wip.o := $(nossp_flags)
 
-ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin -I$(obj)
+ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \
+	     -I$(obj) $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
 asflags-y := -DZIMAGE
 
 # Supply kernel BSS size to the decompressor via a linker symbol.
-KBSS_SZ = $(shell echo $$(($$($(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \
-		sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \
-		       -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) )
+KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \
+		sed -n -e 's/^\([^ ]*\) [ABD] __bss_start$$/-0x\1/p' \
+		       -e 's/^\([^ ]*\) [ABD] __bss_stop$$/+0x\1/p') )) )
 LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
 # Supply ZRELADDR to the decompressor via a linker symbol.
 ifneq ($(CONFIG_AUTO_ZRELADDR),y)
@@ -165,7 +167,7 @@
 # The .data section is already discarded by the linker script so no need
 # to bother about it here.
 check_for_bad_syms = \
-bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
+bad_syms=$$($(NM) $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
 [ -z "$$bad_syms" ] || \
   ( echo "following symbols must have non local/private scope:" >&2; \
     echo "$$bad_syms" >&2; false )
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/big-endian.S
+++ linux-ein-5.4.0/arch/arm/boot/compressed/big-endian.S
@@ -6,7 +6,7 @@
  *  Author: Nicolas Pitre
  */
 
-	.section ".start", #alloc, #execinstr
+	.section ".start", "ax"
 
 	mrc	p15, 0, r0, c1, c0, 0	@ read control reg
 	orr	r0, r0, #(1 << 7)	@ enable big endian mode
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/decompress.c
+++ linux-ein-5.4.0/arch/arm/boot/compressed/decompress.c
@@ -47,7 +47,10 @@
 #endif
 
 #ifdef CONFIG_KERNEL_XZ
+/* Prevent KASAN override of string helpers in decompressor */
+#undef memmove
 #define memmove memmove
+#undef memcpy
 #define memcpy memcpy
 #include "../../../../lib/decompress_unxz.c"
 #endif
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/efi-header.S
+++ linux-ein-5.4.0/arch/arm/boot/compressed/efi-header.S
@@ -9,16 +9,22 @@
 #include <linux/sizes.h>
 
 		.macro	__nop
-#ifdef CONFIG_EFI_STUB
-		@ This is almost but not quite a NOP, since it does clobber the
-		@ condition flags. But it is the best we can do for EFI, since
-		@ PE/COFF expects the magic string "MZ" at offset 0, while the
-		@ ARM/Linux boot protocol expects an executable instruction
-		@ there.
-		.inst	MZ_MAGIC | (0x1310 << 16)	@ tstne r0, #0x4d000
-#else
  AR_CLASS(	mov	r0, r0		)
   M_CLASS(	nop.w			)
+		.endm
+
+		.macro __initial_nops
+#ifdef CONFIG_EFI_STUB
+		@ This is a two-instruction NOP, which happens to bear the
+		@ PE/COFF signature "MZ" in the first two bytes, so the kernel
+		@ is accepted as an EFI binary. Booting via the UEFI stub
+		@ will not execute those instructions, but the ARM/Linux
+		@ boot protocol does, so we need some NOPs here.
+		.inst	MZ_MAGIC | (0xe225 << 16)	@ eor r5, r5, 0x4d000
+		eor	r5, r5, 0x4d000			@ undo previous insn
+#else
+		__nop
+		__nop
 #endif
 		.endm
 
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/head.S
+++ linux-ein-5.4.0/arch/arm/boot/compressed/head.S
@@ -140,7 +140,7 @@
 #endif
 		.endm
 
-		.section ".start", #alloc, #execinstr
+		.section ".start", "ax"
 /*
  * sort out different calling conventions
  */
@@ -165,7 +165,8 @@
 		 * were patching the initial instructions of the kernel, i.e
 		 * had started to exploit this "patch area".
 		 */
-		.rept	7
+		__initial_nops
+		.rept	5
 		__nop
 		.endr
 #ifndef CONFIG_THUMB2_KERNEL
@@ -1142,9 +1143,9 @@
 __armv7_mmu_cache_off:
 		mrc	p15, 0, r0, c1, c0
 #ifdef CONFIG_MMU
-		bic	r0, r0, #0x000d
+		bic	r0, r0, #0x0005
 #else
-		bic	r0, r0, #0x000c
+		bic	r0, r0, #0x0004
 #endif
 		mcr	p15, 0, r0, c1, c0	@ turn MMU and cache off
 		mov	r12, lr
@@ -1273,7 +1274,7 @@
 __armv5tej_mmu_cache_flush:
 		tst	r4, #1
 		movne	pc, lr
-1:		mrc	p15, 0, r15, c7, c14, 3	@ test,clean,invalidate D cache
+1:		mrc	p15, 0, APSR_nzcv, c7, c14, 3	@ test,clean,invalidate D cache
 		bne	1b
 		mcr	p15, 0, r0, c7, c5, 0	@ flush I cache
 		mcr	p15, 0, r0, c7, c10, 4	@ drain WB
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/libfdt_env.h
+++ linux-ein-5.4.0/arch/arm/boot/compressed/libfdt_env.h
@@ -2,11 +2,13 @@
 #ifndef _ARM_LIBFDT_ENV_H
 #define _ARM_LIBFDT_ENV_H
 
+#include <linux/limits.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <asm/byteorder.h>
 
-#define INT_MAX			((int)(~0U>>1))
+#define INT32_MAX	S32_MAX
+#define UINT32_MAX	U32_MAX
 
 typedef __be16 fdt16_t;
 typedef __be32 fdt32_t;
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/piggy.S
+++ linux-ein-5.4.0/arch/arm/boot/compressed/piggy.S
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0 */
-	.section .piggydata,#alloc
+	.section .piggydata, "a"
 	.globl	input_data
 input_data:
 	.incbin	"arch/arm/boot/compressed/piggy_data"
--- linux-ein-5.4.0.orig/arch/arm/boot/compressed/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/arm/boot/compressed/vmlinux.lds.S
@@ -43,7 +43,7 @@
   }
   .table : ALIGN(4) {
     _table_start = .;
-    LONG(ZIMAGE_MAGIC(2))
+    LONG(ZIMAGE_MAGIC(4))
     LONG(ZIMAGE_MAGIC(0x5a534c4b))
     LONG(ZIMAGE_MAGIC(__piggy_size_addr - _start))
     LONG(ZIMAGE_MAGIC(_kernel_bss_size))
--- linux-ein-5.4.0.orig/arch/arm/boot/deflate_xip_data.sh
+++ linux-ein-5.4.0/arch/arm/boot/deflate_xip_data.sh
@@ -56,7 +56,7 @@
 # substitute the data section by a compressed version
 $DD if="$XIPIMAGE" count=$data_start iflag=count_bytes of="$XIPIMAGE.tmp"
 $DD if="$XIPIMAGE"  skip=$data_start iflag=skip_bytes |
-gzip -9 >> "$XIPIMAGE.tmp"
+$KGZIP -9 >> "$XIPIMAGE.tmp"
 
 # replace kernel binary
 mv -f "$XIPIMAGE.tmp" "$XIPIMAGE"
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/Makefile
+++ linux-ein-5.4.0/arch/arm/boot/dts/Makefile
@@ -559,10 +559,12 @@
 	imx6sx-sdb-reva.dtb \
 	imx6sx-sdb-sai.dtb \
 	imx6sx-sdb.dtb \
+	imx6sx-sdb-mqs.dtb \
 	imx6sx-softing-vining-2000.dtb \
 	imx6sx-udoo-neo-basic.dtb \
 	imx6sx-udoo-neo-extended.dtb \
-	imx6sx-udoo-neo-full.dtb
+	imx6sx-udoo-neo-full.dtb \
+	imx6sx-x6med35-pdk.dtb
 dtb-$(CONFIG_SOC_IMX6UL) += \
 	imx6ul-14x14-evk.dtb \
 	imx6ul-ccimx6ulsbcexpress.dtb \
@@ -586,8 +588,13 @@
 	imx6ull-phytec-segin-ff-rdk-nand.dtb \
 	imx6ull-phytec-segin-ff-rdk-emmc.dtb \
 	imx6ull-phytec-segin-lc-rdk-nand.dtb \
-	imx6ulz-14x14-evk.dtb
+	imx6ulz-14x14-evk.dtb \
+	vesta-500.dtb
 dtb-$(CONFIG_SOC_IMX7D) += \
+	amgis-fcl-v3.dtb \
+	amgis-fcl-v4.dtb \
+	amgis-fcl-v5.dtb \
+	amgis-fcl-v6.dtb \
 	imx7d-cl-som-imx7.dtb \
 	imx7d-colibri-emmc-eval-v3.dtb \
 	imx7d-colibri-eval-v3.dtb \
@@ -1303,3 +1310,12 @@
 	aspeed-bmc-opp-zaius.dtb \
 	aspeed-bmc-portwell-neptune.dtb \
 	aspeed-bmc-quanta-q71l.dtb
+
+targets += dtbs dtbs_install
+targets += $(dtb-y)
+
+subdir-y	:= overlays
+
+ifeq ($(CONFIG_OF_OVERLAY),y)
+	DTC_FLAGS ?= -@
+endif
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-baltos.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-baltos.dtsi
@@ -381,7 +381,7 @@
 &mmc2 {
 	status = "okay";
 	vmmc-supply = <&wl12xx_vmmc>;
-	ti,non-removable;
+	non-removable;
 	bus-width = <4>;
 	cap-power-off-card;
 	pinctrl-names = "default";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-boneblack-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-boneblack-common.dtsi
@@ -22,6 +22,7 @@
 	pinctrl-0 = <&emmc_pins>;
 	bus-width = <8>;
 	status = "okay";
+	non-removable;
 };
 
 &am33xx_pinmux {
@@ -131,6 +132,11 @@
 };
 
 / {
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x80000000 0x20000000>; /* 512 MB */
+	};
+
 	clk_mcasp0_fixed: clk_mcasp0_fixed {
 		#clock-cells = <0>;
 		compatible = "fixed-clock";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-boneblack-wireless.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-boneblack-wireless.dts
@@ -75,7 +75,6 @@
 	bus-width = <4>;
 	non-removable;
 	cap-power-off-card;
-	ti,needs-special-hs-handling;
 	keep-power-in-suspend;
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-boneblue.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-boneblue.dts
@@ -389,7 +389,6 @@
 	bus-width = <4>;
 	non-removable;
 	cap-power-off-card;
-	ti,needs-special-hs-handling;
 	keep-power-in-suspend;
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
@@ -75,7 +75,6 @@
 	bus-width = <4>;
 	non-removable;
 	cap-power-off-card;
-	ti,needs-special-hs-handling;
 	keep-power-in-suspend;
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-cm-t335.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-cm-t335.dts
@@ -516,7 +516,7 @@
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <&spi0_pins>;
-	ti,pindir-d0-out-d1-in = <1>;
+	ti,pindir-d0-out-d1-in;
 	/* WLS1271 WiFi */
 	wlcore: wlcore@1 {
 		compatible = "ti,wl1271";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-evm.dts
@@ -782,8 +782,7 @@
 	bus-width = <4>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc3_pins &wlan_pins>;
-	ti,non-removable;
-	ti,needs-special-hs-handling;
+	non-removable;
 	cap-power-off-card;
 	keep-power-in-suspend;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-evmsk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-evmsk.dts
@@ -700,7 +700,7 @@
 &mmc2 {
 	status = "okay";
 	vmmc-supply = <&wl12xx_vmmc>;
-	ti,non-removable;
+	non-removable;
 	bus-width = <4>;
 	cap-power-off-card;
 	keep-power-in-suspend;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-lxm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-lxm.dts
@@ -361,7 +361,7 @@
 	pinctrl-0 = <&emmc_pins>;
 	vmmc-supply = <&vmmcsd_fixed>;
 	bus-width = <8>;
-	ti,non-removable;
+	non-removable;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
@@ -176,7 +176,7 @@
 	vmmc-supply = <&vmmcsd_fixed>;
 	bus-width = <8>;
 	pinctrl-0 = <&mmc1_pins_default>;
-	ti,non-removable;
+	non-removable;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
@@ -473,7 +473,7 @@
 	vmmc-supply = <&vmmcsd_fixed>;
 	bus-width = <8>;
 	pinctrl-0 = <&mmc2_pins_default>;
-	ti,non-removable;
+	non-removable;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-pcm-953.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-pcm-953.dtsi
@@ -12,22 +12,20 @@
 	compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
 
 	/* Power */
-	regulators {
-		vcc3v3: fixedregulator@1 {
-			compatible = "regulator-fixed";
-			regulator-name = "vcc3v3";
-			regulator-min-microvolt = <3300000>;
-			regulator-max-microvolt = <3300000>;
-			regulator-boot-on;
-		};
+	vcc3v3: fixedregulator1 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+	};
 
-		vcc1v8: fixedregulator@2 {
-			compatible = "regulator-fixed";
-			regulator-name = "vcc1v8";
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-			regulator-boot-on;
-		};
+	vcc1v8: fixedregulator2 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-boot-on;
 	};
 
 	/* User IO */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-pepper.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-pepper.dts
@@ -341,7 +341,7 @@
 	pinctrl-0 = <&emmc_pins>;
 	vmmc-supply = <&ldo3_reg>;
 	bus-width = <8>;
-	ti,non-removable;
+	non-removable;
 };
 
 &mmc3 {
@@ -351,7 +351,7 @@
 	pinctrl-0 = <&wireless_pins>;
 	vmmmc-supply = <&v3v3c_reg>;
 	bus-width = <4>;
-	ti,non-removable;
+	non-removable;
 	dmas = <&edma_xbar 12 0 1
 		&edma_xbar 13 0 2>;
 	dma-names = "tx", "rx";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-phycore-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -69,7 +69,7 @@
 	pinctrl-0 = <&emmc_pins>;
 	vmmc-supply = <&vmmc_reg>;
 	bus-width = <8>;
-	ti,non-removable;
+	non-removable;
 	status = "disabled";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-pocketbeagle.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-pocketbeagle.dts
@@ -88,7 +88,6 @@
 			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
 			AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
 			AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
-			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT, MUX_MODE4)		/* (B12) mcasp0_aclkr.mmc0_sdwp */
 		>;
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am335x-sancloud-bbe.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am335x-sancloud-bbe.dts
@@ -108,7 +108,7 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii-txid";
+	phy-mode = "rgmii-id";
 };
 
 &i2c0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am33xx-l4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am33xx-l4.dtsi
@@ -1333,12 +1333,9 @@
 			ranges = <0x0 0x60000 0x1000>;
 
 			mmc1: mmc@0 {
-				compatible = "ti,omap4-hsmmc";
-				ti,dual-volt;
+				compatible = "ti,am335-sdhci";
 				ti,needs-special-reset;
-				ti,needs-special-hs-handling;
-				dmas = <&edma_xbar 24 0 0
-					&edma_xbar 25 0 0>;
+				dmas = <&edma 24 0>, <&edma 25 0>;
 				dma-names = "tx", "rx";
 				interrupts = <64>;
 				reg = <0x0 0x1000>;
@@ -1827,7 +1824,7 @@
 			ranges = <0x0 0xd8000 0x1000>;
 
 			mmc2: mmc@0 {
-				compatible = "ti,omap4-hsmmc";
+				compatible = "ti,am335-sdhci";
 				ti,needs-special-reset;
 				dmas = <&edma 2 0
 					&edma 3 0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am33xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am33xx.dtsi
@@ -40,6 +40,9 @@
 		ethernet1 = &cpsw_emac1;
 		spi0 = &spi0;
 		spi1 = &spi1;
+		mmc0 = &mmc1;
+		mmc1 = &mmc2;
+		mmc2 = &mmc3;
 	};
 
 	cpus {
@@ -256,10 +259,11 @@
 			ranges = <0x0 0x47810000 0x1000>;
 
 			mmc3: mmc@0 {
-				compatible = "ti,omap4-hsmmc";
+				compatible = "ti,am335-sdhci";
 				ti,needs-special-reset;
 				interrupts = <29>;
 				reg = <0x0 0x1000>;
+				status = "disabled";
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am3517-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am3517-evm.dts
@@ -160,6 +160,8 @@
 
 	/* HS USB Host PHY on PORT 1 */
 	hsusb1_phy: hsusb1_phy {
+		pinctrl-names = "default";
+		pinctrl-0 = <&hsusb1_rst_pins>;
 		compatible = "usb-nop-xceiv";
 		reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; /* gpio_57 */
 		#phy-cells = <0>;
@@ -167,7 +169,9 @@
 };
 
 &davinci_emac {
-	     status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&ethernet_pins>;
+	status = "okay";
 };
 
 &davinci_mdio {
@@ -192,6 +196,8 @@
 };
 
 &i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins>;
 	clock-frequency = <400000>;
 	/* User DIP swithes [1:8] / User LEDS [1:2] */
 	tca6416: gpio@21 {
@@ -204,6 +210,8 @@
 };
 
 &i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c3_pins>;
 	clock-frequency = <400000>;
 };
 
@@ -222,6 +230,8 @@
 };
 
 &usbhshost {
+	pinctrl-names = "default";
+	pinctrl-0 = <&hsusb1_pins>;
 	port1-mode = "ehci-phy";
 };
 
@@ -230,8 +240,35 @@
 };
 
 &omap3_pmx_core {
-	pinctrl-names = "default";
-	pinctrl-0 = <&hsusb1_rst_pins>;
+
+	ethernet_pins: pinmux_ethernet_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x21fe, PIN_INPUT | MUX_MODE0) /* rmii_mdio_data */
+			OMAP3_CORE1_IOPAD(0x2200, MUX_MODE0) /* rmii_mdio_clk */
+			OMAP3_CORE1_IOPAD(0x2202, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_rxd0 */
+			OMAP3_CORE1_IOPAD(0x2204, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_rxd1 */
+			OMAP3_CORE1_IOPAD(0x2206, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_crs_dv */
+			OMAP3_CORE1_IOPAD(0x2208, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* rmii_rxer */
+			OMAP3_CORE1_IOPAD(0x220a, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* rmii_txd0 */
+			OMAP3_CORE1_IOPAD(0x220c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* rmii_txd1 */
+			OMAP3_CORE1_IOPAD(0x220e, PIN_OUTPUT_PULLDOWN |MUX_MODE0) /* rmii_txen */
+			OMAP3_CORE1_IOPAD(0x2210, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii_50mhz_clk */
+		>;
+	};
+
+	i2c2_pins: pinmux_i2c2_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT_PULLUP | MUX_MODE0)  /* i2c2_scl */
+			OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT_PULLUP | MUX_MODE0)  /* i2c2_sda */
+		>;
+	};
+
+	i2c3_pins: pinmux_i2c3_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT_PULLUP | MUX_MODE0)  /* i2c3_scl */
+			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT_PULLUP | MUX_MODE0)  /* i2c3_sda */
+		>;
+	};
 
 	leds_pins: pinmux_leds_pins {
 		pinctrl-single,pins = <
@@ -299,8 +336,6 @@
 };
 
 &omap3_pmx_core2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&hsusb1_pins>;
 
 	hsusb1_pins: pinmux_hsusb1_pins {
 		pinctrl-single,pins = <
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am3517-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am3517-som.dtsi
@@ -69,6 +69,8 @@
 };
 
 &i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins>;
 	clock-frequency = <400000>;
 
 	s35390a: s35390a@30 {
@@ -179,6 +181,13 @@
 
 &omap3_pmx_core {
 
+	i2c1_pins: pinmux_i2c1_pins {
+		pinctrl-single,pins = <
+			OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT_PULLUP | MUX_MODE0)  /* i2c1_scl */
+			OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT_PULLUP | MUX_MODE0)  /* i2c1_sda */
+		>;
+	};
+
 	wl12xx_buffer_pins: pinmux_wl12xx_buffer_pins {
 		pinctrl-single,pins = <
 			OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)  /* mmc1_dat7.gpio_129 */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am4372.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am4372.dtsi
@@ -250,10 +250,11 @@
 			ranges = <0x0 0x47810000 0x1000>;
 
 			mmc3: mmc@0 {
-				compatible = "ti,omap4-hsmmc";
+				compatible = "ti,am437-sdhci";
 				ti,needs-special-reset;
 				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
 				reg = <0x0 0x1000>;
+				status = "disabled";
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am437x-cm-t43.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am437x-cm-t43.dts
@@ -291,7 +291,7 @@
 	pinctrl-0 = <&emmc_pins>;
 	vmmc-supply = <&vmmc_3v3>;
 	bus-width = <8>;
-	ti,non-removable;
+	non-removable;
 };
 
 &spi0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am437x-gp-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -86,7 +86,7 @@
 		};
 
 	lcd0: display {
-		compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
+		compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
 		label = "lcd";
 
 		backlight = <&lcd_bl>;
@@ -829,11 +829,14 @@
 	status = "okay";
 };
 
+&gpio5_target {
+	ti,no-reset-on-init;
+};
+
 &gpio5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&display_mux_pins>;
 	status = "okay";
-	ti,no-reset-on-init;
 
 	p8 {
 		/*
@@ -869,7 +872,7 @@
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&emmc_pins_default>;
 	pinctrl-1 = <&emmc_pins_sleep>;
-	ti,non-removable;
+	non-removable;
 };
 
 &mmc3 {
@@ -886,7 +889,7 @@
 	pinctrl-1 = <&mmc3_pins_sleep>;
 	cap-power-off-card;
 	keep-power-in-suspend;
-	ti,non-removable;
+	non-removable;
 
 	#address-cells = <1>;
 	#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am437x-idk-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -526,11 +526,11 @@
 	 * Supply voltage supervisor on board will not allow opp50 so
 	 * disable it and set opp100 as suspend OPP.
 	 */
-	opp50@300000000 {
+	opp50-300000000 {
 		status = "disabled";
 	};
 
-	opp100@600000000 {
+	opp100-600000000 {
 		opp-suspend;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am437x-l4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am437x-l4.dtsi
@@ -1104,9 +1104,8 @@
 			ranges = <0x0 0x60000 0x1000>;
 
 			mmc1: mmc@0 {
-				compatible = "ti,omap4-hsmmc";
+				compatible = "ti,am437-sdhci";
 				reg = <0x0 0x1000>;
-				ti,dual-volt;
 				ti,needs-special-reset;
 				dmas = <&edma 24 0>,
 					<&edma 25 0>;
@@ -1576,8 +1575,9 @@
 			reg-names = "rev";
 			ti,hwmods = "d_can0";
 			/* Domains (P, C): per_pwrdm, l4ls_clkdm */
-			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>;
-			clock-names = "fck";
+			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN0_CLKCTRL 0>,
+			<&dcan0_fck>;
+			clock-names = "fck", "osc";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0xcc000 0x2000>;
@@ -1585,6 +1585,8 @@
 			dcan0: can@0 {
 				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
 				reg = <0x0 0x2000>;
+				clocks = <&dcan0_fck>;
+				clock-names = "fck";
 				syscon-raminit = <&scm_conf 0x644 0>;
 				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
@@ -1597,8 +1599,9 @@
 			reg-names = "rev";
 			ti,hwmods = "d_can1";
 			/* Domains (P, C): per_pwrdm, l4ls_clkdm */
-			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>;
-			clock-names = "fck";
+			clocks = <&l4ls_clkctrl AM4_L4LS_D_CAN1_CLKCTRL 0>,
+			<&dcan1_fck>;
+			clock-names = "fck", "osc";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0xd0000 0x2000>;
@@ -1606,6 +1609,8 @@
 			dcan1: can@0 {
 				compatible = "ti,am4372-d_can", "ti,am3352-d_can";
 				reg = <0x0 0x2000>;
+				clocks = <&dcan1_fck>;
+				clock-names = "fck";
 				syscon-raminit = <&scm_conf 0x644 1>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
@@ -1635,7 +1640,7 @@
 			ranges = <0x0 0xd8000 0x1000>;
 
 			mmc2: mmc@0 {
-				compatible = "ti,omap4-hsmmc";
+				compatible = "ti,am437-sdhci";
 				reg = <0x0 0x1000>;
 				ti,needs-special-reset;
 				dmas = <&edma 2 0>,
@@ -2071,7 +2076,7 @@
 			};
 		};
 
-		target-module@22000 {			/* 0x48322000, ap 116 64.0 */
+		gpio5_target: target-module@22000 {		/* 0x48322000, ap 116 64.0 */
 			compatible = "ti,sysc-omap2", "ti,sysc";
 			ti,hwmods = "gpio6";
 			reg = <0x22000 0x4>,
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am437x-sk-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -694,7 +694,7 @@
 	pinctrl-1 = <&mmc3_pins_sleep>;
 	cap-power-off-card;
 	keep-power-in-suspend;
-	ti,non-removable;
+	non-removable;
 
 	#address-cells = <1>;
 	#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am43x-epos-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -42,7 +42,7 @@
 	};
 
 	lcd0: display {
-		compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
+		compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
 		label = "lcd";
 
 		backlight = <&lcd_bl>;
@@ -589,7 +589,7 @@
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c0_pins>;
-	clock-frequency = <400000>;
+	clock-frequency = <100000>;
 
 	tps65218: tps65218@24 {
 		reg = <0x24>;
@@ -848,6 +848,7 @@
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&spi0_pins_default>;
 	pinctrl-1 = <&spi0_pins_sleep>;
+	ti,pindir-d0-out-d1-in;
 };
 
 &spi1 {
@@ -855,6 +856,7 @@
 	pinctrl-names = "default", "sleep";
 	pinctrl-0 = <&spi1_pins_default>;
 	pinctrl-1 = <&spi1_pins_sleep>;
+	ti,pindir-d0-out-d1-in;
 };
 
 &usb2_phy1 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am43xx-clocks.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am43xx-clocks.dtsi
@@ -704,6 +704,60 @@
 		ti,bit-shift = <8>;
 		reg = <0x2a48>;
 	};
+
+	clkout1_osc_div_ck: clkout1-osc-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&sys_clkin_ck>;
+		ti,bit-shift = <20>;
+		ti,max-div = <4>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_mux_ck: clkout1-src2-mux-ck {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&clk_rc32k_ck>, <&sysclk_div>, <&dpll_ddr_m2_ck>,
+			 <&dpll_per_m2_ck>, <&dpll_disp_m2_ck>,
+			 <&dpll_mpu_m2_ck>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_pre_div_ck: clkout1-src2-pre-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&clkout1_src2_mux_ck>;
+		ti,bit-shift = <4>;
+		ti,max-div = <8>;
+		reg = <0x4100>;
+	};
+
+	clkout1_src2_post_div_ck: clkout1-src2-post-div-ck {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&clkout1_src2_pre_div_ck>;
+		ti,bit-shift = <8>;
+		ti,max-div = <32>;
+		ti,index-power-of-two;
+		reg = <0x4100>;
+	};
+
+	clkout1_mux_ck: clkout1-mux-ck {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&clkout1_osc_div_ck>, <&clk_rc32k_ck>,
+			 <&clkout1_src2_post_div_ck>, <&dpll_extdev_m2_ck>;
+		ti,bit-shift = <16>;
+		reg = <0x4100>;
+	};
+
+	clkout1_ck: clkout1-ck {
+		#clock-cells = <0>;
+		compatible = "ti,gate-clock";
+		clocks = <&clkout1_mux_ck>;
+		ti,bit-shift = <23>;
+		reg = <0x4100>;
+	};
 };
 
 &prcm {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am571x-idk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am571x-idk.dts
@@ -167,11 +167,7 @@
 
 &pcie1_rc {
 	status = "okay";
-	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
-};
-
-&pcie1_ep {
-	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+	gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
 };
 
 &mmc1 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am572x-idk-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am572x-idk-common.dtsi
@@ -147,10 +147,6 @@
 	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
 };
 
-&pcie1_ep {
-	gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
-};
-
 &mailbox5 {
 	status = "okay";
 	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
@@ -29,6 +29,27 @@
 		reg = <0x0 0x80000000 0x0 0x80000000>;
 	};
 
+	main_12v0: fixedregulator-main_12v0 {
+		/* main supply */
+		compatible = "regulator-fixed";
+		regulator-name = "main_12v0";
+		regulator-min-microvolt = <12000000>;
+		regulator-max-microvolt = <12000000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	evm_5v0: fixedregulator-evm_5v0 {
+		/* Output of TPS54531D */
+		compatible = "regulator-fixed";
+		regulator-name = "evm_5v0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&main_12v0>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
 	vdd_3v3: fixedregulator-vdd_3v3 {
 		compatible = "regulator-fixed";
 		regulator-name = "vdd_3v3";
@@ -547,10 +568,6 @@
 	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
 };
 
-&pcie1_ep {
-	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
-};
-
 &mcasp3 {
 	#sound-dai-cells = <0>;
 	assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
@@ -527,7 +527,7 @@
 
 		interrupt-parent = <&gpio1>;
 		interrupts = <31 0>;
-		pendown-gpio = <&gpio1 31 0>;
+		pendown-gpio = <&gpio1 31 GPIO_ACTIVE_LOW>;
 
 
 		ti,x-min = /bits/ 16 <0x0>;
@@ -611,12 +611,11 @@
 	>;
 };
 
-&gpio3 {
-	status = "okay";
+&gpio3_target {
 	ti,no-reset-on-init;
 };
 
-&gpio2 {
+&gpio2_target {
 	status = "okay";
 	ti,no-reset-on-init;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/amgis-fcl-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/amgis-fcl-common.dtsi
@@ -0,0 +1,784 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright (C) 2015 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx7d.dtsi"
+
+/ {
+	compatible = "fsl,imx7d-sdb", "fsl,imx7d";
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	m4_tcm: tcml@007f8000 {
+		compatible = "fsl, m4_tcml";
+		reg = <0x007f8000 0x8000>;
+	};
+
+	memory {
+		reg = <0x80200000 0x3fd00000>;
+		linux,usable-memory = <0x80200000 0x3fd00000>;
+	};
+
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		m4_0: m4_app@80000000 {
+			reg = <0x80000000 0x00100000>;
+		};
+
+		rpmsg_mem: rpmsg_mem_reg@bfff0000 {
+			no-map;
+			reg = <0xbfff0000 0x00010000>;
+		};
+
+		a7_1: a7_1_app@90000000 {
+			no-map;
+			reg = <0x90000000 0x10000000>;
+		};
+
+		a7_1_2: a7_1_2_app@A0000000 {
+			reg = <0xA0000000 0x10000000>;
+		};
+	};
+
+	shared-ddr {
+		compatible = "generic-uio";
+		linux,uio-name = "ps-pl-ddr";
+		reg = <0x90000000 0x10000000>;
+	};
+
+	// enable for STM8 encoder on new board
+	stm8_en {
+		compatible = "gpio-leds";
+		led0 {
+			gpios = <&gpio7 6 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+			linux,default-trigger = "default-on";
+		};
+	};
+
+	reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_otg1_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		status = "okay";
+	};
+
+	reg_vref_1v8: regulator-vref-1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "vref-1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+	};
+
+	reg_vref_3v3: regulator-vref-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "vref-3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	wifi_en: regulator-wifi_en {
+		compatible = "regulator-fixed";
+		regulator-name = "wifi0en";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_wifi_en>;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+	};
+
+	vwlan_fixed: wifi-enable {
+		gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+	};
+
+	panel {
+		compatible = "dlc,dlc0430dcp10rf-2";
+		backlight = <&backlight>;
+		//power-supply = <&reg_lcd_3v3>;
+
+		port {
+			panel_in: endpoint {
+				remote-endpoint = <&display_out>;
+			};
+		};
+	};
+
+	sdhci1_pwrseq: sdhci1_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+		post-power-on-delay-ms = <15>;
+		power-off-delay-us = <70>;
+
+	};
+
+	backlight: backlight {
+		compatible = "pwm-backlight";
+		brightness-levels = <0 8 9 10 11 12 13 14 15 16 18 20 22 24 26 28 30 32 36 40 44 48 52 56 60 64 72 80 88 96 104 112 120 128 143 159 175 191 207 223 239 255 255 >;
+		default-brightness-level = <40>;
+		status = "okay";
+	};
+
+	pxp_v4l2_out {
+		compatible = "fsl,imx7d-pxp-v4l2", "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2";
+		status = "okay";
+	};
+
+    soc {
+		caam_sm: caam-sm@100000 {
+			compatible = "fsl,imx7d-caam-sm", "fsl,imx6q-caam-sm";
+			reg = <0x100000 0x8000>;
+		};
+
+		ocrams_ddr: sram@900000 {
+			compatible = "fsl,ddr-lpm-sram";
+			reg = <0x900000 0x1000>;
+			clocks = <&clks IMX7D_OCRAM_CLK>;
+		};
+
+		ocram: sram@901000 {
+			compatible = "mmio-sram";
+			reg = <0x901000 0xf000>;
+			clocks = <&clks IMX7D_OCRAM_CLK>;
+		};
+
+		ocram_optee {
+			compatible = "fsl,optee-lpm-sram";
+			reg = <0x180000 0x8000>;
+			overw_reg = <&ocrams_ddr 0x904000 0x1000>,
+					<&ocram 0x905000 0x1b000>,
+					<&ocrams 0x900000 0x4000>;
+			overw_clock = <&ocrams &clks IMX7D_OCRAM_CLK>;
+		};
+
+		ocrams_mf: sram-mf@00900000 {
+			compatible = "fsl,mega-fast-sram";
+			reg = <0x00900000 0x20000>;
+			clocks = <&clks IMX7D_OCRAM_CLK>;
+		};
+    };
+
+	sound {
+		compatible = "simple-audio-card";
+
+		simple-audio-card,name = "tas2110";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&cpu_dai>;
+		simple-audio-card,frame-master = <&cpu_dai>;
+		simple-audio-card,widgets = "Speaker", "External Speaker";
+		simple-audio-card,routing = "External Speaker", "OUT";
+
+		cpu_dai: simple-audio-card,cpu {
+			sound-dai = <&sai1>;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&tas2110>;
+		};
+	};
+
+	clko1: clock-clko1 {
+		compatible = "gpio-gate-clock";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_9281_clk>;
+		clocks = <&clks IMX7D_CLKO1_ROOT_DIV>;
+		#clock-cells = <0>;
+		enable-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_keys>;
+
+		wakeup {
+			label = "spi-miso-wake-up";
+			gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
+			linux,code = <KEY_WAKEUP>;
+			wakeup-source;
+		};
+	};
+};
+
+&adc1 {
+	vref-supply = <&reg_vref_1v8>;
+	status = "disabled";
+};
+
+&adc2 {
+	vref-supply = <&reg_vref_1v8>;
+	status = "disabled";
+};
+
+&cpu0 {
+	/delete-property/cpu-idle-states;
+};
+
+&cpu1 {
+	/delete-property/cpu-idle-states;
+};
+
+/delete-node/&cpu_sleep_wait;
+/delete-node/&csi;
+/delete-node/&video_mux;
+
+&aips2 {
+	csi1: csi1@30710000 {
+		compatible = "fsl,imx7d-csi", "fsl,imx6s-csi";
+		csi-mux-mipi = <&gpr 0x14 4>;
+		fsl,mipi-mode;
+		reg = <0x30710000 0x10000>;
+		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clks IMX7D_CLK_DUMMY>,
+			<&clks IMX7D_CSI_MCLK_ROOT_CLK>,
+			<&clks IMX7D_CLK_DUMMY>;
+		clock-names = "disp-axi", "csi_mclk", "disp_dcic";
+		status = "okay";
+
+		port {
+			csi_ep: endpoint {
+				remote-endpoint = <&csi_mipi_ep>;
+			};
+		};
+	};
+
+	mipi_csi: mipi-csi@30750000 {
+		compatible = "fsl,imx7d-mipi-csi";
+		reg = <0x30750000 0x10000>;
+		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clks IMX7D_MIPI_CSI_ROOT_CLK>,
+				<&clks IMX7D_MIPI_DPHY_ROOT_CLK>;
+		clock-names = "mipi_clk", "phy_clk";
+		clock-frequency = <240000000>;
+		mipi-phy-supply = <&reg_1p0d>;
+		csis-phy-reset = <&src 0x28 2>;
+		bus-width = <4>;
+		status = "okay";
+		/delete-node/ port@0;
+		/delete-node/ port@1;
+
+		port {
+			mipi_sensor_ep: endpoint@1 {
+				remote-endpoint = <&ov9281_mipi_ep>;
+				data-lanes = <2>;
+				csis-hs-settle = <13>;
+				csis-clk-settle = <2>;
+				csis-wclk;
+			};
+
+			csi_mipi_ep: endpoint@2 {
+				remote-endpoint = <&csi_ep>;
+			};
+		};
+	};
+
+	system_counter_rd: system-counter-rd@306a0000 {
+		compatible = "fsl,imx7d-system-counter-rd";
+		reg = <0x306a0000 0x10000>;
+		status = "disabled";
+	};
+
+	system_counter_cmp: system-counter-cmp@306b0000 {
+		compatible = "fsl,imx7d-system-counter-cmp";
+		reg = <0x306b0000 0x10000>;
+		status = "disabled";
+	};
+
+	system_counter_ctrl: system-counter-ctrl@306c0000 {
+		compatible = "fsl,imx7d-system-counter-ctrl";
+		reg = <0x306c0000 0x10000>;
+		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
+			<GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+		status = "disabled";
+	};
+};
+
+&aips3 {
+	mu: mu@30aa0000 {
+		compatible = "fsl,imx7d-mu", "fsl,imx6sx-mu";
+		reg = <0x30aa0000 0x10000>;
+		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clks IMX7D_MU_ROOT_CLK>;
+		clock-names = "mu";
+        #mbox-cells = <2>;
+		status = "okay";
+	};
+
+	mu_lp: mu_lp@30aa0000 {
+		compatible = "fsl,imx7d-mu-lp", "fsl,imx6sx-mu-lp";
+		reg = <0x30aa0000 0x10000>;
+		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clks IMX7D_MU_ROOT_CLK>;
+		clock-names = "mu";
+		status = "okay";
+	};
+
+	rpmsg: rpmsg{
+		compatible = "fsl,imx7d-rpmsg";
+		vdev-nums = <1>;
+		reg = <0xbfff0000 0x00010000>;
+		/* up to now, the following channels are used in imx rpmsg
+		 * - tx1/rx1: messages channel.
+		 * - general interrupt1: remote proc finish re-init rpmsg stack
+		 *   when A core is partition reset.
+		 */
+		mbox-names = "tx", "rx", "rxdb";
+		mboxes = <&mu 0 1
+			  &mu 1 1
+			  &mu 3 1>;
+		status = "okay";
+	};
+
+	sema4: sema4@30ac0000 {
+		compatible = "fsl,imx7d-sema4";
+		reg = <0x30ac0000 0x10000>;
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clks IMX7D_SEMA4_HS_ROOT_CLK>;
+		clock-names = "sema4";
+		status = "okay";
+	};
+};
+
+&clks {
+	assigned-clocks = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+	assigned-clock-rates = <884736000>;
+};
+
+&gpc {
+	mipi-phy-supply = <&reg_1p0d>;
+	pcie-phy-supply = <&reg_1p0d>;
+	fsl,mf-mix-wakeup-irq = <0x54010000 0xc00 0x0 0x1040640>;
+};
+
+// &epxp {
+// 	status = "okay";
+// };
+
+&intc {
+	exclude-int = <7 17 54>;
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	atmel_mxt_ts@4a {
+		compatible = "atmel,maxtouch";
+		reg = <0x4a>;
+		pinctrl-names ="default";
+		pinctrl-0 = <&pinctrl_atmel_mxt_ts>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+		reset-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ov9281_mipi: ov9281_mipi@60 {
+		status = "okay";
+		compatible = "ovti,ov9281_mipi";
+		reg = <0x60>;
+		clocks = <&clko1>;
+		clock-names = "csi_mclk";
+		csi_id = <0>;
+		pwn-gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
+		mclk = <24000000>;
+		mclk_source = <0>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ov9281>;
+		port {
+			ov9281_mipi_ep: endpoint {
+				remote-endpoint = <&mipi_sensor_ep>;
+			};
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	tas2110: tas2110@4c {
+		compatible = "ti,tas2110";
+		reg = <0x4c>;
+		#sound-dai-cells = <0>;
+		ti,imon-slot-no = <2>;
+	};
+};
+
+&i2c4 {
+	clock-frequency = <100000> ;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	status = "okay";
+
+	pn715: pn547@28 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_nfcgpio>;
+		compatible = "nxp,pn547";
+
+		reg = <0x28>;
+		clock-frequency = <100000>;
+
+		interrupt-gpios = <&gpio1 4 0>;
+		enable-gpios = <&gpio5 10 0>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	imx7d-sdb {
+		pinctrl_ov9281: ov9281grp {
+			fsl,pins = <
+				MX7D_PAD_ENET1_RGMII_TD3__GPIO7_IO9 	0x59
+			>;
+		};
+
+		pinctrl_nfcgpio: nfcgrp {
+			fsl,pins = <
+				MX7D_PAD_SD2_WP__GPIO5_IO10		0x59
+				MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4	0x59
+			>;
+		};
+
+		pinctrl_atmel_mxt_ts: atmelgrp-1 {
+            fsl,pins = <
+                MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x59
+            >;
+		};
+
+		pinctrl_i2c1: i2c1grp {
+			fsl,pins = <
+				MX7D_PAD_I2C1_SDA__I2C1_SDA		0x4000007f
+				MX7D_PAD_I2C1_SCL__I2C1_SCL		0x4000007f
+			>;
+		};
+
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				MX7D_PAD_I2C2_SDA__I2C2_SDA		0x4000007f
+				MX7D_PAD_I2C2_SCL__I2C2_SCL		0x4000007f
+			>;
+		};
+
+		pinctrl_i2c3: i2c3grp {
+			fsl,pins = <
+				MX7D_PAD_I2C3_SDA__I2C3_SDA		0x4000007f
+				MX7D_PAD_I2C3_SCL__I2C3_SCL		0x4000007f
+			>;
+		};
+
+		pinctrl_i2c4: i2c4grp {
+			fsl,pins = <
+				MX7D_PAD_I2C4_SDA__I2C4_SDA		0x4000007f
+				MX7D_PAD_I2C4_SCL__I2C4_SCL		0x4000007f
+			>;
+		};
+
+		pinctrl_sai1: sai1grp {
+			fsl,pins = <
+				MX7D_PAD_SAI1_TX_SYNC__SAI1_TX_SYNC	0x1f
+				MX7D_PAD_SAI1_TX_BCLK__SAI1_TX_BCLK  	0x1f
+				MX7D_PAD_SAI1_TX_DATA__SAI1_TX_DATA0	0x30
+			>;
+		};
+
+		pinctrl_sai2: sai2grp {
+			fsl,pins = <
+				MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK     0x1f
+				MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC     0x1f
+				MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0    0x30
+				MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0    0x1f
+			>;
+		};
+
+		pinctrl_uart1: uart1grp {
+			fsl,pins = <
+				MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX	0x79
+				MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX	0x79
+			>;
+		};
+
+		pinctrl_uart3: uart3grp {
+            fsl,pins = <
+                MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX    0x79
+                MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX    0x79
+                MX7D_PAD_UART3_CTS_B__UART3_DCE_CTS     0x79
+                MX7D_PAD_UART3_RTS_B__UART3_DCE_RTS     0x79
+            >;
+		};
+
+		pinctrl_usdhc1: usdhc1grp {
+			fsl,pins = <
+				MX7D_PAD_SD1_CMD__SD1_CMD		0x59
+				MX7D_PAD_SD1_CLK__SD1_CLK		0x19
+				MX7D_PAD_SD1_DATA0__SD1_DATA0		0x59
+				MX7D_PAD_SD1_DATA1__SD1_DATA1		0x59
+				MX7D_PAD_SD1_DATA2__SD1_DATA2		0x59
+				MX7D_PAD_SD1_DATA3__SD1_DATA3		0x59
+
+			>;
+		};
+
+		pinctrl_usdhc1_100mhz: usdhc1grp_100mhz {
+			fsl,pins = <
+				MX7D_PAD_SD1_CMD__SD1_CMD		0x5a
+				MX7D_PAD_SD1_CLK__SD1_CLK		0x1a
+				MX7D_PAD_SD1_DATA0__SD1_DATA0		0x5a
+				MX7D_PAD_SD1_DATA1__SD1_DATA1		0x5a
+				MX7D_PAD_SD1_DATA2__SD1_DATA2		0x5a
+				MX7D_PAD_SD1_DATA3__SD1_DATA3		0x5a
+			>;
+		};
+
+		pinctrl_usdhc1_200mhz: usdhc1grp_200mhz {
+			fsl,pins = <
+				MX7D_PAD_SD1_CMD__SD1_CMD		0x5b
+				MX7D_PAD_SD1_CLK__SD1_CLK		0x1b
+				MX7D_PAD_SD1_DATA0__SD1_DATA0		0x5b
+				MX7D_PAD_SD1_DATA1__SD1_DATA1		0x5b
+				MX7D_PAD_SD1_DATA2__SD1_DATA2		0x5b
+				MX7D_PAD_SD1_DATA3__SD1_DATA3		0x5b
+			>;
+		};
+
+        pinctrl_usdhc3: usdhc3grp {
+			fsl,pins = <
+				MX7D_PAD_SD3_CMD__SD3_CMD		0x59
+				MX7D_PAD_SD3_CLK__SD3_CLK		0x19
+				MX7D_PAD_SD3_DATA0__SD3_DATA0		0x59
+				MX7D_PAD_SD3_DATA1__SD3_DATA1		0x59
+				MX7D_PAD_SD3_DATA2__SD3_DATA2		0x59
+				MX7D_PAD_SD3_DATA3__SD3_DATA3		0x59
+				MX7D_PAD_SD3_DATA4__SD3_DATA4		0x59
+				MX7D_PAD_SD3_DATA5__SD3_DATA5		0x59
+				MX7D_PAD_SD3_DATA6__SD3_DATA6		0x59
+				MX7D_PAD_SD3_DATA7__SD3_DATA7		0x59
+				MX7D_PAD_SD3_STROBE__SD3_STROBE		0x19
+			>;
+		};
+
+		pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+			fsl,pins = <
+				MX7D_PAD_SD3_CMD__SD3_CMD		0x5a
+				MX7D_PAD_SD3_CLK__SD3_CLK		0x1a
+				MX7D_PAD_SD3_DATA0__SD3_DATA0		0x5a
+				MX7D_PAD_SD3_DATA1__SD3_DATA1		0x5a
+				MX7D_PAD_SD3_DATA2__SD3_DATA2		0x5a
+				MX7D_PAD_SD3_DATA3__SD3_DATA3		0x5a
+				MX7D_PAD_SD3_DATA4__SD3_DATA4		0x5a
+				MX7D_PAD_SD3_DATA5__SD3_DATA5		0x5a
+				MX7D_PAD_SD3_DATA6__SD3_DATA6		0x5a
+				MX7D_PAD_SD3_DATA7__SD3_DATA7		0x5a
+				MX7D_PAD_SD3_STROBE__SD3_STROBE		0x1a
+			>;
+		};
+
+		pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+			fsl,pins = <
+				MX7D_PAD_SD3_CMD__SD3_CMD		0x5b
+				MX7D_PAD_SD3_CLK__SD3_CLK		0x1b
+				MX7D_PAD_SD3_DATA0__SD3_DATA0		0x5b
+				MX7D_PAD_SD3_DATA1__SD3_DATA1		0x5b
+				MX7D_PAD_SD3_DATA2__SD3_DATA2		0x5b
+				MX7D_PAD_SD3_DATA3__SD3_DATA3		0x5b
+				MX7D_PAD_SD3_DATA4__SD3_DATA4		0x5b
+				MX7D_PAD_SD3_DATA5__SD3_DATA5		0x5b
+				MX7D_PAD_SD3_DATA6__SD3_DATA6		0x5b
+				MX7D_PAD_SD3_DATA7__SD3_DATA7		0x5b
+				MX7D_PAD_SD3_STROBE__SD3_STROBE		0x1b
+			>;
+		};
+
+		pinctrl_wifi: wifigrp {
+			fsl,pins = <
+				MX7D_PAD_GPIO1_IO13__GPIO1_IO13		0x59
+				MX7D_PAD_GPIO1_IO14__GPIO1_IO14		0x59
+			>;
+		};
+
+		pinctrl_wifi_en: wifigrp_en {
+			fsl,pins = <
+				MX7D_PAD_GPIO1_IO15__GPIO1_IO15		0x59
+			>;
+		};
+
+		pinctrl_gpio_keys: gpio_keysgrp {
+			fsl,pins = <
+				MX7D_PAD_ECSPI2_MISO__GPIO4_IO22	0x59
+			>;
+		};
+	};
+};
+
+&iomuxc_lpsr {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usb_vbus_en &pinctrl_tp_resetn>;
+
+	imx7d-sdb {
+		pinctrl_9281_clk: 9281_clk_grp {
+            fsl,pins = <
+                MX7D_PAD_LPSR_GPIO1_IO02__CCM_CLKO1     0x03
+            >;
+		};
+
+		pinctrl_usb_vbus_en: usb_vbus_en-2 {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5	  0x14
+			>;
+		};
+
+		pinctrl_tp_resetn: tp_resetn {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7	  0x14
+			>;
+		};
+	};
+};
+
+&lcdif {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_lcdif>;
+	//display = <&display0>;
+	status = "okay";
+
+	port {
+		display_out: endpoint {
+			remote-endpoint = <&panel_in>;
+		};
+	};
+};
+
+&pgc_pcie_phy {
+	power-supply = <&reg_1p0d>;
+};
+
+&reg_1p0d {
+	status = "okay";
+};
+
+&sai1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai1>;
+	assigned-clocks = <&clks IMX7D_SAI1_ROOT_SRC>,
+			  <&clks IMX7D_SAI1_ROOT_CLK>;
+	assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+	assigned-clock-rates = <0>, <36864000>;
+	status = "okay";
+	fsl,sai-asynchronous;
+};
+
+/* TBD for bluetooth audio
+&sai2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai2 &pinctrl_sai2_mclk>;
+	assigned-clocks = <&clks IMX7D_SAI2_ROOT_SRC>,
+			  <&clks IMX7D_SAI2_ROOT_CLK>;
+	assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+	assigned-clock-rates = <0>, <36864000>;
+	status = "okay";
+};
+*/
+
+&sdma {
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
+	assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+	status = "okay";
+};
+
+&uart2 {
+	status = "disabled";
+};
+
+/*Bluetooth*/
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	assigned-clocks = <&clks IMX7D_UART3_ROOT_SRC>;
+	assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+	status = "okay";
+};
+
+&usbotg1 {
+	vbus-supply = <&reg_usb_otg1_vbus>;
+	srp-disable;
+	hnp-disable;
+	adp-disable;
+	status = "okay";
+};
+
+&usdhc1 {  // wifi
+	/*Disabling these pinctrl forces the SDIO interface to run at a slower speed*/
+	/*The faster speeds were struggling with a timing issue that still needs to be resolved*/
+	//pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_wifi>;
+	//pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_wifi>;
+	//pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_wifi>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+	non-removable;
+	fsl,tuning-step = <2>;
+	pm-ignore-notify;
+	vmmc-supply = <&reg_vref_3v3>;
+	vwlan-supply = <&vwlan_fixed>;
+	regulator = <&wifi_en>;
+	mmc-pwrseq = <&sdhci1_pwrseq>;
+	keep-power-in-suspend;
+	bus-width = <4>;
+	cap-power-off-card;
+	status = "okay";
+	mwifiex: wifi@2 {
+		compatible = "marvell,sd8997";
+		reg = <2>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
+		status = "okay";
+	};
+
+	btmrvl: bluetooth@3 {
+		compatible = "marvell,sd8997-bt";
+		reg = <3>;
+	};
+};
+
+&usdhc3 {  // emmc
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
+	assigned-clock-rates = <400000000>;
+	bus-width = <8>;
+	auto-cmd23-broken;
+	non-removable;
+	status = "okay";
+};
+
+&wdog3{
+	status = "disabled";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/amgis-fcl-v3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/amgis-fcl-v3.dts
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright (C) 2015 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "amgis-fcl-common.dtsi"
+
+/ {
+	model = "AMGIS-V3";
+};
+
+&backlight {
+	pwms = <&pwm4 0 7000 0>;
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	imx7d-sdb {
+		pinctrl_lcdif: lcdifgrp {
+			fsl,pins = <
+				MX7D_PAD_LCD_DATA00__LCD_DATA0		0x79
+				MX7D_PAD_LCD_DATA01__LCD_DATA1		0x79
+				MX7D_PAD_LCD_DATA02__LCD_DATA2		0x79
+				MX7D_PAD_LCD_DATA03__LCD_DATA3		0x79
+				MX7D_PAD_LCD_DATA04__LCD_DATA4		0x79
+				MX7D_PAD_LCD_DATA05__LCD_DATA5		0x79
+				MX7D_PAD_LCD_DATA06__LCD_DATA6		0x79
+				MX7D_PAD_LCD_DATA07__LCD_DATA7		0x79
+				MX7D_PAD_LCD_DATA08__LCD_DATA8		0x79
+				MX7D_PAD_LCD_DATA09__LCD_DATA9		0x79
+				MX7D_PAD_LCD_DATA10__LCD_DATA10		0x79
+				MX7D_PAD_LCD_DATA11__LCD_DATA11		0x79
+				MX7D_PAD_LCD_DATA12__LCD_DATA12		0x79
+				MX7D_PAD_LCD_DATA13__LCD_DATA13		0x79
+				MX7D_PAD_LCD_DATA14__LCD_DATA14		0x79
+				MX7D_PAD_LCD_DATA15__LCD_DATA15		0x79
+				MX7D_PAD_LCD_DATA16__LCD_DATA16		0x79
+				MX7D_PAD_LCD_DATA17__LCD_DATA17		0x79
+				MX7D_PAD_LCD_DATA18__LCD_DATA18		0x79
+				MX7D_PAD_LCD_DATA19__LCD_DATA19		0x79
+				MX7D_PAD_LCD_DATA20__LCD_DATA20		0x79
+				MX7D_PAD_LCD_DATA21__LCD_DATA21		0x79
+				MX7D_PAD_LCD_DATA22__LCD_DATA22		0x79
+				MX7D_PAD_LCD_DATA23__LCD_DATA23		0x79
+				MX7D_PAD_LCD_CLK__LCD_CLK		0x79
+				MX7D_PAD_LCD_ENABLE__LCD_ENABLE		0x79
+				MX7D_PAD_LCD_VSYNC__LCD_VSYNC		0x79
+				MX7D_PAD_LCD_HSYNC__LCD_HSYNC		0x79
+				MX7D_PAD_LCD_RESET__LCD_RESET		0x79
+			>;
+		};
+	};
+};
+
+&iomuxc_lpsr {
+	imx7d-sdb {
+		pinctrl_pwm4: pwm4grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO00__PWM4_OUT	  0x30
+			>;
+		};
+	};
+};
+
+&pwm4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm4>;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/amgis-fcl-v4.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/amgis-fcl-v4.dts
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright (C) 2015 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "amgis-fcl-common.dtsi"
+
+/ {
+	model = "AMGIS-V4";
+};
+
+&backlight {
+	pwms = <&pwm4 0 7000 0>;
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	imx7d-sdb {
+		pinctrl_lcdif: lcdifgrp {
+			fsl,pins = <
+				MX7D_PAD_LCD_DATA00__LCD_DATA0		0x7C
+				MX7D_PAD_LCD_DATA01__LCD_DATA1		0x7C
+				MX7D_PAD_LCD_DATA02__LCD_DATA2		0x7C
+				MX7D_PAD_LCD_DATA03__LCD_DATA3		0x7C
+				MX7D_PAD_LCD_DATA04__LCD_DATA4		0x7C
+				MX7D_PAD_LCD_DATA05__LCD_DATA5		0x7C
+				MX7D_PAD_LCD_DATA06__LCD_DATA6		0x7C
+				MX7D_PAD_LCD_DATA07__LCD_DATA7		0x7C
+				MX7D_PAD_LCD_DATA08__LCD_DATA8		0x7C
+				MX7D_PAD_LCD_DATA09__LCD_DATA9		0x7C
+				MX7D_PAD_LCD_DATA10__LCD_DATA10		0x7C
+				MX7D_PAD_LCD_DATA11__LCD_DATA11		0x7C
+				MX7D_PAD_LCD_DATA12__LCD_DATA12		0x7C
+				MX7D_PAD_LCD_DATA13__LCD_DATA13		0x7C
+				MX7D_PAD_LCD_DATA14__LCD_DATA14		0x7C
+				MX7D_PAD_LCD_DATA15__LCD_DATA15		0x7C
+				MX7D_PAD_LCD_DATA16__LCD_DATA16		0x7C
+				MX7D_PAD_LCD_DATA17__LCD_DATA17		0x7C
+				MX7D_PAD_LCD_DATA18__LCD_DATA18		0x7C
+				MX7D_PAD_LCD_DATA19__LCD_DATA19		0x7C
+				MX7D_PAD_LCD_DATA20__LCD_DATA20		0x7C
+				MX7D_PAD_LCD_DATA21__LCD_DATA21		0x7C
+				MX7D_PAD_LCD_DATA22__LCD_DATA22		0x7C
+				MX7D_PAD_LCD_DATA23__LCD_DATA23		0x7C
+				MX7D_PAD_LCD_CLK__LCD_CLK			0x7F
+				MX7D_PAD_LCD_ENABLE__LCD_ENABLE		0x7C
+				MX7D_PAD_LCD_VSYNC__LCD_VSYNC		0x7C
+				MX7D_PAD_LCD_HSYNC__LCD_HSYNC		0x7C
+				MX7D_PAD_LCD_RESET__LCD_RESET		0x7C
+			>;
+		};
+	};
+};
+
+&iomuxc_lpsr {
+	imx7d-sdb {
+		pinctrl_pwm4: pwm4grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO00__PWM4_OUT	  0x30
+			>;
+		};
+	};
+};
+
+&pwm4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm4>;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/amgis-fcl-v5.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/amgis-fcl-v5.dts
@@ -0,0 +1,84 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright (C) 2015 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "amgis-fcl-common.dtsi"
+
+/ {
+	model = "AMGIS-V5";
+};
+
+&backlight {
+	pwms = <&pwm1 0 7000 0>;
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	imx7d-sdb {
+		pinctrl_lcdif: lcdifgrp {
+			fsl,pins = <
+				MX7D_PAD_LCD_DATA00__LCD_DATA0		0x7C
+				MX7D_PAD_LCD_DATA01__LCD_DATA1		0x7C
+				MX7D_PAD_LCD_DATA02__LCD_DATA2		0x7C
+				MX7D_PAD_LCD_DATA03__LCD_DATA3		0x7C
+				MX7D_PAD_LCD_DATA04__LCD_DATA4		0x7C
+				MX7D_PAD_LCD_DATA05__LCD_DATA5		0x7C
+				MX7D_PAD_LCD_DATA06__LCD_DATA6		0x7C
+				MX7D_PAD_LCD_DATA07__LCD_DATA7		0x7C
+				MX7D_PAD_LCD_DATA08__LCD_DATA8		0x7C
+				MX7D_PAD_LCD_DATA09__LCD_DATA9		0x7C
+				MX7D_PAD_LCD_DATA10__LCD_DATA10		0x7C
+				MX7D_PAD_LCD_DATA11__LCD_DATA11		0x7C
+				MX7D_PAD_LCD_DATA12__LCD_DATA12		0x7C
+				MX7D_PAD_LCD_DATA13__LCD_DATA13		0x7C
+				MX7D_PAD_LCD_DATA14__LCD_DATA14		0x7C
+				MX7D_PAD_LCD_DATA15__LCD_DATA15		0x7C
+				MX7D_PAD_LCD_DATA16__LCD_DATA16		0x7C
+				MX7D_PAD_LCD_DATA17__LCD_DATA17		0x7C
+				MX7D_PAD_LCD_DATA18__LCD_DATA18		0x7C
+				MX7D_PAD_LCD_DATA19__LCD_DATA19		0x7C
+				MX7D_PAD_LCD_DATA20__LCD_DATA20		0x7C
+				MX7D_PAD_LCD_DATA21__LCD_DATA21		0x7C
+				MX7D_PAD_LCD_DATA22__LCD_DATA22		0x7C
+				MX7D_PAD_LCD_DATA23__LCD_DATA23		0x7C
+				MX7D_PAD_LCD_CLK__LCD_CLK			0x7F
+				MX7D_PAD_LCD_ENABLE__LCD_ENABLE		0x7C
+				MX7D_PAD_LCD_VSYNC__LCD_VSYNC		0x7C
+				MX7D_PAD_LCD_HSYNC__LCD_HSYNC		0x7C
+				MX7D_PAD_LCD_RESET__LCD_RESET		0x7C
+			>;
+		};
+	};
+};
+
+&iomuxc_lpsr {
+	imx7d-sdb {
+		pinctrl_wdog1: wdog1grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B		0x74
+			>;
+		};
+
+		pinctrl_pwm1: pwm1grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT		0x30
+			>;
+		};
+	};
+};
+
+&pwm1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm1>;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog1>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/amgis-fcl-v6.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/amgis-fcl-v6.dts
@@ -0,0 +1,84 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright (C) 2015 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "amgis-fcl-common.dtsi"
+
+/ {
+	model = "AMGIS-V6";
+};
+
+&backlight {
+	pwms = <&pwm1 0 7000 0>;
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	imx7d-sdb {
+		pinctrl_lcdif: lcdifgrp {
+			fsl,pins = <
+				MX7D_PAD_LCD_DATA00__LCD_DATA0		0x7C
+				MX7D_PAD_LCD_DATA01__LCD_DATA1		0x7C
+				MX7D_PAD_LCD_DATA02__LCD_DATA2		0x7C
+				MX7D_PAD_LCD_DATA03__LCD_DATA3		0x7C
+				MX7D_PAD_LCD_DATA04__LCD_DATA4		0x7C
+				MX7D_PAD_LCD_DATA05__LCD_DATA5		0x7C
+				MX7D_PAD_LCD_DATA06__LCD_DATA6		0x7C
+				MX7D_PAD_LCD_DATA07__LCD_DATA7		0x7C
+				MX7D_PAD_LCD_DATA08__LCD_DATA8		0x7C
+				MX7D_PAD_LCD_DATA09__LCD_DATA9		0x7C
+				MX7D_PAD_LCD_DATA10__LCD_DATA10		0x7C
+				MX7D_PAD_LCD_DATA11__LCD_DATA11		0x7C
+				MX7D_PAD_LCD_DATA12__LCD_DATA12		0x7C
+				MX7D_PAD_LCD_DATA13__LCD_DATA13		0x7C
+				MX7D_PAD_LCD_DATA14__LCD_DATA14		0x7C
+				MX7D_PAD_LCD_DATA15__LCD_DATA15		0x7C
+				MX7D_PAD_LCD_DATA16__LCD_DATA16		0x7C
+				MX7D_PAD_LCD_DATA17__LCD_DATA17		0x7C
+				MX7D_PAD_LCD_DATA18__LCD_DATA18		0x7C
+				MX7D_PAD_LCD_DATA19__LCD_DATA19		0x7C
+				MX7D_PAD_LCD_DATA20__LCD_DATA20		0x7C
+				MX7D_PAD_LCD_DATA21__LCD_DATA21		0x7C
+				MX7D_PAD_LCD_DATA22__LCD_DATA22		0x7C
+				MX7D_PAD_LCD_DATA23__LCD_DATA23		0x7C
+				MX7D_PAD_LCD_CLK__LCD_CLK			0x7F
+				MX7D_PAD_LCD_ENABLE__LCD_ENABLE		0x7C
+				MX7D_PAD_LCD_VSYNC__LCD_VSYNC		0x7C
+				MX7D_PAD_LCD_HSYNC__LCD_HSYNC		0x7C
+				MX7D_PAD_LCD_RESET__LCD_RESET		0x7C
+			>;
+		};
+	};
+};
+
+&iomuxc_lpsr {
+	imx7d-sdb {
+		pinctrl_wdog1: wdog1grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B		0x74
+			>;
+		};
+
+		pinctrl_pwm1: pwm1grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT		0x30
+			>;
+		};
+	};
+};
+
+&pwm1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm1>;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog1>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-370.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-370.dtsi
@@ -74,7 +74,7 @@
 
 			pcie2: pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x80000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-375.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-375.dtsi
@@ -584,7 +584,7 @@
 
 			pcie1: pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-380.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-380.dtsi
@@ -79,7 +79,7 @@
 			/* x1 port */
 			pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -98,7 +98,7 @@
 			/* x1 port */
 			pcie@3,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+				assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
 				reg = <0x1800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -22,6 +22,12 @@
 		stdout-path = &uart0;
 	};
 
+	aliases {
+		ethernet0 = &eth0;
+		ethernet1 = &eth1;
+		ethernet2 = &eth2;
+	};
+
 	memory {
 		device_type = "memory";
 		reg = <0x00000000 0x40000000>; /* 1024 MB */
@@ -236,6 +242,7 @@
 		status = "okay";
 		compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22";
 		reg = <1>;
+		marvell,reg-init = <3 18 0 0x4985>;
 
 		/* irq is connected to &pcawan pin 7 */
 	};
@@ -290,7 +297,17 @@
 				};
 			};
 
-			/* port 6 is connected to eth0 */
+			ports@6 {
+				reg = <6>;
+				label = "cpu";
+				ethernet = <&eth0>;
+				phy-mode = "rgmii-id";
+
+				fixed-link {
+					speed = <1000>;
+					full-duplex;
+				};
+			};
 		};
 	};
 };
@@ -306,7 +323,7 @@
 		marvell,function = "spi0";
 	};
 
-	spi0cs1_pins: spi0cs1-pins {
+	spi0cs2_pins: spi0cs2-pins {
 		marvell,pins = "mpp26";
 		marvell,function = "spi0";
 	};
@@ -341,7 +358,7 @@
 		};
 	};
 
-	/* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */
+	/* MISO, MOSI, SCLK and CS2 are routed to pin header CN11 */
 };
 
 &uart0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-385.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-385.dtsi
@@ -84,7 +84,7 @@
 			/* x1 port */
 			pcie2: pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -103,7 +103,7 @@
 			/* x1 port */
 			pcie3: pcie@3,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+				assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
 				reg = <0x1800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -125,7 +125,7 @@
 			 */
 			pcie4: pcie@4,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
+				assigned-addresses = <0x82002000 0 0x48000 0 0x2000>;
 				reg = <0x2000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-388-helios4.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-388-helios4.dts
@@ -70,6 +70,9 @@
 
 	system-leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_system_led_pins>;
+
 		status-led {
 			label = "helios4:green:status";
 			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
@@ -86,6 +89,9 @@
 
 	io-leds {
 		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_io_led_pins>;
+
 		sata1-led {
 			label = "helios4:green:ata1";
 			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
@@ -121,11 +127,15 @@
 	fan1: j10-pwm {
 		compatible = "pwm-fan";
 		pwms = <&gpio1 9 40000>;	/* Target freq:25 kHz */
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_fan1_pins>;
 	};
 
 	fan2: j17-pwm {
 		compatible = "pwm-fan";
 		pwms = <&gpio1 23 40000>;	/* Target freq:25 kHz */
+		pinctrl-names = "default";
+		pinctrl-0 = <&helios_fan2_pins>;
 	};
 
 	usb2_phy: usb2-phy {
@@ -291,16 +301,22 @@
 						       "mpp39", "mpp40";
 					marvell,function = "sd0";
 				};
-				helios_led_pins: helios-led-pins {
-					marvell,pins = "mpp24", "mpp25",
-						       "mpp49", "mpp50",
+				helios_system_led_pins: helios-system-led-pins {
+					marvell,pins = "mpp24", "mpp25";
+					marvell,function = "gpio";
+				};
+				helios_io_led_pins: helios-io-led-pins {
+					marvell,pins = "mpp49", "mpp50",
 						       "mpp52", "mpp53",
 						       "mpp54";
 					marvell,function = "gpio";
 				};
-				helios_fan_pins: helios-fan-pins {
-					marvell,pins = "mpp41", "mpp43",
-						       "mpp48", "mpp55";
+				helios_fan1_pins: helios_fan1_pins {
+					marvell,pins = "mpp41", "mpp43";
+					marvell,function = "gpio";
+				};
+				helios_fan2_pins: helios_fan2_pins {
+					marvell,pins = "mpp48", "mpp55";
 					marvell,function = "gpio";
 				};
 				microsom_spi1_cs_pins: spi1-cs-pins {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-38x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-38x.dtsi
@@ -165,7 +165,7 @@
 			};
 
 			uart0: serial@12000 {
-				compatible = "marvell,armada-38x-uart";
+				compatible = "marvell,armada-38x-uart", "ns16550a";
 				reg = <0x12000 0x100>;
 				reg-shift = <2>;
 				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
@@ -175,7 +175,7 @@
 			};
 
 			uart1: serial@12100 {
-				compatible = "marvell,armada-38x-uart";
+				compatible = "marvell,armada-38x-uart", "ns16550a";
 				reg = <0x12100 0x100>;
 				reg-shift = <2>;
 				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
@@ -339,7 +339,8 @@
 
 			comphy: phy@18300 {
 				compatible = "marvell,armada-380-comphy";
-				reg = <0x18300 0x100>;
+				reg-names = "comphy", "conf";
+				reg = <0x18300 0x100>, <0x18460 4>;
 				#address-cells = <1>;
 				#size-cells = <0>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-39x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-39x.dtsi
@@ -457,7 +457,7 @@
 			/* x1 port */
 			pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x40000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -476,7 +476,7 @@
 			/* x1 port */
 			pcie@3,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+				assigned-addresses = <0x82001800 0 0x44000 0 0x2000>;
 				reg = <0x1800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -498,7 +498,7 @@
 			 */
 			pcie@4,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
+				assigned-addresses = <0x82002000 0 0x48000 0 0x2000>;
 				reg = <0x2000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -266,11 +266,6 @@
 	reg = <0x11000 0x100>;
 };
 
-&i2c1 {
-	compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
-	reg = <0x11100 0x100>;
-};
-
 &mpic {
 	reg = <0x20a00 0x2d0>, <0x21070 0x58>;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-xp-mv78230.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-xp-mv78230.dtsi
@@ -97,7 +97,7 @@
 
 			pcie2: pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -115,7 +115,7 @@
 
 			pcie3: pcie@3,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
+				assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
 				reg = <0x1800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -133,7 +133,7 @@
 
 			pcie4: pcie@4,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
+				assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
 				reg = <0x2000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -151,7 +151,7 @@
 
 			pcie5: pcie@5,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
+				assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
 				reg = <0x2800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -112,7 +112,7 @@
 
 			pcie2: pcie@2,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -130,7 +130,7 @@
 
 			pcie3: pcie@3,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
+				assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
 				reg = <0x1800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -148,7 +148,7 @@
 
 			pcie4: pcie@4,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
+				assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
 				reg = <0x2000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -166,7 +166,7 @@
 
 			pcie5: pcie@5,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
+				assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
 				reg = <0x2800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -184,7 +184,7 @@
 
 			pcie6: pcie@6,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x84000 0 0x2000>;
+				assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
 				reg = <0x3000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -202,7 +202,7 @@
 
 			pcie7: pcie@7,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x88000 0 0x2000>;
+				assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
 				reg = <0x3800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -220,7 +220,7 @@
 
 			pcie8: pcie@8,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>;
+				assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
 				reg = <0x4000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
@@ -238,7 +238,7 @@
 
 			pcie9: pcie@9,0 {
 				device_type = "pci";
-				assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
+				assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
 				reg = <0x4800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-ast2500-evb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-ast2500-evb.dts
@@ -5,7 +5,7 @@
 
 / {
 	model = "AST2500 EVB";
-	compatible = "aspeed,ast2500";
+	compatible = "aspeed,ast2500-evb", "aspeed,ast2500";
 
 	aliases {
 		serial4 = &uart5;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-ast2600-evb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-ast2600-evb.dts
@@ -7,7 +7,7 @@
 
 / {
 	model = "AST2600 EVB";
-	compatible = "aspeed,ast2600";
+	compatible = "aspeed,ast2600-evb-a1", "aspeed,ast2600";
 
 	aliases {
 		serial4 = &uart5;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
@@ -81,11 +81,6 @@
 	status = "okay";
 };
 
-&vuart {
-	// VUART Host Console
-	status = "okay";
-};
-
 &uart1 {
 	// Host Console
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
@@ -22,9 +22,9 @@
 		#size-cells = <1>;
 		ranges;
 
-		vga_memory: framebuffer@7f000000 {
+		vga_memory: framebuffer@9f000000 {
 			no-map;
-			reg = <0x7f000000 0x01000000>;
+			reg = <0x9f000000 0x01000000>; /* 16M */
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-g4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -371,6 +371,7 @@
 						compatible = "aspeed,ast2400-ibt-bmc";
 						reg = <0xc0 0x18>;
 						interrupts = <8>;
+						clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
 						status = "disabled";
 					};
 				};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-g5.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -464,6 +464,7 @@
 						compatible = "aspeed,ast2500-ibt-bmc";
 						reg = <0xc0 0x18>;
 						interrupts = <8>;
+						clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
 						status = "disabled";
 					};
 				};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi
@@ -117,11 +117,6 @@
 		groups = "FWSPID";
 	};
 
-	pinctrl_fwqspid_default: fwqspid_default {
-		function = "FWQSPID";
-		groups = "FWQSPID";
-	};
-
 	pinctrl_fwspiwp_default: fwspiwp_default {
 		function = "FWSPIWP";
 		groups = "FWSPIWP";
@@ -208,12 +203,12 @@
 	};
 
 	pinctrl_hvi3c3_default: hvi3c3_default {
-		function = "HVI3C3";
+		function = "I3C3";
 		groups = "HVI3C3";
 	};
 
 	pinctrl_hvi3c4_default: hvi3c4_default {
-		function = "HVI3C4";
+		function = "I3C4";
 		groups = "HVI3C4";
 	};
 
@@ -653,12 +648,12 @@
 	};
 
 	pinctrl_qspi1_default: qspi1_default {
-		function = "QSPI1";
+		function = "SPI1";
 		groups = "QSPI1";
 	};
 
 	pinctrl_qspi2_default: qspi2_default {
-		function = "QSPI2";
+		function = "SPI2";
 		groups = "QSPI2";
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91-sama5d27_som1.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91-sama5d27_som1.dtsi
@@ -44,8 +44,8 @@
 				pinctrl-0 = <&pinctrl_macb0_default>;
 				phy-mode = "rmii";
 
-				ethernet-phy@0 {
-					reg = <0x0>;
+				ethernet-phy@7 {
+					reg = <0x7>;
 					interrupt-parent = <&pioA>;
 					interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
 					pinctrl-names = "default";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
@@ -69,7 +69,6 @@
 			isc: isc@f0008000 {
 				pinctrl-names = "default";
 				pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
-				status = "okay";
 			};
 
 			qspi1: spi@f0024000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
@@ -40,7 +40,7 @@
 
 	ahb {
 		usb0: gadget@300000 {
-			atmel,vbus-gpio = <&pioA PIN_PA27 GPIO_ACTIVE_HIGH>;
+			atmel,vbus-gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_usba_vbus>;
 			status = "okay";
@@ -125,8 +125,6 @@
 			bus-width = <8>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_sdmmc0_default>;
-			non-removable;
-			mmc-ddr-1_8v;
 			status = "okay";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -242,6 +242,11 @@
 						atmel,pins =
 							<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PE9, conflicts with A9 */
 					};
+					pinctrl_usb_default: usb_default {
+						atmel,pins =
+							<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 				};
 			};
 		};
@@ -259,6 +264,8 @@
 					   &pioE 3 GPIO_ACTIVE_LOW
 					   &pioE 4 GPIO_ACTIVE_LOW
 					  >;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usb_default>;
 			status = "okay";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -133,6 +133,11 @@
 						atmel,pins =
 							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
 					};
+					pinctrl_usb_default: usb_default {
+						atmel,pins =
+							<AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+							 AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
 					pinctrl_key_gpio: key_gpio_0 {
 						atmel,pins =
 							<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
@@ -158,6 +163,8 @@
 					   &pioE 11 GPIO_ACTIVE_HIGH
 					   &pioE 14 GPIO_ACTIVE_HIGH
 					  >;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_usb_default>;
 			status = "okay";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91-tse850-3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91-tse850-3.dts
@@ -262,7 +262,7 @@
 &macb1 {
 	status = "okay";
 
-	phy-mode = "rgmii";
+	phy-mode = "rmii";
 
 	#address-cells = <1>;
 	#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9260.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9260.dtsi
@@ -187,7 +187,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -221,7 +221,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -239,7 +239,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -257,7 +257,7 @@
 				usart3 {
 					pinctrl_usart3: usart3-0 {
 						atmel,pins =
-							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -275,7 +275,7 @@
 				uart0 {
 					pinctrl_uart0: uart0-0 {
 						atmel,pins =
-							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_NONE
+							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP
 							 AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
 					};
 				};
@@ -283,7 +283,7 @@
 				uart1 {
 					pinctrl_uart1: uart1-0 {
 						atmel,pins =
-							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 				};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9261.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9261.dtsi
@@ -329,7 +329,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -347,7 +347,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -365,7 +365,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9261ek.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9261ek.dts
@@ -156,7 +156,7 @@
 					compatible = "ti,ads7843";
 					interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
 					spi-max-frequency = <3000000>;
-					pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;
+					pendown-gpio = <&pioC 2 GPIO_ACTIVE_LOW>;
 
 					ti,x-min = /bits/ 16 <150>;
 					ti,x-max = /bits/ 16 <3830>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9263.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9263.dtsi
@@ -183,7 +183,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -201,7 +201,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -219,7 +219,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
@@ -38,6 +38,13 @@
 
 				};
 
+				usb1 {
+					pinctrl_usb1_vbus_gpio: usb1_vbus_gpio {
+						atmel,pins =
+							<AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PC5 GPIO */
+					};
+				};
+
 				mmc0_slot1 {
 					pinctrl_board_mmc0_slot1: mmc0_slot1-board {
 						atmel,pins =
@@ -83,6 +90,8 @@
 			};
 
 			usb1: gadget@fffa4000 {
+				pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
+				pinctrl-names = "default";
 				atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
 				status = "okay";
 			};
@@ -217,6 +226,12 @@
 		wm8731: wm8731@1b {
 			compatible = "wm8731";
 			reg = <0x1b>;
+
+			/* PCK0 at 12MHz */
+			clocks = <&pmc PMC_TYPE_SYSTEM 8>;
+			clock-names = "mclk";
+			assigned-clocks = <&pmc PMC_TYPE_SYSTEM 8>;
+			assigned-clock-rates = <12000000>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9g45.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -556,7 +556,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -574,7 +574,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -592,7 +592,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -610,7 +610,7 @@
 				usart3 {
 					pinctrl_usart3: usart3-0 {
 						atmel,pins =
-							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE
+							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
 							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/at91sam9rl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -278,23 +278,26 @@
 				atmel,adc-use-res = "highres";
 
 				trigger0 {
-					trigger-name = "timer-counter-0";
+					trigger-name = "external-rising";
 					trigger-value = <0x1>;
+					trigger-external;
 				};
+
 				trigger1 {
-					trigger-name = "timer-counter-1";
-					trigger-value = <0x3>;
+					trigger-name = "external-falling";
+					trigger-value = <0x2>;
+					trigger-external;
 				};
 
 				trigger2 {
-					trigger-name = "timer-counter-2";
-					trigger-value = <0x5>;
+					trigger-name = "external-any";
+					trigger-value = <0x3>;
+					trigger-external;
 				};
 
 				trigger3 {
-					trigger-name = "external";
-					trigger-value = <0x13>;
-					trigger-external;
+					trigger-name = "continuous";
+					trigger-value = <0x6>;
 				};
 			};
 
@@ -682,7 +685,7 @@
 				usart0 {
 					pinctrl_usart0: usart0-0 {
 						atmel,pins =
-							<AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -721,7 +724,7 @@
 				usart1 {
 					pinctrl_usart1: usart1-0 {
 						atmel,pins =
-							<AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -744,7 +747,7 @@
 				usart2 {
 					pinctrl_usart2: usart2-0 {
 						atmel,pins =
-							<AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
@@ -767,7 +770,7 @@
 				usart3 {
 					pinctrl_usart3: usart3-0 {
 						atmel,pins =
-							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
+							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
 							<AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
 					};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -174,8 +174,8 @@
 		mdio: mdio@18002000 {
 			compatible = "brcm,iproc-mdio";
 			reg = <0x18002000 0x8>;
-			#size-cells = <1>;
-			#address-cells = <0>;
+			#size-cells = <0>;
+			#address-cells = <1>;
 			status = "disabled";
 
 			gphy0: ethernet-phy@0 {
@@ -460,7 +460,7 @@
 			status = "disabled";
 		};
 
-		nand: nand@18046000 {
+		nand_controller: nand-controller@18046000 {
 			compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
 			reg = <0x18046000 0x600>, <0xf8105408 0x600>,
 			      <0x18046f00 0x20>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm-hr2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm-hr2.dtsi
@@ -75,7 +75,7 @@
 		timer@20200 {
 			compatible = "arm,cortex-a9-global-timer";
 			reg = <0x20200 0x100>;
-			interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+			interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
 			clocks = <&periph_clk>;
 		};
 
@@ -83,7 +83,7 @@
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0x20600 0x20>;
 			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
-						  IRQ_TYPE_LEVEL_HIGH)>;
+						  IRQ_TYPE_EDGE_RISING)>;
 			clocks = <&periph_clk>;
 		};
 
@@ -91,7 +91,7 @@
 			compatible = "arm,cortex-a9-twd-wdt";
 			reg = <0x20620 0x20>;
 			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
-						  IRQ_TYPE_LEVEL_HIGH)>;
+						  IRQ_TYPE_EDGE_RISING)>;
 			clocks = <&periph_clk>;
 		};
 
@@ -179,7 +179,7 @@
 			status = "disabled";
 		};
 
-		nand: nand@26000 {
+		nand_controller: nand-controller@26000 {
 			compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
 			reg = <0x26000 0x600>,
 			      <0x11b408 0x600>,
@@ -217,7 +217,7 @@
 		};
 
 		qspi: spi@27200 {
-			compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
+			compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
 			reg = <0x027200 0x184>,
 			      <0x027000 0x124>,
 			      <0x11c408 0x004>,
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm-nsp.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -77,7 +77,7 @@
 		interrupt-affinity = <&cpu0>, <&cpu1>;
 	};
 
-	mpcore@19000000 {
+	mpcore-bus@19000000 {
 		compatible = "simple-bus";
 		ranges = <0x00000000 0x19000000 0x00023000>;
 		#address-cells = <1>;
@@ -217,7 +217,7 @@
 			#dma-cells = <1>;
 		};
 
-		sdio: sdhci@21000 {
+		sdio: mmc@21000 {
 			compatible = "brcm,sdhci-iproc-cygnus";
 			reg = <0x21000 0x100>;
 			interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
@@ -257,17 +257,17 @@
 			status = "disabled";
 		};
 
-		mailbox: mailbox@25000 {
+		mailbox: mailbox@25c00 {
 			compatible = "brcm,iproc-fa2-mbox";
-			reg = <0x25000 0x445>;
-			interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
+			reg = <0x25c00 0x400>;
+			interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
 			#mbox-cells = <1>;
 			brcm,rx-status-len = <32>;
 			brcm,use-bcm-hdr;
 			dma-coherent;
 		};
 
-		nand: nand@26000 {
+		nand_controller: nand-controller@26000 {
 			compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
 			reg = <0x026000 0x600>,
 			      <0x11b408 0x600>,
@@ -282,7 +282,7 @@
 		};
 
 		qspi: spi@27200 {
-			compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
+			compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
 			reg = <0x027200 0x184>,
 			      <0x027000 0x124>,
 			      <0x11c408 0x004>,
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -53,18 +53,17 @@
 			  "GPIO18",
 			  "NC", /* GPIO19 */
 			  "NC", /* GPIO20 */
-			  "GPIO21",
+			  "CAM_GPIO0",
 			  "GPIO22",
 			  "GPIO23",
 			  "GPIO24",
 			  "GPIO25",
 			  "NC", /* GPIO26 */
-			  "CAM_GPIO0",
-			  /* Binary number representing build/revision */
-			  "CONFIG0",
-			  "CONFIG1",
-			  "CONFIG2",
-			  "CONFIG3",
+			  "GPIO27",
+			  "GPIO28",
+			  "GPIO29",
+			  "GPIO30",
+			  "GPIO31",
 			  "NC", /* GPIO32 */
 			  "NC", /* GPIO33 */
 			  "NC", /* GPIO34 */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
@@ -24,7 +24,7 @@
 
 	leds {
 		act {
-			gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
 		};
 	};
 
@@ -74,16 +74,18 @@
 			  "GPIO27",
 			  "SDA0",
 			  "SCL0",
-			  "NC", /* GPIO30 */
-			  "NC", /* GPIO31 */
-			  "NC", /* GPIO32 */
-			  "NC", /* GPIO33 */
-			  "NC", /* GPIO34 */
-			  "NC", /* GPIO35 */
-			  "NC", /* GPIO36 */
-			  "NC", /* GPIO37 */
-			  "NC", /* GPIO38 */
-			  "NC", /* GPIO39 */
+			  /* Used by BT module */
+			  "CTS0",
+			  "RTS0",
+			  "TXD0",
+			  "RXD0",
+			  /* Used by Wifi */
+			  "SD1_CLK",
+			  "SD1_CMD",
+			  "SD1_DATA0",
+			  "SD1_DATA1",
+			  "SD1_DATA2",
+			  "SD1_DATA3",
 			  "CAM_GPIO1", /* GPIO40 */
 			  "WL_ON", /* GPIO41 */
 			  "NC", /* GPIO42 */
@@ -112,6 +114,7 @@
 &sdhci {
 	#address-cells = <1>;
 	#size-cells = <0>;
+	pinctrl-names = "default";
 	pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
 	bus-width = <4>;
 	mmc-pwrseq = <&wifi_pwrseq>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
@@ -43,7 +43,7 @@
 		#gpio-cells = <2>;
 		gpio-line-names = "BT_ON",
 				  "WL_ON",
-				  "STATUS_LED_R",
+				  "PWR_LED_R",
 				  "LAN_RUN",
 				  "",
 				  "CAM_GPIO0",
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
@@ -63,8 +63,8 @@
 			  "GPIO43",
 			  "GPIO44",
 			  "GPIO45",
-			  "GPIO46",
-			  "GPIO47",
+			  "SMPS_SCL",
+			  "SMPS_SDA",
 			  /* Used by eMMC */
 			  "SD_CLK_R",
 			  "SD_CMD_R",
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm2837.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm2837.dtsi
@@ -38,12 +38,26 @@
 		#size-cells = <0>;
 		enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit
 
+		/* Source for d/i-cache-line-size and d/i-cache-sets
+		 * https://developer.arm.com/documentation/ddi0500/e/level-1-memory-system
+		 * /about-the-l1-memory-system?lang=en
+		 *
+		 * Source for d/i-cache-size
+		 * https://magpi.raspberrypi.com/articles/raspberry-pi-3-specs-benchmarks
+		 */
 		cpu0: cpu@0 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a53";
 			reg = <0>;
 			enable-method = "spin-table";
 			cpu-release-addr = <0x0 0x000000d8>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
+			next-level-cache = <&l2>;
 		};
 
 		cpu1: cpu@1 {
@@ -52,6 +66,13 @@
 			reg = <1>;
 			enable-method = "spin-table";
 			cpu-release-addr = <0x0 0x000000e0>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
+			next-level-cache = <&l2>;
 		};
 
 		cpu2: cpu@2 {
@@ -60,6 +81,13 @@
 			reg = <2>;
 			enable-method = "spin-table";
 			cpu-release-addr = <0x0 0x000000e8>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
+			next-level-cache = <&l2>;
 		};
 
 		cpu3: cpu@3 {
@@ -68,6 +96,27 @@
 			reg = <3>;
 			enable-method = "spin-table";
 			cpu-release-addr = <0x0 0x000000f0>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
+			next-level-cache = <&l2>;
+		};
+
+		/* Source for cache-line-size + cache-sets
+		 * https://developer.arm.com/documentation/ddi0500
+		 * /e/level-2-memory-system/about-the-l2-memory-system?lang=en
+		 * Source for cache-size
+		 * https://datasheets.raspberrypi.com/cm/cm1-and-cm3-datasheet.pdf
+		 */
+		l2: l2-cache0 {
+			compatible = "cache";
+			cache-size = <0x80000>;
+			cache-line-size = <64>;
+			cache-sets = <512>; // 512KiB(size)/64(line-size)=8192ways/16-way set
+			cache-level = <2>;
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm283x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm283x.dtsi
@@ -40,7 +40,7 @@
 
 			trips {
 				cpu-crit {
-					temperature	= <80000>;
+					temperature	= <90000>;
 					hysteresis	= <0>;
 					type		= "critical";
 				};
@@ -183,6 +183,7 @@
 
 			interrupt-controller;
 			#interrupt-cells = <2>;
+			gpio-ranges = <&gpio 0 0 54>;
 
 			/* Defines pin muxing groups according to
 			 * BCM2835-ARM-Peripherals.pdf page 102.
@@ -488,6 +489,7 @@
 					     "dsi0_ddr2",
 					     "dsi0_ddr";
 
+			status = "disabled";
 		};
 
 		thermal: thermal@7e212000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm4708-linksys-ea6500-v2.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm4708-linksys-ea6500-v2.dts
@@ -19,7 +19,8 @@
 
 	memory@0 {
 		device_type = "memory";
-		reg = <0x00000000 0x08000000>;
+		reg = <0x00000000 0x08000000>,
+		      <0x88000000 0x08000000>;
 	};
 
 	gpio-keys {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
@@ -26,7 +26,6 @@
 		wlan {
 			label = "bcm53xx:blue:wlan";
 			gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "default-off";
 		};
 
 		system {
@@ -46,3 +45,16 @@
 		};
 	};
 };
+
+&gmac0 {
+	phy-mode = "rgmii";
+	phy-handle = <&bcm54210e>;
+
+	mdio {
+		/delete-node/ switch@1e;
+
+		bcm54210e: ethernet-phy@0 {
+			reg = <0>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
@@ -26,7 +26,6 @@
 		5ghz {
 			label = "bcm53xx:blue:5ghz";
 			gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "default-off";
 		};
 
 		system {
@@ -42,7 +41,6 @@
 		2ghz {
 			label = "bcm53xx:blue:2ghz";
 			gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "default-off";
 		};
 	};
 
@@ -83,3 +81,16 @@
 		};
 	};
 };
+
+&gmac0 {
+	phy-mode = "rgmii";
+	phy-handle = <&bcm54210e>;
+
+	mdio {
+		/delete-node/ switch@1e;
+
+		bcm54210e: ethernet-phy@0 {
+			reg = <0>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm5301x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm5301x.dtsi
@@ -242,6 +242,8 @@
 
 			gpio-controller;
 			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 
 		pcie0: pcie@12000 {
@@ -353,8 +355,8 @@
 	mdio: mdio@18003000 {
 		compatible = "brcm,iproc-mdio";
 		reg = <0x18003000 0x8>;
-		#size-cells = <1>;
-		#address-cells = <0>;
+		#size-cells = <0>;
+		#address-cells = <1>;
 	};
 
 	mdio-bus-mux@18003000 {
@@ -387,7 +389,7 @@
 	i2c0: i2c@18009000 {
 		compatible = "brcm,iproc-i2c";
 		reg = <0x18009000 0x50>;
-		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+		interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
 		#address-cells = <1>;
 		#size-cells = <0>;
 		clock-frequency = <100000>;
@@ -488,33 +490,32 @@
 	};
 
 	spi@18029200 {
-		compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
+		compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
 		reg = <0x18029200 0x184>,
 		      <0x18029000 0x124>,
 		      <0x1811b408 0x004>,
 		      <0x180293a0 0x01c>;
 		reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
-		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
-			     <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
-			     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
-			     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "spi_lr_fullness_reached",
+			     <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "mspi_done",
+				  "mspi_halted",
+				  "spi_lr_fullness_reached",
 				  "spi_lr_session_aborted",
 				  "spi_lr_impatient",
 				  "spi_lr_session_done",
-				  "spi_lr_overhead",
-				  "mspi_done",
-				  "mspi_halted";
+				  "spi_lr_overread";
 		clocks = <&iprocmed>;
-		clock-names = "iprocmed";
 		num-cs = <2>;
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		spi_nor: spi-nor@0 {
+		spi_nor: flash@0 {
 			compatible = "jedec,spi-nor";
 			reg = <0>;
 			spi-max-frequency = <20000000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm53573.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm53573.dtsi
@@ -127,6 +127,9 @@
 
 		pcie0: pcie@2000 {
 			reg = <0x00002000 0x1000>;
+
+			#address-cells = <3>;
+			#size-cells = <2>;
 		};
 
 		usb2: usb2@4000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm63138.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm63138.dtsi
@@ -203,7 +203,7 @@
 			status = "disabled";
 		};
 
-		nand: nand@2000 {
+		nand_controller: nand-controller@2000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.0", "brcm,brcmnand";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm7445-bcm97445svmb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm7445-bcm97445svmb.dts
@@ -14,10 +14,10 @@
 	};
 };
 
-&nand {
+&nand_controller {
 	status = "okay";
 
-	nandcs@1 {
+	nand@1 {
 		compatible = "brcm,nandcs";
 		reg = <1>;
 		nand-ecc-step-size = <512>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm7445.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm7445.dtsi
@@ -148,7 +148,7 @@
 			reg-names = "aon-ctrl", "aon-sram";
 		};
 
-		nand: nand@3e2800 {
+		nand_controller: nand-controller@3e2800 {
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm911360_entphn.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm911360_entphn.dts
@@ -82,8 +82,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@1 {
+&nand_controller {
+	nand@1 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm947189acdbmr.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm947189acdbmr.dts
@@ -60,9 +60,9 @@
 	spi {
 		compatible = "spi-gpio";
 		num-chipselects = <1>;
-		gpio-sck = <&chipcommon 21 0>;
-		gpio-miso = <&chipcommon 22 0>;
-		gpio-mosi = <&chipcommon 23 0>;
+		sck-gpios = <&chipcommon 21 0>;
+		miso-gpios = <&chipcommon 22 0>;
+		mosi-gpios = <&chipcommon 23 0>;
 		cs-gpios = <&chipcommon 24 0>;
 		#address-cells = <1>;
 		#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958300k.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958300k.dts
@@ -60,8 +60,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@1 {
+&nand_controller {
+	nand@1 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958305k.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958305k.dts
@@ -68,8 +68,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@1 {
+&nand_controller {
+	nand@1 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958522er.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958522er.dts
@@ -70,8 +70,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958525er.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958525er.dts
@@ -70,8 +70,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958525xmc.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958525xmc.dts
@@ -86,8 +86,8 @@
 	};
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958622hr.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958622hr.dts
@@ -74,8 +74,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958623hr.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958623hr.dts
@@ -74,8 +74,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958625hr.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958625hr.dts
@@ -90,8 +90,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm958625k.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm958625k.dts
@@ -64,8 +64,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm963138dvt.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm963138dvt.dts
@@ -31,10 +31,10 @@
 	status = "okay";
 };
 
-&nand {
+&nand_controller {
 	status = "okay";
 
-	nandcs@0 {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-ecc-strength = <4>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/bcm988312hr.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/bcm988312hr.dts
@@ -74,8 +74,8 @@
 	status = "okay";
 };
 
-&nand {
-	nandcs@0 {
+&nand_controller {
+	nand@0 {
 		compatible = "brcm,nandcs";
 		reg = <0>;
 		nand-on-flash-bbt;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dm8148-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/dm8148-evm.dts
@@ -24,12 +24,12 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &cpsw_emac1 {
 	phy-handle = <&ethphy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &davinci_mdio {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dm8148-t410.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/dm8148-t410.dts
@@ -33,12 +33,12 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &cpsw_emac1 {
 	phy-handle = <&ethphy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &davinci_mdio {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dove.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/dove.dtsi
@@ -129,7 +129,7 @@
 			pcie1: pcie@2 {
 				device_type = "pci";
 				status = "disabled";
-				assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
+				assigned-addresses = <0x82001000 0 0x80000 0 0x2000>;
 				reg = <0x1000 0 0 0 0>;
 				clocks = <&gate_clk 5>;
 				marvell,pcie-port = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dra62x-j5eco-evm.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/dra62x-j5eco-evm.dts
@@ -24,12 +24,12 @@
 
 &cpsw_emac0 {
 	phy-handle = <&ethphy0>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &cpsw_emac1 {
 	phy-handle = <&ethphy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 };
 
 &davinci_mdio {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dra7-l4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/dra7-l4.dtsi
@@ -1176,7 +1176,7 @@
 			};
 		};
 
-		target-module@34000 {			/* 0x48034000, ap 7 46.0 */
+		timer3_target: target-module@34000 {	/* 0x48034000, ap 7 46.0 */
 			compatible = "ti,sysc-omap4-timer", "ti,sysc";
 			ti,hwmods = "timer3";
 			reg = <0x34000 0x4>,
@@ -1204,7 +1204,7 @@
 			};
 		};
 
-		target-module@36000 {			/* 0x48036000, ap 9 4e.0 */
+		timer4_target: target-module@36000 {	/* 0x48036000, ap 9 4e.0 */
 			compatible = "ti,sysc-omap4-timer", "ti,sysc";
 			ti,hwmods = "timer4";
 			reg = <0x36000 0x4>,
@@ -1326,7 +1326,7 @@
 			};
 		};
 
-		target-module@55000 {			/* 0x48055000, ap 13 0e.0 */
+		gpio2_target: target-module@55000 {		/* 0x48055000, ap 13 0e.0 */
 			compatible = "ti,sysc-omap2", "ti,sysc";
 			reg = <0x55000 0x4>,
 			      <0x55010 0x4>,
@@ -1359,7 +1359,7 @@
 			};
 		};
 
-		target-module@57000 {			/* 0x48057000, ap 15 06.0 */
+		gpio3_target: target-module@57000 {		/* 0x48057000, ap 15 06.0 */
 			compatible = "ti,sysc-omap2", "ti,sysc";
 			reg = <0x57000 0x4>,
 			      <0x57010 0x4>,
@@ -3059,7 +3059,7 @@
 
 				davinci_mdio: mdio@1000 {
 					compatible = "ti,cpsw-mdio","ti,davinci_mdio";
-					clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 0>;
+					clocks = <&gmac_main_clk>;
 					clock-names = "fck";
 					#address-cells = <1>;
 					#size-cells = <0>;
@@ -3413,6 +3413,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER13_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
@@ -3441,6 +3442,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER14_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
@@ -3469,6 +3471,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER15_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
@@ -3497,6 +3500,7 @@
 				clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER16_CLKCTRL 24>;
 				clock-names = "fck";
 				interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
+				ti,timer-pwm;
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dra7.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/dra7.dtsi
@@ -46,6 +46,7 @@
 
 	timer {
 		compatible = "arm,armv7-timer";
+		status = "disabled";	/* See ARM architected timer wrap erratum i940 */
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
 			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
 			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
@@ -148,6 +149,7 @@
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0x0 0x0 0x0 0xc0000000>;
+		dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
 		ti,hwmods = "l3_main_1", "l3_main_2";
 		reg = <0x0 0x44000000 0x0 0x1000000>,
 		      <0x0 0x45000000 0x0 0x1000>;
@@ -171,6 +173,7 @@
 			#address-cells = <1>;
 			ranges = <0x51000000 0x51000000 0x3000
 				  0x0	     0x20000000 0x10000000>;
+			dma-ranges;
 			/**
 			 * To enable PCI endpoint mode, disable the pcie1_rc
 			 * node and enable pcie1_ep mode.
@@ -228,6 +231,7 @@
 			#address-cells = <1>;
 			ranges = <0x51800000 0x51800000 0x3000
 				  0x0	     0x30000000 0x10000000>;
+			dma-ranges;
 			status = "disabled";
 			pcie2_rc: pcie@51800000 {
 				reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>;
@@ -763,3 +767,22 @@
 
 #include "dra7-l4.dtsi"
 #include "dra7xx-clocks.dtsi"
+
+/* Local timers, see ARM architected timer wrap erratum i940 */
+&timer3_target {
+	ti,no-reset-on-init;
+	ti,no-idle;
+	timer@0 {
+		assigned-clocks = <&l4per_clkctrl DRA7_L4PER_TIMER3_CLKCTRL 24>;
+		assigned-clock-parents = <&timer_sys_clk_div>;
+	};
+};
+
+&timer4_target {
+	ti,no-reset-on-init;
+	ti,no-idle;
+	timer@0 {
+		assigned-clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 24>;
+		assigned-clock-parents = <&timer_sys_clk_div>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dra76x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/dra76x.dtsi
@@ -32,8 +32,8 @@
 				interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-names = "int0", "int1";
-				clocks = <&mcan_clk>, <&l3_iclk_div>;
-				clock-names = "cclk", "hclk";
+				clocks = <&l3_iclk_div>, <&mcan_clk>;
+				clock-names = "hclk", "cclk";
 				bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
 			};
 		};
@@ -86,3 +86,8 @@
 &usb4_tm {
 	status = "disabled";
 };
+
+&mmc3 {
+	/* dra76x is not affected by i887 */
+	max-frequency = <96000000>;
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/dra7xx-clocks.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/dra7xx-clocks.dtsi
@@ -796,16 +796,6 @@
 		clock-div = <1>;
 	};
 
-	ipu1_gfclk_mux: ipu1_gfclk_mux@520 {
-		#clock-cells = <0>;
-		compatible = "ti,mux-clock";
-		clocks = <&dpll_abe_m2x2_ck>, <&dpll_core_h22x2_ck>;
-		ti,bit-shift = <24>;
-		reg = <0x0520>;
-		assigned-clocks = <&ipu1_gfclk_mux>;
-		assigned-clock-parents = <&dpll_core_h22x2_ck>;
-	};
-
 	dummy_ck: dummy_ck {
 		#clock-cells = <0>;
 		compatible = "fixed-clock";
@@ -1564,6 +1554,8 @@
 			compatible = "ti,clkctrl";
 			reg = <0x20 0x4>;
 			#clock-cells = <2>;
+			assigned-clocks = <&ipu1_clkctrl DRA7_IPU1_MMU_IPU1_CLKCTRL 24>;
+			assigned-clock-parents = <&dpll_core_h22x2_ck>;
 		};
 
 		ipu_clkctrl: ipu-clkctrl@50 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos3250-artik5.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos3250-artik5.dtsi
@@ -75,7 +75,7 @@
 	s2mps14_pmic@66 {
 		compatible = "samsung,s2mps14-pmic";
 		interrupt-parent = <&gpx3>;
-		interrupts = <5 IRQ_TYPE_NONE>;
+		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s2mps14_irq>;
 		reg = <0x66>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos3250-monk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos3250-monk.dts
@@ -195,7 +195,7 @@
 	s2mps14_pmic@66 {
 		compatible = "samsung,s2mps14-pmic";
 		interrupt-parent = <&gpx0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x66>;
 		wakeup-source;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos3250-rinato.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -239,7 +239,7 @@
 	i80-if-timings {
 		cs-setup = <0>;
 		wr-setup = <0>;
-		wr-act = <1>;
+		wr-active = <1>;
 		wr-hold = <0>;
 	};
 };
@@ -260,7 +260,7 @@
 	s2mps14_pmic@66 {
 		compatible = "samsung,s2mps14-pmic";
 		interrupt-parent = <&gpx0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x66>;
 		wakeup-source;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4-cpu-thermal.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4-cpu-thermal.dtsi
@@ -10,7 +10,7 @@
 / {
 thermal-zones {
 	cpu_thermal: cpu-thermal {
-		thermal-sensors = <&tmu 0>;
+		thermal-sensors = <&tmu>;
 		polling-delay-passive = <0>;
 		polling-delay = <0>;
 		trips {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4.dtsi
@@ -605,7 +605,7 @@
 			status = "disabled";
 
 			hdmi_i2c_phy: hdmiphy@38 {
-				compatible = "exynos4210-hdmiphy";
+				compatible = "samsung,exynos4210-hdmiphy";
 				reg = <0x38>;
 			};
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -115,7 +115,7 @@
 		gpio-sck = <&gpy3 1 GPIO_ACTIVE_HIGH>;
 		gpio-mosi = <&gpy3 3 GPIO_ACTIVE_HIGH>;
 		num-chipselects = <1>;
-		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
+		cs-gpios = <&gpy4 3 GPIO_ACTIVE_LOW>;
 
 		lcd@0 {
 			compatible = "samsung,ld9040";
@@ -124,8 +124,6 @@
 			vci-supply = <&ldo17_reg>;
 			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
 			spi-max-frequency = <1200000>;
-			spi-cpol;
-			spi-cpha;
 			power-on-delay = <10>;
 			reset-delay = <10>;
 			panel-width-mm = <90>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi
@@ -68,7 +68,7 @@
 
 	i2c_cm36651: i2c-gpio-2 {
 		compatible = "i2c-gpio";
-		gpios = <&gpf0 0 GPIO_ACTIVE_LOW>, <&gpf0 1 GPIO_ACTIVE_LOW>;
+		gpios = <&gpf0 0 GPIO_ACTIVE_HIGH>, <&gpf0 1 GPIO_ACTIVE_HIGH>;
 		i2c-gpio,delay-us = <2>;
 		#address-cells = <1>;
 		#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4412-itop-elite.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4412-itop-elite.dts
@@ -179,7 +179,7 @@
 		compatible = "wlf,wm8960";
 		reg = <0x1a>;
 		clocks = <&pmu_system_controller 0>;
-		clock-names = "MCLK1";
+		clock-names = "mclk";
 		wlf,shared-lrclk;
 		#sound-dai-cells = <0>;
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4412-midas.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4412-midas.dtsi
@@ -139,7 +139,7 @@
 		max77693@66 {
 			compatible = "maxim,max77693";
 			interrupt-parent = <&gpx1>;
-			interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+			interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&max77693_irq>;
 			reg = <0x66>;
@@ -187,7 +187,7 @@
 		max77693-fuel-gauge@36 {
 			compatible = "maxim,max17047";
 			interrupt-parent = <&gpx2>;
-			interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&max77693_fuel_irq>;
 			reg = <0x36>;
@@ -534,7 +534,7 @@
 		clocks = <&camera 1>;
 		clock-names = "extclk";
 		samsung,camclk-out = <1>;
-		gpios = <&gpm1 6 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpm1 6 GPIO_ACTIVE_LOW>;
 
 		port {
 			is_s5k6a3_ep: endpoint {
@@ -588,7 +588,7 @@
 	max77686: max77686_pmic@9 {
 		compatible = "maxim,max77686";
 		interrupt-parent = <&gpx0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-0 = <&max77686_irq>;
 		pinctrl-names = "default";
 		reg = <0x09>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -274,7 +274,7 @@
 	max77686: pmic@9 {
 		compatible = "maxim,max77686";
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&max77686_irq>;
 		reg = <0x09>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos4412-origen.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos4412-origen.dts
@@ -86,7 +86,7 @@
 };
 
 &ehci {
-	samsung,vbus-gpio = <&gpx3 5 1>;
+	samsung,vbus-gpio = <&gpx3 5 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 	phys = <&exynos_usbphy 2>, <&exynos_usbphy 3>;
 	phy-names = "hsic0", "hsic1";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
@@ -260,7 +260,7 @@
 	};
 
 	uart3_data: uart3-data {
-		samsung,pins = "gpa1-4", "gpa1-4";
+		samsung,pins = "gpa1-4", "gpa1-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -117,6 +117,9 @@
 	status = "okay";
 	ddc = <&i2c_2>;
 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+	vdd-supply = <&ldo8_reg>;
+	vdd_osc-supply = <&ldo10_reg>;
+	vdd_pll-supply = <&ldo8_reg>;
 };
 
 &i2c_0 {
@@ -125,7 +128,7 @@
 	samsung,i2c-max-bus-freq = <20000>;
 
 	eeprom@50 {
-		compatible = "samsung,s524ad0xd1";
+		compatible = "samsung,s524ad0xd1", "atmel,24c128";
 		reg = <0x50>;
 	};
 
@@ -133,7 +136,7 @@
 		compatible = "maxim,max77686";
 		reg = <0x09>;
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&max77686_irq>;
 		wakeup-source;
@@ -284,7 +287,7 @@
 	samsung,i2c-max-bus-freq = <20000>;
 
 	eeprom@51 {
-		compatible = "samsung,s524ad0xd1";
+		compatible = "samsung,s524ad0xd1", "atmel,24c128";
 		reg = <0x51>;
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5250-snow-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5250-snow-common.dtsi
@@ -292,7 +292,7 @@
 	max77686: max77686@9 {
 		compatible = "maxim,max77686";
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&max77686_irq>;
 		wakeup-source;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5250-spring.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5250-spring.dts
@@ -108,7 +108,7 @@
 		compatible = "samsung,s5m8767-pmic";
 		reg = <0x66>;
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
 		wakeup-source;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5410-odroidxu.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -116,7 +116,6 @@
 };
 
 &cpu0_thermal {
-	thermal-sensors = <&tmu_cpu0 0>;
 	polling-delay-passive = <0>;
 	polling-delay = <0>;
 
@@ -327,6 +326,8 @@
 				regulator-name = "vddq_lcd";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
+				/* Supplies also GPK and GPJ */
+				regulator-always-on;
 			};
 
 			ldo8_reg: LDO8 {
@@ -637,11 +638,11 @@
 };
 
 &usbdrd_dwc3_0 {
-	dr_mode = "host";
+	dr_mode = "peripheral";
 };
 
 &usbdrd_dwc3_1 {
-	dr_mode = "peripheral";
+	dr_mode = "host";
 };
 
 &usbdrd3_0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
@@ -560,6 +560,34 @@
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
+
+	usb3_1_oc: usb3-1-oc {
+		samsung,pins = "gpk2-4", "gpk2-5";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_1_vbusctrl: usb3-1-vbusctrl {
+		samsung,pins = "gpk2-6", "gpk2-7";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_0_oc: usb3-0-oc {
+		samsung,pins = "gpk3-0", "gpk3-1";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb3_0_vbusctrl: usb3-0-vbusctrl {
+		samsung,pins = "gpk3-2", "gpk3-3";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
 };
 
 &pinctrl_2 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5410.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5410.dtsi
@@ -398,6 +398,8 @@
 &usbdrd3_0 {
 	clocks = <&clock CLK_USBD300>;
 	clock-names = "usbdrd30";
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>;
 };
 
 &usbdrd_phy0 {
@@ -409,6 +411,8 @@
 &usbdrd3_1 {
 	clocks = <&clock CLK_USBD301>;
 	clock-names = "usbdrd30";
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>;
 };
 
 &usbdrd_dwc3_1 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -349,7 +349,7 @@
 		reg = <0x66>;
 
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s2mps11_irq>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5420-smdk5420.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5420-smdk5420.dts
@@ -132,6 +132,9 @@
 	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&hdmi_hpd_irq>;
+	vdd-supply = <&ldo6_reg>;
+	vdd_osc-supply = <&ldo7_reg>;
+	vdd_pll-supply = <&ldo6_reg>;
 };
 
 &hsi2c_4 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5420.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5420.dtsi
@@ -539,7 +539,7 @@
 		};
 
 		mipi_phy: mipi-video-phy {
-			compatible = "samsung,s5pv210-mipi-video-phy";
+			compatible = "samsung,exynos5420-mipi-video-phy";
 			syscon = <&pmu_system_controller>;
 			#phy-cells = <1>;
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -141,7 +141,7 @@
 		samsung,s2mps11-acokb-ground;
 
 		interrupt-parent = <&gpx0>;
-		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&s2mps11_irq>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5422-odroidhc1.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5422-odroidhc1.dts
@@ -22,7 +22,7 @@
 			label = "blue:heartbeat";
 			pwms = <&pwm 2 2000000 0>;
 			pwm-names = "pwm2";
-			max_brightness = <255>;
+			max-brightness = <255>;
 			linux,default-trigger = "heartbeat";
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos5422-odroidxu4.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos5422-odroidxu4.dts
@@ -24,7 +24,7 @@
 			label = "blue:heartbeat";
 			pwms = <&pwm 2 2000000 0>;
 			pwm-names = "pwm2";
-			max_brightness = <255>;
+			max-brightness = <255>;
 			linux,default-trigger = "heartbeat";
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi
@@ -22,7 +22,7 @@
 			 * Green LED is much brighter than the others
 			 * so limit its max brightness
 			 */
-			max_brightness = <127>;
+			max-brightness = <127>;
 			linux,default-trigger = "mmc0";
 		};
 
@@ -30,7 +30,7 @@
 			label = "blue:heartbeat";
 			pwms = <&pwm 2 2000000 0>;
 			pwm-names = "pwm2";
-			max_brightness = <255>;
+			max-brightness = <255>;
 			linux,default-trigger = "heartbeat";
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/gemini-dlink-dns-313.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/gemini-dlink-dns-313.dts
@@ -140,7 +140,7 @@
 		};
 	};
 
-	mdio0: ethernet-phy {
+	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
 		/* Uses MDC and MDIO */
 		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/gemini-nas4220b.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -62,7 +62,7 @@
 		};
 	};
 
-	mdio0: ethernet-phy {
+	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
 		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
 			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
@@ -84,7 +84,7 @@
 			partitions {
 				compatible = "redboot-fis";
 				/* Eraseblock at 0xfe0000 */
-				fis-index-block = <0x1fc>;
+				fis-index-block = <0x7f>;
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/gemini-rut1xx.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/gemini-rut1xx.dts
@@ -56,7 +56,7 @@
 		};
 	};
 
-	mdio0: ethernet-phy {
+	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
 		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
 			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
@@ -114,18 +114,6 @@
 		};
 
 		ethernet@60000000 {
-			status = "okay";
-
-			ethernet-port@0 {
-				phy-mode = "rgmii";
-				phy-handle = <&phy0>;
-			};
-			ethernet-port@1 {
-				/* Not used in this platform */
-			};
-		};
-
-		ethernet@60000000 {
 			status = "okay";
 
 			ethernet-port@0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/gemini-wbd111.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/gemini-wbd111.dts
@@ -68,7 +68,7 @@
 		};
 	};
 
-	mdio0: ethernet-phy {
+	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
 		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
 			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/gemini-wbd222.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/gemini-wbd222.dts
@@ -67,7 +67,7 @@
 		};
 	};
 
-	mdio0: ethernet-phy {
+	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
 		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
 			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/gemini.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/gemini.dtsi
@@ -286,6 +286,7 @@
 			clock-names = "PCLK", "PCICLK";
 			pinctrl-names = "default";
 			pinctrl-0 = <&pci_default_pins>;
+			device_type = "pci";
 			#address-cells = <3>;
 			#size-cells = <2>;
 			#interrupt-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx1.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx1.dtsi
@@ -125,7 +125,7 @@
 			};
 
 			pwm: pwm@208000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx1-pwm";
 				reg = <0x00208000 0x1000>;
 				interrupts = <34>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx23-evk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx23-evk.dts
@@ -53,7 +53,7 @@
 
 	apb@80000000 {
 		apbh@80000000 {
-			gpmi-nand@8000c000 {
+			nand-controller@8000c000 {
 				pinctrl-names = "default";
 				pinctrl-0 = <&gpmi_pins_a &gpmi_pins_fixup>;
 				status = "okay";
@@ -79,7 +79,6 @@
 						MX23_PAD_LCD_RESET__GPIO_1_18
 						MX23_PAD_PWM3__GPIO_1_29
 						MX23_PAD_PWM4__GPIO_1_30
-						MX23_PAD_SSP1_DETECT__SSP1_DETECT
 					>;
 					fsl,drive-strength = <MXS_DRIVE_4mA>;
 					fsl,voltage = <MXS_VOLTAGE_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx23.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx23.dtsi
@@ -59,7 +59,7 @@
 				reg = <0x80000000 0x2000>;
 			};
 
-			dma_apbh: dma-apbh@80004000 {
+			dma_apbh: dma-controller@80004000 {
 				compatible = "fsl,imx23-dma-apbh";
 				reg = <0x80004000 0x2000>;
 				interrupts = <0 14 20 0
@@ -76,7 +76,7 @@
 				status = "disabled";
 			};
 
-			gpmi-nand@8000c000 {
+			nand-controller@8000c000 {
 				compatible = "fsl,imx23-gpmi-nand";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -422,7 +422,7 @@
 				clocks = <&clks 16>;
 			};
 
-			dcp@80028000 {
+			dcp: crypto@80028000 {
 				compatible = "fsl,imx23-dcp";
 				reg = <0x80028000 0x2000>;
 				interrupts = <53 54>;
@@ -434,7 +434,7 @@
 				status = "disabled";
 			};
 
-			ocotp@8002c000 {
+			efuse@8002c000 {
 				compatible = "fsl,imx23-ocotp", "fsl,ocotp";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx25.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx25.dtsi
@@ -75,7 +75,7 @@
 		interrupt-parent = <&asic>;
 		ranges;
 
-		aips@43f00000 { /* AIPS1 */
+		bus@43f00000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -332,7 +332,7 @@
 			};
 		};
 
-		aips@53f00000 { /* AIPS2 */
+		bus@53f00000 { /* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -411,7 +411,7 @@
 
 			pwm2: pwm@53fa0000 {
 				compatible = "fsl,imx25-pwm", "fsl,imx27-pwm";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				reg = <0x53fa0000 0x4000>;
 				clocks = <&clks 106>, <&clks 52>;
 				clock-names = "ipg", "per";
@@ -430,7 +430,7 @@
 
 			pwm3: pwm@53fa8000 {
 				compatible = "fsl,imx25-pwm", "fsl,imx27-pwm";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				reg = <0x53fa8000 0x4000>;
 				clocks = <&clks 107>, <&clks 52>;
 				clock-names = "ipg", "per";
@@ -453,7 +453,7 @@
 				interrupts = <22>;
 			};
 
-			esdhc1: esdhc@53fb4000 {
+			esdhc1: mmc@53fb4000 {
 				compatible = "fsl,imx25-esdhc";
 				reg = <0x53fb4000 0x4000>;
 				interrupts = <9>;
@@ -462,7 +462,7 @@
 				status = "disabled";
 			};
 
-			esdhc2: esdhc@53fb8000 {
+			esdhc2: mmc@53fb8000 {
 				compatible = "fsl,imx25-esdhc";
 				reg = <0x53fb8000 0x4000>;
 				interrupts = <8>;
@@ -488,7 +488,7 @@
 
 			pwm4: pwm@53fc8000 {
 				compatible = "fsl,imx25-pwm", "fsl,imx27-pwm";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				reg = <0x53fc8000 0x4000>;
 				clocks = <&clks 108>, <&clks 52>;
 				clock-names = "ipg", "per";
@@ -535,14 +535,14 @@
 
 			pwm1: pwm@53fe0000 {
 				compatible = "fsl,imx25-pwm", "fsl,imx27-pwm";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				reg = <0x53fe0000 0x4000>;
 				clocks = <&clks 105>, <&clks 52>;
 				clock-names = "ipg", "per";
 				interrupts = <26>;
 			};
 
-			iim: iim@53ff0000 {
+			iim: efuse@53ff0000 {
 				compatible = "fsl,imx25-iim", "fsl,imx27-iim";
 				reg = <0x53ff0000 0x4000>;
 				interrupts = <19>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
@@ -75,8 +75,8 @@
 	imx27-phycard-s-rdk {
 		pinctrl_i2c1: i2c1grp {
 			fsl,pins = <
-				MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
-				MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
+				MX27_PAD_I2C_DATA__I2C_DATA 0x0
+				MX27_PAD_I2C_CLK__I2C_CLK 0x0
 			>;
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx27.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx27.dtsi
@@ -134,7 +134,7 @@
 			};
 
 			pwm: pwm@10006000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx27-pwm";
 				reg = <0x10006000 0x1000>;
 				interrupts = <23>;
@@ -265,7 +265,7 @@
 				status = "disabled";
 			};
 
-			sdhci1: sdhci@10013000 {
+			sdhci1: mmc@10013000 {
 				compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
 				reg = <0x10013000 0x1000>;
 				interrupts = <11>;
@@ -277,7 +277,7 @@
 				status = "disabled";
 			};
 
-			sdhci2: sdhci@10014000 {
+			sdhci2: mmc@10014000 {
 				compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
 				reg = <0x10014000 0x1000>;
 				interrupts = <10>;
@@ -431,7 +431,7 @@
 				status = "disabled";
 			};
 
-			sdhci3: sdhci@1001e000 {
+			sdhci3: mmc@1001e000 {
 				compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
 				reg = <0x1001e000 0x1000>;
 				interrupts = <9>;
@@ -525,7 +525,7 @@
 				reg = <0x10024600 0x200>;
 			};
 
-			sahara2: sahara@10025000 {
+			sahara2: crypto@10025000 {
 				compatible = "fsl,imx27-sahara";
 				reg = <0x10025000 0x1000>;
 				interrupts = <59>;
@@ -540,7 +540,7 @@
 				#clock-cells = <1>;
 			};
 
-			iim: iim@10028000 {
+			iim: efuse@10028000 {
 				compatible = "fsl,imx27-iim";
 				reg = <0x10028000 0x1000>;
 				interrupts = <62>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx28-apf28.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx28-apf28.dts
@@ -17,7 +17,7 @@
 
 	apb@80000000 {
 		apbh@80000000 {
-			gpmi-nand@8000c000 {
+			nand-controller@8000c000 {
 				pinctrl-names = "default";
 				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
 				status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx28-apx4devkit.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx28-apx4devkit.dts
@@ -13,7 +13,7 @@
 
 	apb@80000000 {
 		apbh@80000000 {
-			gpmi-nand@8000c000 {
+			nand-controller@8000c000 {
 				pinctrl-names = "default";
 				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
 				status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx28-evk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx28-evk.dts
@@ -97,7 +97,7 @@
 
 	apb@80000000 {
 		apbh@80000000 {
-			gpmi-nand@8000c000 {
+			nand-controller@8000c000 {
 				pinctrl-names = "default";
 				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg
 					     &gpmi_pins_evk>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx28-m28cu3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx28-m28cu3.dts
@@ -17,7 +17,7 @@
 
 	apb@80000000 {
 		apbh@80000000 {
-			gpmi-nand@8000c000 {
+			nand-controller@8000c000 {
 				#address-cells = <1>;
 				#size-cells = <1>;
 				pinctrl-names = "default";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx28.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx28.dtsi
@@ -78,7 +78,7 @@
 				status = "disabled";
 			};
 
-			dma_apbh: dma-apbh@80004000 {
+			dma_apbh: dma-controller@80004000 {
 				compatible = "fsl,imx28-dma-apbh";
 				reg = <0x80004000 0x2000>;
 				interrupts = <82 83 84 85
@@ -100,7 +100,7 @@
 				status = "disabled";
 			};
 
-			gpmi: gpmi-nand@8000c000 {
+			gpmi: nand-controller@8000c000 {
 				compatible = "fsl,imx28-gpmi-nand";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -998,7 +998,7 @@
 				clocks = <&clks 26>;
 			};
 
-			dcp: dcp@80028000 {
+			dcp: crypto@80028000 {
 				compatible = "fsl,imx28-dcp", "fsl,imx23-dcp";
 				reg = <0x80028000 0x2000>;
 				interrupts = <52 53 54>;
@@ -1011,7 +1011,7 @@
 				status = "disabled";
 			};
 
-			ocotp: ocotp@8002c000 {
+			ocotp: efuse@8002c000 {
 				compatible = "fsl,imx28-ocotp", "fsl,ocotp";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx31.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx31.dtsi
@@ -63,7 +63,7 @@
 			ranges = <0 0x1fffc000 0x4000>;
 		};
 
-		aips@43f00000 { /* AIPS1 */
+		bus@43f00000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -173,7 +173,7 @@
 			reg = <0x50000000 0x100000>;
 			ranges;
 
-			sdhci1: sdhci@50004000 {
+			sdhci1: mmc@50004000 {
 				compatible = "fsl,imx31-mmc";
 				reg = <0x50004000 0x4000>;
 				interrupts = <9>;
@@ -184,7 +184,7 @@
 				status = "disabled";
 			};
 
-			sdhci2: sdhci@50008000 {
+			sdhci2: mmc@50008000 {
 				compatible = "fsl,imx31-mmc";
 				reg = <0x50008000 0x4000>;
 				interrupts = <8>;
@@ -217,7 +217,7 @@
 				status = "disabled";
 			};
 
-			iim: iim@5001c000 {
+			iim: efuse@5001c000 {
 				compatible = "fsl,imx31-iim", "fsl,imx27-iim";
 				reg = <0x5001c000 0x1000>;
 				interrupts = <19>;
@@ -225,7 +225,7 @@
 			};
 		};
 
-		aips@53f00000 { /* AIPS2 */
+		bus@53f00000 { /* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -327,7 +327,7 @@
 				interrupts = <26>;
 				clocks = <&clks 10>, <&clks 42>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx35.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx35.dtsi
@@ -59,14 +59,14 @@
 		interrupt-parent = <&avic>;
 		ranges;
 
-		L2: l2-cache@30000000 {
+		L2: cache-controller@30000000 {
 			compatible = "arm,l210-cache";
 			reg = <0x30000000 0x1000>;
 			cache-unified;
 			cache-level = <2>;
 		};
 
-		aips1: aips@43f00000 {
+		aips1: bus@43f00000 {
 			compatible = "fsl,aips", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -199,7 +199,7 @@
 			};
 		};
 
-		aips2: aips@53f00000 {
+		aips2: bus@53f00000 {
 			compatible = "fsl,aips", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -231,7 +231,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			esdhc1: esdhc@53fb4000 {
+			esdhc1: mmc@53fb4000 {
 				compatible = "fsl,imx35-esdhc";
 				reg = <0x53fb4000 0x4000>;
 				interrupts = <7>;
@@ -240,7 +240,7 @@
 				status = "disabled";
 			};
 
-			esdhc2: esdhc@53fb8000 {
+			esdhc2: mmc@53fb8000 {
 				compatible = "fsl,imx35-esdhc";
 				reg = <0x53fb8000 0x4000>;
 				interrupts = <8>;
@@ -249,7 +249,7 @@
 				status = "disabled";
 			};
 
-			esdhc3: esdhc@53fbc000 {
+			esdhc3: mmc@53fbc000 {
 				compatible = "fsl,imx35-esdhc";
 				reg = <0x53fbc000 0x4000>;
 				interrupts = <9>;
@@ -320,7 +320,7 @@
 				status = "disabled";
 			};
 
-			iim@53ff0000 {
+			efuse@53ff0000 {
 				compatible = "fsl,imx35-iim";
 				reg = <0x53ff0000 0x4000>;
 				interrupts = <19>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx50-evk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx50-evk.dts
@@ -59,7 +59,7 @@
 				MX50_PAD_CSPI_MISO__CSPI_MISO		0x00
 				MX50_PAD_CSPI_MOSI__CSPI_MOSI		0x00
 				MX50_PAD_CSPI_SS0__GPIO4_11		0xc4
-				MX50_PAD_ECSPI1_MOSI__CSPI_SS1		0xf4
+				MX50_PAD_ECSPI1_MOSI__GPIO4_13		0x84
 			>;
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx50.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx50.dtsi
@@ -101,7 +101,7 @@
 		interrupt-parent = <&tzic>;
 		ranges;
 
-		aips@50000000 { /* AIPS1 */
+		bus@50000000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -115,7 +115,7 @@
 				reg = <0x50000000 0x40000>;
 				ranges;
 
-				esdhc1: esdhc@50004000 {
+				esdhc1: mmc@50004000 {
 					compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
 					reg = <0x50004000 0x4000>;
 					interrupts = <1>;
@@ -127,7 +127,7 @@
 					status = "disabled";
 				};
 
-				esdhc2: esdhc@50008000 {
+				esdhc2: mmc@50008000 {
 					compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
 					reg = <0x50008000 0x4000>;
 					interrupts = <2>;
@@ -176,7 +176,7 @@
 					status = "disabled";
 				};
 
-				esdhc3: esdhc@50020000 {
+				esdhc3: mmc@50020000 {
 					compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
 					reg = <0x50020000 0x4000>;
 					interrupts = <3>;
@@ -188,7 +188,7 @@
 					status = "disabled";
 				};
 
-				esdhc4: esdhc@50024000 {
+				esdhc4: mmc@50024000 {
 					compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
 					reg = <0x50024000 0x4000>;
 					interrupts = <4>;
@@ -294,7 +294,7 @@
 			};
 
 			pwm1: pwm@53fb4000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
 				reg = <0x53fb4000 0x4000>;
 				clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
@@ -304,7 +304,7 @@
 			};
 
 			pwm2: pwm@53fb8000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
 				reg = <0x53fb8000 0x4000>;
 				clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
@@ -389,7 +389,7 @@
 			};
 		};
 
-		aips@60000000 {	/* AIPS2 */
+		bus@60000000 {	/* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx51-ts4800.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx51-ts4800.dts
@@ -113,6 +113,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm_backlight>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx51.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx51.dtsi
@@ -158,7 +158,7 @@
 			};
 		};
 
-		aips@70000000 { /* AIPS1 */
+		bus@70000000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -172,7 +172,7 @@
 				reg = <0x70000000 0x40000>;
 				ranges;
 
-				esdhc1: esdhc@70004000 {
+				esdhc1: mmc@70004000 {
 					compatible = "fsl,imx51-esdhc";
 					reg = <0x70004000 0x4000>;
 					interrupts = <1>;
@@ -183,7 +183,7 @@
 					status = "disabled";
 				};
 
-				esdhc2: esdhc@70008000 {
+				esdhc2: mmc@70008000 {
 					compatible = "fsl,imx51-esdhc";
 					reg = <0x70008000 0x4000>;
 					interrupts = <2>;
@@ -232,7 +232,7 @@
 					status = "disabled";
 				};
 
-				esdhc3: esdhc@70020000 {
+				esdhc3: mmc@70020000 {
 					compatible = "fsl,imx51-esdhc";
 					reg = <0x70020000 0x4000>;
 					interrupts = <3>;
@@ -244,7 +244,7 @@
 					status = "disabled";
 				};
 
-				esdhc4: esdhc@70024000 {
+				esdhc4: mmc@70024000 {
 					compatible = "fsl,imx51-esdhc";
 					reg = <0x70024000 0x4000>;
 					interrupts = <4>;
@@ -387,7 +387,7 @@
 			};
 
 			pwm1: pwm@73fb4000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx51-pwm", "fsl,imx27-pwm";
 				reg = <0x73fb4000 0x4000>;
 				clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
@@ -397,7 +397,7 @@
 			};
 
 			pwm2: pwm@73fb8000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx51-pwm", "fsl,imx27-pwm";
 				reg = <0x73fb8000 0x4000>;
 				clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
@@ -440,7 +440,7 @@
 			};
 		};
 
-		aips@80000000 {	/* AIPS2 */
+		bus@80000000 {	/* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -452,7 +452,7 @@
 				reg = <0x83f00000 0x60>;
 			};
 
-			iim: iim@83f98000 {
+			iim: efuse@83f98000 {
 				compatible = "fsl,imx51-iim", "fsl,imx27-iim";
 				reg = <0x83f98000 0x4000>;
 				interrupts = <69>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53-kp.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53-kp.dtsi
@@ -162,6 +162,14 @@
 	>;
 };
 
+&pwm1 {
+	#pwm-cells = <2>;
+};
+
+&pwm2 {
+	#pwm-cells = <2>;
+};
+
 &uart1 {
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53-m53evk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53-m53evk.dts
@@ -321,6 +321,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53-m53menlo.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53-m53menlo.dts
@@ -53,14 +53,40 @@
 		};
 	};
 
+	lvds-decoder {
+		compatible = "ti,ds90cf364a", "lvds-decoder";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lvds_decoder_in: endpoint {
+					remote-endpoint = <&lvds0_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				lvds_decoder_out: endpoint {
+					remote-endpoint = <&panel_in>;
+				};
+			};
+		};
+	};
+
 	panel {
 		compatible = "edt,etm0700g0dh6";
 		pinctrl-0 = <&pinctrl_display_gpio>;
+		pinctrl-names = "default";
 		enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
 
 		port {
 			panel_in: endpoint {
-				remote-endpoint = <&lvds0_out>;
+				remote-endpoint = <&lvds_decoder_out>;
 			};
 		};
 	};
@@ -76,8 +102,7 @@
 		regulator-name = "vbus";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
+		gpio = <&gpio1 2 0>;
 	};
 };
 
@@ -388,13 +413,13 @@
 
 		pinctrl_power_button: powerbutgrp {
 			fsl,pins = <
-				MX53_PAD_SD2_DATA2__GPIO1_13		0x1e4
+				MX53_PAD_SD2_DATA0__GPIO1_15		0x1e4
 			>;
 		};
 
 		pinctrl_power_out: poweroutgrp {
 			fsl,pins = <
-				MX53_PAD_SD2_DATA0__GPIO1_15		0x1e4
+				MX53_PAD_SD2_DATA2__GPIO1_13		0x1e4
 			>;
 		};
 
@@ -450,7 +475,7 @@
 			reg = <2>;
 
 			lvds0_out: endpoint {
-				remote-endpoint = <&panel_in>;
+				remote-endpoint = <&lvds_decoder_in>;
 			};
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53-ppd.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53-ppd.dts
@@ -70,6 +70,12 @@
 		clock-frequency = <11289600>;
 	};
 
+	achc_24M: achc-clock {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <24000000>;
+	};
+
 	sgtlsound: sound {
 		compatible = "fsl,imx53-cpuvo-sgtl5000",
 			     "fsl,imx-audio-sgtl5000";
@@ -287,16 +293,13 @@
 		    &gpio4 12 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	spidev0: spi@0 {
-		compatible = "ge,achc";
-		reg = <0>;
-		spi-max-frequency = <1000000>;
-	};
-
-	spidev1: spi@1 {
-		compatible = "ge,achc";
-		reg = <1>;
-		spi-max-frequency = <1000000>;
+	spidev0: spi@1 {
+		compatible = "ge,achc", "nxp,kinetis-k20";
+		reg = <1>, <0>;
+		vdd-supply = <&reg_3v3>;
+		vdda-supply = <&reg_3v3>;
+		clocks = <&achc_24M>;
+		reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
 	};
 
 	gpioxra0: gpio@2 {
@@ -458,7 +461,7 @@
 	scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 
-	i2c-switch@70 {
+	i2c-mux@70 {
 		compatible = "nxp,pca9547";
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -598,12 +601,14 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
 };
 
 &pwm2 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53-tqma53.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53-tqma53.dtsi
@@ -209,6 +209,14 @@
 	};
 };
 
+&pwm1 {
+	#pwm-cells = <2>;
+};
+
+&pwm2 {
+	#pwm-cells = <2>;
+};
+
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53-tx53.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53-tx53.dtsi
@@ -542,7 +542,6 @@
 &pwm2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
-	#pwm-cells = <3>;
 };
 
 &sdma {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx53.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx53.dtsi
@@ -222,7 +222,7 @@
 			clock-names = "core_clk", "mem_iface_clk";
 		};
 
-		aips@50000000 { /* AIPS1 */
+		bus@50000000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -236,7 +236,7 @@
 				reg = <0x50000000 0x40000>;
 				ranges;
 
-				esdhc1: esdhc@50004000 {
+				esdhc1: mmc@50004000 {
 					compatible = "fsl,imx53-esdhc";
 					reg = <0x50004000 0x4000>;
 					interrupts = <1>;
@@ -248,7 +248,7 @@
 					status = "disabled";
 				};
 
-				esdhc2: esdhc@50008000 {
+				esdhc2: mmc@50008000 {
 					compatible = "fsl,imx53-esdhc";
 					reg = <0x50008000 0x4000>;
 					interrupts = <2>;
@@ -301,7 +301,7 @@
 					status = "disabled";
 				};
 
-				esdhc3: esdhc@50020000 {
+				esdhc3: mmc@50020000 {
 					compatible = "fsl,imx53-esdhc";
 					reg = <0x50020000 0x4000>;
 					interrupts = <3>;
@@ -313,7 +313,7 @@
 					status = "disabled";
 				};
 
-				esdhc4: esdhc@50024000 {
+				esdhc4: mmc@50024000 {
 					compatible = "fsl,imx53-esdhc";
 					reg = <0x50024000 0x4000>;
 					interrupts = <4>;
@@ -525,7 +525,7 @@
 			};
 
 			pwm1: pwm@53fb4000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx53-pwm", "fsl,imx27-pwm";
 				reg = <0x53fb4000 0x4000>;
 				clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
@@ -535,7 +535,7 @@
 			};
 
 			pwm2: pwm@53fb8000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx53-pwm", "fsl,imx27-pwm";
 				reg = <0x53fb8000 0x4000>;
 				clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
@@ -654,7 +654,7 @@
 			};
 		};
 
-		aips@60000000 {	/* AIPS2 */
+		bus@60000000 {	/* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -666,7 +666,7 @@
 				reg = <0x63f00000 0x60>;
 			};
 
-			iim: iim@63f98000 {
+			iim: efuse@63f98000 {
 				compatible = "fsl,imx53-iim", "fsl,imx27-iim";
 				reg = <0x63f98000 0x4000>;
 				interrupts = <69>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
@@ -79,5 +79,6 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl-aristainetos_7.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl-aristainetos_7.dts
@@ -69,5 +69,6 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl-icore-mipi.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl-icore-mipi.dts
@@ -8,7 +8,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-icore.dtsi"
+#include "imx6qdl-icore-1.5.dtsi"
 
 / {
 	model = "Engicam i.CoreM6 DualLite/Solo MIPI Starter Kit";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl-mamoj.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl-mamoj.dts
@@ -303,6 +303,7 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi
@@ -99,9 +99,13 @@
 	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
 	phy-reset-duration = <20>;
 	phy-supply = <&sw2_reg>;
-	phy-handle = <&ethphy0>;
 	status = "okay";
 
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+
 	mdio {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -520,7 +524,6 @@
 };
 
 &pwm1 {
-	#pwm-cells = <3>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "disabled";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts
@@ -38,7 +38,7 @@
 };
 
 &switch_ports {
-	/delete-node/ port@2;
+	/delete-node/ port@3;
 };
 
 &touchscreen {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6dl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6dl.dtsi
@@ -44,6 +44,8 @@
 			arm-supply = <&reg_arm>;
 			pu-supply = <&reg_pu>;
 			soc-supply = <&reg_soc>;
+			nvmem-cells = <&cpu_speed_grade>;
+			nvmem-cell-names = "speed_grade";
 		};
 
 		cpu@1 {
@@ -81,11 +83,14 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
-		aips1: aips-bus@2000000 {
-			iomuxc: iomuxc@20e0000 {
+		aips1: bus@2000000 {
+			iomuxc: pinctrl@20e0000 {
 				compatible = "fsl,imx6dl-iomuxc";
 			};
 
@@ -100,7 +105,7 @@
 			};
 		};
 
-		aips2: aips-bus@2100000 {
+		aips2: bus@2100000 {
 			i2c4: i2c@21f8000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-b450v3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-b450v3.dts
@@ -65,13 +65,6 @@
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-b650v3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-b650v3.dts
@@ -65,13 +65,6 @@
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-b850v3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-b850v3.dts
@@ -53,17 +53,6 @@
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
-			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
-			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
-};
-
 &ldb {
 	fsl,dual-channel;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-ba16.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-ba16.dtsi
@@ -334,6 +334,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -377,3 +377,18 @@
 		#interrupt-cells = <1>;
 	};
 };
+
+&clks {
+	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI1_PRE_SEL>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
@@ -55,7 +55,7 @@
 		#sound-dai-cells = <0>;
 		clocks = <&clk_ext_audio_codec>;
 		VDDA-supply = <&reg_3p3v>;
-		VDDIO-supply = <&reg_3p3v>;
+		VDDIO-supply = <&sw2_reg>;
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
@@ -98,30 +98,40 @@
 			reg = <0>;
 			max-speed = <100>;
 			reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
-			reset-delay-us = <1000>;
-			reset-post-delay-us = <1000>;
+			reset-assert-us = <1000>;
+			reset-deassert-us = <1000>;
+			smsc,disable-energy-detect; /* Make plugin detection reliable */
 		};
 	};
 };
 
 &i2c1 {
 	clock-frequency = <100000>;
-	pinctrl-names = "default";
+	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c1>;
+	pinctrl-1 = <&pinctrl_i2c1_gpio>;
+	scl-gpios = <&gpio3 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&gpio3 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 };
 
 &i2c2 {
 	clock-frequency = <100000>;
-	pinctrl-names = "default";
+	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c2>;
+	pinctrl-1 = <&pinctrl_i2c2_gpio>;
+	scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&gpio4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 };
 
 &i2c3 {
 	clock-frequency = <100000>;
-	pinctrl-names = "default";
+	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c3>;
+	pinctrl-1 = <&pinctrl_i2c3_gpio>;
+	scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 
 	ltc3676: pmic@3c {
@@ -206,7 +216,7 @@
 	};
 
 	rtc@56 {
-		compatible = "rv3029c2";
+		compatible = "microcrystal,rv3029";
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_rtc_hw300>;
 		reg = <0x56>;
@@ -287,6 +297,13 @@
 		>;
 	};
 
+	pinctrl_i2c1_gpio: i2c1-gpio-grp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D21__GPIO3_IO21		0x4001b8b1
+			MX6QDL_PAD_EIM_D28__GPIO3_IO28		0x4001b8b1
+		>;
+	};
+
 	pinctrl_i2c2: i2c2-grp {
 		fsl,pins = <
 			MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
@@ -294,6 +311,13 @@
 		>;
 	};
 
+	pinctrl_i2c2_gpio: i2c2-gpio-grp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL3__GPIO4_IO12		0x4001b8b1
+			MX6QDL_PAD_KEY_ROW3__GPIO4_IO13		0x4001b8b1
+		>;
+	};
+
 	pinctrl_i2c3: i2c3-grp {
 		fsl,pins = <
 			MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
@@ -301,6 +325,13 @@
 		>;
 	};
 
+	pinctrl_i2c3_gpio: i2c3-gpio-grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_3__GPIO1_IO03		0x4001b8b1
+			MX6QDL_PAD_GPIO_6__GPIO1_IO06		0x4001b8b1
+		>;
+	};
+
 	pinctrl_pmic_hw300: pmic-hw300-grp {
 		fsl,pins = <
 			MX6QDL_PAD_EIM_A25__GPIO5_IO02		0x1B0B0
@@ -408,6 +439,18 @@
 	vin-supply = <&sw1_reg>;
 };
 
+&reg_pu {
+	vin-supply = <&sw1_reg>;
+};
+
+&reg_vdd1p1 {
+	vin-supply = <&sw2_reg>;
+};
+
+&reg_vdd2p5 {
+	vin-supply = <&sw2_reg>;
+};
+
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-display5.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-display5.dtsi
@@ -399,7 +399,6 @@
 };
 
 &pwm2 {
-	#pwm-cells = <3>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-kp.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-kp.dtsi
@@ -378,12 +378,14 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
 };
 
 &pwm2 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-mccmon6.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-mccmon6.dts
@@ -237,7 +237,6 @@
 };
 
 &pwm2 {
-	#pwm-cells = <3>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-novena.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-novena.dts
@@ -455,6 +455,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-pistachio.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-pistachio.dts
@@ -570,6 +570,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q-var-dt6customboard.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q-var-dt6customboard.dts
@@ -203,6 +203,7 @@
 };
 
 &pwm2 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6q.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6q.dtsi
@@ -49,6 +49,8 @@
 			arm-supply = <&reg_arm>;
 			pu-supply = <&reg_pu>;
 			soc-supply = <&reg_soc>;
+			nvmem-cells = <&cpu_speed_grade>;
+			nvmem-cell-names = "speed_grade";
 		};
 
 		cpu1: cpu@1 {
@@ -158,10 +160,13 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x40000>;
+			ranges = <0 0x00900000 0x40000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
-		aips-bus@2000000 { /* AIPS1 */
+		bus@2000000 { /* AIPS1 */
 			spba-bus@2000000 {
 				ecspi5: spi@2018000 {
 					#address-cells = <1>;
@@ -178,7 +183,7 @@
 				};
 			};
 
-			iomuxc: iomuxc@20e0000 {
+			iomuxc: pinctrl@20e0000 {
 				compatible = "fsl,imx6q-iomuxc";
 			};
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -314,6 +314,8 @@
 	codec: sgtl5000@a {
 		compatible = "fsl,sgtl5000";
 		reg = <0x0a>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_sgtl5000>;
 		clocks = <&clks IMX6QDL_CLK_CKO>;
 		VDDA-supply = <&reg_module_3v3_audio>;
 		VDDIO-supply = <&reg_module_3v3>;
@@ -399,6 +401,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "disabled";
@@ -543,8 +546,6 @@
 			MX6QDL_PAD_DISP0_DAT21__AUD4_TXD	0x130b0
 			MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS	0x130b0
 			MX6QDL_PAD_DISP0_DAT23__AUD4_RXD	0x130b0
-			/* SGTL5000 sys_mclk */
-			MX6QDL_PAD_GPIO_5__CCM_CLKO1		0x130b0
 		>;
 	};
 
@@ -810,6 +811,12 @@
 		>;
 	};
 
+	pinctrl_sgtl5000: sgtl5000grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_5__CCM_CLKO1	0x130b0
+		>;
+	};
+
 	pinctrl_spdif: spdifgrp {
 		fsl,pins = <
 			MX6QDL_PAD_GPIO_16__SPDIF_IN  0x1b0b0
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
@@ -233,6 +233,7 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
@@ -336,6 +336,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -336,6 +336,7 @@
 
 /* Colibri PWM<A> */
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "disabled";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
@@ -233,6 +233,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-emcon-avari.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-emcon-avari.dtsi
@@ -126,7 +126,7 @@
 		compatible = "nxp,pca8574";
 		reg = <0x3a>;
 		gpio-controller;
-		#gpio-cells = <1>;
+		#gpio-cells = <2>;
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-emcon.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-emcon.dtsi
@@ -737,14 +737,17 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -273,7 +273,7 @@
 
 			/* VDD_AUD_1P8: Audio codec */
 			reg_aud_1p8v: ldo3 {
-				regulator-name = "vdd1p8";
+				regulator-name = "vdd1p8a";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-boot-on;
@@ -360,6 +360,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
@@ -351,6 +351,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
@@ -414,6 +414,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default", "state_dio";
 	pinctrl-0 = <&pinctrl_pwm4_backlight>;
 	pinctrl-1 = <&pinctrl_pwm4_dio>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -105,19 +105,16 @@
 	sound-digital {
 		compatible = "simple-audio-card";
 		simple-audio-card,name = "tda1997x-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&sound_codec>;
+		simple-audio-card,frame-master = <&sound_codec>;
 
-		simple-audio-card,dai-link@0 {
-			format = "i2s";
-
-			cpu {
-				sound-dai = <&ssi2>;
-			};
+		sound_cpu: simple-audio-card,cpu {
+			sound-dai = <&ssi1>;
+		};
 
-			codec {
-				bitclock-master;
-				frame-master;
-				sound-dai = <&hdmi_receiver>;
-			};
+		sound_codec: simple-audio-card,codec {
+			sound-dai = <&hdmi_receiver>;
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw560x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw560x.dtsi
@@ -452,6 +452,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
@@ -464,7 +465,6 @@
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1>;
-	uart-has-rtscts;
 	rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw5903.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw5903.dtsi
@@ -365,6 +365,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-gw5904.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-gw5904.dtsi
@@ -382,6 +382,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -232,6 +232,7 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
@@ -384,7 +385,7 @@
 
 	pinctrl_usbotg: usbotggrp {
 		fsl,pins = <
-			MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
+			MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
 		>;
 	};
 
@@ -396,6 +397,7 @@
 			MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17070
 			MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17070
 			MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17070
+			MX6QDL_PAD_GPIO_1__GPIO1_IO01  0x1b0b0
 		>;
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
@@ -51,16 +51,6 @@
 		vin-supply = <&reg_3p3v_s5>;
 	};
 
-	reg_3p3v_s0: regulator-3p3v-s0 {
-		compatible = "regulator-fixed";
-		regulator-name = "V_3V3_S0";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-always-on;
-		regulator-boot-on;
-		vin-supply = <&reg_3p3v_s5>;
-	};
-
 	reg_3p3v_s5: regulator-3p3v-s5 {
 		compatible = "regulator-fixed";
 		regulator-name = "V_3V3_S5";
@@ -167,7 +157,7 @@
 		i2c-gpio,delay-us = <2>; /* ~100 kHz */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		status = "disabld";
+		status = "disabled";
 	};
 
 	i2c_cam: i2c-gpio-cam {
@@ -179,7 +169,7 @@
 		i2c-gpio,delay-us = <2>; /* ~100 kHz */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		status = "disabld";
+		status = "disabled";
 	};
 };
 
@@ -551,7 +541,7 @@
 
 	pinctrl_i2c3: i2c3grp {
 		fsl,pins = <
-			MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
+			MX6QDL_PAD_GPIO_5__I2C3_SCL		0x4001b8b1
 			MX6QDL_PAD_GPIO_16__I2C3_SDA		0x4001b8b1
 		>;
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
@@ -497,6 +497,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
@@ -509,6 +510,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
@@ -736,12 +736,14 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
 };
 
 &pwm2 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
 	status = "okay";
@@ -754,6 +756,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
@@ -639,6 +639,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
@@ -651,6 +652,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
@@ -596,6 +596,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
@@ -608,6 +609,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-phytec-mira.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-phytec-mira.dtsi
@@ -218,6 +218,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
@@ -315,8 +315,8 @@
 			fsl,pins = <
 				MX6QDL_PAD_EIM_D24__UART3_TX_DATA	0x1b0b1
 				MX6QDL_PAD_EIM_D25__UART3_RX_DATA	0x1b0b1
-				MX6QDL_PAD_EIM_D30__UART3_RTS_B		0x1b0b1
-				MX6QDL_PAD_EIM_D31__UART3_CTS_B		0x1b0b1
+				MX6QDL_PAD_EIM_D31__UART3_RTS_B		0x1b0b1
+				MX6QDL_PAD_EIM_D30__UART3_CTS_B		0x1b0b1
 			>;
 		};
 
@@ -403,6 +403,7 @@
 &uart3 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart3>;
+	uart-has-rtscts;
 	status = "disabled";
 };
 
@@ -432,6 +433,7 @@
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
 	wp-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&vdd_sd1_reg>;
 	status = "disabled";
 };
 
@@ -441,5 +443,6 @@
 		     &pinctrl_usdhc3_cdwp>;
 	cd-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
 	wp-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&vdd_sd0_reg>;
 	status = "disabled";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi
@@ -107,14 +107,14 @@
 		regulators {
 			vdd_arm: buck1 {
 				regulator-name = "vdd_arm";
-				regulator-min-microvolt = <730000>;
+				regulator-min-microvolt = <925000>;
 				regulator-max-microvolt = <1380000>;
 				regulator-always-on;
 			};
 
 			vdd_soc: buck2 {
 				regulator-name = "vdd_soc";
-				regulator-min-microvolt = <730000>;
+				regulator-min-microvolt = <1150000>;
 				regulator-max-microvolt = <1380000>;
 				regulator-always-on;
 			};
@@ -183,7 +183,6 @@
 	pinctrl-0 = <&pinctrl_usdhc4>;
 	bus-width = <8>;
 	non-removable;
-	vmmc-supply = <&vdd_emmc_1p8>;
 	status = "disabled";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -800,6 +800,7 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -687,18 +687,21 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -728,6 +728,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
@@ -749,10 +750,6 @@
 	vin-supply = <&vgen5_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&vgen5_reg>;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-savageboard.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-savageboard.dtsi
@@ -140,6 +140,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sr-som-ti.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-sr-som-ti.dtsi
@@ -153,6 +153,7 @@
 	bus-width = <4>;
 	keep-power-in-suspend;
 	mmc-pwrseq = <&pwrseq_ti_wifi>;
+	cap-power-off-card;
 	non-removable;
 	vmmc-supply = <&vcc_3v3>;
 	/* vqmmc-supply = <&nvcc_sd1>; - MMC layer doesn't like it! */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-sr-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-sr-som.dtsi
@@ -54,7 +54,13 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
 	phy-mode = "rgmii-id";
-	phy-reset-duration = <2>;
+
+	/*
+	 * The PHY seems to require a long-enough reset duration to avoid
+	 * some rare issues where the PHY gets stuck in an inconsistent and
+	 * non-functional state at boot-up. 10ms proved to be fine .
+	 */
+	phy-reset-duration = <10>;
 	phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-ts7970.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-ts7970.dtsi
@@ -226,7 +226,7 @@
 		reg = <0x28>;
 		#gpio-cells = <2>;
 		gpio-controller;
-		ngpio = <32>;
+		ngpios = <62>;
 	};
 
 	sgtl5000: codec@a {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-tx6.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-tx6.dtsi
@@ -738,14 +738,12 @@
 &pwm1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
-	#pwm-cells = <3>;
 	status = "disabled";
 };
 
 &pwm2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
-	#pwm-cells = <3>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-udoo.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-udoo.dtsi
@@ -5,6 +5,8 @@
  * Author: Fabio Estevam <fabio.estevam@freescale.com>
  */
 
+#include <dt-bindings/gpio/gpio.h>
+
 / {
 	aliases {
 		backlight = &backlight;
@@ -98,7 +100,7 @@
 &fec {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
@@ -218,6 +220,7 @@
 				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
 				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
 				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
+				MX6QDL_PAD_SD3_DAT5__GPIO7_IO00		0x1b0b0
 			>;
 		};
 
@@ -290,7 +293,7 @@
 &usdhc3 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc3>;
-	non-removable;
+	cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
@@ -166,7 +166,6 @@
 				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
 				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
 				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
-				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
 			>;
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
@@ -627,7 +627,7 @@
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	bus-width = <4>;
 	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
-	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+	disable-wp;
 	vmmc-supply = <&reg_3p3v_sd>;
 	vqmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
@@ -640,7 +640,7 @@
 	pinctrl-0 = <&pinctrl_usdhc3>;
 	bus-width = <4>;
 	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
-	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+	disable-wp;
 	vmmc-supply = <&reg_3p3v_sd>;
 	vqmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
@@ -774,6 +774,7 @@
 &usbh1 {
 	vbus-supply = <&reg_5p0v_main>;
 	disable-over-current;
+	maximum-speed = "full-speed";
 	status = "okay";
 };
 
@@ -1055,7 +1056,6 @@
 			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
 			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
 			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
-			MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x40010040
 			MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x40010040
 		>;
 	};
@@ -1068,7 +1068,6 @@
 			MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
 			MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
 			MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
-			MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x40010040
 			MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x40010040
 
 		>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qdl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qdl.dtsi
@@ -45,6 +45,10 @@
 		spi1 = &ecspi2;
 		spi2 = &ecspi3;
 		spi3 = &ecspi4;
+		usb0 = &usbotg;
+		usb1 = &usbh1;
+		usb2 = &usbh2;
+		usb3 = &usbh3;
 		usbphy0 = &usbphy1;
 		usbphy1 = &usbphy2;
 	};
@@ -69,16 +73,6 @@
 		};
 	};
 
-	tempmon: tempmon {
-		compatible = "fsl,imx6q-tempmon";
-		interrupt-parent = <&gpc>;
-		interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
-		fsl,tempmon = <&anatop>;
-		fsl,tempmon-data = <&ocotp>;
-		clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-		#thermal-sensor-cells = <0>;
-	};
-
 	ldb: ldb {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -156,7 +150,7 @@
 		interrupt-parent = <&gpc>;
 		ranges;
 
-		dma_apbh: dma-apbh@110000 {
+		dma_apbh: dma-controller@110000 {
 			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
 			reg = <0x00110000 0x2000>;
 			interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -169,7 +163,7 @@
 			clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
 		};
 
-		gpmi: gpmi-nand@112000 {
+		gpmi: nand-controller@112000 {
 			compatible = "fsl,imx6q-gpmi-nand";
 			reg = <0x00112000 0x2000>, <0x00114000 0x2000>;
 			reg-names = "gpmi-nand", "bch";
@@ -255,7 +249,7 @@
 			interrupt-parent = <&intc>;
 		};
 
-		L2: l2-cache@a02000 {
+		L2: cache-controller@a02000 {
 			compatible = "arm,pl310-cache";
 			reg = <0x00a02000 0x1000>;
 			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -294,7 +288,7 @@
 			status = "disabled";
 		};
 
-		aips-bus@2000000 { /* AIPS1 */
+		bus@2000000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -509,7 +503,7 @@
 			};
 
 			pwm1: pwm@2080000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x02080000 0x4000>;
 				interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
@@ -520,7 +514,7 @@
 			};
 
 			pwm2: pwm@2084000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x02084000 0x4000>;
 				interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
@@ -531,7 +525,7 @@
 			};
 
 			pwm3: pwm@2088000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x02088000 0x4000>;
 				interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -542,7 +536,7 @@
 			};
 
 			pwm4: pwm@208c000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x0208c000 0x4000>;
 				interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
@@ -559,7 +553,7 @@
 				clocks = <&clks IMX6QDL_CLK_CAN1_IPG>,
 					 <&clks IMX6QDL_CLK_CAN1_SERIAL>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x34 28 0x10 17>;
+				fsl,stop-mode = <&gpr 0x34 28>;
 				status = "disabled";
 			};
 
@@ -570,11 +564,11 @@
 				clocks = <&clks IMX6QDL_CLK_CAN2_IPG>,
 					 <&clks IMX6QDL_CLK_CAN2_SERIAL>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x34 29 0x10 18>;
+				fsl,stop-mode = <&gpr 0x34 29>;
 				status = "disabled";
 			};
 
-			gpt: gpt@2098000 {
+			gpt: timer@2098000 {
 				compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
 				reg = <0x02098000 0x4000>;
 				interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -661,7 +655,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			kpp: kpp@20b8000 {
+			kpp: keypad@20b8000 {
 				compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
 				reg = <0x020b8000 0x4000>;
 				interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -669,14 +663,14 @@
 				status = "disabled";
 			};
 
-			wdog1: wdog@20bc000 {
+			wdog1: watchdog@20bc000 {
 				compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
 				reg = <0x020bc000 0x4000>;
 				interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6QDL_CLK_IPG>;
 			};
 
-			wdog2: wdog@20c0000 {
+			wdog2: watchdog@20c0000 {
 				compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
 				reg = <0x020c0000 0x4000>;
 				interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -684,7 +678,7 @@
 				status = "disabled";
 			};
 
-			clks: ccm@20c4000 {
+			clks: clock-controller@20c4000 {
 				compatible = "fsl,imx6q-ccm";
 				reg = <0x020c4000 0x4000>;
 				interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -766,7 +760,7 @@
 					regulator-name = "vddpu";
 					regulator-min-microvolt = <725000>;
 					regulator-max-microvolt = <1450000>;
-					regulator-enable-ramp-delay = <150>;
+					regulator-enable-ramp-delay = <380>;
 					anatop-reg-offset = <0x140>;
 					anatop-vol-bit-shift = <9>;
 					anatop-vol-bit-width = <5>;
@@ -794,6 +788,17 @@
 					anatop-min-voltage = <725000>;
 					anatop-max-voltage = <1450000>;
 				};
+
+				tempmon: tempmon {
+					compatible = "fsl,imx6q-tempmon";
+					interrupt-parent = <&gpc>;
+					interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
+					fsl,tempmon = <&anatop>;
+					nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
+					nvmem-cell-names = "calib", "temp_grade";
+					clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+					#thermal-sensor-cells = <0>;
+				};
 			};
 
 			usbphy1: usbphy@20c9000 {
@@ -857,7 +862,7 @@
 				interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			src: src@20d8000 {
+			src: reset-controller@20d8000 {
 				compatible = "fsl,imx6q-src", "fsl,imx51-src";
 				reg = <0x020d8000 0x4000>;
 				interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -870,8 +875,7 @@
 				reg = <0x020dc000 0x4000>;
 				interrupt-controller;
 				#interrupt-cells = <3>;
-				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
-					     <0 90 IRQ_TYPE_LEVEL_HIGH>;
+				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-parent = <&intc>;
 				clocks = <&clks IMX6QDL_CLK_IPG>;
 				clock-names = "ipg";
@@ -908,7 +912,7 @@
 				};
 			};
 
-			iomuxc: iomuxc@20e0000 {
+			iomuxc: pinctrl@20e0000 {
 				compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
 				reg = <0x20e0000 0x4000>;
 			};
@@ -935,14 +939,14 @@
 			};
 		};
 
-		aips-bus@2100000 { /* AIPS2 */
+		bus@2100000 { /* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			reg = <0x02100000 0x100000>;
 			ranges;
 
-			crypto: caam@2100000 {
+			crypto: crypto@2100000 {
 				compatible = "fsl,sec-v4.0";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -954,13 +958,13 @@
 					 <&clks IMX6QDL_CLK_EIM_SLOW>;
 				clock-names = "mem", "aclk", "ipg", "emi_slow";
 
-				sec_jr0: jr0@1000 {
+				sec_jr0: jr@1000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x1000 0x1000>;
 					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
 				};
 
-				sec_jr1: jr1@2000 {
+				sec_jr1: jr@2000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x2000 0x1000>;
 					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
@@ -1039,13 +1043,13 @@
 				compatible = "fsl,imx6q-fec";
 				reg = <0x02188000 0x4000>;
 				interrupt-names = "int0", "pps";
-				interrupts-extended =
-					<&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
-					<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+				interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
+					     <0 119 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6QDL_CLK_ENET>,
 					 <&clks IMX6QDL_CLK_ENET>,
 					 <&clks IMX6QDL_CLK_ENET_REF>;
 				clock-names = "ipg", "ahb", "ptp";
+				fsl,stop-mode = <&gpr 0x34 27>;
 				status = "disabled";
 			};
 
@@ -1056,7 +1060,7 @@
 					     <0 126 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			usdhc1: usdhc@2190000 {
+			usdhc1: mmc@2190000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x02190000 0x4000>;
 				interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -1068,7 +1072,7 @@
 				status = "disabled";
 			};
 
-			usdhc2: usdhc@2194000 {
+			usdhc2: mmc@2194000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x02194000 0x4000>;
 				interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -1080,7 +1084,7 @@
 				status = "disabled";
 			};
 
-			usdhc3: usdhc@2198000 {
+			usdhc3: mmc@2198000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x02198000 0x4000>;
 				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -1092,7 +1096,7 @@
 				status = "disabled";
 			};
 
-			usdhc4: usdhc@219c000 {
+			usdhc4: mmc@219c000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x0219c000 0x4000>;
 				interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -1161,10 +1165,24 @@
 				status = "disabled";
 			};
 
-			ocotp: ocotp@21bc000 {
+			ocotp: efuse@21bc000 {
 				compatible = "fsl,imx6q-ocotp", "syscon";
 				reg = <0x021bc000 0x4000>;
 				clocks = <&clks IMX6QDL_CLK_IIM>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				cpu_speed_grade: speed-grade@10 {
+					reg = <0x10 4>;
+				};
+
+				tempmon_calib: calib@38 {
+					reg = <0x38 4>;
+				};
+
+				tempmon_temp_grade: temp-grade@20 {
+					reg = <0x20 4>;
+				};
 			};
 
 			tzasc@21d0000 { /* TZASC1 */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6qp.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6qp.dtsi
@@ -9,16 +9,22 @@
 		ocram2: sram@940000 {
 			compatible = "mmio-sram";
 			reg = <0x00940000 0x20000>;
+			ranges = <0 0x00940000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
 		ocram3: sram@960000 {
 			compatible = "mmio-sram";
 			reg = <0x00960000 0x20000>;
+			ranges = <0 0x00960000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
-		aips-bus@2100000 {
+		bus@2100000 {
 			pre1: pre@21c8000 {
 				compatible = "fsl,imx6qp-pre";
 				reg = <0x021c8000 0x1000>;
@@ -77,7 +83,6 @@
 };
 
 &fec {
-	/delete-property/interrupts-extended;
 	interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
 		     <0 119 IRQ_TYPE_LEVEL_HIGH>;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sl-evk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sl-evk.dts
@@ -575,6 +575,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
@@ -584,10 +585,6 @@
 	vin-supply = <&sw2_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&sw2_reg>;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sl.dtsi
@@ -39,6 +39,9 @@
 		spi1 = &ecspi2;
 		spi2 = &ecspi3;
 		spi3 = &ecspi4;
+		usb0 = &usbotg1;
+		usb1 = &usbotg2;
+		usb2 = &usbh;
 		usbphy0 = &usbphy1;
 		usbphy1 = &usbphy2;
 	};
@@ -74,6 +77,8 @@
 			arm-supply = <&reg_arm>;
 			pu-supply = <&reg_pu>;
 			soc-supply = <&reg_soc>;
+			nvmem-cells = <&cpu_speed_grade>;
+			nvmem-cell-names = "speed_grade";
 		};
 	};
 
@@ -91,15 +96,6 @@
 		};
 	};
 
-	tempmon: tempmon {
-		compatible = "fsl,imx6q-tempmon";
-		interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-parent = <&gpc>;
-		fsl,tempmon = <&anatop>;
-		fsl,tempmon-data = <&ocotp>;
-		clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
-	};
-
 	pmu {
 		compatible = "arm,cortex-a9-pmu";
 		interrupt-parent = <&gpc>;
@@ -121,6 +117,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6SL_CLK_OCRAM>;
 		};
 
@@ -133,7 +132,7 @@
 			interrupt-parent = <&intc>;
 		};
 
-		L2: l2-cache@a02000 {
+		L2: cache-controller@a02000 {
 			compatible = "arm,pl310-cache";
 			reg = <0x00a02000 0x1000>;
 			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -143,7 +142,7 @@
 			arm,data-latency = <4 2 3>;
 		};
 
-		aips1: aips-bus@2000000 {
+		aips1: bus@2000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -341,7 +340,7 @@
 			};
 
 			pwm1: pwm@2080000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
 				reg = <0x02080000 0x4000>;
 				interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
@@ -351,7 +350,7 @@
 			};
 
 			pwm2: pwm@2084000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
 				reg = <0x02084000 0x4000>;
 				interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
@@ -361,7 +360,7 @@
 			};
 
 			pwm3: pwm@2088000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
 				reg = <0x02088000 0x4000>;
 				interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -371,7 +370,7 @@
 			};
 
 			pwm4: pwm@208c000 {
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
 				reg = <0x0208c000 0x4000>;
 				interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
@@ -380,7 +379,7 @@
 				clock-names = "ipg", "per";
 			};
 
-			gpt: gpt@2098000 {
+			gpt: timer@2098000 {
 				compatible = "fsl,imx6sl-gpt";
 				reg = <0x02098000 0x4000>;
 				interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -491,7 +490,7 @@
 					      <&iomuxc 21 161 1>;
 			};
 
-			kpp: kpp@20b8000 {
+			kpp: keypad@20b8000 {
 				compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
 				reg = <0x020b8000 0x4000>;
 				interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -499,14 +498,14 @@
 				status = "disabled";
 			};
 
-			wdog1: wdog@20bc000 {
+			wdog1: watchdog@20bc000 {
 				compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
 				reg = <0x020bc000 0x4000>;
 				interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6SL_CLK_IPG>;
 			};
 
-			wdog2: wdog@20c0000 {
+			wdog2: watchdog@20c0000 {
 				compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
 				reg = <0x020c0000 0x4000>;
 				interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -514,7 +513,7 @@
 				status = "disabled";
 			};
 
-			clks: ccm@20c4000 {
+			clks: clock-controller@20c4000 {
 				compatible = "fsl,imx6sl-ccm";
 				reg = <0x020c4000 0x4000>;
 				interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -525,7 +524,7 @@
 			anatop: anatop@20c8000 {
 				compatible = "fsl,imx6sl-anatop",
 					     "fsl,imx6q-anatop",
-					     "syscon", "simple-bus";
+					     "syscon", "simple-mfd";
 				reg = <0x020c8000 0x1000>;
 				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
 					     <0 54 IRQ_TYPE_LEVEL_HIGH>,
@@ -625,6 +624,16 @@
 					anatop-min-voltage = <725000>;
 					anatop-max-voltage = <1450000>;
 				};
+
+				tempmon: tempmon {
+					compatible = "fsl,imx6q-tempmon";
+					interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
+					interrupt-parent = <&gpc>;
+					fsl,tempmon = <&anatop>;
+					nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
+					nvmem-cell-names = "calib", "temp_grade";
+					clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
+				};
 			};
 
 			usbphy1: usbphy@20c9000 {
@@ -675,7 +684,7 @@
 				interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			src: src@20d8000 {
+			src: reset-controller@20d8000 {
 				compatible = "fsl,imx6sl-src", "fsl,imx51-src";
 				reg = <0x020d8000 0x4000>;
 				interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -728,7 +737,7 @@
 				reg = <0x020e0000 0x38>;
 			};
 
-			iomuxc: iomuxc@20e0000 {
+			iomuxc: pinctrl@20e0000 {
 				compatible = "fsl,imx6sl-iomuxc";
 				reg = <0x020e0000 0x4000>;
 			};
@@ -777,7 +786,7 @@
 				power-domains = <&pd_disp>;
 			};
 
-			dcp: dcp@20fc000 {
+			dcp: crypto@20fc000 {
 				compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
 				reg = <0x020fc000 0x4000>;
 				interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
@@ -786,7 +795,7 @@
 			};
 		};
 
-		aips2: aips-bus@2100000 {
+		aips2: bus@2100000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -851,7 +860,7 @@
 				status = "disabled";
 			};
 
-			usdhc1: usdhc@2190000 {
+			usdhc1: mmc@2190000 {
 				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
 				reg = <0x02190000 0x4000>;
 				interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -863,7 +872,7 @@
 				status = "disabled";
 			};
 
-			usdhc2: usdhc@2194000 {
+			usdhc2: mmc@2194000 {
 				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
 				reg = <0x02194000 0x4000>;
 				interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -875,7 +884,7 @@
 				status = "disabled";
 			};
 
-			usdhc3: usdhc@2198000 {
+			usdhc3: mmc@2198000 {
 				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
 				reg = <0x02198000 0x4000>;
 				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -887,7 +896,7 @@
 				status = "disabled";
 			};
 
-			usdhc4: usdhc@219c000 {
+			usdhc4: mmc@219c000 {
 				compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
 				reg = <0x0219c000 0x4000>;
 				interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -936,8 +945,10 @@
 			};
 
 			rngb: rngb@21b4000 {
+				compatible = "fsl,imx6sl-rngb", "fsl,imx25-rngb";
 				reg = <0x021b4000 0x4000>;
 				interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clks IMX6SL_CLK_DUMMY>;
 			};
 
 			weim: weim@21b8000 {
@@ -949,10 +960,24 @@
 				status = "disabled";
 			};
 
-			ocotp: ocotp@21bc000 {
+			ocotp: efuse@21bc000 {
 				compatible = "fsl,imx6sl-ocotp", "syscon";
 				reg = <0x021bc000 0x4000>;
 				clocks = <&clks IMX6SL_CLK_OCOTP>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				cpu_speed_grade: speed-grade@10 {
+					reg = <0x10 4>;
+				};
+
+				tempmon_calib: calib@38 {
+					reg = <0x38 4>;
+				};
+
+				tempmon_temp_grade: temp-grade@20 {
+					reg = <0x20 4>;
+				};
 			};
 
 			audmux: audmux@21d8000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sll-evk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sll-evk.dts
@@ -260,15 +260,12 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
 };
 
-&reg_3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &snvs_poweroff {
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sll.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sll.dtsi
@@ -36,6 +36,8 @@
 		spi1 = &ecspi2;
 		spi3 = &ecspi3;
 		spi4 = &ecspi4;
+		usb0 = &usbotg1;
+		usb1 = &usbotg2;
 		usbphy0 = &usbphy1;
 		usbphy1 = &usbphy2;
 	};
@@ -49,20 +51,18 @@
 			device_type = "cpu";
 			reg = <0>;
 			next-level-cache = <&L2>;
-			operating-points = <
+			operating-points =
 				/* kHz    uV */
-				996000  1275000
-				792000  1175000
-				396000  1075000
-				198000	975000
-			>;
-			fsl,soc-operating-points = <
+				<996000  1275000>,
+				<792000  1175000>,
+				<396000  1075000>,
+				<198000	  975000>;
+			fsl,soc-operating-points =
 				/* ARM kHz      SOC-PU uV */
-				996000          1175000
-				792000          1175000
-				396000          1175000
-				198000		1175000
-			>;
+				<996000         1175000>,
+				<792000         1175000>,
+				<396000         1175000>,
+				<198000		1175000>;
 			clock-latency = <61036>; /* two CLK32 periods */
 			#cooling-cells = <2>;
 			clocks = <&clks IMX6SLL_CLK_ARM>,
@@ -72,6 +72,8 @@
 				 <&clks IMX6SLL_CLK_PLL1_SYS>;
 			clock-names = "arm", "pll2_pfd2_396m", "step",
 				      "pll1_sw", "pll1_sys";
+			nvmem-cells = <&cpu_speed_grade>;
+			nvmem-cell-names = "speed_grade";
 		};
 	};
 
@@ -103,16 +105,6 @@
 		clock-output-names = "ipp_di1";
 	};
 
-	tempmon: temperature-sensor {
-		compatible = "fsl,imx6sll-tempmon", "fsl,imx6sx-tempmon";
-		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-parent = <&gpc>;
-		fsl,tempmon = <&anatop>;
-		nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
-		nvmem-cell-names = "calib", "temp_grade";
-		clocks = <&clks IMX6SLL_CLK_PLL3_USB_OTG>;
-	};
-
 	soc {
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -123,6 +115,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 
 		intc: interrupt-controller@a01000 {
@@ -134,7 +129,7 @@
 			interrupt-parent = <&intc>;
 		};
 
-		L2: l2-cache@a02000 {
+		L2: cache-controller@a02000 {
 			compatible = "arm,pl310-cache";
 			reg = <0x00a02000 0x1000>;
 			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -144,7 +139,7 @@
 			arm,data-latency = <4 2 3>;
 		};
 
-		aips1: aips-bus@2000000 {
+		aips1: bus@2000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -269,7 +264,7 @@
 					status = "disabled";
 				};
 
-				ssi1: ssi-controller@2028000 {
+				ssi1: ssi@2028000 {
 					compatible = "fsl,imx6sl-ssi", "fsl,imx51-ssi";
 					reg = <0x02028000 0x4000>;
 					interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
@@ -282,7 +277,7 @@
 					status = "disabled";
 				};
 
-				ssi2: ssi-controller@202c000 {
+				ssi2: ssi@202c000 {
 					compatible = "fsl,imx6sl-ssi", "fsl,imx51-ssi";
 					reg = <0x0202c000 0x4000>;
 					interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
@@ -295,7 +290,7 @@
 					status = "disabled";
 				};
 
-				ssi3: ssi-controller@2030000 {
+				ssi3: ssi@2030000 {
 					compatible = "fsl,imx6sl-ssi", "fsl,imx51-ssi";
 					reg = <0x02030000 0x4000>;
 					interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
@@ -329,7 +324,7 @@
 				clocks = <&clks IMX6SLL_CLK_PWM1>,
 					 <&clks IMX6SLL_CLK_PWM1>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm2: pwm@2084000 {
@@ -339,7 +334,7 @@
 				clocks = <&clks IMX6SLL_CLK_PWM2>,
 					 <&clks IMX6SLL_CLK_PWM2>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm3: pwm@2088000 {
@@ -349,7 +344,7 @@
 				clocks = <&clks IMX6SLL_CLK_PWM3>,
 					 <&clks IMX6SLL_CLK_PWM3>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm4: pwm@208c000 {
@@ -359,7 +354,7 @@
 				clocks = <&clks IMX6SLL_CLK_PWM4>,
 					 <&clks IMX6SLL_CLK_PWM4>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			gpt1: timer@2098000 {
@@ -507,7 +502,7 @@
 			anatop: anatop@20c8000 {
 				compatible = "fsl,imx6sll-anatop",
 					     "fsl,imx6q-anatop",
-					     "syscon", "simple-bus";
+					     "syscon", "simple-mfd";
 				reg = <0x020c8000 0x4000>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
@@ -529,6 +524,16 @@
 					anatop-max-voltage = <3400000>;
 					anatop-enable-bit = <0>;
 				};
+
+				tempmon: temperature-sensor {
+					compatible = "fsl,imx6sll-tempmon", "fsl,imx6sx-tempmon";
+					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+					interrupt-parent = <&gpc>;
+					fsl,tempmon = <&anatop>;
+					nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
+					nvmem-cell-names = "calib", "temp_grade";
+					clocks = <&clks IMX6SLL_CLK_PLL3_USB_OTG>;
+				};
 			};
 
 			usbphy1: usb-phy@20c9000 {
@@ -547,7 +552,7 @@
 				reg = <0x020ca000 0x1000>;
 				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6SLL_CLK_USBPHY2>;
-				phy-reg_3p0-supply = <&reg_3p0>;
+				phy-3p0-supply = <&reg_3p0>;
 				fsl,anatop = <&anatop>;
 			};
 
@@ -643,7 +648,7 @@
 				status = "disabled";
 			};
 
-			dcp: dcp@20fc000 {
+			dcp: crypto@20fc000 {
 				compatible = "fsl,imx28-dcp";
 				reg = <0x020fc000 0x4000>;
 				interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
@@ -654,7 +659,7 @@
 			};
 		};
 
-		aips2: aips-bus@2100000 {
+		aips2: bus@2100000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -775,13 +780,17 @@
 				clocks = <&clks IMX6SLL_CLK_MMDC_P0_IPG>;
 			};
 
-			ocotp: ocotp-ctrl@21bc000 {
+			ocotp: efuse@21bc000 {
 				#address-cells = <1>;
 				#size-cells = <1>;
 				compatible = "fsl,imx6sll-ocotp", "syscon";
 				reg = <0x021bc000 0x4000>;
 				clocks = <&clks IMX6SLL_CLK_OCOTP>;
 
+				cpu_speed_grade: speed-grade@10 {
+					reg = <0x10 4>;
+				};
+
 				tempmon_calib: calib@38 {
 					reg = <0x38 4>;
 				};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
@@ -229,6 +229,7 @@
 };
 
 &pwm4 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	status = "okay";
@@ -484,31 +485,31 @@
 
 	pinctrl_uart1: uart1grp {
 		fsl,pins = <
-			MX6SX_PAD_GPIO1_IO04__UART1_TX		0x1b0b1
-			MX6SX_PAD_GPIO1_IO05__UART1_RX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX		0x1b0b1
 		>;
 	};
 
 	pinctrl_uart2: uart2grp {
 		fsl,pins = <
-			MX6SX_PAD_GPIO1_IO06__UART2_TX		0x1b0b1
-			MX6SX_PAD_GPIO1_IO07__UART2_RX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX		0x1b0b1
 		>;
 	};
 
 	pinctrl_uart3: uart3grp {
 		fsl,pins = <
-			MX6SX_PAD_QSPI1B_SS0_B__UART3_TX	0x1b0b1
-			MX6SX_PAD_QSPI1B_SCLK__UART3_RX		0x1b0b1
+			MX6SX_PAD_QSPI1B_SS0_B__UART3_DCE_TX		0x1b0b1
+			MX6SX_PAD_QSPI1B_SCLK__UART3_DCE_RX		0x1b0b1
 		>;
 	};
 
 	pinctrl_uart5: uart5grp {
 		fsl,pins = <
-			MX6SX_PAD_KEY_COL3__UART5_TX		0x1b0b1
-			MX6SX_PAD_KEY_ROW3__UART5_RX		0x1b0b1
-			MX6SX_PAD_SD3_DATA6__UART3_RTS_B	0x1b0b1
-			MX6SX_PAD_SD3_DATA7__UART3_CTS_B	0x1b0b1
+			MX6SX_PAD_KEY_COL3__UART5_DCE_TX		0x1b0b1
+			MX6SX_PAD_KEY_ROW3__UART5_DCE_RX		0x1b0b1
+			MX6SX_PAD_SD3_DATA6__UART3_DCE_RTS		0x1b0b1
+			MX6SX_PAD_SD3_DATA7__UART3_DCE_CTS		0x1b0b1
 		>;
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-pinfunc.h
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-pinfunc.h
@@ -42,8 +42,8 @@
 #define MX6SX_PAD_GPIO1_IO03__GPIO1_IO_3                          0x0020 0x0368 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO03__CCM_PLL3_BYP                        0x0020 0x0368 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO03__PHY_TCK                             0x0020 0x0368 0x0000 0x7 0x0
-#define MX6SX_PAD_GPIO1_IO04__UART1_RX                            0x0024 0x036C 0x0830 0x0 0x0
-#define MX6SX_PAD_GPIO1_IO04__UART1_TX                            0x0024 0x036C 0x0000 0x0 0x0
+#define MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX                        0x0024 0x036C 0x0000 0x0 0x0
+#define MX6SX_PAD_GPIO1_IO04__UART1_DTE_RX                        0x0024 0x036C 0x0830 0x0 0x0
 #define MX6SX_PAD_GPIO1_IO04__USDHC2_RESET_B                      0x0024 0x036C 0x0000 0x1 0x0
 #define MX6SX_PAD_GPIO1_IO04__ENET1_MDC                           0x0024 0x036C 0x0000 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO04__OSC32K_32K_OUT                      0x0024 0x036C 0x0000 0x3 0x0
@@ -51,8 +51,8 @@
 #define MX6SX_PAD_GPIO1_IO04__GPIO1_IO_4                          0x0024 0x036C 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO04__CCM_PLL2_BYP                        0x0024 0x036C 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO04__PHY_TMS                             0x0024 0x036C 0x0000 0x7 0x0
-#define MX6SX_PAD_GPIO1_IO05__UART1_RX                            0x0028 0x0370 0x0830 0x0 0x1
-#define MX6SX_PAD_GPIO1_IO05__UART1_TX                            0x0028 0x0370 0x0000 0x0 0x0
+#define MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX                        0x0028 0x0370 0x0830 0x0 0x1
+#define MX6SX_PAD_GPIO1_IO05__UART1_DTE_TX                        0x0028 0x0370 0x0000 0x0 0x0
 #define MX6SX_PAD_GPIO1_IO05__USDHC2_VSELECT                      0x0028 0x0370 0x0000 0x1 0x0
 #define MX6SX_PAD_GPIO1_IO05__ENET1_MDIO                          0x0028 0x0370 0x0764 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO05__ASRC_ASRC_EXT_CLK                   0x0028 0x0370 0x0000 0x3 0x0
@@ -60,21 +60,23 @@
 #define MX6SX_PAD_GPIO1_IO05__GPIO1_IO_5                          0x0028 0x0370 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO05__SRC_TESTER_ACK                      0x0028 0x0370 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO05__PHY_TDO                             0x0028 0x0370 0x0000 0x7 0x0
-#define MX6SX_PAD_GPIO1_IO06__UART2_RX                            0x002C 0x0374 0x0838 0x0 0x0
-#define MX6SX_PAD_GPIO1_IO06__UART2_TX                            0x002C 0x0374 0x0000 0x0 0x0
+#define MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX                        0x002C 0x0374 0x0000 0x0 0x0
+#define MX6SX_PAD_GPIO1_IO06__UART2_DTE_RX                        0x002C 0x0374 0x0838 0x0 0x0
 #define MX6SX_PAD_GPIO1_IO06__USDHC2_CD_B                         0x002C 0x0374 0x086C 0x1 0x1
 #define MX6SX_PAD_GPIO1_IO06__ENET2_MDC                           0x002C 0x0374 0x0000 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO06__CSI1_MCLK                           0x002C 0x0374 0x0000 0x3 0x0
-#define MX6SX_PAD_GPIO1_IO06__UART1_RTS_B                         0x002C 0x0374 0x082C 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO06__UART1_DCE_RTS                       0x002C 0x0374 0x082C 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO06__UART1_DTE_CTS                       0x002C 0x0374 0x0000 0x4 0x0
 #define MX6SX_PAD_GPIO1_IO06__GPIO1_IO_6                          0x002C 0x0374 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO06__SRC_ANY_PU_RESET                    0x002C 0x0374 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO06__OCOTP_CTRL_WRAPPER_FUSE_LATCHED     0x002C 0x0374 0x0000 0x7 0x0
-#define MX6SX_PAD_GPIO1_IO07__UART2_RX                            0x0030 0x0378 0x0838 0x0 0x1
-#define MX6SX_PAD_GPIO1_IO07__UART2_TX                            0x0030 0x0378 0x0000 0x0 0x0
+#define MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX                        0x0030 0x0378 0x0838 0x0 0x1
+#define MX6SX_PAD_GPIO1_IO07__UART2_DTE_TX                        0x0030 0x0378 0x0000 0x0 0x0
 #define MX6SX_PAD_GPIO1_IO07__USDHC2_WP                           0x0030 0x0378 0x0870 0x1 0x1
 #define MX6SX_PAD_GPIO1_IO07__ENET2_MDIO                          0x0030 0x0378 0x0770 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO07__AUDMUX_MCLK                         0x0030 0x0378 0x0000 0x3 0x0
-#define MX6SX_PAD_GPIO1_IO07__UART1_CTS_B                         0x0030 0x0378 0x0000 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO07__UART1_DCE_CTS                       0x0030 0x0378 0x0000 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO07__UART1_DTE_RTS                       0x0030 0x0378 0x082C 0x4 0x1
 #define MX6SX_PAD_GPIO1_IO07__GPIO1_IO_7                          0x0030 0x0378 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO07__SRC_EARLY_RESET                     0x0030 0x0378 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO07__DCIC2_OUT                           0x0030 0x0378 0x0000 0x7 0x0
@@ -83,7 +85,8 @@
 #define MX6SX_PAD_GPIO1_IO08__WDOG1_WDOG_B                        0x0034 0x037C 0x0000 0x1 0x0
 #define MX6SX_PAD_GPIO1_IO08__SDMA_EXT_EVENT_0                    0x0034 0x037C 0x081C 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO08__CCM_PMIC_RDY                        0x0034 0x037C 0x069C 0x3 0x1
-#define MX6SX_PAD_GPIO1_IO08__UART2_RTS_B                         0x0034 0x037C 0x0834 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO08__UART2_DCE_RTS                       0x0034 0x037C 0x0834 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO08__UART2_DTE_CTS                       0x0034 0x037C 0x0000 0x4 0x0
 #define MX6SX_PAD_GPIO1_IO08__GPIO1_IO_8                          0x0034 0x037C 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO08__SRC_SYSTEM_RESET                    0x0034 0x037C 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO08__DCIC1_OUT                           0x0034 0x037C 0x0000 0x7 0x0
@@ -92,7 +95,8 @@
 #define MX6SX_PAD_GPIO1_IO09__WDOG2_WDOG_B                        0x0038 0x0380 0x0000 0x1 0x0
 #define MX6SX_PAD_GPIO1_IO09__SDMA_EXT_EVENT_1                    0x0038 0x0380 0x0820 0x2 0x0
 #define MX6SX_PAD_GPIO1_IO09__CCM_OUT0                            0x0038 0x0380 0x0000 0x3 0x0
-#define MX6SX_PAD_GPIO1_IO09__UART2_CTS_B                         0x0038 0x0380 0x0000 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO09__UART2_DCE_CTS                       0x0038 0x0380 0x0000 0x4 0x0
+#define MX6SX_PAD_GPIO1_IO09__UART2_DTE_RTS                       0x0038 0x0380 0x0834 0x4 0x1
 #define MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9                          0x0038 0x0380 0x0000 0x5 0x0
 #define MX6SX_PAD_GPIO1_IO09__SRC_INT_BOOT                        0x0038 0x0380 0x0000 0x6 0x0
 #define MX6SX_PAD_GPIO1_IO09__OBSERVE_MUX_OUT_4                   0x0038 0x0380 0x0000 0x7 0x0
@@ -177,8 +181,8 @@
 #define MX6SX_PAD_CSI_DATA04__ESAI_TX1                            0x005C 0x03A4 0x0794 0x1 0x1
 #define MX6SX_PAD_CSI_DATA04__SPDIF_OUT                           0x005C 0x03A4 0x0000 0x2 0x0
 #define MX6SX_PAD_CSI_DATA04__KPP_COL_6                           0x005C 0x03A4 0x07CC 0x3 0x0
-#define MX6SX_PAD_CSI_DATA04__UART6_RX                            0x005C 0x03A4 0x0858 0x4 0x0
-#define MX6SX_PAD_CSI_DATA04__UART6_TX                            0x005C 0x03A4 0x0000 0x4 0x0
+#define MX6SX_PAD_CSI_DATA04__UART6_DCE_RX                        0x005C 0x03A4 0x0858 0x4 0x0
+#define MX6SX_PAD_CSI_DATA04__UART6_DTE_TX                        0x005C 0x03A4 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_DATA04__GPIO1_IO_18                         0x005C 0x03A4 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_DATA04__WEIM_DATA_19                        0x005C 0x03A4 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_DATA04__PWM5_OUT                            0x005C 0x03A4 0x0000 0x7 0x0
@@ -188,8 +192,8 @@
 #define MX6SX_PAD_CSI_DATA05__ESAI_TX4_RX1                        0x0060 0x03A8 0x07A0 0x1 0x1
 #define MX6SX_PAD_CSI_DATA05__SPDIF_IN                            0x0060 0x03A8 0x0824 0x2 0x1
 #define MX6SX_PAD_CSI_DATA05__KPP_ROW_6                           0x0060 0x03A8 0x07D8 0x3 0x0
-#define MX6SX_PAD_CSI_DATA05__UART6_RX                            0x0060 0x03A8 0x0858 0x4 0x1
-#define MX6SX_PAD_CSI_DATA05__UART6_TX                            0x0060 0x03A8 0x0000 0x4 0x0
+#define MX6SX_PAD_CSI_DATA05__UART6_DCE_TX                        0x0060 0x03A8 0x0000 0x4 0x0
+#define MX6SX_PAD_CSI_DATA05__UART6_DTE_RX                        0x0060 0x03A8 0x0858 0x4 0x1
 #define MX6SX_PAD_CSI_DATA05__GPIO1_IO_19                         0x0060 0x03A8 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_DATA05__WEIM_DATA_18                        0x0060 0x03A8 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_DATA05__PWM6_OUT                            0x0060 0x03A8 0x0000 0x7 0x0
@@ -199,7 +203,8 @@
 #define MX6SX_PAD_CSI_DATA06__ESAI_TX2_RX3                        0x0064 0x03AC 0x0798 0x1 0x1
 #define MX6SX_PAD_CSI_DATA06__I2C4_SCL                            0x0064 0x03AC 0x07C0 0x2 0x2
 #define MX6SX_PAD_CSI_DATA06__KPP_COL_7                           0x0064 0x03AC 0x07D0 0x3 0x0
-#define MX6SX_PAD_CSI_DATA06__UART6_RTS_B                         0x0064 0x03AC 0x0854 0x4 0x0
+#define MX6SX_PAD_CSI_DATA06__UART6_DCE_RTS                       0x0064 0x03AC 0x0854 0x4 0x0
+#define MX6SX_PAD_CSI_DATA06__UART6_DTE_CTS                       0x0064 0x03AC 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_DATA06__GPIO1_IO_20                         0x0064 0x03AC 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_DATA06__WEIM_DATA_17                        0x0064 0x03AC 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_DATA06__DCIC2_OUT                           0x0064 0x03AC 0x0000 0x7 0x0
@@ -209,7 +214,8 @@
 #define MX6SX_PAD_CSI_DATA07__ESAI_TX3_RX2                        0x0068 0x03B0 0x079C 0x1 0x1
 #define MX6SX_PAD_CSI_DATA07__I2C4_SDA                            0x0068 0x03B0 0x07C4 0x2 0x2
 #define MX6SX_PAD_CSI_DATA07__KPP_ROW_7                           0x0068 0x03B0 0x07DC 0x3 0x0
-#define MX6SX_PAD_CSI_DATA07__UART6_CTS_B                         0x0068 0x03B0 0x0000 0x4 0x0
+#define MX6SX_PAD_CSI_DATA07__UART6_DCE_CTS                       0x0068 0x03B0 0x0000 0x4 0x0
+#define MX6SX_PAD_CSI_DATA07__UART6_DTE_RTS                       0x0068 0x03B0 0x0854 0x4 0x1
 #define MX6SX_PAD_CSI_DATA07__GPIO1_IO_21                         0x0068 0x03B0 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_DATA07__WEIM_DATA_16                        0x0068 0x03B0 0x0000 0x6 0x0
 #define MX6SX_PAD_CSI_DATA07__DCIC1_OUT                           0x0068 0x03B0 0x0000 0x7 0x0
@@ -218,7 +224,8 @@
 #define MX6SX_PAD_CSI_HSYNC__CSI1_HSYNC                           0x006C 0x03B4 0x0700 0x0 0x0
 #define MX6SX_PAD_CSI_HSYNC__ESAI_TX0                             0x006C 0x03B4 0x0790 0x1 0x1
 #define MX6SX_PAD_CSI_HSYNC__AUDMUX_AUD6_TXD                      0x006C 0x03B4 0x0678 0x2 0x1
-#define MX6SX_PAD_CSI_HSYNC__UART4_RTS_B                          0x006C 0x03B4 0x0844 0x3 0x2
+#define MX6SX_PAD_CSI_HSYNC__UART4_DCE_RTS                        0x006C 0x03B4 0x0844 0x3 0x2
+#define MX6SX_PAD_CSI_HSYNC__UART4_DTE_CTS                        0x006C 0x03B4 0x0000 0x3 0x0
 #define MX6SX_PAD_CSI_HSYNC__MQS_LEFT                             0x006C 0x03B4 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_HSYNC__GPIO1_IO_22                          0x006C 0x03B4 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_HSYNC__WEIM_DATA_25                         0x006C 0x03B4 0x0000 0x6 0x0
@@ -228,8 +235,8 @@
 #define MX6SX_PAD_CSI_MCLK__CSI1_MCLK                             0x0070 0x03B8 0x0000 0x0 0x0
 #define MX6SX_PAD_CSI_MCLK__ESAI_TX_HF_CLK                        0x0070 0x03B8 0x0784 0x1 0x1
 #define MX6SX_PAD_CSI_MCLK__OSC32K_32K_OUT                        0x0070 0x03B8 0x0000 0x2 0x0
-#define MX6SX_PAD_CSI_MCLK__UART4_RX                              0x0070 0x03B8 0x0848 0x3 0x2
-#define MX6SX_PAD_CSI_MCLK__UART4_TX                              0x0070 0x03B8 0x0000 0x3 0x0
+#define MX6SX_PAD_CSI_MCLK__UART4_DCE_RX                          0x0070 0x03B8 0x0848 0x3 0x2
+#define MX6SX_PAD_CSI_MCLK__UART4_DTE_TX                          0x0070 0x03B8 0x0000 0x3 0x0
 #define MX6SX_PAD_CSI_MCLK__ANATOP_32K_OUT                        0x0070 0x03B8 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_MCLK__GPIO1_IO_23                           0x0070 0x03B8 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_MCLK__WEIM_DATA_26                          0x0070 0x03B8 0x0000 0x6 0x0
@@ -239,8 +246,8 @@
 #define MX6SX_PAD_CSI_PIXCLK__CSI1_PIXCLK                         0x0074 0x03BC 0x0704 0x0 0x0
 #define MX6SX_PAD_CSI_PIXCLK__ESAI_RX_HF_CLK                      0x0074 0x03BC 0x0780 0x1 0x1
 #define MX6SX_PAD_CSI_PIXCLK__AUDMUX_MCLK                         0x0074 0x03BC 0x0000 0x2 0x0
-#define MX6SX_PAD_CSI_PIXCLK__UART4_RX                            0x0074 0x03BC 0x0848 0x3 0x3
-#define MX6SX_PAD_CSI_PIXCLK__UART4_TX                            0x0074 0x03BC 0x0000 0x3 0x0
+#define MX6SX_PAD_CSI_PIXCLK__UART4_DCE_TX                        0x0074 0x03BC 0x0000 0x3 0x0
+#define MX6SX_PAD_CSI_PIXCLK__UART4_DTE_RX                        0x0074 0x03BC 0x0848 0x3 0x3
 #define MX6SX_PAD_CSI_PIXCLK__ANATOP_24M_OUT                      0x0074 0x03BC 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_PIXCLK__GPIO1_IO_24                         0x0074 0x03BC 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_PIXCLK__WEIM_DATA_27                        0x0074 0x03BC 0x0000 0x6 0x0
@@ -250,7 +257,8 @@
 #define MX6SX_PAD_CSI_VSYNC__CSI1_VSYNC                           0x0078 0x03C0 0x0708 0x0 0x0
 #define MX6SX_PAD_CSI_VSYNC__ESAI_TX5_RX0                         0x0078 0x03C0 0x07A4 0x1 0x1
 #define MX6SX_PAD_CSI_VSYNC__AUDMUX_AUD6_RXD                      0x0078 0x03C0 0x0674 0x2 0x1
-#define MX6SX_PAD_CSI_VSYNC__UART4_CTS_B                          0x0078 0x03C0 0x0000 0x3 0x0
+#define MX6SX_PAD_CSI_VSYNC__UART4_DCE_CTS                        0x0078 0x03C0 0x0000 0x3 0x0
+#define MX6SX_PAD_CSI_VSYNC__UART4_DTE_RTS                        0x0078 0x03C0 0x0844 0x3 0x3
 #define MX6SX_PAD_CSI_VSYNC__MQS_RIGHT                            0x0078 0x03C0 0x0000 0x4 0x0
 #define MX6SX_PAD_CSI_VSYNC__GPIO1_IO_25                          0x0078 0x03C0 0x0000 0x5 0x0
 #define MX6SX_PAD_CSI_VSYNC__WEIM_DATA_24                         0x0078 0x03C0 0x0000 0x6 0x0
@@ -330,8 +338,8 @@
 #define MX6SX_PAD_ENET2_COL__ENET2_COL                            0x0094 0x03DC 0x0000 0x0 0x0
 #define MX6SX_PAD_ENET2_COL__ENET1_MDC                            0x0094 0x03DC 0x0000 0x1 0x0
 #define MX6SX_PAD_ENET2_COL__AUDMUX_AUD4_RXC                      0x0094 0x03DC 0x064C 0x2 0x1
-#define MX6SX_PAD_ENET2_COL__UART1_RX                             0x0094 0x03DC 0x0830 0x3 0x2
-#define MX6SX_PAD_ENET2_COL__UART1_TX                             0x0094 0x03DC 0x0000 0x3 0x0
+#define MX6SX_PAD_ENET2_COL__UART1_DCE_RX                         0x0094 0x03DC 0x0830 0x3 0x2
+#define MX6SX_PAD_ENET2_COL__UART1_DTE_TX                         0x0094 0x03DC 0x0000 0x3 0x0
 #define MX6SX_PAD_ENET2_COL__SPDIF_IN                             0x0094 0x03DC 0x0824 0x4 0x3
 #define MX6SX_PAD_ENET2_COL__GPIO2_IO_6                           0x0094 0x03DC 0x0000 0x5 0x0
 #define MX6SX_PAD_ENET2_COL__ANATOP_OTG1_ID                       0x0094 0x03DC 0x0624 0x6 0x1
@@ -341,8 +349,8 @@
 #define MX6SX_PAD_ENET2_CRS__ENET2_CRS                            0x0098 0x03E0 0x0000 0x0 0x0
 #define MX6SX_PAD_ENET2_CRS__ENET1_MDIO                           0x0098 0x03E0 0x0764 0x1 0x2
 #define MX6SX_PAD_ENET2_CRS__AUDMUX_AUD4_RXFS                     0x0098 0x03E0 0x0650 0x2 0x1
-#define MX6SX_PAD_ENET2_CRS__UART1_RX                             0x0098 0x03E0 0x0830 0x3 0x3
-#define MX6SX_PAD_ENET2_CRS__UART1_TX                             0x0098 0x03E0 0x0000 0x3 0x0
+#define MX6SX_PAD_ENET2_CRS__UART1_DCE_TX                         0x0098 0x03E0 0x0000 0x3 0x0
+#define MX6SX_PAD_ENET2_CRS__UART1_DTE_RX                         0x0098 0x03E0 0x0830 0x3 0x3
 #define MX6SX_PAD_ENET2_CRS__MLB_SIG                              0x0098 0x03E0 0x07F0 0x4 0x1
 #define MX6SX_PAD_ENET2_CRS__GPIO2_IO_7                           0x0098 0x03E0 0x0000 0x5 0x0
 #define MX6SX_PAD_ENET2_CRS__ANATOP_OTG2_ID                       0x0098 0x03E0 0x0628 0x6 0x1
@@ -352,7 +360,8 @@
 #define MX6SX_PAD_ENET2_RX_CLK__ENET2_RX_CLK                      0x009C 0x03E4 0x0774 0x0 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M                 0x009C 0x03E4 0x0000 0x1 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__I2C3_SCL                          0x009C 0x03E4 0x07B8 0x2 0x1
-#define MX6SX_PAD_ENET2_RX_CLK__UART1_RTS_B                       0x009C 0x03E4 0x082C 0x3 0x2
+#define MX6SX_PAD_ENET2_RX_CLK__UART1_DCE_RTS                     0x009C 0x03E4 0x082C 0x3 0x2
+#define MX6SX_PAD_ENET2_RX_CLK__UART1_DTE_CTS                     0x009C 0x03E4 0x0000 0x3 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__MLB_DATA                          0x009C 0x03E4 0x07EC 0x4 0x1
 #define MX6SX_PAD_ENET2_RX_CLK__GPIO2_IO_8                        0x009C 0x03E4 0x0000 0x5 0x0
 #define MX6SX_PAD_ENET2_RX_CLK__USB_OTG2_OC                       0x009C 0x03E4 0x085C 0x6 0x1
@@ -362,7 +371,8 @@
 #define MX6SX_PAD_ENET2_TX_CLK__ENET2_TX_CLK                      0x00A0 0x03E8 0x0000 0x0 0x0
 #define MX6SX_PAD_ENET2_TX_CLK__ENET2_REF_CLK2                    0x00A0 0x03E8 0x076C 0x1 0x1
 #define MX6SX_PAD_ENET2_TX_CLK__I2C3_SDA                          0x00A0 0x03E8 0x07BC 0x2 0x1
-#define MX6SX_PAD_ENET2_TX_CLK__UART1_CTS_B                       0x00A0 0x03E8 0x0000 0x3 0x0
+#define MX6SX_PAD_ENET2_TX_CLK__UART1_DCE_CTS                     0x00A0 0x03E8 0x0000 0x3 0x0
+#define MX6SX_PAD_ENET2_TX_CLK__UART1_DTE_RTS                     0x00A0 0x03E8 0x082C 0x3 0x3
 #define MX6SX_PAD_ENET2_TX_CLK__MLB_CLK                           0x00A0 0x03E8 0x07E8 0x4 0x1
 #define MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9                        0x00A0 0x03E8 0x0000 0x5 0x0
 #define MX6SX_PAD_ENET2_TX_CLK__USB_OTG2_PWR                      0x00A0 0x03E8 0x0000 0x6 0x0
@@ -371,7 +381,8 @@
 #define MX6SX_PAD_ENET2_TX_CLK__PCIE_CTRL_DEBUG_24                0x00A0 0x03E8 0x0000 0x9 0x0
 #define MX6SX_PAD_KEY_COL0__KPP_COL_0                             0x00A4 0x03EC 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_COL0__USDHC3_CD_B                           0x00A4 0x03EC 0x0000 0x1 0x0
-#define MX6SX_PAD_KEY_COL0__UART6_RTS_B                           0x00A4 0x03EC 0x0854 0x2 0x2
+#define MX6SX_PAD_KEY_COL0__UART6_DCE_RTS                         0x00A4 0x03EC 0x0854 0x2 0x2
+#define MX6SX_PAD_KEY_COL0__UART6_DTE_CTS                         0x00A4 0x03EC 0x0000 0x2 0x0
 #define MX6SX_PAD_KEY_COL0__ECSPI1_SCLK                           0x00A4 0x03EC 0x0710 0x3 0x0
 #define MX6SX_PAD_KEY_COL0__AUDMUX_AUD5_TXC                       0x00A4 0x03EC 0x066C 0x4 0x0
 #define MX6SX_PAD_KEY_COL0__GPIO2_IO_10                           0x00A4 0x03EC 0x0000 0x5 0x0
@@ -380,8 +391,8 @@
 #define MX6SX_PAD_KEY_COL0__VADC_DATA_0                           0x00A4 0x03EC 0x0000 0x8 0x0
 #define MX6SX_PAD_KEY_COL1__KPP_COL_1                             0x00A8 0x03F0 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_COL1__USDHC3_RESET_B                        0x00A8 0x03F0 0x0000 0x1 0x0
-#define MX6SX_PAD_KEY_COL1__UART6_RX                              0x00A8 0x03F0 0x0858 0x2 0x2
-#define MX6SX_PAD_KEY_COL1__UART6_TX                              0x00A8 0x03F0 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_COL1__UART6_DCE_TX                          0x00A8 0x03F0 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_COL1__UART6_DTE_RX                          0x00A8 0x03F0 0x0858 0x2 0x2
 #define MX6SX_PAD_KEY_COL1__ECSPI1_MISO                           0x00A8 0x03F0 0x0714 0x3 0x0
 #define MX6SX_PAD_KEY_COL1__AUDMUX_AUD5_TXFS                      0x00A8 0x03F0 0x0670 0x4 0x0
 #define MX6SX_PAD_KEY_COL1__GPIO2_IO_11                           0x00A8 0x03F0 0x0000 0x5 0x0
@@ -389,7 +400,8 @@
 #define MX6SX_PAD_KEY_COL1__SAI2_TX_SYNC                          0x00A8 0x03F0 0x0818 0x7 0x0
 #define MX6SX_PAD_KEY_COL2__KPP_COL_2                             0x00AC 0x03F4 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_COL2__USDHC4_CD_B                           0x00AC 0x03F4 0x0874 0x1 0x1
-#define MX6SX_PAD_KEY_COL2__UART5_RTS_B                           0x00AC 0x03F4 0x084C 0x2 0x2
+#define MX6SX_PAD_KEY_COL2__UART5_DCE_RTS                         0x00AC 0x03F4 0x084C 0x2 0x2
+#define MX6SX_PAD_KEY_COL2__UART5_DTE_CTS                         0x00AC 0x03F4 0x0000 0x2 0x0
 #define MX6SX_PAD_KEY_COL2__CAN1_TX                               0x00AC 0x03F4 0x0000 0x3 0x0
 #define MX6SX_PAD_KEY_COL2__CANFD_TX1                             0x00AC 0x03F4 0x0000 0x4 0x0
 #define MX6SX_PAD_KEY_COL2__GPIO2_IO_12                           0x00AC 0x03F4 0x0000 0x5 0x0
@@ -397,8 +409,8 @@
 #define MX6SX_PAD_KEY_COL2__ECSPI1_RDY                            0x00AC 0x03F4 0x0000 0x7 0x0
 #define MX6SX_PAD_KEY_COL3__KPP_COL_3                             0x00B0 0x03F8 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_COL3__USDHC4_LCTL                           0x00B0 0x03F8 0x0000 0x1 0x0
-#define MX6SX_PAD_KEY_COL3__UART5_RX                              0x00B0 0x03F8 0x0850 0x2 0x2
-#define MX6SX_PAD_KEY_COL3__UART5_TX                              0x00B0 0x03F8 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_COL3__UART5_DCE_TX                          0x00B0 0x03F8 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_COL3__UART5_DTE_RX                          0x00B0 0x03F8 0x0850 0x2 0x2
 #define MX6SX_PAD_KEY_COL3__CAN2_TX                               0x00B0 0x03F8 0x0000 0x3 0x0
 #define MX6SX_PAD_KEY_COL3__CANFD_TX2                             0x00B0 0x03F8 0x0000 0x4 0x0
 #define MX6SX_PAD_KEY_COL3__GPIO2_IO_13                           0x00B0 0x03F8 0x0000 0x5 0x0
@@ -414,7 +426,8 @@
 #define MX6SX_PAD_KEY_COL4__SAI2_RX_BCLK                          0x00B4 0x03FC 0x0808 0x7 0x0
 #define MX6SX_PAD_KEY_ROW0__KPP_ROW_0                             0x00B8 0x0400 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_ROW0__USDHC3_WP                             0x00B8 0x0400 0x0000 0x1 0x0
-#define MX6SX_PAD_KEY_ROW0__UART6_CTS_B                           0x00B8 0x0400 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW0__UART6_DCE_CTS                         0x00B8 0x0400 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW0__UART6_DTE_RTS                         0x00B8 0x0400 0x0854 0x2 0x3
 #define MX6SX_PAD_KEY_ROW0__ECSPI1_MOSI                           0x00B8 0x0400 0x0718 0x3 0x0
 #define MX6SX_PAD_KEY_ROW0__AUDMUX_AUD5_TXD                       0x00B8 0x0400 0x0660 0x4 0x0
 #define MX6SX_PAD_KEY_ROW0__GPIO2_IO_15                           0x00B8 0x0400 0x0000 0x5 0x0
@@ -423,8 +436,8 @@
 #define MX6SX_PAD_KEY_ROW0__GPU_IDLE                              0x00B8 0x0400 0x0000 0x8 0x0
 #define MX6SX_PAD_KEY_ROW1__KPP_ROW_1                             0x00BC 0x0404 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_ROW1__USDHC4_VSELECT                        0x00BC 0x0404 0x0000 0x1 0x0
-#define MX6SX_PAD_KEY_ROW1__UART6_RX                              0x00BC 0x0404 0x0858 0x2 0x3
-#define MX6SX_PAD_KEY_ROW1__UART6_TX                              0x00BC 0x0404 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW1__UART6_DCE_RX                          0x00BC 0x0404 0x0858 0x2 0x3
+#define MX6SX_PAD_KEY_ROW1__UART6_DTE_TX                          0x00BC 0x0404 0x0000 0x2 0x0
 #define MX6SX_PAD_KEY_ROW1__ECSPI1_SS0                            0x00BC 0x0404 0x071C 0x3 0x0
 #define MX6SX_PAD_KEY_ROW1__AUDMUX_AUD5_RXD                       0x00BC 0x0404 0x065C 0x4 0x0
 #define MX6SX_PAD_KEY_ROW1__GPIO2_IO_16                           0x00BC 0x0404 0x0000 0x5 0x0
@@ -433,7 +446,8 @@
 #define MX6SX_PAD_KEY_ROW1__M4_NMI                                0x00BC 0x0404 0x0000 0x8 0x0
 #define MX6SX_PAD_KEY_ROW2__KPP_ROW_2                             0x00C0 0x0408 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_ROW2__USDHC4_WP                             0x00C0 0x0408 0x0878 0x1 0x1
-#define MX6SX_PAD_KEY_ROW2__UART5_CTS_B                           0x00C0 0x0408 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW2__UART5_DCE_CTS                         0x00C0 0x0408 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW2__UART5_DTE_RTS                         0x00C0 0x0408 0x084C 0x2 0x3
 #define MX6SX_PAD_KEY_ROW2__CAN1_RX                               0x00C0 0x0408 0x068C 0x3 0x1
 #define MX6SX_PAD_KEY_ROW2__CANFD_RX1                             0x00C0 0x0408 0x0694 0x4 0x1
 #define MX6SX_PAD_KEY_ROW2__GPIO2_IO_17                           0x00C0 0x0408 0x0000 0x5 0x0
@@ -441,8 +455,8 @@
 #define MX6SX_PAD_KEY_ROW2__ECSPI1_SS3                            0x00C0 0x0408 0x0000 0x7 0x0
 #define MX6SX_PAD_KEY_ROW3__KPP_ROW_3                             0x00C4 0x040C 0x0000 0x0 0x0
 #define MX6SX_PAD_KEY_ROW3__USDHC3_LCTL                           0x00C4 0x040C 0x0000 0x1 0x0
-#define MX6SX_PAD_KEY_ROW3__UART5_RX                              0x00C4 0x040C 0x0850 0x2 0x3
-#define MX6SX_PAD_KEY_ROW3__UART5_TX                              0x00C4 0x040C 0x0000 0x2 0x0
+#define MX6SX_PAD_KEY_ROW3__UART5_DCE_RX                          0x00C4 0x040C 0x0850 0x2 0x3
+#define MX6SX_PAD_KEY_ROW3__UART5_DTE_TX                          0x00C4 0x040C 0x0000 0x2 0x0
 #define MX6SX_PAD_KEY_ROW3__CAN2_RX                               0x00C4 0x040C 0x0690 0x3 0x1
 #define MX6SX_PAD_KEY_ROW3__CANFD_RX2                             0x00C4 0x040C 0x0698 0x4 0x1
 #define MX6SX_PAD_KEY_ROW3__GPIO2_IO_18                           0x00C4 0x040C 0x0000 0x5 0x0
@@ -815,7 +829,8 @@
 #define MX6SX_PAD_NAND_DATA04__RAWNAND_DATA04                     0x0160 0x04A8 0x0000 0x0 0x0
 #define MX6SX_PAD_NAND_DATA04__USDHC2_DATA4                       0x0160 0x04A8 0x0000 0x1 0x0
 #define MX6SX_PAD_NAND_DATA04__QSPI2_B_SS1_B                      0x0160 0x04A8 0x0000 0x2 0x0
-#define MX6SX_PAD_NAND_DATA04__UART3_RTS_B                        0x0160 0x04A8 0x083C 0x3 0x0
+#define MX6SX_PAD_NAND_DATA04__UART3_DCE_RTS                      0x0160 0x04A8 0x083C 0x3 0x0
+#define MX6SX_PAD_NAND_DATA04__UART3_DTE_CTS                      0x0160 0x04A8 0x0000 0x3 0x0
 #define MX6SX_PAD_NAND_DATA04__AUDMUX_AUD4_RXFS                   0x0160 0x04A8 0x0650 0x4 0x0
 #define MX6SX_PAD_NAND_DATA04__GPIO4_IO_8                         0x0160 0x04A8 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA04__WEIM_AD_4                          0x0160 0x04A8 0x0000 0x6 0x0
@@ -825,7 +840,8 @@
 #define MX6SX_PAD_NAND_DATA05__RAWNAND_DATA05                     0x0164 0x04AC 0x0000 0x0 0x0
 #define MX6SX_PAD_NAND_DATA05__USDHC2_DATA5                       0x0164 0x04AC 0x0000 0x1 0x0
 #define MX6SX_PAD_NAND_DATA05__QSPI2_B_DQS                        0x0164 0x04AC 0x0000 0x2 0x0
-#define MX6SX_PAD_NAND_DATA05__UART3_CTS_B                        0x0164 0x04AC 0x0000 0x3 0x0
+#define MX6SX_PAD_NAND_DATA05__UART3_DCE_CTS                      0x0164 0x04AC 0x0000 0x3 0x0
+#define MX6SX_PAD_NAND_DATA05__UART3_DTE_RTS                      0x0164 0x04AC 0x083C 0x3 0x1
 #define MX6SX_PAD_NAND_DATA05__AUDMUX_AUD4_RXC                    0x0164 0x04AC 0x064C 0x4 0x0
 #define MX6SX_PAD_NAND_DATA05__GPIO4_IO_9                         0x0164 0x04AC 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA05__WEIM_AD_5                          0x0164 0x04AC 0x0000 0x6 0x0
@@ -835,8 +851,8 @@
 #define MX6SX_PAD_NAND_DATA06__RAWNAND_DATA06                     0x0168 0x04B0 0x0000 0x0 0x0
 #define MX6SX_PAD_NAND_DATA06__USDHC2_DATA6                       0x0168 0x04B0 0x0000 0x1 0x0
 #define MX6SX_PAD_NAND_DATA06__QSPI2_A_SS1_B                      0x0168 0x04B0 0x0000 0x2 0x0
-#define MX6SX_PAD_NAND_DATA06__UART3_RX                           0x0168 0x04B0 0x0840 0x3 0x0
-#define MX6SX_PAD_NAND_DATA06__UART3_TX                           0x0168 0x04B0 0x0000 0x3 0x0
+#define MX6SX_PAD_NAND_DATA06__UART3_DCE_RX                       0x0168 0x04B0 0x0840 0x3 0x0
+#define MX6SX_PAD_NAND_DATA06__UART3_DTE_TX                       0x0168 0x04B0 0x0000 0x3 0x0
 #define MX6SX_PAD_NAND_DATA06__PWM3_OUT                           0x0168 0x04B0 0x0000 0x4 0x0
 #define MX6SX_PAD_NAND_DATA06__GPIO4_IO_10                        0x0168 0x04B0 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA06__WEIM_AD_6                          0x0168 0x04B0 0x0000 0x6 0x0
@@ -846,8 +862,8 @@
 #define MX6SX_PAD_NAND_DATA07__RAWNAND_DATA07                     0x016C 0x04B4 0x0000 0x0 0x0
 #define MX6SX_PAD_NAND_DATA07__USDHC2_DATA7                       0x016C 0x04B4 0x0000 0x1 0x0
 #define MX6SX_PAD_NAND_DATA07__QSPI2_A_DQS                        0x016C 0x04B4 0x0000 0x2 0x0
-#define MX6SX_PAD_NAND_DATA07__UART3_RX                           0x016C 0x04B4 0x0840 0x3 0x1
-#define MX6SX_PAD_NAND_DATA07__UART3_TX                           0x016C 0x04B4 0x0000 0x3 0x0
+#define MX6SX_PAD_NAND_DATA07__UART3_DCE_TX                       0x016C 0x04B4 0x0000 0x3 0x0
+#define MX6SX_PAD_NAND_DATA07__UART3_DTE_RX                       0x016C 0x04B4 0x0840 0x3 0x1
 #define MX6SX_PAD_NAND_DATA07__PWM4_OUT                           0x016C 0x04B4 0x0000 0x4 0x0
 #define MX6SX_PAD_NAND_DATA07__GPIO4_IO_11                        0x016C 0x04B4 0x0000 0x5 0x0
 #define MX6SX_PAD_NAND_DATA07__WEIM_AD_7                          0x016C 0x04B4 0x0000 0x6 0x0
@@ -967,7 +983,8 @@
 #define MX6SX_PAD_QSPI1A_SS1_B__SIM_M_HADDR_12                    0x019C 0x04E4 0x0000 0x7 0x0
 #define MX6SX_PAD_QSPI1A_SS1_B__SDMA_DEBUG_PC_3                   0x019C 0x04E4 0x0000 0x9 0x0
 #define MX6SX_PAD_QSPI1B_DATA0__QSPI1_B_DATA_0                    0x01A0 0x04E8 0x0000 0x0 0x0
-#define MX6SX_PAD_QSPI1B_DATA0__UART3_CTS_B                       0x01A0 0x04E8 0x0000 0x1 0x0
+#define MX6SX_PAD_QSPI1B_DATA0__UART3_DCE_CTS                     0x01A0 0x04E8 0x0000 0x1 0x0
+#define MX6SX_PAD_QSPI1B_DATA0__UART3_DTE_RTS                     0x01A0 0x04E8 0x083C 0x1 0x4
 #define MX6SX_PAD_QSPI1B_DATA0__ECSPI3_MOSI                       0x01A0 0x04E8 0x0738 0x2 0x1
 #define MX6SX_PAD_QSPI1B_DATA0__ESAI_RX_FS                        0x01A0 0x04E8 0x0778 0x3 0x2
 #define MX6SX_PAD_QSPI1B_DATA0__CSI1_DATA_22                      0x01A0 0x04E8 0x06F4 0x4 0x1
@@ -975,7 +992,8 @@
 #define MX6SX_PAD_QSPI1B_DATA0__WEIM_DATA_14                      0x01A0 0x04E8 0x0000 0x6 0x0
 #define MX6SX_PAD_QSPI1B_DATA0__SIM_M_HADDR_9                     0x01A0 0x04E8 0x0000 0x7 0x0
 #define MX6SX_PAD_QSPI1B_DATA1__QSPI1_B_DATA_1                    0x01A4 0x04EC 0x0000 0x0 0x0
-#define MX6SX_PAD_QSPI1B_DATA1__UART3_RTS_B                       0x01A4 0x04EC 0x083C 0x1 0x5
+#define MX6SX_PAD_QSPI1B_DATA1__UART3_DCE_RTS                     0x01A4 0x04EC 0x083C 0x1 0x5
+#define MX6SX_PAD_QSPI1B_DATA1__UART3_DTE_CTS                     0x01A4 0x04EC 0x0000 0x1 0x0
 #define MX6SX_PAD_QSPI1B_DATA1__ECSPI3_MISO                       0x01A4 0x04EC 0x0734 0x2 0x1
 #define MX6SX_PAD_QSPI1B_DATA1__ESAI_RX_CLK                       0x01A4 0x04EC 0x0788 0x3 0x2
 #define MX6SX_PAD_QSPI1B_DATA1__CSI1_DATA_21                      0x01A4 0x04EC 0x06F0 0x4 0x1
@@ -1007,8 +1025,8 @@
 #define MX6SX_PAD_QSPI1B_DQS__WEIM_DATA_15                        0x01B0 0x04F8 0x0000 0x6 0x0
 #define MX6SX_PAD_QSPI1B_DQS__SIM_M_HADDR_15                      0x01B0 0x04F8 0x0000 0x7 0x0
 #define MX6SX_PAD_QSPI1B_SCLK__QSPI1_B_SCLK                       0x01B4 0x04FC 0x0000 0x0 0x0
-#define MX6SX_PAD_QSPI1B_SCLK__UART3_RX                           0x01B4 0x04FC 0x0840 0x1 0x4
-#define MX6SX_PAD_QSPI1B_SCLK__UART3_TX                           0x01B4 0x04FC 0x0000 0x0 0x0
+#define MX6SX_PAD_QSPI1B_SCLK__UART3_DCE_RX                       0x01B4 0x04FC 0x0840 0x1 0x4
+#define MX6SX_PAD_QSPI1B_SCLK__UART3_DTE_TX                       0x01B4 0x04FC 0x0000 0x1 0x0
 #define MX6SX_PAD_QSPI1B_SCLK__ECSPI3_SCLK                        0x01B4 0x04FC 0x0730 0x2 0x1
 #define MX6SX_PAD_QSPI1B_SCLK__ESAI_RX_HF_CLK                     0x01B4 0x04FC 0x0780 0x3 0x2
 #define MX6SX_PAD_QSPI1B_SCLK__CSI1_DATA_16                       0x01B4 0x04FC 0x06DC 0x4 0x1
@@ -1016,8 +1034,8 @@
 #define MX6SX_PAD_QSPI1B_SCLK__WEIM_DATA_8                        0x01B4 0x04FC 0x0000 0x6 0x0
 #define MX6SX_PAD_QSPI1B_SCLK__SIM_M_HADDR_11                     0x01B4 0x04FC 0x0000 0x7 0x0
 #define MX6SX_PAD_QSPI1B_SS0_B__QSPI1_B_SS0_B                     0x01B8 0x0500 0x0000 0x0 0x0
-#define MX6SX_PAD_QSPI1B_SS0_B__UART3_RX                          0x01B8 0x0500 0x0840 0x1 0x5
-#define MX6SX_PAD_QSPI1B_SS0_B__UART3_TX                          0x01B8 0x0500 0x0000 0x1 0x0
+#define MX6SX_PAD_QSPI1B_SS0_B__UART3_DCE_TX                      0x01B8 0x0500 0x0000 0x1 0x0
+#define MX6SX_PAD_QSPI1B_SS0_B__UART3_DTE_RX                      0x01B8 0x0500 0x0840 0x1 0x5
 #define MX6SX_PAD_QSPI1B_SS0_B__ECSPI3_SS0                        0x01B8 0x0500 0x073C 0x2 0x1
 #define MX6SX_PAD_QSPI1B_SS0_B__ESAI_TX_HF_CLK                    0x01B8 0x0500 0x0784 0x3 0x3
 #define MX6SX_PAD_QSPI1B_SS0_B__CSI1_DATA_17                      0x01B8 0x0500 0x06E0 0x4 0x1
@@ -1224,8 +1242,8 @@
 #define MX6SX_PAD_SD1_DATA0__AUDMUX_AUD5_RXD                      0x0228 0x0570 0x065C 0x1 0x1
 #define MX6SX_PAD_SD1_DATA0__CAAM_WRAPPER_RNG_OSC_OBS             0x0228 0x0570 0x0000 0x2 0x0
 #define MX6SX_PAD_SD1_DATA0__GPT_CAPTURE1                         0x0228 0x0570 0x0000 0x3 0x0
-#define MX6SX_PAD_SD1_DATA0__UART2_RX                             0x0228 0x0570 0x0838 0x4 0x2
-#define MX6SX_PAD_SD1_DATA0__UART2_TX                             0x0228 0x0570 0x0000 0x4 0x0
+#define MX6SX_PAD_SD1_DATA0__UART2_DCE_RX                         0x0228 0x0570 0x0838 0x4 0x2
+#define MX6SX_PAD_SD1_DATA0__UART2_DTE_TX                         0x0228 0x0570 0x0000 0x4 0x0
 #define MX6SX_PAD_SD1_DATA0__GPIO6_IO_2                           0x0228 0x0570 0x0000 0x5 0x0
 #define MX6SX_PAD_SD1_DATA0__ENET1_1588_EVENT1_IN                 0x0228 0x0570 0x0000 0x6 0x0
 #define MX6SX_PAD_SD1_DATA0__CCM_OUT2                             0x0228 0x0570 0x0000 0x7 0x0
@@ -1235,8 +1253,8 @@
 #define MX6SX_PAD_SD1_DATA1__AUDMUX_AUD5_TXC                      0x022C 0x0574 0x066C 0x1 0x1
 #define MX6SX_PAD_SD1_DATA1__PWM4_OUT                             0x022C 0x0574 0x0000 0x2 0x0
 #define MX6SX_PAD_SD1_DATA1__GPT_CAPTURE2                         0x022C 0x0574 0x0000 0x3 0x0
-#define MX6SX_PAD_SD1_DATA1__UART2_RX                             0x022C 0x0574 0x0838 0x4 0x3
-#define MX6SX_PAD_SD1_DATA1__UART2_TX                             0x022C 0x0574 0x0000 0x4 0x0
+#define MX6SX_PAD_SD1_DATA1__UART2_DCE_TX                         0x022C 0x0574 0x0000 0x4 0x0
+#define MX6SX_PAD_SD1_DATA1__UART2_DTE_RX                         0x022C 0x0574 0x0838 0x4 0x3
 #define MX6SX_PAD_SD1_DATA1__GPIO6_IO_3                           0x022C 0x0574 0x0000 0x5 0x0
 #define MX6SX_PAD_SD1_DATA1__ENET1_1588_EVENT1_OUT                0x022C 0x0574 0x0000 0x6 0x0
 #define MX6SX_PAD_SD1_DATA1__CCM_CLKO2                            0x022C 0x0574 0x0000 0x7 0x0
@@ -1246,7 +1264,8 @@
 #define MX6SX_PAD_SD1_DATA2__AUDMUX_AUD5_TXFS                     0x0230 0x0578 0x0670 0x1 0x1
 #define MX6SX_PAD_SD1_DATA2__PWM3_OUT                             0x0230 0x0578 0x0000 0x2 0x0
 #define MX6SX_PAD_SD1_DATA2__GPT_COMPARE2                         0x0230 0x0578 0x0000 0x3 0x0
-#define MX6SX_PAD_SD1_DATA2__UART2_CTS_B                          0x0230 0x0578 0x0000 0x4 0x0
+#define MX6SX_PAD_SD1_DATA2__UART2_DCE_CTS                        0x0230 0x0578 0x0000 0x4 0x0
+#define MX6SX_PAD_SD1_DATA2__UART2_DTE_RTS                        0x0230 0x0578 0x0834 0x4 0x2
 #define MX6SX_PAD_SD1_DATA2__GPIO6_IO_4                           0x0230 0x0578 0x0000 0x5 0x0
 #define MX6SX_PAD_SD1_DATA2__ECSPI4_RDY                           0x0230 0x0578 0x0000 0x6 0x0
 #define MX6SX_PAD_SD1_DATA2__CCM_OUT0                             0x0230 0x0578 0x0000 0x7 0x0
@@ -1255,7 +1274,8 @@
 #define MX6SX_PAD_SD1_DATA3__AUDMUX_AUD5_TXD                      0x0234 0x057C 0x0660 0x1 0x1
 #define MX6SX_PAD_SD1_DATA3__AUDMUX_AUD5_RXD                      0x0234 0x057C 0x065C 0x2 0x2
 #define MX6SX_PAD_SD1_DATA3__GPT_COMPARE3                         0x0234 0x057C 0x0000 0x3 0x0
-#define MX6SX_PAD_SD1_DATA3__UART2_RTS_B                          0x0234 0x057C 0x0834 0x4 0x3
+#define MX6SX_PAD_SD1_DATA3__UART2_DCE_RTS                        0x0234 0x057C 0x0834 0x4 0x3
+#define MX6SX_PAD_SD1_DATA3__UART2_DTE_CTS                        0x0234 0x057C 0x0000 0x4 0x0
 #define MX6SX_PAD_SD1_DATA3__GPIO6_IO_5                           0x0234 0x057C 0x0000 0x5 0x0
 #define MX6SX_PAD_SD1_DATA3__ECSPI4_SS1                           0x0234 0x057C 0x0000 0x6 0x0
 #define MX6SX_PAD_SD1_DATA3__CCM_PMIC_RDY                         0x0234 0x057C 0x069C 0x7 0x2
@@ -1287,8 +1307,8 @@
 #define MX6SX_PAD_SD2_DATA0__I2C4_SDA                             0x0240 0x0588 0x07C4 0x4 0x3
 #define MX6SX_PAD_SD2_DATA0__GPIO6_IO_8                           0x0240 0x0588 0x0000 0x5 0x0
 #define MX6SX_PAD_SD2_DATA0__ECSPI4_SS3                           0x0240 0x0588 0x0000 0x6 0x0
-#define MX6SX_PAD_SD2_DATA0__UART4_RX                             0x0240 0x0588 0x0848 0x7 0x4
-#define MX6SX_PAD_SD2_DATA0__UART4_TX                             0x0240 0x0588 0x0000 0x7 0x0
+#define MX6SX_PAD_SD2_DATA0__UART4_DCE_RX                         0x0240 0x0588 0x0848 0x7 0x4
+#define MX6SX_PAD_SD2_DATA0__UART4_DTE_TX                         0x0240 0x0588 0x0000 0x7 0x0
 #define MX6SX_PAD_SD2_DATA0__VADC_CLAMP_CURRENT_0                 0x0240 0x0588 0x0000 0x8 0x0
 #define MX6SX_PAD_SD2_DATA0__MMDC_DEBUG_50                        0x0240 0x0588 0x0000 0x9 0x0
 #define MX6SX_PAD_SD2_DATA1__USDHC2_DATA1                         0x0244 0x058C 0x0000 0x0 0x0
@@ -1298,8 +1318,8 @@
 #define MX6SX_PAD_SD2_DATA1__I2C4_SCL                             0x0244 0x058C 0x07C0 0x4 0x3
 #define MX6SX_PAD_SD2_DATA1__GPIO6_IO_9                           0x0244 0x058C 0x0000 0x5 0x0
 #define MX6SX_PAD_SD2_DATA1__ECSPI4_SS2                           0x0244 0x058C 0x0000 0x6 0x0
-#define MX6SX_PAD_SD2_DATA1__UART4_RX                             0x0244 0x058C 0x0848 0x7 0x5
-#define MX6SX_PAD_SD2_DATA1__UART4_TX                             0x0244 0x058C 0x0000 0x7 0x0
+#define MX6SX_PAD_SD2_DATA1__UART4_DCE_TX                         0x0244 0x058C 0x0000 0x7 0x0
+#define MX6SX_PAD_SD2_DATA1__UART4_DTE_RX                         0x0244 0x058C 0x0848 0x7 0x5
 #define MX6SX_PAD_SD2_DATA1__VADC_CLAMP_CURRENT_1                 0x0244 0x058C 0x0000 0x8 0x0
 #define MX6SX_PAD_SD2_DATA1__MMDC_DEBUG_49                        0x0244 0x058C 0x0000 0x9 0x0
 #define MX6SX_PAD_SD2_DATA2__USDHC2_DATA2                         0x0248 0x0590 0x0000 0x0 0x0
@@ -1309,8 +1329,8 @@
 #define MX6SX_PAD_SD2_DATA2__SDMA_EXT_EVENT_0                     0x0248 0x0590 0x081C 0x4 0x2
 #define MX6SX_PAD_SD2_DATA2__GPIO6_IO_10                          0x0248 0x0590 0x0000 0x5 0x0
 #define MX6SX_PAD_SD2_DATA2__SPDIF_OUT                            0x0248 0x0590 0x0000 0x6 0x0
-#define MX6SX_PAD_SD2_DATA2__UART6_RX                             0x0248 0x0590 0x0858 0x7 0x4
-#define MX6SX_PAD_SD2_DATA2__UART6_TX                             0x0248 0x0590 0x0000 0x7 0x0
+#define MX6SX_PAD_SD2_DATA2__UART6_DCE_RX                         0x0248 0x0590 0x0858 0x7 0x4
+#define MX6SX_PAD_SD2_DATA2__UART6_DTE_TX                         0x0248 0x0590 0x0000 0x7 0x0
 #define MX6SX_PAD_SD2_DATA2__VADC_CLAMP_CURRENT_2                 0x0248 0x0590 0x0000 0x8 0x0
 #define MX6SX_PAD_SD2_DATA2__MMDC_DEBUG_32                        0x0248 0x0590 0x0000 0x9 0x0
 #define MX6SX_PAD_SD2_DATA3__USDHC2_DATA3                         0x024C 0x0594 0x0000 0x0 0x0
@@ -1320,12 +1340,13 @@
 #define MX6SX_PAD_SD2_DATA3__MLB_DATA                             0x024C 0x0594 0x07EC 0x4 0x2
 #define MX6SX_PAD_SD2_DATA3__GPIO6_IO_11                          0x024C 0x0594 0x0000 0x5 0x0
 #define MX6SX_PAD_SD2_DATA3__SPDIF_IN                             0x024C 0x0594 0x0824 0x6 0x4
-#define MX6SX_PAD_SD2_DATA3__UART6_RX                             0x024C 0x0594 0x0858 0x7 0x5
-#define MX6SX_PAD_SD2_DATA3__UART6_TX                             0x024C 0x0594 0x0000 0x7 0x0
+#define MX6SX_PAD_SD2_DATA3__UART6_DCE_TX                         0x024C 0x0594 0x0000 0x7 0x0
+#define MX6SX_PAD_SD2_DATA3__UART6_DTE_RX                         0x024C 0x0594 0x0858 0x7 0x5
 #define MX6SX_PAD_SD2_DATA3__VADC_CLAMP_CURRENT_3                 0x024C 0x0594 0x0000 0x8 0x0
 #define MX6SX_PAD_SD2_DATA3__MMDC_DEBUG_31                        0x024C 0x0594 0x0000 0x9 0x0
 #define MX6SX_PAD_SD3_CLK__USDHC3_CLK                             0x0250 0x0598 0x0000 0x0 0x0
-#define MX6SX_PAD_SD3_CLK__UART4_CTS_B                            0x0250 0x0598 0x0000 0x1 0x0
+#define MX6SX_PAD_SD3_CLK__UART4_DCE_CTS                          0x0250 0x0598 0x0000 0x1 0x0
+#define MX6SX_PAD_SD3_CLK__UART4_DTE_RTS                          0x0250 0x0598 0x0844 0x1 0x0
 #define MX6SX_PAD_SD3_CLK__ECSPI4_SCLK                            0x0250 0x0598 0x0740 0x2 0x0
 #define MX6SX_PAD_SD3_CLK__AUDMUX_AUD6_RXFS                       0x0250 0x0598 0x0680 0x3 0x0
 #define MX6SX_PAD_SD3_CLK__LCDIF2_VSYNC                           0x0250 0x0598 0x0000 0x4 0x0
@@ -1334,8 +1355,8 @@
 #define MX6SX_PAD_SD3_CLK__TPSMP_HDATA_29                         0x0250 0x0598 0x0000 0x7 0x0
 #define MX6SX_PAD_SD3_CLK__SDMA_DEBUG_EVENT_CHANNEL_5             0x0250 0x0598 0x0000 0x9 0x0
 #define MX6SX_PAD_SD3_CMD__USDHC3_CMD                             0x0254 0x059C 0x0000 0x0 0x0
-#define MX6SX_PAD_SD3_CMD__UART4_RX                               0x0254 0x059C 0x0848 0x1 0x0
-#define MX6SX_PAD_SD3_CMD__UART4_TX                               0x0254 0x059C 0x0000 0x1 0x0
+#define MX6SX_PAD_SD3_CMD__UART4_DCE_TX                           0x0254 0x059C 0x0000 0x1 0x0
+#define MX6SX_PAD_SD3_CMD__UART4_DTE_RX                           0x0254 0x059C 0x0848 0x1 0x0
 #define MX6SX_PAD_SD3_CMD__ECSPI4_MOSI                            0x0254 0x059C 0x0748 0x2 0x0
 #define MX6SX_PAD_SD3_CMD__AUDMUX_AUD6_RXC                        0x0254 0x059C 0x067C 0x3 0x0
 #define MX6SX_PAD_SD3_CMD__LCDIF2_HSYNC                           0x0254 0x059C 0x07E4 0x4 0x1
@@ -1364,7 +1385,8 @@
 #define MX6SX_PAD_SD3_DATA1__GPU_DEBUG_1                          0x025C 0x05A4 0x0000 0x8 0x0
 #define MX6SX_PAD_SD3_DATA1__SDMA_DEBUG_EVT_CHN_LINES_1           0x025C 0x05A4 0x0000 0x9 0x0
 #define MX6SX_PAD_SD3_DATA2__USDHC3_DATA2                         0x0260 0x05A8 0x0000 0x0 0x0
-#define MX6SX_PAD_SD3_DATA2__UART4_RTS_B                          0x0260 0x05A8 0x0844 0x1 0x1
+#define MX6SX_PAD_SD3_DATA2__UART4_DCE_RTS                        0x0260 0x05A8 0x0844 0x1 0x1
+#define MX6SX_PAD_SD3_DATA2__UART4_DTE_CTS                        0x0260 0x05A8 0x0000 0x1 0x0
 #define MX6SX_PAD_SD3_DATA2__ECSPI4_SS0                           0x0260 0x05A8 0x074C 0x2 0x0
 #define MX6SX_PAD_SD3_DATA2__AUDMUX_AUD6_TXFS                     0x0260 0x05A8 0x0688 0x3 0x0
 #define MX6SX_PAD_SD3_DATA2__LCDIF2_CLK                           0x0260 0x05A8 0x0000 0x4 0x0
@@ -1374,8 +1396,8 @@
 #define MX6SX_PAD_SD3_DATA2__GPU_DEBUG_2                          0x0260 0x05A8 0x0000 0x8 0x0
 #define MX6SX_PAD_SD3_DATA2__SDMA_DEBUG_EVENT_CHANNEL_2           0x0260 0x05A8 0x0000 0x9 0x0
 #define MX6SX_PAD_SD3_DATA3__USDHC3_DATA3                         0x0264 0x05AC 0x0000 0x0 0x0
-#define MX6SX_PAD_SD3_DATA3__UART4_RX                             0x0264 0x05AC 0x0848 0x1 0x1
-#define MX6SX_PAD_SD3_DATA3__UART4_TX                             0x0264 0x05AC 0x0000 0x1 0x0
+#define MX6SX_PAD_SD3_DATA3__UART4_DCE_RX                         0x0264 0x05AC 0x0848 0x1 0x1
+#define MX6SX_PAD_SD3_DATA3__UART4_DTE_TX                         0x0264 0x05AC 0x0000 0x1 0x0
 #define MX6SX_PAD_SD3_DATA3__ECSPI4_MISO                          0x0264 0x05AC 0x0744 0x2 0x0
 #define MX6SX_PAD_SD3_DATA3__AUDMUX_AUD6_TXD                      0x0264 0x05AC 0x0678 0x3 0x0
 #define MX6SX_PAD_SD3_DATA3__LCDIF2_ENABLE                        0x0264 0x05AC 0x0000 0x4 0x0
@@ -1387,8 +1409,8 @@
 #define MX6SX_PAD_SD3_DATA4__USDHC3_DATA4                         0x0268 0x05B0 0x0000 0x0 0x0
 #define MX6SX_PAD_SD3_DATA4__CAN2_RX                              0x0268 0x05B0 0x0690 0x1 0x0
 #define MX6SX_PAD_SD3_DATA4__CANFD_RX2                            0x0268 0x05B0 0x0698 0x2 0x0
-#define MX6SX_PAD_SD3_DATA4__UART3_RX                             0x0268 0x05B0 0x0840 0x3 0x2
-#define MX6SX_PAD_SD3_DATA4__UART3_TX                             0x0268 0x05B0 0x0000 0x3 0x0
+#define MX6SX_PAD_SD3_DATA4__UART3_DCE_RX                         0x0268 0x05B0 0x0840 0x3 0x2
+#define MX6SX_PAD_SD3_DATA4__UART3_DTE_TX                         0x0268 0x05B0 0x0000 0x3 0x0
 #define MX6SX_PAD_SD3_DATA4__LCDIF2_DATA_3                        0x0268 0x05B0 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA4__GPIO7_IO_6                           0x0268 0x05B0 0x0000 0x5 0x0
 #define MX6SX_PAD_SD3_DATA4__ENET2_1588_EVENT0_IN                 0x0268 0x05B0 0x0000 0x6 0x0
@@ -1398,8 +1420,8 @@
 #define MX6SX_PAD_SD3_DATA5__USDHC3_DATA5                         0x026C 0x05B4 0x0000 0x0 0x0
 #define MX6SX_PAD_SD3_DATA5__CAN1_TX                              0x026C 0x05B4 0x0000 0x1 0x0
 #define MX6SX_PAD_SD3_DATA5__CANFD_TX1                            0x026C 0x05B4 0x0000 0x2 0x0
-#define MX6SX_PAD_SD3_DATA5__UART3_RX                             0x026C 0x05B4 0x0840 0x3 0x3
-#define MX6SX_PAD_SD3_DATA5__UART3_TX                             0x026C 0x05B4 0x0000 0x3 0x0
+#define MX6SX_PAD_SD3_DATA5__UART3_DCE_TX                         0x026C 0x05B4 0x0000 0x3 0x0
+#define MX6SX_PAD_SD3_DATA5__UART3_DTE_RX                         0x026C 0x05B4 0x0840 0x3 0x3
 #define MX6SX_PAD_SD3_DATA5__LCDIF2_DATA_2                        0x026C 0x05B4 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA5__GPIO7_IO_7                           0x026C 0x05B4 0x0000 0x5 0x0
 #define MX6SX_PAD_SD3_DATA5__ENET2_1588_EVENT0_OUT                0x026C 0x05B4 0x0000 0x6 0x0
@@ -1409,7 +1431,8 @@
 #define MX6SX_PAD_SD3_DATA6__USDHC3_DATA6                         0x0270 0x05B8 0x0000 0x0 0x0
 #define MX6SX_PAD_SD3_DATA6__CAN2_TX                              0x0270 0x05B8 0x0000 0x1 0x0
 #define MX6SX_PAD_SD3_DATA6__CANFD_TX2                            0x0270 0x05B8 0x0000 0x2 0x0
-#define MX6SX_PAD_SD3_DATA6__UART3_RTS_B                          0x0270 0x05B8 0x083C 0x3 0x2
+#define MX6SX_PAD_SD3_DATA6__UART3_DCE_RTS                        0x0270 0x05B8 0x083C 0x3 0x2
+#define MX6SX_PAD_SD3_DATA6__UART3_DTE_CTS                        0x0270 0x05B8 0x0000 0x3 0x0
 #define MX6SX_PAD_SD3_DATA6__LCDIF2_DATA_4                        0x0270 0x05B8 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA6__GPIO7_IO_8                           0x0270 0x05B8 0x0000 0x5 0x0
 #define MX6SX_PAD_SD3_DATA6__ENET1_1588_EVENT0_OUT                0x0270 0x05B8 0x0000 0x6 0x0
@@ -1419,7 +1442,8 @@
 #define MX6SX_PAD_SD3_DATA7__USDHC3_DATA7                         0x0274 0x05BC 0x0000 0x0 0x0
 #define MX6SX_PAD_SD3_DATA7__CAN1_RX                              0x0274 0x05BC 0x068C 0x1 0x0
 #define MX6SX_PAD_SD3_DATA7__CANFD_RX1                            0x0274 0x05BC 0x0694 0x2 0x0
-#define MX6SX_PAD_SD3_DATA7__UART3_CTS_B                          0x0274 0x05BC 0x0000 0x3 0x0
+#define MX6SX_PAD_SD3_DATA7__UART3_DCE_CTS                        0x0274 0x05BC 0x0000 0x3 0x0
+#define MX6SX_PAD_SD3_DATA7__UART3_DTE_RTS                        0x0274 0x05BC 0x083C 0x3 0x3
 #define MX6SX_PAD_SD3_DATA7__LCDIF2_DATA_5                        0x0274 0x05BC 0x0000 0x4 0x0
 #define MX6SX_PAD_SD3_DATA7__GPIO7_IO_9                           0x0274 0x05BC 0x0000 0x5 0x0
 #define MX6SX_PAD_SD3_DATA7__ENET1_1588_EVENT0_IN                 0x0274 0x05BC 0x0000 0x6 0x0
@@ -1488,8 +1512,8 @@
 #define MX6SX_PAD_SD4_DATA3__SDMA_DEBUG_MATCHED_DMBUS             0x028C 0x05D4 0x0000 0x9 0x0
 #define MX6SX_PAD_SD4_DATA4__USDHC4_DATA4                         0x0290 0x05D8 0x0000 0x0 0x0
 #define MX6SX_PAD_SD4_DATA4__RAWNAND_DATA09                       0x0290 0x05D8 0x0000 0x1 0x0
-#define MX6SX_PAD_SD4_DATA4__UART5_RX                             0x0290 0x05D8 0x0850 0x2 0x0
-#define MX6SX_PAD_SD4_DATA4__UART5_TX                             0x0290 0x05D8 0x0000 0x2 0x0
+#define MX6SX_PAD_SD4_DATA4__UART5_DCE_RX                         0x0290 0x05D8 0x0850 0x2 0x0
+#define MX6SX_PAD_SD4_DATA4__UART5_DTE_TX                         0x0290 0x05D8 0x0000 0x2 0x0
 #define MX6SX_PAD_SD4_DATA4__ECSPI3_SCLK                          0x0290 0x05D8 0x0730 0x3 0x0
 #define MX6SX_PAD_SD4_DATA4__LCDIF2_DATA_8                        0x0290 0x05D8 0x0000 0x4 0x0
 #define MX6SX_PAD_SD4_DATA4__GPIO6_IO_18                          0x0290 0x05D8 0x0000 0x5 0x0
@@ -1499,8 +1523,8 @@
 #define MX6SX_PAD_SD4_DATA4__SDMA_DEBUG_RTBUFFER_WRITE            0x0290 0x05D8 0x0000 0x9 0x0
 #define MX6SX_PAD_SD4_DATA5__USDHC4_DATA5                         0x0294 0x05DC 0x0000 0x0 0x0
 #define MX6SX_PAD_SD4_DATA5__RAWNAND_CE2_B                        0x0294 0x05DC 0x0000 0x1 0x0
-#define MX6SX_PAD_SD4_DATA5__UART5_RX                             0x0294 0x05DC 0x0850 0x2 0x1
-#define MX6SX_PAD_SD4_DATA5__UART5_TX                             0x0294 0x05DC 0x0000 0x2 0x0
+#define MX6SX_PAD_SD4_DATA5__UART5_DCE_TX                         0x0294 0x05DC 0x0000 0x2 0x0
+#define MX6SX_PAD_SD4_DATA5__UART5_DTE_RX                         0x0294 0x05DC 0x0850 0x2 0x1
 #define MX6SX_PAD_SD4_DATA5__ECSPI3_MOSI                          0x0294 0x05DC 0x0738 0x3 0x0
 #define MX6SX_PAD_SD4_DATA5__LCDIF2_DATA_7                        0x0294 0x05DC 0x0000 0x4 0x0
 #define MX6SX_PAD_SD4_DATA5__GPIO6_IO_19                          0x0294 0x05DC 0x0000 0x5 0x0
@@ -1510,7 +1534,8 @@
 #define MX6SX_PAD_SD4_DATA5__SDMA_DEBUG_EVENT_CHANNEL_0           0x0294 0x05DC 0x0000 0x9 0x0
 #define MX6SX_PAD_SD4_DATA6__USDHC4_DATA6                         0x0298 0x05E0 0x0000 0x0 0x0
 #define MX6SX_PAD_SD4_DATA6__RAWNAND_CE3_B                        0x0298 0x05E0 0x0000 0x1 0x0
-#define MX6SX_PAD_SD4_DATA6__UART5_RTS_B                          0x0298 0x05E0 0x084C 0x2 0x0
+#define MX6SX_PAD_SD4_DATA6__UART5_DCE_RTS                        0x0298 0x05E0 0x084C 0x2 0x0
+#define MX6SX_PAD_SD4_DATA6__UART5_DTE_CTS                        0x0298 0x05E0 0x0000 0x2 0x0
 #define MX6SX_PAD_SD4_DATA6__ECSPI3_MISO                          0x0298 0x05E0 0x0734 0x3 0x0
 #define MX6SX_PAD_SD4_DATA6__LCDIF2_DATA_6                        0x0298 0x05E0 0x0000 0x4 0x0
 #define MX6SX_PAD_SD4_DATA6__GPIO6_IO_20                          0x0298 0x05E0 0x0000 0x5 0x0
@@ -1520,7 +1545,8 @@
 #define MX6SX_PAD_SD4_DATA6__SDMA_DEBUG_EVENT_CHANNEL_1           0x0298 0x05E0 0x0000 0x9 0x0
 #define MX6SX_PAD_SD4_DATA7__USDHC4_DATA7                         0x029C 0x05E4 0x0000 0x0 0x0
 #define MX6SX_PAD_SD4_DATA7__RAWNAND_DATA08                       0x029C 0x05E4 0x0000 0x1 0x0
-#define MX6SX_PAD_SD4_DATA7__UART5_CTS_B                          0x029C 0x05E4 0x0000 0x2 0x0
+#define MX6SX_PAD_SD4_DATA7__UART5_DCE_CTS                        0x029C 0x05E4 0x0000 0x2 0x0
+#define MX6SX_PAD_SD4_DATA7__UART5_DTE_RTS                        0x029C 0x05E4 0x084C 0x2 0x1
 #define MX6SX_PAD_SD4_DATA7__ECSPI3_SS0                           0x029C 0x05E4 0x073C 0x3 0x0
 #define MX6SX_PAD_SD4_DATA7__LCDIF2_DATA_15                       0x029C 0x05E4 0x0000 0x4 0x0
 #define MX6SX_PAD_SD4_DATA7__GPIO6_IO_21                          0x029C 0x05E4 0x0000 0x5 0x0
@@ -1551,4 +1577,92 @@
 #define MX6SX_PAD_USB_H_STROBE__WDOG3_WDOG_RST_B_DEB              0x02A8 0x05F0 0x0000 0x4 0x0
 #define MX6SX_PAD_USB_H_STROBE__GPIO7_IO_11                       0x02A8 0x05F0 0x0000 0x5 0x0
 
+/* these are not supposed to be used any more and remove them after some time */
+#define MX6SX_PAD_GPIO1_IO04__UART1_RX		MX6SX_PAD_GPIO1_IO04__UART1_DTE_RX
+#define MX6SX_PAD_GPIO1_IO04__UART1_TX		MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX
+#define MX6SX_PAD_GPIO1_IO05__UART1_RX		MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX
+#define MX6SX_PAD_GPIO1_IO05__UART1_TX		MX6SX_PAD_GPIO1_IO05__UART1_DTE_TX
+#define MX6SX_PAD_GPIO1_IO06__UART2_RX		MX6SX_PAD_GPIO1_IO06__UART2_DTE_RX
+#define MX6SX_PAD_GPIO1_IO06__UART2_TX		MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX
+#define MX6SX_PAD_GPIO1_IO06__UART1_RTS_B	MX6SX_PAD_GPIO1_IO06__UART1_DCE_RTS
+#define MX6SX_PAD_GPIO1_IO07__UART2_RX		MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX
+#define MX6SX_PAD_GPIO1_IO07__UART2_TX		MX6SX_PAD_GPIO1_IO07__UART2_DTE_TX
+#define MX6SX_PAD_GPIO1_IO07__UART1_CTS_B	MX6SX_PAD_GPIO1_IO07__UART1_DCE_CTS
+#define MX6SX_PAD_GPIO1_IO08__UART2_RTS_B	MX6SX_PAD_GPIO1_IO08__UART2_DCE_RTS
+#define MX6SX_PAD_GPIO1_IO09__UART2_CTS_B	MX6SX_PAD_GPIO1_IO09__UART2_DCE_CTS
+#define MX6SX_PAD_CSI_DATA04__UART6_RX		MX6SX_PAD_CSI_DATA04__UART6_DCE_RX
+#define MX6SX_PAD_CSI_DATA04__UART6_TX		MX6SX_PAD_CSI_DATA04__UART6_DTE_TX
+#define MX6SX_PAD_CSI_DATA05__UART6_RX		MX6SX_PAD_CSI_DATA05__UART6_DTE_RX
+#define MX6SX_PAD_CSI_DATA05__UART6_TX		MX6SX_PAD_CSI_DATA05__UART6_DCE_TX
+#define MX6SX_PAD_CSI_DATA06__UART6_RTS_B	MX6SX_PAD_CSI_DATA06__UART6_DCE_RTS
+#define MX6SX_PAD_CSI_DATA07__UART6_CTS_B	MX6SX_PAD_CSI_DATA07__UART6_DCE_CTS
+#define MX6SX_PAD_CSI_HSYNC__UART4_RTS_B	MX6SX_PAD_CSI_HSYNC__UART4_DCE_RTS
+#define MX6SX_PAD_CSI_MCLK__UART4_RX		MX6SX_PAD_CSI_MCLK__UART4_DCE_RX
+#define MX6SX_PAD_CSI_MCLK__UART4_TX		MX6SX_PAD_CSI_MCLK__UART4_DTE_TX
+#define MX6SX_PAD_CSI_PIXCLK__UART4_RX		MX6SX_PAD_CSI_PIXCLK__UART4_DTE_RX
+#define MX6SX_PAD_CSI_PIXCLK__UART4_TX		MX6SX_PAD_CSI_PIXCLK__UART4_DCE_TX
+#define MX6SX_PAD_CSI_VSYNC__UART4_CTS_B	MX6SX_PAD_CSI_VSYNC__UART4_DCE_CTS
+#define MX6SX_PAD_ENET2_COL__UART1_RX		MX6SX_PAD_ENET2_COL__UART1_DCE_RX
+#define MX6SX_PAD_ENET2_COL__UART1_TX		MX6SX_PAD_ENET2_COL__UART1_DTE_TX
+#define MX6SX_PAD_ENET2_CRS__UART1_RX		MX6SX_PAD_ENET2_CRS__UART1_DTE_RX
+#define MX6SX_PAD_ENET2_CRS__UART1_TX		MX6SX_PAD_ENET2_CRS__UART1_DCE_TX
+#define MX6SX_PAD_ENET2_RX_CLK__UART1_RTS_B	MX6SX_PAD_ENET2_RX_CLK__UART1_DCE_RTS
+#define MX6SX_PAD_ENET2_TX_CLK__UART1_CTS_B	MX6SX_PAD_ENET2_TX_CLK__UART1_DCE_CTS
+#define MX6SX_PAD_KEY_COL0__UART6_RTS_B		MX6SX_PAD_KEY_COL0__UART6_DCE_RTS
+#define MX6SX_PAD_KEY_COL1__UART6_RX		MX6SX_PAD_KEY_COL1__UART6_DTE_RX
+#define MX6SX_PAD_KEY_COL1__UART6_TX		MX6SX_PAD_KEY_COL1__UART6_DCE_TX
+#define MX6SX_PAD_KEY_COL2__UART5_RTS_B		MX6SX_PAD_KEY_COL2__UART5_DCE_RTS
+#define MX6SX_PAD_KEY_COL3__UART5_RX		MX6SX_PAD_KEY_COL3__UART5_DTE_RX
+#define MX6SX_PAD_KEY_COL3__UART5_TX		MX6SX_PAD_KEY_COL3__UART5_DCE_TX
+#define MX6SX_PAD_KEY_ROW0__UART6_CTS_B		MX6SX_PAD_KEY_ROW0__UART6_DCE_CTS
+#define MX6SX_PAD_KEY_ROW1__UART6_RX		MX6SX_PAD_KEY_ROW1__UART6_DCE_RX
+#define MX6SX_PAD_KEY_ROW1__UART6_TX		MX6SX_PAD_KEY_ROW1__UART6_DTE_TX
+#define MX6SX_PAD_KEY_ROW2__UART5_CTS_B		MX6SX_PAD_KEY_ROW2__UART5_DCE_CTS
+#define MX6SX_PAD_KEY_ROW3__UART5_RX		MX6SX_PAD_KEY_ROW3__UART5_DCE_RX
+#define MX6SX_PAD_KEY_ROW3__UART5_TX		MX6SX_PAD_KEY_ROW3__UART5_DTE_TX
+#define MX6SX_PAD_NAND_DATA04__UART3_RTS_B	MX6SX_PAD_NAND_DATA04__UART3_DCE_RTS
+#define MX6SX_PAD_NAND_DATA05__UART3_CTS_B	MX6SX_PAD_NAND_DATA05__UART3_DCE_CTS
+#define MX6SX_PAD_NAND_DATA06__UART3_RX		MX6SX_PAD_NAND_DATA06__UART3_DCE_RX
+#define MX6SX_PAD_NAND_DATA06__UART3_TX		MX6SX_PAD_NAND_DATA06__UART3_DTE_TX
+#define MX6SX_PAD_NAND_DATA07__UART3_RX		MX6SX_PAD_NAND_DATA07__UART3_DTE_RX
+#define MX6SX_PAD_NAND_DATA07__UART3_TX		MX6SX_PAD_NAND_DATA07__UART3_DCE_TX
+#define MX6SX_PAD_QSPI1B_DATA0__UART3_CTS_B	MX6SX_PAD_QSPI1B_DATA0__UART3_DCE_CTS
+#define MX6SX_PAD_QSPI1B_DATA1__UART3_RTS_B	MX6SX_PAD_QSPI1B_DATA1__UART3_DCE_RTS
+#define MX6SX_PAD_QSPI1B_SCLK__UART3_RX		MX6SX_PAD_QSPI1B_SCLK__UART3_DCE_RX
+#define MX6SX_PAD_QSPI1B_SCLK__UART3_TX		MX6SX_PAD_QSPI1B_SCLK__UART3_DTE_TX
+#define MX6SX_PAD_QSPI1B_SS0_B__UART3_RX	MX6SX_PAD_QSPI1B_SS0_B__UART3_DTE_RX
+#define MX6SX_PAD_QSPI1B_SS0_B__UART3_TX	MX6SX_PAD_QSPI1B_SS0_B__UART3_DCE_TX
+#define MX6SX_PAD_SD1_DATA0__UART2_RX		MX6SX_PAD_SD1_DATA0__UART2_DCE_RX
+#define MX6SX_PAD_SD1_DATA0__UART2_TX		MX6SX_PAD_SD1_DATA0__UART2_DTE_TX
+#define MX6SX_PAD_SD1_DATA1__UART2_RX		MX6SX_PAD_SD1_DATA1__UART2_DTE_RX
+#define MX6SX_PAD_SD1_DATA1__UART2_TX		MX6SX_PAD_SD1_DATA1__UART2_DCE_TX
+#define MX6SX_PAD_SD1_DATA2__UART2_CTS_B	MX6SX_PAD_SD1_DATA2__UART2_DCE_CTS
+#define MX6SX_PAD_SD1_DATA3__UART2_RTS_B	MX6SX_PAD_SD1_DATA3__UART2_DCE_RTS
+#define MX6SX_PAD_SD2_DATA0__UART4_RX		MX6SX_PAD_SD2_DATA0__UART4_DCE_RX
+#define MX6SX_PAD_SD2_DATA0__UART4_TX		MX6SX_PAD_SD2_DATA0__UART4_DTE_TX
+#define MX6SX_PAD_SD2_DATA1__UART4_RX		MX6SX_PAD_SD2_DATA1__UART4_DTE_RX
+#define MX6SX_PAD_SD2_DATA1__UART4_TX		MX6SX_PAD_SD2_DATA1__UART4_DCE_TX
+#define MX6SX_PAD_SD2_DATA2__UART6_RX		MX6SX_PAD_SD2_DATA2__UART6_DCE_RX
+#define MX6SX_PAD_SD2_DATA2__UART6_TX		MX6SX_PAD_SD2_DATA2__UART6_DTE_TX
+#define MX6SX_PAD_SD2_DATA3__UART6_RX		MX6SX_PAD_SD2_DATA3__UART6_DTE_RX
+#define MX6SX_PAD_SD2_DATA3__UART6_TX		MX6SX_PAD_SD2_DATA3__UART6_DCE_TX
+#define MX6SX_PAD_SD3_CLK__UART4_CTS_B		MX6SX_PAD_SD3_CLK__UART4_DCE_CTS
+#define MX6SX_PAD_SD3_CMD__UART4_RX		MX6SX_PAD_SD3_CMD__UART4_DTE_RX
+#define MX6SX_PAD_SD3_CMD__UART4_TX		MX6SX_PAD_SD3_CMD__UART4_DCE_TX
+#define MX6SX_PAD_SD3_DATA2__UART4_RTS_B	MX6SX_PAD_SD3_DATA2__UART4_DCE_RTS
+#define MX6SX_PAD_SD3_DATA3__UART4_RX		MX6SX_PAD_SD3_DATA3__UART4_DCE_RX
+#define MX6SX_PAD_SD3_DATA3__UART4_TX		MX6SX_PAD_SD3_DATA3__UART4_DTE_TX
+#define MX6SX_PAD_SD3_DATA4__UART3_RX		MX6SX_PAD_SD3_DATA4__UART3_DCE_RX
+#define MX6SX_PAD_SD3_DATA4__UART3_TX		MX6SX_PAD_SD3_DATA4__UART3_DTE_TX
+#define MX6SX_PAD_SD3_DATA5__UART3_RX		MX6SX_PAD_SD3_DATA5__UART3_DTE_RX
+#define MX6SX_PAD_SD3_DATA5__UART3_TX		MX6SX_PAD_SD3_DATA5__UART3_DCE_TX
+#define MX6SX_PAD_SD3_DATA6__UART3_RTS_B	MX6SX_PAD_SD3_DATA6__UART3_DCE_RTS
+#define MX6SX_PAD_SD3_DATA7__UART3_CTS_B	MX6SX_PAD_SD3_DATA7__UART3_DCE_CTS
+#define MX6SX_PAD_SD4_DATA4__UART5_RX		MX6SX_PAD_SD4_DATA4__UART5_DCE_RX
+#define MX6SX_PAD_SD4_DATA4__UART5_TX		MX6SX_PAD_SD4_DATA4__UART5_DTE_TX
+#define MX6SX_PAD_SD4_DATA5__UART5_RX		MX6SX_PAD_SD4_DATA5__UART5_DTE_RX
+#define MX6SX_PAD_SD4_DATA5__UART5_TX		MX6SX_PAD_SD4_DATA5__UART5_DCE_TX
+#define MX6SX_PAD_SD4_DATA6__UART5_RTS_B	MX6SX_PAD_SD4_DATA6__UART5_DCE_RTS
+#define MX6SX_PAD_SD4_DATA7__UART5_CTS_B	MX6SX_PAD_SD4_DATA7__UART5_DCE_CTS
+
 #endif /* __DTS_IMX6SX_PINFUNC_H */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-sabreauto.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-sabreauto.dts
@@ -66,12 +66,68 @@
 		enable-active-high;
 		vin-supply = <&reg_can_en>;
 	};
+
+	reg_cs42888: cs42888_supply {
+		compatible = "regulator-fixed";
+		regulator-name = "cs42888_supply";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	sound-cs42888 {
+		compatible = "fsl,imx6-sabreauto-cs42888",
+			     "fsl,imx-audio-cs42888";
+		model = "imx-cs42888";
+		audio-cpu = <&esai>;
+		audio-asrc = <&asrc>;
+		audio-codec = <&cs42888>;
+		audio-routing =
+			"Line Out Jack", "AOUT1L",
+			"Line Out Jack", "AOUT1R",
+			"Line Out Jack", "AOUT2L",
+			"Line Out Jack", "AOUT2R",
+			"Line Out Jack", "AOUT3L",
+			"Line Out Jack", "AOUT3R",
+			"Line Out Jack", "AOUT4L",
+			"Line Out Jack", "AOUT4R",
+			"AIN1L", "Line In Jack",
+			"AIN1R", "Line In Jack",
+			"AIN2L", "Line In Jack",
+			"AIN2R", "Line In Jack";
+	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif>;
+		spdif-in;
+	};
 };
 
 &anaclk2 {
 	clock-frequency = <24576000>;
 };
 
+&clks {
+	assigned-clocks = <&clks IMX6SX_PLL4_BYPASS_SRC>,
+			  <&clks IMX6SX_PLL4_BYPASS>,
+			  <&clks IMX6SX_CLK_PLL4_POST_DIV>;
+	assigned-clock-parents = <&clks IMX6SX_CLK_LVDS2_IN>,
+				 <&clks IMX6SX_PLL4_BYPASS_SRC>;
+	assigned-clock-rates = <0>, <0>, <24576000>;
+};
+
+&esai {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esai>;
+	assigned-clocks = <&clks IMX6SX_CLK_ESAI_SEL>,
+			<&clks IMX6SX_CLK_ESAI_EXTAL>;
+	assigned-clock-parents = <&clks IMX6SX_CLK_PLL4_AUDIO_DIV>;
+	assigned-clock-rates = <0>, <24576000>;
+	status = "okay";
+};
+
 &fec1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet1>;
@@ -99,7 +155,7 @@
 &fec2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet2>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ethphy0>;
 	fsl,magic-packet;
 	status = "okay";
@@ -193,6 +249,21 @@
 		>;
 	};
 
+	pinctrl_esai: esaigrp {
+		fsl,pins = <
+			MX6SX_PAD_CSI_DATA00__ESAI_TX_CLK   0x1b030
+			MX6SX_PAD_CSI_DATA01__ESAI_TX_FS    0x1b030
+			MX6SX_PAD_CSI_HSYNC__ESAI_TX0       0x1b030
+			MX6SX_PAD_CSI_DATA04__ESAI_TX1      0x1b030
+			MX6SX_PAD_CSI_DATA06__ESAI_TX2_RX3  0x1b030
+			MX6SX_PAD_CSI_DATA07__ESAI_TX3_RX2  0x1b030
+			MX6SX_PAD_CSI_DATA02__ESAI_RX_CLK   0x1b030
+			MX6SX_PAD_CSI_DATA03__ESAI_RX_FS    0x1b030
+			MX6SX_PAD_CSI_VSYNC__ESAI_TX5_RX0   0x1b030
+			MX6SX_PAD_CSI_DATA05__ESAI_TX4_RX1  0x1b030
+		>;
+	};
+
 	pinctrl_flexcan1: flexcan1grp {
 		fsl,pins = <
 			MX6SX_PAD_QSPI1B_DQS__CAN1_TX   0x1b020
@@ -227,10 +298,16 @@
 		>;
 	};
 
+	pinctrl_spdif: spdifgrp {
+		fsl,pins = <
+			MX6SX_PAD_ENET2_COL__SPDIF_IN           0x1b0b0
+		>;
+	};
+
 	pinctrl_uart1: uart1grp {
 		fsl,pins = <
-			MX6SX_PAD_GPIO1_IO04__UART1_TX		0x1b0b1
-			MX6SX_PAD_GPIO1_IO05__UART1_RX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX		0x1b0b1
 		>;
 	};
 
@@ -313,6 +390,17 @@
 	pinctrl-0 = <&pinctrl_i2c2>;
 	status = "okay";
 
+	cs42888: cs42888@48 {
+		compatible = "cirrus,cs42888";
+		reg = <0x48>;
+		clocks = <&anaclk2 0>;
+		clock-names = "mclk";
+		VA-supply = <&reg_cs42888>;
+		VD-supply = <&reg_cs42888>;
+		VLS-supply = <&reg_cs42888>;
+		VLC-supply = <&reg_cs42888>;
+	};
+
 	touchscreen@4 {
 		compatible = "eeti,egalax_ts";
 		reg = <0x04>;
@@ -454,6 +542,14 @@
 	};
 };
 
+&spdif {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif>;
+	assigned-clocks = <&clks IMX6SX_CLK_SPDIF_PODF>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
 &wdog1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_wdog>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb-mqs.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-sdb-mqs.dts
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2014 Freescale Semiconductor, Inc.
+
+#include "imx6sx-sdb.dts"
+/ {
+
+	sound {
+		status = "disabled";
+	};
+
+	sound-mqs {
+		compatible = "fsl,imx6sx-sdb-mqs",
+			     "fsl,imx-audio-mqs";
+		model = "mqs-audio";
+		audio-cpu = <&sai1>;
+		audio-asrc = <&asrc>;
+		audio-codec = <&mqs>;
+	};
+};
+
+&usdhc2 {
+	/* pin conflict with mqs*/
+	status = "disabled";
+};
+
+&mqs {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_mqs>;
+	clocks = <&clks IMX6SX_CLK_SAI1>;
+	clock-names = "mclk";
+	status = "okay";
+};
+
+&sai1 {
+	pinctrl-0 = <>;
+	status = "okay";
+};
+
+&ssi2 {
+	status = "disabled";
+};
+
+&sdma {
+	gpr = <&gpr>;
+	/* SDMA event remap for SAI1 */
+	fsl,sdma-event-remap = <0 15 1>, <0 16 1>;
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb-reva.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-sdb-reva.dts
@@ -159,10 +159,6 @@
 	vin-supply = <&vgen6_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&vgen6_reg>;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-sdb.dts
@@ -141,10 +141,6 @@
 	vin-supply = <&vgen6_reg>;
 };
 
-&reg_vdd3p0 {
-	vin-supply = <&sw2_reg>;
-};
-
 &reg_vdd2p5 {
 	vin-supply = <&vgen6_reg>;
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-sdb.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-sdb.dtsi
@@ -153,6 +153,8 @@
 
 	sound {
 		compatible = "fsl,imx6sx-sdb-wm8962", "fsl,imx-audio-wm8962";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_hp>;
 		model = "wm8962-audio";
 		ssi-controller = <&ssi2>;
 		audio-codec = <&codec>;
@@ -165,6 +167,7 @@
 			"IN3R", "AMIC";
 		mux-int-port = <2>;
 		mux-ext-port = <6>;
+		hp-det-gpio = <&gpio1 17 GPIO_ACTIVE_LOW>;
 	};
 
 	panel {
@@ -179,6 +182,15 @@
 			};
 		};
 	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif",
+			   "fsl,imx6sx-sdb-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif>;
+		spdif-out;
+	};
+
 };
 
 &audmux {
@@ -213,7 +225,7 @@
 &fec2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet2>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ethphy2>;
 	status = "okay";
 };
@@ -281,6 +293,7 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
@@ -296,6 +309,14 @@
 	status = "disabled";
 };
 
+&spdif {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif>;
+	assigned-clocks = <&clks IMX6SX_CLK_SPDIF_PODF>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
 &ssi2 {
 	status = "okay";
 };
@@ -450,6 +471,12 @@
 			>;
 		};
 
+		pinctrl_hp: hpgrp {
+			fsl,pins = <
+				MX6SX_PAD_CSI_DATA03__GPIO1_IO_17 0x17059
+			>;
+		};
+
 		pinctrl_i2c1: i2c1grp {
 			fsl,pins = <
 				MX6SX_PAD_GPIO1_IO01__I2C1_SDA		0x4001b8b1
@@ -505,6 +532,13 @@
 			>;
 		};
 
+		pinctrl_mqs: mqsgrp {
+			fsl,pins = <
+				MX6SX_PAD_SD2_CLK__MQS_RIGHT 0x120b0
+				MX6SX_PAD_SD2_CMD__MQS_LEFT  0x120b0
+			>;
+		};
+
 		pinctrl_pcie: pciegrp {
 			fsl,pins = <
 				MX6SX_PAD_ENET1_COL__GPIO2_IO_0 0x10b0
@@ -562,19 +596,25 @@
 			>;
 		};
 
+		pinctrl_spdif: spdifgrp {
+			fsl,pins = <
+				MX6SX_PAD_SD4_DATA4__SPDIF_OUT          0x1b0b0
+			>;
+		};
+
 		pinctrl_uart1: uart1grp {
 			fsl,pins = <
-				MX6SX_PAD_GPIO1_IO04__UART1_TX		0x1b0b1
-				MX6SX_PAD_GPIO1_IO05__UART1_RX		0x1b0b1
+				MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX	0x1b0b1
+				MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX	0x1b0b1
 			>;
 		};
 
 		pinctrl_uart5: uart5grp {
 			fsl,pins = <
-				MX6SX_PAD_KEY_ROW3__UART5_RX		0x1b0b1
-				MX6SX_PAD_KEY_COL3__UART5_TX		0x1b0b1
-				MX6SX_PAD_KEY_ROW2__UART5_CTS_B		0x1b0b1
-				MX6SX_PAD_KEY_COL2__UART5_RTS_B		0x1b0b1
+				MX6SX_PAD_KEY_ROW3__UART5_DCE_RX	0x1b0b1
+				MX6SX_PAD_KEY_COL3__UART5_DCE_TX	0x1b0b1
+				MX6SX_PAD_KEY_ROW2__UART5_DCE_CTS	0x1b0b1
+				MX6SX_PAD_KEY_COL2__UART5_DCE_RTS	0x1b0b1
 			>;
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-softing-vining-2000.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-softing-vining-2000.dts
@@ -352,6 +352,12 @@
 		>;
 	};
 
+	pinctrl_pcie: pciegrp {
+		fsl,pins = <
+			MX6SX_PAD_NAND_DATA02__GPIO4_IO_6	0x10b0
+		>;
+	};
+
 	pinctrl_pwm1: pwm1grp-1 {
 		fsl,pins = <
 			/* blue LED */
@@ -384,15 +390,15 @@
 
 	pinctrl_uart1: uart1grp {
 		fsl,pins = <
-			MX6SX_PAD_GPIO1_IO04__UART1_TX		0x1b0b1
-			MX6SX_PAD_GPIO1_IO05__UART1_RX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX	0x1b0b1
+			MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX	0x1b0b1
 		>;
 	};
 
 	pinctrl_uart2: uart2grp {
 		fsl,pins = <
-			MX6SX_PAD_GPIO1_IO06__UART2_TX		0x1b0b1
-			MX6SX_PAD_GPIO1_IO07__UART2_RX		0x1b0b1
+			MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX	0x1b0b1
+			MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX	0x1b0b1
 		>;
 	};
 
@@ -490,19 +496,30 @@
 	};
 };
 
+&pcie {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pcie>;
+	reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>;
+	reset-gpio-active-high;
+	status = "okay";
+};
+
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
 };
 
 &pwm2 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm2>;
 	status = "okay";
 };
 
 &pwm6 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm6>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
@@ -235,28 +235,28 @@
 
 	pinctrl_uart1: uart1grp {
 		fsl,pins =
-			<MX6SX_PAD_GPIO1_IO04__UART1_TX		0x1b0b1>,
-			<MX6SX_PAD_GPIO1_IO05__UART1_RX		0x1b0b1>;
+			<MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX	0x1b0b1>,
+			<MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX	0x1b0b1>;
 	};
 
 	pinctrl_uart2: uart2grp {
 		fsl,pins =
-			<MX6SX_PAD_GPIO1_IO06__UART2_TX		0x1b0b1>,
-			<MX6SX_PAD_GPIO1_IO07__UART2_RX		0x1b0b1>;
+			<MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX	0x1b0b1>,
+			<MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX	0x1b0b1>;
 	};
 
 	pinctrl_uart3: uart3grp {
 		fsl,pins =
-			<MX6SX_PAD_SD3_DATA4__UART3_RX          0x13059>,
-			<MX6SX_PAD_SD3_DATA5__UART3_TX          0x13059>,
-			<MX6SX_PAD_SD3_DATA6__UART3_RTS_B       0x13059>,
-			<MX6SX_PAD_SD3_DATA7__UART3_CTS_B       0x13059>;
+			<MX6SX_PAD_SD3_DATA4__UART3_DCE_RX	0x13059>,
+			<MX6SX_PAD_SD3_DATA5__UART3_DCE_TX	0x13059>,
+			<MX6SX_PAD_SD3_DATA6__UART3_DCE_RTS	0x13059>,
+			<MX6SX_PAD_SD3_DATA7__UART3_DCE_CTS	0x13059>;
 	};
 
 	pinctrl_uart5: uart5grp {
 		fsl,pins =
-			<MX6SX_PAD_SD4_DATA4__UART5_RX		0x1b0b1>,
-			<MX6SX_PAD_SD4_DATA5__UART5_TX		0x1b0b1>;
+			<MX6SX_PAD_SD4_DATA4__UART5_DCE_RX	0x1b0b1>,
+			<MX6SX_PAD_SD4_DATA5__UART5_DCE_TX	0x1b0b1>;
 	};
 
 	pinctrl_uart6: uart6grp {
@@ -265,10 +265,10 @@
 			<MX6SX_PAD_CSI_DATA01__UART6_DSR_B	0x1b0b1>,
 			<MX6SX_PAD_CSI_DATA02__UART6_DTR_B	0x1b0b1>,
 			<MX6SX_PAD_CSI_DATA03__UART6_DCD_B	0x1b0b1>,
-			<MX6SX_PAD_CSI_DATA04__UART6_RX		0x1b0b1>,
-			<MX6SX_PAD_CSI_DATA05__UART6_TX		0x1b0b1>,
-			<MX6SX_PAD_CSI_DATA06__UART6_RTS_B	0x1b0b1>,
-			<MX6SX_PAD_CSI_DATA07__UART6_CTS_B	0x1b0b1>;
+			<MX6SX_PAD_CSI_DATA04__UART6_DCE_RX	0x1b0b1>,
+			<MX6SX_PAD_CSI_DATA05__UART6_DCE_TX	0x1b0b1>,
+			<MX6SX_PAD_CSI_DATA06__UART6_DCE_RTS	0x1b0b1>,
+			<MX6SX_PAD_CSI_DATA07__UART6_DCE_CTS	0x1b0b1>;
 	};
 
 	pinctrl_otg1_reg: otg1grp {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-x6med35-pdk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-x6med35-pdk.dts
@@ -0,0 +1,944 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 Shrirang Bagul <shrirang.bagul@canonical.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/sound/fsl-imx-audmux.h>
+#include "imx6sx-x6med35-som.dtsi"
+
+/ {
+	model = "Honeywell i.MX6SX X6Med35 PDK";
+	compatible = "Honeywell,x6med35-pdk", "fsl,imx6sx";
+
+	aliases {
+		rtc0 = &rtc;
+		rtc1 = &snvs_rtc;
+		watchdog0 = &rtc;
+		watchdog1 = &wdog1;
+	};
+
+	beeper {
+		compatible = "pwm-beeper";
+		pwms = <&pwm4 0 1000000 0>;
+	};
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpiokeys>;
+
+		s1 {
+			label = "s1";
+			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_ESC>;
+			wakeup-source;
+		};
+
+		s2 {
+			label = "s2";
+			gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_SPACE>;
+			wakeup-source;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		dl1 {
+			label = "yellow:dl1";
+			gpios = <&led_expander 0 GPIO_ACTIVE_LOW>;
+		};
+
+		dl2 {
+			label = "blue:dl2";
+			gpios = <&led_expander 1 GPIO_ACTIVE_LOW>;
+		};
+
+		dl3 {
+			label = "green:dl3";
+			gpios = <&led_expander 2 GPIO_ACTIVE_LOW>;
+		};
+
+		dl4 {
+			label = "green:dl4";
+			gpios = <&led_expander 3 GPIO_ACTIVE_LOW>;
+		};
+
+		dl5 {
+			label = "green:dl5";
+			gpios = <&led_expander 4 GPIO_ACTIVE_LOW>;
+		};
+
+		dl6 {
+			label = "green:dl6";
+			gpios = <&led_expander 5 GPIO_ACTIVE_LOW>;
+		};
+
+		dl7 {
+			label = "green:dl7";
+			gpios = <&led_expander 6 GPIO_ACTIVE_LOW>;
+		};
+
+		dl8 {
+			label = "green:dl8";
+			gpios = <&led_expander 7 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-0 = <&pinctrl_usb_vbus>;
+		pinctrl-names = "default";
+		regulator-name = "vbus_usb_pwr_5v";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_cam_1v8: regulator-cam-1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "cam_1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		gpio = <&gpio_exp_20 14 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_cam_2v8: regulator-cam-2v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "cam_2v8";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpio_exp_20 15 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_wifi: regulator-wifi {
+		compatible = "regulator-fixed";
+		regulator-name = "wifi_power";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		gpio = <&gpio2 10 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		startup-delay-us = <10000>;
+		off-on-delay-us = <12000>;
+	};
+
+	reg_bt_power: regulator-bt-power {
+		compatible = "regulator-fixed";
+		regulator-name = "bt_power";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		startup-delay-us = <10000>;
+		off-on-delay-us = <12000>;
+	};
+
+	reg_v_3v3: regulator-v-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_3v3";
+		regulator-max-microvolt = <3300000>;
+		regulator-min-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_v_5v0: regulator-v-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_5v0";
+		regulator-max-microvolt = <5000000>;
+		regulator-min-microvolt = <5000000>;
+		regulator-always-on;
+	};
+
+	sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "x6med35-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&sound_codec>;
+		simple-audio-card,frame-master = <&sound_codec>;
+		simple-audio-card,widgets =
+						"Microphone", "AMIC",
+						"Speaker", "Ext Spk";
+		simple-audio-card,routing =
+						"Ext Spk", "LSPK",
+						"Ext Spk", "RSPK",
+					    "RMICP", "AMIC",
+					    "RMICN", "AMIC",
+					    "AMIC", "Mic Bias";
+
+		sound_cpu: simple-audio-card,cpu {
+			sound-dai = <&ssi2>;
+		};
+
+		sound_codec: simple-audio-card,codec {
+			sound-dai = <&codec>;
+			clocks = <&clks IMX6SX_CLK_AUDIO>;
+		};
+	};
+};
+
+&adc1 {
+	vref-supply = <&reg_v_3v3>;
+	status = "okay";
+};
+
+&adc2 {
+	vref-supply = <&reg_v_3v3>;
+	status = "okay";
+};
+
+&anatop {
+	status = "disabled";
+};
+
+&audmux {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_audmux>;
+	status = "okay";
+
+	ssi2 {
+		fsl,audmux-port = <1>;
+		fsl,port-config = <
+			(IMX_AUDMUX_V2_PTCR_SYN |
+			IMX_AUDMUX_V2_PTCR_TFSDIR |
+			IMX_AUDMUX_V2_PTCR_TFSEL(2) |
+			IMX_AUDMUX_V2_PTCR_TCLKDIR |
+			IMX_AUDMUX_V2_PTCR_TCSEL(2))
+			IMX_AUDMUX_V2_PDCR_RXDSEL(2)
+		>;
+	};
+
+	aud3 {
+		fsl,audmux-port = <2>;
+		fsl,port-config = <
+			IMX_AUDMUX_V2_PTCR_SYN
+			IMX_AUDMUX_V2_PDCR_RXDSEL(1)
+		>;
+	};
+};
+
+&csi1 {
+	compatible = "fsl,imx6s-csi";
+	status = "okay";
+
+	/delete-property/clock-names;
+	clock-names = "disp-axi", "csi_mclk", "disp_dcic";
+	power-domains = <&pd_disp>;
+
+	port {
+		csi1_ep: endpoint {
+			remote-endpoint = <&ov5640_ep>;
+		};
+	};
+};
+
+/* Common module P1 */
+&ecspi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1>;
+	status = "okay";
+
+	num-cs = <1>;
+	cs-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+
+	spidev@0 {
+		compatible = "rohm,dh2228fv";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+		dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
+		dma-names = "rx", "tx";
+	};
+};
+
+/* Common module P2 */
+&ecspi3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi3>;
+	status = "okay";
+
+	num-cs = <1>;
+	cs-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
+
+	spidev@0 {
+		compatible = "rohm,dh2228fv";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+		dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
+		dma-names = "rx", "tx";
+	};
+};
+
+/* LTE module */
+&ecspi5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi5>;
+	status = "okay";
+
+	num-cs = <1>;
+	cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+
+	spidev@0 {
+		compatible = "rohm,dh2228fv";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+		dmas = <&sdma 11 7 1>, <&sdma 12 7 2>;
+		dma-names = "rx", "tx";
+	};
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	phy-reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+	phy-reset-duration = <20>;
+	nvmem-cells = <&eth_mac1>;
+	nvmem-cell-names = "mac-address";
+	nvmem_macaddr_swap;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+			micrel,led-mode = <0>;
+		};
+	};
+};
+
+&fec2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet2>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy1>;
+	phy-reset-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+	phy-reset-duration = <20>;
+	nvmem-cells = <&eth_mac2>;
+	nvmem-cell-names = "mac-address";
+	nvmem_macaddr_swap;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy1: ethernet-phy@2 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <2>;
+			micrel,led-mode = <0>;
+		};
+	};
+};
+
+&i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	rtc: rtc@68 {
+		compatible = "st,m41t82";
+		reg = <0x68>;
+	};
+
+	codec: nau8822@1a {
+		compatible = "nuvoton,nau8822";
+		reg = <0x1a>;
+		clocks = <&clks IMX6SX_CLK_AUDIO>;
+		#sound-dai-cells = <0>;
+	};
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	clock-frequency = <1000000>;
+	status = "okay";
+
+	eeeprom: eeeprom@52 {
+		compatible = "microchip,24lc32ac", "atmel,24c32";
+		reg = <0x52>;
+		page-size = <32>;
+	};
+};
+
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	clock-frequency = <400000>;
+	status = "okay";
+
+	gpio_exp_20: gpio@20 {
+		compatible = "ti,tca6416";
+		reg = <0x20>;
+		#gpio-cells = <2>;
+		gpio-controller;
+		interrupt-controller;
+		interrupt-parent = <&gpio3>;
+		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+		gpio-line-names =
+			"port1_3v3_pwr_ctl", "port2_3v3_pwr_ctl",
+			"common_port1_nrst", "common_port2_nrst",
+			"board_id_1", "board_id_2", "board_id_3",
+			"board_id_4", "lte_igt", "lte_radio_usb_ctrl",
+			"lte_pwr_en", "lte_emergency_off", "lte_uart_dtr",
+			"lte_vdd5v_en",	"cam_1v8_en", "cam_2v8_en";
+	};
+
+	led_expander: led-controller@21 {
+		compatible = "ti,tca6408";
+		reg = <0x21>;
+		vcc-supply = <&reg_vdd_3v3>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
+};
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	clock-frequency = <400000>;
+	status = "okay";
+
+	ov5640: camera@3c {
+		compatible = "ovti,ov5640";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ov5640>;
+		reg = <0x3c>;
+		clocks = <&clks IMX6SX_CLK_CSI>;
+		clock-names = "csi_mclk";
+		DOVDD-supply = <&reg_cam_1v8>; /* 1.8v */
+		AVDD-supply = <&reg_cam_2v8>;  /* 2.8v */
+		DVDD-supply = <&reg_cam_1v8>;  /* 1.8v */
+		pwn-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
+		rst-gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
+		csi_id = <0>;
+		mclk = <24000000>;
+		mclk_source = <0>;
+		rotation = <180>;
+
+		port {
+			/* Parallel bus endpoint */
+			ov5640_ep: endpoint {
+				remote-endpoint = <&csi1_ep>;
+				bus-width = <8>;
+				data-shift = <2>; /* lines 9:2 are used */
+				hsync-active = <0>;
+				vsync-active = <0>;
+				pclk-sample = <1>;
+			};
+		};
+	};
+};
+
+&ocotp {
+	eth_mac1: mac-address@88 {
+		reg = <0x88 6>;
+	};
+
+	eth_mac2: mac-address@8c {
+		reg = <0x8c 6>;
+	};
+};
+
+&pwm4 {
+	#pwm-cells = <2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm4>;
+	status = "okay";
+};
+
+&pxp {
+	status = "okay";
+};
+
+&qspi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_qspi2>;
+	status = "disabled";
+
+	flash0: w25q128@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "winbond,w25q128", "jedec,spi-nor";
+		spi-max-frequency = <15625000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+		reg = <0>;
+	};
+};
+
+&snvs_poweroff {
+	status = "okay";
+};
+
+&ssi2 {
+	status = "okay";
+};
+
+&usbotg1 {
+	vbus-supply = <&reg_usb_otg1_vbus>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usb_otg1_id>;
+	srp-disable;
+	hnp-disable;
+	adp-disable;
+	dr_mode = "otg";
+	status = "okay";
+};
+
+&usbotg2 {
+	pinctrl-names = "default";
+	srp-disable;
+	hnp-disable;
+	adp-disable;
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usbphy1 {
+	fsl,tx-d-cal = <106>;
+};
+
+&usbphy2 {
+	fsl,tx-d-cal = <106>;
+};
+
+/* Cortex-A9 Debug UART */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	status = "okay";
+};
+
+/* UART For BT */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+/* UART For WWAN/Modem */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+/* UART For RS-485#P11*/
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	rts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+	linux,rs485-enabled-at-boot-time;
+	rs485-rx-during-tx;
+	status = "okay";
+};
+
+/* UART For RS-485#P12*/
+&uart5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart5>;
+	rts-gpios = <&gpio2 17 GPIO_ACTIVE_LOW>;
+	linux,rs485-enabled-at-boot-time;
+	rs485-rx-during-tx;
+	status = "okay";
+};
+
+/* UART For TTL-232#P15/P19*/
+&uart6 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart6>;
+	status = "okay";
+};
+
+/* Wifi SDIO */
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	vmmc-supply = <&reg_wifi>;
+	bus-width = <4>;
+	non-removable;
+	keep-power-in-suspend;
+	enable-sdio-wakeup;
+	status = "okay";
+
+	wifi@1 {
+		compatible = "brcm,bcm4329-fmac";
+		reg = <1>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-names = "host-wake";
+	};
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	imx6x-x6med35-som {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_hog1 &pinctrl_board_id>;
+
+		pinctrl_hog1: hoggrp-1 {
+			fsl,pins = <
+				MX6SX_PAD_USB_H_DATA__GPIO7_IO_10	0x83030
+			>;
+		};
+
+		pinctrl_board_id: hoggrp-2 {
+			fsl,pins = <
+				MX6SX_PAD_LCD1_DATA00__GPIO3_IO_1	0x110b0
+				MX6SX_PAD_LCD1_DATA01__GPIO3_IO_2	0x110b0
+				MX6SX_PAD_LCD1_DATA02__GPIO3_IO_3	0x110b0
+				MX6SX_PAD_LCD1_DATA23__GPIO3_IO_24	0x110b0
+			>;
+		};
+
+		pinctrl_audmux: audmuxgrp {
+			fsl,pins = <
+				MX6SX_PAD_LCD1_ENABLE__AUDMUX_AUD3_TXC	0x130b0
+				MX6SX_PAD_LCD1_VSYNC__AUDMUX_AUD3_TXFS	0x130b0
+				MX6SX_PAD_LCD1_HSYNC__AUDMUX_AUD3_TXD	0x12098
+				MX6SX_PAD_LCD1_RESET__AUDMUX_AUD3_RXD	0x130b0
+				MX6SX_PAD_ENET1_MDIO__AUDMUX_MCLK	0x13098
+			>;
+		};
+
+		pinctrl_ecspi1: ecspi1grp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1A_DATA0__ECSPI1_MOSI		0x1b091
+				MX6SX_PAD_QSPI1A_DATA1__ECSPI1_MISO		0x1b091
+				MX6SX_PAD_QSPI1A_SCLK__ECSPI1_SCLK		0x1b099
+				MX6SX_PAD_QSPI1A_SS0_B__GPIO4_IO_22		0x0b0b9
+			>;
+		};
+
+		pinctrl_ecspi3: ecspi3grp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1B_DATA0__ECSPI3_MOSI		0x1b091
+				MX6SX_PAD_QSPI1B_DATA1__ECSPI3_MISO		0x1b091
+				MX6SX_PAD_QSPI1B_SCLK__ECSPI3_SCLK		0x1b099
+				MX6SX_PAD_QSPI1B_SS0_B__GPIO4_IO_30		0x0b0b9
+			>;
+		};
+
+		pinctrl_ecspi5: ecspi5grp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1A_DQS__ECSPI5_MOSI		0x1b091
+				MX6SX_PAD_QSPI1A_SS1_B__ECSPI5_MISO		0x1b091
+				MX6SX_PAD_QSPI1B_SS1_B__ECSPI5_SCLK		0x1b099
+				MX6SX_PAD_QSPI1B_DQS__GPIO4_IO_28		0x0b0b9
+			>;
+		};
+
+		pinctrl_enet1: enet1grp {
+			fsl,pins = <
+				MX6SX_PAD_ENET2_CRS__ENET1_MDIO		0xa0b1
+				MX6SX_PAD_ENET2_COL__ENET1_MDC		0xa0b1
+
+				MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0	0xa0b1
+				MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1	0xa0b1
+				MX6SX_PAD_RGMII1_TD2__ENET1_TX_DATA_2	0xa0b1
+				MX6SX_PAD_RGMII1_TD3__ENET1_TX_DATA_3	0xa0b1
+				MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN	0xa0b1
+				MX6SX_PAD_RGMII1_TXC__ENET1_RGMII_TXC	0xa0b9
+
+				MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0	0x3081
+				MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1	0x3081
+				MX6SX_PAD_RGMII1_RD2__ENET1_RX_DATA_2	0x3081
+				MX6SX_PAD_RGMII1_RD3__ENET1_RX_DATA_3	0x3081
+				MX6SX_PAD_RGMII1_RXC__ENET1_RX_CLK	0x3081
+				MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN	0x3081
+
+				/* phy reset */
+				MX6SX_PAD_ENET1_RX_CLK__GPIO2_IO_4		0x10b0
+			>;
+		};
+
+		pinctrl_rmii_enet1: rmiienet1grp {
+			fsl,pins = <
+				MX6SX_PAD_ENET2_CRS__ENET1_MDIO		0xa089
+				MX6SX_PAD_ENET2_COL__ENET1_MDC		0xa089
+
+				MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0   0xb099
+				MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1   0xb099
+				MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN	0xb099
+				MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4000b099
+
+				MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0   0xb099
+				MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1   0xb099
+				MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN   	0xb099
+				MX6SX_PAD_RGMII1_RXC__ENET1_RX_ER 	0xb099
+
+				/* phy reset */
+				MX6SX_PAD_ENET1_RX_CLK__GPIO2_IO_4 	0xb099
+			>;
+		};
+
+		pinctrl_enet2: enet2grp {
+			fsl,pins = <
+				MX6SX_PAD_ENET1_CRS__ENET2_MDIO		0xa0b1
+				MX6SX_PAD_ENET1_COL__ENET2_MDC		0xa0b1
+
+				MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0	0xa0b1
+				MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1	0xa0b1
+				MX6SX_PAD_RGMII2_TD2__ENET2_TX_DATA_2	0xa0b1
+				MX6SX_PAD_RGMII2_TD3__ENET2_TX_DATA_3	0xa0b1
+				MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN	0xa0b1
+				MX6SX_PAD_RGMII2_TXC__ENET2_RGMII_TXC	0xa0b9
+
+				MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0	0x3081
+				MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1	0x3081
+				MX6SX_PAD_RGMII2_RD2__ENET2_RX_DATA_2	0x3081
+				MX6SX_PAD_RGMII2_RD3__ENET2_RX_DATA_3	0x3081
+				MX6SX_PAD_RGMII2_RXC__ENET2_RX_CLK	0x3081
+				MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN	0x3081
+
+				/* phy reset */
+				MX6SX_PAD_ENET1_MDC__GPIO2_IO_2		0x10b0
+			>;
+		};
+
+		pinctrl_rmii_enet2: rmiienet2grp {
+			fsl,pins = <
+				MX6SX_PAD_ENET1_CRS__ENET2_MDIO		0xa089
+				MX6SX_PAD_ENET1_COL__ENET2_MDC		0xa089
+
+				MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0	0xb099
+				MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1	0xb099
+				MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN	0xb099
+				MX6SX_PAD_RGMII2_RXC__ENET2_RX_ER	0xb099
+
+				MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0	0xb099
+				MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1	0xb099
+				MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN	0xb099
+				MX6SX_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4000b099
+
+				/* phy reset */
+				MX6SX_PAD_ENET1_MDC__GPIO2_IO_2		0xb099
+			>;
+		};
+
+		pinctrl_flexcan1: flexcan1grp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1B_DQS__CAN1_TX		0x1b020
+				MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX		0x1b020
+			>;
+		};
+
+		pinctrl_flexcan2: flexcan2grp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX		0x1b020
+				MX6SX_PAD_QSPI1A_DQS__CAN2_TX		0x1b020
+			>;
+		};
+
+		pinctrl_gpiokeys: gpiokeysgrp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO11__GPIO1_IO_11		0xf000
+				MX6SX_PAD_NAND_RE_B__GPIO4_IO_12		0xf000
+			>;
+		};
+
+		pinctrl_i2c1: i2c1grp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO01__I2C1_SDA		0x4001b8b1
+				MX6SX_PAD_GPIO1_IO00__I2C1_SCL		0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c3: i2c3grp {
+			fsl,pins = <
+				MX6SX_PAD_KEY_ROW4__I2C3_SDA		0x4001b8b1
+				MX6SX_PAD_KEY_COL4__I2C3_SCL		0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c4: i2c4grp {
+			fsl,pins = <
+				MX6SX_PAD_SD3_DATA1__I2C4_SDA		0x4001b8b1
+				MX6SX_PAD_SD3_DATA0__I2C4_SCL		0x4001b8b1
+			>;
+		};
+
+		pinctrl_mqs: mqsgrp {
+			fsl,pins = <
+				MX6SX_PAD_SD2_CLK__MQS_RIGHT 0x120b0
+				MX6SX_PAD_SD2_CMD__MQS_LEFT  0x120b0
+			>;
+		};
+
+		pinctrl_ov5640: ov5640grp {
+			fsl,pins = <
+				MX6SX_PAD_LCD1_DATA07__CSI1_MCLK		0x110b0
+				MX6SX_PAD_LCD1_DATA06__CSI1_PIXCLK		0x110b0
+				MX6SX_PAD_LCD1_DATA04__CSI1_VSYNC		0x110b0
+				MX6SX_PAD_LCD1_DATA05__CSI1_HSYNC		0x110b0
+				MX6SX_PAD_LCD1_DATA15__CSI1_DATA_2		0x110b0
+				MX6SX_PAD_LCD1_DATA14__CSI1_DATA_3		0x110b0
+				MX6SX_PAD_LCD1_DATA13__CSI1_DATA_4		0x110b0
+				MX6SX_PAD_LCD1_DATA12__CSI1_DATA_5		0x110b0
+				MX6SX_PAD_LCD1_DATA11__CSI1_DATA_6		0x110b0
+				MX6SX_PAD_LCD1_DATA10__CSI1_DATA_7		0x110b0
+				MX6SX_PAD_LCD1_DATA09__CSI1_DATA_8		0x110b0
+				MX6SX_PAD_LCD1_DATA08__CSI1_DATA_9		0x110b0
+
+				MX6SX_PAD_LCD1_DATA16__GPIO3_IO_17		0x80000000
+				MX6SX_PAD_LCD1_DATA17__GPIO3_IO_18		0x80000000
+			>;
+		};
+
+		pinctrl_pwm4: pwm4grp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO13__PWM4_OUT 0x110b0
+			>;
+		};
+
+		pinctrl_qspi2: qspi2grp {
+			fsl,pins = <
+				MX6SX_PAD_NAND_WP_B__QSPI2_A_DATA_0     0x70f1
+				MX6SX_PAD_NAND_READY_B__QSPI2_A_DATA_1  0x70f1
+				MX6SX_PAD_NAND_CE0_B__QSPI2_A_DATA_2    0x70f1
+				MX6SX_PAD_NAND_CE1_B__QSPI2_A_DATA_3    0x70f1
+				MX6SX_PAD_NAND_CLE__QSPI2_A_SCLK        0x70f1
+				MX6SX_PAD_NAND_ALE__QSPI2_A_SS0_B       0x70f1
+			>;
+		};
+
+		pinctrl_vcc_sd3: vccsd3grp {
+			fsl,pins = <
+				MX6SX_PAD_KEY_COL1__GPIO2_IO_11		0x17059
+			>;
+		};
+
+		pinctrl_sai1: sai1grp {
+			fsl,pins = <
+				MX6SX_PAD_CSI_DATA00__SAI1_TX_BCLK	0x130b0
+				MX6SX_PAD_CSI_DATA01__SAI1_TX_SYNC	0x130b0
+				MX6SX_PAD_CSI_HSYNC__SAI1_TX_DATA_0	0x120b0
+				MX6SX_PAD_CSI_VSYNC__SAI1_RX_DATA_0	0x130b0
+				MX6SX_PAD_CSI_PIXCLK__AUDMUX_MCLK	0x130b0
+			>;
+		};
+
+		pinctrl_uart1: uart1grp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO04__UART1_DCE_TX	0x1b0b1
+				MX6SX_PAD_GPIO1_IO05__UART1_DCE_RX	0x1b0b1
+			>;
+		};
+
+		pinctrl_uart2: uart2grp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO06__UART2_DCE_TX	0x1b0b1
+				MX6SX_PAD_GPIO1_IO07__UART2_DCE_RX	0x1b0b1
+				MX6SX_PAD_GPIO1_IO08__UART2_RTS_B	0x1b0b1
+				MX6SX_PAD_GPIO1_IO09__UART2_CTS_B	0x1b0b1
+				/* bt_reg GPIO */
+				MX6SX_PAD_GPIO1_IO02__GPIO1_IO_2	0x1b0b1
+			>;
+		};
+
+		pinctrl_uart3: uart3grp {
+			fsl,pins = <
+				MX6SX_PAD_SD3_DATA4__UART3_RX	0x1b0b1
+				MX6SX_PAD_SD3_DATA5__UART3_TX	0x1b0b1
+				MX6SX_PAD_SD3_DATA6__UART3_RTS_B	0x1b0b1
+				MX6SX_PAD_SD3_DATA7__UART3_CTS_B	0x1b0b1
+			>;
+		};
+
+		pinctrl_uart4: uart4grp {
+			fsl,pins = <
+				MX6SX_PAD_SD3_CMD__UART4_DCE_TX	0x1b0b1
+				MX6SX_PAD_SD3_DATA3__UART4_DCE_RX	0x1b0b1
+				MX6SX_PAD_SD3_CLK__UART4_DCE_CTS	0x1b0b1
+				MX6SX_PAD_SD3_DATA2__UART4_DCE_RTS	0x1b0b1
+				/* RS485_CM_PORT_UART_SEL#2 */
+				MX6SX_PAD_NAND_WE_B__GPIO4_IO_14	0x0b0b9
+			>;
+		};
+
+		pinctrl_uart5: uart5grp {
+			fsl,pins = <
+				MX6SX_PAD_KEY_ROW3__UART5_DCE_RX	0x1b0b1
+				MX6SX_PAD_KEY_COL3__UART5_DCE_TX	0x1b0b1
+				MX6SX_PAD_KEY_ROW2__UART5_DCE_CTS	0x1b0b1
+				MX6SX_PAD_KEY_COL2__UART5_DCE_RTS	0x1b0b1
+				/* RS485_CM_PORT_UART_SEL#1 */
+				MX6SX_PAD_NAND_DATA05__GPIO4_IO_9	0x0b0b9
+			>;
+		};
+
+		pinctrl_uart6: uart6grp {
+			fsl,pins = <
+				MX6SX_PAD_KEY_COL1__UART6_DCE_TX	0x1b0b1
+				MX6SX_PAD_KEY_ROW1__UART6_DCE_RX	0x1b0b1
+				/* RS232_UART_SEL */
+				MX6SX_PAD_KEY_ROW0__GPIO2_IO_15		0x0b0b9
+			>;
+		};
+
+		pinctrl_usb_cc: usbccgrp {
+			fsl,pins = <
+				MX6SX_PAD_LCD1_DATA22__GPIO3_IO_23	0x10b0
+			>;
+		};
+
+		pinctrl_usb_vbus: usbvbusgrp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1A_DATA2__GPIO4_IO_18	0x10b0
+			>;
+		};
+
+		pinctrl_usb_otg1_id: usbotg1idgrp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID	0x17059
+				MX6SX_PAD_QSPI1A_DATA3__USB_OTG1_OC		0x17059
+			>;
+		};
+
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				MX6SX_PAD_SD2_CMD__USDHC2_CMD		0x17059
+				MX6SX_PAD_SD2_CLK__USDHC2_CLK		0x10059
+				MX6SX_PAD_SD2_DATA0__USDHC2_DATA0	0x17059
+				MX6SX_PAD_SD2_DATA1__USDHC2_DATA1	0x17059
+				MX6SX_PAD_SD2_DATA2__USDHC2_DATA2	0x17059
+				MX6SX_PAD_SD2_DATA3__USDHC2_DATA3	0x17059
+				/* wifi power GPIO */
+				MX6SX_PAD_KEY_COL0__GPIO2_IO_10		0x17059
+			>;
+		};
+
+		pinctrl_wdog: wdoggrp {
+			fsl,pins = <
+				MX6SX_PAD_GPIO1_IO03__WDOG2_WDOG_B 0x30b0
+			>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx-x6med35-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx-x6med35-som.dtsi
@@ -0,0 +1,216 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 Shrirang Bagul <shrirang.bagul@canonical.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "imx6sx.dtsi"
+
+/ {
+	memory@80000000 {
+		device_type = "memory";
+		linux,usable-memory = <0x80000000 0x1ff00000>;
+	};
+
+	ocram_optee {
+		compatible = "fsl,optee-lpm-sram";
+		reg = <0x008f8000 0x4000>;
+		overw_reg = <&ocram 0x00904000 0x1000>,
+					<&ocram 0x00905000 0x1b000>,
+					<&ocram_s 0x00900000 0x4000>;
+		overw_clock = <&ocram_s &clks IMX6SX_CLK_OCRAM>;
+	};
+
+	pxp_v4l2_out {
+		compatible = "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2";
+		status = "okay";
+	};
+
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0x8000000>;
+			linux,cma-default;
+		};
+
+		m4_reserved {
+			reg = <0x9ff00000 0xf0000>;
+			no-map;
+		};
+
+		rpmsg_reserved {
+			reg = <0x9ff00000 0x10000>;
+			no-map;
+		};
+	};
+
+	reg_vdd_3v3: regulator-vdd-3v3 {
+		compatible = "regulator-fixed";
+		regulator-always-on;
+		regulator-name = "vdd_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	reg_vdd_1v8: regulator-vdd-1v8 {
+		compatible = "regulator-fixed";
+		regulator-always-on;
+		regulator-name = "vdd_1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+	};
+
+	reg_vdd_1v38: regulator-vdd-1v38 {
+		compatible = "regulator-fixed";
+		regulator-always-on;
+		regulator-name = "vdd_1v38";
+		regulator-min-microvolt = <1380000>;
+		regulator-max-microvolt = <1380000>;
+	};
+
+	rpmsg: rpmsg {
+		compatible = "fsl,imx6sx-rpmsg";
+		vdev-nums = <1>;
+		reg = <0xbff00000 0x10000>;
+		status = "okay";
+	};
+};
+
+&aips2 {
+	qspi_m4: qspi-m4 {
+		compatible = "fsl,imx6sx-qspi-m4-restore";
+		reg = <0x021e4000 0x4000>;
+		status = "disabled";
+	};
+};
+
+&aips3 {
+	sema4: sema4@02290000 { /* sema4 */
+		compatible = "fsl,imx6sx-sema4";
+		reg = <0x02290000 0x4000>;
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+		status = "okay";
+	};
+
+	mu: mailbox@02294000 { /* mu */
+		compatible = "fsl,imx6sx-mu";
+		reg = <0x02294000 0x4000>;
+		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+		status = "okay";
+	};
+};
+
+&gpc {
+	fsl,ldo-bypass = <1>;
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ext_crypto: extcrypto@60 {
+		compatible = "atmel,atecc508a";
+		reg = <0x60>;
+	};
+};
+
+&ocram {
+	reg = <0x00901000 0xf000>;
+};
+
+&reg_vdd1p1 {
+	vin-supply = <&reg_vdd_3v3>;
+};
+
+&reg_vdd2p5 {
+	vin-supply = <&reg_vdd_3v3>;
+};
+
+&reg_arm {
+	vin-supply = <&reg_vdd_1v38>;
+	regulator-allow-bypass;
+};
+
+&reg_soc {
+	vin-supply = <&reg_vdd_1v38>;
+	regulator-allow-bypass;
+};
+
+&usdhc4 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc4>;
+	pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	no-1-8-v;
+	vmmc-supply = <&reg_vdd_3v3>;
+	keep-power-in-suspend;
+	status = "okay";
+};
+
+&iomuxc {
+	imx6x-x6med35-som {
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				MX6SX_PAD_QSPI1B_DATA2__I2C2_SDA		0x4001b8b1
+				MX6SX_PAD_QSPI1B_DATA3__I2C2_SCL		0x4001b8b1
+			>;
+		};
+
+		pinctrl_usdhc4: usdhc4grp {
+			fsl,pins = <
+				MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x17059
+				MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x10059
+				MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x17059
+				MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x17059
+				MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x17059
+				MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x17059
+				MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x17059
+				MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x17059
+				MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x17059
+				MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x17059
+			>;
+		};
+
+		pinctrl_usdhc4_100mhz: usdhc4grp-100mhz {
+			fsl,pins = <
+				MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x170b9
+				MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x100b9
+				MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x170b9
+				MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x170b9
+				MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x170b9
+				MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x170b9
+				MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x170b9
+				MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x170b9
+				MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x170b9
+				MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x170b9
+			>;
+		};
+
+		pinctrl_usdhc4_200mhz: usdhc4grp-200mhz {
+			fsl,pins = <
+				MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x170f9
+				MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x100f9
+				MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x170f9
+				MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x170f9
+				MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x170f9
+				MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x170f9
+				MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x170f9
+				MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x170f9
+				MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x170f9
+				MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x170f9
+			>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6sx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6sx.dtsi
@@ -49,6 +49,9 @@
 		spi2 = &ecspi3;
 		spi3 = &ecspi4;
 		spi4 = &ecspi5;
+		usb0 = &usbotg1;
+		usb1 = &usbotg2;
+		usb2 = &usbh;
 		usbphy0 = &usbphy1;
 		usbphy1 = &usbphy2;
 	};
@@ -87,6 +90,8 @@
 				      "pll1_sw", "pll1_sys";
 			arm-supply = <&reg_arm>;
 			soc-supply = <&reg_soc>;
+			nvmem-cells = <&cpu_speed_grade>;
+			nvmem-cell-names = "speed_grade";
 		};
 	};
 
@@ -132,14 +137,10 @@
 		clock-output-names = "anaclk2";
 	};
 
-	tempmon: tempmon {
-		compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon";
-		interrupt-parent = <&gpc>;
-		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-		fsl,tempmon = <&anatop>;
-		nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
-		nvmem-cell-names = "calib", "temp_grade";
-		clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
+	mqs: mqs {
+		compatible = "fsl,imx6sx-mqs";
+		gpr = <&gpr>;
+		status = "disabled";
 	};
 
 	pmu {
@@ -163,12 +164,18 @@
 		ocram_s: sram@8f8000 {
 			compatible = "mmio-sram";
 			reg = <0x008f8000 0x4000>;
+			ranges = <0 0x008f8000 0x4000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6SX_CLK_OCRAM_S>;
 		};
 
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6SX_CLK_OCRAM>;
 		};
 
@@ -181,7 +188,7 @@
 			interrupt-parent = <&intc>;
 		};
 
-		L2: l2-cache@a02000 {
+		L2: cache-controller@a02000 {
 			compatible = "arm,pl310-cache";
 			reg = <0x00a02000 0x1000>;
 			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -202,7 +209,7 @@
 			power-domains = <&pd_pu>;
 		};
 
-		dma_apbh: dma-apbh@1804000 {
+		dma_apbh: dma-controller@1804000 {
 			compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh";
 			reg = <0x01804000 0x2000>;
 			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -215,7 +222,7 @@
 			clocks = <&clks IMX6SX_CLK_APBH_DMA>;
 		};
 
-		gpmi: gpmi-nand@1806000{
+		gpmi: nand-controller@1806000{
 			compatible = "fsl,imx6sx-gpmi-nand";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -235,7 +242,7 @@
 			status = "disabled";
 		};
 
-		aips1: aips-bus@2000000 {
+		aips1: bus@2000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -333,6 +340,7 @@
 				};
 
 				esai: esai@2024000 {
+					compatible = "fsl,imx6sx-esai", "fsl,imx35-esai";
 					reg = <0x02024000 0x4000>;
 					interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
 					clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
@@ -342,6 +350,9 @@
 						 <&clks IMX6SX_CLK_SPBA>;
 					clock-names = "core", "mem", "extal",
 						      "fsys", "spba";
+					dmas = <&sdma 23 21 0>,
+					       <&sdma 24 21 0>;
+					dma-names = "rx", "tx";
 					status = "disabled";
 				};
 
@@ -388,18 +399,28 @@
 				};
 
 				asrc: asrc@2034000 {
+					compatible = "fsl,imx6sx-asrc", "fsl,imx53-asrc";
 					reg = <0x02034000 0x4000>;
 					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-					clocks = <&clks IMX6SX_CLK_ASRC_MEM>,
-						 <&clks IMX6SX_CLK_ASRC_IPG>,
-						 <&clks IMX6SX_CLK_SPDIF>,
-						 <&clks IMX6SX_CLK_SPBA>;
-					clock-names = "mem", "ipg", "asrck", "spba";
-					dmas = <&sdma 17 20 1>, <&sdma 18 20 1>,
-					       <&sdma 19 20 1>, <&sdma 20 20 1>,
-					       <&sdma 21 20 1>, <&sdma 22 20 1>;
+					clocks = <&clks IMX6SX_CLK_ASRC_IPG>,
+						<&clks IMX6SX_CLK_ASRC_MEM>, <&clks 0>,
+						<&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+						<&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+						<&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+						<&clks IMX6SX_CLK_SPDIF>, <&clks 0>, <&clks 0>,
+						<&clks IMX6SX_CLK_SPBA>;
+					clock-names = "mem", "ipg", "asrck_0",
+						"asrck_1", "asrck_2", "asrck_3", "asrck_4",
+						"asrck_5", "asrck_6", "asrck_7", "asrck_8",
+						"asrck_9", "asrck_a", "asrck_b", "asrck_c",
+						"asrck_d", "asrck_e", "asrck_f", "spba";
+					dmas = <&sdma 17 23 1>, <&sdma 18 23 1>,
+					       <&sdma 19 23 1>, <&sdma 20 23 1>,
+					       <&sdma 21 23 1>, <&sdma 22 23 1>;
 					dma-names = "rxa", "rxb", "rxc",
 						    "txa", "txb", "txc";
+					fsl,asrc-rate  = <48000>;
+					fsl,asrc-width = <16>;
 					status = "okay";
 				};
 			};
@@ -411,7 +432,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM1>,
 					 <&clks IMX6SX_CLK_PWM1>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm2: pwm@2084000 {
@@ -421,7 +442,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM2>,
 					 <&clks IMX6SX_CLK_PWM2>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm3: pwm@2088000 {
@@ -431,7 +452,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM3>,
 					 <&clks IMX6SX_CLK_PWM3>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm4: pwm@208c000 {
@@ -441,7 +462,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM4>,
 					 <&clks IMX6SX_CLK_PWM4>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			flexcan1: can@2090000 {
@@ -451,7 +472,7 @@
 				clocks = <&clks IMX6SX_CLK_CAN1_IPG>,
 					 <&clks IMX6SX_CLK_CAN1_SERIAL>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x10 1 0x10 17>;
+				fsl,stop-mode = <&gpr 0x10 1>;
 				status = "disabled";
 			};
 
@@ -462,11 +483,11 @@
 				clocks = <&clks IMX6SX_CLK_CAN2_IPG>,
 					 <&clks IMX6SX_CLK_CAN2_SERIAL>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x10 2 0x10 18>;
+				fsl,stop-mode = <&gpr 0x10 2>;
 				status = "disabled";
 			};
 
-			gpt: gpt@2098000 {
+			gpt: timer@2098000 {
 				compatible = "fsl,imx6sx-gpt", "fsl,imx6dl-gpt";
 				reg = <0x02098000 0x4000>;
 				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -559,7 +580,7 @@
 				gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>;
 			};
 
-			kpp: kpp@20b8000 {
+			kpp: keypad@20b8000 {
 				compatible = "fsl,imx6sx-kpp", "fsl,imx21-kpp";
 				reg = <0x020b8000 0x4000>;
 				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -567,14 +588,14 @@
 				status = "disabled";
 			};
 
-			wdog1: wdog@20bc000 {
+			wdog1: watchdog@20bc000 {
 				compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
 				reg = <0x020bc000 0x4000>;
 				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6SX_CLK_IPG>;
 			};
 
-			wdog2: wdog@20c0000 {
+			wdog2: watchdog@20c0000 {
 				compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
 				reg = <0x020c0000 0x4000>;
 				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -582,7 +603,7 @@
 				status = "disabled";
 			};
 
-			clks: ccm@20c4000 {
+			clks: clock-controller@20c4000 {
 				compatible = "fsl,imx6sx-ccm";
 				reg = <0x020c4000 0x4000>;
 				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -594,7 +615,7 @@
 
 			anatop: anatop@20c8000 {
 				compatible = "fsl,imx6sx-anatop", "fsl,imx6q-anatop",
-					     "syscon", "simple-bus";
+					     "syscon", "simple-mfd";
 				reg = <0x020c8000 0x1000>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
@@ -694,6 +715,16 @@
 					anatop-min-voltage = <725000>;
 					anatop-max-voltage = <1450000>;
 				};
+
+				tempmon: tempmon {
+					compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon";
+					interrupt-parent = <&gpc>;
+					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+					fsl,tempmon = <&anatop>;
+					nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
+					nvmem-cell-names = "calib", "temp_grade";
+					clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
+				};
 			};
 
 			usbphy1: usbphy@20c9000 {
@@ -752,7 +783,7 @@
 				interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			src: src@20d8000 {
+			src: reset-controller@20d8000 {
 				compatible = "fsl,imx6sx-src", "fsl,imx51-src";
 				reg = <0x020d8000 0x4000>;
 				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -806,7 +837,7 @@
 				};
 			};
 
-			iomuxc: iomuxc@20e0000 {
+			iomuxc: pinctrl@20e0000 {
 				compatible = "fsl,imx6sx-iomuxc";
 				reg = <0x020e0000 0x4000>;
 			};
@@ -830,14 +861,14 @@
 			};
 		};
 
-		aips2: aips-bus@2100000 {
+		aips2: bus@2100000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			reg = <0x02100000 0x100000>;
 			ranges;
 
-			crypto: caam@2100000 {
+			crypto: crypto@2100000 {
 				compatible = "fsl,sec-v4.0";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -850,13 +881,13 @@
 					 <&clks IMX6SX_CLK_EIM_SLOW>;
 				clock-names = "mem", "aclk", "ipg", "emi_slow";
 
-				sec_jr0: jr0@1000 {
+				sec_jr0: jr@1000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x1000 0x1000>;
 					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
 				};
 
-				sec_jr1: jr1@2000 {
+				sec_jr1: jr@2000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x2000 0x1000>;
 					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
@@ -928,6 +959,7 @@
 					      "enet_clk_ref", "enet_out";
 				fsl,num-tx-queues = <3>;
 				fsl,num-rx-queues = <3>;
+				fsl,stop-mode = <&gpr 0x10 3>;
 				status = "disabled";
 			};
 
@@ -940,7 +972,7 @@
 				status = "disabled";
 			};
 
-			usdhc1: usdhc@2190000 {
+			usdhc1: mmc@2190000 {
 				compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x02190000 0x4000>;
 				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -949,10 +981,12 @@
 					 <&clks IMX6SX_CLK_USDHC1>;
 				clock-names = "ipg", "ahb", "per";
 				bus-width = <4>;
+				fsl,tuning-start-tap = <20>;
+				fsl,tuning-step= <2>;
 				status = "disabled";
 			};
 
-			usdhc2: usdhc@2194000 {
+			usdhc2: mmc@2194000 {
 				compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x02194000 0x4000>;
 				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -961,10 +995,12 @@
 					 <&clks IMX6SX_CLK_USDHC2>;
 				clock-names = "ipg", "ahb", "per";
 				bus-width = <4>;
+				fsl,tuning-start-tap = <20>;
+				fsl,tuning-step= <2>;
 				status = "disabled";
 			};
 
-			usdhc3: usdhc@2198000 {
+			usdhc3: mmc@2198000 {
 				compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x02198000 0x4000>;
 				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -973,10 +1009,12 @@
 					 <&clks IMX6SX_CLK_USDHC3>;
 				clock-names = "ipg", "ahb", "per";
 				bus-width = <4>;
+				fsl,tuning-start-tap = <20>;
+				fsl,tuning-step= <2>;
 				status = "disabled";
 			};
 
-			usdhc4: usdhc@219c000 {
+			usdhc4: mmc@219c000 {
 				compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x0219c000 0x4000>;
 				interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -1037,6 +1075,7 @@
 					 <&clks IMX6SX_CLK_ENET_PTP>;
 				clock-names = "ipg", "ahb", "ptp",
 					      "enet_clk_ref", "enet_out";
+				fsl,stop-mode = <&gpr 0x10 4>;
 				status = "disabled";
 			};
 
@@ -1051,13 +1090,17 @@
 				status = "disabled";
 			};
 
-			ocotp: ocotp@21bc000 {
+			ocotp: efuse@21bc000 {
 				#address-cells = <1>;
 				#size-cells = <1>;
 				compatible = "fsl,imx6sx-ocotp", "syscon";
 				reg = <0x021bc000 0x4000>;
 				clocks = <&clks IMX6SX_CLK_OCOTP>;
 
+				cpu_speed_grade: speed-grade@10 {
+					reg = <0x10 4>;
+				};
+
 				tempmon_calib: calib@38 {
 					reg = <0x38 4>;
 				};
@@ -1188,7 +1231,7 @@
 			};
 		};
 
-		aips3: aips-bus@2200000 {
+		aips3: bus@2200000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -1289,7 +1332,7 @@
 				status = "disabled";
 			};
 
-			wdog3: wdog@2288000 {
+			wdog3: watchdog@2288000 {
 				compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
 				reg = <0x02288000 0x4000>;
 				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
@@ -1329,7 +1372,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM5>,
 					 <&clks IMX6SX_CLK_PWM5>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm6: pwm@22a8000 {
@@ -1339,7 +1382,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM6>,
 					 <&clks IMX6SX_CLK_PWM6>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm7: pwm@22ac000 {
@@ -1349,7 +1392,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM7>,
 					 <&clks IMX6SX_CLK_PWM7>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 
 			pwm8: pwm@22b0000 {
@@ -1359,7 +1402,7 @@
 				clocks = <&clks IMX6SX_CLK_PWM8>,
 					 <&clks IMX6SX_CLK_PWM8>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
@@ -202,6 +202,7 @@
 };
 
 &pwm1 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm1>;
 	status = "okay";
@@ -215,7 +216,7 @@
 	flash0: n25q256a@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "micron,n25q256a";
+		compatible = "micron,n25q256a", "jedec,spi-nor";
 		spi-max-frequency = <29000000>;
 		spi-rx-bus-width = <4>;
 		spi-tx-bus-width = <4>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts
@@ -168,6 +168,7 @@
 };
 
 &pwm5 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm5>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-geam.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-geam.dts
@@ -195,6 +195,7 @@
 };
 
 &pwm8 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm8>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-isiot.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-isiot.dtsi
@@ -187,6 +187,7 @@
 };
 
 &pwm8 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm8>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dts
@@ -41,6 +41,7 @@
 };
 
 &pwm7 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm7>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-kontron-n6310-s.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-kontron-n6310-s.dts
@@ -157,10 +157,6 @@
 	status = "okay";
 };
 
-&snvs_poweroff {
-	status = "okay";
-};
-
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-pico.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-pico.dtsi
@@ -184,6 +184,7 @@
 };
 
 &pwm3 {
+	#pwm-cells = <2>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
@@ -549,7 +549,6 @@
 &pwm5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm5>;
-	#pwm-cells = <3>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ul.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ul.dtsi
@@ -47,6 +47,8 @@
 		spi1 = &ecspi2;
 		spi2 = &ecspi3;
 		spi3 = &ecspi4;
+		usb0 = &usbotg1;
+		usb1 = &usbotg2;
 		usbphy0 = &usbphy1;
 		usbphy1 = &usbphy2;
 	};
@@ -62,20 +64,18 @@
 			clock-frequency = <696000000>;
 			clock-latency = <61036>; /* two CLK32 periods */
 			#cooling-cells = <2>;
-			operating-points = <
+			operating-points =
 				/* kHz	uV */
-				696000	1275000
-				528000	1175000
-				396000	1025000
-				198000	950000
-			>;
-			fsl,soc-operating-points = <
+				<696000	1275000>,
+				<528000	1175000>,
+				<396000	1025000>,
+				<198000	950000>;
+			fsl,soc-operating-points =
 				/* KHz	uV */
-				696000	1275000
-				528000	1175000
-				396000	1175000
-				198000	1175000
-			>;
+				<696000	1275000>,
+				<528000	1175000>,
+				<396000	1175000>,
+				<198000	1175000>;
 			clocks = <&clks IMX6UL_CLK_ARM>,
 				 <&clks IMX6UL_CLK_PLL2_BUS>,
 				 <&clks IMX6UL_CLK_PLL2_PFD2>,
@@ -131,16 +131,6 @@
 		clock-output-names = "ipp_di1";
 	};
 
-	tempmon: tempmon {
-		compatible = "fsl,imx6ul-tempmon", "fsl,imx6sx-tempmon";
-		interrupt-parent = <&gpc>;
-		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-		fsl,tempmon = <&anatop>;
-		nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
-		nvmem-cell-names = "calib", "temp_grade";
-		clocks = <&clks IMX6UL_CLK_PLL3_USB_OTG>;
-	};
-
 	pmu {
 		compatible = "arm,cortex-a7-pmu";
 		interrupt-parent = <&gpc>;
@@ -157,6 +147,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 
 		intc: interrupt-controller@a01000 {
@@ -171,7 +164,7 @@
 			      <0x00a06000 0x2000>;
 		};
 
-		dma_apbh: dma-apbh@1804000 {
+		dma_apbh: dma-controller@1804000 {
 			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
 			reg = <0x01804000 0x2000>;
 			interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -184,7 +177,7 @@
 			clocks = <&clks IMX6UL_CLK_APBHDMA>;
 		};
 
-		gpmi: gpmi-nand@1806000 {
+		gpmi: nand-controller@1806000 {
 			compatible = "fsl,imx6q-gpmi-nand";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -204,7 +197,7 @@
 			status = "disabled";
 		};
 
-		aips1: aips-bus@2000000 {
+		aips1: bus@2000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -351,6 +344,31 @@
 					dma-names = "rx", "tx";
 					status = "disabled";
 				};
+
+				asrc: asrc@2034000 {
+					compatible = "fsl,imx6ul-asrc", "fsl,imx53-asrc";
+					reg = <0x2034000 0x4000>;
+					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clks IMX6UL_CLK_ASRC_IPG>,
+						<&clks IMX6UL_CLK_ASRC_MEM>, <&clks 0>,
+						<&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+						<&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+						<&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
+						<&clks IMX6UL_CLK_SPDIF>, <&clks 0>, <&clks 0>,
+						<&clks IMX6UL_CLK_SPBA>;
+					clock-names = "mem", "ipg", "asrck_0",
+						"asrck_1", "asrck_2", "asrck_3", "asrck_4",
+						"asrck_5", "asrck_6", "asrck_7", "asrck_8",
+						"asrck_9", "asrck_a", "asrck_b", "asrck_c",
+						"asrck_d", "asrck_e", "asrck_f", "spba";
+					dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
+						<&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
+					dma-names = "rxa", "rxb", "rxc",
+						    "txa", "txb", "txc";
+					fsl,asrc-rate  = <48000>;
+					fsl,asrc-width = <16>;
+					status = "okay";
+				};
 			};
 
 			tsc: tsc@2040000 {
@@ -371,7 +389,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM1>,
 					 <&clks IMX6UL_CLK_PWM1>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -382,7 +400,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM2>,
 					 <&clks IMX6UL_CLK_PWM2>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -393,7 +411,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM3>,
 					 <&clks IMX6UL_CLK_PWM3>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -404,7 +422,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM4>,
 					 <&clks IMX6UL_CLK_PWM4>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -415,7 +433,7 @@
 				clocks = <&clks IMX6UL_CLK_CAN1_IPG>,
 					 <&clks IMX6UL_CLK_CAN1_SERIAL>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x10 1 0x10 17>;
+				fsl,stop-mode = <&gpr 0x10 1>;
 				status = "disabled";
 			};
 
@@ -426,11 +444,11 @@
 				clocks = <&clks IMX6UL_CLK_CAN2_IPG>,
 					 <&clks IMX6UL_CLK_CAN2_SERIAL>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x10 2 0x10 18>;
+				fsl,stop-mode = <&gpr 0x10 2>;
 				status = "disabled";
 			};
 
-			gpt1: gpt@2098000 {
+			gpt1: timer@2098000 {
 				compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
 				reg = <0x02098000 0x4000>;
 				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -520,10 +538,11 @@
 					      "enet_clk_ref", "enet_out";
 				fsl,num-tx-queues = <1>;
 				fsl,num-rx-queues = <1>;
+				fsl,stop-mode = <&gpr 0x10 4>;
 				status = "disabled";
 			};
 
-			kpp: kpp@20b8000 {
+			kpp: keypad@20b8000 {
 				compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp";
 				reg = <0x020b8000 0x4000>;
 				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -531,14 +550,14 @@
 				status = "disabled";
 			};
 
-			wdog1: wdog@20bc000 {
+			wdog1: watchdog@20bc000 {
 				compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
 				reg = <0x020bc000 0x4000>;
 				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6UL_CLK_WDOG1>;
 			};
 
-			wdog2: wdog@20c0000 {
+			wdog2: watchdog@20c0000 {
 				compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
 				reg = <0x020c0000 0x4000>;
 				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -546,7 +565,7 @@
 				status = "disabled";
 			};
 
-			clks: ccm@20c4000 {
+			clks: clock-controller@20c4000 {
 				compatible = "fsl,imx6ul-ccm";
 				reg = <0x020c4000 0x4000>;
 				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -558,7 +577,7 @@
 
 			anatop: anatop@20c8000 {
 				compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
-					     "syscon", "simple-bus";
+					     "syscon", "simple-mfd";
 				reg = <0x020c8000 0x1000>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
@@ -611,6 +630,16 @@
 					anatop-min-voltage = <725000>;
 					anatop-max-voltage = <1450000>;
 				};
+
+				tempmon: tempmon {
+					compatible = "fsl,imx6ul-tempmon", "fsl,imx6sx-tempmon";
+					interrupt-parent = <&gpc>;
+					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+					fsl,tempmon = <&anatop>;
+					nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
+					nvmem-cell-names = "calib", "temp_grade";
+					clocks = <&clks IMX6UL_CLK_PLL3_USB_OTG>;
+				};
 			};
 
 			usbphy1: usbphy@20c9000 {
@@ -676,7 +705,7 @@
 				interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			src: src@20d8000 {
+			src: reset-controller@20d8000 {
 				compatible = "fsl,imx6ul-src", "fsl,imx51-src";
 				reg = <0x020d8000 0x4000>;
 				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -693,7 +722,7 @@
 				interrupt-parent = <&intc>;
 			};
 
-			iomuxc: iomuxc@20e0000 {
+			iomuxc: pinctrl@20e0000 {
 				compatible = "fsl,imx6ul-iomuxc";
 				reg = <0x020e0000 0x4000>;
 			};
@@ -704,7 +733,7 @@
 				reg = <0x020e4000 0x4000>;
 			};
 
-			gpt2: gpt@20e8000 {
+			gpt2: timer@20e8000 {
 				compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
 				reg = <0x020e8000 0x4000>;
 				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
@@ -732,7 +761,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM5>,
 					 <&clks IMX6UL_CLK_PWM5>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -743,7 +772,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM6>,
 					 <&clks IMX6UL_CLK_PWM6>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -754,7 +783,7 @@
 				clocks = <&clks IMX6UL_CLK_PWM7>,
 					 <&clks IMX6UL_CLK_PWM7>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 
@@ -765,19 +794,19 @@
 				clocks = <&clks IMX6UL_CLK_PWM8>,
 					 <&clks IMX6UL_CLK_PWM8>;
 				clock-names = "ipg", "per";
-				#pwm-cells = <2>;
+				#pwm-cells = <3>;
 				status = "disabled";
 			};
 		};
 
-		aips2: aips-bus@2100000 {
+		aips2: bus@2100000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			reg = <0x02100000 0x100000>;
 			ranges;
 
-			crypto: caam@2140000 {
+			crypto: crypto@2140000 {
 				compatible = "fsl,imx6ul-caam", "fsl,sec-v4.0";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -788,19 +817,19 @@
 					 <&clks IMX6UL_CLK_CAAM_MEM>;
 				clock-names = "ipg", "aclk", "mem";
 
-				sec_jr0: jr0@1000 {
+				sec_jr0: jr@1000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x1000 0x1000>;
 					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
 				};
 
-				sec_jr1: jr1@2000 {
+				sec_jr1: jr@2000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x2000 0x1000>;
 					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
 				};
 
-				sec_jr2: jr2@3000 {
+				sec_jr2: jr@3000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x3000 0x1000>;
 					interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
@@ -855,10 +884,11 @@
 					      "enet_clk_ref", "enet_out";
 				fsl,num-tx-queues = <1>;
 				fsl,num-rx-queues = <1>;
+				fsl,stop-mode = <&gpr 0x10 3>;
 				status = "disabled";
 			};
 
-			usdhc1: usdhc@2190000 {
+			usdhc1: mmc@2190000 {
 				compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
 				reg = <0x02190000 0x4000>;
 				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -872,7 +902,7 @@
 				status = "disabled";
 			};
 
-			usdhc2: usdhc@2194000 {
+			usdhc2: mmc@2194000 {
 				compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
 				reg = <0x02194000 0x4000>;
 				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -945,7 +975,7 @@
 				status = "disabled";
 			};
 
-			ocotp: ocotp-ctrl@21bc000 {
+			ocotp: efuse@21bc000 {
 				#address-cells = <1>;
 				#size-cells = <1>;
 				compatible = "fsl,imx6ul-ocotp", "syscon";
@@ -966,7 +996,7 @@
 			};
 
 			csi: csi@21c4000 {
-				compatible = "fsl,imx6ul-csi", "fsl,imx7-csi";
+				compatible = "fsl,imx6ul-csi";
 				reg = <0x021c4000 0x4000>;
 				interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6UL_CLK_CSI>;
@@ -975,7 +1005,7 @@
 			};
 
 			lcdif: lcdif@21c8000 {
-				compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
+				compatible = "fsl,imx6ul-lcdif", "fsl,imx6sx-lcdif";
 				reg = <0x021c8000 0x4000>;
 				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
@@ -996,7 +1026,7 @@
 			qspi: spi@21e0000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
-				compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
+				compatible = "fsl,imx6ul-qspi";
 				reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
 				reg-names = "QuadSPI", "QuadSPI-memory";
 				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
@@ -1006,7 +1036,7 @@
 				status = "disabled";
 			};
 
-			wdog3: wdog@21e4000 {
+			wdog3: watchdog@21e4000 {
 				compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
 				reg = <0x021e4000 0x4000>;
 				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi
@@ -43,6 +43,7 @@
 	assigned-clock-rates = <0>, <198000000>;
 	cap-power-off-card;
 	keep-power-in-suspend;
+	max-frequency = <25000000>;
 	mmc-pwrseq = <&wifi_pwrseq>;
 	no-1-8-v;
 	non-removable;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ull-colibri.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ull-colibri.dtsi
@@ -37,7 +37,7 @@
 
 	reg_sd1_vmmc: regulator-sd1-vmmc {
 		compatible = "regulator-gpio";
-		gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_snvs_reg_sd>;
 		regulator-always-on;
@@ -132,25 +132,21 @@
 &pwm4 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
-	#pwm-cells = <3>;
 };
 
 &pwm5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm5>;
-	#pwm-cells = <3>;
 };
 
 &pwm6 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm6>;
-	#pwm-cells = <3>;
 };
 
 &pwm7 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm7>;
-	#pwm-cells = <3>;
 };
 
 &sdma {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ull-pinfunc.h
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ull-pinfunc.h
@@ -82,6 +82,6 @@
 #define MX6ULL_PAD_CSI_DATA04__ESAI_TX_FS                         0x01F4 0x0480 0x0000 0x9 0x0
 #define MX6ULL_PAD_CSI_DATA05__ESAI_TX_CLK                        0x01F8 0x0484 0x0000 0x9 0x0
 #define MX6ULL_PAD_CSI_DATA06__ESAI_TX5_RX0                       0x01FC 0x0488 0x0000 0x9 0x0
-#define MX6ULL_PAD_CSI_DATA07__ESAI_T0                            0x0200 0x048C 0x0000 0x9 0x0
+#define MX6ULL_PAD_CSI_DATA07__ESAI_TX0                           0x0200 0x048C 0x0000 0x9 0x0
 
 #endif /* __DTS_IMX6ULL_PINFUNC_H */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx6ull.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx6ull.dtsi
@@ -51,7 +51,7 @@
 
 / {
 	soc {
-		aips3: aips-bus@2200000 {
+		aips3: bus@2200000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7-colibri.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -77,7 +77,7 @@
 
 		dailink_master: simple-audio-card,codec {
 			sound-dai = <&codec>;
-			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		};
 	};
 };
@@ -152,7 +152,7 @@
 		compatible = "fsl,sgtl5000";
 		#sound-dai-cells = <0>;
 		reg = <0x0a>;
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_sai1_mclk>;
 		VDDA-supply = <&reg_module_3v3_avdd>;
@@ -337,7 +337,6 @@
 	assigned-clock-rates = <400000000>;
 	bus-width = <8>;
 	fsl,tuning-step = <2>;
-	max-frequency = <100000000>;
 	vmmc-supply = <&reg_module_3v3>;
 	vqmmc-supply = <&reg_DCDC3>;
 	non-removable;
@@ -347,7 +346,7 @@
 &iomuxc {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4
-		     &pinctrl_gpio7>;
+		     &pinctrl_gpio7 &pinctrl_usbc_det>;
 
 	pinctrl_gpio1: gpio1-grp {
 		fsl,pins = <
@@ -452,7 +451,6 @@
 
 	pinctrl_enet1: enet1grp {
 		fsl,pins = <
-			MX7D_PAD_ENET1_CRS__GPIO7_IO14			0x14
 			MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL	0x73
 			MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0	0x73
 			MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1	0x73
@@ -650,6 +648,12 @@
 		>;
 	};
 
+	pinctrl_usbc_det: gpio-usbc-det {
+		fsl,pins = <
+			MX7D_PAD_ENET1_CRS__GPIO7_IO14	0x14
+		>;
+	};
+
 	pinctrl_usbh_reg: gpio-usbh-vbus {
 		fsl,pins = <
 			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14 /* SODIMM 129 USBH PEN */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7-mba7.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7-mba7.dtsi
@@ -250,7 +250,7 @@
 	tlv320aic32x4: audio-codec@18 {
 		compatible = "ti,tlv320aic32x4";
 		reg = <0x18>;
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		clock-names = "mclk";
 		ldoin-supply = <&reg_audio_3v3>;
 		iov-supply = <&reg_audio_3v3>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d-meerkat96.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d-meerkat96.dts
@@ -193,7 +193,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	keep-power-in-suspend;
-	tuning-step = <2>;
+	fsl,tuning-step = <2>;
 	vmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
 	broken-cd;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d-nitrogen7.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d-nitrogen7.dts
@@ -284,7 +284,7 @@
 	codec: wm8960@1a {
 		compatible = "wlf,wm8960";
 		reg = <0x1a>;
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		clock-names = "mclk";
 		wlf,shared-lrclk;
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d-pico-hobbit.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d-pico-hobbit.dts
@@ -31,7 +31,7 @@
 
 		dailink_master: simple-audio-card,codec {
 			sound-dai = <&sgtl5000>;
-			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		};
 	};
 };
@@ -41,7 +41,7 @@
 		#sound-dai-cells = <0>;
 		reg = <0x0a>;
 		compatible = "fsl,sgtl5000";
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		VDDA-supply = <&reg_2p5v>;
 		VDDIO-supply = <&reg_vref_1v8>;
 	};
@@ -64,7 +64,7 @@
 		interrupt-parent = <&gpio2>;
 		interrupts = <7 0>;
 		spi-max-frequency = <1000000>;
-		pendown-gpio = <&gpio2 7 0>;
+		pendown-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
 		vcc-supply = <&reg_3p3v>;
 		ti,x-min = /bits/ 16 <0>;
 		ti,x-max = /bits/ 16 <4095>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d-pico-pi.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d-pico-pi.dts
@@ -31,7 +31,7 @@
 
 		dailink_master: simple-audio-card,codec {
 			sound-dai = <&sgtl5000>;
-			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		};
 	};
 };
@@ -41,7 +41,7 @@
 		#sound-dai-cells = <0>;
 		reg = <0x0a>;
 		compatible = "fsl,sgtl5000";
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		VDDA-supply = <&reg_2p5v>;
 		VDDIO-supply = <&reg_vref_1v8>;
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d-pico.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d-pico.dtsi
@@ -307,7 +307,7 @@
 	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
 	cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
 	bus-width = <4>;
-	tuning-step = <2>;
+	fsl,tuning-step = <2>;
 	vmmc-supply = <&reg_3p3v>;
 	wakeup-source;
 	no-1-8-v;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d-sdb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d-sdb.dts
@@ -19,6 +19,11 @@
 		reg = <0x80000000 0x80000000>;
 	};
 
+	m4_tcm: tcml@007f8000 {
+		compatible = "fsl, m4_tcml";
+		reg = <0x007f8000 0x8000>;
+	};
+
 	gpio-keys {
 		compatible = "gpio-keys";
 		pinctrl-names = "default";
@@ -176,13 +181,8 @@
 		pinctrl-0 = <&pinctrl_tsc2046_pendown>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <29 0>;
-		pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
-		ti,x-min = /bits/ 16 <0>;
-		ti,x-max = /bits/ 16 <0>;
-		ti,y-min = /bits/ 16 <0>;
-		ti,y-max = /bits/ 16 <0>;
-		ti,pressure-max = /bits/ 16 <0>;
-		ti,x-plate-ohms = /bits/ 16 <400>;
+		pendown-gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;
+		touchscreen-max-pressure = <255>;
 		wakeup-source;
 	};
 };
@@ -356,7 +356,7 @@
 	codec: wm8960@1a {
 		compatible = "wlf,wm8960";
 		reg = <0x1a>;
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		clock-names = "mclk";
 		wlf,shared-lrclk;
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7d.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7d.dtsi
@@ -7,12 +7,18 @@
 #include <dt-bindings/reset/imx7-reset.h>
 
 / {
+	aliases {
+		usb0 = &usbotg1;
+		usb1 = &usbotg2;
+		usb2 = &usbh;
+	};
+
 	cpus {
 		cpu0: cpu@0 {
 			clock-frequency = <996000000>;
 			operating-points-v2 = <&cpu0_opp_table>;
 			#cooling-cells = <2>;
-			nvmem-cells = <&cpu_speed_grade>;
+			nvmem-cells = <&fuse_grade>;
 			nvmem-cell-names = "speed_grade";
 		};
 
@@ -28,6 +34,7 @@
 
 	timer {
 		compatible = "arm,armv7-timer";
+		arm,cpu-registers-not-fw-configured;
 		interrupt-parent = <&intc>;
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
 			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
@@ -69,6 +76,13 @@
 	};
 
 	soc {
+		ocrams: sram@00180000 {
+			compatible = "fsl,lpm-sram";
+			reg = <0x00180000 0x8000>;
+			clocks = <&clks IMX7D_OCRAM_S_CLK>;
+			status = "disabled";
+		};
+
 		etm@3007d000 {
 			compatible = "arm,coresight-etm3x", "arm,primecell";
 			reg = <0x3007d000 0x1000>;
@@ -149,6 +163,7 @@
 			"enet_clk_ref", "enet_out";
 		fsl,num-tx-queues = <3>;
 		fsl,num-rx-queues = <3>;
+		fsl,stop-mode = <&gpr 0x10 4>;
 		status = "disabled";
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7s-colibri.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7s-colibri.dtsi
@@ -49,3 +49,7 @@
 		reg = <0x80000000 0x10000000>;
 	};
 };
+
+&gpmi {
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7s-warp.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7s-warp.dts
@@ -75,7 +75,7 @@
 
 		dailink_master: simple-audio-card,codec {
 			sound-dai = <&codec>;
-			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+			clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		};
 	};
 };
@@ -232,7 +232,7 @@
 		#sound-dai-cells = <0>;
 		reg = <0x0a>;
 		compatible = "fsl,sgtl5000";
-		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+		clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_sai1_mclk>;
 		VDDA-supply = <&vgen4_reg>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7s.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7s.dtsi
@@ -47,6 +47,8 @@
 		spi1 = &ecspi2;
 		spi2 = &ecspi3;
 		spi3 = &ecspi4;
+		usb0 = &usbotg1;
+		usb1 = &usbh;
 	};
 
 	cpus {
@@ -147,17 +149,6 @@
 		};
 	};
 
-	tempmon: tempmon {
-		compatible = "fsl,imx7d-tempmon";
-		interrupt-parent = <&gpc>;
-		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-		fsl,tempmon = <&anatop>;
-		nvmem-cells = <&tempmon_calib>,
-			<&tempmon_temp_grade>;
-		nvmem-cell-names = "calib", "temp_grade";
-		clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>;
-	};
-
 	timer {
 		compatible = "arm,armv7-timer";
 		interrupt-parent = <&intc>;
@@ -316,7 +307,7 @@
 			      <0x31006000 0x2000>;
 		};
 
-		aips1: aips-bus@30000000 {
+		aips1: bus@30000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -407,14 +398,14 @@
 				gpio-ranges = <&iomuxc 0 139 16>;
 			};
 
-			wdog1: wdog@30280000 {
+			wdog1: watchdog@30280000 {
 				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
 				reg = <0x30280000 0x10000>;
 				interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
 			};
 
-			wdog2: wdog@30290000 {
+			wdog2: watchdog@30290000 {
 				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
 				reg = <0x30290000 0x10000>;
 				interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
@@ -422,7 +413,7 @@
 				status = "disabled";
 			};
 
-			wdog3: wdog@302a0000 {
+			wdog3: watchdog@302a0000 {
 				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
 				reg = <0x302a0000 0x10000>;
 				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
@@ -430,7 +421,7 @@
 				status = "disabled";
 			};
 
-			wdog4: wdog@302b0000 {
+			wdog4: watchdog@302b0000 {
 				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
 				reg = <0x302b0000 0x10000>;
 				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
@@ -444,7 +435,7 @@
 				fsl,input-sel = <&iomuxc>;
 			};
 
-			gpt1: gpt@302d0000 {
+			gpt1: timer@302d0000 {
 				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 				reg = <0x302d0000 0x10000>;
 				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -453,7 +444,7 @@
 				clock-names = "ipg", "per";
 			};
 
-			gpt2: gpt@302e0000 {
+			gpt2: timer@302e0000 {
 				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 				reg = <0x302e0000 0x10000>;
 				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
@@ -463,7 +454,7 @@
 				status = "disabled";
 			};
 
-			gpt3: gpt@302f0000 {
+			gpt3: timer@302f0000 {
 				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 				reg = <0x302f0000 0x10000>;
 				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
@@ -473,7 +464,7 @@
 				status = "disabled";
 			};
 
-			gpt4: gpt@30300000 {
+			gpt4: timer@30300000 {
 				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 				reg = <0x30300000 0x10000>;
 				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
@@ -483,7 +474,7 @@
 				status = "disabled";
 			};
 
-			kpp: kpp@30320000 {
+			kpp: keypad@30320000 {
 				compatible = "fsl,imx7d-kpp", "fsl,imx21-kpp";
 				reg = <0x30320000 0x10000>;
 				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
@@ -491,7 +482,7 @@
 				status = "disabled";
 			};
 
-			iomuxc: iomuxc@30330000 {
+			iomuxc: pinctrl@30330000 {
 				compatible = "fsl,imx7d-iomuxc";
 				reg = <0x30330000 0x10000>;
 			};
@@ -504,7 +495,7 @@
 
 				mux: mux-controller {
 					compatible = "mmio-mux";
-					#mux-control-cells = <0>;
+					#mux-control-cells = <1>;
 					mux-reg-masks = <0x14 0x00000010>;
 				};
 
@@ -537,7 +528,7 @@
 				};
 			};
 
-			ocotp: ocotp-ctrl@30350000 {
+			ocotp: efuse@30350000 {
 				#address-cells = <1>;
 				#size-cells = <1>;
 				compatible = "fsl,imx7d-ocotp", "syscon";
@@ -548,18 +539,14 @@
 					reg = <0x3c 0x4>;
 				};
 
-				tempmon_temp_grade: temp-grade@10 {
-					reg = <0x10 0x4>;
-				};
-
-				cpu_speed_grade: speed-grade@10 {
+				fuse_grade: fuse-grade@10 {
 					reg = <0x10 0x4>;
 				};
 			};
 
 			anatop: anatop@30360000 {
 				compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
-					"syscon", "simple-bus";
+					"syscon", "simple-mfd";
 				reg = <0x30360000 0x10000>;
 				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
 					<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
@@ -591,6 +578,16 @@
 					anatop-max-voltage = <1300000>;
 					anatop-enable-bit = <0>;
 				};
+
+				tempmon: tempmon {
+					compatible = "fsl,imx7d-tempmon";
+					interrupt-parent = <&gpc>;
+					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+					fsl,tempmon = <&anatop>;
+					nvmem-cells = <&tempmon_calib>,	<&fuse_grade>;
+					nvmem-cell-names = "calib", "temp_grade";
+					clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>;
+				};
 			};
 
 			snvs: snvs@30370000 {
@@ -617,7 +614,7 @@
 				};
 			};
 
-			clks: ccm@30380000 {
+			clks: clock-controller@30380000 {
 				compatible = "fsl,imx7d-ccm";
 				reg = <0x30380000 0x10000>;
 				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
@@ -627,8 +624,8 @@
 				clock-names = "ckil", "osc";
 			};
 
-			src: src@30390000 {
-				compatible = "fsl,imx7d-src", "syscon";
+			src: reset-controller@30390000 {
+				compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
 				reg = <0x30390000 0x10000>;
 				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
 				#reset-cells = <1>;
@@ -662,7 +659,7 @@
 			};
 		};
 
-		aips2: aips-bus@30400000 {
+		aips2: bus@30400000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -802,7 +799,7 @@
 			};
 		};
 
-		aips3: aips-bus@30800000 {
+		aips3: bus@30800000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -931,7 +928,7 @@
 				};
 			};
 
-			crypto: caam@30900000 {
+			crypto: crypto@30900000 {
 				compatible = "fsl,sec-v4.0";
 				#address-cells = <1>;
 				#size-cells = <1>;
@@ -942,19 +939,19 @@
 					 <&clks IMX7D_AHB_CHANNEL_ROOT_CLK>;
 				clock-names = "ipg", "aclk";
 
-				sec_jr0: jr0@1000 {
+				sec_jr0: jr@1000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x1000 0x1000>;
 					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
 				};
 
-				sec_jr1: jr1@2000 {
+				sec_jr1: jr@2000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x2000 0x1000>;
 					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
 				};
 
-				sec_jr2: jr1@3000 {
+				sec_jr2: jr@3000 {
 					compatible = "fsl,sec-v4.0-job-ring";
 					reg = <0x3000 0x1000>;
 					interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
@@ -968,7 +965,7 @@
 				clocks = <&clks IMX7D_CLK_DUMMY>,
 					<&clks IMX7D_CAN1_ROOT_CLK>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x10 1 0x10 17>;
+				fsl,stop-mode = <&gpr 0x10 1>;
 				status = "disabled";
 			};
 
@@ -979,7 +976,7 @@
 				clocks = <&clks IMX7D_CLK_DUMMY>,
 					<&clks IMX7D_CAN2_ROOT_CLK>;
 				clock-names = "ipg", "per";
-				fsl,stop-mode = <&gpr 0x10 2 0x10 18>;
+				fsl,stop-mode = <&gpr 0x10 2>;
 				status = "disabled";
 			};
 
@@ -1122,7 +1119,7 @@
 				reg = <0x30b30200 0x200>;
 			};
 
-			usdhc1: usdhc@30b40000 {
+			usdhc1: mmc@30b40000 {
 				compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x30b40000 0x10000>;
 				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -1131,10 +1128,12 @@
 					<&clks IMX7D_USDHC1_ROOT_CLK>;
 				clock-names = "ipg", "ahb", "per";
 				bus-width = <4>;
+				fsl,tuning-step = <2>;
+				fsl,tuning-start-tap = <20>;
 				status = "disabled";
 			};
 
-			usdhc2: usdhc@30b50000 {
+			usdhc2: mmc@30b50000 {
 				compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x30b50000 0x10000>;
 				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -1143,10 +1142,12 @@
 					<&clks IMX7D_USDHC2_ROOT_CLK>;
 				clock-names = "ipg", "ahb", "per";
 				bus-width = <4>;
+				fsl,tuning-step = <2>;
+				fsl,tuning-start-tap = <20>;
 				status = "disabled";
 			};
 
-			usdhc3: usdhc@30b60000 {
+			usdhc3: mmc@30b60000 {
 				compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
 				reg = <0x30b60000 0x10000>;
 				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -1155,6 +1156,8 @@
 					<&clks IMX7D_USDHC3_ROOT_CLK>;
 				clock-names = "ipg", "ahb", "per";
 				bus-width = <4>;
+				fsl,tuning-step = <2>;
+				fsl,tuning-start-tap = <20>;
 				status = "disabled";
 			};
 
@@ -1186,24 +1189,24 @@
 					"enet_clk_ref", "enet_out";
 				fsl,num-tx-queues = <3>;
 				fsl,num-rx-queues = <3>;
+				fsl,stop-mode = <&gpr 0x10 3>;
 				status = "disabled";
 			};
 		};
 
-		dma_apbh: dma-apbh@33000000 {
+		dma_apbh: dma-controller@33000000 {
 			compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
 			reg = <0x33000000 0x2000>;
 			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-			interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
 			#dma-cells = <1>;
 			dma-channels = <4>;
 			clocks = <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>;
 		};
 
-		gpmi: gpmi-nand@33002000{
+		gpmi: nand-controller@33002000{
 			compatible = "fsl,imx7d-gpmi-nand";
 			#address-cells = <1>;
 			#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/imx7ulp.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/imx7ulp.dtsi
@@ -37,10 +37,10 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		cpu0: cpu@0 {
+		cpu0: cpu@f00 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
-			reg = <0>;
+			reg = <0xf00>;
 		};
 	};
 
@@ -139,13 +139,13 @@
 				 <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>;
 			clock-names = "aclk", "ipg";
 
-			sec_jr0: jr0@1000 {
+			sec_jr0: jr@1000 {
 				compatible = "fsl,sec-v4.0-job-ring";
 				reg = <0x1000 0x1000>;
 				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			sec_jr1: jr1@2000 {
+			sec_jr1: jr@2000 {
 				compatible = "fsl,sec-v4.0-job-ring";
 				reg = <0x2000 0x1000>;
 				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
@@ -397,7 +397,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLC>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 0 32>;
+			gpio-ranges = <&iomuxc1 0 0 20>;
 		};
 
 		gpio_ptd: gpio@40af0000 {
@@ -411,7 +411,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLD>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 32 32>;
+			gpio-ranges = <&iomuxc1 0 32 12>;
 		};
 
 		gpio_pte: gpio@40b00000 {
@@ -425,7 +425,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLE>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 64 32>;
+			gpio-ranges = <&iomuxc1 0 64 16>;
 		};
 
 		gpio_ptf: gpio@40b10000 {
@@ -439,7 +439,7 @@
 			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
 				 <&pcc3 IMX7ULP_CLK_PCTLF>;
 			clock-names = "gpio", "port";
-			gpio-ranges = <&iomuxc1 0 96 32>;
+			gpio-ranges = <&iomuxc1 0 96 20>;
 		};
 	};
 
@@ -455,7 +455,7 @@
 			reg = <0x410a3000 0x1000>;
 		};
 
-		ocotp: ocotp-ctrl@410a6000 {
+		ocotp: efuse@410a6000 {
 			compatible = "fsl,imx7ulp-ocotp", "syscon";
 			reg = <0x410a6000 0x4000>;
 			clocks = <&scg1 IMX7ULP_CLK_DUMMY>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/integratorap.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/integratorap.dts
@@ -155,6 +155,7 @@
 
 	pci: pciv3@62000000 {
 		compatible = "arm,integrator-ap-pci", "v3,v360epc-pci";
+		device_type = "pci";
 		#interrupt-cells = <1>;
 		#size-cells = <2>;
 		#address-cells = <3>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/kirkwood-lsxl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/kirkwood-lsxl.dtsi
@@ -10,6 +10,11 @@
 
 	ocp@f1000000 {
 		pinctrl: pin-controller@10000 {
+			/* Non-default UART pins */
+			pmx_uart0: pmx-uart0 {
+				marvell,pins = "mpp4", "mpp5";
+			};
+
 			pmx_power_hdd: pmx-power-hdd {
 				marvell,pins = "mpp10";
 				marvell,function = "gpo";
@@ -213,22 +218,11 @@
 &mdio {
 	status = "okay";
 
-	ethphy0: ethernet-phy@0 {
-		reg = <0>;
-	};
-
 	ethphy1: ethernet-phy@8 {
 		reg = <8>;
 	};
 };
 
-&eth0 {
-	status = "okay";
-	ethernet0-port@0 {
-		phy-handle = <&ethphy0>;
-	};
-};
-
 &eth1 {
 	status = "okay";
 	ethernet1-port@0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/logicpd-som-lv-35xx-devkit.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/logicpd-som-lv-35xx-devkit.dts
@@ -11,3 +11,18 @@
 	model = "LogicPD Zoom OMAP35xx SOM-LV Development Kit";
 	compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3";
 };
+
+&omap3_pmx_core2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&hsusb2_2_pins>;
+	hsusb2_2_pins: pinmux_hsusb2_2_pins {
+		pinctrl-single,pins = <
+			OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)            /* etk_d10.hsusb2_clk */
+			OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)            /* etk_d11.hsusb2_stp */
+			OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d12.hsusb2_dir */
+			OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d13.hsusb2_nxt */
+			OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d14.hsusb2_data0 */
+			OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d15.hsusb2_data1 */
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/logicpd-som-lv-37xx-devkit.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/logicpd-som-lv-37xx-devkit.dts
@@ -11,3 +11,18 @@
 	model = "LogicPD Zoom DM3730 SOM-LV Development Kit";
 	compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3";
 };
+
+&omap3_pmx_core2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&hsusb2_2_pins>;
+	hsusb2_2_pins: pinmux_hsusb2_2_pins {
+		pinctrl-single,pins = <
+			OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)            /* etk_d10.hsusb2_clk */
+			OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)            /* etk_d11.hsusb2_stp */
+			OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d12.hsusb2_dir */
+			OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d13.hsusb2_nxt */
+			OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d14.hsusb2_data0 */
+			OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d15.hsusb2_data1 */
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/logicpd-som-lv-baseboard.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/logicpd-som-lv-baseboard.dtsi
@@ -51,6 +51,8 @@
 
 &mcbsp2 {
 	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcbsp2_pins>;
 };
 
 &charger {
@@ -102,35 +104,18 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
-	lcd0: display@0 {
-		compatible = "panel-dpi";
-		label = "28";
-		status = "okay";
-		/* default-on; */
+	lcd0: display {
+		/* This isn't the exact LCD, but the timings meet spec */
+		compatible = "logicpd,type28";
 		pinctrl-names = "default";
 		pinctrl-0 = <&lcd_enable_pin>;
-		enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;	/* gpio155, lcd INI */
+		backlight = <&bl>;
+		enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
 		port {
 			lcd_in: endpoint {
 				remote-endpoint = <&dpi_out>;
 			};
 		};
-
-		panel-timing {
-			clock-frequency = <9000000>;
-			hactive = <480>;
-			vactive = <272>;
-			hfront-porch = <3>;
-			hback-porch = <2>;
-			hsync-len = <42>;
-			vback-porch = <3>;
-			vfront-porch = <2>;
-			vsync-len = <11>;
-			hsync-active = <1>;
-			vsync-active = <1>;
-			de-active = <1>;
-			pixelclk-active = <0>;
-		};
 	};
 
 	bl: backlight {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/logicpd-som-lv.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/logicpd-som-lv.dtsi
@@ -265,21 +265,6 @@
 	};
 };
 
-&omap3_pmx_core2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&hsusb2_2_pins>;
-	hsusb2_2_pins: pinmux_hsusb2_2_pins {
-		pinctrl-single,pins = <
-			OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)            /* etk_d10.hsusb2_clk */
-			OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)            /* etk_d11.hsusb2_stp */
-			OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d12.hsusb2_dir */
-			OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d13.hsusb2_nxt */
-			OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d14.hsusb2_data0 */
-			OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d15.hsusb2_data1 */
-		>;
-	};
-};
-
 &uart2 {
 	interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
 	pinctrl-names = "default";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
@@ -11,22 +11,6 @@
 #include "logicpd-torpedo-37xx-devkit.dts"
 
 &lcd0 {
-
-	label = "28";
-
-	panel-timing {
-		clock-frequency = <9000000>;
-		hactive = <480>;
-		vactive = <272>;
-		hfront-porch = <3>;
-		hback-porch = <2>;
-		hsync-len = <42>;
-		vback-porch = <3>;
-		vfront-porch = <2>;
-		vsync-len = <11>;
-		hsync-active = <1>;
-		vsync-active = <1>;
-		de-active = <1>;
-		pixelclk-active = <0>;
-	};
+	/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
+	compatible = "logicpd,type28";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi
@@ -80,6 +80,8 @@
 };
 
 &mcbsp2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcbsp2_pins>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/lpc32xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/lpc32xx.dtsi
@@ -329,9 +329,6 @@
 
 					clocks = <&xtal_32k>, <&xtal>;
 					clock-names = "xtal_32k", "xtal";
-
-					assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
-					assigned-clock-rates = <208000000>;
 				};
 			};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/ls1021a-tsn.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/ls1021a-tsn.dts
@@ -247,7 +247,7 @@
 
 	flash@0 {
 		/* Rev. A uses 64MB flash, Rev. B & C use 32MB flash */
-		compatible = "jedec,spi-nor", "s25fl256s1", "s25fl512s";
+		compatible = "jedec,spi-nor";
 		spi-max-frequency = <20000000>;
 		#address-cells = <1>;
 		#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/ls1021a.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/ls1021a.dtsi
@@ -181,7 +181,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <0x0 0x1550000 0x0 0x10000>,
-			      <0x0 0x40000000 0x0 0x40000000>;
+			      <0x0 0x40000000 0x0 0x20000000>;
 			reg-names = "QuadSPI", "QuadSPI-memory";
 			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
 			clock-names = "qspi_en", "qspi";
@@ -311,39 +311,6 @@
 			#thermal-sensor-cells = <1>;
 		};
 
-		thermal-zones {
-			cpu_thermal: cpu-thermal {
-				polling-delay-passive = <1000>;
-				polling-delay = <5000>;
-
-				thermal-sensors = <&tmu 0>;
-
-				trips {
-					cpu_alert: cpu-alert {
-						temperature = <85000>;
-						hysteresis = <2000>;
-						type = "passive";
-					};
-					cpu_crit: cpu-crit {
-						temperature = <95000>;
-						hysteresis = <2000>;
-						type = "critical";
-					};
-				};
-
-				cooling-maps {
-					map0 {
-						trip = <&cpu_alert>;
-						cooling-device =
-							<&cpu0 THERMAL_NO_LIMIT
-							THERMAL_NO_LIMIT>,
-							<&cpu1 THERMAL_NO_LIMIT
-							THERMAL_NO_LIMIT>;
-					};
-				};
-			};
-		};
-
 		dspi0: spi@2100000 {
 			compatible = "fsl,ls1021a-v1.0-dspi";
 			#address-cells = <1>;
@@ -728,7 +695,7 @@
 		};
 
 		mdio0: mdio@2d24000 {
-			compatible = "fsl,etsec2-mdio";
+			compatible = "gianfar";
 			device_type = "mdio";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -737,7 +704,7 @@
 		};
 
 		mdio1: mdio@2d64000 {
-			compatible = "fsl,etsec2-mdio";
+			compatible = "gianfar";
 			device_type = "mdio";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -753,7 +720,7 @@
 			fsl,tmr-prsc    = <2>;
 			fsl,tmr-add     = <0xaaaaaaab>;
 			fsl,tmr-fiper1  = <999999995>;
-			fsl,tmr-fiper2  = <99990>;
+			fsl,tmr-fiper2  = <999999995>;
 			fsl,max-adj     = <499999999>;
 			fsl,extts-fifo;
 		};
@@ -984,4 +951,37 @@
 		};
 
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			polling-delay-passive = <1000>;
+			polling-delay = <5000>;
+
+			thermal-sensors = <&tmu 0>;
+
+			trips {
+				cpu_alert: cpu-alert {
+					temperature = <85000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+				cpu_crit: cpu-crit {
+					temperature = <95000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+
+			cooling-maps {
+				map0 {
+					trip = <&cpu_alert>;
+					cooling-device =
+						<&cpu0 THERMAL_NO_LIMIT
+						THERMAL_NO_LIMIT>,
+						<&cpu1 THERMAL_NO_LIMIT
+						THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+	};
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson.dtsi
@@ -49,14 +49,14 @@
 			};
 
 			uart_A: serial@84c0 {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x84c0 0x18>;
 				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
 			};
 
 			uart_B: serial@84dc {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x84dc 0x18>;
 				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
@@ -94,7 +94,7 @@
 			};
 
 			uart_C: serial@8700 {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x8700 0x18>;
 				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
@@ -196,7 +196,7 @@
 			};
 
 			uart_AO: serial@4c0 {
-				compatible = "amlogic,meson6-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart", "amlogic,meson-ao-uart";
 				reg = <0x4c0 0x18>;
 				interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
 				status = "disabled";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson8.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson8.dtsi
@@ -129,8 +129,8 @@
 	gpu_opp_table: gpu-opp-table {
 		compatible = "operating-points-v2";
 
-		opp-182150000 {
-			opp-hz = /bits/ 64 <182150000>;
+		opp-182142857 {
+			opp-hz = /bits/ 64 <182142857>;
 			opp-microvolt = <1150000>;
 		};
 		opp-318750000 {
@@ -230,8 +230,6 @@
 				     <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
@@ -243,8 +241,13 @@
 					  "pp2", "ppmmu2", "pp4", "ppmmu4",
 					  "pp5", "ppmmu5", "pp6", "ppmmu6";
 			resets = <&reset RESET_MALI>;
+
 			clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
 			clock-names = "bus", "core";
+
+			assigned-clocks = <&clkc CLKID_MALI>;
+			assigned-clock-rates = <318750000>;
+
 			operating-points-v2 = <&gpu_opp_table>;
 		};
 	};
@@ -253,7 +256,7 @@
 &aobus {
 	pmu: pmu@e0 {
 		compatible = "amlogic,meson8-pmu", "syscon";
-		reg = <0xe0 0x8>;
+		reg = <0xe0 0x18>;
 	};
 
 	pinctrl_aobus: pinctrl@84 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson8b-ec100.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson8b-ec100.dts
@@ -148,7 +148,7 @@
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&vcc_5v>;
+		pwm-supply = <&vcc_5v>;
 
 		pwms = <&pwm_cd 0 1148 0>;
 		pwm-dutycycle-range = <100 0>;
@@ -232,7 +232,7 @@
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&vcc_5v>;
+		pwm-supply = <&vcc_5v>;
 
 		pwms = <&pwm_cd 1 1148 0>;
 		pwm-dutycycle-range = <100 0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson8b-mxq.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson8b-mxq.dts
@@ -39,6 +39,8 @@
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
+		pwm-supply = <&vcc_5v>;
+
 		pwms = <&pwm_cd 0 1148 0>;
 		pwm-dutycycle-range = <100 0>;
 
@@ -84,7 +86,7 @@
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&vcc_5v>;
+		pwm-supply = <&vcc_5v>;
 
 		pwms = <&pwm_cd 1 1148 0>;
 		pwm-dutycycle-range = <100 0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -130,7 +130,7 @@
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&p5v0>;
+		pwm-supply = <&p5v0>;
 
 		pwms = <&pwm_cd 0 12218 0>;
 		pwm-dutycycle-range = <91 0>;
@@ -162,7 +162,7 @@
 		regulator-min-microvolt = <860000>;
 		regulator-max-microvolt = <1140000>;
 
-		vin-supply = <&p5v0>;
+		pwm-supply = <&p5v0>;
 
 		pwms = <&pwm_cd 1 12218 0>;
 		pwm-dutycycle-range = <91 0>;
@@ -219,7 +219,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson8b.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson8b.dtsi
@@ -125,8 +125,8 @@
 			opp-hz = /bits/ 64 <255000000>;
 			opp-microvolt = <1100000>;
 		};
-		opp-364300000 {
-			opp-hz = /bits/ 64 <364300000>;
+		opp-364285714 {
+			opp-hz = /bits/ 64 <364285714>;
 			opp-microvolt = <1100000>;
 		};
 		opp-425000000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
@@ -83,7 +83,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
@@ -13,8 +13,10 @@
 		#interrupt-cells = <2>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-		spi-max-frequency = <3000000>;
+		spi-max-frequency = <9600000>;
 		spi-cs-high;
+		spi-cpol;
+		spi-cpha;
 
 		cpcap_adc: adc {
 			compatible = "motorola,mapphone-cpcap-adc";
@@ -160,12 +162,12 @@
 		regulator-enable-ramp-delay = <1000>;
 	};
 
-	/* Used by DSS */
+	/* Used by DSS and is the "zerov_regulator" trigger for SoC off mode */
 	vcsi: VCSI {
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
 		regulator-enable-ramp-delay = <1000>;
-		regulator-boot-on;
+		regulator-always-on;
 	};
 
 	vdac: VDAC {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/moxart-uc7112lx.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/moxart-uc7112lx.dts
@@ -79,7 +79,7 @@
 	clocks = <&ref12>;
 };
 
-&sdhci {
+&mmc {
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/moxart.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/moxart.dtsi
@@ -93,8 +93,8 @@
 			clock-names = "PCLK";
 		};
 
-		sdhci: sdhci@98e00000 {
-			compatible = "moxa,moxart-sdhci";
+		mmc: mmc@98e00000 {
+			compatible = "moxa,moxart-mmc";
 			reg = <0x98e00000 0x5C>;
 			interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&clk_apb>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
@@ -192,6 +192,7 @@
 					fixed-link {
 						speed = <1000>;
 						full-duplex;
+						pause;
 					};
 				};
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/mt7623n-rfb-emmc.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/mt7623n-rfb-emmc.dts
@@ -138,6 +138,7 @@
 	mac@1 {
 		compatible = "mediatek,eth-mac";
 		reg = <1>;
+		phy-mode = "rgmii";
 		phy-handle = <&phy5>;
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi
@@ -29,7 +29,7 @@
 		compatible = "smsc,lan9221","smsc,lan9115";
 		bank-width = <2>;
 
-		gpmc,mux-add-data;
+		gpmc,mux-add-data = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-rd-off-ns = <42>;
 		gpmc,cs-wr-off-ns = <36>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-cm-t3x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-cm-t3x.dtsi
@@ -227,7 +227,7 @@
 
 		interrupt-parent = <&gpio2>;
 		interrupts = <25 0>;		/* gpio_57 */
-		pendown-gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
@@ -54,7 +54,7 @@
 
 		interrupt-parent = <&gpio1>;
 		interrupts = <27 0>;		/* gpio_27 */
-		pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-gta04.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -31,6 +31,8 @@
 	aliases {
 		display0 = &lcd;
 		display1 = &tv0;
+		/delete-property/ mmc2;
+		/delete-property/ mmc3;
 	};
 
 	ldo_3v3: fixedregulator {
@@ -515,7 +517,7 @@
 		compatible = "bosch,bma180";
 		reg = <0x41>;
 		pinctrl-names = "default";
-		pintcrl-0 = <&bma180_pins>;
+		pinctrl-0 = <&bma180_pins>;
 		interrupt-parent = <&gpio4>;
 		interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-gta04a5one.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-gta04a5one.dts
@@ -5,9 +5,11 @@
 
 #include "omap3-gta04a5.dts"
 
-&omap3_pmx_core {
+/ {
 	model = "Goldelico GTA04A5/Letux 2804 with OneNAND";
+};
 
+&omap3_pmx_core {
 	gpmc_pins: pinmux_gpmc_pins {
 		pinctrl-single,pins = <
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
@@ -311,7 +311,7 @@
 		interrupt-parent = <&gpio1>;
 		interrupts = <8 0>;   /* boot6 / gpio_8 */
 		spi-max-frequency = <1000000>;
-		pendown-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
 		vcc-supply = <&reg_vcc3>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&tsc2048_pins>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-n900.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-n900.dts
@@ -105,6 +105,14 @@
 			linux,code = <SW_FRONT_PROXIMITY>;
 			linux,can-disable;
 		};
+
+		machine_cover {
+			label = "Machine Cover";
+			gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
+			linux,input-type = <EV_SW>;
+			linux,code = <SW_MACHINE_COVER>;
+			linux,can-disable;
+		};
 	};
 
 	isp1707: isp1707 {
@@ -155,6 +163,12 @@
 		pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
 	};
 
+	rom_rng: rng {
+		compatible = "nokia,n900-rom-rng";
+		clocks = <&rng_ick>;
+		clock-names = "ick";
+	};
+
 	/* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
 	vctcxo: vctcxo {
 		compatible = "fixed-clock";
@@ -808,10 +822,6 @@
 	pinctrl-0 = <&mmc1_pins>;
 	vmmc-supply = <&vmmc1>;
 	bus-width = <4>;
-	/* For debugging, it is often good idea to remove this GPIO.
-	   It means you can remove back cover (to reboot by removing
-	   battery) and still use the MMC card. */
-	cd-gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
 };
 
 /* most boards use vaux3, only some old versions use vmmc2 instead */
@@ -843,34 +853,46 @@
 		compatible = "ti,omap2-onenand";
 		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
 
+		/*
+		 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
+		 * bootloader set values when booted with v5.1
+		 * (OneNAND Manufacturer: Samsung):
+		 *
+		 *   cs0 GPMC_CS_CONFIG1: 0xfb001202
+		 *   cs0 GPMC_CS_CONFIG2: 0x00111100
+		 *   cs0 GPMC_CS_CONFIG3: 0x00020200
+		 *   cs0 GPMC_CS_CONFIG4: 0x11001102
+		 *   cs0 GPMC_CS_CONFIG5: 0x03101616
+		 *   cs0 GPMC_CS_CONFIG6: 0x90060000
+		 */
 		gpmc,sync-read;
 		gpmc,sync-write;
 		gpmc,burst-length = <16>;
 		gpmc,burst-read;
 		gpmc,burst-wrap;
 		gpmc,burst-write;
-		gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
-		gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
+		gpmc,device-width = <2>;
+		gpmc,mux-add-data = <2>;
 		gpmc,cs-on-ns = <0>;
-		gpmc,cs-rd-off-ns = <87>;
-		gpmc,cs-wr-off-ns = <87>;
+		gpmc,cs-rd-off-ns = <102>;
+		gpmc,cs-wr-off-ns = <102>;
 		gpmc,adv-on-ns = <0>;
-		gpmc,adv-rd-off-ns = <10>;
-		gpmc,adv-wr-off-ns = <10>;
-		gpmc,oe-on-ns = <15>;
-		gpmc,oe-off-ns = <87>;
+		gpmc,adv-rd-off-ns = <12>;
+		gpmc,adv-wr-off-ns = <12>;
+		gpmc,oe-on-ns = <12>;
+		gpmc,oe-off-ns = <102>;
 		gpmc,we-on-ns = <0>;
-		gpmc,we-off-ns = <87>;
-		gpmc,rd-cycle-ns = <112>;
-		gpmc,wr-cycle-ns = <112>;
-		gpmc,access-ns = <81>;
-		gpmc,page-burst-access-ns = <15>;
+		gpmc,we-off-ns = <102>;
+		gpmc,rd-cycle-ns = <132>;
+		gpmc,wr-cycle-ns = <132>;
+		gpmc,access-ns = <96>;
+		gpmc,page-burst-access-ns = <18>;
 		gpmc,bus-turnaround-ns = <0>;
 		gpmc,cycle2cycle-delay-ns = <0>;
 		gpmc,wait-monitoring-ns = <0>;
-		gpmc,clk-activation-ns = <5>;
-		gpmc,wr-data-mux-bus-ns = <30>;
-		gpmc,wr-access-ns = <81>;
+		gpmc,clk-activation-ns = <6>;
+		gpmc,wr-data-mux-bus-ns = <36>;
+		gpmc,wr-access-ns = <96>;
 		gpmc,sync-clk-ps = <15000>;
 
 		/*
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
@@ -149,7 +149,7 @@
 
 		interrupt-parent = <&gpio4>;
 		interrupts = <18 0>;			/* gpio_114 */
-		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
@@ -160,7 +160,7 @@
 
 		interrupt-parent = <&gpio4>;
 		interrupts = <18 0>;			/* gpio_114 */
-		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
 
 		ti,x-min = /bits/ 16 <0x0>;
 		ti,x-max = /bits/ 16 <0x0fff>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi
@@ -22,7 +22,7 @@
 		compatible = "smsc,lan9221","smsc,lan9115";
 		bank-width = <2>;
 
-		gpmc,mux-add-data;
+		gpmc,mux-add-data = <0>;
 		gpmc,cs-on-ns = <0>;
 		gpmc,cs-rd-off-ns = <42>;
 		gpmc,cs-wr-off-ns = <36>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-pandora-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-pandora-common.dtsi
@@ -226,6 +226,17 @@
 		gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* GPIO_164 */
 	};
 
+	/* wl1251 wifi+bt module */
+	wlan_en: fixed-regulator-wg7210_en {
+		compatible = "regulator-fixed";
+		regulator-name = "vwlan";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		startup-delay-us = <50000>;
+		enable-active-high;
+		gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+	};
+
 	/* wg7210 (wifi+bt module) 32k clock buffer */
 	wg7210_32k: fixed-regulator-wg7210_32k {
 		compatible = "regulator-fixed";
@@ -522,9 +533,30 @@
 	/*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/	/* GPIO_127 */
 };
 
-/* mmc3 is probed using pdata-quirks to pass wl1251 card data */
 &mmc3 {
-	status = "disabled";
+	vmmc-supply = <&wlan_en>;
+
+	bus-width = <4>;
+	non-removable;
+	ti,non-removable;
+	cap-power-off-card;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc3_pins>;
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	wlan: wifi@1 {
+		compatible = "ti,wl1251";
+
+		reg = <1>;
+
+		interrupt-parent = <&gpio1>;
+		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;	/* GPIO_21 */
+
+		ti,wl1251-has-eeprom;
+	};
 };
 
 /* bluetooth*/
@@ -619,7 +651,7 @@
 		pinctrl-0 = <&penirq_pins>;
 		interrupt-parent = <&gpio3>;
 		interrupts = <30 IRQ_TYPE_NONE>;	/* GPIO_94 */
-		pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
 		vcc-supply = <&vaux4>;
 
 		ti,x-min = /bits/ 16 <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3-tao3530.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3-tao3530.dtsi
@@ -222,7 +222,7 @@
 	pinctrl-0 = <&mmc1_pins>;
 	vmmc-supply = <&vmmc1>;
 	vqmmc-supply = <&vsim>;
-	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_HIGH>;
+	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
 	bus-width = <8>;
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3.dtsi
@@ -23,6 +23,9 @@
 		i2c0 = &i2c1;
 		i2c1 = &i2c2;
 		i2c2 = &i2c3;
+		mmc0 = &mmc1;
+		mmc1 = &mmc2;
+		mmc2 = &mmc3;
 		serial0 = &uart1;
 		serial1 = &uart2;
 		serial2 = &uart3;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap3430-sdp.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap3430-sdp.dts
@@ -101,7 +101,7 @@
 
 	nand@1,0 {
 		compatible = "ti,omap2-nand";
-		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
+		reg = <1 0 4>; /* CS1, offset 0, IO size 4 */
 		interrupt-parent = <&gpmc>;
 		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
 			     <1 IRQ_TYPE_NONE>;	/* termcount */
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap4-droid4-xt894.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap4-droid4-xt894.dts
@@ -656,12 +656,12 @@
 /* Configure pwm clock source for timers 8 & 9 */
 &timer8 {
 	assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>;
-	assigned-clock-parents = <&sys_clkin_ck>;
+	assigned-clock-parents = <&sys_32k_ck>;
 };
 
 &timer9 {
 	assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>;
-	assigned-clock-parents = <&sys_clkin_ck>;
+	assigned-clock-parents = <&sys_32k_ck>;
 };
 
 /*
@@ -678,6 +678,7 @@
 &uart3 {
 	interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
 			       &omap4_pmx_core 0x17c>;
+	overrun-throttle-ms = <500>;
 };
 
 &uart4 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap4-duovero-parlor.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap4-duovero-parlor.dts
@@ -139,7 +139,7 @@
 	ethernet@gpmc {
 		reg = <5 0 0xff>;
 		interrupt-parent = <&gpio2>;
-		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;	/* gpio_44 */
+		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;		/* gpio_44 */
 
 		phy-mode = "mii";
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap4-panda-es.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap4-panda-es.dts
@@ -46,7 +46,7 @@
 
 	button_pins: pinmux_button_pins {
 		pinctrl-single,pins = <
-			OMAP4_IOPAD(0x11b, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
+			OMAP4_IOPAD(0x0fc, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
 		>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap4.dtsi
@@ -22,6 +22,11 @@
 		i2c1 = &i2c2;
 		i2c2 = &i2c3;
 		i2c3 = &i2c4;
+		mmc0 = &mmc1;
+		mmc1 = &mmc2;
+		mmc2 = &mmc3;
+		mmc3 = &mmc4;
+		mmc4 = &mmc5;
 		serial0 = &uart1;
 		serial1 = &uart2;
 		serial2 = &uart3;
@@ -328,10 +333,10 @@
 			status = "disabled";
 		};
 
-		target-module@56000000 {
+		sgx_module: target-module@56000000 {
 			compatible = "ti,sysc-omap4", "ti,sysc";
-			reg = <0x5601fc00 0x4>,
-			      <0x5601fc10 0x4>;
+			reg = <0x5600fe00 0x4>,
+			      <0x5600fe10 0x4>;
 			reg-names = "rev", "sysc";
 			ti,sysc-midle = <SYSC_IDLE_FORCE>,
 					<SYSC_IDLE_NO>,
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap443x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap443x.dtsi
@@ -33,10 +33,12 @@
 	};
 
 	ocp {
+		/* 4430 has only gpio_86 tshut and no talert interrupt */
 		bandgap: bandgap@4a002260 {
 			reg = <0x4a002260 0x4
 			       0x4a00232C 0x4>;
 			compatible = "ti,omap4430-bandgap";
+			gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
 
 			#thermal-sensor-cells = <0>;
 		};
@@ -74,3 +76,13 @@
 };
 
 /include/ "omap443x-clocks.dtsi"
+
+/*
+ * Use dpll_per for sgx at 153.6MHz like droid4 stock v3.0.8 Android kernel
+ */
+&sgx_module {
+	assigned-clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 24>,
+			  <&dpll_per_m7x2_ck>;
+	assigned-clock-rates = <0>, <153600000>;
+	assigned-clock-parents = <&dpll_per_m7x2_ck>;
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap44xx-clocks.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap44xx-clocks.dtsi
@@ -770,14 +770,6 @@
 		ti,max-div = <2>;
 	};
 
-	sha2md5_fck: sha2md5_fck@15c8 {
-		#clock-cells = <0>;
-		compatible = "ti,gate-clock";
-		clocks = <&l3_div_ck>;
-		ti,bit-shift = <1>;
-		reg = <0x15c8>;
-	};
-
 	usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 {
 		#clock-cells = <0>;
 		compatible = "ti,gate-clock";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap5-board-common.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -30,14 +30,6 @@
 		regulator-max-microvolt = <5000000>;
 	};
 
-	vdds_1v8_main: fixedregulator-vdds_1v8_main {
-		compatible = "regulator-fixed";
-		regulator-name = "vdds_1v8_main";
-		vin-supply = <&smps7_reg>;
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-	};
-
 	vmmcsd_fixed: fixedregulator-mmcsd {
 		compatible = "regulator-fixed";
 		regulator-name = "vmmcsd_fixed";
@@ -487,6 +479,7 @@
 					regulator-boot-on;
 				};
 
+				vdds_1v8_main:
 				smps7_reg: smps7 {
 					/* VDDS_1v8_OMAP over VDDS_1v8_MAIN */
 					regulator-name = "smps7";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap5-cm-t54.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap5-cm-t54.dts
@@ -354,7 +354,7 @@
 
 		interrupt-parent = <&gpio1>;
 		interrupts = <15 0>;			/* gpio1_wk15 */
-		pendown-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+		pendown-gpio = <&gpio1 15 GPIO_ACTIVE_LOW>;
 
 
 		ti,x-min = /bits/ 16 <0x0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/omap5.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/omap5.dtsi
@@ -25,6 +25,11 @@
 		i2c2 = &i2c3;
 		i2c3 = &i2c4;
 		i2c4 = &i2c5;
+		mmc0 = &mmc1;
+		mmc1 = &mmc2;
+		mmc2 = &mmc3;
+		mmc3 = &mmc4;
+		mmc4 = &mmc5;
 		serial0 = &uart1;
 		serial1 = &uart2;
 		serial2 = &uart3;
@@ -143,6 +148,7 @@
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0 0 0 0xc0000000>;
+		dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
 		ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
 		reg = <0 0x44000000 0 0x2000>,
 		      <0 0x44800000 0 0x3000>,
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00001-0001.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00001-0001.dts
@@ -0,0 +1,26 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00001";
+	version = "0001";
+
+	fragment@0 {
+		target = <&default_adccard>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc1>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00110-0002.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00110-0002.dts
@@ -0,0 +1,28 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00110";
+	version = "0002";
+
+	fragment@0 {
+		target = <&verizon_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_vz_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00110-0003.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00110-0003.dts
@@ -0,0 +1,28 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00110";
+	version = "0003";
+
+	fragment@0 {
+		target = <&verizon_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_vz_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00110-0004.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00110-0004.dts
@@ -0,0 +1,28 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00110";
+	version = "0004";
+
+	fragment@0 {
+		target = <&verizon_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_vz_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00110-0005.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00110-0005.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00110";
+	version = "0005";
+
+	fragment@0 {
+		target = <&verizon_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_vz_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00110-0006.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00110-0006.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00110";
+	version = "0006";
+
+	fragment@0 {
+		target = <&verizon_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_vz_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00110-000A.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00110-000A.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00110";
+	version = "000A";
+
+	fragment@0 {
+		target = <&verizon_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_vz_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00121-0001.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00121-0001.dts
@@ -0,0 +1,28 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00121";
+	version = "0001";
+
+	fragment@0 {
+		target = <&gemalto_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_gm_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00121-0003.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00121-0003.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00121";
+	version = "0003";
+
+	fragment@0 {
+		target = <&gemalto_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_gm_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00121-0004.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00121-0004.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00121";
+	version = "0004";
+
+	fragment@0 {
+		target = <&gemalto_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_gm_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00121-000A.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00121-000A.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00121";
+	version = "000A";
+
+	fragment@0 {
+		target = <&gemalto_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_gm_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00125-0001.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00125-0001.dts
@@ -0,0 +1,55 @@
+/dts-v1/;
+/plugin/;
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00125";
+	version = "0001";
+
+	fragment@0 {
+		target = <&tau_board>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_tau80>;
+		};
+	};
+
+	fragment@1 {
+		target = <&uart4>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart5>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@3 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@4 {
+		target = <&uart8>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@5 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc1>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00125-0002.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00125-0002.dts
@@ -0,0 +1,55 @@
+/dts-v1/;
+/plugin/;
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00125";
+	version = "0002";
+
+	fragment@0 {
+		target = <&tau_board>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_tau80>;
+		};
+	};
+
+	fragment@1 {
+		target = <&uart4>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart5>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@3 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@4 {
+		target = <&uart8>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@5 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc1>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00125-000A.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00125-000A.dts
@@ -0,0 +1,55 @@
+/dts-v1/;
+/plugin/;
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00125";
+	version = "000A";
+
+	fragment@0 {
+		target = <&tau_board>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_tau80>;
+		};
+	};
+
+	fragment@1 {
+		target = <&uart4>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart5>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@3 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@4 {
+		target = <&uart8>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	fragment@5 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc1>;
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00134-0001.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00134-0001.dts
@@ -0,0 +1,18 @@
+/dts-v1/;
+/plugin/;
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00134";
+	version = "0001";
+
+	fragment@0 {
+		target = <&multiplexer_board>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_multiplexer>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00157-0001.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00157-0001.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00157";
+	version = "0001";
+
+	fragment@0 {
+		target = <&gemalto_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_gm_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/310-00157-000A.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/310-00157-000A.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "rigado,vesta";
+
+	/* identification */
+	part-number = "310-00157";
+	version = "000A";
+
+	fragment@0 {
+		target = <&gemalto_cellmdm>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_gm_cellmdm>;
+		};
+	};
+
+	fragment@1 {
+		target = <&adc1>;
+		__overlay__ {
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_adc2>;
+			status = "okay";
+		};
+	};
+
+	fragment@2 {
+		target = <&uart7>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/overlays/Makefile
+++ linux-ein-5.4.0/arch/arm/boot/dts/overlays/Makefile
@@ -0,0 +1,29 @@
+ifeq ($(CONFIG_OF),y)
+
+# Overlays for Vesta IoT Gateways
+
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00001-0001.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00110-0002.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00110-0003.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00110-0004.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00110-0005.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00110-0006.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00110-000A.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00121-0001.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00121-0003.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00121-0004.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00121-000A.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00125-0001.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00125-0002.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00125-000A.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00134-0001.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00157-0001.dtbo
+dtbo-$(CONFIG_OF_OVERLAY) += 310-00157-000A.dtbo
+
+targets += dtbs dtbs_install
+targets += $(dtbo-y)
+
+endif
+
+always		:= $(dtbo-y)
+clean-files	:= *.dtbo
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/owl-s500.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/owl-s500.dtsi
@@ -84,21 +84,21 @@
 		global_timer: timer@b0020200 {
 			compatible = "arm,cortex-a9-global-timer";
 			reg = <0xb0020200 0x100>;
-			interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+			interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
 			status = "disabled";
 		};
 
 		twd_timer: timer@b0020600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xb0020600 0x20>;
-			interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
 			status = "disabled";
 		};
 
 		twd_wdt: wdt@b0020620 {
 			compatible = "arm,cortex-a9-twd-wdt";
 			reg = <0xb0020620 0xe0>;
-			interrupts = <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
 			status = "disabled";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/ox810se.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/ox810se.dtsi
@@ -323,8 +323,8 @@
 					interrupt-controller;
 					reg = <0 0x200>;
 					#interrupt-cells = <1>;
-					valid-mask = <0xFFFFFFFF>;
-					clear-mask = <0>;
+					valid-mask = <0xffffffff>;
+					clear-mask = <0xffffffff>;
 				};
 
 				timer0: timer@200 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/ox820.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/ox820.dtsi
@@ -240,8 +240,8 @@
 					reg = <0 0x200>;
 					interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
 					#interrupt-cells = <1>;
-					valid-mask = <0xFFFFFFFF>;
-					clear-mask = <0>;
+					valid-mask = <0xffffffff>;
+					clear-mask = <0xffffffff>;
 				};
 
 				timer0: timer@200 {
@@ -287,7 +287,7 @@
 				clocks = <&armclk>;
 			};
 
-			gic: gic@1000 {
+			gic: interrupt-controller@1000 {
 				compatible = "arm,arm11mp-gic";
 				interrupt-controller;
 				#interrupt-cells = <3>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
@@ -45,18 +45,21 @@
 		emac: gem@30000 {
 			compatible = "cadence,gem";
 			reg = <0x30000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <31>;
 		};
 
 		dmac1: dmac@40000 {
 			compatible = "snps,dw-dmac";
 			reg = <0x40000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <25>;
 		};
 
 		dmac2: dmac@50000 {
 			compatible = "snps,dw-dmac";
 			reg = <0x50000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <26>;
 		};
 
@@ -234,6 +237,7 @@
 		axi2pico@c0000000 {
 			compatible = "picochip,axi2pico-pc3x2";
 			reg = <0xc0000000 0x10000>;
+			interrupt-parent = <&vic0>;
 			interrupts = <13 14 15 16 17 18 19 20 21>;
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -198,7 +198,7 @@
 			clock-frequency = <19200000>;
 		};
 
-		pxo_board {
+		pxo_board: pxo_board {
 			compatible = "fixed-clock";
 			#clock-cells = <0>;
 			clock-frequency = <27000000>;
@@ -1147,7 +1147,7 @@
 		};
 
 		gpu: adreno-3xx@4300000 {
-			compatible = "qcom,adreno-3xx";
+			compatible = "qcom,adreno-320.2", "qcom,adreno";
 			reg = <0x04300000 0x20000>;
 			reg-names = "kgsl_3d0_reg_memory";
 			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
@@ -1162,7 +1162,6 @@
 			    <&mmcc GFX3D_AHB_CLK>,
 			    <&mmcc GFX3D_AXI_CLK>,
 			    <&mmcc MMSS_IMEM_AHB_CLK>;
-			qcom,chipid = <0x03020002>;
 
 			iommus = <&gfx3d 0
 				  &gfx3d 1
@@ -1261,9 +1260,9 @@
 				<&mmcc DSI1_BYTE_CLK>,
 				<&mmcc DSI_PIXEL_CLK>,
 				<&mmcc DSI1_ESC_CLK>;
-			clock-names = "iface_clk", "bus_clk", "core_mmss_clk",
-					"src_clk", "byte_clk", "pixel_clk",
-					"core_clk";
+			clock-names = "iface", "bus", "core_mmss",
+					"src", "byte", "pixel",
+					"core";
 
 			assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
 					<&mmcc DSI1_ESC_SRC>,
@@ -1305,7 +1304,7 @@
 			reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator";
 			clock-names = "iface_clk", "ref";
 			clocks = <&mmcc DSI_M_AHB_CLK>,
-				 <&cxo_board>;
+				 <&pxo_board>;
 		};
 
 
@@ -1571,7 +1570,7 @@
 		};
 
 		etb@1a01000 {
-			compatible = "coresight-etb10", "arm,primecell";
+			compatible = "arm,coresight-etb10", "arm,primecell";
 			reg = <0x1a01000 0x1000>;
 
 			clocks = <&rpmcc RPM_QDSS_CLK>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-ipq4019.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-ipq4019.dtsi
@@ -141,7 +141,8 @@
 	clocks {
 		sleep_clk: sleep_clk {
 			compatible = "fixed-clock";
-			clock-frequency = <32768>;
+			clock-frequency = <32000>;
+			clock-output-names = "gcc_sleep_clk_src";
 			#clock-cells = <0>;
 		};
 
@@ -392,8 +393,8 @@
 			#address-cells = <3>;
 			#size-cells = <2>;
 
-			ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000>,
-				 <0x82000000 0 0x40300000 0x40300000 0 0x00d00000>;
+			ranges = <0x81000000 0x0 0x00000000 0x40200000 0x0 0x00100000>,
+				 <0x82000000 0x0 0x40300000 0x40300000 0x0 0x00d00000>;
 
 			interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "msi";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-ipq8064.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-ipq8064.dtsi
@@ -451,8 +451,8 @@
 			#address-cells = <3>;
 			#size-cells = <2>;
 
-			ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000   /* downstream I/O */
-				  0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
+			ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00010000   /* I/O */
+				  0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* MEM */
 
 			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "msi";
@@ -502,8 +502,8 @@
 			#address-cells = <3>;
 			#size-cells = <2>;
 
-			ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000   /* downstream I/O */
-				  0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
+			ranges = <0x81000000 0x0 0x00000000 0x31e00000 0x0 0x00010000   /* I/O */
+				  0x82000000 0x0 0x2e000000 0x2e000000 0x0 0x03e00000>; /* MEM */
 
 			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "msi";
@@ -553,8 +553,8 @@
 			#address-cells = <3>;
 			#size-cells = <2>;
 
-			ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000   /* downstream I/O */
-				  0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
+			ranges = <0x81000000 0x0 0x00000000 0x35e00000 0x0 0x00010000   /* I/O */
+				  0x82000000 0x0 0x32000000 0x32000000 0x0 0x03e00000>; /* MEM */
 
 			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "msi";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-mdm9615.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-mdm9615.dtsi
@@ -323,6 +323,7 @@
 
 				pmicgpio: gpio@150 {
 					compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio";
+					reg = <0x150>;
 					interrupt-controller;
 					#interrupt-cells = <2>;
 					gpio-controller;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-msm8960.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-msm8960.dtsi
@@ -145,7 +145,9 @@
 			reg		= <0x108000 0x1000>;
 			qcom,ipc	= <&l2cc 0x8 2>;
 
-			interrupts	= <0 19 0>, <0 21 0>, <0 22 0>;
+			interrupts	= <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+					  <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+					  <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
 			interrupt-names	= "ack", "err", "wakeup";
 
 			regulators {
@@ -191,7 +193,7 @@
 				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
 				reg = <0x16440000 0x1000>,
 				      <0x16400000 0x1000>;
-				interrupts = <0 154 0x0>;
+				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
 				clock-names = "core", "iface";
 				status = "disabled";
@@ -317,7 +319,7 @@
 				#address-cells = <1>;
 				#size-cells = <0>;
 				reg = <0x16080000 0x1000>;
-				interrupts = <0 147 0>;
+				interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
 				spi-max-frequency = <24000000>;
 				cs-gpios = <&msmgpio 8 0>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -1213,8 +1213,8 @@
 				#phy-cells = <0>;
 				qcom,dsi-phy-index = <0>;
 
-				clocks = <&mmcc MDSS_AHB_CLK>;
-				clock-names = "iface";
+				clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
+				clock-names = "iface", "ref";
 			};
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/qcom-pm8841.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/qcom-pm8841.dtsi
@@ -25,6 +25,7 @@
 			compatible = "qcom,spmi-temp-alarm";
 			reg = <0x2400>;
 			interrupts = <4 0x24 0 IRQ_TYPE_EDGE_RISING>;
+			#thermal-sensor-cells = <0>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a73a4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a73a4.dtsi
@@ -131,7 +131,14 @@
 	cmt1: timer@e6130000 {
 		compatible = "renesas,r8a73a4-cmt1", "renesas,rcar-gen2-cmt1";
 		reg = <0 0xe6130000 0 0x1004>;
-		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
 		clock-names = "fck";
 		power-domains = <&pd_c5>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7740.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7740.dtsi
@@ -479,7 +479,7 @@
 		cpg_clocks: cpg_clocks@e6150000 {
 			compatible = "renesas,r8a7740-cpg-clocks";
 			reg = <0xe6150000 0x10000>;
-			clocks = <&extal1_clk>, <&extalr_clk>;
+			clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
 			#clock-cells = <1>;
 			clock-output-names = "system", "pllc0", "pllc1",
 					     "pllc2", "r",
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7743.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7743.dtsi
@@ -338,7 +338,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -348,7 +348,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -357,7 +357,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -367,7 +367,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -376,7 +376,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -386,7 +386,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7743",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7744.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7744.dtsi
@@ -338,7 +338,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -348,7 +348,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -357,7 +357,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -367,7 +367,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -376,7 +376,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -386,7 +386,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7744",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7745.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7745.dtsi
@@ -302,7 +302,7 @@
 			resets = <&cpg 407>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -312,7 +312,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -321,7 +321,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -331,7 +331,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -340,7 +340,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -350,7 +350,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7745",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7779-marzen.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -146,7 +146,7 @@
 	status = "okay";
 
 	clocks = <&mstp1_clks R8A7779_CLK_DU>, <&x3_clk>;
-	clock-names = "du", "dclkin.0";
+	clock-names = "du.0", "dclkin.0";
 
 	ports {
 		port@0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7779.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7779.dtsi
@@ -68,6 +68,14 @@
 		      <0xf0000100 0x100>;
 	};
 
+	timer@f0000200 {
+		compatible = "arm,cortex-a9-global-timer";
+		reg = <0xf0000200 0x100>;
+		interrupts = <GIC_PPI 11
+			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+		clocks = <&cpg_clocks R8A7779_CLK_ZS>;
+	};
+
 	timer@f0000600 {
 		compatible = "arm,cortex-a9-twd-timer";
 		reg = <0xf0000600 0x20>;
@@ -455,6 +463,7 @@
 		reg = <0xfff80000 0x40000>;
 		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp1_clks R8A7779_CLK_DU>;
+		clock-names = "du.0";
 		power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;
 		status = "disabled";
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7790.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7790.dtsi
@@ -427,7 +427,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -437,7 +437,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -446,7 +446,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -456,7 +456,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -465,7 +465,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -475,7 +475,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_rt: mmu@ffc80000 {
+		ipmmu_rt: iommu@ffc80000 {
 			compatible = "renesas,ipmmu-r8a7790",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xffc80000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7791.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7791.dtsi
@@ -350,7 +350,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -360,7 +360,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -369,7 +369,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -379,7 +379,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -388,7 +388,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -398,7 +398,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_rt: mmu@ffc80000 {
+		ipmmu_rt: iommu@ffc80000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xffc80000 0 0x1000>;
@@ -407,7 +407,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7791",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7793-gose.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7793-gose.dts
@@ -339,7 +339,7 @@
 			reg = <0x20>;
 			remote = <&vin1>;
 
-			port {
+			ports {
 				#address-cells = <1>;
 				#size-cells = <0>;
 
@@ -399,7 +399,7 @@
 			interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 			default-input = <0>;
 
-			port {
+			ports {
 				#address-cells = <1>;
 				#size-cells = <0>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7793.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7793.dtsi
@@ -336,7 +336,7 @@
 			#thermal-sensor-cells = <0>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -346,7 +346,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -355,7 +355,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -365,7 +365,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -374,7 +374,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -384,7 +384,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_rt: mmu@ffc80000 {
+		ipmmu_rt: iommu@ffc80000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xffc80000 0 0x1000>;
@@ -393,7 +393,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7793",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/r8a7794.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/r8a7794.dtsi
@@ -290,7 +290,7 @@
 			resets = <&cpg 407>;
 		};
 
-		ipmmu_sy0: mmu@e6280000 {
+		ipmmu_sy0: iommu@e6280000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6280000 0 0x1000>;
@@ -300,7 +300,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_sy1: mmu@e6290000 {
+		ipmmu_sy1: iommu@e6290000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6290000 0 0x1000>;
@@ -309,7 +309,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_ds: mmu@e6740000 {
+		ipmmu_ds: iommu@e6740000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe6740000 0 0x1000>;
@@ -319,7 +319,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mp: mmu@ec680000 {
+		ipmmu_mp: iommu@ec680000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xec680000 0 0x1000>;
@@ -328,7 +328,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_mx: mmu@fe951000 {
+		ipmmu_mx: iommu@fe951000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xfe951000 0 0x1000>;
@@ -338,7 +338,7 @@
 			status = "disabled";
 		};
 
-		ipmmu_gp: mmu@e62a0000 {
+		ipmmu_gp: iommu@e62a0000 {
 			compatible = "renesas,ipmmu-r8a7794",
 				     "renesas,ipmmu-vmsa";
 			reg = <0 0xe62a0000 0 0x1000>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3036-evb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3036-evb.dts
@@ -31,7 +31,7 @@
 &i2c1 {
 	status = "okay";
 
-	hym8563: hym8563@51 {
+	hym8563: rtc@51 {
 		compatible = "haoyu,hym8563";
 		reg = <0x51>;
 		#clock-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3036-kylin.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3036-kylin.dts
@@ -390,7 +390,7 @@
 		};
 	};
 
-	sleep {
+	suspend {
 		global_pwroff: global-pwroff {
 			rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3036.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3036.dtsi
@@ -128,7 +128,7 @@
 		assigned-clocks = <&cru SCLK_GPU>;
 		assigned-clock-rates = <100000000>;
 		clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		resets = <&cru SRST_GPU>;
 		status = "disabled";
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3066a.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3066a.dtsi
@@ -761,7 +761,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		pd_vio@RK3066_PD_VIO {
+		power-domain@RK3066_PD_VIO {
 			reg = <RK3066_PD_VIO>;
 			clocks = <&cru ACLK_LCDC0>,
 				 <&cru ACLK_LCDC1>,
@@ -788,7 +788,7 @@
 				 <&qos_rga>;
 		};
 
-		pd_video@RK3066_PD_VIDEO {
+		power-domain@RK3066_PD_VIDEO {
 			reg = <RK3066_PD_VIDEO>;
 			clocks = <&cru ACLK_VDPU>,
 				 <&cru ACLK_VEPU>,
@@ -797,7 +797,7 @@
 			pm_qos = <&qos_vpu>;
 		};
 
-		pd_gpu@RK3066_PD_GPU {
+		power-domain@RK3066_PD_GPU {
 			reg = <RK3066_PD_GPU>;
 			clocks = <&cru ACLK_GPU>;
 			pm_qos = <&qos_gpu>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3188-bqedison2qc.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3188-bqedison2qc.dts
@@ -58,20 +58,25 @@
 
 	lvds-encoder {
 		compatible = "ti,sn75lvds83", "lvds-encoder";
-		#address-cells = <1>;
-		#size-cells = <0>;
 
-		port@0 {
-			reg = <0>;
-			lvds_in_vop0: endpoint {
-				remote-endpoint = <&vop0_out_lvds>;
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lvds_in_vop0: endpoint {
+					remote-endpoint = <&vop0_out_lvds>;
+				};
 			};
-		};
 
-		port@1 {
-			reg = <1>;
-			lvds_out_panel: endpoint {
-				remote-endpoint = <&panel_in_lvds>;
+			port@1 {
+				reg = <1>;
+
+				lvds_out_panel: endpoint {
+					remote-endpoint = <&panel_in_lvds>;
+				};
 			};
 		};
 	};
@@ -465,10 +470,13 @@
 	non-removable;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
-	vmmcq-supply = <&vccio_wl>;
+	vqmmc-supply = <&vccio_wl>;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio3>;
 		interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3188-radxarock.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -67,7 +67,7 @@
 		#sound-dai-cells = <0>;
 	};
 
-	ir_recv: gpio-ir-receiver {
+	ir_recv: ir-receiver {
 		compatible = "gpio-ir-receiver";
 		gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
 		pinctrl-names = "default";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3188.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3188.dtsi
@@ -150,16 +150,16 @@
 		compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer";
 		reg = <0x2000e000 0x20>;
 		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&cru SCLK_TIMER3>, <&cru PCLK_TIMER3>;
-		clock-names = "timer", "pclk";
+		clocks = <&cru PCLK_TIMER3>, <&cru SCLK_TIMER3>;
+		clock-names = "pclk", "timer";
 	};
 
 	timer6: timer@200380a0 {
 		compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer";
 		reg = <0x200380a0 0x20>;
 		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&cru SCLK_TIMER6>, <&cru PCLK_TIMER0>;
-		clock-names = "timer", "pclk";
+		clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER6>;
+		clock-names = "pclk", "timer";
 	};
 
 	i2s0: i2s@1011a000 {
@@ -404,7 +404,7 @@
 				rockchip,pins = <2 RK_PD3 1 &pcfg_pull_none>;
 			};
 
-			lcdc1_rgb24: ldcd1-rgb24 {
+			lcdc1_rgb24: lcdc1-rgb24 {
 				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
 						<2 RK_PA1 1 &pcfg_pull_none>,
 						<2 RK_PA2 1 &pcfg_pull_none>,
@@ -632,7 +632,6 @@
 
 &global_timer {
 	interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
-	status = "disabled";
 };
 
 &local_timer {
@@ -701,7 +700,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		pd_vio@RK3188_PD_VIO {
+		power-domain@RK3188_PD_VIO {
 			reg = <RK3188_PD_VIO>;
 			clocks = <&cru ACLK_LCDC0>,
 				 <&cru ACLK_LCDC1>,
@@ -723,7 +722,7 @@
 				 <&qos_rga>;
 		};
 
-		pd_video@RK3188_PD_VIDEO {
+		power-domain@RK3188_PD_VIDEO {
 			reg = <RK3188_PD_VIDEO>;
 			clocks = <&cru ACLK_VDPU>,
 				 <&cru ACLK_VEPU>,
@@ -732,7 +731,7 @@
 			pm_qos = <&qos_vpu>;
 		};
 
-		pd_gpu@RK3188_PD_GPU {
+		power-domain@RK3188_PD_GPU {
 			reg = <RK3188_PD_GPU>;
 			clocks = <&cru ACLK_GPU>;
 			pm_qos = <&qos_gpu>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3228-evb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3228-evb.dts
@@ -46,7 +46,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy: phy@0 {
+		phy: ethernet-phy@0 {
 			compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
 			clocks = <&cru SCLK_MAC_PHY>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3229-xms6.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3229-xms6.dts
@@ -150,7 +150,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy: phy@0 {
+		phy: ethernet-phy@0 {
 			compatible = "ethernet-phy-id1234.d400",
 			             "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk322x.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk322x.dtsi
@@ -561,7 +561,7 @@
 				  "pp1",
 				  "ppmmu1";
 		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		resets = <&cru SRST_GPU_A>;
 		status = "disabled";
 	};
@@ -570,10 +570,9 @@
 		compatible = "rockchip,iommu";
 		reg = <0x20020800 0x100>;
 		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "vpu_mmu";
 		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
 		clock-names = "aclk", "iface";
-		iommu-cells = <0>;
+		#iommu-cells = <0>;
 		status = "disabled";
 	};
 
@@ -581,10 +580,9 @@
 		compatible = "rockchip,iommu";
 		reg = <0x20030480 0x40>, <0x200304c0 0x40>;
 		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "vdec_mmu";
 		clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
 		clock-names = "aclk", "iface";
-		iommu-cells = <0>;
+		#iommu-cells = <0>;
 		status = "disabled";
 	};
 
@@ -614,7 +612,6 @@
 		compatible = "rockchip,iommu";
 		reg = <0x20053f00 0x100>;
 		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "vop_mmu";
 		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
 		clock-names = "aclk", "iface";
 		#iommu-cells = <0>;
@@ -625,10 +622,9 @@
 		compatible = "rockchip,iommu";
 		reg = <0x20070800 0x100>;
 		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-		interrupt-names = "iep_mmu";
 		clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
 		clock-names = "aclk", "iface";
-		iommu-cells = <0>;
+		#iommu-cells = <0>;
 		status = "disabled";
 	};
 
@@ -639,8 +635,8 @@
 		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
 		assigned-clocks = <&cru SCLK_HDMI_PHY>;
 		assigned-clock-parents = <&hdmi_phy>;
-		clocks = <&cru SCLK_HDMI_HDCP>, <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_CEC>;
-		clock-names = "isfr", "iahb", "cec";
+		clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>;
+		clock-names = "iahb", "isfr", "cec";
 		pinctrl-names = "default";
 		pinctrl-0 = <&hdmii2c_xfer &hdmi_hpd &hdmi_cec>;
 		resets = <&cru SRST_HDMI_P>;
@@ -1033,7 +1029,7 @@
 			};
 		};
 
-		spi-0 {
+		spi0 {
 			spi0_clk: spi0-clk {
 				rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
 			};
@@ -1051,7 +1047,7 @@
 			};
 		};
 
-		spi-1 {
+		spi1 {
 			spi1_clk: spi1-clk {
 				rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288-evb-act8846.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288-evb-act8846.dts
@@ -53,7 +53,7 @@
 		vin-supply = <&vcc_sys>;
 	};
 
-	hym8563@51 {
+	rtc@51 {
 		compatible = "haoyu,hym8563";
 		reg = <0x51>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -233,7 +233,7 @@
 		vin-supply = <&vcc_sys>;
 	};
 
-	hym8563: hym8563@51 {
+	hym8563: rtc@51 {
 		compatible = "haoyu,hym8563";
 		reg = <0x51>;
 		#clock-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288-miqi.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288-miqi.dts
@@ -145,7 +145,7 @@
 		vin-supply = <&vcc_sys>;
 	};
 
-	hym8563: hym8563@51 {
+	hym8563: rtc@51 {
 		compatible = "haoyu,hym8563";
 		reg = <0x51>;
 		#clock-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -218,7 +218,7 @@
 	flash0-supply = <&vcc_flash>;
 	flash1-supply = <&vccio_pmu>;
 	gpio30-supply = <&vccio_pmu>;
-	gpio1830 = <&vcc_io>;
+	gpio1830-supply = <&vcc_io>;
 	lcdc-supply = <&vcc_io>;
 	sdcard-supply = <&vccio_sd>;
 	wifi-supply = <&vcc_18>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288-rock2-square.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288-rock2-square.dts
@@ -165,7 +165,7 @@
 };
 
 &i2c0 {
-	hym8563: hym8563@51 {
+	hym8563: rtc@51 {
 		compatible = "haoyu,hym8563";
 		reg = <0x51>;
 		#clock-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288-vyasa.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288-vyasa.dts
@@ -357,10 +357,10 @@
 	audio-supply = <&vcc_18>;
 	bb-supply = <&vcc_io>;
 	dvp-supply = <&vcc_io>;
-	flash0-suuply = <&vcc_18>;
+	flash0-supply = <&vcc_18>;
 	flash1-supply = <&vcc_lan>;
 	gpio30-supply = <&vcc_io>;
-	gpio1830 = <&vcc_io>;
+	gpio1830-supply = <&vcc_io>;
 	lcdc-supply = <&vcc_io>;
 	sdcard-supply = <&vccio_sd>;
 	wifi-supply = <&vcc_18>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3288.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3288.dtsi
@@ -238,8 +238,8 @@
 		compatible = "rockchip,rk3288-timer";
 		reg = <0x0 0xff810000 0x0 0x20>;
 		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&xin24m>, <&cru PCLK_TIMER>;
-		clock-names = "timer", "pclk";
+		clocks = <&cru PCLK_TIMER>, <&xin24m>;
+		clock-names = "pclk", "timer";
 	};
 
 	display-subsystem {
@@ -771,7 +771,7 @@
 			 *	*_HDMI		HDMI
 			 *	*_MIPI_*	MIPI
 			 */
-			pd_vio@RK3288_PD_VIO {
+			power-domain@RK3288_PD_VIO {
 				reg = <RK3288_PD_VIO>;
 				clocks = <&cru ACLK_IEP>,
 					 <&cru ACLK_ISP>,
@@ -813,7 +813,7 @@
 			 * Note: The following 3 are HEVC(H.265) clocks,
 			 * and on the ACLK_HEVC_NIU (NOC).
 			 */
-			pd_hevc@RK3288_PD_HEVC {
+			power-domain@RK3288_PD_HEVC {
 				reg = <RK3288_PD_HEVC>;
 				clocks = <&cru ACLK_HEVC>,
 					 <&cru SCLK_HEVC_CABAC>,
@@ -827,7 +827,7 @@
 			 * (video endecoder & decoder) clocks that on the
 			 * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
 			 */
-			pd_video@RK3288_PD_VIDEO {
+			power-domain@RK3288_PD_VIDEO {
 				reg = <RK3288_PD_VIDEO>;
 				clocks = <&cru ACLK_VCODEC>,
 					 <&cru HCLK_VCODEC>;
@@ -838,7 +838,7 @@
 			 * Note: ACLK_GPU is the GPU clock,
 			 * and on the ACLK_GPU_NIU (NOC).
 			 */
-			pd_gpu@RK3288_PD_GPU {
+			power-domain@RK3288_PD_GPU {
 				reg = <RK3288_PD_GPU>;
 				clocks = <&cru ACLK_GPU>;
 				pm_qos = <&qos_gpu_r>,
@@ -942,7 +942,7 @@
 		status = "disabled";
 	};
 
-	spdif: sound@ff88b0000 {
+	spdif: sound@ff8b0000 {
 		compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
 		reg = <0x0 0xff8b0000 0x0 0x10000>;
 		#sound-dai-cells = <0>;
@@ -975,7 +975,7 @@
 		status = "disabled";
 	};
 
-	crypto: cypto-controller@ff8a0000 {
+	crypto: crypto@ff8a0000 {
 		compatible = "rockchip,rk3288-crypto";
 		reg = <0x0 0xff8a0000 0x0 0x4000>;
 		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
@@ -1188,6 +1188,7 @@
 		clock-names = "dp", "pclk";
 		phys = <&edp_phy>;
 		phy-names = "dp";
+		power-domains = <&power RK3288_PD_VIO>;
 		resets = <&cru SRST_EDP>;
 		reset-names = "dp";
 		rockchip,grf = <&grf>;
@@ -1575,7 +1576,7 @@
 			drive-strength = <12>;
 		};
 
-		sleep {
+		suspend {
 			global_pwroff: global-pwroff {
 				rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>;
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/rk3xxx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/rk3xxx.dtsi
@@ -84,7 +84,7 @@
 		compatible = "arm,mali-400";
 		reg = <0x10090000 0x10000>;
 		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
-		clock-names = "core", "bus";
+		clock-names = "bus", "core";
 		assigned-clocks = <&cru ACLK_GPU>;
 		assigned-clock-rates = <100000000>;
 		resets = <&cru SRST_GPU>;
@@ -108,6 +108,13 @@
 		reg = <0x1013c200 0x20>;
 		interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
 		clocks = <&cru CORE_PERI>;
+		status = "disabled";
+		/* The clock source and the sched_clock provided by the arm_global_timer
+		 * on Rockchip rk3066a/rk3188 are quite unstable because their rates
+		 * depend on the CPU frequency.
+		 * Keep the arm_global_timer disabled in order to have the
+		 * DW_APB_TIMER (rk3066a) or ROCKCHIP_TIMER (rk3188) selected by default.
+		 */
 	};
 
 	local_timer: local-timer@1013c600 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/s3c6410-mini6410.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/s3c6410-mini6410.dts
@@ -28,29 +28,21 @@
 		bootargs = "console=ttySAC0,115200n8 earlyprintk rootwait root=/dev/mmcblk0p1";
 	};
 
-	clocks {
-		compatible = "simple-bus";
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		fin_pll: oscillator@0 {
-			compatible = "fixed-clock";
-			reg = <0>;
-			clock-frequency = <12000000>;
-			clock-output-names = "fin_pll";
-			#clock-cells = <0>;
-		};
+	fin_pll: oscillator-0 {
+		compatible = "fixed-clock";
+		clock-frequency = <12000000>;
+		clock-output-names = "fin_pll";
+		#clock-cells = <0>;
+	};
 
-		xusbxti: oscillator@1 {
-			compatible = "fixed-clock";
-			reg = <1>;
-			clock-output-names = "xusbxti";
-			clock-frequency = <48000000>;
-			#clock-cells = <0>;
-		};
+	xusbxti: oscillator-1 {
+		compatible = "fixed-clock";
+		clock-output-names = "xusbxti";
+		clock-frequency = <48000000>;
+		#clock-cells = <0>;
 	};
 
-	srom-cs1@18000000 {
+	srom-cs1-bus@18000000 {
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -59,7 +51,7 @@
 
 		ethernet@18000000 {
 			compatible = "davicom,dm9000";
-			reg = <0x18000000 0x2 0x18000004 0x2>;
+			reg = <0x18000000 0x2>, <0x18000004 0x2>;
 			interrupt-parent = <&gpn>;
 			interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
 			davicom,no-eeprom;
@@ -165,6 +157,10 @@
 	};
 };
 
+&clocks {
+	clocks = <&fin_pll>;
+};
+
 &sdhci0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
@@ -197,12 +193,12 @@
 };
 
 &pinctrl0 {
-	gpio_leds: gpio-leds {
+	gpio_leds: gpio-leds-pins {
 		samsung,pins = "gpk-4", "gpk-5", "gpk-6", "gpk-7";
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	gpio_keys: gpio-keys {
+	gpio_keys: gpio-keys-pins {
 		samsung,pins = "gpn-0", "gpn-1", "gpn-2", "gpn-3",
 				"gpn-4", "gpn-5", "gpl-11", "gpl-12";
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/s3c6410-smdk6410.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/s3c6410-smdk6410.dts
@@ -69,6 +69,10 @@
 	};
 };
 
+&clocks {
+	clocks = <&fin_pll>;
+};
+
 &sdhci0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/s3c64xx-pinctrl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/s3c64xx-pinctrl.dtsi
@@ -16,111 +16,111 @@
 	 * Pin banks
 	 */
 
-	gpa: gpa {
+	gpa: gpa-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpb: gpb {
+	gpb: gpb-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpc: gpc {
+	gpc: gpc-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpd: gpd {
+	gpd: gpd-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpe: gpe {
+	gpe: gpe-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
 
-	gpf: gpf {
+	gpf: gpf-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpg: gpg {
+	gpg: gpg-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gph: gph {
+	gph: gph-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpi: gpi {
+	gpi: gpi-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
 
-	gpj: gpj {
+	gpj: gpj-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
 
-	gpk: gpk {
+	gpk: gpk-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
 
-	gpl: gpl {
+	gpl: gpl-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpm: gpm {
+	gpm: gpm-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpn: gpn {
+	gpn: gpn-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpo: gpo {
+	gpo: gpo-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpp: gpp {
+	gpp: gpp-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
-	gpq: gpq {
+	gpq: gpq-gpio-bank {
 		gpio-controller;
 		#gpio-cells = <2>;
 		interrupt-controller;
@@ -131,225 +131,225 @@
 	 * Pin groups
 	 */
 
-	uart0_data: uart0-data {
+	uart0_data: uart0-data-pins {
 		samsung,pins = "gpa-0", "gpa-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	uart0_fctl: uart0-fctl {
+	uart0_fctl: uart0-fctl-pins {
 		samsung,pins = "gpa-2", "gpa-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	uart1_data: uart1-data {
+	uart1_data: uart1-data-pins {
 		samsung,pins = "gpa-4", "gpa-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	uart1_fctl: uart1-fctl {
+	uart1_fctl: uart1-fctl-pins {
 		samsung,pins = "gpa-6", "gpa-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	uart2_data: uart2-data {
+	uart2_data: uart2-data-pins {
 		samsung,pins = "gpb-0", "gpb-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	uart3_data: uart3-data {
+	uart3_data: uart3-data-pins {
 		samsung,pins = "gpb-2", "gpb-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	ext_dma_0: ext-dma-0 {
+	ext_dma_0: ext-dma-0-pins {
 		samsung,pins = "gpb-0", "gpb-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	ext_dma_1: ext-dma-1 {
+	ext_dma_1: ext-dma-1-pins {
 		samsung,pins = "gpb-2", "gpb-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	irda_data_0: irda-data-0 {
+	irda_data_0: irda-data-0-pins {
 		samsung,pins = "gpb-0", "gpb-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	irda_data_1: irda-data-1 {
+	irda_data_1: irda-data-1-pins {
 		samsung,pins = "gpb-2", "gpb-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	irda_sdbw: irda-sdbw {
+	irda_sdbw: irda-sdbw-pins {
 		samsung,pins = "gpb-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2c0_bus: i2c0-bus {
+	i2c0_bus: i2c0-bus-pins {
 		samsung,pins = "gpb-5", "gpb-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
 	};
 
-	i2c1_bus: i2c1-bus {
+	i2c1_bus: i2c1-bus-pins {
 		/* S3C6410-only */
 		samsung,pins = "gpb-2", "gpb-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_6>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
 	};
 
-	spi0_bus: spi0-bus {
+	spi0_bus: spi0-bus-pins {
 		samsung,pins = "gpc-0", "gpc-1", "gpc-2";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
 	};
 
-	spi0_cs: spi0-cs {
+	spi0_cs: spi0-cs-pins {
 		samsung,pins = "gpc-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	spi1_bus: spi1-bus {
+	spi1_bus: spi1-bus-pins {
 		samsung,pins = "gpc-4", "gpc-5", "gpc-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
 	};
 
-	spi1_cs: spi1-cs {
+	spi1_cs: spi1-cs-pins {
 		samsung,pins = "gpc-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd0_cmd: sd0-cmd {
+	sd0_cmd: sd0-cmd-pins {
 		samsung,pins = "gpg-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd0_clk: sd0-clk {
+	sd0_clk: sd0-clk-pins {
 		samsung,pins = "gpg-0";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd0_bus1: sd0-bus1 {
+	sd0_bus1: sd0-bus1-pins {
 		samsung,pins = "gpg-2";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd0_bus4: sd0-bus4 {
+	sd0_bus4: sd0-bus4-pins {
 		samsung,pins = "gpg-2", "gpg-3", "gpg-4", "gpg-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd0_cd: sd0-cd {
+	sd0_cd: sd0-cd-pins {
 		samsung,pins = "gpg-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
 	};
 
-	sd1_cmd: sd1-cmd {
+	sd1_cmd: sd1-cmd-pins {
 		samsung,pins = "gph-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd1_clk: sd1-clk {
+	sd1_clk: sd1-clk-pins {
 		samsung,pins = "gph-0";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd1_bus1: sd1-bus1 {
+	sd1_bus1: sd1-bus1-pins {
 		samsung,pins = "gph-2";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd1_bus4: sd1-bus4 {
+	sd1_bus4: sd1-bus4-pins {
 		samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd1_bus8: sd1-bus8 {
+	sd1_bus8: sd1-bus8-pins {
 		samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5",
 				"gph-6", "gph-7", "gph-8", "gph-9";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd1_cd: sd1-cd {
+	sd1_cd: sd1-cd-pins {
 		samsung,pins = "gpg-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
 	};
 
-	sd2_cmd: sd2-cmd {
+	sd2_cmd: sd2-cmd-pins {
 		samsung,pins = "gpc-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd2_clk: sd2-clk {
+	sd2_clk: sd2-clk-pins {
 		samsung,pins = "gpc-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd2_bus1: sd2-bus1 {
+	sd2_bus1: sd2-bus1-pins {
 		samsung,pins = "gph-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	sd2_bus4: sd2-bus4 {
+	sd2_bus4: sd2-bus4-pins {
 		samsung,pins = "gph-6", "gph-7", "gph-8", "gph-9";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2s0_bus: i2s0-bus {
+	i2s0_bus: i2s0-bus-pins {
 		samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2s0_cdclk: i2s0-cdclk {
+	i2s0_cdclk: i2s0-cdclk-pins {
 		samsung,pins = "gpd-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2s1_bus: i2s1-bus {
+	i2s1_bus: i2s1-bus-pins {
 		samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2s1_cdclk: i2s1-cdclk {
+	i2s1_cdclk: i2s1-cdclk-pins {
 		samsung,pins = "gpe-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2s2_bus: i2s2-bus {
+	i2s2_bus: i2s2-bus-pins {
 		/* S3C6410-only */
 		samsung,pins = "gpc-4", "gpc-5", "gpc-6", "gph-6",
 				"gph-8", "gph-9";
@@ -357,50 +357,50 @@
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	i2s2_cdclk: i2s2-cdclk {
+	i2s2_cdclk: i2s2-cdclk-pins {
 		/* S3C6410-only */
 		samsung,pins = "gph-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pcm0_bus: pcm0-bus {
+	pcm0_bus: pcm0-bus-pins {
 		samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pcm0_extclk: pcm0-extclk {
+	pcm0_extclk: pcm0-extclk-pins {
 		samsung,pins = "gpd-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pcm1_bus: pcm1-bus {
+	pcm1_bus: pcm1-bus-pins {
 		samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pcm1_extclk: pcm1-extclk {
+	pcm1_extclk: pcm1-extclk-pins {
 		samsung,pins = "gpe-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	ac97_bus_0: ac97-bus-0 {
+	ac97_bus_0: ac97-bus-0-pins {
 		samsung,pins = "gpd-0", "gpd-1", "gpd-2", "gpd-3", "gpd-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	ac97_bus_1: ac97-bus-1 {
+	ac97_bus_1: ac97-bus-1-pins {
 		samsung,pins = "gpe-0", "gpe-1", "gpe-2", "gpe-3", "gpe-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	cam_port: cam-port {
+	cam_port: cam-port-pins {
 		samsung,pins = "gpf-0", "gpf-1", "gpf-2", "gpf-4",
 				"gpf-5", "gpf-6", "gpf-7", "gpf-8",
 				"gpf-9", "gpf-10", "gpf-11", "gpf-12";
@@ -408,242 +408,242 @@
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	cam_rst: cam-rst {
+	cam_rst: cam-rst-pins {
 		samsung,pins = "gpf-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	cam_field: cam-field {
+	cam_field: cam-field-pins {
 		/* S3C6410-only */
 		samsung,pins = "gpb-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pwm_extclk: pwm-extclk {
+	pwm_extclk: pwm-extclk-pins {
 		samsung,pins = "gpf-13";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pwm0_out: pwm0-out {
+	pwm0_out: pwm0-out-pins {
 		samsung,pins = "gpf-14";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	pwm1_out: pwm1-out {
+	pwm1_out: pwm1-out-pins {
 		samsung,pins = "gpf-15";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	clkout0: clkout-0 {
+	clkout0: clkout-0-pins {
 		samsung,pins = "gpf-14";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col0_0: keypad-col0-0 {
+	keypad_col0_0: keypad-col0-0-pins {
 		samsung,pins = "gph-0";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col1_0: keypad-col1-0 {
+	keypad_col1_0: keypad-col1-0-pins {
 		samsung,pins = "gph-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col2_0: keypad-col2-0 {
+	keypad_col2_0: keypad-col2-0-pins {
 		samsung,pins = "gph-2";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col3_0: keypad-col3-0 {
+	keypad_col3_0: keypad-col3-0-pins {
 		samsung,pins = "gph-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col4_0: keypad-col4-0 {
+	keypad_col4_0: keypad-col4-0-pins {
 		samsung,pins = "gph-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col5_0: keypad-col5-0 {
+	keypad_col5_0: keypad-col5-0-pins {
 		samsung,pins = "gph-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col6_0: keypad-col6-0 {
+	keypad_col6_0: keypad-col6-0-pins {
 		samsung,pins = "gph-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col7_0: keypad-col7-0 {
+	keypad_col7_0: keypad-col7-0-pins {
 		samsung,pins = "gph-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col0_1: keypad-col0-1 {
+	keypad_col0_1: keypad-col0-1-pins {
 		samsung,pins = "gpl-0";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col1_1: keypad-col1-1 {
+	keypad_col1_1: keypad-col1-1-pins {
 		samsung,pins = "gpl-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col2_1: keypad-col2-1 {
+	keypad_col2_1: keypad-col2-1-pins {
 		samsung,pins = "gpl-2";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col3_1: keypad-col3-1 {
+	keypad_col3_1: keypad-col3-1-pins {
 		samsung,pins = "gpl-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col4_1: keypad-col4-1 {
+	keypad_col4_1: keypad-col4-1-pins {
 		samsung,pins = "gpl-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col5_1: keypad-col5-1 {
+	keypad_col5_1: keypad-col5-1-pins {
 		samsung,pins = "gpl-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col6_1: keypad-col6-1 {
+	keypad_col6_1: keypad-col6-1-pins {
 		samsung,pins = "gpl-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_col7_1: keypad-col7-1 {
+	keypad_col7_1: keypad-col7-1-pins {
 		samsung,pins = "gpl-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row0_0: keypad-row0-0 {
+	keypad_row0_0: keypad-row0-0-pins {
 		samsung,pins = "gpk-8";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row1_0: keypad-row1-0 {
+	keypad_row1_0: keypad-row1-0-pins {
 		samsung,pins = "gpk-9";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row2_0: keypad-row2-0 {
+	keypad_row2_0: keypad-row2-0-pins {
 		samsung,pins = "gpk-10";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row3_0: keypad-row3-0 {
+	keypad_row3_0: keypad-row3-0-pins {
 		samsung,pins = "gpk-11";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row4_0: keypad-row4-0 {
+	keypad_row4_0: keypad-row4-0-pins {
 		samsung,pins = "gpk-12";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row5_0: keypad-row5-0 {
+	keypad_row5_0: keypad-row5-0-pins {
 		samsung,pins = "gpk-13";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row6_0: keypad-row6-0 {
+	keypad_row6_0: keypad-row6-0-pins {
 		samsung,pins = "gpk-14";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row7_0: keypad-row7-0 {
+	keypad_row7_0: keypad-row7-0-pins {
 		samsung,pins = "gpk-15";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row0_1: keypad-row0-1 {
+	keypad_row0_1: keypad-row0-1-pins {
 		samsung,pins = "gpn-0";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row1_1: keypad-row1-1 {
+	keypad_row1_1: keypad-row1-1-pins {
 		samsung,pins = "gpn-1";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row2_1: keypad-row2-1 {
+	keypad_row2_1: keypad-row2-1-pins {
 		samsung,pins = "gpn-2";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row3_1: keypad-row3-1 {
+	keypad_row3_1: keypad-row3-1-pins {
 		samsung,pins = "gpn-3";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row4_1: keypad-row4-1 {
+	keypad_row4_1: keypad-row4-1-pins {
 		samsung,pins = "gpn-4";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row5_1: keypad-row5-1 {
+	keypad_row5_1: keypad-row5-1-pins {
 		samsung,pins = "gpn-5";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row6_1: keypad-row6-1 {
+	keypad_row6_1: keypad-row6-1-pins {
 		samsung,pins = "gpn-6";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	keypad_row7_1: keypad-row7-1 {
+	keypad_row7_1: keypad-row7-1-pins {
 		samsung,pins = "gpn-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	lcd_ctrl: lcd-ctrl {
+	lcd_ctrl: lcd-ctrl-pins {
 		samsung,pins = "gpj-8", "gpj-9", "gpj-10", "gpj-11";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	lcd_data16: lcd-data-width16 {
+	lcd_data16: lcd-data-width16-pins {
 		samsung,pins = "gpi-3", "gpi-4", "gpi-5", "gpi-6",
 				"gpi-7", "gpi-10", "gpi-11", "gpi-12",
 				"gpi-13", "gpi-14", "gpi-15", "gpj-3",
@@ -652,7 +652,7 @@
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	lcd_data18: lcd-data-width18 {
+	lcd_data18: lcd-data-width18-pins {
 		samsung,pins = "gpi-2", "gpi-3", "gpi-4", "gpi-5",
 				"gpi-6", "gpi-7", "gpi-10", "gpi-11",
 				"gpi-12", "gpi-13", "gpi-14", "gpi-15",
@@ -662,7 +662,7 @@
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	lcd_data24: lcd-data-width24 {
+	lcd_data24: lcd-data-width24-pins {
 		samsung,pins = "gpi-0", "gpi-1", "gpi-2", "gpi-3",
 				"gpi-4", "gpi-5", "gpi-6", "gpi-7",
 				"gpi-8", "gpi-9", "gpi-10", "gpi-11",
@@ -673,7 +673,7 @@
 		samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
 	};
 
-	hsi_bus: hsi-bus {
+	hsi_bus: hsi-bus-pins {
 		samsung,pins = "gpk-0", "gpk-1", "gpk-2", "gpk-3",
 				"gpk-4", "gpk-5", "gpk-6", "gpk-7";
 		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/s5pv210-aries.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/s5pv210-aries.dtsi
@@ -454,6 +454,7 @@
 	pinctrl-names = "default";
 	cap-sd-highspeed;
 	cap-mmc-highspeed;
+	keep-power-in-suspend;
 
 	mmc-pwrseq = <&wifi_pwrseq>;
 	non-removable;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/s5pv210-smdkv210.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/s5pv210-smdkv210.dts
@@ -15,6 +15,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/input/input.h>
 #include "s5pv210.dtsi"
 
@@ -31,11 +32,18 @@
 		reg = <0x20000000 0x40000000>;
 	};
 
-	ethernet@18000000 {
+	pmic_ap_clk: clock-0 {
+		/* Workaround for missing PMIC and its clock */
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+	};
+
+	ethernet@a8000000 {
 		compatible = "davicom,dm9000";
-		reg = <0xA8000000 0x2 0xA8000002 0x2>;
+		reg = <0xa8000000 0x2>, <0xa8000002 0x2>;
 		interrupt-parent = <&gph1>;
-		interrupts = <1 4>;
+		interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
 		local-mac-address = [00 00 de ad be ef];
 		davicom,no-eeprom;
 	};
@@ -47,6 +55,14 @@
 		default-brightness-level = <6>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pwm3_out>;
+		power-supply = <&dc5v_reg>;
+	};
+
+	dc5v_reg: regulator-0 {
+		compatible = "regulator-fixed";
+		regulator-name = "DC5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
 	};
 };
 
@@ -147,6 +163,8 @@
 
 &rtc {
 	status = "okay";
+	clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
+	clock-names = "rtc", "rtc_src";
 };
 
 &sdhci0 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/s5pv210.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/s5pv210.dtsi
@@ -52,34 +52,26 @@
 		};
 	};
 
+	xxti: oscillator-0 {
+		compatible = "fixed-clock";
+		clock-frequency = <0>;
+		clock-output-names = "xxti";
+		#clock-cells = <0>;
+	};
+
+	xusbxti: oscillator-1 {
+		compatible = "fixed-clock";
+		clock-frequency = <0>;
+		clock-output-names = "xusbxti";
+		#clock-cells = <0>;
+	};
+
 	soc {
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges;
 
-		external-clocks {
-			compatible = "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			xxti: oscillator@0 {
-				compatible = "fixed-clock";
-				reg = <0>;
-				clock-frequency = <0>;
-				clock-output-names = "xxti";
-				#clock-cells = <0>;
-			};
-
-			xusbxti: oscillator@1 {
-				compatible = "fixed-clock";
-				reg = <1>;
-				clock-frequency = <0>;
-				clock-output-names = "xusbxti";
-				#clock-cells = <0>;
-			};
-		};
-
 		onenand: onenand@b0600000 {
 			compatible = "samsung,s5pv210-onenand";
 			reg = <0xb0600000 0x2000>,
@@ -100,19 +92,16 @@
 		};
 
 		clocks: clock-controller@e0100000 {
-			compatible = "samsung,s5pv210-clock", "simple-bus";
+			compatible = "samsung,s5pv210-clock";
 			reg = <0xe0100000 0x10000>;
 			clock-names = "xxti", "xusbxti";
 			clocks = <&xxti>, <&xusbxti>;
 			#clock-cells = <1>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
+		};
 
-			pmu_syscon: syscon@e0108000 {
-				compatible = "samsung-s5pv210-pmu", "syscon";
-				reg = <0xe0108000 0x8000>;
-			};
+		pmu_syscon: syscon@e0108000 {
+			compatible = "samsung-s5pv210-pmu", "syscon";
+			reg = <0xe0108000 0x8000>;
 		};
 
 		pinctrl0: pinctrl@e0200000 {
@@ -128,35 +117,28 @@
 			};
 		};
 
-		amba {
-			#address-cells = <1>;
-			#size-cells = <1>;
-			compatible = "simple-bus";
-			ranges;
-
-			pdma0: dma@e0900000 {
-				compatible = "arm,pl330", "arm,primecell";
-				reg = <0xe0900000 0x1000>;
-				interrupt-parent = <&vic0>;
-				interrupts = <19>;
-				clocks = <&clocks CLK_PDMA0>;
-				clock-names = "apb_pclk";
-				#dma-cells = <1>;
-				#dma-channels = <8>;
-				#dma-requests = <32>;
-			};
+		pdma0: dma@e0900000 {
+			compatible = "arm,pl330", "arm,primecell";
+			reg = <0xe0900000 0x1000>;
+			interrupt-parent = <&vic0>;
+			interrupts = <19>;
+			clocks = <&clocks CLK_PDMA0>;
+			clock-names = "apb_pclk";
+			#dma-cells = <1>;
+			#dma-channels = <8>;
+			#dma-requests = <32>;
+		};
 
-			pdma1: dma@e0a00000 {
-				compatible = "arm,pl330", "arm,primecell";
-				reg = <0xe0a00000 0x1000>;
-				interrupt-parent = <&vic0>;
-				interrupts = <20>;
-				clocks = <&clocks CLK_PDMA1>;
-				clock-names = "apb_pclk";
-				#dma-cells = <1>;
-				#dma-channels = <8>;
-				#dma-requests = <32>;
-			};
+		pdma1: dma@e0a00000 {
+			compatible = "arm,pl330", "arm,primecell";
+			reg = <0xe0a00000 0x1000>;
+			interrupt-parent = <&vic0>;
+			interrupts = <20>;
+			clocks = <&clocks CLK_PDMA1>;
+			clock-names = "apb_pclk";
+			#dma-cells = <1>;
+			#dma-channels = <8>;
+			#dma-requests = <32>;
 		};
 
 		spi0: spi@e1300000 {
@@ -229,43 +211,36 @@
 			status = "disabled";
 		};
 
-		audio-subsystem {
-			compatible = "samsung,s5pv210-audss", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges;
-
-			clk_audss: clock-controller@eee10000 {
-				compatible = "samsung,s5pv210-audss-clock";
-				reg = <0xeee10000 0x1000>;
-				clock-names = "hclk", "xxti",
-						"fout_epll",
-						"sclk_audio0";
-				clocks = <&clocks DOUT_HCLKP>, <&xxti>,
-						<&clocks FOUT_EPLL>,
-						<&clocks SCLK_AUDIO0>;
-				#clock-cells = <1>;
-			};
+		clk_audss: clock-controller@eee10000 {
+			compatible = "samsung,s5pv210-audss-clock";
+			reg = <0xeee10000 0x1000>;
+			clock-names = "hclk", "xxti",
+				      "fout_epll",
+				      "sclk_audio0";
+			clocks = <&clocks DOUT_HCLKP>, <&xxti>,
+				 <&clocks FOUT_EPLL>,
+				 <&clocks SCLK_AUDIO0>;
+			#clock-cells = <1>;
+		};
 
-			i2s0: i2s@eee30000 {
-				compatible = "samsung,s5pv210-i2s";
-				reg = <0xeee30000 0x1000>;
-				interrupt-parent = <&vic2>;
-				interrupts = <16>;
-				dma-names = "rx", "tx", "tx-sec";
-				dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
-				clock-names = "iis",
-						"i2s_opclk0",
-						"i2s_opclk1";
-				clocks = <&clk_audss CLK_I2S>,
-						<&clk_audss CLK_I2S>,
-						<&clk_audss CLK_DOUT_AUD_BUS>;
-				samsung,idma-addr = <0xc0010000>;
-				pinctrl-names = "default";
-				pinctrl-0 = <&i2s0_bus>;
-				#sound-dai-cells = <0>;
-				status = "disabled";
-			};
+		i2s0: i2s@eee30000 {
+			compatible = "samsung,s5pv210-i2s";
+			reg = <0xeee30000 0x1000>;
+			interrupt-parent = <&vic2>;
+			interrupts = <16>;
+			dma-names = "rx", "tx", "tx-sec";
+			dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
+			clock-names = "iis",
+				      "i2s_opclk0",
+				      "i2s_opclk1";
+			clocks = <&clk_audss CLK_I2S>,
+				 <&clk_audss CLK_I2S>,
+				 <&clk_audss CLK_DOUT_AUD_BUS>;
+			samsung,idma-addr = <0xc0010000>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&i2s0_bus>;
+			#sound-dai-cells = <0>;
+			status = "disabled";
 		};
 
 		i2s1: i2s@e2100000 {
@@ -596,7 +571,7 @@
 				interrupts = <29>;
 				clocks = <&clocks CLK_CSIS>,
 						<&clocks SCLK_CSIS>;
-				clock-names = "clk_csis",
+				clock-names = "csis",
 						"sclk_csis";
 				bus-width = <4>;
 				status = "disabled";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sama5d2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sama5d2.dtsi
@@ -526,7 +526,7 @@
 				pmecc: ecc-engine@f8014070 {
 					compatible = "atmel,sama5d2-pmecc";
 					reg = <0xf8014070 0x490>,
-					      <0xf8014500 0x100>;
+					      <0xf8014500 0x200>;
 				};
 			};
 
@@ -648,6 +648,7 @@
 				clocks = <&pmc PMC_TYPE_PERIPHERAL 51>;
 				#address-cells = <1>;
 				#size-cells = <1>;
+				no-memory-wc;
 				ranges = <0 0xf8044000 0x1420>;
 			};
 
@@ -716,7 +717,7 @@
 
 			can0: can@f8054000 {
 				compatible = "bosch,m_can";
-				reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
+				reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <64 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -932,13 +933,13 @@
 				clocks = <&pmc PMC_TYPE_PERIPHERAL 55>, <&pmc PMC_TYPE_GCK 55>;
 				clock-names = "pclk", "gclk";
 				assigned-clocks = <&pmc PMC_TYPE_CORE PMC_I2S1_MUX>;
-				assigned-parrents = <&pmc PMC_TYPE_GCK 55>;
+				assigned-clock-parents = <&pmc PMC_TYPE_GCK 55>;
 				status = "disabled";
 			};
 
 			can1: can@fc050000 {
 				compatible = "bosch,m_can";
-				reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
+				reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
 				reg-names = "m_can", "message_ram";
 				interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
 					     <65 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -948,7 +949,7 @@
 				assigned-clocks = <&pmc PMC_TYPE_GCK 57>;
 				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
 				assigned-clock-rates = <40000000>;
-				bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
+				bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
 				status = "disabled";
 			};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sama5d3.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sama5d3.dtsi
@@ -1188,49 +1188,49 @@
 					usart0_clk: usart0_clk {
 						#clock-cells = <0>;
 						reg = <12>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					usart1_clk: usart1_clk {
 						#clock-cells = <0>;
 						reg = <13>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					usart2_clk: usart2_clk {
 						#clock-cells = <0>;
 						reg = <14>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					usart3_clk: usart3_clk {
 						#clock-cells = <0>;
 						reg = <15>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					uart0_clk: uart0_clk {
 						#clock-cells = <0>;
 						reg = <16>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					twi0_clk: twi0_clk {
 						reg = <18>;
 						#clock-cells = <0>;
-						atmel,clk-output-range = <0 16625000>;
+						atmel,clk-output-range = <0 41500000>;
 					};
 
 					twi1_clk: twi1_clk {
 						#clock-cells = <0>;
 						reg = <19>;
-						atmel,clk-output-range = <0 16625000>;
+						atmel,clk-output-range = <0 41500000>;
 					};
 
 					twi2_clk: twi2_clk {
 						#clock-cells = <0>;
 						reg = <20>;
-						atmel,clk-output-range = <0 16625000>;
+						atmel,clk-output-range = <0 41500000>;
 					};
 
 					mci0_clk: mci0_clk {
@@ -1246,19 +1246,19 @@
 					spi0_clk: spi0_clk {
 						#clock-cells = <0>;
 						reg = <24>;
-						atmel,clk-output-range = <0 133000000>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 
 					spi1_clk: spi1_clk {
 						#clock-cells = <0>;
 						reg = <25>;
-						atmel,clk-output-range = <0 133000000>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 
 					tcb0_clk: tcb0_clk {
 						#clock-cells = <0>;
 						reg = <26>;
-						atmel,clk-output-range = <0 133000000>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 
 					pwm_clk: pwm_clk {
@@ -1269,7 +1269,7 @@
 					adc_clk: adc_clk {
 						#clock-cells = <0>;
 						reg = <29>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					dma0_clk: dma0_clk {
@@ -1300,13 +1300,13 @@
 					ssc0_clk: ssc0_clk {
 						#clock-cells = <0>;
 						reg = <38>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					ssc1_clk: ssc1_clk {
 						#clock-cells = <0>;
 						reg = <39>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					sha_clk: sha_clk {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sama5d3_can.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sama5d3_can.dtsi
@@ -36,13 +36,13 @@
 					can0_clk: can0_clk {
 						#clock-cells = <0>;
 						reg = <40>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					can1_clk: can1_clk {
 						#clock-cells = <0>;
 						reg = <41>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 				};
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sama5d3_tcb1.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sama5d3_tcb1.dtsi
@@ -22,6 +22,7 @@
 					tcb1_clk: tcb1_clk {
 						#clock-cells = <0>;
 						reg = <27>;
+						atmel,clk-output-range = <0 166000000>;
 					};
 				};
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sama5d3_uart.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sama5d3_uart.dtsi
@@ -41,13 +41,13 @@
 					uart0_clk: uart0_clk {
 						#clock-cells = <0>;
 						reg = <16>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 
 					uart1_clk: uart1_clk {
 						#clock-cells = <0>;
 						reg = <17>;
-						atmel,clk-output-range = <0 66000000>;
+						atmel,clk-output-range = <0 83000000>;
 					};
 				};
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sama5d4.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sama5d4.dtsi
@@ -914,7 +914,7 @@
 					0xffffffff 0x3ffcfe7c 0x1c010101	/* pioA */
 					0x7fffffff 0xfffccc3a 0x3f00cc3a	/* pioB */
 					0xffffffff 0x3ff83fff 0xff00ffff	/* pioC */
-					0x0003ff00 0x8002a800 0x00000000	/* pioD */
+					0xb003ff00 0x8002a800 0x00000000	/* pioD */
 					0xffffffff 0x7fffffff 0x76fff1bf	/* pioE */
 					>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga.dtsi
@@ -710,7 +710,7 @@
 			};
 		};
 
-		L2: l2-cache@fffef000 {
+		L2: cache-controller@fffef000 {
 			compatible = "arm,pl310-cache";
 			reg = <0xfffef000 0x1000>;
 			interrupts = <0 38 0x04>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -636,7 +636,7 @@
 			reg = <0xffcfb100 0x80>;
 		};
 
-		L2: l2-cache@fffff000 {
+		L2: cache-controller@fffff000 {
 			compatible = "arm,pl310-cache";
 			reg = <0xfffff000 0x1000>;
 			interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
@@ -819,7 +819,7 @@
 		timer3: timer3@ffd00100 {
 			compatible = "snps,dw-apb-timer";
 			interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
-			reg = <0xffd01000 0x100>;
+			reg = <0xffd00100 0x100>;
 			clocks = <&l4_sys_free_clk>;
 			clock-names = "timer";
 			resets = <&rst L4SYSTIMER1_RESET>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts
@@ -12,7 +12,7 @@
 	flash0: n25q00@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q00aa";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -119,7 +119,7 @@
 	flash: flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q256a";
+		compatible = "micron,n25q256a", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -124,7 +124,7 @@
 	flash0: n25q00@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q00";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <0>;	/* chip select */
 		spi-max-frequency = <100000000>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -169,7 +169,7 @@
 	flash: flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q00";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
@@ -80,7 +80,7 @@
 	flash: flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q256a";
+		compatible = "micron,n25q256a", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 		m25p,fast-read;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
@@ -116,7 +116,7 @@
 	flash0: n25q512a@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q512a";
+		compatible = "micron,n25q512a", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <100000000>;
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
@@ -224,7 +224,7 @@
 	n25q128@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q128";
+		compatible = "micron,n25q128", "jedec,spi-nor";
 		reg = <0>;		/* chip select */
 		spi-max-frequency = <100000000>;
 		m25p,fast-read;
@@ -241,7 +241,7 @@
 	n25q00@1 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "n25q00";
+		compatible = "micron,mt25qu02g", "jedec,spi-nor";
 		reg = <1>;		/* chip select */
 		spi-max-frequency = <100000000>;
 		m25p,fast-read;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/spear1340.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/spear1340.dtsi
@@ -136,9 +136,9 @@
 				reg = <0xb4100000 0x1000>;
 				interrupts = <0 105 0x4>;
 				status = "disabled";
-				dmas = <&dwdma0 12 0 1>,
-					<&dwdma0 13 1 0>;
-				dma-names = "tx", "rx";
+				dmas = <&dwdma0 13 0 1>,
+					<&dwdma0 12 1 0>;
+				dma-names = "rx", "tx";
 			};
 
 			thermal@e07008c4 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/spear13xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/spear13xx.dtsi
@@ -284,9 +284,9 @@
 				#size-cells = <0>;
 				interrupts = <0 31 0x4>;
 				status = "disabled";
-				dmas = <&dwdma0 4 0 0>,
-					<&dwdma0 5 0 0>;
-				dma-names = "tx", "rx";
+				dmas = <&dwdma0 5 0 0>,
+					<&dwdma0 4 0 0>;
+				dma-names = "rx", "tx";
 			};
 
 			rtc@e0580000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/spear320-hmi.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/spear320-hmi.dts
@@ -242,7 +242,7 @@
 					irq-trigger = <0x1>;
 
 					stmpegpio: stmpe-gpio {
-						compatible = "stmpe,gpio";
+						compatible = "st,stmpe-gpio";
 						reg = <0>;
 						gpio-controller;
 						#gpio-cells = <2>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/spear3xx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/spear3xx.dtsi
@@ -47,7 +47,7 @@
 		};
 
 		gmac: eth@e0800000 {
-			compatible = "st,spear600-gmac";
+			compatible = "snps,dwmac-3.40a";
 			reg = <0xe0800000 0x8000>;
 			interrupts = <23 22>;
 			interrupt-names = "macirq", "eth_wake_irq";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/spear600.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/spear600.dtsi
@@ -47,7 +47,7 @@
 			compatible = "arm,pl110", "arm,primecell";
 			reg = <0xfc200000 0x1000>;
 			interrupt-parent = <&vic1>;
-			interrupts = <12>;
+			interrupts = <13>;
 			status = "disabled";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
@@ -755,14 +755,14 @@
 			status = "disabled";
 		};
 
-		vica: intc@10140000 {
+		vica: interrupt-controller@10140000 {
 			compatible = "arm,versatile-vic";
 			interrupt-controller;
 			#interrupt-cells = <1>;
 			reg = <0x10140000 0x20>;
 		};
 
-		vicb: intc@10140020 {
+		vicb: interrupt-controller@10140020 {
 			compatible = "arm,versatile-vic";
 			interrupt-controller;
 			#interrupt-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stihxxx-b2120.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/stihxxx-b2120.dtsi
@@ -46,7 +46,7 @@
 			/* DAC */
 			format = "i2s";
 			mclk-fs = <256>;
-			frame-inversion = <1>;
+			frame-inversion;
 			cpu {
 				sound-dai = <&sti_uni_player2>;
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32429i-eval.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32429i-eval.dts
@@ -112,17 +112,15 @@
 		};
 	};
 
-	gpio_keys {
+	gpio-keys {
 		compatible = "gpio-keys";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		autorepeat;
-		button@0 {
+		button-0 {
 			label = "Wake up";
 			linux,code = <KEY_WAKEUP>;
 			gpios = <&gpioa 0 0>;
 		};
-		button@1 {
+		button-1 {
 			label = "Tamper";
 			linux,code = <KEY_RESTART>;
 			gpios = <&gpioc 13 0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32746g-eval.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32746g-eval.dts
@@ -81,12 +81,10 @@
 		};
 	};
 
-	gpio_keys {
+	gpio-keys {
 		compatible = "gpio-keys";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		autorepeat;
-		button@0 {
+		button-0 {
 			label = "Wake up";
 			linux,code = <KEY_WAKEUP>;
 			gpios = <&gpioc 13 0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32f429-disco.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32f429-disco.dts
@@ -79,12 +79,10 @@
 		};
 	};
 
-	gpio_keys {
+	gpio-keys {
 		compatible = "gpio-keys";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		autorepeat;
-		button@0 {
+		button-0 {
 			label = "User";
 			linux,code = <KEY_HOME>;
 			gpios = <&gpioa 0 0>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32f429.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32f429.dtsi
@@ -283,8 +283,6 @@
 		};
 
 		timers13: timers@40001c00 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40001C00 0x400>;
 			clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>;
@@ -299,8 +297,6 @@
 		};
 
 		timers14: timers@40002000 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40002000 0x400>;
 			clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>;
@@ -623,8 +619,6 @@
 		};
 
 		timers10: timers@40014400 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40014400 0x400>;
 			clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>;
@@ -639,8 +633,6 @@
 		};
 
 		timers11: timers@40014800 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40014800 0x400>;
 			clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>;
@@ -696,7 +688,7 @@
 			status = "disabled";
 		};
 
-		rcc: rcc@40023810 {
+		rcc: rcc@40023800 {
 			#reset-cells = <1>;
 			#clock-cells = <2>;
 			compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32f469-disco.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32f469-disco.dts
@@ -76,6 +76,13 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
+	vdd_dsi: vdd-dsi {
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_dsi";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
 	soc {
 		dma-ranges = <0xc0000000 0x0 0x10000000>;
 	};
@@ -97,12 +104,10 @@
 		};
 	};
 
-	gpio_keys {
+	gpio-keys {
 		compatible = "gpio-keys";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		autorepeat;
-		button@0 {
+		button-0 {
 			label = "User";
 			linux,code = <KEY_WAKEUP>;
 			gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
@@ -155,6 +160,7 @@
 		compatible = "orisetech,otm8009a";
 		reg = <0>; /* dsi virtual channel (0..3) */
 		reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
+		power-supply = <&vdd_dsi>;
 		status = "okay";
 
 		port {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
@@ -284,6 +284,88 @@
 					slew-rate = <2>;
 				};
 			};
+
+			can1_pins_a: can1-0 {
+				pins1 {
+					pinmux = <STM32_PINMUX('A', 12, AF9)>; /* CAN1_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('A', 11, AF9)>; /* CAN1_RX */
+					bias-pull-up;
+				};
+			};
+
+			can1_pins_b: can1-1 {
+				pins1 {
+					pinmux = <STM32_PINMUX('B', 9, AF9)>; /* CAN1_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('B', 8, AF9)>; /* CAN1_RX */
+					bias-pull-up;
+				};
+			};
+
+			can1_pins_c: can1-2 {
+				pins1 {
+					pinmux = <STM32_PINMUX('D', 1, AF9)>; /* CAN1_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('D', 0, AF9)>; /* CAN1_RX */
+					bias-pull-up;
+
+				};
+			};
+
+			can1_pins_d: can1-3 {
+				pins1 {
+					pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('H', 14, AF9)>; /* CAN1_RX */
+					bias-pull-up;
+
+				};
+			};
+
+			can2_pins_a: can2-0 {
+				pins1 {
+					pinmux = <STM32_PINMUX('B', 6, AF9)>; /* CAN2_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('B', 5, AF9)>; /* CAN2_RX */
+					bias-pull-up;
+				};
+			};
+
+			can2_pins_b: can2-1 {
+				pins1 {
+					pinmux = <STM32_PINMUX('B', 13, AF9)>; /* CAN2_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('B', 12, AF9)>; /* CAN2_RX */
+					bias-pull-up;
+				};
+			};
+
+			can3_pins_a: can3-0 {
+				pins1 {
+					pinmux = <STM32_PINMUX('A', 15, AF11)>; /* CAN3_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('A', 8, AF11)>; /* CAN3_RX */
+					bias-pull-up;
+				};
+			};
+
+			can3_pins_b: can3-1 {
+				pins1 {
+					pinmux = <STM32_PINMUX('B', 4, AF11)>;  /* CAN3_TX */
+				};
+				pins2 {
+					pinmux = <STM32_PINMUX('B', 3, AF11)>; /* CAN3_RX */
+					bias-pull-up;
+				};
+			};
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32f746.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32f746.dtsi
@@ -265,8 +265,6 @@
 		};
 
 		timers13: timers@40001c00 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40001C00 0x400>;
 			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
@@ -281,8 +279,6 @@
 		};
 
 		timers14: timers@40002000 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40002000 0x400>;
 			clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
@@ -366,9 +362,9 @@
 			status = "disabled";
 		};
 
-		i2c3: i2c@40005C00 {
+		i2c3: i2c@40005c00 {
 			compatible = "st,stm32f7-i2c";
-			reg = <0x40005C00 0x400>;
+			reg = <0x40005c00 0x400>;
 			interrupts = <72>,
 				     <73>;
 			resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
@@ -533,8 +529,6 @@
 		};
 
 		timers10: timers@40014400 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40014400 0x400>;
 			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
@@ -549,8 +543,6 @@
 		};
 
 		timers11: timers@40014800 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-timers";
 			reg = <0x40014800 0x400>;
 			clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32f769-disco.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32f769-disco.dts
@@ -75,12 +75,10 @@
 		};
 	};
 
-	gpio_keys {
+	gpio-keys {
 		compatible = "gpio-keys";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		autorepeat;
-		button@0 {
+		button-0 {
 			label = "User";
 			linux,code = <KEY_HOME>;
 			gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32h743.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32h743.dtsi
@@ -438,8 +438,6 @@
 		};
 
 		lptimer4: timer@58002c00 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-lptimer";
 			reg = <0x58002c00 0x400>;
 			clocks = <&rcc LPTIM4_CK>;
@@ -454,8 +452,6 @@
 		};
 
 		lptimer5: timer@58003000 {
-			#address-cells = <1>;
-			#size-cells = <0>;
 			compatible = "st,stm32-lptimer";
 			reg = <0x58003000 0x400>;
 			clocks = <&rcc LPTIM5_CK>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32mp157a-avenger96.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32mp157a-avenger96.dts
@@ -91,6 +91,9 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		compatible = "snps,dwmac-mdio";
+		reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
+		reset-delay-us = <1000>;
+
 		phy0: ethernet-phy@7 {
 			reg = <7>;
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/stm32mp157c.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/stm32mp157c.dtsi
@@ -515,7 +515,7 @@
 			compatible = "st,stm32-cec";
 			reg = <0x40016000 0x400>;
 			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&rcc CEC_K>, <&clk_lse>;
+			clocks = <&rcc CEC_K>, <&rcc CEC>;
 			clock-names = "cec", "hdmi-cec";
 			status = "disabled";
 		};
@@ -773,7 +773,7 @@
 				#sound-dai-cells = <0>;
 
 				compatible = "st,stm32-sai-sub-a";
-				reg = <0x4 0x1c>;
+				reg = <0x4 0x20>;
 				clocks = <&rcc SAI1_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 87 0x400 0x01>;
@@ -783,7 +783,7 @@
 			sai1b: audio-controller@4400a024 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-b";
-				reg = <0x24 0x1c>;
+				reg = <0x24 0x20>;
 				clocks = <&rcc SAI1_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 88 0x400 0x01>;
@@ -804,7 +804,7 @@
 			sai2a: audio-controller@4400b004 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-a";
-				reg = <0x4 0x1c>;
+				reg = <0x4 0x20>;
 				clocks = <&rcc SAI2_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 89 0x400 0x01>;
@@ -814,7 +814,7 @@
 			sai2b: audio-controller@4400b024 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-b";
-				reg = <0x24 0x1c>;
+				reg = <0x24 0x20>;
 				clocks = <&rcc SAI2_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 90 0x400 0x01>;
@@ -835,7 +835,7 @@
 			sai3a: audio-controller@4400c004 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-a";
-				reg = <0x04 0x1c>;
+				reg = <0x04 0x20>;
 				clocks = <&rcc SAI3_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 113 0x400 0x01>;
@@ -845,7 +845,7 @@
 			sai3b: audio-controller@4400c024 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-b";
-				reg = <0x24 0x1c>;
+				reg = <0x24 0x20>;
 				clocks = <&rcc SAI3_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 114 0x400 0x01>;
@@ -1191,7 +1191,7 @@
 			sai4a: audio-controller@50027004 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-a";
-				reg = <0x04 0x1c>;
+				reg = <0x04 0x20>;
 				clocks = <&rcc SAI4_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 99 0x400 0x01>;
@@ -1201,7 +1201,7 @@
 			sai4b: audio-controller@50027024 {
 				#sound-dai-cells = <0>;
 				compatible = "st,stm32-sai-sub-b";
-				reg = <0x24 0x1c>;
+				reg = <0x24 0x20>;
 				clocks = <&rcc SAI4_K>;
 				clock-names = "sai_ck";
 				dmas = <&dmamux1 100 0x400 0x01>;
@@ -1311,12 +1311,6 @@
 			status = "disabled";
 		};
 
-		stmmac_axi_config_0: stmmac-axi-config {
-			snps,wr_osr_lmt = <0x7>;
-			snps,rd_osr_lmt = <0x7>;
-			snps,blen = <0 0 0 0 16 8 4>;
-		};
-
 		ethernet0: ethernet@5800a000 {
 			compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
 			reg = <0x5800a000 0x2000>;
@@ -1339,6 +1333,12 @@
 			snps,axi-config = <&stmmac_axi_config_0>;
 			snps,tso;
 			status = "disabled";
+
+			stmmac_axi_config_0: stmmac-axi-config {
+				snps,wr_osr_lmt = <0x7>;
+				snps,rd_osr_lmt = <0x7>;
+				snps,blen = <0 0 0 0 16 8 4>;
+			};
 		};
 
 		usbh_ohci: usbh-ohci@5800c000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun4i-a10.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -143,7 +143,7 @@
 			trips {
 				cpu_alert0: cpu-alert0 {
 					/* milliCelsius */
-					temperature = <850000>;
+					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
@@ -198,7 +198,7 @@
 		default-pool {
 			compatible = "shared-dma-pool";
 			size = <0x6000000>;
-			alloc-ranges = <0x4a000000 0x6000000>;
+			alloc-ranges = <0x40000000 0x10000000>;
 			reusable;
 			linux,cma-default;
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun5i.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun5i.dtsi
@@ -117,7 +117,7 @@
 		default-pool {
 			compatible = "shared-dma-pool";
 			size = <0x6000000>;
-			alloc-ranges = <0x4a000000 0x6000000>;
+			alloc-ranges = <0x40000000 0x10000000>;
 			reusable;
 			linux,cma-default;
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -154,7 +154,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -130,7 +130,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -132,7 +132,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20-bananapro.dts
@@ -110,7 +110,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -151,7 +151,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
@@ -112,7 +112,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015 Adam Sampson <ats@offog.org>
+ * Copyright 2015-2020 Adam Sampson <ats@offog.org>
  *
  * This file is dual-licensed: you can use it either under the terms
  * of the GPL or the X11 license, at your option. Note that this dual
@@ -115,7 +115,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun7i-a20.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -180,7 +180,7 @@
 		default-pool {
 			compatible = "shared-dma-pool";
 			size = <0x6000000>;
-			alloc-ranges = <0x4a000000 0x6000000>;
+			alloc-ranges = <0x40000000 0x10000000>;
 			reusable;
 			linux,cma-default;
 		};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
@@ -131,7 +131,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_sw>;
 	phy-handle = <&rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	allwinner,rx-delay-ps = <700>;
 	allwinner,tx-delay-ps = <700>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
@@ -101,7 +101,7 @@
 		initial-mode = <1>; /* initialize in HUB mode */
 		disabled-ports = <1>;
 		intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
-		reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
+		reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */
 		connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
 		refclk-frequency = <19200000>;
 	};
@@ -183,7 +183,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_dldo4>;
 	phy-handle = <&rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
@@ -358,8 +358,8 @@
 };
 
 &reg_dldo3 {
-	regulator-min-microvolt = <2800000>;
-	regulator-max-microvolt = <2800000>;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
 	regulator-name = "vdd-csi";
 };
 
@@ -482,7 +482,8 @@
 };
 
 &usbphy {
-	usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
+	usb0_id_det-gpios = <&pio 7 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH11 */
+	usb0_vbus_power-supply = <&usb_power_supply>;
 	usb0_vbus-supply = <&reg_drivevbus>;
 	usb1_vbus-supply = <&reg_vmain>;
 	usb2_vbus-supply = <&reg_vmain>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -313,7 +313,7 @@
 
 		display_clocks: clock@1000000 {
 			compatible = "allwinner,sun8i-a83t-de2-clk";
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_PLL_DE>;
 			clock-names = "bus",
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
@@ -31,7 +31,7 @@
 
 		pwr_led {
 			label = "bananapi-m2-zero:red:pwr";
-			gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
+			gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */
 			default-state = "on";
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -169,7 +169,7 @@
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "mxicy,mx25l1606e", "winbond,w25q128";
+		compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
 		reg = <0>;
 		spi-max-frequency = <40000000>;
 	};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
@@ -53,11 +53,6 @@
 	};
 };
 
-&emac {
-	/* LEDs changed to active high on the plus */
-	/delete-property/ allwinner,leds-active-low;
-};
-
 &mmc1 {
 	vmmc-supply = <&reg_vcc3v3>;
 	bus-width = <4>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
@@ -67,7 +67,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-h3.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -80,7 +80,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <1>;
@@ -90,7 +90,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <2>;
@@ -100,7 +100,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <3>;
@@ -111,6 +111,15 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a7-pmu";
+		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	timer {
 		compatible = "arm,armv7-timer";
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
@@ -129,7 +129,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
 };
@@ -223,16 +223,16 @@
 };
 
 &reg_dc1sw {
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
 	regulator-name = "vcc-gmac-phy";
 };
 
 &reg_dcdc1 {
 	regulator-always-on;
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
-	regulator-name = "vcc-3v0";
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
 };
 
 &reg_dcdc2 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-r40.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-r40.dtsi
@@ -118,7 +118,7 @@
 		display_clocks: clock@1000000 {
 			compatible = "allwinner,sun8i-r40-de2-clk",
 				     "allwinner,sun8i-h3-de2-clk";
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_DE>;
 			clock-names = "bus",
@@ -266,6 +266,16 @@
 			#phy-cells = <1>;
 		};
 
+		ahci: sata@1c18000 {
+			compatible = "allwinner,sun8i-r40-ahci";
+			reg = <0x01c18000 0x1000>;
+			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
+			resets = <&ccu RST_BUS_SATA>;
+			reset-names = "ahci";
+			status = "disabled";
+		};
+
 		ehci1: usb@1c19000 {
 			compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
 			reg = <0x01c19000 0x100>;
@@ -557,17 +567,6 @@
 			#size-cells = <0>;
 		};
 
-		ahci: sata@1c18000 {
-			compatible = "allwinner,sun8i-r40-ahci";
-			reg = <0x01c18000 0x1000>;
-			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
-			resets = <&ccu RST_BUS_SATA>;
-			reset-names = "ahci";
-			status = "disabled";
-
-		};
-
 		gmac: ethernet@1c50000 {
 			compatible = "allwinner,sun8i-r40-gmac";
 			syscon = <&ccu>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -105,7 +105,7 @@
 
 		display_clocks: clock@1000000 {
 			compatible = "allwinner,sun8i-v3s-de2-clk";
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_DE>;
 			clock-names = "bus",
@@ -423,7 +423,7 @@
 		gic: interrupt-controller@1c81000 {
 			compatible = "arm,gic-400";
 			reg = <0x01c81000 0x1000>,
-			      <0x01c82000 0x1000>,
+			      <0x01c82000 0x2000>,
 			      <0x01c84000 0x2000>,
 			      <0x01c86000 0x2000>;
 			interrupt-controller;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
@@ -120,7 +120,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
 };
@@ -198,16 +198,16 @@
 };
 
 &reg_dc1sw {
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
 	regulator-name = "vcc-gmac-phy";
 };
 
 &reg_dcdc1 {
 	regulator-always-on;
-	regulator-min-microvolt = <3000000>;
-	regulator-max-microvolt = <3000000>;
-	regulator-name = "vcc-3v0";
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-3v3";
 };
 
 &reg_dcdc2 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -129,7 +129,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_cldo1>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -124,7 +124,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&gmac_rgmii_pins>;
 	phy-handle = <&phy1>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-supply = <&reg_cldo1>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/suniv-f1c100s.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/suniv-f1c100s.dtsi
@@ -104,8 +104,10 @@
 
 		wdt: watchdog@1c20ca0 {
 			compatible = "allwinner,suniv-f1c100s-wdt",
-				     "allwinner,sun4i-a10-wdt";
+				     "allwinner,sun6i-a31-wdt";
 			reg = <0x01c20ca0 0x20>;
+			interrupts = <16>;
+			clocks = <&osc32k>;
 		};
 
 		uart0: serial@1c25000 {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi
@@ -16,15 +16,27 @@
 		regulator-type = "voltage";
 		regulator-boot-on;
 		regulator-always-on;
-		regulator-min-microvolt = <1100000>;
-		regulator-max-microvolt = <1300000>;
+		regulator-min-microvolt = <1108475>;
+		regulator-max-microvolt = <1308475>;
 		regulator-ramp-delay = <50>; /* 4ms */
 		gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
 		gpios-states = <0x1>;
-		states = <1100000 0>, <1300000 1>;
+		states = <1108475 0>, <1308475 1>;
 	};
 };
 
 &cpu0 {
 	cpu-supply = <&reg_vdd_cpux>;
 };
+
+&cpu1 {
+	cpu-supply = <&reg_vdd_cpux>;
+};
+
+&cpu2 {
+	cpu-supply = <&reg_vdd_cpux>;
+};
+
+&cpu3 {
+	cpu-supply = <&reg_vdd_cpux>;
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
@@ -126,7 +126,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -113,7 +113,7 @@
 
 		display_clocks: clock@1000000 {
 			/* compatible is in per SoC .dtsi file */
-			reg = <0x01000000 0x100000>;
+			reg = <0x01000000 0x10000>;
 			clocks = <&ccu CLK_BUS_DE>,
 				 <&ccu CLK_DE>;
 			clock-names = "bus",
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/tegra20-tamonten.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/tegra20-tamonten.dtsi
@@ -183,10 +183,11 @@
 			};
 			conf_ata {
 				nvidia,pins = "ata", "atb", "atc", "atd", "ate",
-					"cdev1", "cdev2", "dap1", "dtb", "gma",
-					"gmb", "gmc", "gmd", "gme", "gpu7",
-					"gpv", "i2cp", "pta", "rm", "slxa",
-					"slxk", "spia", "spib", "uac";
+					"cdev1", "cdev2", "dap1", "dtb", "dtf",
+					"gma", "gmb", "gmc", "gmd", "gme", "gpu7",
+					"gpv", "i2cp", "irrx", "irtx", "pta",
+					"rm", "slxa", "slxk", "spia", "spib",
+					"uac";
 				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
@@ -202,7 +203,7 @@
 			};
 			conf_crtp {
 				nvidia,pins = "crtp", "dap2", "dap3", "dap4",
-					"dtc", "dte", "dtf", "gpu", "sdio1",
+					"dtc", "dte", "gpu", "sdio1",
 					"slxc", "slxd", "spdi", "spdo", "spig",
 					"uda";
 				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -211,7 +212,7 @@
 			conf_ddc {
 				nvidia,pins = "ddc", "dta", "dtd", "kbca",
 					"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
-					"sdc";
+					"sdc", "uad", "uca";
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
@@ -221,10 +222,9 @@
 					"lvp0", "owc", "sdb";
 				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 			};
-			conf_irrx {
-				nvidia,pins = "irrx", "irtx", "sdd", "spic",
-					"spie", "spih", "uaa", "uab", "uad",
-					"uca", "ucb";
+			conf_sdd {
+				nvidia,pins = "sdd", "spic", "spie", "spih",
+					"uaa", "uab", "ucb";
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 			};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -571,7 +571,7 @@
 			clocks = <&sys_clk 6>;
 			reset-names = "ether";
 			resets = <&sys_rst 6>;
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 			local-mac-address = [00 00 00 00 00 00];
 			socionext,syscon-phy-mode = <&soc_glue 0>;
 
@@ -585,8 +585,8 @@
 			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
 			status = "disabled";
 			reg = <0x65a00000 0xcd00>;
-			interrupt-names = "host", "peripheral";
-			interrupts = <0 134 4>, <0 135 4>;
+			interrupt-names = "dwc_usb3";
+			interrupts = <0 134 4>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
 			clock-names = "ref", "bus_early", "suspend";
@@ -681,8 +681,8 @@
 			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
 			status = "disabled";
 			reg = <0x65c00000 0xcd00>;
-			interrupt-names = "host", "peripheral";
-			interrupts = <0 137 4>, <0 138 4>;
+			interrupt-names = "dwc_usb3";
+			interrupts = <0 137 4>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
 			clock-names = "ref", "bus_early", "suspend";
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/versatile-ab.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/versatile-ab.dts
@@ -195,16 +195,15 @@
 		#size-cells = <1>;
 		ranges;
 
-		vic: intc@10140000 {
+		vic: interrupt-controller@10140000 {
 			compatible = "arm,versatile-vic";
 			interrupt-controller;
 			#interrupt-cells = <1>;
 			reg = <0x10140000 0x1000>;
-			clear-mask = <0xffffffff>;
 			valid-mask = <0xffffffff>;
 		};
 
-		sic: intc@10003000 {
+		sic: interrupt-controller@10003000 {
 			compatible = "arm,versatile-sic";
 			interrupt-controller;
 			#interrupt-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/versatile-pb.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/versatile-pb.dts
@@ -7,7 +7,7 @@
 
 	amba {
 		/* The Versatile PB is using more SIC IRQ lines than the AB */
-		sic: intc@10003000 {
+		sic: interrupt-controller@10003000 {
 			clear-mask = <0xffffffff>;
 			/*
 			 * Valid interrupt lines mask according to
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/vesta-500.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/vesta-500.dts
@@ -0,0 +1,62 @@
+/*
+ *  Copyright (C) 2018 Shrirang Bagul <shrirang.bagul@canonical.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ */
+
+/dts-v1/;
+
+#include "vesta-500.dtsi"
+
+/ {
+	model = "Rigado Cascade 500 Board";
+	compatible = "fsl,vesta-500", "fsl,imx6ull";
+	version = "1.0.0";
+
+	aliases {
+		wifi0 = &athwifi;
+	};
+};
+
+&usdhc1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_wifi>;
+
+	no-1-8-v;
+	non-removable;
+	cap-sdio-irq;
+	cap-sd-highspeed;
+	enable-sdio-wakeup;
+	keep-power-in-suspend;
+	wakeup-source;
+	bus-width = <4>;
+	status = "okay";
+
+	athwifi:wifi@0 {
+		compatible = "qcom,ath10k";
+		local-mac-address = [ 00 00 00 00 00 00 ];
+	};
+};
+
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+
+	no-1-8-v;
+	non-removable;
+	cap-mmc-highspeed;
+	keep-power-in-suspend;
+	bus-width = <8>;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/vesta-500.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/vesta-500.dtsi
@@ -0,0 +1,706 @@
+/*
+ *  Copyright (C) 2018 Shrirang Bagul <shrirang.bagul@canonical.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ */
+
+#include <dt-bindings/input/input.h>
+#include "imx6ull.dtsi"
+
+/ {
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	memory {
+		reg = <0x80000000 0x20000000>;
+	};
+
+	ocram_optee {
+		compatible = "fsl,optee-lpm-sram";
+		reg = <0x00918000 0x8000>;
+		overw_reg = <&ocram 0x00900000 0x18000>;
+	};
+
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0x200000>;
+			linux,cma-default;
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		reg_can_3v3: regulator@0 {
+			compatible = "regulator-fixed";
+			reg = <0>;
+			regulator-name = "can-3v3";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+		};
+
+		reg_vref_3v3: regulator@1 {
+			  compatible = "regulator-fixed";
+			  reg = <0>;
+			  regulator-name = "vref-3v3";
+			  regulator-min-microvolt = <3300000>;
+			  regulator-max-microvolt = <3300000>;
+	  	};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_user_btn &pinctrl_rst_btn>;
+
+		user_btn {
+			label = "User_Button";
+			gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
+			linux,code = <KEY_SPACE>;
+		};
+
+		rst_btn {
+			label = "Reset_Button";
+			gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;
+			linux,code = <KEY_BACKSPACE>;
+		};
+	};
+
+	gpio-restart {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_wdog>;
+
+		compatible = "gpio-restart";
+		gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+		priority = <200>;
+	};
+
+	pwmleds {
+		compatible = "pwm-leds";
+
+		pwm-green {
+			active-low;
+			linux,default-trigger = "default-on";
+			label = "vesta:pwm-green";
+			max-brightness = <248>;
+			pwms = <&pwm2 0 50000 0>;
+		};
+
+		pwm-red {
+			active-low;
+			linux,default-trigger = "default-on";
+			label = "vesta:pwm-red";
+			max-brightness = <248>;
+			pwms = <&pwm6 0 50000 0>;
+		};
+	};
+
+	/* All expansion cards should be listed here, as disabled  */
+
+	default_adccard: default_adccard {
+		compatible = "rigado,vesta-exp-card";
+		status = "disabled";
+	};
+
+	verizon_cellmdm: verizon_cellmdm {
+		compatible = "rigado,vesta-exp-card";
+		status = "disabled";
+	};
+
+	gemalto_cellmdm: gemalto_cellmdm {
+		compatible = "rigado,vesta-exp-card";
+		status = "disabled";
+	};
+
+	tau_board: tau_board {
+		compatible = "rigado,vesta-exp-card";
+		status = "disabled";
+	};
+
+	multiplexer_board: multiplexer_board {
+		compatible = "rigado,vesta-exp-card";
+		status = "disabled";
+	};
+};
+
+&cpu0 {
+	arm-supply = <&reg_arm>;
+	soc-supply = <&reg_soc>;
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet1>;
+
+	phy-mode = "rmii";
+	phy-handle = <&ethphy0>;
+
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+		};
+
+		ethphy1: ethernet-phy@2 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <2>;
+		};
+	};
+};
+
+&i2c1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+
+	clock-frequency = <100000>;
+	status = "okay";
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+
+	clock_frequency = <100000>;
+	status = "okay";
+
+	exp_eeprom@50 {
+		compatible = "atmel,24c32";
+		reg = <0x50>;
+		pagesize = <32>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		exp0_data: exp_data@0 {
+			reg = <0 0x4A>;
+		};
+	};
+};
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+
+	clock-frequency = <100000>;
+	status = "okay";
+};
+
+&adc1 {
+	vref-supply = <&reg_vref_3v3>;
+	status = "disabled";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	pinctrl_hog_1: hog1grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO06__GPIO1_IO06	0x00001020 /* PMIC_INT_N */
+			MX6UL_PAD_CSI_DATA02__GPIO4_IO23	0x00001020 /* BT_GPIO */
+			MX6UL_PAD_CSI_DATA03__GPIO4_IO24	0x00001020 /* BT_RST_N */
+			MX6UL_PAD_CSI_DATA04__GPIO4_IO25	0x00001020 /* ENET1 RST N */
+			MX6UL_PAD_CSI_DATA06__GPIO4_IO27	0x00001020 /* BT_INT_N */
+			MX6UL_PAD_CSI_DATA07__GPIO4_IO28	0x00001020 /* ENET1_INT_N */
+			MX6UL_PAD_NAND_ALE__USDHC2_RESET_B	0x000010A0 /* SD2_RST_N */
+			MX6UL_PAD_LCD_DATA00__GPIO3_IO05	0x00001020 /* BLE_RST_N */
+			MX6UL_PAD_LCD_DATA08__GPIO3_IO13	0x00001020 /* SWDIO */
+			MX6UL_PAD_LCD_DATA09__GPIO3_IO14	0x00001020 /* SWCLK */
+		>;
+	};
+
+	pinctrl_adc1: adc1grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 		0x00001020
+		  >;
+	};
+
+	pinctrl_adc2: adc2grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 		0x00001020
+			MX6UL_PAD_GPIO1_IO01__GPIO1_IO01		0x00001020
+		  >;
+	};
+
+	pinctrl_wifi: wifigrp {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14 0x00001020
+		>;
+	};
+
+	pinctrl_enet1: enet1grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO07__ENET1_MDC		0x00002008
+			MX6UL_PAD_ENET2_RX_DATA0__ENET1_MDIO	0x00002008
+
+			MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN	0x00001088
+			MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER	0x00001088
+			MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x00001088
+			MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x00001088
+			MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN	0x00001088
+			MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x00001088
+			MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x00001088
+			MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x40001008
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x40001820
+			MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x40001820
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX6UL_PAD_CSI_HSYNC__I2C2_SCL 0x40001820
+			MX6UL_PAD_CSI_VSYNC__I2C2_SDA 0x40001820
+		>;
+	};
+
+	pinctrl_i2c4: i2c4grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA02__I2C4_SDA	0x40001820
+			MX6UL_PAD_LCD_DATA03__I2C4_SCL	0x40001820
+		>;
+	};
+
+	pinctrl_pwm2: pwm2grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA01__PWM2_OUT	0x00009030
+		>;
+	};
+
+	pinctrl_pwm6: pwm6grp {
+		fsl,pins = <
+			MX6UL_PAD_JTAG_TDI__PWM6_OUT   0x00007030
+		>;
+	};
+
+	pinctrl_qspi: qspigrp {
+		fsl,pins = <
+			MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK      0x00001020
+			MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x00009020
+			MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01   0x00001020
+			MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02   0x00001020
+			MX6UL_PAD_NAND_CLE__QSPI_A_DATA03     0x00001020
+			MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B      0x00001020
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX	0x00001020
+			MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX	0x00001020
+			MX6UL_PAD_UART1_RTS_B__UART1_DCE_RTS	0x00001020
+			MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS	0x00001020
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX	0x00001020
+			MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX	0x00001020
+		>;
+	};
+
+	pinctrl_uart3: uart3grp {
+		fsl,pins = <
+			MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX	0x00001020
+			MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX	0x00001020
+			MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS	0x00001020
+			MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS	0x00001020
+		>;
+	};
+
+	pinctrl_uart4: uart4grp {
+		fsl,pins = <
+			MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX	0x00001020
+			MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX	0x00001020
+		>;
+	};
+
+	pinctrl_uart4_flowctrl: uart4grp_flowctrl {
+		fsl,pins = <
+			MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX	0x00001020
+			MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX	0x00001020
+			MX6UL_PAD_LCD_HSYNC__UART4_DCE_CTS	0x00001020
+			MX6UL_PAD_LCD_VSYNC__UART4_DCE_RTS	0x00001020
+
+		>;
+	};
+
+	pinctrl_uart5: uart5grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO04__UART5_DCE_TX	0x00001020
+			MX6UL_PAD_GPIO1_IO05__UART5_DCE_RX	0x00001020
+		>;
+	};
+
+	pinctrl_uart5_flowctrl: uart5grp_flowctrl {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO04__UART5_DCE_TX	0x00001020
+			MX6UL_PAD_GPIO1_IO05__UART5_DCE_RX	0x00001020
+			MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x00001020
+			MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS	0x00001020
+		>;
+	};
+
+	pinctrl_uart6: uart6grp {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_RX_DATA1__UART6_DCE_RX	0x00001020
+			MX6UL_PAD_CSI_MCLK__UART6_DCE_TX	0x00001020
+		>;
+	};
+
+	pinctrl_uart7: uart7grp {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_TX_DATA0__UART7_DCE_RX	0x00001008
+			MX6UL_PAD_ENET2_RX_EN__UART7_DCE_TX	0x00001008
+		>;
+	};
+
+	pinctrl_uart7_flowctrl: uart7grp_flowctrl {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_TX_DATA0__UART7_DCE_RX	0x00001008
+			MX6UL_PAD_ENET2_RX_EN__UART7_DCE_TX	0x00001008
+			MX6UL_PAD_LCD_DATA06__UART7_DCE_CTS 	0x00001008
+			MX6UL_PAD_LCD_DATA07__UART7_DCE_RTS 	0x00001008
+		>;
+	};
+
+	pinctrl_uart8: uart8grp {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_TX_EN__UART8_DCE_RX	0x00001020
+			MX6UL_PAD_ENET2_TX_DATA1__UART8_DCE_TX	0x00001020
+		>;
+	};
+
+	pinctrl_uart8_flowctrl: uart8grp_flowctrl {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_TX_EN__UART8_DCE_RX	0x1b0b1
+			MX6UL_PAD_ENET2_TX_DATA1__UART8_DCE_TX	0x1b0b1
+			MX6UL_PAD_LCD_DATA04__UART8_DCE_CTS	0x1b0b1
+			MX6UL_PAD_LCD_DATA05__UART8_DCE_RTS	0x1b0b1
+		>;
+	};
+
+	pinctrl_usdhc1: usdhc1grp {
+		fsl,pins = <
+			MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x000090A0
+			MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x00001008
+			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x000090A0
+			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x000090A0
+			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x000090A0
+			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x000090A0
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX6UL_PAD_NAND_RE_B__USDHC2_CLK     0x000010A0
+			MX6UL_PAD_NAND_WE_B__USDHC2_CMD     0x000090A0
+			MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x000090A0
+			MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x000010A0
+			MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x000010A0
+			MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x000010A0
+			MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x000010A0
+			MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x000010A0
+			MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x000010A0
+			MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x000010A0
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15	0x000010B0
+		>;
+	};
+
+	pinctrl_vz_cellmdm: vzcellmdmgrp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO02__GPIO1_IO02	0x00001020 /* Ring */
+			MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28	0x00001020 /* DCD */
+			MX6UL_PAD_CSI_DATA00__GPIO4_IO21	0x00001020 /* CELL_WAKEUP */
+			MX6UL_PAD_CSI_DATA01__GPIO4_IO22	0x00001020	/* VBUS_CTRL */
+			MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30	0x00001020	/* CELL_PWRKEY */
+			MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31	0x00001020 /* CELL_STATUS N */
+			MX6UL_PAD_GPIO1_IO08__GPIO1_IO08	0x00001020 /* CELL_PWR_SHDN */
+			MX6UL_PAD_UART2_RTS_B__GPIO1_IO23	0x00001020	/* CELL_DISABLE */
+			MX6UL_PAD_UART2_CTS_B__GPIO1_IO22	0x00001020 /* CELL_RST */
+		>;
+	};
+
+	pinctrl_gm_cellmdm: gmcellmdmgrp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO02__GPIO1_IO02	0x00001020 /* Ring */
+			MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28	0x00001020 /* DCD */
+			MX6UL_PAD_GPIO1_IO08__GPIO1_IO08	0x00001020 /* CELL_PWR_SHDN */
+			MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09 0x00001020 /* DSR */
+			MX6UL_PAD_CSI_DATA01__GPIO4_IO22	0x00001020	/* VBUS_CTRL */
+			MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30	0x00001020	/* CELL_IGT */
+			MX6UL_PAD_UART2_RTS_B__GPIO1_IO23	0x00001020	/* CELL_EOFF */
+			MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31	0x00001020	/* CELL_STATUS */
+			MX6UL_PAD_UART2_CTS_B__GPIO1_IO22	0x00001020 /* CELL_SHDN */
+		>;
+	};
+
+	pinctrl_user_btn: user-btn {
+		fsl,pins = <
+			MX6ULL_PAD_BOOT_MODE0__GPIO5_IO10	0x00013020 /* user button */
+		>;
+	};
+
+	pinctrl_rst_btn: rst-btn {
+		fsl,pins = <
+			MX6UL_PAD_CSI_DATA05__GPIO4_IO26	0x00001020 /* RST BTN */
+		>;
+	};
+
+	pinctrl_tau80: tau80grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA12__GPIO3_IO17	0x00001020 /* BLE1_INT_IN */
+			MX6UL_PAD_LCD_DATA13__GPIO3_IO18	0x00001020 /* BLE2_INT_IN */
+			MX6UL_PAD_LCD_DATA14__GPIO3_IO19	0x00001020 /* BLE3_INT_IN */
+			MX6UL_PAD_LCD_DATA15__GPIO3_IO20	0x00001020 /* BLE4_INT_IN */
+
+			MX6UL_PAD_CSI_DATA00__GPIO4_IO21	0x00001020 /* BLE1_RST_N */
+			MX6UL_PAD_CSI_DATA01__GPIO4_IO22	0x00001020 /* BLE2_RST_N */
+			MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30	0x00001020 /* BLE3_RST_N */
+			MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31	0x00001020 /* BLE4_RST_N */
+
+			MX6UL_PAD_UART2_RTS_B__GPIO1_IO23	0x00001020 /* SWD_CLK1 */
+			MX6UL_PAD_GPIO1_IO02__GPIO1_IO02	0x00001020 /* SWD_CLK2 */
+			MX6UL_PAD_GPIO1_IO01__GPIO1_IO01	0x00001020 /* SWD_CLK3 */
+
+			MX6UL_PAD_UART2_CTS_B__GPIO1_IO22	0x00001020 /* SWD_IO */
+		>;
+	};
+
+	pinctrl_multiplexer: multiplexergrp {
+		 fsl,pins = <
+			 MX6UL_PAD_LCD_CLK__GPIO3_IO00           0x00001020 /* EXP_PWR_DIS2 */
+			 MX6UL_PAD_LCD_ENABLE__GPIO3_IO01        0x00001020 /* EXP_PWR_DIS1 */
+			 MX6UL_PAD_LCD_HSYNC__GPIO3_IO02         0x00001020 /* HUB_RST_N4 */
+			 MX6UL_PAD_LCD_VSYNC__GPIO3_IO03         0x00001020 /* EXP_INT1_N4 */
+			 MX6UL_PAD_LCD_RESET__GPIO3_IO04         0x00001020 /* EXP_INT2_N4 */
+			 MX6UL_PAD_LCD_DATA16__GPIO3_IO21        0x00001020 /* EXP_INT4_N4 */
+			 MX6UL_PAD_LCD_DATA17__GPIO3_IO22        0x00001020 /* EXP_INT3_N4 */
+			 MX6UL_PAD_LCD_DATA18__GPIO3_IO23        0x00001020 /* EXP_RST_N4 */
+			 MX6UL_PAD_LCD_DATA19__GPIO3_IO24        0x00001020 /* EXP_PWR_DIS4 */
+			 MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28     0x00001020 /* EXP_INT4_N1 */
+			 MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29     0x00001020 /* EXP_INT2_N1 */
+			 MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0x00001020 /* EXP_INT1_N1 */
+			 MX6UL_PAD_GPIO1_IO05__GPIO1_IO05        0x00001020 /* HUB_RST_N1 */
+			 MX6UL_PAD_CSI_MCLK__GPIO4_IO17          0x00001020 /* EXP_RST_N1 */
+			 MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09    0x00001020 /* EXP_RST_N2 */
+			 MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10       0x00001020 /* USB_RST_N */
+			 MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11    0x00001020 /* EXP_INT1_N3 */
+			 MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12    0x00001020 /* EXP_INT2_N3 */
+			 MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13       0x00001020 /* EXP_INT3_N3 */
+			 MX6UL_PAD_CSI_DATA00__GPIO4_IO21        0x00001020 /* EXP_PWR_DIS3 */
+			 MX6UL_PAD_CSI_DATA01__GPIO4_IO22        0x00001020 /* EXP_INT4_N3 */
+			 MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30     0x00001020 /* EXP_RST_N3 */
+			 MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31     0x00001020 /* HUB_RST_N2 */
+			 MX6UL_PAD_LCD_DATA04__GPIO3_IO09        0x00001020 /* EXP_INT3_N1 */
+			 MX6UL_PAD_LCD_DATA05__GPIO3_IO10        0x00001020 /* HUB_RST_N3 */
+			 MX6UL_PAD_LCD_DATA06__GPIO3_IO11        0x00001020 /* MAG_DRDY */
+			 MX6UL_PAD_LCD_DATA07__GPIO3_IO12        0x00001020 /* ACCEL_INT */
+			 MX6UL_PAD_LCD_DATA10__GPIO3_IO15        0x00001020 /* MAG_INT */
+			 MX6UL_PAD_LCD_DATA11__GPIO3_IO16        0x00001020 /* EXT_BUTTON */
+			 MX6UL_PAD_LCD_DATA12__GPIO3_IO17        0x00001020 /* EXP_INT3_N2 */
+			 MX6UL_PAD_LCD_DATA13__GPIO3_IO18        0x00001020 /* EXP_INT4_N2 */
+			 MX6UL_PAD_LCD_DATA14__GPIO3_IO19        0x00001020 /* EXP_INT2_N2 */
+			 MX6UL_PAD_LCD_DATA15__GPIO3_IO20        0x00001020 /* EXP_INT1_N2 */
+			 MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x00001020 /* SWD_SEL_C */
+			 MX6UL_PAD_GPIO1_IO08__GPIO1_IO08        0x00001020 /* SWD_SEL_D */
+			 MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0x00001020 /* SWD_SEL_B */
+			 MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0x00001020 /* SWD_SEL_A */
+			 MX6UL_PAD_UART2_RTS_B__GPIO1_IO23       0x00001020 /* SWD_CLK1 */
+			 MX6UL_PAD_UART2_CTS_B__GPIO1_IO22       0x00001020 /* SWD_IO */
+		 >;
+	 };
+
+	pinctrl_ecspi1: ecspi1grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK	0x00001020
+			MX6UL_PAD_LCD_DATA21__ECSPI1_SS0	0x00001020
+			MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI	0x00001020
+			MX6UL_PAD_LCD_DATA23__ECSPI1_MISO	0x00001020
+		>;
+	};
+};
+
+&ocotp {
+	compatible = "fsl,imx6ull-ocotp", "syscon";
+
+	status = "okay";
+};
+
+&pwm2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm2>;
+
+	status = "okay";
+};
+
+&pwm6 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm6>;
+
+	status = "okay";
+};
+
+&ecspi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1>;
+
+	status = "disabled";
+};
+
+&tempmon {
+	fsl,tempmon-data = <&ocotp>;
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+
+	dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
+	dma-names = "rx", "tx";
+
+	fsl,uart-has-rtscts;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+
+	status = "okay";
+};
+
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	fsl,uart-has-rtscts;
+
+	dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
+	dma-names = "rx", "tx";
+
+	status = "okay";
+};
+
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4_flowctrl>;
+	fsl,uart-has-rtscts;
+
+	dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
+	dma-names = "rx", "tx";
+
+	status = "disabled";
+};
+
+&uart5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart5_flowctrl>;
+	fsl,uart-has-rtscts;
+
+	dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
+	dma-names = "rx", "tx";
+
+	status = "disabled";
+};
+
+&uart6 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart6>;
+
+	dmas = <&sdma 0 4 0>, <&sdma 47 4 0>;
+	dma-names = "rx", "tx";
+
+	status = "disabled";
+};
+
+&uart7 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart7_flowctrl>;
+	fsl,uart-has-rtscts;
+
+	dmas = <&sdma 43 4 0>, <&sdma 44 4 0>;
+	dma-names = "rx", "tx";
+
+	status = "disabled";
+};
+
+&uart8 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart8_flowctrl>;
+	fsl,uart-has-rtscts;
+
+	dmas = <&sdma 45 4 0>, <&sdma 46 4 0>;
+	dma-names = "rx", "tx";
+
+	status = "disabled";
+};
+
+&usbotg1 {
+	dr_mode = "host";
+	disable-over-current;
+
+	status = "okay";
+};
+
+&usbotg2 {
+	dr_mode = "host";
+	disable-over-current;
+
+	status = "okay";
+};
+
+&wdog1 {
+	status = "okay";
+};
+
+/* Vesta expansion card DT overlay manager - based on beaglebone cape manager */
+
+/ {
+
+	vesta_overlaymgr {
+		compatible = "rigado,vesta-overlaymgr";
+		status = "okay";
+
+		nvmem-cells = <&exp0_data>;
+		nvmem-cell-names = "slot0";
+
+		#slots = <1>;
+
+		/* map board revisions to compatible definitions */
+		baseboardmaps {
+			baseboard_vesta: board@0 {
+				board-name ="vesta";
+				compatible-name = "rigado,vesta";
+			};
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
@@ -31,7 +31,7 @@
 			#interrupt-cells = <1>;
 			ranges;
 
-			nor_flash: flash@0,00000000 {
+			nor_flash: flash@0 {
 				compatible = "arm,vexpress-flash", "cfi-flash";
 				reg = <0 0x00000000 0x04000000>,
 				      <4 0x00000000 0x04000000>;
@@ -41,13 +41,13 @@
 				};
 			};
 
-			psram@1,00000000 {
+			psram@100000000 {
 				compatible = "arm,vexpress-psram", "mtd-ram";
 				reg = <1 0x00000000 0x02000000>;
 				bank-width = <4>;
 			};
 
-			ethernet@2,02000000 {
+			ethernet@202000000 {
 				compatible = "smsc,lan9118", "smsc,lan9115";
 				reg = <2 0x02000000 0x10000>;
 				interrupts = <15>;
@@ -59,14 +59,14 @@
 				vddvario-supply = <&v2m_fixed_3v3>;
 			};
 
-			usb@2,03000000 {
+			usb@203000000 {
 				compatible = "nxp,usb-isp1761";
 				reg = <2 0x03000000 0x20000>;
 				interrupts = <16>;
 				port1-otg;
 			};
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				compatible = "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
+++ linux-ein-5.4.0/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
@@ -132,6 +132,7 @@
 		reg = <0x2c0f0000 0x1000>;
 		interrupts = <0 84 4>;
 		cache-level = <2>;
+		cache-unified;
 	};
 
 	pmu {
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/vf500.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/vf500.dtsi
@@ -23,7 +23,7 @@
 	};
 
 	soc {
-		aips-bus@40000000 {
+		bus@40000000 {
 
 			intc: interrupt-controller@40003000 {
 				compatible = "arm,cortex-a9-gic";
@@ -43,7 +43,7 @@
 			};
 		};
 
-		aips-bus@40080000 {
+		bus@40080000 {
 			pmu@40089000 {
 				compatible = "arm,cortex-a5-pmu";
 				interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm/boot/dts/vfxxx.dtsi
+++ linux-ein-5.4.0/arch/arm/boot/dts/vfxxx.dtsi
@@ -59,7 +59,7 @@
 		interrupt-parent = <&mscm_ir>;
 		ranges;
 
-		aips0: aips-bus@40000000 {
+		aips0: bus@40000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -471,7 +471,7 @@
 			};
 		};
 
-		aips1: aips-bus@40080000 {
+		aips1: bus@40080000 {
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -495,7 +495,7 @@
 			};
 
 			ocotp: ocotp@400a5000 {
-				compatible = "fsl,vf610-ocotp";
+				compatible = "fsl,vf610-ocotp", "syscon";
 				reg = <0x400a5000 0x1000>;
 				clocks = <&clks VF610_CLK_OCOTP>;
 			};
--- linux-ein-5.4.0.orig/arch/arm/configs/aspeed_g5_defconfig
+++ linux-ein-5.4.0/arch/arm/configs/aspeed_g5_defconfig
@@ -139,6 +139,7 @@
 CONFIG_SERIAL_8250_EXTENDED=y
 CONFIG_SERIAL_8250_ASPEED_VUART=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DW=y
 CONFIG_SERIAL_OF_PLATFORM=y
 CONFIG_ASPEED_KCS_IPMI_BMC=y
 CONFIG_ASPEED_BT_IPMI_BMC=y
--- linux-ein-5.4.0.orig/arch/arm/configs/exynos_defconfig
+++ linux-ein-5.4.0/arch/arm/configs/exynos_defconfig
@@ -38,6 +38,7 @@
 CONFIG_CRYPTO_SHA512_ARM=m
 CONFIG_CRYPTO_AES_ARM_BS=m
 CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_PARTITION_ADVANCED=y
@@ -92,6 +93,7 @@
 CONFIG_BLK_DEV_CRYPTOLOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_ATA=y
@@ -290,6 +292,7 @@
 CONFIG_COMMON_CLK_MAX77686=y
 CONFIG_COMMON_CLK_S2MPS11=y
 CONFIG_EXYNOS_IOMMU=y
+CONFIG_PM_DEVFREQ=y
 CONFIG_DEVFREQ_GOV_PERFORMANCE=y
 CONFIG_DEVFREQ_GOV_POWERSAVE=y
 CONFIG_DEVFREQ_GOV_USERSPACE=y
@@ -348,9 +351,13 @@
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_INFO=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_SOFTLOCKUP_DETECTOR=y
 # CONFIG_DETECT_HUNG_TASK is not set
 CONFIG_PROVE_LOCKING=y
 CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
 CONFIG_DEBUG_USER=y
--- linux-ein-5.4.0.orig/arch/arm/configs/imx_v6_v7_defconfig
+++ linux-ein-5.4.0/arch/arm/configs/imx_v6_v7_defconfig
@@ -460,6 +460,7 @@
 CONFIG_FONT_8x16=y
 CONFIG_PRINTK_TIME=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
 CONFIG_PROVE_LOCKING=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
--- linux-ein-5.4.0.orig/arch/arm/configs/omap2plus_defconfig
+++ linux-ein-5.4.0/arch/arm/configs/omap2plus_defconfig
@@ -552,5 +552,6 @@
 CONFIG_DEBUG_INFO_SPLIT=y
 CONFIG_DEBUG_INFO_DWARF4=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
 CONFIG_SCHEDSTATS=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
--- linux-ein-5.4.0.orig/arch/arm/configs/rpc_defconfig
+++ linux-ein-5.4.0/arch/arm/configs/rpc_defconfig
@@ -32,7 +32,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/arm/configs/s3c2410_defconfig
+++ linux-ein-5.4.0/arch/arm/configs/s3c2410_defconfig
@@ -202,7 +202,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_CONSTANTS=y
--- linux-ein-5.4.0.orig/arch/arm/crypto/Kconfig
+++ linux-ein-5.4.0/arch/arm/crypto/Kconfig
@@ -30,7 +30,7 @@
 
 config CRYPTO_SHA1_ARM_CE
 	tristate "SHA1 digest algorithm (ARM v8 Crypto Extensions)"
-	depends on KERNEL_MODE_NEON
+	depends on KERNEL_MODE_NEON && (CC_IS_CLANG || GCC_VERSION >= 40800)
 	select CRYPTO_SHA1_ARM
 	select CRYPTO_HASH
 	help
@@ -39,7 +39,7 @@
 
 config CRYPTO_SHA2_ARM_CE
 	tristate "SHA-224/256 digest algorithm (ARM v8 Crypto Extensions)"
-	depends on KERNEL_MODE_NEON
+	depends on KERNEL_MODE_NEON && (CC_IS_CLANG || GCC_VERSION >= 40800)
 	select CRYPTO_SHA256_ARM
 	select CRYPTO_HASH
 	help
@@ -96,7 +96,7 @@
 
 config CRYPTO_AES_ARM_CE
 	tristate "Accelerated AES using ARMv8 Crypto Extensions"
-	depends on KERNEL_MODE_NEON
+	depends on KERNEL_MODE_NEON && (CC_IS_CLANG || GCC_VERSION >= 40800)
 	select CRYPTO_BLKCIPHER
 	select CRYPTO_LIB_AES
 	select CRYPTO_SIMD
@@ -106,7 +106,7 @@
 
 config CRYPTO_GHASH_ARM_CE
 	tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions"
-	depends on KERNEL_MODE_NEON
+	depends on KERNEL_MODE_NEON && (CC_IS_CLANG || GCC_VERSION >= 40800)
 	select CRYPTO_HASH
 	select CRYPTO_CRYPTD
 	select CRYPTO_GF128MUL
@@ -118,12 +118,14 @@
 
 config CRYPTO_CRCT10DIF_ARM_CE
 	tristate "CRCT10DIF digest algorithm using PMULL instructions"
-	depends on KERNEL_MODE_NEON && CRC_T10DIF
+	depends on KERNEL_MODE_NEON && (CC_IS_CLANG || GCC_VERSION >= 40800)
+	depends on CRC_T10DIF
 	select CRYPTO_HASH
 
 config CRYPTO_CRC32_ARM_CE
 	tristate "CRC32(C) digest algorithm using CRC and/or PMULL instructions"
-	depends on KERNEL_MODE_NEON && CRC32
+	depends on KERNEL_MODE_NEON && (CC_IS_CLANG || GCC_VERSION >= 40800)
+	depends on CRC32
 	select CRYPTO_HASH
 
 config CRYPTO_CHACHA20_NEON
--- linux-ein-5.4.0.orig/arch/arm/crypto/Makefile
+++ linux-ein-5.4.0/arch/arm/crypto/Makefile
@@ -12,32 +12,12 @@
 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o
 obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o
 
-ce-obj-$(CONFIG_CRYPTO_AES_ARM_CE) += aes-arm-ce.o
-ce-obj-$(CONFIG_CRYPTO_SHA1_ARM_CE) += sha1-arm-ce.o
-ce-obj-$(CONFIG_CRYPTO_SHA2_ARM_CE) += sha2-arm-ce.o
-ce-obj-$(CONFIG_CRYPTO_GHASH_ARM_CE) += ghash-arm-ce.o
-ce-obj-$(CONFIG_CRYPTO_CRCT10DIF_ARM_CE) += crct10dif-arm-ce.o
-crc-obj-$(CONFIG_CRYPTO_CRC32_ARM_CE) += crc32-arm-ce.o
-
-ifneq ($(crc-obj-y)$(crc-obj-m),)
-ifeq ($(call as-instr,.arch armv8-a\n.arch_extension crc,y,n),y)
-ce-obj-y += $(crc-obj-y)
-ce-obj-m += $(crc-obj-m)
-else
-$(warning These CRC Extensions modules need binutils 2.23 or higher)
-$(warning $(crc-obj-y) $(crc-obj-m))
-endif
-endif
-
-ifneq ($(ce-obj-y)$(ce-obj-m),)
-ifeq ($(call as-instr,.fpu crypto-neon-fp-armv8,y,n),y)
-obj-y += $(ce-obj-y)
-obj-m += $(ce-obj-m)
-else
-$(warning These ARMv8 Crypto Extensions modules need binutils 2.23 or higher)
-$(warning $(ce-obj-y) $(ce-obj-m))
-endif
-endif
+obj-$(CONFIG_CRYPTO_AES_ARM_CE) += aes-arm-ce.o
+obj-$(CONFIG_CRYPTO_SHA1_ARM_CE) += sha1-arm-ce.o
+obj-$(CONFIG_CRYPTO_SHA2_ARM_CE) += sha2-arm-ce.o
+obj-$(CONFIG_CRYPTO_GHASH_ARM_CE) += ghash-arm-ce.o
+obj-$(CONFIG_CRYPTO_CRCT10DIF_ARM_CE) += crct10dif-arm-ce.o
+obj-$(CONFIG_CRYPTO_CRC32_ARM_CE) += crc32-arm-ce.o
 
 aes-arm-y	:= aes-cipher-core.o aes-cipher-glue.o
 aes-arm-bs-y	:= aes-neonbs-core.o aes-neonbs-glue.o
--- linux-ein-5.4.0.orig/arch/arm/crypto/aes-ce-core.S
+++ linux-ein-5.4.0/arch/arm/crypto/aes-ce-core.S
@@ -386,20 +386,32 @@
 .Lctrloop4x:
 	subs		r4, r4, #4
 	bmi		.Lctr1x
-	add		r6, r6, #1
+
+	/*
+	 * NOTE: the sequence below has been carefully tweaked to avoid
+	 * a silicon erratum that exists in Cortex-A57 (#1742098) and
+	 * Cortex-A72 (#1655431) cores, where AESE/AESMC instruction pairs
+	 * may produce an incorrect result if they take their input from a
+	 * register of which a single 32-bit lane has been updated the last
+	 * time it was modified. To work around this, the lanes of registers
+	 * q0-q3 below are not manipulated individually, and the different
+	 * counter values are prepared by successive manipulations of q7.
+	 */
+	add		ip, r6, #1
 	vmov		q0, q7
+	rev		ip, ip
+	add		lr, r6, #2
+	vmov		s31, ip			@ set lane 3 of q1 via q7
+	add		ip, r6, #3
+	rev		lr, lr
 	vmov		q1, q7
-	rev		ip, r6
-	add		r6, r6, #1
+	vmov		s31, lr			@ set lane 3 of q2 via q7
+	rev		ip, ip
 	vmov		q2, q7
-	vmov		s7, ip
-	rev		ip, r6
-	add		r6, r6, #1
+	vmov		s31, ip			@ set lane 3 of q3 via q7
+	add		r6, r6, #4
 	vmov		q3, q7
-	vmov		s11, ip
-	rev		ip, r6
-	add		r6, r6, #1
-	vmov		s15, ip
+
 	vld1.8		{q4-q5}, [r1]!
 	vld1.8		{q6}, [r1]!
 	vld1.8		{q15}, [r1]!
--- linux-ein-5.4.0.orig/arch/arm/crypto/crct10dif-ce-core.S
+++ linux-ein-5.4.0/arch/arm/crypto/crct10dif-ce-core.S
@@ -72,7 +72,7 @@
 #endif
 
 	.text
-	.arch		armv7-a
+	.arch		armv8-a
 	.fpu		crypto-neon-fp-armv8
 
 	init_crc	.req	r0
--- linux-ein-5.4.0.orig/arch/arm/crypto/ghash-ce-core.S
+++ linux-ein-5.4.0/arch/arm/crypto/ghash-ce-core.S
@@ -8,6 +8,9 @@
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 
+	.arch		armv8-a
+	.fpu		crypto-neon-fp-armv8
+
 	SHASH		.req	q0
 	T1		.req	q1
 	XL		.req	q2
@@ -88,7 +91,6 @@
 	T3_H		.req	d17
 
 	.text
-	.fpu		crypto-neon-fp-armv8
 
 	.macro		__pmull_p64, rd, rn, rm, b1, b2, b3, b4
 	vmull.p64	\rd, \rn, \rm
--- linux-ein-5.4.0.orig/arch/arm/crypto/nhpoly1305-neon-glue.c
+++ linux-ein-5.4.0/arch/arm/crypto/nhpoly1305-neon-glue.c
@@ -30,7 +30,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_neon_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_neon);
--- linux-ein-5.4.0.orig/arch/arm/crypto/sha1-ce-core.S
+++ linux-ein-5.4.0/arch/arm/crypto/sha1-ce-core.S
@@ -10,6 +10,7 @@
 #include <asm/assembler.h>
 
 	.text
+	.arch		armv8-a
 	.fpu		crypto-neon-fp-armv8
 
 	k0		.req	q0
--- linux-ein-5.4.0.orig/arch/arm/crypto/sha2-ce-core.S
+++ linux-ein-5.4.0/arch/arm/crypto/sha2-ce-core.S
@@ -10,6 +10,7 @@
 #include <asm/assembler.h>
 
 	.text
+	.arch		armv8-a
 	.fpu		crypto-neon-fp-armv8
 
 	k0		.req	q7
--- linux-ein-5.4.0.orig/arch/arm/crypto/sha256-armv4.pl
+++ linux-ein-5.4.0/arch/arm/crypto/sha256-armv4.pl
@@ -175,7 +175,6 @@
 #else
 .syntax unified
 # ifdef __thumb2__
-#  define adrl adr
 .thumb
 # else
 .code   32
@@ -471,7 +470,8 @@
 	stmdb	sp!,{r4-r12,lr}
 
 	sub	$H,sp,#16*4+16
-	adrl	$Ktbl,K256
+	adr	$Ktbl,.Lsha256_block_data_order
+	sub	$Ktbl,$Ktbl,#.Lsha256_block_data_order-K256
 	bic	$H,$H,#15		@ align for 128-bit stores
 	mov	$t2,sp
 	mov	sp,$H			@ alloca
--- linux-ein-5.4.0.orig/arch/arm/crypto/sha256-core.S_shipped
+++ linux-ein-5.4.0/arch/arm/crypto/sha256-core.S_shipped
@@ -56,7 +56,6 @@
 #else
 .syntax unified
 # ifdef __thumb2__
-#  define adrl adr
 .thumb
 # else
 .code   32
@@ -1885,7 +1884,8 @@
 	stmdb	sp!,{r4-r12,lr}
 
 	sub	r11,sp,#16*4+16
-	adrl	r14,K256
+	adr	r14,.Lsha256_block_data_order
+	sub	r14,r14,#.Lsha256_block_data_order-K256
 	bic	r11,r11,#15		@ align for 128-bit stores
 	mov	r12,sp
 	mov	sp,r11			@ alloca
--- linux-ein-5.4.0.orig/arch/arm/crypto/sha512-armv4.pl
+++ linux-ein-5.4.0/arch/arm/crypto/sha512-armv4.pl
@@ -212,7 +212,6 @@
 #else
 .syntax unified
 # ifdef __thumb2__
-#  define adrl adr
 .thumb
 # else
 .code   32
@@ -602,7 +601,8 @@
 	dmb				@ errata #451034 on early Cortex A8
 	add	$len,$inp,$len,lsl#7	@ len to point at the end of inp
 	VFP_ABI_PUSH
-	adrl	$Ktbl,K512
+	adr	$Ktbl,.Lsha512_block_data_order
+	sub	$Ktbl,$Ktbl,.Lsha512_block_data_order-K512
 	vldmia	$ctx,{$A-$H}		@ load context
 .Loop_neon:
 ___
--- linux-ein-5.4.0.orig/arch/arm/crypto/sha512-core.S_shipped
+++ linux-ein-5.4.0/arch/arm/crypto/sha512-core.S_shipped
@@ -79,7 +79,6 @@
 #else
 .syntax unified
 # ifdef __thumb2__
-#  define adrl adr
 .thumb
 # else
 .code   32
@@ -543,7 +542,8 @@
 	dmb				@ errata #451034 on early Cortex A8
 	add	r2,r1,r2,lsl#7	@ len to point at the end of inp
 	VFP_ABI_PUSH
-	adrl	r3,K512
+	adr	r3,.Lsha512_block_data_order
+	sub	r3,r3,.Lsha512_block_data_order-K512
 	vldmia	r0,{d16-d23}		@ load context
 .Loop_neon:
 	vshr.u64	d24,d20,#14	@ 0
--- linux-ein-5.4.0.orig/arch/arm/include/asm/assembler.h
+++ linux-ein-5.4.0/arch/arm/include/asm/assembler.h
@@ -18,11 +18,11 @@
 #endif
 
 #include <asm/ptrace.h>
-#include <asm/domain.h>
 #include <asm/opcodes-virt.h>
 #include <asm/asm-offsets.h>
 #include <asm/page.h>
 #include <asm/thread_info.h>
+#include <asm/uaccess-asm.h>
 
 #define IOMEM(x)	(x)
 
@@ -107,6 +107,16 @@
 	.endm
 #endif
 
+#if __LINUX_ARM_ARCH__ < 7
+	.macro	dsb, args
+	mcr	p15, 0, r0, c7, c10, 4
+	.endm
+
+	.macro	isb, args
+	mcr	p15, 0, r0, c7, c5, 4
+	.endm
+#endif
+
 	.macro asm_trace_hardirqs_off, save=1
 #if defined(CONFIG_TRACE_IRQFLAGS)
 	.if \save
@@ -269,10 +279,9 @@
 	.endif							;\
 	.popsection
 #define ALT_UP_B(label)					\
-	.equ	up_b_offset, label - 9998b			;\
 	.pushsection ".alt.smp.init", "a"			;\
 	.long	9998b						;\
-	W(b)	. + up_b_offset					;\
+	W(b)	. + (label - 9998b)					;\
 	.popsection
 #else
 #define ALT_SMP(instr...)
@@ -446,79 +455,6 @@
 	.size \name , . - \name
 	.endm
 
-	.macro	csdb
-#ifdef CONFIG_THUMB2_KERNEL
-	.inst.w	0xf3af8014
-#else
-	.inst	0xe320f014
-#endif
-	.endm
-
-	.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
-#ifndef CONFIG_CPU_USE_DOMAINS
-	adds	\tmp, \addr, #\size - 1
-	sbcscc	\tmp, \tmp, \limit
-	bcs	\bad
-#ifdef CONFIG_CPU_SPECTRE
-	movcs	\addr, #0
-	csdb
-#endif
-#endif
-	.endm
-
-	.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req
-#ifdef CONFIG_CPU_SPECTRE
-	sub	\tmp, \limit, #1
-	subs	\tmp, \tmp, \addr	@ tmp = limit - 1 - addr
-	addhs	\tmp, \tmp, #1		@ if (tmp >= 0) {
-	subshs	\tmp, \tmp, \size	@ tmp = limit - (addr + size) }
-	movlo	\addr, #0		@ if (tmp < 0) addr = NULL
-	csdb
-#endif
-	.endm
-
-	.macro	uaccess_disable, tmp, isb=1
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	/*
-	 * Whenever we re-enter userspace, the domains should always be
-	 * set appropriately.
-	 */
-	mov	\tmp, #DACR_UACCESS_DISABLE
-	mcr	p15, 0, \tmp, c3, c0, 0		@ Set domain register
-	.if	\isb
-	instr_sync
-	.endif
-#endif
-	.endm
-
-	.macro	uaccess_enable, tmp, isb=1
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	/*
-	 * Whenever we re-enter userspace, the domains should always be
-	 * set appropriately.
-	 */
-	mov	\tmp, #DACR_UACCESS_ENABLE
-	mcr	p15, 0, \tmp, c3, c0, 0
-	.if	\isb
-	instr_sync
-	.endif
-#endif
-	.endm
-
-	.macro	uaccess_save, tmp
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	mrc	p15, 0, \tmp, c3, c0, 0
-	str	\tmp, [sp, #SVC_DACR]
-#endif
-	.endm
-
-	.macro	uaccess_restore
-#ifdef CONFIG_CPU_SW_DOMAIN_PAN
-	ldr	r0, [sp, #SVC_DACR]
-	mcr	p15, 0, r0, c3, c0, 0
-#endif
-	.endm
-
 	.irp	c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
 	.macro	ret\c, reg
 #if __LINUX_ARM_ARCH__ < 6
--- linux-ein-5.4.0.orig/arch/arm/include/asm/bugs.h
+++ linux-ein-5.4.0/arch/arm/include/asm/bugs.h
@@ -1,7 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- *  arch/arm/include/asm/bugs.h
- *
  *  Copyright (C) 1995-2003 Russell King
  */
 #ifndef __ASM_BUGS_H
@@ -10,10 +8,8 @@
 extern void check_writebuffer_bugs(void);
 
 #ifdef CONFIG_MMU
-extern void check_bugs(void);
 extern void check_other_bugs(void);
 #else
-#define check_bugs() do { } while (0)
 #define check_other_bugs() do { } while (0)
 #endif
 
--- linux-ein-5.4.0.orig/arch/arm/include/asm/clocksource.h
+++ linux-ein-5.4.0/arch/arm/include/asm/clocksource.h
@@ -1,8 +1,17 @@
 #ifndef _ASM_CLOCKSOURCE_H
 #define _ASM_CLOCKSOURCE_H
 
+enum vdso_arch_clockmode {
+	/* vdso clocksource not usable */
+	VDSO_CLOCKMODE_NONE,
+	/* vdso clocksource usable */
+	VDSO_CLOCKMODE_ARCHTIMER,
+	VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT = VDSO_CLOCKMODE_ARCHTIMER,
+};
+
 struct arch_clocksource_data {
-	bool vdso_direct;	/* Usable for direct VDSO access? */
+	/* Usable for direct VDSO access? */
+	enum vdso_arch_clockmode clock_mode;
 };
 
 #endif
--- linux-ein-5.4.0.orig/arch/arm/include/asm/fixmap.h
+++ linux-ein-5.4.0/arch/arm/include/asm/fixmap.h
@@ -2,7 +2,7 @@
 #ifndef _ASM_FIXMAP_H
 #define _ASM_FIXMAP_H
 
-#define FIXADDR_START		0xffc00000UL
+#define FIXADDR_START		0xffc80000UL
 #define FIXADDR_END		0xfff00000UL
 #define FIXADDR_TOP		(FIXADDR_END - PAGE_SIZE)
 
--- linux-ein-5.4.0.orig/arch/arm/include/asm/ftrace.h
+++ linux-ein-5.4.0/arch/arm/include/asm/ftrace.h
@@ -16,6 +16,9 @@
 
 #ifdef CONFIG_DYNAMIC_FTRACE
 struct dyn_arch_ftrace {
+#ifdef CONFIG_ARM_MODULE_PLTS
+	struct module *mod;
+#endif
 };
 
 static inline unsigned long ftrace_call_adjust(unsigned long addr)
--- linux-ein-5.4.0.orig/arch/arm/include/asm/futex.h
+++ linux-ein-5.4.0/arch/arm/include/asm/futex.h
@@ -164,8 +164,13 @@
 	preempt_enable();
 #endif
 
-	if (!ret)
-		*oval = oldval;
+	/*
+	 * Store unconditionally. If ret != 0 the extra store is the least
+	 * of the worries but GCC cannot figure out that __futex_atomic_op()
+	 * is either setting ret to -EFAULT or storing the old value in
+	 * oldval which results in a uninitialized warning at the call site.
+	 */
+	*oval = oldval;
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/arch/arm/include/asm/insn.h
+++ linux-ein-5.4.0/arch/arm/include/asm/insn.h
@@ -13,18 +13,18 @@
 }
 
 unsigned long
-__arm_gen_branch(unsigned long pc, unsigned long addr, bool link);
+__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn);
 
 static inline unsigned long
 arm_gen_branch(unsigned long pc, unsigned long addr)
 {
-	return __arm_gen_branch(pc, addr, false);
+	return __arm_gen_branch(pc, addr, false, true);
 }
 
 static inline unsigned long
-arm_gen_branch_link(unsigned long pc, unsigned long addr)
+arm_gen_branch_link(unsigned long pc, unsigned long addr, bool warn)
 {
-	return __arm_gen_branch(pc, addr, true);
+	return __arm_gen_branch(pc, addr, true, warn);
 }
 
 #endif
--- linux-ein-5.4.0.orig/arch/arm/include/asm/io.h
+++ linux-ein-5.4.0/arch/arm/include/asm/io.h
@@ -138,6 +138,7 @@
 	void *);
 extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int);
 extern void __iomem *__arm_ioremap_exec(phys_addr_t, size_t, bool cached);
+void __arm_iomem_set_ro(void __iomem *ptr, size_t size);
 extern void __iounmap(volatile void __iomem *addr);
 
 extern void __iomem * (*arch_ioremap_caller)(phys_addr_t, size_t,
@@ -457,6 +458,9 @@
 extern int valid_phys_addr_range(phys_addr_t addr, size_t size);
 extern int valid_mmap_phys_addr_range(unsigned long pfn, size_t size);
 extern int devmem_is_allowed(unsigned long pfn);
+extern bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size,
+					unsigned long flags);
+#define arch_memremap_can_ram_remap arch_memremap_can_ram_remap
 #endif
 
 /*
--- linux-ein-5.4.0.orig/arch/arm/include/asm/kexec-internal.h
+++ linux-ein-5.4.0/arch/arm/include/asm/kexec-internal.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ARM_KEXEC_INTERNAL_H
+#define _ARM_KEXEC_INTERNAL_H
+
+struct kexec_relocate_data {
+	unsigned long kexec_start_address;
+	unsigned long kexec_indirection_page;
+	unsigned long kexec_mach_type;
+	unsigned long kexec_r2;
+};
+
+#endif
--- linux-ein-5.4.0.orig/arch/arm/include/asm/kprobes.h
+++ linux-ein-5.4.0/arch/arm/include/asm/kprobes.h
@@ -44,20 +44,20 @@
 			     unsigned long val, void *data);
 
 /* optinsn template addresses */
-extern __visible kprobe_opcode_t optprobe_template_entry;
-extern __visible kprobe_opcode_t optprobe_template_val;
-extern __visible kprobe_opcode_t optprobe_template_call;
-extern __visible kprobe_opcode_t optprobe_template_end;
-extern __visible kprobe_opcode_t optprobe_template_sub_sp;
-extern __visible kprobe_opcode_t optprobe_template_add_sp;
-extern __visible kprobe_opcode_t optprobe_template_restore_begin;
-extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn;
-extern __visible kprobe_opcode_t optprobe_template_restore_end;
+extern __visible kprobe_opcode_t optprobe_template_entry[];
+extern __visible kprobe_opcode_t optprobe_template_val[];
+extern __visible kprobe_opcode_t optprobe_template_call[];
+extern __visible kprobe_opcode_t optprobe_template_end[];
+extern __visible kprobe_opcode_t optprobe_template_sub_sp[];
+extern __visible kprobe_opcode_t optprobe_template_add_sp[];
+extern __visible kprobe_opcode_t optprobe_template_restore_begin[];
+extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn[];
+extern __visible kprobe_opcode_t optprobe_template_restore_end[];
 
 #define MAX_OPTIMIZED_LENGTH	4
 #define MAX_OPTINSN_SIZE				\
-	((unsigned long)&optprobe_template_end -	\
-	 (unsigned long)&optprobe_template_entry)
+	((unsigned long)optprobe_template_end -	\
+	 (unsigned long)optprobe_template_entry)
 #define RELATIVEJUMP_SIZE	4
 
 struct arch_optimized_insn {
--- linux-ein-5.4.0.orig/arch/arm/include/asm/kvm_asm.h
+++ linux-ein-5.4.0/arch/arm/include/asm/kvm_asm.h
@@ -56,7 +56,7 @@
 extern void __kvm_flush_vm_context(void);
 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
-extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
+extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
 
 extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);
 
--- linux-ein-5.4.0.orig/arch/arm/include/asm/kvm_emulate.h
+++ linux-ein-5.4.0/arch/arm/include/asm/kvm_emulate.h
@@ -14,13 +14,25 @@
 #include <asm/cputype.h>
 
 /* arm64 compatibility macros */
+#define PSR_AA32_MODE_FIQ	FIQ_MODE
+#define PSR_AA32_MODE_SVC	SVC_MODE
 #define PSR_AA32_MODE_ABT	ABT_MODE
 #define PSR_AA32_MODE_UND	UND_MODE
 #define PSR_AA32_T_BIT		PSR_T_BIT
+#define PSR_AA32_F_BIT		PSR_F_BIT
 #define PSR_AA32_I_BIT		PSR_I_BIT
 #define PSR_AA32_A_BIT		PSR_A_BIT
 #define PSR_AA32_E_BIT		PSR_E_BIT
 #define PSR_AA32_IT_MASK	PSR_IT_MASK
+#define PSR_AA32_GE_MASK	0x000f0000
+#define PSR_AA32_DIT_BIT	0x00200000
+#define PSR_AA32_PAN_BIT	0x00400000
+#define PSR_AA32_SSBS_BIT	0x00800000
+#define PSR_AA32_Q_BIT		PSR_Q_BIT
+#define PSR_AA32_V_BIT		PSR_V_BIT
+#define PSR_AA32_C_BIT		PSR_C_BIT
+#define PSR_AA32_Z_BIT		PSR_Z_BIT
+#define PSR_AA32_N_BIT		PSR_N_BIT
 
 unsigned long *vcpu_reg(struct kvm_vcpu *vcpu, u8 reg_num);
 
@@ -41,6 +53,11 @@
 	*__vcpu_spsr(vcpu) = v;
 }
 
+static inline unsigned long host_spsr_to_spsr32(unsigned long spsr)
+{
+	return spsr;
+}
+
 static inline unsigned long vcpu_get_reg(struct kvm_vcpu *vcpu,
 					 u8 reg_num)
 {
@@ -177,12 +194,17 @@
 	return kvm_vcpu_get_hsr(vcpu) & HSR_SSE;
 }
 
+static inline bool kvm_vcpu_dabt_issf(const struct kvm_vcpu *vcpu)
+{
+	return false;
+}
+
 static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu)
 {
 	return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT;
 }
 
-static inline bool kvm_vcpu_dabt_iss1tw(struct kvm_vcpu *vcpu)
+static inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & HSR_DABT_S1PTW;
 }
@@ -214,16 +236,21 @@
 	return kvm_vcpu_get_hsr(vcpu) & HSR_IL;
 }
 
-static inline u8 kvm_vcpu_trap_get_class(struct kvm_vcpu *vcpu)
+static inline u8 kvm_vcpu_trap_get_class(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) >> HSR_EC_SHIFT;
 }
 
-static inline bool kvm_vcpu_trap_is_iabt(struct kvm_vcpu *vcpu)
+static inline bool kvm_vcpu_trap_is_iabt(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_trap_get_class(vcpu) == HSR_EC_IABT;
 }
 
+static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
+{
+	return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
+}
+
 static inline u8 kvm_vcpu_trap_get_fault(struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & HSR_FSC;
@@ -341,6 +368,7 @@
 	}
 }
 
-static inline void vcpu_ptrauth_setup_lazy(struct kvm_vcpu *vcpu) {}
+static inline bool vcpu_has_ptrauth(struct kvm_vcpu *vcpu) { return false; }
+static inline void vcpu_ptrauth_disable(struct kvm_vcpu *vcpu) { }
 
 #endif /* __ARM_KVM_EMULATE_H__ */
--- linux-ein-5.4.0.orig/arch/arm/include/asm/kvm_host.h
+++ linux-ein-5.4.0/arch/arm/include/asm/kvm_host.h
@@ -266,7 +266,7 @@
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
-			unsigned long start, unsigned long end);
+			unsigned long start, unsigned long end, unsigned flags);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 
 unsigned long kvm_arm_num_regs(struct kvm_vcpu *vcpu);
@@ -335,6 +335,7 @@
 static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {}
 
 static inline void kvm_arm_init_debug(void) {}
+static inline void kvm_arm_vcpu_init_debug(struct kvm_vcpu *vcpu) {}
 static inline void kvm_arm_setup_debug(struct kvm_vcpu *vcpu) {}
 static inline void kvm_arm_clear_debug(struct kvm_vcpu *vcpu) {}
 static inline void kvm_arm_reset_debug_ptr(struct kvm_vcpu *vcpu) {}
@@ -421,4 +422,6 @@
 	return true;
 }
 
+#define kvm_arm_vcpu_loaded(vcpu)	(false)
+
 #endif /* __ARM_KVM_HOST_H__ */
--- linux-ein-5.4.0.orig/arch/arm/include/asm/kvm_mmio.h
+++ linux-ein-5.4.0/arch/arm/include/asm/kvm_mmio.h
@@ -14,6 +14,8 @@
 struct kvm_decode {
 	unsigned long rt;
 	bool sign_extend;
+	/* Not used on 32-bit arm */
+	bool sixty_four;
 };
 
 void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
--- linux-ein-5.4.0.orig/arch/arm/include/asm/mach/map.h
+++ linux-ein-5.4.0/arch/arm/include/asm/mach/map.h
@@ -27,6 +27,7 @@
 	MT_HIGH_VECTORS,
 	MT_MEMORY_RWX,
 	MT_MEMORY_RW,
+	MT_MEMORY_RO,
 	MT_ROM,
 	MT_MEMORY_RWX_NONCACHED,
 	MT_MEMORY_RW_DTCM,
--- linux-ein-5.4.0.orig/arch/arm/include/asm/memory.h
+++ linux-ein-5.4.0/arch/arm/include/asm/memory.h
@@ -67,6 +67,10 @@
  */
 #define XIP_VIRT_ADDR(physaddr)  (MODULES_VADDR + ((physaddr) & 0x000fffff))
 
+#define FDT_FIXED_BASE		UL(0xff800000)
+#define FDT_FIXED_SIZE		(2 * SECTION_SIZE)
+#define FDT_VIRT_BASE(physbase)	((void *)(FDT_FIXED_BASE | (physbase) % SECTION_SIZE))
+
 #if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE)
 /*
  * Allow 16MB-aligned ioremap pages
@@ -107,6 +111,7 @@
 #define MODULES_VADDR		PAGE_OFFSET
 
 #define XIP_VIRT_ADDR(physaddr)  (physaddr)
+#define FDT_VIRT_BASE(physbase)  ((void *)(physbase))
 
 #endif /* !CONFIG_MMU */
 
--- linux-ein-5.4.0.orig/arch/arm/include/asm/module.h
+++ linux-ein-5.4.0/arch/arm/include/asm/module.h
@@ -19,8 +19,18 @@
 };
 #endif
 
+#define PLT_ENT_STRIDE		L1_CACHE_BYTES
+#define PLT_ENT_COUNT		(PLT_ENT_STRIDE / sizeof(u32))
+#define PLT_ENT_SIZE		(sizeof(struct plt_entries) / PLT_ENT_COUNT)
+
+struct plt_entries {
+	u32	ldr[PLT_ENT_COUNT];
+	u32	lit[PLT_ENT_COUNT];
+};
+
 struct mod_plt_sec {
 	struct elf32_shdr	*plt;
+	struct plt_entries	*plt_ent;
 	int			plt_count;
 };
 
--- linux-ein-5.4.0.orig/arch/arm/include/asm/percpu.h
+++ linux-ein-5.4.0/arch/arm/include/asm/percpu.h
@@ -5,6 +5,8 @@
 #ifndef _ASM_ARM_PERCPU_H_
 #define _ASM_ARM_PERCPU_H_
 
+#include <asm/thread_info.h>
+
 /*
  * Same as asm-generic/percpu.h, except that we store the per cpu offset
  * in the TPIDRPRW. TPIDRPRW only exists on V6K and V7
--- linux-ein-5.4.0.orig/arch/arm/include/asm/perf_event.h
+++ linux-ein-5.4.0/arch/arm/include/asm/perf_event.h
@@ -17,7 +17,7 @@
 
 #define perf_arch_fetch_caller_regs(regs, __ip) { \
 	(regs)->ARM_pc = (__ip); \
-	(regs)->ARM_fp = (unsigned long) __builtin_frame_address(0); \
+	frame_pointer((regs)) = (unsigned long) __builtin_frame_address(0); \
 	(regs)->ARM_sp = current_stack_pointer; \
 	(regs)->ARM_cpsr = SVC_MODE; \
 }
--- linux-ein-5.4.0.orig/arch/arm/include/asm/pgtable-2level.h
+++ linux-ein-5.4.0/arch/arm/include/asm/pgtable-2level.h
@@ -75,6 +75,8 @@
 #define PTE_HWTABLE_OFF		(PTE_HWTABLE_PTRS * sizeof(pte_t))
 #define PTE_HWTABLE_SIZE	(PTRS_PER_PTE * sizeof(u32))
 
+#define MAX_POSSIBLE_PHYSMEM_BITS	32
+
 /*
  * PMD_SHIFT determines the size of the area a second-level page table can map
  * PGDIR_SHIFT determines what a third-level page table entry can map
--- linux-ein-5.4.0.orig/arch/arm/include/asm/pgtable-3level.h
+++ linux-ein-5.4.0/arch/arm/include/asm/pgtable-3level.h
@@ -25,6 +25,8 @@
 #define PTE_HWTABLE_OFF		(0)
 #define PTE_HWTABLE_SIZE	(PTRS_PER_PTE * sizeof(u64))
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 40
+
 /*
  * PGDIR_SHIFT determines the size a top-level page table entry can map.
  */
--- linux-ein-5.4.0.orig/arch/arm/include/asm/pgtable-nommu.h
+++ linux-ein-5.4.0/arch/arm/include/asm/pgtable-nommu.h
@@ -52,12 +52,6 @@
 typedef pte_t *pte_addr_t;
 
 /*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc..
- */
-#define ZERO_PAGE(vaddr)	(virt_to_page(0))
-
-/*
  * Mark the prot value as uncacheable and unbufferable.
  */
 #define pgprot_noncached(prot)	(prot)
--- linux-ein-5.4.0.orig/arch/arm/include/asm/pgtable.h
+++ linux-ein-5.4.0/arch/arm/include/asm/pgtable.h
@@ -10,6 +10,15 @@
 #include <linux/const.h>
 #include <asm/proc-fns.h>
 
+#ifndef __ASSEMBLY__
+/*
+ * ZERO_PAGE is a global shared page that is always zero: used
+ * for zero-mapped memory areas etc..
+ */
+extern struct page *empty_zero_page;
+#define ZERO_PAGE(vaddr)	(empty_zero_page)
+#endif
+
 #ifndef CONFIG_MMU
 
 #include <asm-generic/4level-fixup.h>
@@ -166,13 +175,6 @@
 #define __S111  __PAGE_SHARED_EXEC
 
 #ifndef __ASSEMBLY__
-/*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc..
- */
-extern struct page *empty_zero_page;
-#define ZERO_PAGE(vaddr)	(empty_zero_page)
-
 
 extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
 
--- linux-ein-5.4.0.orig/arch/arm/include/asm/prom.h
+++ linux-ein-5.4.0/arch/arm/include/asm/prom.h
@@ -9,12 +9,12 @@
 
 #ifdef CONFIG_OF
 
-extern const struct machine_desc *setup_machine_fdt(unsigned int dt_phys);
+extern const struct machine_desc *setup_machine_fdt(void *dt_virt);
 extern void __init arm_dt_init_cpu_maps(void);
 
 #else /* CONFIG_OF */
 
-static inline const struct machine_desc *setup_machine_fdt(unsigned int dt_phys)
+static inline const struct machine_desc *setup_machine_fdt(void *dt_virt)
 {
 	return NULL;
 }
--- linux-ein-5.4.0.orig/arch/arm/include/asm/ptrace.h
+++ linux-ein-5.4.0/arch/arm/include/asm/ptrace.h
@@ -164,5 +164,31 @@
 		((current_stack_pointer | (THREAD_SIZE - 1)) - 7) - 1;	\
 })
 
+
+/*
+ * Update ITSTATE after normal execution of an IT block instruction.
+ *
+ * The 8 IT state bits are split into two parts in CPSR:
+ *	ITSTATE<1:0> are in CPSR<26:25>
+ *	ITSTATE<7:2> are in CPSR<15:10>
+ */
+static inline unsigned long it_advance(unsigned long cpsr)
+{
+	if ((cpsr & 0x06000400) == 0) {
+		/* ITSTATE<2:0> == 0 means end of IT block, so clear IT state */
+		cpsr &= ~PSR_IT_MASK;
+	} else {
+		/* We need to shift left ITSTATE<4:0> */
+		const unsigned long mask = 0x06001c00;  /* Mask ITSTATE<4:0> */
+		unsigned long it = cpsr & mask;
+		it <<= 1;
+		it |= it >> (27 - 10);  /* Carry ITSTATE<2> to correct place */
+		it &= mask;
+		cpsr &= ~mask;
+		cpsr |= it;
+	}
+	return cpsr;
+}
+
 #endif /* __ASSEMBLY__ */
 #endif
--- linux-ein-5.4.0.orig/arch/arm/include/asm/spectre.h
+++ linux-ein-5.4.0/arch/arm/include/asm/spectre.h
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_SPECTRE_H
+#define __ASM_SPECTRE_H
+
+enum {
+	SPECTRE_UNAFFECTED,
+	SPECTRE_MITIGATED,
+	SPECTRE_VULNERABLE,
+};
+
+enum {
+	__SPECTRE_V2_METHOD_BPIALL,
+	__SPECTRE_V2_METHOD_ICIALLU,
+	__SPECTRE_V2_METHOD_SMC,
+	__SPECTRE_V2_METHOD_HVC,
+	__SPECTRE_V2_METHOD_LOOP8,
+};
+
+enum {
+	SPECTRE_V2_METHOD_BPIALL = BIT(__SPECTRE_V2_METHOD_BPIALL),
+	SPECTRE_V2_METHOD_ICIALLU = BIT(__SPECTRE_V2_METHOD_ICIALLU),
+	SPECTRE_V2_METHOD_SMC = BIT(__SPECTRE_V2_METHOD_SMC),
+	SPECTRE_V2_METHOD_HVC = BIT(__SPECTRE_V2_METHOD_HVC),
+	SPECTRE_V2_METHOD_LOOP8 = BIT(__SPECTRE_V2_METHOD_LOOP8),
+};
+
+#ifdef CONFIG_GENERIC_CPU_VULNERABILITIES
+void spectre_v2_update_state(unsigned int state, unsigned int methods);
+#else
+static inline void spectre_v2_update_state(unsigned int state,
+					   unsigned int methods)
+{}
+#endif
+
+int spectre_bhb_update_vectors(unsigned int method);
+
+#endif
--- linux-ein-5.4.0.orig/arch/arm/include/asm/timex.h
+++ linux-ein-5.4.0/arch/arm/include/asm/timex.h
@@ -11,5 +11,6 @@
 
 typedef unsigned long cycles_t;
 #define get_cycles()	({ cycles_t c; read_current_timer(&c) ? 0 : c; })
+#define random_get_entropy() (((unsigned long)get_cycles()) ?: random_get_entropy_fallback())
 
 #endif
--- linux-ein-5.4.0.orig/arch/arm/include/asm/uaccess-asm.h
+++ linux-ein-5.4.0/arch/arm/include/asm/uaccess-asm.h
@@ -0,0 +1,117 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_UACCESS_ASM_H__
+#define __ASM_UACCESS_ASM_H__
+
+#include <asm/asm-offsets.h>
+#include <asm/domain.h>
+#include <asm/memory.h>
+#include <asm/thread_info.h>
+
+	.macro	csdb
+#ifdef CONFIG_THUMB2_KERNEL
+	.inst.w	0xf3af8014
+#else
+	.inst	0xe320f014
+#endif
+	.endm
+
+	.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
+#ifndef CONFIG_CPU_USE_DOMAINS
+	adds	\tmp, \addr, #\size - 1
+	sbcscc	\tmp, \tmp, \limit
+	bcs	\bad
+#ifdef CONFIG_CPU_SPECTRE
+	movcs	\addr, #0
+	csdb
+#endif
+#endif
+	.endm
+
+	.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req
+#ifdef CONFIG_CPU_SPECTRE
+	sub	\tmp, \limit, #1
+	subs	\tmp, \tmp, \addr	@ tmp = limit - 1 - addr
+	addhs	\tmp, \tmp, #1		@ if (tmp >= 0) {
+	subshs	\tmp, \tmp, \size	@ tmp = limit - (addr + size) }
+	movlo	\addr, #0		@ if (tmp < 0) addr = NULL
+	csdb
+#endif
+	.endm
+
+	.macro	uaccess_disable, tmp, isb=1
+#ifdef CONFIG_CPU_SW_DOMAIN_PAN
+	/*
+	 * Whenever we re-enter userspace, the domains should always be
+	 * set appropriately.
+	 */
+	mov	\tmp, #DACR_UACCESS_DISABLE
+	mcr	p15, 0, \tmp, c3, c0, 0		@ Set domain register
+	.if	\isb
+	instr_sync
+	.endif
+#endif
+	.endm
+
+	.macro	uaccess_enable, tmp, isb=1
+#ifdef CONFIG_CPU_SW_DOMAIN_PAN
+	/*
+	 * Whenever we re-enter userspace, the domains should always be
+	 * set appropriately.
+	 */
+	mov	\tmp, #DACR_UACCESS_ENABLE
+	mcr	p15, 0, \tmp, c3, c0, 0
+	.if	\isb
+	instr_sync
+	.endif
+#endif
+	.endm
+
+#if defined(CONFIG_CPU_SW_DOMAIN_PAN) || defined(CONFIG_CPU_USE_DOMAINS)
+#define DACR(x...)	x
+#else
+#define DACR(x...)
+#endif
+
+	/*
+	 * Save the address limit on entry to a privileged exception.
+	 *
+	 * If we are using the DACR for kernel access by the user accessors
+	 * (CONFIG_CPU_USE_DOMAINS=y), always reset the DACR kernel domain
+	 * back to client mode, whether or not \disable is set.
+	 *
+	 * If we are using SW PAN, set the DACR user domain to no access
+	 * if \disable is set.
+	 */
+	.macro	uaccess_entry, tsk, tmp0, tmp1, tmp2, disable
+	ldr	\tmp1, [\tsk, #TI_ADDR_LIMIT]
+	mov	\tmp2, #TASK_SIZE
+	str	\tmp2, [\tsk, #TI_ADDR_LIMIT]
+ DACR(	mrc	p15, 0, \tmp0, c3, c0, 0)
+ DACR(	str	\tmp0, [sp, #SVC_DACR])
+	str	\tmp1, [sp, #SVC_ADDR_LIMIT]
+	.if \disable && IS_ENABLED(CONFIG_CPU_SW_DOMAIN_PAN)
+	/* kernel=client, user=no access */
+	mov	\tmp2, #DACR_UACCESS_DISABLE
+	mcr	p15, 0, \tmp2, c3, c0, 0
+	instr_sync
+	.elseif IS_ENABLED(CONFIG_CPU_USE_DOMAINS)
+	/* kernel=client */
+	bic	\tmp2, \tmp0, #domain_mask(DOMAIN_KERNEL)
+	orr	\tmp2, \tmp2, #domain_val(DOMAIN_KERNEL, DOMAIN_CLIENT)
+	mcr	p15, 0, \tmp2, c3, c0, 0
+	instr_sync
+	.endif
+	.endm
+
+	/* Restore the user access state previously saved by uaccess_entry */
+	.macro	uaccess_exit, tsk, tmp0, tmp1
+	ldr	\tmp1, [sp, #SVC_ADDR_LIMIT]
+ DACR(	ldr	\tmp0, [sp, #SVC_DACR])
+	str	\tmp1, [\tsk, #TI_ADDR_LIMIT]
+ DACR(	mcr	p15, 0, \tmp0, c3, c0, 0)
+	.endm
+
+#undef DACR
+
+#endif /* __ASM_UACCESS_ASM_H__ */
--- linux-ein-5.4.0.orig/arch/arm/include/asm/vfpmacros.h
+++ linux-ein-5.4.0/arch/arm/include/asm/vfpmacros.h
@@ -19,23 +19,25 @@
 
 	@ read all the working registers back into the VFP
 	.macro	VFPFLDMIA, base, tmp
+	.fpu	vfpv2
 #if __LINUX_ARM_ARCH__ < 6
-	LDC	p11, cr0, [\base],#33*4		    @ FLDMIAX \base!, {d0-d15}
+	fldmiax	\base!, {d0-d15}
 #else
-	LDC	p11, cr0, [\base],#32*4		    @ FLDMIAD \base!, {d0-d15}
+	vldmia	\base!, {d0-d15}
 #endif
 #ifdef CONFIG_VFPv3
+	.fpu	vfpv3
 #if __LINUX_ARM_ARCH__ <= 6
 	ldr	\tmp, =elf_hwcap		    @ may not have MVFR regs
 	ldr	\tmp, [\tmp, #0]
 	tst	\tmp, #HWCAP_VFPD32
-	ldclne	p11, cr0, [\base],#32*4		    @ FLDMIAD \base!, {d16-d31}
+	vldmiane \base!, {d16-d31}
 	addeq	\base, \base, #32*4		    @ step over unused register space
 #else
 	VFPFMRX	\tmp, MVFR0			    @ Media and VFP Feature Register 0
 	and	\tmp, \tmp, #MVFR0_A_SIMD_MASK	    @ A_SIMD field
 	cmp	\tmp, #2			    @ 32 x 64bit registers?
-	ldcleq	p11, cr0, [\base],#32*4		    @ FLDMIAD \base!, {d16-d31}
+	vldmiaeq \base!, {d16-d31}
 	addne	\base, \base, #32*4		    @ step over unused register space
 #endif
 #endif
@@ -44,22 +46,23 @@
 	@ write all the working registers out of the VFP
 	.macro	VFPFSTMIA, base, tmp
 #if __LINUX_ARM_ARCH__ < 6
-	STC	p11, cr0, [\base],#33*4		    @ FSTMIAX \base!, {d0-d15}
+	fstmiax	\base!, {d0-d15}
 #else
-	STC	p11, cr0, [\base],#32*4		    @ FSTMIAD \base!, {d0-d15}
+	vstmia	\base!, {d0-d15}
 #endif
 #ifdef CONFIG_VFPv3
+	.fpu	vfpv3
 #if __LINUX_ARM_ARCH__ <= 6
 	ldr	\tmp, =elf_hwcap		    @ may not have MVFR regs
 	ldr	\tmp, [\tmp, #0]
 	tst	\tmp, #HWCAP_VFPD32
-	stclne	p11, cr0, [\base],#32*4		    @ FSTMIAD \base!, {d16-d31}
+	vstmiane \base!, {d16-d31}
 	addeq	\base, \base, #32*4		    @ step over unused register space
 #else
 	VFPFMRX	\tmp, MVFR0			    @ Media and VFP Feature Register 0
 	and	\tmp, \tmp, #MVFR0_A_SIMD_MASK	    @ A_SIMD field
 	cmp	\tmp, #2			    @ 32 x 64bit registers?
-	stcleq	p11, cr0, [\base],#32*4		    @ FSTMIAD \base!, {d16-d31}
+	vstmiaeq \base!, {d16-d31}
 	addne	\base, \base, #32*4		    @ step over unused register space
 #endif
 #endif
--- linux-ein-5.4.0.orig/arch/arm/kernel/Makefile
+++ linux-ein-5.4.0/arch/arm/kernel/Makefile
@@ -17,10 +17,14 @@
 # Object file lists.
 
 obj-y		:= elf.o entry-common.o irq.o opcodes.o \
-		   process.o ptrace.o reboot.o return_address.o \
+		   process.o ptrace.o reboot.o \
 		   setup.o signal.o sigreturn_codes.o \
 		   stacktrace.o sys_arm.o time.o traps.o
 
+ifneq ($(CONFIG_ARM_UNWIND),y)
+obj-$(CONFIG_FRAME_POINTER)	+= return_address.o
+endif
+
 obj-$(CONFIG_ATAGS)		+= atags_parse.o
 obj-$(CONFIG_ATAGS_PROC)	+= atags_proc.o
 obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o
@@ -102,4 +106,6 @@
 
 obj-$(CONFIG_HAVE_ARM_SMCCC)	+= smccc-call.o
 
+obj-$(CONFIG_GENERIC_CPU_VULNERABILITIES) += spectre.o
+
 extra-y := $(head-y) vmlinux.lds
--- linux-ein-5.4.0.orig/arch/arm/kernel/asm-offsets.c
+++ linux-ein-5.4.0/arch/arm/kernel/asm-offsets.c
@@ -15,6 +15,7 @@
 #include <linux/kvm_host.h>
 #endif
 #include <asm/cacheflush.h>
+#include <asm/kexec-internal.h>
 #include <asm/glue-df.h>
 #include <asm/glue-pf.h>
 #include <asm/mach/arch.h>
@@ -26,6 +27,7 @@
 #include <asm/vdso_datapage.h>
 #include <asm/hardware/cache-l2x0.h>
 #include <linux/kbuild.h>
+#include <linux/arm-smccc.h>
 #include "signal.h"
 
 /*
@@ -159,6 +161,8 @@
   DEFINE(SLEEP_SAVE_SP_PHYS,	offsetof(struct sleep_save_sp, save_ptr_stash_phys));
   DEFINE(SLEEP_SAVE_SP_VIRT,	offsetof(struct sleep_save_sp, save_ptr_stash));
 #endif
+  DEFINE(ARM_SMCCC_QUIRK_ID_OFFS,	offsetof(struct arm_smccc_quirk, id));
+  DEFINE(ARM_SMCCC_QUIRK_STATE_OFFS,	offsetof(struct arm_smccc_quirk, state));
   BLANK();
   DEFINE(DMA_BIDIRECTIONAL,	DMA_BIDIRECTIONAL);
   DEFINE(DMA_TO_DEVICE,		DMA_TO_DEVICE);
@@ -190,5 +194,9 @@
   DEFINE(MPU_RGN_PRBAR,	offsetof(struct mpu_rgn, prbar));
   DEFINE(MPU_RGN_PRLAR,	offsetof(struct mpu_rgn, prlar));
 #endif
+  DEFINE(KEXEC_START_ADDR,	offsetof(struct kexec_relocate_data, kexec_start_address));
+  DEFINE(KEXEC_INDIR_PAGE,	offsetof(struct kexec_relocate_data, kexec_indirection_page));
+  DEFINE(KEXEC_MACH_TYPE,	offsetof(struct kexec_relocate_data, kexec_mach_type));
+  DEFINE(KEXEC_R2,		offsetof(struct kexec_relocate_data, kexec_r2));
   return 0; 
 }
--- linux-ein-5.4.0.orig/arch/arm/kernel/atags.h
+++ linux-ein-5.4.0/arch/arm/kernel/atags.h
@@ -2,11 +2,11 @@
 void convert_to_tag_list(struct tag *tags);
 
 #ifdef CONFIG_ATAGS
-const struct machine_desc *setup_machine_tags(phys_addr_t __atags_pointer,
+const struct machine_desc *setup_machine_tags(void *__atags_vaddr,
 	unsigned int machine_nr);
 #else
 static inline const struct machine_desc * __init __noreturn
-setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
+setup_machine_tags(void *__atags_vaddr, unsigned int machine_nr)
 {
 	early_print("no ATAGS support: can't continue\n");
 	while (true);
--- linux-ein-5.4.0.orig/arch/arm/kernel/atags_parse.c
+++ linux-ein-5.4.0/arch/arm/kernel/atags_parse.c
@@ -176,7 +176,7 @@
 }
 
 const struct machine_desc * __init
-setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
+setup_machine_tags(void *atags_vaddr, unsigned int machine_nr)
 {
 	struct tag *tags = (struct tag *)&default_tags;
 	const struct machine_desc *mdesc = NULL, *p;
@@ -197,8 +197,8 @@
 	if (!mdesc)
 		return NULL;
 
-	if (__atags_pointer)
-		tags = phys_to_virt(__atags_pointer);
+	if (atags_vaddr)
+		tags = atags_vaddr;
 	else if (mdesc->atag_offset)
 		tags = (void *)(PAGE_OFFSET + mdesc->atag_offset);
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/bugs.c
+++ linux-ein-5.4.0/arch/arm/kernel/bugs.c
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/init.h>
+#include <linux/cpu.h>
 #include <asm/bugs.h>
 #include <asm/proc-fns.h>
 
@@ -11,7 +12,7 @@
 #endif
 }
 
-void __init check_bugs(void)
+void __init arch_cpu_finalize_init(void)
 {
 	check_writebuffer_bugs();
 	check_other_bugs();
--- linux-ein-5.4.0.orig/arch/arm/kernel/devtree.c
+++ linux-ein-5.4.0/arch/arm/kernel/devtree.c
@@ -203,12 +203,12 @@
 
 /**
  * setup_machine_fdt - Machine setup when an dtb was passed to the kernel
- * @dt_phys: physical address of dt blob
+ * @dt_virt: virtual address of dt blob
  *
  * If a dtb was passed to the kernel in r2, then use it to choose the
  * correct machine_desc and to setup the system.
  */
-const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
+const struct machine_desc * __init setup_machine_fdt(void *dt_virt)
 {
 	const struct machine_desc *mdesc, *mdesc_best = NULL;
 
@@ -221,7 +221,7 @@
 	mdesc_best = &__mach_desc_GENERIC_DT;
 #endif
 
-	if (!dt_phys || !early_init_dt_verify(phys_to_virt(dt_phys)))
+	if (!dt_virt || !early_init_dt_verify(dt_virt))
 		return NULL;
 
 	mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach);
--- linux-ein-5.4.0.orig/arch/arm/kernel/entry-armv.S
+++ linux-ein-5.4.0/arch/arm/kernel/entry-armv.S
@@ -27,6 +27,7 @@
 #include <asm/unistd.h>
 #include <asm/tls.h>
 #include <asm/system_info.h>
+#include <asm/uaccess-asm.h>
 
 #include "entry-header.S"
 #include <asm/entry-macro-multi.S>
@@ -179,15 +180,7 @@
 	stmia	r7, {r2 - r6}
 
 	get_thread_info tsk
-	ldr	r0, [tsk, #TI_ADDR_LIMIT]
-	mov	r1, #TASK_SIZE
-	str	r1, [tsk, #TI_ADDR_LIMIT]
-	str	r0, [sp, #SVC_ADDR_LIMIT]
-
-	uaccess_save r0
-	.if \uaccess
-	uaccess_disable r0
-	.endif
+	uaccess_entry tsk, r0, r1, r2, \uaccess
 
 	.if \trace
 #ifdef CONFIG_TRACE_IRQFLAGS
@@ -259,31 +252,10 @@
 #else
 	svc_entry
 #endif
-	@
-	@ call emulation code, which returns using r9 if it has emulated
-	@ the instruction, or the more conventional lr if we are to treat
-	@ this as a real undefined instruction
-	@
-	@  r0 - instruction
-	@
-#ifndef CONFIG_THUMB2_KERNEL
-	ldr	r0, [r4, #-4]
-#else
-	mov	r1, #2
-	ldrh	r0, [r4, #-2]			@ Thumb instruction at LR - 2
-	cmp	r0, #0xe800			@ 32-bit instruction if xx >= 0
-	blo	__und_svc_fault
-	ldrh	r9, [r4]			@ bottom 16 bits
-	add	r4, r4, #2
-	str	r4, [sp, #S_PC]
-	orr	r0, r9, r0, lsl #16
-#endif
-	badr	r9, __und_svc_finish
-	mov	r2, r4
-	bl	call_fpe
 
 	mov	r1, #4				@ PC correction to apply
-__und_svc_fault:
+ THUMB(	tst	r5, #PSR_T_BIT		)	@ exception taken in Thumb mode?
+ THUMB(	movne	r1, #2			)	@ if so, fix up PC correction
 	mov	r0, sp				@ struct pt_regs *regs
 	bl	__und_fault
 
@@ -624,11 +596,9 @@
 	tstne	r0, #0x04000000			@ bit 26 set on both ARM and Thumb-2
 	reteq	lr
 	and	r8, r0, #0x00000f00		@ mask out CP number
- THUMB(	lsr	r8, r8, #8		)
 	mov	r7, #1
-	add	r6, r10, #TI_USED_CP
- ARM(	strb	r7, [r6, r8, lsr #8]	)	@ set appropriate used_cp[]
- THUMB(	strb	r7, [r6, r8]		)	@ set appropriate used_cp[]
+	add	r6, r10, r8, lsr #8		@ add used_cp[] array offset first
+	strb	r7, [r6, #TI_USED_CP]		@ set appropriate used_cp[]
 #ifdef CONFIG_IWMMXT
 	@ Test if we need to give access to iWMMXt coprocessors
 	ldr	r5, [r10, #TI_FLAGS]
@@ -637,7 +607,7 @@
 	bcs	iwmmxt_task_enable
 #endif
  ARM(	add	pc, pc, r8, lsr #6	)
- THUMB(	lsl	r8, r8, #2		)
+ THUMB(	lsr	r8, r8, #6		)
  THUMB(	add	pc, r8			)
 	nop
 
@@ -1035,12 +1005,11 @@
 	sub	lr, lr, #\correction
 	.endif
 
-	@
-	@ Save r0, lr_<exception> (parent PC) and spsr_<exception>
-	@ (parent CPSR)
-	@
+	@ Save r0, lr_<exception> (parent PC)
 	stmia	sp, {r0, lr}		@ save r0, lr
-	mrs	lr, spsr
+
+	@ Save spsr_<exception> (parent CPSR)
+2:	mrs	lr, spsr
 	str	lr, [sp, #8]		@ save spsr
 
 	@
@@ -1061,6 +1030,44 @@
 	movs	pc, lr			@ branch to handler in SVC mode
 ENDPROC(vector_\name)
 
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
+	.subsection 1
+	.align 5
+vector_bhb_loop8_\name:
+	.if \correction
+	sub	lr, lr, #\correction
+	.endif
+
+	@ Save r0, lr_<exception> (parent PC)
+	stmia	sp, {r0, lr}
+
+	@ bhb workaround
+	mov	r0, #8
+3:	W(b)	. + 4
+	subs	r0, r0, #1
+	bne	3b
+	dsb
+	isb
+	b	2b
+ENDPROC(vector_bhb_loop8_\name)
+
+vector_bhb_bpiall_\name:
+	.if \correction
+	sub	lr, lr, #\correction
+	.endif
+
+	@ Save r0, lr_<exception> (parent PC)
+	stmia	sp, {r0, lr}
+
+	@ bhb workaround
+	mcr	p15, 0, r0, c7, c5, 6	@ BPIALL
+	@ isb not needed due to "movs pc, lr" in the vector stub
+	@ which gives a "context synchronisation".
+	b	2b
+ENDPROC(vector_bhb_bpiall_\name)
+	.previous
+#endif
+
 	.align	2
 	@ handler addresses follow this label
 1:
@@ -1069,6 +1076,10 @@
 	.section .stubs, "ax", %progbits
 	@ This must be the first word
 	.word	vector_swi
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
+	.word	vector_bhb_loop8_swi
+	.word	vector_bhb_bpiall_swi
+#endif
 
 vector_rst:
  ARM(	swi	SYS_ERROR0	)
@@ -1183,8 +1194,10 @@
  * FIQ "NMI" handler
  *-----------------------------------------------------------------------------
  * Handle a FIQ using the SVC stack allowing FIQ act like NMI on x86
- * systems.
+ * systems. This must be the last vector stub, so lets place it in its own
+ * subsection.
  */
+	.subsection 2
 	vector_stub	fiq, FIQ_MODE, 4
 
 	.long	__fiq_usr			@  0  (USR_26 / USR_32)
@@ -1217,6 +1230,30 @@
 	W(b)	vector_irq
 	W(b)	vector_fiq
 
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
+	.section .vectors.bhb.loop8, "ax", %progbits
+.L__vectors_bhb_loop8_start:
+	W(b)	vector_rst
+	W(b)	vector_bhb_loop8_und
+	W(ldr)	pc, .L__vectors_bhb_loop8_start + 0x1004
+	W(b)	vector_bhb_loop8_pabt
+	W(b)	vector_bhb_loop8_dabt
+	W(b)	vector_addrexcptn
+	W(b)	vector_bhb_loop8_irq
+	W(b)	vector_bhb_loop8_fiq
+
+	.section .vectors.bhb.bpiall, "ax", %progbits
+.L__vectors_bhb_bpiall_start:
+	W(b)	vector_rst
+	W(b)	vector_bhb_bpiall_und
+	W(ldr)	pc, .L__vectors_bhb_bpiall_start + 0x1008
+	W(b)	vector_bhb_bpiall_pabt
+	W(b)	vector_bhb_bpiall_dabt
+	W(b)	vector_addrexcptn
+	W(b)	vector_bhb_bpiall_irq
+	W(b)	vector_bhb_bpiall_fiq
+#endif
+
 	.data
 	.align	2
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/entry-common.S
+++ linux-ein-5.4.0/arch/arm/kernel/entry-common.S
@@ -163,12 +163,36 @@
  */
 
 	.align	5
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
+ENTRY(vector_bhb_loop8_swi)
+	sub	sp, sp, #PT_REGS_SIZE
+	stmia	sp, {r0 - r12}
+	mov	r8, #8
+1:	b	2f
+2:	subs	r8, r8, #1
+	bne	1b
+	dsb
+	isb
+	b	3f
+ENDPROC(vector_bhb_loop8_swi)
+
+	.align	5
+ENTRY(vector_bhb_bpiall_swi)
+	sub	sp, sp, #PT_REGS_SIZE
+	stmia	sp, {r0 - r12}
+	mcr	p15, 0, r8, c7, c5, 6	@ BPIALL
+	isb
+	b	3f
+ENDPROC(vector_bhb_bpiall_swi)
+#endif
+	.align	5
 ENTRY(vector_swi)
 #ifdef CONFIG_CPU_V7M
 	v7m_exception_entry
 #else
 	sub	sp, sp, #PT_REGS_SIZE
 	stmia	sp, {r0 - r12}			@ Calling r0 - r12
+3:
  ARM(	add	r8, sp, #S_PC		)
  ARM(	stmdb	r8, {sp, lr}^		)	@ Calling sp, lr
  THUMB(	mov	r8, sp			)
--- linux-ein-5.4.0.orig/arch/arm/kernel/entry-header.S
+++ linux-ein-5.4.0/arch/arm/kernel/entry-header.S
@@ -6,6 +6,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/errno.h>
 #include <asm/thread_info.h>
+#include <asm/uaccess-asm.h>
 #include <asm/v7m.h>
 
 @ Bad Abort numbers
@@ -217,9 +218,7 @@
 	blne	trace_hardirqs_off
 #endif
 	.endif
-	ldr	r1, [sp, #SVC_ADDR_LIMIT]
-	uaccess_restore
-	str	r1, [tsk, #TI_ADDR_LIMIT]
+	uaccess_exit tsk, r0, r1
 
 #ifndef CONFIG_THUMB2_KERNEL
 	@ ARM mode SVC restore
@@ -263,9 +262,7 @@
 	@ on the stack remains correct).
 	@
 	.macro  svc_exit_via_fiq
-	ldr	r1, [sp, #SVC_ADDR_LIMIT]
-	uaccess_restore
-	str	r1, [tsk, #TI_ADDR_LIMIT]
+	uaccess_exit tsk, r0, r1
 #ifndef CONFIG_THUMB2_KERNEL
 	@ ARM mode restore
 	mov	r0, sp
--- linux-ein-5.4.0.orig/arch/arm/kernel/ftrace.c
+++ linux-ein-5.4.0/arch/arm/kernel/ftrace.c
@@ -71,9 +71,10 @@
 	return 0;
 }
 
-static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
+static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
+					 bool warn)
 {
-	return arm_gen_branch_link(pc, addr);
+	return arm_gen_branch_link(pc, addr, warn);
 }
 
 static int ftrace_modify_code(unsigned long pc, unsigned long old,
@@ -112,14 +113,14 @@
 	int ret;
 
 	pc = (unsigned long)&ftrace_call;
-	new = ftrace_call_replace(pc, (unsigned long)func);
+	new = ftrace_call_replace(pc, (unsigned long)func, true);
 
 	ret = ftrace_modify_code(pc, 0, new, false);
 
 #ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS
 	if (!ret) {
 		pc = (unsigned long)&ftrace_regs_call;
-		new = ftrace_call_replace(pc, (unsigned long)func);
+		new = ftrace_call_replace(pc, (unsigned long)func, true);
 
 		ret = ftrace_modify_code(pc, 0, new, false);
 	}
@@ -132,10 +133,22 @@
 {
 	unsigned long new, old;
 	unsigned long ip = rec->ip;
+	unsigned long aaddr = adjust_address(rec, addr);
+	struct module *mod = NULL;
+
+#ifdef CONFIG_ARM_MODULE_PLTS
+	mod = rec->arch.mod;
+#endif
 
 	old = ftrace_nop_replace(rec);
 
-	new = ftrace_call_replace(ip, adjust_address(rec, addr));
+	new = ftrace_call_replace(ip, aaddr, !mod);
+#ifdef CONFIG_ARM_MODULE_PLTS
+	if (!new && mod) {
+		aaddr = get_module_plt(mod, ip, aaddr);
+		new = ftrace_call_replace(ip, aaddr, true);
+	}
+#endif
 
 	return ftrace_modify_code(rec->ip, old, new, true);
 }
@@ -148,9 +161,9 @@
 	unsigned long new, old;
 	unsigned long ip = rec->ip;
 
-	old = ftrace_call_replace(ip, adjust_address(rec, old_addr));
+	old = ftrace_call_replace(ip, adjust_address(rec, old_addr), true);
 
-	new = ftrace_call_replace(ip, adjust_address(rec, addr));
+	new = ftrace_call_replace(ip, adjust_address(rec, addr), true);
 
 	return ftrace_modify_code(rec->ip, old, new, true);
 }
@@ -160,12 +173,29 @@
 int ftrace_make_nop(struct module *mod,
 		    struct dyn_ftrace *rec, unsigned long addr)
 {
+	unsigned long aaddr = adjust_address(rec, addr);
 	unsigned long ip = rec->ip;
 	unsigned long old;
 	unsigned long new;
 	int ret;
 
-	old = ftrace_call_replace(ip, adjust_address(rec, addr));
+#ifdef CONFIG_ARM_MODULE_PLTS
+	/* mod is only supplied during module loading */
+	if (!mod)
+		mod = rec->arch.mod;
+	else
+		rec->arch.mod = mod;
+#endif
+
+	old = ftrace_call_replace(ip, aaddr,
+				  !IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || !mod);
+#ifdef CONFIG_ARM_MODULE_PLTS
+	if (!old && mod) {
+		aaddr = get_module_plt(mod, ip, aaddr);
+		old = ftrace_call_replace(ip, aaddr, true);
+	}
+#endif
+
 	new = ftrace_nop_replace(rec);
 	ret = ftrace_modify_code(ip, old, new, true);
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/head.S
+++ linux-ein-5.4.0/arch/arm/kernel/head.S
@@ -274,11 +274,10 @@
 	 * We map 2 sections in case the ATAGs/DTB crosses a section boundary.
 	 */
 	mov	r0, r2, lsr #SECTION_SHIFT
-	movs	r0, r0, lsl #SECTION_SHIFT
-	subne	r3, r0, r8
-	addne	r3, r3, #PAGE_OFFSET
-	addne	r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER)
-	orrne	r6, r7, r0
+	cmp	r2, #0
+	ldrne	r3, =FDT_FIXED_BASE >> (SECTION_SHIFT - PMD_ORDER)
+	addne	r3, r3, r4
+	orrne	r6, r7, r0, lsl #SECTION_SHIFT
 	strne	r6, [r3], #1 << PMD_ORDER
 	addne	r6, r6, #1 << SECTION_SHIFT
 	strne	r6, [r3]
@@ -672,11 +671,7 @@
 	bcc	1b
 	bx	lr
 #else
-#ifdef CONFIG_CPU_ENDIAN_BE8
-	moveq	r0, #0x00004000	@ set bit 22, mov to mvn instruction
-#else
 	moveq	r0, #0x400000	@ set bit 22, mov to mvn instruction
-#endif
 	b	2f
 1:	ldr	ip, [r7, r3]
 #ifdef CONFIG_CPU_ENDIAN_BE8
@@ -685,7 +680,7 @@
 	tst	ip, #0x000f0000	@ check the rotation field
 	orrne	ip, ip, r6, lsl #24 @ mask in offset bits 31-24
 	biceq	ip, ip, #0x00004000 @ clear bit 22
-	orreq	ip, ip, r0      @ mask in offset bits 7-0
+	orreq	ip, ip, r0, ror #8  @ mask in offset bits 7-0
 #else
 	bic	ip, ip, #0x000000ff
 	tst	ip, #0xf00	@ check the rotation field
--- linux-ein-5.4.0.orig/arch/arm/kernel/hw_breakpoint.c
+++ linux-ein-5.4.0/arch/arm/kernel/hw_breakpoint.c
@@ -623,7 +623,7 @@
 	hw->address &= ~alignment_mask;
 	hw->ctrl.len <<= offset;
 
-	if (is_default_overflow_handler(bp)) {
+	if (uses_default_overflow_handler(bp)) {
 		/*
 		 * Mismatch breakpoints are required for single-stepping
 		 * breakpoints.
@@ -680,26 +680,68 @@
 	arch_install_hw_breakpoint(bp);
 }
 
+/*
+ * Arm32 hardware does not always report a watchpoint hit address that matches
+ * one of the watchpoints set. It can also report an address "near" the
+ * watchpoint if a single instruction access both watched and unwatched
+ * addresses. There is no straight-forward way, short of disassembling the
+ * offending instruction, to map that address back to the watchpoint. This
+ * function computes the distance of the memory access from the watchpoint as a
+ * heuristic for the likelyhood that a given access triggered the watchpoint.
+ *
+ * See this same function in the arm64 platform code, which has the same
+ * problem.
+ *
+ * The function returns the distance of the address from the bytes watched by
+ * the watchpoint. In case of an exact match, it returns 0.
+ */
+static u32 get_distance_from_watchpoint(unsigned long addr, u32 val,
+					struct arch_hw_breakpoint_ctrl *ctrl)
+{
+	u32 wp_low, wp_high;
+	u32 lens, lene;
+
+	lens = __ffs(ctrl->len);
+	lene = __fls(ctrl->len);
+
+	wp_low = val + lens;
+	wp_high = val + lene;
+	if (addr < wp_low)
+		return wp_low - addr;
+	else if (addr > wp_high)
+		return addr - wp_high;
+	else
+		return 0;
+}
+
+static int watchpoint_fault_on_uaccess(struct pt_regs *regs,
+				       struct arch_hw_breakpoint *info)
+{
+	return !user_mode(regs) && info->ctrl.privilege == ARM_BREAKPOINT_USER;
+}
+
 static void watchpoint_handler(unsigned long addr, unsigned int fsr,
 			       struct pt_regs *regs)
 {
-	int i, access;
-	u32 val, ctrl_reg, alignment_mask;
+	int i, access, closest_match = 0;
+	u32 min_dist = -1, dist;
+	u32 val, ctrl_reg;
 	struct perf_event *wp, **slots;
 	struct arch_hw_breakpoint *info;
 	struct arch_hw_breakpoint_ctrl ctrl;
 
 	slots = this_cpu_ptr(wp_on_reg);
 
+	/*
+	 * Find all watchpoints that match the reported address. If no exact
+	 * match is found. Attribute the hit to the closest watchpoint.
+	 */
+	rcu_read_lock();
 	for (i = 0; i < core_num_wrps; ++i) {
-		rcu_read_lock();
-
 		wp = slots[i];
-
 		if (wp == NULL)
-			goto unlock;
+			continue;
 
-		info = counter_arch_bp(wp);
 		/*
 		 * The DFAR is an unknown value on debug architectures prior
 		 * to 7.1. Since we only allow a single watchpoint on these
@@ -708,50 +750,69 @@
 		 */
 		if (debug_arch < ARM_DEBUG_ARCH_V7_1) {
 			BUG_ON(i > 0);
+			info = counter_arch_bp(wp);
 			info->trigger = wp->attr.bp_addr;
 		} else {
-			if (info->ctrl.len == ARM_BREAKPOINT_LEN_8)
-				alignment_mask = 0x7;
-			else
-				alignment_mask = 0x3;
-
-			/* Check if the watchpoint value matches. */
-			val = read_wb_reg(ARM_BASE_WVR + i);
-			if (val != (addr & ~alignment_mask))
-				goto unlock;
-
-			/* Possible match, check the byte address select. */
-			ctrl_reg = read_wb_reg(ARM_BASE_WCR + i);
-			decode_ctrl_reg(ctrl_reg, &ctrl);
-			if (!((1 << (addr & alignment_mask)) & ctrl.len))
-				goto unlock;
-
 			/* Check that the access type matches. */
 			if (debug_exception_updates_fsr()) {
 				access = (fsr & ARM_FSR_ACCESS_MASK) ?
 					  HW_BREAKPOINT_W : HW_BREAKPOINT_R;
 				if (!(access & hw_breakpoint_type(wp)))
-					goto unlock;
+					continue;
+			}
+
+			val = read_wb_reg(ARM_BASE_WVR + i);
+			ctrl_reg = read_wb_reg(ARM_BASE_WCR + i);
+			decode_ctrl_reg(ctrl_reg, &ctrl);
+			dist = get_distance_from_watchpoint(addr, val, &ctrl);
+			if (dist < min_dist) {
+				min_dist = dist;
+				closest_match = i;
 			}
+			/* Is this an exact match? */
+			if (dist != 0)
+				continue;
 
 			/* We have a winner. */
+			info = counter_arch_bp(wp);
 			info->trigger = addr;
 		}
 
 		pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
+
+		/*
+		 * If we triggered a user watchpoint from a uaccess routine,
+		 * then handle the stepping ourselves since userspace really
+		 * can't help us with this.
+		 */
+		if (watchpoint_fault_on_uaccess(regs, info))
+			goto step;
+
 		perf_bp_event(wp, regs);
 
 		/*
-		 * If no overflow handler is present, insert a temporary
-		 * mismatch breakpoint so we can single-step over the
-		 * watchpoint trigger.
+		 * Defer stepping to the overflow handler if one is installed.
+		 * Otherwise, insert a temporary mismatch breakpoint so that
+		 * we can single-step over the watchpoint trigger.
 		 */
-		if (is_default_overflow_handler(wp))
-			enable_single_step(wp, instruction_pointer(regs));
+		if (!uses_default_overflow_handler(wp))
+			continue;
+step:
+		enable_single_step(wp, instruction_pointer(regs));
+	}
 
-unlock:
-		rcu_read_unlock();
+	if (min_dist > 0 && min_dist != -1) {
+		/* No exact match found. */
+		wp = slots[closest_match];
+		info = counter_arch_bp(wp);
+		info->trigger = addr;
+		pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
+		perf_bp_event(wp, regs);
+		if (uses_default_overflow_handler(wp))
+			enable_single_step(wp, instruction_pointer(regs));
 	}
+
+	rcu_read_unlock();
 }
 
 static void watchpoint_single_step_handler(unsigned long pc)
@@ -822,7 +883,7 @@
 			info->trigger = addr;
 			pr_debug("breakpoint fired: address = 0x%x\n", addr);
 			perf_bp_event(bp, regs);
-			if (!bp->overflow_handler)
+			if (uses_default_overflow_handler(bp))
 				enable_single_step(bp, addr);
 			goto unlock;
 		}
--- linux-ein-5.4.0.orig/arch/arm/kernel/hyp-stub.S
+++ linux-ein-5.4.0/arch/arm/kernel/hyp-stub.S
@@ -146,10 +146,9 @@
 #if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
 	@ make CNTP_* and CNTPCT accessible from PL1
 	mrc	p15, 0, r7, c0, c1, 1	@ ID_PFR1
-	lsr	r7, #16
-	and	r7, #0xf
-	cmp	r7, #1
-	bne	1f
+	ubfx	r7, r7, #16, #4
+	teq	r7, #0
+	beq	1f
 	mrc	p15, 4, r7, c14, c1, 0	@ CNTHCTL
 	orr	r7, r7, #3		@ PL1PCEN | PL1PCTEN
 	mcr	p15, 4, r7, c14, c1, 0	@ CNTHCTL
--- linux-ein-5.4.0.orig/arch/arm/kernel/insn.c
+++ linux-ein-5.4.0/arch/arm/kernel/insn.c
@@ -3,8 +3,9 @@
 #include <linux/kernel.h>
 #include <asm/opcodes.h>
 
-static unsigned long
-__arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
+static unsigned long __arm_gen_branch_thumb2(unsigned long pc,
+					     unsigned long addr, bool link,
+					     bool warn)
 {
 	unsigned long s, j1, j2, i1, i2, imm10, imm11;
 	unsigned long first, second;
@@ -12,7 +13,7 @@
 
 	offset = (long)addr - (long)(pc + 4);
 	if (offset < -16777216 || offset > 16777214) {
-		WARN_ON_ONCE(1);
+		WARN_ON_ONCE(warn);
 		return 0;
 	}
 
@@ -33,8 +34,8 @@
 	return __opcode_thumb32_compose(first, second);
 }
 
-static unsigned long
-__arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
+static unsigned long __arm_gen_branch_arm(unsigned long pc, unsigned long addr,
+					  bool link, bool warn)
 {
 	unsigned long opcode = 0xea000000;
 	long offset;
@@ -44,7 +45,7 @@
 
 	offset = (long)addr - (long)(pc + 8);
 	if (unlikely(offset < -33554432 || offset > 33554428)) {
-		WARN_ON_ONCE(1);
+		WARN_ON_ONCE(warn);
 		return 0;
 	}
 
@@ -54,10 +55,10 @@
 }
 
 unsigned long
-__arm_gen_branch(unsigned long pc, unsigned long addr, bool link)
+__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn)
 {
 	if (IS_ENABLED(CONFIG_THUMB2_KERNEL))
-		return __arm_gen_branch_thumb2(pc, addr, link);
+		return __arm_gen_branch_thumb2(pc, addr, link, warn);
 	else
-		return __arm_gen_branch_arm(pc, addr, link);
+		return __arm_gen_branch_arm(pc, addr, link, warn);
 }
--- linux-ein-5.4.0.orig/arch/arm/kernel/iwmmxt.S
+++ linux-ein-5.4.0/arch/arm/kernel/iwmmxt.S
@@ -16,6 +16,7 @@
 #include <asm/thread_info.h>
 #include <asm/asm-offsets.h>
 #include <asm/assembler.h>
+#include "iwmmxt.h"
 
 #if defined(CONFIG_CPU_PJ4) || defined(CONFIG_CPU_PJ4B)
 #define PJ4(code...)		code
@@ -113,33 +114,33 @@
 
 concan_dump:
 
-	wstrw	wCSSF, [r1, #MMX_WCSSF]
-	wstrw	wCASF, [r1, #MMX_WCASF]
-	wstrw	wCGR0, [r1, #MMX_WCGR0]
-	wstrw	wCGR1, [r1, #MMX_WCGR1]
-	wstrw	wCGR2, [r1, #MMX_WCGR2]
-	wstrw	wCGR3, [r1, #MMX_WCGR3]
+	wstrw	wCSSF, r1, MMX_WCSSF
+	wstrw	wCASF, r1, MMX_WCASF
+	wstrw	wCGR0, r1, MMX_WCGR0
+	wstrw	wCGR1, r1, MMX_WCGR1
+	wstrw	wCGR2, r1, MMX_WCGR2
+	wstrw	wCGR3, r1, MMX_WCGR3
 
 1:	@ MUP? wRn
 	tst	r2, #0x2
 	beq	2f
 
-	wstrd	wR0,  [r1, #MMX_WR0]
-	wstrd	wR1,  [r1, #MMX_WR1]
-	wstrd	wR2,  [r1, #MMX_WR2]
-	wstrd	wR3,  [r1, #MMX_WR3]
-	wstrd	wR4,  [r1, #MMX_WR4]
-	wstrd	wR5,  [r1, #MMX_WR5]
-	wstrd	wR6,  [r1, #MMX_WR6]
-	wstrd	wR7,  [r1, #MMX_WR7]
-	wstrd	wR8,  [r1, #MMX_WR8]
-	wstrd	wR9,  [r1, #MMX_WR9]
-	wstrd	wR10, [r1, #MMX_WR10]
-	wstrd	wR11, [r1, #MMX_WR11]
-	wstrd	wR12, [r1, #MMX_WR12]
-	wstrd	wR13, [r1, #MMX_WR13]
-	wstrd	wR14, [r1, #MMX_WR14]
-	wstrd	wR15, [r1, #MMX_WR15]
+	wstrd	wR0,  r1, MMX_WR0
+	wstrd	wR1,  r1, MMX_WR1
+	wstrd	wR2,  r1, MMX_WR2
+	wstrd	wR3,  r1, MMX_WR3
+	wstrd	wR4,  r1, MMX_WR4
+	wstrd	wR5,  r1, MMX_WR5
+	wstrd	wR6,  r1, MMX_WR6
+	wstrd	wR7,  r1, MMX_WR7
+	wstrd	wR8,  r1, MMX_WR8
+	wstrd	wR9,  r1, MMX_WR9
+	wstrd	wR10, r1, MMX_WR10
+	wstrd	wR11, r1, MMX_WR11
+	wstrd	wR12, r1, MMX_WR12
+	wstrd	wR13, r1, MMX_WR13
+	wstrd	wR14, r1, MMX_WR14
+	wstrd	wR15, r1, MMX_WR15
 
 2:	teq	r0, #0				@ anything to load?
 	reteq	lr				@ if not, return
@@ -147,30 +148,30 @@
 concan_load:
 
 	@ Load wRn
-	wldrd	wR0,  [r0, #MMX_WR0]
-	wldrd	wR1,  [r0, #MMX_WR1]
-	wldrd	wR2,  [r0, #MMX_WR2]
-	wldrd	wR3,  [r0, #MMX_WR3]
-	wldrd	wR4,  [r0, #MMX_WR4]
-	wldrd	wR5,  [r0, #MMX_WR5]
-	wldrd	wR6,  [r0, #MMX_WR6]
-	wldrd	wR7,  [r0, #MMX_WR7]
-	wldrd	wR8,  [r0, #MMX_WR8]
-	wldrd	wR9,  [r0, #MMX_WR9]
-	wldrd	wR10, [r0, #MMX_WR10]
-	wldrd	wR11, [r0, #MMX_WR11]
-	wldrd	wR12, [r0, #MMX_WR12]
-	wldrd	wR13, [r0, #MMX_WR13]
-	wldrd	wR14, [r0, #MMX_WR14]
-	wldrd	wR15, [r0, #MMX_WR15]
+	wldrd	wR0,  r0, MMX_WR0
+	wldrd	wR1,  r0, MMX_WR1
+	wldrd	wR2,  r0, MMX_WR2
+	wldrd	wR3,  r0, MMX_WR3
+	wldrd	wR4,  r0, MMX_WR4
+	wldrd	wR5,  r0, MMX_WR5
+	wldrd	wR6,  r0, MMX_WR6
+	wldrd	wR7,  r0, MMX_WR7
+	wldrd	wR8,  r0, MMX_WR8
+	wldrd	wR9,  r0, MMX_WR9
+	wldrd	wR10, r0, MMX_WR10
+	wldrd	wR11, r0, MMX_WR11
+	wldrd	wR12, r0, MMX_WR12
+	wldrd	wR13, r0, MMX_WR13
+	wldrd	wR14, r0, MMX_WR14
+	wldrd	wR15, r0, MMX_WR15
 
 	@ Load wCx
-	wldrw	wCSSF, [r0, #MMX_WCSSF]
-	wldrw	wCASF, [r0, #MMX_WCASF]
-	wldrw	wCGR0, [r0, #MMX_WCGR0]
-	wldrw	wCGR1, [r0, #MMX_WCGR1]
-	wldrw	wCGR2, [r0, #MMX_WCGR2]
-	wldrw	wCGR3, [r0, #MMX_WCGR3]
+	wldrw	wCSSF, r0, MMX_WCSSF
+	wldrw	wCASF, r0, MMX_WCASF
+	wldrw	wCGR0, r0, MMX_WCGR0
+	wldrw	wCGR1, r0, MMX_WCGR1
+	wldrw	wCGR2, r0, MMX_WCGR2
+	wldrw	wCGR3, r0, MMX_WCGR3
 
 	@ clear CUP/MUP (only if r1 != 0)
 	teq	r1, #0
--- linux-ein-5.4.0.orig/arch/arm/kernel/iwmmxt.h
+++ linux-ein-5.4.0/arch/arm/kernel/iwmmxt.h
@@ -0,0 +1,47 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef __IWMMXT_H__
+#define __IWMMXT_H__
+
+.irp b, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
+.set .LwR\b, \b
+.set .Lr\b, \b
+.endr
+
+.set .LwCSSF, 0x2
+.set .LwCASF, 0x3
+.set .LwCGR0, 0x8
+.set .LwCGR1, 0x9
+.set .LwCGR2, 0xa
+.set .LwCGR3, 0xb
+
+.macro wldrd, reg:req, base:req, offset:req
+.inst 0xedd00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
+.endm
+
+.macro wldrw, reg:req, base:req, offset:req
+.inst 0xfd900100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
+.endm
+
+.macro wstrd, reg:req, base:req, offset:req
+.inst 0xedc00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
+.endm
+
+.macro wstrw, reg:req, base:req, offset:req
+.inst 0xfd800100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
+.endm
+
+#ifdef __clang__
+
+#define wCon c1
+
+.macro tmrc, dest:req, control:req
+mrc p1, 0, \dest, \control, c0, 0
+.endm
+
+.macro tmcr, control:req, src:req
+mcr p1, 0, \src, \control, c0, 0
+.endm
+#endif
+
+#endif
--- linux-ein-5.4.0.orig/arch/arm/kernel/kgdb.c
+++ linux-ein-5.4.0/arch/arm/kernel/kgdb.c
@@ -154,22 +154,38 @@
 	return 0;
 }
 
-static struct undef_hook kgdb_brkpt_hook = {
+static struct undef_hook kgdb_brkpt_arm_hook = {
 	.instr_mask		= 0xffffffff,
 	.instr_val		= KGDB_BREAKINST,
-	.cpsr_mask		= MODE_MASK,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
 	.cpsr_val		= SVC_MODE,
 	.fn			= kgdb_brk_fn
 };
 
-static struct undef_hook kgdb_compiled_brkpt_hook = {
+static struct undef_hook kgdb_brkpt_thumb_hook = {
+	.instr_mask		= 0xffff,
+	.instr_val		= KGDB_BREAKINST & 0xffff,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
+	.cpsr_val		= PSR_T_BIT | SVC_MODE,
+	.fn			= kgdb_brk_fn
+};
+
+static struct undef_hook kgdb_compiled_brkpt_arm_hook = {
 	.instr_mask		= 0xffffffff,
 	.instr_val		= KGDB_COMPILED_BREAK,
-	.cpsr_mask		= MODE_MASK,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
 	.cpsr_val		= SVC_MODE,
 	.fn			= kgdb_compiled_brk_fn
 };
 
+static struct undef_hook kgdb_compiled_brkpt_thumb_hook = {
+	.instr_mask		= 0xffff,
+	.instr_val		= KGDB_COMPILED_BREAK & 0xffff,
+	.cpsr_mask		= PSR_T_BIT | MODE_MASK,
+	.cpsr_val		= PSR_T_BIT | SVC_MODE,
+	.fn			= kgdb_compiled_brk_fn
+};
+
 static int __kgdb_notify(struct die_args *args, unsigned long cmd)
 {
 	struct pt_regs *regs = args->regs;
@@ -210,8 +226,10 @@
 	if (ret != 0)
 		return ret;
 
-	register_undef_hook(&kgdb_brkpt_hook);
-	register_undef_hook(&kgdb_compiled_brkpt_hook);
+	register_undef_hook(&kgdb_brkpt_arm_hook);
+	register_undef_hook(&kgdb_brkpt_thumb_hook);
+	register_undef_hook(&kgdb_compiled_brkpt_arm_hook);
+	register_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
 
 	return 0;
 }
@@ -224,8 +242,10 @@
  */
 void kgdb_arch_exit(void)
 {
-	unregister_undef_hook(&kgdb_brkpt_hook);
-	unregister_undef_hook(&kgdb_compiled_brkpt_hook);
+	unregister_undef_hook(&kgdb_brkpt_arm_hook);
+	unregister_undef_hook(&kgdb_brkpt_thumb_hook);
+	unregister_undef_hook(&kgdb_compiled_brkpt_arm_hook);
+	unregister_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
 	unregister_die_notifier(&kgdb_notifier);
 }
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/machine_kexec.c
+++ linux-ein-5.4.0/arch/arm/kernel/machine_kexec.c
@@ -15,6 +15,7 @@
 #include <asm/pgalloc.h>
 #include <asm/mmu_context.h>
 #include <asm/cacheflush.h>
+#include <asm/kexec-internal.h>
 #include <asm/fncpy.h>
 #include <asm/mach-types.h>
 #include <asm/smp_plat.h>
@@ -24,11 +25,6 @@
 extern void relocate_new_kernel(void);
 extern const unsigned int relocate_new_kernel_size;
 
-extern unsigned long kexec_start_address;
-extern unsigned long kexec_indirection_page;
-extern unsigned long kexec_mach_type;
-extern unsigned long kexec_boot_atags;
-
 static atomic_t waiting_for_crash_ipi;
 
 /*
@@ -161,6 +157,7 @@
 void machine_kexec(struct kimage *image)
 {
 	unsigned long page_list, reboot_entry_phys;
+	struct kexec_relocate_data *data;
 	void (*reboot_entry)(void);
 	void *reboot_code_buffer;
 
@@ -176,18 +173,17 @@
 
 	reboot_code_buffer = page_address(image->control_code_page);
 
-	/* Prepare parameters for reboot_code_buffer*/
-	set_kernel_text_rw();
-	kexec_start_address = image->start;
-	kexec_indirection_page = page_list;
-	kexec_mach_type = machine_arch_type;
-	kexec_boot_atags = image->arch.kernel_r2;
-
 	/* copy our kernel relocation code to the control code page */
 	reboot_entry = fncpy(reboot_code_buffer,
 			     &relocate_new_kernel,
 			     relocate_new_kernel_size);
 
+	data = reboot_code_buffer + relocate_new_kernel_size;
+	data->kexec_start_address = image->start;
+	data->kexec_indirection_page = page_list;
+	data->kexec_mach_type = machine_arch_type;
+	data->kexec_r2 = image->arch.kernel_r2;
+
 	/* get the identity mapping physical address for the reboot code */
 	reboot_entry_phys = virt_to_idmap(reboot_entry);
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/module-plts.c
+++ linux-ein-5.4.0/arch/arm/kernel/module-plts.c
@@ -4,6 +4,7 @@
  */
 
 #include <linux/elf.h>
+#include <linux/ftrace.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sort.h>
@@ -11,10 +12,6 @@
 #include <asm/cache.h>
 #include <asm/opcodes.h>
 
-#define PLT_ENT_STRIDE		L1_CACHE_BYTES
-#define PLT_ENT_COUNT		(PLT_ENT_STRIDE / sizeof(u32))
-#define PLT_ENT_SIZE		(sizeof(struct plt_entries) / PLT_ENT_COUNT)
-
 #ifdef CONFIG_THUMB2_KERNEL
 #define PLT_ENT_LDR		__opcode_to_mem_thumb32(0xf8dff000 | \
 							(PLT_ENT_STRIDE - 4))
@@ -23,9 +20,11 @@
 						    (PLT_ENT_STRIDE - 8))
 #endif
 
-struct plt_entries {
-	u32	ldr[PLT_ENT_COUNT];
-	u32	lit[PLT_ENT_COUNT];
+static const u32 fixed_plts[] = {
+#ifdef CONFIG_DYNAMIC_FTRACE
+	FTRACE_ADDR,
+	MCOUNT_ADDR,
+#endif
 };
 
 static bool in_init(const struct module *mod, unsigned long loc)
@@ -33,14 +32,40 @@
 	return loc - (u32)mod->init_layout.base < mod->init_layout.size;
 }
 
+static void prealloc_fixed(struct mod_plt_sec *pltsec, struct plt_entries *plt)
+{
+	int i;
+
+	if (!ARRAY_SIZE(fixed_plts) || pltsec->plt_count)
+		return;
+	pltsec->plt_count = ARRAY_SIZE(fixed_plts);
+
+	for (i = 0; i < ARRAY_SIZE(plt->ldr); ++i)
+		plt->ldr[i] = PLT_ENT_LDR;
+
+	BUILD_BUG_ON(sizeof(fixed_plts) > sizeof(plt->lit));
+	memcpy(plt->lit, fixed_plts, sizeof(fixed_plts));
+}
+
 u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
 {
 	struct mod_plt_sec *pltsec = !in_init(mod, loc) ? &mod->arch.core :
 							  &mod->arch.init;
+	struct plt_entries *plt;
+	int idx;
+
+	/* cache the address, ELF header is available only during module load */
+	if (!pltsec->plt_ent)
+		pltsec->plt_ent = (struct plt_entries *)pltsec->plt->sh_addr;
+	plt = pltsec->plt_ent;
 
-	struct plt_entries *plt = (struct plt_entries *)pltsec->plt->sh_addr;
-	int idx = 0;
+	prealloc_fixed(pltsec, plt);
+
+	for (idx = 0; idx < ARRAY_SIZE(fixed_plts); ++idx)
+		if (plt->lit[idx] == val)
+			return (u32)&plt->ldr[idx];
 
+	idx = 0;
 	/*
 	 * Look for an existing entry pointing to 'val'. Given that the
 	 * relocations are sorted, this will be the last entry we allocated.
@@ -188,8 +213,8 @@
 int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs,
 			      char *secstrings, struct module *mod)
 {
-	unsigned long core_plts = 0;
-	unsigned long init_plts = 0;
+	unsigned long core_plts = ARRAY_SIZE(fixed_plts);
+	unsigned long init_plts = ARRAY_SIZE(fixed_plts);
 	Elf32_Shdr *s, *sechdrs_end = sechdrs + ehdr->e_shnum;
 	Elf32_Sym *syms = NULL;
 
@@ -244,6 +269,7 @@
 	mod->arch.core.plt->sh_size = round_up(core_plts * PLT_ENT_SIZE,
 					       sizeof(struct plt_entries));
 	mod->arch.core.plt_count = 0;
+	mod->arch.core.plt_ent = NULL;
 
 	mod->arch.init.plt->sh_type = SHT_NOBITS;
 	mod->arch.init.plt->sh_flags = SHF_EXECINSTR | SHF_ALLOC;
@@ -251,6 +277,7 @@
 	mod->arch.init.plt->sh_size = round_up(init_plts * PLT_ENT_SIZE,
 					       sizeof(struct plt_entries));
 	mod->arch.init.plt_count = 0;
+	mod->arch.init.plt_ent = NULL;
 
 	pr_debug("%s: plt=%x, init.plt=%x\n", __func__,
 		 mod->arch.core.plt->sh_size, mod->arch.init.plt->sh_size);
--- linux-ein-5.4.0.orig/arch/arm/kernel/perf_callchain.c
+++ linux-ein-5.4.0/arch/arm/kernel/perf_callchain.c
@@ -62,9 +62,10 @@
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct frame_tail __user *tail;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -98,9 +99,10 @@
 void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -111,18 +113,21 @@
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
--- linux-ein-5.4.0.orig/arch/arm/kernel/perf_event_v7.c
+++ linux-ein-5.4.0/arch/arm/kernel/perf_event_v7.c
@@ -773,10 +773,10 @@
 		pr_err("CPU%u writing wrong counter %d\n",
 			smp_processor_id(), idx);
 	} else if (idx == ARMV7_IDX_CYCLE_COUNTER) {
-		asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value));
+		asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" ((u32)value));
 	} else {
 		armv7_pmnc_select_counter(idx);
-		asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (value));
+		asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" ((u32)value));
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/process.c
+++ linux-ein-5.4.0/arch/arm/kernel/process.c
@@ -224,8 +224,8 @@
 asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
 
 int
-copy_thread(unsigned long clone_flags, unsigned long stack_start,
-	    unsigned long stk_sz, struct task_struct *p)
+copy_thread_tls(unsigned long clone_flags, unsigned long stack_start,
+	    unsigned long stk_sz, struct task_struct *p, unsigned long tls)
 {
 	struct thread_info *thread = task_thread_info(p);
 	struct pt_regs *childregs = task_pt_regs(p);
@@ -259,7 +259,7 @@
 	clear_ptrace_hw_breakpoint(p);
 
 	if (clone_flags & CLONE_SETTLS)
-		thread->tp_value[0] = childregs->ARM_r3;
+		thread->tp_value[0] = tls;
 	thread->tp_value[1] = get_tpuser();
 
 	thread_notify(THREAD_NOTIFY_COPY, thread);
--- linux-ein-5.4.0.orig/arch/arm/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/arm/kernel/ptrace.c
@@ -219,8 +219,8 @@
 };
 
 static struct undef_hook thumb_break_hook = {
-	.instr_mask	= 0xffff,
-	.instr_val	= 0xde01,
+	.instr_mask	= 0xffffffff,
+	.instr_val	= 0x0000de01,
 	.cpsr_mask	= PSR_T_BIT,
 	.cpsr_val	= PSR_T_BIT,
 	.fn		= break_trap,
--- linux-ein-5.4.0.orig/arch/arm/kernel/relocate_kernel.S
+++ linux-ein-5.4.0/arch/arm/kernel/relocate_kernel.S
@@ -5,14 +5,16 @@
 
 #include <linux/linkage.h>
 #include <asm/assembler.h>
+#include <asm/asm-offsets.h>
 #include <asm/kexec.h>
 
 	.align	3	/* not needed for this code, but keeps fncpy() happy */
 
 ENTRY(relocate_new_kernel)
 
-	ldr	r0,kexec_indirection_page
-	ldr	r1,kexec_start_address
+	adr	r7, relocate_new_kernel_end
+	ldr	r0, [r7, #KEXEC_INDIR_PAGE]
+	ldr	r1, [r7, #KEXEC_START_ADDR]
 
 	/*
 	 * If there is no indirection page (we are doing crashdumps)
@@ -57,34 +59,16 @@
 
 2:
 	/* Jump to relocated kernel */
-	mov lr,r1
-	mov r0,#0
-	ldr r1,kexec_mach_type
-	ldr r2,kexec_boot_atags
- ARM(	ret lr	)
- THUMB(	bx lr		)
-
-	.align
-
-	.globl kexec_start_address
-kexec_start_address:
-	.long	0x0
-
-	.globl kexec_indirection_page
-kexec_indirection_page:
-	.long	0x0
-
-	.globl kexec_mach_type
-kexec_mach_type:
-	.long	0x0
-
-	/* phy addr of the atags for the new kernel */
-	.globl kexec_boot_atags
-kexec_boot_atags:
-	.long	0x0
+	mov	lr, r1
+	mov	r0, #0
+	ldr	r1, [r7, #KEXEC_MACH_TYPE]
+	ldr	r2, [r7, #KEXEC_R2]
+ ARM(	ret	lr	)
+ THUMB(	bx	lr	)
 
 ENDPROC(relocate_new_kernel)
 
+	.align	3
 relocate_new_kernel_end:
 
 	.globl relocate_new_kernel_size
--- linux-ein-5.4.0.orig/arch/arm/kernel/return_address.c
+++ linux-ein-5.4.0/arch/arm/kernel/return_address.c
@@ -7,8 +7,6 @@
  */
 #include <linux/export.h>
 #include <linux/ftrace.h>
-
-#if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND)
 #include <linux/sched.h>
 
 #include <asm/stacktrace.h>
@@ -53,6 +51,4 @@
 		return NULL;
 }
 
-#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) */
-
 EXPORT_SYMBOL_GPL(return_address);
--- linux-ein-5.4.0.orig/arch/arm/kernel/setup.c
+++ linux-ein-5.4.0/arch/arm/kernel/setup.c
@@ -18,6 +18,7 @@
 #include <linux/of_platform.h>
 #include <linux/init.h>
 #include <linux/kexec.h>
+#include <linux/libfdt.h>
 #include <linux/of_fdt.h>
 #include <linux/cpu.h>
 #include <linux/interrupt.h>
@@ -543,9 +544,11 @@
 	 * In Thumb-2, msr with an immediate value is not allowed.
 	 */
 #ifdef CONFIG_THUMB2_KERNEL
-#define PLC	"r"
+#define PLC_l	"l"
+#define PLC_r	"r"
 #else
-#define PLC	"I"
+#define PLC_l	"I"
+#define PLC_r	"I"
 #endif
 
 	/*
@@ -567,15 +570,15 @@
 	"msr	cpsr_c, %9"
 	    :
 	    : "r" (stk),
-	      PLC (PSR_F_BIT | PSR_I_BIT | IRQ_MODE),
+	      PLC_r (PSR_F_BIT | PSR_I_BIT | IRQ_MODE),
 	      "I" (offsetof(struct stack, irq[0])),
-	      PLC (PSR_F_BIT | PSR_I_BIT | ABT_MODE),
+	      PLC_r (PSR_F_BIT | PSR_I_BIT | ABT_MODE),
 	      "I" (offsetof(struct stack, abt[0])),
-	      PLC (PSR_F_BIT | PSR_I_BIT | UND_MODE),
+	      PLC_r (PSR_F_BIT | PSR_I_BIT | UND_MODE),
 	      "I" (offsetof(struct stack, und[0])),
-	      PLC (PSR_F_BIT | PSR_I_BIT | FIQ_MODE),
+	      PLC_r (PSR_F_BIT | PSR_I_BIT | FIQ_MODE),
 	      "I" (offsetof(struct stack, fiq[0])),
-	      PLC (PSR_F_BIT | PSR_I_BIT | SVC_MODE)
+	      PLC_l (PSR_F_BIT | PSR_I_BIT | SVC_MODE)
 	    : "r14");
 #endif
 }
@@ -1075,19 +1078,27 @@
 
 void __init setup_arch(char **cmdline_p)
 {
-	const struct machine_desc *mdesc;
+	const struct machine_desc *mdesc = NULL;
+	void *atags_vaddr = NULL;
+
+	if (__atags_pointer)
+		atags_vaddr = FDT_VIRT_BASE(__atags_pointer);
 
 	setup_processor();
-	mdesc = setup_machine_fdt(__atags_pointer);
+	if (atags_vaddr) {
+		mdesc = setup_machine_fdt(atags_vaddr);
+		if (mdesc)
+			memblock_reserve(__atags_pointer,
+					 fdt_totalsize(atags_vaddr));
+	}
 	if (!mdesc)
-		mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
+		mdesc = setup_machine_tags(atags_vaddr, __machine_arch_type);
 	if (!mdesc) {
 		early_print("\nError: invalid dtb and unrecognized/unsupported machine ID\n");
 		early_print("  r1=0x%08x, r2=0x%08x\n", __machine_arch_type,
 			    __atags_pointer);
 		if (__atags_pointer)
-			early_print("  r2[]=%*ph\n", 16,
-				    phys_to_virt(__atags_pointer));
+			early_print("  r2[]=%*ph\n", 16, atags_vaddr);
 		dump_machine_table();
 	}
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/signal.c
+++ linux-ein-5.4.0/arch/arm/kernel/signal.c
@@ -694,18 +694,20 @@
 
 	addr = page_address(page);
 
+	/* Poison the entire page */
+	memset32(addr, __opcode_to_mem_arm(0xe7fddef1),
+		 PAGE_SIZE / sizeof(u32));
+
 	/* Give the signal return code some randomness */
 	offset = 0x200 + (get_random_int() & 0x7fc);
 	signal_return_offset = offset;
 
-	/*
-	 * Copy signal return handlers into the vector page, and
-	 * set sigreturn to be a pointer to these.
-	 */
+	/* Copy signal return handlers into the page */
 	memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
 
-	ptr = (unsigned long)addr + offset;
-	flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
+	/* Flush out all instructions in this page */
+	ptr = (unsigned long)addr;
+	flush_icache_range(ptr, ptr + PAGE_SIZE);
 
 	return page;
 }
--- linux-ein-5.4.0.orig/arch/arm/kernel/smccc-call.S
+++ linux-ein-5.4.0/arch/arm/kernel/smccc-call.S
@@ -3,7 +3,9 @@
  * Copyright (c) 2015, Linaro Limited
  */
 #include <linux/linkage.h>
+#include <linux/arm-smccc.h>
 
+#include <asm/asm-offsets.h>
 #include <asm/opcodes-sec.h>
 #include <asm/opcodes-virt.h>
 #include <asm/unwind.h>
@@ -27,7 +29,14 @@
 UNWIND(	.save	{r4-r7})
 	ldm	r12, {r4-r7}
 	\instr
-	pop	{r4-r7}
+	ldr	r4, [sp, #36]
+	cmp	r4, #0
+	beq	1f			// No quirk structure
+	ldr     r5, [r4, #ARM_SMCCC_QUIRK_ID_OFFS]
+	cmp     r5, #ARM_SMCCC_QUIRK_QCOM_A6
+	bne	1f			// No quirk present
+	str	r6, [r4, #ARM_SMCCC_QUIRK_STATE_OFFS]
+1:	pop	{r4-r7}
 	ldr	r12, [sp, #(4 * 4)]
 	stm	r12, {r0-r3}
 	bx	lr
--- linux-ein-5.4.0.orig/arch/arm/kernel/smp.c
+++ linux-ein-5.4.0/arch/arm/kernel/smp.c
@@ -240,6 +240,10 @@
 	if (ret)
 		return ret;
 
+#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY
+	remove_cpu_topology(cpu);
+#endif
+
 	/*
 	 * Take this CPU offline.  Once we clear this, we can't return,
 	 * and we must not schedule until we're ready to give up the cpu.
--- linux-ein-5.4.0.orig/arch/arm/kernel/spectre.c
+++ linux-ein-5.4.0/arch/arm/kernel/spectre.c
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <linux/bpf.h>
+#include <linux/cpu.h>
+#include <linux/device.h>
+
+#include <asm/spectre.h>
+
+static bool _unprivileged_ebpf_enabled(void)
+{
+#ifdef CONFIG_BPF_SYSCALL
+	return !sysctl_unprivileged_bpf_disabled;
+#else
+	return false;
+#endif
+}
+
+ssize_t cpu_show_spectre_v1(struct device *dev, struct device_attribute *attr,
+			    char *buf)
+{
+	return sprintf(buf, "Mitigation: __user pointer sanitization\n");
+}
+
+static unsigned int spectre_v2_state;
+static unsigned int spectre_v2_methods;
+
+void spectre_v2_update_state(unsigned int state, unsigned int method)
+{
+	if (state > spectre_v2_state)
+		spectre_v2_state = state;
+	spectre_v2_methods |= method;
+}
+
+ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr,
+			    char *buf)
+{
+	const char *method;
+
+	if (spectre_v2_state == SPECTRE_UNAFFECTED)
+		return sprintf(buf, "%s\n", "Not affected");
+
+	if (spectre_v2_state != SPECTRE_MITIGATED)
+		return sprintf(buf, "%s\n", "Vulnerable");
+
+	if (_unprivileged_ebpf_enabled())
+		return sprintf(buf, "Vulnerable: Unprivileged eBPF enabled\n");
+
+	switch (spectre_v2_methods) {
+	case SPECTRE_V2_METHOD_BPIALL:
+		method = "Branch predictor hardening";
+		break;
+
+	case SPECTRE_V2_METHOD_ICIALLU:
+		method = "I-cache invalidation";
+		break;
+
+	case SPECTRE_V2_METHOD_SMC:
+	case SPECTRE_V2_METHOD_HVC:
+		method = "Firmware call";
+		break;
+
+	case SPECTRE_V2_METHOD_LOOP8:
+		method = "History overwrite";
+		break;
+
+	default:
+		method = "Multiple mitigations";
+		break;
+	}
+
+	return sprintf(buf, "Mitigation: %s\n", method);
+}
--- linux-ein-5.4.0.orig/arch/arm/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/arm/kernel/stacktrace.c
@@ -22,6 +22,19 @@
  * A simple function epilogue looks like this:
  *	ldm	sp, {fp, sp, pc}
  *
+ * When compiled with clang, pc and sp are not pushed. A simple function
+ * prologue looks like this when built with clang:
+ *
+ *	stmdb	{..., fp, lr}
+ *	add	fp, sp, #x
+ *	sub	sp, sp, #y
+ *
+ * A simple function epilogue looks like this when built with clang:
+ *
+ *	sub	sp, fp, #x
+ *	ldm	{..., fp, pc}
+ *
+ *
  * Note that with framepointer enabled, even the leaf functions have the same
  * prologue and epilogue, therefore we can ignore the LR value in this case.
  */
@@ -34,14 +47,24 @@
 	low = frame->sp;
 	high = ALIGN(low, THREAD_SIZE);
 
+#ifdef CONFIG_CC_IS_CLANG
+	/* check current frame pointer is within bounds */
+	if (fp < low + 4 || fp > high - 4)
+		return -EINVAL;
+
+	frame->sp = frame->fp;
+	frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp));
+	frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 4));
+#else
 	/* check current frame pointer is within bounds */
 	if (fp < low + 12 || fp > high - 4)
 		return -EINVAL;
 
 	/* restore the registers from the stack frame */
-	frame->fp = *(unsigned long *)(fp - 12);
-	frame->sp = *(unsigned long *)(fp - 8);
-	frame->pc = *(unsigned long *)(fp - 4);
+	frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 12));
+	frame->sp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 8));
+	frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 4));
+#endif
 
 	return 0;
 }
@@ -92,6 +115,8 @@
 		return 0;
 
 	regs = (struct pt_regs *)frame->sp;
+	if ((unsigned long)&regs[1] > ALIGN(frame->sp, THREAD_SIZE))
+		return 0;
 
 	trace->entries[trace->nr_entries++] = regs->ARM_pc;
 
--- linux-ein-5.4.0.orig/arch/arm/kernel/suspend.c
+++ linux-ein-5.4.0/arch/arm/kernel/suspend.c
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
+#include <linux/ftrace.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/mm_types.h>
@@ -27,12 +28,22 @@
 		return -EINVAL;
 
 	/*
+	 * Function graph tracer state gets incosistent when the kernel
+	 * calls functions that never return (aka suspend finishers) hence
+	 * disable graph tracing during their execution.
+	 */
+	pause_graph_tracing();
+
+	/*
 	 * Provide a temporary page table with an identity mapping for
 	 * the MMU-enable code, required for resuming.  On successful
 	 * resume (indicated by a zero return code), we need to switch
 	 * back to the correct page tables.
 	 */
 	ret = __cpu_suspend(arg, fn, __mpidr);
+
+	unpause_graph_tracing();
+
 	if (ret == 0) {
 		cpu_switch_mm(mm->pgd, mm);
 		local_flush_bp_all();
@@ -46,7 +57,13 @@
 int cpu_suspend(unsigned long arg, int (*fn)(unsigned long))
 {
 	u32 __mpidr = cpu_logical_map(smp_processor_id());
-	return __cpu_suspend(arg, fn, __mpidr);
+	int ret;
+
+	pause_graph_tracing();
+	ret = __cpu_suspend(arg, fn, __mpidr);
+	unpause_graph_tracing();
+
+	return ret;
 }
 #define	idmap_pgd	NULL
 #endif
--- linux-ein-5.4.0.orig/arch/arm/kernel/topology.c
+++ linux-ein-5.4.0/arch/arm/kernel/topology.c
@@ -196,9 +196,8 @@
 	struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
 	unsigned int mpidr;
 
-	/* If the cpu topology has been already set, just return */
-	if (cpuid_topo->core_id != -1)
-		return;
+	if (cpuid_topo->package_id != -1)
+		goto topology_populated;
 
 	mpidr = read_cpuid_mpidr();
 
@@ -231,14 +230,15 @@
 		cpuid_topo->package_id = -1;
 	}
 
-	update_siblings_masks(cpuid);
-
 	update_cpu_capacity(cpuid);
 
 	pr_info("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n",
 		cpuid, cpu_topology[cpuid].thread_id,
 		cpu_topology[cpuid].core_id,
 		cpu_topology[cpuid].package_id, mpidr);
+
+topology_populated:
+	update_siblings_masks(cpuid);
 }
 
 static inline int cpu_corepower_flags(void)
--- linux-ein-5.4.0.orig/arch/arm/kernel/traps.c
+++ linux-ein-5.4.0/arch/arm/kernel/traps.c
@@ -30,6 +30,7 @@
 #include <linux/atomic.h>
 #include <asm/cacheflush.h>
 #include <asm/exception.h>
+#include <asm/spectre.h>
 #include <asm/unistd.h>
 #include <asm/traps.h>
 #include <asm/ptrace.h>
@@ -64,14 +65,16 @@
 
 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
 {
+	unsigned long end = frame + 4 + sizeof(struct pt_regs);
+
 #ifdef CONFIG_KALLSYMS
 	printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
 #else
 	printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
 #endif
 
-	if (in_entry_text(from))
-		dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs));
+	if (in_entry_text(from) && end <= ALIGN(frame, THREAD_SIZE))
+		dump_mem("", "Exception stack", frame + 4, end);
 }
 
 void dump_backtrace_stm(u32 *stack, u32 instruction)
@@ -338,7 +341,7 @@
 	if (panic_on_oops)
 		panic("Fatal exception");
 	if (signr)
-		do_exit(signr);
+		make_task_dead(signr);
 }
 
 /*
@@ -797,10 +800,59 @@
 }
 #endif
 
+#ifndef CONFIG_CPU_V7M
+static void copy_from_lma(void *vma, void *lma_start, void *lma_end)
+{
+	memcpy(vma, lma_start, lma_end - lma_start);
+}
+
+static void flush_vectors(void *vma, size_t offset, size_t size)
+{
+	unsigned long start = (unsigned long)vma + offset;
+	unsigned long end = start + size;
+
+	flush_icache_range(start, end);
+}
+
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
+int spectre_bhb_update_vectors(unsigned int method)
+{
+	extern char __vectors_bhb_bpiall_start[], __vectors_bhb_bpiall_end[];
+	extern char __vectors_bhb_loop8_start[], __vectors_bhb_loop8_end[];
+	void *vec_start, *vec_end;
+
+	if (system_state > SYSTEM_SCHEDULING) {
+		pr_err("CPU%u: Spectre BHB workaround too late - system vulnerable\n",
+		       smp_processor_id());
+		return SPECTRE_VULNERABLE;
+	}
+
+	switch (method) {
+	case SPECTRE_V2_METHOD_LOOP8:
+		vec_start = __vectors_bhb_loop8_start;
+		vec_end = __vectors_bhb_loop8_end;
+		break;
+
+	case SPECTRE_V2_METHOD_BPIALL:
+		vec_start = __vectors_bhb_bpiall_start;
+		vec_end = __vectors_bhb_bpiall_end;
+		break;
+
+	default:
+		pr_err("CPU%u: unknown Spectre BHB state %d\n",
+		       smp_processor_id(), method);
+		return SPECTRE_VULNERABLE;
+	}
+
+	copy_from_lma(vectors_page, vec_start, vec_end);
+	flush_vectors(vectors_page, 0, vec_end - vec_start);
+
+	return SPECTRE_MITIGATED;
+}
+#endif
+
 void __init early_trap_init(void *vectors_base)
 {
-#ifndef CONFIG_CPU_V7M
-	unsigned long vectors = (unsigned long)vectors_base;
 	extern char __stubs_start[], __stubs_end[];
 	extern char __vectors_start[], __vectors_end[];
 	unsigned i;
@@ -821,17 +873,20 @@
 	 * into the vector page, mapped at 0xffff0000, and ensure these
 	 * are visible to the instruction stream.
 	 */
-	memcpy((void *)vectors, __vectors_start, __vectors_end - __vectors_start);
-	memcpy((void *)vectors + 0x1000, __stubs_start, __stubs_end - __stubs_start);
+	copy_from_lma(vectors_base, __vectors_start, __vectors_end);
+	copy_from_lma(vectors_base + 0x1000, __stubs_start, __stubs_end);
 
 	kuser_init(vectors_base);
 
-	flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
+	flush_vectors(vectors_base, 0, PAGE_SIZE * 2);
+}
 #else /* ifndef CONFIG_CPU_V7M */
+void __init early_trap_init(void *vectors_base)
+{
 	/*
 	 * on V7-M there is no need to copy the vector table to a dedicated
 	 * memory area. The address is configurable and so a table in the kernel
 	 * image can be used.
 	 */
-#endif
 }
+#endif
--- linux-ein-5.4.0.orig/arch/arm/kernel/unwind.c
+++ linux-ein-5.4.0/arch/arm/kernel/unwind.c
@@ -300,6 +300,29 @@
 	return URC_OK;
 }
 
+static unsigned long unwind_decode_uleb128(struct unwind_ctrl_block *ctrl)
+{
+	unsigned long bytes = 0;
+	unsigned long insn;
+	unsigned long result = 0;
+
+	/*
+	 * unwind_get_byte() will advance `ctrl` one instruction at a time, so
+	 * loop until we get an instruction byte where bit 7 is not set.
+	 *
+	 * Note: This decodes a maximum of 4 bytes to output 28 bits data where
+	 * max is 0xfffffff: that will cover a vsp increment of 1073742336, hence
+	 * it is sufficient for unwinding the stack.
+	 */
+	do {
+		insn = unwind_get_byte(ctrl);
+		result |= (insn & 0x7f) << (bytes * 7);
+		bytes++;
+	} while (!!(insn & 0x80) && (bytes != sizeof(result)));
+
+	return result;
+}
+
 /*
  * Execute the current unwind instruction.
  */
@@ -353,7 +376,7 @@
 		if (ret)
 			goto error;
 	} else if (insn == 0xb2) {
-		unsigned long uleb128 = unwind_get_byte(ctrl);
+		unsigned long uleb128 = unwind_decode_uleb128(ctrl);
 
 		ctrl->vrs[SP] += 0x204 + (uleb128 << 2);
 	} else {
--- linux-ein-5.4.0.orig/arch/arm/kernel/vdso.c
+++ linux-ein-5.4.0/arch/arm/kernel/vdso.c
@@ -93,6 +93,8 @@
 	 */
 	np = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
 	if (!np)
+		np = of_find_compatible_node(NULL, NULL, "arm,armv8-timer");
+	if (!np)
 		goto out_put;
 
 	if (of_property_read_bool(np, "arm,cpu-registers-not-fw-configured"))
@@ -279,7 +281,7 @@
 	if (!IS_ENABLED(CONFIG_ARM_ARCH_TIMER))
 		return false;
 
-	if (!tk->tkr_mono.clock->archdata.vdso_direct)
+	if (tk->tkr_mono.clock->archdata.clock_mode != VDSO_CLOCKMODE_ARCHTIMER)
 		return false;
 
 	return true;
--- linux-ein-5.4.0.orig/arch/arm/kernel/vmlinux-xip.lds.S
+++ linux-ein-5.4.0/arch/arm/kernel/vmlinux-xip.lds.S
@@ -180,7 +180,7 @@
 ASSERT((_end - __bss_start) >= 12288, ".bss too small for CONFIG_XIP_DEFLATED_DATA")
 #endif
 
-#ifdef CONFIG_ARM_MPU
+#if defined(CONFIG_ARM_MPU) && !defined(CONFIG_COMPILE_TEST)
 /*
  * Due to PMSAv7 restriction on base address and size we have to
  * enforce minimal alignment restrictions. It was seen that weaker
--- linux-ein-5.4.0.orig/arch/arm/kernel/vmlinux.lds.h
+++ linux-ein-5.4.0/arch/arm/kernel/vmlinux.lds.h
@@ -25,6 +25,19 @@
 #define ARM_MMU_DISCARD(x)	x
 #endif
 
+/*
+ * ld.lld does not support NOCROSSREFS:
+ * https://github.com/ClangBuiltLinux/linux/issues/1609
+ */
+#ifdef CONFIG_LD_IS_LLD
+#define NOCROSSREFS
+#endif
+
+/* Set start/end symbol names to the LMA for the section */
+#define ARM_LMA(sym, section)						\
+	sym##_start = LOADADDR(section);				\
+	sym##_end = LOADADDR(section) + SIZEOF(section)
+
 #define PROC_INFO							\
 		. = ALIGN(4);						\
 		__proc_info_begin = .;					\
@@ -100,19 +113,31 @@
  * only thing that matters is their relative offsets
  */
 #define ARM_VECTORS							\
-	__vectors_start = .;						\
-	.vectors 0xffff0000 : AT(__vectors_start) {			\
-		*(.vectors)						\
+	__vectors_lma = .;						\
+	OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) {		\
+		.vectors {						\
+			*(.vectors)					\
+		}							\
+		.vectors.bhb.loop8 {					\
+			*(.vectors.bhb.loop8)				\
+		}							\
+		.vectors.bhb.bpiall {					\
+			*(.vectors.bhb.bpiall)				\
+		}							\
 	}								\
-	. = __vectors_start + SIZEOF(.vectors);				\
-	__vectors_end = .;						\
+	ARM_LMA(__vectors, .vectors);					\
+	ARM_LMA(__vectors_bhb_loop8, .vectors.bhb.loop8);		\
+	ARM_LMA(__vectors_bhb_bpiall, .vectors.bhb.bpiall);		\
+	. = __vectors_lma + SIZEOF(.vectors) +				\
+		SIZEOF(.vectors.bhb.loop8) +				\
+		SIZEOF(.vectors.bhb.bpiall);				\
 									\
-	__stubs_start = .;						\
-	.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) {		\
+	__stubs_lma = .;						\
+	.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {		\
 		*(.stubs)						\
 	}								\
-	. = __stubs_start + SIZEOF(.stubs);				\
-	__stubs_end = .;						\
+	ARM_LMA(__stubs, .stubs);					\
+	. = __stubs_lma + SIZEOF(.stubs);				\
 									\
 	PROVIDE(vector_fiq_offset = vector_fiq - ADDR(.vectors));
 
--- linux-ein-5.4.0.orig/arch/arm/kvm/hyp/tlb.c
+++ linux-ein-5.4.0/arch/arm/kvm/hyp/tlb.c
@@ -45,7 +45,7 @@
 	__kvm_tlb_flush_vmid(kvm);
 }
 
-void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
+void __hyp_text __kvm_flush_cpu_context(struct kvm_vcpu *vcpu)
 {
 	struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
 
@@ -54,6 +54,7 @@
 	isb();
 
 	write_sysreg(0, TLBIALL);
+	write_sysreg(0, ICIALLU);
 	dsb(nsh);
 	isb();
 
--- linux-ein-5.4.0.orig/arch/arm/lib/copy_from_user.S
+++ linux-ein-5.4.0/arch/arm/lib/copy_from_user.S
@@ -118,7 +118,7 @@
 
 ENDPROC(arm_copy_from_user)
 
-	.pushsection .fixup,"ax"
+	.pushsection .text.fixup,"ax"
 	.align 0
 	copy_abort_preamble
 	ldmfd	sp!, {r1, r2, r3}
--- linux-ein-5.4.0.orig/arch/arm/lib/findbit.S
+++ linux-ein-5.4.0/arch/arm/lib/findbit.S
@@ -40,8 +40,8 @@
  * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
  */
 ENTRY(_find_next_zero_bit_le)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
  ARM(		ldrb	r3, [r0, r2, lsr #3]	)
@@ -81,8 +81,8 @@
  * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
  */
 ENTRY(_find_next_bit_le)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
  ARM(		ldrb	r3, [r0, r2, lsr #3]	)
@@ -115,8 +115,8 @@
 ENDPROC(_find_first_zero_bit_be)
 
 ENTRY(_find_next_zero_bit_be)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
 		eor	r3, r2, #0x18		@ big endian byte ordering
@@ -149,8 +149,8 @@
 ENDPROC(_find_first_bit_be)
 
 ENTRY(_find_next_bit_be)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
 		eor	r3, r2, #0x18		@ big endian byte ordering
--- linux-ein-5.4.0.orig/arch/arm/lib/xor-neon.c
+++ linux-ein-5.4.0/arch/arm/lib/xor-neon.c
@@ -26,8 +26,9 @@
  * While older versions of GCC do not generate incorrect code, they fail to
  * recognize the parallel nature of these functions, and emit plain ARM code,
  * which is known to be slower than the optimized ARM code in asm-arm/xor.h.
+ *
+ * #warning This code requires at least version 4.6 of GCC
  */
-#warning This code requires at least version 4.6 of GCC
 #endif
 
 #pragma GCC diagnostic ignored "-Wunused-variable"
--- linux-ein-5.4.0.orig/arch/arm/mach-at91/pm.c
+++ linux-ein-5.4.0/arch/arm/mach-at91/pm.c
@@ -103,7 +103,7 @@
 
 static const struct of_device_id sama5d2_ws_ids[] = {
 	{ .compatible = "atmel,sama5d2-gem",		.data = &ws_info[0] },
-	{ .compatible = "atmel,at91rm9200-rtc",		.data = &ws_info[1] },
+	{ .compatible = "atmel,sama5d2-rtc",		.data = &ws_info[1] },
 	{ .compatible = "atmel,sama5d3-udc",		.data = &ws_info[2] },
 	{ .compatible = "atmel,at91rm9200-ohci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
@@ -114,12 +114,12 @@
 };
 
 static const struct of_device_id sam9x60_ws_ids[] = {
-	{ .compatible = "atmel,at91sam9x5-rtc",		.data = &ws_info[1] },
+	{ .compatible = "microchip,sam9x60-rtc",	.data = &ws_info[1] },
 	{ .compatible = "atmel,at91rm9200-ohci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ohci",			.data = &ws_info[2] },
 	{ .compatible = "atmel,at91sam9g45-ehci",	.data = &ws_info[2] },
 	{ .compatible = "usb-ehci",			.data = &ws_info[2] },
-	{ .compatible = "atmel,at91sam9260-rtt",	.data = &ws_info[4] },
+	{ .compatible = "microchip,sam9x60-rtt",	.data = &ws_info[4] },
 	{ .compatible = "cdns,sam9x60-macb",		.data = &ws_info[5] },
 	{ /* sentinel */ }
 };
@@ -592,13 +592,13 @@
 	sram_pool = gen_pool_get(&pdev->dev, NULL);
 	if (!sram_pool) {
 		pr_warn("%s: sram pool unavailable!\n", __func__);
-		return;
+		goto out_put_device;
 	}
 
 	sram_base = gen_pool_alloc(sram_pool, at91_pm_suspend_in_sram_sz);
 	if (!sram_base) {
 		pr_warn("%s: unable to alloc sram!\n", __func__);
-		return;
+		goto out_put_device;
 	}
 
 	sram_pbase = gen_pool_virt_to_phys(sram_pool, sram_base);
@@ -606,12 +606,17 @@
 					at91_pm_suspend_in_sram_sz, false);
 	if (!at91_suspend_sram_fn) {
 		pr_warn("SRAM: Could not map\n");
-		return;
+		goto out_put_device;
 	}
 
 	/* Copy the pm suspend handler to SRAM */
 	at91_suspend_sram_fn = fncpy(at91_suspend_sram_fn,
 			&at91_pm_suspend_in_sram, at91_pm_suspend_in_sram_sz);
+	return;
+
+out_put_device:
+	put_device(&pdev->dev);
+	return;
 }
 
 static bool __init at91_is_pm_mode_active(int pm_mode)
@@ -691,6 +696,12 @@
 		soc_pm.data.suspend_mode = AT91_PM_ULP0;
 }
 
+static const struct of_device_id atmel_shdwc_ids[] = {
+	{ .compatible = "atmel,sama5d2-shdwc" },
+	{ .compatible = "microchip,sam9x60-shdwc" },
+	{ /* sentinel. */ }
+};
+
 static void __init at91_pm_modes_init(void)
 {
 	struct device_node *np;
@@ -700,7 +711,7 @@
 	    !at91_is_pm_mode_active(AT91_PM_ULP1))
 		return;
 
-	np = of_find_compatible_node(NULL, NULL, "atmel,sama5d2-shdwc");
+	np = of_find_matching_node(NULL, atmel_shdwc_ids);
 	if (!np) {
 		pr_warn("%s: failed to find shdwc!\n", __func__);
 		goto ulp1_default;
@@ -751,6 +762,7 @@
 	{ .compatible = "atmel,sama5d3-pmc", .data = &pmc_infos[1] },
 	{ .compatible = "atmel,sama5d4-pmc", .data = &pmc_infos[1] },
 	{ .compatible = "atmel,sama5d2-pmc", .data = &pmc_infos[1] },
+	{ .compatible = "microchip,sam9x60-pmc", .data = &pmc_infos[1] },
 	{ /* sentinel */ },
 };
 
@@ -765,6 +777,7 @@
 
 	pmc_np = of_find_matching_node_and_match(NULL, atmel_pmc_ids, &of_id);
 	soc_pm.data.pmc = of_iomap(pmc_np, 0);
+	of_node_put(pmc_np);
 	if (!soc_pm.data.pmc) {
 		pr_err("AT91: PM not supported, PMC not found\n");
 		return;
--- linux-ein-5.4.0.orig/arch/arm/mach-at91/pm_suspend.S
+++ linux-ein-5.4.0/arch/arm/mach-at91/pm_suspend.S
@@ -268,6 +268,10 @@
 	orr	tmp1, tmp1, #AT91_PMC_KEY
 	str	tmp1, [pmc, #AT91_CKGR_MOR]
 
+	/* Quirk for SAM9X60's PMC */
+	nop
+	nop
+
 	wait_mckrdy
 
 	/* Enable the crystal oscillator */
--- linux-ein-5.4.0.orig/arch/arm/mach-axxia/platsmp.c
+++ linux-ein-5.4.0/arch/arm/mach-axxia/platsmp.c
@@ -39,6 +39,7 @@
 		return -ENOENT;
 
 	syscon = of_iomap(syscon_np, 0);
+	of_node_put(syscon_np);
 	if (!syscon)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-bcm/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-bcm/Kconfig
@@ -214,7 +214,6 @@
 	select HAVE_ARM_ARCH_TIMER
 	select BRCMSTB_L2_IRQ
 	select BCM7120_L2_IRQ
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ZONE_DMA if ARM_LPAE
 	select SOC_BRCMSTB
 	select SOC_BUS
--- linux-ein-5.4.0.orig/arch/arm/mach-bcm/bcm_kona_smc.c
+++ linux-ein-5.4.0/arch/arm/mach-bcm/bcm_kona_smc.c
@@ -54,6 +54,7 @@
 		return -ENODEV;
 
 	prop_val = of_get_address(node, 0, &prop_size, NULL);
+	of_node_put(node);
 	if (!prop_val)
 		return -EINVAL;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-cns3xxx/core.c
+++ linux-ein-5.4.0/arch/arm/mach-cns3xxx/core.c
@@ -376,6 +376,7 @@
 		/* De-Asscer SATA Reset */
 		cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA));
 	}
+	of_node_put(dn);
 
 	dn = of_find_compatible_node(NULL, NULL, "cavium,cns3420-sdhci");
 	if (of_device_is_available(dn)) {
@@ -389,6 +390,7 @@
 		cns3xxx_pwr_clk_en(CNS3XXX_PWR_CLK_EN(SDIO));
 		cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SDIO));
 	}
+	of_node_put(dn);
 
 	pm_power_off = cns3xxx_power_off;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-davinci/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-davinci/Kconfig
@@ -5,10 +5,10 @@
 	depends on ARCH_MULTI_V5
 	select DAVINCI_TIMER
 	select ZONE_DMA
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select PM_GENERIC_DOMAINS if PM
 	select PM_GENERIC_DOMAINS_OF if PM && OF
 	select REGMAP_MMIO
+	select RESET_CONTROLLER
 	select HAVE_IDE
 	select PINCTRL_SINGLE
 
--- linux-ein-5.4.0.orig/arch/arm/mach-davinci/board-da850-evm.c
+++ linux-ein-5.4.0/arch/arm/mach-davinci/board-da850-evm.c
@@ -1101,11 +1101,13 @@
 	int ret;
 	u32 val;
 	struct davinci_soc_info *soc_info = &davinci_soc_info;
-	u8 rmii_en = soc_info->emac_pdata->rmii_en;
+	u8 rmii_en;
 
 	if (!machine_is_davinci_da850_evm())
 		return 0;
 
+	rmii_en = soc_info->emac_pdata->rmii_en;
+
 	cfg_chip3_base = DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG);
 
 	val = __raw_readl(cfg_chip3_base);
--- linux-ein-5.4.0.orig/arch/arm/mach-ep93xx/timer-ep93xx.c
+++ linux-ein-5.4.0/arch/arm/mach-ep93xx/timer-ep93xx.c
@@ -9,6 +9,7 @@
 #include <linux/io.h>
 #include <asm/mach/time.h>
 #include "soc.h"
+#include "platform.h"
 
 /*************************************************************************
  * Timer handling for EP93xx
@@ -60,7 +61,7 @@
 	return ret;
 }
 
-u64 ep93xx_clocksource_read(struct clocksource *c)
+static u64 ep93xx_clocksource_read(struct clocksource *c)
 {
 	u64 ret;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-exynos/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-exynos/Kconfig
@@ -8,7 +8,6 @@
 menuconfig ARCH_EXYNOS
 	bool "Samsung EXYNOS"
 	depends on ARCH_MULTI_V7
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_SUPPORTS_BIG_ENDIAN
 	select ARM_AMBA
 	select ARM_GIC
--- linux-ein-5.4.0.orig/arch/arm/mach-exynos/exynos.c
+++ linux-ein-5.4.0/arch/arm/mach-exynos/exynos.c
@@ -46,6 +46,7 @@
 		sysram_base_addr = of_iomap(node, 0);
 		sysram_base_phys = of_translate_address(node,
 					   of_get_address(node, 0, NULL, NULL));
+		of_node_put(node);
 		break;
 	}
 
@@ -53,6 +54,7 @@
 		if (!of_device_is_available(node))
 			continue;
 		sysram_ns_base_addr = of_iomap(node, 0);
+		of_node_put(node);
 		break;
 	}
 }
@@ -134,6 +136,7 @@
 	np = of_find_matching_node(NULL, exynos_dt_pmu_match);
 	if (np)
 		pmu_base_addr = of_iomap(np, 0);
+	of_node_put(np);
 }
 
 static void __init exynos_init_irq(void)
--- linux-ein-5.4.0.orig/arch/arm/mach-exynos/mcpm-exynos.c
+++ linux-ein-5.4.0/arch/arm/mach-exynos/mcpm-exynos.c
@@ -26,6 +26,7 @@
 #define EXYNOS5420_USE_L2_COMMON_UP_STATE	BIT(30)
 
 static void __iomem *ns_sram_base_addr __ro_after_init;
+static bool secure_firmware __ro_after_init;
 
 /*
  * The common v7_exit_coherency_flush API could not be used because of the
@@ -58,15 +59,16 @@
 static int exynos_cpu_powerup(unsigned int cpu, unsigned int cluster)
 {
 	unsigned int cpunr = cpu + (cluster * EXYNOS5420_CPUS_PER_CLUSTER);
+	bool state;
 
 	pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster);
 	if (cpu >= EXYNOS5420_CPUS_PER_CLUSTER ||
 		cluster >= EXYNOS5420_NR_CLUSTERS)
 		return -EINVAL;
 
-	if (!exynos_cpu_power_state(cpunr)) {
-		exynos_cpu_power_up(cpunr);
-
+	state = exynos_cpu_power_state(cpunr);
+	exynos_cpu_power_up(cpunr);
+	if (!state && secure_firmware) {
 		/*
 		 * This assumes the cluster number of the big cores(Cortex A15)
 		 * is 0 and the Little cores(Cortex A7) is 1.
@@ -258,6 +260,8 @@
 		return -ENOMEM;
 	}
 
+	secure_firmware = exynos_secure_firmware_available();
+
 	/*
 	 * To increase the stability of KFC reset we need to program
 	 * the PMU SPARE3 register
--- linux-ein-5.4.0.orig/arch/arm/mach-footbridge/cats-pci.c
+++ linux-ein-5.4.0/arch/arm/mach-footbridge/cats-pci.c
@@ -15,14 +15,14 @@
 #include <asm/mach-types.h>
 
 /* cats host-specific stuff */
-static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 };
+static int irqmap_cats[] = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 };
 
 static u8 cats_no_swizzle(struct pci_dev *dev, u8 *pin)
 {
 	return 0;
 }
 
-static int __init cats_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+static int cats_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 {
 	if (dev->irq >= 255)
 		return -1;	/* not a valid interrupt. */
--- linux-ein-5.4.0.orig/arch/arm/mach-footbridge/dc21285.c
+++ linux-ein-5.4.0/arch/arm/mach-footbridge/dc21285.c
@@ -66,15 +66,15 @@
 	if (addr)
 		switch (size) {
 		case 1:
-			asm("ldrb	%0, [%1, %2]"
+			asm volatile("ldrb	%0, [%1, %2]"
 				: "=r" (v) : "r" (addr), "r" (where) : "cc");
 			break;
 		case 2:
-			asm("ldrh	%0, [%1, %2]"
+			asm volatile("ldrh	%0, [%1, %2]"
 				: "=r" (v) : "r" (addr), "r" (where) : "cc");
 			break;
 		case 4:
-			asm("ldr	%0, [%1, %2]"
+			asm volatile("ldr	%0, [%1, %2]"
 				: "=r" (v) : "r" (addr), "r" (where) : "cc");
 			break;
 		}
@@ -100,17 +100,17 @@
 	if (addr)
 		switch (size) {
 		case 1:
-			asm("strb	%0, [%1, %2]"
+			asm volatile("strb	%0, [%1, %2]"
 				: : "r" (value), "r" (addr), "r" (where)
 				: "cc");
 			break;
 		case 2:
-			asm("strh	%0, [%1, %2]"
+			asm volatile("strh	%0, [%1, %2]"
 				: : "r" (value), "r" (addr), "r" (where)
 				: "cc");
 			break;
 		case 4:
-			asm("str	%0, [%1, %2]"
+			asm volatile("str	%0, [%1, %2]"
 				: : "r" (value), "r" (addr), "r" (where)
 				: "cc");
 			break;
--- linux-ein-5.4.0.orig/arch/arm/mach-footbridge/ebsa285-pci.c
+++ linux-ein-5.4.0/arch/arm/mach-footbridge/ebsa285-pci.c
@@ -14,9 +14,9 @@
 #include <asm/mach/pci.h>
 #include <asm/mach-types.h>
 
-static int irqmap_ebsa285[] __initdata = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI };
+static int irqmap_ebsa285[] = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI };
 
-static int __init ebsa285_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+static int ebsa285_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 {
 	if (dev->vendor == PCI_VENDOR_ID_CONTAQ &&
 	    dev->device == PCI_DEVICE_ID_CONTAQ_82C693)
--- linux-ein-5.4.0.orig/arch/arm/mach-footbridge/netwinder-pci.c
+++ linux-ein-5.4.0/arch/arm/mach-footbridge/netwinder-pci.c
@@ -18,7 +18,7 @@
  * We now use the slot ID instead of the device identifiers to select
  * which interrupt is routed where.
  */
-static int __init netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+static int netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 {
 	switch (slot) {
 	case 0:  /* host bridge */
--- linux-ein-5.4.0.orig/arch/arm/mach-footbridge/personal-pci.c
+++ linux-ein-5.4.0/arch/arm/mach-footbridge/personal-pci.c
@@ -14,13 +14,12 @@
 #include <asm/mach/pci.h>
 #include <asm/mach-types.h>
 
-static int irqmap_personal_server[] __initdata = {
+static int irqmap_personal_server[] = {
 	IRQ_IN0, IRQ_IN1, IRQ_IN2, IRQ_IN3, 0, 0, 0,
 	IRQ_DOORBELLHOST, IRQ_DMA1, IRQ_DMA2, IRQ_PCI
 };
 
-static int __init personal_server_map_irq(const struct pci_dev *dev, u8 slot,
-	u8 pin)
+static int personal_server_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 {
 	unsigned char line;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-highbank/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-highbank/Kconfig
@@ -2,7 +2,6 @@
 config ARCH_HIGHBANK
 	bool "Calxeda ECX-1000/2000 (Highbank/Midway)"
 	depends on ARCH_MULTI_V7
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_SUPPORTS_BIG_ENDIAN
 	select ARM_AMBA
 	select ARM_ERRATA_764369 if SMP
--- linux-ein-5.4.0.orig/arch/arm/mach-hisi/platsmp.c
+++ linux-ein-5.4.0/arch/arm/mach-hisi/platsmp.c
@@ -67,14 +67,17 @@
 		}
 		ctrl_base = of_iomap(np, 0);
 		if (!ctrl_base) {
+			of_node_put(np);
 			pr_err("failed to map address\n");
 			return;
 		}
 		if (of_property_read_u32(np, "smp-offset", &offset) < 0) {
+			of_node_put(np);
 			pr_err("failed to find smp-offset property\n");
 			return;
 		}
 		ctrl_base += offset;
+		of_node_put(np);
 	}
 }
 
@@ -160,6 +163,7 @@
 	if (WARN_ON(!node))
 		return -1;
 	ctrl_base = of_iomap(node, 0);
+	of_node_put(node);
 
 	/* set the secondary core boot from DDR */
 	remap_reg_value = readl_relaxed(ctrl_base + REG_SC_CTRL);
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-imx/Kconfig
@@ -40,9 +40,29 @@
 	bool
 	select PM_GENERIC_DOMAINS if PM
 
+config HAVE_IMX_GPCV2
+	bool
+	select PM_GENERIC_DOMAINS if PM
+
 config HAVE_IMX_MMDC
 	bool
 
+config HAVE_IMX_AMP
+	bool
+
+config HAVE_IMX_DDRC
+       bool
+       select HAVE_IMX_BUSFREQ
+
+config HAVE_IMX_BUSFREQ
+       bool
+
+config HAVE_IMX_MU
+	bool
+
+config HAVE_IMX_RPMSG
+	bool
+
 config HAVE_IMX_SRC
 	def_bool y if SMP
 	select ARCH_HAS_RESET_CONTROLLER
@@ -471,8 +491,6 @@
 config SOC_IMX6
 	bool
 	select ARM_CPU_SUSPEND if (PM || CPU_IDLE)
-	select ARM_ERRATA_754322
-	select ARM_ERRATA_775420
 	select ARM_GIC
 	select HAVE_IMX_ANATOP
 	select HAVE_IMX_GPC
@@ -484,6 +502,8 @@
 config SOC_IMX6Q
 	bool "i.MX6 Quad/DualLite support"
 	select ARM_ERRATA_764369 if SMP
+	select ARM_ERRATA_754322
+	select ARM_ERRATA_775420
 	select HAVE_ARM_SCU if SMP
 	select HAVE_ARM_TWD
 	select PINCTRL_IMX6Q
@@ -494,6 +514,8 @@
 
 config SOC_IMX6SL
 	bool "i.MX6 SoloLite support"
+	select ARM_ERRATA_754322
+	select ARM_ERRATA_775420
 	select PINCTRL_IMX6SL
 	select SOC_IMX6
 
@@ -502,6 +524,8 @@
 
 config SOC_IMX6SLL
 	bool "i.MX6 SoloLiteLite support"
+	select ARM_ERRATA_754322
+	select ARM_ERRATA_775420
 	select PINCTRL_IMX6SLL
 	select SOC_IMX6
 
@@ -510,7 +534,10 @@
 
 config SOC_IMX6SX
 	bool "i.MX6 SoloX support"
+	select ARM_ERRATA_754322
+	select ARM_ERRATA_775420
 	select PINCTRL_IMX6SX
+	select HAVE_IMX_AMP
 	select SOC_IMX6
 
 	help
@@ -520,6 +547,7 @@
 	bool "i.MX6 UltraLite support"
 	select PINCTRL_IMX6UL
 	select SOC_IMX6
+	select ARM_ERRATA_814220
 
 	help
 	  This enables support for Freescale i.MX6 UltraLite processor.
@@ -534,10 +562,10 @@
 
 endif
 
-comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
-
 if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
 
+comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
+
 config SOC_IMX7D_CA7
 	bool
 	select ARM_GIC
@@ -546,6 +574,11 @@
 	select HAVE_IMX_MMDC
 	select HAVE_IMX_SRC
 	select IMX_GPCV2
+	select HAVE_IMX_DDRC
+	select HAVE_IMX_MU
+	select HAVE_IMX_RPMSG
+	select HAVE_IMX_GPCV2
+	select KEYBOARD_SNVS_PWRKEY
 
 config SOC_IMX7D_CM4
 	bool
@@ -556,6 +589,7 @@
 	select PINCTRL_IMX7D
 	select SOC_IMX7D_CA7 if ARCH_MULTI_V7
 	select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
+	select ARM_ERRATA_814220 if ARCH_MULTI_V7
 	help
 		This enables support for Freescale i.MX7 Dual processor.
 
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/Makefile
+++ linux-ein-5.4.0/arch/arm/mach-imx/Makefile
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-y := cpu.o system.o irq-common.o
+obj-y := cpu.o system.o irq-common.o common.o
 
 obj-$(CONFIG_SOC_IMX21) += mm-imx21.o
 
@@ -30,6 +30,8 @@
 obj-$(CONFIG_SOC_IMX6SX) += cpuidle-imx6sx.o
 obj-$(CONFIG_SOC_IMX6UL) += cpuidle-imx6sx.o
 obj-$(CONFIG_SOC_IMX7ULP) += cpuidle-imx7ulp.o
+AFLAGS_imx7d_low_power_idle.o :=-Wa,-march=armv7-a
+obj-$(CONFIG_SOC_IMX7D_CA7) += cpuidle-imx7d.o imx7d_low_power_idle.o
 endif
 
 ifdef CONFIG_SND_SOC_IMX_PCM_FIQ
@@ -70,8 +72,11 @@
 
 obj-$(CONFIG_HAVE_IMX_ANATOP) += anatop.o
 obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o
+obj-$(CONFIG_HAVE_IMX_GPCV2) += gpcv2.o
 obj-$(CONFIG_HAVE_IMX_MMDC) += mmdc.o
 obj-$(CONFIG_HAVE_IMX_SRC) += src.o
+obj-$(CONFIG_HAVE_IMX_DDRC) += ddrc.o
+obj-$(CONFIG_HAVE_IMX_MU) += mu.o
 ifneq ($(CONFIG_SOC_IMX6)$(CONFIG_SOC_LS1021A),)
 AFLAGS_headsmp.o :=-Wa,-march=armv7-a
 obj-$(CONFIG_SMP) += headsmp.o platsmp.o
@@ -82,15 +87,26 @@
 obj-$(CONFIG_SOC_IMX6SLL) += mach-imx6sl.o
 obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o
 obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o
-obj-$(CONFIG_SOC_IMX7D_CA7) += mach-imx7d.o
+obj-$(CONFIG_SOC_IMX7D_CA7) += mach-imx7d.o pm-imx7.o ddr3_freq_imx7d.o smp_wfe.o \
+			   lpddr3_freq_imx.o suspend-imx7.o
 obj-$(CONFIG_SOC_IMX7D_CM4) += mach-imx7d-cm4.o
 obj-$(CONFIG_SOC_IMX7ULP) += mach-imx7ulp.o pm-imx7ulp.o
 
+obj-y += busfreq-imx.o busfreq_ddr3.o
+AFLAGS_smp_wfe.o :=-Wa,-march=armv7-a
+AFLAGS_ddr3_freq_imx7d.o :=-Wa,-march=armv7-a
+AFLAGS_lpddr3_freq_imx.o :=-Wa,-march=armv7-a
+
 ifeq ($(CONFIG_SUSPEND),y)
 AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
+AFLAGS_suspend-imx7.o :=-Wa,-march=armv7-a
 obj-$(CONFIG_SOC_IMX6) += suspend-imx6.o
 obj-$(CONFIG_SOC_IMX53) += suspend-imx53.o
 endif
+ifeq ($(CONFIG_ARM_CPU_SUSPEND),y)
+AFLAGS_resume-imx6.o :=-Wa,-march=armv7-a
+obj-$(CONFIG_SOC_IMX6) += resume-imx6.o
+endif
 obj-$(CONFIG_SOC_IMX6) += pm-imx6.o
 
 obj-$(CONFIG_SOC_IMX1) += mach-imx1.o
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/anatop.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/anatop.c
@@ -4,6 +4,7 @@
  * Copyright 2017-2018 NXP.
  */
 
+#include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/of.h>
@@ -16,11 +17,17 @@
 #define REG_SET		0x4
 #define REG_CLR		0x8
 
+#define ANADIG_ARM_PLL		0x60
+#define ANADIG_DDR_PLL		0x70
+#define ANADIG_SYS_PLL		0xb0
+#define ANADIG_ENET_PLL		0xe0
+#define ANADIG_AUDIO_PLL	0xf0
+#define ANADIG_VIDEO_PLL	0x130
+
 #define ANADIG_REG_2P5		0x130
 #define ANADIG_REG_CORE		0x140
 #define ANADIG_ANA_MISC0	0x150
-#define ANADIG_USB1_CHRG_DETECT	0x1b0
-#define ANADIG_USB2_CHRG_DETECT	0x210
+#define ANADIG_ANA_MISC2	0x170
 #define ANADIG_DIGPROG		0x260
 #define ANADIG_DIGPROG_IMX6SL	0x280
 #define ANADIG_DIGPROG_IMX7D	0x800
@@ -30,11 +37,21 @@
 #define BM_ANADIG_REG_2P5_ENABLE_WEAK_LINREG	0x40000
 #define BM_ANADIG_REG_2P5_ENABLE_PULLDOWN	0x8
 #define BM_ANADIG_REG_CORE_FET_ODRIVE		0x20000000
+#define BM_ANADIG_REG_CORE_REG1			(0x1f << 9)
+#define BM_ANADIG_REG_CORE_REG2			(0x1f << 18)
+#define BP_ANADIG_REG_CORE_REG2			(18)
 #define BM_ANADIG_ANA_MISC0_STOP_MODE_CONFIG	0x1000
+#define BM_ANADIG_ANA_MISC0_V2_STOP_MODE_CONFIG	0x800
+#define BM_ANADIG_ANA_MISC0_V3_STOP_MODE_CONFIG	0xc00
+#define BM_ANADIG_ANA_MISC2_REG1_STEP_TIME	(0x3 << 26)
+#define BP_ANADIG_ANA_MISC2_REG1_STEP_TIME	(26)
 /* Below MISC0_DISCON_HIGH_SNVS is only for i.MX6SL */
 #define BM_ANADIG_ANA_MISC0_DISCON_HIGH_SNVS	0x2000
-#define BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B	0x80000
-#define BM_ANADIG_USB_CHRG_DETECT_EN_B		0x100000
+/* Since i.MX6SX, DISCON_HIGH_SNVS is changed to bit 12 */
+#define BM_ANADIG_ANA_MISC0_V2_DISCON_HIGH_SNVS	0x1000
+
+#define LDO_RAMP_UP_UNIT_IN_CYCLES      64 /* 64 cycles per step */
+#define LDO_RAMP_UP_FREQ_IN_MHZ         24 /* cycle based on 24M OSC */
 
 static struct regmap *anatop;
 
@@ -71,6 +88,17 @@
 
 void imx_anatop_pre_suspend(void)
 {
+	if (cpu_is_imx7d()) {
+		/* PLL and PFDs overwrite set */
+		regmap_write(anatop, ANADIG_ARM_PLL + REG_SET, 1 << 20);
+		regmap_write(anatop, ANADIG_DDR_PLL + REG_SET, 1 << 19);
+		regmap_write(anatop, ANADIG_SYS_PLL + REG_SET, 0x1ff << 17);
+		regmap_write(anatop, ANADIG_ENET_PLL + REG_SET, 1 << 13);
+		regmap_write(anatop, ANADIG_AUDIO_PLL + REG_SET, 1 << 24);
+		regmap_write(anatop, ANADIG_VIDEO_PLL + REG_SET, 1 << 24);
+		return;
+	}
+
 	if (imx_mmdc_get_ddr_type() == IMX_DDR_TYPE_LPDDR2)
 		imx_anatop_enable_2p5_pulldown(true);
 	else
@@ -84,6 +112,17 @@
 
 void imx_anatop_post_resume(void)
 {
+	if (cpu_is_imx7d()) {
+		/* PLL and PFDs overwrite clear */
+		regmap_write(anatop, ANADIG_ARM_PLL + REG_CLR, 1 << 20);
+		regmap_write(anatop, ANADIG_DDR_PLL + REG_CLR, 1 << 19);
+		regmap_write(anatop, ANADIG_SYS_PLL + REG_CLR, 0x1ff << 17);
+		regmap_write(anatop, ANADIG_ENET_PLL + REG_CLR, 1 << 13);
+		regmap_write(anatop, ANADIG_AUDIO_PLL + REG_CLR, 1 << 24);
+		regmap_write(anatop, ANADIG_VIDEO_PLL + REG_CLR, 1 << 24);
+		return;
+	}
+
 	if (imx_mmdc_get_ddr_type() == IMX_DDR_TYPE_LPDDR2)
 		imx_anatop_enable_2p5_pulldown(false);
 	else
@@ -93,27 +132,17 @@
 
 	if (cpu_is_imx6sl())
 		imx_anatop_disconnect_high_snvs(false);
-
-}
-
-static void imx_anatop_usb_chrg_detect_disable(void)
-{
-	regmap_write(anatop, ANADIG_USB1_CHRG_DETECT,
-		BM_ANADIG_USB_CHRG_DETECT_EN_B
-		| BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B);
-	regmap_write(anatop, ANADIG_USB2_CHRG_DETECT,
-		BM_ANADIG_USB_CHRG_DETECT_EN_B |
-		BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B);
 }
 
 void __init imx_init_revision_from_anatop(void)
 {
-	struct device_node *np;
+	struct device_node *np, *src_np;
 	void __iomem *anatop_base;
+	void __iomem *src_base;
 	unsigned int revision;
-	u32 digprog;
+	u32 digprog, sbmr2 = 0;
 	u16 offset = ANADIG_DIGPROG;
-	u8 major_part, minor_part;
+	u16 major_part, minor_part;
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop");
 	anatop_base = of_iomap(np, 0);
@@ -149,9 +178,10 @@
 			void __iomem *src_base;
 			u32 sbmr2;
 
-			np = of_find_compatible_node(NULL, NULL,
+			src_np = of_find_compatible_node(NULL, NULL,
 						     "fsl,imx6ul-src");
-			src_base = of_iomap(np, 0);
+			src_base = of_iomap(src_np, 0);
+			of_node_put(src_np);
 			WARN_ON(!src_base);
 			sbmr2 = readl_relaxed(src_base + SRC_SBMR2);
 			iounmap(src_base);
@@ -163,6 +193,7 @@
 			}
 		}
 	}
+	of_node_put(np);
 
 	mxc_set_cpu_type(digprog >> 16 & 0xff);
 	imx_set_soc_revision(revision);
@@ -171,10 +202,6 @@
 void __init imx_anatop_init(void)
 {
 	anatop = syscon_regmap_lookup_by_compatible("fsl,imx6q-anatop");
-	if (IS_ERR(anatop)) {
+	if (IS_ERR(anatop))
 		pr_err("%s: failed to find imx6q-anatop regmap!\n", __func__);
-		return;
-	}
-
-	imx_anatop_usb_chrg_detect_disable();
 }
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/busfreq-imx.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/busfreq-imx.c
@@ -0,0 +1,770 @@
+/*
+ * Copyright (C) 2011-2016 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2017 NXP.
+ * Copyright 2018 NXP.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <asm/cacheflush.h>
+#include <asm/fncpy.h>
+#include <asm/io.h>
+#include <asm/mach/map.h>
+#include <asm/mach-types.h>
+#include <asm/tlb.h>
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/clk-provider.h>
+#include <linux/delay.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/of.h>
+#include <linux/of_fdt.h>
+#include <linux/platform_device.h>
+#include <linux/proc_fs.h>
+#include <linux/reboot.h>
+#include <linux/regulator/consumer.h>
+#include <linux/sched.h>
+#include <linux/suspend.h>
+#include "hardware.h"
+#include "common.h"
+
+#define LPAPM_CLK		24000000
+#define LOW_AUDIO_CLK		50000000
+#define HIGH_AUDIO_CLK		100000000
+
+#define LOW_POWER_RUN_VOLTAGE	950000
+
+#define MMDC_MDMISC_DDR_TYPE_DDR3	0
+#define MMDC_MDMISC_DDR_TYPE_LPDDR2	1
+
+unsigned int ddr_med_rate;
+unsigned int ddr_normal_rate;
+unsigned long ddr_freq_change_total_size;
+unsigned long ddr_freq_change_iram_base;
+unsigned long ddr_freq_change_iram_phys;
+
+static int ddr_type;
+static int low_bus_freq_mode;
+static int audio_bus_freq_mode;
+static int ultra_low_bus_freq_mode;
+static int high_bus_freq_mode;
+static int med_bus_freq_mode;
+static int bus_freq_scaling_initialized;
+static bool cancel_reduce_bus_freq;
+static struct device *busfreq_dev;
+static int busfreq_suspended;
+static int bus_freq_scaling_is_active;
+static int high_bus_count, med_bus_count, audio_bus_count, low_bus_count;
+static unsigned int ddr_low_rate;
+static int cur_bus_freq_mode;
+
+extern unsigned long iram_tlb_phys_addr;
+extern int unsigned long iram_tlb_base_addr;
+
+/*
+ * Bus frequency management by Linux
+ */
+extern int init_mmdc_lpddr2_settings(struct platform_device *dev);
+extern int init_mmdc_lpddr2_settings_mx6q(struct platform_device *dev);
+extern int init_mmdc_ddr3_settings_imx6_up(struct platform_device *dev);
+extern int init_mmdc_ddr3_settings_imx6_smp(struct platform_device *dev);
+extern int init_ddrc_ddr_settings(struct platform_device *dev);
+extern int update_ddr_freq_imx_smp(int ddr_rate);
+extern int update_ddr_freq_imx6_up(int ddr_rate);
+extern int update_lpddr2_freq(int ddr_rate);
+extern int update_lpddr2_freq_smp(int ddr_rate);
+
+
+/**
+ * @brief  Functions to init and update the busfreq function of
+ *         device and memory type
+ */
+static struct busfreq_func {
+	int (*init)(struct platform_device *dev);
+	int (*update)(int ddr_rate);
+} busfreq_func = {NULL, NULL};
+
+DEFINE_MUTEX(bus_freq_mutex);
+
+static struct clk *osc_clk;
+static struct clk *ahb_clk;
+static struct clk *axi_sel_clk;
+static struct clk *dram_root;
+static struct clk *dram_alt_sel;
+static struct clk *dram_alt_root;
+static struct clk *pfd0_392m;
+static struct clk *pfd2_270m;
+static struct clk *pfd1_332m;
+static struct clk *pll_dram;
+static struct clk *ahb_sel_clk;
+static struct clk *axi_clk;
+
+static struct delayed_work low_bus_freq_handler;
+static struct delayed_work bus_freq_daemon;
+
+static RAW_NOTIFIER_HEAD(busfreq_notifier_chain);
+
+static bool busfreq_notified_low = false;
+
+static int busfreq_notify(enum busfreq_event event)
+{
+	int ret;
+
+	if (event == LOW_BUSFREQ_ENTER) {
+		WARN_ON(busfreq_notified_low);
+		busfreq_notified_low = true;
+	} else if (event == LOW_BUSFREQ_EXIT) {
+		WARN_ON(!busfreq_notified_low);
+		busfreq_notified_low = false;
+	}
+	ret = raw_notifier_call_chain(&busfreq_notifier_chain, event, NULL);
+
+	return notifier_to_errno(ret);
+}
+
+int register_busfreq_notifier(struct notifier_block *nb)
+{
+	return raw_notifier_chain_register(&busfreq_notifier_chain, nb);
+}
+EXPORT_SYMBOL(register_busfreq_notifier);
+
+int unregister_busfreq_notifier(struct notifier_block *nb)
+{
+	return raw_notifier_chain_unregister(&busfreq_notifier_chain, nb);
+}
+EXPORT_SYMBOL(unregister_busfreq_notifier);
+
+static void enter_lpm_imx7d(void)
+{
+	/*
+	 * The AHB clock parent switch and divider change
+	 * needs to keep previous/current parent enabled
+	 * per design requirement, but when we switch the
+	 * clock parent, previous AHB clock parent may be
+	 * disabled by common clock framework, so here we
+	 * have to make sure AHB's previous parent pfd2_270m
+	 * is enabled during AHB set rate.
+	 */
+	clk_prepare_enable(pfd2_270m);
+	if (audio_bus_count) {
+		clk_prepare_enable(pfd0_392m);
+		busfreq_func.update(HIGH_AUDIO_CLK);
+
+		clk_set_parent(dram_alt_sel, pfd0_392m);
+		clk_set_parent(dram_root, dram_alt_root);
+		if (high_bus_freq_mode) {
+			clk_set_parent(axi_sel_clk, osc_clk);
+			clk_set_parent(ahb_sel_clk, osc_clk);
+			clk_set_rate(ahb_clk, LPAPM_CLK);
+		}
+		clk_disable_unprepare(pfd0_392m);
+		audio_bus_freq_mode = 1;
+		low_bus_freq_mode = 0;
+		cur_bus_freq_mode = BUS_FREQ_AUDIO;
+	} else {
+		busfreq_func.update(LPAPM_CLK);
+
+		clk_set_parent(dram_alt_sel, osc_clk);
+		clk_set_parent(dram_root, dram_alt_root);
+		if (high_bus_freq_mode) {
+			clk_set_parent(axi_sel_clk, osc_clk);
+			clk_set_parent(ahb_sel_clk, osc_clk);
+			clk_set_rate(ahb_clk, LPAPM_CLK);
+		}
+		low_bus_freq_mode = 1;
+		audio_bus_freq_mode = 0;
+		cur_bus_freq_mode = BUS_FREQ_LOW;
+	}
+	clk_disable_unprepare(pfd2_270m);
+}
+
+static void exit_lpm_imx7d(void)
+{
+	clk_set_parent(axi_sel_clk, pfd1_332m);
+	clk_set_rate(ahb_clk, LPAPM_CLK / 2);
+	clk_set_parent(ahb_sel_clk, pfd2_270m);
+
+	busfreq_func.update(ddr_normal_rate);
+
+	clk_set_parent(dram_root, pll_dram);
+}
+
+static void reduce_bus_freq(void)
+{
+	if (audio_bus_count && (low_bus_freq_mode || ultra_low_bus_freq_mode))
+		busfreq_notify(LOW_BUSFREQ_EXIT);
+	else if (!audio_bus_count)
+		busfreq_notify(LOW_BUSFREQ_ENTER);
+
+	if (cpu_is_imx7d())
+		enter_lpm_imx7d();
+
+	med_bus_freq_mode = 0;
+	high_bus_freq_mode = 0;
+
+	if (audio_bus_freq_mode)
+		dev_dbg(busfreq_dev,
+			"Bus freq set to audio mode. Count: high %d, med %d, audio %d\n",
+			high_bus_count, med_bus_count, audio_bus_count);
+	if (low_bus_freq_mode)
+		dev_dbg(busfreq_dev,
+			"Bus freq set to low mode. Count: high %d, med %d, audio %d\n",
+			high_bus_count, med_bus_count, audio_bus_count);
+}
+
+static inline void cancel_low_bus_freq_handler(void)
+{
+	cancel_delayed_work(&low_bus_freq_handler);
+	cancel_reduce_bus_freq = true;
+}
+
+static void reduce_bus_freq_handler(struct work_struct *work)
+{
+	mutex_lock(&bus_freq_mutex);
+
+	if (!cancel_reduce_bus_freq) {
+		reduce_bus_freq();
+		cancel_low_bus_freq_handler();
+	}
+
+	mutex_unlock(&bus_freq_mutex);
+}
+
+/*
+ * Set the DDR, AHB to 24MHz.
+ * This mode will be activated only when none of the modules that
+ * need a higher DDR or AHB frequency are active.
+ */
+static int set_low_bus_freq(void)
+{
+	if (busfreq_suspended)
+		return 0;
+
+	if (!bus_freq_scaling_initialized || !bus_freq_scaling_is_active)
+		return 0;
+
+	cancel_reduce_bus_freq = false;
+
+	/*
+	 * Check to see if we need to got from
+	 * low bus freq mode to audio bus freq mode.
+	 * If so, the change needs to be done immediately.
+	 */
+	if (audio_bus_count && (low_bus_freq_mode || ultra_low_bus_freq_mode))
+		reduce_bus_freq();
+	else
+		/*
+		 * Don't lower the frequency immediately. Instead
+		 * scheduled a delayed work and drop the freq if
+		 * the conditions still remain the same.
+		 */
+		schedule_delayed_work(&low_bus_freq_handler,
+					usecs_to_jiffies(3000000));
+	return 0;
+}
+
+/*
+ * Set the DDR to either 528MHz or 400MHz for iMX6qd
+ * or 400MHz for iMX6dl.
+ */
+static int set_high_bus_freq(int high_bus_freq)
+{
+	if (bus_freq_scaling_initialized && bus_freq_scaling_is_active)
+		cancel_low_bus_freq_handler();
+
+	if (busfreq_suspended)
+		return 0;
+
+	if (!bus_freq_scaling_initialized || !bus_freq_scaling_is_active)
+		return 0;
+
+	if (high_bus_freq_mode)
+		return 0;
+
+	/* medium bus freq is only supported for MX6DQ */
+	if (med_bus_freq_mode && !high_bus_freq)
+		return 0;
+
+	if (low_bus_freq_mode || ultra_low_bus_freq_mode)
+		busfreq_notify(LOW_BUSFREQ_EXIT);
+
+	if (cpu_is_imx7d())
+		exit_lpm_imx7d();
+
+	high_bus_freq_mode = 1;
+	med_bus_freq_mode = 0;
+	low_bus_freq_mode = 0;
+	audio_bus_freq_mode = 0;
+	cur_bus_freq_mode = BUS_FREQ_HIGH;
+
+	if (high_bus_freq_mode)
+		dev_dbg(busfreq_dev,
+			"Bus freq set to high mode. Count: high %d, med %d, audio %d\n",
+			high_bus_count, med_bus_count, audio_bus_count);
+	if (med_bus_freq_mode)
+		dev_dbg(busfreq_dev,
+			"Bus freq set to med mode. Count: high %d, med %d, audio %d\n",
+			high_bus_count, med_bus_count, audio_bus_count);
+
+	return 0;
+}
+
+void request_bus_freq(enum bus_freq_mode mode)
+{
+	mutex_lock(&bus_freq_mutex);
+
+	if (mode == BUS_FREQ_ULTRA_LOW) {
+		dev_dbg(busfreq_dev, "This mode cannot be requested!\n");
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+
+	if (mode == BUS_FREQ_HIGH)
+		high_bus_count++;
+	else if (mode == BUS_FREQ_MED)
+		med_bus_count++;
+	else if (mode == BUS_FREQ_AUDIO)
+		audio_bus_count++;
+	else if (mode == BUS_FREQ_LOW)
+		low_bus_count++;
+
+	if (busfreq_suspended || !bus_freq_scaling_initialized ||
+		!bus_freq_scaling_is_active) {
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+
+	cancel_low_bus_freq_handler();
+
+	if ((mode == BUS_FREQ_HIGH) && (!high_bus_freq_mode)) {
+		set_high_bus_freq(1);
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+
+	if ((mode == BUS_FREQ_MED) && (!high_bus_freq_mode) &&
+		(!med_bus_freq_mode)) {
+		set_high_bus_freq(0);
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+	if ((mode == BUS_FREQ_AUDIO) && (!high_bus_freq_mode) &&
+		(!med_bus_freq_mode) && (!audio_bus_freq_mode)) {
+		set_low_bus_freq();
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+	mutex_unlock(&bus_freq_mutex);
+}
+EXPORT_SYMBOL(request_bus_freq);
+
+void release_bus_freq(enum bus_freq_mode mode)
+{
+	mutex_lock(&bus_freq_mutex);
+
+	if (mode == BUS_FREQ_ULTRA_LOW) {
+		dev_dbg(busfreq_dev,
+			"This mode cannot be released!\n");
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+
+	if (mode == BUS_FREQ_HIGH) {
+		if (high_bus_count == 0) {
+			dev_err(busfreq_dev, "high bus count mismatch!\n");
+			dump_stack();
+			mutex_unlock(&bus_freq_mutex);
+			return;
+		}
+		high_bus_count--;
+	} else if (mode == BUS_FREQ_MED) {
+		if (med_bus_count == 0) {
+			dev_err(busfreq_dev, "med bus count mismatch!\n");
+			dump_stack();
+			mutex_unlock(&bus_freq_mutex);
+			return;
+		}
+		med_bus_count--;
+	} else if (mode == BUS_FREQ_AUDIO) {
+		if (audio_bus_count == 0) {
+			dev_err(busfreq_dev, "audio bus count mismatch!\n");
+			dump_stack();
+			mutex_unlock(&bus_freq_mutex);
+			return;
+		}
+		audio_bus_count--;
+	} else if (mode == BUS_FREQ_LOW) {
+		if (low_bus_count == 0) {
+			dev_err(busfreq_dev, "low bus count mismatch!\n");
+			dump_stack();
+			mutex_unlock(&bus_freq_mutex);
+			return;
+		}
+		low_bus_count--;
+	}
+
+	if (busfreq_suspended || !bus_freq_scaling_initialized ||
+		!bus_freq_scaling_is_active) {
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+
+	if ((!audio_bus_freq_mode) && (high_bus_count == 0) &&
+		(med_bus_count == 0) && (audio_bus_count != 0)) {
+		set_low_bus_freq();
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+	if ((!low_bus_freq_mode) && (high_bus_count == 0) &&
+		(med_bus_count == 0) && (audio_bus_count == 0) &&
+		(low_bus_count != 0)) {
+		set_low_bus_freq();
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+	if ((!ultra_low_bus_freq_mode) && (high_bus_count == 0) &&
+		(med_bus_count == 0) && (audio_bus_count == 0) &&
+		(low_bus_count == 0)) {
+		set_low_bus_freq();
+		mutex_unlock(&bus_freq_mutex);
+		return;
+	}
+
+	mutex_unlock(&bus_freq_mutex);
+}
+EXPORT_SYMBOL(release_bus_freq);
+
+int get_bus_freq_mode(void)
+{
+	return cur_bus_freq_mode;
+}
+EXPORT_SYMBOL(get_bus_freq_mode);
+
+static struct map_desc ddr_iram_io_desc __initdata = {
+	/* .virtual and .pfn are run-time assigned */
+	.length		= SZ_1M,
+	.type		= MT_MEMORY_RWX_NONCACHED,
+};
+
+static int __init imx_dt_find_ddr_sram(unsigned long node,
+		const char *uname, int depth, void *data)
+{
+	unsigned long ddr_iram_addr;
+	const __be32 *prop;
+
+	if (of_flat_dt_is_compatible(node, "fsl,ddr-lpm-sram")) {
+		unsigned int len;
+
+		prop = of_get_flat_dt_prop(node, "reg", &len);
+		if (prop == NULL || len != (sizeof(unsigned long) * 2))
+			return -EINVAL;
+		ddr_iram_addr = be32_to_cpu(prop[0]);
+		ddr_freq_change_total_size = be32_to_cpu(prop[1]);
+		ddr_freq_change_iram_phys = ddr_iram_addr;
+
+		/* Make sure ddr_freq_change_iram_phys is 8 byte aligned. */
+		if ((uintptr_t)(ddr_freq_change_iram_phys) & (FNCPY_ALIGN - 1))
+			ddr_freq_change_iram_phys += FNCPY_ALIGN -
+				((uintptr_t)ddr_freq_change_iram_phys %
+				(FNCPY_ALIGN));
+	}
+	return 0;
+}
+
+void __init imx_busfreq_map_io(void)
+{
+	/*
+	 * Get the address of IRAM to be used by the ddr frequency
+	 * change code from the device tree.
+	 */
+	WARN_ON(of_scan_flat_dt(imx_dt_find_ddr_sram, NULL));
+	if (ddr_freq_change_iram_phys) {
+		ddr_freq_change_iram_base = IMX_IO_P2V(
+			ddr_freq_change_iram_phys);
+		if ((iram_tlb_phys_addr & 0xFFF00000) !=
+			(ddr_freq_change_iram_phys & 0xFFF00000)) {
+			/* We need to create a 1M page table entry. */
+			ddr_iram_io_desc.virtual = IMX_IO_P2V(
+				ddr_freq_change_iram_phys & 0xFFF00000);
+			ddr_iram_io_desc.pfn = __phys_to_pfn(
+				ddr_freq_change_iram_phys & 0xFFF00000);
+			iotable_init(&ddr_iram_io_desc, 1);
+		}
+		memset((void *)ddr_freq_change_iram_base, 0,
+			ddr_freq_change_total_size);
+	}
+}
+
+static void bus_freq_daemon_handler(struct work_struct *work)
+{
+	mutex_lock(&bus_freq_mutex);
+	if ((!low_bus_freq_mode) && (!ultra_low_bus_freq_mode)
+		&& (high_bus_count == 0) &&
+		(med_bus_count == 0) && (audio_bus_count == 0))
+		set_low_bus_freq();
+	mutex_unlock(&bus_freq_mutex);
+}
+
+static ssize_t bus_freq_scaling_enable_show(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	if (bus_freq_scaling_is_active)
+		return sprintf(buf, "Bus frequency scaling is enabled\n");
+	else
+		return sprintf(buf, "Bus frequency scaling is disabled\n");
+}
+
+static ssize_t bus_freq_scaling_enable_store(struct device *dev,
+				 struct device_attribute *attr,
+				 const char *buf, size_t size)
+{
+	if (strncmp(buf, "1", 1) == 0) {
+		bus_freq_scaling_is_active = 1;
+		set_high_bus_freq(1);
+		/*
+		 * We set bus freq to highest at the beginning,
+		 * so we use this daemon thread to make sure system
+		 * can enter low bus mode if
+		 * there is no high bus request pending
+		 */
+		schedule_delayed_work(&bus_freq_daemon,
+			usecs_to_jiffies(5000000));
+	} else if (strncmp(buf, "0", 1) == 0) {
+		if (bus_freq_scaling_is_active)
+			set_high_bus_freq(1);
+		bus_freq_scaling_is_active = 0;
+	}
+	return size;
+}
+
+static int bus_freq_pm_notify(struct notifier_block *nb, unsigned long event,
+	void *dummy)
+{
+	mutex_lock(&bus_freq_mutex);
+
+	if (event == PM_SUSPEND_PREPARE) {
+		if (cpu_is_imx7d() && imx_src_is_m4_enabled())
+			imx_mu_lpm_ready(false);
+		high_bus_count++;
+		set_high_bus_freq(1);
+		busfreq_suspended = 1;
+	} else if (event == PM_POST_SUSPEND) {
+		busfreq_suspended = 0;
+		high_bus_count--;
+		if (cpu_is_imx7d() && imx_src_is_m4_enabled())
+			imx_mu_lpm_ready(true);
+		schedule_delayed_work(&bus_freq_daemon,
+			usecs_to_jiffies(5000000));
+	}
+
+	mutex_unlock(&bus_freq_mutex);
+
+	return NOTIFY_OK;
+}
+
+static int busfreq_reboot_notifier_event(struct notifier_block *this,
+						 unsigned long event, void *ptr)
+{
+	/* System is rebooting. Set the system into high_bus_freq_mode. */
+	request_bus_freq(BUS_FREQ_HIGH);
+
+	return 0;
+}
+
+static struct notifier_block imx_bus_freq_pm_notifier = {
+	.notifier_call = bus_freq_pm_notify,
+};
+
+static struct notifier_block imx_busfreq_reboot_notifier = {
+	.notifier_call = busfreq_reboot_notifier_event,
+};
+
+
+static DEVICE_ATTR(enable, 0644, bus_freq_scaling_enable_show,
+			bus_freq_scaling_enable_store);
+
+/*!
+ * This is the probe routine for the bus frequency driver.
+ *
+ * @param   pdev   The platform device structure
+ *
+ * @return         The function returns 0 on success
+ *
+ */
+
+static int busfreq_probe(struct platform_device *pdev)
+{
+	u32 err;
+
+	busfreq_dev = &pdev->dev;
+
+	/* Return if no IRAM space is allocated for ddr freq change code. */
+	if (!ddr_freq_change_iram_base)
+		return -ENOMEM;
+
+	if (cpu_is_imx7d()) {
+		osc_clk = devm_clk_get(&pdev->dev, "osc");
+		axi_sel_clk = devm_clk_get(&pdev->dev, "axi_sel");
+		ahb_sel_clk = devm_clk_get(&pdev->dev, "ahb_sel");
+		pfd0_392m = devm_clk_get(&pdev->dev, "pfd0_392m");
+		dram_root = devm_clk_get(&pdev->dev, "dram_root");
+		dram_alt_sel = devm_clk_get(&pdev->dev, "dram_alt_sel");
+		pll_dram = devm_clk_get(&pdev->dev, "pll_dram");
+		dram_alt_root = devm_clk_get(&pdev->dev, "dram_alt_root");
+		pfd1_332m = devm_clk_get(&pdev->dev, "pfd1_332m");
+		pfd2_270m = devm_clk_get(&pdev->dev, "pfd2_270m");
+		ahb_clk = devm_clk_get(&pdev->dev, "ahb");
+		axi_clk = devm_clk_get(&pdev->dev, "axi");
+		if (IS_ERR(osc_clk) || IS_ERR(axi_sel_clk) || IS_ERR(ahb_clk)
+			|| IS_ERR(pfd0_392m) || IS_ERR(dram_root)
+			|| IS_ERR(dram_alt_sel) || IS_ERR(pll_dram)
+			|| IS_ERR(dram_alt_root) || IS_ERR(pfd1_332m)
+			|| IS_ERR(ahb_clk) || IS_ERR(axi_clk)
+			|| IS_ERR(pfd2_270m)) {
+			dev_err(busfreq_dev,
+				"%s: failed to get busfreq clk\n", __func__);
+			return -EINVAL;
+		}
+	}
+
+	err = sysfs_create_file(&busfreq_dev->kobj, &dev_attr_enable.attr);
+	if (err) {
+		dev_err(busfreq_dev,
+		       "Unable to register sysdev entry for BUSFREQ");
+		return err;
+	}
+
+	if (of_property_read_u32(pdev->dev.of_node, "fsl,max_ddr_freq",
+			&ddr_normal_rate)) {
+		dev_err(busfreq_dev, "max_ddr_freq entry missing\n");
+		return -EINVAL;
+	}
+
+	high_bus_freq_mode = 1;
+	med_bus_freq_mode = 0;
+	low_bus_freq_mode = 0;
+	audio_bus_freq_mode = 0;
+	ultra_low_bus_freq_mode = 0;
+	cur_bus_freq_mode = BUS_FREQ_HIGH;
+
+	bus_freq_scaling_is_active = 1;
+	bus_freq_scaling_initialized = 1;
+
+	ddr_low_rate = LPAPM_CLK;
+
+	INIT_DELAYED_WORK(&low_bus_freq_handler, reduce_bus_freq_handler);
+	INIT_DELAYED_WORK(&bus_freq_daemon, bus_freq_daemon_handler);
+	register_pm_notifier(&imx_bus_freq_pm_notifier);
+	register_reboot_notifier(&imx_busfreq_reboot_notifier);
+
+	/* enter low bus mode if no high speed device enabled */
+	schedule_delayed_work(&bus_freq_daemon,
+		msecs_to_jiffies(20000));
+
+	/*
+	 * Need to make sure to an entry for the ddr freq change code
+	 * address in the IRAM page table.
+	 * This is only required if the DDR freq code and suspend/idle
+	 * code are in different OCRAM spaces.
+	 */
+	if ((iram_tlb_phys_addr & 0xFFF00000) !=
+		(ddr_freq_change_iram_phys & 0xFFF00000)) {
+		unsigned long i;
+
+		/*
+		 * Make sure the ddr_iram virtual address has a mapping
+		 * in the IRAM page table.
+		 */
+		i = ((IMX_IO_P2V(ddr_freq_change_iram_phys) >> 20) << 2) / 4;
+		*((unsigned long *)iram_tlb_base_addr + i) =
+			(ddr_freq_change_iram_phys  & 0xFFF00000) |
+			TT_ATTRIB_NON_CACHEABLE_1M;
+	}
+
+	if (cpu_is_imx7d()) {
+		ddr_type = imx_ddrc_get_ddr_type();
+		/* reduce ddr3 normal rate to 400M due to CKE issue on TO1.1 */
+		if (imx_get_soc_revision() == IMX_CHIP_REVISION_1_1 &&
+			ddr_type == IMX_DDR_TYPE_DDR3) {
+			ddr_normal_rate = 400000000;
+			pr_info("ddr3 normal rate changed to 400MHz for TO1.1.\n");
+		}
+		busfreq_func.init   = &init_ddrc_ddr_settings;
+		busfreq_func.update = &update_ddr_freq_imx_smp;
+	}
+
+	if (busfreq_func.init)
+		err = busfreq_func.init(pdev);
+	else
+		err = -EINVAL;
+
+	if (!err) {
+		if (cpu_is_imx7d() && imx_src_is_m4_enabled()) {
+			high_bus_count++;
+			imx_mu_lpm_ready(true);
+		}
+	}
+
+	if (err) {
+		dev_err(busfreq_dev, "Busfreq init of ddr controller failed\n");
+		return err;
+	}
+
+	return 0;
+}
+
+static const struct of_device_id imx_busfreq_ids[] = {
+	{ .compatible = "fsl,imx_busfreq", },
+	{ /* sentinel */ }
+};
+
+static struct platform_driver busfreq_driver = {
+	.driver = {
+		.name = "imx_busfreq",
+		.owner  = THIS_MODULE,
+		.of_match_table = imx_busfreq_ids,
+		},
+	.probe = busfreq_probe,
+};
+
+/*!
+ * Initialise the busfreq_driver.
+ *
+ * @return  The function always returns 0.
+ */
+
+static int __init busfreq_init(void)
+{
+#ifndef CONFIG_MX6_VPU_352M
+	if (platform_driver_register(&busfreq_driver) != 0)
+		return -ENODEV;
+
+	pr_info("Bus freq driver module loaded\n");
+#endif
+	return 0;
+}
+
+static void __exit busfreq_cleanup(void)
+{
+	sysfs_remove_file(&busfreq_dev->kobj, &dev_attr_enable.attr);
+
+	/* Unregister the device structure */
+	platform_driver_unregister(&busfreq_driver);
+	bus_freq_scaling_initialized = 0;
+}
+
+module_init(busfreq_init);
+module_exit(busfreq_cleanup);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("BusFreq driver");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/busfreq_ddr3.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/busfreq_ddr3.c
@@ -0,0 +1,310 @@
+/*
+ * Copyright (C) 2011-2016 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file busfreq_ddr3.c
+ *
+ * @brief iMX6 DDR3 frequency change specific file.
+ *
+ * @ingroup PM
+ */
+#include <asm/cacheflush.h>
+#include <asm/fncpy.h>
+#include <asm/io.h>
+#include <asm/mach/map.h>
+#include <asm/mach-types.h>
+#include <asm/tlb.h>
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/clockchips.h>
+#include <linux/cpumask.h>
+#include <linux/delay.h>
+#include <linux/genalloc.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/irqchip/arm-gic.h>
+#include <linux/kernel.h>
+#include <linux/mutex.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/proc_fs.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/smp.h>
+
+#include "hardware.h"
+#include "common.h"
+
+#define SMP_WFE_CODE_SIZE	0x400
+
+#define MIN_DLL_ON_FREQ		333000000
+#define MAX_DLL_OFF_FREQ	125000000
+#define MMDC0_MPMUR0		0x8b8
+#define MMDC0_MPMUR0_OFFSET	16
+#define MMDC0_MPMUR0_MASK	0x3ff
+
+/*
+ * This structure is for passing necessary data for low level ocram
+ * busfreq code(arch/arm/mach-imx/ddr3_freq_imx6.S), if this struct
+ * definition is changed, the offset definition in
+ * arch/arm/mach-imx/ddr3_freq_imx6.S must be also changed accordingly,
+ * otherwise, the busfreq change function will be broken!
+ *
+ * This structure will be placed in front of the asm code on ocram.
+ */
+struct imx6_busfreq_info {
+	u32 freq;
+	void *ddr_settings;
+	u32 dll_off;
+	void *iomux_offsets;
+	u32 mu_delay_val;
+} __aligned(8);
+
+/* DDR settings */
+static unsigned long (*iram_iomux_settings)[2];
+
+static void __iomem *gic_dist_base;
+
+static int curr_ddr_rate;
+
+void (*imx7d_change_ddr_freq)(u32 freq) = NULL;
+extern void imx7d_ddr3_freq_change(u32 freq);
+extern void imx_lpddr3_freq_change(u32 freq);
+
+extern unsigned int ddr_normal_rate;
+extern int low_bus_freq_mode;
+extern int audio_bus_freq_mode;
+
+extern unsigned long save_ttbr1(void);
+extern void restore_ttbr1(unsigned long ttbr1);
+extern unsigned long ddr_freq_change_iram_base;
+
+extern unsigned long ddr_freq_change_total_size;
+extern unsigned long iram_tlb_phys_addr;
+
+#ifdef CONFIG_SMP
+volatile u32 *wait_for_ddr_freq_update;
+static unsigned int online_cpus;
+static u32 *irqs_used;
+
+void (*wfe_change_ddr_freq)(u32 cpuid, u32 *ddr_freq_change_done);
+void (*imx7_wfe_change_ddr_freq)(u32 cpuid, u32 ocram_base);
+extern void wfe_smp_freq_change(u32 cpuid, u32 *ddr_freq_change_done);
+extern void imx7_smp_wfe(u32 cpuid, u32 ocram_base);
+extern unsigned long wfe_smp_freq_change_start asm("wfe_smp_freq_change_start");
+extern unsigned long wfe_smp_freq_change_end asm("wfe_smp_freq_change_end");
+extern void __iomem *imx_scu_base;
+#endif
+
+int can_change_ddr_freq(void)
+{
+	return 1;
+}
+
+#ifdef CONFIG_SMP
+/*
+ * each active core apart from the one changing
+ * the DDR frequency will execute this function.
+ * the rest of the cores have to remain in WFE
+ * state until the frequency is changed.
+ */
+static irqreturn_t wait_in_wfe_irq(int irq, void *dev_id)
+{
+	u32 me;
+
+	me = smp_processor_id();
+#ifdef CONFIG_LOCAL_TIMERS
+	clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER,
+		&me);
+#endif
+	if (cpu_is_imx7d())
+		imx7_wfe_change_ddr_freq(0x8 * me,
+			(u32)ddr_freq_change_iram_base);
+	else
+		wfe_change_ddr_freq(0xff << (me * 8),
+			(u32 *)&iram_iomux_settings[0][1]);
+#ifdef CONFIG_LOCAL_TIMERS
+	clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT,
+		&me);
+#endif
+
+	return IRQ_HANDLED;
+}
+#endif
+
+/* change the DDR frequency. */
+int update_ddr_freq_imx_smp(int ddr_rate)
+{
+	int me = 0;
+	unsigned long ttbr1;
+#ifdef CONFIG_SMP
+	unsigned int reg = 0;
+	int cpu = 0;
+#endif
+
+	if (!can_change_ddr_freq())
+		return -1;
+
+	if (ddr_rate == curr_ddr_rate)
+		return 0;
+
+	printk(KERN_DEBUG "\nBus freq set to %d start...\n", ddr_rate);
+
+	/* ensure that all Cores are in WFE. */
+	local_irq_disable();
+
+#ifdef CONFIG_SMP
+	me = smp_processor_id();
+
+	/* Make sure all the online cores are active */
+	while (1) {
+		bool not_exited_busfreq = false;
+		u32 reg = 0;
+
+		for_each_online_cpu(cpu) {
+			if (cpu_is_imx7d())
+				reg = *(wait_for_ddr_freq_update + 1);
+
+			if (reg & (0x02 << (cpu * 8)))
+				not_exited_busfreq = true;
+		}
+		if (!not_exited_busfreq)
+			break;
+	}
+
+	wmb();
+	*wait_for_ddr_freq_update = 1;
+	dsb();
+	if (cpu_is_imx7d())
+		online_cpus = *(wait_for_ddr_freq_update + 1);
+	for_each_online_cpu(cpu) {
+		*((char *)(&online_cpus) + (u8)cpu) = 0x02;
+		if (cpu != me) {
+			/* set the interrupt to be pending in the GIC. */
+			reg = 1 << (irqs_used[cpu] % 32);
+			writel_relaxed(reg, gic_dist_base + GIC_DIST_PENDING_SET
+				+ (irqs_used[cpu] / 32) * 4);
+		}
+	}
+	/* Wait for the other active CPUs to idle */
+	while (1) {
+		u32 reg = 0;
+
+		if (cpu_is_imx7d())
+			reg = *(wait_for_ddr_freq_update + 1);
+		reg |= (0x02 << (me * 8));
+		if (reg == online_cpus)
+			break;
+	}
+#endif
+
+	/* Ensure iram_tlb_phys_addr is flushed to DDR. */
+	__cpuc_flush_dcache_area(&iram_tlb_phys_addr,
+		sizeof(iram_tlb_phys_addr));
+
+	ttbr1 = save_ttbr1();
+	/* Now we can change the DDR frequency. */
+	if (cpu_is_imx7d())
+		imx7d_change_ddr_freq(ddr_rate);
+	restore_ttbr1(ttbr1);
+	curr_ddr_rate = ddr_rate;
+
+#ifdef CONFIG_SMP
+	wmb();
+	/* DDR frequency change is done . */
+	*wait_for_ddr_freq_update = 0;
+	dsb();
+
+	/* wake up all the cores. */
+	sev();
+#endif
+
+	local_irq_enable();
+
+	printk(KERN_DEBUG "Bus freq set to %d done! cpu=%d\n", ddr_rate, me);
+
+	return 0;
+}
+
+int init_ddrc_ddr_settings(struct platform_device *busfreq_pdev)
+{
+	int ddr_type = imx_ddrc_get_ddr_type();
+#ifdef CONFIG_SMP
+	struct device_node *node;
+	u32 cpu;
+	struct device *dev = &busfreq_pdev->dev;
+	int err;
+	struct irq_data *d;
+
+	node = of_find_compatible_node(NULL, NULL, "arm,cortex-a7-gic");
+	if (!node) {
+		printk(KERN_ERR "failed to find imx7d-a7-gic device tree data!\n");
+		return -EINVAL;
+	}
+	gic_dist_base = of_iomap(node, 0);
+	WARN(!gic_dist_base, "unable to map gic dist registers\n");
+
+	irqs_used = devm_kzalloc(dev, sizeof(u32) * num_present_cpus(),
+					GFP_KERNEL);
+	for_each_online_cpu(cpu) {
+		int irq;
+		/*
+		 * set up a reserved interrupt to get all
+		 * the active cores into a WFE state
+		 * before changing the DDR frequency.
+		 */
+		irq = platform_get_irq(busfreq_pdev, cpu);
+		err = request_irq(irq, wait_in_wfe_irq,
+			IRQF_PERCPU, "ddrc", NULL);
+		if (err) {
+			dev_err(dev,
+				"Busfreq:request_irq failed %d, err = %d\n",
+				irq, err);
+			return err;
+		}
+		err = irq_set_affinity(irq, cpumask_of(cpu));
+		if (err) {
+			dev_err(dev,
+				"Busfreq: Cannot set irq affinity irq=%d\n",
+				irq);
+			return err;
+		}
+		d = irq_get_irq_data(irq);
+		irqs_used[cpu] = d->hwirq + 32;
+	}
+
+	/* Store the variable used to communicate between cores */
+	wait_for_ddr_freq_update = (u32 *)ddr_freq_change_iram_base;
+	imx7_wfe_change_ddr_freq = (void *)fncpy(
+		(void *)ddr_freq_change_iram_base + 0x8,
+		&imx7_smp_wfe, SMP_WFE_CODE_SIZE - 0x8);
+#endif
+	if (ddr_type == IMX_DDR_TYPE_DDR3)
+		imx7d_change_ddr_freq = (void *)fncpy(
+			(void *)ddr_freq_change_iram_base + SMP_WFE_CODE_SIZE,
+			&imx7d_ddr3_freq_change,
+			MX7_BUSFREQ_OCRAM_SIZE - SMP_WFE_CODE_SIZE);
+	else if (ddr_type == IMX_DDR_TYPE_LPDDR3
+		|| ddr_type == IMX_DDR_TYPE_LPDDR2)
+		imx7d_change_ddr_freq = (void *)fncpy(
+			(void *)ddr_freq_change_iram_base +
+			SMP_WFE_CODE_SIZE,
+			&imx_lpddr3_freq_change,
+			MX7_BUSFREQ_OCRAM_SIZE - SMP_WFE_CODE_SIZE);
+
+	curr_ddr_rate = ddr_normal_rate;
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/busfreq_lpddr2.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/busfreq_lpddr2.c
@@ -0,0 +1,373 @@
+/*
+ * Copyright (C) 2011-2016 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2017 NXP.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file busfreq_lpddr2.c
+ *
+ * @brief iMX6 LPDDR2 frequency change specific file.
+ *
+ * @ingroup PM
+ */
+#include <asm/cacheflush.h>
+#include <asm/fncpy.h>
+#include <asm/io.h>
+#include <asm/mach/map.h>
+#include <asm/mach-types.h>
+#include <asm/tlb.h>
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/clockchips.h>
+#include <linux/cpumask.h>
+#include <linux/delay.h>
+#include <linux/genalloc.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/irqchip/arm-gic.h>
+#include <linux/kernel.h>
+#include <linux/mutex.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/proc_fs.h>
+#include <linux/sched.h>
+#include <linux/smp.h>
+#include <linux/slab.h>
+
+#include "common.h"
+#include "hardware.h"
+
+static struct device *busfreq_dev;
+static int curr_ddr_rate;
+static DEFINE_SPINLOCK(freq_lock);
+
+void (*mx6_change_lpddr2_freq)(u32 ddr_freq, int bus_freq_mode) = NULL;
+
+extern unsigned int ddr_normal_rate;
+extern void mx6_lpddr2_freq_change(u32 freq, int bus_freq_mode);
+extern void imx6_up_lpddr2_freq_change(u32 freq, int bus_freq_mode);
+extern void imx6sll_lpddr2_freq_change(u32 freq, int bus_freq_mode);
+extern unsigned long save_ttbr1(void);
+extern void restore_ttbr1(unsigned long ttbr1);
+extern void mx6q_lpddr2_freq_change(u32 freq, void *ddr_settings);
+extern unsigned long ddr_freq_change_iram_base;
+extern unsigned long imx6_lpddr2_freq_change_start asm("imx6_lpddr2_freq_change_start");
+extern unsigned long imx6_lpddr2_freq_change_end asm("imx6_lpddr2_freq_change_end");
+extern unsigned long mx6q_lpddr2_freq_change_start asm("mx6q_lpddr2_freq_change_start");
+extern unsigned long mx6q_lpddr2_freq_change_end asm("mx6q_lpddr2_freq_change_end");
+extern unsigned long iram_tlb_phys_addr;
+
+struct mmdc_settings_info {
+	u32 size;
+	void *settings;
+	int freq;
+} __aligned(8);
+static struct mmdc_settings_info *mmdc_settings_info;
+void (*mx6_change_lpddr2_freq_smp)(u32 ddr_freq, struct mmdc_settings_info
+		*mmdc_settings_info) = NULL;
+
+static int mmdc_settings_size;
+static unsigned long (*mmdc_settings)[2];
+static unsigned long (*iram_mmdc_settings)[2];
+static unsigned long *iram_settings_size;
+static unsigned long *iram_ddr_freq_chage;
+unsigned long mmdc_timing_settings[][2] = {
+	{0x0C, 0x0},	/* mmdc_mdcfg0 */
+	{0x10, 0x0},	/* mmdc_mdcfg1 */
+	{0x14, 0x0},	/* mmdc_mdcfg2 */
+	{0x18, 0x0},	/* mmdc_mdmisc */
+	{0x38, 0x0},	/* mmdc_mdcfg3lp */
+};
+
+#ifdef CONFIG_SMP
+volatile u32 *wait_for_lpddr2_freq_update;
+static unsigned int online_cpus;
+static u32 *irqs_used;
+void (*wfe_change_lpddr2_freq)(u32 cpuid, u32 *ddr_freq_change_done);
+extern void wfe_smp_freq_change(u32 cpuid, u32 *ddr_freq_change_done);
+extern unsigned long wfe_smp_freq_change_start asm("wfe_smp_freq_change_start");
+extern unsigned long wfe_smp_freq_change_end asm("wfe_smp_freq_change_end");
+extern void __iomem *imx_scu_base;
+static void __iomem *gic_dist_base;
+#endif
+
+#ifdef CONFIG_SMP
+static irqreturn_t wait_in_wfe_irq(int irq, void *dev_id)
+{
+	u32 me;
+
+	me = smp_processor_id();
+#ifdef CONFIG_LOCAL_TIMERS
+	clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &me);
+#endif
+	wfe_change_lpddr2_freq(0xff << (me * 8),
+			(u32 *)ddr_freq_change_iram_base);
+#ifdef CONFIG_LOCAL_TIMERS
+	clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &me);
+#endif
+	return IRQ_HANDLED;
+}
+#endif
+
+/* change the DDR frequency. */
+int update_lpddr2_freq(int ddr_rate)
+{
+	unsigned long ttbr1, flags;
+	int mode = get_bus_freq_mode();
+
+	if (ddr_rate == curr_ddr_rate)
+		return 0;
+
+	printk(KERN_DEBUG "\nBus freq set to %d start...\n", ddr_rate);
+
+	spin_lock_irqsave(&freq_lock, flags);
+	/*
+	 * Flush the TLB, to ensure no TLB maintenance occurs
+	 * when DDR is in self-refresh.
+	 */
+	ttbr1 = save_ttbr1();
+
+	/* Now change DDR frequency. */
+	if (cpu_is_imx6sl())
+		mx6_change_lpddr2_freq(ddr_rate,
+			(mode == BUS_FREQ_LOW || mode == BUS_FREQ_ULTRA_LOW) ? 1 : 0);
+	else
+		mx6_change_lpddr2_freq(ddr_rate,
+			(mode == BUS_FREQ_LOW || mode == BUS_FREQ_AUDIO) ? 1 : 0);
+
+	restore_ttbr1(ttbr1);
+
+	curr_ddr_rate = ddr_rate;
+	spin_unlock_irqrestore(&freq_lock, flags);
+
+	printk(KERN_DEBUG "\nBus freq set to %d done...\n", ddr_rate);
+
+	return 0;
+}
+
+int init_mmdc_lpddr2_settings(struct platform_device *busfreq_pdev)
+{
+	unsigned long ddr_code_size;
+	busfreq_dev = &busfreq_pdev->dev;
+
+	ddr_code_size = SZ_4K;
+
+	if (cpu_is_imx6sl())
+		mx6_change_lpddr2_freq = (void *)fncpy(
+			(void *)ddr_freq_change_iram_base,
+			&mx6_lpddr2_freq_change, ddr_code_size);
+	if (cpu_is_imx6sx() || cpu_is_imx6ul() || cpu_is_imx6ull())
+		mx6_change_lpddr2_freq = (void *)fncpy(
+			(void *)ddr_freq_change_iram_base,
+			&imx6_up_lpddr2_freq_change, ddr_code_size);
+	if (cpu_is_imx6sll())
+		mx6_change_lpddr2_freq = (void *)fncpy(
+			(void *)ddr_freq_change_iram_base,
+			&imx6sll_lpddr2_freq_change, ddr_code_size);
+
+	curr_ddr_rate = ddr_normal_rate;
+
+	return 0;
+}
+
+int update_lpddr2_freq_smp(int ddr_rate)
+{
+	unsigned long ttbr1;
+	int i, me = 0;
+#ifdef CONFIG_SMP
+	int cpu = 0;
+	u32 reg = 0;
+#endif
+
+	if (ddr_rate == curr_ddr_rate)
+		return 0;
+
+	printk(KERN_DEBUG "Bus freq set to %d start...\n", ddr_rate);
+
+	for (i=0; i < mmdc_settings_size; i++) {
+		iram_mmdc_settings[i][0] = mmdc_settings[i][0];
+		iram_mmdc_settings[i][1] = mmdc_settings[i][1];
+	}
+
+	mmdc_settings_info->size = mmdc_settings_size;
+	mmdc_settings_info->settings = iram_mmdc_settings;
+	mmdc_settings_info->freq = curr_ddr_rate;
+
+	/* ensure that all Cores are in WFE. */
+	local_irq_disable();
+
+#ifdef CONFIG_SMP
+	me = smp_processor_id();
+
+	/* Make sure all the online cores are active */
+	while (1) {
+		bool not_exited_busfreq = false;
+		for_each_online_cpu(cpu) {
+			reg = __raw_readl(imx_scu_base + 0x08);
+			if (reg & (0x02 << (cpu * 8)))
+				not_exited_busfreq = true;
+		}
+		if (!not_exited_busfreq)
+			break;
+	}
+
+	wmb();
+	*wait_for_lpddr2_freq_update = 1;
+	dsb();
+	online_cpus = readl_relaxed(imx_scu_base + 0x08);
+	for_each_online_cpu(cpu) {
+		*((char *)(&online_cpus) + (u8)cpu) = 0x02;
+		if (cpu != me) {
+			reg = 1 << (irqs_used[cpu] % 32);
+			writel_relaxed(reg, gic_dist_base + GIC_DIST_PENDING_SET
+					+ (irqs_used[cpu] / 32) * 4);
+		}
+	}
+
+	/* Wait for the other active CPUs to idle */
+	while (1) {
+		reg = 0;
+		reg = readl_relaxed(imx_scu_base + 0x08);
+		reg |= (0x02 << (me * 8));
+		if (reg == online_cpus)
+			break;
+	}
+#endif
+
+	/* Ensure iram_tlb_phys_addr is flushed to DDR. */
+	__cpuc_flush_dcache_area(&iram_tlb_phys_addr,
+			sizeof(iram_tlb_phys_addr));
+	outer_clean_range(__pa(&iram_tlb_phys_addr),
+			__pa(&iram_tlb_phys_addr + 1));
+	/*
+	 * Flush the TLB, to ensure no TLB maintenance occurs
+	 * when DDR is in self-refresh.
+	 */
+	ttbr1 = save_ttbr1();
+
+	curr_ddr_rate = ddr_rate;
+
+	/* Now change DDR frequency. */
+	mx6_change_lpddr2_freq_smp(ddr_rate, mmdc_settings_info);
+
+	restore_ttbr1(ttbr1);
+
+#ifdef CONFIG_SMP
+	wmb();
+	/* DDR frequency change is done . */
+	*wait_for_lpddr2_freq_update = 0;
+	dsb();
+	/* wake up all the cores. */
+	sev();
+#endif
+
+	local_irq_enable();
+
+	printk(KERN_DEBUG "Bus freq set to %d done! cpu=%d\n", ddr_rate, me);
+
+	return 0;
+}
+
+int init_mmdc_lpddr2_settings_mx6q(struct platform_device *busfreq_pdev)
+{
+	struct device *dev = &busfreq_pdev->dev;
+	unsigned long ddr_code_size = 0;
+	unsigned long wfe_code_size = 0;
+	struct device_node *node;
+	void __iomem *mmdc_base;
+	int i;
+#ifdef CONFIG_SMP
+	struct irq_data *d;
+	u32 cpu;
+	int err;
+#endif
+
+	node = of_find_compatible_node(NULL, NULL, "fsl,imx6q-mmdc");
+	if (!node) {
+		printk(KERN_ERR "failed to find mmdc device tree data!\n");
+		return -EINVAL;
+	}
+
+	mmdc_base = of_iomap(node, 0);
+	if (!mmdc_base) {
+		dev_err(dev, "unable to map mmdc registers\n");
+		return -EINVAL;
+	}
+
+	mmdc_settings_size = ARRAY_SIZE(mmdc_timing_settings);
+	mmdc_settings = kmalloc((mmdc_settings_size * 8), GFP_KERNEL);
+	memcpy(mmdc_settings, mmdc_timing_settings,
+			sizeof(mmdc_timing_settings));
+
+#ifdef CONFIG_SMP
+	node = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-gic");
+	if (!node) {
+		printk(KERN_ERR "failed to find imx6q-a9-gic device tree data!\n");
+		return -EINVAL;
+	}
+
+	gic_dist_base = of_iomap(node, 0);
+	WARN(!gic_dist_base, "unable to map gic dist registers\n");
+
+	irqs_used = devm_kzalloc(dev, sizeof(u32) * num_present_cpus(),
+			GFP_KERNEL);
+
+	for_each_online_cpu(cpu) {
+		int irq = platform_get_irq(busfreq_pdev, cpu);
+		err = request_irq(irq, wait_in_wfe_irq, IRQF_PERCPU,
+				"mmdc_1", NULL);
+		if (err) {
+			dev_err(dev,
+				"Busfreq:request_irq failed %d, err = %d\n",
+				irq, err);
+			return err;
+		}
+		err = irq_set_affinity(irq, cpumask_of(cpu));
+		if (err) {
+			dev_err(dev,
+				"Busfreq: Cannot set irq affinity irq=%d,\n",
+				irq);
+			return err;
+		}
+		d = irq_get_irq_data(irq);
+		irqs_used[cpu] = d->hwirq + 32;
+	}
+
+	/* Stoange_iram_basee the variable used to communicate between cores in
+	 * a non-cacheable IRAM area */
+	wait_for_lpddr2_freq_update = (u32 *)ddr_freq_change_iram_base;
+	wfe_code_size = (&wfe_smp_freq_change_end - &wfe_smp_freq_change_start) *4;
+
+	wfe_change_lpddr2_freq = (void *)fncpy((void *)ddr_freq_change_iram_base + 0x8,
+			&wfe_smp_freq_change, wfe_code_size);
+#endif
+	iram_settings_size = (void *)ddr_freq_change_iram_base + wfe_code_size + 0x8;
+	iram_mmdc_settings = (void *)iram_settings_size + sizeof(*mmdc_settings_info);
+	iram_ddr_freq_chage = (void *)iram_mmdc_settings + (mmdc_settings_size * 8) + 0x8;
+	mmdc_settings_info = (struct mmdc_settings_info *)iram_settings_size;
+
+	ddr_code_size = (&mx6q_lpddr2_freq_change_end -&mx6q_lpddr2_freq_change_start) *4;
+
+	mx6_change_lpddr2_freq_smp = (void *)fncpy(iram_ddr_freq_chage,
+			&mx6q_lpddr2_freq_change, ddr_code_size);
+
+	/* save initial mmdc boot timing settings */
+	for (i=0; i < mmdc_settings_size; i++)
+		mmdc_settings[i][1] = readl_relaxed(mmdc_base +
+				mmdc_settings[i][0]);
+
+	curr_ddr_rate = ddr_normal_rate;
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/common.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/common.c
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_net.h>
+#include <linux/slab.h>
+
+#include "hardware.h"
+
+unsigned long iram_tlb_base_addr;
+unsigned long iram_tlb_phys_addr;
+
+unsigned long save_ttbr1(void)
+{
+	unsigned long lttbr1;
+	asm volatile(
+		".align 4\n"
+		"mrc p15, 0, %0, c2, c0, 1\n"
+		: "=r" (lttbr1)
+	);
+	return lttbr1;
+}
+
+void restore_ttbr1(unsigned long ttbr1)
+{
+	asm volatile(
+		".align 4\n"
+		"mcr p15, 0, %0, c2, c0, 1\n"
+		: : "r" (ttbr1)
+	);
+}
+
+#define OCOTP_MAC_OFF	(cpu_is_imx7d() ? 0x640 : 0x620)
+#define OCOTP_MACn(n)	(OCOTP_MAC_OFF + (n) * 0x10)
+void __init imx6_enet_mac_init(const char *enet_compat, const char *ocotp_compat)
+{
+	struct device_node *ocotp_np, *enet_np, *from = NULL;
+	void __iomem *base;
+	struct property *newmac;
+	u32 macaddr_low;
+	u32 macaddr_high = 0;
+	u32 macaddr1_high = 0;
+	u8 *macaddr;
+	int i, id;
+
+	for (i = 0; i < 2; i++) {
+		enet_np = of_find_compatible_node(from, NULL, enet_compat);
+		if (!enet_np)
+			return;
+
+		from = enet_np;
+
+		if (of_get_mac_address(enet_np))
+			goto put_enet_node;
+
+		id = of_alias_get_id(enet_np, "ethernet");
+		if (id < 0)
+			id = i;
+
+		ocotp_np = of_find_compatible_node(NULL, NULL, ocotp_compat);
+		if (!ocotp_np) {
+			pr_warn("failed to find ocotp node\n");
+			goto put_enet_node;
+		}
+
+		base = of_iomap(ocotp_np, 0);
+		if (!base) {
+			pr_warn("failed to map ocotp\n");
+			goto put_ocotp_node;
+		}
+
+		macaddr_low = readl_relaxed(base + OCOTP_MACn(1));
+		if (id)
+			macaddr1_high = readl_relaxed(base + OCOTP_MACn(2));
+		else
+			macaddr_high = readl_relaxed(base + OCOTP_MACn(0));
+
+		newmac = kzalloc(sizeof(*newmac) + 6, GFP_KERNEL);
+		if (!newmac)
+			goto put_ocotp_node;
+
+		newmac->value = newmac + 1;
+		newmac->length = 6;
+		newmac->name = kstrdup("local-mac-address", GFP_KERNEL);
+		if (!newmac->name) {
+			kfree(newmac);
+			goto put_ocotp_node;
+		}
+
+		macaddr = newmac->value;
+		if (id) {
+			macaddr[5] = (macaddr_low >> 16) & 0xff;
+			macaddr[4] = (macaddr_low >> 24) & 0xff;
+			macaddr[3] = macaddr1_high & 0xff;
+			macaddr[2] = (macaddr1_high >> 8) & 0xff;
+			macaddr[1] = (macaddr1_high >> 16) & 0xff;
+			macaddr[0] = (macaddr1_high >> 24) & 0xff;
+		} else {
+			macaddr[5] = macaddr_high & 0xff;
+			macaddr[4] = (macaddr_high >> 8) & 0xff;
+			macaddr[3] = (macaddr_high >> 16) & 0xff;
+			macaddr[2] = (macaddr_high >> 24) & 0xff;
+			macaddr[1] = macaddr_low & 0xff;
+			macaddr[0] = (macaddr_low >> 8) & 0xff;
+		}
+
+		of_update_property(enet_np, newmac);
+
+put_ocotp_node:
+	of_node_put(ocotp_np);
+put_enet_node:
+	of_node_put(enet_np);
+	}
+}
+
+#ifndef CONFIG_HAVE_IMX_GPC
+int imx_gpc_mf_request_on(unsigned int irq, unsigned int on) { return 0; }
+EXPORT_SYMBOL_GPL(imx_gpc_mf_request_on);
+#endif
+
+#if !defined(CONFIG_SOC_IMX6SL)
+u32 imx6_lpddr2_freq_change_start, imx6_lpddr2_freq_change_end;
+void mx6_lpddr2_freq_change(u32 freq, int bus_freq_mode) {}
+#endif
+
+#if !defined(CONFIG_SOC_IMX6SLL)
+void imx6sll_lpddr2_freq_change(u32 freq, int bus_freq_mode) {}
+#endif
+
+#if !defined(CONFIG_SOC_IMX6SX) && !defined(CONFIG_SOC_IMX6UL)
+u32 imx6_up_ddr3_freq_change_start, imx6_up_ddr3_freq_change_end;
+struct imx6_busfreq_info {
+} __aligned(8);
+void imx6_up_ddr3_freq_change(struct imx6_busfreq_info *busfreq_info) {}
+void imx6_up_lpddr2_freq_change(u32 freq, int bus_freq_mode) {}
+#endif
+
+#if !defined(CONFIG_SOC_IMX6ULL)
+u32 mx6ull_lpm_wfi_start, mx6ull_lpm_wfi_end;
+void imx6ull_low_power_idle(void) {}
+#endif
+
+#if !defined(CONFIG_SOC_IMX6Q)
+u32 mx6_ddr3_freq_change_start, mx6_ddr3_freq_change_end;
+u32 mx6q_lpddr2_freq_change_start, mx6q_lpddr2_freq_change_end;
+u32 wfe_smp_freq_change_start, wfe_smp_freq_change_end;
+void mx6_ddr3_freq_change(u32 freq, void *ddr_settings,
+	bool dll_mode, void *iomux_offsets) {}
+void mx6q_lpddr2_freq_change(u32 freq, void *ddr_settings) {}
+void wfe_smp_freq_change(u32 cpuid, u32 *ddr_freq_change_done) {}
+#endif
+
+#if !defined(CONFIG_SOC_IMX7D)
+void imx7_smp_wfe(u32 cpuid, u32 ocram_base) {}
+void imx7d_ddr3_freq_change(u32 freq) {}
+#endif
+
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/common.h
+++ linux-ein-5.4.0/arch/arm/mach-imx/common.h
@@ -8,6 +8,7 @@
 #define __ASM_ARCH_MXC_COMMON_H__
 
 #include <linux/reboot.h>
+#include <soc/imx/src.h>
 
 struct irq_data;
 struct platform_device;
@@ -49,16 +50,25 @@
 int mxc_device_init(void);
 void imx_set_soc_revision(unsigned int rev);
 void imx_init_revision_from_anatop(void);
-struct device *imx_soc_device_init(void);
 void imx6_enable_rbc(bool enable);
 void imx_gpc_check_dt(void);
 void imx_gpc_set_arm_power_in_lpm(bool power_off);
 void imx_gpc_set_l2_mem_power_in_lpm(bool power_off);
 void imx_gpc_set_arm_power_up_timing(u32 sw2iso, u32 sw);
 void imx_gpc_set_arm_power_down_timing(u32 sw2iso, u32 sw);
+void imx_gpcv2_pre_suspend(bool arm_power_off);
+void imx_gpcv2_post_resume(void);
+unsigned int imx_gpcv2_is_mf_mix_off(void);
+void imx_gpcv2_enable_wakeup_for_m4(void);
+void imx_gpcv2_disable_wakeup_for_m4(void);
 void imx25_pm_init(void);
 void imx27_pm_init(void);
 void imx5_pmu_init(void);
+#ifdef CONFIG_HAVE_IMX_MU
+int imx_mu_lpm_ready(bool ready);
+#else
+static inline int imx_mu_lpm_ready(bool ready) { return 0; }
+#endif
 
 enum mxc_cpu_pwr_mode {
 	WAIT_CLOCKED,		/* wfi only */
@@ -89,6 +99,32 @@
 static inline void imx_scu_map_io(void) {}
 static inline void imx_smp_prepare(void) {}
 #endif
+void imx_mu_enable_m4_irqs_in_gic(bool enable);
+#ifdef CONFIG_HAVE_IMX_GPC
+void imx_gpc_add_m4_wake_up_irq(u32 irq, bool enable);
+unsigned int imx_gpc_is_m4_sleeping(void);
+#else
+static inline void imx_gpc_add_m4_wake_up_irq(u32 irq, bool enable) {}
+static inline unsigned int imx_gpc_is_m4_sleeping(void) { return 0; }
+#endif
+#ifdef CONFIG_HAVE_IMX_GPCV2
+int imx_gpcv2_mf_power_on(unsigned int irq, unsigned int on);
+void imx_gpcv2_set_core1_pdn_pup_by_software(bool pdn);
+void imx_gpcv2_add_m4_wake_up_irq(u32 hwirq, bool enable);
+#else
+static inline int imx_gpcv2_mf_power_on(unsigned int irq, unsigned int on) { return 0; }
+static inline void imx_gpcv2_set_core1_pdn_pup_by_software(bool pdn) {}
+static inline void imx_gpcv2_add_m4_wake_up_irq(u32 hwirq, bool enable) {}
+#endif
+void imx_gpc_hold_m4_in_sleep(void);
+void imx_gpc_release_m4_in_sleep(void);
+void __init imx_gpcv2_check_dt(void);
+void imx_gpcv2_set_lpm_mode(enum mxc_cpu_pwr_mode mode);
+void imx_gpcv2_set_cpu_power_gate_in_idle(bool pdn);
+void imx_gpcv2_enable_rbc(bool enable);
+bool imx_mu_is_m4_in_low_freq(void);
+bool imx_mu_is_m4_in_stop(void);
+void imx_mu_set_m4_run_mode(void);
 void imx_src_init(void);
 void imx_gpc_pre_suspend(bool arm_power_off);
 void imx_gpc_post_resume(void);
@@ -96,28 +132,47 @@
 void imx_gpc_restore_all(void);
 void imx_gpc_hwirq_mask(unsigned int hwirq);
 void imx_gpc_hwirq_unmask(unsigned int hwirq);
+unsigned int imx_gpc_is_mf_mix_off(void);
 void imx_anatop_init(void);
 void imx_anatop_pre_suspend(void);
 void imx_anatop_post_resume(void);
 int imx6_set_lpm(enum mxc_cpu_pwr_mode mode);
 void imx6_set_int_mem_clk_lpm(bool enable);
-void imx6sl_set_wait_clk(bool enter);
+void imx7d_low_power_idle(void);
+#ifdef CONFIG_HAVE_IMX_MMDC
 int imx_mmdc_get_ddr_type(void);
+int imx_mmdc_get_lpddr2_2ch_mode(void);
+#else
+static inline int imx_mmdc_get_ddr_type(void) { return 0; }
+static inline int imx_mmdc_get_lpddr2_2ch_mode(void) { return 0; }
+#endif
 int imx7ulp_set_lpm(enum ulp_cpu_pwr_mode mode);
+void imx_busfreq_map_io(void);
+void imx7_pm_map_io(void);
 
 void imx_cpu_die(unsigned int cpu);
 int imx_cpu_kill(unsigned int cpu);
 
 #ifdef CONFIG_SUSPEND
 void v7_cpu_resume(void);
+void ca7_cpu_resume(void);
 void imx53_suspend(void __iomem *ocram_vbase);
 extern const u32 imx53_suspend_sz;
 void imx6_suspend(void __iomem *ocram_vbase);
+void imx7_suspend(void __iomem *ocram_vbase);
 #else
 static inline void v7_cpu_resume(void) {}
+static inline void ca7_cpu_resume(void) {}
 static inline void imx53_suspend(void __iomem *ocram_vbase) {}
 static const u32 imx53_suspend_sz;
 static inline void imx6_suspend(void __iomem *ocram_vbase) {}
+static inline void imx7_suspend(void __iomem *ocram_vbase) {}
+#endif
+
+#ifdef CONFIG_HAVE_IMX_DDRC
+int imx_ddrc_get_ddr_type(void);
+#else
+static inline int imx_ddrc_get_ddr_type(void) { return 0; }
 #endif
 
 void imx6_pm_ccm_init(const char *ccm_compat);
@@ -126,6 +181,7 @@
 void imx6sl_pm_init(void);
 void imx6sx_pm_init(void);
 void imx6ul_pm_init(void);
+void imx7d_pm_init(void);
 void imx7ulp_pm_init(void);
 
 #ifdef CONFIG_PM
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpu-imx25.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpu-imx25.c
@@ -23,6 +23,7 @@
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx25-iim");
 	iim_base = of_iomap(np, 0);
+	of_node_put(np);
 	BUG_ON(!iim_base);
 	rev = readl(iim_base + MXC_IIMSREV);
 	iounmap(iim_base);
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpu-imx27.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpu-imx27.c
@@ -9,6 +9,7 @@
  */
 
 #include <linux/io.h>
+#include <linux/of_address.h>
 #include <linux/module.h>
 
 #include "hardware.h"
@@ -17,16 +18,24 @@
 static int mx27_cpu_partnumber;
 
 #define SYS_CHIP_ID             0x00    /* The offset of CHIP ID register */
+#define SYSCTRL_OFFSET		0x800	/* Offset from CCM base address */
 
 static int mx27_read_cpu_rev(void)
 {
+	void __iomem *ccm_base;
+	struct device_node *np;
 	u32 val;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx27-ccm");
+	ccm_base = of_iomap(np, 0);
+	of_node_put(np);
+	BUG_ON(!ccm_base);
 	/*
 	 * now we have access to the IO registers. As we need
 	 * the silicon revision very early we read it here to
 	 * avoid any further hooks
 	*/
-	val = imx_readl(MX27_IO_ADDRESS(MX27_SYSCTRL_BASE_ADDR + SYS_CHIP_ID));
+	val = imx_readl(ccm_base + SYSCTRL_OFFSET + SYS_CHIP_ID);
 
 	mx27_cpu_partnumber = (int)((val >> 12) & 0xFFFF);
 
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpu-imx31.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpu-imx31.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/module.h>
+#include <linux/of_address.h>
 #include <linux/io.h>
 
 #include "common.h"
@@ -32,10 +33,17 @@
 
 static int mx31_read_cpu_rev(void)
 {
+	void __iomem *iim_base;
+	struct device_node *np;
 	u32 i, srev;
 
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx31-iim");
+	iim_base = of_iomap(np, 0);
+	of_node_put(np);
+	BUG_ON(!iim_base);
+
 	/* read SREV register from IIM module */
-	srev = imx_readl(MX31_IO_ADDRESS(MX31_IIM_BASE_ADDR + MXC_IIMSREV));
+	srev = imx_readl(iim_base + MXC_IIMSREV);
 	srev &= 0xff;
 
 	for (i = 0; i < ARRAY_SIZE(mx31_cpu_type); i++)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpu-imx35.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpu-imx35.c
@@ -5,6 +5,7 @@
  * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>
  */
 #include <linux/module.h>
+#include <linux/of_address.h>
 #include <linux/io.h>
 
 #include "hardware.h"
@@ -14,9 +15,16 @@
 
 static int mx35_read_cpu_rev(void)
 {
+	void __iomem *iim_base;
+	struct device_node *np;
 	u32 rev;
 
-	rev = imx_readl(MX35_IO_ADDRESS(MX35_IIM_BASE_ADDR + MXC_IIMSREV));
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx35-iim");
+	iim_base = of_iomap(np, 0);
+	of_node_put(np);
+	BUG_ON(!iim_base);
+
+	rev = imx_readl(iim_base + MXC_IIMSREV);
 	switch (rev) {
 	case 0x00:
 		return IMX_CHIP_REVISION_1_0;
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpu-imx5.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpu-imx5.c
@@ -28,6 +28,7 @@
 
 	np = of_find_compatible_node(NULL, NULL, compat);
 	iim_base = of_iomap(np, 0);
+	of_node_put(np);
 	WARN_ON(!iim_base);
 
 	srev = readl(iim_base + IIM_SREV) & 0xff;
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpu.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpu.c
@@ -4,8 +4,6 @@
 #include <linux/io.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
-#include <linux/slab.h>
-#include <linux/sys_soc.h>
 
 #include "hardware.h"
 #include "common.h"
@@ -72,102 +70,3 @@
 		imx_set_aips(aips_base_addr);
 	}
 }
-
-struct device * __init imx_soc_device_init(void)
-{
-	struct soc_device_attribute *soc_dev_attr;
-	struct soc_device *soc_dev;
-	struct device_node *root;
-	const char *soc_id;
-	int ret;
-
-	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
-	if (!soc_dev_attr)
-		return NULL;
-
-	soc_dev_attr->family = "Freescale i.MX";
-
-	root = of_find_node_by_path("/");
-	ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
-	of_node_put(root);
-	if (ret)
-		goto free_soc;
-
-	switch (__mxc_cpu_type) {
-	case MXC_CPU_MX1:
-		soc_id = "i.MX1";
-		break;
-	case MXC_CPU_MX21:
-		soc_id = "i.MX21";
-		break;
-	case MXC_CPU_MX25:
-		soc_id = "i.MX25";
-		break;
-	case MXC_CPU_MX27:
-		soc_id = "i.MX27";
-		break;
-	case MXC_CPU_MX31:
-		soc_id = "i.MX31";
-		break;
-	case MXC_CPU_MX35:
-		soc_id = "i.MX35";
-		break;
-	case MXC_CPU_MX51:
-		soc_id = "i.MX51";
-		break;
-	case MXC_CPU_MX53:
-		soc_id = "i.MX53";
-		break;
-	case MXC_CPU_IMX6SL:
-		soc_id = "i.MX6SL";
-		break;
-	case MXC_CPU_IMX6DL:
-		soc_id = "i.MX6DL";
-		break;
-	case MXC_CPU_IMX6SX:
-		soc_id = "i.MX6SX";
-		break;
-	case MXC_CPU_IMX6Q:
-		soc_id = "i.MX6Q";
-		break;
-	case MXC_CPU_IMX6UL:
-		soc_id = "i.MX6UL";
-		break;
-	case MXC_CPU_IMX6ULL:
-		soc_id = "i.MX6ULL";
-		break;
-	case MXC_CPU_IMX6ULZ:
-		soc_id = "i.MX6ULZ";
-		break;
-	case MXC_CPU_IMX6SLL:
-		soc_id = "i.MX6SLL";
-		break;
-	case MXC_CPU_IMX7D:
-		soc_id = "i.MX7D";
-		break;
-	case MXC_CPU_IMX7ULP:
-		soc_id = "i.MX7ULP";
-		break;
-	default:
-		soc_id = "Unknown";
-	}
-	soc_dev_attr->soc_id = soc_id;
-
-	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%d.%d",
-					   (imx_soc_revision >> 4) & 0xf,
-					   imx_soc_revision & 0xf);
-	if (!soc_dev_attr->revision)
-		goto free_soc;
-
-	soc_dev = soc_device_register(soc_dev_attr);
-	if (IS_ERR(soc_dev))
-		goto free_rev;
-
-	return soc_device_to_device(soc_dev);
-
-free_rev:
-	kfree(soc_dev_attr->revision);
-free_soc:
-	kfree(soc_dev_attr);
-	return NULL;
-}
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpuidle-imx6q.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpuidle-imx6q.c
@@ -62,13 +62,13 @@
  */
 void imx6q_cpuidle_fec_irqs_used(void)
 {
-	imx6q_cpuidle_driver.states[1].disabled = true;
+	cpuidle_driver_state_disabled(&imx6q_cpuidle_driver, 1, true);
 }
 EXPORT_SYMBOL_GPL(imx6q_cpuidle_fec_irqs_used);
 
 void imx6q_cpuidle_fec_irqs_unused(void)
 {
-	imx6q_cpuidle_driver.states[1].disabled = false;
+	cpuidle_driver_state_disabled(&imx6q_cpuidle_driver, 1, false);
 }
 EXPORT_SYMBOL_GPL(imx6q_cpuidle_fec_irqs_unused);
 
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpuidle-imx6sl.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpuidle-imx6sl.c
@@ -3,6 +3,7 @@
  * Copyright (C) 2014 Freescale Semiconductor, Inc.
  */
 
+#include <linux/clk/imx.h>
 #include <linux/cpuidle.h>
 #include <linux/module.h>
 #include <asm/cpuidle.h>
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpuidle-imx6sx.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpuidle-imx6sx.c
@@ -41,7 +41,6 @@
 		break;
 	case 2:
 		imx6_enable_rbc(true);
-		imx_gpc_set_arm_power_in_lpm(true);
 		imx_set_cpu_jump(0, v7_cpu_resume);
 		/* Need to notify there is a cpu pm operation. */
 		cpu_pm_enter();
@@ -51,7 +50,6 @@
 
 		cpu_cluster_pm_exit();
 		cpu_pm_exit();
-		imx_gpc_set_arm_power_in_lpm(false);
 		imx6_enable_rbc(false);
 		break;
 	default:
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpuidle-imx7d.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpuidle-imx7d.c
@@ -0,0 +1,390 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/busfreq-imx.h>
+#include <linux/cpuidle.h>
+#include <linux/cpu_pm.h>
+#include <linux/delay.h>
+#include <linux/genalloc.h>
+#include <linux/interrupt.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+#include <linux/psci.h>
+#include <asm/cp15.h>
+#include <asm/cpuidle.h>
+#include <asm/fncpy.h>
+#include <asm/mach/map.h>
+#include <asm/proc-fns.h>
+#include <asm/suspend.h>
+#include <asm/tlb.h>
+
+#include <uapi/linux/psci.h>
+
+#include "common.h"
+#include "cpuidle.h"
+#include "hardware.h"
+
+#define XTALOSC24M_OSC_CONFIG0	0x10
+#define XTALOSC24M_OSC_CONFIG1	0x20
+#define XTALOSC24M_OSC_CONFIG2	0x30
+#define XTALOSC24M_OSC_CONFIG0_RC_OSC_PROG_CUR_SHIFT	24
+#define XTALOSC24M_OSC_CONFIG0_HYST_MINUS_MASK		0xf
+#define XTALOSC24M_OSC_CONFIG0_HYST_MINUS_SHIFT		16
+#define XTALOSC24M_OSC_CONFIG0_HYST_PLUS_MASK		0xf
+#define XTALOSC24M_OSC_CONFIG0_HYST_PLUS_SHIFT		12
+#define XTALOSC24M_OSC_CONFIG0_RC_OSC_PROG_SHIFT	4
+#define XTALOSC24M_OSC_CONFIG0_ENABLE_SHIFT		1
+#define XTALOSC24M_OSC_CONFIG0_START_SHIFT		0
+#define XTALOSC24M_OSC_CONFIG1_COUNT_RC_CUR_SHIFT	20
+#define XTALOSC24M_OSC_CONFIG1_COUNT_RC_TRG_SHIFT	0
+#define XTALOSC24M_OSC_CONFIG2_COUNT_1M_TRG_MASK	0xfff
+#define XTALOSC24M_OSC_CONFIG2_COUNT_1M_TRG_SHIFT	0
+
+#define XTALOSC_CTRL_24M				0x0
+#define XTALOSC_CTRL_24M_RC_OSC_EN_SHIFT		13
+#define REG_SET						0x4
+
+static void __iomem *wfi_iram_base;
+static void __iomem *wfi_iram_base_phys;
+extern unsigned long iram_tlb_phys_addr;
+
+struct imx7_pm_base {
+	phys_addr_t pbase;
+	void __iomem *vbase;
+};
+
+struct imx7_cpuidle_pm_info {
+	phys_addr_t vbase; /* The virtual address of pm_info. */
+	phys_addr_t pbase; /* The physical address of pm_info. */
+	phys_addr_t resume_addr; /* The physical resume address for asm code */
+	u32 pm_info_size;
+	u32 ttbr;
+	u32 num_online_cpus;
+	u32 num_lpi_cpus;
+	atomic_t val;
+	atomic_t flag0;
+	atomic_t flag1;
+	struct imx7_pm_base ddrc_base;
+	struct imx7_pm_base ccm_base;
+	struct imx7_pm_base anatop_base;
+	struct imx7_pm_base src_base;
+	struct imx7_pm_base iomuxc_gpr_base;
+	struct imx7_pm_base gpc_base;
+	struct imx7_pm_base gic_dist_base;
+} __aligned(8);
+
+static atomic_t master_lpi = ATOMIC_INIT(0);
+static atomic_t master_wait = ATOMIC_INIT(0);
+
+static void (*imx7d_wfi_in_iram_fn)(void __iomem *iram_vbase);
+static struct imx7_cpuidle_pm_info *cpuidle_pm_info;
+
+#define MX7D_POWERDWN_IDLE_PARAM	\
+	((1 << PSCI_0_2_POWER_STATE_ID_SHIFT) | \
+	 (1 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) | \
+	 (PSCI_POWER_STATE_TYPE_POWER_DOWN << PSCI_0_2_POWER_STATE_TYPE_SHIFT))
+
+#define MX7D_STANDBY_IDLE_PARAM	\
+	((1 << PSCI_0_2_POWER_STATE_ID_SHIFT) | \
+	 (1 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) | \
+	 (PSCI_POWER_STATE_TYPE_STANDBY << PSCI_0_2_POWER_STATE_TYPE_SHIFT))
+
+/* Mapped for the kernel, unlike cpuidle_pm_info->gic_dist_base.vbase */
+static void __iomem *imx7d_cpuidle_gic_base;
+
+static void imx_pen_lock(int cpu)
+{
+	if (cpu == 0) {
+		atomic_set(&cpuidle_pm_info->flag0, 1);
+		dsb();
+		atomic_set(&cpuidle_pm_info->val, cpu);
+		do {
+			dsb();
+		} while (atomic_read(&cpuidle_pm_info->flag1) == 1
+			&& atomic_read(&cpuidle_pm_info->val) == cpu)
+			;
+	} else {
+		atomic_set(&cpuidle_pm_info->flag1, 1);
+		dsb();
+		atomic_set(&cpuidle_pm_info->val, cpu);
+		do {
+			dsb();
+		} while (atomic_read(&cpuidle_pm_info->flag0) == 1
+			&& atomic_read(&cpuidle_pm_info->val) == cpu)
+			;
+	}
+}
+
+static void imx_pen_unlock(int cpu)
+{
+	dsb();
+	if (cpu == 0)
+		atomic_set(&cpuidle_pm_info->flag0, 0);
+	else
+		atomic_set(&cpuidle_pm_info->flag1, 0);
+}
+
+static int imx7d_idle_finish(unsigned long val)
+{
+	if (psci_ops.cpu_suspend)
+		psci_ops.cpu_suspend(MX7D_POWERDWN_IDLE_PARAM, __pa(cpu_resume));
+	else
+		imx7d_wfi_in_iram_fn(wfi_iram_base);
+
+	return 0;
+}
+
+static bool imx7d_gic_sgis_pending(void)
+{
+	void __iomem *sgip_base = imx7d_cpuidle_gic_base + 0x1f20;
+
+	return (readl_relaxed(sgip_base + 0x0) |
+		readl_relaxed(sgip_base + 0x4) |
+		readl_relaxed(sgip_base + 0x8) |
+		readl_relaxed(sgip_base + 0xc));
+}
+
+static DEFINE_SPINLOCK(psci_lock);
+static int imx7d_enter_low_power_idle(struct cpuidle_device *dev,
+			    struct cpuidle_driver *drv, int index)
+{
+	int mode = get_bus_freq_mode();
+
+
+	if ((index == 1) || ((mode != BUS_FREQ_LOW) && index == 2)) {
+		index = 1;
+		if (atomic_inc_return(&master_wait) == num_online_cpus())
+			imx_gpcv2_set_lpm_mode(WAIT_UNCLOCKED);
+
+		cpu_do_idle();
+
+		atomic_dec(&master_wait);
+		imx_gpcv2_set_lpm_mode(WAIT_CLOCKED);
+	} else {
+		if (psci_ops.cpu_suspend) {
+			cpu_pm_enter();
+			spin_lock(&psci_lock);
+			if (atomic_inc_return(&master_lpi) == num_online_cpus()) {
+				if (imx7d_gic_sgis_pending()) {
+					atomic_dec(&master_lpi);
+					index = -1;
+					goto psci_skip_lpi_flow;
+				}
+
+				imx_gpcv2_set_lpm_mode(WAIT_UNCLOCKED);
+				imx_gpcv2_set_cpu_power_gate_in_idle(true);
+
+				cpu_cluster_pm_enter();
+			}
+			spin_unlock(&psci_lock);
+
+			cpu_suspend(0, imx7d_idle_finish);
+
+			spin_lock(&psci_lock);
+			if (atomic_read(&master_lpi) == num_online_cpus()) {
+				cpu_cluster_pm_exit();
+				imx_gpcv2_set_cpu_power_gate_in_idle(false);
+				imx_gpcv2_set_lpm_mode(WAIT_CLOCKED);
+			}
+
+			atomic_dec(&master_lpi);
+psci_skip_lpi_flow:
+			spin_unlock(&psci_lock);
+			cpu_pm_exit();
+		} else {
+			imx_pen_lock(dev->cpu);
+			cpuidle_pm_info->num_online_cpus = num_online_cpus();
+			++cpuidle_pm_info->num_lpi_cpus;
+			cpu_pm_enter();
+			if (cpuidle_pm_info->num_lpi_cpus ==
+					cpuidle_pm_info->num_online_cpus) {
+				/*
+				 * GPC will not wake on SGIs so check for them
+				 * manually here. At this point we know the other cpu
+				 * is in wfi or waiting for the lock and can't send
+				 * any additional IPIs.
+				 */
+				if (imx7d_gic_sgis_pending()) {
+					index = -1;
+					goto skip_lpi_flow;
+				}
+				imx_gpcv2_set_lpm_mode(WAIT_UNCLOCKED);
+				imx_gpcv2_set_cpu_power_gate_in_idle(true);
+				cpu_cluster_pm_enter();
+			} else {
+				imx_set_cpu_jump(dev->cpu, ca7_cpu_resume);
+			}
+
+			cpu_suspend(0, imx7d_idle_finish);
+
+			if (cpuidle_pm_info->num_lpi_cpus ==
+					cpuidle_pm_info->num_online_cpus) {
+				cpu_cluster_pm_exit();
+				imx_gpcv2_set_cpu_power_gate_in_idle(false);
+				imx_gpcv2_set_lpm_mode(WAIT_CLOCKED);
+			}
+
+skip_lpi_flow:
+			cpu_pm_exit();
+			--cpuidle_pm_info->num_lpi_cpus;
+			imx_pen_unlock(dev->cpu);
+		}
+	}
+
+	return index;
+}
+
+static struct cpuidle_driver imx7d_cpuidle_driver = {
+	.name = "imx7d_cpuidle",
+	.owner = THIS_MODULE,
+	.states = {
+		/* WFI */
+		ARM_CPUIDLE_WFI_STATE,
+		/* WAIT MODE */
+		{
+			.exit_latency = 50,
+			.target_residency = 75,
+			.flags = CPUIDLE_FLAG_TIMER_STOP,
+			.enter = imx7d_enter_low_power_idle,
+			.name = "WAIT",
+			.desc = "Clock off",
+		},
+		/* LOW POWER IDLE */
+		{
+			.exit_latency = 10000,
+			.target_residency = 20000,
+			.flags = CPUIDLE_FLAG_TIMER_STOP,
+			.enter = imx7d_enter_low_power_idle,
+			.name = "LOW-POWER-IDLE",
+			.desc = "ARM power off",
+		},
+	},
+	.state_count = 3,
+	.safe_state_index = 0,
+};
+
+int imx7d_enable_rcosc(void)
+{
+	void __iomem *anatop_base =
+		(void __iomem *)IMX_IO_P2V(MX7D_ANATOP_BASE_ADDR);
+	u32 val;
+
+	imx_gpcv2_set_lpm_mode(WAIT_CLOCKED);
+	/* set RC-OSC freq and turn it on */
+	writel_relaxed(0x1 << XTALOSC_CTRL_24M_RC_OSC_EN_SHIFT,
+		anatop_base + XTALOSC_CTRL_24M + REG_SET);
+	/*
+	 * config RC-OSC freq
+	 * tune_enable = 1;tune_start = 1;hyst_plus = 0;hyst_minus = 0;
+	 * osc_prog = 0xa7;
+	 */
+	writel_relaxed(
+		0x4 << XTALOSC24M_OSC_CONFIG0_RC_OSC_PROG_CUR_SHIFT |
+		0xa7 << XTALOSC24M_OSC_CONFIG0_RC_OSC_PROG_SHIFT |
+		0x1 << XTALOSC24M_OSC_CONFIG0_ENABLE_SHIFT |
+		0x1 << XTALOSC24M_OSC_CONFIG0_START_SHIFT,
+		anatop_base + XTALOSC24M_OSC_CONFIG0);
+	/* set count_trg = 0x2dc */
+	writel_relaxed(
+		0x40 << XTALOSC24M_OSC_CONFIG1_COUNT_RC_CUR_SHIFT |
+		0x2dc << XTALOSC24M_OSC_CONFIG1_COUNT_RC_TRG_SHIFT,
+		anatop_base + XTALOSC24M_OSC_CONFIG1);
+	/* wait at least 4ms according to hardware design */
+	mdelay(6);
+	/*
+	 * now add some hysteresis, hyst_plus=3, hyst_minus=3
+	 * (the minimum hysteresis that looks good is 2)
+	 */
+	val = readl_relaxed(anatop_base + XTALOSC24M_OSC_CONFIG0);
+	val &= ~((XTALOSC24M_OSC_CONFIG0_HYST_MINUS_MASK <<
+		XTALOSC24M_OSC_CONFIG0_HYST_MINUS_SHIFT) |
+		(XTALOSC24M_OSC_CONFIG0_HYST_PLUS_MASK <<
+		XTALOSC24M_OSC_CONFIG0_HYST_PLUS_SHIFT));
+	val |= (0x3 << XTALOSC24M_OSC_CONFIG0_HYST_MINUS_SHIFT) |
+		(0x3 << XTALOSC24M_OSC_CONFIG0_HYST_PLUS_SHIFT);
+	writel_relaxed(val, anatop_base + XTALOSC24M_OSC_CONFIG0);
+	/* set the count_1m_trg = 0x2d7 */
+	val = readl_relaxed(anatop_base + XTALOSC24M_OSC_CONFIG2);
+	val &= ~(XTALOSC24M_OSC_CONFIG2_COUNT_1M_TRG_MASK <<
+		XTALOSC24M_OSC_CONFIG2_COUNT_1M_TRG_SHIFT);
+	val |= 0x2d7 << XTALOSC24M_OSC_CONFIG2_COUNT_1M_TRG_SHIFT;
+	writel_relaxed(val, anatop_base + XTALOSC24M_OSC_CONFIG2);
+	/*
+	 * hardware design require to write XTALOSC24M_OSC_CONFIG0 or
+	 * XTALOSC24M_OSC_CONFIG1 to
+	 * make XTALOSC24M_OSC_CONFIG2 write work
+	 */
+	val = readl_relaxed(anatop_base + XTALOSC24M_OSC_CONFIG1);
+	writel_relaxed(val, anatop_base + XTALOSC24M_OSC_CONFIG1);
+
+	return 0;
+}
+
+int __init imx7d_cpuidle_init(void)
+{
+	wfi_iram_base_phys = (void *)(iram_tlb_phys_addr +
+		MX7_CPUIDLE_OCRAM_ADDR_OFFSET);
+
+	/* Make sure wfi_iram_base is 8 byte aligned. */
+	if ((uintptr_t)(wfi_iram_base_phys) & (FNCPY_ALIGN - 1))
+		wfi_iram_base_phys += FNCPY_ALIGN -
+		((uintptr_t)wfi_iram_base_phys % (FNCPY_ALIGN));
+
+	wfi_iram_base = (void *)IMX_IO_P2V((unsigned long) wfi_iram_base_phys);
+
+	cpuidle_pm_info = wfi_iram_base;
+	cpuidle_pm_info->vbase = (phys_addr_t) wfi_iram_base;
+	cpuidle_pm_info->pbase = (phys_addr_t) wfi_iram_base_phys;
+	cpuidle_pm_info->pm_info_size = sizeof(*cpuidle_pm_info);
+	cpuidle_pm_info->resume_addr = virt_to_phys(ca7_cpu_resume);
+	cpuidle_pm_info->num_online_cpus = num_online_cpus();
+
+	cpuidle_pm_info->ddrc_base.pbase = MX7D_DDRC_BASE_ADDR;
+	cpuidle_pm_info->ddrc_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_DDRC_BASE_ADDR);
+
+	cpuidle_pm_info->ccm_base.pbase = MX7D_CCM_BASE_ADDR;
+	cpuidle_pm_info->ccm_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_CCM_BASE_ADDR);
+
+	cpuidle_pm_info->anatop_base.pbase = MX7D_ANATOP_BASE_ADDR;
+	cpuidle_pm_info->anatop_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_ANATOP_BASE_ADDR);
+
+	cpuidle_pm_info->src_base.pbase = MX7D_SRC_BASE_ADDR;
+	cpuidle_pm_info->src_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_SRC_BASE_ADDR);
+
+	cpuidle_pm_info->iomuxc_gpr_base.pbase = MX7D_IOMUXC_GPR_BASE_ADDR;
+	cpuidle_pm_info->iomuxc_gpr_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_IOMUXC_GPR_BASE_ADDR);
+
+	cpuidle_pm_info->gpc_base.pbase = MX7D_GPC_BASE_ADDR;
+	cpuidle_pm_info->gpc_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_GPC_BASE_ADDR);
+
+	cpuidle_pm_info->gic_dist_base.pbase = MX7D_GIC_BASE_ADDR;
+	cpuidle_pm_info->gic_dist_base.vbase =
+		(void __iomem *)IMX_IO_P2V(MX7D_GIC_BASE_ADDR);
+
+	imx7d_cpuidle_gic_base = ioremap(MX7D_GIC_BASE_ADDR, MX7D_GIC_SIZE);
+
+	imx7d_enable_rcosc();
+
+	/* code size should include cpuidle_pm_info size */
+	if (!psci_ops.cpu_suspend) {
+		imx7d_wfi_in_iram_fn = (void *)fncpy(wfi_iram_base +
+			sizeof(*cpuidle_pm_info),
+			&imx7d_low_power_idle,
+			MX7_CPUIDLE_OCRAM_SIZE - sizeof(*cpuidle_pm_info));
+	}
+
+	return cpuidle_register(&imx7d_cpuidle_driver, NULL);
+}
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/cpuidle.h
+++ linux-ein-5.4.0/arch/arm/mach-imx/cpuidle.h
@@ -9,6 +9,8 @@
 extern int imx6q_cpuidle_init(void);
 extern int imx6sl_cpuidle_init(void);
 extern int imx6sx_cpuidle_init(void);
+extern int imx7d_cpuidle_init(void);
+extern int imx7d_enable_rcosc(void);
 extern int imx7ulp_cpuidle_init(void);
 #else
 static inline int imx5_cpuidle_init(void)
@@ -27,6 +29,14 @@
 {
 	return 0;
 }
+static inline int imx7d_cpuidle_init(void)
+{
+	return 0;
+}
+static inline int imx7d_enable_rcosc(void)
+{
+	return 0;
+}
 static inline int imx7ulp_cpuidle_init(void)
 {
 	return 0;
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/ddr3_freq_imx7d.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/ddr3_freq_imx7d.S
@@ -0,0 +1,586 @@
+/*
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/linkage.h>
+#include "hardware.h"
+
+#define DDRC_MSTR		0x0
+#define DDRC_STAT		0x4
+#define DDRC_MRCTRL0		0x10
+#define DDRC_MRCTRL1		0x14
+#define DDRC_MRSTAT		0x18
+#define DDRC_PWRCTL		0x30
+#define DDRC_RFSHCTL3		0x60
+#define DDRC_RFSHTMG		0x64
+#define DDRC_DBG1		0x304
+#define DDRC_SWCTL		0x320
+#define DDRC_SWSTAT		0x324
+#define DDRC_PSTAT		0x3fc
+#define DDRC_PCTRL_0		0x490
+#define DDRC_ZQCTL0		0x180
+#define DDRC_DFIMISC		0x1b0
+#define DDRC_DBGCAM		0x308
+#define DDRPHY_LP_CON0		0x18
+#define IOMUXC_GPR8		0x20
+#define DDRPHY_MDLL_CON0	0xb0
+#define DDRPHY_MDLL_CON1	0xb4
+#define DDRPHY_OFFSETD_CON0	0x50
+#define DDRPHY_OFFSETR_CON0	0x20
+#define DDRPHY_OFFSETR_CON1	0x24
+#define DDRPHY_OFFSETR_CON2	0x28
+#define DDRPHY_OFFSETW_CON0	0x30
+#define DDRPHY_OFFSETW_CON1	0x34
+#define DDRPHY_OFFSETW_CON2	0x38
+#define DDRPHY_CA_WLDSKEW_CON0	0x6c
+#define DDRPHY_CA_DSKEW_CON0	0x7c
+#define DDRPHY_CA_DSKEW_CON1	0x80
+#define DDRPHY_CA_DSKEW_CON2	0x84
+
+#define ANADIG_DIGPROG		0x800
+
+	.align 3
+
+	.macro	switch_to_below_100m
+
+	ldr	r7, =0x2
+	str	r7, [r4, #DDRC_DBG1]
+
+	ldr	r6, =0x36000000
+1:
+	ldr	r7, [r4, #DDRC_DBGCAM]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	1b
+
+	ldr	r6, =0x1
+2:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	2b
+
+	ldr	r7, =0x10f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800010f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r6, =0x1
+3:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	3b
+
+	ldr	r7, =0x20f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x8
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800020f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r6, =0x1
+4:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	4b
+
+	ldr	r7, =0x10f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800010f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r7, =0x20
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	ldr	r6, =0x23
+5:
+	ldr	r7, [r4, #DDRC_STAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	5b
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_SWCTL]
+
+	ldr	r7, =0x03048001
+	str	r7, [r4, #DDRC_MSTR]
+
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_SWCTL]
+
+	ldr	r6, =0x1
+6:
+	ldr	r7, [r4, #DDRC_SWSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	6b
+
+	ldr	r7, =0x10010100
+	str	r7, [r5, #0x4]
+
+	ldr	r6, =24000000
+	cmp	r0, r6
+	beq	25f
+
+	ldr	r7, =0x000B000D
+	str	r7,[r4, #DDRC_RFSHTMG]
+	b	7f
+
+25:
+	ldr	r7, =0x00030004
+	str	r7,[r4, #DDRC_RFSHTMG]
+
+	/* dram alt sel set to OSC */
+	ldr	r7, =0x10000000
+	ldr	r8, =0xa080
+	str	r7, [r2, r8]
+	/* dram root set to from dram alt, div by 1 */
+	ldr	r7, =0x11000000
+	ldr	r8, =0x9880
+	str	r7, [r2, r8]
+	b	8f
+7:
+	/* dram alt sel set to pfd0_392m */
+	ldr	r7, =0x15000000
+	ldr	r8, =0xa080
+	str	r7, [r2, r8]
+	/* dram root set to from dram alt, div by 4 */
+	ldr	r7, =0x11000003
+	ldr	r8, =0x9880
+	str	r7, [r2, r8]
+8:
+	ldr	r7, =0x202ffd0
+	str	r7, [r5, #DDRPHY_MDLL_CON0]
+
+	ldr	r7, =0x1000007f
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r7, =0x7f7f7f7f
+	str	r7, [r5, #DDRPHY_OFFSETR_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETR_CON1]
+	ldr	r7, =0x7f
+	str	r7, [r5, #DDRPHY_OFFSETR_CON2]
+
+	ldr	r7, =0x7f7f7f7f
+	str	r7, [r5, #DDRPHY_OFFSETW_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETW_CON1]
+	ldr	r7, =0x7f
+	str	r7, [r5, #DDRPHY_OFFSETW_CON2]
+
+	ldr	r7, [r9, #ANADIG_DIGPROG]
+	and	r7, r7, #0x11
+	cmp	r7, #0x11
+	bne	20f
+
+	ldr	r7, =0x0
+	str	r7, [r5, #DDRPHY_CA_WLDSKEW_CON0]
+	ldr	r7, =0x60606060
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	ldr	r7, =0x00006060
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+	b	21f
+20:
+	ldr	r7, =0x0
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+21:
+	ldr	r7, =0x1100007f
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+	ldr	r7, =0x1000007f
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	ldr	r6, =0x1
+9:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	9b
+
+	ldr	r7, =0xf0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x820
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800000f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r6, =0x1
+10:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	10b
+
+	ldr	r7, =0x800020
+	str	r7, [r4, #DDRC_ZQCTL0]
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_DBG1]
+
+	/* enable auto self-refresh */
+	ldr	r7, [r4, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 0)
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	.endm
+
+	.macro	switch_to_533m
+
+	ldr	r7, =0x2
+	str	r7, [r4, #DDRC_DBG1]
+
+	ldr	r7, =0x78
+	str	r7, [r3, #IOMUXC_GPR8]
+	orr	r7, r7, #0x100
+	str	r7, [r3, #IOMUXC_GPR8]
+
+	ldr	r6, =0x30000000
+11:
+	ldr	r7, [r4, #DDRC_DBGCAM]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	11b
+
+	ldr	r6, =0x1
+12:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	12b
+
+	ldr	r7, =0x10f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800010f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r7, =0x20
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	ldr	r6, =0x23
+13:
+	ldr	r7, [r4, #DDRC_STAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	13b
+
+	ldr	r7, =0x03040001
+	str	r7, [r4, #DDRC_MSTR]
+
+	ldr	r7, =0x40800020
+	str	r7, [r4, #DDRC_ZQCTL0]
+
+
+	ldr	r7, =0x10210100
+	str	r7, [r5, #0x4]
+
+	ldr	r7, =0x00040046
+	str	r7, [r4, #DDRC_RFSHTMG]
+
+	/* dram root set to from dram main, div by 2 */
+	ldr	r7, =0x10000001
+	ldr	r8, =0x9880
+	str	r7, [r2, r8]
+
+	ldr	r7, =0x1010007e
+	str	r7, [r5, #DDRPHY_MDLL_CON0]
+
+	ldr	r7, =0x10000008
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r7, =0x08080808
+	str	r7, [r5, #DDRPHY_OFFSETR_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETR_CON1]
+	ldr	r7, =0x8
+	str	r7, [r5, #DDRPHY_OFFSETR_CON2]
+
+	ldr	r7, =0x08080808
+	str	r7, [r5, #DDRPHY_OFFSETW_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETW_CON1]
+	ldr	r7, =0x8
+	str	r7, [r5, #DDRPHY_OFFSETW_CON2]
+
+	ldr	r7, [r9, #ANADIG_DIGPROG]
+	and	r7, r7, #0x11
+	cmp	r7, #0x11
+	bne	22f
+
+	ldr	r7, =0x40404040
+	str	r7, [r5, #DDRPHY_CA_WLDSKEW_CON0]
+	ldr	r7, =0x18181818
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	ldr	r7, =0x40401818
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+	b	23f
+22:
+	ldr	r7, =0x0
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+23:
+	ldr	r7, =0x11000008
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+	ldr	r7, =0x10000008
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r6, =0x4
+14:
+	ldr	r7, [r5, #DDRPHY_MDLL_CON1]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	14b
+
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_RFSHCTL3]
+	ldr	r7, =0x3
+	str	r7, [r4, #DDRC_RFSHCTL3]
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	ldr	r6, =0x1
+15:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	15b
+
+	ldr	r7, =0x10f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800010f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r6, =0x1
+16:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	16b
+
+	ldr	r7, =0xf0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x930
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800000f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_RFSHCTL3]
+	ldr	r7, =0x2
+	str	r7, [r4, #DDRC_RFSHCTL3]
+
+	ldr	r6, =0x1
+17:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	17b
+
+	ldr	r7, =0xf0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x930
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800000f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r6, =0x1
+18:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	18b
+
+	ldr	r7, =0x20f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x408
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800020f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r6, =0x1
+19:
+	ldr	r7, [r4, #DDRC_MRSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	19b
+
+	ldr	r7, =0x10f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+	ldr	r7, =0x4
+	str	r7, [r4, #DDRC_MRCTRL1]
+	ldr	r7, =0x800010f0
+	str	r7, [r4, #DDRC_MRCTRL0]
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_DBG1]
+
+	/* enable auto self-refresh */
+	ldr	r7, [r4, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 0)
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	.endm
+
+ENTRY(imx7d_ddr3_freq_change)
+	push	{r2 - r9}
+
+	/*
+	 * To ensure no page table walks occur in DDR, we
+	 * have a another page table stored in IRAM that only
+	 * contains entries pointing to IRAM, AIPS1 and AIPS2.
+	 * We need to set the TTBR1 to the new IRAM TLB.
+	 * Do the following steps:
+	 * 1. Flush the Branch Target Address Cache (BTAC)
+	 * 2. Set TTBR1 to point to IRAM page table.
+	 * 3. Disable page table walks in TTBR0 (PD0 = 1)
+	 * 4. Set TTBR0.N=1, implying 0-2G is translated by TTBR0
+	 *     and 2-4G is translated by TTBR1.
+	 */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	ldr	r6, =iram_tlb_phys_addr
+	ldr	r7, [r6]
+
+	/* Disable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	bic	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the Branch Target Address Cache (BTAC) */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	dsb
+	isb
+	/* Store the IRAM table in TTBR1 */
+	mcr	p15, 0, r7, c2, c0, 1
+
+	/* Read TTBCR and set PD0=1, N = 1 */
+	mrc	p15, 0, r6, c2, c0, 2
+	orr	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	dsb
+	isb
+
+	ldr	r2, =IMX_IO_P2V(MX7D_CCM_BASE_ADDR)
+	ldr	r3, =IMX_IO_P2V(MX7D_IOMUXC_GPR_BASE_ADDR)
+	ldr	r4, =IMX_IO_P2V(MX7D_DDRC_BASE_ADDR)
+	ldr	r5, =IMX_IO_P2V(MX7D_DDRC_PHY_BASE_ADDR)
+	ldr	r9, =IMX_IO_P2V(MX7D_ANATOP_BASE_ADDR)
+
+	ldr	r6, =100000000
+	cmp	r0, r6
+	bgt	set_to_533m
+
+set_to_below_100m:
+	switch_to_below_100m
+	b	done
+
+set_to_533m:
+	switch_to_533m
+	b	done
+
+done:
+	/* Enable L1 data cache. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x4
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Restore the TTBCR */
+	dsb
+	isb
+
+	/* Read TTBCR and set PD0=0, N = 0 */
+	mrc	p15, 0, r6, c2, c0, 2
+	bic	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	dsb
+	isb
+
+	/* Enable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the Branch Target Address Cache (BTAC) */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	dsb
+	isb
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	/* Restore registers */
+	pop	{r2 - r9}
+	mov	pc, lr
+	.ltorg
+ENDPROC(imx7d_ddr3_freq_change)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/ddrc.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/ddrc.c
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2015 Freescale Semiconductor, Inc.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+
+#include "hardware.h"
+
+#define DDRC_MSTR		0x0
+#define	BM_DDRC_MSTR_DDR3	0x1
+#define	BM_DDRC_MSTR_LPDDR2	0x4
+#define	BM_DDRC_MSTR_LPDDR3	0x8
+
+static int ddr_type;
+
+static int imx_ddrc_probe(struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.of_node;
+	void __iomem *ddrc_base, *reg;
+	u32 val;
+
+	ddrc_base = of_iomap(np, 0);
+	WARN_ON(!ddrc_base);
+
+	reg = ddrc_base + DDRC_MSTR;
+	/* Get ddr type */
+	val = readl_relaxed(reg);
+	val &= (BM_DDRC_MSTR_DDR3 | BM_DDRC_MSTR_LPDDR2
+		| BM_DDRC_MSTR_LPDDR3);
+
+	switch (val) {
+	case BM_DDRC_MSTR_DDR3:
+		pr_info("DDR type is DDR3!\n");
+		ddr_type = IMX_DDR_TYPE_DDR3;
+		break;
+	case BM_DDRC_MSTR_LPDDR2:
+		pr_info("DDR type is LPDDR2!\n");
+		ddr_type = IMX_DDR_TYPE_LPDDR2;
+		break;
+	case BM_DDRC_MSTR_LPDDR3:
+		pr_info("DDR type is LPDDR3!\n");
+		ddr_type = IMX_DDR_TYPE_LPDDR3;
+		break;
+	default:
+		break;
+	}
+
+	return 0;
+}
+
+int imx_ddrc_get_ddr_type(void)
+{
+	return ddr_type;
+}
+
+static struct of_device_id imx_ddrc_dt_ids[] = {
+	{ .compatible = "fsl,imx7-ddrc", },
+	{ /* sentinel */ }
+};
+
+static struct platform_driver imx_ddrc_driver = {
+	.driver		= {
+		.name	= "imx-ddrc",
+		.owner	= THIS_MODULE,
+		.of_match_table = imx_ddrc_dt_ids,
+	},
+	.probe		= imx_ddrc_probe,
+};
+
+static int __init imx_ddrc_init(void)
+{
+	return platform_driver_register(&imx_ddrc_driver);
+}
+postcore_initcall(imx_ddrc_init);
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/devices/platform-gpio-mxc.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/devices/platform-gpio-mxc.c
@@ -24,7 +24,8 @@
 			.flags = IORESOURCE_IRQ,
 		},
 	};
+	unsigned int nres;
 
-	return platform_device_register_resndata(&mxc_aips_bus,
-			name, id, res, ARRAY_SIZE(res), NULL, 0);
+	nres = irq_high ? ARRAY_SIZE(res) : ARRAY_SIZE(res) - 1;
+	return platform_device_register_resndata(&mxc_aips_bus, name, id, res, nres, NULL, 0);
 }
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/gpc.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/gpc.c
@@ -10,26 +10,157 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
-#include <linux/irqchip/arm-gic.h>
+
 #include "common.h"
 #include "hardware.h"
 
-#define GPC_CNTR		0x0
+#define GPC_CNTR		0x000
+#define GPC_CNTR_L2_PGE		22
+
 #define GPC_IMR1		0x008
+#define GPC_PGC_MF_PDN		0x220
 #define GPC_PGC_CPU_PDN		0x2a0
 #define GPC_PGC_CPU_PUPSCR	0x2a4
 #define GPC_PGC_CPU_PDNSCR	0x2a8
 #define GPC_PGC_SW2ISO_SHIFT	0x8
 #define GPC_PGC_SW_SHIFT	0x0
-
-#define GPC_CNTR_L2_PGE_SHIFT	22
+#define GPC_M4_LPSR		0x2c
+#define GPC_M4_LPSR_M4_SLEEPING_SHIFT	4
+#define GPC_M4_LPSR_M4_SLEEPING_MASK	0x1
+#define GPC_M4_LPSR_M4_SLEEP_HOLD_REQ_MASK	0x1
+#define GPC_M4_LPSR_M4_SLEEP_HOLD_REQ_SHIFT	0
+#define GPC_M4_LPSR_M4_SLEEP_HOLD_ACK_MASK	0x1
+#define GPC_M4_LPSR_M4_SLEEP_HOLD_ACK_SHIFT	1
+
+#define GPC_PGC_CPU_SW_SHIFT		0
+#define GPC_PGC_CPU_SW_MASK		0x3f
+#define GPC_PGC_CPU_SW2ISO_SHIFT	8
+#define GPC_PGC_CPU_SW2ISO_MASK		0x3f
 
 #define IMR_NUM			4
 #define GPC_MAX_IRQS		(IMR_NUM * 32)
 
+/* for irq #74 and #75 */
+#define GPC_USB_VBUS_WAKEUP_IRQ_MASK		0xc00
+
+/* for irq #150 and #151 */
+#define GPC_ENET_WAKEUP_IRQ_MASK        0xC00000
+
 static void __iomem *gpc_base;
 static u32 gpc_wake_irqs[IMR_NUM];
 static u32 gpc_saved_imrs[IMR_NUM];
+static u32 gpc_mf_irqs[IMR_NUM];
+static u32 gpc_mf_request_on[IMR_NUM];
+static DEFINE_SPINLOCK(gpc_lock);
+
+void imx_gpc_add_m4_wake_up_irq(u32 hwirq, bool enable)
+{
+	unsigned int idx = hwirq / 32;
+	unsigned long flags;
+	u32 mask;
+
+	/* Sanity check for SPI irq */
+	if (hwirq < 32)
+		return;
+
+	mask = 1 << hwirq % 32;
+	spin_lock_irqsave(&gpc_lock, flags);
+	gpc_wake_irqs[idx] = enable ? gpc_wake_irqs[idx] | mask :
+		gpc_wake_irqs[idx] & ~mask;
+	spin_unlock_irqrestore(&gpc_lock, flags);
+}
+
+void imx_gpc_hold_m4_in_sleep(void)
+{
+	int val;
+	unsigned long timeout = jiffies + msecs_to_jiffies(500);
+
+	/* wait M4 in wfi before asserting hold request */
+	while (!imx_gpc_is_m4_sleeping())
+		if (time_after(jiffies, timeout))
+			pr_err("M4 is NOT in expected sleep!\n");
+
+	val = readl_relaxed(gpc_base + GPC_M4_LPSR);
+	val &= ~(GPC_M4_LPSR_M4_SLEEP_HOLD_REQ_MASK <<
+		GPC_M4_LPSR_M4_SLEEP_HOLD_REQ_SHIFT);
+	writel_relaxed(val, gpc_base + GPC_M4_LPSR);
+
+	timeout = jiffies + msecs_to_jiffies(500);
+	while (readl_relaxed(gpc_base + GPC_M4_LPSR)
+		& (GPC_M4_LPSR_M4_SLEEP_HOLD_ACK_MASK <<
+		GPC_M4_LPSR_M4_SLEEP_HOLD_ACK_SHIFT))
+		if (time_after(jiffies, timeout))
+			pr_err("Wait M4 hold ack timeout!\n");
+}
+
+void imx_gpc_release_m4_in_sleep(void)
+{
+	int val;
+
+	val = readl_relaxed(gpc_base + GPC_M4_LPSR);
+	val |= GPC_M4_LPSR_M4_SLEEP_HOLD_REQ_MASK <<
+		GPC_M4_LPSR_M4_SLEEP_HOLD_REQ_SHIFT;
+	writel_relaxed(val, gpc_base + GPC_M4_LPSR);
+}
+
+unsigned int imx_gpc_is_m4_sleeping(void)
+{
+	if (readl_relaxed(gpc_base + GPC_M4_LPSR) &
+		(GPC_M4_LPSR_M4_SLEEPING_MASK <<
+		GPC_M4_LPSR_M4_SLEEPING_SHIFT))
+		return 1;
+
+	return 0;
+}
+
+bool imx_gpc_usb_wakeup_enabled(void)
+{
+	if (!(cpu_is_imx6sx() || cpu_is_imx6ul() || cpu_is_imx6ull()
+		|| cpu_is_imx6sll()))
+		return false;
+
+	/*
+	 * for SoC later than i.MX6SX, USB vbus wakeup
+	 * only needs weak 2P5 on, stop_mode_config is
+	 * NOT needed, so we check if is USB vbus wakeup
+	 * is enabled(assume irq #74 and #75) to decide
+	 * if to keep weak 2P5 on.
+	 */
+	if (gpc_wake_irqs[1] & GPC_USB_VBUS_WAKEUP_IRQ_MASK)
+		return true;
+
+	return false;
+}
+
+bool imx_gpc_enet_wakeup_enabled(void)
+{
+	if (!cpu_is_imx6q())
+		return false;
+
+	if (gpc_wake_irqs[3] & GPC_ENET_WAKEUP_IRQ_MASK)
+		return true;
+
+	return false;
+}
+
+unsigned int imx_gpc_is_mf_mix_off(void)
+{
+	return readl_relaxed(gpc_base + GPC_PGC_MF_PDN);
+}
+
+static void imx_gpc_mf_mix_off(void)
+{
+	int i;
+
+	for (i = 0; i < IMR_NUM; i++)
+		if (((gpc_wake_irqs[i] | gpc_mf_request_on[i]) &
+						gpc_mf_irqs[i]) != 0)
+			return;
+
+	pr_info("Turn off M/F mix!\n");
+	/* turn off mega/fast mix */
+	writel_relaxed(0x1, gpc_base + GPC_PGC_MF_PDN);
+}
 
 void imx_gpc_set_arm_power_up_timing(u32 sw2iso, u32 sw)
 {
@@ -53,9 +184,9 @@
 	u32 val;
 
 	val = readl_relaxed(gpc_base + GPC_CNTR);
-	val &= ~(1 << GPC_CNTR_L2_PGE_SHIFT);
+	val &= ~(1 << GPC_CNTR_L2_PGE);
 	if (power_off)
-		val |= 1 << GPC_CNTR_L2_PGE_SHIFT;
+		val |= 1 << GPC_CNTR_L2_PGE;
 	writel_relaxed(val, gpc_base + GPC_CNTR);
 }
 
@@ -89,11 +220,14 @@
 static int imx_gpc_irq_set_wake(struct irq_data *d, unsigned int on)
 {
 	unsigned int idx = d->hwirq / 32;
+	unsigned long flags;
 	u32 mask;
 
 	mask = 1 << d->hwirq % 32;
+	spin_lock_irqsave(&gpc_lock, flags);
 	gpc_wake_irqs[idx] = on ? gpc_wake_irqs[idx] | mask :
 				  gpc_wake_irqs[idx] & ~mask;
+	spin_unlock_irqrestore(&gpc_lock, flags);
 
 	/*
 	 * Do *not* call into the parent, as the GIC doesn't have any
@@ -111,7 +245,6 @@
 		gpc_saved_imrs[i] = readl_relaxed(reg_imr1 + i * 4);
 		writel_relaxed(~0, reg_imr1 + i * 4);
 	}
-
 }
 
 void imx_gpc_restore_all(void)
@@ -225,11 +358,75 @@
 	.free		= irq_domain_free_irqs_common,
 };
 
+int imx_gpc_mf_power_on(unsigned int irq, unsigned int on)
+{
+	struct irq_desc *d = irq_to_desc(irq);
+	unsigned int idx = d->irq_data.hwirq / 32;
+	unsigned long flags;
+	u32 mask;
+
+	mask = 1 << (d->irq_data.hwirq % 32);
+	spin_lock_irqsave(&gpc_lock, flags);
+	gpc_mf_request_on[idx] = on ? gpc_mf_request_on[idx] | mask :
+				  gpc_mf_request_on[idx] & ~mask;
+	spin_unlock_irqrestore(&gpc_lock, flags);
+
+	return 0;
+}
+
+int imx_gpc_mf_request_on(unsigned int irq, unsigned int on)
+{
+	if (cpu_is_imx7d())
+		return imx_gpcv2_mf_power_on(irq, on);
+	else
+		return 0;
+}
+EXPORT_SYMBOL_GPL(imx_gpc_mf_request_on);
+
+void imx_gpc_switch_pupscr_clk(bool flag)
+{
+	static u32 pupscr_sw2iso, pupscr_sw;
+	u32 ratio, pupscr = readl_relaxed(gpc_base + GPC_PGC_CPU_PUPSCR);
+
+	if (flag) {
+		/* save the init clock setting IPG/2048 for IPG@66Mhz */
+		pupscr_sw2iso = (pupscr >> GPC_PGC_CPU_SW2ISO_SHIFT) &
+				    GPC_PGC_CPU_SW2ISO_MASK;
+		pupscr_sw = (pupscr >> GPC_PGC_CPU_SW_SHIFT) &
+				GPC_PGC_CPU_SW_MASK;
+		/*
+		 * i.MX6UL TO1.0 ARM power up uses IPG/2048 as clock source,
+		 * from TO1.1, PGC_CPU_PUPSCR bit [5] is re-defined to switch
+		 * clock to IPG/32, enable this bit to speed up the ARM power
+		 * up process in low power idle case(IPG@1.5Mhz). So the sw and
+		 * sw2iso need to be adjusted as below:
+		 * sw_new(sw2iso_new) = (2048 * 1.5 / 66 * 32) * sw(sw2iso)
+		 */
+		ratio = 3072 / (66 * 32);
+		pupscr &= ~(GPC_PGC_CPU_SW_MASK << GPC_PGC_CPU_SW_SHIFT |
+			  GPC_PGC_CPU_SW2ISO_MASK << GPC_PGC_CPU_SW2ISO_SHIFT);
+		pupscr |= (ratio * pupscr_sw + 1) << GPC_PGC_CPU_SW_SHIFT |
+			  1 << 5 | (ratio * pupscr_sw2iso + 1) <<
+			  GPC_PGC_CPU_SW2ISO_SHIFT;
+		writel_relaxed(pupscr, gpc_base + GPC_PGC_CPU_PUPSCR);
+	} else {
+		/* restore back after exit from low power idle */
+		pupscr &= ~(GPC_PGC_CPU_SW_MASK << GPC_PGC_CPU_SW_SHIFT |
+			  GPC_PGC_CPU_SW2ISO_MASK << GPC_PGC_CPU_SW2ISO_SHIFT);
+		pupscr |= pupscr_sw << GPC_PGC_CPU_SW_SHIFT |
+			  pupscr_sw2iso << GPC_PGC_CPU_SW2ISO_SHIFT;
+		writel_relaxed(pupscr, gpc_base + GPC_PGC_CPU_PUPSCR);
+	}
+}
+
 static int __init imx_gpc_init(struct device_node *node,
 			       struct device_node *parent)
 {
 	struct irq_domain *parent_domain, *domain;
 	int i;
+	u32 val;
+	u32 cpu_pupscr_sw2iso, cpu_pupscr_sw;
+	u32 cpu_pdnscr_iso2sw, cpu_pdnscr_iso;
 
 	if (!parent) {
 		pr_err("%pOF: no parent, giving up\n", node);
@@ -264,6 +461,41 @@
 	 */
 	of_node_clear_flag(node, OF_POPULATED);
 
+	/*
+	 * If there are CPU isolation timing settings in dts,
+	 * update them according to dts, otherwise, keep them
+	 * with default value in registers.
+	 */
+	cpu_pupscr_sw2iso = cpu_pupscr_sw =
+		cpu_pdnscr_iso2sw = cpu_pdnscr_iso = 0;
+
+	/* Read CPU isolation setting for GPC */
+	of_property_read_u32(node, "fsl,cpu_pupscr_sw2iso", &cpu_pupscr_sw2iso);
+	of_property_read_u32(node, "fsl,cpu_pupscr_sw", &cpu_pupscr_sw);
+	of_property_read_u32(node, "fsl,cpu_pdnscr_iso2sw", &cpu_pdnscr_iso2sw);
+	of_property_read_u32(node, "fsl,cpu_pdnscr_iso", &cpu_pdnscr_iso);
+
+	/* Return if no property found in dtb */
+	if ((cpu_pupscr_sw2iso | cpu_pupscr_sw
+		| cpu_pdnscr_iso2sw | cpu_pdnscr_iso) == 0)
+		return 0;
+
+	/* Update CPU PUPSCR timing if it is defined in dts */
+	val = readl_relaxed(gpc_base + GPC_PGC_CPU_PUPSCR);
+	val &= ~(GPC_PGC_CPU_SW2ISO_MASK << GPC_PGC_CPU_SW2ISO_SHIFT);
+	val &= ~(GPC_PGC_CPU_SW_MASK << GPC_PGC_CPU_SW_SHIFT);
+	val |= cpu_pupscr_sw2iso << GPC_PGC_CPU_SW2ISO_SHIFT;
+	val |= cpu_pupscr_sw << GPC_PGC_CPU_SW_SHIFT;
+	writel_relaxed(val, gpc_base + GPC_PGC_CPU_PUPSCR);
+
+	/* Update CPU PDNSCR timing if it is defined in dts */
+	val = readl_relaxed(gpc_base + GPC_PGC_CPU_PDNSCR);
+	val &= ~(GPC_PGC_CPU_SW2ISO_MASK << GPC_PGC_CPU_SW2ISO_SHIFT);
+	val &= ~(GPC_PGC_CPU_SW_MASK << GPC_PGC_CPU_SW_SHIFT);
+	val |= cpu_pdnscr_iso2sw << GPC_PGC_CPU_SW2ISO_SHIFT;
+	val |= cpu_pdnscr_iso << GPC_PGC_CPU_SW_SHIFT;
+	writel_relaxed(val, gpc_base + GPC_PGC_CPU_PDNSCR);
+
 	return 0;
 }
 IRQCHIP_DECLARE(imx_gpc, "fsl,imx6q-gpc", imx_gpc_init);
@@ -282,4 +514,5 @@
 		/* map GPC, so that at least CPUidle and WARs keep working */
 		gpc_base = of_iomap(np, 0);
 	}
+	of_node_put(np);
 }
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/gpcv2.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/gpcv2.c
@@ -0,0 +1,853 @@
+/*
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+#include <linux/irqchip/arm-gic.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
+#include <linux/platform_device.h>
+#include <linux/pm_domain.h>
+#include <linux/regulator/consumer.h>
+
+#include "common.h"
+#include "hardware.h"
+
+#define IMR_NUM			4
+#define GPC_MAX_IRQS		(IMR_NUM * 32)
+#define GPC_LPCR_A7_BSC		0x0
+#define GPC_LPCR_A7_AD		0x4
+#define GPC_LPCR_M4		0x8
+#define GPC_SLPCR		0x14
+#define GPC_MLPCR		0x20
+#define GPC_PGC_ACK_SEL_A7	0x24
+#define GPC_MISC		0x2c
+#define GPC_IMR1_CORE0		0x30
+#define GPC_IMR1_CORE1		0x40
+#define GPC_IMR1_M4		0x50
+#define GPC_SLOT0_CFG		0xb0
+#define GPC_PGC_CPU_MAPPING	0xec
+#define GPC_CPU_PGC_SW_PUP_REQ	0xf0
+#define GPC_PU_PGC_SW_PUP_REQ	0xf8
+#define GPC_CPU_PGC_SW_PDN_REQ	0xfc
+#define GPC_PU_PGC_SW_PDN_REQ	0x104
+#define GPC_GTOR		0x124
+#define GPC_PGC_C0		0x800
+#define GPC_PGC_C0_PUPSCR	0x804
+#define GPC_PGC_SCU_TIMING	0x890
+#define GPC_PGC_C1		0x840
+#define GPC_PGC_C1_PUPSCR	0x844
+#define GPC_PGC_SCU		0x880
+#define GPC_PGC_FM		0xa00
+
+#define BM_LPCR_A7_BSC_IRQ_SRC_A7_WAKEUP	0x70000000
+#define BM_LPCR_A7_BSC_CPU_CLK_ON_LPM		0x4000
+#define BM_LPCR_A7_BSC_LPM1			0xc
+#define BM_LPCR_A7_BSC_LPM0			0x3
+#define BP_LPCR_A7_BSC_LPM1			2
+#define BP_LPCR_A7_BSC_LPM0			0
+#define BM_LPCR_M4_MASK_DSM_TRIGGER		0x80000000
+#define BM_SLPCR_EN_DSM				0x80000000
+#define BM_SLPCR_RBC_EN				0x40000000
+#define BM_SLPCR_REG_BYPASS_COUNT		0x3f000000
+#define BM_SLPCR_VSTBY				0x4
+#define BM_SLPCR_SBYOS				0x2
+#define BM_SLPCR_BYPASS_PMIC_READY		0x1
+#define BM_SLPCR_EN_A7_FASTWUP_WAIT_MODE	0x10000
+#define BM_LPCR_A7_AD_L2PGE			0x10000
+#define BM_LPCR_A7_AD_EN_C1_PUP			0x800
+#define BM_LPCR_A7_AD_EN_C1_IRQ_PUP		0x400
+#define BM_LPCR_A7_AD_EN_C0_PUP			0x200
+#define BM_LPCR_A7_AD_EN_C0_IRQ_PUP		0x100
+#define BM_LPCR_A7_AD_EN_PLAT_PDN		0x10
+#define BM_LPCR_A7_AD_EN_C1_PDN			0x8
+#define BM_LPCR_A7_AD_EN_C1_WFI_PDN		0x4
+#define BM_LPCR_A7_AD_EN_C0_PDN			0x2
+#define BM_LPCR_A7_AD_EN_C0_WFI_PDN		0x1
+
+#define BM_CPU_PGC_SW_PDN_PUP_REQ_CORE1_A7	0x2
+#define BM_GPC_PGC_PCG				0x1
+#define BM_GPC_PGC_CORE_PUPSCR			0x7fff80
+
+#define BM_GPC_PGC_ACK_SEL_A7_DUMMY_PUP_ACK	0x80000000
+#define BM_GPC_PGC_ACK_SEL_A7_DUMMY_PDN_ACK	0x8000
+#define BM_GPC_MLPCR_MEMLP_CTL_DIS		0x1
+
+#define BP_LPCR_A7_BSC_IRQ_SRC			28
+
+#define MAX_SLOT_NUMBER				10
+#define A7_LPM_WAIT				0x5
+#define A7_LPM_STOP				0xa
+
+enum imx_gpc_slot {
+	CORE0_A7,
+	CORE1_A7,
+	SCU_A7,
+	FAST_MEGA_MIX,
+	MIPI_PHY,
+	PCIE_PHY,
+	USB_OTG1_PHY,
+	USB_OTG2_PHY,
+	USB_HSIC_PHY,
+	CORE0_M4,
+};
+
+static void __iomem *gpc_base;
+static u32 gpcv2_wake_irqs[IMR_NUM];
+static u32 gpcv2_saved_imrs[IMR_NUM];
+static u32 gpcv2_saved_imrs_m4[IMR_NUM];
+static u32 gpcv2_mf_irqs[IMR_NUM];
+static u32 gpcv2_mf_request_on[IMR_NUM];
+static DEFINE_SPINLOCK(gpcv2_lock);
+
+void imx_gpcv2_add_m4_wake_up_irq(u32 hwirq, bool enable)
+{
+	unsigned int idx = hwirq / 32;
+	unsigned long flags;
+	u32 mask;
+
+	/* Sanity check for SPI irq */
+	if (hwirq < 32)
+		return;
+
+	mask = 1 << hwirq % 32;
+	spin_lock_irqsave(&gpcv2_lock, flags);
+	gpcv2_wake_irqs[idx] = enable ? gpcv2_wake_irqs[idx] | mask :
+		gpcv2_wake_irqs[idx] & ~mask;
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+}
+
+static int imx_gpcv2_irq_set_wake(struct irq_data *d, unsigned int on)
+{
+	unsigned int idx = d->hwirq / 32;
+	unsigned long flags;
+	u32 mask;
+
+	BUG_ON(idx >= IMR_NUM);
+
+	mask = 1 << d->hwirq % 32;
+	spin_lock_irqsave(&gpcv2_lock, flags);
+	gpcv2_wake_irqs[idx] = on ? gpcv2_wake_irqs[idx] | mask :
+				  gpcv2_wake_irqs[idx] & ~mask;
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+
+	return 0;
+}
+
+void imx_gpcv2_mask_all(void)
+{
+	void __iomem *reg_imr1 = gpc_base + GPC_IMR1_CORE0;
+	int i;
+
+	for (i = 0; i < IMR_NUM; i++) {
+		gpcv2_saved_imrs[i] = readl_relaxed(reg_imr1 + i * 4);
+		writel_relaxed(~0, reg_imr1 + i * 4);
+	}
+}
+
+void imx_gpcv2_restore_all(void)
+{
+	void __iomem *reg_imr1 = gpc_base + GPC_IMR1_CORE0;
+	int i;
+
+	for (i = 0; i < IMR_NUM; i++)
+		writel_relaxed(gpcv2_saved_imrs[i], reg_imr1 + i * 4);
+}
+
+void imx_gpcv2_hwirq_unmask(unsigned int hwirq)
+{
+	void __iomem *reg;
+	u32 val;
+
+	reg = gpc_base + GPC_IMR1_CORE0 + (hwirq / 32) * 4;
+	val = readl_relaxed(reg);
+	val &= ~(1 << hwirq % 32);
+	writel_relaxed(val, reg);
+}
+
+void imx_gpcv2_hwirq_mask(unsigned int hwirq)
+{
+	void __iomem *reg;
+	u32 val;
+
+	reg = gpc_base + GPC_IMR1_CORE0 + (hwirq / 32) * 4;
+	val = readl_relaxed(reg);
+	val |= 1 << (hwirq % 32);
+	writel_relaxed(val, reg);
+}
+
+static void imx_gpcv2_irq_unmask(struct irq_data *d)
+{
+	imx_gpcv2_hwirq_unmask(d->hwirq);
+	irq_chip_unmask_parent(d);
+}
+
+static void imx_gpcv2_irq_mask(struct irq_data *d)
+{
+	imx_gpcv2_hwirq_mask(d->hwirq);
+	irq_chip_mask_parent(d);
+}
+
+void imx_gpcv2_set_slot_ack(u32 index, enum imx_gpc_slot m_core,
+				bool mode, bool ack)
+{
+	u32 val;
+
+	if (index >= MAX_SLOT_NUMBER)
+		pr_err("Invalid slot index!\n");
+	/* set slot */
+	writel_relaxed(readl_relaxed(gpc_base + GPC_SLOT0_CFG + index * 4) |
+		((mode + 1) << (m_core * 2)),
+		gpc_base + GPC_SLOT0_CFG + index * 4);
+
+	if (ack) {
+		/* set ack */
+		val = readl_relaxed(gpc_base + GPC_PGC_ACK_SEL_A7);
+		/* clear dummy ack */
+		val &= ~(1 << (15 + (mode ? 16 : 0)));
+		val |= 1 << (m_core + (mode ? 16 : 0));
+		writel_relaxed(val, gpc_base + GPC_PGC_ACK_SEL_A7);
+	}
+}
+
+void imx_gpcv2_set_lpm_mode(enum mxc_cpu_pwr_mode mode)
+{
+	unsigned long flags;
+	u32 val1, val2;
+
+	spin_lock_irqsave(&gpcv2_lock, flags);
+
+	val1 = readl_relaxed(gpc_base + GPC_LPCR_A7_BSC);
+	val2 = readl_relaxed(gpc_base + GPC_SLPCR);
+
+	/* all cores' LPM settings must be same */
+	val1 &= ~(BM_LPCR_A7_BSC_LPM0 | BM_LPCR_A7_BSC_LPM1);
+
+	val1 |= BM_LPCR_A7_BSC_CPU_CLK_ON_LPM;
+
+	val2 &= ~(BM_SLPCR_EN_DSM | BM_SLPCR_VSTBY | BM_SLPCR_RBC_EN |
+		BM_SLPCR_SBYOS | BM_SLPCR_BYPASS_PMIC_READY);
+	/*
+	 * GPC: When improper low-power sequence is used,
+	 * the SoC enters low power mode before the ARM core executes WFI.
+	 *
+	 * Software workaround:
+	 * 1) Software should trigger IRQ #32 (IOMUX) to be always pending
+	 *    by setting IOMUX_GPR1_IRQ.
+	 * 2) Software should then unmask IRQ #32 in GPC before setting GPC
+	 *    Low-Power mode.
+	 * 3) Software should mask IRQ #32 right after GPC Low-Power mode
+	 *    is set.
+	 */
+	switch (mode) {
+	case WAIT_CLOCKED:
+		imx_gpcv2_hwirq_unmask(0);
+		break;
+	case WAIT_UNCLOCKED:
+		val1 |= A7_LPM_WAIT << BP_LPCR_A7_BSC_LPM0;
+		val1 &= ~BM_LPCR_A7_BSC_CPU_CLK_ON_LPM;
+		imx_gpcv2_hwirq_mask(0);
+		break;
+	case STOP_POWER_ON:
+		val1 |= A7_LPM_STOP << BP_LPCR_A7_BSC_LPM0;
+		val1 &= ~BM_LPCR_A7_BSC_CPU_CLK_ON_LPM;
+		val2 |= BM_SLPCR_EN_DSM;
+		val2 |= BM_SLPCR_RBC_EN;
+		val2 |= BM_SLPCR_BYPASS_PMIC_READY;
+		imx_gpcv2_hwirq_mask(0);
+		break;
+	case STOP_POWER_OFF:
+		val1 |= A7_LPM_STOP << BP_LPCR_A7_BSC_LPM0;
+		val1 &= ~BM_LPCR_A7_BSC_CPU_CLK_ON_LPM;
+		val2 |= BM_SLPCR_EN_DSM;
+		val2 |= BM_SLPCR_RBC_EN;
+		val2 |= BM_SLPCR_SBYOS;
+		val2 |= BM_SLPCR_VSTBY;
+		val2 |= BM_SLPCR_BYPASS_PMIC_READY;
+		imx_gpcv2_hwirq_mask(0);
+		break;
+	default:
+		return;
+	}
+	writel_relaxed(val1, gpc_base + GPC_LPCR_A7_BSC);
+	writel_relaxed(val2, gpc_base + GPC_SLPCR);
+
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+}
+
+void imx_gpcv2_set_plat_power_gate_by_lpm(bool pdn)
+{
+	u32 val = readl_relaxed(gpc_base + GPC_LPCR_A7_AD);
+
+	val &= ~(BM_LPCR_A7_AD_EN_PLAT_PDN | BM_LPCR_A7_AD_L2PGE);
+	if (pdn)
+		val |= BM_LPCR_A7_AD_EN_PLAT_PDN | BM_LPCR_A7_AD_L2PGE;
+
+	writel_relaxed(val, gpc_base + GPC_LPCR_A7_AD);
+}
+
+void imx_gpcv2_set_m_core_pgc(bool enable, u32 offset)
+{
+	u32 val = readl_relaxed(gpc_base + offset) & (~BM_GPC_PGC_PCG);
+
+	if (enable)
+		val |= BM_GPC_PGC_PCG;
+
+	writel_relaxed(val, gpc_base + offset);
+}
+
+void imx_gpcv2_set_core1_pdn_pup_by_software(bool pdn)
+{
+	u32 val = readl_relaxed(gpc_base + (pdn ?
+		GPC_CPU_PGC_SW_PDN_REQ : GPC_CPU_PGC_SW_PUP_REQ));
+
+	imx_gpcv2_set_m_core_pgc(true, GPC_PGC_C1);
+	val |= BM_CPU_PGC_SW_PDN_PUP_REQ_CORE1_A7;
+	writel_relaxed(val, gpc_base + (pdn ?
+		GPC_CPU_PGC_SW_PDN_REQ : GPC_CPU_PGC_SW_PUP_REQ));
+
+	while ((readl_relaxed(gpc_base + (pdn ?
+		GPC_CPU_PGC_SW_PDN_REQ : GPC_CPU_PGC_SW_PUP_REQ)) &
+		BM_CPU_PGC_SW_PDN_PUP_REQ_CORE1_A7) != 0)
+		;
+	imx_gpcv2_set_m_core_pgc(false, GPC_PGC_C1);
+}
+
+void imx_gpcv2_set_cpu_power_gate_by_wfi(u32 cpu, bool pdn)
+{
+	unsigned long flags;
+	u32 val;
+
+	spin_lock_irqsave(&gpcv2_lock, flags);
+	val = readl_relaxed(gpc_base + GPC_LPCR_A7_AD);
+
+	if (cpu == 0) {
+		if (pdn) {
+			imx_gpcv2_set_m_core_pgc(true, GPC_PGC_C0);
+			val |= BM_LPCR_A7_AD_EN_C0_WFI_PDN |
+				BM_LPCR_A7_AD_EN_C0_IRQ_PUP;
+		} else {
+			imx_gpcv2_set_m_core_pgc(false, GPC_PGC_C0);
+			val &= ~(BM_LPCR_A7_AD_EN_C0_WFI_PDN |
+				BM_LPCR_A7_AD_EN_C0_IRQ_PUP);
+		}
+	}
+	if (cpu == 1) {
+		if (pdn) {
+			imx_gpcv2_set_m_core_pgc(true, GPC_PGC_C1);
+			val |= BM_LPCR_A7_AD_EN_C1_WFI_PDN |
+				BM_LPCR_A7_AD_EN_C1_IRQ_PUP;
+		} else {
+			imx_gpcv2_set_m_core_pgc(false, GPC_PGC_C1);
+			val &= ~(BM_LPCR_A7_AD_EN_C1_WFI_PDN |
+				BM_LPCR_A7_AD_EN_C1_IRQ_PUP);
+		}
+	}
+	writel_relaxed(val, gpc_base + GPC_LPCR_A7_AD);
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+}
+
+void imx_gpcv2_set_cpu_power_gate_by_lpm(u32 cpu, bool pdn)
+{
+	unsigned long flags;
+	u32 val;
+
+	spin_lock_irqsave(&gpcv2_lock, flags);
+
+	val = readl_relaxed(gpc_base + GPC_LPCR_A7_AD);
+	if (cpu == 0) {
+		if (pdn)
+			val |= BM_LPCR_A7_AD_EN_C0_PDN |
+				BM_LPCR_A7_AD_EN_C0_PUP;
+		else
+			val &= ~(BM_LPCR_A7_AD_EN_C0_PDN |
+				BM_LPCR_A7_AD_EN_C0_PUP);
+	}
+	if (cpu == 1) {
+		if (pdn)
+			val |= BM_LPCR_A7_AD_EN_C1_PDN |
+				BM_LPCR_A7_AD_EN_C1_PUP;
+		else
+			val &= ~(BM_LPCR_A7_AD_EN_C1_PDN |
+				BM_LPCR_A7_AD_EN_C1_PUP);
+	}
+
+	writel_relaxed(val, gpc_base + GPC_LPCR_A7_AD);
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+}
+
+void imx_gpcv2_set_cpu_power_gate_in_idle(bool pdn)
+{
+	unsigned long flags;
+	u32 cpu;
+
+	for_each_possible_cpu(cpu)
+		imx_gpcv2_set_cpu_power_gate_by_lpm(cpu, pdn);
+
+	spin_lock_irqsave(&gpcv2_lock, flags);
+
+	imx_gpcv2_set_m_core_pgc(pdn, GPC_PGC_C0);
+	if (num_online_cpus() > 1)
+		imx_gpcv2_set_m_core_pgc(pdn, GPC_PGC_C1);
+	imx_gpcv2_set_m_core_pgc(pdn, GPC_PGC_SCU);
+	imx_gpcv2_set_plat_power_gate_by_lpm(pdn);
+
+	if (pdn) {
+		imx_gpcv2_set_slot_ack(0, CORE0_A7, false, false);
+		if (num_online_cpus() > 1)
+			imx_gpcv2_set_slot_ack(2, CORE1_A7, false, false);
+		imx_gpcv2_set_slot_ack(3, SCU_A7, false, true);
+		imx_gpcv2_set_slot_ack(6, SCU_A7, true, false);
+		if (num_online_cpus() > 1)
+			imx_gpcv2_set_slot_ack(6, CORE1_A7, true, false);
+		imx_gpcv2_set_slot_ack(6, CORE0_A7, true, true);
+	} else {
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + 0 * 0x4);
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + 2 * 0x4);
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + 3 * 0x4);
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + 6 * 0x4);
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + 7 * 0x4);
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + 8 * 0x4);
+		writel_relaxed(BM_GPC_PGC_ACK_SEL_A7_DUMMY_PUP_ACK |
+			BM_GPC_PGC_ACK_SEL_A7_DUMMY_PDN_ACK,
+			gpc_base + GPC_PGC_ACK_SEL_A7);
+		imx_gpcv2_enable_rbc(false);
+	}
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+}
+
+void imx_gpcv2_set_mix_phy_gate_by_lpm(u32 pdn_index, u32 pup_index)
+{
+	/* set power down slot */
+	writel_relaxed(1 << (FAST_MEGA_MIX * 2),
+		gpc_base + GPC_SLOT0_CFG + pdn_index * 4);
+
+	/* set power up slot */
+	writel_relaxed(1 << (FAST_MEGA_MIX * 2 + 1),
+		gpc_base + GPC_SLOT0_CFG + pup_index * 4);
+}
+
+unsigned int imx_gpcv2_is_mf_mix_off(void)
+{
+	return readl_relaxed(gpc_base + GPC_PGC_FM);
+}
+
+static void imx_gpcv2_mf_mix_off(void)
+{
+	int i;
+
+	for (i = 0; i < IMR_NUM; i++)
+		if (((gpcv2_wake_irqs[i] | gpcv2_mf_request_on[i]) &
+						gpcv2_mf_irqs[i]) != 0)
+			return;
+
+	pr_info("Turn off Mega/Fast mix in DSM\n");
+	imx_gpcv2_set_slot_ack(1, FAST_MEGA_MIX, false, false);
+	imx_gpcv2_set_slot_ack(5, FAST_MEGA_MIX, true, false);
+	imx_gpcv2_set_m_core_pgc(true, GPC_PGC_FM);
+}
+
+int imx_gpcv2_mf_power_on(unsigned int irq, unsigned int on)
+{
+	struct irq_desc *desc = irq_to_desc(irq);
+	unsigned long hwirq = desc->irq_data.hwirq;
+	unsigned int idx = hwirq / 32;
+	unsigned long flags;
+	u32 mask = 1 << (hwirq % 32);
+
+	BUG_ON(idx >= IMR_NUM);
+
+	spin_lock_irqsave(&gpcv2_lock, flags);
+	gpcv2_mf_request_on[idx] = on ? gpcv2_mf_request_on[idx] | mask :
+				  gpcv2_mf_request_on[idx] & ~mask;
+	spin_unlock_irqrestore(&gpcv2_lock, flags);
+
+	return 0;
+}
+
+void imx_gpcv2_enable_rbc(bool enable)
+{
+	u32 val;
+
+	/*
+	 * need to mask all interrupts in GPC before
+	 * operating RBC configurations
+	 */
+	imx_gpcv2_mask_all();
+
+	/* configure RBC enable bit */
+	val = readl_relaxed(gpc_base + GPC_SLPCR);
+	val &= ~BM_SLPCR_RBC_EN;
+	val |= enable ? BM_SLPCR_RBC_EN : 0;
+	writel_relaxed(val, gpc_base + GPC_SLPCR);
+
+	/* configure RBC count */
+	val = readl_relaxed(gpc_base + GPC_SLPCR);
+	val &= ~BM_SLPCR_REG_BYPASS_COUNT;
+	val |= enable ? BM_SLPCR_REG_BYPASS_COUNT : 0;
+	writel(val, gpc_base + GPC_SLPCR);
+
+	/*
+	 * need to delay at least 2 cycles of CKIL(32K)
+	 * due to hardware design requirement, which is
+	 * ~61us, here we use 65us for safe
+	 */
+	udelay(65);
+
+	/* restore GPC interrupt mask settings */
+	imx_gpcv2_restore_all();
+}
+
+
+void imx_gpcv2_pre_suspend(bool arm_power_off)
+{
+	void __iomem *reg_imr1 = gpc_base + GPC_IMR1_CORE0;
+	int i;
+
+	if (arm_power_off) {
+		imx_gpcv2_set_lpm_mode(STOP_POWER_OFF);
+		/* enable core0 power down/up with low power mode */
+		imx_gpcv2_set_cpu_power_gate_by_lpm(0, true);
+		/* enable plat power down with low power mode */
+		imx_gpcv2_set_plat_power_gate_by_lpm(true);
+
+		/*
+		 * To avoid confuse, we use slot 0~4 for power down,
+		 * slot 5~9 for power up.
+		 *
+		 * Power down slot sequence:
+		 * Slot0 -> CORE0
+		 * Slot1 -> Mega/Fast MIX
+		 * Slot2 -> SCU
+		 *
+		 * Power up slot sequence:
+		 * Slot5 -> Mega/Fast MIX
+		 * Slot6 -> SCU
+		 * Slot7 -> CORE0
+		 */
+		imx_gpcv2_set_slot_ack(0, CORE0_A7, false, false);
+		imx_gpcv2_set_slot_ack(2, SCU_A7, false, true);
+
+		if ((!imx_src_is_m4_enabled()) ||
+			(imx_src_is_m4_enabled() && imx_mu_is_m4_in_stop()))
+				imx_gpcv2_mf_mix_off();;
+
+		imx_gpcv2_set_slot_ack(6, SCU_A7, true, false);
+		imx_gpcv2_set_slot_ack(6, CORE0_A7, true, true);
+
+		/* enable core0, scu */
+		imx_gpcv2_set_m_core_pgc(true, GPC_PGC_C0);
+		imx_gpcv2_set_m_core_pgc(true, GPC_PGC_SCU);
+	} else {
+		imx_gpcv2_set_lpm_mode(STOP_POWER_ON);
+	}
+
+	for (i = 0; i < IMR_NUM; i++) {
+		gpcv2_saved_imrs[i] = readl_relaxed(reg_imr1 + i * 4);
+		writel_relaxed(~gpcv2_wake_irqs[i], reg_imr1 + i * 4);
+	}
+}
+
+void imx_gpcv2_enable_wakeup_for_m4(void)
+{
+	void __iomem *reg_imr2 = gpc_base + GPC_IMR1_M4;
+	u32 i;
+
+	for (i = 0; i < IMR_NUM; i++) {
+		gpcv2_saved_imrs_m4[i] = readl_relaxed(reg_imr2 + i * 4);
+		writel_relaxed(~gpcv2_wake_irqs[i], reg_imr2 + i * 4);
+	}
+}
+
+void imx_gpcv2_disable_wakeup_for_m4(void)
+{
+	void __iomem *reg_imr2 = gpc_base + GPC_IMR1_M4;
+	u32 i;
+
+	for (i = 0; i < IMR_NUM; i++)
+		writel_relaxed(gpcv2_saved_imrs_m4[i], reg_imr2 + i * 4);
+}
+
+void imx_gpcv2_post_resume(void)
+{
+	void __iomem *reg_imr1 = gpc_base + GPC_IMR1_CORE0;
+	int i, val;
+
+	/* only external IRQs to wake up LPM and core 0/1 */
+	val = readl_relaxed(gpc_base + GPC_LPCR_A7_BSC);
+	val |= BM_LPCR_A7_BSC_IRQ_SRC_A7_WAKEUP;
+	writel_relaxed(val, gpc_base + GPC_LPCR_A7_BSC);
+	/* mask m4 dsm trigger if M4 NOT enabled */
+	if (!imx_src_is_m4_enabled())
+		writel_relaxed(readl_relaxed(gpc_base + GPC_LPCR_M4) |
+			BM_LPCR_M4_MASK_DSM_TRIGGER, gpc_base + GPC_LPCR_M4);
+	/* set mega/fast mix in A7 domain */
+	val = readl_relaxed(gpc_base + GPC_PGC_CPU_MAPPING);
+	val |= 0x1;
+	writel_relaxed(val, gpc_base + GPC_PGC_CPU_MAPPING);
+	/* set SCU timing */
+	writel_relaxed((0x59 << 10) | 0x5B | (0x2 << 20),
+		gpc_base + GPC_PGC_SCU_TIMING);
+
+	/* set C0/C1 power up timming per design requirement */
+	val = readl_relaxed(gpc_base + GPC_PGC_C0_PUPSCR);
+	val &= ~BM_GPC_PGC_CORE_PUPSCR;
+	val |= (0x1A << 7);
+	writel_relaxed(val, gpc_base + GPC_PGC_C0_PUPSCR);
+
+	val = readl_relaxed(gpc_base + GPC_PGC_C1_PUPSCR);
+	val &= ~BM_GPC_PGC_CORE_PUPSCR;
+	val |= (0x1A << 7);
+	writel_relaxed(val, gpc_base + GPC_PGC_C1_PUPSCR);
+
+	val = readl_relaxed(gpc_base + GPC_SLPCR);
+	val &= ~(BM_SLPCR_EN_DSM);
+	if (!imx_src_is_m4_enabled())
+		val &= ~(BM_SLPCR_VSTBY | BM_SLPCR_RBC_EN |
+			BM_SLPCR_SBYOS | BM_SLPCR_BYPASS_PMIC_READY);
+	val |= BM_SLPCR_EN_A7_FASTWUP_WAIT_MODE;
+	writel_relaxed(val, gpc_base + GPC_SLPCR);
+
+	if (imx_get_soc_revision() == IMX_CHIP_REVISION_1_0) {
+		/* disable memory low power mode */
+		val = readl_relaxed(gpc_base + GPC_MLPCR);
+		val |= BM_GPC_MLPCR_MEMLP_CTL_DIS;
+		writel_relaxed(val, gpc_base + GPC_MLPCR);
+	}
+
+	for (i = 0; i < IMR_NUM; i++)
+		writel_relaxed(gpcv2_saved_imrs[i], reg_imr1 + i * 4);
+
+	imx_gpcv2_set_lpm_mode(WAIT_CLOCKED);
+	imx_gpcv2_set_cpu_power_gate_by_lpm(0, false);
+	imx_gpcv2_set_plat_power_gate_by_lpm(false);
+
+	imx_gpcv2_set_m_core_pgc(false, GPC_PGC_C0);
+	imx_gpcv2_set_m_core_pgc(false, GPC_PGC_SCU);
+	imx_gpcv2_set_m_core_pgc(false, GPC_PGC_FM);
+	for (i = 0; i < MAX_SLOT_NUMBER; i++){
+		if (i == 1 || i == 5) /* skip slts m4 uses */
+			continue;
+		writel_relaxed(0x0, gpc_base + GPC_SLOT0_CFG + i * 0x4);
+	}
+	writel_relaxed(BM_GPC_PGC_ACK_SEL_A7_DUMMY_PUP_ACK |
+		BM_GPC_PGC_ACK_SEL_A7_DUMMY_PDN_ACK,
+		gpc_base + GPC_PGC_ACK_SEL_A7);
+
+	/* disable RBC */
+	imx_gpcv2_enable_rbc(false);
+}
+
+static struct irq_chip imx_gpcv2_chip = {
+	.name			= "GPCV2",
+	.irq_eoi		= irq_chip_eoi_parent,
+	.irq_mask		= imx_gpcv2_irq_mask,
+	.irq_unmask		= imx_gpcv2_irq_unmask,
+	.irq_retrigger		= irq_chip_retrigger_hierarchy,
+	.irq_set_wake		= imx_gpcv2_irq_set_wake,
+#ifdef CONFIG_SMP
+	.irq_set_affinity	= irq_chip_set_affinity_parent,
+#endif
+};
+
+static int imx_gpcv2_domain_xlate(struct irq_domain *domain,
+				struct device_node *controller,
+				const u32 *intspec,
+				unsigned int intsize,
+				unsigned long *out_hwirq,
+				unsigned int *out_type)
+{
+	if (irq_domain_get_of_node(domain) != controller)
+		return -EINVAL;	/* Shouldn't happen, really... */
+	if (intsize != 3)
+		return -EINVAL;	/* Not GIC compliant */
+	if (intspec[0] != 0)
+		return -EINVAL;	/* No PPI should point to this domain */
+
+	*out_hwirq = intspec[1];
+	*out_type = intspec[2];
+	return 0;
+}
+
+static int imx_gpcv2_domain_alloc(struct irq_domain *domain,
+				  unsigned int irq,
+				  unsigned int nr_irqs, void *data)
+{
+	struct irq_fwspec *fwspec = data;
+	struct irq_fwspec parent_fwspec;
+	irq_hw_number_t hwirq;
+	int i;
+
+	if (fwspec->param_count != 3)
+		return -EINVAL;	/* Not GIC compliant */
+	if (fwspec->param[0] != 0)
+		return -EINVAL;	/* No PPI should point to this domain */
+
+	hwirq = fwspec->param[1];
+	if (hwirq >= GPC_MAX_IRQS)
+		return -EINVAL;	/* Can't deal with this */
+
+	for (i = 0; i < nr_irqs; i++)
+		irq_domain_set_hwirq_and_chip(domain, irq + i, hwirq + i,
+					      &imx_gpcv2_chip, NULL);
+
+	parent_fwspec.fwnode = domain->parent->fwnode;
+	parent_fwspec.param_count = 3;
+	parent_fwspec.param[0] = 0;
+	parent_fwspec.param[1] = hwirq;
+	parent_fwspec.param[2] = fwspec->param[2];
+
+	return irq_domain_alloc_irqs_parent(domain, irq, nr_irqs,
+					    &parent_fwspec);
+}
+
+static struct irq_domain_ops imx_gpcv2_domain_ops = {
+	.xlate	= imx_gpcv2_domain_xlate,
+	.alloc	= imx_gpcv2_domain_alloc,
+	.free	= irq_domain_free_irqs_common,
+};
+
+static int __init imx_gpcv2_init(struct device_node *node,
+			       struct device_node *parent)
+{
+	struct irq_domain *parent_domain, *domain;
+	int i, val;
+
+	if (!parent) {
+		pr_err("%s: no parent, giving up\n", node->full_name);
+		return -ENODEV;
+	}
+
+	parent_domain = irq_find_host(parent);
+	if (!parent_domain) {
+		pr_err("%s: unable to obtain parent domain\n", node->full_name);
+		return -ENXIO;
+	}
+
+	gpc_base = of_iomap(node, 0);
+	if (WARN_ON(!gpc_base))
+		return -ENOMEM;
+
+	domain = irq_domain_add_hierarchy(parent_domain, 0, GPC_MAX_IRQS,
+					  node, &imx_gpcv2_domain_ops,
+					  NULL);
+	if (!domain) {
+		iounmap(gpc_base);
+		return -ENOMEM;
+	}
+
+	/* Initially mask all interrupts */
+	for (i = 0; i < IMR_NUM; i++) {
+		writel_relaxed(~0, gpc_base + GPC_IMR1_CORE0 + i * 4);
+		writel_relaxed(~0, gpc_base + GPC_IMR1_CORE1 + i * 4);
+	}
+	/*
+	 * Due to hardware design requirement, need to make sure GPR
+	 * interrupt(#32) is unmasked during RUN mode to avoid entering
+	 * DSM by mistake.
+	 */
+	writel_relaxed(~0x1, gpc_base + GPC_IMR1_CORE0);
+
+	/* Read supported wakeup source in M/F domain */
+	if (cpu_is_imx7d()) {
+		of_property_read_u32_index(node, "fsl,mf-mix-wakeup-irq", 0,
+			&gpcv2_mf_irqs[0]);
+		of_property_read_u32_index(node, "fsl,mf-mix-wakeup-irq", 1,
+			&gpcv2_mf_irqs[1]);
+		of_property_read_u32_index(node, "fsl,mf-mix-wakeup-irq", 2,
+			&gpcv2_mf_irqs[2]);
+		of_property_read_u32_index(node, "fsl,mf-mix-wakeup-irq", 3,
+			&gpcv2_mf_irqs[3]);
+		if (!(gpcv2_mf_irqs[0] | gpcv2_mf_irqs[1] |
+			gpcv2_mf_irqs[2] | gpcv2_mf_irqs[3]))
+			pr_info("No wakeup source in Mega/Fast domain found!\n");
+	}
+
+	/* only external IRQs to wake up LPM and core 0/1 */
+	val = readl_relaxed(gpc_base + GPC_LPCR_A7_BSC);
+	val |= BM_LPCR_A7_BSC_IRQ_SRC_A7_WAKEUP;
+	writel_relaxed(val, gpc_base + GPC_LPCR_A7_BSC);
+	/* mask m4 dsm trigger if M4 NOT enabled */
+	if (!imx_src_is_m4_enabled())
+		writel_relaxed(readl_relaxed(gpc_base + GPC_LPCR_M4) |
+			BM_LPCR_M4_MASK_DSM_TRIGGER, gpc_base + GPC_LPCR_M4);
+	/* set mega/fast mix in A7 domain */
+	writel_relaxed(0x1, gpc_base + GPC_PGC_CPU_MAPPING);
+	/* set SCU timing */
+	writel_relaxed((0x59 << 10) | 0x5B | (0x2 << 20),
+		gpc_base + GPC_PGC_SCU_TIMING);
+
+	/* set C0/C1 power up timming per design requirement */
+	val = readl_relaxed(gpc_base + GPC_PGC_C0_PUPSCR);
+	val &= ~BM_GPC_PGC_CORE_PUPSCR;
+	val |= (0x1A << 7);
+	writel_relaxed(val, gpc_base + GPC_PGC_C0_PUPSCR);
+
+	val = readl_relaxed(gpc_base + GPC_PGC_C1_PUPSCR);
+	val &= ~BM_GPC_PGC_CORE_PUPSCR;
+	val |= (0x1A << 7);
+	writel_relaxed(val, gpc_base + GPC_PGC_C1_PUPSCR);
+
+	writel_relaxed(BM_GPC_PGC_ACK_SEL_A7_DUMMY_PUP_ACK |
+		BM_GPC_PGC_ACK_SEL_A7_DUMMY_PDN_ACK,
+		gpc_base + GPC_PGC_ACK_SEL_A7);
+
+	val = readl_relaxed(gpc_base + GPC_SLPCR);
+	val &= ~(BM_SLPCR_EN_DSM);
+	if (!imx_src_is_m4_enabled())
+		val &= ~(BM_SLPCR_VSTBY | BM_SLPCR_RBC_EN |
+			BM_SLPCR_SBYOS | BM_SLPCR_BYPASS_PMIC_READY);
+	val |= BM_SLPCR_EN_A7_FASTWUP_WAIT_MODE;
+	writel_relaxed(val, gpc_base + GPC_SLPCR);
+
+	if (imx_get_soc_revision() == IMX_CHIP_REVISION_1_0) {
+		/* disable memory low power mode */
+		val = readl_relaxed(gpc_base + GPC_MLPCR);
+		val |= BM_GPC_MLPCR_MEMLP_CTL_DIS;
+		writel_relaxed(val, gpc_base + GPC_MLPCR);
+	}
+
+	/* disable RBC */
+	imx_gpcv2_enable_rbc(false);
+
+	/*
+	 * Clear the OF_POPULATED flag set in of_irq_init so that
+	 * later the GPC power domain driver will not be skipped.
+	 */
+	of_node_clear_flag(node, OF_POPULATED);
+
+	return 0;
+}
+
+/*
+ * We cannot use the IRQCHIP_DECLARE macro that lives in
+ * drivers/irqchip, so we're forced to roll our own. Not very nice.
+ */
+OF_DECLARE_2(irqchip, imx_gpcv2, "fsl,imx7d-gpc", imx_gpcv2_init);
+
+void __init imx_gpcv2_check_dt(void)
+{
+	struct device_node *np;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx7d-gpc");
+	if (WARN_ON(!np))
+		return;
+
+	if (WARN_ON(!of_find_property(np, "interrupt-controller", NULL))) {
+		pr_warn("Outdated DT detected, suspend/resume will NOT work\n");
+
+		/* map GPC, so that at least CPUidle and WARs keep working */
+		gpc_base = of_iomap(np, 0);
+	}
+}
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/hardware.h
+++ linux-ein-5.4.0/arch/arm/mach-imx/hardware.h
@@ -81,13 +81,16 @@
  *	CCM	0x020c4000+0x004000	->	0xf42c4000+0x004000
  *	ANATOP	0x020c8000+0x004000	->	0xf42c8000+0x004000
  *	UART4	0x021f0000+0x004000	->	0xf42f0000+0x004000
+ * mx7d:
+ *     CCM     0x30380000+0x010000     ->      0xf5380000+0x010000
+ *     ANATOP  0x30360000+0x010000     ->      0xf5360000+0x010000
+ *     UART1   0x30860000+0x010000     ->      0xf5860000+0x010000
  */
 #define IMX_IO_P2V(x)	(						\
-			(((x) & 0x80000000) >> 7) |			\
 			(0xf4000000 +					\
-			(((x) & 0x50000000) >> 6) +			\
-			(((x) & 0x0b000000) >> 4) +			\
-			(((x) & 0x000fffff))))
+			(((x) & 0x50000000) >> 4) +			\
+			(((x) & 0x0a000000) >> 4) +			\
+			(((x) & 0x00ffffff))))
 
 #define IMX_IO_ADDRESS(x)	IOMEM(IMX_IO_P2V(x))
 
@@ -99,6 +102,7 @@
 #include "mx2x.h"
 #include "mx21.h"
 #include "mx27.h"
+#include "mx7.h"
 
 #define imx_map_entry(soc, name, _type)	{				\
 	.virtual = soc ## _IO_P2V(soc ## _ ## name ## _BASE_ADDR),	\
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/headsmp.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/headsmp.S
@@ -21,6 +21,17 @@
 
 ENTRY(v7_secondary_startup)
 ARM_BE8(setend be)			@ go BE8 if entered LE
+	mrc	p15, 0, r0, c0, c0, 0
+	ldr	r1, =0xf00
+	orr	r1, r1, #0xff
+	mov	r0, r0, lsr #4
+	and	r0, r0, r1
+	/* 0xc07 is cortex A7's ID */
+	ldr	r1, =0xc00
+	orr	r1, r1, #0x7
+	cmp	r0, r1
+	beq	secondary_startup
+
 	set_diag_reg
 	b	secondary_startup
 ENDPROC(v7_secondary_startup)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/hotplug.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/hotplug.c
@@ -6,32 +6,12 @@
 
 #include <linux/errno.h>
 #include <linux/jiffies.h>
+#include <asm/cacheflush.h>
 #include <asm/cp15.h>
 #include <asm/proc-fns.h>
 
 #include "common.h"
 
-static inline void cpu_enter_lowpower(void)
-{
-	unsigned int v;
-
-	asm volatile(
-		"mcr	p15, 0, %1, c7, c5, 0\n"
-	"	mcr	p15, 0, %1, c7, c10, 4\n"
-	/*
-	 * Turn off coherency
-	 */
-	"	mrc	p15, 0, %0, c1, c0, 1\n"
-	"	bic	%0, %0, %3\n"
-	"	mcr	p15, 0, %0, c1, c0, 1\n"
-	"	mrc	p15, 0, %0, c1, c0, 0\n"
-	"	bic	%0, %0, %2\n"
-	"	mcr	p15, 0, %0, c1, c0, 0\n"
-	  : "=&r" (v)
-	  : "r" (0), "Ir" (CR_C), "Ir" (0x40)
-	  : "cc");
-}
-
 /*
  * platform-specific code to shutdown a CPU
  *
@@ -39,7 +19,7 @@
  */
 void imx_cpu_die(unsigned int cpu)
 {
-	cpu_enter_lowpower();
+	v7_exit_coherency_flush(louis);
 	/*
 	 * We use the cpu jumping argument register to sync with
 	 * imx_cpu_kill() which is running on cpu0 and waiting for
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/imx7d_low_power_idle.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/imx7d_low_power_idle.S
@@ -0,0 +1,788 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/linkage.h>
+
+#define PM_INFO_VBASE_OFFSET			0x0
+#define PM_INFO_PBASE_OFFSET			0x4
+#define PM_INFO_RESUME_ADDR_OFFSET		0x8
+#define PM_INFO_PM_INFO_SIZE_OFFSET		0xc
+#define PM_INFO_PM_INFO_TTBR_OFFSET		0x10
+#define PM_INFO_PM_INFO_NUM_ONLINE_CPUS_OFFSET	0x14
+#define PM_INFO_PM_INFO_NUM_LPI_CPUS_OFFSET	0x18
+#define PM_INFO_VAL_OFFSET			0x1c
+#define PM_INFO_FLAG0_OFFSET			0x20
+#define PM_INFO_FLAG1_OFFSET			0x24
+#define PM_INFO_MX7D_DDRC_P_OFFSET		0x28
+#define PM_INFO_MX7D_DDRC_V_OFFSET		0x2c
+#define PM_INFO_MX7D_CCM_P_OFFSET		0x30
+#define PM_INFO_MX7D_CCM_V_OFFSET		0x34
+#define PM_INFO_MX7D_ANATOP_P_OFFSET		0x38
+#define PM_INFO_MX7D_ANATOP_V_OFFSET		0x3c
+#define PM_INFO_MX7D_SRC_P_OFFSET		0x40
+#define PM_INFO_MX7D_SRC_V_OFFSET		0x44
+#define PM_INFO_MX7D_IOMUXC_GPR_P_OFFSET	0x48
+#define PM_INFO_MX7D_IOMUXC_GPR_V_OFFSET	0x4c
+#define PM_INFO_MX7D_GPC_P_OFFSET		0x50
+#define PM_INFO_MX7D_GPC_V_OFFSET		0x54
+#define PM_INFO_MX7D_GIC_DIST_P_OFFSET		0x58
+#define PM_INFO_MX7D_GIC_DIST_V_OFFSET		0x5c
+
+#define MX7D_SRC_GPR1	0x74
+#define MX7D_SRC_GPR2	0x78
+#define MX7D_SRC_GPR3	0x7c
+#define MX7D_SRC_GPR4	0x80
+#define MX7D_GPC_IMR1	0x30
+#define MX7D_GPC_IMR2	0x34
+#define MX7D_GPC_IMR3	0x38
+#define MX7D_GPC_IMR4	0x3c
+#define DDRC_STAT	0x4
+#define DDRC_PWRCTL	0x30
+#define DDRC_DBG1	0x304
+#define DDRC_DBGCAM	0x308
+#define DDRC_PSTAT	0x3fc
+#define DDRC_PCTRL_0	0x490
+
+/*
+ * imx_pen_lock
+ *
+ * The reference link of Peterson's algorithm:
+ * http://en.wikipedia.org/wiki/Peterson's_algorithm
+ *
+ * val1 = r1 = !turn (inverted from Peterson's algorithm)
+ * on cpu 0:
+ * r2 = flag[0] (in flag0)
+ * r3 = flag[1] (in flag1)
+ * on cpu1:
+ * r2 = flag[1] (in flag1)
+ * r3 = flag[0] (in flag0)
+ *
+ */
+	.macro	imx_pen_lock
+
+	mov	r8, r0
+	mrc	p15, 0, r5, c0, c0, 5
+	and	r5, r5, #3
+	add	r6, r8, #PM_INFO_VAL_OFFSET
+	cmp	r5, #0
+	addeq	r7, r8, #PM_INFO_FLAG0_OFFSET
+	addeq	r8, r8, #PM_INFO_FLAG1_OFFSET
+	addne	r7, r8, #PM_INFO_FLAG1_OFFSET
+	addne	r8, r8, #PM_INFO_FLAG0_OFFSET
+
+	mov	r9, #1
+	str	r9, [r7]
+	dsb
+	str	r5, [r6]
+1:
+	dsb
+	ldr	r9, [r8]
+	cmp	r9, #1
+	ldreq	r9, [r6]
+	cmpeq	r9, r5
+	beq	1b
+
+	.endm
+
+	.macro	imx_pen_unlock
+
+	dsb
+	mrc	p15, 0, r6, c0, c0, 5
+	and	r6, r6, #3
+	cmp	r6, #0
+	addeq	r7, r0, #PM_INFO_FLAG0_OFFSET
+	addne	r7, r0, #PM_INFO_FLAG1_OFFSET
+	mov	r9, #0
+	str	r9, [r7]
+
+	.endm
+
+	.macro  disable_l1_dcache
+
+	push	{r0 - r12, lr}
+	ldr	r7, =v7_flush_dcache_all
+	mov	lr, pc
+	mov	pc, r7
+	pop	{r0 - r12, lr}
+
+	/* disable d-cache */
+	mrc	p15, 0, r7, c1, c0, 0
+	bic	r7, r7, #(1 << 2)
+	mcr	p15, 0, r7, c1, c0, 0
+	dsb
+	isb
+
+	push	{r0 - r12, lr}
+	ldr	r7, =v7_flush_dcache_all
+	mov	lr, pc
+	mov	pc, r7
+	pop	{r0 - r12, lr}
+
+#ifdef CONFIG_SMP
+	clrex
+
+	/* Turn off SMP bit. */
+	mrc	p15, 0, r8, c1, c0, 1
+	bic	r8, r8, #0x40
+	mcr	p15, 0, r8, c1, c0, 1
+
+	isb
+	dsb
+#endif
+
+	.endm
+
+	.macro	tlb_set_to_ocram
+
+	/* save ttbr */
+	mrc	p15, 0, r7, c2, c0, 1
+	str	r7, [r0, #PM_INFO_PM_INFO_TTBR_OFFSET]
+
+	/*
+	 * To ensure no page table walks occur in DDR, we
+	 * have a another page table stored in IRAM that only
+	 * contains entries pointing to IRAM, AIPS1 and AIPS2.
+	 * We need to set the TTBR1 to the new IRAM TLB.
+	 * Do the following steps:
+	 * 1. Flush the Branch Target Address Cache (BTAC)
+	 * 2. Set TTBR1 to point to IRAM page table.
+	 * 3. Disable page table walks in TTBR0 (PD0 = 1)
+	 * 4. Set TTBR0.N=1, implying 0-2G is translated by TTBR0
+	 *     and 2-4G is translated by TTBR1.
+	 */
+
+	/* Disable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	bic	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the BTAC. */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	ldr	r6, =iram_tlb_phys_addr
+	ldr	r7, [r6]
+
+	dsb
+	isb
+
+	/* Store the IRAM table in TTBR1 */
+	mcr	p15, 0, r7, c2, c0, 1
+
+	/* Read TTBCR and set PD0=1, N = 1 */
+	mrc	p15, 0, r6, c2, c0, 2
+	orr	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	.endm
+
+	.macro	tlb_back_to_ddr
+
+	/* Read TTBCR and set PD0=0, N = 0 */
+	mrc	p15, 0, r6, c2, c0, 2
+	bic	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	/* Enable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the Branch Target Address Cache (BTAC) */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	/* restore ttbr */
+	ldr	r7, [r0, #PM_INFO_PM_INFO_TTBR_OFFSET]
+	mcr	p15, 0, r7, c2, c0, 1
+
+	.endm
+
+	/* r10 must be DDRC base address */
+	.macro ddrc_enter_self_refresh
+
+	ldr	r10, [r0, #PM_INFO_MX7D_DDRC_V_OFFSET]
+
+	/* disable port */
+	ldr	r7, =0x0
+	str	r7, [r10, #DDRC_PCTRL_0]
+
+	/* let DDR out of self-refresh */
+	ldr	r7, =0x0
+	str	r7, [r10, #DDRC_PWRCTL]
+
+	/* wait rw port_busy clear */
+	ldr	r6, =(0x1 << 16)
+	orr	r6, r6, #0x1
+2:
+	ldr	r7, [r10, #DDRC_PSTAT]
+	ands	r7, r7, r6
+	bne	2b
+
+	ldr	r7, =0x1
+	str	r7, [r10, #DDRC_DBG1]
+
+	ldr	r6, =0x36000000
+11:
+	ldr	r7, [r10, #DDRC_DBGCAM]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	11b
+
+	/* enter self-refresh bit 5 */
+	ldr	r7, =(0x1 << 5)
+	str	r7, [r10, #DDRC_PWRCTL]
+
+	/* wait until self-refresh mode entered */
+3:
+	ldr	r7, [r10, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x3
+	bne	3b
+4:
+	ldr	r7, [r10, #DDRC_STAT]
+	ands	r7, r7, #0x20
+	beq	4b
+
+	/* disable dram clk */
+	ldr	r7, [r10, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 3)
+	str	r7, [r10, #DDRC_PWRCTL]
+
+	/*
+	 * TO1.1 adds feature of DDR pads power down,
+	 * although TO1.0 has no such function, but it is
+	 * NOT harmful to program GPR registers for TO1.0,
+	 * it can avoid the logic of version check in idle
+	 * thread.
+	 */
+	ldr	r10, [r0, #PM_INFO_MX7D_IOMUXC_GPR_V_OFFSET]
+	ldr	r7, =0xf0000
+	str	r7, [r10]
+
+	/* delay 20us, measured by gpio */
+	ldr	r7, =20
+12:
+	subs	r7, r7, #0x1
+	bne	12b
+
+	.endm
+
+	/* r10 must be DDRC base address */
+	.macro ddrc_exit_self_refresh
+
+	cmp	r5, #0x1
+	ldreq	r10, [r0, #PM_INFO_MX7D_IOMUXC_GPR_P_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7D_IOMUXC_GPR_V_OFFSET]
+
+	ldr	r7, =0x0
+	str	r7, [r10]
+
+	ldr	r7, =20
+13:
+	subs	r7, r7, #0x1
+	bne	13b
+
+	cmp	r5, #0x1
+	ldreq	r10, [r0, #PM_INFO_MX7D_DDRC_P_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7D_DDRC_V_OFFSET]
+
+	ldr	r7, =0x0
+	str	r7, [r10, #DDRC_DBG1]
+
+	ldr	r6, =0x30000000
+14:
+	ldr	r7, [r10, #DDRC_DBGCAM]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	14b
+
+	/* let DDR out of self-refresh */
+	ldr	r7, =0x0
+	str	r7, [r10, #DDRC_PWRCTL]
+
+	/* wait until self-refresh mode exited */
+5:
+	ldr	r7, [r10, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x3
+	beq	5b
+
+	/* enable auto self-refresh */
+	ldr	r7, [r10, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 0)
+	str	r7, [r10, #DDRC_PWRCTL]
+
+	ldr	r7, =0x1
+	str	r7, [r10, #DDRC_PCTRL_0]
+
+	.endm
+
+	.macro	pll_do_wait_lock
+6:
+	ldr	r7, [r10, r8]
+	ands	r7, #0x80000000
+	beq	6b
+
+	.endm
+
+	.macro ccm_enter_idle
+
+	ldr	r10, [r0, #PM_INFO_MX7D_ANATOP_V_OFFSET]
+
+	/* ungate pfd1 332m for lower axi */
+	ldr	r7, =0x8000
+	str	r7, [r10, #0xc8]
+
+	ldr	r10, [r0, #PM_INFO_MX7D_CCM_V_OFFSET]
+
+	/* switch ARM CLK to OSC */
+	ldr	r8, =0x8000
+	ldr	r7, [r10, r8]
+	bic	r7, r7, #0x7000000
+	str	r7, [r10, r8]
+
+	/* lower AXI clk from 24MHz to 3MHz */
+	ldr	r8, =0x8800
+	ldr	r7, [r10, r8]
+	orr	r7, r7, #0x7
+	str	r7, [r10, r8]
+
+	/* lower AHB clk from 24MHz to 3MHz */
+	ldr	r8, =0x9000
+	ldr	r7, [r10, r8]
+	orr	r7, r7, #0x7
+	str	r7, [r10, r8]
+
+	/* gate dram clk */
+	ldr	r8, =0x9880
+	ldr	r7, [r10, r8]
+	bic	r7, r7, #0x10000000
+	str	r7, [r10, r8]
+
+	ldr	r10, [r0, #PM_INFO_MX7D_ANATOP_V_OFFSET]
+
+	/* gate pfd1 332m */
+	ldr	r7, =0x8000
+	str	r7, [r10, #0xc4]
+
+	/* gate system pll pfd div 1 */
+	ldr	r7, =0x10
+	str	r7, [r10, #0xb4]
+	/* power down ARM, 480 and DRAM PLL */
+	ldr	r7, =0x1000
+	str	r7, [r10, #0x64]
+	str	r7, [r10, #0xb4]
+	ldr	r7, =0x100000
+	str	r7, [r10, #0x74]
+
+	.endm
+
+	.macro ccm_exit_idle
+
+	cmp	r5, #0x1
+	ldreq	r10, [r0, #PM_INFO_MX7D_ANATOP_P_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7D_ANATOP_V_OFFSET]
+
+	/* power up ARM, 480 and DRAM PLL */
+	ldr	r7, =0x1000
+	str	r7, [r10, #0x68]
+	ldr	r8, =0x60
+	pll_do_wait_lock
+
+	ldr	r7, =0x1000
+	str	r7, [r10, #0xb8]
+	ldr	r8, =0xb0
+	pll_do_wait_lock
+
+	ldr	r7, =0x100000
+	str	r7, [r10, #0x78]
+	ldr	r8, =0x70
+	pll_do_wait_lock
+
+	/* ungate pfd1 332m for lower axi */
+	ldr	r7, =0x8000
+	str	r7, [r10, #0xc8]
+
+	/* ungate system pll pfd div 1 */
+	ldr	r7, =0x10
+	str	r7, [r10, #0xb8]
+
+	cmp	r5, #0x1
+	ldreq	r10, [r0, #PM_INFO_MX7D_CCM_P_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7D_CCM_V_OFFSET]
+
+	/* switch ARM CLK to PLL */
+	ldr	r8, =0x8000
+	ldr	r7, [r10, r8]
+	orr	r7, r7, #0x1000000
+	str	r7, [r10, r8]
+
+	/* restore AXI clk from 3MHz to 24MHz */
+	ldr	r8, =0x8800
+	ldr	r7, [r10, r8]
+	bic	r7, r7, #0x7
+	str	r7, [r10, r8]
+
+	/* restore AHB clk from 3MHz to 24MHz */
+	ldr	r8, =0x9000
+	ldr	r7, [r10, r8]
+	bic	r7, r7, #0x7
+	str	r7, [r10, r8]
+
+	/* ungate dram clk */
+	ldr	r8, =0x9880
+	ldr	r7, [r10, r8]
+	orr	r7, r7, #0x10000000
+	str	r7, [r10, r8]
+
+	cmp	r5, #0x1
+	ldreq	r10, [r0, #PM_INFO_MX7D_ANATOP_P_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7D_ANATOP_V_OFFSET]
+
+	/* gate pfd1 332m for lower axi */
+	ldr	r7, =0x8000
+	str	r7, [r10, #0xc4]
+
+	.endm
+
+	.macro anatop_enter_idle
+
+	ldr	r10, [r0, #PM_INFO_MX7D_ANATOP_V_OFFSET]
+
+	/* XTAL to RC-OSC switch */
+	ldr	r7, [r10]
+	orr	r7, r7, #0x1000
+	str	r7, [r10]
+	/* power down XTAL */
+	ldr	r7, [r10]
+	orr	r7, r7, #0x1
+	str	r7, [r10]
+
+	/* enable weak 1P0A */
+	ldr	r7, [r10, #0x200]
+	orr	r7, r7, #0x40000
+	str	r7, [r10, #0x200]
+
+	/* disable LDO 1P0A */
+	ldr	r7, [r10, #0x200]
+	bic	r7, r7, #0x1
+	str	r7, [r10, #0x200]
+
+	/* disable LDO 1P0D */
+	ldr	r7, [r10, #0x210]
+	bic	r7, r7, #0x1
+	str	r7, [r10, #0x210]
+
+	/* disable LDO 1P2 */
+	ldr	r7, [r10, #0x220]
+	bic	r7, r7, #0x1
+	str	r7, [r10, #0x220]
+
+	/* switch to low power bandgap */
+	ldr	r7, [r10, #0x270]
+	orr	r7, r7, #0x400
+	str	r7, [r10, #0x270]
+	/* power down normal bandgap */
+	orr	r7, r7, #0x1
+	str	r7, [r10, #0x270]
+
+	.endm
+
+	.macro anatop_exit_idle
+
+	cmp	r5, #0x1
+	ldreq	r10, [r0, #PM_INFO_MX7D_ANATOP_P_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7D_ANATOP_V_OFFSET]
+
+	/* power on normal bandgap */
+	ldr	r7, [r10, #0x270]
+	bic	r7, r7, #0x1
+	str	r7, [r10, #0x270]
+	/* switch to normal bandgap */
+	bic	r7, r7, #0x400
+	str	r7, [r10, #0x270]
+
+	/* enable LDO 1P2 */
+	ldr	r7, [r10, #0x220]
+	orr	r7, r7, #0x1
+	str	r7, [r10, #0x220]
+7:
+	ldr	r7, [r10, #0x220]
+	ands	r7, #0x20000
+	beq	7b
+
+	/* enable LDO 1P0D */
+	ldr	r7, [r10, #0x210]
+	orr	r7, r7, #0x1
+	str	r7, [r10, #0x210]
+8:
+	ldr	r7, [r10, #0x210]
+	ands	r7, #0x20000
+	beq	8b
+
+	/* enable LDO 1P0A */
+	ldr	r7, [r10, #0x200]
+	orr	r7, r7, #0x1
+	str	r7, [r10, #0x200]
+9:
+	ldr	r7, [r10, #0x200]
+	ands	r7, #0x20000
+	beq	9b
+	/* disable weak 1P0A */
+	ldr	r7, [r10, #0x200]
+	bic	r7, r7, #0x40000
+	str	r7, [r10, #0x200]
+
+	/* power up XTAL and wait */
+	ldr	r7, [r10]
+	bic	r7, r7, #0x1
+	str	r7, [r10]
+10:
+	ldr	r7, [r10]
+	ands	r7, r7, #0x4
+	beq	10b
+	/* RC-OSC to XTAL switch */
+	ldr	r7, [r10]
+	bic	r7, r7, #0x1000
+	str	r7, [r10]
+
+	.endm
+
+.extern iram_tlb_phys_addr
+
+	.align 3
+ENTRY(imx7d_low_power_idle)
+	push	{r0 - r12}
+
+	/* get necessary info from pm_info */
+	ldr	r1, [r0, #PM_INFO_PBASE_OFFSET]
+	ldr	r2, [r0, #PM_INFO_PM_INFO_SIZE_OFFSET]
+
+	/*
+	 * counting the resume address in iram
+	 * to set it in SRC register.
+	 */
+	ldr	r5, =imx7d_low_power_idle
+	ldr     r6, =wakeup
+	sub	r6, r6, r5
+	add     r8, r1, r2
+	add	r3, r8, r6
+
+	/* r11 is cpu id */
+	mrc	p15, 0, r11, c0, c0, 5
+	and	r11, r11, #3
+	cmp	r11, #0x0
+	ldreq	r6, =MX7D_SRC_GPR1
+	ldreq	r7, =MX7D_SRC_GPR2
+	ldrne	r6, =MX7D_SRC_GPR3
+	ldrne	r7, =MX7D_SRC_GPR4
+	/* store physical resume addr and pm_info address. */
+	ldr	r10, [r0, #PM_INFO_MX7D_SRC_V_OFFSET]
+	str	r3, [r10, r6]
+	str	r1, [r10, r7]
+
+	disable_l1_dcache
+
+	tlb_set_to_ocram
+
+	/* check last to sleep */
+	ldr	r6, [r0, #PM_INFO_PM_INFO_NUM_ONLINE_CPUS_OFFSET]
+	ldr	r7, [r0, #PM_INFO_PM_INFO_NUM_LPI_CPUS_OFFSET]
+	cmp	r6, r7
+	bne	lpi_enter_done
+
+	ddrc_enter_self_refresh
+	ccm_enter_idle
+	anatop_enter_idle
+
+	ldr	r10, [r0, #PM_INFO_MX7D_GIC_DIST_V_OFFSET]
+	ldr	r7, =0x0
+	ldr	r8, =0x1000
+	str	r7, [r10, r8]
+
+	ldr	r10, [r0, #PM_INFO_MX7D_GPC_V_OFFSET]
+	ldr	r4, [r10, #MX7D_GPC_IMR1]
+	ldr	r5, [r10, #MX7D_GPC_IMR2]
+	ldr	r6, [r10, #MX7D_GPC_IMR3]
+	ldr	r7, [r10, #MX7D_GPC_IMR4]
+
+	ldr	r8, =0xffffffff
+	str	r8, [r10, #MX7D_GPC_IMR1]
+	str	r8, [r10, #MX7D_GPC_IMR2]
+	str	r8, [r10, #MX7D_GPC_IMR3]
+	str	r8, [r10, #MX7D_GPC_IMR4]
+
+	/*
+	 * enable the RBC bypass counter here
+	 * to hold off the interrupts. RBC counter
+	 * = 8 (240us). With this setting, the latency
+	 * from wakeup interrupt to ARM power up
+	 * is ~250uS.
+	 */
+	ldr	r8, [r10, #0x14]
+	bic	r8, r8, #(0x3f << 24)
+	orr	r8, r8, #(0x8 << 24)
+	str	r8, [r10, #0x14]
+
+	/* enable the counter. */
+	ldr	r8, [r10, #0x14]
+	orr	r8, r8, #(0x1 << 30)
+	str	r8, [r10, #0x14]
+
+	/* unmask all the GPC interrupts. */
+	str	r4, [r10, #MX7D_GPC_IMR1]
+	str	r5, [r10, #MX7D_GPC_IMR2]
+	str	r6, [r10, #MX7D_GPC_IMR3]
+	str	r7, [r10, #MX7D_GPC_IMR4]
+
+	/*
+	 * now delay for a short while (30usec)
+	 * ARM is at 24MHz at this point
+	 * so a short loop should be enough.
+	 * this delay is required to ensure that
+	 * the RBC counter can start counting in
+	 * case an interrupt is already pending
+	 * or in case an interrupt arrives just
+	 * as ARM is about to assert DSM_request.
+	 */
+	ldr	r4, =5
+rbc_loop:
+	subs	r4, r4, #0x1
+	bne	rbc_loop
+
+lpi_enter_done:
+
+	imx_pen_unlock
+
+	wfi
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	imx_pen_lock
+
+	/* check first to wake */
+	ldr	r6, [r0, #PM_INFO_PM_INFO_NUM_ONLINE_CPUS_OFFSET]
+	ldr	r7, [r0, #PM_INFO_PM_INFO_NUM_LPI_CPUS_OFFSET]
+	cmp	r6, r7
+	bne	skip_lpi_flow
+
+	ldr	r5, =0x0
+	anatop_exit_idle
+	ccm_exit_idle
+	ddrc_exit_self_refresh
+
+	ldr	r10, [r0, #PM_INFO_MX7D_GIC_DIST_V_OFFSET]
+	ldr	r7, =0x1
+	ldr	r8, =0x1000
+	str	r7, [r10, r8]
+
+skip_lpi_flow:
+	tlb_back_to_ddr
+
+#ifdef CONFIG_SMP
+	/* Turn on SMP bit. */
+	mrc	p15, 0, r7, c1, c0, 1
+	orr	r7, r7, #0x40
+	mcr	p15, 0, r7, c1, c0, 1
+
+	isb
+#endif
+
+	/* enable d-cache */
+	mrc	p15, 0, r7, c1, c0, 0
+	orr	r7, r7, #(1 << 2)
+	mcr	p15, 0, r7, c1, c0, 0
+	dsb
+	isb
+
+	/* Restore registers */
+	pop	{r0 - r12}
+	mov	pc, lr
+
+wakeup:
+
+	/* invalidate L1 I-cache first */
+	mov	r1, #0x0
+	mcr	p15, 0, r1, c7, c5, 0
+	mcr	p15, 0, r1, c7, c5, 0
+	mcr	p15, 0, r1, c7, c5, 6
+	/* enable the Icache and branch prediction */
+	mov	r1, #0x1800
+	mcr	p15, 0, r1, c1, c0, 0
+	isb
+
+	imx_pen_lock
+
+	/* check first to wake */
+	ldr	r6, [r0, #PM_INFO_PM_INFO_NUM_ONLINE_CPUS_OFFSET]
+	ldr	r7, [r0, #PM_INFO_PM_INFO_NUM_LPI_CPUS_OFFSET]
+	cmp	r6, r7
+	bne	wakeup_skip_lpi_flow
+
+	ldr	r5, =0x1
+	anatop_exit_idle
+	ccm_exit_idle
+	ddrc_exit_self_refresh
+
+wakeup_skip_lpi_flow:
+	/* get physical resume address from pm_info. */
+	ldr	lr, [r0, #PM_INFO_RESUME_ADDR_OFFSET]
+
+	/* Restore registers */
+	mov	pc, lr
+	.ltorg
+ENDPROC(imx7d_low_power_idle)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/lpddr3_freq_imx.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/lpddr3_freq_imx.S
@@ -0,0 +1,444 @@
+/*
+ * Copyright (C) 2015-2016 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/linkage.h>
+#include "hardware.h"
+
+#define DDRC_MSTR		0x0
+#define DDRC_STAT		0x4
+#define DDRC_PWRCTL		0x30
+#define DDRC_RFSHTMG		0x64
+#define DDRC_DBG1		0x304
+#define DDRC_PSTAT		0x3fc
+#define DDRC_PCTRL_0		0x490
+#define DDRC_DFIMISC		0x1b0
+#define DDRC_DBGCAM		0x308
+#define DDRC_SWCTL		0x320
+#define DDRC_SWSTAT		0x324
+#define DDRPHY_LP_CON0		0x18
+#define IOMUXC_GPR8		0x20
+#define DDRPHY_PHY_CON1		0x4
+#define DDRPHY_MDLL_CON0	0xb0
+#define DDRPHY_MDLL_CON1	0xb4
+#define DDRPHY_OFFSETD_CON0	0x50
+#define DDRPHY_OFFSETR_CON0	0x20
+#define DDRPHY_OFFSETR_CON1	0x24
+#define DDRPHY_OFFSETR_CON2	0x28
+#define DDRPHY_OFFSETW_CON0	0x30
+#define DDRPHY_OFFSETW_CON1	0x34
+#define DDRPHY_OFFSETW_CON2	0x38
+#define DDRPHY_RFSHTMG		0x64
+#define DDRPHY_CA_WLDSKEW_CON0	0x6c
+#define DDRPHY_CA_DSKEW_CON0	0x7c
+#define DDRPHY_CA_DSKEW_CON1	0x80
+#define DDRPHY_CA_DSKEW_CON2	0x84
+
+#define ANADIG_DIGPROG		0x800
+
+	.align 3
+
+	.macro	ddrc_prepare
+
+	/* disable port */
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_PCTRL_0]
+
+	/* wait port busy done */
+	ldr	r6, =0x10001
+1:
+	ldr	r7, [r4, #DDRC_PSTAT]
+	and	r7, r7, r6
+	cmp	r7, #0
+	bne	1b
+
+	ldr	r7, =0x20
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	ldr	r6, =0x23
+2:
+	ldr	r7, [r4, #DDRC_STAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	2b
+
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_DBG1]
+
+	ldr	r6, =0x30000000
+3:
+	ldr	r7, [r4, #DDRC_DBGCAM]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	3b
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_SWCTL]
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_DFIMISC]
+
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_SWCTL]
+
+	ldr	r6, =0x1
+4:
+	ldr	r7, [r4, #DDRC_SWSTAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	4b
+
+	.endm
+
+	.macro	ddrc_done
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	ldr	r6, =0x3
+5:
+	ldr	r7, [r4, #DDRC_STAT]
+	and	r7, r7, r6
+	cmp	r7, r6
+	beq	5b
+
+	ldr	r7, =0x0
+	str	r7, [r4, #DDRC_DBG1]
+
+	ldr	r7, =0x1
+	str	r7, [r4, #DDRC_PCTRL_0]
+
+	/* enable auto self-refresh */
+	ldr	r7, [r4, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 0)
+	str	r7, [r4, #DDRC_PWRCTL]
+
+	.endm
+
+	.macro	switch_to_below_100m
+
+	/* LPDDR2 and LPDDR3 has different setting */
+	ldr	r8, [r4, #DDRC_MSTR]
+	ands	r8, r8, #0x4
+	bne	9f
+
+	/* LPDDR3 */
+	ldr	r7, =0x00000100
+	str	r7, [r5, #DDRPHY_PHY_CON1]
+	b	10f
+9:
+	/* LPDDR2 */
+	ldr	r7, =0x10010100
+	str	r7, [r5, #DDRPHY_PHY_CON1]
+10:
+	ldr	r6, =24000000
+	cmp	r0, r6
+	beq	16f
+
+	ldr	r7, =0x0005000B
+	str	r7, [r4, #DDRC_RFSHTMG]
+	b	6f
+16:
+	ldr	r7, =0x00010003
+	str	r7, [r4, #DDRC_RFSHTMG]
+
+	/* dram alt sel set to OSC */
+	ldr	r7, =0x10000000
+	ldr	r8, =0xa080
+	str	r7, [r2, r8]
+	/* dram root set to from dram alt, div by 1 */
+	ldr	r7, =0x11000000
+	ldr	r8, =0x9880
+	str	r7, [r2, r8]
+	b	7f
+
+6:
+	/* dram alt sel set to pfd0_392m */
+	ldr	r7, =0x15000000
+	ldr	r8, =0xa080
+	str	r7, [r2, r8]
+	/* dram root set to from dram alt, div by 4 */
+	ldr	r7, =0x11000003
+	ldr	r8, =0x9880
+	str	r7, [r2, r8]
+7:
+	ldr	r7, =0x202ffd0
+	str	r7, [r5, #DDRPHY_MDLL_CON0]
+
+	ldr	r7, =0x7f
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r7, =0x7f7f7f7f
+	str	r7, [r5, #DDRPHY_OFFSETR_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETR_CON1]
+	ldr	r7, =0x7f
+	str	r7, [r5, #DDRPHY_OFFSETR_CON2]
+
+	ldr	r7, =0x7f7f7f7f
+	str	r7, [r5, #DDRPHY_OFFSETW_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETW_CON1]
+	ldr	r7, =0x7f
+	str	r7, [r5, #DDRPHY_OFFSETW_CON2]
+
+	ldr	r7, [r9, #ANADIG_DIGPROG]
+	and	r7, r7, #0x11
+	cmp	r7, #0x11
+	bne	11f
+
+	ldr	r7, =0x0
+	str	r7, [r5, #DDRPHY_CA_WLDSKEW_CON0]
+	ldr	r7, =0x60606060
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	ldr	r7, =0x00006060
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+	b	12f
+11:
+	ldr	r7, =0x0
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+12:
+	ldr	r7, =0x100007f
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+	ldr	r7, =0x7f
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	.endm
+
+	.macro	switch_to_533m
+
+	ldr	r7, =0x10210100
+	str	r7, [r5, #DDRPHY_PHY_CON1]
+
+	ldr	r7, =0x00200038
+	str	r7, [r4, #DDRC_RFSHTMG]
+
+	/* dram root set to from dram main, div by 2 */
+	ldr	r7, =0x10000001
+	ldr	r8, =0x9880
+	str	r7, [r2, r8]
+
+	ldr	r7, =0x1010007e
+	str	r7, [r5, #DDRPHY_MDLL_CON0]
+
+	ldr	r7, =0x10000008
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r7, =0x08080808
+	str	r7, [r5, #DDRPHY_OFFSETR_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETR_CON1]
+	ldr	r7, =0x8
+	str	r7, [r5, #DDRPHY_OFFSETR_CON2]
+
+	ldr	r7, =0x08080808
+	str	r7, [r5, #DDRPHY_OFFSETW_CON0]
+	str	r7, [r5, #DDRPHY_OFFSETW_CON1]
+	ldr	r7, =0x8
+	str	r7, [r5, #DDRPHY_OFFSETW_CON2]
+
+	/* LPDDR2 and LPDDR3 has different setting */
+	ldr	r8, [r4, #DDRC_MSTR]
+	ands	r8, r8, #0x4
+	beq	15f
+
+	ldr	r7, [r9, #ANADIG_DIGPROG]
+	and	r7, r7, #0x11
+	cmp	r7, #0x11
+	bne	14f
+
+	ldr	r7, =0x08080808
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	ldr	r7, =0x0a0a0808
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+	ldr	r7, =0x0a0a0a0a
+	str	r7, [r5, #DDRPHY_CA_WLDSKEW_CON0]
+	b	14f
+15:
+	ldr	r7, [r9, #ANADIG_DIGPROG]
+	and	r7, r7, #0x11
+	cmp	r7, #0x11
+	bne	13f
+
+	ldr	r7, =0x1c1c1c1c
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	ldr	r7, =0x30301c1c
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+	ldr	r7, =0x30303030
+	str	r7, [r5, #DDRPHY_CA_WLDSKEW_CON0]
+	b	14f
+13:
+	ldr	r7, =0x08080808
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON0]
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON1]
+	ldr	r7, =0x0808
+	str	r7, [r5, #DDRPHY_CA_DSKEW_CON2]
+14:
+	ldr	r7, =0x11000008
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+	ldr	r7, =0x10000008
+	str	r7, [r5, #DDRPHY_OFFSETD_CON0]
+
+	ldr	r6, =0x4
+8:
+	ldr	r7, [r5, #DDRPHY_MDLL_CON1]
+	and	r7, r7, r6
+	cmp	r7, r6
+	bne	8b
+
+	.endm
+
+ENTRY(imx_lpddr3_freq_change)
+	push	{r2 - r9}
+
+	/*
+	 * To ensure no page table walks occur in DDR, we
+	 * have a another page table stored in IRAM that only
+	 * contains entries pointing to IRAM, AIPS1 and AIPS2.
+	 * We need to set the TTBR1 to the new IRAM TLB.
+	 * Do the following steps:
+	 * 1. Flush the Branch Target Address Cache (BTAC)
+	 * 2. Set TTBR1 to point to IRAM page table.
+	 * 3. Disable page table walks in TTBR0 (PD0 = 1)
+	 * 4. Set TTBR0.N=1, implying 0-2G is translated by TTBR0
+	 *     and 2-4G is translated by TTBR1.
+	 */
+
+	ldr	r6, =iram_tlb_phys_addr
+	ldr	r7, [r6]
+
+	/* Flush the Branch Target Address Cache (BTAC) */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	/* Disable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	bic	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	dsb
+	isb
+	/* Store the IRAM table in TTBR1 */
+	mcr	p15, 0, r7, c2, c0, 1
+
+	/* Read TTBCR and set PD0=1, N = 1 */
+	mrc	p15, 0, r6, c2, c0, 2
+	orr	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	/* Disable L1 data cache. */
+	mrc	p15, 0, r6, c1, c0, 0
+	bic	r6, r6, #0x4
+	mcr	p15, 0, r6, c1, c0, 0
+
+	dsb
+	isb
+
+	ldr	r2, =IMX_IO_P2V(MX7D_CCM_BASE_ADDR)
+	ldr	r3, =IMX_IO_P2V(MX7D_IOMUXC_GPR_BASE_ADDR)
+	ldr	r4, =IMX_IO_P2V(MX7D_DDRC_BASE_ADDR)
+	ldr	r5, =IMX_IO_P2V(MX7D_DDRC_PHY_BASE_ADDR)
+	ldr	r9, =IMX_IO_P2V(MX7D_ANATOP_BASE_ADDR)
+
+	ddrc_prepare
+
+	ldr	r6, =100000000
+	cmp	r0, r6
+	bgt	set_to_533m
+
+set_to_below_100m:
+	switch_to_below_100m
+	b	done
+
+set_to_533m:
+	switch_to_533m
+	b	done
+
+done:
+	ddrc_done
+
+	/* Enable L1 data cache. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x4
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Restore the TTBCR */
+	dsb
+	isb
+
+	/* Read TTBCR and set PD0=0, N = 0 */
+	mrc	p15, 0, r6, c2, c0, 2
+	bic	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	dsb
+	isb
+
+	/* Enable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the Branch Target Address Cache (BTAC) */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	nop
+	nop
+	nop
+	nop
+	nop
+
+	/* Restore registers */
+	pop	{r2 - r9}
+	mov	pc, lr
+ENDPROC(imx_lpddr3_freq_change)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-imx6q.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-imx6q.c
@@ -5,29 +5,16 @@
  */
 
 #include <linux/clk.h>
-#include <linux/clkdev.h>
-#include <linux/cpu.h>
-#include <linux/delay.h>
-#include <linux/export.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/irq.h>
 #include <linux/irqchip.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
 #include <linux/of_platform.h>
-#include <linux/pm_opp.h>
 #include <linux/pci.h>
 #include <linux/phy.h>
-#include <linux/reboot.h>
 #include <linux/regmap.h>
 #include <linux/micrel_phy.h>
 #include <linux/mfd/syscon.h>
 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
-#include <asm/system_misc.h>
 
 #include "common.h"
 #include "cpuidle.h"
@@ -258,21 +245,20 @@
 
 static void __init imx6q_init_machine(void)
 {
-	struct device *parent;
-
-	if (cpu_is_imx6q() && imx_get_soc_revision() == IMX_CHIP_REVISION_2_0)
-		imx_print_silicon_rev("i.MX6QP", IMX_CHIP_REVISION_1_0);
+	if (cpu_is_imx6q() && imx_get_soc_revision() >= IMX_CHIP_REVISION_2_0)
+		/*
+		 * SoCs that identify as i.MX6Q >= rev 2.0 are really i.MX6QP.
+		 * Quirk: i.MX6QP revision = i.MX6Q revision - (1, 0),
+		 * e.g. i.MX6QP rev 1.1 identifies as i.MX6Q rev 2.1.
+		 */
+		imx_print_silicon_rev("i.MX6QP", imx_get_soc_revision() - 0x10);
 	else
 		imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
 				imx_get_soc_revision());
 
-	parent = imx_soc_device_init();
-	if (parent == NULL)
-		pr_warn("failed to initialize soc device\n");
-
 	imx6q_enet_phy_init();
 
-	of_platform_default_populate(NULL, NULL, parent);
+	of_platform_default_populate(NULL, NULL, NULL);
 
 	imx_anatop_init();
 	cpu_is_imx6q() ?  imx6q_pm_init() : imx6dl_pm_init();
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-imx6sl.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-imx6sl.c
@@ -4,7 +4,6 @@
  */
 
 #include <linux/irqchip.h>
-#include <linux/of.h>
 #include <linux/of_platform.h>
 #include <linux/mfd/syscon.h>
 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
@@ -46,13 +45,7 @@
 
 static void __init imx6sl_init_machine(void)
 {
-	struct device *parent;
-
-	parent = imx_soc_device_init();
-	if (parent == NULL)
-		pr_warn("failed to initialize soc device\n");
-
-	of_platform_default_populate(NULL, NULL, parent);
+	of_platform_default_populate(NULL, NULL, NULL);
 
 	if (cpu_is_imx6sl())
 		imx6sl_fec_init();
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-imx6sx.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-imx6sx.c
@@ -63,13 +63,7 @@
 
 static void __init imx6sx_init_machine(void)
 {
-	struct device *parent;
-
-	parent = imx_soc_device_init();
-	if (parent == NULL)
-		pr_warn("failed to initialize soc device\n");
-
-	of_platform_default_populate(NULL, NULL, parent);
+	of_platform_default_populate(NULL, NULL, NULL);
 
 	imx6sx_enet_init();
 	imx_anatop_init();
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-imx6ul.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-imx6ul.c
@@ -14,6 +14,7 @@
 
 #include "common.h"
 #include "cpuidle.h"
+#include "hardware.h"
 
 static void __init imx6ul_enet_clk_init(void)
 {
@@ -25,7 +26,6 @@
 				   IMX6UL_GPR1_ENET_CLK_OUTPUT);
 	else
 		pr_err("failed to find fsl,imx6ul-iomux-gpr regmap\n");
-
 }
 
 static int ksz8081_phy_fixup(struct phy_device *dev)
@@ -56,13 +56,10 @@
 
 static void __init imx6ul_init_machine(void)
 {
-	struct device *parent;
-
-	parent = imx_soc_device_init();
-	if (parent == NULL)
-		pr_warn("failed to initialize soc device\n");
+	imx_print_silicon_rev(cpu_is_imx6ull() ? "i.MX6ULL" : "i.MX6UL",
+		imx_get_soc_revision());
 
-	of_platform_default_populate(NULL, NULL, parent);
+	of_platform_default_populate(NULL, NULL, NULL);
 	imx6ul_enet_init();
 	imx_anatop_init();
 	imx6ul_pm_init();
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-imx7d.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-imx7d.c
@@ -13,6 +13,13 @@
 #include <asm/mach/map.h>
 
 #include "common.h"
+#include "cpuidle.h"
+
+static struct property device_disabled = {
+	.name = "status",
+	.length = sizeof("disabled"),
+	.value = "disabled",
+};
 
 static int ar8031_phy_fixup(struct phy_device *dev)
 {
@@ -76,29 +83,48 @@
 	imx7d_enet_clk_sel();
 }
 
-static void __init imx7d_init_machine(void)
+static inline void imx7d_disable_arm_arch_timer(void)
 {
-	struct device *parent;
+	struct device_node *node;
 
-	parent = imx_soc_device_init();
-	if (parent == NULL)
-		pr_warn("failed to initialize soc device\n");
+	node = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
+	if (node) {
+		pr_info("disable arm arch timer for nosmp!\n");
+		of_add_property(node, &device_disabled);
+	}
+}
 
+static void __init imx7d_init_machine(void)
+{
 	imx_anatop_init();
+	of_platform_default_populate(NULL, NULL, NULL);
+	imx7d_pm_init();
 	imx7d_enet_init();
 }
 
 static void __init imx7d_init_late(void)
 {
+	imx7d_cpuidle_init();
 	if (IS_ENABLED(CONFIG_ARM_IMX_CPUFREQ_DT))
 		platform_device_register_simple("imx-cpufreq-dt", -1, NULL, 0);
 }
 
 static void __init imx7d_init_irq(void)
 {
+	imx_gpcv2_check_dt();
 	imx_init_revision_from_anatop();
 	imx_src_init();
 	irqchip_init();
+#ifndef CONFIG_SMP
+	imx7d_disable_arm_arch_timer();
+#endif
+}
+
+static void __init imx7d_map_io(void)
+{
+	debug_ll_io_init();
+	imx7_pm_map_io();
+	imx_busfreq_map_io();
 }
 
 static const char *const imx7d_dt_compat[] __initconst = {
@@ -108,6 +134,8 @@
 };
 
 DT_MACHINE_START(IMX7D, "Freescale i.MX7 Dual (Device Tree)")
+	.map_io         = imx7d_map_io,
+	.smp            = smp_ops(imx_smp_ops),
 	.init_irq	= imx7d_init_irq,
 	.init_machine	= imx7d_init_machine,
 	.init_late      = imx7d_init_late,
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-imx7ulp.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-imx7ulp.c
@@ -37,6 +37,7 @@
 	 * bit[31:28] of JTAG_ID register defines revision as below from B0:
 	 * 0001        B0
 	 * 0010        B1
+	 * 0011        B2
 	 */
 	switch (revision >> 28) {
 	case 1:
@@ -45,6 +46,9 @@
 	case 2:
 		imx_set_soc_revision(IMX_CHIP_REVISION_2_1);
 		break;
+	case 3:
+		imx_set_soc_revision(IMX_CHIP_REVISION_2_2);
+		break;
 	default:
 		imx_set_soc_revision(IMX_CHIP_REVISION_1_0);
 		break;
@@ -57,7 +61,7 @@
 
 	mxc_set_cpu_type(MXC_CPU_IMX7ULP);
 	imx7ulp_set_revision();
-	of_platform_default_populate(NULL, NULL, imx_soc_device_init());
+	of_platform_default_populate(NULL, NULL, NULL);
 }
 
 static const char *const imx7ulp_dt_compat[] __initconst = {
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mach-vf610.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mach-vf610.c
@@ -3,11 +3,57 @@
  * Copyright 2012-2013 Freescale Semiconductor, Inc.
  */
 
+#include <linux/of_address.h>
 #include <linux/of_platform.h>
+#include <linux/io.h>
+
 #include <linux/irqchip.h>
 #include <asm/mach/arch.h>
 #include <asm/hardware/cache-l2x0.h>
 
+#include "common.h"
+#include "hardware.h"
+
+#define MSCM_CPxCOUNT		0x00c
+#define MSCM_CPxCFG1		0x014
+
+static void __init vf610_detect_cpu(void)
+{
+	struct device_node *np;
+	u32 cpxcount, cpxcfg1;
+	unsigned int cpu_type;
+	void __iomem *mscm;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,vf610-mscm-cpucfg");
+	if (WARN_ON(!np))
+		return;
+
+	mscm = of_iomap(np, 0);
+	of_node_put(np);
+
+	if (WARN_ON(!mscm))
+		return;
+
+	cpxcount = readl_relaxed(mscm + MSCM_CPxCOUNT);
+	cpxcfg1  = readl_relaxed(mscm + MSCM_CPxCFG1);
+
+	iounmap(mscm);
+
+	cpu_type = cpxcount ? MXC_CPU_VF600 : MXC_CPU_VF500;
+
+	if (cpxcfg1)
+		cpu_type |= MXC_CPU_VFx10;
+
+	mxc_set_cpu_type(cpu_type);
+}
+
+static void __init vf610_init_machine(void)
+{
+	vf610_detect_cpu();
+
+	of_platform_default_populate(NULL, NULL, NULL);
+}
+
 static const char * const vf610_dt_compat[] __initconst = {
 	"fsl,vf500",
 	"fsl,vf510",
@@ -20,5 +66,6 @@
 DT_MACHINE_START(VYBRID_VF610, "Freescale Vybrid VF5xx/VF6xx (Device Tree)")
 	.l2c_aux_val	= 0,
 	.l2c_aux_mask	= ~0,
+	.init_machine   = vf610_init_machine,
 	.dt_compat	= vf610_dt_compat,
 MACHINE_END
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mmdc.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mmdc.c
@@ -59,6 +59,7 @@
 #define to_mmdc_pmu(p) container_of(p, struct mmdc_pmu, pmu)
 
 static int ddr_type;
+static int lpddr2_2ch_mode;
 
 struct fsl_mmdc_devtype_data {
 	unsigned int flags;
@@ -99,10 +100,12 @@
 	cpumask_t cpu;
 	struct hrtimer hrtimer;
 	unsigned int active_events;
+	int id;
 	struct device *dev;
 	struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
 	struct hlist_node node;
 	struct fsl_mmdc_devtype_data *devtype_data;
+	struct clk *mmdc_ipg_clk;
 };
 
 /*
@@ -432,8 +435,6 @@
 static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
 		void __iomem *mmdc_base, struct device *dev)
 {
-	int mmdc_num;
-
 	*pmu_mmdc = (struct mmdc_pmu) {
 		.pmu = (struct pmu) {
 			.task_ctx_nr    = perf_invalid_context,
@@ -451,26 +452,29 @@
 		.active_events = 0,
 	};
 
-	mmdc_num = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
+	pmu_mmdc->id = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
 
-	return mmdc_num;
+	return pmu_mmdc->id;
 }
 
 static int imx_mmdc_remove(struct platform_device *pdev)
 {
 	struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);
 
+	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
 	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
 	perf_pmu_unregister(&pmu_mmdc->pmu);
+	iounmap(pmu_mmdc->mmdc_base);
+	clk_disable_unprepare(pmu_mmdc->mmdc_ipg_clk);
 	kfree(pmu_mmdc);
 	return 0;
 }
 
-static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base)
+static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base,
+			      struct clk *mmdc_ipg_clk)
 {
 	struct mmdc_pmu *pmu_mmdc;
 	char *name;
-	int mmdc_num;
 	int ret;
 	const struct of_device_id *of_id =
 		of_match_device(imx_mmdc_dt_ids, &pdev->dev);
@@ -493,13 +497,14 @@
 		cpuhp_mmdc_state = ret;
 	}
 
-	mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
-	if (mmdc_num == 0)
-		name = "mmdc";
-	else
-		name = devm_kasprintf(&pdev->dev,
-				GFP_KERNEL, "mmdc%d", mmdc_num);
+	ret = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
+	if (ret < 0)
+		goto  pmu_free;
+
+	name = devm_kasprintf(&pdev->dev,
+				GFP_KERNEL, "mmdc%d", ret);
 
+	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
 	pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
 
 	hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC,
@@ -520,6 +525,7 @@
 
 pmu_register_err:
 	pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
+	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
 	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
 	hrtimer_cancel(&pmu_mmdc->hrtimer);
 pmu_free:
@@ -529,7 +535,7 @@
 
 #else
 #define imx_mmdc_remove NULL
-#define imx_mmdc_perf_init(pdev, mmdc_base) 0
+#define imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk) 0
 #endif
 
 static int imx_mmdc_probe(struct platform_device *pdev)
@@ -567,7 +573,13 @@
 	val &= ~(1 << BP_MMDC_MAPSR_PSD);
 	writel_relaxed(val, reg);
 
-	return imx_mmdc_perf_init(pdev, mmdc_base);
+	err = imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk);
+	if (err) {
+		iounmap(mmdc_base);
+		clk_disable_unprepare(mmdc_ipg_clk);
+	}
+
+	return err;
 }
 
 int imx_mmdc_get_ddr_type(void)
@@ -575,6 +587,11 @@
 	return ddr_type;
 }
 
+int imx_mmdc_get_lpddr2_2ch_mode(void)
+{
+	return lpddr2_2ch_mode;
+}
+
 static struct platform_driver imx_mmdc_driver = {
 	.driver		= {
 		.name	= "imx-mmdc",
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mu.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/mu.c
@@ -0,0 +1,422 @@
+/*
+ * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
+#include <linux/notifier.h>
+#include <linux/platform_device.h>
+#include "common.h"
+#include "hardware.h"
+
+#define MU_ATR0_OFFSET	0x0
+#define MU_ARR0_OFFSET	0x10
+#define MU_ARR1_OFFSET	0x14
+#define MU_ASR		0x20
+#define MU_ACR		0x24
+#define MX7ULP_MU_TR0	0x20
+#define MX7ULP_MU_RR0	0x40
+#define MX7ULP_MU_RR1	0x44
+#define MX7ULP_MU_SR	0x60
+#define MX7ULP_MU_CR	0x64
+
+#define MU_LPM_HANDSHAKE_INDEX		0
+#define MU_RPMSG_HANDSHAKE_INDEX	1
+#define MU_LPM_BUS_HIGH_READY_FOR_M4	0xFFFF6666
+#define MU_LPM_M4_FREQ_CHANGE_READY	0xFFFF7777
+#define MU_LPM_M4_REQUEST_HIGH_BUS	0x2222CCCC
+#define MU_LPM_M4_RELEASE_HIGH_BUS	0x2222BBBB
+#define MU_LPM_M4_WAKEUP_SRC_VAL	0x55555000
+#define MU_LPM_M4_WAKEUP_SRC_MASK	0xFFFFF000
+#define MU_LPM_M4_WAKEUP_IRQ_MASK	0xFF0
+#define MU_LPM_M4_WAKEUP_IRQ_SHIFT	0x4
+#define MU_LPM_M4_WAKEUP_ENABLE_MASK	0xF
+#define MU_LPM_M4_WAKEUP_ENABLE_SHIFT	0x0
+
+#define MU_LPM_M4_RUN_MODE	        0x5A5A0001
+#define MU_LPM_M4_WAIT_MODE	        0x5A5A0002
+#define MU_LPM_M4_STOP_MODE	        0x5A5A0003
+
+#define MAX_NUM 10     /*  enlarge it if overflow happen */
+
+static void __iomem *mu_base;
+static u32 m4_message[MAX_NUM];
+static u32 in_idx, out_idx;
+static struct delayed_work mu_work;
+static u32 m4_wake_irqs[4];
+static bool m4_freq_low;
+struct irq_domain *domain;
+static bool m4_in_stop;
+static struct clk *clk;
+static DEFINE_SPINLOCK(mu_lock);
+
+void imx_mu_set_m4_run_mode(void)
+{
+	m4_in_stop = false;
+}
+
+bool imx_mu_is_m4_in_stop(void)
+{
+	return m4_in_stop;
+}
+
+bool imx_mu_is_m4_in_low_freq(void)
+{
+	return m4_freq_low;
+}
+
+void imx_mu_enable_m4_irqs_in_gic(bool enable)
+{
+	int i, j;
+
+	for (i = 0; i < 4; i++) {
+		if (m4_wake_irqs[i] == 0)
+			continue;
+		for (j = 0; j < 32; j++) {
+			if (m4_wake_irqs[i] & (1 << j)) {
+				if (enable)
+					enable_irq(irq_find_mapping(
+						domain, i * 32 + j));
+				else
+					disable_irq(irq_find_mapping(
+						domain, i * 32 + j));
+			}
+		}
+	}
+}
+
+static irqreturn_t mcc_m4_dummy_isr(int irq, void *param)
+{
+	return IRQ_HANDLED;
+}
+
+static int imx_mu_send_message(unsigned int index, unsigned int data)
+{
+	u32 val, ep;
+	int i, te_flag = 0;
+	unsigned long timeout = jiffies + msecs_to_jiffies(500);
+
+	/* wait for transfer buffer empty, and no event pending */
+	do {
+		if (cpu_is_imx7ulp())
+			val = readl_relaxed(mu_base + MX7ULP_MU_SR);
+		else
+			val = readl_relaxed(mu_base + MU_ASR);
+		ep = val & BIT(4);
+		if (time_after(jiffies, timeout)) {
+			pr_err("Waiting MU transmit buffer empty timeout!\n");
+			return -EIO;
+		}
+	} while (((val & (1 << (20 + 3 - index))) == 0) || (ep == BIT(4)));
+
+	if (cpu_is_imx7ulp())
+		writel_relaxed(data, mu_base + index * 0x4 + MX7ULP_MU_TR0);
+	else
+		writel_relaxed(data, mu_base + index * 0x4 + MU_ATR0_OFFSET);
+
+	/*
+	 * make a double check that TEn is not empty after write
+	 */
+	if (cpu_is_imx7ulp())
+		val = readl_relaxed(mu_base + MX7ULP_MU_SR);
+	else
+		val = readl_relaxed(mu_base + MU_ASR);
+	ep = val & BIT(4);
+	if (((val & (1 << (20 + (3 - index)))) == 0) || (ep == BIT(4)))
+		return 0;
+	else
+		te_flag = 1;
+
+	/*
+	 * Make sure that TEn flag is changed, after the ATRn is filled up.
+	 */
+	for (i = 0; i < 100; i++) {
+		if (cpu_is_imx7ulp())
+			val = readl_relaxed(mu_base + MX7ULP_MU_SR);
+		else
+			val = readl_relaxed(mu_base + MU_ASR);
+		ep = val & BIT(4);
+		if (((val & (1 << (20 + 3 - index))) == 0) || (ep == BIT(4))) {
+			/*
+			 * BUG here. TEn flag is changes, after the
+			 * ATRn is filled with MSG for a while.
+			 */
+			te_flag = 0;
+			break;
+		} else if (time_after(jiffies, timeout)) {
+			/* Can't see TEn 1->0, maybe already handled! */
+			te_flag = 1;
+			break;
+		}
+	}
+	if (te_flag == 0)
+		pr_info("BUG: TEn is not changed immediately"
+				"when ATRn is filled up.\n");
+
+	return 0;
+}
+
+static void mu_work_handler(struct work_struct *work)
+{
+	int ret;
+	u32 irq, enable, idx, mask, virq;
+	struct of_phandle_args args;
+	u32 message;
+	unsigned long flags;
+
+	spin_lock_irqsave(&mu_lock, flags);
+	message = m4_message[out_idx % MAX_NUM];
+	spin_unlock_irqrestore(&mu_lock, flags);
+
+	pr_debug("receive M4 message 0x%x\n", message);
+
+	switch (message) {
+	case MU_LPM_M4_RUN_MODE:
+	case MU_LPM_M4_WAIT_MODE:
+		m4_in_stop = false;
+		break;
+	case MU_LPM_M4_STOP_MODE:
+		m4_in_stop = true;
+		break;
+	case MU_LPM_M4_REQUEST_HIGH_BUS:
+		request_bus_freq(BUS_FREQ_HIGH);
+		imx_mu_send_message(MU_LPM_HANDSHAKE_INDEX,
+			MU_LPM_BUS_HIGH_READY_FOR_M4);
+		m4_freq_low = false;
+		break;
+	case MU_LPM_M4_RELEASE_HIGH_BUS:
+		release_bus_freq(BUS_FREQ_HIGH);
+		m4_freq_low = true;
+		break;
+	default:
+		if ((message & MU_LPM_M4_WAKEUP_SRC_MASK) ==
+			MU_LPM_M4_WAKEUP_SRC_VAL) {
+			irq = (message & MU_LPM_M4_WAKEUP_IRQ_MASK) >>
+				MU_LPM_M4_WAKEUP_IRQ_SHIFT;
+
+			enable = (message & MU_LPM_M4_WAKEUP_ENABLE_MASK) >>
+				MU_LPM_M4_WAKEUP_ENABLE_SHIFT;
+
+			/* to hwirq start from 0 */
+			irq -= 32;
+
+			idx = irq / 32;
+			mask = 1 << irq % 32;
+
+			args.np = of_find_compatible_node(NULL, NULL, "fsl,imx6sx-gpc");
+			args.args_count = 3;
+			args.args[0] = 0;
+			args.args[1] = irq;
+			args.args[2] = IRQ_TYPE_LEVEL_HIGH;
+
+			virq = irq_create_of_mapping(&args);
+
+			if (enable && can_request_irq(virq, 0)) {
+				ret = request_irq(virq, mcc_m4_dummy_isr,
+					IRQF_NO_SUSPEND, "imx-m4-dummy", NULL);
+				if (ret) {
+					pr_err("%s: register interrupt %d failed, rc %d\n",
+						__func__, virq, ret);
+					break;
+				}
+				disable_irq(virq);
+				m4_wake_irqs[idx] = m4_wake_irqs[idx] | mask;
+			}
+			imx_gpc_add_m4_wake_up_irq(irq, enable);
+		}
+		break;
+	}
+
+	spin_lock_irqsave(&mu_lock, flags);
+	m4_message[out_idx % MAX_NUM] = 0;
+	out_idx++;
+	spin_unlock_irqrestore(&mu_lock, flags);
+
+	/* enable RIE3 interrupt */
+	if (cpu_is_imx7ulp())
+		writel_relaxed(readl_relaxed(mu_base + MX7ULP_MU_CR) | BIT(27),
+			mu_base + MX7ULP_MU_CR);
+	else
+		writel_relaxed(readl_relaxed(mu_base + MU_ACR) | BIT(27),
+			mu_base + MU_ACR);
+}
+
+int imx_mu_lpm_ready(bool ready)
+{
+	u32 val;
+
+	if (cpu_is_imx7ulp()) {
+		val = readl_relaxed(mu_base + MX7ULP_MU_CR);
+		if (ready)
+			writel_relaxed(val | BIT(0), mu_base + MX7ULP_MU_CR);
+		else
+			writel_relaxed(val & ~BIT(0), mu_base + MX7ULP_MU_CR);
+	} else {
+		val = readl_relaxed(mu_base + MU_ACR);
+		if (ready)
+			writel_relaxed(val | BIT(0), mu_base + MU_ACR);
+		else
+			writel_relaxed(val & ~BIT(0), mu_base + MU_ACR);
+	}
+	return 0;
+}
+
+static irqreturn_t imx_mu_isr(int irq, void *param)
+{
+	u32 irqs;
+	unsigned long flags;
+
+	if (cpu_is_imx7ulp())
+		irqs = readl_relaxed(mu_base + MX7ULP_MU_SR);
+	else
+		irqs = readl_relaxed(mu_base + MU_ASR);
+
+	if (irqs & (1 << 27)) {
+		spin_lock_irqsave(&mu_lock, flags);
+		/* get message from receive buffer */
+		if (cpu_is_imx7ulp())
+			m4_message[in_idx % MAX_NUM] = readl_relaxed(mu_base +
+						MX7ULP_MU_RR0);
+		else
+			m4_message[in_idx % MAX_NUM] = readl_relaxed(mu_base +
+						MU_ARR0_OFFSET);
+		/* disable RIE3 interrupt */
+		if (cpu_is_imx7ulp())
+			writel_relaxed(readl_relaxed(mu_base + MX7ULP_MU_CR)
+					& (~BIT(27)), mu_base + MX7ULP_MU_CR);
+		else
+			writel_relaxed(readl_relaxed(mu_base + MU_ACR)
+					& (~BIT(27)), mu_base + MU_ACR);
+		in_idx++;
+		if (in_idx == out_idx) {
+			spin_unlock_irqrestore(&mu_lock, flags);
+			pr_err("MU overflow!\n");
+			return IRQ_HANDLED;
+		}
+		spin_unlock_irqrestore(&mu_lock, flags);
+
+		schedule_delayed_work(&mu_work, 0);
+	}
+
+	return IRQ_HANDLED;
+}
+
+static int imx_mu_probe(struct platform_device *pdev)
+{
+	int ret;
+	u32 irq;
+	struct device_node *np;
+	struct device *dev = &pdev->dev;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx6sx-mu-lp");
+	mu_base = of_iomap(np, 0);
+	WARN_ON(!mu_base);
+
+	ret = of_device_is_compatible(np, "fsl,imx7ulp-mu-lp");
+	if (ret)
+		irq = platform_get_irq(pdev, 1);
+	else
+		irq = platform_get_irq(pdev, 0);
+	ret = request_irq(irq, imx_mu_isr,
+			  IRQF_NO_SUSPEND | IRQF_SHARED, "imx-mu-lp", dev);
+	if (ret) {
+		pr_err("%s: register interrupt %d failed, rc %d\n",
+			__func__, irq, ret);
+		return ret;
+	}
+
+	ret = of_device_is_compatible(np, "fsl,imx7d-mu-lp");
+	if (ret) {
+		clk = devm_clk_get(&pdev->dev, "mu");
+		if (IS_ERR(clk)) {
+			dev_err(&pdev->dev,
+				"mu clock source missing or invalid\n");
+			return PTR_ERR(clk);
+		} else {
+			ret = clk_prepare_enable(clk);
+			if (ret) {
+				dev_err(&pdev->dev,
+					"unable to enable mu clock\n");
+				return ret;
+			}
+		}
+
+		/* MU always as a wakeup source for low power mode */
+		imx_gpcv2_add_m4_wake_up_irq(irq_to_desc(irq)->irq_data.hwirq,
+			true);
+	} else {
+		/* MU always as a wakeup source for low power mode */
+		imx_gpc_add_m4_wake_up_irq(irq_to_desc(irq)->irq_data.hwirq, true);
+	}
+
+	INIT_DELAYED_WORK(&mu_work, mu_work_handler);
+	/* bit0 of MX7ULP_MU_CR used to let m4 to know MU is ready now */
+	if (cpu_is_imx7ulp())
+		writel_relaxed(readl_relaxed(mu_base + MX7ULP_MU_CR) |
+			BIT(0) | BIT(26) | BIT(27), mu_base + MX7ULP_MU_CR);
+	else
+		writel_relaxed(readl_relaxed(mu_base + MU_ACR) |
+			BIT(26) | BIT(27), mu_base + MU_ACR);
+
+	pr_info("MU is ready for cross core communication!\n");
+
+	return 0;
+}
+
+static const struct of_device_id imx_mu_ids[] = {
+	{ .compatible = "fsl,imx7d-mu-lp" },
+	{ .compatible = "fsl,imx7ulp-mu-lp" },
+	{ }
+};
+
+#ifdef CONFIG_PM_SLEEP
+static int mu_suspend(struct device *dev)
+{
+	return 0;
+}
+
+static int mu_resume(struct device *dev)
+{
+	if (!cpu_is_imx7ulp())
+		return 0;
+
+	writel_relaxed(readl_relaxed(mu_base + MX7ULP_MU_CR) |
+			BIT(0) | BIT(26) | BIT(27), mu_base + MX7ULP_MU_CR);
+
+	return 0;
+}
+#endif
+static const struct dev_pm_ops mu_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(mu_suspend, mu_resume)
+};
+
+static struct platform_driver imx_mu_driver = {
+	.driver = {
+		.name   = "imx-mu-lp",
+		.owner  = THIS_MODULE,
+		.pm = &mu_pm_ops,
+		.of_match_table = imx_mu_ids,
+	},
+	.probe = imx_mu_probe,
+};
+
+static int __init imx_mu_init(void)
+{
+	return platform_driver_register(&imx_mu_driver);
+}
+subsys_initcall(imx_mu_init);
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mx7.h
+++ linux-ein-5.4.0/arch/arm/mach-imx/mx7.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ *  * This program is free software; you can redistribute it and/or modify
+ *   * it under the terms of the GNU General Public License version 2 as
+ *    * published by the Free Software Foundation.
+ *     */
+
+#ifndef __ASM_ARCH_MX7_IOMAP_H__
+#define __ASM_ARCH_MX7_IOMAP_H__
+
+#define MX7D_IO_P2V(x)                  IMX_IO_P2V(x)
+#define MX7D_IO_ADDRESS(x)              IOMEM(MX7D_IO_P2V(x))
+
+#define MX7D_LPSR_BASE_ADDR             0x30270000
+#define MX7D_LPSR_SIZE                  0x10000
+#define MX7D_CCM_BASE_ADDR              0x30380000
+#define MX7D_CCM_SIZE                   0x10000
+#define MX7D_IOMUXC_BASE_ADDR           0x30330000
+#define MX7D_IOMUXC_SIZE                0x10000
+#define MX7D_IOMUXC_GPR_BASE_ADDR       0x30340000
+#define MX7D_IOMUXC_GPR_SIZE            0x10000
+#define MX7D_ANATOP_BASE_ADDR           0x30360000
+#define MX7D_ANATOP_SIZE                0x10000
+#define MX7D_SNVS_BASE_ADDR		0x30370000
+#define MX7D_SNVS_SIZE			0x10000
+#define MX7D_GPC_BASE_ADDR              0x303a0000
+#define MX7D_GPC_SIZE                   0x10000
+#define MX7D_SRC_BASE_ADDR              0x30390000
+#define MX7D_SRC_SIZE                   0x10000
+#define MX7D_DDRC_BASE_ADDR             0x307a0000
+#define MX7D_DDRC_SIZE                  0x10000
+#define MX7D_DDRC_PHY_BASE_ADDR         0x30790000
+#define MX7D_DDRC_PHY_SIZE              0x10000
+#define MX7D_AIPS1_BASE_ADDR            0x30000000
+#define MX7D_AIPS1_SIZE                 0x400000
+#define MX7D_AIPS2_BASE_ADDR            0x30400000
+#define MX7D_AIPS2_SIZE                 0x400000
+#define MX7D_AIPS3_BASE_ADDR            0x30900000
+#define MX7D_AIPS3_SIZE                 0x300000
+#define MX7D_GIC_BASE_ADDR              0x31000000
+#define MX7D_GIC_SIZE                   0x100000
+
+#define TT_ATTRIB_NON_CACHEABLE_1M     0x802
+#define MX7_IRAM_TLB_SIZE              0x4000
+#define MX7_SUSPEND_OCRAM_SIZE         0x1000
+#define MX7_CPUIDLE_OCRAM_ADDR_OFFSET  0x1000
+#define MX7_CPUIDLE_OCRAM_SIZE         0x1000
+#define MX7_BUSFREQ_OCRAM_ADDR_OFFSET  0x2000
+#define MX7_BUSFREQ_OCRAM_SIZE         0x1000
+
+#endif
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/mxc.h
+++ linux-ein-5.4.0/arch/arm/mach-imx/mxc.h
@@ -8,6 +8,7 @@
 #define __ASM_ARCH_MXC_H__
 
 #include <linux/types.h>
+#include <soc/imx/cpu.h>
 
 #ifndef __ASM_ARCH_MXC_HARDWARE_H__
 #error "Do not include directly."
@@ -33,10 +34,15 @@
 #define MXC_CPU_IMX7D		0x72
 #define MXC_CPU_IMX7ULP		0xff
 
+#define IMX_DDR_TYPE_DDR3		0
 #define IMX_DDR_TYPE_LPDDR2		1
+#define IMX_DDR_TYPE_LPDDR3		2
+#define IMX_MMDC_DDR_TYPE_LPDDR3	3
+
+#define IMX_LPDDR2_1CH_MODE            0
+#define IMX_LPDDR2_2CH_MODE            1
 
 #ifndef __ASSEMBLY__
-extern unsigned int __mxc_cpu_type;
 
 #ifdef CONFIG_SOC_IMX6SL
 static inline bool cpu_is_imx6sl(void)
@@ -90,6 +96,11 @@
 	return __mxc_cpu_type == MXC_CPU_IMX7D;
 }
 
+static inline bool cpu_is_imx7ulp(void)
+{
+	return __mxc_cpu_type == MXC_CPU_IMX7ULP;
+}
+
 struct cpu_op {
 	u32 cpu_rate;
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/platsmp.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/platsmp.c
@@ -47,15 +47,39 @@
 	return 0;
 }
 
+#define MXC_ARCH_CA7           0xc07
+static unsigned long __mxc_arch_type;
+
+static inline bool arm_is_ca7(void)
+{
+       return __mxc_arch_type == MXC_ARCH_CA7;
+}
 /*
  * Initialise the CPU possible map early - this describes the CPUs
  * which may be present or become present in the system.
  */
 static void __init imx_smp_init_cpus(void)
 {
+	unsigned long arch_type;
 	int i, ncores;
 
-	ncores = scu_get_core_count(scu_base);
+	asm volatile(
+		".align 4\n"
+		"mrc p15, 0, %0, c0, c0, 0\n"
+		: "=r" (arch_type)
+	);
+	/* MIDR[15:4] defines ARCH type */
+	__mxc_arch_type = (arch_type >> 4) & 0xfff;
+
+	if (arm_is_ca7()) {
+		unsigned long val;
+
+		/* CA7 core number, [25:24] of CP15 L2CTLR */
+		asm volatile("mrc p15, 1, %0, c9, c0, 2" : "=r" (val));
+		ncores = ((val >> 24) & 0x3) + 1;
+	} else {
+		ncores = scu_get_core_count(scu_base);
+	}
 
 	for (i = ncores; i < NR_CPUS; i++)
 		set_cpu_possible(i, false);
@@ -63,11 +87,15 @@
 
 void imx_smp_prepare(void)
 {
+	if (arm_is_ca7())
+		return;
 	scu_enable(scu_base);
 }
 
 static void __init imx_smp_prepare_cpus(unsigned int max_cpus)
 {
+	if (arm_is_ca7())
+		return;
 	imx_smp_prepare();
 
 	/*
@@ -109,6 +137,7 @@
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,ls1021a-dcfg");
 	dcfg_base = of_iomap(np, 0);
+	of_node_put(np);
 	BUG_ON(!dcfg_base);
 
 	paddr = __pa_symbol(secondary_startup);
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/pm-imx5.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/pm-imx5.c
@@ -295,14 +295,14 @@
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, size);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	phys = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -312,6 +312,8 @@
 	if (virt_out)
 		*virt_out = virt;
 
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(node);
 
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/pm-imx6.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/pm-imx6.c
@@ -4,11 +4,13 @@
  * Copyright 2011 Linaro Ltd.
  */
 
+#include <linux/clk/imx.h>
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/genalloc.h>
+#include <linux/irqchip/arm-gic.h>
 #include <linux/mfd/syscon.h>
 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 #include <linux/of.h>
@@ -493,14 +495,14 @@
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, MX6Q_SUSPEND_OCRAM_SIZE);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -523,7 +525,7 @@
 	ret = imx6_pm_get_base(&pm_info->mmdc_base, socdata->mmdc_compat);
 	if (ret) {
 		pr_warn("%s: failed to get mmdc base %d!\n", __func__, ret);
-		goto put_node;
+		goto put_device;
 	}
 
 	ret = imx6_pm_get_base(&pm_info->src_base, socdata->src_compat);
@@ -570,7 +572,9 @@
 		&imx6_suspend,
 		MX6Q_SUSPEND_OCRAM_SIZE - sizeof(*pm_info));
 
-	goto put_node;
+	__arm_iomem_set_ro(suspend_ocram_base, MX6Q_SUSPEND_OCRAM_SIZE);
+
+	goto put_device;
 
 pl310_cache_map_failed:
 	iounmap(pm_info->gpc_base.vbase);
@@ -580,6 +584,8 @@
 	iounmap(pm_info->src_base.vbase);
 src_map_failed:
 	iounmap(pm_info->mmdc_base.vbase);
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(node);
 
@@ -616,6 +622,7 @@
 
 static void imx6_pm_stby_poweroff(void)
 {
+	gic_cpu_if_down(0);
 	imx6_set_lpm(STOP_POWER_OFF);
 	imx6q_suspend_finish(0);
 
@@ -655,6 +662,8 @@
 
 	if (of_property_read_bool(np, "fsl,pmic-stby-poweroff"))
 		imx6_pm_stby_poweroff_probe();
+
+	of_node_put(np);
 }
 
 void __init imx6q_pm_init(void)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/pm-imx7.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/pm-imx7.c
@@ -0,0 +1,1216 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/busfreq-imx.h>
+#include <linux/delay.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+#include <linux/of_fdt.h>
+#include <linux/of_irq.h>
+#include <linux/psci.h>
+#include <linux/slab.h>
+#include <linux/suspend.h>
+#include <linux/genalloc.h>
+#include <linux/mfd/syscon.h>
+#include <linux/mfd/syscon/imx7-iomuxc-gpr.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_fdt.h>
+#include <linux/of_platform.h>
+#include <linux/regmap.h>
+#include <linux/suspend.h>
+#include <asm/cacheflush.h>
+#include <asm/fncpy.h>
+#include <asm/mach/map.h>
+#include <asm/proc-fns.h>
+#include <asm/suspend.h>
+#include <asm/tlb.h>
+
+#include <uapi/linux/psci.h>
+
+#include "common.h"
+#include "hardware.h"
+#include "cpuidle.h"
+
+#define MX7_SUSPEND_OCRAM_SIZE		0x1000
+#define MX7_MAX_DDRC_NUM		32
+#define MX7_MAX_DDRC_PHY_NUM		16
+
+#define MX7_SUSPEND_IRAM_ADDR_OFFSET	0
+#define READ_DATA_FROM_HARDWARE		0
+
+#define UART_UCR1	0x80
+#define UART_UCR2	0x84
+#define UART_UCR3	0x88
+#define UART_UCR4	0x8c
+#define UART_UFCR	0x90
+#define UART_UESC	0x9c
+#define UART_UTIM	0xa0
+#define UART_UBIR	0xa4
+#define UART_UBMR	0xa8
+#define UART_UBRC	0xac
+#define UART_UTS	0xb4
+
+#define MAX_IOMUXC_GPR			23
+#define MAX_UART_IO			4
+#define MAX_CCM_LPCG			167
+#define MAX_GPT				3
+#define MAX_GPIO_ROW			7
+#define MAX_GPIO_COL			8
+
+#define UART_RX_IO	0x128
+#define UART_RX_PAD	0x398
+#define UART_TX_IO	0x12c
+#define UART_TX_PAD	0x39c
+
+#define GPT_CR		0x0
+#define GPT_PR		0x4
+#define GPT_IR		0xc
+
+#define CCM_LPCG_START		0x4040
+#define CCM_LPCG_STEP		0x10
+#define CCM_EIM_LPCG		0x4160
+#define CCM_PXP_LPCG		0x44c0
+#define CCM_PCIE_LPCG		0x4600
+
+#define BM_CCM_ROOT_POST_PODF	0x3f
+#define BM_CCM_ROOT_PRE_PODF	0x70000
+#define BM_CCM_ROOT_MUX		0x7000000
+#define BM_CCM_ROOT_ENABLE	0x10000000
+
+#define BM_SYS_COUNTER_CNTCR_FCR1 0x200
+#define BM_SYS_COUNTER_CNTCR_FCR0 0x100
+
+#define PFD_A_OFFSET		0xc0
+#define PFD_B_OFFSET		0xd0
+
+#define PLL_ARM_OFFSET		0x60
+#define PLL_DDR_OFFSET		0x70
+#define PLL_DDR_SS_OFFSET	0x80
+#define PLL_DDR_NUM_OFFSET	0x90
+#define PLL_DDR_DENOM_OFFSET	0xa0
+#define PLL_480_OFFSET		0xb0
+#define PLL_ENET_OFFSET		0xe0
+#define PLL_AUDIO_OFFSET	0xf0
+#define PLL_AUDIO_SS_OFFSET	0x100
+#define PLL_AUDIO_NUM_OFFSET	0x110
+#define PLL_AUDIO_DENOM_OFFSET	0x120
+#define PLL_VIDEO_OFFSET	0x130
+#define PLL_VIDEO_SS_OFFSET	0x140
+#define PLL_VIDEO_NUM_OFFSET	0x150
+#define PLL_VIDEO_DENOM_OFFSET	0x160
+
+#define REG_SET			0x4
+#define REG_CLR			0x8
+
+#define GPIO_DR			0x0
+#define GPIO_GDIR		0x4
+#define GPIO_ICR1		0xc
+#define GPIO_ICR2		0x10
+#define GPIO_IMR		0x14
+#define GPIO_EDGE		0x1c
+
+#define M4RCR			0x0C
+#define M4_SP_OFF		0x00
+#define M4_PC_OFF		0x04
+#define M4_RCR_HALT		0xAB
+#define M4_RCR_GO		0xAA
+#define M4_OCRAMS_RESERVED_SIZE	0xc
+
+extern unsigned long iram_tlb_base_addr;
+extern unsigned long iram_tlb_phys_addr;
+
+static unsigned int *ocram_saved_in_ddr;
+static void __iomem *ocram_base;
+static unsigned int ocram_size;
+static unsigned int *lpm_ocram_saved_in_ddr;
+static void __iomem *lpm_ocram_base;
+
+static unsigned int *lpm_m4tcm_saved_in_ddr;
+static void __iomem *lpm_m4tcm_base;
+static void __iomem *m4_bootrom_base;
+
+static unsigned int lpm_ocram_size;
+static void __iomem *ccm_base;
+static void __iomem *lpsr_base;
+static void __iomem *console_base;
+static void __iomem *suspend_ocram_base;
+static void __iomem *iomuxc_base;
+static void __iomem *gpt1_base;
+static void __iomem *system_counter_ctrl_base;
+static void __iomem *system_counter_cmp_base;
+static void __iomem *gpio1_base;
+static void (*imx7_suspend_in_ocram_fn)(void __iomem *ocram_vbase);
+struct imx7_cpu_pm_info *pm_info;
+static bool lpsr_enabled;
+static u32 iomuxc_gpr[MAX_IOMUXC_GPR];
+static u32 uart1_io[MAX_UART_IO];
+static u32 ccm_lpcg[MAX_CCM_LPCG];
+static u32 ccm_root[][2] = {
+	{0x8000, 0}, {0x8080, 0}, {0x8100, 0}, {0x8800, 0},
+	{0x8880, 0}, {0x8900, 0}, {0x8980, 0}, {0x9000, 0},
+	{0x9800, 0}, {0x9880, 0}, {0xa000, 0}, {0xa080, 0},
+	{0xa100, 0}, {0xa180, 0}, {0xa200, 0}, {0xa280, 0},
+	{0xa300, 0}, {0xa380, 0}, {0xa400, 0}, {0xa480, 0},
+	{0xa500, 0}, {0xa580, 0}, {0xa600, 0}, {0xa680, 0},
+	{0xa700, 0}, {0xa780, 0}, {0xa800, 0}, {0xa880, 0},
+	{0xa900, 0}, {0xa980, 0}, {0xaa00, 0}, {0xaa80, 0},
+	{0xab00, 0}, {0xab80, 0}, {0xac00, 0}, {0xac80, 0},
+	{0xad00, 0}, {0xad80, 0}, {0xae00, 0}, {0xae80, 0},
+	{0xaf00, 0}, {0xaf80, 0}, {0xb000, 0}, {0xb080, 0},
+	{0xb100, 0}, {0xb180, 0}, {0xb200, 0}, {0xb280, 0},
+	{0xb300, 0}, {0xb380, 0}, {0xb400, 0}, {0xb480, 0},
+	{0xb500, 0}, {0xb580, 0}, {0xb600, 0}, {0xb680, 0},
+	{0xb700, 0}, {0xb780, 0}, {0xb800, 0}, {0xb880, 0},
+	{0xb900, 0}, {0xb980, 0}, {0xba00, 0}, {0xba80, 0},
+	{0xbb00, 0}, {0xbb80, 0}, {0xbc00, 0}, {0xbc80, 0},
+	{0xbd00, 0}, {0xbd80, 0}, {0xbe00, 0},
+};
+static u32 pfd_a, pfd_b;
+static u32 pll[15];
+static u32 gpt1_regs[MAX_GPT];
+static u32 sys_ctrl_reg, sys_cmp_reg;
+static u32 gpio_reg[MAX_GPIO_ROW][MAX_GPIO_COL];
+/*
+ * suspend ocram space layout:
+ * ======================== high address ======================
+ *                              .
+ *                              .
+ *                              .
+ *                              ^
+ *                              ^
+ *                              ^
+ *                      imx7_suspend code
+ *              PM_INFO structure(imx7_cpu_pm_info)
+ * ======================== low address =======================
+ */
+
+struct imx7_pm_base {
+	phys_addr_t pbase;
+	void __iomem *vbase;
+};
+
+struct imx7_pm_socdata {
+	u32 ddr_type;
+	const char *ddrc_compat;
+	const char *src_compat;
+	const char *iomuxc_compat;
+	const char *gpc_compat;
+	const u32 ddrc_num;
+	const u32 (*ddrc_offset)[2];
+	const u32 ddrc_phy_num;
+	const u32 (*ddrc_phy_offset)[2];
+};
+
+static const u32 imx7d_ddrc_lpddr3_setting[][2] __initconst = {
+	{ 0x0, READ_DATA_FROM_HARDWARE },
+	{ 0x1a0, READ_DATA_FROM_HARDWARE },
+	{ 0x1a4, READ_DATA_FROM_HARDWARE },
+	{ 0x1a8, READ_DATA_FROM_HARDWARE },
+	{ 0x64, READ_DATA_FROM_HARDWARE },
+	{ 0xd0, READ_DATA_FROM_HARDWARE },
+	{ 0xdc, READ_DATA_FROM_HARDWARE },
+	{ 0xe0, READ_DATA_FROM_HARDWARE },
+	{ 0xe4, READ_DATA_FROM_HARDWARE },
+	{ 0xf4, READ_DATA_FROM_HARDWARE },
+	{ 0x100, READ_DATA_FROM_HARDWARE },
+	{ 0x104, READ_DATA_FROM_HARDWARE },
+	{ 0x108, READ_DATA_FROM_HARDWARE },
+	{ 0x10c, READ_DATA_FROM_HARDWARE },
+	{ 0x110, READ_DATA_FROM_HARDWARE },
+	{ 0x114, READ_DATA_FROM_HARDWARE },
+	{ 0x118, READ_DATA_FROM_HARDWARE },
+	{ 0x120, READ_DATA_FROM_HARDWARE },
+	{ 0x11c, READ_DATA_FROM_HARDWARE },
+	{ 0x180, READ_DATA_FROM_HARDWARE },
+	{ 0x184, READ_DATA_FROM_HARDWARE },
+	{ 0x190, READ_DATA_FROM_HARDWARE },
+	{ 0x194, READ_DATA_FROM_HARDWARE },
+	{ 0x200, READ_DATA_FROM_HARDWARE },
+	{ 0x204, READ_DATA_FROM_HARDWARE },
+	{ 0x210, READ_DATA_FROM_HARDWARE },
+	{ 0x214, READ_DATA_FROM_HARDWARE },
+	{ 0x218, READ_DATA_FROM_HARDWARE },
+	{ 0x240, READ_DATA_FROM_HARDWARE },
+	{ 0x244, READ_DATA_FROM_HARDWARE },
+};
+
+static const u32 imx7d_ddrc_phy_lpddr3_setting[][2] __initconst = {
+	{ 0x0, READ_DATA_FROM_HARDWARE },
+	{ 0x4, READ_DATA_FROM_HARDWARE },
+	{ 0x8, READ_DATA_FROM_HARDWARE },
+	{ 0x10, READ_DATA_FROM_HARDWARE },
+	{ 0xb0, READ_DATA_FROM_HARDWARE },
+	{ 0x1c, READ_DATA_FROM_HARDWARE },
+	{ 0x9c, READ_DATA_FROM_HARDWARE },
+	{ 0x7c, READ_DATA_FROM_HARDWARE },
+	{ 0x80, READ_DATA_FROM_HARDWARE },
+	{ 0x84, READ_DATA_FROM_HARDWARE },
+	{ 0x88, READ_DATA_FROM_HARDWARE },
+	{ 0x6c, READ_DATA_FROM_HARDWARE },
+	{ 0x20, READ_DATA_FROM_HARDWARE },
+	{ 0x30, READ_DATA_FROM_HARDWARE },
+	{ 0x50, 0x01000008 },
+	{ 0x50, 0x00000008 },
+	{ 0xc0, 0x0e487304 },
+	{ 0xc0, 0x0e4c7304 },
+	{ 0xc0, 0x0e4c7306 },
+	{ 0xc0, 0x0e487304 },
+};
+
+static const u32 imx7d_ddrc_ddr3_setting[][2] __initconst = {
+	{ 0x0, READ_DATA_FROM_HARDWARE },
+	{ 0x1a0, READ_DATA_FROM_HARDWARE },
+	{ 0x1a4, READ_DATA_FROM_HARDWARE },
+	{ 0x1a8, READ_DATA_FROM_HARDWARE },
+	{ 0x64, READ_DATA_FROM_HARDWARE },
+	{ 0x490, READ_DATA_FROM_HARDWARE },
+	{ 0xd0, READ_DATA_FROM_HARDWARE },
+	{ 0xd4, READ_DATA_FROM_HARDWARE },
+	{ 0xdc, READ_DATA_FROM_HARDWARE },
+	{ 0xe0, READ_DATA_FROM_HARDWARE },
+	{ 0xe4, READ_DATA_FROM_HARDWARE },
+	{ 0xf4, READ_DATA_FROM_HARDWARE },
+	{ 0x100, READ_DATA_FROM_HARDWARE },
+	{ 0x104, READ_DATA_FROM_HARDWARE },
+	{ 0x108, READ_DATA_FROM_HARDWARE },
+	{ 0x10c, READ_DATA_FROM_HARDWARE },
+	{ 0x110, READ_DATA_FROM_HARDWARE },
+	{ 0x114, READ_DATA_FROM_HARDWARE },
+	{ 0x120, READ_DATA_FROM_HARDWARE },
+	{ 0x180, READ_DATA_FROM_HARDWARE },
+	{ 0x190, READ_DATA_FROM_HARDWARE },
+	{ 0x194, READ_DATA_FROM_HARDWARE },
+	{ 0x200, READ_DATA_FROM_HARDWARE },
+	{ 0x204, READ_DATA_FROM_HARDWARE },
+	{ 0x210, READ_DATA_FROM_HARDWARE },
+	{ 0x214, READ_DATA_FROM_HARDWARE },
+	{ 0x218, READ_DATA_FROM_HARDWARE },
+	{ 0x240, READ_DATA_FROM_HARDWARE },
+	{ 0x244, READ_DATA_FROM_HARDWARE },
+};
+
+static const u32 imx7d_ddrc_phy_ddr3_setting[][2] __initconst = {
+	{ 0x0, READ_DATA_FROM_HARDWARE },
+	{ 0x4, READ_DATA_FROM_HARDWARE },
+	{ 0x10, READ_DATA_FROM_HARDWARE },
+	{ 0xb0, READ_DATA_FROM_HARDWARE },
+	{ 0x9c, READ_DATA_FROM_HARDWARE },
+	{ 0x7c, READ_DATA_FROM_HARDWARE },
+	{ 0x80, READ_DATA_FROM_HARDWARE },
+	{ 0x84, READ_DATA_FROM_HARDWARE },
+	{ 0x88, READ_DATA_FROM_HARDWARE },
+	{ 0x6c, READ_DATA_FROM_HARDWARE },
+	{ 0x20, READ_DATA_FROM_HARDWARE },
+	{ 0x30, READ_DATA_FROM_HARDWARE },
+	{ 0x50, 0x01000010 },
+	{ 0x50, 0x00000010 },
+	{ 0xc0, 0x0e407304 },
+	{ 0xc0, 0x0e447304 },
+	{ 0xc0, 0x0e447306 },
+	{ 0xc0, 0x0e407304 },
+};
+
+static const struct imx7_pm_socdata imx7d_pm_data_lpddr3 __initconst = {
+	.ddrc_compat = "fsl,imx7d-ddrc",
+	.src_compat = "fsl,imx7d-src",
+	.iomuxc_compat = "fsl,imx7d-iomuxc",
+	.gpc_compat = "fsl,imx7d-gpc",
+	.ddrc_num = ARRAY_SIZE(imx7d_ddrc_lpddr3_setting),
+	.ddrc_offset = imx7d_ddrc_lpddr3_setting,
+	.ddrc_phy_num = ARRAY_SIZE(imx7d_ddrc_phy_lpddr3_setting),
+	.ddrc_phy_offset = imx7d_ddrc_phy_lpddr3_setting,
+};
+
+static const struct imx7_pm_socdata imx7d_pm_data_ddr3 __initconst = {
+	.ddrc_compat = "fsl,imx7d-ddrc",
+	.src_compat = "fsl,imx7d-src",
+	.iomuxc_compat = "fsl,imx7d-iomuxc",
+	.gpc_compat = "fsl,imx7d-gpc",
+	.ddrc_num = ARRAY_SIZE(imx7d_ddrc_ddr3_setting),
+	.ddrc_offset = imx7d_ddrc_ddr3_setting,
+	.ddrc_phy_num = ARRAY_SIZE(imx7d_ddrc_phy_ddr3_setting),
+	.ddrc_phy_offset = imx7d_ddrc_phy_ddr3_setting,
+};
+
+/*
+ * This structure is for passing necessary data for low level ocram
+ * suspend code(arch/arm/mach-imx/suspend-imx7.S), if this struct
+ * definition is changed, the offset definition in
+ * arch/arm/mach-imx/suspend-imx7.S must be also changed accordingly,
+ * otherwise, the suspend to ocram function will be broken!
+ */
+struct imx7_cpu_pm_info {
+	u32 m4_reserve0;
+	u32 m4_reserve1;
+	u32 m4_reserve2;
+	phys_addr_t pbase; /* The physical address of pm_info. */
+	phys_addr_t resume_addr; /* The physical resume address for asm code */
+	u32 ddr_type;
+	u32 pm_info_size; /* Size of pm_info. */
+	struct imx7_pm_base ddrc_base;
+	struct imx7_pm_base ddrc_phy_base;
+	struct imx7_pm_base src_base;
+	struct imx7_pm_base iomuxc_gpr_base;
+	struct imx7_pm_base ccm_base;
+	struct imx7_pm_base gpc_base;
+	struct imx7_pm_base snvs_base;
+	struct imx7_pm_base anatop_base;
+	struct imx7_pm_base lpsr_base;
+	struct imx7_pm_base gic_base;
+	u32 ttbr1; /* Store TTBR1 */
+	u32 ddrc_num; /* Number of DDRC which need saved/restored. */
+	u32 ddrc_val[MX7_MAX_DDRC_NUM][2]; /* To save offset and value */
+	u32 ddrc_phy_num; /* Number of DDRC which need saved/restored. */
+	u32 ddrc_phy_val[MX7_MAX_DDRC_NUM][2]; /* To save offset and value */
+} __aligned(8);
+
+static struct map_desc imx7_pm_io_desc[] __initdata = {
+	imx_map_entry(MX7D, AIPS1, MT_DEVICE),
+	imx_map_entry(MX7D, AIPS2, MT_DEVICE),
+	imx_map_entry(MX7D, AIPS3, MT_DEVICE),
+};
+
+static void imx7_gpio_save(void)
+{
+	u32 i;
+
+	for (i = 0; i < 7; i++) {
+		gpio_reg[i][0] = readl_relaxed(gpio1_base +
+			(i << 16) + GPIO_DR);
+		gpio_reg[i][1] = readl_relaxed(gpio1_base +
+			(i << 16) + GPIO_GDIR);
+		gpio_reg[i][3] = readl_relaxed(gpio1_base +
+			(i << 16) + GPIO_ICR1);
+		gpio_reg[i][4] = readl_relaxed(gpio1_base +
+			(i << 16) + GPIO_ICR2);
+		gpio_reg[i][5] = readl_relaxed(gpio1_base +
+			(i << 16) + GPIO_IMR);
+		gpio_reg[i][7] = readl_relaxed(gpio1_base +
+			(i << 16) + GPIO_EDGE);
+	}
+}
+
+static void imx7_gpio_restore(void)
+{
+	u32 i, val;
+
+	for (i = 0; i < 7; i++) {
+		writel_relaxed(gpio_reg[i][1], gpio1_base +
+			(i << 16) + GPIO_GDIR);
+		writel_relaxed(gpio_reg[i][3], gpio1_base +
+			(i << 16) + GPIO_ICR1);
+		writel_relaxed(gpio_reg[i][4], gpio1_base +
+			(i << 16) + GPIO_ICR2);
+		writel_relaxed(gpio_reg[i][5], gpio1_base +
+			(i << 16) + GPIO_IMR);
+		writel_relaxed(gpio_reg[i][7], gpio1_base +
+			(i << 16) + GPIO_EDGE);
+		/* only restore output gpio value */
+		val = readl_relaxed(gpio1_base + (i << 16) + GPIO_DR) |
+		     (gpio_reg[i][0] & gpio_reg[i][1]);
+		writel_relaxed(val, gpio1_base + (i << 16) + GPIO_DR);
+	}
+}
+
+static void imx7_ccm_save(void)
+{
+	u32 i;
+
+	for (i = 0; i < MAX_CCM_LPCG; i++)
+		ccm_lpcg[i] = readl_relaxed(pm_info->ccm_base.vbase +
+			i * CCM_LPCG_STEP + CCM_LPCG_START);
+	pfd_a = readl_relaxed(pm_info->anatop_base.vbase + PFD_A_OFFSET);
+	pfd_b = readl_relaxed(pm_info->anatop_base.vbase + PFD_B_OFFSET);
+
+	pll[0] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_ARM_OFFSET);
+	pll[1] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_DDR_OFFSET);
+	pll[2] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_DDR_SS_OFFSET);
+	pll[3] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_DDR_NUM_OFFSET);
+	pll[4] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_DDR_DENOM_OFFSET);
+	pll[5] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_480_OFFSET);
+	pll[6] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_ENET_OFFSET);
+	pll[7] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_AUDIO_OFFSET);
+	pll[8] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_AUDIO_SS_OFFSET);
+	pll[9] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_AUDIO_NUM_OFFSET);
+	pll[10] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_AUDIO_DENOM_OFFSET);
+	pll[11] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_VIDEO_OFFSET);
+	pll[12] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_VIDEO_SS_OFFSET);
+	pll[13] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_VIDEO_NUM_OFFSET);
+	pll[14] = readl_relaxed(pm_info->anatop_base.vbase +
+		PLL_VIDEO_DENOM_OFFSET);
+
+	/* enable all PLLs/PFDs for saving CCM root */
+	writel_relaxed(0x1c000070, pm_info->anatop_base.vbase +
+		PLL_480_OFFSET + 0x8);
+	writel_relaxed(0x80808080, pm_info->anatop_base.vbase +
+		PFD_A_OFFSET + 0x8);
+	writel_relaxed(0x80808080, pm_info->anatop_base.vbase +
+		PFD_B_OFFSET + 0x8);
+	writel_relaxed(0x1fc0, pm_info->anatop_base.vbase +
+		PLL_ENET_OFFSET + 0x4);
+	writel_relaxed(0x12000, pm_info->anatop_base.vbase +
+		PLL_AUDIO_OFFSET);
+	writel_relaxed(0x12000, pm_info->anatop_base.vbase +
+		PLL_VIDEO_OFFSET);
+
+	for (i = 0; i < sizeof(ccm_root) / 8; i++)
+		ccm_root[i][1] = readl_relaxed(
+			pm_info->ccm_base.vbase + ccm_root[i][0]);
+}
+
+static void imx7_ccm_restore(void)
+{
+	u32 i, val;
+
+	/* enable all PLLs/PFDs for restoring CCM root */
+	writel_relaxed(0x1c000070, pm_info->anatop_base.vbase +
+		PLL_480_OFFSET + REG_CLR);
+	writel_relaxed(0x80808080, pm_info->anatop_base.vbase +
+		PFD_A_OFFSET + REG_CLR);
+	writel_relaxed(0x80808080, pm_info->anatop_base.vbase +
+		PFD_B_OFFSET + REG_CLR);
+	writel_relaxed(0x1fc0, pm_info->anatop_base.vbase +
+		PLL_ENET_OFFSET + REG_SET);
+	writel_relaxed(0x12000, pm_info->anatop_base.vbase +
+		PLL_AUDIO_OFFSET);
+	writel_relaxed(0x12000, pm_info->anatop_base.vbase +
+		PLL_VIDEO_OFFSET);
+
+	for (i = 0; i < sizeof(ccm_root) / 8; i++) {
+		val = readl_relaxed(pm_info->ccm_base.vbase + ccm_root[i][0]);
+		/* restore post podf */
+		val &= ~BM_CCM_ROOT_POST_PODF;
+		val |= ccm_root[i][1] & BM_CCM_ROOT_POST_PODF;
+		writel_relaxed(val, pm_info->ccm_base.vbase + ccm_root[i][0]);
+		/* resotre pre podf */
+		val &= ~BM_CCM_ROOT_PRE_PODF;
+		val |= ccm_root[i][1] & BM_CCM_ROOT_PRE_PODF;
+		writel_relaxed(val, pm_info->ccm_base.vbase + ccm_root[i][0]);
+		/* restore mux */
+		val &= ~BM_CCM_ROOT_MUX;
+		val |= ccm_root[i][1] & BM_CCM_ROOT_MUX;
+		writel_relaxed(val, pm_info->ccm_base.vbase + ccm_root[i][0]);
+		/* restore enable */
+		val &= ~BM_CCM_ROOT_ENABLE;
+		val |= ccm_root[i][1] & BM_CCM_ROOT_ENABLE;
+		writel_relaxed(val, pm_info->ccm_base.vbase + ccm_root[i][0]);
+	}
+
+	/* restore PLLs */
+	writel_relaxed(pll[0], pm_info->anatop_base.vbase +
+		PLL_ARM_OFFSET);
+	writel_relaxed(pll[1], pm_info->anatop_base.vbase +
+		PLL_DDR_OFFSET);
+	writel_relaxed(pll[2], pm_info->anatop_base.vbase +
+		PLL_DDR_SS_OFFSET);
+	writel_relaxed(pll[3], pm_info->anatop_base.vbase +
+		PLL_DDR_NUM_OFFSET);
+	writel_relaxed(pll[4], pm_info->anatop_base.vbase +
+		PLL_DDR_DENOM_OFFSET);
+	writel_relaxed(pll[5], pm_info->anatop_base.vbase +
+		PLL_480_OFFSET);
+	writel_relaxed(pll[6], pm_info->anatop_base.vbase +
+		PLL_ENET_OFFSET);
+	writel_relaxed(pll[7], pm_info->anatop_base.vbase +
+		PLL_AUDIO_OFFSET);
+	writel_relaxed(pll[8], pm_info->anatop_base.vbase +
+		PLL_AUDIO_SS_OFFSET);
+	writel_relaxed(pll[9], pm_info->anatop_base.vbase +
+		PLL_AUDIO_NUM_OFFSET);
+	writel_relaxed(pll[10], pm_info->anatop_base.vbase +
+		PLL_AUDIO_DENOM_OFFSET);
+	writel_relaxed(pll[11], pm_info->anatop_base.vbase +
+		PLL_VIDEO_OFFSET);
+	writel_relaxed(pll[12], pm_info->anatop_base.vbase +
+		PLL_VIDEO_SS_OFFSET);
+	writel_relaxed(pll[13], pm_info->anatop_base.vbase +
+		PLL_VIDEO_NUM_OFFSET);
+	writel_relaxed(pll[14], pm_info->anatop_base.vbase +
+		PLL_VIDEO_DENOM_OFFSET);
+
+	for (i = 0; i < MAX_CCM_LPCG; i++)
+		writel_relaxed(ccm_lpcg[i], pm_info->ccm_base.vbase +
+			i * CCM_LPCG_STEP + CCM_LPCG_START);
+	/* restore PFDs */
+	writel_relaxed(pfd_a & 0x80808080,
+		pm_info->anatop_base.vbase + PFD_A_OFFSET + REG_SET);
+	writel_relaxed(pfd_a, pm_info->anatop_base.vbase + PFD_A_OFFSET);
+
+	writel_relaxed(pfd_b & 0x80808080,
+		pm_info->anatop_base.vbase + PFD_B_OFFSET + REG_SET);
+	writel_relaxed(pfd_b, pm_info->anatop_base.vbase + PFD_B_OFFSET);
+}
+
+static void imx7_sys_counter_save(void)
+{
+	sys_ctrl_reg = readl_relaxed(system_counter_ctrl_base);
+	sys_cmp_reg = readl_relaxed(system_counter_cmp_base);
+}
+
+static void imx7_sys_counter_restore(void)
+{
+	writel_relaxed(sys_ctrl_reg, system_counter_ctrl_base);
+	writel_relaxed(sys_cmp_reg, system_counter_cmp_base);
+}
+
+static void imx7_gpt_save(void)
+{
+	gpt1_regs[0] = readl_relaxed(gpt1_base + GPT_CR);
+	gpt1_regs[1] = readl_relaxed(gpt1_base + GPT_PR);
+	gpt1_regs[2] = readl_relaxed(gpt1_base + GPT_IR);
+}
+
+static void imx7_gpt_restore(void)
+{
+	writel_relaxed(gpt1_regs[0], gpt1_base + GPT_CR);
+	writel_relaxed(gpt1_regs[1], gpt1_base + GPT_PR);
+	writel_relaxed(gpt1_regs[2], gpt1_base + GPT_IR);
+}
+
+static void imx7_iomuxc_gpr_save(void)
+{
+	u32 i;
+
+	for (i = 0; i < MAX_IOMUXC_GPR; i++)
+		iomuxc_gpr[i] = readl_relaxed(
+			pm_info->iomuxc_gpr_base.vbase + i * 4);
+}
+
+static void imx7_iomuxc_gpr_restore(void)
+{
+	u32 i;
+
+	for (i = 0; i < MAX_IOMUXC_GPR; i++)
+		writel_relaxed(iomuxc_gpr[i],
+			pm_info->iomuxc_gpr_base.vbase + i * 4);
+}
+
+static void imx7_console_save(unsigned int *regs)
+{
+	if (!console_base)
+		return;
+
+	regs[0] = readl_relaxed(console_base + UART_UCR1);
+	regs[1] = readl_relaxed(console_base + UART_UCR2);
+	regs[2] = readl_relaxed(console_base + UART_UCR3);
+	regs[3] = readl_relaxed(console_base + UART_UCR4);
+	regs[4] = readl_relaxed(console_base + UART_UFCR);
+	regs[5] = readl_relaxed(console_base + UART_UESC);
+	regs[6] = readl_relaxed(console_base + UART_UTIM);
+	regs[7] = readl_relaxed(console_base + UART_UBIR);
+	regs[8] = readl_relaxed(console_base + UART_UBMR);
+	regs[9] = readl_relaxed(console_base + UART_UTS);
+}
+
+static void imx7_console_io_save(void)
+{
+	/* save uart1 io, driver resume is too late */
+	uart1_io[0] = readl_relaxed(iomuxc_base + UART_RX_IO);
+	uart1_io[1] = readl_relaxed(iomuxc_base + UART_RX_PAD);
+	uart1_io[2] = readl_relaxed(iomuxc_base + UART_TX_IO);
+	uart1_io[3] = readl_relaxed(iomuxc_base + UART_TX_PAD);
+}
+
+static void imx7_console_restore(unsigned int *regs)
+{
+	if (!console_base)
+		return;
+
+	writel_relaxed(regs[4], console_base + UART_UFCR);
+	writel_relaxed(regs[5], console_base + UART_UESC);
+	writel_relaxed(regs[6], console_base + UART_UTIM);
+	writel_relaxed(regs[7], console_base + UART_UBIR);
+	writel_relaxed(regs[8], console_base + UART_UBMR);
+	writel_relaxed(regs[9], console_base + UART_UTS);
+	writel_relaxed(regs[0], console_base + UART_UCR1);
+	writel_relaxed(regs[1] | 0x1, console_base + UART_UCR2);
+	writel_relaxed(regs[2], console_base + UART_UCR3);
+	writel_relaxed(regs[3], console_base + UART_UCR4);
+}
+
+static void imx7_console_io_restore(void)
+{
+	/* restore uart1 io */
+	writel_relaxed(uart1_io[0], iomuxc_base + UART_RX_IO);
+	writel_relaxed(uart1_io[1], iomuxc_base + UART_RX_PAD);
+	writel_relaxed(uart1_io[2], iomuxc_base + UART_TX_IO);
+	writel_relaxed(uart1_io[3], iomuxc_base + UART_TX_PAD);
+}
+
+#define MX7D_SUSPEND_POWERDWN_PARAM	\
+	((0 << PSCI_0_2_POWER_STATE_ID_SHIFT) | \
+	 (1 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) | \
+	 (PSCI_POWER_STATE_TYPE_POWER_DOWN << PSCI_0_2_POWER_STATE_TYPE_SHIFT))
+
+#define MX7D_SUSPEND_STANDBY_PARAM	\
+	((0 << PSCI_0_2_POWER_STATE_ID_SHIFT) | \
+	 (1 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) | \
+	 (PSCI_POWER_STATE_TYPE_STANDBY << PSCI_0_2_POWER_STATE_TYPE_SHIFT))
+
+static int imx7_suspend_finish(unsigned long val)
+{
+	u32 state;
+
+	if (val == 0)
+		state = MX7D_SUSPEND_POWERDWN_PARAM;
+	else
+		state = MX7D_SUSPEND_STANDBY_PARAM;
+
+	if (psci_ops.cpu_suspend) {
+		return psci_ops.cpu_suspend(state, __pa(cpu_resume));
+	}
+
+	if (!imx7_suspend_in_ocram_fn) {
+		cpu_do_idle();
+	} else {
+		/*
+		 * call low level suspend function in ocram,
+		 * as we need to float DDR IO.
+		 */
+		local_flush_tlb_all();
+		imx7_suspend_in_ocram_fn(suspend_ocram_base);
+	}
+
+	return 0;
+}
+
+static void imx7_pm_set_lpsr_resume_addr(unsigned long addr)
+{
+	writel_relaxed(addr, pm_info->lpsr_base.vbase);
+}
+
+static int imx7_pm_is_resume_from_lpsr(void)
+{
+	return readl_relaxed(lpsr_base);
+}
+
+static int imx7_pm_enter(suspend_state_t state)
+{
+	unsigned int console_saved_reg[10] = {0};
+	u32 val;
+
+	if (!iram_tlb_base_addr) {
+		pr_warn("No IRAM/OCRAM memory allocated for suspend/resume \
+			 code. Please ensure device tree has an entry for \
+			 fsl,lpm-sram.\n");
+		return -EINVAL;
+	}
+
+	/*
+	 * arm_arch_timer driver requires system counter to be
+	 * a clock source with CLOCK_SOURCE_SUSPEND_NONSTOP flag
+	 * set, which means hardware system counter needs to keep
+	 * running during suspend, as the base clock for system
+	 * counter is 24MHz which will be disabled in STOP mode,
+	 * so we need to switch system counter's clock to alternate
+	 * (lower) clock, it is based on 32K, from block guide, there
+	 * is no special flow needs to be followed, system counter
+	 * hardware will handle the clock transition.
+	 */
+	val = readl_relaxed(system_counter_ctrl_base);
+	val &= ~BM_SYS_COUNTER_CNTCR_FCR0;
+	val |= BM_SYS_COUNTER_CNTCR_FCR1;
+	writel_relaxed(val, system_counter_ctrl_base);
+
+	switch (state) {
+	case PM_SUSPEND_STANDBY:
+		imx_anatop_pre_suspend();
+		imx_gpcv2_pre_suspend(false);
+
+		/* Zzz ... */
+		if (psci_ops.cpu_suspend)
+			cpu_suspend(1, imx7_suspend_finish);
+		else
+			imx7_suspend_in_ocram_fn(suspend_ocram_base);
+
+		imx_anatop_post_resume();
+		imx_gpcv2_post_resume();
+		break;
+	case PM_SUSPEND_MEM:
+		imx_anatop_pre_suspend();
+		imx_gpcv2_pre_suspend(true);
+		if (imx_gpcv2_is_mf_mix_off()) {
+			/*
+			 * per design requirement, EXSC for PCIe/EIM/PXP
+			 * will need clock to recover RDC setting on
+			 * resume, so enable PCIe/EIM LPCG for RDC
+			 * recovery when M/F mix off
+			 */
+			writel_relaxed(0x3, pm_info->ccm_base.vbase +
+				CCM_EIM_LPCG);
+			writel_relaxed(0x3, pm_info->ccm_base.vbase +
+				CCM_PXP_LPCG);
+			writel_relaxed(0x3, pm_info->ccm_base.vbase +
+				CCM_PCIE_LPCG);
+			/* stop m4 if mix will also be shutdown */
+			if (imx_src_is_m4_enabled() && imx_mu_is_m4_in_stop()) {
+				writel(M4_RCR_HALT,
+					pm_info->src_base.vbase + M4RCR);
+				imx_gpcv2_enable_wakeup_for_m4();
+			}
+			imx7_console_save(console_saved_reg);
+			memcpy(ocram_saved_in_ddr, ocram_base, ocram_size);
+			if (lpsr_enabled) {
+				imx7_pm_set_lpsr_resume_addr(pm_info->resume_addr);
+				imx7_console_io_save();
+				memcpy(lpm_ocram_saved_in_ddr, lpm_ocram_base,
+					lpm_ocram_size);
+				imx7_iomuxc_gpr_save();
+				imx7_ccm_save();
+				imx7_gpt_save();
+				imx7_sys_counter_save();
+				imx7_gpio_save();
+			}
+		}
+
+		/* Zzz ... */
+		cpu_suspend(0, imx7_suspend_finish);
+
+		if (imx7_pm_is_resume_from_lpsr()) {
+			imx7_console_io_restore();
+			memcpy(lpm_ocram_base, lpm_ocram_saved_in_ddr,
+				lpm_ocram_size);
+			imx7_iomuxc_gpr_restore();
+			imx7_ccm_restore();
+			imx7_gpt_restore();
+			imx7_sys_counter_restore();
+			imx7_gpio_restore();
+			imx7d_enable_rcosc();
+		}
+		if (imx_gpcv2_is_mf_mix_off() ||
+			imx7_pm_is_resume_from_lpsr()) {
+			writel_relaxed(0x0, pm_info->ccm_base.vbase +
+				CCM_EIM_LPCG);
+			writel_relaxed(0x0, pm_info->ccm_base.vbase +
+				CCM_PXP_LPCG);
+			writel_relaxed(0x0, pm_info->ccm_base.vbase +
+				CCM_PCIE_LPCG);
+			memcpy(ocram_base, ocram_saved_in_ddr, ocram_size);
+			imx7_console_restore(console_saved_reg);
+			if (imx_src_is_m4_enabled() && imx_mu_is_m4_in_stop()) {
+				imx_gpcv2_disable_wakeup_for_m4();
+				/* restore M4 image */
+				memcpy(lpm_m4tcm_base,
+				    lpm_m4tcm_saved_in_ddr, SZ_32K);
+				/* kick m4 to enable */
+				writel(M4_RCR_GO,
+					pm_info->src_base.vbase + M4RCR);
+				/* offset high bus count for m4 image */
+				request_bus_freq(BUS_FREQ_HIGH);
+				/* restore M4 to run mode */
+				imx_mu_set_m4_run_mode();
+				/* gpc wakeup */
+			}
+		}
+		/* clear LPSR resume address */
+		imx7_pm_set_lpsr_resume_addr(0);
+		imx_anatop_post_resume();
+		imx_gpcv2_post_resume();
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	/* restore system counter's clock to base clock */
+	val = readl_relaxed(system_counter_ctrl_base);
+	val &= ~BM_SYS_COUNTER_CNTCR_FCR1;
+	val |= BM_SYS_COUNTER_CNTCR_FCR0;
+	writel_relaxed(val, system_counter_ctrl_base);
+
+	return 0;
+}
+
+static int imx7_pm_valid(suspend_state_t state)
+{
+	return state == PM_SUSPEND_STANDBY || state == PM_SUSPEND_MEM;
+}
+
+static const struct platform_suspend_ops imx7_pm_ops = {
+	.enter = imx7_pm_enter,
+	.valid = imx7_pm_valid,
+};
+
+void __init imx7_pm_set_ccm_base(void __iomem *base)
+{
+	ccm_base = base;
+}
+
+static struct map_desc iram_tlb_io_desc __initdata = {
+	/* .virtual and .pfn are run-time assigned */
+	.length     = SZ_1M,
+	.type       = MT_MEMORY_RWX_NONCACHED,
+};
+
+static int __init imx7_dt_find_lpsram(unsigned long node, const char *uname,
+				      int depth, void *data)
+{
+	unsigned long lpram_addr;
+	const __be32 *prop = of_get_flat_dt_prop(node, "reg", NULL);
+
+	if (of_flat_dt_is_compatible(node, "fsl,lpm-sram")) {
+		if (!prop)
+			return -EINVAL;
+
+		lpram_addr = be32_to_cpup(prop);
+
+		/* We need to create a 1M page table entry. */
+		iram_tlb_io_desc.virtual = IMX_IO_P2V(lpram_addr & 0xFFF00000);
+		iram_tlb_io_desc.pfn = __phys_to_pfn(lpram_addr & 0xFFF00000);
+		iram_tlb_phys_addr = lpram_addr;
+		iram_tlb_base_addr = IMX_IO_P2V(lpram_addr);
+		iotable_init(&iram_tlb_io_desc, 1);
+	}
+
+	return 0;
+}
+
+void __init imx7_pm_map_io(void)
+{
+	unsigned long i, j;
+
+	iotable_init(imx7_pm_io_desc, ARRAY_SIZE(imx7_pm_io_desc));
+	/*
+	 * Get the address of IRAM or OCRAM to be used by the low
+	 * power code from the device tree.
+	 */
+	WARN_ON(of_scan_flat_dt(imx7_dt_find_lpsram, NULL));
+
+	/* Return if no IRAM space is allocated for suspend/resume code. */
+	if (!iram_tlb_base_addr) {
+		pr_warn("No valid ocram available for suspend/resume!\n");
+		return;
+	}
+
+	/* TODO: Handle M4 in TEE? */
+	/* Set all entries to 0 except first 3 words reserved for M4. */
+	memset((void *)(iram_tlb_base_addr + M4_OCRAMS_RESERVED_SIZE),
+		0, MX7_IRAM_TLB_SIZE - M4_OCRAMS_RESERVED_SIZE);
+
+	/*
+	 * Make sure the IRAM virtual address has a mapping in the IRAM
+	 * page table.
+	 *
+	 * Only use the top 12 bits [31-20] when storing the physical
+	 * address in the page table as only these bits are required
+	 * for 1M mapping.
+	 */
+	j = ((iram_tlb_base_addr >> 20) << 2) / 4;
+	*((unsigned long *)iram_tlb_base_addr + j) =
+		(iram_tlb_phys_addr & 0xFFF00000) | TT_ATTRIB_NON_CACHEABLE_1M;
+
+	/*
+	 * Make sure the AIPS1 virtual address has a mapping in the
+	 * IRAM page table.
+	 */
+	for (i = 0; i < 4; i++) {
+		j = ((IMX_IO_P2V(MX7D_AIPS1_BASE_ADDR + i * 0x100000) >> 20) << 2) / 4;
+		*((unsigned long *)iram_tlb_base_addr + j) =
+			((MX7D_AIPS1_BASE_ADDR + i * 0x100000) & 0xFFF00000) |
+			TT_ATTRIB_NON_CACHEABLE_1M;
+	}
+
+	/*
+	 * Make sure the AIPS2 virtual address has a mapping in the
+	 * IRAM page table.
+	 */
+	for (i = 0; i < 4; i++) {
+		j = ((IMX_IO_P2V(MX7D_AIPS2_BASE_ADDR + i * 0x100000) >> 20) << 2) / 4;
+		*((unsigned long *)iram_tlb_base_addr + j) =
+			((MX7D_AIPS2_BASE_ADDR + i * 0x100000) & 0xFFF00000) |
+			TT_ATTRIB_NON_CACHEABLE_1M;
+	}
+
+	/*
+	 * Make sure the AIPS3 virtual address has a mapping
+	 * in the IRAM page table.
+	 */
+	for (i = 0; i < 4; i++) {
+		j = ((IMX_IO_P2V(MX7D_AIPS3_BASE_ADDR + i * 0x100000) >> 20) << 2) / 4;
+		*((unsigned long *)iram_tlb_base_addr + j) =
+			((MX7D_AIPS3_BASE_ADDR + i * 0x100000) & 0xFFF00000) |
+			TT_ATTRIB_NON_CACHEABLE_1M;
+	}
+
+	/*
+	 * Make sure the GIC virtual address has a mapping in the
+	 * IRAM page table.
+	 */
+	j = ((IMX_IO_P2V(MX7D_GIC_BASE_ADDR) >> 20) << 2) / 4;
+	*((unsigned long *)iram_tlb_base_addr + j) =
+		(MX7D_GIC_BASE_ADDR & 0xFFF00000) | TT_ATTRIB_NON_CACHEABLE_1M;
+}
+
+static int __init imx7_suspend_init(const struct imx7_pm_socdata *socdata)
+{
+	const u32 (*ddrc_offset_array)[2];
+	const u32 (*ddrc_phy_offset_array)[2];
+	unsigned long iram_paddr;
+	int i;
+
+	suspend_set_ops(&imx7_pm_ops);
+
+	if (!socdata) {
+		pr_warn("%s: invalid argument!\n", __func__);
+		return -EINVAL;
+	}
+
+	/*
+	 * 16KB is allocated for IRAM TLB, but only up 8k is for kernel TLB,
+	 * The lower 8K is not used, so use the lower 8K for IRAM code and
+	 * pm_info.
+	 *
+	 */
+	iram_paddr = iram_tlb_phys_addr + MX7_SUSPEND_IRAM_ADDR_OFFSET;
+
+	/* Make sure iram_paddr is 8 byte aligned. */
+	if ((uintptr_t)(iram_paddr) & (FNCPY_ALIGN - 1))
+		iram_paddr += FNCPY_ALIGN - iram_paddr % (FNCPY_ALIGN);
+
+	/* Get the virtual address of the suspend code. */
+	suspend_ocram_base = (void *)IMX_IO_P2V(iram_paddr);
+
+	if (psci_ops.cpu_suspend) {
+		pm_info = kmalloc(sizeof(*pm_info), GFP_KERNEL);
+		if (!pm_info)
+			return -ENOMEM;
+	} else {
+		pm_info = suspend_ocram_base;
+	}
+	/* pbase points to iram_paddr. */
+	pm_info->pbase = iram_paddr;
+	pm_info->resume_addr = virt_to_phys(ca7_cpu_resume);
+	pm_info->pm_info_size = sizeof(*pm_info);
+
+	/*
+	 * ccm physical address is not used by asm code currently,
+	 * so get ccm virtual address directly, as we already have
+	 * it from ccm driver.
+	 */
+	pm_info->ccm_base.pbase = MX7D_CCM_BASE_ADDR;
+	pm_info->ccm_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_CCM_BASE_ADDR);
+
+	pm_info->ddrc_base.pbase = MX7D_DDRC_BASE_ADDR;
+	pm_info->ddrc_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_DDRC_BASE_ADDR);
+
+	pm_info->ddrc_phy_base.pbase = MX7D_DDRC_PHY_BASE_ADDR;
+	pm_info->ddrc_phy_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_DDRC_PHY_BASE_ADDR);
+
+	pm_info->src_base.pbase = MX7D_SRC_BASE_ADDR;
+	pm_info->src_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_SRC_BASE_ADDR);
+
+	pm_info->iomuxc_gpr_base.pbase = MX7D_IOMUXC_GPR_BASE_ADDR;
+	pm_info->iomuxc_gpr_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_IOMUXC_GPR_BASE_ADDR);
+
+	pm_info->gpc_base.pbase = MX7D_GPC_BASE_ADDR;
+	pm_info->gpc_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_GPC_BASE_ADDR);
+
+	pm_info->anatop_base.pbase = MX7D_ANATOP_BASE_ADDR;
+	pm_info->anatop_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_ANATOP_BASE_ADDR);
+
+	pm_info->snvs_base.pbase = MX7D_SNVS_BASE_ADDR;
+	pm_info->snvs_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_SNVS_BASE_ADDR);
+
+	pm_info->lpsr_base.pbase = MX7D_LPSR_BASE_ADDR;
+	lpsr_base = pm_info->lpsr_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_LPSR_BASE_ADDR);
+
+	pm_info->gic_base.pbase = MX7D_GIC_BASE_ADDR;
+	pm_info->gic_base.vbase = (void __iomem *)
+				IMX_IO_P2V(MX7D_GIC_BASE_ADDR);
+
+	pm_info->ddrc_num = socdata->ddrc_num;
+	ddrc_offset_array = socdata->ddrc_offset;
+	pm_info->ddrc_phy_num = socdata->ddrc_phy_num;
+	ddrc_phy_offset_array = socdata->ddrc_phy_offset;
+
+	/* initialize DDRC settings */
+	for (i = 0; i < pm_info->ddrc_num; i++) {
+		pm_info->ddrc_val[i][0] = ddrc_offset_array[i][0];
+		if (ddrc_offset_array[i][1] == READ_DATA_FROM_HARDWARE)
+			pm_info->ddrc_val[i][1] =
+				readl_relaxed(pm_info->ddrc_base.vbase +
+				ddrc_offset_array[i][0]);
+		else
+			pm_info->ddrc_val[i][1] = ddrc_offset_array[i][1];
+
+		if (pm_info->ddrc_val[i][0] == 0xd0)
+			pm_info->ddrc_val[i][1] |= 0xc0000000;
+	}
+
+	/* initialize DDRC PHY settings */
+	for (i = 0; i < pm_info->ddrc_phy_num; i++) {
+		pm_info->ddrc_phy_val[i][0] =
+			ddrc_phy_offset_array[i][0];
+		if (ddrc_phy_offset_array[i][1] == READ_DATA_FROM_HARDWARE)
+			pm_info->ddrc_phy_val[i][1] =
+				readl_relaxed(pm_info->ddrc_phy_base.vbase +
+				ddrc_phy_offset_array[i][0]);
+		else
+			pm_info->ddrc_phy_val[i][1] =
+				ddrc_phy_offset_array[i][1];
+	}
+
+	if (psci_ops.cpu_suspend)
+		return 0;
+
+	imx7_suspend_in_ocram_fn = fncpy(
+		suspend_ocram_base + sizeof(*pm_info),
+		&imx7_suspend,
+		MX7_SUSPEND_OCRAM_SIZE - sizeof(*pm_info));
+
+	return 0;
+}
+
+static void __init imx7_pm_common_init(const struct imx7_pm_socdata
+					*socdata)
+{
+	int ret;
+	struct regmap *gpr;
+
+	if (IS_ENABLED(CONFIG_SUSPEND)) {
+		ret = imx7_suspend_init(socdata);
+		if (ret)
+			pr_warn("%s: No DDR LPM support with suspend %d!\n",
+				__func__, ret);
+	}
+
+	/*
+	 * Force IOMUXC irq pending, so that the interrupt to GPC can be
+	 * used to deassert dsm_request signal when the signal gets
+	 * asserted unexpectedly.
+	 */
+	gpr = syscon_regmap_lookup_by_compatible("fsl,imx7d-iomuxc-gpr");
+	if (!IS_ERR(gpr))
+		regmap_update_bits(gpr, IOMUXC_GPR1, IMX7D_GPR1_IRQ_MASK,
+			IMX7D_GPR1_IRQ_MASK);
+}
+
+void __init imx7d_pm_init(void)
+{
+	struct device_node *np;
+	struct resource res;
+	if (imx_src_is_m4_enabled()) {
+		/* map the 32K of M4 TCM */
+		np = of_find_node_by_path(
+			"/tcml@007f8000");
+		if (np)
+			lpm_m4tcm_base = of_iomap(np, 0);
+		WARN_ON(!lpm_m4tcm_base);
+
+		/* map the m4 bootrom from dtb */
+		np = of_find_node_by_path(
+			"/soc/sram@00180000");
+		if (np)
+			m4_bootrom_base = of_iomap(np, 0);
+		WARN_ON(!m4_bootrom_base);
+
+		lpm_m4tcm_saved_in_ddr = kzalloc(SZ_32K, GFP_KERNEL);
+		WARN_ON(!lpm_m4tcm_saved_in_ddr);
+
+		/* save M4 Image to DDR */
+		memcpy(lpm_m4tcm_saved_in_ddr, lpm_m4tcm_base, SZ_32K);
+	}
+	np = of_find_compatible_node(NULL, NULL, "fsl,lpm-sram");
+	if (of_get_property(np, "fsl,enable-lpsr", NULL))
+		lpsr_enabled = true;
+
+	if (psci_ops.cpu_suspend)
+		lpsr_enabled = false;
+
+	if (lpsr_enabled) {
+		pr_info("LPSR mode enabled, DSM will go into LPSR mode!\n");
+		lpm_ocram_base = of_iomap(np, 0);
+		WARN_ON(!lpm_ocram_base);
+		WARN_ON(of_address_to_resource(np, 0, &res));
+		lpm_ocram_size = resource_size(&res);
+		lpm_ocram_saved_in_ddr = kzalloc(lpm_ocram_size, GFP_KERNEL);
+		WARN_ON(!lpm_ocram_saved_in_ddr);
+
+		np = of_find_node_by_path(
+			"/soc/bus@30000000/iomuxc@30330000");
+		if (np)
+			iomuxc_base = of_iomap(np, 0);
+		WARN_ON(!iomuxc_base);
+
+		np = of_find_node_by_path(
+			"/soc/bus@30000000/gpt@302d0000");
+		if (np)
+			gpt1_base = of_iomap(np, 0);
+		WARN_ON(!gpt1_base);
+
+		np = of_find_node_by_path(
+			"/soc/bus@30400000/system-counter-cmp@306b0000");
+		if (np)
+			system_counter_cmp_base = of_iomap(np, 0);
+		WARN_ON(!system_counter_cmp_base);
+
+		np = of_find_node_by_path(
+			"/soc/bus@30000000/gpio@30200000");
+		if (np)
+			gpio1_base = of_iomap(np, 0);
+		WARN_ON(!gpio1_base);
+	}
+
+	np = of_find_node_by_path(
+		"/soc/bus@30400000/system-counter-ctrl@306c0000");
+	if (np)
+		system_counter_ctrl_base = of_iomap(np, 0);
+	WARN_ON(!system_counter_ctrl_base);
+
+	if (imx_ddrc_get_ddr_type() == IMX_DDR_TYPE_LPDDR3
+		|| imx_ddrc_get_ddr_type() == IMX_DDR_TYPE_LPDDR2)
+		imx7_pm_common_init(&imx7d_pm_data_lpddr3);
+	else if (imx_ddrc_get_ddr_type() == IMX_DDR_TYPE_DDR3)
+		imx7_pm_common_init(&imx7d_pm_data_ddr3);
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,mega-fast-sram");
+	ocram_base = of_iomap(np, 0);
+	WARN_ON(!ocram_base);
+	WARN_ON(of_address_to_resource(np, 0, &res));
+	ocram_size = resource_size(&res);
+	ocram_saved_in_ddr = kzalloc(ocram_size, GFP_KERNEL);
+	WARN_ON(!ocram_saved_in_ddr);
+
+	np = of_find_node_by_path(
+		"/soc/bus@30800000/serial@30860000");
+	if (np)
+		console_base = of_iomap(np, 0);
+
+	/* clear LPSR resume address first */
+	imx7_pm_set_lpsr_resume_addr(0);
+}
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/pm-imx7ulp.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/pm-imx7ulp.c
@@ -62,6 +62,7 @@
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx7ulp-smc1");
 	smc1_base = of_iomap(np, 0);
+	of_node_put(np);
 	WARN_ON(!smc1_base);
 
 	imx7ulp_set_lpm(ULP_PM_RUN);
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/resume-imx6.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/resume-imx6.S
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright 2014 Freescale Semiconductor, Inc.
+ */
+
+#include <linux/linkage.h>
+#include <asm/assembler.h>
+#include <asm/asm-offsets.h>
+#include <asm/hardware/cache-l2x0.h>
+#include "hardware.h"
+
+/*
+ * The following code must assume it is running from physical address
+ * where absolute virtual addresses to the data section have to be
+ * turned into relative ones.
+ */
+
+ENTRY(v7_cpu_resume)
+	bl	v7_invalidate_l1
+#ifdef CONFIG_CACHE_L2X0
+	bl	l2c310_early_resume
+#endif
+	b	cpu_resume
+ENDPROC(v7_cpu_resume)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/smp_wfe.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/smp_wfe.S
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/linkage.h>
+#include <asm/smp_scu.h>
+#include "hardware.h"
+
+	.macro	disable_l1_dcache
+
+	/*
+	 * Flush all data from the L1 data cache before disabling
+	 * SCTLR.C bit.
+	 */
+	push	{r0 - r10, lr}
+	ldr	r7, =v7_flush_dcache_all
+	mov	lr, pc
+	mov	pc, r7
+	pop	{r0 - r10, lr}
+
+	/* disable d-cache */
+	mrc	p15, 0, r7, c1, c0, 0
+	bic	r7, r7, #(1 << 2)
+	mcr	p15, 0, r7, c1, c0, 0
+	dsb
+	isb
+
+	push	{r0 - r10, lr}
+	ldr	r7, =v7_flush_dcache_all
+	mov	lr, pc
+	mov	pc, r7
+	pop	{r0 - r10, lr}
+
+	.endm
+
+#ifdef CONFIG_SMP
+	.align 3
+
+ENTRY(imx7_smp_wfe)
+	push	{r4 - r11, lr}
+
+	dsb
+	isb
+
+	disable_l1_dcache
+
+	isb
+
+	/* Turn off SMP bit. */
+	mrc	p15, 0, r8, c1, c0, 1
+	bic	r8, r8, #0x40
+	mcr	p15, 0, r8, c1, c0, 1
+
+	isb
+	/* Set flag of entering WFE. */
+	mov	r7, #0xff
+	lsl	r7, r7, r0
+	mov	r6, #SCU_PM_DORMANT
+	lsl	r6, r6, r0
+	ldr	r8, [r1, #0x4]
+	bic	r8, r8, r7
+	orr	r6, r6, r8
+	str	r6, [r1, #0x4]
+
+go_back_wfe:
+	wfe
+
+	/* Offset 0x0 stores busfeq done flag */
+	ldr	r6, [r1]
+	cmp	r6, #1
+	beq	go_back_wfe
+
+	/* Turn ON SMP bit. */
+	mrc	p15, 0, r8, c1, c0, 1
+	orr	r8, r8, #0x40
+	mcr	p15, 0, r8, c1, c0, 1
+
+	isb
+	/* Enable L1 data cache. */
+	mrc	p15, 0, r8, c1, c0, 0
+	orr	r8, r8, #0x4
+	mcr	p15, 0, r8, c1, c0, 0
+	isb
+
+	/* Set flag of exiting WFE. */
+	mov	r7, #0xff
+	lsl	r7, r7, r0
+	mov	r6, #SCU_PM_NORMAL
+	lsl	r6, r6, r0
+	ldr	r8, [r1, #0x4]
+	bic	r8, r8, r7
+	orr	r6, r6, r8
+	str	r6, [r1, #0x4]
+
+	/* Pop all saved registers. */
+	pop	{r4 - r11, lr}
+	mov	pc, lr
+	.ltorg
+ENDPROC(imx7_smp_wfe)
+#endif
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/src.c
+++ linux-ein-5.4.0/arch/arm/mach-imx/src.c
@@ -12,6 +12,7 @@
 #include <linux/smp.h>
 #include <asm/smp_plat.h>
 #include "common.h"
+#include "hardware.h"
 
 #define SRC_SCR				0x000
 #define SRC_GPR1			0x020
@@ -23,9 +24,18 @@
 #define BP_SRC_SCR_SW_IPU2_RST		12
 #define BP_SRC_SCR_CORE1_RST		14
 #define BP_SRC_SCR_CORE1_ENABLE		22
+/* below is for i.MX7D */
+#define SRC_GPR1_V2			0x074
+#define SRC_A7RCR0			0x004
+#define SRC_A7RCR1			0x008
+#define SRC_M4RCR			0x00C
+
+#define BP_SRC_A7RCR0_A7_CORE_RESET0   0
+#define BP_SRC_A7RCR1_A7_CORE1_ENABLE  1
 
 static void __iomem *src_base;
-static DEFINE_SPINLOCK(scr_lock);
+static DEFINE_SPINLOCK(src_lock);
+static bool m4_is_enabled;
 
 static const int sw_reset_bits[5] = {
 	BP_SRC_SCR_SW_GPU_RST,
@@ -35,6 +45,11 @@
 	BP_SRC_SCR_SW_IPU2_RST
 };
 
+bool imx_src_is_m4_enabled(void)
+{
+	return m4_is_enabled;
+}
+
 static int imx_src_reset_module(struct reset_controller_dev *rcdev,
 		unsigned long sw_reset_idx)
 {
@@ -43,19 +58,16 @@
 	int bit;
 	u32 val;
 
-	if (!src_base)
-		return -ENODEV;
-
 	if (sw_reset_idx >= ARRAY_SIZE(sw_reset_bits))
 		return -EINVAL;
 
 	bit = 1 << sw_reset_bits[sw_reset_idx];
 
-	spin_lock_irqsave(&scr_lock, flags);
+	spin_lock_irqsave(&src_lock, flags);
 	val = readl_relaxed(src_base + SRC_SCR);
 	val |= bit;
 	writel_relaxed(val, src_base + SRC_SCR);
-	spin_unlock_irqrestore(&scr_lock, flags);
+	spin_unlock_irqrestore(&src_lock, flags);
 
 	timeout = jiffies + msecs_to_jiffies(1000);
 	while (readl(src_base + SRC_SCR) & bit) {
@@ -81,32 +93,59 @@
 	u32 mask, val;
 
 	cpu = cpu_logical_map(cpu);
-	mask = 1 << (BP_SRC_SCR_CORE1_ENABLE + cpu - 1);
-	spin_lock(&scr_lock);
-	val = readl_relaxed(src_base + SRC_SCR);
-	val = enable ? val | mask : val & ~mask;
-	val |= 1 << (BP_SRC_SCR_CORE1_RST + cpu - 1);
-	writel_relaxed(val, src_base + SRC_SCR);
-	spin_unlock(&scr_lock);
+	spin_lock(&src_lock);
+	if (cpu_is_imx7d()) {
+		/* enable core */
+		if (enable)
+			imx_gpcv2_set_core1_pdn_pup_by_software(false);
+
+		mask = 1 << (BP_SRC_A7RCR1_A7_CORE1_ENABLE + cpu - 1);
+		val = readl_relaxed(src_base + SRC_A7RCR1);
+		val = enable ? val | mask : val & ~mask;
+		writel_relaxed(val, src_base + SRC_A7RCR1);
+	} else {
+		mask = 1 << (BP_SRC_SCR_CORE1_ENABLE + cpu - 1);
+		val = readl_relaxed(src_base + SRC_SCR);
+		val = enable ? val | mask : val & ~mask;
+		val |= 1 << (BP_SRC_SCR_CORE1_RST + cpu - 1);
+		writel_relaxed(val, src_base + SRC_SCR);
+	}
+		spin_unlock(&src_lock);
 }
 
 void imx_set_cpu_jump(int cpu, void *jump_addr)
 {
+	spin_lock(&src_lock);
 	cpu = cpu_logical_map(cpu);
-	writel_relaxed(__pa_symbol(jump_addr),
-		       src_base + SRC_GPR1 + cpu * 8);
+	if (cpu_is_imx7d())
+		writel_relaxed(__pa_symbol(jump_addr),
+			src_base + SRC_GPR1_V2 + cpu * 8);
+	else
+		writel_relaxed(__pa_symbol(jump_addr),
+			src_base + SRC_GPR1 + cpu * 8);
+	spin_unlock(&src_lock);
 }
 
 u32 imx_get_cpu_arg(int cpu)
 {
 	cpu = cpu_logical_map(cpu);
-	return readl_relaxed(src_base + SRC_GPR1 + cpu * 8 + 4);
+	if (cpu_is_imx7d())
+		return readl_relaxed(src_base + SRC_GPR1_V2
+			+ cpu * 8 + 4);
+	else
+		return readl_relaxed(src_base + SRC_GPR1
+			+ cpu * 8 + 4);
 }
 
 void imx_set_cpu_arg(int cpu, u32 arg)
 {
 	cpu = cpu_logical_map(cpu);
-	writel_relaxed(arg, src_base + SRC_GPR1 + cpu * 8 + 4);
+	if (cpu_is_imx7d())
+		writel_relaxed(arg, src_base + SRC_GPR1_V2
+			+ cpu * 8 + 4);
+	else
+		writel_relaxed(arg, src_base + SRC_GPR1
+			+ cpu * 8 + 4);
 }
 
 void __init imx_src_init(void)
@@ -120,6 +159,15 @@
 	src_base = of_iomap(np, 0);
 	WARN_ON(!src_base);
 
+	if (cpu_is_imx7d()) {
+		val = readl_relaxed(src_base + SRC_M4RCR);
+		if (((val & BIT(3)) == BIT(3)) && !(val & BIT(0)))
+			m4_is_enabled = true;
+		else
+			m4_is_enabled = false;
+		return;
+	}
+
 	imx_reset_controller.of_node = np;
 	if (IS_ENABLED(CONFIG_RESET_CONTROLLER))
 		reset_controller_register(&imx_reset_controller);
@@ -128,9 +176,9 @@
 	 * force warm reset sources to generate cold reset
 	 * for a more reliable restart
 	 */
-	spin_lock(&scr_lock);
+	spin_lock(&src_lock);
 	val = readl_relaxed(src_base + SRC_SCR);
 	val &= ~(1 << BP_SRC_SCR_WARM_RESET_ENABLE);
 	writel_relaxed(val, src_base + SRC_SCR);
-	spin_unlock(&scr_lock);
+	spin_unlock(&src_lock);
 }
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/suspend-imx53.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/suspend-imx53.S
@@ -28,11 +28,11 @@
  *                              ^
  *                              ^
  *                      imx53_suspend code
- *              PM_INFO structure(imx53_suspend_info)
+ *              PM_INFO structure(imx5_cpu_suspend_info)
  * ======================== low address =======================
  */
 
-/* Offsets of members of struct imx53_suspend_info */
+/* Offsets of members of struct imx5_cpu_suspend_info */
 #define SUSPEND_INFO_MX53_M4IF_V_OFFSET		0x0
 #define SUSPEND_INFO_MX53_IOMUXC_V_OFFSET	0x4
 #define SUSPEND_INFO_MX53_IO_COUNT_OFFSET	0x8
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/suspend-imx6.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/suspend-imx6.S
@@ -67,6 +67,7 @@
 #define MX6Q_CCM_CCR	0x0
 
 	.align 3
+	.arm
 
 	.macro  sync_l2_cache
 
@@ -327,17 +328,3 @@
 
 	ret	lr
 ENDPROC(imx6_suspend)
-
-/*
- * The following code must assume it is running from physical address
- * where absolute virtual addresses to the data section have to be
- * turned into relative ones.
- */
-
-ENTRY(v7_cpu_resume)
-	bl	v7_invalidate_l1
-#ifdef CONFIG_CACHE_L2X0
-	bl	l2c310_early_resume
-#endif
-	b	cpu_resume
-ENDPROC(v7_cpu_resume)
--- linux-ein-5.4.0.orig/arch/arm/mach-imx/suspend-imx7.S
+++ linux-ein-5.4.0/arch/arm/mach-imx/suspend-imx7.S
@@ -0,0 +1,714 @@
+/*
+ * Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/linkage.h>
+#include <asm/asm-offsets.h>
+#include "hardware.h"
+
+/*
+ * ==================== low level suspend ====================
+ *
+ * Better to follow below rules to use ARM registers:
+ * r0: pm_info structure address;
+ * r1 ~ r4: for saving pm_info members;
+ * r5 ~ r10: free registers;
+ * r11: io base address.
+ *
+ * suspend ocram space layout:
+ * ======================== high address ======================
+ *                              .
+ *                              .
+ *                              .
+ *                              ^
+ *                              ^
+ *                              ^
+ *                      imx7_suspend code
+ *              PM_INFO structure(imx7_cpu_pm_info)
+ * ======================== low address =======================
+ */
+
+/*
+ * Below offsets are based on struct imx7_cpu_pm_info
+ * which defined in arch/arm/mach-imx/pm-imx7.c, this
+ * structure contains necessary pm info for low level
+ * suspend related code.
+ */
+#define PM_INFO_M4_RESERVE0_OFFSET		0x0
+#define PM_INFO_M4_RESERVE1_OFFSET		0x4
+#define PM_INFO_M4_RESERVE2_OFFSET		0x8
+#define PM_INFO_PBASE_OFFSET			0xc
+#define PM_INFO_RESUME_ADDR_OFFSET		0x10
+#define PM_INFO_DDR_TYPE_OFFSET			0x14
+#define PM_INFO_PM_INFO_SIZE_OFFSET		0x18
+#define PM_INFO_MX7_DDRC_P_OFFSET		0x1c
+#define PM_INFO_MX7_DDRC_V_OFFSET		0x20
+#define PM_INFO_MX7_DDRC_PHY_P_OFFSET		0x24
+#define PM_INFO_MX7_DDRC_PHY_V_OFFSET		0x28
+#define PM_INFO_MX7_SRC_P_OFFSET		0x2c
+#define PM_INFO_MX7_SRC_V_OFFSET		0x30
+#define PM_INFO_MX7_IOMUXC_GPR_P_OFFSET		0x34
+#define PM_INFO_MX7_IOMUXC_GPR_V_OFFSET		0x38
+#define PM_INFO_MX7_CCM_P_OFFSET		0x3c
+#define PM_INFO_MX7_CCM_V_OFFSET		0x40
+#define PM_INFO_MX7_GPC_P_OFFSET		0x44
+#define PM_INFO_MX7_GPC_V_OFFSET		0x48
+#define PM_INFO_MX7_SNVS_P_OFFSET		0x4c
+#define PM_INFO_MX7_SNVS_V_OFFSET		0x50
+#define PM_INFO_MX7_ANATOP_P_OFFSET		0x54
+#define PM_INFO_MX7_ANATOP_V_OFFSET		0x58
+#define PM_INFO_MX7_LPSR_P_OFFSET		0x5c
+#define PM_INFO_MX7_LPSR_V_OFFSET		0x60
+#define PM_INFO_MX7_GIC_DIST_P_OFFSET		0x64
+#define PM_INFO_MX7_GIC_DIST_V_OFFSET		0x68
+#define PM_INFO_MX7_TTBR1_V_OFFSET		0x6c
+#define PM_INFO_DDRC_REG_NUM_OFFSET		0x70
+#define PM_INFO_DDRC_REG_OFFSET			0x74
+#define PM_INFO_DDRC_VALUE_OFFSET		0x78
+#define PM_INFO_DDRC_PHY_REG_NUM_OFFSET		0x174
+#define PM_INFO_DDRC_PHY_REG_OFFSET		0x178
+#define PM_INFO_DDRC_PHY_VALUE_OFFSET		0x17c
+
+#define MX7_SRC_GPR1	0x74
+#define MX7_SRC_GPR2	0x78
+#define GPC_PGC_C0	0x800
+#define GPC_PGC_FM	0xa00
+#define ANADIG_SNVS_MISC_CTRL	0x380
+#define ANADIG_SNVS_MISC_CTRL_SET 0x384
+#define ANADIG_SNVS_MISC_CTRL_CLR 0x388
+#define ANADIG_DIGPROG	0x800
+#define DDRC_STAT	0x4
+#define DDRC_PWRCTL	0x30
+#define DDRC_PSTAT	0x3fc
+#define DDRC_PCTRL_0	0x490
+#define DDRC_DFIMISC	0x1b0
+#define DDRC_SWCTL	0x320
+#define DDRC_SWSTAT	0x324
+#define DDRPHY_LP_CON0	0x18
+
+#define CCM_SNVS_LPCG	0x250
+#define MX7D_GPC_IMR1	0x30
+#define MX7D_GPC_IMR2	0x34
+#define MX7D_GPC_IMR3	0x38
+#define MX7D_GPC_IMR4	0x3c
+
+	.align 3
+
+	.macro	disable_l1_dcache
+
+	/*
+	 * Flush all data from the L1 data cache before disabling
+	 * SCTLR.C bit.
+	 */
+	push	{r0 - r10, lr}
+	ldr	r7, =v7_flush_dcache_all
+	mov	lr, pc
+	mov	pc, r7
+	pop	{r0 - r10, lr}
+
+	/* disable d-cache */
+	mrc	p15, 0, r7, c1, c0, 0
+	bic	r7, r7, #(1 << 2)
+	mcr	p15, 0, r7, c1, c0, 0
+	dsb
+	isb
+
+	push	{r0 - r10, lr}
+	ldr	r7, =v7_flush_dcache_all
+	mov	lr, pc
+	mov	pc, r7
+	pop	{r0 - r10, lr}
+
+	.endm
+
+	.macro store_ttbr1
+
+	/* Store TTBR1 to pm_info->ttbr1 */
+	mrc	p15, 0, r7, c2, c0, 1
+	str	r7, [r0, #PM_INFO_MX7_TTBR1_V_OFFSET]
+
+	/* Disable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	bic	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the BTAC. */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	ldr	r6, =iram_tlb_phys_addr
+	ldr	r6, [r6]
+	dsb
+	isb
+
+	/* Store the IRAM table in TTBR1 */
+	mcr	p15, 0, r6, c2, c0, 1
+	/* Read TTBCR and set PD0=1, N = 1 */
+	mrc	p15, 0, r6, c2, c0, 2
+	orr	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	.endm
+
+	.macro restore_ttbr1
+
+	/* Enable L1 data cache. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x4
+	mcr	p15, 0, r6, c1, c0, 0
+
+	dsb
+	isb
+
+	/* Restore TTBCR */
+	/* Read TTBCR and set PD0=0, N = 0 */
+	mrc	p15, 0, r6, c2, c0, 2
+	bic	r6, r6, #0x11
+	mcr	p15, 0, r6, c2, c0, 2
+	dsb
+	isb
+
+	/* flush the TLB */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c8, c3, 0
+
+	/* Enable Branch Prediction, Z bit in SCTLR. */
+	mrc	p15, 0, r6, c1, c0, 0
+	orr	r6, r6, #0x800
+	mcr	p15, 0, r6, c1, c0, 0
+
+	/* Flush the Branch Target Address Cache (BTAC) */
+	ldr	r6, =0x0
+	mcr	p15, 0, r6, c7, c1, 6
+
+	/* Restore TTBR1, get the origin ttbr1 from pm info */
+	ldr	r7, [r0, #PM_INFO_MX7_TTBR1_V_OFFSET]
+	mcr	p15, 0, r7, c2, c0, 1
+
+	.endm
+
+	.macro ddrc_enter_self_refresh
+
+	ldr	r11, [r0, #PM_INFO_MX7_DDRC_V_OFFSET]
+
+	/* let DDR out of self-refresh */
+	ldr	r7, =0x0
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	/* wait rw port_busy clear */
+	ldr	r6, =(0x1 << 16)
+	orr	r6, r6, #0x1
+1:
+	ldr	r7, [r11, #DDRC_PSTAT]
+	ands	r7, r7, r6
+	bne	1b
+
+	/* enter self-refresh bit 5 */
+	ldr	r7, =(0x1 << 5)
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	/* wait until self-refresh mode entered */
+2:
+	ldr	r7, [r11, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x3
+	bne	2b
+3:
+	ldr	r7, [r11, #DDRC_STAT]
+	ands	r7, r7, #0x20
+	beq	3b
+
+	/* disable dram clk */
+	ldr	r7, [r11, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 3)
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	.endm
+
+	.macro ddrc_exit_self_refresh
+
+	cmp	r5, #0x0
+	ldreq	r11, [r0, #PM_INFO_MX7_DDRC_V_OFFSET]
+	ldrne	r11, [r0, #PM_INFO_MX7_DDRC_P_OFFSET]
+
+	/* let DDR out of self-refresh */
+	ldr	r7, =0x0
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	/* wait until self-refresh mode entered */
+4:
+	ldr	r7, [r11, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x3
+	beq	4b
+
+	/* enable auto self-refresh */
+	ldr	r7, [r11, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 0)
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	.endm
+
+	.macro wait_delay
+5:
+	subs	r6, r6, #0x1
+	bne	5b
+
+	.endm
+
+	.macro ddr_enter_retention
+
+	ldr	r11, [r0, #PM_INFO_MX7_DDRC_V_OFFSET]
+
+	/* let DDR out of self-refresh */
+	ldr	r7, =0x0
+	str	r7, [r11, #DDRC_PCTRL_0]
+
+	/* wait rw port_busy clear */
+	ldr	r6, =(0x1 << 16)
+	orr	r6, r6, #0x1
+6:
+	ldr	r7, [r11, #DDRC_PSTAT]
+	ands	r7, r7, r6
+	bne	6b
+
+	ldr	r11, [r0, #PM_INFO_MX7_DDRC_V_OFFSET]
+	/* enter self-refresh bit 5 */
+	ldr	r7, =(0x1 << 5)
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	/* wait until self-refresh mode entered */
+7:
+	ldr	r7, [r11, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x3
+	bne	7b
+8:
+	ldr	r7, [r11, #DDRC_STAT]
+	ands	r7, r7, #0x20
+	beq	8b
+
+	/* disable dram clk */
+	ldr	r7, =(0x1 << 5)
+	orr	r7, r7, #(1 << 3)
+	str	r7, [r11, #DDRC_PWRCTL]
+
+	ldr	r11, [r0, #PM_INFO_MX7_ANATOP_V_OFFSET]
+	ldr	r7, [r11, #ANADIG_DIGPROG]
+	and	r7, r7, #0xff
+	cmp	r7, #0x11
+	bne	10f
+
+	/* TO 1.1 */
+	ldr	r11, [r0, #PM_INFO_MX7_IOMUXC_GPR_V_OFFSET]
+	ldr	r7, =0x38000000
+	str	r7, [r11]
+
+	/* LPSR mode need to use TO1.0 flow as IOMUX lost power */
+	ldr	r10, [r0, #PM_INFO_MX7_LPSR_V_OFFSET]
+	ldr	r7, [r10]
+	cmp	r7, #0x0
+	beq	11f
+10:
+	/* reset ddr_phy  */
+	ldr	r11, [r0, #PM_INFO_MX7_ANATOP_V_OFFSET]
+	ldr	r7, =0x0
+	str	r7, [r11, #ANADIG_SNVS_MISC_CTRL]
+
+	/* delay 7 us */
+	ldr	r6, =6000
+	wait_delay
+
+	ldr	r11, [r0, #PM_INFO_MX7_SRC_V_OFFSET]
+	ldr	r6, =0x1000
+	ldr	r7, [r11, r6]
+	orr	r7, r7, #0x1
+	str	r7, [r11, r6]
+11:
+	/* turn off ddr power */
+	ldr	r11, [r0, #PM_INFO_MX7_ANATOP_V_OFFSET]
+	ldr	r7, =(0x1 << 29)
+	str	r7, [r11, #ANADIG_SNVS_MISC_CTRL_SET]
+
+	ldr	r11, [r0, #PM_INFO_MX7_SRC_V_OFFSET]
+	ldr	r6, =0x1000
+	ldr	r7, [r11, r6]
+	orr	r7, r7, #0x1
+	str	r7, [r11, r6]
+
+	.endm
+
+	.macro ddr_exit_retention
+
+	cmp	r5, #0x0
+	ldreq	r1, [r0, #PM_INFO_MX7_ANATOP_V_OFFSET]
+	ldrne	r1, [r0, #PM_INFO_MX7_ANATOP_P_OFFSET]
+	ldreq	r2, [r0, #PM_INFO_MX7_SRC_V_OFFSET]
+	ldrne	r2, [r0, #PM_INFO_MX7_SRC_P_OFFSET]
+	ldreq	r3, [r0, #PM_INFO_MX7_DDRC_V_OFFSET]
+	ldrne	r3, [r0, #PM_INFO_MX7_DDRC_P_OFFSET]
+	ldreq	r4, [r0, #PM_INFO_MX7_DDRC_PHY_V_OFFSET]
+	ldrne	r4, [r0, #PM_INFO_MX7_DDRC_PHY_P_OFFSET]
+	ldreq	r10, [r0, #PM_INFO_MX7_CCM_V_OFFSET]
+	ldrne	r10, [r0, #PM_INFO_MX7_CCM_P_OFFSET]
+	ldreq	r11, [r0, #PM_INFO_MX7_IOMUXC_GPR_V_OFFSET]
+	ldrne	r11, [r0, #PM_INFO_MX7_IOMUXC_GPR_P_OFFSET]
+
+	/* turn on ddr power */
+	ldr	r7, =(0x1 << 29)
+	str	r7, [r1, #ANADIG_SNVS_MISC_CTRL_CLR]
+
+	ldr	r6, =50
+	wait_delay
+
+	/* clear ddr_phy reset */
+	ldr	r6, =0x1000
+	ldr	r7, [r2, r6]
+	orr	r7, r7, #0x3
+	str	r7, [r2, r6]
+	ldr	r7, [r2, r6]
+	bic	r7, r7, #0x1
+	str	r7, [r2, r6]
+13:
+	ldr	r6, [r0, #PM_INFO_DDRC_REG_NUM_OFFSET]
+	ldr	r7, =PM_INFO_DDRC_REG_OFFSET
+	add	r7, r7, r0
+14:
+	ldr	r8, [r7], #0x4
+	ldr	r9, [r7], #0x4
+	str	r9, [r3, r8]
+	subs	r6, r6, #0x1
+	bne	14b
+	ldr	r7, =0x20
+	str	r7, [r3, #DDRC_PWRCTL]
+	ldr	r7, =0x0
+	str	r7, [r3, #DDRC_DFIMISC]
+
+	/* do PHY, clear ddr_phy reset */
+	ldr	r6, =0x1000
+	ldr	r7, [r2, r6]
+	bic	r7, r7, #0x2
+	str	r7, [r2, r6]
+
+	ldr	r7, [r1, #ANADIG_DIGPROG]
+	and	r7, r7, #0xff
+	cmp	r7, #0x11
+	bne	12f
+
+	/*
+	 * TKT262940:
+	 * System hang when press RST for DDR PAD is
+	 * in retention mode, fixed on TO1.1
+	 */
+	ldr	r7, [r11]
+	bic	r7, r7, #(1 << 27)
+	str	r7, [r11]
+	ldr	r7, [r11]
+	bic	r7, r7, #(1 << 29)
+	str	r7, [r11]
+12:
+	ldr	r7, =(0x1 << 30)
+	str	r7, [r1, #ANADIG_SNVS_MISC_CTRL_SET]
+
+	/* need to delay ~5mS */
+	ldr	r6, =0x100000
+	wait_delay
+
+	ldr	r6, [r0, #PM_INFO_DDRC_PHY_REG_NUM_OFFSET]
+	ldr	r7, =PM_INFO_DDRC_PHY_REG_OFFSET
+	add	r7, r7, r0
+
+15:
+	ldr	r8, [r7], #0x4
+	ldr	r9, [r7], #0x4
+	str	r9, [r4, r8]
+	subs	r6, r6, #0x1
+	bne	15b
+
+	ldr	r7, =0x0
+	add	r9, r10, #0x4000
+	str	r7, [r9, #0x130]
+
+	ldr	r7, =0x170
+	orr	r7, r7, #0x8
+	str	r7, [r11, #0x20]
+
+	ldr	r7, =0x2
+	add	r9, r10, #0x4000
+	str	r7, [r9, #0x130]
+
+	ldr	r7, =0xf
+	str	r7, [r4, #DDRPHY_LP_CON0]
+
+	/* wait until self-refresh mode entered */
+16:
+	ldr	r7, [r3, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x3
+	bne	16b
+	ldr	r7, =0x0
+	str	r7, [r3, #DDRC_SWCTL]
+	ldr	r7, =0x1
+	str	r7, [r3, #DDRC_DFIMISC]
+	ldr	r7, =0x1
+	str	r7, [r3, #DDRC_SWCTL]
+17:
+	ldr	r7, [r3, #DDRC_SWSTAT]
+	and	r7, r7, #0x1
+	cmp	r7, #0x1
+	bne	17b
+18:
+	ldr	r7, [r3, #DDRC_STAT]
+	and	r7, r7, #0x20
+	cmp	r7, #0x20
+	bne	18b
+
+	/* let DDR out of self-refresh */
+	ldr	r7, =0x0
+	str	r7, [r3, #DDRC_PWRCTL]
+19:
+	ldr	r7, [r3, #DDRC_STAT]
+	and	r7, r7, #0x30
+	cmp	r7, #0x0
+	bne	19b
+
+20:
+	ldr	r7, [r3, #DDRC_STAT]
+	and	r7, r7, #0x3
+	cmp	r7, #0x1
+	bne	20b
+
+	/* enable port */
+	ldr	r7, =0x1
+	str	r7, [r3, #DDRC_PCTRL_0]
+
+	/* enable auto self-refresh */
+	ldr	r7, [r3, #DDRC_PWRCTL]
+	orr	r7, r7, #(1 << 0)
+	str	r7, [r3, #DDRC_PWRCTL]
+
+	.endm
+
+ENTRY(imx7_suspend)
+	push	{r4-r12}
+
+	/* make sure SNVS clk is enabled */
+	ldr	r11, [r0, #PM_INFO_MX7_CCM_V_OFFSET]
+	add	r11, r11, #0x4000
+	ldr	r7, =0x3
+	str	r7, [r11, #CCM_SNVS_LPCG]
+
+	/* check whether it is a standby mode */
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_V_OFFSET]
+	ldr	r7, [r11, #GPC_PGC_C0]
+	cmp	r7, #0
+	beq	ddr_only_self_refresh
+
+	/*
+	 * The value of r0 is mapped the same in origin table and IRAM table,
+	 * thus no need to care r0 here.
+	 */
+	ldr	r1, [r0, #PM_INFO_PBASE_OFFSET]
+	ldr	r2, [r0, #PM_INFO_RESUME_ADDR_OFFSET]
+	ldr	r3, [r0, #PM_INFO_DDR_TYPE_OFFSET]
+	ldr	r4, [r0, #PM_INFO_PM_INFO_SIZE_OFFSET]
+
+	/*
+	 * counting the resume address in iram
+	 * to set it in SRC register.
+	 */
+	ldr	r6, =imx7_suspend
+	ldr	r7, =resume
+	sub	r7, r7, r6
+	add	r8, r1, r4
+	add	r9, r8, r7
+
+	ldr	r11, [r0, #PM_INFO_MX7_SRC_V_OFFSET]
+	/* store physical resume addr and pm_info address. */
+	str	r9, [r11, #MX7_SRC_GPR1]
+	str	r1, [r11, #MX7_SRC_GPR2]
+
+	disable_l1_dcache
+
+	store_ttbr1
+
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_V_OFFSET]
+	ldr	r7, [r11, #GPC_PGC_FM]
+	cmp	r7, #0
+	beq	ddr_only_self_refresh
+
+	ddr_enter_retention
+	/* enter LPSR mode if resume addr is valid */
+	ldr	r11, [r0, #PM_INFO_MX7_LPSR_V_OFFSET]
+	ldr	r7, [r11]
+	cmp	r7, #0x0
+	beq	ddr_retention_enter_out
+
+	/* disable STOP mode before entering LPSR */
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_V_OFFSET]
+	ldr	r7, [r11]
+	bic	r7, #0xf
+	str	r7, [r11]
+
+	/* shut down vddsoc to enter lpsr mode */
+	ldr	r11, [r0, #PM_INFO_MX7_SNVS_V_OFFSET]
+	ldr	r7, [r11, #0x38]
+	orr	r7, r7, #0x60
+	str	r7, [r11, #0x38]
+wait_shutdown:
+	wfi
+	nop
+	nop
+	nop
+	nop
+	b	wait_shutdown
+
+ddr_only_self_refresh:
+	ddrc_enter_self_refresh
+	b	wfi
+ddr_retention_enter_out:
+
+	ldr	r11, [r0, #PM_INFO_MX7_GIC_DIST_V_OFFSET]
+	ldr	r7, =0x0
+	ldr	r8, =0x1000
+	str	r7, [r11, r8]
+
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_V_OFFSET]
+	ldr	r4, [r11, #MX7D_GPC_IMR1]
+	ldr	r5, [r11, #MX7D_GPC_IMR2]
+	ldr	r6, [r11, #MX7D_GPC_IMR3]
+	ldr	r7, [r11, #MX7D_GPC_IMR4]
+
+	ldr	r8, =0xffffffff
+	str	r8, [r11, #MX7D_GPC_IMR1]
+	str	r8, [r11, #MX7D_GPC_IMR2]
+	str	r8, [r11, #MX7D_GPC_IMR3]
+	str	r8, [r11, #MX7D_GPC_IMR4]
+
+	/*
+	 * enable the RBC bypass counter here
+	 * to hold off the interrupts. RBC counter
+	 * = 8 (240us). With this setting, the latency
+	 * from wakeup interrupt to ARM power up
+	 * is ~250uS.
+	 */
+	ldr	r8, [r11, #0x14]
+	bic	r8, r8, #(0x3f << 24)
+	orr	r8, r8, #(0x8 << 24)
+	str	r8, [r11, #0x14]
+
+	/* enable the counter. */
+	ldr	r8, [r11, #0x14]
+	orr	r8, r8, #(0x1 << 30)
+	str	r8, [r11, #0x14]
+
+	/* unmask all the GPC interrupts. */
+	str	r4, [r11, #MX7D_GPC_IMR1]
+	str	r5, [r11, #MX7D_GPC_IMR2]
+	str	r6, [r11, #MX7D_GPC_IMR3]
+	str	r7, [r11, #MX7D_GPC_IMR4]
+
+	/*
+	 * now delay for a short while (3usec)
+	 * ARM is at 1GHz at this point
+	 * so a short loop should be enough.
+	 * this delay is required to ensure that
+	 * the RBC counter can start counting in
+	 * case an interrupt is already pending
+	 * or in case an interrupt arrives just
+	 * as ARM is about to assert DSM_request.
+	 */
+	ldr	r7, =2000
+rbc_loop:
+	subs	r7, r7, #0x1
+	bne	rbc_loop
+wfi:
+	/* Zzz, enter stop mode */
+	wfi
+	nop
+	nop
+	nop
+	nop
+
+	mov	r5, #0x0
+
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_V_OFFSET]
+	ldr	r7, [r11, #GPC_PGC_FM]
+	cmp	r7, #0
+	beq	wfi_ddr_self_refresh_out
+
+	ddr_exit_retention
+	b	wfi_ddr_retention_out
+wfi_ddr_self_refresh_out:
+	ddrc_exit_self_refresh
+wfi_ddr_retention_out:
+
+	/* check whether it is a standby mode */
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_V_OFFSET]
+	ldr	r7, [r11, #GPC_PGC_C0]
+	cmp	r7, #0
+	beq	standby_out
+
+	ldr	r11, [r0, #PM_INFO_MX7_GIC_DIST_V_OFFSET]
+	ldr	r7, =0x1
+	ldr	r8, =0x1000
+	str	r7, [r11, r8]
+
+	restore_ttbr1
+standby_out:
+	pop	{r4-r12}
+	/* return to suspend finish */
+	mov	pc, lr
+
+resume:
+	/* invalidate L1 I-cache first */
+	mov     r6, #0x0
+	mcr     p15, 0, r6, c7, c5, 0
+	mcr     p15, 0, r6, c7, c5, 6
+	/* enable the Icache and branch prediction */
+	mov     r6, #0x1800
+	mcr     p15, 0, r6, c1, c0, 0
+	isb
+
+	/* get physical resume address from pm_info. */
+	ldr	lr, [r0, #PM_INFO_RESUME_ADDR_OFFSET]
+	/* clear core0's entry and parameter */
+	ldr	r11, [r0, #PM_INFO_MX7_SRC_P_OFFSET]
+	mov	r7, #0x0
+	str	r7, [r11, #MX7_SRC_GPR1]
+	str	r7, [r11, #MX7_SRC_GPR2]
+
+	mov	r5, #0x1
+
+	ldr	r11, [r0, #PM_INFO_MX7_GPC_P_OFFSET]
+	ldr	r7, [r11, #GPC_PGC_FM]
+	cmp	r7, #0
+	beq	dsm_ddr_self_refresh_out
+
+	ddr_exit_retention
+	b	dsm_ddr_retention_out
+dsm_ddr_self_refresh_out:
+	ddrc_exit_self_refresh
+dsm_ddr_retention_out:
+
+	mov	pc, lr
+ENDPROC(imx7_suspend)
+
+ENTRY(ca7_cpu_resume)
+	bl	v7_invalidate_l1
+	b	cpu_resume
+ENDPROC(ca7_cpu_resume)
--- linux-ein-5.4.0.orig/arch/arm/mach-integrator/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-integrator/Kconfig
@@ -4,6 +4,8 @@
 	depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
 	select ARM_AMBA
 	select COMMON_CLK_VERSATILE
+	select CMA
+	select DMA_CMA
 	select HAVE_TCM
 	select ICST
 	select MFD_SYSCON
@@ -35,14 +37,13 @@
 	select ARM_VIC
 	select GPIO_PL061
 	select GPIOLIB
+	select REGULATOR
+	select REGULATOR_FIXED_VOLTAGE
 	help
 	  The IM-PD1 is an add-on logic module for the Integrator which
 	  allows ARM(R) Ltd PrimeCells to be developed and evaluated.
 	  The IM-PD1 can be found on the Integrator/PP2 platform.
 
-	  To compile this driver as a module, choose M here: the
-	  module will be called impd1.
-
 config INTEGRATOR_CM7TDMI
 	bool "Integrator/CM7TDMI core module"
 	depends on ARCH_INTEGRATOR_AP
--- linux-ein-5.4.0.orig/arch/arm/mach-iop32x/include/mach/entry-macro.S
+++ linux-ein-5.4.0/arch/arm/mach-iop32x/include/mach/entry-macro.S
@@ -20,7 +20,7 @@
 	mrc     p6, 0, \irqstat, c8, c0, 0	@ Read IINTSRC
 	cmp     \irqstat, #0
 	clzne   \irqnr, \irqstat
-	rsbne   \irqnr, \irqnr, #31
+	rsbne   \irqnr, \irqnr, #32
 	.endm
 
 	.macro arch_ret_to_user, tmp1, tmp2
--- linux-ein-5.4.0.orig/arch/arm/mach-iop32x/include/mach/irqs.h
+++ linux-ein-5.4.0/arch/arm/mach-iop32x/include/mach/irqs.h
@@ -9,6 +9,6 @@
 #ifndef __IRQS_H
 #define __IRQS_H
 
-#define NR_IRQS			32
+#define NR_IRQS			33
 
 #endif
--- linux-ein-5.4.0.orig/arch/arm/mach-iop32x/irq.c
+++ linux-ein-5.4.0/arch/arm/mach-iop32x/irq.c
@@ -32,14 +32,14 @@
 static void
 iop32x_irq_mask(struct irq_data *d)
 {
-	iop32x_mask &= ~(1 << d->irq);
+	iop32x_mask &= ~(1 << (d->irq - 1));
 	intctl_write(iop32x_mask);
 }
 
 static void
 iop32x_irq_unmask(struct irq_data *d)
 {
-	iop32x_mask |= 1 << d->irq;
+	iop32x_mask |= 1 << (d->irq - 1);
 	intctl_write(iop32x_mask);
 }
 
@@ -65,7 +65,7 @@
 	    machine_is_em7210())
 		*IOP3XX_PCIIRSR = 0x0f;
 
-	for (i = 0; i < NR_IRQS; i++) {
+	for (i = 1; i < NR_IRQS; i++) {
 		irq_set_chip_and_handler(i, &ext_chip, handle_level_irq);
 		irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE);
 	}
--- linux-ein-5.4.0.orig/arch/arm/mach-iop32x/irqs.h
+++ linux-ein-5.4.0/arch/arm/mach-iop32x/irqs.h
@@ -7,36 +7,40 @@
 #ifndef __IOP32X_IRQS_H
 #define __IOP32X_IRQS_H
 
+/* Interrupts in Linux start at 1, hardware starts at 0 */
+
+#define IOP_IRQ(x) ((x) + 1)
+
 /*
  * IOP80321 chipset interrupts
  */
-#define IRQ_IOP32X_DMA0_EOT	0
-#define IRQ_IOP32X_DMA0_EOC	1
-#define IRQ_IOP32X_DMA1_EOT	2
-#define IRQ_IOP32X_DMA1_EOC	3
-#define IRQ_IOP32X_AA_EOT	6
-#define IRQ_IOP32X_AA_EOC	7
-#define IRQ_IOP32X_CORE_PMON	8
-#define IRQ_IOP32X_TIMER0	9
-#define IRQ_IOP32X_TIMER1	10
-#define IRQ_IOP32X_I2C_0	11
-#define IRQ_IOP32X_I2C_1	12
-#define IRQ_IOP32X_MESSAGING	13
-#define IRQ_IOP32X_ATU_BIST	14
-#define IRQ_IOP32X_PERFMON	15
-#define IRQ_IOP32X_CORE_PMU	16
-#define IRQ_IOP32X_BIU_ERR	17
-#define IRQ_IOP32X_ATU_ERR	18
-#define IRQ_IOP32X_MCU_ERR	19
-#define IRQ_IOP32X_DMA0_ERR	20
-#define IRQ_IOP32X_DMA1_ERR	21
-#define IRQ_IOP32X_AA_ERR	23
-#define IRQ_IOP32X_MSG_ERR	24
-#define IRQ_IOP32X_SSP		25
-#define IRQ_IOP32X_XINT0	27
-#define IRQ_IOP32X_XINT1	28
-#define IRQ_IOP32X_XINT2	29
-#define IRQ_IOP32X_XINT3	30
-#define IRQ_IOP32X_HPI		31
+#define IRQ_IOP32X_DMA0_EOT	IOP_IRQ(0)
+#define IRQ_IOP32X_DMA0_EOC	IOP_IRQ(1)
+#define IRQ_IOP32X_DMA1_EOT	IOP_IRQ(2)
+#define IRQ_IOP32X_DMA1_EOC	IOP_IRQ(3)
+#define IRQ_IOP32X_AA_EOT	IOP_IRQ(6)
+#define IRQ_IOP32X_AA_EOC	IOP_IRQ(7)
+#define IRQ_IOP32X_CORE_PMON	IOP_IRQ(8)
+#define IRQ_IOP32X_TIMER0	IOP_IRQ(9)
+#define IRQ_IOP32X_TIMER1	IOP_IRQ(10)
+#define IRQ_IOP32X_I2C_0	IOP_IRQ(11)
+#define IRQ_IOP32X_I2C_1	IOP_IRQ(12)
+#define IRQ_IOP32X_MESSAGING	IOP_IRQ(13)
+#define IRQ_IOP32X_ATU_BIST	IOP_IRQ(14)
+#define IRQ_IOP32X_PERFMON	IOP_IRQ(15)
+#define IRQ_IOP32X_CORE_PMU	IOP_IRQ(16)
+#define IRQ_IOP32X_BIU_ERR	IOP_IRQ(17)
+#define IRQ_IOP32X_ATU_ERR	IOP_IRQ(18)
+#define IRQ_IOP32X_MCU_ERR	IOP_IRQ(19)
+#define IRQ_IOP32X_DMA0_ERR	IOP_IRQ(20)
+#define IRQ_IOP32X_DMA1_ERR	IOP_IRQ(21)
+#define IRQ_IOP32X_AA_ERR	IOP_IRQ(23)
+#define IRQ_IOP32X_MSG_ERR	IOP_IRQ(24)
+#define IRQ_IOP32X_SSP		IOP_IRQ(25)
+#define IRQ_IOP32X_XINT0	IOP_IRQ(27)
+#define IRQ_IOP32X_XINT1	IOP_IRQ(28)
+#define IRQ_IOP32X_XINT2	IOP_IRQ(29)
+#define IRQ_IOP32X_XINT3	IOP_IRQ(30)
+#define IRQ_IOP32X_HPI		IOP_IRQ(31)
 
 #endif
--- linux-ein-5.4.0.orig/arch/arm/mach-ixp4xx/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-ixp4xx/Kconfig
@@ -13,7 +13,6 @@
 	select I2C
 	select I2C_IOP3XX
 	select PCI
-	select TIMER_OF
 	select USE_OF
 	help
 	  Say 'Y' here to support Device Tree-based IXP4xx platforms.
--- linux-ein-5.4.0.orig/arch/arm/mach-keystone/keystone.c
+++ linux-ein-5.4.0/arch/arm/mach-keystone/keystone.c
@@ -62,7 +62,7 @@
 static long long __init keystone_pv_fixup(void)
 {
 	long long offset;
-	phys_addr_t mem_start, mem_end;
+	u64 mem_start, mem_end;
 
 	mem_start = memblock_start_of_DRAM();
 	mem_end = memblock_end_of_DRAM();
@@ -75,7 +75,7 @@
 	if (mem_start < KEYSTONE_HIGH_PHYS_START ||
 	    mem_end   > KEYSTONE_HIGH_PHYS_END) {
 		pr_crit("Invalid address space for memory (%08llx-%08llx)\n",
-		        (u64)mem_start, (u64)mem_end);
+		        mem_start, mem_end);
 		return 0;
 	}
 
--- linux-ein-5.4.0.orig/arch/arm/mach-mediatek/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-mediatek/Kconfig
@@ -30,6 +30,7 @@
 config MACH_MT7629
 	bool "MediaTek MT7629 SoCs support"
 	default ARCH_MEDIATEK
+	select HAVE_ARM_ARCH_TIMER
 
 config MACH_MT8127
 	bool "MediaTek MT8127 SoCs support"
--- linux-ein-5.4.0.orig/arch/arm/mach-meson/platsmp.c
+++ linux-ein-5.4.0/arch/arm/mach-meson/platsmp.c
@@ -71,6 +71,7 @@
 	}
 
 	sram_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!sram_base) {
 		pr_err("Couldn't map SRAM registers\n");
 		return;
@@ -91,6 +92,7 @@
 	}
 
 	scu_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!scu_base) {
 		pr_err("Couldn't map SCU registers\n");
 		return;
--- linux-ein-5.4.0.orig/arch/arm/mach-mmp/sram.c
+++ linux-ein-5.4.0/arch/arm/mach-mmp/sram.c
@@ -72,6 +72,8 @@
 	if (!info)
 		return -ENOMEM;
 
+	platform_set_drvdata(pdev, info);
+
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (res == NULL) {
 		dev_err(&pdev->dev, "no memory resource defined\n");
@@ -107,8 +109,6 @@
 	list_add(&info->node, &sram_bank_list);
 	mutex_unlock(&sram_lock);
 
-	platform_set_drvdata(pdev, info);
-
 	dev_info(&pdev->dev, "initialized\n");
 	return 0;
 
@@ -127,17 +127,19 @@
 	struct sram_bank_info *info;
 
 	info = platform_get_drvdata(pdev);
-	if (info == NULL)
-		return -ENODEV;
 
-	mutex_lock(&sram_lock);
-	list_del(&info->node);
-	mutex_unlock(&sram_lock);
+	if (info->sram_size) {
+		mutex_lock(&sram_lock);
+		list_del(&info->node);
+		mutex_unlock(&sram_lock);
+
+		gen_pool_destroy(info->gpool);
+		iounmap(info->sram_virt);
+		kfree(info->pool_name);
+	}
 
-	gen_pool_destroy(info->gpool);
-	iounmap(info->sram_virt);
-	kfree(info->pool_name);
 	kfree(info);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/arm/mach-mmp/time.c
+++ linux-ein-5.4.0/arch/arm/mach-mmp/time.c
@@ -44,18 +44,21 @@
 static void __iomem *mmp_timer_base = TIMERS_VIRT_BASE;
 
 /*
- * FIXME: the timer needs some delay to stablize the counter capture
+ * Read the timer through the CVWR register. Delay is required after requesting
+ * a read. The CR register cannot be directly read due to metastability issues
+ * documented in the PXA168 software manual.
  */
 static inline uint32_t timer_read(void)
 {
-	int delay = 100;
+	uint32_t val;
+	int delay = 3;
 
 	__raw_writel(1, mmp_timer_base + TMR_CVWR(1));
 
 	while (delay--)
-		cpu_relax();
+		val = __raw_readl(mmp_timer_base + TMR_CVWR(1));
 
-	return __raw_readl(mmp_timer_base + TMR_CVWR(1));
+	return val;
 }
 
 static u64 notrace mmp_read_sched_clock(void)
--- linux-ein-5.4.0.orig/arch/arm/mach-mxs/mach-mxs.c
+++ linux-ein-5.4.0/arch/arm/mach-mxs/mach-mxs.c
@@ -387,8 +387,10 @@
 
 	root = of_find_node_by_path("/");
 	ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
-	if (ret)
+	if (ret) {
+		kfree(soc_dev_attr);
 		return;
+	}
 
 	soc_dev_attr->family = "Freescale MXS Family";
 	soc_dev_attr->soc_id = mxs_get_soc_id();
--- linux-ein-5.4.0.orig/arch/arm/mach-npcm/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-npcm/Kconfig
@@ -11,7 +11,7 @@
 	depends on ARCH_MULTI_V7
 	select PINCTRL_NPCM7XX
 	select NPCM7XX_TIMER
-	select ARCH_REQUIRE_GPIOLIB
+	select GPIOLIB
 	select CACHE_L2X0
 	select ARM_GIC
 	select HAVE_ARM_TWD if SMP
--- linux-ein-5.4.0.orig/arch/arm/mach-omap1/ams-delta-fiq-handler.S
+++ linux-ein-5.4.0/arch/arm/mach-omap1/ams-delta-fiq-handler.S
@@ -15,6 +15,7 @@
 #include <linux/platform_data/gpio-omap.h>
 
 #include <asm/assembler.h>
+#include <asm/irq.h>
 
 #include "ams-delta-fiq.h"
 #include "board-ams-delta.h"
--- linux-ein-5.4.0.orig/arch/arm/mach-omap1/clock.c
+++ linux-ein-5.4.0/arch/arm/mach-omap1/clock.c
@@ -41,7 +41,7 @@
 unsigned long omap1_uart_recalc(struct clk *clk)
 {
 	unsigned int val = __raw_readl(clk->enable_reg);
-	return val & clk->enable_bit ? 48000000 : 12000000;
+	return val & 1 << clk->enable_bit ? 48000000 : 12000000;
 }
 
 unsigned long omap1_sossi_recalc(struct clk *clk)
--- linux-ein-5.4.0.orig/arch/arm/mach-omap1/pm.c
+++ linux-ein-5.4.0/arch/arm/mach-omap1/pm.c
@@ -596,11 +596,6 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction omap_wakeup_irq = {
-	.name		= "peripheral wakeup",
-	.handler	= omap_wakeup_interrupt
-};
-
 
 
 static const struct platform_suspend_ops omap_pm_ops = {
@@ -613,6 +608,7 @@
 static int __init omap_pm_init(void)
 {
 	int error = 0;
+	int irq;
 
 	if (!cpu_class_is_omap1())
 		return -ENODEV;
@@ -656,9 +652,12 @@
 	arm_pm_idle = omap1_pm_idle;
 
 	if (cpu_is_omap7xx())
-		setup_irq(INT_7XX_WAKE_UP_REQ, &omap_wakeup_irq);
+		irq = INT_7XX_WAKE_UP_REQ;
 	else if (cpu_is_omap16xx())
-		setup_irq(INT_1610_WAKE_UP_REQ, &omap_wakeup_irq);
+		irq = INT_1610_WAKE_UP_REQ;
+	if (request_irq(irq, omap_wakeup_interrupt, 0, "peripheral wakeup",
+			NULL))
+		pr_err("Failed to request irq %d (peripheral wakeup)\n", irq);
 
 	/* Program new power ramp-up time
 	 * (0 for most boards since we don't lower voltage when in deep sleep)
--- linux-ein-5.4.0.orig/arch/arm/mach-omap1/time.c
+++ linux-ein-5.4.0/arch/arm/mach-omap1/time.c
@@ -155,15 +155,11 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction omap_mpu_timer1_irq = {
-	.name		= "mpu_timer1",
-	.flags		= IRQF_TIMER | IRQF_IRQPOLL,
-	.handler	= omap_mpu_timer1_interrupt,
-};
-
 static __init void omap_init_mpu_timer(unsigned long rate)
 {
-	setup_irq(INT_TIMER1, &omap_mpu_timer1_irq);
+	if (request_irq(INT_TIMER1, omap_mpu_timer1_interrupt,
+			IRQF_TIMER | IRQF_IRQPOLL, "mpu_timer1", NULL))
+		pr_err("Failed to request irq %d (mpu_timer1)\n", INT_TIMER1);
 	omap_mpu_timer_start(0, (rate / HZ) - 1, 1);
 
 	clockevent_mpu_timer1.cpumask = cpumask_of(0);
--- linux-ein-5.4.0.orig/arch/arm/mach-omap1/timer.c
+++ linux-ein-5.4.0/arch/arm/mach-omap1/timer.c
@@ -165,7 +165,7 @@
 	kfree(pdata);
 
 err_free_pdev:
-	platform_device_unregister(pdev);
+	platform_device_put(pdev);
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/arch/arm/mach-omap1/timer32k.c
+++ linux-ein-5.4.0/arch/arm/mach-omap1/timer32k.c
@@ -148,15 +148,11 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction omap_32k_timer_irq = {
-	.name		= "32KHz timer",
-	.flags		= IRQF_TIMER | IRQF_IRQPOLL,
-	.handler	= omap_32k_timer_interrupt,
-};
-
 static __init void omap_init_32k_timer(void)
 {
-	setup_irq(INT_OS_TIMER, &omap_32k_timer_irq);
+	if (request_irq(INT_OS_TIMER, omap_32k_timer_interrupt,
+			IRQF_TIMER | IRQF_IRQPOLL, "32KHz timer", NULL))
+		pr_err("Failed to request irq %d(32KHz timer)\n", INT_OS_TIMER);
 
 	clockevent_32k_timer.cpumask = cpumask_of(0);
 	clockevents_config_and_register(&clockevent_32k_timer,
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-omap2/Kconfig
@@ -94,7 +94,7 @@
 config ARCH_OMAP2PLUS
 	bool
 	select ARCH_HAS_BANDGAP
-	select ARCH_HAS_HOLES_MEMORYMODEL
+	select ARCH_HAS_RESET_CONTROLLER
 	select ARCH_OMAP
 	select CLKSRC_MMIO
 	select GENERIC_IRQ_CHIP
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/board-generic.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/board-generic.c
@@ -327,7 +327,7 @@
 	.init_late	= dra7xx_init_late,
 	.init_irq	= omap_gic_of_init,
 	.init_machine	= omap_generic_init,
-	.init_time	= omap5_realtime_timer_init,
+	.init_time	= omap3_gptimer_timer_init,
 	.dt_compat	= dra74x_boards_compat,
 	.restart	= omap44xx_restart,
 MACHINE_END
@@ -350,7 +350,7 @@
 	.init_late	= dra7xx_init_late,
 	.init_irq	= omap_gic_of_init,
 	.init_machine	= omap_generic_init,
-	.init_time	= omap5_realtime_timer_init,
+	.init_time	= omap3_gptimer_timer_init,
 	.dt_compat	= dra72x_boards_compat,
 	.restart	= omap44xx_restart,
 MACHINE_END
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/board-n8x0.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/board-n8x0.c
@@ -322,6 +322,7 @@
 
 static void n8x0_mmc_callback(void *data, u8 card_mask)
 {
+#ifdef CONFIG_MMC_OMAP
 	int bit, *openp, index;
 
 	if (board_is_n800()) {
@@ -339,7 +340,6 @@
 	else
 		*openp = 0;
 
-#ifdef CONFIG_MMC_OMAP
 	omap_mmc_notify_cover_event(mmc_device, index, *openp);
 #else
 	pr_warn("MMC: notify cover event not available\n");
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/cpuidle34xx.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/cpuidle34xx.c
@@ -109,6 +109,7 @@
 			    int index)
 {
 	struct omap3_idle_statedata *cx = &omap3_idle_data[index];
+	int error;
 
 	if (omap_irq_pending() || need_resched())
 		goto return_sleep_time;
@@ -125,8 +126,11 @@
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP context is saved.
 	 */
-	if (cx->mpu_state == PWRDM_POWER_OFF)
-		cpu_pm_enter();
+	if (cx->mpu_state == PWRDM_POWER_OFF) {
+		error = cpu_pm_enter();
+		if (error)
+			goto out_clkdm_set;
+	}
 
 	/* Execute ARM wfi */
 	omap_sram_idle();
@@ -139,6 +143,7 @@
 	    pwrdm_read_prev_pwrst(mpu_pd) == PWRDM_POWER_OFF)
 		cpu_pm_exit();
 
+out_clkdm_set:
 	/* Re-allow idle for C1 */
 	if (cx->flags & OMAP_CPUIDLE_CX_NO_CLKDM_IDLE)
 		clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]);
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/cpuidle44xx.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/cpuidle44xx.c
@@ -122,6 +122,7 @@
 {
 	struct idle_statedata *cx = state_ptr + index;
 	u32 mpuss_can_lose_context = 0;
+	int error;
 
 	/*
 	 * CPU0 has to wait and stay ON until CPU1 is OFF state.
@@ -150,27 +151,37 @@
 				 (cx->mpu_logic_state == PWRDM_POWER_OFF);
 
 	/* Enter broadcast mode for periodic timers */
-	tick_broadcast_enable();
+	RCU_NONIDLE(tick_broadcast_enable());
 
 	/* Enter broadcast mode for one-shot timers */
-	tick_broadcast_enter();
+	RCU_NONIDLE(tick_broadcast_enter());
 
 	/*
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP and per CPU interrupt context is saved.
 	 */
-	cpu_pm_enter();
+	error = cpu_pm_enter();
+	if (error)
+		goto cpu_pm_out;
 
 	if (dev->cpu == 0) {
 		pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
-		omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
+		RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
 
 		/*
 		 * Call idle CPU cluster PM enter notifier chain
 		 * to save GIC and wakeupgen context.
 		 */
-		if (mpuss_can_lose_context)
-			cpu_cluster_pm_enter();
+		if (mpuss_can_lose_context) {
+			error = cpu_cluster_pm_enter();
+			if (error) {
+				index = 0;
+				cx = state_ptr + index;
+				pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
+				RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
+				mpuss_can_lose_context = 0;
+			}
+		}
 	}
 
 	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
@@ -183,9 +194,9 @@
 		    mpuss_can_lose_context)
 			gic_dist_disable();
 
-		clkdm_deny_idle(cpu_clkdm[1]);
-		omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
-		clkdm_allow_idle(cpu_clkdm[1]);
+		RCU_NONIDLE(clkdm_deny_idle(cpu_clkdm[1]));
+		RCU_NONIDLE(omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON));
+		RCU_NONIDLE(clkdm_allow_idle(cpu_clkdm[1]));
 
 		if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
 		    mpuss_can_lose_context) {
@@ -198,19 +209,20 @@
 	}
 
 	/*
-	 * Call idle CPU PM exit notifier chain to restore
-	 * VFP and per CPU IRQ context.
-	 */
-	cpu_pm_exit();
-
-	/*
 	 * Call idle CPU cluster PM exit notifier chain
 	 * to restore GIC and wakeupgen context.
 	 */
 	if (dev->cpu == 0 && mpuss_can_lose_context)
 		cpu_cluster_pm_exit();
 
-	tick_broadcast_exit();
+	/*
+	 * Call idle CPU PM exit notifier chain to restore
+	 * VFP and per CPU IRQ context.
+	 */
+	cpu_pm_exit();
+
+cpu_pm_out:
+	RCU_NONIDLE(tick_broadcast_exit());
 
 fail:
 	cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/display.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/display.c
@@ -211,6 +211,7 @@
 	node = of_find_node_by_name(NULL, "omap4_padconf_global");
 	if (node)
 		omap4_dsi_mux_syscon = syscon_node_to_regmap(node);
+	of_node_put(node);
 
 	return 0;
 }
@@ -259,10 +260,13 @@
 
 	if (!pdev) {
 		pr_err("Unable to find DSS platform device\n");
+		of_node_put(node);
 		return -ENODEV;
 	}
 
 	r = of_platform_populate(node, NULL, NULL, &pdev->dev);
+	put_device(&pdev->dev);
+	of_node_put(node);
 	if (r) {
 		pr_err("Unable to populate DSS submodule devices\n");
 		return r;
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/omap-iommu.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/omap-iommu.c
@@ -11,14 +11,43 @@
 
 #include "omap_hwmod.h"
 #include "omap_device.h"
+#include "clockdomain.h"
 #include "powerdomain.h"
 
+static void omap_iommu_dra7_emu_swsup_config(struct platform_device *pdev,
+					     bool enable)
+{
+	static struct clockdomain *emu_clkdm;
+	static DEFINE_SPINLOCK(emu_lock);
+	static atomic_t count;
+	struct device_node *np = pdev->dev.of_node;
+
+	if (!of_device_is_compatible(np, "ti,dra7-dsp-iommu"))
+		return;
+
+	if (!emu_clkdm) {
+		emu_clkdm = clkdm_lookup("emu_clkdm");
+		if (WARN_ON_ONCE(!emu_clkdm))
+			return;
+	}
+
+	spin_lock(&emu_lock);
+
+	if (enable && (atomic_inc_return(&count) == 1))
+		clkdm_deny_idle(emu_clkdm);
+	else if (!enable && (atomic_dec_return(&count) == 0))
+		clkdm_allow_idle(emu_clkdm);
+
+	spin_unlock(&emu_lock);
+}
+
 int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev, bool request,
 				    u8 *pwrst)
 {
 	struct powerdomain *pwrdm;
 	struct omap_device *od;
 	u8 next_pwrst;
+	int ret = 0;
 
 	od = to_omap_device(pdev);
 	if (!od)
@@ -31,13 +60,21 @@
 	if (!pwrdm)
 		return -EINVAL;
 
-	if (request)
+	if (request) {
 		*pwrst = pwrdm_read_next_pwrst(pwrdm);
+		omap_iommu_dra7_emu_swsup_config(pdev, true);
+	}
 
 	if (*pwrst > PWRDM_POWER_RET)
-		return 0;
+		goto out;
 
 	next_pwrst = request ? PWRDM_POWER_ON : *pwrst;
 
-	return pwrdm_set_next_pwrst(pwrdm, next_pwrst);
+	ret = pwrdm_set_next_pwrst(pwrdm, next_pwrst);
+
+out:
+	if (!request)
+		omap_iommu_dra7_emu_swsup_config(pdev, false);
+
+	return ret;
 }
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/omap4-common.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/omap4-common.c
@@ -314,10 +314,12 @@
 
 	np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-gic");
 	gic_dist_base_addr = of_iomap(np, 0);
+	of_node_put(np);
 	WARN_ON(!gic_dist_base_addr);
 
 	np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-twd-timer");
 	twd_base = of_iomap(np, 0);
+	of_node_put(np);
 	WARN_ON(!twd_base);
 
 skip_errata_init:
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/omap_device.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/omap_device.c
@@ -234,10 +234,12 @@
 		break;
 	case BUS_NOTIFY_BIND_DRIVER:
 		od = to_omap_device(pdev);
-		if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED) &&
-		    pm_runtime_status_suspended(dev)) {
+		if (od) {
 			od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
-			pm_runtime_set_active(dev);
+			if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
+			    pm_runtime_status_suspended(dev)) {
+				pm_runtime_set_active(dev);
+			}
 		}
 		break;
 	case BUS_NOTIFY_ADD_DEVICE:
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/omap_hwmod.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/omap_hwmod.c
@@ -782,8 +782,10 @@
 
 	for_each_matching_node(np, ti_clkctrl_match_table) {
 		ret = _setup_clkctrl_provider(np);
-		if (ret)
+		if (ret) {
+			of_node_put(np);
 			break;
+		}
 	}
 
 	return ret;
@@ -3535,7 +3537,7 @@
 };
 
 static const struct omap_hwmod_reset omap_reset_quirks[] = {
-	{ .match = "dss", .len = 3, .reset = omap_dss_reset, },
+	{ .match = "dss_core", .len = 8, .reset = omap_dss_reset, },
 	{ .match = "hdq1w", .len = 5, .reset = omap_hdq1w_reset, },
 	{ .match = "i2c", .len = 3, .reset = omap_i2c_reset, },
 	{ .match = "wd_timer", .len = 8, .reset = omap2_wd_timer_reset, },
@@ -3656,6 +3658,8 @@
 		oh->flags |= HWMOD_SWSUP_SIDLE_ACT;
 	if (data->cfg->quirks & SYSC_QUIRK_SWSUP_MSTANDBY)
 		oh->flags |= HWMOD_SWSUP_MSTANDBY;
+	if (data->cfg->quirks & SYSC_QUIRK_CLKDM_NOAUTO)
+		oh->flags |= HWMOD_CLKDM_NOAUTO;
 
 	error = omap_hwmod_check_module(dev, oh, data, sysc_fields,
 					rev_offs, sysc_offs, syss_offs,
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/pdata-quirks.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/pdata-quirks.c
@@ -7,7 +7,6 @@
 #include <linux/clk.h>
 #include <linux/davinci_emac.h>
 #include <linux/gpio.h>
-#include <linux/gpio/machine.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
@@ -45,6 +44,17 @@
 static struct of_dev_auxdata omap_auxdata_lookup[];
 static struct twl4030_gpio_platform_data twl_gpio_auxdata;
 
+#if IS_ENABLED(CONFIG_OMAP_IOMMU)
+int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev, bool request,
+				    u8 *pwrst);
+#else
+static inline int omap_iommu_set_pwrdm_constraint(struct platform_device *pdev,
+						  bool request, u8 *pwrst)
+{
+	return 0;
+}
+#endif
+
 #ifdef CONFIG_MACH_NOKIA_N8X0
 static void __init omap2420_n8x0_legacy_init(void)
 {
@@ -269,14 +279,6 @@
 	am35xx_emac_reset();
 }
 
-static struct platform_device omap3_rom_rng_device = {
-	.name		= "omap3-rom-rng",
-	.id		= -1,
-	.dev	= {
-		.platform_data	= rx51_secure_rng_call,
-	},
-};
-
 static void __init nokia_n900_legacy_init(void)
 {
 	hsmmc2_internal_input_clk();
@@ -292,9 +294,6 @@
 			pr_warn("RX-51: Not enabling ARM errata 430973 workaround\n");
 			pr_warn("Thumb binaries may crash randomly without this workaround\n");
 		}
-
-		pr_info("RX-51: Registering OMAP3 HWRNG device\n");
-		platform_device_register(&omap3_rom_rng_device);
 	}
 }
 
@@ -311,131 +310,18 @@
 }
 
 /* omap3pandora legacy devices */
-#define PANDORA_WIFI_IRQ_GPIO		21
-#define PANDORA_WIFI_NRESET_GPIO	23
 
 static struct platform_device pandora_backlight = {
 	.name	= "pandora-backlight",
 	.id	= -1,
 };
 
-static struct regulator_consumer_supply pandora_vmmc3_supply[] = {
-	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
-};
-
-static struct regulator_init_data pandora_vmmc3 = {
-	.constraints = {
-		.valid_ops_mask		= REGULATOR_CHANGE_STATUS,
-	},
-	.num_consumer_supplies	= ARRAY_SIZE(pandora_vmmc3_supply),
-	.consumer_supplies	= pandora_vmmc3_supply,
-};
-
-static struct fixed_voltage_config pandora_vwlan = {
-	.supply_name		= "vwlan",
-	.microvolts		= 1800000, /* 1.8V */
-	.startup_delay		= 50000, /* 50ms */
-	.init_data		= &pandora_vmmc3,
-};
-
-static struct platform_device pandora_vwlan_device = {
-	.name		= "reg-fixed-voltage",
-	.id		= 1,
-	.dev = {
-		.platform_data = &pandora_vwlan,
-	},
-};
-
-static struct gpiod_lookup_table pandora_vwlan_gpiod_table = {
-	.dev_id = "reg-fixed-voltage.1",
-	.table = {
-		/*
-		 * As this is a low GPIO number it should be at the first
-		 * GPIO bank.
-		 */
-		GPIO_LOOKUP("gpio-0-31", PANDORA_WIFI_NRESET_GPIO,
-			    NULL, GPIO_ACTIVE_HIGH),
-		{ },
-	},
-};
-
-static void pandora_wl1251_init_card(struct mmc_card *card)
-{
-	/*
-	 * We have TI wl1251 attached to MMC3. Pass this information to
-	 * SDIO core because it can't be probed by normal methods.
-	 */
-	if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) {
-		card->quirks |= MMC_QUIRK_NONSTD_SDIO;
-		card->cccr.wide_bus = 1;
-		card->cis.vendor = 0x104c;
-		card->cis.device = 0x9066;
-		card->cis.blksize = 512;
-		card->cis.max_dtr = 24000000;
-		card->ocr = 0x80;
-	}
-}
-
-static struct omap2_hsmmc_info pandora_mmc3[] = {
-	{
-		.mmc		= 3,
-		.caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
-		.init_card	= pandora_wl1251_init_card,
-	},
-	{}	/* Terminator */
-};
-
-static void __init pandora_wl1251_init(void)
-{
-	struct wl1251_platform_data pandora_wl1251_pdata;
-	int ret;
-
-	memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata));
-
-	pandora_wl1251_pdata.power_gpio = -1;
-
-	ret = gpio_request_one(PANDORA_WIFI_IRQ_GPIO, GPIOF_IN, "wl1251 irq");
-	if (ret < 0)
-		goto fail;
-
-	pandora_wl1251_pdata.irq = gpio_to_irq(PANDORA_WIFI_IRQ_GPIO);
-	if (pandora_wl1251_pdata.irq < 0)
-		goto fail_irq;
-
-	pandora_wl1251_pdata.use_eeprom = true;
-	ret = wl1251_set_platform_data(&pandora_wl1251_pdata);
-	if (ret < 0)
-		goto fail_irq;
-
-	return;
-
-fail_irq:
-	gpio_free(PANDORA_WIFI_IRQ_GPIO);
-fail:
-	pr_err("wl1251 board initialisation failed\n");
-}
-
 static void __init omap3_pandora_legacy_init(void)
 {
 	platform_device_register(&pandora_backlight);
-	gpiod_add_lookup_table(&pandora_vwlan_gpiod_table);
-	platform_device_register(&pandora_vwlan_device);
-	omap_hsmmc_init(pandora_mmc3);
-	omap_hsmmc_late_init(pandora_mmc3);
-	pandora_wl1251_init();
 }
 #endif /* CONFIG_ARCH_OMAP3 */
 
-#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
-static struct iommu_platform_data omap4_iommu_pdata = {
-	.reset_name = "mmu_cache",
-	.assert_reset = omap_device_assert_hardreset,
-	.deassert_reset = omap_device_deassert_hardreset,
-	.device_enable = omap_device_enable,
-	.device_idle = omap_device_idle,
-};
-#endif
-
 #if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
 static struct wkup_m3_platform_data wkup_m3_data = {
 	.reset_name = "wkup_m3",
@@ -451,6 +337,10 @@
 #endif
 
 #ifdef CONFIG_SOC_DRA7XX
+static struct iommu_platform_data dra7_ipu1_dsp_iommu_pdata = {
+	.set_pwrdm_constraint = omap_iommu_set_pwrdm_constraint,
+};
+
 static struct omap_hsmmc_platform_data dra7_hsmmc_data_mmc1;
 static struct omap_hsmmc_platform_data dra7_hsmmc_data_mmc2;
 static struct omap_hsmmc_platform_data dra7_hsmmc_data_mmc3;
@@ -472,10 +362,14 @@
 
 static struct clockdomain *ti_sysc_find_one_clockdomain(struct clk *clk)
 {
+	struct clk_hw *hw = __clk_get_hw(clk);
 	struct clockdomain *clkdm = NULL;
 	struct clk_hw_omap *hwclk;
 
-	hwclk = to_clk_hw_omap(__clk_get_hw(clk));
+	hwclk = to_clk_hw_omap(hw);
+	if (!omap2_clk_is_hw_omap(hw))
+		return NULL;
+
 	if (hwclk && hwclk->clkdm_name)
 		clkdm = clkdm_lookup(hwclk->clkdm_name);
 
@@ -638,6 +532,7 @@
 	OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
 	OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
 		       &am35xx_emac_pdata),
+	OF_DEV_AUXDATA("nokia,n900-rom-rng", 0, NULL, rx51_secure_rng_call),
 	/* McBSP modules with sidetone core */
 #if IS_ENABLED(CONFIG_SND_SOC_OMAP_MCBSP)
 	OF_DEV_AUXDATA("ti,omap3-mcbsp", 0x49022000, "49022000.mcbsp", &mcbsp_pdata),
@@ -653,10 +548,6 @@
 		       &wkup_m3_data),
 #endif
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
-	OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
-		       &omap4_iommu_pdata),
-	OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
-		       &omap4_iommu_pdata),
 	OF_DEV_AUXDATA("ti,omap4-smartreflex-iva", 0x4a0db000,
 		       "4a0db000.smartreflex", &omap_sr_pdata[OMAP_SR_IVA]),
 	OF_DEV_AUXDATA("ti,omap4-smartreflex-core", 0x4a0dd000,
@@ -671,6 +562,12 @@
 		       &dra7_hsmmc_data_mmc2),
 	OF_DEV_AUXDATA("ti,dra7-hsmmc", 0x480ad000, "480ad000.mmc",
 		       &dra7_hsmmc_data_mmc3),
+	OF_DEV_AUXDATA("ti,dra7-dsp-iommu", 0x40d01000, "40d01000.mmu",
+		       &dra7_ipu1_dsp_iommu_pdata),
+	OF_DEV_AUXDATA("ti,dra7-dsp-iommu", 0x41501000, "41501000.mmu",
+		       &dra7_ipu1_dsp_iommu_pdata),
+	OF_DEV_AUXDATA("ti,dra7-iommu", 0x58882000, "58882000.mmu",
+		       &dra7_ipu1_dsp_iommu_pdata),
 #endif
 	/* Common auxdata */
 	OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata),
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/pm34xx.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/pm34xx.c
@@ -194,6 +194,7 @@
 	int per_next_state = PWRDM_POWER_ON;
 	int core_next_state = PWRDM_POWER_ON;
 	u32 sdrc_pwr = 0;
+	int error;
 
 	mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm);
 	switch (mpu_next_state) {
@@ -222,8 +223,11 @@
 	pwrdm_pre_transition(NULL);
 
 	/* PER */
-	if (per_next_state == PWRDM_POWER_OFF)
-		cpu_cluster_pm_enter();
+	if (per_next_state == PWRDM_POWER_OFF) {
+		error = cpu_cluster_pm_enter();
+		if (error)
+			return;
+	}
 
 	/* CORE */
 	if (core_next_state < PWRDM_POWER_ON) {
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/powerdomain.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/powerdomain.c
@@ -174,7 +174,7 @@
 		break;
 	case PWRDM_STATE_PREV:
 		prev = pwrdm_read_prev_pwrst(pwrdm);
-		if (pwrdm->state != prev)
+		if (prev >= 0 && pwrdm->state != prev)
 			pwrdm->state_counter[prev]++;
 		if (prev == PWRDM_POWER_RET)
 			_update_logic_membank_counters(pwrdm);
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/prm3xxx.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/prm3xxx.c
@@ -708,6 +708,7 @@
 	}
 
 	irq_num = of_irq_get(np, 0);
+	of_node_put(np);
 	if (irq_num == -EPROBE_DEFER)
 		return irq_num;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/sleep34xx.S
+++ linux-ein-5.4.0/arch/arm/mach-omap2/sleep34xx.S
@@ -72,7 +72,7 @@
 	stmfd	sp!, {lr}	@ save registers on stack
 	/* Setup so that we will disable and enable l2 */
 	mov	r1, #0x1
-	adrl	r3, l2dis_3630_offset	@ may be too distant for plain adr
+	adr	r3, l2dis_3630_offset
 	ldr	r2, [r3]		@ value for offset
 	str	r1, [r2, r3]		@ write to l2dis_3630
 	ldmfd	sp!, {pc}	@ restore regs and return
--- linux-ein-5.4.0.orig/arch/arm/mach-omap2/timer.c
+++ linux-ein-5.4.0/arch/arm/mach-omap2/timer.c
@@ -42,6 +42,7 @@
 #include <linux/platform_device.h>
 #include <linux/platform_data/dmtimer-omap.h>
 #include <linux/sched_clock.h>
+#include <linux/cpu.h>
 
 #include <asm/mach/time.h>
 
@@ -63,15 +64,28 @@
 
 /* Clockevent code */
 
-static struct omap_dm_timer clkev;
-static struct clock_event_device clockevent_gpt;
-
 /* Clockevent hwmod for am335x and am437x suspend */
 static struct omap_hwmod *clockevent_gpt_hwmod;
 
 /* Clockesource hwmod for am437x suspend */
 static struct omap_hwmod *clocksource_gpt_hwmod;
 
+struct dmtimer_clockevent {
+	struct clock_event_device dev;
+	struct omap_dm_timer timer;
+};
+
+static struct dmtimer_clockevent clockevent;
+
+static struct omap_dm_timer *to_dmtimer(struct clock_event_device *clockevent)
+{
+	struct dmtimer_clockevent *clkevt =
+		container_of(clockevent, struct dmtimer_clockevent, dev);
+	struct omap_dm_timer *timer = &clkevt->timer;
+
+	return timer;
+}
+
 #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
 static unsigned long arch_timer_freq;
 
@@ -83,24 +97,21 @@
 
 static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
 {
-	struct clock_event_device *evt = &clockevent_gpt;
-
-	__omap_dm_timer_write_status(&clkev, OMAP_TIMER_INT_OVERFLOW);
+	struct dmtimer_clockevent *clkevt = dev_id;
+	struct clock_event_device *evt = &clkevt->dev;
+	struct omap_dm_timer *timer = &clkevt->timer;
 
+	__omap_dm_timer_write_status(timer, OMAP_TIMER_INT_OVERFLOW);
 	evt->event_handler(evt);
 	return IRQ_HANDLED;
 }
 
-static struct irqaction omap2_gp_timer_irq = {
-	.name		= "gp_timer",
-	.flags		= IRQF_TIMER | IRQF_IRQPOLL,
-	.handler	= omap2_gp_timer_interrupt,
-};
-
 static int omap2_gp_timer_set_next_event(unsigned long cycles,
 					 struct clock_event_device *evt)
 {
-	__omap_dm_timer_load_start(&clkev, OMAP_TIMER_CTRL_ST,
+	struct omap_dm_timer *timer = to_dmtimer(evt);
+
+	__omap_dm_timer_load_start(timer, OMAP_TIMER_CTRL_ST,
 				   0xffffffff - cycles, OMAP_TIMER_POSTED);
 
 	return 0;
@@ -108,22 +119,26 @@
 
 static int omap2_gp_timer_shutdown(struct clock_event_device *evt)
 {
-	__omap_dm_timer_stop(&clkev, OMAP_TIMER_POSTED, clkev.rate);
+	struct omap_dm_timer *timer = to_dmtimer(evt);
+
+	__omap_dm_timer_stop(timer, OMAP_TIMER_POSTED, timer->rate);
+
 	return 0;
 }
 
 static int omap2_gp_timer_set_periodic(struct clock_event_device *evt)
 {
+	struct omap_dm_timer *timer = to_dmtimer(evt);
 	u32 period;
 
-	__omap_dm_timer_stop(&clkev, OMAP_TIMER_POSTED, clkev.rate);
+	__omap_dm_timer_stop(timer, OMAP_TIMER_POSTED, timer->rate);
 
-	period = clkev.rate / HZ;
+	period = timer->rate / HZ;
 	period -= 1;
 	/* Looks like we need to first set the load value separately */
-	__omap_dm_timer_write(&clkev, OMAP_TIMER_LOAD_REG, 0xffffffff - period,
+	__omap_dm_timer_write(timer, OMAP_TIMER_LOAD_REG, 0xffffffff - period,
 			      OMAP_TIMER_POSTED);
-	__omap_dm_timer_load_start(&clkev,
+	__omap_dm_timer_load_start(timer,
 				   OMAP_TIMER_CTRL_AR | OMAP_TIMER_CTRL_ST,
 				   0xffffffff - period, OMAP_TIMER_POSTED);
 	return 0;
@@ -137,26 +152,17 @@
 	omap_hwmod_idle(clockevent_gpt_hwmod);
 }
 
-static void omap_clkevt_unidle(struct clock_event_device *unused)
+static void omap_clkevt_unidle(struct clock_event_device *evt)
 {
+	struct omap_dm_timer *timer = to_dmtimer(evt);
+
 	if (!clockevent_gpt_hwmod)
 		return;
 
 	omap_hwmod_enable(clockevent_gpt_hwmod);
-	__omap_dm_timer_int_enable(&clkev, OMAP_TIMER_INT_OVERFLOW);
+	__omap_dm_timer_int_enable(timer, OMAP_TIMER_INT_OVERFLOW);
 }
 
-static struct clock_event_device clockevent_gpt = {
-	.features		= CLOCK_EVT_FEAT_PERIODIC |
-				  CLOCK_EVT_FEAT_ONESHOT,
-	.rating			= 300,
-	.set_next_event		= omap2_gp_timer_set_next_event,
-	.set_state_shutdown	= omap2_gp_timer_shutdown,
-	.set_state_periodic	= omap2_gp_timer_set_periodic,
-	.set_state_oneshot	= omap2_gp_timer_shutdown,
-	.tick_resume		= omap2_gp_timer_shutdown,
-};
-
 static const struct of_device_id omap_timer_match[] __initconst = {
 	{ .compatible = "ti,omap2420-timer", },
 	{ .compatible = "ti,omap3430-timer", },
@@ -362,47 +368,104 @@
 }
 #endif
 
-static void __init omap2_gp_clockevent_init(int gptimer_id,
-						const char *fck_source,
-						const char *property)
+static void __init dmtimer_clkevt_init_common(struct dmtimer_clockevent *clkevt,
+					      int gptimer_id,
+					      const char *fck_source,
+					      unsigned int features,
+					      const struct cpumask *cpumask,
+					      const char *property,
+					      int rating, const char *name)
 {
+	struct omap_dm_timer *timer = &clkevt->timer;
 	int res;
 
-	clkev.id = gptimer_id;
-	clkev.errata = omap_dm_timer_get_errata();
+	timer->id = gptimer_id;
+	timer->errata = omap_dm_timer_get_errata();
+	clkevt->dev.features = features;
+	clkevt->dev.rating = rating;
+	clkevt->dev.set_next_event = omap2_gp_timer_set_next_event;
+	clkevt->dev.set_state_shutdown = omap2_gp_timer_shutdown;
+	clkevt->dev.set_state_periodic = omap2_gp_timer_set_periodic;
+	clkevt->dev.set_state_oneshot = omap2_gp_timer_shutdown;
+	clkevt->dev.tick_resume = omap2_gp_timer_shutdown;
 
 	/*
 	 * For clock-event timers we never read the timer counter and
 	 * so we are not impacted by errata i103 and i767. Therefore,
 	 * we can safely ignore this errata for clock-event timers.
 	 */
-	__omap_dm_timer_override_errata(&clkev, OMAP_TIMER_ERRATA_I103_I767);
+	__omap_dm_timer_override_errata(timer, OMAP_TIMER_ERRATA_I103_I767);
 
-	res = omap_dm_timer_init_one(&clkev, fck_source, property,
-				     &clockevent_gpt.name, OMAP_TIMER_POSTED);
+	res = omap_dm_timer_init_one(timer, fck_source, property,
+				     &clkevt->dev.name, OMAP_TIMER_POSTED);
 	BUG_ON(res);
 
-	omap2_gp_timer_irq.dev_id = &clkev;
-	setup_irq(clkev.irq, &omap2_gp_timer_irq);
+	clkevt->dev.cpumask = cpumask;
+	clkevt->dev.irq = omap_dm_timer_get_irq(timer);
 
-	__omap_dm_timer_int_enable(&clkev, OMAP_TIMER_INT_OVERFLOW);
+	if (request_irq(clkevt->dev.irq, omap2_gp_timer_interrupt,
+			IRQF_TIMER | IRQF_IRQPOLL, name, clkevt))
+		pr_err("Failed to request irq %d (gp_timer)\n", clkevt->dev.irq);
 
-	clockevent_gpt.cpumask = cpu_possible_mask;
-	clockevent_gpt.irq = omap_dm_timer_get_irq(&clkev);
-	clockevents_config_and_register(&clockevent_gpt, clkev.rate,
-					3, /* Timer internal resynch latency */
-					0xffffffff);
+	__omap_dm_timer_int_enable(timer, OMAP_TIMER_INT_OVERFLOW);
 
 	if (soc_is_am33xx() || soc_is_am43xx()) {
-		clockevent_gpt.suspend = omap_clkevt_idle;
-		clockevent_gpt.resume = omap_clkevt_unidle;
+		clkevt->dev.suspend = omap_clkevt_idle;
+		clkevt->dev.resume = omap_clkevt_unidle;
 
 		clockevent_gpt_hwmod =
-			omap_hwmod_lookup(clockevent_gpt.name);
+			omap_hwmod_lookup(clkevt->dev.name);
 	}
 
-	pr_info("OMAP clockevent source: %s at %lu Hz\n", clockevent_gpt.name,
-		clkev.rate);
+	pr_info("OMAP clockevent source: %s at %lu Hz\n", clkevt->dev.name,
+		timer->rate);
+}
+
+static DEFINE_PER_CPU(struct dmtimer_clockevent, dmtimer_percpu_timer);
+
+static int omap_gptimer_starting_cpu(unsigned int cpu)
+{
+	struct dmtimer_clockevent *clkevt = per_cpu_ptr(&dmtimer_percpu_timer, cpu);
+	struct clock_event_device *dev = &clkevt->dev;
+	struct omap_dm_timer *timer = &clkevt->timer;
+
+	clockevents_config_and_register(dev, timer->rate, 3, ULONG_MAX);
+	irq_force_affinity(dev->irq, cpumask_of(cpu));
+
+	return 0;
+}
+
+static int __init dmtimer_percpu_quirk_init(void)
+{
+	struct dmtimer_clockevent *clkevt;
+	struct clock_event_device *dev;
+	struct device_node *arm_timer;
+	struct omap_dm_timer *timer;
+	int cpu = 0;
+
+	arm_timer = of_find_compatible_node(NULL, NULL, "arm,armv7-timer");
+	if (of_device_is_available(arm_timer)) {
+		pr_warn_once("ARM architected timer wrap issue i940 detected\n");
+		return 0;
+	}
+
+	for_each_possible_cpu(cpu) {
+		clkevt = per_cpu_ptr(&dmtimer_percpu_timer, cpu);
+		dev = &clkevt->dev;
+		timer = &clkevt->timer;
+
+		dmtimer_clkevt_init_common(clkevt, 0, "timer_sys_ck",
+					   CLOCK_EVT_FEAT_ONESHOT,
+					   cpumask_of(cpu),
+					   "assigned-clock-parents",
+					   500, "percpu timer");
+	}
+
+	cpuhp_setup_state(CPUHP_AP_OMAP_DM_TIMER_STARTING,
+			  "clockevents/omap/gptimer:starting",
+			  omap_gptimer_starting_cpu, NULL);
+
+	return 0;
 }
 
 /* Clocksource code */
@@ -542,7 +605,15 @@
 {
 	omap_clk_init();
 	omap_dmtimer_init();
-	omap2_gp_clockevent_init(clkev_nr, clkev_src, clkev_prop);
+	dmtimer_clkevt_init_common(&clockevent, clkev_nr, clkev_src,
+				   CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
+				   cpu_possible_mask, clkev_prop, 300, "clockevent");
+	clockevents_config_and_register(&clockevent.dev, clockevent.timer.rate,
+					3, /* Timer internal resynch latency */
+					0xffffffff);
+
+	if (soc_is_dra7xx())
+		dmtimer_percpu_quirk_init();
 
 	/* Enable the use of clocksource="gp_timer" kernel parameter */
 	if (use_gptimer_clksrc || gptimer)
@@ -571,7 +642,7 @@
 #endif /* CONFIG_ARCH_OMAP3 */
 
 #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \
-	defined(CONFIG_SOC_AM43XX)
+	defined(CONFIG_SOC_AM43XX) || defined(CONFIG_SOC_DRA7XX)
 void __init omap3_gptimer_timer_init(void)
 {
 	__omap_sync32k_timer_init(2, "timer_sys_ck", NULL,
@@ -629,6 +700,7 @@
 	}
 
 	rate = clk_get_rate(sys_clk);
+	clk_put(sys_clk);
 
 	if (soc_is_dra7xx()) {
 		/*
--- linux-ein-5.4.0.orig/arch/arm/mach-orion5x/board-dt.c
+++ linux-ein-5.4.0/arch/arm/mach-orion5x/board-dt.c
@@ -63,6 +63,9 @@
 	if (of_machine_is_compatible("maxtor,shared-storage-2"))
 		mss2_init();
 
+	if (of_machine_is_compatible("lacie,d2-network"))
+		d2net_init();
+
 	of_platform_default_populate(NULL, orion5x_auxdata_lookup, NULL);
 }
 
--- linux-ein-5.4.0.orig/arch/arm/mach-orion5x/common.h
+++ linux-ein-5.4.0/arch/arm/mach-orion5x/common.h
@@ -75,6 +75,12 @@
 static inline void mss2_init(void) {}
 #endif
 
+#ifdef CONFIG_MACH_D2NET_DT
+void d2net_init(void);
+#else
+static inline void d2net_init(void) {}
+#endif
+
 /*****************************************************************************
  * Helpers to access Orion registers
  ****************************************************************************/
--- linux-ein-5.4.0.orig/arch/arm/mach-pxa/cm-x300.c
+++ linux-ein-5.4.0/arch/arm/mach-pxa/cm-x300.c
@@ -355,13 +355,13 @@
 static struct gpiod_lookup_table cm_x300_spi_gpiod_table = {
 	.dev_id         = "spi_gpio",
 	.table          = {
-		GPIO_LOOKUP("gpio-pxa", GPIO_LCD_SCL,
+		GPIO_LOOKUP("pca9555.1", GPIO_LCD_SCL - GPIO_LCD_BASE,
 			    "sck", GPIO_ACTIVE_HIGH),
-		GPIO_LOOKUP("gpio-pxa", GPIO_LCD_DIN,
+		GPIO_LOOKUP("pca9555.1", GPIO_LCD_DIN - GPIO_LCD_BASE,
 			    "mosi", GPIO_ACTIVE_HIGH),
-		GPIO_LOOKUP("gpio-pxa", GPIO_LCD_DOUT,
+		GPIO_LOOKUP("pca9555.1", GPIO_LCD_DOUT - GPIO_LCD_BASE,
 			    "miso", GPIO_ACTIVE_HIGH),
-		GPIO_LOOKUP("gpio-pxa", GPIO_LCD_CS,
+		GPIO_LOOKUP("pca9555.1", GPIO_LCD_CS - GPIO_LCD_BASE,
 			    "cs", GPIO_ACTIVE_HIGH),
 		{ },
 	},
--- linux-ein-5.4.0.orig/arch/arm/mach-pxa/magician.c
+++ linux-ein-5.4.0/arch/arm/mach-pxa/magician.c
@@ -675,7 +675,7 @@
 static struct gpiod_lookup_table bq24022_gpiod_table = {
 	.dev_id = "gpio-regulator",
 	.table = {
-		GPIO_LOOKUP("gpio-pxa", EGPIO_MAGICIAN_BQ24022_ISET2,
+		GPIO_LOOKUP("htc-egpio-0", EGPIO_MAGICIAN_BQ24022_ISET2 - MAGICIAN_EGPIO_BASE,
 			    NULL, GPIO_ACTIVE_HIGH),
 		GPIO_LOOKUP("gpio-pxa", GPIO30_MAGICIAN_BQ24022_nCHARGE_EN,
 			    "enable", GPIO_ACTIVE_LOW),
--- linux-ein-5.4.0.orig/arch/arm/mach-pxa/sharpsl_pm.c
+++ linux-ein-5.4.0/arch/arm/mach-pxa/sharpsl_pm.c
@@ -220,8 +220,6 @@
 {
 	schedule_delayed_work(&sharpsl_bat, msecs_to_jiffies(125));
 }
-EXPORT_SYMBOL(sharpsl_battery_kick);
-
 
 static void sharpsl_battery_thread(struct work_struct *private_)
 {
--- linux-ein-5.4.0.orig/arch/arm/mach-pxa/spitz.c
+++ linux-ein-5.4.0/arch/arm/mach-pxa/spitz.c
@@ -9,7 +9,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/module.h>	/* symbol_get ; symbol_put */
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 #include <linux/gpio_keys.h>
@@ -514,17 +513,6 @@
 	.gpio_cs		= SPITZ_GPIO_ADS7846_CS,
 };
 
-static void spitz_bl_kick_battery(void)
-{
-	void (*kick_batt)(void);
-
-	kick_batt = symbol_get(sharpsl_battery_kick);
-	if (kick_batt) {
-		kick_batt();
-		symbol_put(sharpsl_battery_kick);
-	}
-}
-
 static struct corgi_lcd_platform_data spitz_lcdcon_info = {
 	.init_mode		= CORGI_LCD_MODE_VGA,
 	.max_intensity		= 0x2f,
@@ -532,7 +520,7 @@
 	.limit_mask		= 0x0b,
 	.gpio_backlight_cont	= SPITZ_GPIO_BACKLIGHT_CONT,
 	.gpio_backlight_on	= SPITZ_GPIO_BACKLIGHT_ON,
-	.kick_battery		= spitz_bl_kick_battery,
+	.kick_battery		= sharpsl_battery_kick,
 };
 
 static struct pxa2xx_spi_chip spitz_lcdcon_chip = {
--- linux-ein-5.4.0.orig/arch/arm/mach-pxa/tosa.c
+++ linux-ein-5.4.0/arch/arm/mach-pxa/tosa.c
@@ -295,9 +295,9 @@
 	.table = {
 		GPIO_LOOKUP("gpio-pxa", TOSA_GPIO_nSD_DETECT,
 			    "cd", GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP("gpio-pxa", TOSA_GPIO_SD_WP,
+		GPIO_LOOKUP("sharp-scoop.0", TOSA_GPIO_SD_WP - TOSA_SCOOP_GPIO_BASE,
 			    "wp", GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP("gpio-pxa", TOSA_GPIO_PWR_ON,
+		GPIO_LOOKUP("sharp-scoop.0", TOSA_GPIO_PWR_ON - TOSA_SCOOP_GPIO_BASE,
 			    "power", GPIO_ACTIVE_HIGH),
 		{ },
 	},
--- linux-ein-5.4.0.orig/arch/arm/mach-s3c24xx/mach-at2440evb.c
+++ linux-ein-5.4.0/arch/arm/mach-s3c24xx/mach-at2440evb.c
@@ -143,7 +143,7 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPG(10) */
-		GPIO_LOOKUP("GPG", 10, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOG", 10, "cd", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-s3c24xx/mach-h1940.c
+++ linux-ein-5.4.0/arch/arm/mach-s3c24xx/mach-h1940.c
@@ -468,9 +468,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPF(5) */
-		GPIO_LOOKUP("GPF", 5, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOF", 5, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPH(8) */
-		GPIO_LOOKUP("GPH", 8, "wp", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOH", 8, "wp", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-s3c24xx/mach-jive.c
+++ linux-ein-5.4.0/arch/arm/mach-s3c24xx/mach-jive.c
@@ -237,11 +237,11 @@
 	unsigned long set;
 
 	if (options == NULL || options[0] == '\0')
-		return 0;
+		return 1;
 
 	if (kstrtoul(options, 10, &set)) {
 		printk(KERN_ERR "failed to parse mtdset=%s\n", options);
-		return 0;
+		return 1;
 	}
 
 	switch (set) {
@@ -256,7 +256,7 @@
 		       "using default.", set);
 	}
 
-	return 0;
+	return 1;
 }
 
 /* parse the mtdset= option given to the kernel command line */
--- linux-ein-5.4.0.orig/arch/arm/mach-s3c24xx/mach-mini2440.c
+++ linux-ein-5.4.0/arch/arm/mach-s3c24xx/mach-mini2440.c
@@ -244,9 +244,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPG(8) */
-		GPIO_LOOKUP("GPG", 8, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOG", 8, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPH(8) */
-		GPIO_LOOKUP("GPH", 8, "wp", GPIO_ACTIVE_HIGH),
+		GPIO_LOOKUP("GPIOH", 8, "wp", GPIO_ACTIVE_HIGH),
 		{ },
 	},
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-s3c24xx/mach-n30.c
+++ linux-ein-5.4.0/arch/arm/mach-s3c24xx/mach-n30.c
@@ -359,9 +359,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPF(1) */
-		GPIO_LOOKUP("GPF", 1, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOF", 1, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPG(10) */
-		GPIO_LOOKUP("GPG", 10, "wp", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOG", 10, "wp", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-s3c24xx/mach-rx1950.c
+++ linux-ein-5.4.0/arch/arm/mach-s3c24xx/mach-rx1950.c
@@ -567,9 +567,9 @@
 	.dev_id = "s3c2410-sdi",
 	.table = {
 		/* Card detect S3C2410_GPF(5) */
-		GPIO_LOOKUP("GPF", 5, "cd", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOF", 5, "cd", GPIO_ACTIVE_LOW),
 		/* Write protect S3C2410_GPH(8) */
-		GPIO_LOOKUP("GPH", 8, "wp", GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP("GPIOH", 8, "wp", GPIO_ACTIVE_LOW),
 		{ },
 	},
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-s5pv210/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-s5pv210/Kconfig
@@ -8,7 +8,6 @@
 config ARCH_S5PV210
 	bool "Samsung S5PV210/S5PC110"
 	depends on ARCH_MULTI_V7
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARM_VIC
 	select CLKSRC_SAMSUNG_PWM
 	select COMMON_CLK_SAMSUNG
--- linux-ein-5.4.0.orig/arch/arm/mach-sa1100/assabet.c
+++ linux-ein-5.4.0/arch/arm/mach-sa1100/assabet.c
@@ -653,7 +653,7 @@
  */
 static void __init get_assabet_scr(void)
 {
-	unsigned long uninitialized_var(scr), i;
+	unsigned long scr, i;
 
 	GPDR |= 0x3fc;			/* Configure GPIO 9:2 as outputs */
 	GPSR = 0x3fc;			/* Write 0xFF to GPIO 9:2 */
--- linux-ein-5.4.0.orig/arch/arm/mach-sa1100/jornada720_ssp.c
+++ linux-ein-5.4.0/arch/arm/mach-sa1100/jornada720_ssp.c
@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0-only
-/**
+/*
  *  arch/arm/mac-sa1100/jornada720_ssp.c
  *
  *  Copyright (C) 2006/2007 Kristoffer Ericson <Kristoffer.Ericson@gmail.com>
@@ -26,6 +26,7 @@
 
 /**
  * jornada_ssp_reverse - reverses input byte
+ * @byte: input byte to reverse
  *
  * we need to reverse all data we receive from the mcu due to its physical location
  * returns : 01110111 -> 11101110
@@ -46,6 +47,7 @@
 
 /**
  * jornada_ssp_byte - waits for ready ssp bus and sends byte
+ * @byte: input byte to transmit
  *
  * waits for fifo buffer to clear and then transmits, if it doesn't then we will
  * timeout after <timeout> rounds. Needs mcu running before its called.
@@ -77,6 +79,7 @@
 
 /**
  * jornada_ssp_inout - decide if input is command or trading byte
+ * @byte: input byte to send (may be %TXDUMMY)
  *
  * returns : (jornada_ssp_byte(byte)) on success
  *         : %-ETIMEDOUT on timeout failure
--- linux-ein-5.4.0.orig/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ linux-ein-5.4.0/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -125,6 +125,7 @@
 
 	list_for_each_entry_safe(pos, tmp, &quirk_list, list) {
 		list_del(&pos->list);
+		of_node_put(pos->np);
 		kfree(pos);
 	}
 
@@ -154,8 +155,10 @@
 		return -ENODEV;
 
 	for_each_matching_node_and_match(np, rcar_gen2_quirk_match, &id) {
-		if (!of_device_is_available(np))
+		if (!of_device_is_available(np)) {
+			of_node_put(np);
 			break;
+		}
 
 		ret = of_property_read_u32(np, "reg", &addr);
 		if (ret)	/* Skip invalid entry and continue */
@@ -164,6 +167,7 @@
 		quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
 		if (!quirk) {
 			ret = -ENOMEM;
+			of_node_put(np);
 			goto err_mem;
 		}
 
@@ -171,11 +175,12 @@
 		memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg));
 
 		quirk->id = id;
-		quirk->np = np;
+		quirk->np = of_node_get(np);
 		quirk->i2c_msg.addr = addr;
 
 		ret = of_irq_parse_one(np, 0, argsa);
 		if (ret) {	/* Skip invalid entry and continue */
+			of_node_put(np);
 			kfree(quirk);
 			continue;
 		}
@@ -222,6 +227,7 @@
 err_mem:
 	list_for_each_entry_safe(pos, tmp, &quirk_list, list) {
 		list_del(&pos->list);
+		of_node_put(pos->np);
 		kfree(pos);
 	}
 
--- linux-ein-5.4.0.orig/arch/arm/mach-socfpga/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-socfpga/Kconfig
@@ -2,6 +2,7 @@
 menuconfig ARCH_SOCFPGA
 	bool "Altera SOCFPGA family"
 	depends on ARCH_MULTI_V7
+	select ARCH_HAS_RESET_CONTROLLER
 	select ARCH_SUPPORTS_BIG_ENDIAN
 	select ARM_AMBA
 	select ARM_GIC
@@ -19,6 +20,7 @@
 	select PL310_ERRATA_727915
 	select PL310_ERRATA_753970 if PL310
 	select PL310_ERRATA_769419
+	select RESET_CONTROLLER
 
 if ARCH_SOCFPGA
 config SOCFPGA_SUSPEND
--- linux-ein-5.4.0.orig/arch/arm/mach-socfpga/core.h
+++ linux-ein-5.4.0/arch/arm/mach-socfpga/core.h
@@ -33,7 +33,7 @@
 u32 socfpga_sdram_self_refresh(u32 sdr_base);
 extern unsigned int socfpga_sdram_self_refresh_sz;
 
-extern char secondary_trampoline, secondary_trampoline_end;
+extern char secondary_trampoline[], secondary_trampoline_end[];
 
 extern unsigned long socfpga_cpu1start_addr;
 
--- linux-ein-5.4.0.orig/arch/arm/mach-socfpga/platsmp.c
+++ linux-ein-5.4.0/arch/arm/mach-socfpga/platsmp.c
@@ -20,14 +20,14 @@
 
 static int socfpga_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
-	int trampoline_size = &secondary_trampoline_end - &secondary_trampoline;
+	int trampoline_size = secondary_trampoline_end - secondary_trampoline;
 
 	if (socfpga_cpu1start_addr) {
 		/* This will put CPU #1 into reset. */
 		writel(RSTMGR_MPUMODRST_CPU1,
 		       rst_manager_base_addr + SOCFPGA_RSTMGR_MODMPURST);
 
-		memcpy(phys_to_virt(0), &secondary_trampoline, trampoline_size);
+		memcpy(phys_to_virt(0), secondary_trampoline, trampoline_size);
 
 		writel(__pa_symbol(secondary_startup),
 		       sys_manager_base_addr + (socfpga_cpu1start_addr & 0x000000ff));
@@ -45,12 +45,12 @@
 
 static int socfpga_a10_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
-	int trampoline_size = &secondary_trampoline_end - &secondary_trampoline;
+	int trampoline_size = secondary_trampoline_end - secondary_trampoline;
 
 	if (socfpga_cpu1start_addr) {
 		writel(RSTMGR_MPUMODRST_CPU1, rst_manager_base_addr +
 		       SOCFPGA_A10_RSTMGR_MODMPURST);
-		memcpy(phys_to_virt(0), &secondary_trampoline, trampoline_size);
+		memcpy(phys_to_virt(0), secondary_trampoline, trampoline_size);
 
 		writel(__pa_symbol(secondary_startup),
 		       sys_manager_base_addr + (socfpga_cpu1start_addr & 0x00000fff));
--- linux-ein-5.4.0.orig/arch/arm/mach-socfpga/pm.c
+++ linux-ein-5.4.0/arch/arm/mach-socfpga/pm.c
@@ -49,14 +49,14 @@
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, socfpga_sdram_self_refresh_sz);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -67,7 +67,7 @@
 	if (!suspend_ocram_base) {
 		pr_warn("%s: __arm_ioremap_exec failed!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	/* Copy the code that puts DDR in self refresh to ocram */
@@ -81,6 +81,8 @@
 	if (!socfpga_sdram_self_refresh_in_ocram)
 		ret = -EFAULT;
 
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(np);
 
--- linux-ein-5.4.0.orig/arch/arm/mach-sunxi/sunxi.c
+++ linux-ein-5.4.0/arch/arm/mach-sunxi/sunxi.c
@@ -66,6 +66,7 @@
 	"allwinner,sun8i-h2-plus",
 	"allwinner,sun8i-h3",
 	"allwinner,sun8i-r40",
+	"allwinner,sun8i-v3",
 	"allwinner,sun8i-v3s",
 	NULL,
 };
--- linux-ein-5.4.0.orig/arch/arm/mach-tango/Kconfig
+++ linux-ein-5.4.0/arch/arm/mach-tango/Kconfig
@@ -3,7 +3,6 @@
 	bool "Sigma Designs Tango4 (SMP87xx)"
 	depends on ARCH_MULTI_V7
 	# Cortex-A9 MPCore r3p0, PL310 r3p2
-	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARM_ERRATA_754322
 	select ARM_ERRATA_764369 if SMP
 	select ARM_ERRATA_775420
--- linux-ein-5.4.0.orig/arch/arm/mach-tegra/cpuidle-tegra20.c
+++ linux-ein-5.4.0/arch/arm/mach-tegra/cpuidle-tegra20.c
@@ -203,7 +203,7 @@
 {
 	pr_info_once(
 		"Disabling cpuidle LP2 state, since PCIe IRQs are in use\n");
-	tegra_idle_driver.states[1].disabled = true;
+	cpuidle_driver_state_disabled(&tegra_idle_driver, 1, true);
 }
 
 int __init tegra20_cpuidle_init(void)
--- linux-ein-5.4.0.orig/arch/arm/mach-tegra/reset-handler.S
+++ linux-ein-5.4.0/arch/arm/mach-tegra/reset-handler.S
@@ -44,16 +44,16 @@
 	cmp	r6, #TEGRA20
 	beq	1f				@ Yes
 	/* Clear the flow controller flags for this CPU. */
-	cpu_to_csr_reg r1, r0
+	cpu_to_csr_reg r3, r0
 	mov32	r2, TEGRA_FLOW_CTRL_BASE
-	ldr	r1, [r2, r1]
+	ldr	r1, [r2, r3]
 	/* Clear event & intr flag */
 	orr	r1, r1, \
 		#FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG
 	movw	r0, #0x3FFD	@ enable, cluster_switch, immed, bitmaps
 				@ & ext flags for CPU power mgnt
 	bic	r1, r1, r0
-	str	r1, [r2]
+	str	r1, [r2, r3]
 1:
 
 	mov32	r9, 0xc09
--- linux-ein-5.4.0.orig/arch/arm/mach-tegra/sleep-tegra30.S
+++ linux-ein-5.4.0/arch/arm/mach-tegra/sleep-tegra30.S
@@ -370,6 +370,14 @@
 	pll_locked r1, r0, CLK_RESET_PLLC_BASE
 	pll_locked r1, r0, CLK_RESET_PLLX_BASE
 
+	tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
+	cmp	r1, #TEGRA30
+	beq	1f
+	ldr	r1, [r0, #CLK_RESET_PLLP_BASE]
+	bic	r1, r1, #(1<<31)	@ disable PllP bypass
+	str	r1, [r0, #CLK_RESET_PLLP_BASE]
+1:
+
 	mov32	r7, TEGRA_TMRUS_BASE
 	ldr	r1, [r7]
 	add	r1, r1, #LOCK_DELAY
@@ -630,7 +638,10 @@
 	str	r0, [r4, #PMC_PLLP_WB0_OVERRIDE]
 
 	/* disable PLLP, PLLA, PLLC and PLLX */
+	tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
+	cmp	r1, #TEGRA30
 	ldr	r0, [r5, #CLK_RESET_PLLP_BASE]
+	orrne	r0, r0, #(1 << 31)	@ enable PllP bypass on fast cluster
 	bic	r0, r0, #(1 << 30)
 	str	r0, [r5, #CLK_RESET_PLLP_BASE]
 	ldr	r0, [r5, #CLK_RESET_PLLA_BASE]
--- linux-ein-5.4.0.orig/arch/arm/mach-tegra/tegra.c
+++ linux-ein-5.4.0/arch/arm/mach-tegra/tegra.c
@@ -106,8 +106,8 @@
 };
 
 DT_MACHINE_START(TEGRA_DT, "NVIDIA Tegra SoC (Flattened Device Tree)")
-	.l2c_aux_val	= 0x3c400001,
-	.l2c_aux_mask	= 0xc20fc3fe,
+	.l2c_aux_val	= 0x3c400000,
+	.l2c_aux_mask	= 0xc20fc3ff,
 	.smp		= smp_ops(tegra_smp_ops),
 	.map_io		= tegra_map_common_io,
 	.init_early	= tegra_init_early,
--- linux-ein-5.4.0.orig/arch/arm/mach-vexpress/dcscb.c
+++ linux-ein-5.4.0/arch/arm/mach-vexpress/dcscb.c
@@ -143,6 +143,7 @@
 	if (!node)
 		return -ENODEV;
 	dcscb_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!dcscb_base)
 		return -EADDRNOTAVAIL;
 	cfg = readl_relaxed(dcscb_base + DCS_CFG_R);
--- linux-ein-5.4.0.orig/arch/arm/mach-vexpress/spc.c
+++ linux-ein-5.4.0/arch/arm/mach-vexpress/spc.c
@@ -551,8 +551,9 @@
 
 static int __init ve_spc_clk_init(void)
 {
-	int cpu;
+	int cpu, cluster;
 	struct clk *clk;
+	bool init_opp_table[MAX_CLUSTERS] = { false };
 
 	if (!info)
 		return 0; /* Continue only if SPC is initialised */
@@ -578,8 +579,17 @@
 			continue;
 		}
 
+		cluster = topology_physical_package_id(cpu_dev->id);
+		if (cluster < 0 || init_opp_table[cluster])
+			continue;
+
 		if (ve_init_opp_table(cpu_dev))
 			pr_warn("failed to initialise cpu%d opp table\n", cpu);
+		else if (dev_pm_opp_set_sharing_cpus(cpu_dev,
+			 topology_core_cpumask(cpu_dev->id)))
+			pr_warn("failed to mark OPPs shared for cpu%d\n", cpu);
+		else
+			init_opp_table[cluster] = true;
 	}
 
 	platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
--- linux-ein-5.4.0.orig/arch/arm/mach-zynq/common.c
+++ linux-ein-5.4.0/arch/arm/mach-zynq/common.c
@@ -77,6 +77,7 @@
 	}
 
 	zynq_devcfg_base = of_iomap(np, 0);
+	of_node_put(np);
 	if (!zynq_devcfg_base) {
 		pr_err("%s: Unable to map I/O memory\n", __func__);
 		return -1;
--- linux-ein-5.4.0.orig/arch/arm/mach-zynq/slcr.c
+++ linux-ein-5.4.0/arch/arm/mach-zynq/slcr.c
@@ -213,6 +213,7 @@
 	zynq_slcr_regmap = syscon_regmap_lookup_by_compatible("xlnx,zynq-slcr");
 	if (IS_ERR(zynq_slcr_regmap)) {
 		pr_err("%s: failed to find zynq-slcr\n", __func__);
+		of_node_put(np);
 		return -ENODEV;
 	}
 
--- linux-ein-5.4.0.orig/arch/arm/mm/Kconfig
+++ linux-ein-5.4.0/arch/arm/mm/Kconfig
@@ -743,6 +743,7 @@
 config CPU_BIG_ENDIAN
 	bool "Build big-endian kernel"
 	depends on ARCH_SUPPORTS_BIG_ENDIAN
+	depends on !LD_IS_LLD
 	help
 	  Say Y if you plan on running a kernel in big-endian mode.
 	  Note that your board must be properly built and your board
@@ -752,7 +753,7 @@
 config CPU_ENDIAN_BE8
 	bool
 	depends on CPU_BIG_ENDIAN
-	default CPU_V6 || CPU_V6K || CPU_V7
+	default CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M
 	help
 	  Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors.
 
@@ -832,6 +833,7 @@
 
 config CPU_SPECTRE
 	bool
+	select GENERIC_CPU_VULNERABILITIES
 
 config HARDEN_BRANCH_PREDICTOR
 	bool "Harden the branch predictor against aliasing attacks" if EXPERT
@@ -852,6 +854,16 @@
 
 	   If unsure, say Y.
 
+config HARDEN_BRANCH_HISTORY
+	bool "Harden Spectre style attacks against branch history" if EXPERT
+	depends on CPU_SPECTRE
+	default y
+	help
+	  Speculation attacks against some high-performance processors can
+	  make use of branch history to influence future speculation. When
+	  taking an exception, a sequence of branches overwrites the branch
+	  history, or branch history is invalidated.
+
 config TLS_REG_EMUL
 	bool
 	select NEED_KUSER_HELPERS
--- linux-ein-5.4.0.orig/arch/arm/mm/alignment.c
+++ linux-ein-5.4.0/arch/arm/mm/alignment.c
@@ -799,7 +799,7 @@
 static int
 do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
-	union offset_union uninitialized_var(offset);
+	union offset_union offset;
 	unsigned long instrptr;
 	int (*handler)(unsigned long addr, u32 instr, struct pt_regs *regs);
 	unsigned int type;
@@ -935,6 +935,9 @@
 	if (type == TYPE_LDST)
 		do_alignment_finish_ldst(addr, instr, regs, offset);
 
+	if (thumb_mode(regs))
+		regs->ARM_cpsr = it_advance(regs->ARM_cpsr);
+
 	return 0;
 
  bad_or_fault:
--- linux-ein-5.4.0.orig/arch/arm/mm/cache-l2x0.c
+++ linux-ein-5.4.0/arch/arm/mm/cache-l2x0.c
@@ -867,6 +867,11 @@
 		l2x0_saved_regs.aux_ctrl = aux;
 
 		data->enable(l2x0_base, data->num_lock);
+	} else {
+		pr_info("%s cache controller enabled try to unlock\n",
+			data->type);
+
+		data->unlock(l2x0_base, data->num_lock);
 	}
 
 	outer_cache = fns;
@@ -1249,20 +1254,28 @@
 
 	ret = of_property_read_u32(np, "prefetch-data", &val);
 	if (ret == 0) {
-		if (val)
+		if (val) {
 			prefetch |= L310_PREFETCH_CTRL_DATA_PREFETCH;
-		else
+			*aux_val |= L310_PREFETCH_CTRL_DATA_PREFETCH;
+		} else {
 			prefetch &= ~L310_PREFETCH_CTRL_DATA_PREFETCH;
+			*aux_val &= ~L310_PREFETCH_CTRL_DATA_PREFETCH;
+		}
+		*aux_mask &= ~L310_PREFETCH_CTRL_DATA_PREFETCH;
 	} else if (ret != -EINVAL) {
 		pr_err("L2C-310 OF prefetch-data property value is missing\n");
 	}
 
 	ret = of_property_read_u32(np, "prefetch-instr", &val);
 	if (ret == 0) {
-		if (val)
+		if (val) {
 			prefetch |= L310_PREFETCH_CTRL_INSTR_PREFETCH;
-		else
+			*aux_val |= L310_PREFETCH_CTRL_INSTR_PREFETCH;
+		} else {
 			prefetch &= ~L310_PREFETCH_CTRL_INSTR_PREFETCH;
+			*aux_val &= ~L310_PREFETCH_CTRL_INSTR_PREFETCH;
+		}
+		*aux_mask &= ~L310_PREFETCH_CTRL_INSTR_PREFETCH;
 	} else if (ret != -EINVAL) {
 		pr_err("L2C-310 OF prefetch-instr property value is missing\n");
 	}
--- linux-ein-5.4.0.orig/arch/arm/mm/dma-mapping-nommu.c
+++ linux-ein-5.4.0/arch/arm/mm/dma-mapping-nommu.c
@@ -35,7 +35,7 @@
 				 unsigned long attrs)
 
 {
-	void *ret = dma_alloc_from_global_coherent(size, dma_handle);
+	void *ret = dma_alloc_from_global_coherent(dev, size, dma_handle);
 
 	/*
 	 * dma_alloc_from_global_coherent() may fail because:
--- linux-ein-5.4.0.orig/arch/arm/mm/dma-mapping.c
+++ linux-ein-5.4.0/arch/arm/mm/dma-mapping.c
@@ -221,7 +221,7 @@
 
 static int __dma_supported(struct device *dev, u64 mask, bool warn)
 {
-	unsigned long max_dma_pfn = min(max_pfn, arm_dma_pfn_limit);
+	unsigned long max_dma_pfn = min(max_pfn - 1, arm_dma_pfn_limit);
 
 	/*
 	 * Translate the device's DMA mask to a PFN limit.  This
@@ -2332,15 +2332,15 @@
 }
 
 #ifdef CONFIG_SWIOTLB
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	__dma_page_cpu_to_dev(phys_to_page(paddr), paddr & (PAGE_SIZE - 1),
 			      size, dir);
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	__dma_page_dev_to_cpu(phys_to_page(paddr), paddr & (PAGE_SIZE - 1),
 			      size, dir);
--- linux-ein-5.4.0.orig/arch/arm/mm/fault.c
+++ linux-ein-5.4.0/arch/arm/mm/fault.c
@@ -124,7 +124,7 @@
 	show_pte(KERN_ALERT, mm, addr);
 	die("Oops", regs, fsr);
 	bust_spinlocks(0);
-	do_exit(SIGKILL);
+	make_task_dead(SIGKILL);
 }
 
 /*
--- linux-ein-5.4.0.orig/arch/arm/mm/init.c
+++ linux-ein-5.4.0/arch/arm/mm/init.c
@@ -176,11 +176,22 @@
 int pfn_valid(unsigned long pfn)
 {
 	phys_addr_t addr = __pfn_to_phys(pfn);
+	unsigned long pageblock_size = PAGE_SIZE * pageblock_nr_pages;
 
 	if (__phys_to_pfn(addr) != pfn)
 		return 0;
 
-	return memblock_is_map_memory(__pfn_to_phys(pfn));
+	/*
+	 * If address less than pageblock_size bytes away from a present
+	 * memory chunk there still will be a memory map entry for it
+	 * because we round freed memory map to the pageblock boundaries.
+	 */
+	if (memblock_overlaps_region(&memblock.memory,
+				     ALIGN_DOWN(addr, pageblock_size),
+				     pageblock_size))
+		return 1;
+
+	return 0;
 }
 EXPORT_SYMBOL(pfn_valid);
 #endif
@@ -274,7 +285,6 @@
 	if (mdesc->reserve)
 		mdesc->reserve();
 
-	early_init_fdt_reserve_self();
 	early_init_fdt_scan_reserved_mem();
 
 	/* reserve memory for DMA contiguous allocations */
@@ -323,7 +333,7 @@
 		*p++ = 0xe7fddef0;
 }
 
-static inline void
+static inline void __init
 free_memmap(unsigned long start_pfn, unsigned long end_pfn)
 {
 	struct page *start_pg, *end_pg;
@@ -372,14 +382,14 @@
 		 */
 		start = min(start,
 				 ALIGN(prev_end, PAGES_PER_SECTION));
-#else
+#endif
 		/*
-		 * Align down here since the VM subsystem insists that the
-		 * memmap entries are valid from the bank start aligned to
-		 * MAX_ORDER_NR_PAGES.
+		 * Align down here since many operations in VM subsystem
+		 * presume that there are no holes in the memory map inside
+		 * a pageblock
 		 */
-		start = round_down(start, MAX_ORDER_NR_PAGES);
-#endif
+		start = round_down(start, pageblock_nr_pages);
+
 		/*
 		 * If we had a previous bank, and there is a space
 		 * between the current bank and the previous, free it.
@@ -388,18 +398,20 @@
 			free_memmap(prev_end, start);
 
 		/*
-		 * Align up here since the VM subsystem insists that the
-		 * memmap entries are valid from the bank end aligned to
-		 * MAX_ORDER_NR_PAGES.
+		 * Align up here since many operations in VM subsystem
+		 * presume that there are no holes in the memory map inside
+		 * a pageblock
 		 */
 		prev_end = ALIGN(memblock_region_memory_end_pfn(reg),
-				 MAX_ORDER_NR_PAGES);
+				 pageblock_nr_pages);
 	}
 
 #ifdef CONFIG_SPARSEMEM
-	if (!IS_ALIGNED(prev_end, PAGES_PER_SECTION))
+	if (!IS_ALIGNED(prev_end, PAGES_PER_SECTION)) {
+		prev_end = ALIGN(prev_end, pageblock_nr_pages);
 		free_memmap(prev_end,
 			    ALIGN(prev_end, PAGES_PER_SECTION));
+	}
 #endif
 }
 
@@ -470,7 +482,11 @@
 void __init mem_init(void)
 {
 #ifdef CONFIG_ARM_LPAE
-	swiotlb_init(1);
+	if (swiotlb_force == SWIOTLB_FORCE ||
+	    max_pfn > arm_dma_pfn_limit)
+		swiotlb_init(1);
+	else
+		swiotlb_force = SWIOTLB_NO_FORCE;
 #endif
 
 	set_max_mapnr(pfn_to_page(max_pfn) - mem_map);
--- linux-ein-5.4.0.orig/arch/arm/mm/ioremap.c
+++ linux-ein-5.4.0/arch/arm/mm/ioremap.c
@@ -27,6 +27,7 @@
 #include <linux/vmalloc.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
+#include <linux/memblock.h>
 
 #include <asm/cp15.h>
 #include <asm/cputype.h>
@@ -35,6 +36,7 @@
 #include <asm/mmu_context.h>
 #include <asm/pgalloc.h>
 #include <asm/tlbflush.h>
+#include <asm/set_memory.h>
 #include <asm/system_info.h>
 
 #include <asm/mach/map.h>
@@ -301,7 +303,8 @@
 	 * Don't allow RAM to be mapped with mismatched attributes - this
 	 * causes problems with ARMv6+
 	 */
-	if (WARN_ON(pfn_valid(pfn) && mtype != MT_MEMORY_RW))
+	if (WARN_ON(memblock_is_map_memory(PFN_PHYS(pfn)) &&
+		    mtype != MT_MEMORY_RW))
 		return NULL;
 
 	area = get_vm_area_caller(size, VM_IOREMAP, caller);
@@ -420,6 +423,11 @@
 			__builtin_return_address(0));
 }
 
+void __arm_iomem_set_ro(void __iomem *ptr, size_t size)
+{
+	set_memory_ro((unsigned long)ptr, PAGE_ALIGN(size) / PAGE_SIZE);
+}
+
 void *arch_memremap_wb(phys_addr_t phys_addr, size_t size)
 {
 	return (__force void *)arch_ioremap_caller(phys_addr, size,
@@ -498,3 +506,11 @@
 {
 	early_ioremap_setup();
 }
+
+bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size,
+				 unsigned long flags)
+{
+	unsigned long pfn = PHYS_PFN(offset);
+
+	return memblock_is_map_memory(pfn);
+}
--- linux-ein-5.4.0.orig/arch/arm/mm/mmu.c
+++ linux-ein-5.4.0/arch/arm/mm/mmu.c
@@ -39,6 +39,8 @@
 #include "mm.h"
 #include "tcm.h"
 
+extern unsigned long __atags_pointer;
+
 /*
  * empty_zero_page is a special page that is used for
  * zero-initialized data and COW.
@@ -227,12 +229,14 @@
 static int __init early_cachepolicy(char *p)
 {
 	pr_warn("cachepolicy kernel parameter not supported without cp15\n");
+	return 0;
 }
 early_param("cachepolicy", early_cachepolicy);
 
 static int __init noalign_setup(char *__unused)
 {
 	pr_warn("noalign kernel parameter not supported without cp15\n");
+	return 1;
 }
 __setup("noalign", noalign_setup);
 
@@ -312,6 +316,17 @@
 		.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
 		.domain    = DOMAIN_KERNEL,
 	},
+	[MT_MEMORY_RO] = {
+		.prot_pte  = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
+			     L_PTE_XN | L_PTE_RDONLY,
+		.prot_l1   = PMD_TYPE_TABLE,
+#ifdef CONFIG_ARM_LPAE
+		.prot_sect = PMD_TYPE_SECT | L_PMD_SECT_RDONLY | PMD_SECT_AP2,
+#else
+		.prot_sect = PMD_TYPE_SECT,
+#endif
+		.domain    = DOMAIN_KERNEL,
+	},
 	[MT_ROM] = {
 		.prot_sect = PMD_TYPE_SECT,
 		.domain    = DOMAIN_KERNEL,
@@ -413,9 +428,9 @@
 		     FIXADDR_END);
 	BUG_ON(idx >= __end_of_fixed_addresses);
 
-	/* we only support device mappings until pgprot_kernel has been set */
+	/* We support only device mappings before pgprot_kernel is set. */
 	if (WARN_ON(pgprot_val(prot) != pgprot_val(FIXMAP_PAGE_IO) &&
-		    pgprot_val(pgprot_kernel) == 0))
+		    pgprot_val(prot) && pgprot_val(pgprot_kernel) == 0))
 		return;
 
 	if (pgprot_val(prot))
@@ -511,6 +526,7 @@
 
 			/* Also setup NX memory mapping */
 			mem_types[MT_MEMORY_RW].prot_sect |= PMD_SECT_XN;
+			mem_types[MT_MEMORY_RO].prot_sect |= PMD_SECT_XN;
 		}
 		if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
 			/*
@@ -593,6 +609,7 @@
 		mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
 		mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
 		mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
+		mem_types[MT_MEMORY_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
 #endif
 
 		/*
@@ -613,6 +630,8 @@
 			mem_types[MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
 			mem_types[MT_MEMORY_RW].prot_sect |= PMD_SECT_S;
 			mem_types[MT_MEMORY_RW].prot_pte |= L_PTE_SHARED;
+			mem_types[MT_MEMORY_RO].prot_sect |= PMD_SECT_S;
+			mem_types[MT_MEMORY_RO].prot_pte |= L_PTE_SHARED;
 			mem_types[MT_MEMORY_DMA_READY].prot_pte |= L_PTE_SHARED;
 			mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_S;
 			mem_types[MT_MEMORY_RWX_NONCACHED].prot_pte |= L_PTE_SHARED;
@@ -676,6 +695,8 @@
 	mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
 	mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
 	mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
+	mem_types[MT_MEMORY_RO].prot_sect |= ecc_mask | cp->pmd;
+	mem_types[MT_MEMORY_RO].prot_pte |= kern_pgprot;
 	mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
 	mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
 	mem_types[MT_ROM].prot_sect |= cp->pmd;
@@ -962,7 +983,7 @@
 		return;
 	}
 
-	if ((md->type == MT_DEVICE || md->type == MT_ROM) &&
+	if (md->type == MT_DEVICE &&
 	    md->virtual >= PAGE_OFFSET && md->virtual < FIXADDR_START &&
 	    (md->virtual < VMALLOC_START || md->virtual >= VMALLOC_END)) {
 		pr_warn("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n",
@@ -1352,6 +1373,15 @@
 	for (addr = VMALLOC_START; addr < (FIXADDR_TOP & PMD_MASK); addr += PMD_SIZE)
 		pmd_clear(pmd_off_k(addr));
 
+	if (__atags_pointer) {
+		/* create a read-only mapping of the device tree */
+		map.pfn = __phys_to_pfn(__atags_pointer & SECTION_MASK);
+		map.virtual = FDT_FIXED_BASE;
+		map.length = FDT_FIXED_SIZE;
+		map.type = MT_MEMORY_RO;
+		create_mapping(&map);
+	}
+
 	/*
 	 * Map the kernel if it is XIP.
 	 * It is always first in the modulearea.
@@ -1512,8 +1542,7 @@
 }
 
 #ifdef CONFIG_ARM_PV_FIXUP
-extern unsigned long __atags_pointer;
-typedef void pgtables_remap(long long offset, unsigned long pgd, void *bdata);
+typedef void pgtables_remap(long long offset, unsigned long pgd);
 pgtables_remap lpae_pgtables_remap_asm;
 
 /*
@@ -1526,7 +1555,6 @@
 	unsigned long pa_pgd;
 	unsigned int cr, ttbcr;
 	long long offset;
-	void *boot_data;
 
 	if (!mdesc->pv_fixup)
 		return;
@@ -1543,7 +1571,6 @@
 	 */
 	lpae_pgtables_remap = (pgtables_remap *)(unsigned long)__pa(lpae_pgtables_remap_asm);
 	pa_pgd = __pa(swapper_pg_dir);
-	boot_data = __va(__atags_pointer);
 	barrier();
 
 	pr_info("Switching physical address space to 0x%08llx\n",
@@ -1579,7 +1606,7 @@
 	 * needs to be assembly.  It's fairly simple, as we're using the
 	 * temporary tables setup by the initial assembly code.
 	 */
-	lpae_pgtables_remap(offset, pa_pgd, boot_data);
+	lpae_pgtables_remap(offset, pa_pgd);
 
 	/* Re-enable the caches and cacheable TLB walks */
 	asm volatile("mcr p15, 0, %0, c2, c0, 2" : : "r" (ttbcr));
--- linux-ein-5.4.0.orig/arch/arm/mm/nommu.c
+++ linux-ein-5.4.0/arch/arm/mm/nommu.c
@@ -26,6 +26,13 @@
 
 unsigned long vectors_base;
 
+/*
+ * empty_zero_page is a special page that is used for
+ * zero-initialized data and COW.
+ */
+struct page *empty_zero_page;
+EXPORT_SYMBOL(empty_zero_page);
+
 #ifdef CONFIG_ARM_MPU
 struct mpu_rgn_info mpu_rgn_info;
 #endif
@@ -148,9 +155,21 @@
  */
 void __init paging_init(const struct machine_desc *mdesc)
 {
+	void *zero_page;
+
 	early_trap_init((void *)vectors_base);
 	mpu_setup();
+
+	/* allocate the zero page. */
+	zero_page = (void *)memblock_alloc(PAGE_SIZE, PAGE_SIZE);
+	if (!zero_page)
+		panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
+		      __func__, PAGE_SIZE, PAGE_SIZE);
+
 	bootmem_init();
+
+	empty_zero_page = virt_to_page(zero_page);
+	flush_dcache_page(empty_zero_page);
 }
 
 /*
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm1020.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm1020.S
@@ -491,7 +491,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm1020_proc_info,#object
 __arm1020_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm1020e.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm1020e.S
@@ -449,7 +449,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm1020e_proc_info,#object
 __arm1020e_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm1022.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm1022.S
@@ -443,7 +443,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm1022_proc_info,#object
 __arm1022_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm1026.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm1026.S
@@ -138,7 +138,7 @@
 	mov	ip, #0
 __flush_whole_cache:
 #ifndef CONFIG_CPU_DCACHE_DISABLE
-1:	mrc	p15, 0, r15, c7, c14, 3		@ test, clean, invalidate
+1:	mrc	p15, 0, APSR_nzcv, c7, c14, 3		@ test, clean, invalidate
 	bne	1b
 #endif
 	tst	r2, #VM_EXEC
@@ -363,7 +363,7 @@
 #ifdef CONFIG_MMU
 	mov	r1, #0
 #ifndef CONFIG_CPU_DCACHE_DISABLE
-1:	mrc	p15, 0, r15, c7, c14, 3		@ test, clean, invalidate
+1:	mrc	p15, 0, APSR_nzcv, c7, c14, 3		@ test, clean, invalidate
 	bne	1b
 #endif
 #ifndef CONFIG_CPU_ICACHE_DISABLE
@@ -437,7 +437,7 @@
 	string	cpu_arm1026_name, "ARM1026EJ-S"
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm1026_proc_info,#object
 __arm1026_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm720.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm720.S
@@ -172,7 +172,7 @@
  * See <asm/procinfo.h> for a definition of this structure.
  */
 	
-		.section ".proc.info.init", #alloc
+		.section ".proc.info.init", "a"
 
 .macro arm720_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cpu_flush:req
 		.type	__\name\()_proc_info,#object
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm740.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm740.S
@@ -128,7 +128,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 	.type	__arm740_proc_info,#object
 __arm740_proc_info:
 	.long	0x41807400
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm7tdmi.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm7tdmi.S
@@ -72,7 +72,7 @@
 
 		.align
 
-		.section ".proc.info.init", #alloc
+		.section ".proc.info.init", "a"
 
 .macro arm7tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, \
 	extra_hwcaps=0
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm920.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm920.S
@@ -434,7 +434,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm920_proc_info,#object
 __arm920_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm922.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm922.S
@@ -412,7 +412,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm922_proc_info,#object
 __arm922_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm925.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm925.S
@@ -477,7 +477,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 .macro arm925_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache
 	.type	__\name\()_proc_info,#object
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm926.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm926.S
@@ -131,7 +131,7 @@
 #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
 	mcr	p15, 0, ip, c7, c6, 0		@ invalidate D cache
 #else
-1:	mrc	p15, 0, r15, c7, c14, 3 	@ test,clean,invalidate
+1:	mrc	p15, 0, APSR_nzcv, c7, c14, 3 	@ test,clean,invalidate
 	bne	1b
 #endif
 	tst	r2, #VM_EXEC
@@ -358,7 +358,7 @@
 	mcr	p15, 0, ip, c7, c6, 0		@ invalidate D cache
 #else
 @ && 'Clean & Invalidate whole DCache'
-1:	mrc	p15, 0, r15, c7, c14, 3 	@ test,clean,invalidate
+1:	mrc	p15, 0, APSR_nzcv, c7, c14, 3 	@ test,clean,invalidate
 	bne	1b
 #endif
 	mcr	p15, 0, ip, c7, c5, 0		@ invalidate I cache
@@ -460,7 +460,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm926_proc_info,#object
 __arm926_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm940.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm940.S
@@ -340,7 +340,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__arm940_proc_info,#object
 __arm940_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm946.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm946.S
@@ -395,7 +395,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 	.type	__arm946_proc_info,#object
 __arm946_proc_info:
 	.long	0x41009460
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-arm9tdmi.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-arm9tdmi.S
@@ -66,7 +66,7 @@
 
 		.align
 
-		.section ".proc.info.init", #alloc
+		.section ".proc.info.init", "a"
 
 .macro arm9tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req
 		.type	__\name\()_proc_info, #object
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-fa526.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-fa526.S
@@ -185,7 +185,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__fa526_proc_info,#object
 __fa526_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-feroceon.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-feroceon.S
@@ -571,7 +571,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 .macro feroceon_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache:req
 	.type	__\name\()_proc_info,#object
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-macros.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-macros.S
@@ -5,6 +5,7 @@
  *  VMA_VM_FLAGS
  *  VM_EXEC
  */
+#include <linux/const.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 
@@ -30,7 +31,7 @@
  * act_mm - get current->active_mm
  */
 	.macro	act_mm, rd
-	bic	\rd, sp, #8128
+	bic	\rd, sp, #(THREAD_SIZE - 1) & ~63
 	bic	\rd, \rd, #63
 	ldr	\rd, [\rd, #TI_TASK]
 	.if (TSK_ACTIVE_MM > IMM12_MASK)
@@ -341,6 +342,7 @@
 
 .macro define_tlb_functions name:req, flags_up:req, flags_smp
 	.type	\name\()_tlb_fns, #object
+	.align 2
 ENTRY(\name\()_tlb_fns)
 	.long	\name\()_flush_user_tlb_range
 	.long	\name\()_flush_kern_tlb_range
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-mohawk.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-mohawk.S
@@ -416,7 +416,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__88sv331x_proc_info,#object
 __88sv331x_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-sa110.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-sa110.S
@@ -196,7 +196,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	.type	__sa110_proc_info,#object
 __sa110_proc_info:
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-sa1100.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-sa1100.S
@@ -239,7 +239,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 .macro sa1100_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req
 	.type	__\name\()_proc_info,#object
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-v6.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-v6.S
@@ -261,7 +261,7 @@
 	string	cpu_elf_name, "v6"
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	/*
 	 * Match any ARMv6 processor core.
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-v7-bugs.c
+++ linux-ein-5.4.0/arch/arm/mm/proc-v7-bugs.c
@@ -7,8 +7,35 @@
 #include <asm/cp15.h>
 #include <asm/cputype.h>
 #include <asm/proc-fns.h>
+#include <asm/spectre.h>
 #include <asm/system_misc.h>
 
+#ifdef CONFIG_ARM_PSCI
+static int __maybe_unused spectre_v2_get_cpu_fw_mitigation_state(void)
+{
+	struct arm_smccc_res res;
+
+	arm_smccc_1_1_invoke(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
+			     ARM_SMCCC_ARCH_WORKAROUND_1, &res);
+
+	switch ((int)res.a0) {
+	case SMCCC_RET_SUCCESS:
+		return SPECTRE_MITIGATED;
+
+	case SMCCC_ARCH_WORKAROUND_RET_UNAFFECTED:
+		return SPECTRE_UNAFFECTED;
+
+	default:
+		return SPECTRE_VULNERABLE;
+	}
+}
+#else
+static int __maybe_unused spectre_v2_get_cpu_fw_mitigation_state(void)
+{
+	return SPECTRE_VULNERABLE;
+}
+#endif
+
 #ifdef CONFIG_HARDEN_BRANCH_PREDICTOR
 DEFINE_PER_CPU(harden_branch_predictor_fn_t, harden_branch_predictor_fn);
 
@@ -37,13 +64,60 @@
 	arm_smccc_1_1_hvc(ARM_SMCCC_ARCH_WORKAROUND_1, NULL);
 }
 
-static void cpu_v7_spectre_init(void)
+static unsigned int spectre_v2_install_workaround(unsigned int method)
 {
 	const char *spectre_v2_method = NULL;
 	int cpu = smp_processor_id();
 
 	if (per_cpu(harden_branch_predictor_fn, cpu))
-		return;
+		return SPECTRE_MITIGATED;
+
+	switch (method) {
+	case SPECTRE_V2_METHOD_BPIALL:
+		per_cpu(harden_branch_predictor_fn, cpu) =
+			harden_branch_predictor_bpiall;
+		spectre_v2_method = "BPIALL";
+		break;
+
+	case SPECTRE_V2_METHOD_ICIALLU:
+		per_cpu(harden_branch_predictor_fn, cpu) =
+			harden_branch_predictor_iciallu;
+		spectre_v2_method = "ICIALLU";
+		break;
+
+	case SPECTRE_V2_METHOD_HVC:
+		per_cpu(harden_branch_predictor_fn, cpu) =
+			call_hvc_arch_workaround_1;
+		cpu_do_switch_mm = cpu_v7_hvc_switch_mm;
+		spectre_v2_method = "hypervisor";
+		break;
+
+	case SPECTRE_V2_METHOD_SMC:
+		per_cpu(harden_branch_predictor_fn, cpu) =
+			call_smc_arch_workaround_1;
+		cpu_do_switch_mm = cpu_v7_smc_switch_mm;
+		spectre_v2_method = "firmware";
+		break;
+	}
+
+	if (spectre_v2_method)
+		pr_info("CPU%u: Spectre v2: using %s workaround\n",
+			smp_processor_id(), spectre_v2_method);
+
+	return SPECTRE_MITIGATED;
+}
+#else
+static unsigned int spectre_v2_install_workaround(unsigned int method)
+{
+	pr_info_once("Spectre V2: workarounds disabled by configuration\n");
+
+	return SPECTRE_VULNERABLE;
+}
+#endif
+
+static void cpu_v7_spectre_v2_init(void)
+{
+	unsigned int state, method = 0;
 
 	switch (read_cpuid_part()) {
 	case ARM_CPU_PART_CORTEX_A8:
@@ -52,29 +126,37 @@
 	case ARM_CPU_PART_CORTEX_A17:
 	case ARM_CPU_PART_CORTEX_A73:
 	case ARM_CPU_PART_CORTEX_A75:
-		per_cpu(harden_branch_predictor_fn, cpu) =
-			harden_branch_predictor_bpiall;
-		spectre_v2_method = "BPIALL";
+		state = SPECTRE_MITIGATED;
+		method = SPECTRE_V2_METHOD_BPIALL;
 		break;
 
 	case ARM_CPU_PART_CORTEX_A15:
 	case ARM_CPU_PART_BRAHMA_B15:
-		per_cpu(harden_branch_predictor_fn, cpu) =
-			harden_branch_predictor_iciallu;
-		spectre_v2_method = "ICIALLU";
+		state = SPECTRE_MITIGATED;
+		method = SPECTRE_V2_METHOD_ICIALLU;
+		break;
+
+	case ARM_CPU_PART_BRAHMA_B53:
+		/* Requires no workaround */
+		state = SPECTRE_UNAFFECTED;
 		break;
 
-#ifdef CONFIG_ARM_PSCI
 	default:
 		/* Other ARM CPUs require no workaround */
-		if (read_cpuid_implementor() == ARM_CPU_IMP_ARM)
+		if (read_cpuid_implementor() == ARM_CPU_IMP_ARM) {
+			state = SPECTRE_UNAFFECTED;
 			break;
+		}
 		/* fallthrough */
-		/* Cortex A57/A72 require firmware workaround */
+	/* Cortex A57/A72 require firmware workaround */
 	case ARM_CPU_PART_CORTEX_A57:
 	case ARM_CPU_PART_CORTEX_A72: {
 		struct arm_smccc_res res;
 
+		state = spectre_v2_get_cpu_fw_mitigation_state();
+		if (state != SPECTRE_MITIGATED)
+			break;
+
 		if (psci_ops.smccc_version == SMCCC_VERSION_1_0)
 			break;
 
@@ -84,10 +166,7 @@
 					  ARM_SMCCC_ARCH_WORKAROUND_1, &res);
 			if ((int)res.a0 != 0)
 				break;
-			per_cpu(harden_branch_predictor_fn, cpu) =
-				call_hvc_arch_workaround_1;
-			cpu_do_switch_mm = cpu_v7_hvc_switch_mm;
-			spectre_v2_method = "hypervisor";
+			method = SPECTRE_V2_METHOD_HVC;
 			break;
 
 		case PSCI_CONDUIT_SMC:
@@ -95,29 +174,97 @@
 					  ARM_SMCCC_ARCH_WORKAROUND_1, &res);
 			if ((int)res.a0 != 0)
 				break;
-			per_cpu(harden_branch_predictor_fn, cpu) =
-				call_smc_arch_workaround_1;
-			cpu_do_switch_mm = cpu_v7_smc_switch_mm;
-			spectre_v2_method = "firmware";
+			method = SPECTRE_V2_METHOD_SMC;
 			break;
 
 		default:
+			state = SPECTRE_VULNERABLE;
 			break;
 		}
 	}
-#endif
 	}
 
-	if (spectre_v2_method)
-		pr_info("CPU%u: Spectre v2: using %s workaround\n",
-			smp_processor_id(), spectre_v2_method);
+	if (state == SPECTRE_MITIGATED)
+		state = spectre_v2_install_workaround(method);
+
+	spectre_v2_update_state(state, method);
+}
+
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
+static int spectre_bhb_method;
+
+static const char *spectre_bhb_method_name(int method)
+{
+	switch (method) {
+	case SPECTRE_V2_METHOD_LOOP8:
+		return "loop";
+
+	case SPECTRE_V2_METHOD_BPIALL:
+		return "BPIALL";
+
+	default:
+		return "unknown";
+	}
+}
+
+static int spectre_bhb_install_workaround(int method)
+{
+	if (spectre_bhb_method != method) {
+		if (spectre_bhb_method) {
+			pr_err("CPU%u: Spectre BHB: method disagreement, system vulnerable\n",
+			       smp_processor_id());
+
+			return SPECTRE_VULNERABLE;
+		}
+
+		if (spectre_bhb_update_vectors(method) == SPECTRE_VULNERABLE)
+			return SPECTRE_VULNERABLE;
+
+		spectre_bhb_method = method;
+
+		pr_info("CPU%u: Spectre BHB: enabling %s workaround for all CPUs\n",
+			smp_processor_id(), spectre_bhb_method_name(method));
+	}
+
+	return SPECTRE_MITIGATED;
 }
 #else
-static void cpu_v7_spectre_init(void)
+static int spectre_bhb_install_workaround(int method)
 {
+	return SPECTRE_VULNERABLE;
 }
 #endif
 
+static void cpu_v7_spectre_bhb_init(void)
+{
+	unsigned int state, method = 0;
+
+	switch (read_cpuid_part()) {
+	case ARM_CPU_PART_CORTEX_A15:
+	case ARM_CPU_PART_BRAHMA_B15:
+	case ARM_CPU_PART_CORTEX_A57:
+	case ARM_CPU_PART_CORTEX_A72:
+		state = SPECTRE_MITIGATED;
+		method = SPECTRE_V2_METHOD_LOOP8;
+		break;
+
+	case ARM_CPU_PART_CORTEX_A73:
+	case ARM_CPU_PART_CORTEX_A75:
+		state = SPECTRE_MITIGATED;
+		method = SPECTRE_V2_METHOD_BPIALL;
+		break;
+
+	default:
+		state = SPECTRE_UNAFFECTED;
+		break;
+	}
+
+	if (state == SPECTRE_MITIGATED)
+		state = spectre_bhb_install_workaround(method);
+
+	spectre_v2_update_state(state, method);
+}
+
 static __maybe_unused bool cpu_v7_check_auxcr_set(bool *warned,
 						  u32 mask, const char *msg)
 {
@@ -146,16 +293,18 @@
 void cpu_v7_ca8_ibe(void)
 {
 	if (check_spectre_auxcr(this_cpu_ptr(&spectre_warned), BIT(6)))
-		cpu_v7_spectre_init();
+		cpu_v7_spectre_v2_init();
 }
 
 void cpu_v7_ca15_ibe(void)
 {
 	if (check_spectre_auxcr(this_cpu_ptr(&spectre_warned), BIT(0)))
-		cpu_v7_spectre_init();
+		cpu_v7_spectre_v2_init();
+	cpu_v7_spectre_bhb_init();
 }
 
 void cpu_v7_bugs_init(void)
 {
-	cpu_v7_spectre_init();
+	cpu_v7_spectre_v2_init();
+	cpu_v7_spectre_bhb_init();
 }
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-v7.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-v7.S
@@ -644,7 +644,7 @@
 	string	cpu_elf_name, "v7"
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 	/*
 	 * Standard v7 proc info content
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-v7m.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-v7m.S
@@ -93,7 +93,7 @@
 	ret	lr
 ENDPROC(cpu_cm7_proc_fin)
 
-	.section ".init.text", #alloc, #execinstr
+	.section ".init.text", "ax"
 
 __v7m_cm7_setup:
 	mov	r8, #(V7M_SCB_CCR_DC | V7M_SCB_CCR_IC| V7M_SCB_CCR_BP)
@@ -177,7 +177,7 @@
 	string cpu_elf_name "v7m"
 	string cpu_v7m_name "ARMv7-M"
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 .macro __v7m_proc name, initfunc, cache_fns = nop_cache_fns, hwcaps = 0,  proc_fns = v7m_processor_functions
 	.long	0			/* proc_info_list.__cpu_mm_mmu_flags */
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-xsc3.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-xsc3.S
@@ -496,7 +496,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 .macro xsc3_proc_info name:req, cpu_val:req, cpu_mask:req
 	.type	__\name\()_proc_info,#object
--- linux-ein-5.4.0.orig/arch/arm/mm/proc-xscale.S
+++ linux-ein-5.4.0/arch/arm/mm/proc-xscale.S
@@ -610,7 +610,7 @@
 
 	.align
 
-	.section ".proc.info.init", #alloc
+	.section ".proc.info.init", "a"
 
 .macro xscale_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache
 	.type	__\name\()_proc_info,#object
--- linux-ein-5.4.0.orig/arch/arm/mm/pv-fixup-asm.S
+++ linux-ein-5.4.0/arch/arm/mm/pv-fixup-asm.S
@@ -39,8 +39,8 @@
 
 	/* Update level 2 entries for the boot data */
 	add	r7, r2, #0x1000
-	add	r7, r7, r3, lsr #SECTION_SHIFT - L2_ORDER
-	bic	r7, r7, #(1 << L2_ORDER) - 1
+	movw	r3, #FDT_FIXED_BASE >> (SECTION_SHIFT - L2_ORDER)
+	add	r7, r7, r3
 	ldrd	r4, r5, [r7]
 	adds	r4, r4, r0
 	adc	r5, r5, r1
--- linux-ein-5.4.0.orig/arch/arm/net/bpf_jit_32.c
+++ linux-ein-5.4.0/arch/arm/net/bpf_jit_32.c
@@ -36,6 +36,10 @@
  *                        +-----+
  *                        |RSVD | JIT scratchpad
  * current ARM_SP =>      +-----+ <= (BPF_FP - STACK_SIZE + SCRATCH_SIZE)
+ *                        | ... | caller-saved registers
+ *                        +-----+
+ *                        | ... | arguments passed on stack
+ * ARM_SP during call =>  +-----|
  *                        |     |
  *                        | ... | Function call stack
  *                        |     |
@@ -63,6 +67,12 @@
  *
  * When popping registers off the stack at the end of a BPF function, we
  * reference them via the current ARM_FP register.
+ *
+ * Some eBPF operations are implemented via a call to a helper function.
+ * Such calls are "invisible" in the eBPF code, so it is up to the calling
+ * program to preserve any caller-saved ARM registers during the call. The
+ * JIT emits code to push and pop those registers onto the stack, immediately
+ * above the callee stack frame.
  */
 #define CALLEE_MASK	(1 << ARM_R4 | 1 << ARM_R5 | 1 << ARM_R6 | \
 			 1 << ARM_R7 | 1 << ARM_R8 | 1 << ARM_R9 | \
@@ -70,6 +80,8 @@
 #define CALLEE_PUSH_MASK (CALLEE_MASK | 1 << ARM_LR)
 #define CALLEE_POP_MASK  (CALLEE_MASK | 1 << ARM_PC)
 
+#define CALLER_MASK	(1 << ARM_R0 | 1 << ARM_R1 | 1 << ARM_R2 | 1 << ARM_R3)
+
 enum {
 	/* Stack layout - these are offsets from (top of stack - 4) */
 	BPF_R2_HI,
@@ -464,6 +476,7 @@
 
 static inline void emit_udivmod(u8 rd, u8 rm, u8 rn, struct jit_ctx *ctx, u8 op)
 {
+	const int exclude_mask = BIT(ARM_R0) | BIT(ARM_R1);
 	const s8 *tmp = bpf2a32[TMP_REG_1];
 
 #if __LINUX_ARM_ARCH__ == 7
@@ -495,11 +508,17 @@
 		emit(ARM_MOV_R(ARM_R0, rm), ctx);
 	}
 
+	/* Push caller-saved registers on stack */
+	emit(ARM_PUSH(CALLER_MASK & ~exclude_mask), ctx);
+
 	/* Call appropriate function */
 	emit_mov_i(ARM_IP, op == BPF_DIV ?
 		   (u32)jit_udiv32 : (u32)jit_mod32, ctx);
 	emit_blx_r(ARM_IP, ctx);
 
+	/* Restore caller-saved registers from stack */
+	emit(ARM_POP(CALLER_MASK & ~exclude_mask), ctx);
+
 	/* Save return value */
 	if (rd != ARM_R0)
 		emit(ARM_MOV_R(rd, ARM_R0), ctx);
@@ -929,7 +948,11 @@
 	rd = arm_bpf_get_reg64(dst, tmp, ctx);
 
 	/* Do LSR operation */
-	if (val < 32) {
+	if (val == 0) {
+		/* An immediate value of 0 encodes a shift amount of 32
+		 * for LSR. To shift by 0, don't do anything.
+		 */
+	} else if (val < 32) {
 		emit(ARM_MOV_SI(tmp2[1], rd[1], SRTYPE_LSR, val), ctx);
 		emit(ARM_ORR_SI(rd[1], tmp2[1], rd[0], SRTYPE_ASL, 32 - val), ctx);
 		emit(ARM_MOV_SI(rd[0], rd[0], SRTYPE_LSR, val), ctx);
@@ -955,7 +978,11 @@
 	rd = arm_bpf_get_reg64(dst, tmp, ctx);
 
 	/* Do ARSH operation */
-	if (val < 32) {
+	if (val == 0) {
+		/* An immediate value of 0 encodes a shift amount of 32
+		 * for ASR. To shift by 0, don't do anything.
+		 */
+	} else if (val < 32) {
 		emit(ARM_MOV_SI(tmp2[1], rd[1], SRTYPE_LSR, val), ctx);
 		emit(ARM_ORR_SI(rd[1], tmp2[1], rd[0], SRTYPE_ASL, 32 - val), ctx);
 		emit(ARM_MOV_SI(rd[0], rd[0], SRTYPE_ASR, val), ctx);
@@ -992,21 +1019,35 @@
 	arm_bpf_put_reg32(dst_hi, rd[0], ctx);
 }
 
+static bool is_ldst_imm(s16 off, const u8 size)
+{
+	s16 off_max = 0;
+
+	switch (size) {
+	case BPF_B:
+	case BPF_W:
+		off_max = 0xfff;
+		break;
+	case BPF_H:
+		off_max = 0xff;
+		break;
+	case BPF_DW:
+		/* Need to make sure off+4 does not overflow. */
+		off_max = 0xfff - 4;
+		break;
+	}
+	return -off_max <= off && off <= off_max;
+}
+
 /* *(size *)(dst + off) = src */
 static inline void emit_str_r(const s8 dst, const s8 src[],
-			      s32 off, struct jit_ctx *ctx, const u8 sz){
+			      s16 off, struct jit_ctx *ctx, const u8 sz){
 	const s8 *tmp = bpf2a32[TMP_REG_1];
-	s32 off_max;
 	s8 rd;
 
 	rd = arm_bpf_get_reg32(dst, tmp[1], ctx);
 
-	if (sz == BPF_H)
-		off_max = 0xff;
-	else
-		off_max = 0xfff;
-
-	if (off < 0 || off > off_max) {
+	if (!is_ldst_imm(off, sz)) {
 		emit_a32_mov_i(tmp[0], off, ctx);
 		emit(ARM_ADD_R(tmp[0], tmp[0], rd), ctx);
 		rd = tmp[0];
@@ -1035,18 +1076,12 @@
 
 /* dst = *(size*)(src + off) */
 static inline void emit_ldx_r(const s8 dst[], const s8 src,
-			      s32 off, struct jit_ctx *ctx, const u8 sz){
+			      s16 off, struct jit_ctx *ctx, const u8 sz){
 	const s8 *tmp = bpf2a32[TMP_REG_1];
 	const s8 *rd = is_stacked(dst_lo) ? tmp : dst;
 	s8 rm = src;
-	s32 off_max;
-
-	if (sz == BPF_H)
-		off_max = 0xff;
-	else
-		off_max = 0xfff;
 
-	if (off < 0 || off > off_max) {
+	if (!is_ldst_imm(off, sz)) {
 		emit_a32_mov_i(tmp[0], off, ctx);
 		emit(ARM_ADD_R(tmp[0], tmp[0], src), ctx);
 		rm = tmp[0];
@@ -1586,6 +1621,9 @@
 		rn = arm_bpf_get_reg32(src_lo, tmp2[1], ctx);
 		emit_ldx_r(dst, rn, off, ctx, BPF_SIZE(code));
 		break;
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		break;
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_W:
 	case BPF_ST | BPF_MEM | BPF_H:
--- linux-ein-5.4.0.orig/arch/arm/nwfpe/Makefile
+++ linux-ein-5.4.0/arch/arm/nwfpe/Makefile
@@ -11,3 +11,9 @@
 				   entry.o
 
 nwfpe-$(CONFIG_FPE_NWFPE_XP)	+= extended_cpdo.o
+
+# Try really hard to avoid generating calls to __aeabi_uldivmod() from
+# float64_rem() due to loop elision.
+ifdef CONFIG_CC_IS_CLANG
+CFLAGS_softfloat.o	+= -mllvm -replexitval=never
+endif
--- linux-ein-5.4.0.orig/arch/arm/plat-samsung/Kconfig
+++ linux-ein-5.4.0/arch/arm/plat-samsung/Kconfig
@@ -241,6 +241,7 @@
 	depends on PM && DEBUG_KERNEL
 	depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
 	depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
+	depends on DEBUG_LL && MMU
 	help
 	  Say Y here if you want verbose debugging from the PM Suspend and
 	  Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
--- linux-ein-5.4.0.orig/arch/arm/probes/decode.h
+++ linux-ein-5.4.0/arch/arm/probes/decode.h
@@ -14,6 +14,7 @@
 #include <linux/types.h>
 #include <linux/stddef.h>
 #include <asm/probes.h>
+#include <asm/ptrace.h>
 #include <asm/kprobes.h>
 
 void __init arm_probes_decode_init(void);
@@ -35,31 +36,6 @@
 #endif
 
 
-/*
- * Update ITSTATE after normal execution of an IT block instruction.
- *
- * The 8 IT state bits are split into two parts in CPSR:
- *	ITSTATE<1:0> are in CPSR<26:25>
- *	ITSTATE<7:2> are in CPSR<15:10>
- */
-static inline unsigned long it_advance(unsigned long cpsr)
-	{
-	if ((cpsr & 0x06000400) == 0) {
-		/* ITSTATE<2:0> == 0 means end of IT block, so clear IT state */
-		cpsr &= ~PSR_IT_MASK;
-	} else {
-		/* We need to shift left ITSTATE<4:0> */
-		const unsigned long mask = 0x06001c00;  /* Mask ITSTATE<4:0> */
-		unsigned long it = cpsr & mask;
-		it <<= 1;
-		it |= it >> (27 - 10);  /* Carry ITSTATE<2> to correct place */
-		it &= mask;
-		cpsr &= ~mask;
-		cpsr |= it;
-	}
-	return cpsr;
-}
-
 static inline void __kprobes bx_write_pc(long pcv, struct pt_regs *regs)
 {
 	long cpsr = regs->ARM_cpsr;
--- linux-ein-5.4.0.orig/arch/arm/probes/kprobes/checkers-common.c
+++ linux-ein-5.4.0/arch/arm/probes/kprobes/checkers-common.c
@@ -40,7 +40,7 @@
  * Different from other insn uses imm8, the real addressing offset of
  * STRD in T32 encoding should be imm8 * 4. See ARMARM description.
  */
-enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn,
+static enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn,
 		struct arch_probes_insn *asi,
 		const struct decode_header *h)
 {
--- linux-ein-5.4.0.orig/arch/arm/probes/kprobes/core.c
+++ linux-ein-5.4.0/arch/arm/probes/kprobes/core.c
@@ -231,7 +231,7 @@
  * kprobe, and that level is reserved for user kprobe handlers, so we can't
  * risk encountering a new kprobe in an interrupt handler.
  */
-void __kprobes kprobe_handler(struct pt_regs *regs)
+static void __kprobes kprobe_handler(struct pt_regs *regs)
 {
 	struct kprobe *p, *cur;
 	struct kprobe_ctlblk *kcb;
@@ -534,7 +534,7 @@
 
 #endif /* !CONFIG_THUMB2_KERNEL */
 
-int __init arch_init_kprobes()
+int __init arch_init_kprobes(void)
 {
 	arm_probes_decode_init();
 #ifdef CONFIG_THUMB2_KERNEL
--- linux-ein-5.4.0.orig/arch/arm/probes/kprobes/opt-arm.c
+++ linux-ein-5.4.0/arch/arm/probes/kprobes/opt-arm.c
@@ -85,21 +85,21 @@
 			"optprobe_template_end:\n");
 
 #define TMPL_VAL_IDX \
-	((unsigned long *)&optprobe_template_val - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_val - (unsigned long *)optprobe_template_entry)
 #define TMPL_CALL_IDX \
-	((unsigned long *)&optprobe_template_call - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_call - (unsigned long *)optprobe_template_entry)
 #define TMPL_END_IDX \
-	((unsigned long *)&optprobe_template_end - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_end - (unsigned long *)optprobe_template_entry)
 #define TMPL_ADD_SP \
-	((unsigned long *)&optprobe_template_add_sp - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_add_sp - (unsigned long *)optprobe_template_entry)
 #define TMPL_SUB_SP \
-	((unsigned long *)&optprobe_template_sub_sp - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_sub_sp - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_BEGIN \
-	((unsigned long *)&optprobe_template_restore_begin - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_begin - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_ORIGN_INSN \
-	((unsigned long *)&optprobe_template_restore_orig_insn - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_orig_insn - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_END \
-	((unsigned long *)&optprobe_template_restore_end - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_end - (unsigned long *)optprobe_template_entry)
 
 /*
  * ARM can always optimize an instruction when using ARM ISA, except
@@ -145,8 +145,6 @@
 	}
 }
 
-extern void kprobe_handler(struct pt_regs *regs);
-
 static void
 optimized_callback(struct optimized_kprobe *op, struct pt_regs *regs)
 {
@@ -234,7 +232,7 @@
 	}
 
 	/* Copy arch-dep-instance from template. */
-	memcpy(code, (unsigned long *)&optprobe_template_entry,
+	memcpy(code, (unsigned long *)optprobe_template_entry,
 			TMPL_END_IDX * sizeof(kprobe_opcode_t));
 
 	/* Adjust buffer according to instruction. */
--- linux-ein-5.4.0.orig/arch/arm/probes/kprobes/test-core.c
+++ linux-ein-5.4.0/arch/arm/probes/kprobes/test-core.c
@@ -720,7 +720,7 @@
 	[REG_TYPE_NOSPPCX]	= COVERAGE_ANY_REG | COVERAGE_SP,
 };
 
-unsigned coverage_start_registers(const struct decode_header *h)
+static unsigned coverage_start_registers(const struct decode_header *h)
 {
 	unsigned regs = 0;
 	int i;
--- linux-ein-5.4.0.orig/arch/arm/probes/kprobes/test-core.h
+++ linux-ein-5.4.0/arch/arm/probes/kprobes/test-core.h
@@ -453,3 +453,7 @@
 #else
 void kprobe_arm_test_cases(void);
 #endif
+
+void __kprobes_test_case_start(void);
+void __kprobes_test_case_end_16(void);
+void __kprobes_test_case_end_32(void);
--- linux-ein-5.4.0.orig/arch/arm/probes/kprobes/test-thumb.c
+++ linux-ein-5.4.0/arch/arm/probes/kprobes/test-thumb.c
@@ -441,21 +441,21 @@
 		"3:	mvn	r0, r0	\n\t"
 		"2:	nop		\n\t")
 
-	TEST_RX("tbh	[pc, r",7, (9f-(1f+4))>>1,"]",
+	TEST_RX("tbh	[pc, r",7, (9f-(1f+4))>>1,", lsl #1]",
 		"9:			\n\t"
 		".short	(2f-1b-4)>>1	\n\t"
 		".short	(3f-1b-4)>>1	\n\t"
 		"3:	mvn	r0, r0	\n\t"
 		"2:	nop		\n\t")
 
-	TEST_RX("tbh	[pc, r",12, ((9f-(1f+4))>>1)+1,"]",
+	TEST_RX("tbh	[pc, r",12, ((9f-(1f+4))>>1)+1,", lsl #1]",
 		"9:			\n\t"
 		".short	(2f-1b-4)>>1	\n\t"
 		".short	(3f-1b-4)>>1	\n\t"
 		"3:	mvn	r0, r0	\n\t"
 		"2:	nop		\n\t")
 
-	TEST_RRX("tbh	[r",1,9f, ", r",14,1,"]",
+	TEST_RRX("tbh	[r",1,9f, ", r",14,1,", lsl #1]",
 		"9:			\n\t"
 		".short	(2f-1b-4)>>1	\n\t"
 		".short	(3f-1b-4)>>1	\n\t"
@@ -468,10 +468,10 @@
 
 	TEST_UNSUPPORTED("strexb	r0, r1, [r2]")
 	TEST_UNSUPPORTED("strexh	r0, r1, [r2]")
-	TEST_UNSUPPORTED("strexd	r0, r1, [r2]")
+	TEST_UNSUPPORTED("strexd	r0, r1, r2, [r2]")
 	TEST_UNSUPPORTED("ldrexb	r0, [r1]")
 	TEST_UNSUPPORTED("ldrexh	r0, [r1]")
-	TEST_UNSUPPORTED("ldrexd	r0, [r1]")
+	TEST_UNSUPPORTED("ldrexd	r0, r1, [r1]")
 
 	TEST_GROUP("Data-processing (shifted register) and (modified immediate)")
 
--- linux-ein-5.4.0.orig/arch/arm/probes/uprobes/core.c
+++ linux-ein-5.4.0/arch/arm/probes/uprobes/core.c
@@ -204,7 +204,7 @@
 static struct undef_hook uprobes_arm_break_hook = {
 	.instr_mask	= 0x0fffffff,
 	.instr_val	= (UPROBE_SWBP_ARM_INSN & 0x0fffffff),
-	.cpsr_mask	= MODE_MASK,
+	.cpsr_mask	= (PSR_T_BIT | MODE_MASK),
 	.cpsr_val	= USR_MODE,
 	.fn		= uprobe_trap_handler,
 };
@@ -212,7 +212,7 @@
 static struct undef_hook uprobes_arm_ss_hook = {
 	.instr_mask	= 0x0fffffff,
 	.instr_val	= (UPROBE_SS_ARM_INSN & 0x0fffffff),
-	.cpsr_mask	= MODE_MASK,
+	.cpsr_mask	= (PSR_T_BIT | MODE_MASK),
 	.cpsr_val	= USR_MODE,
 	.fn		= uprobe_trap_handler,
 };
--- linux-ein-5.4.0.orig/arch/arm/vfp/Makefile
+++ linux-ein-5.4.0/arch/arm/vfp/Makefile
@@ -8,6 +8,4 @@
 # ccflags-y := -DDEBUG
 # asflags-y := -DDEBUG
 
-KBUILD_AFLAGS	:=$(KBUILD_AFLAGS:-msoft-float=-Wa,-mfpu=softvfp+vfp -mfloat-abi=soft)
-
 obj-y		+= vfpmodule.o entry.o vfphw.o vfpsingle.o vfpdouble.o
--- linux-ein-5.4.0.orig/arch/arm/vfp/entry.S
+++ linux-ein-5.4.0/arch/arm/vfp/entry.S
@@ -37,20 +37,3 @@
 	.align	2
 .LCvfp:
 	.word	vfp_vector
-
-@ This code is called if the VFP does not exist. It needs to flag the
-@ failure to the VFP initialisation code.
-
-	__INIT
-ENTRY(vfp_testing_entry)
-	dec_preempt_count_ti r10, r4
-	ldr	r0, VFP_arch_address
-	str	r0, [r0]		@ set to non-zero value
-	ret	r9			@ we have handled the fault
-ENDPROC(vfp_testing_entry)
-
-	.align	2
-VFP_arch_address:
-	.word	VFP_arch
-
-	__FINIT
--- linux-ein-5.4.0.orig/arch/arm/vfp/vfphw.S
+++ linux-ein-5.4.0/arch/arm/vfp/vfphw.S
@@ -78,11 +78,6 @@
 ENTRY(vfp_support_entry)
 	DBGSTR3	"instr %08x pc %08x state %p", r0, r2, r10
 
-	ldr	r3, [sp, #S_PSR]	@ Neither lazy restore nor FP exceptions
-	and	r3, r3, #MODE_MASK	@ are supported in kernel mode
-	teq	r3, #USR_MODE
-	bne	vfp_kmode_exception	@ Returns through lr
-
 	VFPFMRX	r1, FPEXC		@ Is the VFP enabled?
 	DBGSTR1	"fpexc %08x", r1
 	tst	r1, #FPEXC_EN
@@ -258,11 +253,14 @@
 
 ENTRY(vfp_get_float)
 	tbl_branch r0, r3, #3
+	.fpu	vfpv2
 	.irp	dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1:	mrc	p10, 0, r0, c\dr, c0, 0	@ fmrs	r0, s0
+1:	vmov	r0, s\dr
 	ret	lr
 	.org	1b + 8
-1:	mrc	p10, 0, r0, c\dr, c0, 4	@ fmrs	r0, s1
+	.endr
+	.irp	dr,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
+1:	vmov	r0, s\dr
 	ret	lr
 	.org	1b + 8
 	.endr
@@ -270,11 +268,14 @@
 
 ENTRY(vfp_put_float)
 	tbl_branch r1, r3, #3
+	.fpu	vfpv2
 	.irp	dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1:	mcr	p10, 0, r0, c\dr, c0, 0	@ fmsr	r0, s0
+1:	vmov	s\dr, r0
 	ret	lr
 	.org	1b + 8
-1:	mcr	p10, 0, r0, c\dr, c0, 4	@ fmsr	r0, s1
+	.endr
+	.irp	dr,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
+1:	vmov	s\dr, r0
 	ret	lr
 	.org	1b + 8
 	.endr
@@ -282,15 +283,17 @@
 
 ENTRY(vfp_get_double)
 	tbl_branch r0, r3, #3
+	.fpu	vfpv2
 	.irp	dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1:	fmrrd	r0, r1, d\dr
+1:	vmov	r0, r1, d\dr
 	ret	lr
 	.org	1b + 8
 	.endr
 #ifdef CONFIG_VFPv3
 	@ d16 - d31 registers
-	.irp	dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1:	mrrc	p11, 3, r0, r1, c\dr	@ fmrrd	r0, r1, d\dr
+	.fpu	vfpv3
+	.irp	dr,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
+1:	vmov	r0, r1, d\dr
 	ret	lr
 	.org	1b + 8
 	.endr
@@ -304,15 +307,17 @@
 
 ENTRY(vfp_put_double)
 	tbl_branch r2, r3, #3
+	.fpu	vfpv2
 	.irp	dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1:	fmdrr	d\dr, r0, r1
+1:	vmov	d\dr, r0, r1
 	ret	lr
 	.org	1b + 8
 	.endr
 #ifdef CONFIG_VFPv3
+	.fpu	vfpv3
 	@ d16 - d31 registers
-	.irp	dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1:	mcrr	p11, 3, r0, r1, c\dr	@ fmdrr	r0, r1, d\dr
+	.irp	dr,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
+1:	vmov	d\dr, r0, r1
 	ret	lr
 	.org	1b + 8
 	.endr
--- linux-ein-5.4.0.orig/arch/arm/vfp/vfpmodule.c
+++ linux-ein-5.4.0/arch/arm/vfp/vfpmodule.c
@@ -23,6 +23,7 @@
 #include <asm/cputype.h>
 #include <asm/system_info.h>
 #include <asm/thread_notify.h>
+#include <asm/traps.h>
 #include <asm/vfp.h>
 
 #include "vfpinstr.h"
@@ -31,7 +32,6 @@
 /*
  * Our undef handlers (in entry.S)
  */
-asmlinkage void vfp_testing_entry(void);
 asmlinkage void vfp_support_entry(void);
 asmlinkage void vfp_null_entry(void);
 
@@ -42,7 +42,7 @@
  * Used in startup: set to non-zero if VFP checks fail
  * After startup, holds VFP architecture
  */
-unsigned int VFP_arch;
+static unsigned int __initdata VFP_arch;
 
 /*
  * The pointer to the vfpstate structure of the thread which currently
@@ -436,7 +436,7 @@
  * present on all CPUs within a SMP complex. Needs to be called prior to
  * vfp_init().
  */
-void vfp_disable(void)
+void __init vfp_disable(void)
 {
 	if (VFP_arch) {
 		pr_debug("%s: should be called prior to vfp_init\n", __func__);
@@ -642,7 +642,9 @@
 	return 0;
 }
 
-void vfp_kmode_exception(void)
+#ifdef CONFIG_KERNEL_MODE_NEON
+
+static int vfp_kmode_exception(struct pt_regs *regs, unsigned int instr)
 {
 	/*
 	 * If we reach this point, a floating point exception has been raised
@@ -660,9 +662,51 @@
 		pr_crit("BUG: unsupported FP instruction in kernel mode\n");
 	else
 		pr_crit("BUG: FP instruction issued in kernel mode with FP unit disabled\n");
+	pr_crit("FPEXC == 0x%08x\n", fmrx(FPEXC));
+	return 1;
 }
 
-#ifdef CONFIG_KERNEL_MODE_NEON
+static struct undef_hook vfp_kmode_exception_hook[] = {{
+	.instr_mask	= 0xfe000000,
+	.instr_val	= 0xf2000000,
+	.cpsr_mask	= MODE_MASK | PSR_T_BIT,
+	.cpsr_val	= SVC_MODE,
+	.fn		= vfp_kmode_exception,
+}, {
+	.instr_mask	= 0xff100000,
+	.instr_val	= 0xf4000000,
+	.cpsr_mask	= MODE_MASK | PSR_T_BIT,
+	.cpsr_val	= SVC_MODE,
+	.fn		= vfp_kmode_exception,
+}, {
+	.instr_mask	= 0xef000000,
+	.instr_val	= 0xef000000,
+	.cpsr_mask	= MODE_MASK | PSR_T_BIT,
+	.cpsr_val	= SVC_MODE | PSR_T_BIT,
+	.fn		= vfp_kmode_exception,
+}, {
+	.instr_mask	= 0xff100000,
+	.instr_val	= 0xf9000000,
+	.cpsr_mask	= MODE_MASK | PSR_T_BIT,
+	.cpsr_val	= SVC_MODE | PSR_T_BIT,
+	.fn		= vfp_kmode_exception,
+}, {
+	.instr_mask	= 0x0c000e00,
+	.instr_val	= 0x0c000a00,
+	.cpsr_mask	= MODE_MASK,
+	.cpsr_val	= SVC_MODE,
+	.fn		= vfp_kmode_exception,
+}};
+
+static int __init vfp_kmode_exception_hook_init(void)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(vfp_kmode_exception_hook); i++)
+		register_undef_hook(&vfp_kmode_exception_hook[i]);
+	return 0;
+}
+subsys_initcall(vfp_kmode_exception_hook_init);
 
 /*
  * Kernel-side NEON support functions
@@ -708,6 +752,21 @@
 
 #endif /* CONFIG_KERNEL_MODE_NEON */
 
+static int __init vfp_detect(struct pt_regs *regs, unsigned int instr)
+{
+	VFP_arch = UINT_MAX;	/* mark as not present */
+	regs->ARM_pc += 4;
+	return 0;
+}
+
+static struct undef_hook vfp_detect_hook __initdata = {
+	.instr_mask	= 0x0c000e00,
+	.instr_val	= 0x0c000a00,
+	.cpsr_mask	= MODE_MASK,
+	.cpsr_val	= SVC_MODE,
+	.fn		= vfp_detect,
+};
+
 /*
  * VFP support code initialisation.
  */
@@ -728,10 +787,11 @@
 	 * The handler is already setup to just log calls, so
 	 * we just need to read the VFPSID register.
 	 */
-	vfp_vector = vfp_testing_entry;
+	register_undef_hook(&vfp_detect_hook);
 	barrier();
 	vfpsid = fmrx(FPSID);
 	barrier();
+	unregister_undef_hook(&vfp_detect_hook);
 	vfp_vector = vfp_null_entry;
 
 	pr_info("VFP support v0.3: ");
--- linux-ein-5.4.0.orig/arch/arm/xen/enlighten.c
+++ linux-ein-5.4.0/arch/arm/xen/enlighten.c
@@ -370,8 +370,6 @@
 		return -ENOMEM;
 	}
 	gnttab_init();
-	if (!xen_initial_domain())
-		xenbus_probe(NULL);
 
 	/*
 	 * Making sure board specific code will not set up ops for
--- linux-ein-5.4.0.orig/arch/arm/xen/mm.c
+++ linux-ein-5.4.0/arch/arm/xen/mm.c
@@ -70,20 +70,20 @@
  * pfn_valid returns true the pages is local and we can use the native
  * dma-direct functions, otherwise we call the Xen specific version.
  */
-void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t handle,
-		phys_addr_t paddr, size_t size, enum dma_data_direction dir)
+void xen_dma_sync_for_cpu(dma_addr_t handle, phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	if (pfn_valid(PFN_DOWN(handle)))
-		arch_sync_dma_for_cpu(dev, paddr, size, dir);
+		arch_sync_dma_for_cpu(paddr, size, dir);
 	else if (dir != DMA_TO_DEVICE)
 		dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL);
 }
 
-void xen_dma_sync_for_device(struct device *dev, dma_addr_t handle,
-		phys_addr_t paddr, size_t size, enum dma_data_direction dir)
+void xen_dma_sync_for_device(dma_addr_t handle, phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	if (pfn_valid(PFN_DOWN(handle)))
-		arch_sync_dma_for_device(dev, paddr, size, dir);
+		arch_sync_dma_for_device(paddr, size, dir);
 	else if (dir == DMA_FROM_DEVICE)
 		dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL);
 	else
--- linux-ein-5.4.0.orig/arch/arm/xen/p2m.c
+++ linux-ein-5.4.0/arch/arm/xen/p2m.c
@@ -62,11 +62,12 @@
 
 unsigned long __pfn_to_mfn(unsigned long pfn)
 {
-	struct rb_node *n = phys_to_mach.rb_node;
+	struct rb_node *n;
 	struct xen_p2m_entry *entry;
 	unsigned long irqflags;
 
 	read_lock_irqsave(&p2m_lock, irqflags);
+	n = phys_to_mach.rb_node;
 	while (n) {
 		entry = rb_entry(n, struct xen_p2m_entry, rbnode_phys);
 		if (entry->pfn <= pfn &&
@@ -93,10 +94,39 @@
 	int i;
 
 	for (i = 0; i < count; i++) {
+		struct gnttab_unmap_grant_ref unmap;
+		int rc;
+
 		if (map_ops[i].status)
 			continue;
-		set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
-				    map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT);
+		if (likely(set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
+				    map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT)))
+			continue;
+
+		/*
+		 * Signal an error for this slot. This in turn requires
+		 * immediate unmapping.
+		 */
+		map_ops[i].status = GNTST_general_error;
+		unmap.host_addr = map_ops[i].host_addr,
+		unmap.handle = map_ops[i].handle;
+		map_ops[i].handle = ~0;
+		if (map_ops[i].flags & GNTMAP_device_map)
+			unmap.dev_bus_addr = map_ops[i].dev_bus_addr;
+		else
+			unmap.dev_bus_addr = 0;
+
+		/*
+		 * Pre-populate the status field, to be recognizable in
+		 * the log message below.
+		 */
+		unmap.status = 1;
+
+		rc = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+					       &unmap, 1);
+		if (rc || unmap.status != GNTST_okay)
+			pr_err_once("gnttab unmap failed: rc=%d st=%d\n",
+				    rc, unmap.status);
 	}
 
 	return 0;
@@ -124,10 +154,11 @@
 	int rc;
 	unsigned long irqflags;
 	struct xen_p2m_entry *p2m_entry;
-	struct rb_node *n = phys_to_mach.rb_node;
+	struct rb_node *n;
 
 	if (mfn == INVALID_P2M_ENTRY) {
 		write_lock_irqsave(&p2m_lock, irqflags);
+		n = phys_to_mach.rb_node;
 		while (n) {
 			p2m_entry = rb_entry(n, struct xen_p2m_entry, rbnode_phys);
 			if (p2m_entry->pfn <= pfn &&
--- linux-ein-5.4.0.orig/arch/arm64/Kconfig
+++ linux-ein-5.4.0/arch/arm64/Kconfig
@@ -139,6 +139,7 @@
 	select HAVE_CMPXCHG_DOUBLE
 	select HAVE_CMPXCHG_LOCAL
 	select HAVE_CONTEXT_TRACKING
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DEBUG_BUGVERBOSE
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DMA_CONTIGUOUS
@@ -180,7 +181,6 @@
 	select PCI_SYSCALL if PCI
 	select POWER_RESET
 	select POWER_SUPPLY
-	select REFCOUNT_FULL
 	select SPARSE_IRQ
 	select SWIOTLB
 	select SYSCTL_EXCEPTION_TRACE
@@ -488,7 +488,7 @@
 	help
 	  This option adds a workaround for ARM Cortex-A55 Erratum 1024718.
 
-	  Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect
+	  Affected Cortex-A55 cores (all revisions) could cause incorrect
 	  update of the hardware dirty bit when the DBM/AP bits are updated
 	  without a break-before-make. The workaround is to disable the usage
 	  of hardware DBM locally on the affected cores. CPUs not affected by
@@ -558,6 +558,38 @@
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_1542419
+	bool "Neoverse-N1: workaround mis-ordering of instruction fetches"
+	default y
+	help
+	  This option adds a workaround for ARM Neoverse-N1 erratum
+	  1542419.
+
+	  Affected Neoverse-N1 cores could execute a stale instruction when
+	  modified by another CPU. The workaround depends on a firmware
+	  counterpart.
+
+	  Workaround the issue by hiding the DIC feature from EL0. This
+	  forces user-space to perform cache maintenance.
+
+	  If unsure, say Y.
+
+config ARM64_ERRATUM_1742098
+	bool "Cortex-A57/A72: 1742098: ELR recorded incorrectly on interrupt taken between cryptographic instructions in a sequence"
+	depends on COMPAT
+	default y
+	help
+	  This option removes the AES hwcap for aarch32 user-space to
+	  workaround erratum 1742098 on Cortex-A57 and Cortex-A72.
+
+	  Affected parts may corrupt the AES state if an interrupt is
+	  taken between a pair of AES instructions. These instructions
+	  are only present if the cryptography extensions are present.
+	  All software should have a fallback implementation for CPUs
+	  that don't implement the cryptography extensions.
+
+	  If unsure, say Y.
+
 config CAVIUM_ERRATUM_22375
 	bool "Cavium erratum 22375, 24313"
 	default y
@@ -1048,6 +1080,7 @@
 config FORCE_MAX_ZONEORDER
 	int
 	default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
+	default "13" if (ARCH_THUNDER && ARM64_4K_PAGES)
 	default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE)
 	default "11"
 	help
@@ -1122,6 +1155,15 @@
 
 	  If unsure, say Y.
 
+config MITIGATE_SPECTRE_BRANCH_HISTORY
+	bool "Mitigate Spectre style attacks against branch history" if EXPERT
+	default y
+	help
+	  Speculation attacks against some high-performance processors can
+	  make use of branch history to influence future speculation.
+	  When taking an exception from user-space, a sequence of branches
+	  or a firmware call overwrites the branch history.
+
 config RODATA_FULL_DEFAULT_ENABLED
 	bool "Apply r/o permissions of VM areas also to their linear aliases"
 	default y
--- linux-ein-5.4.0.orig/arch/arm64/Kconfig.platforms
+++ linux-ein-5.4.0/arch/arm64/Kconfig.platforms
@@ -54,6 +54,7 @@
 config ARCH_BERLIN
 	bool "Marvell Berlin SoC Family"
 	select DW_APB_ICTL
+	select DW_APB_TIMER_OF
 	select GPIOLIB
 	select PINCTRL
 	help
@@ -224,6 +225,7 @@
 
 config ARCH_SYNQUACER
 	bool "Socionext SynQuacer SoC Family"
+	select IRQ_FASTEOI_HIERARCHY_HANDLERS
 
 config ARCH_TEGRA
 	bool "NVIDIA Tegra SoC Family"
--- linux-ein-5.4.0.orig/arch/arm64/Makefile
+++ linux-ein-5.4.0/arch/arm64/Makefile
@@ -18,7 +18,7 @@
 # Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
 # for relative relocs, since this leads to better Image compression
 # with the relocation offsets always being zero.
-LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext -z norelro \
+LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext \
 			$(call ld-option, --no-apply-dynamic-relocs)
 endif
 
@@ -72,23 +72,31 @@
 					include/generated/asm-offsets.h))
 endif
 
+# Ensure that if the compiler supports branch protection we default it
+# off.
+KBUILD_CFLAGS += $(call cc-option,-mbranch-protection=none)
+
 ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
 KBUILD_CPPFLAGS	+= -mbig-endian
 CHECKFLAGS	+= -D__AARCH64EB__
 AS		+= -EB
 # Prefer the baremetal ELF build target, but not all toolchains include
 # it so fall back to the standard linux version if needed.
-KBUILD_LDFLAGS	+= -EB $(call ld-option, -maarch64elfb, -maarch64linuxb)
+KBUILD_LDFLAGS	+= -EB $(call ld-option, -maarch64elfb, -maarch64linuxb -z norelro)
 UTS_MACHINE	:= aarch64_be
 else
 KBUILD_CPPFLAGS	+= -mlittle-endian
 CHECKFLAGS	+= -D__AARCH64EL__
 AS		+= -EL
 # Same as above, prefer ELF but fall back to linux target if needed.
-KBUILD_LDFLAGS	+= -EL $(call ld-option, -maarch64elf, -maarch64linux)
+KBUILD_LDFLAGS	+= -EL $(call ld-option, -maarch64elf, -maarch64linux -z norelro)
 UTS_MACHINE	:= aarch64
 endif
 
+ifeq ($(CONFIG_LD_IS_LLD), y)
+KBUILD_LDFLAGS	+= -z norelro
+endif
+
 CHECKFLAGS	+= -D__aarch64__
 
 ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
@@ -142,6 +150,8 @@
 PHONY += vdso_install
 vdso_install:
 	$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
+	$(if $(CONFIG_COMPAT_VDSO), \
+		$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 $@)
 
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
--- linux-ein-5.4.0.orig/arch/arm64/boot/Makefile
+++ linux-ein-5.4.0/arch/arm64/boot/Makefile
@@ -16,7 +16,7 @@
 
 OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
 
-targets := Image Image.gz
+targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo
 
 $(obj)/Image: vmlinux FORCE
 	$(call if_changed,objcopy)
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/Makefile
+++ linux-ein-5.4.0/arch/arm64/boot/dts/Makefile
@@ -17,6 +17,7 @@
 subdir-y += lg
 subdir-y += marvell
 subdir-y += mediatek
+subdir-y += msc
 subdir-y += nvidia
 subdir-y += qcom
 subdir-y += realtek
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/actions/s700.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/actions/s700.dtsi
@@ -231,7 +231,7 @@
 
 		pinctrl: pinctrl@e01b0000 {
 			compatible = "actions,s700-pinctrl";
-			reg = <0x0 0xe01b0000 0x0 0x1000>;
+			reg = <0x0 0xe01b0000 0x0 0x100>;
 			clocks = <&cmu CLK_GPIO>;
 			gpio-controller;
 			gpio-ranges = <&pinctrl 0 0 136>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
@@ -127,7 +127,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_dc1sw>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-emmc.dts
@@ -15,7 +15,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc2_pins>;
 	vmmc-supply = <&reg_dcdc1>;
-	vqmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_eldo1>;
 	bus-width = <8>;
 	non-removable;
 	cap-mmc-hw-reset;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
@@ -140,7 +140,7 @@
 &mmc1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc1_pins>;
-	vmmc-supply = <&reg_aldo2>;
+	vmmc-supply = <&reg_dcdc1>;
 	vqmmc-supply = <&reg_dldo4>;
 	mmc-pwrseq = <&wifi_pwrseq>;
 	bus-width = <4>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
@@ -78,7 +78,7 @@
 	leds {
 		compatible = "gpio-leds";
 
-		status {
+		led-0 {
 			label = "orangepi:green:status";
 			gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
 		};
@@ -129,7 +129,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_gmac_3v3>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
@@ -11,3 +11,7 @@
 	compatible = "pine64,pine64-lts", "allwinner,sun50i-r18",
 		     "allwinner,sun50i-a64";
 };
+
+&mmc0 {
+	broken-cd;		/* card detect is broken on *some* boards */
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
@@ -52,7 +52,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-txid";
 	phy-handle = <&ext_rgmii_phy>;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
@@ -103,8 +103,6 @@
 };
 
 &ehci0 {
-	phys = <&usbphy 0>;
-	phy-names = "usb";
 	status = "okay";
 };
 
@@ -142,6 +140,7 @@
 	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
 	vmmc-supply = <&reg_dcdc1>;
 	vqmmc-supply = <&reg_eldo1>;
+	max-frequency = <200000000>;
 	bus-width = <8>;
 	non-removable;
 	cap-mmc-hw-reset;
@@ -150,8 +149,6 @@
 };
 
 &ohci0 {
-	phys = <&usbphy 0>;
-	phy-names = "usb";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
@@ -55,10 +55,9 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
 	vmmc-supply = <&reg_dcdc1>;
-	non-removable;
 	disable-wp;
 	bus-width = <4>;
-	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 push-pull switch */
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -142,6 +142,15 @@
 		clock-output-names = "ext-osc32k";
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
@@ -218,7 +227,7 @@
 
 			display_clocks: clock@0 {
 				compatible = "allwinner,sun50i-a64-de2-clk";
-				reg = <0x0 0x100000>;
+				reg = <0x0 0x10000>;
 				clocks = <&ccu CLK_BUS_DE>,
 					 <&ccu CLK_DE>;
 				clock-names = "bus",
@@ -467,7 +476,7 @@
 			resets = <&ccu RST_BUS_MMC2>;
 			reset-names = "ahb";
 			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-			max-frequency = <200000000>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -521,6 +530,8 @@
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>,
 				 <&ccu RST_BUS_EHCI0>;
+			phys = <&usbphy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
@@ -531,6 +542,8 @@
 			clocks = <&ccu CLK_BUS_OHCI0>,
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>;
+			phys = <&usbphy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
@@ -114,7 +114,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
@@ -157,7 +157,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
@@ -164,7 +164,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus.dts
@@ -72,7 +72,7 @@
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
@@ -54,21 +54,21 @@
 			enable-method = "psci";
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <1>;
 			enable-method = "psci";
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <2>;
 			enable-method = "psci";
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <3>;
@@ -76,6 +76,15 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
@@ -146,8 +155,7 @@
 				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
 			interrupt-names = "gp",
 					  "gpmmu",
 					  "pp",
@@ -158,8 +166,7 @@
 					  "pp2",
 					  "ppmmu2",
 					  "pp3",
-					  "ppmmu3",
-					  "pmu";
+					  "ppmmu3";
 			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
 			clock-names = "bus", "core";
 			resets = <&ccu RST_BUS_GPU>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
@@ -83,7 +83,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&ext_rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_aldo2>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
@@ -66,7 +66,7 @@
 &emac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&ext_rgmii_pins>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	phy-handle = <&ext_rgmii_phy>;
 	phy-supply = <&reg_aldo2>;
 	allwinner,rx-delay-ps = <200>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -70,6 +70,15 @@
 		clock-output-names = "ext_osc32k";
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
@@ -323,6 +332,7 @@
 			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&mmc0_pins>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -339,6 +349,7 @@
 			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&mmc1_pins>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -355,6 +366,7 @@
 			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&mmc2_pins>;
+			max-frequency = <150000000>;
 			status = "disabled";
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -524,6 +536,8 @@
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>,
 				 <&ccu RST_BUS_EHCI0>;
+			phys = <&usb2phy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
@@ -534,6 +548,8 @@
 			clocks = <&ccu CLK_BUS_OHCI0>,
 				 <&ccu CLK_USB_OHCI0>;
 			resets = <&ccu RST_BUS_OHCI0>;
+			phys = <&usb2phy 0>;
+			phy-names = "usb";
 			status = "disabled";
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -61,10 +61,10 @@
 
 	pmu {
 		compatible = "arm,armv8-pmuv3";
-		interrupts = <0 120 8>,
-			     <0 121 8>,
-			     <0 122 8>,
-			     <0 123 8>;
+		interrupts = <0 170 4>,
+			     <0 171 4>,
+			     <0 172 4>,
+			     <0 173 4>;
 		interrupt-affinity = <&cpu0>,
 				     <&cpu1>,
 				     <&cpu2>,
@@ -77,7 +77,7 @@
 		method = "smc";
 	};
 
-	intc: intc@fffc1000 {
+	intc: interrupt-controller@fffc1000 {
 		compatible = "arm,gic-400", "arm,cortex-a15-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
@@ -302,7 +302,7 @@
 			status = "disabled";
 		};
 
-		nand: nand@ffb90000 {
+		nand: nand-controller@ffb90000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "altr,socfpga-denali-nand";
@@ -445,7 +445,7 @@
 			clock-names = "timer";
 		};
 
-		uart0: serial0@ffc02000 {
+		uart0: serial@ffc02000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0xffc02000 0x100>;
 			interrupts = <0 108 4>;
@@ -456,7 +456,7 @@
 			status = "disabled";
 		};
 
-		uart1: serial1@ffc02100 {
+		uart1: serial@ffc02100 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0xffc02100 0x100>;
 			interrupts = <0 109 4>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
@@ -129,7 +129,7 @@
 	status = "okay";
 	clock-frequency = <100000>;
 	i2c-sda-falling-time-ns = <890>;  /* hcnt */
-	i2c-sdl-falling-time-ns = <890>;  /* lcnt */
+	i2c-scl-falling-time-ns = <890>;  /* lcnt */
 
 	adc@14 {
 		compatible = "lltc,ltc2497";
@@ -155,6 +155,7 @@
 };
 
 &qspi {
+	status = "okay";
 	flash@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
@@ -150,7 +150,7 @@
 		scpi_clocks: clocks {
 			compatible = "arm,scpi-clocks";
 
-			scpi_dvfs: clock-controller {
+			scpi_dvfs: clocks-0 {
 				compatible = "arm,scpi-dvfs-clocks";
 				#clock-cells = <1>;
 				clock-indices = <0>;
@@ -159,7 +159,7 @@
 		};
 
 		scpi_sensors: sensors {
-			compatible = "amlogic,meson-gxbb-scpi-sensors";
+			compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
 			#thermal-sensor-cells = <1>;
 		};
 	};
@@ -1162,7 +1162,7 @@
 
 			toddr_a: audio-controller@100 {
 				compatible = "amlogic,axg-toddr";
-				reg = <0x0 0x100 0x0 0x1c>;
+				reg = <0x0 0x100 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "TODDR_A";
 				interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
@@ -1173,7 +1173,7 @@
 
 			toddr_b: audio-controller@140 {
 				compatible = "amlogic,axg-toddr";
-				reg = <0x0 0x140 0x0 0x1c>;
+				reg = <0x0 0x140 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "TODDR_B";
 				interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
@@ -1184,7 +1184,7 @@
 
 			toddr_c: audio-controller@180 {
 				compatible = "amlogic,axg-toddr";
-				reg = <0x0 0x180 0x0 0x1c>;
+				reg = <0x0 0x180 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "TODDR_C";
 				interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
@@ -1195,7 +1195,7 @@
 
 			frddr_a: audio-controller@1c0 {
 				compatible = "amlogic,axg-frddr";
-				reg = <0x0 0x1c0 0x0 0x1c>;
+				reg = <0x0 0x1c0 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "FRDDR_A";
 				interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
@@ -1206,7 +1206,7 @@
 
 			frddr_b: audio-controller@200 {
 				compatible = "amlogic,axg-frddr";
-				reg = <0x0 0x200 0x0 0x1c>;
+				reg = <0x0 0x200 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "FRDDR_B";
 				interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
@@ -1217,7 +1217,7 @@
 
 			frddr_c: audio-controller@240 {
 				compatible = "amlogic,axg-frddr";
-				reg = <0x0 0x240 0x0 0x1c>;
+				reg = <0x0 0x240 0x0 0x2c>;
 				#sound-dai-cells = <0>;
 				sound-name-prefix = "FRDDR_C";
 				interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
@@ -1705,7 +1705,7 @@
 			sd_emmc_b: sd@5000 {
 				compatible = "amlogic,meson-axg-mmc";
 				reg = <0x0 0x5000 0x0 0x800>;
-				interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 				clocks = <&clkc CLKID_SD_EMMC_B>,
 					<&clkc CLKID_SD_EMMC_B_CLK0>,
@@ -1717,7 +1717,7 @@
 			sd_emmc_c: mmc@7000 {
 				compatible = "amlogic,meson-axg-mmc";
 				reg = <0x0 0x7000 0x0 0x800>;
-				interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 				clocks = <&clkc CLKID_SD_EMMC_C>,
 					<&clkc CLKID_SD_EMMC_C_CLK0>,
@@ -1728,18 +1728,18 @@
 		};
 
 		sram: sram@fffc0000 {
-			compatible = "amlogic,meson-axg-sram", "mmio-sram";
+			compatible = "mmio-sram";
 			reg = <0x0 0xfffc0000 0x0 0x20000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0 0x0 0xfffc0000 0x20000>;
 
-			cpu_scp_lpri: scp-shmem@13000 {
+			cpu_scp_lpri: scp-sram@13000 {
 				compatible = "amlogic,meson-axg-scp-shmem";
 				reg = <0x13000 0x400>;
 			};
 
-			cpu_scp_hpri: scp-shmem@13400 {
+			cpu_scp_hpri: scp-sram@13400 {
 				compatible = "amlogic,meson-axg-scp-shmem";
 				reg = <0x13400 0x400>;
 			};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -76,6 +76,12 @@
 			no-map;
 		};
 
+		/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
+		secmon_reserved_bl32: secmon@5300000 {
+			reg = <0x0 0x05300000 0x0 0x2000000>;
+			no-map;
+		};
+
 		linux,cma {
 			compatible = "shared-dma-pool";
 			reusable;
@@ -167,6 +173,8 @@
 				hwrng: rng@218 {
 					compatible = "amlogic,meson-rng";
 					reg = <0x0 0x218 0x0 0x4>;
+					clocks = <&clkc CLKID_RNG0>;
+					clock-names = "core";
 				};
 			};
 
@@ -1368,10 +1376,9 @@
 
 			dmc: bus@38000 {
 				compatible = "simple-bus";
-				reg = <0x0 0x38000 0x0 0x400>;
 				#address-cells = <2>;
 				#size-cells = <2>;
-				ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
+				ranges = <0x0 0x0 0x0 0x38000 0x0 0x2000>;
 
 				canvas: video-lut@48 {
 					compatible = "amlogic,canvas";
@@ -1509,7 +1516,7 @@
 				toddr_a: audio-controller@100 {
 					compatible = "amlogic,g12a-toddr",
 						     "amlogic,axg-toddr";
-					reg = <0x0 0x100 0x0 0x1c>;
+					reg = <0x0 0x100 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "TODDR_A";
 					interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
@@ -1521,7 +1528,7 @@
 				toddr_b: audio-controller@140 {
 					compatible = "amlogic,g12a-toddr",
 						     "amlogic,axg-toddr";
-					reg = <0x0 0x140 0x0 0x1c>;
+					reg = <0x0 0x140 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "TODDR_B";
 					interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
@@ -1533,7 +1540,7 @@
 				toddr_c: audio-controller@180 {
 					compatible = "amlogic,g12a-toddr",
 						     "amlogic,axg-toddr";
-					reg = <0x0 0x180 0x0 0x1c>;
+					reg = <0x0 0x180 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "TODDR_C";
 					interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
@@ -1545,7 +1552,7 @@
 				frddr_a: audio-controller@1c0 {
 					compatible = "amlogic,g12a-frddr",
 						     "amlogic,axg-frddr";
-					reg = <0x0 0x1c0 0x0 0x1c>;
+					reg = <0x0 0x1c0 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "FRDDR_A";
 					interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
@@ -1557,7 +1564,7 @@
 				frddr_b: audio-controller@200 {
 					compatible = "amlogic,g12a-frddr",
 						     "amlogic,axg-frddr";
-					reg = <0x0 0x200 0x0 0x1c>;
+					reg = <0x0 0x200 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "FRDDR_B";
 					interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
@@ -1569,7 +1576,7 @@
 				frddr_c: audio-controller@240 {
 					compatible = "amlogic,g12a-frddr",
 						     "amlogic,axg-frddr";
-					reg = <0x0 0x240 0x0 0x1c>;
+					reg = <0x0 0x240 0x0 0x2c>;
 					#sound-dai-cells = <0>;
 					sound-name-prefix = "FRDDR_C";
 					interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
@@ -1775,7 +1782,7 @@
 					#address-cells = <1>;
 					#size-cells = <0>;
 
-					internal_ephy: ethernet_phy@8 {
+					internal_ephy: ethernet-phy@8 {
 						compatible = "ethernet-phy-id0180.3301",
 							     "ethernet-phy-ieee802.3-c22";
 						interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
@@ -2309,7 +2316,7 @@
 		sd_emmc_a: sd@ffe03000 {
 			compatible = "amlogic,meson-axg-mmc";
 			reg = <0x0 0xffe03000 0x0 0x800>;
-			interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 			clocks = <&clkc CLKID_SD_EMMC_A>,
 				 <&clkc CLKID_SD_EMMC_A_CLK0>,
@@ -2321,7 +2328,7 @@
 		sd_emmc_b: sd@ffe05000 {
 			compatible = "amlogic,meson-axg-mmc";
 			reg = <0x0 0xffe05000 0x0 0x800>;
-			interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 			clocks = <&clkc CLKID_SD_EMMC_B>,
 				 <&clkc CLKID_SD_EMMC_B_CLK0>,
@@ -2333,7 +2340,7 @@
 		sd_emmc_c: mmc@ffe07000 {
 			compatible = "amlogic,meson-axg-mmc";
 			reg = <0x0 0xffe07000 0x0 0x800>;
-			interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
+			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 			clocks = <&clkc CLKID_SD_EMMC_C>,
 				 <&clkc CLKID_SD_EMMC_C_CLK0>,
@@ -2365,7 +2372,7 @@
 				reg = <0x0 0xff400000 0x0 0x40000>;
 				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
-				clock-names = "ddr";
+				clock-names = "otg";
 				phys = <&usb2_phy1>;
 				phy-names = "usb2-phy";
 				dr_mode = "peripheral";
@@ -2380,7 +2387,8 @@
 				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
 				dr_mode = "host";
 				snps,dis_u2_susphy_quirk;
-				snps,quirk-frame-length-adjustment;
+				snps,quirk-frame-length-adjustment = <0x20>;
+				snps,parkmode-disable-ss-quirk;
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
@@ -139,7 +139,7 @@
 		regulator-min-microvolt = <721000>;
 		regulator-max-microvolt = <1022000>;
 
-		vin-supply = <&dc_in>;
+		pwm-supply = <&dc_in>;
 
 		pwms = <&pwm_AO_cd 1 1250 0>;
 		pwm-dutycycle-range = <100 0>;
@@ -157,14 +157,6 @@
 		regulator-always-on;
 	};
 
-	reserved-memory {
-		/* TEE Reserved Memory */
-		bl32_reserved: bl32@5000000 {
-			reg = <0x0 0x05300000 0x0 0x2000000>;
-			no-map;
-		};
-	};
-
 	sdio_pwrseq: sdio-pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
@@ -139,7 +139,7 @@
 		regulator-min-microvolt = <721000>;
 		regulator-max-microvolt = <1022000>;
 
-		vin-supply = <&main_12v>;
+		pwm-supply = <&main_12v>;
 
 		pwms = <&pwm_AO_cd 1 1250 0>;
 		pwm-dutycycle-range = <100 0>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
@@ -139,7 +139,7 @@
 		regulator-min-microvolt = <721000>;
 		regulator-max-microvolt = <1022000>;
 
-		vin-supply = <&dc_in>;
+		pwm-supply = <&dc_in>;
 
 		pwms = <&pwm_AO_cd 1 1250 0>;
 		pwm-dutycycle-range = <100 0>;
@@ -340,7 +340,7 @@
 		eee-broken-1000t;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
 
 		interrupt-parent = <&gpio_intc>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi
@@ -54,26 +54,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <666666666>;
-			opp-microvolt = <731000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <731000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi
@@ -11,26 +11,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <667000000>;
-			opp-microvolt = <731000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <761000>;
@@ -71,26 +51,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <667000000>;
-			opp-microvolt = <731000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <731000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi
@@ -152,6 +152,10 @@
 	clock-latency = <50000>;
 };
 
+&frddr_a {
+	status = "okay";
+};
+
 &frddr_b {
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi
@@ -11,26 +11,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <731000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <667000000>;
-			opp-microvolt = <731000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <731000>;
@@ -71,26 +51,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <751000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <751000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <751000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <667000000>;
-			opp-microvolt = <751000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <771000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -41,6 +41,12 @@
 			no-map;
 		};
 
+		/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
+		secmon_reserved_bl32: secmon@5300000 {
+			reg = <0x0 0x05300000 0x0 0x2000000>;
+			no-map;
+		};
+
 		linux,cma {
 			compatible = "shared-dma-pool";
 			reusable;
@@ -166,7 +172,7 @@
 			reg = <0x14 0x10>;
 		};
 
-		eth_mac: eth_mac@34 {
+		eth_mac: eth-mac@34 {
 			reg = <0x34 0x10>;
 		};
 
@@ -183,7 +189,7 @@
 		scpi_clocks: clocks {
 			compatible = "arm,scpi-clocks";
 
-			scpi_dvfs: scpi_clocks@0 {
+			scpi_dvfs: clocks-0 {
 				compatible = "arm,scpi-dvfs-clocks";
 				#clock-cells = <1>;
 				clock-indices = <0>;
@@ -345,20 +351,20 @@
 		};
 
 		sram: sram@c8000000 {
-			compatible = "amlogic,meson-gx-sram", "amlogic,meson-gxbb-sram", "mmio-sram";
+			compatible = "mmio-sram";
 			reg = <0x0 0xc8000000 0x0 0x14000>;
 
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0 0x0 0xc8000000 0x14000>;
 
-			cpu_scp_lpri: scp-shmem@0 {
-				compatible = "amlogic,meson-gx-scp-shmem", "amlogic,meson-gxbb-scp-shmem";
+			cpu_scp_lpri: scp-sram@0 {
+				compatible = "amlogic,meson-gxbb-scp-shmem";
 				reg = <0x13000 0x400>;
 			};
 
-			cpu_scp_hpri: scp-shmem@200 {
-				compatible = "amlogic,meson-gx-scp-shmem", "amlogic,meson-gxbb-scp-shmem";
+			cpu_scp_hpri: scp-sram@200 {
+				compatible = "amlogic,meson-gxbb-scp-shmem";
 				reg = <0x13400 0x400>;
 			};
 		};
@@ -458,7 +464,7 @@
 			#size-cells = <2>;
 			ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
 
-			hwrng: rng {
+			hwrng: rng@0 {
 				compatible = "amlogic,meson-rng";
 				reg = <0x0 0x0 0x0 0x4>;
 			};
@@ -522,21 +528,21 @@
 			sd_emmc_a: mmc@70000 {
 				compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
 				reg = <0x0 0x70000 0x0 0x800>;
-				interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 			};
 
 			sd_emmc_b: mmc@72000 {
 				compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
 				reg = <0x0 0x72000 0x0 0x800>;
-				interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 			};
 
 			sd_emmc_c: mmc@74000 {
 				compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
 				reg = <0x0 0x74000 0x0 0x800>;
-				interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
+				interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
 				status = "disabled";
 			};
 		};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
@@ -165,7 +165,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -138,7 +138,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
@@ -296,7 +296,7 @@
 };
 
 &usb0_phy {
-	status = "okay";
+	status = "disabled";
 	phy-supply = <&usb_otg_pwr>;
 };
 
@@ -306,7 +306,7 @@
 };
 
 &usb0 {
-	status = "okay";
+	status = "disabled";
 };
 
 &usb1 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -126,7 +126,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 			interrupt-parent = <&gpio_intc>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
@@ -6,6 +6,7 @@
  */
 
 #include "meson-gxbb.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
 	aliases {
@@ -64,6 +65,7 @@
 		regulator-name = "VDDIO_AO18";
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
 	};
 
 	vcc_3v3: regulator-vcc_3v3 {
@@ -147,7 +149,7 @@
 			reg = <0>;
 
 			reset-assert-us = <10000>;
-			reset-deassert-us = <30000>;
+			reset-deassert-us = <80000>;
 			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 		};
 	};
@@ -157,6 +159,7 @@
 	status = "okay";
 	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
 	pinctrl-names = "default";
+	hdmi-supply = <&vddio_ao18>;
 };
 
 &hdmi_tx_tmds_port {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
@@ -9,7 +9,7 @@
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
@@ -9,7 +9,7 @@
 
 #include <dt-bindings/input/input.h>
 
-#include "meson-gxl-s905x.dtsi"
+#include "meson-gxl-s805x.dtsi"
 
 / {
 	compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 BayLibre SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include "meson-gxl-s905x.dtsi"
+
+/ {
+	compatible = "amlogic,s805x", "amlogic,meson-gxl";
+};
+
+/* The S805X Package doesn't seem to handle the 744MHz OPP correctly */
+&mali {
+	assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
+			  <&clkc CLKID_MALI_0>,
+			  <&clkc CLKID_MALI>; /* Glitch free mux */
+	assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
+				 <0>, /* Do Nothing */
+				 <&clkc CLKID_MALI_0>;
+	assigned-clock-rates = <0>, /* Do Nothing */
+			       <666666666>,
+			       <0>; /* Do Nothing */
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
@@ -82,7 +82,7 @@
 
 		/* External PHY reset is shared with internal PHY Led signal */
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 		interrupt-parent = <&gpio_intc>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts
@@ -18,7 +18,7 @@
 	leds {
 		compatible = "gpio-leds";
 
-		status {
+		led {
 			label = "n1:white:status";
 			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
 			default-state = "on";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -33,11 +33,9 @@
 
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
-		#address-cells = <1>;
-		#size-cells = <0>;
 		poll-interval = <100>;
 
-		button@0 {
+		power-button {
 			label = "power";
 			linux,code = <KEY_POWER>;
 			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
@@ -192,6 +190,9 @@
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+		max-speed = <2000000>;
+		clocks = <&wifi32k>;
+		clock-names = "lpo";
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -288,6 +288,11 @@
 	};
 };
 
+&hwrng {
+	clocks = <&clkc CLKID_RNG0>;
+	clock-names = "core";
+};
+
 &i2c_A {
 	clocks = <&clkc CLKID_I2C>;
 };
@@ -695,7 +700,7 @@
 		};
 	};
 
-	eth-phy-mux {
+	eth-phy-mux@55c {
 		compatible = "mdio-mux-mmioreg", "mdio-mux";
 		#address-cells = <1>;
 		#size-cells = <0>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -251,7 +251,7 @@
 		reg = <0>;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 		interrupt-parent = <&gpio_intc>;
@@ -327,7 +327,7 @@
 	#size-cells = <0>;
 
 	bus-width = <4>;
-	max-frequency = <50000000>;
+	max-frequency = <60000000>;
 
 	non-removable;
 	disable-wp;
@@ -395,7 +395,7 @@
 		#size-cells = <1>;
 		compatible = "winbond,w25q16", "jedec,spi-nor";
 		reg = <0>;
-		spi-max-frequency = <3000000>;
+		spi-max-frequency = <104000000>;
 	};
 };
 
@@ -409,6 +409,9 @@
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+		max-speed = <2000000>;
+		clocks = <&wifi32k>;
+		clock-names = "lpo";
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -112,7 +112,7 @@
 		max-speed = <1000>;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
@@ -64,7 +64,7 @@
 
 		/* External PHY reset is shared with internal PHY Led signal */
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 
 		interrupt-parent = <&gpio_intc>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
@@ -114,7 +114,7 @@
 		max-speed = <1000>;
 
 		reset-assert-us = <10000>;
-		reset-deassert-us = <30000>;
+		reset-deassert-us = <80000>;
 		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
@@ -43,13 +43,13 @@
 
 		white {
 			label = "vim3:white:sys";
-			gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
 		};
 
 		red {
 			label = "vim3:red";
-			gpios = <&gpio_expander 5 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio_expander 5 GPIO_ACTIVE_HIGH>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
@@ -164,14 +164,6 @@
 		regulator-always-on;
 	};
 
-	reserved-memory {
-		/* TEE Reserved Memory */
-		bl32_reserved: bl32@5000000 {
-			reg = <0x0 0x05300000 0x0 0x2000000>;
-			no-map;
-		};
-	};
-
 	sdio_pwrseq: sdio-pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
@@ -361,6 +353,9 @@
 
 	bluetooth {
 		compatible = "brcm,bcm43438-bt";
+		interrupt-parent = <&gpio_intc>;
+		interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "host-wakeup";
 		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
 		max-speed = <2000000>;
 		clocks = <&wifi32k>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
@@ -55,26 +55,6 @@
 		compatible = "operating-points-v2";
 		opp-shared;
 
-		opp-100000000 {
-			opp-hz = /bits/ 64 <100000000>;
-			opp-microvolt = <730000>;
-		};
-
-		opp-250000000 {
-			opp-hz = /bits/ 64 <250000000>;
-			opp-microvolt = <730000>;
-		};
-
-		opp-500000000 {
-			opp-hz = /bits/ 64 <500000000>;
-			opp-microvolt = <730000>;
-		};
-
-		opp-667000000 {
-			opp-hz = /bits/ 64 <666666666>;
-			opp-microvolt = <750000>;
-		};
-
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
 			opp-microvolt = <770000>;
@@ -90,7 +70,7 @@
 			opp-microvolt = <790000>;
 		};
 
-		opp-1512000000 {
+		opp-1500000000 {
 			opp-hz = /bits/ 64 <1500000000>;
 			opp-microvolt = <800000>;
 		};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi
@@ -8,7 +8,7 @@
 	gic: interrupt-controller@2c001000 {
 		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
-		#address-cells = <2>;
+		#address-cells = <1>;
 		interrupt-controller;
 		reg = <0x0 0x2c001000 0 0x1000>,
 		      <0x0 0x2c002000 0 0x2000>,
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi
@@ -8,9 +8,9 @@
 	gic: interrupt-controller@2f000000 {
 		compatible = "arm,gic-v3";
 		#interrupt-cells = <3>;
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x0 0x2f000000 0x100000>;
 		interrupt-controller;
 		reg =	<0x0 0x2f000000 0x0 0x10000>,
 			<0x0 0x2f100000 0x0 0x200000>,
@@ -22,7 +22,7 @@
 		its: its@2f020000 {
 			compatible = "arm,gic-v3-its";
 			msi-controller;
-			reg = <0x0 0x2f020000 0x0 0x20000>;
+			reg = <0x20000 0x20000>;
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/foundation-v8.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/foundation-v8.dtsi
@@ -107,51 +107,51 @@
 
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 63>;
-		interrupt-map = <0 0  0 &gic 0 0 GIC_SPI  0 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  1 &gic 0 0 GIC_SPI  1 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  2 &gic 0 0 GIC_SPI  2 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  3 &gic 0 0 GIC_SPI  3 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  4 &gic 0 0 GIC_SPI  4 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  5 &gic 0 0 GIC_SPI  5 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  6 &gic 0 0 GIC_SPI  6 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  7 &gic 0 0 GIC_SPI  7 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  8 &gic 0 0 GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  9 &gic 0 0 GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 10 &gic 0 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 11 &gic 0 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 12 &gic 0 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 13 &gic 0 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 14 &gic 0 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 15 &gic 0 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 16 &gic 0 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 17 &gic 0 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 18 &gic 0 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 19 &gic 0 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 20 &gic 0 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 21 &gic 0 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 22 &gic 0 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 23 &gic 0 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 24 &gic 0 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 25 &gic 0 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 26 &gic 0 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 27 &gic 0 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 28 &gic 0 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 29 &gic 0 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 30 &gic 0 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 31 &gic 0 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 32 &gic 0 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 33 &gic 0 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 34 &gic 0 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 35 &gic 0 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 36 &gic 0 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 37 &gic 0 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 38 &gic 0 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 39 &gic 0 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 40 &gic 0 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 41 &gic 0 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 42 &gic 0 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0  0 &gic 0 GIC_SPI  0 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  1 &gic 0 GIC_SPI  1 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  2 &gic 0 GIC_SPI  2 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  3 &gic 0 GIC_SPI  3 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  4 &gic 0 GIC_SPI  4 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  5 &gic 0 GIC_SPI  5 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  6 &gic 0 GIC_SPI  6 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  7 &gic 0 GIC_SPI  7 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  8 &gic 0 GIC_SPI  8 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  9 &gic 0 GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 10 &gic 0 GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 11 &gic 0 GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 12 &gic 0 GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 13 &gic 0 GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 14 &gic 0 GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 15 &gic 0 GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 16 &gic 0 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 17 &gic 0 GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 18 &gic 0 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 19 &gic 0 GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 20 &gic 0 GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 21 &gic 0 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 22 &gic 0 GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 23 &gic 0 GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 24 &gic 0 GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 25 &gic 0 GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 26 &gic 0 GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 27 &gic 0 GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 28 &gic 0 GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 29 &gic 0 GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 30 &gic 0 GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 31 &gic 0 GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 32 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 33 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 34 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 35 &gic 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 36 &gic 0 GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 37 &gic 0 GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 38 &gic 0 GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 39 &gic 0 GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 40 &gic 0 GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 41 &gic 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 42 &gic 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
 
-		ethernet@2,02000000 {
+		ethernet@202000000 {
 			compatible = "smsc,lan91c111";
 			reg = <2 0x02000000 0x10000>;
 			interrupts = <15>;
@@ -178,7 +178,7 @@
 			clock-output-names = "v2m:refclk32khz";
 		};
 
-		iofpga@3,00000000 {
+		iofpga@300000000 {
 			compatible = "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/fvp-base-revc.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/fvp-base-revc.dts
@@ -161,10 +161,10 @@
 		bus-range = <0x0 0x1>;
 		reg = <0x0 0x40000000 0x0 0x10000000>;
 		ranges = <0x2000000 0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>;
-		interrupt-map = <0 0 0 1 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 2 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 3 &gic GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 4 &gic GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 2 &gic 0 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 3 &gic 0 0 GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 4 &gic 0 0 GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-map-mask = <0x0 0x0 0x0 0x7>;
 		msi-map = <0x0 &its 0x0 0x10000>;
 		iommu-map = <0x0 &smmu 0x0 0x10000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/juno-base.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/juno-base.dtsi
@@ -6,7 +6,6 @@
 	/*
 	 *  Devices shared by all Juno boards
 	 */
-	dma-ranges = <0 0 0 0 0x100 0>;
 
 	memtimer: timer@2a810000 {
 		compatible = "arm,armv7-timer-mem";
@@ -63,35 +62,35 @@
 		      <0x0 0x2c02f000 0 0x2000>,
 		      <0x0 0x2c04f000 0 0x2000>,
 		      <0x0 0x2c06f000 0 0x2000>;
-		#address-cells = <2>;
+		#address-cells = <1>;
 		#interrupt-cells = <3>;
-		#size-cells = <2>;
+		#size-cells = <1>;
 		interrupt-controller;
 		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
-		ranges = <0 0 0 0x2c1c0000 0 0x40000>;
+		ranges = <0 0 0x2c1c0000 0x40000>;
 
 		v2m_0: v2m@0 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0 0 0x10000>;
+			reg = <0 0x10000>;
 		};
 
 		v2m@10000 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0x10000 0 0x10000>;
+			reg = <0x10000 0x10000>;
 		};
 
 		v2m@20000 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0x20000 0 0x10000>;
+			reg = <0x20000 0x10000>;
 		};
 
 		v2m@30000 {
 			compatible = "arm,gic-v2m-frame";
 			msi-controller;
-			reg = <0 0x30000 0 0x10000>;
+			reg = <0x30000 0x10000>;
 		};
 	};
 
@@ -520,10 +519,10 @@
 			 <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 0 7>;
-		interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 2 &gic 0 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 3 &gic 0 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 0 4 &gic 0 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0 0 1 &gic 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 2 &gic 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 3 &gic 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 0 4 &gic 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
 		msi-parent = <&v2m_0>;
 		status = "disabled";
 		iommu-map-mask = <0x0>;	/* RC has no means to output PCI RID */
@@ -538,13 +537,13 @@
 		clocks {
 			compatible = "arm,scpi-clocks";
 
-			scpi_dvfs: scpi-dvfs {
+			scpi_dvfs: clocks-0 {
 				compatible = "arm,scpi-dvfs-clocks";
 				#clock-cells = <1>;
 				clock-indices = <0>, <1>, <2>;
 				clock-output-names = "atlclk", "aplclk","gpuclk";
 			};
-			scpi_clk: scpi-clk {
+			scpi_clk: clocks-1 {
 				compatible = "arm,scpi-variable-clocks";
 				#clock-cells = <1>;
 				clock-indices = <3>;
@@ -552,7 +551,7 @@
 			};
 		};
 
-		scpi_devpd: scpi-power-domains {
+		scpi_devpd: power-controller {
 			compatible = "arm,scpi-power-domains";
 			num-domains = <2>;
 			#power-domain-cells = <1>;
@@ -787,19 +786,19 @@
 
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0 15>;
-		interrupt-map = <0 0  0 &gic 0 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  1 &gic 0 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  2 &gic 0 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  3 &gic 0 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  4 &gic 0 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  5 &gic 0 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  6 &gic 0 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  7 &gic 0 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  8 &gic 0 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0  9 &gic 0 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 10 &gic 0 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 11 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
-				<0 0 12 &gic 0 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0  0 &gic 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  1 &gic 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  2 &gic 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  3 &gic 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  4 &gic 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  5 &gic 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  6 &gic 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  7 &gic 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  8 &gic 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0  9 &gic 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 10 &gic 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 11 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+				<0 0 12 &gic 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
 	};
 
 	site2: tlx@60000000 {
@@ -809,6 +808,6 @@
 		ranges = <0 0 0x60000000 0x10000000>;
 		#interrupt-cells = <1>;
 		interrupt-map-mask = <0 0>;
-		interrupt-map = <0 0 &gic 0 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/juno-clocks.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/juno-clocks.dtsi
@@ -8,10 +8,10 @@
  */
 / {
 	/* SoC fixed clocks */
-	soc_uartclk: refclk7273800hz {
+	soc_uartclk: refclk7372800hz {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
-		clock-frequency = <7273800>;
+		clock-frequency = <7372800>;
 		clock-output-names = "juno:uartclk";
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
@@ -103,7 +103,7 @@
 				};
 			};
 
-			flash@0,00000000 {
+			flash@0 {
 				/* 2 * 32MiB NOR Flash memory mounted on CS0 */
 				compatible = "arm,vexpress-flash", "cfi-flash";
 				reg = <0 0x00000000 0x04000000>;
@@ -120,7 +120,7 @@
 				};
 			};
 
-			ethernet@2,00000000 {
+			ethernet@200000000 {
 				compatible = "smsc,lan9118", "smsc,lan9115";
 				reg = <2 0x00000000 0x10000>;
 				interrupts = <3>;
@@ -133,7 +133,7 @@
 				vddvario-supply = <&mb_fixed_3v3>;
 			};
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				compatible = "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi
@@ -9,7 +9,7 @@
 		motherboard {
 			arm,v2m-memory-map = "rs2";
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				virtio-p9@140000 {
 					compatible = "virtio,mmio";
 					reg = <0x140000 0x200>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
@@ -17,14 +17,14 @@
 			#interrupt-cells = <1>;
 			ranges;
 
-			flash@0,00000000 {
+			flash@0 {
 				compatible = "arm,vexpress-flash", "cfi-flash";
 				reg = <0 0x00000000 0x04000000>,
 				      <4 0x00000000 0x04000000>;
 				bank-width = <4>;
 			};
 
-			ethernet@2,02000000 {
+			ethernet@202000000 {
 				compatible = "smsc,lan91c111";
 				reg = <2 0x02000000 0x10000>;
 				interrupts = <15>;
@@ -51,7 +51,7 @@
 				clock-output-names = "v2m:refclk32khz";
 			};
 
-			iofpga@3,00000000 {
+			iofpga@300000000 {
 				compatible = "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
@@ -111,8 +111,8 @@
 		compatible = "silabs,si3226x";
 		reg = <0>;
 		spi-max-frequency = <5000000>;
-		spi-cpha = <1>;
-		spi-cpol = <1>;
+		spi-cpha;
+		spi-cpol;
 		pl022,hierarchy = <0>;
 		pl022,interface = <0>;
 		pl022,slave-tx-disable = <0>;
@@ -135,8 +135,8 @@
 		at25,byte-len = <0x8000>;
 		at25,addr-mode = <2>;
 		at25,page-size = <64>;
-		spi-cpha = <1>;
-		spi-cpol = <1>;
+		spi-cpha;
+		spi-cpol;
 		pl022,hierarchy = <0>;
 		pl022,interface = <0>;
 		pl022,slave-tx-disable = <0>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
@@ -687,7 +687,7 @@
 			};
 		};
 
-		sata: ahci@663f2000 {
+		sata: sata@663f2000 {
 			compatible = "brcm,iproc-ahci", "generic-ahci";
 			reg = <0x663f2000 0x1000>;
 			dma-coherent;
@@ -745,7 +745,7 @@
 		};
 
 		qspi: spi@66470200 {
-			compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
+			compatible = "brcm,spi-ns2-qspi", "brcm,spi-bcm-qspi";
 			reg = <0x66470200 0x184>,
 				<0x66470000 0x124>,
 				<0x67017408 0x004>,
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
@@ -4,21 +4,26 @@
  */
 	usb {
 		compatible = "simple-bus";
-		dma-ranges;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges = <0x0 0x0 0x68500000 0x00400000>;
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
+
+		/*
+		 * Internally, USB bus to the interconnect can only address up
+		 * to 40-bit
+		 */
+		dma-ranges = <0 0 0 0 0x100 0x0>;
 
 		usbphy0: usb-phy@0 {
 			compatible = "brcm,sr-usb-combo-phy";
-			reg = <0x00000000 0x100>;
+			reg = <0x0 0x00000000 0x0 0x100>;
 			#phy-cells = <1>;
 			status = "disabled";
 		};
 
 		xhci0: usb@1000 {
 			compatible = "generic-xhci";
-			reg = <0x00001000 0x1000>;
+			reg = <0x0 0x00001000 0x0 0x1000>;
 			interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy0 1>, <&usbphy0 0>;
 			phy-names = "phy0", "phy1";
@@ -28,7 +33,7 @@
 
 		bdc0: usb@2000 {
 			compatible = "brcm,bdc-v0.16";
-			reg = <0x00002000 0x1000>;
+			reg = <0x0 0x00002000 0x0 0x1000>;
 			interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy0 0>, <&usbphy0 1>;
 			phy-names = "phy0", "phy1";
@@ -38,21 +43,21 @@
 
 		usbphy1: usb-phy@10000 {
 			compatible = "brcm,sr-usb-combo-phy";
-			reg = <0x00010000 0x100>;
+			reg = <0x0 0x00010000 0x0 0x100>;
 			#phy-cells = <1>;
 			status = "disabled";
 		};
 
 		usbphy2: usb-phy@20000 {
 			compatible = "brcm,sr-usb-hs-phy";
-			reg = <0x00020000 0x100>;
+			reg = <0x0 0x00020000 0x0 0x100>;
 			#phy-cells = <0>;
 			status = "disabled";
 		};
 
 		xhci1: usb@11000 {
 			compatible = "generic-xhci";
-			reg = <0x00011000 0x1000>;
+			reg = <0x0 0x00011000 0x0 0x1000>;
 			interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy1 1>, <&usbphy2>, <&usbphy1 0>;
 			phy-names = "phy0", "phy1", "phy2";
@@ -62,7 +67,7 @@
 
 		bdc1: usb@21000 {
 			compatible = "brcm,bdc-v0.16";
-			reg = <0x00021000 0x1000>;
+			reg = <0x0 0x00021000 0x0 0x1000>;
 			interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
 			phys = <&usbphy2>;
 			phy-names = "phy0";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -389,7 +389,7 @@
 	s2mps13-pmic@66 {
 		compatible = "samsung,s2mps13-pmic";
 		interrupt-parent = <&gpa0>;
-		interrupts = <7 IRQ_TYPE_NONE>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
 		reg = <0x66>;
 		samsung,s2mps11-wrstbi-ground;
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos5433.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/exynos/exynos5433.dtsi
@@ -18,8 +18,8 @@
 
 / {
 	compatible = "samsung,exynos5433";
-	#address-cells = <1>;
-	#size-cells = <1>;
+	#address-cells = <2>;
+	#size-cells = <2>;
 
 	interrupt-parent = <&gic>;
 
@@ -311,7 +311,7 @@
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
-		ranges;
+		ranges = <0x0 0x0 0x0 0x18000000>;
 
 		chipid@10000000 {
 			compatible = "samsung,exynos4210-chipid";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
@@ -90,7 +90,7 @@
 	s2mps15_pmic@66 {
 		compatible = "samsung,s2mps15-pmic";
 		reg = <0x66>;
-		interrupts = <2 IRQ_TYPE_NONE>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		interrupt-parent = <&gpa0>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pmic_irq>;
@@ -157,6 +157,7 @@
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1150000>;
 				regulator-enable-ramp-delay = <125>;
+				regulator-always-on;
 			};
 
 			ldo8_reg: LDO8 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/exynos/exynos7.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/exynos/exynos7.dtsi
@@ -12,8 +12,8 @@
 / {
 	compatible = "samsung,exynos7";
 	interrupt-parent = <&gic>;
-	#address-cells = <1>;
-	#size-cells = <1>;
+	#address-cells = <2>;
+	#size-cells = <2>;
 
 	aliases {
 		pinctrl0 = &pinctrl_alive;
@@ -90,15 +90,17 @@
 	};
 
 	psci {
-		compatible = "arm,psci-0.2";
+		compatible = "arm,psci";
 		method = "smc";
+		cpu_off = <0x84000002>;
+		cpu_on = <0xC4000003>;
 	};
 
 	soc: soc {
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
-		ranges;
+		ranges = <0 0 0 0x18000000>;
 
 		chipid@10000000 {
 			compatible = "samsung,exynos4210-chipid";
@@ -111,7 +113,7 @@
 			#address-cells = <0>;
 			interrupt-controller;
 			reg =	<0x11001000 0x1000>,
-				<0x11002000 0x1000>,
+				<0x11002000 0x2000>,
 				<0x11004000 0x2000>,
 				<0x11006000 0x2000>;
 		};
@@ -494,13 +496,6 @@
 		pmu_system_controller: system-controller@105c0000 {
 			compatible = "samsung,exynos7-pmu", "syscon";
 			reg = <0x105c0000 0x5000>;
-
-			reboot: syscon-reboot {
-				compatible = "syscon-reboot";
-				regmap = <&pmu_system_controller>;
-				offset = <0x0400>;
-				mask = <0x1>;
-			};
 		};
 
 		rtc: rtc@10590000 {
@@ -650,3 +645,4 @@
 };
 
 #include "exynos7-pinctrl.dtsi"
+#include "arm/exynos-syscon-restart.dtsi"
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/Makefile
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/Makefile
@@ -22,12 +22,21 @@
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
 
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7902.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-x8high35-pdk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-x8high35-bms.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-hummingboard-pulse.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-devkit.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-nitrogen.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-pe100a.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-phanbell.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-pico-pi.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk-hdmi.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-rmb3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-zii-ultra-zest.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-ai_ml.dtb
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
@@ -177,6 +177,7 @@
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
@@ -161,11 +161,6 @@
 				vcc-supply = <&sb_3v3>;
 			};
 
-			rtc@51 {
-				compatible = "nxp,pcf2129";
-				reg = <0x51>;
-			};
-
 			eeprom@56 {
 				compatible = "atmel,24c512";
 				reg = <0x56>;
@@ -209,6 +204,15 @@
 
 };
 
+&i2c1 {
+	status = "okay";
+
+	rtc@51 {
+		compatible = "nxp,pcf2129";
+		reg = <0x51>;
+	};
+};
+
 &enetc_port1 {
 	phy-handle = <&qds_phy1>;
 	phy-connection-type = "rgmii-id";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -65,7 +65,7 @@
 		};
 	};
 
-	sysclk: clock-sysclk {
+	sysclk: sysclk {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <100000000>;
@@ -102,8 +102,8 @@
 
 	reboot {
 		compatible ="syscon-reboot";
-		regmap = <&dcfg>;
-		offset = <0xb0>;
+		regmap = <&rst>;
+		offset = <0>;
 		mask = <0x02>;
 	};
 
@@ -151,14 +151,20 @@
 		ddr: memory-controller@1080000 {
 			compatible = "fsl,qoriq-memory-controller";
 			reg = <0x0 0x1080000 0x0 0x1000>;
-			interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
-			big-endian;
+			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+			little-endian;
 		};
 
 		dcfg: syscon@1e00000 {
 			compatible = "fsl,ls1028a-dcfg", "syscon";
 			reg = <0x0 0x1e00000 0x0 0x10000>;
-			big-endian;
+			little-endian;
+		};
+
+		rst: syscon@1e60000 {
+			compatible = "syscon";
+			reg = <0x0 0x1e60000 0x0 0x10000>;
+			little-endian;
 		};
 
 		scfg: syscon@1fc0000 {
@@ -281,6 +287,24 @@
 			status = "disabled";
 		};
 
+		can0: can@2180000 {
+			compatible = "fsl,ls1028ar1-flexcan", "fsl,lx2160ar1-flexcan";
+			reg = <0x0 0x2180000 0x0 0x10000>;
+			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&sysclk>, <&clockgen 4 1>;
+			clock-names = "ipg", "per";
+			status = "disabled";
+		};
+
+		can1: can@2190000 {
+			compatible = "fsl,ls1028ar1-flexcan", "fsl,lx2160ar1-flexcan";
+			reg = <0x0 0x2190000 0x0 0x10000>;
+			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&sysclk>, <&clockgen 4 1>;
+			clock-names = "ipg", "per";
+			status = "disabled";
+		};
+
 		duart0: serial@21c0500 {
 			compatible = "fsl,ns16550", "ns16550a";
 			reg = <0x00 0x21c0500 0x0 0x100>;
@@ -490,14 +514,14 @@
 			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc000000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core1_watchdog: watchdog@c010000 {
 			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc010000 0x0 0x1000>;
 			clocks = <&clockgen 4 15>, <&clockgen 4 15>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		sai1: audio-controller@f100000 {
@@ -567,7 +591,7 @@
 					       0x00010004 0x0000003d
 					       0x00010005 0x00000045
 					       0x00010006 0x0000004d
-					       0x00010007 0x00000045
+					       0x00010007 0x00000055
 					       0x00010008 0x0000005e
 					       0x00010009 0x00000066
 					       0x0001000a 0x0000006e
@@ -667,7 +691,7 @@
 			ethernet@0,4 {
 				compatible = "fsl,enetc-ptp";
 				reg = <0x000400 0 0 0 0>;
-				clocks = <&clockgen 4 0>;
+				clocks = <&clockgen 2 3>;
 				little-endian;
 			};
 		};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi
@@ -20,6 +20,8 @@
 };
 
 &fman0 {
+	fsl,erratum-a050385;
+
 	/* these aliases provide the FMan ports mapping */
 	enet0: ethernet@e0000 {
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
@@ -119,12 +119,12 @@
 
 	ethernet@e4000 {
 		phy-handle = <&rgmii_phy1>;
-		phy-connection-type = "rgmii-txid";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e6000 {
 		phy-handle = <&rgmii_phy2>;
-		phy-connection-type = "rgmii-txid";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e8000 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -241,6 +241,7 @@
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <0 75 0x4>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1046a-frwy.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1046a-frwy.dts
@@ -83,15 +83,9 @@
 			};
 
 			eeprom@52 {
-				compatible = "atmel,24c512";
+				compatible = "onnn,cat24c04", "atmel,24c04";
 				reg = <0x52>;
 			};
-
-			eeprom@53 {
-				compatible = "atmel,24c512";
-				reg = <0x53>;
-			};
-
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
@@ -58,14 +58,9 @@
 	};
 
 	eeprom@52 {
-		compatible = "atmel,24c512";
+		compatible = "onnn,cat24c05", "atmel,24c04";
 		reg = <0x52>;
 	};
-
-	eeprom@53 {
-		compatible = "atmel,24c512";
-		reg = <0x53>;
-	};
 };
 
 &i2c3 {
@@ -127,12 +122,12 @@
 &fman0 {
 	ethernet@e4000 {
 		phy-handle = <&rgmii_phy1>;
-		phy-connection-type = "rgmii";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e6000 {
 		phy-handle = <&rgmii_phy2>;
-		phy-connection-type = "rgmii";
+		phy-connection-type = "rgmii-id";
 	};
 
 	ethernet@e8000 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -244,6 +244,7 @@
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
@@ -304,7 +305,7 @@
 
 		dcfg: dcfg@1ee0000 {
 			compatible = "fsl,ls1046a-dcfg", "syscon";
-			reg = <0x0 0x1ee0000 0x0 0x10000>;
+			reg = <0x0 0x1ee0000 0x0 0x1000>;
 			big-endian;
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -637,59 +637,59 @@
 		};
 
 		cluster1_core0_watchdog: wdt@c000000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc000000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core1_watchdog: wdt@c010000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc010000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core2_watchdog: wdt@c020000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc020000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core3_watchdog: wdt@c030000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc030000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core0_watchdog: wdt@c100000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc100000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core1_watchdog: wdt@c110000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc110000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core2_watchdog: wdt@c120000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc120000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core3_watchdog: wdt@c130000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc130000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		fsl_mc: fsl-mc@80c000000 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
@@ -227,59 +227,59 @@
 		};
 
 		cluster1_core0_watchdog: wdt@c000000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc000000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster1_core1_watchdog: wdt@c010000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc010000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core0_watchdog: wdt@c100000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc100000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster2_core1_watchdog: wdt@c110000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc110000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster3_core0_watchdog: wdt@c200000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc200000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster3_core1_watchdog: wdt@c210000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc210000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster4_core0_watchdog: wdt@c300000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc300000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		cluster4_core1_watchdog: wdt@c310000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xc310000 0x0 0x1000>;
 			clocks = <&clockgen 4 3>, <&clockgen 4 3>;
-			clock-names = "apb_pclk", "wdog_clk";
+			clock-names = "wdog_clk", "apb_pclk";
 		};
 
 		crypto: crypto@8000000 {
@@ -501,7 +501,6 @@
 			clocks = <&clockgen 4 3>;
 			clock-names = "dspi";
 			spi-num-chipselects = <5>;
-			bus-num = <0>;
 		};
 
 		esdhc: esdhc@2140000 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
@@ -0,0 +1,57 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8mm-evk.dtsi"
+
+/ {
+	model = "FSL i.MX8MM DDR4 EVK with CYW43455 WIFI/BT board";
+	compatible = "fsl,imx8mm-ddr4-evk", "fsl,imx8mm";
+
+	leds {
+		pinctrl-0 = <&pinctrl_gpio_led_2>;
+
+		status {
+			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&gpmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_gpmi_nand>;
+	nand-on-flash-bbt;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_gpmi_nand: gpmi-nand {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_ALE_RAWNAND_ALE		0x00000096
+			MX8MM_IOMUXC_NAND_CE0_B_RAWNAND_CE0_B		0x00000096
+			MX8MM_IOMUXC_NAND_CE1_B_RAWNAND_CE1_B		0x00000096
+			MX8MM_IOMUXC_NAND_CLE_RAWNAND_CLE		0x00000096
+			MX8MM_IOMUXC_NAND_DATA00_RAWNAND_DATA00		0x00000096
+			MX8MM_IOMUXC_NAND_DATA01_RAWNAND_DATA01		0x00000096
+			MX8MM_IOMUXC_NAND_DATA02_RAWNAND_DATA02		0x00000096
+			MX8MM_IOMUXC_NAND_DATA03_RAWNAND_DATA03		0x00000096
+			MX8MM_IOMUXC_NAND_DATA04_RAWNAND_DATA04		0x00000096
+			MX8MM_IOMUXC_NAND_DATA05_RAWNAND_DATA05		0x00000096
+			MX8MM_IOMUXC_NAND_DATA06_RAWNAND_DATA06		0x00000096
+			MX8MM_IOMUXC_NAND_DATA07_RAWNAND_DATA07		0x00000096
+			MX8MM_IOMUXC_NAND_RE_B_RAWNAND_RE_B		0x00000096
+			MX8MM_IOMUXC_NAND_READY_B_RAWNAND_READY_B	0x00000056
+			MX8MM_IOMUXC_NAND_WE_B_RAWNAND_WE_B		0x00000096
+			MX8MM_IOMUXC_NAND_WP_B_RAWNAND_WP_B		0x00000096
+		>;
+	};
+
+	pinctrl_gpio_led_2: gpioled2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4	0x19
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
@@ -1,145 +1,61 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Copyright 2019 NXP
+ * Copyright 2019-2020 NXP
  */
 
 /dts-v1/;
 
 #include <dt-bindings/usb/pd.h>
-#include "imx8mm.dtsi"
+#include "imx8mm-evk.dtsi"
 
 / {
 	model = "FSL i.MX8MM EVK board";
 	compatible = "fsl,imx8mm-evk", "fsl,imx8mm";
 
-	chosen {
-		stdout-path = &uart2;
-	};
-
-	leds {
-		compatible = "gpio-leds";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_gpio_led>;
-
-		status {
-			label = "status";
-			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
-			default-state = "on";
-		};
-	};
-
-	reg_usdhc2_vmmc: regulator-usdhc2 {
-		compatible = "regulator-fixed";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
-		regulator-name = "VSD_3V3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
+	aliases {
+		spi0 = &flexspi;
 	};
+};
 
-	wm8524: audio-codec {
-		#sound-dai-cells = <0>;
-		compatible = "wlf,wm8524";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_gpio_wlf>;
-		wlf,mute-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
-	};
+&ddrc {
+	operating-points-v2 = <&ddrc_opp_table>;
 
-	sound-wm8524 {
-		compatible = "simple-audio-card";
-		simple-audio-card,name = "wm8524-audio";
-		simple-audio-card,format = "i2s";
-		simple-audio-card,frame-master = <&cpudai>;
-		simple-audio-card,bitclock-master = <&cpudai>;
-		simple-audio-card,widgets =
-			"Line", "Left Line Out Jack",
-			"Line", "Right Line Out Jack";
-		simple-audio-card,routing =
-			"Left Line Out Jack", "LINEVOUTL",
-			"Right Line Out Jack", "LINEVOUTR";
+	ddrc_opp_table: opp-table {
+		compatible = "operating-points-v2";
 
-		cpudai: simple-audio-card,cpu {
-			sound-dai = <&sai3>;
+		opp-25M {
+			opp-hz = /bits/ 64 <25000000>;
 		};
 
-		simple-audio-card,codec {
-			sound-dai = <&wm8524>;
-			clocks = <&clk IMX8MM_CLK_SAI3_ROOT>;
+		opp-100M {
+			opp-hz = /bits/ 64 <100000000>;
 		};
-	};
-};
-
-&A53_0 {
-	cpu-supply = <&buck2_reg>;
-};
-
-&fec1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_fec1>;
-	phy-mode = "rgmii-id";
-	phy-handle = <&ethphy0>;
-	fsl,magic-packet;
-	status = "okay";
 
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		ethphy0: ethernet-phy@0 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <0>;
+		opp-750M {
+			opp-hz = /bits/ 64 <750000000>;
 		};
 	};
 };
 
-&sai3 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_sai3>;
-	assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
-	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
-	assigned-clock-rates = <24576000>;
-	status = "okay";
-};
-
-&snvs_pwrkey {
-	status = "okay";
-};
-
-&uart2 { /* console */
+&flexspi {
 	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_uart2>;
+	pinctrl-0 = <&pinctrl_flexspi>;
 	status = "okay";
-};
 
-&usbotg1 {
-	dr_mode = "otg";
-	hnp-disable;
-	srp-disable;
-	adp-disable;
-	usb-role-switch;
-	status = "okay";
-
-	port {
-		usb1_drd_sw: endpoint {
-			remote-endpoint = <&typec1_dr_sw>;
-		};
+	flash@0 {
+		reg = <0>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		spi-max-frequency = <80000000>;
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
 	};
 };
 
-&usdhc2 {
-	pinctrl-names = "default", "state_100mhz", "state_200mhz";
-	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
-	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
-	cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
-	bus-width = <4>;
-	vmmc-supply = <&reg_usdhc2_vmmc>;
-	status = "okay";
-};
-
 &usdhc3 {
+	assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>;
+	assigned-clock-rates = <400000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc3>;
 	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
@@ -149,339 +65,64 @@
 	status = "okay";
 };
 
-&wdog1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_wdog>;
-	fsl,ext-reset-output;
-	status = "okay";
-};
-
-&i2c1 {
-	clock-frequency = <400000>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_i2c1>;
-	status = "okay";
-
-	pmic@4b {
-		compatible = "rohm,bd71847";
-		reg = <0x4b>;
-		pinctrl-0 = <&pinctrl_pmic>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <3 GPIO_ACTIVE_LOW>;
-		rohm,reset-snvs-powered;
-
-		regulators {
-			buck1_reg: BUCK1 {
-				regulator-name = "BUCK1";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1300000>;
-				regulator-boot-on;
-				regulator-always-on;
-				regulator-ramp-delay = <1250>;
-			};
-
-			buck2_reg: BUCK2 {
-				regulator-name = "BUCK2";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1300000>;
-				regulator-boot-on;
-				regulator-always-on;
-				regulator-ramp-delay = <1250>;
-				rohm,dvs-run-voltage = <1000000>;
-				rohm,dvs-idle-voltage = <900000>;
-			};
-
-			buck3_reg: BUCK3 {
-				// BUCK5 in datasheet
-				regulator-name = "BUCK3";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			buck4_reg: BUCK4 {
-				// BUCK6 in datasheet
-				regulator-name = "BUCK4";
-				regulator-min-microvolt = <3000000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			buck5_reg: BUCK5 {
-				// BUCK7 in datasheet
-				regulator-name = "BUCK5";
-				regulator-min-microvolt = <1605000>;
-				regulator-max-microvolt = <1995000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			buck6_reg: BUCK6 {
-				// BUCK8 in datasheet
-				regulator-name = "BUCK6";
-				regulator-min-microvolt = <800000>;
-				regulator-max-microvolt = <1400000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			ldo1_reg: LDO1 {
-				regulator-name = "LDO1";
-				regulator-min-microvolt = <3000000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			ldo2_reg: LDO2 {
-				regulator-name = "LDO2";
-				regulator-min-microvolt = <900000>;
-				regulator-max-microvolt = <900000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			ldo3_reg: LDO3 {
-				regulator-name = "LDO3";
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			ldo4_reg: LDO4 {
-				regulator-name = "LDO4";
-				regulator-min-microvolt = <900000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-
-			ldo6_reg: LDO6 {
-				regulator-name = "LDO6";
-				regulator-min-microvolt = <900000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-boot-on;
-				regulator-always-on;
-			};
-		};
-	};
-};
-
-&i2c2 {
-	clock-frequency = <400000>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_i2c2>;
-	status = "okay";
-
-	ptn5110: tcpc@50 {
-		compatible = "nxp,ptn5110";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_typec1>;
-		reg = <0x50>;
-		interrupt-parent = <&gpio2>;
-		interrupts = <11 8>;
-		status = "okay";
-
-		port {
-			typec1_dr_sw: endpoint {
-				remote-endpoint = <&usb1_drd_sw>;
-			};
-		};
-
-		typec1_con: connector {
-			compatible = "usb-c-connector";
-			label = "USB-C";
-			power-role = "dual";
-			data-role = "dual";
-			try-power-role = "sink";
-			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-			sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
-				     PDO_VAR(5000, 20000, 3000)>;
-			op-sink-microwatt = <15000000>;
-			self-powered;
-		};
-	};
-};
-
 &iomuxc {
-	pinctrl-names = "default";
-
-	pinctrl_fec1: fec1grp {
-		fsl,pins = <
-			MX8MM_IOMUXC_ENET_MDC_ENET1_MDC			0x3
-			MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
-			MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
-			MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
-			MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
-			MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
-			MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
-			MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
-			MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
-			MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
-			MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
-			MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
-			MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
-			MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
-			MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22		0x19
-		>;
-	};
-
-	pinctrl_gpio_led: gpioledgrp {
-		fsl,pins = <
-			MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16	0x19
-		>;
-	};
-
-	pinctrl_gpio_wlf: gpiowlfgrp {
-		fsl,pins = <
-			MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21	0xd6
-		>;
-	};
-
-	pinctrl_i2c1: i2c1grp {
-		fsl,pins = <
-			MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL			0x400001c3
-			MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA			0x400001c3
-		>;
-	};
-
-	pinctrl_i2c2: i2c2grp {
-		fsl,pins = <
-			MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL			0x400001c3
-			MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA			0x400001c3
-		>;
-	};
-
-	pinctrl_pmic: pmicirq {
-		fsl,pins = <
-			MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3		0x41
-		>;
-	};
-
-	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
-		fsl,pins = <
-			MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
-		>;
-	};
-
-	pinctrl_sai3: sai3grp {
-		fsl,pins = <
-			MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
-			MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
-			MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK        0xd6
-			MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0     0xd6
-		>;
-	};
-
-	pinctrl_typec1: typec1grp {
-		fsl,pins = <
-			MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11	0x159
-		>;
-	};
-
-	pinctrl_uart2: uart2grp {
-		fsl,pins = <
-			MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
-			MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
-		>;
-	};
-
-	pinctrl_usdhc2_gpio: usdhc2grpgpio {
-		fsl,pins = <
-			MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x1c4
-		>;
-	};
-
-	pinctrl_usdhc2: usdhc2grp {
+	pinctrl_flexspi: flexspigrp {
 		fsl,pins = <
-			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
-			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
-			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
-			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
-			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
-			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
-			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
-		>;
-	};
-
-	pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
-		fsl,pins = <
-			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
-			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
-			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
-			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
-			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
-			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
-			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
-		>;
-	};
-
-	pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
-		fsl,pins = <
-			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
-			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
-			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
-			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
-			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
-			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
-			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+			MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK               0x1c2
+			MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B            0x82
+			MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0           0x82
+			MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1           0x82
+			MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2           0x82
+			MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3           0x82
 		>;
 	};
 
 	pinctrl_usdhc3: usdhc3grp {
 		fsl,pins = <
-			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK		0x190
-			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d0
-			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d0
-			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d0
-			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d0
-			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d0
-			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d0
-			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d0
-			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d0
-			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d0
-			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 		0x190
+			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x190
+			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d0
+			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d0
+			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d0
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
+			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d0
+			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d0
+			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d0
+			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d0
+			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d0
+			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x190
 		>;
 	};
 
-	pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
-		fsl,pins = <
-			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK		0x194
-			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d4
-			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d4
-			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d4
-			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d4
-			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d4
-			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d4
-			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d4
-			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d4
-			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d4
-			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 		0x194
+	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x194
+			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d4
+			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d4
+			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d4
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d4
+			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d4
+			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d4
+			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d4
+			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d4
+			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d4
+			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x194
 		>;
 	};
 
-	pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
-		fsl,pins = <
-			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK		0x196
-			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d6
-			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d6
-			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d6
-			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d6
-			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d6
-			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d6
-			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d6
-			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d6
-			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d6
-			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 		0x196
-		>;
-	};
-
-	pinctrl_wdog: wdoggrp {
-		fsl,pins = <
-			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6
+	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x196
+			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d6
+			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d6
+			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d6
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d6
+			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d6
+			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d6
+			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d6
+			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d6
+			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d6
+			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x196
 		>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
@@ -0,0 +1,488 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx8mm.dtsi"
+
+/ {
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0 0x80000000>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_led>;
+
+		status {
+			label = "status";
+			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+	};
+
+	reg_usdhc2_vmmc: regulator-usdhc2 {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	ir-receiver {
+		compatible = "gpio-ir-receiver";
+		gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ir>;
+		linux,autosuspend-period = <125>;
+	};
+
+	wm8524: audio-codec {
+		#sound-dai-cells = <0>;
+		compatible = "wlf,wm8524";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_wlf>;
+		wlf,mute-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
+	};
+
+	sound-wm8524 {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "wm8524-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,widgets =
+			"Line", "Left Line Out Jack",
+			"Line", "Right Line Out Jack";
+		simple-audio-card,routing =
+			"Left Line Out Jack", "LINEVOUTL",
+			"Right Line Out Jack", "LINEVOUTR";
+
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&sai3>;
+			dai-tdm-slot-num = <2>;
+			dai-tdm-slot-width = <32>;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&wm8524>;
+			clocks = <&clk IMX8MM_CLK_SAI3_ROOT>;
+		};
+	};
+};
+
+&A53_0 {
+	cpu-supply = <&buck2_reg>;
+};
+
+&A53_1 {
+	cpu-supply = <&buck2_reg>;
+};
+
+&A53_2 {
+	cpu-supply = <&buck2_reg>;
+};
+
+&A53_3 {
+	cpu-supply = <&buck2_reg>;
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	fsl,magic-packet;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+			reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <10000>;
+		};
+	};
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	pmic@4b {
+		compatible = "rohm,bd71847";
+		reg = <0x4b>;
+		pinctrl-0 = <&pinctrl_pmic>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <3 GPIO_ACTIVE_LOW>;
+		rohm,reset-snvs-powered;
+
+		#clock-cells = <0>;
+		clocks = <&osc_32k 0>;
+		clock-output-names = "clk-32k-out";
+
+		regulators {
+			buck1_reg: BUCK1 {
+				regulator-name = "buck1";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "buck2";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+				rohm,dvs-run-voltage = <1000000>;
+				rohm,dvs-idle-voltage = <900000>;
+			};
+
+			buck3_reg: BUCK3 {
+				// BUCK5 in datasheet
+				regulator-name = "buck3";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck4_reg: BUCK4 {
+				// BUCK6 in datasheet
+				regulator-name = "buck4";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck5_reg: BUCK5 {
+				// BUCK7 in datasheet
+				regulator-name = "buck5";
+				regulator-min-microvolt = <1605000>;
+				regulator-max-microvolt = <1995000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck6_reg: BUCK6 {
+				// BUCK8 in datasheet
+				regulator-name = "buck6";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo1_reg: LDO1 {
+				regulator-name = "ldo1";
+				regulator-min-microvolt = <1600000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo2_reg: LDO2 {
+				regulator-name = "ldo2";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo3_reg: LDO3 {
+				regulator-name = "ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo4_reg: LDO4 {
+				regulator-name = "ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo6_reg: LDO6 {
+				regulator-name = "ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&i2c2 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ptn5110: tcpc@50 {
+		compatible = "nxp,ptn5110";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_typec1>;
+		reg = <0x50>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <11 8>;
+		status = "okay";
+
+		port {
+			typec1_dr_sw: endpoint {
+				remote-endpoint = <&usb1_drd_sw>;
+			};
+		};
+
+		typec1_con: connector {
+			compatible = "usb-c-connector";
+			label = "USB-C";
+			power-role = "dual";
+			data-role = "dual";
+			try-power-role = "sink";
+			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+			sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+				     PDO_VAR(5000, 20000, 3000)>;
+			op-sink-microwatt = <15000000>;
+			self-powered;
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	pca6416: gpio@20 {
+		compatible = "ti,tca6416";
+		reg = <0x20>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
+};
+
+&sai3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai3>;
+	assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
+	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
+&snvs_pwrkey {
+	status = "okay";
+};
+
+&uart2 { /* console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+&usbotg1 {
+	dr_mode = "otg";
+	hnp-disable;
+	srp-disable;
+	adp-disable;
+	usb-role-switch;
+	samsung,picophy-pre-emp-curr-control = <3>;
+	samsung,picophy-dc-vol-level-adjust = <7>;
+	status = "okay";
+
+	port {
+		usb1_drd_sw: endpoint {
+			remote-endpoint = <&typec1_dr_sw>;
+		};
+	};
+};
+
+&usdhc2 {
+	assigned-clocks = <&clk IMX8MM_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+	cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+	bus-width = <4>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_ENET_MDC_ENET1_MDC			0x3
+			MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
+			MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
+			MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
+			MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
+			MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
+			MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
+			MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
+			MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
+			MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
+			MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
+			MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
+			MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
+			MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
+			MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22		0x19
+		>;
+	};
+
+	pinctrl_gpio_led: gpioledgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16	0x19
+		>;
+	};
+
+	pinctrl_ir: irgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13              0x4f
+		>;
+	};
+
+	pinctrl_gpio_wlf: gpiowlfgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21	0xd6
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL			0x400001c3
+			MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA			0x400001c3
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL			0x400001c3
+			MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA			0x400001c3
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL			0x400001c3
+			MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA			0x400001c3
+		>;
+	};
+
+	pinctrl_pmic: pmicirqgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3		0x41
+		>;
+	};
+
+	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
+		>;
+	};
+
+	pinctrl_sai3: sai3grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
+			MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
+			MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK        0xd6
+			MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0     0xd6
+		>;
+	};
+
+	pinctrl_typec1: typec1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11	0x159
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
+			MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
+		>;
+	};
+
+	pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x1c4
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
+			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
+			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
+			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
+			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
+			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
+			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
+			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
+			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
+			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
+			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
+			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
+			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
+			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
+			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
+			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
+			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
+			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
+			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
@@ -124,7 +124,7 @@
 #define MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD                                     0x0A4 0x30C 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1                                      0x0A4 0x30C 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0                                 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x31  0x000 0x5 0x0
+#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x310 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1                                 0x0AC 0x314 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3                                    0x0AC 0x314 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2                                 0x0B0 0x318 0x000 0x0 0x0
@@ -430,18 +430,26 @@
 #define MX8MM_IOMUXC_SAI1_MCLK_SIM_M_HRESP                                  0x1AC 0x414 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI2_RXFS_SAI2_RX_SYNC                                 0x1B0 0x418 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI2_RXFS_SAI5_TX_SYNC                                 0x1B0 0x418 0x4EC 0x1 0x2
+#define MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX                                 0x1B0 0x418 0x000 0x4 0x0
+#define MX8MM_IOMUXC_SAI2_RXFS_UART1_DTE_RX                                 0x1B0 0x418 0x4F4 0x4 0x2
 #define MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21                                   0x1B0 0x418 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI2_RXFS_SIM_M_HSIZE0                                 0x1B0 0x418 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI2_RXC_SAI2_RX_BCLK                                  0x1B4 0x41C 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI2_RXC_SAI5_TX_BCLK                                  0x1B4 0x41C 0x4E8 0x1 0x2
+#define MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX                                  0x1B4 0x41C 0x4F4 0x4 0x3
+#define MX8MM_IOMUXC_SAI2_RXC_UART1_DTE_TX                                  0x1B4 0x41C 0x000 0x4 0x0
 #define MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22                                    0x1B4 0x41C 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI2_RXC_SIM_M_HSIZE1                                  0x1B4 0x41C 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0                                0x1B8 0x420 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI2_RXD0_SAI5_TX_DATA0                                0x1B8 0x420 0x000 0x1 0x0
+#define MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B                              0x1B8 0x420 0x4F0 0x4 0x2
+#define MX8MM_IOMUXC_SAI2_RXD0_UART1_DTE_CTS_B                              0x1B8 0x420 0x000 0x4 0x0
 #define MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23                                   0x1B8 0x420 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI2_RXD0_SIM_M_HSIZE2                                 0x1B8 0x420 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC                                 0x1BC 0x424 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI2_TXFS_SAI5_TX_DATA1                                0x1BC 0x424 0x000 0x1 0x0
+#define MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B                              0x1BC 0x424 0x000 0x4 0x0
+#define MX8MM_IOMUXC_SAI2_TXFS_UART1_DTE_RTS_B                              0x1BC 0x424 0x4F0 0x4 0x3
 #define MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24                                   0x1BC 0x424 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI2_TXFS_SIM_M_HWRITE                                 0x1BC 0x424 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK                                  0x1C0 0x428 0x000 0x0 0x0
@@ -464,21 +472,29 @@
 #define MX8MM_IOMUXC_SAI3_RXC_SAI3_RX_BCLK                                  0x1D0 0x438 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI3_RXC_GPT1_CLK                                      0x1D0 0x438 0x000 0x1 0x0
 #define MX8MM_IOMUXC_SAI3_RXC_SAI5_RX_BCLK                                  0x1D0 0x438 0x4D0 0x2 0x2
+#define MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B                               0x1D0 0x438 0x000 0x4 0x0
+#define MX8MM_IOMUXC_SAI3_RXC_UART2_DTE_RTS_B                               0x1D0 0x438 0x4F8 0x4 0x2
 #define MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29                                    0x1D0 0x438 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI3_RXC_TPSMP_HTRANS1                                 0x1D0 0x438 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0                                 0x1D4 0x43C 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI3_RXD_GPT1_COMPARE1                                 0x1D4 0x43C 0x000 0x1 0x0
 #define MX8MM_IOMUXC_SAI3_RXD_SAI5_RX_DATA0                                 0x1D4 0x43C 0x4D4 0x2 0x2
+#define MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B                               0x1D4 0x43C 0x4F8 0x4 0x3
+#define MX8MM_IOMUXC_SAI3_RXD_UART2_DTE_CTS_B                               0x1D4 0x43C 0x000 0x4 0x0
 #define MX8MM_IOMUXC_SAI3_RXD_GPIO4_IO30                                    0x1D4 0x43C 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI3_RXD_TPSMP_HDATA0                                  0x1D4 0x43C 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC                                 0x1D8 0x440 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI3_TXFS_GPT1_CAPTURE2                                0x1D8 0x440 0x000 0x1 0x0
 #define MX8MM_IOMUXC_SAI3_TXFS_SAI5_RX_DATA1                                0x1D8 0x440 0x4D8 0x2 0x2
+#define MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX                                 0x1D8 0x440 0x4Fc 0x4 0x2
+#define MX8MM_IOMUXC_SAI3_TXFS_UART2_DTE_TX                                 0x1D8 0x440 0x000 0x4 0x0
 #define MX8MM_IOMUXC_SAI3_TXFS_GPIO4_IO31                                   0x1D8 0x440 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI3_TXFS_TPSMP_HDATA1                                 0x1D8 0x440 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK                                  0x1DC 0x444 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SAI3_TXC_GPT1_COMPARE2                                 0x1DC 0x444 0x000 0x1 0x0
 #define MX8MM_IOMUXC_SAI3_TXC_SAI5_RX_DATA2                                 0x1DC 0x444 0x4DC 0x2 0x2
+#define MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX                                  0x1DC 0x444 0x000 0x4 0x0
+#define MX8MM_IOMUXC_SAI3_TXC_UART2_DTE_RX                                  0x1DC 0x444 0x4Fc 0x4 0x3
 #define MX8MM_IOMUXC_SAI3_TXC_GPIO5_IO0                                     0x1DC 0x444 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SAI3_TXC_TPSMP_HDATA2                                  0x1DC 0x444 0x000 0x7 0x0
 #define MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0                                 0x1E0 0x448 0x000 0x0 0x0
@@ -585,7 +601,7 @@
 #define MX8MM_IOMUXC_UART1_RXD_GPIO5_IO22                                   0x234 0x49C 0x000 0x5 0x0
 #define MX8MM_IOMUXC_UART1_RXD_TPSMP_HDATA24                                0x234 0x49C 0x000 0x7 0x0
 #define MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX                                 0x238 0x4A0 0x000 0x0 0x0
-#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX                                 0x238 0x4A0 0x4F4 0x0 0x0
+#define MX8MM_IOMUXC_UART1_TXD_UART1_DTE_RX                                 0x238 0x4A0 0x4F4 0x0 0x1
 #define MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI                                  0x238 0x4A0 0x000 0x1 0x0
 #define MX8MM_IOMUXC_UART1_TXD_GPIO5_IO23                                   0x238 0x4A0 0x000 0x5 0x0
 #define MX8MM_IOMUXC_UART1_TXD_TPSMP_HDATA25                                0x238 0x4A0 0x000 0x7 0x0
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts
@@ -0,0 +1,1140 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 Gateworks Corporation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+#include <dt-bindings/power/imx8mm-power.h>
+#include <dt-bindings/reset/imx8mq-reset.h>
+
+#include "imx8mm.dtsi"
+
+/ {
+	model = "Gateworks Venice GW7902 i.MX8MM board";
+	compatible = "gw,imx8mm-gw7902", "fsl,imx8mm";
+
+	aliases {
+		ethernet1 = &eth1;
+		rtc0 = &rtc;
+		rtc1 = &snvs_rtc;
+		usb0 = &usbotg1;
+		usb1 = &usbotg2;
+	};
+
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0 0x80000000>;
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		/* 32MiB */
+		optee_core@be000000 {
+			reg = <0x00 0xbe000000 0x00 0x2000000>;
+		};
+
+		/* 4K */
+		optee_shm@bfc00000 {
+			reg = <0x00 0xbfc00000 0x00 0x400000>;
+		};
+	};
+
+	can20m: can20m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <20000000>;
+		clock-output-names = "can20m";
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		user-pb {
+			label = "user_pb";
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+			linux,code = <BTN_0>;
+		};
+
+		user-pb1x {
+			label = "user_pb1x";
+			linux,code = <BTN_1>;
+			interrupt-parent = <&gsc>;
+			interrupts = <0>;
+		};
+
+		key-erased {
+			label = "key_erased";
+			linux,code = <BTN_2>;
+			interrupt-parent = <&gsc>;
+			interrupts = <1>;
+		};
+
+		eeprom-wp {
+			label = "eeprom_wp";
+			linux,code = <BTN_3>;
+			interrupt-parent = <&gsc>;
+			interrupts = <2>;
+		};
+
+		tamper {
+			label = "tamper";
+			linux,code = <BTN_4>;
+			interrupt-parent = <&gsc>;
+			interrupts = <5>;
+		};
+
+		switch-hold {
+			label = "switch_hold";
+			linux,code = <BTN_5>;
+			interrupt-parent = <&gsc>;
+			interrupts = <7>;
+		};
+	};
+
+	led-controller {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+
+		led-0 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel1";
+			gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-1 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel2";
+			gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-2 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel3";
+			gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-3 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel4";
+			gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-4 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel5";
+			gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+	};
+
+	power-domains {
+		compatible = "simple-bus";
+		/* HSIO SS */
+		hsiomix_pd: hsiomix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <0>;
+			domain-name = "hsiomix";
+			clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
+		};
+
+		pcie_pd: pcie-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <1>;
+			domain-name = "pcie";
+			parent-domains = <&hsiomix_pd>;
+		};
+
+		usb_otg1_pd: usbotg1-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <2>;
+			domain-name = "usb_otg1";
+			parent-domains = <&hsiomix_pd>;
+		};
+
+		usb_otg2_pd: usbotg2-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <3>;
+			domain-name = "usb_otg2";
+			parent-domains = <&hsiomix_pd>;
+		};
+
+		/* GPU SS */
+		gpumix_pd: gpumix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <4>;
+			domain-name = "gpumix";
+			clocks = <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+				 <&clk IMX8MM_CLK_GPU_AHB>,
+				 <&clk IMX8MM_CLK_GPU2D_ROOT>,
+				 <&clk IMX8MM_CLK_GPU3D_ROOT>;
+		};
+
+		/* VPU SS */
+		vpumix_pd: vpumix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <5>;
+			domain-name = "vpumix";
+			clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
+		};
+
+		vpu_g1_pd: vpug1-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <6>;
+			domain-name = "vpu_g1";
+			parent-domains = <&vpumix_pd>;
+			clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>;
+		};
+
+		vpu_g2_pd: vpug2-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <7>;
+			domain-name = "vpu_g2";
+			parent-domains = <&vpumix_pd>;
+			clocks = <&clk IMX8MM_CLK_VPU_G2_ROOT>;
+		};
+
+		vpu_h1_pd: vpuh1-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <8>;
+			domain-name = "vpu_h1";
+			parent-domains = <&vpumix_pd>;
+			clocks = <&clk IMX8MM_CLK_VPU_H1_ROOT>;
+		};
+
+		/* DISP SS */
+		dispmix_pd: dispmix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <9>;
+			domain-name = "dispmix";
+			clocks = <&clk IMX8MM_CLK_DISP_ROOT>,
+				 <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
+				 <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+		};
+
+		mipi_pd: mipi-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <10>;
+			domain-name = "mipi";
+			parent-domains = <&dispmix_pd>;
+		};
+	};
+
+	soc@0 {
+		pcie0: pcie@33800000 {
+			compatible = "fsl,imx8mm-pcie", "snps,dw-pcie";
+			reg = <0x33800000 0x400000>,
+				<0x1ff00000 0x80000>;
+			reg-names = "dbi", "config";
+			#address-cells = <3>;
+			#size-cells = <2>;
+			device_type = "pci";
+			bus-range = <0x00 0xff>;
+			ranges =  <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000 /* downstream I/O 64KB */
+					0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
+			num-lanes = <1>;
+			num-viewport = <4>;
+			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "msi";
+			#interrupt-cells = <1>;
+			interrupt-map-mask = <0 0 0 0x7>;
+			interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+			fsl,max-link-speed = <2>;
+			power-domains = <&pcie_pd>;
+			resets = <&src IMX8MQ_RESET_PCIEPHY>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_CLK_REQ>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
+			reset-names = "pciephy", "apps", "clkreq", "turnoff";
+			fsl,imx7d-pcie-phy = <&pcie_phy>;
+			status = "disabled";
+		};
+	};
+
+	pcie0_refclk: pcie0-refclk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <100000000>;
+	};
+
+	pps {
+		compatible = "pps-gpio";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pps>;
+		gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "3P3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	reg_usb1_vbus: regulator-usb1 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usb1>;
+		compatible = "regulator-fixed";
+		regulator-name = "usb_usb1_vbus";
+		gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	reg_wifi: regulator-wifi {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_wl>;
+		compatible = "regulator-fixed";
+		regulator-name = "wifi";
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		startup-delay-us = <100>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+};
+
+&aips4 {
+	pcie_phy: pcie-phy@32f00000 {
+		  compatible = "fsl,imx7d-pcie-phy";
+		  reg = <0x32f00000 0x10000>;
+	};
+};
+
+&A53_0 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+	cpu-supply = <&buck2>;
+};
+
+&ddrc {
+	operating-points-v2 = <&ddrc_opp_table>;
+
+	ddrc_opp_table: opp-table {
+		compatible = "operating-points-v2";
+
+		opp-25M {
+			opp-hz = /bits/ 64 <25000000>;
+		};
+
+		opp-100M {
+			opp-hz = /bits/ 64 <100000000>;
+		};
+
+		opp-750M {
+			opp-hz = /bits/ 64 <750000000>;
+		};
+	};
+};
+
+&ecspi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spi1>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+	status = "okay";
+
+	can@0 {
+		compatible = "microchip,mcp2515";
+		reg = <0>;
+		clocks = <&can20m>;
+		oscillator-frequency = <20000000>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+		spi-max-frequency = <10000000>;
+	};
+};
+
+/* off-board header */
+&ecspi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spi2>;
+	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	local-mac-address = [00 00 00 00 00 00];
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+		};
+	};
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	gsc: gsc@20 {
+		compatible = "gw,gsc";
+		reg = <0x20>;
+		pinctrl-0 = <&pinctrl_gsc>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		adc {
+			compatible = "gw,gsc-adc";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			channel@6 {
+				gw,mode = <0>;
+				reg = <0x06>;
+				label = "temp";
+			};
+
+			channel@8 {
+				gw,mode = <1>;
+				reg = <0x08>;
+				label = "vdd_bat";
+			};
+
+			channel@82 {
+				gw,mode = <2>;
+				reg = <0x82>;
+				label = "vin";
+				gw,voltage-divider-ohms = <22100 1000>;
+				gw,voltage-offset-microvolt = <700000>;
+			};
+
+			channel@84 {
+				gw,mode = <2>;
+				reg = <0x84>;
+				label = "vin_4p0";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+
+			channel@86 {
+				gw,mode = <2>;
+				reg = <0x86>;
+				label = "vdd_3p3";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+
+			channel@88 {
+				gw,mode = <2>;
+				reg = <0x88>;
+				label = "vdd_0p9";
+			};
+
+			channel@8c {
+				gw,mode = <2>;
+				reg = <0x8c>;
+				label = "vdd_soc";
+			};
+
+			channel@8e {
+				gw,mode = <2>;
+				reg = <0x8e>;
+				label = "vdd_arm";
+			};
+
+			channel@90 {
+				gw,mode = <2>;
+				reg = <0x90>;
+				label = "vdd_1p8";
+			};
+
+			channel@92 {
+				gw,mode = <2>;
+				reg = <0x92>;
+				label = "vdd_dram";
+			};
+
+			channel@98 {
+				gw,mode = <2>;
+				reg = <0x98>;
+				label = "vdd_1p0";
+			};
+
+			channel@9a {
+				gw,mode = <2>;
+				reg = <0x9a>;
+				label = "vdd_2p5";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+
+			channel@a2 {
+				gw,mode = <2>;
+				reg = <0xa2>;
+				label = "vdd_gsc";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+		};
+	};
+
+	gpio: gpio@23 {
+		compatible = "nxp,pca9555";
+		reg = <0x23>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		interrupt-parent = <&gsc>;
+		interrupts = <4>;
+	};
+
+	pmic@4b {
+		compatible = "rohm,bd71847";
+		reg = <0x4b>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pmic>;
+		interrupt-parent = <&gpio3>;
+		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+		rohm,reset-snvs-powered;
+		#clock-cells = <0>;
+		clocks = <&osc_32k 0>;
+		clock-output-names = "clk-32k-out";
+
+		regulators {
+			/* vdd_soc: 0.805-0.900V (typ=0.8V) */
+			BUCK1 {
+				regulator-name = "buck1";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+			};
+
+			/* vdd_arm: 0.805-1.0V (typ=0.9V) */
+			buck2: BUCK2 {
+				regulator-name = "buck2";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+				rohm,dvs-run-voltage = <1000000>;
+				rohm,dvs-idle-voltage = <900000>;
+			};
+
+			/* vdd_0p9: 0.805-1.0V (typ=0.9V) */
+			BUCK3 {
+				regulator-name = "buck3";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_3p3 */
+			BUCK4 {
+				regulator-name = "buck4";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_1p8 */
+			BUCK5 {
+				regulator-name = "buck5";
+				regulator-min-microvolt = <1605000>;
+				regulator-max-microvolt = <1995000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_dram */
+			BUCK6 {
+				regulator-name = "buck6";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* nvcc_snvs_1p8 */
+			LDO1 {
+				regulator-name = "ldo1";
+				regulator-min-microvolt = <1600000>;
+				regulator-max-microvolt = <1900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_snvs_0p8 */
+			LDO2 {
+				regulator-name = "ldo2";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdda_1p8 */
+			LDO3 {
+				regulator-name = "ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			LDO4 {
+				regulator-name = "ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			LDO6 {
+				regulator-name = "ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+
+	eeprom@50 {
+		compatible = "atmel,24c02";
+		reg = <0x50>;
+		pagesize = <16>;
+	};
+
+	eeprom@51 {
+		compatible = "atmel,24c02";
+		reg = <0x51>;
+		pagesize = <16>;
+	};
+
+	eeprom@52 {
+		compatible = "atmel,24c02";
+		reg = <0x52>;
+		pagesize = <16>;
+	};
+
+	eeprom@53 {
+		compatible = "atmel,24c02";
+		reg = <0x53>;
+		pagesize = <16>;
+	};
+
+	rtc: rtc@68 {
+		compatible = "dallas,ds1672";
+		reg = <0x68>;
+	};
+};
+
+&i2c2 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	accelerometer@19 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_accel>;
+		compatible = "st,lis2de12";
+		reg = <0x19>;
+		st,drdy-int-pin = <1>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+		interrupt-names = "INT1";
+	};
+
+	secure-element@60 {
+		compatible = "nxp,se050";
+		reg = <0x60>;
+	};
+};
+
+/* off-board header */
+&i2c3 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+};
+
+/* off-board header */
+&i2c4 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	status = "okay";
+};
+
+&pcie0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pcie0>;
+	reset-gpio = <&gpio4 5 GPIO_ACTIVE_LOW>;
+	clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
+		 <&clk IMX8MM_CLK_PCIE1_AUX>,
+		 <&clk IMX8MM_CLK_PCIE1_PHY>,
+		 <&pcie0_refclk>;
+	clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+	ext_osc = <1>;
+	status = "okay";
+
+	pcie@0,0 {
+		reg = <0x0000 0 0 0 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		eth1: pcie@1,0 {
+			reg = <0x0000 0 0 0 0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			local-mac-address = [00 00 00 00 00 00];
+		};
+	};
+};
+
+/* off-board header */
+&sai3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai3>;
+	assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
+	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
+/* RS232/RS485/RS422 selectable */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>;
+	rts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
+	cts-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+/* RS232 console */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+/* bluetooth HCI */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
+	rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+	cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+	status = "okay";
+
+	bluetooth {
+		compatible = "brcm,bcm4330-bt";
+		shutdown-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+/* LTE Cat M1/NB1/EGPRS modem or GPS (loading option) */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	rts-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
+	cts-gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
+	dtr-gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;
+	dsr-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
+	dcd-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&usbotg1 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usb1_vbus>;
+	power-domains = <&usb_otg1_pd>;
+	disable-over-current;
+	status = "okay";
+};
+
+&usbotg2 {
+	dr_mode = "host";
+	power-domains = <&usb_otg2_pd>;
+	disable-over-current;
+	status = "okay";
+};
+
+/* SDIO WiFi */
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	bus-width = <4>;
+	non-removable;
+	vmmc-supply = <&reg_wifi>;
+	status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	pinctrl_hog: hoggrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1	0x40000159 /* M2_GDIS# */
+			MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13	0x40000041 /* M2_RST# */
+			MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7	0x40000119 /* M2_OFF# */
+			MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x40000159 /* M2_WDIS# */
+			MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14	0x40000041 /* AMP GPIO1 */
+			MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12	0x40000041 /* AMP GPIO2 */
+			MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11	0x40000041 /* AMP GPIO3 */
+			MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20	0x40000041 /* AMP_GPIO4 */
+			MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21	0x40000041 /* APP GPIO1 */
+			MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27	0x40000041 /* APP GPIO2 */
+			MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8	0x40000041 /* UART2_EN# */
+			MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28	0x40000041 /* MIPI_GPIO1 */
+			MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5	0x40000041 /* MIPI_GPIO2 */
+			MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4		0x40000041 /* MIPI_GPIO3/PWM2 */
+			MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3		0x40000041 /* MIPI_GPIO4/PWM3 */
+		>;
+	};
+
+	pinctrl_accel: accelgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x159
+		>;
+	};
+
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_ENET_MDC_ENET1_MDC			0x3
+			MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
+			MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
+			MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
+			MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
+			MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
+			MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
+			MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
+			MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
+			MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
+			MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
+			MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
+			MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
+			MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
+			MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x19 /* RST# */
+			MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11		0x19 /* IRQ# */
+			MX8MM_IOMUXC_GPIO1_IO08_ENET1_1588_EVENT0_IN	0x141
+			MX8MM_IOMUXC_GPIO1_IO09_ENET1_1588_EVENT0_OUT	0x141
+		>;
+	};
+
+	pinctrl_gsc: gscgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6	0x40
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3
+			MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
+			MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c3
+			MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c4: i2c4grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL		0x400001c3
+			MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_gpio_leds: gpioledgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21	0x19
+			MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23	0x19
+			MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22	0x19
+			MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20	0x19
+			MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25	0x19
+		>;
+	};
+
+	pinctrl_pcie0: pciegrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5	0x41 /* PERST# */
+
+		>;
+	};
+
+	pinctrl_pmic: pmicgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8	0x41
+		>;
+	};
+
+	pinctrl_pps: ppsgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24	0x141 /* PPS */
+		>;
+	};
+
+	pinctrl_reg_wl: regwlgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41 /* WLAN_WLON */
+		>;
+	};
+
+	pinctrl_reg_usb1: regusb1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7	0x41
+		>;
+	};
+
+	pinctrl_sai3: sai3grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK	0xd6
+			MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0	0xd6
+			MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK	0xd6
+			MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0	0xd6
+			MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC	0xd6
+		>;
+	};
+
+	pinctrl_spi1: spi1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK	0x82
+			MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI	0x82
+			MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO	0x82
+			MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9	0x40
+			MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3	0x140 /* CAN_IRQ# */
+		>;
+	};
+
+	pinctrl_spi2: spi2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK	0x82
+			MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI	0x82
+			MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO	0x82
+			MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13	0x40 /* SS0 */
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140
+			MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140
+			MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10	0x140 /* RTS */
+			MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24	0x140 /* CTS */
+		>;
+	};
+
+	pinctrl_uart1_gpio: uart1gpiogrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26	0x40000110 /* HALF */
+			MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25	0x40000110 /* TERM */
+			MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23	0x40000110 /* RS485 */
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
+			MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
+		>;
+	};
+
+	pinctrl_uart3_gpio: uart3_gpiogrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12	0x41 /* BT_EN# */
+		>;
+	};
+
+	pinctrl_uart3: uart3grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX	0x140
+			MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX	0x140
+			MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0		0x140 /* CTS */
+			MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1		0x140 /* RTS */
+		>;
+	};
+
+	pinctrl_uart4: uart4grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX	0x140
+			MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX	0x140
+			MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1		0x140 /* CTS */
+			MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2	0x140 /* RTS */
+			MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3	0x140 /* DTR */
+			MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4	0x140 /* DSR */
+			MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6	0x140 /* DCD */
+			MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7	0x140 /* RI */
+			MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0	0x140 /* GNSS_PPS */
+			MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x141 /* GNSS_GASP */
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
+			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
+			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
+			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
+			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
+			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK	0x190
+			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d0
+			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d0
+			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d0
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d0
+			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d0
+			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d0
+			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d0
+			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d0
+			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d0
+			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x190
+		>;
+	};
+
+	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK	0x194
+			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d4
+			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d4
+			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d4
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d4
+			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d4
+			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d4
+			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d4
+			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d4
+			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d4
+			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x194
+		>;
+	};
+
+	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK	0x196
+			MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d6
+			MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d6
+			MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d6
+			MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d6
+			MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d6
+			MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d6
+			MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d6
+			MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d6
+			MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d6
+			MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x196
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6
+		>;
+	};
+};
+
+&cpu_alert0 {
+	temperature = <95000>;
+	hysteresis = <2000>;
+	type = "passive";
+};
+
+&cpu_crit0 {
+	temperature = <105000>;
+	hysteresis = <2000>;
+	type = "critical";
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mm.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mm.dtsi
@@ -7,22 +7,31 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/imx8mm-power.h>
+#include <dt-bindings/reset/imx8mq-reset.h>
 #include <dt-bindings/thermal/thermal.h>
 
 #include "imx8mm-pinfunc.h"
 
 / {
-	compatible = "fsl,imx8mm";
 	interrupt-parent = <&gic>;
 	#address-cells = <2>;
 	#size-cells = <2>;
 
 	aliases {
 		ethernet0 = &fec1;
+		gpio0 = &gpio1;
+		gpio1 = &gpio2;
+		gpio2 = &gpio3;
+		gpio3 = &gpio4;
+		gpio4 = &gpio5;
 		i2c0 = &i2c1;
 		i2c1 = &i2c2;
 		i2c2 = &i2c3;
 		i2c3 = &i2c4;
+		mmc0 = &usdhc1;
+		mmc1 = &usdhc2;
+		mmc2 = &usdhc3;
 		serial0 = &uart1;
 		serial1 = &uart2;
 		serial2 = &uart3;
@@ -30,14 +39,6 @@
 		spi0 = &ecspi1;
 		spi1 = &ecspi2;
 		spi2 = &ecspi3;
-		mmc0 = &usdhc1;
-		mmc1 = &usdhc2;
-		mmc2 = &usdhc3;
-		gpio0 = &gpio1;
-		gpio1 = &gpio2;
-		gpio2 = &gpio3;
-		gpio3 = &gpio4;
-		gpio4 = &gpio5;
 	};
 
 	cpus {
@@ -64,11 +65,18 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MM_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			nvmem-cells = <&cpu_speed_grade>;
 			nvmem-cell-names = "speed_grade";
 			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_1: cpu@1 {
@@ -78,9 +86,16 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MM_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_2: cpu@2 {
@@ -90,9 +105,16 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MM_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_3: cpu@3 {
@@ -102,13 +124,24 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MM_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_L2: l2-cache0 {
 			compatible = "cache";
+			cache-level = <2>;
+			cache-size = <0x80000>;
+			cache-line-size = <64>;
+			cache-sets = <512>;
 		};
 	};
 
@@ -126,7 +159,7 @@
 
 		opp-1600000000 {
 			opp-hz = /bits/ 64 <1600000000>;
-			opp-microvolt = <900000>;
+			opp-microvolt = <950000>;
 			opp-supported-hw = <0xc>, <0x7>;
 			clock-latency-ns = <150000>;
 			opp-suspend;
@@ -141,11 +174,6 @@
 		};
 	};
 
-	memory@40000000 {
-		device_type = "memory";
-		reg = <0x0 0x40000000 0 0x80000000>;
-	};
-
 	osc_32k: clock-osc-32k {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
@@ -196,20 +224,52 @@
 	pmu {
 		compatible = "arm,armv8-pmuv3";
 		interrupts = <GIC_PPI 7
-			     (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
+			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
 		interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>;
 	};
 
 	timer {
 		compatible = "arm,armv8-timer";
-		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */
-			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */
-			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */
-			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */
+		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */
+			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */
+			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */
+			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */
 		clock-frequency = <8000000>;
 		arm,no-tick-in-suspend;
 	};
 
+	thermal-zones {
+		cpu-thermal {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			thermal-sensors = <&tmu>;
+			trips {
+				cpu_alert0: trip0 {
+					temperature = <85000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+
+				cpu_crit0: trip1 {
+					temperature = <95000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+
+			cooling-maps {
+				map0 {
+					trip = <&cpu_alert0>;
+					cooling-device =
+						<&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+	};
+
 	usbphynop1: usbphynop1 {
 		compatible = "usb-nop-xceiv";
 		clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
@@ -227,18 +287,27 @@
 	};
 
 	soc@0 {
-		compatible = "simple-bus";
+		compatible = "fsl,imx8mm-soc", "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0x0 0x0 0x0 0x3e000000>;
+		nvmem-cells = <&imx8mm_uid>;
+		nvmem-cell-names = "soc_unique_id";
+
+		caam_sm: caam-sm@100000 {
+			compatible = "fsl,imx6q-caam-sm";
+			reg = <0x100000 0x8000>;
+		};
 
 		aips1: bus@30000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30000000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x30000000 0x30000000 0x400000>;
 
 			sai1: sai@30010000 {
+				#sound-dai-cells = <0>;
 				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
 				reg = <0x30010000 0x10000>;
 				interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
@@ -252,6 +321,7 @@
 			};
 
 			sai2: sai@30020000 {
+				#sound-dai-cells = <0>;
 				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
 				reg = <0x30020000 0x10000>;
 				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
@@ -279,6 +349,7 @@
 			};
 
 			sai5: sai@30050000 {
+				#sound-dai-cells = <0>;
 				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
 				reg = <0x30050000 0x10000>;
 				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
@@ -292,6 +363,7 @@
 			};
 
 			sai6: sai@30060000 {
+				#sound-dai-cells = <0>;
 				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
 				reg = <0x30060000 0x10000>;
 				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
@@ -304,6 +376,49 @@
 				status = "disabled";
 			};
 
+			micfil: audio-controller@30080000 {
+				compatible = "fsl,imx8mm-micfil";
+				reg = <0x30080000 0x10000>;
+				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MM_CLK_PDM_IPG>,
+					 <&clk IMX8MM_CLK_PDM_ROOT>,
+					 <&clk IMX8MM_AUDIO_PLL1_OUT>,
+					 <&clk IMX8MM_AUDIO_PLL2_OUT>,
+					 <&clk IMX8MM_CLK_EXT3>;
+				clock-names = "ipg_clk", "ipg_clk_app",
+					      "pll8k", "pll11k", "clkext3";
+				dmas = <&sdma2 24 25 0x80000000>;
+				dma-names = "rx";
+				status = "disabled";
+			};
+
+			spdif1: spdif@30090000 {
+				compatible = "fsl,imx35-spdif";
+				reg = <0x30090000 0x10000>;
+				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */
+					 <&clk IMX8MM_CLK_24M>, /* rxtx0 */
+					 <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */
+					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */
+					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */
+					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */
+					 <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */
+					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */
+					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */
+					 <&clk IMX8MM_CLK_DUMMY>; /* spba */
+				clock-names = "core", "rxtx0",
+					      "rxtx1", "rxtx2",
+					      "rxtx3", "rxtx4",
+					      "rxtx5", "rxtx6",
+					      "rxtx7", "spba";
+				dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			gpio1: gpio@30200000 {
 				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
 				reg = <0x30200000 0x10000>;
@@ -369,6 +484,13 @@
 				gpio-ranges = <&iomuxc 0 119 30>;
 			};
 
+			tmu: tmu@30260000 {
+				compatible = "fsl,imx8mm-tmu";
+				reg = <0x30260000 0x10000>;
+				clocks = <&clk IMX8MM_CLK_TMU_ROOT>;
+				#thermal-sensor-cells = <0>;
+			};
+
 			wdog1: watchdog@30280000 {
 				compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
 				reg = <0x30280000 0x10000>;
@@ -421,25 +543,33 @@
 			};
 
 			gpr: iomuxc-gpr@30340000 {
-				compatible = "fsl,imx8mm-iomuxc-gpr", "syscon";
+				compatible = "fsl,imx8mm-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon";
 				reg = <0x30340000 0x10000>;
 			};
 
-			ocotp: ocotp-ctrl@30350000 {
-				compatible = "fsl,imx8mm-ocotp", "fsl,imx7d-ocotp", "syscon";
+			ocotp: efuse@30350000 {
+				compatible = "fsl,imx8mm-ocotp", "syscon";
 				reg = <0x30350000 0x10000>;
 				clocks = <&clk IMX8MM_CLK_OCOTP_ROOT>;
 				/* For nvmem subnodes */
 				#address-cells = <1>;
 				#size-cells = <1>;
 
+				imx8mm_uid: unique-id@410 {
+					reg = <0x4 0x8>;
+				};
+
 				cpu_speed_grade: speed-grade@10 {
 					reg = <0x10 4>;
 				};
+
+				fec_mac_address: mac-address@90 {
+					reg = <0x90 6>;
+				};
 			};
 
 			anatop: anatop@30360000 {
-				compatible = "fsl,imx8mm-anatop", "syscon", "simple-bus";
+				compatible = "fsl,imx8mm-anatop", "syscon";
 				reg = <0x30360000 0x10000>;
 			};
 
@@ -461,6 +591,8 @@
 					compatible = "fsl,sec-v4.0-pwrkey";
 					regmap = <&snvs>;
 					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_SNVS_ROOT>;
+					clock-names = "snvs-pwrkey";
 					linux,keycode = <KEY_POWER>;
 					wakeup-source;
 					status = "disabled";
@@ -475,18 +607,26 @@
 					 <&clk_ext3>, <&clk_ext4>;
 				clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
 					      "clk_ext3", "clk_ext4";
-				assigned-clocks = <&clk IMX8MM_CLK_NOC>,
+				assigned-clocks = <&clk IMX8MM_CLK_A53_SRC>,
+						<&clk IMX8MM_CLK_A53_CORE>,
+						<&clk IMX8MM_CLK_NOC>,
 						<&clk IMX8MM_CLK_AUDIO_AHB>,
 						<&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
 						<&clk IMX8MM_SYS_PLL3>,
-						<&clk IMX8MM_VIDEO_PLL1>;
-				assigned-clock-parents = <&clk IMX8MM_SYS_PLL3_OUT>,
+						<&clk IMX8MM_VIDEO_PLL1>,
+						<&clk IMX8MM_AUDIO_PLL1>,
+						<&clk IMX8MM_AUDIO_PLL2>;
+				assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
+							 <&clk IMX8MM_ARM_PLL_OUT>,
+							 <&clk IMX8MM_SYS_PLL3_OUT>,
 							 <&clk IMX8MM_SYS_PLL1_800M>;
-				assigned-clock-rates = <0>,
+				assigned-clock-rates = <0>, <0>, <0>,
 							<400000000>,
 							<400000000>,
 							<750000000>,
-							<594000000>;
+							<594000000>,
+							<393216000>,
+							<361267200>;
 			};
 
 			src: reset-controller@30390000 {
@@ -495,10 +635,116 @@
 				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
 				#reset-cells = <1>;
 			};
+
+			gpc: gpc@303a0000 {
+				compatible = "fsl,imx8mm-gpc";
+				reg = <0x303a0000 0x10000>;
+				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-parent = <&gic>;
+				interrupt-controller;
+				#interrupt-cells = <3>;
+
+				pgc {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					pgc_hsiomix: power-domain@0 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_HSIOMIX>;
+						clocks = <&clk IMX8MM_CLK_USB_BUS>;
+						assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
+						assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
+					};
+
+					pgc_pcie: power-domain@1 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_PCIE>;
+						power-domains = <&pgc_hsiomix>;
+						clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>;
+					};
+
+					pgc_otg1: power-domain@2 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_OTG1>;
+						power-domains = <&pgc_hsiomix>;
+					};
+
+					pgc_otg2: power-domain@3 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_OTG2>;
+						power-domains = <&pgc_hsiomix>;
+					};
+
+					pgc_gpumix: power-domain@4 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_GPUMIX>;
+						clocks = <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+							 <&clk IMX8MM_CLK_GPU_AHB>;
+						assigned-clocks = <&clk IMX8MM_CLK_GPU_AXI>,
+								  <&clk IMX8MM_CLK_GPU_AHB>;
+						assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
+									 <&clk IMX8MM_SYS_PLL1_800M>;
+						assigned-clock-rates = <800000000>, <400000000>;
+					};
+
+					pgc_gpu: power-domain@5 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_GPU>;
+						clocks = <&clk IMX8MM_CLK_GPU_AHB>,
+							 <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+							 <&clk IMX8MM_CLK_GPU2D_ROOT>,
+							 <&clk IMX8MM_CLK_GPU3D_ROOT>;
+						resets = <&src IMX8MQ_RESET_GPU_RESET>;
+						power-domains = <&pgc_gpumix>;
+					};
+
+					pgc_vpumix: power-domain@6 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_VPUMIX>;
+						clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
+						assigned-clocks = <&clk IMX8MM_CLK_VPU_BUS>;
+						assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>;
+						resets = <&src IMX8MQ_RESET_VPU_RESET>;
+					};
+
+					pgc_vpu_g1: power-domain@7 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
+					};
+
+					pgc_vpu_g2: power-domain@8 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
+					};
+
+					pgc_vpu_h1: power-domain@9 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
+					};
+
+					pgc_dispmix: power-domain@10 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_DISPMIX>;
+						clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>,
+							 <&clk IMX8MM_CLK_DISP_AXI_ROOT>;
+						assigned-clocks = <&clk IMX8MM_CLK_DISP_AXI>,
+								  <&clk IMX8MM_CLK_DISP_APB>;
+						assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_1000M>,
+									 <&clk IMX8MM_SYS_PLL1_800M>;
+						assigned-clock-rates = <500000000>, <200000000>;
+					};
+
+					pgc_mipi: power-domain@11 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MM_POWER_DOMAIN_MIPI>;
+					};
+				};
+			};
 		};
 
 		aips2: bus@30400000 {
 			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30400000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x30400000 0x30400000 0x400000>;
@@ -558,9 +804,11 @@
 
 		aips3: bus@30800000 {
 			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30800000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
-			ranges = <0x30800000 0x30800000 0x400000>;
+			ranges = <0x30800000 0x30800000 0x400000>,
+				 <0x8000000 0x8000000 0x10000000>;
 
 			ecspi1: spi@30820000 {
 				compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
@@ -638,6 +886,36 @@
 				status = "disabled";
 			};
 
+			crypto: crypto@30900000 {
+				compatible = "fsl,sec-v4.0";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x30900000 0x40000>;
+				ranges = <0 0x30900000 0x40000>;
+				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MM_CLK_AHB>,
+					 <&clk IMX8MM_CLK_IPG_ROOT>;
+				clock-names = "aclk", "ipg";
+
+				sec_jr0: jr@1000 {
+					compatible = "fsl,sec-v4.0-job-ring";
+					reg = <0x1000 0x1000>;
+					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				sec_jr1: jr@2000 {
+					compatible = "fsl,sec-v4.0-job-ring";
+					reg = <0x2000 0x1000>;
+					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				sec_jr2: jr@3000 {
+					compatible = "fsl,sec-v4.0-job-ring";
+					reg = <0x3000 0x1000>;
+					interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+				};
+			};
+
 			i2c1: i2c@30a20000 {
 				compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
 				#address-cells = <1>;
@@ -690,6 +968,14 @@
 				status = "disabled";
 			};
 
+			mu: mailbox@30aa0000 {
+				compatible = "fsl,imx8mm-mu", "fsl,imx6sx-mu";
+				reg = <0x30aa0000 0x10000>;
+				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MM_CLK_MU_ROOT>;
+				#mbox-cells = <2>;
+			};
+
 			usdhc1: mmc@30b40000 {
 				compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
 				reg = <0x30b40000 0x10000>;
@@ -698,8 +984,6 @@
 					 <&clk IMX8MM_CLK_NAND_USDHC_BUS>,
 					 <&clk IMX8MM_CLK_USDHC1_ROOT>;
 				clock-names = "ipg", "ahb", "per";
-				assigned-clocks = <&clk IMX8MM_CLK_USDHC1>;
-				assigned-clock-rates = <400000000>;
 				fsl,tuning-start-tap = <20>;
 				fsl,tuning-step= <2>;
 				bus-width = <4>;
@@ -728,20 +1012,31 @@
 					 <&clk IMX8MM_CLK_NAND_USDHC_BUS>,
 					 <&clk IMX8MM_CLK_USDHC3_ROOT>;
 				clock-names = "ipg", "ahb", "per";
-				assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>;
-				assigned-clock-rates = <400000000>;
 				fsl,tuning-start-tap = <20>;
 				fsl,tuning-step= <2>;
 				bus-width = <4>;
 				status = "disabled";
 			};
 
+			flexspi: spi@30bb0000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "nxp,imx8mm-fspi";
+				reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>;
+				reg-names = "fspi_base", "fspi_mmap";
+				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MM_CLK_QSPI_ROOT>,
+					 <&clk IMX8MM_CLK_QSPI_ROOT>;
+				clock-names = "fspi", "fspi_en";
+				status = "disabled";
+			};
+
 			sdma1: dma-controller@30bd0000 {
 				compatible = "fsl,imx8mm-sdma", "fsl,imx8mq-sdma";
 				reg = <0x30bd0000 0x10000>;
 				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MM_CLK_SDMA1_ROOT>,
-					 <&clk IMX8MM_CLK_SDMA1_ROOT>;
+					 <&clk IMX8MM_CLK_AHB>;
 				clock-names = "ipg", "ahb";
 				#dma-cells = <3>;
 				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
@@ -752,7 +1047,8 @@
 				reg = <0x30be0000 0x10000>;
 				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MM_CLK_ENET1_ROOT>,
 					 <&clk IMX8MM_CLK_ENET1_ROOT>,
 					 <&clk IMX8MM_CLK_ENET_TIMER>,
@@ -763,13 +1059,18 @@
 				assigned-clocks = <&clk IMX8MM_CLK_ENET_AXI>,
 						  <&clk IMX8MM_CLK_ENET_TIMER>,
 						  <&clk IMX8MM_CLK_ENET_REF>,
-						  <&clk IMX8MM_CLK_ENET_TIMER>;
+						  <&clk IMX8MM_CLK_ENET_PHY_REF>;
 				assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
 							 <&clk IMX8MM_SYS_PLL2_100M>,
-							 <&clk IMX8MM_SYS_PLL2_125M>;
-				assigned-clock-rates = <0>, <0>, <125000000>, <100000000>;
+							 <&clk IMX8MM_SYS_PLL2_125M>,
+							 <&clk IMX8MM_SYS_PLL2_50M>;
+				assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
 				fsl,num-tx-queues = <3>;
 				fsl,num-rx-queues = <3>;
+				nvmem-cells = <&fec_mac_address>;
+				nvmem-cell-names = "mac-address";
+				nvmem_macaddr_swap;
+				fsl,stop-mode = <&gpr 0x10 3>;
 				status = "disabled";
 			};
 
@@ -777,6 +1078,7 @@
 
 		aips4: bus@32c00000 {
 			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x32c00000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x32c00000 0x32c00000 0x400000>;
@@ -819,6 +1121,19 @@
 				reg = <0x32e50200 0x200>;
 			};
 
+			pcie_phy: pcie-phy@32f00000 {
+				compatible = "fsl,imx8mm-pcie-phy";
+				reg = <0x32f00000 0x10000>;
+				clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
+				clock-names = "ref";
+				assigned-clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
+				assigned-clock-rates = <100000000>;
+				assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_100M>;
+				resets = <&src IMX8MQ_RESET_PCIEPHY>;
+				reset-names = "pciephy";
+				#phy-cells = <0>;
+				status = "disabled";
+			};
 		};
 
 		dma_apbh: dma-controller@33000000 {
@@ -834,10 +1149,10 @@
 			clocks = <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>;
 		};
 
-		gpmi: nand-controller@33002000{
+		gpmi: nand-controller@33002000 {
 			compatible = "fsl,imx8mm-gpmi-nand", "fsl,imx7d-gpmi-nand";
 			#address-cells = <1>;
-			#size-cells = <1>;
+			#size-cells = <0>;
 			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
 			reg-names = "gpmi-nand", "bch";
 			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
@@ -850,6 +1165,68 @@
 			status = "disabled";
 		};
 
+		pcie0: pcie@33800000 {
+			compatible = "fsl,imx8mm-pcie";
+			reg = <0x33800000 0x400000>, <0x1ff00000 0x80000>;
+			reg-names = "dbi", "config";
+			#address-cells = <3>;
+			#size-cells = <2>;
+			device_type = "pci";
+			bus-range = <0x00 0xff>;
+			ranges =  <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000 /* downstream I/O 64KB */
+				   0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
+			num-lanes = <1>;
+			num-viewport = <4>;
+			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "msi";
+			#interrupt-cells = <1>;
+			interrupt-map-mask = <0 0 0 0x7>;
+			interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+			fsl,max-link-speed = <2>;
+			linux,pci-domain = <0>;
+			power-domains = <&pgc_pcie>;
+			resets = <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
+			reset-names = "apps", "turnoff";
+			phys = <&pcie_phy>;
+			phy-names = "pcie-phy";
+			status = "disabled";
+		};
+
+		gpu_3d: gpu@38000000 {
+			compatible = "vivante,gc";
+			reg = <0x38000000 0x8000>;
+			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk IMX8MM_CLK_GPU_AHB>,
+				 <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+				 <&clk IMX8MM_CLK_GPU3D_ROOT>,
+				 <&clk IMX8MM_CLK_GPU3D_ROOT>;
+			clock-names = "reg", "bus", "core", "shader";
+			assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
+					  <&clk IMX8MM_GPU_PLL_OUT>;
+			assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
+			assigned-clock-rates = <0>, <1000000000>;
+			power-domains = <&pgc_gpu>;
+		};
+
+		gpu_2d: gpu@38008000 {
+			compatible = "vivante,gc";
+			reg = <0x38008000 0x8000>;
+			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk IMX8MM_CLK_GPU_AHB>,
+				 <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+				 <&clk IMX8MM_CLK_GPU2D_ROOT>;
+			clock-names = "reg", "bus", "core";
+			assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
+					  <&clk IMX8MM_GPU_PLL_OUT>;
+			assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
+			assigned-clock-rates = <0>, <1000000000>;
+			power-domains = <&pgc_gpu>;
+		};
+
 		gic: interrupt-controller@38800000 {
 			compatible = "arm,gic-v3";
 			reg = <0x38800000 0x10000>, /* GIC Dist */
@@ -859,10 +1236,19 @@
 			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
+		ddrc: memory-controller@3d400000 {
+			compatible = "fsl,imx8mm-ddrc", "fsl,imx8m-ddrc";
+			reg = <0x3d400000 0x400000>;
+			clock-names = "core", "pll", "alt", "apb";
+			clocks = <&clk IMX8MM_CLK_DRAM_CORE>,
+				 <&clk IMX8MM_DRAM_PLL>,
+				 <&clk IMX8MM_CLK_DRAM_ALT>,
+				 <&clk IMX8MM_CLK_DRAM_APB>;
+		};
+
 		ddr-pmu@3d800000 {
 			compatible = "fsl,imx8mm-ddr-pmu", "fsl,imx8m-ddr-pmu";
 			reg = <0x3d800000 0x400000>;
-			interrupt-parent = <&gic>;
 			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
@@ -6,216 +6,54 @@
 /dts-v1/;
 
 #include "imx8mn.dtsi"
+#include "imx8mn-evk.dtsi"
 
 / {
 	model = "NXP i.MX8MNano DDR4 EVK board";
 	compatible = "fsl,imx8mn-ddr4-evk", "fsl,imx8mn";
-
-	chosen {
-		stdout-path = &uart2;
-	};
-
-	reg_usdhc2_vmmc: regulator-usdhc2 {
-		compatible = "regulator-fixed";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
-		regulator-name = "VSD_3V3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-	};
 };
 
 &A53_0 {
 	cpu-supply = <&buck2_reg>;
 };
 
-&iomuxc {
-	pinctrl-names = "default";
-
-	pinctrl_fec1: fec1grp {
-		fsl,pins = <
-			MX8MN_IOMUXC_ENET_MDC_ENET1_MDC		0x3
-			MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO	0x3
-			MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3	0x1f
-			MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2	0x1f
-			MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1	0x1f
-			MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0	0x1f
-			MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3	0x91
-			MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2	0x91
-			MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1	0x91
-			MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0	0x91
-			MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC	0x1f
-			MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC	0x91
-			MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
-			MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
-			MX8MN_IOMUXC_SAI2_RXC_GPIO4_IO22	0x19
-		>;
-	};
-
-	pinctrl_i2c1: i2c1grp {
-		fsl,pins = <
-			MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3
-			MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3
-		>;
-	};
-
-	pinctrl_pmic: pmicirq {
-		fsl,pins = <
-			MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x41
-		>;
-	};
-
-	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
-		fsl,pins = <
-			MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
-		>;
-	};
-
-	pinctrl_uart2: uart2grp {
-		fsl,pins = <
-			MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
-			MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
-		>;
-	};
-
-	pinctrl_usdhc2_gpio: usdhc2grpgpio {
-		fsl,pins = <
-			MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x1c4
-		>;
-	};
-
-	pinctrl_usdhc2: usdhc2grp {
-		fsl,pins = <
-			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
-			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
-			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
-			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
-			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
-			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
-			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
-		>;
-	};
-
-	pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
-		fsl,pins = <
-			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
-			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
-			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
-			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
-			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
-			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
-			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
-		>;
-	};
-
-	pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
-		fsl,pins = <
-			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
-			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
-			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
-			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
-			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
-			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
-			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
-		>;
-	};
-
-	pinctrl_usdhc3: usdhc3grp {
-		fsl,pins = <
-			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000190
-			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d0
-			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d0
-			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d0
-			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d0
-			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d0
-			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d0
-			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d0
-			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d0
-			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d0
-			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x190
-		>;
-	};
+&ddrc {
+	operating-points-v2 = <&ddrc_opp_table>;
 
-	pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
-		fsl,pins = <
-			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000194
-			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d4
-			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d4
-			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d4
-			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d4
-			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d4
-			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d4
-			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d4
-			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d4
-			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d4
-			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x194
-		>;
-	};
+	ddrc_opp_table: opp-table {
+		compatible = "operating-points-v2";
 
-	pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
-		fsl,pins = <
-			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000196
-			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d6
-			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d6
-			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d6
-			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d6
-			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d6
-			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d6
-			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d6
-			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d6
-			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d6
-			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x196
-		>;
-	};
+		opp-25M {
+			opp-hz = /bits/ 64 <25000000>;
+		};
 
-	pinctrl_wdog: wdoggrp {
-		fsl,pins = <
-			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6
-		>;
-	};
-};
+		opp-100M {
+			opp-hz = /bits/ 64 <100000000>;
+		};
 
-&fec1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_fec1>;
-	phy-mode = "rgmii-id";
-	phy-handle = <&ethphy0>;
-	fsl,magic-packet;
-	status = "okay";
-
-	mdio {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		ethphy0: ethernet-phy@0 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <0>;
-			at803x,led-act-blind-workaround;
-			at803x,eee-disabled;
-			at803x,vddio-1p8v;
+		opp-600M {
+			opp-hz = /bits/ 64 <600000000>;
 		};
 	};
 };
 
 &i2c1 {
-	clock-frequency = <400000>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_i2c1>;
-	status = "okay";
-
 	pmic@4b {
 		compatible = "rohm,bd71847";
 		reg = <0x4b>;
+		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_pmic>;
 		interrupt-parent = <&gpio1>;
 		interrupts = <3 GPIO_ACTIVE_LOW>;
 		rohm,reset-snvs-powered;
 
+		#clock-cells = <0>;
+		clocks = <&osc_32k 0>;
+		clock-output-names = "clk-32k-out";
+
 		regulators {
 			buck1_reg: BUCK1 {
-				regulator-name = "BUCK1";
+				regulator-name = "buck1";
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1300000>;
 				regulator-boot-on;
@@ -224,7 +62,7 @@
 			};
 
 			buck2_reg: BUCK2 {
-				regulator-name = "BUCK2";
+				regulator-name = "buck2";
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1300000>;
 				regulator-boot-on;
@@ -234,14 +72,14 @@
 
 			buck3_reg: BUCK3 {
 				// BUCK5 in datasheet
-				regulator-name = "BUCK3";
+				regulator-name = "buck3";
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1350000>;
 			};
 
 			buck4_reg: BUCK4 {
 				// BUCK6 in datasheet
-				regulator-name = "BUCK4";
+				regulator-name = "buck4";
 				regulator-min-microvolt = <3000000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
@@ -250,7 +88,7 @@
 
 			buck5_reg: BUCK5 {
 				// BUCK7 in datasheet
-				regulator-name = "BUCK5";
+				regulator-name = "buck5";
 				regulator-min-microvolt = <1605000>;
 				regulator-max-microvolt = <1995000>;
 				regulator-boot-on;
@@ -259,7 +97,7 @@
 
 			buck6_reg: BUCK6 {
 				// BUCK8 in datasheet
-				regulator-name = "BUCK6";
+				regulator-name = "buck6";
 				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <1400000>;
 				regulator-boot-on;
@@ -267,23 +105,23 @@
 			};
 
 			ldo1_reg: LDO1 {
-				regulator-name = "LDO1";
-				regulator-min-microvolt = <3000000>;
+				regulator-name = "ldo1";
+				regulator-min-microvolt = <1600000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
 			ldo2_reg: LDO2 {
-				regulator-name = "LDO2";
-				regulator-min-microvolt = <900000>;
+				regulator-name = "ldo2";
+				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <900000>;
 				regulator-boot-on;
 				regulator-always-on;
 			};
 
 			ldo3_reg: LDO3 {
-				regulator-name = "LDO3";
+				regulator-name = "ldo3";
 				regulator-min-microvolt = <1800000>;
 				regulator-max-microvolt = <3300000>;
 				regulator-boot-on;
@@ -291,7 +129,7 @@
 			};
 
 			ldo4_reg: LDO4 {
-				regulator-name = "LDO4";
+				regulator-name = "ldo4";
 				regulator-min-microvolt = <900000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-boot-on;
@@ -299,7 +137,7 @@
 			};
 
 			ldo6_reg: LDO6 {
-				regulator-name = "LDO6";
+				regulator-name = "ldo6";
 				regulator-min-microvolt = <900000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-boot-on;
@@ -309,40 +147,10 @@
 	};
 };
 
-&snvs_pwrkey {
-	status = "okay";
-};
-
-&uart2 { /* console */
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_uart2>;
-	status = "okay";
-};
-
-&usdhc2 {
-	pinctrl-names = "default", "state_100mhz", "state_200mhz";
-	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
-	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
-	cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
-	bus-width = <4>;
-	vmmc-supply = <&reg_usdhc2_vmmc>;
-	status = "okay";
-};
-
-&usdhc3 {
-	pinctrl-names = "default", "state_100mhz", "state_200mhz";
-	pinctrl-0 = <&pinctrl_usdhc3>;
-	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
-	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
-	bus-width = <8>;
-	non-removable;
-	status = "okay";
-};
-
-&wdog1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_wdog>;
-	fsl,ext-reset-output;
-	status = "okay";
+&iomuxc {
+	pinctrl_pmic: pmicirqgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x41
+		>;
+	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
@@ -0,0 +1,429 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <dt-bindings/usb/pd.h>
+#include "imx8mn.dtsi"
+
+/ {
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_led>;
+
+		status {
+			label = "yellow:status";
+			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0 0x80000000>;
+	};
+
+	reg_usdhc2_vmmc: regulator-usdhc2 {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	ir-receiver {
+		compatible = "gpio-ir-receiver";
+		gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ir>;
+		linux,autosuspend-period = <125>;
+	};
+
+	wm8524: audio-codec {
+		#sound-dai-cells = <0>;
+		compatible = "wlf,wm8524";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_wlf>;
+		wlf,mute-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
+		clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
+		clock-names = "mclk";
+	};
+
+	sound-wm8524 {
+		compatible = "fsl,imx-audio-wm8524";
+		model = "wm8524-audio";
+		audio-cpu = <&sai3>;
+		audio-codec = <&wm8524>;
+		audio-asrc = <&easrc>;
+		audio-routing =
+			"Line Out Jack", "LINEVOUTL",
+			"Line Out Jack", "LINEVOUTR";
+	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif1>;
+		spdif-out;
+		spdif-in;
+	};
+};
+
+&easrc {
+	fsl,asrc-rate  = <48000>;
+	status = "okay";
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	fsl,magic-packet;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+		};
+	};
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+};
+
+&i2c2 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ptn5110: tcpc@50 {
+		compatible = "nxp,ptn5110";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_typec1>;
+		reg = <0x50>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+		status = "okay";
+
+		port {
+			typec1_dr_sw: endpoint {
+				remote-endpoint = <&usb1_drd_sw>;
+			};
+		};
+
+		typec1_con: connector {
+			compatible = "usb-c-connector";
+			label = "USB-C";
+			power-role = "dual";
+			data-role = "dual";
+			try-power-role = "sink";
+			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+			sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+				     PDO_VAR(5000, 20000, 3000)>;
+			op-sink-microwatt = <15000000>;
+			self-powered;
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	pca6416: gpio@20 {
+		compatible = "ti,tca6416";
+		reg = <0x20>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
+};
+
+&sai3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai3>;
+	assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
+	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	fsl,sai-mclk-direction-output;
+	status = "okay";
+};
+
+&snvs_pwrkey {
+	status = "okay";
+};
+
+&spdif1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif1>;
+	assigned-clocks = <&clk IMX8MN_CLK_SPDIF1>;
+	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
+&uart2 { /* console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+&usbotg1 {
+	dr_mode = "otg";
+	hnp-disable;
+	srp-disable;
+	adp-disable;
+	usb-role-switch;
+	samsung,picophy-pre-emp-curr-control = <3>;
+	samsung,picophy-dc-vol-level-adjust = <7>;
+	status = "okay";
+
+	port {
+		usb1_drd_sw: endpoint {
+			remote-endpoint = <&typec1_dr_sw>;
+		};
+	};
+};
+
+&usdhc2 {
+	assigned-clocks = <&clk IMX8MN_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+	cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+	bus-width = <4>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	status = "okay";
+};
+
+&usdhc3 {
+	assigned-clocks = <&clk IMX8MN_CLK_USDHC3_ROOT>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_ENET_MDC_ENET1_MDC		0x3
+			MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO	0x3
+			MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3	0x1f
+			MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2	0x1f
+			MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1	0x1f
+			MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0	0x1f
+			MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3	0x91
+			MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2	0x91
+			MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1	0x91
+			MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0	0x91
+			MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC	0x1f
+			MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC	0x91
+			MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
+			MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
+			MX8MN_IOMUXC_SAI2_RXC_GPIO4_IO22	0x19
+		>;
+	};
+
+	pinctrl_gpio_led: gpioledgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_READY_B_GPIO3_IO16	0x19
+		>;
+	};
+
+	pinctrl_gpio_wlf: gpiowlfgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C4_SDA_GPIO5_IO21	0xd6
+		>;
+	};
+
+	pinctrl_ir: irgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13              0x4f
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
+		>;
+	};
+
+	pinctrl_sai3: sai3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
+			MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
+			MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK        0xd6
+			MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0     0xd6
+		>;
+	};
+
+	pinctrl_spdif1: spdif1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SPDIF_TX_SPDIF1_OUT	0xd6
+			MX8MN_IOMUXC_SPDIF_RX_SPDIF1_IN		0xd6
+		>;
+	};
+
+	pinctrl_typec1: typec1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD1_STROBE_GPIO2_IO11	0x159
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
+			MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
+		>;
+	};
+
+	pinctrl_usdhc2_gpio: usdhc2grpgpio {
+		fsl,pins = <
+			MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x1c4
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
+			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
+			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
+			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
+			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
+			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
+			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
+			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
+			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
+			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
+			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
+			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
+			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
+			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
+			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
+			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
+			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
+			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
+			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000190
+			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d0
+			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d0
+			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d0
+			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d0
+			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d0
+			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d0
+			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d0
+			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d0
+			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d0
+			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x190
+		>;
+	};
+
+	pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000194
+			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d4
+			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d4
+			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d4
+			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d4
+			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d4
+			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d4
+			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d4
+			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d4
+			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d4
+			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x194
+		>;
+	};
+
+	pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000196
+			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d6
+			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d6
+			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d6
+			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d6
+			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d6
+			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d6
+			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d6
+			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d6
+			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d6
+			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x196
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
@@ -0,0 +1,944 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 Gateworks Corporation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+
+#include "imx8mn.dtsi"
+
+/ {
+	model = "Gateworks Venice GW7902 i.MX8MN board";
+	compatible = "gw,imx8mn-gw7902", "fsl,imx8mn";
+
+	aliases {
+		rtc0 = &rtc;
+		rtc1 = &snvs_rtc;
+		usb0 = &usbotg1;
+	};
+
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0 0x80000000>;
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		/* 32MiB */
+		optee_core@56000000 {
+			reg = <0x00 0x56000000 0x00 0x2000000>;
+		};
+
+		/* 4K */
+		optee_shm@57c00000 {
+			reg = <0x00 0x57c00000 0x00 0x400000>;
+		};
+	};
+
+	can20m: can20m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <20000000>;
+		clock-output-names = "can20m";
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		user-pb {
+			label = "user_pb";
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+			linux,code = <BTN_0>;
+		};
+
+		user-pb1x {
+			label = "user_pb1x";
+			linux,code = <BTN_1>;
+			interrupt-parent = <&gsc>;
+			interrupts = <0>;
+		};
+
+		key-erased {
+			label = "key_erased";
+			linux,code = <BTN_2>;
+			interrupt-parent = <&gsc>;
+			interrupts = <1>;
+		};
+
+		eeprom-wp {
+			label = "eeprom_wp";
+			linux,code = <BTN_3>;
+			interrupt-parent = <&gsc>;
+			interrupts = <2>;
+		};
+
+		tamper {
+			label = "tamper";
+			linux,code = <BTN_4>;
+			interrupt-parent = <&gsc>;
+			interrupts = <5>;
+		};
+
+		switch-hold {
+			label = "switch_hold";
+			linux,code = <BTN_5>;
+			interrupt-parent = <&gsc>;
+			interrupts = <7>;
+		};
+	};
+
+	led-controller {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+
+		led-0 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel1";
+			gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-1 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel2";
+			gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-2 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel3";
+			gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-3 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel4";
+			gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		led-4 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			label = "panel5";
+			gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+	};
+
+	pps {
+		compatible = "pps-gpio";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pps>;
+		gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "3P3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	reg_usb1_vbus: regulator-usb1 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usb1>;
+		compatible = "regulator-fixed";
+		regulator-name = "usb_usb1_vbus";
+		gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	reg_wifi: regulator-wifi {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_wl>;
+		compatible = "regulator-fixed";
+		regulator-name = "wifi";
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		startup-delay-us = <100>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+};
+
+&A53_0 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+	cpu-supply = <&buck2>;
+};
+
+&ddrc {
+	operating-points-v2 = <&ddrc_opp_table>;
+
+	ddrc_opp_table: opp-table {
+		compatible = "operating-points-v2";
+
+		opp-25M {
+			opp-hz = /bits/ 64 <25000000>;
+		};
+
+		opp-100M {
+			opp-hz = /bits/ 64 <100000000>;
+		};
+
+		opp-750M {
+			opp-hz = /bits/ 64 <750000000>;
+		};
+	};
+};
+
+&ecspi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spi1>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+	status = "okay";
+
+	can@0 {
+		compatible = "microchip,mcp2515";
+		reg = <0>;
+		clocks = <&can20m>;
+		oscillator-frequency = <20000000>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+		spi-max-frequency = <10000000>;
+	};
+};
+
+/* off-board header */
+&ecspi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spi2>;
+	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	local-mac-address = [00 00 00 00 00 00];
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+		};
+	};
+};
+
+&gpc {
+	status = "disabled";
+};
+
+&gpu {
+	status = "disabled";
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	gsc: gsc@20 {
+		compatible = "gw,gsc";
+		reg = <0x20>;
+		pinctrl-0 = <&pinctrl_gsc>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		adc {
+			compatible = "gw,gsc-adc";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			channel@6 {
+				gw,mode = <0>;
+				reg = <0x06>;
+				label = "temp";
+			};
+
+			channel@8 {
+				gw,mode = <1>;
+				reg = <0x08>;
+				label = "vdd_bat";
+			};
+
+			channel@82 {
+				gw,mode = <2>;
+				reg = <0x82>;
+				label = "vin";
+				gw,voltage-divider-ohms = <22100 1000>;
+				gw,voltage-offset-microvolt = <700000>;
+			};
+
+			channel@84 {
+				gw,mode = <2>;
+				reg = <0x84>;
+				label = "vin_4p0";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+
+			channel@86 {
+				gw,mode = <2>;
+				reg = <0x86>;
+				label = "vdd_3p3";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+
+			channel@88 {
+				gw,mode = <2>;
+				reg = <0x88>;
+				label = "vdd_0p9";
+			};
+
+			channel@8c {
+				gw,mode = <2>;
+				reg = <0x8c>;
+				label = "vdd_soc";
+			};
+
+			channel@8e {
+				gw,mode = <2>;
+				reg = <0x8e>;
+				label = "vdd_arm";
+			};
+
+			channel@90 {
+				gw,mode = <2>;
+				reg = <0x90>;
+				label = "vdd_1p8";
+			};
+
+			channel@92 {
+				gw,mode = <2>;
+				reg = <0x92>;
+				label = "vdd_dram";
+			};
+
+			channel@98 {
+				gw,mode = <2>;
+				reg = <0x98>;
+				label = "vdd_1p0";
+			};
+
+			channel@9a {
+				gw,mode = <2>;
+				reg = <0x9a>;
+				label = "vdd_2p5";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+
+			channel@a2 {
+				gw,mode = <2>;
+				reg = <0xa2>;
+				label = "vdd_gsc";
+				gw,voltage-divider-ohms = <10000 10000>;
+			};
+		};
+	};
+
+	gpio: gpio@23 {
+		compatible = "nxp,pca9555";
+		reg = <0x23>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		interrupt-parent = <&gsc>;
+		interrupts = <4>;
+	};
+
+	pmic@4b {
+		compatible = "rohm,bd71847";
+		reg = <0x4b>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pmic>;
+		interrupt-parent = <&gpio3>;
+		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+		rohm,reset-snvs-powered;
+		#clock-cells = <0>;
+		clocks = <&osc_32k 0>;
+		clock-output-names = "clk-32k-out";
+
+		regulators {
+			/* vdd_soc: 0.805-0.900V (typ=0.8V) */
+			BUCK1 {
+				regulator-name = "buck1";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+			};
+
+			/* vdd_arm: 0.805-1.0V (typ=0.9V) */
+			buck2: BUCK2 {
+				regulator-name = "buck2";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+				rohm,dvs-run-voltage = <1000000>;
+				rohm,dvs-idle-voltage = <900000>;
+			};
+
+			/* vdd_0p9: 0.805-1.0V (typ=0.9V) */
+			BUCK3 {
+				regulator-name = "buck3";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_3p3 */
+			BUCK4 {
+				regulator-name = "buck4";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_1p8 */
+			BUCK5 {
+				regulator-name = "buck5";
+				regulator-min-microvolt = <1605000>;
+				regulator-max-microvolt = <1995000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_dram */
+			BUCK6 {
+				regulator-name = "buck6";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* nvcc_snvs_1p8 */
+			LDO1 {
+				regulator-name = "ldo1";
+				regulator-min-microvolt = <1600000>;
+				regulator-max-microvolt = <1900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdd_snvs_0p8 */
+			LDO2 {
+				regulator-name = "ldo2";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vdda_1p8 */
+			LDO3 {
+				regulator-name = "ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			LDO4 {
+				regulator-name = "ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			LDO6 {
+				regulator-name = "ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+
+	eeprom@50 {
+		compatible = "atmel,24c02";
+		reg = <0x50>;
+		pagesize = <16>;
+	};
+
+	eeprom@51 {
+		compatible = "atmel,24c02";
+		reg = <0x51>;
+		pagesize = <16>;
+	};
+
+	eeprom@52 {
+		compatible = "atmel,24c02";
+		reg = <0x52>;
+		pagesize = <16>;
+	};
+
+	eeprom@53 {
+		compatible = "atmel,24c02";
+		reg = <0x53>;
+		pagesize = <16>;
+	};
+
+	rtc: rtc@68 {
+		compatible = "dallas,ds1672";
+		reg = <0x68>;
+	};
+};
+
+&i2c2 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	accelerometer@19 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_accel>;
+		compatible = "st,lis2de12";
+		reg = <0x19>;
+		st,drdy-int-pin = <1>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+		interrupt-names = "INT1";
+	};
+
+	secure-element@60 {
+		compatible = "nxp,se050";
+		reg = <0x60>;
+	};
+};
+
+/* off-board header */
+&i2c3 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+};
+
+/* off-board header */
+&i2c4 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	status = "okay";
+};
+
+&mu {
+	status = "disabled";
+};
+
+/* off-board header */
+&sai3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai3>;
+	assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
+	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
+/* RS232/RS485/RS422 selectable */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>;
+	status = "okay";
+};
+
+/* RS232 console */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+/* bluetooth HCI */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
+	rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+	cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+	status = "okay";
+
+	bluetooth {
+		compatible = "brcm,bcm4330-bt";
+		shutdown-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+/* LTE Cat M1/NB1/EGPRS modem or GPS (loading option) */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	status = "okay";
+};
+
+&usbotg1 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usb1_vbus>;
+	disable-over-current;
+	status = "okay";
+
+	/delete-property/power-domains;
+	/delete-property/assigned-clocks;
+	/delete-property/assigned-clock-parents;
+	assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>,
+		<&clk IMX8MN_CLK_USB_CORE_REF>;
+	assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>,
+		<&clk IMX8MN_SYS_PLL1_100M>;
+};
+
+/* SDIO WiFi */
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	bus-width = <4>;
+	non-removable;
+	vmmc-supply = <&reg_wifi>;
+	status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	pinctrl_hog: hoggrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_CE0_B_GPIO3_IO1	0x40000159 /* M2_GDIS# */
+			MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13	0x40000041 /* M2_RST# */
+			MX8MN_IOMUXC_NAND_DATA01_GPIO3_IO7	0x40000119 /* M2_OFF# */
+			MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x40000159 /* M2_WDIS# */
+			MX8MN_IOMUXC_SAI2_RXFS_GPIO4_IO21	0x40000041 /* APP GPIO1 */
+			MX8MN_IOMUXC_SAI2_MCLK_GPIO4_IO27	0x40000041 /* APP GPIO2 */
+			MX8MN_IOMUXC_SD1_DATA6_GPIO2_IO8	0x40000041 /* UART2_EN# */
+			MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28	0x40000041 /* MIPI_GPIO1 */
+			MX8MN_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5	0x40000041 /* MIPI_GPIO2 */
+			MX8MN_IOMUXC_SPDIF_RX_GPIO5_IO4		0x40000041 /* MIPI_GPIO3/PWM2 */
+			MX8MN_IOMUXC_SPDIF_TX_GPIO5_IO3		0x40000041 /* MIPI_GPIO4/PWM3 */
+		>;
+	};
+
+	pinctrl_accel: accelgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x159
+		>;
+	};
+
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_ENET_MDC_ENET1_MDC			0x3
+			MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
+			MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
+			MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
+			MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
+			MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
+			MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
+			MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
+			MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
+			MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
+			MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
+			MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
+			MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
+			MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
+			MX8MN_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x19 /* RST# */
+			MX8MN_IOMUXC_GPIO1_IO11_GPIO1_IO11		0x19 /* IRQ# */
+			MX8MN_IOMUXC_GPIO1_IO08_ENET1_1588_EVENT0_IN	0x141
+			MX8MN_IOMUXC_GPIO1_IO09_ENET1_1588_EVENT0_OUT	0x141
+		>;
+	};
+
+	pinctrl_gsc: gscgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD1_DATA4_GPIO2_IO6	0x40
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c4: i2c4grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL		0x400001c3
+			MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_gpio_leds: gpioledgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SAI5_RXD0_GPIO3_IO21	0x19
+			MX8MN_IOMUXC_SAI5_RXD2_GPIO3_IO23	0x19
+			MX8MN_IOMUXC_SAI5_RXD1_GPIO3_IO22	0x19
+			MX8MN_IOMUXC_SAI5_RXC_GPIO3_IO20	0x19
+			MX8MN_IOMUXC_SAI5_MCLK_GPIO3_IO25	0x19
+		>;
+	};
+
+	pinctrl_pmic: pmicgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_DATA02_GPIO3_IO8	0x41
+		>;
+	};
+
+	pinctrl_pps: ppsgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SAI5_RXD3_GPIO3_IO24	0x141 /* PPS */
+		>;
+	};
+
+	pinctrl_reg_wl: regwlgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41 /* WLAN_WLON */
+		>;
+	};
+
+	pinctrl_reg_usb1: regusb1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD1_DATA5_GPIO2_IO7	0x41
+		>;
+	};
+
+	pinctrl_sai3: sai3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK	0xd6
+			MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0	0xd6
+			MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK	0xd6
+			MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0	0xd6
+			MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC	0xd6
+		>;
+	};
+
+	pinctrl_spi1: spi1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK	0x82
+			MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI	0x82
+			MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO	0x82
+			MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9	0x40
+			MX8MN_IOMUXC_SD1_DATA1_GPIO2_IO3	0x140 /* CAN_IRQ# */
+		>;
+	};
+
+	pinctrl_spi2: spi2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK	0x82
+			MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI	0x82
+			MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO	0x82
+			MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13	0x40 /* SS0 */
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140
+			MX8MN_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140
+		>;
+	};
+
+	pinctrl_uart1_gpio: uart1gpiogrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SAI2_TXD0_GPIO4_IO26	0x40000110 /* HALF */
+			MX8MN_IOMUXC_SAI2_TXC_GPIO4_IO25	0x40000110 /* TERM */
+			MX8MN_IOMUXC_SAI2_RXD0_GPIO4_IO23	0x40000110 /* RS485 */
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
+			MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
+		>;
+	};
+
+	pinctrl_uart3_gpio: uart3_gpiogrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_CD_B_GPIO2_IO12	0x41 /* BT_EN# */
+		>;
+	};
+
+	pinctrl_uart3: uart3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_UART3_RXD_UART3_DCE_RX	0x140
+			MX8MN_IOMUXC_UART3_TXD_UART3_DCE_TX	0x140
+			MX8MN_IOMUXC_SD1_CLK_GPIO2_IO0		0x140 /* CTS */
+			MX8MN_IOMUXC_SD1_CMD_GPIO2_IO1		0x140 /* RTS */
+		>;
+	};
+
+	pinctrl_uart4: uart4grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_UART4_RXD_UART4_DCE_RX	0x140
+			MX8MN_IOMUXC_UART4_TXD_UART4_DCE_TX	0x140
+			MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x141 /* GNSS_GASP */
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
+			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
+			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
+			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
+			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
+			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK	0x190
+			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d0
+			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d0
+			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d0
+			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d0
+			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d0
+			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d0
+			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d0
+			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d0
+			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d0
+			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x190
+		>;
+	};
+
+	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK	0x194
+			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d4
+			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d4
+			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d4
+			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d4
+			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d4
+			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d4
+			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d4
+			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d4
+			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d4
+			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x194
+		>;
+	};
+
+	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK	0x196
+			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD	0x1d6
+			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0	0x1d6
+			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1	0x1d6
+			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2	0x1d6
+			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3	0x1d6
+			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4	0x1d6
+			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5	0x1d6
+			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6	0x1d6
+			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7	0x1d6
+			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE	0x196
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6
+		>;
+	};
+};
+
+&cpu_alert0 {
+	temperature = <95000>;
+	hysteresis = <2000>;
+	type = "passive";
+};
+
+&cpu_crit0 {
+	temperature = <105000>;
+	hysteresis = <2000>;
+	type = "critical";
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mn.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mn.dtsi
@@ -4,14 +4,16 @@
  */
 
 #include <dt-bindings/clock/imx8mn-clock.h>
+#include <dt-bindings/power/imx8mn-power.h>
+#include <dt-bindings/reset/imx8mq-reset.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/thermal/thermal.h>
 
 #include "imx8mn-pinfunc.h"
 
 / {
-	compatible = "fsl,imx8mn";
 	interrupt-parent = <&gic>;
 	#address-cells = <2>;
 	#size-cells = <2>;
@@ -43,6 +45,19 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
+		idle-states {
+			entry-method = "psci";
+
+			cpu_pd_wait: cpu-pd-wait {
+				compatible = "arm,idle-state";
+				arm,psci-suspend-param = <0x0010033>;
+				local-timer-stop;
+				entry-latency-us = <1000>;
+				exit-latency-us = <700>;
+				min-residency-us = <2700>;
+			};
+		};
+
 		A53_0: cpu@0 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a53";
@@ -50,10 +65,18 @@
 			clock-latency = <61036>;
 			clocks = <&clk IMX8MN_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			nvmem-cells = <&cpu_speed_grade>;
 			nvmem-cell-names = "speed_grade";
+			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_1: cpu@1 {
@@ -63,8 +86,16 @@
 			clock-latency = <61036>;
 			clocks = <&clk IMX8MN_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
+			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_2: cpu@2 {
@@ -74,8 +105,16 @@
 			clock-latency = <61036>;
 			clocks = <&clk IMX8MN_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
+			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_3: cpu@3 {
@@ -85,12 +124,24 @@
 			clock-latency = <61036>;
 			clocks = <&clk IMX8MN_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
+			cpu-idle-states = <&cpu_pd_wait>;
+			#cooling-cells = <2>;
 		};
 
 		A53_L2: l2-cache0 {
 			compatible = "cache";
+			cache-level = <2>;
+			cache-size = <0x80000>;
+			cache-line-size = <64>;
+			cache-sets = <512>;
 		};
 	};
 
@@ -123,11 +174,6 @@
 		};
 	};
 
-	memory@40000000 {
-		device_type = "memory";
-		reg = <0x0 0x40000000 0 0x80000000>;
-	};
-
 	osc_32k: clock-osc-32k {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
@@ -170,26 +216,73 @@
 		clock-output-names = "clk_ext4";
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_PPI 7
+			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+		interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>;
+	};
+
 	psci {
 		compatible = "arm,psci-1.0";
 		method = "smc";
 	};
 
+	thermal-zones {
+		cpu-thermal {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			thermal-sensors = <&tmu>;
+			trips {
+				cpu_alert0: trip0 {
+					temperature = <85000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+
+				cpu_crit0: trip1 {
+					temperature = <95000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+
+			cooling-maps {
+				map0 {
+					trip = <&cpu_alert0>;
+					cooling-device =
+						<&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+	};
+
 	timer {
 		compatible = "arm,armv8-timer";
-		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
-			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
-			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
-			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
+		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
 		clock-frequency = <8000000>;
 		arm,no-tick-in-suspend;
 	};
 
 	soc@0 {
-		compatible = "simple-bus";
+		compatible = "fsl,imx8mn-soc", "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0x0 0x0 0x0 0x3e000000>;
+		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
+		nvmem-cells = <&imx8mn_uid>;
+		nvmem-cell-names = "soc_unique_id";
+
+		caam_sm: caam-sm@00100000 {
+			compatible = "fsl,imx6q-caam-sm";
+			reg = <0x100000 0x8000>;
+		};
 
 		aips1: bus@30000000 {
 			compatible = "fsl,aips-bus", "simple-bus";
@@ -198,6 +291,149 @@
 			#size-cells = <1>;
 			ranges;
 
+			spba: spba-bus@30000000 {
+				compatible = "fsl,spba-bus", "simple-bus";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x30000000 0x100000>;
+				ranges;
+
+				sai2: sai@30020000 {
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30020000 0x10000>;
+					interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SAI2_IPG>,
+						<&clk IMX8MN_CLK_DUMMY>,
+						<&clk IMX8MN_CLK_SAI2_ROOT>,
+						<&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>;
+					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
+
+				sai3: sai@30030000 {
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30030000 0x10000>;
+					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
+						 <&clk IMX8MN_CLK_DUMMY>,
+						 <&clk IMX8MN_CLK_SAI3_ROOT>,
+						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>;
+					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
+
+				sai5: sai@30050000 {
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30050000 0x10000>;
+					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SAI5_IPG>,
+						 <&clk IMX8MN_CLK_DUMMY>,
+						 <&clk IMX8MN_CLK_SAI5_ROOT>,
+						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>;
+					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
+					dma-names = "rx", "tx";
+					fsl,shared-interrupt;
+					fsl,dataline = <0 0xf 0xf>;
+					status = "disabled";
+				};
+
+				sai6: sai@30060000 {
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30060000  0x10000>;
+					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SAI6_IPG>,
+						 <&clk IMX8MN_CLK_DUMMY>,
+						 <&clk IMX8MN_CLK_SAI6_ROOT>,
+						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>;
+					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
+
+				micfil: audio-controller@30080000 {
+					compatible = "fsl,imx8mm-micfil";
+					reg = <0x30080000 0x10000>;
+					interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_PDM_IPG>,
+						 <&clk IMX8MN_CLK_PDM_ROOT>,
+						 <&clk IMX8MN_AUDIO_PLL1_OUT>,
+						 <&clk IMX8MN_AUDIO_PLL2_OUT>,
+						 <&clk IMX8MN_CLK_EXT3>;
+					clock-names = "ipg_clk", "ipg_clk_app",
+						      "pll8k", "pll11k", "clkext3";
+					dmas = <&sdma2 24 25 0x80000000>;
+					dma-names = "rx";
+					status = "disabled";
+				};
+
+				spdif1: spdif@30090000 {
+					compatible = "fsl,imx35-spdif";
+					reg = <0x30090000 0x10000>;
+					interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_AUDIO_AHB>, /* core */
+						 <&clk IMX8MN_CLK_24M>, /* rxtx0 */
+						 <&clk IMX8MN_CLK_SPDIF1>, /* rxtx1 */
+						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx2 */
+						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx3 */
+						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx4 */
+						 <&clk IMX8MN_CLK_AUDIO_AHB>, /* rxtx5 */
+						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx6 */
+						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx7 */
+						 <&clk IMX8MN_CLK_DUMMY>; /* spba */
+					clock-names = "core", "rxtx0",
+						      "rxtx1", "rxtx2",
+						      "rxtx3", "rxtx4",
+						      "rxtx5", "rxtx6",
+						      "rxtx7", "spba";
+					dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
+
+				sai7: sai@300b0000 {
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x300b0000 0x10000>;
+					interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SAI7_IPG>,
+						 <&clk IMX8MN_CLK_DUMMY>,
+						 <&clk IMX8MN_CLK_SAI7_ROOT>,
+						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>;
+					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
+
+				easrc: easrc@300c0000 {
+					compatible = "fsl,imx8mn-easrc";
+					reg = <0x300c0000 0x10000>;
+					interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_ASRC_ROOT>;
+					clock-names = "mem";
+					dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>,
+					       <&sdma2 18 23 0> , <&sdma2 19 23 0>,
+					       <&sdma2 20 23 0> , <&sdma2 21 23 0>,
+					       <&sdma2 22 23 0> , <&sdma2 23 23 0>;
+					dma-names = "ctx0_rx", "ctx0_tx",
+						    "ctx1_rx", "ctx1_tx",
+						    "ctx2_rx", "ctx2_tx",
+						    "ctx3_rx", "ctx3_tx";
+					firmware-name = "imx/easrc/easrc-imx8mn.bin";
+					fsl,asrc-rate  = <8000>;
+					fsl,asrc-format = <2>;
+					status = "disabled";
+				};
+			};
+
 			gpio1: gpio@30200000 {
 				compatible = "fsl,imx8mn-gpio", "fsl,imx35-gpio";
 				reg = <0x30200000 0x10000>;
@@ -263,6 +499,13 @@
 				gpio-ranges = <&iomuxc 0 119 30>;
 			};
 
+			tmu: tmu@30260000 {
+				compatible = "fsl,imx8mn-tmu", "fsl,imx8mm-tmu";
+				reg = <0x30260000 0x10000>;
+				clocks = <&clk IMX8MN_CLK_TMU_ROOT>;
+				#thermal-sensor-cells = <0>;
+			};
+
 			wdog1: watchdog@30280000 {
 				compatible = "fsl,imx8mn-wdt", "fsl,imx21-wdt";
 				reg = <0x30280000 0x10000>;
@@ -319,21 +562,29 @@
 				reg = <0x30340000 0x10000>;
 			};
 
-			ocotp: ocotp-ctrl@30350000 {
-				compatible = "fsl,imx8mn-ocotp", "fsl,imx7d-ocotp", "syscon";
+			ocotp: efuse@30350000 {
+				compatible = "fsl,imx8mn-ocotp", "fsl,imx8mm-ocotp", "syscon";
 				reg = <0x30350000 0x10000>;
 				clocks = <&clk IMX8MN_CLK_OCOTP_ROOT>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 
+				imx8mn_uid: unique-id@410 {
+					reg = <0x4 0x8>;
+				};
+
 				cpu_speed_grade: speed-grade@10 {
 					reg = <0x10 4>;
 				};
+
+				fec_mac_address: mac-address@90 {
+					reg = <0x90 6>;
+				};
 			};
 
 			anatop: anatop@30360000 {
 				compatible = "fsl,imx8mn-anatop", "fsl,imx8mm-anatop",
-					     "syscon", "simple-bus";
+					     "syscon";
 				reg = <0x30360000 0x10000>;
 			};
 
@@ -347,6 +598,7 @@
 					offset = <0x34>;
 					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
 						     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SNVS_ROOT>;
 					clock-names = "snvs-rtc";
 				};
 
@@ -354,6 +606,8 @@
 					compatible = "fsl,sec-v4.0-pwrkey";
 					regmap = <&snvs>;
 					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MN_CLK_SNVS_ROOT>;
+					clock-names = "snvs-pwrkey";
 					linux,keycode = <KEY_POWER>;
 					wakeup-source;
 					status = "disabled";
@@ -368,14 +622,66 @@
 					 <&clk_ext3>, <&clk_ext4>;
 				clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
 					      "clk_ext3", "clk_ext4";
+				assigned-clocks = <&clk IMX8MN_CLK_A53_SRC>,
+						<&clk IMX8MN_CLK_A53_CORE>,
+						<&clk IMX8MN_CLK_NOC>,
+						<&clk IMX8MN_CLK_AUDIO_AHB>,
+						<&clk IMX8MN_CLK_IPG_AUDIO_ROOT>,
+						<&clk IMX8MN_SYS_PLL3>,
+						<&clk IMX8MN_AUDIO_PLL1>,
+						<&clk IMX8MN_AUDIO_PLL2>;
+				assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_800M>,
+							 <&clk IMX8MN_ARM_PLL_OUT>,
+							 <&clk IMX8MN_SYS_PLL3_OUT>,
+							 <&clk IMX8MN_SYS_PLL1_800M>;
+				assigned-clock-rates = <0>, <0>, <0>,
+							<400000000>,
+							<400000000>,
+							<600000000>,
+							<393216000>,
+							<361267200>;
 			};
 
 			src: reset-controller@30390000 {
-				compatible = "fsl,imx8mn-src", "syscon";
+				compatible = "fsl,imx8mn-src", "fsl,imx8mq-src", "syscon";
 				reg = <0x30390000 0x10000>;
 				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
 				#reset-cells = <1>;
 			};
+
+			gpc: gpc@303a0000 {
+				compatible = "fsl,imx8mn-gpc";
+				reg = <0x303a0000 0x10000>;
+				interrupt-parent = <&gic>;
+				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+
+				pgc {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					pgc_hsiomix: power-domain@0 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MN_POWER_DOMAIN_HSIOMIX>;
+						clocks = <&clk IMX8MN_CLK_USB_BUS>;
+					};
+
+					pgc_otg1: power-domain@1 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MN_POWER_DOMAIN_OTG1>;
+						power-domains = <&pgc_hsiomix>;
+					};
+
+					pgc_gpumix: power-domain@2 {
+						#power-domain-cells = <0>;
+						reg = <IMX8MN_POWER_DOMAIN_GPUMIX>;
+						clocks = <&clk IMX8MN_CLK_GPU_CORE_ROOT>,
+							 <&clk IMX8MN_CLK_GPU_SHADER_DIV>,
+							 <&clk IMX8MN_CLK_GPU_BUS_ROOT>,
+							 <&clk IMX8MN_CLK_GPU_AHB>;
+						resets = <&src IMX8MQ_RESET_GPU_RESET>;
+					};
+				};
+			};
 		};
 
 		aips2: bus@30400000 {
@@ -428,6 +734,14 @@
 				#pwm-cells = <2>;
 				status = "disabled";
 			};
+
+			system_counter: timer@306a0000 {
+				compatible = "nxp,sysctr-timer";
+				reg = <0x306a0000 0x20000>;
+				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&osc_24m>;
+				clock-names = "per";
+			};
 		};
 
 		aips3: bus@30800000 {
@@ -513,6 +827,36 @@
 				status = "disabled";
 			};
 
+			crypto: crypto@30900000 {
+				compatible = "fsl,sec-v4.0";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x30900000 0x40000>;
+				ranges = <0 0x30900000 0x40000>;
+				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MN_CLK_AHB>,
+					 <&clk IMX8MN_CLK_IPG_ROOT>;
+				clock-names = "aclk", "ipg";
+
+				sec_jr0: jr@1000 {
+					 compatible = "fsl,sec-v4.0-job-ring";
+					 reg = <0x1000 0x1000>;
+					 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				sec_jr1: jr@2000 {
+					 compatible = "fsl,sec-v4.0-job-ring";
+					 reg = <0x2000 0x1000>;
+					 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				sec_jr2: jr@3000 {
+					 compatible = "fsl,sec-v4.0-job-ring";
+					 reg = <0x3000 0x1000>;
+					 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+				};
+			};
+
 			i2c1: i2c@30a20000 {
 				compatible = "fsl,imx8mn-i2c", "fsl,imx21-i2c";
 				#address-cells = <1>;
@@ -565,6 +909,14 @@
 				status = "disabled";
 			};
 
+			mu: mailbox@30aa0000 {
+				compatible = "fsl,imx8mn-mu", "fsl,imx6sx-mu";
+				reg = <0x30aa0000 0x10000>;
+				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MN_CLK_MU_ROOT>;
+				#mbox-cells = <2>;
+			};
+
 			usdhc1: mmc@30b40000 {
 				compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
 				reg = <0x30b40000 0x10000>;
@@ -573,8 +925,6 @@
 					 <&clk IMX8MN_CLK_NAND_USDHC_BUS>,
 					 <&clk IMX8MN_CLK_USDHC1_ROOT>;
 				clock-names = "ipg", "ahb", "per";
-				assigned-clocks = <&clk IMX8MN_CLK_USDHC1>;
-				assigned-clock-rates = <400000000>;
 				fsl,tuning-start-tap = <20>;
 				fsl,tuning-step= <2>;
 				bus-width = <4>;
@@ -603,20 +953,31 @@
 					 <&clk IMX8MN_CLK_NAND_USDHC_BUS>,
 					 <&clk IMX8MN_CLK_USDHC3_ROOT>;
 				clock-names = "ipg", "ahb", "per";
-				assigned-clocks = <&clk IMX8MN_CLK_USDHC3_ROOT>;
-				assigned-clock-rates = <400000000>;
 				fsl,tuning-start-tap = <20>;
 				fsl,tuning-step= <2>;
 				bus-width = <4>;
 				status = "disabled";
 			};
 
+			flexspi: spi@30bb0000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "nxp,imx8mm-fspi";
+				reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>;
+				reg-names = "fspi_base", "fspi_mmap";
+				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MN_CLK_QSPI_ROOT>,
+					 <&clk IMX8MN_CLK_QSPI_ROOT>;
+				clock-names = "fspi", "fspi_en";
+				status = "disabled";
+			};
+
 			sdma1: dma-controller@30bd0000 {
 				compatible = "fsl,imx8mn-sdma", "fsl,imx8mq-sdma";
 				reg = <0x30bd0000 0x10000>;
 				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MN_CLK_SDMA1_ROOT>,
-					 <&clk IMX8MN_CLK_SDMA1_ROOT>;
+					 <&clk IMX8MN_CLK_AHB>;
 				clock-names = "ipg", "ahb";
 				#dma-cells = <3>;
 				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
@@ -627,7 +988,8 @@
 				reg = <0x30be0000 0x10000>;
 				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
 					     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MN_CLK_ENET1_ROOT>,
 					 <&clk IMX8MN_CLK_ENET1_ROOT>,
 					 <&clk IMX8MN_CLK_ENET_TIMER>,
@@ -638,13 +1000,18 @@
 				assigned-clocks = <&clk IMX8MN_CLK_ENET_AXI>,
 						  <&clk IMX8MN_CLK_ENET_TIMER>,
 						  <&clk IMX8MN_CLK_ENET_REF>,
-						  <&clk IMX8MN_CLK_ENET_TIMER>;
+						  <&clk IMX8MN_CLK_ENET_PHY_REF>;
 				assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_266M>,
 							 <&clk IMX8MN_SYS_PLL2_100M>,
-							 <&clk IMX8MN_SYS_PLL2_125M>;
-				assigned-clock-rates = <0>, <0>, <125000000>, <100000000>;
+							 <&clk IMX8MN_SYS_PLL2_125M>,
+							 <&clk IMX8MN_SYS_PLL2_50M>;
+				assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
 				fsl,num-tx-queues = <3>;
 				fsl,num-rx-queues = <3>;
+				nvmem-cells = <&fec_mac_address>;
+				nvmem-cell-names = "mac-address";
+				nvmem_macaddr_swap;
+				fsl,stop-mode = <&gpr 0x10 3>;
 				status = "disabled";
 			};
 
@@ -663,12 +1030,11 @@
 				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
 				clock-names = "usb1_ctrl_root_clk";
-				assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>,
-						  <&clk IMX8MN_CLK_USB_CORE_REF>;
-				assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>,
-							 <&clk IMX8MN_SYS_PLL1_100M>;
+				assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>;
+				assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>;
 				fsl,usbphy = <&usbphynop1>;
 				fsl,usbmisc = <&usbmisc1 0>;
+				power-domains = <&pgc_otg1>;
 				status = "disabled";
 			};
 
@@ -677,28 +1043,6 @@
 				#index-cells = <1>;
 				reg = <0x32e40200 0x200>;
 			};
-
-			usbotg2: usb@32e50000 {
-				compatible = "fsl,imx8mn-usb", "fsl,imx7d-usb";
-				reg = <0x32e50000 0x200>;
-				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
-				clock-names = "usb1_ctrl_root_clk";
-				assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>,
-						  <&clk IMX8MN_CLK_USB_CORE_REF>;
-				assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>,
-							 <&clk IMX8MN_SYS_PLL1_100M>;
-				fsl,usbphy = <&usbphynop2>;
-				fsl,usbmisc = <&usbmisc2 0>;
-				status = "disabled";
-			};
-
-			usbmisc2: usbmisc@32e50200 {
-				compatible = "fsl,imx8mn-usbmisc", "fsl,imx7d-usbmisc";
-				#index-cells = <1>;
-				reg = <0x32e50200 0x200>;
-			};
-
 		};
 
 		dma_apbh: dma-controller@33000000 {
@@ -717,7 +1061,7 @@
 		gpmi: nand-controller@33002000 {
 			compatible = "fsl,imx8mn-gpmi-nand", "fsl,imx7d-gpmi-nand";
 			#address-cells = <1>;
-			#size-cells = <1>;
+			#size-cells = <0>;
 			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
 			reg-names = "gpmi-nand", "bch";
 			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
@@ -730,6 +1074,31 @@
 			status = "disabled";
 		};
 
+		gpu: gpu@38000000 {
+			compatible = "vivante,gc";
+			reg = <0x38000000 0x8000>;
+			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clk IMX8MN_CLK_GPU_AHB>,
+				<&clk IMX8MN_CLK_GPU_BUS_ROOT>,
+				<&clk IMX8MN_CLK_GPU_CORE_ROOT>,
+				<&clk IMX8MN_CLK_GPU_SHADER_DIV>;
+			clock-names = "reg", "bus", "core", "shader";
+			assigned-clocks = <&clk IMX8MN_CLK_GPU_CORE_SRC>,
+					  <&clk IMX8MN_CLK_GPU_SHADER_SRC>,
+					  <&clk IMX8MN_CLK_GPU_AXI>,
+					  <&clk IMX8MN_CLK_GPU_AHB>,
+					  <&clk IMX8MN_GPU_PLL>,
+					  <&clk IMX8MN_CLK_GPU_CORE_DIV>,
+					  <&clk IMX8MN_CLK_GPU_SHADER_DIV>;
+			assigned-clock-parents = <&clk IMX8MN_GPU_PLL_OUT>,
+						  <&clk IMX8MN_GPU_PLL_OUT>,
+						  <&clk IMX8MN_SYS_PLL1_800M>,
+						  <&clk IMX8MN_SYS_PLL1_800M>;
+			assigned-clock-rates = <0>, <0>, <800000000>, <400000000>, <1200000000>,
+				<400000000>, <400000000>;
+			power-domains = <&pgc_gpumix>;
+		};
+
 		gic: interrupt-controller@38800000 {
 			compatible = "arm,gic-v3";
 			reg = <0x38800000 0x10000>,
@@ -738,17 +1107,25 @@
 			interrupt-controller;
 			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
 		};
-	};
 
-	usbphynop1: usbphynop1 {
-		compatible = "usb-nop-xceiv";
-		clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
-		assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
-		assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
-		clock-names = "main_clk";
+		ddrc: memory-controller@3d400000 {
+			compatible = "fsl,imx8mn-ddrc", "fsl,imx8m-ddrc";
+			reg = <0x3d400000 0x400000>;
+			clock-names = "core", "pll", "alt", "apb";
+			clocks = <&clk IMX8MN_CLK_DRAM_CORE>,
+				 <&clk IMX8MN_DRAM_PLL>,
+				 <&clk IMX8MN_CLK_DRAM_ALT>,
+				 <&clk IMX8MN_CLK_DRAM_APB>;
+		};
+
+		ddr-pmu@3d800000 {
+			compatible = "fsl,imx8mn-ddr-pmu", "fsl,imx8m-ddr-pmu";
+			reg = <0x3d800000 0x400000>;
+			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+		};
 	};
 
-	usbphynop2: usbphynop2 {
+	usbphynop1: usbphynop1 {
 		compatible = "usb-nop-xceiv";
 		clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
 		assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -0,0 +1,351 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8mp.dtsi"
+
+/ {
+	model = "NXP i.MX8MPlus EVK board";
+	compatible = "fsl,imx8mp-evk", "fsl,imx8mp";
+
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_led>;
+
+		status {
+			label = "yellow:status";
+			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0 0xc0000000>,
+		      <0x1 0x00000000 0 0xc0000000>;
+	};
+
+	reg_can1_stby: regulator-can1-stby {
+		compatible = "regulator-fixed";
+		regulator-name = "can1-stby";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_flexcan1_reg>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_can2_stby: regulator-can2-stby {
+		compatible = "regulator-fixed";
+		regulator-name = "can2-stby";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_flexcan2_reg>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_usdhc2_vmmc: regulator-usdhc2 {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+};
+
+&flexcan1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_flexcan1>;
+	xceiver-supply = <&reg_can1_stby>;
+	status = "okay";
+};
+
+&flexcan2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_flexcan2>;
+	xceiver-supply = <&reg_can2_stby>;
+	status = "disabled";/* can2 pin conflict with pdm */
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy1>;
+	fsl,magic-packet;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy1: ethernet-phy@1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+			eee-broken-1000t;
+			reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	pca6416: gpio@20 {
+		compatible = "ti,tca6416";
+		reg = <0x20>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
+};
+
+&snvs_pwrkey {
+	status = "okay";
+};
+
+&uart2 {
+	/* console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+&usb3_phy1 {
+	status = "okay";
+};
+
+&usb3_1 {
+	status = "okay";
+};
+
+&usb_dwc3_1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usb1_vbus>;
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usdhc2 {
+	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	bus-width = <4>;
+	status = "okay";
+};
+
+&usdhc3 {
+	assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_fec: fecgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
+			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
+			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
+			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
+			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
+			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
+			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
+			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
+			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
+			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
+			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
+			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
+			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
+			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
+			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02		0x19
+		>;
+	};
+
+	pinctrl_flexcan1: flexcan1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SPDIF_RX__CAN1_RX          0x154
+			MX8MP_IOMUXC_SPDIF_TX__CAN1_TX          0x154
+		>;
+	};
+
+	pinctrl_flexcan2: flexcan2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154
+			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154
+		>;
+	};
+
+	pinctrl_flexcan1_reg: flexcan1reggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05  0x154   /* CAN1_STBY */
+		>;
+	};
+
+	pinctrl_flexcan2_reg: flexcan2reggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27      0x154   /* CAN2_STBY */
+		>;
+	};
+
+	pinctrl_gpio_led: gpioledgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x19
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL		0x400001c3
+			MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19	0x41
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX	0x49
+			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX	0x49
+		>;
+	};
+
+	pinctrl_usb1_vbus: usb1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR	0x19
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
+			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT	0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x194
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d4
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d4
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d4
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d4
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d4
+			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x196
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d6
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d6
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d6
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d6
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d6
+			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12	0x1c4
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x190
+			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d0
+			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d0
+			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d0
+			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d0
+			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d0
+			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d0
+			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d0
+			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d0
+			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d0
+			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x190
+		>;
+	};
+
+	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x194
+			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d4
+			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d4
+			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d4
+			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d4
+			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d4
+			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d4
+			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d4
+			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d4
+			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d4
+			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x194
+		>;
+	};
+
+	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x196
+			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d6
+			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d6
+			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d6
+			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d6
+			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d6
+			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d6
+			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d6
+			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d6
+			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d6
+			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x196
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0x166
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h
@@ -0,0 +1,799 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __DTS_IMX8MP_PINFUNC_H
+#define __DTS_IMX8MP_PINFUNC_H
+
+/*
+ * The pin function ID is a tuple of
+ * <mux_reg conf_reg input_reg mux_mode input_val>
+ */
+#define MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00                          0x014 0x274 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO00__CCM_ENET_PHY_REF_CLK_ROOT           0x014 0x274 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO00__ISP_FL_TRIG_0                       0x014 0x274 0x5D4 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO00__CCM_EXT_CLK1                        0x014 0x274 0x000 0x6 0x0
+#define MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01                          0x018 0x278 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO01__PWM1_OUT                            0x018 0x278 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO01__ISP_SHUTTER_TRIG_0                  0x018 0x278 0x5DC 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO01__CCM_EXT_CLK2                        0x018 0x278 0x000 0x6 0x0
+#define MX8MP_IOMUXC_GPIO1_IO02__GPIO1_IO02                          0x01C 0x27C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B                        0x01C 0x27C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO02__ISP_FLASH_TRIG_0                    0x01C 0x27C 0x000 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_ANY                      0x01C 0x27C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO02__SJC_DE_B                            0x01C 0x27C 0x000 0x7 0x0
+#define MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03                          0x020 0x280 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO03__USDHC1_VSELECT                      0x020 0x280 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO03__ISP_PRELIGHT_TRIG_0                 0x020 0x280 0x000 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO03__SDMA1_EXT_EVENT00                   0x020 0x280 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04                          0x024 0x284 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT                      0x024 0x284 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO04__ISP_SHUTTER_OPEN_0                  0x024 0x284 0x000 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO04__SDMA1_EXT_EVENT01                   0x024 0x284 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05                          0x028 0x288 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO05__M7_NMI                              0x028 0x288 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO05__ISP_FL_TRIG_1                       0x028 0x288 0x5D8 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO05__CCM_PMIC_READY                      0x028 0x288 0x554 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06                          0x02C 0x28C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO06__ENET_QOS_MDC                        0x02C 0x28C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO06__ISP_SHUTTER_TRIG_1                  0x02C 0x28C 0x5E0 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO06__USDHC1_CD_B                         0x02C 0x28C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO06__CCM_EXT_CLK3                        0x02C 0x28C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07                          0x030 0x290 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO07__ENET_QOS_MDIO                       0x030 0x290 0x590 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO07__ISP_FLASH_TRIG_1                    0x030 0x290 0x000 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO07__USDHC1_WP                           0x030 0x290 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO07__CCM_EXT_CLK4                        0x030 0x290 0x000 0x6 0x0
+#define MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08                          0x034 0x294 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO08__ENET_QOS_1588_EVENT0_IN             0x034 0x294 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO08__PWM1_OUT                            0x034 0x294 0x000 0x2 0x0
+#define MX8MP_IOMUXC_GPIO1_IO08__ISP_PRELIGHT_TRIG_1                 0x034 0x294 0x000 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO08__ENET_QOS_1588_EVENT0_AUX_IN         0x034 0x294 0x000 0x4 0x0
+#define MX8MP_IOMUXC_GPIO1_IO08__USDHC2_RESET_B                      0x034 0x294 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09                          0x038 0x298 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO09__ENET_QOS_1588_EVENT0_OUT            0x038 0x298 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO09__PWM2_OUT                            0x038 0x298 0x000 0x2 0x0
+#define MX8MP_IOMUXC_GPIO1_IO09__ISP_SHUTTER_OPEN_1                  0x038 0x298 0x000 0x3 0x0
+#define MX8MP_IOMUXC_GPIO1_IO09__USDHC3_RESET_B                      0x038 0x298 0x000 0x4 0x0
+#define MX8MP_IOMUXC_GPIO1_IO09__SDMA2_EXT_EVENT00                   0x038 0x298 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10                          0x03C 0x29C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO10__USB1_OTG_ID                         0x03C 0x29C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO10__PWM3_OUT                            0x03C 0x29C 0x000 0x2 0x0
+#define MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11                          0x040 0x2A0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO11__USB2_OTG_ID                         0x040 0x2A0 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO11__PWM2_OUT                            0x040 0x2A0 0x000 0x2 0x0
+#define MX8MP_IOMUXC_GPIO1_IO11__USDHC3_VSELECT                      0x040 0x2A0 0x000 0x4 0x0
+#define MX8MP_IOMUXC_GPIO1_IO11__CCM_PMIC_READY                      0x040 0x2A0 0x554 0x5 0x1
+#define MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12                          0x044 0x2A4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO12__USB1_OTG_PWR                        0x044 0x2A4 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO12__SDMA2_EXT_EVENT01                   0x044 0x2A4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO13__GPIO1_IO13                          0x048 0x2A8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC                         0x048 0x2A8 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO13__PWM2_OUT                            0x048 0x2A8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14                          0x04C 0x2AC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR                        0x04C 0x2AC 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO14__USDHC3_CD_B                         0x04C 0x2AC 0x608 0x4 0x0
+#define MX8MP_IOMUXC_GPIO1_IO14__PWM3_OUT                            0x04C 0x2AC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO14__CCM_CLKO1                           0x04C 0x2AC 0x000 0x6 0x0
+#define MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15                          0x050 0x2B0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_GPIO1_IO15__USB2_OTG_OC                         0x050 0x2B0 0x000 0x1 0x0
+#define MX8MP_IOMUXC_GPIO1_IO15__USDHC3_WP                           0x050 0x2B0 0x634 0x4 0x0
+#define MX8MP_IOMUXC_GPIO1_IO15__PWM4_OUT                            0x050 0x2B0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_GPIO1_IO15__CCM_CLKO2                           0x050 0x2B0 0x000 0x6 0x0
+#define MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                          0x054 0x2B4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_MDC__AUDIOMIX_SAI6_TX_DATA00               0x054 0x2B4 0x000 0x2 0x0
+#define MX8MP_IOMUXC_ENET_MDC__GPIO1_IO16                            0x054 0x2B4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_MDC__USDHC3_STROBE                         0x054 0x2B4 0x630 0x6 0x0
+#define MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO                        0x058 0x2B8 0x590 0x0 0x1
+#define MX8MP_IOMUXC_ENET_MDIO__AUDIOMIX_SAI6_TX_SYNC                0x058 0x2B8 0x528 0x2 0x0
+#define MX8MP_IOMUXC_ENET_MDIO__AUDIOMIX_PDM_BIT_STREAM03            0x058 0x2B8 0x4CC 0x3 0x0
+#define MX8MP_IOMUXC_ENET_MDIO__GPIO1_IO17                           0x058 0x2B8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_MDIO__USDHC3_DATA5                         0x058 0x2B8 0x624 0x6 0x0
+#define MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3                    0x05C 0x2BC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_TD3__AUDIOMIX_SAI6_TX_BCLK                 0x05C 0x2BC 0x524 0x2 0x0
+#define MX8MP_IOMUXC_ENET_TD3__AUDIOMIX_PDM_BIT_STREAM02             0x05C 0x2BC 0x4C8 0x3 0x0
+#define MX8MP_IOMUXC_ENET_TD3__GPIO1_IO18                            0x05C 0x2BC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_TD3__USDHC3_DATA6                          0x05C 0x2BC 0x628 0x6 0x0
+#define MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2                    0x060 0x2C0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK   0x060 0x2C0 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ENET_TD2__AUDIOMIX_SAI6_RX_DATA00               0x060 0x2C0 0x51C 0x2 0x0
+#define MX8MP_IOMUXC_ENET_TD2__AUDIOMIX_PDM_BIT_STREAM01             0x060 0x2C0 0x4C4 0x3 0x0
+#define MX8MP_IOMUXC_ENET_TD2__GPIO1_IO19                            0x060 0x2C0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_TD2__USDHC3_DATA7                          0x060 0x2C0 0x62C 0x6 0x0
+#define MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1                    0x064 0x2C4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_TD1__AUDIOMIX_SAI6_RX_SYNC                 0x064 0x2C4 0x520 0x2 0x0
+#define MX8MP_IOMUXC_ENET_TD1__AUDIOMIX_PDM_BIT_STREAM00             0x064 0x2C4 0x4C0 0x3 0x0
+#define MX8MP_IOMUXC_ENET_TD1__GPIO1_IO20                            0x064 0x2C4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_TD1__USDHC3_CD_B                           0x064 0x2C4 0x608 0x6 0x1
+#define MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0                    0x068 0x2C8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_TD0__AUDIOMIX_SAI6_RX_BCLK                 0x068 0x2C8 0x518 0x2 0x0
+#define MX8MP_IOMUXC_ENET_TD0__AUDIOMIX_PDM_CLK                      0x068 0x2C8 0x000 0x3 0x0
+#define MX8MP_IOMUXC_ENET_TD0__GPIO1_IO21                            0x068 0x2C8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_TD0__USDHC3_WP                             0x068 0x2C8 0x634 0x6 0x1
+#define MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL              0x06C 0x2CC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_TX_CTL__AUDIOMIX_SAI6_MCLK                 0x06C 0x2CC 0x514 0x2 0x0
+#define MX8MP_IOMUXC_ENET_TX_CTL__AUDIOMIX_SPDIF1_OUT                0x06C 0x2CC 0x000 0x3 0x0
+#define MX8MP_IOMUXC_ENET_TX_CTL__GPIO1_IO22                         0x06C 0x2CC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_TX_CTL__USDHC3_DATA0                       0x06C 0x2CC 0x610 0x6 0x0
+#define MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK    0x070 0x2D0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_TXC__ENET_QOS_TX_ER                        0x070 0x2D0 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ENET_TXC__AUDIOMIX_SAI7_TX_DATA00               0x070 0x2D0 0x000 0x2 0x0
+#define MX8MP_IOMUXC_ENET_TXC__GPIO1_IO23                            0x070 0x2D0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_TXC__USDHC3_DATA1                          0x070 0x2D0 0x614 0x6 0x0
+#define MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL              0x074 0x2D4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_RX_CTL__AUDIOMIX_SAI7_TX_SYNC              0x074 0x2D4 0x540 0x2 0x0
+#define MX8MP_IOMUXC_ENET_RX_CTL__AUDIOMIX_PDM_BIT_STREAM03          0x074 0x2D4 0x4CC 0x3 0x1
+#define MX8MP_IOMUXC_ENET_RX_CTL__GPIO1_IO24                         0x074 0x2D4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_RX_CTL__USDHC3_DATA2                       0x074 0x2D4 0x618 0x6 0x0
+#define MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK    0x078 0x2D8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_RXC__ENET_QOS_RX_ER                        0x078 0x2D8 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ENET_RXC__AUDIOMIX_SAI7_TX_BCLK                 0x078 0x2D8 0x53C 0x2 0x0
+#define MX8MP_IOMUXC_ENET_RXC__AUDIOMIX_PDM_BIT_STREAM02             0x078 0x2D8 0x4C8 0x3 0x1
+#define MX8MP_IOMUXC_ENET_RXC__GPIO1_IO25                            0x078 0x2D8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_RXC__USDHC3_DATA3                          0x078 0x2D8 0x61C 0x6 0x0
+#define MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0                    0x07C 0x2DC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_RD0__AUDIOMIX_SAI7_RX_DATA00               0x07C 0x2DC 0x534 0x2 0x0
+#define MX8MP_IOMUXC_ENET_RD0__AUDIOMIX_PDM_BIT_STREAM01             0x07C 0x2DC 0x4C4 0x3 0x1
+#define MX8MP_IOMUXC_ENET_RD0__GPIO1_IO26                            0x07C 0x2DC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_RD0__USDHC3_DATA4                          0x07C 0x2DC 0x620 0x6 0x0
+#define MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1                    0x080 0x2E0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_RD1__AUDIOMIX_SAI7_RX_SYNC                 0x080 0x2E0 0x538 0x2 0x0
+#define MX8MP_IOMUXC_ENET_RD1__AUDIOMIX_PDM_BIT_STREAM00             0x080 0x2E0 0x4C0 0x3 0x1
+#define MX8MP_IOMUXC_ENET_RD1__GPIO1_IO27                            0x080 0x2E0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_RD1__USDHC3_RESET_B                        0x080 0x2E0 0x000 0x6 0x0
+#define MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2                    0x084 0x2E4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_RD2__AUDIOMIX_SAI7_RX_BCLK                 0x084 0x2E4 0x530 0x2 0x0
+#define MX8MP_IOMUXC_ENET_RD2__AUDIOMIX_PDM_CLK                      0x084 0x2E4 0x000 0x3 0x0
+#define MX8MP_IOMUXC_ENET_RD2__GPIO1_IO28                            0x084 0x2E4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_RD2__USDHC3_CLK                            0x084 0x2E4 0x604 0x6 0x0
+#define MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3                    0x088 0x2E8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_ENET_RD3__AUDIOMIX_SAI7_MCLK                    0x088 0x2E8 0x52C 0x2 0x0
+#define MX8MP_IOMUXC_ENET_RD3__AUDIOMIX_SPDIF1_IN                    0x088 0x2E8 0x544 0x3 0x0
+#define MX8MP_IOMUXC_ENET_RD3__GPIO1_IO29                            0x088 0x2E8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ENET_RD3__USDHC3_CMD                            0x088 0x2E8 0x60C 0x6 0x0
+#define MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK                             0x08C 0x2EC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_CLK__ENET1_MDC                              0x08C 0x2EC 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SD1_CLK__I2C5_SCL                               0x08C 0x2EC 0x5C4 0x3 0x0
+#define MX8MP_IOMUXC_SD1_CLK__UART1_DCE_TX                           0x08C 0x2EC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_CLK__UART1_DTE_RX                           0x08C 0x2EC 0x5E8 0x4 0x0
+#define MX8MP_IOMUXC_SD1_CLK__GPIO2_IO00                             0x08C 0x2EC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD                             0x090 0x2F0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_CMD__ENET1_MDIO                             0x090 0x2F0 0x57C 0x1 0x0
+#define MX8MP_IOMUXC_SD1_CMD__I2C5_SDA                               0x090 0x2F0 0x5C8 0x3 0x0
+#define MX8MP_IOMUXC_SD1_CMD__UART1_DCE_RX                           0x090 0x2F0 0x5E8 0x4 0x1
+#define MX8MP_IOMUXC_SD1_CMD__UART1_DTE_TX                           0x090 0x2F0 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_CMD__GPIO2_IO01                             0x090 0x2F0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0                         0x094 0x2F4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA0__ENET1_RGMII_TD1                      0x094 0x2F4 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA0__I2C6_SCL                             0x094 0x2F4 0x5CC 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA0__UART1_DCE_RTS                        0x094 0x2F4 0x5E4 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA0__UART1_DTE_CTS                        0x094 0x2F4 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA0__GPIO2_IO02                           0x094 0x2F4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1                         0x098 0x2F8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA1__ENET1_RGMII_TD0                      0x098 0x2F8 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA1__I2C6_SDA                             0x098 0x2F8 0x5D0 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA1__UART1_DCE_CTS                        0x098 0x2F8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA1__UART1_DTE_RTS                        0x098 0x2F8 0x5E4 0x4 0x1
+#define MX8MP_IOMUXC_SD1_DATA1__GPIO2_IO03                           0x098 0x2F8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2                         0x09C 0x2FC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA2__ENET1_RGMII_RD0                      0x09C 0x2FC 0x580 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA2__I2C4_SCL                             0x09C 0x2FC 0x5BC 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA2__UART2_DCE_TX                         0x09C 0x2FC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA2__UART2_DTE_RX                         0x09C 0x2FC 0x5F0 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA2__GPIO2_IO04                           0x09C 0x2FC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3                         0x0A0 0x300 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA3__ENET1_RGMII_RD1                      0x0A0 0x300 0x584 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA3__I2C4_SDA                             0x0A0 0x300 0x5C0 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA3__UART2_DCE_RX                         0x0A0 0x300 0x5F0 0x4 0x1
+#define MX8MP_IOMUXC_SD1_DATA3__UART2_DTE_TX                         0x0A0 0x300 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA3__GPIO2_IO05                           0x0A0 0x300 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4                         0x0A4 0x304 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA4__ENET1_RGMII_TX_CTL                   0x0A4 0x304 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA4__I2C1_SCL                             0x0A4 0x304 0x5A4 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA4__UART2_DCE_RTS                        0x0A4 0x304 0x5EC 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA4__UART2_DTE_CTS                        0x0A4 0x304 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06                           0x0A4 0x304 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5                         0x0A8 0x308 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA5__ENET1_TX_ER                          0x0A8 0x308 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA5__I2C1_SDA                             0x0A8 0x308 0x5A8 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA5__UART2_DCE_CTS                        0x0A8 0x308 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA5__UART2_DTE_RTS                        0x0A8 0x308 0x5EC 0x4 0x1
+#define MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07                           0x0A8 0x308 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6                         0x0AC 0x30C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA6__ENET1_RGMII_RX_CTL                   0x0AC 0x30C 0x588 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA6__I2C2_SCL                             0x0AC 0x30C 0x5AC 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA6__UART3_DCE_TX                         0x0AC 0x30C 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA6__UART3_DTE_RX                         0x0AC 0x30C 0x5F8 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08                           0x0AC 0x30C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7                         0x0B0 0x310 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_DATA7__ENET1_RX_ER                          0x0B0 0x310 0x58C 0x1 0x0
+#define MX8MP_IOMUXC_SD1_DATA7__I2C2_SDA                             0x0B0 0x310 0x5B0 0x3 0x0
+#define MX8MP_IOMUXC_SD1_DATA7__UART3_DCE_RX                         0x0B0 0x310 0x5F8 0x4 0x1
+#define MX8MP_IOMUXC_SD1_DATA7__UART3_DTE_TX                         0x0B0 0x310 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09                           0x0B0 0x310 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_RESET_B__USDHC1_RESET_B                     0x0B4 0x314 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_RESET_B__ENET1_TX_CLK                       0x0B4 0x314 0x578 0x1 0x0
+#define MX8MP_IOMUXC_SD1_RESET_B__I2C3_SCL                           0x0B4 0x314 0x5B4 0x3 0x0
+#define MX8MP_IOMUXC_SD1_RESET_B__UART3_DCE_RTS                      0x0B4 0x314 0x5F4 0x4 0x0
+#define MX8MP_IOMUXC_SD1_RESET_B__UART3_DTE_CTS                      0x0B4 0x314 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10                         0x0B4 0x314 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE                       0x0B8 0x318 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD1_STROBE__I2C3_SDA                            0x0B8 0x318 0x5B8 0x3 0x0
+#define MX8MP_IOMUXC_SD1_STROBE__UART3_DCE_CTS                       0x0B8 0x318 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD1_STROBE__UART3_DTE_RTS                       0x0B8 0x318 0x5F4 0x4 0x1
+#define MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11                          0x0B8 0x318 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B                           0x0BC 0x31C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                            0x0BC 0x31C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                             0x0C0 0x320 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_CLK__ECSPI2_SCLK                            0x0C0 0x320 0x568 0x2 0x0
+#define MX8MP_IOMUXC_SD2_CLK__UART4_DCE_RX                           0x0C0 0x320 0x600 0x3 0x0
+#define MX8MP_IOMUXC_SD2_CLK__UART4_DTE_TX                           0x0C0 0x320 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SD2_CLK__GPIO2_IO13                             0x0C0 0x320 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                             0x0C4 0x324 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_CMD__ECSPI2_MOSI                            0x0C4 0x324 0x570 0x2 0x0
+#define MX8MP_IOMUXC_SD2_CMD__UART4_DCE_TX                           0x0C4 0x324 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SD2_CMD__UART4_DTE_RX                           0x0C4 0x324 0x600 0x3 0x1
+#define MX8MP_IOMUXC_SD2_CMD__AUDIOMIX_PDM_CLK                       0x0C4 0x324 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14                             0x0C4 0x324 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                         0x0C8 0x328 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_DATA0__I2C4_SDA                             0x0C8 0x328 0x5C0 0x2 0x1
+#define MX8MP_IOMUXC_SD2_DATA0__UART2_DCE_RX                         0x0C8 0x328 0x5F0 0x3 0x2
+#define MX8MP_IOMUXC_SD2_DATA0__UART2_DTE_TX                         0x0C8 0x328 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SD2_DATA0__AUDIOMIX_PDM_BIT_STREAM00            0x0C8 0x328 0x4C0 0x4 0x2
+#define MX8MP_IOMUXC_SD2_DATA0__GPIO2_IO15                           0x0C8 0x328 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                         0x0CC 0x32C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_DATA1__I2C4_SCL                             0x0CC 0x32C 0x5BC 0x2 0x1
+#define MX8MP_IOMUXC_SD2_DATA1__UART2_DCE_TX                         0x0CC 0x32C 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SD2_DATA1__UART2_DTE_RX                         0x0CC 0x32C 0x5F0 0x3 0x3
+#define MX8MP_IOMUXC_SD2_DATA1__AUDIOMIX_PDM_BIT_STREAM01            0x0CC 0x32C 0x4C4 0x4 0x2
+#define MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16                           0x0CC 0x32C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                         0x0D0 0x330 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_DATA2__ECSPI2_SS0                           0x0D0 0x330 0x574 0x2 0x0
+#define MX8MP_IOMUXC_SD2_DATA2__AUDIOMIX_SPDIF1_OUT                  0x0D0 0x330 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SD2_DATA2__AUDIOMIX_PDM_BIT_STREAM02            0x0D0 0x330 0x4C8 0x4 0x2
+#define MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17                           0x0D0 0x330 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                         0x0D4 0x334 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_DATA3__ECSPI2_MISO                          0x0D4 0x334 0x56C 0x2 0x0
+#define MX8MP_IOMUXC_SD2_DATA3__AUDIOMIX_SPDIF1_IN                   0x0D4 0x334 0x544 0x3 0x1
+#define MX8MP_IOMUXC_SD2_DATA3__AUDIOMIX_PDM_BIT_STREAM03            0x0D4 0x334 0x4CC 0x4 0x2
+#define MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18                           0x0D4 0x334 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_DATA3__SRC_EARLY_RESET                      0x0D4 0x334 0x000 0x6 0x0
+#define MX8MP_IOMUXC_SD2_RESET_B__USDHC2_RESET_B                     0x0D8 0x338 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19                         0x0D8 0x338 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_RESET_B__SRC_SYSTEM_RESET                   0x0D8 0x338 0x000 0x6 0x0
+#define MX8MP_IOMUXC_SD2_WP__USDHC2_WP                               0x0DC 0x33C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SD2_WP__GPIO2_IO20                              0x0DC 0x33C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SD2_WP__CORESIGHT_EVENTI                        0x0DC 0x33C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_ALE__NAND_ALE                              0x0E0 0x340 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK                        0x0E0 0x340 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_ALE__AUDIOMIX_SAI3_TX_BCLK                 0x0E0 0x340 0x4E8 0x2 0x0
+#define MX8MP_IOMUXC_NAND_ALE__ISP_FL_TRIG_0                         0x0E0 0x340 0x5D4 0x3 0x1
+#define MX8MP_IOMUXC_NAND_ALE__UART3_DCE_RX                          0x0E0 0x340 0x5F8 0x4 0x2
+#define MX8MP_IOMUXC_NAND_ALE__UART3_DTE_TX                          0x0E0 0x340 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00                            0x0E0 0x340 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_ALE__CORESIGHT_TRACE_CLK                   0x0E0 0x340 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_CE0_B__NAND_CE0_B                          0x0E4 0x344 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B                     0x0E4 0x344 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_CE0_B__AUDIOMIX_SAI3_TX_DATA00             0x0E4 0x344 0x000 0x2 0x0
+#define MX8MP_IOMUXC_NAND_CE0_B__ISP_SHUTTER_TRIG_0                  0x0E4 0x344 0x5DC 0x3 0x1
+#define MX8MP_IOMUXC_NAND_CE0_B__UART3_DCE_TX                        0x0E4 0x344 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_CE0_B__UART3_DTE_RX                        0x0E4 0x344 0x5F8 0x4 0x3
+#define MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01                          0x0E4 0x344 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_CE0_B__CORESIGHT_TRACE_CTL                 0x0E4 0x344 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_CE1_B__NAND_CE1_B                          0x0E8 0x348 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_CE1_B__FLEXSPI_A_SS1_B                     0x0E8 0x348 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                       0x0E8 0x348 0x630 0x2 0x1
+#define MX8MP_IOMUXC_NAND_CE1_B__I2C4_SCL                            0x0E8 0x348 0x5BC 0x4 0x2
+#define MX8MP_IOMUXC_NAND_CE1_B__GPIO3_IO02                          0x0E8 0x348 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_CE1_B__CORESIGHT_TRACE00                   0x0E8 0x348 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_CE2_B__NAND_CE2_B                          0x0EC 0x34C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_CE2_B__FLEXSPI_B_SS0_B                     0x0EC 0x34C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                        0x0EC 0x34C 0x624 0x2 0x1
+#define MX8MP_IOMUXC_NAND_CE2_B__I2C4_SDA                            0x0EC 0x34C 0x5C0 0x4 0x2
+#define MX8MP_IOMUXC_NAND_CE2_B__GPIO3_IO03                          0x0EC 0x34C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_CE2_B__CORESIGHT_TRACE01                   0x0EC 0x34C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_CE3_B__NAND_CE3_B                          0x0F0 0x350 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_CE3_B__FLEXSPI_B_SS1_B                     0x0F0 0x350 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                        0x0F0 0x350 0x628 0x2 0x1
+#define MX8MP_IOMUXC_NAND_CE3_B__I2C3_SDA                            0x0F0 0x350 0x5B8 0x4 0x1
+#define MX8MP_IOMUXC_NAND_CE3_B__GPIO3_IO04                          0x0F0 0x350 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_CE3_B__CORESIGHT_TRACE02                   0x0F0 0x350 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_CLE__NAND_CLE                              0x0F4 0x354 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_CLE__FLEXSPI_B_SCLK                        0x0F4 0x354 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                          0x0F4 0x354 0x62C 0x2 0x1
+#define MX8MP_IOMUXC_NAND_CLE__UART4_DCE_RX                          0x0F4 0x354 0x600 0x4 0x2
+#define MX8MP_IOMUXC_NAND_CLE__UART4_DTE_TX                          0x0F4 0x354 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_CLE__GPIO3_IO05                            0x0F4 0x354 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_CLE__CORESIGHT_TRACE03                     0x0F4 0x354 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__NAND_DATA00                        0x0F8 0x358 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00                   0x0F8 0x358 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__AUDIOMIX_SAI3_RX_DATA00            0x0F8 0x358 0x4E4 0x2 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__ISP_FLASH_TRIG_0                   0x0F8 0x358 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__UART4_DCE_RX                       0x0F8 0x358 0x600 0x4 0x3
+#define MX8MP_IOMUXC_NAND_DATA00__UART4_DTE_TX                       0x0F8 0x358 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06                         0x0F8 0x358 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA00__CORESIGHT_TRACE04                  0x0F8 0x358 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__NAND_DATA01                        0x0FC 0x35C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01                   0x0FC 0x35C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__AUDIOMIX_SAI3_TX_SYNC              0x0FC 0x35C 0x4EC 0x2 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__ISP_PRELIGHT_TRIG_0                0x0FC 0x35C 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__UART4_DCE_TX                       0x0FC 0x35C 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__UART4_DTE_RX                       0x0FC 0x35C 0x600 0x4 0x4
+#define MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07                         0x0FC 0x35C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA01__CORESIGHT_TRACE05                  0x0FC 0x35C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA02__NAND_DATA02                        0x100 0x360 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02                   0x100 0x360 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA02__USDHC3_CD_B                        0x100 0x360 0x608 0x2 0x2
+#define MX8MP_IOMUXC_NAND_DATA02__UART4_DCE_CTS                      0x100 0x360 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA02__UART4_DTE_RTS                      0x100 0x360 0x5FC 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA02__I2C4_SDA                           0x100 0x360 0x5C0 0x4 0x3
+#define MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08                         0x100 0x360 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA02__CORESIGHT_TRACE06                  0x100 0x360 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA03__NAND_DATA03                        0x104 0x364 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03                   0x104 0x364 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA03__USDHC3_WP                          0x104 0x364 0x634 0x2 0x2
+#define MX8MP_IOMUXC_NAND_DATA03__UART4_DCE_RTS                      0x104 0x364 0x5FC 0x3 0x1
+#define MX8MP_IOMUXC_NAND_DATA03__UART4_DTE_CTS                      0x104 0x364 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA03__ISP_FL_TRIG_1                      0x104 0x364 0x5D8 0x4 0x1
+#define MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09                         0x104 0x364 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA03__CORESIGHT_TRACE07                  0x104 0x364 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA04__NAND_DATA04                        0x108 0x368 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA04__FLEXSPI_B_DATA00                   0x108 0x368 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                       0x108 0x368 0x610 0x2 0x1
+#define MX8MP_IOMUXC_NAND_DATA04__FLEXSPI_A_DATA04                   0x108 0x368 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA04__ISP_SHUTTER_TRIG_1                 0x108 0x368 0x5E0 0x4 0x1
+#define MX8MP_IOMUXC_NAND_DATA04__GPIO3_IO10                         0x108 0x368 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA04__CORESIGHT_TRACE08                  0x108 0x368 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA05__NAND_DATA05                        0x10C 0x36C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA05__FLEXSPI_B_DATA01                   0x10C 0x36C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                       0x10C 0x36C 0x614 0x2 0x1
+#define MX8MP_IOMUXC_NAND_DATA05__FLEXSPI_A_DATA05                   0x10C 0x36C 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA05__ISP_FLASH_TRIG_1                   0x10C 0x36C 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_DATA05__GPIO3_IO11                         0x10C 0x36C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA05__CORESIGHT_TRACE09                  0x10C 0x36C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA06__NAND_DATA06                        0x110 0x370 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA06__FLEXSPI_B_DATA02                   0x110 0x370 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                       0x110 0x370 0x618 0x2 0x1
+#define MX8MP_IOMUXC_NAND_DATA06__FLEXSPI_A_DATA06                   0x110 0x370 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA06__ISP_PRELIGHT_TRIG_1                0x110 0x370 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_DATA06__GPIO3_IO12                         0x110 0x370 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA06__CORESIGHT_TRACE10                  0x110 0x370 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DATA07__NAND_DATA07                        0x114 0x374 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DATA07__FLEXSPI_B_DATA03                   0x114 0x374 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                       0x114 0x374 0x61C 0x2 0x1
+#define MX8MP_IOMUXC_NAND_DATA07__FLEXSPI_A_DATA07                   0x114 0x374 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DATA07__ISP_SHUTTER_OPEN_1                 0x114 0x374 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_DATA07__GPIO3_IO13                         0x114 0x374 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DATA07__CORESIGHT_TRACE11                  0x114 0x374 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_DQS__NAND_DQS                              0x118 0x378 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_DQS__FLEXSPI_A_DQS                         0x118 0x378 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_DQS__AUDIOMIX_SAI3_MCLK                    0x118 0x378 0x4E0 0x2 0x0
+#define MX8MP_IOMUXC_NAND_DQS__ISP_SHUTTER_OPEN_0                    0x118 0x378 0x000 0x3 0x0
+#define MX8MP_IOMUXC_NAND_DQS__I2C3_SCL                              0x118 0x378 0x5B4 0x4 0x1
+#define MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14                            0x118 0x378 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_DQS__CORESIGHT_TRACE12                     0x118 0x378 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_RE_B__NAND_RE_B                            0x11C 0x37C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_RE_B__FLEXSPI_B_DQS                        0x11C 0x37C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                         0x11C 0x37C 0x620 0x2 0x1
+#define MX8MP_IOMUXC_NAND_RE_B__UART4_DCE_TX                         0x11C 0x37C 0x000 0x4 0x0
+#define MX8MP_IOMUXC_NAND_RE_B__UART4_DTE_RX                         0x11C 0x37C 0x600 0x4 0x5
+#define MX8MP_IOMUXC_NAND_RE_B__GPIO3_IO15                           0x11C 0x37C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_RE_B__CORESIGHT_TRACE13                    0x11C 0x37C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_READY_B__NAND_READY_B                      0x120 0x380 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_READY_B__USDHC3_RESET_B                    0x120 0x380 0x000 0x2 0x0
+#define MX8MP_IOMUXC_NAND_READY_B__I2C3_SCL                          0x120 0x380 0x5B4 0x4 0x2
+#define MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16                        0x120 0x380 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_READY_B__CORESIGHT_TRACE14                 0x120 0x380 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_WE_B__NAND_WE_B                            0x124 0x384 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                           0x124 0x384 0x604 0x2 0x1
+#define MX8MP_IOMUXC_NAND_WE_B__I2C3_SDA                             0x124 0x384 0x5B8 0x4 0x2
+#define MX8MP_IOMUXC_NAND_WE_B__GPIO3_IO17                           0x124 0x384 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_WE_B__CORESIGHT_TRACE15                    0x124 0x384 0x000 0x6 0x0
+#define MX8MP_IOMUXC_NAND_WP_B__NAND_WP_B                            0x128 0x388 0x000 0x0 0x0
+#define MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                           0x128 0x388 0x60C 0x2 0x1
+#define MX8MP_IOMUXC_NAND_WP_B__I2C4_SCL                             0x128 0x388 0x5BC 0x4 0x3
+#define MX8MP_IOMUXC_NAND_WP_B__GPIO3_IO18                           0x128 0x388 0x000 0x5 0x0
+#define MX8MP_IOMUXC_NAND_WP_B__CORESIGHT_EVENTO                     0x128 0x388 0x000 0x6 0x0
+#define MX8MP_IOMUXC_SAI5_RXFS__AUDIOMIX_SAI5_RX_SYNC                0x12C 0x38C 0x508 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_RXFS__AUDIOMIX_SAI1_TX_DATA00              0x12C 0x38C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_RXFS__PWM4_OUT                             0x12C 0x38C 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL                             0x12C 0x38C 0x5CC 0x3 0x1
+#define MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19                           0x12C 0x38C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_SAI5_RX_BCLK                 0x130 0x390 0x4F4 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_SAI1_TX_DATA01               0x130 0x390 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_RXC__PWM3_OUT                              0x130 0x390 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA                              0x130 0x390 0x5D0 0x3 0x1
+#define MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_PDM_CLK                      0x130 0x390 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20                            0x130 0x390 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_SAI5_RX_DATA00              0x134 0x394 0x4F8 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_SAI1_TX_DATA02              0x134 0x394 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_RXD0__PWM2_OUT                             0x134 0x394 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI5_RXD0__I2C5_SCL                             0x134 0x394 0x5C4 0x3 0x1
+#define MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_PDM_BIT_STREAM00            0x134 0x394 0x4C0 0x4 0x3
+#define MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21                           0x134 0x394 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI5_RX_DATA01              0x138 0x398 0x4FC 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI1_TX_DATA03              0x138 0x398 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI1_TX_SYNC                0x138 0x398 0x4D8 0x2 0x0
+#define MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI5_TX_SYNC                0x138 0x398 0x510 0x3 0x0
+#define MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_PDM_BIT_STREAM01            0x138 0x398 0x4C4 0x4 0x3
+#define MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22                           0x138 0x398 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_RXD1__CAN1_TX                              0x138 0x398 0x000 0x6 0x0
+#define MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI5_RX_DATA02              0x13C 0x39C 0x500 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI1_TX_DATA04              0x13C 0x39C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI1_TX_SYNC                0x13C 0x39C 0x4D8 0x2 0x1
+#define MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI5_TX_BCLK                0x13C 0x39C 0x50C 0x3 0x0
+#define MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_PDM_BIT_STREAM02            0x13C 0x39C 0x4C8 0x4 0x3
+#define MX8MP_IOMUXC_SAI5_RXD2__GPIO3_IO23                           0x13C 0x39C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_RXD2__CAN1_RX                              0x13C 0x39C 0x54C 0x6 0x0
+#define MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_SAI5_RX_DATA03              0x140 0x3A0 0x504 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_SAI1_TX_DATA05              0x140 0x3A0 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_SAI1_TX_SYNC                0x140 0x3A0 0x4D8 0x2 0x2
+#define MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_SAI5_TX_DATA00              0x140 0x3A0 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_PDM_BIT_STREAM03            0x140 0x3A0 0x4CC 0x4 0x3
+#define MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24                           0x140 0x3A0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX                              0x140 0x3A0 0x000 0x6 0x0
+#define MX8MP_IOMUXC_SAI5_MCLK__AUDIOMIX_SAI5_MCLK                   0x144 0x3A4 0x4F0 0x0 0x0
+#define MX8MP_IOMUXC_SAI5_MCLK__AUDIOMIX_SAI1_TX_BCLK                0x144 0x3A4 0x4D4 0x1 0x0
+#define MX8MP_IOMUXC_SAI5_MCLK__PWM1_OUT                             0x144 0x3A4 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI5_MCLK__I2C5_SDA                             0x144 0x3A4 0x5C8 0x3 0x1
+#define MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25                           0x144 0x3A4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX                              0x144 0x3A4 0x550 0x6 0x0
+#define MX8MP_IOMUXC_SAI1_RXFS__AUDIOMIX_SAI1_RX_SYNC                0x148 0x3A8 0x4D0 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXFS__ENET1_1588_EVENT0_IN                 0x148 0x3A8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00                           0x148 0x3A8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXC__AUDIOMIX_SAI1_RX_BCLK                 0x14C 0x3AC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXC__AUDIOMIX_PDM_CLK                      0x14C 0x3AC 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI1_RXC__ENET1_1588_EVENT0_OUT                 0x14C 0x3AC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01                            0x14C 0x3AC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD0__AUDIOMIX_SAI1_RX_DATA00              0x150 0x3B0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD0__AUDIOMIX_SAI1_TX_DATA01              0x150 0x3B0 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI1_RXD0__AUDIOMIX_PDM_BIT_STREAM00            0x150 0x3B0 0x4C0 0x3 0x4
+#define MX8MP_IOMUXC_SAI1_RXD0__ENET1_1588_EVENT1_IN                 0x150 0x3B0 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02                           0x150 0x3B0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD1__AUDIOMIX_SAI1_RX_DATA01              0x154 0x3B4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD1__AUDIOMIX_PDM_BIT_STREAM01            0x154 0x3B4 0x4C4 0x3 0x4
+#define MX8MP_IOMUXC_SAI1_RXD1__ENET1_1588_EVENT1_OUT                0x154 0x3B4 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03                           0x154 0x3B4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD2__AUDIOMIX_SAI1_RX_DATA02              0x158 0x3B8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD2__AUDIOMIX_PDM_BIT_STREAM02            0x158 0x3B8 0x4C8 0x3 0x4
+#define MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC                            0x158 0x3B8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXD2__GPIO4_IO04                           0x158 0x3B8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD3__AUDIOMIX_SAI1_RX_DATA03              0x15C 0x3BC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD3__AUDIOMIX_PDM_BIT_STREAM03            0x15C 0x3BC 0x4CC 0x3 0x4
+#define MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO                           0x15C 0x3BC 0x57C 0x4 0x1
+#define MX8MP_IOMUXC_SAI1_RXD3__GPIO4_IO05                           0x15C 0x3BC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD4__AUDIOMIX_SAI1_RX_DATA04              0x160 0x3C0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD4__AUDIOMIX_SAI6_TX_BCLK                0x160 0x3C0 0x524 0x1 0x1
+#define MX8MP_IOMUXC_SAI1_RXD4__AUDIOMIX_SAI6_RX_BCLK                0x160 0x3C0 0x518 0x2 0x1
+#define MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0                      0x160 0x3C0 0x580 0x4 0x1
+#define MX8MP_IOMUXC_SAI1_RXD4__GPIO4_IO06                           0x160 0x3C0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD5__AUDIOMIX_SAI1_RX_DATA05              0x164 0x3C4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD5__AUDIOMIX_SAI6_TX_DATA00              0x164 0x3C4 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI1_RXD5__AUDIOMIX_SAI6_RX_DATA00              0x164 0x3C4 0x51C 0x2 0x1
+#define MX8MP_IOMUXC_SAI1_RXD5__AUDIOMIX_SAI1_RX_SYNC                0x164 0x3C4 0x4D0 0x3 0x1
+#define MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1                      0x164 0x3C4 0x584 0x4 0x1
+#define MX8MP_IOMUXC_SAI1_RXD5__GPIO4_IO07                           0x164 0x3C4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD6__AUDIOMIX_SAI1_RX_DATA06              0x168 0x3C8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD6__AUDIOMIX_SAI6_TX_SYNC                0x168 0x3C8 0x528 0x1 0x1
+#define MX8MP_IOMUXC_SAI1_RXD6__AUDIOMIX_SAI6_RX_SYNC                0x168 0x3C8 0x520 0x2 0x1
+#define MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2                      0x168 0x3C8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXD6__GPIO4_IO08                           0x168 0x3C8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_RXD7__AUDIOMIX_SAI1_RX_DATA07              0x16C 0x3CC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_RXD7__AUDIOMIX_SAI6_MCLK                   0x16C 0x3CC 0x514 0x1 0x1
+#define MX8MP_IOMUXC_SAI1_RXD7__AUDIOMIX_SAI1_TX_SYNC                0x16C 0x3CC 0x4D8 0x2 0x3
+#define MX8MP_IOMUXC_SAI1_RXD7__AUDIOMIX_SAI1_TX_DATA04              0x16C 0x3CC 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3                      0x16C 0x3CC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_RXD7__GPIO4_IO09                           0x16C 0x3CC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXFS__AUDIOMIX_SAI1_TX_SYNC                0x170 0x3D0 0x4D8 0x0 0x4
+#define MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL                   0x170 0x3D0 0x588 0x4 0x1
+#define MX8MP_IOMUXC_SAI1_TXFS__GPIO4_IO10                           0x170 0x3D0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXC__AUDIOMIX_SAI1_TX_BCLK                 0x174 0x3D4 0x4D4 0x0 0x1
+#define MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC                       0x174 0x3D4 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXC__GPIO4_IO11                            0x174 0x3D4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD0__AUDIOMIX_SAI1_TX_DATA00              0x178 0x3D8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0                      0x178 0x3D8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD0__GPIO4_IO12                           0x178 0x3D8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD1__AUDIOMIX_SAI1_TX_DATA01              0x17C 0x3DC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1                      0x17C 0x3DC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD1__GPIO4_IO13                           0x17C 0x3DC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD2__AUDIOMIX_SAI1_TX_DATA02              0x180 0x3E0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2                      0x180 0x3E0 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD2__GPIO4_IO14                           0x180 0x3E0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD3__AUDIOMIX_SAI1_TX_DATA03              0x184 0x3E4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3                      0x184 0x3E4 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD3__GPIO4_IO15                           0x184 0x3E4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD4__AUDIOMIX_SAI1_TX_DATA04              0x188 0x3E8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD4__AUDIOMIX_SAI6_RX_BCLK                0x188 0x3E8 0x518 0x1 0x2
+#define MX8MP_IOMUXC_SAI1_TXD4__AUDIOMIX_SAI6_TX_BCLK                0x188 0x3E8 0x524 0x2 0x2
+#define MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL                   0x188 0x3E8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD4__GPIO4_IO16                           0x188 0x3E8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD5__AUDIOMIX_SAI1_TX_DATA05              0x18C 0x3EC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD5__AUDIOMIX_SAI6_RX_DATA00              0x18C 0x3EC 0x51C 0x1 0x2
+#define MX8MP_IOMUXC_SAI1_TXD5__AUDIOMIX_SAI6_TX_DATA00              0x18C 0x3EC 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC                      0x18C 0x3EC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD5__GPIO4_IO17                           0x18C 0x3EC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD6__AUDIOMIX_SAI1_TX_DATA06              0x190 0x3F0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD6__AUDIOMIX_SAI6_RX_SYNC                0x190 0x3F0 0x520 0x1 0x2
+#define MX8MP_IOMUXC_SAI1_TXD6__AUDIOMIX_SAI6_TX_SYNC                0x190 0x3F0 0x528 0x2 0x2
+#define MX8MP_IOMUXC_SAI1_TXD6__ENET1_RX_ER                          0x190 0x3F0 0x58C 0x4 0x1
+#define MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18                           0x190 0x3F0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_TXD7__AUDIOMIX_SAI1_TX_DATA07              0x194 0x3F4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_TXD7__AUDIOMIX_SAI6_MCLK                   0x194 0x3F4 0x514 0x1 0x2
+#define MX8MP_IOMUXC_SAI1_TXD7__AUDIOMIX_PDM_CLK                     0x194 0x3F4 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI1_TXD7__ENET1_TX_ER                          0x194 0x3F4 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19                           0x194 0x3F4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI1_MCLK__AUDIOMIX_SAI1_MCLK                   0x198 0x3F8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI1_MCLK__AUDIOMIX_SAI1_TX_BCLK                0x198 0x3F8 0x4D4 0x2 0x2
+#define MX8MP_IOMUXC_SAI1_MCLK__ENET1_TX_CLK                         0x198 0x3F8 0x578 0x4 0x1
+#define MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20                           0x198 0x3F8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_SAI2_RX_SYNC                0x19C 0x3FC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_SAI5_TX_SYNC                0x19C 0x3FC 0x510 0x1 0x2
+#define MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_SAI5_TX_DATA01              0x19C 0x3FC 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_SAI2_RX_DATA01              0x19C 0x3FC 0x4DC 0x3 0x0
+#define MX8MP_IOMUXC_SAI2_RXFS__UART1_DCE_TX                         0x19C 0x3FC 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI2_RXFS__UART1_DTE_RX                         0x19C 0x3FC 0x5E8 0x4 0x2
+#define MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21                           0x19C 0x3FC 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_RXFS__AUDIOMIX_PDM_BIT_STREAM02            0x19C 0x3FC 0x4C8 0x6 0x5
+#define MX8MP_IOMUXC_SAI2_RXC__AUDIOMIX_SAI2_RX_BCLK                 0x1A0 0x400 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_RXC__AUDIOMIX_SAI5_TX_BCLK                 0x1A0 0x400 0x50C 0x1 0x2
+#define MX8MP_IOMUXC_SAI2_RXC__CAN1_TX                               0x1A0 0x400 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI2_RXC__UART1_DCE_RX                          0x1A0 0x400 0x5E8 0x4 0x3
+#define MX8MP_IOMUXC_SAI2_RXC__UART1_DTE_TX                          0x1A0 0x400 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22                            0x1A0 0x400 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_RXC__AUDIOMIX_PDM_BIT_STREAM01             0x1A0 0x400 0x4C4 0x6 0x5
+#define MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00              0x1A4 0x404 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI5_TX_DATA00              0x1A4 0x404 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI2_RXD0__ENET_QOS_1588_EVENT2_OUT             0x1A4 0x404 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_TX_DATA01              0x1A4 0x404 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI2_RXD0__UART1_DCE_RTS                        0x1A4 0x404 0x5E4 0x4 0x2
+#define MX8MP_IOMUXC_SAI2_RXD0__UART1_DTE_CTS                        0x1A4 0x404 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI2_RXD0__GPIO4_IO23                           0x1A4 0x404 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_PDM_BIT_STREAM03            0x1A4 0x404 0x4CC 0x6 0x5
+#define MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC                0x1A8 0x408 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI5_TX_DATA01              0x1A8 0x408 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI2_TXFS__ENET_QOS_1588_EVENT3_OUT             0x1A8 0x408 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_DATA01              0x1A8 0x408 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI2_TXFS__UART1_DCE_CTS                        0x1A8 0x408 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI2_TXFS__UART1_DTE_RTS                        0x1A8 0x408 0x5E4 0x4 0x3
+#define MX8MP_IOMUXC_SAI2_TXFS__GPIO4_IO24                           0x1A8 0x408 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_PDM_BIT_STREAM02            0x1A8 0x408 0x4C8 0x6 0x6
+#define MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK                 0x1AC 0x40C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI5_TX_DATA02               0x1AC 0x40C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI2_TXC__CAN1_RX                               0x1AC 0x40C 0x54C 0x3 0x1
+#define MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25                            0x1AC 0x40C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_PDM_BIT_STREAM01             0x1AC 0x40C 0x4C4 0x6 0x6
+#define MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00              0x1B0 0x410 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI5_TX_DATA03              0x1B0 0x410 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI2_TXD0__ENET_QOS_1588_EVENT2_IN              0x1B0 0x410 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI2_TXD0__CAN2_TX                              0x1B0 0x410 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI2_TXD0__ENET_QOS_1588_EVENT2_AUX_IN          0x1B0 0x410 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI2_TXD0__GPIO4_IO26                           0x1B0 0x410 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK                   0x1B4 0x414 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI5_MCLK                   0x1B4 0x414 0x4F0 0x1 0x2
+#define MX8MP_IOMUXC_SAI2_MCLK__ENET_QOS_1588_EVENT3_IN              0x1B4 0x414 0x000 0x2 0x0
+#define MX8MP_IOMUXC_SAI2_MCLK__CAN2_RX                              0x1B4 0x414 0x550 0x3 0x1
+#define MX8MP_IOMUXC_SAI2_MCLK__ENET_QOS_1588_EVENT3_AUX_IN          0x1B4 0x414 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27                           0x1B4 0x414 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI3_MCLK                   0x1B4 0x414 0x4E0 0x6 0x1
+#define MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_SAI3_RX_SYNC                0x1B8 0x418 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_SAI2_RX_DATA01              0x1B8 0x418 0x4DC 0x1 0x1
+#define MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_SAI5_RX_SYNC                0x1B8 0x418 0x508 0x2 0x2
+#define MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_SAI3_RX_DATA01              0x1B8 0x418 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_SPDIF1_IN                   0x1B8 0x418 0x544 0x4 0x2
+#define MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28                           0x1B8 0x418 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_PDM_BIT_STREAM00            0x1B8 0x418 0x4C0 0x6 0x5
+#define MX8MP_IOMUXC_SAI3_RXC__AUDIOMIX_SAI3_RX_BCLK                 0x1BC 0x41C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI3_RXC__AUDIOMIX_SAI2_RX_DATA02               0x1BC 0x41C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI3_RXC__AUDIOMIX_SAI5_RX_BCLK                 0x1BC 0x41C 0x4F4 0x2 0x2
+#define MX8MP_IOMUXC_SAI3_RXC__GPT1_CLK                              0x1BC 0x41C 0x59C 0x3 0x0
+#define MX8MP_IOMUXC_SAI3_RXC__UART2_DCE_CTS                         0x1BC 0x41C 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI3_RXC__UART2_DTE_RTS                         0x1BC 0x41C 0x5EC 0x4 0x2
+#define MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29                            0x1BC 0x41C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_RXC__AUDIOMIX_PDM_CLK                      0x1BC 0x41C 0x000 0x6 0x0
+#define MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00               0x1C0 0x420 0x4E4 0x0 0x1
+#define MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI2_RX_DATA03               0x1C0 0x420 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI5_RX_DATA00               0x1C0 0x420 0x4F8 0x2 0x2
+#define MX8MP_IOMUXC_SAI3_RXD__UART2_DCE_RTS                         0x1C0 0x420 0x5EC 0x4 0x3
+#define MX8MP_IOMUXC_SAI3_RXD__UART2_DTE_CTS                         0x1C0 0x420 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30                            0x1C0 0x420 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_PDM_BIT_STREAM01             0x1C0 0x420 0x4C4 0x6 0x7
+#define MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC                0x1C4 0x424 0x4EC 0x0 0x1
+#define MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI2_TX_DATA01              0x1C4 0x424 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI5_RX_DATA01              0x1C4 0x424 0x4FC 0x2 0x2
+#define MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_DATA01              0x1C4 0x424 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SAI3_TXFS__UART2_DCE_RX                         0x1C4 0x424 0x5F0 0x4 0x4
+#define MX8MP_IOMUXC_SAI3_TXFS__UART2_DTE_TX                         0x1C4 0x424 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31                           0x1C4 0x424 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_PDM_BIT_STREAM03            0x1C4 0x424 0x4CC 0x6 0x6
+#define MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK                 0x1C8 0x428 0x4E8 0x0 0x1
+#define MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI2_TX_DATA02               0x1C8 0x428 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI5_RX_DATA02               0x1C8 0x428 0x500 0x2 0x2
+#define MX8MP_IOMUXC_SAI3_TXC__GPT1_CAPTURE1                         0x1C8 0x428 0x594 0x3 0x0
+#define MX8MP_IOMUXC_SAI3_TXC__UART2_DCE_TX                          0x1C8 0x428 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI3_TXC__UART2_DTE_RX                          0x1C8 0x428 0x5F0 0x4 0x5
+#define MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00                            0x1C8 0x428 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_PDM_BIT_STREAM02             0x1C8 0x428 0x4C8 0x6 0x7
+#define MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00               0x1CC 0x42C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI2_TX_DATA03               0x1CC 0x42C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI5_RX_DATA03               0x1CC 0x42C 0x504 0x2 0x2
+#define MX8MP_IOMUXC_SAI3_TXD__GPT1_CAPTURE2                         0x1CC 0x42C 0x598 0x3 0x0
+#define MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SPDIF1_EXT_CLK               0x1CC 0x42C 0x548 0x4 0x0
+#define MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01                            0x1CC 0x42C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK                   0x1D0 0x430 0x4E0 0x0 0x2
+#define MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT                             0x1D0 0x430 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI5_MCLK                   0x1D0 0x430 0x4F0 0x2 0x3
+#define MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SPDIF1_OUT                  0x1D0 0x430 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02                           0x1D0 0x430 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SPDIF1_IN                   0x1D0 0x430 0x544 0x6 0x3
+#define MX8MP_IOMUXC_SPDIF_TX__AUDIOMIX_SPDIF1_OUT                   0x1D4 0x434 0x000 0x0 0x0
+#define MX8MP_IOMUXC_SPDIF_TX__PWM3_OUT                              0x1D4 0x434 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL                              0x1D4 0x434 0x5C4 0x2 0x2
+#define MX8MP_IOMUXC_SPDIF_TX__GPT1_COMPARE1                         0x1D4 0x434 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SPDIF_TX__CAN1_TX                               0x1D4 0x434 0x000 0x4 0x0
+#define MX8MP_IOMUXC_SPDIF_TX__GPIO5_IO03                            0x1D4 0x434 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SPDIF_RX__AUDIOMIX_SPDIF1_IN                    0x1D8 0x438 0x544 0x0 0x4
+#define MX8MP_IOMUXC_SPDIF_RX__PWM2_OUT                              0x1D8 0x438 0x000 0x1 0x0
+#define MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA                              0x1D8 0x438 0x5C8 0x2 0x2
+#define MX8MP_IOMUXC_SPDIF_RX__GPT1_COMPARE2                         0x1D8 0x438 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SPDIF_RX__CAN1_RX                               0x1D8 0x438 0x54C 0x4 0x2
+#define MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04                            0x1D8 0x438 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SPDIF_EXT_CLK__GPT1_COMPARE3                    0x1DC 0x43C 0x000 0x3 0x0
+#define MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05                       0x1DC 0x43C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_SPDIF_EXT_CLK__AUDIOMIX_SPDIF1_EXT_CLK          0x1DC 0x43C 0x548 0x0 0x1
+#define MX8MP_IOMUXC_SPDIF_EXT_CLK__PWM1_OUT                         0x1DC 0x43C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK                        0x1E0 0x440 0x558 0x0 0x0
+#define MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX                       0x1E0 0x440 0x5F8 0x1 0x4
+#define MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DTE_TX                       0x1E0 0x440 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI1_SCLK__I2C1_SCL                           0x1E0 0x440 0x5A4 0x2 0x1
+#define MX8MP_IOMUXC_ECSPI1_SCLK__AUDIOMIX_SAI7_RX_SYNC              0x1E0 0x440 0x538 0x3 0x1
+#define MX8MP_IOMUXC_ECSPI1_SCLK__GPIO5_IO06                         0x1E0 0x440 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI                        0x1E4 0x444 0x560 0x0 0x0
+#define MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX                       0x1E4 0x444 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DTE_RX                       0x1E4 0x444 0x5F8 0x1 0x5
+#define MX8MP_IOMUXC_ECSPI1_MOSI__I2C1_SDA                           0x1E4 0x444 0x5A8 0x2 0x1
+#define MX8MP_IOMUXC_ECSPI1_MOSI__AUDIOMIX_SAI7_RX_BCLK              0x1E4 0x444 0x530 0x3 0x1
+#define MX8MP_IOMUXC_ECSPI1_MOSI__GPIO5_IO07                         0x1E4 0x444 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO                        0x1E8 0x448 0x55C 0x0 0x0
+#define MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS                      0x1E8 0x448 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI1_MISO__UART3_DTE_RTS                      0x1E8 0x448 0x5F4 0x1 0x2
+#define MX8MP_IOMUXC_ECSPI1_MISO__I2C2_SCL                           0x1E8 0x448 0x5AC 0x2 0x1
+#define MX8MP_IOMUXC_ECSPI1_MISO__AUDIOMIX_SAI7_RX_DATA00            0x1E8 0x448 0x534 0x3 0x1
+#define MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08                         0x1E8 0x448 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI1_SS0__ECSPI1_SS0                          0x1EC 0x44C 0x564 0x0 0x0
+#define MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS                       0x1EC 0x44C 0x5F4 0x1 0x3
+#define MX8MP_IOMUXC_ECSPI1_SS0__UART3_DTE_CTS                       0x1EC 0x44C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI1_SS0__I2C2_SDA                            0x1EC 0x44C 0x5B0 0x2 0x1
+#define MX8MP_IOMUXC_ECSPI1_SS0__AUDIOMIX_SAI7_TX_SYNC               0x1EC 0x44C 0x540 0x3 0x1
+#define MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09                          0x1EC 0x44C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK                        0x1F0 0x450 0x568 0x0 0x1
+#define MX8MP_IOMUXC_ECSPI2_SCLK__UART4_DCE_RX                       0x1F0 0x450 0x600 0x1 0x6
+#define MX8MP_IOMUXC_ECSPI2_SCLK__UART4_DTE_TX                       0x1F0 0x450 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI2_SCLK__I2C3_SCL                           0x1F0 0x450 0x5B4 0x2 0x3
+#define MX8MP_IOMUXC_ECSPI2_SCLK__AUDIOMIX_SAI7_TX_BCLK              0x1F0 0x450 0x53C 0x3 0x1
+#define MX8MP_IOMUXC_ECSPI2_SCLK__GPIO5_IO10                         0x1F0 0x450 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI                        0x1F4 0x454 0x570 0x0 0x1
+#define MX8MP_IOMUXC_ECSPI2_MOSI__UART4_DCE_TX                       0x1F4 0x454 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI2_MOSI__UART4_DTE_RX                       0x1F4 0x454 0x600 0x1 0x7
+#define MX8MP_IOMUXC_ECSPI2_MOSI__I2C3_SDA                           0x1F4 0x454 0x5B8 0x2 0x3
+#define MX8MP_IOMUXC_ECSPI2_MOSI__AUDIOMIX_SAI7_TX_DATA00            0x1F4 0x454 0x000 0x3 0x0
+#define MX8MP_IOMUXC_ECSPI2_MOSI__GPIO5_IO11                         0x1F4 0x454 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI2_MISO__GPIO5_IO12                         0x1F8 0x458 0x000 0x5 0x0
+#define MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO                        0x1F8 0x458 0x56C 0x0 0x1
+#define MX8MP_IOMUXC_ECSPI2_MISO__UART4_DCE_CTS                      0x1F8 0x458 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI2_MISO__UART4_DTE_RTS                      0x1F8 0x458 0x5FC 0x1 0x2
+#define MX8MP_IOMUXC_ECSPI2_MISO__I2C4_SCL                           0x1F8 0x458 0x5BC 0x2 0x4
+#define MX8MP_IOMUXC_ECSPI2_MISO__AUDIOMIX_SAI7_MCLK                 0x1F8 0x458 0x52C 0x3 0x1
+#define MX8MP_IOMUXC_ECSPI2_MISO__CCM_CLKO1                          0x1F8 0x458 0x000 0x4 0x0
+#define MX8MP_IOMUXC_ECSPI2_SS0__ECSPI2_SS0                          0x1FC 0x45C 0x574 0x0 0x1
+#define MX8MP_IOMUXC_ECSPI2_SS0__UART4_DCE_RTS                       0x1FC 0x45C 0x5FC 0x1 0x3
+#define MX8MP_IOMUXC_ECSPI2_SS0__UART4_DTE_CTS                       0x1FC 0x45C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_ECSPI2_SS0__I2C4_SDA                            0x1FC 0x45C 0x5C0 0x2 0x4
+#define MX8MP_IOMUXC_ECSPI2_SS0__CCM_CLKO2                           0x1FC 0x45C 0x000 0x4 0x0
+#define MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13                          0x1FC 0x45C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                              0x200 0x460 0x5A4 0x0 0x2
+#define MX8MP_IOMUXC_I2C1_SCL__ENET_QOS_MDC                          0x200 0x460 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C1_SCL__ECSPI1_SCLK                           0x200 0x460 0x558 0x3 0x1
+#define MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14                            0x200 0x460 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                              0x204 0x464 0x5A8 0x0 0x2
+#define MX8MP_IOMUXC_I2C1_SDA__ENET_QOS_MDIO                         0x204 0x464 0x590 0x1 0x2
+#define MX8MP_IOMUXC_I2C1_SDA__ECSPI1_MOSI                           0x204 0x464 0x560 0x3 0x1
+#define MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15                            0x204 0x464 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                              0x208 0x468 0x5AC 0x0 0x2
+#define MX8MP_IOMUXC_I2C2_SCL__ENET_QOS_1588_EVENT1_IN               0x208 0x468 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C2_SCL__USDHC3_CD_B                           0x208 0x468 0x608 0x2 0x3
+#define MX8MP_IOMUXC_I2C2_SCL__ECSPI1_MISO                           0x208 0x468 0x55C 0x3 0x1
+#define MX8MP_IOMUXC_I2C2_SCL__ENET_QOS_1588_EVENT1_AUX_IN           0x208 0x468 0x000 0x4 0x0
+#define MX8MP_IOMUXC_I2C2_SCL__GPIO5_IO16                            0x208 0x468 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                              0x20C 0x46C 0x5B0 0x0 0x2
+#define MX8MP_IOMUXC_I2C2_SDA__ENET_QOS_1588_EVENT1_OUT              0x20C 0x46C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C2_SDA__USDHC3_WP                             0x20C 0x46C 0x634 0x2 0x3
+#define MX8MP_IOMUXC_I2C2_SDA__ECSPI1_SS0                            0x20C 0x46C 0x564 0x3 0x1
+#define MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17                            0x20C 0x46C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                              0x210 0x470 0x5B4 0x0 0x4
+#define MX8MP_IOMUXC_I2C3_SCL__PWM4_OUT                              0x210 0x470 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C3_SCL__GPT2_CLK                              0x210 0x470 0x000 0x2 0x0
+#define MX8MP_IOMUXC_I2C3_SCL__ECSPI2_SCLK                           0x210 0x470 0x568 0x3 0x2
+#define MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18                            0x210 0x470 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                              0x214 0x474 0x5B8 0x0 0x4
+#define MX8MP_IOMUXC_I2C3_SDA__PWM3_OUT                              0x214 0x474 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C3_SDA__GPT3_CLK                              0x214 0x474 0x000 0x2 0x0
+#define MX8MP_IOMUXC_I2C3_SDA__ECSPI2_MOSI                           0x214 0x474 0x570 0x3 0x2
+#define MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19                            0x214 0x474 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                              0x218 0x478 0x5BC 0x0 0x5
+#define MX8MP_IOMUXC_I2C4_SCL__PWM2_OUT                              0x218 0x478 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B                         0x218 0x478 0x5A0 0x2 0x0
+#define MX8MP_IOMUXC_I2C4_SCL__ECSPI2_MISO                           0x218 0x478 0x56C 0x3 0x2
+#define MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20                            0x218 0x478 0x000 0x5 0x0
+#define MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                              0x21C 0x47C 0x5C0 0x0 0x5
+#define MX8MP_IOMUXC_I2C4_SDA__PWM1_OUT                              0x21C 0x47C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_I2C4_SDA__ECSPI2_SS0                            0x21C 0x47C 0x574 0x3 0x2
+#define MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21                            0x21C 0x47C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX                         0x220 0x480 0x5E8 0x0 0x4
+#define MX8MP_IOMUXC_UART1_RXD__UART1_DTE_TX                         0x220 0x480 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART1_RXD__ECSPI3_SCLK                          0x220 0x480 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART1_RXD__GPIO5_IO22                           0x220 0x480 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX                         0x224 0x484 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART1_TXD__UART1_DTE_RX                         0x224 0x484 0x5E8 0x0 0x5
+#define MX8MP_IOMUXC_UART1_TXD__ECSPI3_MOSI                          0x224 0x484 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART1_TXD__GPIO5_IO23                           0x224 0x484 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                         0x228 0x488 0x5F0 0x0 0x6
+#define MX8MP_IOMUXC_UART2_RXD__UART2_DTE_TX                         0x228 0x488 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART2_RXD__ECSPI3_MISO                          0x228 0x488 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART2_RXD__GPT1_COMPARE3                        0x228 0x488 0x000 0x3 0x0
+#define MX8MP_IOMUXC_UART2_RXD__GPIO5_IO24                           0x228 0x488 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                         0x22C 0x48C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART2_TXD__UART2_DTE_RX                         0x22C 0x48C 0x5F0 0x0 0x7
+#define MX8MP_IOMUXC_UART2_TXD__ECSPI3_SS0                           0x22C 0x48C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART2_TXD__GPT1_COMPARE2                        0x22C 0x48C 0x000 0x3 0x0
+#define MX8MP_IOMUXC_UART2_TXD__GPIO5_IO25                           0x22C 0x48C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX                         0x230 0x490 0x5F8 0x0 0x6
+#define MX8MP_IOMUXC_UART3_RXD__UART3_DTE_TX                         0x230 0x490 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS                        0x230 0x490 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART3_RXD__UART1_DTE_RTS                        0x230 0x490 0x5E4 0x1 0x4
+#define MX8MP_IOMUXC_UART3_RXD__USDHC3_RESET_B                       0x230 0x490 0x000 0x2 0x0
+#define MX8MP_IOMUXC_UART3_RXD__GPT1_CAPTURE2                        0x230 0x490 0x598 0x3 0x1
+#define MX8MP_IOMUXC_UART3_RXD__CAN2_TX                              0x230 0x490 0x000 0x4 0x0
+#define MX8MP_IOMUXC_UART3_RXD__GPIO5_IO26                           0x230 0x490 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX                         0x234 0x494 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART3_TXD__UART3_DTE_RX                         0x234 0x494 0x5F8 0x0 0x7
+#define MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS                        0x234 0x494 0x5E4 0x1 0x5
+#define MX8MP_IOMUXC_UART3_TXD__UART1_DTE_CTS                        0x234 0x494 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART3_TXD__USDHC3_VSELECT                       0x234 0x494 0x000 0x2 0x0
+#define MX8MP_IOMUXC_UART3_TXD__GPT1_CLK                             0x234 0x494 0x59C 0x3 0x1
+#define MX8MP_IOMUXC_UART3_TXD__CAN2_RX                              0x234 0x494 0x550 0x4 0x2
+#define MX8MP_IOMUXC_UART3_TXD__GPIO5_IO27                           0x234 0x494 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX                         0x238 0x498 0x600 0x0 0x8
+#define MX8MP_IOMUXC_UART4_RXD__UART4_DTE_TX                         0x238 0x498 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART4_RXD__UART2_DCE_CTS                        0x238 0x498 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART4_RXD__UART2_DTE_RTS                        0x238 0x498 0x5EC 0x1 0x4
+#define MX8MP_IOMUXC_UART4_RXD__PCIE_CLKREQ_B                        0x238 0x498 0x5A0 0x2 0x1
+#define MX8MP_IOMUXC_UART4_RXD__GPT1_COMPARE1                        0x238 0x498 0x000 0x3 0x0
+#define MX8MP_IOMUXC_UART4_RXD__I2C6_SCL                             0x238 0x498 0x5CC 0x4 0x2
+#define MX8MP_IOMUXC_UART4_RXD__GPIO5_IO28                           0x238 0x498 0x000 0x5 0x0
+#define MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX                         0x23C 0x49C 0x000 0x0 0x0
+#define MX8MP_IOMUXC_UART4_TXD__UART4_DTE_RX                         0x23C 0x49C 0x600 0x0 0x9
+#define MX8MP_IOMUXC_UART4_TXD__UART2_DCE_RTS                        0x23C 0x49C 0x5EC 0x1 0x5
+#define MX8MP_IOMUXC_UART4_TXD__UART2_DTE_CTS                        0x23C 0x49C 0x000 0x1 0x0
+#define MX8MP_IOMUXC_UART4_TXD__GPT1_CAPTURE1                        0x23C 0x49C 0x594 0x3 0x1
+#define MX8MP_IOMUXC_UART4_TXD__I2C6_SDA                             0x23C 0x49C 0x5D0 0x4 0x2
+#define MX8MP_IOMUXC_UART4_TXD__GPIO5_IO29                           0x23C 0x49C 0x000 0x5 0x0
+#define MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL                  0x240 0x4A0 0x000 0x0 0x0
+#define MX8MP_IOMUXC_HDMI_DDC_SCL__I2C5_SCL                          0x240 0x4A0 0x5C4 0x3 0x3
+#define MX8MP_IOMUXC_HDMI_DDC_SCL__CAN1_TX                           0x240 0x4A0 0x000 0x4 0x0
+#define MX8MP_IOMUXC_HDMI_DDC_SCL__GPIO3_IO26                        0x240 0x4A0 0x000 0x5 0x0
+#define MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA                  0x244 0x4A4 0x000 0x0 0x0
+#define MX8MP_IOMUXC_HDMI_DDC_SDA__I2C5_SDA                          0x244 0x4A4 0x5C8 0x3 0x3
+#define MX8MP_IOMUXC_HDMI_DDC_SDA__CAN1_RX                           0x244 0x4A4 0x54C 0x4 0x3
+#define MX8MP_IOMUXC_HDMI_DDC_SDA__GPIO3_IO27                        0x244 0x4A4 0x000 0x5 0x0
+#define MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC                      0x248 0x4A8 0x000 0x0 0x0
+#define MX8MP_IOMUXC_HDMI_CEC__I2C6_SCL                              0x248 0x4A8 0x5CC 0x3 0x3
+#define MX8MP_IOMUXC_HDMI_CEC__CAN2_TX                               0x248 0x4A8 0x000 0x4 0x0
+#define MX8MP_IOMUXC_HDMI_CEC__GPIO3_IO28                            0x248 0x4A8 0x000 0x5 0x0
+#define MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD                      0x24C 0x4AC 0x000 0x0 0x0
+#define MX8MP_IOMUXC_HDMI_HPD__AUDIOMIX_HDMI_HPD_O                   0x24C 0x4AC 0x000 0x1 0x0
+#define MX8MP_IOMUXC_HDMI_HPD__I2C6_SDA                              0x24C 0x4AC 0x5D0 0x3 0x3
+#define MX8MP_IOMUXC_HDMI_HPD__CAN2_RX                               0x24C 0x4AC 0x550 0x4 0x3
+#define MX8MP_IOMUXC_HDMI_HPD__GPIO3_IO29                            0x24C 0x4AC 0x000 0x5 0x0
+
+#endif /* __DTS_IMX8MP_PINFUNC_H */
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mp-x8high35-bms.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mp-x8high35-bms.dts
@@ -0,0 +1,919 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 Shrirang Bagul <shrirang.bagul@canonical.com>
+ */
+
+/dts-v1/;
+
+#include "dt-bindings/leds/leds-pca955x.h"
+#include "dt-bindings/usb/pd.h"
+#include "imx8mp-x8high35-som.dtsi"
+
+/ {
+	model = "Honeywell i.MX8MP X8High35 BMS";
+	compatible = "Honeywell,x8high35-bms", "fsl,imx8mp";
+
+	aliases {
+		rtc0 = &rtc;
+		rtc1 = &snvs_rtc;
+		watchdog0 = &rtc;
+		watchdog1 = &wdog1;
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0x0 0x8000000>;
+			alloc-ranges = <0x0 0x40000000 0x0 0xc0000000>;
+			linux,cma-default;
+		};
+
+		rpmsg_reserved: rpmsg@55800000 {
+			no-map;
+			reg = <0x0 0x55800000 0x0 0x800000>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		/delete-property/pinctrl-0;
+		/delete-property/pinctrl-names;
+		status = "disabled";
+	};
+
+	clk20m: oscillator-0 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency  = <24000000>;
+		clock-output-names = "clk20m";
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpiokeys>;
+
+		s1 {
+			label = "s1";
+			gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_ESC>;
+			wakeup-source;
+		};
+	};
+
+	reg_can1_stby: regulator-can1-stby {
+		compatible = "regulator-fixed";
+		regulator-name = "can1-stby";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_flexcan1_reg>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+		regulator-always-on;
+		enable-active-high;
+	};
+
+	reg_bt_power: regulator-bt-power {
+		compatible = "regulator-fixed";
+		regulator-name = "bt_power";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_bt_reg>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio3 25 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+	};
+
+
+	reg_wifi_power: regulator-wifi-power {
+		compatible = "regulator-fixed";
+		regulator-name = "wifi_power";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_wifi_reg>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		startup-delay-us = <10000>;
+		off-on-delay-us = <12000>;
+	};
+
+	reg_v_1v8: regulator-v-1v8 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ldo5>;
+		compatible = "regulator-gpio";
+		regulator-name = "v_1v8";
+		regulator-max-microvolt = <1800000>;
+		regulator-min-microvolt = <1800000>;
+		gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+		states = <1800000 0x1>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	reg_v_3v3: regulator-v-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_3v3";
+		regulator-max-microvolt = <3300000>;
+		regulator-min-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_v_5v0: regulator-v-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_5v0";
+		regulator-max-microvolt = <5000000>;
+		regulator-min-microvolt = <5000000>;
+		regulator-always-on;
+	};
+
+	wdoggpio: watchdog {
+		compatible = "linux,wdt-gpio";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_wdoggpio>;
+		gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+		hw_algo = "toggle";
+		hw_margin_ms = <60000>;
+		always-running;
+	};
+};
+
+&ecspi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_uart_exp1_int>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+	num-cs = <1>;
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* UART Port A <--> RS-485 UART */
+	/* UART Port B <--> FFT UART */
+	uart_exp1@0 {
+		compatible = "nxp,sc16is752";
+		reg = <0>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+		clock-frequency = <24000000>;
+		spi-max-frequency = <2000000>;
+
+        gpio-controller;
+		#gpio-cells = <2>;
+		gpio-line-names =
+			"MMI_PWR_EN", "MMI_PWR_OK",	"RS422_MODE", "GPIO3",
+			"GPIO4", "GPIO5", "GPIO6", "GPIO7";
+    };
+};
+
+&ecspi2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_uart_exp2_int>;
+	cs-gpios =	<&gpio5 13 GPIO_ACTIVE_LOW>;
+	num-cs = <1>;
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	/* UART Port A <--> Wifi BT UART */
+	/* UART Port B <--> BLE5 ZigBee UART */
+	uart_exp2@0 {
+		compatible = "nxp,sc16is752";
+		reg = <0>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+		clock-frequency = <24000000>;
+		spi-max-frequency = <2000000>;
+
+		gpio-controller;
+		#gpio-cells = <2>;
+		gpio-line-names =
+			"BLE5_ZIGBEE_RESET_B", "BLE5_ZIGBEE_INT_B",
+			"GPIO2", "GPIO3", "GPIO4",
+			"GPIO5", "GPIO6", "GPIO7";
+    };
+};
+
+&eqos {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_eqos>;
+	phy-mode = "rgmii-id";
+	phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+	phy-handle = <&ethphy0>;
+	nvmem-cells = <&eth_mac2>;
+	nvmem-cell-names = "mac-address";
+	nvmem_macaddr_swap;
+	status = "okay";
+
+	mdio {
+		compatible = "snps,dwmac-mdio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@3 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <3>;
+			eee-broken-1000t;
+			eee-broken-100tx;
+			eee-broken-10gt;
+		};
+	};
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec>;
+	phy-mode = "rgmii-id";
+	fsl,magic-packet;
+	status = "okay";
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
+
+&flexcan1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_flexcan1>;
+	xceiver-supply = <&reg_can1_stby>;
+	status = "okay";
+};
+
+&flexspi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_flexspi>;
+	status = "okay";
+
+	flash@0 {
+		reg = <0>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible ="mb85rq4ml", "jedec,spi-nor";
+		spi-max-frequency = <40000000>;
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+
+		/* a 512K partition */
+		partition@0 {
+			label = "fram";
+			reg = <0x0 0x80000>;
+		};
+	};
+};
+
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	switch: switch@5f {
+		compatible = "microchip,ksz9897";
+		reg = <0x5f>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				label = "lan1";
+			};
+
+			port@1 {
+				reg = <1>;
+				label = "lan2";
+			};
+
+			port@3 {
+				reg = <3>;
+				label = "lan4";
+			};
+
+			port@4 {
+				reg = <4>;
+				label = "lan5";
+			};
+
+			port@5 {
+				reg = <5>;
+				label = "t1l";
+			};
+
+			port@6 {
+				reg = <6>;
+				label = "cpu";
+				ethernet = <&fec>;
+				fixed-link {
+					speed = <1000>;
+					full-duplex;
+				};
+			};
+		};
+	};
+};
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	led_driver_0: pca9552@60 {
+		compatible = "nxp,pca9552";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x60>;
+
+		led@0 {
+			label = "green:tx1";
+			reg = <0>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@1 {
+			label = "red:tx1";
+			reg = <1>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@2 {
+			label = "green:rx1";
+			reg = <2>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@3 {
+			label = "red:rx1";
+			reg = <3>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@4 {
+			label = "green:tx2";
+			reg = <4>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@5 {
+			label = "red:tx2";
+			reg = <5>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@6 {
+			label = "green:rx2";
+			reg = <6>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@7 {
+			label = "red:rx2";
+			reg = <7>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@8 {
+			label = "green:tx3";
+			reg = <8>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@9 {
+			label = "red:tx3";
+			reg = <9>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@10 {
+			label = "green:rx3";
+			reg = <10>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@11 {
+			label = "red:rx3";
+			reg = <11>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@12 {
+			label = "green:tx4";
+			reg = <12>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@13 {
+			label = "red:tx4";
+			reg = <13>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@14 {
+			label = "green:rx4";
+			reg = <14>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@15 {
+			label = "red:rx4";
+			reg = <15>;
+			type = <PCA955X_TYPE_LED>;
+		};
+	};
+
+	led_driver_1: pca9552@61 {
+		compatible = "nxp,pca9552";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x61>;
+
+		led@0 {
+			label = "green:tx5";
+			reg = <0>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@1 {
+			label = "red:tx5";
+			reg = <1>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@2 {
+			label = "green:rx5";
+			reg = <2>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@3 {
+			label = "red:rx5";
+			reg = <3>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@4 {
+			label = "green:status";
+			reg = <4>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@5 {
+			label = "red:status";
+			reg = <5>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@6 {
+			label = "green:wifi";
+			reg = <6>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@7 {
+			label = "red:wifi";
+			reg = <7>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@8 {
+			label = "green:bluetooth";
+			reg = <8>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@9 {
+			label = "red:bluetooth";
+			reg = <9>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@10 {
+			label = "green:alarm_b";
+			reg = <10>;
+			type = <PCA955X_TYPE_LED>;
+		};
+
+		led@11 {
+			label = "red:alarm_b";
+			reg = <11>;
+			type = <PCA955X_TYPE_LED>;
+		};
+	};
+};
+
+&i2c6 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c6>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	rtc: rtc@68 {
+		compatible = "st,m41t83";
+		reg = <0x68>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+		interrupt-names = "rtc-wake";
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	pinctrl_beeper_pwm: beeperpwmgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO10__PWM3_OUT	0x6
+		>;
+	};
+
+	pinctrl_bt_reg: btreggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25	0x19
+		>;
+	};
+
+	pinctrl_hog: hoggrp {
+		fsl,pins = <
+			/* LED_SHUTDOWN_B */
+			MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08	0x19
+			/* LED_ALARM_B */
+			MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09	0x19
+		>;
+	};
+
+	pinctrl_eqos: eqosgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC	0x3
+			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO	0x3
+			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0	0x91
+			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1	0x91
+			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2	0x91
+			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3	0x91
+			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x91
+			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL	0x91
+			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0		0x1f
+			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1		0x1f
+			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2		0x1f
+			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3		0x1f
+			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL	0x1f
+			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x1f
+			MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22		0x19
+		>;
+	};
+
+	pinctrl_ecspi1: ecspi1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK	0x82
+			MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO	0x82
+			MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI	0x82
+			MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09	0x82
+		>;
+	};
+
+	pinctrl_ecspi2: ecspi2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK	0x82
+			MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO	0x82
+			MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI	0x82
+			MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13	0x82
+		>;
+	};
+
+	pinctrl_uart_exp1_int: uartexp1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00	0x19
+		>;
+	};
+
+	pinctrl_uart_exp2_int: uartexp2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19	0x19
+		>;
+	};
+
+	pinctrl_fec: fecgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
+			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
+			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
+			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
+			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
+			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
+			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
+			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
+			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
+			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
+			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
+			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
+			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
+			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
+			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02		0x19
+		>;
+	};
+
+	pinctrl_flexcan1: flexcan1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_RXD1__CAN1_TX		0x154
+			MX8MP_IOMUXC_SAI5_RXD2__CAN1_RX		0x154
+		>;
+	};
+
+	pinctrl_flexcan2: flexcan2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154
+			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154
+		>;
+	};
+
+	pinctrl_flexcan1_reg: flexcan1reggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08		0x154   /* CAN1_STBY */
+		>;
+	};
+
+	pinctrl_flexcan2_reg: flexcan2reggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27      0x154   /* CAN2_STBY */
+		>;
+	};
+
+	pinctrl_flexspi: flexspigrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK		0x1c2
+			MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B	0x82
+			MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00	0x82
+			MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01	0x82
+			MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02	0x82
+			MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03	0x82
+		>;
+	};
+
+	pinctrl_gpiokeys: gpiokeysgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19	0x19
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL		0x400001c3
+			MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c4: i2c4grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_DATA2__I2C4_SCL	0x400001c3
+			MX8MP_IOMUXC_SD1_DATA3__I2C4_SDA 	0x400001c3
+		>;
+	};
+
+	pinctrl_i2c6: i2c6grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_DATA0__I2C6_SCL		0x400001c3
+			MX8MP_IOMUXC_SD1_DATA1__I2C6_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_ldo5: ldo5grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04	0x19
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_CLK__UART1_DTE_RX 0x49
+			MX8MP_IOMUXC_SD1_CMD__UART1_DTE_TX 0x49
+			MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05	0x19
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI3_TXC__UART2_DTE_RX		0x49
+			MX8MP_IOMUXC_SAI3_TXFS__UART2_DTE_TX	0x49
+			MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04		0x19
+		>;
+	};
+
+	pinctrl_uart3: uart3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX	0x49
+			MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX	0x49
+			MX8MP_IOMUXC_SPDIF_TX__GPIO5_IO03		0x19
+		>;
+	};
+
+	pinctrl_uart4: uart4grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX	0x49
+			MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX	0x49
+			MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02		0x19
+		>;
+	};
+
+	pinctrl_uart_exp2_int: uartexp2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19	0x19
+		>;
+	};
+
+	pinctrl_usb1_vbus: usb1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10	0x19
+		>;
+	};
+
+	pinctrl_usb2_vbus: usb2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14	0x19
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x194
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d4
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d4
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d4
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d4
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d4
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x196
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d6
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d6
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d6
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d6
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d6
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0x166
+		>;
+	};
+
+	pinctrl_wdoggpio:wdoggpiogrp{
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00	0x19
+		>;
+	};
+
+	pinctrl_wifi_reg: wifireggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24	0x19
+		>;
+	};
+
+};
+
+&ocotp {
+	eth_mac2: mac-address@94 {
+		reg = <0x94 6>;
+	};
+};
+
+&snvs_pwrkey {
+	status = "okay";
+};
+
+&uart1 {
+	/* RS-485 TouchFlakes */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	fsl,dte-mode;
+	linux,rs485-enabled-at-boot-time;
+	rts-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
+
+&uart2 {
+	/* RS-485 MSTP Port1 */
+	/* AND */
+	/* ARM53 debug console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	linux,rs485-enabled-at-boot-time;
+	status = "okay";
+
+	fsl,dte-mode;
+	rts-gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>;
+};
+
+&uart3 {
+	/* RS-485 MSTP Port2 */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	linux,rs485-enabled-at-boot-time;
+	status = "okay";
+
+	rts-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
+};
+
+&uart4 {
+	/* RS-485 MSTP Port3 */
+	/* AND */
+	/* ARM M7 debug console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	linux,rs485-enabled-at-boot-time;
+	status = "okay";
+
+	rts-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3_phy0 {
+	status = "okay";
+};
+
+&usb3_0 {
+	status = "okay";
+};
+
+&usb_dwc3_0 {
+	dr_mode = "peripheral";
+	hnp-disable;
+	srp-disable;
+	adp-disable;
+	status = "okay";
+};
+
+&usb3_phy1 {
+	status = "okay";
+};
+
+&usb3_1 {
+	status = "okay";
+};
+
+&usb_dwc3_1 {
+	dr_mode = "peripheral";
+	hnp-disable;
+	srp-disable;
+	adp-disable;
+	status = "okay";
+};
+
+&usdhc2 {
+	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+	vmmc-supply = <&reg_wifi_power>;
+	bus-width = <4>;
+	non-removable;
+	keep-power-in-suspend;
+	enable-sdio-wakeup;
+	status = "okay";
+
+	wifi@1 {
+		compatible = "brcm,bcm4329-fmac";
+		reg = <1>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-names = "host-wake";
+	};
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mp-x8high35-pdk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mp-x8high35-pdk.dts
@@ -0,0 +1,872 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 Shrirang Bagul <shrirang.bagul@canonical.com>
+ */
+
+/dts-v1/;
+
+#include "dt-bindings/usb/pd.h"
+#include "imx8mp-x8high35-som.dtsi"
+
+/ {
+	model = "Honeywell i.MX8MP X8High35 PDK";
+	compatible = "Honeywell,x8high35-pdk", "fsl,imx8mp";
+
+	aliases {
+		rtc0 = &rtc;
+		rtc1 = &snvs_rtc;
+	};
+
+	beeper {
+		compatible = "pwm-beeper";
+		pwms = <&pwm3 0 5000000 0>;
+	};
+
+	chosen {
+		stdout-path = &uart2;
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+
+	leds {
+		compatible = "gpio-leds";
+
+		dl14 {
+			label = "trouble";
+			gpios = <&led_expander 0 GPIO_ACTIVE_LOW>;
+		};
+
+		dl15 {
+			label = "bt-status";
+			gpios = <&led_expander 1 GPIO_ACTIVE_LOW>;
+		};
+
+		dl16 {
+			label = "panel-conn";
+			gpios = <&led_expander 2 GPIO_ACTIVE_LOW>;
+		};
+
+		dl17 {
+			label = "cloud-conn";
+			gpios = <&led_expander 3 GPIO_ACTIVE_LOW>;
+		};
+
+		dl18 {
+			label = "wifi-conn";
+			gpios = <&led_expander 4 GPIO_ACTIVE_LOW>;
+		};
+
+		dl19 {
+			label = "bte-conn";
+			gpios = <&led_expander 5 GPIO_ACTIVE_LOW>;
+		};
+
+		dl20 {
+			label = "add-on";
+			gpios = <&led_expander 6 GPIO_ACTIVE_LOW>;
+		};
+
+		dl21 {
+			label = "module-conn";
+			gpios = <&led_expander 7 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	bus@30c00000 { /* AIPS5 */
+		compatible = "simple-bus";
+		reg = <0x30c00000 0x400000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		spba-bus@30c00000 {
+			compatible = "fsl,spba-bus", "simple-bus";
+			reg = <0x30c00000 0x100000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+
+			sai3: sai@30c30000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai";
+				reg = <0x308c0000 0x10000>;
+				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_AUDIOMIX_SAI3_IPG>,
+				     <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>,
+				     <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+		};
+	};
+
+	reg_usb1_host_vbus: regulator-usb1-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usb1_vbus>;
+		regulator-name = "usb1_host_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		status = "disabled";
+	};
+
+	reg_usb2_host_vbus: regulator-usb2-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usb2_vbus>;
+		regulator-name = "usb1_host_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		status = "disabled";
+	};
+
+	reg_wifi_power: regulator-wifi-power {
+		compatible = "regulator-fixed";
+		regulator-name = "wifi_power";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		startup-delay-us = <10000>;
+		off-on-delay-us = <12000>;
+	};
+
+	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_v_1v8: regulator-v-1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_1v8";
+		regulator-max-microvolt = <1800000>;
+		regulator-min-microvolt = <1800000>;
+		regulator-always-on;
+	};
+
+	reg_v_3v3: regulator-v-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_3v3";
+		regulator-max-microvolt = <3300000>;
+		regulator-min-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_v_5v0: regulator-v-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "v_5v0";
+		regulator-max-microvolt = <5000000>;
+		regulator-min-microvolt = <5000000>;
+		regulator-always-on;
+	};
+};
+
+&ecspi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1
+		&pinctrl_uart_exp1_int &pinctrl_uart_exp2_int>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>,
+		<&gpio1 1 GPIO_ACTIVE_LOW>;
+	num-cs = <2>;
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	uart_exp1@0 {
+		compatible = "nxp,sc16is752";
+		reg = <0x0>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+		clock-frequency = <14745600>;
+		spi-max-frequency = <2000000>;
+    };
+
+	uart_exp2@1 {
+		compatible = "nxp,sc16is752";
+		reg = <0x1>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+		clock-frequency = <14745600>;
+		spi-max-frequency = <2000000>;
+    };
+};
+
+&eqos {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_eqos>;
+	phy-mode = "rgmii-id";
+	phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+	phy-handle = <&ethphy1>;
+	nvmem-cells = <&eth_mac2>;
+	nvmem-cell-names = "mac-address";
+	nvmem_macaddr_swap;
+	status = "okay";
+
+	mdio {
+		compatible = "snps,dwmac-mdio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy1: ethernet-phy@2 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <2>;
+			eee-broken-1000t;
+			eee-broken-100tx;
+			eee-broken-10gt;
+		};
+	};
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec>;
+	phy-mode = "rgmii-id";
+	phy-reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
+	phy-handle = <&ethphy0>;
+	fsl,magic-packet;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+			eee-broken-1000t;
+			eee-broken-100tx;
+			eee-broken-10gt;
+			micrel,led-mode = <1>;
+		};
+	};
+};
+
+&i2c2 {
+	rtc: rtc@6f {
+		compatible = "microchip,mcp7940x";
+		reg = <0x6f>;
+	};
+
+	codec: sgtl5000@a {
+		#sound-dai-cells = <0>;
+		compatible = "fsl,sgtl5000";
+		reg = <0xa>;
+		VDDA-supply = <&reg_v_3v3>;
+		VDDIO-supply = <&reg_v_1v8>;
+		clocks = <&clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>;
+	};
+
+	/* ToDo: CSI1/2 , DSI */
+};
+
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	sensor@48 {
+		compatible = "ti,tmp75";
+		reg = <0x48>;
+	};
+
+	typec_1: ptn5150@3d {
+		compatible = "nxp,ptn5150";
+		reg = <0x3d>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usb1_vbus>;
+		vbus-gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	typec_2: ptn5150@1d {
+		compatible = "nxp,ptn5150";
+		reg = <0x1d>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usb2_vbus>;
+		vbus-gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	/* ToDo: Pi, LVDS0/1 */
+};
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	clock-frequency = <100000>;
+	status = "okay";
+
+	sensor@48 {
+		compatible = "ti,tmp75";
+		reg = <0x48>;
+	};
+
+	gpio_exp_74: gpio@74 {
+		compatible = "ti,tca9539";
+		reg = <0x74>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		interrupt-controller;
+		interrupt-parent = <&gpio3>;
+		interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
+		vcc-supply = <&reg_v_3v3>;
+
+		port1_3v3_pwr_ctl {
+			gpio-hog;
+			gpios = <0 GPIO_ACTIVE_HIGH>;
+			line-name = "PORT1_3V3_PWR_CTL";
+		};
+
+		nint_port1 {
+			gpio-hog;
+			gpios = <1 GPIO_ACTIVE_LOW>;
+			line-name = "nINT_PORT1";
+		};
+
+		port1_nrst {
+			gpio-hog;
+			gpios = <2 GPIO_ACTIVE_LOW>;
+			line-name = "PORT1_nRST";
+		};
+
+		/* ToDo: GPIO/SPI_CTS_PORT1 (P03) */
+
+		board_id_1 {
+			gpio-hog;
+			gpios = <4 0>;
+			input;
+			line-name = "BOARD_ID_1";
+		};
+
+		board_id_2 {
+			gpio-hog;
+			gpios = <5 0>;
+			input;
+			line-name = "BOARD_ID_2";
+		};
+
+		board_id_3 {
+			gpio-hog;
+			gpios = <6 0>;
+			input;
+			line-name = "BOARD_ID_3";
+		};
+
+		board_id_4 {
+			gpio-hog;
+			gpios = <7 0>;
+			input;
+			line-name = "BOARD_ID_4";
+		};
+
+		lte_igt {
+			gpio-hog;
+			gpios = <8 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_IGT";
+		};
+
+		lte_radio_usb_ctrl {
+			gpio-hog;
+			gpios = <9 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_RADIO_USB_CTR";
+		};
+
+		lte_power_en {
+			gpio-hog;
+			gpios = <10 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_POWER_EN";
+		};
+
+		lte_emergency_off {
+			gpio-hog;
+			gpios = <11 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_EMERGENCY_OFF";
+		};
+
+		lte_uart_dtr {
+			gpio-hog;
+			gpios = <12 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_UART_DTR";
+		};
+
+		lte_vdd5v_en {
+			gpio-hog;
+			gpios = <13 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_VDD5V_EN";
+		};
+
+		/* ToDo: GPIO/SPI_CTS_PORT1 (P03) */
+
+		lte_ring_wakeup {
+			gpio-hog;
+			gpios = <15 GPIO_ACTIVE_HIGH>;
+			output-low;
+			line-name = "LTE_RING_WAKEUP";
+		};
+	};
+
+	gpio_exp_75: gpio@75 {
+		compatible = "ti,tca9539";
+		reg = <0x75>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		interrupt-controller;
+		interrupt-parent = <&gpio3>;
+		interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+		vcc-supply = <&reg_v_3v3>;
+	};
+
+	led_expander: led-controller@21 {
+		compatible = "ti,tca6408";
+		reg = <0x21>;
+		vcc-supply = <&reg_v_3v3>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	pinctrl_beeper_pwm: beeperpwmgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO10__PWM3_OUT	0x6
+		>;
+	};
+
+	pinctrl_bt: btgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25	0x19
+		>;
+	};
+
+	/* ToDo: set correct value for IO12 input */
+	pinctrl_hog: hoggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12	0x41
+		>;
+	};
+
+	pinctrl_gpio_led: gpioledgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x19
+		>;
+	};
+
+	pinctrl_eqos: eqosgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC	0x3
+			MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO	0x3
+			MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0	0x91
+			MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1	0x91
+			MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2	0x91
+			MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3	0x91
+			MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x91
+			MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL	0x91
+			MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0		0x1f
+			MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1		0x1f
+			MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2		0x1f
+			MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3		0x1f
+			MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL	0x1f
+			MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x1f
+			MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22		0x19
+		>;
+	};
+
+	pinctrl_ecspi1: ecspi1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK	0x82
+			MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO	0x82
+			MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI	0x82
+			MX8MP_IOMUXC_ECSPI1_SS0__ECSPI1_SS0	0x82
+			MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01	0x82
+		>;
+	};
+
+	pinctrl_uart_exp1_int: uartexp1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00	0x19
+		>;
+	};
+
+	pinctrl_uart_exp2_int: uartexp2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19	0x19
+		>;
+	};
+
+	pinctrl_fec: fecgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC		0x3
+			MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO		0x3
+			MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0		0x91
+			MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1		0x91
+			MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2		0x91
+			MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3		0x91
+			MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC		0x91
+			MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL	0x91
+			MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0		0x1f
+			MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1		0x1f
+			MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2		0x1f
+			MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3		0x1f
+			MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL	0x1f
+			MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC		0x1f
+			MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02		0x19
+		>;
+	};
+
+	pinctrl_flexcan1: flexcan1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SPDIF_RX__CAN1_RX          0x154
+			MX8MP_IOMUXC_SPDIF_TX__CAN1_TX          0x154
+		>;
+	};
+
+	pinctrl_flexcan2: flexcan2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154
+			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154
+		>;
+	};
+
+	pinctrl_flexcan1_reg: flexcan1reggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05  0x154   /* CAN1_STBY */
+		>;
+	};
+
+	pinctrl_flexcan2_reg: flexcan2reggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27      0x154   /* CAN2_STBY */
+		>;
+	};
+
+	pinctrl_gpio_led: gpioledgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x19
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL		0x400001c3
+			MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c4: i2c4grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL		0x400001c3
+			MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_sai3: sai3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00	0xd6
+			MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC	0xd6
+			MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK	0xd6
+			MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00	0xd6
+
+			/* Confirm: This pin has multiple connections */
+			/*                |--- U87 --> GPIO_RAS PI_13 */
+			/*   SAI3_MCLK ---|                           */
+			/*                |--- U54 --> SYS_MCLK       */
+			/*
+			MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK	0xd6
+			*/
+		>;
+	};
+
+	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19	0x41
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX	0x140
+			MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX	0x140
+			MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS	0x140
+			MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS	0x140
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX	0x49
+			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX	0x49
+		>;
+	};
+
+	pinctrl_uart3: uart3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_DATA6__UART3_DCE_TX	0x49
+			MX8MP_IOMUXC_SD1_DATA7__UART3_DCE_RX	0x49
+		>;
+	};
+
+	pinctrl_uart4: uart4grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX	0x49
+			MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX	0x49
+		>;
+	};
+
+	pinctrl_uart_exp2_int: uartexp2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19	0x19
+		>;
+	};
+
+	pinctrl_usb1_vbus: usb1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11	0x19
+		>;
+	};
+
+	pinctrl_usb2_vbus: usb2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14	0x19
+		>;
+	};
+
+	pinctrl_usdhc1: usdhc1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK	0x190
+			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD	0x1d0
+			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0	0x1d0
+			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1	0x1d0
+			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2	0x1d0
+			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3	0x1d0
+			MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24	0x19
+		>;
+	};
+
+	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK	0x194
+			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD	0x1d4
+			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0	0x1d4
+			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1	0x1d4
+			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2	0x1d4
+			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3	0x1d4
+			MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24	0x19
+		>;
+	};
+
+	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK	0x196
+			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD	0x1d6
+			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0	0x1d6
+			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1	0x1d6
+			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2	0x1d6
+			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3	0x1d6
+			MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24	0x19
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x190
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d0
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d0
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d0
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d0
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d0
+			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT	0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x194
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d4
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d4
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d4
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d4
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d4
+			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK	0x196
+			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD	0x1d6
+			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0	0x1d6
+			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1	0x1d6
+			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2	0x1d6
+			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3	0x1d6
+			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12	0x1c4
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0x166
+		>;
+	};
+};
+
+&ocotp {
+	eth_mac2: mac-address@94 {
+		reg = <0x94 6>;
+	};
+};
+
+&pwm3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_beeper_pwm>;
+	status = "okay";
+};
+
+&sai3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai3>;
+	assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
+	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	fsl,sai-mclk-direction-output;
+	status = "okay";
+};
+
+&snvs_pwrkey {
+	status = "okay";
+};
+
+&uart1 {
+	/* BT UART */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1 &pinctrl_bt>;
+	status = "okay";
+	fsl,uart-has-rtscts;
+};
+
+&uart2 {
+	/* ARM53 debug console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+&uart3 {
+	/* RS-232 port */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	status = "okay";
+};
+
+&uart4 {
+	/* ARM M7 debug console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	status = "okay";
+};
+
+&usb3_phy0 {
+	status = "okay";
+};
+
+&usb3_0 {
+	status = "okay";
+};
+
+&usb_dwc3_0 {
+	dr_mode = "otg";
+	status = "okay";
+
+	extcon = <&typec_1>;
+};
+
+&usb3_phy1 {
+	status = "okay";
+};
+
+&usb3_1 {
+	status = "okay";
+};
+
+&usb_dwc3_1 {
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usdhc1 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+	vmmc-supply = <&reg_wifi_power>;
+	bus-width = <4>;
+	non-removable;
+	keep-power-in-suspend;
+	enable-sdio-wakeup;
+	status = "okay";
+
+	wifi@1 {
+		compatible = "brcm,bcm4329-fmac";
+		reg = <1>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-names = "host-wake";
+	};
+};
+
+&usdhc2 {
+	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	bus-width = <4>;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mp-x8high35-som.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mp-x8high35-som.dtsi
@@ -0,0 +1,323 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 Shrirang Bagul <shrirang.bagul@canonical.com>
+ */
+
+#include "imx8mp.dtsi"
+
+/ {
+	reg_vdd_3v3: regulator-vdd-3v3 {
+		compatible = "regulator-fixed";
+		regulator-always-on;
+		regulator-name = "vdd_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0 0x80000000>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_som_led>;
+
+		som_led: status {
+			label = "green:status";
+			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
+		};
+	};
+
+	a53_opp_table: opp-table {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp-1200000000 {
+			opp-hz = /bits/ 64 <1200000000>;
+			opp-microvolt = <850000>;
+			opp-supported-hw = <0x8a0>, <0x7>;
+			clock-latency-ns = <150000>;
+			opp-suspend;
+		};
+
+		opp-1600000000 {
+			opp-hz = /bits/ 64 <1600000000>;
+			opp-microvolt = <950000>;
+			opp-supported-hw = <0xa0>, <0x7>;
+			clock-latency-ns = <150000>;
+			opp-suspend;
+		};
+
+		opp-1800000000 {
+			opp-hz = /bits/ 64 <1800000000>;
+			opp-microvolt = <1000000>;
+			opp-supported-hw = <0x20>, <0x3>;
+			clock-latency-ns = <150000>;
+			opp-suspend;
+		};
+	};
+
+	cpus {
+		idle-states {
+			entry-method = "psci";
+
+			cpu_pd_wait: cpu-pd-wait {
+				compatible = "arm,idle-state";
+				arm,psci-suspend-param = <0x0010033>;
+				local-timer-stop;
+				entry-latency-us = <1000>;
+				exit-latency-us = <700>;
+				min-residency-us = <2700>;
+			};
+		};
+	};
+
+};
+
+&A53_0 {
+	operating-points-v2 = <&a53_opp_table>;
+	cpu-idle-states = <&cpu_pd_wait>;
+	nvmem-cells = <&cpu_speed_grade>;
+	nvmem-cell-names = "speed_grade";
+	cpu-supply = <&buck2_reg>;
+};
+
+&A53_1 {
+	operating-points-v2 = <&a53_opp_table>;
+	cpu-idle-states = <&cpu_pd_wait>;
+	nvmem-cells = <&cpu_speed_grade>;
+	nvmem-cell-names = "speed_grade";
+	cpu-supply = <&buck2_reg>;
+};
+
+&A53_2 {
+	operating-points-v2 = <&a53_opp_table>;
+	cpu-idle-states = <&cpu_pd_wait>;
+	nvmem-cells = <&cpu_speed_grade>;
+	nvmem-cell-names = "speed_grade";
+	cpu-supply = <&buck2_reg>;
+};
+
+&A53_3 {
+	operating-points-v2 = <&a53_opp_table>;
+	cpu-idle-states = <&cpu_pd_wait>;
+	nvmem-cells = <&cpu_speed_grade>;
+	nvmem-cell-names = "speed_grade";
+	cpu-supply = <&buck2_reg>;
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	pmic: pca9450@25 {
+		compatible = "nxp,pca9450c";
+		reg = <0x25>;
+
+		pinctrl-0 = <&pinctrl_pmic>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+		regulators {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			buck1_reg: regulator@0 {
+				reg = <0>;
+				regulator-compatible = "BUCK1";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <2187500>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <3125>;
+			};
+
+			buck2_reg: regulator@1 {
+				reg = <1>;
+				regulator-compatible = "BUCK2";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <2187500>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <3125>;
+				nxp,dvs-run-voltage = <950000>;
+				nxp,dvs-standby-voltage = <850000>;
+			};
+
+			buck4_reg: regulator@3 {
+				reg = <3>;
+				regulator-compatible = "BUCK4";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck5_reg: regulator@4 {
+				reg = <4>;
+				regulator-compatible = "BUCK5";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck6_reg: regulator@5 {
+				reg = <5>;
+				regulator-compatible = "BUCK6";
+				regulator-min-microvolt = <600000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo1_reg: regulator@6 {
+				reg = <6>;
+				regulator-compatible = "LDO1";
+				regulator-min-microvolt = <1600000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo2_reg: regulator@7 {
+				reg = <7>;
+				regulator-compatible = "LDO2";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1150000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo3_reg: regulator@8 {
+				reg = <8>;
+				regulator-compatible = "LDO3";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo4_reg: regulator@9 {
+				reg = <9>;
+				regulator-compatible = "LDO4";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo5_reg: regulator@10 {
+				reg = <10>;
+				regulator-compatible = "LDO5";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+			};
+		};
+	};
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ext_crypto: extcrypto@60 {
+		compatible = "atmel,atecc508a";
+		reg = <0x60>;
+	};
+};
+
+&iomuxc {
+	pinctrl_som_led: somledgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x19
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL		0x400001c3
+			MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL		0x400001c3
+			MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA		0x400001c3
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x190
+			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d0
+			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d0
+			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d0
+			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d0
+			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d0
+			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d0
+			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d0
+			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d0
+			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d0
+			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x190
+		>;
+	};
+
+	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x194
+			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d4
+			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d4
+			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d4
+			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d4
+			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d4
+			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d4
+			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d4
+			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d4
+			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d4
+			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x194
+		>;
+	};
+
+	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK	0x196
+			MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD	0x1d6
+			MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d6
+			MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d6
+			MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d6
+			MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d6
+			MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d6
+			MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d6
+			MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d6
+			MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7	0x1d6
+			MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x196
+		>;
+	};
+
+	pinctrl_pmic: pmicirq {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03	0x41
+		>;
+	};
+};
+
+&usdhc3 {
+	assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -0,0 +1,1006 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/thermal/thermal.h>
+
+#include "imx8mp-pinfunc.h"
+
+/ {
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	aliases {
+		ethernet0 = &fec;
+		ethernet1 = &eqos;
+		gpio0 = &gpio1;
+		gpio1 = &gpio2;
+		gpio2 = &gpio3;
+		gpio3 = &gpio4;
+		gpio4 = &gpio5;
+		i2c0 = &i2c1;
+		i2c1 = &i2c2;
+		i2c2 = &i2c3;
+		i2c3 = &i2c4;
+		i2c4 = &i2c5;
+		i2c5 = &i2c6;
+		mmc0 = &usdhc1;
+		mmc1 = &usdhc2;
+		mmc2 = &usdhc3;
+		serial0 = &uart1;
+		serial1 = &uart2;
+		serial2 = &uart3;
+		serial3 = &uart4;
+		spi0 = &flexspi;
+	};
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		A53_0: cpu@0 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <0x0>;
+			clock-latency = <61036>;
+			clocks = <&clk IMX8MP_CLK_ARM>;
+			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
+			next-level-cache = <&A53_L2>;
+			#cooling-cells = <2>;
+		};
+
+		A53_1: cpu@1 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <0x1>;
+			clock-latency = <61036>;
+			clocks = <&clk IMX8MP_CLK_ARM>;
+			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
+			next-level-cache = <&A53_L2>;
+			#cooling-cells = <2>;
+		};
+
+		A53_2: cpu@2 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <0x2>;
+			clock-latency = <61036>;
+			clocks = <&clk IMX8MP_CLK_ARM>;
+			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
+			next-level-cache = <&A53_L2>;
+			#cooling-cells = <2>;
+		};
+
+		A53_3: cpu@3 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <0x3>;
+			clock-latency = <61036>;
+			clocks = <&clk IMX8MP_CLK_ARM>;
+			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
+			next-level-cache = <&A53_L2>;
+			#cooling-cells = <2>;
+		};
+
+		A53_L2: l2-cache0 {
+			compatible = "cache";
+			cache-level = <2>;
+			cache-size = <0x80000>;
+			cache-line-size = <64>;
+			cache-sets = <512>;
+		};
+	};
+
+	osc_32k: clock-osc-32k {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "osc_32k";
+	};
+
+	osc_24m: clock-osc-24m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <24000000>;
+		clock-output-names = "osc_24m";
+	};
+
+	clk_ext1: clock-ext1 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <133000000>;
+		clock-output-names = "clk_ext1";
+	};
+
+	clk_ext2: clock-ext2 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <133000000>;
+		clock-output-names = "clk_ext2";
+	};
+
+	clk_ext3: clock-ext3 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <133000000>;
+		clock-output-names = "clk_ext3";
+	};
+
+	clk_ext4: clock-ext4 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency= <133000000>;
+		clock-output-names = "clk_ext4";
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		dsp_reserved: dsp@92400000 {
+			reg = <0 0x92400000 0 0x2000000>;
+			no-map;
+		};
+	};
+
+	pmu {
+		compatible = "arm,cortex-a53-pmu";
+		interrupts = <GIC_PPI 7
+			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+		interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>;
+	};
+
+	psci {
+		compatible = "arm,psci-1.0";
+		method = "smc";
+	};
+
+	thermal-zones {
+		cpu-thermal {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			thermal-sensors = <&tmu 0>;
+			trips {
+				cpu_alert0: trip0 {
+					temperature = <85000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+
+				cpu_crit0: trip1 {
+					temperature = <95000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+
+			cooling-maps {
+				map0 {
+					trip = <&cpu_alert0>;
+					cooling-device =
+						<&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+
+		soc-thermal {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			thermal-sensors = <&tmu 1>;
+			trips {
+				soc_alert0: trip0 {
+					temperature = <85000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+
+				soc_crit0: trip1 {
+					temperature = <95000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+
+			cooling-maps {
+				map0 {
+					trip = <&soc_alert0>;
+					cooling-device =
+						<&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+		clock-frequency = <8000000>;
+		arm,no-tick-in-suspend;
+	};
+
+	soc@0 {
+		compatible = "fsl,imx8mp-soc", "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x0 0x0 0x3e000000>;
+		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
+		nvmem-cells = <&imx8mp_uid>;
+		nvmem-cell-names = "soc_unique_id";
+
+		caam_sm: caam-sm@100000 {
+			compatible = "fsl,imx6q-caam-sm";
+			reg = <0x100000 0x8000>;
+		};
+
+		aips1: bus@30000000 {
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30000000 0x400000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+
+			gpio1: gpio@30200000 {
+				compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
+				reg = <0x30200000 0x10000>;
+				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_GPIO1_ROOT>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				gpio-ranges = <&iomuxc 0 5 30>;
+			};
+
+			gpio2: gpio@30210000 {
+				compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
+				reg = <0x30210000 0x10000>;
+				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_GPIO2_ROOT>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				gpio-ranges = <&iomuxc 0 35 21>;
+			};
+
+			gpio3: gpio@30220000 {
+				compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
+				reg = <0x30220000 0x10000>;
+				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_GPIO3_ROOT>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 26 144 4>;
+			};
+
+			gpio4: gpio@30230000 {
+				compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
+				reg = <0x30230000 0x10000>;
+				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_GPIO4_ROOT>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				gpio-ranges = <&iomuxc 0 82 32>;
+			};
+
+			gpio5: gpio@30240000 {
+				compatible = "fsl,imx8mp-gpio", "fsl,imx35-gpio";
+				reg = <0x30240000 0x10000>;
+				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_GPIO5_ROOT>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				gpio-ranges = <&iomuxc 0 114 30>;
+			};
+
+			tmu: tmu@30260000 {
+				compatible = "fsl,imx8mp-tmu";
+				reg = <0x30260000 0x10000>;
+				clocks = <&clk IMX8MP_CLK_TSENSOR_ROOT>;
+				#thermal-sensor-cells = <1>;
+			};
+
+			wdog1: watchdog@30280000 {
+				compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
+				reg = <0x30280000 0x10000>;
+				interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_WDOG1_ROOT>;
+				status = "disabled";
+			};
+
+			wdog2: watchdog@30290000 {
+				compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
+				reg = <0x30290000 0x10000>;
+				interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_WDOG2_ROOT>;
+				status = "disabled";
+			};
+
+			wdog3: watchdog@302a0000 {
+				compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
+				reg = <0x302a0000 0x10000>;
+				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_WDOG3_ROOT>;
+				status = "disabled";
+			};
+
+			iomuxc: pinctrl@30330000 {
+				compatible = "fsl,imx8mp-iomuxc";
+				reg = <0x30330000 0x10000>;
+			};
+
+			gpr: iomuxc-gpr@30340000 {
+				compatible = "fsl,imx8mp-iomuxc-gpr", "syscon";
+				reg = <0x30340000 0x10000>;
+			};
+
+			ocotp: efuse@30350000 {
+				compatible = "fsl,imx8mp-ocotp", "fsl,imx8mm-ocotp", "syscon";
+				reg = <0x30350000 0x10000>;
+				clocks = <&clk IMX8MP_CLK_OCOTP_ROOT>;
+				/* For nvmem subnodes */
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				imx8mp_uid: unique-id@420 {
+					reg = <0x8 0x8>;
+				};
+
+				cpu_speed_grade: speed-grade@10 {
+					reg = <0x10 4>;
+				};
+
+				eth_mac1: mac-address@90 {
+					reg = <0x90 6>;
+				};
+			};
+
+			anatop: anatop@30360000 {
+				compatible = "fsl,imx8mp-anatop", "fsl,imx8mm-anatop",
+					     "syscon";
+				reg = <0x30360000 0x10000>;
+			};
+
+			snvs: snvs@30370000 {
+				compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd";
+				reg = <0x30370000 0x10000>;
+
+				snvs_rtc: snvs-rtc-lp {
+					compatible = "fsl,sec-v4.0-mon-rtc-lp";
+					regmap =<&snvs>;
+					offset = <0x34>;
+					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MP_CLK_SNVS_ROOT>;
+					clock-names = "snvs-rtc";
+				};
+
+				snvs_pwrkey: snvs-powerkey {
+					compatible = "fsl,sec-v4.0-pwrkey";
+					regmap = <&snvs>;
+					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MP_CLK_SNVS_ROOT>;
+					clock-names = "snvs-pwrkey";
+					linux,keycode = <KEY_POWER>;
+					wakeup-source;
+					status = "disabled";
+				};
+			};
+
+			clk: clock-controller@30380000 {
+				compatible = "fsl,imx8mp-ccm";
+				reg = <0x30380000 0x10000>;
+				#clock-cells = <1>;
+				clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
+					 <&clk_ext3>, <&clk_ext4>;
+				clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
+					      "clk_ext3", "clk_ext4";
+				assigned-clocks = <&clk IMX8MP_CLK_A53_SRC>,
+						  <&clk IMX8MP_CLK_A53_CORE>,
+						  <&clk IMX8MP_CLK_NOC>,
+						  <&clk IMX8MP_CLK_NOC_IO>,
+						  <&clk IMX8MP_CLK_GIC>,
+						  <&clk IMX8MP_CLK_AUDIO_AHB>,
+						  <&clk IMX8MP_CLK_AUDIO_AXI_SRC>,
+						  <&clk IMX8MP_AUDIO_PLL1>,
+						  <&clk IMX8MP_AUDIO_PLL2>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+							 <&clk IMX8MP_ARM_PLL_OUT>,
+							 <&clk IMX8MP_SYS_PLL2_1000M>,
+							 <&clk IMX8MP_SYS_PLL1_800M>,
+							 <&clk IMX8MP_SYS_PLL2_500M>,
+							 <&clk IMX8MP_SYS_PLL1_800M>,
+							 <&clk IMX8MP_SYS_PLL1_800M>;
+				assigned-clock-rates = <0>, <0>,
+						       <1000000000>,
+						       <800000000>,
+						       <500000000>,
+						       <400000000>,
+						       <800000000>,
+						       <393216000>,
+						       <361267200>;
+			};
+
+			src: reset-controller@30390000 {
+				compatible = "fsl,imx8mp-src", "syscon";
+				reg = <0x30390000 0x10000>;
+				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+				#reset-cells = <1>;
+			};
+		};
+
+		aips2: bus@30400000 {
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30400000 0x400000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+
+			pwm1: pwm@30660000 {
+				compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
+				reg = <0x30660000 0x10000>;
+				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_PWM1_ROOT>,
+					 <&clk IMX8MP_CLK_PWM1_ROOT>;
+				clock-names = "ipg", "per";
+				#pwm-cells = <2>;
+				status = "disabled";
+			};
+
+			pwm2: pwm@30670000 {
+				compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
+				reg = <0x30670000 0x10000>;
+				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_PWM2_ROOT>,
+					 <&clk IMX8MP_CLK_PWM2_ROOT>;
+				clock-names = "ipg", "per";
+				#pwm-cells = <2>;
+				status = "disabled";
+			};
+
+			pwm3: pwm@30680000 {
+				compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
+				reg = <0x30680000 0x10000>;
+				interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_PWM3_ROOT>,
+					 <&clk IMX8MP_CLK_PWM3_ROOT>;
+				clock-names = "ipg", "per";
+				#pwm-cells = <2>;
+				status = "disabled";
+			};
+
+			pwm4: pwm@30690000 {
+				compatible = "fsl,imx8mp-pwm", "fsl,imx27-pwm";
+				reg = <0x30690000 0x10000>;
+				interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_PWM4_ROOT>,
+					 <&clk IMX8MP_CLK_PWM4_ROOT>;
+				clock-names = "ipg", "per";
+				#pwm-cells = <2>;
+				status = "disabled";
+			};
+
+			system_counter: timer@306a0000 {
+				compatible = "nxp,sysctr-timer";
+				reg = <0x306a0000 0x20000>;
+				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&osc_24m>;
+				clock-names = "per";
+			};
+		};
+
+		aips3: bus@30800000 {
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30800000 0x400000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+
+			ecspi1: spi@30820000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx8mp-ecspi", "fsl,imx51-ecspi";
+				reg = <0x30820000 0x10000>;
+				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_ECSPI1_ROOT>,
+					 <&clk IMX8MP_CLK_ECSPI1_ROOT>;
+				clock-names = "ipg", "per";
+				dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			ecspi2: spi@30830000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx8mp-ecspi", "fsl,imx51-ecspi";
+				reg = <0x30830000 0x10000>;
+				interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_ECSPI2_ROOT>,
+					 <&clk IMX8MP_CLK_ECSPI2_ROOT>;
+				clock-names = "ipg", "per";
+				dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			ecspi3: spi@30840000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,imx8mp-ecspi", "fsl,imx51-ecspi";
+				reg = <0x30840000 0x10000>;
+				interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_ECSPI3_ROOT>,
+					 <&clk IMX8MP_CLK_ECSPI3_ROOT>;
+				clock-names = "ipg", "per";
+				dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			uart1: serial@30860000 {
+				compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
+				reg = <0x30860000 0x10000>;
+				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_UART1_ROOT>,
+					 <&clk IMX8MP_CLK_UART1_ROOT>;
+				clock-names = "ipg", "per";
+				dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			uart3: serial@30880000 {
+				compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
+				reg = <0x30880000 0x10000>;
+				interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_UART3_ROOT>,
+					 <&clk IMX8MP_CLK_UART3_ROOT>;
+				clock-names = "ipg", "per";
+				dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			uart2: serial@30890000 {
+				compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
+				reg = <0x30890000 0x10000>;
+				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_UART2_ROOT>,
+					 <&clk IMX8MP_CLK_UART2_ROOT>;
+				clock-names = "ipg", "per";
+				status = "disabled";
+			};
+
+			flexcan1: can@308c0000 {
+				compatible = "fsl,imx8mp-flexcan";
+				reg = <0x308c0000 0x10000>;
+				interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
+					 <&clk IMX8MP_CLK_CAN1_ROOT>;
+				clock-names = "ipg", "per";
+				assigned-clocks = <&clk IMX8MP_CLK_CAN1>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>;
+				assigned-clock-rates = <40000000>;
+				fsl,clk-source = /bits/ 8 <0>;
+				fsl,stop-mode = <&gpr 0x10 4>;
+				status = "disabled";
+			};
+
+			flexcan2: can@308d0000 {
+				compatible = "fsl,imx8mp-flexcan";
+				reg = <0x308d0000 0x10000>;
+				interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
+					 <&clk IMX8MP_CLK_CAN2_ROOT>;
+				clock-names = "ipg", "per";
+				assigned-clocks = <&clk IMX8MP_CLK_CAN2>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>;
+				assigned-clock-rates = <40000000>;
+				fsl,clk-source = /bits/ 8 <0>;
+				fsl,stop-mode = <&gpr 0x10 5>;
+				status = "disabled";
+			};
+
+			crypto: crypto@30900000 {
+				compatible = "fsl,sec-v4.0";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x30900000 0x40000>;
+				ranges = <0 0x30900000 0x40000>;
+				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_AHB>,
+					 <&clk IMX8MP_CLK_IPG_ROOT>;
+				clock-names = "aclk", "ipg";
+
+				sec_jr0: jr@1000 {
+					compatible = "fsl,sec-v4.0-job-ring";
+					reg = <0x1000 0x1000>;
+					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				sec_jr1: jr@2000 {
+					compatible = "fsl,sec-v4.0-job-ring";
+					reg = <0x2000 0x1000>;
+					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				sec_jr2: jr@3000 {
+					compatible = "fsl,sec-v4.0-job-ring";
+					reg = <0x3000 0x1000>;
+					interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+				};
+			};
+
+			i2c1: i2c@30a20000 {
+				compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x30a20000 0x10000>;
+				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_I2C1_ROOT>;
+				status = "disabled";
+			};
+
+			i2c2: i2c@30a30000 {
+				compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x30a30000 0x10000>;
+				interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_I2C2_ROOT>;
+				status = "disabled";
+			};
+
+			i2c3: i2c@30a40000 {
+				compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x30a40000 0x10000>;
+				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_I2C3_ROOT>;
+				status = "disabled";
+			};
+
+			i2c4: i2c@30a50000 {
+				compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x30a50000 0x10000>;
+				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_I2C4_ROOT>;
+				status = "disabled";
+			};
+
+			uart4: serial@30a60000 {
+				compatible = "fsl,imx8mp-uart", "fsl,imx6q-uart";
+				reg = <0x30a60000 0x10000>;
+				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_UART4_ROOT>,
+					 <&clk IMX8MP_CLK_UART4_ROOT>;
+				clock-names = "ipg", "per";
+				dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			mu: mailbox@30aa0000 {
+				compatible = "fsl,imx8mp-mu", "fsl,imx6sx-mu";
+				reg = <0x30aa0000 0x10000>;
+				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_MU_ROOT>;
+				#mbox-cells = <2>;
+			};
+
+			mu2: mailbox@30e60000 {
+				compatible = "fsl,imx8mp-mu", "fsl,imx6sx-mu";
+				reg = <0x30e60000 0x10000>;
+				interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+				#mbox-cells = <2>;
+				status = "disabled";
+			};
+
+			i2c5: i2c@30ad0000 {
+				compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x30ad0000 0x10000>;
+				interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_I2C5_ROOT>;
+				status = "disabled";
+			};
+
+			i2c6: i2c@30ae0000 {
+				compatible = "fsl,imx8mp-i2c", "fsl,imx21-i2c";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0x30ae0000 0x10000>;
+				interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_I2C6_ROOT>;
+				status = "disabled";
+			};
+
+			usdhc1: mmc@30b40000 {
+				compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc";
+				reg = <0x30b40000 0x10000>;
+				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_DUMMY>,
+					 <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
+					 <&clk IMX8MP_CLK_USDHC1_ROOT>;
+				clock-names = "ipg", "ahb", "per";
+				fsl,tuning-start-tap = <20>;
+				fsl,tuning-step= <2>;
+				bus-width = <4>;
+				status = "disabled";
+			};
+
+			usdhc2: mmc@30b50000 {
+				compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc";
+				reg = <0x30b50000 0x10000>;
+				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_DUMMY>,
+					 <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
+					 <&clk IMX8MP_CLK_USDHC2_ROOT>;
+				clock-names = "ipg", "ahb", "per";
+				fsl,tuning-start-tap = <20>;
+				fsl,tuning-step= <2>;
+				bus-width = <4>;
+				status = "disabled";
+			};
+
+			usdhc3: mmc@30b60000 {
+				compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc";
+				reg = <0x30b60000 0x10000>;
+				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_DUMMY>,
+					 <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
+					 <&clk IMX8MP_CLK_USDHC3_ROOT>;
+				clock-names = "ipg", "ahb", "per";
+				fsl,tuning-start-tap = <20>;
+				fsl,tuning-step= <2>;
+				bus-width = <4>;
+				status = "disabled";
+			};
+
+			flexspi: spi@30bb0000 {
+				compatible = "nxp,imx8mp-fspi";
+				reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>;
+				reg-names = "fspi_base", "fspi_mmap";
+				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_QSPI_ROOT>,
+					 <&clk IMX8MP_CLK_QSPI_ROOT>;
+				clock-names = "fspi", "fspi_en";
+				assigned-clock-rates = <80000000>;
+				assigned-clocks = <&clk IMX8MP_CLK_QSPI>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+				status = "disabled";
+			};
+
+			sdma1: dma-controller@30bd0000 {
+				compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
+				reg = <0x30bd0000 0x10000>;
+				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_SDMA1_ROOT>,
+					 <&clk IMX8MP_CLK_AHB>;
+				clock-names = "ipg", "ahb";
+				#dma-cells = <3>;
+				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+			};
+
+			fec: ethernet@30be0000 {
+				compatible = "fsl,imx8mp-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec";
+				reg = <0x30be0000 0x10000>;
+				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MP_CLK_ENET1_ROOT>,
+					 <&clk IMX8MP_CLK_SIM_ENET_ROOT>,
+					 <&clk IMX8MP_CLK_ENET_TIMER>,
+					 <&clk IMX8MP_CLK_ENET_REF>,
+					 <&clk IMX8MP_CLK_ENET_PHY_REF>;
+				clock-names = "ipg", "ahb", "ptp",
+					      "enet_clk_ref", "enet_out";
+				assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
+						  <&clk IMX8MP_CLK_ENET_TIMER>,
+						  <&clk IMX8MP_CLK_ENET_REF>,
+						  <&clk IMX8MP_CLK_ENET_PHY_REF>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
+							 <&clk IMX8MP_SYS_PLL2_100M>,
+							 <&clk IMX8MP_SYS_PLL2_125M>,
+							 <&clk IMX8MP_SYS_PLL2_50M>;
+				assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
+				fsl,num-tx-queues = <3>;
+				fsl,num-rx-queues = <3>;
+				nvmem-cells = <&eth_mac1>;
+				nvmem-cell-names = "mac-address";
+				fsl,stop-mode = <&gpr 0x10 3>;
+				nvmem_macaddr_swap;
+				status = "disabled";
+			};
+
+			eqos: ethernet@30bf0000 {
+				compatible = "nxp,imx8mp-dwmac-eqos", "snps,dwmac-5.10a";
+				reg = <0x30bf0000 0x10000>;
+				interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-names = "eth_wake_irq", "macirq";
+				clocks = <&clk IMX8MP_CLK_ENET_QOS_ROOT>,
+					 <&clk IMX8MP_CLK_QOS_ENET_ROOT>,
+					 <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
+					 <&clk IMX8MP_CLK_ENET_QOS>;
+				clock-names = "stmmaceth", "pclk", "ptp_ref", "tx";
+				assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
+						  <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
+						  <&clk IMX8MP_CLK_ENET_QOS>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
+							 <&clk IMX8MP_SYS_PLL2_100M>,
+							 <&clk IMX8MP_SYS_PLL2_125M>;
+				assigned-clock-rates = <0>, <100000000>, <125000000>;
+				intf_mode = <&gpr 0x4>;
+				status = "disabled";
+			};
+		};
+
+		gic: interrupt-controller@38800000 {
+			compatible = "arm,gic-v3";
+			reg = <0x38800000 0x10000>,
+			      <0x38880000 0xc0000>;
+			#interrupt-cells = <3>;
+			interrupt-controller;
+			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-parent = <&gic>;
+		};
+
+		ddr-pmu@3d800000 {
+			compatible = "fsl,imx8mp-ddr-pmu", "fsl,imx8m-ddr-pmu";
+			reg = <0x3d800000 0x400000>;
+			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+		};
+
+		usb3_phy0: usb-phy@381f0040 {
+			compatible = "fsl,imx8mp-usb-phy";
+			reg = <0x381f0040 0x40>;
+			clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
+			clock-names = "phy";
+			assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
+			assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+			#phy-cells = <0>;
+			status = "disabled";
+		};
+
+		usb3_0: usb@32f10100 {
+			compatible = "fsl,imx8mp-dwc3";
+			reg = <0x32f10100 0x8>;
+			clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
+				 <&clk IMX8MP_CLK_USB_ROOT>;
+			clock-names = "hsio", "suspend";
+			interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			dma-ranges = <0x40000000 0x40000000 0xc0000000>;
+			ranges;
+			status = "disabled";
+
+			usb_dwc3_0: usb@38100000 {
+				compatible = "snps,dwc3";
+				reg = <0x38100000 0x10000>;
+				clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
+					 <&clk IMX8MP_CLK_USB_CORE_REF>,
+					 <&clk IMX8MP_CLK_USB_ROOT>;
+				clock-names = "bus_early", "ref", "suspend";
+				assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+				assigned-clock-rates = <500000000>;
+				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+				phys = <&usb3_phy0>, <&usb3_phy0>;
+				phy-names = "usb2-phy", "usb3-phy";
+				snps,dis-u2-freeclk-exists-quirk;
+			};
+
+		};
+
+		usb3_phy1: usb-phy@382f0040 {
+			compatible = "fsl,imx8mp-usb-phy";
+			reg = <0x382f0040 0x40>;
+			clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
+			clock-names = "phy";
+			assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
+			assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+			#phy-cells = <0>;
+		};
+
+		usb3_1: usb@32f10108 {
+			compatible = "fsl,imx8mp-dwc3";
+			reg = <0x32f10108 0x8>;
+			clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
+				 <&clk IMX8MP_CLK_USB_ROOT>;
+			clock-names = "hsio", "suspend";
+			interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			dma-ranges = <0x40000000 0x40000000 0xc0000000>;
+			ranges;
+			status = "disabled";
+
+			usb_dwc3_1: usb@38200000 {
+				compatible = "snps,dwc3";
+				reg = <0x38200000 0x10000>;
+				clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
+					 <&clk IMX8MP_CLK_USB_CORE_REF>,
+					 <&clk IMX8MP_CLK_USB_ROOT>;
+				clock-names = "bus_early", "ref", "suspend";
+				assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
+				assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+				assigned-clock-rates = <500000000>;
+				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+				phys = <&usb3_phy1>, <&usb3_phy1>;
+				phy-names = "usb2-phy", "usb3-phy";
+				snps,dis-u2-freeclk-exists-quirk;
+			};
+		};
+
+		dsp: dsp@3b6e8000 {
+			compatible = "fsl,imx8mp-dsp";
+			reg = <0x3b6e8000 0x88000>;
+			mbox-names = "txdb0", "txdb1",
+				"rxdb0", "rxdb1";
+			mboxes = <&mu2 2 0>, <&mu2 2 1>,
+				<&mu2 3 0>, <&mu2 3 1>;
+			memory-region = <&dsp_reserved>;
+			status = "disabled";
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-evk-hdmi.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-evk-hdmi.dts
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include "imx8mq-evk.dts"
+
+&irqsteer {
+	status = "okay";
+};
+
+&dcss {
+	status = "okay";
+	disp-dev = "hdmi_disp";
+
+	port@0 {
+		dcss_out: endpoint {
+			remote-endpoint = <&hdmi_in>;
+		};
+	};
+};
+
+&hdmi {
+	compatible = "cdn,imx8mq-hdmi";
+	lane-mapping = <0xe4>;
+	status = "okay";
+	port@1 {
+		hdmi_in: endpoint {
+			remote-endpoint = <&dcss_out>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -48,6 +48,16 @@
 		gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
 		states = <1000000 0x0
 			  900000 0x1>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	ir-receiver {
+		compatible = "gpio-ir-receiver";
+		gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ir>;
+		linux,autosuspend-period = <125>;
 	};
 
 	wm8524: audio-codec {
@@ -78,6 +88,21 @@
 			clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
 		};
 	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif1>;
+		spdif-out;
+		spdif-in;
+	};
+
+	sound-hdmi-arc {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-hdmi-arc";
+		spdif-controller = <&spdif2>;
+		spdif-in;
+	};
 };
 
 &A53_0 {
@@ -96,6 +121,33 @@
 	cpu-supply = <&buck2_reg>;
 };
 
+&ddrc {
+	operating-points-v2 = <&ddrc_opp_table>;
+
+	ddrc_opp_table: opp-table {
+		compatible = "operating-points-v2";
+
+		opp-25M {
+			opp-hz = /bits/ 64 <25000000>;
+		};
+
+		opp-100M {
+			opp-hz = /bits/ 64 <100000000>;
+		};
+
+		/*
+		 * On imx8mq B0 PLL can't be bypassed so low bus is 166M
+		 */
+		opp-166M {
+			opp-hz = /bits/ 64 <166935483>;
+		};
+
+		opp-800M {
+			opp-hz = /bits/ 64 <800000000>;
+		};
+	};
+};
+
 &fec1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_fec1>;
@@ -111,24 +163,17 @@
 		ethphy0: ethernet-phy@0 {
 			compatible = "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
+			reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <10000>;
 		};
 	};
 };
 
-&sai2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_sai2>;
-	assigned-clocks = <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, <&clk IMX8MQ_CLK_SAI2>;
-	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1>, <&clk IMX8MQ_AUDIO_PLL1_OUT>;
-	assigned-clock-rates = <0>, <24576000>;
-	status = "okay";
-};
-
 &gpio5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_wifi_reset>;
 
-	wl-reg-on {
+	wl-reg-on-hog {
 		gpio-hog;
 		gpios = <29 GPIO_ACTIVE_HIGH>;
 		output-high;
@@ -235,6 +280,7 @@
 		 <&clk IMX8MQ_CLK_PCIE1_PHY>,
 		 <&pcie0_refclk>;
 	clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+	vph-supply = <&vgen5_reg>;
 	status = "okay";
 };
 
@@ -242,10 +288,49 @@
 	power-supply = <&sw1a_reg>;
 };
 
+&qspi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_qspi>;
+	status = "okay";
+
+	n25q256a: flash@0 {
+		reg = <0>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "micron,n25q256a", "jedec,spi-nor";
+		spi-max-frequency = <29000000>;
+	};
+};
+
+&sai2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai2>;
+	assigned-clocks = <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, <&clk IMX8MQ_CLK_SAI2>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1>, <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <0>, <24576000>;
+	status = "okay";
+};
+
 &snvs_pwrkey {
 	status = "okay";
 };
 
+&spdif1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif1>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SPDIF1>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
+&spdif2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_SPDIF2>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1>;
@@ -261,21 +346,9 @@
 	status = "okay";
 };
 
-&qspi0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_qspi>;
-	status = "okay";
-
-	n25q256a: flash@0 {
-		reg = <0>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "micron,n25q256a", "jedec,spi-nor";
-		spi-max-frequency = <29000000>;
-	};
-};
-
 &usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
@@ -289,6 +362,8 @@
 };
 
 &usdhc2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
@@ -340,6 +415,12 @@
 		>;
 	};
 
+	pinctrl_ir: irgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12		0x4f
+		>;
+	};
+
 	pinctrl_pcie0: pcie0grp {
 		fsl,pins = <
 			MX8MQ_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B		0x76
@@ -359,7 +440,7 @@
 		>;
 	};
 
-	pinctrl_reg_usdhc2: regusdhc2grpgpio {
+	pinctrl_reg_usdhc2: regusdhc2gpiogrp {
 		fsl,pins = <
 			MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19		0x41
 		>;
@@ -375,6 +456,13 @@
 		>;
 	};
 
+	pinctrl_spdif1: spdif1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SPDIF_TX_SPDIF1_OUT	0xd6
+			MX8MQ_IOMUXC_SPDIF_RX_SPDIF1_IN		0xd6
+		>;
+	};
+
 	pinctrl_uart1: uart1grp {
 		fsl,pins = <
 			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts
@@ -110,6 +110,8 @@
 };
 
 &usdhc2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
 	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -421,7 +421,7 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_imu>;
 		interrupt-parent = <&gpio3>;
-		interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+		interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
 		vdd-supply = <&reg_3v3_p>;
 		vddio-supply = <&reg_3v3_p>;
 	};
@@ -743,6 +743,7 @@
 };
 
 &usb3_phy0 {
+	vbus-supply = <&reg_5v_p>;
 	status = "okay";
 };
 
@@ -780,6 +781,8 @@
 };
 
 &usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
@@ -790,6 +793,8 @@
 };
 
 &usdhc2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts
@@ -191,6 +191,8 @@
 };
 
 &usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
 	bus-width = <8>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-pe100a.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-pe100a.dts
@@ -0,0 +1,1264 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2017 NXP
+ * Copyright (C) 2017-2018 Pengutronix, Lucas Stach <kernel@pengutronix.de>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx8mq.dtsi"
+
+/ {
+	model = "ASUS PE100A";
+	compatible = "fsl,imx8mq-evk", "fsl,imx8mq";
+
+	aliases {
+		rtc0 = &snvs_rtc;
+		rtc1 = &rtc_isl1208;
+		rtc2 = &rtc_bq32k;
+	};
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x00000000 0x40000000 0 0xc0000000>;
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		rpmsg_reserved: rpmsg@0xb8000000 {
+			no-map;
+			reg = <0 0xb8000000 0 0x400000>;
+		};
+	};
+
+	pmic_osc: clock-pmic {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "pmic_osc";
+	};
+
+	can_osc: clock-can-20m {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <20000000>;
+		clock-output-names = "can_osc";
+	};
+
+	modem_reset: modem-reset {
+		compatible = "gpio-reset";
+		reset-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
+		reset-delay-us = <2000>;
+		reset-post-delay-ms = <40>;
+		#reset-cells = <0>;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		wakeup {
+			label = "wakeup gpio";
+			gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+			linux,code = <KEY_WAKEUP>;
+			gpio-key,wakeup;
+		};
+	};
+
+	ir_recv: ir-receiver {
+		compatible = "gpio-ir-receiver";
+		gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ir_recv>;
+		status = "disabled";
+	};
+
+	resmem: reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		/* global autoconfigured region for contiguous allocations */
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0 0x3c000000>;
+			alloc-ranges = <0 0x40000000 0 0x40000000>;
+			linux,cma-default;
+		};
+	};
+
+	pcie0_refclk: pcie0-refclk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <100000000>;
+	};
+
+	pcie1_refclk: pcie0-refclk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <100000000>;
+	};
+
+	vgen5_reg: vgen5 {
+		compatible = "regulator-fixed";
+		regulator-name = "pcie_vph_dummy";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_usdhc2_vmmc: regulator-vsd-3v3 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_reg_usdhc2>;
+		compatible = "regulator-fixed";
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		off-on-delay-us = <20000>;
+		enable-active-high;
+	};
+
+	bt_sco_codec: bt_sco_codec {
+		#sound-dai-cells = <1>;
+		compatible = "linux,bt-sco";
+	};
+
+	wm8524: audio-codec {
+		#sound-dai-cells = <0>;
+		compatible = "wlf,wm8524";
+		wlf,mute-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+		status = "disabled";
+	};
+
+	sound-bt-sco {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "bt-sco-audio";
+		simple-audio-card,format = "dsp_a";
+		simple-audio-card,bitclock-inversion;
+		simple-audio-card,frame-master = <&btcpu>;
+		simple-audio-card,bitclock-master = <&btcpu>;
+
+		btcpu: simple-audio-card,cpu {
+			sound-dai = <&sai3>;
+			dai-tdm-slot-num = <2>;
+			dai-tdm-slot-width = <16>;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&bt_sco_codec 1>;
+		};
+	};
+
+	sound-wm8524 {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "wm8524-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,widgets =
+			"Line", "Left Line Out Jack",
+			"Line", "Right Line Out Jack";
+		simple-audio-card,routing =
+			"Left Line Out Jack", "LINEVOUTL",
+			"Right Line Out Jack", "LINEVOUTR";
+
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&sai2>;
+			dai-tdm-slot-num = <2>;
+			dai-tdm-slot-width = <32>;
+		};
+
+		link_codec: simple-audio-card,codec {
+			sound-dai = <&wm8524>;
+			clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
+		};
+	};
+
+	sound-hdmi {
+		compatible = "fsl,imx-audio-cdnhdmi";
+		model = "imx-audio-hdmi";
+		audio-cpu = <&sai4>;
+		protocol = <1>;
+	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif1>;
+		spdif-out;
+		spdif-in;
+		status = "disabled";
+	};
+
+	sound-hdmi-arc {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-hdmi-arc";
+		spdif-controller = <&spdif2>;
+		spdif-in;
+		status = "disabled";
+	};
+
+	sound-ak4458 {
+		compatible = "fsl,imx-audio-ak4458-mq";
+		model = "ak4458-audio";
+		audio-cpu = <&sai1>;
+		audio-codec = <&ak4458_1>, <&ak4458_2>;
+		ak4458,pdn-gpio = <&gpio3 18 GPIO_ACTIVE_HIGH>;
+		status = "disabled";
+	};
+
+	sound-ak5558 {
+		compatible = "fsl,imx-audio-ak5558-mq";
+		model = "ak5558-audio";
+		audio-cpu = <&sai5>;
+		audio-codec = <&ak5558>;
+		status = "disabled";
+	};
+
+	sound-ak4497 {
+		compatible = "fsl,imx-audio-ak4497-mq";
+		model = "ak4497-audio";
+		audio-cpu = <&sai1>;
+		audio-codec = <&ak4497>;
+		status = "disabled";
+	};
+
+	platform-reset {
+		compatible = "asus,pe100a-reset";
+		reset-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&A53_0 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+	cpu-supply = <&buck2>;
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	customize-phy-led;
+	fsl,magic-packet;
+	wakeup-enable = "1";
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy@0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+			at803x,eee-disabled;
+		};
+	};
+};
+
+&sai2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai2>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "disabled";
+};
+
+&sai1 {
+	pinctrl-names = "default", "pcm_b2m", "dsd";
+	pinctrl-0 = <&pinctrl_sai1_pcm>;
+	pinctrl-1 = <&pinctrl_sai1_pcm_b2m>;
+	pinctrl-2 = <&pinctrl_sai1_dsd>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SAI1>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <49152000>;
+	clocks = <&clk IMX8MQ_CLK_SAI1_IPG>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_SAI1_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_AUDIO_PLL1_OUT>,
+		<&clk IMX8MQ_AUDIO_PLL2_OUT>;
+	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+	fsl,sai-multi-lane;
+	fsl,dataline,dsd = <0 0xff 0xff 2 0xff 0x11>;
+	dmas = <&sdma2 8 25 0>, <&sdma2 9 25 0>;
+	status = "disabled";
+};
+
+&sai3 {
+	#sound-dai-cells = <0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai3>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SAI3>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "disabled";
+};
+
+&sai4 {
+	assigned-clocks = <&clk IMX8MQ_CLK_SAI4>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	clocks = <&clk IMX8MQ_CLK_SAI4_IPG>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_SAI4_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_AUDIO_PLL1_OUT>,
+		<&clk IMX8MQ_AUDIO_PLL2_OUT>;
+	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+	status = "okay";
+};
+
+&sai5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai5>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SAI5>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <49152000>;
+	clocks = <&clk IMX8MQ_CLK_SAI5_IPG>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_SAI5_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_AUDIO_PLL1_OUT>,
+		<&clk IMX8MQ_AUDIO_PLL2_OUT>;
+	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+	fsl,sai-asynchronous;
+	status = "disabled";
+};
+
+&spdif1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif1>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SPDIF1>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, <&clk IMX8MQ_CLK_25M>,
+		<&clk IMX8MQ_CLK_SPDIF1>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_IPG_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>,
+		<&clk IMX8MQ_AUDIO_PLL1_OUT>, <&clk IMX8MQ_AUDIO_PLL2_OUT>;
+	clock-names = "core", "rxtx0", "rxtx1", "rxtx2", "rxtx3", "rxtx4",
+		      "rxtx5", "rxtx6", "rxtx7", "spba", "pll8k", "pll11k";
+	status = "disabled";
+};
+
+&spdif2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_SPDIF2>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "disabled";
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	ov5640_mipi2: ov5640_mipi2@3c {
+		compatible = "ovti,ov5640_mipi";
+		reg = <0x3c>;
+		status = "disabled";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_csi2_pwn>, <&pinctrl_csi_rst>;
+		clocks = <&clk IMX8MQ_CLK_CLKO2>;
+		clock-names = "csi_mclk";
+		assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
+		assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_200M>;
+		assigned-clock-rates = <20000000>;
+		csi_id = <1>;
+		pwn-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+		mclk = <20000000>;
+		mclk_source = <0>;
+		port {
+			ov5640_mipi2_ep: endpoint {
+			};
+		};
+	};
+
+	pmic: bd71837@4b {
+		compatible = "rohm,bd71837";
+		reg = <0x4b>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pmic>;
+		#clock-cells = <0>;
+		clocks = <&pmic_osc>;
+		clock-output-names = "pmic_clk";
+		interrupt-parent = <&gpio1>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+		rohm,reset-snvs-powered;
+
+		regulators {
+			buck1: BUCK1 {
+				regulator-name = "buck1";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+			};
+
+			buck2: BUCK2 {
+				regulator-name = "buck2";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck3: BUCK3 {
+				regulator-name = "buck3";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck4: BUCK4 {
+				regulator-name = "buck4";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck5: BUCK5 {
+				regulator-name = "buck5";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck6: BUCK6 {
+				regulator-name = "buck6";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck7: BUCK7 {
+				regulator-name = "buck7";
+				regulator-min-microvolt = <1605000>;
+				regulator-max-microvolt = <1995000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck8: BUCK8 {
+				regulator-name = "buck8";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo1: LDO1 {
+				regulator-name = "ldo1";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo2: LDO2 {
+				regulator-name = "ldo2";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo3: LDO3 {
+				regulator-name = "ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo4: LDO4 {
+				regulator-name = "ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo5: LDO5 {
+				regulator-name = "ldo5";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo6: LDO6 {
+				regulator-name = "ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo7: LDO7 {
+				regulator-name = "ldo7";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+
+	rtc_bq32k: rtc@68 {
+		compatible = "ti,bq32000";
+		reg = <0x68>;
+		status = "okay";
+	};
+
+	rtc_isl1208: rtc@6f {
+		compatible = "isil,isl1208";
+		reg = <0x6f>;
+		status = "okay";
+	};
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	synaptics_dsx_ts: synaptics_dsx_ts@20 {
+		compatible = "synaptics_dsx";
+		reg = <0x20>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_i2c1_dsi_ts_int>;
+		interrupt-parent = <&gpio5>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+		synaptics,diagonal-rotation;
+		status = "disabled";
+	};
+
+	ak4458_1: ak4458@10 {
+		compatible = "asahi-kasei,ak4458";
+		reg = <0x10>;
+	};
+
+	ak4458_2: ak4458@12 {
+		compatible = "asahi-kasei,ak4458";
+		reg = <0x12>;
+	};
+
+	ak5558: ak5558@13 {
+		compatible = "asahi-kasei,ak5558";
+		reg = <0x13>;
+		ak5558,pdn-gpio = <&gpio3 17 GPIO_ACTIVE_HIGH>;
+	};
+
+	ak4497: ak4497@11 {
+		compatible = "asahi-kasei,ak4497";
+		reg = <0x11>;
+		ak4497,pdn-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+	};
+
+	adv_bridge: adv7535@3d {
+		compatible = "adi,adv7535";
+		reg = <0x3d>;
+		adi,addr-cec = <0x3b>;
+		adi,dsi-lanes = <4>;
+		pinctrl-0 = <&pinctrl_i2c1_dsi_ts_int>;
+		interrupt-parent = <&gpio5>;
+		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+		status = "disabled";
+	};
+
+	eeprom: eeprom@50 {
+		compatible = "atmel,24c08";
+		reg = <0x50>;
+	};
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ov5640_mipi: ov5640_mipi@3c {
+		compatible = "ovti,ov5640_mipi";
+		reg = <0x3c>;
+		status = "disable";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_csi1_pwn>;
+		clocks = <&clk IMX8MQ_CLK_CLKO2>;
+		clock-names = "csi_mclk";
+		assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
+		assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_200M>;
+		assigned-clock-rates = <20000000>;
+		csi_id = <0>;
+		pwn-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+		mclk = <20000000>;
+		mclk_source = <0>;
+		port {
+			ov5640_mipi1_ep: endpoint {
+			};
+		};
+	};
+
+	it5201: tcpc@67 {
+		compatible = "ite,it5201";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_typec>;
+		reg = <0x67>;
+		interrupt-parent = <&gpio3>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+		port {
+			typec_dr_sw: endpoint {
+				remote-endpoint = <&usb3_drd_sw>;
+			};
+		};
+	};
+};
+
+&i2c4 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	status = "okay";
+};
+
+&pcie0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pcie0>;
+	clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>,
+		 <&clk IMX8MQ_CLK_PCIE1_AUX>,
+		 <&clk IMX8MQ_CLK_PCIE1_PHY>,
+		 <&pcie0_refclk>;
+	clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+	/delete-property/ assigned-clocks;
+	/delete-property/ assigned-clock-parents;
+	/delete-property/ assigned-clock-rates;
+	hard-wired = <1>;
+	vph-supply = <&vgen5_reg>;
+	status = "okay";
+};
+
+&pcie1 {
+	clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>,
+		 <&clk IMX8MQ_CLK_PCIE2_AUX>,
+		 <&clk IMX8MQ_CLK_PCIE2_PHY>,
+		 <&pcie1_refclk>;
+	clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+	/delete-property/ assigned-clocks;
+	/delete-property/ assigned-clock-parents;
+	/delete-property/ assigned-clock-rates;
+	vph-supply = <&vgen5_reg>;
+	status = "okay";
+};
+
+//&pgc_gpu {
+//	power-supply = <&buck3>;
+//};
+
+//&pgc_vpu {
+//	power-supply = <&buck4>;
+//};
+
+&snvs_pwrkey {
+	clock-names = "snvs";
+	status = "okay";
+};
+
+&qspi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_qspi>;
+	status = "okay";
+
+	flash0: n25q256a@0 {
+		reg = <0>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		spi-max-frequency = <29000000>;
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+		spi-nor,ddr-quad-read-dummy = <6>;
+	};
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	assigned-clocks = <&clk IMX8MQ_CLK_UART1>;
+	assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
+	fsl,uart-has-rtscts;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
+	assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
+	fsl,uart-has-rtscts;
+	status = "okay";
+};
+
+&uart3 { /* BT */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
+	assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
+	fsl,uart-has-rtscts;
+	resets = <&modem_reset>;
+	status = "disabled";
+};
+
+&usb3_phy0 {
+	status = "okay";
+};
+
+&usb_dwc3_0 {
+	dr_mode = "otg";
+	hnp-disable;
+	srp-disable;
+	adp-disable;
+	extcon = <&it5201>;
+	snps,dis-u1-entry-quirk;
+	snps,dis-u2-entry-quirk;
+	status = "okay";
+
+	port {
+		usb3_drd_sw: endpoint {
+			remote-endpoint = <&typec_dr_sw>;
+		};
+	};
+};
+
+&usb3_phy1 {
+	status = "okay";
+};
+
+&usb_dwc3_1 {
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+	vqmmc-supply = <&buck7>;
+	bus-width = <8>;
+	non-removable;
+	no-sd;
+	no-sdio;
+	status = "okay";
+};
+
+&usdhc2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	pinctrl_hog: hoggrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_NAND_READY_B_GPIO3_IO16		0x19
+			MX8MQ_IOMUXC_NAND_WE_B_GPIO3_IO17		0x19
+			MX8MQ_IOMUXC_NAND_WP_B_GPIO3_IO18		0x19
+			MX8MQ_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K	0x16
+			MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8		0x19 /* S_PLTRST */
+		>;
+	};
+
+	pinctrl_ir_recv: ir-recv {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12		0x4f
+		>;
+	};
+
+	pinctrl_csi1_pwn: csi1_pwn_grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3		0x19
+		>;
+	};
+	pinctrl_csi2_pwn: csi2_pwn_grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5		0x19
+		>;
+	};
+
+	pinctrl_csi_rst: csi_rst_grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6		0x19
+			MX8MQ_IOMUXC_GPIO1_IO15_CCMSRCGPCMIX_CLKO2	0x59
+		>;
+	};
+
+	pinctrl_ecspi1: ecspi1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK		0x82
+			MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI		0x82
+			MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO		0x82
+			MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5		0x19
+		>;
+	};
+
+	pinctrl_ecspi1_cs: ecspi1_cs_grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x19
+		>;
+	};
+
+	pinctrl_ecspi2: ecspi2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK		0x82
+			MX8MQ_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI		0x82
+			MX8MQ_IOMUXC_ECSPI2_MISO_ECSPI2_MISO		0x82
+			MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3		0x19
+		>;
+	};
+
+	pinctrl_ecspi2_cs: ecspi2_cs_grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ECSPI2_SS0_GPIO5_IO13		0x19
+		>;
+	};
+
+	pinctrl_can_standby: can_standby {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI1_MCLK_GPIO4_IO20		0x19
+		>;
+	};
+
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC			0x7
+			MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO		0x7
+			MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x5
+			MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x5
+			MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x5
+			MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x5
+			MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x7
+			MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x7
+			MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x7
+			MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x7
+			MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x5
+			MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x7
+			MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x7
+			MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x5
+			MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9		0x19
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL			0x4000007f
+			MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA			0x4000007f
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL			0x4000007f
+			MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA			0x4000007f
+		>;
+	};
+
+	pinctrl_i2c1_dsi_ts_int: dsi_ts_int {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ECSPI1_MOSI_GPIO5_IO7		0x19
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL			0x40000067
+			MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA			0x40000067
+		>;
+	};
+
+	pinctrl_i2c4: i2c4grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL			0x40000067
+			MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA			0x40000067
+		>;
+	};
+
+	pinctrl_pcie0: pcie0grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12		0x16 /* S_WAKE */
+		>;
+	};
+
+	pinctrl_pmic: pmicirq {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7		0x41
+		>;
+	};
+
+	pinctrl_qspi: qspigrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B	0x82
+			MX8MQ_IOMUXC_NAND_DATA00_QSPI_A_DATA0	0x82
+			MX8MQ_IOMUXC_NAND_DATA01_QSPI_A_DATA1	0x82
+			MX8MQ_IOMUXC_NAND_DATA02_QSPI_A_DATA2	0x82
+			MX8MQ_IOMUXC_NAND_DATA03_QSPI_A_DATA3	0x82
+
+		>;
+	};
+
+	pinctrl_reg_usdhc2: regusdhc2grpgpio {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19		0x41
+		>;
+	};
+
+	pinctrl_sai2: sai2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC     0xd6
+			MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK      0xd6
+			MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK        0xd6
+			MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0    0xd6
+		>;
+	};
+
+	pinctrl_sai3: sai3grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
+			MX8MQ_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
+			MX8MQ_IOMUXC_SAI3_TXD_SAI3_TX_DATA0	0xd6
+			MX8MQ_IOMUXC_SAI3_RXD_SAI3_RX_DATA0	0xd6
+		>;
+	};
+
+	pinctrl_sai1_pcm: sai1grp_pcm {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI1_MCLK_SAI1_MCLK		0xd6
+			MX8MQ_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC		0xd6
+			MX8MQ_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC		0xd6
+			MX8MQ_IOMUXC_SAI1_TXC_SAI1_TX_BCLK		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD1_SAI1_TX_DATA1		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD4_SAI1_TX_DATA4		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD5_SAI1_TX_DATA5		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD6_SAI1_TX_DATA6		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD7_SAI1_TX_DATA7		0xd6
+		>;
+	};
+
+	pinctrl_sai1_pcm_b2m: sai1grp_pcm_b2m {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI1_MCLK_SAI1_TX_BCLK		0xd6
+			MX8MQ_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC		0xd6
+			MX8MQ_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC		0xd6
+			MX8MQ_IOMUXC_SAI1_TXC_SAI1_TX_BCLK		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD1_SAI1_TX_DATA1		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD4_SAI1_TX_DATA4		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD5_SAI1_TX_DATA5		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD6_SAI1_TX_DATA6		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD7_SAI1_TX_DATA7		0xd6
+		>;
+	};
+
+	pinctrl_sai1_dsd: sai1grp_dsd {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI1_MCLK_SAI1_MCLK		0xd6
+			MX8MQ_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC		0xd6
+			MX8MQ_IOMUXC_SAI1_RXD7_SAI1_TX_DATA4		0xd6
+			MX8MQ_IOMUXC_SAI1_TXC_SAI1_TX_BCLK		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD1_SAI1_TX_DATA1		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD4_SAI1_TX_DATA4		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD5_SAI1_TX_DATA5		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD6_SAI1_TX_DATA6		0xd6
+			MX8MQ_IOMUXC_SAI1_TXD7_SAI1_TX_DATA7		0xd6
+		>;
+	};
+
+	pinctrl_sai5: sai5grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI5_MCLK_SAI5_MCLK	0xd6
+			MX8MQ_IOMUXC_SAI5_RXC_SAI5_RX_BCLK	0xd6
+			MX8MQ_IOMUXC_SAI5_RXFS_SAI5_RX_SYNC	0xd6
+			MX8MQ_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0	0xd6
+			MX8MQ_IOMUXC_SAI5_RXD1_SAI5_RX_DATA1	0xd6
+			MX8MQ_IOMUXC_SAI5_RXD2_SAI5_RX_DATA2	0xd6
+			MX8MQ_IOMUXC_SAI5_RXD3_SAI5_RX_DATA3	0xd6
+		>;
+	};
+
+	pinctrl_spdif1: spdif1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SPDIF_TX_SPDIF1_OUT	0xd6
+			MX8MQ_IOMUXC_SPDIF_RX_SPDIF1_IN		0xd6
+		>;
+	};
+
+	pinctrl_typec: typecgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0		0x19
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
+			MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX		0x49
+			MX8MQ_IOMUXC_UART3_RXD_UART1_DCE_CTS_B		0x49
+			MX8MQ_IOMUXC_UART3_TXD_UART1_DCE_RTS_B		0x49
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX		0x49
+			MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX		0x49
+			MX8MQ_IOMUXC_UART4_RXD_UART2_DCE_CTS_B		0x49
+			MX8MQ_IOMUXC_UART4_TXD_UART2_DCE_RTS_B		0x49
+		>;
+	};
+
+	pinctrl_uart3: uart3grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX		0x49
+			MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX		0x49
+			MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B	0x49
+			MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B		0x49
+			MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5			0x19
+		>;
+	};
+
+	pinctrl_usdhc1: usdhc1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x83
+			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc3
+			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc3
+			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc3
+			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc3
+			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc3
+			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc3
+			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc3
+			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc3
+			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc3
+			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x83
+			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
+		>;
+	};
+
+	pinctrl_usdhc1_100mhz: usdhc1-100grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x8d
+			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xcd
+			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xcd
+			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xcd
+			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xcd
+			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xcd
+			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xcd
+			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xcd
+			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xcd
+			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xcd
+			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x8d
+			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
+		>;
+	};
+
+	pinctrl_usdhc1_200mhz: usdhc1-200grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x9f
+			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xdf
+			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xdf
+			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xdf
+			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xdf
+			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xdf
+			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xdf
+			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xdf
+			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xdf
+			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xdf
+			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x9f
+			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x83
+			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc3
+			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc3
+			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc3
+			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc3
+			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc3
+			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2-100grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x85
+			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc5
+			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc5
+			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc5
+			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc5
+			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc5
+			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2-200grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x87
+			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc7
+			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc7
+			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc7
+			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc7
+			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc7
+			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
+		>;
+	};
+
+	pinctrl_wdog: wdog1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6
+		>;
+	};
+};
+
+&vpu {
+	status = "okay";
+};
+
+&irqsteer {
+	status = "okay";
+};
+
+&dcss {
+	status = "okay";
+
+	port@0 {
+		dcss_out: endpoint {
+			  remote-endpoint = <&hdmi_in>;
+		};
+	};
+};
+
+&hdmi {
+	compatible = "cdn,imx8mq-hdmi";
+	lane-mapping = <0xe4>;
+	init-cec-pa-from-edid;
+	status = "okay";
+	port@1 {
+		hdmi_in: endpoint {
+			remote-endpoint = <&dcss_out>;
+		};
+	};
+};
+
+&ecspi1 {
+	fsl,spi-num-chipselects = <1>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
+	cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+
+	tpi@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "tcg,tpm_tis-spi";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+		status = "okay";
+	};
+};
+
+&ecspi2 {
+	fsl,spi-num-chipselects = <1>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi2>,<&pinctrl_ecspi2_cs>,<&pinctrl_can_standby>;
+	cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+
+	can0: mcp2515@0 {
+		compatible = "microchip,mcp2515";
+		standby-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+		reg = <0>;
+		spi-max-frequency = <5000000>;
+		clocks = <&can_osc>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <3 0x2>;
+		status = "okay";
+	};
+};
+
+&cpu_thermal {
+	trips {
+		cpu-alert {
+			temperature = <95000>;
+		};
+		cpu-crit {
+			temperature = <105000>;
+		};
+	};
+};
+
+&gpu_thermal {
+	trips {
+		gpu-crit {
+			temperature = <105000>;
+		};
+	};
+};
+
+&vpu_thermal {
+	trips {
+		vpu-crit {
+			temperature = <105000>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts
@@ -0,0 +1,480 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2017-2019 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8mq.dtsi"
+
+/ {
+	model = "Google i.MX8MQ Phanbell";
+	compatible = "google,imx8mq-phanbell", "fsl,imx8mq";
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x00000000 0x40000000 0 0x40000000>;
+	};
+
+	pmic_osc: clock-pmic {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "pmic_osc";
+	};
+
+	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
+		compatible = "regulator-fixed";
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	fan: gpio-fan {
+		compatible = "gpio-fan";
+		gpio-fan,speed-map = <0 0 8600 1>;
+		gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
+		#cooling-cells = <2>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_fan>;
+		status = "okay";
+	};
+};
+
+&A53_0 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+	cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+	cpu-supply = <&buck2>;
+};
+
+&cpu_thermal {
+	trips {
+		cpu_alert0: trip0 {
+			temperature = <75000>;
+			hysteresis = <2000>;
+			type = "passive";
+		};
+
+		cpu_alert1: trip1 {
+			temperature = <80000>;
+			hysteresis = <2000>;
+			type = "passive";
+		};
+
+		cpu_crit0: trip3 {
+			temperature = <90000>;
+			hysteresis = <2000>;
+			type = "critical";
+		};
+
+		fan_toggle0: trip4 {
+			temperature = <65000>;
+			hysteresis = <10000>;
+			type = "active";
+		};
+	};
+
+	cooling-maps {
+		map0 {
+			trip = <&cpu_alert0>;
+			cooling-device =
+			<&A53_0 0 1>; /* Exclude highest OPP */
+		};
+
+		map1 {
+			trip = <&cpu_alert1>;
+			cooling-device =
+			<&A53_0 0 2>; /* Exclude two highest OPPs */
+		};
+
+		map4 {
+			trip = <&fan_toggle0>;
+			cooling-device = <&fan 0 1>;
+		};
+	};
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	pmic: pmic@4b {
+		compatible = "rohm,bd71837";
+		reg = <0x4b>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pmic>;
+		#clock-cells = <0>;
+		clocks = <&pmic_osc>;
+		clock-output-names = "pmic_clk";
+		interrupt-parent = <&gpio1>;
+		interrupts = <3 GPIO_ACTIVE_LOW>;
+
+		regulators {
+			buck1: BUCK1 {
+				regulator-name = "buck1";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <1250>;
+				rohm,dvs-run-voltage = <900000>;
+				rohm,dvs-idle-voltage = <900000>;
+				rohm,dvs-suspend-voltage = <800000>;
+			};
+
+			buck2: BUCK2 {
+				regulator-name = "buck2";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-boot-on;
+				regulator-always-on;
+				rohm,dvs-run-voltage = <1000000>;
+				rohm,dvs-idle-voltage = <900000>;
+			};
+
+			buck3: BUCK3 {
+				regulator-name = "buck3";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				rohm,dvs-run-voltage = <900000>;
+			};
+
+			buck4: BUCK4 {
+				regulator-name = "buck4";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				rohm,dvs-run-voltage = <900000>;
+			};
+
+			buck5: BUCK5 {
+				regulator-name = "buck5";
+				regulator-min-microvolt = <700000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck6: BUCK6 {
+				regulator-name = "buck6";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck7: BUCK7 {
+				regulator-name = "buck7";
+				regulator-min-microvolt = <1605000>;
+				regulator-max-microvolt = <1995000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck8: BUCK8 {
+				regulator-name = "buck8";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1400000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo1: LDO1 {
+				regulator-name = "ldo1";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo2: LDO2 {
+				regulator-name = "ldo2";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo3: LDO3 {
+				regulator-name = "ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo4: LDO4 {
+				regulator-name = "ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo5: LDO5 {
+				regulator-name = "ldo5";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo6: LDO6 {
+				regulator-name = "ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo7: LDO7 {
+				regulator-name = "ldo7";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy0>;
+	fsl,magic-packet;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		ethphy0: ethernet-phy@0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+			reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <10000>;
+			reset-deassert-us = <50000>;
+		};
+	};
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	status = "okay";
+};
+
+&usdhc1 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&usdhc2 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+	bus-width = <4>;
+	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	status = "okay";
+};
+
+&usb3_phy0 {
+	status = "okay";
+};
+
+&usb_dwc3_0 {
+	dr_mode = "otg";
+	status = "okay";
+};
+
+&usb3_phy1 {
+	status = "okay";
+};
+
+&usb_dwc3_1 {
+	dr_mode = "host";
+	status = "okay";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC			0x3
+			MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO		0x23
+			MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
+			MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
+			MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
+			MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
+			MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
+			MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
+			MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
+			MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
+			MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
+			MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
+			MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
+			MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
+			MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9		0x19
+		>;
+	};
+
+	pinctrl_gpio_fan: gpiofangrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5			0x16
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL			0x4000007f
+			MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA			0x4000007f
+		>;
+	};
+
+	pinctrl_pmic: pmicirqgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x41
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
+			MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX		0x49
+		>;
+	};
+
+	pinctrl_usdhc1: usdhc1grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x83
+			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc3
+			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc3
+			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc3
+			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc3
+			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc3
+			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc3
+			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc3
+			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc3
+			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc3
+			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x83
+			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
+		>;
+	};
+
+	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x85
+			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc5
+			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc5
+			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc5
+			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc5
+			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc5
+			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc5
+			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc5
+			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc5
+			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc5
+			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x85
+			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
+		>;
+	};
+
+	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x87
+			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc7
+			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc7
+			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc7
+			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc7
+			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc7
+			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc7
+			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc7
+			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc7
+			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc7
+			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x87
+			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12	0x41
+			MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x83
+			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc3
+			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc3
+			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc3
+			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc3
+			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc3
+			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x85
+			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc5
+			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc5
+			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc5
+			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc5
+			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc5
+			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
+		>;
+	};
+
+	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x87
+			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc7
+			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc7
+			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc7
+			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc7
+			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc7
+			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
+		>;
+	};
+
+	pinctrl_wdog: wdoggrp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
+		>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts
@@ -207,6 +207,8 @@
 };
 
 &usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
@@ -217,6 +219,8 @@
 };
 
 &usdhc2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
 	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h
@@ -130,7 +130,7 @@
 #define MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                                     0x0A4 0x30C 0x000 0x0 0x0
 #define MX8MQ_IOMUXC_SD1_CMD_GPIO2_IO1                                      0x0A4 0x30C 0x000 0x5 0x0
 #define MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0                                 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MQ_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x31  0x000 0x5 0x0
+#define MX8MQ_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x310 0x000 0x5 0x0
 #define MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1                                 0x0AC 0x314 0x000 0x0 0x0
 #define MX8MQ_IOMUXC_SD1_DATA1_GPIO2_IO3                                    0x0AC 0x314 0x000 0x5 0x0
 #define MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2                                 0x0B0 0x318 0x000 0x0 0x0
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi
@@ -170,6 +170,8 @@
 };
 
 &usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi
@@ -45,8 +45,8 @@
 	reg_12p0_main: regulator-12p0-main {
 		compatible = "regulator-fixed";
 		regulator-name = "12V_MAIN";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
+		regulator-min-microvolt = <12000000>;
+		regulator-max-microvolt = <12000000>;
 		regulator-always-on;
 	};
 
@@ -486,6 +486,8 @@
 };
 
 &usdhc1 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
+	assigned-clock-rates = <400000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
@@ -499,6 +501,8 @@
 };
 
 &usdhc2 {
+	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
+	assigned-clock-rates = <200000000>;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -20,6 +20,7 @@
 	#size-cells = <2>;
 
 	aliases {
+		ethernet0 = &fec1;
 		gpio0 = &gpio1;
 		gpio1 = &gpio2;
 		gpio2 = &gpio3;
@@ -29,6 +30,8 @@
 		i2c1 = &i2c2;
 		i2c2 = &i2c3;
 		i2c3 = &i2c4;
+		mmc0 = &usdhc1;
+		mmc1 = &usdhc2;
 		serial0 = &uart1;
 		serial1 = &uart2;
 		serial2 = &uart3;
@@ -98,6 +101,12 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MQ_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			#cooling-cells = <2>;
@@ -112,6 +121,12 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MQ_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			#cooling-cells = <2>;
@@ -124,6 +139,12 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MQ_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			#cooling-cells = <2>;
@@ -136,6 +157,12 @@
 			clock-latency = <61036>; /* two CLK32 periods */
 			clocks = <&clk IMX8MQ_CLK_ARM>;
 			enable-method = "psci";
+			i-cache-size = <0x8000>;
+			i-cache-line-size = <64>;
+			i-cache-sets = <256>;
+			d-cache-size = <0x8000>;
+			d-cache-line-size = <64>;
+			d-cache-sets = <128>;
 			next-level-cache = <&A53_L2>;
 			operating-points-v2 = <&a53_opp_table>;
 			#cooling-cells = <2>;
@@ -143,6 +170,10 @@
 
 		A53_L2: l2-cache0 {
 			compatible = "cache";
+			cache-level = <2>;
+			cache-size = <0x100000>;
+			cache-line-size = <64>;
+			cache-sets = <1024>;
 		};
 	};
 
@@ -198,7 +229,7 @@
 	};
 
 	thermal-zones {
-		cpu-thermal {
+		cpu_thermal: cpu-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <2000>;
 			thermal-sensors = <&tmu 0>;
@@ -229,7 +260,7 @@
 			};
 		};
 
-		gpu-thermal {
+		gpu_thermal: gpu-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <2000>;
 			thermal-sensors = <&tmu 1>;
@@ -243,7 +274,7 @@
 			};
 		};
 
-		vpu-thermal {
+		vpu_thermal: vpu-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <2000>;
 			thermal-sensors = <&tmu 2>;
@@ -269,18 +300,82 @@
 	};
 
 	soc@0 {
-		compatible = "simple-bus";
+		compatible = "fsl,imx8mq-soc", "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0x0 0x0 0x0 0x3e000000>;
 		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
+		nvmem-cells = <&imx8mq_uid>;
+		nvmem-cell-names = "soc_unique_id";
+
+		caam_sm: caam-sm@100000 {
+			compatible = "fsl,imx6q-caam-sm";
+			reg = <0x100000 0x8000>;
+		};
 
 		bus@30000000 { /* AIPS1 */
-			compatible = "fsl,imx8mq-aips-bus", "simple-bus";
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30000000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x30000000 0x30000000 0x400000>;
 
+			sai1: sai@30010000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai";
+				reg = <0x30010000 0x10000>;
+				interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI1_IPG>,
+				         <&clk IMX8MQ_CLK_SAI1_ROOT>,
+				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma2 8 24 0>, <&sdma1 9 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			sai6: sai@30030000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai";
+				reg = <0x30030000 0x10000>;
+				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI6_IPG>,
+				         <&clk IMX8MQ_CLK_SAI6_ROOT>,
+				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			sai5: sai@30040000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai";
+				reg = <0x30040000 0x10000>;
+				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI5_IPG>,
+				         <&clk IMX8MQ_CLK_SAI5_ROOT>,
+				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma2 2 24 0>, <&sdma2 3 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
+			sai4: sai@30050000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai";
+				reg = <0x30050000 0x10000>;
+				interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI4_IPG>,
+				         <&clk IMX8MQ_CLK_SAI4_ROOT>,
+				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma2 0 24 0>, <&sdma2 1 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			gpio1: gpio@30200000 {
 				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
 				reg = <0x30200000 0x10000>;
@@ -349,7 +444,7 @@
 			tmu: tmu@30260000 {
 				compatible = "fsl,imx8mq-tmu";
 				reg = <0x30260000 0x10000>;
-				interrupt = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MQ_CLK_TMU_ROOT>;
 				little-endian;
 				fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
@@ -434,7 +529,30 @@
 				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
 			};
 
-			iomuxc: iomuxc@30330000 {
+			lcdif: lcd-controller@30320000 {
+				compatible = "fsl,imx8mq-lcdif", "fsl,imx28-lcdif";
+				reg = <0x30320000 0x10000>;
+				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_LCDIF_PIXEL>;
+				clock-names = "pix";
+				assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>,
+						  <&clk IMX8MQ_VIDEO_PLL1_BYPASS>,
+						  <&clk IMX8MQ_CLK_LCDIF_PIXEL>,
+						  <&clk IMX8MQ_VIDEO_PLL1>;
+				assigned-clock-parents = <&clk IMX8MQ_CLK_25M>,
+						  <&clk IMX8MQ_VIDEO_PLL1>,
+						  <&clk IMX8MQ_VIDEO_PLL1_OUT>;
+				assigned-clock-rates = <0>, <0>, <0>, <594000000>;
+				status = "disabled";
+
+				port@0 {
+					lcdif_mipi_dsi: endpoint {
+						remote-endpoint = <&mipi_dsi_lcdif_in>;
+					};
+				};
+			};
+
+			iomuxc: pinctrl@30330000 {
 				compatible = "fsl,imx8mq-iomuxc";
 				reg = <0x30330000 0x10000>;
 			};
@@ -451,16 +569,24 @@
 				};
 			};
 
-			ocotp: ocotp-ctrl@30350000 {
+			ocotp: efuse@30350000 {
 				compatible = "fsl,imx8mq-ocotp", "syscon";
 				reg = <0x30350000 0x10000>;
 				clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 
+				imx8mq_uid: soc-uid@410 {
+					reg = <0x4 0x8>;
+				};
+
 				cpu_speed_grade: speed-grade@10 {
 					reg = <0x10 4>;
 				};
+
+				fec_mac_address: mac-address@90 {
+					reg = <0x90 6>;
+				};
 			};
 
 			anatop: syscon@30360000 {
@@ -487,6 +613,8 @@
 					compatible = "fsl,sec-v4.0-pwrkey";
 					regmap = <&snvs>;
 					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>;
+					clock-names = "snvs-pwrkey";
 					linux,keycode = <KEY_POWER>;
 					wakeup-source;
 					status = "disabled";
@@ -505,17 +633,40 @@
 				clock-names = "ckil", "osc_25m", "osc_27m",
 				              "clk_ext1", "clk_ext2",
 				              "clk_ext3", "clk_ext4";
+				assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>,
+						  <&clk IMX8MQ_CLK_A53_CORE>,
+						  <&clk IMX8MQ_CLK_NOC>,
+						  <&clk IMX8MQ_CLK_AUDIO_AHB>,
+						  <&clk IMX8MQ_AUDIO_PLL1_BYPASS>,
+						  <&clk IMX8MQ_AUDIO_PLL2_BYPASS>,
+						  <&clk IMX8MQ_AUDIO_PLL1>,
+						  <&clk IMX8MQ_AUDIO_PLL2>;
+				assigned-clock-rates = <0>, <0>,
+						       <800000000>,
+						       <0>,
+						       <0>,
+						       <0>,
+						       <786432000>,
+						       <722534400>;
+				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>,
+							 <&clk IMX8MQ_ARM_PLL_OUT>,
+							 <0>,
+							 <&clk IMX8MQ_SYS2_PLL_500M>,
+							 <&clk IMX8MQ_AUDIO_PLL1>,
+							 <&clk IMX8MQ_AUDIO_PLL2>;
 			};
 
 			src: reset-controller@30390000 {
 				compatible = "fsl,imx8mq-src", "syscon";
 				reg = <0x30390000 0x10000>;
+				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
 				#reset-cells = <1>;
 			};
 
 			gpc: gpc@303a0000 {
 				compatible = "fsl,imx8mq-gpc";
 				reg = <0x303a0000 0x10000>;
+				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-parent = <&gic>;
 				interrupt-controller;
 				#interrupt-cells = <3>;
@@ -577,6 +728,7 @@
 					pgc_vpu: power-domain@6 {
 						#power-domain-cells = <0>;
 						reg = <IMX8M_POWER_DOMAIN_VPU>;
+						clocks = <&clk IMX8MQ_CLK_VPU_DEC_ROOT>;
 					};
 
 					pgc_disp: power-domain@7 {
@@ -603,7 +755,8 @@
 		};
 
 		bus@30400000 { /* AIPS2 */
-			compatible = "fsl,imx8mq-aips-bus", "simple-bus";
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30400000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x30400000 0x30400000 0x400000>;
@@ -662,12 +815,37 @@
 		};
 
 		bus@30800000 { /* AIPS3 */
-			compatible = "fsl,imx8mq-aips-bus", "simple-bus";
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x30800000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x30800000 0x30800000 0x400000>,
 				 <0x08000000 0x08000000 0x10000000>;
 
+			spdif1: spdif@30810000 {
+				compatible = "fsl,imx35-spdif";
+				reg = <0x30810000 0x10000>;
+				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */
+					<&clk IMX8MQ_CLK_25M>, /* rxtx0 */
+					<&clk IMX8MQ_CLK_SPDIF1>, /* rxtx1 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */
+					<&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */
+					<&clk IMX8MQ_CLK_DUMMY>; /* spba */
+				clock-names = "core", "rxtx0",
+					      "rxtx1", "rxtx2",
+					      "rxtx3", "rxtx4",
+					      "rxtx5", "rxtx6",
+					      "rxtx7", "spba";
+				dmas = <&sdma1 8 18 0>, <&sdma1 9 18 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			ecspi1: spi@30820000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
@@ -737,6 +915,30 @@
 				status = "disabled";
 			};
 
+			spdif2: spdif@308a0000 {
+				compatible = "fsl,imx35-spdif";
+				reg = <0x308a0000 0x10000>;
+				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */
+					<&clk IMX8MQ_CLK_25M>, /* rxtx0 */
+					<&clk IMX8MQ_CLK_SPDIF2>, /* rxtx1 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */
+					<&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */
+					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */
+					<&clk IMX8MQ_CLK_DUMMY>; /* spba */
+				clock-names = "core", "rxtx0",
+					      "rxtx1", "rxtx2",
+					      "rxtx3", "rxtx4",
+					      "rxtx5", "rxtx6",
+					      "rxtx7", "spba";
+				dmas = <&sdma1 16 18 0>, <&sdma1 17 18 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			sai2: sai@308b0000 {
 				#sound-dai-cells = <0>;
 				compatible = "fsl,imx8mq-sai";
@@ -751,6 +953,20 @@
 				status = "disabled";
 			};
 
+			sai3: sai@308c0000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai";
+				reg = <0x308c0000 0x10000>;
+				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI3_IPG>,
+				         <&clk IMX8MQ_CLK_SAI3_ROOT>,
+				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			crypto: crypto@30900000 {
 				compatible = "fsl,sec-v4.0";
 				#address-cells = <1>;
@@ -781,14 +997,62 @@
 				};
 			};
 
+			mipi_dsi: mipi-dsi@30a00000 {
+				compatible = "fsl,imx8mq-nwl-dsi";
+				reg = <0x30a00000 0x300>;
+				clocks = <&clk IMX8MQ_CLK_DSI_CORE>,
+					 <&clk IMX8MQ_CLK_DSI_AHB>,
+					 <&clk IMX8MQ_CLK_DSI_IPG_DIV>,
+					 <&clk IMX8MQ_CLK_DSI_PHY_REF>,
+					 <&clk IMX8MQ_CLK_LCDIF_PIXEL>;
+				clock-names = "core", "rx_esc", "tx_esc", "phy_ref", "lcdif";
+				assigned-clocks = <&clk IMX8MQ_CLK_DSI_AHB>,
+						  <&clk IMX8MQ_CLK_DSI_CORE>,
+						  <&clk IMX8MQ_CLK_DSI_IPG_DIV>;
+				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>,
+							 <&clk IMX8MQ_SYS1_PLL_266M>;
+				assigned-clock-rates = <80000000>, <266000000>, <20000000>;
+				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+				mux-controls = <&mux 0>;
+				power-domains = <&pgc_mipi>;
+				phys = <&dphy>;
+				phy-names = "dphy";
+				resets = <&src IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N>,
+					 <&src IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N>,
+					 <&src IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N>,
+					 <&src IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N>;
+				reset-names = "byte", "dpi", "esc", "pclk";
+				status = "disabled";
+
+				ports {
+					#address-cells = <1>;
+					#size-cells = <0>;
+
+					port@0 {
+						reg = <0>;
+						#address-cells = <1>;
+						#size-cells = <0>;
+						mipi_dsi_lcdif_in: endpoint@0 {
+							reg = <0>;
+							remote-endpoint = <&lcdif_mipi_dsi>;
+						};
+					};
+				};
+			};
+
 			dphy: dphy@30a00300 {
 				compatible = "fsl,imx8mq-mipi-dphy";
 				reg = <0x30a00300 0x100>;
 				clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
 				clock-names = "phy_ref";
-				assigned-clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
-				assigned-clock-parents = <&clk IMX8MQ_VIDEO_PLL1_OUT>;
-				assigned-clock-rates = <24000000>;
+				assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>,
+						  <&clk IMX8MQ_VIDEO_PLL1_BYPASS>,
+						  <&clk IMX8MQ_CLK_DSI_PHY_REF>,
+						  <&clk IMX8MQ_VIDEO_PLL1>;
+				assigned-clock-parents = <&clk IMX8MQ_CLK_25M>,
+						  <&clk IMX8MQ_VIDEO_PLL1>,
+						  <&clk IMX8MQ_VIDEO_PLL1_OUT>;
+				assigned-clock-rates = <0>, <0>, <24000000>, <594000000>;
 				#phy-cells = <0>;
 				power-domains = <&pgc_mipi>;
 				status = "disabled";
@@ -845,6 +1109,14 @@
 				status = "disabled";
 			};
 
+			mu: mailbox@30aa0000 {
+				compatible = "fsl,imx8mq-mu", "fsl,imx6sx-mu";
+				reg = <0x30aa0000 0x10000>;
+				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_MU_ROOT>;
+				#mbox-cells = <2>;
+			};
+
 			usdhc1: mmc@30b40000 {
 				compatible = "fsl,imx8mq-usdhc",
 				             "fsl,imx7d-usdhc";
@@ -854,8 +1126,6 @@
 				         <&clk IMX8MQ_CLK_NAND_USDHC_BUS>,
 				         <&clk IMX8MQ_CLK_USDHC1_ROOT>;
 				clock-names = "ipg", "ahb", "per";
-				assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
-				assigned-clock-rates = <400000000>;
 				fsl,tuning-start-tap = <20>;
 				fsl,tuning-step = <2>;
 				bus-width = <4>;
@@ -907,7 +1177,8 @@
 				reg = <0x30be0000 0x10000>;
 				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
 				             <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
-				             <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clk IMX8MQ_CLK_ENET1_ROOT>,
 				         <&clk IMX8MQ_CLK_ENET1_ROOT>,
 				         <&clk IMX8MQ_CLK_ENET_TIMER>,
@@ -915,18 +1186,40 @@
 				         <&clk IMX8MQ_CLK_ENET_PHY_REF>;
 				clock-names = "ipg", "ahb", "ptp",
 				              "enet_clk_ref", "enet_out";
+				assigned-clocks = <&clk IMX8MQ_CLK_ENET_AXI>,
+						  <&clk IMX8MQ_CLK_ENET_TIMER>,
+						  <&clk IMX8MQ_CLK_ENET_REF>,
+						  <&clk IMX8MQ_CLK_ENET_PHY_REF>;
+				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>,
+							 <&clk IMX8MQ_SYS2_PLL_100M>,
+							 <&clk IMX8MQ_SYS2_PLL_125M>,
+							 <&clk IMX8MQ_SYS2_PLL_50M>;
+				assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
 				fsl,num-tx-queues = <3>;
 				fsl,num-rx-queues = <3>;
+				nvmem-cells = <&fec_mac_address>;
+				nvmem-cell-names = "mac-address";
+				nvmem_macaddr_swap;
+				fsl,stop-mode = <&iomuxc_gpr 0x10 3>;
 				status = "disabled";
 			};
 		};
 
 		bus@32c00000 { /* AIPS4 */
-			compatible = "fsl,imx8mq-aips-bus", "simple-bus";
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0x32c00000 0x400000>;
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x32c00000 0x32c00000 0x400000>;
 
+			hdmi: hdmi@32c00000 {
+				reg = <0x32c00000 0x100000>,
+					<0x32e40000 0x40000>;
+				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+							 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-names = "plug_in", "plug_out";
+			};
+
 			irqsteer: interrupt-controller@32e2d000 {
 				compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer";
 				reg = <0x32e2d000 0x1000>;
@@ -938,6 +1231,35 @@
 				interrupt-controller;
 				#interrupt-cells = <1>;
 			};
+
+			dcss: dcss@0x32e00000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "nxp,imx8mq-dcss";
+				reg = <0x32e00000 0x2D000>, <0x32e2f000 0x1000>;
+				interrupts = <6>, <8>, <9>, <16>, <17>;
+				interrupt-names = "ctx_ld", "ctxld_kick", "vblank",
+								  "dtrc_ch1", "dtrc_ch2";
+				interrupt-parent = <&irqsteer>;
+				clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>,
+					 <&clk IMX8MQ_CLK_DISP_AXI_ROOT>,
+					 <&clk IMX8MQ_CLK_DISP_RTRM_ROOT>,
+					 <&clk IMX8MQ_VIDEO2_PLL_OUT>,
+					 <&clk IMX8MQ_CLK_DISP_DTRC>,
+					 <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>,
+					 <&clk IMX8MQ_CLK_PHY_27MHZ>;
+				clock-names = "apb", "axi", "rtrm", "pix", "dtrc", "pll_src",
+						      "pll_phy_ref";
+				assigned-clocks = <&clk IMX8MQ_CLK_DISP_AXI>,
+						  <&clk IMX8MQ_CLK_DISP_RTRM>,
+						  <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>;
+				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>,
+							 <&clk IMX8MQ_SYS1_PLL_800M>,
+							 <&clk IMX8MQ_CLK_27M>;
+				assigned-clock-rates = <800000000>,
+							   <400000000>;
+				status = "disabled";
+			};
 		};
 
 		gpu: gpu@38000000 {
@@ -1028,6 +1350,32 @@
 			status = "disabled";
 		};
 
+		vpu: video-codec@38300000 {
+			compatible = "nxp,imx8mq-vpu";
+			reg = <0x38300000 0x10000>,
+			      <0x38310000 0x10000>,
+			      <0x38320000 0x10000>;
+			reg-names = "g1", "g2", "ctrl";
+			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "g1", "g2";
+			clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>,
+				 <&clk IMX8MQ_CLK_VPU_G2_ROOT>,
+				 <&clk IMX8MQ_CLK_VPU_DEC_ROOT>;
+			clock-names = "g1", "g2", "bus";
+			assigned-clocks = <&clk IMX8MQ_CLK_VPU_G1>,
+					  <&clk IMX8MQ_CLK_VPU_G2>,
+					  <&clk IMX8MQ_CLK_VPU_BUS>,
+					  <&clk IMX8MQ_VPU_PLL_BYPASS>;
+			assigned-clock-parents = <&clk IMX8MQ_VPU_PLL_OUT>,
+						 <&clk IMX8MQ_VPU_PLL_OUT>,
+						 <&clk IMX8MQ_SYS1_PLL_800M>,
+						 <&clk IMX8MQ_VPU_PLL>;
+			assigned-clock-rates = <600000000>, <600000000>,
+					       <800000000>, <0>;
+			power-domains = <&pgc_vpu>;
+		};
+
 		pcie0: pcie@33800000 {
 			compatible = "fsl,imx8mq-pcie";
 			reg = <0x33800000 0x400000>,
@@ -1050,11 +1398,20 @@
 			                <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
 			                <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
 			fsl,max-link-speed = <2>;
+			linux,pci-domain = <0>;
 			power-domains = <&pgc_pcie>;
 			resets = <&src IMX8MQ_RESET_PCIEPHY>,
 			         <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
 			         <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
 			reset-names = "pciephy", "apps", "turnoff";
+			assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>,
+			                  <&clk IMX8MQ_CLK_PCIE1_PHY>,
+			                  <&clk IMX8MQ_CLK_PCIE1_AUX>;
+			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
+			                         <&clk IMX8MQ_SYS2_PLL_100M>,
+			                         <&clk IMX8MQ_SYS1_PLL_80M>;
+			assigned-clock-rates = <250000000>, <100000000>,
+			                       <10000000>;
 			status = "disabled";
 		};
 
@@ -1079,11 +1436,20 @@
 					<0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
 					<0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
 			fsl,max-link-speed = <2>;
+			linux,pci-domain = <1>;
 			power-domains = <&pgc_pcie>;
 			resets = <&src IMX8MQ_RESET_PCIEPHY2>,
 			         <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
 			         <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
 			reset-names = "pciephy", "apps", "turnoff";
+			assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>,
+			                  <&clk IMX8MQ_CLK_PCIE2_PHY>,
+			                  <&clk IMX8MQ_CLK_PCIE2_AUX>;
+			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
+			                         <&clk IMX8MQ_SYS2_PLL_100M>,
+			                         <&clk IMX8MQ_SYS1_PLL_80M>;
+			assigned-clock-rates = <250000000>, <100000000>,
+			                       <10000000>;
 			status = "disabled";
 		};
 
@@ -1100,6 +1466,16 @@
 			interrupt-parent = <&gic>;
 		};
 
+		ddrc: memory-controller@3d400000 {
+			compatible = "fsl,imx8mq-ddrc", "fsl,imx8m-ddrc";
+			reg = <0x3d400000 0x400000>;
+			clock-names = "core", "pll", "alt", "apb";
+			clocks = <&clk IMX8MQ_CLK_DRAM_CORE>,
+				 <&clk IMX8MQ_DRAM_PLL_OUT>,
+				 <&clk IMX8MQ_CLK_DRAM_ALT>,
+				 <&clk IMX8MQ_CLK_DRAM_APB>;
+		};
+
 		ddr-pmu@3d800000 {
 			compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu";
 			reg = <0x3d800000 0x400000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -52,11 +52,6 @@
 			compatible = "ethernet-phy-ieee802.3-c22";
 			reg = <0>;
 		};
-
-		ethphy1: ethernet-phy@1 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <1>;
-		};
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
@@ -10,6 +10,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/pads-imx8qxp.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
 	interrupt-parent = <&gic>;
@@ -182,6 +183,11 @@
 			compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt";
 			timeout-sec = <60>;
 		};
+
+		tsens: thermal-sensor {
+			compatible = "fsl,imx8qxp-sc-thermal", "fsl,imx-sc-thermal";
+			#thermal-sensor-cells = <1>;
+		};
 	};
 
 	timer {
@@ -597,4 +603,37 @@
 			#clock-cells = <1>;
 		};
 	};
+
+	thermal_zones: thermal-zones {
+		cpu-thermal0 {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			thermal-sensors = <&tsens IMX_SC_R_SYSTEM>;
+
+			trips {
+				cpu_alert0: trip0 {
+					temperature = <107000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+
+				cpu_crit0: trip1 {
+					temperature = <127000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+
+			cooling-maps {
+				map0 {
+					trip = <&cpu_alert0>;
+					cooling-device =
+						<&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A35_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+						<&A35_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
@@ -530,6 +530,17 @@
 		status = "ok";
 		compatible = "adi,adv7533";
 		reg = <0x39>;
+		adi,dsi-lanes = <4>;
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+			};
+			port@1 {
+				reg = <1>;
+			};
+		};
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
@@ -1086,7 +1086,7 @@
 		};
 
 		watchdog0: watchdog@e8a06000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xe8a06000 0x0 0x1000>;
 			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&crg_ctrl HI3660_OSC32K>;
@@ -1094,7 +1094,7 @@
 		};
 
 		watchdog1: watchdog@e8a07000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xe8a07000 0x0 0x1000>;
 			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&crg_ctrl HI3660_OSC32K>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
@@ -516,7 +516,7 @@
 		reg = <0x39>;
 		interrupt-parent = <&gpio1>;
 		interrupts = <1 2>;
-		pd-gpio = <&gpio0 4 0>;
+		pd-gpios = <&gpio0 4 0>;
 		adi,dsi-lanes = <4>;
 		#sound-dai-cells = <0>;
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -839,7 +839,7 @@
 		};
 
 		watchdog0: watchdog@f8005000 {
-			compatible = "arm,sp805-wdt", "arm,primecell";
+			compatible = "arm,sp805", "arm,primecell";
 			reg = <0x0 0xf8005000 0x0 0x1000>;
 			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&ao_ctrl HI6220_WDT0_PCLK>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
@@ -47,10 +47,10 @@
 
 	pmu {
 		compatible = "arm,armv8-pmuv3";
-		interrupts = <0 120 8>,
-			     <0 121 8>,
-			     <0 122 8>,
-			     <0 123 8>;
+		interrupts = <0 170 4>,
+			     <0 171 4>,
+			     <0 172 4>,
+			     <0 173 4>;
 		interrupt-affinity = <&cpu0>,
 				     <&cpu1>,
 				     <&cpu2>,
@@ -82,7 +82,7 @@
 		ranges = <0 0 0 0xffffffff>;
 
 		gmac0: ethernet@ff800000 {
-			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac";
+			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.74a", "snps,dwmac";
 			reg = <0xff800000 0x2000>;
 			interrupts = <0 90 4>;
 			interrupt-names = "macirq";
@@ -97,7 +97,7 @@
 		};
 
 		gmac1: ethernet@ff802000 {
-			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac";
+			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.74a", "snps,dwmac";
 			reg = <0xff802000 0x2000>;
 			interrupts = <0 91 4>;
 			interrupt-names = "macirq";
@@ -112,7 +112,7 @@
 		};
 
 		gmac2: ethernet@ff804000 {
-			compatible = "altr,socfpga-stmmac", "snps,dwmac-3.74a", "snps,dwmac";
+			compatible = "altr,socfpga-stmmac-a10-s10", "snps,dwmac-3.74a", "snps,dwmac";
 			reg = <0xff804000 0x2000>;
 			interrupts = <0 92 4>;
 			interrupt-names = "macirq";
@@ -369,7 +369,7 @@
 		};
 
 		usb0: usb@ffb00000 {
-			compatible = "snps,dwc2";
+			compatible = "intel,socfpga-agilex-hsotg", "snps,dwc2";
 			reg = <0xffb00000 0x40000>;
 			interrupts = <0 93 4>;
 			phys = <&usbphy0>;
@@ -381,7 +381,7 @@
 		};
 
 		usb1: usb@ffb40000 {
-			compatible = "snps,dwc2";
+			compatible = "intel,socfpga-agilex-hsotg", "snps,dwc2";
 			reg = <0xffb40000 0x40000>;
 			interrupts = <0 94 4>;
 			phys = <&usbphy0>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-db.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-db.dts
@@ -128,6 +128,9 @@
 
 /* CON15(V2.0)/CON17(V1.4) : PCIe / CON15(V2.0)/CON12(V1.4) :mini-PCIe */
 &pcie0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
+	reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
@@ -19,6 +19,16 @@
 	model = "Globalscale Marvell ESPRESSOBin Board";
 	compatible = "globalscale,espressobin", "marvell,armada3720", "marvell,armada3710";
 
+	aliases {
+		ethernet0 = &eth0;
+		/* for dsa slave device */
+		ethernet1 = &switch0port1;
+		ethernet2 = &switch0port2;
+		ethernet3 = &switch0port3;
+		serial0 = &uart0;
+		serial1 = &uart1;
+	};
+
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
@@ -49,6 +59,7 @@
 	phys = <&comphy1 0>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
+	reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
 };
 
 /* J6 */
@@ -141,7 +152,7 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			port@0 {
+			switch0port0: port@0 {
 				reg = <0>;
 				label = "cpu";
 				ethernet = <&eth0>;
@@ -152,19 +163,19 @@
 				};
 			};
 
-			port@1 {
+			switch0port1: port@1 {
 				reg = <1>;
 				label = "wan";
 				phy-handle = <&switch0phy0>;
 			};
 
-			port@2 {
+			switch0port2: port@2 {
 				reg = <2>;
 				label = "lan0";
 				phy-handle = <&switch0phy1>;
 			};
 
-			port@3 {
+			switch0port3: port@3 {
 				reg = <3>;
 				label = "lan1";
 				phy-handle = <&switch0phy2>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -18,6 +18,7 @@
 
 	aliases {
 		spi0 = &spi0;
+		ethernet0 = &eth0;
 		ethernet1 = &eth1;
 	};
 
@@ -95,7 +96,7 @@
 	};
 
 	sfp: sfp {
-		compatible = "sff,sfp+";
+		compatible = "sff,sfp";
 		i2c-bus = <&i2c0>;
 		los-gpio = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
 		tx-fault-gpio = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
@@ -106,24 +107,30 @@
 		/* enabled by U-Boot if SFP module is present */
 		status = "disabled";
 	};
+
+	firmware {
+		armada-3700-rwtm {
+			compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm";
+		};
+	};
 };
 
 &i2c0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c1_pins>;
 	clock-frequency = <100000>;
+	/delete-property/ mrvl,i2c-fast-mode;
 	status = "okay";
 
+	/* MCP7940MT-I/MNY RTC */
 	rtc@6f {
 		compatible = "microchip,mcp7940x";
 		reg = <0x6f>;
+		interrupt-parent = <&gpiosb>;
+		interrupts = <5 0>; /* GPIO2_5 */
 	};
 };
 
-&pcie_reset_pins {
-	function = "gpio";
-};
-
 &pcie0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
@@ -131,6 +138,28 @@
 	max-link-speed = <2>;
 	reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
 	phys = <&comphy1 0>;
+	/*
+	 * U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
+	 * contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
+	 * 2 size cells and also expects that the second range starts at 16 MB offset. Also it
+	 * expects that first range uses same address for PCI (child) and CPU (parent) cells (so
+	 * no remapping) and that this address is the lowest from all specified ranges. If these
+	 * conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
+	 * space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
+	 * for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
+	 * This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in
+	 * U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix):
+	 * https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
+	 * https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
+	 * https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
+	 * Bug related to requirement of same child and parent addresses for first range is fixed
+	 * in U-Boot version 2022.04 by following commit:
+	 * https://source.denx.de/u-boot/u-boot/-/commit/1fd54253bca7d43d046bba4853fe5fafd034bc17
+	 */
+	#address-cells = <3>;
+	#size-cells = <2>;
+	ranges = <0x81000000 0 0xe8000000   0 0xe8000000   0 0x01000000   /* Port 0 IO */
+		  0x82000000 0 0xe9000000   0 0xe9000000   0 0x07000000>; /* Port 0 MEM */
 
 	/* enabled by U-Boot if PCIe module is present */
 	status = "disabled";
@@ -144,7 +173,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
 	phy-mode = "rgmii-id";
-	phy = <&phy1>;
+	phy-handle = <&phy1>;
 	status = "okay";
 };
 
@@ -171,6 +200,8 @@
 	marvell,pad-type = "sd";
 	vqmmc-supply = <&vsdio_reg>;
 	mmc-pwrseq = <&sdhci1_pwrseq>;
+	/* forbid SDR104 for FCC purposes */
+	sdhci-caps-mask = <0x2 0x0>;
 	status = "okay";
 };
 
@@ -200,7 +231,7 @@
 			};
 
 			partition@20000 {
-				label = "u-boot";
+				label = "a53-firmware";
 				reg = <0x20000 0x160000>;
 			};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -143,6 +143,7 @@
 	phy-mode = "sgmii";
 	status = "okay";
 	managed = "in-band-status";
+	phys = <&comphy1 0>;
 	sfp = <&sfp_eth0>;
 };
 
@@ -150,11 +151,14 @@
 	phy-mode = "sgmii";
 	status = "okay";
 	managed = "in-band-status";
+	phys = <&comphy0 1>;
 	sfp = <&sfp_eth1>;
 };
 
 &usb3 {
 	status = "okay";
+	phys = <&usb2_utmi_otg_phy>;
+	phy-names = "usb2-utmi-otg-phy";
 };
 
 &uart0 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -134,7 +134,7 @@
 
 			uart0: serial@12000 {
 				compatible = "marvell,armada-3700-uart";
-				reg = <0x12000 0x200>;
+				reg = <0x12000 0x18>;
 				clocks = <&xtalclk>;
 				interrupts =
 				<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
@@ -156,7 +156,8 @@
 			};
 
 			nb_periph_clk: nb-periph-clk@13000 {
-				compatible = "marvell,armada-3700-periph-clock-nb";
+				compatible = "marvell,armada-3700-periph-clock-nb",
+					     "syscon";
 				reg = <0x13000 0x100>;
 				clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
 				<&tbg 3>, <&xtalclk>;
@@ -317,7 +318,7 @@
 
 				pcie_reset_pins: pcie-reset-pins {
 					groups = "pcie1";
-					function = "pcie";
+					function = "gpio";
 				};
 
 				pcie_clkreq_pins: pcie-clkreq-pins {
@@ -486,8 +487,15 @@
 			#interrupt-cells = <1>;
 			msi-parent = <&pcie0>;
 			msi-controller;
-			ranges = <0x82000000 0 0xe8000000   0 0xe8000000 0 0x1000000 /* Port 0 MEM */
-				  0x81000000 0 0xe9000000   0 0xe9000000 0 0x10000>; /* Port 0 IO*/
+			/*
+			 * The 128 MiB address range [0xe8000000-0xf0000000] is
+			 * dedicated for PCIe and can be assigned to 8 windows
+			 * with size a power of two. Use one 64 KiB window for
+			 * IO at the end and the remaining seven windows
+			 * (totaling 127 MiB) for MEM.
+			 */
+			ranges = <0x82000000 0 0xe8000000   0 0xe8000000   0 0x07f00000   /* Port 0 MEM */
+				  0x81000000 0 0x00000000   0 0xefff0000   0 0x00010000>; /* Port 0 IO */
 			interrupt-map-mask = <0 0 0 7>;
 			interrupt-map = <0 0 0 1 &pcie_intc 0>,
 					<0 0 0 2 &pcie_intc 1>,
@@ -499,4 +507,12 @@
 			};
 		};
 	};
+
+	firmware {
+		armada-3700-rwtm {
+			compatible = "marvell,armada-3700-rwtm-firmware";
+			mboxes = <&rwtm 0>;
+			status = "okay";
+		};
+	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
@@ -367,6 +367,7 @@
 		pinctrl-0 = <&cp0_copper_eth_phy_reset>;
 		reset-gpios = <&cp0_gpio2 11 GPIO_ACTIVE_LOW>;
 		reset-assert-us = <10000>;
+		reset-deassert-us = <10000>;
 	};
 
 	switch0: switch0@4 {
@@ -408,6 +409,8 @@
 				reg = <5>;
 				label = "cpu";
 				ethernet = <&cp1_eth2>;
+				phy-mode = "2500base-x";
+				managed = "in-band-status";
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
@@ -71,6 +71,7 @@
 		tx-fault-gpio  = <&cp1_gpio1 26 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&cp1_sfpp0_pins>;
+		maximum-power-milliwatt = <2000>;
 	};
 
 	sfp_eth1: sfp-eth1 {
@@ -83,6 +84,7 @@
 		tx-fault-gpio = <&cp0_gpio2 30 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&cp1_sfpp1_pins &cp0_sfpp1_pins>;
+		maximum-power-milliwatt = <2000>;
 	};
 
 	sfp_eth3: sfp-eth3 {
@@ -95,6 +97,7 @@
 		tx-fault-gpio = <&cp0_gpio2 19 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&cp0_sfp_1g_pins &cp1_sfp_1g_pins>;
+		maximum-power-milliwatt = <2000>;
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
@@ -21,6 +21,7 @@
 			reg = <0x000>;
 			enable-method = "psci";
 			#cooling-cells = <2>;
+			clocks = <&cpu_clk 0>;
 		};
 		cpu1: cpu@1 {
 			device_type = "cpu";
@@ -28,6 +29,7 @@
 			reg = <0x001>;
 			enable-method = "psci";
 			#cooling-cells = <2>;
+			clocks = <&cpu_clk 0>;
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
@@ -438,10 +438,10 @@
 
 		CP110_LABEL(nand_controller): nand@720000 {
 			/*
-			* Due to the limitation of the pins available
-			* this controller is only usable on the CPM
-			* for A7K and on the CPS for A8K.
-			*/
+			 * Due to the limitation of the pins available
+			 * this controller is only usable on the CPM
+			 * for A7K and on the CPS for A8K.
+			 */
 			compatible = "marvell,armada-8k-nand-controller",
 				"marvell,armada370-nand-controller";
 			reg = <0x720000 0x54>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt2712-evb.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/mediatek/mt2712-evb.dts
@@ -26,14 +26,14 @@
 		stdout-path = "serial0:921600n8";
 	};
 
-	cpus_fixed_vproc0: fixedregulator@0 {
+	cpus_fixed_vproc0: regulator-vproc-buck0 {
 		compatible = "regulator-fixed";
 		regulator-name = "vproc_buck0";
 		regulator-min-microvolt = <1000000>;
 		regulator-max-microvolt = <1000000>;
 	};
 
-	cpus_fixed_vproc1: fixedregulator@1 {
+	cpus_fixed_vproc1: regulator-vproc-buck1 {
 		compatible = "regulator-fixed";
 		regulator-name = "vproc_buck1";
 		regulator-min-microvolt = <1000000>;
@@ -50,7 +50,7 @@
 		id-gpio = <&pio 14 GPIO_ACTIVE_HIGH>;
 	};
 
-	usb_p0_vbus: regulator@2 {
+	usb_p0_vbus: regulator-usb-p0-vbus {
 		compatible = "regulator-fixed";
 		regulator-name = "p0_vbus";
 		regulator-min-microvolt = <5000000>;
@@ -59,7 +59,7 @@
 		enable-active-high;
 	};
 
-	usb_p1_vbus: regulator@3 {
+	usb_p1_vbus: regulator-usb-p1-vbus {
 		compatible = "regulator-fixed";
 		regulator-name = "p1_vbus";
 		regulator-min-microvolt = <5000000>;
@@ -68,7 +68,7 @@
 		enable-active-high;
 	};
 
-	usb_p2_vbus: regulator@4 {
+	usb_p2_vbus: regulator-usb-p2-vbus {
 		compatible = "regulator-fixed";
 		regulator-name = "p2_vbus";
 		regulator-min-microvolt = <5000000>;
@@ -77,7 +77,7 @@
 		enable-active-high;
 	};
 
-	usb_p3_vbus: regulator@5 {
+	usb_p3_vbus: regulator-usb-p3-vbus {
 		compatible = "regulator-fixed";
 		regulator-name = "p3_vbus";
 		regulator-min-microvolt = <5000000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
@@ -160,70 +160,70 @@
 		#clock-cells = <0>;
 	};
 
-	clk26m: oscillator@0 {
+	clk26m: oscillator-26m {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <26000000>;
 		clock-output-names = "clk26m";
 	};
 
-	clk32k: oscillator@1 {
+	clk32k: oscillator-32k {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <32768>;
 		clock-output-names = "clk32k";
 	};
 
-	clkfpc: oscillator@2 {
+	clkfpc: oscillator-50m {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <50000000>;
 		clock-output-names = "clkfpc";
 	};
 
-	clkaud_ext_i_0: oscillator@3 {
+	clkaud_ext_i_0: oscillator-aud0 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <6500000>;
 		clock-output-names = "clkaud_ext_i_0";
 	};
 
-	clkaud_ext_i_1: oscillator@4 {
+	clkaud_ext_i_1: oscillator-aud1 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <196608000>;
 		clock-output-names = "clkaud_ext_i_1";
 	};
 
-	clkaud_ext_i_2: oscillator@5 {
+	clkaud_ext_i_2: oscillator-aud2 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <180633600>;
 		clock-output-names = "clkaud_ext_i_2";
 	};
 
-	clki2si0_mck_i: oscillator@6 {
+	clki2si0_mck_i: oscillator-i2s0 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <30000000>;
 		clock-output-names = "clki2si0_mck_i";
 	};
 
-	clki2si1_mck_i: oscillator@7 {
+	clki2si1_mck_i: oscillator-i2s1 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <30000000>;
 		clock-output-names = "clki2si1_mck_i";
 	};
 
-	clki2si2_mck_i: oscillator@8 {
+	clki2si2_mck_i: oscillator-i2s2 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <30000000>;
 		clock-output-names = "clki2si2_mck_i";
 	};
 
-	clktdmin_mclk_i: oscillator@9 {
+	clktdmin_mclk_i: oscillator-mclk {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <30000000>;
@@ -266,7 +266,7 @@
 		reg = <0 0x10005000 0 0x1000>;
 	};
 
-	pio: pinctrl@10005000 {
+	pio: pinctrl@1000b000 {
 		compatible = "mediatek,mt2712-pinctrl";
 		reg = <0 0x1000b000 0 0x1000>;
 		mediatek,pctl-regmap = <&syscfg_pctl_a>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt6797.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/mediatek/mt6797.dtsi
@@ -102,7 +102,7 @@
 		};
 	};
 
-	clk26m: oscillator@0 {
+	clk26m: oscillator-26m {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <26000000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
@@ -49,7 +49,7 @@
 		wps {
 			label = "wps";
 			linux,code = <KEY_WPS_BUTTON>;
-			gpios = <&pio 102 GPIO_ACTIVE_HIGH>;
+			gpios = <&pio 102 GPIO_ACTIVE_LOW>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -428,6 +428,7 @@
 	pwm: pwm@11006000 {
 		compatible = "mediatek,mt7622-pwm";
 		reg = <0 0x11006000 0 0x1000>;
+		#pwm-cells = <2>;
 		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
 		clocks = <&topckgen CLK_TOP_PWM_SEL>,
 			 <&pericfg CLK_PERI_PWM_PD>,
@@ -686,6 +687,8 @@
 		clocks = <&pericfg CLK_PERI_MSDC30_0_PD>,
 			 <&topckgen CLK_TOP_MSDC50_0_SEL>;
 		clock-names = "source", "hclk";
+		resets = <&pericfg MT7622_PERI_MSDC0_SW_RST>;
+		reset-names = "hrst";
 		status = "disabled";
 	};
 
@@ -696,6 +699,8 @@
 		clocks = <&pericfg CLK_PERI_MSDC30_1_PD>,
 			 <&topckgen CLK_TOP_AXI_SEL>;
 		clock-names = "source", "hclk";
+		resets = <&pericfg MT7622_PERI_MSDC1_SW_RST>;
+		reset-names = "hrst";
 		status = "disabled";
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -238,21 +238,21 @@
 		cpu_on	      = <0x84000003>;
 	};
 
-	clk26m: oscillator@0 {
+	clk26m: oscillator0 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <26000000>;
 		clock-output-names = "clk26m";
 	};
 
-	clk32k: oscillator@1 {
+	clk32k: oscillator1 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <32000>;
 		clock-output-names = "clk32k";
 	};
 
-	cpum_ck: oscillator@2 {
+	cpum_ck: oscillator2 {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 		clock-frequency = <0>;
@@ -268,19 +268,19 @@
 			sustainable-power = <1500>; /* milliwatts */
 
 			trips {
-				threshold: trip-point@0 {
+				threshold: trip-point0 {
 					temperature = <68000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
 
-				target: trip-point@1 {
+				target: trip-point1 {
 					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "passive";
 				};
 
-				cpu_crit: cpu_crit@0 {
+				cpu_crit: cpu_crit0 {
 					temperature = <115000>;
 					hysteresis = <2000>;
 					type = "critical";
@@ -288,13 +288,13 @@
 			};
 
 			cooling-maps {
-				map@0 {
+				map0 {
 					trip = <&target>;
 					cooling-device = <&cpu0 0 0>,
 							 <&cpu1 0 0>;
 					contribution = <3072>;
 				};
-				map@1 {
+				map1 {
 					trip = <&target>;
 					cooling-device = <&cpu2 0 0>,
 							 <&cpu3 0 0>;
@@ -308,7 +308,7 @@
 		#address-cells = <2>;
 		#size-cells = <2>;
 		ranges;
-		vpu_dma_reserved: vpu_dma_mem_region {
+		vpu_dma_reserved: vpu_dma_mem_region@b7000000 {
 			compatible = "shared-dma-pool";
 			reg = <0 0xb7000000 0 0x500000>;
 			alignment = <0x1000>;
@@ -360,7 +360,7 @@
 			reg = <0 0x10005000 0 0x1000>;
 		};
 
-		pio: pinctrl@10005000 {
+		pio: pinctrl@1000b000 {
 			compatible = "mediatek,mt8173-pinctrl";
 			reg = <0 0x1000b000 0 0x1000>;
 			mediatek,pctl-regmap = <&syscfg_pctl_a>;
@@ -567,7 +567,7 @@
 			status = "disabled";
 		};
 
-		gic: interrupt-controller@10220000 {
+		gic: interrupt-controller@10221000 {
 			compatible = "arm,gic-400";
 			#interrupt-cells = <3>;
 			interrupt-parent = <&gic>;
@@ -1137,7 +1137,7 @@
 				 <&mmsys CLK_MM_DSI1_DIGITAL>,
 				 <&mipi_tx1>;
 			clock-names = "engine", "digital", "hs";
-			phy = <&mipi_tx1>;
+			phys = <&mipi_tx1>;
 			phy-names = "dphy";
 			status = "disabled";
 		};
@@ -1397,8 +1397,8 @@
 				      "venc_lt_sel";
 			assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>,
 					  <&topckgen CLK_TOP_VENC_LT_SEL>;
-			assigned-clock-parents = <&topckgen CLK_TOP_VENCPLL_D2>,
-						 <&topckgen CLK_TOP_UNIVPLL1_D2>;
+			assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>,
+						 <&topckgen CLK_TOP_VCODECPLL_370P5>;
 		};
 
 		vencltsys: clock-controller@19000000 {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/msc/Makefile
+++ linux-ein-5.4.0/arch/arm64/boot/dts/msc/Makefile
@@ -0,0 +1,13 @@
+#
+# Copyright (C) 2020 AVNET Integrated, <avnet-integrated.eu>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation version 2.
+#
+# This program is distributed "as is" WITHOUT ANY WARRANTY of any
+# kind, whether express or implied; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+subdir-y += imx8mlc_mini
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/msc/imx8mlc_mini/Makefile
+++ linux-ein-5.4.0/arch/arm64/boot/dts/msc/imx8mlc_mini/Makefile
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2020 AVNET Integrated, <avnet-integrated.eu>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation version 2.
+#
+# This program is distributed "as is" WITHOUT ANY WARRANTY of any
+# kind, whether express or implied; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+
+dtb-$(CONFIG_ARCH_MXC) += \
+	msc-sm2s-imx8mm-04N0201I-module.dtb \
+	kdp-sm2s-imx8mm-04N0830E-module.dtb
+
+always		:= $(dtb-y)
+subdir-y	:= $(dts-dirs)
+clean-files	:= *.dtb
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/msc/imx8mlc_mini/kdp-sm2s-imx8mm-04N0830E-module.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/msc/imx8mlc_mini/kdp-sm2s-imx8mm-04N0830E-module.dts
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2020 AVNET Integrated, MSC Technologies GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include "msc-sm2s-imx8mlc-mini-module.dtsi"
+/ {
+	memory@40000000 {
+		/* 1GiB LPDDR4 */
+		reg = <0x0 0x40000000 0 0x40000000>;
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+	panel {
+		compatible = "msc,avdtt101wxcn";
+		status = "okay";
+	};
+};
+
+&resmem {
+	/* 32MiB */
+	optee_core@be000000 {
+	reg = <0x00 0xbe000000 0x00 0x1c00000>;
+	};
+
+	/* 4K */
+	optee_shm@bfc00000 {
+	reg = <0x00 0xbfc00000 0x00 0x400000>;
+	};
+};
+
+&sec_jr2 {
+    status = "disabled";
+    secure-status = "okay";
+};
+
+&fec1 {
+	status = "disabled";
+};
+
+&usbotg2 {
+	disable-over-current;
+};
+
+&mipi_dsi {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+	panel@0 {
+		reg = <0>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_lcd0_panel>;
+		compatible = "msc,avdtt101wxcn";
+		backlight = <&lcd0_backlight>;
+		enable-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
+		status = "okay";
+	};
+};
+
+
+&lcdif {
+	status = "okay";
+};
+
+
+&pwm1 {
+	status = "okay";
+};
+
+
+&lcd0_backlight {
+	status = "okay";
+};
+
+
+&gpu {
+	status = "okay";
+};
+
+
+&vpu_g1 {
+	status = "okay";
+};
+
+
+&vpu_g2 {
+	status = "okay";
+};
+
+
+&vpu_h1 {
+	status = "okay";
+};
+
+&mu {
+	status = "okay";
+};
+
+&usdhc2 {
+	non-removable;
+	status = "okay";
+};
+
+/* Delete unused device tree nodes */
+/delete-node/ &user_gpios;
+/delete-node/ &tmp103;
+
+&gpio1 {
+	wifi-enable {
+		gpio-hog;
+		gpios = <9 GPIO_ACTIVE_HIGH>;
+		output-high; /* enable by default */
+		line-name = "wifi-enable";
+	};
+	cell-modem-reset {
+		gpio-hog;
+		gpios = <7 GPIO_ACTIVE_HIGH>;
+		output-low; /* enable by default */
+		line-name = "cell-modem-reset";
+	};
+};
+
+/* Swap i2c-1 and i2c-2 */
+/ {
+	aliases {
+		i2c2 = &i2c2;
+		i2c1 = &i2c3;
+	};
+};
+
+/* ser 2 */
+&pinctrl_uart2 {
+	fsl,pins = <
+		/* SER2_RX */
+		MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX		0x49
+		/* SER2_TX */
+		MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX		0x49
+		/* SER2_RTS, !DCE-DTE-connection! */
+		MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B		0x156
+		/* SER2_CTS, !DCE-DTE-connection!*/
+		MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B		0x156
+	>;
+};
+
+&uart2{
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	uart-has-rtscts;
+	status = "okay";
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/msc/imx8mlc_mini/msc-sm2s-imx8mlc-mini-module.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/msc/imx8mlc_mini/msc-sm2s-imx8mlc-mini-module.dtsi
@@ -0,0 +1,1439 @@
+/*
+ * Copyright (C) 2020 AVNET Integrated, MSC Technologies GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+
+#include "../../freescale/imx8mm.dtsi"
+#include <dt-bindings/reset/imx8mm-dispmix.h>
+#include <dt-bindings/net/ti-dp83867.h>
+
+/delete-node/ &gpu_3d;
+/delete-node/ &gpu_2d;
+
+&aips1 {
+	irq_sec_vio: caam_secvio {
+		compatible = "fsl,imx6q-caam-secvio";
+		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+		jtag-tamper = "disabled";
+		watchdog-tamper = "enabled";
+		internal-boot-tamper = "enabled";
+		external-pin-tamper = "disabled";
+	};
+
+	caam_snvs: caam-snvs@30370000 {
+		compatible = "fsl,imx6q-caam-snvs";
+		reg = <0x30370000 0x10000>;
+		clocks = <&clk IMX8MM_CLK_SNVS_ROOT>;
+		clock-names = "ipg";
+	};
+};
+
+&aips4 {
+	lcdif: lcdif@32e00000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "fsl,imx8mm-lcdif";
+		reg = <0x32e00000 0x10000>;
+		clocks = <&clk IMX8MM_CLK_LCDIF_PIXEL>,
+			 <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
+			 <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+		clock-names = "pix", "disp-axi", "disp-apb";
+		assigned-clocks = <&clk IMX8MM_CLK_LCDIF_PIXEL>,
+				  <&clk IMX8MM_CLK_DISP_AXI>,
+				  <&clk IMX8MM_CLK_DISP_APB>;
+		assigned-clock-parents = <&clk IMX8MM_VIDEO_PLL1_OUT>,
+					 <&clk IMX8MM_SYS_PLL2_1000M>,
+					 <&clk IMX8MM_SYS_PLL1_800M>;
+		assigned-clock-rate = <594000000>, <500000000>, <200000000>;
+		interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+		lcdif-gpr = <&dispmix_gpr>;
+		resets = <&lcdif_resets>;
+		power-domains = <&dispmix_pd>;
+		status = "disabled";
+
+		lcdif_disp0: port@0 {
+			reg = <0>;
+
+			lcdif_to_dsim: endpoint {
+				remote-endpoint = <&dsim_from_lcdif>;
+			};
+		};
+	};
+
+	mipi_dsi: mipi_dsi@32e10000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "fsl,imx8mm-mipi-dsim";
+		reg = <0x32e10000 0x400>;
+		clocks = <&clk IMX8MM_CLK_DSI_CORE>,
+			 <&clk IMX8MM_CLK_DSI_PHY_REF>;
+		clock-names = "cfg", "pll-ref";
+		assigned-clocks = <&clk IMX8MM_CLK_DSI_CORE>,
+				  <&clk IMX8MM_CLK_DSI_PHY_REF>;
+		assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
+					 <&clk IMX8MM_CLK_24M>;
+		assigned-clock-rates = <266000000>, <12000000>;
+		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+		dsi-gpr = <&dispmix_gpr>;
+		resets = <&mipi_dsi_resets>;
+		power-domains = <&mipi_pd>;
+		status = "disabled";
+
+		port@0 {
+			dsim_from_lcdif: endpoint {
+				remote-endpoint = <&lcdif_to_dsim>;
+			};
+		};
+	};
+
+	csi1_bridge: csi1_bridge@32e20000 {
+		compatible = "fsl,imx8mm-csi", "fsl,imx8mq-csi", "fsl,imx6s-csi";
+		reg = <0x32e20000 0x1000>;
+		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
+			<&clk IMX8MM_CLK_CSI1_ROOT>,
+			<&clk IMX8MM_CLK_DISP_APB_ROOT>;
+		clock-names = "disp-axi", "csi_mclk", "disp_dcic";
+		power-domains = <&dispmix_pd>;
+		status = "disabled";
+	};
+
+	mipi_csi_1: mipi_csi@32e30000 {
+		compatible = "fsl,imx8mm-mipi-csi";
+		reg = <0x32e30000 0x1000>;
+		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+		clock-frequency = <333000000>;
+		clocks = <&clk IMX8MM_CLK_CSI1_CORE>,
+			<&clk IMX8MM_CLK_CSI1_PHY_REF>,
+			<&clk IMX8MM_CLK_DISP_AXI_ROOT>,
+			<&clk IMX8MM_CLK_DISP_APB_ROOT>;
+		clock-names = "mipi_clk", "phy_clk", "disp_axi", "disp_apb";
+		bus-width = <4>;
+		power-domains = <&mipi_pd>;
+		status = "disabled";
+	};
+
+	dispmix_gpr: display-gpr@32e28000 {
+		compatible = "fsl, imx8mm-iomuxc-gpr", "syscon";
+		reg = <0x32e28000 0x100>;
+	};
+
+	display-subsystem {
+		compatible = "fsl,imx-display-subsystem";
+		ports = <&lcdif_disp0>;
+	};
+
+	pcie_phy: pcie-phy@32f00000 {
+		compatible = "fsl,imx7d-pcie-phy";
+		reg = <0x32f00000 0x10000>;
+	};
+};
+
+&A53_0 {
+	cpu-supply = <&vcc_arm>;
+};
+
+&A53_1 {
+	cpu-supply = <&vcc_arm>;
+};
+
+&A53_2 {
+	cpu-supply = <&vcc_arm>;
+};
+
+&A53_3 {
+	cpu-supply = <&vcc_arm>;
+};
+
+&iomuxc {
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>, <&pinctrl_smarc_gpio>;
+
+	sm2s-imx8mm {
+
+		pinctrl_smarc_gpio: smarcgrp-gpio {
+			fsl,pins = <
+				/* GPIO 0, linux-gpio-id=0  */
+				MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0			0x40000019
+				/* GPIO 1, linux-gpio-id=1  */
+				MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1			0x40000019
+				/* GPIO 2, linux-gpio-id=3  */
+				MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3			0x40000019
+				/* GPIO 3, linux-gpio-id=5, no SION because of M4_NMI */
+				MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5			0x19
+				/* GPIO 4, linux-gpio-id=6 */
+				MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6			0x40000019
+				/* GPIO 5, linux-gpio-id=130 */
+				MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2			0x40000019
+				/* GPIO 6, linux-gpio-id=129 */
+				MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1				0x40000019
+				/* GPIO 7, linux-gpio-id=118 */
+				MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22			0x40000019
+				/* GPIO 8, linux-gpio-id=89 */
+				MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25			0x40000019
+				/* GPIO 9, linux-gpio-id=124 */
+				MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28			0x40000019
+				/* GPIO 10, linux-gpio-id=9 */
+				MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9			0x40000019
+				/* GPIO 11, linux-gpio-id=7 */
+				MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7			0x40000019
+			>;
+		};
+
+		pinctrl_hog: hoggrp {
+			fsl,pins = <
+				/* CHARGER_PRSNT */
+				MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7			0x19
+				/* CHARGING, linux-gpio-id=84 */
+				MX8MM_IOMUXC_SD1_DATA3_GPIO2_IO5			0x19
+				/* CHARGER_PRSNT linux-gpio-id=38 */
+				MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6			0x19
+				/* PERI_RST, linux-gpio-id=123 */
+				MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27			0x19
+				/* SLEEP, linux-gpio-id=117 */
+				MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21			0x40000019
+				/* BOOT_SEL0, linux-gpio-id=34 */
+				MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2			0x40000019
+				/* BOOT_SEL1, linux-gpio-id=35 */
+				MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3			0x40000019
+				/* BOOT_SEL2, linux-gpio-id=36 */
+				MX8MM_IOMUXC_SD1_DATA2_GPIO2_IO4			0x40000019
+			>;
+		};
+
+		pinctrl_fec1: fec1grp {
+			fsl,pins = <
+				/* GBE_MDIO_CLK */
+				MX8MM_IOMUXC_ENET_MDC_ENET1_MDC				0x3
+				/* GBE_MDIO_DATA */
+				MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO			0x3
+				/* RGMII_TXEN */
+				MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
+				/* RGMII_TCLK */
+				MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
+				/* RGMII_TXD0 */
+				MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
+				/* RGMII_TXD1 */
+				MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
+				/* RGMII_TXD2 */
+				MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
+				/* RGMII_TXD3 */
+				MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
+				/* RGMII_RCNT */
+				MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
+				/* RGMII_RCLK */
+				MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
+				/* RGMII_RXD0 */
+				MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
+				/* RGMII_RXD1 */
+				MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
+				/* RGMII_RXD2 */
+				MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
+				/* RGMII_RXD3 */
+				MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
+				/* GBE_INT */
+				MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20			0x40000019
+				/* GBE0_GPIO_0 */
+				MX8MM_IOMUXC_GPIO1_IO08_ENET1_1588_EVENT0_IN	0x19
+			>;
+		};
+
+		/* I2C_DEV */
+		pinctrl_i2c1: i2c1grp {
+			fsl,pins = <
+				/* I2C_DEV_SCL */
+				MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL			0x400001c3
+				/* I2C_DEV_SDA */
+				MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA			0x400001c3
+			>;
+
+		};
+
+		/* I2C_PM */
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				/* I2C_PM_SCL */
+				MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL			0x400001c3
+				/* I2C_PM_SDA */
+				MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA			0x400001c3
+			>;
+		};
+
+		/* I2C_GP */
+		pinctrl_i2c3: i2c3grp {
+			fsl,pins = <
+				/* I2C_GP_SCL */
+				MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL			0x400001c3
+				/* I2C_GP_SDA */
+				MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA			0x400001c3
+			>;
+		};
+
+		/* I2C_LCD */
+		pinctrl_i2c4: i2c4grp {
+			fsl,pins = <
+				/* I2C_LCD_SCL */
+				MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL			0x400001c3
+				/* I2C_LCD_SDA */
+				MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA			0x400001c3
+			>;
+		};
+
+		/* I2C_CAM */
+		pinctrl_i2c_cam: i2ccamgrp {
+			fsl,pins = <
+				/* I2C_CAM_SCL, linux-gpio-id=152 */
+				MX8MM_IOMUXC_UART2_RXD_GPIO5_IO24		0x40000116
+				/* I2C_CAM_SDA, linux-gpio-id=153 */
+				MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25		0x40000116
+			>;
+		};
+
+		/* ser 0 */
+		pinctrl_uart1: uart1grp {
+			fsl,pins = <
+				/* SER0_RX */
+				MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
+				/* SER0_TX */
+				MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX		0x49
+				/* SER0_RTS, linux-gpio-id=120 */
+				MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24		0x116
+				/* SER0_CTS, linux-gpio-id=119 */
+				MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23		0x116
+			>;
+		};
+
+		/* ser 2 */
+		pinctrl_uart2: uart2grp {
+			fsl,pins = <
+				/* SER2_RX */
+				MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX		0x49
+				/* SER2_TX */
+				MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX		0x49
+				/* SER2_RTS, linux-gpio-id=126 */
+				MX8MM_IOMUXC_SAI3_RXD_GPIO4_IO30		0x116
+				/* SER2_CTS, linux-gpio-id=125 */
+				MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29		0x116
+			>;
+		};
+
+		/* ser 1 */
+		pinctrl_uart3: uart3grp {
+			fsl,pins = <
+				/* SER1_RX */
+				MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX		0x49
+				/* SER1_TX */
+				MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX		0x49
+			>;
+		};
+
+		/* ser 3 */
+		pinctrl_uart4: uart4grp {
+			fsl,pins = <
+				/* SER3_RX */
+				MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX		0x49
+				/* SER3_TX */
+				MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX		0x49
+			>;
+		};
+
+		pinctrl_usdhc2_gpio: usdhc2grp-gpio {
+			fsl,pins = <
+				/* SD2_RESET_B, linux-gpio-id=51 */
+				MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19		0x41
+				/* SD2_CD_B, SDIO_CD, linux-gpio-id=44 */
+				MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12		0x41
+				/* SD2_WP, SDIO_WP, linux-gpio-id=52 */
+				MX8MM_IOMUXC_SD2_WP_GPIO2_IO20			0x41
+				/* SDIO_PWR_EN, linux-gpio-id=78 */
+				MX8MM_IOMUXC_NAND_DQS_GPIO3_IO14		0x41
+				/* USDHC2_VSELECT */
+				MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
+			>;
+		};
+
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				/* SD2_CLK, SDIO_CK */
+				MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK			0x190
+				/* SD2_CMD, SDIO_CMD */
+				MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD			0x1d0
+				/* SD2_DATA0, SDIO_DATA0 */
+				MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0		0x1d0
+				/* SD2_DATA1, SDIO_DATA1 */
+				MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1		0x1d0
+				/* SD2_DATA2, SDIO_DATA2 */
+				MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2		0x1d0
+				/* SD2_DATA3, SDIO_DATA3 */
+				MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3		0x1d0
+			>;
+		};
+
+		pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
+			fsl,pins = <
+				/* SD2_CLK, SDIO_CK */
+				MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK			0x194
+				/* SD2_CMD, SDIO_CMD */
+				MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD			0x1d4
+				/* SD2_DATA0, SDIO_DATA0 */
+				MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0		0x1d4
+				/* SD2_DATA1, SDIO_DATA1 */
+				MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1		0x1d4
+				/* SD2_DATA2, SDIO_DATA2 */
+				MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2		0x1d4
+				/* SD2_DATA3, SDIO_DATA3 */
+				MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3		0x1d4
+			>;
+		};
+
+		pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
+			fsl,pins = <
+				/* SD2_CLK, SDIO_CK */
+				MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK			0x196
+				/* SD2_CMD, SDIO_CMD */
+				MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD			0x1d6
+				/* SD2_DATA0, SDIO_DATA0 */
+				MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0		0x1d6
+				/* SD2_DATA1, SDIO_DATA1 */
+				MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1		0x1d6
+				/* SD2_DATA2, SDIO_DATA2 */
+				MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2		0x1d6
+				/* SD2_DATA3, SDIO_DATA3 */
+				MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3		0x1d6
+			>;
+		};
+
+		pinctrl_usdhc3_reset: usdhc3grp-reset {
+			fsl,pins = <
+				/* SD3_RESET_B, EMMC_RST */
+				MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16	0x116
+			>;
+		};
+
+		pinctrl_usdhc3: usdhc3grp {
+			fsl,pins = <
+				/* SD3_CLK, EMMC_CK */
+				MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK			0x40000190
+				/* SD3_CMD, EMMC_CMD */
+				MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD			0x1d0
+				/* SD3_DATA0, EMMC_DATA0 */
+				MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d0
+				/* SD3_DATA1, EMMC_DATA1 */
+				MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d0
+				/* SD3_DATA2, EMMC_DATA2 */
+				MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d0
+				/* SD3_DATA3, EMMC_DATA3 */
+				MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d0
+				/* SD3_DATA4, EMMC_DATA4 */
+				MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4			0x1d0
+				/* SD3_DATA5, EMMC_DATA5 */
+				MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d0
+				/* SD3_DATA6, EMMC_DATA6 */
+				MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d0
+				/* SD3_DATA7, EMMC_DATA7 */
+				MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7			0x1d0
+				/* SD3_STROBE, EMMC_STRB */
+				MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x190
+			>;
+		};
+
+		pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
+			fsl,pins = <
+				/* SD3_CLK, EMMC_CK */
+				MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK			0x40000194
+				/* SD3_CMD, EMMC_CMD */
+				MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD			0x1d4
+				/* SD3_DATA0, EMMC_DATA0 */
+				MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d4
+				/* SD3_DATA1, EMMC_DATA1 */
+				MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d4
+				/* SD3_DATA2, EMMC_DATA2 */
+				MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d4
+				/* SD3_DATA3, EMMC_DATA3 */
+				MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d4
+				/* SD3_DATA4, EMMC_DATA4 */
+				MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4			0x1d4
+				/* SD3_DATA5, EMMC_DATA5 */
+				MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d4
+				/* SD3_DATA6, EMMC_DATA6 */
+				MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d4
+				/* SD3_DATA7, EMMC_DATA7 */
+				MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7			0x1d4
+				/* SD3_STROBE, EMMC_STRB */
+				MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x194
+			>;
+		};
+
+		pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
+			fsl,pins = <
+				/* SD3_CLK, EMMC_CK */
+				MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK			0x40000196
+				/* SD3_CMD, EMMC_CMD */
+				MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD			0x1d6
+				/* SD3_DATA0, EMMC_DATA0 */
+				MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d6
+				/* SD3_DATA1, EMMC_DATA1 */
+				MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d6
+				/* SD3_DATA2, EMMC_DATA2 */
+				MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d6
+				/* SD3_DATA3, EMMC_DATA3 */
+				MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d6
+				/* SD3_DATA4, EMMC_DATA4 */
+				MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4			0x1d6
+				/* SD3_DATA5, EMMC_DATA5 */
+				MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d6
+				/* SD3_DATA6, EMMC_DATA6 */
+				MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d6
+				/* SD3_DATA7, EMMC_DATA7 */
+				MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7			0x1d6
+				/* SD3_STROBE, EMMC_STRB */
+				MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x196
+			>;
+		};
+
+		pinctrl_flexspi: flexspi0grp {
+			fsl,pins = <
+				/* QSPI_CK */
+				MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK		0x1c6
+				/* QSPI_CS0# */
+				MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B	0x86
+				/* QSPI_DATA0 */
+				MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0	0x86
+				/* QSPI_DATA1 */
+				MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1	0x86
+				/* QSPI_DATA2 */
+				MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2	0x86
+				/* QSPI_DATA3 */
+				MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3	0x86
+			>;
+		};
+
+		pinctrl_ecspi1: ecspi1grp {
+			fsl,pins = <
+				/* SPI0_CK */
+				MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK	0x82
+				/* SPI0_MOSI */
+				MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI	0x82
+				/* SPI0_MISO */
+				MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO	0x82
+			>;
+		};
+
+		pinctrl_ecspi1_cs: ecspi1grp-cs {
+			fsl,pins = <
+				/* SPI0_CS0, linux-gpio-id=137 */
+				MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x19
+				/* SPI0_CS1, linux-gpio-id=121 */
+				MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25		0x19
+			>;
+		};
+
+		pinctrl_ecspi2: ecspi2grp {
+			fsl,pins = <
+				/* SPI1_CK */
+				MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK	0x82
+				/* SPI1_MOSI */
+				MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI	0x82
+				/* SPI1_MISO */
+				MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO	0x82
+			>;
+		};
+
+		pinctrl_ecspi2_cs: ecspi2grp-cs {
+			fsl,pins = <
+				/* SPI1_CS0, linux-gpio-id=141 */
+				MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13		0x19
+				/* SPI1_CS1, linux-gpio-id=122 */
+				MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26		0x19
+			>;
+		};
+
+		pinctrl_sai1: sai1grp {
+			fsl,pins = <
+				/* I2S2_LRCK */
+				MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC		0xd6
+				/* I2S2_SDIN */
+				MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATA0	0xd6
+				/* I2S2_CK */
+				MX8MM_IOMUXC_SAI1_TXC_SAI1_TX_BCLK		0xd6
+				/* I2S2_SDOUT */
+				MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0	0xd6
+			>;
+		};
+
+		pinctrl_sai5: sai5grp {
+			fsl,pins = <
+				/* I2S0_LRCK */
+				MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC		0xd6
+				/* I2S0_SDIN */
+				MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0	0xd6
+				/* I2S0_CK */
+				MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK		0xd6
+				/* I2S0_SDOUT */
+				MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0	0xd6
+			>;
+		};
+
+		pinctrl_pwm1: pwm1grp {
+			fsl,pins = <
+				/* LCD0_BKLT_PWM */
+				MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT		0x19
+			>;
+		};
+
+		pinctrl_rtc1: rtc1grp {
+			fsl,pins = <
+				/* RTC_INT, linux-gpio-id=83 */
+				MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19		0x40000019
+			>;
+		};
+
+		pinctrl_wdog1: wdog1grp {
+			fsl,pins = <
+				/* WDOG1, WDT_TIME_OUT */
+				MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6
+			>;
+		};
+
+		pinctrl_can: cangrp {
+			fsl,pins = <
+				/* CAN_RESET, linux-gpio-id=104 */
+				MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8		0x19
+				/* CAN_INT, linux-gpio-id=102 */
+				MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6		0x40000019
+			>;
+		};
+
+		pinctrl_pcie: pciegrp {
+			fsl,pins = <
+				/* PCIE_A_RST, linux-gpio-id=69 */
+				MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10			0x19
+				/* PCIE_WAKE, linux-gpio-id=79 */
+				MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11		0x40000019
+			>;
+		};
+
+		pinctrl_lcd0_backlight: lcd0grp-backlight {
+			fsl,pins = <
+				/* LCD0_BKLT_EN, linux-gpio-id=132 */
+				MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4				0x19
+			>;
+		};
+
+		pinctrl_lcd0_panel: lcd0grp-panel {
+			fsl,pins = <
+				/* LCD0_VDD_EN, linux-gpio-id=131 */
+				MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3				0x19
+			>;
+		};
+
+		/* usb otg 0 */
+		pinctrl_usbotg1: usbotg1grp {
+			fsl,pins = <
+				/* USB0_OTG_EN */
+				MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x19
+				/* USB0_OTG_OC */
+				MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC		0x40000019
+			>;
+		};
+
+		/* usb 1 */
+		pinctrl_usbotg2: usbotg2grp {
+			fsl,pins = <
+				/* USB1_PWR_EN */
+				MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14		0x19
+				/* USB1_OC */
+				MX8MM_IOMUXC_GPIO1_IO15_USB2_OTG_OC		0x40000019
+			>;
+		};
+
+		pinctrl_usbotg1_extcon: usbotg1extcongrp {
+			fsl,pins = <
+				/* USB0_OTG_ID */
+				MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x40000019
+			>;
+		};
+	};
+};
+
+/ {
+	model = "MSC SM2S-IMX8MM";
+	compatible = "msc,sm2s-imx8mm", "fsl,imx8mm";
+
+	chosen {
+		bootargs = "console=ttymxc0,115200 earlycon=ec_imx6q,0x30860000,115200";
+		stdout-path = &uart1;
+	};
+
+	soc@0 {
+		caam_sm: caam-sm@100000 {
+			compatible = "fsl,imx6q-caam-sm";
+			reg = <0x100000 0x8000>;
+		};
+
+		pcie0_ep: pcie_ep@33800000 {
+			compatible = "fsl,imx8mm-pcie-ep";
+			reg = <0x33800000 0x000400000>,
+		    	  <0x18000000 0x08000000>;
+			reg-names = "regs", "addr_space";
+			num-lanes = <1>;
+			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* eDMA */
+			interrupt-names = "dma";
+			fsl,max-link-speed = <2>;
+			power-domains = <&pcie_pd>;
+			resets = <&src IMX8MQ_RESET_PCIEPHY>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_CLK_REQ>,
+				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
+			reset-names = "pciephy", "apps", "clkreq", "turnoff";
+			fsl,imx7d-pcie-phy = <&pcie_phy>;
+			num-ib-windows = <4>;
+			num-ob-windows = <4>;
+			status = "disabled";
+		};
+	};
+
+	dispmix-reset {
+		compatible = "simple-bus";
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		dispmix_sft_rstn: dispmix-sft-rstn@32e28000 {
+			compatible = "fsl,imx8mm-dispmix-sft-rstn";
+			reg = <0x0 0x32e28000 0x0 0x4>;
+			clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+			clock-names = "disp_apb_root_clk";
+			active_low;
+			power-domains = <&dispmix_pd>;
+			#reset-cells = <1>;
+		};
+
+		dispmix_clk_en: dispmix-clk-en@32e28004 {
+			compatible = "fsl,imx8mm-dispmix-clk-en";
+			reg = <0x0 0x32e28004 0x0 0x4>;
+			clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+			clock-names = "disp_apb_root_clk";
+			power-domains = <&dispmix_pd>;
+			#reset-cells = <1>;
+		};
+
+		dispmix_mipi_rst: dispmix-mipi-rst@32e28008 {
+			compatible = "fsl,imx8mm-dispmix-mipi-rst";
+			reg = <0x0 0x32e28008 0x0 0x4>;
+			clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+			clock-names = "disp_apb_root_clk";
+			active_low;
+			power-domains = <&dispmix_pd>;
+			#reset-cells = <1>;
+		};
+	};
+
+	gpu: gpu@38000000 {
+		compatible ="fsl,imx8mm-gpu", "fsl,imx6q-gpu";
+		reg = <0x0 0x38000000 0x0 0x8000>, <0x0 0x38008000 0x0 0x8000>,
+			<0x0 0x40000000 0x0 0x80000000>, <0x0 0x0 0x0 0x8000000>;
+		reg-names = "iobase_3d", "iobase_2d",
+			"phys_baseaddr", "contiguous_mem";
+		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+			<GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "irq_3d", "irq_2d";
+		clocks = <&clk IMX8MM_CLK_GPU3D_ROOT>,
+			<&clk IMX8MM_CLK_DUMMY>,
+			<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+			<&clk IMX8MM_CLK_GPU_AHB>,
+			<&clk IMX8MM_CLK_GPU2D_ROOT>,
+			<&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+			<&clk IMX8MM_CLK_GPU_AHB>;
+		clock-names = "gpu3d_clk", "gpu3d_shader_clk",
+			  "gpu3d_axi_clk", "gpu3d_ahb_clk",
+			  "gpu2d_clk", "gpu2d_axi_clk",
+			  "gpu2d_ahb_clk";
+		assigned-clocks = <&clk IMX8MM_CLK_GPU3D_SRC>,
+				<&clk IMX8MM_CLK_GPU2D_SRC>,
+				<&clk IMX8MM_CLK_GPU_AXI>,
+				<&clk IMX8MM_CLK_GPU_AHB>,
+				<&clk IMX8MM_GPU_PLL_OUT>;
+		assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>,
+				<&clk IMX8MM_GPU_PLL_OUT>,
+				<&clk IMX8MM_SYS_PLL1_800M>,
+				<&clk IMX8MM_SYS_PLL1_800M>;
+		assigned-clock-rates = <0>, <0>, <0>,<400000000>,<1000000000>;
+
+		power-domains = <&gpumix_pd>;
+
+		status = "disabled";
+	};
+
+	lcdif_resets: lcdif-resets {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		#reset-cells = <0>;
+
+		lcdif-clk-enable {
+			compatible = "lcdif,clk-enable";
+			resets = <&dispmix_clk_en IMX8MM_LCDIF_APB_CLK_EN>,
+				 <&dispmix_clk_en IMX8MM_LCDIF_PIXEL_CLK_EN>;
+		};
+	};
+
+	mipi_dsi_resets: mipi-dsi-resets {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		#reset-cells = <0>;
+
+		dsi-soft-resetn {
+			compatible = "dsi,soft-resetn";
+			resets = <&dispmix_sft_rstn IMX8MM_MIPI_DSI_I_PRESET>;
+		};
+
+		dsi-clk-enable {
+			compatible = "dsi,clk-enable";
+			resets = <&dispmix_clk_en IMX8MM_MIPI_DSI_CLKREF_EN>,
+				 <&dispmix_clk_en IMX8MM_MIPI_DSI_PCLK_EN>;
+		};
+
+		dsi-mipi-reset {
+			compatible = "dsi,mipi-reset";
+			resets = <&dispmix_mipi_rst IMX8MM_MIPI_M_RESET>;
+		};
+	};
+
+	reg_otg1_vbus: reg-otg1-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "OTG1_VBUS";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	reg_usdhc2_vmmc: regulator-usdhc2 {
+		compatible = "regulator-fixed";
+		regulator-name = "VSD_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		always-on;
+		u-boot,off-on-delay-us = <100000>;
+	};
+
+	aliases {
+		i2c5 = &i2c_cam;
+	};
+
+	i2c_cam: i2c_cam {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_i2c_cam>;
+		compatible = "i2c-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		sda-gpios = <&gpio5 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+		scl-gpios = <&gpio5 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
+		status = "okay";
+	};
+
+	lcd0_backlight: lcd0_backlight {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_lcd0_backlight>;
+		compatible = "pwm-backlight";
+		pwms = <&pwm1 0 1000000>;
+		brightness-levels = <
+			  0   1   2   3   4   5   6   7   8   9
+			 10  11  12  13  14  15  16  17  18  19
+			 20  21  22  23  24  25  26  27  28  29
+			 30  31  32  33  34  35  36  37  38  39
+			 40  41  42  43  44  45  46  47  48  49
+			 50  51  52  53  54  55  56  57  58  59
+			 60  61  62  63  64  65  66  67  68  69
+			 70  71  72  73  74  75  76  77  78  79
+			 80  81  82  83  84  85  86  87  88  89
+			 90  91  92  93  94  95  96  97  98  99
+			100 101 102 103 104 105 106 107 108 109
+			110 111 112 113 114 115 116 117 118 119
+			120 121 122 123 124 125 126 127 128 129
+			130 131 132 133 134 135 136 137 138 139
+			140 141 142 143 144 145 146 147 148 149
+			150 151 152 153 154 155 156 157 158 159
+			160 161 162 163 164 165 166 167 168 169
+			170 171 172 173 174 175 176 177 178 179
+			180 181 182 183 184 185 186 187 188 189
+			190 191 192 193 194 195 196 197 198 199
+			200 201 202 203 204 205 206 207 208 209
+			210 211 212 213 214 215 216 217 218 219
+			220 221 222 223 224 225 226 227 228 229
+			230 231 232 233 234 235 236 237 238 239
+			240 241 242 243 244 245 246 247 248 249
+			250 251 252 253 254 255
+		>;
+		default-brightness-level = <255>;
+		enable-gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>;
+		status = "disabled";
+	};
+
+	resmem: reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		/* global autoconfigured region for contiguous allocations */
+		linux,cma {
+			compatible = "shared-dma-pool";
+			reusable;
+			size = <0 0x14000000>;
+			linux,cma-default;
+		};
+	};
+
+	power-domains {
+		compatible = "simple-bus";
+		/* HSIO SS */
+		hsiomix_pd: hsiomix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <0>;
+			domain-name = "hsiomix";
+			clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
+		};
+
+		pcie_pd: pcie-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <1>;
+			domain-name = "pcie";
+			parent-domains = <&hsiomix_pd>;
+		};
+
+		usb_otg1_pd: usbotg1-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <2>;
+			domain-name = "usb_otg1";
+			parent-domains = <&hsiomix_pd>;
+		};
+
+		usb_otg2_pd: usbotg2-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <3>;
+			domain-name = "usb_otg2";
+			parent-domains = <&hsiomix_pd>;
+		};
+
+		/* GPU SS */
+		gpumix_pd: gpumix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <4>;
+			domain-name = "gpumix";
+			clocks = <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
+				 <&clk IMX8MM_CLK_GPU_AHB>,
+				 <&clk IMX8MM_CLK_GPU2D_ROOT>,
+				 <&clk IMX8MM_CLK_GPU3D_ROOT>;
+		};
+
+		/* VPU SS */
+		vpumix_pd: vpumix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <5>;
+			domain-name = "vpumix";
+			clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
+		};
+
+		vpu_g1_pd: vpug1-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <6>;
+			domain-name = "vpu_g1";
+			parent-domains = <&vpumix_pd>;
+			clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>;
+		};
+
+		vpu_g2_pd: vpug2-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <7>;
+			domain-name = "vpu_g2";
+			parent-domains = <&vpumix_pd>;
+			clocks = <&clk IMX8MM_CLK_VPU_G2_ROOT>;
+		};
+
+		vpu_h1_pd: vpuh1-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <8>;
+			domain-name = "vpu_h1";
+			parent-domains = <&vpumix_pd>;
+			clocks = <&clk IMX8MM_CLK_VPU_H1_ROOT>;
+		};
+
+		/* DISP SS */
+		dispmix_pd: dispmix-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <9>;
+			domain-name = "dispmix";
+			clocks = <&clk IMX8MM_CLK_DISP_ROOT>,
+				 <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
+				 <&clk IMX8MM_CLK_DISP_APB_ROOT>;
+		};
+
+		mipi_pd: mipi-pd {
+			compatible = "fsl,imx8m-pm-domain";
+			#power-domain-cells = <0>;
+			domain-index = <10>;
+			domain-name = "mipi";
+			parent-domains = <&dispmix_pd>;
+		};
+	};
+
+	user_gpios: user_gpios {
+                compatible = "msc,user-gpios";
+                /* The first entry is the GPIO controller.
+                   The number of next entries must match of #gpio-cells.
+                   The first number is the offset within the controller.
+                   If necessary, the second number is a flag
+                   see linux.git/Documentation/devicetree/bindings/gpio/ */
+                GPIO0-gpios  = <&gpio1 0 0>;
+                GPIO1-gpios  = <&gpio1 1 0>;
+                GPIO2-gpios  = <&gpio1 3 0>;
+                GPIO3-gpios  = <&gpio1 5 0>;
+                GPIO4-gpios  = <&gpio1 6 0>;
+                GPIO5-gpios  = <&gpio5 2 0>;
+                GPIO6-gpios  = <&gpio5 1 0>;
+                GPIO7-gpios  = <&gpio4 22 0>;
+                GPIO8-gpios  = <&gpio3 25 0>;
+                GPIO9-gpios  = <&gpio4 28 0>;
+				GPIO10-gpios = <&gpio1 9 0>;
+                GPIO11-gpios = <&gpio1 7 0>;
+	};
+
+	vpu_h1: vpu_h1@38320000 {
+		compatible = "nxp,imx8mm-hantro-h1";
+		reg = <0x0 0x38320000 0x0 0x10000>;
+		reg-names = "regs_hantro_h1";
+		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "irq_hantro_h1";
+		clocks = <&clk IMX8MM_CLK_VPU_H1_ROOT>, <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
+		clock-names = "clk_hantro_h1", "clk_hantro_h1_bus";
+		assigned-clocks = <&clk IMX8MM_CLK_VPU_H1>,<&clk IMX8MM_CLK_VPU_BUS>;
+		assigned-clock-parents = <&clk IMX8MM_VPU_PLL_OUT>, <&clk IMX8MM_SYS_PLL1_800M>;
+		assigned-clock-rates = <600000000>, <800000000>;
+		power-domains = <&vpu_h1_pd>;
+		status = "disabled";
+	};
+
+	vpu_g1: vpu_g1@38300000 {
+		compatible = "nxp,imx8mm-hantro";
+		reg = <0x0 0x38300000 0x0 0x100000>;
+		reg-names = "regs_hantro";
+		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "irq_hantro";
+		clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>, <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
+		clock-names = "clk_hantro", "clk_hantro_bus";
+		assigned-clocks = <&clk IMX8MM_CLK_VPU_G1>, <&clk IMX8MM_CLK_VPU_BUS>;
+		assigned-clock-parents = <&clk IMX8MM_VPU_PLL_OUT>, <&clk IMX8MM_SYS_PLL1_800M>;
+		assigned-clock-rates = <600000000>, <800000000>;
+		power-domains = <&vpu_g1_pd>;
+		status = "disabled";
+	};
+
+	vpu_g2: vpu_g2@38310000 {
+		compatible = "nxp,imx8mm-hantro";
+		reg = <0x0 0x38310000 0x0 0x100000>;
+		reg-names = "regs_hantro";
+		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "irq_hantro";
+		clocks = <&clk IMX8MM_CLK_VPU_G2_ROOT>, <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
+		clock-names = "clk_hantro", "clk_hantro_bus";
+		assigned-clocks = <&clk IMX8MM_CLK_VPU_G2>, <&clk IMX8MM_CLK_VPU_BUS>;
+		assigned-clock-parents = <&clk IMX8MM_VPU_PLL_OUT>, <&clk IMX8MM_SYS_PLL1_800M>;
+		assigned-clock-rates = <600000000>, <800000000>;
+		power-domains = <&vpu_g2_pd>;
+		status = "disabled";
+	};
+
+	extcon_usbotg1: extcon_usbotg1 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbotg1_extcon>;
+		compatible = "linux,extcon-usb-gpio";
+		id-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&fec1 {
+	compatible = "fsl,imx8mm-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-id";
+	phy-handle = <&ethphy1>;
+	stop-mode = <&gpr 0x10 3>;
+	fsl,wakeup_irq = <2>;
+	fsl,magic-packet;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy1: ethernet-phy@1 {
+			reg = <1>;
+			compatible = "ethernet-phy-id2000.a231";
+			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>;
+			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+			ti,led-gpio-polarity-active-low;
+			ti,led-2-polarity-active-low;
+			ti,led-1-polarity-active-low;
+			ti,led-0-polarity-active-low;
+		};
+	};
+};
+
+/* I2C_DEV */
+&i2c1 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	pmic1: pmic@31 {
+		compatible = "ricoh,rn5t567";
+		reg = <0x31>;
+		pmic-id = <0>;
+		system-restart-controller;
+		sleep-sequence = /bits/ 8 <
+				0x16	0x2b
+				0x17	0x49
+				0x1b	0x2b
+				0x1c	0x67
+				0x1f	0x0b
+				0x32	0x03
+				0x30	0x03
+			>;
+
+		regulators {
+			DCDC1 {
+				regulator-name = "VCC_SOC";
+				regulator-always-on;
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+			};
+			vcc_arm: DCDC2 {
+				regulator-name = "VCC_ARM";
+				regulator-always-on;
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <950000>;
+			};
+			DCDC3 {
+				regulator-name = "VCC_DRAM_1V2";
+				regulator-always-on;
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+			};
+			DCDC4 {
+				regulator-name = "VCC_1V8_PMIC";
+				regulator-always-on;
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+			LDO1 {
+				regulator-name = "VCC_2V5";
+				regulator-always-on;
+				regulator-min-microvolt = <2500000>;
+				regulator-max-microvolt = <2500000>;
+			};
+			LDO2 {
+				regulator-name = "VCC_3V3";
+				regulator-always-on;
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+			LDO3 {
+				regulator-name = "VCC_3V3_2";
+				regulator-always-on;
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+			LDO4 {
+				regulator-name = "VCC_LDO4_1V8";
+				regulator-always-on;
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+			LDO5 {
+				regulator-name = "VCC_1V0";
+				regulator-always-on;
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+			};
+			LDORTC1 {
+				regulator-name = "VCC_SNVS_1V8";
+				regulator-always-on;
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+			LDORTC2 {
+				regulator-name = "VCC_PM1_SNVS_3V3";
+				regulator-always-on;
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+		};
+	};
+
+	rtc: rtc@32 {
+		compatible = "ricoh,r2221tl";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_rtc1>;
+		reg = <0x32>;
+	};
+
+	tmp103: tmp103@71 {
+		compatible = "ti,tmp103";
+		reg = <0x71>;
+	};
+
+	dsi_lvds_bridge: sn65dsi84@2d {
+		compatible = "ti,sn65dsi83";
+		reg = <0x2d>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_lcd0_panel>;
+		enable-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
+		status = "disabled";
+	};
+
+};
+
+/* I2C_PM */
+&i2c2 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+};
+
+/* I2C_GP */
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	module_eeprom@50 {
+		compatible = "atmel,24c64";
+		reg = <0x50>;
+	};
+};
+
+/* I2C_LCD */
+&i2c4 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c4>;
+	status = "okay";
+};
+
+/* ser 0 */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	fsl,uart-has-rtscts;
+	status = "okay";
+};
+
+/* ser 2 */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	fsl,uart-has-rtscts;
+	status = "okay";
+};
+
+/* ser 1 */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	status = "okay";
+};
+
+#if 0
+/* ser 3 */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	status = "okay";
+};
+#endif
+
+&flexspi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_flexspi>;
+	status = "okay";
+
+	flash0: w25q32@0 {
+		reg = <0>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "jedec,spi-nor";
+		spi-max-frequency = <29000000>;
+		spi-nor,ddr-quad-read-dummy = <6>;
+	};
+};
+
+&ecspi1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	fsl,spi-num-chipselects = <2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
+	cs-gpios =
+			<&gpio5 9 GPIO_ACTIVE_LOW>,
+			<&gpio4 25 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&ecspi2 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	fsl,spi-num-chipselects = <2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>;
+	cs-gpios =
+			<&gpio5 13 GPIO_ACTIVE_LOW>,
+			<&gpio4 26 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&usdhc2 {
+#if 0
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+#else
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+#endif
+	bus-width = <4>;
+	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	no-1-8-v; /* to avoid problems with some uhs sd cards */
+	status = "okay";
+};
+
+&usdhc3 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	bus-width = <8>;
+	non-removable;
+	sdhci-extra-quirks2 = <0x40000040>;
+	status = "okay";
+};
+
+&usbotg1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg1>;
+	vbus-supply = <&reg_otg1_vbus>;
+	dr_mode = "otg";
+	extcon = <0>, <&extcon_usbotg1>;
+	hnp-disable;
+	srp-disable;
+	adp-disable;
+	disable-over-current;
+	power-domains = <&usb_otg1_pd>;
+	status = "okay";
+};
+
+&usbotg2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg2>;
+	dr_mode = "host";
+	power-domains = <&usb_otg2_pd>;
+	status = "okay";
+};
+
+&pwm1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm1>;
+	status = "disabled";
+};
+
+&wdog1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog1>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
+
+&pcie0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pcie>;
+	linux,pci-domain = <0>;
+	power-domains = <&pcie_pd>;
+	reset-gpio = <&gpio2 10 GPIO_ACTIVE_LOW>;
+	resets = <&src IMX8MQ_RESET_PCIEPHY>,
+		 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
+		 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_CLK_REQ>,
+		 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
+	reset-names = "pciephy", "apps", "clkreq", "turnoff";
+	ext_osc = <0>;
+	status = "okay";
+};
+
+&mipi_dsi {
+	status = "disabled";
+};
+
+&sai1 {
+    fsl,dataline = <0 0xff 0xff>;
+};
+
+&sai5 {
+    pinctrl-names = "default";
+    pinctrl-0 = <&pinctrl_sai5>;
+    fsl,dataline = <0 0xf 0xf>;
+    status = "disabled";
+};
+
+&mipi_csi_1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "disabled";
+	port {
+		mipi1_sensor_ep: endpoint@1 {
+		};
+
+		csi1_mipi_ep: endpoint@2 {
+			remote-endpoint = <&csi1_ep>;
+		};
+	};
+};
+
+&csi1_bridge {
+	fsl,mipi-mode;
+	status = "disabled";
+	port {
+		csi1_ep: endpoint {
+			remote-endpoint = <&csi1_mipi_ep>;
+		};
+	};
+};
+
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/msc/imx8mlc_mini/msc-sm2s-imx8mm-04N0201I-module.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/msc/imx8mlc_mini/msc-sm2s-imx8mm-04N0201I-module.dts
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2020 AVNET Integrated, MSC Technologies GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include "msc-sm2s-imx8mlc-mini-module.dtsi"
+/*#include "../imx8mm/msc-sm2s-imx8mm-module.dtsi"*/
+/ {
+	memory@40000000 {
+		/* 1GiB LPDDR4 */
+		reg = <0x0 0x40000000 0 0x40000000>;
+	};
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra132.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra132.dtsi
@@ -1082,13 +1082,13 @@
 
 		cpu@0 {
 			device_type = "cpu";
-			compatible = "nvidia,denver";
+			compatible = "nvidia,tegra132-denver";
 			reg = <0>;
 		};
 
 		cpu@1 {
 			device_type = "cpu";
-			compatible = "nvidia,denver";
+			compatible = "nvidia,tegra132-denver";
 			reg = <1>;
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
@@ -10,18 +10,6 @@
 	model = "NVIDIA Jetson TX2 Developer Kit";
 	compatible = "nvidia,p2771-0000", "nvidia,tegra186";
 
-	aconnect {
-		status = "okay";
-
-		dma-controller@2930000 {
-			status = "okay";
-		};
-
-		interrupt-controller@2a40000 {
-			status = "okay";
-		};
-	};
-
 	i2c@3160000 {
 		power-monitor@42 {
 			compatible = "ti,ina3221";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -309,8 +309,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03400000 0x0 0x10000>;
 		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC1>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&bpmp TEGRA186_RESET_SDMMC1>;
 		reset-names = "sdhci";
 		iommus = <&smmu TEGRA186_SID_SDMMC1>;
@@ -335,8 +336,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03420000 0x0 0x10000>;
 		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC2>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC2>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&bpmp TEGRA186_RESET_SDMMC2>;
 		reset-names = "sdhci";
 		iommus = <&smmu TEGRA186_SID_SDMMC2>;
@@ -356,8 +358,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03440000 0x0 0x10000>;
 		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC3>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC3>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&bpmp TEGRA186_RESET_SDMMC3>;
 		reset-names = "sdhci";
 		iommus = <&smmu TEGRA186_SID_SDMMC3>;
@@ -379,8 +382,9 @@
 		compatible = "nvidia,tegra186-sdhci";
 		reg = <0x0 0x03460000 0x0 0x10000>;
 		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
-		clock-names = "sdhci";
+		clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
+			 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+		clock-names = "sdhci", "tmclk";
 		assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
 				  <&bpmp TEGRA186_CLK_PLLC4_VCO>;
 		assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
@@ -705,7 +709,7 @@
 
 	ccplex@e000000 {
 		compatible = "nvidia,tegra186-ccplex-cluster";
-		reg = <0x0 0x0e000000 0x0 0x3fffff>;
+		reg = <0x0 0x0e000000 0x0 0x400000>;
 
 		nvidia,bpmp = <&bpmp>;
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
@@ -32,7 +32,7 @@
 
 			phy-reset-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 5) GPIO_ACTIVE_LOW>;
 			phy-handle = <&phy>;
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 
 			mdio {
 				#address-cells = <1>;
@@ -309,9 +309,8 @@
 			regulator-name = "VDD_12V";
 			regulator-min-microvolt = <1200000>;
 			regulator-max-microvolt = <1200000>;
-			gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
+			gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
 			regulator-boot-on;
-			enable-active-low;
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -144,7 +144,7 @@
 					nvidia,schmitt = <TEGRA_PIN_DISABLE>;
 					nvidia,lpdr = <TEGRA_PIN_ENABLE>;
 					nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-					nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
+					nvidia,io-hv = <TEGRA_PIN_ENABLE>;
 					nvidia,tristate = <TEGRA_PIN_DISABLE>;
 					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				};
@@ -156,7 +156,7 @@
 					nvidia,schmitt = <TEGRA_PIN_DISABLE>;
 					nvidia,lpdr = <TEGRA_PIN_ENABLE>;
 					nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-					nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
+					nvidia,io-hv = <TEGRA_PIN_ENABLE>;
 					nvidia,tristate = <TEGRA_PIN_DISABLE>;
 					nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 				};
@@ -403,8 +403,9 @@
 			compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03400000 0x10000>;
 			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&bpmp TEGRA194_CLK_SDMMC1>;
-			clock-names = "sdhci";
+			clocks = <&bpmp TEGRA194_CLK_SDMMC1>,
+				 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
+			clock-names = "sdhci", "tmclk";
 			resets = <&bpmp TEGRA194_RESET_SDMMC1>;
 			reset-names = "sdhci";
 			nvidia,pad-autocal-pull-up-offset-3v3-timeout =
@@ -425,8 +426,9 @@
 			compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03440000 0x10000>;
 			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&bpmp TEGRA194_CLK_SDMMC3>;
-			clock-names = "sdhci";
+			clocks = <&bpmp TEGRA194_CLK_SDMMC3>,
+				 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
+			clock-names = "sdhci", "tmclk";
 			resets = <&bpmp TEGRA194_RESET_SDMMC3>;
 			reset-names = "sdhci";
 			nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
@@ -448,8 +450,9 @@
 			compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03460000 0x10000>;
 			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&bpmp TEGRA194_CLK_SDMMC4>;
-			clock-names = "sdhci";
+			clocks = <&bpmp TEGRA194_CLK_SDMMC4>,
+				 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
+			clock-names = "sdhci", "tmclk";
 			assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC4>,
 					  <&bpmp TEGRA194_CLK_PLLC4>;
 			assigned-clock-parents =
@@ -689,7 +692,7 @@
 
 		hsp_aon: hsp@c150000 {
 			compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp";
-			reg = <0x0c150000 0xa0000>;
+			reg = <0x0c150000 0x90000>;
 			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
 			             <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
 			             <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
@@ -1151,7 +1154,7 @@
 	};
 
 	pcie@14100000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
 		reg = <0x00 0x14100000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x30000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1192,12 +1195,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x30100000 0x0  0x30100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000   /* prefetchable memory (768MB) */
+			  0xc3000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000   /* prefetchable memory (768MB) */
 			  0x82000000 0x0  0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
 	};
 
 	pcie@14120000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
 		reg = <0x00 0x14120000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x32000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1238,12 +1241,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x32100000 0x0  0x32100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000   /* prefetchable memory (768MB) */
+			  0xc3000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000   /* prefetchable memory (768MB) */
 			  0x82000000 0x0  0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
 	};
 
 	pcie@14140000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>;
 		reg = <0x00 0x14140000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x34000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1284,12 +1287,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x34100000 0x0  0x34100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000   /* prefetchable memory (768MB) */
+			  0xc3000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000   /* prefetchable memory (768MB) */
 			  0x82000000 0x0  0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
 	};
 
 	pcie@14160000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
 		reg = <0x00 0x14160000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x36000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1330,12 +1333,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x36100000 0x0  0x36100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
+			  0xc3000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
 			  0x82000000 0x0  0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
 	};
 
 	pcie@14180000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
 		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x38000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1376,12 +1379,12 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x38100000 0x0  0x38100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
+			  0xc3000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
 			  0x82000000 0x0  0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
 	};
 
 	pcie@141a0000 {
-		compatible = "nvidia,tegra194-pcie", "snps,dw-pcie";
+		compatible = "nvidia,tegra194-pcie";
 		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
 		reg = <0x00 0x141a0000 0x0 0x00020000   /* appl registers (128K)      */
 		       0x00 0x3a000000 0x0 0x00040000   /* configuration space (256K) */
@@ -1426,10 +1429,109 @@
 
 		bus-range = <0x0 0xff>;
 		ranges = <0x81000000 0x0  0x3a100000 0x0  0x3a100000 0x0 0x00100000   /* downstream I/O (1MB) */
-			  0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
+			  0xc3000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000   /* prefetchable memory (13GB) */
 			  0x82000000 0x0  0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
 	};
 
+	pcie_ep@14160000 {
+		compatible = "nvidia,tegra194-pcie-ep";
+		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
+		reg = <0x00 0x14160000 0x0 0x00020000   /* appl registers (128K)      */
+		       0x00 0x36040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
+		       0x00 0x36080000 0x0 0x00040000   /* DBI reg space (256K)       */
+		       0x14 0x00000000 0x4 0x00000000>; /* Address Space (16G)        */
+		reg-names = "appl", "atu_dma", "dbi", "addr_space";
+
+		status = "disabled";
+
+		num-lanes = <4>;
+		num-ib-windows = <2>;
+		num-ob-windows = <8>;
+
+		clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_4>;
+		clock-names = "core";
+
+		resets = <&bpmp TEGRA194_RESET_PEX0_CORE_4_APB>,
+			 <&bpmp TEGRA194_RESET_PEX0_CORE_4>;
+		reset-names = "apb", "core";
+
+		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;	/* controller interrupt */
+		interrupt-names = "intr";
+
+		nvidia,bpmp = <&bpmp 4>;
+
+		nvidia,aspm-cmrt-us = <60>;
+		nvidia,aspm-pwr-on-t-us = <20>;
+		nvidia,aspm-l0s-entrance-latency-us = <3>;
+	};
+
+	pcie_ep@14180000 {
+		compatible = "nvidia,tegra194-pcie-ep";
+		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
+		reg = <0x00 0x14180000 0x0 0x00020000   /* appl registers (128K)      */
+		       0x00 0x38040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
+		       0x00 0x38080000 0x0 0x00040000   /* DBI reg space (256K)       */
+		       0x18 0x00000000 0x4 0x00000000>; /* Address Space (16G)        */
+		reg-names = "appl", "atu_dma", "dbi", "addr_space";
+
+		status = "disabled";
+
+		num-lanes = <8>;
+		num-ib-windows = <2>;
+		num-ob-windows = <8>;
+
+		clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_0>;
+		clock-names = "core";
+
+		resets = <&bpmp TEGRA194_RESET_PEX0_CORE_0_APB>,
+			 <&bpmp TEGRA194_RESET_PEX0_CORE_0>;
+		reset-names = "apb", "core";
+
+		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;	/* controller interrupt */
+		interrupt-names = "intr";
+
+		nvidia,bpmp = <&bpmp 0>;
+
+		nvidia,aspm-cmrt-us = <60>;
+		nvidia,aspm-pwr-on-t-us = <20>;
+		nvidia,aspm-l0s-entrance-latency-us = <3>;
+	};
+
+	pcie_ep@141a0000 {
+		compatible = "nvidia,tegra194-pcie-ep";
+		power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
+		reg = <0x00 0x141a0000 0x0 0x00020000   /* appl registers (128K)      */
+		       0x00 0x3a040000 0x0 0x00040000   /* iATU_DMA reg space (256K)  */
+		       0x00 0x3a080000 0x0 0x00040000   /* DBI reg space (256K)       */
+		       0x1c 0x00000000 0x4 0x00000000>; /* Address Space (16G)        */
+		reg-names = "appl", "atu_dma", "dbi", "addr_space";
+
+		status = "disabled";
+
+		num-lanes = <8>;
+		num-ib-windows = <2>;
+		num-ob-windows = <8>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&clkreq_c5_bi_dir_state>;
+
+		clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>;
+		clock-names = "core";
+
+		resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>,
+			 <&bpmp TEGRA194_RESET_PEX1_CORE_5>;
+		reset-names = "apb", "core";
+
+		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;	/* controller interrupt */
+		interrupt-names = "intr";
+
+		nvidia,bpmp = <&bpmp 5>;
+
+		nvidia,aspm-cmrt-us = <60>;
+		nvidia,aspm-pwr-on-t-us = <20>;
+		nvidia,aspm-l0s-entrance-latency-us = <3>;
+	};
+
 	sysram@40000000 {
 		compatible = "nvidia,tegra194-sysram", "mmio-sram";
 		reg = <0x0 0x40000000 0x0 0x50000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
@@ -1612,7 +1612,7 @@
 			regulator-name = "VDD_HDMI_5V0";
 			regulator-min-microvolt = <5000000>;
 			regulator-max-microvolt = <5000000>;
-			gpio = <&exp1 12 GPIO_ACTIVE_LOW>;
+			gpio = <&exp1 12 GPIO_ACTIVE_HIGH>;
 			enable-active-high;
 			vin-supply = <&vdd_5v0_sys>;
 		};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/nvidia/tegra210.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/nvidia/tegra210.dtsi
@@ -917,6 +917,7 @@
 			 <&tegra_car 128>, /* hda2hdmi */
 			 <&tegra_car 111>; /* hda2codec_2x */
 		reset-names = "hda", "hda2hdmi", "hda2codec_2x";
+		power-domains = <&pd_sor>;
 		status = "disabled";
 	};
 
@@ -1116,8 +1117,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0000 0x0 0x200>;
 		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 14>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
@@ -1144,8 +1146,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0200 0x0 0x200>;
 		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC2>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC2>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 9>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-1v8-drv";
@@ -1161,8 +1164,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0400 0x0 0x200>;
 		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC3>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC3>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 69>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
@@ -1184,8 +1188,9 @@
 		compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
 		reg = <0x0 0x700b0600 0x0 0x200>;
 		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&tegra_car TEGRA210_CLK_SDMMC4>;
-		clock-names = "sdhci";
+		clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
+			 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+		clock-names = "sdhci", "tmclk";
 		resets = <&tegra_car 15>;
 		reset-names = "sdhci";
 		pinctrl-names = "sdmmc-3v3-drv", "sdmmc-1v8-drv";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
@@ -623,6 +623,8 @@
 				l21 {
 					regulator-min-microvolt = <2950000>;
 					regulator-max-microvolt = <2950000>;
+					regulator-allow-set-load;
+					regulator-system-load = <200000>;
 				};
 				l22 {
 					regulator-min-microvolt = <3300000>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
@@ -20,7 +20,7 @@
 		stdout-path = "serial0";
 	};
 
-	memory {
+	memory@40000000 {
 		device_type = "memory";
 		reg = <0x0 0x40000000 0x0 0x20000000>;
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/ipq8074.dtsi
@@ -253,7 +253,7 @@
 			status = "disabled";
 		};
 
-		qpic_nand: nand@79b0000 {
+		qpic_nand: nand-controller@79b0000 {
 			compatible = "qcom,ipq8074-nand";
 			reg = <0x79b0000 0x10000>;
 			#address-cells = <1>;
@@ -482,7 +482,7 @@
 	clocks {
 		sleep_clk: sleep_clk {
 			compatible = "fixed-clock";
-			clock-frequency = <32000>;
+			clock-frequency = <32768>;
 			#clock-cells = <0>;
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
@@ -508,7 +508,7 @@
 				pins = "gpio63", "gpio64", "gpio65", "gpio66",
 				       "gpio67", "gpio68";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		cdc_pdm_lines_sus: pdm_lines_off {
@@ -521,7 +521,7 @@
 				pins = "gpio63", "gpio64", "gpio65", "gpio66",
 				       "gpio67", "gpio68";
 				drive-strength = <2>;
-				bias-disable;
+				bias-pull-down;
 			};
 		};
 	};
@@ -537,7 +537,7 @@
 				pins = "gpio113", "gpio114", "gpio115",
 				       "gpio116";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 
@@ -565,7 +565,7 @@
 			pinconf {
 				pins = "gpio110";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 
@@ -591,7 +591,7 @@
 			pinconf {
 				pins = "gpio116";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		ext_mclk_tlmm_lines_sus: mclk_lines_off {
@@ -619,7 +619,7 @@
 				pins = "gpio112", "gpio117", "gpio118",
 					"gpio119";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		ext_sec_tlmm_lines_sus: tlmm_lines_off {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -16,8 +16,8 @@
 	#size-cells = <2>;
 
 	aliases {
-		sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
-		sdhc2 = &sdhc_2; /* SDC2 SD card slot */
+		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+		mmc1 = &sdhc_2; /* SDC2 SD card slot */
 	};
 
 	chosen { };
@@ -53,7 +53,7 @@
 			no-map;
 		};
 
-		reserved@8668000 {
+		reserved@86680000 {
 			reg = <0x0 0x86680000 0x0 0x80000>;
 			no-map;
 		};
@@ -66,7 +66,7 @@
 			qcom,client-id = <1>;
 		};
 
-		rfsa@867e00000 {
+		rfsa@867e0000 {
 			reg = <0x0 0x867e0000 0x0 0x20000>;
 			no-map;
 		};
@@ -175,14 +175,14 @@
 	};
 
 	thermal-zones {
-		cpu0_1-thermal {
+		cpu0-1-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <1000>;
 
 			thermal-sensors = <&tsens 4>;
 
 			trips {
-				cpu0_1_alert0: trip-point@0 {
+				cpu0_1_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "passive";
@@ -205,14 +205,14 @@
 			};
 		};
 
-		cpu2_3-thermal {
+		cpu2-3-thermal {
 			polling-delay-passive = <250>;
 			polling-delay = <1000>;
 
 			thermal-sensors = <&tsens 3>;
 
 			trips {
-				cpu2_3_alert0: trip-point@0 {
+				cpu2_3_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "passive";
@@ -242,7 +242,7 @@
 			thermal-sensors = <&tsens 2>;
 
 			trips {
-				gpu_alert0: trip-point@0 {
+				gpu_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "passive";
@@ -262,7 +262,7 @@
 			thermal-sensors = <&tsens 1>;
 
 			trips {
-				cam_alert0: trip-point@0 {
+				cam_alert0: trip-point0 {
 					temperature = <75000>;
 					hysteresis = <2000>;
 					type = "hot";
@@ -277,7 +277,7 @@
 			thermal-sensors = <&tsens 0>;
 
 			trips {
-				modem_alert0: trip-point@0 {
+				modem_alert0: trip-point0 {
 					temperature = <85000>;
 					hysteresis = <2000>;
 					type = "hot";
@@ -934,7 +934,7 @@
 				reg-names = "mdp_phys";
 
 				interrupt-parent = <&mdss>;
-				interrupts = <0 0>;
+				interrupts = <0>;
 
 				clocks = <&gcc GCC_MDSS_AHB_CLK>,
 					 <&gcc GCC_MDSS_AXI_CLK>,
@@ -966,7 +966,7 @@
 				reg-names = "dsi_ctrl";
 
 				interrupt-parent = <&mdss>;
-				interrupts = <4 0>;
+				interrupts = <4>;
 
 				assigned-clocks = <&gcc BYTE0_CLK_SRC>,
 						  <&gcc PCLK0_CLK_SRC>;
@@ -1451,7 +1451,7 @@
 			};
 		};
 
-		camss: camss@1b00000 {
+		camss: camss@1b0ac00 {
 			compatible = "qcom,msm8916-camss";
 			reg = <0x1b0ac00 0x200>,
 				<0x1b00030 0x4>,
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8994-angler-rev-101.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8994-angler-rev-101.dts
@@ -30,3 +30,7 @@
 		};
 	};
 };
+
+&msmgpio {
+	gpio-reserved-ranges = <85 4>;
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -1598,6 +1598,8 @@
 				interrupts = <0 138 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&hsusb_phy2>;
 				phy-names = "usb2-phy";
+				snps,dis_u2_susphy_quirk;
+				snps,dis_enblslpm_quirk;
 			};
 		};
 
@@ -1628,6 +1630,8 @@
 				interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&hsusb_phy1>, <&ssusb_phy_0>;
 				phy-names = "usb2-phy", "usb3-phy";
+				snps,dis_u2_susphy_quirk;
+				snps,dis_enblslpm_quirk;
 			};
 		};
 
@@ -1677,16 +1681,16 @@
 				"csi_clk_mux",
 				"vfe0",
 				"vfe1";
-			interrupts = <GIC_SPI 78 0>,
-				<GIC_SPI 79 0>,
-				<GIC_SPI 80 0>,
-				<GIC_SPI 296 0>,
-				<GIC_SPI 297 0>,
-				<GIC_SPI 298 0>,
-				<GIC_SPI 299 0>,
-				<GIC_SPI 309 0>,
-				<GIC_SPI 314 0>,
-				<GIC_SPI 315 0>;
+			interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
+				<GIC_SPI 315 IRQ_TYPE_EDGE_RISING>;
 			interrupt-names = "csiphy0",
 				"csiphy1",
 				"csiphy2",
@@ -2094,9 +2098,6 @@
 			nvmem-cells = <&gpu_speed_bin>;
 			nvmem-cell-names = "speed_bin";
 
-			qcom,gpu-quirk-two-pass-use-wfi;
-			qcom,gpu-quirk-fault-detect-mask;
-
 			operating-points-v2 = <&gpu_opp_table>;
 
 			gpu_opp_table: opp-table {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi
@@ -23,6 +23,43 @@
 	};
 };
 
+/*
+ * The laptop FW does not appear to support the retention state as it is
+ * not advertised as enabled in ACPI, and enabling it in DT can cause boot
+ * hangs.
+ */
+&CPU0 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU1 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU2 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU3 {
+	cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
+};
+
+&CPU4 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
+&CPU5 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
+&CPU6 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
+&CPU7 {
+	cpu-idle-states = <&BIG_CPU_SLEEP_1>;
+};
+
 &qusb2phy {
 	status = "okay";
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
@@ -27,6 +27,66 @@
 	status = "okay";
 };
 
+&etf {
+	status = "okay";
+};
+
+&etm1 {
+	status = "okay";
+};
+
+&etm2 {
+	status = "okay";
+};
+
+&etm3 {
+	status = "okay";
+};
+
+&etm4 {
+	status = "okay";
+};
+
+&etm5 {
+	status = "okay";
+};
+
+&etm6 {
+	status = "okay";
+};
+
+&etm7 {
+	status = "okay";
+};
+
+&etm8 {
+	status = "okay";
+};
+
+&etr {
+	status = "okay";
+};
+
+&funnel1 {
+	status = "okay";
+};
+
+&funnel2 {
+	status = "okay";
+};
+
+&funnel3 {
+	status = "okay";
+};
+
+&funnel4 {
+	status = "okay";
+};
+
+&funnel5 {
+	status = "okay";
+};
+
 &pm8005_lsid1 {
 	pm8005-regulators {
 		compatible = "qcom,pm8005-regulators";
@@ -51,6 +111,10 @@
 	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
 };
 
+&replicator1 {
+	status = "okay";
+};
+
 &rpm_requests {
 	pm8998-regulators {
 		compatible = "qcom,rpm-pm8998-regulators";
@@ -249,6 +313,10 @@
 	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 };
 
+&stm {
+	status = "okay";
+};
+
 &ufshc {
 	vcc-supply = <&vreg_l20a_2p95>;
 	vccq-supply = <&vreg_l26a_1p2>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/msm8998.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -246,38 +246,42 @@
 			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
 				compatible = "arm,idle-state";
 				idle-state-name = "little-retention";
+				/* CPU Retention (C2D), L2 Active */
 				arm,psci-suspend-param = <0x00000002>;
 				entry-latency-us = <81>;
 				exit-latency-us = <86>;
-				min-residency-us = <200>;
+				min-residency-us = <504>;
 			};
 
 			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
 				compatible = "arm,idle-state";
 				idle-state-name = "little-power-collapse";
+				/* CPU + L2 Power Collapse (C3, D4) */
 				arm,psci-suspend-param = <0x40000003>;
-				entry-latency-us = <273>;
-				exit-latency-us = <612>;
-				min-residency-us = <1000>;
+				entry-latency-us = <814>;
+				exit-latency-us = <4562>;
+				min-residency-us = <9183>;
 				local-timer-stop;
 			};
 
 			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
 				compatible = "arm,idle-state";
 				idle-state-name = "big-retention";
+				/* CPU Retention (C2D), L2 Active */
 				arm,psci-suspend-param = <0x00000002>;
 				entry-latency-us = <79>;
 				exit-latency-us = <82>;
-				min-residency-us = <200>;
+				min-residency-us = <1302>;
 			};
 
 			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
 				compatible = "arm,idle-state";
 				idle-state-name = "big-power-collapse";
+				/* CPU + L2 Power Collapse (C3, D4) */
 				arm,psci-suspend-param = <0x40000003>;
-				entry-latency-us = <336>;
-				exit-latency-us = <525>;
-				min-residency-us = <1000>;
+				entry-latency-us = <724>;
+				exit-latency-us = <2027>;
+				min-residency-us = <9419>;
 				local-timer-stop;
 			};
 		};
@@ -985,7 +989,7 @@
 
 		tcsr_mutex_regs: syscon@1f40000 {
 			compatible = "syscon";
-			reg = <0x01f40000 0x20000>;
+			reg = <0x01f40000 0x40000>;
 		};
 
 		tlmm: pinctrl@3400000 {
@@ -998,11 +1002,12 @@
 			#interrupt-cells = <0x2>;
 		};
 
-		stm@6002000 {
+		stm: stm@6002000 {
 			compatible = "arm,coresight-stm", "arm,primecell";
 			reg = <0x06002000 0x1000>,
 			      <0x16280000 0x180000>;
 			reg-names = "stm-base", "stm-data-base";
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1016,9 +1021,10 @@
 			};
 		};
 
-		funnel@6041000 {
+		funnel1: funnel@6041000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x06041000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1045,9 +1051,10 @@
 			};
 		};
 
-		funnel@6042000 {
+		funnel2: funnel@6042000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x06042000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1075,9 +1082,10 @@
 			};
 		};
 
-		funnel@6045000 {
+		funnel3: funnel@6045000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x06045000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1113,9 +1121,10 @@
 			};
 		};
 
-		replicator@6046000 {
+		replicator1: replicator@6046000 {
 			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
 			reg = <0x06046000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1137,9 +1146,10 @@
 			};
 		};
 
-		etf@6047000 {
+		etf: etf@6047000 {
 			compatible = "arm,coresight-tmc", "arm,primecell";
 			reg = <0x06047000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1163,9 +1173,10 @@
 			};
 		};
 
-		etr@6048000 {
+		etr: etr@6048000 {
 			compatible = "arm,coresight-tmc", "arm,primecell";
 			reg = <0x06048000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1181,9 +1192,10 @@
 			};
 		};
 
-		etm@7840000 {
+		etm1: etm@7840000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07840000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1200,9 +1212,10 @@
 			};
 		};
 
-		etm@7940000 {
+		etm2: etm@7940000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07940000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1219,9 +1232,10 @@
 			};
 		};
 
-		etm@7a40000 {
+		etm3: etm@7a40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07a40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1238,9 +1252,10 @@
 			};
 		};
 
-		etm@7b40000 {
+		etm4: etm@7b40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07b40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1257,9 +1272,10 @@
 			};
 		};
 
-		funnel@7b60000 { /* APSS Funnel */
+		funnel4: funnel@7b60000 { /* APSS Funnel */
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07b60000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1343,9 +1359,10 @@
 			};
 		};
 
-		funnel@7b70000 {
+		funnel5: funnel@7b70000 {
 			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 			reg = <0x07b70000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1369,9 +1386,10 @@
 			};
 		};
 
-		etm@7c40000 {
+		etm5: etm@7c40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07c40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1385,9 +1403,10 @@
 			};
 		};
 
-		etm@7d40000 {
+		etm6: etm@7d40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07d40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1401,9 +1420,10 @@
 			};
 		};
 
-		etm@7e40000 {
+		etm7: etm@7e40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07e40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
@@ -1417,9 +1437,10 @@
 			};
 		};
 
-		etm@7f40000 {
+		etm8: etm@7f40000 {
 			compatible = "arm,coresight-etm4x", "arm,primecell";
 			reg = <0x07f40000 0x1000>;
+			status = "disabled";
 
 			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8150.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/pm8150.dtsi
@@ -17,7 +17,7 @@
 		#size-cells = <0>;
 
 		pon: power-on@800 {
-			compatible = "qcom,pm8916-pon";
+			compatible = "qcom,pm8998-pon";
 			reg = <0x0800>;
 			pwrkey {
 				compatible = "qcom,pm8941-pwrkey";
@@ -73,18 +73,8 @@
 			reg = <0xc000>;
 			gpio-controller;
 			#gpio-cells = <2>;
-			interrupts = <0x0 0xc0 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc1 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc2 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc3 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc4 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc5 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc6 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc7 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc8 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xc9 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xca 0x0 IRQ_TYPE_NONE>,
-				     <0x0 0xcb 0x0 IRQ_TYPE_NONE>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8150b.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/pm8150b.dtsi
@@ -62,18 +62,8 @@
 			reg = <0xc000>;
 			gpio-controller;
 			#gpio-cells = <2>;
-			interrupts = <0x2 0xc0 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc1 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc2 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc3 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc4 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc5 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc6 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc7 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc8 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xc9 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xca 0x0 IRQ_TYPE_NONE>,
-				     <0x2 0xcb 0x0 IRQ_TYPE_NONE>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8150l.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/pm8150l.dtsi
@@ -56,18 +56,8 @@
 			reg = <0xc000>;
 			gpio-controller;
 			#gpio-cells = <2>;
-			interrupts = <0x4 0xc0 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc1 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc2 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc3 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc4 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc5 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc6 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc7 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc8 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xc9 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xca 0x0 IRQ_TYPE_NONE>,
-				     <0x4 0xcb 0x0 IRQ_TYPE_NONE>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
 		};
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/pm8916.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/pm8916.dtsi
@@ -113,7 +113,7 @@
 
 		wcd_codec: codec@f000 {
 			compatible = "qcom,pm8916-wcd-analog-codec";
-			reg = <0xf000 0x200>;
+			reg = <0xf000>;
 			reg-names = "pmic-codec-core";
 			clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
 			clock-names = "mclk";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
@@ -73,6 +73,7 @@
 		regulator-always-on;
 		regulator-boot-on;
 		regulator-name = "vdd_apc";
+		regulator-initial-mode = <1>;
 		regulator-min-microvolt = <1048000>;
 		regulator-max-microvolt = <1384000>;
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/qcs404.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/qcs404.dtsi
@@ -533,7 +533,7 @@
 
 			clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
 			resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>,
-				 <&gcc 21>;
+				 <&gcc GCC_PCIE_0_PIPE_ARES>;
 			reset-names = "phy", "pipe";
 
 			clock-output-names = "pcie_0_pipe_clk";
@@ -991,12 +991,12 @@
 				 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
 			clock-names = "iface", "aux", "master_bus", "slave_bus";
 
-			resets = <&gcc 18>,
-				 <&gcc 17>,
-				 <&gcc 15>,
-				 <&gcc 19>,
+			resets = <&gcc GCC_PCIE_0_AXI_MASTER_ARES>,
+				 <&gcc GCC_PCIE_0_AXI_SLAVE_ARES>,
+				 <&gcc GCC_PCIE_0_AXI_MASTER_STICKY_ARES>,
+				 <&gcc GCC_PCIE_0_CORE_STICKY_ARES>,
 				 <&gcc GCC_PCIE_0_BCR>,
-				 <&gcc 16>;
+				 <&gcc GCC_PCIE_0_AHB_ARES>;
 			reset-names = "axi_m",
 				      "axi_s",
 				      "axi_m_sticky",
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi
@@ -165,6 +165,8 @@
 /delete-node/ &venus_mem;
 /delete-node/ &cdsp_mem;
 /delete-node/ &cdsp_pas;
+/delete-node/ &zap_shader;
+/delete-node/ &gpu_mem;
 
 /* Increase the size from 120 MB to 128 MB */
 &mpss_region {
@@ -1308,7 +1310,7 @@
 		config {
 			pins = "gpio126";
 			function = "gpio";
-			bias-no-pull;
+			bias-disable;
 			drive-strength = <2>;
 			output-low;
 		};
@@ -1318,7 +1320,7 @@
 		config {
 			pins = "gpio126";
 			function = "gpio";
-			bias-no-pull;
+			bias-disable;
 			drive-strength = <2>;
 			output-high;
 		};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
@@ -337,7 +337,9 @@
 &gcc {
 	protected-clocks = <GCC_QSPI_CORE_CLK>,
 			   <GCC_QSPI_CORE_CLK_SRC>,
-			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
+			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+			   <GCC_LPASS_Q6_AXI_CLK>,
+			   <GCC_LPASS_SWAY_CLK>;
 };
 
 &pm8998_gpio {
@@ -517,6 +519,8 @@
 	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
 	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
 	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+
+	qcom,snoc-host-cap-8bit-quirk;
 };
 
 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -715,6 +715,7 @@
 			#clock-cells = <1>;
 			#reset-cells = <1>;
 			#power-domain-cells = <1>;
+			power-domains = <&rpmhpd SDM845_CX>;
 		};
 
 		qfprom@784000 {
@@ -2824,7 +2825,7 @@
 
 			qcom,gmu = <&gmu>;
 
-			zap-shader {
+			zap_shader: zap-shader {
 				memory-region = <&gpu_mem>;
 			};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -232,7 +232,9 @@
 &gcc {
 	protected-clocks = <GCC_QSPI_CORE_CLK>,
 			   <GCC_QSPI_CORE_CLK_SRC>,
-			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
+			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+			   <GCC_LPASS_Q6_AXI_CLK>,
+			   <GCC_LPASS_SWAY_CLK>;
 };
 
 &i2c1 {
@@ -243,24 +245,23 @@
 &i2c3 {
 	status = "okay";
 	clock-frequency = <400000>;
+	/* Overwrite pinctrl-0 from sdm845.dtsi */
+	pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>;
 
-	hid@15 {
+	tsel: hid@15 {
 		compatible = "hid-over-i2c";
 		reg = <0x15>;
 		hid-descr-addr = <0x1>;
 
-		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
+		interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
 	};
 
-	hid@2c {
+	tsc2: hid@2c {
 		compatible = "hid-over-i2c";
 		reg = <0x2c>;
 		hid-descr-addr = <0x20>;
 
-		interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&i2c2_hid_active>;
+		interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
 	};
 };
 
@@ -268,15 +269,15 @@
 	status = "okay";
 	clock-frequency = <400000>;
 
-	hid@10 {
+	tsc1: hid@10 {
 		compatible = "hid-over-i2c";
 		reg = <0x10>;
 		hid-descr-addr = <0x1>;
 
-		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
+		interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>;
 
 		pinctrl-names = "default";
-		pinctrl-0 = <&i2c6_hid_active>;
+		pinctrl-0 = <&i2c5_hid_active>;
 	};
 };
 
@@ -284,7 +285,7 @@
 	status = "okay";
 	clock-frequency = <400000>;
 
-	hid@5c {
+	ecsh: hid@5c {
 		compatible = "hid-over-i2c";
 		reg = <0x5c>;
 		hid-descr-addr = <0x1>;
@@ -292,13 +293,15 @@
 		interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
 
 		pinctrl-names = "default";
-		pinctrl-0 = <&i2c12_hid_active>;
+		pinctrl-0 = <&i2c11_hid_active>;
 	};
 };
 
 &qup_i2c12_default {
-	drive-strength = <2>;
-	bias-disable;
+	pinmux {
+		drive-strength = <2>;
+		bias-disable;
+	};
 };
 
 &qup_uart6_default {
@@ -335,7 +338,7 @@
 &tlmm {
 	gpio-reserved-ranges = <0 4>, <81 4>;
 
-	i2c2_hid_active: i2c2-hid-active {
+	i2c3_hid_active: i2c2-hid-active {
 		pins = <37>;
 		function = "gpio";
 
@@ -344,7 +347,7 @@
 		drive-strength = <2>;
 	};
 
-	i2c6_hid_active: i2c6-hid-active {
+	i2c5_hid_active: i2c5-hid-active {
 		pins = <125>;
 		function = "gpio";
 
@@ -353,7 +356,7 @@
 		drive-strength = <2>;
 	};
 
-	i2c12_hid_active: i2c12-hid-active {
+	i2c11_hid_active: i2c11-hid-active {
 		pins = <92>;
 		function = "gpio";
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/qcom/sm8150.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/qcom/sm8150.dtsi
@@ -336,7 +336,7 @@
 			      <0x0 0x03D00000 0x0 0x300000>;
 			reg-names = "west", "east", "north", "south";
 			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
-			gpio-ranges = <&tlmm 0 0 175>;
+			gpio-ranges = <&tlmm 0 0 176>;
 			gpio-controller;
 			#gpio-cells = <2>;
 			interrupt-controller;
@@ -459,9 +459,9 @@
 			qcom,tcs-offset = <0xd00>;
 			qcom,drv-id = <2>;
 			qcom,tcs-config = <ACTIVE_TCS  2>,
-					  <SLEEP_TCS   1>,
-					  <WAKE_TCS    1>,
-					  <CONTROL_TCS 0>;
+					  <SLEEP_TCS   3>,
+					  <WAKE_TCS    3>,
+					  <CONTROL_TCS 1>;
 
 			rpmhcc: clock-controller {
 				compatible = "qcom,sm8150-rpmh-clk";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/cat875.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/cat875.dtsi
@@ -22,7 +22,6 @@
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
-		rxc-skew-ps = <1500>;
 		reg = <0>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/hihope-common.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/hihope-common.dtsi
@@ -86,7 +86,7 @@
 
 		label = "rcar-sound";
 
-		dais = <&rsnd_port0>;
+		dais = <&rsnd_port>;
 	};
 
 	vbus0_usb2: regulator-vbus0-usb2 {
@@ -191,7 +191,7 @@
 		port@2 {
 			reg = <2>;
 			dw_hdmi0_snd_in: endpoint {
-				remote-endpoint = <&rsnd_endpoint0>;
+				remote-endpoint = <&rsnd_endpoint>;
 			};
 		};
 	};
@@ -327,17 +327,15 @@
 	/* Single DAI */
 	#sound-dai-cells = <0>;
 
-	ports {
-		rsnd_port0: port@0 {
-			rsnd_endpoint0: endpoint {
-				remote-endpoint = <&dw_hdmi0_snd_in>;
-
-				dai-format = "i2s";
-				bitclock-master = <&rsnd_endpoint0>;
-				frame-master = <&rsnd_endpoint0>;
+	rsnd_port: port {
+		rsnd_endpoint: endpoint {
+			remote-endpoint = <&dw_hdmi0_snd_in>;
+
+			dai-format = "i2s";
+			bitclock-master = <&rsnd_endpoint>;
+			frame-master = <&rsnd_endpoint>;
 
-				playback = <&ssi2>;
-			};
+			playback = <&ssi2>;
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
@@ -23,7 +23,6 @@
 	status = "okay";
 
 	phy0: ethernet-phy@0 {
-		rxc-skew-ps = <1500>;
 		reg = <0>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
@@ -1726,17 +1726,6 @@
 				      "ssi.1", "ssi.0";
 			status = "disabled";
 
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				port@0 {
-					reg = <0>;
-				};
-				port@1 {
-					reg = <1>;
-				};
-			};
-
 			rcar_sound,ctu {
 				ctu00: ctu-0 { };
 				ctu01: ctu-1 { };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a774c0.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a774c0.dtsi
@@ -49,17 +49,14 @@
 		opp-shared;
 		opp-800000000 {
 			opp-hz = /bits/ 64 <800000000>;
-			opp-microvolt = <820000>;
 			clock-latency-ns = <300000>;
 		};
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
-			opp-microvolt = <820000>;
 			clock-latency-ns = <300000>;
 		};
 		opp-1200000000 {
 			opp-hz = /bits/ 64 <1200000000>;
-			opp-microvolt = <820000>;
 			clock-latency-ns = <300000>;
 			opp-suspend;
 		};
@@ -1212,9 +1209,8 @@
 			reg = <0 0xe6ea0000 0 0x0064>;
 			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 210>;
-			dmas = <&dmac1 0x43>, <&dmac1 0x42>,
-			       <&dmac2 0x43>, <&dmac2 0x42>;
-			dma-names = "tx", "rx", "tx", "rx";
+			dmas = <&dmac0 0x43>, <&dmac0 0x42>;
+			dma-names = "tx", "rx";
 			power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
 			resets = <&cpg 210>;
 			#address-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts
@@ -59,7 +59,7 @@
 	memory@48000000 {
 		device_type = "memory";
 		/* first 128MB is reserved for secure area. */
-		reg = <0x0 0x48000000 0x0 0x38000000>;
+		reg = <0x0 0x48000000 0x0 0x78000000>;
 	};
 
 	osc5_clk: osc5-clock {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77970.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a77970.dtsi
@@ -652,7 +652,7 @@
 		};
 
 		pwm3: pwm@e6e33000 {
-			compatible = "renesas,pwm-r8a7790", "renesas,pwm-rcar";
+			compatible = "renesas,pwm-r8a77970", "renesas,pwm-rcar";
 			reg = <0 0xe6e33000 0 8>;
 			#pwm-cells = <2>;
 			clocks = <&cpg CPG_MOD 523>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77980.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a77980.dtsi
@@ -990,8 +990,8 @@
 
 					reg = <1>;
 
-					vin4csi41: endpoint@2 {
-						reg = <2>;
+					vin4csi41: endpoint@3 {
+						reg = <3>;
 						remote-endpoint = <&csi41vin4>;
 					};
 				};
@@ -1018,8 +1018,8 @@
 
 					reg = <1>;
 
-					vin5csi41: endpoint@2 {
-						reg = <2>;
+					vin5csi41: endpoint@3 {
+						reg = <3>;
 						remote-endpoint = <&csi41vin5>;
 					};
 				};
@@ -1046,8 +1046,8 @@
 
 					reg = <1>;
 
-					vin6csi41: endpoint@2 {
-						reg = <2>;
+					vin6csi41: endpoint@3 {
+						reg = <3>;
 						remote-endpoint = <&csi41vin6>;
 					};
 				};
@@ -1074,8 +1074,8 @@
 
 					reg = <1>;
 
-					vin7csi41: endpoint@2 {
-						reg = <2>;
+					vin7csi41: endpoint@3 {
+						reg = <3>;
 						remote-endpoint = <&csi41vin7>;
 					};
 				};
@@ -1318,6 +1318,7 @@
 		ipmmu_vip0: mmu@e7b00000 {
 			compatible = "renesas,ipmmu-r8a77980";
 			reg = <0 0xe7b00000 0 0x1000>;
+			renesas,ipmmu-main = <&ipmmu_mm 4>;
 			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 			#iommu-cells = <1>;
 		};
@@ -1325,6 +1326,7 @@
 		ipmmu_vip1: mmu@e7960000 {
 			compatible = "renesas,ipmmu-r8a77980";
 			reg = <0 0xe7960000 0 0x1000>;
+			renesas,ipmmu-main = <&ipmmu_mm 11>;
 			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
 			#iommu-cells = <1>;
 		};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
@@ -636,7 +636,6 @@
 	/* audio_clkout0/1/2/3 */
 	#clock-cells = <1>;
 	clock-frequency = <12288000 11289600>;
-	clkout-lr-synchronous;
 
 	status = "okay";
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77990.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a77990.dtsi
@@ -60,17 +60,14 @@
 		opp-shared;
 		opp-800000000 {
 			opp-hz = /bits/ 64 <800000000>;
-			opp-microvolt = <820000>;
 			clock-latency-ns = <300000>;
 		};
 		opp-1000000000 {
 			opp-hz = /bits/ 64 <1000000000>;
-			opp-microvolt = <820000>;
 			clock-latency-ns = <300000>;
 		};
 		opp-1200000000 {
 			opp-hz = /bits/ 64 <1200000000>;
-			opp-microvolt = <820000>;
 			clock-latency-ns = <300000>;
 			opp-suspend;
 		};
@@ -1168,9 +1165,8 @@
 			reg = <0 0xe6ea0000 0 0x0064>;
 			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 210>;
-			dmas = <&dmac1 0x43>, <&dmac1 0x42>,
-			       <&dmac2 0x43>, <&dmac2 0x42>;
-			dma-names = "tx", "rx", "tx", "rx";
+			dmas = <&dmac0 0x43>, <&dmac0 0x42>;
+			dma-names = "tx", "rx";
 			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
 			resets = <&cpg 210>;
 			#address-cells = <1>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
@@ -277,10 +277,6 @@
 		interrupt-parent = <&gpio1>;
 		interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
 
-		/* Depends on LVDS */
-		max-clock = <135000000>;
-		min-vrefresh = <50>;
-
 		adi,input-depth = <8>;
 		adi,input-colorspace = "rgb";
 		adi,input-clock = "1x";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
@@ -269,7 +269,7 @@
 	};
 
 	scif1_pins: scif1 {
-		groups = "scif1_data_b", "scif1_ctrl";
+		groups = "scif1_data_b";
 		function = "scif1";
 	};
 
@@ -329,7 +329,6 @@
 &scif1 {
 	pinctrl-0 = <&scif1_pins>;
 	pinctrl-names = "default";
-	uart-has-rtscts;
 
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/renesas/ulcb.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/renesas/ulcb.dtsi
@@ -470,6 +470,7 @@
 	mmc-hs200-1_8v;
 	mmc-hs400-1_8v;
 	non-removable;
+	full-pwr-cycle-in-suspend;
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/px30.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/px30.dtsi
@@ -213,20 +213,20 @@
 			#size-cells = <0>;
 
 			/* These power domains are grouped by VD_LOGIC */
-			pd_usb@PX30_PD_USB {
+			power-domain@PX30_PD_USB {
 				reg = <PX30_PD_USB>;
 				clocks = <&cru HCLK_HOST>,
 					 <&cru HCLK_OTG>,
 					 <&cru SCLK_OTG_ADP>;
 				pm_qos = <&qos_usb_host>, <&qos_usb_otg>;
 			};
-			pd_sdcard@PX30_PD_SDCARD {
+			power-domain@PX30_PD_SDCARD {
 				reg = <PX30_PD_SDCARD>;
 				clocks = <&cru HCLK_SDMMC>,
 					 <&cru SCLK_SDMMC>;
 				pm_qos = <&qos_sdmmc>;
 			};
-			pd_gmac@PX30_PD_GMAC {
+			power-domain@PX30_PD_GMAC {
 				reg = <PX30_PD_GMAC>;
 				clocks = <&cru ACLK_GMAC>,
 					 <&cru PCLK_GMAC>,
@@ -234,7 +234,7 @@
 					 <&cru SCLK_GMAC_RX_TX>;
 				pm_qos = <&qos_gmac>;
 			};
-			pd_mmc_nand@PX30_PD_MMC_NAND {
+			power-domain@PX30_PD_MMC_NAND {
 				reg = <PX30_PD_MMC_NAND>;
 				clocks =  <&cru HCLK_NANDC>,
 					  <&cru HCLK_EMMC>,
@@ -247,14 +247,14 @@
 				pm_qos = <&qos_emmc>, <&qos_nand>,
 					 <&qos_sdio>, <&qos_sfc>;
 			};
-			pd_vpu@PX30_PD_VPU {
+			power-domain@PX30_PD_VPU {
 				reg = <PX30_PD_VPU>;
 				clocks = <&cru ACLK_VPU>,
 					 <&cru HCLK_VPU>,
 					 <&cru SCLK_CORE_VPU>;
 				pm_qos = <&qos_vpu>, <&qos_vpu_r128>;
 			};
-			pd_vo@PX30_PD_VO {
+			power-domain@PX30_PD_VO {
 				reg = <PX30_PD_VO>;
 				clocks = <&cru ACLK_RGA>,
 					 <&cru ACLK_VOPB>,
@@ -270,7 +270,7 @@
 				pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
 					 <&qos_vop_m0>, <&qos_vop_m1>;
 			};
-			pd_vi@PX30_PD_VI {
+			power-domain@PX30_PD_VI {
 				reg = <PX30_PD_VI>;
 				clocks = <&cru ACLK_CIF>,
 					 <&cru ACLK_ISP>,
@@ -281,7 +281,7 @@
 					 <&qos_isp_wr>, <&qos_isp_m1>,
 					 <&qos_vip>;
 			};
-			pd_gpu@PX30_PD_GPU {
+			power-domain@PX30_PD_GPU {
 				reg = <PX30_PD_GPU>;
 				clocks = <&cru SCLK_GPU>;
 				pm_qos = <&qos_gpu>;
@@ -768,7 +768,7 @@
 		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
 			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		pinctrl-names = "default";
@@ -783,7 +783,7 @@
 		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
 			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		pinctrl-names = "default";
@@ -798,7 +798,7 @@
 		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
 			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		power-domains = <&power PX30_PD_MMC_NAND>;
@@ -860,7 +860,7 @@
 	vopl_mmu: iommu@ff470f00 {
 		compatible = "rockchip,iommu";
 		reg = <0x0 0xff470f00 0x0 0x100>;
-		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
 		interrupt-names = "vopl_mmu";
 		clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
 		clock-names = "aclk", "hclk";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
@@ -86,13 +86,13 @@
 	assigned-clock-rate = <50000000>;
 	assigned-clocks = <&cru SCLK_MAC2PHY>;
 	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
-
+	status = "okay";
 };
 
 &i2c1 {
 	status = "okay";
 
-	rk805: rk805@18 {
+	rk805: pmic@18 {
 		compatible = "rockchip,rk805";
 		reg = <0x18>;
 		interrupt-parent = <&gpio2>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
@@ -90,7 +90,6 @@
 			linux,default-trigger = "heartbeat";
 			gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
 			default-state = "on";
-			mode = <0x23>;
 		};
 
 		user {
@@ -98,7 +97,6 @@
 			linux,default-trigger = "mmc1";
 			gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
 			default-state = "off";
-			mode = <0x05>;
 		};
 	};
 };
@@ -333,6 +331,7 @@
 };
 
 &usb20_otg {
+	dr_mode = "host";
 	status = "okay";
 };
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
@@ -169,7 +169,7 @@
 &i2c1 {
 	status = "okay";
 
-	rk805: rk805@18 {
+	rk805: pmic@18 {
 		compatible = "rockchip,rk805";
 		reg = <0x18>;
 		interrupt-parent = <&gpio2>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -270,13 +270,13 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 
-			pd_hevc@RK3328_PD_HEVC {
+			power-domain@RK3328_PD_HEVC {
 				reg = <RK3328_PD_HEVC>;
 			};
-			pd_video@RK3328_PD_VIDEO {
+			power-domain@RK3328_PD_VIDEO {
 				reg = <RK3328_PD_VIDEO>;
 			};
-			pd_vpu@RK3328_PD_VPU {
+			power-domain@RK3328_PD_VPU {
 				reg = <RK3328_PD_VPU>;
 				clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
 			};
@@ -555,7 +555,7 @@
 
 	gpu: gpu@ff300000 {
 		compatible = "rockchip,rk3328-mali", "arm,mali-450";
-		reg = <0x0 0xff300000 0x0 0x40000>;
+		reg = <0x0 0xff300000 0x0 0x30000>;
 		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
@@ -1190,8 +1190,8 @@
 
 		uart0 {
 			uart0_xfer: uart0-xfer {
-				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
-						<1 RK_PB0 1 &pcfg_pull_none>;
+				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
+						<1 RK_PB0 1 &pcfg_pull_up>;
 			};
 
 			uart0_cts: uart0-cts {
@@ -1209,8 +1209,8 @@
 
 		uart1 {
 			uart1_xfer: uart1-xfer {
-				rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
-						<3 RK_PA6 4 &pcfg_pull_none>;
+				rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
+						<3 RK_PA6 4 &pcfg_pull_up>;
 			};
 
 			uart1_cts: uart1-cts {
@@ -1228,15 +1228,15 @@
 
 		uart2-0 {
 			uart2m0_xfer: uart2m0-xfer {
-				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
-						<1 RK_PA1 2 &pcfg_pull_none>;
+				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
+						<1 RK_PA1 2 &pcfg_pull_up>;
 			};
 		};
 
 		uart2-1 {
 			uart2m1_xfer: uart2m1-xfer {
-				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
-						<2 RK_PA1 1 &pcfg_pull_none>;
+				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
+						<2 RK_PA1 1 &pcfg_pull_up>;
 			};
 		};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi
@@ -156,7 +156,7 @@
 	pinctrl-0 = <&rgmii_pins>;
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
-	snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+	snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
 	tx_delay = <0x10>;
 	rx_delay = <0x10>;
 	status = "okay";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -666,12 +666,15 @@
 	sd-uhs-sdr104;
 
 	/* Power supply */
-	vqmmc-supply = &vcc1v8_s3;	/* IO line */
-	vmmc-supply = &vcc_sdio;	/* card's power */
+	vqmmc-supply = <&vcc1v8_s3>;	/* IO line */
+	vmmc-supply = <&vcc_sdio>;	/* card's power */
 
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts
@@ -77,3 +77,8 @@
 		};
 	};
 };
+
+&wlan_host_wake_l {
+	/* Kevin has an external pull up, but Bob does not. */
+	rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
@@ -237,6 +237,14 @@
 &edp {
 	status = "okay";
 
+	/*
+	 * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only
+	 * set this here, because rk3399-gru.dtsi ensures we can generate this
+	 * off GPLL=600MHz, whereas some other RK3399 boards may not.
+	 */
+	assigned-clocks = <&cru PCLK_EDP>;
+	assigned-clock-rates = <24000000>;
+
 	ports {
 		edp_out: port@1 {
 			reg = <1>;
@@ -397,6 +405,7 @@
 	};
 
 	wlan_host_wake_l: wlan-host-wake-l {
+		/* Kevin has an external pull up, but Bob does not */
 		rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
@@ -281,7 +281,7 @@
 
 	sound: sound {
 		compatible = "rockchip,rk3399-gru-sound";
-		rockchip,cpu = <&i2s0 &i2s2>;
+		rockchip,cpu = <&i2s0 &spdif>;
 	};
 };
 
@@ -432,10 +432,6 @@
 	status = "okay";
 };
 
-&i2s2 {
-	status = "okay";
-};
-
 &io_domains {
 	status = "okay";
 
@@ -532,6 +528,17 @@
 	vqmmc-supply = <&ppvar_sd_card_io>;
 };
 
+&spdif {
+	status = "okay";
+
+	/*
+	 * SPDIF is routed internally to DP; we either don't use these pins, or
+	 * mux them to something else.
+	 */
+	/delete-property/ pinctrl-0;
+	/delete-property/ pinctrl-names;
+};
+
 &spi1 {
 	status = "okay";
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
@@ -654,9 +654,12 @@
 	sd-uhs-sdr104;
 	vqmmc-supply = <&vcc1v8_s3>;
 	vmmc-supply = <&vccio_sd>;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
@@ -682,7 +685,6 @@
 &sdhci {
 	bus-width = <8>;
 	mmc-hs400-1_8v;
-	mmc-hs400-enhanced-strobe;
 	non-removable;
 	status = "okay";
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts
@@ -49,7 +49,7 @@
 		regulator-boot-on;
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
-		vim-supply = <&vcc3v3_sys>;
+		vin-supply = <&vcc3v3_sys>;
 	};
 
 	vcc3v3_sys: vcc3v3-sys {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts
@@ -94,33 +94,6 @@
 	};
 };
 
-&gpu_thermal {
-	trips {
-		gpu_warm: gpu_warm {
-			temperature = <55000>;
-			hysteresis = <2000>;
-			type = "active";
-		};
-
-		gpu_hot: gpu_hot {
-			temperature = <65000>;
-			hysteresis = <2000>;
-			type = "active";
-		};
-	};
-	cooling-maps {
-		map1 {
-			trip = <&gpu_warm>;
-			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
-		};
-
-		map2 {
-			trip = <&gpu_hot>;
-			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
-		};
-	};
-};
-
 &pinctrl {
 	ir {
 		ir_rx: ir-rx {
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
@@ -648,9 +648,12 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 	sd-uhs-sdr104;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
@@ -203,7 +203,7 @@
 	cap-sd-highspeed;
 	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 	disable-wp;
-	max-frequency = <150000000>;
+	max-frequency = <40000000>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 	vmmc-supply = <&vcc3v3_baseboard>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
@@ -101,8 +101,7 @@
 
 	vcc5v0_host: vcc5v0-host-regulator {
 		compatible = "regulator-fixed";
-		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
-		enable-active-low;
+		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&vcc5v0_host_en>;
 		regulator-name = "vcc5v0_host";
@@ -157,7 +156,7 @@
 	phy-mode = "rgmii";
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
 	tx_delay = <0x10>;
@@ -467,6 +466,12 @@
 };
 
 &sdhci {
+	/*
+	 * Signal integrity isn't great at 200MHz but 100MHz has proven stable
+	 * enough.
+	 */
+	max-frequency = <100000000>;
+
 	bus-width = <8>;
 	mmc-hs400-1_8v;
 	mmc-hs400-enhanced-strobe;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dts
@@ -441,7 +441,6 @@
 &i2s1 {
 	rockchip,playback-channels = <2>;
 	rockchip,capture-channels = <2>;
-	status = "okay";
 };
 
 &i2s2 {
@@ -452,7 +451,7 @@
 	status = "okay";
 
 	bt656-supply = <&vcc_3v0>;
-	audio-supply = <&vcc_3v0>;
+	audio-supply = <&vcc1v8_codec>;
 	sdmmc-supply = <&vcc_sdio>;
 	gpio1830-supply = <&vcc_3v0>;
 };
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -29,6 +29,9 @@
 		i2c6 = &i2c6;
 		i2c7 = &i2c7;
 		i2c8 = &i2c8;
+		mmc0 = &sdio0;
+		mmc1 = &sdmmc;
+		mmc2 = &sdhci;
 		serial0 = &uart0;
 		serial1 = &uart1;
 		serial2 = &uart2;
@@ -229,6 +232,7 @@
 		reg = <0x0 0xf8000000 0x0 0x2000000>,
 		      <0x0 0xfd000000 0x0 0x1000000>;
 		reg-names = "axi-base", "apb-base";
+		device_type = "pci";
 		#address-cells = <3>;
 		#size-cells = <2>;
 		#interrupt-cells = <1>;
@@ -247,7 +251,6 @@
 				<0 0 0 2 &pcie0_intc 1>,
 				<0 0 0 3 &pcie0_intc 2>,
 				<0 0 0 4 &pcie0_intc 3>;
-		linux,pci-domain = <0>;
 		max-link-speed = <1>;
 		msi-map = <0x0 &its 0x0 0x1000>;
 		phys = <&pcie_phy 0>, <&pcie_phy 1>,
@@ -410,7 +413,7 @@
 		reset-names = "usb3-otg";
 		status = "disabled";
 
-		usbdrd_dwc3_0: dwc3 {
+		usbdrd_dwc3_0: usb@fe800000 {
 			compatible = "snps,dwc3";
 			reg = <0x0 0xfe800000 0x0 0x100000>;
 			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -446,7 +449,7 @@
 		reset-names = "usb3-otg";
 		status = "disabled";
 
-		usbdrd_dwc3_1: dwc3 {
+		usbdrd_dwc3_1: usb@fe900000 {
 			compatible = "snps,dwc3";
 			reg = <0x0 0xfe900000 0x0 0x100000>;
 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
@@ -1444,6 +1447,7 @@
 			reg = <0xf780 0x24>;
 			clocks = <&sdhci>;
 			clock-names = "emmcclk";
+			drive-impedance-ohm = <50>;
 			#phy-cells = <0>;
 			status = "disabled";
 		};
@@ -1454,7 +1458,6 @@
 			clock-names = "refclk";
 			#phy-cells = <1>;
 			resets = <&cru SRST_PCIEPHY>;
-			drive-impedance-ohm = <50>;
 			reset-names = "phy";
 			status = "disabled";
 		};
@@ -1743,10 +1746,10 @@
 		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
 		clocks = <&cru PCLK_HDMI_CTRL>,
 			 <&cru SCLK_HDMI_SFR>,
-			 <&cru PLL_VPLL>,
+			 <&cru SCLK_HDMI_CEC>,
 			 <&cru PCLK_VIO_GRF>,
-			 <&cru SCLK_HDMI_CEC>;
-		clock-names = "iahb", "isfr", "vpll", "grf", "cec";
+			 <&cru PLL_VPLL>;
+		clock-names = "iahb", "isfr", "cec", "grf", "vpll";
 		power-domains = <&power RK3399_PD_HDCP>;
 		reg-io-width = <4>;
 		rockchip,grf = <&grf>;
@@ -1881,10 +1884,10 @@
 	gpu: gpu@ff9a0000 {
 		compatible = "rockchip,rk3399-mali", "arm,mali-t860";
 		reg = <0x0 0xff9a0000 0x0 0x10000>;
-		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
-			     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
-			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
-		interrupt-names = "gpu", "job", "mmu";
+		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
+			     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+		interrupt-names = "job", "mmu", "gpu";
 		clocks = <&cru ACLK_GPU>;
 		power-domains = <&power RK3399_PD_GPU>;
 		status = "disabled";
@@ -2314,7 +2317,7 @@
 			};
 		};
 
-		sleep {
+		suspend {
 			ap_pwroff: ap-pwroff {
 				rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
 			};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
@@ -718,7 +718,7 @@
 			clocks = <&sys_clk 6>;
 			reset-names = "ether";
 			resets = <&sys_rst 6>;
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 			local-mac-address = [00 00 00 00 00 00];
 			socionext,syscon-phy-mode = <&soc_glue 0>;
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
@@ -509,7 +509,7 @@
 			clocks = <&sys_clk 6>;
 			reset-names = "ether";
 			resets = <&sys_rst 6>;
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 			local-mac-address = [00 00 00 00 00 00];
 			socionext,syscon-phy-mode = <&soc_glue 0>;
 
@@ -530,7 +530,7 @@
 			clocks = <&sys_clk 7>;
 			reset-names = "ether";
 			resets = <&sys_rst 7>;
-			phy-mode = "rgmii";
+			phy-mode = "rgmii-id";
 			local-mac-address = [00 00 00 00 00 00];
 			socionext,syscon-phy-mode = <&soc_glue 1>;
 
@@ -544,8 +544,8 @@
 			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
 			status = "disabled";
 			reg = <0x65a00000 0xcd00>;
-			interrupt-names = "host", "peripheral";
-			interrupts = <0 134 4>, <0 135 4>;
+			interrupt-names = "dwc_usb3";
+			interrupts = <0 134 4>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
 			clock-names = "ref", "bus_early", "suspend";
@@ -646,8 +646,8 @@
 			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
 			status = "disabled";
 			reg = <0x65c00000 0xcd00>;
-			interrupt-names = "host", "peripheral";
-			interrupts = <0 137 4>, <0 138 4>;
+			interrupt-names = "dwc_usb3";
+			interrupts = <0 137 4>;
 			pinctrl-names = "default";
 			pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
 			clock-names = "ref", "bus_early", "suspend";
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -307,6 +307,7 @@
 		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
 		dma-coherent;
 		power-domains = <&k3_pds 151 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 151 2>, <&k3_clks 151 7>;
 		assigned-clocks = <&k3_clks 151 2>, <&k3_clks 151 7>;
 		assigned-clock-parents = <&k3_clks 151 4>,	/* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
 					 <&k3_clks 151 9>;	/* set PIPE3_TXB_CLK to CLK_12M_RC/256 (for HS only) */
@@ -346,6 +347,7 @@
 		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
 		dma-coherent;
 		power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 152 2>;
 		assigned-clocks = <&k3_clks 152 2>;
 		assigned-clock-parents = <&k3_clks 152 4>;	/* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -43,6 +43,7 @@
 	smmu0: smmu@36600000 {
 		compatible = "arm,smmu-v3";
 		reg = <0x0 0x36600000 0x0 0x100000>;
+		power-domains = <&k3_pds 229 TI_SCI_PD_EXCLUSIVE>;
 		interrupt-parent = <&gic500>;
 		interrupts = <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>,
 			     <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>;
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/ti/k3-j721e.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/ti/k3-j721e.dtsi
@@ -60,7 +60,7 @@
 			i-cache-sets = <256>;
 			d-cache-size = <0x8000>;
 			d-cache-line-size = <64>;
-			d-cache-sets = <128>;
+			d-cache-sets = <256>;
 			next-level-cache = <&L2_0>;
 		};
 
@@ -74,7 +74,7 @@
 			i-cache-sets = <256>;
 			d-cache-size = <0x8000>;
 			d-cache-line-size = <64>;
-			d-cache-sets = <128>;
+			d-cache-sets = <256>;
 			next-level-cache = <&L2_0>;
 		};
 	};
@@ -84,7 +84,7 @@
 		cache-level = <2>;
 		cache-size = <0x100000>;
 		cache-line-size = <64>;
-		cache-sets = <2048>;
+		cache-sets = <1024>;
 		next-level-cache = <&msmc_l3>;
 	};
 
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
+++ linux-ein-5.4.0/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
@@ -131,7 +131,7 @@
 		reg = <0>;
 
 		partition@0 {
-			label = "data";
+			label = "spi0-data";
 			reg = <0x0 0x100000>;
 		};
 	};
@@ -149,7 +149,7 @@
 		reg = <0>;
 
 		partition@0 {
-			label = "data";
+			label = "spi1-data";
 			reg = <0x0 0x84000>;
 		};
 	};
--- linux-ein-5.4.0.orig/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ linux-ein-5.4.0/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -419,7 +419,7 @@
 		};
 
 		i2c0: i2c@ff020000 {
-			compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
+			compatible = "cdns,i2c-r1p14";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 17 4>;
@@ -429,7 +429,7 @@
 		};
 
 		i2c1: i2c@ff030000 {
-			compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
+			compatible = "cdns,i2c-r1p14";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 18 4>;
@@ -582,7 +582,7 @@
 		};
 
 		uart0: serial@ff000000 {
-			compatible = "cdns,uart-r1p12", "xlnx,xuartps";
+			compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 21 4>;
@@ -591,7 +591,7 @@
 		};
 
 		uart1: serial@ff010000 {
-			compatible = "cdns,uart-r1p12", "xlnx,xuartps";
+			compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
 			status = "disabled";
 			interrupt-parent = <&gic>;
 			interrupts = <0 22 4>;
--- linux-ein-5.4.0.orig/arch/arm64/configs/defconfig
+++ linux-ein-5.4.0/arch/arm64/configs/defconfig
@@ -486,6 +486,7 @@
 CONFIG_REGULATOR_HI655X=y
 CONFIG_REGULATOR_MAX77620=y
 CONFIG_REGULATOR_MAX8973=y
+CONFIG_REGULATOR_PCA9450=y
 CONFIG_REGULATOR_PFUZE100=y
 CONFIG_REGULATOR_PWM=y
 CONFIG_REGULATOR_QCOM_RPMH=y
--- linux-ein-5.4.0.orig/arch/arm64/configs/imx_v8_pe100a_defconfig
+++ linux-ein-5.4.0/arch/arm64/configs/imx_v8_pe100a_defconfig
@@ -0,0 +1,938 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_AUDIT=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_ARCH_LAYERSCAPE=y
+CONFIG_ARCH_MXC=y
+CONFIG_ARCH_S32=y
+CONFIG_SOC_S32V234=y
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_SCHED_MC=y
+CONFIG_NUMA=y
+CONFIG_SECCOMP=y
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+CONFIG_XEN=y
+CONFIG_FORCE_MAX_ZONEORDER=14
+CONFIG_COMPAT=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ACPI_CPPC_CPUFREQ=m
+CONFIG_ARM_SCPI_CPUFREQ=y
+CONFIG_ARM_IMX_CPUFREQ_DT=y
+CONFIG_QORIQ_CPUFREQ=y
+CONFIG_ARM_SCPI_PROTOCOL=y
+CONFIG_EFI_CAPSULE_LOADER=y
+CONFIG_IMX_DSP=y
+CONFIG_IMX_SCU=y
+CONFIG_IMX_SCU_PD=y
+CONFIG_IMX_SECO_MU=y
+CONFIG_ACPI=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_KSM=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IPV6_SIT=m
+CONFIG_NETFILTER=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_LLC2=y
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_MULTIQ=y
+CONFIG_NET_SCH_CBS=y
+CONFIG_NET_SCH_TAPRIO=y
+CONFIG_NET_SCH_MQPRIO=y
+CONFIG_NET_CLS_BASIC=y
+CONFIG_NET_CLS_TCINDEX=y
+CONFIG_TSN=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_BPF_JIT=y
+CONFIG_NET_PKTGEN=y
+CONFIG_CAN=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_FLEXCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_DEBUG_DEVICES=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+# CONFIG_BT_HS is not set
+# CONFIG_BT_LE is not set
+CONFIG_BT_LEDS=y
+# CONFIG_BT_DEBUGFS is not set
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIVHCI=y
+CONFIG_CFG80211=y
+CONFIG_NL80211_TESTMODE=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=y
+CONFIG_MAC80211_LEDS=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCI_IOV=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCI_XGENE=y
+CONFIG_PCIE_ALTERA=y
+CONFIG_PCIE_ALTERA_MSI=y
+CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCI_IMX6_HOST=y
+CONFIG_PCI_IMX6_EP=y
+CONFIG_PCI_LAYERSCAPE=y
+CONFIG_PCI_HISI=y
+CONFIG_PCIE_KIRIN=y
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+CONFIG_PCI_EPF_TEST=y
+CONFIG_IMX_MIC_EPF=m
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_FW_LOADER_USER_HELPER=y
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
+CONFIG_BRCMSTB_GISB_ARB=y
+CONFIG_SIMPLE_PM_BUS=y
+CONFIG_VEXPRESS_CONFIG=y
+CONFIG_FSL_MC_BUS=y
+CONFIG_FSL_MC_UAPI_SUPPORT=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_DATAFLASH=y
+CONFIG_MTD_SST25L=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_NAND_DENALI_DT=y
+CONFIG_MTD_NAND_GPMI_NAND=y
+CONFIG_MTD_NAND_FSL_IFC=y
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_VIRTIO_BLK=y
+CONFIG_BLK_DEV_NVME=y
+CONFIG_SENSORS_FXOS8700=y
+CONFIG_SENSORS_FXAS2100X=y
+CONFIG_SRAM=y
+CONFIG_PCI_ENDPOINT_TEST=y
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=m
+CONFIG_SCIF_BUS=m
+CONFIG_VOP_BUS=m
+CONFIG_IMX_MIC_HOST=m
+CONFIG_IMX_MIC_CARD=m
+CONFIG_SCIF=m
+CONFIG_MIC_COSM=m
+CONFIG_VOP=m
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_HISI_SAS=y
+CONFIG_SCSI_HISI_SAS_PCI=y
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_UFSHCD=y
+CONFIG_SCSI_UFSHCD_PLATFORM=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_AHCI_CEVA=y
+CONFIG_AHCI_XGENE=y
+CONFIG_AHCI_QORIQ=y
+CONFIG_SATA_SIL24=y
+CONFIG_PATA_PLATFORM=y
+CONFIG_PATA_OF_PLATFORM=y
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_NETDEVICES=y
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_TUN=y
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=y
+CONFIG_AMD_XGBE=y
+CONFIG_ATL1C=m
+CONFIG_BNX2X=m
+CONFIG_MACB=y
+CONFIG_THUNDER_NIC_PF=y
+CONFIG_FEC=y
+CONFIG_FSL_SDK_DPAA_ETH=y
+CONFIG_FSL_DPAA2_ETH=y
+CONFIG_FSL_ENETC=y
+CONFIG_FSL_ENETC_VF=y
+CONFIG_HIX5HD2_GMAC=y
+CONFIG_HNS_DSAF=y
+CONFIG_HNS_ENET=y
+CONFIG_HNS3=y
+CONFIG_HNS3_HCLGE=y
+CONFIG_HNS3_ENET=y
+CONFIG_E1000=y
+CONFIG_E1000E=y
+CONFIG_IGB=y
+CONFIG_IGBVF=y
+CONFIG_MVMDIO=y
+CONFIG_SKY2=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
+CONFIG_MSCC_OCELOT_SWITCH=y
+CONFIG_QCOM_EMAC=m
+CONFIG_SMC91X=y
+CONFIG_SMSC911X=y
+CONFIG_STMMAC_ETH=y
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
+CONFIG_PPP=y
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPPOE=y
+CONFIG_AQUANTIA_PHY=y
+CONFIG_AT803X_PHY=y
+CONFIG_INPHI_PHY=y
+CONFIG_MARVELL_PHY=m
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MICREL_PHY=y
+CONFIG_MICROSEMI_PHY=y
+CONFIG_NXP_TJA11XX_PHY=y
+CONFIG_REALTEK_PHY=y
+CONFIG_ROCKCHIP_PHY=y
+CONFIG_VITESSE_PHY=y
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_CDC_MBIM=y
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_QMI_WWAN=y
+CONFIG_USB_NET_RNDIS_HOST=y
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PCIE=y
+CONFIG_HOSTAP=y
+CONFIG_MXMWIFIEX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_IVSHMEM_NET=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_ADC=m
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_SNVS_PWRKEY=y
+CONFIG_KEYBOARD_IMX_SC_PWRKEY=y
+CONFIG_KEYBOARD_CROS_EC=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_I2C=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MPL3115=y
+CONFIG_INPUT_ISL29023=y
+CONFIG_INPUT_UINPUT=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SERIO_AMBAKMI=y
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_XILINX_PS_UART=y
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+CONFIG_SERIAL_FSL_LINFLEXUART=y
+CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_TIS_I2C_INFINEON=y
+CONFIG_TCG_TIS_SPI=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_IMX=y
+CONFIG_I2C_IMX_LPI2C=y
+CONFIG_I2C_RK3X=y
+CONFIG_I2C_RPBUS=y
+CONFIG_I2C_CROS_EC_TUNNEL=y
+CONFIG_XEN_I2C_BACKEND=y
+CONFIG_I2C_SLAVE=y
+CONFIG_SPI=y
+CONFIG_SPI_FSL_LPSPI=y
+CONFIG_SPI_FSL_QUADSPI=y
+CONFIG_SPI_NXP_FLEXSPI=y
+CONFIG_SPI_IMX=y
+CONFIG_SPI_FSL_DSPI=y
+CONFIG_SPI_PL022=y
+CONFIG_SPI_ROCKCHIP=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SLAVE_TIME=y
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=y
+CONFIG_SPMI=y
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_MAX77620=y
+CONFIG_PINCTRL_IMX8MM=y
+CONFIG_PINCTRL_IMX8MN=y
+CONFIG_PINCTRL_IMX8MP=y
+CONFIG_PINCTRL_IMX8MQ=y
+CONFIG_PINCTRL_IMX8QM=y
+CONFIG_PINCTRL_IMX8QXP=y
+CONFIG_PINCTRL_IMX8DXL=y
+CONFIG_PINCTRL_S32V234=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_GPIO_MB86S7X=y
+CONFIG_GPIO_MPC8XXX=y
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_MAX732X=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_MAX77620=y
+CONFIG_POWER_AVS=y
+CONFIG_POWER_RESET_BRCMSTB=y
+CONFIG_POWER_RESET_VEXPRESS=y
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_RESET_ASUS_PE100A=y
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_BATTERY_SBS=m
+CONFIG_BATTERY_BQ27XXX=y
+CONFIG_SENSORS_ARM_SCPI=y
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_CPU_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_IMX_SC_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_IMX8MM_THERMAL=y
+CONFIG_QORIQ_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_ARM_SP805_WATCHDOG=y
+CONFIG_ARM_SBSA_WATCHDOG=y
+CONFIG_DW_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_IMX_SC_WDT=y
+CONFIG_XEN_WDT=y
+CONFIG_MFD_BD9571MWV=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_IMX_AUDIOMIX=y
+CONFIG_MFD_HI6421_PMIC=y
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_RK808=y
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_ROHM_BD718XX=y
+CONFIG_MFD_PCA9450=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_BD718XX=y
+CONFIG_REGULATOR_BD9571MWV=y
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_HI6421V530=y
+CONFIG_REGULATOR_MAX77620=y
+CONFIG_REGULATOR_MAX8973=y
+CONFIG_REGULATOR_PCA9450=y
+CONFIG_REGULATOR_PFUZE100=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_QCOM_SPMI=y
+CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_S2MPS11=y
+CONFIG_REGULATOR_VCTRL=m
+CONFIG_RC_CORE=m
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_RCMM_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_IR_GPIO_CIR=m
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_DVB_NET is not set
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MX8_CAPTURE=y
+CONFIG_VIDEO_MXC_CAPTURE=y
+CONFIG_VIDEO_MXC_CSI_CAMERA=y
+CONFIG_MXC_MIPI_CSI=y
+CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_OV5640=y
+CONFIG_IMX_DPU_CORE=y
+CONFIG_IMX_LCDIF_CORE=y
+CONFIG_IMX_LCDIFV3_CORE=y
+CONFIG_DRM=y
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_MALI_DISPLAY=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_RCAR_LVDS=m
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_DRM_PANEL_RAYDIUM_RM67191=y
+CONFIG_DRM_PANEL_SEIKO_43WVF1G=y
+CONFIG_DRM_PANEL_WKS_101WX001=y
+CONFIG_DRM_FSL_IMX_LVDS_BRIDGE=y
+CONFIG_DRM_NXP_SEIKO_43WVFIG=y
+CONFIG_DRM_SII902X=m
+CONFIG_DRM_I2C_ADV7511=y
+CONFIG_DRM_NWL_MIPI_DSI=y
+CONFIG_DRM_CDNS_HDMI_CEC=y
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+CONFIG_DRM_DW_HDMI_GP_AUDIO=y
+CONFIG_DRM_DW_HDMI_CEC=y
+CONFIG_DRM_ITE_IT6263=y
+CONFIG_DRM_IMX=y
+CONFIG_DRM_IMX_LCDIF_MUX_DISPLAY=y
+CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
+CONFIG_DRM_IMX_TVE=y
+CONFIG_DRM_IMX_LDB=y
+CONFIG_DRM_IMX8QM_LDB=y
+CONFIG_DRM_IMX8QXP_LDB=y
+CONFIG_DRM_IMX8MP_LDB=y
+CONFIG_DRM_IMX_HDMI=y
+CONFIG_DRM_IMX_SEC_DSIM=y
+CONFIG_DRM_IMX_DCSS=y
+CONFIG_DRM_IMX_CDNS_MHDP=y
+CONFIG_DRM_ETNAVIV=m
+CONFIG_DRM_HISI_HIBMC=m
+CONFIG_DRM_HISI_KIRIN=m
+CONFIG_DRM_MXSFB=y
+CONFIG_DRM_PL111=m
+CONFIG_DRM_LIMA=m
+CONFIG_DRM_PANFROST=m
+CONFIG_FB_ARMCLCD=y
+CONFIG_FB_EFI=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_BACKLIGHT_LP855X=m
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_FSL_EASRC=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_AK4458=y
+CONFIG_SND_SOC_IMX_AK5558=y
+CONFIG_SND_SOC_IMX_AK4497=y
+CONFIG_SND_SOC_IMX_WM8960=y
+CONFIG_SND_SOC_IMX_WM8524=y
+CONFIG_SND_SOC_IMX_CS42888=y
+CONFIG_SND_SOC_IMX_MICFIL=y
+CONFIG_SND_SOC_IMX_RPMSG=y
+CONFIG_SND_SOC_IMX_MQS=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_AUDMIX=y
+CONFIG_SND_SOC_IMX_PDM_MIC=y
+CONFIG_SND_SOC_IMX_DSP=y
+CONFIG_SND_SOC_IMX_CDNHDMI=y
+CONFIG_SND_SOC_IMX_XCVR=y
+CONFIG_SND_SOC_IMX_PCM512X=y
+CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_OF=m
+CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_IMX8_SUPPORT=m
+CONFIG_SND_SOC_SOF_IMX8M_SUPPORT=m
+CONFIG_SND_SOC_AK4613=m
+CONFIG_SND_SOC_BT_SCO=y
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
+CONFIG_SND_SOC_ES7241=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_PCM3168A_I2C=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_TAS571X=m
+CONFIG_SND_SIMPLE_CARD=y
+CONFIG_SND_AUDIO_GRAPH_CARD=y
+CONFIG_I2C_HID=m
+CONFIG_HID_ASUS=y
+CONFIG_UHID=y
+CONFIG_USB=y
+CONFIG_USB_OTG=y
+CONFIG_USB_OTG_WHITELIST=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_HCD_TEST_MODE=y
+CONFIG_USB_ACM=y
+CONFIG_USB_WDM=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_UAS=y
+CONFIG_USB_CDNS3=y
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_ISP1760=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_CONSOLE=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=y
+CONFIG_USB_SERIAL_CP210X=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_KEYSPAN=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_SERIAL_OTI6858=y
+CONFIG_USB_SERIAL_QUALCOMM=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=y
+CONFIG_USB_SERIAL_OPTION=y
+CONFIG_USB_TEST=m
+CONFIG_USB_EHSET_TEST_FIXTURE=y
+CONFIG_USB_HSIC_USB3503=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_SNP_UDC_PLAT=y
+CONFIG_USB_BDC_UDC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_TCPCI=y
+CONFIG_TYPEC_SWITCH_GPIO=y
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ACPI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_ARASAN=y
+CONFIG_MMC_SDHCI_OF_ESDHC=y
+CONFIG_MMC_SDHCI_CADENCE=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+CONFIG_MMC_SDHCI_F_SDH30=y
+CONFIG_MMC_SPI=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_EXYNOS=y
+CONFIG_MMC_DW_HI3798CV200=y
+CONFIG_MMC_DW_K3=y
+CONFIG_MMC_SDHCI_XENON=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_EDAC=y
+CONFIG_EDAC_GHES=y
+CONFIG_EDAC_SYNOPSYS=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_RK808=m
+CONFIG_RTC_DRV_ISL1208=y
+CONFIG_RTC_DRV_PCF85363=y
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_S5M=y
+CONFIG_RTC_DRV_DS3232=y
+CONFIG_RTC_DRV_PCF2127=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_CROS_EC=y
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_RTC_DRV_IMX_SC=y
+CONFIG_DMADEVICES=y
+CONFIG_BCM_SBA_RAID=m
+CONFIG_FSL_EDMA=y
+CONFIG_FSL_EDMA_V3=y
+CONFIG_IMX_SDMA=y
+CONFIG_MV_XOR_V2=y
+CONFIG_MXS_DMA=y
+CONFIG_PL330_DMA=y
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+CONFIG_DMATEST=y
+CONFIG_UIO=y
+CONFIG_UIO_PCI_GENERIC=y
+CONFIG_UIO_IVSHMEM=y
+CONFIG_VFIO=y
+CONFIG_VFIO_PCI=y
+CONFIG_VFIO_FSL_MC=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_XEN_GNTDEV=y
+CONFIG_XEN_GRANT_DEV_ALLOC=y
+CONFIG_STAGING=y
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_IMX_CAPTURE=y
+CONFIG_IMX8_MEDIA_DEVICE=m
+CONFIG_ION=y
+CONFIG_ION_SYSTEM_HEAP=y
+CONFIG_ION_CMA_HEAP=y
+CONFIG_FSL_DPAA2=y
+CONFIG_FSL_DPAA2_ETHSW=y
+CONFIG_FSL_DPAA2_MAC=y
+CONFIG_FSL_SDK_DPA=y
+CONFIG_FSL_PPFE=y
+CONFIG_FSL_PPFE_UTIL_DISABLED=y
+CONFIG_MFD_CROS_EC=y
+CONFIG_CROS_EC_I2C=y
+CONFIG_CROS_EC_SPI=y
+CONFIG_COMMON_CLK_VERSATILE=y
+CONFIG_CLK_SP810=y
+CONFIG_CLK_VEXPRESS_OSC=y
+CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_SCPI=y
+CONFIG_COMMON_CLK_CS2000_CP=y
+CONFIG_COMMON_CLK_S2MPS11=y
+CONFIG_COMMON_CLK_XGENE=y
+CONFIG_COMMON_CLK_PWM=y
+CONFIG_CLK_IMX8MM=y
+CONFIG_CLK_IMX8MN=y
+CONFIG_CLK_IMX8MP=y
+CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_IMX8QXP=y
+CONFIG_HWSPINLOCK=y
+CONFIG_ARM_MHU=y
+CONFIG_IMX_MBOX=y
+CONFIG_PLATFORM_MHU=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARM_SMMU_V3=y
+CONFIG_REMOTEPROC=y
+CONFIG_IMX_REMOTEPROC=y
+CONFIG_RPMSG_QCOM_GLINK_RPM=y
+CONFIG_SOC_BRCMSTB=y
+CONFIG_FSL_MC_DPIO=y
+CONFIG_FSL_QIXIS=y
+CONFIG_IMX_SCU_SOC=y
+CONFIG_SECVIO_SC=y
+CONFIG_SOC_TI=y
+CONFIG_EXTCON_IT5201=y
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_EXTCON_USBC_CROS_EC=y
+CONFIG_IIO=y
+CONFIG_IMX8QXP_ADC=y
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_PWM=y
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_IMX27=y
+CONFIG_PHY_XGENE=y
+CONFIG_PHY_MIXEL_LVDS=y
+CONFIG_PHY_MIXEL_LVDS_COMBO=y
+CONFIG_PHY_FSL_IMX8MP_LVDS=y
+CONFIG_PHY_MIXEL_MIPI_DPHY=y
+CONFIG_PHY_SAMSUNG_HDMI_PHY=y
+CONFIG_PHY_QCOM_USB_HS=y
+CONFIG_PHY_SAMSUNG_USB2=y
+CONFIG_FSL_IMX8_DDR_PMU=y
+CONFIG_HISI_PMU=y
+CONFIG_NVMEM_IMX_OCOTP=y
+CONFIG_NVMEM_IMX_OCOTP_SCU=y
+CONFIG_FPGA=y
+CONFIG_FPGA_BRIDGE=m
+CONFIG_ALTERA_FREEZE_BRIDGE=m
+CONFIG_FPGA_REGION=m
+CONFIG_OF_FPGA_REGION=m
+CONFIG_TEE=y
+CONFIG_OPTEE=y
+CONFIG_MUX_MMIO=y
+CONFIG_MXC_SIM=y
+CONFIG_MXC_EMVSIM=y
+CONFIG_MXC_MLB150=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QUOTA=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_UDF_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_HUGETLBFS=y
+CONFIG_EFIVAR_FS=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_9P_FS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_SECURITY=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_ECHAINIV=y
+CONFIG_CRYPTO_TLS=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_OFB=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_STREEBOG=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
+CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=y
+CONFIG_INDIRECT_PIO=y
+CONFIG_CMA_SIZE_MBYTES=320
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_FS=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+CONFIG_MEMTEST=y
+CONFIG_CORESIGHT=y
+CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
+CONFIG_CORESIGHT_SOURCE_ETM4X=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_NETFILTER_XT_MATCH_IPVS=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_IP_VS=y
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=y
+CONFIG_VXLAN=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_ALGO=y
+CONFIG_INET_ESP=y
+CONFIG_DUMMY=y
+CONFIG_NF_NAT_FTP=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_NAT_TFTP=y
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
--- linux-ein-5.4.0.orig/arch/arm64/crypto/Kconfig
+++ linux-ein-5.4.0/arch/arm64/crypto/Kconfig
@@ -59,6 +59,7 @@
 	select CRYPTO_HASH
 	select CRYPTO_GF128MUL
 	select CRYPTO_LIB_AES
+	select CRYPTO_AEAD
 
 config CRYPTO_CRCT10DIF_ARM64_CE
 	tristate "CRCT10DIF digest algorithm using PMULL instructions"
--- linux-ein-5.4.0.orig/arch/arm64/crypto/aes-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/aes-glue.c
@@ -55,7 +55,7 @@
 #define aes_mac_update		neon_aes_mac_update
 MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON");
 #endif
-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !defined(CONFIG_CRYPTO_AES_ARM64_BS)
+#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
 MODULE_ALIAS_CRYPTO("ecb(aes)");
 MODULE_ALIAS_CRYPTO("cbc(aes)");
 MODULE_ALIAS_CRYPTO("ctr(aes)");
@@ -668,7 +668,7 @@
 }
 
 static struct skcipher_alg aes_algs[] = { {
-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !defined(CONFIG_CRYPTO_AES_ARM64_BS)
+#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
 	.base = {
 		.cra_name		= "__ecb(aes)",
 		.cra_driver_name	= "__ecb-aes-" MODE,
--- linux-ein-5.4.0.orig/arch/arm64/crypto/aes-neonbs-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/aes-neonbs-glue.c
@@ -384,7 +384,7 @@
 			goto xts_tail;
 
 		kernel_neon_end();
-		skcipher_walk_done(&walk, nbytes);
+		err = skcipher_walk_done(&walk, nbytes);
 	}
 
 	if (err || likely(!tail))
--- linux-ein-5.4.0.orig/arch/arm64/crypto/ghash-ce-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/ghash-ce-glue.c
@@ -261,7 +261,7 @@
 static struct shash_alg ghash_alg[] = {{
 	.base.cra_name		= "ghash",
 	.base.cra_driver_name	= "ghash-neon",
-	.base.cra_priority	= 100,
+	.base.cra_priority	= 150,
 	.base.cra_blocksize	= GHASH_BLOCK_SIZE,
 	.base.cra_ctxsize	= sizeof(struct ghash_key),
 	.base.cra_module	= THIS_MODULE,
--- linux-ein-5.4.0.orig/arch/arm64/crypto/nhpoly1305-neon-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/nhpoly1305-neon-glue.c
@@ -30,7 +30,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_neon_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_neon);
--- linux-ein-5.4.0.orig/arch/arm64/crypto/sha1-ce-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/sha1-ce-glue.c
@@ -19,6 +19,7 @@
 MODULE_DESCRIPTION("SHA1 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha1");
 
 struct sha1_ce_state {
 	struct sha1_state	sst;
--- linux-ein-5.4.0.orig/arch/arm64/crypto/sha2-ce-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/sha2-ce-glue.c
@@ -19,6 +19,8 @@
 MODULE_DESCRIPTION("SHA-224/SHA-256 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha224");
+MODULE_ALIAS_CRYPTO("sha256");
 
 struct sha256_ce_state {
 	struct sha256_state	sst;
--- linux-ein-5.4.0.orig/arch/arm64/crypto/sha3-ce-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/sha3-ce-glue.c
@@ -23,6 +23,10 @@
 MODULE_DESCRIPTION("SHA3 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha3-224");
+MODULE_ALIAS_CRYPTO("sha3-256");
+MODULE_ALIAS_CRYPTO("sha3-384");
+MODULE_ALIAS_CRYPTO("sha3-512");
 
 asmlinkage void sha3_ce_transform(u64 *st, const u8 *data, int blocks,
 				  int md_len);
--- linux-ein-5.4.0.orig/arch/arm64/crypto/sha512-ce-glue.c
+++ linux-ein-5.4.0/arch/arm64/crypto/sha512-ce-glue.c
@@ -23,6 +23,8 @@
 MODULE_DESCRIPTION("SHA-384/SHA-512 secure hash using ARMv8 Crypto Extensions");
 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS_CRYPTO("sha384");
+MODULE_ALIAS_CRYPTO("sha512");
 
 asmlinkage void sha512_ce_transform(struct sha512_state *sst, u8 const *src,
 				    int blocks);
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/acpi.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/acpi.h
@@ -12,6 +12,7 @@
 #include <linux/efi.h>
 #include <linux/memblock.h>
 #include <linux/psci.h>
+#include <linux/stddef.h>
 
 #include <asm/cputype.h>
 #include <asm/io.h>
@@ -31,14 +32,14 @@
  * is therefore used to delimit the MADT GICC structure minimum length
  * appropriately.
  */
-#define ACPI_MADT_GICC_MIN_LENGTH   ACPI_OFFSET(  \
+#define ACPI_MADT_GICC_MIN_LENGTH   offsetof(  \
 	struct acpi_madt_generic_interrupt, efficiency_class)
 
 #define BAD_MADT_GICC_ENTRY(entry, end)					\
 	(!(entry) || (entry)->header.length < ACPI_MADT_GICC_MIN_LENGTH || \
 	(unsigned long)(entry) + (entry)->header.length > (end))
 
-#define ACPI_MADT_GICC_SPE  (ACPI_OFFSET(struct acpi_madt_generic_interrupt, \
+#define ACPI_MADT_GICC_SPE  (offsetof(struct acpi_madt_generic_interrupt, \
 	spe_interrupt) + sizeof(u16))
 
 /* Basic configuration for ACPI */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/alternative.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/alternative.h
@@ -35,13 +35,16 @@
 static inline void apply_alternatives_module(void *start, size_t length) { }
 #endif
 
-#define ALTINSTR_ENTRY(feature,cb)					      \
+#define ALTINSTR_ENTRY(feature)					              \
 	" .word 661b - .\n"				/* label           */ \
-	" .if " __stringify(cb) " == 0\n"				      \
 	" .word 663f - .\n"				/* new instruction */ \
-	" .else\n"							      \
+	" .hword " __stringify(feature) "\n"		/* feature bit     */ \
+	" .byte 662b-661b\n"				/* source len      */ \
+	" .byte 664f-663f\n"				/* replacement len */
+
+#define ALTINSTR_ENTRY_CB(feature, cb)					      \
+	" .word 661b - .\n"				/* label           */ \
 	" .word " __stringify(cb) "- .\n"		/* callback */	      \
-	" .endif\n"							      \
 	" .hword " __stringify(feature) "\n"		/* feature bit     */ \
 	" .byte 662b-661b\n"				/* source len      */ \
 	" .byte 664f-663f\n"				/* replacement len */
@@ -62,33 +65,40 @@
  *
  * Alternatives with callbacks do not generate replacement instructions.
  */
-#define __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled, cb)	\
+#define __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled)	\
 	".if "__stringify(cfg_enabled)" == 1\n"				\
 	"661:\n\t"							\
 	oldinstr "\n"							\
 	"662:\n"							\
 	".pushsection .altinstructions,\"a\"\n"				\
-	ALTINSTR_ENTRY(feature,cb)					\
+	ALTINSTR_ENTRY(feature)						\
 	".popsection\n"							\
-	" .if " __stringify(cb) " == 0\n"				\
-	".pushsection .altinstr_replacement, \"a\"\n"			\
+	".subsection 1\n"						\
 	"663:\n\t"							\
 	newinstr "\n"							\
 	"664:\n\t"							\
-	".popsection\n\t"						\
 	".org	. - (664b-663b) + (662b-661b)\n\t"			\
-	".org	. - (662b-661b) + (664b-663b)\n"			\
-	".else\n\t"							\
+	".org	. - (662b-661b) + (664b-663b)\n\t"			\
+	".previous\n"							\
+	".endif\n"
+
+#define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb)	\
+	".if "__stringify(cfg_enabled)" == 1\n"				\
+	"661:\n\t"							\
+	oldinstr "\n"							\
+	"662:\n"							\
+	".pushsection .altinstructions,\"a\"\n"				\
+	ALTINSTR_ENTRY_CB(feature, cb)					\
+	".popsection\n"							\
 	"663:\n\t"							\
 	"664:\n\t"							\
-	".endif\n"							\
 	".endif\n"
 
 #define _ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg, ...)	\
-	__ALTERNATIVE_CFG(oldinstr, newinstr, feature, IS_ENABLED(cfg), 0)
+	__ALTERNATIVE_CFG(oldinstr, newinstr, feature, IS_ENABLED(cfg))
 
 #define ALTERNATIVE_CB(oldinstr, cb) \
-	__ALTERNATIVE_CFG(oldinstr, "NOT_AN_INSTRUCTION", ARM64_CB_PATCH, 1, cb)
+	__ALTERNATIVE_CFG_CB(oldinstr, ARM64_CB_PATCH, 1, cb)
 #else
 
 #include <asm/assembler.h>
@@ -107,11 +117,11 @@
 662:	.pushsection .altinstructions, "a"
 	altinstruction_entry 661b, 663f, \cap, 662b-661b, 664f-663f
 	.popsection
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 663:	\insn2
-664:	.popsection
-	.org	. - (664b-663b) + (662b-661b)
+664:	.org	. - (664b-663b) + (662b-661b)
 	.org	. - (662b-661b) + (664b-663b)
+	.previous
 	.endif
 .endm
 
@@ -150,7 +160,7 @@
 	.pushsection .altinstructions, "a"
 	altinstruction_entry 663f, 661f, \cap, 664f-663f, 662f-661f
 	.popsection
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 	.align 2	/* So GAS knows label 661 is suitably aligned */
 661:
 .endm
@@ -169,9 +179,9 @@
 .macro alternative_else
 662:
 	.if .Lasm_alt_mode==0
-	.pushsection .altinstr_replacement, "ax"
+	.subsection 1
 	.else
-	.popsection
+	.previous
 	.endif
 663:
 .endm
@@ -181,11 +191,11 @@
  */
 .macro alternative_endif
 664:
-	.if .Lasm_alt_mode==0
-	.popsection
-	.endif
 	.org	. - (664b-663b) + (662b-661b)
 	.org	. - (662b-661b) + (664b-663b)
+	.if .Lasm_alt_mode==0
+	.previous
+	.endif
 .endm
 
 /*
@@ -211,7 +221,7 @@
 
 .macro user_alt, label, oldinstr, newinstr, cond
 9999:	alternative_insn "\oldinstr", "\newinstr", \cond
-	_ASM_EXTABLE 9999b, \label
+	_asm_extable 9999b, \label
 .endm
 
 /*
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/arch_gicv3.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/arch_gicv3.h
@@ -109,7 +109,7 @@
 	return read_sysreg_s(SYS_ICC_PMR_EL1);
 }
 
-static inline void gic_write_pmr(u32 val)
+static __always_inline void gic_write_pmr(u32 val)
 {
 	write_sysreg_s(val, SYS_ICC_PMR_EL1);
 }
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/arch_timer.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/arch_timer.h
@@ -58,6 +58,7 @@
 	u64 (*read_cntvct_el0)(void);
 	int (*set_next_event_phys)(unsigned long, struct clock_event_device *);
 	int (*set_next_event_virt)(unsigned long, struct clock_event_device *);
+	bool disable_compat_vdso;
 };
 
 DECLARE_PER_CPU(const struct arch_timer_erratum_workaround *,
@@ -164,25 +165,6 @@
 	isb();
 }
 
-/*
- * Ensure that reads of the counter are treated the same as memory reads
- * for the purposes of ordering by subsequent memory barriers.
- *
- * This insanity brought to you by speculative system register reads,
- * out-of-order memory accesses, sequence locks and Thomas Gleixner.
- *
- * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html
- */
-#define arch_counter_enforce_ordering(val) do {				\
-	u64 tmp, _val = (val);						\
-									\
-	asm volatile(							\
-	"	eor	%0, %1, %1\n"					\
-	"	add	%0, sp, %0\n"					\
-	"	ldr	xzr, [%0]"					\
-	: "=r" (tmp) : "r" (_val));					\
-} while (0)
-
 static __always_inline u64 __arch_counter_get_cntpct_stable(void)
 {
 	u64 cnt;
@@ -223,8 +205,6 @@
 	return cnt;
 }
 
-#undef arch_counter_enforce_ordering
-
 static inline int arch_timer_arch_init(void)
 {
 	return 0;
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/asm-uaccess.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/asm-uaccess.h
@@ -15,10 +15,10 @@
 	.macro	__uaccess_ttbr0_disable, tmp1
 	mrs	\tmp1, ttbr1_el1			// swapper_pg_dir
 	bic	\tmp1, \tmp1, #TTBR_ASID_MASK
-	sub	\tmp1, \tmp1, #RESERVED_TTBR0_SIZE	// reserved_ttbr0 just before swapper_pg_dir
+	sub	\tmp1, \tmp1, #PAGE_SIZE		// reserved_pg_dir just before swapper_pg_dir
 	msr	ttbr0_el1, \tmp1			// set reserved TTBR0_EL1
 	isb
-	add	\tmp1, \tmp1, #RESERVED_TTBR0_SIZE
+	add	\tmp1, \tmp1, #PAGE_SIZE
 	msr	ttbr1_el1, \tmp1		// set reserved ASID
 	isb
 	.endm
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/assembler.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/assembler.h
@@ -111,6 +111,13 @@
 	.endm
 
 /*
+ * Clear Branch History instruction
+ */
+	.macro clearbhb
+	hint	#22
+	.endm
+
+/*
  * Speculation barrier
  */
 	.macro	sb
@@ -462,6 +469,7 @@
 	.endm
 
 /*
+ * Deprecated! Use SYM_FUNC_{START,START_WEAK,END}_PI instead.
  * Annotate a function as position independent, i.e., safe to be called before
  * the kernel virtual mapping is activated.
  */
@@ -756,4 +764,30 @@
 .Lyield_out_\@ :
 	.endm
 
+	.macro __mitigate_spectre_bhb_loop      tmp
+#ifdef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
+alternative_cb  spectre_bhb_patch_loop_iter
+	mov	\tmp, #32		// Patched to correct the immediate
+alternative_cb_end
+.Lspectre_bhb_loop\@:
+	b	. + 4
+	subs	\tmp, \tmp, #1
+	b.ne	.Lspectre_bhb_loop\@
+	sb
+#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
+	.endm
+
+	/* Save/restores x0-x3 to the stack */
+	.macro __mitigate_spectre_bhb_fw
+#ifdef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
+	stp	x0, x1, [sp, #-16]!
+	stp	x2, x3, [sp, #-16]!
+	mov	w0, #ARM_SMCCC_ARCH_WORKAROUND_3
+alternative_cb	arm64_update_smccc_conduit
+	nop					// Patched to SMC/HVC #0
+alternative_cb_end
+	ldp	x2, x3, [sp], #16
+	ldp	x0, x1, [sp], #16
+#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
+	.endm
 #endif	/* __ASM_ASSEMBLER_H */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/atomic.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/atomic.h
@@ -17,7 +17,7 @@
 #include <asm/lse.h>
 
 #define ATOMIC_OP(op)							\
-static inline void arch_##op(int i, atomic_t *v)			\
+static __always_inline void arch_##op(int i, atomic_t *v)		\
 {									\
 	__lse_ll_sc_body(op, i, v);					\
 }
@@ -32,7 +32,7 @@
 #undef ATOMIC_OP
 
 #define ATOMIC_FETCH_OP(name, op)					\
-static inline int arch_##op##name(int i, atomic_t *v)			\
+static __always_inline int arch_##op##name(int i, atomic_t *v)		\
 {									\
 	return __lse_ll_sc_body(op##name, i, v);			\
 }
@@ -56,7 +56,7 @@
 #undef ATOMIC_FETCH_OPS
 
 #define ATOMIC64_OP(op)							\
-static inline void arch_##op(long i, atomic64_t *v)			\
+static __always_inline void arch_##op(long i, atomic64_t *v)		\
 {									\
 	__lse_ll_sc_body(op, i, v);					\
 }
@@ -71,7 +71,7 @@
 #undef ATOMIC64_OP
 
 #define ATOMIC64_FETCH_OP(name, op)					\
-static inline long arch_##op##name(long i, atomic64_t *v)		\
+static __always_inline long arch_##op##name(long i, atomic64_t *v)	\
 {									\
 	return __lse_ll_sc_body(op##name, i, v);			\
 }
@@ -94,7 +94,7 @@
 #undef ATOMIC64_FETCH_OP
 #undef ATOMIC64_FETCH_OPS
 
-static inline long arch_atomic64_dec_if_positive(atomic64_t *v)
+static __always_inline long arch_atomic64_dec_if_positive(atomic64_t *v)
 {
 	return __lse_ll_sc_body(atomic64_dec_if_positive, v);
 }
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/atomic_ll_sc.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/atomic_ll_sc.h
@@ -12,19 +12,6 @@
 
 #include <linux/stringify.h>
 
-#if IS_ENABLED(CONFIG_ARM64_LSE_ATOMICS) && IS_ENABLED(CONFIG_AS_LSE)
-#define __LL_SC_FALLBACK(asm_ops)					\
-"	b	3f\n"							\
-"	.subsection	1\n"						\
-"3:\n"									\
-asm_ops "\n"								\
-"	b	4f\n"							\
-"	.previous\n"							\
-"4:\n"
-#else
-#define __LL_SC_FALLBACK(asm_ops) asm_ops
-#endif
-
 #ifndef CONFIG_CC_HAS_K_CONSTRAINT
 #define K
 #endif
@@ -43,12 +30,11 @@
 	int result;							\
 									\
 	asm volatile("// atomic_" #op "\n"				\
-	__LL_SC_FALLBACK(						\
-"	prfm	pstl1strm, %2\n"					\
-"1:	ldxr	%w0, %2\n"						\
-"	" #asm_op "	%w0, %w0, %w3\n"				\
-"	stxr	%w1, %w0, %2\n"						\
-"	cbnz	%w1, 1b\n")						\
+	"	prfm	pstl1strm, %2\n"				\
+	"1:	ldxr	%w0, %2\n"					\
+	"	" #asm_op "	%w0, %w0, %w3\n"			\
+	"	stxr	%w1, %w0, %2\n"					\
+	"	cbnz	%w1, 1b\n"					\
 	: "=&r" (result), "=&r" (tmp), "+Q" (v->counter)		\
 	: __stringify(constraint) "r" (i));				\
 }
@@ -61,13 +47,12 @@
 	int result;							\
 									\
 	asm volatile("// atomic_" #op "_return" #name "\n"		\
-	__LL_SC_FALLBACK(						\
-"	prfm	pstl1strm, %2\n"					\
-"1:	ld" #acq "xr	%w0, %2\n"					\
-"	" #asm_op "	%w0, %w0, %w3\n"				\
-"	st" #rel "xr	%w1, %w0, %2\n"					\
-"	cbnz	%w1, 1b\n"						\
-"	" #mb )								\
+	"	prfm	pstl1strm, %2\n"				\
+	"1:	ld" #acq "xr	%w0, %2\n"				\
+	"	" #asm_op "	%w0, %w0, %w3\n"			\
+	"	st" #rel "xr	%w1, %w0, %2\n"				\
+	"	cbnz	%w1, 1b\n"					\
+	"	" #mb							\
 	: "=&r" (result), "=&r" (tmp), "+Q" (v->counter)		\
 	: __stringify(constraint) "r" (i)				\
 	: cl);								\
@@ -83,13 +68,12 @@
 	int val, result;						\
 									\
 	asm volatile("// atomic_fetch_" #op #name "\n"			\
-	__LL_SC_FALLBACK(						\
-"	prfm	pstl1strm, %3\n"					\
-"1:	ld" #acq "xr	%w0, %3\n"					\
-"	" #asm_op "	%w1, %w0, %w4\n"				\
-"	st" #rel "xr	%w2, %w1, %3\n"					\
-"	cbnz	%w2, 1b\n"						\
-"	" #mb )								\
+	"	prfm	pstl1strm, %3\n"				\
+	"1:	ld" #acq "xr	%w0, %3\n"				\
+	"	" #asm_op "	%w1, %w0, %w4\n"			\
+	"	st" #rel "xr	%w2, %w1, %3\n"				\
+	"	cbnz	%w2, 1b\n"					\
+	"	" #mb							\
 	: "=&r" (result), "=&r" (val), "=&r" (tmp), "+Q" (v->counter)	\
 	: __stringify(constraint) "r" (i)				\
 	: cl);								\
@@ -142,12 +126,11 @@
 	unsigned long tmp;						\
 									\
 	asm volatile("// atomic64_" #op "\n"				\
-	__LL_SC_FALLBACK(						\
-"	prfm	pstl1strm, %2\n"					\
-"1:	ldxr	%0, %2\n"						\
-"	" #asm_op "	%0, %0, %3\n"					\
-"	stxr	%w1, %0, %2\n"						\
-"	cbnz	%w1, 1b")						\
+	"	prfm	pstl1strm, %2\n"				\
+	"1:	ldxr	%0, %2\n"					\
+	"	" #asm_op "	%0, %0, %3\n"				\
+	"	stxr	%w1, %0, %2\n"					\
+	"	cbnz	%w1, 1b"					\
 	: "=&r" (result), "=&r" (tmp), "+Q" (v->counter)		\
 	: __stringify(constraint) "r" (i));				\
 }
@@ -160,13 +143,12 @@
 	unsigned long tmp;						\
 									\
 	asm volatile("// atomic64_" #op "_return" #name "\n"		\
-	__LL_SC_FALLBACK(						\
-"	prfm	pstl1strm, %2\n"					\
-"1:	ld" #acq "xr	%0, %2\n"					\
-"	" #asm_op "	%0, %0, %3\n"					\
-"	st" #rel "xr	%w1, %0, %2\n"					\
-"	cbnz	%w1, 1b\n"						\
-"	" #mb )								\
+	"	prfm	pstl1strm, %2\n"				\
+	"1:	ld" #acq "xr	%0, %2\n"				\
+	"	" #asm_op "	%0, %0, %3\n"				\
+	"	st" #rel "xr	%w1, %0, %2\n"				\
+	"	cbnz	%w1, 1b\n"					\
+	"	" #mb							\
 	: "=&r" (result), "=&r" (tmp), "+Q" (v->counter)		\
 	: __stringify(constraint) "r" (i)				\
 	: cl);								\
@@ -176,19 +158,18 @@
 
 #define ATOMIC64_FETCH_OP(name, mb, acq, rel, cl, op, asm_op, constraint)\
 static inline long							\
-__ll_sc_atomic64_fetch_##op##name(s64 i, atomic64_t *v)		\
+__ll_sc_atomic64_fetch_##op##name(s64 i, atomic64_t *v)			\
 {									\
 	s64 result, val;						\
 	unsigned long tmp;						\
 									\
 	asm volatile("// atomic64_fetch_" #op #name "\n"		\
-	__LL_SC_FALLBACK(						\
-"	prfm	pstl1strm, %3\n"					\
-"1:	ld" #acq "xr	%0, %3\n"					\
-"	" #asm_op "	%1, %0, %4\n"					\
-"	st" #rel "xr	%w2, %1, %3\n"					\
-"	cbnz	%w2, 1b\n"						\
-"	" #mb )								\
+	"	prfm	pstl1strm, %3\n"				\
+	"1:	ld" #acq "xr	%0, %3\n"				\
+	"	" #asm_op "	%1, %0, %4\n"				\
+	"	st" #rel "xr	%w2, %1, %3\n"				\
+	"	cbnz	%w2, 1b\n"					\
+	"	" #mb							\
 	: "=&r" (result), "=&r" (val), "=&r" (tmp), "+Q" (v->counter)	\
 	: __stringify(constraint) "r" (i)				\
 	: cl);								\
@@ -240,15 +221,14 @@
 	unsigned long tmp;
 
 	asm volatile("// atomic64_dec_if_positive\n"
-	__LL_SC_FALLBACK(
-"	prfm	pstl1strm, %2\n"
-"1:	ldxr	%0, %2\n"
-"	subs	%0, %0, #1\n"
-"	b.lt	2f\n"
-"	stlxr	%w1, %0, %2\n"
-"	cbnz	%w1, 1b\n"
-"	dmb	ish\n"
-"2:")
+	"	prfm	pstl1strm, %2\n"
+	"1:	ldxr	%0, %2\n"
+	"	subs	%0, %0, #1\n"
+	"	b.lt	2f\n"
+	"	stlxr	%w1, %0, %2\n"
+	"	cbnz	%w1, 1b\n"
+	"	dmb	ish\n"
+	"2:"
 	: "=&r" (result), "=&r" (tmp), "+Q" (v->counter)
 	:
 	: "cc", "memory");
@@ -274,7 +254,6 @@
 		old = (u##sz)old;					\
 									\
 	asm volatile(							\
-	__LL_SC_FALLBACK(						\
 	"	prfm	pstl1strm, %[v]\n"				\
 	"1:	ld" #acq "xr" #sfx "\t%" #w "[oldval], %[v]\n"		\
 	"	eor	%" #w "[tmp], %" #w "[oldval], %" #w "[old]\n"	\
@@ -282,7 +261,7 @@
 	"	st" #rel "xr" #sfx "\t%w[tmp], %" #w "[new], %[v]\n"	\
 	"	cbnz	%w[tmp], 1b\n"					\
 	"	" #mb "\n"						\
-	"2:")								\
+	"2:"								\
 	: [tmp] "=&r" (tmp), [oldval] "=&r" (oldval),			\
 	  [v] "+Q" (*(u##sz *)ptr)					\
 	: [old] __stringify(constraint) "r" (old), [new] "r" (new)	\
@@ -326,7 +305,6 @@
 	unsigned long tmp, ret;						\
 									\
 	asm volatile("// __cmpxchg_double" #name "\n"			\
-	__LL_SC_FALLBACK(						\
 	"	prfm	pstl1strm, %2\n"				\
 	"1:	ldxp	%0, %1, %2\n"					\
 	"	eor	%0, %0, %3\n"					\
@@ -336,8 +314,8 @@
 	"	st" #rel "xp	%w0, %5, %6, %2\n"			\
 	"	cbnz	%w0, 1b\n"					\
 	"	" #mb "\n"						\
-	"2:")								\
-	: "=&r" (tmp), "=&r" (ret), "+Q" (*(unsigned long *)ptr)	\
+	"2:"								\
+	: "=&r" (tmp), "=&r" (ret), "+Q" (*(__uint128_t *)ptr)		\
 	: "r" (old1), "r" (old2), "r" (new1), "r" (new2)		\
 	: cl);								\
 									\
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/atomic_lse.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/atomic_lse.h
@@ -11,10 +11,11 @@
 #define __ASM_ATOMIC_LSE_H
 
 #define ATOMIC_OP(op, asm_op)						\
-static inline void __lse_atomic_##op(int i, atomic_t *v)			\
+static inline void __lse_atomic_##op(int i, atomic_t *v)		\
 {									\
 	asm volatile(							\
-"	" #asm_op "	%w[i], %[v]\n"					\
+	__LSE_PREAMBLE							\
+	"	" #asm_op "	%w[i], %[v]\n"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v));							\
 }
@@ -30,7 +31,8 @@
 static inline int __lse_atomic_fetch_##op##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
-"	" #asm_op #mb "	%w[i], %w[i], %[v]"				\
+	__LSE_PREAMBLE							\
+	"	" #asm_op #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v)							\
 	: cl);								\
@@ -58,6 +60,7 @@
 	u32 tmp;							\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	ldadd" #mb "	%w[i], %w[tmp], %[v]\n"			\
 	"	add	%w[i], %w[i], %w[tmp]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
@@ -77,6 +80,7 @@
 static inline void __lse_atomic_and(int i, atomic_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	mvn	%w[i], %w[i]\n"
 	"	stclr	%w[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -87,6 +91,7 @@
 static inline int __lse_atomic_fetch_and##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mvn	%w[i], %w[i]\n"					\
 	"	ldclr" #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -106,6 +111,7 @@
 static inline void __lse_atomic_sub(int i, atomic_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	neg	%w[i], %w[i]\n"
 	"	stadd	%w[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -118,12 +124,13 @@
 	u32 tmp;							\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%w[i], %w[i]\n"					\
 	"	ldadd" #mb "	%w[i], %w[tmp], %[v]\n"			\
 	"	add	%w[i], %w[i], %w[tmp]"				\
 	: [i] "+&r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
 	: "r" (v)							\
-	: cl);							\
+	: cl);								\
 									\
 	return i;							\
 }
@@ -139,6 +146,7 @@
 static inline int __lse_atomic_fetch_sub##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%w[i], %w[i]\n"					\
 	"	ldadd" #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -159,7 +167,8 @@
 static inline void __lse_atomic64_##op(s64 i, atomic64_t *v)		\
 {									\
 	asm volatile(							\
-"	" #asm_op "	%[i], %[v]\n"					\
+	__LSE_PREAMBLE							\
+	"	" #asm_op "	%[i], %[v]\n"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v));							\
 }
@@ -175,7 +184,8 @@
 static inline long __lse_atomic64_fetch_##op##name(s64 i, atomic64_t *v)\
 {									\
 	asm volatile(							\
-"	" #asm_op #mb "	%[i], %[i], %[v]"				\
+	__LSE_PREAMBLE							\
+	"	" #asm_op #mb "	%[i], %[i], %[v]"			\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v)							\
 	: cl);								\
@@ -203,6 +213,7 @@
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	ldadd" #mb "	%[i], %x[tmp], %[v]\n"			\
 	"	add	%[i], %[i], %x[tmp]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
@@ -222,6 +233,7 @@
 static inline void __lse_atomic64_and(s64 i, atomic64_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	mvn	%[i], %[i]\n"
 	"	stclr	%[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -232,6 +244,7 @@
 static inline long __lse_atomic64_fetch_and##name(s64 i, atomic64_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mvn	%[i], %[i]\n"					\
 	"	ldclr" #mb "	%[i], %[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -251,6 +264,7 @@
 static inline void __lse_atomic64_sub(s64 i, atomic64_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	neg	%[i], %[i]\n"
 	"	stadd	%[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -258,11 +272,12 @@
 }
 
 #define ATOMIC64_OP_SUB_RETURN(name, mb, cl...)				\
-static inline long __lse_atomic64_sub_return##name(s64 i, atomic64_t *v)	\
+static inline long __lse_atomic64_sub_return##name(s64 i, atomic64_t *v)\
 {									\
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%[i], %[i]\n"					\
 	"	ldadd" #mb "	%[i], %x[tmp], %[v]\n"			\
 	"	add	%[i], %[i], %x[tmp]"				\
@@ -284,6 +299,7 @@
 static inline long __lse_atomic64_fetch_sub##name(s64 i, atomic64_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%[i], %[i]\n"					\
 	"	ldadd" #mb "	%[i], %[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -305,6 +321,7 @@
 	unsigned long tmp;
 
 	asm volatile(
+	__LSE_PREAMBLE
 	"1:	ldr	%x[tmp], %[v]\n"
 	"	subs	%[ret], %x[tmp], #1\n"
 	"	b.lt	2f\n"
@@ -332,6 +349,7 @@
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mov	%" #w "[tmp], %" #w "[old]\n"			\
 	"	cas" #mb #sfx "\t%" #w "[tmp], %" #w "[new], %[v]\n"	\
 	"	mov	%" #w "[ret], %" #w "[tmp]"			\
@@ -379,12 +397,13 @@
 	register unsigned long x4 asm ("x4") = (unsigned long)ptr;	\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	casp" #mb "\t%[old1], %[old2], %[new1], %[new2], %[v]\n"\
 	"	eor	%[old1], %[old1], %[oldval1]\n"			\
 	"	eor	%[old2], %[old2], %[oldval2]\n"			\
 	"	orr	%[old1], %[old1], %[old2]"			\
 	: [old1] "+&r" (x0), [old2] "+&r" (x1),				\
-	  [v] "+Q" (*(unsigned long *)ptr)				\
+	  [v] "+Q" (*(__uint128_t *)ptr)				\
 	: [new1] "r" (x2), [new2] "r" (x3), [ptr] "r" (x4),		\
 	  [oldval1] "r" (oldval1), [oldval2] "r" (oldval2)		\
 	: cl);								\
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/barrier.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/barrier.h
@@ -57,6 +57,25 @@
 	return mask;
 }
 
+/*
+ * Ensure that reads of the counter are treated the same as memory reads
+ * for the purposes of ordering by subsequent memory barriers.
+ *
+ * This insanity brought to you by speculative system register reads,
+ * out-of-order memory accesses, sequence locks and Thomas Gleixner.
+ *
+ * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html
+ */
+#define arch_counter_enforce_ordering(val) do {				\
+	u64 tmp, _val = (val);						\
+									\
+	asm volatile(							\
+	"	eor	%0, %1, %1\n"					\
+	"	add	%0, sp, %0\n"					\
+	"	ldr	xzr, [%0]"					\
+	: "=r" (tmp) : "r" (_val));					\
+} while (0)
+
 #define __smp_mb()	dmb(ish)
 #define __smp_rmb()	dmb(ishld)
 #define __smp_wmb()	dmb(ishst)
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/brk-imm.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/brk-imm.h
@@ -10,6 +10,7 @@
  * #imm16 values used for BRK instruction generation
  * 0x004: for installing kprobes
  * 0x005: for installing uprobes
+ * 0x006: for kprobe software single-step
  * Allowed values for kgdb are 0x400 - 0x7ff
  * 0x100: for triggering a fault on purpose (reserved)
  * 0x400: for dynamic BRK instruction
@@ -19,6 +20,7 @@
  */
 #define KPROBES_BRK_IMM			0x004
 #define UPROBES_BRK_IMM			0x005
+#define KPROBES_BRK_SS_IMM		0x006
 #define FAULT_BRK_IMM			0x100
 #define KGDB_DYN_DBG_BRK_IMM		0x400
 #define KGDB_COMPILED_DBG_BRK_IMM	0x401
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/cache.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/cache.h
@@ -11,6 +11,7 @@
 #define CTR_L1IP_MASK		3
 #define CTR_DMINLINE_SHIFT	16
 #define CTR_IMINLINE_SHIFT	0
+#define CTR_IMINLINE_MASK	0xf
 #define CTR_ERG_SHIFT		20
 #define CTR_CWG_SHIFT		24
 #define CTR_CWG_MASK		15
@@ -18,7 +19,7 @@
 #define CTR_DIC_SHIFT		29
 
 #define CTR_CACHE_MINLINE_MASK	\
-	(0xf << CTR_DMINLINE_SHIFT | 0xf << CTR_IMINLINE_SHIFT)
+	(0xf << CTR_DMINLINE_SHIFT | CTR_IMINLINE_MASK << CTR_IMINLINE_SHIFT)
 
 #define CTR_L1IP(ctr)		(((ctr) >> CTR_L1IP_SHIFT) & CTR_L1IP_MASK)
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/cacheflush.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/cacheflush.h
@@ -79,7 +79,7 @@
 	 * IPI all online CPUs so that they undergo a context synchronization
 	 * event and are forced to refetch the new instructions.
 	 */
-#ifdef CONFIG_KGDB
+
 	/*
 	 * KGDB performs cache maintenance with interrupts disabled, so we
 	 * will deadlock trying to IPI the secondary CPUs. In theory, we can
@@ -89,9 +89,9 @@
 	 * the patching operation, so we don't need extra IPIs here anyway.
 	 * In which case, add a KGDB-specific bodge and return early.
 	 */
-	if (kgdb_connected && irqs_disabled())
+	if (in_dbg_master())
 		return;
-#endif
+
 	kick_all_cpus_sync();
 }
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/checksum.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/checksum.h
@@ -19,16 +19,17 @@
 {
 	__uint128_t tmp;
 	u64 sum;
+	int n = ihl; /* we want it signed */
 
 	tmp = *(const __uint128_t *)iph;
 	iph += 16;
-	ihl -= 4;
+	n -= 4;
 	tmp += ((tmp >> 64) | (tmp << 64));
 	sum = tmp >> 64;
 	do {
 		sum += *(const u32 *)iph;
 		iph += 4;
-	} while (--ihl);
+	} while (--n > 0);
 
 	sum += ((sum >> 32) | (sum << 32));
 	return csum_fold((__force u32)(sum >> 32));
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/clocksource.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/clocksource.h
@@ -2,8 +2,11 @@
 #ifndef _ASM_CLOCKSOURCE_H
 #define _ASM_CLOCKSOURCE_H
 
+#include <asm/vdso/clocksource.h>
+
 struct arch_clocksource_data {
-	bool vdso_direct;	/* Usable for direct VDSO access? */
+	/* Usable for direct VDSO access? */
+	enum vdso_arch_clockmode clock_mode;
 };
 
 #endif
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/compat.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/compat.h
@@ -4,6 +4,9 @@
  */
 #ifndef __ASM_COMPAT_H
 #define __ASM_COMPAT_H
+
+#include <asm-generic/compat.h>
+
 #ifdef CONFIG_COMPAT
 
 /*
@@ -13,8 +16,6 @@
 #include <linux/sched.h>
 #include <linux/sched/task_stack.h>
 
-#include <asm-generic/compat.h>
-
 #define COMPAT_USER_HZ		100
 #ifdef __AARCH64EB__
 #define COMPAT_UTS_MACHINE	"armv8b\0\0"
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/cpu.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/cpu.h
@@ -25,6 +25,7 @@
 	u64		reg_id_aa64dfr1;
 	u64		reg_id_aa64isar0;
 	u64		reg_id_aa64isar1;
+	u64		reg_id_aa64isar2;
 	u64		reg_id_aa64mmfr0;
 	u64		reg_id_aa64mmfr1;
 	u64		reg_id_aa64mmfr2;
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/cpucaps.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/cpucaps.h
@@ -54,7 +54,10 @@
 #define ARM64_WORKAROUND_1463225		44
 #define ARM64_WORKAROUND_CAVIUM_TX2_219_TVM	45
 #define ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM	46
+#define ARM64_WORKAROUND_1542419		47
+#define ARM64_SPECTRE_BHB			48
+#define ARM64_WORKAROUND_1742098		49
 
-#define ARM64_NCAPS				47
+#define ARM64_NCAPS				50
 
 #endif /* __ASM_CPUCAPS_H */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/cpufeature.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/cpufeature.h
@@ -262,6 +262,8 @@
 /*
  * CPU feature detected at boot time based on feature of one or more CPUs.
  * All possible conflicts for a late CPU are ignored.
+ * NOTE: this means that a late CPU with the feature will *not* cause the
+ * capability to be advertised by cpus_have_*cap()!
  */
 #define ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE		\
 	(ARM64_CPUCAP_SCOPE_LOCAL_CPU		|	\
@@ -506,6 +508,34 @@
 	return id_aa64mmfr0_mixed_endian_el0(read_cpuid(ID_AA64MMFR0_EL1));
 }
 
+static inline bool supports_csv2p3(int scope)
+{
+	u64 pfr0;
+	u8 csv2_val;
+
+	if (scope == SCOPE_LOCAL_CPU)
+		pfr0 = read_sysreg_s(SYS_ID_AA64PFR0_EL1);
+	else
+		pfr0 = read_sanitised_ftr_reg(SYS_ID_AA64PFR0_EL1);
+
+	csv2_val = cpuid_feature_extract_unsigned_field(pfr0,
+							ID_AA64PFR0_CSV2_SHIFT);
+	return csv2_val == 3;
+}
+
+static inline bool supports_clearbhb(int scope)
+{
+	u64 isar2;
+
+	if (scope == SCOPE_LOCAL_CPU)
+		isar2 = read_sysreg_s(SYS_ID_AA64ISAR2_EL1);
+	else
+		isar2 = read_sanitised_ftr_reg(SYS_ID_AA64ISAR2_EL1);
+
+	return cpuid_feature_extract_unsigned_field(isar2,
+						    ID_AA64ISAR2_CLEARBHB_SHIFT);
+}
+
 static inline bool system_supports_32bit_el0(void)
 {
 	return cpus_have_const_cap(ARM64_HAS_32BIT_EL0);
@@ -601,7 +631,7 @@
 		 cpus_have_const_cap(ARM64_HAS_GENERIC_AUTH_IMP_DEF));
 }
 
-static inline bool system_uses_irq_prio_masking(void)
+static __always_inline bool system_uses_irq_prio_masking(void)
 {
 	return IS_ENABLED(CONFIG_ARM64_PSEUDO_NMI) &&
 	       cpus_have_const_cap(ARM64_HAS_IRQ_PRIO_MASKING);
@@ -637,6 +667,18 @@
 
 void arm64_set_ssbd_mitigation(bool state);
 
+/* Watch out, ordering is important here. */
+enum mitigation_state {
+	SPECTRE_UNAFFECTED,
+	SPECTRE_MITIGATED,
+	SPECTRE_VULNERABLE,
+};
+
+enum mitigation_state arm64_get_spectre_bhb_state(void);
+bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry, int scope);
+u8 spectre_bhb_loop_affected(int scope);
+void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
+
 extern int do_emulate_mrs(struct pt_regs *regs, u32 sys_reg, u32 rt);
 
 static inline u32 id_aa64mmfr0_parange_to_phys_shift(int parange)
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/cputype.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/cputype.h
@@ -41,7 +41,7 @@
 	(((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT)
 
 #define MIDR_CPU_MODEL(imp, partnum) \
-	(((imp)			<< MIDR_IMPLEMENTOR_SHIFT) | \
+	((_AT(u32, imp)		<< MIDR_IMPLEMENTOR_SHIFT) | \
 	(0xf			<< MIDR_ARCHITECTURE_SHIFT) | \
 	((partnum)		<< MIDR_PARTNUM_SHIFT))
 
@@ -59,6 +59,7 @@
 #define ARM_CPU_IMP_NVIDIA		0x4E
 #define ARM_CPU_IMP_FUJITSU		0x46
 #define ARM_CPU_IMP_HISI		0x48
+#define ARM_CPU_IMP_AMPERE		0xC0
 
 #define ARM_CPU_PART_AEM_V8		0xD0F
 #define ARM_CPU_PART_FOUNDATION		0xD00
@@ -71,6 +72,14 @@
 #define ARM_CPU_PART_CORTEX_A55		0xD05
 #define ARM_CPU_PART_CORTEX_A76		0xD0B
 #define ARM_CPU_PART_NEOVERSE_N1	0xD0C
+#define ARM_CPU_PART_CORTEX_A77		0xD0D
+#define ARM_CPU_PART_NEOVERSE_V1	0xD40
+#define ARM_CPU_PART_CORTEX_A78		0xD41
+#define ARM_CPU_PART_CORTEX_X1		0xD44
+#define ARM_CPU_PART_CORTEX_A710	0xD47
+#define ARM_CPU_PART_CORTEX_X2		0xD48
+#define ARM_CPU_PART_NEOVERSE_N2	0xD49
+#define ARM_CPU_PART_CORTEX_A78C	0xD4B
 
 #define APM_CPU_PART_POTENZA		0x000
 
@@ -93,6 +102,8 @@
 
 #define HISI_CPU_PART_TSV110		0xD01
 
+#define AMPERE_CPU_PART_AMPERE1		0xAC3
+
 #define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
 #define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)
 #define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
@@ -102,6 +113,14 @@
 #define MIDR_CORTEX_A55 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A55)
 #define MIDR_CORTEX_A76	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
 #define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
+#define MIDR_CORTEX_A77	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
+#define MIDR_NEOVERSE_V1	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)
+#define MIDR_CORTEX_A78	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)
+#define MIDR_CORTEX_X1	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)
+#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
+#define MIDR_CORTEX_X2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X2)
+#define MIDR_NEOVERSE_N2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N2)
+#define MIDR_CORTEX_A78C	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78C)
 #define MIDR_THUNDERX	MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
 #define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
 #define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
@@ -115,6 +134,7 @@
 #define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
 #define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
 #define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
+#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1)
 
 /* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */
 #define MIDR_FUJITSU_ERRATUM_010001		MIDR_FUJITSU_A64FX
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/daifflags.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/daifflags.h
@@ -36,7 +36,7 @@
 	trace_hardirqs_off();
 }
 
-static inline unsigned long local_daif_save(void)
+static inline unsigned long local_daif_save_flags(void)
 {
 	unsigned long flags;
 
@@ -48,6 +48,15 @@
 			flags |= PSR_I_BIT;
 	}
 
+	return flags;
+}
+
+static inline unsigned long local_daif_save(void)
+{
+	unsigned long flags;
+
+	flags = local_daif_save_flags();
+
 	local_daif_mask();
 
 	return flags;
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/debug-monitors.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/debug-monitors.h
@@ -53,6 +53,7 @@
 
 /* kprobes BRK opcodes with ESR encoding  */
 #define BRK64_OPCODE_KPROBES	(AARCH64_BREAK_MON | (KPROBES_BRK_IMM << 5))
+#define BRK64_OPCODE_KPROBES_SS	(AARCH64_BREAK_MON | (KPROBES_BRK_SS_IMM << 5))
 /* uprobes BRK opcodes with ESR encoding  */
 #define BRK64_OPCODE_UPROBES	(AARCH64_BREAK_MON | (UPROBES_BRK_IMM << 5))
 
@@ -109,10 +110,13 @@
 
 void user_rewind_single_step(struct task_struct *task);
 void user_fastforward_single_step(struct task_struct *task);
+void user_regs_reset_single_step(struct user_pt_regs *regs,
+				 struct task_struct *task);
 
 void kernel_enable_single_step(struct pt_regs *regs);
 void kernel_disable_single_step(void);
 int kernel_active_single_step(void);
+void kernel_rewind_single_step(struct pt_regs *regs);
 
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
 int reinstall_suspended_bps(struct pt_regs *regs);
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/fixmap.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/fixmap.h
@@ -63,9 +63,11 @@
 #endif /* CONFIG_ACPI_APEI_GHES */
 
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
+	FIX_ENTRY_TRAMP_TEXT3,
+	FIX_ENTRY_TRAMP_TEXT2,
+	FIX_ENTRY_TRAMP_TEXT1,
 	FIX_ENTRY_TRAMP_DATA,
-	FIX_ENTRY_TRAMP_TEXT,
-#define TRAMP_VALIAS		(__fix_to_virt(FIX_ENTRY_TRAMP_TEXT))
+#define TRAMP_VALIAS		(__fix_to_virt(FIX_ENTRY_TRAMP_TEXT1))
 #endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
 	__end_of_permanent_fixed_addresses,
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/io.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/io.h
@@ -204,4 +204,8 @@
 
 extern int devmem_is_allowed(unsigned long pfn);
 
+extern bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size,
+					unsigned long flags);
+#define arch_memremap_can_ram_remap arch_memremap_can_ram_remap
+
 #endif	/* __ASM_IO_H */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kernel-pgtable.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kernel-pgtable.h
@@ -65,8 +65,8 @@
 #define EARLY_KASLR	(0)
 #endif
 
-#define EARLY_ENTRIES(vstart, vend, shift) (((vend) >> (shift)) \
-					- ((vstart) >> (shift)) + 1 + EARLY_KASLR)
+#define EARLY_ENTRIES(vstart, vend, shift) \
+	((((vend) - 1) >> (shift)) - ((vstart) >> (shift)) + 1 + EARLY_KASLR)
 
 #define EARLY_PGDS(vstart, vend) (EARLY_ENTRIES(vstart, vend, PGDIR_SHIFT))
 
@@ -89,12 +89,6 @@
 #define INIT_DIR_SIZE (PAGE_SIZE * EARLY_PAGES(KIMAGE_VADDR + TEXT_OFFSET, _end))
 #define IDMAP_DIR_SIZE		(IDMAP_PGTABLE_LEVELS * PAGE_SIZE)
 
-#ifdef CONFIG_ARM64_SW_TTBR0_PAN
-#define RESERVED_TTBR0_SIZE	(PAGE_SIZE)
-#else
-#define RESERVED_TTBR0_SIZE	(0)
-#endif
-
 /* Initial memory map size */
 #if ARM64_SWAPPER_USES_SECTION_MAPS
 #define SWAPPER_BLOCK_SHIFT	SECTION_SHIFT
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kprobes.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kprobes.h
@@ -16,7 +16,7 @@
 #include <linux/percpu.h>
 
 #define __ARCH_WANT_KPROBES_INSN_SLOT
-#define MAX_INSN_SIZE			1
+#define MAX_INSN_SIZE			2
 
 #define flush_insn_slot(p)		do { } while (0)
 #define kretprobe_blacklist_size	0
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_arm.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_arm.h
@@ -72,11 +72,12 @@
  * IMO:		Override CPSR.I and enable signaling with VI
  * FMO:		Override CPSR.F and enable signaling with VF
  * SWIO:	Turn set/way invalidates into set/way clean+invalidate
+ * PTW:		Take a stage2 fault if a stage1 walk steps in device memory
  */
 #define HCR_GUEST_FLAGS (HCR_TSC | HCR_TSW | HCR_TWE | HCR_TWI | HCR_VM | \
 			 HCR_TVM | HCR_BSU_IS | HCR_FB | HCR_TAC | \
 			 HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW | HCR_TLOR | \
-			 HCR_FMO | HCR_IMO)
+			 HCR_FMO | HCR_IMO | HCR_PTW )
 #define HCR_VIRT_EXCP_MASK (HCR_VSE | HCR_VI | HCR_VF)
 #define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK)
 #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
@@ -275,6 +276,7 @@
 #define CPTR_EL2_DEFAULT	CPTR_EL2_RES1
 
 /* Hyp Debug Configuration Register bits */
+#define MDCR_EL2_TTRF		(1 << 19)
 #define MDCR_EL2_TPMS		(1 << 14)
 #define MDCR_EL2_E2PB_MASK	(UL(0x3))
 #define MDCR_EL2_E2PB_SHIFT	(UL(12))
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_asm.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_asm.h
@@ -60,7 +60,7 @@
 extern void __kvm_flush_vm_context(void);
 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
-extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
+extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
 
 extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);
 
@@ -88,6 +88,34 @@
 		*__hyp_this_cpu_ptr(sym);				\
 	 })
 
+#define __KVM_EXTABLE(from, to)						\
+	"	.pushsection	__kvm_ex_table, \"a\"\n"		\
+	"	.align		3\n"					\
+	"	.long		(" #from " - .), (" #to " - .)\n"	\
+	"	.popsection\n"
+
+
+#define __kvm_at(at_op, addr)						\
+( { 									\
+	int __kvm_at_err = 0;						\
+	u64 spsr, elr;							\
+	asm volatile(							\
+	"	mrs	%1, spsr_el2\n"					\
+	"	mrs	%2, elr_el2\n"					\
+	"1:	at	"at_op", %3\n"					\
+	"	isb\n"							\
+	"	b	9f\n"						\
+	"2:	msr	spsr_el2, %1\n"					\
+	"	msr	elr_el2, %2\n"					\
+	"	mov	%w0, %4\n"					\
+	"9:\n"								\
+	__KVM_EXTABLE(1b, 2b)						\
+	: "+r" (__kvm_at_err), "=&r" (spsr), "=&r" (elr)		\
+	: "r" (addr), "i" (-EFAULT));					\
+	__kvm_at_err;							\
+} )
+
+
 #else /* __ASSEMBLY__ */
 
 .macro hyp_adr_this_cpu reg, sym, tmp
@@ -113,6 +141,21 @@
 	kern_hyp_va	\vcpu
 .endm
 
+/*
+ * KVM extable for unexpected exceptions.
+ * In the same format _asm_extable, but output to a different section so that
+ * it can be mapped to EL2. The KVM version is not sorted. The caller must
+ * ensure:
+ * x18 has the hypervisor value to allow any Shadow-Call-Stack instrumented
+ * code to write to it, and that SPSR_EL2 and ELR_EL2 are restored by the fixup.
+ */
+.macro	_kvm_extable, from, to
+	.pushsection	__kvm_ex_table, "a"
+	.align		3
+	.long		(\from - .), (\to - .)
+	.popsection
+.endm
+
 #endif
 
 #endif /* __ARM_KVM_ASM_H__ */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_emulate.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_emulate.h
@@ -97,12 +97,6 @@
 	vcpu->arch.hcr_el2 &= ~(HCR_API | HCR_APK);
 }
 
-static inline void vcpu_ptrauth_setup_lazy(struct kvm_vcpu *vcpu)
-{
-	if (vcpu_has_ptrauth(vcpu))
-		vcpu_ptrauth_disable(vcpu);
-}
-
 static inline unsigned long vcpu_get_vsesr(struct kvm_vcpu *vcpu)
 {
 	return vcpu->arch.vsesr_el2;
@@ -204,6 +198,38 @@
 		vcpu_gp_regs(vcpu)->spsr[KVM_SPSR_EL1] = v;
 }
 
+/*
+ * The layout of SPSR for an AArch32 state is different when observed from an
+ * AArch64 SPSR_ELx or an AArch32 SPSR_*. This function generates the AArch32
+ * view given an AArch64 view.
+ *
+ * In ARM DDI 0487E.a see:
+ *
+ * - The AArch64 view (SPSR_EL2) in section C5.2.18, page C5-426
+ * - The AArch32 view (SPSR_abt) in section G8.2.126, page G8-6256
+ * - The AArch32 view (SPSR_und) in section G8.2.132, page G8-6280
+ *
+ * Which show the following differences:
+ *
+ * | Bit | AA64 | AA32 | Notes                       |
+ * +-----+------+------+-----------------------------|
+ * | 24  | DIT  | J    | J is RES0 in ARMv8          |
+ * | 21  | SS   | DIT  | SS doesn't exist in AArch32 |
+ *
+ * ... and all other bits are (currently) common.
+ */
+static inline unsigned long host_spsr_to_spsr32(unsigned long spsr)
+{
+	const unsigned long overlap = BIT(24) | BIT(21);
+	unsigned long dit = !!(spsr & PSR_AA32_DIT_BIT);
+
+	spsr &= ~overlap;
+
+	spsr |= dit << 21;
+
+	return spsr;
+}
+
 static inline bool vcpu_mode_priv(const struct kvm_vcpu *vcpu)
 {
 	u32 mode;
@@ -263,12 +289,17 @@
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SSE);
 }
 
+static inline bool kvm_vcpu_dabt_issf(const struct kvm_vcpu *vcpu)
+{
+	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SF);
+}
+
 static inline int kvm_vcpu_dabt_get_rd(const struct kvm_vcpu *vcpu)
 {
 	return (kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
 }
 
-static inline bool kvm_vcpu_dabt_iss1tw(const struct kvm_vcpu *vcpu)
+static __always_inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
 {
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_S1PTW);
 }
@@ -276,7 +307,7 @@
 static inline bool kvm_vcpu_dabt_iswrite(const struct kvm_vcpu *vcpu)
 {
 	return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_WNR) ||
-		kvm_vcpu_dabt_iss1tw(vcpu); /* AF/DBM update */
+		kvm_vcpu_abt_iss1tw(vcpu); /* AF/DBM update */
 }
 
 static inline bool kvm_vcpu_dabt_is_cm(const struct kvm_vcpu *vcpu)
@@ -305,6 +336,11 @@
 	return kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_IABT_LOW;
 }
 
+static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
+{
+	return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
+}
+
 static inline u8 kvm_vcpu_trap_get_fault(const struct kvm_vcpu *vcpu)
 {
 	return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC;
@@ -342,6 +378,27 @@
 
 static inline bool kvm_is_write_fault(struct kvm_vcpu *vcpu)
 {
+	if (kvm_vcpu_abt_iss1tw(vcpu)) {
+		/*
+		 * Only a permission fault on a S1PTW should be
+		 * considered as a write. Otherwise, page tables baked
+		 * in a read-only memslot will result in an exception
+		 * being delivered in the guest.
+		 *
+		 * The drawback is that we end-up faulting twice if the
+		 * guest is using any of HW AF/DB: a translation fault
+		 * to map the page containing the PT (read only at
+		 * first), then a permission fault to allow the flags
+		 * to be set.
+		 */
+		switch (kvm_vcpu_trap_get_fault_type(vcpu)) {
+		case ESR_ELx_FSC_PERM:
+			return true;
+		default:
+			return false;
+		}
+	}
+
 	if (kvm_vcpu_trap_is_iabt(vcpu))
 		return false;
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_host.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_host.h
@@ -182,6 +182,7 @@
 #define c2_TTBR1	(TTBR1_EL1 * 2)	/* Translation Table Base Register 1 */
 #define c2_TTBR1_high	(c2_TTBR1 + 1)	/* TTBR1 top 32 bits */
 #define c2_TTBCR	(TCR_EL1 * 2)	/* Translation Table Base Control R. */
+#define c2_TTBCR2	(c2_TTBCR + 1)	/* Translation Table Base Control R. 2 */
 #define c3_DACR		(DACR32_EL2 * 2)/* Domain Access Control Register */
 #define c5_DFSR		(ESR_EL1 * 2)	/* Data Fault Status Register */
 #define c5_IFSR		(IFSR32_EL2 * 2)/* Instruction Fault Status Register */
@@ -209,6 +210,7 @@
 #define cp14_DBGWCR0	(DBGWCR0_EL1 * 2)
 #define cp14_DBGWVR0	(DBGWVR0_EL1 * 2)
 #define cp14_DBGDCCINT	(MDCCINT_EL1 * 2)
+#define cp14_DBGVCR	(DBGVCR32_EL2 * 2)
 
 #define NR_COPRO_REGS	(NR_SYS_REGS * 2)
 
@@ -392,8 +394,10 @@
  * CP14 and CP15 live in the same array, as they are backed by the
  * same system registers.
  */
-#define vcpu_cp14(v,r)		((v)->arch.ctxt.copro[(r)])
-#define vcpu_cp15(v,r)		((v)->arch.ctxt.copro[(r)])
+#define CPx_BIAS		IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)
+
+#define vcpu_cp14(v,r)		((v)->arch.ctxt.copro[(r) ^ CPx_BIAS])
+#define vcpu_cp15(v,r)		((v)->arch.ctxt.copro[(r) ^ CPx_BIAS])
 
 struct kvm_vm_stat {
 	ulong remote_tlb_flush;
@@ -425,7 +429,7 @@
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
-			unsigned long start, unsigned long end);
+			unsigned long start, unsigned long end, unsigned flags);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
@@ -548,6 +552,7 @@
 static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {}
 
 void kvm_arm_init_debug(void);
+void kvm_arm_vcpu_init_debug(struct kvm_vcpu *vcpu);
 void kvm_arm_setup_debug(struct kvm_vcpu *vcpu);
 void kvm_arm_clear_debug(struct kvm_vcpu *vcpu);
 void kvm_arm_reset_debug_ptr(struct kvm_vcpu *vcpu);
@@ -677,4 +682,6 @@
 #define kvm_arm_vcpu_sve_finalized(vcpu) \
 	((vcpu)->arch.flags & KVM_ARM64_VCPU_SVE_FINALIZED)
 
+#define kvm_arm_vcpu_loaded(vcpu)	((vcpu)->arch.sysregs_loaded_on_cpu)
+
 #endif /* __ARM64_KVM_HOST_H__ */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_hyp.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_hyp.h
@@ -71,6 +71,9 @@
 
 void __debug_switch_to_guest(struct kvm_vcpu *vcpu);
 void __debug_switch_to_host(struct kvm_vcpu *vcpu);
+void __debug_save_host_buffers_nvhe(struct kvm_vcpu *vcpu);
+void __debug_restore_host_buffers_nvhe(struct kvm_vcpu *vcpu);
+
 
 void __fpsimd_save_state(struct user_fpsimd_state *fp_regs);
 void __fpsimd_restore_state(struct user_fpsimd_state *fp_regs);
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_mmio.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_mmio.h
@@ -10,13 +10,11 @@
 #include <linux/kvm_host.h>
 #include <asm/kvm_arm.h>
 
-/*
- * This is annoying. The mmio code requires this, even if we don't
- * need any decoding. To be fixed.
- */
 struct kvm_decode {
 	unsigned long rt;
 	bool sign_extend;
+	/* Witdth of the register accessed by the faulting instruction is 64-bits */
+	bool sixty_four;
 };
 
 void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/kvm_mmu.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/kvm_mmu.h
@@ -478,7 +478,9 @@
 	void *vect = kern_hyp_va(kvm_ksym_ref(__kvm_hyp_vector));
 	int slot = -1;
 
-	if (cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR) && data->fn) {
+	if ((cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR) ||
+	     cpus_have_const_cap(ARM64_SPECTRE_BHB)) &&
+	    data && data->template_start) {
 		vect = kern_hyp_va(kvm_ksym_ref(__bp_harden_hyp_vecs_start));
 		slot = data->hyp_vectors_slot;
 	}
@@ -507,7 +509,8 @@
 	 * !HBP +  HEL2 -> allocate one vector slot and use exec mapping
 	 *  HBP +  HEL2 -> use hardened vertors and use exec mapping
 	 */
-	if (cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR)) {
+	if (cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR) ||
+	    cpus_have_const_cap(ARM64_SPECTRE_BHB)) {
 		__kvm_bp_vect_base = kvm_ksym_ref(__bp_harden_hyp_vecs_start);
 		__kvm_bp_vect_base = kern_hyp_va(__kvm_bp_vect_base);
 	}
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/linkage.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/linkage.h
@@ -4,4 +4,20 @@
 #define __ALIGN		.align 2
 #define __ALIGN_STR	".align 2"
 
+/*
+ * Annotate a function as position independent, i.e., safe to be called before
+ * the kernel virtual mapping is activated.
+ */
+#define SYM_FUNC_START_PI(x)			\
+		SYM_FUNC_START_ALIAS(__pi_##x);	\
+		SYM_FUNC_START(x)
+
+#define SYM_FUNC_START_WEAK_PI(x)		\
+		SYM_FUNC_START_ALIAS(__pi_##x);	\
+		SYM_FUNC_START_WEAK(x)
+
+#define SYM_FUNC_END_PI(x)			\
+		SYM_FUNC_END(x);		\
+		SYM_FUNC_END_ALIAS(__pi_##x)
+
 #endif
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/lse.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/lse.h
@@ -6,6 +6,8 @@
 
 #if defined(CONFIG_AS_LSE) && defined(CONFIG_ARM64_LSE_ATOMICS)
 
+#define __LSE_PREAMBLE	".arch_extension lse\n"
+
 #include <linux/compiler_types.h>
 #include <linux/export.h>
 #include <linux/jump_label.h>
@@ -14,8 +16,6 @@
 #include <asm/atomic_lse.h>
 #include <asm/cpucaps.h>
 
-__asm__(".arch_extension	lse");
-
 extern struct static_key_false cpu_hwcap_keys[ARM64_NCAPS];
 extern struct static_key_false arm64_const_caps_ready;
 
@@ -34,7 +34,7 @@
 
 /* In-line patching at runtime */
 #define ARM64_LSE_ATOMIC_INSN(llsc, lse)				\
-	ALTERNATIVE(llsc, lse, ARM64_HAS_LSE_ATOMICS)
+	ALTERNATIVE(llsc, __LSE_PREAMBLE lse, ARM64_HAS_LSE_ATOMICS)
 
 #else	/* CONFIG_AS_LSE && CONFIG_ARM64_LSE_ATOMICS */
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/memory.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/memory.h
@@ -178,7 +178,6 @@
 #include <linux/bitops.h>
 #include <linux/mmdebug.h>
 
-extern s64			physvirt_offset;
 extern s64			memstart_addr;
 /* PHYS_OFFSET - the physical address of the start of memory. */
 #define PHYS_OFFSET		({ VM_BUG_ON(memstart_addr & 1); memstart_addr; })
@@ -219,7 +218,7 @@
 	((__force __typeof__(addr))sign_extend64((__force u64)(addr), 55))
 
 #define untagged_addr(addr)	({					\
-	u64 __addr = (__force u64)addr;					\
+	u64 __addr = (__force u64)(addr);					\
 	__addr &= __untagged_addr(__addr);				\
 	(__force __typeof__(addr))__addr;				\
 })
@@ -248,13 +247,13 @@
 
 
 /*
- * The linear kernel range starts at the bottom of the virtual address
- * space. Testing the top bit for the start of the region is a
- * sufficient check and avoids having to worry about the tag.
+ * Check whether an arbitrary address is within the linear map, which
+ * lives in the [PAGE_OFFSET, PAGE_END) interval at the bottom of the
+ * kernel's TTBR1 address range.
  */
-#define __is_lm_address(addr)	(!(((u64)addr) & BIT(vabits_actual - 1)))
+#define __is_lm_address(addr)	(((u64)(addr) ^ PAGE_OFFSET) < (PAGE_END - PAGE_OFFSET))
 
-#define __lm_to_phys(addr)	(((addr) + physvirt_offset))
+#define __lm_to_phys(addr)	(((addr) & ~PAGE_OFFSET) + PHYS_OFFSET)
 #define __kimg_to_phys(addr)	((addr) - kimage_voffset)
 
 #define __virt_to_phys_nodebug(x) ({					\
@@ -272,7 +271,7 @@
 #define __phys_addr_symbol(x)	__pa_symbol_nodebug(x)
 #endif /* CONFIG_DEBUG_VIRTUAL */
 
-#define __phys_to_virt(x)	((unsigned long)((x) - physvirt_offset))
+#define __phys_to_virt(x)	((unsigned long)((x) - PHYS_OFFSET) | PAGE_OFFSET)
 #define __phys_to_kimg(x)	((unsigned long)((x) + kimage_voffset))
 
 /*
@@ -316,6 +315,11 @@
 #define ARCH_PFN_OFFSET		((unsigned long)PHYS_PFN_OFFSET)
 
 #if !defined(CONFIG_SPARSEMEM_VMEMMAP) || defined(CONFIG_DEBUG_VIRTUAL)
+#define page_to_virt(x)	({						\
+	__typeof__(x) __page = x;					\
+	void *__addr = __va(page_to_phys(__page));			\
+	(void *)__tag_set((const void *)__addr, page_kasan_tag(__page));\
+})
 #define virt_to_page(x)		pfn_to_page(virt_to_pfn(x))
 #else
 #define page_to_virt(x)	({						\
@@ -333,7 +337,7 @@
 #endif /* !CONFIG_SPARSEMEM_VMEMMAP || CONFIG_DEBUG_VIRTUAL */
 
 #define virt_addr_valid(addr)	({					\
-	__typeof__(addr) __addr = addr;					\
+	__typeof__(addr) __addr = __tag_reset(addr);			\
 	__is_lm_address(__addr) && pfn_valid(virt_to_pfn(__addr));	\
 })
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/mmu.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/mmu.h
@@ -29,7 +29,7 @@
  */
 #define ASID(mm)	((mm)->context.id.counter & 0xffff)
 
-static inline bool arm64_kernel_unmapped_at_el0(void)
+static __always_inline bool arm64_kernel_unmapped_at_el0(void)
 {
 	return IS_ENABLED(CONFIG_UNMAP_KERNEL_AT_EL0) &&
 	       cpus_have_const_cap(ARM64_UNMAP_KERNEL_AT_EL0);
@@ -82,6 +82,12 @@
 struct bp_hardening_data {
 	int			hyp_vectors_slot;
 	bp_hardening_cb_t	fn;
+
+	/*
+	 * template_start is only used by the BHB mitigation to identify the
+	 * hyp_vectors_slot sequence.
+	 */
+	const char *template_start;
 };
 
 #if (defined(CONFIG_HARDEN_BRANCH_PREDICTOR) ||	\
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/mmu_context.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/mmu_context.h
@@ -36,11 +36,11 @@
 }
 
 /*
- * Set TTBR0 to empty_zero_page. No translations will be possible via TTBR0.
+ * Set TTBR0 to reserved_pg_dir. No translations will be possible via TTBR0.
  */
 static inline void cpu_set_reserved_ttbr0(void)
 {
-	unsigned long ttbr = phys_to_ttbr(__pa_symbol(empty_zero_page));
+	unsigned long ttbr = phys_to_ttbr(__pa_symbol(reserved_pg_dir));
 
 	write_sysreg(ttbr, ttbr0_el1);
 	isb();
@@ -63,10 +63,7 @@
 
 static inline bool __cpu_uses_extended_idmap(void)
 {
-	if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52))
-		return false;
-
-	return unlikely(idmap_t0sz != TCR_T0SZ(VA_BITS));
+	return unlikely(idmap_t0sz != TCR_T0SZ(vabits_actual));
 }
 
 /*
@@ -187,9 +184,9 @@
 		return;
 
 	if (mm == &init_mm)
-		ttbr = __pa_symbol(empty_zero_page);
+		ttbr = phys_to_ttbr(__pa_symbol(reserved_pg_dir));
 	else
-		ttbr = virt_to_phys(mm->pgd) | ASID(mm) << 48;
+		ttbr = phys_to_ttbr(virt_to_phys(mm->pgd)) | ASID(mm) << 48;
 
 	WRITE_ONCE(task_thread_info(tsk)->ttbr0, ttbr);
 }
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/numa.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/numa.h
@@ -25,6 +25,9 @@
 /* Returns a pointer to the cpumask of CPUs on Node 'node'. */
 static inline const struct cpumask *cpumask_of_node(int node)
 {
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
 	return node_to_cpumask_map[node];
 }
 #endif
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/pgtable-hwdef.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/pgtable-hwdef.h
@@ -215,6 +215,7 @@
 #define TCR_TxSZ(x)		(TCR_T0SZ(x) | TCR_T1SZ(x))
 #define TCR_TxSZ_WIDTH		6
 #define TCR_T0SZ_MASK		(((UL(1) << TCR_TxSZ_WIDTH) - 1) << TCR_T0SZ_OFFSET)
+#define TCR_T1SZ_MASK		(((UL(1) << TCR_TxSZ_WIDTH) - 1) << TCR_T1SZ_OFFSET)
 
 #define TCR_EPD0_SHIFT		7
 #define TCR_EPD0_MASK		(UL(1) << TCR_EPD0_SHIFT)
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/pgtable-prot.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/pgtable-prot.h
@@ -54,7 +54,7 @@
 #define PAGE_HYP		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_HYP_XN)
 #define PAGE_HYP_EXEC		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_RDONLY)
 #define PAGE_HYP_RO		__pgprot(_HYP_PAGE_DEFAULT | PTE_HYP | PTE_RDONLY | PTE_HYP_XN)
-#define PAGE_HYP_DEVICE		__pgprot(PROT_DEVICE_nGnRE | PTE_HYP)
+#define PAGE_HYP_DEVICE		__pgprot(_PROT_DEFAULT | PTE_ATTRINDX(MT_DEVICE_nGnRE) | PTE_HYP | PTE_HYP_XN)
 
 #define PAGE_S2_MEMATTR(attr)						\
 	({								\
@@ -85,13 +85,12 @@
 #define PAGE_SHARED_EXEC	__pgprot(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_WRITE)
 #define PAGE_READONLY		__pgprot(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN)
 #define PAGE_READONLY_EXEC	__pgprot(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN)
-#define PAGE_EXECONLY		__pgprot(_PAGE_DEFAULT | PTE_RDONLY | PTE_NG | PTE_PXN)
 
 #define __P000  PAGE_NONE
 #define __P001  PAGE_READONLY
 #define __P010  PAGE_READONLY
 #define __P011  PAGE_READONLY
-#define __P100  PAGE_EXECONLY
+#define __P100  PAGE_READONLY_EXEC
 #define __P101  PAGE_READONLY_EXEC
 #define __P110  PAGE_READONLY_EXEC
 #define __P111  PAGE_READONLY_EXEC
@@ -100,7 +99,7 @@
 #define __S001  PAGE_READONLY
 #define __S010  PAGE_SHARED
 #define __S011  PAGE_SHARED
-#define __S100  PAGE_EXECONLY
+#define __S100  PAGE_READONLY_EXEC
 #define __S101  PAGE_READONLY_EXEC
 #define __S110  PAGE_SHARED_EXEC
 #define __S111  PAGE_SHARED_EXEC
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/pgtable.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/pgtable.h
@@ -23,6 +23,8 @@
 #define VMALLOC_START		(MODULES_END)
 #define VMALLOC_END		(- PUD_SIZE - VMEMMAP_SIZE - SZ_64K)
 
+#define vmemmap			((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT))
+
 #define FIRST_USER_ADDRESS	0UL
 
 #ifndef __ASSEMBLY__
@@ -33,8 +35,6 @@
 #include <linux/mm_types.h>
 #include <linux/sched.h>
 
-extern struct page *vmemmap;
-
 extern void __pte_error(const char *file, int line, unsigned long val);
 extern void __pmd_error(const char *file, int line, unsigned long val);
 extern void __pud_error(const char *file, int line, unsigned long val);
@@ -54,9 +54,15 @@
  * page table entry, taking care of 52-bit addresses.
  */
 #ifdef CONFIG_ARM64_PA_BITS_52
-#define __pte_to_phys(pte)	\
-	((pte_val(pte) & PTE_ADDR_LOW) | ((pte_val(pte) & PTE_ADDR_HIGH) << 36))
-#define __phys_to_pte_val(phys)	(((phys) | ((phys) >> 36)) & PTE_ADDR_MASK)
+static inline phys_addr_t __pte_to_phys(pte_t pte)
+{
+	return (pte_val(pte) & PTE_ADDR_LOW) |
+		((pte_val(pte) & PTE_ADDR_HIGH) << 36);
+}
+static inline pteval_t __phys_to_pte_val(phys_addr_t phys)
+{
+	return (phys | (phys >> 36)) & PTE_ADDR_MASK;
+}
 #else
 #define __pte_to_phys(pte)	(pte_val(pte) & PTE_ADDR_MASK)
 #define __phys_to_pte_val(phys)	(phys)
@@ -96,14 +102,8 @@
 #define pte_dirty(pte)		(pte_sw_dirty(pte) || pte_hw_dirty(pte))
 
 #define pte_valid(pte)		(!!(pte_val(pte) & PTE_VALID))
-/*
- * Execute-only user mappings do not have the PTE_USER bit set. All valid
- * kernel mappings have the PTE_UXN bit set.
- */
 #define pte_valid_not_user(pte) \
-	((pte_val(pte) & (PTE_VALID | PTE_USER | PTE_UXN)) == (PTE_VALID | PTE_UXN))
-#define pte_valid_young(pte) \
-	((pte_val(pte) & (PTE_VALID | PTE_AF)) == (PTE_VALID | PTE_AF))
+	((pte_val(pte) & (PTE_VALID | PTE_USER)) == PTE_VALID)
 #define pte_valid_user(pte) \
 	((pte_val(pte) & (PTE_VALID | PTE_USER)) == (PTE_VALID | PTE_USER))
 
@@ -111,14 +111,17 @@
  * Could the pte be present in the TLB? We must check mm_tlb_flush_pending
  * so that we don't erroneously return false for pages that have been
  * remapped as PROT_NONE but are yet to be flushed from the TLB.
+ * Note that we can't make any assumptions based on the state of the access
+ * flag, since ptep_clear_flush_young() elides a DSB when invalidating the
+ * TLB.
  */
 #define pte_accessible(mm, pte)	\
-	(mm_tlb_flush_pending(mm) ? pte_present(pte) : pte_valid_young(pte))
+	(mm_tlb_flush_pending(mm) ? pte_present(pte) : pte_valid(pte))
 
 /*
  * p??_access_permitted() is true for valid user mappings (subject to the
- * write permission check) other than user execute-only which do not have the
- * PTE_USER bit set. PROT_NONE mappings do not have the PTE_VALID bit set.
+ * write permission check). PROT_NONE mappings do not have the PTE_VALID bit
+ * set.
  */
 #define pte_access_permitted(pte, write) \
 	(pte_valid_user(pte) && (!(write) || pte_write(pte)))
@@ -139,13 +142,6 @@
 	return pte;
 }
 
-static inline pte_t pte_wrprotect(pte_t pte)
-{
-	pte = clear_pte_bit(pte, __pgprot(PTE_WRITE));
-	pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
-	return pte;
-}
-
 static inline pte_t pte_mkwrite(pte_t pte)
 {
 	pte = set_pte_bit(pte, __pgprot(PTE_WRITE));
@@ -171,6 +167,20 @@
 	return pte;
 }
 
+static inline pte_t pte_wrprotect(pte_t pte)
+{
+	/*
+	 * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
+	 * clear), set the PTE_DIRTY bit.
+	 */
+	if (pte_hw_dirty(pte))
+		pte = pte_mkdirty(pte);
+
+	pte = clear_pte_bit(pte, __pgprot(PTE_WRITE));
+	pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
+	return pte;
+}
+
 static inline pte_t pte_mkold(pte_t pte)
 {
 	return clear_pte_bit(pte, __pgprot(PTE_AF));
@@ -460,7 +470,9 @@
 extern pgd_t init_pg_end[];
 extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
 extern pgd_t idmap_pg_dir[PTRS_PER_PGD];
+extern pgd_t idmap_pg_end[];
 extern pgd_t tramp_pg_dir[PTRS_PER_PGD];
+extern pgd_t reserved_pg_dir[PTRS_PER_PGD];
 
 extern void set_swapper_pgd(pgd_t *pgdp, pgd_t pgd);
 
@@ -785,12 +797,6 @@
 	pte = READ_ONCE(*ptep);
 	do {
 		old_pte = pte;
-		/*
-		 * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
-		 * clear), set the PTE_DIRTY bit.
-		 */
-		if (pte_hw_dirty(pte))
-			pte = pte_mkdirty(pte);
 		pte = pte_wrprotect(pte);
 		pte_val(pte) = cmpxchg_relaxed(&pte_val(*ptep),
 					       pte_val(old_pte), pte_val(pte));
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/pointer_auth.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/pointer_auth.h
@@ -3,7 +3,6 @@
 #define __ASM_POINTER_AUTH_H
 
 #include <linux/bitops.h>
-#include <linux/random.h>
 
 #include <asm/cpufeature.h>
 #include <asm/memory.h>
@@ -30,6 +29,13 @@
 	struct ptrauth_key apga;
 };
 
+/*
+ * Only include random.h once ptrauth_keys_* structures are defined
+ * to avoid yet another circular include hell (random.h * ends up
+ * including asm/smp.h, which requires ptrauth_keys_kernel).
+ */
+#include <linux/random.h>
+
 static inline void ptrauth_keys_init(struct ptrauth_keys *keys)
 {
 	if (system_supports_address_auth()) {
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/processor.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/processor.h
@@ -184,8 +184,9 @@
 
 static inline void start_thread_common(struct pt_regs *regs, unsigned long pc)
 {
+	s32 previous_syscall = regs->syscallno;
 	memset(regs, 0, sizeof(*regs));
-	forget_syscall(regs);
+	regs->syscallno = previous_syscall;
 	regs->pc = pc;
 
 	if (system_uses_irq_prio_masking())
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/ptrace.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/ptrace.h
@@ -62,6 +62,7 @@
 #define PSR_AA32_I_BIT		0x00000080
 #define PSR_AA32_A_BIT		0x00000100
 #define PSR_AA32_E_BIT		0x00000200
+#define PSR_AA32_PAN_BIT	0x00400000
 #define PSR_AA32_SSBS_BIT	0x00800000
 #define PSR_AA32_DIT_BIT	0x01000000
 #define PSR_AA32_Q_BIT		0x08000000
@@ -298,7 +299,17 @@
 
 static inline unsigned long regs_return_value(struct pt_regs *regs)
 {
-	return regs->regs[0];
+	unsigned long val = regs->regs[0];
+
+	/*
+	 * Audit currently uses regs_return_value() instead of
+	 * syscall_get_return_value(). Apply the same sign-extension here until
+	 * audit is updated to use syscall_get_return_value().
+	 */
+	if (compat_user_mode(regs))
+		val = sign_extend64(val, 31);
+
+	return val;
 }
 
 static inline void regs_set_return_value(struct pt_regs *regs, unsigned long rc)
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/sections.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/sections.h
@@ -15,8 +15,14 @@
 extern char __idmap_text_start[], __idmap_text_end[];
 extern char __initdata_begin[], __initdata_end[];
 extern char __inittext_begin[], __inittext_end[];
+extern char __exittext_begin[], __exittext_end[];
 extern char __irqentry_text_start[], __irqentry_text_end[];
 extern char __mmuoff_data_start[], __mmuoff_data_end[];
 extern char __entry_tramp_text_start[], __entry_tramp_text_end[];
 
+static inline size_t entry_tramp_text_size(void)
+{
+	return __entry_tramp_text_end - __entry_tramp_text_start;
+}
+
 #endif /* __ASM_SECTIONS_H */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/smp.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/smp.h
@@ -46,7 +46,12 @@
  * Logical CPU mapping.
  */
 extern u64 __cpu_logical_map[NR_CPUS];
-#define cpu_logical_map(cpu)    __cpu_logical_map[cpu]
+extern u64 cpu_logical_map(int cpu);
+
+static inline void set_cpu_logical_map(int cpu, u64 hwid)
+{
+	__cpu_logical_map[cpu] = hwid;
+}
 
 struct seq_file;
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/syscall.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/syscall.h
@@ -29,25 +29,36 @@
 	regs->regs[0] = regs->orig_x0;
 }
 
+static inline long syscall_get_return_value(struct task_struct *task,
+					    struct pt_regs *regs)
+{
+	unsigned long val = regs->regs[0];
+
+	if (is_compat_thread(task_thread_info(task)))
+		val = sign_extend64(val, 31);
+
+	return val;
+}
 
 static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
-	unsigned long error = regs->regs[0];
-	return IS_ERR_VALUE(error) ? error : 0;
-}
+	unsigned long error = syscall_get_return_value(task, regs);
 
-static inline long syscall_get_return_value(struct task_struct *task,
-					    struct pt_regs *regs)
-{
-	return regs->regs[0];
+	return IS_ERR_VALUE(error) ? error : 0;
 }
 
 static inline void syscall_set_return_value(struct task_struct *task,
 					    struct pt_regs *regs,
 					    int error, long val)
 {
-	regs->regs[0] = (long) error ? error : val;
+	if (error)
+		val = error;
+
+	if (is_compat_thread(task_thread_info(task)))
+		val = lower_32_bits(val);
+
+	regs->regs[0] = val;
 }
 
 #define SYSCALL_MAX_ARGS 6
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/syscall_wrapper.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/syscall_wrapper.h
@@ -8,7 +8,7 @@
 #ifndef __ASM_SYSCALL_WRAPPER_H
 #define __ASM_SYSCALL_WRAPPER_H
 
-struct pt_regs;
+#include <asm/ptrace.h>
 
 #define SC_ARM64_REGS_TO_ARGS(x, ...)				\
 	__MAP(x,__SC_ARGS					\
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/sysreg.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/sysreg.h
@@ -49,7 +49,9 @@
 #ifndef CONFIG_BROKEN_GAS_INST
 
 #ifdef __ASSEMBLY__
-#define __emit_inst(x)			.inst (x)
+// The space separator is omitted so that __emit_inst(x) can be parsed as
+// either an assembler directive or an assembler macro argument.
+#define __emit_inst(x)			.inst(x)
 #else
 #define __emit_inst(x)			".inst " __stringify((x)) "\n\t"
 #endif
@@ -100,8 +102,14 @@
 #define SB_BARRIER_INSN			__SYS_BARRIER_INSN(0, 7, 31)
 
 #define SYS_DC_ISW			sys_insn(1, 0, 7, 6, 2)
+#define SYS_DC_IGSW			sys_insn(1, 0, 7, 6, 4)
+#define SYS_DC_IGDSW			sys_insn(1, 0, 7, 6, 6)
 #define SYS_DC_CSW			sys_insn(1, 0, 7, 10, 2)
+#define SYS_DC_CGSW			sys_insn(1, 0, 7, 10, 4)
+#define SYS_DC_CGDSW			sys_insn(1, 0, 7, 10, 6)
 #define SYS_DC_CISW			sys_insn(1, 0, 7, 14, 2)
+#define SYS_DC_CIGSW			sys_insn(1, 0, 7, 14, 4)
+#define SYS_DC_CIGDSW			sys_insn(1, 0, 7, 14, 6)
 
 #define SYS_OSDTRRX_EL1			sys_reg(2, 0, 0, 0, 2)
 #define SYS_MDCCINT_EL1			sys_reg(2, 0, 0, 2, 0)
@@ -163,6 +171,7 @@
 
 #define SYS_ID_AA64ISAR0_EL1		sys_reg(3, 0, 0, 6, 0)
 #define SYS_ID_AA64ISAR1_EL1		sys_reg(3, 0, 0, 6, 1)
+#define SYS_ID_AA64ISAR2_EL1		sys_reg(3, 0, 0, 6, 2)
 
 #define SYS_ID_AA64MMFR0_EL1		sys_reg(3, 0, 0, 7, 0)
 #define SYS_ID_AA64MMFR1_EL1		sys_reg(3, 0, 0, 7, 1)
@@ -573,6 +582,21 @@
 #define ID_AA64ISAR1_GPI_NI		0x0
 #define ID_AA64ISAR1_GPI_IMP_DEF	0x1
 
+/* id_aa64isar2 */
+#define ID_AA64ISAR2_CLEARBHB_SHIFT	28
+#define ID_AA64ISAR2_RPRES_SHIFT	4
+#define ID_AA64ISAR2_WFXT_SHIFT		0
+
+#define ID_AA64ISAR2_RPRES_8BIT		0x0
+#define ID_AA64ISAR2_RPRES_12BIT	0x1
+/*
+ * Value 0x1 has been removed from the architecture, and is
+ * reserved, but has not yet been removed from the ARM ARM
+ * as of ARM DDI 0487G.b.
+ */
+#define ID_AA64ISAR2_WFXT_NI		0x0
+#define ID_AA64ISAR2_WFXT_SUPPORTED	0x2
+
 /* id_aa64pfr0 */
 #define ID_AA64PFR0_CSV3_SHIFT		60
 #define ID_AA64PFR0_CSV2_SHIFT		56
@@ -644,6 +668,7 @@
 #endif
 
 /* id_aa64mmfr1 */
+#define ID_AA64MMFR1_ECBHB_SHIFT	60
 #define ID_AA64MMFR1_PAN_SHIFT		20
 #define ID_AA64MMFR1_LOR_SHIFT		16
 #define ID_AA64MMFR1_HPD_SHIFT		12
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/thread_info.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/thread_info.h
@@ -91,6 +91,7 @@
 #define _TIF_SYSCALL_EMU	(1 << TIF_SYSCALL_EMU)
 #define _TIF_UPROBE		(1 << TIF_UPROBE)
 #define _TIF_FSCHECK		(1 << TIF_FSCHECK)
+#define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
 #define _TIF_32BIT		(1 << TIF_32BIT)
 #define _TIF_SVE		(1 << TIF_SVE)
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/uaccess.h
@@ -62,8 +62,13 @@
 {
 	unsigned long ret, limit = current_thread_info()->addr_limit;
 
+	/*
+	 * Asynchronous I/O running in a kernel thread does not have the
+	 * TIF_TAGGED_ADDR flag of the process owning the mm, so always untag
+	 * the user address before checking.
+	 */
 	if (IS_ENABLED(CONFIG_ARM64_TAGGED_ADDR_ABI) &&
-	    test_thread_flag(TIF_TAGGED_ADDR))
+	    (current->flags & PF_KTHREAD || test_thread_flag(TIF_TAGGED_ADDR)))
 		addr = untagged_addr(addr);
 
 	__chk_user_ptr(addr);
@@ -107,8 +112,8 @@
 	local_irq_save(flags);
 	ttbr = read_sysreg(ttbr1_el1);
 	ttbr &= ~TTBR_ASID_MASK;
-	/* reserved_ttbr0 placed before swapper_pg_dir */
-	write_sysreg(ttbr - RESERVED_TTBR0_SIZE, ttbr0_el1);
+	/* reserved_pg_dir placed before swapper_pg_dir */
+	write_sysreg(ttbr - PAGE_SIZE, ttbr0_el1);
 	isb();
 	/* Set reserved ASID */
 	write_sysreg(ttbr, ttbr1_el1);
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/unistd.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/unistd.h
@@ -25,8 +25,8 @@
 #define __NR_compat_gettimeofday	78
 #define __NR_compat_sigreturn		119
 #define __NR_compat_rt_sigreturn	173
-#define __NR_compat_clock_getres	247
 #define __NR_compat_clock_gettime	263
+#define __NR_compat_clock_getres	264
 #define __NR_compat_clock_gettime64	403
 #define __NR_compat_clock_getres_time64	406
 
@@ -42,7 +42,6 @@
 #endif
 
 #define __ARCH_WANT_SYS_CLONE
-#define __ARCH_WANT_SYS_CLONE3
 
 #ifndef __COMPAT_SYSCALL_NR
 #include <uapi/asm/unistd.h>
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/vdso/clocksource.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/vdso/clocksource.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_VDSOCLOCKSOURCE_H
+#define __ASM_VDSOCLOCKSOURCE_H
+
+enum vdso_arch_clockmode {
+	/* vdso clocksource not usable */
+	VDSO_CLOCKMODE_NONE,
+	/* vdso clocksource for both 32 and 64bit tasks */
+	VDSO_CLOCKMODE_ARCHTIMER,
+	/* vdso clocksource for 64bit tasks only */
+	VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT,
+};
+
+#endif
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/vdso/compat_gettimeofday.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/vdso/compat_gettimeofday.h
@@ -10,6 +10,7 @@
 #include <asm/unistd.h>
 #include <uapi/linux/time.h>
 
+#include <asm/vdso/clocksource.h>
 #include <asm/vdso/compat_barrier.h>
 
 #define __VDSO_USE_SYSCALL		ULLONG_MAX
@@ -117,10 +118,10 @@
 	u64 res;
 
 	/*
-	 * clock_mode == 0 implies that vDSO are enabled otherwise
+	 * clock_mode == ARCHTIMER implies that vDSO are enabled otherwise
 	 * fallback on syscall.
 	 */
-	if (clock_mode)
+	if (clock_mode != VDSO_CLOCKMODE_ARCHTIMER)
 		return __VDSO_USE_SYSCALL;
 
 	/*
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/vdso/gettimeofday.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/vdso/gettimeofday.h
@@ -10,6 +10,8 @@
 #include <asm/unistd.h>
 #include <uapi/linux/time.h>
 
+#include <asm/vdso/clocksource.h>
+
 #define __VDSO_USE_SYSCALL		ULLONG_MAX
 
 #define VDSO_HAS_CLOCK_GETRES		1
@@ -71,10 +73,10 @@
 	u64 res;
 
 	/*
-	 * clock_mode == 0 implies that vDSO are enabled otherwise
+	 * clock_mode != NONE implies that vDSO are enabled otherwise
 	 * fallback on syscall.
 	 */
-	if (clock_mode)
+	if (clock_mode == VDSO_CLOCKMODE_NONE)
 		return __VDSO_USE_SYSCALL;
 
 	/*
@@ -83,11 +85,7 @@
 	 */
 	isb();
 	asm volatile("mrs %0, cntvct_el0" : "=r" (res) :: "memory");
-	/*
-	 * This isb() is required to prevent that the seq lock is
-	 * speculated.#
-	 */
-	isb();
+	arch_counter_enforce_ordering(res);
 
 	return res;
 }
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/vdso/vsyscall.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/vdso/vsyscall.h
@@ -24,9 +24,7 @@
 static __always_inline
 int __arm64_get_clock_mode(struct timekeeper *tk)
 {
-	u32 use_syscall = !tk->tkr_mono.clock->archdata.vdso_direct;
-
-	return use_syscall;
+	return tk->tkr_mono.clock->archdata.clock_mode;
 }
 #define __arch_get_clock_mode __arm64_get_clock_mode
 
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/vectors.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/vectors.h
@@ -0,0 +1,73 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2022 ARM Ltd.
+ */
+#ifndef __ASM_VECTORS_H
+#define __ASM_VECTORS_H
+
+#include <linux/bug.h>
+#include <linux/percpu.h>
+
+#include <asm/fixmap.h>
+
+extern char vectors[];
+extern char tramp_vectors[];
+extern char __bp_harden_el1_vectors[];
+
+/*
+ * Note: the order of this enum corresponds to two arrays in entry.S:
+ * tramp_vecs and __bp_harden_el1_vectors. By default the canonical
+ * 'full fat' vectors are used directly.
+ */
+enum arm64_bp_harden_el1_vectors {
+#ifdef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
+	/*
+	 * Perform the BHB loop mitigation, before branching to the canonical
+	 * vectors.
+	 */
+	EL1_VECTOR_BHB_LOOP,
+
+	/*
+	 * Make the SMC call for firmware mitigation, before branching to the
+	 * canonical vectors.
+	 */
+	EL1_VECTOR_BHB_FW,
+
+	/*
+	 * Use the ClearBHB instruction, before branching to the canonical
+	 * vectors.
+	 */
+	EL1_VECTOR_BHB_CLEAR_INSN,
+#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
+
+	/*
+	 * Remap the kernel before branching to the canonical vectors.
+	 */
+	EL1_VECTOR_KPTI,
+};
+
+#ifndef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
+#define EL1_VECTOR_BHB_LOOP		-1
+#define EL1_VECTOR_BHB_FW		-1
+#define EL1_VECTOR_BHB_CLEAR_INSN	-1
+#endif /* !CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
+
+/* The vectors to use on return from EL0. e.g. to remap the kernel */
+DECLARE_PER_CPU_READ_MOSTLY(const char *, this_cpu_vector);
+
+#ifndef CONFIG_UNMAP_KERNEL_AT_EL0
+#define TRAMP_VALIAS	0ul
+#endif
+
+static inline const char *
+arm64_get_bp_hardening_vector(enum arm64_bp_harden_el1_vectors slot)
+{
+	if (arm64_kernel_unmapped_at_el0())
+		return (char *)(TRAMP_VALIAS + SZ_2K * slot);
+
+	WARN_ON_ONCE(slot == EL1_VECTOR_KPTI);
+
+	return __bp_harden_el1_vectors + SZ_2K * slot;
+}
+
+#endif /* __ASM_VECTORS_H */
--- linux-ein-5.4.0.orig/arch/arm64/include/asm/word-at-a-time.h
+++ linux-ein-5.4.0/arch/arm64/include/asm/word-at-a-time.h
@@ -53,7 +53,7 @@
  */
 static inline unsigned long load_unaligned_zeropad(const void *addr)
 {
-	unsigned long ret, offset;
+	unsigned long ret, tmp;
 
 	/* Load word from unaligned pointer addr */
 	asm(
@@ -61,9 +61,9 @@
 	"2:\n"
 	"	.pushsection .fixup,\"ax\"\n"
 	"	.align 2\n"
-	"3:	and	%1, %2, #0x7\n"
-	"	bic	%2, %2, #0x7\n"
-	"	ldr	%0, [%2]\n"
+	"3:	bic	%1, %2, #0x7\n"
+	"	ldr	%0, [%1]\n"
+	"	and	%1, %2, #0x7\n"
 	"	lsl	%1, %1, #0x3\n"
 #ifndef __AARCH64EB__
 	"	lsr	%0, %0, %1\n"
@@ -73,7 +73,7 @@
 	"	b	2b\n"
 	"	.popsection\n"
 	_ASM_EXTABLE(1b, 3b)
-	: "=&r" (ret), "=&r" (offset)
+	: "=&r" (ret), "=&r" (tmp)
 	: "r" (addr), "Q" (*(unsigned long *)addr));
 
 	return ret;
--- linux-ein-5.4.0.orig/arch/arm64/include/uapi/asm/kvm.h
+++ linux-ein-5.4.0/arch/arm64/include/uapi/asm/kvm.h
@@ -240,6 +240,11 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED	3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED     	(1U << 4)
 
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3	KVM_REG_ARM_FW_REG(3)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL		0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL		1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED	2
+
 /* SVE registers */
 #define KVM_REG_ARM64_SVE		(0x15 << KVM_REG_ARM_COPROC_SHIFT)
 
--- linux-ein-5.4.0.orig/arch/arm64/include/uapi/asm/ptrace.h
+++ linux-ein-5.4.0/arch/arm64/include/uapi/asm/ptrace.h
@@ -49,6 +49,7 @@
 #define PSR_SSBS_BIT	0x00001000
 #define PSR_PAN_BIT	0x00400000
 #define PSR_UAO_BIT	0x00800000
+#define PSR_DIT_BIT	0x01000000
 #define PSR_V_BIT	0x10000000
 #define PSR_C_BIT	0x20000000
 #define PSR_Z_BIT	0x40000000
--- linux-ein-5.4.0.orig/arch/arm64/include/uapi/asm/unistd.h
+++ linux-ein-5.4.0/arch/arm64/include/uapi/asm/unistd.h
@@ -19,5 +19,6 @@
 #define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
+#define __ARCH_WANT_SYS_CLONE3
 
 #include <asm-generic/unistd.h>
--- linux-ein-5.4.0.orig/arch/arm64/kernel/acpi.c
+++ linux-ein-5.4.0/arch/arm64/kernel/acpi.c
@@ -19,6 +19,7 @@
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
+#include <linux/irq_work.h>
 #include <linux/memblock.h>
 #include <linux/of_fdt.h>
 #include <linux/smp.h>
@@ -269,12 +270,19 @@
 int apei_claim_sea(struct pt_regs *regs)
 {
 	int err = -ENOENT;
+	bool return_to_irqs_enabled;
 	unsigned long current_flags;
 
 	if (!IS_ENABLED(CONFIG_ACPI_APEI_GHES))
 		return err;
 
-	current_flags = arch_local_save_flags();
+	current_flags = local_daif_save_flags();
+
+	/* current_flags isn't useful here as daif doesn't tell us about pNMI */
+	return_to_irqs_enabled = !irqs_disabled_flags(arch_local_save_flags());
+
+	if (regs)
+		return_to_irqs_enabled = interrupts_enabled(regs);
 
 	/*
 	 * SEA can interrupt SError, mask it and describe this as an NMI so
@@ -284,6 +292,23 @@
 	nmi_enter();
 	err = ghes_notify_sea();
 	nmi_exit();
+
+	/*
+	 * APEI NMI-like notifications are deferred to irq_work. Unless
+	 * we interrupted irqs-masked code, we can do that now.
+	 */
+	if (!err) {
+		if (return_to_irqs_enabled) {
+			local_daif_restore(DAIF_PROCCTX_NOIRQ);
+			__irq_enter();
+			irq_work_run();
+			__irq_exit();
+		} else {
+			pr_warn_ratelimited("APEI work queued but not completed");
+			err = -EINPROGRESS;
+		}
+	}
+
 	local_daif_restore(current_flags);
 
 	return err;
--- linux-ein-5.4.0.orig/arch/arm64/kernel/alternative.c
+++ linux-ein-5.4.0/arch/arm64/kernel/alternative.c
@@ -41,27 +41,15 @@
 /*
  * Check if the target PC is within an alternative block.
  */
-static bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
+static __always_inline bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
 {
-	unsigned long replptr;
-
-	if (kernel_text_address(pc))
-		return true;
-
-	replptr = (unsigned long)ALT_REPL_PTR(alt);
-	if (pc >= replptr && pc <= (replptr + alt->alt_len))
-		return false;
-
-	/*
-	 * Branching into *another* alternate sequence is doomed, and
-	 * we're not even trying to fix it up.
-	 */
-	BUG();
+	unsigned long replptr = (unsigned long)ALT_REPL_PTR(alt);
+	return !(pc >= replptr && pc <= (replptr + alt->alt_len));
 }
 
 #define align_down(x, a)	((unsigned long)(x) & ~(((unsigned long)(a)) - 1))
 
-static u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, __le32 *altinsnptr)
+static __always_inline u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, __le32 *altinsnptr)
 {
 	u32 insn;
 
@@ -106,7 +94,7 @@
 	return insn;
 }
 
-static void patch_alternative(struct alt_instr *alt,
+static noinstr void patch_alternative(struct alt_instr *alt,
 			      __le32 *origptr, __le32 *updptr, int nr_inst)
 {
 	__le32 *replptr;
--- linux-ein-5.4.0.orig/arch/arm64/kernel/armv8_deprecated.c
+++ linux-ein-5.4.0/arch/arm64/kernel/armv8_deprecated.c
@@ -59,6 +59,7 @@
 static LIST_HEAD(insn_emulation);
 static int nr_insn_emulated __initdata;
 static DEFINE_RAW_SPINLOCK(insn_emulation_lock);
+static DEFINE_MUTEX(insn_emulation_mutex);
 
 static void register_emulation_hooks(struct insn_emulation_ops *ops)
 {
@@ -207,10 +208,10 @@
 				  loff_t *ppos)
 {
 	int ret = 0;
-	struct insn_emulation *insn = (struct insn_emulation *) table->data;
+	struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);
 	enum insn_emulation_mode prev_mode = insn->current_mode;
 
-	table->data = &insn->current_mode;
+	mutex_lock(&insn_emulation_mutex);
 	ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
 
 	if (ret || !write || prev_mode == insn->current_mode)
@@ -223,7 +224,7 @@
 		update_insn_emulation_mode(insn, INSN_UNDEF);
 	}
 ret:
-	table->data = insn;
+	mutex_unlock(&insn_emulation_mutex);
 	return ret;
 }
 
@@ -247,7 +248,7 @@
 		sysctl->maxlen = sizeof(int);
 
 		sysctl->procname = insn->ops->name;
-		sysctl->data = insn;
+		sysctl->data = &insn->current_mode;
 		sysctl->extra1 = &insn->min;
 		sysctl->extra2 = &insn->max;
 		sysctl->proc_handler = emulation_proc_handler;
@@ -601,7 +602,7 @@
 	},
 	{
 		/* Thumb mode */
-		.instr_mask	= 0x0000fff7,
+		.instr_mask	= 0xfffffff7,
 		.instr_val	= 0x0000b650,
 		.pstate_mask	= (PSR_AA32_T_BIT | PSR_AA32_MODE_MASK),
 		.pstate_val	= (PSR_AA32_T_BIT | PSR_AA32_MODE_USR),
--- linux-ein-5.4.0.orig/arch/arm64/kernel/cacheinfo.c
+++ linux-ein-5.4.0/arch/arm64/kernel/cacheinfo.c
@@ -43,9 +43,10 @@
 	this_leaf->type = type;
 }
 
-static int __init_cache_level(unsigned int cpu)
+int init_cache_level(unsigned int cpu)
 {
-	unsigned int ctype, level, leaves, fw_level;
+	unsigned int ctype, level, leaves;
+	int fw_level;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 
 	for (level = 1, leaves = 0; level <= MAX_CACHE_LEVEL; level++) {
@@ -63,6 +64,9 @@
 	else
 		fw_level = acpi_find_last_cache_level(cpu);
 
+	if (fw_level < 0)
+		return fw_level;
+
 	if (level < fw_level) {
 		/*
 		 * some external caches not specified in CLIDR_EL1
@@ -78,7 +82,7 @@
 	return 0;
 }
 
-static int __populate_cache_leaves(unsigned int cpu)
+int populate_cache_leaves(unsigned int cpu)
 {
 	unsigned int level, idx;
 	enum cache_type type;
@@ -97,6 +101,3 @@
 	}
 	return 0;
 }
-
-DEFINE_SMP_CALL_CACHE_FUNCTION(init_cache_level)
-DEFINE_SMP_CALL_CACHE_FUNCTION(populate_cache_leaves)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/cpu_errata.c
+++ linux-ein-5.4.0/arch/arm64/kernel/cpu_errata.c
@@ -13,6 +13,7 @@
 #include <asm/cputype.h>
 #include <asm/cpufeature.h>
 #include <asm/smp_plat.h>
+#include <asm/vectors.h>
 
 static bool __maybe_unused
 is_affected_midr_range(const struct arm64_cpu_capabilities *entry, int scope)
@@ -88,13 +89,21 @@
 }
 
 static void
-cpu_enable_trap_ctr_access(const struct arm64_cpu_capabilities *__unused)
+cpu_enable_trap_ctr_access(const struct arm64_cpu_capabilities *cap)
 {
 	u64 mask = arm64_ftr_reg_ctrel0.strict_mask;
+	bool enable_uct_trap = false;
 
 	/* Trap CTR_EL0 access on this CPU, only if it has a mismatch */
 	if ((read_cpuid_cachetype() & mask) !=
 	    (arm64_ftr_reg_ctrel0.sys_val & mask))
+		enable_uct_trap = true;
+
+	/* ... or if the system is affected by an erratum */
+	if (cap->capability == ARM64_WORKAROUND_1542419)
+		enable_uct_trap = true;
+
+	if (enable_uct_trap)
 		sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0);
 }
 
@@ -108,6 +117,16 @@
 #ifdef CONFIG_KVM_INDIRECT_VECTORS
 extern char __smccc_workaround_1_smc_start[];
 extern char __smccc_workaround_1_smc_end[];
+extern char __smccc_workaround_3_smc_start[];
+extern char __smccc_workaround_3_smc_end[];
+extern char __spectre_bhb_loop_k8_start[];
+extern char __spectre_bhb_loop_k8_end[];
+extern char __spectre_bhb_loop_k24_start[];
+extern char __spectre_bhb_loop_k24_end[];
+extern char __spectre_bhb_loop_k32_start[];
+extern char __spectre_bhb_loop_k32_end[];
+extern char __spectre_bhb_clearbhb_start[];
+extern char __spectre_bhb_clearbhb_end[];
 
 static void __copy_hyp_vect_bpi(int slot, const char *hyp_vecs_start,
 				const char *hyp_vecs_end)
@@ -121,11 +140,11 @@
 	__flush_icache_range((uintptr_t)dst, (uintptr_t)dst + SZ_2K);
 }
 
+static DEFINE_RAW_SPINLOCK(bp_lock);
 static void install_bp_hardening_cb(bp_hardening_cb_t fn,
 				    const char *hyp_vecs_start,
 				    const char *hyp_vecs_end)
 {
-	static DEFINE_RAW_SPINLOCK(bp_lock);
 	int cpu, slot = -1;
 
 	/*
@@ -151,8 +170,12 @@
 		__copy_hyp_vect_bpi(slot, hyp_vecs_start, hyp_vecs_end);
 	}
 
-	__this_cpu_write(bp_hardening_data.hyp_vectors_slot, slot);
-	__this_cpu_write(bp_hardening_data.fn, fn);
+	if (fn != __this_cpu_read(bp_hardening_data.fn)) {
+		__this_cpu_write(bp_hardening_data.hyp_vectors_slot, slot);
+		__this_cpu_write(bp_hardening_data.fn, fn);
+		__this_cpu_write(bp_hardening_data.template_start,
+				 hyp_vecs_start);
+	}
 	raw_spin_unlock(&bp_lock);
 }
 #else
@@ -484,6 +507,12 @@
 	return required;
 }
 
+static void cpu_enable_ssbd_mitigation(const struct arm64_cpu_capabilities *cap)
+{
+	if (ssbd_state != ARM64_SSBD_FORCE_DISABLE)
+		cap->matches(cap, SCOPE_LOCAL_CPU);
+}
+
 /* known invulnerable cores */
 static const struct midr_range arm64_ssb_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A35),
@@ -575,6 +604,7 @@
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A53),
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
 	MIDR_ALL_VERSIONS(MIDR_BRAHMA_B53),
+	MIDR_ALL_VERSIONS(MIDR_HISI_TSV110),
 	{ /* sentinel */ }
 };
 
@@ -626,6 +656,12 @@
 	return (need_wa > 0);
 }
 
+static void
+cpu_enable_branch_predictor_hardening(const struct arm64_cpu_capabilities *cap)
+{
+	cap->matches(cap, SCOPE_LOCAL_CPU);
+}
+
 static const __maybe_unused struct midr_range tx2_family_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_BRCM_VULCAN),
 	MIDR_ALL_VERSIONS(MIDR_CAVIUM_THUNDERX2),
@@ -650,6 +686,18 @@
 	return false;
 }
 
+static bool __maybe_unused
+has_neoverse_n1_erratum_1542419(const struct arm64_cpu_capabilities *entry,
+				int scope)
+{
+	u32 midr = read_cpuid_id();
+	bool has_dic = read_cpuid_cachetype() & BIT(CTR_DIC_SHIFT);
+	const struct midr_range range = MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1);
+
+	WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
+	return is_midr_in_range(midr, &range) && has_dic;
+}
+
 #ifdef CONFIG_HARDEN_EL2_VECTORS
 
 static const struct midr_range arm64_harden_el2_vectors[] = {
@@ -772,6 +820,14 @@
 };
 #endif
 
+#ifdef CONFIG_ARM64_ERRATUM_1742098
+static struct midr_range broken_aarch32_aes[] = {
+	MIDR_RANGE(MIDR_CORTEX_A57, 0, 1, 0xf, 0xf),
+	MIDR_ALL_VERSIONS(MIDR_CORTEX_A72),
+	{},
+};
+#endif
+
 const struct arm64_cpu_capabilities arm64_errata[] = {
 #ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE
 	{
@@ -873,9 +929,11 @@
 	},
 #endif
 	{
+		.desc = "Branch predictor hardening",
 		.capability = ARM64_HARDEN_BRANCH_PREDICTOR,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = check_branch_predictor,
+		.cpu_enable = cpu_enable_branch_predictor_hardening,
 	},
 #ifdef CONFIG_HARDEN_EL2_VECTORS
 	{
@@ -889,13 +947,27 @@
 		.capability = ARM64_SSBD,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = has_ssbd_mitigation,
+		.cpu_enable = cpu_enable_ssbd_mitigation,
 		.midr_range_list = arm64_ssb_cpus,
 	},
+	{
+		.desc = "Spectre-BHB",
+		.capability = ARM64_SPECTRE_BHB,
+		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
+		.matches = is_spectre_bhb_affected,
+		.cpu_enable = spectre_bhb_enable_mitigation,
+	},
 #ifdef CONFIG_ARM64_ERRATUM_1418040
 	{
 		.desc = "ARM erratum 1418040",
 		.capability = ARM64_WORKAROUND_1418040,
 		ERRATA_MIDR_RANGE_LIST(erratum_1418040_list),
+		/*
+		 * We need to allow affected CPUs to come in late, but
+		 * also need the non-affected CPUs to be able to come
+		 * in at any point in time. Wonderful.
+		 */
+		.type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
 	},
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_1165522
@@ -927,6 +999,24 @@
 		ERRATA_MIDR_RANGE_LIST(tx2_family_cpus),
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_1542419
+	{
+		/* we depend on the firmware portion for correctness */
+		.desc = "ARM erratum 1542419 (kernel portion)",
+		.capability = ARM64_WORKAROUND_1542419,
+		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
+		.matches = has_neoverse_n1_erratum_1542419,
+		.cpu_enable = cpu_enable_trap_ctr_access,
+	},
+#endif
+#ifdef CONFIG_ARM64_ERRATUM_1742098
+	{
+		.desc = "ARM erratum 1742098",
+		.capability = ARM64_WORKAROUND_1742098,
+		CAP_MIDR_RANGE_LIST(broken_aarch32_aes),
+		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
+	},
+#endif
 	{
 	}
 };
@@ -937,15 +1027,41 @@
 	return sprintf(buf, "Mitigation: __user pointer sanitization\n");
 }
 
+static const char *get_bhb_affected_string(enum mitigation_state bhb_state)
+{
+	switch (bhb_state) {
+	case SPECTRE_UNAFFECTED:
+		return "";
+	default:
+	case SPECTRE_VULNERABLE:
+		return ", but not BHB";
+	case SPECTRE_MITIGATED:
+		return ", BHB";
+	}
+}
+
 ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr,
 		char *buf)
 {
+	enum mitigation_state bhb_state = arm64_get_spectre_bhb_state();
+	const char *bhb_str = get_bhb_affected_string(bhb_state);
+	const char *v2_str = "Branch predictor hardening";
+
 	switch (get_spectre_v2_workaround_state()) {
 	case ARM64_BP_HARDEN_NOT_REQUIRED:
-		return sprintf(buf, "Not affected\n");
-        case ARM64_BP_HARDEN_WA_NEEDED:
-		return sprintf(buf, "Mitigation: Branch predictor hardening\n");
-        case ARM64_BP_HARDEN_UNKNOWN:
+		if (bhb_state == SPECTRE_UNAFFECTED)
+			return sprintf(buf, "Not affected\n");
+
+		/*
+		 * Platforms affected by Spectre-BHB can't report
+		 * "Not affected" for Spectre-v2.
+		 */
+		v2_str = "CSV2";
+		fallthrough;
+	case ARM64_BP_HARDEN_WA_NEEDED:
+		return sprintf(buf, "Mitigation: %s%s\n", v2_str, bhb_str);
+	case ARM64_BP_HARDEN_UNKNOWN:
+		fallthrough;
 	default:
 		return sprintf(buf, "Vulnerable\n");
 	}
@@ -967,3 +1083,348 @@
 
 	return sprintf(buf, "Vulnerable\n");
 }
+
+/*
+ * We try to ensure that the mitigation state can never change as the result of
+ * onlining a late CPU.
+ */
+static void update_mitigation_state(enum mitigation_state *oldp,
+				    enum mitigation_state new)
+{
+	enum mitigation_state state;
+
+	do {
+		state = READ_ONCE(*oldp);
+		if (new <= state)
+			break;
+	} while (cmpxchg_relaxed(oldp, state, new) != state);
+}
+
+/*
+ * Spectre BHB.
+ *
+ * A CPU is either:
+ * - Mitigated by a branchy loop a CPU specific number of times, and listed
+ *   in our "loop mitigated list".
+ * - Mitigated in software by the firmware Spectre v2 call.
+ * - Has the ClearBHB instruction to perform the mitigation.
+ * - Has the 'Exception Clears Branch History Buffer' (ECBHB) feature, so no
+ *   software mitigation in the vectors is needed.
+ * - Has CSV2.3, so is unaffected.
+ */
+static enum mitigation_state spectre_bhb_state;
+
+enum mitigation_state arm64_get_spectre_bhb_state(void)
+{
+	return spectre_bhb_state;
+}
+
+/*
+ * This must be called with SCOPE_LOCAL_CPU for each type of CPU, before any
+ * SCOPE_SYSTEM call will give the right answer.
+ */
+u8 spectre_bhb_loop_affected(int scope)
+{
+	u8 k = 0;
+	static u8 max_bhb_k;
+
+	if (scope == SCOPE_LOCAL_CPU) {
+		static const struct midr_range spectre_bhb_k32_list[] = {
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X2),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
+			{},
+		};
+		static const struct midr_range spectre_bhb_k24_list[] = {
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A76),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A77),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
+			{},
+		};
+		static const struct midr_range spectre_bhb_k11_list[] = {
+			MIDR_ALL_VERSIONS(MIDR_AMPERE1),
+			{},
+		};
+		static const struct midr_range spectre_bhb_k8_list[] = {
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A72),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A57),
+			{},
+		};
+
+		if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k32_list))
+			k = 32;
+		else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k24_list))
+			k = 24;
+		else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k11_list))
+			k = 11;
+		else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k8_list))
+			k =  8;
+
+		max_bhb_k = max(max_bhb_k, k);
+	} else {
+		k = max_bhb_k;
+	}
+
+	return k;
+}
+
+static enum mitigation_state spectre_bhb_get_cpu_fw_mitigation_state(void)
+{
+	int ret;
+	struct arm_smccc_res res;
+
+	if (psci_ops.smccc_version == SMCCC_VERSION_1_0)
+		return SPECTRE_VULNERABLE;
+
+	switch (psci_ops.conduit) {
+	case PSCI_CONDUIT_HVC:
+		arm_smccc_1_1_hvc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
+				  ARM_SMCCC_ARCH_WORKAROUND_3, &res);
+		break;
+
+	case PSCI_CONDUIT_SMC:
+		arm_smccc_1_1_smc(ARM_SMCCC_ARCH_FEATURES_FUNC_ID,
+				  ARM_SMCCC_ARCH_WORKAROUND_3, &res);
+		break;
+
+	default:
+		return SPECTRE_VULNERABLE;
+	}
+
+	ret = res.a0;
+	switch (ret) {
+	case SMCCC_RET_SUCCESS:
+		return SPECTRE_MITIGATED;
+	case SMCCC_ARCH_WORKAROUND_RET_UNAFFECTED:
+		return SPECTRE_UNAFFECTED;
+	default:
+		fallthrough;
+	case SMCCC_RET_NOT_SUPPORTED:
+		return SPECTRE_VULNERABLE;
+	}
+}
+
+static bool is_spectre_bhb_fw_affected(int scope)
+{
+	static bool system_affected;
+	enum mitigation_state fw_state;
+	bool has_smccc = (psci_ops.smccc_version >= SMCCC_VERSION_1_1);
+	static const struct midr_range spectre_bhb_firmware_mitigated_list[] = {
+		MIDR_ALL_VERSIONS(MIDR_CORTEX_A73),
+		MIDR_ALL_VERSIONS(MIDR_CORTEX_A75),
+		{},
+	};
+	bool cpu_in_list = is_midr_in_range_list(read_cpuid_id(),
+					 spectre_bhb_firmware_mitigated_list);
+
+	if (scope != SCOPE_LOCAL_CPU)
+		return system_affected;
+
+	fw_state = spectre_bhb_get_cpu_fw_mitigation_state();
+	if (cpu_in_list || (has_smccc && fw_state == SPECTRE_MITIGATED)) {
+		system_affected = true;
+		return true;
+	}
+
+	return false;
+}
+
+static bool supports_ecbhb(int scope)
+{
+	u64 mmfr1;
+
+	if (scope == SCOPE_LOCAL_CPU)
+		mmfr1 = read_sysreg_s(SYS_ID_AA64MMFR1_EL1);
+	else
+		mmfr1 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1);
+
+	return cpuid_feature_extract_unsigned_field(mmfr1,
+						    ID_AA64MMFR1_ECBHB_SHIFT);
+}
+
+bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry,
+			     int scope)
+{
+	WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
+
+	if (supports_csv2p3(scope))
+		return false;
+
+	if (supports_clearbhb(scope))
+		return true;
+
+	if (spectre_bhb_loop_affected(scope))
+		return true;
+
+	if (is_spectre_bhb_fw_affected(scope))
+		return true;
+
+	return false;
+}
+
+static void this_cpu_set_vectors(enum arm64_bp_harden_el1_vectors slot)
+{
+	const char *v = arm64_get_bp_hardening_vector(slot);
+
+	if (slot < 0)
+		return;
+
+	__this_cpu_write(this_cpu_vector, v);
+
+	/*
+	 * When KPTI is in use, the vectors are switched when exiting to
+	 * user-space.
+	 */
+	if (arm64_kernel_unmapped_at_el0())
+		return;
+
+	write_sysreg(v, vbar_el1);
+	isb();
+}
+
+#ifdef CONFIG_KVM_INDIRECT_VECTORS
+static const char *kvm_bhb_get_vecs_end(const char *start)
+{
+	if (start == __smccc_workaround_3_smc_start)
+		return __smccc_workaround_3_smc_end;
+	else if (start == __spectre_bhb_loop_k8_start)
+		return __spectre_bhb_loop_k8_end;
+	else if (start == __spectre_bhb_loop_k24_start)
+		return __spectre_bhb_loop_k24_end;
+	else if (start == __spectre_bhb_loop_k32_start)
+		return __spectre_bhb_loop_k32_end;
+	else if (start == __spectre_bhb_clearbhb_start)
+		return __spectre_bhb_clearbhb_end;
+
+	return NULL;
+}
+
+static void kvm_setup_bhb_slot(const char *hyp_vecs_start)
+{
+	int cpu, slot = -1;
+	const char *hyp_vecs_end;
+
+	if (!IS_ENABLED(CONFIG_KVM) || !is_hyp_mode_available())
+		return;
+
+	hyp_vecs_end = kvm_bhb_get_vecs_end(hyp_vecs_start);
+	if (WARN_ON_ONCE(!hyp_vecs_start || !hyp_vecs_end))
+		return;
+
+	raw_spin_lock(&bp_lock);
+	for_each_possible_cpu(cpu) {
+		if (per_cpu(bp_hardening_data.template_start, cpu) == hyp_vecs_start) {
+			slot = per_cpu(bp_hardening_data.hyp_vectors_slot, cpu);
+			break;
+		}
+	}
+
+	if (slot == -1) {
+		slot = atomic_inc_return(&arm64_el2_vector_last_slot);
+		BUG_ON(slot >= BP_HARDEN_EL2_SLOTS);
+		__copy_hyp_vect_bpi(slot, hyp_vecs_start, hyp_vecs_end);
+	}
+
+	if (hyp_vecs_start != __this_cpu_read(bp_hardening_data.template_start)) {
+		__this_cpu_write(bp_hardening_data.hyp_vectors_slot, slot);
+		__this_cpu_write(bp_hardening_data.template_start,
+				 hyp_vecs_start);
+	}
+	raw_spin_unlock(&bp_lock);
+}
+#else
+#define __smccc_workaround_3_smc_start NULL
+#define __spectre_bhb_loop_k8_start NULL
+#define __spectre_bhb_loop_k24_start NULL
+#define __spectre_bhb_loop_k32_start NULL
+#define __spectre_bhb_clearbhb_start NULL
+
+static void kvm_setup_bhb_slot(const char *hyp_vecs_start) { }
+#endif
+
+void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *entry)
+{
+	enum mitigation_state fw_state, state = SPECTRE_VULNERABLE;
+
+	if (!is_spectre_bhb_affected(entry, SCOPE_LOCAL_CPU))
+		return;
+
+	if (get_spectre_v2_workaround_state() == ARM64_BP_HARDEN_UNKNOWN) {
+		/* No point mitigating Spectre-BHB alone. */
+	} else if (!IS_ENABLED(CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY)) {
+		pr_info_once("spectre-bhb mitigation disabled by compile time option\n");
+	} else if (cpu_mitigations_off()) {
+		pr_info_once("spectre-bhb mitigation disabled by command line option\n");
+	} else if (supports_ecbhb(SCOPE_LOCAL_CPU)) {
+		state = SPECTRE_MITIGATED;
+	} else if (supports_clearbhb(SCOPE_LOCAL_CPU)) {
+		kvm_setup_bhb_slot(__spectre_bhb_clearbhb_start);
+		this_cpu_set_vectors(EL1_VECTOR_BHB_CLEAR_INSN);
+
+		state = SPECTRE_MITIGATED;
+	} else if (spectre_bhb_loop_affected(SCOPE_LOCAL_CPU)) {
+		switch (spectre_bhb_loop_affected(SCOPE_SYSTEM)) {
+		case 8:
+			/*
+			 * A57/A72-r0 will already have selected the
+			 * spectre-indirect vector, which is sufficient
+			 * for BHB too.
+			 */
+			if (!__this_cpu_read(bp_hardening_data.fn))
+				kvm_setup_bhb_slot(__spectre_bhb_loop_k8_start);
+			break;
+		case 24:
+			kvm_setup_bhb_slot(__spectre_bhb_loop_k24_start);
+			break;
+		case 32:
+			kvm_setup_bhb_slot(__spectre_bhb_loop_k32_start);
+			break;
+		default:
+			WARN_ON_ONCE(1);
+		}
+		this_cpu_set_vectors(EL1_VECTOR_BHB_LOOP);
+
+		state = SPECTRE_MITIGATED;
+	} else if (is_spectre_bhb_fw_affected(SCOPE_LOCAL_CPU)) {
+		fw_state = spectre_bhb_get_cpu_fw_mitigation_state();
+		if (fw_state == SPECTRE_MITIGATED) {
+			kvm_setup_bhb_slot(__smccc_workaround_3_smc_start);
+			this_cpu_set_vectors(EL1_VECTOR_BHB_FW);
+
+			/*
+			 * With WA3 in the vectors, the WA1 calls can be
+			 * removed.
+			 */
+			__this_cpu_write(bp_hardening_data.fn, NULL);
+
+			state = SPECTRE_MITIGATED;
+		}
+	}
+
+	update_mitigation_state(&spectre_bhb_state, state);
+}
+
+/* Patched to correct the immediate */
+void noinstr spectre_bhb_patch_loop_iter(struct alt_instr *alt,
+				   __le32 *origptr, __le32 *updptr, int nr_inst)
+{
+	u8 rd;
+	u32 insn;
+	u16 loop_count = spectre_bhb_loop_affected(SCOPE_SYSTEM);
+
+	BUG_ON(nr_inst != 1); /* MOV -> MOV */
+
+	if (!IS_ENABLED(CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY))
+		return;
+
+	insn = le32_to_cpu(*origptr);
+	rd = aarch64_insn_decode_register(AARCH64_INSN_REGTYPE_RD, insn);
+	insn = aarch64_insn_gen_movewide(rd, loop_count, 0,
+					 AARCH64_INSN_VARIANT_64BIT,
+					 AARCH64_INSN_MOVEWIDE_ZERO);
+	*updptr++ = cpu_to_le32(insn);
+}
--- linux-ein-5.4.0.orig/arch/arm64/kernel/cpufeature.c
+++ linux-ein-5.4.0/arch/arm64/kernel/cpufeature.c
@@ -10,19 +10,23 @@
 #include <linux/bsearch.h>
 #include <linux/cpumask.h>
 #include <linux/crash_dump.h>
+#include <linux/percpu.h>
 #include <linux/sort.h>
 #include <linux/stop_machine.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/cpu.h>
+
 #include <asm/cpu.h>
 #include <asm/cpufeature.h>
 #include <asm/cpu_ops.h>
 #include <asm/fpsimd.h>
+#include <asm/hwcap.h>
 #include <asm/mmu_context.h>
 #include <asm/processor.h>
 #include <asm/sysreg.h>
 #include <asm/traps.h>
+#include <asm/vectors.h>
 #include <asm/virt.h>
 
 /* Kernel representation of AT_HWCAP and AT_HWCAP2 */
@@ -32,9 +36,7 @@
 #define COMPAT_ELF_HWCAP_DEFAULT	\
 				(COMPAT_HWCAP_HALF|COMPAT_HWCAP_THUMB|\
 				 COMPAT_HWCAP_FAST_MULT|COMPAT_HWCAP_EDSP|\
-				 COMPAT_HWCAP_TLS|COMPAT_HWCAP_VFP|\
-				 COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\
-				 COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV|\
+				 COMPAT_HWCAP_TLS|COMPAT_HWCAP_IDIV|\
 				 COMPAT_HWCAP_LPAE)
 unsigned int compat_elf_hwcap __read_mostly = COMPAT_ELF_HWCAP_DEFAULT;
 unsigned int compat_elf_hwcap2 __read_mostly;
@@ -47,6 +49,8 @@
 /* Need also bit for ARM64_CB_PATCH */
 DECLARE_BITMAP(boot_capabilities, ARM64_NPATCHABLE);
 
+DEFINE_PER_CPU_READ_MOSTLY(const char *, this_cpu_vector) = vectors;
+
 /*
  * Flag to indicate if we have computed the system wide
  * capabilities based on the boot time active CPUs. This
@@ -152,6 +156,11 @@
 	ARM64_FTR_END,
 };
 
+static const struct arm64_ftr_bits ftr_id_aa64isar2[] = {
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_HIGHER_SAFE, ID_AA64ISAR2_CLEARBHB_SHIFT, 4, 0),
+	ARM64_FTR_END,
+};
+
 static const struct arm64_ftr_bits ftr_id_aa64pfr0[] = {
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_CSV3_SHIFT, 4, 0),
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_CSV2_SHIFT, 4, 0),
@@ -162,11 +171,10 @@
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_GIC_SHIFT, 4, 0),
 	S_ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_ASIMD_SHIFT, 4, ID_AA64PFR0_ASIMD_NI),
 	S_ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_FP_SHIFT, 4, ID_AA64PFR0_FP_NI),
-	/* Linux doesn't care about the EL3 */
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL3_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL2_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_SHIFT, 4, ID_AA64PFR0_EL1_64BIT_ONLY),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL0_SHIFT, 4, ID_AA64PFR0_EL0_64BIT_ONLY),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL2_SHIFT, 4, 0),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_SHIFT, 4, ID_AA64PFR0_EL1_64BIT_ONLY),
+	ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL0_SHIFT, 4, ID_AA64PFR0_EL0_64BIT_ONLY),
 	ARM64_FTR_END,
 };
 
@@ -280,7 +288,6 @@
 	 * of support.
 	 */
 	S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_EXACT, ID_AA64DFR0_PMUVER_SHIFT, 4, 0),
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_EXACT, ID_AA64DFR0_TRACEVER_SHIFT, 4, 0),
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_EXACT, ID_AA64DFR0_DEBUGVER_SHIFT, 4, 0x6),
 	ARM64_FTR_END,
 };
@@ -322,7 +329,7 @@
 };
 
 static const struct arm64_ftr_bits ftr_id_dfr0[] = {
-	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 28, 4, 0),
+	/* [31:28] TraceFilt */
 	S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 24, 4, 0xf),	/* PerfMon */
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 20, 4, 0),
 	ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, 16, 4, 0),
@@ -414,6 +421,7 @@
 	/* Op1 = 0, CRn = 0, CRm = 6 */
 	ARM64_FTR_REG(SYS_ID_AA64ISAR0_EL1, ftr_id_aa64isar0),
 	ARM64_FTR_REG(SYS_ID_AA64ISAR1_EL1, ftr_id_aa64isar1),
+	ARM64_FTR_REG(SYS_ID_AA64ISAR2_EL1, ftr_id_aa64isar2),
 
 	/* Op1 = 0, CRn = 0, CRm = 7 */
 	ARM64_FTR_REG(SYS_ID_AA64MMFR0_EL1, ftr_id_aa64mmfr0),
@@ -585,6 +593,7 @@
 	init_cpu_ftr_reg(SYS_ID_AA64DFR1_EL1, info->reg_id_aa64dfr1);
 	init_cpu_ftr_reg(SYS_ID_AA64ISAR0_EL1, info->reg_id_aa64isar0);
 	init_cpu_ftr_reg(SYS_ID_AA64ISAR1_EL1, info->reg_id_aa64isar1);
+	init_cpu_ftr_reg(SYS_ID_AA64ISAR2_EL1, info->reg_id_aa64isar2);
 	init_cpu_ftr_reg(SYS_ID_AA64MMFR0_EL1, info->reg_id_aa64mmfr0);
 	init_cpu_ftr_reg(SYS_ID_AA64MMFR1_EL1, info->reg_id_aa64mmfr1);
 	init_cpu_ftr_reg(SYS_ID_AA64MMFR2_EL1, info->reg_id_aa64mmfr2);
@@ -708,6 +717,8 @@
 				      info->reg_id_aa64isar0, boot->reg_id_aa64isar0);
 	taint |= check_update_ftr_reg(SYS_ID_AA64ISAR1_EL1, cpu,
 				      info->reg_id_aa64isar1, boot->reg_id_aa64isar1);
+	taint |= check_update_ftr_reg(SYS_ID_AA64ISAR2_EL1, cpu,
+				      info->reg_id_aa64isar2, boot->reg_id_aa64isar2);
 
 	/*
 	 * Differing PARange support is fine as long as all peripherals and
@@ -721,9 +732,6 @@
 	taint |= check_update_ftr_reg(SYS_ID_AA64MMFR2_EL1, cpu,
 				      info->reg_id_aa64mmfr2, boot->reg_id_aa64mmfr2);
 
-	/*
-	 * EL3 is not our concern.
-	 */
 	taint |= check_update_ftr_reg(SYS_ID_AA64PFR0_EL1, cpu,
 				      info->reg_id_aa64pfr0, boot->reg_id_aa64pfr0);
 	taint |= check_update_ftr_reg(SYS_ID_AA64PFR1_EL1, cpu,
@@ -845,6 +853,7 @@
 	read_sysreg_case(SYS_ID_AA64MMFR2_EL1);
 	read_sysreg_case(SYS_ID_AA64ISAR0_EL1);
 	read_sysreg_case(SYS_ID_AA64ISAR1_EL1);
+	read_sysreg_case(SYS_ID_AA64ISAR2_EL1);
 
 	read_sysreg_case(SYS_CNTFRQ_EL0);
 	read_sysreg_case(SYS_CTR_EL0);
@@ -1045,6 +1054,12 @@
 	static bool kpti_applied = false;
 	int cpu = smp_processor_id();
 
+	if (__this_cpu_read(this_cpu_vector) == vectors) {
+		const char *v = arm64_get_bp_hardening_vector(EL1_VECTOR_KPTI);
+
+		__this_cpu_write(this_cpu_vector, v);
+	}
+
 	/*
 	 * We don't need to rewrite the page-tables if either we've done
 	 * it already or we have KASLR enabled and therefore have not
@@ -1098,7 +1113,7 @@
 	/* List of CPUs which have broken DBM support. */
 	static const struct midr_range cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_1024718
-		MIDR_RANGE(MIDR_CORTEX_A55, 0, 0, 1, 0),  // A55 r0p0 -r1p0
+		MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
 #endif
 		{},
 	};
@@ -1266,6 +1281,14 @@
 }
 #endif
 
+static void elf_hwcap_fixup(void)
+{
+#ifdef CONFIG_ARM64_ERRATUM_1742098
+	if (cpus_have_const_cap(ARM64_WORKAROUND_1742098))
+		compat_elf_hwcap2 &= ~COMPAT_HWCAP2_AES;
+#endif /* ARM64_ERRATUM_1742098 */
+}
+
 static const struct arm64_cpu_capabilities arm64_features[] = {
 	{
 		.desc = "GIC system register CPU interface",
@@ -1367,7 +1390,7 @@
 	{
 		/* FP/SIMD is not implemented */
 		.capability = ARM64_HAS_NO_FPSIMD,
-		.type = ARM64_CPUCAP_SYSTEM_FEATURE,
+		.type = ARM64_CPUCAP_BOOT_RESTRICTED_CPU_LOCAL_FEATURE,
 		.min_field_value = 0,
 		.matches = has_no_fpsimd,
 	},
@@ -1595,6 +1618,12 @@
 		.match_list = list,						\
 	}
 
+#define HWCAP_CAP_MATCH(match, cap_type, cap)					\
+	{									\
+		__HWCAP_CAP(#cap, cap_type, cap)				\
+		.matches = match,						\
+	}
+
 #ifdef CONFIG_ARM64_PTR_AUTH
 static const struct arm64_cpu_capabilities ptr_auth_hwcap_addr_matches[] = {
 	{
@@ -1668,8 +1697,35 @@
 	{},
 };
 
+#ifdef CONFIG_COMPAT
+static bool compat_has_neon(const struct arm64_cpu_capabilities *cap, int scope)
+{
+	/*
+	 * Check that all of MVFR1_EL1.{SIMDSP, SIMDInt, SIMDLS} are available,
+	 * in line with that of arm32 as in vfp_init(). We make sure that the
+	 * check is future proof, by making sure value is non-zero.
+	 */
+	u32 mvfr1;
+
+	WARN_ON(scope == SCOPE_LOCAL_CPU && preemptible());
+	if (scope == SCOPE_SYSTEM)
+		mvfr1 = read_sanitised_ftr_reg(SYS_MVFR1_EL1);
+	else
+		mvfr1 = read_sysreg_s(SYS_MVFR1_EL1);
+
+	return cpuid_feature_extract_unsigned_field(mvfr1, MVFR1_SIMDSP_SHIFT) &&
+		cpuid_feature_extract_unsigned_field(mvfr1, MVFR1_SIMDINT_SHIFT) &&
+		cpuid_feature_extract_unsigned_field(mvfr1, MVFR1_SIMDLS_SHIFT);
+}
+#endif
+
 static const struct arm64_cpu_capabilities compat_elf_hwcaps[] = {
 #ifdef CONFIG_COMPAT
+	HWCAP_CAP_MATCH(compat_has_neon, CAP_COMPAT_HWCAP, COMPAT_HWCAP_NEON),
+	HWCAP_CAP(SYS_MVFR1_EL1, MVFR1_SIMDFMAC_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP, COMPAT_HWCAP_VFPv4),
+	/* Arm v8 mandates MVFR0.FPDP == {0, 2}. So, piggy back on this for the presence of VFP support */
+	HWCAP_CAP(SYS_MVFR0_EL1, MVFR0_FPDP_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP, COMPAT_HWCAP_VFP),
+	HWCAP_CAP(SYS_MVFR0_EL1, MVFR0_FPDP_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP, COMPAT_HWCAP_VFPv3),
 	HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_AES_SHIFT, FTR_UNSIGNED, 2, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_PMULL),
 	HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_AES_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_AES),
 	HWCAP_CAP(SYS_ID_ISAR5_EL1, ID_ISAR5_SHA1_SHIFT, FTR_UNSIGNED, 1, CAP_COMPAT_HWCAP2, COMPAT_HWCAP2_SHA1),
@@ -2056,8 +2112,10 @@
 	mark_const_caps_ready();
 	setup_elf_hwcaps(arm64_elf_hwcaps);
 
-	if (system_supports_32bit_el0())
+	if (system_supports_32bit_el0()) {
 		setup_elf_hwcaps(compat_elf_hwcaps);
+		elf_hwcap_fixup();
+	}
 
 	if (system_uses_ttbr0_pan())
 		pr_info("emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching\n");
--- linux-ein-5.4.0.orig/arch/arm64/kernel/cpuidle.c
+++ linux-ein-5.4.0/arch/arm64/kernel/cpuidle.c
@@ -53,6 +53,9 @@
 	struct acpi_lpi_state *lpi;
 	struct acpi_processor *pr = per_cpu(processors, cpu);
 
+	if (unlikely(!pr || !pr->flags.has_lpi))
+		return -EINVAL;
+
 	/*
 	 * If the PSCI cpu_suspend function hook has not been initialized
 	 * idle states must not be enabled, so bail out
@@ -60,9 +63,6 @@
 	if (!psci_ops.cpu_suspend)
 		return -EOPNOTSUPP;
 
-	if (unlikely(!pr || !pr->flags.has_lpi))
-		return -EINVAL;
-
 	count = pr->power.count - 1;
 	if (count <= 0)
 		return -ENODEV;
--- linux-ein-5.4.0.orig/arch/arm64/kernel/cpuinfo.c
+++ linux-ein-5.4.0/arch/arm64/kernel/cpuinfo.c
@@ -344,6 +344,7 @@
 	info->reg_id_aa64dfr1 = read_cpuid(ID_AA64DFR1_EL1);
 	info->reg_id_aa64isar0 = read_cpuid(ID_AA64ISAR0_EL1);
 	info->reg_id_aa64isar1 = read_cpuid(ID_AA64ISAR1_EL1);
+	info->reg_id_aa64isar2 = read_cpuid(ID_AA64ISAR2_EL1);
 	info->reg_id_aa64mmfr0 = read_cpuid(ID_AA64MMFR0_EL1);
 	info->reg_id_aa64mmfr1 = read_cpuid(ID_AA64MMFR1_EL1);
 	info->reg_id_aa64mmfr2 = read_cpuid(ID_AA64MMFR2_EL1);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/crash_core.c
+++ linux-ein-5.4.0/arch/arm64/kernel/crash_core.c
@@ -6,6 +6,14 @@
 
 #include <linux/crash_core.h>
 #include <asm/memory.h>
+#include <asm/pgtable-hwdef.h>
+
+static inline u64 get_tcr_el1_t1sz(void);
+
+static inline u64 get_tcr_el1_t1sz(void)
+{
+	return (read_sysreg(tcr_el1) & TCR_T1SZ_MASK) >> TCR_T1SZ_OFFSET;
+}
 
 void arch_crash_save_vmcoreinfo(void)
 {
@@ -15,5 +23,7 @@
 						kimage_voffset);
 	vmcoreinfo_append_str("NUMBER(PHYS_OFFSET)=0x%llx\n",
 						PHYS_OFFSET);
+	vmcoreinfo_append_str("NUMBER(TCR_EL1_T1SZ)=0x%llx\n",
+						get_tcr_el1_t1sz());
 	vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
 }
--- linux-ein-5.4.0.orig/arch/arm64/kernel/crash_dump.c
+++ linux-ein-5.4.0/arch/arm64/kernel/crash_dump.c
@@ -64,5 +64,7 @@
 ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos)
 {
 	memcpy(buf, phys_to_virt((phys_addr_t)*ppos), count);
+	*ppos += count;
+
 	return count;
 }
--- linux-ein-5.4.0.orig/arch/arm64/kernel/debug-monitors.c
+++ linux-ein-5.4.0/arch/arm64/kernel/debug-monitors.c
@@ -141,17 +141,20 @@
 /*
  * Single step API and exception handling.
  */
-static void set_regs_spsr_ss(struct pt_regs *regs)
+static void set_user_regs_spsr_ss(struct user_pt_regs *regs)
 {
 	regs->pstate |= DBG_SPSR_SS;
 }
-NOKPROBE_SYMBOL(set_regs_spsr_ss);
+NOKPROBE_SYMBOL(set_user_regs_spsr_ss);
 
-static void clear_regs_spsr_ss(struct pt_regs *regs)
+static void clear_user_regs_spsr_ss(struct user_pt_regs *regs)
 {
 	regs->pstate &= ~DBG_SPSR_SS;
 }
-NOKPROBE_SYMBOL(clear_regs_spsr_ss);
+NOKPROBE_SYMBOL(clear_user_regs_spsr_ss);
+
+#define set_regs_spsr_ss(r)	set_user_regs_spsr_ss(&(r)->user_regs)
+#define clear_regs_spsr_ss(r)	clear_user_regs_spsr_ss(&(r)->user_regs)
 
 static DEFINE_SPINLOCK(debug_hook_lock);
 static LIST_HEAD(user_step_hook);
@@ -393,17 +396,26 @@
 	 * If single step is active for this thread, then set SPSR.SS
 	 * to 1 to avoid returning to the active-pending state.
 	 */
-	if (test_ti_thread_flag(task_thread_info(task), TIF_SINGLESTEP))
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
 		set_regs_spsr_ss(task_pt_regs(task));
 }
 NOKPROBE_SYMBOL(user_rewind_single_step);
 
 void user_fastforward_single_step(struct task_struct *task)
 {
-	if (test_ti_thread_flag(task_thread_info(task), TIF_SINGLESTEP))
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
 		clear_regs_spsr_ss(task_pt_regs(task));
 }
 
+void user_regs_reset_single_step(struct user_pt_regs *regs,
+				 struct task_struct *task)
+{
+	if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
+		set_user_regs_spsr_ss(regs);
+	else
+		clear_user_regs_spsr_ss(regs);
+}
+
 /* Kernel API */
 void kernel_enable_single_step(struct pt_regs *regs)
 {
@@ -429,6 +441,11 @@
 }
 NOKPROBE_SYMBOL(kernel_active_single_step);
 
+void kernel_rewind_single_step(struct pt_regs *regs)
+{
+	set_regs_spsr_ss(regs);
+}
+
 /* ptrace API */
 void user_enable_single_step(struct task_struct *task)
 {
--- linux-ein-5.4.0.orig/arch/arm64/kernel/efi.c
+++ linux-ein-5.4.0/arch/arm64/kernel/efi.c
@@ -12,6 +12,14 @@
 
 #include <asm/efi.h>
 
+static bool region_is_misaligned(const efi_memory_desc_t *md)
+{
+	if (PAGE_SIZE == EFI_PAGE_SIZE)
+		return false;
+	return !PAGE_ALIGNED(md->phys_addr) ||
+	       !PAGE_ALIGNED(md->num_pages << EFI_PAGE_SHIFT);
+}
+
 /*
  * Only regions of type EFI_RUNTIME_SERVICES_CODE need to be
  * executable, everything else can be mapped with the XN bits
@@ -25,14 +33,22 @@
 	if (type == EFI_MEMORY_MAPPED_IO)
 		return PROT_DEVICE_nGnRE;
 
-	if (WARN_ONCE(!PAGE_ALIGNED(md->phys_addr),
-		      "UEFI Runtime regions are not aligned to 64 KB -- buggy firmware?"))
+	if (region_is_misaligned(md)) {
+		static bool __initdata code_is_misaligned;
+
 		/*
-		 * If the region is not aligned to the page size of the OS, we
-		 * can not use strict permissions, since that would also affect
-		 * the mapping attributes of the adjacent regions.
+		 * Regions that are not aligned to the OS page size cannot be
+		 * mapped with strict permissions, as those might interfere
+		 * with the permissions that are needed by the adjacent
+		 * region's mapping. However, if we haven't encountered any
+		 * misaligned runtime code regions so far, we can safely use
+		 * non-executable permissions for non-code regions.
 		 */
-		return pgprot_val(PAGE_KERNEL_EXEC);
+		code_is_misaligned |= (type == EFI_RUNTIME_SERVICES_CODE);
+
+		return code_is_misaligned ? pgprot_val(PAGE_KERNEL_EXEC)
+					  : pgprot_val(PAGE_KERNEL);
+	}
 
 	/* R-- */
 	if ((attr & (EFI_MEMORY_XP | EFI_MEMORY_RO)) ==
@@ -62,19 +78,16 @@
 	bool page_mappings_only = (md->type == EFI_RUNTIME_SERVICES_CODE ||
 				   md->type == EFI_RUNTIME_SERVICES_DATA);
 
-	if (!PAGE_ALIGNED(md->phys_addr) ||
-	    !PAGE_ALIGNED(md->num_pages << EFI_PAGE_SHIFT)) {
-		/*
-		 * If the end address of this region is not aligned to page
-		 * size, the mapping is rounded up, and may end up sharing a
-		 * page frame with the next UEFI memory region. If we create
-		 * a block entry now, we may need to split it again when mapping
-		 * the next region, and support for that is going to be removed
-		 * from the MMU routines. So avoid block mappings altogether in
-		 * that case.
-		 */
+	/*
+	 * If this region is not aligned to the page size used by the OS, the
+	 * mapping will be rounded outwards, and may end up sharing a page
+	 * frame with an adjacent runtime memory region. Given that the page
+	 * table descriptor covering the shared page will be rewritten when the
+	 * adjacent region gets mapped, we must avoid block mappings here so we
+	 * don't have to worry about splitting them when that happens.
+	 */
+	if (region_is_misaligned(md))
 		page_mappings_only = true;
-	}
 
 	create_pgd_mapping(mm, md->phys_addr, md->virt_addr,
 			   md->num_pages << EFI_PAGE_SHIFT,
@@ -101,6 +114,9 @@
 	BUG_ON(md->type != EFI_RUNTIME_SERVICES_CODE &&
 	       md->type != EFI_RUNTIME_SERVICES_DATA);
 
+	if (region_is_misaligned(md))
+		return 0;
+
 	/*
 	 * Calling apply_to_page_range() is only safe on regions that are
 	 * guaranteed to be mapped down to pages. Since we are only called
--- linux-ein-5.4.0.orig/arch/arm64/kernel/entry.S
+++ linux-ein-5.4.0/arch/arm64/kernel/entry.S
@@ -59,18 +59,21 @@
 
 	.macro kernel_ventry, el, label, regsize = 64
 	.align 7
-#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
-alternative_if ARM64_UNMAP_KERNEL_AT_EL0
+.Lventry_start\@:
 	.if	\el == 0
+	/*
+	 * This must be the first instruction of the EL0 vector entries. It is
+	 * skipped by the trampoline vectors, to trigger the cleanup.
+	 */
+	b	.Lskip_tramp_vectors_cleanup\@
 	.if	\regsize == 64
 	mrs	x30, tpidrro_el0
 	msr	tpidrro_el0, xzr
 	.else
 	mov	x30, xzr
 	.endif
+.Lskip_tramp_vectors_cleanup\@:
 	.endif
-alternative_else_nop_endif
-#endif
 
 	sub	sp, sp, #S_FRAME_SIZE
 #ifdef CONFIG_VMAP_STACK
@@ -116,11 +119,15 @@
 	mrs	x0, tpidrro_el0
 #endif
 	b	el\()\el\()_\label
+.org .Lventry_start\@ + 128	// Did we overflow the ventry slot?
 	.endm
 
-	.macro tramp_alias, dst, sym
+	.macro tramp_alias, dst, sym, tmp
 	mov_q	\dst, TRAMP_VALIAS
-	add	\dst, \dst, #(\sym - .entry.tramp.text)
+	adr_l	\tmp, \sym
+	add	\dst, \dst, \tmp
+	adr_l	\tmp, .entry.tramp.text
+	sub	\dst, \dst, \tmp
 	.endm
 
 	// This macro corrupts x0-x3. It is the caller's duty
@@ -361,21 +368,25 @@
 	ldp	x24, x25, [sp, #16 * 12]
 	ldp	x26, x27, [sp, #16 * 13]
 	ldp	x28, x29, [sp, #16 * 14]
-	ldr	lr, [sp, #S_LR]
-	add	sp, sp, #S_FRAME_SIZE		// restore sp
 
 	.if	\el == 0
-alternative_insn eret, nop, ARM64_UNMAP_KERNEL_AT_EL0
+alternative_if_not ARM64_UNMAP_KERNEL_AT_EL0
+	ldr	lr, [sp, #S_LR]
+	add	sp, sp, #S_FRAME_SIZE		// restore sp
+	eret
+alternative_else_nop_endif
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
 	bne	5f
-	msr	far_el1, x30
-	tramp_alias	x30, tramp_exit_native
+	msr	far_el1, x29
+	tramp_alias	x30, tramp_exit_native, x29
 	br	x30
 5:
-	tramp_alias	x30, tramp_exit_compat
+	tramp_alias	x30, tramp_exit_compat, x29
 	br	x30
 #endif
 	.else
+	ldr	lr, [sp, #S_LR]
+	add	sp, sp, #S_FRAME_SIZE		// restore sp
 	eret
 	.endif
 	sb
@@ -1012,15 +1023,10 @@
 
 	.popsection				// .entry.text
 
-#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
-/*
- * Exception vectors trampoline.
- */
-	.pushsection ".entry.tramp.text", "ax"
-
+	// Move from tramp_pg_dir to swapper_pg_dir
 	.macro tramp_map_kernel, tmp
 	mrs	\tmp, ttbr1_el1
-	add	\tmp, \tmp, #(PAGE_SIZE + RESERVED_TTBR0_SIZE)
+	add	\tmp, \tmp, #(2 * PAGE_SIZE)
 	bic	\tmp, \tmp, #USER_ASID_FLAG
 	msr	ttbr1_el1, \tmp
 #ifdef CONFIG_QCOM_FALKOR_ERRATUM_1003
@@ -1037,9 +1043,10 @@
 #endif /* CONFIG_QCOM_FALKOR_ERRATUM_1003 */
 	.endm
 
+	// Move from swapper_pg_dir to tramp_pg_dir
 	.macro tramp_unmap_kernel, tmp
 	mrs	\tmp, ttbr1_el1
-	sub	\tmp, \tmp, #(PAGE_SIZE + RESERVED_TTBR0_SIZE)
+	sub	\tmp, \tmp, #(2 * PAGE_SIZE)
 	orr	\tmp, \tmp, #USER_ASID_FLAG
 	msr	ttbr1_el1, \tmp
 	/*
@@ -1049,12 +1056,47 @@
 	 */
 	.endm
 
-	.macro tramp_ventry, regsize = 64
+	.macro tramp_data_page	dst
+	adr_l	\dst, .entry.tramp.text
+	sub	\dst, \dst, PAGE_SIZE
+	.endm
+
+	.macro tramp_data_read_var	dst, var
+#ifdef CONFIG_RANDOMIZE_BASE
+	tramp_data_page		\dst
+	add	\dst, \dst, #:lo12:__entry_tramp_data_\var
+	ldr	\dst, [\dst]
+#else
+	ldr	\dst, =\var
+#endif
+	.endm
+
+#define BHB_MITIGATION_NONE	0
+#define BHB_MITIGATION_LOOP	1
+#define BHB_MITIGATION_FW	2
+#define BHB_MITIGATION_INSN	3
+
+	.macro tramp_ventry, vector_start, regsize, kpti, bhb
 	.align	7
 1:
 	.if	\regsize == 64
 	msr	tpidrro_el0, x30	// Restored in kernel_ventry
 	.endif
+
+	.if	\bhb == BHB_MITIGATION_LOOP
+	/*
+	 * This sequence must appear before the first indirect branch. i.e. the
+	 * ret out of tramp_ventry. It appears here because x30 is free.
+	 */
+	__mitigate_spectre_bhb_loop	x30
+	.endif // \bhb == BHB_MITIGATION_LOOP
+
+	.if	\bhb == BHB_MITIGATION_INSN
+	clearbhb
+	isb
+	.endif // \bhb == BHB_MITIGATION_INSN
+
+	.if	\kpti == 1
 	/*
 	 * Defend against branch aliasing attacks by pushing a dummy
 	 * entry onto the return stack and using a RET instruction to
@@ -1064,46 +1106,79 @@
 	b	.
 2:
 	tramp_map_kernel	x30
-#ifdef CONFIG_RANDOMIZE_BASE
-	adr	x30, tramp_vectors + PAGE_SIZE
 alternative_insn isb, nop, ARM64_WORKAROUND_QCOM_FALKOR_E1003
-	ldr	x30, [x30]
-#else
-	ldr	x30, =vectors
-#endif
+	tramp_data_read_var	x30, vectors
 alternative_if_not ARM64_WORKAROUND_CAVIUM_TX2_219_PRFM
-	prfm	plil1strm, [x30, #(1b - tramp_vectors)]
+	prfm	plil1strm, [x30, #(1b - \vector_start)]
 alternative_else_nop_endif
+
 	msr	vbar_el1, x30
-	add	x30, x30, #(1b - tramp_vectors)
 	isb
+	.else
+	ldr	x30, =vectors
+	.endif // \kpti == 1
+
+	.if	\bhb == BHB_MITIGATION_FW
+	/*
+	 * The firmware sequence must appear before the first indirect branch.
+	 * i.e. the ret out of tramp_ventry. But it also needs the stack to be
+	 * mapped to save/restore the registers the SMC clobbers.
+	 */
+	__mitigate_spectre_bhb_fw
+	.endif // \bhb == BHB_MITIGATION_FW
+
+	add	x30, x30, #(1b - \vector_start + 4)
 	ret
+.org 1b + 128	// Did we overflow the ventry slot?
 	.endm
 
 	.macro tramp_exit, regsize = 64
-	adr	x30, tramp_vectors
+	tramp_data_read_var	x30, this_cpu_vector
+alternative_if_not ARM64_HAS_VIRT_HOST_EXTN
+	mrs	x29, tpidr_el1
+alternative_else
+	mrs	x29, tpidr_el2
+alternative_endif
+	ldr	x30, [x30, x29]
+
 	msr	vbar_el1, x30
-	tramp_unmap_kernel	x30
+	ldr	lr, [sp, #S_LR]
+	tramp_unmap_kernel	x29
 	.if	\regsize == 64
-	mrs	x30, far_el1
+	mrs	x29, far_el1
 	.endif
+	add	sp, sp, #S_FRAME_SIZE		// restore sp
 	eret
 	sb
 	.endm
 
-	.align	11
-ENTRY(tramp_vectors)
+	.macro	generate_tramp_vector,	kpti, bhb
+.Lvector_start\@:
 	.space	0x400
 
-	tramp_ventry
-	tramp_ventry
-	tramp_ventry
-	tramp_ventry
-
-	tramp_ventry	32
-	tramp_ventry	32
-	tramp_ventry	32
-	tramp_ventry	32
+	.rept	4
+	tramp_ventry	.Lvector_start\@, 64, \kpti, \bhb
+	.endr
+	.rept	4
+	tramp_ventry	.Lvector_start\@, 32, \kpti, \bhb
+	.endr
+	.endm
+
+#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
+/*
+ * Exception vectors trampoline.
+ * The order must match __bp_harden_el1_vectors and the
+ * arm64_bp_harden_el1_vectors enum.
+ */
+	.pushsection ".entry.tramp.text", "ax"
+	.align	11
+ENTRY(tramp_vectors)
+#ifdef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
+	generate_tramp_vector	kpti=1, bhb=BHB_MITIGATION_LOOP
+	generate_tramp_vector	kpti=1, bhb=BHB_MITIGATION_FW
+	generate_tramp_vector	kpti=1, bhb=BHB_MITIGATION_INSN
+#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
+	generate_tramp_vector	kpti=1, bhb=BHB_MITIGATION_NONE
 END(tramp_vectors)
 
 ENTRY(tramp_exit_native)
@@ -1121,12 +1196,56 @@
 	.align PAGE_SHIFT
 	.globl	__entry_tramp_data_start
 __entry_tramp_data_start:
+__entry_tramp_data_vectors:
 	.quad	vectors
+#ifdef CONFIG_ARM_SDE_INTERFACE
+__entry_tramp_data___sdei_asm_handler:
+	.quad	__sdei_asm_handler
+#endif /* CONFIG_ARM_SDE_INTERFACE */
+__entry_tramp_data_this_cpu_vector:
+	.quad	this_cpu_vector
 	.popsection				// .rodata
 #endif /* CONFIG_RANDOMIZE_BASE */
 #endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
 
 /*
+ * Exception vectors for spectre mitigations on entry from EL1 when
+ * kpti is not in use.
+ */
+	.macro generate_el1_vector, bhb
+.Lvector_start\@:
+	kernel_ventry	1, sync_invalid			// Synchronous EL1t
+	kernel_ventry	1, irq_invalid			// IRQ EL1t
+	kernel_ventry	1, fiq_invalid			// FIQ EL1t
+	kernel_ventry	1, error_invalid		// Error EL1t
+
+	kernel_ventry	1, sync				// Synchronous EL1h
+	kernel_ventry	1, irq				// IRQ EL1h
+	kernel_ventry	1, fiq_invalid			// FIQ EL1h
+	kernel_ventry	1, error			// Error EL1h
+
+	.rept	4
+	tramp_ventry	.Lvector_start\@, 64, 0, \bhb
+	.endr
+	.rept 4
+	tramp_ventry	.Lvector_start\@, 32, 0, \bhb
+	.endr
+	.endm
+
+/* The order must match tramp_vecs and the arm64_bp_harden_el1_vectors enum. */
+	.pushsection ".entry.text", "ax"
+	.align	11
+SYM_CODE_START(__bp_harden_el1_vectors)
+#ifdef CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
+	generate_el1_vector	bhb=BHB_MITIGATION_LOOP
+	generate_el1_vector	bhb=BHB_MITIGATION_FW
+	generate_el1_vector	bhb=BHB_MITIGATION_INSN
+#endif /* CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY */
+SYM_CODE_END(__bp_harden_el1_vectors)
+	.popsection
+
+
+/*
  * Register switch for AArch64. The callee-saved registers need to be saved
  * and restored. On entry:
  *   x0 = previous task_struct (must be preserved across the switch)
@@ -1212,13 +1331,7 @@
 	 */
 1:	str	x4, [x1, #(SDEI_EVENT_INTREGS + S_ORIG_ADDR_LIMIT)]
 
-#ifdef CONFIG_RANDOMIZE_BASE
-	adr	x4, tramp_vectors + PAGE_SIZE
-	add	x4, x4, #:lo12:__sdei_asm_trampoline_next_handler
-	ldr	x4, [x4]
-#else
-	ldr	x4, =__sdei_asm_handler
-#endif
+	tramp_data_read_var     x4, __sdei_asm_handler
 	br	x4
 ENDPROC(__sdei_asm_entry_trampoline)
 NOKPROBE(__sdei_asm_entry_trampoline)
@@ -1241,12 +1354,6 @@
 NOKPROBE(__sdei_asm_exit_trampoline)
 	.ltorg
 .popsection		// .entry.tramp.text
-#ifdef CONFIG_RANDOMIZE_BASE
-.pushsection ".rodata", "a"
-__sdei_asm_trampoline_next_handler:
-	.quad	__sdei_asm_handler
-.popsection		// .rodata
-#endif /* CONFIG_RANDOMIZE_BASE */
 #endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
 
 /*
@@ -1342,7 +1449,7 @@
 alternative_else_nop_endif
 
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
-	tramp_alias	dst=x5, sym=__sdei_asm_exit_trampoline
+	tramp_alias	dst=x5, sym=__sdei_asm_exit_trampoline, tmp=x3
 	br	x5
 #endif
 ENDPROC(__sdei_asm_handler)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/fpsimd.c
+++ linux-ein-5.4.0/arch/arm64/kernel/fpsimd.c
@@ -269,6 +269,7 @@
  */
 static void task_fpsimd_load(void)
 {
+	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!have_cpu_fpsimd_context());
 
 	if (system_supports_sve() && test_thread_flag(TIF_SVE))
@@ -289,6 +290,7 @@
 		this_cpu_ptr(&fpsimd_last_state);
 	/* set by fpsimd_bind_task_to_cpu() or fpsimd_bind_state_to_cpu() */
 
+	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!have_cpu_fpsimd_context());
 
 	if (!test_thread_flag(TIF_FOREIGN_FPSTATE)) {
@@ -336,7 +338,7 @@
 	return sve_vl_from_vq(__bit_to_vq(bit));
 }
 
-#ifdef CONFIG_SYSCTL
+#if defined(CONFIG_ARM64_SVE) && defined(CONFIG_SYSCTL)
 
 static int sve_proc_do_default_vl(struct ctl_table *table, int write,
 				  void __user *buffer, size_t *lenp,
@@ -382,9 +384,9 @@
 	return 0;
 }
 
-#else /* ! CONFIG_SYSCTL */
+#else /* ! (CONFIG_ARM64_SVE && CONFIG_SYSCTL) */
 static int __init sve_sysctl_init(void) { return 0; }
-#endif /* ! CONFIG_SYSCTL */
+#endif /* ! (CONFIG_ARM64_SVE && CONFIG_SYSCTL) */
 
 #define ZREG(sve_state, vq, n) ((char *)(sve_state) +		\
 	(SVE_SIG_ZREG_OFFSET(vq, n) - SVE_SIG_REGS_OFFSET))
@@ -496,7 +498,7 @@
 void sve_alloc(struct task_struct *task)
 {
 	if (task->thread.sve_state) {
-		memset(task->thread.sve_state, 0, sve_state_size(current));
+		memset(task->thread.sve_state, 0, sve_state_size(task));
 		return;
 	}
 
@@ -1092,6 +1094,7 @@
 	struct fpsimd_last_state_struct *last =
 		this_cpu_ptr(&fpsimd_last_state);
 
+	WARN_ON(!system_supports_fpsimd());
 	last->st = &current->thread.uw.fpsimd_state;
 	last->sve_state = current->thread.sve_state;
 	last->sve_vl = current->thread.sve_vl;
@@ -1114,6 +1117,7 @@
 	struct fpsimd_last_state_struct *last =
 		this_cpu_ptr(&fpsimd_last_state);
 
+	WARN_ON(!system_supports_fpsimd());
 	WARN_ON(!in_softirq() && !irqs_disabled());
 
 	last->st = st;
@@ -1128,8 +1132,19 @@
  */
 void fpsimd_restore_current_state(void)
 {
-	if (!system_supports_fpsimd())
+	/*
+	 * For the tasks that were created before we detected the absence of
+	 * FP/SIMD, the TIF_FOREIGN_FPSTATE could be set via fpsimd_thread_switch(),
+	 * e.g, init. This could be then inherited by the children processes.
+	 * If we later detect that the system doesn't support FP/SIMD,
+	 * we must clear the flag for  all the tasks to indicate that the
+	 * FPSTATE is clean (as we can't have one) to avoid looping for ever in
+	 * do_notify_resume().
+	 */
+	if (!system_supports_fpsimd()) {
+		clear_thread_flag(TIF_FOREIGN_FPSTATE);
 		return;
+	}
 
 	get_cpu_fpsimd_context();
 
@@ -1148,7 +1163,7 @@
  */
 void fpsimd_update_current_state(struct user_fpsimd_state const *state)
 {
-	if (!system_supports_fpsimd())
+	if (WARN_ON(!system_supports_fpsimd()))
 		return;
 
 	get_cpu_fpsimd_context();
@@ -1179,7 +1194,13 @@
 void fpsimd_flush_task_state(struct task_struct *t)
 {
 	t->thread.fpsimd_cpu = NR_CPUS;
-
+	/*
+	 * If we don't support fpsimd, bail out after we have
+	 * reset the fpsimd_cpu for this task and clear the
+	 * FPSTATE.
+	 */
+	if (!system_supports_fpsimd())
+		return;
 	barrier();
 	set_tsk_thread_flag(t, TIF_FOREIGN_FPSTATE);
 
@@ -1193,6 +1214,7 @@
  */
 static void fpsimd_flush_cpu_state(void)
 {
+	WARN_ON(!system_supports_fpsimd());
 	__this_cpu_write(fpsimd_last_state.st, NULL);
 	set_thread_flag(TIF_FOREIGN_FPSTATE);
 }
@@ -1203,6 +1225,8 @@
  */
 void fpsimd_save_and_flush_cpu_state(void)
 {
+	if (!system_supports_fpsimd())
+		return;
 	WARN_ON(preemptible());
 	__get_cpu_fpsimd_context();
 	fpsimd_save();
--- linux-ein-5.4.0.orig/arch/arm64/kernel/ftrace.c
+++ linux-ein-5.4.0/arch/arm64/kernel/ftrace.c
@@ -69,14 +69,26 @@
 {
 	unsigned long pc = rec->ip;
 	u32 old, new;
-	long offset = (long)pc - (long)addr;
+	long offset = (long)addr - (long)pc;
 
 	if (offset < -SZ_128M || offset >= SZ_128M) {
 #ifdef CONFIG_ARM64_MODULE_PLTS
-		struct plt_entry trampoline, *dst;
 		struct module *mod;
 
 		/*
+		 * There is only one ftrace trampoline per module. For now,
+		 * this is not a problem since on arm64, all dynamic ftrace
+		 * invocations are routed via ftrace_caller(). This will need
+		 * to be revisited if support for multiple ftrace entry points
+		 * is added in the future, but for now, the pr_err() below
+		 * deals with a theoretical issue only.
+		 */
+		if (addr != FTRACE_ADDR) {
+			pr_err("ftrace: far branches to multiple entry points unsupported inside a single module\n");
+			return -EINVAL;
+		}
+
+		/*
 		 * On kernels that support module PLTs, the offset between the
 		 * branch instruction and its target may legally exceed the
 		 * range of an ordinary relative 'bl' opcode. In this case, we
@@ -93,46 +105,7 @@
 		if (WARN_ON(!mod))
 			return -EINVAL;
 
-		/*
-		 * There is only one ftrace trampoline per module. For now,
-		 * this is not a problem since on arm64, all dynamic ftrace
-		 * invocations are routed via ftrace_caller(). This will need
-		 * to be revisited if support for multiple ftrace entry points
-		 * is added in the future, but for now, the pr_err() below
-		 * deals with a theoretical issue only.
-		 *
-		 * Note that PLTs are place relative, and plt_entries_equal()
-		 * checks whether they point to the same target. Here, we need
-		 * to check if the actual opcodes are in fact identical,
-		 * regardless of the offset in memory so use memcmp() instead.
-		 */
-		dst = mod->arch.ftrace_trampoline;
-		trampoline = get_plt_entry(addr, dst);
-		if (memcmp(dst, &trampoline, sizeof(trampoline))) {
-			if (plt_entry_is_initialized(dst)) {
-				pr_err("ftrace: far branches to multiple entry points unsupported inside a single module\n");
-				return -EINVAL;
-			}
-
-			/* point the trampoline to our ftrace entry point */
-			module_disable_ro(mod);
-			*dst = trampoline;
-			module_enable_ro(mod, true);
-
-			/*
-			 * Ensure updated trampoline is visible to instruction
-			 * fetch before we patch in the branch. Although the
-			 * architecture doesn't require an IPI in this case,
-			 * Neoverse-N1 erratum #1542419 does require one
-			 * if the TLB maintenance in module_enable_ro() is
-			 * skipped due to rodata_enabled. It doesn't seem worth
-			 * it to make it conditional given that this is
-			 * certainly not a fast-path.
-			 */
-			flush_icache_range((unsigned long)&dst[0],
-					   (unsigned long)&dst[1]);
-		}
-		addr = (unsigned long)dst;
+		addr = (unsigned long)mod->arch.ftrace_trampoline;
 #else /* CONFIG_ARM64_MODULE_PLTS */
 		return -EINVAL;
 #endif /* CONFIG_ARM64_MODULE_PLTS */
@@ -153,7 +126,7 @@
 	unsigned long pc = rec->ip;
 	bool validate = true;
 	u32 old = 0, new;
-	long offset = (long)pc - (long)addr;
+	long offset = (long)addr - (long)pc;
 
 	if (offset < -SZ_128M || offset >= SZ_128M) {
 #ifdef CONFIG_ARM64_MODULE_PLTS
--- linux-ein-5.4.0.orig/arch/arm64/kernel/head.S
+++ linux-ein-5.4.0/arch/arm64/kernel/head.S
@@ -194,7 +194,7 @@
  * to be composed of multiple pages. (This effectively scales the end index).
  *
  *	vstart:	virtual address of start of range
- *	vend:	virtual address of end of range
+ *	vend:	virtual address of end of range - we map [vstart, vend]
  *	shift:	shift used to transform virtual address into index
  *	ptrs:	number of entries in page table
  *	istart:	index in table corresponding to vstart
@@ -231,17 +231,18 @@
  *
  *	tbl:	location of page table
  *	rtbl:	address to be used for first level page table entry (typically tbl + PAGE_SIZE)
- *	vstart:	start address to map
- *	vend:	end address to map - we map [vstart, vend]
+ *	vstart:	virtual address of start of range
+ *	vend:	virtual address of end of range - we map [vstart, vend - 1]
  *	flags:	flags to use to map last level entries
  *	phys:	physical address corresponding to vstart - physical memory is contiguous
  *	pgds:	the number of pgd entries
  *
  * Temporaries:	istart, iend, tmp, count, sv - these need to be different registers
- * Preserves:	vstart, vend, flags
- * Corrupts:	tbl, rtbl, istart, iend, tmp, count, sv
+ * Preserves:	vstart, flags
+ * Corrupts:	tbl, rtbl, vend, istart, iend, tmp, count, sv
  */
 	.macro map_memory, tbl, rtbl, vstart, vend, flags, phys, pgds, istart, iend, tmp, count, sv
+	sub \vend, \vend, #1
 	add \rtbl, \tbl, #PAGE_SIZE
 	mov \sv, \rtbl
 	mov \count, #0
@@ -337,7 +338,7 @@
 	 */
 	adrp	x5, __idmap_text_end
 	clz	x5, x5
-	cmp	x5, TCR_T0SZ(VA_BITS)	// default T0SZ small enough?
+	cmp	x5, TCR_T0SZ(VA_BITS_MIN) // default T0SZ small enough?
 	b.ge	1f			// .. then skip VA range extension
 
 	adr_l	x6, idmap_t0sz
@@ -393,13 +394,19 @@
 
 	/*
 	 * Since the page tables have been populated with non-cacheable
-	 * accesses (MMU disabled), invalidate the idmap and swapper page
-	 * tables again to remove any speculatively loaded cache lines.
+	 * accesses (MMU disabled), invalidate those tables again to
+	 * remove any speculatively loaded cache lines.
 	 */
+	dmb	sy
+
 	adrp	x0, idmap_pg_dir
+	adrp	x1, idmap_pg_end
+	sub	x1, x1, x0
+	bl	__inval_dcache_area
+
+	adrp	x0, init_pg_dir
 	adrp	x1, init_pg_end
 	sub	x1, x1, x0
-	dmb	sy
 	bl	__inval_dcache_area
 
 	ret	x28
@@ -964,6 +971,7 @@
 
 	tlbi	vmalle1				// Remove any stale TLB entries
 	dsb	nsh
+	isb
 
 	msr	sctlr_el1, x19			// re-enable the MMU
 	isb
--- linux-ein-5.4.0.orig/arch/arm64/kernel/hw_breakpoint.c
+++ linux-ein-5.4.0/arch/arm64/kernel/hw_breakpoint.c
@@ -654,7 +654,7 @@
 		perf_bp_event(bp, regs);
 
 		/* Do we need to handle the stepping? */
-		if (is_default_overflow_handler(bp))
+		if (uses_default_overflow_handler(bp))
 			step = 1;
 unlock:
 		rcu_read_unlock();
@@ -730,6 +730,27 @@
 		return 0;
 }
 
+static int watchpoint_report(struct perf_event *wp, unsigned long addr,
+			     struct pt_regs *regs)
+{
+	int step = uses_default_overflow_handler(wp);
+	struct arch_hw_breakpoint *info = counter_arch_bp(wp);
+
+	info->trigger = addr;
+
+	/*
+	 * If we triggered a user watchpoint from a uaccess routine, then
+	 * handle the stepping ourselves since userspace really can't help
+	 * us with this.
+	 */
+	if (!user_mode(regs) && info->ctrl.privilege == AARCH64_BREAKPOINT_EL0)
+		step = 1;
+	else
+		perf_bp_event(wp, regs);
+
+	return step;
+}
+
 static int watchpoint_handler(unsigned long addr, unsigned int esr,
 			      struct pt_regs *regs)
 {
@@ -739,7 +760,6 @@
 	u64 val;
 	struct perf_event *wp, **slots;
 	struct debug_info *debug_info;
-	struct arch_hw_breakpoint *info;
 	struct arch_hw_breakpoint_ctrl ctrl;
 
 	slots = this_cpu_ptr(wp_on_reg);
@@ -777,25 +797,13 @@
 		if (dist != 0)
 			continue;
 
-		info = counter_arch_bp(wp);
-		info->trigger = addr;
-		perf_bp_event(wp, regs);
-
-		/* Do we need to handle the stepping? */
-		if (is_default_overflow_handler(wp))
-			step = 1;
+		step = watchpoint_report(wp, addr, regs);
 	}
-	if (min_dist > 0 && min_dist != -1) {
-		/* No exact match found. */
-		wp = slots[closest_match];
-		info = counter_arch_bp(wp);
-		info->trigger = addr;
-		perf_bp_event(wp, regs);
 
-		/* Do we need to handle the stepping? */
-		if (is_default_overflow_handler(wp))
-			step = 1;
-	}
+	/* No exact match found? */
+	if (min_dist > 0 && min_dist != -1)
+		step = watchpoint_report(slots[closest_match], addr, regs);
+
 	rcu_read_unlock();
 
 	if (!step)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/insn.c
+++ linux-ein-5.4.0/arch/arm64/kernel/insn.c
@@ -21,6 +21,7 @@
 #include <asm/fixmap.h>
 #include <asm/insn.h>
 #include <asm/kprobes.h>
+#include <asm/sections.h>
 
 #define AARCH64_INSN_SF_BIT	BIT(31)
 #define AARCH64_INSN_N_BIT	BIT(22)
@@ -78,16 +79,29 @@
 
 static DEFINE_RAW_SPINLOCK(patch_lock);
 
+static bool is_exit_text(unsigned long addr)
+{
+	/* discarded with init text/data */
+	return system_state < SYSTEM_RUNNING &&
+		addr >= (unsigned long)__exittext_begin &&
+		addr < (unsigned long)__exittext_end;
+}
+
+static bool is_image_text(unsigned long addr)
+{
+	return core_kernel_text(addr) || is_exit_text(addr);
+}
+
 static void __kprobes *patch_map(void *addr, int fixmap)
 {
 	unsigned long uintaddr = (uintptr_t) addr;
-	bool module = !core_kernel_text(uintaddr);
+	bool image = is_image_text(uintaddr);
 	struct page *page;
 
-	if (module && IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
-		page = vmalloc_to_page(addr);
-	else if (!module)
+	if (image)
 		page = phys_to_page(__pa_symbol(addr));
+	else if (IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
+		page = vmalloc_to_page(addr);
 	else
 		return addr;
 
@@ -193,8 +207,8 @@
 	int i, ret = 0;
 	struct aarch64_insn_patch *pp = arg;
 
-	/* The first CPU becomes master */
-	if (atomic_inc_return(&pp->cpu_count) == 1) {
+	/* The last CPU becomes master */
+	if (atomic_inc_return(&pp->cpu_count) == num_online_cpus()) {
 		for (i = 0; ret == 0 && i < pp->insn_cnt; i++)
 			ret = aarch64_insn_patch_text_nosync(pp->text_addrs[i],
 							     pp->new_insns[i]);
@@ -1508,16 +1522,10 @@
 				    u32 insn)
 {
 	unsigned int immr, imms, n, ones, ror, esz, tmp;
-	u64 mask = ~0UL;
-
-	/* Can't encode full zeroes or full ones */
-	if (!imm || !~imm)
-		return AARCH64_BREAK_FAULT;
+	u64 mask;
 
 	switch (variant) {
 	case AARCH64_INSN_VARIANT_32BIT:
-		if (upper_32_bits(imm))
-			return AARCH64_BREAK_FAULT;
 		esz = 32;
 		break;
 	case AARCH64_INSN_VARIANT_64BIT:
@@ -1529,6 +1537,12 @@
 		return AARCH64_BREAK_FAULT;
 	}
 
+	mask = GENMASK(esz - 1, 0);
+
+	/* Can't encode full zeroes, full ones, or value wider than the mask */
+	if (!imm || imm == mask || imm & ~mask)
+		return AARCH64_BREAK_FAULT;
+
 	/*
 	 * Inverse of Replicate(). Try to spot a repeating pattern
 	 * with a pow2 stride.
--- linux-ein-5.4.0.orig/arch/arm64/kernel/kgdb.c
+++ linux-ein-5.4.0/arch/arm64/kernel/kgdb.c
@@ -223,6 +223,8 @@
 		 */
 		if (!kernel_active_single_step())
 			kernel_enable_single_step(linux_regs);
+		else
+			kernel_rewind_single_step(linux_regs);
 		err = 0;
 		break;
 	default:
@@ -252,7 +254,7 @@
 	if (!kgdb_single_step)
 		return DBG_HOOK_ERROR;
 
-	kgdb_handle_exception(1, SIGTRAP, 0, regs);
+	kgdb_handle_exception(0, SIGTRAP, 0, regs);
 	return DBG_HOOK_HANDLED;
 }
 NOKPROBE_SYMBOL(kgdb_step_brk_fn);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/machine_kexec.c
+++ linux-ein-5.4.0/arch/arm64/kernel/machine_kexec.c
@@ -189,6 +189,7 @@
 	 * the offline CPUs. Therefore, we must use the __* variant here.
 	 */
 	__flush_icache_range((uintptr_t)reboot_code_buffer,
+			     (uintptr_t)reboot_code_buffer +
 			     arm64_relocate_new_kernel_size);
 
 	/* Flush the kimage list and its buffers. */
--- linux-ein-5.4.0.orig/arch/arm64/kernel/machine_kexec_file.c
+++ linux-ein-5.4.0/arch/arm64/kernel/machine_kexec_file.c
@@ -150,8 +150,10 @@
 
 		/* duplicate a device tree blob */
 		ret = fdt_open_into(initial_boot_params, buf, buf_size);
-		if (ret)
+		if (ret) {
+			vfree(buf);
 			return -EINVAL;
+		}
 
 		ret = setup_dtb(image, initrd_load_addr, initrd_len,
 				cmdline, buf);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/module-plts.c
+++ linux-ein-5.4.0/arch/arm64/kernel/module-plts.c
@@ -270,8 +270,7 @@
 			mod->arch.core.plt_shndx = i;
 		else if (!strcmp(secstrings + sechdrs[i].sh_name, ".init.plt"))
 			mod->arch.init.plt_shndx = i;
-		else if (IS_ENABLED(CONFIG_DYNAMIC_FTRACE) &&
-			 !strcmp(secstrings + sechdrs[i].sh_name,
+		else if (!strcmp(secstrings + sechdrs[i].sh_name,
 				 ".text.ftrace_trampoline"))
 			tramp = sechdrs + i;
 		else if (sechdrs[i].sh_type == SHT_SYMTAB)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/module.c
+++ linux-ein-5.4.0/arch/arm64/kernel/module.c
@@ -9,6 +9,7 @@
 
 #include <linux/bitops.h>
 #include <linux/elf.h>
+#include <linux/ftrace.h>
 #include <linux/gfp.h>
 #include <linux/kasan.h>
 #include <linux/kernel.h>
@@ -470,22 +471,48 @@
 	return -ENOEXEC;
 }
 
-int module_finalize(const Elf_Ehdr *hdr,
-		    const Elf_Shdr *sechdrs,
-		    struct module *me)
+static const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
+				    const Elf_Shdr *sechdrs,
+				    const char *name)
 {
 	const Elf_Shdr *s, *se;
 	const char *secstrs = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
 
 	for (s = sechdrs, se = sechdrs + hdr->e_shnum; s < se; s++) {
-		if (strcmp(".altinstructions", secstrs + s->sh_name) == 0)
-			apply_alternatives_module((void *)s->sh_addr, s->sh_size);
-#ifdef CONFIG_ARM64_MODULE_PLTS
-		if (IS_ENABLED(CONFIG_DYNAMIC_FTRACE) &&
-		    !strcmp(".text.ftrace_trampoline", secstrs + s->sh_name))
-			me->arch.ftrace_trampoline = (void *)s->sh_addr;
-#endif
+		if (strcmp(name, secstrs + s->sh_name) == 0)
+			return s;
 	}
 
+	return NULL;
+}
+
+static int module_init_ftrace_plt(const Elf_Ehdr *hdr,
+				  const Elf_Shdr *sechdrs,
+				  struct module *mod)
+{
+#if defined(CONFIG_ARM64_MODULE_PLTS) && defined(CONFIG_DYNAMIC_FTRACE)
+	const Elf_Shdr *s;
+	struct plt_entry *plt;
+
+	s = find_section(hdr, sechdrs, ".text.ftrace_trampoline");
+	if (!s)
+		return -ENOEXEC;
+
+	plt = (void *)s->sh_addr;
+	*plt = get_plt_entry(FTRACE_ADDR, plt);
+	mod->arch.ftrace_trampoline = plt;
+#endif
 	return 0;
 }
+
+int module_finalize(const Elf_Ehdr *hdr,
+		    const Elf_Shdr *sechdrs,
+		    struct module *me)
+{
+	const Elf_Shdr *s;
+	s = find_section(hdr, sechdrs, ".altinstructions");
+	if (s)
+		apply_alternatives_module((void *)s->sh_addr, s->sh_size);
+
+	return module_init_ftrace_plt(hdr, sechdrs, me);
+}
--- linux-ein-5.4.0.orig/arch/arm64/kernel/module.lds
+++ linux-ein-5.4.0/arch/arm64/kernel/module.lds
@@ -1,5 +1,5 @@
 SECTIONS {
-	.plt (NOLOAD) : { BYTE(0) }
-	.init.plt (NOLOAD) : { BYTE(0) }
-	.text.ftrace_trampoline (NOLOAD) : { BYTE(0) }
+	.plt 0 : { BYTE(0) }
+	.init.plt 0 : { BYTE(0) }
+	.text.ftrace_trampoline 0 : { BYTE(0) }
 }
--- linux-ein-5.4.0.orig/arch/arm64/kernel/perf_callchain.c
+++ linux-ein-5.4.0/arch/arm64/kernel/perf_callchain.c
@@ -102,7 +102,9 @@
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -147,9 +149,10 @@
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe frame;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -160,18 +163,21 @@
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
--- linux-ein-5.4.0.orig/arch/arm64/kernel/perf_event.c
+++ linux-ein-5.4.0/arch/arm64/kernel/perf_event.c
@@ -155,7 +155,7 @@
 
 	pmu_attr = container_of(attr, struct perf_pmu_events_attr, attr);
 
-	return sprintf(page, "event=0x%03llx\n", pmu_attr->id);
+	return sprintf(page, "event=0x%04llx\n", pmu_attr->id);
 }
 
 #define ARMV8_EVENT_ATTR(name, config) \
@@ -303,10 +303,13 @@
 	    test_bit(pmu_attr->id, cpu_pmu->pmceid_bitmap))
 		return attr->mode;
 
-	pmu_attr->id -= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
-	if (pmu_attr->id < ARMV8_PMUV3_MAX_COMMON_EVENTS &&
-	    test_bit(pmu_attr->id, cpu_pmu->pmceid_ext_bitmap))
-		return attr->mode;
+	if (pmu_attr->id >= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE) {
+		u64 id = pmu_attr->id - ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
+
+		if (id < ARMV8_PMUV3_MAX_COMMON_EVENTS &&
+		    test_bit(id, cpu_pmu->pmceid_ext_bitmap))
+			return attr->mode;
+	}
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/arm64/kernel/perf_regs.c
+++ linux-ein-5.4.0/arch/arm64/kernel/perf_regs.c
@@ -15,15 +15,34 @@
 		return 0;
 
 	/*
-	 * Compat (i.e. 32 bit) mode:
-	 * - PC has been set in the pt_regs struct in kernel_entry,
-	 * - Handle SP and LR here.
+	 * Our handling of compat tasks (PERF_SAMPLE_REGS_ABI_32) is weird, but
+	 * we're stuck with it for ABI compatability reasons.
+	 *
+	 * For a 32-bit consumer inspecting a 32-bit task, then it will look at
+	 * the first 16 registers (see arch/arm/include/uapi/asm/perf_regs.h).
+	 * These correspond directly to a prefix of the registers saved in our
+	 * 'struct pt_regs', with the exception of the PC, so we copy that down
+	 * (x15 corresponds to SP_hyp in the architecture).
+	 *
+	 * So far, so good.
+	 *
+	 * The oddity arises when a 64-bit consumer looks at a 32-bit task and
+	 * asks for registers beyond PERF_REG_ARM_MAX. In this case, we return
+	 * SP_usr, LR_usr and PC in the positions where the AArch64 SP, LR and
+	 * PC registers would normally live. The initial idea was to allow a
+	 * 64-bit unwinder to unwind a 32-bit task and, although it's not clear
+	 * how well that works in practice, somebody might be relying on it.
+	 *
+	 * At the time we make a sample, we don't know whether the consumer is
+	 * 32-bit or 64-bit, so we have to cater for both possibilities.
 	 */
 	if (compat_user_mode(regs)) {
 		if ((u32)idx == PERF_REG_ARM64_SP)
 			return regs->compat_sp;
 		if ((u32)idx == PERF_REG_ARM64_LR)
 			return regs->compat_lr;
+		if (idx == 15)
+			return regs->pc;
 	}
 
 	if ((u32)idx == PERF_REG_ARM64_SP)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/probes/kprobes.c
+++ linux-ein-5.4.0/arch/arm64/kernel/probes/kprobes.c
@@ -36,25 +36,16 @@
 static void __kprobes
 post_kprobe_handler(struct kprobe_ctlblk *, struct pt_regs *);
 
-static int __kprobes patch_text(kprobe_opcode_t *addr, u32 opcode)
-{
-	void *addrs[1];
-	u32 insns[1];
-
-	addrs[0] = addr;
-	insns[0] = opcode;
-
-	return aarch64_insn_patch_text(addrs, insns, 1);
-}
-
 static void __kprobes arch_prepare_ss_slot(struct kprobe *p)
 {
+	kprobe_opcode_t *addr = p->ainsn.api.insn;
+	void *addrs[] = {addr, addr + 1};
+	u32 insns[] = {p->opcode, BRK64_OPCODE_KPROBES_SS};
+
 	/* prepare insn slot */
-	patch_text(p->ainsn.api.insn, p->opcode);
+	aarch64_insn_patch_text(addrs, insns, 2);
 
-	flush_icache_range((uintptr_t) (p->ainsn.api.insn),
-			   (uintptr_t) (p->ainsn.api.insn) +
-			   MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
+	flush_icache_range((uintptr_t)addr, (uintptr_t)(addr + MAX_INSN_SIZE));
 
 	/*
 	 * Needs restoring of return address after stepping xol.
@@ -134,13 +125,18 @@
 /* arm kprobe: install breakpoint in text */
 void __kprobes arch_arm_kprobe(struct kprobe *p)
 {
-	patch_text(p->addr, BRK64_OPCODE_KPROBES);
+	void *addr = p->addr;
+	u32 insn = BRK64_OPCODE_KPROBES;
+
+	aarch64_insn_patch_text(&addr, &insn, 1);
 }
 
 /* disarm kprobe: remove breakpoint from text */
 void __kprobes arch_disarm_kprobe(struct kprobe *p)
 {
-	patch_text(p->addr, p->opcode);
+	void *addr = p->addr;
+
+	aarch64_insn_patch_text(&addr, &p->opcode, 1);
 }
 
 void __kprobes arch_remove_kprobe(struct kprobe *p)
@@ -169,20 +165,15 @@
 }
 
 /*
- * Interrupts need to be disabled before single-step mode is set, and not
- * reenabled until after single-step mode ends.
- * Without disabling interrupt on local CPU, there is a chance of
- * interrupt occurrence in the period of exception return and  start of
- * out-of-line single-step, that result in wrongly single stepping
- * into the interrupt handler.
+ * Mask all of DAIF while executing the instruction out-of-line, to keep things
+ * simple and avoid nesting exceptions. Interrupts do have to be disabled since
+ * the kprobe state is per-CPU and doesn't get migrated.
  */
 static void __kprobes kprobes_save_local_irqflag(struct kprobe_ctlblk *kcb,
 						struct pt_regs *regs)
 {
 	kcb->saved_irqflag = regs->pstate & DAIF_MASK;
-	regs->pstate |= PSR_I_BIT;
-	/* Unmask PSTATE.D for enabling software step exceptions. */
-	regs->pstate &= ~PSR_D_BIT;
+	regs->pstate |= DAIF_MASK;
 }
 
 static void __kprobes kprobes_restore_local_irqflag(struct kprobe_ctlblk *kcb,
@@ -225,10 +216,7 @@
 		slot = (unsigned long)p->ainsn.api.insn;
 
 		set_ss_context(kcb, slot);	/* mark pending ss */
-
-		/* IRQs and single stepping do not mix well. */
 		kprobes_save_local_irqflag(kcb, regs);
-		kernel_enable_single_step(regs);
 		instruction_pointer_set(regs, slot);
 	} else {
 		/* insn simulation */
@@ -279,12 +267,8 @@
 	}
 	/* call post handler */
 	kcb->kprobe_status = KPROBE_HIT_SSDONE;
-	if (cur->post_handler)	{
-		/* post_handler can hit breakpoint and single step
-		 * again, so we enable D-flag for recursive exception.
-		 */
+	if (cur->post_handler)
 		cur->post_handler(cur, regs, 0);
-	}
 
 	reset_current_kprobe();
 }
@@ -308,8 +292,6 @@
 		if (!instruction_pointer(regs))
 			BUG();
 
-		kernel_disable_single_step();
-
 		if (kcb->kprobe_status == KPROBE_REENTER)
 			restore_previous_kprobe(kcb);
 		else
@@ -371,10 +353,6 @@
 			 * pre-handler and it returned non-zero, it will
 			 * modify the execution path and no need to single
 			 * stepping. Let's just reset current kprobe and exit.
-			 *
-			 * pre_handler can hit a breakpoint and can step thru
-			 * before return, keep PSTATE D-flag enabled until
-			 * pre_handler return back.
 			 */
 			if (!p->pre_handler || !p->pre_handler(p, regs)) {
 				setup_singlestep(p, regs, kcb, 0);
@@ -405,7 +383,7 @@
 }
 
 static int __kprobes
-kprobe_single_step_handler(struct pt_regs *regs, unsigned int esr)
+kprobe_breakpoint_ss_handler(struct pt_regs *regs, unsigned int esr)
 {
 	struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
 	int retval;
@@ -415,16 +393,15 @@
 
 	if (retval == DBG_HOOK_HANDLED) {
 		kprobes_restore_local_irqflag(kcb, regs);
-		kernel_disable_single_step();
-
 		post_kprobe_handler(kcb, regs);
 	}
 
 	return retval;
 }
 
-static struct step_hook kprobes_step_hook = {
-	.fn = kprobe_single_step_handler,
+static struct break_hook kprobes_break_ss_hook = {
+	.imm = KPROBES_BRK_SS_IMM,
+	.fn = kprobe_breakpoint_ss_handler,
 };
 
 static int __kprobes
@@ -568,7 +545,7 @@
 int __init arch_init_kprobes(void)
 {
 	register_kernel_break_hook(&kprobes_break_hook);
-	register_kernel_step_hook(&kprobes_step_hook);
+	register_kernel_break_hook(&kprobes_break_ss_hook);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/arm64/kernel/probes/uprobes.c
+++ linux-ein-5.4.0/arch/arm64/kernel/probes/uprobes.c
@@ -38,7 +38,7 @@
 
 	/* TODO: Currently we do not support AARCH32 instruction probing */
 	if (mm->context.flags & MMCF_AARCH32)
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	else if (!IS_ALIGNED(addr, AARCH64_INSN_SIZE))
 		return -EINVAL;
 
--- linux-ein-5.4.0.orig/arch/arm64/kernel/process.c
+++ linux-ein-5.4.0/arch/arm64/kernel/process.c
@@ -56,7 +56,7 @@
 
 #if defined(CONFIG_STACKPROTECTOR) && !defined(CONFIG_STACKPROTECTOR_PER_TASK)
 #include <linux/stackprotector.h>
-unsigned long __stack_chk_guard __read_mostly;
+unsigned long __stack_chk_guard __ro_after_init;
 EXPORT_SYMBOL(__stack_chk_guard);
 #endif
 
@@ -360,8 +360,8 @@
 
 asmlinkage void ret_from_fork(void) asm("ret_from_fork");
 
-int copy_thread(unsigned long clone_flags, unsigned long stack_start,
-		unsigned long stk_sz, struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long stack_start,
+		unsigned long stk_sz, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *childregs = task_pt_regs(p);
 
@@ -394,11 +394,11 @@
 		}
 
 		/*
-		 * If a TLS pointer was passed to clone (4th argument), use it
-		 * for the new thread.
+		 * If a TLS pointer was passed to clone, use it for the new
+		 * thread.
 		 */
 		if (clone_flags & CLONE_SETTLS)
-			p->thread.uw.tp_value = childregs->regs[3];
+			p->thread.uw.tp_value = tls;
 	} else {
 		memset(childregs, 0, sizeof(struct pt_regs));
 		childregs->pstate = PSR_MODE_EL1h;
@@ -466,6 +466,13 @@
 	if (unlikely(next->flags & PF_KTHREAD))
 		return;
 
+	/*
+	 * If all CPUs implement the SSBS extension, then we just need to
+	 * context-switch the PSTATE field.
+	 */
+	if (cpu_have_feature(cpu_feature(SSBS)))
+		return;
+
 	/* If the mitigation is enabled, then we leave SSBS clear. */
 	if ((arm64_get_ssbd_state() == ARM64_SSBD_FORCE_ENABLE) ||
 	    test_tsk_thread_flag(next, TIF_SSBD))
@@ -492,6 +499,30 @@
 }
 
 /*
+ * ARM erratum 1418040 handling, affecting the 32bit view of CNTVCT.
+ * Ensure access is disabled when switching to a 32bit task, ensure
+ * access is enabled when switching to a 64bit task.
+ */
+static void erratum_1418040_thread_switch(struct task_struct *next)
+{
+	if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) ||
+	    !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
+		return;
+
+	if (is_compat_thread(task_thread_info(next)))
+		sysreg_clear_set(cntkctl_el1, ARCH_TIMER_USR_VCT_ACCESS_EN, 0);
+	else
+		sysreg_clear_set(cntkctl_el1, 0, ARCH_TIMER_USR_VCT_ACCESS_EN);
+}
+
+static void erratum_1418040_new_exec(void)
+{
+	preempt_disable();
+	erratum_1418040_thread_switch(current);
+	preempt_enable();
+}
+
+/*
  * Thread switching.
  */
 __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
@@ -507,6 +538,7 @@
 	uao_thread_switch(next);
 	ptrauth_thread_switch(next);
 	ssbs_thread_switch(next);
+	erratum_1418040_thread_switch(next);
 
 	/*
 	 * Complete any pending TLB or cache maintenance on this CPU in case
@@ -565,6 +597,7 @@
 	current->mm->context.flags = is_compat_task() ? MMCF_AARCH32 : 0;
 
 	ptrauth_thread_init_user(current);
+	erratum_1418040_new_exec();
 }
 
 #ifdef CONFIG_ARM64_TAGGED_ADDR_ABI
--- linux-ein-5.4.0.orig/arch/arm64/kernel/psci.c
+++ linux-ein-5.4.0/arch/arm64/kernel/psci.c
@@ -66,7 +66,6 @@
 
 static void cpu_psci_cpu_die(unsigned int cpu)
 {
-	int ret;
 	/*
 	 * There are no known implementations of PSCI actually using the
 	 * power state field, pass a sensible default for now.
@@ -74,14 +73,13 @@
 	u32 state = PSCI_POWER_STATE_TYPE_POWER_DOWN <<
 		    PSCI_0_2_POWER_STATE_TYPE_SHIFT;
 
-	ret = psci_ops.cpu_off(state);
-
-	pr_crit("unable to power off CPU%u (%d)\n", cpu, ret);
+	psci_ops.cpu_off(state);
 }
 
 static int cpu_psci_cpu_kill(unsigned int cpu)
 {
-	int err, i;
+	int err;
+	unsigned long start, end;
 
 	if (!psci_ops.affinity_info)
 		return 0;
@@ -91,16 +89,18 @@
 	 * while it is dying. So, try again a few times.
 	 */
 
-	for (i = 0; i < 10; i++) {
+	start = jiffies;
+	end = start + msecs_to_jiffies(100);
+	do {
 		err = psci_ops.affinity_info(cpu_logical_map(cpu), 0);
 		if (err == PSCI_0_2_AFFINITY_LEVEL_OFF) {
-			pr_info("CPU%d killed.\n", cpu);
+			pr_info("CPU%d killed (polled %d ms)\n", cpu,
+				jiffies_to_msecs(jiffies - start));
 			return 0;
 		}
 
-		msleep(10);
-		pr_info("Retrying again to check for CPU kill\n");
-	}
+		usleep_range(100, 1000);
+	} while (time_before(jiffies, end));
 
 	pr_warn("CPU%d may not have shut down cleanly (AFFINITY_INFO reports %d)\n",
 			cpu, err);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/arm64/kernel/ptrace.c
@@ -615,6 +615,13 @@
 	return 0;
 }
 
+static int fpr_active(struct task_struct *target, const struct user_regset *regset)
+{
+	if (!system_supports_fpsimd())
+		return -ENODEV;
+	return regset->n;
+}
+
 /*
  * TODO: update fp accessors for lazy context switching (sync/flush hwstate)
  */
@@ -637,6 +644,9 @@
 		   unsigned int pos, unsigned int count,
 		   void *kbuf, void __user *ubuf)
 {
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	if (target == current)
 		fpsimd_preserve_current_state();
 
@@ -676,6 +686,9 @@
 {
 	int ret;
 
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	ret = __fpr_set(target, regset, pos, count, kbuf, ubuf, 0);
 	if (ret)
 		return ret;
@@ -1134,6 +1147,7 @@
 		 */
 		.size = sizeof(u32),
 		.align = sizeof(u32),
+		.active = fpr_active,
 		.get = fpr_get,
 		.set = fpr_set
 	},
@@ -1348,6 +1362,9 @@
 	compat_ulong_t fpscr;
 	int ret, vregs_end_pos;
 
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	uregs = &target->thread.uw.fpsimd_state;
 
 	if (target == current)
@@ -1381,6 +1398,9 @@
 	compat_ulong_t fpscr;
 	int ret, vregs_end_pos;
 
+	if (!system_supports_fpsimd())
+		return -EINVAL;
+
 	uregs = &target->thread.uw.fpsimd_state;
 
 	vregs_end_pos = VFP_STATE_SIZE - sizeof(compat_ulong_t);
@@ -1438,6 +1458,7 @@
 		.n = VFP_STATE_SIZE / sizeof(compat_ulong_t),
 		.size = sizeof(compat_ulong_t),
 		.align = sizeof(compat_ulong_t),
+		.active = fpr_active,
 		.get = compat_vfp_get,
 		.set = compat_vfp_set
 	},
@@ -1798,20 +1819,32 @@
 	saved_reg = regs->regs[regno];
 	regs->regs[regno] = dir;
 
-	if (dir == PTRACE_SYSCALL_EXIT)
+	if (dir == PTRACE_SYSCALL_ENTER) {
+		if (tracehook_report_syscall_entry(regs))
+			forget_syscall(regs);
+		regs->regs[regno] = saved_reg;
+	} else if (!test_thread_flag(TIF_SINGLESTEP)) {
 		tracehook_report_syscall_exit(regs, 0);
-	else if (tracehook_report_syscall_entry(regs))
-		forget_syscall(regs);
+		regs->regs[regno] = saved_reg;
+	} else {
+		regs->regs[regno] = saved_reg;
 
-	regs->regs[regno] = saved_reg;
+		/*
+		 * Signal a pseudo-step exception since we are stepping but
+		 * tracer modifications to the registers may have rewound the
+		 * state machine.
+		 */
+		tracehook_report_syscall_exit(regs, 1);
+	}
 }
 
 int syscall_trace_enter(struct pt_regs *regs)
 {
-	if (test_thread_flag(TIF_SYSCALL_TRACE) ||
-		test_thread_flag(TIF_SYSCALL_EMU)) {
+	unsigned long flags = READ_ONCE(current_thread_info()->flags);
+
+	if (flags & (_TIF_SYSCALL_EMU | _TIF_SYSCALL_TRACE)) {
 		tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
-		if (!in_syscall(regs) || test_thread_flag(TIF_SYSCALL_EMU))
+		if (flags & _TIF_SYSCALL_EMU)
 			return -1;
 	}
 
@@ -1830,12 +1863,14 @@
 
 void syscall_trace_exit(struct pt_regs *regs)
 {
+	unsigned long flags = READ_ONCE(current_thread_info()->flags);
+
 	audit_syscall_exit(regs);
 
-	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
-		trace_sys_exit(regs, regs_return_value(regs));
+	if (flags & _TIF_SYSCALL_TRACEPOINT)
+		trace_sys_exit(regs, syscall_get_return_value(current, regs));
 
-	if (test_thread_flag(TIF_SYSCALL_TRACE))
+	if (flags & (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP))
 		tracehook_report_syscall(regs, PTRACE_SYSCALL_EXIT);
 
 	rseq_syscall(regs);
@@ -1913,8 +1948,8 @@
  */
 int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task)
 {
-	if (!test_tsk_thread_flag(task, TIF_SINGLESTEP))
-		regs->pstate &= ~DBG_SPSR_SS;
+	/* https://lore.kernel.org/lkml/20191118131525.GA4180@willie-the-truck */
+	user_regs_reset_single_step(regs, task);
 
 	if (is_compat_thread(task_thread_info(task)))
 		return valid_compat_regs(regs);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/setup.c
+++ linux-ein-5.4.0/arch/arm64/kernel/setup.c
@@ -85,7 +85,7 @@
 void __init smp_setup_processor_id(void)
 {
 	u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
-	cpu_logical_map(0) = mpidr;
+	set_cpu_logical_map(0, mpidr);
 
 	/*
 	 * clear __my_cpu_offset on boot CPU to avoid hang caused by
@@ -276,6 +276,12 @@
 
 u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
 
+u64 cpu_logical_map(int cpu)
+{
+	return __cpu_logical_map[cpu];
+}
+EXPORT_SYMBOL_GPL(cpu_logical_map);
+
 void __init setup_arch(char **cmdline_p)
 {
 	init_mm.start_code = (unsigned long) _text;
@@ -350,7 +356,7 @@
 	 * faults in case uaccess_enable() is inadvertently called by the init
 	 * thread.
 	 */
-	init_task.thread_info.ttbr0 = __pa_symbol(empty_zero_page);
+	init_task.thread_info.ttbr0 = phys_to_ttbr(__pa_symbol(reserved_pg_dir));
 #endif
 
 #ifdef CONFIG_VT
--- linux-ein-5.4.0.orig/arch/arm64/kernel/signal.c
+++ linux-ein-5.4.0/arch/arm64/kernel/signal.c
@@ -29,6 +29,7 @@
 #include <asm/unistd.h>
 #include <asm/fpsimd.h>
 #include <asm/ptrace.h>
+#include <asm/syscall.h>
 #include <asm/signal32.h>
 #include <asm/traps.h>
 #include <asm/vdso.h>
@@ -782,7 +783,6 @@
  */
 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
 {
-	struct task_struct *tsk = current;
 	sigset_t *oldset = sigmask_to_save();
 	int usig = ksig->sig;
 	int ret;
@@ -806,14 +806,8 @@
 	 */
 	ret |= !valid_user_regs(&regs->user_regs, current);
 
-	/*
-	 * Fast forward the stepping logic so we step into the signal
-	 * handler.
-	 */
-	if (!ret)
-		user_fastforward_single_step(tsk);
-
-	signal_setup_done(ret, ksig, 0);
+	/* Step into the signal handler if we are stepping */
+	signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP));
 }
 
 /*
@@ -875,7 +869,7 @@
 		     retval == -ERESTART_RESTARTBLOCK ||
 		     (retval == -ERESTARTSYS &&
 		      !(ksig.ka.sa.sa_flags & SA_RESTART)))) {
-			regs->regs[0] = -EINTR;
+			syscall_set_return_value(current, regs, -EINTR, 0);
 			regs->pc = continue_addr;
 		}
 
--- linux-ein-5.4.0.orig/arch/arm64/kernel/smp.c
+++ linux-ein-5.4.0/arch/arm64/kernel/smp.c
@@ -215,6 +215,7 @@
 	if (system_uses_irq_prio_masking())
 		init_gic_priority_masking();
 
+	rcu_cpu_starting(cpu);
 	preempt_disable();
 	trace_hardirqs_off();
 
@@ -387,6 +388,7 @@
 
 	/* Mark this CPU absent */
 	set_cpu_present(cpu, 0);
+	rcu_report_dead(cpu);
 
 #ifdef CONFIG_HOTPLUG_CPU
 	update_cpu_boot_status(CPU_KILL_ME);
@@ -549,7 +551,7 @@
 		return;
 
 	/* map the logical cpu id to cpu MPIDR */
-	cpu_logical_map(cpu_count) = hwid;
+	set_cpu_logical_map(cpu_count, hwid);
 
 	cpu_madt_gicc[cpu_count] = *processor;
 
@@ -663,7 +665,7 @@
 			goto next;
 
 		pr_debug("cpu logical map 0x%llx\n", hwid);
-		cpu_logical_map(cpu_count) = hwid;
+		set_cpu_logical_map(cpu_count, hwid);
 
 		early_map_cpu_to_node(cpu_count, of_node_to_nid(dn));
 next:
@@ -704,7 +706,7 @@
 	for (i = 1; i < nr_cpu_ids; i++) {
 		if (cpu_logical_map(i) != INVALID_HWID) {
 			if (smp_cpu_setup(i))
-				cpu_logical_map(i) = INVALID_HWID;
+				set_cpu_logical_map(i, INVALID_HWID);
 		}
 	}
 }
@@ -955,11 +957,22 @@
 }
 #endif
 
+/*
+ * The number of CPUs online, not counting this CPU (which may not be
+ * fully online and so not counted in num_online_cpus()).
+ */
+static inline unsigned int num_other_online_cpus(void)
+{
+	unsigned int this_cpu_online = cpu_online(smp_processor_id());
+
+	return num_online_cpus() - this_cpu_online;
+}
+
 void smp_send_stop(void)
 {
 	unsigned long timeout;
 
-	if (num_online_cpus() > 1) {
+	if (num_other_online_cpus()) {
 		cpumask_t mask;
 
 		cpumask_copy(&mask, cpu_online_mask);
@@ -972,10 +985,10 @@
 
 	/* Wait up to one second for other CPUs to stop */
 	timeout = USEC_PER_SEC;
-	while (num_online_cpus() > 1 && timeout--)
+	while (num_other_online_cpus() && timeout--)
 		udelay(1);
 
-	if (num_online_cpus() > 1)
+	if (num_other_online_cpus())
 		pr_warning("SMP: failed to stop secondary CPUs %*pbl\n",
 			   cpumask_pr_args(cpu_online_mask));
 
@@ -998,7 +1011,11 @@
 
 	cpus_stopped = 1;
 
-	if (num_online_cpus() == 1) {
+	/*
+	 * If this cpu is the only one alive at this point in time, online or
+	 * not, there are no stop messages to be sent around, so just back out.
+	 */
+	if (num_other_online_cpus() == 0) {
 		sdei_mask_local_cpu();
 		return;
 	}
@@ -1006,7 +1023,7 @@
 	cpumask_copy(&mask, cpu_online_mask);
 	cpumask_clear_cpu(smp_processor_id(), &mask);
 
-	atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1);
+	atomic_set(&waiting_for_crash_ipi, num_other_online_cpus());
 
 	pr_crit("SMP: stopping secondary CPUs\n");
 	smp_cross_call(&mask, IPI_CPU_CRASH_STOP);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/sys_compat.c
+++ linux-ein-5.4.0/arch/arm64/kernel/sys_compat.c
@@ -8,6 +8,7 @@
  */
 
 #include <linux/compat.h>
+#include <linux/cpufeature.h>
 #include <linux/personality.h>
 #include <linux/sched.h>
 #include <linux/sched/signal.h>
@@ -17,6 +18,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/system_misc.h>
+#include <asm/tlbflush.h>
 #include <asm/unistd.h>
 
 static long
@@ -30,6 +32,15 @@
 		if (fatal_signal_pending(current))
 			return 0;
 
+		if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
+			/*
+			 * The workaround requires an inner-shareable tlbi.
+			 * We pick the reserved-ASID to minimise the impact.
+			 */
+			__tlbi(aside1is, __TLBI_VADDR(0, 0));
+			dsb(ish);
+		}
+
 		ret = __flush_cache_user_range(start, start + chunk);
 		if (ret)
 			return ret;
@@ -104,6 +115,6 @@
 		(compat_thumb_mode(regs) ? 2 : 4);
 
 	arm64_notify_die("Oops - bad compat syscall(2)", regs,
-			 SIGILL, ILL_ILLTRP, addr, scno);
+			 SIGILL, ILL_ILLTRP, addr, 0);
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/arm64/kernel/syscall.c
+++ linux-ein-5.4.0/arch/arm64/kernel/syscall.c
@@ -50,7 +50,7 @@
 		ret = do_ni_syscall(regs, scno);
 	}
 
-	regs->regs[0] = ret;
+	syscall_set_return_value(current, regs, 0, ret);
 }
 
 static inline bool has_syscall_work(unsigned long flags)
@@ -99,13 +99,13 @@
 	regs->syscallno = scno;
 
 	cortex_a76_erratum_1463225_svc_handler();
+	user_exit_irqoff();
 	local_daif_restore(DAIF_PROCCTX);
-	user_exit();
 
 	if (has_syscall_work(flags)) {
 		/* set default errno for user-issued syscall(-1) */
 		if (scno == NO_SYSCALL)
-			regs->regs[0] = -ENOSYS;
+			syscall_set_return_value(current, regs, -ENOSYS, 0);
 		scno = syscall_trace_enter(regs);
 		if (scno == NO_SYSCALL)
 			goto trace_exit;
@@ -121,7 +121,7 @@
 	if (!has_syscall_work(flags) && !IS_ENABLED(CONFIG_DEBUG_RSEQ)) {
 		local_daif_mask();
 		flags = current_thread_info()->flags;
-		if (!has_syscall_work(flags)) {
+		if (!has_syscall_work(flags) && !(flags & _TIF_SINGLESTEP)) {
 			/*
 			 * We're off to userspace, where interrupts are
 			 * always enabled after we restore the flags from
--- linux-ein-5.4.0.orig/arch/arm64/kernel/topology.c
+++ linux-ein-5.4.0/arch/arm64/kernel/topology.c
@@ -21,44 +21,6 @@
 #include <asm/cputype.h>
 #include <asm/topology.h>
 
-void store_cpu_topology(unsigned int cpuid)
-{
-	struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
-	u64 mpidr;
-
-	if (cpuid_topo->package_id != -1)
-		goto topology_populated;
-
-	mpidr = read_cpuid_mpidr();
-
-	/* Uniprocessor systems can rely on default topology values */
-	if (mpidr & MPIDR_UP_BITMASK)
-		return;
-
-	/* Create cpu topology mapping based on MPIDR. */
-	if (mpidr & MPIDR_MT_BITMASK) {
-		/* Multiprocessor system : Multi-threads per core */
-		cpuid_topo->thread_id  = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 1);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 2) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 8;
-	} else {
-		/* Multiprocessor system : Single-thread per core */
-		cpuid_topo->thread_id  = -1;
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 1) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 2) << 8 |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 16;
-	}
-
-	pr_debug("CPU%u: cluster %d core %d thread %d mpidr %#016llx\n",
-		 cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
-		 cpuid_topo->thread_id, mpidr);
-
-topology_populated:
-	update_siblings_masks(cpuid);
-}
-
 #ifdef CONFIG_ACPI
 static bool __init acpi_cpu_is_threaded(int cpu)
 {
--- linux-ein-5.4.0.orig/arch/arm64/kernel/traps.c
+++ linux-ein-5.4.0/arch/arm64/kernel/traps.c
@@ -202,7 +202,7 @@
 	raw_spin_unlock_irqrestore(&die_lock, flags);
 
 	if (ret != NOTIFY_STOP)
-		do_exit(SIGSEGV);
+		make_task_dead(SIGSEGV);
 }
 
 static void arm64_show_signal(int signo, const char *str)
@@ -470,6 +470,15 @@
 	int rt = ESR_ELx_SYS64_ISS_RT(esr);
 	unsigned long val = arm64_ftr_reg_user_value(&arm64_ftr_reg_ctrel0);
 
+	if (cpus_have_const_cap(ARM64_WORKAROUND_1542419)) {
+		/* Hide DIC so that we can trap the unnecessary maintenance...*/
+		val &= ~BIT(CTR_DIC_SHIFT);
+
+		/* ... and fake IminLine to reduce the number of traps. */
+		val &= ~CTR_IMINLINE_MASK;
+		val |= (PAGE_SHIFT - 2) & CTR_IMINLINE_MASK;
+	}
+
 	pt_regs_write_reg(regs, rt, val);
 
 	arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
--- linux-ein-5.4.0.orig/arch/arm64/kernel/vdso.c
+++ linux-ein-5.4.0/arch/arm64/kernel/vdso.c
@@ -260,18 +260,7 @@
 	if (ret)
 		return ret;
 
-	ret = aarch32_alloc_kuser_vdso_page();
-	if (ret) {
-		unsigned long c_vvar =
-			(unsigned long)page_to_virt(aarch32_vdso_pages[C_VVAR]);
-		unsigned long c_vdso =
-			(unsigned long)page_to_virt(aarch32_vdso_pages[C_VDSO]);
-
-		free_page(c_vvar);
-		free_page(c_vdso);
-	}
-
-	return ret;
+	return aarch32_alloc_kuser_vdso_page();
 }
 #else
 static int __aarch32_alloc_vdso_pages(void)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/vdso/Makefile
+++ linux-ein-5.4.0/arch/arm64/kernel/vdso/Makefile
@@ -32,7 +32,7 @@
 OBJECT_FILES_NON_STANDARD	:= y
 KCOV_INSTRUMENT			:= n
 
-CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny
+CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables
 
 ifneq ($(c-gettimeofday-y),)
   CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
--- linux-ein-5.4.0.orig/arch/arm64/kernel/vdso/vdso.lds.S
+++ linux-ein-5.4.0/arch/arm64/kernel/vdso/vdso.lds.S
@@ -28,6 +28,13 @@
 	.gnu.version_d	: { *(.gnu.version_d) }
 	.gnu.version_r	: { *(.gnu.version_r) }
 
+	/*
+	 * Discard .note.gnu.property sections which are unused and have
+	 * different alignment requirement from vDSO note sections.
+	 */
+	/DISCARD/	: {
+		*(.note.GNU-stack .note.gnu.property)
+	}
 	.note		: { *(.note.*) }		:text	:note
 
 	. = ALIGN(16);
@@ -48,7 +55,6 @@
 	PROVIDE(end = .);
 
 	/DISCARD/	: {
-		*(.note.GNU-stack)
 		*(.data .data.* .gnu.linkonce.d.* .sdata*)
 		*(.bss .sbss .dynbss .dynsbss)
 	}
--- linux-ein-5.4.0.orig/arch/arm64/kernel/vdso32/Makefile
+++ linux-ein-5.4.0/arch/arm64/kernel/vdso32/Makefile
@@ -32,7 +32,8 @@
 # As a result we set our own flags here.
 
 # KBUILD_CPPFLAGS and NOSTDINC_FLAGS from top-level Makefile
-VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc -isystem $(shell $(CC_COMPAT) -print-file-name=include)
+VDSO_CPPFLAGS := -D__KERNEL__ -nostdinc
+VDSO_CPPFLAGS += -isystem $(shell $(CC_COMPAT) -print-file-name=include 2>/dev/null)
 VDSO_CPPFLAGS += $(LINUXINCLUDE)
 
 # Common C and assembly flags
@@ -190,7 +191,7 @@
       cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
 
 # Install commands for the unstripped file
-quiet_cmd_vdso_install = INSTALL $@
+quiet_cmd_vdso_install = INSTALL32 $@
       cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/vdso32.so
 
 vdso.so: $(obj)/vdso.so.dbg
--- linux-ein-5.4.0.orig/arch/arm64/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/arm64/kernel/vmlinux.lds.S
@@ -24,6 +24,13 @@
 
 jiffies = jiffies_64;
 
+
+#define HYPERVISOR_EXTABLE					\
+	. = ALIGN(SZ_8);					\
+	__start___kvm_ex_table = .;				\
+	*(__kvm_ex_table)					\
+	__stop___kvm_ex_table = .;
+
 #define HYPERVISOR_TEXT					\
 	/*						\
 	 * Align to 4 KB so that			\
@@ -39,6 +46,7 @@
 	__hyp_idmap_text_end = .;			\
 	__hyp_text_start = .;				\
 	*(.hyp.text)					\
+	HYPERVISOR_EXTABLE				\
 	__hyp_text_end = .;
 
 #define IDMAP_TEXT					\
@@ -142,28 +150,30 @@
 	. = ALIGN(PAGE_SIZE);
 	idmap_pg_dir = .;
 	. += IDMAP_DIR_SIZE;
+	idmap_pg_end = .;
 
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
 	tramp_pg_dir = .;
 	. += PAGE_SIZE;
 #endif
 
-#ifdef CONFIG_ARM64_SW_TTBR0_PAN
-	reserved_ttbr0 = .;
-	. += RESERVED_TTBR0_SIZE;
-#endif
+	reserved_pg_dir = .;
+	. += PAGE_SIZE;
+
 	swapper_pg_dir = .;
 	. += PAGE_SIZE;
-	swapper_pg_end = .;
 
 	. = ALIGN(SEGMENT_ALIGN);
 	__init_begin = .;
 	__inittext_begin = .;
 
 	INIT_TEXT_SECTION(8)
+
+	__exittext_begin = .;
 	.exit.text : {
 		ARM_EXIT_KEEP(EXIT_TEXT)
 	}
+	__exittext_end = .;
 
 	. = ALIGN(4);
 	.altinstructions : {
@@ -171,9 +181,6 @@
 		*(.altinstructions)
 		__alt_instructions_end = .;
 	}
-	.altinstr_replacement : {
-		*(.altinstr_replacement)
-	}
 
 	. = ALIGN(PAGE_SIZE);
 	__inittext_end = .;
@@ -269,7 +276,7 @@
 	<= SZ_4K, "Hibernate exit text too big or misaligned")
 #endif
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
-ASSERT((__entry_tramp_text_end - __entry_tramp_text_start) == PAGE_SIZE,
+ASSERT((__entry_tramp_text_end - __entry_tramp_text_start) <= 3*PAGE_SIZE,
 	"Entry trampoline text too big")
 #endif
 /*
--- linux-ein-5.4.0.orig/arch/arm64/kvm/debug.c
+++ linux-ein-5.4.0/arch/arm64/kvm/debug.c
@@ -69,6 +69,64 @@
 }
 
 /**
+ * kvm_arm_setup_mdcr_el2 - configure vcpu mdcr_el2 value
+ *
+ * @vcpu:	the vcpu pointer
+ *
+ * This ensures we will trap access to:
+ *  - Performance monitors (MDCR_EL2_TPM/MDCR_EL2_TPMCR)
+ *  - Debug ROM Address (MDCR_EL2_TDRA)
+ *  - OS related registers (MDCR_EL2_TDOSA)
+ *  - Statistical profiler (MDCR_EL2_TPMS/MDCR_EL2_E2PB)
+ *  - Self-hosted Trace Filter controls (MDCR_EL2_TTRF)
+ */
+static void kvm_arm_setup_mdcr_el2(struct kvm_vcpu *vcpu)
+{
+	/*
+	 * This also clears MDCR_EL2_E2PB_MASK to disable guest access
+	 * to the profiling buffer.
+	 */
+	vcpu->arch.mdcr_el2 = __this_cpu_read(mdcr_el2) & MDCR_EL2_HPMN_MASK;
+	vcpu->arch.mdcr_el2 |= (MDCR_EL2_TPM |
+				MDCR_EL2_TPMS |
+				MDCR_EL2_TTRF |
+				MDCR_EL2_TPMCR |
+				MDCR_EL2_TDRA |
+				MDCR_EL2_TDOSA);
+
+	/* Is the VM being debugged by userspace? */
+	if (vcpu->guest_debug)
+		/* Route all software debug exceptions to EL2 */
+		vcpu->arch.mdcr_el2 |= MDCR_EL2_TDE;
+
+	/*
+	 * Trap debug register access when one of the following is true:
+	 *  - Userspace is using the hardware to debug the guest
+	 *  (KVM_GUESTDBG_USE_HW is set).
+	 *  - The guest is not using debug (KVM_ARM64_DEBUG_DIRTY is clear).
+	 */
+	if ((vcpu->guest_debug & KVM_GUESTDBG_USE_HW) ||
+	    !(vcpu->arch.flags & KVM_ARM64_DEBUG_DIRTY))
+		vcpu->arch.mdcr_el2 |= MDCR_EL2_TDA;
+
+	trace_kvm_arm_set_dreg32("MDCR_EL2", vcpu->arch.mdcr_el2);
+}
+
+/**
+ * kvm_arm_vcpu_init_debug - setup vcpu debug traps
+ *
+ * @vcpu:	the vcpu pointer
+ *
+ * Set vcpu initial mdcr_el2 value.
+ */
+void kvm_arm_vcpu_init_debug(struct kvm_vcpu *vcpu)
+{
+	preempt_disable();
+	kvm_arm_setup_mdcr_el2(vcpu);
+	preempt_enable();
+}
+
+/**
  * kvm_arm_reset_debug_ptr - reset the debug ptr to point to the vcpu state
  */
 
@@ -83,12 +141,7 @@
  * @vcpu:	the vcpu pointer
  *
  * This is called before each entry into the hypervisor to setup any
- * debug related registers. Currently this just ensures we will trap
- * access to:
- *  - Performance monitors (MDCR_EL2_TPM/MDCR_EL2_TPMCR)
- *  - Debug ROM Address (MDCR_EL2_TDRA)
- *  - OS related registers (MDCR_EL2_TDOSA)
- *  - Statistical profiler (MDCR_EL2_TPMS/MDCR_EL2_E2PB)
+ * debug related registers.
  *
  * Additionally, KVM only traps guest accesses to the debug registers if
  * the guest is not actively using them (see the KVM_ARM64_DEBUG_DIRTY
@@ -100,27 +153,14 @@
 
 void kvm_arm_setup_debug(struct kvm_vcpu *vcpu)
 {
-	bool trap_debug = !(vcpu->arch.flags & KVM_ARM64_DEBUG_DIRTY);
-	unsigned long mdscr;
+	unsigned long mdscr, orig_mdcr_el2 = vcpu->arch.mdcr_el2;
 
 	trace_kvm_arm_setup_debug(vcpu, vcpu->guest_debug);
 
-	/*
-	 * This also clears MDCR_EL2_E2PB_MASK to disable guest access
-	 * to the profiling buffer.
-	 */
-	vcpu->arch.mdcr_el2 = __this_cpu_read(mdcr_el2) & MDCR_EL2_HPMN_MASK;
-	vcpu->arch.mdcr_el2 |= (MDCR_EL2_TPM |
-				MDCR_EL2_TPMS |
-				MDCR_EL2_TPMCR |
-				MDCR_EL2_TDRA |
-				MDCR_EL2_TDOSA);
+	kvm_arm_setup_mdcr_el2(vcpu);
 
 	/* Is Guest debugging in effect? */
 	if (vcpu->guest_debug) {
-		/* Route all software debug exceptions to EL2 */
-		vcpu->arch.mdcr_el2 |= MDCR_EL2_TDE;
-
 		/* Save guest debug state */
 		save_guest_debug_regs(vcpu);
 
@@ -174,7 +214,6 @@
 
 			vcpu->arch.debug_ptr = &vcpu->arch.external_debug_state;
 			vcpu->arch.flags |= KVM_ARM64_DEBUG_DIRTY;
-			trap_debug = true;
 
 			trace_kvm_arm_set_regset("BKPTS", get_num_brps(),
 						&vcpu->arch.debug_ptr->dbg_bcr[0],
@@ -189,15 +228,14 @@
 	BUG_ON(!vcpu->guest_debug &&
 		vcpu->arch.debug_ptr != &vcpu->arch.vcpu_debug_state);
 
-	/* Trap debug register access */
-	if (trap_debug)
-		vcpu->arch.mdcr_el2 |= MDCR_EL2_TDA;
-
 	/* If KDE or MDE are set, perform a full save/restore cycle. */
 	if (vcpu_read_sys_reg(vcpu, MDSCR_EL1) & (DBG_MDSCR_KDE | DBG_MDSCR_MDE))
 		vcpu->arch.flags |= KVM_ARM64_DEBUG_DIRTY;
 
-	trace_kvm_arm_set_dreg32("MDCR_EL2", vcpu->arch.mdcr_el2);
+	/* Write mdcr_el2 changes since vcpu_load on VHE systems */
+	if (has_vhe() && orig_mdcr_el2 != vcpu->arch.mdcr_el2)
+		write_sysreg(vcpu->arch.mdcr_el2, mdcr_el2);
+
 	trace_kvm_arm_set_dreg32("MDSCR_EL1", vcpu_read_sys_reg(vcpu, MDSCR_EL1));
 }
 
--- linux-ein-5.4.0.orig/arch/arm64/kvm/guest.c
+++ linux-ein-5.4.0/arch/arm64/kvm/guest.c
@@ -202,6 +202,13 @@
 	}
 
 	memcpy((u32 *)regs + off, valp, KVM_REG_SIZE(reg->id));
+
+	if (*vcpu_cpsr(vcpu) & PSR_MODE32_BIT) {
+		int i;
+
+		for (i = 0; i < 16; i++)
+			*vcpu_reg32(vcpu, i) = (u32)*vcpu_reg32(vcpu, i);
+	}
 out:
 	return err;
 }
--- linux-ein-5.4.0.orig/arch/arm64/kvm/handle_exit.c
+++ linux-ein-5.4.0/arch/arm64/kvm/handle_exit.c
@@ -162,31 +162,16 @@
 	return 1;
 }
 
-#define __ptrauth_save_key(regs, key)						\
-({										\
-	regs[key ## KEYLO_EL1] = read_sysreg_s(SYS_ ## key ## KEYLO_EL1);	\
-	regs[key ## KEYHI_EL1] = read_sysreg_s(SYS_ ## key ## KEYHI_EL1);	\
-})
-
 /*
  * Handle the guest trying to use a ptrauth instruction, or trying to access a
  * ptrauth register.
  */
 void kvm_arm_vcpu_ptrauth_trap(struct kvm_vcpu *vcpu)
 {
-	struct kvm_cpu_context *ctxt;
-
-	if (vcpu_has_ptrauth(vcpu)) {
+	if (vcpu_has_ptrauth(vcpu))
 		vcpu_ptrauth_enable(vcpu);
-		ctxt = vcpu->arch.host_cpu_context;
-		__ptrauth_save_key(ctxt->sys_regs, APIA);
-		__ptrauth_save_key(ctxt->sys_regs, APIB);
-		__ptrauth_save_key(ctxt->sys_regs, APDA);
-		__ptrauth_save_key(ctxt->sys_regs, APDB);
-		__ptrauth_save_key(ctxt->sys_regs, APGA);
-	} else {
+	else
 		kvm_inject_undefined(vcpu);
-	}
 }
 
 /*
--- linux-ein-5.4.0.orig/arch/arm64/kvm/hyp-init.S
+++ linux-ein-5.4.0/arch/arm64/kvm/hyp-init.S
@@ -136,11 +136,15 @@
 
 1:	cmp	x0, #HVC_RESET_VECTORS
 	b.ne	1f
-reset:
+
 	/*
-	 * Reset kvm back to the hyp stub. Do not clobber x0-x4 in
-	 * case we coming via HVC_SOFT_RESTART.
+	 * Set the HVC_RESET_VECTORS return code before entering the common
+	 * path so that we do not clobber x0-x2 in case we are coming via
+	 * HVC_SOFT_RESTART.
 	 */
+	mov	x0, xzr
+reset:
+	/* Reset kvm back to the hyp stub. */
 	mrs	x5, sctlr_el2
 	ldr	x6, =SCTLR_ELx_FLAGS
 	bic	x5, x5, x6		// Clear SCTL_M and etc
@@ -151,7 +155,6 @@
 	/* Install stub vectors */
 	adr_l	x5, __hyp_stub_vectors
 	msr	vbar_el2, x5
-	mov	x0, xzr
 	eret
 
 1:	/* Bad stub call */
--- linux-ein-5.4.0.orig/arch/arm64/kvm/hyp/debug-sr.c
+++ linux-ein-5.4.0/arch/arm64/kvm/hyp/debug-sr.c
@@ -168,6 +168,21 @@
 	write_sysreg(ctxt->sys_regs[MDCCINT_EL1], mdccint_el1);
 }
 
+void __hyp_text __debug_save_host_buffers_nvhe(struct kvm_vcpu *vcpu)
+{
+	/*
+	 * Non-VHE: Disable and flush SPE data generation
+	 * VHE: The vcpu can run, but it can't hide.
+	 */
+	__debug_save_spe_nvhe(&vcpu->arch.host_debug_state.pmscr_el1);
+
+}
+
+void __hyp_text __debug_restore_host_buffers_nvhe(struct kvm_vcpu *vcpu)
+{
+	__debug_restore_spe_nvhe(vcpu->arch.host_debug_state.pmscr_el1);
+}
+
 void __hyp_text __debug_switch_to_guest(struct kvm_vcpu *vcpu)
 {
 	struct kvm_cpu_context *host_ctxt;
@@ -175,13 +190,6 @@
 	struct kvm_guest_debug_arch *host_dbg;
 	struct kvm_guest_debug_arch *guest_dbg;
 
-	/*
-	 * Non-VHE: Disable and flush SPE data generation
-	 * VHE: The vcpu can run, but it can't hide.
-	 */
-	if (!has_vhe())
-		__debug_save_spe_nvhe(&vcpu->arch.host_debug_state.pmscr_el1);
-
 	if (!(vcpu->arch.flags & KVM_ARM64_DEBUG_DIRTY))
 		return;
 
@@ -201,8 +209,6 @@
 	struct kvm_guest_debug_arch *host_dbg;
 	struct kvm_guest_debug_arch *guest_dbg;
 
-	if (!has_vhe())
-		__debug_restore_spe_nvhe(vcpu->arch.host_debug_state.pmscr_el1);
 
 	if (!(vcpu->arch.flags & KVM_ARM64_DEBUG_DIRTY))
 		return;
--- linux-ein-5.4.0.orig/arch/arm64/kvm/hyp/entry.S
+++ linux-ein-5.4.0/arch/arm64/kvm/hyp/entry.S
@@ -173,20 +173,23 @@
 	// This is our single instruction exception window. A pending
 	// SError is guaranteed to occur at the earliest when we unmask
 	// it, and at the latest just after the ISB.
-	.global	abort_guest_exit_start
 abort_guest_exit_start:
 
 	isb
 
-	.global	abort_guest_exit_end
 abort_guest_exit_end:
 
 	msr	daifset, #4	// Mask aborts
+	ret
 
-	// If the exception took place, restore the EL1 exception
-	// context so that we can report some information.
-	// Merge the exception code with the SError pending bit.
-	tbz	x0, #ARM_EXIT_WITH_SERROR_BIT, 1f
+	_kvm_extable	abort_guest_exit_start, 9997f
+	_kvm_extable	abort_guest_exit_end, 9997f
+9997:
+	msr	daifset, #4	// Mask aborts
+	mov	x0, #(1 << ARM_EXIT_WITH_SERROR_BIT)
+
+	// restore the EL1 exception context so that we can report some
+	// information. Merge the exception code with the SError pending bit.
 	msr	elr_el2, x2
 	msr	esr_el2, x3
 	msr	spsr_el2, x4
--- linux-ein-5.4.0.orig/arch/arm64/kvm/hyp/hyp-entry.S
+++ linux-ein-5.4.0/arch/arm64/kvm/hyp/hyp-entry.S
@@ -15,6 +15,30 @@
 #include <asm/kvm_mmu.h>
 #include <asm/mmu.h>
 
+.macro save_caller_saved_regs_vect
+	/* x0 and x1 were saved in the vector entry */
+	stp	x2, x3,   [sp, #-16]!
+	stp	x4, x5,   [sp, #-16]!
+	stp	x6, x7,   [sp, #-16]!
+	stp	x8, x9,   [sp, #-16]!
+	stp	x10, x11, [sp, #-16]!
+	stp	x12, x13, [sp, #-16]!
+	stp	x14, x15, [sp, #-16]!
+	stp	x16, x17, [sp, #-16]!
+.endm
+
+.macro restore_caller_saved_regs_vect
+	ldp	x16, x17, [sp], #16
+	ldp	x14, x15, [sp], #16
+	ldp	x12, x13, [sp], #16
+	ldp	x10, x11, [sp], #16
+	ldp	x8, x9,   [sp], #16
+	ldp	x6, x7,   [sp], #16
+	ldp	x4, x5,   [sp], #16
+	ldp	x2, x3,   [sp], #16
+	ldp	x0, x1,   [sp], #16
+.endm
+
 	.text
 	.pushsection	.hyp.text, "ax"
 
@@ -89,6 +113,10 @@
 	/* ARM_SMCCC_ARCH_WORKAROUND_2 handling */
 	eor	w1, w1, #(ARM_SMCCC_ARCH_WORKAROUND_1 ^ \
 			  ARM_SMCCC_ARCH_WORKAROUND_2)
+	cbz	w1, wa_epilogue
+
+	eor	w1, w1, #(ARM_SMCCC_ARCH_WORKAROUND_2 ^ \
+			  ARM_SMCCC_ARCH_WORKAROUND_3)
 	cbnz	w1, el1_trap
 
 #ifdef CONFIG_ARM64_SSBD
@@ -142,13 +170,19 @@
 	b	__guest_exit
 
 el2_sync:
-	/* Check for illegal exception return, otherwise panic */
+	/* Check for illegal exception return */
 	mrs	x0, spsr_el2
+	tbnz	x0, #20, 1f
 
-	/* if this was something else, then panic! */
-	tst	x0, #PSR_IL_BIT
-	b.eq	__hyp_panic
+	save_caller_saved_regs_vect
+	stp     x29, x30, [sp, #-16]!
+	bl	kvm_unexpected_el2_exception
+	ldp     x29, x30, [sp], #16
+	restore_caller_saved_regs_vect
+
+	eret
 
+1:
 	/* Let's attempt a recovery from the illegal exception return */
 	get_vcpu_ptr	x1, x0
 	mov	x0, #ARM_EXCEPTION_IL
@@ -156,27 +190,14 @@
 
 
 el2_error:
-	ldp	x0, x1, [sp], #16
+	save_caller_saved_regs_vect
+	stp     x29, x30, [sp, #-16]!
+
+	bl	kvm_unexpected_el2_exception
+
+	ldp     x29, x30, [sp], #16
+	restore_caller_saved_regs_vect
 
-	/*
-	 * Only two possibilities:
-	 * 1) Either we come from the exit path, having just unmasked
-	 *    PSTATE.A: change the return code to an EL2 fault, and
-	 *    carry on, as we're already in a sane state to handle it.
-	 * 2) Or we come from anywhere else, and that's a bug: we panic.
-	 *
-	 * For (1), x0 contains the original return code and x1 doesn't
-	 * contain anything meaningful at that stage. We can reuse them
-	 * as temp registers.
-	 * For (2), who cares?
-	 */
-	mrs	x0, elr_el2
-	adr	x1, abort_guest_exit_start
-	cmp	x0, x1
-	adr	x1, abort_guest_exit_end
-	ccmp	x0, x1, #4, ne
-	b.ne	__hyp_panic
-	mov	x0, #(1 << ARM_EXIT_WITH_SERROR_BIT)
 	eret
 	sb
 
@@ -330,4 +351,64 @@
 	ldp	x0, x1, [sp, #(8 * 2)]
 	add	sp, sp, #(8 * 4)
 ENTRY(__smccc_workaround_1_smc_end)
+
+ENTRY(__smccc_workaround_3_smc_start)
+	esb
+	sub	sp, sp, #(8 * 4)
+	stp	x2, x3, [sp, #(8 * 0)]
+	stp	x0, x1, [sp, #(8 * 2)]
+	mov	w0, #ARM_SMCCC_ARCH_WORKAROUND_3
+	smc	#0
+	ldp	x2, x3, [sp, #(8 * 0)]
+	ldp	x0, x1, [sp, #(8 * 2)]
+	add	sp, sp, #(8 * 4)
+ENTRY(__smccc_workaround_3_smc_end)
+
+ENTRY(__spectre_bhb_loop_k8_start)
+	esb
+	sub	sp, sp, #(8 * 2)
+	stp	x0, x1, [sp, #(8 * 0)]
+	mov	x0, #8
+2:	b	. + 4
+	subs	x0, x0, #1
+	b.ne	2b
+	dsb	nsh
+	isb
+	ldp	x0, x1, [sp, #(8 * 0)]
+	add	sp, sp, #(8 * 2)
+ENTRY(__spectre_bhb_loop_k8_end)
+
+ENTRY(__spectre_bhb_loop_k24_start)
+	esb
+	sub	sp, sp, #(8 * 2)
+	stp	x0, x1, [sp, #(8 * 0)]
+	mov	x0, #8
+2:	b	. + 4
+	subs	x0, x0, #1
+	b.ne	2b
+	dsb	nsh
+	isb
+	ldp	x0, x1, [sp, #(8 * 0)]
+	add	sp, sp, #(8 * 2)
+ENTRY(__spectre_bhb_loop_k24_end)
+
+ENTRY(__spectre_bhb_loop_k32_start)
+	esb
+	sub	sp, sp, #(8 * 2)
+	stp	x0, x1, [sp, #(8 * 0)]
+	mov     x0, #8
+2:	b	. + 4
+	subs	x0, x0, #1
+	b.ne	2b
+	dsb	nsh
+	isb
+	ldp	x0, x1, [sp, #(8 * 0)]
+	add	sp, sp, #(8 * 2)
+ENTRY(__spectre_bhb_loop_k32_end)
+
+ENTRY(__spectre_bhb_clearbhb_start)
+	esb
+	clearbhb
+	isb
+ENTRY(__spectre_bhb_clearbhb_end)
 #endif
--- linux-ein-5.4.0.orig/arch/arm64/kvm/hyp/switch.c
+++ linux-ein-5.4.0/arch/arm64/kvm/hyp/switch.c
@@ -14,6 +14,7 @@
 
 #include <asm/arch_gicv3.h>
 #include <asm/cpufeature.h>
+#include <asm/extable.h>
 #include <asm/kprobes.h>
 #include <asm/kvm_asm.h>
 #include <asm/kvm_emulate.h>
@@ -24,11 +25,23 @@
 #include <asm/debug-monitors.h>
 #include <asm/processor.h>
 #include <asm/thread_info.h>
+#include <asm/vectors.h>
+
+extern struct exception_table_entry __start___kvm_ex_table;
+extern struct exception_table_entry __stop___kvm_ex_table;
 
 /* Check whether the FP regs were dirtied while in the host-side run loop: */
 static bool __hyp_text update_fp_enabled(struct kvm_vcpu *vcpu)
 {
-	if (vcpu->arch.host_thread_info->flags & _TIF_FOREIGN_FPSTATE)
+	/*
+	 * When the system doesn't support FP/SIMD, we cannot rely on
+	 * the _TIF_FOREIGN_FPSTATE flag. However, we always inject an
+	 * abort on the very first access to FP and thus we should never
+	 * see KVM_ARM64_FP_ENABLED. For added safety, make sure we always
+	 * trap the accesses.
+	 */
+	if (!system_supports_fpsimd() ||
+	    vcpu->arch.host_thread_info->flags & _TIF_FOREIGN_FPSTATE)
 		vcpu->arch.flags &= ~(KVM_ARM64_FP_ENABLED |
 				      KVM_ARM64_FP_HOST);
 
@@ -140,7 +153,7 @@
 
 static void deactivate_traps_vhe(void)
 {
-	extern char vectors[];	/* kernel exception vectors */
+	const char *host_vectors = vectors;
 	write_sysreg(HCR_HOST_VHE_FLAGS, hcr_el2);
 
 	/*
@@ -151,7 +164,10 @@
 	asm(ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_1165522));
 
 	write_sysreg(CPACR_EL1_DEFAULT, cpacr_el1);
-	write_sysreg(vectors, vbar_el1);
+
+	if (!arm64_kernel_unmapped_at_el0())
+		host_vectors = __this_cpu_read(this_cpu_vector);
+	write_sysreg(host_vectors, vbar_el1);
 }
 NOKPROBE_SYMBOL(deactivate_traps_vhe);
 
@@ -249,10 +265,10 @@
 	 * saved the guest context yet, and we may return early...
 	 */
 	par = read_sysreg(par_el1);
-	asm volatile("at s1e1r, %0" : : "r" (far));
-	isb();
-
-	tmp = read_sysreg(par_el1);
+	if (!__kvm_at("s1e1r", far))
+		tmp = read_sysreg(par_el1);
+	else
+		tmp = SYS_PAR_EL1_F; /* back to the guest */
 	write_sysreg(par, par_el1);
 
 	if (unlikely(tmp & SYS_PAR_EL1_F))
@@ -484,7 +500,7 @@
 			kvm_vcpu_trap_get_fault_type(vcpu) == FSC_FAULT &&
 			kvm_vcpu_dabt_isvalid(vcpu) &&
 			!kvm_vcpu_dabt_isextabt(vcpu) &&
-			!kvm_vcpu_dabt_iss1tw(vcpu);
+			!kvm_vcpu_abt_iss1tw(vcpu);
 
 		if (valid) {
 			int ret = __vgic_v2_perform_cpuif_access(vcpu);
@@ -670,6 +686,15 @@
 
 	__sysreg_save_state_nvhe(host_ctxt);
 
+	/*
+	 * We must flush and disable the SPE buffer for nVHE, as
+	 * the translation regime(EL1&0) is going to be loaded with
+	 * that of the guest. And we must do this before we change the
+	 * translation regime to EL2 (via MDCR_EL2_EPB == 0) and
+	 * before we load guest Stage1.
+	 */
+	__debug_save_host_buffers_nvhe(vcpu);
+
 	__activate_vm(kern_hyp_va(vcpu->kvm));
 	__activate_traps(vcpu);
 
@@ -708,11 +733,13 @@
 	if (vcpu->arch.flags & KVM_ARM64_FP_ENABLED)
 		__fpsimd_save_fpexc32(vcpu);
 
+	__debug_switch_to_host(vcpu);
+
 	/*
 	 * This must come after restoring the host sysregs, since a non-VHE
 	 * system may enable SPE here and make use of the TTBRs.
 	 */
-	__debug_switch_to_host(vcpu);
+	__debug_restore_host_buffers_nvhe(vcpu);
 
 	if (pmu_switch_needed)
 		__pmu_switch_to_host(host_ctxt);
@@ -746,7 +773,7 @@
 	 * making sure it is a kernel address and not a PC-relative
 	 * reference.
 	 */
-	asm volatile("ldr %0, =__hyp_panic_string" : "=r" (str_va));
+	asm volatile("ldr %0, =%1" : "=r" (str_va) : "S" (__hyp_panic_string));
 
 	__hyp_do_panic(str_va,
 		       spsr, elr,
@@ -783,3 +810,30 @@
 
 	unreachable();
 }
+
+asmlinkage void __hyp_text kvm_unexpected_el2_exception(void)
+{
+	unsigned long addr, fixup;
+	struct kvm_cpu_context *host_ctxt;
+	struct exception_table_entry *entry, *end;
+	unsigned long elr_el2 = read_sysreg(elr_el2);
+
+	entry = hyp_symbol_addr(__start___kvm_ex_table);
+	end = hyp_symbol_addr(__stop___kvm_ex_table);
+	host_ctxt = &__hyp_this_cpu_ptr(kvm_host_data)->host_ctxt;
+
+	while (entry < end) {
+		addr = (unsigned long)&entry->insn + entry->insn;
+		fixup = (unsigned long)&entry->fixup + entry->fixup;
+
+		if (addr != elr_el2) {
+			entry++;
+			continue;
+		}
+
+		write_sysreg(fixup, elr_el2);
+		return;
+	}
+
+	hyp_panic(host_ctxt);
+}
--- linux-ein-5.4.0.orig/arch/arm64/kvm/hyp/tlb.c
+++ linux-ein-5.4.0/arch/arm64/kvm/hyp/tlb.c
@@ -182,7 +182,7 @@
 	__tlb_switch_to_host(kvm, &cxt);
 }
 
-void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
+void __hyp_text __kvm_flush_cpu_context(struct kvm_vcpu *vcpu)
 {
 	struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
 	struct tlb_inv_context cxt;
@@ -191,6 +191,7 @@
 	__tlb_switch_to_guest(kvm, &cxt);
 
 	__tlbi(vmalle1);
+	asm volatile("ic iallu");
 	dsb(nsh);
 	isb();
 
--- linux-ein-5.4.0.orig/arch/arm64/kvm/inject_fault.c
+++ linux-ein-5.4.0/arch/arm64/kvm/inject_fault.c
@@ -14,9 +14,6 @@
 #include <asm/kvm_emulate.h>
 #include <asm/esr.h>
 
-#define PSTATE_FAULT_BITS_64 	(PSR_MODE_EL1h | PSR_A_BIT | PSR_F_BIT | \
-				 PSR_I_BIT | PSR_D_BIT)
-
 #define CURRENT_EL_SP_EL0_VECTOR	0x0
 #define CURRENT_EL_SP_ELx_VECTOR	0x200
 #define LOWER_EL_AArch64_VECTOR		0x400
@@ -50,6 +47,69 @@
 	return vcpu_read_sys_reg(vcpu, VBAR_EL1) + exc_offset + type;
 }
 
+/*
+ * When an exception is taken, most PSTATE fields are left unchanged in the
+ * handler. However, some are explicitly overridden (e.g. M[4:0]). Luckily all
+ * of the inherited bits have the same position in the AArch64/AArch32 SPSR_ELx
+ * layouts, so we don't need to shuffle these for exceptions from AArch32 EL0.
+ *
+ * For the SPSR_ELx layout for AArch64, see ARM DDI 0487E.a page C5-429.
+ * For the SPSR_ELx layout for AArch32, see ARM DDI 0487E.a page C5-426.
+ *
+ * Here we manipulate the fields in order of the AArch64 SPSR_ELx layout, from
+ * MSB to LSB.
+ */
+static unsigned long get_except64_pstate(struct kvm_vcpu *vcpu)
+{
+	unsigned long sctlr = vcpu_read_sys_reg(vcpu, SCTLR_EL1);
+	unsigned long old, new;
+
+	old = *vcpu_cpsr(vcpu);
+	new = 0;
+
+	new |= (old & PSR_N_BIT);
+	new |= (old & PSR_Z_BIT);
+	new |= (old & PSR_C_BIT);
+	new |= (old & PSR_V_BIT);
+
+	// TODO: TCO (if/when ARMv8.5-MemTag is exposed to guests)
+
+	new |= (old & PSR_DIT_BIT);
+
+	// PSTATE.UAO is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D5-2579.
+
+	// PSTATE.PAN is unchanged unless SCTLR_ELx.SPAN == 0b0
+	// SCTLR_ELx.SPAN is RES1 when ARMv8.1-PAN is not implemented
+	// See ARM DDI 0487E.a, page D5-2578.
+	new |= (old & PSR_PAN_BIT);
+	if (!(sctlr & SCTLR_EL1_SPAN))
+		new |= PSR_PAN_BIT;
+
+	// PSTATE.SS is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D2-2452.
+
+	// PSTATE.IL is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D1-2306.
+
+	// PSTATE.SSBS is set to SCTLR_ELx.DSSBS upon any exception to AArch64
+	// See ARM DDI 0487E.a, page D13-3258
+	if (sctlr & SCTLR_ELx_DSSBS)
+		new |= PSR_SSBS_BIT;
+
+	// PSTATE.BTYPE is set to zero upon any exception to AArch64
+	// See ARM DDI 0487E.a, pages D1-2293 to D1-2294.
+
+	new |= PSR_D_BIT;
+	new |= PSR_A_BIT;
+	new |= PSR_I_BIT;
+	new |= PSR_F_BIT;
+
+	new |= PSR_MODE_EL1h;
+
+	return new;
+}
+
 static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr)
 {
 	unsigned long cpsr = *vcpu_cpsr(vcpu);
@@ -59,7 +119,7 @@
 	vcpu_write_elr_el1(vcpu, *vcpu_pc(vcpu));
 	*vcpu_pc(vcpu) = get_except_vector(vcpu, except_type_sync);
 
-	*vcpu_cpsr(vcpu) = PSTATE_FAULT_BITS_64;
+	*vcpu_cpsr(vcpu) = get_except64_pstate(vcpu);
 	vcpu_write_spsr(vcpu, cpsr);
 
 	vcpu_write_sys_reg(vcpu, addr, FAR_EL1);
@@ -94,7 +154,7 @@
 	vcpu_write_elr_el1(vcpu, *vcpu_pc(vcpu));
 	*vcpu_pc(vcpu) = get_except_vector(vcpu, except_type_sync);
 
-	*vcpu_cpsr(vcpu) = PSTATE_FAULT_BITS_64;
+	*vcpu_cpsr(vcpu) = get_except64_pstate(vcpu);
 	vcpu_write_spsr(vcpu, cpsr);
 
 	/*
--- linux-ein-5.4.0.orig/arch/arm64/kvm/reset.c
+++ linux-ein-5.4.0/arch/arm64/kvm/reset.c
@@ -258,7 +258,7 @@
 int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
 {
 	const struct kvm_regs *cpu_reset;
-	int ret = -EINVAL;
+	int ret;
 	bool loaded;
 
 	/* Reset PMU outside of the non-preemptible section */
@@ -281,15 +281,19 @@
 
 	if (test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) ||
 	    test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features)) {
-		if (kvm_vcpu_enable_ptrauth(vcpu))
+		if (kvm_vcpu_enable_ptrauth(vcpu)) {
+			ret = -EINVAL;
 			goto out;
+		}
 	}
 
 	switch (vcpu->arch.target) {
 	default:
 		if (test_bit(KVM_ARM_VCPU_EL1_32BIT, vcpu->arch.features)) {
-			if (!cpu_has_32bit_el1())
+			if (!cpu_has_32bit_el1()) {
+				ret = -EINVAL;
 				goto out;
+			}
 			cpu_reset = &default_regs_reset32;
 		} else {
 			cpu_reset = &default_regs_reset;
@@ -374,10 +378,10 @@
 		pr_info("kvm: Limiting the IPA size due to kernel %s Address limit\n",
 			(va_max < pa_max) ? "Virtual" : "Physical");
 
-	WARN(ipa_max < KVM_PHYS_SHIFT,
-	     "KVM IPA limit (%d bit) is smaller than default size\n", ipa_max);
 	kvm_ipa_limit = ipa_max;
-	kvm_info("IPA Size Limit: %dbits\n", kvm_ipa_limit);
+	kvm_info("IPA Size Limit: %d bits%s\n", kvm_ipa_limit,
+		 ((kvm_ipa_limit < KVM_PHYS_SHIFT) ?
+		  " (Reduced IPA size, limited VM/VMM compatibility)" : ""));
 }
 
 /*
@@ -404,6 +408,11 @@
 			return -EINVAL;
 	} else {
 		phys_shift = KVM_PHYS_SHIFT;
+		if (phys_shift > kvm_ipa_limit) {
+			pr_warn_once("%s using unsupported default IPA limit, upgrade your VMM\n",
+				     current->comm);
+			return -EINVAL;
+		}
 	}
 
 	parange = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1) & 7;
--- linux-ein-5.4.0.orig/arch/arm64/kvm/sys_regs.c
+++ linux-ein-5.4.0/arch/arm64/kvm/sys_regs.c
@@ -432,14 +432,14 @@
 		     struct sys_reg_params *p,
 		     const struct sys_reg_desc *rd)
 {
-	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
+	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm];
 
 	if (p->is_write)
 		reg_to_dbg(vcpu, p, dbg_reg);
 	else
 		dbg_to_reg(vcpu, p, dbg_reg);
 
-	trace_trap_reg(__func__, rd->reg, p->is_write, *dbg_reg);
+	trace_trap_reg(__func__, rd->CRm, p->is_write, *dbg_reg);
 
 	return true;
 }
@@ -447,7 +447,7 @@
 static int set_bvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 		const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm];
 
 	if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -457,7 +457,7 @@
 static int get_bvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 	const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm];
 
 	if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -467,21 +467,21 @@
 static void reset_bvr(struct kvm_vcpu *vcpu,
 		      const struct sys_reg_desc *rd)
 {
-	vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg] = rd->val;
+	vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm] = rd->val;
 }
 
 static bool trap_bcr(struct kvm_vcpu *vcpu,
 		     struct sys_reg_params *p,
 		     const struct sys_reg_desc *rd)
 {
-	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
+	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm];
 
 	if (p->is_write)
 		reg_to_dbg(vcpu, p, dbg_reg);
 	else
 		dbg_to_reg(vcpu, p, dbg_reg);
 
-	trace_trap_reg(__func__, rd->reg, p->is_write, *dbg_reg);
+	trace_trap_reg(__func__, rd->CRm, p->is_write, *dbg_reg);
 
 	return true;
 }
@@ -489,7 +489,7 @@
 static int set_bcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 		const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm];
 
 	if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -500,7 +500,7 @@
 static int get_bcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 	const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm];
 
 	if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -510,22 +510,22 @@
 static void reset_bcr(struct kvm_vcpu *vcpu,
 		      const struct sys_reg_desc *rd)
 {
-	vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg] = rd->val;
+	vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm] = rd->val;
 }
 
 static bool trap_wvr(struct kvm_vcpu *vcpu,
 		     struct sys_reg_params *p,
 		     const struct sys_reg_desc *rd)
 {
-	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
+	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm];
 
 	if (p->is_write)
 		reg_to_dbg(vcpu, p, dbg_reg);
 	else
 		dbg_to_reg(vcpu, p, dbg_reg);
 
-	trace_trap_reg(__func__, rd->reg, p->is_write,
-		vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg]);
+	trace_trap_reg(__func__, rd->CRm, p->is_write,
+		vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm]);
 
 	return true;
 }
@@ -533,7 +533,7 @@
 static int set_wvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 		const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm];
 
 	if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -543,7 +543,7 @@
 static int get_wvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 	const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm];
 
 	if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -553,21 +553,21 @@
 static void reset_wvr(struct kvm_vcpu *vcpu,
 		      const struct sys_reg_desc *rd)
 {
-	vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg] = rd->val;
+	vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm] = rd->val;
 }
 
 static bool trap_wcr(struct kvm_vcpu *vcpu,
 		     struct sys_reg_params *p,
 		     const struct sys_reg_desc *rd)
 {
-	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
+	u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm];
 
 	if (p->is_write)
 		reg_to_dbg(vcpu, p, dbg_reg);
 	else
 		dbg_to_reg(vcpu, p, dbg_reg);
 
-	trace_trap_reg(__func__, rd->reg, p->is_write, *dbg_reg);
+	trace_trap_reg(__func__, rd->CRm, p->is_write, *dbg_reg);
 
 	return true;
 }
@@ -575,7 +575,7 @@
 static int set_wcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 		const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm];
 
 	if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -585,7 +585,7 @@
 static int get_wcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
 	const struct kvm_one_reg *reg, void __user *uaddr)
 {
-	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
+	__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm];
 
 	if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
 		return -EFAULT;
@@ -595,7 +595,7 @@
 static void reset_wcr(struct kvm_vcpu *vcpu,
 		      const struct sys_reg_desc *rd)
 {
-	vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg] = rd->val;
+	vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm] = rd->val;
 }
 
 static void reset_amair_el1(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
@@ -625,6 +625,10 @@
 {
 	u64 pmcr, val;
 
+	/* No PMU available, PMCR_EL0 may UNDEF... */
+	if (!kvm_arm_support_pmu_v3())
+		return;
+
 	pmcr = read_sysreg(pmcr_el0);
 	/*
 	 * Writable bits of PMCR_EL0 (ARMV8_PMU_PMCR_MASK) are reset to UNKNOWN
@@ -1132,16 +1136,6 @@
 	return REG_HIDDEN_USER | REG_HIDDEN_GUEST;
 }
 
-/* Visibility overrides for SVE-specific ID registers */
-static unsigned int sve_id_visibility(const struct kvm_vcpu *vcpu,
-				      const struct sys_reg_desc *rd)
-{
-	if (vcpu_has_sve(vcpu))
-		return 0;
-
-	return REG_HIDDEN_USER;
-}
-
 /* Generate the emulated ID_AA64ZFR0_EL1 value exposed to the guest */
 static u64 guest_id_aa64zfr0_el1(const struct kvm_vcpu *vcpu)
 {
@@ -1168,9 +1162,6 @@
 {
 	u64 val;
 
-	if (WARN_ON(!vcpu_has_sve(vcpu)))
-		return -ENOENT;
-
 	val = guest_id_aa64zfr0_el1(vcpu);
 	return reg_to_user(uaddr, &val, reg->id);
 }
@@ -1183,9 +1174,6 @@
 	int err;
 	u64 val;
 
-	if (WARN_ON(!vcpu_has_sve(vcpu)))
-		return -ENOENT;
-
 	err = reg_from_user(&val, uaddr, id);
 	if (err)
 		return err;
@@ -1280,10 +1268,16 @@
 static bool access_csselr(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
 			  const struct sys_reg_desc *r)
 {
+	int reg = r->reg;
+
+	/* See the 32bit mapping in kvm_host.h */
+	if (p->is_aarch32)
+		reg = r->reg / 2;
+
 	if (p->is_write)
-		vcpu_write_sys_reg(vcpu, p->regval, r->reg);
+		vcpu_write_sys_reg(vcpu, p->regval, reg);
 	else
-		p->regval = vcpu_read_sys_reg(vcpu, r->reg);
+		p->regval = vcpu_read_sys_reg(vcpu, reg);
 	return true;
 }
 
@@ -1442,7 +1436,7 @@
 	ID_SANITISED(ID_AA64PFR1_EL1),
 	ID_UNALLOCATED(4,2),
 	ID_UNALLOCATED(4,3),
-	{ SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, .visibility = sve_id_visibility },
+	{ SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, },
 	ID_UNALLOCATED(4,5),
 	ID_UNALLOCATED(4,6),
 	ID_UNALLOCATED(4,7),
@@ -1460,7 +1454,7 @@
 	/* CRm=6 */
 	ID_SANITISED(ID_AA64ISAR0_EL1),
 	ID_SANITISED(ID_AA64ISAR1_EL1),
-	ID_UNALLOCATED(6,2),
+	ID_SANITISED(ID_AA64ISAR2_EL1),
 	ID_UNALLOCATED(6,3),
 	ID_UNALLOCATED(6,4),
 	ID_UNALLOCATED(6,5),
@@ -1740,9 +1734,9 @@
 	{ Op1( 0), CRn( 0), CRm( 1), Op2( 0), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(1),
 	/* DBGDCCINT */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32, NULL, cp14_DBGDCCINT },
 	/* DBGDSCRext */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32, NULL, cp14_DBGDSCRext },
 	DBG_BCR_BVR_WCR_WVR(2),
 	/* DBGDTR[RT]Xint */
 	{ Op1( 0), CRn( 0), CRm( 3), Op2( 0), trap_raz_wi },
@@ -1757,7 +1751,7 @@
 	{ Op1( 0), CRn( 0), CRm( 6), Op2( 2), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(6),
 	/* DBGVCR */
-	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32, NULL, cp14_DBGVCR },
 	DBG_BCR_BVR_WCR_WVR(7),
 	DBG_BCR_BVR_WCR_WVR(8),
 	DBG_BCR_BVR_WCR_WVR(9),
@@ -1847,6 +1841,7 @@
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 },
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 },
 	{ Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR },
+	{ Op1( 0), CRn( 2), CRm( 0), Op2( 3), access_vm_reg, NULL, c2_TTBCR2 },
 	{ Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR },
 	{ Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR },
 	{ Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR },
@@ -2360,8 +2355,11 @@
 	if ((id & KVM_REG_ARM_COPROC_MASK) != KVM_REG_ARM64_SYSREG)
 		return NULL;
 
+	if (!index_to_params(id, &params))
+		return NULL;
+
 	table = get_target_table(vcpu->arch.target, true, &num);
-	r = find_reg_by_id(id, &params, table, num);
+	r = find_reg(&params, table, num);
 	if (!r)
 		r = find_reg(&params, sys_reg_descs, ARRAY_SIZE(sys_reg_descs));
 
--- linux-ein-5.4.0.orig/arch/arm64/lib/clear_page.S
+++ linux-ein-5.4.0/arch/arm64/lib/clear_page.S
@@ -14,7 +14,7 @@
  * Parameters:
  *	x0 - dest
  */
-ENTRY(clear_page)
+SYM_FUNC_START(clear_page)
 	mrs	x1, dczid_el0
 	and	w1, w1, #0xf
 	mov	x2, #4
@@ -25,5 +25,5 @@
 	tst	x0, #(PAGE_SIZE - 1)
 	b.ne	1b
 	ret
-ENDPROC(clear_page)
+SYM_FUNC_END(clear_page)
 EXPORT_SYMBOL(clear_page)
--- linux-ein-5.4.0.orig/arch/arm64/lib/clear_user.S
+++ linux-ein-5.4.0/arch/arm64/lib/clear_user.S
@@ -19,7 +19,7 @@
  *
  * Alignment fixed up by hardware.
  */
-ENTRY(__arch_clear_user)
+SYM_FUNC_START(__arch_clear_user)
 	mov	x2, x1			// save the size for fixup return
 	subs	x1, x1, #8
 	b.mi	2f
@@ -40,7 +40,7 @@
 uao_user_alternative 9f, strb, sttrb, wzr, x0, 0
 5:	mov	x0, #0
 	ret
-ENDPROC(__arch_clear_user)
+SYM_FUNC_END(__arch_clear_user)
 EXPORT_SYMBOL(__arch_clear_user)
 
 	.section .fixup,"ax"
--- linux-ein-5.4.0.orig/arch/arm64/lib/copy_from_user.S
+++ linux-ein-5.4.0/arch/arm64/lib/copy_from_user.S
@@ -53,12 +53,12 @@
 	.endm
 
 end	.req	x5
-ENTRY(__arch_copy_from_user)
+SYM_FUNC_START(__arch_copy_from_user)
 	add	end, x0, x2
 #include "copy_template.S"
 	mov	x0, #0				// Nothing to copy
 	ret
-ENDPROC(__arch_copy_from_user)
+SYM_FUNC_END(__arch_copy_from_user)
 EXPORT_SYMBOL(__arch_copy_from_user)
 
 	.section .fixup,"ax"
--- linux-ein-5.4.0.orig/arch/arm64/lib/copy_in_user.S
+++ linux-ein-5.4.0/arch/arm64/lib/copy_in_user.S
@@ -55,12 +55,12 @@
 
 end	.req	x5
 
-ENTRY(__arch_copy_in_user)
+SYM_FUNC_START(__arch_copy_in_user)
 	add	end, x0, x2
 #include "copy_template.S"
 	mov	x0, #0
 	ret
-ENDPROC(__arch_copy_in_user)
+SYM_FUNC_END(__arch_copy_in_user)
 EXPORT_SYMBOL(__arch_copy_in_user)
 
 	.section .fixup,"ax"
--- linux-ein-5.4.0.orig/arch/arm64/lib/copy_page.S
+++ linux-ein-5.4.0/arch/arm64/lib/copy_page.S
@@ -17,7 +17,7 @@
  *	x0 - dest
  *	x1 - src
  */
-ENTRY(copy_page)
+SYM_FUNC_START(copy_page)
 alternative_if ARM64_HAS_NO_HW_PREFETCH
 	// Prefetch three cache lines ahead.
 	prfm	pldl1strm, [x1, #128]
@@ -75,5 +75,5 @@
 	stnp	x16, x17, [x0, #112]
 
 	ret
-ENDPROC(copy_page)
+SYM_FUNC_END(copy_page)
 EXPORT_SYMBOL(copy_page)
--- linux-ein-5.4.0.orig/arch/arm64/lib/copy_to_user.S
+++ linux-ein-5.4.0/arch/arm64/lib/copy_to_user.S
@@ -52,12 +52,12 @@
 	.endm
 
 end	.req	x5
-ENTRY(__arch_copy_to_user)
+SYM_FUNC_START(__arch_copy_to_user)
 	add	end, x0, x2
 #include "copy_template.S"
 	mov	x0, #0
 	ret
-ENDPROC(__arch_copy_to_user)
+SYM_FUNC_END(__arch_copy_to_user)
 EXPORT_SYMBOL(__arch_copy_to_user)
 
 	.section .fixup,"ax"
--- linux-ein-5.4.0.orig/arch/arm64/lib/crc32.S
+++ linux-ein-5.4.0/arch/arm64/lib/crc32.S
@@ -85,17 +85,17 @@
 	.endm
 
 	.align		5
-ENTRY(crc32_le)
+SYM_FUNC_START(crc32_le)
 alternative_if_not ARM64_HAS_CRC32
 	b		crc32_le_base
 alternative_else_nop_endif
 	__crc32
-ENDPROC(crc32_le)
+SYM_FUNC_END(crc32_le)
 
 	.align		5
-ENTRY(__crc32c_le)
+SYM_FUNC_START(__crc32c_le)
 alternative_if_not ARM64_HAS_CRC32
 	b		__crc32c_le_base
 alternative_else_nop_endif
 	__crc32		c
-ENDPROC(__crc32c_le)
+SYM_FUNC_END(__crc32c_le)
--- linux-ein-5.4.0.orig/arch/arm64/lib/memchr.S
+++ linux-ein-5.4.0/arch/arm64/lib/memchr.S
@@ -19,7 +19,7 @@
  * Returns:
  *	x0 - address of first occurrence of 'c' or 0
  */
-WEAK(memchr)
+SYM_FUNC_START_WEAK_PI(memchr)
 	and	w1, w1, #0xff
 1:	subs	x2, x2, #1
 	b.mi	2f
@@ -30,5 +30,5 @@
 	ret
 2:	mov	x0, #0
 	ret
-ENDPIPROC(memchr)
+SYM_FUNC_END_PI(memchr)
 EXPORT_SYMBOL_NOKASAN(memchr)
--- linux-ein-5.4.0.orig/arch/arm64/lib/memcmp.S
+++ linux-ein-5.4.0/arch/arm64/lib/memcmp.S
@@ -46,7 +46,7 @@
 limit_wd	.req	x12
 mask		.req	x13
 
-WEAK(memcmp)
+SYM_FUNC_START_WEAK_PI(memcmp)
 	cbz	limit, .Lret0
 	eor	tmp1, src1, src2
 	tst	tmp1, #7
@@ -243,5 +243,5 @@
 .Lret0:
 	mov	result, #0
 	ret
-ENDPIPROC(memcmp)
+SYM_FUNC_END_PI(memcmp)
 EXPORT_SYMBOL_NOKASAN(memcmp)
--- linux-ein-5.4.0.orig/arch/arm64/lib/memcpy.S
+++ linux-ein-5.4.0/arch/arm64/lib/memcpy.S
@@ -56,12 +56,11 @@
 	stp \ptr, \regB, [\regC], \val
 	.endm
 
-	.weak memcpy
-ENTRY(__memcpy)
-ENTRY(memcpy)
+SYM_FUNC_START_ALIAS(__memcpy)
+SYM_FUNC_START_WEAK_PI(memcpy)
 #include "copy_template.S"
 	ret
-ENDPIPROC(memcpy)
+SYM_FUNC_END_PI(memcpy)
 EXPORT_SYMBOL(memcpy)
-ENDPROC(__memcpy)
+SYM_FUNC_END_ALIAS(__memcpy)
 EXPORT_SYMBOL(__memcpy)
--- linux-ein-5.4.0.orig/arch/arm64/lib/memmove.S
+++ linux-ein-5.4.0/arch/arm64/lib/memmove.S
@@ -45,9 +45,8 @@
 D_l	.req	x13
 D_h	.req	x14
 
-	.weak memmove
-ENTRY(__memmove)
-ENTRY(memmove)
+SYM_FUNC_START_ALIAS(__memmove)
+SYM_FUNC_START_WEAK_PI(memmove)
 	cmp	dstin, src
 	b.lo	__memcpy
 	add	tmp1, src, count
@@ -184,7 +183,7 @@
 	tst	count, #0x3f
 	b.ne	.Ltail63
 	ret
-ENDPIPROC(memmove)
+SYM_FUNC_END_PI(memmove)
 EXPORT_SYMBOL(memmove)
-ENDPROC(__memmove)
+SYM_FUNC_END_ALIAS(__memmove)
 EXPORT_SYMBOL(__memmove)
--- linux-ein-5.4.0.orig/arch/arm64/lib/memset.S
+++ linux-ein-5.4.0/arch/arm64/lib/memset.S
@@ -42,9 +42,8 @@
 tmp3w		.req	w9
 tmp3		.req	x9
 
-	.weak memset
-ENTRY(__memset)
-ENTRY(memset)
+SYM_FUNC_START_ALIAS(__memset)
+SYM_FUNC_START_WEAK_PI(memset)
 	mov	dst, dstin	/* Preserve return value.  */
 	and	A_lw, val, #255
 	orr	A_lw, A_lw, A_lw, lsl #8
@@ -203,7 +202,7 @@
 	ands	count, count, zva_bits_x
 	b.ne	.Ltail_maybe_long
 	ret
-ENDPIPROC(memset)
+SYM_FUNC_END_PI(memset)
 EXPORT_SYMBOL(memset)
-ENDPROC(__memset)
+SYM_FUNC_END_ALIAS(__memset)
 EXPORT_SYMBOL(__memset)
--- linux-ein-5.4.0.orig/arch/arm64/lib/strchr.S
+++ linux-ein-5.4.0/arch/arm64/lib/strchr.S
@@ -18,7 +18,7 @@
  * Returns:
  *	x0 - address of first occurrence of 'c' or 0
  */
-WEAK(strchr)
+SYM_FUNC_START_WEAK(strchr)
 	and	w1, w1, #0xff
 1:	ldrb	w2, [x0], #1
 	cmp	w2, w1
@@ -28,5 +28,5 @@
 	cmp	w2, w1
 	csel	x0, x0, xzr, eq
 	ret
-ENDPROC(strchr)
+SYM_FUNC_END(strchr)
 EXPORT_SYMBOL_NOKASAN(strchr)
--- linux-ein-5.4.0.orig/arch/arm64/lib/strcmp.S
+++ linux-ein-5.4.0/arch/arm64/lib/strcmp.S
@@ -48,7 +48,7 @@
 zeroones	.req	x10
 pos		.req	x11
 
-WEAK(strcmp)
+SYM_FUNC_START_WEAK_PI(strcmp)
 	eor	tmp1, src1, src2
 	mov	zeroones, #REP8_01
 	tst	tmp1, #7
@@ -219,5 +219,5 @@
 	lsr	data1, data1, #56
 	sub	result, data1, data2, lsr #56
 	ret
-ENDPIPROC(strcmp)
+SYM_FUNC_END_PI(strcmp)
 EXPORT_SYMBOL_NOKASAN(strcmp)
--- linux-ein-5.4.0.orig/arch/arm64/lib/strlen.S
+++ linux-ein-5.4.0/arch/arm64/lib/strlen.S
@@ -44,7 +44,7 @@
 #define REP8_7f 0x7f7f7f7f7f7f7f7f
 #define REP8_80 0x8080808080808080
 
-WEAK(strlen)
+SYM_FUNC_START_WEAK_PI(strlen)
 	mov	zeroones, #REP8_01
 	bic	src, srcin, #15
 	ands	tmp1, srcin, #15
@@ -111,5 +111,5 @@
 	csinv	data1, data1, xzr, le
 	csel	data2, data2, data2a, le
 	b	.Lrealigned
-ENDPIPROC(strlen)
+SYM_FUNC_END_PI(strlen)
 EXPORT_SYMBOL_NOKASAN(strlen)
--- linux-ein-5.4.0.orig/arch/arm64/lib/strncmp.S
+++ linux-ein-5.4.0/arch/arm64/lib/strncmp.S
@@ -52,7 +52,7 @@
 mask		.req	x14
 endloop		.req	x15
 
-WEAK(strncmp)
+SYM_FUNC_START_WEAK_PI(strncmp)
 	cbz	limit, .Lret0
 	eor	tmp1, src1, src2
 	mov	zeroones, #REP8_01
@@ -295,5 +295,5 @@
 .Lret0:
 	mov	result, #0
 	ret
-ENDPIPROC(strncmp)
+SYM_FUNC_END_PI(strncmp)
 EXPORT_SYMBOL_NOKASAN(strncmp)
--- linux-ein-5.4.0.orig/arch/arm64/lib/strnlen.S
+++ linux-ein-5.4.0/arch/arm64/lib/strnlen.S
@@ -47,7 +47,7 @@
 #define REP8_7f 0x7f7f7f7f7f7f7f7f
 #define REP8_80 0x8080808080808080
 
-WEAK(strnlen)
+SYM_FUNC_START_WEAK_PI(strnlen)
 	cbz	limit, .Lhit_limit
 	mov	zeroones, #REP8_01
 	bic	src, srcin, #15
@@ -156,5 +156,5 @@
 .Lhit_limit:
 	mov	len, limit
 	ret
-ENDPIPROC(strnlen)
+SYM_FUNC_END_PI(strnlen)
 EXPORT_SYMBOL_NOKASAN(strnlen)
--- linux-ein-5.4.0.orig/arch/arm64/lib/strrchr.S
+++ linux-ein-5.4.0/arch/arm64/lib/strrchr.S
@@ -18,7 +18,7 @@
  * Returns:
  *	x0 - address of last occurrence of 'c' or 0
  */
-WEAK(strrchr)
+SYM_FUNC_START_WEAK_PI(strrchr)
 	mov	x3, #0
 	and	w1, w1, #0xff
 1:	ldrb	w2, [x0], #1
@@ -29,5 +29,5 @@
 	b	1b
 2:	mov	x0, x3
 	ret
-ENDPIPROC(strrchr)
+SYM_FUNC_END_PI(strrchr)
 EXPORT_SYMBOL_NOKASAN(strrchr)
--- linux-ein-5.4.0.orig/arch/arm64/lib/tishift.S
+++ linux-ein-5.4.0/arch/arm64/lib/tishift.S
@@ -7,7 +7,7 @@
 
 #include <asm/assembler.h>
 
-ENTRY(__ashlti3)
+SYM_FUNC_START(__ashlti3)
 	cbz	x2, 1f
 	mov	x3, #64
 	sub	x3, x3, x2
@@ -26,10 +26,10 @@
 	lsl	x1, x0, x1
 	mov	x0, x2
 	ret
-ENDPROC(__ashlti3)
+SYM_FUNC_END(__ashlti3)
 EXPORT_SYMBOL(__ashlti3)
 
-ENTRY(__ashrti3)
+SYM_FUNC_START(__ashrti3)
 	cbz	x2, 1f
 	mov	x3, #64
 	sub	x3, x3, x2
@@ -48,10 +48,10 @@
 	asr	x0, x1, x0
 	mov	x1, x2
 	ret
-ENDPROC(__ashrti3)
+SYM_FUNC_END(__ashrti3)
 EXPORT_SYMBOL(__ashrti3)
 
-ENTRY(__lshrti3)
+SYM_FUNC_START(__lshrti3)
 	cbz	x2, 1f
 	mov	x3, #64
 	sub	x3, x3, x2
@@ -70,5 +70,5 @@
 	lsr	x0, x1, x0
 	mov	x1, x2
 	ret
-ENDPROC(__lshrti3)
+SYM_FUNC_END(__lshrti3)
 EXPORT_SYMBOL(__lshrti3)
--- linux-ein-5.4.0.orig/arch/arm64/mm/cache.S
+++ linux-ein-5.4.0/arch/arm64/mm/cache.S
@@ -228,8 +228,6 @@
  *	- dir	- DMA direction
  */
 ENTRY(__dma_map_area)
-	cmp	w2, #DMA_FROM_DEVICE
-	b.eq	__dma_inv_area
 	b	__dma_clean_area
 ENDPIPROC(__dma_map_area)
 
--- linux-ein-5.4.0.orig/arch/arm64/mm/dma-mapping.c
+++ linux-ein-5.4.0/arch/arm64/mm/dma-mapping.c
@@ -13,14 +13,14 @@
 
 #include <asm/cacheflush.h>
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	__dma_map_area(phys_to_virt(paddr), size, dir);
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	__dma_unmap_area(phys_to_virt(paddr), size, dir);
 }
--- linux-ein-5.4.0.orig/arch/arm64/mm/fault.c
+++ linux-ein-5.4.0/arch/arm64/mm/fault.c
@@ -296,7 +296,7 @@
 	show_pte(addr);
 	die("Oops", regs, esr);
 	bust_spinlocks(0);
-	do_exit(SIGKILL);
+	make_task_dead(SIGKILL);
 }
 
 static void __do_kernel_fault(unsigned long addr, unsigned int esr,
@@ -403,8 +403,8 @@
 	}
 }
 
-#define VM_FAULT_BADMAP		0x010000
-#define VM_FAULT_BADACCESS	0x020000
+#define VM_FAULT_BADMAP		((__force vm_fault_t)0x010000)
+#define VM_FAULT_BADACCESS	((__force vm_fault_t)0x020000)
 
 static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags)
@@ -454,7 +454,7 @@
 	const struct fault_info *inf;
 	struct mm_struct *mm = current->mm;
 	vm_fault_t fault, major = 0;
-	unsigned long vm_flags = VM_READ | VM_WRITE;
+	unsigned long vm_flags = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (kprobe_page_fault(regs, esr))
@@ -654,11 +654,13 @@
 
 	inf = esr_to_fault_info(esr);
 
-	/*
-	 * Return value ignored as we rely on signal merging.
-	 * Future patches will make this more robust.
-	 */
-	apei_claim_sea(regs);
+	if (user_mode(regs) && apei_claim_sea(regs) == 0) {
+		/*
+		 * APEI claimed this as a firmware-first notification.
+		 * Some processing deferred to task_work before ret_to_user().
+		 */
+		return 0;
+	}
 
 	if (esr & ESR_ELx_FnV)
 		siaddr = NULL;
--- linux-ein-5.4.0.orig/arch/arm64/mm/hugetlbpage.c
+++ linux-ein-5.4.0/arch/arm64/mm/hugetlbpage.c
@@ -230,6 +230,8 @@
 		ptep = (pte_t *)pudp;
 	} else if (sz == (CONT_PTE_SIZE)) {
 		pmdp = pmd_alloc(mm, pudp, addr);
+		if (!pmdp)
+			return NULL;
 
 		WARN_ON(addr & (sz - 1));
 		/*
--- linux-ein-5.4.0.orig/arch/arm64/mm/init.c
+++ linux-ein-5.4.0/arch/arm64/mm/init.c
@@ -50,12 +50,6 @@
 s64 memstart_addr __ro_after_init = -1;
 EXPORT_SYMBOL(memstart_addr);
 
-s64 physvirt_offset __ro_after_init;
-EXPORT_SYMBOL(physvirt_offset);
-
-struct page *vmemmap __ro_after_init;
-EXPORT_SYMBOL(vmemmap);
-
 phys_addr_t arm64_dma_phys_limit __ro_after_init;
 
 #ifdef CONFIG_KEXEC_CORE
@@ -251,6 +245,18 @@
 
 	if (!valid_section(__nr_to_section(pfn_to_section_nr(pfn))))
 		return 0;
+
+	/*
+	 * ZONE_DEVICE memory does not have the memblock entries.
+	 * memblock_is_map_memory() check for ZONE_DEVICE based
+	 * addresses will always fail. Even the normal hotplugged
+	 * memory will never have MEMBLOCK_NOMAP flag set in their
+	 * memblock entries. Skip memblock search for all non early
+	 * memory sections covering all of hotplug memory including
+	 * both normal and ZONE_DEVICE based.
+	 */
+	if (!early_section(__pfn_to_section(pfn)))
+		return pfn_section_valid(__pfn_to_section(pfn), pfn);
 #endif
 	return memblock_is_map_memory(addr);
 }
@@ -321,20 +327,6 @@
 	memstart_addr = round_down(memblock_start_of_DRAM(),
 				   ARM64_MEMSTART_ALIGN);
 
-	physvirt_offset = PHYS_OFFSET - PAGE_OFFSET;
-
-	vmemmap = ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT));
-
-	/*
-	 * If we are running with a 52-bit kernel VA config on a system that
-	 * does not support it, we have to offset our vmemmap and physvirt_offset
-	 * s.t. we avoid the 52-bit portion of the direct linear map
-	 */
-	if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52) && (vabits_actual != 52)) {
-		vmemmap += (_PAGE_OFFSET(48) - _PAGE_OFFSET(52)) >> PAGE_SHIFT;
-		physvirt_offset = PHYS_OFFSET - _PAGE_OFFSET(48);
-	}
-
 	/*
 	 * Remove the memory that we will not be able to cover with the
 	 * linear mapping. Take care not to clip the kernel which may be
@@ -350,6 +342,16 @@
 	}
 
 	/*
+	 * If we are running with a 52-bit kernel VA config on a system that
+	 * does not support it, we have to place the available physical
+	 * memory in the 48-bit addressable part of the linear region, i.e.,
+	 * we have to move it upward. Since memstart_addr represents the
+	 * physical address of PAGE_OFFSET, we have to *subtract* from it.
+	 */
+	if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52) && (vabits_actual != 52))
+		memstart_addr -= _PAGE_OFFSET(48) - _PAGE_OFFSET(52);
+
+	/*
 	 * Apply the memory limit if it was set. Since the kernel may be loaded
 	 * high up in memory, add back the kernel region that must be accessible
 	 * via the linear mapping.
--- linux-ein-5.4.0.orig/arch/arm64/mm/ioremap.c
+++ linux-ein-5.4.0/arch/arm64/mm/ioremap.c
@@ -13,6 +13,7 @@
 #include <linux/mm.h>
 #include <linux/vmalloc.h>
 #include <linux/io.h>
+#include <linux/memblock.h>
 
 #include <asm/fixmap.h>
 #include <asm/tlbflush.h>
@@ -100,3 +101,11 @@
 {
 	early_ioremap_setup();
 }
+
+bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size,
+				 unsigned long flags)
+{
+	unsigned long pfn = PHYS_PFN(offset);
+
+	return memblock_is_map_memory(pfn);
+}
--- linux-ein-5.4.0.orig/arch/arm64/mm/mmu.c
+++ linux-ein-5.4.0/arch/arm64/mm/mmu.c
@@ -38,7 +38,7 @@
 #define NO_BLOCK_MAPPINGS	BIT(0)
 #define NO_CONT_MAPPINGS	BIT(1)
 
-u64 idmap_t0sz = TCR_T0SZ(VA_BITS);
+u64 idmap_t0sz = TCR_T0SZ(VA_BITS_MIN);
 u64 idmap_ptrs_per_pgd = PTRS_PER_PGD;
 
 u64 __section(".mmuoff.data.write") vabits_actual;
@@ -399,7 +399,7 @@
 static void __init create_mapping_noalloc(phys_addr_t phys, unsigned long virt,
 				  phys_addr_t size, pgprot_t prot)
 {
-	if ((virt >= PAGE_END) && (virt < VMALLOC_START)) {
+	if (virt < PAGE_OFFSET) {
 		pr_warn("BUG: not creating mapping for %pa at 0x%016lx - outside kernel range\n",
 			&phys, virt);
 		return;
@@ -426,7 +426,7 @@
 static void update_mapping_prot(phys_addr_t phys, unsigned long virt,
 				phys_addr_t size, pgprot_t prot)
 {
-	if ((virt >= PAGE_END) && (virt < VMALLOC_START)) {
+	if (virt < PAGE_OFFSET) {
 		pr_warn("BUG: not updating mapping for %pa at 0x%016lx - outside kernel range\n",
 			&phys, virt);
 		return;
@@ -583,6 +583,8 @@
 #ifdef CONFIG_UNMAP_KERNEL_AT_EL0
 static int __init map_entry_trampoline(void)
 {
+	int i;
+
 	pgprot_t prot = rodata_enabled ? PAGE_KERNEL_ROX : PAGE_KERNEL_EXEC;
 	phys_addr_t pa_start = __pa_symbol(__entry_tramp_text_start);
 
@@ -591,11 +593,15 @@
 
 	/* Map only the text into the trampoline page table */
 	memset(tramp_pg_dir, 0, PGD_SIZE);
-	__create_pgd_mapping(tramp_pg_dir, pa_start, TRAMP_VALIAS, PAGE_SIZE,
-			     prot, __pgd_pgtable_alloc, 0);
+	__create_pgd_mapping(tramp_pg_dir, pa_start, TRAMP_VALIAS,
+			     entry_tramp_text_size(), prot,
+			     __pgd_pgtable_alloc, NO_BLOCK_MAPPINGS);
 
 	/* Map both the text and data into the kernel page table */
-	__set_fixmap(FIX_ENTRY_TRAMP_TEXT, pa_start, prot);
+	for (i = 0; i < DIV_ROUND_UP(entry_tramp_text_size(), PAGE_SIZE); i++)
+		__set_fixmap(FIX_ENTRY_TRAMP_TEXT1 - i,
+			     pa_start + i * PAGE_SIZE, prot);
+
 	if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {
 		extern char __entry_tramp_data_start[];
 
@@ -1069,7 +1075,6 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
 	/*
 	 * FIXME: Cleanup page tables (also in arch_add_memory() in case
@@ -1078,7 +1083,6 @@
 	 * unplug. ARCH_ENABLE_MEMORY_HOTREMOVE must not be
 	 * unlocked yet.
 	 */
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif
--- linux-ein-5.4.0.orig/arch/arm64/mm/numa.c
+++ linux-ein-5.4.0/arch/arm64/mm/numa.c
@@ -46,7 +46,11 @@
  */
 const struct cpumask *cpumask_of_node(int node)
 {
-	if (WARN_ON(node >= nr_node_ids))
+
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
+	if (WARN_ON(node < 0 || node >= nr_node_ids))
 		return cpu_none_mask;
 
 	if (WARN_ON(node_to_cpumask_map[node] == NULL))
--- linux-ein-5.4.0.orig/arch/arm64/mm/physaddr.c
+++ linux-ein-5.4.0/arch/arm64/mm/physaddr.c
@@ -9,7 +9,7 @@
 
 phys_addr_t __virt_to_phys(unsigned long x)
 {
-	WARN(!__is_lm_address(x),
+	WARN(!__is_lm_address(__tag_reset(x)),
 	     "virt_to_phys used for non-linear address: %pK (%pS)\n",
 	      (void *)x,
 	      (void *)x);
--- linux-ein-5.4.0.orig/arch/arm64/mm/proc.S
+++ linux-ein-5.4.0/arch/arm64/mm/proc.S
@@ -166,7 +166,7 @@
 	.pushsection ".idmap.text", "awx"
 
 .macro	__idmap_cpu_set_reserved_ttbr1, tmp1, tmp2
-	adrp	\tmp1, empty_zero_page
+	adrp	\tmp1, reserved_pg_dir
 	phys_to_ttbr \tmp2, \tmp1
 	offset_ttbr1 \tmp2, \tmp1
 	msr	ttbr1_el1, \tmp2
--- linux-ein-5.4.0.orig/arch/arm64/net/bpf_jit_comp.c
+++ linux-ein-5.4.0/arch/arm64/net/bpf_jit_comp.c
@@ -141,14 +141,17 @@
 	}
 }
 
-static inline int bpf2a64_offset(int bpf_to, int bpf_from,
+static inline int bpf2a64_offset(int bpf_insn, int off,
 				 const struct jit_ctx *ctx)
 {
-	int to = ctx->offset[bpf_to];
-	/* -1 to account for the Branch instruction */
-	int from = ctx->offset[bpf_from] - 1;
-
-	return to - from;
+	/* BPF JMP offset is relative to the next instruction */
+	bpf_insn++;
+	/*
+	 * Whereas arm64 branch instructions encode the offset
+	 * from the branch itself, so we must subtract 1 from the
+	 * instruction offset.
+	 */
+	return ctx->offset[bpf_insn + off] - (ctx->offset[bpf_insn] - 1);
 }
 
 static void jit_fill_hole(void *area, unsigned int size)
@@ -532,7 +535,7 @@
 
 	/* JUMP off */
 	case BPF_JMP | BPF_JA:
-		jmp_offset = bpf2a64_offset(i + off, i, ctx);
+		jmp_offset = bpf2a64_offset(i, off, ctx);
 		check_imm26(jmp_offset);
 		emit(A64_B(jmp_offset), ctx);
 		break;
@@ -559,7 +562,7 @@
 	case BPF_JMP32 | BPF_JSLE | BPF_X:
 		emit(A64_CMP(is64, dst, src), ctx);
 emit_cond_jmp:
-		jmp_offset = bpf2a64_offset(i + off, i, ctx);
+		jmp_offset = bpf2a64_offset(i, off, ctx);
 		check_imm19(jmp_offset);
 		switch (BPF_OP(code)) {
 		case BPF_JEQ:
@@ -698,6 +701,19 @@
 		}
 		break;
 
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		/*
+		 * Nothing required here.
+		 *
+		 * In case of arm64, we rely on the firmware mitigation of
+		 * Speculative Store Bypass as controlled via the ssbd kernel
+		 * parameter. Whenever the mitigation is enabled, it works
+		 * for all of the kernel code with no need to provide any
+		 * additional instructions.
+		 */
+		break;
+
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_W:
 	case BPF_ST | BPF_MEM | BPF_H:
@@ -780,10 +796,21 @@
 	const struct bpf_prog *prog = ctx->prog;
 	int i;
 
+	/*
+	 * - offset[0] offset of the end of prologue,
+	 *   start of the 1st instruction.
+	 * - offset[1] - offset of the end of 1st instruction,
+	 *   start of the 2nd instruction
+	 * [....]
+	 * - offset[3] - offset of the end of 3rd instruction,
+	 *   start of 4th instruction
+	 */
 	for (i = 0; i < prog->len; i++) {
 		const struct bpf_insn *insn = &prog->insnsi[i];
 		int ret;
 
+		if (ctx->image == NULL)
+			ctx->offset[i] = ctx->idx;
 		ret = build_insn(insn, ctx, extra_pass);
 		if (ret > 0) {
 			i++;
@@ -791,11 +818,16 @@
 				ctx->offset[i] = ctx->idx;
 			continue;
 		}
-		if (ctx->image == NULL)
-			ctx->offset[i] = ctx->idx;
 		if (ret)
 			return ret;
 	}
+	/*
+	 * offset is allocated with prog->len + 1 so fill in
+	 * the last element with the offset after the last
+	 * instruction (end of program)
+	 */
+	if (ctx->image == NULL)
+		ctx->offset[i] = ctx->idx;
 
 	return 0;
 }
@@ -871,21 +903,24 @@
 	memset(&ctx, 0, sizeof(ctx));
 	ctx.prog = prog;
 
-	ctx.offset = kcalloc(prog->len, sizeof(int), GFP_KERNEL);
+	ctx.offset = kcalloc(prog->len + 1, sizeof(int), GFP_KERNEL);
 	if (ctx.offset == NULL) {
 		prog = orig_prog;
 		goto out_off;
 	}
 
-	/* 1. Initial fake pass to compute ctx->idx. */
-
-	/* Fake pass to fill in ctx->offset. */
-	if (build_body(&ctx, extra_pass)) {
+	/*
+	 * 1. Initial fake pass to compute ctx->idx and ctx->offset.
+	 *
+	 * BPF line info needs ctx->offset[i] to be the offset of
+	 * instruction[i] in jited image, so build prologue first.
+	 */
+	if (build_prologue(&ctx, was_classic)) {
 		prog = orig_prog;
 		goto out_off;
 	}
 
-	if (build_prologue(&ctx, was_classic)) {
+	if (build_body(&ctx, extra_pass)) {
 		prog = orig_prog;
 		goto out_off;
 	}
@@ -938,6 +973,7 @@
 			bpf_jit_binary_free(header);
 			prog->bpf_func = NULL;
 			prog->jited = 0;
+			prog->jited_len = 0;
 			goto out_off;
 		}
 		bpf_jit_binary_lock_ro(header);
@@ -951,7 +987,12 @@
 	prog->jited_len = image_size;
 
 	if (!prog->is_func || extra_pass) {
-		bpf_prog_fill_jited_linfo(prog, ctx.offset);
+		int i;
+
+		/* offset[prog->len] is the size of program */
+		for (i = 0; i <= prog->len; i++)
+			ctx.offset[i] *= AARCH64_INSN_SIZE;
+		bpf_prog_fill_jited_linfo(prog, ctx.offset + 1);
 out_off:
 		kfree(ctx.offset);
 		kfree(jit_data);
@@ -964,6 +1005,11 @@
 	return prog;
 }
 
+u64 bpf_jit_alloc_exec_limit(void)
+{
+	return BPF_JIT_REGION_SIZE;
+}
+
 void *bpf_jit_alloc_exec(unsigned long size)
 {
 	return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,
--- linux-ein-5.4.0.orig/arch/c6x/mm/dma-coherent.c
+++ linux-ein-5.4.0/arch/c6x/mm/dma-coherent.c
@@ -140,7 +140,7 @@
 		      sizeof(long));
 }
 
-static void c6x_dma_sync(struct device *dev, phys_addr_t paddr, size_t size,
+static void c6x_dma_sync(phys_addr_t paddr, size_t size,
 		enum dma_data_direction dir)
 {
 	BUG_ON(!valid_dma_direction(dir));
@@ -160,14 +160,14 @@
 	}
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
-	return c6x_dma_sync(dev, paddr, size, dir);
+	return c6x_dma_sync(paddr, size, dir);
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
-	return c6x_dma_sync(dev, paddr, size, dir);
+	return c6x_dma_sync(paddr, size, dir);
 }
--- linux-ein-5.4.0.orig/arch/csky/Kconfig
+++ linux-ein-5.4.0/arch/csky/Kconfig
@@ -36,6 +36,7 @@
 	select GX6605S_TIMER if CPU_CK610
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_AUDITSYSCALL
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DYNAMIC_FTRACE
 	select HAVE_FUNCTION_TRACER
 	select HAVE_FUNCTION_GRAPH_TRACER
@@ -74,7 +75,7 @@
 config CPU_HAS_LDSTEX
 	bool
 	help
-	  For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
+	  For SMP, CPU needs "ldex&stex" instructions for atomic operations.
 
 config CPU_NEED_TLBSYNC
 	bool
@@ -219,7 +220,7 @@
 	int "Maximum zone order"
 	default "11"
 
-config RAM_BASE
+config DRAM_BASE
 	hex "DRAM start addr (the same with memory-section in dts)"
 	default 0x0
 
--- linux-ein-5.4.0.orig/arch/csky/abiv1/alignment.c
+++ linux-ein-5.4.0/arch/csky/abiv1/alignment.c
@@ -294,7 +294,7 @@
 				__func__, opcode, rz, rx, imm, addr);
 		show_regs(regs);
 		bust_spinlocks(0);
-		do_exit(SIGKILL);
+		make_task_dead(SIGKILL);
 	}
 
 	force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)addr);
--- linux-ein-5.4.0.orig/arch/csky/abiv1/inc/abi/entry.h
+++ linux-ein-5.4.0/arch/csky/abiv1/inc/abi/entry.h
@@ -16,14 +16,16 @@
 #define LSAVE_A4	40
 #define LSAVE_A5	44
 
+#define usp ss1
+
 .macro USPTOKSP
-	mtcr	sp, ss1
+	mtcr	sp, usp
 	mfcr	sp, ss0
 .endm
 
 .macro KSPTOUSP
 	mtcr	sp, ss0
-	mfcr	sp, ss1
+	mfcr	sp, usp
 .endm
 
 .macro	SAVE_ALL epc_inc
@@ -45,7 +47,13 @@
 	add	lr, r13
 	stw     lr, (sp, 8)
 
+	mov	lr, sp
+	addi	lr, 32
+	addi	lr, 32
+	addi	lr, 16
+	bt	2f
 	mfcr	lr, ss1
+2:
 	stw     lr, (sp, 16)
 
 	stw     a0, (sp, 20)
@@ -79,9 +87,10 @@
 	ldw     a0, (sp, 12)
 	mtcr    a0, epsr
 	btsti   a0, 31
+	bt      1f
 	ldw     a0, (sp, 16)
 	mtcr	a0, ss1
-
+1:
 	ldw     a0, (sp, 24)
 	ldw     a1, (sp, 28)
 	ldw     a2, (sp, 32)
@@ -102,9 +111,9 @@
 	addi	sp, 32
 	addi	sp, 8
 
-	bt      1f
+	bt      2f
 	KSPTOUSP
-1:
+2:
 	rte
 .endm
 
@@ -158,15 +167,12 @@
 	 *   BA     Reserved  C   D   V
 	 */
 	cprcr	r6, cpcr30
-	lsri	r6, 28
-	lsli	r6, 28
+	lsri	r6, 29
+	lsli	r6, 29
 	addi	r6, 0xe
 	cpwcr	r6, cpcr30
 
-	lsri	r6, 28
-	addi	r6, 2
-	lsli	r6, 28
-	addi	r6, 0xe
+	movi	r6, 0
 	cpwcr	r6, cpcr31
 .endm
 
--- linux-ein-5.4.0.orig/arch/csky/abiv2/fpu.c
+++ linux-ein-5.4.0/arch/csky/abiv2/fpu.c
@@ -10,11 +10,6 @@
 #define MTCR_DIST	0xC0006420
 #define MFCR_DIST	0xC0006020
 
-void __init init_fpu(void)
-{
-	mtcr("cr<1, 2>", 0);
-}
-
 /*
  * fpu_libc_helper() is to help libc to excute:
  *  - mfcr %a, cr<1, 2>
--- linux-ein-5.4.0.orig/arch/csky/abiv2/inc/abi/entry.h
+++ linux-ein-5.4.0/arch/csky/abiv2/inc/abi/entry.h
@@ -13,6 +13,8 @@
 #define LSAVE_A1	28
 #define LSAVE_A2	32
 #define LSAVE_A3	36
+#define LSAVE_A4	40
+#define LSAVE_A5	44
 
 #define KSPTOUSP
 #define USPTOKSP
@@ -31,7 +33,13 @@
 
 	mfcr	lr, epsr
 	stw	lr, (sp, 12)
+	btsti   lr, 31
+	bf      1f
+	addi    lr, sp, 152
+	br	2f
+1:
 	mfcr	lr, usp
+2:
 	stw	lr, (sp, 16)
 
 	stw     a0, (sp, 20)
@@ -64,8 +72,10 @@
 	mtcr	a0, epc
 	ldw	a0, (sp, 12)
 	mtcr	a0, epsr
+	btsti   a0, 31
 	ldw	a0, (sp, 16)
 	mtcr	a0, usp
+	mtcr	a0, ss0
 
 #ifdef CONFIG_CPU_HAS_HILO
 	ldw	a0, (sp, 140)
@@ -86,6 +96,9 @@
 	addi    sp, 40
 	ldm     r16-r30, (sp)
 	addi    sp, 72
+	bf	1f
+	mfcr	sp, ss0
+1:
 	rte
 .endm
 
@@ -214,16 +227,13 @@
 	 */
 	mfcr	r6, cr<30, 15> /* Get MSA0 */
 2:
-	lsri	r6, 28
-	lsli	r6, 28
+	lsri	r6, 29
+	lsli	r6, 29
 	addi	r6, 0x1ce
 	mtcr	r6, cr<30, 15> /* Set MSA0 */
 
-	lsri	r6, 28
-	addi	r6, 2
-	lsli	r6, 28
-	addi	r6, 0x1ce
-	mtcr	r6, cr<31, 15> /* Set MSA1 */
+	movi    r6, 0
+	mtcr	r6, cr<31, 15> /* Clr MSA1 */
 
 	/* enable MMU */
 	mfcr    r6, cr18
--- linux-ein-5.4.0.orig/arch/csky/abiv2/inc/abi/fpu.h
+++ linux-ein-5.4.0/arch/csky/abiv2/inc/abi/fpu.h
@@ -9,7 +9,8 @@
 
 int fpu_libc_helper(struct pt_regs *regs);
 void fpu_fpe(struct pt_regs *regs);
-void __init init_fpu(void);
+
+static inline void init_fpu(void) { mtcr("cr<1, 2>", 0); }
 
 void save_to_user_fp(struct user_fp *user_fp);
 void restore_from_user_fp(struct user_fp *user_fp);
--- linux-ein-5.4.0.orig/arch/csky/include/asm/page.h
+++ linux-ein-5.4.0/arch/csky/include/asm/page.h
@@ -28,7 +28,7 @@
 #define SSEG_SIZE	0x20000000
 #define LOWMEM_LIMIT	(SSEG_SIZE * 2)
 
-#define PHYS_OFFSET_OFFSET (CONFIG_RAM_BASE & (SSEG_SIZE - 1))
+#define PHYS_OFFSET_OFFSET (CONFIG_DRAM_BASE & (SSEG_SIZE - 1))
 
 #ifndef __ASSEMBLY__
 
--- linux-ein-5.4.0.orig/arch/csky/include/asm/processor.h
+++ linux-ein-5.4.0/arch/csky/include/asm/processor.h
@@ -43,6 +43,7 @@
 struct thread_struct {
 	unsigned long  ksp;       /* kernel stack pointer */
 	unsigned long  sr;        /* saved status register */
+	unsigned long  trap_no;   /* saved status register */
 
 	/* FPU regs */
 	struct user_fp __aligned(16) user_fp;
--- linux-ein-5.4.0.orig/arch/csky/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/csky/include/asm/uaccess.h
@@ -254,7 +254,7 @@
 
 extern int __get_user_bad(void);
 
-#define __copy_user(to, from, n)			\
+#define ___copy_to_user(to, from, n)			\
 do {							\
 	int w0, w1, w2, w3;				\
 	asm volatile(					\
@@ -289,31 +289,34 @@
 	"       subi    %0, 4           \n"		\
 	"       br      3b              \n"		\
 	"5:     cmpnei  %0, 0           \n"  /* 1B */   \
-	"       bf      8f              \n"		\
+	"       bf      13f             \n"		\
 	"       ldb     %3, (%2, 0)     \n"		\
 	"6:     stb     %3, (%1, 0)     \n"		\
 	"       addi    %2,  1          \n"		\
 	"       addi    %1,  1          \n"		\
 	"       subi    %0,  1          \n"		\
 	"       br      5b              \n"		\
-	"7:     br      8f              \n"		\
+	"7:     subi	%0,  4          \n"		\
+	"8:     subi	%0,  4          \n"		\
+	"12:    subi	%0,  4          \n"		\
+	"       br      13f             \n"		\
 	".section __ex_table, \"a\"     \n"		\
 	".align   2                     \n"		\
-	".long    2b, 7b                \n"		\
-	".long    9b, 7b                \n"		\
-	".long   10b, 7b                \n"		\
+	".long    2b, 13f               \n"		\
+	".long    4b, 13f               \n"		\
+	".long    6b, 13f               \n"		\
+	".long    9b, 12b               \n"		\
+	".long   10b, 8b                \n"		\
 	".long   11b, 7b                \n"		\
-	".long    4b, 7b                \n"		\
-	".long    6b, 7b                \n"		\
 	".previous                      \n"		\
-	"8:                             \n"		\
+	"13:                            \n"		\
 	: "=r"(n), "=r"(to), "=r"(from), "=r"(w0),	\
 	  "=r"(w1), "=r"(w2), "=r"(w3)			\
 	: "0"(n), "1"(to), "2"(from)			\
 	: "memory");					\
 } while (0)
 
-#define __copy_user_zeroing(to, from, n)		\
+#define ___copy_from_user(to, from, n)			\
 do {							\
 	int tmp;					\
 	int nsave;					\
@@ -356,22 +359,22 @@
 	"       addi    %1,  1          \n"		\
 	"       subi    %0,  1          \n"		\
 	"       br      5b              \n"		\
-	"8:     mov     %3, %0          \n"		\
-	"       movi    %4, 0           \n"		\
-	"9:     stb     %4, (%1, 0)     \n"		\
-	"       addi    %1, 1           \n"		\
-	"       subi    %3, 1           \n"		\
-	"       cmpnei  %3, 0           \n"		\
-	"       bt      9b              \n"		\
-	"       br      7f              \n"		\
+	"8:     stw     %3, (%1, 0)     \n"		\
+	"       subi    %0, 4           \n"		\
+	"       bf      7f              \n"		\
+	"9:     subi    %0, 8           \n"		\
+	"       bf      7f              \n"		\
+	"13:    stw     %3, (%1, 8)     \n"		\
+	"       subi    %0, 12          \n"		\
+	"       bf      7f              \n"		\
 	".section __ex_table, \"a\"     \n"		\
 	".align   2                     \n"		\
-	".long    2b, 8b                \n"		\
+	".long    2b, 7f                \n"		\
+	".long    4b, 7f                \n"		\
+	".long    6b, 7f                \n"		\
 	".long   10b, 8b                \n"		\
-	".long   11b, 8b                \n"		\
-	".long   12b, 8b                \n"		\
-	".long    4b, 8b                \n"		\
-	".long    6b, 8b                \n"		\
+	".long   11b, 9b                \n"		\
+	".long   12b,13b                \n"		\
 	".previous                      \n"		\
 	"7:                             \n"		\
 	: "=r"(n), "=r"(to), "=r"(from), "=r"(nsave),	\
--- linux-ein-5.4.0.orig/arch/csky/include/uapi/asm/unistd.h
+++ linux-ein-5.4.0/arch/csky/include/uapi/asm/unistd.h
@@ -1,7 +1,10 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
 
+#define __ARCH_WANT_STAT64
+#define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SYS_CLONE
+#define __ARCH_WANT_SYS_CLONE3
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #include <asm-generic/unistd.h>
--- linux-ein-5.4.0.orig/arch/csky/kernel/atomic.S
+++ linux-ein-5.4.0/arch/csky/kernel/atomic.S
@@ -17,10 +17,12 @@
 	mfcr	a3, epc
 	addi	a3, TRAP0_SIZE
 
-	subi    sp, 8
+	subi    sp, 16
 	stw     a3, (sp, 0)
 	mfcr    a3, epsr
 	stw     a3, (sp, 4)
+	mfcr	a3, usp
+	stw     a3, (sp, 8)
 
 	psrset	ee
 #ifdef CONFIG_CPU_HAS_LDSTEX
@@ -47,7 +49,9 @@
 	mtcr	a3, epc
 	ldw     a3, (sp, 4)
 	mtcr	a3, epsr
-	addi	sp, 8
+	ldw     a3, (sp, 8)
+	mtcr	a3, usp
+	addi	sp, 16
 	KSPTOUSP
 	rte
 END(csky_cmpxchg)
--- linux-ein-5.4.0.orig/arch/csky/kernel/entry.S
+++ linux-ein-5.4.0/arch/csky/kernel/entry.S
@@ -170,8 +170,10 @@
 	ldw	a3, (sp, LSAVE_A3)
 #if defined(__CSKYABIV2__)
 	subi	sp, 8
-	stw	r5, (sp, 0x4)
-	stw	r4, (sp, 0x0)
+	ldw	r9, (sp, LSAVE_A4)
+	stw	r9, (sp, 0x0)
+	ldw	r9, (sp, LSAVE_A5)
+	stw	r9, (sp, 0x4)
 #else
 	ldw	r6, (sp, LSAVE_A4)
 	ldw	r7, (sp, LSAVE_A5)
@@ -318,8 +320,6 @@
 
 	mfcr	a2, psr			/* Save PSR value */
 	stw	a2, (a3, THREAD_SR)	/* Save PSR in task struct */
-	bclri	a2, 6			/* Disable interrupts */
-	mtcr	a2, psr
 
 	SAVE_SWITCH_STACK
 
--- linux-ein-5.4.0.orig/arch/csky/kernel/head.S
+++ linux-ein-5.4.0/arch/csky/kernel/head.S
@@ -21,6 +21,11 @@
 ENTRY(_start_smp_secondary)
 	SETUP_MMU
 
+	/* copy msa1 from CPU0 */
+	lrw     r6, secondary_msa1
+	ld.w	r6, (r6, 0)
+	mtcr	r6, cr<31, 15>
+
 	/* set stack point */
 	lrw     r6, secondary_stack
 	ld.w	r6, (r6, 0)
--- linux-ein-5.4.0.orig/arch/csky/kernel/perf_callchain.c
+++ linux-ein-5.4.0/arch/csky/kernel/perf_callchain.c
@@ -12,12 +12,17 @@
 
 static int unwind_frame_kernel(struct stackframe *frame)
 {
-	if (kstack_end((void *)frame->fp))
+	unsigned long low = (unsigned long)task_stack_page(current);
+	unsigned long high = low + THREAD_SIZE;
+
+	if (unlikely(frame->fp < low || frame->fp > high))
 		return -EPERM;
-	if (frame->fp & 0x3 || frame->fp < TASK_SIZE)
+
+	if (kstack_end((void *)frame->fp) || frame->fp & 0x3)
 		return -EPERM;
 
 	*frame = *(struct stackframe *)frame->fp;
+
 	if (__kernel_text_address(frame->lr)) {
 		int graph = 0;
 
@@ -81,10 +86,11 @@
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 
 	/* C-SKY does not support virtualization. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
+	if (guest_cbs && guest_cbs->is_in_guest())
 		return;
 
 	fp = regs->regs[4];
@@ -105,10 +111,11 @@
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
 	/* C-SKY does not support virtualization. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		pr_warn("C-SKY does not support perf in guest mode!");
 		return;
 	}
--- linux-ein-5.4.0.orig/arch/csky/kernel/process.c
+++ linux-ein-5.4.0/arch/csky/kernel/process.c
@@ -34,10 +34,11 @@
 	return sw->r15;
 }
 
-int copy_thread(unsigned long clone_flags,
+int copy_thread_tls(unsigned long clone_flags,
 		unsigned long usp,
 		unsigned long kthread_arg,
-		struct task_struct *p)
+		struct task_struct *p,
+		unsigned long tls)
 {
 	struct switch_stack *childstack;
 	struct pt_regs *childregs = task_pt_regs(p);
@@ -64,7 +65,7 @@
 			childregs->usp = usp;
 		if (clone_flags & CLONE_SETTLS)
 			task_thread_info(p)->tp_value = childregs->tls
-						      = childregs->regs[0];
+						      = tls;
 
 		childregs->a0 = 0;
 		childstack->r15 = (unsigned long) ret_from_fork;
--- linux-ein-5.4.0.orig/arch/csky/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/csky/kernel/ptrace.c
@@ -96,7 +96,8 @@
 	if (ret)
 		return ret;
 
-	regs.sr = task_pt_regs(target)->sr;
+	/* BIT(0) of regs.sr is Condition Code/Carry bit */
+	regs.sr = (regs.sr & BIT(0)) | (task_pt_regs(target)->sr & ~BIT(0));
 #ifdef CONFIG_CPU_HAS_HILO
 	regs.dcsr = task_pt_regs(target)->dcsr;
 #endif
--- linux-ein-5.4.0.orig/arch/csky/kernel/setup.c
+++ linux-ein-5.4.0/arch/csky/kernel/setup.c
@@ -24,26 +24,9 @@
 };
 #endif
 
-phys_addr_t __init_memblock memblock_end_of_REG0(void)
-{
-	return (memblock.memory.regions[0].base +
-		memblock.memory.regions[0].size);
-}
-
-phys_addr_t __init_memblock memblock_start_of_REG1(void)
-{
-	return memblock.memory.regions[1].base;
-}
-
-size_t __init_memblock memblock_size_of_REG1(void)
-{
-	return memblock.memory.regions[1].size;
-}
-
 static void __init csky_memblock_init(void)
 {
 	unsigned long zone_size[MAX_NR_ZONES];
-	unsigned long zhole_size[MAX_NR_ZONES];
 	signed long size;
 
 	memblock_reserve(__pa(_stext), _end - _stext);
@@ -57,54 +40,36 @@
 	memblock_dump_all();
 
 	memset(zone_size, 0, sizeof(zone_size));
-	memset(zhole_size, 0, sizeof(zhole_size));
 
 	min_low_pfn = PFN_UP(memblock_start_of_DRAM());
-	max_pfn	    = PFN_DOWN(memblock_end_of_DRAM());
-
-	max_low_pfn = PFN_UP(memblock_end_of_REG0());
-	if (max_low_pfn == 0)
-		max_low_pfn = max_pfn;
+	max_low_pfn = max_pfn = PFN_DOWN(memblock_end_of_DRAM());
 
 	size = max_pfn - min_low_pfn;
 
-	if (memblock.memory.cnt > 1) {
-		zone_size[ZONE_NORMAL]  =
-			PFN_DOWN(memblock_start_of_REG1()) - min_low_pfn;
-		zhole_size[ZONE_NORMAL] =
-			PFN_DOWN(memblock_start_of_REG1()) - max_low_pfn;
+	if (size <= PFN_DOWN(SSEG_SIZE - PHYS_OFFSET_OFFSET))
+		zone_size[ZONE_NORMAL] = size;
+	else if (size < PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET)) {
+		zone_size[ZONE_NORMAL] =
+				PFN_DOWN(SSEG_SIZE - PHYS_OFFSET_OFFSET);
+		max_low_pfn = min_low_pfn + zone_size[ZONE_NORMAL];
 	} else {
-		if (size <= PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET))
-			zone_size[ZONE_NORMAL] = max_pfn - min_low_pfn;
-		else {
-			zone_size[ZONE_NORMAL] =
+		zone_size[ZONE_NORMAL] =
 				PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
-			max_low_pfn = min_low_pfn + zone_size[ZONE_NORMAL];
-		}
+		max_low_pfn = min_low_pfn + zone_size[ZONE_NORMAL];
+		write_mmu_msa1(read_mmu_msa0() + SSEG_SIZE);
 	}
 
 #ifdef CONFIG_HIGHMEM
-	size = 0;
-	if (memblock.memory.cnt > 1) {
-		size = PFN_DOWN(memblock_size_of_REG1());
-		highstart_pfn = PFN_DOWN(memblock_start_of_REG1());
-	} else {
-		size = max_pfn - min_low_pfn -
-			PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
-		highstart_pfn =  min_low_pfn +
-			PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
-	}
-
-	if (size > 0)
-		zone_size[ZONE_HIGHMEM] = size;
+	zone_size[ZONE_HIGHMEM] = max_pfn - max_low_pfn;
 
-	highend_pfn = max_pfn;
+	highstart_pfn = max_low_pfn;
+	highend_pfn   = max_pfn;
 #endif
 	memblock_set_current_limit(PFN_PHYS(max_low_pfn));
 
 	dma_contiguous_reserve(0);
 
-	free_area_init_node(0, zone_size, min_low_pfn, zhole_size);
+	free_area_init_node(0, zone_size, min_low_pfn, NULL);
 }
 
 void __init setup_arch(char **cmdline_p)
--- linux-ein-5.4.0.orig/arch/csky/kernel/signal.c
+++ linux-ein-5.4.0/arch/csky/kernel/signal.c
@@ -52,10 +52,14 @@
 	struct sigcontext __user *sc)
 {
 	int err = 0;
+	unsigned long sr = regs->sr;
 
 	/* sc_pt_regs is structured the same as the start of pt_regs */
 	err |= __copy_from_user(regs, &sc->sc_pt_regs, sizeof(struct pt_regs));
 
+	/* BIT(0) of regs->sr is Condition Code/Carry bit */
+	regs->sr = (sr & ~1) | (regs->sr & 1);
+
 	/* Restore the floating-point state. */
 	err |= restore_fpu_state(sc);
 
--- linux-ein-5.4.0.orig/arch/csky/kernel/smp.c
+++ linux-ein-5.4.0/arch/csky/kernel/smp.c
@@ -22,6 +22,9 @@
 #include <asm/sections.h>
 #include <asm/mmu_context.h>
 #include <asm/pgalloc.h>
+#ifdef CONFIG_CPU_HAS_FPU
+#include <abi/fpu.h>
+#endif
 
 struct ipi_data_struct {
 	unsigned long bits ____cacheline_aligned;
@@ -120,7 +123,7 @@
 	int rc;
 
 	if (ipi_irq == 0)
-		panic("%s IRQ mapping failed\n", __func__);
+		return;
 
 	rc = request_percpu_irq(ipi_irq, handle_ipi, "IPI Interrupt",
 				&ipi_dummy_dev);
@@ -156,6 +159,8 @@
 volatile unsigned int secondary_ccr;
 volatile unsigned int secondary_stack;
 
+unsigned long secondary_msa1;
+
 int __cpu_up(unsigned int cpu, struct task_struct *tidle)
 {
 	unsigned long mask = 1 << cpu;
@@ -164,6 +169,7 @@
 		(unsigned int) task_stack_page(tidle) + THREAD_SIZE - 8;
 	secondary_hint = mfcr("cr31");
 	secondary_ccr  = mfcr("cr18");
+	secondary_msa1 = read_mmu_msa1();
 
 	/*
 	 * Because other CPUs are in reset status, we must flush data
--- linux-ein-5.4.0.orig/arch/csky/kernel/traps.c
+++ linux-ein-5.4.0/arch/csky/kernel/traps.c
@@ -85,7 +85,7 @@
 	pr_err("%s: %08x\n", str, nr);
 	show_regs(regs);
 	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 void buserr(struct pt_regs *regs)
@@ -115,8 +115,9 @@
 	int sig;
 	unsigned long vector;
 	siginfo_t info;
+	struct task_struct *tsk = current;
 
-	vector = (mfcr("psr") >> 16) & 0xff;
+	vector = (regs->sr >> 16) & 0xff;
 
 	switch (vector) {
 	case VEC_ZERODIV:
@@ -129,6 +130,7 @@
 		sig = SIGTRAP;
 		break;
 	case VEC_ILLEGAL:
+		tsk->thread.trap_no = vector;
 		die_if_kernel("Kernel mode ILLEGAL", regs, vector);
 #ifndef CONFIG_CPU_NO_USER_BKPT
 		if (*(uint16_t *)instruction_pointer(regs) != USR_BKPT)
@@ -146,16 +148,20 @@
 		sig = SIGTRAP;
 		break;
 	case VEC_ACCESS:
+		tsk->thread.trap_no = vector;
 		return buserr(regs);
 #ifdef CONFIG_CPU_NEED_SOFTALIGN
 	case VEC_ALIGN:
+		tsk->thread.trap_no = vector;
 		return csky_alignment(regs);
 #endif
 #ifdef CONFIG_CPU_HAS_FPU
 	case VEC_FPE:
+		tsk->thread.trap_no = vector;
 		die_if_kernel("Kernel mode FPE", regs, vector);
 		return fpu_fpe(regs);
 	case VEC_PRIV:
+		tsk->thread.trap_no = vector;
 		die_if_kernel("Kernel mode PRIV", regs, vector);
 		if (fpu_libc_helper(regs))
 			return;
@@ -164,5 +170,8 @@
 		sig = SIGSEGV;
 		break;
 	}
+
+	tsk->thread.trap_no = vector;
+
 	send_sig(sig, current, 0);
 }
--- linux-ein-5.4.0.orig/arch/csky/lib/usercopy.c
+++ linux-ein-5.4.0/arch/csky/lib/usercopy.c
@@ -7,10 +7,7 @@
 unsigned long raw_copy_from_user(void *to, const void *from,
 			unsigned long n)
 {
-	if (access_ok(from, n))
-		__copy_user_zeroing(to, from, n);
-	else
-		memset(to, 0, n);
+	___copy_from_user(to, from, n);
 	return n;
 }
 EXPORT_SYMBOL(raw_copy_from_user);
@@ -18,8 +15,7 @@
 unsigned long raw_copy_to_user(void *to, const void *from,
 			unsigned long n)
 {
-	if (access_ok(to, n))
-		__copy_user(to, from, n);
+	___copy_to_user(to, from, n);
 	return n;
 }
 EXPORT_SYMBOL(raw_copy_to_user);
--- linux-ein-5.4.0.orig/arch/csky/mm/Makefile
+++ linux-ein-5.4.0/arch/csky/mm/Makefile
@@ -1,8 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0-only
 ifeq ($(CONFIG_CPU_HAS_CACHEV2),y)
 obj-y +=			cachev2.o
+CFLAGS_REMOVE_cachev2.o = $(CC_FLAGS_FTRACE)
 else
 obj-y +=			cachev1.o
+CFLAGS_REMOVE_cachev1.o = $(CC_FLAGS_FTRACE)
 endif
 
 obj-y +=			dma-mapping.o
--- linux-ein-5.4.0.orig/arch/csky/mm/dma-mapping.c
+++ linux-ein-5.4.0/arch/csky/mm/dma-mapping.c
@@ -58,8 +58,8 @@
 	cache_op(page_to_phys(page), size, dma_wbinv_set_zero_range);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-			      size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_TO_DEVICE:
@@ -74,8 +74,8 @@
 	}
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-			   size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_TO_DEVICE:
--- linux-ein-5.4.0.orig/arch/csky/mm/fault.c
+++ linux-ein-5.4.0/arch/csky/mm/fault.c
@@ -179,11 +179,14 @@
 bad_area_nosemaphore:
 	/* User mode accesses just cause a SIGSEGV */
 	if (user_mode(regs)) {
+		tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
 		force_sig_fault(SIGSEGV, si_code, (void __user *)address);
 		return;
 	}
 
 no_context:
+	tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
+
 	/* Are we prepared to handle this kernel fault? */
 	if (fixup_exception(regs))
 		return;
@@ -198,6 +201,8 @@
 	die_if_kernel("Oops", regs, write);
 
 out_of_memory:
+	tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
+
 	/*
 	 * We ran out of memory, call the OOM killer, and return the userspace
 	 * (which will retry the fault, or kill us if we got oom-killed).
@@ -206,6 +211,8 @@
 	return;
 
 do_sigbus:
+	tsk->thread.trap_no = (regs->sr >> 16) & 0xff;
+
 	up_read(&mm->mmap_sem);
 
 	/* Kernel mode? Handle exceptions or die */
--- linux-ein-5.4.0.orig/arch/csky/mm/init.c
+++ linux-ein-5.4.0/arch/csky/mm/init.c
@@ -31,6 +31,7 @@
 
 pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
 pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned_bss;
+EXPORT_SYMBOL(invalid_pte_table);
 unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)]
 						__page_aligned_bss;
 EXPORT_SYMBOL(empty_zero_page);
--- linux-ein-5.4.0.orig/arch/h8300/kernel/asm-offsets.c
+++ linux-ein-5.4.0/arch/h8300/kernel/asm-offsets.c
@@ -63,6 +63,9 @@
 	OFFSET(TI_FLAGS, thread_info, flags);
 	OFFSET(TI_CPU, thread_info, cpu);
 	OFFSET(TI_PRE, thread_info, preempt_count);
+#ifdef CONFIG_PREEMPTION
+	DEFINE(TI_PRE_COUNT, offsetof(struct thread_info, preempt_count));
+#endif
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/h8300/kernel/traps.c
+++ linux-ein-5.4.0/arch/h8300/kernel/traps.c
@@ -17,6 +17,7 @@
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
+#include <linux/sched/task.h>
 #include <linux/mm_types.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -110,7 +111,7 @@
 	dump(fp);
 
 	spin_unlock_irq(&die_lock);
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 static int kstack_depth_to_print = 24;
--- linux-ein-5.4.0.orig/arch/h8300/mm/fault.c
+++ linux-ein-5.4.0/arch/h8300/mm/fault.c
@@ -52,7 +52,7 @@
 	printk(" at virtual address %08lx\n", address);
 	if (!user_mode(regs))
 		die("Oops", regs, error_code);
-	do_exit(SIGKILL);
+	make_task_dead(SIGKILL);
 
 	return 1;
 }
--- linux-ein-5.4.0.orig/arch/hexagon/include/asm/atomic.h
+++ linux-ein-5.4.0/arch/hexagon/include/asm/atomic.h
@@ -91,7 +91,7 @@
 		"1:	%0 = memw_locked(%1);\n"			\
 		"	%0 = "#op "(%0,%2);\n"				\
 		"	memw_locked(%1,P3)=%0;\n"			\
-		"	if !P3 jump 1b;\n"				\
+		"	if (!P3) jump 1b;\n"				\
 		: "=&r" (output)					\
 		: "r" (&v->counter), "r" (i)				\
 		: "memory", "p3"					\
@@ -107,7 +107,7 @@
 		"1:	%0 = memw_locked(%1);\n"			\
 		"	%0 = "#op "(%0,%2);\n"				\
 		"	memw_locked(%1,P3)=%0;\n"			\
-		"	if !P3 jump 1b;\n"				\
+		"	if (!P3) jump 1b;\n"				\
 		: "=&r" (output)					\
 		: "r" (&v->counter), "r" (i)				\
 		: "memory", "p3"					\
@@ -124,7 +124,7 @@
 		"1:	%0 = memw_locked(%2);\n"			\
 		"	%1 = "#op "(%0,%3);\n"				\
 		"	memw_locked(%2,P3)=%1;\n"			\
-		"	if !P3 jump 1b;\n"				\
+		"	if (!P3) jump 1b;\n"				\
 		: "=&r" (output), "=&r" (val)				\
 		: "r" (&v->counter), "r" (i)				\
 		: "memory", "p3"					\
@@ -173,7 +173,7 @@
 		"	}"
 		"	memw_locked(%2, p3) = %1;"
 		"	{"
-		"		if !p3 jump 1b;"
+		"		if (!p3) jump 1b;"
 		"	}"
 		"2:"
 		: "=&r" (__oldval), "=&r" (tmp)
--- linux-ein-5.4.0.orig/arch/hexagon/include/asm/bitops.h
+++ linux-ein-5.4.0/arch/hexagon/include/asm/bitops.h
@@ -38,7 +38,7 @@
 	"1:	R12 = memw_locked(R10);\n"
 	"	{ P0 = tstbit(R12,R11); R12 = clrbit(R12,R11); }\n"
 	"	memw_locked(R10,P1) = R12;\n"
-	"	{if !P1 jump 1b; %0 = mux(P0,#1,#0);}\n"
+	"	{if (!P1) jump 1b; %0 = mux(P0,#1,#0);}\n"
 	: "=&r" (oldval)
 	: "r" (addr), "r" (nr)
 	: "r10", "r11", "r12", "p0", "p1", "memory"
@@ -62,7 +62,7 @@
 	"1:	R12 = memw_locked(R10);\n"
 	"	{ P0 = tstbit(R12,R11); R12 = setbit(R12,R11); }\n"
 	"	memw_locked(R10,P1) = R12;\n"
-	"	{if !P1 jump 1b; %0 = mux(P0,#1,#0);}\n"
+	"	{if (!P1) jump 1b; %0 = mux(P0,#1,#0);}\n"
 	: "=&r" (oldval)
 	: "r" (addr), "r" (nr)
 	: "r10", "r11", "r12", "p0", "p1", "memory"
@@ -88,7 +88,7 @@
 	"1:	R12 = memw_locked(R10);\n"
 	"	{ P0 = tstbit(R12,R11); R12 = togglebit(R12,R11); }\n"
 	"	memw_locked(R10,P1) = R12;\n"
-	"	{if !P1 jump 1b; %0 = mux(P0,#1,#0);}\n"
+	"	{if (!P1) jump 1b; %0 = mux(P0,#1,#0);}\n"
 	: "=&r" (oldval)
 	: "r" (addr), "r" (nr)
 	: "r10", "r11", "r12", "p0", "p1", "memory"
@@ -223,7 +223,7 @@
 	int r;
 
 	asm("{ P0 = cmp.eq(%1,#0); %0 = ct0(%1);}\n"
-		"{ if P0 %0 = #0; if !P0 %0 = add(%0,#1);}\n"
+		"{ if (P0) %0 = #0; if (!P0) %0 = add(%0,#1);}\n"
 		: "=&r" (r)
 		: "r" (x)
 		: "p0");
--- linux-ein-5.4.0.orig/arch/hexagon/include/asm/cmpxchg.h
+++ linux-ein-5.4.0/arch/hexagon/include/asm/cmpxchg.h
@@ -30,7 +30,7 @@
 	__asm__ __volatile__ (
 	"1:	%0 = memw_locked(%1);\n"    /*  load into retval */
 	"	memw_locked(%1,P0) = %2;\n" /*  store into memory */
-	"	if !P0 jump 1b;\n"
+	"	if (!P0) jump 1b;\n"
 	: "=&r" (retval)
 	: "r" (ptr), "r" (x)
 	: "memory", "p0"
--- linux-ein-5.4.0.orig/arch/hexagon/include/asm/futex.h
+++ linux-ein-5.4.0/arch/hexagon/include/asm/futex.h
@@ -16,7 +16,7 @@
 	    /* For example: %1 = %4 */ \
 	    insn \
 	"2: memw_locked(%3,p2) = %1;\n" \
-	"   if !p2 jump 1b;\n" \
+	"   if (!p2) jump 1b;\n" \
 	"   %1 = #0;\n" \
 	"3:\n" \
 	".section .fixup,\"ax\"\n" \
@@ -84,10 +84,10 @@
 	"1: %1 = memw_locked(%3)\n"
 	"   {\n"
 	"      p2 = cmp.eq(%1,%4)\n"
-	"      if !p2.new jump:NT 3f\n"
+	"      if (!p2.new) jump:NT 3f\n"
 	"   }\n"
 	"2: memw_locked(%3,p2) = %5\n"
-	"   if !p2 jump 1b\n"
+	"   if (!p2) jump 1b\n"
 	"3:\n"
 	".section .fixup,\"ax\"\n"
 	"4: %0 = #%6\n"
--- linux-ein-5.4.0.orig/arch/hexagon/include/asm/io.h
+++ linux-ein-5.4.0/arch/hexagon/include/asm/io.h
@@ -171,16 +171,10 @@
 #define writew_relaxed __raw_writew
 #define writel_relaxed __raw_writel
 
-/*
- * Need an mtype somewhere in here, for cache type deals?
- * This is probably too long for an inline.
- */
-void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size);
+void __iomem *ioremap(unsigned long phys_addr, unsigned long size);
+#define ioremap_nocache ioremap
+#define ioremap_uc(X, Y) ioremap((X), (Y))
 
-static inline void __iomem *ioremap(unsigned long phys_addr, unsigned long size)
-{
-	return ioremap_nocache(phys_addr, size);
-}
 
 static inline void iounmap(volatile void __iomem *addr)
 {
--- linux-ein-5.4.0.orig/arch/hexagon/include/asm/spinlock.h
+++ linux-ein-5.4.0/arch/hexagon/include/asm/spinlock.h
@@ -30,9 +30,9 @@
 	__asm__ __volatile__(
 		"1:	R6 = memw_locked(%0);\n"
 		"	{ P3 = cmp.ge(R6,#0); R6 = add(R6,#1);}\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		"	memw_locked(%0,P3) = R6;\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -46,7 +46,7 @@
 		"1:	R6 = memw_locked(%0);\n"
 		"	R6 = add(R6,#-1);\n"
 		"	memw_locked(%0,P3) = R6\n"
-		"	if !P3 jump 1b;\n"
+		"	if (!P3) jump 1b;\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -61,7 +61,7 @@
 	__asm__ __volatile__(
 		"	R6 = memw_locked(%1);\n"
 		"	{ %0 = #0; P3 = cmp.ge(R6,#0); R6 = add(R6,#1);}\n"
-		"	{ if !P3 jump 1f; }\n"
+		"	{ if (!P3) jump 1f; }\n"
 		"	memw_locked(%1,P3) = R6;\n"
 		"	{ %0 = P3 }\n"
 		"1:\n"
@@ -78,9 +78,9 @@
 	__asm__ __volatile__(
 		"1:	R6 = memw_locked(%0)\n"
 		"	{ P3 = cmp.eq(R6,#0);  R6 = #-1;}\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		"	memw_locked(%0,P3) = R6;\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -94,7 +94,7 @@
 	__asm__ __volatile__(
 		"	R6 = memw_locked(%1)\n"
 		"	{ %0 = #0; P3 = cmp.eq(R6,#0);  R6 = #-1;}\n"
-		"	{ if !P3 jump 1f; }\n"
+		"	{ if (!P3) jump 1f; }\n"
 		"	memw_locked(%1,P3) = R6;\n"
 		"	%0 = P3;\n"
 		"1:\n"
@@ -117,9 +117,9 @@
 	__asm__ __volatile__(
 		"1:	R6 = memw_locked(%0);\n"
 		"	P3 = cmp.eq(R6,#0);\n"
-		"	{ if !P3 jump 1b; R6 = #1; }\n"
+		"	{ if (!P3) jump 1b; R6 = #1; }\n"
 		"	memw_locked(%0,P3) = R6;\n"
-		"	{ if !P3 jump 1b; }\n"
+		"	{ if (!P3) jump 1b; }\n"
 		:
 		: "r" (&lock->lock)
 		: "memory", "r6", "p3"
@@ -139,7 +139,7 @@
 	__asm__ __volatile__(
 		"	R6 = memw_locked(%1);\n"
 		"	P3 = cmp.eq(R6,#0);\n"
-		"	{ if !P3 jump 1f; R6 = #1; %0 = #0; }\n"
+		"	{ if (!P3) jump 1f; R6 = #1; %0 = #0; }\n"
 		"	memw_locked(%1,P3) = R6;\n"
 		"	%0 = P3;\n"
 		"1:\n"
--- linux-ein-5.4.0.orig/arch/hexagon/kernel/dma.c
+++ linux-ein-5.4.0/arch/hexagon/kernel/dma.c
@@ -55,8 +55,8 @@
 	gen_pool_free(coherent_pool, (unsigned long) vaddr, size);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	void *addr = phys_to_virt(paddr);
 
--- linux-ein-5.4.0.orig/arch/hexagon/kernel/hexagon_ksyms.c
+++ linux-ein-5.4.0/arch/hexagon/kernel/hexagon_ksyms.c
@@ -20,7 +20,7 @@
 EXPORT_SYMBOL(__vmsetie);
 EXPORT_SYMBOL(__vmyield);
 EXPORT_SYMBOL(empty_zero_page);
-EXPORT_SYMBOL(ioremap_nocache);
+EXPORT_SYMBOL(ioremap);
 EXPORT_SYMBOL(memcpy);
 EXPORT_SYMBOL(memset);
 
--- linux-ein-5.4.0.orig/arch/hexagon/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/hexagon/kernel/stacktrace.c
@@ -11,8 +11,6 @@
 #include <linux/thread_info.h>
 #include <linux/module.h>
 
-register unsigned long current_frame_pointer asm("r30");
-
 struct stackframe {
 	unsigned long fp;
 	unsigned long rets;
@@ -30,7 +28,7 @@
 
 	low = (unsigned long)task_stack_page(current);
 	high = low + THREAD_SIZE;
-	fp = current_frame_pointer;
+	fp = (unsigned long)__builtin_frame_address(0);
 
 	while (fp >= low && fp <= (high - sizeof(*frame))) {
 		frame = (struct stackframe *)fp;
--- linux-ein-5.4.0.orig/arch/hexagon/kernel/traps.c
+++ linux-ein-5.4.0/arch/hexagon/kernel/traps.c
@@ -221,7 +221,7 @@
 		panic("Fatal exception");
 
 	oops_exit();
-	do_exit(err);
+	make_task_dead(err);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/hexagon/kernel/vm_entry.S
+++ linux-ein-5.4.0/arch/hexagon/kernel/vm_entry.S
@@ -369,7 +369,7 @@
 		R26.L = #LO(do_work_pending);
 		R0 = #VM_INT_DISABLE;
 	}
-	if P0 jump check_work_pending
+	if (P0) jump check_work_pending
 	{
 		R0 = R25;
 		callr R24
--- linux-ein-5.4.0.orig/arch/hexagon/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/hexagon/kernel/vmlinux.lds.S
@@ -60,13 +60,8 @@
 
 	_end = .;
 
-	/DISCARD/ : {
-		EXIT_TEXT
-		EXIT_DATA
-		EXIT_CALL
-	}
-
 	STABS_DEBUG
 	DWARF_DEBUG
 
+	DISCARDS
 }
--- linux-ein-5.4.0.orig/arch/hexagon/lib/io.c
+++ linux-ein-5.4.0/arch/hexagon/lib/io.c
@@ -27,6 +27,7 @@
 		*dst++ = *src;
 
 }
+EXPORT_SYMBOL(__raw_readsw);
 
 /*
  * __raw_writesw - read words a short at a time
@@ -47,6 +48,7 @@
 
 
 }
+EXPORT_SYMBOL(__raw_writesw);
 
 /*  Pretty sure len is pre-adjusted for the length of the access already */
 void __raw_readsl(const void __iomem *addr, void *data, int len)
@@ -62,6 +64,7 @@
 
 
 }
+EXPORT_SYMBOL(__raw_readsl);
 
 void __raw_writesl(void __iomem *addr, const void *data, int len)
 {
@@ -76,3 +79,4 @@
 
 
 }
+EXPORT_SYMBOL(__raw_writesl);
--- linux-ein-5.4.0.orig/arch/hexagon/mm/ioremap.c
+++ linux-ein-5.4.0/arch/hexagon/mm/ioremap.c
@@ -9,7 +9,7 @@
 #include <linux/vmalloc.h>
 #include <linux/mm.h>
 
-void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size)
+void __iomem *ioremap(unsigned long phys_addr, unsigned long size)
 {
 	unsigned long last_addr, addr;
 	unsigned long offset = phys_addr & ~PAGE_MASK;
--- linux-ein-5.4.0.orig/arch/ia64/Kconfig
+++ linux-ein-5.4.0/arch/ia64/Kconfig
@@ -8,6 +8,7 @@
 
 config IA64
 	bool
+	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_MIGHT_HAVE_PC_PARPORT
 	select ARCH_MIGHT_HAVE_PC_SERIO
 	select ACPI
@@ -360,7 +361,7 @@
 	depends on PROC_KCORE
 
 config IA64_MCA_RECOVERY
-	tristate "MCA recovery from errors other than TLB."
+	bool "MCA recovery from errors other than TLB."
 
 config PERFMON
 	bool "Performance monitor support"
--- linux-ein-5.4.0.orig/arch/ia64/Kconfig.debug
+++ linux-ein-5.4.0/arch/ia64/Kconfig.debug
@@ -39,7 +39,7 @@
 
 config IA64_DEBUG_CMPXCHG
 	bool "Turn on compare-and-exchange bug checking (slow!)"
-	depends on DEBUG_KERNEL
+	depends on DEBUG_KERNEL && PRINTK
 	help
 	  Selecting this option turns on bug checking for the IA-64
 	  compare-and-exchange instructions.  This is slow!  Itaniums
--- linux-ein-5.4.0.orig/arch/ia64/Makefile
+++ linux-ein-5.4.0/arch/ia64/Makefile
@@ -40,7 +40,7 @@
 endif
 
 quiet_cmd_gzip = GZIP    $@
-cmd_gzip = cat $(real-prereqs) | gzip -n -f -9 > $@
+cmd_gzip = cat $(real-prereqs) | $(KGZIP) -n -f -9 > $@
 
 quiet_cmd_objcopy = OBJCOPY $@
 cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
--- linux-ein-5.4.0.orig/arch/ia64/configs/zx1_defconfig
+++ linux-ein-5.4.0/arch/ia64/configs/zx1_defconfig
@@ -35,7 +35,6 @@
 CONFIG_CHR_DEV_ST=y
 CONFIG_CHR_DEV_OSST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/ia64/include/asm/module.h
+++ linux-ein-5.4.0/arch/ia64/include/asm/module.h
@@ -14,16 +14,20 @@
 struct elf64_shdr;			/* forward declration */
 
 struct mod_arch_specific {
+	/* Used only at module load time. */
 	struct elf64_shdr *core_plt;	/* core PLT section */
 	struct elf64_shdr *init_plt;	/* init PLT section */
 	struct elf64_shdr *got;		/* global offset table */
 	struct elf64_shdr *opd;		/* official procedure descriptors */
 	struct elf64_shdr *unwind;	/* unwind-table section */
 	unsigned long gp;		/* global-pointer for module */
+	unsigned int next_got_entry;	/* index of next available got entry */
 
+	/* Used at module run and cleanup time. */
 	void *core_unw_table;		/* core unwind-table cookie returned by unwinder */
 	void *init_unw_table;		/* init unwind-table cookie returned by unwinder */
-	unsigned int next_got_entry;	/* index of next available got entry */
+	void *opd_addr;			/* symbolize uses .opd to get to actual function */
+	unsigned long opd_size;
 };
 
 #define MODULE_PROC_FAMILY	"ia64"
--- linux-ein-5.4.0.orig/arch/ia64/include/asm/processor.h
+++ linux-ein-5.4.0/arch/ia64/include/asm/processor.h
@@ -552,7 +552,7 @@
 {
 	unsigned int reg = vector / 64;
 	unsigned int bit = vector % 64;
-	u64 irr;
+	unsigned long irr;
 
 	switch (reg) {
 	case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
--- linux-ein-5.4.0.orig/arch/ia64/include/asm/ptrace.h
+++ linux-ein-5.4.0/arch/ia64/include/asm/ptrace.h
@@ -54,8 +54,7 @@
 
 static inline unsigned long user_stack_pointer(struct pt_regs *regs)
 {
-	/* FIXME: should this be bspstore + nr_dirty regs? */
-	return regs->ar_bspstore;
+	return regs->r12;
 }
 
 static inline int is_syscall_success(struct pt_regs *regs)
@@ -79,11 +78,6 @@
 	unsigned long __ip = instruction_pointer(regs);			\
 	(__ip & ~3UL) + ((__ip & 3UL) << 2);				\
 })
-/*
- * Why not default?  Because user_stack_pointer() on ia64 gives register
- * stack backing store instead...
- */
-#define current_user_stack_pointer() (current_pt_regs()->r12)
 
   /* given a pointer to a task_struct, return the user's pt_regs */
 # define task_pt_regs(t)		(((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
--- linux-ein-5.4.0.orig/arch/ia64/include/asm/syscall.h
+++ linux-ein-5.4.0/arch/ia64/include/asm/syscall.h
@@ -32,7 +32,7 @@
 static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
-	return regs->r10 == -1 ? regs->r8:0;
+	return regs->r10 == -1 ? -regs->r8:0;
 }
 
 static inline long syscall_get_return_value(struct task_struct *task,
--- linux-ein-5.4.0.orig/arch/ia64/include/asm/timex.h
+++ linux-ein-5.4.0/arch/ia64/include/asm/timex.h
@@ -39,6 +39,7 @@
 	ret = ia64_getreg(_IA64_REG_AR_ITC);
 	return ret;
 }
+#define get_cycles get_cycles
 
 extern void ia64_cpu_local_tick (void);
 extern unsigned long long ia64_native_sched_clock (void);
--- linux-ein-5.4.0.orig/arch/ia64/kernel/Makefile
+++ linux-ein-5.4.0/arch/ia64/kernel/Makefile
@@ -41,7 +41,7 @@
 endif
 obj-$(CONFIG_INTEL_IOMMU)	+= pci-dma.o
 
-obj-$(CONFIG_BINFMT_ELF)	+= elfcore.o
+obj-$(CONFIG_ELF_CORE)		+= elfcore.o
 
 # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
 CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31
--- linux-ein-5.4.0.orig/arch/ia64/kernel/acpi.c
+++ linux-ein-5.4.0/arch/ia64/kernel/acpi.c
@@ -448,7 +448,8 @@
 	if (srat_num_cpus == 0) {
 		node_set_online(0);
 		node_cpuid[0].phys_id = hard_smp_processor_id();
-		return;
+		slit_distance(0, 0) = LOCAL_DISTANCE;
+		goto out;
 	}
 
 	/*
@@ -491,7 +492,7 @@
 			for (j = 0; j < MAX_NUMNODES; j++)
 				slit_distance(i, j) = i == j ?
 					LOCAL_DISTANCE : REMOTE_DISTANCE;
-		return;
+		goto out;
 	}
 
 	memset(numa_slit, -1, sizeof(numa_slit));
@@ -516,6 +517,8 @@
 		printk("\n");
 	}
 #endif
+out:
+	node_possible_map = node_online_map;
 }
 #endif				/* CONFIG_ACPI_NUMA */
 
--- linux-ein-5.4.0.orig/arch/ia64/kernel/err_inject.c
+++ linux-ein-5.4.0/arch/ia64/kernel/err_inject.c
@@ -59,7 +59,7 @@
 		char *buf)						\
 {									\
 	u32 cpu=dev->id;						\
-	return sprintf(buf, "%lx\n", name[cpu]);			\
+	return sprintf(buf, "%llx\n", name[cpu]);			\
 }
 
 #define store(name)							\
@@ -86,9 +86,9 @@
 
 #ifdef ERR_INJ_DEBUG
 	printk(KERN_DEBUG "pal_mc_err_inject for cpu%d:\n", cpu);
-	printk(KERN_DEBUG "err_type_info=%lx,\n", err_type_info[cpu]);
-	printk(KERN_DEBUG "err_struct_info=%lx,\n", err_struct_info[cpu]);
-	printk(KERN_DEBUG "err_data_buffer=%lx, %lx, %lx.\n",
+	printk(KERN_DEBUG "err_type_info=%llx,\n", err_type_info[cpu]);
+	printk(KERN_DEBUG "err_struct_info=%llx,\n", err_struct_info[cpu]);
+	printk(KERN_DEBUG "err_data_buffer=%llx, %llx, %llx.\n",
 			  err_data_buffer[cpu].data1,
 			  err_data_buffer[cpu].data2,
 			  err_data_buffer[cpu].data3);
@@ -117,8 +117,8 @@
 
 #ifdef ERR_INJ_DEBUG
 	printk(KERN_DEBUG "Returns: status=%d,\n", (int)status[cpu]);
-	printk(KERN_DEBUG "capabilities=%lx,\n", capabilities[cpu]);
-	printk(KERN_DEBUG "resources=%lx\n", resources[cpu]);
+	printk(KERN_DEBUG "capabilities=%llx,\n", capabilities[cpu]);
+	printk(KERN_DEBUG "resources=%llx\n", resources[cpu]);
 #endif
 	return size;
 }
@@ -131,7 +131,7 @@
 			char *buf)
 {
 	unsigned int cpu=dev->id;
-	return sprintf(buf, "%lx\n", phys_addr[cpu]);
+	return sprintf(buf, "%llx\n", phys_addr[cpu]);
 }
 
 static ssize_t
@@ -145,7 +145,7 @@
 	ret = get_user_pages_fast(virt_addr, 1, FOLL_WRITE, NULL);
 	if (ret<=0) {
 #ifdef ERR_INJ_DEBUG
-		printk("Virtual address %lx is not existing.\n",virt_addr);
+		printk("Virtual address %llx is not existing.\n", virt_addr);
 #endif
 		return -EINVAL;
 	}
@@ -163,7 +163,7 @@
 {
 	unsigned int cpu=dev->id;
 
-	return sprintf(buf, "%lx, %lx, %lx\n",
+	return sprintf(buf, "%llx, %llx, %llx\n",
 			err_data_buffer[cpu].data1,
 			err_data_buffer[cpu].data2,
 			err_data_buffer[cpu].data3);
@@ -178,13 +178,13 @@
 	int ret;
 
 #ifdef ERR_INJ_DEBUG
-	printk("write err_data_buffer=[%lx,%lx,%lx] on cpu%d\n",
+	printk("write err_data_buffer=[%llx,%llx,%llx] on cpu%d\n",
 		 err_data_buffer[cpu].data1,
 		 err_data_buffer[cpu].data2,
 		 err_data_buffer[cpu].data3,
 		 cpu);
 #endif
-	ret=sscanf(buf, "%lx, %lx, %lx",
+	ret = sscanf(buf, "%llx, %llx, %llx",
 			&err_data_buffer[cpu].data1,
 			&err_data_buffer[cpu].data2,
 			&err_data_buffer[cpu].data3);
--- linux-ein-5.4.0.orig/arch/ia64/kernel/kprobes.c
+++ linux-ein-5.4.0/arch/ia64/kernel/kprobes.c
@@ -411,7 +411,7 @@
 	struct hlist_node *tmp;
 	unsigned long flags, orig_ret_address = 0;
 	unsigned long trampoline_address =
-		((struct fnptr *)kretprobe_trampoline)->ip;
+		(unsigned long)dereference_function_descriptor(kretprobe_trampoline);
 
 	INIT_HLIST_HEAD(&empty_rp);
 	kretprobe_hash_lock(current, &head, &flags);
@@ -487,7 +487,7 @@
 	ri->ret_addr = (kprobe_opcode_t *)regs->b0;
 
 	/* Replace the return addr with trampoline addr */
-	regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip;
+	regs->b0 = (unsigned long)dereference_function_descriptor(kretprobe_trampoline);
 }
 
 /* Check the instruction in the slot is break */
@@ -991,14 +991,14 @@
 int __init arch_init_kprobes(void)
 {
 	trampoline_p.addr =
-		(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;
+		dereference_function_descriptor(kretprobe_trampoline);
 	return register_kprobe(&trampoline_p);
 }
 
 int __kprobes arch_trampoline_kprobe(struct kprobe *p)
 {
 	if (p->addr ==
-		(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip)
+		dereference_function_descriptor(kretprobe_trampoline))
 		return 1;
 
 	return 0;
--- linux-ein-5.4.0.orig/arch/ia64/kernel/mca.c
+++ linux-ein-5.4.0/arch/ia64/kernel/mca.c
@@ -1851,7 +1851,7 @@
 			data = mca_bootmem();
 			first_time = 0;
 		} else
-			data = (void *)__get_free_pages(GFP_KERNEL,
+			data = (void *)__get_free_pages(GFP_ATOMIC,
 							get_order(sz));
 		if (!data)
 			panic("Could not allocate MCA memory for cpu %d\n",
--- linux-ein-5.4.0.orig/arch/ia64/kernel/mca_drv.c
+++ linux-ein-5.4.0/arch/ia64/kernel/mca_drv.c
@@ -12,6 +12,7 @@
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/sched.h>
+#include <linux/sched/task.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/kallsyms.h>
@@ -176,7 +177,7 @@
 	spin_unlock(&mca_bh_lock);
 
 	/* This process is about to be killed itself */
-	do_exit(SIGKILL);
+	make_task_dead(SIGKILL);
 }
 
 /**
@@ -343,7 +344,7 @@
 
 	/* - 2 - */
 	sect_min_size = sal_log_sect_min_sizes[0];
-	for (i = 1; i < sizeof sal_log_sect_min_sizes/sizeof(size_t); i++)
+	for (i = 1; i < ARRAY_SIZE(sal_log_sect_min_sizes); i++)
 		if (sect_min_size > sal_log_sect_min_sizes[i])
 			sect_min_size = sal_log_sect_min_sizes[i];
 
--- linux-ein-5.4.0.orig/arch/ia64/kernel/module.c
+++ linux-ein-5.4.0/arch/ia64/kernel/module.c
@@ -905,9 +905,31 @@
 int
 module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod)
 {
+	struct mod_arch_specific *mas = &mod->arch;
+
 	DEBUGP("%s: init: entry=%p\n", __func__, mod->init);
-	if (mod->arch.unwind)
+	if (mas->unwind)
 		register_unwind_table(mod);
+
+	/*
+	 * ".opd" was already relocated to the final destination. Store
+	 * it's address for use in symbolizer.
+	 */
+	mas->opd_addr = (void *)mas->opd->sh_addr;
+	mas->opd_size = mas->opd->sh_size;
+
+	/*
+	 * Module relocation was already done at this point. Section
+	 * headers are about to be deleted. Wipe out load-time context.
+	 */
+	mas->core_plt = NULL;
+	mas->init_plt = NULL;
+	mas->got = NULL;
+	mas->opd = NULL;
+	mas->unwind = NULL;
+	mas->gp = 0;
+	mas->next_got_entry = 0;
+
 	return 0;
 }
 
@@ -926,10 +948,9 @@
 
 void *dereference_module_function_descriptor(struct module *mod, void *ptr)
 {
-	Elf64_Shdr *opd = mod->arch.opd;
+	struct mod_arch_specific *mas = &mod->arch;
 
-	if (ptr < (void *)opd->sh_addr ||
-			ptr >= (void *)(opd->sh_addr + opd->sh_size))
+	if (ptr < mas->opd_addr || ptr >= mas->opd_addr + mas->opd_size)
 		return ptr;
 
 	return dereference_function_descriptor(ptr);
--- linux-ein-5.4.0.orig/arch/ia64/kernel/process.c
+++ linux-ein-5.4.0/arch/ia64/kernel/process.c
@@ -444,7 +444,7 @@
 do_copy_task_regs (struct task_struct *task, struct unw_frame_info *info, void *arg)
 {
 	unsigned long mask, sp, nat_bits = 0, ar_rnat, urbs_end, cfm;
-	unsigned long uninitialized_var(ip);	/* GCC be quiet */
+	unsigned long ip;
 	elf_greg_t *dst = arg;
 	struct pt_regs *pt;
 	char nat;
--- linux-ein-5.4.0.orig/arch/ia64/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/ia64/kernel/ptrace.c
@@ -2147,27 +2147,39 @@
 {
 	struct syscall_get_set_args *args = data;
 	struct pt_regs *pt = args->regs;
-	unsigned long *krbs, cfm, ndirty;
+	unsigned long *krbs, cfm, ndirty, nlocals, nouts;
 	int i, count;
 
 	if (unw_unwind_to_user(info) < 0)
 		return;
 
+	/*
+	 * We get here via a few paths:
+	 * - break instruction: cfm is shared with caller.
+	 *   syscall args are in out= regs, locals are non-empty.
+	 * - epsinstruction: cfm is set by br.call
+	 *   locals don't exist.
+	 *
+	 * For both cases argguments are reachable in cfm.sof - cfm.sol.
+	 * CFM: [ ... | sor: 17..14 | sol : 13..7 | sof : 6..0 ]
+	 */
 	cfm = pt->cr_ifs;
+	nlocals = (cfm >> 7) & 0x7f; /* aka sol */
+	nouts = (cfm & 0x7f) - nlocals; /* aka sof - sol */
 	krbs = (unsigned long *)info->task + IA64_RBS_OFFSET/8;
 	ndirty = ia64_rse_num_regs(krbs, krbs + (pt->loadrs >> 19));
 
 	count = 0;
 	if (in_syscall(pt))
-		count = min_t(int, args->n, cfm & 0x7f);
+		count = min_t(int, args->n, nouts);
 
+	/* Iterate over outs. */
 	for (i = 0; i < count; i++) {
+		int j = ndirty + nlocals + i + args->i;
 		if (args->rw)
-			*ia64_rse_skip_regs(krbs, ndirty + i + args->i) =
-				args->args[i];
+			*ia64_rse_skip_regs(krbs, j) = args->args[i];
 		else
-			args->args[i] = *ia64_rse_skip_regs(krbs,
-				ndirty + i + args->i);
+			args->args[i] = *ia64_rse_skip_regs(krbs, j);
 	}
 
 	if (!args->rw) {
--- linux-ein-5.4.0.orig/arch/ia64/kernel/salinfo.c
+++ linux-ein-5.4.0/arch/ia64/kernel/salinfo.c
@@ -581,7 +581,7 @@
  * 'data' contains an integer that corresponds to the feature we're
  * testing
  */
-static int proc_salinfo_show(struct seq_file *m, void *v)
+static int __maybe_unused proc_salinfo_show(struct seq_file *m, void *v)
 {
 	unsigned long data = (unsigned long)v;
 	seq_puts(m, (sal_platform_features & data) ? "1\n" : "0\n");
--- linux-ein-5.4.0.orig/arch/ia64/kernel/setup.c
+++ linux-ein-5.4.0/arch/ia64/kernel/setup.c
@@ -1073,8 +1073,7 @@
 	}
 }
 
-void __init
-check_bugs (void)
+void __init arch_cpu_finalize_init(void)
 {
 	ia64_patch_mckinley_e9((unsigned long) __start___mckinley_e9_bundles,
 			       (unsigned long) __end___mckinley_e9_bundles);
--- linux-ein-5.4.0.orig/arch/ia64/kernel/traps.c
+++ linux-ein-5.4.0/arch/ia64/kernel/traps.c
@@ -85,7 +85,7 @@
 	if (panic_on_oops)
 		panic("Fatal exception");
 
-  	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/ia64/mm/contig.c
+++ linux-ein-5.4.0/arch/ia64/mm/contig.c
@@ -81,7 +81,7 @@
 	return __per_cpu_start + __per_cpu_offset[smp_processor_id()];
 }
 
-static inline void
+static inline __init void
 alloc_per_cpu_data(void)
 {
 	size_t size = PERCPU_PAGE_SIZE * num_possible_cpus();
--- linux-ein-5.4.0.orig/arch/ia64/mm/discontig.c
+++ linux-ein-5.4.0/arch/ia64/mm/discontig.c
@@ -95,7 +95,7 @@
  * acpi_boot_init() (which builds the node_to_cpu_mask array) hasn't been
  * called yet.  Note that node 0 will also count all non-existent cpus.
  */
-static int __meminit early_nr_cpus_node(int node)
+static int early_nr_cpus_node(int node)
 {
 	int cpu, n = 0;
 
@@ -110,7 +110,7 @@
  * compute_pernodesize - compute size of pernode data
  * @node: the node id.
  */
-static unsigned long __meminit compute_pernodesize(int node)
+static unsigned long compute_pernodesize(int node)
 {
 	unsigned long pernodesize = 0, cpus;
 
@@ -180,7 +180,7 @@
 void __init setup_per_cpu_areas(void)
 {
 	struct pcpu_alloc_info *ai;
-	struct pcpu_group_info *uninitialized_var(gi);
+	struct pcpu_group_info *gi;
 	unsigned int *cpu_map;
 	void *base;
 	unsigned long base_offset;
@@ -367,7 +367,7 @@
 	}
 }
 
-static void __meminit scatter_node_data(void)
+static void scatter_node_data(void)
 {
 	pg_data_t **dst;
 	int node;
--- linux-ein-5.4.0.orig/arch/ia64/mm/fault.c
+++ linux-ein-5.4.0/arch/ia64/mm/fault.c
@@ -272,7 +272,7 @@
 		regs = NULL;
 	bust_spinlocks(0);
 	if (regs)
-		do_exit(SIGKILL);
+		make_task_dead(SIGKILL);
 	return;
 
   out_of_memory:
--- linux-ein-5.4.0.orig/arch/ia64/mm/init.c
+++ linux-ein-5.4.0/arch/ia64/mm/init.c
@@ -73,8 +73,8 @@
  * DMA can be marked as "clean" so that lazy_mmu_prot_update() doesn't have to
  * flush them when they get mapped into an executable vm-area.
  */
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	unsigned long pfn = PHYS_PFN(paddr);
 
@@ -518,7 +518,7 @@
 	if (map_start < map_end)
 		memmap_init_zone((unsigned long)(map_end - map_start),
 				 args->nid, args->zone, page_to_pfn(map_start),
-				 MEMMAP_EARLY, NULL);
+				 MEMINIT_EARLY, NULL);
 	return 0;
 }
 
@@ -527,8 +527,8 @@
 	     unsigned long start_pfn)
 {
 	if (!vmem_map) {
-		memmap_init_zone(size, nid, zone, start_pfn, MEMMAP_EARLY,
-				NULL);
+		memmap_init_zone(size, nid, zone, start_pfn,
+				 MEMINIT_EARLY, NULL);
 	} else {
 		struct page *start;
 		struct memmap_init_callback_data args;
@@ -689,9 +689,7 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif
--- linux-ein-5.4.0.orig/arch/ia64/mm/tlb.c
+++ linux-ein-5.4.0/arch/ia64/mm/tlb.c
@@ -369,7 +369,7 @@
 
 void ia64_tlb_init(void)
 {
-	ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */
+	ia64_ptce_info_t ptce_info;
 	u64 tr_pgbits;
 	long status;
 	pal_vm_info_1_u_t vm_info_1;
--- linux-ein-5.4.0.orig/arch/ia64/scripts/unwcheck.py
+++ linux-ein-5.4.0/arch/ia64/scripts/unwcheck.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # SPDX-License-Identifier: GPL-2.0
 #
 # Usage: unwcheck.py FILE
--- linux-ein-5.4.0.orig/arch/m68k/68000/entry.S
+++ linux-ein-5.4.0/arch/m68k/68000/entry.S
@@ -47,6 +47,8 @@
 	jbsr	syscall_trace_enter
 	RESTORE_SWITCH_STACK
 	addql	#4,%sp
+	addql	#1,%d0
+	jeq	ret_from_exception
 	movel	%sp@(PT_OFF_ORIG_D0),%d1
 	movel	#-ENOSYS,%d0
 	cmpl	#NR_syscalls,%d1
--- linux-ein-5.4.0.orig/arch/m68k/Kconfig
+++ linux-ein-5.4.0/arch/m68k/Kconfig
@@ -4,6 +4,7 @@
 	default y
 	select ARCH_32BIT_OFF_T
 	select ARCH_HAS_BINFMT_FLAT
+	select ARCH_HAS_CPU_FINALIZE_INIT if MMU
 	select ARCH_HAS_DMA_PREP_COHERENT if HAS_DMA && MMU && !COLDFIRE
 	select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA
 	select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
--- linux-ein-5.4.0.orig/arch/m68k/Kconfig.bus
+++ linux-ein-5.4.0/arch/m68k/Kconfig.bus
@@ -63,7 +63,7 @@
 
 endif
 
-if !MMU
+if COLDFIRE
 
 config ISA_DMA_API
         def_bool !M5272
--- linux-ein-5.4.0.orig/arch/m68k/Kconfig.cpu
+++ linux-ein-5.4.0/arch/m68k/Kconfig.cpu
@@ -309,7 +309,7 @@
 
 config M68KFPU_EMU
 	bool "Math emulation support"
-	depends on MMU
+	depends on M68KCLASSIC && FPU
 	help
 	  At some point in the future, this will cause floating-point math
 	  instructions to be emulated by the kernel on machines that lack a
--- linux-ein-5.4.0.orig/arch/m68k/Kconfig.devices
+++ linux-ein-5.4.0/arch/m68k/Kconfig.devices
@@ -19,6 +19,7 @@
 # We have a dedicated heartbeat LED. :-)
 config PROC_HARDWARE
 	bool "/proc/hardware support"
+	depends on PROC_FS
 	help
 	  Say Y here to support the /proc/hardware file, which gives you
 	  access to information about the machine you're running on,
--- linux-ein-5.4.0.orig/arch/m68k/Kconfig.machine
+++ linux-ein-5.4.0/arch/m68k/Kconfig.machine
@@ -23,6 +23,9 @@
 	  this kernel on an Atari, say Y here and browse the material
 	  available in <file:Documentation/m68k>; otherwise say N.
 
+config ATARI_KBD_CORE
+	bool
+
 config MAC
 	bool "Macintosh support"
 	depends on MMU
@@ -187,6 +190,7 @@
 config MEMORY_RESERVE
 	int "Memory reservation (MiB)"
 	depends on (UCSIMM || UCDIMM)
+	default 0
 	help
 	  Reserve certain memory regions on 68x328 based boards.
 
@@ -316,6 +320,7 @@
 
 config UBOOT
 	bool "Support for U-Boot command line parameters"
+	depends on COLDFIRE
 	help
 	  If you say Y here kernel will try to collect command
 	  line parameters from the initial u-boot stack.
--- linux-ein-5.4.0.orig/arch/m68k/Makefile
+++ linux-ein-5.4.0/arch/m68k/Makefile
@@ -135,10 +135,10 @@
 ifndef CONFIG_KGDB
 	cp vmlinux vmlinux.tmp
 	$(STRIP) vmlinux.tmp
-	gzip -9c vmlinux.tmp >vmlinux.gz
+	$(KGZIP) -9c vmlinux.tmp >vmlinux.gz
 	rm vmlinux.tmp
 else
-	gzip -9c vmlinux >vmlinux.gz
+	$(KGZIP) -9c vmlinux >vmlinux.gz
 endif
 
 bzImage: vmlinux.bz2
@@ -148,10 +148,10 @@
 ifndef CONFIG_KGDB
 	cp vmlinux vmlinux.tmp
 	$(STRIP) vmlinux.tmp
-	bzip2 -1c vmlinux.tmp >vmlinux.bz2
+	$(KBZIP2) -1c vmlinux.tmp >vmlinux.bz2
 	rm vmlinux.tmp
 else
-	bzip2 -1c vmlinux >vmlinux.bz2
+	$(KBZIP2) -1c vmlinux >vmlinux.bz2
 endif
 
 archclean:
--- linux-ein-5.4.0.orig/arch/m68k/coldfire/entry.S
+++ linux-ein-5.4.0/arch/m68k/coldfire/entry.S
@@ -92,6 +92,8 @@
 	jbsr	syscall_trace_enter
 	RESTORE_SWITCH_STACK
 	addql	#4,%sp
+	addql	#1,%d0
+	jeq	ret_from_exception
 	movel	%d3,%a0
 	jbsr	%a0@
 	movel	%d0,%sp@(PT_OFF_D0)		/* save the return value */
--- linux-ein-5.4.0.orig/arch/m68k/coldfire/pci.c
+++ linux-ein-5.4.0/arch/m68k/coldfire/pci.c
@@ -216,8 +216,10 @@
 
 	/* Keep a virtual mapping to IO/config space active */
 	iospace = (unsigned long) ioremap(PCI_IO_PA, PCI_IO_SIZE);
-	if (iospace == 0)
+	if (iospace == 0) {
+		pci_free_host_bridge(bridge);
 		return -ENODEV;
+	}
 	pr_info("Coldfire: PCI IO/config window mapped to 0x%x\n",
 		(u32) iospace);
 
--- linux-ein-5.4.0.orig/arch/m68k/configs/amiga_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/amiga_defconfig
@@ -334,7 +334,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/apollo_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/apollo_defconfig
@@ -319,7 +319,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/atari_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/atari_defconfig
@@ -334,7 +334,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/bvme6000_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/bvme6000_defconfig
@@ -316,7 +316,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/hp300_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/hp300_defconfig
@@ -318,7 +318,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/mac_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/mac_defconfig
@@ -325,7 +325,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/multi_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/multi_defconfig
@@ -358,7 +358,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/mvme147_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/mvme147_defconfig
@@ -315,7 +315,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/mvme16x_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/mvme16x_defconfig
@@ -316,7 +316,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/q40_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/q40_defconfig
@@ -324,7 +324,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/sun3_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/sun3_defconfig
@@ -313,7 +313,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/configs/sun3x_defconfig
+++ linux-ein-5.4.0/arch/m68k/configs/sun3x_defconfig
@@ -313,7 +313,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SAS_ATTRS=m
--- linux-ein-5.4.0.orig/arch/m68k/emu/nfeth.c
+++ linux-ein-5.4.0/arch/m68k/emu/nfeth.c
@@ -254,8 +254,8 @@
 
 	for (i = 0; i < MAX_UNIT; i++) {
 		if (nfeth_dev[i]) {
-			unregister_netdev(nfeth_dev[0]);
-			free_netdev(nfeth_dev[0]);
+			unregister_netdev(nfeth_dev[i]);
+			free_netdev(nfeth_dev[i]);
 		}
 	}
 	free_irq(nfEtherIRQ, nfeth_interrupt);
--- linux-ein-5.4.0.orig/arch/m68k/fpsp040/skeleton.S
+++ linux-ein-5.4.0/arch/m68k/fpsp040/skeleton.S
@@ -499,12 +499,12 @@
 	dbf	%d0,morein
 	rts
 
-	.section .fixup,#alloc,#execinstr
+	.section .fixup,"ax"
 	.even
 1:
 	jbra	fpsp040_die
 
-	.section __ex_table,#alloc
+	.section __ex_table,"a"
 	.align	4
 
 	.long	in_ea,1b
--- linux-ein-5.4.0.orig/arch/m68k/ifpsp060/os.S
+++ linux-ein-5.4.0/arch/m68k/ifpsp060/os.S
@@ -379,11 +379,11 @@
 
 
 | Execption handling for movs access to illegal memory
-	.section .fixup,#alloc,#execinstr
+	.section .fixup,"ax"
 	.even
 1:	moveq		#-1,%d1
 	rts
-.section __ex_table,#alloc
+.section __ex_table,"a"
 	.align 4
 	.long	dmrbuae,1b
 	.long	dmrwuae,1b
--- linux-ein-5.4.0.orig/arch/m68k/include/asm/m53xxacr.h
+++ linux-ein-5.4.0/arch/m68k/include/asm/m53xxacr.h
@@ -89,9 +89,9 @@
  * coherency though in all cases. And for copyback caches we will need
  * to push cached data as well.
  */
-#define CACHE_INIT	  CACR_CINVA
-#define CACHE_INVALIDATE  CACR_CINVA
-#define CACHE_INVALIDATED CACR_CINVA
+#define CACHE_INIT        (CACHE_MODE + CACR_CINVA - CACR_EC)
+#define CACHE_INVALIDATE  (CACHE_MODE + CACR_CINVA)
+#define CACHE_INVALIDATED (CACHE_MODE + CACR_CINVA)
 
 #define ACR0_MODE	((CONFIG_RAMBASE & 0xff000000) + \
 			 (0x000f0000) + \
--- linux-ein-5.4.0.orig/arch/m68k/include/asm/mac_via.h
+++ linux-ein-5.4.0/arch/m68k/include/asm/mac_via.h
@@ -257,6 +257,7 @@
 
 struct irq_desc;
 
+extern void via_l2_flush(int writeback);
 extern void via_register_interrupts(void);
 extern void via_irq_enable(int);
 extern void via_irq_disable(int);
--- linux-ein-5.4.0.orig/arch/m68k/include/asm/mvme147hw.h
+++ linux-ein-5.4.0/arch/m68k/include/asm/mvme147hw.h
@@ -66,6 +66,9 @@
 #define PCC_INT_ENAB		0x08
 
 #define PCC_TIMER_INT_CLR	0x80
+
+#define PCC_TIMER_TIC_EN	0x01
+#define PCC_TIMER_COC_EN	0x02
 #define PCC_TIMER_CLR_OVF	0x04
 
 #define PCC_LEVEL_ABORT		0x07
--- linux-ein-5.4.0.orig/arch/m68k/include/asm/pgtable_no.h
+++ linux-ein-5.4.0/arch/m68k/include/asm/pgtable_no.h
@@ -42,7 +42,8 @@
  * ZERO_PAGE is a global shared page that is always zero: used
  * for zero-mapped memory areas etc..
  */
-#define ZERO_PAGE(vaddr)	(virt_to_page(0))
+extern void *empty_zero_page;
+#define ZERO_PAGE(vaddr)	(virt_to_page(empty_zero_page))
 
 /*
  * All 32bit addresses are effectively valid for vmalloc...
--- linux-ein-5.4.0.orig/arch/m68k/include/asm/raw_io.h
+++ linux-ein-5.4.0/arch/m68k/include/asm/raw_io.h
@@ -17,21 +17,21 @@
  * two accesses to memory, which may be undesirable for some devices.
  */
 #define in_8(addr) \
-    ({ u8 __v = (*(__force volatile u8 *) (addr)); __v; })
+    ({ u8 __v = (*(__force volatile u8 *) (unsigned long)(addr)); __v; })
 #define in_be16(addr) \
-    ({ u16 __v = (*(__force volatile u16 *) (addr)); __v; })
+    ({ u16 __v = (*(__force volatile u16 *) (unsigned long)(addr)); __v; })
 #define in_be32(addr) \
-    ({ u32 __v = (*(__force volatile u32 *) (addr)); __v; })
+    ({ u32 __v = (*(__force volatile u32 *) (unsigned long)(addr)); __v; })
 #define in_le16(addr) \
-    ({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (addr)); __v; })
+    ({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (unsigned long)(addr)); __v; })
 #define in_le32(addr) \
-    ({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (addr)); __v; })
+    ({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (unsigned long)(addr)); __v; })
 
-#define out_8(addr,b) (void)((*(__force volatile u8 *) (addr)) = (b))
-#define out_be16(addr,w) (void)((*(__force volatile u16 *) (addr)) = (w))
-#define out_be32(addr,l) (void)((*(__force volatile u32 *) (addr)) = (l))
-#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (addr)) = cpu_to_le16(w))
-#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (addr)) = cpu_to_le32(l))
+#define out_8(addr,b) (void)((*(__force volatile u8 *) (unsigned long)(addr)) = (b))
+#define out_be16(addr,w) (void)((*(__force volatile u16 *) (unsigned long)(addr)) = (w))
+#define out_be32(addr,l) (void)((*(__force volatile u32 *) (unsigned long)(addr)) = (l))
+#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (unsigned long)(addr)) = cpu_to_le16(w))
+#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (unsigned long)(addr)) = cpu_to_le32(l))
 
 #define raw_inb in_8
 #define raw_inw in_be16
--- linux-ein-5.4.0.orig/arch/m68k/include/asm/timex.h
+++ linux-ein-5.4.0/arch/m68k/include/asm/timex.h
@@ -35,7 +35,7 @@
 {
 	if (mach_random_get_entropy)
 		return mach_random_get_entropy();
-	return 0;
+	return random_get_entropy_fallback();
 }
 #define random_get_entropy	random_get_entropy
 
--- linux-ein-5.4.0.orig/arch/m68k/kernel/dma.c
+++ linux-ein-5.4.0/arch/m68k/kernel/dma.c
@@ -61,8 +61,8 @@
 
 #endif /* CONFIG_MMU && !CONFIG_COLDFIRE */
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t handle,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t handle, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_BIDIRECTIONAL:
--- linux-ein-5.4.0.orig/arch/m68k/kernel/entry.S
+++ linux-ein-5.4.0/arch/m68k/kernel/entry.S
@@ -160,9 +160,12 @@
 	jbsr	syscall_trace
 	RESTORE_SWITCH_STACK
 	addql	#4,%sp
+	addql	#1,%d0			| optimization for cmpil #-1,%d0
+	jeq	ret_from_syscall
 	movel	%sp@(PT_OFF_ORIG_D0),%d0
 	cmpl	#NR_syscalls,%d0
 	jcs	syscall
+	jra	ret_from_syscall
 badsys:
 	movel	#-ENOSYS,%sp@(PT_OFF_D0)
 	jra	ret_from_syscall
--- linux-ein-5.4.0.orig/arch/m68k/kernel/relocate_kernel.S
+++ linux-ein-5.4.0/arch/m68k/kernel/relocate_kernel.S
@@ -26,7 +26,7 @@
 	lea %pc@(.Lcopy),%a4
 2:	addl #0x00000000,%a4		/* virt_to_phys() */
 
-	.section ".m68k_fixup","aw"
+	.section .m68k_fixup,"aw"
 	.long M68K_FIXUP_MEMOFFSET, 2b+2
 	.previous
 
@@ -49,7 +49,7 @@
 	lea %pc@(.Lcont040),%a4
 5:	addl #0x00000000,%a4		/* virt_to_phys() */
 
-	.section ".m68k_fixup","aw"
+	.section .m68k_fixup,"aw"
 	.long M68K_FIXUP_MEMOFFSET, 5b+2
 	.previous
 
--- linux-ein-5.4.0.orig/arch/m68k/kernel/setup_mm.c
+++ linux-ein-5.4.0/arch/m68k/kernel/setup_mm.c
@@ -10,6 +10,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/cpu.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
@@ -527,7 +528,7 @@
 module_init(proc_hardware_init);
 #endif
 
-void check_bugs(void)
+void __init arch_cpu_finalize_init(void)
 {
 #if defined(CONFIG_FPU) && !defined(CONFIG_M68KFPU_EMU)
 	if (m68k_fputype == 0) {
--- linux-ein-5.4.0.orig/arch/m68k/kernel/setup_no.c
+++ linux-ein-5.4.0/arch/m68k/kernel/setup_no.c
@@ -139,7 +139,8 @@
 	pr_debug("MEMORY -> ROMFS=0x%p-0x%06lx MEM=0x%06lx-0x%06lx\n ",
 		 __bss_stop, memory_start, memory_start, memory_end);
 
-	memblock_add(memory_start, memory_end - memory_start);
+	memblock_add(_rambase, memory_end - _rambase);
+	memblock_reserve(_rambase, memory_start - _rambase);
 
 	/* Keep a copy of command line */
 	*cmdline_p = &command_line[0];
--- linux-ein-5.4.0.orig/arch/m68k/kernel/signal.c
+++ linux-ein-5.4.0/arch/m68k/kernel/signal.c
@@ -448,7 +448,7 @@
 
 	if (CPU_IS_060 ? sc->sc_fpstate[2] : sc->sc_fpstate[0]) {
 		fpu_version = sc->sc_fpstate[0];
-		if (CPU_IS_020_OR_030 &&
+		if (CPU_IS_020_OR_030 && !regs->stkadj &&
 		    regs->vector >= (VEC_FPBRUC * 4) &&
 		    regs->vector <= (VEC_FPNAN * 4)) {
 			/* Clear pending exception in 68882 idle frame */
@@ -511,7 +511,7 @@
 		if (!(CPU_IS_060 || CPU_IS_COLDFIRE))
 			context_size = fpstate[1];
 		fpu_version = fpstate[0];
-		if (CPU_IS_020_OR_030 &&
+		if (CPU_IS_020_OR_030 && !regs->stkadj &&
 		    regs->vector >= (VEC_FPBRUC * 4) &&
 		    regs->vector <= (VEC_FPNAN * 4)) {
 			/* Clear pending exception in 68882 idle frame */
@@ -829,18 +829,24 @@
 	return 0;
 }
 
+static inline struct pt_regs *rte_regs(struct pt_regs *regs)
+{
+	return (void *)regs + regs->stkadj;
+}
+
 static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs,
 			     unsigned long mask)
 {
+	struct pt_regs *tregs = rte_regs(regs);
 	sc->sc_mask = mask;
 	sc->sc_usp = rdusp();
 	sc->sc_d0 = regs->d0;
 	sc->sc_d1 = regs->d1;
 	sc->sc_a0 = regs->a0;
 	sc->sc_a1 = regs->a1;
-	sc->sc_sr = regs->sr;
-	sc->sc_pc = regs->pc;
-	sc->sc_formatvec = regs->format << 12 | regs->vector;
+	sc->sc_sr = tregs->sr;
+	sc->sc_pc = tregs->pc;
+	sc->sc_formatvec = tregs->format << 12 | tregs->vector;
 	save_a5_state(sc, regs);
 	save_fpu_state(sc, regs);
 }
@@ -848,6 +854,7 @@
 static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *regs)
 {
 	struct switch_stack *sw = (struct switch_stack *)regs - 1;
+	struct pt_regs *tregs = rte_regs(regs);
 	greg_t __user *gregs = uc->uc_mcontext.gregs;
 	int err = 0;
 
@@ -868,43 +875,50 @@
 	err |= __put_user(sw->a5, &gregs[13]);
 	err |= __put_user(sw->a6, &gregs[14]);
 	err |= __put_user(rdusp(), &gregs[15]);
-	err |= __put_user(regs->pc, &gregs[16]);
-	err |= __put_user(regs->sr, &gregs[17]);
-	err |= __put_user((regs->format << 12) | regs->vector, &uc->uc_formatvec);
+	err |= __put_user(tregs->pc, &gregs[16]);
+	err |= __put_user(tregs->sr, &gregs[17]);
+	err |= __put_user((tregs->format << 12) | tregs->vector, &uc->uc_formatvec);
 	err |= rt_save_fpu_state(uc, regs);
 	return err;
 }
 
 static inline void __user *
-get_sigframe(struct ksignal *ksig, size_t frame_size)
+get_sigframe(struct ksignal *ksig, struct pt_regs *tregs, size_t frame_size)
 {
 	unsigned long usp = sigsp(rdusp(), ksig);
+	unsigned long gap = 0;
+
+	if (CPU_IS_020_OR_030 && tregs->format == 0xb) {
+		/* USP is unreliable so use worst-case value */
+		gap = 256;
+	}
 
-	return (void __user *)((usp - frame_size) & -8UL);
+	return (void __user *)((usp - gap - frame_size) & -8UL);
 }
 
 static int setup_frame(struct ksignal *ksig, sigset_t *set,
 			struct pt_regs *regs)
 {
 	struct sigframe __user *frame;
-	int fsize = frame_extra_sizes(regs->format);
+	struct pt_regs *tregs = rte_regs(regs);
+	int fsize = frame_extra_sizes(tregs->format);
 	struct sigcontext context;
 	int err = 0, sig = ksig->sig;
 
 	if (fsize < 0) {
 		pr_debug("setup_frame: Unknown frame format %#x\n",
-			 regs->format);
+			 tregs->format);
 		return -EFAULT;
 	}
 
-	frame = get_sigframe(ksig, sizeof(*frame) + fsize);
+	frame = get_sigframe(ksig, tregs, sizeof(*frame) + fsize);
 
 	if (fsize)
 		err |= copy_to_user (frame + 1, regs + 1, fsize);
 
 	err |= __put_user(sig, &frame->sig);
 
-	err |= __put_user(regs->vector, &frame->code);
+	err |= __put_user(tregs->vector, &frame->code);
 	err |= __put_user(&frame->sc, &frame->psc);
 
 	if (_NSIG_WORDS > 1)
@@ -930,33 +944,27 @@
 	push_cache ((unsigned long) &frame->retcode);
 
 	/*
-	 * Set up registers for signal handler.  All the state we are about
-	 * to destroy is successfully copied to sigframe.
-	 */
-	wrusp ((unsigned long) frame);
-	regs->pc = (unsigned long) ksig->ka.sa.sa_handler;
-	adjustformat(regs);
-
-	/*
 	 * This is subtle; if we build more than one sigframe, all but the
 	 * first one will see frame format 0 and have fsize == 0, so we won't
 	 * screw stkadj.
 	 */
-	if (fsize)
+	if (fsize) {
 		regs->stkadj = fsize;
-
-	/* Prepare to skip over the extra stuff in the exception frame.  */
-	if (regs->stkadj) {
-		struct pt_regs *tregs =
-			(struct pt_regs *)((ulong)regs + regs->stkadj);
+		tregs = rte_regs(regs);
 		pr_debug("Performing stackadjust=%04lx\n", regs->stkadj);
-		/* This must be copied with decreasing addresses to
-                   handle overlaps.  */
 		tregs->vector = 0;
 		tregs->format = 0;
-		tregs->pc = regs->pc;
 		tregs->sr = regs->sr;
 	}
+
+	/*
+	 * Set up registers for signal handler.  All the state we are about
+	 * to destroy is successfully copied to sigframe.
+	 */
+	wrusp ((unsigned long) frame);
+	tregs->pc = (unsigned long) ksig->ka.sa.sa_handler;
+	adjustformat(regs);
+
 	return 0;
 }
 
@@ -964,7 +972,8 @@
 			   struct pt_regs *regs)
 {
 	struct rt_sigframe __user *frame;
-	int fsize = frame_extra_sizes(regs->format);
+	struct pt_regs *tregs = rte_regs(regs);
+	int fsize = frame_extra_sizes(tregs->format);
 	int err = 0, sig = ksig->sig;
 
 	if (fsize < 0) {
@@ -973,7 +982,7 @@
 		return -EFAULT;
 	}
 
-	frame = get_sigframe(ksig, sizeof(*frame));
+	frame = get_sigframe(ksig, tregs, sizeof(*frame));
 
 	if (fsize)
 		err |= copy_to_user (&frame->uc.uc_extra, regs + 1, fsize);
@@ -1014,33 +1023,26 @@
 	push_cache ((unsigned long) &frame->retcode);
 
 	/*
-	 * Set up registers for signal handler.  All the state we are about
-	 * to destroy is successfully copied to sigframe.
-	 */
-	wrusp ((unsigned long) frame);
-	regs->pc = (unsigned long) ksig->ka.sa.sa_handler;
-	adjustformat(regs);
-
-	/*
 	 * This is subtle; if we build more than one sigframe, all but the
 	 * first one will see frame format 0 and have fsize == 0, so we won't
 	 * screw stkadj.
 	 */
-	if (fsize)
+	if (fsize) {
 		regs->stkadj = fsize;
-
-	/* Prepare to skip over the extra stuff in the exception frame.  */
-	if (regs->stkadj) {
-		struct pt_regs *tregs =
-			(struct pt_regs *)((ulong)regs + regs->stkadj);
+		tregs = rte_regs(regs);
 		pr_debug("Performing stackadjust=%04lx\n", regs->stkadj);
-		/* This must be copied with decreasing addresses to
-                   handle overlaps.  */
 		tregs->vector = 0;
 		tregs->format = 0;
-		tregs->pc = regs->pc;
 		tregs->sr = regs->sr;
 	}
+
+	/*
+	 * Set up registers for signal handler.  All the state we are about
+	 * to destroy is successfully copied to sigframe.
+	 */
+	wrusp ((unsigned long) frame);
+	tregs->pc = (unsigned long) ksig->ka.sa.sa_handler;
+	adjustformat(regs);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/m68k/kernel/traps.c
+++ linux-ein-5.4.0/arch/m68k/kernel/traps.c
@@ -30,6 +30,7 @@
 #include <linux/init.h>
 #include <linux/ptrace.h>
 #include <linux/kallsyms.h>
+#include <linux/extable.h>
 
 #include <asm/setup.h>
 #include <asm/fpu.h>
@@ -550,7 +551,8 @@
 			errorcode |= 2;
 
 		if (mmusr & (MMU_I | MMU_WP)) {
-			if (ssw & 4) {
+			/* We might have an exception table for this PC */
+			if (ssw & 4 && !search_exception_tables(fp->ptregs.pc)) {
 				pr_err("Data %s fault at %#010lx in %s (pc=%#lx)\n",
 				       ssw & RW ? "read" : "write",
 				       fp->un.fmtb.daddr,
@@ -1139,7 +1141,7 @@
 	pr_crit("%s: %08x\n", str, nr);
 	show_registers(fp);
 	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 asmlinkage void set_esp0(unsigned long ssp)
--- linux-ein-5.4.0.orig/arch/m68k/mac/config.c
+++ linux-ein-5.4.0/arch/m68k/mac/config.c
@@ -59,7 +59,6 @@
 extern void iop_init(void);
 extern void via_init(void);
 extern void via_init_clock(irq_handler_t func);
-extern void via_flush_cache(void);
 extern void oss_init(void);
 extern void psc_init(void);
 extern void baboon_init(void);
@@ -130,21 +129,6 @@
 	return unknown;
 }
 
-/*
- * Flip into 24bit mode for an instant - flushes the L2 cache card. We
- * have to disable interrupts for this. Our IRQ handlers will crap
- * themselves if they take an IRQ in 24bit mode!
- */
-
-static void mac_cache_card_flush(int writeback)
-{
-	unsigned long flags;
-
-	local_irq_save(flags);
-	via_flush_cache();
-	local_irq_restore(flags);
-}
-
 void __init config_mac(void)
 {
 	if (!MACH_IS_MAC)
@@ -175,9 +159,8 @@
 	 * not.
 	 */
 
-	if (macintosh_config->ident == MAC_MODEL_IICI
-	    || macintosh_config->ident == MAC_MODEL_IIFX)
-		mach_l2_flush = mac_cache_card_flush;
+	if (macintosh_config->ident == MAC_MODEL_IICI)
+		mach_l2_flush = via_l2_flush;
 }
 
 
--- linux-ein-5.4.0.orig/arch/m68k/mac/iop.c
+++ linux-ein-5.4.0/arch/m68k/mac/iop.c
@@ -183,7 +183,7 @@
 
 static __inline__ void iop_stop(volatile struct mac_iop *iop)
 {
-	iop->status_ctrl &= ~IOP_RUN;
+	iop->status_ctrl = IOP_AUTOINC;
 }
 
 static __inline__ void iop_start(volatile struct mac_iop *iop)
@@ -191,14 +191,9 @@
 	iop->status_ctrl = IOP_RUN | IOP_AUTOINC;
 }
 
-static __inline__ void iop_bypass(volatile struct mac_iop *iop)
-{
-	iop->status_ctrl |= IOP_BYPASS;
-}
-
 static __inline__ void iop_interrupt(volatile struct mac_iop *iop)
 {
-	iop->status_ctrl |= IOP_IRQ;
+	iop->status_ctrl = IOP_IRQ | IOP_RUN | IOP_AUTOINC;
 }
 
 static int iop_alive(volatile struct mac_iop *iop)
@@ -244,7 +239,6 @@
 		} else {
 			iop_base[IOP_NUM_SCC] = (struct mac_iop *) SCC_IOP_BASE_QUADRA;
 		}
-		iop_base[IOP_NUM_SCC]->status_ctrl = 0x87;
 		iop_scc_present = 1;
 	} else {
 		iop_base[IOP_NUM_SCC] = NULL;
@@ -256,7 +250,7 @@
 		} else {
 			iop_base[IOP_NUM_ISM] = (struct mac_iop *) ISM_IOP_BASE_QUADRA;
 		}
-		iop_base[IOP_NUM_ISM]->status_ctrl = 0;
+		iop_stop(iop_base[IOP_NUM_ISM]);
 		iop_ism_present = 1;
 	} else {
 		iop_base[IOP_NUM_ISM] = NULL;
@@ -416,7 +410,8 @@
 	msg->status = IOP_MSGSTATUS_UNUSED;
 	msg = msg->next;
 	iop_send_queue[iop_num][chan] = msg;
-	if (msg) iop_do_send(msg);
+	if (msg && iop_readb(iop, IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE)
+		iop_do_send(msg);
 }
 
 /*
@@ -490,16 +485,12 @@
 
 	if (!(q = iop_send_queue[iop_num][chan])) {
 		iop_send_queue[iop_num][chan] = msg;
+		iop_do_send(msg);
 	} else {
 		while (q->next) q = q->next;
 		q->next = msg;
 	}
 
-	if (iop_readb(iop_base[iop_num],
-	    IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE) {
-		iop_do_send(msg);
-	}
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/m68k/mac/via.c
+++ linux-ein-5.4.0/arch/m68k/mac/via.c
@@ -294,10 +294,14 @@
  * the system into 24-bit mode for an instant.
  */
 
-void via_flush_cache(void)
+void via_l2_flush(int writeback)
 {
+	unsigned long flags;
+
+	local_irq_save(flags);
 	via2[gBufB] &= ~VIA2B_vMode32;
 	via2[gBufB] |= VIA2B_vMode32;
+	local_irq_restore(flags);
 }
 
 /*
--- linux-ein-5.4.0.orig/arch/m68k/mm/fault.c
+++ linux-ein-5.4.0/arch/m68k/mm/fault.c
@@ -48,7 +48,7 @@
 			pr_alert("Unable to handle kernel access");
 		pr_cont(" at virtual address %p\n", addr);
 		die_if_kernel("Oops", regs, 0 /*error_code*/);
-		do_exit(SIGKILL);
+		make_task_dead(SIGKILL);
 	}
 
 	return 1;
--- linux-ein-5.4.0.orig/arch/m68k/mm/mcfmmu.c
+++ linux-ein-5.4.0/arch/m68k/mm/mcfmmu.c
@@ -164,7 +164,7 @@
 	m68k_memory[0].addr = _rambase;
 	m68k_memory[0].size = _ramend - _rambase;
 
-	memblock_add(m68k_memory[0].addr, m68k_memory[0].size);
+	memblock_add_node(m68k_memory[0].addr, m68k_memory[0].size, 0);
 
 	/* compute total pages in system */
 	num_pages = PFN_DOWN(_ramend - _rambase);
--- linux-ein-5.4.0.orig/arch/m68k/mvme147/config.c
+++ linux-ein-5.4.0/arch/m68k/mvme147/config.c
@@ -117,8 +117,10 @@
 	unsigned long flags;
 
 	local_irq_save(flags);
-	m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR;
-	m147_pcc->t1_cntrl = PCC_TIMER_CLR_OVF;
+	m147_pcc->t1_cntrl = PCC_TIMER_CLR_OVF | PCC_TIMER_COC_EN |
+			     PCC_TIMER_TIC_EN;
+	m147_pcc->t1_int_cntrl = PCC_INT_ENAB | PCC_TIMER_INT_CLR |
+				 PCC_LEVEL_TIMER1;
 	clk_total += PCC_TIMER_CYCLES;
 	timer_routine(0, NULL);
 	local_irq_restore(flags);
@@ -136,10 +138,10 @@
 	/* Init the clock with a value */
 	/* The clock counter increments until 0xFFFF then reloads */
 	m147_pcc->t1_preload = PCC_TIMER_PRELOAD;
-	m147_pcc->t1_cntrl = 0x0;	/* clear timer */
-	m147_pcc->t1_cntrl = 0x3;	/* start timer */
-	m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR;  /* clear pending ints */
-	m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1;
+	m147_pcc->t1_cntrl = PCC_TIMER_CLR_OVF | PCC_TIMER_COC_EN |
+			     PCC_TIMER_TIC_EN;
+	m147_pcc->t1_int_cntrl = PCC_INT_ENAB | PCC_TIMER_INT_CLR |
+				 PCC_LEVEL_TIMER1;
 
 	clocksource_register_hz(&mvme147_clk, PCC_TIMER_CLOCK_FREQ);
 }
--- linux-ein-5.4.0.orig/arch/m68k/mvme16x/config.c
+++ linux-ein-5.4.0/arch/m68k/mvme16x/config.c
@@ -368,6 +368,7 @@
 #define PCCTOVR1_COC_EN      0x02
 #define PCCTOVR1_OVR_CLR     0x04
 
+#define PCCTIC1_INT_LEVEL    6
 #define PCCTIC1_INT_CLR      0x08
 #define PCCTIC1_INT_EN       0x10
 
@@ -377,8 +378,8 @@
 	unsigned long flags;
 
 	local_irq_save(flags);
-	out_8(PCCTIC1, in_8(PCCTIC1) | PCCTIC1_INT_CLR);
-	out_8(PCCTOVR1, PCCTOVR1_OVR_CLR);
+	out_8(PCCTOVR1, PCCTOVR1_OVR_CLR | PCCTOVR1_TIC_EN | PCCTOVR1_COC_EN);
+	out_8(PCCTIC1, PCCTIC1_INT_EN | PCCTIC1_INT_CLR | PCCTIC1_INT_LEVEL);
 	clk_total += PCC_TIMER_CYCLES;
 	timer_routine(0, NULL);
 	local_irq_restore(flags);
@@ -392,14 +393,15 @@
     int irq;
 
     /* Using PCCchip2 or MC2 chip tick timer 1 */
-    out_be32(PCCTCNT1, 0);
-    out_be32(PCCTCMP1, PCC_TIMER_CYCLES);
-    out_8(PCCTOVR1, in_8(PCCTOVR1) | PCCTOVR1_TIC_EN | PCCTOVR1_COC_EN);
-    out_8(PCCTIC1, PCCTIC1_INT_EN | 6);
     if (request_irq(MVME16x_IRQ_TIMER, mvme16x_timer_int, IRQF_TIMER, "timer",
                     timer_routine))
 	panic ("Couldn't register timer int");
 
+    out_be32(PCCTCNT1, 0);
+    out_be32(PCCTCMP1, PCC_TIMER_CYCLES);
+    out_8(PCCTOVR1, PCCTOVR1_OVR_CLR | PCCTOVR1_TIC_EN | PCCTOVR1_COC_EN);
+    out_8(PCCTIC1, PCCTIC1_INT_EN | PCCTIC1_INT_CLR | PCCTIC1_INT_LEVEL);
+
     clocksource_register_hz(&mvme16x_clk, PCC_TIMER_CLOCK_FREQ);
 
     if (brdno == 0x0162 || brdno == 0x172)
--- linux-ein-5.4.0.orig/arch/m68k/q40/config.c
+++ linux-ein-5.4.0/arch/m68k/q40/config.c
@@ -264,6 +264,7 @@
 {
 	int tmp = Q40_RTC_CTRL;
 
+	pll->pll_ctrl = 0;
 	pll->pll_value = tmp & Q40_RTC_PLL_MASK;
 	if (tmp & Q40_RTC_PLL_SIGN)
 		pll->pll_value = -pll->pll_value;
--- linux-ein-5.4.0.orig/arch/microblaze/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/microblaze/include/asm/uaccess.h
@@ -171,27 +171,27 @@
 
 #define __get_user(x, ptr)						\
 ({									\
-	unsigned long __gu_val = 0;					\
 	long __gu_err;							\
 	switch (sizeof(*(ptr))) {					\
 	case 1:								\
-		__get_user_asm("lbu", (ptr), __gu_val, __gu_err);	\
+		__get_user_asm("lbu", (ptr), x, __gu_err);		\
 		break;							\
 	case 2:								\
-		__get_user_asm("lhu", (ptr), __gu_val, __gu_err);	\
+		__get_user_asm("lhu", (ptr), x, __gu_err);		\
 		break;							\
 	case 4:								\
-		__get_user_asm("lw", (ptr), __gu_val, __gu_err);	\
+		__get_user_asm("lw", (ptr), x, __gu_err);		\
 		break;							\
-	case 8:								\
-		__gu_err = __copy_from_user(&__gu_val, ptr, 8);		\
-		if (__gu_err)						\
-			__gu_err = -EFAULT;				\
+	case 8: {							\
+		__u64 __x = 0;						\
+		__gu_err = raw_copy_from_user(&__x, ptr, 8) ?		\
+							-EFAULT : 0;	\
+		(x) = (typeof(x))(typeof((x) - (x)))__x;		\
 		break;							\
+	}								\
 	default:							\
 		/* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\
 	}								\
-	x = (__force __typeof__(*(ptr))) __gu_val;			\
 	__gu_err;							\
 })
 
--- linux-ein-5.4.0.orig/arch/microblaze/kernel/cpu/cache.c
+++ linux-ein-5.4.0/arch/microblaze/kernel/cpu/cache.c
@@ -92,7 +92,8 @@
 #define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size)	\
 do {									\
 	int align = ~(cache_line_length - 1);				\
-	end = min(start + cache_size, end);				\
+	if (start <  UINT_MAX - cache_size)				\
+		end = min(start + cache_size, end);			\
 	start &= align;							\
 } while (0)
 
--- linux-ein-5.4.0.orig/arch/microblaze/kernel/dma.c
+++ linux-ein-5.4.0/arch/microblaze/kernel/dma.c
@@ -15,7 +15,7 @@
 #include <linux/bug.h>
 #include <asm/cacheflush.h>
 
-static void __dma_sync(struct device *dev, phys_addr_t paddr, size_t size,
+static void __dma_sync(phys_addr_t paddr, size_t size,
 		enum dma_data_direction direction)
 {
 	switch (direction) {
@@ -31,14 +31,14 @@
 	}
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
-	__dma_sync(dev, paddr, size, dir);
+	__dma_sync(paddr, size, dir);
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
-	__dma_sync(dev, paddr, size, dir);
+	__dma_sync(paddr, size, dir);
 }
--- linux-ein-5.4.0.orig/arch/microblaze/kernel/exceptions.c
+++ linux-ein-5.4.0/arch/microblaze/kernel/exceptions.c
@@ -44,10 +44,10 @@
 	pr_warn("Oops: %s, sig: %ld\n", str, err);
 	show_regs(fp);
 	spin_unlock_irq(&die_lock);
-	/* do_exit() should take care of panic'ing from an interrupt
+	/* make_task_dead() should take care of panic'ing from an interrupt
 	 * context so we don't handle it here
 	 */
-	do_exit(err);
+	make_task_dead(err);
 }
 
 /* for user application debugging */
--- linux-ein-5.4.0.orig/arch/mips/Kconfig
+++ linux-ein-5.4.0/arch/mips/Kconfig
@@ -5,6 +5,7 @@
 	select ARCH_32BIT_OFF_T if !64BIT
 	select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
 	select ARCH_CLOCKSOURCE_DATA
+	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
 	select ARCH_HAS_UBSAN_SANITIZE_ALL
 	select ARCH_SUPPORTS_UPROBES
@@ -46,7 +47,8 @@
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
 	select HAVE_ASM_MODVERSIONS
-	select HAVE_EBPF_JIT if (!CPU_MICROMIPS)
+	select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
+	select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
 	select HAVE_CONTEXT_TRACKING
 	select HAVE_COPY_THREAD_TLS
 	select HAVE_C_RECORDMCOUNT
@@ -293,6 +295,9 @@
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_BIG_ENDIAN
 	select SYS_HAS_EARLY_PRINTK
+	select SYS_HAS_CPU_BMIPS32_3300
+	select SYS_HAS_CPU_BMIPS4350
+	select SYS_HAS_CPU_BMIPS4380
 	select SWAP_IO_SPACE
 	select GPIOLIB
 	select HAVE_CLK
@@ -862,6 +867,7 @@
 	select I8253
 	select I8259
 	select ISA
+	select MIPS_L1_CACHE_SHIFT_6
 	select SWAP_IO_SPACE if CPU_BIG_ENDIAN
 	select SYS_HAS_CPU_R4X00
 	select SYS_HAS_CPU_R5000
@@ -1391,6 +1397,7 @@
 	select WEAK_REORDERING_BEYOND_LLSC
 	select MIPS_PGD_C0_CONTEXT
 	select MIPS_L1_CACHE_SHIFT_6
+	select MIPS_FP_SUPPORT
 	select GPIOLIB
 	select SWIOTLB
 	help
@@ -3053,7 +3060,7 @@
 config PGTABLE_LEVELS
 	int
 	default 4 if PAGE_SIZE_4KB && MIPS_VA_BITS_48
-	default 3 if 64BIT && !PAGE_SIZE_64KB
+	default 3 if 64BIT && (!PAGE_SIZE_64KB || MIPS_VA_BITS_48)
 	default 2
 
 config MIPS_AUTO_PFN_OFFSET
--- linux-ein-5.4.0.orig/arch/mips/Makefile
+++ linux-ein-5.4.0/arch/mips/Makefile
@@ -285,12 +285,23 @@
   endif
 endif
 
+# When linking a 32-bit executable the LLVM linker cannot cope with a
+# 32-bit load address that has been sign-extended to 64 bits.  Simply
+# remove the upper 32 bits then, as it is safe to do so with other
+# linkers.
+ifdef CONFIG_64BIT
+	load-ld			= $(load-y)
+else
+	load-ld			= $(subst 0xffffffff,0x,$(load-y))
+endif
+
 KBUILD_AFLAGS	+= $(cflags-y)
 KBUILD_CFLAGS	+= $(cflags-y)
-KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y)
+KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y) -DLINKER_LOAD_ADDRESS=$(load-ld)
 KBUILD_CPPFLAGS += -DDATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)
 
 bootvars-y	= VMLINUX_LOAD_ADDRESS=$(load-y) \
+		  LINKER_LOAD_ADDRESS=$(load-ld) \
 		  VMLINUX_ENTRY_ADDRESS=$(entry-y) \
 		  PLATFORM="$(platform-y)" \
 		  ITS_INPUTS="$(its-y)"
@@ -309,7 +320,7 @@
 
 ifdef CONFIG_MIPS
 CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \
-	egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \
+	egrep -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \
 	sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g')
 endif
 
--- linux-ein-5.4.0.orig/arch/mips/Makefile.postlink
+++ linux-ein-5.4.0/arch/mips/Makefile.postlink
@@ -12,7 +12,7 @@
 include scripts/Kbuild.include
 
 CMD_RELOCS = arch/mips/boot/tools/relocs
-quiet_cmd_relocs = RELOCS $@
+quiet_cmd_relocs = RELOCS  $@
       cmd_relocs = $(CMD_RELOCS) $@
 
 # `@true` prevents complaint when there is nothing to be done
--- linux-ein-5.4.0.orig/arch/mips/alchemy/board-xxs1500.c
+++ linux-ein-5.4.0/arch/mips/alchemy/board-xxs1500.c
@@ -18,6 +18,7 @@
 #include <asm/reboot.h>
 #include <asm/setup.h>
 #include <asm/mach-au1x00/au1000.h>
+#include <asm/mach-au1x00/gpio-au1000.h>
 #include <prom.h>
 
 const char *get_system_type(void)
--- linux-ein-5.4.0.orig/arch/mips/alchemy/common/clock.c
+++ linux-ein-5.4.0/arch/mips/alchemy/common/clock.c
@@ -152,6 +152,7 @@
 {
 	struct clk_init_data id;
 	struct clk_hw *h;
+	struct clk *clk;
 
 	h = kzalloc(sizeof(*h), GFP_KERNEL);
 	if (!h)
@@ -164,7 +165,13 @@
 	id.ops = &alchemy_clkops_cpu;
 	h->init = &id;
 
-	return clk_register(NULL, h);
+	clk = clk_register(NULL, h);
+	if (IS_ERR(clk)) {
+		pr_err("failed to register clock\n");
+		kfree(h);
+	}
+
+	return clk;
 }
 
 /* AUXPLLs ************************************************************/
--- linux-ein-5.4.0.orig/arch/mips/alchemy/devboards/db1000.c
+++ linux-ein-5.4.0/arch/mips/alchemy/devboards/db1000.c
@@ -14,7 +14,6 @@
 #include <linux/interrupt.h>
 #include <linux/leds.h>
 #include <linux/mmc/host.h>
-#include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/pm.h>
 #include <linux/spi/spi.h>
@@ -165,14 +164,10 @@
 
 /******************************************************************************/
 
+#ifdef CONFIG_MMC_AU1X
 static irqreturn_t db1100_mmc_cd(int irq, void *ptr)
 {
-	void (*mmc_cd)(struct mmc_host *, unsigned long);
-	/* link against CONFIG_MMC=m */
-	mmc_cd = symbol_get(mmc_detect_change);
-	mmc_cd(ptr, msecs_to_jiffies(500));
-	symbol_put(mmc_detect_change);
-
+	mmc_detect_change(ptr, msecs_to_jiffies(500));
 	return IRQ_HANDLED;
 }
 
@@ -375,6 +370,7 @@
 	.num_resources	= ARRAY_SIZE(au1100_mmc1_res),
 	.resource	= au1100_mmc1_res,
 };
+#endif /* CONFIG_MMC_AU1X */
 
 /******************************************************************************/
 
@@ -438,8 +434,10 @@
 
 static struct platform_device *db1100_devs[] = {
 	&au1100_lcd_device,
+#ifdef CONFIG_MMC_AU1X
 	&db1100_mmc0_dev,
 	&db1100_mmc1_dev,
+#endif
 };
 
 int __init db1000_dev_setup(void)
--- linux-ein-5.4.0.orig/arch/mips/alchemy/devboards/db1200.c
+++ linux-ein-5.4.0/arch/mips/alchemy/devboards/db1200.c
@@ -10,7 +10,6 @@
 #include <linux/gpio.h>
 #include <linux/i2c.h>
 #include <linux/init.h>
-#include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/leds.h>
@@ -327,6 +326,7 @@
 
 /**********************************************************************/
 
+#ifdef CONFIG_MMC_AU1X
 /* SD carddetects:  they're supposed to be edge-triggered, but ack
  * doesn't seem to work (CPLD Rev 2).  Instead, the screaming one
  * is disabled and its counterpart enabled.  The 200ms timeout is
@@ -340,14 +340,7 @@
 
 static irqreturn_t db1200_mmc_cdfn(int irq, void *ptr)
 {
-	void (*mmc_cd)(struct mmc_host *, unsigned long);
-
-	/* link against CONFIG_MMC=m */
-	mmc_cd = symbol_get(mmc_detect_change);
-	if (mmc_cd) {
-		mmc_cd(ptr, msecs_to_jiffies(200));
-		symbol_put(mmc_detect_change);
-	}
+	mmc_detect_change(ptr, msecs_to_jiffies(200));
 
 	msleep(100);	/* debounce */
 	if (irq == DB1200_SD0_INSERT_INT)
@@ -431,14 +424,7 @@
 
 static irqreturn_t pb1200_mmc1_cdfn(int irq, void *ptr)
 {
-	void (*mmc_cd)(struct mmc_host *, unsigned long);
-
-	/* link against CONFIG_MMC=m */
-	mmc_cd = symbol_get(mmc_detect_change);
-	if (mmc_cd) {
-		mmc_cd(ptr, msecs_to_jiffies(200));
-		symbol_put(mmc_detect_change);
-	}
+	mmc_detect_change(ptr, msecs_to_jiffies(200));
 
 	msleep(100);	/* debounce */
 	if (irq == PB1200_SD1_INSERT_INT)
@@ -599,6 +585,7 @@
 	.num_resources	= ARRAY_SIZE(au1200_mmc1_res),
 	.resource	= au1200_mmc1_res,
 };
+#endif /* CONFIG_MMC_AU1X */
 
 /**********************************************************************/
 
@@ -766,7 +753,9 @@
 static struct platform_device *db1200_devs[] __initdata = {
 	NULL,		/* PSC0, selected by S6.8 */
 	&db1200_ide_dev,
+#ifdef CONFIG_MMC_AU1X
 	&db1200_mmc0_dev,
+#endif
 	&au1200_lcd_dev,
 	&db1200_eth_dev,
 	&db1200_nand_dev,
@@ -777,7 +766,9 @@
 };
 
 static struct platform_device *pb1200_devs[] __initdata = {
+#ifdef CONFIG_MMC_AU1X
 	&pb1200_mmc1_dev,
+#endif
 };
 
 /* Some peripheral base addresses differ on the PB1200 */
--- linux-ein-5.4.0.orig/arch/mips/alchemy/devboards/db1300.c
+++ linux-ein-5.4.0/arch/mips/alchemy/devboards/db1300.c
@@ -17,7 +17,6 @@
 #include <linux/interrupt.h>
 #include <linux/ata_platform.h>
 #include <linux/mmc/host.h>
-#include <linux/module.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/platnand.h>
 #include <linux/platform_device.h>
@@ -451,6 +450,7 @@
 
 /**********************************************************************/
 
+#ifdef CONFIG_MMC_AU1X
 static irqreturn_t db1300_mmc_cd(int irq, void *ptr)
 {
 	disable_irq_nosync(irq);
@@ -459,14 +459,7 @@
 
 static irqreturn_t db1300_mmc_cdfn(int irq, void *ptr)
 {
-	void (*mmc_cd)(struct mmc_host *, unsigned long);
-
-	/* link against CONFIG_MMC=m.  We can only be called once MMC core has
-	 * initialized the controller, so symbol_get() should always succeed.
-	 */
-	mmc_cd = symbol_get(mmc_detect_change);
-	mmc_cd(ptr, msecs_to_jiffies(200));
-	symbol_put(mmc_detect_change);
+	mmc_detect_change(ptr, msecs_to_jiffies(200));
 
 	msleep(100);	/* debounce */
 	if (irq == DB1300_SD1_INSERT_INT)
@@ -640,6 +633,7 @@
 	.resource	= au1300_sd0_res,
 	.num_resources	= ARRAY_SIZE(au1300_sd0_res),
 };
+#endif /* CONFIG_MMC_AU1X */
 
 /**********************************************************************/
 
@@ -777,8 +771,10 @@
 	&db1300_5waysw_dev,
 	&db1300_nand_dev,
 	&db1300_ide_dev,
+#ifdef CONFIG_MMC_AU1X
 	&db1300_sd0_dev,
 	&db1300_sd1_dev,
+#endif
 	&db1300_lcd_dev,
 	&db1300_ac97_dev,
 	&db1300_i2s_dev,
--- linux-ein-5.4.0.orig/arch/mips/bcm47xx/Kconfig
+++ linux-ein-5.4.0/arch/mips/bcm47xx/Kconfig
@@ -27,6 +27,7 @@
 	select BCMA
 	select BCMA_HOST_SOC
 	select BCMA_DRIVER_MIPS
+	select BCMA_DRIVER_PCI if PCI
 	select BCMA_DRIVER_PCI_HOSTMODE if PCI
 	select BCMA_DRIVER_GPIO
 	default y
--- linux-ein-5.4.0.orig/arch/mips/bcm47xx/prom.c
+++ linux-ein-5.4.0/arch/mips/bcm47xx/prom.c
@@ -85,7 +85,7 @@
 			pr_debug("Assume 128MB RAM\n");
 			break;
 		}
-		if (!memcmp(prom_init, prom_init + mem, 32))
+		if (!memcmp((void *)prom_init, (void *)prom_init + mem, 32))
 			break;
 	}
 	lowmem = mem;
@@ -162,7 +162,7 @@
 
 	off = EXTVBASE + __pa(off);
 	for (extmem = 128 << 20; extmem < 512 << 20; extmem <<= 1) {
-		if (!memcmp(prom_init, (void *)(off + extmem), 16))
+		if (!memcmp((void *)prom_init, (void *)(off + extmem), 16))
 			break;
 	}
 	extmem -= lowmem;
--- linux-ein-5.4.0.orig/arch/mips/bcm63xx/clk.c
+++ linux-ein-5.4.0/arch/mips/bcm63xx/clk.c
@@ -361,6 +361,8 @@
  */
 int clk_enable(struct clk *clk)
 {
+	if (!clk)
+		return 0;
 	mutex_lock(&clocks_mutex);
 	clk_enable_unlocked(clk);
 	mutex_unlock(&clocks_mutex);
@@ -381,6 +383,18 @@
 
 EXPORT_SYMBOL(clk_disable);
 
+struct clk *clk_get_parent(struct clk *clk)
+{
+	return NULL;
+}
+EXPORT_SYMBOL(clk_get_parent);
+
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+	return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
 unsigned long clk_get_rate(struct clk *clk)
 {
 	if (!clk)
--- linux-ein-5.4.0.orig/arch/mips/bmips/dma.c
+++ linux-ein-5.4.0/arch/mips/bmips/dma.c
@@ -64,7 +64,9 @@
 	return dma_addr;
 }
 
-void arch_sync_dma_for_cpu_all(struct device *dev)
+bool bmips_rac_flush_disable;
+
+void arch_sync_dma_for_cpu_all(void)
 {
 	void __iomem *cbr = BMIPS_GET_CBR();
 	u32 cfg;
@@ -74,6 +76,9 @@
 	    boot_cpu_type() != CPU_BMIPS4380)
 		return;
 
+	if (unlikely(bmips_rac_flush_disable))
+		return;
+
 	/* Flush stale data out of the readahead cache */
 	cfg = __raw_readl(cbr + BMIPS_RAC_CONFIG);
 	__raw_writel(cfg | 0x100, cbr + BMIPS_RAC_CONFIG);
--- linux-ein-5.4.0.orig/arch/mips/bmips/setup.c
+++ linux-ein-5.4.0/arch/mips/bmips/setup.c
@@ -34,6 +34,8 @@
 #define REG_BCM6328_OTP		((void __iomem *)CKSEG1ADDR(0x1000062c))
 #define BCM6328_TP1_DISABLED	BIT(9)
 
+extern bool bmips_rac_flush_disable;
+
 static const unsigned long kbase = VMLINUX_LOAD_ADDRESS & 0xfff00000;
 
 struct bmips_quirk {
@@ -103,6 +105,12 @@
 	 * disable SMP for now
 	 */
 	bmips_smp_enabled = 0;
+
+	/*
+	 * RAC flush causes kernel panics on BCM6358 when booting from TP1
+	 * because the bootloader is not initializing it properly.
+	 */
+	bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31));
 }
 
 static void bcm6368_quirks(void)
@@ -167,7 +175,7 @@
 		dtb = phys_to_virt(fw_arg2);
 	else if (fw_passed_dtb) /* UHI interface or appended dtb */
 		dtb = (void *)fw_passed_dtb;
-	else if (__dtb_start != __dtb_end)
+	else if (&__dtb_start != &__dtb_end)
 		dtb = (void *)__dtb_start;
 	else
 		panic("no dtb found");
--- linux-ein-5.4.0.orig/arch/mips/boot/Makefile
+++ linux-ein-5.4.0/arch/mips/boot/Makefile
@@ -123,7 +123,7 @@
 targets += vmlinux.its
 targets += vmlinux.gz.its
 targets += vmlinux.bz2.its
-targets += vmlinux.lzmo.its
+targets += vmlinux.lzma.its
 targets += vmlinux.lzo.its
 
 quiet_cmd_cpp_its_S = ITS     $@
--- linux-ein-5.4.0.orig/arch/mips/boot/compressed/Makefile
+++ linux-ein-5.4.0/arch/mips/boot/compressed/Makefile
@@ -29,8 +29,11 @@
 	-DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
 	-DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS)
 
+# Prevents link failures: __sanitizer_cov_trace_pc() is not linked in.
+KCOV_INSTRUMENT		:= n
+
 # decompressor objects (linked with vmlinuz)
-vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o
+vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/bswapsi.o
 
 ifdef CONFIG_DEBUG_ZBOOT
 vmlinuzobjs-$(CONFIG_DEBUG_ZBOOT)		   += $(obj)/dbg.o
@@ -44,7 +47,7 @@
 $(obj)/uart-ath79.c: $(srctree)/arch/mips/ath79/early_printk.c
 	$(call cmd,shipped)
 
-vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o $(obj)/bswapsi.o
+vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o
 
 extra-y += ashldi3.c
 $(obj)/ashldi3.c: $(obj)/%.c: $(srctree)/lib/%.c FORCE
@@ -87,7 +90,7 @@
 VMLINUZ_LOAD_ADDRESS := $(zload-y)
 else
 VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \
-		$(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS))
+		$(obj)/vmlinux.bin $(LINKER_LOAD_ADDRESS))
 endif
 UIMAGE_LOADADDR = $(VMLINUZ_LOAD_ADDRESS)
 
--- linux-ein-5.4.0.orig/arch/mips/boot/compressed/decompress.c
+++ linux-ein-5.4.0/arch/mips/boot/compressed/decompress.c
@@ -7,12 +7,15 @@
  * Author: Wu Zhangjin <wuzhangjin@gmail.com>
  */
 
+#define DISABLE_BRANCH_PROFILING
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/libfdt.h>
 
 #include <asm/addrspace.h>
+#include <asm/unaligned.h>
 
 /*
  * These two variables specify the free mem region
@@ -113,7 +116,7 @@
 		dtb_size = fdt_totalsize((void *)&__appended_dtb);
 
 		/* last four bytes is always image size in little endian */
-		image_size = le32_to_cpup((void *)&__image_end - 4);
+		image_size = get_unaligned_le32((void *)&__image_end - 4);
 
 		/* copy dtb to where the booted kernel will expect it */
 		memcpy((void *)VMLINUX_LOAD_ADDRESS_ULL + image_size,
--- linux-ein-5.4.0.orig/arch/mips/boot/compressed/string.c
+++ linux-ein-5.4.0/arch/mips/boot/compressed/string.c
@@ -5,6 +5,7 @@
  * Very small subset of simple string routines
  */
 
+#include <linux/compiler_attributes.h>
 #include <linux/types.h>
 
 void *memcpy(void *dest, const void *src, size_t n)
@@ -27,3 +28,19 @@
 		ss[i] = c;
 	return s;
 }
+
+void * __weak memmove(void *dest, const void *src, size_t n)
+{
+	unsigned int i;
+	const char *s = src;
+	char *d = dest;
+
+	if ((uintptr_t)dest < (uintptr_t)src) {
+		for (i = 0; i < n; i++)
+			d[i] = s[i];
+	} else {
+		for (i = n; i > 0; i--)
+			d[i - 1] = s[i - 1];
+	}
+	return dest;
+}
--- linux-ein-5.4.0.orig/arch/mips/boot/dts/brcm/bcm3368.dtsi
+++ linux-ein-5.4.0/arch/mips/boot/dts/brcm/bcm3368.dtsi
@@ -59,7 +59,7 @@
 
 		periph_cntl: syscon@fff8c008 {
 			compatible = "syscon";
-			reg = <0xfff8c000 0x4>;
+			reg = <0xfff8c008 0x4>;
 			native-endian;
 		};
 
--- linux-ein-5.4.0.orig/arch/mips/boot/dts/brcm/bcm63268.dtsi
+++ linux-ein-5.4.0/arch/mips/boot/dts/brcm/bcm63268.dtsi
@@ -59,7 +59,7 @@
 
 		periph_cntl: syscon@10000008 {
 			compatible = "syscon";
-			reg = <0x10000000 0xc>;
+			reg = <0x10000008 0x4>;
 			native-endian;
 		};
 
--- linux-ein-5.4.0.orig/arch/mips/boot/dts/brcm/bcm6358.dtsi
+++ linux-ein-5.4.0/arch/mips/boot/dts/brcm/bcm6358.dtsi
@@ -59,7 +59,7 @@
 
 		periph_cntl: syscon@fffe0008 {
 			compatible = "syscon";
-			reg = <0xfffe0000 0x4>;
+			reg = <0xfffe0008 0x4>;
 			native-endian;
 		};
 
--- linux-ein-5.4.0.orig/arch/mips/boot/dts/brcm/bcm6362.dtsi
+++ linux-ein-5.4.0/arch/mips/boot/dts/brcm/bcm6362.dtsi
@@ -59,7 +59,7 @@
 
 		periph_cntl: syscon@10000008 {
 			compatible = "syscon";
-			reg = <0x10000000 0xc>;
+			reg = <0x10000008 0x4>;
 			native-endian;
 		};
 
--- linux-ein-5.4.0.orig/arch/mips/boot/dts/brcm/bcm6368.dtsi
+++ linux-ein-5.4.0/arch/mips/boot/dts/brcm/bcm6368.dtsi
@@ -59,7 +59,7 @@
 
 		periph_cntl: syscon@100000008 {
 			compatible = "syscon";
-			reg = <0x10000000 0xc>;
+			reg = <0x10000008 0x4>;
 			native-endian;
 		};
 
--- linux-ein-5.4.0.orig/arch/mips/boot/dts/ingenic/qi_lb60.dts
+++ linux-ein-5.4.0/arch/mips/boot/dts/ingenic/qi_lb60.dts
@@ -69,7 +69,7 @@
 			"Speaker", "OUTL",
 			"Speaker", "OUTR",
 			"INL", "LOUT",
-			"INL", "ROUT";
+			"INR", "ROUT";
 
 		simple-audio-card,aux-devs = <&amp>;
 
--- linux-ein-5.4.0.orig/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
+++ linux-ein-5.4.0/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
@@ -211,7 +211,7 @@
 {
 	cvmx_helper_link_info_t result;
 
-	WARN(!octeon_is_simulation(),
+	WARN_ONCE(!octeon_is_simulation(),
 	     "Using deprecated link status - please update your DT");
 
 	/* Unless we fix it later, all links are defaulted to down */
--- linux-ein-5.4.0.orig/arch/mips/cavium-octeon/executive/cvmx-helper.c
+++ linux-ein-5.4.0/arch/mips/cavium-octeon/executive/cvmx-helper.c
@@ -1100,7 +1100,7 @@
 		if (index == 0)
 			result = __cvmx_helper_rgmii_link_get(ipd_port);
 		else {
-			WARN(1, "Using deprecated link status - please update your DT");
+			WARN_ONCE(1, "Using deprecated link status - please update your DT");
 			result.s.full_duplex = 1;
 			result.s.link_up = 1;
 			result.s.speed = 1000;
--- linux-ein-5.4.0.orig/arch/mips/cavium-octeon/octeon-irq.c
+++ linux-ein-5.4.0/arch/mips/cavium-octeon/octeon-irq.c
@@ -127,6 +127,16 @@
 static int octeon_irq_force_ciu_mapping(struct irq_domain *domain,
 					int irq, int line, int bit)
 {
+	struct device_node *of_node;
+	int ret;
+
+	of_node = irq_domain_get_of_node(domain);
+	if (!of_node)
+		return -EINVAL;
+	ret = irq_alloc_desc_at(irq, of_node_to_nid(of_node));
+	if (ret < 0)
+		return ret;
+
 	return irq_domain_associate(domain, irq, line << 6 | bit);
 }
 
@@ -2199,6 +2209,9 @@
 	}
 
 	cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+	if (!cd)
+		return -ENOMEM;
+
 	cd->host_data = host_data;
 	cd->bit = hw;
 
--- linux-ein-5.4.0.orig/arch/mips/cavium-octeon/octeon-platform.c
+++ linux-ein-5.4.0/arch/mips/cavium-octeon/octeon-platform.c
@@ -86,11 +86,12 @@
 					 "refclk-frequency", &clock_rate);
 		if (i) {
 			dev_err(dev, "No UCTL \"refclk-frequency\"\n");
+			of_node_put(uctl_node);
 			goto exit;
 		}
 		i = of_property_read_string(uctl_node,
 					    "refclk-type", &clock_type);
-
+		of_node_put(uctl_node);
 		if (!i && strcmp("crystal", clock_type) == 0)
 			is_crystal_clock = true;
 	}
@@ -328,6 +329,7 @@
 
 	pd->dev.platform_data = &octeon_ehci_pdata;
 	octeon_ehci_hw_start(&pd->dev);
+	put_device(&pd->dev);
 
 	return ret;
 }
@@ -391,6 +393,7 @@
 
 	pd->dev.platform_data = &octeon_ohci_pdata;
 	octeon_ohci_hw_start(&pd->dev);
+	put_device(&pd->dev);
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/arch/mips/cavium-octeon/octeon-usb.c
+++ linux-ein-5.4.0/arch/mips/cavium-octeon/octeon-usb.c
@@ -518,6 +518,7 @@
 
 			res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 			if (res == NULL) {
+				put_device(&pdev->dev);
 				dev_err(&pdev->dev, "No memory resources\n");
 				return -ENXIO;
 			}
@@ -529,8 +530,10 @@
 			 * know the difference.
 			 */
 			base = devm_ioremap_resource(&pdev->dev, res);
-			if (IS_ERR(base))
+			if (IS_ERR(base)) {
+				put_device(&pdev->dev);
 				return PTR_ERR(base);
+			}
 
 			mutex_lock(&dwc3_octeon_clocks_mutex);
 			dwc3_octeon_clocks_start(&pdev->dev, (u64)base);
@@ -541,6 +544,7 @@
 			devm_iounmap(&pdev->dev, base);
 			devm_release_mem_region(&pdev->dev, res->start,
 						resource_size(res));
+			put_device(&pdev->dev);
 		}
 	} while (node != NULL);
 
--- linux-ein-5.4.0.orig/arch/mips/configs/bigsur_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/bigsur_defconfig
@@ -112,7 +112,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_ATA=y
--- linux-ein-5.4.0.orig/arch/mips/configs/decstation_64_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/decstation_64_defconfig
@@ -53,8 +53,6 @@
 CONFIG_NETWORK_SECMARK=y
 CONFIG_IP_SCTP=m
 CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
 # CONFIG_WIRELESS is not set
 # CONFIG_UEVENT_HELPER is not set
 # CONFIG_FW_LOADER is not set
--- linux-ein-5.4.0.orig/arch/mips/configs/decstation_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/decstation_defconfig
@@ -49,8 +49,6 @@
 CONFIG_NETWORK_SECMARK=y
 CONFIG_IP_SCTP=m
 CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
 # CONFIG_WIRELESS is not set
 # CONFIG_UEVENT_HELPER is not set
 # CONFIG_FW_LOADER is not set
--- linux-ein-5.4.0.orig/arch/mips/configs/decstation_r4k_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/decstation_r4k_defconfig
@@ -48,8 +48,6 @@
 CONFIG_NETWORK_SECMARK=y
 CONFIG_IP_SCTP=m
 CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
 # CONFIG_WIRELESS is not set
 # CONFIG_UEVENT_HELPER is not set
 # CONFIG_FW_LOADER is not set
--- linux-ein-5.4.0.orig/arch/mips/configs/fuloong2e_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/fuloong2e_defconfig
@@ -99,7 +99,6 @@
 CONFIG_ATA_OVER_ETH=m
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 # CONFIG_SCSI_LOWLEVEL is not set
--- linux-ein-5.4.0.orig/arch/mips/configs/gpr_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/gpr_defconfig
@@ -69,7 +69,6 @@
 CONFIG_IP_NF_ARPTABLES=m
 CONFIG_IP_NF_ARPFILTER=m
 CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_DECNET_NF_GRABULATOR=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -99,7 +98,6 @@
 CONFIG_ATM_BR2684=m
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
 CONFIG_LLC2=m
 CONFIG_ATALK=m
 CONFIG_DEV_APPLETALK=m
--- linux-ein-5.4.0.orig/arch/mips/configs/ip27_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/ip27_defconfig
@@ -99,7 +99,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_CONSTANTS=y
--- linux-ein-5.4.0.orig/arch/mips/configs/ip32_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/ip32_defconfig
@@ -50,7 +50,6 @@
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/mips/configs/jazz_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/jazz_defconfig
@@ -106,7 +106,6 @@
 CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_RAW=m
-CONFIG_DECNET_NF_GRABULATOR=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -127,7 +126,6 @@
 CONFIG_BRIDGE_EBT_SNAT=m
 CONFIG_BRIDGE_EBT_LOG=m
 CONFIG_BRIDGE=m
-CONFIG_DECNET=m
 CONFIG_NET_SCHED=y
 CONFIG_NET_SCH_CBQ=m
 CONFIG_NET_SCH_HTB=m
@@ -191,7 +189,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-ein-5.4.0.orig/arch/mips/configs/loongson3_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/loongson3_defconfig
@@ -231,7 +231,7 @@
 CONFIG_MEDIA_USB_SUPPORT=y
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_DRM=y
-CONFIG_DRM_RADEON=y
+CONFIG_DRM_RADEON=m
 CONFIG_FB_RADEON=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_LCD_PLATFORM=m
--- linux-ein-5.4.0.orig/arch/mips/configs/malta_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/malta_defconfig
@@ -239,7 +239,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/mips/configs/malta_kvm_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/malta_kvm_defconfig
@@ -247,7 +247,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/mips/configs/malta_kvm_guest_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/malta_kvm_guest_defconfig
@@ -245,7 +245,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/mips/configs/maltaup_xpa_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/maltaup_xpa_defconfig
@@ -245,7 +245,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
--- linux-ein-5.4.0.orig/arch/mips/configs/mtx1_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/mtx1_defconfig
@@ -117,7 +117,6 @@
 CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_RAW=m
-CONFIG_DECNET_NF_GRABULATOR=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -147,7 +146,6 @@
 CONFIG_ATM_BR2684=m
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
 CONFIG_LLC2=m
 CONFIG_ATALK=m
 CONFIG_DEV_APPLETALK=m
--- linux-ein-5.4.0.orig/arch/mips/configs/nlm_xlp_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/nlm_xlp_defconfig
@@ -200,7 +200,6 @@
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_RAW=m
 CONFIG_IP6_NF_SECURITY=m
-CONFIG_DECNET_NF_GRABULATOR=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -234,7 +233,6 @@
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
 CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_DECNET=m
 CONFIG_LLC2=m
 CONFIG_ATALK=m
 CONFIG_DEV_APPLETALK=m
--- linux-ein-5.4.0.orig/arch/mips/configs/nlm_xlr_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/nlm_xlr_defconfig
@@ -198,7 +198,6 @@
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_RAW=m
 CONFIG_IP6_NF_SECURITY=m
-CONFIG_DECNET_NF_GRABULATOR=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -232,7 +231,6 @@
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
 CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_DECNET=m
 CONFIG_LLC2=m
 CONFIG_ATALK=m
 CONFIG_DEV_APPLETALK=m
--- linux-ein-5.4.0.orig/arch/mips/configs/rm200_defconfig
+++ linux-ein-5.4.0/arch/mips/configs/rm200_defconfig
@@ -116,7 +116,6 @@
 CONFIG_IP6_NF_TARGET_REJECT=m
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_RAW=m
-CONFIG_DECNET_NF_GRABULATOR=m
 CONFIG_BRIDGE_NF_EBTABLES=m
 CONFIG_BRIDGE_EBT_BROUTE=m
 CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -137,7 +136,6 @@
 CONFIG_BRIDGE_EBT_SNAT=m
 CONFIG_BRIDGE_EBT_LOG=m
 CONFIG_BRIDGE=m
-CONFIG_DECNET=m
 CONFIG_NET_SCHED=y
 CONFIG_NET_SCH_CBQ=m
 CONFIG_NET_SCH_HTB=m
@@ -203,7 +201,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-ein-5.4.0.orig/arch/mips/dec/int-handler.S
+++ linux-ein-5.4.0/arch/mips/dec/int-handler.S
@@ -131,7 +131,7 @@
 		 */
 		mfc0	t0,CP0_CAUSE		# get pending interrupts
 		mfc0	t1,CP0_STATUS
-#ifdef CONFIG_32BIT
+#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT)
 		lw	t2,cpu_fpu_mask
 #endif
 		andi	t0,ST0_IM		# CAUSE.CE may be non-zero!
@@ -139,7 +139,7 @@
 
 		beqz	t0,spurious
 
-#ifdef CONFIG_32BIT
+#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT)
 		 and	t2,t0
 		bnez	t2,fpu			# handle FPU immediately
 #endif
@@ -280,7 +280,7 @@
 		j	dec_irq_dispatch
 		 nop
 
-#ifdef CONFIG_32BIT
+#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT)
 fpu:
 		lw	t0,fpu_kstat_irq
 		nop
--- linux-ein-5.4.0.orig/arch/mips/dec/prom/Makefile
+++ linux-ein-5.4.0/arch/mips/dec/prom/Makefile
@@ -6,4 +6,4 @@
 
 lib-y			+= init.o memory.o cmdline.o identify.o console.o
 
-lib-$(CONFIG_32BIT)	+= locore.o
+lib-$(CONFIG_CPU_R3000)	+= locore.o
--- linux-ein-5.4.0.orig/arch/mips/dec/setup.c
+++ linux-ein-5.4.0/arch/mips/dec/setup.c
@@ -6,7 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1998 Harald Koerfgen
- * Copyright (C) 2000, 2001, 2002, 2003, 2005  Maciej W. Rozycki
+ * Copyright (C) 2000, 2001, 2002, 2003, 2005, 2020  Maciej W. Rozycki
  */
 #include <linux/console.h>
 #include <linux/export.h>
@@ -15,6 +15,7 @@
 #include <linux/ioport.h>
 #include <linux/irq.h>
 #include <linux/irqnr.h>
+#include <linux/memblock.h>
 #include <linux/param.h>
 #include <linux/percpu-defs.h>
 #include <linux/sched.h>
@@ -22,6 +23,7 @@
 #include <linux/types.h>
 #include <linux/pm.h>
 
+#include <asm/addrspace.h>
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 #include <asm/cpu-features.h>
@@ -29,7 +31,9 @@
 #include <asm/irq.h>
 #include <asm/irq_cpu.h>
 #include <asm/mipsregs.h>
+#include <asm/page.h>
 #include <asm/reboot.h>
+#include <asm/sections.h>
 #include <asm/time.h>
 #include <asm/traps.h>
 #include <asm/wbflush.h>
@@ -166,6 +170,9 @@
 
 	ioport_resource.start = ~0UL;
 	ioport_resource.end = 0UL;
+
+	/* Stay away from the firmware working memory area for now. */
+	memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text) - PHYS_OFFSET);
 }
 
 /*
@@ -759,7 +766,8 @@
 		dec_interrupt[DEC_IRQ_HALT] = -1;
 
 	/* Register board interrupts: FPU and cascade. */
-	if (dec_interrupt[DEC_IRQ_FPU] >= 0 && cpu_has_fpu) {
+	if (IS_ENABLED(CONFIG_MIPS_FP_SUPPORT) &&
+	    dec_interrupt[DEC_IRQ_FPU] >= 0 && cpu_has_fpu) {
 		struct irq_desc *desc_fpu;
 		int irq_fpu;
 
--- linux-ein-5.4.0.orig/arch/mips/fw/lib/cmdline.c
+++ linux-ein-5.4.0/arch/mips/fw/lib/cmdline.c
@@ -51,7 +51,7 @@
 {
 	char *result = NULL;
 
-	if (_fw_envp != NULL) {
+	if (_fw_envp != NULL && fw_envp(0) != NULL) {
 		/*
 		 * Return a pointer to the given environment variable.
 		 * YAMON uses "name", "value" pairs, while U-Boot uses
--- linux-ein-5.4.0.orig/arch/mips/generic/board-boston.its.S
+++ linux-ein-5.4.0/arch/mips/generic/board-boston.its.S
@@ -1,22 +1,22 @@
 / {
 	images {
-		fdt@boston {
+		fdt-boston {
 			description = "img,boston Device Tree";
 			data = /incbin/("boot/dts/img/boston.dtb");
 			type = "flat_dt";
 			arch = "mips";
 			compression = "none";
-			hash@0 {
+			hash {
 				algo = "sha1";
 			};
 		};
 	};
 
 	configurations {
-		conf@boston {
+		conf-boston {
 			description = "Boston Linux kernel";
-			kernel = "kernel@0";
-			fdt = "fdt@boston";
+			kernel = "kernel";
+			fdt = "fdt-boston";
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/mips/generic/board-ni169445.its.S
+++ linux-ein-5.4.0/arch/mips/generic/board-ni169445.its.S
@@ -1,22 +1,22 @@
 / {
 	images {
-		fdt@ni169445 {
+		fdt-ni169445 {
 			description = "NI 169445 device tree";
 			data = /incbin/("boot/dts/ni/169445.dtb");
 			type = "flat_dt";
 			arch = "mips";
 			compression = "none";
-			hash@0 {
+			hash {
 				algo = "sha1";
 			};
 		};
 	};
 
 	configurations {
-		conf@ni169445 {
+		conf-ni169445 {
 			description = "NI 169445 Linux Kernel";
-			kernel = "kernel@0";
-			fdt = "fdt@ni169445";
+			kernel = "kernel";
+			fdt = "fdt-ni169445";
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/mips/generic/board-ocelot.its.S
+++ linux-ein-5.4.0/arch/mips/generic/board-ocelot.its.S
@@ -1,40 +1,40 @@
 /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
 / {
 	images {
-		fdt@ocelot_pcb123 {
+		fdt-ocelot_pcb123 {
 			description = "MSCC Ocelot PCB123 Device Tree";
 			data = /incbin/("boot/dts/mscc/ocelot_pcb123.dtb");
 			type = "flat_dt";
 			arch = "mips";
 			compression = "none";
-			hash@0 {
+			hash {
 				algo = "sha1";
 			};
 		};
 
-		fdt@ocelot_pcb120 {
+		fdt-ocelot_pcb120 {
 			description = "MSCC Ocelot PCB120 Device Tree";
 			data = /incbin/("boot/dts/mscc/ocelot_pcb120.dtb");
 			type = "flat_dt";
 			arch = "mips";
 			compression = "none";
-			hash@0 {
+			hash {
 				algo = "sha1";
 			};
 		};
 	};
 
 	configurations {
-		conf@ocelot_pcb123 {
+		conf-ocelot_pcb123 {
 			description = "Ocelot Linux kernel";
-			kernel = "kernel@0";
-			fdt = "fdt@ocelot_pcb123";
+			kernel = "kernel";
+			fdt = "fdt-ocelot_pcb123";
 		};
 
-		conf@ocelot_pcb120 {
+		conf-ocelot_pcb120 {
 			description = "Ocelot Linux kernel";
-			kernel = "kernel@0";
-			fdt = "fdt@ocelot_pcb120";
+			kernel = "kernel";
+			fdt = "fdt-ocelot_pcb120";
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/mips/generic/board-xilfpga.its.S
+++ linux-ein-5.4.0/arch/mips/generic/board-xilfpga.its.S
@@ -1,22 +1,22 @@
 / {
 	images {
-		fdt@xilfpga {
+		fdt-xilfpga {
 			description = "MIPSfpga (xilfpga) Device Tree";
 			data = /incbin/("boot/dts/xilfpga/nexys4ddr.dtb");
 			type = "flat_dt";
 			arch = "mips";
 			compression = "none";
-			hash@0 {
+			hash {
 				algo = "sha1";
 			};
 		};
 	};
 
 	configurations {
-		conf@xilfpga {
+		conf-xilfpga {
 			description = "MIPSfpga Linux kernel";
-			kernel = "kernel@0";
-			fdt = "fdt@xilfpga";
+			kernel = "kernel";
+			fdt = "fdt-xilfpga";
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/mips/generic/vmlinux.its.S
+++ linux-ein-5.4.0/arch/mips/generic/vmlinux.its.S
@@ -6,7 +6,7 @@
 	#address-cells = <ADDR_CELLS>;
 
 	images {
-		kernel@0 {
+		kernel {
 			description = KERNEL_NAME;
 			data = /incbin/(VMLINUX_BINARY);
 			type = "kernel";
@@ -15,18 +15,18 @@
 			compression = VMLINUX_COMPRESSION;
 			load = /bits/ ADDR_BITS <VMLINUX_LOAD_ADDRESS>;
 			entry = /bits/ ADDR_BITS <VMLINUX_ENTRY_ADDRESS>;
-			hash@0 {
+			hash {
 				algo = "sha1";
 			};
 		};
 	};
 
 	configurations {
-		default = "conf@default";
+		default = "conf-default";
 
-		conf@default {
+		conf-default {
 			description = "Generic Linux kernel";
-			kernel = "kernel@0";
+			kernel = "kernel";
 		};
 	};
 };
--- linux-ein-5.4.0.orig/arch/mips/generic/yamon-dt.c
+++ linux-ein-5.4.0/arch/mips/generic/yamon-dt.c
@@ -75,7 +75,7 @@
 __init int yamon_dt_append_memory(void *fdt,
 				  const struct yamon_mem_region *regions)
 {
-	unsigned long phys_memsize, memsize;
+	unsigned long phys_memsize = 0, memsize;
 	__be32 mem_array[2 * MAX_MEM_ARRAY_ENTRIES];
 	unsigned int mem_entries;
 	int i, err, mem_off;
--- linux-ein-5.4.0.orig/arch/mips/include/asm/asm.h
+++ linux-ein-5.4.0/arch/mips/include/asm/asm.h
@@ -20,10 +20,27 @@
 #include <asm/sgidefs.h>
 #include <asm/asm-eva.h>
 
+#ifndef __VDSO__
+/*
+ * Emit CFI data in .debug_frame sections, not .eh_frame sections.
+ * We don't do DWARF unwinding at runtime, so only the offline DWARF
+ * information is useful to anyone. Note we should change this if we
+ * ever decide to enable DWARF unwinding at runtime.
+ */
+#define CFI_SECTIONS	.cfi_sections .debug_frame
+#else
+ /*
+  * For the vDSO, emit both runtime unwind information and debug
+  * symbols for the .dbg file.
+  */
+#define CFI_SECTIONS
+#endif
+
 /*
  * LEAF - declare leaf routine
  */
 #define LEAF(symbol)					\
+		CFI_SECTIONS;				\
 		.globl	symbol;				\
 		.align	2;				\
 		.type	symbol, @function;		\
@@ -36,6 +53,7 @@
  * NESTED - declare nested routine entry point
  */
 #define NESTED(symbol, framesize, rpc)			\
+		CFI_SECTIONS;				\
 		.globl	symbol;				\
 		.align	2;				\
 		.type	symbol, @function;		\
--- linux-ein-5.4.0.orig/arch/mips/include/asm/bugs.h
+++ linux-ein-5.4.0/arch/mips/include/asm/bugs.h
@@ -1,17 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * This is included by init/main.c to check for architecture-dependent bugs.
- *
  * Copyright (C) 2007  Maciej W. Rozycki
- *
- * Needs:
- *	void check_bugs(void);
  */
 #ifndef _ASM_BUGS_H
 #define _ASM_BUGS_H
 
 #include <linux/bug.h>
-#include <linux/delay.h>
 #include <linux/smp.h>
 
 #include <asm/cpu.h>
@@ -31,17 +25,6 @@
 #endif
 }
 
-static inline void check_bugs(void)
-{
-	unsigned int cpu = smp_processor_id();
-
-	cpu_data[cpu].udelay_val = loops_per_jiffy;
-	check_bugs32();
-#ifdef CONFIG_64BIT
-	check_bugs64();
-#endif
-}
-
 static inline int r4k_daddiu_bug(void)
 {
 #ifdef CONFIG_64BIT
--- linux-ein-5.4.0.orig/arch/mips/include/asm/cmpxchg.h
+++ linux-ein-5.4.0/arch/mips/include/asm/cmpxchg.h
@@ -239,6 +239,7 @@
 	"	.set	" MIPS_ISA_ARCH_LEVEL "		\n"
 	/* Load 64 bits from ptr */
 	"1:	lld	%L0, %3		# __cmpxchg64	\n"
+	"	.set	pop				\n"
 	/*
 	 * Split the 64 bit value we loaded into the 2 registers that hold the
 	 * ret variable.
@@ -266,6 +267,8 @@
 	"	or	%L1, %L1, $at			\n"
 	"	.set	at				\n"
 #  endif
+	"	.set	push				\n"
+	"	.set	" MIPS_ISA_ARCH_LEVEL "		\n"
 	/* Attempt to store new at ptr */
 	"	scd	%L1, %2				\n"
 	/* If we failed, loop! */
--- linux-ein-5.4.0.orig/arch/mips/include/asm/cpu-features.h
+++ linux-ein-5.4.0/arch/mips/include/asm/cpu-features.h
@@ -124,7 +124,24 @@
 #define cpu_has_tx39_cache	__opt(MIPS_CPU_TX39_CACHE)
 #endif
 #ifndef cpu_has_octeon_cache
-#define cpu_has_octeon_cache	0
+#define cpu_has_octeon_cache						\
+({									\
+	int __res;							\
+									\
+	switch (boot_cpu_type()) {					\
+	case CPU_CAVIUM_OCTEON:						\
+	case CPU_CAVIUM_OCTEON_PLUS:					\
+	case CPU_CAVIUM_OCTEON2:					\
+	case CPU_CAVIUM_OCTEON3:					\
+		__res = 1;						\
+		break;							\
+									\
+	default:							\
+		__res = 0;						\
+	}								\
+									\
+	__res;								\
+})
 #endif
 /* Don't override `cpu_has_fpu' to 1 or the "nofpu" option won't work.  */
 #ifndef cpu_has_fpu
@@ -288,10 +305,12 @@
 # define cpu_has_mips32r6	__isa_ge_or_flag(6, MIPS_CPU_ISA_M32R6)
 #endif
 #ifndef cpu_has_mips64r1
-# define cpu_has_mips64r1	__isa_range_or_flag(1, 6, MIPS_CPU_ISA_M64R1)
+# define cpu_has_mips64r1	(cpu_has_64bits && \
+				 __isa_range_or_flag(1, 6, MIPS_CPU_ISA_M64R1))
 #endif
 #ifndef cpu_has_mips64r2
-# define cpu_has_mips64r2	__isa_range_or_flag(2, 6, MIPS_CPU_ISA_M64R2)
+# define cpu_has_mips64r2	(cpu_has_64bits && \
+				 __isa_range_or_flag(2, 6, MIPS_CPU_ISA_M64R2))
 #endif
 #ifndef cpu_has_mips64r6
 # define cpu_has_mips64r6	__isa_ge_and_flag(6, MIPS_CPU_ISA_M64R6)
@@ -339,7 +358,7 @@
 ({									\
 	int __res;							\
 									\
-	switch (current_cpu_type()) {					\
+	switch (boot_cpu_type()) {					\
 	case CPU_M14KC:							\
 	case CPU_74K:							\
 	case CPU_1074K:							\
--- linux-ein-5.4.0.orig/arch/mips/include/asm/cpu-type.h
+++ linux-ein-5.4.0/arch/mips/include/asm/cpu-type.h
@@ -47,6 +47,7 @@
 	case CPU_34K:
 	case CPU_1004K:
 	case CPU_74K:
+	case CPU_1074K:
 	case CPU_M14KC:
 	case CPU_M14KEC:
 	case CPU_INTERAPTIV:
--- linux-ein-5.4.0.orig/arch/mips/include/asm/dec/prom.h
+++ linux-ein-5.4.0/arch/mips/include/asm/dec/prom.h
@@ -43,16 +43,11 @@
  */
 #define REX_PROM_MAGIC		0x30464354
 
-#ifdef CONFIG_64BIT
-
-#define prom_is_rex(magic)	1	/* KN04 and KN05 are REX PROMs.  */
-
-#else /* !CONFIG_64BIT */
-
-#define prom_is_rex(magic)	((magic) == REX_PROM_MAGIC)
-
-#endif /* !CONFIG_64BIT */
-
+/* KN04 and KN05 are REX PROMs, so only do the check for R3k systems.  */
+static inline bool prom_is_rex(u32 magic)
+{
+	return !IS_ENABLED(CONFIG_CPU_R3000) || magic == REX_PROM_MAGIC;
+}
 
 /*
  * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
@@ -75,7 +70,7 @@
  */
 typedef struct {
 	int pagesize;
-	unsigned char bitmap[0];
+	unsigned char bitmap[];
 } memmap;
 
 
--- linux-ein-5.4.0.orig/arch/mips/include/asm/div64.h
+++ linux-ein-5.4.0/arch/mips/include/asm/div64.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2000, 2004  Maciej W. Rozycki
+ * Copyright (C) 2000, 2004, 2021  Maciej W. Rozycki
  * Copyright (C) 2003, 07 Ralf Baechle (ralf@linux-mips.org)
  *
  * This file is subject to the terms and conditions of the GNU General Public
@@ -9,25 +9,18 @@
 #ifndef __ASM_DIV64_H
 #define __ASM_DIV64_H
 
-#include <asm-generic/div64.h>
-
-#if BITS_PER_LONG == 64
+#include <asm/bitsperlong.h>
 
-#include <linux/types.h>
+#if BITS_PER_LONG == 32
 
 /*
  * No traps on overflows for any of these...
  */
 
-#define __div64_32(n, base)						\
-({									\
+#define do_div64_32(res, high, low, base) ({				\
 	unsigned long __cf, __tmp, __tmp2, __i;				\
 	unsigned long __quot32, __mod32;				\
-	unsigned long __high, __low;					\
-	unsigned long long __n;						\
 									\
-	__high = *__n >> 32;						\
-	__low = __n;							\
 	__asm__(							\
 	"	.set	push					\n"	\
 	"	.set	noat					\n"	\
@@ -51,18 +44,48 @@
 	"	subu	%0, %0, %z6				\n"	\
 	"	addiu	%2, %2, 1				\n"	\
 	"3:							\n"	\
-	"	bnez	%4, 0b\n\t"					\
-	"	 srl	%5, %1, 0x1f\n\t"				\
+	"	bnez	%4, 0b					\n"	\
+	"	 srl	%5, %1, 0x1f				\n"	\
 	"	.set	pop"						\
 	: "=&r" (__mod32), "=&r" (__tmp),				\
 	  "=&r" (__quot32), "=&r" (__cf),				\
 	  "=&r" (__i), "=&r" (__tmp2)					\
-	: "Jr" (base), "0" (__high), "1" (__low));			\
+	: "Jr" (base), "0" (high), "1" (low));				\
 									\
-	(__n) = __quot32;						\
+	(res) = __quot32;						\
 	__mod32;							\
 })
 
-#endif /* BITS_PER_LONG == 64 */
+#define __div64_32(n, base) ({						\
+	unsigned long __upper, __low, __high, __radix;			\
+	unsigned long long __quot;					\
+	unsigned long long __div;					\
+	unsigned long __mod;						\
+									\
+	__div = (*n);							\
+	__radix = (base);						\
+									\
+	__high = __div >> 32;						\
+	__low = __div;							\
+									\
+	if (__high < __radix) {						\
+		__upper = __high;					\
+		__high = 0;						\
+	} else {							\
+		__upper = __high % __radix;				\
+		__high /= __radix;					\
+	}								\
+									\
+	__mod = do_div64_32(__low, __upper, __low, __radix);		\
+									\
+	__quot = __high;						\
+	__quot = __quot << 32 | __low;					\
+	(*n) = __quot;							\
+	__mod;								\
+})
+
+#endif /* BITS_PER_LONG == 32 */
+
+#include <asm-generic/div64.h>
 
 #endif /* __ASM_DIV64_H */
--- linux-ein-5.4.0.orig/arch/mips/include/asm/fw/fw.h
+++ linux-ein-5.4.0/arch/mips/include/asm/fw/fw.h
@@ -26,6 +26,6 @@
 extern void fw_meminit(void);
 extern char *fw_getenv(char *name);
 extern unsigned long fw_getenvl(char *name);
-extern void fw_init_early_console(char port);
+extern void fw_init_early_console(void);
 
 #endif /* __ASM_FW_H_ */
--- linux-ein-5.4.0.orig/arch/mips/include/asm/highmem.h
+++ linux-ein-5.4.0/arch/mips/include/asm/highmem.h
@@ -36,7 +36,7 @@
  * easily, subsequent pte tables have to be allocated in one physical
  * chunk of RAM.
  */
-#ifdef CONFIG_PHYS_ADDR_T_64BIT
+#if defined(CONFIG_PHYS_ADDR_T_64BIT) || defined(CONFIG_MIPS_HUGE_TLB_SUPPORT)
 #define LAST_PKMAP 512
 #else
 #define LAST_PKMAP 1024
--- linux-ein-5.4.0.orig/arch/mips/include/asm/hugetlb.h
+++ linux-ein-5.4.0/arch/mips/include/asm/hugetlb.h
@@ -53,7 +53,13 @@
 static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
 					 unsigned long addr, pte_t *ptep)
 {
-	flush_tlb_page(vma, addr & huge_page_mask(hstate_vma(vma)));
+	/*
+	 * clear the huge pte entry firstly, so that the other smp threads will
+	 * not get old pte entry after finishing flush_tlb_page and before
+	 * setting new huge pte entry
+	 */
+	huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
+	flush_tlb_page(vma, addr);
 }
 
 #define __HAVE_ARCH_HUGE_PTE_NONE
--- linux-ein-5.4.0.orig/arch/mips/include/asm/kvm_host.h
+++ linux-ein-5.4.0/arch/mips/include/asm/kvm_host.h
@@ -274,8 +274,12 @@
 #define MIPS3_PG_SHIFT		6
 #define MIPS3_PG_FRAME		0x3fffffc0
 
+#if defined(CONFIG_64BIT)
+#define VPN2_MASK		GENMASK(cpu_vmbits - 1, 13)
+#else
 #define VPN2_MASK		0xffffe000
-#define KVM_ENTRYHI_ASID	MIPS_ENTRYHI_ASID
+#endif
+#define KVM_ENTRYHI_ASID	cpu_asid_mask(&boot_cpu_data)
 #define TLB_IS_GLOBAL(x)	((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G)
 #define TLB_VPN2(x)		((x).tlb_hi & VPN2_MASK)
 #define TLB_ASID(x)		((x).tlb_hi & KVM_ENTRYHI_ASID)
@@ -935,7 +939,7 @@
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
-			unsigned long start, unsigned long end);
+			unsigned long start, unsigned long end, unsigned flags);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
--- linux-ein-5.4.0.orig/arch/mips/include/asm/mach-ip27/cpu-feature-overrides.h
+++ linux-ein-5.4.0/arch/mips/include/asm/mach-ip27/cpu-feature-overrides.h
@@ -28,7 +28,6 @@
 #define cpu_has_6k_cache		0
 #define cpu_has_8k_cache		0
 #define cpu_has_tx39_cache		0
-#define cpu_has_fpu			1
 #define cpu_has_nofpuex			0
 #define cpu_has_32fpr			1
 #define cpu_has_counter			1
--- linux-ein-5.4.0.orig/arch/mips/include/asm/mach-rc32434/pci.h
+++ linux-ein-5.4.0/arch/mips/include/asm/mach-rc32434/pci.h
@@ -377,7 +377,7 @@
 				 PCI_CFG04_STAT_SSE | \
 				 PCI_CFG04_STAT_PE)
 
-#define KORINA_CNFG1		((KORINA_STAT<<16)|KORINA_CMD)
+#define KORINA_CNFG1		(KORINA_STAT | KORINA_CMD)
 
 #define KORINA_REVID		0
 #define KORINA_CLASS_CODE	0
--- linux-ein-5.4.0.orig/arch/mips/include/asm/mips-cm.h
+++ linux-ein-5.4.0/arch/mips/include/asm/mips-cm.h
@@ -11,6 +11,7 @@
 #ifndef __MIPS_ASM_MIPS_CM_H__
 #define __MIPS_ASM_MIPS_CM_H__
 
+#include <linux/bitfield.h>
 #include <linux/bitops.h>
 #include <linux/errno.h>
 
@@ -153,8 +154,8 @@
 #define CM_GCR_REV_MINOR			GENMASK(7, 0)
 
 #define CM_ENCODE_REV(major, minor) \
-		(((major) << __ffs(CM_GCR_REV_MAJOR)) | \
-		 ((minor) << __ffs(CM_GCR_REV_MINOR)))
+		(FIELD_PREP(CM_GCR_REV_MAJOR, major) | \
+		 FIELD_PREP(CM_GCR_REV_MINOR, minor))
 
 #define CM_REV_CM2				CM_ENCODE_REV(6, 0)
 #define CM_REV_CM2_5				CM_ENCODE_REV(7, 0)
@@ -362,10 +363,10 @@
 static inline unsigned int mips_cm_max_vp_width(void)
 {
 	extern int smp_num_siblings;
-	uint32_t cfg;
 
 	if (mips_cm_revision() >= CM_REV_CM3)
-		return read_gcr_sys_config2() & CM_GCR_SYS_CONFIG2_MAXVPW;
+		return FIELD_GET(CM_GCR_SYS_CONFIG2_MAXVPW,
+				 read_gcr_sys_config2());
 
 	if (mips_cm_present()) {
 		/*
@@ -373,8 +374,7 @@
 		 * number of VP(E)s, and if that ever changes then this will
 		 * need revisiting.
 		 */
-		cfg = read_gcr_cl_config() & CM_GCR_Cx_CONFIG_PVPE;
-		return (cfg >> __ffs(CM_GCR_Cx_CONFIG_PVPE)) + 1;
+		return FIELD_GET(CM_GCR_Cx_CONFIG_PVPE, read_gcr_cl_config()) + 1;
 	}
 
 	if (IS_ENABLED(CONFIG_SMP))
--- linux-ein-5.4.0.orig/arch/mips/include/asm/mipsregs.h
+++ linux-ein-5.4.0/arch/mips/include/asm/mipsregs.h
@@ -750,7 +750,7 @@
 
 /* MAAR bit definitions */
 #define MIPS_MAAR_VH		(_U64CAST_(1) << 63)
-#define MIPS_MAAR_ADDR		((BIT_ULL(BITS_PER_LONG - 12) - 1) << 12)
+#define MIPS_MAAR_ADDR		GENMASK_ULL(55, 12)
 #define MIPS_MAAR_ADDR_SHIFT	12
 #define MIPS_MAAR_S		(_ULCAST_(1) << 1)
 #define MIPS_MAAR_VL		(_ULCAST_(1) << 0)
@@ -2007,7 +2007,7 @@
 ({ int __res;								\
 	__asm__ __volatile__(						\
 		".set\tpush\n\t"					\
-		".set\tmips32r2\n\t"					\
+		".set\tmips32r5\n\t"					\
 		_ASM_SET_VIRT						\
 		"mfgc0\t%0, " #source ", %1\n\t"			\
 		".set\tpop"						\
@@ -2020,7 +2020,7 @@
 ({ unsigned long long __res;						\
 	__asm__ __volatile__(						\
 		".set\tpush\n\t"					\
-		".set\tmips64r2\n\t"					\
+		".set\tmips64r5\n\t"					\
 		_ASM_SET_VIRT						\
 		"dmfgc0\t%0, " #source ", %1\n\t"			\
 		".set\tpop"						\
@@ -2033,7 +2033,7 @@
 do {									\
 	__asm__ __volatile__(						\
 		".set\tpush\n\t"					\
-		".set\tmips32r2\n\t"					\
+		".set\tmips32r5\n\t"					\
 		_ASM_SET_VIRT						\
 		"mtgc0\t%z0, " #register ", %1\n\t"			\
 		".set\tpop"						\
@@ -2045,7 +2045,7 @@
 do {									\
 	__asm__ __volatile__(						\
 		".set\tpush\n\t"					\
-		".set\tmips64r2\n\t"					\
+		".set\tmips64r5\n\t"					\
 		_ASM_SET_VIRT						\
 		"dmtgc0\t%z0, " #register ", %1\n\t"			\
 		".set\tpop"						\
--- linux-ein-5.4.0.orig/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+++ linux-ein-5.4.0/arch/mips/include/asm/octeon/cvmx-bootinfo.h
@@ -315,7 +315,7 @@
 
 /* Functions to return string based on type */
 #define ENUM_BRD_TYPE_CASE(x) \
-	case x: return(#x + 16);	/* Skip CVMX_BOARD_TYPE_ */
+	case x: return (&#x[16]);	/* Skip CVMX_BOARD_TYPE_ */
 static inline const char *cvmx_board_type_to_string(enum
 						    cvmx_board_types_enum type)
 {
@@ -404,7 +404,7 @@
 }
 
 #define ENUM_CHIP_TYPE_CASE(x) \
-	case x: return(#x + 15);	/* Skip CVMX_CHIP_TYPE */
+	case x: return (&#x[15]);	/* Skip CVMX_CHIP_TYPE */
 static inline const char *cvmx_chip_type_to_string(enum
 						   cvmx_chip_types_enum type)
 {
--- linux-ein-5.4.0.orig/arch/mips/include/asm/pgtable-32.h
+++ linux-ein-5.4.0/arch/mips/include/asm/pgtable-32.h
@@ -155,6 +155,7 @@
 
 #if defined(CONFIG_XPA)
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 40
 #define pte_pfn(x)		(((unsigned long)((x).pte_high >> _PFN_SHIFT)) | (unsigned long)((x).pte_low << _PAGE_PRESENT_SHIFT))
 static inline pte_t
 pfn_pte(unsigned long pfn, pgprot_t prot)
@@ -170,6 +171,7 @@
 
 #elif defined(CONFIG_PHYS_ADDR_T_64BIT) && defined(CONFIG_CPU_MIPS32)
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 36
 #define pte_pfn(x)		((unsigned long)((x).pte_high >> 6))
 
 static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot)
@@ -184,6 +186,7 @@
 
 #else
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #ifdef CONFIG_CPU_VR41XX
 #define pte_pfn(x)		((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
 #define pfn_pte(pfn, prot)	__pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
--- linux-ein-5.4.0.orig/arch/mips/include/asm/pgtable-64.h
+++ linux-ein-5.4.0/arch/mips/include/asm/pgtable-64.h
@@ -18,10 +18,12 @@
 #include <asm/fixmap.h>
 
 #define __ARCH_USE_5LEVEL_HACK
-#if defined(CONFIG_PAGE_SIZE_64KB) && !defined(CONFIG_MIPS_VA_BITS_48)
+#if CONFIG_PGTABLE_LEVELS == 2
 #include <asm-generic/pgtable-nopmd.h>
-#elif !(defined(CONFIG_PAGE_SIZE_4KB) && defined(CONFIG_MIPS_VA_BITS_48))
+#elif CONFIG_PGTABLE_LEVELS == 3
 #include <asm-generic/pgtable-nopud.h>
+#else
+#include <asm-generic/5level-fixup.h>
 #endif
 
 /*
@@ -216,6 +218,9 @@
 	return pgd_val(pgd);
 }
 
+#define pgd_phys(pgd)		virt_to_phys((void *)pgd_val(pgd))
+#define pgd_page(pgd)		(pfn_to_page(pgd_phys(pgd) >> PAGE_SHIFT))
+
 static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
 {
 	return (pud_t *)pgd_page_vaddr(*pgd) + pud_index(address);
--- linux-ein-5.4.0.orig/arch/mips/include/asm/setup.h
+++ linux-ein-5.4.0/arch/mips/include/asm/setup.h
@@ -16,7 +16,7 @@
 	unsigned int reg_shift, unsigned int timeout) {}
 #endif
 
-extern void set_handler(unsigned long offset, void *addr, unsigned long len);
+void set_handler(unsigned long offset, const void *addr, unsigned long len);
 extern void set_uncached_handler(unsigned long offset, void *addr, unsigned long len);
 
 typedef void (*vi_handler_t)(void);
--- linux-ein-5.4.0.orig/arch/mips/include/asm/string.h
+++ linux-ein-5.4.0/arch/mips/include/asm/string.h
@@ -10,127 +10,6 @@
 #ifndef _ASM_STRING_H
 #define _ASM_STRING_H
 
-
-/*
- * Most of the inline functions are rather naive implementations so I just
- * didn't bother updating them for 64-bit ...
- */
-#ifdef CONFIG_32BIT
-
-#ifndef IN_STRING_C
-
-#define __HAVE_ARCH_STRCPY
-static __inline__ char *strcpy(char *__dest, __const__ char *__src)
-{
-  char *__xdest = __dest;
-
-  __asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n"
-	"1:\tlbu\t$1,(%1)\n\t"
-	"addiu\t%1,1\n\t"
-	"sb\t$1,(%0)\n\t"
-	"bnez\t$1,1b\n\t"
-	"addiu\t%0,1\n\t"
-	".set\tat\n\t"
-	".set\treorder"
-	: "=r" (__dest), "=r" (__src)
-	: "0" (__dest), "1" (__src)
-	: "memory");
-
-  return __xdest;
-}
-
-#define __HAVE_ARCH_STRNCPY
-static __inline__ char *strncpy(char *__dest, __const__ char *__src, size_t __n)
-{
-  char *__xdest = __dest;
-
-  if (__n == 0)
-    return __xdest;
-
-  __asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n"
-	"1:\tlbu\t$1,(%1)\n\t"
-	"subu\t%2,1\n\t"
-	"sb\t$1,(%0)\n\t"
-	"beqz\t$1,2f\n\t"
-	"addiu\t%0,1\n\t"
-	"bnez\t%2,1b\n\t"
-	"addiu\t%1,1\n"
-	"2:\n\t"
-	".set\tat\n\t"
-	".set\treorder"
-	: "=r" (__dest), "=r" (__src), "=r" (__n)
-	: "0" (__dest), "1" (__src), "2" (__n)
-	: "memory");
-
-  return __xdest;
-}
-
-#define __HAVE_ARCH_STRCMP
-static __inline__ int strcmp(__const__ char *__cs, __const__ char *__ct)
-{
-  int __res;
-
-  __asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n\t"
-	"lbu\t%2,(%0)\n"
-	"1:\tlbu\t$1,(%1)\n\t"
-	"addiu\t%0,1\n\t"
-	"bne\t$1,%2,2f\n\t"
-	"addiu\t%1,1\n\t"
-	"bnez\t%2,1b\n\t"
-	"lbu\t%2,(%0)\n\t"
-#if defined(CONFIG_CPU_R3000)
-	"nop\n\t"
-#endif
-	"move\t%2,$1\n"
-	"2:\tsubu\t%2,$1\n"
-	"3:\t.set\tat\n\t"
-	".set\treorder"
-	: "=r" (__cs), "=r" (__ct), "=r" (__res)
-	: "0" (__cs), "1" (__ct));
-
-  return __res;
-}
-
-#endif /* !defined(IN_STRING_C) */
-
-#define __HAVE_ARCH_STRNCMP
-static __inline__ int
-strncmp(__const__ char *__cs, __const__ char *__ct, size_t __count)
-{
-	int __res;
-
-	__asm__ __volatile__(
-	".set\tnoreorder\n\t"
-	".set\tnoat\n"
-	"1:\tlbu\t%3,(%0)\n\t"
-	"beqz\t%2,2f\n\t"
-	"lbu\t$1,(%1)\n\t"
-	"subu\t%2,1\n\t"
-	"bne\t$1,%3,3f\n\t"
-	"addiu\t%0,1\n\t"
-	"bnez\t%3,1b\n\t"
-	"addiu\t%1,1\n"
-	"2:\n\t"
-#if defined(CONFIG_CPU_R3000)
-	"nop\n\t"
-#endif
-	"move\t%3,$1\n"
-	"3:\tsubu\t%3,$1\n\t"
-	".set\tat\n\t"
-	".set\treorder"
-	: "=r" (__cs), "=r" (__ct), "=r" (__count), "=r" (__res)
-	: "0" (__cs), "1" (__ct), "2" (__count));
-
-	return __res;
-}
-#endif /* CONFIG_32BIT */
-
 #define __HAVE_ARCH_MEMSET
 extern void *memset(void *__s, int __c, size_t __count);
 
--- linux-ein-5.4.0.orig/arch/mips/include/asm/syscall.h
+++ linux-ein-5.4.0/arch/mips/include/asm/syscall.h
@@ -38,7 +38,7 @@
 static inline long syscall_get_nr(struct task_struct *task,
 				  struct pt_regs *regs)
 {
-	return current_thread_info()->syscall;
+	return task_thread_info(task)->syscall;
 }
 
 static inline void mips_syscall_update_nr(struct task_struct *task,
--- linux-ein-5.4.0.orig/arch/mips/include/asm/thread_info.h
+++ linux-ein-5.4.0/arch/mips/include/asm/thread_info.h
@@ -49,8 +49,26 @@
 	.addr_limit	= KERNEL_DS,		\
 }
 
-/* How to get the thread information struct from C.  */
+/*
+ * A pointer to the struct thread_info for the currently executing thread is
+ * held in register $28/$gp.
+ *
+ * We declare __current_thread_info as a global register variable rather than a
+ * local register variable within current_thread_info() because clang doesn't
+ * support explicit local register variables.
+ *
+ * When building the VDSO we take care not to declare the global register
+ * variable because this causes GCC to not preserve the value of $28/$gp in
+ * functions that change its value (which is common in the PIC VDSO when
+ * accessing the GOT). Since the VDSO shouldn't be accessing
+ * __current_thread_info anyway we declare it extern in order to cause a link
+ * failure if it's referenced.
+ */
+#ifdef __VDSO__
+extern struct thread_info *__current_thread_info;
+#else
 register struct thread_info *__current_thread_info __asm__("$28");
+#endif
 
 static inline struct thread_info *current_thread_info(void)
 {
--- linux-ein-5.4.0.orig/arch/mips/include/asm/timex.h
+++ linux-ein-5.4.0/arch/mips/include/asm/timex.h
@@ -40,9 +40,9 @@
 typedef unsigned int cycles_t;
 
 /*
- * On R4000/R4400 before version 5.0 an erratum exists such that if the
- * cycle counter is read in the exact moment that it is matching the
- * compare register, no interrupt will be generated.
+ * On R4000/R4400 an erratum exists such that if the cycle counter is
+ * read in the exact moment that it is matching the compare register,
+ * no interrupt will be generated.
  *
  * There is a suggested workaround and also the erratum can't strike if
  * the compare interrupt isn't being used as the clock source device.
@@ -63,7 +63,7 @@
 	if (!__builtin_constant_p(cpu_has_counter))
 		asm volatile("" : "=m" (cpu_data[0].options));
 	if (likely(cpu_has_counter &&
-		   prid >= (PRID_IMP_R4000 | PRID_REV_ENCODE_44(5, 0))))
+		   prid > (PRID_IMP_R4000 | PRID_REV_ENCODE_44(15, 15))))
 		return 1;
 	else
 		return 0;
@@ -76,25 +76,24 @@
 	else
 		return 0;	/* no usable counter */
 }
+#define get_cycles get_cycles
 
 /*
  * Like get_cycles - but where c0_count is not available we desperately
  * use c0_random in an attempt to get at least a little bit of entropy.
- *
- * R6000 and R6000A neither have a count register nor a random register.
- * That leaves no entropy source in the CPU itself.
  */
 static inline unsigned long random_get_entropy(void)
 {
-	unsigned int prid = read_c0_prid();
-	unsigned int imp = prid & PRID_IMP_MASK;
+	unsigned int c0_random;
 
-	if (can_use_mips_counter(prid))
+	if (can_use_mips_counter(read_c0_prid()))
 		return read_c0_count();
-	else if (likely(imp != PRID_IMP_R6000 && imp != PRID_IMP_R6000A))
-		return read_c0_random();
+
+	if (cpu_has_3kex)
+		c0_random = (read_c0_random() >> 8) & 0x3f;
 	else
-		return 0;	/* no usable register */
+		c0_random = read_c0_random() & 0x3f;
+	return (random_get_entropy_fallback() << 6) | (0x3f - c0_random);
 }
 #define random_get_entropy random_get_entropy
 
--- linux-ein-5.4.0.orig/arch/mips/include/asm/vdso/gettimeofday.h
+++ linux-ein-5.4.0/arch/mips/include/asm/vdso/gettimeofday.h
@@ -26,7 +26,11 @@
 
 #define __VDSO_USE_SYSCALL		ULLONG_MAX
 
-#ifdef CONFIG_MIPS_CLOCK_VSYSCALL
+#if MIPS_ISA_REV < 6
+#define VDSO_SYSCALL_CLOBBERS "hi", "lo",
+#else
+#define VDSO_SYSCALL_CLOBBERS
+#endif
 
 static __always_inline long gettimeofday_fallback(
 				struct __kernel_old_timeval *_tv,
@@ -43,22 +47,13 @@
 	: "=r" (ret), "=r" (error)
 	: "r" (tv), "r" (tz), "r" (nr)
 	: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
-	  "$14", "$15", "$24", "$25", "hi", "lo", "memory");
+	  "$14", "$15", "$24", "$25",
+	  VDSO_SYSCALL_CLOBBERS
+	  "memory");
 
 	return error ? -ret : ret;
 }
 
-#else
-
-static __always_inline long gettimeofday_fallback(
-				struct __kernel_old_timeval *_tv,
-				struct timezone *_tz)
-{
-	return -1;
-}
-
-#endif
-
 static __always_inline long clock_gettime_fallback(
 					clockid_t _clkid,
 					struct __kernel_timespec *_ts)
@@ -78,7 +73,9 @@
 	: "=r" (ret), "=r" (error)
 	: "r" (clkid), "r" (ts), "r" (nr)
 	: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
-	  "$14", "$15", "$24", "$25", "hi", "lo", "memory");
+	  "$14", "$15", "$24", "$25",
+	  VDSO_SYSCALL_CLOBBERS
+	  "memory");
 
 	return error ? -ret : ret;
 }
@@ -102,7 +99,9 @@
 	: "=r" (ret), "=r" (error)
 	: "r" (clkid), "r" (ts), "r" (nr)
 	: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
-	  "$14", "$15", "$24", "$25", "hi", "lo", "memory");
+	  "$14", "$15", "$24", "$25",
+	  VDSO_SYSCALL_CLOBBERS
+	  "memory");
 
 	return error ? -ret : ret;
 }
@@ -126,7 +125,9 @@
 	: "=r" (ret), "=r" (error)
 	: "r" (clkid), "r" (ts), "r" (nr)
 	: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
-	  "$14", "$15", "$24", "$25", "hi", "lo", "memory");
+	  "$14", "$15", "$24", "$25",
+	  VDSO_SYSCALL_CLOBBERS
+	  "memory");
 
 	return error ? -ret : ret;
 }
@@ -146,7 +147,9 @@
 	: "=r" (ret), "=r" (error)
 	: "r" (clkid), "r" (ts), "r" (nr)
 	: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
-	  "$14", "$15", "$24", "$25", "hi", "lo", "memory");
+	  "$14", "$15", "$24", "$25",
+	  VDSO_SYSCALL_CLOBBERS
+	  "memory");
 
 	return error ? -ret : ret;
 }
--- linux-ein-5.4.0.orig/arch/mips/include/asm/vdso/vdso.h
+++ linux-ein-5.4.0/arch/mips/include/asm/vdso/vdso.h
@@ -67,7 +67,7 @@
 
 static inline void __iomem *get_gic(const struct vdso_data *data)
 {
-	return (void __iomem *)data - PAGE_SIZE;
+	return (void __iomem *)((unsigned long)data & PAGE_MASK) - PAGE_SIZE;
 }
 
 #endif /* CONFIG_CLKSRC_MIPS_GIC */
--- linux-ein-5.4.0.orig/arch/mips/include/asm/vpe.h
+++ linux-ein-5.4.0/arch/mips/include/asm/vpe.h
@@ -104,7 +104,6 @@
 	struct list_head tc_list;       /* Thread contexts */
 };
 
-extern unsigned long physical_memsize;
 extern struct vpe_control vpecontrol;
 extern const struct file_operations vpe_fops;
 
--- linux-ein-5.4.0.orig/arch/mips/jazz/jazzdma.c
+++ linux-ein-5.4.0/arch/mips/jazz/jazzdma.c
@@ -592,7 +592,7 @@
 	phys_addr_t phys = page_to_phys(page) + offset;
 
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-		arch_sync_dma_for_device(dev, phys, size, dir);
+		arch_sync_dma_for_device(phys, size, dir);
 	return vdma_alloc(phys, size);
 }
 
@@ -600,7 +600,7 @@
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-		arch_sync_dma_for_cpu(dev, vdma_log2phys(dma_addr), size, dir);
+		arch_sync_dma_for_cpu(vdma_log2phys(dma_addr), size, dir);
 	vdma_free(dma_addr);
 }
 
@@ -612,7 +612,7 @@
 
 	for_each_sg(sglist, sg, nents, i) {
 		if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-			arch_sync_dma_for_device(dev, sg_phys(sg), sg->length,
+			arch_sync_dma_for_device(sg_phys(sg), sg->length,
 				dir);
 		sg->dma_address = vdma_alloc(sg_phys(sg), sg->length);
 		if (sg->dma_address == DMA_MAPPING_ERROR)
@@ -631,8 +631,7 @@
 
 	for_each_sg(sglist, sg, nents, i) {
 		if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-			arch_sync_dma_for_cpu(dev, sg_phys(sg), sg->length,
-				dir);
+			arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
 		vdma_free(sg->dma_address);
 	}
 }
@@ -640,13 +639,13 @@
 static void jazz_dma_sync_single_for_device(struct device *dev,
 		dma_addr_t addr, size_t size, enum dma_data_direction dir)
 {
-	arch_sync_dma_for_device(dev, vdma_log2phys(addr), size, dir);
+	arch_sync_dma_for_device(vdma_log2phys(addr), size, dir);
 }
 
 static void jazz_dma_sync_single_for_cpu(struct device *dev,
 		dma_addr_t addr, size_t size, enum dma_data_direction dir)
 {
-	arch_sync_dma_for_cpu(dev, vdma_log2phys(addr), size, dir);
+	arch_sync_dma_for_cpu(vdma_log2phys(addr), size, dir);
 }
 
 static void jazz_dma_sync_sg_for_device(struct device *dev,
@@ -656,7 +655,7 @@
 	int i;
 
 	for_each_sg(sgl, sg, nents, i)
-		arch_sync_dma_for_device(dev, sg_phys(sg), sg->length, dir);
+		arch_sync_dma_for_device(sg_phys(sg), sg->length, dir);
 }
 
 static void jazz_dma_sync_sg_for_cpu(struct device *dev,
@@ -666,7 +665,7 @@
 	int i;
 
 	for_each_sg(sgl, sg, nents, i)
-		arch_sync_dma_for_cpu(dev, sg_phys(sg), sg->length, dir);
+		arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
 }
 
 const struct dma_map_ops jazz_dma_ops = {
--- linux-ein-5.4.0.orig/arch/mips/jz4740/setup.c
+++ linux-ein-5.4.0/arch/mips/jz4740/setup.c
@@ -61,7 +61,7 @@
 
 	jz4740_reset_init();
 
-	if (__dtb_start != __dtb_end)
+	if (&__dtb_start != &__dtb_end)
 		dtb = __dtb_start;
 	else
 		dtb = (void *)fw_passed_dtb;
--- linux-ein-5.4.0.orig/arch/mips/kernel/cacheinfo.c
+++ linux-ein-5.4.0/arch/mips/kernel/cacheinfo.c
@@ -17,7 +17,7 @@
 	leaf++;							\
 } while (0)
 
-static int __init_cache_level(unsigned int cpu)
+int init_cache_level(unsigned int cpu)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
@@ -50,21 +50,46 @@
 	return 0;
 }
 
-static int __populate_cache_leaves(unsigned int cpu)
+static void fill_cpumask_siblings(int cpu, cpumask_t *cpu_map)
+{
+	int cpu1;
+
+	for_each_possible_cpu(cpu1)
+		if (cpus_are_siblings(cpu, cpu1))
+			cpumask_set_cpu(cpu1, cpu_map);
+}
+
+static void fill_cpumask_cluster(int cpu, cpumask_t *cpu_map)
+{
+	int cpu1;
+	int cluster = cpu_cluster(&cpu_data[cpu]);
+
+	for_each_possible_cpu(cpu1)
+		if (cpu_cluster(&cpu_data[cpu1]) == cluster)
+			cpumask_set_cpu(cpu1, cpu_map);
+}
+
+int populate_cache_leaves(unsigned int cpu)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 	struct cacheinfo *this_leaf = this_cpu_ci->info_list;
 
 	if (c->icache.waysize) {
+		/* L1 caches are per core */
+		fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map);
 		populate_cache(dcache, this_leaf, 1, CACHE_TYPE_DATA);
+		fill_cpumask_siblings(cpu, &this_leaf->shared_cpu_map);
 		populate_cache(icache, this_leaf, 1, CACHE_TYPE_INST);
 	} else {
 		populate_cache(dcache, this_leaf, 1, CACHE_TYPE_UNIFIED);
 	}
 
-	if (c->scache.waysize)
+	if (c->scache.waysize) {
+		/* L2 cache is per cluster */
+		fill_cpumask_cluster(cpu, &this_leaf->shared_cpu_map);
 		populate_cache(scache, this_leaf, 2, CACHE_TYPE_UNIFIED);
+	}
 
 	if (c->tcache.waysize)
 		populate_cache(tcache, this_leaf, 3, CACHE_TYPE_UNIFIED);
@@ -73,6 +98,3 @@
 
 	return 0;
 }
-
-DEFINE_SMP_CALL_CACHE_FUNCTION(init_cache_level)
-DEFINE_SMP_CALL_CACHE_FUNCTION(populate_cache_leaves)
--- linux-ein-5.4.0.orig/arch/mips/kernel/genex.S
+++ linux-ein-5.4.0/arch/mips/kernel/genex.S
@@ -474,20 +474,20 @@
 	.endm
 
 	.macro	__build_clear_fpe
+	CLI
+	TRACE_IRQS_OFF
 	.set	push
 	/* gas fails to assemble cfc1 for some archs (octeon).*/ \
 	.set	mips1
 	SET_HARDFLOAT
 	cfc1	a1, fcr31
 	.set	pop
-	CLI
-	TRACE_IRQS_OFF
 	.endm
 
 	.macro	__build_clear_msa_fpe
-	_cfcmsa	a1, MSA_CSR
 	CLI
 	TRACE_IRQS_OFF
+	_cfcmsa	a1, MSA_CSR
 	.endm
 
 	.macro	__build_clear_ade
--- linux-ein-5.4.0.orig/arch/mips/kernel/jump_label.c
+++ linux-ein-5.4.0/arch/mips/kernel/jump_label.c
@@ -56,7 +56,7 @@
 			 * The branch offset must fit in the instruction's 26
 			 * bit field.
 			 */
-			WARN_ON((offset >= BIT(25)) ||
+			WARN_ON((offset >= (long)BIT(25)) ||
 				(offset < -(long)BIT(25)));
 
 			insn.j_format.opcode = bc6_op;
--- linux-ein-5.4.0.orig/arch/mips/kernel/mips-cm.c
+++ linux-ein-5.4.0/arch/mips/kernel/mips-cm.c
@@ -119,9 +119,9 @@
 	"COH_RD_ERR", "MMIO_WR_ERR", "MMIO_RD_ERR", "0x07",
 	"0x08", "0x09", "0x0a", "0x0b",
 	"0x0c", "0x0d", "0x0e", "0x0f",
-	"0x10", "0x11", "0x12", "0x13",
-	"0x14", "0x15", "0x16", "INTVN_WR_ERR",
-	"INTVN_RD_ERR", "0x19", "0x1a", "0x1b",
+	"0x10", "INTVN_WR_ERR", "INTVN_RD_ERR", "0x13",
+	"0x14", "0x15", "0x16", "0x17",
+	"0x18", "0x19", "0x1a", "0x1b",
 	"0x1c", "0x1d", "0x1e", "0x1f"
 };
 
@@ -179,8 +179,7 @@
 	phys_addr_t addr;
 
 	/* L2-only sync was introduced with CM major revision 6 */
-	major_rev = (read_gcr_rev() & CM_GCR_REV_MAJOR) >>
-		__ffs(CM_GCR_REV_MAJOR);
+	major_rev = FIELD_GET(CM_GCR_REV_MAJOR, read_gcr_rev());
 	if (major_rev < 6)
 		return;
 
@@ -263,13 +262,13 @@
 	preempt_disable();
 
 	if (cm_rev >= CM_REV_CM3) {
-		val = core << __ffs(CM3_GCR_Cx_OTHER_CORE);
-		val |= vp << __ffs(CM3_GCR_Cx_OTHER_VP);
+		val = FIELD_PREP(CM3_GCR_Cx_OTHER_CORE, core) |
+		      FIELD_PREP(CM3_GCR_Cx_OTHER_VP, vp);
 
 		if (cm_rev >= CM_REV_CM3_5) {
 			val |= CM_GCR_Cx_OTHER_CLUSTER_EN;
-			val |= cluster << __ffs(CM_GCR_Cx_OTHER_CLUSTER);
-			val |= block << __ffs(CM_GCR_Cx_OTHER_BLOCK);
+			val |= FIELD_PREP(CM_GCR_Cx_OTHER_CLUSTER, cluster);
+			val |= FIELD_PREP(CM_GCR_Cx_OTHER_BLOCK, block);
 		} else {
 			WARN_ON(cluster != 0);
 			WARN_ON(block != CM_GCR_Cx_OTHER_BLOCK_LOCAL);
@@ -299,7 +298,7 @@
 		spin_lock_irqsave(&per_cpu(cm_core_lock, curr_core),
 				  per_cpu(cm_core_lock_flags, curr_core));
 
-		val = core << __ffs(CM_GCR_Cx_OTHER_CORENUM);
+		val = FIELD_PREP(CM_GCR_Cx_OTHER_CORENUM, core);
 	}
 
 	write_gcr_cl_other(val);
@@ -343,8 +342,8 @@
 	cm_other = read_gcr_error_mult();
 
 	if (revision < CM_REV_CM3) { /* CM2 */
-		cause = cm_error >> __ffs(CM_GCR_ERROR_CAUSE_ERRTYPE);
-		ocause = cm_other >> __ffs(CM_GCR_ERROR_MULT_ERR2ND);
+		cause = FIELD_GET(CM_GCR_ERROR_CAUSE_ERRTYPE, cm_error);
+		ocause = FIELD_GET(CM_GCR_ERROR_MULT_ERR2ND, cm_other);
 
 		if (!cause)
 			return;
@@ -386,8 +385,8 @@
 		ulong core_id_bits, vp_id_bits, cmd_bits, cmd_group_bits;
 		ulong cm3_cca_bits, mcp_bits, cm3_tr_bits, sched_bit;
 
-		cause = cm_error >> __ffs64(CM3_GCR_ERROR_CAUSE_ERRTYPE);
-		ocause = cm_other >> __ffs(CM_GCR_ERROR_MULT_ERR2ND);
+		cause = FIELD_GET(CM3_GCR_ERROR_CAUSE_ERRTYPE, cm_error);
+		ocause = FIELD_GET(CM_GCR_ERROR_MULT_ERR2ND, cm_other);
 
 		if (!cause)
 			return;
--- linux-ein-5.4.0.orig/arch/mips/kernel/mips-cpc.c
+++ linux-ein-5.4.0/arch/mips/kernel/mips-cpc.c
@@ -27,6 +27,7 @@
 	cpc_node = of_find_compatible_node(of_root, NULL, "mti,mips-cpc");
 	if (cpc_node) {
 		err = of_address_to_resource(cpc_node, 0, &res);
+		of_node_put(cpc_node);
 		if (!err)
 			return res.start;
 	}
--- linux-ein-5.4.0.orig/arch/mips/kernel/proc.c
+++ linux-ein-5.4.0/arch/mips/kernel/proc.c
@@ -168,7 +168,7 @@
 {
 	unsigned long i = *pos;
 
-	return i < NR_CPUS ? (void *) (i + 1) : NULL;
+	return i < nr_cpu_ids ? (void *) (i + 1) : NULL;
 }
 
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
--- linux-ein-5.4.0.orig/arch/mips/kernel/r2300_fpu.S
+++ linux-ein-5.4.0/arch/mips/kernel/r2300_fpu.S
@@ -29,8 +29,8 @@
 #define EX2(a,b)						\
 9:	a,##b;							\
 	.section __ex_table,"a";				\
-	PTR	9b,bad_stack;					\
-	PTR	9b+4,bad_stack;					\
+	PTR	9b,fault;					\
+	PTR	9b+4,fault;					\
 	.previous
 
 	.set	mips1
--- linux-ein-5.4.0.orig/arch/mips/kernel/relocate.c
+++ linux-ein-5.4.0/arch/mips/kernel/relocate.c
@@ -187,8 +187,14 @@
 static inline __init unsigned long rotate_xor(unsigned long hash,
 					      const void *area, size_t size)
 {
-	size_t i;
-	unsigned long *ptr = (unsigned long *)area;
+	const typeof(hash) *ptr = PTR_ALIGN(area, sizeof(hash));
+	size_t diff, i;
+
+	diff = (void *)ptr - area;
+	if (unlikely(size < diff + sizeof(hash)))
+		return hash;
+
+	size = ALIGN_DOWN(size - diff, sizeof(hash));
 
 	for (i = 0; i < size / sizeof(hash); i++) {
 		/* Rotate by odd number of bits and XOR. */
--- linux-ein-5.4.0.orig/arch/mips/kernel/setup.c
+++ linux-ein-5.4.0/arch/mips/kernel/setup.c
@@ -11,6 +11,8 @@
  * Copyright (C) 2000, 2001, 2002, 2007	 Maciej W. Rozycki
  */
 #include <linux/init.h>
+#include <linux/cpu.h>
+#include <linux/delay.h>
 #include <linux/ioport.h>
 #include <linux/export.h>
 #include <linux/screen_info.h>
@@ -190,10 +192,6 @@
 		pr_err("initrd start must be page aligned\n");
 		goto disable;
 	}
-	if (initrd_start < PAGE_OFFSET) {
-		pr_err("initrd start < PAGE_OFFSET\n");
-		goto disable;
-	}
 
 	/*
 	 * Sanitize initrd addresses. For example firmware
@@ -206,6 +204,11 @@
 	initrd_end = (unsigned long)__va(end);
 	initrd_start = (unsigned long)__va(__pa(initrd_start));
 
+	if (initrd_start < PAGE_OFFSET) {
+		pr_err("initrd start < PAGE_OFFSET\n");
+		goto disable;
+	}
+
 	ROOT_DEV = Root_RAM0;
 	return PFN_UP(end);
 disable:
@@ -494,7 +497,7 @@
 	if (ret != 0 || crash_size <= 0)
 		return;
 
-	if (!memblock_find_in_range(crash_base, crash_base + crash_size, crash_size, 0)) {
+	if (!memblock_find_in_range(crash_base, crash_base + crash_size, crash_size, 1)) {
 		pr_warn("Invalid memory region reserved for crash kernel\n");
 		return;
 	}
@@ -529,8 +532,8 @@
 
 static void __init check_kernel_sections_mem(void)
 {
-	phys_addr_t start = PFN_PHYS(PFN_DOWN(__pa_symbol(&_text)));
-	phys_addr_t size = PFN_PHYS(PFN_UP(__pa_symbol(&_end))) - start;
+	phys_addr_t start = __pa_symbol(&_text);
+	phys_addr_t size = __pa_symbol(&_end) - start;
 
 	if (!memblock_is_region_memory(start, size)) {
 		pr_info("Kernel sections are not in the memory maps\n");
@@ -653,7 +656,17 @@
 				 crashk_res.end - crashk_res.start + 1);
 #endif
 	device_tree_init();
+
+	/*
+	 * In order to reduce the possibility of kernel panic when failed to
+	 * get IO TLB memory under CONFIG_SWIOTLB, it is better to allocate
+	 * low memory as small as possible before plat_swiotlb_setup(), so
+	 * make sparse_init() using top-down allocation.
+	 */
+	memblock_set_bottom_up(false);
 	sparse_init();
+	memblock_set_bottom_up(true);
+
 	plat_swiotlb_setup();
 
 	dma_contiguous_reserve(PFN_PHYS(max_low_pfn));
@@ -801,3 +814,14 @@
 }
 early_param("nocoherentio", setnocoherentio);
 #endif
+
+void __init arch_cpu_finalize_init(void)
+{
+	unsigned int cpu = smp_processor_id();
+
+	cpu_data[cpu].udelay_val = loops_per_jiffy;
+	check_bugs32();
+
+	if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
+		check_bugs64();
+}
--- linux-ein-5.4.0.orig/arch/mips/kernel/smp-bmips.c
+++ linux-ein-5.4.0/arch/mips/kernel/smp-bmips.c
@@ -241,6 +241,8 @@
  */
 static void bmips_init_secondary(void)
 {
+	bmips_cpu_setup();
+
 	switch (current_cpu_type()) {
 	case CPU_BMIPS4350:
 	case CPU_BMIPS4380:
--- linux-ein-5.4.0.orig/arch/mips/kernel/smp-cps.c
+++ linux-ein-5.4.0/arch/mips/kernel/smp-cps.c
@@ -423,9 +423,11 @@
 			wmb();
 		}
 	} else {
-		pr_debug("Gating power to core %d\n", core);
-		/* Power down the core */
-		cps_pm_enter_state(CPS_PM_POWER_GATED);
+		if (IS_ENABLED(CONFIG_HOTPLUG_CPU)) {
+			pr_debug("Gating power to core %d\n", core);
+			/* Power down the core */
+			cps_pm_enter_state(CPS_PM_POWER_GATED);
+		}
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/mips/kernel/smp.c
+++ linux-ein-5.4.0/arch/mips/kernel/smp.c
@@ -361,6 +361,9 @@
 	cpu = smp_processor_id();
 	cpu_data[cpu].udelay_val = loops_per_jiffy;
 
+	set_cpu_sibling_map(cpu);
+	set_cpu_core_map(cpu);
+
 	cpumask_set_cpu(cpu, &cpu_coherent_mask);
 	notify_cpu_starting(cpu);
 
@@ -372,9 +375,6 @@
 	/* The CPU is running and counters synchronised, now mark it online */
 	set_cpu_online(cpu, true);
 
-	set_cpu_sibling_map(cpu);
-	set_cpu_core_map(cpu);
-
 	calculate_cpu_foreign_map();
 
 	/*
--- linux-ein-5.4.0.orig/arch/mips/kernel/syscall.c
+++ linux-ein-5.4.0/arch/mips/kernel/syscall.c
@@ -239,12 +239,3 @@
 {
 	return -ENOSYS;
 }
-
-/*
- * If we ever come here the user sp is bad.  Zap the process right away.
- * Due to the bad stack signaling wouldn't work.
- */
-asmlinkage void bad_stack(void)
-{
-	do_exit(SIGSEGV);
-}
--- linux-ein-5.4.0.orig/arch/mips/kernel/syscalls/Makefile
+++ linux-ein-5.4.0/arch/mips/kernel/syscalls/Makefile
@@ -18,7 +18,7 @@
 		   '$(syshdr_pfx_$(basetarget))'		\
 		   '$(syshdr_offset_$(basetarget))'
 
-quiet_cmd_sysnr = SYSNR  $@
+quiet_cmd_sysnr = SYSNR   $@
       cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'		\
 		  '$(sysnr_abis_$(basetarget))'			\
 		  '$(sysnr_pfx_$(basetarget))'			\
--- linux-ein-5.4.0.orig/arch/mips/kernel/time.c
+++ linux-ein-5.4.0/arch/mips/kernel/time.c
@@ -18,12 +18,82 @@
 #include <linux/smp.h>
 #include <linux/spinlock.h>
 #include <linux/export.h>
+#include <linux/cpufreq.h>
+#include <linux/delay.h>
 
 #include <asm/cpu-features.h>
 #include <asm/cpu-type.h>
 #include <asm/div64.h>
 #include <asm/time.h>
 
+#ifdef CONFIG_CPU_FREQ
+
+static DEFINE_PER_CPU(unsigned long, pcp_lpj_ref);
+static DEFINE_PER_CPU(unsigned long, pcp_lpj_ref_freq);
+static unsigned long glb_lpj_ref;
+static unsigned long glb_lpj_ref_freq;
+
+static int cpufreq_callback(struct notifier_block *nb,
+			    unsigned long val, void *data)
+{
+	struct cpufreq_freqs *freq = data;
+	struct cpumask *cpus = freq->policy->cpus;
+	unsigned long lpj;
+	int cpu;
+
+	/*
+	 * Skip lpj numbers adjustment if the CPU-freq transition is safe for
+	 * the loops delay. (Is this possible?)
+	 */
+	if (freq->flags & CPUFREQ_CONST_LOOPS)
+		return NOTIFY_OK;
+
+	/* Save the initial values of the lpjes for future scaling. */
+	if (!glb_lpj_ref) {
+		glb_lpj_ref = boot_cpu_data.udelay_val;
+		glb_lpj_ref_freq = freq->old;
+
+		for_each_online_cpu(cpu) {
+			per_cpu(pcp_lpj_ref, cpu) =
+				cpu_data[cpu].udelay_val;
+			per_cpu(pcp_lpj_ref_freq, cpu) = freq->old;
+		}
+	}
+
+	/*
+	 * Adjust global lpj variable and per-CPU udelay_val number in
+	 * accordance with the new CPU frequency.
+	 */
+	if ((val == CPUFREQ_PRECHANGE  && freq->old < freq->new) ||
+	    (val == CPUFREQ_POSTCHANGE && freq->old > freq->new)) {
+		loops_per_jiffy = cpufreq_scale(glb_lpj_ref,
+						glb_lpj_ref_freq,
+						freq->new);
+
+		for_each_cpu(cpu, cpus) {
+			lpj = cpufreq_scale(per_cpu(pcp_lpj_ref, cpu),
+					    per_cpu(pcp_lpj_ref_freq, cpu),
+					    freq->new);
+			cpu_data[cpu].udelay_val = (unsigned int)lpj;
+		}
+	}
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block cpufreq_notifier = {
+	.notifier_call  = cpufreq_callback,
+};
+
+static int __init register_cpufreq_notifier(void)
+{
+	return cpufreq_register_notifier(&cpufreq_notifier,
+					 CPUFREQ_TRANSITION_NOTIFIER);
+}
+core_initcall(register_cpufreq_notifier);
+
+#endif /* CONFIG_CPU_FREQ */
+
 /*
  * forward reference
  */
@@ -71,15 +141,10 @@
 	case CPU_R4400MC:
 		/*
 		 * The published errata for the R4400 up to 3.0 say the CPU
-		 * has the mfc0 from count bug.
+		 * has the mfc0 from count bug.  This seems the last version
+		 * produced.
 		 */
-		if ((current_cpu_data.processor_id & 0xff) <= 0x30)
-			return 1;
-
-		/*
-		 * we assume newer revisions are ok
-		 */
-		return 0;
+		return 1;
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/arch/mips/kernel/topology.c
+++ linux-ein-5.4.0/arch/mips/kernel/topology.c
@@ -20,7 +20,7 @@
 	for_each_present_cpu(i) {
 		struct cpu *c = &per_cpu(cpu_devices, i);
 
-		c->hotpluggable = 1;
+		c->hotpluggable = !!i;
 		ret = register_cpu(c, i);
 		if (ret)
 			printk(KERN_WARNING "topology_init: register_cpu %d "
--- linux-ein-5.4.0.orig/arch/mips/kernel/traps.c
+++ linux-ein-5.4.0/arch/mips/kernel/traps.c
@@ -415,7 +415,7 @@
 	if (regs && kexec_should_crash(current))
 		crash_kexec(regs);
 
-	do_exit(sig);
+	make_task_dead(sig);
 }
 
 extern struct exception_table_entry __start___dbe_table[];
@@ -1240,6 +1240,18 @@
 		err = own_fpu_inatomic(1);
 		if (msa && !err) {
 			enable_msa();
+			/*
+			 * with MSA enabled, userspace can see MSACSR
+			 * and MSA regs, but the values in them are from
+			 * other task before current task, restore them
+			 * from saved fp/msa context
+			 */
+			write_msa_csr(current->thread.fpu.msacsr);
+			/*
+			 * own_fpu_inatomic(1) just restore low 64bit,
+			 * fix the high 64bit
+			 */
+			init_msa_upper();
 			set_thread_flag(TIF_USEDMSA);
 			set_thread_flag(TIF_MSA_CTX_LIVE);
 		}
@@ -2008,19 +2020,19 @@
 		 * If no shadow set is selected then use the default handler
 		 * that does normal register saving and standard interrupt exit
 		 */
-		extern char except_vec_vi, except_vec_vi_lui;
-		extern char except_vec_vi_ori, except_vec_vi_end;
-		extern char rollback_except_vec_vi;
-		char *vec_start = using_rollback_handler() ?
-			&rollback_except_vec_vi : &except_vec_vi;
+		extern const u8 except_vec_vi[], except_vec_vi_lui[];
+		extern const u8 except_vec_vi_ori[], except_vec_vi_end[];
+		extern const u8 rollback_except_vec_vi[];
+		const u8 *vec_start = using_rollback_handler() ?
+				      rollback_except_vec_vi : except_vec_vi;
 #if defined(CONFIG_CPU_MICROMIPS) || defined(CONFIG_CPU_BIG_ENDIAN)
-		const int lui_offset = &except_vec_vi_lui - vec_start + 2;
-		const int ori_offset = &except_vec_vi_ori - vec_start + 2;
+		const int lui_offset = except_vec_vi_lui - vec_start + 2;
+		const int ori_offset = except_vec_vi_ori - vec_start + 2;
 #else
-		const int lui_offset = &except_vec_vi_lui - vec_start;
-		const int ori_offset = &except_vec_vi_ori - vec_start;
+		const int lui_offset = except_vec_vi_lui - vec_start;
+		const int ori_offset = except_vec_vi_ori - vec_start;
 #endif
-		const int handler_len = &except_vec_vi_end - vec_start;
+		const int handler_len = except_vec_vi_end - vec_start;
 
 		if (handler_len > VECTORSPACING) {
 			/*
@@ -2126,6 +2138,7 @@
 
 	change_c0_status(ST0_CU|ST0_MX|ST0_RE|ST0_FR|ST0_BEV|ST0_TS|ST0_KX|ST0_SX|ST0_UX,
 			 status_set);
+	back_to_back_c0_hazard();
 }
 
 unsigned int hwrena;
@@ -2227,7 +2240,7 @@
 }
 
 /* Install CPU exception handler */
-void set_handler(unsigned long offset, void *addr, unsigned long size)
+void set_handler(unsigned long offset, const void *addr, unsigned long size)
 {
 #ifdef CONFIG_CPU_MICROMIPS
 	memcpy((void *)(ebase + offset), ((unsigned char *)addr - 1), size);
--- linux-ein-5.4.0.orig/arch/mips/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/mips/kernel/vmlinux.lds.S
@@ -10,6 +10,8 @@
  */
 #define BSS_FIRST_SECTIONS *(.bss..swapper_pg_dir)
 
+#define RUNTIME_DISCARD_EXIT
+
 #include <asm-generic/vmlinux.lds.h>
 
 #undef mips
@@ -50,7 +52,7 @@
 	/* . = 0xa800000000300000; */
 	. = 0xffffffff80300000;
 #endif
-	. = VMLINUX_LOAD_ADDRESS;
+	. = LINKER_LOAD_ADDRESS;
 	/* read-only */
 	_text = .;	/* Text and read-only data */
 	.text : {
@@ -93,6 +95,7 @@
 
 		INIT_TASK_DATA(THREAD_SIZE)
 		NOSAVE_DATA
+		PAGE_ALIGNED_DATA(PAGE_SIZE)
 		CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
 		READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
 		DATA_DATA
@@ -225,6 +228,5 @@
 		*(.options)
 		*(.pdr)
 		*(.reginfo)
-		*(.eh_frame)
 	}
 }
--- linux-ein-5.4.0.orig/arch/mips/kernel/vpe-cmp.c
+++ linux-ein-5.4.0/arch/mips/kernel/vpe-cmp.c
@@ -75,7 +75,6 @@
 
 static void vpe_device_release(struct device *cd)
 {
-	kfree(cd);
 }
 
 static struct class vpe_class = {
@@ -157,6 +156,7 @@
 	device_del(&vpe_device);
 
 out_class:
+	put_device(&vpe_device);
 	class_unregister(&vpe_class);
 
 out_chrdev:
@@ -169,7 +169,7 @@
 {
 	struct vpe *v, *n;
 
-	device_del(&vpe_device);
+	device_unregister(&vpe_device);
 	class_unregister(&vpe_class);
 	unregister_chrdev(major, VPE_MODULE_NAME);
 
--- linux-ein-5.4.0.orig/arch/mips/kernel/vpe-mt.c
+++ linux-ein-5.4.0/arch/mips/kernel/vpe-mt.c
@@ -92,12 +92,11 @@
 	write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
 
 	/*
-	 * The sde-kit passes 'memsize' to __start in $a3, so set something
-	 * here...  Or set $a3 to zero and define DFLT_STACK_SIZE and
-	 * DFLT_HEAP_SIZE when you compile your program
+	 * We don't pass the memsize here, so VPE programs need to be
+	 * compiled with DFLT_STACK_SIZE and DFLT_HEAP_SIZE defined.
 	 */
+	mttgpr(7, 0);
 	mttgpr(6, v->ntcs);
-	mttgpr(7, physical_memsize);
 
 	/* set up VPE1 */
 	/*
@@ -313,7 +312,6 @@
 
 static void vpe_device_release(struct device *cd)
 {
-	kfree(cd);
 }
 
 static struct class vpe_class = {
@@ -497,6 +495,7 @@
 	device_del(&vpe_device);
 
 out_class:
+	put_device(&vpe_device);
 	class_unregister(&vpe_class);
 
 out_chrdev:
@@ -509,7 +508,7 @@
 {
 	struct vpe *v, *n;
 
-	device_del(&vpe_device);
+	device_unregister(&vpe_device);
 	class_unregister(&vpe_class);
 	unregister_chrdev(major, VPE_MODULE_NAME);
 
--- linux-ein-5.4.0.orig/arch/mips/kernel/vpe.c
+++ linux-ein-5.4.0/arch/mips/kernel/vpe.c
@@ -134,7 +134,7 @@
 {
 	list_del(&v->list);
 	if (v->load_addr)
-		release_progmem(v);
+		release_progmem(v->load_addr);
 	kfree(v);
 }
 
--- linux-ein-5.4.0.orig/arch/mips/kvm/mips.c
+++ linux-ein-5.4.0/arch/mips/kvm/mips.c
@@ -131,6 +131,8 @@
 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 {
 	switch (type) {
+	case KVM_VM_MIPS_AUTO:
+		break;
 #ifdef CONFIG_KVM_MIPS_VZ
 	case KVM_VM_MIPS_VZ:
 #else
--- linux-ein-5.4.0.orig/arch/mips/kvm/mmu.c
+++ linux-ein-5.4.0/arch/mips/kvm/mmu.c
@@ -512,7 +512,8 @@
 	return 1;
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, NULL);
 
--- linux-ein-5.4.0.orig/arch/mips/lantiq/clk.c
+++ linux-ein-5.4.0/arch/mips/lantiq/clk.c
@@ -50,6 +50,7 @@
 {
 	return &cpu_clk_generic[2];
 }
+EXPORT_SYMBOL_GPL(clk_get_io);
 
 struct clk *clk_get_ppe(void)
 {
@@ -158,6 +159,18 @@
 }
 EXPORT_SYMBOL(clk_deactivate);
 
+struct clk *clk_get_parent(struct clk *clk)
+{
+	return NULL;
+}
+EXPORT_SYMBOL(clk_get_parent);
+
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+	return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
 static inline u32 get_counter_resolution(void)
 {
 	u32 res;
--- linux-ein-5.4.0.orig/arch/mips/lantiq/falcon/sysctrl.c
+++ linux-ein-5.4.0/arch/mips/lantiq/falcon/sysctrl.c
@@ -167,6 +167,8 @@
 {
 	struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
 
+	if (!clk)
+		return;
 	clk->cl.dev_id = dev;
 	clk->cl.con_id = NULL;
 	clk->cl.clk = clk;
--- linux-ein-5.4.0.orig/arch/mips/lantiq/irq.c
+++ linux-ein-5.4.0/arch/mips/lantiq/irq.c
@@ -302,7 +302,7 @@
 	generic_handle_irq(irq_linear_revmap(ltq_domain, hwirq));
 
 	/* if this is a EBU irq, we need to ack it or get a deadlock */
-	if ((irq == LTQ_ICU_EBU_IRQ) && (module == 0) && LTQ_EBU_PCC_ISTAT)
+	if (irq == LTQ_ICU_EBU_IRQ && !module && LTQ_EBU_PCC_ISTAT != 0)
 		ltq_ebu_w32(ltq_ebu_r32(LTQ_EBU_PCC_ISTAT) | 0x10,
 			LTQ_EBU_PCC_ISTAT);
 }
--- linux-ein-5.4.0.orig/arch/mips/lantiq/prom.c
+++ linux-ein-5.4.0/arch/mips/lantiq/prom.c
@@ -23,12 +23,6 @@
 EXPORT_SYMBOL_GPL(ebu_lock);
 
 /*
- * This is needed by the VPE loader code, just set it to 0 and assume
- * that the firmware hardcodes this value to something useful.
- */
-unsigned long physical_memsize = 0L;
-
-/*
  * this struct is filled by the soc specific detection code and holds
  * information about the specific soc type, revision and name
  */
@@ -79,7 +73,7 @@
 
 	if (fw_passed_dtb) /* UHI interface */
 		dtb = (void *)fw_passed_dtb;
-	else if (__dtb_start != __dtb_end)
+	else if (&__dtb_start != &__dtb_end)
 		dtb = (void *)__dtb_start;
 	else
 		panic("no dtb found");
--- linux-ein-5.4.0.orig/arch/mips/lantiq/xway/dma.c
+++ linux-ein-5.4.0/arch/mips/lantiq/xway/dma.c
@@ -11,6 +11,7 @@
 #include <linux/export.h>
 #include <linux/spinlock.h>
 #include <linux/clk.h>
+#include <linux/delay.h>
 #include <linux/err.h>
 
 #include <lantiq_soc.h>
@@ -29,6 +30,7 @@
 #define LTQ_DMA_PCTRL		0x44
 #define LTQ_DMA_IRNEN		0xf4
 
+#define DMA_ID_CHNR		GENMASK(26, 20)	/* channel number */
 #define DMA_DESCPT		BIT(3)		/* descriptor complete irq */
 #define DMA_TX			BIT(8)		/* TX channel direction */
 #define DMA_CHAN_ON		BIT(0)		/* channel on / off bit */
@@ -39,7 +41,6 @@
 #define DMA_POLL		BIT(31)		/* turn on channel polling */
 #define DMA_CLK_DIV4		BIT(6)		/* polling clock divider */
 #define DMA_2W_BURST		BIT(1)		/* 2 word burst length */
-#define DMA_MAX_CHANNEL		20		/* the soc has 20 channels */
 #define DMA_ETOP_ENDIANNESS	(0xf << 8) /* endianness swap etop channels */
 #define DMA_WEIGHT	(BIT(17) | BIT(16))	/* default channel wheight */
 
@@ -205,7 +206,7 @@
 {
 	struct clk *clk;
 	struct resource *res;
-	unsigned id;
+	unsigned int id, nchannels;
 	int i;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -221,21 +222,24 @@
 	clk_enable(clk);
 	ltq_dma_w32_mask(0, DMA_RESET, LTQ_DMA_CTRL);
 
+	usleep_range(1, 10);
+
 	/* disable all interrupts */
 	ltq_dma_w32(0, LTQ_DMA_IRNEN);
 
 	/* reset/configure each channel */
-	for (i = 0; i < DMA_MAX_CHANNEL; i++) {
+	id = ltq_dma_r32(LTQ_DMA_ID);
+	nchannels = ((id & DMA_ID_CHNR) >> 20);
+	for (i = 0; i < nchannels; i++) {
 		ltq_dma_w32(i, LTQ_DMA_CS);
 		ltq_dma_w32(DMA_CHAN_RST, LTQ_DMA_CCTRL);
 		ltq_dma_w32(DMA_POLL | DMA_CLK_DIV4, LTQ_DMA_CPOLL);
 		ltq_dma_w32_mask(DMA_CHAN_ON, 0, LTQ_DMA_CCTRL);
 	}
 
-	id = ltq_dma_r32(LTQ_DMA_ID);
 	dev_info(&pdev->dev,
 		"Init done - hw rev: %X, ports: %d, channels: %d\n",
-		id & 0x1f, (id >> 16) & 0xf, id >> 20);
+		id & 0x1f, (id >> 16) & 0xf, nchannels);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/mips/lantiq/xway/gptu.c
+++ linux-ein-5.4.0/arch/mips/lantiq/xway/gptu.c
@@ -122,6 +122,8 @@
 {
 	struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
 
+	if (!clk)
+		return;
 	clk->cl.dev_id = dev_name(dev);
 	clk->cl.con_id = con;
 	clk->cl.clk = clk;
--- linux-ein-5.4.0.orig/arch/mips/lantiq/xway/sysctrl.c
+++ linux-ein-5.4.0/arch/mips/lantiq/xway/sysctrl.c
@@ -311,6 +311,8 @@
 {
 	struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
 
+	if (!clk)
+		return;
 	clk->cl.dev_id = dev;
 	clk->cl.con_id = con;
 	clk->cl.clk = clk;
@@ -334,6 +336,8 @@
 {
 	struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
 
+	if (!clk)
+		return;
 	clk->cl.dev_id = dev;
 	clk->cl.con_id = con;
 	clk->cl.clk = clk;
@@ -352,24 +356,28 @@
 	struct clk *clk_ext = kzalloc(sizeof(struct clk), GFP_KERNEL);
 
 	/* main pci clock */
-	clk->cl.dev_id = "17000000.pci";
-	clk->cl.con_id = NULL;
-	clk->cl.clk = clk;
-	clk->rate = CLOCK_33M;
-	clk->rates = valid_pci_rates;
-	clk->enable = pci_enable;
-	clk->disable = pmu_disable;
-	clk->module = 0;
-	clk->bits = PMU_PCI;
-	clkdev_add(&clk->cl);
+	if (clk) {
+		clk->cl.dev_id = "17000000.pci";
+		clk->cl.con_id = NULL;
+		clk->cl.clk = clk;
+		clk->rate = CLOCK_33M;
+		clk->rates = valid_pci_rates;
+		clk->enable = pci_enable;
+		clk->disable = pmu_disable;
+		clk->module = 0;
+		clk->bits = PMU_PCI;
+		clkdev_add(&clk->cl);
+	}
 
 	/* use internal/external bus clock */
-	clk_ext->cl.dev_id = "17000000.pci";
-	clk_ext->cl.con_id = "external";
-	clk_ext->cl.clk = clk_ext;
-	clk_ext->enable = pci_ext_enable;
-	clk_ext->disable = pci_ext_disable;
-	clkdev_add(&clk_ext->cl);
+	if (clk_ext) {
+		clk_ext->cl.dev_id = "17000000.pci";
+		clk_ext->cl.con_id = "external";
+		clk_ext->cl.clk = clk_ext;
+		clk_ext->enable = pci_ext_enable;
+		clk_ext->disable = pci_ext_disable;
+		clkdev_add(&clk_ext->cl);
+	}
 }
 
 /* xway socs can generate clocks on gpio pins */
@@ -389,9 +397,15 @@
 		char *name;
 
 		name = kzalloc(sizeof("clkout0"), GFP_KERNEL);
+		if (!name)
+			continue;
 		sprintf(name, "clkout%d", i);
 
 		clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+		if (!clk) {
+			kfree(name);
+			continue;
+		}
 		clk->cl.dev_id = "1f103000.cgu";
 		clk->cl.con_id = name;
 		clk->cl.clk = clk;
@@ -514,8 +528,8 @@
 		clkdev_add_pmu("1e10b308.eth", NULL, 0, 0, PMU_SWITCH |
 			       PMU_PPE_DP | PMU_PPE_TC);
 		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
-		clkdev_add_pmu("1e108000.gswip", "gphy0", 0, 0, PMU_GPHY);
-		clkdev_add_pmu("1e108000.gswip", "gphy1", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy0", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy1", 0, 0, PMU_GPHY);
 		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
 		clkdev_add_pmu("1e116000.mei", "afe", 1, 2, PMU_ANALOG_DSL_AFE);
 		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
@@ -538,8 +552,8 @@
 				PMU_SWITCH | PMU_PPE_DPLUS | PMU_PPE_DPLUM |
 				PMU_PPE_EMA | PMU_PPE_TC | PMU_PPE_SLL01 |
 				PMU_PPE_QSB | PMU_PPE_TOP);
-		clkdev_add_pmu("1e108000.gswip", "gphy0", 0, 0, PMU_GPHY);
-		clkdev_add_pmu("1e108000.gswip", "gphy1", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy0", 0, 0, PMU_GPHY);
+		clkdev_add_pmu("1e108000.switch", "gphy1", 0, 0, PMU_GPHY);
 		clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO);
 		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
 		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
--- linux-ein-5.4.0.orig/arch/mips/lasat/picvue_proc.c
+++ linux-ein-5.4.0/arch/mips/lasat/picvue_proc.c
@@ -39,7 +39,7 @@
 		pvc_write_string(pvc_lines[i], 0, i);
 }
 
-static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0);
+static DECLARE_TASKLET_OLD(pvc_display_tasklet, &pvc_display);
 
 static int pvc_line_proc_show(struct seq_file *m, void *v)
 {
--- linux-ein-5.4.0.orig/arch/mips/lib/dump_tlb.c
+++ linux-ein-5.4.0/arch/mips/lib/dump_tlb.c
@@ -80,7 +80,7 @@
 	unsigned int pagemask, guestctl1 = 0, c0, c1, i;
 	unsigned long asidmask = cpu_asid_mask(&current_cpu_data);
 	int asidwidth = DIV_ROUND_UP(ilog2(asidmask) + 1, 4);
-	unsigned long uninitialized_var(s_mmid);
+	unsigned long s_mmid;
 #ifdef CONFIG_32BIT
 	bool xpa = cpu_has_xpa && (read_c0_pagegrain() & PG_ELPA);
 	int pwidth = xpa ? 11 : 8;
--- linux-ein-5.4.0.orig/arch/mips/lib/mips-atomic.c
+++ linux-ein-5.4.0/arch/mips/lib/mips-atomic.c
@@ -37,7 +37,7 @@
  */
 notrace void arch_local_irq_disable(void)
 {
-	preempt_disable();
+	preempt_disable_notrace();
 
 	__asm__ __volatile__(
 	"	.set	push						\n"
@@ -53,7 +53,7 @@
 	: /* no inputs */
 	: "memory");
 
-	preempt_enable();
+	preempt_enable_notrace();
 }
 EXPORT_SYMBOL(arch_local_irq_disable);
 
@@ -61,7 +61,7 @@
 {
 	unsigned long flags;
 
-	preempt_disable();
+	preempt_disable_notrace();
 
 	__asm__ __volatile__(
 	"	.set	push						\n"
@@ -78,7 +78,7 @@
 	: /* no inputs */
 	: "memory");
 
-	preempt_enable();
+	preempt_enable_notrace();
 
 	return flags;
 }
@@ -88,7 +88,7 @@
 {
 	unsigned long __tmp1;
 
-	preempt_disable();
+	preempt_disable_notrace();
 
 	__asm__ __volatile__(
 	"	.set	push						\n"
@@ -106,7 +106,7 @@
 	: "0" (flags)
 	: "memory");
 
-	preempt_enable();
+	preempt_enable_notrace();
 }
 EXPORT_SYMBOL(arch_local_irq_restore);
 
--- linux-ein-5.4.0.orig/arch/mips/lib/uncached.c
+++ linux-ein-5.4.0/arch/mips/lib/uncached.c
@@ -37,10 +37,12 @@
  */
 unsigned long run_uncached(void *func)
 {
-	register long sp __asm__("$sp");
 	register long ret __asm__("$2");
 	long lfunc = (long)func, ufunc;
 	long usp;
+	long sp;
+
+	__asm__("move %0, $sp" : "=r" (sp));
 
 	if (sp >= (long)CKSEG0 && sp < (long)CKSEG2)
 		usp = CKSEG1ADDR(sp);
--- linux-ein-5.4.0.orig/arch/mips/loongson32/common/platform.c
+++ linux-ein-5.4.0/arch/mips/loongson32/common/platform.c
@@ -98,7 +98,7 @@
 	if (plat_dat->bus_id) {
 		__raw_writel(__raw_readl(LS1X_MUX_CTRL0) | GMAC1_USE_UART1 |
 			     GMAC1_USE_UART0, LS1X_MUX_CTRL0);
-		switch (plat_dat->interface) {
+		switch (plat_dat->phy_interface) {
 		case PHY_INTERFACE_MODE_RGMII:
 			val &= ~(GMAC1_USE_TXCLK | GMAC1_USE_PWM23);
 			break;
@@ -107,12 +107,12 @@
 			break;
 		default:
 			pr_err("unsupported mii mode %d\n",
-			       plat_dat->interface);
+			       plat_dat->phy_interface);
 			return -ENOTSUPP;
 		}
 		val &= ~GMAC1_SHUT;
 	} else {
-		switch (plat_dat->interface) {
+		switch (plat_dat->phy_interface) {
 		case PHY_INTERFACE_MODE_RGMII:
 			val &= ~(GMAC0_USE_TXCLK | GMAC0_USE_PWM01);
 			break;
@@ -121,7 +121,7 @@
 			break;
 		default:
 			pr_err("unsupported mii mode %d\n",
-			       plat_dat->interface);
+			       plat_dat->phy_interface);
 			return -ENOTSUPP;
 		}
 		val &= ~GMAC0_SHUT;
@@ -131,7 +131,7 @@
 	plat_dat = dev_get_platdata(&pdev->dev);
 
 	val &= ~PHY_INTF_SELI;
-	if (plat_dat->interface == PHY_INTERFACE_MODE_RMII)
+	if (plat_dat->phy_interface == PHY_INTERFACE_MODE_RMII)
 		val |= 0x4 << PHY_INTF_SELI_SHIFT;
 	__raw_writel(val, LS1X_MUX_CTRL1);
 
@@ -146,9 +146,9 @@
 	.bus_id			= 0,
 	.phy_addr		= -1,
 #if defined(CONFIG_LOONGSON1_LS1B)
-	.interface		= PHY_INTERFACE_MODE_MII,
+	.phy_interface		= PHY_INTERFACE_MODE_MII,
 #elif defined(CONFIG_LOONGSON1_LS1C)
-	.interface		= PHY_INTERFACE_MODE_RMII,
+	.phy_interface		= PHY_INTERFACE_MODE_RMII,
 #endif
 	.mdio_bus_data		= &ls1x_mdio_bus_data,
 	.dma_cfg		= &ls1x_eth_dma_cfg,
@@ -186,7 +186,7 @@
 static struct plat_stmmacenet_data ls1x_eth1_pdata = {
 	.bus_id			= 1,
 	.phy_addr		= -1,
-	.interface		= PHY_INTERFACE_MODE_MII,
+	.phy_interface		= PHY_INTERFACE_MODE_MII,
 	.mdio_bus_data		= &ls1x_mdio_bus_data,
 	.dma_cfg		= &ls1x_eth_dma_cfg,
 	.has_gmac		= 1,
--- linux-ein-5.4.0.orig/arch/mips/loongson32/ls1c/board.c
+++ linux-ein-5.4.0/arch/mips/loongson32/ls1c/board.c
@@ -15,7 +15,6 @@
 static int __init ls1c_platform_init(void)
 {
 	ls1x_serial_set_uartclk(&ls1x_uart_pdev);
-	ls1x_rtc_set_extclk(&ls1x_rtc_pdev);
 
 	return platform_add_devices(ls1c_platform_devices,
 				   ARRAY_SIZE(ls1c_platform_devices));
--- linux-ein-5.4.0.orig/arch/mips/loongson64/loongson-3/numa.c
+++ linux-ein-5.4.0/arch/mips/loongson64/loongson-3/numa.c
@@ -200,6 +200,9 @@
 		if (node_end_pfn(0) >= (0xffffffff >> PAGE_SHIFT))
 			memblock_reserve((node_addrspace_offset | 0xfe000000),
 					 32 << 20);
+
+		/* Reserve pfn range 0~node[0]->node_start_pfn */
+		memblock_reserve(0, PAGE_SIZE * start_pfn);
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/mips/loongson64/loongson-3/platform.c
+++ linux-ein-5.4.0/arch/mips/loongson64/loongson-3/platform.c
@@ -27,6 +27,9 @@
 			continue;
 
 		pdev = kzalloc(sizeof(struct platform_device), GFP_KERNEL);
+		if (!pdev)
+			return -ENOMEM;
+
 		pdev->name = loongson_sysconf.sensors[i].name;
 		pdev->id = loongson_sysconf.sensors[i].id;
 		pdev->dev.platform_data = &loongson_sysconf.sensors[i];
--- linux-ein-5.4.0.orig/arch/mips/mm/c-r4k.c
+++ linux-ein-5.4.0/arch/mips/mm/c-r4k.c
@@ -1560,7 +1560,7 @@
 	return 1;
 }
 
-static void __init loongson2_sc_init(void)
+static void loongson2_sc_init(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 
@@ -1576,7 +1576,7 @@
 	c->options |= MIPS_CPU_INCLUSIVE_CACHES;
 }
 
-static void __init loongson3_sc_init(void)
+static void loongson3_sc_init(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	unsigned int config2, lsize;
@@ -1676,7 +1676,11 @@
 				printk("MIPS secondary cache %ldkB, %s, linesize %d bytes.\n",
 				       scache_size >> 10,
 				       way_string[c->scache.ways], c->scache.linesz);
+
+				if (current_cpu_type() == CPU_BMIPS5000)
+					c->options |= MIPS_CPU_INCLUSIVE_CACHES;
 			}
+
 #else
 			if (!(c->scache.flags & MIPS_CACHE_NOT_PRESENT))
 				panic("Dunno how to handle MIPS32 / MIPS64 second level cache");
--- linux-ein-5.4.0.orig/arch/mips/mm/dma-noncoherent.c
+++ linux-ein-5.4.0/arch/mips/mm/dma-noncoherent.c
@@ -27,7 +27,7 @@
  * R10000 and R12000 are used in such systems, the SGI IP28 Indigo² rsp.
  * SGI IP32 aka O2.
  */
-static inline bool cpu_needs_post_dma_flush(struct device *dev)
+static inline bool cpu_needs_post_dma_flush(void)
 {
 	switch (boot_cpu_type()) {
 	case CPU_R10000:
@@ -118,17 +118,17 @@
 	} while (left);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	dma_sync_phys(paddr, size, dir);
 }
 
 #ifdef CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
-	if (cpu_needs_post_dma_flush(dev))
+	if (cpu_needs_post_dma_flush())
 		dma_sync_phys(paddr, size, dir);
 }
 #endif
--- linux-ein-5.4.0.orig/arch/mips/mm/init.c
+++ linux-ein-5.4.0/arch/mips/mm/init.c
@@ -84,7 +84,7 @@
 static void *__kmap_pgprot(struct page *page, unsigned long addr, pgprot_t prot)
 {
 	enum fixed_addresses idx;
-	unsigned int uninitialized_var(old_mmid);
+	unsigned int old_mmid;
 	unsigned long vaddr, flags, entrylo;
 	unsigned long old_ctx;
 	pte_t pte;
--- linux-ein-5.4.0.orig/arch/mips/mm/sc-mips.c
+++ linux-ein-5.4.0/arch/mips/mm/sc-mips.c
@@ -147,7 +147,7 @@
 	return 1;
 }
 
-static int __init mips_sc_probe_cm3(void)
+static int mips_sc_probe_cm3(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	unsigned long cfg = read_gcr_l2_config();
@@ -181,7 +181,7 @@
 	return 0;
 }
 
-static inline int __init mips_sc_probe(void)
+static inline int mips_sc_probe(void)
 {
 	struct cpuinfo_mips *c = &current_cpu_data;
 	unsigned int config1, config2;
--- linux-ein-5.4.0.orig/arch/mips/mm/tlb-r4k.c
+++ linux-ein-5.4.0/arch/mips/mm/tlb-r4k.c
@@ -120,7 +120,7 @@
 		if (size <= (current_cpu_data.tlbsizeftlbsets ?
 			     current_cpu_data.tlbsize / 8 :
 			     current_cpu_data.tlbsize / 2)) {
-			unsigned long old_entryhi, uninitialized_var(old_mmid);
+			unsigned long old_entryhi, old_mmid;
 			int newpid = cpu_asid(cpu, mm);
 
 			old_entryhi = read_c0_entryhi();
@@ -214,7 +214,7 @@
 	int cpu = smp_processor_id();
 
 	if (cpu_context(cpu, vma->vm_mm) != 0) {
-		unsigned long uninitialized_var(old_mmid);
+		unsigned long old_mmid;
 		unsigned long flags, old_entryhi;
 		int idx;
 
@@ -381,7 +381,7 @@
 #ifdef CONFIG_XPA
 	panic("Broken for XPA kernels");
 #else
-	unsigned int uninitialized_var(old_mmid);
+	unsigned int old_mmid;
 	unsigned long flags;
 	unsigned long wired;
 	unsigned long old_pagemask;
@@ -437,6 +437,7 @@
 	}
 	return mask == PM_HUGE_MASK;
 }
+EXPORT_SYMBOL(has_transparent_hugepage);
 
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE  */
 
--- linux-ein-5.4.0.orig/arch/mips/mm/tlbex.c
+++ linux-ein-5.4.0/arch/mips/mm/tlbex.c
@@ -629,7 +629,7 @@
 		return;
 	}
 
-	if (cpu_has_rixi && !!_PAGE_NO_EXEC) {
+	if (cpu_has_rixi && _PAGE_NO_EXEC != 0) {
 		if (fill_includes_sw_bits) {
 			UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL));
 		} else {
@@ -1480,6 +1480,7 @@
 
 static void setup_pw(void)
 {
+	unsigned int pwctl;
 	unsigned long pgd_i, pgd_w;
 #ifndef __PAGETABLE_PMD_FOLDED
 	unsigned long pmd_i, pmd_w;
@@ -1506,6 +1507,7 @@
 
 	pte_i = ilog2(_PAGE_GLOBAL);
 	pte_w = 0;
+	pwctl = 1 << 30; /* Set PWDirExt */
 
 #ifndef __PAGETABLE_PMD_FOLDED
 	write_c0_pwfield(pgd_i << 24 | pmd_i << 12 | pt_i << 6 | pte_i);
@@ -1516,8 +1518,9 @@
 #endif
 
 #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
-	write_c0_pwctl(1 << 6 | psn);
+	pwctl |= (1 << 6 | psn);
 #endif
+	write_c0_pwctl(pwctl);
 	write_c0_kpgd((long)swapper_pg_dir);
 	kscratch_used_mask |= (1 << 7); /* KScratch6 is used for KPGD */
 }
@@ -2565,7 +2568,7 @@
 	unsigned long entry;
 	unsigned pabits, fillbits;
 
-	if (!cpu_has_rixi || !_PAGE_NO_EXEC) {
+	if (!cpu_has_rixi || _PAGE_NO_EXEC == 0) {
 		/*
 		 * We'll only be making use of the fact that we can rotate bits
 		 * into the fill if the CPU supports RIXI, so don't bother
--- linux-ein-5.4.0.orig/arch/mips/mti-malta/malta-dtshim.c
+++ linux-ein-5.4.0/arch/mips/mti-malta/malta-dtshim.c
@@ -22,7 +22,7 @@
 #define  ROCIT_CONFIG_GEN1_MEMMAP_SHIFT	8
 #define  ROCIT_CONFIG_GEN1_MEMMAP_MASK	(0xf << 8)
 
-static unsigned char fdt_buf[16 << 10] __initdata;
+static unsigned char fdt_buf[16 << 10] __initdata __aligned(8);
 
 /* determined physical memory size, not overridden by command line args	 */
 extern unsigned long physical_memsize;
--- linux-ein-5.4.0.orig/arch/mips/mti-malta/malta-platform.c
+++ linux-ein-5.4.0/arch/mips/mti-malta/malta-platform.c
@@ -47,7 +47,8 @@
 		.mapbase	= 0x1f000900,	/* The CBUS UART */
 		.irq		= MIPS_CPU_IRQ_BASE + MIPSCPU_INT_MB2,
 		.uartclk	= 3686400,	/* Twice the usual clk! */
-		.iotype		= UPIO_MEM32,
+		.iotype		= IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) ?
+				  UPIO_MEM32BE : UPIO_MEM32,
 		.flags		= CBUS_UART_FLAGS,
 		.regshift	= 3,
 	},
--- linux-ein-5.4.0.orig/arch/mips/net/Makefile
+++ linux-ein-5.4.0/arch/mips/net/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 # MIPS networking code
 
+obj-$(CONFIG_MIPS_CBPF_JIT) += bpf_jit.o bpf_jit_asm.o
 obj-$(CONFIG_MIPS_EBPF_JIT) += ebpf_jit.o
--- linux-ein-5.4.0.orig/arch/mips/net/bpf_jit.c
+++ linux-ein-5.4.0/arch/mips/net/bpf_jit.c
@@ -0,0 +1,1299 @@
+/*
+ * Just-In-Time compiler for BPF filters on MIPS
+ *
+ * Copyright (c) 2014 Imagination Technologies Ltd.
+ * Author: Markos Chandras <markos.chandras@imgtec.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; version 2 of the License.
+ */
+
+#include <linux/bitops.h>
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/filter.h>
+#include <linux/if_vlan.h>
+#include <linux/moduleloader.h>
+#include <linux/netdevice.h>
+#include <linux/string.h>
+#include <linux/slab.h>
+#include <linux/types.h>
+#include <asm/asm.h>
+#include <asm/bitops.h>
+#include <asm/cacheflush.h>
+#include <asm/cpu-features.h>
+#include <asm/uasm.h>
+
+#include "bpf_jit.h"
+
+/* ABI
+ * r_skb_hl	SKB header length
+ * r_data	SKB data pointer
+ * r_off	Offset
+ * r_A		BPF register A
+ * r_X		BPF register X
+ * r_skb	*skb
+ * r_M		*scratch memory
+ * r_skb_len	SKB length
+ *
+ * On entry (*bpf_func)(*skb, *filter)
+ * a0 = MIPS_R_A0 = skb;
+ * a1 = MIPS_R_A1 = filter;
+ *
+ * Stack
+ * ...
+ * M[15]
+ * M[14]
+ * M[13]
+ * ...
+ * M[0] <-- r_M
+ * saved reg k-1
+ * saved reg k-2
+ * ...
+ * saved reg 0 <-- r_sp
+ * <no argument area>
+ *
+ *                     Packet layout
+ *
+ * <--------------------- len ------------------------>
+ * <--skb-len(r_skb_hl)-->< ----- skb->data_len ------>
+ * ----------------------------------------------------
+ * |                  skb->data                       |
+ * ----------------------------------------------------
+ */
+
+#define ptr typeof(unsigned long)
+
+#define SCRATCH_OFF(k)		(4 * (k))
+
+/* JIT flags */
+#define SEEN_CALL		(1 << BPF_MEMWORDS)
+#define SEEN_SREG_SFT		(BPF_MEMWORDS + 1)
+#define SEEN_SREG_BASE		(1 << SEEN_SREG_SFT)
+#define SEEN_SREG(x)		(SEEN_SREG_BASE << (x))
+#define SEEN_OFF		SEEN_SREG(2)
+#define SEEN_A			SEEN_SREG(3)
+#define SEEN_X			SEEN_SREG(4)
+#define SEEN_SKB		SEEN_SREG(5)
+#define SEEN_MEM		SEEN_SREG(6)
+/* SEEN_SK_DATA also implies skb_hl an skb_len */
+#define SEEN_SKB_DATA		(SEEN_SREG(7) | SEEN_SREG(1) | SEEN_SREG(0))
+
+/* Arguments used by JIT */
+#define ARGS_USED_BY_JIT	2 /* only applicable to 64-bit */
+
+#define SBIT(x)			(1 << (x)) /* Signed version of BIT() */
+
+/**
+ * struct jit_ctx - JIT context
+ * @skf:		The sk_filter
+ * @prologue_bytes:	Number of bytes for prologue
+ * @idx:		Instruction index
+ * @flags:		JIT flags
+ * @offsets:		Instruction offsets
+ * @target:		Memory location for the compiled filter
+ */
+struct jit_ctx {
+	const struct bpf_prog *skf;
+	unsigned int prologue_bytes;
+	u32 idx;
+	u32 flags;
+	u32 *offsets;
+	u32 *target;
+};
+
+
+static inline int optimize_div(u32 *k)
+{
+	/* power of 2 divides can be implemented with right shift */
+	if (!(*k & (*k-1))) {
+		*k = ilog2(*k);
+		return 1;
+	}
+
+	return 0;
+}
+
+static inline void emit_jit_reg_move(ptr dst, ptr src, struct jit_ctx *ctx);
+
+/* Simply emit the instruction if the JIT memory space has been allocated */
+#define emit_instr(ctx, func, ...)			\
+do {							\
+	if ((ctx)->target != NULL) {			\
+		u32 *p = &(ctx)->target[ctx->idx];	\
+		uasm_i_##func(&p, ##__VA_ARGS__);	\
+	}						\
+	(ctx)->idx++;					\
+} while (0)
+
+/*
+ * Similar to emit_instr but it must be used when we need to emit
+ * 32-bit or 64-bit instructions
+ */
+#define emit_long_instr(ctx, func, ...)			\
+do {							\
+	if ((ctx)->target != NULL) {			\
+		u32 *p = &(ctx)->target[ctx->idx];	\
+		UASM_i_##func(&p, ##__VA_ARGS__);	\
+	}						\
+	(ctx)->idx++;					\
+} while (0)
+
+/* Determine if immediate is within the 16-bit signed range */
+static inline bool is_range16(s32 imm)
+{
+	return !(imm >= SBIT(15) || imm < -SBIT(15));
+}
+
+static inline void emit_addu(unsigned int dst, unsigned int src1,
+			     unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, addu, dst, src1, src2);
+}
+
+static inline void emit_nop(struct jit_ctx *ctx)
+{
+	emit_instr(ctx, nop);
+}
+
+/* Load a u32 immediate to a register */
+static inline void emit_load_imm(unsigned int dst, u32 imm, struct jit_ctx *ctx)
+{
+	if (ctx->target != NULL) {
+		/* addiu can only handle s16 */
+		if (!is_range16(imm)) {
+			u32 *p = &ctx->target[ctx->idx];
+			uasm_i_lui(&p, r_tmp_imm, (s32)imm >> 16);
+			p = &ctx->target[ctx->idx + 1];
+			uasm_i_ori(&p, dst, r_tmp_imm, imm & 0xffff);
+		} else {
+			u32 *p = &ctx->target[ctx->idx];
+			uasm_i_addiu(&p, dst, r_zero, imm);
+		}
+	}
+	ctx->idx++;
+
+	if (!is_range16(imm))
+		ctx->idx++;
+}
+
+static inline void emit_or(unsigned int dst, unsigned int src1,
+			   unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, or, dst, src1, src2);
+}
+
+static inline void emit_ori(unsigned int dst, unsigned src, u32 imm,
+			    struct jit_ctx *ctx)
+{
+	if (imm >= BIT(16)) {
+		emit_load_imm(r_tmp, imm, ctx);
+		emit_or(dst, src, r_tmp, ctx);
+	} else {
+		emit_instr(ctx, ori, dst, src, imm);
+	}
+}
+
+static inline void emit_daddiu(unsigned int dst, unsigned int src,
+			       int imm, struct jit_ctx *ctx)
+{
+	/*
+	 * Only used for stack, so the imm is relatively small
+	 * and it fits in 15-bits
+	 */
+	emit_instr(ctx, daddiu, dst, src, imm);
+}
+
+static inline void emit_addiu(unsigned int dst, unsigned int src,
+			      u32 imm, struct jit_ctx *ctx)
+{
+	if (!is_range16(imm)) {
+		emit_load_imm(r_tmp, imm, ctx);
+		emit_addu(dst, r_tmp, src, ctx);
+	} else {
+		emit_instr(ctx, addiu, dst, src, imm);
+	}
+}
+
+static inline void emit_and(unsigned int dst, unsigned int src1,
+			    unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, and, dst, src1, src2);
+}
+
+static inline void emit_andi(unsigned int dst, unsigned int src,
+			     u32 imm, struct jit_ctx *ctx)
+{
+	/* If imm does not fit in u16 then load it to register */
+	if (imm >= BIT(16)) {
+		emit_load_imm(r_tmp, imm, ctx);
+		emit_and(dst, src, r_tmp, ctx);
+	} else {
+		emit_instr(ctx, andi, dst, src, imm);
+	}
+}
+
+static inline void emit_xor(unsigned int dst, unsigned int src1,
+			    unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, xor, dst, src1, src2);
+}
+
+static inline void emit_xori(ptr dst, ptr src, u32 imm, struct jit_ctx *ctx)
+{
+	/* If imm does not fit in u16 then load it to register */
+	if (imm >= BIT(16)) {
+		emit_load_imm(r_tmp, imm, ctx);
+		emit_xor(dst, src, r_tmp, ctx);
+	} else {
+		emit_instr(ctx, xori, dst, src, imm);
+	}
+}
+
+static inline void emit_stack_offset(int offset, struct jit_ctx *ctx)
+{
+	emit_long_instr(ctx, ADDIU, r_sp, r_sp, offset);
+}
+
+static inline void emit_subu(unsigned int dst, unsigned int src1,
+			     unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, subu, dst, src1, src2);
+}
+
+static inline void emit_neg(unsigned int reg, struct jit_ctx *ctx)
+{
+	emit_subu(reg, r_zero, reg, ctx);
+}
+
+static inline void emit_sllv(unsigned int dst, unsigned int src,
+			     unsigned int sa, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, sllv, dst, src, sa);
+}
+
+static inline void emit_sll(unsigned int dst, unsigned int src,
+			    unsigned int sa, struct jit_ctx *ctx)
+{
+	/* sa is 5-bits long */
+	if (sa >= BIT(5))
+		/* Shifting >= 32 results in zero */
+		emit_jit_reg_move(dst, r_zero, ctx);
+	else
+		emit_instr(ctx, sll, dst, src, sa);
+}
+
+static inline void emit_srlv(unsigned int dst, unsigned int src,
+			     unsigned int sa, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, srlv, dst, src, sa);
+}
+
+static inline void emit_srl(unsigned int dst, unsigned int src,
+			    unsigned int sa, struct jit_ctx *ctx)
+{
+	/* sa is 5-bits long */
+	if (sa >= BIT(5))
+		/* Shifting >= 32 results in zero */
+		emit_jit_reg_move(dst, r_zero, ctx);
+	else
+		emit_instr(ctx, srl, dst, src, sa);
+}
+
+static inline void emit_slt(unsigned int dst, unsigned int src1,
+			    unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, slt, dst, src1, src2);
+}
+
+static inline void emit_sltu(unsigned int dst, unsigned int src1,
+			     unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, sltu, dst, src1, src2);
+}
+
+static inline void emit_sltiu(unsigned dst, unsigned int src,
+			      unsigned int imm, struct jit_ctx *ctx)
+{
+	/* 16 bit immediate */
+	if (!is_range16((s32)imm)) {
+		emit_load_imm(r_tmp, imm, ctx);
+		emit_sltu(dst, src, r_tmp, ctx);
+	} else {
+		emit_instr(ctx, sltiu, dst, src, imm);
+	}
+
+}
+
+/* Store register on the stack */
+static inline void emit_store_stack_reg(ptr reg, ptr base,
+					unsigned int offset,
+					struct jit_ctx *ctx)
+{
+	emit_long_instr(ctx, SW, reg, offset, base);
+}
+
+static inline void emit_store(ptr reg, ptr base, unsigned int offset,
+			      struct jit_ctx *ctx)
+{
+	emit_instr(ctx, sw, reg, offset, base);
+}
+
+static inline void emit_load_stack_reg(ptr reg, ptr base,
+				       unsigned int offset,
+				       struct jit_ctx *ctx)
+{
+	emit_long_instr(ctx, LW, reg, offset, base);
+}
+
+static inline void emit_load(unsigned int reg, unsigned int base,
+			     unsigned int offset, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, lw, reg, offset, base);
+}
+
+static inline void emit_load_byte(unsigned int reg, unsigned int base,
+				  unsigned int offset, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, lb, reg, offset, base);
+}
+
+static inline void emit_half_load(unsigned int reg, unsigned int base,
+				  unsigned int offset, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, lh, reg, offset, base);
+}
+
+static inline void emit_half_load_unsigned(unsigned int reg, unsigned int base,
+					   unsigned int offset, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, lhu, reg, offset, base);
+}
+
+static inline void emit_mul(unsigned int dst, unsigned int src1,
+			    unsigned int src2, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, mul, dst, src1, src2);
+}
+
+static inline void emit_div(unsigned int dst, unsigned int src,
+			    struct jit_ctx *ctx)
+{
+	if (ctx->target != NULL) {
+		u32 *p = &ctx->target[ctx->idx];
+		uasm_i_divu(&p, dst, src);
+		p = &ctx->target[ctx->idx + 1];
+		uasm_i_mflo(&p, dst);
+	}
+	ctx->idx += 2; /* 2 insts */
+}
+
+static inline void emit_mod(unsigned int dst, unsigned int src,
+			    struct jit_ctx *ctx)
+{
+	if (ctx->target != NULL) {
+		u32 *p = &ctx->target[ctx->idx];
+		uasm_i_divu(&p, dst, src);
+		p = &ctx->target[ctx->idx + 1];
+		uasm_i_mfhi(&p, dst);
+	}
+	ctx->idx += 2; /* 2 insts */
+}
+
+static inline void emit_dsll(unsigned int dst, unsigned int src,
+			     unsigned int sa, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, dsll, dst, src, sa);
+}
+
+static inline void emit_dsrl32(unsigned int dst, unsigned int src,
+			       unsigned int sa, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, dsrl32, dst, src, sa);
+}
+
+static inline void emit_wsbh(unsigned int dst, unsigned int src,
+			     struct jit_ctx *ctx)
+{
+	emit_instr(ctx, wsbh, dst, src);
+}
+
+/* load pointer to register */
+static inline void emit_load_ptr(unsigned int dst, unsigned int src,
+				     int imm, struct jit_ctx *ctx)
+{
+	/* src contains the base addr of the 32/64-pointer */
+	emit_long_instr(ctx, LW, dst, imm, src);
+}
+
+/* load a function pointer to register */
+static inline void emit_load_func(unsigned int reg, ptr imm,
+				  struct jit_ctx *ctx)
+{
+	if (IS_ENABLED(CONFIG_64BIT)) {
+		/* At this point imm is always 64-bit */
+		emit_load_imm(r_tmp, (u64)imm >> 32, ctx);
+		emit_dsll(r_tmp_imm, r_tmp, 16, ctx); /* left shift by 16 */
+		emit_ori(r_tmp, r_tmp_imm, (imm >> 16) & 0xffff, ctx);
+		emit_dsll(r_tmp_imm, r_tmp, 16, ctx); /* left shift by 16 */
+		emit_ori(reg, r_tmp_imm, imm & 0xffff, ctx);
+	} else {
+		emit_load_imm(reg, imm, ctx);
+	}
+}
+
+/* Move to real MIPS register */
+static inline void emit_reg_move(ptr dst, ptr src, struct jit_ctx *ctx)
+{
+	emit_long_instr(ctx, ADDU, dst, src, r_zero);
+}
+
+/* Move to JIT (32-bit) register */
+static inline void emit_jit_reg_move(ptr dst, ptr src, struct jit_ctx *ctx)
+{
+	emit_addu(dst, src, r_zero, ctx);
+}
+
+/* Compute the immediate value for PC-relative branches. */
+static inline u32 b_imm(unsigned int tgt, struct jit_ctx *ctx)
+{
+	if (ctx->target == NULL)
+		return 0;
+
+	/*
+	 * We want a pc-relative branch. We only do forward branches
+	 * so tgt is always after pc. tgt is the instruction offset
+	 * we want to jump to.
+
+	 * Branch on MIPS:
+	 * I: target_offset <- sign_extend(offset)
+	 * I+1: PC += target_offset (delay slot)
+	 *
+	 * ctx->idx currently points to the branch instruction
+	 * but the offset is added to the delay slot so we need
+	 * to subtract 4.
+	 */
+	return ctx->offsets[tgt] -
+		(ctx->idx * 4 - ctx->prologue_bytes) - 4;
+}
+
+static inline void emit_bcond(int cond, unsigned int reg1, unsigned int reg2,
+			     unsigned int imm, struct jit_ctx *ctx)
+{
+	if (ctx->target != NULL) {
+		u32 *p = &ctx->target[ctx->idx];
+
+		switch (cond) {
+		case MIPS_COND_EQ:
+			uasm_i_beq(&p, reg1, reg2, imm);
+			break;
+		case MIPS_COND_NE:
+			uasm_i_bne(&p, reg1, reg2, imm);
+			break;
+		case MIPS_COND_ALL:
+			uasm_i_b(&p, imm);
+			break;
+		default:
+			pr_warn("%s: Unhandled branch conditional: %d\n",
+				__func__, cond);
+		}
+	}
+	ctx->idx++;
+}
+
+static inline void emit_b(unsigned int imm, struct jit_ctx *ctx)
+{
+	emit_bcond(MIPS_COND_ALL, r_zero, r_zero, imm, ctx);
+}
+
+static inline void emit_jalr(unsigned int link, unsigned int reg,
+			     struct jit_ctx *ctx)
+{
+	emit_instr(ctx, jalr, link, reg);
+}
+
+static inline void emit_jr(unsigned int reg, struct jit_ctx *ctx)
+{
+	emit_instr(ctx, jr, reg);
+}
+
+static inline u16 align_sp(unsigned int num)
+{
+	/* Double word alignment for 32-bit, quadword for 64-bit */
+	unsigned int align = IS_ENABLED(CONFIG_64BIT) ? 16 : 8;
+	num = (num + (align - 1)) & -align;
+	return num;
+}
+
+static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset)
+{
+	int i = 0, real_off = 0;
+	u32 sflags, tmp_flags;
+
+	/* Adjust the stack pointer */
+	if (offset)
+		emit_stack_offset(-align_sp(offset), ctx);
+
+	tmp_flags = sflags = ctx->flags >> SEEN_SREG_SFT;
+	/* sflags is essentially a bitmap */
+	while (tmp_flags) {
+		if ((sflags >> i) & 0x1) {
+			emit_store_stack_reg(MIPS_R_S0 + i, r_sp, real_off,
+					     ctx);
+			real_off += SZREG;
+		}
+		i++;
+		tmp_flags >>= 1;
+	}
+
+	/* save return address */
+	if (ctx->flags & SEEN_CALL) {
+		emit_store_stack_reg(r_ra, r_sp, real_off, ctx);
+		real_off += SZREG;
+	}
+
+	/* Setup r_M leaving the alignment gap if necessary */
+	if (ctx->flags & SEEN_MEM) {
+		if (real_off % (SZREG * 2))
+			real_off += SZREG;
+		emit_long_instr(ctx, ADDIU, r_M, r_sp, real_off);
+	}
+}
+
+static void restore_bpf_jit_regs(struct jit_ctx *ctx,
+				 unsigned int offset)
+{
+	int i, real_off = 0;
+	u32 sflags, tmp_flags;
+
+	tmp_flags = sflags = ctx->flags >> SEEN_SREG_SFT;
+	/* sflags is a bitmap */
+	i = 0;
+	while (tmp_flags) {
+		if ((sflags >> i) & 0x1) {
+			emit_load_stack_reg(MIPS_R_S0 + i, r_sp, real_off,
+					    ctx);
+			real_off += SZREG;
+		}
+		i++;
+		tmp_flags >>= 1;
+	}
+
+	/* restore return address */
+	if (ctx->flags & SEEN_CALL)
+		emit_load_stack_reg(r_ra, r_sp, real_off, ctx);
+
+	/* Restore the sp and discard the scrach memory */
+	if (offset)
+		emit_stack_offset(align_sp(offset), ctx);
+}
+
+static unsigned int get_stack_depth(struct jit_ctx *ctx)
+{
+	int sp_off = 0;
+
+
+	/* How may s* regs do we need to preserved? */
+	sp_off += hweight32(ctx->flags >> SEEN_SREG_SFT) * SZREG;
+
+	if (ctx->flags & SEEN_MEM)
+		sp_off += 4 * BPF_MEMWORDS; /* BPF_MEMWORDS are 32-bit */
+
+	if (ctx->flags & SEEN_CALL)
+		sp_off += SZREG; /* Space for our ra register */
+
+	return sp_off;
+}
+
+static void build_prologue(struct jit_ctx *ctx)
+{
+	int sp_off;
+
+	/* Calculate the total offset for the stack pointer */
+	sp_off = get_stack_depth(ctx);
+	save_bpf_jit_regs(ctx, sp_off);
+
+	if (ctx->flags & SEEN_SKB)
+		emit_reg_move(r_skb, MIPS_R_A0, ctx);
+
+	if (ctx->flags & SEEN_SKB_DATA) {
+		/* Load packet length */
+		emit_load(r_skb_len, r_skb, offsetof(struct sk_buff, len),
+			  ctx);
+		emit_load(r_tmp, r_skb, offsetof(struct sk_buff, data_len),
+			  ctx);
+		/* Load the data pointer */
+		emit_load_ptr(r_skb_data, r_skb,
+			      offsetof(struct sk_buff, data), ctx);
+		/* Load the header length */
+		emit_subu(r_skb_hl, r_skb_len, r_tmp, ctx);
+	}
+
+	if (ctx->flags & SEEN_X)
+		emit_jit_reg_move(r_X, r_zero, ctx);
+
+	/*
+	 * Do not leak kernel data to userspace, we only need to clear
+	 * r_A if it is ever used.  In fact if it is never used, we
+	 * will not save/restore it, so clearing it in this case would
+	 * corrupt the state of the caller.
+	 */
+	if (bpf_needs_clear_a(&ctx->skf->insns[0]) &&
+	    (ctx->flags & SEEN_A))
+		emit_jit_reg_move(r_A, r_zero, ctx);
+}
+
+static void build_epilogue(struct jit_ctx *ctx)
+{
+	unsigned int sp_off;
+
+	/* Calculate the total offset for the stack pointer */
+
+	sp_off = get_stack_depth(ctx);
+	restore_bpf_jit_regs(ctx, sp_off);
+
+	/* Return */
+	emit_jr(r_ra, ctx);
+	emit_nop(ctx);
+}
+
+#define CHOOSE_LOAD_FUNC(K, func) \
+	((int)K < 0 ? ((int)K >= SKF_LL_OFF ? func##_negative : func) : \
+	 func##_positive)
+
+static bool is_bad_offset(int b_off)
+{
+	return b_off > 0x1ffff || b_off < -0x20000;
+}
+
+static int build_body(struct jit_ctx *ctx)
+{
+	const struct bpf_prog *prog = ctx->skf;
+	const struct sock_filter *inst;
+	unsigned int i, off, condt;
+	u32 k, b_off __maybe_unused;
+	u8 (*sk_load_func)(unsigned long *skb, int offset);
+
+	for (i = 0; i < prog->len; i++) {
+		u16 code;
+
+		inst = &(prog->insns[i]);
+		pr_debug("%s: code->0x%02x, jt->0x%x, jf->0x%x, k->0x%x\n",
+			 __func__, inst->code, inst->jt, inst->jf, inst->k);
+		k = inst->k;
+		code = bpf_anc_helper(inst);
+
+		if (ctx->target == NULL)
+			ctx->offsets[i] = ctx->idx * 4;
+
+		switch (code) {
+		case BPF_LD | BPF_IMM:
+			/* A <- k ==> li r_A, k */
+			ctx->flags |= SEEN_A;
+			emit_load_imm(r_A, k, ctx);
+			break;
+		case BPF_LD | BPF_W | BPF_LEN:
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff, len) != 4);
+			/* A <- len ==> lw r_A, offset(skb) */
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			off = offsetof(struct sk_buff, len);
+			emit_load(r_A, r_skb, off, ctx);
+			break;
+		case BPF_LD | BPF_MEM:
+			/* A <- M[k] ==> lw r_A, offset(M) */
+			ctx->flags |= SEEN_MEM | SEEN_A;
+			emit_load(r_A, r_M, SCRATCH_OFF(k), ctx);
+			break;
+		case BPF_LD | BPF_W | BPF_ABS:
+			/* A <- P[k:4] */
+			sk_load_func = CHOOSE_LOAD_FUNC(k, sk_load_word);
+			goto load;
+		case BPF_LD | BPF_H | BPF_ABS:
+			/* A <- P[k:2] */
+			sk_load_func = CHOOSE_LOAD_FUNC(k, sk_load_half);
+			goto load;
+		case BPF_LD | BPF_B | BPF_ABS:
+			/* A <- P[k:1] */
+			sk_load_func = CHOOSE_LOAD_FUNC(k, sk_load_byte);
+load:
+			emit_load_imm(r_off, k, ctx);
+load_common:
+			ctx->flags |= SEEN_CALL | SEEN_OFF |
+				SEEN_SKB | SEEN_A | SEEN_SKB_DATA;
+
+			emit_load_func(r_s0, (ptr)sk_load_func, ctx);
+			emit_reg_move(MIPS_R_A0, r_skb, ctx);
+			emit_jalr(MIPS_R_RA, r_s0, ctx);
+			/* Load second argument to delay slot */
+			emit_reg_move(MIPS_R_A1, r_off, ctx);
+			/* Check the error value */
+			emit_bcond(MIPS_COND_EQ, r_ret, 0, b_imm(i + 1, ctx),
+				   ctx);
+			/* Load return register on DS for failures */
+			emit_reg_move(r_ret, r_zero, ctx);
+			/* Return with error */
+			b_off = b_imm(prog->len, ctx);
+			if (is_bad_offset(b_off))
+				return -E2BIG;
+			emit_b(b_off, ctx);
+			emit_nop(ctx);
+			break;
+		case BPF_LD | BPF_W | BPF_IND:
+			/* A <- P[X + k:4] */
+			sk_load_func = sk_load_word;
+			goto load_ind;
+		case BPF_LD | BPF_H | BPF_IND:
+			/* A <- P[X + k:2] */
+			sk_load_func = sk_load_half;
+			goto load_ind;
+		case BPF_LD | BPF_B | BPF_IND:
+			/* A <- P[X + k:1] */
+			sk_load_func = sk_load_byte;
+load_ind:
+			ctx->flags |= SEEN_OFF | SEEN_X;
+			emit_addiu(r_off, r_X, k, ctx);
+			goto load_common;
+		case BPF_LDX | BPF_IMM:
+			/* X <- k */
+			ctx->flags |= SEEN_X;
+			emit_load_imm(r_X, k, ctx);
+			break;
+		case BPF_LDX | BPF_MEM:
+			/* X <- M[k] */
+			ctx->flags |= SEEN_X | SEEN_MEM;
+			emit_load(r_X, r_M, SCRATCH_OFF(k), ctx);
+			break;
+		case BPF_LDX | BPF_W | BPF_LEN:
+			/* X <- len */
+			ctx->flags |= SEEN_X | SEEN_SKB;
+			off = offsetof(struct sk_buff, len);
+			emit_load(r_X, r_skb, off, ctx);
+			break;
+		case BPF_LDX | BPF_B | BPF_MSH:
+			/* X <- 4 * (P[k:1] & 0xf) */
+			ctx->flags |= SEEN_X | SEEN_CALL | SEEN_SKB;
+			/* Load offset to a1 */
+			emit_load_func(r_s0, (ptr)sk_load_byte, ctx);
+			/*
+			 * This may emit two instructions so it may not fit
+			 * in the delay slot. So use a0 in the delay slot.
+			 */
+			emit_load_imm(MIPS_R_A1, k, ctx);
+			emit_jalr(MIPS_R_RA, r_s0, ctx);
+			emit_reg_move(MIPS_R_A0, r_skb, ctx); /* delay slot */
+			/* Check the error value */
+			b_off = b_imm(prog->len, ctx);
+			if (is_bad_offset(b_off))
+				return -E2BIG;
+			emit_bcond(MIPS_COND_NE, r_ret, 0, b_off, ctx);
+			emit_reg_move(r_ret, r_zero, ctx);
+			/* We are good */
+			/* X <- P[1:K] & 0xf */
+			emit_andi(r_X, r_A, 0xf, ctx);
+			/* X << 2 */
+			emit_b(b_imm(i + 1, ctx), ctx);
+			emit_sll(r_X, r_X, 2, ctx); /* delay slot */
+			break;
+		case BPF_ST:
+			/* M[k] <- A */
+			ctx->flags |= SEEN_MEM | SEEN_A;
+			emit_store(r_A, r_M, SCRATCH_OFF(k), ctx);
+			break;
+		case BPF_STX:
+			/* M[k] <- X */
+			ctx->flags |= SEEN_MEM | SEEN_X;
+			emit_store(r_X, r_M, SCRATCH_OFF(k), ctx);
+			break;
+		case BPF_ALU | BPF_ADD | BPF_K:
+			/* A += K */
+			ctx->flags |= SEEN_A;
+			emit_addiu(r_A, r_A, k, ctx);
+			break;
+		case BPF_ALU | BPF_ADD | BPF_X:
+			/* A += X */
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_addu(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_SUB | BPF_K:
+			/* A -= K */
+			ctx->flags |= SEEN_A;
+			emit_addiu(r_A, r_A, -k, ctx);
+			break;
+		case BPF_ALU | BPF_SUB | BPF_X:
+			/* A -= X */
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_subu(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_MUL | BPF_K:
+			/* A *= K */
+			/* Load K to scratch register before MUL */
+			ctx->flags |= SEEN_A;
+			emit_load_imm(r_s0, k, ctx);
+			emit_mul(r_A, r_A, r_s0, ctx);
+			break;
+		case BPF_ALU | BPF_MUL | BPF_X:
+			/* A *= X */
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_mul(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_DIV | BPF_K:
+			/* A /= k */
+			if (k == 1)
+				break;
+			if (optimize_div(&k)) {
+				ctx->flags |= SEEN_A;
+				emit_srl(r_A, r_A, k, ctx);
+				break;
+			}
+			ctx->flags |= SEEN_A;
+			emit_load_imm(r_s0, k, ctx);
+			emit_div(r_A, r_s0, ctx);
+			break;
+		case BPF_ALU | BPF_MOD | BPF_K:
+			/* A %= k */
+			if (k == 1) {
+				ctx->flags |= SEEN_A;
+				emit_jit_reg_move(r_A, r_zero, ctx);
+			} else {
+				ctx->flags |= SEEN_A;
+				emit_load_imm(r_s0, k, ctx);
+				emit_mod(r_A, r_s0, ctx);
+			}
+			break;
+		case BPF_ALU | BPF_DIV | BPF_X:
+			/* A /= X */
+			ctx->flags |= SEEN_X | SEEN_A;
+			/* Check if r_X is zero */
+			b_off = b_imm(prog->len, ctx);
+			if (is_bad_offset(b_off))
+				return -E2BIG;
+			emit_bcond(MIPS_COND_EQ, r_X, r_zero, b_off, ctx);
+			emit_load_imm(r_ret, 0, ctx); /* delay slot */
+			emit_div(r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_MOD | BPF_X:
+			/* A %= X */
+			ctx->flags |= SEEN_X | SEEN_A;
+			/* Check if r_X is zero */
+			b_off = b_imm(prog->len, ctx);
+			if (is_bad_offset(b_off))
+				return -E2BIG;
+			emit_bcond(MIPS_COND_EQ, r_X, r_zero, b_off, ctx);
+			emit_load_imm(r_ret, 0, ctx); /* delay slot */
+			emit_mod(r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_OR | BPF_K:
+			/* A |= K */
+			ctx->flags |= SEEN_A;
+			emit_ori(r_A, r_A, k, ctx);
+			break;
+		case BPF_ALU | BPF_OR | BPF_X:
+			/* A |= X */
+			ctx->flags |= SEEN_A;
+			emit_ori(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_XOR | BPF_K:
+			/* A ^= k */
+			ctx->flags |= SEEN_A;
+			emit_xori(r_A, r_A, k, ctx);
+			break;
+		case BPF_ANC | SKF_AD_ALU_XOR_X:
+		case BPF_ALU | BPF_XOR | BPF_X:
+			/* A ^= X */
+			ctx->flags |= SEEN_A;
+			emit_xor(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_AND | BPF_K:
+			/* A &= K */
+			ctx->flags |= SEEN_A;
+			emit_andi(r_A, r_A, k, ctx);
+			break;
+		case BPF_ALU | BPF_AND | BPF_X:
+			/* A &= X */
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_and(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_LSH | BPF_K:
+			/* A <<= K */
+			ctx->flags |= SEEN_A;
+			emit_sll(r_A, r_A, k, ctx);
+			break;
+		case BPF_ALU | BPF_LSH | BPF_X:
+			/* A <<= X */
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_sllv(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_RSH | BPF_K:
+			/* A >>= K */
+			ctx->flags |= SEEN_A;
+			emit_srl(r_A, r_A, k, ctx);
+			break;
+		case BPF_ALU | BPF_RSH | BPF_X:
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_srlv(r_A, r_A, r_X, ctx);
+			break;
+		case BPF_ALU | BPF_NEG:
+			/* A = -A */
+			ctx->flags |= SEEN_A;
+			emit_neg(r_A, ctx);
+			break;
+		case BPF_JMP | BPF_JA:
+			/* pc += K */
+			b_off = b_imm(i + k + 1, ctx);
+			if (is_bad_offset(b_off))
+				return -E2BIG;
+			emit_b(b_off, ctx);
+			emit_nop(ctx);
+			break;
+		case BPF_JMP | BPF_JEQ | BPF_K:
+			/* pc += ( A == K ) ? pc->jt : pc->jf */
+			condt = MIPS_COND_EQ | MIPS_COND_K;
+			goto jmp_cmp;
+		case BPF_JMP | BPF_JEQ | BPF_X:
+			ctx->flags |= SEEN_X;
+			/* pc += ( A == X ) ? pc->jt : pc->jf */
+			condt = MIPS_COND_EQ | MIPS_COND_X;
+			goto jmp_cmp;
+		case BPF_JMP | BPF_JGE | BPF_K:
+			/* pc += ( A >= K ) ? pc->jt : pc->jf */
+			condt = MIPS_COND_GE | MIPS_COND_K;
+			goto jmp_cmp;
+		case BPF_JMP | BPF_JGE | BPF_X:
+			ctx->flags |= SEEN_X;
+			/* pc += ( A >= X ) ? pc->jt : pc->jf */
+			condt = MIPS_COND_GE | MIPS_COND_X;
+			goto jmp_cmp;
+		case BPF_JMP | BPF_JGT | BPF_K:
+			/* pc += ( A > K ) ? pc->jt : pc->jf */
+			condt = MIPS_COND_GT | MIPS_COND_K;
+			goto jmp_cmp;
+		case BPF_JMP | BPF_JGT | BPF_X:
+			ctx->flags |= SEEN_X;
+			/* pc += ( A > X ) ? pc->jt : pc->jf */
+			condt = MIPS_COND_GT | MIPS_COND_X;
+jmp_cmp:
+			/* Greater or Equal */
+			if ((condt & MIPS_COND_GE) ||
+			    (condt & MIPS_COND_GT)) {
+				if (condt & MIPS_COND_K) { /* K */
+					ctx->flags |= SEEN_A;
+					emit_sltiu(r_s0, r_A, k, ctx);
+				} else { /* X */
+					ctx->flags |= SEEN_A |
+						SEEN_X;
+					emit_sltu(r_s0, r_A, r_X, ctx);
+				}
+				/* A < (K|X) ? r_scrach = 1 */
+				b_off = b_imm(i + inst->jf + 1, ctx);
+				emit_bcond(MIPS_COND_NE, r_s0, r_zero, b_off,
+					   ctx);
+				emit_nop(ctx);
+				/* A > (K|X) ? scratch = 0 */
+				if (condt & MIPS_COND_GT) {
+					/* Checking for equality */
+					ctx->flags |= SEEN_A | SEEN_X;
+					if (condt & MIPS_COND_K)
+						emit_load_imm(r_s0, k, ctx);
+					else
+						emit_jit_reg_move(r_s0, r_X,
+								  ctx);
+					b_off = b_imm(i + inst->jf + 1, ctx);
+					emit_bcond(MIPS_COND_EQ, r_A, r_s0,
+						   b_off, ctx);
+					emit_nop(ctx);
+					/* Finally, A > K|X */
+					b_off = b_imm(i + inst->jt + 1, ctx);
+					emit_b(b_off, ctx);
+					emit_nop(ctx);
+				} else {
+					/* A >= (K|X) so jump */
+					b_off = b_imm(i + inst->jt + 1, ctx);
+					emit_b(b_off, ctx);
+					emit_nop(ctx);
+				}
+			} else {
+				/* A == K|X */
+				if (condt & MIPS_COND_K) { /* K */
+					ctx->flags |= SEEN_A;
+					emit_load_imm(r_s0, k, ctx);
+					/* jump true */
+					b_off = b_imm(i + inst->jt + 1, ctx);
+					emit_bcond(MIPS_COND_EQ, r_A, r_s0,
+						   b_off, ctx);
+					emit_nop(ctx);
+					/* jump false */
+					b_off = b_imm(i + inst->jf + 1,
+						      ctx);
+					emit_bcond(MIPS_COND_NE, r_A, r_s0,
+						   b_off, ctx);
+					emit_nop(ctx);
+				} else { /* X */
+					/* jump true */
+					ctx->flags |= SEEN_A | SEEN_X;
+					b_off = b_imm(i + inst->jt + 1,
+						      ctx);
+					emit_bcond(MIPS_COND_EQ, r_A, r_X,
+						   b_off, ctx);
+					emit_nop(ctx);
+					/* jump false */
+					b_off = b_imm(i + inst->jf + 1, ctx);
+					emit_bcond(MIPS_COND_NE, r_A, r_X,
+						   b_off, ctx);
+					emit_nop(ctx);
+				}
+			}
+			break;
+		case BPF_JMP | BPF_JSET | BPF_K:
+			ctx->flags |= SEEN_A;
+			/* pc += (A & K) ? pc -> jt : pc -> jf */
+			emit_load_imm(r_s1, k, ctx);
+			emit_and(r_s0, r_A, r_s1, ctx);
+			/* jump true */
+			b_off = b_imm(i + inst->jt + 1, ctx);
+			emit_bcond(MIPS_COND_NE, r_s0, r_zero, b_off, ctx);
+			emit_nop(ctx);
+			/* jump false */
+			b_off = b_imm(i + inst->jf + 1, ctx);
+			emit_b(b_off, ctx);
+			emit_nop(ctx);
+			break;
+		case BPF_JMP | BPF_JSET | BPF_X:
+			ctx->flags |= SEEN_X | SEEN_A;
+			/* pc += (A & X) ? pc -> jt : pc -> jf */
+			emit_and(r_s0, r_A, r_X, ctx);
+			/* jump true */
+			b_off = b_imm(i + inst->jt + 1, ctx);
+			emit_bcond(MIPS_COND_NE, r_s0, r_zero, b_off, ctx);
+			emit_nop(ctx);
+			/* jump false */
+			b_off = b_imm(i + inst->jf + 1, ctx);
+			emit_b(b_off, ctx);
+			emit_nop(ctx);
+			break;
+		case BPF_RET | BPF_A:
+			ctx->flags |= SEEN_A;
+			if (i != prog->len - 1) {
+				/*
+				 * If this is not the last instruction
+				 * then jump to the epilogue
+				 */
+				b_off = b_imm(prog->len, ctx);
+				if (is_bad_offset(b_off))
+					return -E2BIG;
+				emit_b(b_off, ctx);
+			}
+			emit_reg_move(r_ret, r_A, ctx); /* delay slot */
+			break;
+		case BPF_RET | BPF_K:
+			/*
+			 * It can emit two instructions so it does not fit on
+			 * the delay slot.
+			 */
+			emit_load_imm(r_ret, k, ctx);
+			if (i != prog->len - 1) {
+				/*
+				 * If this is not the last instruction
+				 * then jump to the epilogue
+				 */
+				b_off = b_imm(prog->len, ctx);
+				if (is_bad_offset(b_off))
+					return -E2BIG;
+				emit_b(b_off, ctx);
+				emit_nop(ctx);
+			}
+			break;
+		case BPF_MISC | BPF_TAX:
+			/* X = A */
+			ctx->flags |= SEEN_X | SEEN_A;
+			emit_jit_reg_move(r_X, r_A, ctx);
+			break;
+		case BPF_MISC | BPF_TXA:
+			/* A = X */
+			ctx->flags |= SEEN_A | SEEN_X;
+			emit_jit_reg_move(r_A, r_X, ctx);
+			break;
+		/* AUX */
+		case BPF_ANC | SKF_AD_PROTOCOL:
+			/* A = ntohs(skb->protocol */
+			ctx->flags |= SEEN_SKB | SEEN_OFF | SEEN_A;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
+						  protocol) != 2);
+			off = offsetof(struct sk_buff, protocol);
+			emit_half_load(r_A, r_skb, off, ctx);
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+			/* This needs little endian fixup */
+			if (cpu_has_wsbh) {
+				/* R2 and later have the wsbh instruction */
+				emit_wsbh(r_A, r_A, ctx);
+			} else {
+				/* Get first byte */
+				emit_andi(r_tmp_imm, r_A, 0xff, ctx);
+				/* Shift it */
+				emit_sll(r_tmp, r_tmp_imm, 8, ctx);
+				/* Get second byte */
+				emit_srl(r_tmp_imm, r_A, 8, ctx);
+				emit_andi(r_tmp_imm, r_tmp_imm, 0xff, ctx);
+				/* Put everyting together in r_A */
+				emit_or(r_A, r_tmp, r_tmp_imm, ctx);
+			}
+#endif
+			break;
+		case BPF_ANC | SKF_AD_CPU:
+			ctx->flags |= SEEN_A | SEEN_OFF;
+			/* A = current_thread_info()->cpu */
+			BUILD_BUG_ON(FIELD_SIZEOF(struct thread_info,
+						  cpu) != 4);
+			off = offsetof(struct thread_info, cpu);
+			/* $28/gp points to the thread_info struct */
+			emit_load(r_A, 28, off, ctx);
+			break;
+		case BPF_ANC | SKF_AD_IFINDEX:
+			/* A = skb->dev->ifindex */
+		case BPF_ANC | SKF_AD_HATYPE:
+			/* A = skb->dev->type */
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			off = offsetof(struct sk_buff, dev);
+			/* Load *dev pointer */
+			emit_load_ptr(r_s0, r_skb, off, ctx);
+			/* error (0) in the delay slot */
+			b_off = b_imm(prog->len, ctx);
+			if (is_bad_offset(b_off))
+				return -E2BIG;
+			emit_bcond(MIPS_COND_EQ, r_s0, r_zero, b_off, ctx);
+			emit_reg_move(r_ret, r_zero, ctx);
+			if (code == (BPF_ANC | SKF_AD_IFINDEX)) {
+				BUILD_BUG_ON(FIELD_SIZEOF(struct net_device, ifindex) != 4);
+				off = offsetof(struct net_device, ifindex);
+				emit_load(r_A, r_s0, off, ctx);
+			} else { /* (code == (BPF_ANC | SKF_AD_HATYPE) */
+				BUILD_BUG_ON(FIELD_SIZEOF(struct net_device, type) != 2);
+				off = offsetof(struct net_device, type);
+				emit_half_load_unsigned(r_A, r_s0, off, ctx);
+			}
+			break;
+		case BPF_ANC | SKF_AD_MARK:
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff, mark) != 4);
+			off = offsetof(struct sk_buff, mark);
+			emit_load(r_A, r_skb, off, ctx);
+			break;
+		case BPF_ANC | SKF_AD_RXHASH:
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff, hash) != 4);
+			off = offsetof(struct sk_buff, hash);
+			emit_load(r_A, r_skb, off, ctx);
+			break;
+		case BPF_ANC | SKF_AD_VLAN_TAG:
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
+						  vlan_tci) != 2);
+			off = offsetof(struct sk_buff, vlan_tci);
+			emit_half_load_unsigned(r_A, r_skb, off, ctx);
+			break;
+		case BPF_ANC | SKF_AD_VLAN_TAG_PRESENT:
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			emit_load_byte(r_A, r_skb, PKT_VLAN_PRESENT_OFFSET(), ctx);
+			if (PKT_VLAN_PRESENT_BIT)
+				emit_srl(r_A, r_A, PKT_VLAN_PRESENT_BIT, ctx);
+			if (PKT_VLAN_PRESENT_BIT < 7)
+				emit_andi(r_A, r_A, 1, ctx);
+			break;
+		case BPF_ANC | SKF_AD_PKTTYPE:
+			ctx->flags |= SEEN_SKB;
+
+			emit_load_byte(r_tmp, r_skb, PKT_TYPE_OFFSET(), ctx);
+			/* Keep only the last 3 bits */
+			emit_andi(r_A, r_tmp, PKT_TYPE_MAX, ctx);
+#ifdef __BIG_ENDIAN_BITFIELD
+			/* Get the actual packet type to the lower 3 bits */
+			emit_srl(r_A, r_A, 5, ctx);
+#endif
+			break;
+		case BPF_ANC | SKF_AD_QUEUE:
+			ctx->flags |= SEEN_SKB | SEEN_A;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
+						  queue_mapping) != 2);
+			BUILD_BUG_ON(offsetof(struct sk_buff,
+					      queue_mapping) > 0xff);
+			off = offsetof(struct sk_buff, queue_mapping);
+			emit_half_load_unsigned(r_A, r_skb, off, ctx);
+			break;
+		default:
+			pr_debug("%s: Unhandled opcode: 0x%02x\n", __FILE__,
+				 inst->code);
+			return -1;
+		}
+	}
+
+	/* compute offsets only during the first pass */
+	if (ctx->target == NULL)
+		ctx->offsets[i] = ctx->idx * 4;
+
+	return 0;
+}
+
+void bpf_jit_compile(struct bpf_prog *fp)
+{
+	struct jit_ctx ctx;
+	unsigned int alloc_size, tmp_idx;
+
+	if (!bpf_jit_enable)
+		return;
+
+	memset(&ctx, 0, sizeof(ctx));
+
+	ctx.offsets = kcalloc(fp->len + 1, sizeof(*ctx.offsets), GFP_KERNEL);
+	if (ctx.offsets == NULL)
+		return;
+
+	ctx.skf = fp;
+
+	if (build_body(&ctx))
+		goto out;
+
+	tmp_idx = ctx.idx;
+	build_prologue(&ctx);
+	ctx.prologue_bytes = (ctx.idx - tmp_idx) * 4;
+	/* just to complete the ctx.idx count */
+	build_epilogue(&ctx);
+
+	alloc_size = 4 * ctx.idx;
+	ctx.target = module_alloc(alloc_size);
+	if (ctx.target == NULL)
+		goto out;
+
+	/* Clean it */
+	memset(ctx.target, 0, alloc_size);
+
+	ctx.idx = 0;
+
+	/* Generate the actual JIT code */
+	build_prologue(&ctx);
+	if (build_body(&ctx)) {
+		module_memfree(ctx.target);
+		goto out;
+	}
+	build_epilogue(&ctx);
+
+	/* Update the icache */
+	flush_icache_range((ptr)ctx.target, (ptr)(ctx.target + ctx.idx));
+
+	if (bpf_jit_enable > 1)
+		/* Dump JIT code */
+		bpf_jit_dump(fp->len, alloc_size, 2, ctx.target);
+
+	fp->bpf_func = (void *)ctx.target;
+	fp->jited = 1;
+
+out:
+	kfree(ctx.offsets);
+}
+
+void bpf_jit_free(struct bpf_prog *fp)
+{
+	if (fp->jited)
+		module_memfree(fp->bpf_func);
+
+	bpf_prog_unlock_free(fp);
+}
--- linux-ein-5.4.0.orig/arch/mips/net/bpf_jit_asm.S
+++ linux-ein-5.4.0/arch/mips/net/bpf_jit_asm.S
@@ -0,0 +1,285 @@
+/*
+ * bpf_jib_asm.S: Packet/header access helper functions for MIPS/MIPS64 BPF
+ * compiler.
+ *
+ * Copyright (C) 2015 Imagination Technologies Ltd.
+ * Author: Markos Chandras <markos.chandras@imgtec.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; version 2 of the License.
+ */
+
+#include <asm/asm.h>
+#include <asm/isa-rev.h>
+#include <asm/regdef.h>
+#include "bpf_jit.h"
+
+/* ABI
+ *
+ * r_skb_hl	skb header length
+ * r_skb_data	skb data
+ * r_off(a1)	offset register
+ * r_A		BPF register A
+ * r_X		PF register X
+ * r_skb(a0)	*skb
+ * r_M		*scratch memory
+ * r_skb_le	skb length
+ * r_s0		Scratch register 0
+ * r_s1		Scratch register 1
+ *
+ * On entry:
+ * a0: *skb
+ * a1: offset (imm or imm + X)
+ *
+ * All non-BPF-ABI registers are free for use. On return, we only
+ * care about r_ret. The BPF-ABI registers are assumed to remain
+ * unmodified during the entire filter operation.
+ */
+
+#define skb	a0
+#define offset	a1
+#define SKF_LL_OFF  (-0x200000) /* Can't include linux/filter.h in assembly */
+
+	/* We know better :) so prevent assembler reordering etc */
+	.set 	noreorder
+
+#define is_offset_negative(TYPE)				\
+	/* If offset is negative we have more work to do */	\
+	slti	t0, offset, 0;					\
+	bgtz	t0, bpf_slow_path_##TYPE##_neg;			\
+	/* Be careful what follows in DS. */
+
+#define is_offset_in_header(SIZE, TYPE)				\
+	/* Reading from header? */				\
+	addiu	$r_s0, $r_skb_hl, -SIZE;			\
+	slt	t0, $r_s0, offset;				\
+	bgtz	t0, bpf_slow_path_##TYPE;			\
+
+LEAF(sk_load_word)
+	is_offset_negative(word)
+FEXPORT(sk_load_word_positive)
+	is_offset_in_header(4, word)
+	/* Offset within header boundaries */
+	PTR_ADDU t1, $r_skb_data, offset
+	.set	reorder
+	lw	$r_A, 0(t1)
+	.set	noreorder
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+# if MIPS_ISA_REV >= 2
+	wsbh	t0, $r_A
+	rotr	$r_A, t0, 16
+# else
+	sll	t0, $r_A, 24
+	srl	t1, $r_A, 24
+	srl	t2, $r_A, 8
+	or	t0, t0, t1
+	andi	t2, t2, 0xff00
+	andi	t1, $r_A, 0xff00
+	or	t0, t0, t2
+	sll	t1, t1, 8
+	or	$r_A, t0, t1
+# endif
+#endif
+	jr	$r_ra
+	 move	$r_ret, zero
+	END(sk_load_word)
+
+LEAF(sk_load_half)
+	is_offset_negative(half)
+FEXPORT(sk_load_half_positive)
+	is_offset_in_header(2, half)
+	/* Offset within header boundaries */
+	PTR_ADDU t1, $r_skb_data, offset
+	lhu	$r_A, 0(t1)
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+# if MIPS_ISA_REV >= 2
+	wsbh	$r_A, $r_A
+# else
+	sll	t0, $r_A, 8
+	srl	t1, $r_A, 8
+	andi	t0, t0, 0xff00
+	or	$r_A, t0, t1
+# endif
+#endif
+	jr	$r_ra
+	 move	$r_ret, zero
+	END(sk_load_half)
+
+LEAF(sk_load_byte)
+	is_offset_negative(byte)
+FEXPORT(sk_load_byte_positive)
+	is_offset_in_header(1, byte)
+	/* Offset within header boundaries */
+	PTR_ADDU t1, $r_skb_data, offset
+	lbu	$r_A, 0(t1)
+	jr	$r_ra
+	 move	$r_ret, zero
+	END(sk_load_byte)
+
+/*
+ * call skb_copy_bits:
+ * (prototype in linux/skbuff.h)
+ *
+ * int skb_copy_bits(sk_buff *skb, int offset, void *to, int len)
+ *
+ * o32 mandates we leave 4 spaces for argument registers in case
+ * the callee needs to use them. Even though we don't care about
+ * the argument registers ourselves, we need to allocate that space
+ * to remain ABI compliant since the callee may want to use that space.
+ * We also allocate 2 more spaces for $r_ra and our return register (*to).
+ *
+ * n64 is a bit different. The *caller* will allocate the space to preserve
+ * the arguments. So in 64-bit kernels, we allocate the 4-arg space for no
+ * good reason but it does not matter that much really.
+ *
+ * (void *to) is returned in r_s0
+ *
+ */
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+#define DS_OFFSET(SIZE) (4 * SZREG)
+#else
+#define DS_OFFSET(SIZE) ((4 * SZREG) + (4 - SIZE))
+#endif
+#define bpf_slow_path_common(SIZE)				\
+	/* Quick check. Are we within reasonable boundaries? */ \
+	LONG_ADDIU	$r_s1, $r_skb_len, -SIZE;		\
+	sltu		$r_s0, offset, $r_s1;			\
+	beqz		$r_s0, fault;				\
+	/* Load 4th argument in DS */				\
+	 LONG_ADDIU	a3, zero, SIZE;				\
+	PTR_ADDIU	$r_sp, $r_sp, -(6 * SZREG);		\
+	PTR_LA		t0, skb_copy_bits;			\
+	PTR_S		$r_ra, (5 * SZREG)($r_sp);		\
+	/* Assign low slot to a2 */				\
+	PTR_ADDIU	a2, $r_sp, DS_OFFSET(SIZE);		\
+	jalr		t0;					\
+	/* Reset our destination slot (DS but it's ok) */	\
+	 INT_S		zero, (4 * SZREG)($r_sp);		\
+	/*							\
+	 * skb_copy_bits returns 0 on success and -EFAULT	\
+	 * on error. Our data live in a2. Do not bother with	\
+	 * our data if an error has been returned.		\
+	 */							\
+	/* Restore our frame */					\
+	PTR_L		$r_ra, (5 * SZREG)($r_sp);		\
+	INT_L		$r_s0, (4 * SZREG)($r_sp);		\
+	bltz		v0, fault;				\
+	 PTR_ADDIU	$r_sp, $r_sp, 6 * SZREG;		\
+	move		$r_ret, zero;				\
+
+NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp)
+	bpf_slow_path_common(4)
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+# if MIPS_ISA_REV >= 2
+	wsbh	t0, $r_s0
+	jr	$r_ra
+	 rotr	$r_A, t0, 16
+# else
+	sll	t0, $r_s0, 24
+	srl	t1, $r_s0, 24
+	srl	t2, $r_s0, 8
+	or	t0, t0, t1
+	andi	t2, t2, 0xff00
+	andi	t1, $r_s0, 0xff00
+	or	t0, t0, t2
+	sll	t1, t1, 8
+	jr	$r_ra
+	 or	$r_A, t0, t1
+# endif
+#else
+	jr	$r_ra
+	 move	$r_A, $r_s0
+#endif
+
+	END(bpf_slow_path_word)
+
+NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp)
+	bpf_slow_path_common(2)
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+# if MIPS_ISA_REV >= 2
+	jr	$r_ra
+	 wsbh	$r_A, $r_s0
+# else
+	sll	t0, $r_s0, 8
+	andi	t1, $r_s0, 0xff00
+	andi	t0, t0, 0xff00
+	srl	t1, t1, 8
+	jr	$r_ra
+	 or	$r_A, t0, t1
+# endif
+#else
+	jr	$r_ra
+	 move	$r_A, $r_s0
+#endif
+
+	END(bpf_slow_path_half)
+
+NESTED(bpf_slow_path_byte, (6 * SZREG), $r_sp)
+	bpf_slow_path_common(1)
+	jr	$r_ra
+	 move	$r_A, $r_s0
+
+	END(bpf_slow_path_byte)
+
+/*
+ * Negative entry points
+ */
+	.macro bpf_is_end_of_data
+	li	t0, SKF_LL_OFF
+	/* Reading link layer data? */
+	slt	t1, offset, t0
+	bgtz	t1, fault
+	/* Be careful what follows in DS. */
+	.endm
+/*
+ * call skb_copy_bits:
+ * (prototype in linux/filter.h)
+ *
+ * void *bpf_internal_load_pointer_neg_helper(const struct sk_buff *skb,
+ *                                            int k, unsigned int size)
+ *
+ * see above (bpf_slow_path_common) for ABI restrictions
+ */
+#define bpf_negative_common(SIZE)					\
+	PTR_ADDIU	$r_sp, $r_sp, -(6 * SZREG);			\
+	PTR_LA		t0, bpf_internal_load_pointer_neg_helper;	\
+	PTR_S		$r_ra, (5 * SZREG)($r_sp);			\
+	jalr		t0;						\
+	 li		a2, SIZE;					\
+	PTR_L		$r_ra, (5 * SZREG)($r_sp);			\
+	/* Check return pointer */					\
+	beqz		v0, fault;					\
+	 PTR_ADDIU	$r_sp, $r_sp, 6 * SZREG;			\
+	/* Preserve our pointer */					\
+	move		$r_s0, v0;					\
+	/* Set return value */						\
+	move		$r_ret, zero;					\
+
+bpf_slow_path_word_neg:
+	bpf_is_end_of_data
+NESTED(sk_load_word_negative, (6 * SZREG), $r_sp)
+	bpf_negative_common(4)
+	jr	$r_ra
+	 lw	$r_A, 0($r_s0)
+	END(sk_load_word_negative)
+
+bpf_slow_path_half_neg:
+	bpf_is_end_of_data
+NESTED(sk_load_half_negative, (6 * SZREG), $r_sp)
+	bpf_negative_common(2)
+	jr	$r_ra
+	 lhu	$r_A, 0($r_s0)
+	END(sk_load_half_negative)
+
+bpf_slow_path_byte_neg:
+	bpf_is_end_of_data
+NESTED(sk_load_byte_negative, (6 * SZREG), $r_sp)
+	bpf_negative_common(1)
+	jr	$r_ra
+	 lbu	$r_A, 0($r_s0)
+	END(sk_load_byte_negative)
+
+fault:
+	jr	$r_ra
+	 addiu $r_ret, zero, 1
--- linux-ein-5.4.0.orig/arch/mips/net/ebpf_jit.c
+++ linux-ein-5.4.0/arch/mips/net/ebpf_jit.c
@@ -604,6 +604,7 @@
 static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
 {
 	int off, b_off;
+	int tcc_reg;
 
 	ctx->flags |= EBPF_SEEN_TC;
 	/*
@@ -616,14 +617,14 @@
 	b_off = b_imm(this_idx + 1, ctx);
 	emit_instr(ctx, bne, MIPS_R_AT, MIPS_R_ZERO, b_off);
 	/*
-	 * if (--TCC < 0)
+	 * if (TCC-- < 0)
 	 *     goto out;
 	 */
 	/* Delay slot */
-	emit_instr(ctx, daddiu, MIPS_R_T5,
-		   (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4, -1);
+	tcc_reg = (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4;
+	emit_instr(ctx, daddiu, MIPS_R_T5, tcc_reg, -1);
 	b_off = b_imm(this_idx + 1, ctx);
-	emit_instr(ctx, bltz, MIPS_R_T5, b_off);
+	emit_instr(ctx, bltz, tcc_reg, b_off);
 	/*
 	 * prog = array->ptrs[index];
 	 * if (prog == NULL)
@@ -1354,6 +1355,9 @@
 		}
 		break;
 
+	case BPF_ST | BPF_NOSPEC: /* speculation barrier */
+		break;
+
 	case BPF_ST | BPF_B | BPF_MEM:
 	case BPF_ST | BPF_H | BPF_MEM:
 	case BPF_ST | BPF_W | BPF_MEM:
@@ -1803,7 +1807,7 @@
 	unsigned int image_size;
 	u8 *image_ptr;
 
-	if (!prog->jit_requested || MIPS_ISA_REV < 2)
+	if (!prog->jit_requested)
 		return prog;
 
 	tmp = bpf_jit_blind_constants(prog);
--- linux-ein-5.4.0.orig/arch/mips/pci/pci-legacy.c
+++ linux-ein-5.4.0/arch/mips/pci/pci-legacy.c
@@ -166,8 +166,13 @@
 			res = hose->mem_resource;
 			break;
 		}
-		if (res != NULL)
-			of_pci_range_to_resource(&range, node, res);
+		if (res != NULL) {
+			res->name = node->full_name;
+			res->flags = range.flags;
+			res->start = range.cpu_addr;
+			res->end = range.cpu_addr + range.size - 1;
+			res->parent = res->child = res->sibling = NULL;
+		}
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/mips/pci/pci-mt7620.c
+++ linux-ein-5.4.0/arch/mips/pci/pci-mt7620.c
@@ -30,6 +30,7 @@
 #define RALINK_GPIOMODE			0x60
 
 #define PPLL_CFG1			0x9c
+#define PPLL_LD				BIT(23)
 
 #define PPLL_DRV			0xa0
 #define PDRV_SW_SET			BIT(31)
@@ -239,8 +240,8 @@
 	rt_sysc_m32(0, RALINK_PCIE0_CLK_EN, RALINK_CLKCFG1);
 	mdelay(100);
 
-	if (!(rt_sysc_r32(PPLL_CFG1) & PDRV_SW_SET)) {
-		dev_err(&pdev->dev, "MT7620 PPLL unlock\n");
+	if (!(rt_sysc_r32(PPLL_CFG1) & PPLL_LD)) {
+		dev_err(&pdev->dev, "pcie PLL not locked, aborting init\n");
 		reset_control_assert(rstpcie0);
 		rt_sysc_m32(RALINK_PCIE0_CLK_EN, 0, RALINK_CLKCFG1);
 		return -1;
--- linux-ein-5.4.0.orig/arch/mips/pci/pci-rt2880.c
+++ linux-ein-5.4.0/arch/mips/pci/pci-rt2880.c
@@ -180,7 +180,6 @@
 
 int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 {
-	u16 cmd;
 	int irq = -1;
 
 	if (dev->bus->number != 0)
@@ -188,8 +187,6 @@
 
 	switch (PCI_SLOT(dev->devfn)) {
 	case 0x00:
-		rt2880_pci_write_u32(PCI_BASE_ADDRESS_0, 0x08000000);
-		(void) rt2880_pci_read_u32(PCI_BASE_ADDRESS_0);
 		break;
 	case 0x11:
 		irq = RT288X_CPU_IRQ_PCI;
@@ -201,16 +198,6 @@
 		break;
 	}
 
-	pci_write_config_byte((struct pci_dev *) dev,
-		PCI_CACHE_LINE_SIZE, 0x14);
-	pci_write_config_byte((struct pci_dev *) dev, PCI_LATENCY_TIMER, 0xFF);
-	pci_read_config_word((struct pci_dev *) dev, PCI_COMMAND, &cmd);
-	cmd |= PCI_COMMAND_MASTER | PCI_COMMAND_IO | PCI_COMMAND_MEMORY |
-		PCI_COMMAND_INVALIDATE | PCI_COMMAND_FAST_BACK |
-		PCI_COMMAND_SERR | PCI_COMMAND_WAIT | PCI_COMMAND_PARITY;
-	pci_write_config_word((struct pci_dev *) dev, PCI_COMMAND, cmd);
-	pci_write_config_byte((struct pci_dev *) dev, PCI_INTERRUPT_LINE,
-			      dev->irq);
 	return irq;
 }
 
@@ -251,6 +238,30 @@
 
 int pcibios_plat_dev_init(struct pci_dev *dev)
 {
+	static bool slot0_init;
+
+	/*
+	 * Nobody seems to initialize slot 0, but this platform requires it, so
+	 * do it once when some other slot is being enabled. The PCI subsystem
+	 * should configure other slots properly, so no need to do anything
+	 * special for those.
+	 */
+	if (!slot0_init && dev->bus->number == 0) {
+		u16 cmd;
+		u32 bar0;
+
+		slot0_init = true;
+
+		pci_bus_write_config_dword(dev->bus, 0, PCI_BASE_ADDRESS_0,
+					   0x08000000);
+		pci_bus_read_config_dword(dev->bus, 0, PCI_BASE_ADDRESS_0,
+					  &bar0);
+
+		pci_bus_read_config_word(dev->bus, 0, PCI_COMMAND, &cmd);
+		cmd |= PCI_COMMAND_MASTER | PCI_COMMAND_IO | PCI_COMMAND_MEMORY;
+		pci_bus_write_config_word(dev->bus, 0, PCI_COMMAND, cmd);
+	}
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/mips/pci/pci-xtalk-bridge.c
+++ linux-ein-5.4.0/arch/mips/pci/pci-xtalk-bridge.c
@@ -279,16 +279,15 @@
 	struct bridge_irq_chip_data *data = d->chip_data;
 	int bit = d->parent_data->hwirq;
 	int pin = d->hwirq;
-	nasid_t nasid;
 	int ret, cpu;
 
 	ret = irq_chip_set_affinity_parent(d, mask, force);
 	if (ret >= 0) {
 		cpu = cpumask_first_and(mask, cpu_online_mask);
-		nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
+		data->nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
 		bridge_write(data->bc, b_int_addr[pin].addr,
 			     (((data->bc->intr_addr >> 30) & 0x30000) |
-			      bit | (nasid << 8)));
+			      bit | (data->nasid << 8)));
 		bridge_read(data->bc, b_wid_tflush);
 	}
 	return ret;
@@ -445,9 +444,10 @@
 		return -ENOMEM;
 	domain = irq_domain_create_hierarchy(parent, 0, 8, fn,
 					     &bridge_domain_ops, NULL);
-	irq_domain_free_fwnode(fn);
-	if (!domain)
+	if (!domain) {
+		irq_domain_free_fwnode(fn);
 		return -ENOMEM;
+	}
 
 	pci_set_flags(PCI_PROBE_ONLY);
 
@@ -539,6 +539,7 @@
 	pci_free_resource_list(&host->windows);
 err_remove_domain:
 	irq_domain_remove(domain);
+	irq_domain_free_fwnode(fn);
 	return err;
 }
 
@@ -546,8 +547,10 @@
 {
 	struct pci_bus *bus = platform_get_drvdata(pdev);
 	struct bridge_controller *bc = BRIDGE_CONTROLLER(bus);
+	struct fwnode_handle *fn = bc->domain->fwnode;
 
 	irq_domain_remove(bc->domain);
+	irq_domain_free_fwnode(fn);
 	pci_lock_rescan_remove();
 	pci_stop_root_bus(bus);
 	pci_remove_root_bus(bus);
--- linux-ein-5.4.0.orig/arch/mips/pic32/pic32mzda/early_console.c
+++ linux-ein-5.4.0/arch/mips/pic32/pic32mzda/early_console.c
@@ -27,7 +27,7 @@
 #define U_BRG(x)	(UART_BASE(x) + 0x40)
 
 static void __iomem *uart_base;
-static char console_port = -1;
+static int console_port = -1;
 
 static int __init configure_uart_pins(int port)
 {
@@ -47,7 +47,7 @@
 	return 0;
 }
 
-static void __init configure_uart(char port, int baud)
+static void __init configure_uart(int port, int baud)
 {
 	u32 pbclk;
 
@@ -60,7 +60,7 @@
 		     uart_base + PIC32_SET(U_STA(port)));
 }
 
-static void __init setup_early_console(char port, int baud)
+static void __init setup_early_console(int port, int baud)
 {
 	if (configure_uart_pins(port))
 		return;
@@ -130,16 +130,15 @@
 	return baud;
 }
 
-void __init fw_init_early_console(char port)
+void __init fw_init_early_console(void)
 {
 	char *arch_cmdline = pic32_getcmdline();
-	int baud = -1;
+	int baud, port;
 
 	uart_base = ioremap_nocache(PIC32_BASE_UART, 0xc00);
 
 	baud = get_baud_from_cmdline(arch_cmdline);
-	if (port == -1)
-		port = get_port_from_cmdline(arch_cmdline);
+	port = get_port_from_cmdline(arch_cmdline);
 
 	if (port == -1)
 		port = EARLY_CONSOLE_PORT;
--- linux-ein-5.4.0.orig/arch/mips/pic32/pic32mzda/init.c
+++ linux-ein-5.4.0/arch/mips/pic32/pic32mzda/init.c
@@ -28,7 +28,7 @@
 	if (fw_passed_dtb && !fw_arg2 && !fw_arg3)
 		return (ulong)fw_passed_dtb;
 
-	if (__dtb_start < __dtb_end)
+	if (&__dtb_start < &__dtb_end)
 		ftaddr = (ulong)__dtb_start;
 
 	return ftaddr;
@@ -60,7 +60,7 @@
 		strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
 
 #ifdef CONFIG_EARLY_PRINTK
-	fw_init_early_console(-1);
+	fw_init_early_console();
 #endif
 	pic32_config_init();
 }
--- linux-ein-5.4.0.orig/arch/mips/ralink/Kconfig
+++ linux-ein-5.4.0/arch/mips/ralink/Kconfig
@@ -51,6 +51,7 @@
 		select MIPS_GIC
 		select COMMON_CLK
 		select CLKSRC_MIPS_GIC
+		select HAVE_PCI if PCI_MT7621
 endchoice
 
 choice
--- linux-ein-5.4.0.orig/arch/mips/ralink/ill_acc.c
+++ linux-ein-5.4.0/arch/mips/ralink/ill_acc.c
@@ -61,6 +61,7 @@
 	pdev = of_find_device_by_node(np);
 	if (!pdev) {
 		pr_err("%pOFn: failed to lookup pdev\n", np);
+		of_node_put(np);
 		return -EINVAL;
 	}
 
--- linux-ein-5.4.0.orig/arch/mips/ralink/of.c
+++ linux-ein-5.4.0/arch/mips/ralink/of.c
@@ -8,6 +8,7 @@
 
 #include <linux/io.h>
 #include <linux/clk.h>
+#include <linux/export.h>
 #include <linux/init.h>
 #include <linux/sizes.h>
 #include <linux/of_fdt.h>
@@ -25,6 +26,7 @@
 
 __iomem void *rt_sysc_membase;
 __iomem void *rt_memc_membase;
+EXPORT_SYMBOL_GPL(rt_sysc_membase);
 
 __iomem void *plat_of_remap_node(const char *node)
 {
@@ -75,7 +77,7 @@
 	 */
 	if (fw_passed_dtb)
 		dtb = (void *)fw_passed_dtb;
-	else if (__dtb_start != __dtb_end)
+	else if (&__dtb_start != &__dtb_end)
 		dtb = (void *)__dtb_start;
 
 	__dt_setup_arch(dtb);
--- linux-ein-5.4.0.orig/arch/mips/rb532/devices.c
+++ linux-ein-5.4.0/arch/mips/rb532/devices.c
@@ -310,11 +310,9 @@
 static int __init setup_kmac(char *s)
 {
 	printk(KERN_INFO "korina mac = %s\n", s);
-	if (!mac_pton(s, korina_dev0_data.mac)) {
+	if (!mac_pton(s, korina_dev0_data.mac))
 		printk(KERN_ERR "Invalid mac\n");
-		return -EINVAL;
-	}
-	return 0;
+	return 1;
 }
 
 __setup("kmac=", setup_kmac);
--- linux-ein-5.4.0.orig/arch/mips/sgi-ip27/ip27-irq.c
+++ linux-ein-5.4.0/arch/mips/sgi-ip27/ip27-irq.c
@@ -73,6 +73,9 @@
 	int cpu;
 
 	cpu = cpumask_first_and(mask, cpu_online_mask);
+	if (cpu >= nr_cpu_ids)
+		cpu = cpumask_any(cpu_online_mask);
+
 	nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu));
 	hd->cpu = cpu;
 	if (!cputoslice(cpu)) {
@@ -139,6 +142,7 @@
 	/* use CPU connected to nearest hub */
 	hub = hub_data(NASID_TO_COMPACT_NODEID(info->nasid));
 	setup_hub_mask(hd, &hub->h_cpus);
+	info->nasid = cpu_to_node(hd->cpu);
 
 	/* Make sure it's not already pending when we connect it. */
 	REMOTE_HUB_CLR_INTR(info->nasid, swlevel);
--- linux-ein-5.4.0.orig/arch/mips/sni/a20r.c
+++ linux-ein-5.4.0/arch/mips/sni/a20r.c
@@ -143,7 +143,10 @@
 	},
 };
 
-static u32 a20r_ack_hwint(void)
+/*
+ * Trigger chipset to update CPU's CAUSE IP field
+ */
+static u32 a20r_update_cause_ip(void)
 {
 	u32 status = read_c0_status();
 
@@ -205,12 +208,14 @@
 	int irq;
 
 	clear_c0_status(IE_IRQ0);
-	status = a20r_ack_hwint();
+	status = a20r_update_cause_ip();
 	cause = read_c0_cause();
 
 	irq = ffs(((cause & status) >> 8) & 0xf8);
 	if (likely(irq > 0))
 		do_IRQ(SNI_A20R_IRQ_BASE + irq - 1);
+
+	a20r_update_cause_ip();
 	set_c0_status(IE_IRQ0);
 }
 
--- linux-ein-5.4.0.orig/arch/mips/sni/time.c
+++ linux-ein-5.4.0/arch/mips/sni/time.c
@@ -18,14 +18,14 @@
 {
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 12) = 0x34;
 	wmb();
-	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 0) = SNI_COUNTER0_DIV;
+	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 0) = SNI_COUNTER0_DIV & 0xff;
 	wmb();
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 0) = SNI_COUNTER0_DIV >> 8;
 	wmb();
 
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 12) = 0xb4;
 	wmb();
-	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 8) = SNI_COUNTER2_DIV;
+	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 8) = SNI_COUNTER2_DIV & 0xff;
 	wmb();
 	*(volatile u8 *)(A20R_PT_CLOCK_BASE + 8) = SNI_COUNTER2_DIV >> 8;
 	wmb();
--- linux-ein-5.4.0.orig/arch/mips/tools/elf-entry.c
+++ linux-ein-5.4.0/arch/mips/tools/elf-entry.c
@@ -51,11 +51,14 @@
 	nread = fread(&hdr, 1, sizeof(hdr), file);
 	if (nread != sizeof(hdr)) {
 		perror("Unable to read input file");
+		fclose(file);
 		return EXIT_FAILURE;
 	}
 
-	if (memcmp(hdr.ehdr32.e_ident, ELFMAG, SELFMAG))
+	if (memcmp(hdr.ehdr32.e_ident, ELFMAG, SELFMAG)) {
+		fclose(file);
 		die("Input is not an ELF\n");
+	}
 
 	switch (hdr.ehdr32.e_ident[EI_CLASS]) {
 	case ELFCLASS32:
@@ -67,6 +70,7 @@
 			entry = be32toh(hdr.ehdr32.e_entry);
 			break;
 		default:
+			fclose(file);
 			die("Invalid ELF encoding\n");
 		}
 
@@ -83,14 +87,17 @@
 			entry = be64toh(hdr.ehdr64.e_entry);
 			break;
 		default:
+			fclose(file);
 			die("Invalid ELF encoding\n");
 		}
 		break;
 
 	default:
+		fclose(file);
 		die("Invalid ELF class\n");
 	}
 
 	printf("0x%016" PRIx64 "\n", entry);
+	fclose(file);
 	return EXIT_SUCCESS;
 }
--- linux-ein-5.4.0.orig/arch/mips/vdso/Makefile
+++ linux-ein-5.4.0/arch/mips/vdso/Makefile
@@ -16,12 +16,9 @@
 	$(filter -march=%,$(KBUILD_CFLAGS)) \
 	$(filter -m%-float,$(KBUILD_CFLAGS)) \
 	$(filter -mno-loongson-%,$(KBUILD_CFLAGS)) \
+	$(CLANG_FLAGS) \
 	-D__VDSO__
 
-ifdef CONFIG_CC_IS_CLANG
-ccflags-vdso += $(filter --target=%,$(KBUILD_CFLAGS))
-endif
-
 #
 # The -fno-jump-tables flag only prevents the compiler from generating
 # jump tables but does not prevent the compiler from emitting absolute
--- linux-ein-5.4.0.orig/arch/mips/vdso/genvdso.c
+++ linux-ein-5.4.0/arch/mips/vdso/genvdso.c
@@ -122,6 +122,7 @@
 	if (fstat(fd, &stat) != 0) {
 		fprintf(stderr, "%s: Failed to stat '%s': %s\n", program_name,
 			path, strerror(errno));
+		close(fd);
 		return NULL;
 	}
 
@@ -130,6 +131,7 @@
 	if (addr == MAP_FAILED) {
 		fprintf(stderr, "%s: Failed to map '%s': %s\n", program_name,
 			path, strerror(errno));
+		close(fd);
 		return NULL;
 	}
 
@@ -139,6 +141,7 @@
 	if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG) != 0) {
 		fprintf(stderr, "%s: '%s' is not an ELF file\n", program_name,
 			path);
+		close(fd);
 		return NULL;
 	}
 
@@ -150,6 +153,7 @@
 	default:
 		fprintf(stderr, "%s: '%s' has invalid ELF class\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
@@ -161,6 +165,7 @@
 	default:
 		fprintf(stderr, "%s: '%s' has invalid ELF data order\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
@@ -168,15 +173,18 @@
 		fprintf(stderr,
 			"%s: '%s' has invalid ELF machine (expected EM_MIPS)\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	} else if (swap_uint16(ehdr->e_type) != ET_DYN) {
 		fprintf(stderr,
 			"%s: '%s' has invalid ELF type (expected ET_DYN)\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
 	*_size = stat.st_size;
+	close(fd);
 	return addr;
 }
 
@@ -280,10 +288,12 @@
 	/* Calculate and write symbol offsets to <output file> */
 	if (!get_symbols(dbg_vdso_path, dbg_vdso)) {
 		unlink(out_path);
+		fclose(out_file);
 		return EXIT_FAILURE;
 	}
 
 	fprintf(out_file, "};\n");
+	fclose(out_file);
 
 	return EXIT_SUCCESS;
 }
--- linux-ein-5.4.0.orig/arch/mips/vdso/vgettimeofday.c
+++ linux-ein-5.4.0/arch/mips/vdso/vgettimeofday.c
@@ -17,12 +17,22 @@
 	return __cvdso_clock_gettime32(clock, ts);
 }
 
+#ifdef CONFIG_MIPS_CLOCK_VSYSCALL
+
+/*
+ * This is behind the ifdef so that we don't provide the symbol when there's no
+ * possibility of there being a usable clocksource, because there's nothing we
+ * can do without it. When libc fails the symbol lookup it should fall back on
+ * the standard syscall path.
+ */
 int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
 			struct timezone *tz)
 {
 	return __cvdso_gettimeofday(tv, tz);
 }
 
+#endif /* CONFIG_MIPS_CLOCK_VSYSCALL */
+
 int __vdso_clock_getres(clockid_t clock_id,
 			struct old_timespec32 *res)
 {
@@ -43,12 +53,22 @@
 	return __cvdso_clock_gettime(clock, ts);
 }
 
+#ifdef CONFIG_MIPS_CLOCK_VSYSCALL
+
+/*
+ * This is behind the ifdef so that we don't provide the symbol when there's no
+ * possibility of there being a usable clocksource, because there's nothing we
+ * can do without it. When libc fails the symbol lookup it should fall back on
+ * the standard syscall path.
+ */
 int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
 			struct timezone *tz)
 {
 	return __cvdso_gettimeofday(tv, tz);
 }
 
+#endif /* CONFIG_MIPS_CLOCK_VSYSCALL */
+
 int __vdso_clock_getres(clockid_t clock_id,
 			struct __kernel_timespec *res)
 {
--- linux-ein-5.4.0.orig/arch/mips/vr41xx/common/icu.c
+++ linux-ein-5.4.0/arch/mips/vr41xx/common/icu.c
@@ -640,8 +640,6 @@
 
 	printk(KERN_ERR "spurious ICU interrupt: %04x,%04x\n", pend1, pend2);
 
-	atomic_inc(&irq_err_count);
-
 	return -1;
 }
 
--- linux-ein-5.4.0.orig/arch/nds32/include/asm/cacheflush.h
+++ linux-ein-5.4.0/arch/nds32/include/asm/cacheflush.h
@@ -9,7 +9,11 @@
 #define PG_dcache_dirty PG_arch_1
 
 void flush_icache_range(unsigned long start, unsigned long end);
+#define flush_icache_range flush_icache_range
+
 void flush_icache_page(struct vm_area_struct *vma, struct page *page);
+#define flush_icache_page flush_icache_page
+
 #ifdef CONFIG_CPU_CACHE_ALIASING
 void flush_cache_mm(struct mm_struct *mm);
 void flush_cache_dup_mm(struct mm_struct *mm);
@@ -40,12 +44,11 @@
 #define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&(mapping)->i_pages)
 
 #else
-#include <asm-generic/cacheflush.h>
-#undef flush_icache_range
-#undef flush_icache_page
-#undef flush_icache_user_range
 void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
 	                     unsigned long addr, int len);
+#define flush_icache_user_range flush_icache_user_range
+
+#include <asm-generic/cacheflush.h>
 #endif
 
 #endif /* __NDS32_CACHEFLUSH_H__ */
--- linux-ein-5.4.0.orig/arch/nds32/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/nds32/include/asm/uaccess.h
@@ -71,9 +71,7 @@
  * versions are void (ie, don't return a value as such).
  */
 
-#define get_user	__get_user					\
-
-#define __get_user(x, ptr)						\
+#define get_user(x, ptr)						\
 ({									\
 	long __gu_err = 0;						\
 	__get_user_check((x), (ptr), __gu_err);				\
@@ -86,6 +84,14 @@
 	(void)0;							\
 })
 
+#define __get_user(x, ptr)						\
+({									\
+	long __gu_err = 0;						\
+	const __typeof__(*(ptr)) __user *__p = (ptr);			\
+	__get_user_err((x), __p, (__gu_err));				\
+	__gu_err;							\
+})
+
 #define __get_user_check(x, ptr, err)					\
 ({									\
 	const __typeof__(*(ptr)) __user *__p = (ptr);			\
@@ -166,12 +172,18 @@
 		: "r"(addr), "i"(-EFAULT)				\
 		: "cc")
 
-#define put_user	__put_user					\
+#define put_user(x, ptr)						\
+({									\
+	long __pu_err = 0;						\
+	__put_user_check((x), (ptr), __pu_err);				\
+	__pu_err;							\
+})
 
 #define __put_user(x, ptr)						\
 ({									\
 	long __pu_err = 0;						\
-	__put_user_err((x), (ptr), __pu_err);				\
+	__typeof__(*(ptr)) __user *__p = (ptr);				\
+	__put_user_err((x), __p, __pu_err);				\
 	__pu_err;							\
 })
 
--- linux-ein-5.4.0.orig/arch/nds32/kernel/dma.c
+++ linux-ein-5.4.0/arch/nds32/kernel/dma.c
@@ -46,8 +46,8 @@
 	} while (left);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_FROM_DEVICE:
@@ -61,8 +61,8 @@
 	}
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_TO_DEVICE:
--- linux-ein-5.4.0.orig/arch/nds32/kernel/fpu.c
+++ linux-ein-5.4.0/arch/nds32/kernel/fpu.c
@@ -223,7 +223,7 @@
 		}
 	} else if (fpcsr & FPCSR_mskRIT) {
 		if (!user_mode(regs))
-			do_exit(SIGILL);
+			make_task_dead(SIGILL);
 		si_signo = SIGILL;
 	}
 
--- linux-ein-5.4.0.orig/arch/nds32/kernel/perf_event_cpu.c
+++ linux-ein-5.4.0/arch/nds32/kernel/perf_event_cpu.c
@@ -1363,6 +1363,7 @@
 perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 		    struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 	unsigned long gp = 0;
 	unsigned long lp = 0;
@@ -1371,7 +1372,7 @@
 
 	leaf_fp = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -1479,9 +1480,10 @@
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 		      struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stackframe fr;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* We don't support guest os callchain now */
 		return;
 	}
@@ -1493,20 +1495,23 @@
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
 	/* However, NDS32 does not support virtualization */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return instruction_pointer(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
 	/* However, NDS32 does not support virtualization */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
--- linux-ein-5.4.0.orig/arch/nds32/kernel/traps.c
+++ linux-ein-5.4.0/arch/nds32/kernel/traps.c
@@ -184,7 +184,7 @@
 
 	bust_spinlocks(0);
 	spin_unlock_irq(&die_lock);
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 EXPORT_SYMBOL(die);
@@ -288,7 +288,7 @@
 	pr_emerg("unhandled_interruption\n");
 	show_regs(regs);
 	if (!user_mode(regs))
-		do_exit(SIGKILL);
+		make_task_dead(SIGKILL);
 	force_sig(SIGKILL);
 }
 
@@ -299,7 +299,7 @@
 		 addr, type);
 	show_regs(regs);
 	if (!user_mode(regs))
-		do_exit(SIGKILL);
+		make_task_dead(SIGKILL);
 	force_sig(SIGKILL);
 }
 
@@ -326,7 +326,7 @@
 	pr_emerg("Reserved Instruction\n");
 	show_regs(regs);
 	if (!user_mode(regs))
-		do_exit(SIGILL);
+		make_task_dead(SIGILL);
 	force_sig(SIGILL);
 }
 
--- linux-ein-5.4.0.orig/arch/nds32/mm/cacheflush.c
+++ linux-ein-5.4.0/arch/nds32/mm/cacheflush.c
@@ -239,7 +239,7 @@
 {
 	struct address_space *mapping;
 
-	mapping = page_mapping(page);
+	mapping = page_mapping_file(page);
 	if (mapping && !mapping_mapped(mapping))
 		set_bit(PG_dcache_dirty, &page->flags);
 	else {
--- linux-ein-5.4.0.orig/arch/nds32/mm/mmap.c
+++ linux-ein-5.4.0/arch/nds32/mm/mmap.c
@@ -59,7 +59,7 @@
 
 		vma = find_vma(mm, addr);
 		if (TASK_SIZE - len >= addr &&
-		    (!vma || addr + len <= vma->vm_start))
+		    (!vma || addr + len <= vm_start_gap(vma)))
 			return addr;
 	}
 
--- linux-ein-5.4.0.orig/arch/nios2/boot/Makefile
+++ linux-ein-5.4.0/arch/nios2/boot/Makefile
@@ -20,7 +20,7 @@
 $(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE
 	$(call if_changed,gzip)
 
-$(obj)/vmImage: $(obj)/vmlinux.gz
+$(obj)/vmImage: $(obj)/vmlinux.gz FORCE
 	$(call if_changed,uimage)
 	@$(kecho) 'Kernel: $@ is ready'
 
--- linux-ein-5.4.0.orig/arch/nios2/boot/dts/10m50_devboard.dts
+++ linux-ein-5.4.0/arch/nios2/boot/dts/10m50_devboard.dts
@@ -97,7 +97,7 @@
 			rx-fifo-depth = <8192>;
 			tx-fifo-depth = <8192>;
 			address-bits = <48>;
-			max-frame-size = <1518>;
+			max-frame-size = <1500>;
 			local-mac-address = [00 00 00 00 00 00];
 			altr,has-supplementary-unicast;
 			altr,enable-sup-addr = <1>;
--- linux-ein-5.4.0.orig/arch/nios2/boot/dts/3c120_devboard.dts
+++ linux-ein-5.4.0/arch/nios2/boot/dts/3c120_devboard.dts
@@ -106,7 +106,7 @@
 				interrupt-names = "rx_irq", "tx_irq";
 				rx-fifo-depth = <8192>;
 				tx-fifo-depth = <8192>;
-				max-frame-size = <1518>;
+				max-frame-size = <1500>;
 				local-mac-address = [ 00 00 00 00 00 00 ];
 				phy-mode = "rgmii-id";
 				phy-handle = <&phy0>;
--- linux-ein-5.4.0.orig/arch/nios2/include/asm/entry.h
+++ linux-ein-5.4.0/arch/nios2/include/asm/entry.h
@@ -50,7 +50,8 @@
 	stw	r13, PT_R13(sp)
 	stw	r14, PT_R14(sp)
 	stw	r15, PT_R15(sp)
-	stw	r2, PT_ORIG_R2(sp)
+	movi	r24, -1
+	stw	r24, PT_ORIG_R2(sp)
 	stw	r7, PT_ORIG_R7(sp)
 
 	stw	ra, PT_RA(sp)
--- linux-ein-5.4.0.orig/arch/nios2/include/asm/irqflags.h
+++ linux-ein-5.4.0/arch/nios2/include/asm/irqflags.h
@@ -9,7 +9,7 @@
 
 static inline unsigned long arch_local_save_flags(void)
 {
-	return RDCTL(CTL_STATUS);
+	return RDCTL(CTL_FSTATUS);
 }
 
 /*
@@ -18,7 +18,7 @@
  */
 static inline void arch_local_irq_restore(unsigned long flags)
 {
-	WRCTL(CTL_STATUS, flags);
+	WRCTL(CTL_FSTATUS, flags);
 }
 
 static inline void arch_local_irq_disable(void)
--- linux-ein-5.4.0.orig/arch/nios2/include/asm/ptrace.h
+++ linux-ein-5.4.0/arch/nios2/include/asm/ptrace.h
@@ -74,6 +74,8 @@
 	((struct pt_regs *)((unsigned long)current_thread_info() + THREAD_SIZE)\
 		- 1)
 
+#define force_successful_syscall_return() (current_pt_regs()->orig_r2 = -1)
+
 int do_syscall_trace_enter(void);
 void do_syscall_trace_exit(void);
 #endif /* __ASSEMBLY__ */
--- linux-ein-5.4.0.orig/arch/nios2/include/asm/registers.h
+++ linux-ein-5.4.0/arch/nios2/include/asm/registers.h
@@ -11,7 +11,7 @@
 #endif
 
 /* control register numbers */
-#define CTL_STATUS	0
+#define CTL_FSTATUS	0
 #define CTL_ESTATUS	1
 #define CTL_BSTATUS	2
 #define CTL_IENABLE	3
--- linux-ein-5.4.0.orig/arch/nios2/include/asm/timex.h
+++ linux-ein-5.4.0/arch/nios2/include/asm/timex.h
@@ -8,5 +8,8 @@
 typedef unsigned long cycles_t;
 
 extern cycles_t get_cycles(void);
+#define get_cycles get_cycles
+
+#define random_get_entropy() (((unsigned long)get_cycles()) ?: random_get_entropy_fallback())
 
 #endif
--- linux-ein-5.4.0.orig/arch/nios2/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/nios2/include/asm/uaccess.h
@@ -89,6 +89,7 @@
 /* Optimized macros */
 #define __get_user_asm(val, insn, addr, err)				\
 {									\
+	unsigned long __gu_val;						\
 	__asm__ __volatile__(						\
 	"       movi    %0, %3\n"					\
 	"1:   " insn " %1, 0(%2)\n"					\
@@ -97,14 +98,20 @@
 	"       .section __ex_table,\"a\"\n"				\
 	"       .word 1b, 2b\n"						\
 	"       .previous"						\
-	: "=&r" (err), "=r" (val)					\
+	: "=&r" (err), "=r" (__gu_val)					\
 	: "r" (addr), "i" (-EFAULT));					\
+	val = (__force __typeof__(*(addr)))__gu_val;			\
 }
 
-#define __get_user_unknown(val, size, ptr, err) do {			\
+extern void __get_user_unknown(void);
+
+#define __get_user_8(val, ptr, err) do {				\
+	u64 __val = 0;							\
 	err = 0;							\
-	if (__copy_from_user(&(val), ptr, size)) {			\
+	if (raw_copy_from_user(&(__val), ptr, sizeof(val))) {		\
 		err = -EFAULT;						\
+	} else {							\
+		val = (typeof(val))(typeof((val) - (val)))__val;	\
 	}								\
 	} while (0)
 
@@ -120,8 +127,11 @@
 	case 4:								\
 		__get_user_asm(val, "ldw", ptr, err);			\
 		break;							\
+	case 8:								\
+		__get_user_8(val, ptr, err);				\
+		break;							\
 	default:							\
-		__get_user_unknown(val, size, ptr, err);		\
+		__get_user_unknown();					\
 		break;							\
 	}								\
 } while (0)
@@ -130,9 +140,7 @@
 	({								\
 	long __gu_err = -EFAULT;					\
 	const __typeof__(*(ptr)) __user *__gu_ptr = (ptr);		\
-	unsigned long __gu_val = 0;					\
-	__get_user_common(__gu_val, sizeof(*(ptr)), __gu_ptr, __gu_err);\
-	(x) = (__force __typeof__(x))__gu_val;				\
+	__get_user_common(x, sizeof(*(ptr)), __gu_ptr, __gu_err);	\
 	__gu_err;							\
 	})
 
@@ -140,11 +148,9 @@
 ({									\
 	long __gu_err = -EFAULT;					\
 	const __typeof__(*(ptr)) __user *__gu_ptr = (ptr);		\
-	unsigned long __gu_val = 0;					\
 	if (access_ok( __gu_ptr, sizeof(*__gu_ptr)))	\
-		__get_user_common(__gu_val, sizeof(*__gu_ptr),		\
+		__get_user_common(x, sizeof(*__gu_ptr),			\
 			__gu_ptr, __gu_err);				\
-	(x) = (__force __typeof__(x))__gu_val;				\
 	__gu_err;							\
 })
 
--- linux-ein-5.4.0.orig/arch/nios2/kernel/entry.S
+++ linux-ein-5.4.0/arch/nios2/kernel/entry.S
@@ -185,6 +185,7 @@
 	ldw	r5, PT_R5(sp)
 
 local_restart:
+	stw	r2, PT_ORIG_R2(sp)
 	/* Check that the requested system call is within limits */
 	movui	r1, __NR_syscalls
 	bgeu	r2, r1, ret_invsyscall
@@ -192,7 +193,6 @@
 	movhi	r11, %hiadj(sys_call_table)
 	add	r1, r1, r11
 	ldw	r1, %lo(sys_call_table)(r1)
-	beq	r1, r0, ret_invsyscall
 
 	/* Check if we are being traced */
 	GET_THREAD_INFO r11
@@ -213,6 +213,9 @@
 translate_rc_and_ret:
 	movi	r1, 0
 	bge	r2, zero, 3f
+	ldw	r1, PT_ORIG_R2(sp)
+	addi	r1, r1, 1
+	beq	r1, zero, 3f
 	sub	r2, zero, r2
 	movi	r1, 1
 3:
@@ -255,9 +258,9 @@
 	ldw	r6, PT_R6(sp)
 	ldw	r7, PT_R7(sp)
 
-	/* Fetch the syscall function, we don't need to check the boundaries
-	 * since this is already done.
-	 */
+	/* Fetch the syscall function. */
+	movui	r1, __NR_syscalls
+	bgeu	r2, r1, traced_invsyscall
 	slli	r1, r2, 2
 	movhi	r11,%hiadj(sys_call_table)
 	add	r1, r1, r11
@@ -276,6 +279,9 @@
 translate_rc_and_ret2:
 	movi	r1, 0
 	bge	r2, zero, 4f
+	ldw	r1, PT_ORIG_R2(sp)
+	addi	r1, r1, 1
+	beq	r1, zero, 4f
 	sub	r2, zero, r2
 	movi	r1, 1
 4:
@@ -287,6 +293,11 @@
 	RESTORE_SWITCH_STACK
 	br	ret_from_exception
 
+	/* If the syscall number was invalid return ENOSYS */
+traced_invsyscall:
+	movi	r2, -ENOSYS
+	br	translate_rc_and_ret2
+
 Luser_return:
 	GET_THREAD_INFO	r11			/* get thread_info pointer */
 	ldw	r10, TI_FLAGS(r11)		/* get thread_info->flags */
@@ -336,9 +347,6 @@
 	/* skip if no interrupt is pending */
 	beq	r12, r0, ret_from_interrupt
 
-	movi	r24, -1
-	stw	r24, PT_ORIG_R2(sp)
-
 	/*
 	 * Process an external hardware interrupt.
 	 */
--- linux-ein-5.4.0.orig/arch/nios2/kernel/signal.c
+++ linux-ein-5.4.0/arch/nios2/kernel/signal.c
@@ -240,7 +240,7 @@
 	/*
 	 * If we were from a system call, check for system call restarting...
 	 */
-	if (regs->orig_r2 >= 0) {
+	if (regs->orig_r2 >= 0 && regs->r1) {
 		continue_addr = regs->ea;
 		restart_addr = continue_addr - 4;
 		retval = regs->r2;
@@ -261,6 +261,7 @@
 			regs->ea = restart_addr;
 			break;
 		}
+		regs->orig_r2 = -1;
 	}
 
 	if (get_signal(&ksig)) {
--- linux-ein-5.4.0.orig/arch/nios2/kernel/syscall_table.c
+++ linux-ein-5.4.0/arch/nios2/kernel/syscall_table.c
@@ -13,5 +13,6 @@
 #define __SYSCALL(nr, call) [nr] = (call),
 
 void *sys_call_table[__NR_syscalls] = {
+	[0 ... __NR_syscalls-1] = sys_ni_syscall,
 #include <asm/unistd.h>
 };
--- linux-ein-5.4.0.orig/arch/nios2/kernel/traps.c
+++ linux-ein-5.4.0/arch/nios2/kernel/traps.c
@@ -37,10 +37,10 @@
 	show_regs(regs);
 	spin_unlock_irq(&die_lock);
 	/*
-	 * do_exit() should take care of panic'ing from an interrupt
+	 * make_task_dead() should take care of panic'ing from an interrupt
 	 * context so we don't handle it here
 	 */
-	do_exit(err);
+	make_task_dead(err);
 }
 
 void _exception(int signo, struct pt_regs *regs, int code, unsigned long addr)
--- linux-ein-5.4.0.orig/arch/nios2/mm/dma-mapping.c
+++ linux-ein-5.4.0/arch/nios2/mm/dma-mapping.c
@@ -18,8 +18,8 @@
 #include <linux/cache.h>
 #include <asm/cacheflush.h>
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	void *vaddr = phys_to_virt(paddr);
 
@@ -42,8 +42,8 @@
 	}
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	void *vaddr = phys_to_virt(paddr);
 
--- linux-ein-5.4.0.orig/arch/nios2/platform/Kconfig.platform
+++ linux-ein-5.4.0/arch/nios2/platform/Kconfig.platform
@@ -37,6 +37,7 @@
 
 config NIOS2_DTB_SOURCE_BOOL
 	bool "Compile and link device tree into kernel image"
+	depends on !COMPILE_TEST
 	help
 	  This allows you to specify a dts (device tree source) file
 	  which will be compiled and linked into the kernel image.
--- linux-ein-5.4.0.orig/arch/openrisc/include/asm/barrier.h
+++ linux-ein-5.4.0/arch/openrisc/include/asm/barrier.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_BARRIER_H
+#define __ASM_BARRIER_H
+
+#define mb() asm volatile ("l.msync" ::: "memory")
+
+#include <asm-generic/barrier.h>
+
+#endif /* __ASM_BARRIER_H */
--- linux-ein-5.4.0.orig/arch/openrisc/include/asm/timex.h
+++ linux-ein-5.4.0/arch/openrisc/include/asm/timex.h
@@ -23,6 +23,7 @@
 {
 	return mfspr(SPR_TTCR);
 }
+#define get_cycles get_cycles
 
 /* This isn't really used any more */
 #define CLOCK_TICK_RATE 1000
--- linux-ein-5.4.0.orig/arch/openrisc/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/openrisc/include/asm/uaccess.h
@@ -164,19 +164,19 @@
 
 #define __get_user_nocheck(x, ptr, size)			\
 ({								\
-	long __gu_err, __gu_val;				\
-	__get_user_size(__gu_val, (ptr), (size), __gu_err);	\
-	(x) = (__force __typeof__(*(ptr)))__gu_val;		\
+	long __gu_err;						\
+	__get_user_size((x), (ptr), (size), __gu_err);		\
 	__gu_err;						\
 })
 
 #define __get_user_check(x, ptr, size)					\
 ({									\
-	long __gu_err = -EFAULT, __gu_val = 0;				\
-	const __typeof__(*(ptr)) * __gu_addr = (ptr);			\
-	if (access_ok(__gu_addr, size))			\
-		__get_user_size(__gu_val, __gu_addr, (size), __gu_err);	\
-	(x) = (__force __typeof__(*(ptr)))__gu_val;			\
+	long __gu_err = -EFAULT;					\
+	const __typeof__(*(ptr)) *__gu_addr = (ptr);			\
+	if (access_ok(__gu_addr, size))					\
+		__get_user_size((x), __gu_addr, (size), __gu_err);	\
+	else								\
+		(x) = (__typeof__(*(ptr))) 0;				\
 	__gu_err;							\
 })
 
@@ -190,11 +190,13 @@
 	case 2: __get_user_asm(x, ptr, retval, "l.lhz"); break;		\
 	case 4: __get_user_asm(x, ptr, retval, "l.lwz"); break;		\
 	case 8: __get_user_asm2(x, ptr, retval); break;			\
-	default: (x) = __get_user_bad();				\
+	default: (x) = (__typeof__(*(ptr)))__get_user_bad();		\
 	}								\
 } while (0)
 
 #define __get_user_asm(x, addr, err, op)		\
+{							\
+	unsigned long __gu_tmp;				\
 	__asm__ __volatile__(				\
 		"1:	"op" %1,0(%2)\n"		\
 		"2:\n"					\
@@ -208,10 +210,14 @@
 		"	.align 2\n"			\
 		"	.long 1b,3b\n"			\
 		".previous"				\
-		: "=r"(err), "=r"(x)			\
-		: "r"(addr), "i"(-EFAULT), "0"(err))
+		: "=r"(err), "=r"(__gu_tmp)		\
+		: "r"(addr), "i"(-EFAULT), "0"(err));	\
+	(x) = (__typeof__(*(addr)))__gu_tmp;		\
+}
 
 #define __get_user_asm2(x, addr, err)			\
+{							\
+	unsigned long long __gu_tmp;			\
 	__asm__ __volatile__(				\
 		"1:	l.lwz %1,0(%2)\n"		\
 		"2:	l.lwz %H1,4(%2)\n"		\
@@ -228,8 +234,11 @@
 		"	.long 1b,4b\n"			\
 		"	.long 2b,4b\n"			\
 		".previous"				\
-		: "=r"(err), "=&r"(x)			\
-		: "r"(addr), "i"(-EFAULT), "0"(err))
+		: "=r"(err), "=&r"(__gu_tmp)		\
+		: "r"(addr), "i"(-EFAULT), "0"(err));	\
+	(x) = (__typeof__(*(addr)))(			\
+		(__typeof__((x)-(x)))__gu_tmp);		\
+}
 
 /* more complex routines */
 
--- linux-ein-5.4.0.orig/arch/openrisc/kernel/dma.c
+++ linux-ein-5.4.0/arch/openrisc/kernel/dma.c
@@ -125,7 +125,7 @@
 	free_pages_exact(vaddr, size);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t addr, size_t size,
+void arch_sync_dma_for_device(phys_addr_t addr, size_t size,
 		enum dma_data_direction dir)
 {
 	unsigned long cl;
--- linux-ein-5.4.0.orig/arch/openrisc/kernel/entry.S
+++ linux-ein-5.4.0/arch/openrisc/kernel/entry.S
@@ -173,7 +173,6 @@
 	l.sw    PT_GPR28(r1),r28					;\
 	l.sw    PT_GPR29(r1),r29					;\
 	/* r30 already save */					;\
-/*        l.sw    PT_GPR30(r1),r30*/					;\
 	l.sw    PT_GPR31(r1),r31					;\
 	TRACE_IRQS_OFF_ENTRY						;\
 	/* Store -1 in orig_gpr11 for non-syscall exceptions */	;\
@@ -211,9 +210,8 @@
 	l.sw    PT_GPR27(r1),r27					;\
 	l.sw    PT_GPR28(r1),r28					;\
 	l.sw    PT_GPR29(r1),r29					;\
-	/* r31 already saved */					;\
-	l.sw    PT_GPR30(r1),r30					;\
-/*        l.sw    PT_GPR31(r1),r31	*/				;\
+	/* r30 already saved */						;\
+	l.sw    PT_GPR31(r1),r31					;\
 	/* Store -1 in orig_gpr11 for non-syscall exceptions */	;\
 	l.addi	r30,r0,-1					;\
 	l.sw	PT_ORIG_GPR11(r1),r30				;\
@@ -547,6 +545,7 @@
 	l.bnf	1f			// ext irq enabled, all ok.
 	l.nop
 
+#ifdef CONFIG_PRINTK
 	l.addi  r1,r1,-0x8
 	l.movhi r3,hi(42f)
 	l.ori	r3,r3,lo(42f)
@@ -560,6 +559,7 @@
 		.string "\n\rESR interrupt bug: in _external_irq_handler (ESR %x)\n\r"
 		.align 4
 	.previous
+#endif
 
 	l.ori	r4,r4,SPR_SR_IEE	// fix the bug
 //	l.sw	PT_SR(r1),r4
@@ -1166,13 +1166,13 @@
 	l.movhi	r29,hi(sys_clone)
 	l.ori	r29,r29,lo(sys_clone)
 	l.j	_fork_save_extra_regs_and_call
-	 l.addi	r7,r1,0
+	 l.nop
 
 ENTRY(__sys_fork)
 	l.movhi	r29,hi(sys_fork)
 	l.ori	r29,r29,lo(sys_fork)
 	l.j	_fork_save_extra_regs_and_call
-	 l.addi	r3,r1,0
+	 l.nop
 
 ENTRY(sys_rt_sigreturn)
 	l.jal	_sys_rt_sigreturn
--- linux-ein-5.4.0.orig/arch/openrisc/kernel/head.S
+++ linux-ein-5.4.0/arch/openrisc/kernel/head.S
@@ -521,6 +521,15 @@
 	l.ori	r3,r0,0x1
 	l.mtspr	r0,r3,SPR_SR
 
+	/*
+	 * Start the TTCR as early as possible, so that the RNG can make use of
+	 * measurements of boot time from the earliest opportunity. Especially
+	 * important is that the TTCR does not return zero by the time we reach
+	 * rand_initialize().
+	 */
+	l.movhi r3,hi(SPR_TTMR_CR)
+	l.mtspr r0,r3,SPR_TTMR
+
 	CLEAR_GPR(r1)
 	CLEAR_GPR(r2)
 	CLEAR_GPR(r3)
--- linux-ein-5.4.0.orig/arch/openrisc/kernel/setup.c
+++ linux-ein-5.4.0/arch/openrisc/kernel/setup.c
@@ -274,6 +274,8 @@
 	pr_cont("%lu.%02lu BogoMIPS (lpj=%lu)\n",
 		loops_per_jiffy / (500000 / HZ),
 		(loops_per_jiffy / (5000 / HZ)) % 100, loops_per_jiffy);
+
+	of_node_put(cpu);
 }
 
 void __init setup_arch(char **cmdline_p)
--- linux-ein-5.4.0.orig/arch/openrisc/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/openrisc/kernel/stacktrace.c
@@ -13,6 +13,7 @@
 #include <linux/export.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
+#include <linux/sched/task_stack.h>
 #include <linux/stacktrace.h>
 
 #include <asm/processor.h>
@@ -68,12 +69,25 @@
 {
 	unsigned long *sp = NULL;
 
+	if (!try_get_task_stack(tsk))
+		return;
+
 	if (tsk == current)
 		sp = (unsigned long *) &sp;
-	else
-		sp = (unsigned long *) KSTK_ESP(tsk);
+	else {
+		unsigned long ksp;
+
+		/* Locate stack from kernel context */
+		ksp = task_thread_info(tsk)->ksp;
+		ksp += STACK_FRAME_OVERHEAD;	/* redzone */
+		ksp += sizeof(struct pt_regs);
+
+		sp = (unsigned long *) ksp;
+	}
 
 	unwind_stack(trace, sp, save_stack_address_nosched);
+
+	put_task_stack(tsk);
 }
 EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
 
--- linux-ein-5.4.0.orig/arch/openrisc/kernel/traps.c
+++ linux-ein-5.4.0/arch/openrisc/kernel/traps.c
@@ -218,7 +218,7 @@
 	__asm__ __volatile__("l.nop   1");
 	do {} while (1);
 #endif
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 /* This is normally the 'Oops' routine */
--- linux-ein-5.4.0.orig/arch/openrisc/mm/cache.c
+++ linux-ein-5.4.0/arch/openrisc/mm/cache.c
@@ -16,7 +16,7 @@
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
 
-static void cache_loop(struct page *page, const unsigned int reg)
+static __always_inline void cache_loop(struct page *page, const unsigned int reg)
 {
 	unsigned long paddr = page_to_pfn(page) << PAGE_SHIFT;
 	unsigned long line = paddr & ~(L1_CACHE_BYTES - 1);
--- linux-ein-5.4.0.orig/arch/parisc/Kconfig
+++ linux-ein-5.4.0/arch/parisc/Kconfig
@@ -11,6 +11,7 @@
 	select ARCH_WANT_FRAME_POINTERS
 	select ARCH_HAS_ELF_RANDOMIZE
 	select ARCH_HAS_STRICT_KERNEL_RWX
+	select ARCH_HAS_STRICT_MODULE_RWX
 	select ARCH_HAS_UBSAN_SANITIZE_ALL
 	select ARCH_NO_SG_CHAIN
 	select ARCH_SUPPORTS_MEMORY_FAILURE
@@ -62,6 +63,7 @@
 	select HAVE_FTRACE_MCOUNT_RECORD if HAVE_DYNAMIC_FTRACE
 	select HAVE_KPROBES_ON_FTRACE
 	select HAVE_DYNAMIC_FTRACE_WITH_REGS
+	select HAVE_COPY_THREAD_TLS
 
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
--- linux-ein-5.4.0.orig/arch/parisc/Makefile
+++ linux-ein-5.4.0/arch/parisc/Makefile
@@ -17,7 +17,12 @@
 # Mike Shaver, Helge Deller and Martin K. Petersen
 #
 
+ifdef CONFIG_PARISC_SELF_EXTRACT
+boot := arch/parisc/boot
+KBUILD_IMAGE := $(boot)/bzImage
+else
 KBUILD_IMAGE := vmlinuz
+endif
 
 NM		= sh $(srctree)/arch/parisc/nm
 CHECKFLAGS	+= -D__hppa__=1
@@ -60,7 +65,6 @@
 		 -DFTRACE_PATCHABLE_FUNCTION_SIZE=$(NOP_COUNT)
 
 CC_FLAGS_FTRACE := -fpatchable-function-entry=$(NOP_COUNT),$(shell echo $$(($(NOP_COUNT)-1)))
-KBUILD_LDS_MODULE += $(srctree)/arch/parisc/kernel/module.lds
 endif
 
 OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
@@ -156,7 +160,7 @@
 	$(OBJCOPY) $(boot)/bzImage $@
 else
 vmlinuz: vmlinux
-	@gzip -cf -9 $< > $@
+	@$(KGZIP) -cf -9 $< > $@
 endif
 
 install:
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/atomic.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/atomic.h
@@ -212,6 +212,8 @@
 	_atomic_spin_unlock_irqrestore(v, flags);
 }
 
+#define atomic64_set_release(v, i)	atomic64_set((v), (i))
+
 static __inline__ s64
 atomic64_read(const atomic64_t *v)
 {
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/barrier.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/barrier.h
@@ -26,6 +26,67 @@
 #define __smp_rmb()	mb()
 #define __smp_wmb()	mb()
 
+#define __smp_store_release(p, v)					\
+do {									\
+	typeof(p) __p = (p);						\
+        union { typeof(*p) __val; char __c[1]; } __u =			\
+                { .__val = (__force typeof(*p)) (v) };			\
+	compiletime_assert_atomic_type(*p);				\
+	switch (sizeof(*p)) {						\
+	case 1:								\
+		asm volatile("stb,ma %0,0(%1)"				\
+				: : "r"(*(__u8 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 2:								\
+		asm volatile("sth,ma %0,0(%1)"				\
+				: : "r"(*(__u16 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 4:								\
+		asm volatile("stw,ma %0,0(%1)"				\
+				: : "r"(*(__u32 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 8:								\
+		if (IS_ENABLED(CONFIG_64BIT))				\
+			asm volatile("std,ma %0,0(%1)"			\
+				: : "r"(*(__u64 *)__u.__c), "r"(__p)	\
+				: "memory");				\
+		break;							\
+	}								\
+} while (0)
+
+#define __smp_load_acquire(p)						\
+({									\
+	union { typeof(*p) __val; char __c[1]; } __u;			\
+	typeof(p) __p = (p);						\
+	compiletime_assert_atomic_type(*p);				\
+	switch (sizeof(*p)) {						\
+	case 1:								\
+		asm volatile("ldb,ma 0(%1),%0"				\
+				: "=r"(*(__u8 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 2:								\
+		asm volatile("ldh,ma 0(%1),%0"				\
+				: "=r"(*(__u16 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 4:								\
+		asm volatile("ldw,ma 0(%1),%0"				\
+				: "=r"(*(__u32 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	case 8:								\
+		if (IS_ENABLED(CONFIG_64BIT))				\
+			asm volatile("ldd,ma 0(%1),%0"			\
+				: "=r"(*(__u64 *)__u.__c) : "r"(__p)	\
+				: "memory");				\
+		break;							\
+	}								\
+	__u.__val;							\
+})
 #include <asm-generic/barrier.h>
 
 #endif /* !__ASSEMBLY__ */
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/cacheflush.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/cacheflush.h
@@ -57,6 +57,11 @@
 
 #define flush_dcache_mmap_lock(mapping)		xa_lock_irq(&mapping->i_pages)
 #define flush_dcache_mmap_unlock(mapping)	xa_unlock_irq(&mapping->i_pages)
+#define flush_dcache_mmap_lock_irqsave(mapping, flags)		\
+		xa_lock_irqsave(&mapping->i_pages, flags)
+#define flush_dcache_mmap_unlock_irqrestore(mapping, flags)	\
+		xa_unlock_irqrestore(&mapping->i_pages, flags)
+
 
 #define flush_icache_page(vma,page)	do { 		\
 	flush_kernel_dcache_page(page);			\
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/cmpxchg.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/cmpxchg.h
@@ -44,8 +44,14 @@
 **		if (((unsigned long)p & 0xf) == 0)
 **			return __ldcw(p);
 */
-#define xchg(ptr, x) \
-	((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), sizeof(*(ptr))))
+#define xchg(ptr, x)							\
+({									\
+	__typeof__(*(ptr)) __ret;					\
+	__typeof__(*(ptr)) _x_ = (x);					\
+	__ret = (__typeof__(*(ptr)))					\
+		__xchg((unsigned long)_x_, (ptr), sizeof(*(ptr)));	\
+	__ret;								\
+})
 
 /* bug catcher for when unsupported size is used - won't link */
 extern void __cmpxchg_called_with_bad_pointer(void);
@@ -54,6 +60,7 @@
 extern unsigned long __cmpxchg_u32(volatile unsigned int *m, unsigned int old,
 				   unsigned int new_);
 extern u64 __cmpxchg_u64(volatile u64 *ptr, u64 old, u64 new_);
+extern u8 __cmpxchg_u8(volatile u8 *ptr, u8 old, u8 new_);
 
 /* don't worry...optimizer will get rid of most of this */
 static inline unsigned long
@@ -65,6 +72,7 @@
 #endif
 	case 4: return __cmpxchg_u32((unsigned int *)ptr,
 				     (unsigned int)old, (unsigned int)new_);
+	case 1: return __cmpxchg_u8((u8 *)ptr, old & 0xff, new_ & 0xff);
 	}
 	__cmpxchg_called_with_bad_pointer();
 	return old;
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/hardware.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/hardware.h
@@ -10,12 +10,12 @@
 #define SVERSION_ANY_ID		PA_SVERSION_ANY_ID
 
 struct hp_hardware {
-	unsigned short	hw_type:5;	/* HPHW_xxx */
-	unsigned short	hversion;
-	unsigned long	sversion:28;
-	unsigned short	opt;
-	const char	name[80];	/* The hardware description */
-};
+	unsigned int	hw_type:8;	/* HPHW_xxx */
+	unsigned int	hversion:12;
+	unsigned int	sversion:12;
+	unsigned char	opt;
+	unsigned char	name[59];	/* The hardware description */
+} __packed;
 
 struct parisc_device;
 
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/kexec.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/kexec.h
@@ -2,8 +2,6 @@
 #ifndef _ASM_PARISC_KEXEC_H
 #define _ASM_PARISC_KEXEC_H
 
-#ifdef CONFIG_KEXEC
-
 /* Maximum physical address we can use pages from */
 #define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
 /* Maximum address we can reach in physical address mode */
@@ -32,6 +30,4 @@
 
 #endif /* __ASSEMBLY__ */
 
-#endif /* CONFIG_KEXEC */
-
 #endif /* _ASM_PARISC_KEXEC_H */
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/ldcw.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/ldcw.h
@@ -2,14 +2,28 @@
 #ifndef __PARISC_LDCW_H
 #define __PARISC_LDCW_H
 
-#ifndef CONFIG_PA20
 /* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data,
    and GCC only guarantees 8-byte alignment for stack locals, we can't
    be assured of 16-byte alignment for atomic lock data even if we
    specify "__attribute ((aligned(16)))" in the type declaration.  So,
    we use a struct containing an array of four ints for the atomic lock
    type and dynamically select the 16-byte aligned int from the array
-   for the semaphore.  */
+   for the semaphore. */
+
+/* From: "Jim Hull" <jim.hull of hp.com>
+   I've attached a summary of the change, but basically, for PA 2.0, as
+   long as the ",CO" (coherent operation) completer is implemented, then the
+   16-byte alignment requirement for ldcw and ldcd is relaxed, and instead
+   they only require "natural" alignment (4-byte for ldcw, 8-byte for
+   ldcd).
+
+   Although the cache control hint is accepted by all PA 2.0 processors,
+   it is only implemented on PA8800/PA8900 CPUs. Prior PA8X00 CPUs still
+   require 16-byte alignment. If the address is unaligned, the operation
+   of the instruction is undefined. The ldcw instruction does not generate
+   unaligned data reference traps so misaligned accesses are not detected.
+   This hid the problem for years. So, restore the 16-byte alignment dropped
+   by Kyle McMartin in "Remove __ldcw_align for PA-RISC 2.0 processors". */
 
 #define __PA_LDCW_ALIGNMENT	16
 #define __PA_LDCW_ALIGN_ORDER	4
@@ -19,22 +33,12 @@
 		& ~(__PA_LDCW_ALIGNMENT - 1);			\
 	(volatile unsigned int *) __ret;			\
 })
-#define __LDCW	"ldcw"
 
-#else /*CONFIG_PA20*/
-/* From: "Jim Hull" <jim.hull of hp.com>
-   I've attached a summary of the change, but basically, for PA 2.0, as
-   long as the ",CO" (coherent operation) completer is specified, then the
-   16-byte alignment requirement for ldcw and ldcd is relaxed, and instead
-   they only require "natural" alignment (4-byte for ldcw, 8-byte for
-   ldcd). */
-
-#define __PA_LDCW_ALIGNMENT	4
-#define __PA_LDCW_ALIGN_ORDER	2
-#define __ldcw_align(a) (&(a)->slock)
+#ifdef CONFIG_PA20
 #define __LDCW	"ldcw,co"
-
-#endif /*!CONFIG_PA20*/
+#else
+#define __LDCW	"ldcw"
+#endif
 
 /* LDCW, the only atomic read-write operation PA-RISC has. *sigh*.
    We don't explicitly expose that "*a" may be written as reload
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/led.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/led.h
@@ -11,8 +11,8 @@
 #define	LED1		0x02
 #define	LED0		0x01		/* bottom (or furthest left) LED */
 
-#define	LED_LAN_TX	LED0		/* for LAN transmit activity */
-#define	LED_LAN_RCV	LED1		/* for LAN receive activity */
+#define	LED_LAN_RCV	LED0		/* for LAN receive activity */
+#define	LED_LAN_TX	LED1		/* for LAN transmit activity */
 #define	LED_DISK_IO	LED2		/* for disk activity */
 #define	LED_HEARTBEAT	LED3		/* heartbeat */
 
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/page.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/page.h
@@ -181,7 +181,7 @@
 #include <asm-generic/getorder.h>
 #include <asm/pdc.h>
 
-#define PAGE0   ((struct zeropage *)__PAGE_OFFSET)
+#define PAGE0   ((struct zeropage *)absolute_pointer(__PAGE_OFFSET))
 
 /* DEFINITION OF THE ZERO-PAGE (PAG0) */
 /* based on work by Jason Eckhardt (jason@equator.com) */
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/processor.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/processor.h
@@ -97,7 +97,6 @@
 	unsigned long cpu_loc;      /* CPU location from PAT firmware */
 	unsigned int state;
 	struct parisc_device *dev;
-	unsigned long loops_per_jiffy;
 };
 
 extern struct system_cpuinfo_parisc boot_cpu_data;
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/ropes.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/ropes.h
@@ -86,6 +86,9 @@
 	struct ioc		ioc[MAX_IOC];
 };
 
+/* list of SBA's in system, see drivers/parisc/sba_iommu.c */
+extern struct sba_device *sba_list;
+
 #define ASTRO_RUNWAY_PORT	0x582
 #define IKE_MERCED_PORT		0x803
 #define REO_MERCED_PORT		0x804
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/spinlock.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/spinlock.h
@@ -37,12 +37,8 @@
 	volatile unsigned int *a;
 
 	a = __ldcw_align(x);
-#ifdef CONFIG_SMP
-	(void) __ldcw(a);
-#else
-	mb();
-#endif
-	*a = 1;
+	/* Release with ordered store. */
+	__asm__ __volatile__("stw,ma %0,0(%1)" : : "r"(1), "r"(a) : "memory");
 }
 
 static inline int arch_spin_trylock(arch_spinlock_t *x)
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/spinlock_types.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/spinlock_types.h
@@ -3,13 +3,8 @@
 #define __ASM_SPINLOCK_TYPES_H
 
 typedef struct {
-#ifdef CONFIG_PA20
-	volatile unsigned int slock;
-# define __ARCH_SPIN_LOCK_UNLOCKED { 1 }
-#else
 	volatile unsigned int lock[4];
 # define __ARCH_SPIN_LOCK_UNLOCKED	{ { 1, 1, 1, 1 } }
-#endif
 } arch_spinlock_t;
 
 typedef struct {
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/string.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/string.h
@@ -8,19 +8,4 @@
 #define __HAVE_ARCH_MEMCPY
 void * memcpy(void * dest,const void *src,size_t count);
 
-#define __HAVE_ARCH_STRLEN
-extern size_t strlen(const char *s);
-
-#define __HAVE_ARCH_STRCPY
-extern char *strcpy(char *dest, const char *src);
-
-#define __HAVE_ARCH_STRNCPY
-extern char *strncpy(char *dest, const char *src, size_t count);
-
-#define __HAVE_ARCH_STRCAT
-extern char *strcat(char *dest, const char *src);
-
-#define __HAVE_ARCH_MEMSET
-extern void *memset(void *, int, size_t);
-
 #endif
--- linux-ein-5.4.0.orig/arch/parisc/include/asm/timex.h
+++ linux-ein-5.4.0/arch/parisc/include/asm/timex.h
@@ -12,9 +12,10 @@
 
 typedef unsigned long cycles_t;
 
-static inline cycles_t get_cycles (void)
+static inline cycles_t get_cycles(void)
 {
 	return mfctl(16);
 }
+#define get_cycles get_cycles
 
 #endif
--- linux-ein-5.4.0.orig/arch/parisc/include/uapi/asm/mman.h
+++ linux-ein-5.4.0/arch/parisc/include/uapi/asm/mman.h
@@ -48,28 +48,27 @@
 #define MADV_DONTFORK	10		/* don't inherit across fork */
 #define MADV_DOFORK	11		/* do inherit across fork */
 
-#define MADV_COLD	20		/* deactivate these pages */
-#define MADV_PAGEOUT	21		/* reclaim these pages */
-
-#define MADV_MERGEABLE   65		/* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 66		/* KSM may not merge identical pages */
+#define MADV_MERGEABLE   12		/* KSM may merge identical pages */
+#define MADV_UNMERGEABLE 13		/* KSM may not merge identical pages */
 
-#define MADV_HUGEPAGE	67		/* Worth backing with hugepages */
-#define MADV_NOHUGEPAGE	68		/* Not worth backing with hugepages */
+#define MADV_HUGEPAGE	14		/* Worth backing with hugepages */
+#define MADV_NOHUGEPAGE 15		/* Not worth backing with hugepages */
 
-#define MADV_DONTDUMP   69		/* Explicity exclude from the core dump,
+#define MADV_DONTDUMP   16		/* Explicity exclude from the core dump,
 					   overrides the coredump filter bits */
-#define MADV_DODUMP	70		/* Clear the MADV_NODUMP flag */
+#define MADV_DODUMP	17		/* Clear the MADV_NODUMP flag */
 
-#define MADV_WIPEONFORK 71		/* Zero memory on fork, child only */
-#define MADV_KEEPONFORK 72		/* Undo MADV_WIPEONFORK */
+#define MADV_WIPEONFORK 18		/* Zero memory on fork, child only */
+#define MADV_KEEPONFORK 19		/* Undo MADV_WIPEONFORK */
+
+#define MADV_COLD	20		/* deactivate these pages */
+#define MADV_PAGEOUT	21		/* reclaim these pages */
 
 #define MADV_HWPOISON     100		/* poison a page for testing */
 #define MADV_SOFT_OFFLINE 101		/* soft offline page for testing */
 
 /* compatibility flags */
 #define MAP_FILE	0
-#define MAP_VARIABLE	0
 
 #define PKEY_DISABLE_ACCESS	0x1
 #define PKEY_DISABLE_WRITE	0x2
--- linux-ein-5.4.0.orig/arch/parisc/install.sh
+++ linux-ein-5.4.0/arch/parisc/install.sh
@@ -39,6 +39,7 @@
 if [ -n "${INSTALLKERNEL}" ]; then
   if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
   if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
+  if [ -x /usr/sbin/${INSTALLKERNEL} ]; then exec /usr/sbin/${INSTALLKERNEL} "$@"; fi
 fi
 
 # Default install
--- linux-ein-5.4.0.orig/arch/parisc/kernel/Makefile
+++ linux-ein-5.4.0/arch/parisc/kernel/Makefile
@@ -37,5 +37,5 @@
 obj-$(CONFIG_JUMP_LABEL)		+= jump_label.o
 obj-$(CONFIG_KGDB)			+= kgdb.o
 obj-$(CONFIG_KPROBES)			+= kprobes.o
-obj-$(CONFIG_KEXEC)			+= kexec.o relocate_kernel.o
+obj-$(CONFIG_KEXEC_CORE)		+= kexec.o relocate_kernel.o
 obj-$(CONFIG_KEXEC_FILE)		+= kexec_file.o
--- linux-ein-5.4.0.orig/arch/parisc/kernel/cache.c
+++ linux-ein-5.4.0/arch/parisc/kernel/cache.c
@@ -328,6 +328,7 @@
 	struct vm_area_struct *mpnt;
 	unsigned long offset;
 	unsigned long addr, old_addr = 0;
+	unsigned long flags;
 	pgoff_t pgoff;
 
 	if (mapping && !mapping_mapped(mapping)) {
@@ -347,7 +348,7 @@
 	 * declared as MAP_PRIVATE or MAP_SHARED), so we only need
 	 * to flush one address here for them all to become coherent */
 
-	flush_dcache_mmap_lock(mapping);
+	flush_dcache_mmap_lock_irqsave(mapping, flags);
 	vma_interval_tree_foreach(mpnt, &mapping->i_mmap, pgoff, pgoff) {
 		offset = (pgoff - mpnt->vm_pgoff) << PAGE_SHIFT;
 		addr = mpnt->vm_start + offset;
@@ -370,7 +371,7 @@
 			old_addr = addr;
 		}
 	}
-	flush_dcache_mmap_unlock(mapping);
+	flush_dcache_mmap_unlock_irqrestore(mapping, flags);
 }
 EXPORT_SYMBOL(flush_dcache_page);
 
--- linux-ein-5.4.0.orig/arch/parisc/kernel/drivers.c
+++ linux-ein-5.4.0/arch/parisc/kernel/drivers.c
@@ -520,7 +520,6 @@
 	dev->id.hversion_rev = iodc_data[1] & 0x0f;
 	dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) |
 			(iodc_data[5] << 8) | iodc_data[6];
-	dev->hpa.name = parisc_pathname(dev);
 	dev->hpa.start = hpa;
 	/* This is awkward.  The STI spec says that gfx devices may occupy
 	 * 32MB or 64MB.  Unfortunately, we don't know how to tell whether
@@ -534,10 +533,10 @@
 		dev->hpa.end = hpa + 0xfff;
 	}
 	dev->hpa.flags = IORESOURCE_MEM;
-	name = parisc_hardware_description(&dev->id);
-	if (name) {
-		strlcpy(dev->name, name, sizeof(dev->name));
-	}
+	dev->hpa.name = dev->name;
+	name = parisc_hardware_description(&dev->id) ? : "unknown";
+	snprintf(dev->name, sizeof(dev->name), "%s [%s]",
+		name, parisc_pathname(dev));
 
 	/* Silently fail things like mouse ports which are subsumed within
 	 * the keyboard controller
@@ -810,7 +809,7 @@
 static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high,
                             struct device *parent);
 
-static void walk_lower_bus(struct parisc_device *dev)
+static void __init walk_lower_bus(struct parisc_device *dev)
 {
 	unsigned long io_io_low, io_io_high;
 
@@ -883,15 +882,13 @@
 			&root);
 }
 
-static void print_parisc_device(struct parisc_device *dev)
+static __init void print_parisc_device(struct parisc_device *dev)
 {
-	char hw_path[64];
-	static int count;
+	static int count __initdata;
 
-	print_pa_hwpath(dev, hw_path);
-	pr_info("%d. %s at 0x%px [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }",
-		++count, dev->name, (void*) dev->hpa.start, hw_path, dev->id.hw_type,
-		dev->id.hversion_rev, dev->id.hversion, dev->id.sversion);
+	pr_info("%d. %s at %pap { type:%d, hv:%#x, sv:%#x, rev:%#x }",
+		++count, dev->name, &(dev->hpa.start), dev->id.hw_type,
+		dev->id.hversion, dev->id.sversion, dev->id.hversion_rev);
 
 	if (dev->num_addrs) {
 		int k;
@@ -927,9 +924,9 @@
 	pr_info("#define PARISC_MODEL \"%s\"\n\n",
 			boot_cpu_data.pdc.sys_model_name);
 
+	#define p ((unsigned long *)&boot_cpu_data.pdc.model)
 	pr_info("#define PARISC_PDC_MODEL 0x%lx, 0x%lx, 0x%lx, "
 		"0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx\n\n",
-	#define p ((unsigned long *)&boot_cpu_data.pdc.model)
 		p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8]);
 	#undef p
 
@@ -1080,7 +1077,7 @@
 
 
 
-static int print_one_device(struct device * dev, void * data)
+static __init int print_one_device(struct device * dev, void * data)
 {
 	struct parisc_device * pdev = to_parisc_device(dev);
 
--- linux-ein-5.4.0.orig/arch/parisc/kernel/entry.S
+++ linux-ein-5.4.0/arch/parisc/kernel/entry.S
@@ -454,7 +454,6 @@
 	nop
 	LDREG		0(\ptp),\pte
 	bb,<,n		\pte,_PAGE_PRESENT_BIT,3f
-	LDCW		0(\tmp),\tmp1
 	b		\fault
 	stw		\spc,0(\tmp)
 99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
@@ -464,23 +463,26 @@
 3:
 	.endm
 
-	/* Release pa_tlb_lock lock without reloading lock address. */
-	.macro		tlb_unlock0	spc,tmp,tmp1
+	/* Release pa_tlb_lock lock without reloading lock address.
+	   Note that the values in the register spc are limited to
+	   NR_SPACE_IDS (262144). Thus, the stw instruction always
+	   stores a nonzero value even when register spc is 64 bits.
+	   We use an ordered store to ensure all prior accesses are
+	   performed prior to releasing the lock. */
+	.macro		tlb_unlock0	spc,tmp
 #ifdef CONFIG_SMP
 98:	or,COND(=)	%r0,\spc,%r0
-	LDCW		0(\tmp),\tmp1
-	or,COND(=)	%r0,\spc,%r0
-	stw		\spc,0(\tmp)
+	stw,ma		\spc,0(\tmp)
 99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
 #endif
 	.endm
 
 	/* Release pa_tlb_lock lock. */
-	.macro		tlb_unlock1	spc,tmp,tmp1
+	.macro		tlb_unlock1	spc,tmp
 #ifdef CONFIG_SMP
 98:	load_pa_tlb_lock \tmp
 99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-	tlb_unlock0	\spc,\tmp,\tmp1
+	tlb_unlock0	\spc,\tmp
 #endif
 	.endm
 
@@ -1163,7 +1165,7 @@
 	
 	idtlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1189,7 +1191,7 @@
 
 	idtlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1223,7 +1225,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1256,7 +1258,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1285,7 +1287,7 @@
 
 	idtlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1313,7 +1315,7 @@
 	
 	idtlbt		pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1420,7 +1422,7 @@
 	
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1444,7 +1446,7 @@
 
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1478,7 +1480,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1502,7 +1504,7 @@
 
 	mtsp		t1, %sr1	/* Restore sr1 */
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1532,7 +1534,7 @@
 
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1552,7 +1554,7 @@
 
 	iitlbt          pte,prot
 
-	tlb_unlock1	spc,t0,t1
+	tlb_unlock1	spc,t0
 	rfir
 	nop
 
@@ -1582,7 +1584,7 @@
 		
 	idtlbt          pte,prot
 
-	tlb_unlock0	spc,t0,t1
+	tlb_unlock0	spc,t0
 	rfir
 	nop
 #else
@@ -1608,7 +1610,7 @@
 
 	mtsp            t1, %sr1     /* Restore sr1 */
 
-	tlb_unlock0	spc,t0,t1
+	tlb_unlock0	spc,t0
 	rfir
 	nop
 
@@ -1628,7 +1630,7 @@
 	
 	idtlbt		pte,prot
 
-	tlb_unlock0	spc,t0,t1
+	tlb_unlock0	spc,t0
 	rfir
 	nop
 #endif
@@ -1839,8 +1841,8 @@
 	LDREG	TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1
 
 	/* Are we being ptraced? */
-	ldw	TASK_FLAGS(%r1),%r19
-	ldi	_TIF_SYSCALL_TRACE_MASK,%r2
+	LDREG	TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19
+	ldi	_TIF_SINGLESTEP|_TIF_BLOCKSTEP,%r2
 	and,COND(=)	%r19,%r2,%r0
 	b,n	syscall_restore_rfi
 
--- linux-ein-5.4.0.orig/arch/parisc/kernel/firmware.c
+++ linux-ein-5.4.0/arch/parisc/kernel/firmware.c
@@ -1229,7 +1229,7 @@
  */
 int pdc_iodc_print(const unsigned char *str, unsigned count)
 {
-	unsigned int i;
+	unsigned int i, found = 0;
 	unsigned long flags;
 
 	for (i = 0; i < count;) {
@@ -1238,6 +1238,7 @@
 			iodc_dbuf[i+0] = '\r';
 			iodc_dbuf[i+1] = '\n';
 			i += 2;
+			found = 1;
 			goto print;
 		default:
 			iodc_dbuf[i] = str[i];
@@ -1254,7 +1255,7 @@
                     __pa(iodc_retbuf), 0, __pa(iodc_dbuf), i, 0);
         spin_unlock_irqrestore(&pdc_lock, flags);
 
-	return i;
+	return i - found;
 }
 
 #if !defined(BOOTLOADER)
--- linux-ein-5.4.0.orig/arch/parisc/kernel/head.S
+++ linux-ein-5.4.0/arch/parisc/kernel/head.S
@@ -22,7 +22,7 @@
 #include <linux/linkage.h>
 #include <linux/init.h>
 
-	.level	PA_ASM_LEVEL
+	.level	1.1
 
 	__INITDATA
 ENTRY(boot_args)
@@ -69,6 +69,47 @@
 	stw,ma          %arg2,4(%r1)
 	stw,ma          %arg3,4(%r1)
 
+#if !defined(CONFIG_64BIT) && defined(CONFIG_PA20)
+	/* This 32-bit kernel was compiled for PA2.0 CPUs. Check current CPU
+	 * and halt kernel if we detect a PA1.x CPU. */
+	ldi		32,%r10
+	mtctl		%r10,%cr11
+	.level 2.0
+	mfctl,w		%cr11,%r10
+	.level 1.1
+	comib,<>,n	0,%r10,$cpu_ok
+
+	load32		PA(msg1),%arg0
+	ldi		msg1_end-msg1,%arg1
+$iodc_panic:
+	copy		%arg0, %r10
+	copy		%arg1, %r11
+	load32		PA(init_stack),%sp
+#define MEM_CONS 0x3A0
+	ldw		MEM_CONS+32(%r0),%arg0	// HPA
+	ldi		ENTRY_IO_COUT,%arg1
+	ldw		MEM_CONS+36(%r0),%arg2	// SPA
+	ldw		MEM_CONS+8(%r0),%arg3	// layers
+	load32		PA(__bss_start),%r1
+	stw		%r1,-52(%sp)		// arg4
+	stw		%r0,-56(%sp)		// arg5
+	stw		%r10,-60(%sp)		// arg6 = ptr to text
+	stw		%r11,-64(%sp)		// arg7 = len
+	stw		%r0,-68(%sp)		// arg8
+	load32		PA(.iodc_panic_ret), %rp
+	ldw		MEM_CONS+40(%r0),%r1	// ENTRY_IODC
+	bv,n		(%r1)
+.iodc_panic_ret:
+	b .				/* wait endless with ... */
+	or		%r10,%r10,%r10	/* qemu idle sleep */
+msg1:	.ascii "Can't boot kernel which was built for PA8x00 CPUs on this machine.\r\n"
+msg1_end:
+
+$cpu_ok:
+#endif
+
+	.level	PA_ASM_LEVEL
+
 	/* Initialize startup VM. Just map first 16/32 MB of memory */
 	load32		PA(swapper_pg_dir),%r4
 	mtctl		%r4,%cr24	/* Initialize kernel root pointer */
--- linux-ein-5.4.0.orig/arch/parisc/kernel/irq.c
+++ linux-ein-5.4.0/arch/parisc/kernel/irq.c
@@ -376,7 +376,11 @@
 /*
  * IRQ STACK - used for irq handler
  */
+#ifdef CONFIG_64BIT
+#define IRQ_STACK_SIZE      (4096 << 4) /* 64k irq stack size */
+#else
 #define IRQ_STACK_SIZE      (4096 << 3) /* 32k irq stack size */
+#endif
 
 union irq_stack_union {
 	unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)];
@@ -384,7 +388,7 @@
 	volatile unsigned int lock[1];
 };
 
-DEFINE_PER_CPU(union irq_stack_union, irq_stack_union) = {
+static DEFINE_PER_CPU(union irq_stack_union, irq_stack_union) = {
 		.slock = { 1,1,1,1 },
 	};
 #endif
--- linux-ein-5.4.0.orig/arch/parisc/kernel/module.c
+++ linux-ein-5.4.0/arch/parisc/kernel/module.c
@@ -43,6 +43,7 @@
 #include <linux/elf.h>
 #include <linux/vmalloc.h>
 #include <linux/fs.h>
+#include <linux/ftrace.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/bug.h>
@@ -862,7 +863,7 @@
 	const char *strtab = NULL;
 	const Elf_Shdr *s;
 	char *secstrings;
-	int err, symindex = -1;
+	int symindex = -1;
 	Elf_Sym *newptr, *oldptr;
 	Elf_Shdr *symhdr = NULL;
 #ifdef DEBUG
@@ -946,11 +947,13 @@
 			/* patch .altinstructions */
 			apply_alternatives(aseg, aseg + s->sh_size, me->name);
 
+#ifdef CONFIG_DYNAMIC_FTRACE
 		/* For 32 bit kernels we're compiling modules with
 		 * -ffunction-sections so we must relocate the addresses in the
-		 *__mcount_loc section.
+		 *  ftrace callsite section.
 		 */
-		if (symindex != -1 && !strcmp(secname, "__mcount_loc")) {
+		if (symindex != -1 && !strcmp(secname, FTRACE_CALLSITE_SECTION)) {
+			int err;
 			if (s->sh_type == SHT_REL)
 				err = apply_relocate((Elf_Shdr *)sechdrs,
 							strtab, symindex,
@@ -962,6 +965,7 @@
 			if (err)
 				return err;
 		}
+#endif
 	}
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/parisc/kernel/parisc_ksyms.c
+++ linux-ein-5.4.0/arch/parisc/kernel/parisc_ksyms.c
@@ -17,10 +17,6 @@
 
 #include <linux/string.h>
 EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(strlen);
-EXPORT_SYMBOL(strcpy);
-EXPORT_SYMBOL(strncpy);
-EXPORT_SYMBOL(strcat);
 
 #include <linux/atomic.h>
 EXPORT_SYMBOL(__xchg8);
--- linux-ein-5.4.0.orig/arch/parisc/kernel/patch.c
+++ linux-ein-5.4.0/arch/parisc/kernel/patch.c
@@ -40,10 +40,7 @@
 
 	*need_unmap = 1;
 	set_fixmap(fixmap, page_to_phys(page));
-	if (flags)
-		raw_spin_lock_irqsave(&patch_lock, *flags);
-	else
-		__acquire(&patch_lock);
+	raw_spin_lock_irqsave(&patch_lock, *flags);
 
 	return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK));
 }
@@ -52,10 +49,7 @@
 {
 	clear_fixmap(fixmap);
 
-	if (flags)
-		raw_spin_unlock_irqrestore(&patch_lock, *flags);
-	else
-		__release(&patch_lock);
+	raw_spin_unlock_irqrestore(&patch_lock, *flags);
 }
 
 void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)
@@ -67,8 +61,9 @@
 	int mapped;
 
 	/* Make sure we don't have any aliases in cache */
-	flush_kernel_vmap_range(addr, len);
-	flush_icache_range(start, end);
+	flush_kernel_dcache_range_asm(start, end);
+	flush_kernel_icache_range_asm(start, end);
+	flush_tlb_kernel_range(start, end);
 
 	p = fixmap = patch_map(addr, FIX_TEXT_POKE0, &flags, &mapped);
 
@@ -81,8 +76,10 @@
 			 * We're crossing a page boundary, so
 			 * need to remap
 			 */
-			flush_kernel_vmap_range((void *)fixmap,
-						(p-fixmap) * sizeof(*p));
+			flush_kernel_dcache_range_asm((unsigned long)fixmap,
+						      (unsigned long)p);
+			flush_tlb_kernel_range((unsigned long)fixmap,
+					       (unsigned long)p);
 			if (mapped)
 				patch_unmap(FIX_TEXT_POKE0, &flags);
 			p = fixmap = patch_map(addr, FIX_TEXT_POKE0, &flags,
@@ -90,10 +87,10 @@
 		}
 	}
 
-	flush_kernel_vmap_range((void *)fixmap, (p-fixmap) * sizeof(*p));
+	flush_kernel_dcache_range_asm((unsigned long)fixmap, (unsigned long)p);
+	flush_tlb_kernel_range((unsigned long)fixmap, (unsigned long)p);
 	if (mapped)
 		patch_unmap(FIX_TEXT_POKE0, &flags);
-	flush_icache_range(start, end);
 }
 
 void __kprobes __patch_text(void *addr, u32 insn)
--- linux-ein-5.4.0.orig/arch/parisc/kernel/pci-dma.c
+++ linux-ein-5.4.0/arch/parisc/kernel/pci-dma.c
@@ -439,16 +439,32 @@
 	free_pages((unsigned long)__va(dma_handle), order);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
+	/*
+	 * fdc: The data cache line is written back to memory, if and only if
+	 * it is dirty, and then invalidated from the data cache.
+	 */
 	flush_kernel_dcache_range((unsigned long)phys_to_virt(paddr), size);
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
-	flush_kernel_dcache_range((unsigned long)phys_to_virt(paddr), size);
+	unsigned long addr = (unsigned long) phys_to_virt(paddr);
+
+	switch (dir) {
+	case DMA_TO_DEVICE:
+	case DMA_BIDIRECTIONAL:
+		flush_kernel_dcache_range(addr, size);
+		return;
+	case DMA_FROM_DEVICE:
+		purge_kernel_dcache_range_asm(addr, addr + size);
+		return;
+	default:
+		BUG();
+	}
 }
 
 void arch_dma_cache_sync(struct device *dev, void *vaddr, size_t size,
--- linux-ein-5.4.0.orig/arch/parisc/kernel/process.c
+++ linux-ein-5.4.0/arch/parisc/kernel/process.c
@@ -124,13 +124,18 @@
 	/* It seems we have no way to power the system off via
 	 * software. The user has to press the button himself. */
 
-	printk(KERN_EMERG "System shut down completed.\n"
-	       "Please power this system off now.");
+	printk("Power off or press RETURN to reboot.\n");
 
 	/* prevent soft lockup/stalled CPU messages for endless loop. */
 	rcu_sysrq_start();
 	lockup_detector_soft_poweroff();
-	for (;;);
+	while (1) {
+		/* reboot if user presses RETURN key */
+		if (pdc_iodc_getc() == 13) {
+			printk("Rebooting...\n");
+			machine_restart(NULL);
+		}
+	}
 }
 
 void (*pm_power_off)(void);
@@ -208,8 +213,8 @@
  * Copy architecture-specific thread state
  */
 int
-copy_thread(unsigned long clone_flags, unsigned long usp,
-	    unsigned long kthread_arg, struct task_struct *p)
+copy_thread_tls(unsigned long clone_flags, unsigned long usp,
+	    unsigned long kthread_arg, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *cregs = &(p->thread.regs);
 	void *stack = task_stack_page(p);
@@ -254,9 +259,9 @@
 		cregs->ksp = (unsigned long)stack + THREAD_SZ_ALGN + FRAME_SIZE;
 		cregs->kpc = (unsigned long) &child_return;
 
-		/* Setup thread TLS area from the 4th parameter in clone */
+		/* Setup thread TLS area */
 		if (clone_flags & CLONE_SETTLS)
-			cregs->cr27 = cregs->gr[23];
+			cregs->cr27 = tls;
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/arch/parisc/kernel/processor.c
+++ linux-ein-5.4.0/arch/parisc/kernel/processor.c
@@ -163,7 +163,6 @@
 	if (cpuid)
 		memset(p, 0, sizeof(struct cpuinfo_parisc));
 
-	p->loops_per_jiffy = loops_per_jiffy;
 	p->dev = dev;		/* Save IODC data in case we need it */
 	p->hpa = dev->hpa.start;	/* save CPU hpa */
 	p->cpuid = cpuid;	/* save CPU id */
@@ -373,10 +372,18 @@
 show_cpuinfo (struct seq_file *m, void *v)
 {
 	unsigned long cpu;
+	char cpu_name[60], *p;
+
+	/* strip PA path from CPU name to not confuse lscpu */
+	strlcpy(cpu_name, per_cpu(cpu_data, 0).dev->name, sizeof(cpu_name));
+	p = strrchr(cpu_name, '[');
+	if (p)
+		*(--p) = 0;
 
 	for_each_online_cpu(cpu) {
-		const struct cpuinfo_parisc *cpuinfo = &per_cpu(cpu_data, cpu);
 #ifdef CONFIG_SMP
+		const struct cpuinfo_parisc *cpuinfo = &per_cpu(cpu_data, cpu);
+
 		if (0 == cpuinfo->hpa)
 			continue;
 #endif
@@ -419,11 +426,9 @@
 		}
 		seq_printf(m, " (0x%02lx)\n", boot_cpu_data.pdc.capabilities);
 
-		seq_printf(m, "model\t\t: %s\n"
-				"model name\t: %s\n",
+		seq_printf(m, "model\t\t: %s - %s\n",
 				 boot_cpu_data.pdc.sys_model_name,
-				 cpuinfo->dev ?
-				 cpuinfo->dev->name : "Unknown");
+				 cpu_name);
 
 		seq_printf(m, "hversion\t: 0x%08x\n"
 			        "sversion\t: 0x%08x\n",
@@ -434,8 +439,8 @@
 		show_cache_info(m);
 
 		seq_printf(m, "bogomips\t: %lu.%02lu\n",
-			     cpuinfo->loops_per_jiffy / (500000 / HZ),
-			     (cpuinfo->loops_per_jiffy / (5000 / HZ)) % 100);
+			     loops_per_jiffy / (500000 / HZ),
+			     loops_per_jiffy / (5000 / HZ) % 100);
 
 		seq_printf(m, "software id\t: %ld\n\n",
 				boot_cpu_data.pdc.model.sw_id);
--- linux-ein-5.4.0.orig/arch/parisc/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/parisc/kernel/ptrace.c
@@ -128,6 +128,12 @@
 	unsigned long tmp;
 	long ret = -EIO;
 
+	unsigned long user_regs_struct_size = sizeof(struct user_regs_struct);
+#ifdef CONFIG_64BIT
+	if (is_compat_task())
+		user_regs_struct_size /= 2;
+#endif
+
 	switch (request) {
 
 	/* Read the word at location addr in the USER area.  For ptraced
@@ -183,14 +189,14 @@
 		return copy_regset_to_user(child,
 					   task_user_regset_view(current),
 					   REGSET_GENERAL,
-					   0, sizeof(struct user_regs_struct),
+					   0, user_regs_struct_size,
 					   datap);
 
 	case PTRACE_SETREGS:	/* Set all gp regs in the child. */
 		return copy_regset_from_user(child,
 					     task_user_regset_view(current),
 					     REGSET_GENERAL,
-					     0, sizeof(struct user_regs_struct),
+					     0, user_regs_struct_size,
 					     datap);
 
 	case PTRACE_GETFPREGS:	/* Get the child FPU state. */
@@ -304,6 +310,11 @@
 			}
 		}
 		break;
+	case PTRACE_GETREGS:
+	case PTRACE_SETREGS:
+	case PTRACE_GETFPREGS:
+	case PTRACE_SETFPREGS:
+		return arch_ptrace(child, request, addr, data);
 
 	default:
 		ret = compat_ptrace_request(child, request, addr, data);
--- linux-ein-5.4.0.orig/arch/parisc/kernel/real2.S
+++ linux-ein-5.4.0/arch/parisc/kernel/real2.S
@@ -248,9 +248,6 @@
 	/* save fn */
 	copy	%arg2, %r31
 
-	/* set up the new ap */
-	ldo	64(%arg1), %r29
-
 	/* load up the arg registers from the saved arg area */
 	/* 32-bit calling convention passes first 4 args in registers */
 	ldd	0*REG_SZ(%arg1), %arg0		/* note overwriting arg0 */
@@ -262,7 +259,9 @@
 	ldd	7*REG_SZ(%arg1), %r19
 	ldd	1*REG_SZ(%arg1), %arg1		/* do this one last! */
 
+	/* set up real-mode stack and real-mode ap */
 	tophys_r1 %sp
+	ldo	-16(%sp), %r29			/* Reference param save area */
 
 	b,l	rfi_virt2real,%r2
 	nop
--- linux-ein-5.4.0.orig/arch/parisc/kernel/signal.c
+++ linux-ein-5.4.0/arch/parisc/kernel/signal.c
@@ -238,6 +238,12 @@
 #endif
 	
 	usp = (regs->gr[30] & ~(0x01UL));
+#ifdef CONFIG_64BIT
+	if (is_compat_task()) {
+		/* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */
+		usp = (compat_uint_t)usp;
+	}
+#endif
 	/*FIXME: frame_size parameter is unused, remove it. */
 	frame = get_sigframe(&ksig->ka, usp, sizeof(*frame));
 
--- linux-ein-5.4.0.orig/arch/parisc/kernel/smp.c
+++ linux-ein-5.4.0/arch/parisc/kernel/smp.c
@@ -29,6 +29,7 @@
 #include <linux/bitops.h>
 #include <linux/ftrace.h>
 #include <linux/cpu.h>
+#include <linux/kgdb.h>
 
 #include <linux/atomic.h>
 #include <asm/current.h>
@@ -71,7 +72,10 @@
 	IPI_CALL_FUNC,
 	IPI_CPU_START,
 	IPI_CPU_STOP,
-	IPI_CPU_TEST
+	IPI_CPU_TEST,
+#ifdef CONFIG_KGDB
+	IPI_ENTER_KGDB,
+#endif
 };
 
 
@@ -169,7 +173,12 @@
 			case IPI_CPU_TEST:
 				smp_debug(100, KERN_DEBUG "CPU%d is alive!\n", this_cpu);
 				break;
-
+#ifdef CONFIG_KGDB
+			case IPI_ENTER_KGDB:
+				smp_debug(100, KERN_DEBUG "CPU%d ENTER_KGDB\n", this_cpu);
+				kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
+				break;
+#endif
 			default:
 				printk(KERN_CRIT "Unknown IPI num on CPU%d: %lu\n",
 					this_cpu, which);
@@ -225,6 +234,12 @@
 	}
 }
 
+#ifdef CONFIG_KGDB
+void kgdb_roundup_cpus(void)
+{
+	send_IPI_allbutself(IPI_ENTER_KGDB);
+}
+#endif
 
 inline void 
 smp_send_stop(void)	{ send_IPI_allbutself(IPI_CPU_STOP); }
--- linux-ein-5.4.0.orig/arch/parisc/kernel/sys_parisc.c
+++ linux-ein-5.4.0/arch/parisc/kernel/sys_parisc.c
@@ -373,3 +373,30 @@
 
 	return err;
 }
+
+/*
+ * madvise() wrapper
+ *
+ * Up to kernel v6.1 parisc has different values than all other
+ * platforms for the MADV_xxx flags listed below.
+ * To keep binary compatibility with existing userspace programs
+ * translate the former values to the new values.
+ *
+ * XXX: Remove this wrapper in year 2025 (or later)
+ */
+
+asmlinkage notrace long parisc_madvise(unsigned long start, size_t len_in, int behavior)
+{
+	switch (behavior) {
+	case 65: behavior = MADV_MERGEABLE;	break;
+	case 66: behavior = MADV_UNMERGEABLE;	break;
+	case 67: behavior = MADV_HUGEPAGE;	break;
+	case 68: behavior = MADV_NOHUGEPAGE;	break;
+	case 69: behavior = MADV_DONTDUMP;	break;
+	case 70: behavior = MADV_DODUMP;	break;
+	case 71: behavior = MADV_WIPEONFORK;	break;
+	case 72: behavior = MADV_KEEPONFORK;	break;
+	}
+
+	return sys_madvise(start, len_in, behavior);
+}
--- linux-ein-5.4.0.orig/arch/parisc/kernel/syscall.S
+++ linux-ein-5.4.0/arch/parisc/kernel/syscall.S
@@ -478,7 +478,7 @@
 	extrd,u	%r1,PSW_W_BIT,1,%r1
 	/* sp must be aligned on 4, so deposit the W bit setting into
 	 * the bottom of sp temporarily */
-	or,ev	%r1,%r30,%r30
+	or,od	%r1,%r30,%r30
 
 	/* Clip LWS number to a 32-bit value for 32-bit processes */
 	depdi	0, 31, 32, %r20
@@ -640,11 +640,7 @@
 	sub,<>	%r28, %r25, %r0
 2:	stw	%r24, 0(%r26)
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 #if ENABLE_LWS_DEBUG
 	/* Clear thread register indicator */
 	stw	%r0, 4(%sr2,%r20)
@@ -658,11 +654,7 @@
 3:		
 	/* Error occurred on load or store */
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 #if ENABLE_LWS_DEBUG
 	stw	%r0, 4(%sr2,%r20)
 #endif
@@ -863,11 +855,7 @@
 
 cas2_end:
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 	/* Enable interrupts */
 	ssm	PSW_SM_I, %r0
 	/* Return to userspace, set no error */
@@ -877,11 +865,7 @@
 22:
 	/* Error occurred on load or store */
 	/* Free lock */
-#ifdef CONFIG_SMP
-98:	LDCW	0(%sr2,%r20), %r1			/* Barrier */
-99:	ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP)
-#endif
-	stw	%r20, 0(%sr2,%r20)
+	stw,ma	%r20, 0(%sr2,%r20)
 	ssm	PSW_SM_I, %r0
 	ldo	1(%r0),%r28
 	b	lws_exit
--- linux-ein-5.4.0.orig/arch/parisc/kernel/syscalls/syscall.tbl
+++ linux-ein-5.4.0/arch/parisc/kernel/syscalls/syscall.tbl
@@ -131,7 +131,7 @@
 116	common	sysinfo			sys_sysinfo			compat_sys_sysinfo
 117	common	shutdown		sys_shutdown
 118	common	fsync			sys_fsync
-119	common	madvise			sys_madvise
+119	common	madvise			parisc_madvise
 120	common	clone			sys_clone_wrapper
 121	common	setdomainname		sys_setdomainname
 122	common	sendfile		sys_sendfile			compat_sys_sendfile
@@ -413,7 +413,7 @@
 412	32	utimensat_time64		sys_utimensat			sys_utimensat
 413	32	pselect6_time64			sys_pselect6			compat_sys_pselect6_time64
 414	32	ppoll_time64			sys_ppoll			compat_sys_ppoll_time64
-416	32	io_pgetevents_time64		sys_io_pgetevents		sys_io_pgetevents
+416	32	io_pgetevents_time64		sys_io_pgetevents		compat_sys_io_pgetevents_time64
 417	32	recvmmsg_time64			sys_recvmmsg			compat_sys_recvmmsg_time64
 418	32	mq_timedsend_time64		sys_mq_timedsend		sys_mq_timedsend
 419	32	mq_timedreceive_time64		sys_mq_timedreceive		sys_mq_timedreceive
--- linux-ein-5.4.0.orig/arch/parisc/kernel/time.c
+++ linux-ein-5.4.0/arch/parisc/kernel/time.c
@@ -245,27 +245,13 @@
 static int __init init_cr16_clocksource(void)
 {
 	/*
-	 * The cr16 interval timers are not syncronized across CPUs on
-	 * different sockets, so mark them unstable and lower rating on
-	 * multi-socket SMP systems.
+	 * The cr16 interval timers are not syncronized across CPUs, even if
+	 * they share the same socket.
 	 */
 	if (num_online_cpus() > 1 && !running_on_qemu) {
-		int cpu;
-		unsigned long cpu0_loc;
-		cpu0_loc = per_cpu(cpu_data, 0).cpu_loc;
-
-		for_each_online_cpu(cpu) {
-			if (cpu == 0)
-				continue;
-			if ((cpu0_loc != 0) &&
-			    (cpu0_loc == per_cpu(cpu_data, cpu).cpu_loc))
-				continue;
-
-			clocksource_cr16.name = "cr16_unstable";
-			clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
-			clocksource_cr16.rating = 0;
-			break;
-		}
+		clocksource_cr16.name = "cr16_unstable";
+		clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
+		clocksource_cr16.rating = 0;
 	}
 
 	/* XXX: We may want to mark sched_clock stable here if cr16 clocks are
--- linux-ein-5.4.0.orig/arch/parisc/kernel/traps.c
+++ linux-ein-5.4.0/arch/parisc/kernel/traps.c
@@ -268,7 +268,7 @@
 		panic("Fatal exception");
 
 	oops_exit();
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 /* gdb uses break 4,8 */
@@ -305,8 +305,8 @@
 #endif
 
 #ifdef CONFIG_KGDB
-	if (unlikely(iir == PARISC_KGDB_COMPILED_BREAK_INSN ||
-		iir == PARISC_KGDB_BREAK_INSN)) {
+	if (unlikely((iir == PARISC_KGDB_COMPILED_BREAK_INSN ||
+		iir == PARISC_KGDB_BREAK_INSN)) && !user_mode(regs)) {
 		kgdb_handle_exception(9, SIGTRAP, 0, regs);
 		return;
 	}
@@ -783,7 +783,7 @@
 	     * unless pagefault_disable() was called before.
 	     */
 
-	    if (fault_space == 0 && !faulthandler_disabled())
+	    if (faulthandler_disabled() || fault_space == 0)
 	    {
 		/* Clean up and return if in exception table. */
 		if (fixup_exception(regs))
--- linux-ein-5.4.0.orig/arch/parisc/kernel/unaligned.c
+++ linux-ein-5.4.0/arch/parisc/kernel/unaligned.c
@@ -107,7 +107,7 @@
 #define R1(i) (((i)>>21)&0x1f)
 #define R2(i) (((i)>>16)&0x1f)
 #define R3(i) ((i)&0x1f)
-#define FR3(i) ((((i)<<1)&0x1f)|(((i)>>6)&1))
+#define FR3(i) ((((i)&0x1f)<<1)|(((i)>>6)&1))
 #define IM(i,n) (((i)>>1&((1<<(n-1))-1))|((i)&1?((0-1L)<<(n-1)):0))
 #define IM5_2(i) IM((i)>>16,5)
 #define IM5_3(i) IM((i),5)
@@ -340,7 +340,7 @@
 	: "r" (val), "r" (regs->ior), "r" (regs->isr)
 	: "r19", "r20", "r21", "r22", "r1", FIXUP_BRANCH_CLOBBER );
 
-	return 0;
+	return ret;
 }
 static int emulate_std(struct pt_regs *regs, int frreg, int flop)
 {
@@ -397,7 +397,7 @@
 	__asm__ __volatile__ (
 "	mtsp	%4, %%sr1\n"
 "	zdep	%2, 29, 2, %%r19\n"
-"	dep	%%r0, 31, 2, %2\n"
+"	dep	%%r0, 31, 2, %3\n"
 "	mtsar	%%r19\n"
 "	zvdepi	-2, 32, %%r19\n"
 "1:	ldw	0(%%sr1,%3),%%r20\n"
@@ -409,7 +409,7 @@
 "	andcm	%%r21, %%r19, %%r21\n"
 "	or	%1, %%r20, %1\n"
 "	or	%2, %%r21, %2\n"
-"3:	stw	%1,0(%%sr1,%1)\n"
+"3:	stw	%1,0(%%sr1,%3)\n"
 "4:	stw	%%r1,4(%%sr1,%3)\n"
 "5:	stw	%2,8(%%sr1,%3)\n"
 "	copy	%%r0, %0\n"
@@ -596,7 +596,6 @@
 		ret = ERR_NOTHANDLED;	/* "undefined", but lets kill them. */
 		break;
 	}
-#ifdef CONFIG_PA20
 	switch (regs->iir & OPCODE2_MASK)
 	{
 	case OPCODE_FLDD_L:
@@ -607,22 +606,23 @@
 		flop=1;
 		ret = emulate_std(regs, R2(regs->iir),1);
 		break;
+#ifdef CONFIG_PA20
 	case OPCODE_LDD_L:
 		ret = emulate_ldd(regs, R2(regs->iir),0);
 		break;
 	case OPCODE_STD_L:
 		ret = emulate_std(regs, R2(regs->iir),0);
 		break;
-	}
 #endif
+	}
 	switch (regs->iir & OPCODE3_MASK)
 	{
 	case OPCODE_FLDW_L:
 		flop=1;
-		ret = emulate_ldw(regs, R2(regs->iir),0);
+		ret = emulate_ldw(regs, R2(regs->iir), 1);
 		break;
 	case OPCODE_LDW_M:
-		ret = emulate_ldw(regs, R2(regs->iir),1);
+		ret = emulate_ldw(regs, R2(regs->iir), 0);
 		break;
 
 	case OPCODE_FSTW_L:
--- linux-ein-5.4.0.orig/arch/parisc/kernel/unwind.c
+++ linux-ein-5.4.0/arch/parisc/kernel/unwind.c
@@ -21,6 +21,8 @@
 #include <asm/ptrace.h>
 
 #include <asm/unwind.h>
+#include <asm/switch_to.h>
+#include <asm/sections.h>
 
 /* #define DEBUG 1 */
 #ifdef DEBUG
@@ -203,6 +205,11 @@
 	return 0;
 }
 
+static bool pc_is_kernel_fn(unsigned long pc, void *fn)
+{
+	return (unsigned long)dereference_kernel_function_descriptor(fn) == pc;
+}
+
 static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int frame_size)
 {
 	/*
@@ -221,7 +228,7 @@
 	extern void * const _call_on_stack;
 #endif /* CONFIG_IRQSTACKS */
 
-	if (pc == (unsigned long) &handle_interruption) {
+	if (pc_is_kernel_fn(pc, handle_interruption)) {
 		struct pt_regs *regs = (struct pt_regs *)(info->sp - frame_size - PT_SZ_ALGN);
 		dbg("Unwinding through handle_interruption()\n");
 		info->prev_sp = regs->gr[30];
@@ -229,13 +236,13 @@
 		return 1;
 	}
 
-	if (pc == (unsigned long) &ret_from_kernel_thread ||
-	    pc == (unsigned long) &syscall_exit) {
+	if (pc_is_kernel_fn(pc, ret_from_kernel_thread) ||
+	    pc_is_kernel_fn(pc, syscall_exit)) {
 		info->prev_sp = info->prev_ip = 0;
 		return 1;
 	}
 
-	if (pc == (unsigned long) &intr_return) {
+	if (pc_is_kernel_fn(pc, intr_return)) {
 		struct pt_regs *regs;
 
 		dbg("Found intr_return()\n");
@@ -246,20 +253,20 @@
 		return 1;
 	}
 
-	if (pc == (unsigned long) &_switch_to_ret) {
+	if (pc_is_kernel_fn(pc, _switch_to) ||
+	    pc_is_kernel_fn(pc, _switch_to_ret)) {
 		info->prev_sp = info->sp - CALLEE_SAVE_FRAME_SIZE;
 		info->prev_ip = *(unsigned long *)(info->prev_sp - RP_OFFSET);
 		return 1;
 	}
 
 #ifdef CONFIG_IRQSTACKS
-	if (pc == (unsigned long) &_call_on_stack) {
+	if (pc_is_kernel_fn(pc, _call_on_stack)) {
 		info->prev_sp = *(unsigned long *)(info->sp - FRAME_SIZE - REG_SZ);
 		info->prev_ip = *(unsigned long *)(info->sp - FRAME_SIZE - RP_OFFSET);
 		return 1;
 	}
 #endif
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/parisc/lib/Makefile
+++ linux-ein-5.4.0/arch/parisc/lib/Makefile
@@ -3,7 +3,7 @@
 # Makefile for parisc-specific library files
 #
 
-lib-y	:= lusercopy.o bitops.o checksum.o io.o memcpy.o \
-	   ucmpdi2.o delay.o string.o
+lib-y	:= lusercopy.o bitops.o checksum.o io.o memset.o memcpy.o \
+	   ucmpdi2.o delay.o
 
 obj-y	:= iomap.o
--- linux-ein-5.4.0.orig/arch/parisc/lib/bitops.c
+++ linux-ein-5.4.0/arch/parisc/lib/bitops.c
@@ -79,3 +79,15 @@
 	_atomic_spin_unlock_irqrestore(ptr, flags);
 	return (unsigned long)prev;
 }
+
+u8 __cmpxchg_u8(volatile u8 *ptr, u8 old, u8 new)
+{
+	unsigned long flags;
+	u8 prev;
+
+	_atomic_spin_lock_irqsave(ptr, flags);
+	if ((prev = *ptr) == old)
+		*ptr = new;
+	_atomic_spin_unlock_irqrestore(ptr, flags);
+	return prev;
+}
--- linux-ein-5.4.0.orig/arch/parisc/lib/memset.c
+++ linux-ein-5.4.0/arch/parisc/lib/memset.c
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <linux/types.h>
+#include <asm/string.h>
+
+#define OPSIZ (BITS_PER_LONG/8)
+typedef unsigned long op_t;
+
+void *
+memset (void *dstpp, int sc, size_t len)
+{
+  unsigned int c = sc;
+  long int dstp = (long int) dstpp;
+
+  if (len >= 8)
+    {
+      size_t xlen;
+      op_t cccc;
+
+      cccc = (unsigned char) c;
+      cccc |= cccc << 8;
+      cccc |= cccc << 16;
+      if (OPSIZ > 4)
+	/* Do the shift in two steps to avoid warning if long has 32 bits.  */
+	cccc |= (cccc << 16) << 16;
+
+      /* There are at least some bytes to set.
+	 No need to test for LEN == 0 in this alignment loop.  */
+      while (dstp % OPSIZ != 0)
+	{
+	  ((unsigned char *) dstp)[0] = c;
+	  dstp += 1;
+	  len -= 1;
+	}
+
+      /* Write 8 `op_t' per iteration until less than 8 `op_t' remain.  */
+      xlen = len / (OPSIZ * 8);
+      while (xlen > 0)
+	{
+	  ((op_t *) dstp)[0] = cccc;
+	  ((op_t *) dstp)[1] = cccc;
+	  ((op_t *) dstp)[2] = cccc;
+	  ((op_t *) dstp)[3] = cccc;
+	  ((op_t *) dstp)[4] = cccc;
+	  ((op_t *) dstp)[5] = cccc;
+	  ((op_t *) dstp)[6] = cccc;
+	  ((op_t *) dstp)[7] = cccc;
+	  dstp += 8 * OPSIZ;
+	  xlen -= 1;
+	}
+      len %= OPSIZ * 8;
+
+      /* Write 1 `op_t' per iteration until less than OPSIZ bytes remain.  */
+      xlen = len / OPSIZ;
+      while (xlen > 0)
+	{
+	  ((op_t *) dstp)[0] = cccc;
+	  dstp += OPSIZ;
+	  xlen -= 1;
+	}
+      len %= OPSIZ;
+    }
+
+  /* Write the last few bytes.  */
+  while (len > 0)
+    {
+      ((unsigned char *) dstp)[0] = c;
+      dstp += 1;
+      len -= 1;
+    }
+
+  return dstpp;
+}
--- linux-ein-5.4.0.orig/arch/parisc/math-emu/fpudispatch.c
+++ linux-ein-5.4.0/arch/parisc/math-emu/fpudispatch.c
@@ -310,12 +310,15 @@
 					r1 &= ~3;
 					fpregs[t+3] = fpregs[r1+3];
 					fpregs[t+2] = fpregs[r1+2];
+					fallthrough;
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					fpregs[t] = fpregs[r1];
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 3: /* FABS */
 				switch (fmt) {
 				    case 2: /* illegal */
@@ -325,13 +328,16 @@
 					r1 &= ~3;
 					fpregs[t+3] = fpregs[r1+3];
 					fpregs[t+2] = fpregs[r1+2];
+					fallthrough;
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					/* copy and clear sign bit */
 					fpregs[t] = fpregs[r1] & 0x7fffffff;
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 6: /* FNEG */
 				switch (fmt) {
 				    case 2: /* illegal */
@@ -341,13 +347,16 @@
 					r1 &= ~3;
 					fpregs[t+3] = fpregs[r1+3];
 					fpregs[t+2] = fpregs[r1+2];
+					fallthrough;
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					/* copy and invert sign bit */
 					fpregs[t] = fpregs[r1] ^ 0x80000000;
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 7: /* FNEGABS */
 				switch (fmt) {
 				    case 2: /* illegal */
@@ -357,13 +366,16 @@
 					r1 &= ~3;
 					fpregs[t+3] = fpregs[r1+3];
 					fpregs[t+2] = fpregs[r1+2];
+					fallthrough;
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					/* copy and set sign bit */
 					fpregs[t] = fpregs[r1] | 0x80000000;
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 4: /* FSQRT */
 				switch (fmt) {
 				    case 0:
@@ -376,6 +388,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 5: /* FRND */
 				switch (fmt) {
 				    case 0:
@@ -389,7 +402,7 @@
 					return(MAJOR_0C_EXCP);
 				}
 		} /* end of switch (subop) */
-
+		BUG();
 	case 1: /* class 1 */
 		df = extru(ir,fpdfpos,2); /* get dest format */
 		if ((df & 2) || (fmt & 2)) {
@@ -419,6 +432,7 @@
 				    case 3: /* dbl/dbl */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 1: /* FCNVXF */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -434,6 +448,7 @@
 					return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 2: /* FCNVFX */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -449,6 +464,7 @@
 					return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 3: /* FCNVFXT */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -464,6 +480,7 @@
 					return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 5: /* FCNVUF (PA2.0 only) */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -479,6 +496,7 @@
 					return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 6: /* FCNVFU (PA2.0 only) */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -494,6 +512,7 @@
 					return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 7: /* FCNVFUT (PA2.0 only) */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -509,10 +528,11 @@
 					return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 4: /* undefined */
 				return(MAJOR_0C_EXCP);
 		} /* end of switch subop */
-
+		BUG();
 	case 2: /* class 2 */
 		fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS];
 		r2 = extru(ir, fpr2pos, 5) * sizeof(double)/sizeof(u_int);
@@ -590,6 +610,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 1: /* FTEST */
 				switch (fmt) {
 				    case 0:
@@ -609,8 +630,10 @@
 				    case 3:
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 		    } /* end of switch subop */
 		} /* end of else for PA1.0 & PA1.1 */
+		BUG();
 	case 3: /* class 3 */
 		r2 = extru(ir,fpr2pos,5) * sizeof(double)/sizeof(u_int);
 		if (r2 == 0)
@@ -633,6 +656,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 1: /* FSUB */
 				switch (fmt) {
 				    case 0:
@@ -645,6 +669,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 2: /* FMPY */
 				switch (fmt) {
 				    case 0:
@@ -657,6 +682,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 3: /* FDIV */
 				switch (fmt) {
 				    case 0:
@@ -669,6 +695,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 			case 4: /* FREM */
 				switch (fmt) {
 				    case 0:
@@ -681,6 +708,7 @@
 				    case 3: /* quad not implemented */
 					return(MAJOR_0C_EXCP);
 				}
+				BUG();
 		} /* end of class 3 switch */
 	} /* end of switch(class) */
 
@@ -736,10 +764,12 @@
 					return(MAJOR_0E_EXCP);
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					fpregs[t] = fpregs[r1];
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 3: /* FABS */
 				switch (fmt) {
 				    case 2:
@@ -747,10 +777,12 @@
 					return(MAJOR_0E_EXCP);
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					fpregs[t] = fpregs[r1] & 0x7fffffff;
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 6: /* FNEG */
 				switch (fmt) {
 				    case 2:
@@ -758,10 +790,12 @@
 					return(MAJOR_0E_EXCP);
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					fpregs[t] = fpregs[r1] ^ 0x80000000;
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 7: /* FNEGABS */
 				switch (fmt) {
 				    case 2:
@@ -769,10 +803,12 @@
 					return(MAJOR_0E_EXCP);
 				    case 1: /* double */
 					fpregs[t+1] = fpregs[r1+1];
+					fallthrough;
 				    case 0: /* single */
 					fpregs[t] = fpregs[r1] | 0x80000000;
 					return(NOEXCEPTION);
 				}
+				BUG();
 			case 4: /* FSQRT */
 				switch (fmt) {
 				    case 0:
@@ -785,6 +821,7 @@
 				    case 3:
 					return(MAJOR_0E_EXCP);
 				}
+				BUG();
 			case 5: /* FRMD */
 				switch (fmt) {
 				    case 0:
@@ -798,7 +835,7 @@
 					return(MAJOR_0E_EXCP);
 				}
 		} /* end of switch (subop */
-	
+		BUG();
 	case 1: /* class 1 */
 		df = extru(ir,fpdfpos,2); /* get dest format */
 		/*
@@ -826,6 +863,7 @@
 				    case 3: /* dbl/dbl */
 					return(MAJOR_0E_EXCP);
 				}
+				BUG();
 			case 1: /* FCNVXF */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -841,6 +879,7 @@
 					return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 2: /* FCNVFX */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -856,6 +895,7 @@
 					return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 3: /* FCNVFXT */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -871,6 +911,7 @@
 					return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 5: /* FCNVUF (PA2.0 only) */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -886,6 +927,7 @@
 					return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 6: /* FCNVFU (PA2.0 only) */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -901,6 +943,7 @@
 					return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 7: /* FCNVFUT (PA2.0 only) */
 				switch(fmt) {
 				    case 0: /* sgl/sgl */
@@ -916,9 +959,11 @@
 					return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
 						&fpregs[t],status));
 				}
+				BUG();
 			case 4: /* undefined */
 				return(MAJOR_0C_EXCP);
 		} /* end of switch subop */
+		BUG();
 	case 2: /* class 2 */
 		/*
 		 * Be careful out there.
@@ -994,6 +1039,7 @@
 				}
 		    } /* end of switch subop */
 		} /* end of else for PA1.0 & PA1.1 */
+		BUG();
 	case 3: /* class 3 */
 		/*
 		 * Be careful out there.
@@ -1026,6 +1072,7 @@
 					return(dbl_fadd(&fpregs[r1],&fpregs[r2],
 						&fpregs[t],status));
 				}
+				BUG();
 			case 1: /* FSUB */
 				switch (fmt) {
 				    case 0:
@@ -1035,6 +1082,7 @@
 					return(dbl_fsub(&fpregs[r1],&fpregs[r2],
 						&fpregs[t],status));
 				}
+				BUG();
 			case 2: /* FMPY or XMPYU */
 				/*
 				 * check for integer multiply (x bit set)
@@ -1071,6 +1119,7 @@
 					       &fpregs[r2],&fpregs[t],status));
 				    }
 				}
+				BUG();
 			case 3: /* FDIV */
 				switch (fmt) {
 				    case 0:
@@ -1080,6 +1129,7 @@
 					return(dbl_fdiv(&fpregs[r1],&fpregs[r2],
 						&fpregs[t],status));
 				}
+				BUG();
 			case 4: /* FREM */
 				switch (fmt) {
 				    case 0:
--- linux-ein-5.4.0.orig/arch/parisc/mm/fixmap.c
+++ linux-ein-5.4.0/arch/parisc/mm/fixmap.c
@@ -18,12 +18,9 @@
 	pte_t *pte;
 
 	if (pmd_none(*pmd))
-		pmd = pmd_alloc(NULL, pgd, vaddr);
-
-	pte = pte_offset_kernel(pmd, vaddr);
-	if (pte_none(*pte))
 		pte = pte_alloc_kernel(pmd, vaddr);
 
+	pte = pte_offset_kernel(pmd, vaddr);
 	set_pte_at(&init_mm, vaddr, pte, __mk_pte(phys, PAGE_KERNEL_RWX));
 	flush_tlb_kernel_range(vaddr, vaddr + PAGE_SIZE);
 }
--- linux-ein-5.4.0.orig/arch/parisc/mm/init.c
+++ linux-ein-5.4.0/arch/parisc/mm/init.c
@@ -347,9 +347,9 @@
 
 static bool kernel_set_to_readonly;
 
-static void __init map_pages(unsigned long start_vaddr,
-			     unsigned long start_paddr, unsigned long size,
-			     pgprot_t pgprot, int force)
+static void __ref map_pages(unsigned long start_vaddr,
+			    unsigned long start_paddr, unsigned long size,
+			    pgprot_t pgprot, int force)
 {
 	pgd_t *pg_dir;
 	pmd_t *pmd;
@@ -485,7 +485,7 @@
 	flush_tlb_all();
 }
 
-void __ref free_initmem(void)
+void free_initmem(void)
 {
 	unsigned long init_begin = (unsigned long)__init_begin;
 	unsigned long init_end = (unsigned long)__init_end;
@@ -499,7 +499,6 @@
 	/* The init text pages are marked R-X.  We have to
 	 * flush the icache and mark them RW-
 	 *
-	 * This is tricky, because map_pages is in the init section.
 	 * Do a dummy remap of the data section first (the data
 	 * section is already PAGE_KERNEL) to pull in the TLB entries
 	 * for map_kernel */
@@ -588,7 +587,7 @@
 			> BITS_PER_LONG);
 
 	high_memory = __va((max_pfn << PAGE_SHIFT));
-	set_max_mapnr(page_to_pfn(virt_to_page(high_memory - 1)) + 1);
+	set_max_mapnr(max_low_pfn);
 	memblock_free_all();
 
 #ifdef CONFIG_PA11
@@ -892,9 +891,9 @@
 {
 	int do_recycle;
 
-	__inc_irq_stat(irq_tlb_count);
 	do_recycle = 0;
 	spin_lock(&sid_lock);
+	__inc_irq_stat(irq_tlb_count);
 	if (dirty_space_ids > RECYCLE_THRESHOLD) {
 	    BUG_ON(recycle_inuse);  /* FIXME: Use a semaphore/wait queue here */
 	    get_dirty_sids(&recycle_ndirty,recycle_dirty_array);
@@ -913,8 +912,8 @@
 #else
 void flush_tlb_all(void)
 {
-	__inc_irq_stat(irq_tlb_count);
 	spin_lock(&sid_lock);
+	__inc_irq_stat(irq_tlb_count);
 	flush_tlb_all_local(NULL);
 	recycle_sids();
 	spin_unlock(&sid_lock);
--- linux-ein-5.4.0.orig/arch/powerpc/Kconfig
+++ linux-ein-5.4.0/arch/powerpc/Kconfig
@@ -133,7 +133,7 @@
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_HAS_MEMBARRIER_CALLBACKS
 	select ARCH_HAS_SCALED_CPUTIME		if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64
-	select ARCH_HAS_STRICT_KERNEL_RWX	if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
+	select ARCH_HAS_STRICT_KERNEL_RWX	if (PPC32 && !HIBERNATION)
 	select ARCH_HAS_TICK_BROADCAST		if GENERIC_CLOCKEVENTS_BROADCAST
 	select ARCH_HAS_UACCESS_FLUSHCACHE
 	select ARCH_HAS_UACCESS_MCSAFE		if PPC64
@@ -147,6 +147,7 @@
 	select ARCH_USE_BUILTIN_BSWAP
 	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
 	select ARCH_WANT_IPC_PARSE_VERSION
+	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 	select ARCH_WEAK_RELEASE_ACQUIRE
 	select BINFMT_ELF
 	select BUILDTIME_EXTABLE_SORT
@@ -171,7 +172,7 @@
 	select HAVE_ARCH_AUDITSYSCALL
 	select HAVE_ARCH_HUGE_VMAP		if PPC_BOOK3S_64 && PPC_RADIX_MMU
 	select HAVE_ARCH_JUMP_LABEL
-	select HAVE_ARCH_KASAN			if PPC32
+	select HAVE_ARCH_KASAN			if PPC32 && PPC_PAGE_SHIFT <= 14
 	select HAVE_ARCH_KGDB
 	select HAVE_ARCH_MMAP_RND_BITS
 	select HAVE_ARCH_MMAP_RND_COMPAT_BITS	if COMPAT
@@ -213,7 +214,7 @@
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_MOD_ARCH_SPECIFIC
 	select HAVE_NMI				if PERF_EVENTS || (PPC64 && PPC_BOOK3S)
-	select HAVE_HARDLOCKUP_DETECTOR_ARCH	if (PPC64 && PPC_BOOK3S)
+	select HAVE_HARDLOCKUP_DETECTOR_ARCH	if PPC64 && PPC_BOOK3S && SMP
 	select HAVE_OPROFILE
 	select HAVE_OPTPROBES			if PPC64
 	select HAVE_PERF_EVENTS
@@ -221,8 +222,7 @@
 	select HAVE_HARDLOCKUP_DETECTOR_PERF	if PERF_EVENTS && HAVE_PERF_EVENTS_NMI && !HAVE_HARDLOCKUP_DETECTOR_ARCH
 	select HAVE_PERF_REGS
 	select HAVE_PERF_USER_STACK_DUMP
-	select HAVE_RCU_TABLE_FREE		if SMP
-	select HAVE_RCU_TABLE_NO_INVALIDATE	if HAVE_RCU_TABLE_FREE
+	select HAVE_RCU_TABLE_FREE
 	select HAVE_MMU_GATHER_PAGE_SIZE
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_RELIABLE_STACKTRACE		if PPC_BOOK3S_64 && CPU_LITTLE_ENDIAN
@@ -237,6 +237,7 @@
 	select NEED_DMA_MAP_STATE		if PPC64 || NOT_COHERENT_CACHE
 	select NEED_SG_DMA_LENGTH
 	select OF
+	select OF_DMA_DEFAULT_COHERENT		if !NOT_COHERENT_CACHE
 	select OF_EARLY_FLATTREE
 	select OLD_SIGACTION			if PPC32
 	select OLD_SIGSUSPEND
@@ -722,7 +723,7 @@
 
 config PPC_256K_PAGES
 	bool "256k page size"
-	depends on 44x && !STDBINUTILS
+	depends on 44x && !STDBINUTILS && !PPC_47x
 	help
 	  Make the page size 256k.
 
@@ -747,6 +748,7 @@
 	range 13 15
 	default "15" if PPC_256K_PAGES
 	default "14" if PPC64
+	default "14" if KASAN
 	default "13"
 	help
 	  Used to define the stack size. The default is almost always what you
@@ -934,6 +936,28 @@
 
 	  If unsure, say y.
 
+config PPC_SECURE_BOOT
+	prompt "Enable secure boot support"
+	bool
+	depends on PPC_POWERNV
+	depends on IMA_ARCH_POLICY
+	help
+	  Systems with firmware secure boot enabled need to define security
+	  policies to extend secure boot to the OS. This config allows a user
+	  to enable OS secure boot on systems that have firmware support for
+	  it. If in doubt say N.
+
+config PPC_SECVAR_SYSFS
+	bool "Enable sysfs interface for POWER secure variables"
+	default y
+	depends on PPC_SECURE_BOOT
+	depends on SYSFS
+	help
+	  POWER secure variables are managed and controlled by firmware.
+	  These variables are exposed to userspace via sysfs to enable
+	  read/write operations on these variables. Say Y if you have
+	  secure boot enabled and want to expose variables to userspace.
+
 endmenu
 
 config ISA_DMA_API
@@ -1022,6 +1046,19 @@
 	  Include support for RapidIO controller on Freescale embedded
 	  processors (MPC8548, MPC8641, etc).
 
+config PPC_RTAS_FILTER
+	bool "Enable filtering of RTAS syscalls"
+	default y
+	depends on PPC_RTAS
+	help
+	  The RTAS syscall API has security issues that could be used to
+	  compromise system integrity. This option enforces restrictions on the
+	  RTAS calls and arguments passed by userspace programs to mitigate
+	  these issues.
+
+	  Say Y unless you know what you are doing and the filter is causing
+	  problems for you.
+
 endmenu
 
 config NONSTATIC_KERNEL
--- linux-ein-5.4.0.orig/arch/powerpc/Kconfig.debug
+++ linux-ein-5.4.0/arch/powerpc/Kconfig.debug
@@ -234,7 +234,7 @@
 
 config PPC_EARLY_DEBUG_CPM
 	bool "Early serial debugging for Freescale CPM-based serial ports"
-	depends on SERIAL_CPM
+	depends on SERIAL_CPM=y
 	help
 	  Select this to enable early debugging for Freescale chips
 	  using a CPM-based serial port.  This assumes that the bootwrapper
@@ -352,6 +352,7 @@
 config FAIL_IOMMU
 	bool "Fault-injection capability for IOMMU"
 	depends on FAULT_INJECTION
+	depends on PCI || IBMVIO
 	help
 	  Provide fault-injection capability for IOMMU. Each device can
 	  be selectively enabled via the fail_iommu property.
@@ -371,7 +372,7 @@
 
 config PPC_DEBUG_WX
 	bool "Warn on W+X mappings at boot"
-	depends on PPC_PTDUMP
+	depends on PPC_PTDUMP && STRICT_KERNEL_RWX
 	help
 	  Generate a warning if any W+X mappings are found at boot.
 
--- linux-ein-5.4.0.orig/arch/powerpc/Makefile
+++ linux-ein-5.4.0/arch/powerpc/Makefile
@@ -17,23 +17,6 @@
 # Set default 32 bits cross compilers for vdso and boot wrapper
 CROSS32_COMPILE ?=
 
-ifeq ($(HAS_BIARCH),y)
-ifeq ($(CROSS32_COMPILE),)
-ifdef CONFIG_PPC32
-# These options will be overridden by any -mcpu option that the CPU
-# or platform code sets later on the command line, but they are needed
-# to set a sane 32-bit cpu target for the 64-bit cross compiler which
-# may default to the wrong ISA.
-KBUILD_CFLAGS		+= -mcpu=powerpc
-KBUILD_AFLAGS		+= -mcpu=powerpc
-endif
-endif
-endif
-
-ifdef CONFIG_PPC_BOOK3S_32
-KBUILD_CFLAGS		+= -mcpu=powerpc
-endif
-
 # If we're on a ppc/ppc64/ppc64le machine use that defconfig, otherwise just use
 # ppc64_defconfig because we have nothing better to go on.
 uname := $(shell uname -m)
@@ -91,11 +74,13 @@
 endif
 
 ifdef CONFIG_PPC64
+ifndef CONFIG_CC_IS_CLANG
 cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
 cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mcall-aixdesc)
 aflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
 aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mabi=elfv2
 endif
+endif
 
 ifndef CONFIG_CC_IS_CLANG
   cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mno-strict-align
@@ -108,7 +93,7 @@
 
 ifeq ($(HAS_BIARCH),y)
 KBUILD_CFLAGS	+= -m$(BITS)
-KBUILD_AFLAGS	+= -m$(BITS) -Wl,-a$(BITS)
+KBUILD_AFLAGS	+= -m$(BITS)
 KBUILD_LDFLAGS	+= -m elf$(BITS)$(LDEMULATION)
 endif
 
@@ -141,6 +126,7 @@
 endif
 
 CFLAGS-$(CONFIG_PPC64)	:= $(call cc-option,-mtraceback=no)
+ifndef CONFIG_CC_IS_CLANG
 ifdef CONFIG_CPU_LITTLE_ENDIAN
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv2,$(call cc-option,-mcall-aixdesc))
 AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv2)
@@ -149,6 +135,7 @@
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcall-aixdesc)
 AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
 endif
+endif
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mno-pointers-to-nested-functions)
 
@@ -168,9 +155,9 @@
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power9,-mtune=power8)
 else
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5))
-CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4)
+CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power4
 endif
-else
+else ifdef CONFIG_PPC_BOOK3E_64
 CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
 endif
 
@@ -188,6 +175,7 @@
 endif
 
 CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU))
+AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU))
 
 # Altivec option not allowed with e500mc64 in GCC.
 ifdef CONFIG_ALTIVEC
@@ -198,14 +186,6 @@
 CFLAGS-$(CONFIG_E5500_CPU) += $(E5500_CPU)
 CFLAGS-$(CONFIG_E6500_CPU) += $(call cc-option,-mcpu=e6500,$(E5500_CPU))
 
-ifdef CONFIG_PPC32
-ifdef CONFIG_PPC_E500MC
-CFLAGS-y += $(call cc-option,-mcpu=e500mc,-mcpu=powerpc)
-else
-CFLAGS-$(CONFIG_E500) += $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc)
-endif
-endif
-
 asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1)
 
 KBUILD_CPPFLAGS	+= -I $(srctree)/arch/$(ARCH) $(asinstr)
@@ -246,7 +226,6 @@
 
 cpu-as-$(CONFIG_4xx)		+= -Wa,-m405
 cpu-as-$(CONFIG_ALTIVEC)	+= $(call as-option,-Wa$(comma)-maltivec)
-cpu-as-$(CONFIG_E200)		+= -Wa,-me200
 cpu-as-$(CONFIG_E500)		+= -Wa,-me500
 
 # When using '-many -mpower4' gas will first try and find a matching power4
@@ -281,7 +260,7 @@
 all: zImage
 
 # With make 3.82 we cannot mix normal and wildcard targets
-BOOT_TARGETS1 := zImage zImage.initrd uImage
+BOOT_TARGETS1 := zImage zImage.initrd uImage vmlinux.strip
 BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% uImage.%
 
 PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
@@ -446,3 +425,11 @@
 		echo -n '*** Please use a different binutils version.' ; \
 		false ; \
 	fi
+	@if test "x${CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT}" = "xy" -a \
+		"x${CONFIG_LD_IS_BFD}" = "xy" -a \
+		"${CONFIG_LD_VERSION}" = "23700" ; then \
+		echo -n '*** binutils 2.37 drops unused section symbols, which recordmcount ' ; \
+		echo 'is unable to handle.' ; \
+		echo '*** Please use a different binutils version.' ; \
+		false ; \
+	fi
--- linux-ein-5.4.0.orig/arch/powerpc/Makefile.postlink
+++ linux-ein-5.4.0/arch/powerpc/Makefile.postlink
@@ -17,11 +17,11 @@
 quiet_cmd_relocs_check = CHKREL  $@
 ifdef CONFIG_PPC_BOOK3S_64
       cmd_relocs_check =						\
-	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@" ; \
+	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@" ; \
 	$(BASH) $(srctree)/arch/powerpc/tools/unrel_branch_check.sh "$(OBJDUMP)" "$@"
 else
       cmd_relocs_check =						\
-	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@"
+	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@"
 endif
 
 # `@true` prevents complaint when there is nothing to be done
--- linux-ein-5.4.0.orig/arch/powerpc/boot/4xx.c
+++ linux-ein-5.4.0/arch/powerpc/boot/4xx.c
@@ -228,7 +228,7 @@
 		dpath = 8; /* 64 bits */
 
 	/* get address pins (rows) */
- 	val = SDRAM0_READ(DDR0_42);
+	val = SDRAM0_READ(DDR0_42);
 
 	row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
 	if (row > max_row)
--- linux-ein-5.4.0.orig/arch/powerpc/boot/Makefile
+++ linux-ein-5.4.0/arch/powerpc/boot/Makefile
@@ -30,6 +30,7 @@
 
 BOOTCFLAGS    := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 		 -fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \
+		 $(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
 		 -pipe -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \
 		 $(LINUXINCLUDE)
 
@@ -119,7 +120,7 @@
 		elf_util.c $(zlib-y) devtree.c stdlib.c \
 		oflib.c ofconsole.c cuboot.c
 
-src-wlib-$(CONFIG_PPC_MPC52XX) += mpc52xx-psc.c
+src-wlib-$(CONFIG_PPC_MPC52xx) += mpc52xx-psc.c
 src-wlib-$(CONFIG_PPC64_BOOT_WRAPPER) += opal-calls.S opal.c
 ifndef CONFIG_PPC64_BOOT_WRAPPER
 src-wlib-y += crtsavres.S
--- linux-ein-5.4.0.orig/arch/powerpc/boot/crt0.S
+++ linux-ein-5.4.0/arch/powerpc/boot/crt0.S
@@ -44,9 +44,6 @@
 p_pstack:	.long	_platform_stack_top
 #endif
 
-	.globl	_zimage_start
-	/* Clang appears to require the .weak directive to be after the symbol
-	 * is defined. See https://bugs.llvm.org/show_bug.cgi?id=38921  */
 	.weak	_zimage_start
 _zimage_start:
 	.globl	_zimage_start_lib
--- linux-ein-5.4.0.orig/arch/powerpc/boot/devtree.c
+++ linux-ein-5.4.0/arch/powerpc/boot/devtree.c
@@ -13,6 +13,7 @@
 #include "string.h"
 #include "stdio.h"
 #include "ops.h"
+#include "of.h"
 
 void dt_fixup_memory(u64 start, u64 size)
 {
@@ -23,21 +24,25 @@
 	root = finddevice("/");
 	if (getprop(root, "#address-cells", &naddr, sizeof(naddr)) < 0)
 		naddr = 2;
+	else
+		naddr = be32_to_cpu(naddr);
 	if (naddr < 1 || naddr > 2)
 		fatal("Can't cope with #address-cells == %d in /\n\r", naddr);
 
 	if (getprop(root, "#size-cells", &nsize, sizeof(nsize)) < 0)
 		nsize = 1;
+	else
+		nsize = be32_to_cpu(nsize);
 	if (nsize < 1 || nsize > 2)
 		fatal("Can't cope with #size-cells == %d in /\n\r", nsize);
 
 	i = 0;
 	if (naddr == 2)
-		memreg[i++] = start >> 32;
-	memreg[i++] = start & 0xffffffff;
+		memreg[i++] = cpu_to_be32(start >> 32);
+	memreg[i++] = cpu_to_be32(start & 0xffffffff);
 	if (nsize == 2)
-		memreg[i++] = size >> 32;
-	memreg[i++] = size & 0xffffffff;
+		memreg[i++] = cpu_to_be32(size >> 32);
+	memreg[i++] = cpu_to_be32(size & 0xffffffff);
 
 	memory = finddevice("/memory");
 	if (! memory) {
@@ -45,9 +50,9 @@
 		setprop_str(memory, "device_type", "memory");
 	}
 
-	printf("Memory <- <0x%x", memreg[0]);
+	printf("Memory <- <0x%x", be32_to_cpu(memreg[0]));
 	for (i = 1; i < (naddr + nsize); i++)
-		printf(" 0x%x", memreg[i]);
+		printf(" 0x%x", be32_to_cpu(memreg[i]));
 	printf("> (%ldMB)\n\r", (unsigned long)(size >> 20));
 
 	setprop(memory, "reg", memreg, (naddr + nsize)*sizeof(u32));
@@ -65,10 +70,10 @@
 		printf("CPU bus-frequency <- 0x%x (%dMHz)\n\r", bus, MHZ(bus));
 
 	while ((devp = find_node_by_devtype(devp, "cpu"))) {
-		setprop_val(devp, "clock-frequency", cpu);
-		setprop_val(devp, "timebase-frequency", tb);
+		setprop_val(devp, "clock-frequency", cpu_to_be32(cpu));
+		setprop_val(devp, "timebase-frequency", cpu_to_be32(tb));
 		if (bus > 0)
-			setprop_val(devp, "bus-frequency", bus);
+			setprop_val(devp, "bus-frequency", cpu_to_be32(bus));
 	}
 
 	timebase_period_ns = 1000000000 / tb;
@@ -80,7 +85,7 @@
 
 	if (devp) {
 		printf("%s: clock-frequency <- %x (%dMHz)\n\r", path, freq, MHZ(freq));
-		setprop_val(devp, "clock-frequency", freq);
+		setprop_val(devp, "clock-frequency", cpu_to_be32(freq));
 	}
 }
 
@@ -133,8 +138,12 @@
 {
 	if (getprop(node, "#address-cells", naddr, 4) != 4)
 		*naddr = 2;
+	else
+		*naddr = be32_to_cpu(*naddr);
 	if (getprop(node, "#size-cells", nsize, 4) != 4)
 		*nsize = 1;
+	else
+		*nsize = be32_to_cpu(*nsize);
 }
 
 static void copy_val(u32 *dest, u32 *src, int naddr)
@@ -163,9 +172,9 @@
 	int i, carry = 0;
 
 	for (i = MAX_ADDR_CELLS - 1; i >= MAX_ADDR_CELLS - naddr; i--) {
-		u64 tmp = (u64)reg[i] + add[i] + carry;
+		u64 tmp = (u64)be32_to_cpu(reg[i]) + be32_to_cpu(add[i]) + carry;
 		carry = tmp >> 32;
-		reg[i] = (u32)tmp;
+		reg[i] = cpu_to_be32((u32)tmp);
 	}
 
 	return !carry;
@@ -180,18 +189,18 @@
 	u32 end;
 
 	for (i = 0; i < MAX_ADDR_CELLS; i++) {
-		if (reg[i] < range[i])
+		if (be32_to_cpu(reg[i]) < be32_to_cpu(range[i]))
 			return 0;
-		if (reg[i] > range[i])
+		if (be32_to_cpu(reg[i]) > be32_to_cpu(range[i]))
 			break;
 	}
 
 	for (i = 0; i < MAX_ADDR_CELLS; i++) {
-		end = range[i] + rangesize[i];
+		end = be32_to_cpu(range[i]) + be32_to_cpu(rangesize[i]);
 
-		if (reg[i] < end)
+		if (be32_to_cpu(reg[i]) < end)
 			break;
-		if (reg[i] > end)
+		if (be32_to_cpu(reg[i]) > end)
 			return 0;
 	}
 
@@ -240,7 +249,6 @@
 		return 0;
 
 	dt_get_reg_format(parent, &naddr, &nsize);
-
 	if (nsize > 2)
 		return 0;
 
@@ -252,10 +260,10 @@
 
 	copy_val(last_addr, prop_buf + offset, naddr);
 
-	ret_size = prop_buf[offset + naddr];
+	ret_size = be32_to_cpu(prop_buf[offset + naddr]);
 	if (nsize == 2) {
 		ret_size <<= 32;
-		ret_size |= prop_buf[offset + naddr + 1];
+		ret_size |= be32_to_cpu(prop_buf[offset + naddr + 1]);
 	}
 
 	for (;;) {
@@ -278,7 +286,6 @@
 
 		offset = find_range(last_addr, prop_buf, prev_naddr,
 		                    naddr, prev_nsize, buflen / 4);
-
 		if (offset < 0)
 			return 0;
 
@@ -296,8 +303,7 @@
 	if (naddr > 2)
 		return 0;
 
-	ret_addr = ((u64)last_addr[2] << 32) | last_addr[3];
-
+	ret_addr = ((u64)be32_to_cpu(last_addr[2]) << 32) | be32_to_cpu(last_addr[3]);
 	if (sizeof(void *) == 4 &&
 	    (ret_addr >= 0x100000000ULL || ret_size > 0x100000000ULL ||
 	     ret_addr + ret_size > 0x100000000ULL))
@@ -350,11 +356,14 @@
 int dt_get_virtual_reg(void *node, void **addr, int nres)
 {
 	unsigned long xaddr;
-	int n;
+	int n, i;
 
 	n = getprop(node, "virtual-reg", addr, nres * 4);
-	if (n > 0)
+	if (n > 0) {
+		for (i = 0; i < n/4; i ++)
+			((u32 *)addr)[i] = be32_to_cpu(((u32 *)addr)[i]);
 		return n / 4;
+	}
 
 	for (n = 0; n < nres; n++) {
 		if (!dt_xlate_reg(node, n, &xaddr, NULL))
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/charon.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/charon.dts
@@ -35,7 +35,7 @@
 		};
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x08000000>;	// 128MB
 	};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/digsy_mtc.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/digsy_mtc.dts
@@ -16,7 +16,7 @@
 	model = "intercontrol,digsy-mtc";
 	compatible = "intercontrol,digsy-mtc";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x02000000>;	// 32MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/e500v1_power_isa.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/e500v1_power_isa.dtsi
@@ -0,0 +1,51 @@
+/*
+ * e500v1 Power ISA Device Tree Source (include)
+ *
+ * Copyright 2012 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/ {
+	cpus {
+		power-isa-version = "2.03";
+		power-isa-b;		// Base
+		power-isa-e;		// Embedded
+		power-isa-atb;		// Alternate Time Base
+		power-isa-cs;		// Cache Specification
+		power-isa-e.le;		// Embedded.Little-Endian
+		power-isa-e.pm;		// Embedded.Performance Monitor
+		power-isa-ecl;		// Embedded Cache Locking
+		power-isa-mmc;		// Memory Coherence
+		power-isa-sp;		// Signal Processing Engine
+		power-isa-sp.fs;	// SPE.Embedded Float Scalar Single
+		power-isa-sp.fv;	// SPE.Embedded Float Vector
+		mmu-type = "power-embedded";
+	};
+};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/mpc8540ads.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/mpc8540ads.dts
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8540ADS";
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/mpc8541cds.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/mpc8541cds.dts
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8541CDS";
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/mpc8555cds.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/mpc8555cds.dts
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8555CDS";
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/mpc8560ads.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/mpc8560ads.dts
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8560ADS";
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
@@ -122,7 +122,15 @@
 	};
 
 /include/ "pq3-i2c-0.dtsi"
+	i2c@3000 {
+		fsl,i2c-erratum-a004447;
+	};
+
 /include/ "pq3-i2c-1.dtsi"
+	i2c@3100 {
+		fsl,i2c-erratum-a004447;
+	};
+
 /include/ "pq3-duart-0.dtsi"
 /include/ "pq3-espi-0.dtsi"
 	spi0: spi@7000 {
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
@@ -371,7 +371,23 @@
 	};
 
 /include/ "qoriq-i2c-0.dtsi"
+	i2c@118000 {
+		fsl,i2c-erratum-a004447;
+	};
+
+	i2c@118100 {
+		fsl,i2c-erratum-a004447;
+	};
+
 /include/ "qoriq-i2c-1.dtsi"
+	i2c@119000 {
+		fsl,i2c-erratum-a004447;
+	};
+
+	i2c@119100 {
+		fsl,i2c-erratum-a004447;
+	};
+
 /include/ "qoriq-duart-0.dtsi"
 /include/ "qoriq-duart-1.dtsi"
 /include/ "qoriq-gpio-0.dtsi"
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
@@ -63,6 +63,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy0: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy6: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
@@ -63,6 +63,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy1: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy7: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later
+/*
+ * QorIQ FMan v3 10g port #2 device tree stub [ controller @ offset 0x400000 ]
+ *
+ * Copyright 2022 Sean Anderson <sean.anderson@seco.com>
+ * Copyright 2012 - 2015 Freescale Semiconductor Inc.
+ */
+
+fman@400000 {
+	fman0_rx_0x08: port@88000 {
+		cell-index = <0x8>;
+		compatible = "fsl,fman-v3-port-rx";
+		reg = <0x88000 0x1000>;
+		fsl,fman-10g-port;
+	};
+
+	fman0_tx_0x28: port@a8000 {
+		cell-index = <0x28>;
+		compatible = "fsl,fman-v3-port-tx";
+		reg = <0xa8000 0x1000>;
+		fsl,fman-10g-port;
+	};
+
+	ethernet@e0000 {
+		cell-index = <0>;
+		compatible = "fsl,fman-memac";
+		reg = <0xe0000 0x1000>;
+		fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>;
+		ptp-timer = <&ptp_timer0>;
+		pcsphy-handle = <&pcsphy0>;
+	};
+
+	mdio@e1000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
+
+		pcsphy0: ethernet-phy@0 {
+			reg = <0x0>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later
+/*
+ * QorIQ FMan v3 10g port #3 device tree stub [ controller @ offset 0x400000 ]
+ *
+ * Copyright 2022 Sean Anderson <sean.anderson@seco.com>
+ * Copyright 2012 - 2015 Freescale Semiconductor Inc.
+ */
+
+fman@400000 {
+	fman0_rx_0x09: port@89000 {
+		cell-index = <0x9>;
+		compatible = "fsl,fman-v3-port-rx";
+		reg = <0x89000 0x1000>;
+		fsl,fman-10g-port;
+	};
+
+	fman0_tx_0x29: port@a9000 {
+		cell-index = <0x29>;
+		compatible = "fsl,fman-v3-port-tx";
+		reg = <0xa9000 0x1000>;
+		fsl,fman-10g-port;
+	};
+
+	ethernet@e2000 {
+		cell-index = <1>;
+		compatible = "fsl,fman-memac";
+		reg = <0xe2000 0x1000>;
+		fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>;
+		ptp-timer = <&ptp_timer0>;
+		pcsphy-handle = <&pcsphy1>;
+	};
+
+	mdio@e3000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
+
+		pcsphy1: ethernet-phy@0 {
+			reg = <0x0>;
+		};
+	};
+};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy0: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy1: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe5000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy2: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe7000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy3: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe9000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy4: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xeb000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy5: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy14: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
@@ -60,6 +60,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xf3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy15: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe1000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy8: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe3000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy9: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe5000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy10: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe7000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy11: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xe9000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy12: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
@@ -59,6 +59,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xeb000 0x1000>;
+		fsl,erratum-a011043; /* must ignore read errors */
 
 		pcsphy13: ethernet-phy@0 {
 			reg = <0x0>;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
@@ -79,6 +79,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xfc000 0x1000>;
+		fsl,erratum-a009885;
 	};
 
 	xmdio0: mdio@fd000 {
@@ -86,6 +87,7 @@
 		#size-cells = <0>;
 		compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
 		reg = <0xfd000 0x1000>;
+		fsl,erratum-a009885;
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/t1023rdb.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/t1023rdb.dts
@@ -154,7 +154,7 @@
 
 			fm1mac3: ethernet@e4000 {
 				phy-handle = <&sgmii_aqr_phy3>;
-				phy-connection-type = "sgmii-2500";
+				phy-connection-type = "2500base-x";
 				sleep = <&rcpm 0x20000000>;
 			};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi
@@ -139,12 +139,12 @@
 		fman@400000 {
 			ethernet@e6000 {
 				phy-handle = <&phy_rgmii_0>;
-				phy-connection-type = "rgmii";
+				phy-connection-type = "rgmii-id";
 			};
 
 			ethernet@e8000 {
 				phy-handle = <&phy_rgmii_1>;
-				phy-connection-type = "rgmii";
+				phy-connection-type = "rgmii-id";
 			};
 
 			mdio0: mdio@fc000 {
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/fsl/t2081si-post.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/fsl/t2081si-post.dtsi
@@ -609,8 +609,8 @@
 /include/ "qoriq-bman1.dtsi"
 
 /include/ "qoriq-fman3-0.dtsi"
-/include/ "qoriq-fman3-0-1g-0.dtsi"
-/include/ "qoriq-fman3-0-1g-1.dtsi"
+/include/ "qoriq-fman3-0-10g-2.dtsi"
+/include/ "qoriq-fman3-0-10g-3.dtsi"
 /include/ "qoriq-fman3-0-1g-2.dtsi"
 /include/ "qoriq-fman3-0-1g-3.dtsi"
 /include/ "qoriq-fman3-0-1g-4.dtsi"
@@ -659,3 +659,19 @@
 		interrupts = <16 2 1 9>;
 	};
 };
+
+&fman0_rx_0x08 {
+	/delete-property/ fsl,fman-10g-port;
+};
+
+&fman0_tx_0x28 {
+	/delete-property/ fsl,fman-10g-port;
+};
+
+&fman0_rx_0x09 {
+	/delete-property/ fsl,fman-10g-port;
+};
+
+&fman0_tx_0x29 {
+	/delete-property/ fsl,fman-10g-port;
+};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/lite5200.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/lite5200.dts
@@ -32,7 +32,7 @@
 		};
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/lite5200b.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/lite5200b.dts
@@ -31,7 +31,7 @@
 		led4 { gpios = <&gpio_simple 2 1>; };
 	};
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x10000000>;	// 256MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/media5200.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/media5200.dts
@@ -32,7 +32,7 @@
 		};
 	};
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;	// 128MB RAM
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/mpc5200b.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/mpc5200b.dtsi
@@ -33,7 +33,7 @@
 		};
 	};
 
-	memory: memory {
+	memory: memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/o2d.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/o2d.dts
@@ -12,7 +12,7 @@
 	model = "ifm,o2d";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;  // 128MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/o2d.dtsi
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/o2d.dtsi
@@ -19,7 +19,7 @@
 	model = "ifm,o2d";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/o2dnt2.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/o2dnt2.dts
@@ -12,7 +12,7 @@
 	model = "ifm,o2dnt2";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;  // 128MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/o3dnt.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/o3dnt.dts
@@ -12,7 +12,7 @@
 	model = "ifm,o3dnt";
 	compatible = "ifm,o2d";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x04000000>;  // 64MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/pcm032.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/pcm032.dts
@@ -22,7 +22,7 @@
 	model = "phytec,pcm032";
 	compatible = "phytec,pcm032";
 
-	memory {
+	memory@0 {
 		reg = <0x00000000 0x08000000>;	// 128MB
 	};
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/dts/tqm5200.dts
+++ linux-ein-5.4.0/arch/powerpc/boot/dts/tqm5200.dts
@@ -32,7 +32,7 @@
 		};
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x00000000 0x04000000>;	// 64MB
 	};
--- linux-ein-5.4.0.orig/arch/powerpc/boot/libfdt_env.h
+++ linux-ein-5.4.0/arch/powerpc/boot/libfdt_env.h
@@ -6,6 +6,8 @@
 #include <string.h>
 
 #define INT_MAX			((int)(~0U>>1))
+#define UINT32_MAX		((u32)~0U)
+#define INT32_MAX		((s32)(UINT32_MAX >> 1))
 
 #include "of.h"
 
--- linux-ein-5.4.0.orig/arch/powerpc/boot/ns16550.c
+++ linux-ein-5.4.0/arch/powerpc/boot/ns16550.c
@@ -15,6 +15,7 @@
 #include "stdio.h"
 #include "io.h"
 #include "ops.h"
+#include "of.h"
 
 #define UART_DLL	0	/* Out: Divisor Latch Low */
 #define UART_DLM	1	/* Out: Divisor Latch High */
@@ -58,16 +59,20 @@
 	int n;
 	u32 reg_offset;
 
-	if (dt_get_virtual_reg(devp, (void **)&reg_base, 1) < 1)
+	if (dt_get_virtual_reg(devp, (void **)&reg_base, 1) < 1) {
+		printf("virt reg parse fail...\r\n");
 		return -1;
+	}
 
 	n = getprop(devp, "reg-offset", &reg_offset, sizeof(reg_offset));
 	if (n == sizeof(reg_offset))
-		reg_base += reg_offset;
+		reg_base += be32_to_cpu(reg_offset);
 
 	n = getprop(devp, "reg-shift", &reg_shift, sizeof(reg_shift));
 	if (n != sizeof(reg_shift))
 		reg_shift = 0;
+	else
+		reg_shift = be32_to_cpu(reg_shift);
 
 	scdp->open = ns16550_open;
 	scdp->putc = ns16550_putc;
--- linux-ein-5.4.0.orig/arch/powerpc/boot/serial.c
+++ linux-ein-5.4.0/arch/powerpc/boot/serial.c
@@ -128,7 +128,7 @@
 	         dt_is_compatible(devp, "fsl,cpm2-smc-uart"))
 		rc = cpm_console_init(devp, &serial_cd);
 #endif
-#ifdef CONFIG_PPC_MPC52XX
+#ifdef CONFIG_PPC_MPC52xx
 	else if (dt_is_compatible(devp, "fsl,mpc5200-psc-uart"))
 		rc = mpc5200_psc_console_init(devp, &serial_cd);
 #endif
--- linux-ein-5.4.0.orig/arch/powerpc/configs/85xx-hw.config
+++ linux-ein-5.4.0/arch/powerpc/configs/85xx-hw.config
@@ -2,7 +2,6 @@
 CONFIG_AT803X_PHY=y
 CONFIG_ATA=y
 CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_BLK_DEV_SR=y
 CONFIG_BROADCOM_PHY=y
 CONFIG_C293_PCIE=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/amigaone_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/amigaone_defconfig
@@ -47,7 +47,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SYM53C8XX_2=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/chrp32_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/chrp32_defconfig
@@ -45,7 +45,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SYM53C8XX_2=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/g5_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/g5_defconfig
@@ -62,7 +62,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SPI_ATTRS=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/maple_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/maple_defconfig
@@ -41,7 +41,6 @@
 # CONFIG_SCSI_PROC_FS is not set
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_IPR=y
 CONFIG_ATA=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/mpc885_ads_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/mpc885_ads_defconfig
@@ -39,6 +39,7 @@
 # CONFIG_MTD_CFI_I2 is not set
 CONFIG_MTD_CFI_I4=y
 CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_PHYSMAP_OF=y
 # CONFIG_BLK_DEV is not set
 CONFIG_NETDEVICES=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/pasemi_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/pasemi_defconfig
@@ -60,7 +60,6 @@
 CONFIG_CHR_DEV_ST=y
 CONFIG_CHR_DEV_OSST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=y
 CONFIG_SCSI_CONSTANTS=y
@@ -110,7 +109,6 @@
 CONFIG_FB_NVIDIA_I2C=y
 CONFIG_FB_RADEON=y
 # CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_LOGO=y
 CONFIG_SOUND=y
 CONFIG_SND=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/pmac32_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/pmac32_defconfig
@@ -119,7 +119,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/powernv_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/powernv_defconfig
@@ -111,7 +111,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/ppc64_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/ppc64_defconfig
@@ -110,7 +110,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/ppc64e_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/ppc64e_defconfig
@@ -60,7 +60,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/ppc6xx_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/ppc6xx_defconfig
@@ -253,8 +253,6 @@
 CONFIG_ATM_BR2684=m
 CONFIG_BRIDGE=m
 CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
 CONFIG_IPX=m
 CONFIG_ATALK=m
 CONFIG_DEV_APPLETALK=m
@@ -372,7 +370,6 @@
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
@@ -778,7 +775,6 @@
 CONFIG_FB_SM501=m
 CONFIG_FB_IBM_GXT4500=y
 CONFIG_LCD_PLATFORM=m
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
 CONFIG_LOGO=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/pseries_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/pseries_defconfig
@@ -97,7 +97,6 @@
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_FC_ATTRS=y
--- linux-ein-5.4.0.orig/arch/powerpc/configs/skiroot_defconfig
+++ linux-ein-5.4.0/arch/powerpc/configs/skiroot_defconfig
@@ -83,7 +83,6 @@
 # CONFIG_OCXL is not set
 CONFIG_BLK_DEV_SD=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/archrandom.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/archrandom.h
@@ -6,44 +6,35 @@
 
 #include <asm/machdep.h>
 
-static inline int arch_get_random_long(unsigned long *v)
+static inline bool arch_get_random_long(unsigned long *v)
 {
-	return 0;
+	return false;
 }
 
-static inline int arch_get_random_int(unsigned int *v)
+static inline bool arch_get_random_int(unsigned int *v)
 {
-	return 0;
+	return false;
 }
 
-static inline int arch_get_random_seed_long(unsigned long *v)
+static inline bool arch_get_random_seed_long(unsigned long *v)
 {
 	if (ppc_md.get_random_seed)
 		return ppc_md.get_random_seed(v);
 
-	return 0;
+	return false;
 }
-static inline int arch_get_random_seed_int(unsigned int *v)
+
+static inline bool arch_get_random_seed_int(unsigned int *v)
 {
 	unsigned long val;
-	int rc;
+	bool rc;
 
-	rc = arch_get_random_long(&val);
+	rc = arch_get_random_seed_long(&val);
 	if (rc)
 		*v = val;
 
 	return rc;
 }
-
-static inline int arch_has_random(void)
-{
-	return 0;
-}
-
-static inline int arch_has_random_seed(void)
-{
-	return !!ppc_md.get_random_seed;
-}
 #endif /* CONFIG_ARCH_RANDOM */
 
 #ifdef CONFIG_PPC_POWERNV
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/asm-prototypes.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/asm-prototypes.h
@@ -152,9 +152,12 @@
 /* Patch sites */
 extern s32 patch__call_flush_count_cache;
 extern s32 patch__flush_count_cache_return;
+extern s32 patch__flush_link_stack_return;
+extern s32 patch__call_kvm_flush_link_stack;
 extern s32 patch__memset_nocache, patch__memcpy_nocache;
 
 extern long flush_count_cache;
+extern long kvm_flush_link_stack;
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 void kvmppc_save_tm_hv(struct kvm_vcpu *vcpu, u64 msr, bool preserve_nv);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/barrier.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/barrier.h
@@ -44,6 +44,8 @@
 #    define SMPWMB      eieio
 #endif
 
+/* clang defines this macro for a builtin, which will not work with runtime patching */
+#undef __lwsync
 #define __lwsync()	__asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
 #define dma_rmb()	__lwsync()
 #define dma_wmb()	__asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/bitops.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/bitops.h
@@ -217,15 +217,34 @@
  */
 static __inline__ int fls(unsigned int x)
 {
-	return 32 - __builtin_clz(x);
+	int lz;
+
+	if (__builtin_constant_p(x))
+		return x ? 32 - __builtin_clz(x) : 0;
+	asm("cntlzw %0,%1" : "=r" (lz) : "r" (x));
+	return 32 - lz;
 }
 
 #include <asm-generic/bitops/builtin-__fls.h>
 
+/*
+ * 64-bit can do this using one cntlzd (count leading zeroes doubleword)
+ * instruction; for 32-bit we use the generic version, which does two
+ * 32-bit fls calls.
+ */
+#ifdef CONFIG_PPC64
 static __inline__ int fls64(__u64 x)
 {
-	return 64 - __builtin_clzll(x);
+	int lz;
+
+	if (__builtin_constant_p(x))
+		return x ? 64 - __builtin_clzll(x) : 0;
+	asm("cntlzd %0,%1" : "=r" (lz) : "r" (x));
+	return 64 - lz;
 }
+#else
+#include <asm-generic/bitops/fls64.h>
+#endif
 
 #ifdef CONFIG_PPC64
 unsigned int __arch_hweight8(unsigned int w);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/32/kup.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/32/kup.h
@@ -2,6 +2,7 @@
 #ifndef _ASM_POWERPC_BOOK3S_32_KUP_H
 #define _ASM_POWERPC_BOOK3S_32_KUP_H
 
+#include <asm/bug.h>
 #include <asm/book3s/32/mmu-hash.h>
 
 #ifdef __ASSEMBLY__
@@ -75,7 +76,7 @@
 
 .macro kuap_check	current, gpr
 #ifdef CONFIG_PPC_KUAP_DEBUG
-	lwz	\gpr2, KUAP(thread)
+	lwz	\gpr, THREAD + KUAP(\current)
 999:	twnei	\gpr, 0
 	EMIT_BUG_ENTRY 999b, __FILE__, __LINE__, (BUGFLAG_WARNING | BUGFLAG_ONCE)
 #endif
@@ -102,11 +103,13 @@
 	isync();	/* Context sync required after mtsrin() */
 }
 
-static inline void allow_user_access(void __user *to, const void __user *from, u32 size)
+static __always_inline void allow_user_access(void __user *to, const void __user *from,
+					      u32 size, unsigned long dir)
 {
 	u32 addr, end;
 
-	if (__builtin_constant_p(to) && to == NULL)
+	BUILD_BUG_ON(!__builtin_constant_p(dir));
+	if (!(dir & KUAP_WRITE))
 		return;
 
 	addr = (__force u32)to;
@@ -119,11 +122,16 @@
 	kuap_update_sr(mfsrin(addr) & ~SR_KS, addr, end);	/* Clear Ks */
 }
 
-static inline void prevent_user_access(void __user *to, const void __user *from, u32 size)
+static __always_inline void prevent_user_access(void __user *to, const void __user *from,
+						u32 size, unsigned long dir)
 {
 	u32 addr = (__force u32)to;
 	u32 end = min(addr + size, TASK_SIZE);
 
+	BUILD_BUG_ON(!__builtin_constant_p(dir));
+	if (!(dir & KUAP_WRITE))
+		return;
+
 	if (!addr || addr >= TASK_SIZE || !size)
 		return;
 
@@ -131,12 +139,17 @@
 	kuap_update_sr(mfsrin(addr) | SR_KS, addr, end);	/* set Ks */
 }
 
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write)
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
 {
+	unsigned long begin = regs->kuap & 0xf0000000;
+	unsigned long end = regs->kuap << 28;
+
 	if (!is_write)
 		return false;
 
-	return WARN(!regs->kuap, "Bug: write fault blocked by segment registers !");
+	return WARN(address < begin || address >= end,
+		    "Bug: write fault blocked by segment registers !");
 }
 
 #endif /* CONFIG_PPC_KUAP */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/32/pgalloc.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/32/pgalloc.h
@@ -49,7 +49,6 @@
 
 #define get_hugepd_cache_index(x)  (x)
 
-#ifdef CONFIG_SMP
 static inline void pgtable_free_tlb(struct mmu_gather *tlb,
 				    void *table, int shift)
 {
@@ -66,13 +65,6 @@
 
 	pgtable_free(table, shift);
 }
-#else
-static inline void pgtable_free_tlb(struct mmu_gather *tlb,
-				    void *table, int shift)
-{
-	pgtable_free(table, shift);
-}
-#endif
 
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table,
 				  unsigned long address)
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/32/pgtable.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/32/pgtable.h
@@ -37,8 +37,10 @@
  */
 #ifdef CONFIG_PTE_64BIT
 #define PTE_RPN_MASK	(~((1ULL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 36
 #else
 #define PTE_RPN_MASK	(~((1UL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #endif
 
 /*
@@ -555,9 +557,9 @@
 	if (pte_val(*ptep) & _PAGE_HASHPTE)
 		flush_hash_entry(mm, ptep, addr);
 	__asm__ __volatile__("\
-		stw%U0%X0 %2,%0\n\
+		stw%X0 %2,%0\n\
 		eieio\n\
-		stw%U0%X0 %L2,%1"
+		stw%X1 %L2,%1"
 	: "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
 	: "r" (pte) : "memory");
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/hash-4k.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/hash-4k.h
@@ -13,20 +13,19 @@
  */
 #define MAX_EA_BITS_PER_CONTEXT		46
 
-#define REGION_SHIFT		(MAX_EA_BITS_PER_CONTEXT - 2)
 
 /*
- * Our page table limit us to 64TB. Hence for the kernel mapping,
- * each MAP area is limited to 16 TB.
- * The four map areas are:  linear mapping, vmap, IO and vmemmap
+ * Our page table limit us to 64TB. For 64TB physical memory, we only need 64GB
+ * of vmemmap space. To better support sparse memory layout, we use 61TB
+ * linear map range, 1TB of vmalloc, 1TB of I/O and 1TB of vmememmap.
  */
+#define REGION_SHIFT		(40)
 #define H_KERN_MAP_SIZE		(ASM_CONST(1) << REGION_SHIFT)
 
 /*
- * Define the address range of the kernel non-linear virtual area
- * 16TB
+ * Define the address range of the kernel non-linear virtual area (61TB)
  */
-#define H_KERN_VIRT_START	ASM_CONST(0xc000100000000000)
+#define H_KERN_VIRT_START	ASM_CONST(0xc0003d0000000000)
 
 #ifndef __ASSEMBLY__
 #define H_PTE_TABLE_SIZE	(sizeof(pte_t) << H_PTE_INDEX_SIZE)
@@ -156,6 +155,12 @@
 extern int hash__has_transparent_hugepage(void);
 #endif
 
+static inline pmd_t hash__pmd_mkdevmap(pmd_t pmd)
+{
+	BUG();
+	return pmd;
+}
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_HASH_4K_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/hash-64k.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/hash-64k.h
@@ -246,7 +246,7 @@
  */
 static inline int hash__pmd_trans_huge(pmd_t pmd)
 {
-	return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE)) ==
+	return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE | _PAGE_DEVMAP)) ==
 		  (_PAGE_PTE | H_PAGE_THP_HUGE));
 }
 
@@ -272,6 +272,12 @@
 				       unsigned long addr, pmd_t *pmdp);
 extern int hash__has_transparent_hugepage(void);
 #endif /*  CONFIG_TRANSPARENT_HUGEPAGE */
+
+static inline pmd_t hash__pmd_mkdevmap(pmd_t pmd)
+{
+	return __pmd(pmd_val(pmd) | (_PAGE_PTE | H_PAGE_THP_HUGE | _PAGE_DEVMAP));
+}
+
 #endif	/* __ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_HASH_64K_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/kup-radix.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/kup-radix.h
@@ -11,13 +11,12 @@
 
 #ifdef __ASSEMBLY__
 
-.macro kuap_restore_amr	gpr
 #ifdef CONFIG_PPC_KUAP
+.macro kuap_restore_amr	gpr
 	BEGIN_MMU_FTR_SECTION_NESTED(67)
 	ld	\gpr, STACK_REGS_KUAP(r1)
 	mtspr	SPRN_AMR, \gpr
 	END_MMU_FTR_SECTION_NESTED_IFSET(MMU_FTR_RADIX_KUAP, 67)
-#endif
 .endm
 
 .macro kuap_check_amr gpr1, gpr2
@@ -31,6 +30,7 @@
 	END_MMU_FTR_SECTION_NESTED_IFSET(MMU_FTR_RADIX_KUAP, 67)
 #endif
 .endm
+#endif
 
 .macro kuap_save_amr_and_lock gpr1, gpr2, use_cr, msr_pr_cr
 #ifdef CONFIG_PPC_KUAP
@@ -54,6 +54,10 @@
 
 #else /* !__ASSEMBLY__ */
 
+#include <linux/jump_label.h>
+
+DECLARE_STATIC_KEY_FALSE(uaccess_flush_key);
+
 #ifdef CONFIG_PPC_KUAP
 
 #include <asm/reg.h>
@@ -77,32 +81,39 @@
 	isync();
 }
 
-static inline void allow_user_access(void __user *to, const void __user *from,
-				     unsigned long size)
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
+{
+	return WARN(mmu_has_feature(MMU_FTR_RADIX_KUAP) &&
+		    (regs->kuap & (is_write ? AMR_KUAP_BLOCK_WRITE : AMR_KUAP_BLOCK_READ)),
+		    "Bug: %s fault blocked by AMR!", is_write ? "Write" : "Read");
+}
+#else /* CONFIG_PPC_KUAP */
+static inline void kuap_restore_amr(struct pt_regs *regs, unsigned long amr) { }
+static inline void set_kuap(unsigned long value) { }
+#endif /* !CONFIG_PPC_KUAP */
+
+static __always_inline void allow_user_access(void __user *to, const void __user *from,
+					      unsigned long size, unsigned long dir)
 {
 	// This is written so we can resolve to a single case at build time
-	if (__builtin_constant_p(to) && to == NULL)
+	BUILD_BUG_ON(!__builtin_constant_p(dir));
+	if (dir == KUAP_READ)
 		set_kuap(AMR_KUAP_BLOCK_WRITE);
-	else if (__builtin_constant_p(from) && from == NULL)
+	else if (dir == KUAP_WRITE)
 		set_kuap(AMR_KUAP_BLOCK_READ);
 	else
 		set_kuap(0);
 }
 
 static inline void prevent_user_access(void __user *to, const void __user *from,
-				       unsigned long size)
+				       unsigned long size, unsigned long dir)
 {
 	set_kuap(AMR_KUAP_BLOCKED);
+	if (static_branch_unlikely(&uaccess_flush_key))
+		do_uaccess_flush();
 }
 
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write)
-{
-	return WARN(mmu_has_feature(MMU_FTR_RADIX_KUAP) &&
-		    (regs->kuap & (is_write ? AMR_KUAP_BLOCK_WRITE : AMR_KUAP_BLOCK_READ)),
-		    "Bug: %s fault blocked by AMR!", is_write ? "Write" : "Read");
-}
-#endif /* CONFIG_PPC_KUAP */
-
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_KUP_RADIX_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/mmu-hash.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/mmu-hash.h
@@ -600,8 +600,11 @@
  *
  */
 #define MAX_USER_CONTEXT	((ASM_CONST(1) << CONTEXT_BITS) - 2)
+
+// The + 2 accounts for INVALID_REGION and 1 more to avoid overlap with kernel
 #define MIN_USER_CONTEXT	(MAX_KERNEL_CTX_CNT + MAX_VMALLOC_CTX_CNT + \
-				 MAX_IO_CTX_CNT + MAX_VMEMMAP_CTX_CNT)
+				 MAX_IO_CTX_CNT + MAX_VMEMMAP_CTX_CNT + 2)
+
 /*
  * For platforms that support on 65bit VA we limit the context bits
  */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/mmu.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/mmu.h
@@ -225,14 +225,14 @@
 
 extern void hash__setup_initial_memory_limit(phys_addr_t first_memblock_base,
 					 phys_addr_t first_memblock_size);
-extern void radix__setup_initial_memory_limit(phys_addr_t first_memblock_base,
-					 phys_addr_t first_memblock_size);
 static inline void setup_initial_memory_limit(phys_addr_t first_memblock_base,
 					      phys_addr_t first_memblock_size)
 {
-	if (early_radix_enabled())
-		return radix__setup_initial_memory_limit(first_memblock_base,
-						   first_memblock_size);
+	/*
+	 * Hash has more strict restrictions. At this point we don't
+	 * know which translations we will pick. Hence go with hash
+	 * restrictions.
+	 */
 	return hash__setup_initial_memory_limit(first_memblock_base,
 					   first_memblock_size);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/pgalloc.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/pgalloc.h
@@ -19,9 +19,7 @@
 extern pmd_t *pmd_fragment_alloc(struct mm_struct *, unsigned long);
 extern void pmd_fragment_free(unsigned long *);
 extern void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift);
-#ifdef CONFIG_SMP
 extern void __tlb_remove_table(void *_table);
-#endif
 void pte_frag_destroy(void *pte_frag);
 
 static inline pgd_t *radix__pgd_alloc(struct mm_struct *mm)
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -998,10 +998,25 @@
 #define pud_page_vaddr(pud)	__va(pud_val(pud) & ~PUD_MASKED_BITS)
 #define pgd_page_vaddr(pgd)	__va(pgd_val(pgd) & ~PGD_MASKED_BITS)
 
-#define pgd_index(address) (((address) >> (PGDIR_SHIFT)) & (PTRS_PER_PGD - 1))
-#define pud_index(address) (((address) >> (PUD_SHIFT)) & (PTRS_PER_PUD - 1))
-#define pmd_index(address) (((address) >> (PMD_SHIFT)) & (PTRS_PER_PMD - 1))
-#define pte_index(address) (((address) >> (PAGE_SHIFT)) & (PTRS_PER_PTE - 1))
+static inline unsigned long pgd_index(unsigned long address)
+{
+	return (address >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1);
+}
+
+static inline unsigned long pud_index(unsigned long address)
+{
+	return (address >> PUD_SHIFT) & (PTRS_PER_PUD - 1);
+}
+
+static inline unsigned long pmd_index(unsigned long address)
+{
+	return (address >> PMD_SHIFT) & (PTRS_PER_PMD - 1);
+}
+
+static inline unsigned long pte_index(unsigned long address)
+{
+	return (address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1);
+}
 
 /*
  * Find an entry in a page-table-directory.  We combine the address region
@@ -1303,7 +1318,9 @@
 
 static inline pmd_t pmd_mkdevmap(pmd_t pmd)
 {
-	return __pmd(pmd_val(pmd) | (_PAGE_PTE | _PAGE_DEVMAP));
+	if (radix_enabled())
+		return radix__pmd_mkdevmap(pmd);
+	return hash__pmd_mkdevmap(pmd);
 }
 
 static inline int pmd_devmap(pmd_t pmd)
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/book3s/64/radix.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/book3s/64/radix.h
@@ -206,8 +206,10 @@
 	 * from ptesync, it should probably go into update_mmu_cache, rather
 	 * than set_pte_at (which is used to set ptes unrelated to faults).
 	 *
-	 * Spurious faults to vmalloc region are not tolerated, so there is
-	 * a ptesync in flush_cache_vmap.
+	 * Spurious faults from the kernel memory are not tolerated, so there
+	 * is a ptesync in flush_cache_vmap, and __map_kernel_page() follows
+	 * the pte update sequence from ISA Book III 6.10 Translation Table
+	 * Update Synchronization Requirements.
 	 */
 }
 
@@ -263,6 +265,11 @@
 }
 #endif
 
+static inline pmd_t radix__pmd_mkdevmap(pmd_t pmd)
+{
+	return __pmd(pmd_val(pmd) | (_PAGE_PTE | _PAGE_DEVMAP));
+}
+
 extern int __meminit radix__vmemmap_create_mapping(unsigned long start,
 					     unsigned long page_size,
 					     unsigned long phys);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/bpf_perf_event.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/bpf_perf_event.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_POWERPC_BPF_PERF_EVENT_H
+#define _ASM_POWERPC_BPF_PERF_EVENT_H
+
+#include <asm/ptrace.h>
+
+typedef struct user_pt_regs bpf_user_pt_regs_t;
+
+#endif /* _ASM_POWERPC_BPF_PERF_EVENT_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/cache.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/cache.h
@@ -55,42 +55,48 @@
 
 extern struct ppc64_caches ppc64_caches;
 
-static inline u32 l1_cache_shift(void)
+static inline u32 l1_dcache_shift(void)
 {
 	return ppc64_caches.l1d.log_block_size;
 }
 
-static inline u32 l1_cache_bytes(void)
+static inline u32 l1_dcache_bytes(void)
 {
 	return ppc64_caches.l1d.block_size;
 }
+
+static inline u32 l1_icache_shift(void)
+{
+	return ppc64_caches.l1i.log_block_size;
+}
+
+static inline u32 l1_icache_bytes(void)
+{
+	return ppc64_caches.l1i.block_size;
+}
 #else
-static inline u32 l1_cache_shift(void)
+static inline u32 l1_dcache_shift(void)
 {
 	return L1_CACHE_SHIFT;
 }
 
-static inline u32 l1_cache_bytes(void)
+static inline u32 l1_dcache_bytes(void)
 {
 	return L1_CACHE_BYTES;
 }
-#endif
-#endif /* ! __ASSEMBLY__ */
 
-#if defined(__ASSEMBLY__)
-/*
- * For a snooping icache, we still need a dummy icbi to purge all the
- * prefetched instructions from the ifetch buffers. We also need a sync
- * before the icbi to order the the actual stores to memory that might
- * have modified instructions with the icbi.
- */
-#define PURGE_PREFETCHED_INS	\
-	sync;			\
-	icbi	0,r3;		\
-	sync;			\
-	isync
+static inline u32 l1_icache_shift(void)
+{
+	return L1_CACHE_SHIFT;
+}
+
+static inline u32 l1_icache_bytes(void)
+{
+	return L1_CACHE_BYTES;
+}
+
+#endif
 
-#else
 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
 
 #ifdef CONFIG_PPC_BOOK3S_32
@@ -124,6 +130,17 @@
 {
 	__asm__ __volatile__ ("dcbst 0, %0" : : "r"(addr) : "memory");
 }
+
+static inline void icbi(void *addr)
+{
+	asm volatile ("icbi 0, %0" : : "r"(addr) : "memory");
+}
+
+static inline void iccci(void *addr)
+{
+	asm volatile ("iccci 0, %0" : : "r"(addr) : "memory");
+}
+
 #endif /* !__ASSEMBLY__ */
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_CACHE_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/cacheflush.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/cacheflush.h
@@ -42,29 +42,25 @@
 #define flush_dcache_mmap_lock(mapping)		do { } while (0)
 #define flush_dcache_mmap_unlock(mapping)	do { } while (0)
 
-extern void flush_icache_range(unsigned long, unsigned long);
+void flush_icache_range(unsigned long start, unsigned long stop);
 extern void flush_icache_user_range(struct vm_area_struct *vma,
 				    struct page *page, unsigned long addr,
 				    int len);
-extern void __flush_dcache_icache(void *page_va);
 extern void flush_dcache_icache_page(struct page *page);
-#if defined(CONFIG_PPC32) && !defined(CONFIG_BOOKE)
-extern void __flush_dcache_icache_phys(unsigned long physaddr);
-#else
-static inline void __flush_dcache_icache_phys(unsigned long physaddr)
-{
-	BUG();
-}
-#endif
+void __flush_dcache_icache(void *page);
 
-/*
- * Write any modified data cache blocks out to memory and invalidate them.
- * Does not invalidate the corresponding instruction cache blocks.
+/**
+ * flush_dcache_range(): Write any modified data cache blocks out to memory and
+ * invalidate them. Does not invalidate the corresponding instruction cache
+ * blocks.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
  */
 static inline void flush_dcache_range(unsigned long start, unsigned long stop)
 {
-	unsigned long shift = l1_cache_shift();
-	unsigned long bytes = l1_cache_bytes();
+	unsigned long shift = l1_dcache_shift();
+	unsigned long bytes = l1_dcache_bytes();
 	void *addr = (void *)(start & ~(bytes - 1));
 	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
 	unsigned long i;
@@ -89,8 +85,8 @@
  */
 static inline void clean_dcache_range(unsigned long start, unsigned long stop)
 {
-	unsigned long shift = l1_cache_shift();
-	unsigned long bytes = l1_cache_bytes();
+	unsigned long shift = l1_dcache_shift();
+	unsigned long bytes = l1_dcache_bytes();
 	void *addr = (void *)(start & ~(bytes - 1));
 	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
 	unsigned long i;
@@ -108,8 +104,8 @@
 static inline void invalidate_dcache_range(unsigned long start,
 					   unsigned long stop)
 {
-	unsigned long shift = l1_cache_shift();
-	unsigned long bytes = l1_cache_bytes();
+	unsigned long shift = l1_dcache_shift();
+	unsigned long bytes = l1_dcache_bytes();
 	void *addr = (void *)(start & ~(bytes - 1));
 	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
 	unsigned long i;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/code-patching.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/code-patching.h
@@ -22,6 +22,7 @@
 #define BRANCH_ABSOLUTE	0x2
 
 bool is_offset_in_branch_range(long offset);
+bool is_offset_in_cond_branch_range(long offset);
 unsigned int create_branch(const unsigned int *addr,
 			   unsigned long target, int flags);
 unsigned int create_cond_branch(const unsigned int *addr,
@@ -72,7 +73,7 @@
 #endif
 
 #define OP_RT_RA_MASK	0xffff0000UL
-#define LIS_R2		0x3c020000UL
+#define LIS_R2		0x3c400000UL
 #define ADDIS_R2_R12	0x3c4c0000UL
 #define ADDI_R2_R2	0x38420000UL
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/cpm1.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/cpm1.h
@@ -68,6 +68,7 @@
 #define PROFF_SPI	((uint)0x0180)
 #define PROFF_SCC3	((uint)0x0200)
 #define PROFF_SMC1	((uint)0x0280)
+#define PROFF_DSP1	((uint)0x02c0)
 #define PROFF_SCC4	((uint)0x0300)
 #define PROFF_SMC2	((uint)0x0380)
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/cpu_has_feature.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/cpu_has_feature.h
@@ -7,7 +7,7 @@
 #include <linux/bug.h>
 #include <asm/cputable.h>
 
-static inline bool early_cpu_has_feature(unsigned long feature)
+static __always_inline bool early_cpu_has_feature(unsigned long feature)
 {
 	return !!((CPU_FTRS_ALWAYS & feature) ||
 		  (CPU_FTRS_POSSIBLE & cur_cpu_spec->cpu_features & feature));
@@ -46,7 +46,7 @@
 	return static_branch_likely(&cpu_feature_keys[i]);
 }
 #else
-static inline bool cpu_has_feature(unsigned long feature)
+static __always_inline bool cpu_has_feature(unsigned long feature)
 {
 	return early_cpu_has_feature(feature);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/cputable.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/cputable.h
@@ -367,7 +367,7 @@
 	    CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX)
 #define CPU_FTRS_82XX	(CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_G2_LE	(CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \
-	    CPU_FTR_MAYBE_CAN_NAP)
+	    CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_E300	(CPU_FTR_MAYBE_CAN_DOZE | \
 	    CPU_FTR_MAYBE_CAN_NAP | \
 	    CPU_FTR_COMMON  | CPU_FTR_NOEXECUTE)
@@ -407,7 +407,6 @@
 	    CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
 	    CPU_FTR_DEBUG_LVL_EXC | CPU_FTR_EMB_HV | CPU_FTR_ALTIVEC_COMP | \
 	    CPU_FTR_CELL_TB_BUG | CPU_FTR_SMT)
-#define CPU_FTRS_GENERIC_32	(CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
 
 /* 64-bit CPUs */
 #define CPU_FTRS_PPC970	(CPU_FTR_LWSYNC | \
@@ -507,8 +506,6 @@
 	    CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX |
 	    CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 |
 	    CPU_FTRS_CLASSIC32 |
-#else
-	    CPU_FTRS_GENERIC_32 |
 #endif
 #ifdef CONFIG_PPC_8xx
 	    CPU_FTRS_8XX |
@@ -585,8 +582,6 @@
 	    CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX &
 	    CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 &
 	    CPU_FTRS_CLASSIC32 &
-#else
-	    CPU_FTRS_GENERIC_32 &
 #endif
 #ifdef CONFIG_PPC_8xx
 	    CPU_FTRS_8XX &
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/cputhreads.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/cputhreads.h
@@ -3,6 +3,7 @@
 #define _ASM_POWERPC_CPUTHREADS_H
 
 #ifndef __ASSEMBLY__
+#include <asm/cpu_has_feature.h>
 #include <linux/cpumask.h>
 #include <asm/cpu_has_feature.h>
 
@@ -99,6 +100,36 @@
 	return cpu | (threads_per_core - 1);
 }
 
+/*
+ * tlb_thread_siblings are siblings which share a TLB. This is not
+ * architected, is not something a hypervisor could emulate and a future
+ * CPU may change behaviour even in compat mode, so this should only be
+ * used on PowerNV, and only with care.
+ */
+static inline int cpu_first_tlb_thread_sibling(int cpu)
+{
+	if (cpu_has_feature(CPU_FTR_ARCH_300) && (threads_per_core == 8))
+		return cpu & ~0x6;	/* Big Core */
+	else
+		return cpu_first_thread_sibling(cpu);
+}
+
+static inline int cpu_last_tlb_thread_sibling(int cpu)
+{
+	if (cpu_has_feature(CPU_FTR_ARCH_300) && (threads_per_core == 8))
+		return cpu | 0x6;	/* Big Core */
+	else
+		return cpu_last_thread_sibling(cpu);
+}
+
+static inline int cpu_tlb_thread_sibling_step(void)
+{
+	if (cpu_has_feature(CPU_FTR_ARCH_300) && (threads_per_core == 8))
+		return 2;		/* Big Core */
+	else
+		return 1;
+}
+
 static inline u32 get_tensr(void)
 {
 #ifdef	CONFIG_BOOKE
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/dcr-native.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/dcr-native.h
@@ -53,8 +53,8 @@
 #define mfdcr(rn)						\
 	({unsigned int rval;					\
 	if (__builtin_constant_p(rn) && rn < 1024)		\
-		asm volatile("mfdcr %0," __stringify(rn)	\
-		              : "=r" (rval));			\
+		asm volatile("mfdcr %0, %1" : "=r" (rval)	\
+			      : "n" (rn));			\
 	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
 		rval = mfdcrx(rn);				\
 	else							\
@@ -64,8 +64,8 @@
 #define mtdcr(rn, v)						\
 do {								\
 	if (__builtin_constant_p(rn) && rn < 1024)		\
-		asm volatile("mtdcr " __stringify(rn) ",%0"	\
-			      : : "r" (v)); 			\
+		asm volatile("mtdcr %0, %1"			\
+			      : : "n" (rn), "r" (v));		\
 	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
 		mtdcrx(rn, v);					\
 	else							\
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/drmem.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/drmem.h
@@ -8,31 +8,44 @@
 #ifndef _ASM_POWERPC_LMB_H
 #define _ASM_POWERPC_LMB_H
 
+#include <linux/sched.h>
+
 struct drmem_lmb {
 	u64     base_addr;
 	u32     drc_index;
 	u32     aa_index;
 	u32     flags;
-#ifdef CONFIG_MEMORY_HOTPLUG
-	int	nid;
-#endif
 };
 
 struct drmem_lmb_info {
 	struct drmem_lmb        *lmbs;
 	int                     n_lmbs;
-	u32                     lmb_size;
+	u64                     lmb_size;
 };
 
 extern struct drmem_lmb_info *drmem_info;
 
+static inline struct drmem_lmb *drmem_lmb_next(struct drmem_lmb *lmb,
+					       const struct drmem_lmb *start)
+{
+	/*
+	 * DLPAR code paths can take several milliseconds per element
+	 * when interacting with firmware. Ensure that we don't
+	 * unfairly monopolize the CPU.
+	 */
+	if (((++lmb - start) % 16) == 0)
+		cond_resched();
+
+	return lmb;
+}
+
 #define for_each_drmem_lmb_in_range(lmb, start, end)		\
-	for ((lmb) = (start); (lmb) <= (end); (lmb)++)
+	for ((lmb) = (start); (lmb) < (end); lmb = drmem_lmb_next(lmb, start))
 
 #define for_each_drmem_lmb(lmb)					\
 	for_each_drmem_lmb_in_range((lmb),			\
 		&drmem_info->lmbs[0],				\
-		&drmem_info->lmbs[drmem_info->n_lmbs - 1])
+		&drmem_info->lmbs[drmem_info->n_lmbs])
 
 /*
  * The of_drconf_cell_v1 struct defines the layout of the LMB data
@@ -66,7 +79,7 @@
 #define DRCONF_MEM_AI_INVALID	0x00000040
 #define DRCONF_MEM_RESERVED	0x00000080
 
-static inline u32 drmem_lmb_size(void)
+static inline u64 drmem_lmb_size(void)
 {
 	return drmem_info->lmb_size;
 }
@@ -103,22 +116,4 @@
 	lmb->aa_index = 0xffffffff;
 }
 
-#ifdef CONFIG_MEMORY_HOTPLUG
-static inline void lmb_set_nid(struct drmem_lmb *lmb)
-{
-	lmb->nid = memory_add_physaddr_to_nid(lmb->base_addr);
-}
-static inline void lmb_clear_nid(struct drmem_lmb *lmb)
-{
-	lmb->nid = -1;
-}
-#else
-static inline void lmb_set_nid(struct drmem_lmb *lmb)
-{
-}
-static inline void lmb_clear_nid(struct drmem_lmb *lmb)
-{
-}
-#endif
-
 #endif /* _ASM_POWERPC_LMB_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/exception-64s.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/exception-64s.h
@@ -61,11 +61,18 @@
 	nop;								\
 	nop
 
+#define ENTRY_FLUSH_SLOT						\
+	ENTRY_FLUSH_FIXUP_SECTION;					\
+	nop;								\
+	nop;								\
+	nop;
+
 /*
  * r10 must be free to use, r13 must be paca
  */
 #define INTERRUPT_TO_KERNEL						\
-	STF_ENTRY_BARRIER_SLOT
+	STF_ENTRY_BARRIER_SLOT;						\
+	ENTRY_FLUSH_SLOT
 
 /*
  * Macros for annotating the expected destination of (h)rfid
@@ -127,6 +134,9 @@
 	hrfid;								\
 	b	hrfi_flush_fallback
 
+#else /* __ASSEMBLY__ */
+/* Prototype for function defined in exceptions-64s.S */
+void do_uaccess_flush(void);
 #endif /* __ASSEMBLY__ */
 
 #endif	/* _ASM_POWERPC_EXCEPTION_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/fadump-internal.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/fadump-internal.h
@@ -64,12 +64,14 @@
 };
 
 /* fadump memory ranges info */
+#define RNG_NAME_SZ			16
 struct fadump_mrange_info {
-	char				name[16];
+	char				name[RNG_NAME_SZ];
 	struct fadump_memory_range	*mem_ranges;
 	u32				mem_ranges_sz;
 	u32				mem_range_cnt;
 	u32				max_mem_ranges;
+	bool				is_static;
 };
 
 /* Platform specific callback functions */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/feature-fixups.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/feature-fixups.h
@@ -205,6 +205,22 @@
 	FTR_ENTRY_OFFSET 955b-956b;			\
 	.popsection;
 
+#define UACCESS_FLUSH_FIXUP_SECTION			\
+959:							\
+	.pushsection __uaccess_flush_fixup,"a";		\
+	.align 2;					\
+960:							\
+	FTR_ENTRY_OFFSET 959b-960b;			\
+	.popsection;
+
+#define ENTRY_FLUSH_FIXUP_SECTION			\
+957:							\
+	.pushsection __entry_flush_fixup,"a";		\
+	.align 2;					\
+958:							\
+	FTR_ENTRY_OFFSET 957b-958b;			\
+	.popsection;
+
 #define RFI_FLUSH_FIXUP_SECTION				\
 951:							\
 	.pushsection __rfi_flush_fixup,"a";		\
@@ -237,8 +253,11 @@
 #include <linux/types.h>
 
 extern long stf_barrier_fallback;
+extern long entry_flush_fallback;
 extern long __start___stf_entry_barrier_fixup, __stop___stf_entry_barrier_fixup;
 extern long __start___stf_exit_barrier_fixup, __stop___stf_exit_barrier_fixup;
+extern long __start___uaccess_flush_fixup, __stop___uaccess_flush_fixup;
+extern long __start___entry_flush_fixup, __stop___entry_flush_fixup;
 extern long __start___rfi_flush_fixup, __stop___rfi_flush_fixup;
 extern long __start___barrier_nospec_fixup, __stop___barrier_nospec_fixup;
 extern long __start__btb_flush_fixup, __stop__btb_flush_fixup;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/fixmap.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/fixmap.h
@@ -77,7 +77,12 @@
 static inline void __set_fixmap(enum fixed_addresses idx,
 				phys_addr_t phys, pgprot_t flags)
 {
-	map_kernel_page(fix_to_virt(idx), phys, flags);
+	if (__builtin_constant_p(idx))
+		BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
+	else if (WARN_ON(idx >= __end_of_fixed_addresses))
+		return;
+
+	map_kernel_page(__fix_to_virt(idx), phys, flags);
 }
 
 #endif /* !__ASSEMBLY__ */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/ftrace.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/ftrace.h
@@ -96,7 +96,7 @@
 #endif /* PPC64_ELF_ABI_v1 */
 #endif /* CONFIG_FTRACE_SYSCALLS */
 
-#ifdef CONFIG_PPC64
+#if defined(CONFIG_PPC64) && defined(CONFIG_FUNCTION_TRACER)
 #include <asm/paca.h>
 
 static inline void this_cpu_disable_ftrace(void)
@@ -108,9 +108,12 @@
 {
 	get_paca()->ftrace_enabled = 1;
 }
+
+void ftrace_free_init_tramp(void);
 #else /* CONFIG_PPC64 */
 static inline void this_cpu_disable_ftrace(void) { }
 static inline void this_cpu_enable_ftrace(void) { }
+static inline void ftrace_free_init_tramp(void) { }
 #endif /* CONFIG_PPC64 */
 #endif /* !__ASSEMBLY__ */
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/futex.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/futex.h
@@ -35,7 +35,7 @@
 {
 	int oldval = 0, ret;
 
-	allow_write_to_user(uaddr, sizeof(*uaddr));
+	allow_read_write_user(uaddr, uaddr, sizeof(*uaddr));
 	pagefault_disable();
 
 	switch (op) {
@@ -62,7 +62,7 @@
 
 	*oval = oldval;
 
-	prevent_write_to_user(uaddr, sizeof(*uaddr));
+	prevent_read_write_user(uaddr, uaddr, sizeof(*uaddr));
 	return ret;
 }
 
@@ -76,7 +76,8 @@
 	if (!access_ok(uaddr, sizeof(u32)))
 		return -EFAULT;
 
-	allow_write_to_user(uaddr, sizeof(*uaddr));
+	allow_read_write_user(uaddr, uaddr, sizeof(*uaddr));
+
         __asm__ __volatile__ (
         PPC_ATOMIC_ENTRY_BARRIER
 "1:     lwarx   %1,0,%3         # futex_atomic_cmpxchg_inatomic\n\
@@ -97,7 +98,8 @@
         : "cc", "memory");
 
 	*uval = prev;
-	prevent_write_to_user(uaddr, sizeof(*uaddr));
+	prevent_read_write_user(uaddr, uaddr, sizeof(*uaddr));
+
         return ret;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/imc-pmu.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/imc-pmu.h
@@ -132,7 +132,7 @@
  * are inited.
  */
 struct imc_pmu_ref {
-	struct mutex lock;
+	spinlock_t lock;
 	unsigned int id;
 	int refc;
 };
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/io.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/io.h
@@ -345,25 +345,37 @@
  */
 static inline void __raw_rm_writeb(u8 val, volatile void __iomem *paddr)
 {
-	__asm__ __volatile__("stbcix %0,0,%1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      stbcix %0,0,%1;  \
+			      .machine pop;"
 		: : "r" (val), "r" (paddr) : "memory");
 }
 
 static inline void __raw_rm_writew(u16 val, volatile void __iomem *paddr)
 {
-	__asm__ __volatile__("sthcix %0,0,%1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      sthcix %0,0,%1;  \
+			      .machine pop;"
 		: : "r" (val), "r" (paddr) : "memory");
 }
 
 static inline void __raw_rm_writel(u32 val, volatile void __iomem *paddr)
 {
-	__asm__ __volatile__("stwcix %0,0,%1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      stwcix %0,0,%1;  \
+			      .machine pop;"
 		: : "r" (val), "r" (paddr) : "memory");
 }
 
 static inline void __raw_rm_writeq(u64 val, volatile void __iomem *paddr)
 {
-	__asm__ __volatile__("stdcix %0,0,%1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      stdcix %0,0,%1;  \
+			      .machine pop;"
 		: : "r" (val), "r" (paddr) : "memory");
 }
 
@@ -375,7 +387,10 @@
 static inline u8 __raw_rm_readb(volatile void __iomem *paddr)
 {
 	u8 ret;
-	__asm__ __volatile__("lbzcix %0,0, %1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      lbzcix %0,0, %1; \
+			      .machine pop;"
 			     : "=r" (ret) : "r" (paddr) : "memory");
 	return ret;
 }
@@ -383,7 +398,10 @@
 static inline u16 __raw_rm_readw(volatile void __iomem *paddr)
 {
 	u16 ret;
-	__asm__ __volatile__("lhzcix %0,0, %1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      lhzcix %0,0, %1; \
+			      .machine pop;"
 			     : "=r" (ret) : "r" (paddr) : "memory");
 	return ret;
 }
@@ -391,7 +409,10 @@
 static inline u32 __raw_rm_readl(volatile void __iomem *paddr)
 {
 	u32 ret;
-	__asm__ __volatile__("lwzcix %0,0, %1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      lwzcix %0,0, %1; \
+			      .machine pop;"
 			     : "=r" (ret) : "r" (paddr) : "memory");
 	return ret;
 }
@@ -399,7 +420,10 @@
 static inline u64 __raw_rm_readq(volatile void __iomem *paddr)
 {
 	u64 ret;
-	__asm__ __volatile__("ldcix %0,0, %1"
+	__asm__ __volatile__(".machine push;   \
+			      .machine power6; \
+			      ldcix %0,0, %1;  \
+			      .machine pop;"
 			     : "=r" (ret) : "r" (paddr) : "memory");
 	return ret;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/kasan.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/kasan.h
@@ -23,9 +23,7 @@
 
 #define KASAN_SHADOW_OFFSET	ASM_CONST(CONFIG_KASAN_SHADOW_OFFSET)
 
-#define KASAN_SHADOW_END	0UL
-
-#define KASAN_SHADOW_SIZE	(KASAN_SHADOW_END - KASAN_SHADOW_START)
+#define KASAN_SHADOW_END	(-(-KASAN_SHADOW_START >> KASAN_SHADOW_SCALE_SHIFT))
 
 #ifdef CONFIG_KASAN
 void kasan_early_init(void);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/kup.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/kup.h
@@ -2,7 +2,11 @@
 #ifndef _ASM_POWERPC_KUP_H_
 #define _ASM_POWERPC_KUP_H_
 
-#ifdef CONFIG_PPC64
+#define KUAP_READ	1
+#define KUAP_WRITE	2
+#define KUAP_READ_WRITE	(KUAP_READ | KUAP_WRITE)
+
+#ifdef CONFIG_PPC_BOOK3S_64
 #include <asm/book3s/64/kup-radix.h>
 #endif
 #ifdef CONFIG_PPC_8xx
@@ -20,9 +24,15 @@
 .macro kuap_restore	sp, current, gpr1, gpr2, gpr3
 .endm
 
+.macro kuap_restore_amr gpr
+.endm
+
 .macro kuap_check	current, gpr
 .endm
 
+.macro kuap_check_amr	gpr1, gpr2
+.endm
+
 #endif
 
 #else /* !__ASSEMBLY__ */
@@ -41,33 +51,60 @@
 void setup_kuap(bool disabled);
 #else
 static inline void setup_kuap(bool disabled) { }
+
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
+{
+	return false;
+}
+
+static inline void kuap_check_amr(void) { }
+
+/*
+ * book3s/64/kup-radix.h defines these functions for the !KUAP case to flush
+ * the L1D cache after user accesses. Only include the empty stubs for other
+ * platforms.
+ */
+#ifndef CONFIG_PPC_BOOK3S_64
 static inline void allow_user_access(void __user *to, const void __user *from,
-				     unsigned long size) { }
+				     unsigned long size, unsigned long dir) { }
 static inline void prevent_user_access(void __user *to, const void __user *from,
-				       unsigned long size) { }
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write) { return false; }
+				       unsigned long size, unsigned long dir) { }
+#endif /* CONFIG_PPC_BOOK3S_64 */
 #endif /* CONFIG_PPC_KUAP */
 
 static inline void allow_read_from_user(const void __user *from, unsigned long size)
 {
-	allow_user_access(NULL, from, size);
+	allow_user_access(NULL, from, size, KUAP_READ);
 }
 
 static inline void allow_write_to_user(void __user *to, unsigned long size)
 {
-	allow_user_access(to, NULL, size);
+	allow_user_access(to, NULL, size, KUAP_WRITE);
+}
+
+static inline void allow_read_write_user(void __user *to, const void __user *from,
+					 unsigned long size)
+{
+	allow_user_access(to, from, size, KUAP_READ_WRITE);
 }
 
 static inline void prevent_read_from_user(const void __user *from, unsigned long size)
 {
-	prevent_user_access(NULL, from, size);
+	prevent_user_access(NULL, from, size, KUAP_READ);
 }
 
 static inline void prevent_write_to_user(void __user *to, unsigned long size)
 {
-	prevent_user_access(to, NULL, size);
+	prevent_user_access(to, NULL, size, KUAP_WRITE);
+}
+
+static inline void prevent_read_write_user(void __user *to, const void __user *from,
+					   unsigned long size)
+{
+	prevent_user_access(to, from, size, KUAP_READ_WRITE);
 }
 
 #endif /* !__ASSEMBLY__ */
 
-#endif /* _ASM_POWERPC_KUP_H_ */
+#endif /* _ASM_POWERPC_KUAP_H_ */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/kvm_asm.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/kvm_asm.h
@@ -150,4 +150,7 @@
 
 #define KVM_INST_FETCH_FAILED	-1
 
+/* Extract PO and XOP opcode fields */
+#define PO_XOP_OPCODE_MASK 0xfc0007fe
+
 #endif /* __POWERPC_KVM_ASM_H__ */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/kvm_host.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/kvm_host.h
@@ -58,7 +58,8 @@
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 
 extern int kvm_unmap_hva_range(struct kvm *kvm,
-			       unsigned long start, unsigned long end);
+			       unsigned long start, unsigned long end,
+			       unsigned flags);
 extern int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 extern int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
 extern int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/machdep.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/machdep.h
@@ -59,6 +59,9 @@
 	int		(*pcibios_root_bridge_prepare)(struct pci_host_bridge
 				*bridge);
 
+	/* finds all the pci_controllers present at boot */
+	void 		(*discover_phbs)(void);
+
 	/* To setup PHBs when using automatic OF platform driver for PCI */
 	int		(*pci_setup_phb)(struct pci_controller *host);
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/mmu_context.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/mmu_context.h
@@ -216,7 +216,7 @@
  */
 static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
-	switch_mm(prev, next, current);
+	switch_mm_irqs_off(prev, next, current);
 }
 
 /* We don't currently use enter_lazy_tlb() for anything */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/nohash/32/kup-8xx.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/nohash/32/kup-8xx.h
@@ -34,18 +34,19 @@
 #include <asm/reg.h>
 
 static inline void allow_user_access(void __user *to, const void __user *from,
-				     unsigned long size)
+				     unsigned long size, unsigned long dir)
 {
 	mtspr(SPRN_MD_AP, MD_APG_INIT);
 }
 
 static inline void prevent_user_access(void __user *to, const void __user *from,
-				       unsigned long size)
+				       unsigned long size, unsigned long dir)
 {
 	mtspr(SPRN_MD_AP, MD_APG_KUAP);
 }
 
-static inline bool bad_kuap_fault(struct pt_regs *regs, bool is_write)
+static inline bool
+bad_kuap_fault(struct pt_regs *regs, unsigned long address, bool is_write)
 {
 	return WARN(!((regs->kuap ^ MD_APG_KUAP) & 0xf0000000),
 		    "Bug: fault blocked by AP register !");
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/nohash/32/pgtable.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/nohash/32/pgtable.h
@@ -148,8 +148,10 @@
  */
 #if defined(CONFIG_PPC32) && defined(CONFIG_PTE_64BIT)
 #define PTE_RPN_MASK	(~((1ULL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 36
 #else
 #define PTE_RPN_MASK	(~((1UL << PTE_RPN_SHIFT) - 1))
+#define MAX_POSSIBLE_PHYSMEM_BITS 32
 #endif
 
 /*
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/nohash/32/pte-8xx.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/nohash/32/pte-8xx.h
@@ -91,6 +91,13 @@
 
 #define pte_wrprotect pte_wrprotect
 
+static inline int pte_read(pte_t pte)
+{
+	return (pte_val(pte) & _PAGE_RO) != _PAGE_NA;
+}
+
+#define pte_read pte_read
+
 static inline int pte_write(pte_t pte)
 {
 	return !(pte_val(pte) & _PAGE_RO);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/nohash/64/pgtable.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/nohash/64/pgtable.h
@@ -244,7 +244,7 @@
 {
 	unsigned long old;
 
-	if (pte_young(*ptep))
+	if (!pte_young(*ptep))
 		return 0;
 	old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0);
 	return (old & _PAGE_ACCESSED) != 0;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/nohash/pgalloc.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/nohash/pgalloc.h
@@ -46,7 +46,6 @@
 
 #define get_hugepd_cache_index(x)	(x)
 
-#ifdef CONFIG_SMP
 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift)
 {
 	unsigned long pgf = (unsigned long)table;
@@ -64,13 +63,6 @@
 	pgtable_free(table, shift);
 }
 
-#else
-static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int shift)
-{
-	pgtable_free(table, shift);
-}
-#endif
-
 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t table,
 				  unsigned long address)
 {
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/nohash/pgtable.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/nohash/pgtable.h
@@ -45,7 +45,9 @@
 	return pte_val(pte) & _PAGE_RW;
 }
 #endif
+#ifndef pte_read
 static inline int pte_read(pte_t pte)		{ return 1; }
+#endif
 static inline int pte_dirty(pte_t pte)		{ return pte_val(pte) & _PAGE_DIRTY; }
 static inline int pte_special(pte_t pte)	{ return pte_val(pte) & _PAGE_SPECIAL; }
 static inline int pte_none(pte_t pte)		{ return (pte_val(pte) & ~_PTE_NONE_MASK) == 0; }
@@ -199,9 +201,9 @@
 	 */
 	if (IS_ENABLED(CONFIG_PPC32) && IS_ENABLED(CONFIG_PTE_64BIT) && !percpu) {
 		__asm__ __volatile__("\
-			stw%U0%X0 %2,%0\n\
+			stw%X0 %2,%0\n\
 			eieio\n\
-			stw%U0%X0 %L2,%1"
+			stw%X1 %L2,%1"
 		: "=m" (*ptep), "=m" (*((unsigned char *)ptep+4))
 		: "r" (pte) : "memory");
 		return;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/opal-api.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/opal-api.h
@@ -211,7 +211,10 @@
 #define OPAL_MPIPL_UPDATE			173
 #define OPAL_MPIPL_REGISTER_TAG			174
 #define OPAL_MPIPL_QUERY_TAG			175
-#define OPAL_LAST				175
+#define OPAL_SECVAR_GET				176
+#define OPAL_SECVAR_GET_NEXT			177
+#define OPAL_SECVAR_ENQUEUE_UPDATE		178
+#define OPAL_LAST				178
 
 #define QUIESCE_HOLD			1 /* Spin all calls at entry */
 #define QUIESCE_REJECT			2 /* Fail all calls with OPAL_BUSY */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/opal.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/opal.h
@@ -298,6 +298,13 @@
 int opal_sensor_group_enable(u32 group_hndl, int token, bool enable);
 int opal_nx_coproc_init(uint32_t chip_id, uint32_t ct);
 
+int opal_secvar_get(const char *key, uint64_t key_len, u8 *data,
+		    uint64_t *data_size);
+int opal_secvar_get_next(const char *key, uint64_t *key_len,
+			 uint64_t key_buf_size);
+int opal_secvar_enqueue_update(const char *key, uint64_t key_len, u8 *data,
+			       uint64_t data_size);
+
 s64 opal_mpipl_update(enum opal_mpipl_ops op, u64 src, u64 dest, u64 size);
 s64 opal_mpipl_register_tag(enum opal_mpipl_tags tag, u64 addr);
 s64 opal_mpipl_query_tag(enum opal_mpipl_tags tag, u64 *addr);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/page.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/page.h
@@ -132,7 +132,11 @@
 #define virt_to_page(kaddr)	pfn_to_page(virt_to_pfn(kaddr))
 #define pfn_to_kaddr(pfn)	__va((pfn) << PAGE_SHIFT)
 
-#define virt_addr_valid(kaddr)	pfn_valid(virt_to_pfn(kaddr))
+#define virt_addr_valid(vaddr)	({					\
+	unsigned long _addr = (unsigned long)vaddr;			\
+	_addr >= PAGE_OFFSET && _addr < (unsigned long)high_memory &&	\
+	pfn_valid(virt_to_pfn(_addr));					\
+})
 
 /*
  * On Book-E parts we need __va to parse the device tree and we can't
@@ -212,6 +216,9 @@
 #define __pa(x) ((unsigned long)(x) - VIRT_PHYS_OFFSET)
 #else
 #ifdef CONFIG_PPC64
+
+#define VIRTUAL_WARN_ON(x)	WARN_ON(IS_ENABLED(CONFIG_DEBUG_VIRTUAL) && (x))
+
 /*
  * gcc miscompiles (unsigned long)(&static_var) - PAGE_OFFSET
  * with -mcmodel=medium, so we use & and | instead of - and + on 64-bit.
@@ -219,13 +226,13 @@
  */
 #define __va(x)								\
 ({									\
-	VIRTUAL_BUG_ON((unsigned long)(x) >= PAGE_OFFSET);		\
+	VIRTUAL_WARN_ON((unsigned long)(x) >= PAGE_OFFSET);		\
 	(void *)(unsigned long)((phys_addr_t)(x) | PAGE_OFFSET);	\
 })
 
 #define __pa(x)								\
 ({									\
-	VIRTUAL_BUG_ON((unsigned long)(x) < PAGE_OFFSET);		\
+	VIRTUAL_WARN_ON((unsigned long)(x) < PAGE_OFFSET);		\
 	(unsigned long)(x) & 0x0fffffffffffffffUL;			\
 })
 
@@ -295,8 +302,13 @@
 /*
  * Some number of bits at the level of the page table that points to
  * a hugepte are used to encode the size.  This masks those bits.
+ * On 8xx, HW assistance requires 4k alignment for the hugepte.
  */
+#ifdef CONFIG_PPC_8xx
+#define HUGEPD_SHIFT_MASK     0xfff
+#else
 #define HUGEPD_SHIFT_MASK     0x3f
+#endif
 
 #ifndef __ASSEMBLY__
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/percpu.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/percpu.h
@@ -10,8 +10,6 @@
 
 #ifdef CONFIG_SMP
 
-#include <asm/paca.h>
-
 #define __my_cpu_offset local_paca->data_offset
 
 #endif /* CONFIG_SMP */
@@ -19,4 +17,6 @@
 
 #include <asm-generic/percpu.h>
 
+#include <asm/paca.h>
+
 #endif /* _ASM_POWERPC_PERCPU_H_ */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/perf_event.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/perf_event.h
@@ -12,6 +12,8 @@
 
 #ifdef CONFIG_PPC_PERF_CTRS
 #include <asm/perf_event_server.h>
+#else
+static inline bool is_sier_available(void) { return false; }
 #endif
 
 #ifdef CONFIG_FSL_EMB_PERF_EVENT
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/pmc.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/pmc.h
@@ -34,6 +34,13 @@
 #endif
 }
 
+#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
+static inline int ppc_get_pmu_inuse(void)
+{
+	return get_paca()->pmcregs_in_use;
+}
+#endif
+
 extern void power4_enable_pmcs(void);
 
 #else /* CONFIG_PPC64 */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/pnv-pci.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/pnv-pci.h
@@ -15,6 +15,7 @@
 #define PCI_SLOT_ID_PREFIX	(1UL << 63)
 #define PCI_SLOT_ID(phb_id, bdfn)	\
 	(PCI_SLOT_ID_PREFIX | ((uint64_t)(bdfn) << 16) | (phb_id))
+#define PCI_PHB_SLOT_ID(phb_id)		(phb_id)
 
 extern int pnv_pci_get_slot_id(struct device_node *np, uint64_t *id);
 extern int pnv_pci_get_device_tree(uint32_t phandle, void *buf, uint64_t len);
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/ppc-opcode.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/ppc-opcode.h
@@ -204,6 +204,7 @@
 #define PPC_INST_ICBT			0x7c00002c
 #define PPC_INST_ICSWX			0x7c00032d
 #define PPC_INST_ICSWEPX		0x7c00076d
+#define PPC_INST_DSSALL			0x7e00066c
 #define PPC_INST_ISEL			0x7c00001e
 #define PPC_INST_ISEL_MASK		0xfc00003e
 #define PPC_INST_LDARX			0x7c0000a8
@@ -439,6 +440,7 @@
 					__PPC_RA(a) | __PPC_RB(b))
 #define	PPC_DCBZL(a, b)		stringify_in_c(.long PPC_INST_DCBZL | \
 					__PPC_RA(a) | __PPC_RB(b))
+#define PPC_DSSALL		stringify_in_c(.long PPC_INST_DSSALL)
 #define PPC_LQARX(t, a, b, eh)	stringify_in_c(.long PPC_INST_LQARX | \
 					___PPC_RT(t) | ___PPC_RA(a) | \
 					___PPC_RB(b) | __PPC_EH(eh))
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/processor.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/processor.h
@@ -291,7 +291,6 @@
 #else
 #define INIT_THREAD  { \
 	.ksp = INIT_SP, \
-	.regs = (struct pt_regs *)INIT_SP - 1, /* XXX bogus, I think */ \
 	.addr_limit = KERNEL_DS, \
 	.fpexc_mode = 0, \
 	.fscr = FSCR_TAR | FSCR_EBB \
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/ps3.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/ps3.h
@@ -71,6 +71,7 @@
  * @bus_addr: The 'translated' bus address of the region.
  * @len: The length in bytes of the region.
  * @offset: The offset from the start of memory of the region.
+ * @dma_mask: Device dma_mask.
  * @ioid: The IOID of the device who owns this region
  * @chunk_list: Opaque variable used by the ioc page manager.
  * @region_ops: struct ps3_dma_region_ops - dma region operations
@@ -85,6 +86,7 @@
 	enum ps3_dma_region_type region_type;
 	unsigned long len;
 	unsigned long offset;
+	u64 dma_mask;
 
 	/* driver variables  (set by ps3_dma_region_create) */
 	unsigned long bus_addr;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/ptrace.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/ptrace.h
@@ -62,6 +62,9 @@
 };
 #endif
 
+
+#define STACK_FRAME_WITH_PT_REGS (STACK_FRAME_OVERHEAD + sizeof(struct pt_regs))
+
 #ifdef __powerpc64__
 
 /*
@@ -203,7 +206,7 @@
 #endif /* __powerpc64__ */
 
 #define arch_has_single_step()	(1)
-#ifndef CONFIG_BOOK3S_601
+#ifndef CONFIG_PPC_BOOK3S_601
 #define arch_has_block_step()	(true)
 #else
 #define arch_has_block_step()	(false)
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/reg.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/reg.h
@@ -796,7 +796,7 @@
 #define THRM1_TIN	(1 << 31)
 #define THRM1_TIV	(1 << 30)
 #define THRM1_THRES(x)	((x&0x7f)<<23)
-#define THRM3_SITV(x)	((x&0x3fff)<<1)
+#define THRM3_SITV(x)	((x & 0x1fff) << 1)
 #define THRM1_TID	(1<<2)
 #define THRM1_TIE	(1<<1)
 #define THRM1_V		(1<<0)
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/rtas.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/rtas.h
@@ -368,8 +368,6 @@
 extern void rtas_progress(char *s, unsigned short hex);
 extern int rtas_suspend_cpu(struct rtas_suspend_me_data *data);
 extern int rtas_suspend_last_cpu(struct rtas_suspend_me_data *data);
-extern int rtas_online_cpus_mask(cpumask_var_t cpus);
-extern int rtas_offline_cpus_mask(cpumask_var_t cpus);
 extern int rtas_ibm_suspend_me(u64 handle);
 
 struct rtc_time;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/sections.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/sections.h
@@ -5,8 +5,22 @@
 
 #include <linux/elf.h>
 #include <linux/uaccess.h>
+
+#define arch_is_kernel_initmem_freed arch_is_kernel_initmem_freed
+
 #include <asm-generic/sections.h>
 
+extern bool init_mem_is_free;
+
+static inline int arch_is_kernel_initmem_freed(unsigned long addr)
+{
+	if (!init_mem_is_free)
+		return 0;
+
+	return addr >= (unsigned long)__init_begin &&
+		addr < (unsigned long)__init_end;
+}
+
 extern char __head_end[];
 
 #ifdef __powerpc64__
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/secure_boot.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/secure_boot.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Secure boot definitions
+ *
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ */
+#ifndef _ASM_POWER_SECURE_BOOT_H
+#define _ASM_POWER_SECURE_BOOT_H
+
+#ifdef CONFIG_PPC_SECURE_BOOT
+
+bool is_ppc_secureboot_enabled(void);
+bool is_ppc_trustedboot_enabled(void);
+
+#else
+
+static inline bool is_ppc_secureboot_enabled(void)
+{
+	return false;
+}
+
+static inline bool is_ppc_trustedboot_enabled(void)
+{
+	return false;
+}
+
+#endif
+#endif
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/security_features.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/security_features.h
@@ -9,7 +9,7 @@
 #define _ASM_POWERPC_SECURITY_FEATURES_H
 
 
-extern unsigned long powerpc_security_features;
+extern u64 powerpc_security_features;
 extern bool rfi_flush;
 
 /* These are bit flags */
@@ -24,21 +24,26 @@
 void do_stf_barrier_fixups(enum stf_barrier_type types);
 void setup_count_cache_flush(void);
 
-static inline void security_ftr_set(unsigned long feature)
+static inline void security_ftr_set(u64 feature)
 {
 	powerpc_security_features |= feature;
 }
 
-static inline void security_ftr_clear(unsigned long feature)
+static inline void security_ftr_clear(u64 feature)
 {
 	powerpc_security_features &= ~feature;
 }
 
-static inline bool security_ftr_enabled(unsigned long feature)
+static inline bool security_ftr_enabled(u64 feature)
 {
 	return !!(powerpc_security_features & feature);
 }
 
+#ifdef CONFIG_PPC_BOOK3S_64
+enum stf_barrier_type stf_barrier_type_get(void);
+#else
+static inline enum stf_barrier_type stf_barrier_type_get(void) { return STF_BARRIER_NONE; }
+#endif
 
 // Features indicating support for Spectre/Meltdown mitigations
 
@@ -81,12 +86,22 @@
 // Software required to flush count cache on context switch
 #define SEC_FTR_FLUSH_COUNT_CACHE	0x0000000000000400ull
 
+// Software required to flush link stack on context switch
+#define SEC_FTR_FLUSH_LINK_STACK	0x0000000000001000ull
+
+// The L1-D cache should be flushed when entering the kernel
+#define SEC_FTR_L1D_FLUSH_ENTRY		0x0000000000004000ull
+
+// The L1-D cache should be flushed after user accesses from the kernel
+#define SEC_FTR_L1D_FLUSH_UACCESS	0x0000000000008000ull
 
 // Features enabled by default
 #define SEC_FTR_DEFAULT \
 	(SEC_FTR_L1D_FLUSH_HV | \
 	 SEC_FTR_L1D_FLUSH_PR | \
 	 SEC_FTR_BNDS_CHK_SPEC_BAR | \
+	 SEC_FTR_L1D_FLUSH_ENTRY | \
+	 SEC_FTR_L1D_FLUSH_UACCESS | \
 	 SEC_FTR_FAVOUR_SECURITY)
 
 #endif /* _ASM_POWERPC_SECURITY_FEATURES_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/secvar.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/secvar.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ *
+ * PowerPC secure variable operations.
+ */
+#ifndef SECVAR_OPS_H
+#define SECVAR_OPS_H
+
+#include <linux/types.h>
+#include <linux/errno.h>
+
+extern const struct secvar_operations *secvar_ops;
+
+struct secvar_operations {
+	int (*get)(const char *key, uint64_t key_len, u8 *data,
+		   uint64_t *data_size);
+	int (*get_next)(const char *key, uint64_t *key_len,
+			uint64_t keybufsize);
+	int (*set)(const char *key, uint64_t key_len, u8 *data,
+		   uint64_t data_size);
+};
+
+#ifdef CONFIG_PPC_SECURE_BOOT
+
+extern void set_secvar_ops(const struct secvar_operations *ops);
+
+#else
+
+static inline void set_secvar_ops(const struct secvar_operations *ops) { }
+
+#endif
+
+#endif
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/setjmp.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/setjmp.h
@@ -7,7 +7,9 @@
 
 #define JMP_BUF_LEN    23
 
-extern long setjmp(long *) __attribute__((returns_twice));
-extern void longjmp(long *, long) __attribute__((noreturn));
+typedef long jmp_buf[JMP_BUF_LEN];
+
+extern int setjmp(jmp_buf env) __attribute__((returns_twice));
+extern void longjmp(jmp_buf env, int val) __attribute__((noreturn));
 
 #endif /* _ASM_POWERPC_SETJMP_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/setup.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/setup.h
@@ -52,12 +52,16 @@
 };
 
 void setup_rfi_flush(enum l1d_flush_type, bool enable);
+void setup_entry_flush(bool enable);
+void setup_uaccess_flush(bool enable);
 void do_rfi_flush_fixups(enum l1d_flush_type types);
 #ifdef CONFIG_PPC_BARRIER_NOSPEC
 void setup_barrier_nospec(void);
 #else
 static inline void setup_barrier_nospec(void) { };
 #endif
+void do_uaccess_flush_fixups(enum l1d_flush_type types);
+void do_entry_flush_fixups(enum l1d_flush_type types);
 void do_barrier_nospec_fixups(bool enable);
 extern bool barrier_nospec_enabled;
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/spinlock.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/spinlock.h
@@ -15,6 +15,7 @@
  *
  * (the type definitions are in asm/spinlock_types.h)
  */
+#include <linux/jump_label.h>
 #include <linux/irqflags.h>
 #ifdef CONFIG_PPC64
 #include <asm/paca.h>
@@ -36,10 +37,12 @@
 #endif
 
 #ifdef CONFIG_PPC_PSERIES
+DECLARE_STATIC_KEY_FALSE(shared_processor);
+
 #define vcpu_is_preempted vcpu_is_preempted
 static inline bool vcpu_is_preempted(int cpu)
 {
-	if (!firmware_has_feature(FW_FEATURE_SPLPAR))
+	if (!static_branch_unlikely(&shared_processor))
 		return false;
 	return !!(be32_to_cpu(lppaca_of(cpu).yield_count) & 1);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/timex.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/timex.h
@@ -17,11 +17,12 @@
 
 static inline cycles_t get_cycles(void)
 {
-	if (IS_ENABLED(CONFIG_BOOK3S_601))
+	if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
 		return 0;
 
 	return mftb();
 }
+#define get_cycles get_cycles
 
 #endif	/* __KERNEL__ */
 #endif	/* _ASM_POWERPC_TIMEX_H */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/tlb.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/tlb.h
@@ -26,6 +26,17 @@
 
 #define tlb_flush tlb_flush
 extern void tlb_flush(struct mmu_gather *tlb);
+/*
+ * book3s:
+ * Hash does not use the linux page-tables, so we can avoid
+ * the TLB invalidate for page-table freeing, Radix otoh does use the
+ * page-tables and needs the TLBI.
+ *
+ * nohash:
+ * We still do TLB invalidate in the __pte_free_tlb routine before we
+ * add the page table pages to mmu gather table batch.
+ */
+#define tlb_needs_table_invalidate()	radix_enabled()
 
 /* Get the generic bits... */
 #include <asm-generic/tlb.h>
@@ -56,19 +67,6 @@
 		return false;
 	return cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm));
 }
-static inline void mm_reset_thread_local(struct mm_struct *mm)
-{
-	WARN_ON(atomic_read(&mm->context.copros) > 0);
-	/*
-	 * It's possible for mm_access to take a reference on mm_users to
-	 * access the remote mm from another thread, but it's not allowed
-	 * to set mm_cpumask, so mm_users may be > 1 here.
-	 */
-	WARN_ON(current->mm != mm);
-	atomic_set(&mm->context.active_cpus, 1);
-	cpumask_clear(mm_cpumask(mm));
-	cpumask_set_cpu(smp_processor_id(), mm_cpumask(mm));
-}
 #else /* CONFIG_PPC_BOOK3S_64 */
 static inline int mm_is_thread_local(struct mm_struct *mm)
 {
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/uaccess.h
@@ -191,8 +191,11 @@
  */
 #define __get_user_atomic_128_aligned(kaddr, uaddr, err)		\
 	__asm__ __volatile__(				\
+		".machine push\n"			\
+		".machine altivec\n"			\
 		"1:	lvx  0,0,%1	# get user\n"	\
 		" 	stvx 0,0,%2	# put kernel\n"	\
+		".machine pop\n"			\
 		"2:\n"					\
 		".section .fixup,\"ax\"\n"		\
 		"3:	li %0,%3\n"			\
@@ -313,9 +316,9 @@
 	unsigned long ret;
 
 	barrier_nospec();
-	allow_user_access(to, from, n);
+	allow_read_write_user(to, from, n);
 	ret = __copy_tofrom_user(to, from, n);
-	prevent_user_access(to, from, n);
+	prevent_read_write_user(to, from, n);
 	return ret;
 }
 #endif /* __powerpc64__ */
@@ -401,7 +404,7 @@
 	return n;
 }
 
-extern unsigned long __clear_user(void __user *addr, unsigned long size);
+unsigned long __arch_clear_user(void __user *addr, unsigned long size);
 
 static inline unsigned long clear_user(void __user *addr, unsigned long size)
 {
@@ -409,12 +412,17 @@
 	might_fault();
 	if (likely(access_ok(addr, size))) {
 		allow_write_to_user(addr, size);
-		ret = __clear_user(addr, size);
+		ret = __arch_clear_user(addr, size);
 		prevent_write_to_user(addr, size);
 	}
 	return ret;
 }
 
+static inline unsigned long __clear_user(void __user *addr, unsigned long size)
+{
+	return clear_user(addr, size);
+}
+
 extern long strncpy_from_user(char *dst, const char __user *src, long count);
 extern __must_check long strnlen_user(const char __user *str, long n);
 
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/vdso_datapage.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/vdso_datapage.h
@@ -82,6 +82,7 @@
 	__s32 wtom_clock_nsec;			/* Wall to monotonic clock nsec */
 	__s64 wtom_clock_sec;			/* Wall to monotonic clock sec */
 	struct timespec stamp_xtime;		/* xtime as at tb_orig_stamp */
+	__u32 hrtimer_res;			/* hrtimer resolution */
    	__u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls  */
    	__u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
 };
@@ -103,6 +104,7 @@
 	__s32 wtom_clock_nsec;
 	struct timespec stamp_xtime;	/* xtime as at tb_orig_stamp */
 	__u32 stamp_sec_fraction;	/* fractional seconds of stamp_xtime */
+	__u32 hrtimer_res;		/* hrtimer resolution */
    	__u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
 	__u32 dcache_block_size;	/* L1 d-cache block size     */
 	__u32 icache_block_size;	/* L1 i-cache block size     */
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/word-at-a-time.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/word-at-a-time.h
@@ -34,7 +34,7 @@
 	return leading_zero_bits >> 3;
 }
 
-static inline bool has_zero(unsigned long val, unsigned long *data, const struct word_at_a_time *c)
+static inline unsigned long has_zero(unsigned long val, unsigned long *data, const struct word_at_a_time *c)
 {
 	unsigned long rhs = val | c->low_bits;
 	*data = rhs;
--- linux-ein-5.4.0.orig/arch/powerpc/include/asm/xive-regs.h
+++ linux-ein-5.4.0/arch/powerpc/include/asm/xive-regs.h
@@ -39,6 +39,7 @@
 
 #define XIVE_ESB_VAL_P		0x2
 #define XIVE_ESB_VAL_Q		0x1
+#define XIVE_ESB_INVALID	0xFF
 
 /*
  * Thread Management (aka "TM") registers
--- linux-ein-5.4.0.orig/arch/powerpc/include/uapi/asm/errno.h
+++ linux-ein-5.4.0/arch/powerpc/include/uapi/asm/errno.h
@@ -2,6 +2,7 @@
 #ifndef _ASM_POWERPC_ERRNO_H
 #define _ASM_POWERPC_ERRNO_H
 
+#undef	EDEADLOCK
 #include <asm-generic/errno.h>
 
 #undef	EDEADLOCK
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/Makefile
+++ linux-ein-5.4.0/arch/powerpc/kernel/Makefile
@@ -5,9 +5,6 @@
 
 CFLAGS_ptrace.o		+= -DUTS_MACHINE='"$(UTS_MACHINE)"'
 
-# Disable clang warning for using setjmp without setjmp.h header
-CFLAGS_crash.o		+= $(call cc-disable-warning, builtin-requires-header)
-
 ifdef CONFIG_PPC64
 CFLAGS_prom_init.o	+= $(NO_MINIMAL_TOC)
 endif
@@ -16,12 +13,14 @@
 CFLAGS_btext.o		+= -fPIC
 endif
 
+CFLAGS_early_32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 CFLAGS_cputable.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 CFLAGS_prom_init.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 CFLAGS_btext.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 CFLAGS_prom.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
 
 CFLAGS_prom_init.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
 
 ifdef CONFIG_FUNCTION_TRACER
 # Do not trace early boot code
@@ -39,7 +38,6 @@
 ifdef CONFIG_KASAN
 CFLAGS_early_32.o += -DDISABLE_BRANCH_PROFILING
 CFLAGS_cputable.o += -DDISABLE_BRANCH_PROFILING
-CFLAGS_prom_init.o += -DDISABLE_BRANCH_PROFILING
 CFLAGS_btext.o += -DDISABLE_BRANCH_PROFILING
 endif
 
@@ -161,6 +159,9 @@
 obj-y				+= ucall.o
 endif
 
+obj-$(CONFIG_PPC_SECURE_BOOT)	+= secure_boot.o ima_arch.o secvar-ops.o
+obj-$(CONFIG_PPC_SECVAR_SYSFS)	+= secvar-sysfs.o
+
 # Disable GCOV, KCOV & sanitizers in odd or sensitive code
 GCOV_PROFILE_prom_init.o := n
 KCOV_INSTRUMENT_prom_init.o := n
@@ -184,6 +185,9 @@
 KCOV_INSTRUMENT_setup_64.o := n
 KCOV_INSTRUMENT_paca.o := n
 
+CFLAGS_setup_64.o		+= -fno-stack-protector
+CFLAGS_paca.o			+= -fno-stack-protector
+
 extra-$(CONFIG_PPC_FPU)		+= fpu.o
 extra-$(CONFIG_ALTIVEC)		+= vector.o
 extra-$(CONFIG_PPC64)		+= entry_64.o
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/asm-offsets.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/asm-offsets.c
@@ -285,7 +285,7 @@
 
 	/* Interrupt register frame */
 	DEFINE(INT_FRAME_SIZE, STACK_INT_FRAME_SIZE);
-	DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
+	DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_WITH_PT_REGS);
 	STACK_PT_REGS_OFFSET(GPR0, gpr[0]);
 	STACK_PT_REGS_OFFSET(GPR1, gpr[1]);
 	STACK_PT_REGS_OFFSET(GPR2, gpr[2]);
@@ -387,6 +387,7 @@
 	OFFSET(WTOM_CLOCK_NSEC, vdso_data, wtom_clock_nsec);
 	OFFSET(STAMP_XTIME, vdso_data, stamp_xtime);
 	OFFSET(STAMP_SEC_FRAC, vdso_data, stamp_sec_fraction);
+	OFFSET(CLOCK_HRTIMER_RES, vdso_data, hrtimer_res);
 	OFFSET(CFG_ICACHE_BLOCKSZ, vdso_data, icache_block_size);
 	OFFSET(CFG_DCACHE_BLOCKSZ, vdso_data, dcache_block_size);
 	OFFSET(CFG_ICACHE_LOGBLOCKSZ, vdso_data, icache_log_block_size);
@@ -417,7 +418,6 @@
 	DEFINE(CLOCK_REALTIME_COARSE, CLOCK_REALTIME_COARSE);
 	DEFINE(CLOCK_MONOTONIC_COARSE, CLOCK_MONOTONIC_COARSE);
 	DEFINE(NSEC_PER_SEC, NSEC_PER_SEC);
-	DEFINE(CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
 
 #ifdef CONFIG_BUG
 	DEFINE(BUG_ENTRY_SIZE, sizeof(struct bug_entry));
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/btext.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/btext.c
@@ -250,8 +250,10 @@
 			rc = btext_initialize(np);
 			printk("result: %d\n", rc);
 		}
-		if (rc == 0)
+		if (rc == 0) {
+			of_node_put(np);
 			break;
+		}
 	}
 	return rc;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/cpu_setup_power.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/cpu_setup_power.S
@@ -184,7 +184,7 @@
 
 __init_FSCR:
 	mfspr	r3,SPRN_FSCR
-	ori	r3,r3,FSCR_TAR|FSCR_DSCR|FSCR_EBB
+	ori	r3,r3,FSCR_TAR|FSCR_EBB
 	mtspr	SPRN_FSCR,r3
 	blr
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/cputable.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/cputable.c
@@ -2193,11 +2193,13 @@
 		 * oprofile_cpu_type already has a value, then we are
 		 * possibly overriding a real PVR with a logical one,
 		 * and, in that case, keep the current value for
-		 * oprofile_cpu_type.
+		 * oprofile_cpu_type. Futhermore, let's ensure that the
+		 * fix for the PMAO bug is enabled on compatibility mode.
 		 */
 		if (old.oprofile_cpu_type != NULL) {
 			t->oprofile_cpu_type = old.oprofile_cpu_type;
 			t->oprofile_type = old.oprofile_type;
+			t->cpu_features |= old.cpu_features & CPU_FTR_PMAO_BUG;
 		}
 	}
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/dma-iommu.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/dma-iommu.c
@@ -160,7 +160,8 @@
 			return bypass_mask;
 	}
 
-	mask = 1ULL < (fls_long(tbl->it_offset + tbl->it_size) - 1);
+	mask = 1ULL << (fls_long(tbl->it_offset + tbl->it_size) +
+			tbl->it_page_shift - 1);
 	mask += mask - 1;
 
 	return mask;
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -139,7 +139,6 @@
 	/* Initialize the base environment -- clear FSCR/HFSCR.  */
 	hv_mode = !!(mfmsr() & MSR_HV);
 	if (hv_mode) {
-		/* CPU_FTR_HVMODE is used early in PACA setup */
 		cur_cpu_spec->cpu_features |= CPU_FTR_HVMODE;
 		mtspr(SPRN_HFSCR, 0);
 	}
@@ -347,6 +346,14 @@
 {
 	u64 lpcr;
 
+	/*
+	 * Linux relies on FSCR[DSCR] being clear, so that we can take the
+	 * facility unavailable interrupt and track the task's usage of DSCR.
+	 * See facility_unavailable_exception().
+	 * Clear the bit here so that feat_enable() doesn't set it.
+	 */
+	f->fscr_bit_nr = -1;
+
 	feat_enable(f);
 
 	lpcr = mfspr(SPRN_LPCR);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/eeh.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/eeh.c
@@ -368,14 +368,11 @@
 	pa = pte_pfn(*ptep);
 
 	/* On radix we can do hugepage mappings for io, so handle that */
-	if (hugepage_shift) {
-		pa <<= hugepage_shift;
-		pa |= token & ((1ul << hugepage_shift) - 1);
-	} else {
-		pa <<= PAGE_SHIFT;
-		pa |= token & (PAGE_SIZE - 1);
-	}
+	if (!hugepage_shift)
+		hugepage_shift = PAGE_SHIFT;
 
+	pa <<= PAGE_SHIFT;
+	pa |= token & ((1ul << hugepage_shift) - 1);
 	return pa;
 }
 
@@ -503,7 +500,7 @@
 	rc = 1;
 	if (pe->state & EEH_PE_ISOLATED) {
 		pe->check_count++;
-		if (pe->check_count % EEH_MAX_FAILS == 0) {
+		if (pe->check_count == EEH_MAX_FAILS) {
 			dn = pci_device_to_OF_node(dev);
 			if (dn)
 				location = of_get_property(dn, "ibm,loc-code",
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/eeh_cache.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/eeh_cache.c
@@ -272,8 +272,9 @@
 {
 	struct pci_io_addr_range *piar;
 	struct rb_node *n;
+	unsigned long flags;
 
-	spin_lock(&pci_io_addr_cache_root.piar_lock);
+	spin_lock_irqsave(&pci_io_addr_cache_root.piar_lock, flags);
 	for (n = rb_first(&pci_io_addr_cache_root.rb_root); n; n = rb_next(n)) {
 		piar = rb_entry(n, struct pci_io_addr_range, rb_node);
 
@@ -281,7 +282,7 @@
 		       (piar->flags & IORESOURCE_IO) ? "i/o" : "mem",
 		       &piar->addr_lo, &piar->addr_hi, pci_name(piar->pcidev));
 	}
-	spin_unlock(&pci_io_addr_cache_root.piar_lock);
+	spin_unlock_irqrestore(&pci_io_addr_cache_root.piar_lock, flags);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/eeh_driver.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/eeh_driver.c
@@ -541,12 +541,6 @@
 
 		pci_iov_remove_virtfn(edev->physfn, pdn->vf_index);
 		edev->pdev = NULL;
-
-		/*
-		 * We have to set the VF PE number to invalid one, which is
-		 * required to plug the VF successfully.
-		 */
-		pdn->pe_number = IODA_INVALID_PE;
 #endif
 		if (rmv_data)
 			list_add(&edev->rmv_entry, &rmv_data->removed_vf_list);
@@ -897,12 +891,12 @@
 
 	/* Log the event */
 	if (pe->type & EEH_PE_PHB) {
-		pr_err("EEH: PHB#%x failure detected, location: %s\n",
+		pr_err("EEH: Recovering PHB#%x, location: %s\n",
 			pe->phb->global_number, eeh_pe_loc_get(pe));
 	} else {
 		struct eeh_pe *phb_pe = eeh_phb_pe_get(pe->phb);
 
-		pr_err("EEH: Frozen PHB#%x-PE#%x detected\n",
+		pr_err("EEH: Recovering PHB#%x-PE#%x\n",
 		       pe->phb->global_number, pe->addr);
 		pr_err("EEH: PE location: %s, PHB location: %s\n",
 		       eeh_pe_loc_get(pe), eeh_pe_loc_get(phb_pe));
@@ -1078,45 +1072,46 @@
 		}
 
 		pr_info("EEH: Recovery successful.\n");
-	} else  {
-		/*
-		 * About 90% of all real-life EEH failures in the field
-		 * are due to poorly seated PCI cards. Only 10% or so are
-		 * due to actual, failed cards.
-		 */
-		pr_err("EEH: Unable to recover from failure from PHB#%x-PE#%x.\n"
-		       "Please try reseating or replacing it\n",
-			pe->phb->global_number, pe->addr);
-
-		eeh_slot_error_detail(pe, EEH_LOG_PERM);
+		goto out;
+	}
 
-		/* Notify all devices that they're about to go down. */
-		eeh_set_channel_state(pe, pci_channel_io_perm_failure);
-		eeh_set_irq_state(pe, false);
-		eeh_pe_report("error_detected(permanent failure)", pe,
-			      eeh_report_failure, NULL);
+	/*
+	 * About 90% of all real-life EEH failures in the field
+	 * are due to poorly seated PCI cards. Only 10% or so are
+	 * due to actual, failed cards.
+	 */
+	pr_err("EEH: Unable to recover from failure from PHB#%x-PE#%x.\n"
+		"Please try reseating or replacing it\n",
+		pe->phb->global_number, pe->addr);
+
+	eeh_slot_error_detail(pe, EEH_LOG_PERM);
+
+	/* Notify all devices that they're about to go down. */
+	eeh_set_irq_state(pe, false);
+	eeh_pe_report("error_detected(permanent failure)", pe,
+		      eeh_report_failure, NULL);
+	eeh_set_channel_state(pe, pci_channel_io_perm_failure);
 
-		/* Mark the PE to be removed permanently */
-		eeh_pe_state_mark(pe, EEH_PE_REMOVED);
+	/* Mark the PE to be removed permanently */
+	eeh_pe_state_mark(pe, EEH_PE_REMOVED);
 
-		/*
-		 * Shut down the device drivers for good. We mark
-		 * all removed devices correctly to avoid access
-		 * the their PCI config any more.
-		 */
-		if (pe->type & EEH_PE_VF) {
-			eeh_pe_dev_traverse(pe, eeh_rmv_device, NULL);
-			eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
-		} else {
-			eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
-			eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
+	/*
+	 * Shut down the device drivers for good. We mark
+	 * all removed devices correctly to avoid access
+	 * the their PCI config any more.
+	 */
+	if (pe->type & EEH_PE_VF) {
+		eeh_pe_dev_traverse(pe, eeh_rmv_device, NULL);
+		eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
+	} else {
+		eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
+		eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
 
-			pci_lock_rescan_remove();
-			pci_hp_remove_devices(bus);
-			pci_unlock_rescan_remove();
-			/* The passed PE should no longer be used */
-			return;
-		}
+		pci_lock_rescan_remove();
+		pci_hp_remove_devices(bus);
+		pci_unlock_rescan_remove();
+		/* The passed PE should no longer be used */
+		return;
 	}
 
 out:
@@ -1206,6 +1201,17 @@
 			eeh_pe_state_mark(pe, EEH_PE_RECOVERING);
 			eeh_handle_normal_event(pe);
 		} else {
+			eeh_for_each_pe(pe, tmp_pe)
+				eeh_pe_for_each_dev(tmp_pe, edev, tmp_edev)
+					edev->mode &= ~EEH_DEV_NO_HANDLER;
+
+			/* Notify all devices to be down */
+			eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
+			eeh_pe_report(
+				"error_detected(permanent failure)", pe,
+				eeh_report_failure, NULL);
+			eeh_set_channel_state(pe, pci_channel_io_perm_failure);
+
 			pci_lock_rescan_remove();
 			list_for_each_entry(hose, &hose_list, list_node) {
 				phb_pe = eeh_phb_pe_get(hose);
@@ -1214,16 +1220,6 @@
 				    (phb_pe->state & EEH_PE_RECOVERING))
 					continue;
 
-				eeh_for_each_pe(pe, tmp_pe)
-					eeh_pe_for_each_dev(tmp_pe, edev, tmp_edev)
-						edev->mode &= ~EEH_DEV_NO_HANDLER;
-
-				/* Notify all devices to be down */
-				eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
-				eeh_set_channel_state(pe, pci_channel_io_perm_failure);
-				eeh_pe_report(
-					"error_detected(permanent failure)", pe,
-					eeh_report_failure, NULL);
 				bus = eeh_pe_bus_get(phb_pe);
 				if (!bus) {
 					pr_err("%s: Cannot find PCI bus for "
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/entry_32.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/entry_32.S
@@ -179,7 +179,7 @@
 2:	/* if from kernel, check interrupted DOZE/NAP mode and
          * check for stack overflow
          */
-	kuap_save_and_lock r11, r12, r9, r2, r0
+	kuap_save_and_lock r11, r12, r9, r2, r6
 	addi	r2, r12, -THREAD
 	lwz	r9,KSP_LIMIT(r12)
 	cmplw	r1,r9			/* if r1 <= ksp_limit */
@@ -284,6 +284,7 @@
 	rlwinm	r9,r9,0,~MSR_EE
 	lwz	r12,_LINK(r11)		/* and return to address in LR */
 	kuap_restore r11, r2, r3, r4, r5
+	lwz	r2, GPR2(r11)
 	b	fast_exception_return
 #endif
 
@@ -335,6 +336,9 @@
 
 	.globl	transfer_to_syscall
 transfer_to_syscall:
+#ifdef CONFIG_PPC_BOOK3S_32
+	kuep_lock r11, r12
+#endif
 #ifdef CONFIG_TRACE_IRQFLAGS
 	andi.	r12,r9,MSR_EE
 	beq-	trace_syscall_entry_irq_off
@@ -704,7 +708,7 @@
 	stw	r10,_CCR(r1)
 	stw	r1,KSP(r3)	/* Set old stack pointer */
 
-	kuap_check r2, r4
+	kuap_check r2, r0
 #ifdef CONFIG_SMP
 	/* We need a sync somewhere here to make sure that if the
 	 * previous task gets rescheduled on another CPU, it sees all
@@ -777,7 +781,7 @@
 1:	lis	r3,exc_exit_restart_end@ha
 	addi	r3,r3,exc_exit_restart_end@l
 	cmplw	r12,r3
-#if CONFIG_PPC_BOOK3S_601
+#ifdef CONFIG_PPC_BOOK3S_601
 	bge	2b
 #else
 	bge	3f
@@ -785,7 +789,7 @@
 	lis	r4,exc_exit_restart@ha
 	addi	r4,r4,exc_exit_restart@l
 	cmplw	r12,r4
-#if CONFIG_PPC_BOOK3S_601
+#ifdef CONFIG_PPC_BOOK3S_601
 	blt	2b
 #else
 	blt	3f
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/entry_64.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/entry_64.S
@@ -537,6 +537,7 @@
 	/* Save LR into r9 */
 	mflr	r9
 
+	// Flush the link stack
 	.rept 64
 	bl	.+4
 	.endr
@@ -546,6 +547,11 @@
 	.balign 32
 	/* Restore LR */
 1:	mtlr	r9
+
+	// If we're just flushing the link stack, return here
+3:	nop
+	patch_site 3b patch__flush_link_stack_return
+
 	li	r9,0x7fff
 	mtctr	r9
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/exceptions-64s.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/exceptions-64s.S
@@ -1090,17 +1090,19 @@
 	bl	machine_check_queue_event
 
 	/*
-	 * We have not used any non-volatile GPRs here, and as a rule
-	 * most exception code including machine check does not.
-	 * Therefore PACA_NAPSTATELOST does not need to be set. Idle
-	 * wakeup will restore volatile registers.
+	 * GPR-loss wakeups are relatively straightforward, because the
+	 * idle sleep code has saved all non-volatile registers on its
+	 * own stack, and r1 in PACAR1.
 	 *
-	 * Load the original SRR1 into r3 for pnv_powersave_wakeup_mce.
+	 * For no-loss wakeups the r1 and lr registers used by the
+	 * early machine check handler have to be restored first. r2 is
+	 * the kernel TOC, so no need to restore it.
 	 *
 	 * Then decrement MCE nesting after finishing with the stack.
 	 */
 	ld	r3,_MSR(r1)
 	ld	r4,_LINK(r1)
+	ld	r1,GPR1(r1)
 
 	lhz	r11,PACA_IN_MCE(r13)
 	subi	r11,r11,1
@@ -1109,7 +1111,7 @@
 	mtlr	r4
 	rlwinm	r10,r3,47-31,30,31
 	cmpwi	cr1,r10,2
-	bltlr	cr1	/* no state loss, return to idle caller */
+	bltlr	cr1	/* no state loss, return to idle caller with r3=SRR1 */
 	b	idle_return_gpr_loss
 #endif
 
@@ -1148,7 +1150,7 @@
 	INT_HANDLER data_access, 0x300, ool=1, dar=1, dsisr=1, kvm=1
 EXC_REAL_END(data_access, 0x300, 0x80)
 EXC_VIRT_BEGIN(data_access, 0x4300, 0x80)
-	INT_HANDLER data_access, 0x300, virt=1, dar=1, dsisr=1
+	INT_HANDLER data_access, 0x300, ool=1, virt=1, dar=1, dsisr=1
 EXC_VIRT_END(data_access, 0x4300, 0x80)
 INT_KVM_HANDLER data_access, 0x300, EXC_STD, PACA_EXGEN, 1
 EXC_COMMON_BEGIN(data_access_common)
@@ -1203,7 +1205,7 @@
 
 
 EXC_REAL_BEGIN(instruction_access, 0x400, 0x80)
-	INT_HANDLER instruction_access, 0x400, kvm=1
+	INT_HANDLER instruction_access, 0x400, ool=1, kvm=1
 EXC_REAL_END(instruction_access, 0x400, 0x80)
 EXC_VIRT_BEGIN(instruction_access, 0x4400, 0x80)
 	INT_HANDLER instruction_access, 0x400, virt=1
@@ -1223,7 +1225,7 @@
 
 
 EXC_REAL_BEGIN(instruction_access_slb, 0x480, 0x80)
-	INT_HANDLER instruction_access_slb, 0x480, area=PACA_EXSLB, kvm=1
+	INT_HANDLER instruction_access_slb, 0x480, ool=1, area=PACA_EXSLB, kvm=1
 EXC_REAL_END(instruction_access_slb, 0x480, 0x80)
 EXC_VIRT_BEGIN(instruction_access_slb, 0x4480, 0x80)
 	INT_HANDLER instruction_access_slb, 0x480, virt=1, area=PACA_EXSLB
@@ -1363,17 +1365,17 @@
 	INT_HANDLER decrementer, 0x900, ool=1, bitmask=IRQS_DISABLED, kvm=1
 EXC_REAL_END(decrementer, 0x900, 0x80)
 EXC_VIRT_BEGIN(decrementer, 0x4900, 0x80)
-	INT_HANDLER decrementer, 0x900, virt=1, bitmask=IRQS_DISABLED
+	INT_HANDLER decrementer, 0x900, ool=1, virt=1, bitmask=IRQS_DISABLED
 EXC_VIRT_END(decrementer, 0x4900, 0x80)
 INT_KVM_HANDLER decrementer, 0x900, EXC_STD, PACA_EXGEN, 0
 EXC_COMMON_ASYNC(decrementer_common, 0x900, timer_interrupt)
 
 
 EXC_REAL_BEGIN(hdecrementer, 0x980, 0x80)
-	INT_HANDLER hdecrementer, 0x980, hsrr=EXC_HV, kvm=1
+	INT_HANDLER hdecrementer, 0x980, ool=1, hsrr=EXC_HV, kvm=1
 EXC_REAL_END(hdecrementer, 0x980, 0x80)
 EXC_VIRT_BEGIN(hdecrementer, 0x4980, 0x80)
-	INT_HANDLER hdecrementer, 0x980, virt=1, hsrr=EXC_HV, kvm=1
+	INT_HANDLER hdecrementer, 0x980, ool=1, virt=1, hsrr=EXC_HV, kvm=1
 EXC_VIRT_END(hdecrementer, 0x4980, 0x80)
 INT_KVM_HANDLER hdecrementer, 0x980, EXC_HV, PACA_EXGEN, 0
 EXC_COMMON(hdecrementer_common, 0x980, hdec_interrupt)
@@ -2044,15 +2046,8 @@
 	.endr
 	blr
 
-TRAMP_REAL_BEGIN(rfi_flush_fallback)
-	SET_SCRATCH0(r13);
-	GET_PACA(r13);
-	std	r1,PACA_EXRFI+EX_R12(r13)
-	ld	r1,PACAKSAVE(r13)
-	std	r9,PACA_EXRFI+EX_R9(r13)
-	std	r10,PACA_EXRFI+EX_R10(r13)
-	std	r11,PACA_EXRFI+EX_R11(r13)
-	mfctr	r9
+/* Clobbers r10, r11, ctr */
+.macro L1D_DISPLACEMENT_FLUSH
 	ld	r10,PACA_RFI_FLUSH_FALLBACK_AREA(r13)
 	ld	r11,PACA_L1D_FLUSH_SIZE(r13)
 	srdi	r11,r11,(7 + 3) /* 128 byte lines, unrolled 8x */
@@ -2063,7 +2058,7 @@
 	sync
 
 	/*
-	 * The load adresses are at staggered offsets within cachelines,
+	 * The load addresses are at staggered offsets within cachelines,
 	 * which suits some pipelines better (on others it should not
 	 * hurt).
 	 */
@@ -2078,7 +2073,30 @@
 	ld	r11,(0x80 + 8)*7(r10)
 	addi	r10,r10,0x80*8
 	bdnz	1b
+.endm
 
+TRAMP_REAL_BEGIN(entry_flush_fallback)
+	std	r9,PACA_EXRFI+EX_R9(r13)
+	std	r10,PACA_EXRFI+EX_R10(r13)
+	std	r11,PACA_EXRFI+EX_R11(r13)
+	mfctr	r9
+	L1D_DISPLACEMENT_FLUSH
+	mtctr	r9
+	ld	r9,PACA_EXRFI+EX_R9(r13)
+	ld	r10,PACA_EXRFI+EX_R10(r13)
+	ld	r11,PACA_EXRFI+EX_R11(r13)
+	blr
+
+TRAMP_REAL_BEGIN(rfi_flush_fallback)
+	SET_SCRATCH0(r13);
+	GET_PACA(r13);
+	std	r1,PACA_EXRFI+EX_R12(r13)
+	ld	r1,PACAKSAVE(r13)
+	std	r9,PACA_EXRFI+EX_R9(r13)
+	std	r10,PACA_EXRFI+EX_R10(r13)
+	std	r11,PACA_EXRFI+EX_R11(r13)
+	mfctr	r9
+	L1D_DISPLACEMENT_FLUSH
 	mtctr	r9
 	ld	r9,PACA_EXRFI+EX_R9(r13)
 	ld	r10,PACA_EXRFI+EX_R10(r13)
@@ -2096,32 +2114,7 @@
 	std	r10,PACA_EXRFI+EX_R10(r13)
 	std	r11,PACA_EXRFI+EX_R11(r13)
 	mfctr	r9
-	ld	r10,PACA_RFI_FLUSH_FALLBACK_AREA(r13)
-	ld	r11,PACA_L1D_FLUSH_SIZE(r13)
-	srdi	r11,r11,(7 + 3) /* 128 byte lines, unrolled 8x */
-	mtctr	r11
-	DCBT_BOOK3S_STOP_ALL_STREAM_IDS(r11) /* Stop prefetch streams */
-
-	/* order ld/st prior to dcbt stop all streams with flushing */
-	sync
-
-	/*
-	 * The load adresses are at staggered offsets within cachelines,
-	 * which suits some pipelines better (on others it should not
-	 * hurt).
-	 */
-1:
-	ld	r11,(0x80 + 8)*0(r10)
-	ld	r11,(0x80 + 8)*1(r10)
-	ld	r11,(0x80 + 8)*2(r10)
-	ld	r11,(0x80 + 8)*3(r10)
-	ld	r11,(0x80 + 8)*4(r10)
-	ld	r11,(0x80 + 8)*5(r10)
-	ld	r11,(0x80 + 8)*6(r10)
-	ld	r11,(0x80 + 8)*7(r10)
-	addi	r10,r10,0x80*8
-	bdnz	1b
-
+	L1D_DISPLACEMENT_FLUSH
 	mtctr	r9
 	ld	r9,PACA_EXRFI+EX_R9(r13)
 	ld	r10,PACA_EXRFI+EX_R10(r13)
@@ -2130,6 +2123,19 @@
 	GET_SCRATCH0(r13);
 	hrfid
 
+USE_TEXT_SECTION()
+
+_GLOBAL(do_uaccess_flush)
+	UACCESS_FLUSH_FIXUP_SECTION
+	nop
+	nop
+	nop
+	blr
+	L1D_DISPLACEMENT_FLUSH
+	blr
+_ASM_NOKPROBE_SYMBOL(do_uaccess_flush)
+EXPORT_SYMBOL(do_uaccess_flush)
+
 /*
  * Real mode exceptions actually use this too, but alternate
  * instruction code patches (which end up in the common .text area)
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/fadump.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/fadump.c
@@ -38,8 +38,17 @@
 
 #ifndef CONFIG_PRESERVE_FA_DUMP
 static DEFINE_MUTEX(fadump_mutex);
-struct fadump_mrange_info crash_mrange_info = { "crash", NULL, 0, 0, 0 };
-struct fadump_mrange_info reserved_mrange_info = { "reserved", NULL, 0, 0, 0 };
+struct fadump_mrange_info crash_mrange_info = { "crash", NULL, 0, 0, 0, false };
+
+#define RESERVED_RNGS_SZ	16384 /* 16K - 128 entries */
+#define RESERVED_RNGS_CNT	(RESERVED_RNGS_SZ / \
+				 sizeof(struct fadump_memory_range))
+static struct fadump_memory_range rngs[RESERVED_RNGS_CNT];
+struct fadump_mrange_info reserved_mrange_info = { "reserved", rngs,
+						   RESERVED_RNGS_SZ, 0,
+						   RESERVED_RNGS_CNT, true };
+
+static void __init early_init_dt_scan_reserved_ranges(unsigned long node);
 
 #ifdef CONFIG_CMA
 static struct cma *fadump_cma;
@@ -108,6 +117,11 @@
 int __init early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
 				      int depth, void *data)
 {
+	if (depth == 0) {
+		early_init_dt_scan_reserved_ranges(node);
+		return 0;
+	}
+
 	if (depth != 1)
 		return 0;
 
@@ -265,7 +279,7 @@
  * that is required for a kernel to boot successfully.
  *
  */
-static inline u64 fadump_calculate_reserve_size(void)
+static __init u64 fadump_calculate_reserve_size(void)
 {
 	u64 base, size, bootmem_min;
 	int ret;
@@ -429,10 +443,72 @@
 	return ret;
 }
 
+/*
+ * Returns true, if the given range overlaps with reserved memory ranges
+ * starting at idx. Also, updates idx to index of overlapping memory range
+ * with the given memory range.
+ * False, otherwise.
+ */
+static bool overlaps_reserved_ranges(u64 base, u64 end, int *idx)
+{
+	bool ret = false;
+	int i;
+
+	for (i = *idx; i < reserved_mrange_info.mem_range_cnt; i++) {
+		u64 rbase = reserved_mrange_info.mem_ranges[i].base;
+		u64 rend = rbase + reserved_mrange_info.mem_ranges[i].size;
+
+		if (end <= rbase)
+			break;
+
+		if ((end > rbase) &&  (base < rend)) {
+			*idx = i;
+			ret = true;
+			break;
+		}
+	}
+
+	return ret;
+}
+
+/*
+ * Locate a suitable memory area to reserve memory for FADump. While at it,
+ * lookup reserved-ranges & avoid overlap with them, as they are used by F/W.
+ */
+static u64 __init fadump_locate_reserve_mem(u64 base, u64 size)
+{
+	struct fadump_memory_range *mrngs;
+	phys_addr_t mstart, mend;
+	int idx = 0;
+	u64 i, ret = 0;
+
+	mrngs = reserved_mrange_info.mem_ranges;
+	for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE,
+				&mstart, &mend, NULL) {
+		pr_debug("%llu) mstart: %llx, mend: %llx, base: %llx\n",
+			 i, mstart, mend, base);
+
+		if (mstart > base)
+			base = PAGE_ALIGN(mstart);
+
+		while ((mend > base) && ((mend - base) >= size)) {
+			if (!overlaps_reserved_ranges(base, base+size, &idx)) {
+				ret = base;
+				goto out;
+			}
+
+			base = mrngs[idx].base + mrngs[idx].size;
+			base = PAGE_ALIGN(base);
+		}
+	}
+
+out:
+	return ret;
+}
+
 int __init fadump_reserve_mem(void)
 {
-	u64 base, size, mem_boundary, bootmem_min, align = PAGE_SIZE;
-	bool is_memblock_bottom_up = memblock_bottom_up();
+	u64 base, size, mem_boundary, bootmem_min;
 	int ret = 1;
 
 	if (!fw_dump.fadump_enabled)
@@ -453,9 +529,9 @@
 			PAGE_ALIGN(fadump_calculate_reserve_size());
 #ifdef CONFIG_CMA
 		if (!fw_dump.nocma) {
-			align = FADUMP_CMA_ALIGNMENT;
 			fw_dump.boot_memory_size =
-				ALIGN(fw_dump.boot_memory_size, align);
+				ALIGN(fw_dump.boot_memory_size,
+				      FADUMP_CMA_ALIGNMENT);
 		}
 #endif
 
@@ -523,13 +599,9 @@
 		 * Reserve memory at an offset closer to bottom of the RAM to
 		 * minimize the impact of memory hot-remove operation.
 		 */
-		memblock_set_bottom_up(true);
-		base = memblock_find_in_range(base, mem_boundary, size, align);
-
-		/* Restore the previous allocation mode */
-		memblock_set_bottom_up(is_memblock_bottom_up);
+		base = fadump_locate_reserve_mem(base, size);
 
-		if (!base) {
+		if (!base || (base + size > mem_boundary)) {
 			pr_err("Failed to find memory chunk for reservation!\n");
 			goto error_out;
 		}
@@ -557,6 +629,7 @@
 	return ret;
 error_out:
 	fw_dump.fadump_enabled = 0;
+	fw_dump.reserve_dump_area_size = 0;
 	return 0;
 }
 
@@ -726,10 +799,14 @@
 
 static void fadump_free_mem_ranges(struct fadump_mrange_info *mrange_info)
 {
+	if (mrange_info->is_static) {
+		mrange_info->mem_range_cnt = 0;
+		return;
+	}
+
 	kfree(mrange_info->mem_ranges);
-	mrange_info->mem_ranges = NULL;
-	mrange_info->mem_ranges_sz = 0;
-	mrange_info->max_mem_ranges = 0;
+	memset((void *)((u64)mrange_info + RNG_NAME_SZ), 0,
+	       (sizeof(struct fadump_mrange_info) - RNG_NAME_SZ));
 }
 
 /*
@@ -759,7 +836,6 @@
 				       sizeof(struct fadump_memory_range));
 	return 0;
 }
-
 static inline int fadump_add_mem_range(struct fadump_mrange_info *mrange_info,
 				       u64 base, u64 end)
 {
@@ -778,7 +854,12 @@
 		start = mem_ranges[mrange_info->mem_range_cnt - 1].base;
 		size  = mem_ranges[mrange_info->mem_range_cnt - 1].size;
 
-		if ((start + size) == base)
+		/*
+		 * Boot memory area needs separate PT_LOAD segment(s) as it
+		 * is moved to a different location at the time of crash.
+		 * So, fold only if the region is not boot memory area.
+		 */
+		if ((start + size) == base && start >= fw_dump.boot_mem_top)
 			is_adjacent = true;
 	}
 	if (!is_adjacent) {
@@ -786,6 +867,12 @@
 		if (mrange_info->mem_range_cnt == mrange_info->max_mem_ranges) {
 			int ret;
 
+			if (mrange_info->is_static) {
+				pr_err("Reached array size limit for %s memory ranges\n",
+				       mrange_info->name);
+				return -ENOSPC;
+			}
+
 			ret = fadump_alloc_mem_ranges(mrange_info);
 			if (ret)
 				return ret;
@@ -1202,20 +1289,19 @@
  * Scan reserved-ranges to consider them while reserving/releasing
  * memory for FADump.
  */
-static inline int fadump_scan_reserved_mem_ranges(void)
+static void __init early_init_dt_scan_reserved_ranges(unsigned long node)
 {
-	struct device_node *root;
 	const __be32 *prop;
 	int len, ret = -1;
 	unsigned long i;
 
-	root = of_find_node_by_path("/");
-	if (!root)
-		return ret;
+	/* reserved-ranges already scanned */
+	if (reserved_mrange_info.mem_range_cnt != 0)
+		return;
 
-	prop = of_get_property(root, "reserved-ranges", &len);
+	prop = of_get_flat_dt_prop(node, "reserved-ranges", &len);
 	if (!prop)
-		return ret;
+		return;
 
 	/*
 	 * Each reserved range is an (address,size) pair, 2 cells each,
@@ -1237,7 +1323,8 @@
 		}
 	}
 
-	return ret;
+	/* Compact reserved ranges */
+	sort_and_merge_mem_ranges(&reserved_mrange_info);
 }
 
 /*
@@ -1251,32 +1338,21 @@
 	u64 ra_start, ra_end, tstart;
 	int i, ret;
 
-	fadump_scan_reserved_mem_ranges();
-
 	ra_start = fw_dump.reserve_dump_area_start;
 	ra_end = ra_start + fw_dump.reserve_dump_area_size;
 
 	/*
-	 * Add reserved dump area to reserved ranges list
-	 * and exclude all these ranges while releasing memory.
+	 * If reserved ranges array limit is hit, overwrite the last reserved
+	 * memory range with reserved dump area to ensure it is excluded from
+	 * the memory being released (reused for next FADump registration).
 	 */
-	ret = fadump_add_mem_range(&reserved_mrange_info, ra_start, ra_end);
-	if (ret != 0) {
-		/*
-		 * Not enough memory to setup reserved ranges but the system is
-		 * running shortage of memory. So, release all the memory except
-		 * Reserved dump area (reused for next fadump registration).
-		 */
-		if (begin < ra_end && end > ra_start) {
-			if (begin < ra_start)
-				fadump_release_reserved_area(begin, ra_start);
-			if (end > ra_end)
-				fadump_release_reserved_area(ra_end, end);
-		} else
-			fadump_release_reserved_area(begin, end);
+	if (reserved_mrange_info.mem_range_cnt ==
+	    reserved_mrange_info.max_mem_ranges)
+		reserved_mrange_info.mem_range_cnt--;
 
+	ret = fadump_add_mem_range(&reserved_mrange_info, ra_start, ra_end);
+	if (ret != 0)
 		return;
-	}
 
 	/* Get the reserved ranges list in order first. */
 	sort_and_merge_mem_ranges(&reserved_mrange_info);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/head_32.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/head_32.S
@@ -418,14 +418,11 @@
 	cmplw	0,r1,r3
 #endif
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
-	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
-#else
-	li	r1,_PAGE_PRESENT | _PAGE_EXEC
-#endif
+	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC | _PAGE_USER
 #if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC)
 	bge-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
+	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
 #endif
 112:	rlwimi	r2,r3,12,20,29		/* insert top 10 bits of address */
@@ -484,13 +481,10 @@
 	lis	r1,PAGE_OFFSET@h		/* check if kernel address */
 	cmplw	0,r1,r3
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
-	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED
-#else
-	li	r1, _PAGE_PRESENT
-#endif
+	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER
 	bge-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
+	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
 112:	rlwimi	r2,r3,12,20,29		/* insert top 10 bits of address */
 	lwz	r2,0(r2)		/* get pmd entry */
@@ -564,13 +558,10 @@
 	lis	r1,PAGE_OFFSET@h		/* check if kernel address */
 	cmplw	0,r1,r3
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
-	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
-#else
-	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT
-#endif
+	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER
 	bge-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
+	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
 112:	rlwimi	r2,r3,12,20,29		/* insert top 10 bits of address */
 	lwz	r2,0(r2)		/* get pmd entry */
@@ -843,7 +834,7 @@
 END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS)
 	blr
 
-load_segment_registers:
+_GLOBAL(load_segment_registers)
 	li	r0, NUM_USER_SEGMENTS /* load up user segment register values */
 	mtctr	r0		/* for context 0 */
 	li	r3, 0		/* Kp = 0, Ks = 0, VSID = 0 */
@@ -931,7 +922,7 @@
 	 */
 	lis	r5, abatron_pteptrs@h
 	ori	r5, r5, abatron_pteptrs@l
-	stw	r5, 0xf0(r0)	/* This much match your Abatron config */
+	stw	r5, 0xf0(0)	/* This much match your Abatron config */
 	lis	r6, swapper_pg_dir@h
 	ori	r6, r6, swapper_pg_dir@l
 	tophys(r5, r5)
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/head_64.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/head_64.S
@@ -420,6 +420,10 @@
 	/* From now on, r24 is expected to be logical cpuid */
 	mr	r24,r5
 
+	/* Create a temp kernel stack for use before relocation is on.	*/
+	ld	r1,PACAEMERGSP(r13)
+	subi	r1,r1,STACK_FRAME_OVERHEAD
+
 	/* See if we need to call a cpu state restore handler */
 	LOAD_REG_ADDR(r23, cur_cpu_spec)
 	ld	r23,0(r23)
@@ -448,10 +452,6 @@
 	sync				/* order paca.run and cur_cpu_spec */
 	isync				/* In case code patching happened */
 
-	/* Create a temp kernel stack for use before relocation is on.	*/
-	ld	r1,PACAEMERGSP(r13)
-	subi	r1,r1,STACK_FRAME_OVERHEAD
-
 	b	__secondary_start
 #endif /* SMP */
 
@@ -945,15 +945,8 @@
 	std	r0,0(r4)
 #endif
 
-	/* The following gets the stack set up with the regs */
-	/* pointing to the real addr of the kernel stack.  This is   */
-	/* all done to support the C function call below which sets  */
-	/* up the htab.  This is done because we have relocated the  */
-	/* kernel but are still running in real mode. */
-
-	LOAD_REG_ADDR(r3,init_thread_union)
-
 	/* set up a stack pointer */
+	LOAD_REG_ADDR(r3,init_thread_union)
 	LOAD_REG_IMMEDIATE(r1,THREAD_SIZE)
 	add	r1,r3,r1
 	li	r0,0
@@ -999,7 +992,7 @@
 	bl	start_kernel
 
 	/* Not reached */
-	trap
+0:	trap
 	EMIT_BUG_ENTRY 0b, __FILE__, __LINE__, 0
 
 /*
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/head_8xx.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/head_8xx.S
@@ -191,7 +191,7 @@
 /* On the MPC8xx, this is a software emulation interrupt.  It occurs
  * for all unimplemented and illegal instructions.
  */
-	EXCEPTION(0x1000, SoftEmu, program_check_exception, EXC_XFER_STD)
+	EXCEPTION(0x1000, SoftEmu, emulation_assist_interrupt, EXC_XFER_STD)
 
 /* Called from DataStoreTLBMiss when perf TLB misses events are activated */
 #ifdef CONFIG_PERF_EVENTS
@@ -229,9 +229,7 @@
 
 InstructionTLBMiss:
 	mtspr	SPRN_SPRG_SCRATCH0, r10
-#if defined(ITLB_MISS_KERNEL) || defined(CONFIG_SWAP)
 	mtspr	SPRN_SPRG_SCRATCH1, r11
-#endif
 
 	/* If we are faulting a kernel address, we have to use the
 	 * kernel page tables.
@@ -278,27 +276,23 @@
 #ifdef ITLB_MISS_KERNEL
 	mtcr	r11
 #endif
-#ifdef CONFIG_SWAP
-	rlwinm	r11, r10, 32-5, _PAGE_PRESENT
+	rlwinm	r11, r10, 32-7, _PAGE_PRESENT
 	and	r11, r11, r10
 	rlwimi	r10, r11, 0, _PAGE_PRESENT
-#endif
 	/* The Linux PTE won't go exactly into the MMU TLB.
 	 * Software indicator bits 20 and 23 must be clear.
 	 * Software indicator bits 22, 24, 25, 26, and 27 must be
 	 * set.  All other Linux PTE bits control the behavior
 	 * of the MMU.
 	 */
-	rlwimi	r10, r10, 0, 0x0f00	/* Clear bits 20-23 */
+	rlwinm	r10, r10, 0, ~0x0f00	/* Clear bits 20-23 */
 	rlwimi	r10, r10, 4, 0x0400	/* Copy _PAGE_EXEC into bit 21 */
 	ori	r10, r10, RPN_PATTERN | 0x200 /* Set 22 and 24-27 */
 	mtspr	SPRN_MI_RPN, r10	/* Update TLB entry */
 
 	/* Restore registers */
 0:	mfspr	r10, SPRN_SPRG_SCRATCH0
-#if defined(ITLB_MISS_KERNEL) || defined(CONFIG_SWAP)
 	mfspr	r11, SPRN_SPRG_SCRATCH1
-#endif
 	rfi
 	patch_site	0b, patch__itlbmiss_exit_1
 
@@ -308,9 +302,7 @@
 	addi	r10, r10, 1
 	stw	r10, (itlb_miss_counter - PAGE_OFFSET)@l(0)
 	mfspr	r10, SPRN_SPRG_SCRATCH0
-#if defined(ITLB_MISS_KERNEL) || defined(CONFIG_SWAP)
 	mfspr	r11, SPRN_SPRG_SCRATCH1
-#endif
 	rfi
 #endif
 
@@ -394,11 +386,9 @@
 	 * r11 = ((r10 & PRESENT) & ((r10 & ACCESSED) >> 5));
 	 * r10 = (r10 & ~PRESENT) | r11;
 	 */
-#ifdef CONFIG_SWAP
-	rlwinm	r11, r10, 32-5, _PAGE_PRESENT
+	rlwinm	r11, r10, 32-7, _PAGE_PRESENT
 	and	r11, r11, r10
 	rlwimi	r10, r11, 0, _PAGE_PRESENT
-#endif
 	/* The Linux PTE won't go exactly into the MMU TLB.
 	 * Software indicator bits 24, 25, 26, and 27 must be
 	 * set.  All other Linux PTE bits control the behavior
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/head_fsl_booke.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/head_fsl_booke.S
@@ -238,6 +238,9 @@
 
 	bl	early_init
 
+#ifdef CONFIG_KASAN
+	bl	kasan_early_init
+#endif
 #ifdef CONFIG_RELOCATABLE
 	mr	r3,r30
 	mr	r4,r31
@@ -264,9 +267,6 @@
 /*
  * Decide what sort of machine this is and initialize the MMU.
  */
-#ifdef CONFIG_KASAN
-	bl	kasan_early_init
-#endif
 	mr	r3,r30
 	mr	r4,r31
 	bl	machine_init
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/hw_breakpoint.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/hw_breakpoint.c
@@ -247,6 +247,11 @@
 	return false;
 }
 
+/*
+ * Handle a DABR or DAWR exception.
+ *
+ * Called in atomic context.
+ */
 int hw_breakpoint_handler(struct die_args *args)
 {
 	int rc = NOTIFY_STOP;
@@ -315,6 +320,8 @@
 
 /*
  * Handle single-step exceptions following a DABR hit.
+ *
+ * Called in atomic context.
  */
 static int single_step_dabr_instruction(struct die_args *args)
 {
@@ -355,6 +362,8 @@
 
 /*
  * Handle debug exception notifications.
+ *
+ * Called in atomic context.
  */
 int hw_breakpoint_exceptions_notify(
 		struct notifier_block *unused, unsigned long val, void *data)
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/idle.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/idle.c
@@ -37,7 +37,7 @@
 {
 	ppc_md.power_save = NULL;
 	cpuidle_disable = IDLE_POWERSAVE_OFF;
-	return 0;
+	return 1;
 }
 __setup("powersave=off", powersave_off);
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/idle_6xx.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/idle_6xx.S
@@ -129,7 +129,7 @@
 END_FTR_SECTION_IFCLR(CPU_FTR_NO_DPM)
 	mtspr	SPRN_HID0,r4
 BEGIN_FTR_SECTION
-	DSSALL
+	PPC_DSSALL
 	sync
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 	lwz	r8,TI_LOCAL_FLAGS(r2)	/* set napping bit */
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/idle_book3s.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/idle_book3s.S
@@ -50,28 +50,32 @@
 	std	r1,PACAR1(r13)
 	mflr	r4
 	mfcr	r5
-	/* use stack red zone rather than a new frame for saving regs */
-	std	r2,-8*0(r1)
-	std	r14,-8*1(r1)
-	std	r15,-8*2(r1)
-	std	r16,-8*3(r1)
-	std	r17,-8*4(r1)
-	std	r18,-8*5(r1)
-	std	r19,-8*6(r1)
-	std	r20,-8*7(r1)
-	std	r21,-8*8(r1)
-	std	r22,-8*9(r1)
-	std	r23,-8*10(r1)
-	std	r24,-8*11(r1)
-	std	r25,-8*12(r1)
-	std	r26,-8*13(r1)
-	std	r27,-8*14(r1)
-	std	r28,-8*15(r1)
-	std	r29,-8*16(r1)
-	std	r30,-8*17(r1)
-	std	r31,-8*18(r1)
-	std	r4,-8*19(r1)
-	std	r5,-8*20(r1)
+	/*
+	 * Use the stack red zone rather than a new frame for saving regs since
+	 * in the case of no GPR loss the wakeup code branches directly back to
+	 * the caller without deallocating the stack frame first.
+	 */
+	std	r2,-8*1(r1)
+	std	r14,-8*2(r1)
+	std	r15,-8*3(r1)
+	std	r16,-8*4(r1)
+	std	r17,-8*5(r1)
+	std	r18,-8*6(r1)
+	std	r19,-8*7(r1)
+	std	r20,-8*8(r1)
+	std	r21,-8*9(r1)
+	std	r22,-8*10(r1)
+	std	r23,-8*11(r1)
+	std	r24,-8*12(r1)
+	std	r25,-8*13(r1)
+	std	r26,-8*14(r1)
+	std	r27,-8*15(r1)
+	std	r28,-8*16(r1)
+	std	r29,-8*17(r1)
+	std	r30,-8*18(r1)
+	std	r31,-8*19(r1)
+	std	r4,-8*20(r1)
+	std	r5,-8*21(r1)
 	/* 168 bytes */
 	PPC_STOP
 	b	.	/* catch bugs */
@@ -87,8 +91,8 @@
  */
 _GLOBAL(idle_return_gpr_loss)
 	ld	r1,PACAR1(r13)
-	ld	r4,-8*19(r1)
-	ld	r5,-8*20(r1)
+	ld	r4,-8*20(r1)
+	ld	r5,-8*21(r1)
 	mtlr	r4
 	mtcr	r5
 	/*
@@ -96,38 +100,40 @@
 	 * from PACATOC. This could be avoided for that less common case
 	 * if KVM saved its r2.
 	 */
-	ld	r2,-8*0(r1)
-	ld	r14,-8*1(r1)
-	ld	r15,-8*2(r1)
-	ld	r16,-8*3(r1)
-	ld	r17,-8*4(r1)
-	ld	r18,-8*5(r1)
-	ld	r19,-8*6(r1)
-	ld	r20,-8*7(r1)
-	ld	r21,-8*8(r1)
-	ld	r22,-8*9(r1)
-	ld	r23,-8*10(r1)
-	ld	r24,-8*11(r1)
-	ld	r25,-8*12(r1)
-	ld	r26,-8*13(r1)
-	ld	r27,-8*14(r1)
-	ld	r28,-8*15(r1)
-	ld	r29,-8*16(r1)
-	ld	r30,-8*17(r1)
-	ld	r31,-8*18(r1)
+	ld	r2,-8*1(r1)
+	ld	r14,-8*2(r1)
+	ld	r15,-8*3(r1)
+	ld	r16,-8*4(r1)
+	ld	r17,-8*5(r1)
+	ld	r18,-8*6(r1)
+	ld	r19,-8*7(r1)
+	ld	r20,-8*8(r1)
+	ld	r21,-8*9(r1)
+	ld	r22,-8*10(r1)
+	ld	r23,-8*11(r1)
+	ld	r24,-8*12(r1)
+	ld	r25,-8*13(r1)
+	ld	r26,-8*14(r1)
+	ld	r27,-8*15(r1)
+	ld	r28,-8*16(r1)
+	ld	r29,-8*17(r1)
+	ld	r30,-8*18(r1)
+	ld	r31,-8*19(r1)
 	blr
 
 /*
  * This is the sequence required to execute idle instructions, as
  * specified in ISA v2.07 (and earlier). MSR[IR] and MSR[DR] must be 0.
- *
- * The 0(r1) slot is used to save r2 in isa206, so use that here.
+ * We have to store a GPR somewhere, ptesync, then reload it, and create
+ * a false dependency on the result of the load. It doesn't matter which
+ * GPR we store, or where we store it. We have already stored r2 to the
+ * stack at -8(r1) in isa206_idle_insn_mayloss, so use that.
  */
 #define IDLE_STATE_ENTER_SEQ_NORET(IDLE_INST)			\
 	/* Magic NAP/SLEEP/WINKLE mode enter sequence */	\
-	std	r2,0(r1);					\
+	std	r2,-8(r1);					\
 	ptesync;						\
-	ld	r2,0(r1);					\
+	ld	r2,-8(r1);					\
 236:	cmpd	cr0,r2,r2;					\
 	bne	236b;						\
 	IDLE_INST;						\
@@ -152,28 +158,32 @@
 	std	r1,PACAR1(r13)
 	mflr	r4
 	mfcr	r5
-	/* use stack red zone rather than a new frame for saving regs */
-	std	r2,-8*0(r1)
-	std	r14,-8*1(r1)
-	std	r15,-8*2(r1)
-	std	r16,-8*3(r1)
-	std	r17,-8*4(r1)
-	std	r18,-8*5(r1)
-	std	r19,-8*6(r1)
-	std	r20,-8*7(r1)
-	std	r21,-8*8(r1)
-	std	r22,-8*9(r1)
-	std	r23,-8*10(r1)
-	std	r24,-8*11(r1)
-	std	r25,-8*12(r1)
-	std	r26,-8*13(r1)
-	std	r27,-8*14(r1)
-	std	r28,-8*15(r1)
-	std	r29,-8*16(r1)
-	std	r30,-8*17(r1)
-	std	r31,-8*18(r1)
-	std	r4,-8*19(r1)
-	std	r5,-8*20(r1)
+	/*
+	 * Use the stack red zone rather than a new frame for saving regs since
+	 * in the case of no GPR loss the wakeup code branches directly back to
+	 * the caller without deallocating the stack frame first.
+	 */
+	std	r2,-8*1(r1)
+	std	r14,-8*2(r1)
+	std	r15,-8*3(r1)
+	std	r16,-8*4(r1)
+	std	r17,-8*5(r1)
+	std	r18,-8*6(r1)
+	std	r19,-8*7(r1)
+	std	r20,-8*8(r1)
+	std	r21,-8*9(r1)
+	std	r22,-8*10(r1)
+	std	r23,-8*11(r1)
+	std	r24,-8*12(r1)
+	std	r25,-8*13(r1)
+	std	r26,-8*14(r1)
+	std	r27,-8*15(r1)
+	std	r28,-8*16(r1)
+	std	r29,-8*17(r1)
+	std	r30,-8*18(r1)
+	std	r31,-8*19(r1)
+	std	r4,-8*20(r1)
+	std	r5,-8*21(r1)
 	cmpwi	r3,PNV_THREAD_NAP
 	bne	1f
 	IDLE_STATE_ENTER_SEQ_NORET(PPC_NAP)
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/ima_arch.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/ima_arch.c
@@ -0,0 +1,78 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ */
+
+#include <linux/ima.h>
+#include <asm/secure_boot.h>
+
+bool arch_ima_get_secureboot(void)
+{
+	return is_ppc_secureboot_enabled();
+}
+
+/*
+ * The "secure_rules" are enabled only on "secureboot" enabled systems.
+ * These rules verify the file signatures against known good values.
+ * The "appraise_type=imasig|modsig" option allows the known good signature
+ * to be stored as an xattr or as an appended signature.
+ *
+ * To avoid duplicate signature verification as much as possible, the IMA
+ * policy rule for module appraisal is added only if CONFIG_MODULE_SIG
+ * is not enabled.
+ */
+static const char *const secure_rules[] = {
+	"appraise func=KEXEC_KERNEL_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#ifndef CONFIG_MODULE_SIG
+	"appraise func=MODULE_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#endif
+	NULL
+};
+
+/*
+ * The "trusted_rules" are enabled only on "trustedboot" enabled systems.
+ * These rules add the kexec kernel image and kernel modules file hashes to
+ * the IMA measurement list.
+ */
+static const char *const trusted_rules[] = {
+	"measure func=KEXEC_KERNEL_CHECK",
+	"measure func=MODULE_CHECK",
+	NULL
+};
+
+/*
+ * The "secure_and_trusted_rules" contains rules for both the secure boot and
+ * trusted boot. The "template=ima-modsig" option includes the appended
+ * signature, when available, in the IMA measurement list.
+ */
+static const char *const secure_and_trusted_rules[] = {
+	"measure func=KEXEC_KERNEL_CHECK template=ima-modsig",
+	"measure func=MODULE_CHECK template=ima-modsig",
+	"appraise func=KEXEC_KERNEL_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#ifndef CONFIG_MODULE_SIG
+	"appraise func=MODULE_CHECK appraise_flag=check_blacklist appraise_type=imasig|modsig",
+#endif
+	NULL
+};
+
+/*
+ * Returns the relevant IMA arch-specific policies based on the system secure
+ * boot state.
+ */
+const char *const *arch_get_ima_policy(void)
+{
+	if (is_ppc_secureboot_enabled()) {
+		if (IS_ENABLED(CONFIG_MODULE_SIG))
+			set_module_sig_enforced();
+
+		if (is_ppc_trustedboot_enabled())
+			return secure_and_trusted_rules;
+		else
+			return secure_rules;
+	} else if (is_ppc_trustedboot_enabled()) {
+		return trusted_rules;
+	}
+
+	return NULL;
+}
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/iommu.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/iommu.c
@@ -133,17 +133,28 @@
 	return 0;
 }
 
-static struct notifier_block fail_iommu_bus_notifier = {
+/*
+ * PCI and VIO buses need separate notifier_block structs, since they're linked
+ * list nodes.  Sharing a notifier_block would mean that any notifiers later
+ * registered for PCI buses would also get called by VIO buses and vice versa.
+ */
+static struct notifier_block fail_iommu_pci_bus_notifier = {
 	.notifier_call = fail_iommu_bus_notify
 };
 
+#ifdef CONFIG_IBMVIO
+static struct notifier_block fail_iommu_vio_bus_notifier = {
+	.notifier_call = fail_iommu_bus_notify
+};
+#endif
+
 static int __init fail_iommu_setup(void)
 {
 #ifdef CONFIG_PCI
-	bus_register_notifier(&pci_bus_type, &fail_iommu_bus_notifier);
+	bus_register_notifier(&pci_bus_type, &fail_iommu_pci_bus_notifier);
 #endif
 #ifdef CONFIG_IBMVIO
-	bus_register_notifier(&vio_bus_type, &fail_iommu_bus_notifier);
+	bus_register_notifier(&vio_bus_type, &fail_iommu_vio_bus_notifier);
 #endif
 
 	return 0;
@@ -1057,7 +1068,7 @@
 
 	spin_lock_irqsave(&tbl->large_pool.lock, flags);
 	for (i = 0; i < tbl->nr_pools; i++)
-		spin_lock(&tbl->pools[i].lock);
+		spin_lock_nest_lock(&tbl->pools[i].lock, &tbl->large_pool.lock);
 
 	iommu_table_release_pages(tbl);
 
@@ -1085,7 +1096,7 @@
 
 	spin_lock_irqsave(&tbl->large_pool.lock, flags);
 	for (i = 0; i < tbl->nr_pools; i++)
-		spin_lock(&tbl->pools[i].lock);
+		spin_lock_nest_lock(&tbl->pools[i].lock, &tbl->large_pool.lock);
 
 	memset(tbl->it_map, 0, sz);
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/irq.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/irq.c
@@ -619,8 +619,6 @@
 
 	trace_irq_entry(regs);
 
-	check_stack_overflow();
-
 	/*
 	 * Query the platform PIC for the interrupt & ack it.
 	 *
@@ -652,6 +650,8 @@
 	irqsp = hardirq_ctx[raw_smp_processor_id()];
 	sirqsp = softirq_ctx[raw_smp_processor_id()];
 
+	check_stack_overflow();
+
 	/* Already there ? */
 	if (unlikely(cursp == irqsp || cursp == sirqsp)) {
 		__do_irq(regs);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/kprobes.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/kprobes.c
@@ -264,6 +264,10 @@
 	if (user_mode(regs))
 		return 0;
 
+	if (!IS_ENABLED(CONFIG_BOOKE) &&
+	    (!(regs->msr & MSR_IR) || !(regs->msr & MSR_DR)))
+		return 0;
+
 	/*
 	 * We don't want to be preempted for the entire
 	 * duration of kprobe processing
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/kvm.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/kvm.c
@@ -669,7 +669,7 @@
 	on_each_cpu(kvm_map_magic_page, &features, 1);
 
 	/* Quick self-test to see if the mapping works */
-	if (!fault_in_pages_readable((const char *)KVM_MAGIC_PAGE, sizeof(u32))) {
+	if (fault_in_pages_readable((const char *)KVM_MAGIC_PAGE, sizeof(u32))) {
 		kvm_patching_worked = false;
 		return;
 	}
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/l2cr_6xx.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/l2cr_6xx.S
@@ -96,7 +96,7 @@
 
 	/* Stop DST streams */
 BEGIN_FTR_SECTION
-	DSSALL
+	PPC_DSSALL
 	sync
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 
@@ -293,7 +293,7 @@
 	isync
 
 	/* Stop DST streams */
-	DSSALL
+	PPC_DSSALL
 	sync
 
 	/* Get the current enable bit of the L3CR into r4 */
@@ -402,7 +402,7 @@
 _GLOBAL(__flush_disable_L1)
 	/* Stop pending alitvec streams and memory accesses */
 BEGIN_FTR_SECTION
-	DSSALL
+	PPC_DSSALL
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
  	sync
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/machine_kexec.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/machine_kexec.c
@@ -114,11 +114,12 @@
 
 void __init reserve_crashkernel(void)
 {
-	unsigned long long crash_size, crash_base;
+	unsigned long long crash_size, crash_base, total_mem_sz;
 	int ret;
 
+	total_mem_sz = memory_limit ? memory_limit : memblock_phys_mem_size();
 	/* use common parsing */
-	ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
+	ret = parse_crashkernel(boot_command_line, total_mem_sz,
 			&crash_size, &crash_base);
 	if (ret == 0 && crash_size > 0) {
 		crashk_res.start = crash_base;
@@ -145,11 +146,18 @@
 	if (!crashk_res.start) {
 #ifdef CONFIG_PPC64
 		/*
-		 * On 64bit we split the RMO in half but cap it at half of
-		 * a small SLB (128MB) since the crash kernel needs to place
-		 * itself and some stacks to be in the first segment.
+		 * On the LPAR platform place the crash kernel to mid of
+		 * RMA size (512MB or more) to ensure the crash kernel
+		 * gets enough space to place itself and some stack to be
+		 * in the first segment. At the same time normal kernel
+		 * also get enough space to allocate memory for essential
+		 * system resource in the first segment. Keep the crash
+		 * kernel starts at 128MB offset on other platforms.
 		 */
-		crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
+		if (firmware_has_feature(FW_FEATURE_LPAR))
+			crashk_res.start = ppc64_rma_size / 2;
+		else
+			crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
 #else
 		crashk_res.start = KDUMP_KERNELBASE;
 #endif
@@ -177,6 +185,7 @@
 	/* Crash kernel trumps memory limit */
 	if (memory_limit && memory_limit <= crashk_res.end) {
 		memory_limit = crashk_res.end + 1;
+		total_mem_sz = memory_limit;
 		printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
 		       memory_limit);
 	}
@@ -185,7 +194,7 @@
 			"for crashkernel (System RAM: %ldMB)\n",
 			(unsigned long)(crash_size >> 20),
 			(unsigned long)(crashk_res.start >> 20),
-			(unsigned long)(memblock_phys_mem_size() >> 20));
+			(unsigned long)(total_mem_sz >> 20));
 
 	if (!memblock_is_region_memory(crashk_res.start, crash_size) ||
 	    memblock_reserve(crashk_res.start, crash_size)) {
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/misc_32.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/misc_32.S
@@ -317,126 +317,6 @@
 #endif /* CONFIG_PPC_8xx */
 
 /*
- * Write any modified data cache blocks out to memory
- * and invalidate the corresponding instruction cache blocks.
- * This is a no-op on the 601.
- *
- * flush_icache_range(unsigned long start, unsigned long stop)
- */
-_GLOBAL(flush_icache_range)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
-	PURGE_PREFETCHED_INS
-	blr				/* for 601 and e200, do nothing */
-#else
-	rlwinm	r3,r3,0,0,31 - L1_CACHE_SHIFT
-	subf	r4,r3,r4
-	addi	r4,r4,L1_CACHE_BYTES - 1
-	srwi.	r4,r4,L1_CACHE_SHIFT
-	beqlr
-	mtctr	r4
-	mr	r6,r3
-1:	dcbst	0,r3
-	addi	r3,r3,L1_CACHE_BYTES
-	bdnz	1b
-	sync				/* wait for dcbst's to get to ram */
-#ifndef CONFIG_44x
-	mtctr	r4
-2:	icbi	0,r6
-	addi	r6,r6,L1_CACHE_BYTES
-	bdnz	2b
-#else
-	/* Flash invalidate on 44x because we are passed kmapped addresses and
-	   this doesn't work for userspace pages due to the virtually tagged
-	   icache.  Sigh. */
-	iccci	0, r0
-#endif
-	sync				/* additional sync needed on g4 */
-	isync
-	blr
-#endif
-_ASM_NOKPROBE_SYMBOL(flush_icache_range)
-EXPORT_SYMBOL(flush_icache_range)
-
-/*
- * Flush a particular page from the data cache to RAM.
- * Note: this is necessary because the instruction cache does *not*
- * snoop from the data cache.
- * This is a no-op on the 601 and e200 which have a unified cache.
- *
- *	void __flush_dcache_icache(void *page)
- */
-_GLOBAL(__flush_dcache_icache)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
-	PURGE_PREFETCHED_INS
-	blr
-#else
-	rlwinm	r3,r3,0,0,31-PAGE_SHIFT		/* Get page base address */
-	li	r4,PAGE_SIZE/L1_CACHE_BYTES	/* Number of lines in a page */
-	mtctr	r4
-	mr	r6,r3
-0:	dcbst	0,r3				/* Write line to ram */
-	addi	r3,r3,L1_CACHE_BYTES
-	bdnz	0b
-	sync
-#ifdef CONFIG_44x
-	/* We don't flush the icache on 44x. Those have a virtual icache
-	 * and we don't have access to the virtual address here (it's
-	 * not the page vaddr but where it's mapped in user space). The
-	 * flushing of the icache on these is handled elsewhere, when
-	 * a change in the address space occurs, before returning to
-	 * user space
-	 */
-BEGIN_MMU_FTR_SECTION
-	blr
-END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_44x)
-#endif /* CONFIG_44x */
-	mtctr	r4
-1:	icbi	0,r6
-	addi	r6,r6,L1_CACHE_BYTES
-	bdnz	1b
-	sync
-	isync
-	blr
-#endif
-
-#ifndef CONFIG_BOOKE
-/*
- * Flush a particular page from the data cache to RAM, identified
- * by its physical address.  We turn off the MMU so we can just use
- * the physical address (this may be a highmem page without a kernel
- * mapping).
- *
- *	void __flush_dcache_icache_phys(unsigned long physaddr)
- */
-_GLOBAL(__flush_dcache_icache_phys)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
-	PURGE_PREFETCHED_INS
-	blr					/* for 601 and e200, do nothing */
-#else
-	mfmsr	r10
-	rlwinm	r0,r10,0,28,26			/* clear DR */
-	mtmsr	r0
-	isync
-	rlwinm	r3,r3,0,0,31-PAGE_SHIFT		/* Get page base address */
-	li	r4,PAGE_SIZE/L1_CACHE_BYTES	/* Number of lines in a page */
-	mtctr	r4
-	mr	r6,r3
-0:	dcbst	0,r3				/* Write line to ram */
-	addi	r3,r3,L1_CACHE_BYTES
-	bdnz	0b
-	sync
-	mtctr	r4
-1:	icbi	0,r6
-	addi	r6,r6,L1_CACHE_BYTES
-	bdnz	1b
-	sync
-	mtmsr	r10				/* restore DR */
-	isync
-	blr
-#endif
-#endif /* CONFIG_BOOKE */
-
-/*
  * Copy a whole page.  We use the dcbz instruction on the destination
  * to reduce memory traffic (it eliminates the unnecessary reads of
  * the destination into cache).  This requires that the destination
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/misc_64.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/misc_64.S
@@ -49,108 +49,6 @@
 	mtlr	r0
 	blr
 
-	.section	".toc","aw"
-PPC64_CACHES:
-	.tc		ppc64_caches[TC],ppc64_caches
-	.section	".text"
-
-/*
- * Write any modified data cache blocks out to memory
- * and invalidate the corresponding instruction cache blocks.
- *
- * flush_icache_range(unsigned long start, unsigned long stop)
- *
- *   flush all bytes from start through stop-1 inclusive
- */
-
-_GLOBAL_TOC(flush_icache_range)
-BEGIN_FTR_SECTION
-	PURGE_PREFETCHED_INS
-	blr
-END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-/*
- * Flush the data cache to memory 
- * 
- * Different systems have different cache line sizes
- * and in some cases i-cache and d-cache line sizes differ from
- * each other.
- */
- 	ld	r10,PPC64_CACHES@toc(r2)
-	lwz	r7,DCACHEL1BLOCKSIZE(r10)/* Get cache block size */
-	addi	r5,r7,-1
-	andc	r6,r3,r5		/* round low to line bdy */
-	subf	r8,r6,r4		/* compute length */
-	add	r8,r8,r5		/* ensure we get enough */
-	lwz	r9,DCACHEL1LOGBLOCKSIZE(r10)	/* Get log-2 of cache block size */
-	srw.	r8,r8,r9		/* compute line count */
-	beqlr				/* nothing to do? */
-	mtctr	r8
-1:	dcbst	0,r6
-	add	r6,r6,r7
-	bdnz	1b
-	sync
-
-/* Now invalidate the instruction cache */
-	
-	lwz	r7,ICACHEL1BLOCKSIZE(r10)	/* Get Icache block size */
-	addi	r5,r7,-1
-	andc	r6,r3,r5		/* round low to line bdy */
-	subf	r8,r6,r4		/* compute length */
-	add	r8,r8,r5
-	lwz	r9,ICACHEL1LOGBLOCKSIZE(r10)	/* Get log-2 of Icache block size */
-	srw.	r8,r8,r9		/* compute line count */
-	beqlr				/* nothing to do? */
-	mtctr	r8
-2:	icbi	0,r6
-	add	r6,r6,r7
-	bdnz	2b
-	isync
-	blr
-_ASM_NOKPROBE_SYMBOL(flush_icache_range)
-EXPORT_SYMBOL(flush_icache_range)
-
-/*
- * Flush a particular page from the data cache to RAM.
- * Note: this is necessary because the instruction cache does *not*
- * snoop from the data cache.
- *
- *	void __flush_dcache_icache(void *page)
- */
-_GLOBAL(__flush_dcache_icache)
-/*
- * Flush the data cache to memory 
- * 
- * Different systems have different cache line sizes
- */
-
-BEGIN_FTR_SECTION
-	PURGE_PREFETCHED_INS
-	blr
-END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-
-/* Flush the dcache */
- 	ld	r7,PPC64_CACHES@toc(r2)
-	clrrdi	r3,r3,PAGE_SHIFT           	    /* Page align */
-	lwz	r4,DCACHEL1BLOCKSPERPAGE(r7)	/* Get # dcache blocks per page */
-	lwz	r5,DCACHEL1BLOCKSIZE(r7)	/* Get dcache block size */
-	mr	r6,r3
-	mtctr	r4
-0:	dcbst	0,r6
-	add	r6,r6,r5
-	bdnz	0b
-	sync
-
-/* Now invalidate the icache */	
-
-	lwz	r4,ICACHEL1BLOCKSPERPAGE(r7)	/* Get # icache blocks per page */
-	lwz	r5,ICACHEL1BLOCKSIZE(r7)	/* Get icache block size */
-	mtctr	r4
-1:	icbi	0,r3
-	add	r3,r3,r5
-	bdnz	1b
-	isync
-	blr
-
 _GLOBAL(__bswapdi2)
 EXPORT_SYMBOL(__bswapdi2)
 	srdi	r8,r3,32
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/paca.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/paca.c
@@ -86,7 +86,7 @@
 	 * This is very early in boot, so no harm done if the kernel crashes at
 	 * this point.
 	 */
-	BUG_ON(shared_lppaca_size >= shared_lppaca_total_size);
+	BUG_ON(shared_lppaca_size > shared_lppaca_total_size);
 
 	return ptr;
 }
@@ -214,11 +214,15 @@
 	/* On Book3E, initialize the TLB miss exception frames */
 	mtspr(SPRN_SPRG_TLB_EXFRAME, local_paca->extlb);
 #else
-	/* In HV mode, we setup both HPACA and PACA to avoid problems
+	/*
+	 * In HV mode, we setup both HPACA and PACA to avoid problems
 	 * if we do a GET_PACA() before the feature fixups have been
-	 * applied
+	 * applied.
+	 *
+	 * Normally you should test against CPU_FTR_HVMODE, but CPU features
+	 * are not yet set up when we first reach here.
 	 */
-	if (early_cpu_has_feature(CPU_FTR_HVMODE))
+	if (mfmsr() & MSR_HV)
 		mtspr(SPRN_SPRG_HPACA, local_paca);
 #endif
 	mtspr(SPRN_SPRG_PACA, local_paca);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/pci-common.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/pci-common.c
@@ -66,23 +66,35 @@
 	pci_dma_ops = dma_ops;
 }
 
-/*
- * This function should run under locking protection, specifically
- * hose_spinlock.
- */
 static int get_phb_number(struct device_node *dn)
 {
 	int ret, phb_id = -1;
-	u32 prop_32;
 	u64 prop;
 
 	/*
 	 * Try fixed PHB numbering first, by checking archs and reading
-	 * the respective device-tree properties. Firstly, try powernv by
-	 * reading "ibm,opal-phbid", only present in OPAL environment.
+	 * the respective device-tree properties. Firstly, try reading
+	 * standard "linux,pci-domain", then try reading "ibm,opal-phbid"
+	 * (only present in powernv OPAL environment), then try device-tree
+	 * alias and as the last try to use lower bits of "reg" property.
 	 */
-	ret = of_property_read_u64(dn, "ibm,opal-phbid", &prop);
+	ret = of_get_pci_domain_nr(dn);
+	if (ret >= 0) {
+		prop = ret;
+		ret = 0;
+	}
+	if (ret)
+		ret = of_property_read_u64(dn, "ibm,opal-phbid", &prop);
+
+	if (ret) {
+		ret = of_alias_get_id(dn, "pci");
+		if (ret >= 0) {
+			prop = ret;
+			ret = 0;
+		}
+	}
 	if (ret) {
+		u32 prop_32;
 		ret = of_property_read_u32_index(dn, "reg", 1, &prop_32);
 		prop = prop_32;
 	}
@@ -90,18 +102,20 @@
 	if (!ret)
 		phb_id = (int)(prop & (MAX_PHBS - 1));
 
+	spin_lock(&hose_spinlock);
+
 	/* We need to be sure to not use the same PHB number twice. */
 	if ((phb_id >= 0) && !test_and_set_bit(phb_id, phb_bitmap))
-		return phb_id;
+		goto out_unlock;
 
-	/*
-	 * If not pseries nor powernv, or if fixed PHB numbering tried to add
-	 * the same PHB number twice, then fallback to dynamic PHB numbering.
-	 */
+	/* If everything fails then fallback to dynamic PHB numbering. */
 	phb_id = find_first_zero_bit(phb_bitmap, MAX_PHBS);
 	BUG_ON(phb_id >= MAX_PHBS);
 	set_bit(phb_id, phb_bitmap);
 
+out_unlock:
+	spin_unlock(&hose_spinlock);
+
 	return phb_id;
 }
 
@@ -112,10 +126,13 @@
 	phb = zalloc_maybe_bootmem(sizeof(struct pci_controller), GFP_KERNEL);
 	if (phb == NULL)
 		return NULL;
-	spin_lock(&hose_spinlock);
+
 	phb->global_number = get_phb_number(dev);
+
+	spin_lock(&hose_spinlock);
 	list_add_tail(&phb->list_node, &hose_list);
 	spin_unlock(&hose_spinlock);
+
 	phb->dn = dev;
 	phb->is_dynamic = slab_is_available();
 #ifdef CONFIG_PPC64
@@ -347,6 +364,7 @@
 	}
 	return NULL;
 }
+EXPORT_SYMBOL(pci_find_hose_for_OF_device);
 
 struct pci_controller *pci_find_controller_for_domain(int domain_nr)
 {
@@ -1577,6 +1595,7 @@
 {
 	return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap);
 }
+EXPORT_SYMBOL_GPL(early_find_capability);
 
 struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus)
 {
@@ -1669,3 +1688,13 @@
 }
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl);
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl);
+
+
+static int __init discover_phbs(void)
+{
+	if (ppc_md.discover_phbs)
+		ppc_md.discover_phbs();
+
+	return 0;
+}
+core_initcall(discover_phbs);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/pci_dn.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/pci_dn.c
@@ -244,9 +244,22 @@
 				continue;
 
 #ifdef CONFIG_EEH
-			/* Release EEH device for the VF */
+			/*
+			 * Release EEH state for this VF. The PCI core
+			 * has already torn down the pci_dev for this VF, but
+			 * we're responsible to removing the eeh_dev since it
+			 * has the same lifetime as the pci_dn that spawned it.
+			 */
 			edev = pdn_to_eeh_dev(pdn);
 			if (edev) {
+				/*
+				 * We allocate pci_dn's for the totalvfs count,
+				 * but only only the vfs that were activated
+				 * have a configured PE.
+				 */
+				if (edev->pe)
+					eeh_rmv_from_parent_pe(edev);
+
 				pdn->edev = NULL;
 				kfree(edev);
 			}
@@ -312,6 +325,7 @@
 	INIT_LIST_HEAD(&pdn->list);
 	parent = of_get_parent(dn);
 	pdn->parent = parent ? PCI_DN(parent) : NULL;
+	of_node_put(parent);
 	if (pdn->parent)
 		list_add_tail(&pdn->list, &pdn->parent->child_list);
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/process.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/process.c
@@ -1218,29 +1218,31 @@
 static void show_instructions(struct pt_regs *regs)
 {
 	int i;
+	unsigned long nip = regs->nip;
 	unsigned long pc = regs->nip - (NR_INSN_TO_PRINT * 3 / 4 * sizeof(int));
 
 	printk("Instruction dump:");
 
+	/*
+	 * If we were executing with the MMU off for instructions, adjust pc
+	 * rather than printing XXXXXXXX.
+	 */
+	if (!IS_ENABLED(CONFIG_BOOKE) && !(regs->msr & MSR_IR)) {
+		pc = (unsigned long)phys_to_virt(pc);
+		nip = (unsigned long)phys_to_virt(regs->nip);
+	}
+
 	for (i = 0; i < NR_INSN_TO_PRINT; i++) {
 		int instr;
 
 		if (!(i % 8))
 			pr_cont("\n");
 
-#if !defined(CONFIG_BOOKE)
-		/* If executing with the IMMU off, adjust pc rather
-		 * than print XXXXXXXX.
-		 */
-		if (!(regs->msr & MSR_IR))
-			pc = (unsigned long)phys_to_virt(pc);
-#endif
-
 		if (!__kernel_text_address(pc) ||
 		    probe_kernel_address((const void *)pc, instr)) {
 			pr_cont("XXXXXXXX ");
 		} else {
-			if (regs->nip == pc)
+			if (nip == pc)
 				pr_cont("<%08x> ", instr);
 			else
 				pr_cont("%08x ", instr);
@@ -1717,7 +1719,7 @@
 		tm_reclaim_current(0);
 #endif
 
-	memset(regs->gpr, 0, sizeof(regs->gpr));
+	memset(&regs->gpr[1], 0, sizeof(regs->gpr) - sizeof(regs->gpr[0]));
 	regs->ctr = 0;
 	regs->link = 0;
 	regs->xer = 0;
@@ -1999,12 +2001,12 @@
 		return 0;
 
 	do {
-		sp = *(unsigned long *)sp;
+		sp = READ_ONCE_NOCHECK(*(unsigned long *)sp);
 		if (!validate_sp(sp, p, STACK_FRAME_OVERHEAD) ||
 		    p->state == TASK_RUNNING)
 			return 0;
 		if (count > 0) {
-			ip = ((unsigned long *)sp)[STACK_FRAME_LR_SAVE];
+			ip = READ_ONCE_NOCHECK(((unsigned long *)sp)[STACK_FRAME_LR_SAVE]);
 			if (!in_sched_functions(ip))
 				return ip;
 		}
@@ -2079,7 +2081,7 @@
 		 * See if this is an exception frame.
 		 * We look for the "regshere" marker in the current frame.
 		 */
-		if (validate_sp(sp, tsk, STACK_INT_FRAME_SIZE)
+		if (validate_sp(sp, tsk, STACK_FRAME_WITH_PT_REGS)
 		    && stack[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) {
 			struct pt_regs *regs = (struct pt_regs *)
 				(sp + STACK_FRAME_OVERHEAD);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/prom.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/prom.c
@@ -266,7 +266,7 @@
 };
 
 #if defined(CONFIG_44x) && defined(CONFIG_PPC_FPU)
-static inline void identical_pvr_fixup(unsigned long node)
+static __init void identical_pvr_fixup(unsigned long node)
 {
 	unsigned int pvr;
 	const char *model = of_get_flat_dt_prop(node, "model", NULL);
@@ -685,6 +685,23 @@
 static void tm_init(void) { }
 #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
 
+#ifdef CONFIG_PPC64
+static void __init save_fscr_to_task(void)
+{
+	/*
+	 * Ensure the init_task (pid 0, aka swapper) uses the value of FSCR we
+	 * have configured via the device tree features or via __init_FSCR().
+	 * That value will then be propagated to pid 1 (init) and all future
+	 * processes.
+	 */
+	if (early_cpu_has_feature(CPU_FTR_ARCH_207S))
+		init_task.thread.fscr = mfspr(SPRN_FSCR);
+}
+#else
+static inline void save_fscr_to_task(void) {};
+#endif
+
+
 void __init early_init_devtree(void *params)
 {
 	phys_addr_t limit;
@@ -723,6 +740,13 @@
 	of_scan_flat_dt(early_init_dt_scan_root, NULL);
 	of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);
 
+	/*
+	 * As generic code authors expect to be able to use static keys
+	 * in early_param() handlers, we initialize the static keys just
+	 * before parsing early params (it's fine to call jump_label_init()
+	 * more than once).
+	 */
+	jump_label_init();
 	parse_early_param();
 
 	/* make sure we've parsed cmdline for mem= before this */
@@ -773,6 +797,8 @@
 		BUG();
 	}
 
+	save_fscr_to_task();
+
 #if defined(CONFIG_SMP) && defined(CONFIG_PPC64)
 	/* We'll later wait for secondaries to check in; there are
 	 * NCPUS-1 non-boot CPUs  :-)
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/prom_init.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/prom_init.c
@@ -1053,7 +1053,7 @@
 		.reserved2 = 0,
 		.reserved3 = 0,
 		.subprocessors = 1,
-		.byte22 = OV5_FEAT(OV5_DRMEM_V2),
+		.byte22 = OV5_FEAT(OV5_DRMEM_V2) | OV5_FEAT(OV5_DRC_INFO),
 		.intarch = 0,
 		.mmu = 0,
 		.hash_ext = 0,
@@ -1305,14 +1305,10 @@
 		if (prop_len > sizeof(vec))
 			prom_printf("WARNING: ibm,arch-vec-5-platform-support longer than expected (len: %d)\n",
 				    prop_len);
-		prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support",
-			     &vec, sizeof(vec));
-		for (i = 0; i < sizeof(vec); i += 2) {
-			prom_debug("%d: index = 0x%x val = 0x%x\n", i / 2
-								  , vec[i]
-								  , vec[i + 1]);
-			prom_parse_platform_support(vec[i], vec[i + 1],
-						    &supported);
+		prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support", &vec, sizeof(vec));
+		for (i = 0; i < prop_len; i += 2) {
+			prom_debug("%d: index = 0x%x val = 0x%x\n", i / 2, vec[i], vec[i + 1]);
+			prom_parse_platform_support(vec[i], vec[i + 1], &supported);
 		}
 	}
 
@@ -1761,6 +1757,9 @@
 	if (token == 0)
 		prom_panic("Could not get token for ibm,os-term\n");
 	os_term_args.token = cpu_to_be32(token);
+	os_term_args.nargs = cpu_to_be32(1);
+	os_term_args.nret = cpu_to_be32(1);
+	os_term_args.args[0] = cpu_to_be32(__pa(str));
 	prom_rtas_hcall((uint64_t)&os_term_args);
 }
 #endif /* CONFIG_PPC_SVM */
@@ -2920,7 +2919,7 @@
 
 	/* Check if the phy-handle property exists - bail if it does */
 	rv = prom_getprop(node, "phy-handle", prop, sizeof(prop));
-	if (!rv)
+	if (rv <= 0)
 		return;
 
 	/*
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/prom_init_check.sh
+++ linux-ein-5.4.0/arch/powerpc/kernel/prom_init_check.sh
@@ -13,7 +13,7 @@
 # If you really need to reference something from prom_init.o add
 # it to the list below:
 
-grep "^CONFIG_KASAN=y$" .config >/dev/null
+grep "^CONFIG_KASAN=y$" ${KCONFIG_CONFIG} >/dev/null
 if [ $? -eq 0 ]
 then
 	MEM_FUNCS="__memcpy __memset"
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/ptrace.c
@@ -3014,8 +3014,13 @@
 
 			flush_fp_to_thread(child);
 			if (fpidx < (PT_FPSCR - PT_FPR0))
-				memcpy(&tmp, &child->thread.TS_FPR(fpidx),
-				       sizeof(long));
+				if (IS_ENABLED(CONFIG_PPC32)) {
+					// On 32-bit the index we are passed refers to 32-bit words
+					tmp = ((u32 *)child->thread.fp_state.fpr)[fpidx];
+				} else {
+					memcpy(&tmp, &child->thread.TS_FPR(fpidx),
+					       sizeof(long));
+				}
 			else
 				tmp = child->thread.fp_state.fpscr;
 		}
@@ -3047,8 +3052,13 @@
 
 			flush_fp_to_thread(child);
 			if (fpidx < (PT_FPSCR - PT_FPR0))
-				memcpy(&child->thread.TS_FPR(fpidx), &data,
-				       sizeof(long));
+				if (IS_ENABLED(CONFIG_PPC32)) {
+					// On 32-bit the index we are passed refers to 32-bit words
+					((u32 *)child->thread.fp_state.fpr)[fpidx] = data;
+				} else {
+					memcpy(&child->thread.TS_FPR(fpidx), &data,
+					       sizeof(long));
+				}
 			else
 				child->thread.fp_state.fpscr = data;
 			ret = 0;
@@ -3398,4 +3408,7 @@
 		     offsetof(struct user_pt_regs, result));
 
 	BUILD_BUG_ON(sizeof(struct user_pt_regs) > sizeof(struct pt_regs));
+
+	// ptrace_get/put_fpr() rely on PPC32 and VSX being incompatible
+	BUILD_BUG_ON(IS_ENABLED(CONFIG_PPC32) && IS_ENABLED(CONFIG_VSX));
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/rtas.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/rtas.c
@@ -51,10 +51,10 @@
 EXPORT_SYMBOL(rtas);
 
 DEFINE_SPINLOCK(rtas_data_buf_lock);
-EXPORT_SYMBOL(rtas_data_buf_lock);
+EXPORT_SYMBOL_GPL(rtas_data_buf_lock);
 
-char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned;
-EXPORT_SYMBOL(rtas_data_buf);
+char rtas_data_buf[RTAS_DATA_BUF_SIZE] __aligned(SZ_4K);
+EXPORT_SYMBOL_GPL(rtas_data_buf);
 
 unsigned long rtas_rmo_buf;
 
@@ -63,7 +63,7 @@
  * This is done like this so rtas_flash can be a module.
  */
 void (*rtas_flash_term_hook)(int);
-EXPORT_SYMBOL(rtas_flash_term_hook);
+EXPORT_SYMBOL_GPL(rtas_flash_term_hook);
 
 /* RTAS use home made raw locking instead of spin_lock_irqsave
  * because those can be called from within really nasty contexts
@@ -311,7 +311,7 @@
  
 	spin_unlock(&progress_lock);
 }
-EXPORT_SYMBOL(rtas_progress);		/* needed by rtas_flash module */
+EXPORT_SYMBOL_GPL(rtas_progress);		/* needed by rtas_flash module */
 
 int rtas_token(const char *service)
 {
@@ -321,7 +321,7 @@
 	tokp = of_get_property(rtas.dev, service, NULL);
 	return tokp ? be32_to_cpu(*tokp) : RTAS_UNKNOWN_SERVICE;
 }
-EXPORT_SYMBOL(rtas_token);
+EXPORT_SYMBOL_GPL(rtas_token);
 
 int rtas_service_present(const char *service)
 {
@@ -398,7 +398,7 @@
 				buf = kmalloc(RTAS_ERROR_LOG_MAX, GFP_ATOMIC);
 		}
 		if (buf)
-			memcpy(buf, rtas_err_buf, RTAS_ERROR_LOG_MAX);
+			memmove(buf, rtas_err_buf, RTAS_ERROR_LOG_MAX);
 	}
 
 	return buf;
@@ -481,7 +481,7 @@
 	}
 	return ret;
 }
-EXPORT_SYMBOL(rtas_call);
+EXPORT_SYMBOL_GPL(rtas_call);
 
 /* For RTAS_BUSY (-2), delay for 1 millisecond.  For an extended busy status
  * code of 990n, perform the hinted delay of 10^n (last digit) milliseconds.
@@ -516,7 +516,7 @@
 
 	return ms;
 }
-EXPORT_SYMBOL(rtas_busy_delay);
+EXPORT_SYMBOL_GPL(rtas_busy_delay);
 
 static int rtas_error_rc(int rtas_rc)
 {
@@ -562,7 +562,7 @@
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_get_power_level);
+EXPORT_SYMBOL_GPL(rtas_get_power_level);
 
 int rtas_set_power_level(int powerdomain, int level, int *setlevel)
 {
@@ -580,7 +580,7 @@
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_set_power_level);
+EXPORT_SYMBOL_GPL(rtas_set_power_level);
 
 int rtas_get_sensor(int sensor, int index, int *state)
 {
@@ -598,7 +598,7 @@
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_get_sensor);
+EXPORT_SYMBOL_GPL(rtas_get_sensor);
 
 int rtas_get_sensor_fast(int sensor, int index, int *state)
 {
@@ -659,7 +659,7 @@
 		return rtas_error_rc(rc);
 	return rc;
 }
-EXPORT_SYMBOL(rtas_set_indicator);
+EXPORT_SYMBOL_GPL(rtas_set_indicator);
 
 /*
  * Ignoring RTAS extended delay
@@ -714,6 +714,7 @@
 
 /* Must be in the RMO region, so we place it here */
 static char rtas_os_term_buf[2048];
+static s32 ibm_os_term_token = RTAS_UNKNOWN_SERVICE;
 
 void rtas_os_term(char *str)
 {
@@ -725,16 +726,20 @@
 	 * this property may terminate the partition which we want to avoid
 	 * since it interferes with panic_timeout.
 	 */
-	if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term") ||
-	    RTAS_UNKNOWN_SERVICE == rtas_token("ibm,extended-os-term"))
+	if (ibm_os_term_token == RTAS_UNKNOWN_SERVICE)
 		return;
 
 	snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str);
 
+	/*
+	 * Keep calling as long as RTAS returns a "try again" status,
+	 * but don't use rtas_busy_delay(), which potentially
+	 * schedules.
+	 */
 	do {
-		status = rtas_call(rtas_token("ibm,os-term"), 1, 1, NULL,
+		status = rtas_call(ibm_os_term_token, 1, 1, NULL,
 				   __pa(rtas_os_term_buf));
-	} while (rtas_busy_delay(status));
+	} while (rtas_busy_delay_time(status));
 
 	if (status != 0)
 		printk(KERN_EMERG "ibm,os-term call failed %d\n", status);
@@ -842,96 +847,6 @@
 	__rtas_suspend_cpu((struct rtas_suspend_me_data *)info, 1);
 }
 
-enum rtas_cpu_state {
-	DOWN,
-	UP,
-};
-
-#ifndef CONFIG_SMP
-static int rtas_cpu_state_change_mask(enum rtas_cpu_state state,
-				cpumask_var_t cpus)
-{
-	if (!cpumask_empty(cpus)) {
-		cpumask_clear(cpus);
-		return -EINVAL;
-	} else
-		return 0;
-}
-#else
-/* On return cpumask will be altered to indicate CPUs changed.
- * CPUs with states changed will be set in the mask,
- * CPUs with status unchanged will be unset in the mask. */
-static int rtas_cpu_state_change_mask(enum rtas_cpu_state state,
-				cpumask_var_t cpus)
-{
-	int cpu;
-	int cpuret = 0;
-	int ret = 0;
-
-	if (cpumask_empty(cpus))
-		return 0;
-
-	for_each_cpu(cpu, cpus) {
-		struct device *dev = get_cpu_device(cpu);
-
-		switch (state) {
-		case DOWN:
-			cpuret = device_offline(dev);
-			break;
-		case UP:
-			cpuret = device_online(dev);
-			break;
-		}
-		if (cpuret < 0) {
-			pr_debug("%s: cpu_%s for cpu#%d returned %d.\n",
-					__func__,
-					((state == UP) ? "up" : "down"),
-					cpu, cpuret);
-			if (!ret)
-				ret = cpuret;
-			if (state == UP) {
-				/* clear bits for unchanged cpus, return */
-				cpumask_shift_right(cpus, cpus, cpu);
-				cpumask_shift_left(cpus, cpus, cpu);
-				break;
-			} else {
-				/* clear bit for unchanged cpu, continue */
-				cpumask_clear_cpu(cpu, cpus);
-			}
-		}
-		cond_resched();
-	}
-
-	return ret;
-}
-#endif
-
-int rtas_online_cpus_mask(cpumask_var_t cpus)
-{
-	int ret;
-
-	ret = rtas_cpu_state_change_mask(UP, cpus);
-
-	if (ret) {
-		cpumask_var_t tmp_mask;
-
-		if (!alloc_cpumask_var(&tmp_mask, GFP_KERNEL))
-			return ret;
-
-		/* Use tmp_mask to preserve cpus mask from first failure */
-		cpumask_copy(tmp_mask, cpus);
-		rtas_offline_cpus_mask(tmp_mask);
-		free_cpumask_var(tmp_mask);
-	}
-
-	return ret;
-}
-
-int rtas_offline_cpus_mask(cpumask_var_t cpus)
-{
-	return rtas_cpu_state_change_mask(DOWN, cpus);
-}
-
 int rtas_ibm_suspend_me(u64 handle)
 {
 	long state;
@@ -939,8 +854,6 @@
 	unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
 	struct rtas_suspend_me_data data;
 	DECLARE_COMPLETION_ONSTACK(done);
-	cpumask_var_t offline_mask;
-	int cpuret;
 
 	if (!rtas_service_present("ibm,suspend-me"))
 		return -ENOSYS;
@@ -961,9 +874,6 @@
 		return -EIO;
 	}
 
-	if (!alloc_cpumask_var(&offline_mask, GFP_KERNEL))
-		return -ENOMEM;
-
 	atomic_set(&data.working, 0);
 	atomic_set(&data.done, 0);
 	atomic_set(&data.error, 0);
@@ -972,24 +882,8 @@
 
 	lock_device_hotplug();
 
-	/* All present CPUs must be online */
-	cpumask_andnot(offline_mask, cpu_present_mask, cpu_online_mask);
-	cpuret = rtas_online_cpus_mask(offline_mask);
-	if (cpuret) {
-		pr_err("%s: Could not bring present CPUs online.\n", __func__);
-		atomic_set(&data.error, cpuret);
-		goto out;
-	}
-
 	cpu_hotplug_disable();
 
-	/* Check if we raced with a CPU-Offline Operation */
-	if (!cpumask_equal(cpu_present_mask, cpu_online_mask)) {
-		pr_info("%s: Raced against a concurrent CPU-Offline\n", __func__);
-		atomic_set(&data.error, -EAGAIN);
-		goto out_hotplug_enable;
-	}
-
 	/* Call function on all CPUs.  One of us will make the
 	 * rtas call
 	 */
@@ -1000,18 +894,11 @@
 	if (atomic_read(&data.error) != 0)
 		printk(KERN_ERR "Error doing global join\n");
 
-out_hotplug_enable:
-	cpu_hotplug_enable();
 
-	/* Take down CPUs not online prior to suspend */
-	cpuret = rtas_offline_cpus_mask(offline_mask);
-	if (cpuret)
-		pr_warn("%s: Could not restore CPUs to offline state.\n",
-				__func__);
+	cpu_hotplug_enable();
 
-out:
 	unlock_device_hotplug();
-	free_cpumask_var(offline_mask);
+
 	return atomic_read(&data.error);
 }
 #else /* CONFIG_PPC_PSERIES */
@@ -1058,6 +945,156 @@
 	return NULL;
 }
 
+#ifdef CONFIG_PPC_RTAS_FILTER
+
+/*
+ * The sys_rtas syscall, as originally designed, allows root to pass
+ * arbitrary physical addresses to RTAS calls. A number of RTAS calls
+ * can be abused to write to arbitrary memory and do other things that
+ * are potentially harmful to system integrity, and thus should only
+ * be used inside the kernel and not exposed to userspace.
+ *
+ * All known legitimate users of the sys_rtas syscall will only ever
+ * pass addresses that fall within the RMO buffer, and use a known
+ * subset of RTAS calls.
+ *
+ * Accordingly, we filter RTAS requests to check that the call is
+ * permitted, and that provided pointers fall within the RMO buffer.
+ * The rtas_filters list contains an entry for each permitted call,
+ * with the indexes of the parameters which are expected to contain
+ * addresses and sizes of buffers allocated inside the RMO buffer.
+ */
+struct rtas_filter {
+	const char *name;
+	int token;
+	/* Indexes into the args buffer, -1 if not used */
+	int buf_idx1;
+	int size_idx1;
+	int buf_idx2;
+	int size_idx2;
+
+	int fixed_size;
+};
+
+static struct rtas_filter rtas_filters[] __ro_after_init = {
+	{ "ibm,activate-firmware", -1, -1, -1, -1, -1 },
+	{ "ibm,configure-connector", -1, 0, -1, 1, -1, 4096 },	/* Special cased */
+	{ "display-character", -1, -1, -1, -1, -1 },
+	{ "ibm,display-message", -1, 0, -1, -1, -1 },
+	{ "ibm,errinjct", -1, 2, -1, -1, -1, 1024 },
+	{ "ibm,close-errinjct", -1, -1, -1, -1, -1 },
+	{ "ibm,open-errinjct", -1, -1, -1, -1, -1 },
+	{ "ibm,get-config-addr-info2", -1, -1, -1, -1, -1 },
+	{ "ibm,get-dynamic-sensor-state", -1, 1, -1, -1, -1 },
+	{ "ibm,get-indices", -1, 2, 3, -1, -1 },
+	{ "get-power-level", -1, -1, -1, -1, -1 },
+	{ "get-sensor-state", -1, -1, -1, -1, -1 },
+	{ "ibm,get-system-parameter", -1, 1, 2, -1, -1 },
+	{ "get-time-of-day", -1, -1, -1, -1, -1 },
+	{ "ibm,get-vpd", -1, 0, -1, 1, 2 },
+	{ "ibm,lpar-perftools", -1, 2, 3, -1, -1 },
+	{ "ibm,platform-dump", -1, 4, 5, -1, -1 },		/* Special cased */
+	{ "ibm,read-slot-reset-state", -1, -1, -1, -1, -1 },
+	{ "ibm,scan-log-dump", -1, 0, 1, -1, -1 },
+	{ "ibm,set-dynamic-indicator", -1, 2, -1, -1, -1 },
+	{ "ibm,set-eeh-option", -1, -1, -1, -1, -1 },
+	{ "set-indicator", -1, -1, -1, -1, -1 },
+	{ "set-power-level", -1, -1, -1, -1, -1 },
+	{ "set-time-for-power-on", -1, -1, -1, -1, -1 },
+	{ "ibm,set-system-parameter", -1, 1, -1, -1, -1 },
+	{ "set-time-of-day", -1, -1, -1, -1, -1 },
+	{ "ibm,suspend-me", -1, -1, -1, -1, -1 },
+	{ "ibm,update-nodes", -1, 0, -1, -1, -1, 4096 },
+	{ "ibm,update-properties", -1, 0, -1, -1, -1, 4096 },
+	{ "ibm,physical-attestation", -1, 0, 1, -1, -1 },
+};
+
+static bool in_rmo_buf(u32 base, u32 end)
+{
+	return base >= rtas_rmo_buf &&
+		base < (rtas_rmo_buf + RTAS_RMOBUF_MAX) &&
+		base <= end &&
+		end >= rtas_rmo_buf &&
+		end < (rtas_rmo_buf + RTAS_RMOBUF_MAX);
+}
+
+static bool block_rtas_call(int token, int nargs,
+			    struct rtas_args *args)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(rtas_filters); i++) {
+		struct rtas_filter *f = &rtas_filters[i];
+		u32 base, size, end;
+
+		if (token != f->token)
+			continue;
+
+		if (f->buf_idx1 != -1) {
+			base = be32_to_cpu(args->args[f->buf_idx1]);
+			if (f->size_idx1 != -1)
+				size = be32_to_cpu(args->args[f->size_idx1]);
+			else if (f->fixed_size)
+				size = f->fixed_size;
+			else
+				size = 1;
+
+			end = base + size - 1;
+
+			/*
+			 * Special case for ibm,platform-dump - NULL buffer
+			 * address is used to indicate end of dump processing
+			 */
+			if (!strcmp(f->name, "ibm,platform-dump") &&
+			    base == 0)
+				return false;
+
+			if (!in_rmo_buf(base, end))
+				goto err;
+		}
+
+		if (f->buf_idx2 != -1) {
+			base = be32_to_cpu(args->args[f->buf_idx2]);
+			if (f->size_idx2 != -1)
+				size = be32_to_cpu(args->args[f->size_idx2]);
+			else if (f->fixed_size)
+				size = f->fixed_size;
+			else
+				size = 1;
+			end = base + size - 1;
+
+			/*
+			 * Special case for ibm,configure-connector where the
+			 * address can be 0
+			 */
+			if (!strcmp(f->name, "ibm,configure-connector") &&
+			    base == 0)
+				return false;
+
+			if (!in_rmo_buf(base, end))
+				goto err;
+		}
+
+		return false;
+	}
+
+err:
+	pr_err_ratelimited("sys_rtas: RTAS call blocked - exploit attempt?\n");
+	pr_err_ratelimited("sys_rtas: token=0x%x, nargs=%d (called by %s)\n",
+			   token, nargs, current->comm);
+	return true;
+}
+
+#else
+
+static bool block_rtas_call(int token, int nargs,
+			    struct rtas_args *args)
+{
+	return false;
+}
+
+#endif /* CONFIG_PPC_RTAS_FILTER */
+
 /* We assume to be passed big endian arguments */
 SYSCALL_DEFINE1(rtas, struct rtas_args __user *, uargs)
 {
@@ -1095,6 +1132,9 @@
 	args.rets = &args.args[nargs];
 	memset(args.rets, 0, nret * sizeof(rtas_arg_t));
 
+	if (block_rtas_call(token, nargs, &args))
+		return -EINVAL;
+
 	/* Need to handle ibm,suspend_me call specially */
 	if (token == ibm_suspend_me_token) {
 
@@ -1156,6 +1196,9 @@
 	unsigned long rtas_region = RTAS_INSTANTIATE_MAX;
 	u32 base, size, entry;
 	int no_base, no_size, no_entry;
+#ifdef CONFIG_PPC_RTAS_FILTER
+	int i;
+#endif
 
 	/* Get RTAS dev node and fill up our "rtas" structure with infos
 	 * about it.
@@ -1177,6 +1220,13 @@
 	no_entry = of_property_read_u32(rtas.dev, "linux,rtas-entry", &entry);
 	rtas.entry = no_entry ? rtas.base : entry;
 
+	/*
+	 * Discover these now to avoid device tree lookups in the
+	 * panic path.
+	 */
+	if (of_property_read_bool(rtas.dev, "ibm,extended-os-term"))
+		ibm_os_term_token = rtas_token("ibm,os-term");
+
 	/* If RTAS was found, allocate the RMO buffer for it and look for
 	 * the stop-self token if any
 	 */
@@ -1195,6 +1245,12 @@
 #ifdef CONFIG_RTAS_ERROR_LOGGING
 	rtas_last_error_token = rtas_token("rtas-last-error");
 #endif
+
+#ifdef CONFIG_PPC_RTAS_FILTER
+	for (i = 0; i < ARRAY_SIZE(rtas_filters); i++) {
+		rtas_filters[i].token = rtas_token(rtas_filters[i].name);
+	}
+#endif
 }
 
 int __init early_init_dt_scan_rtas(unsigned long node,
@@ -1209,6 +1265,12 @@
 	entryp = of_get_flat_dt_prop(node, "linux,rtas-entry", NULL);
 	sizep  = of_get_flat_dt_prop(node, "rtas-size", NULL);
 
+#ifdef CONFIG_PPC64
+	/* need this feature to decide the crashkernel offset */
+	if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL))
+		powerpc_firmware_features |= FW_FEATURE_LPAR;
+#endif
+
 	if (basep && entryp && sizep) {
 		rtas.base = *basep;
 		rtas.entry = *entryp;
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/rtas_flash.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/rtas_flash.c
@@ -710,9 +710,9 @@
 	if (!rtas_validate_flash_data.buf)
 		return -ENOMEM;
 
-	flash_block_cache = kmem_cache_create("rtas_flash_cache",
-					      RTAS_BLK_SIZE, RTAS_BLK_SIZE, 0,
-					      NULL);
+	flash_block_cache = kmem_cache_create_usercopy("rtas_flash_cache",
+						       RTAS_BLK_SIZE, RTAS_BLK_SIZE,
+						       0, 0, RTAS_BLK_SIZE, NULL);
 	if (!flash_block_cache) {
 		printk(KERN_ERR "%s: failed to create block cache\n",
 				__func__);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/secure_boot.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/secure_boot.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ */
+#include <linux/types.h>
+#include <linux/of.h>
+#include <asm/secure_boot.h>
+
+static struct device_node *get_ppc_fw_sb_node(void)
+{
+	static const struct of_device_id ids[] = {
+		{ .compatible = "ibm,secureboot", },
+		{ .compatible = "ibm,secureboot-v1", },
+		{ .compatible = "ibm,secureboot-v2", },
+		{},
+	};
+
+	return of_find_matching_node(NULL, ids);
+}
+
+bool is_ppc_secureboot_enabled(void)
+{
+	struct device_node *node;
+	bool enabled = false;
+
+	node = get_ppc_fw_sb_node();
+	enabled = of_property_read_bool(node, "os-secureboot-enforcing");
+
+	of_node_put(node);
+
+	pr_info("Secure boot mode %s\n", enabled ? "enabled" : "disabled");
+
+	return enabled;
+}
+
+bool is_ppc_trustedboot_enabled(void)
+{
+	struct device_node *node;
+	bool enabled = false;
+
+	node = get_ppc_fw_sb_node();
+	enabled = of_property_read_bool(node, "trusted-enabled");
+
+	of_node_put(node);
+
+	pr_info("Trusted boot mode %s\n", enabled ? "enabled" : "disabled");
+
+	return enabled;
+}
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/security.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/security.c
@@ -16,7 +16,7 @@
 #include <asm/setup.h>
 
 
-unsigned long powerpc_security_features __read_mostly = SEC_FTR_DEFAULT;
+u64 powerpc_security_features __read_mostly = SEC_FTR_DEFAULT;
 
 enum count_cache_flush_type {
 	COUNT_CACHE_FLUSH_NONE	= 0x1,
@@ -24,6 +24,7 @@
 	COUNT_CACHE_FLUSH_HW	= 0x4,
 };
 static enum count_cache_flush_type count_cache_flush_type = COUNT_CACHE_FLUSH_NONE;
+static bool link_stack_flush_enabled;
 
 bool barrier_nospec_enabled;
 static bool no_nospec;
@@ -108,7 +109,7 @@
 static __init int security_feature_debugfs_init(void)
 {
 	debugfs_create_x64("security_features", 0400, powerpc_debugfs_root,
-			   (u64 *)&powerpc_security_features);
+			   &powerpc_security_features);
 	return 0;
 }
 device_initcall(security_feature_debugfs_init);
@@ -141,32 +142,33 @@
 
 	thread_priv = security_ftr_enabled(SEC_FTR_L1D_THREAD_PRIV);
 
-	if (rfi_flush || thread_priv) {
+	if (rfi_flush) {
 		struct seq_buf s;
 		seq_buf_init(&s, buf, PAGE_SIZE - 1);
 
-		seq_buf_printf(&s, "Mitigation: ");
-
-		if (rfi_flush)
-			seq_buf_printf(&s, "RFI Flush");
-
-		if (rfi_flush && thread_priv)
-			seq_buf_printf(&s, ", ");
-
+		seq_buf_printf(&s, "Mitigation: RFI Flush");
 		if (thread_priv)
-			seq_buf_printf(&s, "L1D private per thread");
+			seq_buf_printf(&s, ", L1D private per thread");
 
 		seq_buf_printf(&s, "\n");
 
 		return s.len;
 	}
 
+	if (thread_priv)
+		return sprintf(buf, "Vulnerable: L1D private per thread\n");
+
 	if (!security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV) &&
 	    !security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR))
 		return sprintf(buf, "Not affected\n");
 
 	return sprintf(buf, "Vulnerable\n");
 }
+
+ssize_t cpu_show_l1tf(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	return cpu_show_meltdown(dev, attr, buf);
+}
 #endif
 
 ssize_t cpu_show_spectre_v1(struct device *dev, struct device_attribute *attr, char *buf)
@@ -212,11 +214,19 @@
 
 		if (ccd)
 			seq_buf_printf(&s, "Indirect branch cache disabled");
+
+		if (link_stack_flush_enabled)
+			seq_buf_printf(&s, ", Software link stack flush");
+
 	} else if (count_cache_flush_type != COUNT_CACHE_FLUSH_NONE) {
 		seq_buf_printf(&s, "Mitigation: Software count cache flush");
 
 		if (count_cache_flush_type == COUNT_CACHE_FLUSH_HW)
 			seq_buf_printf(&s, " (hardware accelerated)");
+
+		if (link_stack_flush_enabled)
+			seq_buf_printf(&s, ", Software link stack flush");
+
 	} else if (btb_flush_enabled) {
 		seq_buf_printf(&s, "Mitigation: Branch predictor state flush");
 	} else {
@@ -246,6 +256,11 @@
 
 early_param("no_stf_barrier", handle_no_stf_barrier);
 
+enum stf_barrier_type stf_barrier_type_get(void)
+{
+	return stf_enabled_flush_types;
+}
+
 /* This is the generic flag used by other architectures */
 static int __init handle_ssbd(char *p)
 {
@@ -377,18 +392,49 @@
 device_initcall(stf_barrier_debugfs_init);
 #endif /* CONFIG_DEBUG_FS */
 
+static void no_count_cache_flush(void)
+{
+	count_cache_flush_type = COUNT_CACHE_FLUSH_NONE;
+	pr_info("count-cache-flush: software flush disabled.\n");
+}
+
 static void toggle_count_cache_flush(bool enable)
 {
-	if (!enable || !security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE)) {
+	if (!security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE) &&
+	    !security_ftr_enabled(SEC_FTR_FLUSH_LINK_STACK))
+		enable = false;
+
+	if (!enable) {
 		patch_instruction_site(&patch__call_flush_count_cache, PPC_INST_NOP);
-		count_cache_flush_type = COUNT_CACHE_FLUSH_NONE;
-		pr_info("count-cache-flush: software flush disabled.\n");
+#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
+		patch_instruction_site(&patch__call_kvm_flush_link_stack, PPC_INST_NOP);
+#endif
+		pr_info("link-stack-flush: software flush disabled.\n");
+		link_stack_flush_enabled = false;
+		no_count_cache_flush();
 		return;
 	}
 
+	// This enables the branch from _switch to flush_count_cache
 	patch_branch_site(&patch__call_flush_count_cache,
 			  (u64)&flush_count_cache, BRANCH_SET_LINK);
 
+#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
+	// This enables the branch from guest_exit_cont to kvm_flush_link_stack
+	patch_branch_site(&patch__call_kvm_flush_link_stack,
+			  (u64)&kvm_flush_link_stack, BRANCH_SET_LINK);
+#endif
+
+	pr_info("link-stack-flush: software flush enabled.\n");
+	link_stack_flush_enabled = true;
+
+	// If we just need to flush the link stack, patch an early return
+	if (!security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE)) {
+		patch_instruction_site(&patch__flush_link_stack_return, PPC_INST_BLR);
+		no_count_cache_flush();
+		return;
+	}
+
 	if (!security_ftr_enabled(SEC_FTR_BCCTR_FLUSH_ASSIST)) {
 		count_cache_flush_type = COUNT_CACHE_FLUSH_SW;
 		pr_info("count-cache-flush: full software flush sequence enabled.\n");
@@ -407,11 +453,20 @@
 	if (no_spectrev2 || cpu_mitigations_off()) {
 		if (security_ftr_enabled(SEC_FTR_BCCTRL_SERIALISED) ||
 		    security_ftr_enabled(SEC_FTR_COUNT_CACHE_DISABLED))
-			pr_warn("Spectre v2 mitigations not under software control, can't disable\n");
+			pr_warn("Spectre v2 mitigations not fully under software control, can't disable\n");
 
 		enable = false;
 	}
 
+	/*
+	 * There's no firmware feature flag/hypervisor bit to tell us we need to
+	 * flush the link stack on context switch. So we set it here if we see
+	 * either of the Spectre v2 mitigations that aim to protect userspace.
+	 */
+	if (security_ftr_enabled(SEC_FTR_COUNT_CACHE_DISABLED) ||
+	    security_ftr_enabled(SEC_FTR_FLUSH_COUNT_CACHE))
+		security_ftr_set(SEC_FTR_FLUSH_LINK_STACK);
+
 	toggle_count_cache_flush(enable);
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/secvar-ops.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/secvar-ops.c
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Nayna Jain
+ *
+ * This file initializes secvar operations for PowerPC Secureboot
+ */
+
+#include <linux/cache.h>
+#include <asm/secvar.h>
+
+const struct secvar_operations *secvar_ops __ro_after_init;
+
+void set_secvar_ops(const struct secvar_operations *ops)
+{
+	secvar_ops = ops;
+}
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/secvar-sysfs.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/secvar-sysfs.c
@@ -0,0 +1,248 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 IBM Corporation <nayna@linux.ibm.com>
+ *
+ * This code exposes secure variables to user via sysfs
+ */
+
+#define pr_fmt(fmt) "secvar-sysfs: "fmt
+
+#include <linux/slab.h>
+#include <linux/compat.h>
+#include <linux/string.h>
+#include <linux/of.h>
+#include <asm/secvar.h>
+
+#define NAME_MAX_SIZE	   1024
+
+static struct kobject *secvar_kobj;
+static struct kset *secvar_kset;
+
+static ssize_t format_show(struct kobject *kobj, struct kobj_attribute *attr,
+			   char *buf)
+{
+	ssize_t rc = 0;
+	struct device_node *node;
+	const char *format;
+
+	node = of_find_compatible_node(NULL, NULL, "ibm,secvar-backend");
+	if (!of_device_is_available(node))
+		return -ENODEV;
+
+	rc = of_property_read_string(node, "format", &format);
+	if (rc)
+		return rc;
+
+	rc = sprintf(buf, "%s\n", format);
+
+	of_node_put(node);
+
+	return rc;
+}
+
+
+static ssize_t size_show(struct kobject *kobj, struct kobj_attribute *attr,
+			 char *buf)
+{
+	uint64_t dsize;
+	int rc;
+
+	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
+	if (rc) {
+		pr_err("Error retrieving %s variable size %d\n", kobj->name,
+		       rc);
+		return rc;
+	}
+
+	return sprintf(buf, "%llu\n", dsize);
+}
+
+static ssize_t data_read(struct file *filep, struct kobject *kobj,
+			 struct bin_attribute *attr, char *buf, loff_t off,
+			 size_t count)
+{
+	uint64_t dsize;
+	char *data;
+	int rc;
+
+	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
+	if (rc) {
+		pr_err("Error getting %s variable size %d\n", kobj->name, rc);
+		return rc;
+	}
+	pr_debug("dsize is %llu\n", dsize);
+
+	data = kzalloc(dsize, GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+
+	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, data, &dsize);
+	if (rc) {
+		pr_err("Error getting %s variable %d\n", kobj->name, rc);
+		goto data_fail;
+	}
+
+	rc = memory_read_from_buffer(buf, count, &off, data, dsize);
+
+data_fail:
+	kfree(data);
+	return rc;
+}
+
+static ssize_t update_write(struct file *filep, struct kobject *kobj,
+			    struct bin_attribute *attr, char *buf, loff_t off,
+			    size_t count)
+{
+	int rc;
+
+	pr_debug("count is %ld\n", count);
+	rc = secvar_ops->set(kobj->name, strlen(kobj->name) + 1, buf, count);
+	if (rc) {
+		pr_err("Error setting the %s variable %d\n", kobj->name, rc);
+		return rc;
+	}
+
+	return count;
+}
+
+static struct kobj_attribute format_attr = __ATTR_RO(format);
+
+static struct kobj_attribute size_attr = __ATTR_RO(size);
+
+static struct bin_attribute data_attr = __BIN_ATTR_RO(data, 0);
+
+static struct bin_attribute update_attr = __BIN_ATTR_WO(update, 0);
+
+static struct bin_attribute *secvar_bin_attrs[] = {
+	&data_attr,
+	&update_attr,
+	NULL,
+};
+
+static struct attribute *secvar_attrs[] = {
+	&size_attr.attr,
+	NULL,
+};
+
+static const struct attribute_group secvar_attr_group = {
+	.attrs = secvar_attrs,
+	.bin_attrs = secvar_bin_attrs,
+};
+__ATTRIBUTE_GROUPS(secvar_attr);
+
+static struct kobj_type secvar_ktype = {
+	.sysfs_ops	= &kobj_sysfs_ops,
+	.default_groups = secvar_attr_groups,
+};
+
+static int update_kobj_size(void)
+{
+
+	struct device_node *node;
+	u64 varsize;
+	int rc = 0;
+
+	node = of_find_compatible_node(NULL, NULL, "ibm,secvar-backend");
+	if (!of_device_is_available(node)) {
+		rc = -ENODEV;
+		goto out;
+	}
+
+	rc = of_property_read_u64(node, "max-var-size", &varsize);
+	if (rc)
+		goto out;
+
+	data_attr.size = varsize;
+	update_attr.size = varsize;
+
+out:
+	of_node_put(node);
+
+	return rc;
+}
+
+static int secvar_sysfs_load(void)
+{
+	char *name;
+	uint64_t namesize = 0;
+	struct kobject *kobj;
+	int rc;
+
+	name = kzalloc(NAME_MAX_SIZE, GFP_KERNEL);
+	if (!name)
+		return -ENOMEM;
+
+	do {
+		rc = secvar_ops->get_next(name, &namesize, NAME_MAX_SIZE);
+		if (rc) {
+			if (rc != -ENOENT)
+				pr_err("error getting secvar from firmware %d\n",
+				       rc);
+			break;
+		}
+
+		kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+		if (!kobj) {
+			rc = -ENOMEM;
+			break;
+		}
+
+		kobject_init(kobj, &secvar_ktype);
+
+		rc = kobject_add(kobj, &secvar_kset->kobj, "%s", name);
+		if (rc) {
+			pr_warn("kobject_add error %d for attribute: %s\n", rc,
+				name);
+			kobject_put(kobj);
+			kobj = NULL;
+		}
+
+		if (kobj)
+			kobject_uevent(kobj, KOBJ_ADD);
+
+	} while (!rc);
+
+	kfree(name);
+	return rc;
+}
+
+static int secvar_sysfs_init(void)
+{
+	int rc;
+
+	if (!secvar_ops) {
+		pr_warn("secvar: failed to retrieve secvar operations.\n");
+		return -ENODEV;
+	}
+
+	secvar_kobj = kobject_create_and_add("secvar", firmware_kobj);
+	if (!secvar_kobj) {
+		pr_err("secvar: Failed to create firmware kobj\n");
+		return -ENOMEM;
+	}
+
+	rc = sysfs_create_file(secvar_kobj, &format_attr.attr);
+	if (rc) {
+		kobject_put(secvar_kobj);
+		return -ENOMEM;
+	}
+
+	secvar_kset = kset_create_and_add("vars", NULL, secvar_kobj);
+	if (!secvar_kset) {
+		pr_err("secvar: sysfs kobject registration failed.\n");
+		kobject_put(secvar_kobj);
+		return -ENOMEM;
+	}
+
+	rc = update_kobj_size();
+	if (rc) {
+		pr_err("Cannot read the size of the attribute\n");
+		return rc;
+	}
+
+	secvar_sysfs_load();
+
+	return 0;
+}
+
+late_initcall(secvar_sysfs_init);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/setup-common.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/setup-common.c
@@ -31,6 +31,7 @@
 #include <linux/memblock.h>
 #include <linux/of_platform.h>
 #include <linux/hugetlb.h>
+#include <linux/security.h>
 #include <asm/debugfs.h>
 #include <asm/io.h>
 #include <asm/paca.h>
@@ -64,6 +65,7 @@
 #include <asm/mmu_context.h>
 #include <asm/cpu_has_feature.h>
 #include <asm/kasan.h>
+#include <asm/secure_boot.h>
 
 #include "setup.h"
 
@@ -855,6 +857,16 @@
 	 */
 	initialize_cache_info();
 
+	/*
+	 * Lock down the kernel if booted in secure mode. This is required to
+	 * maintain kernel integrity.
+	 */
+	if (IS_ENABLED(CONFIG_LOCK_DOWN_IN_SECURE_BOOT)) {
+		if (is_ppc_secureboot_enabled())
+			security_lock_kernel_down("PowerNV Secure Boot mode",
+						  LOCKDOWN_INTEGRITY_MAX);
+	}
+
 	/* Initialize RTAS if available. */
 	rtas_initialize();
 
@@ -903,8 +915,6 @@
 
 	/* On BookE, setup per-core TLB data structures. */
 	setup_tlb_core_data();
-
-	smp_release_cpus();
 #endif
 
 	/* Print various info about the machine that has been gathered so far. */
@@ -925,6 +935,8 @@
 	exc_lvl_early_init();
 	emergency_stack_init();
 
+	smp_release_cpus();
+
 	initmem_init();
 
 	early_memtest(min_low_pfn << PAGE_SHIFT, max_low_pfn << PAGE_SHIFT);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/setup_64.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/setup_64.c
@@ -290,18 +290,36 @@
 
 	/* -------- printk is _NOT_ safe to use here ! ------- */
 
-	/* Try new device tree based feature discovery ... */
-	if (!dt_cpu_ftrs_init(__va(dt_ptr)))
-		/* Otherwise use the old style CPU table */
-		identify_cpu(0, mfspr(SPRN_PVR));
-
-	/* Assume we're on cpu 0 for now. Don't write to the paca yet! */
+	/*
+	 * Assume we're on cpu 0 for now.
+	 *
+	 * We need to load a PACA very early for a few reasons.
+	 *
+	 * The stack protector canary is stored in the paca, so as soon as we
+	 * call any stack protected code we need r13 pointing somewhere valid.
+	 *
+	 * If we are using kcov it will call in_task() in its instrumentation,
+	 * which relies on the current task from the PACA.
+	 *
+	 * dt_cpu_ftrs_init() calls into generic OF/fdt code, as well as
+	 * printk(), which can trigger both stack protector and kcov.
+	 *
+	 * percpu variables and spin locks also use the paca.
+	 *
+	 * So set up a temporary paca. It will be replaced below once we know
+	 * what CPU we are on.
+	 */
 	initialise_paca(&boot_paca, 0);
 	setup_paca(&boot_paca);
 	fixup_boot_paca();
 
 	/* -------- printk is now safe to use ------- */
 
+	/* Try new device tree based feature discovery ... */
+	if (!dt_cpu_ftrs_init(__va(dt_ptr)))
+		/* Otherwise use the old style CPU table */
+		identify_cpu(0, mfspr(SPRN_PVR));
+
 	/* Enable early debugging if any specified (see udbg.h) */
 	udbg_early_init();
 
@@ -523,6 +541,8 @@
 	lsizep = of_get_property(np, propnames[3], NULL);
 	if (bsizep == NULL)
 		bsizep = lsizep;
+	if (lsizep == NULL)
+		lsizep = bsizep;
 	if (lsizep != NULL)
 		lsize = be32_to_cpu(*lsizep);
 	if (bsizep != NULL)
@@ -839,7 +859,13 @@
 static enum l1d_flush_type enabled_flush_types;
 static void *l1d_flush_fallback_area;
 static bool no_rfi_flush;
+static bool no_entry_flush;
+static bool no_uaccess_flush;
 bool rfi_flush;
+bool entry_flush;
+bool uaccess_flush;
+DEFINE_STATIC_KEY_FALSE(uaccess_flush_key);
+EXPORT_SYMBOL(uaccess_flush_key);
 
 static int __init handle_no_rfi_flush(char *p)
 {
@@ -849,6 +875,22 @@
 }
 early_param("no_rfi_flush", handle_no_rfi_flush);
 
+static int __init handle_no_entry_flush(char *p)
+{
+	pr_info("entry-flush: disabled on command line.");
+	no_entry_flush = true;
+	return 0;
+}
+early_param("no_entry_flush", handle_no_entry_flush);
+
+static int __init handle_no_uaccess_flush(char *p)
+{
+	pr_info("uaccess-flush: disabled on command line.");
+	no_uaccess_flush = true;
+	return 0;
+}
+early_param("no_uaccess_flush", handle_no_uaccess_flush);
+
 /*
  * The RFI flush is not KPTI, but because users will see doco that says to use
  * nopti we hijack that option here to also disable the RFI flush.
@@ -880,6 +922,32 @@
 	rfi_flush = enable;
 }
 
+void entry_flush_enable(bool enable)
+{
+	if (enable) {
+		do_entry_flush_fixups(enabled_flush_types);
+		on_each_cpu(do_nothing, NULL, 1);
+	} else {
+		do_entry_flush_fixups(L1D_FLUSH_NONE);
+	}
+
+	entry_flush = enable;
+}
+
+void uaccess_flush_enable(bool enable)
+{
+	if (enable) {
+		do_uaccess_flush_fixups(enabled_flush_types);
+		static_branch_enable(&uaccess_flush_key);
+		on_each_cpu(do_nothing, NULL, 1);
+	} else {
+		static_branch_disable(&uaccess_flush_key);
+		do_uaccess_flush_fixups(L1D_FLUSH_NONE);
+	}
+
+	uaccess_flush = enable;
+}
+
 static void __ref init_fallback_flush(void)
 {
 	u64 l1d_size, limit;
@@ -938,10 +1006,28 @@
 
 	enabled_flush_types = types;
 
-	if (!no_rfi_flush && !cpu_mitigations_off())
+	if (!cpu_mitigations_off() && !no_rfi_flush)
 		rfi_flush_enable(enable);
 }
 
+void setup_entry_flush(bool enable)
+{
+	if (cpu_mitigations_off())
+		return;
+
+	if (!no_entry_flush)
+		entry_flush_enable(enable);
+}
+
+void setup_uaccess_flush(bool enable)
+{
+	if (cpu_mitigations_off())
+		return;
+
+	if (!no_uaccess_flush)
+		uaccess_flush_enable(enable);
+}
+
 #ifdef CONFIG_DEBUG_FS
 static int rfi_flush_set(void *data, u64 val)
 {
@@ -969,9 +1055,63 @@
 
 DEFINE_SIMPLE_ATTRIBUTE(fops_rfi_flush, rfi_flush_get, rfi_flush_set, "%llu\n");
 
+static int entry_flush_set(void *data, u64 val)
+{
+	bool enable;
+
+	if (val == 1)
+		enable = true;
+	else if (val == 0)
+		enable = false;
+	else
+		return -EINVAL;
+
+	/* Only do anything if we're changing state */
+	if (enable != entry_flush)
+		entry_flush_enable(enable);
+
+	return 0;
+}
+
+static int entry_flush_get(void *data, u64 *val)
+{
+	*val = entry_flush ? 1 : 0;
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(fops_entry_flush, entry_flush_get, entry_flush_set, "%llu\n");
+
+static int uaccess_flush_set(void *data, u64 val)
+{
+	bool enable;
+
+	if (val == 1)
+		enable = true;
+	else if (val == 0)
+		enable = false;
+	else
+		return -EINVAL;
+
+	/* Only do anything if we're changing state */
+	if (enable != uaccess_flush)
+		uaccess_flush_enable(enable);
+
+	return 0;
+}
+
+static int uaccess_flush_get(void *data, u64 *val)
+{
+	*val = uaccess_flush ? 1 : 0;
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(fops_uaccess_flush, uaccess_flush_get, uaccess_flush_set, "%llu\n");
+
 static __init int rfi_flush_debugfs_init(void)
 {
 	debugfs_create_file("rfi_flush", 0600, powerpc_debugfs_root, NULL, &fops_rfi_flush);
+	debugfs_create_file("entry_flush", 0600, powerpc_debugfs_root, NULL, &fops_entry_flush);
+	debugfs_create_file("uaccess_flush", 0600, powerpc_debugfs_root, NULL, &fops_uaccess_flush);
 	return 0;
 }
 device_initcall(rfi_flush_debugfs_init);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/signal.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/signal.c
@@ -200,14 +200,27 @@
 	 * normal/non-checkpointed stack pointer.
 	 */
 
+	unsigned long ret = tsk->thread.regs->gpr[1];
+
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 	BUG_ON(tsk != current);
 
 	if (MSR_TM_ACTIVE(tsk->thread.regs->msr)) {
+		preempt_disable();
 		tm_reclaim_current(TM_CAUSE_SIGNAL);
 		if (MSR_TM_TRANSACTIONAL(tsk->thread.regs->msr))
-			return tsk->thread.ckpt_regs.gpr[1];
+			ret = tsk->thread.ckpt_regs.gpr[1];
+
+		/*
+		 * If we treclaim, we must clear the current thread's TM bits
+		 * before re-enabling preemption. Otherwise we might be
+		 * preempted and have the live MSR[TS] changed behind our back
+		 * (tm_recheckpoint_new_task() would recheckpoint). Besides, we
+		 * enter the signal handler in non-transactional state.
+		 */
+		tsk->thread.regs->msr &= ~MSR_TS_MASK;
+		preempt_enable();
 	}
 #endif
-	return tsk->thread.regs->gpr[1];
+	return ret;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/signal_32.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/signal_32.c
@@ -489,19 +489,11 @@
  */
 static int save_tm_user_regs(struct pt_regs *regs,
 			     struct mcontext __user *frame,
-			     struct mcontext __user *tm_frame, int sigret)
+			     struct mcontext __user *tm_frame, int sigret,
+			     unsigned long msr)
 {
-	unsigned long msr = regs->msr;
-
 	WARN_ON(tm_suspend_disabled);
 
-	/* Remove TM bits from thread's MSR.  The MSR in the sigcontext
-	 * just indicates to userland that we were doing a transaction, but we
-	 * don't want to return in transactional state.  This also ensures
-	 * that flush_fp_to_thread won't set TIF_RESTORE_TM again.
-	 */
-	regs->msr &= ~MSR_TS_MASK;
-
 	/* Save both sets of general registers */
 	if (save_general_regs(&current->thread.ckpt_regs, frame)
 	    || save_general_regs(regs, tm_frame))
@@ -912,6 +904,10 @@
 	int sigret;
 	unsigned long tramp;
 	struct pt_regs *regs = tsk->thread.regs;
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
+	/* Save the thread's msr before get_tm_stackpointer() changes it */
+	unsigned long msr = regs->msr;
+#endif
 
 	BUG_ON(tsk != current);
 
@@ -944,13 +940,13 @@
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 	tm_frame = &rt_sf->uc_transact.uc_mcontext;
-	if (MSR_TM_ACTIVE(regs->msr)) {
+	if (MSR_TM_ACTIVE(msr)) {
 		if (__put_user((unsigned long)&rt_sf->uc_transact,
 			       &rt_sf->uc.uc_link) ||
 		    __put_user((unsigned long)tm_frame,
 			       &rt_sf->uc_transact.uc_regs))
 			goto badframe;
-		if (save_tm_user_regs(regs, frame, tm_frame, sigret))
+		if (save_tm_user_regs(regs, frame, tm_frame, sigret, msr))
 			goto badframe;
 	}
 	else
@@ -1369,6 +1365,10 @@
 	int sigret;
 	unsigned long tramp;
 	struct pt_regs *regs = tsk->thread.regs;
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
+	/* Save the thread's msr before get_tm_stackpointer() changes it */
+	unsigned long msr = regs->msr;
+#endif
 
 	BUG_ON(tsk != current);
 
@@ -1402,9 +1402,9 @@
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 	tm_mctx = &frame->mctx_transact;
-	if (MSR_TM_ACTIVE(regs->msr)) {
+	if (MSR_TM_ACTIVE(msr)) {
 		if (save_tm_user_regs(regs, &frame->mctx, &frame->mctx_transact,
-				      sigret))
+				      sigret, msr))
 			goto badframe;
 	}
 	else
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/signal_64.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/signal_64.c
@@ -192,7 +192,8 @@
 static long setup_tm_sigcontexts(struct sigcontext __user *sc,
 				 struct sigcontext __user *tm_sc,
 				 struct task_struct *tsk,
-				 int signr, sigset_t *set, unsigned long handler)
+				 int signr, sigset_t *set, unsigned long handler,
+				 unsigned long msr)
 {
 	/* When CONFIG_ALTIVEC is set, we _always_ setup v_regs even if the
 	 * process never used altivec yet (MSR_VEC is zero in pt_regs of
@@ -207,12 +208,11 @@
 	elf_vrreg_t __user *tm_v_regs = sigcontext_vmx_regs(tm_sc);
 #endif
 	struct pt_regs *regs = tsk->thread.regs;
-	unsigned long msr = tsk->thread.regs->msr;
 	long err = 0;
 
 	BUG_ON(tsk != current);
 
-	BUG_ON(!MSR_TM_ACTIVE(regs->msr));
+	BUG_ON(!MSR_TM_ACTIVE(msr));
 
 	WARN_ON(tm_suspend_disabled);
 
@@ -222,13 +222,6 @@
 	 */
 	msr |= tsk->thread.ckpt_regs.msr & (MSR_FP | MSR_VEC | MSR_VSX);
 
-	/* Remove TM bits from thread's MSR.  The MSR in the sigcontext
-	 * just indicates to userland that we were doing a transaction, but we
-	 * don't want to return in transactional state.  This also ensures
-	 * that flush_fp_to_thread won't set TIF_RESTORE_TM again.
-	 */
-	regs->msr &= ~MSR_TS_MASK;
-
 #ifdef CONFIG_ALTIVEC
 	err |= __put_user(v_regs, &sc->v_regs);
 	err |= __put_user(tm_v_regs, &tm_sc->v_regs);
@@ -480,8 +473,10 @@
 	err |= __get_user(tsk->thread.ckpt_regs.ccr,
 			  &sc->gp_regs[PT_CCR]);
 
+	/* Don't allow userspace to set the trap value */
+	regs->trap = 0;
+
 	/* These regs are not checkpointed; they can go in 'regs'. */
-	err |= __get_user(regs->trap, &sc->gp_regs[PT_TRAP]);
 	err |= __get_user(regs->dar, &sc->gp_regs[PT_DAR]);
 	err |= __get_user(regs->dsisr, &sc->gp_regs[PT_DSISR]);
 	err |= __get_user(regs->result, &sc->gp_regs[PT_RESULT]);
@@ -824,6 +819,10 @@
 	unsigned long newsp = 0;
 	long err = 0;
 	struct pt_regs *regs = tsk->thread.regs;
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
+	/* Save the thread's msr before get_tm_stackpointer() changes it */
+	unsigned long msr = regs->msr;
+#endif
 
 	BUG_ON(tsk != current);
 
@@ -841,7 +840,7 @@
 	err |= __put_user(0, &frame->uc.uc_flags);
 	err |= __save_altstack(&frame->uc.uc_stack, regs->gpr[1]);
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
-	if (MSR_TM_ACTIVE(regs->msr)) {
+	if (MSR_TM_ACTIVE(msr)) {
 		/* The ucontext_t passed to userland points to the second
 		 * ucontext_t (for transactional state) with its uc_link ptr.
 		 */
@@ -849,7 +848,8 @@
 		err |= setup_tm_sigcontexts(&frame->uc.uc_mcontext,
 					    &frame->uc_transact.uc_mcontext,
 					    tsk, ksig->sig, NULL,
-					    (unsigned long)ksig->ka.sa.sa_handler);
+					    (unsigned long)ksig->ka.sa.sa_handler,
+					    msr);
 	} else
 #endif
 	{
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/smp.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/smp.c
@@ -583,11 +583,43 @@
 #endif
 
 #ifdef CONFIG_NMI_IPI
+static void crash_stop_this_cpu(struct pt_regs *regs)
+#else
+static void crash_stop_this_cpu(void *dummy)
+#endif
+{
+	/*
+	 * Just busy wait here and avoid marking CPU as offline to ensure
+	 * register data is captured appropriately.
+	 */
+	while (1)
+		cpu_relax();
+}
+
+void crash_smp_send_stop(void)
+{
+	static bool stopped = false;
+
+	if (stopped)
+		return;
+
+	stopped = true;
+
+#ifdef CONFIG_NMI_IPI
+	smp_send_nmi_ipi(NMI_IPI_ALL_OTHERS, crash_stop_this_cpu, 1000000);
+#else
+	smp_call_function(crash_stop_this_cpu, NULL, 0);
+#endif /* CONFIG_NMI_IPI */
+}
+
+#ifdef CONFIG_NMI_IPI
 static void nmi_stop_this_cpu(struct pt_regs *regs)
 {
 	/*
 	 * IRQs are already hard disabled by the smp_handle_nmi_ipi.
 	 */
+	set_cpu_online(smp_processor_id(), false);
+
 	spin_begin();
 	while (1)
 		spin_cpu_relax();
@@ -603,6 +635,15 @@
 static void stop_this_cpu(void *dummy)
 {
 	hard_irq_disable();
+
+	/*
+	 * Offlining CPUs in stop_this_cpu can result in scheduler warnings,
+	 * (see commit de6e5d38417e), but printk_safe_flush_on_panic() wants
+	 * to know other CPUs are offline before it breaks locks to flush
+	 * printk buffers, in case we panic()ed while holding the lock.
+	 */
+	set_cpu_online(smp_processor_id(), false);
+
 	spin_begin();
 	while (1)
 		spin_cpu_relax();
@@ -1254,6 +1295,9 @@
 
 	vdso_getcpu_init();
 #endif
+	set_numa_node(numa_cpu_lookup_table[cpu]);
+	set_numa_mem(local_memory_node(numa_cpu_lookup_table[cpu]));
+
 	/* Update topology CPU masks */
 	add_cpu_to_masks(cpu);
 
@@ -1266,9 +1310,6 @@
 	if (!cpumask_equal(cpu_l2_cache_mask(cpu), sibling_mask(cpu)))
 		shared_caches = true;
 
-	set_numa_node(numa_cpu_lookup_table[cpu]);
-	set_numa_mem(local_memory_node(numa_cpu_lookup_table[cpu]));
-
 	smp_wmb();
 	notify_cpu_starting(cpu);
 	set_cpu_online(cpu, true);
@@ -1285,10 +1326,12 @@
 	BUG();
 }
 
+#ifdef CONFIG_PROFILING
 int setup_profiling_timer(unsigned int multiplier)
 {
 	return 0;
 }
+#endif
 
 #ifdef CONFIG_SCHED_SMT
 /* cpumask of CPUs with asymetric SMT dependancy */
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/stacktrace.c
@@ -8,6 +8,7 @@
  * Copyright 2018 Nick Piggin, Michael Ellerman, IBM Corp.
  */
 
+#include <linux/delay.h>
 #include <linux/export.h>
 #include <linux/kallsyms.h>
 #include <linux/module.h>
@@ -19,6 +20,7 @@
 #include <asm/ptrace.h>
 #include <asm/processor.h>
 #include <linux/ftrace.h>
+#include <linux/delay.h>
 #include <asm/kprobes.h>
 
 #include <asm/paca.h>
@@ -230,17 +232,31 @@
 
 static void raise_backtrace_ipi(cpumask_t *mask)
 {
+	struct paca_struct *p;
 	unsigned int cpu;
+	u64 delay_us;
 
 	for_each_cpu(cpu, mask) {
-		if (cpu == smp_processor_id())
+		if (cpu == smp_processor_id()) {
 			handle_backtrace_ipi(NULL);
-		else
-			smp_send_safe_nmi_ipi(cpu, handle_backtrace_ipi, 5 * USEC_PER_SEC);
-	}
+			continue;
+		}
 
-	for_each_cpu(cpu, mask) {
-		struct paca_struct *p = paca_ptrs[cpu];
+		delay_us = 5 * USEC_PER_SEC;
+
+		if (smp_send_safe_nmi_ipi(cpu, handle_backtrace_ipi, delay_us)) {
+			// Now wait up to 5s for the other CPU to do its backtrace
+			while (cpumask_test_cpu(cpu, mask) && delay_us) {
+				udelay(1);
+				delay_us--;
+			}
+
+			// Other CPU cleared itself from the mask
+			if (delay_us)
+				continue;
+		}
+
+		p = paca_ptrs[cpu];
 
 		cpumask_clear_cpu(cpu, mask);
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/swsusp_32.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/swsusp_32.S
@@ -181,7 +181,7 @@
 #ifdef CONFIG_ALTIVEC
 	/* Stop pending alitvec streams and memory accesses */
 BEGIN_FTR_SECTION
-	DSSALL
+	PPC_DSSALL
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 #endif
  	sync
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/swsusp_asm64.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/swsusp_asm64.S
@@ -142,7 +142,7 @@
 _GLOBAL(swsusp_arch_resume)
 	/* Stop pending alitvec streams and memory accesses */
 BEGIN_FTR_SECTION
-	DSSALL
+	PPC_DSSALL
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 	sync
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/sysfs.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/sysfs.c
@@ -31,29 +31,27 @@
 
 static DEFINE_PER_CPU(struct cpu, cpu_devices);
 
-/*
- * SMT snooze delay stuff, 64-bit only for now
- */
-
 #ifdef CONFIG_PPC64
 
-/* Time in microseconds we delay before sleeping in the idle loop */
-static DEFINE_PER_CPU(long, smt_snooze_delay) = { 100 };
+/*
+ * Snooze delay has not been hooked up since 3fa8cad82b94 ("powerpc/pseries/cpuidle:
+ * smt-snooze-delay cleanup.") and has been broken even longer. As was foretold in
+ * 2014:
+ *
+ *  "ppc64_util currently utilises it. Once we fix ppc64_util, propose to clean
+ *  up the kernel code."
+ *
+ * powerpc-utils stopped using it as of 1.3.8. At some point in the future this
+ * code should be removed.
+ */
 
 static ssize_t store_smt_snooze_delay(struct device *dev,
 				      struct device_attribute *attr,
 				      const char *buf,
 				      size_t count)
 {
-	struct cpu *cpu = container_of(dev, struct cpu, dev);
-	ssize_t ret;
-	long snooze;
-
-	ret = sscanf(buf, "%ld", &snooze);
-	if (ret != 1)
-		return -EINVAL;
-
-	per_cpu(smt_snooze_delay, cpu->dev.id) = snooze;
+	pr_warn_once("%s (%d) stored to unsupported smt_snooze_delay, which has no effect.\n",
+		     current->comm, current->pid);
 	return count;
 }
 
@@ -61,9 +59,9 @@
 				     struct device_attribute *attr,
 				     char *buf)
 {
-	struct cpu *cpu = container_of(dev, struct cpu, dev);
-
-	return sprintf(buf, "%ld\n", per_cpu(smt_snooze_delay, cpu->dev.id));
+	pr_warn_once("%s (%d) read from unsupported smt_snooze_delay\n",
+		     current->comm, current->pid);
+	return sprintf(buf, "100\n");
 }
 
 static DEVICE_ATTR(smt_snooze_delay, 0644, show_smt_snooze_delay,
@@ -71,16 +69,10 @@
 
 static int __init setup_smt_snooze_delay(char *str)
 {
-	unsigned int cpu;
-	long snooze;
-
 	if (!cpu_has_feature(CPU_FTR_SMT))
 		return 1;
 
-	snooze = simple_strtol(str, NULL, 10);
-	for_each_possible_cpu(cpu)
-		per_cpu(smt_snooze_delay, cpu) = snooze;
-
+	pr_warn("smt-snooze-delay command line option has no effect\n");
 	return 1;
 }
 __setup("smt-snooze-delay=", setup_smt_snooze_delay);
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/systbl.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/systbl.S
@@ -25,6 +25,7 @@
 #include <asm/syscall_table_64.h>
 #undef __SYSCALL
 #else
+	.p2align	2
 #define __SYSCALL(nr, entry)	.long entry
 #include <asm/syscall_table_32.h>
 #undef __SYSCALL
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/tau_6xx.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/tau_6xx.c
@@ -13,13 +13,14 @@
  */
 
 #include <linux/errno.h>
-#include <linux/jiffies.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/string.h>
 #include <linux/mm.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/workqueue.h>
 
 #include <asm/io.h>
 #include <asm/reg.h>
@@ -39,9 +40,7 @@
 	unsigned char grew;
 } tau[NR_CPUS];
 
-struct timer_list tau_timer;
-
-#undef DEBUG
+static bool tau_int_enable;
 
 /* TODO: put these in a /proc interface, with some sanity checks, and maybe
  * dynamic adjustment to minimize # of interrupts */
@@ -50,72 +49,49 @@
 #define step_size		2	/* step size when temp goes out of range */
 #define window_expand		1	/* expand the window by this much */
 /* configurable values for shrinking the window */
-#define shrink_timer	2*HZ	/* period between shrinking the window */
+#define shrink_timer	2000	/* period between shrinking the window */
 #define min_window	2	/* minimum window size, degrees C */
 
 static void set_thresholds(unsigned long cpu)
 {
-#ifdef CONFIG_TAU_INT
-	/*
-	 * setup THRM1,
-	 * threshold, valid bit, enable interrupts, interrupt when below threshold
-	 */
-	mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | THRM1_TIE | THRM1_TID);
+	u32 maybe_tie = tau_int_enable ? THRM1_TIE : 0;
 
-	/* setup THRM2,
-	 * threshold, valid bit, enable interrupts, interrupt when above threshold
-	 */
-	mtspr (SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V | THRM1_TIE);
-#else
-	/* same thing but don't enable interrupts */
-	mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | THRM1_TID);
-	mtspr(SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V);
-#endif
+	/* setup THRM1, threshold, valid bit, interrupt when below threshold */
+	mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | maybe_tie | THRM1_TID);
+
+	/* setup THRM2, threshold, valid bit, interrupt when above threshold */
+	mtspr(SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V | maybe_tie);
 }
 
 static void TAUupdate(int cpu)
 {
-	unsigned thrm;
-
-#ifdef DEBUG
-	printk("TAUupdate ");
-#endif
+	u32 thrm;
+	u32 bits = THRM1_TIV | THRM1_TIN | THRM1_V;
 
 	/* if both thresholds are crossed, the step_sizes cancel out
 	 * and the window winds up getting expanded twice. */
-	if((thrm = mfspr(SPRN_THRM1)) & THRM1_TIV){ /* is valid? */
-		if(thrm & THRM1_TIN){ /* crossed low threshold */
-			if (tau[cpu].low >= step_size){
-				tau[cpu].low -= step_size;
-				tau[cpu].high -= (step_size - window_expand);
-			}
-			tau[cpu].grew = 1;
-#ifdef DEBUG
-			printk("low threshold crossed ");
-#endif
+	thrm = mfspr(SPRN_THRM1);
+	if ((thrm & bits) == bits) {
+		mtspr(SPRN_THRM1, 0);
+
+		if (tau[cpu].low >= step_size) {
+			tau[cpu].low -= step_size;
+			tau[cpu].high -= (step_size - window_expand);
 		}
+		tau[cpu].grew = 1;
+		pr_debug("%s: low threshold crossed\n", __func__);
 	}
-	if((thrm = mfspr(SPRN_THRM2)) & THRM1_TIV){ /* is valid? */
-		if(thrm & THRM1_TIN){ /* crossed high threshold */
-			if (tau[cpu].high <= 127-step_size){
-				tau[cpu].low += (step_size - window_expand);
-				tau[cpu].high += step_size;
-			}
-			tau[cpu].grew = 1;
-#ifdef DEBUG
-			printk("high threshold crossed ");
-#endif
+	thrm = mfspr(SPRN_THRM2);
+	if ((thrm & bits) == bits) {
+		mtspr(SPRN_THRM2, 0);
+
+		if (tau[cpu].high <= 127 - step_size) {
+			tau[cpu].low += (step_size - window_expand);
+			tau[cpu].high += step_size;
 		}
+		tau[cpu].grew = 1;
+		pr_debug("%s: high threshold crossed\n", __func__);
 	}
-
-#ifdef DEBUG
-	printk("grew = %d\n", tau[cpu].grew);
-#endif
-
-#ifndef CONFIG_TAU_INT /* tau_timeout will do this if not using interrupts */
-	set_thresholds(cpu);
-#endif
-
 }
 
 #ifdef CONFIG_TAU_INT
@@ -140,17 +116,16 @@
 static void tau_timeout(void * info)
 {
 	int cpu;
-	unsigned long flags;
 	int size;
 	int shrink;
 
-	/* disabling interrupts *should* be okay */
-	local_irq_save(flags);
 	cpu = smp_processor_id();
 
-#ifndef CONFIG_TAU_INT
-	TAUupdate(cpu);
-#endif
+	if (!tau_int_enable)
+		TAUupdate(cpu);
+
+	/* Stop thermal sensor comparisons and interrupts */
+	mtspr(SPRN_THRM3, 0);
 
 	size = tau[cpu].high - tau[cpu].low;
 	if (size > min_window && ! tau[cpu].grew) {
@@ -173,32 +148,26 @@
 
 	set_thresholds(cpu);
 
-	/*
-	 * Do the enable every time, since otherwise a bunch of (relatively)
-	 * complex sleep code needs to be added. One mtspr every time
-	 * tau_timeout is called is probably not a big deal.
-	 *
-	 * Enable thermal sensor and set up sample interval timer
-	 * need 20 us to do the compare.. until a nice 'cpu_speed' function
-	 * call is implemented, just assume a 500 mhz clock. It doesn't really
-	 * matter if we take too long for a compare since it's all interrupt
-	 * driven anyway.
-	 *
-	 * use a extra long time.. (60 us @ 500 mhz)
+	/* Restart thermal sensor comparisons and interrupts.
+	 * The "PowerPC 740 and PowerPC 750 Microprocessor Datasheet"
+	 * recommends that "the maximum value be set in THRM3 under all
+	 * conditions."
 	 */
-	mtspr(SPRN_THRM3, THRM3_SITV(500*60) | THRM3_E);
-
-	local_irq_restore(flags);
+	mtspr(SPRN_THRM3, THRM3_SITV(0x1fff) | THRM3_E);
 }
 
-static void tau_timeout_smp(struct timer_list *unused)
-{
+static struct workqueue_struct *tau_workq;
 
-	/* schedule ourselves to be run again */
-	mod_timer(&tau_timer, jiffies + shrink_timer) ;
+static void tau_work_func(struct work_struct *work)
+{
+	msleep(shrink_timer);
 	on_each_cpu(tau_timeout, NULL, 0);
+	/* schedule ourselves to be run again */
+	queue_work(tau_workq, work);
 }
 
+DECLARE_WORK(tau_work, tau_work_func);
+
 /*
  * setup the TAU
  *
@@ -231,21 +200,19 @@
 		return 1;
 	}
 
+	tau_int_enable = IS_ENABLED(CONFIG_TAU_INT) &&
+			 !strcmp(cur_cpu_spec->platform, "ppc750");
 
-	/* first, set up the window shrinking timer */
-	timer_setup(&tau_timer, tau_timeout_smp, 0);
-	tau_timer.expires = jiffies + shrink_timer;
-	add_timer(&tau_timer);
+	tau_workq = alloc_workqueue("tau", WQ_UNBOUND, 1, 0);
+	if (!tau_workq)
+		return -ENOMEM;
 
 	on_each_cpu(TAU_init_smp, NULL, 0);
 
-	printk("Thermal assist unit ");
-#ifdef CONFIG_TAU_INT
-	printk("using interrupts, ");
-#else
-	printk("using timers, ");
-#endif
-	printk("shrink_timer: %d jiffies\n", shrink_timer);
+	queue_work(tau_workq, &tau_work);
+
+	pr_info("Thermal assist unit using %s, shrink_timer: %d ms\n",
+		tau_int_enable ? "interrupts" : "workqueue", shrink_timer);
 	tau_initialized = 1;
 
 	return 0;
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/time.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/time.c
@@ -232,7 +232,7 @@
  * Accumulate stolen time by scanning the dispatch trace log.
  * Called on entry from user mode.
  */
-void accumulate_stolen_time(void)
+void notrace accumulate_stolen_time(void)
 {
 	u64 sst, ust;
 	unsigned long save_irq_soft_mask = irq_soft_mask_return();
@@ -522,35 +522,6 @@
 		"i" (offsetof(struct paca_struct, irq_work_pending)));
 }
 
-void arch_irq_work_raise(void)
-{
-	preempt_disable();
-	set_irq_work_pending_flag();
-	/*
-	 * Non-nmi code running with interrupts disabled will replay
-	 * irq_happened before it re-enables interrupts, so setthe
-	 * decrementer there instead of causing a hardware exception
-	 * which would immediately hit the masked interrupt handler
-	 * and have the net effect of setting the decrementer in
-	 * irq_happened.
-	 *
-	 * NMI interrupts can not check this when they return, so the
-	 * decrementer hardware exception is raised, which will fire
-	 * when interrupts are next enabled.
-	 *
-	 * BookE does not support this yet, it must audit all NMI
-	 * interrupt handlers to ensure they call nmi_enter() so this
-	 * check would be correct.
-	 */
-	if (IS_ENABLED(CONFIG_BOOKE) || !irqs_disabled() || in_nmi()) {
-		set_dec(1);
-	} else {
-		hard_irq_disable();
-		local_paca->irq_happened |= PACA_IRQ_DEC;
-	}
-	preempt_enable();
-}
-
 #else /* 32-bit */
 
 DEFINE_PER_CPU(u8, irq_work_pending);
@@ -559,16 +530,27 @@
 #define test_irq_work_pending()		__this_cpu_read(irq_work_pending)
 #define clear_irq_work_pending()	__this_cpu_write(irq_work_pending, 0)
 
+#endif /* 32 vs 64 bit */
+
 void arch_irq_work_raise(void)
 {
+	/*
+	 * 64-bit code that uses irq soft-mask can just cause an immediate
+	 * interrupt here that gets soft masked, if this is called under
+	 * local_irq_disable(). It might be possible to prevent that happening
+	 * by noticing interrupts are disabled and setting decrementer pending
+	 * to be replayed when irqs are enabled. The problem there is that
+	 * tracing can call irq_work_raise, including in code that does low
+	 * level manipulations of irq soft-mask state (e.g., trace_hardirqs_on)
+	 * which could get tangled up if we're messing with the same state
+	 * here.
+	 */
 	preempt_disable();
 	set_irq_work_pending_flag();
 	set_dec(1);
 	preempt_enable();
 }
 
-#endif /* 32 vs 64 bit */
-
 #else  /* CONFIG_IRQ_WORK */
 
 #define test_irq_work_pending()	0
@@ -959,6 +941,7 @@
 	vdso_data->wtom_clock_nsec = tk->wall_to_monotonic.tv_nsec;
 	vdso_data->stamp_xtime = xt;
 	vdso_data->stamp_sec_fraction = frac_sec;
+	vdso_data->hrtimer_res = hrtimer_resolution;
 	smp_wmb();
 	++(vdso_data->tb_update_count);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/trace/ftrace.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/trace/ftrace.c
@@ -328,9 +328,7 @@
 
 	/* Is this a known long jump tramp? */
 	for (i = 0; i < NUM_FTRACE_TRAMPS; i++)
-		if (!ftrace_tramps[i])
-			break;
-		else if (ftrace_tramps[i] == tramp)
+		if (ftrace_tramps[i] == tramp)
 			return 0;
 
 	/* Is this a known plt tramp? */
@@ -868,6 +866,17 @@
 
 extern unsigned int ftrace_tramp_text[], ftrace_tramp_init[];
 
+void ftrace_free_init_tramp(void)
+{
+	int i;
+
+	for (i = 0; i < NUM_FTRACE_TRAMPS && ftrace_tramps[i]; i++)
+		if (ftrace_tramps[i] == (unsigned long)ftrace_tramp_init) {
+			ftrace_tramps[i] = 0;
+			return;
+		}
+}
+
 int __init ftrace_dyn_arch_init(void)
 {
 	int i;
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/traps.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/traps.c
@@ -246,19 +246,26 @@
 
 	if (panic_on_oops)
 		panic("Fatal exception");
-	do_exit(signr);
+	make_task_dead(signr);
 }
 NOKPROBE_SYMBOL(oops_end);
 
+static char *get_mmu_str(void)
+{
+	if (early_radix_enabled())
+		return " MMU=Radix";
+	if (early_mmu_has_feature(MMU_FTR_HPTE_TABLE))
+		return " MMU=Hash";
+	return "";
+}
+
 static int __die(const char *str, struct pt_regs *regs, long err)
 {
 	printk("Oops: %s, sig: %ld [#%d]\n", str, err, ++die_counter);
 
-	printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s%s %s\n",
+	printk("%s PAGE_SIZE=%luK%s%s%s%s%s%s %s\n",
 	       IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN) ? "LE" : "BE",
-	       PAGE_SIZE / 1024,
-	       early_radix_enabled() ? " MMU=Radix" : "",
-	       early_mmu_has_feature(MMU_FTR_HPTE_TABLE) ? " MMU=Hash" : "",
+	       PAGE_SIZE / 1024, get_mmu_str(),
 	       IS_ENABLED(CONFIG_PREEMPT) ? " PREEMPT" : "",
 	       IS_ENABLED(CONFIG_SMP) ? " SMP" : "",
 	       IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "",
@@ -503,11 +510,14 @@
 #ifdef CONFIG_PPC_BOOK3S_64
 	BUG_ON(get_paca()->in_nmi == 0);
 	if (get_paca()->in_nmi > 1)
-		nmi_panic(regs, "Unrecoverable nested System Reset");
+		die("Unrecoverable nested System Reset", regs, SIGABRT);
 #endif
 	/* Must die if the interrupt is not recoverable */
-	if (!(regs->msr & MSR_RI))
-		nmi_panic(regs, "Unrecoverable System Reset");
+	if (!(regs->msr & MSR_RI)) {
+		/* For the reason explained in die_mce, nmi_exit before die */
+		nmi_exit();
+		die("Unrecoverable System Reset", regs, SIGABRT);
+	}
 
 	if (saved_hsrrs) {
 		mtspr(SPRN_HSRR0, hsrr0);
@@ -851,7 +861,7 @@
 
 	/* Must die if the interrupt is not recoverable */
 	if (!(regs->msr & MSR_RI))
-		nmi_panic(regs, "Unrecoverable Machine check");
+		die("Unrecoverable Machine check", regs, SIGBUS);
 
 	return;
 
@@ -870,7 +880,7 @@
 {
 	unsigned int ra, rb, t, i, sel, instr, rc;
 	const void __user *addr;
-	u8 vbuf[16], *vdst;
+	u8 vbuf[16] __aligned(16), *vdst;
 	unsigned long ea, msr, msr_mask;
 	bool swap;
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/vdso.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/vdso.c
@@ -682,7 +682,7 @@
 	node = cpu_to_node(cpu);
 	WARN_ON_ONCE(node > 0xffff);
 
-	val = (cpu & 0xfff) | ((node & 0xffff) << 16);
+	val = (cpu & 0xffff) | ((node & 0xffff) << 16);
 	mtspr(SPRN_SPRG_VDSO_WRITE, val);
 	get_paca()->sprg_vdso = val;
 
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/vdso32/gettimeofday.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/vdso32/gettimeofday.S
@@ -156,12 +156,15 @@
 	cror	cr0*4+eq,cr0*4+eq,cr1*4+eq
 	bne	cr0,99f
 
+	mflr	r12
+  .cfi_register lr,r12
+	bl	__get_datapage@local	/* get data page */
+	lwz	r5, CLOCK_HRTIMER_RES(r3)
+	mtlr	r12
 	li	r3,0
 	cmpli	cr0,r4,0
 	crclr	cr0*4+so
 	beqlr
-	lis	r5,CLOCK_REALTIME_RES@h
-	ori	r5,r5,CLOCK_REALTIME_RES@l
 	stw	r3,TSPC32_TV_SEC(r4)
 	stw	r5,TSPC32_TV_NSEC(r4)
 	blr
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/vdso64/cacheflush.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/vdso64/cacheflush.S
@@ -35,7 +35,7 @@
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5		/* ensure we get enough */
 	lwz	r9,CFG_DCACHE_LOGBLOCKSZ(r10)
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	crclr	cr0*4+so
 	beqlr				/* nothing to do? */
 	mtctr	r8
@@ -52,7 +52,7 @@
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5
 	lwz	r9,CFG_ICACHE_LOGBLOCKSZ(r10)
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	crclr	cr0*4+so
 	beqlr				/* nothing to do? */
 	mtctr	r8
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/vdso64/gettimeofday.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/vdso64/gettimeofday.S
@@ -186,12 +186,15 @@
 	cror	cr0*4+eq,cr0*4+eq,cr1*4+eq
 	bne	cr0,99f
 
+	mflr	r12
+  .cfi_register lr,r12
+	bl	V_LOCAL_FUNC(__get_datapage)
+	lwz	r5, CLOCK_HRTIMER_RES(r3)
+	mtlr	r12
 	li	r3,0
 	cmpldi	cr0,r4,0
 	crclr	cr0*4+so
 	beqlr
-	lis	r5,CLOCK_REALTIME_RES@h
-	ori	r5,r5,CLOCK_REALTIME_RES@l
 	std	r3,TSPC64_TV_SEC(r4)
 	std	r5,TSPC64_TV_NSEC(r4)
 	blr
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/powerpc/kernel/vmlinux.lds.S
@@ -6,6 +6,7 @@
 #endif
 
 #define BSS_FIRST_SECTIONS *(.bss.prominit)
+#define RUNTIME_DISCARD_EXIT
 
 #include <asm/page.h>
 #include <asm-generic/vmlinux.lds.h>
@@ -98,10 +99,11 @@
 		ALIGN_FUNCTION();
 #endif
 		/* careful! __ftr_alt_* sections need to be close to .text */
-		*(.text.hot TEXT_MAIN .text.fixup .text.unlikely .fixup __ftr_alt_* .ref.text);
+		*(.text.hot .text.hot.* TEXT_MAIN .text.fixup .text.unlikely .text.unlikely.* .fixup __ftr_alt_* .ref.text);
 #ifdef CONFIG_PPC64
 		*(.tramp.ftrace.text);
 #endif
+		NOINSTR_TEXT
 		SCHED_TEXT
 		CPUIDLE_TEXT
 		LOCK_TEXT
@@ -144,6 +146,20 @@
 	}
 
 	. = ALIGN(8);
+	__uaccess_flush_fixup : AT(ADDR(__uaccess_flush_fixup) - LOAD_OFFSET) {
+		__start___uaccess_flush_fixup = .;
+		*(__uaccess_flush_fixup)
+		__stop___uaccess_flush_fixup = .;
+	}
+
+	. = ALIGN(8);
+	__entry_flush_fixup : AT(ADDR(__entry_flush_fixup) - LOAD_OFFSET) {
+		__start___entry_flush_fixup = .;
+		*(__entry_flush_fixup)
+		__stop___entry_flush_fixup = .;
+	}
+
+	. = ALIGN(8);
 	__stf_exit_barrier_fixup : AT(ADDR(__stf_exit_barrier_fixup) - LOAD_OFFSET) {
 		__start___stf_exit_barrier_fixup = .;
 		*(__stf_exit_barrier_fixup)
@@ -196,6 +212,12 @@
 	.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
 		_sinittext = .;
 		INIT_TEXT
+
+		/*
+		 *.init.text might be RO so we must ensure this section ends on
+		 * a page boundary.
+		 */
+		. = ALIGN(PAGE_SIZE);
 		_einittext = .;
 #ifdef CONFIG_PPC64
 		*(.tramp.ftrace.init);
@@ -209,21 +231,9 @@
 		EXIT_TEXT
 	}
 
-	.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
-		INIT_DATA
-	}
-
-	.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
-		INIT_SETUP(16)
-	}
-
-	.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
-		INIT_CALLS
-	}
+	. = ALIGN(PAGE_SIZE);
 
-	.con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
-		CON_INITCALL
-	}
+	INIT_DATA_SECTION(16)
 
 	. = ALIGN(8);
 	__ftr_fixup : AT(ADDR(__ftr_fixup) - LOAD_OFFSET) {
@@ -251,9 +261,6 @@
 		__stop___fw_ftr_fixup = .;
 	}
 #endif
-	.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
-		INIT_RAM_FS
-	}
 
 	PERCPU_SECTION(L1_CACHE_BYTES)
 
@@ -388,9 +395,12 @@
 	DISCARDS
 	/DISCARD/ : {
 		*(*.EMB.apuinfo)
-		*(.glink .iplt .plt .rela* .comment)
+		*(.glink .iplt .plt .comment)
 		*(.gnu.version*)
 		*(.gnu.attributes)
 		*(.eh_frame)
+#ifndef CONFIG_RELOCATABLE
+		*(.rela*)
+#endif
 	}
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kernel/watchdog.c
+++ linux-ein-5.4.0/arch/powerpc/kernel/watchdog.c
@@ -132,6 +132,10 @@
 {
 	cpumask_or(&wd_smp_cpus_stuck, &wd_smp_cpus_stuck, cpumask);
 	cpumask_andnot(&wd_smp_cpus_pending, &wd_smp_cpus_pending, cpumask);
+	/*
+	 * See wd_smp_clear_cpu_pending()
+	 */
+	smp_mb();
 	if (cpumask_empty(&wd_smp_cpus_pending)) {
 		wd_smp_last_reset_tb = tb;
 		cpumask_andnot(&wd_smp_cpus_pending,
@@ -217,13 +221,44 @@
 
 			cpumask_clear_cpu(cpu, &wd_smp_cpus_stuck);
 			wd_smp_unlock(&flags);
+		} else {
+			/*
+			 * The last CPU to clear pending should have reset the
+			 * watchdog so we generally should not find it empty
+			 * here if our CPU was clear. However it could happen
+			 * due to a rare race with another CPU taking the
+			 * last CPU out of the mask concurrently.
+			 *
+			 * We can't add a warning for it. But just in case
+			 * there is a problem with the watchdog that is causing
+			 * the mask to not be reset, try to kick it along here.
+			 */
+			if (unlikely(cpumask_empty(&wd_smp_cpus_pending)))
+				goto none_pending;
 		}
 		return;
 	}
+
 	cpumask_clear_cpu(cpu, &wd_smp_cpus_pending);
+
+	/*
+	 * Order the store to clear pending with the load(s) to check all
+	 * words in the pending mask to check they are all empty. This orders
+	 * with the same barrier on another CPU. This prevents two CPUs
+	 * clearing the last 2 pending bits, but neither seeing the other's
+	 * store when checking if the mask is empty, and missing an empty
+	 * mask, which ends with a false positive.
+	 */
+	smp_mb();
 	if (cpumask_empty(&wd_smp_cpus_pending)) {
 		unsigned long flags;
 
+none_pending:
+		/*
+		 * Double check under lock because more than one CPU could see
+		 * a clear mask with the lockless check after clearing their
+		 * pending bits.
+		 */
 		wd_smp_lock(&flags);
 		if (cpumask_empty(&wd_smp_cpus_pending)) {
 			wd_smp_last_reset_tb = tb;
@@ -314,8 +349,12 @@
 {
 	unsigned long ticks = tb_ticks_per_usec * wd_timer_period_ms * 1000;
 	int cpu = smp_processor_id();
-	u64 tb = get_tb();
+	u64 tb;
 
+	if (!cpumask_test_cpu(cpu, &watchdog_cpumask))
+		return;
+
+	tb = get_tb();
 	if (tb - per_cpu(wd_timer_tb, cpu) >= ticks) {
 		per_cpu(wd_timer_tb, cpu) = tb;
 		wd_smp_clear_cpu_pending(cpu, tb);
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s.c
@@ -867,7 +867,8 @@
 	kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new, change);
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	return kvm->arch.kvm_ops->unmap_hva_range(kvm, start, end);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -31,14 +31,15 @@
 					      gva_t eaddr, void *to, void *from,
 					      unsigned long n)
 {
-	int uninitialized_var(old_pid), old_lpid;
+	int old_pid, old_lpid;
 	unsigned long quadrant, ret = n;
 	bool is_load = !!to;
 
 	/* Can't access quadrants 1 or 2 in non-HV mode, call the HV to do it */
 	if (kvmhv_on_pseries())
 		return plpar_hcall_norets(H_COPY_TOFROM_GUEST, lpid, pid, eaddr,
-					  __pa(to), __pa(from), n);
+					  (to != NULL) ? __pa(to): 0,
+					  (from != NULL) ? __pa(from): 0, n);
 
 	quadrant = 1;
 	if (!pid)
@@ -353,7 +354,13 @@
 
 static pte_t *kvmppc_pte_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	pte_t *pte;
+
+	pte = kmem_cache_alloc(kvm_pte_cache, GFP_KERNEL);
+	/* pmd_populate() will only reference _pa(pte). */
+	kmemleak_ignore(pte);
+
+	return pte;
 }
 
 static void kvmppc_pte_free(pte_t *ptep)
@@ -363,7 +370,13 @@
 
 static pmd_t *kvmppc_pmd_alloc(void)
 {
-	return kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	pmd_t *pmd;
+
+	pmd = kmem_cache_alloc(kvm_pmd_cache, GFP_KERNEL);
+	/* pud_populate() will only reference _pa(pmd). */
+	kmemleak_ignore(pmd);
+
+	return pmd;
 }
 
 static void kvmppc_pmd_free(pmd_t *pmdp)
@@ -1091,6 +1104,11 @@
 					 kvm->arch.lpid);
 		gpa += PAGE_SIZE;
 	}
+	/*
+	 * Increase the mmu notifier sequence number to prevent any page
+	 * fault that read the memslot earlier from writing a PTE.
+	 */
+	kvm->mmu_notifier_seq++;
 	spin_unlock(&kvm->mmu_lock);
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_64_vio.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_64_vio.c
@@ -74,6 +74,7 @@
 	struct kvmppc_spapr_tce_iommu_table *stit, *tmp;
 	struct iommu_table_group *table_group = NULL;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stt, &kvm->arch.spapr_tce_tables, list) {
 
 		table_group = iommu_group_get_iommudata(grp);
@@ -88,7 +89,9 @@
 				kref_put(&stit->kref, kvm_spapr_tce_liobn_put);
 			}
 		}
+		cond_resched_rcu();
 	}
+	rcu_read_unlock();
 }
 
 extern long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
@@ -106,12 +109,14 @@
 	if (!f.file)
 		return -EBADF;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stt, &kvm->arch.spapr_tce_tables, list) {
 		if (stt == f.file->private_data) {
 			found = true;
 			break;
 		}
 	}
+	rcu_read_unlock();
 
 	fdput(f);
 
@@ -144,6 +149,7 @@
 	if (!tbl)
 		return -EINVAL;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stit, &stt->iommu_tables, next) {
 		if (tbl != stit->tbl)
 			continue;
@@ -151,14 +157,17 @@
 		if (!kref_get_unless_zero(&stit->kref)) {
 			/* stit is being destroyed */
 			iommu_tce_table_put(tbl);
+			rcu_read_unlock();
 			return -ENOTTY;
 		}
 		/*
 		 * The table is already known to this KVM, we just increased
 		 * its KVM reference counter and can return.
 		 */
+		rcu_read_unlock();
 		return 0;
 	}
+	rcu_read_unlock();
 
 	stit = kzalloc(sizeof(*stit), GFP_KERNEL);
 	if (!stit) {
@@ -364,18 +373,19 @@
 	if (kvmppc_tce_to_ua(stt->kvm, tce, &ua))
 		return H_TOO_HARD;
 
+	rcu_read_lock();
 	list_for_each_entry_rcu(stit, &stt->iommu_tables, next) {
 		unsigned long hpa = 0;
 		struct mm_iommu_table_group_mem_t *mem;
 		long shift = stit->tbl->it_page_shift;
 
 		mem = mm_iommu_lookup(stt->kvm->mm, ua, 1ULL << shift);
-		if (!mem)
-			return H_TOO_HARD;
-
-		if (mm_iommu_ua_to_hpa(mem, ua, shift, &hpa))
+		if (!mem || mm_iommu_ua_to_hpa(mem, ua, shift, &hpa)) {
+			rcu_read_unlock();
 			return H_TOO_HARD;
+		}
 	}
+	rcu_read_unlock();
 
 	return H_SUCCESS;
 }
@@ -410,13 +420,19 @@
 	tbl[idx % TCES_PER_PAGE] = tce;
 }
 
-static void kvmppc_clear_tce(struct mm_struct *mm, struct iommu_table *tbl,
-		unsigned long entry)
+static void kvmppc_clear_tce(struct mm_struct *mm, struct kvmppc_spapr_tce_table *stt,
+		struct iommu_table *tbl, unsigned long entry)
 {
-	unsigned long hpa = 0;
-	enum dma_data_direction dir = DMA_NONE;
+	unsigned long i;
+	unsigned long subpages = 1ULL << (stt->page_shift - tbl->it_page_shift);
+	unsigned long io_entry = entry << (stt->page_shift - tbl->it_page_shift);
+
+	for (i = 0; i < subpages; ++i) {
+		unsigned long hpa = 0;
+		enum dma_data_direction dir = DMA_NONE;
 
-	iommu_tce_xchg_no_kill(mm, tbl, entry, &hpa, &dir);
+		iommu_tce_xchg_no_kill(mm, tbl, io_entry + i, &hpa, &dir);
+	}
 }
 
 static long kvmppc_tce_iommu_mapped_dec(struct kvm *kvm,
@@ -475,6 +491,8 @@
 			break;
 	}
 
+	iommu_tce_kill(tbl, io_entry, subpages);
+
 	return ret;
 }
 
@@ -534,6 +552,8 @@
 			break;
 	}
 
+	iommu_tce_kill(tbl, io_entry, subpages);
+
 	return ret;
 }
 
@@ -580,10 +600,9 @@
 			ret = kvmppc_tce_iommu_map(vcpu->kvm, stt, stit->tbl,
 					entry, ua, dir);
 
-		iommu_tce_kill(stit->tbl, entry, 1);
 
 		if (ret != H_SUCCESS) {
-			kvmppc_clear_tce(vcpu->kvm->mm, stit->tbl, entry);
+			kvmppc_clear_tce(vcpu->kvm->mm, stt, stit->tbl, entry);
 			goto unlock_exit;
 		}
 	}
@@ -659,13 +678,13 @@
 		 */
 		if (get_user(tce, tces + i)) {
 			ret = H_TOO_HARD;
-			goto invalidate_exit;
+			goto unlock_exit;
 		}
 		tce = be64_to_cpu(tce);
 
 		if (kvmppc_tce_to_ua(vcpu->kvm, tce, &ua)) {
 			ret = H_PARAMETER;
-			goto invalidate_exit;
+			goto unlock_exit;
 		}
 
 		list_for_each_entry_lockless(stit, &stt->iommu_tables, next) {
@@ -674,19 +693,15 @@
 					iommu_tce_direction(tce));
 
 			if (ret != H_SUCCESS) {
-				kvmppc_clear_tce(vcpu->kvm->mm, stit->tbl,
-						entry);
-				goto invalidate_exit;
+				kvmppc_clear_tce(vcpu->kvm->mm, stt, stit->tbl,
+						 entry + i);
+				goto unlock_exit;
 			}
 		}
 
 		kvmppc_tce_put(stt, entry + i, tce);
 	}
 
-invalidate_exit:
-	list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
-		iommu_tce_kill(stit->tbl, entry, npages);
-
 unlock_exit:
 	srcu_read_unlock(&vcpu->kvm->srcu, idx);
 
@@ -725,20 +740,16 @@
 				continue;
 
 			if (ret == H_TOO_HARD)
-				goto invalidate_exit;
+				return ret;
 
 			WARN_ON_ONCE(1);
-			kvmppc_clear_tce(vcpu->kvm->mm, stit->tbl, entry);
+			kvmppc_clear_tce(vcpu->kvm->mm, stt, stit->tbl, entry + i);
 		}
 	}
 
 	for (i = 0; i < npages; ++i, ioba += (1ULL << stt->page_shift))
 		kvmppc_tce_put(stt, ioba >> stt->page_shift, tce_value);
 
-invalidate_exit:
-	list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
-		iommu_tce_kill(stit->tbl, ioba >> stt->page_shift, npages);
-
 	return ret;
 }
 EXPORT_SYMBOL_GPL(kvmppc_h_stuff_tce);
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_64_vio_hv.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_64_vio_hv.c
@@ -177,10 +177,13 @@
 	idx -= stt->offset;
 	page = stt->pages[idx / TCES_PER_PAGE];
 	/*
-	 * page must not be NULL in real mode,
-	 * kvmppc_rm_ioba_validate() must have taken care of this.
+	 * kvmppc_rm_ioba_validate() allows pages not be allocated if TCE is
+	 * being cleared, otherwise it returns H_TOO_HARD and we skip this.
 	 */
-	WARN_ON_ONCE_RM(!page);
+	if (!page) {
+		WARN_ON_ONCE_RM(tce != 0);
+		return;
+	}
 	tbl = kvmppc_page_address(page);
 
 	tbl[idx % TCES_PER_PAGE] = tce;
@@ -248,13 +251,19 @@
 		tbl->it_ops->tce_kill(tbl, entry, pages, true);
 }
 
-static void kvmppc_rm_clear_tce(struct kvm *kvm, struct iommu_table *tbl,
-		unsigned long entry)
+static void kvmppc_rm_clear_tce(struct kvm *kvm, struct kvmppc_spapr_tce_table *stt,
+		struct iommu_table *tbl, unsigned long entry)
 {
-	unsigned long hpa = 0;
-	enum dma_data_direction dir = DMA_NONE;
+	unsigned long i;
+	unsigned long subpages = 1ULL << (stt->page_shift - tbl->it_page_shift);
+	unsigned long io_entry = entry << (stt->page_shift - tbl->it_page_shift);
+
+	for (i = 0; i < subpages; ++i) {
+		unsigned long hpa = 0;
+		enum dma_data_direction dir = DMA_NONE;
 
-	iommu_tce_xchg_no_kill_rm(kvm->mm, tbl, entry, &hpa, &dir);
+		iommu_tce_xchg_no_kill_rm(kvm->mm, tbl, io_entry + i, &hpa, &dir);
+	}
 }
 
 static long kvmppc_rm_tce_iommu_mapped_dec(struct kvm *kvm,
@@ -317,6 +326,8 @@
 			break;
 	}
 
+	iommu_tce_kill_rm(tbl, io_entry, subpages);
+
 	return ret;
 }
 
@@ -380,6 +391,8 @@
 			break;
 	}
 
+	iommu_tce_kill_rm(tbl, io_entry, subpages);
+
 	return ret;
 }
 
@@ -425,10 +438,8 @@
 			ret = kvmppc_rm_tce_iommu_map(vcpu->kvm, stt,
 					stit->tbl, entry, ua, dir);
 
-		iommu_tce_kill_rm(stit->tbl, entry, 1);
-
 		if (ret != H_SUCCESS) {
-			kvmppc_rm_clear_tce(vcpu->kvm, stit->tbl, entry);
+			kvmppc_rm_clear_tce(vcpu->kvm, stt, stit->tbl, entry);
 			return ret;
 		}
 	}
@@ -568,7 +579,7 @@
 		ua = 0;
 		if (kvmppc_rm_tce_to_ua(vcpu->kvm, tce, &ua, NULL)) {
 			ret = H_PARAMETER;
-			goto invalidate_exit;
+			goto unlock_exit;
 		}
 
 		list_for_each_entry_lockless(stit, &stt->iommu_tables, next) {
@@ -577,19 +588,15 @@
 					iommu_tce_direction(tce));
 
 			if (ret != H_SUCCESS) {
-				kvmppc_rm_clear_tce(vcpu->kvm, stit->tbl,
-						entry);
-				goto invalidate_exit;
+				kvmppc_rm_clear_tce(vcpu->kvm, stt, stit->tbl,
+						entry + i);
+				goto unlock_exit;
 			}
 		}
 
 		kvmppc_rm_tce_put(stt, entry + i, tce);
 	}
 
-invalidate_exit:
-	list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
-		iommu_tce_kill_rm(stit->tbl, entry, npages);
-
 unlock_exit:
 	if (rmap)
 		unlock_rmap(rmap);
@@ -632,20 +639,16 @@
 				continue;
 
 			if (ret == H_TOO_HARD)
-				goto invalidate_exit;
+				return ret;
 
 			WARN_ON_ONCE_RM(1);
-			kvmppc_rm_clear_tce(vcpu->kvm, stit->tbl, entry);
+			kvmppc_rm_clear_tce(vcpu->kvm, stt, stit->tbl, entry + i);
 		}
 	}
 
 	for (i = 0; i < npages; ++i, ioba += (1ULL << stt->page_shift))
 		kvmppc_rm_tce_put(stt, ioba >> stt->page_shift, tce_value);
 
-invalidate_exit:
-	list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
-		iommu_tce_kill_rm(stit->tbl, ioba >> stt->page_shift, npages);
-
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv.c
@@ -58,6 +58,7 @@
 #include <asm/kvm_book3s.h>
 #include <asm/mmu_context.h>
 #include <asm/lppaca.h>
+#include <asm/pmc.h>
 #include <asm/processor.h>
 #include <asm/cputhreads.h>
 #include <asm/page.h>
@@ -2306,8 +2307,10 @@
 		HFSCR_DSCR | HFSCR_VECVSX | HFSCR_FP;
 	if (cpu_has_feature(CPU_FTR_HVMODE)) {
 		vcpu->arch.hfscr &= mfspr(SPRN_HFSCR);
+#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
 		if (cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
 			vcpu->arch.hfscr |= HFSCR_TM;
+#endif
 	}
 	if (cpu_has_feature(CPU_FTR_TM_COMP))
 		vcpu->arch.hfscr |= HFSCR_TM;
@@ -2354,7 +2357,7 @@
 	mutex_unlock(&kvm->lock);
 
 	if (!vcore)
-		goto free_vcpu;
+		goto uninit_vcpu;
 
 	spin_lock(&vcore->lock);
 	++vcore->num_threads;
@@ -2371,6 +2374,8 @@
 
 	return vcpu;
 
+uninit_vcpu:
+	kvm_vcpu_uninit(vcpu);
 free_vcpu:
 	kmem_cache_free(kvm_vcpu_cache, vcpu);
 out:
@@ -2534,7 +2539,7 @@
 	cpumask_t *cpu_in_guest;
 	int i;
 
-	cpu = cpu_first_thread_sibling(cpu);
+	cpu = cpu_first_tlb_thread_sibling(cpu);
 	if (nested) {
 		cpumask_set_cpu(cpu, &nested->need_tlb_flush);
 		cpu_in_guest = &nested->cpu_in_guest;
@@ -2548,9 +2553,10 @@
 	 * the other side is the first smp_mb() in kvmppc_run_core().
 	 */
 	smp_mb();
-	for (i = 0; i < threads_per_core; ++i)
-		if (cpumask_test_cpu(cpu + i, cpu_in_guest))
-			smp_call_function_single(cpu + i, do_nothing, NULL, 1);
+	for (i = cpu; i <= cpu_last_tlb_thread_sibling(cpu);
+					i += cpu_tlb_thread_sibling_step())
+		if (cpumask_test_cpu(i, cpu_in_guest))
+			smp_call_function_single(i, do_nothing, NULL, 1);
 }
 
 static void kvmppc_prepare_radix_vcpu(struct kvm_vcpu *vcpu, int pcpu)
@@ -2581,8 +2587,8 @@
 	 */
 	if (prev_cpu != pcpu) {
 		if (prev_cpu >= 0 &&
-		    cpu_first_thread_sibling(prev_cpu) !=
-		    cpu_first_thread_sibling(pcpu))
+		    cpu_first_tlb_thread_sibling(prev_cpu) !=
+		    cpu_first_tlb_thread_sibling(pcpu))
 			radix_flush_cpu(kvm, prev_cpu, vcpu);
 		if (nested)
 			nested->prev_cpu[vcpu->arch.nested_vcpu_id] = pcpu;
@@ -3554,6 +3560,18 @@
 	    cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
 		kvmppc_restore_tm_hv(vcpu, vcpu->arch.shregs.msr, true);
 
+#ifdef CONFIG_PPC_PSERIES
+	if (kvmhv_on_pseries()) {
+		barrier();
+		if (vcpu->arch.vpa.pinned_addr) {
+			struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
+			get_lppaca()->pmcregs_in_use = lp->pmcregs_in_use;
+		} else {
+			get_lppaca()->pmcregs_in_use = 1;
+		}
+		barrier();
+	}
+#endif
 	kvmhv_load_guest_pmu(vcpu);
 
 	msr_check_and_set(MSR_FP | MSR_VEC | MSR_VSX);
@@ -3621,6 +3639,7 @@
 		if (trap == BOOK3S_INTERRUPT_SYSCALL && !vcpu->arch.nested &&
 		    kvmppc_get_gpr(vcpu, 3) == H_CEDE) {
 			kvmppc_nested_cede(vcpu);
+			kvmppc_set_gpr(vcpu, 3, 0);
 			trap = 0;
 		}
 	} else {
@@ -3635,7 +3654,10 @@
 	vcpu->arch.dec_expires = dec + tb;
 	vcpu->cpu = -1;
 	vcpu->arch.thread_cpu = -1;
+	/* Save guest CTRL register, set runlatch to 1 */
 	vcpu->arch.ctrl = mfspr(SPRN_CTRLF);
+	if (!(vcpu->arch.ctrl & 1))
+		mtspr(SPRN_CTRLT, vcpu->arch.ctrl | 1);
 
 	vcpu->arch.iamr = mfspr(SPRN_IAMR);
 	vcpu->arch.pspb = mfspr(SPRN_PSPB);
@@ -3684,6 +3706,13 @@
 	save_pmu |= nesting_enabled(vcpu->kvm);
 
 	kvmhv_save_guest_pmu(vcpu, save_pmu);
+#ifdef CONFIG_PPC_PSERIES
+	if (kvmhv_on_pseries()) {
+		barrier();
+		get_lppaca()->pmcregs_in_use = ppc_get_pmu_inuse();
+		barrier();
+	}
+#endif
 
 	vc->entry_exit_map = 0x101;
 	vc->in_guest = 0;
@@ -5188,6 +5217,12 @@
 	case KVM_PPC_ALLOCATE_HTAB: {
 		u32 htab_order;
 
+		/* If we're a nested hypervisor, we currently only support radix */
+		if (kvmhv_on_pseries()) {
+			r = -EOPNOTSUPP;
+			break;
+		}
+
 		r = -EFAULT;
 		if (get_user(htab_order, (u32 __user *)argp))
 			break;
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv_builtin.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -821,6 +821,7 @@
 				       "r" (0) : "memory");
 		}
 		asm volatile("ptesync": : :"memory");
+		// POWER9 congruence-class TLBIEL leaves ERAT. Flush it now.
 		asm volatile(PPC_RADIX_INVALIDATE_ERAT_GUEST : : :"memory");
 	} else {
 		for (set = 0; set < kvm->arch.tlb_sets; ++set) {
@@ -831,7 +832,9 @@
 			rb += PPC_BIT(51);	/* increment set number */
 		}
 		asm volatile("ptesync": : :"memory");
-		asm volatile(PPC_ISA_3_0_INVALIDATE_ERAT : : :"memory");
+		// POWER9 congruence-class TLBIEL leaves ERAT. Flush it now.
+		if (cpu_has_feature(CPU_FTR_ARCH_300))
+			asm volatile(PPC_ISA_3_0_INVALIDATE_ERAT : : :"memory");
 	}
 }
 
@@ -847,7 +850,7 @@
 	 * Thus we make all 4 threads use the same bit.
 	 */
 	if (cpu_has_feature(CPU_FTR_ARCH_300))
-		pcpu = cpu_first_thread_sibling(pcpu);
+		pcpu = cpu_first_tlb_thread_sibling(pcpu);
 
 	if (nested)
 		need_tlb_flush = &nested->need_tlb_flush;
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv_nested.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv_nested.c
@@ -51,7 +51,8 @@
 	hr->ppr = vcpu->arch.ppr;
 }
 
-static void byteswap_pt_regs(struct pt_regs *regs)
+/* Use noinline_for_stack due to https://bugs.llvm.org/show_bug.cgi?id=49610 */
+static noinline_for_stack void byteswap_pt_regs(struct pt_regs *regs)
 {
 	unsigned long *addr = (unsigned long *) regs;
 
@@ -231,6 +232,9 @@
 	if (vcpu->kvm->arch.l1_ptcr == 0)
 		return H_NOT_AVAILABLE;
 
+	if (MSR_TM_TRANSACTIONAL(vcpu->arch.shregs.msr))
+		return H_BAD_MODE;
+
 	/* copy parameters in */
 	hv_ptr = kvmppc_get_gpr(vcpu, 4);
 	err = kvm_vcpu_read_guest(vcpu, hv_ptr, &l2_hv,
@@ -252,6 +256,23 @@
 	if (l2_hv.vcpu_token >= NR_CPUS)
 		return H_PARAMETER;
 
+	/*
+	 * L1 must have set up a suspended state to enter the L2 in a
+	 * transactional state, and only in that case. These have to be
+	 * filtered out here to prevent causing a TM Bad Thing in the
+	 * host HRFID. We could synthesize a TM Bad Thing back to the L1
+	 * here but there doesn't seem like much point.
+	 */
+	if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) {
+		if (!MSR_TM_ACTIVE(l2_regs.msr))
+			return H_BAD_MODE;
+	} else {
+		if (l2_regs.msr & MSR_TS_MASK)
+			return H_BAD_MODE;
+		if (WARN_ON_ONCE(vcpu->arch.shregs.msr & MSR_TS_MASK))
+			return H_BAD_MODE;
+	}
+
 	/* translate lpid */
 	l2 = kvmhv_get_nested(vcpu->kvm, l2_hv.lpid, true);
 	if (!l2)
@@ -489,7 +510,7 @@
 	if (eaddr & (0xFFFUL << 52))
 		return H_PARAMETER;
 
-	buf = kzalloc(n, GFP_KERNEL);
+	buf = kzalloc(n, GFP_KERNEL | __GFP_NOWARN);
 	if (!buf)
 		return H_NO_MEM;
 
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv_rm_mmu.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv_rm_mmu.c
@@ -67,7 +67,7 @@
 		 * so use the bit for the first thread to represent the core.
 		 */
 		if (cpu_has_feature(CPU_FTR_ARCH_300))
-			cpu = cpu_first_thread_sibling(cpu);
+			cpu = cpu_first_tlb_thread_sibling(cpu);
 		cpumask_clear_cpu(cpu, &kvm->arch.need_tlb_flush);
 	}
 
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -11,6 +11,7 @@
  */
 
 #include <asm/ppc_asm.h>
+#include <asm/code-patching-asm.h>
 #include <asm/kvm_asm.h>
 #include <asm/reg.h>
 #include <asm/mmu.h>
@@ -291,13 +292,16 @@
  * r3 contains the SRR1 wakeup value, SRR1 is trashed.
  */
 _GLOBAL(idle_kvm_start_guest)
-	ld	r4,PACAEMERGSP(r13)
 	mfcr	r5
 	mflr	r0
-	std	r1,0(r4)
-	std	r5,8(r4)
-	std	r0,16(r4)
-	subi	r1,r4,STACK_FRAME_OVERHEAD
+	std	r5, 8(r1)	// Save CR in caller's frame
+	std	r0, 16(r1)	// Save LR in caller's frame
+	// Create frame on emergency stack
+	ld	r4, PACAEMERGSP(r13)
+	stdu	r1, -SWITCH_FRAME_SIZE(r4)
+	// Switch to new frame on emergency stack
+	mr	r1, r4
+	std	r3, 32(r1)	// Save SRR1 wakeup value
 	SAVE_NVGPRS(r1)
 
 	/*
@@ -349,6 +353,10 @@
 
 kvm_secondary_got_guest:
 
+	// About to go to guest, clear saved SRR1
+	li	r0, 0
+	std	r0, 32(r1)
+
 	/* Set HSTATE_DSCR(r13) to something sensible */
 	ld	r6, PACA_DSCR_DEFAULT(r13)
 	std	r6, HSTATE_DSCR(r13)
@@ -440,13 +448,12 @@
 	mfspr	r4, SPRN_LPCR
 	rlwimi	r4, r3, 0, LPCR_PECE0 | LPCR_PECE1
 	mtspr	SPRN_LPCR, r4
-	/* set up r3 for return */
-	mfspr	r3,SPRN_SRR1
+	// Return SRR1 wakeup value, or 0 if we went into the guest
+	ld	r3, 32(r1)
 	REST_NVGPRS(r1)
-	addi	r1, r1, STACK_FRAME_OVERHEAD
-	ld	r0, 16(r1)
-	ld	r5, 8(r1)
-	ld	r1, 0(r1)
+	ld	r1, 0(r1)	// Switch back to caller stack
+	ld	r0, 16(r1)	// Reload LR
+	ld	r5, 8(r1)	// Reload CR
 	mtlr	r0
 	mtcr	r5
 	blr
@@ -1116,7 +1123,7 @@
 	ld	r7, VCPU_GPR(R7)(r4)
 	bne	ret_to_ultra
 
-	lwz	r0, VCPU_CR(r4)
+	ld	r0, VCPU_CR(r4)
 	mtcr	r0
 
 	ld	r0, VCPU_GPR(R0)(r4)
@@ -1136,7 +1143,7 @@
  *   R3 = UV_RETURN
  */
 ret_to_ultra:
-	lwz	r0, VCPU_CR(r4)
+	ld	r0, VCPU_CR(r4)
 	mtcr	r0
 
 	ld	r0, VCPU_GPR(R3)(r4)
@@ -1487,6 +1494,13 @@
 1:
 #endif /* CONFIG_KVM_XICS */
 
+	/*
+	 * Possibly flush the link stack here, before we do a blr in
+	 * guest_exit_short_path.
+	 */
+1:	nop
+	patch_site 1b patch__call_kvm_flush_link_stack
+
 	/* If we came in through the P9 short path, go back out to C now */
 	lwz	r0, STACK_SLOT_SHORT_PATH(r1)
 	cmpwi	r0, 0
@@ -1963,6 +1977,28 @@
 	mtlr	r0
 	blr
 
+.balign 32
+.global kvm_flush_link_stack
+kvm_flush_link_stack:
+	/* Save LR into r0 */
+	mflr	r0
+
+	/* Flush the link stack. On Power8 it's up to 32 entries in size. */
+	.rept 32
+	bl	.+4
+	.endr
+
+	/* And on Power9 it's up to 64. */
+BEGIN_FTR_SECTION
+	.rept 32
+	bl	.+4
+	.endr
+END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
+
+	/* Restore LR */
+	mtlr	r0
+	blr
+
 kvmppc_guest_external:
 	/* External interrupt, first check for host_ipi. If this is
 	 * set, we know the host wants us out so let's do it now
@@ -2499,7 +2535,7 @@
 	.globl	hcall_real_table_end
 hcall_real_table_end:
 
-_GLOBAL(kvmppc_h_set_xdabr)
+_GLOBAL_TOC(kvmppc_h_set_xdabr)
 EXPORT_SYMBOL_GPL(kvmppc_h_set_xdabr)
 	andi.	r0, r5, DABRX_USER | DABRX_KERNEL
 	beq	6f
@@ -2509,7 +2545,7 @@
 6:	li	r3, H_PARAMETER
 	blr
 
-_GLOBAL(kvmppc_h_set_dabr)
+_GLOBAL_TOC(kvmppc_h_set_dabr)
 EXPORT_SYMBOL_GPL(kvmppc_h_set_dabr)
 	li	r5, DABRX_USER | DABRX_KERNEL
 3:
@@ -3107,7 +3143,7 @@
 	/* The following code handles the fake_suspend = 1 case */
 	mflr	r0
 	std	r0, PPC_LR_STKOFF(r1)
-	stdu	r1, -PPC_MIN_STKFRM(r1)
+	stdu	r1, -TM_FRAME_SIZE(r1)
 
 	/* Turn on TM. */
 	mfmsr	r8
@@ -3122,10 +3158,42 @@
 END_FTR_SECTION_IFSET(CPU_FTR_P9_TM_XER_SO_BUG)
 	nop
 
+	/*
+	 * It's possible that treclaim. may modify registers, if we have lost
+	 * track of fake-suspend state in the guest due to it using rfscv.
+	 * Save and restore registers in case this occurs.
+	 */
+	mfspr	r3, SPRN_DSCR
+	mfspr	r4, SPRN_XER
+	mfspr	r5, SPRN_AMR
+	/* SPRN_TAR would need to be saved here if the kernel ever used it */
+	mfcr	r12
+	SAVE_NVGPRS(r1)
+	SAVE_GPR(2, r1)
+	SAVE_GPR(3, r1)
+	SAVE_GPR(4, r1)
+	SAVE_GPR(5, r1)
+	stw	r12, 8(r1)
+	std	r1, HSTATE_HOST_R1(r13)
+
 	/* We have to treclaim here because that's the only way to do S->N */
 	li	r3, TM_CAUSE_KVM_RESCHED
 	TRECLAIM(R3)
 
+	GET_PACA(r13)
+	ld	r1, HSTATE_HOST_R1(r13)
+	REST_GPR(2, r1)
+	REST_GPR(3, r1)
+	REST_GPR(4, r1)
+	REST_GPR(5, r1)
+	lwz	r12, 8(r1)
+	REST_NVGPRS(r1)
+	mtspr	SPRN_DSCR, r3
+	mtspr	SPRN_XER, r4
+	mtspr	SPRN_AMR, r5
+	mtcr	r12
+	HMT_MEDIUM
+
 	/*
 	 * We were in fake suspend, so we are not going to save the
 	 * register state as the guest checkpointed state (since
@@ -3153,7 +3221,7 @@
 	std	r5, VCPU_TFHAR(r9)
 	std	r6, VCPU_TFIAR(r9)
 
-	addi	r1, r1, PPC_MIN_STKFRM
+	addi	r1, r1, TM_FRAME_SIZE
 	ld	r0, PPC_LR_STKOFF(r1)
 	mtlr	r0
 	blr
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv_tm.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv_tm.c
@@ -3,6 +3,8 @@
  * Copyright 2017 Paul Mackerras, IBM Corp. <paulus@au1.ibm.com>
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kvm_host.h>
 
 #include <asm/kvm_ppc.h>
@@ -44,7 +46,18 @@
 	u64 newmsr, bescr;
 	int ra, rs;
 
-	switch (instr & 0xfc0007ff) {
+	/*
+	 * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
+	 * in these instructions, so masking bit 31 out doesn't change these
+	 * instructions. For treclaim., tsr., and trechkpt. instructions if bit
+	 * 31 = 0 then they are per ISA invalid forms, however P9 UM, in section
+	 * 4.6.10 Book II Invalid Forms, informs specifically that ignoring bit
+	 * 31 is an acceptable way to handle these invalid forms that have
+	 * bit 31 = 0. Moreover, for emulation purposes both forms (w/ and wo/
+	 * bit 31 set) can generate a softpatch interrupt. Hence both forms
+	 * are handled below for these instructions so they behave the same way.
+	 */
+	switch (instr & PO_XOP_OPCODE_MASK) {
 	case PPC_INST_RFID:
 		/* XXX do we need to check for PR=0 here? */
 		newmsr = vcpu->arch.shregs.srr1;
@@ -105,7 +118,8 @@
 		vcpu->arch.shregs.msr = newmsr;
 		return RESUME_GUEST;
 
-	case PPC_INST_TSR:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TSR & PO_XOP_OPCODE_MASK):
 		/* check for PR=1 and arch 2.06 bit set in PCR */
 		if ((msr & MSR_PR) && (vcpu->arch.vcore->pcr & PCR_ARCH_206)) {
 			/* generate an illegal instruction interrupt */
@@ -140,7 +154,8 @@
 		vcpu->arch.shregs.msr = msr;
 		return RESUME_GUEST;
 
-	case PPC_INST_TRECLAIM:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TRECLAIM & PO_XOP_OPCODE_MASK):
 		/* check for TM disabled in the HFSCR or MSR */
 		if (!(vcpu->arch.hfscr & HFSCR_TM)) {
 			/* generate an illegal instruction interrupt */
@@ -176,7 +191,8 @@
 		vcpu->arch.shregs.msr &= ~MSR_TS_MASK;
 		return RESUME_GUEST;
 
-	case PPC_INST_TRECHKPT:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TRECHKPT & PO_XOP_OPCODE_MASK):
 		/* XXX do we need to check for PR=0 here? */
 		/* check for TM disabled in the HFSCR or MSR */
 		if (!(vcpu->arch.hfscr & HFSCR_TM)) {
@@ -208,6 +224,8 @@
 	}
 
 	/* What should we do here? We didn't recognize the instruction */
-	WARN_ON_ONCE(1);
+	kvmppc_core_queue_program(vcpu, SRR1_PROGILL);
+	pr_warn_ratelimited("Unrecognized TM-related instruction %#x for emulation", instr);
+
 	return RESUME_GUEST;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_hv_tm_builtin.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_hv_tm_builtin.c
@@ -23,7 +23,18 @@
 	u64 newmsr, msr, bescr;
 	int rs;
 
-	switch (instr & 0xfc0007ff) {
+	/*
+	 * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
+	 * in these instructions, so masking bit 31 out doesn't change these
+	 * instructions. For the tsr. instruction if bit 31 = 0 then it is per
+	 * ISA an invalid form, however P9 UM, in section 4.6.10 Book II Invalid
+	 * Forms, informs specifically that ignoring bit 31 is an acceptable way
+	 * to handle TM-related invalid forms that have bit 31 = 0. Moreover,
+	 * for emulation purposes both forms (w/ and wo/ bit 31 set) can
+	 * generate a softpatch interrupt. Hence both forms are handled below
+	 * for tsr. to make them behave the same way.
+	 */
+	switch (instr & PO_XOP_OPCODE_MASK) {
 	case PPC_INST_RFID:
 		/* XXX do we need to check for PR=0 here? */
 		newmsr = vcpu->arch.shregs.srr1;
@@ -73,7 +84,8 @@
 		vcpu->arch.shregs.msr = newmsr;
 		return 1;
 
-	case PPC_INST_TSR:
+	/* ignore bit 31, see comment above */
+	case (PPC_INST_TSR & PO_XOP_OPCODE_MASK):
 		/* we know the MSR has the TS field = S (0b01) here */
 		msr = vcpu->arch.shregs.msr;
 		/* check for PR=1 and arch 2.06 bit set in PCR */
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_pr.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_pr.c
@@ -1769,10 +1769,12 @@
 
 	err = kvmppc_mmu_init(vcpu);
 	if (err < 0)
-		goto uninit_vcpu;
+		goto free_shared_page;
 
 	return vcpu;
 
+free_shared_page:
+	free_page((unsigned long)vcpu->arch.shared);
 uninit_vcpu:
 	kvm_vcpu_uninit(vcpu);
 free_shadow_vcpu:
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_rtas.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_rtas.c
@@ -240,6 +240,17 @@
 	 * value so we can restore it on the way out.
 	 */
 	orig_rets = args.rets;
+	if (be32_to_cpu(args.nargs) >= ARRAY_SIZE(args.args)) {
+		/*
+		 * Don't overflow our args array: ensure there is room for
+		 * at least rets[0] (even if the call specifies 0 nret).
+		 *
+		 * Each handler must then check for the correct nargs and nret
+		 * values, but they may always return failure in rets[0].
+		 */
+		rc = -EINVAL;
+		goto fail;
+	}
 	args.rets = &args.args[be32_to_cpu(args.nargs)];
 
 	mutex_lock(&vcpu->kvm->arch.rtas_token_lock);
@@ -267,9 +278,17 @@
 fail:
 	/*
 	 * We only get here if the guest has called RTAS with a bogus
-	 * args pointer. That means we can't get to the args, and so we
-	 * can't fail the RTAS call. So fail right out to userspace,
-	 * which should kill the guest.
+	 * args pointer or nargs/nret values that would overflow the
+	 * array. That means we can't get to the args, and so we can't
+	 * fail the RTAS call. So fail right out to userspace, which
+	 * should kill the guest.
+	 *
+	 * SLOF should actually pass the hcall return value from the
+	 * rtas handler call in r3, so enter_rtas could be modified to
+	 * return a failure indication in r3 and we could return such
+	 * errors to the guest rather than failing to host userspace.
+	 * However old guests that don't test for failure could then
+	 * continue silently after errors, so for now we won't do this.
 	 */
 	return rc;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_xive.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_xive.c
@@ -2005,6 +2005,10 @@
 
 	pr_devel("Creating xive for partition\n");
 
+	/* Already there ? */
+	if (kvm->arch.xive)
+		return -EEXIST;
+
 	xive = kvmppc_xive_get_device(kvm, type);
 	if (!xive)
 		return -ENOMEM;
@@ -2014,12 +2018,6 @@
 	xive->kvm = kvm;
 	mutex_init(&xive->lock);
 
-	/* Already there ? */
-	if (kvm->arch.xive)
-		ret = -EEXIST;
-	else
-		kvm->arch.xive = xive;
-
 	/* We use the default queue size set by the host */
 	xive->q_order = xive_native_default_eq_shift();
 	if (xive->q_order < PAGE_SHIFT)
@@ -2039,6 +2037,7 @@
 	if (ret)
 		return ret;
 
+	kvm->arch.xive = xive;
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/book3s_xive_native.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/book3s_xive_native.c
@@ -50,6 +50,24 @@
 	}
 }
 
+static int kvmppc_xive_native_configure_queue(u32 vp_id, struct xive_q *q,
+					      u8 prio, __be32 *qpage,
+					      u32 order, bool can_escalate)
+{
+	int rc;
+	__be32 *qpage_prev = q->qpage;
+
+	rc = xive_native_configure_queue(vp_id, q, prio, qpage, order,
+					 can_escalate);
+	if (rc)
+		return rc;
+
+	if (qpage_prev)
+		put_page(virt_to_page(qpage_prev));
+
+	return rc;
+}
+
 void kvmppc_xive_native_cleanup_vcpu(struct kvm_vcpu *vcpu)
 {
 	struct kvmppc_xive_vcpu *xc = vcpu->arch.xive_vcpu;
@@ -234,6 +252,13 @@
 	}
 
 	state = &sb->irq_state[src];
+
+	/* Some sanity checking */
+	if (!state->valid) {
+		pr_devel("%s: source %lx invalid !\n", __func__, irq);
+		return VM_FAULT_SIGBUS;
+	}
+
 	kvmppc_xive_select_irq(state, &hw_num, &xd);
 
 	arch_spin_lock(&sb->lock);
@@ -582,19 +607,14 @@
 		q->guest_qaddr  = 0;
 		q->guest_qshift = 0;
 
-		rc = xive_native_configure_queue(xc->vp_id, q, priority,
-						 NULL, 0, true);
+		rc = kvmppc_xive_native_configure_queue(xc->vp_id, q, priority,
+							NULL, 0, true);
 		if (rc) {
 			pr_err("Failed to reset queue %d for VCPU %d: %d\n",
 			       priority, xc->server_num, rc);
 			return rc;
 		}
 
-		if (q->qpage) {
-			put_page(virt_to_page(q->qpage));
-			q->qpage = NULL;
-		}
-
 		return 0;
 	}
 
@@ -624,17 +644,18 @@
 
 	srcu_idx = srcu_read_lock(&kvm->srcu);
 	gfn = gpa_to_gfn(kvm_eq.qaddr);
-	page = gfn_to_page(kvm, gfn);
-	if (is_error_page(page)) {
+
+	page_size = kvm_host_page_size(vcpu, gfn);
+	if (1ull << kvm_eq.qshift > page_size) {
 		srcu_read_unlock(&kvm->srcu, srcu_idx);
-		pr_err("Couldn't get queue page %llx!\n", kvm_eq.qaddr);
+		pr_warn("Incompatible host page size %lx!\n", page_size);
 		return -EINVAL;
 	}
 
-	page_size = kvm_host_page_size(kvm, gfn);
-	if (1ull << kvm_eq.qshift > page_size) {
+	page = gfn_to_page(kvm, gfn);
+	if (is_error_page(page)) {
 		srcu_read_unlock(&kvm->srcu, srcu_idx);
-		pr_warn("Incompatible host page size %lx!\n", page_size);
+		pr_err("Couldn't get queue page %llx!\n", kvm_eq.qaddr);
 		return -EINVAL;
 	}
 
@@ -653,8 +674,8 @@
 	  * OPAL level because the use of END ESBs is not supported by
 	  * Linux.
 	  */
-	rc = xive_native_configure_queue(xc->vp_id, q, priority,
-					 (__be32 *) qaddr, kvm_eq.qshift, true);
+	rc = kvmppc_xive_native_configure_queue(xc->vp_id, q, priority,
+					(__be32 *) qaddr, kvm_eq.qshift, true);
 	if (rc) {
 		pr_err("Failed to configure queue %d for VCPU %d: %d\n",
 		       priority, xc->server_num, rc);
@@ -1081,7 +1102,6 @@
 	dev->private = xive;
 	xive->dev = dev;
 	xive->kvm = kvm;
-	kvm->arch.xive = xive;
 	mutex_init(&xive->mapping_lock);
 	mutex_init(&xive->lock);
 
@@ -1102,6 +1122,7 @@
 	if (ret)
 		return ret;
 
+	kvm->arch.xive = xive;
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/e500_mmu_host.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/e500_mmu_host.c
@@ -734,7 +734,8 @@
 	return 0;
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	/* kvm_unmap_hva flushes everything anyways */
 	kvm_unmap_hva(kvm, start);
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/emulate_loadstore.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/emulate_loadstore.c
@@ -73,7 +73,6 @@
 {
 	struct kvm_run *run = vcpu->run;
 	u32 inst;
-	int ra, rs, rt;
 	enum emulation_result emulated = EMULATE_FAIL;
 	int advance = 1;
 	struct instruction_op op;
@@ -85,10 +84,6 @@
 	if (emulated != EMULATE_DONE)
 		return emulated;
 
-	ra = get_ra(inst);
-	rs = get_rs(inst);
-	rt = get_rt(inst);
-
 	vcpu->arch.mmio_vsx_copy_nums = 0;
 	vcpu->arch.mmio_vsx_offset = 0;
 	vcpu->arch.mmio_copy_type = KVMPPC_VSX_COPY_NONE;
--- linux-ein-5.4.0.orig/arch/powerpc/kvm/powerpc.c
+++ linux-ein-5.4.0/arch/powerpc/kvm/powerpc.c
@@ -1495,7 +1495,7 @@
 {
 	enum emulation_result emulated = EMULATE_DONE;
 
-	if (vcpu->arch.mmio_vsx_copy_nums > 2)
+	if (vcpu->arch.mmio_vmx_copy_nums > 2)
 		return EMULATE_FAIL;
 
 	while (vcpu->arch.mmio_vmx_copy_nums) {
@@ -1513,7 +1513,7 @@
 	return emulated;
 }
 
-int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1531,7 +1531,7 @@
 	return result;
 }
 
-int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1549,7 +1549,7 @@
 	return result;
 }
 
-int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1567,7 +1567,7 @@
 	return result;
 }
 
-int kvmppc_get_vmx_byte(struct kvm_vcpu *vcpu, int index, u64 *val)
+static int kvmppc_get_vmx_byte(struct kvm_vcpu *vcpu, int index, u64 *val)
 {
 	union kvmppc_one_reg reg;
 	int vmx_offset = 0;
@@ -1592,7 +1592,7 @@
 	unsigned int index = rs & KVM_MMIO_REG_MASK;
 	enum emulation_result emulated = EMULATE_DONE;
 
-	if (vcpu->arch.mmio_vsx_copy_nums > 2)
+	if (vcpu->arch.mmio_vmx_copy_nums > 2)
 		return EMULATE_FAIL;
 
 	vcpu->arch.io_gpr = rs;
@@ -2035,9 +2035,9 @@
 	{
 		struct kvm_enable_cap cap;
 		r = -EFAULT;
-		vcpu_load(vcpu);
 		if (copy_from_user(&cap, argp, sizeof(cap)))
 			goto out;
+		vcpu_load(vcpu);
 		r = kvm_vcpu_ioctl_enable_cap(vcpu, &cap);
 		vcpu_put(vcpu);
 		break;
@@ -2061,9 +2061,9 @@
 	case KVM_DIRTY_TLB: {
 		struct kvm_dirty_tlb dirty;
 		r = -EFAULT;
-		vcpu_load(vcpu);
 		if (copy_from_user(&dirty, argp, sizeof(dirty)))
 			goto out;
+		vcpu_load(vcpu);
 		r = kvm_vcpu_ioctl_dirty_tlb(vcpu, &dirty);
 		vcpu_put(vcpu);
 		break;
--- linux-ein-5.4.0.orig/arch/powerpc/lib/Makefile
+++ linux-ein-5.4.0/arch/powerpc/lib/Makefile
@@ -16,6 +16,9 @@
 CFLAGS_feature-fixups.o += -DDISABLE_BRANCH_PROFILING
 endif
 
+CFLAGS_code-patching.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
+CFLAGS_feature-fixups.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
+
 obj-y += alloc.o code-patching.o feature-fixups.o pmem.o
 
 ifndef CONFIG_KASAN
--- linux-ein-5.4.0.orig/arch/powerpc/lib/code-patching.c
+++ linux-ein-5.4.0/arch/powerpc/lib/code-patching.c
@@ -221,6 +221,11 @@
 	return (offset >= -0x2000000 && offset <= 0x1fffffc && !(offset & 0x3));
 }
 
+bool is_offset_in_cond_branch_range(long offset)
+{
+	return offset >= -0x8000 && offset <= 0x7fff && !(offset & 0x3);
+}
+
 /*
  * Helper to check if a given instruction is a conditional branch
  * Derived from the conditional checks in analyse_instr()
@@ -274,7 +279,7 @@
 		offset = offset - (unsigned long)addr;
 
 	/* Check we can represent the target in the instruction format */
-	if (offset < -0x8000 || offset > 0x7FFF || offset & 0x3)
+	if (!is_offset_in_cond_branch_range(offset))
 		return 0;
 
 	/* Mask out the flags and target, so they don't step on each other. */
--- linux-ein-5.4.0.orig/arch/powerpc/lib/feature-fixups.c
+++ linux-ein-5.4.0/arch/powerpc/lib/feature-fixups.c
@@ -14,6 +14,7 @@
 #include <linux/string.h>
 #include <linux/init.h>
 #include <linux/sched/mm.h>
+#include <linux/stop_machine.h>
 #include <asm/cputable.h>
 #include <asm/code-patching.h>
 #include <asm/page.h>
@@ -221,11 +222,143 @@
 		                                           : "unknown");
 }
 
+static int __do_stf_barrier_fixups(void *data)
+{
+	enum stf_barrier_type *types = data;
+
+	do_stf_entry_barrier_fixups(*types);
+	do_stf_exit_barrier_fixups(*types);
+
+	return 0;
+}
 
 void do_stf_barrier_fixups(enum stf_barrier_type types)
 {
-	do_stf_entry_barrier_fixups(types);
-	do_stf_exit_barrier_fixups(types);
+	/*
+	 * The call to the fallback entry flush, and the fallback/sync-ori exit
+	 * flush can not be safely patched in/out while other CPUs are executing
+	 * them. So call __do_stf_barrier_fixups() on one CPU while all other CPUs
+	 * spin in the stop machine core with interrupts hard disabled.
+	 */
+	stop_machine(__do_stf_barrier_fixups, &types, NULL);
+}
+
+void do_uaccess_flush_fixups(enum l1d_flush_type types)
+{
+	unsigned int instrs[4], *dest;
+	long *start, *end;
+	int i;
+
+	start = PTRRELOC(&__start___uaccess_flush_fixup);
+	end = PTRRELOC(&__stop___uaccess_flush_fixup);
+
+	instrs[0] = 0x60000000; /* nop */
+	instrs[1] = 0x60000000; /* nop */
+	instrs[2] = 0x60000000; /* nop */
+	instrs[3] = 0x4e800020; /* blr */
+
+	i = 0;
+	if (types == L1D_FLUSH_FALLBACK) {
+		instrs[3] = 0x60000000; /* nop */
+		/* fallthrough to fallback flush */
+	}
+
+	if (types & L1D_FLUSH_ORI) {
+		instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */
+		instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/
+	}
+
+	if (types & L1D_FLUSH_MTTRIG)
+		instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */
+
+	for (i = 0; start < end; start++, i++) {
+		dest = (void *)start + *start;
+
+		pr_devel("patching dest %lx\n", (unsigned long)dest);
+
+		patch_instruction(dest, instrs[0]);
+
+		patch_instruction((dest + 1), instrs[1]);
+		patch_instruction((dest + 2), instrs[2]);
+		patch_instruction((dest + 3), instrs[3]);
+	}
+
+	printk(KERN_DEBUG "uaccess-flush: patched %d locations (%s flush)\n", i,
+		(types == L1D_FLUSH_NONE)       ? "no" :
+		(types == L1D_FLUSH_FALLBACK)   ? "fallback displacement" :
+		(types &  L1D_FLUSH_ORI)        ? (types & L1D_FLUSH_MTTRIG)
+							? "ori+mttrig type"
+							: "ori type" :
+		(types &  L1D_FLUSH_MTTRIG)     ? "mttrig type"
+						: "unknown");
+}
+
+static int __do_entry_flush_fixups(void *data)
+{
+	enum l1d_flush_type types = *(enum l1d_flush_type *)data;
+	unsigned int instrs[3], *dest;
+	long *start, *end;
+	int i;
+
+	start = PTRRELOC(&__start___entry_flush_fixup);
+	end = PTRRELOC(&__stop___entry_flush_fixup);
+
+	instrs[0] = 0x60000000; /* nop */
+	instrs[1] = 0x60000000; /* nop */
+	instrs[2] = 0x60000000; /* nop */
+
+	i = 0;
+	if (types == L1D_FLUSH_FALLBACK) {
+		instrs[i++] = 0x7d4802a6; /* mflr r10		*/
+		instrs[i++] = 0x60000000; /* branch patched below */
+		instrs[i++] = 0x7d4803a6; /* mtlr r10		*/
+	}
+
+	if (types & L1D_FLUSH_ORI) {
+		instrs[i++] = 0x63ff0000; /* ori 31,31,0 speculation barrier */
+		instrs[i++] = 0x63de0000; /* ori 30,30,0 L1d flush*/
+	}
+
+	if (types & L1D_FLUSH_MTTRIG)
+		instrs[i++] = 0x7c12dba6; /* mtspr TRIG2,r0 (SPR #882) */
+
+	for (i = 0; start < end; start++, i++) {
+		dest = (void *)start + *start;
+
+		pr_devel("patching dest %lx\n", (unsigned long)dest);
+
+		patch_instruction(dest, instrs[0]);
+
+		if (types == L1D_FLUSH_FALLBACK)
+			patch_branch((dest + 1), (unsigned long)&entry_flush_fallback,
+				     BRANCH_SET_LINK);
+		else
+			patch_instruction((dest + 1), instrs[1]);
+
+		patch_instruction((dest + 2), instrs[2]);
+	}
+
+	printk(KERN_DEBUG "entry-flush: patched %d locations (%s flush)\n", i,
+		(types == L1D_FLUSH_NONE)       ? "no" :
+		(types == L1D_FLUSH_FALLBACK)   ? "fallback displacement" :
+		(types &  L1D_FLUSH_ORI)        ? (types & L1D_FLUSH_MTTRIG)
+							? "ori+mttrig type"
+							: "ori type" :
+		(types &  L1D_FLUSH_MTTRIG)     ? "mttrig type"
+						: "unknown");
+
+	return 0;
+}
+
+void do_entry_flush_fixups(enum l1d_flush_type types)
+{
+	/*
+	 * The call to the fallback flush can not be safely patched in/out while
+	 * other CPUs are executing it. So call __do_entry_flush_fixups() on one
+	 * CPU while all other CPUs spin in the stop machine core with interrupts
+	 * hard disabled.
+	 */
+	stop_machine(__do_entry_flush_fixups, &types, NULL);
 }
 
 void do_rfi_flush_fixups(enum l1d_flush_type types)
--- linux-ein-5.4.0.orig/arch/powerpc/lib/sstep.c
+++ linux-ein-5.4.0/arch/powerpc/lib/sstep.c
@@ -8,6 +8,7 @@
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/prefetch.h>
+#include <asm/cpu_has_feature.h>
 #include <asm/sstep.h>
 #include <asm/processor.h>
 #include <linux/uaccess.h>
@@ -906,7 +907,10 @@
 
 #define __put_user_asmx(x, addr, err, op, cr)		\
 	__asm__ __volatile__(				\
+		".machine push\n"			\
+		".machine power8\n"			\
 		"1:	" op " %2,0,%3\n"		\
+		".machine pop\n"			\
 		"	mfcr	%1\n"			\
 		"2:\n"					\
 		".section .fixup,\"ax\"\n"		\
@@ -919,7 +923,10 @@
 
 #define __get_user_asmx(x, addr, err, op)		\
 	__asm__ __volatile__(				\
+		".machine push\n"			\
+		".machine power8\n"			\
 		"1:	"op" %1,0,%2\n"			\
+		".machine pop\n"			\
 		"2:\n"					\
 		".section .fixup,\"ax\"\n"		\
 		"3:	li	%0,%3\n"		\
@@ -2787,12 +2794,14 @@
 		case BARRIER_EIEIO:
 			eieio();
 			break;
+#ifdef CONFIG_PPC64
 		case BARRIER_LWSYNC:
 			asm volatile("lwsync" : : : "memory");
 			break;
 		case BARRIER_PTESYNC:
 			asm volatile("ptesync" : : : "memory");
 			break;
+#endif
 		}
 		break;
 
@@ -2910,7 +2919,7 @@
 			__put_user_asmx(op->val, ea, err, "stbcx.", cr);
 			break;
 		case 2:
-			__put_user_asmx(op->val, ea, err, "stbcx.", cr);
+			__put_user_asmx(op->val, ea, err, "sthcx.", cr);
 			break;
 #endif
 		case 4:
--- linux-ein-5.4.0.orig/arch/powerpc/lib/string_32.S
+++ linux-ein-5.4.0/arch/powerpc/lib/string_32.S
@@ -17,7 +17,7 @@
 LG_CACHELINE_BYTES = L1_CACHE_SHIFT
 CACHELINE_MASK = (L1_CACHE_BYTES-1)
 
-_GLOBAL(__clear_user)
+_GLOBAL(__arch_clear_user)
 /*
  * Use dcbz on the complete cache lines in the destination
  * to set them to zero.  This requires that the destination
@@ -87,4 +87,4 @@
 	EX_TABLE(8b, 91b)
 	EX_TABLE(9b, 91b)
 
-EXPORT_SYMBOL(__clear_user)
+EXPORT_SYMBOL(__arch_clear_user)
--- linux-ein-5.4.0.orig/arch/powerpc/lib/string_64.S
+++ linux-ein-5.4.0/arch/powerpc/lib/string_64.S
@@ -17,7 +17,7 @@
 	.section	".text"
 
 /**
- * __clear_user: - Zero a block of memory in user space, with less checking.
+ * __arch_clear_user: - Zero a block of memory in user space, with less checking.
  * @to:   Destination address, in user space.
  * @n:    Number of bytes to zero.
  *
@@ -58,7 +58,7 @@
 	mr	r3,r4
 	blr
 
-_GLOBAL_TOC(__clear_user)
+_GLOBAL_TOC(__arch_clear_user)
 	cmpdi	r4,32
 	neg	r6,r3
 	li	r0,0
@@ -181,4 +181,4 @@
 	cmpdi	r4,32
 	blt	.Lshort_clear
 	b	.Lmedium_clear
-EXPORT_SYMBOL(__clear_user)
+EXPORT_SYMBOL(__arch_clear_user)
--- linux-ein-5.4.0.orig/arch/powerpc/math-emu/math_efp.c
+++ linux-ein-5.4.0/arch/powerpc/math-emu/math_efp.c
@@ -17,6 +17,7 @@
 
 #include <linux/types.h>
 #include <linux/prctl.h>
+#include <linux/module.h>
 
 #include <linux/uaccess.h>
 #include <asm/reg.h>
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s32/mmu.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s32/mmu.c
@@ -187,6 +187,7 @@
 	int i;
 	unsigned long base = (unsigned long)_stext - PAGE_OFFSET;
 	unsigned long top = (unsigned long)_etext - PAGE_OFFSET;
+	unsigned long border = (unsigned long)__init_begin - PAGE_OFFSET;
 	unsigned long size;
 
 	if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
@@ -201,9 +202,10 @@
 		size = block_size(base, top);
 		size = max(size, 128UL << 10);
 		if ((top - base) > size) {
-			if (strict_kernel_rwx_enabled())
-				pr_warn("Kernel _etext not properly aligned\n");
 			size <<= 1;
+			if (strict_kernel_rwx_enabled() && base + size > border)
+				pr_warn("Some RW data is getting mapped X. "
+					"Adjust CONFIG_DATA_SHIFT to avoid that.\n");
 		}
 		setibat(i++, PAGE_OFFSET + base, base, size, PAGE_KERNEL_TEXT);
 		base += size;
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s64/hash_utils.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s64/hash_utils.c
@@ -294,10 +294,18 @@
 		ret = mmu_hash_ops.hpte_insert(hpteg, vpn, paddr, tprot,
 					       HPTE_V_BOLTED, psize, psize,
 					       ssize);
-
+		if (ret == -1) {
+			/* Try to remove a non bolted entry */
+			ret = mmu_hash_ops.hpte_remove(hpteg);
+			if (ret != -1)
+				ret = mmu_hash_ops.hpte_insert(hpteg, vpn, paddr, tprot,
+							       HPTE_V_BOLTED, psize, psize,
+							       ssize);
+		}
 		if (ret < 0)
 			break;
 
+		cond_resched();
 #ifdef CONFIG_DEBUG_PAGEALLOC
 		if (debug_pagealloc_enabled() &&
 			(paddr >> PAGE_SHIFT) < linear_map_hash_count)
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s64/iommu_api.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s64/iommu_api.c
@@ -121,24 +121,6 @@
 		goto free_exit;
 	}
 
-	pageshift = PAGE_SHIFT;
-	for (i = 0; i < entries; ++i) {
-		struct page *page = mem->hpages[i];
-
-		/*
-		 * Allow to use larger than 64k IOMMU pages. Only do that
-		 * if we are backed by hugetlb.
-		 */
-		if ((mem->pageshift > PAGE_SHIFT) && PageHuge(page))
-			pageshift = page_shift(compound_head(page));
-		mem->pageshift = min(mem->pageshift, pageshift);
-		/*
-		 * We don't need struct page reference any more, switch
-		 * to physical address.
-		 */
-		mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
-	}
-
 good_exit:
 	atomic64_set(&mem->mapped, 1);
 	mem->used = 1;
@@ -158,6 +140,27 @@
 		}
 	}
 
+	if (mem->dev_hpa == MM_IOMMU_TABLE_INVALID_HPA) {
+		/*
+		 * Allow to use larger than 64k IOMMU pages. Only do that
+		 * if we are backed by hugetlb. Skip device memory as it is not
+		 * backed with page structs.
+		 */
+		pageshift = PAGE_SHIFT;
+		for (i = 0; i < entries; ++i) {
+			struct page *page = mem->hpages[i];
+
+			if ((mem->pageshift > PAGE_SHIFT) && PageHuge(page))
+				pageshift = page_shift(compound_head(page));
+			mem->pageshift = min(mem->pageshift, pageshift);
+			/*
+			 * We don't need struct page reference any more, switch
+			 * to physical address.
+			 */
+			mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
+		}
+	}
+
 	list_add_rcu(&mem->next, &mm->context.iommu_group_mem_list);
 
 	mutex_unlock(&mem_list_mutex);
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s64/pgtable.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s64/pgtable.c
@@ -378,7 +378,6 @@
 	}
 }
 
-#ifdef CONFIG_SMP
 void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int index)
 {
 	unsigned long pgf = (unsigned long)table;
@@ -395,12 +394,6 @@
 
 	return pgtable_free(table, index);
 }
-#else
-void pgtable_free_tlb(struct mmu_gather *tlb, void *table, int index)
-{
-	return pgtable_free(table, index);
-}
-#endif
 
 #ifdef CONFIG_PROC_FS
 atomic_long_t direct_pages_count[MMU_PAGE_COUNT];
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s64/pkeys.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s64/pkeys.c
@@ -83,13 +83,17 @@
 	scan_pkey_feature();
 
 	/*
-	 * Let's assume 32 pkeys on P8 bare metal, if its not defined by device
-	 * tree. We make this exception since skiboot forgot to expose this
-	 * property on power8.
+	 * Let's assume 32 pkeys on P8/P9 bare metal, if its not defined by device
+	 * tree. We make this exception since some version of skiboot forgot to
+	 * expose this property on power8/9.
 	 */
-	if (!pkeys_devtree_defined && !firmware_has_feature(FW_FEATURE_LPAR) &&
-			cpu_has_feature(CPU_FTRS_POWER8))
-		pkeys_total = 32;
+	if (!pkeys_devtree_defined && !firmware_has_feature(FW_FEATURE_LPAR)) {
+		unsigned long pvr = mfspr(SPRN_PVR);
+
+		if (PVR_VER(pvr) == PVR_POWER8 || PVR_VER(pvr) == PVR_POWER8E ||
+		    PVR_VER(pvr) == PVR_POWER8NVL || PVR_VER(pvr) == PVR_POWER9)
+			pkeys_total = 32;
+	}
 
 	/*
 	 * Adjust the upper limit, based on the number of bits supported by
@@ -367,12 +371,14 @@
 		return true;
 
 	pkey_shift = pkeyshift(pkey);
-	if (execute && !(read_iamr() & (IAMR_EX_BIT << pkey_shift)))
-		return true;
+	if (execute)
+		return !(read_iamr() & (IAMR_EX_BIT << pkey_shift));
+
+	amr = read_amr();
+	if (write)
+		return !(amr & (AMR_WR_BIT << pkey_shift));
 
-	amr = read_amr(); /* Delay reading amr until absolutely needed */
-	return ((!write && !(amr & (AMR_RD_BIT << pkey_shift))) ||
-		(write &&  !(amr & (AMR_WR_BIT << pkey_shift))));
+	return !(amr & (AMR_RD_BIT << pkey_shift));
 }
 
 bool arch_pte_access_permitted(u64 pte, bool write, bool execute)
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -97,7 +97,7 @@
 
 set_the_pte:
 	set_pte_at(&init_mm, ea, ptep, pfn_pte(pfn, flags));
-	smp_wmb();
+	asm volatile("ptesync": : :"memory");
 	return 0;
 }
 
@@ -155,7 +155,7 @@
 
 set_the_pte:
 	set_pte_at(&init_mm, ea, ptep, pfn_pte(pfn, flags));
-	smp_wmb();
+	asm volatile("ptesync": : :"memory");
 	return 0;
 }
 
@@ -643,21 +643,6 @@
 	}
 }
 
-void radix__setup_initial_memory_limit(phys_addr_t first_memblock_base,
-				phys_addr_t first_memblock_size)
-{
-	/*
-	 * We don't currently support the first MEMBLOCK not mapping 0
-	 * physical on those processors
-	 */
-	BUG_ON(first_memblock_base != 0);
-
-	/*
-	 * Radix mode is not limited by RMA / VRMA addressing.
-	 */
-	ppc64_rma_size = ULONG_MAX;
-}
-
 #ifdef CONFIG_MEMORY_HOTPLUG
 static void free_pte_table(pte_t *pte_start, pmd_t *pmd)
 {
@@ -1033,8 +1018,8 @@
 				  pte_t entry, unsigned long address, int psize)
 {
 	struct mm_struct *mm = vma->vm_mm;
-	unsigned long set = pte_val(entry) & (_PAGE_DIRTY | _PAGE_ACCESSED |
-					      _PAGE_RW | _PAGE_EXEC);
+	unsigned long set = pte_val(entry) & (_PAGE_DIRTY | _PAGE_SOFT_DIRTY |
+					      _PAGE_ACCESSED | _PAGE_RW | _PAGE_EXEC);
 
 	unsigned long change = pte_val(entry) ^ pte_val(*ptep);
 	/*
--- linux-ein-5.4.0.orig/arch/powerpc/mm/book3s64/radix_tlb.c
+++ linux-ein-5.4.0/arch/powerpc/mm/book3s64/radix_tlb.c
@@ -639,19 +639,29 @@
 	struct mm_struct *mm = arg;
 	unsigned long pid = mm->context.id;
 
+	/*
+	 * A kthread could have done a mmget_not_zero() after the flushing CPU
+	 * checked mm_is_singlethreaded, and be in the process of
+	 * kthread_use_mm when interrupted here. In that case, current->mm will
+	 * be set to mm, because kthread_use_mm() setting ->mm and switching to
+	 * the mm is done with interrupts off.
+	 */
 	if (current->mm == mm)
-		return; /* Local CPU */
+		goto out_flush;
 
 	if (current->active_mm == mm) {
-		/*
-		 * Must be a kernel thread because sender is single-threaded.
-		 */
-		BUG_ON(current->mm);
+		WARN_ON_ONCE(current->mm != NULL);
+		/* Is a kernel thread and is using mm as the lazy tlb */
 		mmgrab(&init_mm);
-		switch_mm(mm, &init_mm, current);
 		current->active_mm = &init_mm;
+		switch_mm_irqs_off(mm, &init_mm, current);
 		mmdrop(mm);
 	}
+
+	atomic_dec(&mm->context.active_cpus);
+	cpumask_clear_cpu(smp_processor_id(), mm_cpumask(mm));
+
+out_flush:
 	_tlbiel_pid(pid, RIC_FLUSH_ALL);
 }
 
@@ -666,7 +676,6 @@
 	 */
 	smp_call_function_many(mm_cpumask(mm), do_exit_flush_lazy_tlb,
 				(void *)mm, 1);
-	mm_reset_thread_local(mm);
 }
 
 void radix__flush_tlb_mm(struct mm_struct *mm)
--- linux-ein-5.4.0.orig/arch/powerpc/mm/dma-noncoherent.c
+++ linux-ein-5.4.0/arch/powerpc/mm/dma-noncoherent.c
@@ -104,14 +104,14 @@
 #endif
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	__dma_sync_page(paddr, size, dir);
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	__dma_sync_page(paddr, size, dir);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/mm/drmem.c
+++ linux-ein-5.4.0/arch/powerpc/mm/drmem.c
@@ -362,10 +362,8 @@
 	if (!drmem_info->lmbs)
 		return;
 
-	for_each_drmem_lmb(lmb) {
+	for_each_drmem_lmb(lmb)
 		read_drconf_v1_cell(lmb, &prop);
-		lmb_set_nid(lmb);
-	}
 }
 
 static void __init init_drmem_v2_lmbs(const __be32 *prop)
@@ -410,8 +408,6 @@
 
 			lmb->aa_index = dr_cell.aa_index;
 			lmb->flags = dr_cell.flags;
-
-			lmb_set_nid(lmb);
 		}
 	}
 }
--- linux-ein-5.4.0.orig/arch/powerpc/mm/fault.c
+++ linux-ein-5.4.0/arch/powerpc/mm/fault.c
@@ -204,9 +204,7 @@
 {
 	int is_exec = TRAP(regs) == 0x400;
 
-	/* NX faults set DSISR_PROTFAULT on the 8xx, DSISR_NOEXEC_OR_G on others */
-	if (is_exec && (error_code & (DSISR_NOEXEC_OR_G | DSISR_KEYFAULT |
-				      DSISR_PROTFAULT))) {
+	if (is_exec) {
 		pr_crit_ratelimited("kernel tried to execute %s page (%lx) - exploit attempt? (uid: %d)\n",
 				    address >= TASK_SIZE ? "exec-protected" : "user",
 				    address,
@@ -233,7 +231,7 @@
 
 	// Read/write fault in a valid region (the exception table search passed
 	// above), but blocked by KUAP is bad, it can never succeed.
-	if (bad_kuap_fault(regs, is_write))
+	if (bad_kuap_fault(regs, address, is_write))
 		return true;
 
 	// What's left? Kernel fault on user in well defined regions (extable
@@ -241,6 +239,9 @@
 	return false;
 }
 
+// This comes from 64-bit struct rt_sigframe + __SIGNAL_FRAMESIZE
+#define SIGFRAME_MAX_SIZE	(4096 + 128)
+
 static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address,
 				struct vm_area_struct *vma, unsigned int flags,
 				bool *must_retry)
@@ -248,7 +249,7 @@
 	/*
 	 * N.B. The POWER/Open ABI allows programs to access up to
 	 * 288 bytes below the stack pointer.
-	 * The kernel signal delivery code writes up to about 1.5kB
+	 * The kernel signal delivery code writes a bit over 4KB
 	 * below the stack pointer (r1) before decrementing it.
 	 * The exec code can write slightly over 640kB to the stack
 	 * before setting the user r1.  Thus we allow the stack to
@@ -273,7 +274,7 @@
 		 * between the last mapped region and the stack will
 		 * expand the stack rather than segfaulting.
 		 */
-		if (address + 2048 >= uregs->gpr[1])
+		if (address + SIGFRAME_MAX_SIZE >= uregs->gpr[1])
 			return false;
 
 		if ((flags & FAULT_FLAG_WRITE) && (flags & FAULT_FLAG_USER) &&
@@ -346,7 +347,6 @@
 static inline void cmo_account_page_fault(void) { }
 #endif /* CONFIG_PPC_SMLPAR */
 
-#ifdef CONFIG_PPC_BOOK3S
 static void sanity_check_fault(bool is_write, bool is_user,
 			       unsigned long error_code, unsigned long address)
 {
@@ -354,12 +354,18 @@
 	 * Userspace trying to access kernel address, we get PROTFAULT for that.
 	 */
 	if (is_user && address >= TASK_SIZE) {
+		if ((long)address == -1)
+			return;
+
 		pr_crit_ratelimited("%s[%d]: User access of kernel address (%lx) - exploit attempt? (uid: %d)\n",
 				   current->comm, current->pid, address,
 				   from_kuid(&init_user_ns, current_uid()));
 		return;
 	}
 
+	if (!IS_ENABLED(CONFIG_PPC_BOOK3S))
+		return;
+
 	/*
 	 * For hash translation mode, we should never get a
 	 * PROTFAULT. Any update to pte to reduce access will result in us
@@ -394,10 +400,6 @@
 
 	WARN_ON_ONCE(error_code & DSISR_PROTFAULT);
 }
-#else
-static void sanity_check_fault(bool is_write, bool is_user,
-			       unsigned long error_code, unsigned long address) { }
-#endif /* CONFIG_PPC_BOOK3S */
 
 /*
  * Define the correct "is_write" bit in error_code based
--- linux-ein-5.4.0.orig/arch/powerpc/mm/hugetlbpage.c
+++ linux-ein-5.4.0/arch/powerpc/mm/hugetlbpage.c
@@ -53,20 +53,24 @@
 	if (pshift >= pdshift) {
 		cachep = PGT_CACHE(PTE_T_ORDER);
 		num_hugepd = 1 << (pshift - pdshift);
+		new = NULL;
 	} else if (IS_ENABLED(CONFIG_PPC_8xx)) {
-		cachep = PGT_CACHE(PTE_INDEX_SIZE);
+		cachep = NULL;
 		num_hugepd = 1;
+		new = pte_alloc_one(mm);
 	} else {
 		cachep = PGT_CACHE(pdshift - pshift);
 		num_hugepd = 1;
+		new = NULL;
 	}
 
-	if (!cachep) {
+	if (!cachep && !new) {
 		WARN_ONCE(1, "No page table cache created for hugetlb tables");
 		return -ENOMEM;
 	}
 
-	new = kmem_cache_alloc(cachep, pgtable_gfp_flags(mm, GFP_KERNEL));
+	if (cachep)
+		new = kmem_cache_alloc(cachep, pgtable_gfp_flags(mm, GFP_KERNEL));
 
 	BUG_ON(pshift > HUGEPD_SHIFT_MASK);
 	BUG_ON((unsigned long)new & HUGEPD_SHIFT_MASK);
@@ -97,7 +101,10 @@
 	if (i < num_hugepd) {
 		for (i = i - 1 ; i >= 0; i--, hpdp--)
 			*hpdp = __hugepd(0);
-		kmem_cache_free(cachep, new);
+		if (cachep)
+			kmem_cache_free(cachep, new);
+		else
+			pte_free(mm, new);
 	} else {
 		kmemleak_ignore(new);
 	}
@@ -324,8 +331,7 @@
 	if (shift >= pdshift)
 		hugepd_free(tlb, hugepte);
 	else if (IS_ENABLED(CONFIG_PPC_8xx))
-		pgtable_free_tlb(tlb, hugepte,
-				 get_hugepd_cache_index(PTE_INDEX_SIZE));
+		pgtable_free_tlb(tlb, hugepte, 0);
 	else
 		pgtable_free_tlb(tlb, hugepte,
 				 get_hugepd_cache_index(pdshift - shift));
@@ -639,12 +645,13 @@
 		 * if we have pdshift and shift value same, we don't
 		 * use pgt cache for hugepd.
 		 */
-		if (pdshift > shift && IS_ENABLED(CONFIG_PPC_8xx))
-			pgtable_cache_add(PTE_INDEX_SIZE);
-		else if (pdshift > shift)
-			pgtable_cache_add(pdshift - shift);
-		else if (IS_ENABLED(CONFIG_PPC_FSL_BOOK3E) || IS_ENABLED(CONFIG_PPC_8xx))
+		if (pdshift > shift) {
+			if (!IS_ENABLED(CONFIG_PPC_8xx))
+				pgtable_cache_add(pdshift - shift);
+		} else if (IS_ENABLED(CONFIG_PPC_FSL_BOOK3E) ||
+			   IS_ENABLED(CONFIG_PPC_8xx)) {
 			pgtable_cache_add(PTE_T_ORDER);
+		}
 
 		configured = true;
 	}
--- linux-ein-5.4.0.orig/arch/powerpc/mm/init_64.c
+++ linux-ein-5.4.0/arch/powerpc/mm/init_64.c
@@ -178,7 +178,7 @@
 	unsigned long nr_pfn = page_size / sizeof(struct page);
 	unsigned long start_pfn = page_to_pfn((struct page *)start);
 
-	if ((start_pfn + nr_pfn) > altmap->end_pfn)
+	if ((start_pfn + nr_pfn - 1) > altmap->end_pfn)
 		return true;
 
 	if (start_pfn < altmap->base_pfn)
@@ -279,8 +279,7 @@
 	start = _ALIGN_DOWN(start, page_size);
 	if (altmap) {
 		alt_start = altmap->base_pfn;
-		alt_end = altmap->base_pfn + altmap->reserve +
-			  altmap->free + altmap->alloc + altmap->align;
+		alt_end = altmap->base_pfn + altmap->reserve + altmap->free;
 	}
 
 	pr_debug("vmemmap_free %lx...%lx\n", start, end);
@@ -415,9 +414,16 @@
 	if (!(mfmsr() & MSR_HV))
 		early_check_vec5();
 
-	if (early_radix_enabled())
+	if (early_radix_enabled()) {
 		radix__early_init_devtree();
-	else
+		/*
+		 * We have finalized the translation we are going to use by now.
+		 * Radix mode is not limited by RMA / VRMA addressing.
+		 * Hence don't limit memblock allocations.
+		 */
+		ppc64_rma_size = ULONG_MAX;
+		memblock_set_current_limit(MEMBLOCK_ALLOC_ANYWHERE);
+	} else
 		hash__early_init_devtree();
 }
 #endif /* CONFIG_PPC_BOOK3S_64 */
--- linux-ein-5.4.0.orig/arch/powerpc/mm/kasan/Makefile
+++ linux-ein-5.4.0/arch/powerpc/mm/kasan/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 
 KASAN_SANITIZE := n
+KCOV_INSTRUMENT := n
 
 obj-$(CONFIG_PPC32)           += kasan_init_32.o
--- linux-ein-5.4.0.orig/arch/powerpc/mm/kasan/kasan_init_32.c
+++ linux-ein-5.4.0/arch/powerpc/mm/kasan/kasan_init_32.c
@@ -117,11 +117,11 @@
 
 	kasan_populate_pte(kasan_early_shadow_pte, prot);
 
-	for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {
+	for (k_cur = k_start & PAGE_MASK; k_cur != k_end; k_cur += PAGE_SIZE) {
 		pmd_t *pmd = pmd_offset(pud_offset(pgd_offset_k(k_cur), k_cur), k_cur);
 		pte_t *ptep = pte_offset_kernel(pmd, k_cur);
 
-		if ((pte_val(*ptep) & PTE_RPN_MASK) != pa)
+		if (pte_page(*ptep) != virt_to_page(lm_alias(kasan_early_shadow_page)))
 			continue;
 
 		__set_pte_at(&init_mm, k_cur, ptep, pfn_pte(PHYS_PFN(pa), prot), 0);
--- linux-ein-5.4.0.orig/arch/powerpc/mm/mem.c
+++ linux-ein-5.4.0/arch/powerpc/mm/mem.c
@@ -48,6 +48,7 @@
 #include <asm/fixmap.h>
 #include <asm/swiotlb.h>
 #include <asm/rtas.h>
+#include <asm/ftrace.h>
 
 #include <mm/mmu_decl.h>
 
@@ -104,6 +105,27 @@
 	return -ENODEV;
 }
 
+#define FLUSH_CHUNK_SIZE SZ_1G
+/**
+ * flush_dcache_range_chunked(): Write any modified data cache blocks out to
+ * memory and invalidate them, in chunks of up to FLUSH_CHUNK_SIZE
+ * Does not invalidate the corresponding instruction cache blocks.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ * @chunk: the max size of the chunks
+ */
+static void flush_dcache_range_chunked(unsigned long start, unsigned long stop,
+				       unsigned long chunk)
+{
+	unsigned long i;
+
+	for (i = start; i < stop; i += chunk) {
+		flush_dcache_range(i, min(stop, i + chunk));
+		cond_resched();
+	}
+}
+
 int __ref arch_add_memory(int nid, u64 start, u64 size,
 			struct mhp_restrictions *restrictions)
 {
@@ -120,7 +142,8 @@
 			start, start + size, rc);
 		return -EFAULT;
 	}
-	flush_dcache_range(start, start + size);
+
+	flush_dcache_range_chunked(start, start + size, FLUSH_CHUNK_SIZE);
 
 	return __add_pages(nid, start_pfn, nr_pages, restrictions);
 }
@@ -130,14 +153,14 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct page *page = pfn_to_page(start_pfn) + vmem_altmap_offset(altmap);
 	int ret;
 
-	__remove_pages(page_zone(page), start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 
 	/* Remove htab bolted mappings for this section of memory */
 	start = (unsigned long)__va(start);
-	flush_dcache_range(start, start + size);
+	flush_dcache_range_chunked(start, start + size, FLUSH_CHUNK_SIZE);
+
 	ret = remove_section_mapping(start, start + size);
 	WARN_ON_ONCE(ret);
 
@@ -260,6 +283,14 @@
 	BUILD_BUG_ON(MMU_PAGE_COUNT > 16);
 
 #ifdef CONFIG_SWIOTLB
+	/*
+	 * Some platforms (e.g. 85xx) limit DMA-able memory way below
+	 * 4G. We force memblock to bottom-up mode to ensure that the
+	 * memory allocated in swiotlb_init() is DMA-able.
+	 * As it's the last memblock allocation, no need to reset it
+	 * back to to-down.
+	 */
+	memblock_set_bottom_up(true);
 	swiotlb_init(0);
 #endif
 
@@ -316,7 +347,124 @@
 	mark_initmem_nx();
 	init_mem_is_free = true;
 	free_initmem_default(POISON_FREE_INITMEM);
+	ftrace_free_init_tramp();
+}
+
+/**
+ * flush_coherent_icache() - if a CPU has a coherent icache, flush it
+ * @addr: The base address to use (can be any valid address, the whole cache will be flushed)
+ * Return true if the cache was flushed, false otherwise
+ */
+static inline bool flush_coherent_icache(unsigned long addr)
+{
+	/*
+	 * For a snooping icache, we still need a dummy icbi to purge all the
+	 * prefetched instructions from the ifetch buffers. We also need a sync
+	 * before the icbi to order the the actual stores to memory that might
+	 * have modified instructions with the icbi.
+	 */
+	if (cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) {
+		mb(); /* sync */
+		allow_read_from_user((const void __user *)addr, L1_CACHE_BYTES);
+		icbi((void *)addr);
+		prevent_read_from_user((const void __user *)addr, L1_CACHE_BYTES);
+		mb(); /* sync */
+		isync();
+		return true;
+	}
+
+	return false;
+}
+
+/**
+ * invalidate_icache_range() - Flush the icache by issuing icbi across an address range
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ */
+static void invalidate_icache_range(unsigned long start, unsigned long stop)
+{
+	unsigned long shift = l1_icache_shift();
+	unsigned long bytes = l1_icache_bytes();
+	char *addr = (char *)(start & ~(bytes - 1));
+	unsigned long size = stop - (unsigned long)addr + (bytes - 1);
+	unsigned long i;
+
+	for (i = 0; i < size >> shift; i++, addr += bytes)
+		icbi(addr);
+
+	mb(); /* sync */
+	isync();
+}
+
+/**
+ * flush_icache_range: Write any modified data cache blocks out to memory
+ * and invalidate the corresponding blocks in the instruction cache
+ *
+ * Generic code will call this after writing memory, before executing from it.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ */
+void flush_icache_range(unsigned long start, unsigned long stop)
+{
+	if (flush_coherent_icache(start))
+		return;
+
+	clean_dcache_range(start, stop);
+
+	if (IS_ENABLED(CONFIG_44x)) {
+		/*
+		 * Flash invalidate on 44x because we are passed kmapped
+		 * addresses and this doesn't work for userspace pages due to
+		 * the virtually tagged icache.
+		 */
+		iccci((void *)start);
+		mb(); /* sync */
+		isync();
+	} else
+		invalidate_icache_range(start, stop);
+}
+EXPORT_SYMBOL(flush_icache_range);
+
+#if !defined(CONFIG_PPC_8xx) && !defined(CONFIG_PPC64)
+/**
+ * flush_dcache_icache_phys() - Flush a page by it's physical address
+ * @physaddr: the physical address of the page
+ */
+static void flush_dcache_icache_phys(unsigned long physaddr)
+{
+	unsigned long bytes = l1_dcache_bytes();
+	unsigned long nb = PAGE_SIZE / bytes;
+	unsigned long addr = physaddr & PAGE_MASK;
+	unsigned long msr, msr0;
+	unsigned long loop1 = addr, loop2 = addr;
+
+	msr0 = mfmsr();
+	msr = msr0 & ~MSR_DR;
+	/*
+	 * This must remain as ASM to prevent potential memory accesses
+	 * while the data MMU is disabled
+	 */
+	asm volatile(
+		"   mtctr %2;\n"
+		"   mtmsr %3;\n"
+		"   isync;\n"
+		"0: dcbst   0, %0;\n"
+		"   addi    %0, %0, %4;\n"
+		"   bdnz    0b;\n"
+		"   sync;\n"
+		"   mtctr %2;\n"
+		"1: icbi    0, %1;\n"
+		"   addi    %1, %1, %4;\n"
+		"   bdnz    1b;\n"
+		"   sync;\n"
+		"   mtmsr %5;\n"
+		"   isync;\n"
+		: "+&r" (loop1), "+&r" (loop2)
+		: "r" (nb), "r" (msr), "i" (bytes), "r" (msr0)
+		: "ctr", "memory");
 }
+#endif // !defined(CONFIG_PPC_8xx) && !defined(CONFIG_PPC64)
 
 /*
  * This is called when a page has been modified by the kernel.
@@ -350,12 +498,46 @@
 		__flush_dcache_icache(start);
 		kunmap_atomic(start);
 	} else {
-		__flush_dcache_icache_phys(page_to_pfn(page) << PAGE_SHIFT);
+		unsigned long addr = page_to_pfn(page) << PAGE_SHIFT;
+
+		if (flush_coherent_icache(addr))
+			return;
+		flush_dcache_icache_phys(addr);
 	}
 #endif
 }
 EXPORT_SYMBOL(flush_dcache_icache_page);
 
+/**
+ * __flush_dcache_icache(): Flush a particular page from the data cache to RAM.
+ * Note: this is necessary because the instruction cache does *not*
+ * snoop from the data cache.
+ *
+ * @page: the address of the page to flush
+ */
+void __flush_dcache_icache(void *p)
+{
+	unsigned long addr = (unsigned long)p;
+
+	if (flush_coherent_icache(addr))
+		return;
+
+	clean_dcache_range(addr, addr + PAGE_SIZE);
+
+	/*
+	 * We don't flush the icache on 44x. Those have a virtual icache and we
+	 * don't have access to the virtual address here (it's not the page
+	 * vaddr but where it's mapped in user space). The flushing of the
+	 * icache on these is handled elsewhere, when a change in the address
+	 * space occurs, before returning to user space.
+	 */
+
+	if (mmu_has_feature(MMU_FTR_TYPE_44x))
+		return;
+
+	invalidate_icache_range(addr, addr + PAGE_SIZE);
+}
+
 void clear_user_page(void *page, unsigned long vaddr, struct page *pg)
 {
 	clear_page(page);
--- linux-ein-5.4.0.orig/arch/powerpc/mm/mmu_context.c
+++ linux-ein-5.4.0/arch/powerpc/mm/mmu_context.c
@@ -79,7 +79,7 @@
 	 * context
 	 */
 	if (cpu_has_feature(CPU_FTR_ALTIVEC))
-		asm volatile ("dssall");
+		asm volatile (PPC_DSSALL);
 
 	if (new_on_cpu)
 		radix_kvm_prefetch_workaround(next);
--- linux-ein-5.4.0.orig/arch/powerpc/mm/nohash/tlb_low.S
+++ linux-ein-5.4.0/arch/powerpc/mm/nohash/tlb_low.S
@@ -397,7 +397,7 @@
  * extern void loadcam_entry(unsigned int index)
  *
  * Load TLBCAM[index] entry in to the L2 CAM MMU
- * Must preserve r7, r8, r9, and r10
+ * Must preserve r7, r8, r9, r10 and r11
  */
 _GLOBAL(loadcam_entry)
 	mflr	r5
@@ -433,6 +433,10 @@
  */
 _GLOBAL(loadcam_multi)
 	mflr	r8
+	/* Don't switch to AS=1 if already there */
+	mfmsr	r11
+	andi.	r11,r11,MSR_IS
+	bne	10f
 
 	/*
 	 * Set up temporary TLB entry that is the same as what we're
@@ -458,6 +462,7 @@
 	mtmsr	r6
 	isync
 
+10:
 	mr	r9,r3
 	add	r10,r3,r4
 2:	bl	loadcam_entry
@@ -466,6 +471,10 @@
 	mr	r3,r9
 	blt	2b
 
+	/* Don't return to AS=0 if we were in AS=1 at function start */
+	andi.	r11,r11,MSR_IS
+	bne	3f
+
 	/* Return to AS=0 and clear the temporary entry */
 	mfmsr	r6
 	rlwinm.	r6,r6,0,~(MSR_IS|MSR_DS)
@@ -481,6 +490,7 @@
 	tlbwe
 	isync
 
+3:
 	mtlr	r8
 	blr
 #endif
--- linux-ein-5.4.0.orig/arch/powerpc/mm/pgtable_32.c
+++ linux-ein-5.4.0/arch/powerpc/mm/pgtable_32.c
@@ -207,7 +207,7 @@
 	unsigned long numpages = PFN_UP((unsigned long)_einittext) -
 				 PFN_DOWN((unsigned long)_sinittext);
 
-	if (v_block_mapped((unsigned long)_stext + 1))
+	if (v_block_mapped((unsigned long)_sinittext))
 		mmu_mark_initmem_nx();
 	else
 		change_page_attr(page, numpages, PAGE_KERNEL);
@@ -219,8 +219,9 @@
 	struct page *page;
 	unsigned long numpages;
 
-	if (v_block_mapped((unsigned long)_sinittext)) {
+	if (v_block_mapped((unsigned long)_stext + 1)) {
 		mmu_mark_rodata_ro();
+		ptdump_check_wx();
 		return;
 	}
 
--- linux-ein-5.4.0.orig/arch/powerpc/mm/ptdump/hashpagetable.c
+++ linux-ein-5.4.0/arch/powerpc/mm/ptdump/hashpagetable.c
@@ -259,7 +259,7 @@
 	for (i = 0; i < HPTES_PER_GROUP; i += 4, hpte_group += 4) {
 		lpar_rc = plpar_pte_read_4(0, hpte_group, (void *)ptes);
 
-		if (lpar_rc != H_SUCCESS)
+		if (lpar_rc)
 			continue;
 		for (j = 0; j < 4; j++) {
 			if (HPTE_V_COMPARE(ptes[j].v, want_v) &&
--- linux-ein-5.4.0.orig/arch/powerpc/mm/ptdump/ptdump.c
+++ linux-ein-5.4.0/arch/powerpc/mm/ptdump/ptdump.c
@@ -58,6 +58,7 @@
 	unsigned long start_address;
 	unsigned long start_pa;
 	unsigned long last_pa;
+	unsigned long page_size;
 	unsigned int level;
 	u64 current_flags;
 	bool check_wx;
@@ -155,9 +156,9 @@
 #endif
 
 	pt_dump_seq_printf(st->seq, REG "-" REG " ", st->start_address, addr - 1);
-	if (st->start_pa == st->last_pa && st->start_address + PAGE_SIZE != addr) {
+	if (st->start_pa == st->last_pa && st->start_address + st->page_size != addr) {
 		pt_dump_seq_printf(st->seq, "[" REG "]", st->start_pa);
-		delta = PAGE_SIZE >> 10;
+		delta = st->page_size >> 10;
 	} else {
 		pt_dump_seq_printf(st->seq, " " REG " ", st->start_pa);
 		delta = (addr - st->start_address) >> 10;
@@ -173,10 +174,12 @@
 
 static void note_prot_wx(struct pg_state *st, unsigned long addr)
 {
+	pte_t pte = __pte(st->current_flags);
+
 	if (!IS_ENABLED(CONFIG_PPC_DEBUG_WX) || !st->check_wx)
 		return;
 
-	if (!((st->current_flags & pgprot_val(PAGE_KERNEL_X)) == pgprot_val(PAGE_KERNEL_X)))
+	if (!pte_write(pte) || !pte_exec(pte))
 		return;
 
 	WARN_ONCE(1, "powerpc/mm: Found insecure W+X mapping at address %p/%pS\n",
@@ -186,7 +189,7 @@
 }
 
 static void note_page(struct pg_state *st, unsigned long addr,
-	       unsigned int level, u64 val)
+	       unsigned int level, u64 val, unsigned long page_size)
 {
 	u64 flag = val & pg_level[level].mask;
 	u64 pa = val & PTE_RPN_MASK;
@@ -198,6 +201,7 @@
 		st->start_address = addr;
 		st->start_pa = pa;
 		st->last_pa = pa;
+		st->page_size = page_size;
 		pt_dump_seq_printf(st->seq, "---[ %s ]---\n", st->marker->name);
 	/*
 	 * Dump the section of virtual memory when:
@@ -209,7 +213,7 @@
 	 */
 	} else if (flag != st->current_flags || level != st->level ||
 		   addr >= st->marker[1].start_address ||
-		   (pa != st->last_pa + PAGE_SIZE &&
+		   (pa != st->last_pa + st->page_size &&
 		    (pa != st->start_pa || st->start_pa != st->last_pa))) {
 
 		/* Check the PTE flags */
@@ -237,6 +241,7 @@
 		st->start_address = addr;
 		st->start_pa = pa;
 		st->last_pa = pa;
+		st->page_size = page_size;
 		st->current_flags = flag;
 		st->level = level;
 	} else {
@@ -252,7 +257,7 @@
 
 	for (i = 0; i < PTRS_PER_PTE; i++, pte++) {
 		addr = start + i * PAGE_SIZE;
-		note_page(st, addr, 4, pte_val(*pte));
+		note_page(st, addr, 4, pte_val(*pte), PAGE_SIZE);
 
 	}
 }
@@ -269,7 +274,7 @@
 			/* pmd exists */
 			walk_pte(st, pmd, addr);
 		else
-			note_page(st, addr, 3, pmd_val(*pmd));
+			note_page(st, addr, 3, pmd_val(*pmd), PMD_SIZE);
 	}
 }
 
@@ -285,7 +290,7 @@
 			/* pud exists */
 			walk_pmd(st, pud, addr);
 		else
-			note_page(st, addr, 2, pud_val(*pud));
+			note_page(st, addr, 2, pud_val(*pud), PUD_SIZE);
 	}
 }
 
@@ -304,7 +309,7 @@
 			/* pgd exists */
 			walk_pud(st, pgd, addr);
 		else
-			note_page(st, addr, 1, pgd_val(*pgd));
+			note_page(st, addr, 1, pgd_val(*pgd), PGDIR_SIZE);
 	}
 }
 
@@ -359,7 +364,7 @@
 
 	/* Traverse kernel page tables */
 	walk_pagetables(&st);
-	note_page(&st, 0, 0, 0);
+	note_page(&st, 0, 0, 0, 0);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/mm/ptdump/shared.c
+++ linux-ein-5.4.0/arch/powerpc/mm/ptdump/shared.c
@@ -17,9 +17,9 @@
 		.clear	= "    ",
 	}, {
 		.mask	= _PAGE_RW,
-		.val	= _PAGE_RW,
-		.set	= "rw",
-		.clear	= "r ",
+		.val	= 0,
+		.set	= "r ",
+		.clear	= "rw",
 	}, {
 		.mask	= _PAGE_EXEC,
 		.val	= _PAGE_EXEC,
@@ -31,6 +31,11 @@
 		.set	= "present",
 		.clear	= "       ",
 	}, {
+		.mask	= _PAGE_COHERENT,
+		.val	= _PAGE_COHERENT,
+		.set	= "coherent",
+		.clear	= "        ",
+	}, {
 		.mask	= _PAGE_GUARDED,
 		.val	= _PAGE_GUARDED,
 		.set	= "guarded",
--- linux-ein-5.4.0.orig/arch/powerpc/mm/slice.c
+++ linux-ein-5.4.0/arch/powerpc/mm/slice.c
@@ -50,7 +50,7 @@
 
 #endif
 
-static inline bool slice_addr_is_low(unsigned long addr)
+static inline notrace bool slice_addr_is_low(unsigned long addr)
 {
 	u64 tmp = (u64)addr;
 
@@ -659,7 +659,7 @@
 				       mm_ctx_user_psize(&current->mm->context), 1);
 }
 
-unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr)
+unsigned int notrace get_slice_psize(struct mm_struct *mm, unsigned long addr)
 {
 	unsigned char *psizes;
 	int index, mask_index;
--- linux-ein-5.4.0.orig/arch/powerpc/net/bpf_jit.h
+++ linux-ein-5.4.0/arch/powerpc/net/bpf_jit.h
@@ -11,6 +11,7 @@
 #ifndef __ASSEMBLY__
 
 #include <asm/types.h>
+#include <asm/code-patching.h>
 
 #ifdef PPC64_ELF_ABI_v1
 #define FUNCTION_DESCR_SIZE	24
@@ -180,13 +181,26 @@
 #define PPC_NEG(d, a)		EMIT(PPC_INST_NEG | ___PPC_RT(d) | ___PPC_RA(a))
 
 /* Long jump; (unconditional 'branch') */
-#define PPC_JMP(dest)		EMIT(PPC_INST_BRANCH |			      \
-				     (((dest) - (ctx->idx * 4)) & 0x03fffffc))
+#define PPC_JMP(dest)							      \
+	do {								      \
+		long offset = (long)(dest) - (ctx->idx * 4);		      \
+		if (!is_offset_in_branch_range(offset)) {		      \
+			pr_err_ratelimited("Branch offset 0x%lx (@%u) out of range\n", offset, ctx->idx);			\
+			return -ERANGE;					      \
+		}							      \
+		EMIT(PPC_INST_BRANCH | (offset & 0x03fffffc));		      \
+	} while (0)
 /* "cond" here covers BO:BI fields. */
-#define PPC_BCC_SHORT(cond, dest)	EMIT(PPC_INST_BRANCH_COND |	      \
-					     (((cond) & 0x3ff) << 16) |	      \
-					     (((dest) - (ctx->idx * 4)) &     \
-					      0xfffc))
+#define PPC_BCC_SHORT(cond, dest)					      \
+	do {								      \
+		long offset = (long)(dest) - (ctx->idx * 4);		      \
+		if (!is_offset_in_cond_branch_range(offset)) {		      \
+			pr_err_ratelimited("Conditional branch offset 0x%lx (@%u) out of range\n", offset, ctx->idx);		\
+			return -ERANGE;					      \
+		}							      \
+		EMIT(PPC_INST_BRANCH_COND | (((cond) & 0x3ff) << 16) | (offset & 0xfffc));					\
+	} while (0)
+
 /* Sign-extended 32-bit immediate load */
 #define PPC_LI32(d, i)		do {					      \
 		if ((int)(uintptr_t)(i) >= -32768 &&			      \
@@ -225,11 +239,6 @@
 #define PPC_FUNC_ADDR(d,i) do { PPC_LI32(d, i); } while(0)
 #endif
 
-static inline bool is_nearbranch(int offset)
-{
-	return (offset < 32768) && (offset >= -32768);
-}
-
 /*
  * The fly in the ointment of code size changing from pass to pass is
  * avoided by padding the short branch case with a NOP.	 If code size differs
@@ -238,7 +247,7 @@
  * state.
  */
 #define PPC_BCC(cond, dest)	do {					      \
-		if (is_nearbranch((dest) - (ctx->idx * 4))) {		      \
+		if (is_offset_in_cond_branch_range((long)(dest) - (ctx->idx * 4))) {	\
 			PPC_BCC_SHORT(cond, dest);			      \
 			PPC_NOP();					      \
 		} else {						      \
--- linux-ein-5.4.0.orig/arch/powerpc/net/bpf_jit64.h
+++ linux-ein-5.4.0/arch/powerpc/net/bpf_jit64.h
@@ -16,18 +16,18 @@
  * with our redzone usage.
  *
  *		[	prev sp		] <-------------
- *		[   nv gpr save area	] 6*8		|
+ *		[   nv gpr save area	] 5*8		|
  *		[    tail_call_cnt	] 8		|
- *		[    local_tmp_var	] 8		|
+ *		[    local_tmp_var	] 16		|
  * fp (r31) -->	[   ebpf stack space	] upto 512	|
  *		[     frame header	] 32/112	|
  * sp (r1) --->	[    stack pointer	] --------------
  */
 
 /* for gpr non volatile registers BPG_REG_6 to 10 */
-#define BPF_PPC_STACK_SAVE	(6*8)
+#define BPF_PPC_STACK_SAVE	(5*8)
 /* for bpf JIT code internal usage */
-#define BPF_PPC_STACK_LOCALS	16
+#define BPF_PPC_STACK_LOCALS	24
 /* stack frame excluding BPF stack, ensure this is quadword aligned */
 #define BPF_PPC_STACKFRAME	(STACK_FRAME_MIN_SIZE + \
 				 BPF_PPC_STACK_LOCALS + BPF_PPC_STACK_SAVE)
--- linux-ein-5.4.0.orig/arch/powerpc/net/bpf_jit_comp64.c
+++ linux-ein-5.4.0/arch/powerpc/net/bpf_jit_comp64.c
@@ -15,6 +15,7 @@
 #include <linux/if_vlan.h>
 #include <asm/kprobes.h>
 #include <linux/bpf.h>
+#include <asm/security_features.h>
 
 #include "bpf_jit64.h"
 
@@ -56,9 +57,9 @@
  *		[	prev sp		] <-------------
  *		[	  ...       	] 		|
  * sp (r1) --->	[    stack pointer	] --------------
- *		[   nv gpr save area	] 6*8
+ *		[   nv gpr save area	] 5*8
  *		[    tail_call_cnt	] 8
- *		[    local_tmp_var	] 8
+ *		[    local_tmp_var	] 16
  *		[   unused red zone	] 208 bytes protected
  */
 static int bpf_jit_stack_local(struct codegen_context *ctx)
@@ -66,12 +67,12 @@
 	if (bpf_has_stack_frame(ctx))
 		return STACK_FRAME_MIN_SIZE + ctx->stack_size;
 	else
-		return -(BPF_PPC_STACK_SAVE + 16);
+		return -(BPF_PPC_STACK_SAVE + 24);
 }
 
 static int bpf_jit_stack_tailcallcnt(struct codegen_context *ctx)
 {
-	return bpf_jit_stack_local(ctx) + 8;
+	return bpf_jit_stack_local(ctx) + 16;
 }
 
 static int bpf_jit_stack_offsetof(struct codegen_context *ctx, int reg)
@@ -224,7 +225,7 @@
 	PPC_BLRL();
 }
 
-static void bpf_jit_emit_tail_call(u32 *image, struct codegen_context *ctx, u32 out)
+static int bpf_jit_emit_tail_call(u32 *image, struct codegen_context *ctx, u32 out)
 {
 	/*
 	 * By now, the eBPF program has already setup parameters in r3, r4 and r5
@@ -285,14 +286,39 @@
 	bpf_jit_emit_common_epilogue(image, ctx);
 
 	PPC_BCTR();
+
 	/* out: */
+	return 0;
 }
 
+/*
+ * We spill into the redzone always, even if the bpf program has its own stackframe.
+ * Offsets hardcoded based on BPF_PPC_STACK_SAVE -- see bpf_jit_stack_local()
+ */
+void bpf_stf_barrier(void);
+
+asm (
+"		.global bpf_stf_barrier		;"
+"	bpf_stf_barrier:			;"
+"		std	21,-64(1)		;"
+"		std	22,-56(1)		;"
+"		sync				;"
+"		ld	21,-64(1)		;"
+"		ld	22,-56(1)		;"
+"		ori	31,31,0			;"
+"		.rept 14			;"
+"		b	1f			;"
+"	1:					;"
+"		.endr				;"
+"		blr				;"
+);
+
 /* Assemble the body code between the prologue & epilogue */
 static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image,
 			      struct codegen_context *ctx,
 			      u32 *addrs, bool extra_pass)
 {
+	enum stf_barrier_type stf_barrier = stf_barrier_type_get();
 	const struct bpf_insn *insn = fp->insnsi;
 	int flen = fp->len;
 	int i, ret;
@@ -347,18 +373,25 @@
 			PPC_SUB(dst_reg, dst_reg, src_reg);
 			goto bpf_alu32_trunc;
 		case BPF_ALU | BPF_ADD | BPF_K: /* (u32) dst += (u32) imm */
-		case BPF_ALU | BPF_SUB | BPF_K: /* (u32) dst -= (u32) imm */
 		case BPF_ALU64 | BPF_ADD | BPF_K: /* dst += imm */
+			if (!imm) {
+				goto bpf_alu32_trunc;
+			} else if (imm >= -32768 && imm < 32768) {
+				PPC_ADDI(dst_reg, dst_reg, IMM_L(imm));
+			} else {
+				PPC_LI32(b2p[TMP_REG_1], imm);
+				PPC_ADD(dst_reg, dst_reg, b2p[TMP_REG_1]);
+			}
+			goto bpf_alu32_trunc;
+		case BPF_ALU | BPF_SUB | BPF_K: /* (u32) dst -= (u32) imm */
 		case BPF_ALU64 | BPF_SUB | BPF_K: /* dst -= imm */
-			if (BPF_OP(code) == BPF_SUB)
-				imm = -imm;
-			if (imm) {
-				if (imm >= -32768 && imm < 32768)
-					PPC_ADDI(dst_reg, dst_reg, IMM_L(imm));
-				else {
-					PPC_LI32(b2p[TMP_REG_1], imm);
-					PPC_ADD(dst_reg, dst_reg, b2p[TMP_REG_1]);
-				}
+			if (!imm) {
+				goto bpf_alu32_trunc;
+			} else if (imm > -32768 && imm <= 32768) {
+				PPC_ADDI(dst_reg, dst_reg, IMM_L(-imm));
+			} else {
+				PPC_LI32(b2p[TMP_REG_1], imm);
+				PPC_SUB(dst_reg, dst_reg, b2p[TMP_REG_1]);
 			}
 			goto bpf_alu32_trunc;
 		case BPF_ALU | BPF_MUL | BPF_X: /* (u32) dst *= (u32) src */
@@ -408,8 +441,14 @@
 		case BPF_ALU64 | BPF_DIV | BPF_K: /* dst /= imm */
 			if (imm == 0)
 				return -EINVAL;
-			else if (imm == 1)
-				goto bpf_alu32_trunc;
+			if (imm == 1) {
+				if (BPF_OP(code) == BPF_DIV) {
+					goto bpf_alu32_trunc;
+				} else {
+					PPC_LI(dst_reg, 0);
+					break;
+				}
+			}
 
 			PPC_LI32(b2p[TMP_REG_1], imm);
 			switch (BPF_CLASS(code)) {
@@ -645,6 +684,36 @@
 			break;
 
 		/*
+		 * BPF_ST NOSPEC (speculation barrier)
+		 */
+		case BPF_ST | BPF_NOSPEC:
+			if (!security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) ||
+					(!security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR) &&
+					(!security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV) || !cpu_has_feature(CPU_FTR_HVMODE))))
+				break;
+
+			switch (stf_barrier) {
+			case STF_BARRIER_EIEIO:
+				EMIT(0x7c0006ac | 0x02000000);
+				break;
+			case STF_BARRIER_SYNC_ORI:
+				EMIT(PPC_INST_SYNC);
+				PPC_LD(b2p[TMP_REG_1], 13, 0);
+				PPC_ORI(31, 31, 0);
+				break;
+			case STF_BARRIER_FALLBACK:
+				EMIT(PPC_INST_MFLR | ___PPC_RT(b2p[TMP_REG_1]));
+				PPC_LI64(12, dereference_kernel_function_descriptor(bpf_stf_barrier));
+				PPC_MTCTR(12);
+				EMIT(PPC_INST_BCTR | 0x1);
+				PPC_MTLR(b2p[TMP_REG_1]);
+				break;
+			case STF_BARRIER_NONE:
+				break;
+			}
+			break;
+
+		/*
 		 * BPF_ST(X)
 		 */
 		case BPF_STX | BPF_MEM | BPF_B: /* *(u8 *)(dst + off) = src */
@@ -989,7 +1058,9 @@
 		 */
 		case BPF_JMP | BPF_TAIL_CALL:
 			ctx->seen |= SEEN_TAILCALL;
-			bpf_jit_emit_tail_call(image, ctx, addrs[i + 1]);
+			ret = bpf_jit_emit_tail_call(image, ctx, addrs[i + 1]);
+			if (ret < 0)
+				return ret;
 			break;
 
 		default:
--- linux-ein-5.4.0.orig/arch/powerpc/perf/callchain.c
+++ linux-ein-5.4.0/arch/powerpc/perf/callchain.c
@@ -64,6 +64,7 @@
 		next_sp = fp[0];
 
 		if (next_sp == sp + STACK_INT_FRAME_SIZE &&
+		    validate_sp(sp, current, STACK_INT_FRAME_SIZE) &&
 		    fp[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) {
 			/*
 			 * This looks like an interrupt frame for an
--- linux-ein-5.4.0.orig/arch/powerpc/perf/core-book3s.c
+++ linux-ein-5.4.0/arch/powerpc/perf/core-book3s.c
@@ -133,6 +133,9 @@
 
 bool is_sier_available(void)
 {
+	if (!ppmu)
+		return false;
+
 	if (ppmu->flags & PPMU_HAS_SIER)
 		return true;
 
@@ -1522,9 +1525,16 @@
 	ret = 0;
  out:
 	if (has_branch_stack(event)) {
-		power_pmu_bhrb_enable(event);
-		cpuhw->bhrb_filter = ppmu->bhrb_filter_map(
-					event->attr.branch_sample_type);
+		u64 bhrb_filter = -1;
+
+		if (ppmu->bhrb_filter_map)
+			bhrb_filter = ppmu->bhrb_filter_map(
+				event->attr.branch_sample_type);
+
+		if (bhrb_filter != -1) {
+			cpuhw->bhrb_filter = bhrb_filter;
+			power_pmu_bhrb_enable(event);
+		}
 	}
 
 	perf_pmu_enable(event->pmu);
@@ -1846,7 +1856,6 @@
 	int n;
 	int err;
 	struct cpu_hw_events *cpuhw;
-	u64 bhrb_filter;
 
 	if (!ppmu)
 		return -ENOENT;
@@ -1952,7 +1961,10 @@
 	err = power_check_constraints(cpuhw, events, cflags, n + 1);
 
 	if (has_branch_stack(event)) {
-		bhrb_filter = ppmu->bhrb_filter_map(
+		u64 bhrb_filter = -1;
+
+		if (ppmu->bhrb_filter_map)
+			bhrb_filter = ppmu->bhrb_filter_map(
 					event->attr.branch_sample_type);
 
 		if (bhrb_filter == -1) {
@@ -2065,7 +2077,17 @@
 			left += period;
 			if (left <= 0)
 				left = period;
-			record = siar_valid(regs);
+
+			/*
+			 * If address is not requested in the sample via
+			 * PERF_SAMPLE_IP, just record that sample irrespective
+			 * of SIAR valid check.
+			 */
+			if (event->attr.sample_type & PERF_SAMPLE_IP)
+				record = siar_valid(regs);
+			else
+				record = 1;
+
 			event->hw.last_period = event->hw.sample_period;
 		}
 		if (left < 0x80000000LL)
@@ -2078,6 +2100,17 @@
 	perf_event_update_userpage(event);
 
 	/*
+	 * Due to hardware limitation, sometimes SIAR could sample a kernel
+	 * address even when freeze on supervisor state (kernel) is set in
+	 * MMCR2. Check attr.exclude_kernel and address to drop the sample in
+	 * these cases.
+	 */
+	if (event->attr.exclude_kernel &&
+	    (event->attr.sample_type & PERF_SAMPLE_IP) &&
+	    is_kernel_addr(mfspr(SPRN_SIAR)))
+		record = 0;
+
+	/*
 	 * Finally record data if requested.
 	 */
 	if (record) {
@@ -2106,6 +2139,10 @@
 
 		if (perf_event_overflow(event, &data, regs))
 			power_pmu_stop(event, 0);
+	} else if (period) {
+		/* Account for interrupt in case of invalid SIAR */
+		if (perf_event_account_interrupt(event))
+			power_pmu_stop(event, 0);
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/perf/hv-24x7.c
+++ linux-ein-5.4.0/arch/powerpc/perf/hv-24x7.c
@@ -1313,7 +1313,7 @@
 	}
 
 	domain = event_get_domain(event);
-	if (domain >= HV_PERF_DOMAIN_MAX) {
+	if (domain  == 0 || domain >= HV_PERF_DOMAIN_MAX) {
 		pr_devel("invalid domain %d\n", domain);
 		return -EINVAL;
 	}
@@ -1400,16 +1400,6 @@
 			h24x7hw = &get_cpu_var(hv_24x7_hw);
 			h24x7hw->events[i] = event;
 			put_cpu_var(h24x7hw);
-			/*
-			 * Clear the event count so we can compute the _change_
-			 * in the 24x7 raw counter value at the end of the txn.
-			 *
-			 * Note that we could alternatively read the 24x7 value
-			 * now and save its value in event->hw.prev_count. But
-			 * that would require issuing a hcall, which would then
-			 * defeat the purpose of using the txn interface.
-			 */
-			local64_set(&event->count, 0);
 		}
 
 		put_cpu_var(hv_24x7_reqb);
--- linux-ein-5.4.0.orig/arch/powerpc/perf/hv-gpci-requests.h
+++ linux-ein-5.4.0/arch/powerpc/perf/hv-gpci-requests.h
@@ -79,6 +79,7 @@
 )
 #include I(REQUEST_END)
 
+#ifdef ENABLE_EVENTS_COUNTERINFO_V6
 /*
  * Not available for counter_info_version >= 0x8, use
  * run_instruction_cycles_by_partition(0x100) instead.
@@ -92,10 +93,11 @@
 	__count(0x10,	8,	cycles)
 )
 #include I(REQUEST_END)
+#endif
 
 #define REQUEST_NAME system_performance_capabilities
 #define REQUEST_NUM 0x40
-#define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
+#define REQUEST_IDX_KIND "starting_index=0xffffffff"
 #include I(REQUEST_BEGIN)
 REQUEST(__field(0,	1,	perf_collect_privileged)
 	__field(0x1,	1,	capability_mask)
@@ -103,6 +105,7 @@
 )
 #include I(REQUEST_END)
 
+#ifdef ENABLE_EVENTS_COUNTERINFO_V6
 #define REQUEST_NAME processor_bus_utilization_abc_links
 #define REQUEST_NUM 0x50
 #define REQUEST_IDX_KIND "hw_chip_id=?"
@@ -194,6 +197,7 @@
 	__count(0x28,	8,	instructions_completed)
 )
 #include I(REQUEST_END)
+#endif
 
 /* Processor_core_power_mode (0x95) skipped, no counters */
 /* Affinity_domain_information_by_virtual_processor (0xA0) skipped,
@@ -223,7 +227,7 @@
 
 #define REQUEST_NAME system_hypervisor_times
 #define REQUEST_NUM 0xF0
-#define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
+#define REQUEST_IDX_KIND "starting_index=0xffffffff"
 #include I(REQUEST_BEGIN)
 REQUEST(__count(0,	8,	time_spent_to_dispatch_virtual_processors)
 	__count(0x8,	8,	time_spent_processing_virtual_processor_timers)
@@ -234,7 +238,7 @@
 
 #define REQUEST_NAME system_tlbie_count_and_time
 #define REQUEST_NUM 0xF4
-#define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
+#define REQUEST_IDX_KIND "starting_index=0xffffffff"
 #include I(REQUEST_BEGIN)
 REQUEST(__count(0,	8,	tlbie_instructions_issued)
 	/*
--- linux-ein-5.4.0.orig/arch/powerpc/perf/hv-gpci.c
+++ linux-ein-5.4.0/arch/powerpc/perf/hv-gpci.c
@@ -70,7 +70,7 @@
 
 static struct attribute_group event_group = {
 	.name  = "events",
-	.attrs = hv_gpci_event_attrs,
+	/* .attrs is set in init */
 };
 
 #define HV_CAPS_ATTR(_name, _format)				\
@@ -164,7 +164,7 @@
 	 */
 	count = 0;
 	for (i = offset; i < offset + length; i++)
-		count |= arg->bytes[i] << (i - offset);
+		count |= (u64)(arg->bytes[i]) << ((length - 1 - (i - offset)) * 8);
 
 	*value = count;
 out:
@@ -280,6 +280,7 @@
 	int r;
 	unsigned long hret;
 	struct hv_perf_caps caps;
+	struct hv_gpci_request_buffer *arg;
 
 	hv_gpci_assert_offsets_correct();
 
@@ -298,6 +299,36 @@
 	/* sampling not supported */
 	h_gpci_pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
 
+	arg = (void *)get_cpu_var(hv_gpci_reqb);
+	memset(arg, 0, HGPCI_REQ_BUFFER_SIZE);
+
+	/*
+	 * hcall H_GET_PERF_COUNTER_INFO populates the output
+	 * counter_info_version value based on the system hypervisor.
+	 * Pass the counter request 0x10 corresponds to request type
+	 * 'Dispatch_timebase_by_processor', to get the supported
+	 * counter_info_version.
+	 */
+	arg->params.counter_request = cpu_to_be32(0x10);
+
+	r = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO,
+			virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE);
+	if (r) {
+		pr_devel("hcall failed, can't get supported counter_info_version: 0x%x\n", r);
+		arg->params.counter_info_version_out = 0x8;
+	}
+
+	/*
+	 * Use counter_info_version_out value to assign
+	 * required hv-gpci event list.
+	 */
+	if (arg->params.counter_info_version_out >= 0x8)
+		event_group.attrs = hv_gpci_event_attrs;
+	else
+		event_group.attrs = hv_gpci_event_attrs_v6;
+
+	put_cpu_var(hv_gpci_reqb);
+
 	r = perf_pmu_register(&h_gpci_pmu, h_gpci_pmu.name, -1);
 	if (r)
 		return r;
--- linux-ein-5.4.0.orig/arch/powerpc/perf/hv-gpci.h
+++ linux-ein-5.4.0/arch/powerpc/perf/hv-gpci.h
@@ -53,6 +53,7 @@
 #define REQUEST_FILE "../hv-gpci-requests.h"
 #define NAME_LOWER hv_gpci
 #define NAME_UPPER HV_GPCI
+#define ENABLE_EVENTS_COUNTERINFO_V6
 #include "req-gen/perf.h"
 #undef REQUEST_FILE
 #undef NAME_LOWER
--- linux-ein-5.4.0.orig/arch/powerpc/perf/imc-pmu.c
+++ linux-ein-5.4.0/arch/powerpc/perf/imc-pmu.c
@@ -13,6 +13,7 @@
 #include <asm/cputhreads.h>
 #include <asm/smp.h>
 #include <linux/string.h>
+#include <linux/spinlock.h>
 
 /* Nest IMC data structures and variables */
 
@@ -44,6 +45,16 @@
 static struct imc_pmu_ref *trace_imc_refc;
 static int trace_imc_mem_size;
 
+/*
+ * Global data structure used to avoid races between thread,
+ * core and trace-imc
+ */
+static struct imc_pmu_ref imc_global_refc = {
+	.lock = __SPIN_LOCK_INITIALIZER(imc_global_refc.lock),
+	.id = 0,
+	.refc = 0,
+};
+
 static struct imc_pmu *imc_event_to_pmu(struct perf_event *event)
 {
 	return container_of(event->pmu, struct imc_pmu, pmu);
@@ -383,7 +394,7 @@
 				       get_hard_smp_processor_id(cpu));
 		/*
 		 * If this is the last cpu in this chip then, skip the reference
-		 * count mutex lock and make the reference count on this chip zero.
+		 * count lock and make the reference count on this chip zero.
 		 */
 		ref = get_nest_pmu_ref(cpu);
 		if (!ref)
@@ -445,15 +456,15 @@
 	/*
 	 * See if we need to disable the nest PMU.
 	 * If no events are currently in use, then we have to take a
-	 * mutex to ensure that we don't race with another task doing
+	 * lock to ensure that we don't race with another task doing
 	 * enable or disable the nest counters.
 	 */
 	ref = get_nest_pmu_ref(event->cpu);
 	if (!ref)
 		return;
 
-	/* Take the mutex lock for this node and then decrement the reference count */
-	mutex_lock(&ref->lock);
+	/* Take the lock for this node and then decrement the reference count */
+	spin_lock(&ref->lock);
 	if (ref->refc == 0) {
 		/*
 		 * The scenario where this is true is, when perf session is
@@ -465,7 +476,7 @@
 		 * an OPAL call to disable the engine in that node.
 		 *
 		 */
-		mutex_unlock(&ref->lock);
+		spin_unlock(&ref->lock);
 		return;
 	}
 	ref->refc--;
@@ -473,7 +484,7 @@
 		rc = opal_imc_counters_stop(OPAL_IMC_COUNTERS_NEST,
 					    get_hard_smp_processor_id(event->cpu));
 		if (rc) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("nest-imc: Unable to stop the counters for core %d\n", node_id);
 			return;
 		}
@@ -481,7 +492,7 @@
 		WARN(1, "nest-imc: Invalid event reference count\n");
 		ref->refc = 0;
 	}
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
 }
 
 static int nest_imc_event_init(struct perf_event *event)
@@ -540,26 +551,25 @@
 
 	/*
 	 * Get the imc_pmu_ref struct for this node.
-	 * Take the mutex lock and then increment the count of nest pmu events
-	 * inited.
+	 * Take the lock and then increment the count of nest pmu events inited.
 	 */
 	ref = get_nest_pmu_ref(event->cpu);
 	if (!ref)
 		return -EINVAL;
 
-	mutex_lock(&ref->lock);
+	spin_lock(&ref->lock);
 	if (ref->refc == 0) {
 		rc = opal_imc_counters_start(OPAL_IMC_COUNTERS_NEST,
 					     get_hard_smp_processor_id(event->cpu));
 		if (rc) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("nest-imc: Unable to start the counters for node %d\n",
 									node_id);
 			return rc;
 		}
 	}
 	++ref->refc;
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
 
 	event->destroy = nest_imc_counters_release;
 	return 0;
@@ -595,9 +605,8 @@
 		return -ENOMEM;
 	mem_info->vbase = page_address(page);
 
-	/* Init the mutex */
 	core_imc_refc[core_id].id = core_id;
-	mutex_init(&core_imc_refc[core_id].lock);
+	spin_lock_init(&core_imc_refc[core_id].lock);
 
 	rc = opal_imc_counters_init(OPAL_IMC_COUNTERS_CORE,
 				__pa((void *)mem_info->vbase),
@@ -686,9 +695,8 @@
 		perf_pmu_migrate_context(&core_imc_pmu->pmu, cpu, ncpu);
 	} else {
 		/*
-		 * If this is the last cpu in this core then, skip taking refernce
-		 * count mutex lock for this core and directly zero "refc" for
-		 * this core.
+		 * If this is the last cpu in this core then skip taking reference
+		 * count lock for this core and directly zero "refc" for this core.
 		 */
 		opal_imc_counters_stop(OPAL_IMC_COUNTERS_CORE,
 				       get_hard_smp_processor_id(cpu));
@@ -698,6 +706,16 @@
 			return -EINVAL;
 
 		ref->refc = 0;
+		/*
+		 * Reduce the global reference count, if this is the
+		 * last cpu in this core and core-imc event running
+		 * in this cpu.
+		 */
+		spin_lock(&imc_global_refc.lock);
+		if (imc_global_refc.id == IMC_DOMAIN_CORE)
+			imc_global_refc.refc--;
+
+		spin_unlock(&imc_global_refc.lock);
 	}
 	return 0;
 }
@@ -710,6 +728,23 @@
 				 ppc_core_imc_cpu_offline);
 }
 
+static void reset_global_refc(struct perf_event *event)
+{
+		spin_lock(&imc_global_refc.lock);
+		imc_global_refc.refc--;
+
+		/*
+		 * If no other thread is running any
+		 * event for this domain(thread/core/trace),
+		 * set the global id to zero.
+		 */
+		if (imc_global_refc.refc <= 0) {
+			imc_global_refc.refc = 0;
+			imc_global_refc.id = 0;
+		}
+		spin_unlock(&imc_global_refc.lock);
+}
+
 static void core_imc_counters_release(struct perf_event *event)
 {
 	int rc, core_id;
@@ -720,17 +755,17 @@
 	/*
 	 * See if we need to disable the IMC PMU.
 	 * If no events are currently in use, then we have to take a
-	 * mutex to ensure that we don't race with another task doing
+	 * lock to ensure that we don't race with another task doing
 	 * enable or disable the core counters.
 	 */
 	core_id = event->cpu / threads_per_core;
 
-	/* Take the mutex lock and decrement the refernce count for this core */
+	/* Take the lock and decrement the refernce count for this core */
 	ref = &core_imc_refc[core_id];
 	if (!ref)
 		return;
 
-	mutex_lock(&ref->lock);
+	spin_lock(&ref->lock);
 	if (ref->refc == 0) {
 		/*
 		 * The scenario where this is true is, when perf session is
@@ -742,7 +777,7 @@
 		 * an OPAL call to disable the engine in that core.
 		 *
 		 */
-		mutex_unlock(&ref->lock);
+		spin_unlock(&ref->lock);
 		return;
 	}
 	ref->refc--;
@@ -750,7 +785,7 @@
 		rc = opal_imc_counters_stop(OPAL_IMC_COUNTERS_CORE,
 					    get_hard_smp_processor_id(event->cpu));
 		if (rc) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("IMC: Unable to stop the counters for core %d\n", core_id);
 			return;
 		}
@@ -758,7 +793,9 @@
 		WARN(1, "core-imc: Invalid event reference count\n");
 		ref->refc = 0;
 	}
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
+
+	reset_global_refc(event);
 }
 
 static int core_imc_event_init(struct perf_event *event)
@@ -794,7 +831,6 @@
 	if ((!pcmi->vbase))
 		return -ENODEV;
 
-	/* Get the core_imc mutex for this core */
 	ref = &core_imc_refc[core_id];
 	if (!ref)
 		return -EINVAL;
@@ -802,22 +838,45 @@
 	/*
 	 * Core pmu units are enabled only when it is used.
 	 * See if this is triggered for the first time.
-	 * If yes, take the mutex lock and enable the core counters.
+	 * If yes, take the lock and enable the core counters.
 	 * If not, just increment the count in core_imc_refc struct.
 	 */
-	mutex_lock(&ref->lock);
+	spin_lock(&ref->lock);
 	if (ref->refc == 0) {
 		rc = opal_imc_counters_start(OPAL_IMC_COUNTERS_CORE,
 					     get_hard_smp_processor_id(event->cpu));
 		if (rc) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("core-imc: Unable to start the counters for core %d\n",
 									core_id);
 			return rc;
 		}
 	}
 	++ref->refc;
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
+
+	/*
+	 * Since the system can run either in accumulation or trace-mode
+	 * of IMC at a time, core-imc events are allowed only if no other
+	 * trace/thread imc events are enabled/monitored.
+	 *
+	 * Take the global lock, and check the refc.id
+	 * to know whether any other trace/thread imc
+	 * events are running.
+	 */
+	spin_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == 0 || imc_global_refc.id == IMC_DOMAIN_CORE) {
+		/*
+		 * No other trace/thread imc events are running in
+		 * the system, so set the refc.id to core-imc.
+		 */
+		imc_global_refc.id = IMC_DOMAIN_CORE;
+		imc_global_refc.refc++;
+	} else {
+		spin_unlock(&imc_global_refc.lock);
+		return -EBUSY;
+	}
+	spin_unlock(&imc_global_refc.lock);
 
 	event->hw.event_base = (u64)pcmi->vbase + (config & IMC_EVENT_OFFSET_MASK);
 	event->destroy = core_imc_counters_release;
@@ -877,7 +936,23 @@
 
 static int ppc_thread_imc_cpu_offline(unsigned int cpu)
 {
-	mtspr(SPRN_LDBAR, 0);
+	/*
+	 * Set the bit 0 of LDBAR to zero.
+	 *
+	 * If bit 0 of LDBAR is unset, it will stop posting
+	 * the counter data to memory.
+	 * For thread-imc, bit 0 of LDBAR will be set to 1 in the
+	 * event_add function. So reset this bit here, to stop the updates
+	 * to memory in the cpu_offline path.
+	 */
+	mtspr(SPRN_LDBAR, (mfspr(SPRN_LDBAR) & (~(1UL << 63))));
+
+	/* Reduce the refc if thread-imc event running on this cpu */
+	spin_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == IMC_DOMAIN_THREAD)
+		imc_global_refc.refc--;
+	spin_unlock(&imc_global_refc.lock);
+
 	return 0;
 }
 
@@ -916,7 +991,22 @@
 	if (!target)
 		return -EINVAL;
 
+	spin_lock(&imc_global_refc.lock);
+	/*
+	 * Check if any other trace/core imc events are running in the
+	 * system, if not set the global id to thread-imc.
+	 */
+	if (imc_global_refc.id == 0 || imc_global_refc.id == IMC_DOMAIN_THREAD) {
+		imc_global_refc.id = IMC_DOMAIN_THREAD;
+		imc_global_refc.refc++;
+	} else {
+		spin_unlock(&imc_global_refc.lock);
+		return -EBUSY;
+	}
+	spin_unlock(&imc_global_refc.lock);
+
 	event->pmu->task_ctx_nr = perf_sw_context;
+	event->destroy = reset_global_refc;
 	return 0;
 }
 
@@ -1035,25 +1125,25 @@
 	/*
 	 * imc pmus are enabled only when it is used.
 	 * See if this is triggered for the first time.
-	 * If yes, take the mutex lock and enable the counters.
+	 * If yes, take the lock and enable the counters.
 	 * If not, just increment the count in ref count struct.
 	 */
 	ref = &core_imc_refc[core_id];
 	if (!ref)
 		return -EINVAL;
 
-	mutex_lock(&ref->lock);
+	spin_lock(&ref->lock);
 	if (ref->refc == 0) {
 		if (opal_imc_counters_start(OPAL_IMC_COUNTERS_CORE,
 		    get_hard_smp_processor_id(smp_processor_id()))) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("thread-imc: Unable to start the counter\
 				for core %d\n", core_id);
 			return -EINVAL;
 		}
 	}
 	++ref->refc;
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
 	return 0;
 }
 
@@ -1063,17 +1153,19 @@
 	int core_id;
 	struct imc_pmu_ref *ref;
 
-	mtspr(SPRN_LDBAR, 0);
-
 	core_id = smp_processor_id() / threads_per_core;
 	ref = &core_imc_refc[core_id];
+	if (!ref) {
+		pr_debug("imc: Failed to get event reference count\n");
+		return;
+	}
 
-	mutex_lock(&ref->lock);
+	spin_lock(&ref->lock);
 	ref->refc--;
 	if (ref->refc == 0) {
 		if (opal_imc_counters_stop(OPAL_IMC_COUNTERS_CORE,
 		    get_hard_smp_processor_id(smp_processor_id()))) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("thread-imc: Unable to stop the counters\
 				for core %d\n", core_id);
 			return;
@@ -1081,7 +1173,11 @@
 	} else if (ref->refc < 0) {
 		ref->refc = 0;
 	}
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
+
+	/* Set bit 0 of LDBAR to zero, to stop posting updates to memory */
+	mtspr(SPRN_LDBAR, (mfspr(SPRN_LDBAR) & (~(1UL << 63))));
+
 	/*
 	 * Take a snapshot and calculate the delta and update
 	 * the event counter values.
@@ -1118,9 +1214,8 @@
 		}
 	}
 
-	/* Init the mutex, if not already */
 	trace_imc_refc[core_id].id = core_id;
-	mutex_init(&trace_imc_refc[core_id].lock);
+	spin_lock_init(&trace_imc_refc[core_id].lock);
 
 	mtspr(SPRN_LDBAR, 0);
 	return 0;
@@ -1133,7 +1228,18 @@
 
 static int ppc_trace_imc_cpu_offline(unsigned int cpu)
 {
-	mtspr(SPRN_LDBAR, 0);
+	/*
+	 * No need to set bit 0 of LDBAR to zero, as
+	 * it is set to zero for imc trace-mode
+	 *
+	 * Reduce the refc if any trace-imc event running
+	 * on this cpu.
+	 */
+	spin_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == IMC_DOMAIN_TRACE)
+		imc_global_refc.refc--;
+	spin_unlock(&imc_global_refc.lock);
+
 	return 0;
 }
 
@@ -1226,29 +1332,26 @@
 	local_mem = get_trace_imc_event_base_addr();
 	ldbar_value = ((u64)local_mem & THREAD_IMC_LDBAR_MASK) | TRACE_IMC_ENABLE;
 
-	if (core_imc_refc)
-		ref = &core_imc_refc[core_id];
+	/* trace-imc reference count */
+	if (trace_imc_refc)
+		ref = &trace_imc_refc[core_id];
 	if (!ref) {
-		/* If core-imc is not enabled, use trace-imc reference count */
-		if (trace_imc_refc)
-			ref = &trace_imc_refc[core_id];
-		if (!ref)
-			return -EINVAL;
+		pr_debug("imc: Failed to get the event reference count\n");
+		return -EINVAL;
 	}
+
 	mtspr(SPRN_LDBAR, ldbar_value);
-	mutex_lock(&ref->lock);
+	spin_lock(&ref->lock);
 	if (ref->refc == 0) {
 		if (opal_imc_counters_start(OPAL_IMC_COUNTERS_TRACE,
 				get_hard_smp_processor_id(smp_processor_id()))) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("trace-imc: Unable to start the counters for core %d\n", core_id);
-			mtspr(SPRN_LDBAR, 0);
 			return -EINVAL;
 		}
 	}
 	++ref->refc;
-	mutex_unlock(&ref->lock);
-
+	spin_unlock(&ref->lock);
 	return 0;
 }
 
@@ -1274,29 +1377,27 @@
 	int core_id = smp_processor_id() / threads_per_core;
 	struct imc_pmu_ref *ref = NULL;
 
-	if (core_imc_refc)
-		ref = &core_imc_refc[core_id];
+	if (trace_imc_refc)
+		ref = &trace_imc_refc[core_id];
 	if (!ref) {
-		/* If core-imc is not enabled, use trace-imc reference count */
-		if (trace_imc_refc)
-			ref = &trace_imc_refc[core_id];
-		if (!ref)
-			return;
+		pr_debug("imc: Failed to get event reference count\n");
+		return;
 	}
-	mtspr(SPRN_LDBAR, 0);
-	mutex_lock(&ref->lock);
+
+	spin_lock(&ref->lock);
 	ref->refc--;
 	if (ref->refc == 0) {
 		if (opal_imc_counters_stop(OPAL_IMC_COUNTERS_TRACE,
 				get_hard_smp_processor_id(smp_processor_id()))) {
-			mutex_unlock(&ref->lock);
+			spin_unlock(&ref->lock);
 			pr_err("trace-imc: Unable to stop the counters for core %d\n", core_id);
 			return;
 		}
 	} else if (ref->refc < 0) {
 		ref->refc = 0;
 	}
-	mutex_unlock(&ref->lock);
+	spin_unlock(&ref->lock);
+
 	trace_imc_event_stop(event, flags);
 }
 
@@ -1314,10 +1415,34 @@
 	if (event->attr.sample_period == 0)
 		return -ENOENT;
 
+	/*
+	 * Take the global lock, and make sure
+	 * no other thread is running any core/thread imc
+	 * events
+	 */
+	spin_lock(&imc_global_refc.lock);
+	if (imc_global_refc.id == 0 || imc_global_refc.id == IMC_DOMAIN_TRACE) {
+		/*
+		 * No core/thread imc events are running in the
+		 * system, so set the refc.id to trace-imc.
+		 */
+		imc_global_refc.id = IMC_DOMAIN_TRACE;
+		imc_global_refc.refc++;
+	} else {
+		spin_unlock(&imc_global_refc.lock);
+		return -EBUSY;
+	}
+	spin_unlock(&imc_global_refc.lock);
+
 	event->hw.idx = -1;
 	target = event->hw.target;
 
-	event->pmu->task_ctx_nr = perf_hw_context;
+	/*
+	 * There can only be a single PMU for perf_hw_context events which is assigned to
+	 * core PMU. Hence use "perf_sw_context" for trace_imc.
+	 */
+	event->pmu->task_ctx_nr = perf_sw_context;
+	event->destroy = reset_global_refc;
 	return 0;
 }
 
@@ -1380,10 +1505,10 @@
 	i = 0;
 	for_each_node(nid) {
 		/*
-		 * Mutex lock to avoid races while tracking the number of
+		 * Take the lock to avoid races while tracking the number of
 		 * sessions using the chip's nest pmu units.
 		 */
-		mutex_init(&nest_imc_refc[i].lock);
+		spin_lock_init(&nest_imc_refc[i].lock);
 
 		/*
 		 * Loop to init the "id" with the node_id. Variable "i" initialized to
@@ -1429,10 +1554,10 @@
 static void thread_imc_ldbar_disable(void *dummy)
 {
 	/*
-	 * By Zeroing LDBAR, we disable thread-imc
-	 * updates.
+	 * By setting 0th bit of LDBAR to zero, we disable thread-imc
+	 * updates to memory.
 	 */
-	mtspr(SPRN_LDBAR, 0);
+	mtspr(SPRN_LDBAR, (mfspr(SPRN_LDBAR) & (~(1UL << 63))));
 }
 
 void thread_imc_disable(void)
--- linux-ein-5.4.0.orig/arch/powerpc/perf/isa207-common.c
+++ linux-ein-5.4.0/arch/powerpc/perf/isa207-common.c
@@ -269,6 +269,15 @@
 
 		mask  |= CNST_PMC_MASK(pmc);
 		value |= CNST_PMC_VAL(pmc);
+
+		/*
+		 * PMC5 and PMC6 are used to count cycles and instructions and
+		 * they do not support most of the constraint bits. Add a check
+		 * to exclude PMC5/6 from most of the constraints except for
+		 * EBB/BHRB.
+		 */
+		if (pmc >= 5)
+			goto ebb_bhrb;
 	}
 
 	if (pmc <= 4) {
@@ -317,7 +326,8 @@
 		if (event_is_threshold(event) && is_thresh_cmp_valid(event)) {
 			mask  |= CNST_THRESH_MASK;
 			value |= CNST_THRESH_VAL(event >> EVENT_THRESH_SHIFT);
-		}
+		} else if (event_is_threshold(event))
+			return -1;
 	} else {
 		/*
 		 * Special case for PM_MRK_FAB_RSP_MATCH and PM_MRK_FAB_RSP_MATCH_CYC,
@@ -335,6 +345,7 @@
 		}
 	}
 
+ebb_bhrb:
 	if (!pmc && ebb)
 		/* EBB events must specify the PMC */
 		return -1;
@@ -353,8 +364,8 @@
 	 * EBB events are pinned & exclusive, so this should never actually
 	 * hit, but we leave it as a fallback in case.
 	 */
-	mask  |= CNST_EBB_VAL(ebb);
-	value |= CNST_EBB_MASK;
+	mask  |= CNST_EBB_MASK;
+	value |= CNST_EBB_VAL(ebb);
 
 	*maskp = mask;
 	*valp = value;
--- linux-ein-5.4.0.orig/arch/powerpc/perf/power9-pmu.c
+++ linux-ein-5.4.0/arch/powerpc/perf/power9-pmu.c
@@ -131,11 +131,11 @@
 
 /* Table of alternatives, sorted by column 0 */
 static const unsigned int power9_event_alternatives[][MAX_ALT] = {
-	{ PM_INST_DISP,			PM_INST_DISP_ALT },
-	{ PM_RUN_CYC_ALT,		PM_RUN_CYC },
-	{ PM_RUN_INST_CMPL_ALT,		PM_RUN_INST_CMPL },
-	{ PM_LD_MISS_L1,		PM_LD_MISS_L1_ALT },
 	{ PM_BR_2PATH,			PM_BR_2PATH_ALT },
+	{ PM_INST_DISP,			PM_INST_DISP_ALT },
+	{ PM_RUN_CYC_ALT,               PM_RUN_CYC },
+	{ PM_LD_MISS_L1,                PM_LD_MISS_L1_ALT },
+	{ PM_RUN_INST_CMPL_ALT,         PM_RUN_INST_CMPL },
 };
 
 static int power9_get_alternatives(u64 event, unsigned int flags, u64 alt[])
--- linux-ein-5.4.0.orig/arch/powerpc/perf/req-gen/perf.h
+++ linux-ein-5.4.0/arch/powerpc/perf/req-gen/perf.h
@@ -139,6 +139,26 @@
 #define REQUEST_(r_name, r_value, r_idx_1, r_fields)			\
 	r_fields
 
+/* Generate event list for platforms with counter_info_version 0x6 or below */
+static __maybe_unused struct attribute *hv_gpci_event_attrs_v6[] = {
+#include REQUEST_FILE
+	NULL
+};
+
+/*
+ * Based on getPerfCountInfo v1.018 documentation, some of the hv-gpci
+ * events were deprecated for platform firmware that supports
+ * counter_info_version 0x8 or above.
+ * Those deprecated events are still part of platform firmware that
+ * support counter_info_version 0x6 and below. As per the getPerfCountInfo
+ * v1.018 documentation there is no counter_info_version 0x7.
+ * Undefining macro ENABLE_EVENTS_COUNTERINFO_V6, to disable the addition of
+ * deprecated events in "hv_gpci_event_attrs" attribute group, for platforms
+ * that supports counter_info_version 0x8 or above.
+ */
+#undef ENABLE_EVENTS_COUNTERINFO_V6
+
+/* Generate event list for platforms with counter_info_version 0x8 or above*/
 static __maybe_unused struct attribute *hv_gpci_event_attrs[] = {
 #include REQUEST_FILE
 	NULL
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/44x/fsp2.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/44x/fsp2.c
@@ -208,6 +208,7 @@
 		if (irq == NO_IRQ) {
 			pr_err("device tree node %pOFn is missing a interrupt",
 			      np);
+			of_node_put(np);
 			return;
 		}
 
@@ -215,6 +216,7 @@
 		if (rc) {
 			pr_err("fsp_of_probe: request_irq failed: np=%pOF rc=%d",
 			      np, rc);
+			of_node_put(np);
 			return;
 		}
 	}
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/4xx/cpm.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/4xx/cpm.c
@@ -327,6 +327,6 @@
 static int __init cpm_powersave_off(char *arg)
 {
 	cpm.powersave_off = 1;
-	return 0;
+	return 1;
 }
 __setup("powersave=off", cpm_powersave_off);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/4xx/pci.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/4xx/pci.c
@@ -1242,7 +1242,7 @@
 	if (mbase == NULL) {
 		printk(KERN_ERR "%pOF: Can't map internal config space !",
 			port->node);
-		goto done;
+		return;
 	}
 
 	while (attempt && (0 == (in_le32(mbase + PECFG_460SX_DLLSTA)
@@ -1252,9 +1252,7 @@
 	}
 	if (attempt)
 		port->link = 1;
-done:
 	iounmap(mbase);
-
 }
 
 static struct ppc4xx_pciex_hwops ppc460sx_pcie_hwops __initdata = {
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/512x/clock-commonclk.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/512x/clock-commonclk.c
@@ -984,7 +984,7 @@
 
 #define NODE_PREP do { \
 	of_address_to_resource(np, 0, &res); \
-	snprintf(devname, sizeof(devname), "%08x.%s", res.start, np->name); \
+	snprintf(devname, sizeof(devname), "%pa.%s", &res.start, np->name); \
 } while (0)
 
 #define NODE_CHK(clkname, clkitem, regnode, regflag) do { \
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/52xx/lite5200_sleep.S
+++ linux-ein-5.4.0/arch/powerpc/platforms/52xx/lite5200_sleep.S
@@ -181,7 +181,7 @@
   udelay: /* r11 - tb_ticks_per_usec, r12 - usecs, overwrites r13 */
 	mullw	r12, r12, r11
 	mftb	r13	/* start */
-	addi	r12, r13, r12 /* end */
+	add	r12, r13, r12 /* end */
     1:
 	mftb	r13	/* current */
 	cmp	cr0, r13, r12
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
@@ -530,6 +530,7 @@
  err_bcom_rx_irq:
 	bcom_gen_bd_rx_release(lpbfifo.bcom_rx_task);
  err_bcom_rx:
+	free_irq(lpbfifo.irq, &lpbfifo);
  err_irq:
 	iounmap(lpbfifo.regs);
 	lpbfifo.regs = NULL;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -340,7 +340,7 @@
 {
 	int l1irq;
 	int l2irq;
-	struct irq_chip *uninitialized_var(irqchip);
+	struct irq_chip *irqchip;
 	void *hndlr;
 	int type;
 	u32 reg;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/83xx/mpc832x_rdb.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/83xx/mpc832x_rdb.c
@@ -107,7 +107,7 @@
 
 		goto next;
 unreg:
-		platform_device_del(pdev);
+		platform_device_put(pdev);
 err:
 		pr_err("%pOF: registration failed\n", np);
 next:
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c
@@ -94,9 +94,8 @@
 			pr_err("Could not map guts node address\n");
 			return -ENOMEM;
 		}
+		qoriq_pm_ops = &mpc85xx_pm_ops;
 	}
 
-	qoriq_pm_ops = &mpc85xx_pm_ops;
-
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/8xx/cpm1.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/8xx/cpm1.c
@@ -292,6 +292,7 @@
 		out_be32(bp, (((BRG_UART_CLK_DIV16 / rate) - 1) << 1) |
 			      CPM_BRG_EN | CPM_BRG_DIV16);
 }
+EXPORT_SYMBOL(cpm_setbrg);
 
 struct cpm_ioport16 {
 	__be16 dir, par, odr_sor, dat, intr;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/8xx/micropatch.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/8xx/micropatch.c
@@ -361,6 +361,17 @@
 	if (IS_ENABLED(CONFIG_SMC_UCODE_PATCH)) {
 		smc_uart_t *smp;
 
+		if (IS_ENABLED(CONFIG_PPC_EARLY_DEBUG_CPM)) {
+			int i;
+
+			for (i = 0; i < sizeof(*smp); i += 4) {
+				u32 __iomem *src = (u32 __iomem *)&cp->cp_dparam[PROFF_SMC1 + i];
+				u32 __iomem *dst = (u32 __iomem *)&cp->cp_dparam[PROFF_DSP1 + i];
+
+				out_be32(dst, in_be32(src));
+			}
+		}
+
 		smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC1];
 		out_be16(&smp->smc_rpbase, 0x1ec0);
 		smp = (smc_uart_t *)&cp->cp_dparam[PROFF_SMC2];
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/8xx/pic.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/8xx/pic.c
@@ -153,6 +153,7 @@
 	if (mpc8xx_pic_host == NULL) {
 		printk(KERN_ERR "MPC8xx PIC: failed to allocate irq host!\n");
 		ret = -ENOMEM;
+		goto out;
 	}
 
 	ret = 0;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/Kconfig
+++ linux-ein-5.4.0/arch/powerpc/platforms/Kconfig
@@ -219,12 +219,11 @@
 	  temperature within 2-4 degrees Celsius. This option shows the current
 	  on-die temperature in /proc/cpuinfo if the cpu supports it.
 
-	  Unfortunately, on some chip revisions, this sensor is very inaccurate
-	  and in many cases, does not work at all, so don't assume the cpu
-	  temp is actually what /proc/cpuinfo says it is.
+	  Unfortunately, this sensor is very inaccurate when uncalibrated, so
+	  don't assume the cpu temp is actually what /proc/cpuinfo says it is.
 
 config TAU_INT
-	bool "Interrupt driven TAU driver (DANGEROUS)"
+	bool "Interrupt driven TAU driver (EXPERIMENTAL)"
 	depends on TAU
 	---help---
 	  The TAU supports an interrupt driven mode which causes an interrupt
@@ -232,12 +231,7 @@
 	  to get notified the temp has exceeded a range. With this option off,
 	  a timer is used to re-check the temperature periodically.
 
-	  However, on some cpus it appears that the TAU interrupt hardware
-	  is buggy and can cause a situation which would lead unexplained hard
-	  lockups.
-
-	  Unless you are extending the TAU driver, or enjoy kernel/hardware
-	  debugging, leave this option off.
+	  If in doubt, say N here.
 
 config TAU_AVERAGE
 	bool "Average high and low temp"
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/Kconfig.cputype
+++ linux-ein-5.4.0/arch/powerpc/platforms/Kconfig.cputype
@@ -118,9 +118,9 @@
 	depends on PPC64 && CPU_LITTLE_ENDIAN
 	select ARCH_HAS_FAST_MULTIPLIER
 
-config GENERIC_CPU
+config POWERPC_CPU
 	bool "Generic 32 bits powerpc"
-	depends on PPC32 && !PPC_8xx
+	depends on PPC32 && !PPC_8xx && !PPC_85xx
 
 config CELL_CPU
 	bool "Cell Broadband Engine"
@@ -151,11 +151,11 @@
 
 config E5500_CPU
 	bool "Freescale e5500"
-	depends on E500
+	depends on PPC64 && E500
 
 config E6500_CPU
 	bool "Freescale e6500"
-	depends on E500
+	depends on PPC64 && E500
 
 config 860_CPU
 	bool "8xx family"
@@ -174,11 +174,23 @@
 	depends on PPC_BOOK3S_32
 	select ALTIVEC
 
+config E500_CPU
+	bool "e500 (8540)"
+	depends on PPC_85xx && !PPC_E500MC
+
+config E500MC_CPU
+	bool "e500mc"
+	depends on PPC_85xx && PPC_E500MC
+
+config TOOLCHAIN_DEFAULT_CPU
+	bool "Rely on the toolchain's implicit default CPU"
+	depends on PPC32
+
 endchoice
 
 config TARGET_CPU_BOOL
 	bool
-	default !GENERIC_CPU
+	default !GENERIC_CPU && !TOOLCHAIN_DEFAULT_CPU
 
 config TARGET_CPU
 	string
@@ -193,6 +205,9 @@
 	default "e300c2" if E300C2_CPU
 	default "e300c3" if E300C3_CPU
 	default "G4" if G4_CPU
+	default "8540" if E500_CPU
+	default "e500mc" if E500MC_CPU
+	default "powerpc" if POWERPC_CPU
 
 config PPC_BOOK3S
 	def_bool y
@@ -389,7 +404,7 @@
 
 config PPC_KUAP_DEBUG
 	bool "Extra debugging for Kernel Userspace Access Protection"
-	depends on PPC_HAVE_KUAP && (PPC_RADIX_MMU || PPC_32)
+	depends on PPC_KUAP && (PPC_RADIX_MMU || PPC32)
 	help
 	  Add extra debugging for Kernel Userspace Access Protection (KUAP)
 	  If you're unsure, say N.
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/cell/Kconfig
+++ linux-ein-5.4.0/arch/powerpc/platforms/cell/Kconfig
@@ -44,6 +44,7 @@
 	tristate "SPU file system"
 	default m
 	depends on PPC_CELL
+	depends on COREDUMP
 	select SPU_BASE
 	help
 	  The SPU file system is used to access Synergistic Processing
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/cell/axon_msi.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/cell/axon_msi.c
@@ -226,6 +226,7 @@
 	if (!prop) {
 		dev_dbg(&dev->dev,
 			"axon_msi: no msi-address-(32|64) properties found\n");
+		of_node_put(dn);
 		return -ENOENT;
 	}
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/cell/iommu.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/cell/iommu.c
@@ -976,6 +976,7 @@
 			if (hbase < dbase || (hend > (dbase + dsize))) {
 				pr_debug("iommu: hash window doesn't fit in"
 					 "real DMA window\n");
+				of_node_put(np);
 				return -1;
 			}
 		}
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/cell/pervasive.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/cell/pervasive.c
@@ -77,6 +77,7 @@
 	switch (regs->msr & SRR1_WAKEMASK) {
 	case SRR1_WAKEDEC:
 		set_dec(1);
+		break;
 	case SRR1_WAKEEE:
 		/*
 		 * Handle these when interrupts get re-enabled and we take
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/cell/spufs/file.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/cell/spufs/file.c
@@ -1978,8 +1978,9 @@
 static ssize_t spufs_mbox_info_read(struct file *file, char __user *buf,
 				   size_t len, loff_t *pos)
 {
-	int ret;
 	struct spu_context *ctx = file->private_data;
+	u32 stat, data;
+	int ret;
 
 	if (!access_ok(buf, len))
 		return -EFAULT;
@@ -1988,11 +1989,16 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_mbox_info_read(ctx, buf, len, pos);
+	stat = ctx->csa.prob.mb_stat_R;
+	data = ctx->csa.prob.pu_mb_R;
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	/* EOF if there's no entry in the mbox */
+	if (!(stat & 0x0000ff))
+		return 0;
+
+	return simple_read_from_buffer(buf, len, pos, &data, sizeof(data));
 }
 
 static const struct file_operations spufs_mbox_info_fops = {
@@ -2019,6 +2025,7 @@
 				   size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
+	u32 stat, data;
 	int ret;
 
 	if (!access_ok(buf, len))
@@ -2028,11 +2035,16 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_ibox_info_read(ctx, buf, len, pos);
+	stat = ctx->csa.prob.mb_stat_R;
+	data = ctx->csa.priv2.puint_mb_R;
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	/* EOF if there's no entry in the ibox */
+	if (!(stat & 0xff0000))
+		return 0;
+
+	return simple_read_from_buffer(buf, len, pos, &data, sizeof(data));
 }
 
 static const struct file_operations spufs_ibox_info_fops = {
@@ -2041,6 +2053,11 @@
 	.llseek  = generic_file_llseek,
 };
 
+static size_t spufs_wbox_info_cnt(struct spu_context *ctx)
+{
+	return (4 - ((ctx->csa.prob.mb_stat_R & 0x00ff00) >> 8)) * sizeof(u32);
+}
+
 static ssize_t __spufs_wbox_info_read(struct spu_context *ctx,
 			char __user *buf, size_t len, loff_t *pos)
 {
@@ -2049,7 +2066,7 @@
 	u32 wbox_stat;
 
 	wbox_stat = ctx->csa.prob.mb_stat_R;
-	cnt = 4 - ((wbox_stat & 0x00ff00) >> 8);
+	cnt = spufs_wbox_info_cnt(ctx);
 	for (i = 0; i < cnt; i++) {
 		data[i] = ctx->csa.spu_mailbox_data[i];
 	}
@@ -2062,7 +2079,8 @@
 				   size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
-	int ret;
+	u32 data[ARRAY_SIZE(ctx->csa.spu_mailbox_data)];
+	int ret, count;
 
 	if (!access_ok(buf, len))
 		return -EFAULT;
@@ -2071,11 +2089,13 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_wbox_info_read(ctx, buf, len, pos);
+	count = spufs_wbox_info_cnt(ctx);
+	memcpy(&data, &ctx->csa.spu_mailbox_data, sizeof(data));
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	return simple_read_from_buffer(buf, len, pos, &data,
+				count * sizeof(u32));
 }
 
 static const struct file_operations spufs_wbox_info_fops = {
@@ -2084,27 +2104,33 @@
 	.llseek  = generic_file_llseek,
 };
 
-static ssize_t __spufs_dma_info_read(struct spu_context *ctx,
-			char __user *buf, size_t len, loff_t *pos)
+static void spufs_get_dma_info(struct spu_context *ctx,
+		struct spu_dma_info *info)
 {
-	struct spu_dma_info info;
-	struct mfc_cq_sr *qp, *spuqp;
 	int i;
 
-	info.dma_info_type = ctx->csa.priv2.spu_tag_status_query_RW;
-	info.dma_info_mask = ctx->csa.lscsa->tag_mask.slot[0];
-	info.dma_info_status = ctx->csa.spu_chnldata_RW[24];
-	info.dma_info_stall_and_notify = ctx->csa.spu_chnldata_RW[25];
-	info.dma_info_atomic_command_status = ctx->csa.spu_chnldata_RW[27];
+	info->dma_info_type = ctx->csa.priv2.spu_tag_status_query_RW;
+	info->dma_info_mask = ctx->csa.lscsa->tag_mask.slot[0];
+	info->dma_info_status = ctx->csa.spu_chnldata_RW[24];
+	info->dma_info_stall_and_notify = ctx->csa.spu_chnldata_RW[25];
+	info->dma_info_atomic_command_status = ctx->csa.spu_chnldata_RW[27];
 	for (i = 0; i < 16; i++) {
-		qp = &info.dma_info_command_data[i];
-		spuqp = &ctx->csa.priv2.spuq[i];
+		struct mfc_cq_sr *qp = &info->dma_info_command_data[i];
+		struct mfc_cq_sr *spuqp = &ctx->csa.priv2.spuq[i];
 
 		qp->mfc_cq_data0_RW = spuqp->mfc_cq_data0_RW;
 		qp->mfc_cq_data1_RW = spuqp->mfc_cq_data1_RW;
 		qp->mfc_cq_data2_RW = spuqp->mfc_cq_data2_RW;
 		qp->mfc_cq_data3_RW = spuqp->mfc_cq_data3_RW;
 	}
+}
+
+static ssize_t __spufs_dma_info_read(struct spu_context *ctx,
+			char __user *buf, size_t len, loff_t *pos)
+{
+	struct spu_dma_info info;
+
+	spufs_get_dma_info(ctx, &info);
 
 	return simple_read_from_buffer(buf, len, pos, &info,
 				sizeof info);
@@ -2114,6 +2140,7 @@
 			      size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
+	struct spu_dma_info info;
 	int ret;
 
 	if (!access_ok(buf, len))
@@ -2123,11 +2150,12 @@
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_dma_info_read(ctx, buf, len, pos);
+	spufs_get_dma_info(ctx, &info);
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	return simple_read_from_buffer(buf, len, pos, &info,
+				sizeof(info));
 }
 
 static const struct file_operations spufs_dma_info_fops = {
@@ -2136,13 +2164,31 @@
 	.llseek = no_llseek,
 };
 
+static void spufs_get_proxydma_info(struct spu_context *ctx,
+		struct spu_proxydma_info *info)
+{
+	int i;
+
+	info->proxydma_info_type = ctx->csa.prob.dma_querytype_RW;
+	info->proxydma_info_mask = ctx->csa.prob.dma_querymask_RW;
+	info->proxydma_info_status = ctx->csa.prob.dma_tagstatus_R;
+
+	for (i = 0; i < 8; i++) {
+		struct mfc_cq_sr *qp = &info->proxydma_info_command_data[i];
+		struct mfc_cq_sr *puqp = &ctx->csa.priv2.puq[i];
+
+		qp->mfc_cq_data0_RW = puqp->mfc_cq_data0_RW;
+		qp->mfc_cq_data1_RW = puqp->mfc_cq_data1_RW;
+		qp->mfc_cq_data2_RW = puqp->mfc_cq_data2_RW;
+		qp->mfc_cq_data3_RW = puqp->mfc_cq_data3_RW;
+	}
+}
+
 static ssize_t __spufs_proxydma_info_read(struct spu_context *ctx,
 			char __user *buf, size_t len, loff_t *pos)
 {
 	struct spu_proxydma_info info;
-	struct mfc_cq_sr *qp, *puqp;
 	int ret = sizeof info;
-	int i;
 
 	if (len < ret)
 		return -EINVAL;
@@ -2150,18 +2196,7 @@
 	if (!access_ok(buf, len))
 		return -EFAULT;
 
-	info.proxydma_info_type = ctx->csa.prob.dma_querytype_RW;
-	info.proxydma_info_mask = ctx->csa.prob.dma_querymask_RW;
-	info.proxydma_info_status = ctx->csa.prob.dma_tagstatus_R;
-	for (i = 0; i < 8; i++) {
-		qp = &info.proxydma_info_command_data[i];
-		puqp = &ctx->csa.priv2.puq[i];
-
-		qp->mfc_cq_data0_RW = puqp->mfc_cq_data0_RW;
-		qp->mfc_cq_data1_RW = puqp->mfc_cq_data1_RW;
-		qp->mfc_cq_data2_RW = puqp->mfc_cq_data2_RW;
-		qp->mfc_cq_data3_RW = puqp->mfc_cq_data3_RW;
-	}
+	spufs_get_proxydma_info(ctx, &info);
 
 	return simple_read_from_buffer(buf, len, pos, &info,
 				sizeof info);
@@ -2171,17 +2206,19 @@
 				   size_t len, loff_t *pos)
 {
 	struct spu_context *ctx = file->private_data;
+	struct spu_proxydma_info info;
 	int ret;
 
 	ret = spu_acquire_saved(ctx);
 	if (ret)
 		return ret;
 	spin_lock(&ctx->csa.register_lock);
-	ret = __spufs_proxydma_info_read(ctx, buf, len, pos);
+	spufs_get_proxydma_info(ctx, &info);
 	spin_unlock(&ctx->csa.register_lock);
 	spu_release_saved(ctx);
 
-	return ret;
+	return simple_read_from_buffer(buf, len, pos, &info,
+				sizeof(info));
 }
 
 static const struct file_operations spufs_proxydma_info_fops = {
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/cell/spufs/inode.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/cell/spufs/inode.c
@@ -671,6 +671,7 @@
 		return;
 
 	loader = of_get_property(dn, "loader", &size);
+	of_node_put(dn);
 	if (!loader)
 		return;
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/embedded6xx/flipper-pic.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/embedded6xx/flipper-pic.c
@@ -144,7 +144,7 @@
 	}
 	io_base = ioremap(res.start, resource_size(&res));
 
-	pr_info("controller at 0x%08x mapped to 0x%p\n", res.start, io_base);
+	pr_info("controller at 0x%pa mapped to 0x%p\n", &res.start, io_base);
 
 	__flipper_quiesce(io_base);
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -173,7 +173,7 @@
 		return NULL;
 	}
 
-	pr_info("controller at 0x%08x mapped to 0x%p\n", res.start, io_base);
+	pr_info("controller at 0x%pa mapped to 0x%p\n", &res.start, io_base);
 
 	__hlwd_quiesce(io_base);
 
@@ -215,6 +215,7 @@
 			irq_set_chained_handler(cascade_virq,
 						hlwd_pic_irq_cascade);
 			hlwd_irq_host = host;
+			of_node_put(np);
 			break;
 		}
 	}
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/embedded6xx/wii.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/embedded6xx/wii.c
@@ -89,8 +89,8 @@
 
 	hw_regs = ioremap(res.start, resource_size(&res));
 	if (hw_regs) {
-		pr_info("%s at 0x%08x mapped to 0x%p\n", name,
-			res.start, hw_regs);
+		pr_info("%s at 0x%pa mapped to 0x%p\n", name,
+			&res.start, hw_regs);
 	}
 
 out_put:
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/maple/setup.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/maple/setup.c
@@ -294,23 +294,6 @@
 	return 1;
 }
 
-define_machine(maple) {
-	.name			= "Maple",
-	.probe			= maple_probe,
-	.setup_arch		= maple_setup_arch,
-	.init_IRQ		= maple_init_IRQ,
-	.pci_irq_fixup		= maple_pci_irq_fixup,
-	.pci_get_legacy_ide_irq	= maple_pci_get_legacy_ide_irq,
-	.restart		= maple_restart,
-	.halt			= maple_halt,
-       	.get_boot_time		= maple_get_boot_time,
-       	.set_rtc_time		= maple_set_rtc_time,
-       	.get_rtc_time		= maple_get_rtc_time,
-      	.calibrate_decr		= generic_calibrate_decr,
-	.progress		= maple_progress,
-	.power_save		= power4_idle,
-};
-
 #ifdef CONFIG_EDAC
 /*
  * Register a platform device for CPC925 memory controller on
@@ -367,3 +350,20 @@
 }
 machine_device_initcall(maple, maple_cpc925_edac_setup);
 #endif
+
+define_machine(maple) {
+	.name			= "Maple",
+	.probe			= maple_probe,
+	.setup_arch		= maple_setup_arch,
+	.init_IRQ		= maple_init_IRQ,
+	.pci_irq_fixup		= maple_pci_irq_fixup,
+	.pci_get_legacy_ide_irq	= maple_pci_get_legacy_ide_irq,
+	.restart		= maple_restart,
+	.halt			= maple_halt,
+	.get_boot_time		= maple_get_boot_time,
+	.set_rtc_time		= maple_set_rtc_time,
+	.get_rtc_time		= maple_get_rtc_time,
+	.calibrate_decr		= generic_calibrate_decr,
+	.progress		= maple_progress,
+	.power_save		= power4_idle,
+};
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powermac/cache.S
+++ linux-ein-5.4.0/arch/powerpc/platforms/powermac/cache.S
@@ -48,7 +48,7 @@
 
 	/* Stop DST streams */
 BEGIN_FTR_SECTION
-	DSSALL
+	PPC_DSSALL
 	sync
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 
@@ -196,7 +196,7 @@
 	isync
 
 	/* Stop prefetch streams */
-	DSSALL
+	PPC_DSSALL
 	sync
 
 	/* Disable L2 prefetching */
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powermac/low_i2c.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powermac/low_i2c.c
@@ -582,6 +582,7 @@
 	bus->close = kw_i2c_close;
 	bus->xfer = kw_i2c_xfer;
 	mutex_init(&bus->mutex);
+	lockdep_register_key(&bus->lock_key);
 	lockdep_set_class(&bus->mutex, &bus->lock_key);
 	if (controller == busnode)
 		bus->flags = pmac_i2c_multibus;
@@ -811,6 +812,7 @@
 		bus->hostdata = bus + 1;
 		bus->xfer = pmu_i2c_xfer;
 		mutex_init(&bus->mutex);
+		lockdep_register_key(&bus->lock_key);
 		lockdep_set_class(&bus->mutex, &bus->lock_key);
 		bus->flags = pmac_i2c_multibus;
 		list_add(&bus->link, &pmac_i2c_busses);
@@ -934,6 +936,7 @@
 		bus->hostdata = bus + 1;
 		bus->xfer = smu_i2c_xfer;
 		mutex_init(&bus->mutex);
+		lockdep_register_key(&bus->lock_key);
 		lockdep_set_class(&bus->mutex, &bus->lock_key);
 		bus->flags = 0;
 		list_add(&bus->link, &pmac_i2c_busses);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powermac/sleep.S
+++ linux-ein-5.4.0/arch/powerpc/platforms/powermac/sleep.S
@@ -293,14 +293,7 @@
 	 * we do any r1 memory access as we are not sure they
 	 * are in a sane state above the first 256Mb region
 	 */
-	li	r0,16		/* load up segment register values */
-	mtctr	r0		/* for context 0 */
-	lis	r3,0x2000	/* Ku = 1, VSID = 0 */
-	li	r4,0
-3:	mtsrin	r3,r4
-	addi	r3,r3,0x111	/* increment VSID */
-	addis	r4,r4,0x1000	/* address of next segment */
-	bdnz	3b
+	bl	load_segment_registers
 	sync
 	isync
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powermac/smp.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powermac/smp.c
@@ -660,13 +660,13 @@
 
 #endif /* !CONFIG_PPC64 */
 
-/* L2 and L3 cache settings to pass from CPU0 to CPU1 on G4 cpus */
-volatile static long int core99_l2_cache;
-volatile static long int core99_l3_cache;
-
 static void core99_init_caches(int cpu)
 {
 #ifndef CONFIG_PPC64
+	/* L2 and L3 cache settings to pass from CPU0 to CPU1 on G4 cpus */
+	static long int core99_l2_cache;
+	static long int core99_l3_cache;
+
 	if (!cpu_has_feature(CPU_FTR_L2CR))
 		return;
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/Makefile
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/Makefile
@@ -20,3 +20,4 @@
 obj-$(CONFIG_PPC_VAS)	+= vas.o vas-window.o vas-debug.o
 obj-$(CONFIG_OCXL_BASE)	+= ocxl.o
 obj-$(CONFIG_SCOM_DEBUGFS) += opal-xscom.o
+obj-$(CONFIG_PPC_SECURE_BOOT) += opal-secvar.o
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/memtrace.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/memtrace.c
@@ -30,6 +30,7 @@
 	char name[16];
 };
 
+static DEFINE_MUTEX(memtrace_mutex);
 static u64 memtrace_size;
 
 static struct memtrace_entry *memtrace_array;
@@ -67,6 +68,23 @@
 	return 0;
 }
 
+static void memtrace_clear_range(unsigned long start_pfn,
+				 unsigned long nr_pages)
+{
+	unsigned long pfn;
+
+	/*
+	 * As pages are offline, we cannot trust the memmap anymore. As HIGHMEM
+	 * does not apply, avoid passing around "struct page" and use
+	 * clear_page() instead directly.
+	 */
+	for (pfn = start_pfn; pfn < start_pfn + nr_pages; pfn++) {
+		if (IS_ALIGNED(pfn, PAGES_PER_SECTION))
+			cond_resched();
+		clear_page(__va(PFN_PHYS(pfn)));
+	}
+}
+
 /* called with device_hotplug_lock held */
 static bool memtrace_offline_pages(u32 nid, u64 start_pfn, u64 nr_pages)
 {
@@ -112,6 +130,11 @@
 	for (base_pfn = end_pfn; base_pfn > start_pfn; base_pfn -= nr_pages) {
 		if (memtrace_offline_pages(nid, base_pfn, nr_pages) == true) {
 			/*
+			 * Clear the range while we still have a linear
+			 * mapping.
+			 */
+			memtrace_clear_range(base_pfn, nr_pages);
+			/*
 			 * Remove memory in memory block size chunks so that
 			 * iomem resources are always split to the same size and
 			 * we never try to remove memory that spans two iomem
@@ -268,6 +291,7 @@
 
 static int memtrace_enable_set(void *data, u64 val)
 {
+	int rc = -EAGAIN;
 	u64 bytes;
 
 	/*
@@ -280,25 +304,31 @@
 		return -EINVAL;
 	}
 
+	mutex_lock(&memtrace_mutex);
+
 	/* Re-add/online previously removed/offlined memory */
 	if (memtrace_size) {
 		if (memtrace_online())
-			return -EAGAIN;
+			goto out_unlock;
 	}
 
-	if (!val)
-		return 0;
+	if (!val) {
+		rc = 0;
+		goto out_unlock;
+	}
 
 	/* Offline and remove memory */
 	if (memtrace_init_regions_runtime(val))
-		return -EINVAL;
+		goto out_unlock;
 
 	if (memtrace_init_debugfs())
-		return -EINVAL;
+		goto out_unlock;
 
 	memtrace_size = val;
-
-	return 0;
+	rc = 0;
+out_unlock:
+	mutex_unlock(&memtrace_mutex);
+	return rc;
 }
 
 static int memtrace_enable_get(void *data, u64 *val)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/npu-dma.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/npu-dma.c
@@ -384,7 +384,8 @@
 	for (i = 0; i < npucomp->pe_num; ++i) {
 		struct pnv_ioda_pe *pe = npucomp->pe[i];
 
-		if (!pe->table_group.ops->take_ownership)
+		if (!pe->table_group.ops ||
+		    !pe->table_group.ops->take_ownership)
 			continue;
 		pe->table_group.ops->take_ownership(&pe->table_group);
 	}
@@ -400,7 +401,8 @@
 	for (i = 0; i < npucomp->pe_num; ++i) {
 		struct pnv_ioda_pe *pe = npucomp->pe[i];
 
-		if (!pe->table_group.ops->release_ownership)
+		if (!pe->table_group.ops ||
+		    !pe->table_group.ops->release_ownership)
 			continue;
 		pe->table_group.ops->release_ownership(&pe->table_group);
 	}
@@ -560,6 +562,11 @@
 		return -ENODEV;
 
 	hose = pci_bus_to_host(npdev->bus);
+	if (hose->npu == NULL) {
+		dev_info_once(&npdev->dev, "Nvlink1 does not support contexts");
+		return 0;
+	}
+
 	nphb = hose->private_data;
 
 	dev_dbg(&gpdev->dev, "Map LPAR opalid=%llu lparid=%u\n",
@@ -607,6 +614,11 @@
 		return -ENODEV;
 
 	hose = pci_bus_to_host(npdev->bus);
+	if (hose->npu == NULL) {
+		dev_info_once(&npdev->dev, "Nvlink1 does not support contexts");
+		return 0;
+	}
+
 	nphb = hose->private_data;
 
 	dev_dbg(&gpdev->dev, "destroy context opalid=%llu\n",
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-call.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-call.c
@@ -290,3 +290,6 @@
 OPAL_CALL(opal_mpipl_update,			OPAL_MPIPL_UPDATE);
 OPAL_CALL(opal_mpipl_register_tag,		OPAL_MPIPL_REGISTER_TAG);
 OPAL_CALL(opal_mpipl_query_tag,			OPAL_MPIPL_QUERY_TAG);
+OPAL_CALL(opal_secvar_get,			OPAL_SECVAR_GET);
+OPAL_CALL(opal_secvar_get_next,			OPAL_SECVAR_GET_NEXT);
+OPAL_CALL(opal_secvar_enqueue_update,		OPAL_SECVAR_ENQUEUE_UPDATE);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-dump.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-dump.c
@@ -318,15 +318,14 @@
 	return count;
 }
 
-static struct dump_obj *create_dump_obj(uint32_t id, size_t size,
-					uint32_t type)
+static void create_dump_obj(uint32_t id, size_t size, uint32_t type)
 {
 	struct dump_obj *dump;
 	int rc;
 
 	dump = kzalloc(sizeof(*dump), GFP_KERNEL);
 	if (!dump)
-		return NULL;
+		return;
 
 	dump->kobj.kset = dump_kset;
 
@@ -346,21 +345,39 @@
 	rc = kobject_add(&dump->kobj, NULL, "0x%x-0x%x", type, id);
 	if (rc) {
 		kobject_put(&dump->kobj);
-		return NULL;
+		return;
 	}
 
+	/*
+	 * As soon as the sysfs file for this dump is created/activated there is
+	 * a chance the opal_errd daemon (or any userspace) might read and
+	 * acknowledge the dump before kobject_uevent() is called. If that
+	 * happens then there is a potential race between
+	 * dump_ack_store->kobject_put() and kobject_uevent() which leads to a
+	 * use-after-free of a kernfs object resulting in a kernel crash.
+	 *
+	 * To avoid that, we need to take a reference on behalf of the bin file,
+	 * so that our reference remains valid while we call kobject_uevent().
+	 * We then drop our reference before exiting the function, leaving the
+	 * bin file to drop the last reference (if it hasn't already).
+	 */
+
+	/* Take a reference for the bin file */
+	kobject_get(&dump->kobj);
 	rc = sysfs_create_bin_file(&dump->kobj, &dump->dump_attr);
-	if (rc) {
+	if (rc == 0) {
+		kobject_uevent(&dump->kobj, KOBJ_ADD);
+
+		pr_info("%s: New platform dump. ID = 0x%x Size %u\n",
+			__func__, dump->id, dump->size);
+	} else {
+		/* Drop reference count taken for bin file */
 		kobject_put(&dump->kobj);
-		return NULL;
 	}
 
-	pr_info("%s: New platform dump. ID = 0x%x Size %u\n",
-		__func__, dump->id, dump->size);
-
-	kobject_uevent(&dump->kobj, KOBJ_ADD);
-
-	return dump;
+	/* Drop our reference */
+	kobject_put(&dump->kobj);
+	return;
 }
 
 static irqreturn_t process_dump(int irq, void *data)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-elog.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-elog.c
@@ -179,14 +179,14 @@
 	return count;
 }
 
-static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type)
+static void create_elog_obj(uint64_t id, size_t size, uint64_t type)
 {
 	struct elog_obj *elog;
 	int rc;
 
 	elog = kzalloc(sizeof(*elog), GFP_KERNEL);
 	if (!elog)
-		return NULL;
+		return;
 
 	elog->kobj.kset = elog_kset;
 
@@ -219,18 +219,37 @@
 	rc = kobject_add(&elog->kobj, NULL, "0x%llx", id);
 	if (rc) {
 		kobject_put(&elog->kobj);
-		return NULL;
+		return;
 	}
 
+	/*
+	 * As soon as the sysfs file for this elog is created/activated there is
+	 * a chance the opal_errd daemon (or any userspace) might read and
+	 * acknowledge the elog before kobject_uevent() is called. If that
+	 * happens then there is a potential race between
+	 * elog_ack_store->kobject_put() and kobject_uevent() which leads to a
+	 * use-after-free of a kernfs object resulting in a kernel crash.
+	 *
+	 * To avoid that, we need to take a reference on behalf of the bin file,
+	 * so that our reference remains valid while we call kobject_uevent().
+	 * We then drop our reference before exiting the function, leaving the
+	 * bin file to drop the last reference (if it hasn't already).
+	 */
+
+	/* Take a reference for the bin file */
+	kobject_get(&elog->kobj);
 	rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr);
-	if (rc) {
+	if (rc == 0) {
+		kobject_uevent(&elog->kobj, KOBJ_ADD);
+	} else {
+		/* Drop the reference taken for the bin file */
 		kobject_put(&elog->kobj);
-		return NULL;
 	}
 
-	kobject_uevent(&elog->kobj, KOBJ_ADD);
+	/* Drop our reference */
+	kobject_put(&elog->kobj);
 
-	return elog;
+	return;
 }
 
 static irqreturn_t elog_event(int irq, void *data)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-fadump.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-fadump.c
@@ -60,7 +60,7 @@
 	addr = be64_to_cpu(addr);
 	pr_debug("Kernel metadata addr: %llx\n", addr);
 	opal_fdm_active = (void *)addr;
-	if (opal_fdm_active->registered_regions == 0)
+	if (be16_to_cpu(opal_fdm_active->registered_regions) == 0)
 		return;
 
 	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_BOOT_MEM, &addr);
@@ -95,17 +95,17 @@
 static void opal_fadump_update_config(struct fw_dump *fadump_conf,
 				      const struct opal_fadump_mem_struct *fdm)
 {
-	pr_debug("Boot memory regions count: %d\n", fdm->region_cnt);
+	pr_debug("Boot memory regions count: %d\n", be16_to_cpu(fdm->region_cnt));
 
 	/*
 	 * The destination address of the first boot memory region is the
 	 * destination address of boot memory regions.
 	 */
-	fadump_conf->boot_mem_dest_addr = fdm->rgn[0].dest;
+	fadump_conf->boot_mem_dest_addr = be64_to_cpu(fdm->rgn[0].dest);
 	pr_debug("Destination address of boot memory regions: %#016llx\n",
 		 fadump_conf->boot_mem_dest_addr);
 
-	fadump_conf->fadumphdr_addr = fdm->fadumphdr_addr;
+	fadump_conf->fadumphdr_addr = be64_to_cpu(fdm->fadumphdr_addr);
 }
 
 /*
@@ -126,9 +126,9 @@
 	fadump_conf->boot_memory_size = 0;
 
 	pr_debug("Boot memory regions:\n");
-	for (i = 0; i < fdm->region_cnt; i++) {
-		base = fdm->rgn[i].src;
-		size = fdm->rgn[i].size;
+	for (i = 0; i < be16_to_cpu(fdm->region_cnt); i++) {
+		base = be64_to_cpu(fdm->rgn[i].src);
+		size = be64_to_cpu(fdm->rgn[i].size);
 		pr_debug("\t[%03d] base: 0x%lx, size: 0x%lx\n", i, base, size);
 
 		fadump_conf->boot_mem_addr[i] = base;
@@ -143,7 +143,7 @@
 	 * Start address of reserve dump area (permanent reservation) for
 	 * re-registering FADump after dump capture.
 	 */
-	fadump_conf->reserve_dump_area_start = fdm->rgn[0].dest;
+	fadump_conf->reserve_dump_area_start = be64_to_cpu(fdm->rgn[0].dest);
 
 	/*
 	 * Rarely, but it can so happen that system crashes before all
@@ -155,13 +155,14 @@
 	 * Hope the memory that could not be preserved only has pages
 	 * that are usually filtered out while saving the vmcore.
 	 */
-	if (fdm->region_cnt > fdm->registered_regions) {
+	if (be16_to_cpu(fdm->region_cnt) > be16_to_cpu(fdm->registered_regions)) {
 		pr_warn("Not all memory regions were saved!!!\n");
 		pr_warn("  Unsaved memory regions:\n");
-		i = fdm->registered_regions;
-		while (i < fdm->region_cnt) {
+		i = be16_to_cpu(fdm->registered_regions);
+		while (i < be16_to_cpu(fdm->region_cnt)) {
 			pr_warn("\t[%03d] base: 0x%llx, size: 0x%llx\n",
-				i, fdm->rgn[i].src, fdm->rgn[i].size);
+				i, be64_to_cpu(fdm->rgn[i].src),
+				be64_to_cpu(fdm->rgn[i].size));
 			i++;
 		}
 
@@ -170,7 +171,7 @@
 	}
 
 	fadump_conf->boot_mem_top = (fadump_conf->boot_memory_size + hole_size);
-	fadump_conf->boot_mem_regs_cnt = fdm->region_cnt;
+	fadump_conf->boot_mem_regs_cnt = be16_to_cpu(fdm->region_cnt);
 	opal_fadump_update_config(fadump_conf, fdm);
 }
 
@@ -178,35 +179,38 @@
 static void opal_fadump_init_metadata(struct opal_fadump_mem_struct *fdm)
 {
 	fdm->version = OPAL_FADUMP_VERSION;
-	fdm->region_cnt = 0;
-	fdm->registered_regions = 0;
-	fdm->fadumphdr_addr = 0;
+	fdm->region_cnt = cpu_to_be16(0);
+	fdm->registered_regions = cpu_to_be16(0);
+	fdm->fadumphdr_addr = cpu_to_be64(0);
 }
 
 static u64 opal_fadump_init_mem_struct(struct fw_dump *fadump_conf)
 {
 	u64 addr = fadump_conf->reserve_dump_area_start;
+	u16 reg_cnt;
 	int i;
 
 	opal_fdm = __va(fadump_conf->kernel_metadata);
 	opal_fadump_init_metadata(opal_fdm);
 
 	/* Boot memory regions */
+	reg_cnt = be16_to_cpu(opal_fdm->region_cnt);
 	for (i = 0; i < fadump_conf->boot_mem_regs_cnt; i++) {
-		opal_fdm->rgn[i].src	= fadump_conf->boot_mem_addr[i];
-		opal_fdm->rgn[i].dest	= addr;
-		opal_fdm->rgn[i].size	= fadump_conf->boot_mem_sz[i];
+		opal_fdm->rgn[i].src	= cpu_to_be64(fadump_conf->boot_mem_addr[i]);
+		opal_fdm->rgn[i].dest	= cpu_to_be64(addr);
+		opal_fdm->rgn[i].size	= cpu_to_be64(fadump_conf->boot_mem_sz[i]);
 
-		opal_fdm->region_cnt++;
+		reg_cnt++;
 		addr += fadump_conf->boot_mem_sz[i];
 	}
+	opal_fdm->region_cnt = cpu_to_be16(reg_cnt);
 
 	/*
 	 * Kernel metadata is passed to f/w and retrieved in capture kerenl.
 	 * So, use it to save fadump header address instead of calculating it.
 	 */
-	opal_fdm->fadumphdr_addr = (opal_fdm->rgn[0].dest +
-				    fadump_conf->boot_memory_size);
+	opal_fdm->fadumphdr_addr = cpu_to_be64(be64_to_cpu(opal_fdm->rgn[0].dest) +
+					       fadump_conf->boot_memory_size);
 
 	opal_fadump_update_config(fadump_conf, opal_fdm);
 
@@ -269,18 +273,21 @@
 static int opal_fadump_register(struct fw_dump *fadump_conf)
 {
 	s64 rc = OPAL_PARAMETER;
+	u16 registered_regs;
 	int i, err = -EIO;
 
-	for (i = 0; i < opal_fdm->region_cnt; i++) {
+	registered_regs = be16_to_cpu(opal_fdm->registered_regions);
+	for (i = 0; i < be16_to_cpu(opal_fdm->region_cnt); i++) {
 		rc = opal_mpipl_update(OPAL_MPIPL_ADD_RANGE,
-				       opal_fdm->rgn[i].src,
-				       opal_fdm->rgn[i].dest,
-				       opal_fdm->rgn[i].size);
+				       be64_to_cpu(opal_fdm->rgn[i].src),
+				       be64_to_cpu(opal_fdm->rgn[i].dest),
+				       be64_to_cpu(opal_fdm->rgn[i].size));
 		if (rc != OPAL_SUCCESS)
 			break;
 
-		opal_fdm->registered_regions++;
+		registered_regs++;
 	}
+	opal_fdm->registered_regions = cpu_to_be16(registered_regs);
 
 	switch (rc) {
 	case OPAL_SUCCESS:
@@ -291,7 +298,8 @@
 	case OPAL_RESOURCE:
 		/* If MAX regions limit in f/w is hit, warn and proceed. */
 		pr_warn("%d regions could not be registered for MPIPL as MAX limit is reached!\n",
-			(opal_fdm->region_cnt - opal_fdm->registered_regions));
+			(be16_to_cpu(opal_fdm->region_cnt) -
+			 be16_to_cpu(opal_fdm->registered_regions)));
 		fadump_conf->dump_registered = 1;
 		err = 0;
 		break;
@@ -312,7 +320,7 @@
 	 * If some regions were registered before OPAL_MPIPL_ADD_RANGE
 	 * OPAL call failed, unregister all regions.
 	 */
-	if ((err < 0) && (opal_fdm->registered_regions > 0))
+	if ((err < 0) && (be16_to_cpu(opal_fdm->registered_regions) > 0))
 		opal_fadump_unregister(fadump_conf);
 
 	return err;
@@ -328,7 +336,7 @@
 		return -EIO;
 	}
 
-	opal_fdm->registered_regions = 0;
+	opal_fdm->registered_regions = cpu_to_be16(0);
 	fadump_conf->dump_registered = 0;
 	return 0;
 }
@@ -563,19 +571,20 @@
 	else
 		fdm_ptr = opal_fdm;
 
-	for (i = 0; i < fdm_ptr->region_cnt; i++) {
+	for (i = 0; i < be16_to_cpu(fdm_ptr->region_cnt); i++) {
 		/*
 		 * Only regions that are registered for MPIPL
 		 * would have dump data.
 		 */
 		if ((fadump_conf->dump_active) &&
-		    (i < fdm_ptr->registered_regions))
-			dumped_bytes = fdm_ptr->rgn[i].size;
+		    (i < be16_to_cpu(fdm_ptr->registered_regions)))
+			dumped_bytes = be64_to_cpu(fdm_ptr->rgn[i].size);
 
 		seq_printf(m, "DUMP: Src: %#016llx, Dest: %#016llx, ",
-			   fdm_ptr->rgn[i].src, fdm_ptr->rgn[i].dest);
+			   be64_to_cpu(fdm_ptr->rgn[i].src),
+			   be64_to_cpu(fdm_ptr->rgn[i].dest));
 		seq_printf(m, "Size: %#llx, Dumped: %#llx bytes\n",
-			   fdm_ptr->rgn[i].size, dumped_bytes);
+			   be64_to_cpu(fdm_ptr->rgn[i].size), dumped_bytes);
 	}
 
 	/* Dump is active. Show reserved area start address. */
@@ -624,6 +633,7 @@
 {
 	const __be32 *prop;
 	unsigned long dn;
+	__be64 be_addr;
 	u64 addr = 0;
 	int i, len;
 	s64 ret;
@@ -680,13 +690,13 @@
 	if (!prop)
 		return;
 
-	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_KERNEL, &addr);
-	if ((ret != OPAL_SUCCESS) || !addr) {
+	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_KERNEL, &be_addr);
+	if ((ret != OPAL_SUCCESS) || !be_addr) {
 		pr_err("Failed to get Kernel metadata (%lld)\n", ret);
 		return;
 	}
 
-	addr = be64_to_cpu(addr);
+	addr = be64_to_cpu(be_addr);
 	pr_debug("Kernel metadata addr: %llx\n", addr);
 
 	opal_fdm_active = __va(addr);
@@ -697,14 +707,14 @@
 	}
 
 	/* Kernel regions not registered with f/w for MPIPL */
-	if (opal_fdm_active->registered_regions == 0) {
+	if (be16_to_cpu(opal_fdm_active->registered_regions) == 0) {
 		opal_fdm_active = NULL;
 		return;
 	}
 
-	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_CPU, &addr);
-	if (addr) {
-		addr = be64_to_cpu(addr);
+	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_CPU, &be_addr);
+	if (be_addr) {
+		addr = be64_to_cpu(be_addr);
 		pr_debug("CPU metadata addr: %llx\n", addr);
 		opal_cpu_metadata = __va(addr);
 	}
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-fadump.h
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-fadump.h
@@ -31,14 +31,14 @@
  * OPAL FADump kernel metadata
  *
  * The address of this structure will be registered with f/w for retrieving
- * and processing during crash dump.
+ * in the capture kernel to process the crash dump.
  */
 struct opal_fadump_mem_struct {
 	u8	version;
 	u8	reserved[3];
-	u16	region_cnt;		/* number of regions */
-	u16	registered_regions;	/* Regions registered for MPIPL */
-	u64	fadumphdr_addr;
+	__be16	region_cnt;		/* number of regions */
+	__be16	registered_regions;	/* Regions registered for MPIPL */
+	__be64	fadumphdr_addr;
 	struct opal_mpipl_region	rgn[FADUMP_MAX_MEM_REGS];
 } __packed;
 
@@ -135,7 +135,7 @@
 	for (i = 0; i < regs_cnt; i++, bufp += reg_entry_size) {
 		reg_entry = (struct hdat_fadump_reg_entry *)bufp;
 		val = (cpu_endian ? be64_to_cpu(reg_entry->reg_val) :
-		       reg_entry->reg_val);
+		       (u64)(reg_entry->reg_val));
 		opal_fadump_set_regval_regnum(regs,
 					      be32_to_cpu(reg_entry->reg_type),
 					      be32_to_cpu(reg_entry->reg_num),
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-imc.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-imc.c
@@ -59,10 +59,6 @@
 
 	imc_debugfs_parent = debugfs_create_dir("imc", powerpc_debugfs_root);
 
-	/*
-	 * Return here, either because 'imc' directory already exists,
-	 * Or failed to create a new one.
-	 */
 	if (!imc_debugfs_parent)
 		return;
 
@@ -135,7 +131,6 @@
 	}
 
 	pmu_ptr->imc_counter_mmaped = true;
-	export_imc_mode_and_cmd(node, pmu_ptr);
 	kfree(base_addr_arr);
 	kfree(chipid_arr);
 	return 0;
@@ -151,7 +146,7 @@
  *		    and domain as the inputs.
  * Allocates memory for the struct imc_pmu, sets up its domain, size and offsets
  */
-static int imc_pmu_create(struct device_node *parent, int pmu_index, int domain)
+static struct imc_pmu *imc_pmu_create(struct device_node *parent, int pmu_index, int domain)
 {
 	int ret = 0;
 	struct imc_pmu *pmu_ptr;
@@ -159,27 +154,23 @@
 
 	/* Return for unknown domain */
 	if (domain < 0)
-		return -EINVAL;
+		return NULL;
 
 	/* memory for pmu */
 	pmu_ptr = kzalloc(sizeof(*pmu_ptr), GFP_KERNEL);
 	if (!pmu_ptr)
-		return -ENOMEM;
+		return NULL;
 
 	/* Set the domain */
 	pmu_ptr->domain = domain;
 
 	ret = of_property_read_u32(parent, "size", &pmu_ptr->counter_mem_size);
-	if (ret) {
-		ret = -EINVAL;
+	if (ret)
 		goto free_pmu;
-	}
 
 	if (!of_property_read_u32(parent, "offset", &offset)) {
-		if (imc_get_mem_addr_nest(parent, pmu_ptr, offset)) {
-			ret = -EINVAL;
+		if (imc_get_mem_addr_nest(parent, pmu_ptr, offset))
 			goto free_pmu;
-		}
 	}
 
 	/* Function to register IMC pmu */
@@ -190,14 +181,14 @@
 		if (pmu_ptr->domain == IMC_DOMAIN_NEST)
 			kfree(pmu_ptr->mem_info);
 		kfree(pmu_ptr);
-		return ret;
+		return NULL;
 	}
 
-	return 0;
+	return pmu_ptr;
 
 free_pmu:
 	kfree(pmu_ptr);
-	return ret;
+	return NULL;
 }
 
 static void disable_nest_pmu_counters(void)
@@ -254,6 +245,7 @@
 static int opal_imc_counters_probe(struct platform_device *pdev)
 {
 	struct device_node *imc_dev = pdev->dev.of_node;
+	struct imc_pmu *pmu;
 	int pmu_count = 0, domain;
 	bool core_imc_reg = false, thread_imc_reg = false;
 	u32 type;
@@ -269,6 +261,7 @@
 	}
 
 	for_each_compatible_node(imc_dev, NULL, IMC_DTB_UNIT_COMPAT) {
+		pmu = NULL;
 		if (of_property_read_u32(imc_dev, "type", &type)) {
 			pr_warn("IMC Device without type property\n");
 			continue;
@@ -285,7 +278,14 @@
 			domain = IMC_DOMAIN_THREAD;
 			break;
 		case IMC_TYPE_TRACE:
-			domain = IMC_DOMAIN_TRACE;
+			/*
+			 * FIXME. Using trace_imc events to monitor application
+			 * or KVM thread performance can cause a checkstop
+			 * (system crash).
+			 * Disable it for now.
+			 */
+			pr_info_once("IMC: disabling trace_imc PMU\n");
+			domain = -1;
 			break;
 		default:
 			pr_warn("IMC Unknown Device type \n");
@@ -293,9 +293,13 @@
 			break;
 		}
 
-		if (!imc_pmu_create(imc_dev, pmu_count, domain)) {
-			if (domain == IMC_DOMAIN_NEST)
+		pmu = imc_pmu_create(imc_dev, pmu_count, domain);
+		if (pmu != NULL) {
+			if (domain == IMC_DOMAIN_NEST) {
+				if (!imc_debugfs_parent)
+					export_imc_mode_and_cmd(imc_dev, pmu);
 				pmu_count++;
+			}
 			if (domain == IMC_DOMAIN_CORE)
 				core_imc_reg = true;
 			if (domain == IMC_DOMAIN_THREAD)
@@ -303,10 +307,6 @@
 		}
 	}
 
-	/* If none of the nest units are registered, remove debugfs interface */
-	if (pmu_count == 0)
-		debugfs_remove_recursive(imc_debugfs_parent);
-
 	/* If core imc is not registered, unregister thread-imc */
 	if (!core_imc_reg && thread_imc_reg)
 		unregister_thread_imc();
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-lpc.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-lpc.c
@@ -396,6 +396,7 @@
 		if (!of_get_property(np, "primary", NULL))
 			continue;
 		opal_lpc_chip_id = of_get_ibm_chip_id(np);
+		of_node_put(np);
 		break;
 	}
 	if (opal_lpc_chip_id < 0)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-prd.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-prd.c
@@ -372,6 +372,12 @@
 	.priority	= 0,
 };
 
+static struct notifier_block opal_prd_event_nb2 = {
+	.notifier_call	= opal_prd_msg_notifier,
+	.next		= NULL,
+	.priority	= 0,
+};
+
 static int opal_prd_probe(struct platform_device *pdev)
 {
 	int rc;
@@ -393,9 +399,10 @@
 		return rc;
 	}
 
-	rc = opal_message_notifier_register(OPAL_MSG_PRD2, &opal_prd_event_nb);
+	rc = opal_message_notifier_register(OPAL_MSG_PRD2, &opal_prd_event_nb2);
 	if (rc) {
 		pr_err("Couldn't register PRD2 event notifier\n");
+		opal_message_notifier_unregister(OPAL_MSG_PRD, &opal_prd_event_nb);
 		return rc;
 	}
 
@@ -404,6 +411,8 @@
 		pr_err("failed to register miscdev\n");
 		opal_message_notifier_unregister(OPAL_MSG_PRD,
 				&opal_prd_event_nb);
+		opal_message_notifier_unregister(OPAL_MSG_PRD2,
+				&opal_prd_event_nb2);
 		return rc;
 	}
 
@@ -414,6 +423,7 @@
 {
 	misc_deregister(&opal_prd_dev);
 	opal_message_notifier_unregister(OPAL_MSG_PRD, &opal_prd_event_nb);
+	opal_message_notifier_unregister(OPAL_MSG_PRD2, &opal_prd_event_nb2);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal-secvar.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal-secvar.c
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * PowerNV code for secure variables
+ *
+ * Copyright (C) 2019 IBM Corporation
+ * Author: Claudio Carvalho
+ *         Nayna Jain
+ *
+ * APIs to access secure variables managed by OPAL.
+ */
+
+#define pr_fmt(fmt) "secvar: "fmt
+
+#include <linux/types.h>
+#include <linux/platform_device.h>
+#include <linux/of_platform.h>
+#include <asm/opal.h>
+#include <asm/secvar.h>
+#include <asm/secure_boot.h>
+
+static int opal_status_to_err(int rc)
+{
+	int err;
+
+	switch (rc) {
+	case OPAL_SUCCESS:
+		err = 0;
+		break;
+	case OPAL_UNSUPPORTED:
+		err = -ENXIO;
+		break;
+	case OPAL_PARAMETER:
+		err = -EINVAL;
+		break;
+	case OPAL_RESOURCE:
+		err = -ENOSPC;
+		break;
+	case OPAL_HARDWARE:
+		err = -EIO;
+		break;
+	case OPAL_NO_MEM:
+		err = -ENOMEM;
+		break;
+	case OPAL_EMPTY:
+		err = -ENOENT;
+		break;
+	case OPAL_PARTIAL:
+		err = -EFBIG;
+		break;
+	default:
+		err = -EINVAL;
+	}
+
+	return err;
+}
+
+static int opal_get_variable(const char *key, uint64_t ksize,
+			     u8 *data, uint64_t *dsize)
+{
+	int rc;
+
+	if (!key || !dsize)
+		return -EINVAL;
+
+	*dsize = cpu_to_be64(*dsize);
+
+	rc = opal_secvar_get(key, ksize, data, dsize);
+
+	*dsize = be64_to_cpu(*dsize);
+
+	return opal_status_to_err(rc);
+}
+
+static int opal_get_next_variable(const char *key, uint64_t *keylen,
+				  uint64_t keybufsize)
+{
+	int rc;
+
+	if (!key || !keylen)
+		return -EINVAL;
+
+	*keylen = cpu_to_be64(*keylen);
+
+	rc = opal_secvar_get_next(key, keylen, keybufsize);
+
+	*keylen = be64_to_cpu(*keylen);
+
+	return opal_status_to_err(rc);
+}
+
+static int opal_set_variable(const char *key, uint64_t ksize, u8 *data,
+			     uint64_t dsize)
+{
+	int rc;
+
+	if (!key || !data)
+		return -EINVAL;
+
+	rc = opal_secvar_enqueue_update(key, ksize, data, dsize);
+
+	return opal_status_to_err(rc);
+}
+
+static const struct secvar_operations opal_secvar_ops = {
+	.get = opal_get_variable,
+	.get_next = opal_get_next_variable,
+	.set = opal_set_variable,
+};
+
+static int opal_secvar_probe(struct platform_device *pdev)
+{
+	if (!opal_check_token(OPAL_SECVAR_GET)
+			|| !opal_check_token(OPAL_SECVAR_GET_NEXT)
+			|| !opal_check_token(OPAL_SECVAR_ENQUEUE_UPDATE)) {
+		pr_err("OPAL doesn't support secure variables\n");
+		return -ENODEV;
+	}
+
+	set_secvar_ops(&opal_secvar_ops);
+
+	return 0;
+}
+
+static const struct of_device_id opal_secvar_match[] = {
+	{ .compatible = "ibm,secvar-backend",},
+	{},
+};
+
+static struct platform_driver opal_secvar_driver = {
+	.driver = {
+		.name = "secvar",
+		.of_match_table = opal_secvar_match,
+	},
+};
+
+static int __init opal_secvar_init(void)
+{
+	return platform_driver_probe(&opal_secvar_driver, opal_secvar_probe);
+}
+device_initcall(opal_secvar_init);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/opal.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/opal.c
@@ -776,6 +776,7 @@
 	kobj = kobject_create_and_add("exports", opal_kobj);
 	if (!kobj) {
 		pr_warn("kobject_create_and_add() of exports failed\n");
+		of_node_put(np);
 		return;
 	}
 
@@ -1002,6 +1003,9 @@
 	/* Initialise OPAL Power control interface */
 	opal_power_control_init();
 
+	/* Initialize OPAL secure variables */
+	opal_pdev_init("ibm,secvar-backend");
+
 	return 0;
 }
 machine_subsys_initcall(powernv, opal_init);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/pci-ioda.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -188,7 +188,7 @@
 	unsigned int pe_num = pe->pe_number;
 
 	WARN_ON(pe->pdev);
-	WARN_ON(pe->npucomp); /* NPUs are not supposed to be freed */
+	WARN_ON(pe->npucomp); /* NPUs for nvlink are not supposed to be freed */
 	kfree(pe->npucomp);
 	memset(pe, 0, sizeof(struct pnv_ioda_pe));
 	clear_bit(pe_num, phb->ioda.pe_alloc);
@@ -777,6 +777,34 @@
 	return 0;
 }
 
+static void pnv_ioda_unset_peltv(struct pnv_phb *phb,
+				 struct pnv_ioda_pe *pe,
+				 struct pci_dev *parent)
+{
+	int64_t rc;
+
+	while (parent) {
+		struct pci_dn *pdn = pci_get_pdn(parent);
+
+		if (pdn && pdn->pe_number != IODA_INVALID_PE) {
+			rc = opal_pci_set_peltv(phb->opal_id, pdn->pe_number,
+						pe->pe_number,
+						OPAL_REMOVE_PE_FROM_DOMAIN);
+			/* XXX What to do in case of error ? */
+		}
+		parent = parent->bus->self;
+	}
+
+	opal_pci_eeh_freeze_clear(phb->opal_id, pe->pe_number,
+				  OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
+
+	/* Disassociate PE in PELT */
+	rc = opal_pci_set_peltv(phb->opal_id, pe->pe_number,
+				pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
+	if (rc)
+		pe_warn(pe, "OPAL error %lld remove self from PELTV\n", rc);
+}
+
 static int pnv_ioda_deconfigure_pe(struct pnv_phb *phb, struct pnv_ioda_pe *pe)
 {
 	struct pci_dev *parent;
@@ -827,25 +855,13 @@
 	for (rid = pe->rid; rid < rid_end; rid++)
 		phb->ioda.pe_rmap[rid] = IODA_INVALID_PE;
 
-	/* Release from all parents PELT-V */
-	while (parent) {
-		struct pci_dn *pdn = pci_get_pdn(parent);
-		if (pdn && pdn->pe_number != IODA_INVALID_PE) {
-			rc = opal_pci_set_peltv(phb->opal_id, pdn->pe_number,
-						pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
-			/* XXX What to do in case of error ? */
-		}
-		parent = parent->bus->self;
-	}
-
-	opal_pci_eeh_freeze_clear(phb->opal_id, pe->pe_number,
-				  OPAL_EEH_ACTION_CLEAR_FREEZE_ALL);
+	/*
+	 * Release from all parents PELT-V. NPUs don't have a PELTV
+	 * table
+	 */
+	if (phb->type != PNV_PHB_NPU_NVLINK && phb->type != PNV_PHB_NPU_OCAPI)
+		pnv_ioda_unset_peltv(phb, pe, parent);
 
-	/* Disassociate PE in PELT */
-	rc = opal_pci_set_peltv(phb->opal_id, pe->pe_number,
-				pe->pe_number, OPAL_REMOVE_PE_FROM_DOMAIN);
-	if (rc)
-		pe_warn(pe, "OPAL error %lld remove self from PELTV\n", rc);
 	rc = opal_pci_set_pe(phb->opal_id, pe->pe_number, pe->rid,
 			     bcomp, dcomp, fcomp, OPAL_UNMAP_PE);
 	if (rc)
@@ -1062,20 +1078,20 @@
 		return NULL;
 	}
 
-	/* NOTE: We get only one ref to the pci_dev for the pdn, not for the
-	 * pointer in the PE data structure, both should be destroyed at the
-	 * same time. However, this needs to be looked at more closely again
-	 * once we actually start removing things (Hotplug, SR-IOV, ...)
+	/* NOTE: We don't get a reference for the pointer in the PE
+	 * data structure, both the device and PE structures should be
+	 * destroyed at the same time. However, removing nvlink
+	 * devices will need some work.
 	 *
 	 * At some point we want to remove the PDN completely anyways
 	 */
-	pci_dev_get(dev);
 	pdn->pe_number = pe->pe_number;
 	pe->flags = PNV_IODA_PE_DEV;
 	pe->pdev = dev;
 	pe->pbus = NULL;
 	pe->mve_number = -1;
 	pe->rid = dev->bus->number << 8 | pdn->devfn;
+	pe->device_count++;
 
 	pe_info(pe, "Associated device to PE\n");
 
@@ -1084,13 +1100,13 @@
 		pnv_ioda_free_pe(pe);
 		pdn->pe_number = IODA_INVALID_PE;
 		pe->pdev = NULL;
-		pci_dev_put(dev);
 		return NULL;
 	}
 
 	/* Put PE to the list */
+	mutex_lock(&phb->ioda.pe_list_mutex);
 	list_add_tail(&pe->list, &phb->ioda.pe_list);
-
+	mutex_unlock(&phb->ioda.pe_list_mutex);
 	return pe;
 }
 
@@ -1206,6 +1222,14 @@
 	struct pnv_phb *phb = hose->private_data;
 
 	/*
+	 * Intentionally leak a reference on the npu device (for
+	 * nvlink only; this is not an opencapi path) to make sure it
+	 * never goes away, as it's been the case all along and some
+	 * work is needed otherwise.
+	 */
+	pci_dev_get(npu_pdev);
+
+	/*
 	 * Due to a hardware errata PE#0 on the NPU is reserved for
 	 * error handling. This means we only have three PEs remaining
 	 * which need to be assigned to four links, implying some
@@ -1228,11 +1252,11 @@
 			 */
 			dev_info(&npu_pdev->dev,
 				"Associating to existing PE %x\n", pe_num);
-			pci_dev_get(npu_pdev);
 			npu_pdn = pci_get_pdn(npu_pdev);
 			rid = npu_pdev->bus->number << 8 | npu_pdn->devfn;
 			npu_pdn->pe_number = pe_num;
 			phb->ioda.pe_rmap[rid] = pe->pe_number;
+			pe->device_count++;
 
 			/* Map the PE to this link */
 			rc = opal_pci_set_pe(phb->opal_id, pe_num, rid,
@@ -1268,8 +1292,6 @@
 {
 	struct pci_controller *hose;
 	struct pnv_phb *phb;
-	struct pci_bus *bus;
-	struct pci_dev *pdev;
 	struct pnv_ioda_pe *pe;
 
 	list_for_each_entry(hose, &hose_list, list_node) {
@@ -1281,11 +1303,6 @@
 			if (phb->model == PNV_PHB_MODEL_NPU2)
 				WARN_ON_ONCE(pnv_npu2_init(hose));
 		}
-		if (phb->type == PNV_PHB_NPU_OCAPI) {
-			bus = hose->bus;
-			list_for_each_entry(pdev, &bus->devices, bus_list)
-				pnv_ioda_setup_dev_PE(pdev);
-		}
 	}
 	list_for_each_entry(hose, &hose_list, list_node) {
 		phb = hose->private_data;
@@ -1558,6 +1575,10 @@
 
 	/* Reserve PE for each VF */
 	for (vf_index = 0; vf_index < num_vfs; vf_index++) {
+		int vf_devfn = pci_iov_virtfn_devfn(pdev, vf_index);
+		int vf_bus = pci_iov_virtfn_bus(pdev, vf_index);
+		struct pci_dn *vf_pdn;
+
 		if (pdn->m64_single_mode)
 			pe_num = pdn->pe_num_map[vf_index];
 		else
@@ -1570,13 +1591,11 @@
 		pe->pbus = NULL;
 		pe->parent_dev = pdev;
 		pe->mve_number = -1;
-		pe->rid = (pci_iov_virtfn_bus(pdev, vf_index) << 8) |
-			   pci_iov_virtfn_devfn(pdev, vf_index);
+		pe->rid = (vf_bus << 8) | vf_devfn;
 
 		pe_info(pe, "VF %04d:%02d:%02d.%d associated with PE#%x\n",
 			hose->global_number, pdev->bus->number,
-			PCI_SLOT(pci_iov_virtfn_devfn(pdev, vf_index)),
-			PCI_FUNC(pci_iov_virtfn_devfn(pdev, vf_index)), pe_num);
+			PCI_SLOT(vf_devfn), PCI_FUNC(vf_devfn), pe_num);
 
 		if (pnv_ioda_configure_pe(phb, pe)) {
 			/* XXX What do we do here ? */
@@ -1590,6 +1609,15 @@
 		list_add_tail(&pe->list, &phb->ioda.pe_list);
 		mutex_unlock(&phb->ioda.pe_list_mutex);
 
+		/* associate this pe to it's pdn */
+		list_for_each_entry(vf_pdn, &pdn->parent->child_list, list) {
+			if (vf_pdn->busno == vf_bus &&
+			    vf_pdn->devfn == vf_devfn) {
+				vf_pdn->pe_number = pe_num;
+				break;
+			}
+		}
+
 		pnv_pci_ioda2_setup_dma_pe(phb, pe);
 #ifdef CONFIG_IOMMU_API
 		iommu_register_group(&pe->table_group,
@@ -2889,9 +2917,6 @@
 	struct pci_dn *pdn;
 	int mul, total_vfs;
 
-	if (!pdev->is_physfn || pci_dev_is_added(pdev))
-		return;
-
 	pdn = pci_get_pdn(pdev);
 	pdn->vfs_expanded = 0;
 	pdn->m64_single_mode = false;
@@ -2966,6 +2991,30 @@
 		res->end = res->start - 1;
 	}
 }
+
+static void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev)
+{
+	if (WARN_ON(pci_dev_is_added(pdev)))
+		return;
+
+	if (pdev->is_virtfn) {
+		struct pnv_ioda_pe *pe = pnv_ioda_get_pe(pdev);
+
+		/*
+		 * VF PEs are single-device PEs so their pdev pointer needs to
+		 * be set. The pdev doesn't exist when the PE is allocated (in
+		 * (pcibios_sriov_enable()) so we fix it up here.
+		 */
+		pe->pdev = pdev;
+		WARN_ON(!(pe->flags & PNV_IODA_PE_VF));
+	} else if (pdev->is_physfn) {
+		/*
+		 * For PFs adjust their allocated IOV resources to match what
+		 * the PHB can support using it's M64 BAR table.
+		 */
+		pnv_pci_ioda_fixup_iov_resources(pdev);
+	}
+}
 #endif /* CONFIG_PCI_IOV */
 
 static void pnv_ioda_setup_pe_res(struct pnv_ioda_pe *pe,
@@ -2976,7 +3025,8 @@
 	int index;
 	int64_t rc;
 
-	if (!res || !res->flags || res->start > res->end)
+	if (!res || !res->flags || res->start > res->end ||
+	    res->flags & IORESOURCE_UNSET)
 		return;
 
 	if (res->flags & IORESOURCE_IO) {
@@ -3383,6 +3433,28 @@
 	return true;
 }
 
+static bool pnv_ocapi_enable_device_hook(struct pci_dev *dev)
+{
+	struct pci_controller *hose = pci_bus_to_host(dev->bus);
+	struct pnv_phb *phb = hose->private_data;
+	struct pci_dn *pdn;
+	struct pnv_ioda_pe *pe;
+
+	if (!phb->initialized)
+		return true;
+
+	pdn = pci_get_pdn(dev);
+	if (!pdn)
+		return false;
+
+	if (pdn->pe_number == IODA_INVALID_PE) {
+		pe = pnv_ioda_setup_dev_PE(dev);
+		if (!pe)
+			return false;
+	}
+	return true;
+}
+
 static long pnv_pci_ioda1_unset_window(struct iommu_table_group *table_group,
 				       int num)
 {
@@ -3512,7 +3584,10 @@
 	struct pnv_phb *phb = pe->phb;
 	struct pnv_ioda_pe *slave, *tmp;
 
+	mutex_lock(&phb->ioda.pe_list_mutex);
 	list_del(&pe->list);
+	mutex_unlock(&phb->ioda.pe_list_mutex);
+
 	switch (phb->type) {
 	case PNV_PHB_IODA1:
 		pnv_pci_ioda1_release_pe_dma(pe);
@@ -3520,6 +3595,8 @@
 	case PNV_PHB_IODA2:
 		pnv_pci_ioda2_release_pe_dma(pe);
 		break;
+	case PNV_PHB_NPU_OCAPI:
+		break;
 	default:
 		WARN_ON(1);
 	}
@@ -3620,7 +3697,8 @@
 };
 
 static const struct pci_controller_ops pnv_npu_ocapi_ioda_controller_ops = {
-	.enable_device_hook	= pnv_pci_enable_device_hook,
+	.enable_device_hook	= pnv_ocapi_enable_device_hook,
+	.release_device		= pnv_pci_release_device,
 	.window_alignment	= pnv_pci_window_alignment,
 	.reset_secondary_bus	= pnv_pci_reset_secondary_bus,
 	.shutdown		= pnv_pci_ioda_shutdown,
@@ -3862,7 +3940,7 @@
 	ppc_md.pcibios_default_alignment = pnv_pci_default_alignment;
 
 #ifdef CONFIG_PCI_IOV
-	ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov_resources;
+	ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov;
 	ppc_md.pcibios_iov_resource_alignment = pnv_pci_iov_resource_alignment;
 	ppc_md.pcibios_sriov_enable = pnv_pcibios_sriov_enable;
 	ppc_md.pcibios_sriov_disable = pnv_pcibios_sriov_disable;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/pci.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/pci.c
@@ -38,7 +38,7 @@
 
 int pnv_pci_get_slot_id(struct device_node *np, uint64_t *id)
 {
-	struct device_node *parent = np;
+	struct device_node *node = np;
 	u32 bdfn;
 	u64 phbid;
 	int ret;
@@ -48,25 +48,29 @@
 		return -ENXIO;
 
 	bdfn = ((bdfn & 0x00ffff00) >> 8);
-	while ((parent = of_get_parent(parent))) {
-		if (!PCI_DN(parent)) {
-			of_node_put(parent);
+	for (node = np; node; node = of_get_parent(node)) {
+		if (!PCI_DN(node)) {
+			of_node_put(node);
 			break;
 		}
 
-		if (!of_device_is_compatible(parent, "ibm,ioda2-phb") &&
-		    !of_device_is_compatible(parent, "ibm,ioda3-phb")) {
-			of_node_put(parent);
+		if (!of_device_is_compatible(node, "ibm,ioda2-phb") &&
+		    !of_device_is_compatible(node, "ibm,ioda3-phb") &&
+		    !of_device_is_compatible(node, "ibm,ioda2-npu2-opencapi-phb")) {
+			of_node_put(node);
 			continue;
 		}
 
-		ret = of_property_read_u64(parent, "ibm,opal-phbid", &phbid);
+		ret = of_property_read_u64(node, "ibm,opal-phbid", &phbid);
 		if (ret) {
-			of_node_put(parent);
+			of_node_put(node);
 			return -ENXIO;
 		}
 
-		*id = PCI_SLOT_ID(phbid, bdfn);
+		if (of_device_is_compatible(node, "ibm,ioda2-npu2-opencapi-phb"))
+			*id = PCI_PHB_SLOT_ID(phbid);
+		else
+			*id = PCI_SLOT_ID(phbid, bdfn);
 		return 0;
 	}
 
@@ -814,24 +818,6 @@
 {
 	struct pci_controller *hose = pci_bus_to_host(pdev->bus);
 	struct pnv_phb *phb = hose->private_data;
-#ifdef CONFIG_PCI_IOV
-	struct pnv_ioda_pe *pe;
-	struct pci_dn *pdn;
-
-	/* Fix the VF pdn PE number */
-	if (pdev->is_virtfn) {
-		pdn = pci_get_pdn(pdev);
-		WARN_ON(pdn->pe_number != IODA_INVALID_PE);
-		list_for_each_entry(pe, &phb->ioda.pe_list, list) {
-			if (pe->rid == ((pdev->bus->number << 8) |
-			    (pdev->devfn & 0xff))) {
-				pdn->pe_number = pe->pe_number;
-				pe->pdev = pdev;
-				break;
-			}
-		}
-	}
-#endif /* CONFIG_PCI_IOV */
 
 	if (phb && phb->dma_dev_setup)
 		phb->dma_dev_setup(phb, pdev);
@@ -945,6 +931,23 @@
 	if (!firmware_has_feature(FW_FEATURE_OPAL))
 		return;
 
+#ifdef CONFIG_PCIEPORTBUS
+	/*
+	 * On PowerNV PCIe devices are (currently) managed in cooperation
+	 * with firmware. This isn't *strictly* required, but there's enough
+	 * assumptions baked into both firmware and the platform code that
+	 * it's unwise to allow the portbus services to be used.
+	 *
+	 * We need to fix this eventually, but for now set this flag to disable
+	 * the portbus driver. The AER service isn't required since that AER
+	 * events are handled via EEH. The pciehp hotplug driver can't work
+	 * without kernel changes (and portbus binding breaks pnv_php). The
+	 * other services also require some thinking about how we're going
+	 * to integrate them.
+	 */
+	pcie_ports_disabled = true;
+#endif
+
 	/* Look for IODA IO-Hubs. */
 	for_each_compatible_node(np, NULL, "ibm,ioda-hub") {
 		pnv_pci_init_ioda_hub(np);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/powernv.h
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/powernv.h
@@ -35,4 +35,6 @@
 u32 memcons_get_size(struct memcons *mc);
 struct memcons *memcons_init(struct device_node *node, const char *mc_prop_name);
 
+void pnv_rng_init(void);
+
 #endif /* _POWERNV_H */
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/rng.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/rng.c
@@ -17,6 +17,7 @@
 #include <asm/prom.h>
 #include <asm/machdep.h>
 #include <asm/smp.h>
+#include "powernv.h"
 
 #define DARN_ERR 0xFFFFFFFFFFFFFFFFul
 
@@ -28,7 +29,6 @@
 
 static DEFINE_PER_CPU(struct powernv_rng *, powernv_rng);
 
-
 int powernv_hwrng_present(void)
 {
 	struct powernv_rng *rng;
@@ -43,7 +43,11 @@
 	unsigned long parity;
 
 	/* Calculate the parity of the value */
-	asm ("popcntd %0,%1" : "=r" (parity) : "r" (val));
+	asm (".machine push;   \
+	      .machine power7; \
+	      popcntd %0,%1;   \
+	      .machine pop;"
+	     : "=r" (parity) : "r" (val));
 
 	/* xor our value with the previous mask */
 	val ^= rng->mask;
@@ -59,6 +63,8 @@
 	struct powernv_rng *rng;
 
 	rng = raw_cpu_read(powernv_rng);
+	if (!rng)
+		return 0;
 
 	*v = rng_whiten(rng, __raw_rm_readq(rng->regs_real));
 
@@ -94,9 +100,6 @@
 			return 0;
 		}
 	}
-
-	pr_warn("Unable to use DARN for get_random_seed()\n");
-
 	return -EIO;
 }
 
@@ -159,32 +162,59 @@
 
 	rng_init_per_cpu(rng, dn);
 
-	pr_info_once("Registering arch random hook.\n");
-
 	ppc_md.get_random_seed = powernv_get_random_long;
 
 	return 0;
 }
 
-static __init int rng_init(void)
+static int __init pnv_get_random_long_early(unsigned long *v)
 {
 	struct device_node *dn;
-	int rc;
 
-	for_each_compatible_node(dn, NULL, "ibm,power-rng") {
-		rc = rng_create(dn);
-		if (rc) {
-			pr_err("Failed creating rng for %pOF (%d).\n",
-				dn, rc);
-			continue;
-		}
+	if (!slab_is_available())
+		return 0;
 
-		/* Create devices for hwrng driver */
-		of_platform_device_create(dn, NULL, NULL);
-	}
+	if (cmpxchg(&ppc_md.get_random_seed, pnv_get_random_long_early,
+		    NULL) != pnv_get_random_long_early)
+		return 0;
 
-	initialise_darn();
+	for_each_compatible_node(dn, NULL, "ibm,power-rng")
+		rng_create(dn);
+
+	if (!ppc_md.get_random_seed)
+		return 0;
+	return ppc_md.get_random_seed(v);
+}
+
+void __init pnv_rng_init(void)
+{
+	struct device_node *dn;
+
+	/* Prefer darn over the rest. */
+	if (!initialise_darn())
+		return;
+
+	dn = of_find_compatible_node(NULL, NULL, "ibm,power-rng");
+	if (dn)
+		ppc_md.get_random_seed = pnv_get_random_long_early;
+
+	of_node_put(dn);
+}
+
+static int __init pnv_rng_late_init(void)
+{
+	struct device_node *dn;
+	unsigned long v;
+
+	/* In case it wasn't called during init for some other reason. */
+	if (ppc_md.get_random_seed == pnv_get_random_long_early)
+		pnv_get_random_long_early(&v);
+
+	if (ppc_md.get_random_seed == powernv_get_random_long) {
+		for_each_compatible_node(dn, NULL, "ibm,power-rng")
+			of_platform_device_create(dn, NULL, NULL);
+	}
 
 	return 0;
 }
-machine_subsys_initcall(powernv, rng_init);
+machine_subsys_initcall(powernv, pnv_rng_late_init);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/setup.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/setup.c
@@ -122,12 +122,29 @@
 			type = L1D_FLUSH_ORI;
 	}
 
+	/*
+	 * If we are non-Power9 bare metal, we don't need to flush on kernel
+	 * entry or after user access: they fix a P9 specific vulnerability.
+	 */
+	if (!pvr_version_is(PVR_POWER9)) {
+		security_ftr_clear(SEC_FTR_L1D_FLUSH_ENTRY);
+		security_ftr_clear(SEC_FTR_L1D_FLUSH_UACCESS);
+	}
+
 	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) && \
 		 (security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR)   || \
 		  security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV));
 
 	setup_rfi_flush(type, enable);
 	setup_count_cache_flush();
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_ENTRY);
+	setup_entry_flush(enable);
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_UACCESS);
+	setup_uaccess_flush(enable);
 }
 
 static void __init pnv_setup_arch(void)
@@ -151,6 +168,8 @@
 	powersave_nap = 1;
 
 	/* XXX PMCS */
+
+	pnv_rng_init();
 }
 
 static void __init pnv_init(void)
@@ -169,11 +188,16 @@
 		add_preferred_console("hvc", 0, NULL);
 
 	if (!radix_enabled()) {
+		size_t size = sizeof(struct slb_entry) * mmu_slb_size;
 		int i;
 
 		/* Allocate per cpu area to save old slb contents during MCE */
-		for_each_possible_cpu(i)
-			paca_ptrs[i]->mce_faulty_slbs = memblock_alloc_node(mmu_slb_size, __alignof__(*paca_ptrs[i]->mce_faulty_slbs), cpu_to_node(i));
+		for_each_possible_cpu(i) {
+			paca_ptrs[i]->mce_faulty_slbs =
+					memblock_alloc_node(size,
+						__alignof__(struct slb_entry),
+						cpu_to_node(i));
+		}
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/smp.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/smp.c
@@ -43,7 +43,7 @@
 #include <asm/udbg.h>
 #define DBG(fmt...) udbg_printf(fmt)
 #else
-#define DBG(fmt...)
+#define DBG(fmt...) do { } while (0)
 #endif
 
 static void pnv_smp_setup_cpu(int cpu)
@@ -167,7 +167,6 @@
 	/* Standard hot unplug procedure */
 
 	idle_task_exit();
-	current->active_mm = NULL; /* for sanity */
 	cpu = smp_processor_id();
 	DBG("CPU%d offline\n", cpu);
 	generic_set_cpu_dead(cpu);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/powernv/ultravisor.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/powernv/ultravisor.c
@@ -55,6 +55,7 @@
 		return -ENODEV;
 
 	uv_memcons = memcons_init(node, "memcons");
+	of_node_put(node);
 	if (!uv_memcons)
 		return -ENOENT;
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/ps3/mm.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/ps3/mm.c
@@ -6,6 +6,7 @@
  *  Copyright 2006 Sony Corp.
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/kernel.h>
 #include <linux/export.h>
 #include <linux/memblock.h>
@@ -200,13 +201,14 @@
 {
 	int result;
 
-	DBG("%s:%d: map.vas_id    = %llu\n", __func__, __LINE__, map.vas_id);
-
 	if (map.vas_id) {
 		result = lv1_select_virtual_address_space(0);
-		BUG_ON(result);
-		result = lv1_destruct_virtual_address_space(map.vas_id);
-		BUG_ON(result);
+		result += lv1_destruct_virtual_address_space(map.vas_id);
+
+		if (result) {
+			lv1_panic(0);
+		}
+
 		map.vas_id = 0;
 	}
 }
@@ -304,19 +306,20 @@
 	int result;
 
 	if (!r->destroy) {
-		pr_info("%s:%d: Not destroying high region: %llxh %llxh\n",
-			__func__, __LINE__, r->base, r->size);
 		return;
 	}
 
-	DBG("%s:%d: r->base = %llxh\n", __func__, __LINE__, r->base);
-
 	if (r->base) {
 		result = lv1_release_memory(r->base);
-		BUG_ON(result);
+
+		if (result) {
+			lv1_panic(0);
+		}
+
 		r->size = r->base = r->offset = 0;
 		map.total = map.rm.size;
 	}
+
 	ps3_mm_set_repository_highmem(NULL);
 }
 
@@ -1116,6 +1119,7 @@
 	enum ps3_dma_region_type region_type, void *addr, unsigned long len)
 {
 	unsigned long lpar_addr;
+	int result;
 
 	lpar_addr = addr ? ps3_mm_phys_to_lpar(__pa(addr)) : 0;
 
@@ -1127,6 +1131,16 @@
 		r->offset -= map.r1.offset;
 	r->len = len ? len : _ALIGN_UP(map.total, 1 << r->page_size);
 
+	dev->core.dma_mask = &r->dma_mask;
+
+	result = dma_set_mask_and_coherent(&dev->core, DMA_BIT_MASK(32));
+
+	if (result < 0) {
+		dev_err(&dev->core, "%s:%d: dma_set_mask_and_coherent failed: %d\n",
+			__func__, __LINE__, result);
+		return result;
+	}
+
 	switch (dev->dev_type) {
 	case PS3_DEVICE_TYPE_SB:
 		r->region_ops =  (USE_DYNAMIC_DMA)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/cmm.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/cmm.c
@@ -411,6 +411,10 @@
 	.dev_name = "cmm",
 };
 
+static void cmm_release_device(struct device *dev)
+{
+}
+
 /**
  * cmm_sysfs_register - Register with sysfs
  *
@@ -426,6 +430,7 @@
 
 	dev->id = 0;
 	dev->bus = &cmm_subsys;
+	dev->release = cmm_release_device;
 
 	if ((rc = device_register(dev)))
 		goto subsys_unregister;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/dlpar.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/dlpar.c
@@ -127,7 +127,6 @@
 #define NEXT_PROPERTY   3
 #define PREV_PARENT     4
 #define MORE_MEMORY     5
-#define CALL_AGAIN	-2
 #define ERR_CFG_USE     -9003
 
 struct device_node *dlpar_configure_connector(__be32 drc_index,
@@ -168,6 +167,9 @@
 
 		spin_unlock(&rtas_data_buf_lock);
 
+		if (rtas_busy_delay(rc))
+			continue;
+
 		switch (rc) {
 		case COMPLETE:
 			break;
@@ -216,9 +218,6 @@
 			last_dn = last_dn->parent;
 			break;
 
-		case CALL_AGAIN:
-			break;
-
 		case MORE_MEMORY:
 		case ERR_CFG_USE:
 		default:
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/hotplug-cpu.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/hotplug-cpu.c
@@ -91,9 +91,6 @@
 
 	BUG_ON(rtas_stop_self_token == RTAS_UNKNOWN_SERVICE);
 
-	printk("cpu %u (hwid %u) Ready to die...\n",
-	       smp_processor_id(), hard_smp_processor_id());
-
 	rtas_call_unlocked(&args, rtas_stop_self_token, 0, 1, NULL);
 
 	panic("Alas, I survived.\n");
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -27,7 +27,7 @@
 unsigned long pseries_memory_block_size(void)
 {
 	struct device_node *np;
-	unsigned int memblock_size = MIN_MEMORY_BLOCK_SIZE;
+	u64 memblock_size = MIN_MEMORY_BLOCK_SIZE;
 	struct resource r;
 
 	np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
@@ -223,7 +223,7 @@
 			 struct drmem_lmb **end_lmb)
 {
 	struct drmem_lmb *lmb, *start, *end;
-	struct drmem_lmb *last_lmb;
+	struct drmem_lmb *limit;
 
 	start = NULL;
 	for_each_drmem_lmb(lmb) {
@@ -236,10 +236,10 @@
 	if (!start)
 		return -EINVAL;
 
-	end = &start[n_lmbs - 1];
+	end = &start[n_lmbs];
 
-	last_lmb = &drmem_info->lmbs[drmem_info->n_lmbs - 1];
-	if (end > last_lmb)
+	limit = &drmem_info->lmbs[drmem_info->n_lmbs];
+	if (end > limit)
 		return -EINVAL;
 
 	*start_lmb = start;
@@ -279,7 +279,7 @@
 	return dlpar_change_lmb_state(lmb, false);
 }
 
-static int pseries_remove_memblock(unsigned long base, unsigned int memblock_size)
+static int pseries_remove_memblock(unsigned long base, unsigned long memblock_size)
 {
 	unsigned long block_sz, start_pfn;
 	int sections_per_block;
@@ -310,10 +310,11 @@
 
 static int pseries_remove_mem_node(struct device_node *np)
 {
-	const __be32 *regs;
+	const __be32 *prop;
 	unsigned long base;
-	unsigned int lmb_size;
+	unsigned long lmb_size;
 	int ret = -EINVAL;
+	int addr_cells, size_cells;
 
 	/*
 	 * Check to see if we are actually removing memory
@@ -324,12 +325,19 @@
 	/*
 	 * Find the base address and size of the memblock
 	 */
-	regs = of_get_property(np, "reg", NULL);
-	if (!regs)
+	prop = of_get_property(np, "reg", NULL);
+	if (!prop)
 		return ret;
 
-	base = be64_to_cpu(*(unsigned long *)regs);
-	lmb_size = be32_to_cpu(regs[3]);
+	addr_cells = of_n_addr_cells(np);
+	size_cells = of_n_size_cells(np);
+
+	/*
+	 * "reg" property represents (addr,size) tuple.
+	 */
+	base = of_read_number(prop, addr_cells);
+	prop += addr_cells;
+	lmb_size = of_read_number(prop, size_cells);
 
 	pseries_remove_memblock(base, lmb_size);
 	return 0;
@@ -360,8 +368,10 @@
 
 	for (i = 0; i < scns_per_block; i++) {
 		pfn = PFN_DOWN(phys_addr);
-		if (!pfn_present(pfn))
+		if (!pfn_present(pfn)) {
+			phys_addr += MIN_MEMORY_BLOCK_SIZE;
 			continue;
+		}
 
 		rc &= is_mem_section_removable(pfn, PAGES_PER_SECTION);
 		phys_addr += MIN_MEMORY_BLOCK_SIZE;
@@ -374,25 +384,32 @@
 
 static int dlpar_remove_lmb(struct drmem_lmb *lmb)
 {
+	struct memory_block *mem_block;
 	unsigned long block_sz;
 	int rc;
 
 	if (!lmb_is_removable(lmb))
 		return -EINVAL;
 
+	mem_block = lmb_to_memblock(lmb);
+	if (mem_block == NULL)
+		return -EINVAL;
+
 	rc = dlpar_offline_lmb(lmb);
-	if (rc)
+	if (rc) {
+		put_device(&mem_block->dev);
 		return rc;
+	}
 
 	block_sz = pseries_memory_block_size();
 
-	__remove_memory(lmb->nid, lmb->base_addr, block_sz);
+	__remove_memory(mem_block->nid, lmb->base_addr, block_sz);
+	put_device(&mem_block->dev);
 
 	/* Update memory regions for memory remove */
 	memblock_remove(lmb->base_addr, block_sz);
 
 	invalidate_lmb_associativity_index(lmb);
-	lmb_clear_nid(lmb);
 	lmb->flags &= ~DRCONF_MEM_ASSIGNED;
 
 	return 0;
@@ -611,7 +628,7 @@
 
 #else
 static inline int pseries_remove_memblock(unsigned long base,
-					  unsigned int memblock_size)
+					  unsigned long memblock_size)
 {
 	return -EOPNOTSUPP;
 }
@@ -649,7 +666,7 @@
 static int dlpar_add_lmb(struct drmem_lmb *lmb)
 {
 	unsigned long block_sz;
-	int rc;
+	int nid, rc;
 
 	if (lmb->flags & DRCONF_MEM_ASSIGNED)
 		return -EINVAL;
@@ -660,11 +677,13 @@
 		return rc;
 	}
 
-	lmb_set_nid(lmb);
 	block_sz = memory_block_size_bytes();
 
+	/* Find the node id for this address. */
+	nid = memory_add_physaddr_to_nid(lmb->base_addr);
+
 	/* Add the memory */
-	rc = __add_memory(lmb->nid, lmb->base_addr, block_sz);
+	rc = __add_memory(nid, lmb->base_addr, block_sz);
 	if (rc) {
 		invalidate_lmb_associativity_index(lmb);
 		return rc;
@@ -672,9 +691,8 @@
 
 	rc = dlpar_online_lmb(lmb);
 	if (rc) {
-		__remove_memory(lmb->nid, lmb->base_addr, block_sz);
+		__remove_memory(nid, lmb->base_addr, block_sz);
 		invalidate_lmb_associativity_index(lmb);
-		lmb_clear_nid(lmb);
 	} else {
 		lmb->flags |= DRCONF_MEM_ASSIGNED;
 	}
@@ -943,10 +961,11 @@
 
 static int pseries_add_mem_node(struct device_node *np)
 {
-	const __be32 *regs;
+	const __be32 *prop;
 	unsigned long base;
-	unsigned int lmb_size;
+	unsigned long lmb_size;
 	int ret = -EINVAL;
+	int addr_cells, size_cells;
 
 	/*
 	 * Check to see if we are actually adding memory
@@ -957,12 +976,18 @@
 	/*
 	 * Find the base and size of the memblock
 	 */
-	regs = of_get_property(np, "reg", NULL);
-	if (!regs)
+	prop = of_get_property(np, "reg", NULL);
+	if (!prop)
 		return ret;
 
-	base = be64_to_cpu(*(unsigned long *)regs);
-	lmb_size = be32_to_cpu(regs[3]);
+	addr_cells = of_n_addr_cells(np);
+	size_cells = of_n_size_cells(np);
+	/*
+	 * "reg" property represents (addr,size) tuple.
+	 */
+	base = of_read_number(prop, addr_cells);
+	prop += addr_cells;
+	lmb_size = of_read_number(prop, size_cells);
 
 	/*
 	 * Update memory region to represent the memory add
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/ibmebus.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/ibmebus.c
@@ -450,6 +450,7 @@
 	if (err) {
 		printk(KERN_WARNING "%s: device_register returned %i\n",
 		       __func__, err);
+		put_device(&ibmebus_bus_device);
 		bus_unregister(&ibmebus_bus_type);
 
 		return err;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/iommu.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/iommu.c
@@ -36,7 +36,6 @@
 #include <asm/udbg.h>
 #include <asm/mmzone.h>
 #include <asm/plpar_wrappers.h>
-#include <asm/svm.h>
 
 #include "pseries.h"
 
@@ -133,10 +132,10 @@
 	return be64_to_cpu(*tcep);
 }
 
-static void tce_free_pSeriesLP(struct iommu_table*, long, long);
+static void tce_free_pSeriesLP(unsigned long liobn, long, long);
 static void tce_freemulti_pSeriesLP(struct iommu_table*, long, long);
 
-static int tce_build_pSeriesLP(struct iommu_table *tbl, long tcenum,
+static int tce_build_pSeriesLP(unsigned long liobn, long tcenum, long tceshift,
 				long npages, unsigned long uaddr,
 				enum dma_data_direction direction,
 				unsigned long attrs)
@@ -147,25 +146,25 @@
 	int ret = 0;
 	long tcenum_start = tcenum, npages_start = npages;
 
-	rpn = __pa(uaddr) >> TCE_SHIFT;
+	rpn = __pa(uaddr) >> tceshift;
 	proto_tce = TCE_PCI_READ;
 	if (direction != DMA_TO_DEVICE)
 		proto_tce |= TCE_PCI_WRITE;
 
 	while (npages--) {
-		tce = proto_tce | (rpn & TCE_RPN_MASK) << TCE_RPN_SHIFT;
-		rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, tce);
+		tce = proto_tce | (rpn & TCE_RPN_MASK) << tceshift;
+		rc = plpar_tce_put((u64)liobn, (u64)tcenum << tceshift, tce);
 
 		if (unlikely(rc == H_NOT_ENOUGH_RESOURCES)) {
 			ret = (int)rc;
-			tce_free_pSeriesLP(tbl, tcenum_start,
+			tce_free_pSeriesLP(liobn, tcenum_start,
 			                   (npages_start - (npages + 1)));
 			break;
 		}
 
 		if (rc && printk_ratelimit()) {
 			printk("tce_build_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
-			printk("\tindex   = 0x%llx\n", (u64)tbl->it_index);
+			printk("\tindex   = 0x%llx\n", (u64)liobn);
 			printk("\ttcenum  = 0x%llx\n", (u64)tcenum);
 			printk("\ttce val = 0x%llx\n", tce );
 			dump_stack();
@@ -194,7 +193,8 @@
 	unsigned long flags;
 
 	if ((npages == 1) || !firmware_has_feature(FW_FEATURE_MULTITCE)) {
-		return tce_build_pSeriesLP(tbl, tcenum, npages, uaddr,
+		return tce_build_pSeriesLP(tbl->it_index, tcenum,
+					   tbl->it_page_shift, npages, uaddr,
 		                           direction, attrs);
 	}
 
@@ -210,8 +210,9 @@
 		/* If allocation fails, fall back to the loop implementation */
 		if (!tcep) {
 			local_irq_restore(flags);
-			return tce_build_pSeriesLP(tbl, tcenum, npages, uaddr,
-					    direction, attrs);
+			return tce_build_pSeriesLP(tbl->it_index, tcenum,
+					tbl->it_page_shift,
+					npages, uaddr, direction, attrs);
 		}
 		__this_cpu_write(tce_page, tcep);
 	}
@@ -262,16 +263,16 @@
 	return ret;
 }
 
-static void tce_free_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages)
+static void tce_free_pSeriesLP(unsigned long liobn, long tcenum, long npages)
 {
 	u64 rc;
 
 	while (npages--) {
-		rc = plpar_tce_put((u64)tbl->it_index, (u64)tcenum << 12, 0);
+		rc = plpar_tce_put((u64)liobn, (u64)tcenum << 12, 0);
 
 		if (rc && printk_ratelimit()) {
 			printk("tce_free_pSeriesLP: plpar_tce_put failed. rc=%lld\n", rc);
-			printk("\tindex   = 0x%llx\n", (u64)tbl->it_index);
+			printk("\tindex   = 0x%llx\n", (u64)liobn);
 			printk("\ttcenum  = 0x%llx\n", (u64)tcenum);
 			dump_stack();
 		}
@@ -286,7 +287,7 @@
 	u64 rc;
 
 	if (!firmware_has_feature(FW_FEATURE_MULTITCE))
-		return tce_free_pSeriesLP(tbl, tcenum, npages);
+		return tce_free_pSeriesLP(tbl->it_index, tcenum, npages);
 
 	rc = plpar_tce_stuff((u64)tbl->it_index, (u64)tcenum << 12, 0, npages);
 
@@ -401,6 +402,19 @@
 	u64 rc = 0;
 	long l, limit;
 
+	if (!firmware_has_feature(FW_FEATURE_MULTITCE)) {
+		unsigned long tceshift = be32_to_cpu(maprange->tce_shift);
+		unsigned long dmastart = (start_pfn << PAGE_SHIFT) +
+				be64_to_cpu(maprange->dma_base);
+		unsigned long tcenum = dmastart >> tceshift;
+		unsigned long npages = num_pfn << PAGE_SHIFT >> tceshift;
+		void *uaddr = __va(start_pfn << PAGE_SHIFT);
+
+		return tce_build_pSeriesLP(be32_to_cpu(maprange->liobn),
+				tcenum, tceshift, npages, (unsigned long) uaddr,
+				DMA_BIDIRECTIONAL, 0);
+	}
+
 	local_irq_disable();	/* to protect tcep and the page behind it */
 	tcep = __this_cpu_read(tce_page);
 
@@ -1320,15 +1334,7 @@
 	of_reconfig_notifier_register(&iommu_reconfig_nb);
 	register_memory_notifier(&iommu_mem_nb);
 
-	/*
-	 * Secure guest memory is inacessible to devices so regular DMA isn't
-	 * possible.
-	 *
-	 * In that case keep devices' dma_map_ops as NULL so that the generic
-	 * DMA code path will use SWIOTLB to bounce buffers for DMA.
-	 */
-	if (!is_secure_guest())
-		set_pci_dma_ops(&dma_iommu_ops);
+	set_pci_dma_ops(&dma_iommu_ops);
 }
 
 static int __init disable_multitce(char *str)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/lpar.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/lpar.c
@@ -1416,22 +1416,22 @@
 
 void __init pseries_lpar_read_hblkrm_characteristics(void)
 {
+	const s32 token = rtas_token("ibm,get-system-parameter");
 	unsigned char local_buffer[SPLPAR_TLB_BIC_MAXLENGTH];
 	int call_status, len, idx, bpsize;
 
 	if (!firmware_has_feature(FW_FEATURE_BLOCK_REMOVE))
 		return;
 
-	spin_lock(&rtas_data_buf_lock);
-	memset(rtas_data_buf, 0, RTAS_DATA_BUF_SIZE);
-	call_status = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1,
-				NULL,
-				SPLPAR_TLB_BIC_TOKEN,
-				__pa(rtas_data_buf),
-				RTAS_DATA_BUF_SIZE);
-	memcpy(local_buffer, rtas_data_buf, SPLPAR_TLB_BIC_MAXLENGTH);
-	local_buffer[SPLPAR_TLB_BIC_MAXLENGTH - 1] = '\0';
-	spin_unlock(&rtas_data_buf_lock);
+	do {
+		spin_lock(&rtas_data_buf_lock);
+		memset(rtas_data_buf, 0, RTAS_DATA_BUF_SIZE);
+		call_status = rtas_call(token, 3, 1, NULL, SPLPAR_TLB_BIC_TOKEN,
+					__pa(rtas_data_buf), RTAS_DATA_BUF_SIZE);
+		memcpy(local_buffer, rtas_data_buf, SPLPAR_TLB_BIC_MAXLENGTH);
+		local_buffer[SPLPAR_TLB_BIC_MAXLENGTH - 1] = '\0';
+		spin_unlock(&rtas_data_buf_lock);
+	} while (rtas_busy_delay(call_status));
 
 	if (call_status != 0) {
 		pr_warn("%s %s Error calling get-system-parameter (0x%x)\n",
@@ -1992,7 +1992,7 @@
 {
 	char name[16];
 	long i;
-	static struct dentry *vpa_dir;
+	struct dentry *vpa_dir;
 
 	if (!firmware_has_feature(FW_FEATURE_SPLPAR))
 		return 0;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/lparcfg.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/lparcfg.c
@@ -289,6 +289,7 @@
  */
 static void parse_system_parameter_string(struct seq_file *m)
 {
+	const s32 token = rtas_token("ibm,get-system-parameter");
 	int call_status;
 
 	unsigned char *local_buffer = kmalloc(SPLPAR_MAXLENGTH, GFP_KERNEL);
@@ -298,16 +299,15 @@
 		return;
 	}
 
-	spin_lock(&rtas_data_buf_lock);
-	memset(rtas_data_buf, 0, SPLPAR_MAXLENGTH);
-	call_status = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1,
-				NULL,
-				SPLPAR_CHARACTERISTICS_TOKEN,
-				__pa(rtas_data_buf),
-				RTAS_DATA_BUF_SIZE);
-	memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
-	local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
-	spin_unlock(&rtas_data_buf_lock);
+	do {
+		spin_lock(&rtas_data_buf_lock);
+		memset(rtas_data_buf, 0, SPLPAR_MAXLENGTH);
+		call_status = rtas_call(token, 3, 1, NULL, SPLPAR_CHARACTERISTICS_TOKEN,
+					__pa(rtas_data_buf), RTAS_DATA_BUF_SIZE);
+		memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
+		local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
+		spin_unlock(&rtas_data_buf_lock);
+	} while (rtas_busy_delay(call_status));
 
 	if (call_status != 0) {
 		printk(KERN_INFO
@@ -435,10 +435,10 @@
 {
 	unsigned long maxmem = 0;
 
-	maxmem += drmem_info->n_lmbs * drmem_info->lmb_size;
+	maxmem += (unsigned long)drmem_info->n_lmbs * drmem_info->lmb_size;
 	maxmem += hugetlb_total_pages() * PAGE_SIZE;
 
-	seq_printf(m, "MaxMem=%ld\n", maxmem);
+	seq_printf(m, "MaxMem=%lu\n", maxmem);
 }
 
 static int pseries_lparcfg_data(struct seq_file *m, void *v)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/msi.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/msi.c
@@ -4,6 +4,7 @@
  * Copyright 2006-2007 Michael Ellerman, IBM Corp.
  */
 
+#include <linux/crash_dump.h>
 #include <linux/device.h>
 #include <linux/irq.h>
 #include <linux/msi.h>
@@ -458,7 +459,28 @@
 			return hwirq;
 		}
 
-		virq = irq_create_mapping(NULL, hwirq);
+		/*
+		 * Depending on the number of online CPUs in the original
+		 * kernel, it is likely for CPU #0 to be offline in a kdump
+		 * kernel. The associated IRQs in the affinity mappings
+		 * provided by irq_create_affinity_masks() are thus not
+		 * started by irq_startup(), as per-design for managed IRQs.
+		 * This can be a problem with multi-queue block devices driven
+		 * by blk-mq : such a non-started IRQ is very likely paired
+		 * with the single queue enforced by blk-mq during kdump (see
+		 * blk_mq_alloc_tag_set()). This causes the device to remain
+		 * silent and likely hangs the guest at some point.
+		 *
+		 * We don't really care for fine-grained affinity when doing
+		 * kdump actually : simply ignore the pre-computed affinity
+		 * masks in this case and let the default mask with all CPUs
+		 * be used when creating the IRQ mappings.
+		 */
+		if (is_kdump_kernel())
+			virq = irq_create_mapping(NULL, hwirq);
+		else
+			virq = irq_create_mapping_affinity(NULL, hwirq,
+							   entry->affinity);
 
 		if (!virq) {
 			pr_debug("rtas_msi: Failed mapping hwirq %d\n", hwirq);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/papr_scm.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/papr_scm.c
@@ -152,7 +152,7 @@
 	int len, read;
 	int64_t ret;
 
-	if ((hdr->in_offset + hdr->in_length) >= p->metadata_size)
+	if ((hdr->in_offset + hdr->in_length) > p->metadata_size)
 		return -EINVAL;
 
 	for (len = hdr->in_length; len; len -= read) {
@@ -206,7 +206,7 @@
 	__be64 data_be;
 	int64_t ret;
 
-	if ((hdr->in_offset + hdr->in_length) >= p->metadata_size)
+	if ((hdr->in_offset + hdr->in_length) > p->metadata_size)
 		return -EINVAL;
 
 	for (len = hdr->in_length; len; len -= wrote) {
@@ -342,6 +342,7 @@
 	p->bus = nvdimm_bus_register(NULL, &p->bus_desc);
 	if (!p->bus) {
 		dev_err(dev, "Error creating nvdimm bus %pOF\n", p->dn);
+		kfree(p->bus_desc.provider_name);
 		return -ENXIO;
 	}
 
@@ -498,6 +499,7 @@
 
 	nvdimm_bus_unregister(p->bus);
 	drc_pmem_unbind(p);
+	kfree(p->bus_desc.provider_name);
 	kfree(p);
 
 	return 0;
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -66,6 +66,7 @@
 int remove_phb_dynamic(struct pci_controller *phb)
 {
 	struct pci_bus *b = phb->bus;
+	struct pci_host_bridge *host_bridge = to_pci_host_bridge(b->bridge);
 	struct resource *res;
 	int rc, i;
 
@@ -92,7 +93,8 @@
 	/* Remove the PCI bus and unregister the bridge device from sysfs */
 	phb->bus = NULL;
 	pci_remove_bus(b);
-	device_unregister(b->bridge);
+	host_bridge->bus = NULL;
+	device_unregister(&host_bridge->dev);
 
 	/* Now release the IO resource */
 	if (res->flags & IORESOURCE_IO)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/pseries.h
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/pseries.h
@@ -114,4 +114,6 @@
 void pseries_setup_rfi_flush(void);
 void pseries_lpar_read_hblkrm_characteristics(void);
 
+void pseries_rng_init(void);
+
 #endif /* _PSERIES_PSERIES_H */
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/ras.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/ras.c
@@ -184,7 +184,6 @@
 	case EPOW_SHUTDOWN_ON_UPS:
 		pr_emerg("Loss of system power detected. System is running on"
 			 " UPS/battery. Check RTAS error log for details\n");
-		orderly_poweroff(true);
 		break;
 
 	case EPOW_SHUTDOWN_LOSS_OF_CRITICAL_FUNCTIONS:
@@ -395,10 +394,11 @@
 /*
  * Some versions of FWNMI place the buffer inside the 4kB page starting at
  * 0x7000. Other versions place it inside the rtas buffer. We check both.
+ * Minimum size of the buffer is 16 bytes.
  */
 #define VALID_FWNMI_BUFFER(A) \
-	((((A) >= 0x7000) && ((A) < 0x7ff0)) || \
-	(((A) >= rtas.base) && ((A) < (rtas.base + rtas.size - 16))))
+	((((A) >= 0x7000) && ((A) <= 0x8000 - 16)) || \
+	(((A) >= rtas.base) && ((A) <= (rtas.base + rtas.size - 16))))
 
 static inline struct rtas_error_log *fwnmi_get_errlog(void)
 {
@@ -494,18 +494,55 @@
 	return 0; /* need to perform reset */
 }
 
+static int mce_handle_err_realmode(int disposition, u8 error_type)
+{
+#ifdef CONFIG_PPC_BOOK3S_64
+	if (disposition == RTAS_DISP_NOT_RECOVERED) {
+		switch (error_type) {
+		case	MC_ERROR_TYPE_SLB:
+		case	MC_ERROR_TYPE_ERAT:
+			/*
+			 * Store the old slb content in paca before flushing.
+			 * Print this when we go to virtual mode.
+			 * There are chances that we may hit MCE again if there
+			 * is a parity error on the SLB entry we trying to read
+			 * for saving. Hence limit the slb saving to single
+			 * level of recursion.
+			 */
+			if (local_paca->in_mce == 1)
+				slb_save_contents(local_paca->mce_faulty_slbs);
+			flush_and_reload_slb();
+			disposition = RTAS_DISP_FULLY_RECOVERED;
+			break;
+		default:
+			break;
+		}
+	} else if (disposition == RTAS_DISP_LIMITED_RECOVERY) {
+		/* Platform corrected itself but could be degraded */
+		pr_err("MCE: limited recovery, system may be degraded\n");
+		disposition = RTAS_DISP_FULLY_RECOVERED;
+	}
+#endif
+	return disposition;
+}
 
-static int mce_handle_error(struct pt_regs *regs, struct rtas_error_log *errp)
+static int mce_handle_err_virtmode(struct pt_regs *regs,
+				   struct rtas_error_log *errp,
+				   struct pseries_mc_errorlog *mce_log,
+				   int disposition)
 {
 	struct mce_error_info mce_err = { 0 };
-	unsigned long eaddr = 0, paddr = 0;
-	struct pseries_errorlog *pseries_log;
-	struct pseries_mc_errorlog *mce_log;
-	int disposition = rtas_error_disposition(errp);
 	int initiator = rtas_error_initiator(errp);
 	int severity = rtas_error_severity(errp);
+	unsigned long eaddr = 0, paddr = 0;
 	u8 error_type, err_sub_type;
 
+	if (!mce_log)
+		goto out;
+
+	error_type = mce_log->error_type;
+	err_sub_type = rtas_mc_error_sub_type(mce_log);
+
 	if (initiator == RTAS_INITIATOR_UNKNOWN)
 		mce_err.initiator = MCE_INITIATOR_UNKNOWN;
 	else if (initiator == RTAS_INITIATOR_CPU)
@@ -544,18 +581,7 @@
 	mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
 	mce_err.error_class = MCE_ECLASS_UNKNOWN;
 
-	if (!rtas_error_extended(errp))
-		goto out;
-
-	pseries_log = get_pseries_errorlog(errp, PSERIES_ELOG_SECT_ID_MCE);
-	if (pseries_log == NULL)
-		goto out;
-
-	mce_log = (struct pseries_mc_errorlog *)pseries_log->data;
-	error_type = mce_log->error_type;
-	err_sub_type = rtas_mc_error_sub_type(mce_log);
-
-	switch (mce_log->error_type) {
+	switch (error_type) {
 	case MC_ERROR_TYPE_UE:
 		mce_err.error_type = MCE_ERROR_TYPE_UE;
 		switch (err_sub_type) {
@@ -652,40 +678,45 @@
 		mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
 		break;
 	}
-
-#ifdef CONFIG_PPC_BOOK3S_64
-	if (disposition == RTAS_DISP_NOT_RECOVERED) {
-		switch (error_type) {
-		case	MC_ERROR_TYPE_SLB:
-		case	MC_ERROR_TYPE_ERAT:
-			/*
-			 * Store the old slb content in paca before flushing.
-			 * Print this when we go to virtual mode.
-			 * There are chances that we may hit MCE again if there
-			 * is a parity error on the SLB entry we trying to read
-			 * for saving. Hence limit the slb saving to single
-			 * level of recursion.
-			 */
-			if (local_paca->in_mce == 1)
-				slb_save_contents(local_paca->mce_faulty_slbs);
-			flush_and_reload_slb();
-			disposition = RTAS_DISP_FULLY_RECOVERED;
-			break;
-		default:
-			break;
-		}
-	} else if (disposition == RTAS_DISP_LIMITED_RECOVERY) {
-		/* Platform corrected itself but could be degraded */
-		printk(KERN_ERR "MCE: limited recovery, system may "
-		       "be degraded\n");
-		disposition = RTAS_DISP_FULLY_RECOVERED;
-	}
-#endif
-
 out:
 	save_mce_event(regs, disposition == RTAS_DISP_FULLY_RECOVERED,
-			&mce_err, regs->nip, eaddr, paddr);
+		       &mce_err, regs->nip, eaddr, paddr);
+	return disposition;
+}
+
+static int mce_handle_error(struct pt_regs *regs, struct rtas_error_log *errp)
+{
+	struct pseries_errorlog *pseries_log;
+	struct pseries_mc_errorlog *mce_log = NULL;
+	int disposition = rtas_error_disposition(errp);
+	u8 error_type;
+
+	if (!rtas_error_extended(errp))
+		goto out;
+
+	pseries_log = get_pseries_errorlog(errp, PSERIES_ELOG_SECT_ID_MCE);
+	if (!pseries_log)
+		goto out;
+
+	mce_log = (struct pseries_mc_errorlog *)pseries_log->data;
+	error_type = mce_log->error_type;
+
+	disposition = mce_handle_err_realmode(disposition, error_type);
 
+	/*
+	 * Enable translation as we will be accessing per-cpu variables
+	 * in save_mce_event() which may fall outside RMO region, also
+	 * leave it enabled because subsequently we will be queuing work
+	 * to workqueues where again per-cpu variables accessed, besides
+	 * fwnmi_release_errinfo() crashes when called in realmode on
+	 * pseries.
+	 * Note: All the realmode handling like flushing SLB entries for
+	 *       SLB multihit is done by now.
+	 */
+out:
+	mtmsr(mfmsr() | MSR_IR | MSR_DR);
+	disposition = mce_handle_err_virtmode(regs, errp, mce_log,
+					      disposition);
 	return disposition;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/rng.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/rng.c
@@ -10,6 +10,7 @@
 #include <asm/archrandom.h>
 #include <asm/machdep.h>
 #include <asm/plpar_wrappers.h>
+#include "pseries.h"
 
 
 static int pseries_get_random_long(unsigned long *v)
@@ -24,18 +25,13 @@
 	return 0;
 }
 
-static __init int rng_init(void)
+void __init pseries_rng_init(void)
 {
 	struct device_node *dn;
 
 	dn = of_find_compatible_node(NULL, NULL, "ibm,random");
 	if (!dn)
-		return -ENODEV;
-
-	pr_info("Registering arch random hook.\n");
-
+		return;
 	ppc_md.get_random_seed = pseries_get_random_long;
-
-	return 0;
+	of_node_put(dn);
 }
-machine_subsys_initcall(pseries, rng_init);
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/setup.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/setup.c
@@ -74,6 +74,9 @@
 #include "pseries.h"
 #include "../../../../drivers/pci/pci.h"
 
+DEFINE_STATIC_KEY_FALSE(shared_processor);
+EXPORT_SYMBOL(shared_processor);
+
 int CMO_PrPSP = -1;
 int CMO_SecPSP = -1;
 unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT_4K);
@@ -558,6 +561,14 @@
 
 	setup_rfi_flush(types, enable);
 	setup_count_cache_flush();
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_ENTRY);
+	setup_entry_flush(enable);
+
+	enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) &&
+		 security_ftr_enabled(SEC_FTR_L1D_FLUSH_UACCESS);
+	setup_uaccess_flush(enable);
 }
 
 #ifdef CONFIG_PCI_IOV
@@ -758,6 +769,10 @@
 
 	if (firmware_has_feature(FW_FEATURE_LPAR)) {
 		vpa_init(boot_cpuid);
+
+		if (lppaca_shared_proc(get_lppaca()))
+			static_branch_enable(&shared_processor);
+
 		ppc_md.power_save = pseries_lpar_idle;
 		ppc_md.enable_pmcs = pseries_lpar_enable_pmcs;
 #ifdef CONFIG_PCI_IOV
@@ -777,6 +792,8 @@
 
 	if (swiotlb_force == SWIOTLB_FORCE)
 		ppc_swiotlb_enable = 1;
+
+	pseries_rng_init();
 }
 
 static void pseries_panic(char *str)
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/suspend.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/suspend.c
@@ -13,7 +13,6 @@
 #include <asm/mmu.h>
 #include <asm/rtas.h>
 #include <asm/topology.h>
-#include "../../kernel/cacheinfo.h"
 
 static u64 stream_id;
 static struct device suspend_dev;
@@ -78,9 +77,7 @@
 	 * Update configuration which can be modified based on device tree
 	 * changes during resume.
 	 */
-	cacheinfo_cpu_offline(smp_processor_id());
 	post_mobility_fixup();
-	cacheinfo_cpu_online(smp_processor_id());
 }
 
 /**
@@ -132,15 +129,11 @@
 			       struct device_attribute *attr,
 			       const char *buf, size_t count)
 {
-	cpumask_var_t offline_mask;
 	int rc;
 
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 
-	if (!alloc_cpumask_var(&offline_mask, GFP_KERNEL))
-		return -ENOMEM;
-
 	stream_id = simple_strtoul(buf, NULL, 16);
 
 	do {
@@ -150,32 +143,16 @@
 	} while (rc == -EAGAIN);
 
 	if (!rc) {
-		/* All present CPUs must be online */
-		cpumask_andnot(offline_mask, cpu_present_mask,
-				cpu_online_mask);
-		rc = rtas_online_cpus_mask(offline_mask);
-		if (rc) {
-			pr_err("%s: Could not bring present CPUs online.\n",
-					__func__);
-			goto out;
-		}
-
 		stop_topology_update();
 		rc = pm_suspend(PM_SUSPEND_MEM);
 		start_topology_update();
-
-		/* Take down CPUs not online prior to suspend */
-		if (!rtas_offline_cpus_mask(offline_mask))
-			pr_warn("%s: Could not restore CPUs to offline "
-					"state.\n", __func__);
 	}
 
 	stream_id = 0;
 
 	if (!rc)
 		rc = count;
-out:
-	free_cpumask_var(offline_mask);
+
 	return rc;
 }
 
@@ -210,7 +187,6 @@
 
 static const struct platform_suspend_ops pseries_suspend_ops = {
 	.valid		= suspend_valid_only_mem,
-	.begin		= pseries_suspend_begin,
 	.prepare_late	= pseries_prepare_late,
 	.enter		= pseries_suspend_enter,
 };
--- linux-ein-5.4.0.orig/arch/powerpc/platforms/pseries/vio.c
+++ linux-ein-5.4.0/arch/powerpc/platforms/pseries/vio.c
@@ -36,7 +36,6 @@
 	.name = "vio",
 	.type = "",
 	.dev.init_name = "vio",
-	.dev.bus = &vio_bus_type,
 };
 
 #ifdef CONFIG_PPC_SMLPAR
@@ -1176,6 +1175,8 @@
 	if (tbl == NULL)
 		return NULL;
 
+	kref_init(&tbl->it_kref);
+
 	of_parse_dma_window(dev->dev.of_node, dma_window,
 			    &tbl->it_index, &offset, &size);
 
--- linux-ein-5.4.0.orig/arch/powerpc/purgatory/Makefile
+++ linux-ein-5.4.0/arch/powerpc/purgatory/Makefile
@@ -4,6 +4,11 @@
 
 targets += trampoline.o purgatory.ro kexec-purgatory.c
 
+# When profile-guided optimization is enabled, llvm emits two different
+# overlapping text sections, which is not supported by kexec. Remove profile
+# optimization flags.
+KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS))
+
 LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined
 
 $(obj)/purgatory.ro: $(obj)/trampoline.o FORCE
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/dart_iommu.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/dart_iommu.c
@@ -403,9 +403,10 @@
 	}
 
 	/* Initialize the DART HW */
-	if (dart_init(dn) != 0)
+	if (dart_init(dn) != 0) {
+		of_node_put(dn);
 		return;
-
+	}
 	/*
 	 * U4 supports a DART bypass, we use it for 64-bit capable devices to
 	 * improve performance.  However, that only works for devices connected
@@ -418,6 +419,7 @@
 
 	/* Setup pci_dma ops */
 	set_pci_dma_ops(&dma_iommu_ops);
+	of_node_put(dn);
 }
 
 #ifdef CONFIG_PM
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/dcr-low.S
+++ linux-ein-5.4.0/arch/powerpc/sysdev/dcr-low.S
@@ -11,7 +11,7 @@
 #include <asm/export.h>
 
 #define DCR_ACCESS_PROLOG(table) \
-	cmpli	cr0,r3,1024;	 \
+	cmplwi	cr0,r3,1024;	 \
 	rlwinm  r3,r3,4,18,27;   \
 	lis     r5,table@h;      \
 	ori     r5,r5,table@l;   \
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/fsl_gtm.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/fsl_gtm.c
@@ -86,7 +86,7 @@
  */
 struct gtm_timer *gtm_get_timer16(void)
 {
-	struct gtm *gtm = NULL;
+	struct gtm *gtm;
 	int i;
 
 	list_for_each_entry(gtm, &gtms, list_node) {
@@ -103,7 +103,7 @@
 		spin_unlock_irq(&gtm->lock);
 	}
 
-	if (gtm)
+	if (!list_empty(&gtms))
 		return ERR_PTR(-EBUSY);
 	return ERR_PTR(-ENODEV);
 }
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/fsl_msi.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/fsl_msi.c
@@ -211,8 +211,10 @@
 			dev_err(&pdev->dev,
 				"node %pOF has an invalid fsl,msi phandle %u\n",
 				hose->dn, np->phandle);
+			of_node_put(np);
 			return -EINVAL;
 		}
+		of_node_put(np);
 	}
 
 	for_each_pci_msi_entry(entry, pdev) {
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/fsl_pci.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/fsl_pci.c
@@ -520,6 +520,7 @@
 	struct resource rsrc;
 	const int *bus_range;
 	u8 hdr_type, progif;
+	u32 class_code;
 	struct device_node *dev;
 	struct ccsr_pci __iomem *pci;
 	u16 temp;
@@ -593,6 +594,13 @@
 			PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS;
 		if (fsl_pcie_check_link(hose))
 			hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK;
+		/* Fix Class Code to PCI_CLASS_BRIDGE_PCI_NORMAL for pre-3.0 controller */
+		if (in_be32(&pci->block_rev1) < PCIE_IP_REV_3_0) {
+			early_read_config_dword(hose, 0, 0, PCIE_FSL_CSR_CLASSCODE, &class_code);
+			class_code &= 0xff;
+			class_code |= PCI_CLASS_BRIDGE_PCI_NORMAL << 8;
+			early_write_config_dword(hose, 0, 0, PCIE_FSL_CSR_CLASSCODE, class_code);
+		}
 	} else {
 		/*
 		 * Set PBFR(PCI Bus Function Register)[10] = 1 to
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/fsl_pci.h
+++ linux-ein-5.4.0/arch/powerpc/sysdev/fsl_pci.h
@@ -18,6 +18,7 @@
 
 #define PCIE_LTSSM	0x0404		/* PCIE Link Training and Status */
 #define PCIE_LTSSM_L0	0x16		/* L0 state */
+#define PCIE_FSL_CSR_CLASSCODE	0x474	/* FSL GPEX CSR */
 #define PCIE_IP_REV_2_2		0x02080202 /* PCIE IP block version Rev2.2 */
 #define PCIE_IP_REV_3_0		0x02080300 /* PCIE IP block version Rev3.0 */
 #define PIWAR_EN		0x80000000	/* Enable */
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/fsl_rio.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/fsl_rio.c
@@ -505,8 +505,10 @@
 	if (rc) {
 		dev_err(&dev->dev, "Can't get %pOF property 'reg'\n",
 				rmu_node);
+		of_node_put(rmu_node);
 		goto err_rmu;
 	}
+	of_node_put(rmu_node);
 	rmu_regs_win = ioremap(rmu_regs.start, resource_size(&rmu_regs));
 	if (!rmu_regs_win) {
 		dev_err(&dev->dev, "Unable to map rmu register window\n");
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/mpic_msgr.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/mpic_msgr.c
@@ -191,7 +191,7 @@
 
 	/* IO map the message register block. */
 	of_address_to_resource(np, 0, &rsrc);
-	msgr_block_addr = ioremap(rsrc.start, resource_size(&rsrc));
+	msgr_block_addr = devm_ioremap(&dev->dev, rsrc.start, resource_size(&rsrc));
 	if (!msgr_block_addr) {
 		dev_err(&dev->dev, "Failed to iomap MPIC message registers");
 		return -EFAULT;
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/tsi108_pci.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/tsi108_pci.c
@@ -216,9 +216,8 @@
 
 	(hose)->ops = &tsi108_direct_pci_ops;
 
-	printk(KERN_INFO "Found tsi108 PCI host bridge at 0x%08x. "
-	       "Firmware bus number: %d->%d\n",
-	       rsrc.start, hose->first_busno, hose->last_busno);
+	pr_info("Found tsi108 PCI host bridge at 0x%pa. Firmware bus number: %d->%d\n",
+		&rsrc.start, hose->first_busno, hose->last_busno);
 
 	/* Interpret the "ranges" property */
 	/* This also maps the I/O region and sets isa_io/mem_base */
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/xics/icp-hv.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/xics/icp-hv.c
@@ -174,6 +174,7 @@
 
 	icp_ops = &icp_hv_ops;
 
+	of_node_put(np);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/xics/icp-opal.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/xics/icp-opal.c
@@ -195,6 +195,7 @@
 
 	printk("XICS: Using OPAL ICP fallbacks\n");
 
+	of_node_put(np);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/xive/common.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/xive/common.c
@@ -19,6 +19,7 @@
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/msi.h>
+#include <linux/vmalloc.h>
 
 #include <asm/prom.h>
 #include <asm/io.h>
@@ -68,13 +69,6 @@
 /* Xive state for each CPU */
 static DEFINE_PER_CPU(struct xive_cpu *, xive_cpu);
 
-/*
- * A "disabled" interrupt should never fire, to catch problems
- * we set its logical number to this
- */
-#define XIVE_BAD_IRQ		0x7fffffff
-#define XIVE_MAX_IRQ		(XIVE_BAD_IRQ - 1)
-
 /* An invalid CPU target */
 #define XIVE_INVALID_TARGET	(-1)
 
@@ -263,6 +257,13 @@
 	xmon_printf("\n");
 }
 
+static struct irq_data *xive_get_irq_data(u32 hw_irq)
+{
+	unsigned int irq = irq_find_mapping(xive_irq_domain, hw_irq);
+
+	return irq ? irq_get_irq_data(irq) : NULL;
+}
+
 int xmon_xive_get_irq_config(u32 hw_irq, struct irq_data *d)
 {
 	int rc;
@@ -279,6 +280,9 @@
 	xmon_printf("IRQ 0x%08x : target=0x%x prio=%02x lirq=0x%x ",
 		    hw_irq, target, prio, lirq);
 
+	if (!d)
+		d = xive_get_irq_data(hw_irq);
+
 	if (d) {
 		struct xive_irq_data *xd = irq_data_get_irq_handler_data(d);
 		u64 val = xive_esb_read(xd, XIVE_ESB_GET);
@@ -972,12 +976,22 @@
 				  enum irqchip_irq_state which, bool *state)
 {
 	struct xive_irq_data *xd = irq_data_get_irq_handler_data(data);
+	u8 pq;
 
 	switch (which) {
 	case IRQCHIP_STATE_ACTIVE:
-		*state = !xd->stale_p &&
-			 (xd->saved_p ||
-			  !!(xive_esb_read(xd, XIVE_ESB_GET) & XIVE_ESB_VAL_P));
+		pq = xive_esb_read(xd, XIVE_ESB_GET);
+
+		/*
+		 * The esb value being all 1's means we couldn't get
+		 * the PQ state of the interrupt through mmio. It may
+		 * happen, for example when querying a PHB interrupt
+		 * while the PHB is in an error state. We consider the
+		 * interrupt to be inactive in that case.
+		 */
+		*state = (pq != XIVE_ESB_INVALID) && !xd->stale_p &&
+			(xd->saved_p || (!!(pq & XIVE_ESB_VAL_P) &&
+			 !irqd_irq_disabled(data)));
 		return 0;
 	default:
 		return -EINVAL;
@@ -1007,12 +1021,16 @@
 void xive_cleanup_irq_data(struct xive_irq_data *xd)
 {
 	if (xd->eoi_mmio) {
+		unmap_kernel_range((unsigned long)xd->eoi_mmio,
+				   1u << xd->esb_shift);
 		iounmap(xd->eoi_mmio);
 		if (xd->eoi_mmio == xd->trig_mmio)
 			xd->trig_mmio = NULL;
 		xd->eoi_mmio = NULL;
 	}
 	if (xd->trig_mmio) {
+		unmap_kernel_range((unsigned long)xd->trig_mmio,
+				   1u << xd->esb_shift);
 		iounmap(xd->trig_mmio);
 		xd->trig_mmio = NULL;
 	}
@@ -1035,6 +1053,15 @@
 	xd->target = XIVE_INVALID_TARGET;
 	irq_set_handler_data(virq, xd);
 
+	/*
+	 * Turn OFF by default the interrupt being mapped. A side
+	 * effect of this check is the mapping the ESB page of the
+	 * interrupt in the Linux address space. This prevents page
+	 * fault issues in the crash handler which masks all
+	 * interrupts.
+	 */
+	xive_esb_read(xd, XIVE_ESB_SET_PQ_01);
+
 	return 0;
 }
 
@@ -1132,7 +1159,7 @@
 	xc = per_cpu(xive_cpu, cpu);
 
 	/* Check if we are already setup */
-	if (xc->hw_ipi != 0)
+	if (xc->hw_ipi != XIVE_BAD_IRQ)
 		return 0;
 
 	/* Grab an IPI from the backend, this will populate xc->hw_ipi */
@@ -1169,7 +1196,7 @@
 	/* Disable the IPI and free the IRQ data */
 
 	/* Already cleaned up ? */
-	if (xc->hw_ipi == 0)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 
 	/* Mask the IPI */
@@ -1325,6 +1352,7 @@
 		if (np)
 			xc->chip_id = of_get_ibm_chip_id(np);
 		of_node_put(np);
+		xc->hw_ipi = XIVE_BAD_IRQ;
 
 		per_cpu(xive_cpu, cpu) = xc;
 	}
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/xive/native.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/xive/native.c
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/cpumask.h>
 #include <linux/mm.h>
+#include <linux/kmemleak.h>
 
 #include <asm/prom.h>
 #include <asm/io.h>
@@ -312,7 +313,7 @@
 	s64 rc;
 
 	/* Free the IPI */
-	if (!xc->hw_ipi)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 	for (;;) {
 		rc = opal_xive_free_irq(xc->hw_ipi);
@@ -320,7 +321,7 @@
 			msleep(OPAL_BUSY_DELAY_MS);
 			continue;
 		}
-		xc->hw_ipi = 0;
+		xc->hw_ipi = XIVE_BAD_IRQ;
 		break;
 	}
 }
@@ -646,6 +647,7 @@
 			pr_err("Failed to allocate provisioning page\n");
 			return false;
 		}
+		kmemleak_ignore(p);
 		opal_xive_donate_page(chip, __pa(p));
 	}
 	return true;
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/xive/spapr.c
+++ linux-ein-5.4.0/arch/powerpc/sysdev/xive/spapr.c
@@ -392,20 +392,28 @@
 	data->esb_shift = esb_shift;
 	data->trig_page = trig_page;
 
+	data->hw_irq = hw_irq;
+
 	/*
 	 * No chip-id for the sPAPR backend. This has an impact how we
 	 * pick a target. See xive_pick_irq_target().
 	 */
 	data->src_chip = XIVE_INVALID_CHIP_ID;
 
+	/*
+	 * When the H_INT_ESB flag is set, the H_INT_ESB hcall should
+	 * be used for interrupt management. Skip the remapping of the
+	 * ESB pages which are not available.
+	 */
+	if (data->flags & XIVE_IRQ_FLAG_H_INT_ESB)
+		return 0;
+
 	data->eoi_mmio = ioremap(data->eoi_page, 1u << data->esb_shift);
 	if (!data->eoi_mmio) {
 		pr_err("Failed to map EOI page for irq 0x%x\n", hw_irq);
 		return -ENOMEM;
 	}
 
-	data->hw_irq = hw_irq;
-
 	/* Full function page supports trigger */
 	if (flags & XIVE_SRC_TRIGGER) {
 		data->trig_mmio = data->eoi_mmio;
@@ -414,6 +422,7 @@
 
 	data->trig_mmio = ioremap(data->trig_page, 1u << data->esb_shift);
 	if (!data->trig_mmio) {
+		iounmap(data->eoi_mmio);
 		pr_err("Failed to map trigger page for irq 0x%x\n", hw_irq);
 		return -ENOMEM;
 	}
@@ -552,11 +561,11 @@
 
 static void xive_spapr_put_ipi(unsigned int cpu, struct xive_cpu *xc)
 {
-	if (!xc->hw_ipi)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 
 	xive_irq_bitmap_free(xc->hw_ipi);
-	xc->hw_ipi = 0;
+	xc->hw_ipi = XIVE_BAD_IRQ;
 }
 #endif /* CONFIG_SMP */
 
@@ -675,6 +684,7 @@
 	}
 
 	reg = of_get_property(rootdn, "ibm,plat-res-int-priorities", &len);
+	of_node_put(rootdn);
 	if (!reg) {
 		pr_err("Failed to read 'ibm,plat-res-int-priorities' property\n");
 		return false;
--- linux-ein-5.4.0.orig/arch/powerpc/sysdev/xive/xive-internal.h
+++ linux-ein-5.4.0/arch/powerpc/sysdev/xive/xive-internal.h
@@ -5,6 +5,13 @@
 #ifndef __XIVE_INTERNAL_H
 #define __XIVE_INTERNAL_H
 
+/*
+ * A "disabled" interrupt should never fire, to catch problems
+ * we set its logical number to this
+ */
+#define XIVE_BAD_IRQ		0x7fffffff
+#define XIVE_MAX_IRQ		(XIVE_BAD_IRQ - 1)
+
 /* Each CPU carry one of these with various per-CPU state */
 struct xive_cpu {
 #ifdef CONFIG_SMP
--- linux-ein-5.4.0.orig/arch/powerpc/tools/relocs_check.sh
+++ linux-ein-5.4.0/arch/powerpc/tools/relocs_check.sh
@@ -10,24 +10,29 @@
 # based on relocs_check.pl
 # Copyright © 2009 IBM Corporation
 
-if [ $# -lt 2 ]; then
-	echo "$0 [path to objdump] [path to vmlinux]" 1>&2
+if [ $# -lt 3 ]; then
+	echo "$0 [path to objdump] [path to nm] [path to vmlinux]" 1>&2
 	exit 1
 fi
 
-# Have Kbuild supply the path to objdump so we handle cross compilation.
+# Have Kbuild supply the path to objdump and nm so we handle cross compilation.
 objdump="$1"
-vmlinux="$2"
+nm="$2"
+vmlinux="$3"
+
+# Remove from the bad relocations those that match an undefined weak symbol
+# which will result in an absolute relocation to 0.
+# Weak unresolved symbols are of that form in nm output:
+# "                  w _binary__btf_vmlinux_bin_end"
+undef_weak_symbols=$($nm "$vmlinux" | awk '$1 ~ /w/ { print $2 }')
 
 bad_relocs=$(
-"$objdump" -R "$vmlinux" |
+$objdump -R "$vmlinux" |
 	# Only look at relocation lines.
 	grep -E '\<R_' |
 	# These relocations are okay
 	# On PPC64:
 	#	R_PPC64_RELATIVE, R_PPC64_NONE
-	#	R_PPC64_ADDR64 mach_<name>
-	#	R_PPC64_ADDR64 __crc_<name>
 	# On PPC:
 	#	R_PPC_RELATIVE, R_PPC_ADDR16_HI,
 	#	R_PPC_ADDR16_HA,R_PPC_ADDR16_LO,
@@ -39,8 +44,7 @@
 R_PPC_ADDR16_HA
 R_PPC_RELATIVE
 R_PPC_NONE' |
-	grep -E -v '\<R_PPC64_ADDR64[[:space:]]+mach_' |
-	grep -E -v '\<R_PPC64_ADDR64[[:space:]]+__crc_'
+	([ "$undef_weak_symbols" ] && grep -F -w -v "$undef_weak_symbols" || cat)
 )
 
 if [ -z "$bad_relocs" ]; then
--- linux-ein-5.4.0.orig/arch/powerpc/tools/unrel_branch_check.sh
+++ linux-ein-5.4.0/arch/powerpc/tools/unrel_branch_check.sh
@@ -18,14 +18,14 @@
 #__end_interrupts should be located within the first 64K
 
 end_intr=0x$(
-"$objdump" -R "$vmlinux" -d --start-address=0xc000000000000000		\
+$objdump -R "$vmlinux" -d --start-address=0xc000000000000000           \
 		 --stop-address=0xc000000000010000 |
 grep '\<__end_interrupts>:' |
 awk '{print $1}'
 )
 
 BRANCHES=$(
-"$objdump" -R "$vmlinux" -D --start-address=0xc000000000000000		\
+$objdump -R "$vmlinux" -D --start-address=0xc000000000000000           \
 		--stop-address=${end_intr} |
 grep -e "^c[0-9a-f]*:[[:space:]]*\([0-9a-f][0-9a-f][[:space:]]\)\{4\}[[:space:]]*b" |
 grep -v '\<__start_initialization_multiplatform>' |
--- linux-ein-5.4.0.orig/arch/powerpc/xmon/Makefile
+++ linux-ein-5.4.0/arch/powerpc/xmon/Makefile
@@ -1,9 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 # Makefile for xmon
 
-# Disable clang warning for using setjmp without setjmp.h header
-subdir-ccflags-y := $(call cc-disable-warning, builtin-requires-header)
-
 GCOV_PROFILE := n
 KCOV_INSTRUMENT := n
 UBSAN_SANITIZE := n
--- linux-ein-5.4.0.orig/arch/powerpc/xmon/nonstdio.c
+++ linux-ein-5.4.0/arch/powerpc/xmon/nonstdio.c
@@ -178,7 +178,7 @@
 
 	if (n && rc == 0) {
 		/* No udbg hooks, fallback to printk() - dangerous */
-		printk("%s", xmon_outbuf);
+		pr_cont("%s", xmon_outbuf);
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/powerpc/xmon/xmon.c
+++ linux-ein-5.4.0/arch/powerpc/xmon/xmon.c
@@ -25,6 +25,7 @@
 #include <linux/nmi.h>
 #include <linux/ctype.h>
 #include <linux/highmem.h>
+#include <linux/security.h>
 
 #include <asm/debugfs.h>
 #include <asm/ptrace.h>
@@ -187,6 +188,8 @@
 static void dump_tlb_book3e(void);
 #endif
 
+static void clear_all_bpt(void);
+
 #ifdef CONFIG_PPC64
 #define REG		"%.16lx"
 #else
@@ -283,10 +286,38 @@
 "  U	show uptime information\n"
 "  ?	help\n"
 "  # n	limit output to n lines per page (for dp, dpa, dl)\n"
-"  zr	reboot\n\
-  zh	halt\n"
+"  zr	reboot\n"
+"  zh	halt\n"
 ;
 
+#ifdef CONFIG_SECURITY
+static bool xmon_is_locked_down(void)
+{
+	static bool lockdown;
+
+	if (!lockdown) {
+		lockdown = !!security_locked_down(LOCKDOWN_XMON_RW);
+		if (lockdown) {
+			printf("xmon: Disabled due to kernel lockdown\n");
+			xmon_is_ro = true;
+		}
+	}
+
+	if (!xmon_is_ro) {
+		xmon_is_ro = !!security_locked_down(LOCKDOWN_XMON_WR);
+		if (xmon_is_ro)
+			printf("xmon: Read-only due to kernel lockdown\n");
+	}
+
+	return lockdown;
+}
+#else /* CONFIG_SECURITY */
+static inline bool xmon_is_locked_down(void)
+{
+	return false;
+}
+#endif
+
 static struct pt_regs *xmon_regs;
 
 static inline void sync(void)
@@ -438,7 +469,10 @@
 
 	return false;
 }
-#endif /* CONFIG_SMP */
+#else /* CONFIG_SMP */
+static inline void get_output_lock(void) {}
+static inline void release_output_lock(void) {}
+#endif
 
 static inline int unrecoverable_excp(struct pt_regs *regs)
 {
@@ -455,6 +489,7 @@
 	int cmd = 0;
 	struct bpt *bp;
 	long recurse_jmp[JMP_BUF_LEN];
+	bool locked_down;
 	unsigned long offset;
 	unsigned long flags;
 #ifdef CONFIG_SMP
@@ -465,6 +500,8 @@
 	local_irq_save(flags);
 	hard_irq_disable();
 
+	locked_down = xmon_is_locked_down();
+
 	if (!fromipi) {
 		tracing_enabled = tracing_is_on();
 		tracing_off();
@@ -518,7 +555,8 @@
 
 	if (!fromipi) {
 		get_output_lock();
-		excprint(regs);
+		if (!locked_down)
+			excprint(regs);
 		if (bp) {
 			printf("cpu 0x%x stopped at breakpoint 0x%tx (",
 			       cpu, BP_NUM(bp));
@@ -570,10 +608,14 @@
 		}
 		remove_bpts();
 		disable_surveillance();
-		/* for breakpoint or single step, print the current instr. */
-		if (bp || TRAP(regs) == 0xd00)
-			ppc_inst_dump(regs->nip, 1, 0);
-		printf("enter ? for help\n");
+
+		if (!locked_down) {
+			/* for breakpoint or single step, print curr insn */
+			if (bp || TRAP(regs) == 0xd00)
+				ppc_inst_dump(regs->nip, 1, 0);
+			printf("enter ? for help\n");
+		}
+
 		mb();
 		xmon_gate = 1;
 		barrier();
@@ -597,8 +639,9 @@
 			spin_cpu_relax();
 			touch_nmi_watchdog();
 		} else {
-			cmd = cmds(regs);
-			if (cmd != 0) {
+			if (!locked_down)
+				cmd = cmds(regs);
+			if (locked_down || cmd != 0) {
 				/* exiting xmon */
 				insert_bpts();
 				xmon_gate = 0;
@@ -635,13 +678,16 @@
 			       "can't continue\n");
 		remove_bpts();
 		disable_surveillance();
-		/* for breakpoint or single step, print the current instr. */
-		if (bp || TRAP(regs) == 0xd00)
-			ppc_inst_dump(regs->nip, 1, 0);
-		printf("enter ? for help\n");
+		if (!locked_down) {
+			/* for breakpoint or single step, print current insn */
+			if (bp || TRAP(regs) == 0xd00)
+				ppc_inst_dump(regs->nip, 1, 0);
+			printf("enter ? for help\n");
+		}
 	}
 
-	cmd = cmds(regs);
+	if (!locked_down)
+		cmd = cmds(regs);
 
 	insert_bpts();
 	in_xmon = 0;
@@ -670,7 +716,10 @@
 		}
 	}
 #endif
-	insert_cpu_bpts();
+	if (locked_down)
+		clear_all_bpt();
+	else
+		insert_cpu_bpts();
 
 	touch_nmi_watchdog();
 	local_irq_restore(flags);
@@ -1894,15 +1943,14 @@
 
 	printf("pidr   = %.16lx  tidr  = %.16lx\n",
 		mfspr(SPRN_PID), mfspr(SPRN_TIDR));
-	printf("asdr   = %.16lx  psscr = %.16lx\n",
-		mfspr(SPRN_ASDR), hv ? mfspr(SPRN_PSSCR)
-					: mfspr(SPRN_PSSCR_PR));
+	printf("psscr  = %.16lx\n",
+		hv ? mfspr(SPRN_PSSCR) : mfspr(SPRN_PSSCR_PR));
 
 	if (!hv)
 		return;
 
-	printf("ptcr   = %.16lx\n",
-		mfspr(SPRN_PTCR));
+	printf("ptcr   = %.16lx  asdr  = %.16lx\n",
+		mfspr(SPRN_PTCR), mfspr(SPRN_ASDR));
 #endif
 }
 
@@ -3762,6 +3810,11 @@
 #ifdef CONFIG_MAGIC_SYSRQ
 static void sysrq_handle_xmon(int key)
 {
+	if (xmon_is_locked_down()) {
+		clear_all_bpt();
+		xmon_init(0);
+		return;
+	}
 	/* ensure xmon is enabled */
 	xmon_init(1);
 	debugger(get_irq_regs());
@@ -3783,7 +3836,6 @@
 device_initcall(setup_xmon_sysrq);
 #endif /* CONFIG_MAGIC_SYSRQ */
 
-#ifdef CONFIG_DEBUG_FS
 static void clear_all_bpt(void)
 {
 	int i;
@@ -3801,18 +3853,22 @@
 		iabr = NULL;
 		dabr.enabled = 0;
 	}
-
-	printf("xmon: All breakpoints cleared\n");
 }
 
+#ifdef CONFIG_DEBUG_FS
 static int xmon_dbgfs_set(void *data, u64 val)
 {
 	xmon_on = !!val;
 	xmon_init(xmon_on);
 
 	/* make sure all breakpoints removed when disabling */
-	if (!xmon_on)
+	if (!xmon_on) {
 		clear_all_bpt();
+		get_output_lock();
+		printf("xmon: All breakpoints cleared\n");
+		release_output_lock();
+	}
+
 	return 0;
 }
 
@@ -3838,7 +3894,11 @@
 
 static int __init early_parse_xmon(char *p)
 {
-	if (!p || strncmp(p, "early", 5) == 0) {
+	if (xmon_is_locked_down()) {
+		xmon_init(0);
+		xmon_early = 0;
+		xmon_on = 0;
+	} else if (!p || strncmp(p, "early", 5) == 0) {
 		/* just "xmon" is equivalent to "xmon=early" */
 		xmon_init(1);
 		xmon_early = 1;
--- linux-ein-5.4.0.orig/arch/riscv/Kconfig
+++ linux-ein-5.4.0/arch/riscv/Kconfig
@@ -31,6 +31,7 @@
 	select GENERIC_SMP_IDLE_THREAD
 	select GENERIC_ATOMIC64 if !64BIT
 	select HAVE_ARCH_AUDITSYSCALL
+	select HAVE_ARCH_SECCOMP_FILTER
 	select HAVE_ASM_MODVERSIONS
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_DMA_CONTIGUOUS
@@ -51,16 +52,16 @@
 	select PCI_MSI if PCI
 	select RISCV_TIMER
 	select GENERIC_IRQ_MULTI_HANDLER
-	select GENERIC_ARCH_TOPOLOGY if SMP
+	select GENERIC_ARCH_TOPOLOGY
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_HAS_MMIOWB
 	select HAVE_EBPF_JIT if 64BIT
 	select EDAC_SUPPORT
 	select ARCH_HAS_GIGANTIC_PAGE
 	select ARCH_WANT_HUGE_PMD_SHARE if 64BIT
-	select SPARSEMEM_STATIC if 32BIT
 	select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
 	select HAVE_ARCH_MMAP_RND_BITS
+	select HAVE_COPY_THREAD_TLS
 
 config ARCH_MMAP_RND_BITS_MIN
 	default 18 if 64BIT
@@ -100,7 +101,9 @@
 
 config ARCH_SPARSEMEM_ENABLE
 	def_bool y
-	select SPARSEMEM_VMEMMAP_ENABLE
+	depends on MMU
+	select SPARSEMEM_STATIC if 32BIT && SPARSEMEM
+	select SPARSEMEM_VMEMMAP_ENABLE if 64BIT
 
 config ARCH_SELECT_MEMORY_MODEL
 	def_bool ARCH_SPARSEMEM_ENABLE
@@ -272,6 +275,19 @@
 
 source "kernel/Kconfig.hz"
 
+config SECCOMP
+	bool "Enable seccomp to safely compute untrusted bytecode"
+	help
+	  This kernel feature is useful for number crunching applications
+	  that may need to compute untrusted bytecode during their
+	  execution. By using pipes or other transports made available to
+	  the process as file descriptors supporting the read/write
+	  syscalls, it's possible to isolate those applications in
+	  their own address space using seccomp. Once seccomp is
+	  enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
+	  and the task is only allowed to execute a few safe syscalls
+	  defined by each seccomp mode.
+
 endmenu
 
 menu "Boot options"
--- linux-ein-5.4.0.orig/arch/riscv/Makefile
+++ linux-ein-5.4.0/arch/riscv/Makefile
@@ -34,11 +34,28 @@
 	KBUILD_LDFLAGS += -melf32lriscv
 endif
 
+ifeq ($(CONFIG_LD_IS_LLD),y)
+ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0)
+	KBUILD_CFLAGS += -mno-relax
+	KBUILD_AFLAGS += -mno-relax
+ifneq ($(LLVM_IAS),1)
+	KBUILD_CFLAGS += -Wa,-mno-relax
+	KBUILD_AFLAGS += -Wa,-mno-relax
+endif
+endif
+endif
+
 # ISA string setting
 riscv-march-$(CONFIG_ARCH_RV32I)	:= rv32ima
 riscv-march-$(CONFIG_ARCH_RV64I)	:= rv64ima
 riscv-march-$(CONFIG_FPU)		:= $(riscv-march-y)fd
 riscv-march-$(CONFIG_RISCV_ISA_C)	:= $(riscv-march-y)c
+
+# Newer binutils versions default to ISA spec version 20191213 which moves some
+# instructions from the I extension to the Zicsr and Zifencei extensions.
+toolchain-need-zicsr-zifencei := $(call cc-option-yn, -march=$(riscv-march-y)_zicsr_zifencei)
+riscv-march-$(toolchain-need-zicsr-zifencei) := $(riscv-march-y)_zicsr_zifencei
+
 KBUILD_CFLAGS += -march=$(subst fd,,$(riscv-march-y))
 KBUILD_AFLAGS += -march=$(riscv-march-y)
 
@@ -58,7 +75,11 @@
         KBUILD_CFLAGS += -fno-omit-frame-pointer
 endif
 
+# Avoid generating .eh_frame sections.
+KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables
+
 KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
+KBUILD_AFLAGS_MODULE += $(call as-option,-Wa$(comma)-mno-relax)
 
 # GCC versions that support the "-mstrict-align" option default to allowing
 # unaligned accesses.  While unaligned accesses are explicitly allowed in the
--- linux-ein-5.4.0.orig/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
+++ linux-ein-5.4.0/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts
@@ -83,6 +83,7 @@
 	phy-mode = "gmii";
 	phy-handle = <&phy0>;
 	phy0: ethernet-phy@0 {
+		compatible = "ethernet-phy-id0007.0771";
 		reg = <0>;
 	};
 };
--- linux-ein-5.4.0.orig/arch/riscv/configs/defconfig
+++ linux-ein-5.4.0/arch/riscv/configs/defconfig
@@ -62,6 +62,8 @@
 CONFIG_HW_RANDOM_VIRTIO=y
 CONFIG_SPI=y
 CONFIG_SPI_SIFIVE=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SIFIVE=y
 # CONFIG_PTP_1588_CLOCK is not set
 CONFIG_DRM=y
 CONFIG_DRM_RADEON=y
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/asm-prototypes.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/asm-prototypes.h
@@ -4,4 +4,8 @@
 #include <linux/ftrace.h>
 #include <asm-generic/asm-prototypes.h>
 
+long long __lshrti3(long long a, int b);
+long long __ashrti3(long long a, int b);
+long long __ashlti3(long long a, int b);
+
 #endif /* _ASM_RISCV_PROTOTYPES_H */
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/barrier.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/barrier.h
@@ -58,8 +58,16 @@
  * The AQ/RL pair provides a RCpc critical section, but there's not really any
  * way we can take advantage of that here because the ordering is only enforced
  * on that one lock.  Thus, we're just doing a full fence.
+ *
+ * Since we allow writeX to be called from preemptive regions we need at least
+ * an "o" in the predecessor set to ensure device writes are visible before the
+ * task is marked as available for scheduling on a new hart.  While I don't see
+ * any concrete reason we need a full IO fence, it seems safer to just upgrade
+ * this in order to avoid any IO crossing a scheduling boundary.  In both
+ * instances the scheduler pairs this with an mb(), so nothing is necessary on
+ * the new hart.
  */
-#define smp_mb__after_spinlock()	RISCV_FENCE(rw,rw)
+#define smp_mb__after_spinlock()	RISCV_FENCE(iorw,iorw)
 
 #include <asm-generic/barrier.h>
 
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/cmpxchg.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/cmpxchg.h
@@ -179,7 +179,7 @@
 			"	bnez %1, 0b\n"				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
@@ -224,7 +224,7 @@
 			RISCV_ACQUIRE_BARRIER				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
@@ -270,7 +270,7 @@
 			"	bnez %1, 0b\n"				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
@@ -316,7 +316,7 @@
 			"	fence rw, rw\n"				\
 			"1:\n"						\
 			: "=&r" (__ret), "=&r" (__rc), "+A" (*__ptr)	\
-			: "rJ" (__old), "rJ" (__new)			\
+			: "rJ" ((long)__old), "rJ" (__new)		\
 			: "memory");					\
 		break;							\
 	case 8:								\
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/ftrace.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/ftrace.h
@@ -10,9 +10,19 @@
 #endif
 #define HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
 
+/*
+ * Clang prior to 13 had "mcount" instead of "_mcount":
+ * https://reviews.llvm.org/D98881
+ */
+#if defined(CONFIG_CC_IS_GCC) || CONFIG_CLANG_VERSION >= 130000
+#define MCOUNT_NAME _mcount
+#else
+#define MCOUNT_NAME mcount
+#endif
+
 #define ARCH_SUPPORTS_FTRACE_OPS 1
 #ifndef __ASSEMBLY__
-void _mcount(void);
+void MCOUNT_NAME(void);
 static inline unsigned long ftrace_call_adjust(unsigned long addr)
 {
 	return addr;
@@ -33,7 +43,7 @@
  * both auipc and jalr at the same time.
  */
 
-#define MCOUNT_ADDR		((unsigned long)_mcount)
+#define MCOUNT_ADDR		((unsigned long)MCOUNT_NAME)
 #define JALR_SIGN_MASK		(0x00000800)
 #define JALR_OFFSET_MASK	(0x00000fff)
 #define AUIPC_OFFSET_MASK	(0xfffff000)
@@ -63,4 +73,11 @@
  * Let auipc+jalr be the basic *mcount unit*, so we make it 8 bytes here.
  */
 #define MCOUNT_INSN_SIZE 8
+
+#ifndef __ASSEMBLY__
+struct dyn_ftrace;
+int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
+#define ftrace_init_nop ftrace_init_nop
+#endif
+
 #endif
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/io.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/io.h
@@ -252,9 +252,9 @@
 __io_reads_ins(ins,  u8, b, __io_pbr(), __io_par(addr))
 __io_reads_ins(ins, u16, w, __io_pbr(), __io_par(addr))
 __io_reads_ins(ins, u32, l, __io_pbr(), __io_par(addr))
-#define insb(addr, buffer, count) __insb((void __iomem *)(long)addr, buffer, count)
-#define insw(addr, buffer, count) __insw((void __iomem *)(long)addr, buffer, count)
-#define insl(addr, buffer, count) __insl((void __iomem *)(long)addr, buffer, count)
+#define insb(addr, buffer, count) __insb(PCI_IOBASE + (addr), buffer, count)
+#define insw(addr, buffer, count) __insw(PCI_IOBASE + (addr), buffer, count)
+#define insl(addr, buffer, count) __insl(PCI_IOBASE + (addr), buffer, count)
 
 __io_writes_outs(writes,  u8, b, __io_bw(), __io_aw())
 __io_writes_outs(writes, u16, w, __io_bw(), __io_aw())
@@ -266,22 +266,22 @@
 __io_writes_outs(outs,  u8, b, __io_pbw(), __io_paw())
 __io_writes_outs(outs, u16, w, __io_pbw(), __io_paw())
 __io_writes_outs(outs, u32, l, __io_pbw(), __io_paw())
-#define outsb(addr, buffer, count) __outsb((void __iomem *)(long)addr, buffer, count)
-#define outsw(addr, buffer, count) __outsw((void __iomem *)(long)addr, buffer, count)
-#define outsl(addr, buffer, count) __outsl((void __iomem *)(long)addr, buffer, count)
+#define outsb(addr, buffer, count) __outsb(PCI_IOBASE + (addr), buffer, count)
+#define outsw(addr, buffer, count) __outsw(PCI_IOBASE + (addr), buffer, count)
+#define outsl(addr, buffer, count) __outsl(PCI_IOBASE + (addr), buffer, count)
 
 #ifdef CONFIG_64BIT
 __io_reads_ins(reads, u64, q, __io_br(), __io_ar(addr))
 #define readsq(addr, buffer, count) __readsq(addr, buffer, count)
 
 __io_reads_ins(ins, u64, q, __io_pbr(), __io_par(addr))
-#define insq(addr, buffer, count) __insq((void __iomem *)addr, buffer, count)
+#define insq(addr, buffer, count) __insq(PCI_IOBASE + (addr), buffer, count)
 
 __io_writes_outs(writes, u64, q, __io_bw(), __io_aw())
 #define writesq(addr, buffer, count) __writesq(addr, buffer, count)
 
 __io_writes_outs(outs, u64, q, __io_pbr(), __io_paw())
-#define outsq(addr, buffer, count) __outsq((void __iomem *)addr, buffer, count)
+#define outsq(addr, buffer, count) __outsq(PCI_IOBASE + (addr), buffer, count)
 #endif
 
 #include <asm-generic/io.h>
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/page.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/page.h
@@ -119,7 +119,10 @@
 
 #endif /* __ASSEMBLY__ */
 
-#define virt_addr_valid(vaddr)	(pfn_valid(virt_to_pfn(vaddr)))
+#define virt_addr_valid(vaddr)	({						\
+	unsigned long _addr = (unsigned long)vaddr;				\
+	(unsigned long)(_addr) >= PAGE_OFFSET && pfn_valid(virt_to_pfn(_addr));	\
+})
 
 #define VM_DATA_DEFAULT_FLAGS	(VM_READ | VM_WRITE | \
 				 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/pgtable-32.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/pgtable-32.h
@@ -14,4 +14,6 @@
 #define PGDIR_SIZE      (_AC(1, UL) << PGDIR_SHIFT)
 #define PGDIR_MASK      (~(PGDIR_SIZE - 1))
 
+#define MAX_POSSIBLE_PHYSMEM_BITS 34
+
 #endif /* _ASM_RISCV_PGTABLE_32_H */
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/processor.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/processor.h
@@ -22,6 +22,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <asm/barrier.h>
+
 struct task_struct;
 struct pt_regs;
 
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/seccomp.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/seccomp.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef _ASM_SECCOMP_H
+#define _ASM_SECCOMP_H
+
+#include <asm/unistd.h>
+
+#include <asm-generic/seccomp.h>
+
+#endif /* _ASM_SECCOMP_H */
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/thread_info.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/thread_info.h
@@ -12,7 +12,11 @@
 #include <linux/const.h>
 
 /* thread information allocation */
+#ifdef CONFIG_64BIT
+#define THREAD_SIZE_ORDER	(2)
+#else
 #define THREAD_SIZE_ORDER	(1)
+#endif
 #define THREAD_SIZE		(PAGE_SIZE << THREAD_SIZE_ORDER)
 
 #ifndef __ASSEMBLY__
@@ -75,6 +79,7 @@
 #define TIF_MEMDIE		5	/* is terminating due to OOM killer */
 #define TIF_SYSCALL_TRACEPOINT  6       /* syscall tracepoint instrumentation */
 #define TIF_SYSCALL_AUDIT	7	/* syscall auditing */
+#define TIF_SECCOMP		8	/* syscall secure computing */
 
 #define _TIF_SYSCALL_TRACE	(1 << TIF_SYSCALL_TRACE)
 #define _TIF_NOTIFY_RESUME	(1 << TIF_NOTIFY_RESUME)
@@ -82,11 +87,13 @@
 #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
 #define _TIF_SYSCALL_TRACEPOINT	(1 << TIF_SYSCALL_TRACEPOINT)
 #define _TIF_SYSCALL_AUDIT	(1 << TIF_SYSCALL_AUDIT)
+#define _TIF_SECCOMP		(1 << TIF_SECCOMP)
 
 #define _TIF_WORK_MASK \
 	(_TIF_NOTIFY_RESUME | _TIF_SIGPENDING | _TIF_NEED_RESCHED)
 
 #define _TIF_SYSCALL_WORK \
-	(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
+	(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT | \
+	 _TIF_SECCOMP)
 
 #endif /* _ASM_RISCV_THREAD_INFO_H */
--- linux-ein-5.4.0.orig/arch/riscv/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/riscv/include/asm/uaccess.h
@@ -235,7 +235,7 @@
 	might_fault();						\
 	access_ok(__p, sizeof(*__p)) ?		\
 		__get_user((x), __p) :				\
-		((x) = 0, -EFAULT);				\
+		((x) = (__force __typeof__(x))0, -EFAULT);	\
 })
 
 #define __put_user_asm(insn, x, ptr, err)			\
--- linux-ein-5.4.0.orig/arch/riscv/include/uapi/asm/auxvec.h
+++ linux-ein-5.4.0/arch/riscv/include/uapi/asm/auxvec.h
@@ -10,4 +10,7 @@
 /* vDSO location */
 #define AT_SYSINFO_EHDR 33
 
+/* entries in ARCH_DLINFO */
+#define AT_VECTOR_SIZE_ARCH	1
+
 #endif /* _UAPI_ASM_RISCV_AUXVEC_H */
--- linux-ein-5.4.0.orig/arch/riscv/include/uapi/asm/setup.h
+++ linux-ein-5.4.0/arch/riscv/include/uapi/asm/setup.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
+
+#ifndef _UAPI_ASM_RISCV_SETUP_H
+#define _UAPI_ASM_RISCV_SETUP_H
+
+#define COMMAND_LINE_SIZE	1024
+
+#endif /* _UAPI_ASM_RISCV_SETUP_H */
--- linux-ein-5.4.0.orig/arch/riscv/include/uapi/asm/unistd.h
+++ linux-ein-5.4.0/arch/riscv/include/uapi/asm/unistd.h
@@ -18,9 +18,10 @@
 #ifdef __LP64__
 #define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SET_GET_RLIMIT
-#define __ARCH_WANT_SYS_CLONE3
 #endif /* __LP64__ */
 
+#define __ARCH_WANT_SYS_CLONE3
+
 #include <asm-generic/unistd.h>
 
 /*
--- linux-ein-5.4.0.orig/arch/riscv/kernel/cacheinfo.c
+++ linux-ein-5.4.0/arch/riscv/kernel/cacheinfo.c
@@ -16,7 +16,7 @@
 	this_leaf->type = type;
 }
 
-static int __init_cache_level(unsigned int cpu)
+int init_cache_level(unsigned int cpu)
 {
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 	struct device_node *np = of_cpu_device_node_get(cpu);
@@ -58,7 +58,7 @@
 	return 0;
 }
 
-static int __populate_cache_leaves(unsigned int cpu)
+int populate_cache_leaves(unsigned int cpu)
 {
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 	struct cacheinfo *this_leaf = this_cpu_ci->info_list;
@@ -95,6 +95,3 @@
 
 	return 0;
 }
-
-DEFINE_SMP_CALL_CACHE_FUNCTION(init_cache_level)
-DEFINE_SMP_CALL_CACHE_FUNCTION(populate_cache_leaves)
--- linux-ein-5.4.0.orig/arch/riscv/kernel/entry.S
+++ linux-ein-5.4.0/arch/riscv/kernel/entry.S
@@ -226,8 +226,26 @@
 	/* Check to make sure we don't jump to a bogus syscall number. */
 	li t0, __NR_syscalls
 	la s0, sys_ni_syscall
-	/* Syscall number held in a7 */
-	bgeu a7, t0, 1f
+	/*
+	 * The tracer can change syscall number to valid/invalid value.
+	 * We use syscall_set_nr helper in syscall_trace_enter thus we
+	 * cannot trust the current value in a7 and have to reload from
+	 * the current task pt_regs.
+	 */
+	REG_L a7, PT_A7(sp)
+	/*
+	 * Syscall number held in a7.
+	 * If syscall number is above allowed value, redirect to ni_syscall.
+	 */
+	bge a7, t0, 1f
+	/*
+	 * Check if syscall is rejected by tracer or seccomp, i.e., a7 == -1.
+	 * If yes, we pretend it was executed.
+	 */
+	li t1, -1
+	beq a7, t1, ret_from_syscall_rejected
+	blt a7, t1, 1f
+	/* Call syscall */
 	la s0, sys_call_table
 	slli t0, a7, RISCV_LGPTR
 	add s0, s0, t0
@@ -238,6 +256,12 @@
 ret_from_syscall:
 	/* Set user a0 to kernel a0 */
 	REG_S a0, PT_A0(sp)
+	/*
+	 * We didn't execute the actual syscall.
+	 * Seccomp already set return value for the current task pt_regs.
+	 * (If it was configured with SECCOMP_RET_ERRNO/TRACE)
+	 */
+ret_from_syscall_rejected:
 	/* Trace syscalls, but only if requested by the user. */
 	REG_L t0, TASK_TI_FLAGS(tp)
 	andi t0, t0, _TIF_SYSCALL_WORK
@@ -387,6 +411,7 @@
 ENDPROC(__switch_to)
 
 	.section ".rodata"
+	.align LGREG
 	/* Exception vector table */
 ENTRY(excp_vect_table)
 	RISCV_PTR do_trap_insn_misaligned
--- linux-ein-5.4.0.orig/arch/riscv/kernel/ftrace.c
+++ linux-ein-5.4.0/arch/riscv/kernel/ftrace.c
@@ -88,6 +88,25 @@
 	return __ftrace_modify_call(rec->ip, addr, false);
 }
 
+
+/*
+ * This is called early on, and isn't wrapped by
+ * ftrace_arch_code_modify_{prepare,post_process}() and therefor doesn't hold
+ * text_mutex, which triggers a lockdep failure.  SMP isn't running so we could
+ * just directly poke the text, but it's simpler to just take the lock
+ * ourselves.
+ */
+int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
+{
+	int out;
+
+	ftrace_arch_code_modify_prepare();
+	out = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
+	ftrace_arch_code_modify_post_process();
+
+	return out;
+}
+
 int ftrace_update_ftrace_func(ftrace_func_t func)
 {
 	int ret = __ftrace_modify_call((unsigned long)&ftrace_call,
@@ -142,7 +161,7 @@
 	 */
 	old = *parent;
 
-	if (function_graph_enter(old, self_addr, frame_pointer, parent))
+	if (!function_graph_enter(old, self_addr, frame_pointer, parent))
 		*parent = return_hooker;
 }
 
--- linux-ein-5.4.0.orig/arch/riscv/kernel/head.S
+++ linux-ein-5.4.0/arch/riscv/kernel/head.S
@@ -26,6 +26,10 @@
 	/* reserved */
 	.word 0
 	.balign 8
+#ifdef CONFIG_RISCV_M_MODE
+	/* Image load offset (0MB) from start of RAM for M-mode */
+	.dword 0
+#else
 #if __riscv_xlen == 64
 	/* Image load offset(2MB) from start of RAM */
 	.dword 0x200000
@@ -33,6 +37,7 @@
 	/* Image load offset(4MB) from start of RAM */
 	.dword 0x400000
 #endif
+#endif
 	/* Effective size of kernel image */
 	.dword _end - _start
 	.dword __HEAD_FLAGS
--- linux-ein-5.4.0.orig/arch/riscv/kernel/mcount.S
+++ linux-ein-5.4.0/arch/riscv/kernel/mcount.S
@@ -47,8 +47,8 @@
 
 ENTRY(ftrace_stub)
 #ifdef CONFIG_DYNAMIC_FTRACE
-       .global _mcount
-       .set    _mcount, ftrace_stub
+       .global MCOUNT_NAME
+       .set    MCOUNT_NAME, ftrace_stub
 #endif
 	ret
 ENDPROC(ftrace_stub)
@@ -78,7 +78,7 @@
 #endif
 
 #ifndef CONFIG_DYNAMIC_FTRACE
-ENTRY(_mcount)
+ENTRY(MCOUNT_NAME)
 	la	t4, ftrace_stub
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
 	la	t0, ftrace_graph_return
@@ -124,6 +124,6 @@
 	jalr	t5
 	RESTORE_ABI_STATE
 	ret
-ENDPROC(_mcount)
+ENDPROC(MCOUNT_NAME)
 #endif
-EXPORT_SYMBOL(_mcount)
+EXPORT_SYMBOL(MCOUNT_NAME)
--- linux-ein-5.4.0.orig/arch/riscv/kernel/module.c
+++ linux-ein-5.4.0/arch/riscv/kernel/module.c
@@ -8,6 +8,23 @@
 #include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/moduleloader.h>
+#include <linux/vmalloc.h>
+#include <linux/sizes.h>
+#include <asm/pgtable.h>
+#include <asm/sections.h>
+
+/*
+ * The auipc+jalr instruction pair can reach any PC-relative offset
+ * in the range [-2^31 - 2^11, 2^31 - 2^11)
+ */
+static bool riscv_insn_valid_32bit_offset(ptrdiff_t val)
+{
+#ifdef CONFIG_32BIT
+	return true;
+#else
+	return (-(1L << 31) - (1L << 11)) <= val && val < ((1L << 31) - (1L << 11));
+#endif
+}
 
 static int apply_r_riscv_32_rela(struct module *me, u32 *location, Elf_Addr v)
 {
@@ -91,7 +108,7 @@
 	ptrdiff_t offset = (void *)v - (void *)location;
 	s32 hi20;
 
-	if (offset != (s32)offset) {
+	if (!riscv_insn_valid_32bit_offset(offset)) {
 		pr_err(
 		  "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
 		  me->name, (long long)v, location);
@@ -193,10 +210,9 @@
 				       Elf_Addr v)
 {
 	ptrdiff_t offset = (void *)v - (void *)location;
-	s32 fill_v = offset;
 	u32 hi20, lo12;
 
-	if (offset != fill_v) {
+	if (!riscv_insn_valid_32bit_offset(offset)) {
 		/* Only emit the plt entry if offset over 32-bit range */
 		if (IS_ENABLED(CONFIG_MODULE_SECTIONS)) {
 			offset = module_emit_plt_entry(me, v);
@@ -220,10 +236,9 @@
 				   Elf_Addr v)
 {
 	ptrdiff_t offset = (void *)v - (void *)location;
-	s32 fill_v = offset;
 	u32 hi20, lo12;
 
-	if (offset != fill_v) {
+	if (!riscv_insn_valid_32bit_offset(offset)) {
 		pr_err(
 		  "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
 		  me->name, (long long)v, location);
@@ -386,3 +401,15 @@
 
 	return 0;
 }
+
+#if defined(CONFIG_MMU) && defined(CONFIG_64BIT)
+#define VMALLOC_MODULE_START \
+	 max(PFN_ALIGN((unsigned long)&_end - SZ_2G), VMALLOC_START)
+void *module_alloc(unsigned long size)
+{
+	return __vmalloc_node_range(size, 1, VMALLOC_MODULE_START,
+				    VMALLOC_END, GFP_KERNEL,
+				    PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
+				    __builtin_return_address(0));
+}
+#endif
--- linux-ein-5.4.0.orig/arch/riscv/kernel/module.lds
+++ linux-ein-5.4.0/arch/riscv/kernel/module.lds
@@ -2,7 +2,7 @@
 /* Copyright (C) 2017 Andes Technology Corporation */
 
 SECTIONS {
-	.plt (NOLOAD) : { BYTE(0) }
-	.got (NOLOAD) : { BYTE(0) }
-	.got.plt (NOLOAD) : { BYTE(0) }
+	.plt : { BYTE(0) }
+	.got : { BYTE(0) }
+	.got.plt : { BYTE(0) }
 }
--- linux-ein-5.4.0.orig/arch/riscv/kernel/perf_callchain.c
+++ linux-ein-5.4.0/arch/riscv/kernel/perf_callchain.c
@@ -60,10 +60,11 @@
 void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 			 struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	unsigned long fp = 0;
 
 	/* RISC-V does not support perf in guest mode. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
+	if (guest_cbs && guest_cbs->is_in_guest())
 		return;
 
 	fp = regs->s0;
@@ -76,7 +77,7 @@
 
 bool fill_callchain(unsigned long pc, void *entry)
 {
-	return perf_callchain_store(entry, pc);
+	return perf_callchain_store(entry, pc) == 0;
 }
 
 void notrace walk_stackframe(struct task_struct *task,
@@ -84,8 +85,10 @@
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
 			   struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
 	/* RISC-V does not support perf in guest mode. */
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		pr_warn("RISC-V does not support perf in guest mode!");
 		return;
 	}
--- linux-ein-5.4.0.orig/arch/riscv/kernel/process.c
+++ linux-ein-5.4.0/arch/riscv/kernel/process.c
@@ -99,11 +99,13 @@
 	return 0;
 }
 
-int copy_thread(unsigned long clone_flags, unsigned long usp,
-	unsigned long arg, struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long usp,
+	unsigned long arg, struct task_struct *p, unsigned long tls)
 {
 	struct pt_regs *childregs = task_pt_regs(p);
 
+	memset(&p->thread.s, 0, sizeof(p->thread.s));
+
 	/* p->thread holds context to be restored by __switch_to() */
 	if (unlikely(p->flags & PF_KTHREAD)) {
 		/* Kernel thread */
@@ -120,7 +122,7 @@
 		if (usp) /* User fork */
 			childregs->sp = usp;
 		if (clone_flags & CLONE_SETTLS)
-			childregs->tp = childregs->a5;
+			childregs->tp = tls;
 		childregs->a0 = 0; /* Return value of fork() */
 		p->thread.ra = (unsigned long)ret_from_fork;
 	}
--- linux-ein-5.4.0.orig/arch/riscv/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/riscv/kernel/ptrace.c
@@ -154,6 +154,16 @@
 		if (tracehook_report_syscall_entry(regs))
 			syscall_set_nr(current, regs, -1);
 
+	/*
+	 * Do the secure computing after ptrace; failures should be fast.
+	 * If this fails we might have return value in a0 from seccomp
+	 * (via SECCOMP_RET_ERRNO/TRACE).
+	 */
+	if (secure_computing(NULL) == -1) {
+		syscall_set_nr(current, regs, -1);
+		return;
+	}
+
 #ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
 	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
 		trace_sys_enter(regs, syscall_get_nr(current, regs));
--- linux-ein-5.4.0.orig/arch/riscv/kernel/smp.c
+++ linux-ein-5.4.0/arch/riscv/kernel/smp.c
@@ -51,7 +51,7 @@
 			return i;
 
 	pr_err("Couldn't find cpu id for hartid [%d]\n", hartid);
-	return i;
+	return -ENOENT;
 }
 
 void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out)
--- linux-ein-5.4.0.orig/arch/riscv/kernel/smpboot.c
+++ linux-ein-5.4.0/arch/riscv/kernel/smpboot.c
@@ -46,6 +46,8 @@
 {
 	int cpuid;
 
+	store_cpu_topology(smp_processor_id());
+
 	/* This covers non-smp usecase mandated by "nosmp" option */
 	if (max_cpus == 0)
 		return;
@@ -142,8 +144,8 @@
 	current->active_mm = mm;
 
 	trap_init();
+	store_cpu_topology(smp_processor_id());
 	notify_cpu_starting(smp_processor_id());
-	update_siblings_masks(smp_processor_id());
 	set_cpu_online(smp_processor_id(), 1);
 	/*
 	 * Remote TLB flushes are ignored while the CPU is offline, so emit
--- linux-ein-5.4.0.orig/arch/riscv/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/riscv/kernel/stacktrace.c
@@ -63,7 +63,7 @@
 
 #else /* !CONFIG_FRAME_POINTER */
 
-static void notrace walk_stackframe(struct task_struct *task,
+void notrace walk_stackframe(struct task_struct *task,
 	struct pt_regs *regs, bool (*fn)(unsigned long, void *), void *arg)
 {
 	unsigned long sp, pc;
@@ -89,7 +89,7 @@
 	while (!kstack_end(ksp)) {
 		if (__kernel_text_address(pc) && unlikely(fn(pc, arg)))
 			break;
-		pc = (*ksp++) - 0x4;
+		pc = READ_ONCE_NOCHECK(*ksp++) - 0x4;
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/riscv/kernel/sys_riscv.c
+++ linux-ein-5.4.0/arch/riscv/kernel/sys_riscv.c
@@ -8,6 +8,7 @@
 #include <linux/syscalls.h>
 #include <asm/unistd.h>
 #include <asm/cacheflush.h>
+#include <asm-generic/mman-common.h>
 
 static long riscv_sys_mmap(unsigned long addr, unsigned long len,
 			   unsigned long prot, unsigned long flags,
@@ -16,6 +17,7 @@
 {
 	if (unlikely(offset & (~PAGE_MASK >> page_shift_offset)))
 		return -EINVAL;
+
 	return ksys_mmap_pgoff(addr, len, prot, flags, fd,
 			       offset >> (PAGE_SHIFT - page_shift_offset));
 }
--- linux-ein-5.4.0.orig/arch/riscv/kernel/time.c
+++ linux-ein-5.4.0/arch/riscv/kernel/time.c
@@ -4,6 +4,8 @@
  * Copyright (C) 2017 SiFive
  */
 
+#include <linux/of_clk.h>
+#include <linux/clockchips.h>
 #include <linux/clocksource.h>
 #include <linux/delay.h>
 #include <asm/sbi.h>
@@ -24,5 +26,9 @@
 	riscv_timebase = prop;
 
 	lpj_fine = riscv_timebase / HZ;
+
+	of_clk_init(NULL);
 	timer_probe();
+
+	tick_setup_hrtimer_broadcast();
 }
--- linux-ein-5.4.0.orig/arch/riscv/kernel/traps.c
+++ linux-ein-5.4.0/arch/riscv/kernel/traps.c
@@ -15,6 +15,7 @@
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/irq.h>
+#include <linux/kexec.h>
 
 #include <asm/processor.h>
 #include <asm/ptrace.h>
@@ -43,6 +44,9 @@
 
 	ret = notify_die(DIE_OOPS, str, regs, 0, regs->scause, SIGSEGV);
 
+	if (regs && kexec_should_crash(current))
+		crash_kexec(regs);
+
 	bust_spinlocks(0);
 	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
 	spin_unlock_irq(&die_lock);
@@ -53,7 +57,7 @@
 	if (panic_on_oops)
 		panic("Fatal exception");
 	if (ret != NOTIFY_STOP)
-		do_exit(SIGSEGV);
+		make_task_dead(SIGSEGV);
 }
 
 void do_trap(struct pt_regs *regs, int signo, int code, unsigned long addr)
--- linux-ein-5.4.0.orig/arch/riscv/kernel/vdso/Makefile
+++ linux-ein-5.4.0/arch/riscv/kernel/vdso/Makefile
@@ -20,6 +20,9 @@
 
 obj-y += vdso.o vdso-syms.o
 CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
+ifneq ($(filter vgettimeofday, $(vdso-syms)),)
+CPPFLAGS_vdso.lds += -DHAS_VGETTIMEOFDAY
+endif
 
 # Disable gcov profiling for VDSO code
 GCOV_PROFILE := n
@@ -33,15 +36,15 @@
 	$(call if_changed,vdsold)
 
 # We also create a special relocatable object that should mirror the symbol
-# table and layout of the linked DSO.  With ld -R we can then refer to
-# these symbols in the kernel code rather than hand-coded addresses.
+# table and layout of the linked DSO. With ld --just-symbols we can then
+# refer to these symbols in the kernel code rather than hand-coded addresses.
 
 SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
 	-Wl,--build-id -Wl,--hash-style=both
 $(obj)/vdso-dummy.o: $(src)/vdso.lds $(obj)/rt_sigreturn.o FORCE
 	$(call if_changed,vdsold)
 
-LDFLAGS_vdso-syms.o := -r -R
+LDFLAGS_vdso-syms.o := -r --just-symbols
 $(obj)/vdso-syms.o: $(obj)/vdso-dummy.o FORCE
 	$(call if_changed,ld)
 
@@ -58,7 +61,8 @@
       cmd_vdsold = $(CC) $(KBUILD_CFLAGS) $(call cc-option, -no-pie) -nostdlib -nostartfiles $(SYSCFLAGS_$(@F)) \
                            -Wl,-T,$(filter-out FORCE,$^) -o $@.tmp && \
                    $(CROSS_COMPILE)objcopy \
-                           $(patsubst %, -G __vdso_%, $(vdso-syms)) $@.tmp $@
+                           $(patsubst %, -G __vdso_%, $(vdso-syms)) $@.tmp $@ && \
+                   rm $@.tmp
 
 # install commands for the unstripped file
 quiet_cmd_vdso_install = INSTALL $@
--- linux-ein-5.4.0.orig/arch/riscv/kernel/vdso/vdso.lds.S
+++ linux-ein-5.4.0/arch/riscv/kernel/vdso/vdso.lds.S
@@ -62,9 +62,11 @@
 	LINUX_4.15 {
 	global:
 		__vdso_rt_sigreturn;
+#ifdef HAS_VGETTIMEOFDAY
 		__vdso_gettimeofday;
 		__vdso_clock_gettime;
 		__vdso_clock_getres;
+#endif
 		__vdso_getcpu;
 		__vdso_flush_icache;
 	local: *;
--- linux-ein-5.4.0.orig/arch/riscv/lib/tishift.S
+++ linux-ein-5.4.0/arch/riscv/lib/tishift.S
@@ -4,34 +4,73 @@
  */
 
 #include <linux/linkage.h>
+#include <asm-generic/export.h>
 
-ENTRY(__lshrti3)
+SYM_FUNC_START(__lshrti3)
 	beqz	a2, .L1
 	li	a5,64
 	sub	a5,a5,a2
-	addi	sp,sp,-16
 	sext.w	a4,a5
 	blez	a5, .L2
 	sext.w	a2,a2
-	sll	a4,a1,a4
 	srl	a0,a0,a2
-	srl	a1,a1,a2
+	sll	a4,a1,a4
+	srl	a2,a1,a2
 	or	a0,a0,a4
-	sd	a1,8(sp)
-	sd	a0,0(sp)
-	ld	a0,0(sp)
-	ld	a1,8(sp)
-	addi	sp,sp,16
-	ret
+	mv	a1,a2
 .L1:
 	ret
 .L2:
-	negw	a4,a4
-	srl	a1,a1,a4
-	sd	a1,0(sp)
-	sd	zero,8(sp)
-	ld	a0,0(sp)
-	ld	a1,8(sp)
-	addi	sp,sp,16
+	negw	a0,a4
+	li	a2,0
+	srl	a0,a1,a0
+	mv	a1,a2
+	ret
+SYM_FUNC_END(__lshrti3)
+EXPORT_SYMBOL(__lshrti3)
+
+SYM_FUNC_START(__ashrti3)
+	beqz	a2, .L3
+	li	a5,64
+	sub	a5,a5,a2
+	sext.w	a4,a5
+	blez	a5, .L4
+	sext.w	a2,a2
+	srl	a0,a0,a2
+	sll	a4,a1,a4
+	sra	a2,a1,a2
+	or	a0,a0,a4
+	mv	a1,a2
+.L3:
+	ret
+.L4:
+	negw	a0,a4
+	srai	a2,a1,0x3f
+	sra	a0,a1,a0
+	mv	a1,a2
+	ret
+SYM_FUNC_END(__ashrti3)
+EXPORT_SYMBOL(__ashrti3)
+
+SYM_FUNC_START(__ashlti3)
+	beqz	a2, .L5
+	li	a5,64
+	sub	a5,a5,a2
+	sext.w	a4,a5
+	blez	a5, .L6
+	sext.w	a2,a2
+	sll	a1,a1,a2
+	srl	a4,a0,a4
+	sll	a2,a0,a2
+	or	a1,a1,a4
+	mv	a0,a2
+.L5:
+	ret
+.L6:
+	negw	a1,a4
+	li	a2,0
+	sll	a1,a0,a1
+	mv	a0,a2
 	ret
-ENDPROC(__lshrti3)
+SYM_FUNC_END(__ashlti3)
+EXPORT_SYMBOL(__ashlti3)
--- linux-ein-5.4.0.orig/arch/riscv/mm/cacheflush.c
+++ linux-ein-5.4.0/arch/riscv/mm/cacheflush.c
@@ -14,6 +14,7 @@
 {
 	sbi_remote_fence_i(NULL);
 }
+EXPORT_SYMBOL(flush_icache_all);
 
 /*
  * Performs an icache flush for the given MM context.  RISC-V has no direct
@@ -70,6 +71,8 @@
 {
 	struct page *page = pte_page(pte);
 
-	if (!test_and_set_bit(PG_dcache_clean, &page->flags))
+	if (!test_bit(PG_dcache_clean, &page->flags)) {
 		flush_icache_all();
+		set_bit(PG_dcache_clean, &page->flags);
+	}
 }
--- linux-ein-5.4.0.orig/arch/riscv/mm/fault.c
+++ linux-ein-5.4.0/arch/riscv/mm/fault.c
@@ -189,7 +189,7 @@
 		(addr < PAGE_SIZE) ? "NULL pointer dereference" :
 		"paging request", addr);
 	die(regs, "Oops");
-	do_exit(SIGKILL);
+	make_task_dead(SIGKILL);
 
 	/*
 	 * We ran out of memory, call the OOM killer, and return the userspace
--- linux-ein-5.4.0.orig/arch/riscv/mm/init.c
+++ linux-ein-5.4.0/arch/riscv/mm/init.c
@@ -98,7 +98,7 @@
 	for_each_memblock(memory, reg) {
 		phys_addr_t end = reg->base + reg->size;
 
-		if (reg->base <= vmlinux_end && vmlinux_end <= end) {
+		if (reg->base <= vmlinux_start && vmlinux_end <= end) {
 			mem_size = min(reg->size, (phys_addr_t)-PAGE_OFFSET);
 
 			/*
@@ -115,8 +115,9 @@
 	/* Reserve from the start of the kernel to the end of the kernel */
 	memblock_reserve(vmlinux_start, vmlinux_end - vmlinux_start);
 
-	set_max_mapnr(PFN_DOWN(mem_size));
-	max_low_pfn = PFN_DOWN(memblock_end_of_DRAM());
+	max_pfn = PFN_DOWN(memblock_end_of_DRAM());
+	max_low_pfn = max_pfn;
+	set_max_mapnr(max_low_pfn);
 
 #ifdef CONFIG_BLK_DEV_INITRD
 	setup_initrd();
@@ -166,12 +167,11 @@
 
 	ptep = &fixmap_pte[pte_index(addr)];
 
-	if (pgprot_val(prot)) {
+	if (pgprot_val(prot))
 		set_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, prot));
-	} else {
+	else
 		pte_clear(&init_mm, addr, ptep);
-		local_flush_tlb_page(addr);
-	}
+	local_flush_tlb_page(addr);
 }
 
 static pte_t *__init get_pte_virt(phys_addr_t pa)
--- linux-ein-5.4.0.orig/arch/riscv/mm/tlbflush.c
+++ linux-ein-5.4.0/arch/riscv/mm/tlbflush.c
@@ -2,6 +2,7 @@
 
 #include <linux/mm.h>
 #include <linux/smp.h>
+#include <linux/sched.h>
 #include <asm/sbi.h>
 
 void flush_tlb_all(void)
@@ -9,13 +10,33 @@
 	sbi_remote_sfence_vma(NULL, 0, -1);
 }
 
+/*
+ * This function must not be called with cmask being null.
+ * Kernel may panic if cmask is NULL.
+ */
 static void __sbi_tlb_flush_range(struct cpumask *cmask, unsigned long start,
 				  unsigned long size)
 {
 	struct cpumask hmask;
+	unsigned int cpuid;
 
-	riscv_cpuid_to_hartid_mask(cmask, &hmask);
-	sbi_remote_sfence_vma(hmask.bits, start, size);
+	if (cpumask_empty(cmask))
+		return;
+
+	cpuid = get_cpu();
+
+	if (cpumask_any_but(cmask, cpuid) >= nr_cpu_ids) {
+		/* local cpu is the only cpu present in cpumask */
+		if (size <= PAGE_SIZE)
+			local_flush_tlb_page(start);
+		else
+			local_flush_tlb_all();
+	} else {
+		riscv_cpuid_to_hartid_mask(cmask, &hmask);
+		sbi_remote_sfence_vma(cpumask_bits(&hmask), start, size);
+	}
+
+	put_cpu();
 }
 
 void flush_tlb_mm(struct mm_struct *mm)
--- linux-ein-5.4.0.orig/arch/riscv/net/bpf_jit_comp.c
+++ linux-ein-5.4.0/arch/riscv/net/bpf_jit_comp.c
@@ -120,6 +120,11 @@
 	return false;
 }
 
+static void mark_fp(struct rv_jit_context *ctx)
+{
+	__set_bit(RV_CTX_F_SEEN_S5, &ctx->flags);
+}
+
 static void mark_call(struct rv_jit_context *ctx)
 {
 	__set_bit(RV_CTX_F_SEEN_CALL, &ctx->flags);
@@ -596,7 +601,8 @@
 
 	emit(rv_addi(RV_REG_SP, RV_REG_SP, stack_adjust), ctx);
 	/* Set return value. */
-	emit(rv_addi(RV_REG_A0, RV_REG_A5, 0), ctx);
+	if (reg == RV_REG_RA)
+		emit(rv_addi(RV_REG_A0, RV_REG_A5, 0), ctx);
 	emit(rv_jalr(RV_REG_ZERO, reg, 0), ctx);
 }
 
@@ -631,14 +637,14 @@
 		return -1;
 	emit(rv_bgeu(RV_REG_A2, RV_REG_T1, off >> 1), ctx);
 
-	/* if (--TCC < 0)
+	/* if (TCC-- < 0)
 	 *     goto out;
 	 */
 	emit(rv_addi(RV_REG_T1, tcc, -1), ctx);
 	off = (tc_ninsn - (ctx->ninsns - start_insn)) << 2;
 	if (is_13b_check(off, insn))
 		return -1;
-	emit(rv_blt(RV_REG_T1, RV_REG_ZERO, off >> 1), ctx);
+	emit(rv_blt(tcc, RV_REG_ZERO, off >> 1), ctx);
 
 	/* prog = array->ptrs[index];
 	 * if (!prog)
@@ -1307,6 +1313,10 @@
 		emit(rv_ld(rd, 0, RV_REG_T1), ctx);
 		break;
 
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		break;
+
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_B:
 		emit_imm(RV_REG_T1, imm, ctx);
@@ -1426,6 +1436,10 @@
 {
 	int stack_adjust = 0, store_offset, bpf_stack_adjust;
 
+	bpf_stack_adjust = round_up(ctx->prog->aux->stack_depth, 16);
+	if (bpf_stack_adjust)
+		mark_fp(ctx);
+
 	if (seen_reg(RV_REG_RA, ctx))
 		stack_adjust += 8;
 	stack_adjust += 8; /* RV_REG_FP */
@@ -1443,7 +1457,6 @@
 		stack_adjust += 8;
 
 	stack_adjust = round_up(stack_adjust, 16);
-	bpf_stack_adjust = round_up(ctx->prog->aux->stack_depth, 16);
 	stack_adjust += bpf_stack_adjust;
 
 	store_offset = stack_adjust - 8;
--- linux-ein-5.4.0.orig/arch/s390/Kconfig
+++ linux-ein-5.4.0/arch/s390/Kconfig
@@ -155,6 +155,7 @@
 	select HAVE_KERNEL_UNCOMPRESSED
 	select HAVE_KERNEL_XZ
 	select HAVE_KPROBES
+	select HAVE_KPROBES_ON_FTRACE
 	select HAVE_KRETPROBES
 	select HAVE_KVM
 	select HAVE_LIVEPATCH
@@ -541,7 +542,6 @@
 config KEXEC_FILE
 	bool "kexec file based system call"
 	select KEXEC_CORE
-	select BUILD_BIN2C
 	depends on CRYPTO
 	depends on CRYPTO_SHA256
 	depends on CRYPTO_SHA256_S390
@@ -920,7 +920,7 @@
 config APPLDATA_BASE
 	def_bool n
 	prompt "Linux - VM Monitor Stream, base infrastructure"
-	depends on PROC_FS
+	depends on PROC_SYSCTL
 	help
 	  This provides a kernel interface for creating and updating z/VM APPLDATA
 	  monitor records. The monitor records are updated at certain time
@@ -1006,3 +1006,11 @@
 	  the KVM hypervisor.
 
 endmenu
+
+config KMSG_IDS
+	def_bool y
+	prompt "Kernel message numbers"
+	help
+	  Select this option if you want to include a message number to the
+	  prefix for kernel messages issued by the s390 architecture and
+	  driver code. See "Documentation/s390/kmsg.txt" for more details.
--- linux-ein-5.4.0.orig/arch/s390/Makefile
+++ linux-ein-5.4.0/arch/s390/Makefile
@@ -31,6 +31,16 @@
 KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member)
 KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
 KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
+
+ifdef CONFIG_CC_IS_GCC
+	ifeq ($(call cc-ifversion, -ge, 1200, y), y)
+		ifeq ($(call cc-ifversion, -lt, 1300, y), y)
+			KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
+			KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, array-bounds)
+		endif
+	endif
+endif
+
 UTS_MACHINE	:= s390x
 STACK_SIZE	:= $(if $(CONFIG_KASAN),65536,16384)
 CHECKFLAGS	+= -D__s390__ -D__s390x__
@@ -69,7 +79,7 @@
 #
 cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls
 
-ifeq ($(call cc-option-yn,-mpacked-stack),y)
+ifeq ($(call cc-option-yn,-mpacked-stack -mbackchain -msoft-float),y)
 cflags-$(CONFIG_PACK_STACK)  += -mpacked-stack -D__PACK_STACK
 aflags-$(CONFIG_PACK_STACK)  += -D__PACK_STACK
 endif
@@ -146,7 +156,7 @@
 #KBUILD_IMAGE is necessary for packaging targets like rpm-pkg, deb-pkg...
 KBUILD_IMAGE	:= $(boot)/bzImage
 
-install: vmlinux
+install:
 	$(Q)$(MAKE) $(build)=$(boot) $@
 
 bzImage: vmlinux
--- linux-ein-5.4.0.orig/arch/s390/appldata/appldata_os.c
+++ linux-ein-5.4.0/arch/s390/appldata/appldata_os.c
@@ -75,7 +75,7 @@
 				   (waiting for I/O)               */
 
 	/* per cpu data */
-	struct appldata_os_per_cpu os_cpu[0];
+	struct appldata_os_per_cpu os_cpu[];
 } __attribute__((packed));
 
 static struct appldata_os_data *appldata_os_data;
--- linux-ein-5.4.0.orig/arch/s390/boot/Makefile
+++ linux-ein-5.4.0/arch/s390/boot/Makefile
@@ -37,7 +37,7 @@
 obj-y	:= head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o
 obj-y	+= string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o
 obj-y	+= version.o pgm_check_info.o ctype.o text_dma.o
-obj-$(CONFIG_PROTECTED_VIRTUALIZATION_GUEST)	+= uv.o
+obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE))	+= uv.o
 obj-$(CONFIG_RELOCATABLE)	+= machine_kexec_reloc.o
 obj-$(CONFIG_RANDOMIZE_BASE)	+= kaslr.o
 targets	:= bzImage startup.a section_cmp.boot.data section_cmp.boot.preserved.data $(obj-y)
@@ -70,7 +70,7 @@
 $(obj)/startup.a: $(OBJECTS) FORCE
 	$(call if_changed,ar)
 
-install: $(CONFIGURE) $(obj)/bzImage
+install:
 	sh -x  $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
 	      System.map "$(INSTALL_PATH)"
 
--- linux-ein-5.4.0.orig/arch/s390/boot/compressed/decompressor.c
+++ linux-ein-5.4.0/arch/s390/boot/compressed/decompressor.c
@@ -30,13 +30,13 @@
 extern unsigned char _compressed_end[];
 
 #ifdef CONFIG_HAVE_KERNEL_BZIP2
-#define HEAP_SIZE	0x400000
+#define BOOT_HEAP_SIZE	0x400000
 #else
-#define HEAP_SIZE	0x10000
+#define BOOT_HEAP_SIZE	0x10000
 #endif
 
 static unsigned long free_mem_ptr = (unsigned long) _end;
-static unsigned long free_mem_end_ptr = (unsigned long) _end + HEAP_SIZE;
+static unsigned long free_mem_end_ptr = (unsigned long) _end + BOOT_HEAP_SIZE;
 
 #ifdef CONFIG_KERNEL_GZIP
 #include "../../../../lib/decompress_inflate.c"
@@ -62,7 +62,7 @@
 #include "../../../../lib/decompress_unxz.c"
 #endif
 
-#define decompress_offset ALIGN((unsigned long)_end + HEAP_SIZE, PAGE_SIZE)
+#define decompress_offset ALIGN((unsigned long)_end + BOOT_HEAP_SIZE, PAGE_SIZE)
 
 unsigned long mem_safe_offset(void)
 {
@@ -80,6 +80,6 @@
 	void *output = (void *)decompress_offset;
 
 	__decompress(_compressed_start, _compressed_end - _compressed_start,
-		     NULL, NULL, output, 0, NULL, error);
+		     NULL, NULL, output, vmlinux.image_size, NULL, error);
 	return output;
 }
--- linux-ein-5.4.0.orig/arch/s390/boot/compressed/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/s390/boot/compressed/vmlinux.lds.S
@@ -78,10 +78,19 @@
 		_compressed_start = .;
 		*(.vmlinux.bin.compressed)
 		_compressed_end = .;
-		FILL(0xff);
-		. = ALIGN(4096);
 	}
-	. = ALIGN(256);
+
+#define SB_TRAILER_SIZE 32
+	/* Trailer needed for Secure Boot */
+	. += SB_TRAILER_SIZE; /* make sure .sb.trailer does not overwrite the previous section */
+	. = ALIGN(4096) - SB_TRAILER_SIZE;
+	.sb.trailer : {
+		QUAD(0)
+		QUAD(0)
+		QUAD(0)
+		QUAD(0x000000207a49504c)
+	}
+
 	.bss : {
 		_bss = . ;
 		*(.bss)
--- linux-ein-5.4.0.orig/arch/s390/boot/head.S
+++ linux-ein-5.4.0/arch/s390/boot/head.S
@@ -360,22 +360,23 @@
 # the save area and does disabled wait with a faulty address.
 #
 ENTRY(startup_pgm_check_handler)
-	stmg	%r0,%r15,__LC_SAVE_AREA_SYNC
-	la	%r1,4095
-	stctg	%c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r1)
-	mvc	__LC_GPREGS_SAVE_AREA-4095(128,%r1),__LC_SAVE_AREA_SYNC
-	mvc	__LC_PSW_SAVE_AREA-4095(16,%r1),__LC_PGM_OLD_PSW
+	stmg	%r8,%r15,__LC_SAVE_AREA_SYNC
+	la	%r8,4095
+	stctg	%c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r8)
+	stmg	%r0,%r7,__LC_GPREGS_SAVE_AREA-4095(%r8)
+	mvc	__LC_GPREGS_SAVE_AREA-4095+64(64,%r8),__LC_SAVE_AREA_SYNC
+	mvc	__LC_PSW_SAVE_AREA-4095(16,%r8),__LC_PGM_OLD_PSW
 	mvc	__LC_RETURN_PSW(16),__LC_PGM_OLD_PSW
 	ni	__LC_RETURN_PSW,0xfc	# remove IO and EX bits
 	ni	__LC_RETURN_PSW+1,0xfb	# remove MCHK bit
 	oi	__LC_RETURN_PSW+1,0x2	# set wait state bit
-	larl	%r2,.Lold_psw_disabled_wait
-	stg	%r2,__LC_PGM_NEW_PSW+8
-	l	%r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r2)
+	larl	%r9,.Lold_psw_disabled_wait
+	stg	%r9,__LC_PGM_NEW_PSW+8
+	l	%r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r9)
 	brasl	%r14,print_pgm_check_info
 .Lold_psw_disabled_wait:
-	la	%r1,4095
-	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
+	la	%r8,4095
+	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r8)
 	lpswe	__LC_RETURN_PSW		# disabled wait
 .Ldump_info_stack:
 	.long	0x5000 + PAGE_SIZE - STACK_FRAME_OVERHEAD
--- linux-ein-5.4.0.orig/arch/s390/boot/ipl_parm.c
+++ linux-ein-5.4.0/arch/s390/boot/ipl_parm.c
@@ -14,6 +14,7 @@
 char __bootdata(early_command_line)[COMMAND_LINE_SIZE];
 struct ipl_parameter_block __bootdata_preserved(ipl_block);
 int __bootdata_preserved(ipl_block_valid);
+unsigned int __bootdata_preserved(zlib_dfltcc_support) = ZLIB_DFLTCC_FULL;
 
 unsigned long __bootdata(vmalloc_size) = VMALLOC_DEFAULT_SIZE;
 unsigned long __bootdata(memory_end);
@@ -27,22 +28,25 @@
 	register unsigned long _addr asm("0") = (unsigned long)addr;
 	register unsigned long _rc asm("1") = 0;
 	unsigned long reg1, reg2;
-	psw_t old = S390_lowcore.program_new_psw;
+	psw_t old;
 
 	asm volatile(
+		"	mvc	0(16,%[psw_old]),0(%[psw_pgm])\n"
 		"	epsw	%0,%1\n"
-		"	st	%0,%[psw_pgm]\n"
-		"	st	%1,%[psw_pgm]+4\n"
+		"	st	%0,0(%[psw_pgm])\n"
+		"	st	%1,4(%[psw_pgm])\n"
 		"	larl	%0,1f\n"
-		"	stg	%0,%[psw_pgm]+8\n"
+		"	stg	%0,8(%[psw_pgm])\n"
 		"	diag	%[addr],%[subcode],0x308\n"
-		"1:	nopr	%%r7\n"
+		"1:	mvc	0(16,%[psw_pgm]),0(%[psw_old])\n"
 		: "=&d" (reg1), "=&a" (reg2),
-		  [psw_pgm] "=Q" (S390_lowcore.program_new_psw),
+		  "+Q" (S390_lowcore.program_new_psw),
+		  "=Q" (old),
 		  [addr] "+d" (_addr), "+d" (_rc)
-		: [subcode] "d" (subcode)
+		: [subcode] "d" (subcode),
+		  [psw_old] "a" (&old),
+		  [psw_pgm] "a" (&S390_lowcore.program_new_psw)
 		: "cc", "memory");
-	S390_lowcore.program_new_psw = old;
 	return _rc;
 }
 
@@ -69,30 +73,44 @@
 static size_t ipl_block_get_ascii_scpdata(char *dest, size_t size,
 					  const struct ipl_parameter_block *ipb)
 {
-	size_t count;
-	size_t i;
+	const __u8 *scp_data;
+	__u32 scp_data_len;
 	int has_lowercase;
+	size_t count = 0;
+	size_t i;
+
+	switch (ipb->pb0_hdr.pbt) {
+	case IPL_PBT_FCP:
+		scp_data_len = ipb->fcp.scp_data_len;
+		scp_data = ipb->fcp.scp_data;
+		break;
+	case IPL_PBT_NVME:
+		scp_data_len = ipb->nvme.scp_data_len;
+		scp_data = ipb->nvme.scp_data;
+		break;
+	default:
+		goto out;
+	}
 
-	count = min(size - 1, scpdata_length(ipb->fcp.scp_data,
-					     ipb->fcp.scp_data_len));
+	count = min(size - 1, scpdata_length(scp_data, scp_data_len));
 	if (!count)
 		goto out;
 
 	has_lowercase = 0;
 	for (i = 0; i < count; i++) {
-		if (!isascii(ipb->fcp.scp_data[i])) {
+		if (!isascii(scp_data[i])) {
 			count = 0;
 			goto out;
 		}
-		if (!has_lowercase && islower(ipb->fcp.scp_data[i]))
+		if (!has_lowercase && islower(scp_data[i]))
 			has_lowercase = 1;
 	}
 
 	if (has_lowercase)
-		memcpy(dest, ipb->fcp.scp_data, count);
+		memcpy(dest, scp_data, count);
 	else
 		for (i = 0; i < count; i++)
-			dest[i] = tolower(ipb->fcp.scp_data[i]);
+			dest[i] = tolower(scp_data[i]);
 out:
 	dest[count] = '\0';
 	return count;
@@ -114,6 +132,7 @@
 			parm, COMMAND_LINE_SIZE - len - 1, &ipl_block);
 		break;
 	case IPL_PBT_FCP:
+	case IPL_PBT_NVME:
 		rc = ipl_block_get_ascii_scpdata(
 			parm, COMMAND_LINE_SIZE - len - 1, &ipl_block);
 		break;
@@ -229,6 +248,19 @@
 		if (!strcmp(param, "vmalloc") && val)
 			vmalloc_size = round_up(memparse(val, NULL), PAGE_SIZE);
 
+		if (!strcmp(param, "dfltcc")) {
+			if (!strcmp(val, "off"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_DISABLED;
+			else if (!strcmp(val, "on"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_FULL;
+			else if (!strcmp(val, "def_only"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_DEFLATE_ONLY;
+			else if (!strcmp(val, "inf_only"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_INFLATE_ONLY;
+			else if (!strcmp(val, "always"))
+				zlib_dfltcc_support = ZLIB_DFLTCC_FULL_DEBUG;
+		}
+
 		if (!strcmp(param, "noexec")) {
 			rc = kstrtobool(val, &enabled);
 			if (!rc && !enabled)
--- linux-ein-5.4.0.orig/arch/s390/boot/ipl_report.c
+++ linux-ein-5.4.0/arch/s390/boot/ipl_report.c
@@ -57,11 +57,19 @@
 	if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && INITRD_START && INITRD_SIZE &&
 	    intersects(INITRD_START, INITRD_SIZE, safe_addr, size))
 		safe_addr = INITRD_START + INITRD_SIZE;
+	if (intersects(safe_addr, size, (unsigned long)comps, comps->len)) {
+		safe_addr = (unsigned long)comps + comps->len;
+		goto repeat;
+	}
 	for_each_rb_entry(comp, comps)
 		if (intersects(safe_addr, size, comp->addr, comp->len)) {
 			safe_addr = comp->addr + comp->len;
 			goto repeat;
 		}
+	if (intersects(safe_addr, size, (unsigned long)certs, certs->len)) {
+		safe_addr = (unsigned long)certs + certs->len;
+		goto repeat;
+	}
 	for_each_rb_entry(cert, certs)
 		if (intersects(safe_addr, size, cert->addr, cert->len)) {
 			safe_addr = cert->addr + cert->len;
--- linux-ein-5.4.0.orig/arch/s390/boot/kaslr.c
+++ linux-ein-5.4.0/arch/s390/boot/kaslr.c
@@ -75,7 +75,7 @@
 		*(unsigned long *) prng.parm_block ^= seed;
 		for (i = 0; i < 16; i++) {
 			cpacf_kmc(CPACF_KMC_PRNG, prng.parm_block,
-				  (char *) entropy, (char *) entropy,
+				  (u8 *) entropy, (u8 *) entropy,
 				  sizeof(entropy));
 			memcpy(prng.parm_block, entropy, sizeof(entropy));
 		}
--- linux-ein-5.4.0.orig/arch/s390/boot/mem_detect.c
+++ linux-ein-5.4.0/arch/s390/boot/mem_detect.c
@@ -70,24 +70,27 @@
 	register unsigned long _ry asm("4") = 0x10; /* storage configuration */
 	int rc = -1;				    /* fail */
 	unsigned long reg1, reg2;
-	psw_t old = S390_lowcore.program_new_psw;
+	psw_t old;
 
 	asm volatile(
+		"	mvc	0(16,%[psw_old]),0(%[psw_pgm])\n"
 		"	epsw	%0,%1\n"
-		"	st	%0,%[psw_pgm]\n"
-		"	st	%1,%[psw_pgm]+4\n"
+		"	st	%0,0(%[psw_pgm])\n"
+		"	st	%1,4(%[psw_pgm])\n"
 		"	larl	%0,1f\n"
-		"	stg	%0,%[psw_pgm]+8\n"
+		"	stg	%0,8(%[psw_pgm])\n"
 		"	diag	%[rx],%[ry],0x260\n"
 		"	ipm	%[rc]\n"
 		"	srl	%[rc],28\n"
-		"1:\n"
+		"1:	mvc	0(16,%[psw_pgm]),0(%[psw_old])\n"
 		: "=&d" (reg1), "=&a" (reg2),
-		  [psw_pgm] "=Q" (S390_lowcore.program_new_psw),
+		  "+Q" (S390_lowcore.program_new_psw),
+		  "=Q" (old),
 		  [rc] "+&d" (rc), [ry] "+d" (_ry)
-		: [rx] "d" (_rx1), "d" (_rx2)
+		: [rx] "d" (_rx1), "d" (_rx2),
+		  [psw_old] "a" (&old),
+		  [psw_pgm] "a" (&S390_lowcore.program_new_psw)
 		: "cc", "memory");
-	S390_lowcore.program_new_psw = old;
 	return rc == 0 ? _ry : -1;
 }
 
@@ -112,24 +115,30 @@
 
 static int tprot(unsigned long addr)
 {
-	unsigned long pgm_addr;
+	unsigned long reg1, reg2;
 	int rc = -EFAULT;
-	psw_t old = S390_lowcore.program_new_psw;
+	psw_t old;
 
-	S390_lowcore.program_new_psw.mask = __extract_psw();
 	asm volatile(
-		"	larl	%[pgm_addr],1f\n"
-		"	stg	%[pgm_addr],%[psw_pgm_addr]\n"
+		"	mvc	0(16,%[psw_old]),0(%[psw_pgm])\n"
+		"	epsw	%[reg1],%[reg2]\n"
+		"	st	%[reg1],0(%[psw_pgm])\n"
+		"	st	%[reg2],4(%[psw_pgm])\n"
+		"	larl	%[reg1],1f\n"
+		"	stg	%[reg1],8(%[psw_pgm])\n"
 		"	tprot	0(%[addr]),0\n"
 		"	ipm	%[rc]\n"
 		"	srl	%[rc],28\n"
-		"1:\n"
-		: [pgm_addr] "=&d"(pgm_addr),
-		  [psw_pgm_addr] "=Q"(S390_lowcore.program_new_psw.addr),
-		  [rc] "+&d"(rc)
-		: [addr] "a"(addr)
+		"1:	mvc	0(16,%[psw_pgm]),0(%[psw_old])\n"
+		: [reg1] "=&d" (reg1),
+		  [reg2] "=&a" (reg2),
+		  [rc] "+&d" (rc),
+		  "=Q" (S390_lowcore.program_new_psw.addr),
+		  "=Q" (old)
+		: [psw_old] "a" (&old),
+		  [psw_pgm] "a" (&S390_lowcore.program_new_psw),
+		  [addr] "a" (addr)
 		: "cc", "memory");
-	S390_lowcore.program_new_psw = old;
 	return rc;
 }
 
--- linux-ein-5.4.0.orig/arch/s390/boot/startup.c
+++ linux-ein-5.4.0/arch/s390/boot/startup.c
@@ -170,6 +170,11 @@
 		handle_relocs(__kaslr_offset);
 
 	if (__kaslr_offset) {
+		/*
+		 * Save KASLR offset for early dumps, before vmcore_info is set.
+		 * Mark as uneven to distinguish from real vmcore_info pointer.
+		 */
+		S390_lowcore.vmcore_info = __kaslr_offset | 0x1UL;
 		/* Clear non-relocated kernel */
 		if (IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED))
 			memset(img, 0, vmlinux.image_size);
--- linux-ein-5.4.0.orig/arch/s390/boot/text_dma.S
+++ linux-ein-5.4.0/arch/s390/boot/text_dma.S
@@ -9,16 +9,6 @@
 #include <asm/errno.h>
 #include <asm/sigp.h>
 
-#ifdef CC_USING_EXPOLINE
-	.pushsection .dma.text.__s390_indirect_jump_r14,"axG"
-__dma__s390_indirect_jump_r14:
-	larl	%r1,0f
-	ex	0,0(%r1)
-	j	.
-0:	br	%r14
-	.popsection
-#endif
-
 	.section .dma.text,"ax"
 /*
  * Simplified version of expoline thunk. The normal thunks can not be used here,
@@ -27,11 +17,10 @@
  * affects a few functions that are not performance-relevant.
  */
 	.macro BR_EX_DMA_r14
-#ifdef CC_USING_EXPOLINE
-	jg	__dma__s390_indirect_jump_r14
-#else
-	br	%r14
-#endif
+	larl	%r1,0f
+	ex	0,0(%r1)
+	j	.
+0:	br	%r14
 	.endm
 
 /*
--- linux-ein-5.4.0.orig/arch/s390/boot/uv.c
+++ linux-ein-5.4.0/arch/s390/boot/uv.c
@@ -3,7 +3,13 @@
 #include <asm/facility.h>
 #include <asm/sections.h>
 
+/* will be used in arch/s390/kernel/uv.c */
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
 int __bootdata_preserved(prot_virt_guest);
+#endif
+#if IS_ENABLED(CONFIG_KVM)
+struct uv_info __bootdata_preserved(uv_info);
+#endif
 
 void uv_query_info(void)
 {
@@ -15,10 +21,25 @@
 	if (!test_facility(158))
 		return;
 
-	if (uv_call(0, (uint64_t)&uvcb))
+	/* rc==0x100 means that there is additional data we do not process */
+	if (uv_call(0, (uint64_t)&uvcb) && uvcb.header.rc != 0x100)
 		return;
 
+	if (IS_ENABLED(CONFIG_KVM)) {
+		memcpy(uv_info.inst_calls_list, uvcb.inst_calls_list, sizeof(uv_info.inst_calls_list));
+		uv_info.uv_base_stor_len = uvcb.uv_base_stor_len;
+		uv_info.guest_base_stor_len = uvcb.conf_base_phys_stor_len;
+		uv_info.guest_virt_base_stor_len = uvcb.conf_base_virt_stor_len;
+		uv_info.guest_virt_var_stor_len = uvcb.conf_virt_var_stor_len;
+		uv_info.guest_cpu_stor_len = uvcb.cpu_stor_len;
+		uv_info.max_sec_stor_addr = ALIGN(uvcb.max_guest_stor_addr, PAGE_SIZE);
+		uv_info.max_num_sec_conf = uvcb.max_num_sec_conf;
+		uv_info.max_guest_cpus = uvcb.max_guest_cpus;
+	}
+
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
 	if (test_bit_inv(BIT_UVC_CMD_SET_SHARED_ACCESS, (unsigned long *)uvcb.inst_calls_list) &&
 	    test_bit_inv(BIT_UVC_CMD_REMOVE_SHARED_ACCESS, (unsigned long *)uvcb.inst_calls_list))
 		prot_virt_guest = 1;
+#endif
 }
--- linux-ein-5.4.0.orig/arch/s390/configs/debug_defconfig
+++ linux-ein-5.4.0/arch/s390/configs/debug_defconfig
@@ -62,7 +62,6 @@
 CONFIG_KPROBES=y
 CONFIG_JUMP_LABEL=y
 CONFIG_STATIC_KEYS_SELFTEST=y
-CONFIG_REFCOUNT_FULL=y
 CONFIG_LOCK_EVENT_COUNTS=y
 CONFIG_MODULES=y
 CONFIG_MODULE_FORCE_LOAD=y
--- linux-ein-5.4.0.orig/arch/s390/crypto/aes_s390.c
+++ linux-ein-5.4.0/arch/s390/crypto/aes_s390.c
@@ -861,7 +861,7 @@
 					     unsigned int nbytes)
 {
 	gw->walk_bytes_remain -= nbytes;
-	scatterwalk_unmap(&gw->walk);
+	scatterwalk_unmap(gw->walk_ptr);
 	scatterwalk_advance(&gw->walk, nbytes);
 	scatterwalk_done(&gw->walk, 0, gw->walk_bytes_remain);
 	gw->walk_ptr = NULL;
@@ -936,7 +936,7 @@
 		goto out;
 	}
 
-	scatterwalk_unmap(&gw->walk);
+	scatterwalk_unmap(gw->walk_ptr);
 	gw->walk_ptr = NULL;
 
 	gw->ptr = gw->buf;
--- linux-ein-5.4.0.orig/arch/s390/crypto/arch_random.c
+++ linux-ein-5.4.0/arch/s390/crypto/arch_random.c
@@ -2,122 +2,17 @@
 /*
  * s390 arch random implementation.
  *
- * Copyright IBM Corp. 2017, 2018
+ * Copyright IBM Corp. 2017, 2020
  * Author(s): Harald Freudenberger
- *
- * The s390_arch_random_generate() function may be called from random.c
- * in interrupt context. So this implementation does the best to be very
- * fast. There is a buffer of random data which is asynchronously checked
- * and filled by a workqueue thread.
- * If there are enough bytes in the buffer the s390_arch_random_generate()
- * just delivers these bytes. Otherwise false is returned until the
- * worker thread refills the buffer.
- * The worker fills the rng buffer by pulling fresh entropy from the
- * high quality (but slow) true hardware random generator. This entropy
- * is then spread over the buffer with an pseudo random generator PRNG.
- * As the arch_get_random_seed_long() fetches 8 bytes and the calling
- * function add_interrupt_randomness() counts this as 1 bit entropy the
- * distribution needs to make sure there is in fact 1 bit entropy contained
- * in 8 bytes of the buffer. The current values pull 32 byte entropy
- * and scatter this into a 2048 byte buffer. So 8 byte in the buffer
- * will contain 1 bit of entropy.
- * The worker thread is rescheduled based on the charge level of the
- * buffer but at least with 500 ms delay to avoid too much CPU consumption.
- * So the max. amount of rng data delivered via arch_get_random_seed is
- * limited to 4k bytes per second.
  */
 
 #include <linux/kernel.h>
 #include <linux/atomic.h>
 #include <linux/random.h>
-#include <linux/slab.h>
 #include <linux/static_key.h>
-#include <linux/workqueue.h>
 #include <asm/cpacf.h>
 
 DEFINE_STATIC_KEY_FALSE(s390_arch_random_available);
 
 atomic64_t s390_arch_random_counter = ATOMIC64_INIT(0);
 EXPORT_SYMBOL(s390_arch_random_counter);
-
-#define ARCH_REFILL_TICKS (HZ/2)
-#define ARCH_PRNG_SEED_SIZE 32
-#define ARCH_RNG_BUF_SIZE 2048
-
-static DEFINE_SPINLOCK(arch_rng_lock);
-static u8 *arch_rng_buf;
-static unsigned int arch_rng_buf_idx;
-
-static void arch_rng_refill_buffer(struct work_struct *);
-static DECLARE_DELAYED_WORK(arch_rng_work, arch_rng_refill_buffer);
-
-bool s390_arch_random_generate(u8 *buf, unsigned int nbytes)
-{
-	/* lock rng buffer */
-	if (!spin_trylock(&arch_rng_lock))
-		return false;
-
-	/* try to resolve the requested amount of bytes from the buffer */
-	arch_rng_buf_idx -= nbytes;
-	if (arch_rng_buf_idx < ARCH_RNG_BUF_SIZE) {
-		memcpy(buf, arch_rng_buf + arch_rng_buf_idx, nbytes);
-		atomic64_add(nbytes, &s390_arch_random_counter);
-		spin_unlock(&arch_rng_lock);
-		return true;
-	}
-
-	/* not enough bytes in rng buffer, refill is done asynchronously */
-	spin_unlock(&arch_rng_lock);
-
-	return false;
-}
-EXPORT_SYMBOL(s390_arch_random_generate);
-
-static void arch_rng_refill_buffer(struct work_struct *unused)
-{
-	unsigned int delay = ARCH_REFILL_TICKS;
-
-	spin_lock(&arch_rng_lock);
-	if (arch_rng_buf_idx > ARCH_RNG_BUF_SIZE) {
-		/* buffer is exhausted and needs refill */
-		u8 seed[ARCH_PRNG_SEED_SIZE];
-		u8 prng_wa[240];
-		/* fetch ARCH_PRNG_SEED_SIZE bytes of entropy */
-		cpacf_trng(NULL, 0, seed, sizeof(seed));
-		/* blow this entropy up to ARCH_RNG_BUF_SIZE with PRNG */
-		memset(prng_wa, 0, sizeof(prng_wa));
-		cpacf_prno(CPACF_PRNO_SHA512_DRNG_SEED,
-			   &prng_wa, NULL, 0, seed, sizeof(seed));
-		cpacf_prno(CPACF_PRNO_SHA512_DRNG_GEN,
-			   &prng_wa, arch_rng_buf, ARCH_RNG_BUF_SIZE, NULL, 0);
-		arch_rng_buf_idx = ARCH_RNG_BUF_SIZE;
-	}
-	delay += (ARCH_REFILL_TICKS * arch_rng_buf_idx) / ARCH_RNG_BUF_SIZE;
-	spin_unlock(&arch_rng_lock);
-
-	/* kick next check */
-	queue_delayed_work(system_long_wq, &arch_rng_work, delay);
-}
-
-static int __init s390_arch_random_init(void)
-{
-	/* all the needed PRNO subfunctions available ? */
-	if (cpacf_query_func(CPACF_PRNO, CPACF_PRNO_TRNG) &&
-	    cpacf_query_func(CPACF_PRNO, CPACF_PRNO_SHA512_DRNG_GEN)) {
-
-		/* alloc arch random working buffer */
-		arch_rng_buf = kmalloc(ARCH_RNG_BUF_SIZE, GFP_KERNEL);
-		if (!arch_rng_buf)
-			return -ENOMEM;
-
-		/* kick worker queue job to fill the random buffer */
-		queue_delayed_work(system_long_wq,
-				   &arch_rng_work, ARCH_REFILL_TICKS);
-
-		/* enable arch random to the outside world */
-		static_branch_enable(&s390_arch_random_available);
-	}
-
-	return 0;
-}
-arch_initcall(s390_arch_random_init);
--- linux-ein-5.4.0.orig/arch/s390/crypto/paes_s390.c
+++ linux-ein-5.4.0/arch/s390/crypto/paes_s390.c
@@ -5,7 +5,7 @@
  * s390 implementation of the AES Cipher Algorithm with protected keys.
  *
  * s390 Version:
- *   Copyright IBM Corp. 2017,2019
+ *   Copyright IBM Corp. 2017,2020
  *   Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  *		Harald Freudenberger <freude@de.ibm.com>
  */
@@ -20,6 +20,7 @@
 #include <linux/module.h>
 #include <linux/cpufeature.h>
 #include <linux/init.h>
+#include <linux/mutex.h>
 #include <linux/spinlock.h>
 #include <crypto/xts.h>
 #include <asm/cpacf.h>
@@ -31,11 +32,11 @@
  * is called. As paes can handle different kinds of key blobs
  * and padding is also possible, the limits need to be generous.
  */
-#define PAES_MIN_KEYSIZE 64
-#define PAES_MAX_KEYSIZE 256
+#define PAES_MIN_KEYSIZE 16
+#define PAES_MAX_KEYSIZE 320
 
 static u8 *ctrblk;
-static DEFINE_SPINLOCK(ctrblk_lock);
+static DEFINE_MUTEX(ctrblk_lock);
 
 static cpacf_mask_t km_functions, kmc_functions, kmctr_functions;
 
@@ -52,19 +53,46 @@
 	unsigned int keylen;
 };
 
-static inline int _copy_key_to_kb(struct key_blob *kb,
-				  const u8 *key,
-				  unsigned int keylen)
-{
-	if (keylen <= sizeof(kb->keybuf))
+static inline int _key_to_kb(struct key_blob *kb,
+			     const u8 *key,
+			     unsigned int keylen)
+{
+	struct clearkey_header {
+		u8  type;
+		u8  res0[3];
+		u8  version;
+		u8  res1[3];
+		u32 keytype;
+		u32 len;
+	} __packed * h;
+
+	switch (keylen) {
+	case 16:
+	case 24:
+	case 32:
+		/* clear key value, prepare pkey clear key token in keybuf */
+		memset(kb->keybuf, 0, sizeof(kb->keybuf));
+		h = (struct clearkey_header *) kb->keybuf;
+		h->version = 0x02; /* TOKVER_CLEAR_KEY */
+		h->keytype = (keylen - 8) >> 3;
+		h->len = keylen;
+		memcpy(kb->keybuf + sizeof(*h), key, keylen);
+		kb->keylen = sizeof(*h) + keylen;
 		kb->key = kb->keybuf;
-	else {
-		kb->key = kmalloc(keylen, GFP_KERNEL);
-		if (!kb->key)
-			return -ENOMEM;
+		break;
+	default:
+		/* other key material, let pkey handle this */
+		if (keylen <= sizeof(kb->keybuf))
+			kb->key = kb->keybuf;
+		else {
+			kb->key = kmalloc(keylen, GFP_KERNEL);
+			if (!kb->key)
+				return -ENOMEM;
+		}
+		memcpy(kb->key, key, keylen);
+		kb->keylen = keylen;
+		break;
 	}
-	memcpy(kb->key, key, keylen);
-	kb->keylen = keylen;
 
 	return 0;
 }
@@ -81,16 +109,18 @@
 struct s390_paes_ctx {
 	struct key_blob kb;
 	struct pkey_protkey pk;
+	spinlock_t pk_lock;
 	unsigned long fc;
 };
 
 struct s390_pxts_ctx {
 	struct key_blob kb[2];
 	struct pkey_protkey pk[2];
+	spinlock_t pk_lock;
 	unsigned long fc;
 };
 
-static inline int __paes_convert_key(struct key_blob *kb,
+static inline int __paes_keyblob2pkey(struct key_blob *kb,
 				     struct pkey_protkey *pk)
 {
 	int i, ret;
@@ -105,22 +135,18 @@
 	return ret;
 }
 
-static int __paes_set_key(struct s390_paes_ctx *ctx)
+static inline int __paes_convert_key(struct s390_paes_ctx *ctx)
 {
-	unsigned long fc;
+	struct pkey_protkey pkey;
 
-	if (__paes_convert_key(&ctx->kb, &ctx->pk))
+	if (__paes_keyblob2pkey(&ctx->kb, &pkey))
 		return -EINVAL;
 
-	/* Pick the correct function code based on the protected key type */
-	fc = (ctx->pk.type == PKEY_KEYTYPE_AES_128) ? CPACF_KM_PAES_128 :
-		(ctx->pk.type == PKEY_KEYTYPE_AES_192) ? CPACF_KM_PAES_192 :
-		(ctx->pk.type == PKEY_KEYTYPE_AES_256) ? CPACF_KM_PAES_256 : 0;
-
-	/* Check if the function code is available */
-	ctx->fc = (fc && cpacf_test_func(&km_functions, fc)) ? fc : 0;
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(&ctx->pk, &pkey, sizeof(pkey));
+	spin_unlock_bh(&ctx->pk_lock);
 
-	return ctx->fc ? 0 : -EINVAL;
+	return 0;
 }
 
 static int ecb_paes_init(struct crypto_tfm *tfm)
@@ -128,6 +154,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	ctx->kb.key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -139,6 +166,24 @@
 	_free_kb_keybuf(&ctx->kb);
 }
 
+static inline int __ecb_paes_set_key(struct s390_paes_ctx *ctx)
+{
+	unsigned long fc;
+
+	if (__paes_convert_key(ctx))
+		return -EINVAL;
+
+	/* Pick the correct function code based on the protected key type */
+	fc = (ctx->pk.type == PKEY_KEYTYPE_AES_128) ? CPACF_KM_PAES_128 :
+		(ctx->pk.type == PKEY_KEYTYPE_AES_192) ? CPACF_KM_PAES_192 :
+		(ctx->pk.type == PKEY_KEYTYPE_AES_256) ? CPACF_KM_PAES_256 : 0;
+
+	/* Check if the function code is available */
+	ctx->fc = (fc && cpacf_test_func(&km_functions, fc)) ? fc : 0;
+
+	return ctx->fc ? 0 : -EINVAL;
+}
+
 static int ecb_paes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
 			    unsigned int key_len)
 {
@@ -146,13 +191,14 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	_free_kb_keybuf(&ctx->kb);
-	rc = _copy_key_to_kb(&ctx->kb, in_key, key_len);
+	rc = _key_to_kb(&ctx->kb, in_key, key_len);
 	if (rc)
 		return rc;
 
-	if (__paes_set_key(ctx)) {
+	if (__ecb_paes_set_key(ctx)) {
 		tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
 		return -EINVAL;
+
 	}
 	return 0;
 }
@@ -164,18 +210,31 @@
 	struct s390_paes_ctx *ctx = crypto_blkcipher_ctx(desc->tfm);
 	unsigned int nbytes, n, k;
 	int ret;
+	struct {
+		u8 key[MAXPROTKEYSIZE];
+	} param;
 
 	ret = blkcipher_walk_virt(desc, walk);
+	if (ret)
+		return ret;
+
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+	spin_unlock_bh(&ctx->pk_lock);
+
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
 		/* only use complete blocks */
 		n = nbytes & ~(AES_BLOCK_SIZE - 1);
-		k = cpacf_km(ctx->fc | modifier, ctx->pk.protkey,
+		k = cpacf_km(ctx->fc | modifier, &param,
 			     walk->dst.virt.addr, walk->src.virt.addr, n);
 		if (k)
 			ret = blkcipher_walk_done(desc, walk, nbytes - k);
 		if (k < n) {
-			if (__paes_set_key(ctx) != 0)
+			if (__paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
 	return ret;
@@ -229,6 +288,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	ctx->kb.key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -240,11 +300,11 @@
 	_free_kb_keybuf(&ctx->kb);
 }
 
-static int __cbc_paes_set_key(struct s390_paes_ctx *ctx)
+static inline int __cbc_paes_set_key(struct s390_paes_ctx *ctx)
 {
 	unsigned long fc;
 
-	if (__paes_convert_key(&ctx->kb, &ctx->pk))
+	if (__paes_convert_key(ctx))
 		return -EINVAL;
 
 	/* Pick the correct function code based on the protected key type */
@@ -265,7 +325,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	_free_kb_keybuf(&ctx->kb);
-	rc = _copy_key_to_kb(&ctx->kb, in_key, key_len);
+	rc = _key_to_kb(&ctx->kb, in_key, key_len);
 	if (rc)
 		return rc;
 
@@ -288,22 +348,31 @@
 	} param;
 
 	ret = blkcipher_walk_virt(desc, walk);
+	if (ret)
+		return ret;
+
 	memcpy(param.iv, walk->iv, AES_BLOCK_SIZE);
+	spin_lock_bh(&ctx->pk_lock);
 	memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+	spin_unlock_bh(&ctx->pk_lock);
+
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
 		/* only use complete blocks */
 		n = nbytes & ~(AES_BLOCK_SIZE - 1);
 		k = cpacf_kmc(ctx->fc | modifier, &param,
 			      walk->dst.virt.addr, walk->src.virt.addr, n);
-		if (k)
+		if (k) {
+			memcpy(walk->iv, param.iv, AES_BLOCK_SIZE);
 			ret = blkcipher_walk_done(desc, walk, nbytes - k);
+		}
 		if (k < n) {
-			if (__cbc_paes_set_key(ctx) != 0)
+			if (__paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
+			spin_lock_bh(&ctx->pk_lock);
 			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
-	memcpy(walk->iv, param.iv, AES_BLOCK_SIZE);
 	return ret;
 }
 
@@ -357,6 +426,7 @@
 
 	ctx->kb[0].key = NULL;
 	ctx->kb[1].key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -369,12 +439,27 @@
 	_free_kb_keybuf(&ctx->kb[1]);
 }
 
-static int __xts_paes_set_key(struct s390_pxts_ctx *ctx)
+static inline int __xts_paes_convert_key(struct s390_pxts_ctx *ctx)
+{
+	struct pkey_protkey pkey0, pkey1;
+
+	if (__paes_keyblob2pkey(&ctx->kb[0], &pkey0) ||
+	    __paes_keyblob2pkey(&ctx->kb[1], &pkey1))
+		return -EINVAL;
+
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(&ctx->pk[0], &pkey0, sizeof(pkey0));
+	memcpy(&ctx->pk[1], &pkey1, sizeof(pkey1));
+	spin_unlock_bh(&ctx->pk_lock);
+
+	return 0;
+}
+
+static inline int __xts_paes_set_key(struct s390_pxts_ctx *ctx)
 {
 	unsigned long fc;
 
-	if (__paes_convert_key(&ctx->kb[0], &ctx->pk[0]) ||
-	    __paes_convert_key(&ctx->kb[1], &ctx->pk[1]))
+	if (__xts_paes_convert_key(ctx))
 		return -EINVAL;
 
 	if (ctx->pk[0].type != ctx->pk[1].type)
@@ -406,10 +491,10 @@
 
 	_free_kb_keybuf(&ctx->kb[0]);
 	_free_kb_keybuf(&ctx->kb[1]);
-	rc = _copy_key_to_kb(&ctx->kb[0], in_key, key_len);
+	rc = _key_to_kb(&ctx->kb[0], in_key, key_len);
 	if (rc)
 		return rc;
-	rc = _copy_key_to_kb(&ctx->kb[1], in_key + key_len, key_len);
+	rc = _key_to_kb(&ctx->kb[1], in_key + key_len, key_len);
 	if (rc)
 		return rc;
 
@@ -449,15 +534,19 @@
 	} xts_param;
 
 	ret = blkcipher_walk_virt(desc, walk);
+	if (ret)
+		return ret;
+
 	keylen = (ctx->pk[0].type == PKEY_KEYTYPE_AES_128) ? 48 : 64;
 	offset = (ctx->pk[0].type == PKEY_KEYTYPE_AES_128) ? 16 : 0;
-retry:
+
 	memset(&pcc_param, 0, sizeof(pcc_param));
 	memcpy(pcc_param.tweak, walk->iv, sizeof(pcc_param.tweak));
+	spin_lock_bh(&ctx->pk_lock);
 	memcpy(pcc_param.key + offset, ctx->pk[1].protkey, keylen);
-	cpacf_pcc(ctx->fc, pcc_param.key + offset);
-
 	memcpy(xts_param.key + offset, ctx->pk[0].protkey, keylen);
+	spin_unlock_bh(&ctx->pk_lock);
+	cpacf_pcc(ctx->fc, pcc_param.key + offset);
 	memcpy(xts_param.init, pcc_param.xts, 16);
 
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
@@ -468,11 +557,15 @@
 		if (k)
 			ret = blkcipher_walk_done(desc, walk, nbytes - k);
 		if (k < n) {
-			if (__xts_paes_set_key(ctx) != 0)
+			if (__xts_paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
-			goto retry;
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(xts_param.key + offset,
+			       ctx->pk[0].protkey, keylen);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
+
 	return ret;
 }
 
@@ -525,6 +618,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	ctx->kb.key = NULL;
+	spin_lock_init(&ctx->pk_lock);
 
 	return 0;
 }
@@ -536,11 +630,11 @@
 	_free_kb_keybuf(&ctx->kb);
 }
 
-static int __ctr_paes_set_key(struct s390_paes_ctx *ctx)
+static inline int __ctr_paes_set_key(struct s390_paes_ctx *ctx)
 {
 	unsigned long fc;
 
-	if (__paes_convert_key(&ctx->kb, &ctx->pk))
+	if (__paes_convert_key(ctx))
 		return -EINVAL;
 
 	/* Pick the correct function code based on the protected key type */
@@ -562,7 +656,7 @@
 	struct s390_paes_ctx *ctx = crypto_tfm_ctx(tfm);
 
 	_free_kb_keybuf(&ctx->kb);
-	rc = _copy_key_to_kb(&ctx->kb, in_key, key_len);
+	rc = _key_to_kb(&ctx->kb, in_key, key_len);
 	if (rc)
 		return rc;
 
@@ -595,47 +689,62 @@
 	u8 buf[AES_BLOCK_SIZE], *ctrptr;
 	unsigned int nbytes, n, k;
 	int ret, locked;
-
-	locked = spin_trylock(&ctrblk_lock);
+	struct {
+		u8 key[MAXPROTKEYSIZE];
+	} param;
 
 	ret = blkcipher_walk_virt_block(desc, walk, AES_BLOCK_SIZE);
+	if (ret)
+		return ret;
+
+	spin_lock_bh(&ctx->pk_lock);
+	memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+	spin_unlock_bh(&ctx->pk_lock);
+
+	locked = mutex_trylock(&ctrblk_lock);
+
+
 	while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) {
 		n = AES_BLOCK_SIZE;
 		if (nbytes >= 2*AES_BLOCK_SIZE && locked)
 			n = __ctrblk_init(ctrblk, walk->iv, nbytes);
 		ctrptr = (n > AES_BLOCK_SIZE) ? ctrblk : walk->iv;
-		k = cpacf_kmctr(ctx->fc | modifier, ctx->pk.protkey,
-				walk->dst.virt.addr, walk->src.virt.addr,
-				n, ctrptr);
+		k = cpacf_kmctr(ctx->fc | modifier, &param, walk->dst.virt.addr,
+				walk->src.virt.addr, n, ctrptr);
 		if (k) {
 			if (ctrptr == ctrblk)
 				memcpy(walk->iv, ctrptr + k - AES_BLOCK_SIZE,
 				       AES_BLOCK_SIZE);
 			crypto_inc(walk->iv, AES_BLOCK_SIZE);
-			ret = blkcipher_walk_done(desc, walk, nbytes - n);
+			ret = blkcipher_walk_done(desc, walk, nbytes - k);
 		}
 		if (k < n) {
-			if (__ctr_paes_set_key(ctx) != 0) {
+			if (__paes_convert_key(ctx)) {
 				if (locked)
-					spin_unlock(&ctrblk_lock);
+					mutex_unlock(&ctrblk_lock);
 				return blkcipher_walk_done(desc, walk, -EIO);
 			}
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 	}
 	if (locked)
-		spin_unlock(&ctrblk_lock);
+		mutex_unlock(&ctrblk_lock);
 	/*
 	 * final block may be < AES_BLOCK_SIZE, copy only nbytes
 	 */
 	if (nbytes) {
 		while (1) {
-			if (cpacf_kmctr(ctx->fc | modifier,
-					ctx->pk.protkey, buf,
+			if (cpacf_kmctr(ctx->fc | modifier, &param, buf,
 					walk->src.virt.addr, AES_BLOCK_SIZE,
 					walk->iv) == AES_BLOCK_SIZE)
 				break;
-			if (__ctr_paes_set_key(ctx) != 0)
+			if (__paes_convert_key(ctx))
 				return blkcipher_walk_done(desc, walk, -EIO);
+			spin_lock_bh(&ctx->pk_lock);
+			memcpy(param.key, ctx->pk.protkey, MAXPROTKEYSIZE);
+			spin_unlock_bh(&ctx->pk_lock);
 		}
 		memcpy(walk->dst.virt.addr, buf, nbytes);
 		crypto_inc(walk->iv, AES_BLOCK_SIZE);
@@ -697,12 +806,12 @@
 
 static void paes_s390_fini(void)
 {
-	if (ctrblk)
-		free_page((unsigned long) ctrblk);
 	__crypto_unregister_alg(&ctr_paes_alg);
 	__crypto_unregister_alg(&xts_paes_alg);
 	__crypto_unregister_alg(&cbc_paes_alg);
 	__crypto_unregister_alg(&ecb_paes_alg);
+	if (ctrblk)
+		free_page((unsigned long) ctrblk);
 }
 
 static int __init paes_s390_init(void)
@@ -740,14 +849,14 @@
 	if (cpacf_test_func(&kmctr_functions, CPACF_KMCTR_PAES_128) ||
 	    cpacf_test_func(&kmctr_functions, CPACF_KMCTR_PAES_192) ||
 	    cpacf_test_func(&kmctr_functions, CPACF_KMCTR_PAES_256)) {
-		ret = crypto_register_alg(&ctr_paes_alg);
-		if (ret)
-			goto out_err;
 		ctrblk = (u8 *) __get_free_page(GFP_KERNEL);
 		if (!ctrblk) {
 			ret = -ENOMEM;
 			goto out_err;
 		}
+		ret = crypto_register_alg(&ctr_paes_alg);
+		if (ret)
+			goto out_err;
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/arch/s390/crypto/sha_common.c
+++ linux-ein-5.4.0/arch/s390/crypto/sha_common.c
@@ -74,14 +74,17 @@
 	struct s390_sha_ctx *ctx = shash_desc_ctx(desc);
 	unsigned int bsize = crypto_shash_blocksize(desc->tfm);
 	u64 bits;
-	unsigned int n, mbl_offset;
+	unsigned int n;
+	int mbl_offset;
 
 	n = ctx->count % bsize;
 	bits = ctx->count * 8;
-	mbl_offset = s390_crypto_shash_parmsize(ctx->func) / sizeof(u32);
+	mbl_offset = s390_crypto_shash_parmsize(ctx->func);
 	if (mbl_offset < 0)
 		return -EINVAL;
 
+	mbl_offset = mbl_offset / sizeof(u32);
+
 	/* set total msg bit length (mbl) in CPACF parmblock */
 	switch (ctx->func) {
 	case CPACF_KLMD_SHA_1:
--- linux-ein-5.4.0.orig/arch/s390/hypfs/hypfs_diag.c
+++ linux-ein-5.4.0/arch/s390/hypfs/hypfs_diag.c
@@ -437,7 +437,7 @@
 	int rc;
 
 	if (diag204_probe()) {
-		pr_err("The hardware system does not support hypfs\n");
+		pr_info("The hardware system does not support hypfs\n");
 		return -ENODATA;
 	}
 
--- linux-ein-5.4.0.orig/arch/s390/hypfs/hypfs_vm.c
+++ linux-ein-5.4.0/arch/s390/hypfs/hypfs_vm.c
@@ -20,6 +20,7 @@
 
 static char local_guest[] = "        ";
 static char all_guests[] = "*       ";
+static char *all_groups = all_guests;
 static char *guest_query;
 
 struct diag2fc_data {
@@ -62,10 +63,11 @@
 
 	memcpy(parm_list.userid, query, NAME_LEN);
 	ASCEBC(parm_list.userid, NAME_LEN);
-	parm_list.addr = (unsigned long) addr ;
+	memcpy(parm_list.aci_grp, all_groups, NAME_LEN);
+	ASCEBC(parm_list.aci_grp, NAME_LEN);
+	parm_list.addr = (unsigned long)addr;
 	parm_list.size = size;
 	parm_list.fmt = 0x02;
-	memset(parm_list.aci_grp, 0x40, NAME_LEN);
 	rc = -1;
 
 	diag_stat_inc(DIAG_STAT_X2FC);
--- linux-ein-5.4.0.orig/arch/s390/hypfs/inode.c
+++ linux-ein-5.4.0/arch/s390/hypfs/inode.c
@@ -501,9 +501,9 @@
 	hypfs_vm_exit();
 fail_hypfs_diag_exit:
 	hypfs_diag_exit();
+	pr_err("Initialization of hypfs failed with rc=%i\n", rc);
 fail_dbfs_exit:
 	hypfs_dbfs_exit();
-	pr_err("Initialization of hypfs failed with rc=%i\n", rc);
 	return rc;
 }
 device_initcall(hypfs_init)
--- linux-ein-5.4.0.orig/arch/s390/include/asm/archrandom.h
+++ linux-ein-5.4.0/arch/s390/include/asm/archrandom.h
@@ -2,7 +2,7 @@
 /*
  * Kernel interface for the s390 arch_random_* functions
  *
- * Copyright IBM Corp. 2017
+ * Copyright IBM Corp. 2017, 2022
  *
  * Author: Harald Freudenberger <freude@de.ibm.com>
  *
@@ -14,47 +14,41 @@
 #ifdef CONFIG_ARCH_RANDOM
 
 #include <linux/static_key.h>
+#include <linux/preempt.h>
 #include <linux/atomic.h>
+#include <asm/cpacf.h>
 
 DECLARE_STATIC_KEY_FALSE(s390_arch_random_available);
 extern atomic64_t s390_arch_random_counter;
 
-bool s390_arch_random_generate(u8 *buf, unsigned int nbytes);
-
-static inline bool arch_has_random(void)
-{
-	return false;
-}
-
-static inline bool arch_has_random_seed(void)
-{
-	if (static_branch_likely(&s390_arch_random_available))
-		return true;
-	return false;
-}
-
-static inline bool arch_get_random_long(unsigned long *v)
+static inline bool __must_check arch_get_random_long(unsigned long *v)
 {
 	return false;
 }
 
-static inline bool arch_get_random_int(unsigned int *v)
+static inline bool __must_check arch_get_random_int(unsigned int *v)
 {
 	return false;
 }
 
-static inline bool arch_get_random_seed_long(unsigned long *v)
+static inline bool __must_check arch_get_random_seed_long(unsigned long *v)
 {
-	if (static_branch_likely(&s390_arch_random_available)) {
-		return s390_arch_random_generate((u8 *)v, sizeof(*v));
+	if (static_branch_likely(&s390_arch_random_available) &&
+	    in_task()) {
+		cpacf_trng(NULL, 0, (u8 *)v, sizeof(*v));
+		atomic64_add(sizeof(*v), &s390_arch_random_counter);
+		return true;
 	}
 	return false;
 }
 
-static inline bool arch_get_random_seed_int(unsigned int *v)
+static inline bool __must_check arch_get_random_seed_int(unsigned int *v)
 {
-	if (static_branch_likely(&s390_arch_random_available)) {
-		return s390_arch_random_generate((u8 *)v, sizeof(*v));
+	if (static_branch_likely(&s390_arch_random_available) &&
+	    in_task()) {
+		cpacf_trng(NULL, 0, (u8 *)v, sizeof(*v));
+		atomic64_add(sizeof(*v), &s390_arch_random_counter);
+		return true;
 	}
 	return false;
 }
--- linux-ein-5.4.0.orig/arch/s390/include/asm/cpu_mf.h
+++ linux-ein-5.4.0/arch/s390/include/asm/cpu_mf.h
@@ -109,7 +109,9 @@
 	unsigned int AS:2;	    /* 29-30 PSW address-space control	 */
 	unsigned int I:1;	    /* 31 entry valid or invalid	 */
 	unsigned int CL:2;	    /* 32-33 Configuration Level	 */
-	unsigned int:14;
+	unsigned int H:1;	    /* 34 Host Indicator		 */
+	unsigned int LS:1;	    /* 35 Limited Sampling		 */
+	unsigned int:12;
 	unsigned int prim_asn:16;   /* primary ASN			 */
 	unsigned long long ia;	    /* Instruction Address		 */
 	unsigned long long gpp;     /* Guest Program Parameter		 */
--- linux-ein-5.4.0.orig/arch/s390/include/asm/ctl_reg.h
+++ linux-ein-5.4.0/arch/s390/include/asm/ctl_reg.h
@@ -11,6 +11,8 @@
 #include <linux/bits.h>
 
 #define CR0_CLOCK_COMPARATOR_SIGN	BIT(63 - 10)
+#define CR0_FETCH_PROTECTION_OVERRIDE	BIT(63 - 38)
+#define CR0_STORAGE_PROTECTION_OVERRIDE	BIT(63 - 39)
 #define CR0_EMERGENCY_SIGNAL_SUBMASK	BIT(63 - 49)
 #define CR0_EXTERNAL_CALL_SUBMASK	BIT(63 - 50)
 #define CR0_CLOCK_COMPARATOR_SUBMASK	BIT(63 - 52)
--- linux-ein-5.4.0.orig/arch/s390/include/asm/debug.h
+++ linux-ein-5.4.0/arch/s390/include/asm/debug.h
@@ -4,8 +4,8 @@
  *
  *    Copyright IBM Corp. 1999, 2000
  */
-#ifndef DEBUG_H
-#define DEBUG_H
+#ifndef _ASM_S390_DEBUG_H
+#define _ASM_S390_DEBUG_H
 
 #include <linux/string.h>
 #include <linux/spinlock.h>
@@ -416,4 +416,4 @@
 #define PRINT_FATAL(x...)	printk(KERN_DEBUG PRINTK_HEADER x)
 #endif /* DASD_DEBUG */
 
-#endif /* DEBUG_H */
+#endif /* _ASM_S390_DEBUG_H */
--- linux-ein-5.4.0.orig/arch/s390/include/asm/diag.h
+++ linux-ein-5.4.0/arch/s390/include/asm/diag.h
@@ -298,10 +298,8 @@
 union diag318_info {
 	unsigned long val;
 	struct {
-		unsigned int cpnc : 8;
-		unsigned int cpvc_linux : 24;
-		unsigned char cpvc_distro[3];
-		unsigned char zero;
+		unsigned long cpnc : 8;
+		unsigned long cpvc : 56;
 	};
 };
 
--- linux-ein-5.4.0.orig/arch/s390/include/asm/ftrace.h
+++ linux-ein-5.4.0/arch/s390/include/asm/ftrace.h
@@ -27,6 +27,7 @@
 
 extern char ftrace_graph_caller_end;
 extern unsigned long ftrace_plt;
+extern void *ftrace_func;
 
 struct dyn_arch_ftrace { };
 
--- linux-ein-5.4.0.orig/arch/s390/include/asm/futex.h
+++ linux-ein-5.4.0/arch/s390/include/asm/futex.h
@@ -16,7 +16,8 @@
 		"3: jl    1b\n"						\
 		"   lhi   %0,0\n"					\
 		"4: sacf  768\n"					\
-		EX_TABLE(0b,4b) EX_TABLE(2b,4b) EX_TABLE(3b,4b)		\
+		EX_TABLE(0b,4b) EX_TABLE(1b,4b)				\
+		EX_TABLE(2b,4b) EX_TABLE(3b,4b)				\
 		: "=d" (ret), "=&d" (oldval), "=&d" (newval),		\
 		  "=m" (*uaddr)						\
 		: "0" (-EFAULT), "d" (oparg), "a" (uaddr),		\
--- linux-ein-5.4.0.orig/arch/s390/include/asm/gmap.h
+++ linux-ein-5.4.0/arch/s390/include/asm/gmap.h
@@ -9,6 +9,7 @@
 #ifndef _ASM_S390_GMAP_H
 #define _ASM_S390_GMAP_H
 
+#include <linux/radix-tree.h>
 #include <linux/refcount.h>
 
 /* Generic bits for GMAP notification on DAT table entry changes. */
@@ -31,6 +32,7 @@
  * @table: pointer to the page directory
  * @asce: address space control element for gmap page table
  * @pfault_enabled: defines if pfaults are applicable for the guest
+ * @guest_handle: protected virtual machine handle for the ultravisor
  * @host_to_rmap: radix tree with gmap_rmap lists
  * @children: list of shadow gmap structures
  * @pt_list: list of all page tables used in the shadow guest address space
@@ -54,6 +56,8 @@
 	unsigned long asce_end;
 	void *private;
 	bool pfault_enabled;
+	/* only set for protected virtual machines */
+	unsigned long guest_handle;
 	/* Additional data for shadow guest address spaces */
 	struct radix_tree_root host_to_rmap;
 	struct list_head children;
@@ -144,4 +148,6 @@
 
 void gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long dirty_bitmap[4],
 			     unsigned long gaddr, unsigned long vmaddr);
+int gmap_mark_unmergeable(void);
+void s390_reset_acc(struct mm_struct *mm);
 #endif /* _ASM_S390_GMAP_H */
--- linux-ein-5.4.0.orig/arch/s390/include/asm/hugetlb.h
+++ linux-ein-5.4.0/arch/s390/include/asm/hugetlb.h
@@ -35,9 +35,11 @@
 static inline int prepare_hugepage_range(struct file *file,
 			unsigned long addr, unsigned long len)
 {
-	if (len & ~HPAGE_MASK)
+	struct hstate *h = hstate_file(file);
+
+	if (len & ~huge_page_mask(h))
 		return -EINVAL;
-	if (addr & ~HPAGE_MASK)
+	if (addr & ~huge_page_mask(h))
 		return -EINVAL;
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/s390/include/asm/ipl.h
+++ linux-ein-5.4.0/arch/s390/include/asm/ipl.h
@@ -21,6 +21,7 @@
 		struct ipl_pb0_common common;
 		struct ipl_pb0_fcp fcp;
 		struct ipl_pb0_ccw ccw;
+		struct ipl_pb0_nvme nvme;
 		char raw[PAGE_SIZE - sizeof(struct ipl_pl_hdr)];
 	};
 } __packed __aligned(PAGE_SIZE);
@@ -30,6 +31,11 @@
 #define IPL_BP_FCP_LEN (sizeof(struct ipl_pl_hdr) + \
 			      sizeof(struct ipl_pb0_fcp))
 #define IPL_BP0_FCP_LEN (sizeof(struct ipl_pb0_fcp))
+
+#define IPL_BP_NVME_LEN (sizeof(struct ipl_pl_hdr) + \
+			      sizeof(struct ipl_pb0_nvme))
+#define IPL_BP0_NVME_LEN (sizeof(struct ipl_pb0_nvme))
+
 #define IPL_BP_CCW_LEN (sizeof(struct ipl_pl_hdr) + \
 			      sizeof(struct ipl_pb0_ccw))
 #define IPL_BP0_CCW_LEN (sizeof(struct ipl_pb0_ccw))
@@ -59,6 +65,7 @@
 	IPL_TYPE_FCP		= 4,
 	IPL_TYPE_FCP_DUMP	= 8,
 	IPL_TYPE_NSS		= 16,
+	IPL_TYPE_NVME		= 32,
 };
 
 struct ipl_info
@@ -74,6 +81,10 @@
 			u64 lun;
 		} fcp;
 		struct {
+			u32 fid;
+			u32 nsid;
+		} nvme;
+		struct {
 			char name[NSS_NAME_SIZE + 1];
 		} nss;
 	} data;
@@ -109,6 +120,7 @@
 			     unsigned char flags, unsigned short cert);
 int ipl_report_add_certificate(struct ipl_report *report, void *key,
 			       unsigned long addr, unsigned long len);
+bool ipl_get_secureboot(void);
 
 /*
  * DIAG 308 support
--- linux-ein-5.4.0.orig/arch/s390/include/asm/kexec.h
+++ linux-ein-5.4.0/arch/s390/include/asm/kexec.h
@@ -9,6 +9,8 @@
 #ifndef _S390_KEXEC_H
 #define _S390_KEXEC_H
 
+#include <linux/module.h>
+
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/setup.h>
@@ -74,7 +76,21 @@
 int arch_kexec_do_relocs(int r_type, void *loc, unsigned long val,
 			 unsigned long addr);
 
+#define ARCH_HAS_KIMAGE_ARCH
+
+struct kimage_arch {
+	void *ipl_buf;
+};
+
 extern const struct kexec_file_ops s390_kexec_image_ops;
 extern const struct kexec_file_ops s390_kexec_elf_ops;
 
+#ifdef CONFIG_KEXEC_FILE
+struct purgatory_info;
+int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
+				     Elf_Shdr *section,
+				     const Elf_Shdr *relsec,
+				     const Elf_Shdr *symtab);
+#define arch_kexec_apply_relocations_add arch_kexec_apply_relocations_add
+#endif
 #endif /*_S390_KEXEC_H */
--- linux-ein-5.4.0.orig/arch/s390/include/asm/kprobes.h
+++ linux-ein-5.4.0/arch/s390/include/asm/kprobes.h
@@ -54,7 +54,6 @@
 struct arch_specific_insn {
 	/* copy of original instruction */
 	kprobe_opcode_t *insn;
-	unsigned int is_ftrace_insn : 1;
 };
 
 struct prev_kprobe {
--- linux-ein-5.4.0.orig/arch/s390/include/asm/kvm_host.h
+++ linux-ein-5.4.0/arch/s390/include/asm/kvm_host.h
@@ -31,12 +31,12 @@
 #define KVM_USER_MEM_SLOTS 32
 
 /*
- * These seem to be used for allocating ->chip in the routing table,
- * which we don't use. 4096 is an out-of-thin-air value. If we need
- * to look at ->chip later on, we'll need to revisit this.
+ * These seem to be used for allocating ->chip in the routing table, which we
+ * don't use. 1 is as small as we can get to reduce the needed memory. If we
+ * need to look at ->chip later on, we'll need to revisit this.
  */
 #define KVM_NR_IRQCHIPS 1
-#define KVM_IRQCHIP_NUM_PINS 4096
+#define KVM_IRQCHIP_NUM_PINS 1
 #define KVM_HALT_POLL_NS_DEFAULT 50000
 
 /* s390-specific vcpu->requests bit members */
@@ -122,6 +122,17 @@
 	__u32 reserved;
 };
 
+#define CR0_INITIAL_MASK (CR0_UNUSED_56 | CR0_INTERRUPT_KEY_SUBMASK | \
+			  CR0_MEASUREMENT_ALERT_SUBMASK)
+#define CR14_INITIAL_MASK (CR14_UNUSED_32 | CR14_UNUSED_33 | \
+			   CR14_EXTERNAL_DAMAGE_SUBMASK)
+
+#define SIDAD_SIZE_MASK		0xff
+#define sida_origin(sie_block) \
+	((sie_block)->sidad & PAGE_MASK)
+#define sida_size(sie_block) \
+	((((sie_block)->sidad & SIDAD_SIZE_MASK) + 1) * PAGE_SIZE)
+
 #define CPUSTAT_STOPPED    0x80000000
 #define CPUSTAT_WAIT       0x10000000
 #define CPUSTAT_ECALL_PEND 0x08000000
@@ -155,7 +166,13 @@
 	__u8	reserved08[4];		/* 0x0008 */
 #define PROG_IN_SIE (1<<0)
 	__u32	prog0c;			/* 0x000c */
-	__u8	reserved10[16];		/* 0x0010 */
+	union {
+		__u8	reserved10[16];		/* 0x0010 */
+		struct {
+			__u64	pv_handle_cpu;
+			__u64	pv_handle_config;
+		};
+	};
 #define PROG_BLOCK_SIE	(1<<0)
 #define PROG_REQUEST	(1<<1)
 	atomic_t prog20;		/* 0x0020 */
@@ -204,10 +221,23 @@
 #define ICPT_PARTEXEC	0x38
 #define ICPT_IOINST	0x40
 #define ICPT_KSS	0x5c
+#define ICPT_MCHKREQ	0x60
+#define ICPT_INT_ENABLE	0x64
+#define ICPT_PV_INSTR	0x68
+#define ICPT_PV_NOTIFY	0x6c
+#define ICPT_PV_PREF	0x70
 	__u8	icptcode;		/* 0x0050 */
 	__u8	icptstatus;		/* 0x0051 */
 	__u16	ihcpu;			/* 0x0052 */
-	__u8	reserved54[2];		/* 0x0054 */
+	__u8	reserved54;		/* 0x0054 */
+#define IICTL_CODE_NONE		 0x00
+#define IICTL_CODE_MCHK		 0x01
+#define IICTL_CODE_EXT		 0x02
+#define IICTL_CODE_IO		 0x03
+#define IICTL_CODE_RESTART	 0x04
+#define IICTL_CODE_SPECIFICATION 0x10
+#define IICTL_CODE_OPERAND	 0x11
+	__u8	iictl;			/* 0x0055 */
 	__u16	ipa;			/* 0x0056 */
 	__u32	ipb;			/* 0x0058 */
 	__u32	scaoh;			/* 0x005c */
@@ -228,9 +258,10 @@
 #define ECB3_RI  0x01
 	__u8    ecb3;			/* 0x0063 */
 	__u32	scaol;			/* 0x0064 */
-	__u8	reserved68;		/* 0x0068 */
+	__u8	sdf;			/* 0x0068 */
 	__u8    epdx;			/* 0x0069 */
-	__u8    reserved6a[2];		/* 0x006a */
+	__u8	cpnc;			/* 0x006a */
+	__u8	reserved6b;		/* 0x006b */
 	__u32	todpr;			/* 0x006c */
 #define GISA_FORMAT1 0x00000001
 	__u32	gd;			/* 0x0070 */
@@ -244,31 +275,58 @@
 #define HPID_KVM	0x4
 #define HPID_VSIE	0x5
 	__u8	hpid;			/* 0x00b8 */
-	__u8	reservedb9[11];		/* 0x00b9 */
-	__u16	extcpuaddr;		/* 0x00c4 */
-	__u16	eic;			/* 0x00c6 */
+	__u8	reservedb9[7];		/* 0x00b9 */
+	union {
+		struct {
+			__u32	eiparams;	/* 0x00c0 */
+			__u16	extcpuaddr;	/* 0x00c4 */
+			__u16	eic;		/* 0x00c6 */
+		};
+		__u64	mcic;			/* 0x00c0 */
+	} __packed;
 	__u32	reservedc8;		/* 0x00c8 */
-	__u16	pgmilc;			/* 0x00cc */
-	__u16	iprcc;			/* 0x00ce */
-	__u32	dxc;			/* 0x00d0 */
-	__u16	mcn;			/* 0x00d4 */
-	__u8	perc;			/* 0x00d6 */
-	__u8	peratmid;		/* 0x00d7 */
+	union {
+		struct {
+			__u16	pgmilc;		/* 0x00cc */
+			__u16	iprcc;		/* 0x00ce */
+		};
+		__u32	edc;			/* 0x00cc */
+	} __packed;
+	union {
+		struct {
+			__u32	dxc;		/* 0x00d0 */
+			__u16	mcn;		/* 0x00d4 */
+			__u8	perc;		/* 0x00d6 */
+			__u8	peratmid;	/* 0x00d7 */
+		};
+		__u64	faddr;			/* 0x00d0 */
+	} __packed;
 	__u64	peraddr;		/* 0x00d8 */
 	__u8	eai;			/* 0x00e0 */
 	__u8	peraid;			/* 0x00e1 */
 	__u8	oai;			/* 0x00e2 */
 	__u8	armid;			/* 0x00e3 */
 	__u8	reservede4[4];		/* 0x00e4 */
-	__u64	tecmc;			/* 0x00e8 */
-	__u8	reservedf0[12];		/* 0x00f0 */
+	union {
+		__u64	tecmc;		/* 0x00e8 */
+		struct {
+			__u16	subchannel_id;	/* 0x00e8 */
+			__u16	subchannel_nr;	/* 0x00ea */
+			__u32	io_int_parm;	/* 0x00ec */
+			__u32	io_int_word;	/* 0x00f0 */
+		};
+	} __packed;
+	__u8	reservedf4[8];		/* 0x00f4 */
 #define CRYCB_FORMAT_MASK 0x00000003
 #define CRYCB_FORMAT0 0x00000000
 #define CRYCB_FORMAT1 0x00000001
 #define CRYCB_FORMAT2 0x00000003
 	__u32	crycbd;			/* 0x00fc */
 	__u64	gcr[16];		/* 0x0100 */
-	__u64	gbea;			/* 0x0180 */
+	union {
+		__u64	gbea;		/* 0x0180 */
+		__u64	sidad;
+	};
 	__u8    reserved188[8];		/* 0x0188 */
 	__u64   sdnxo;			/* 0x0190 */
 	__u8    reserved198[8];		/* 0x0198 */
@@ -296,7 +354,9 @@
 struct sie_page {
 	struct kvm_s390_sie_block sie_block;
 	struct mcck_volatile_info mcck_info;	/* 0x0200 */
-	__u8 reserved218[1000];		/* 0x0218 */
+	__u8 reserved218[360];		/* 0x0218 */
+	__u64 pv_grregs[16];		/* 0x0380 */
+	__u8 reserved400[512];		/* 0x0400 */
 	struct kvm_s390_itdb itdb;	/* 0x0600 */
 	__u8 reserved700[2304];		/* 0x0700 */
 };
@@ -470,6 +530,7 @@
 	IRQ_PEND_PFAULT_INIT,
 	IRQ_PEND_EXT_HOST,
 	IRQ_PEND_EXT_SERVICE,
+	IRQ_PEND_EXT_SERVICE_EV,
 	IRQ_PEND_EXT_TIMING,
 	IRQ_PEND_EXT_CPU_TIMER,
 	IRQ_PEND_EXT_CLOCK_COMP,
@@ -514,6 +575,7 @@
 			   (1UL << IRQ_PEND_EXT_TIMING)     | \
 			   (1UL << IRQ_PEND_EXT_HOST)       | \
 			   (1UL << IRQ_PEND_EXT_SERVICE)    | \
+			   (1UL << IRQ_PEND_EXT_SERVICE_EV) | \
 			   (1UL << IRQ_PEND_VIRTIO)         | \
 			   (1UL << IRQ_PEND_PFAULT_INIT)    | \
 			   (1UL << IRQ_PEND_PFAULT_DONE))
@@ -530,6 +592,13 @@
 #define IRQ_PEND_MCHK_MASK ((1UL << IRQ_PEND_MCHK_REP) | \
 			    (1UL << IRQ_PEND_MCHK_EX))
 
+#define IRQ_PEND_EXT_II_MASK ((1UL << IRQ_PEND_EXT_CPU_TIMER)  | \
+			      (1UL << IRQ_PEND_EXT_CLOCK_COMP) | \
+			      (1UL << IRQ_PEND_EXT_EMERGENCY)  | \
+			      (1UL << IRQ_PEND_EXT_EXTERNAL)   | \
+			      (1UL << IRQ_PEND_EXT_SERVICE)    | \
+			      (1UL << IRQ_PEND_EXT_SERVICE_EV))
+
 struct kvm_s390_interrupt_info {
 	struct list_head list;
 	u64	type;
@@ -588,6 +657,7 @@
 
 struct kvm_s390_float_interrupt {
 	unsigned long pending_irqs;
+	unsigned long masked_irqs;
 	spinlock_t lock;
 	struct list_head lists[FIRQ_LIST_COUNT];
 	int counters[FIRQ_MAX_COUNT];
@@ -639,6 +709,11 @@
 	unsigned long last_bp;
 };
 
+struct kvm_s390_pv_vcpu {
+	u64 handle;
+	unsigned long stor_base;
+};
+
 struct kvm_vcpu_arch {
 	struct kvm_s390_sie_block *sie_block;
 	/* if vsie is active, currently executed shadow sie control block */
@@ -667,6 +742,8 @@
 	__u64 cputm_start;
 	bool gs_enabled;
 	bool skey_enabled;
+	struct kvm_s390_pv_vcpu pv;
+	union diag318_info diag318_info;
 };
 
 struct kvm_vm_stat {
@@ -695,9 +772,6 @@
 	bool masked;
 	bool swap;
 	bool suppressible;
-	struct rw_semaphore maps_lock;
-	struct list_head maps;
-	atomic_t nr_maps;
 };
 
 #define MAX_S390_IO_ADAPTERS ((MAX_ISC + 1) * 8)
@@ -840,6 +914,13 @@
 	DECLARE_BITMAP(kicked_mask, KVM_MAX_VCPUS);
 };
 
+struct kvm_s390_pv {
+	u64 handle;
+	u64 guest_len;
+	unsigned long stor_base;
+	void *stor_var;
+};
+
 struct kvm_arch{
 	void *sca;
 	int use_esca;
@@ -873,8 +954,10 @@
 	atomic64_t cmma_dirty_pages;
 	/* subset of available cpu features enabled by user space */
 	DECLARE_BITMAP(cpu_feat, KVM_S390_VM_CPU_FEAT_NR_BITS);
+	/* indexed by vcpu_idx */
 	DECLARE_BITMAP(idle_mask, KVM_MAX_VCPUS);
 	struct kvm_s390_gisa_interrupt gisa_int;
+	struct kvm_s390_pv pv;
 };
 
 #define KVM_HVA_ERR_BAD		(-1UL)
--- linux-ein-5.4.0.orig/arch/s390/include/asm/lowcore.h
+++ linux-ein-5.4.0/arch/s390/include/asm/lowcore.h
@@ -141,7 +141,9 @@
 
 	/* br %r1 trampoline */
 	__u16	br_r1_trampoline;		/* 0x0400 */
-	__u8	pad_0x0402[0x0e00-0x0402];	/* 0x0402 */
+	__u32	return_lpswe;			/* 0x0402 */
+	__u32	return_mcck_lpswe;		/* 0x0406 */
+	__u8	pad_0x040a[0x0e00-0x040a];	/* 0x040a */
 
 	/*
 	 * 0xe00 contains the address of the IPL Parameter Information
--- linux-ein-5.4.0.orig/arch/s390/include/asm/mmu.h
+++ linux-ein-5.4.0/arch/s390/include/asm/mmu.h
@@ -16,6 +16,8 @@
 	unsigned long asce;
 	unsigned long asce_limit;
 	unsigned long vdso_base;
+	/* The mmu context belongs to a secure guest. */
+	atomic_t is_protected;
 	/*
 	 * The following bitfields need a down_write on the mm
 	 * semaphore when they are written to. As they are only
--- linux-ein-5.4.0.orig/arch/s390/include/asm/mmu_context.h
+++ linux-ein-5.4.0/arch/s390/include/asm/mmu_context.h
@@ -23,6 +23,7 @@
 	INIT_LIST_HEAD(&mm->context.gmap_list);
 	cpumask_clear(&mm->context.cpu_attach_mask);
 	atomic_set(&mm->context.flush_count, 0);
+	atomic_set(&mm->context.is_protected, 0);
 	mm->context.gmap_asce = 0;
 	mm->context.flush_mm = 0;
 	mm->context.compat_mm = test_thread_flag(TIF_31BIT);
--- linux-ein-5.4.0.orig/arch/s390/include/asm/numa.h
+++ linux-ein-5.4.0/arch/s390/include/asm/numa.h
@@ -17,7 +17,6 @@
 
 void numa_setup(void);
 int numa_pfn_to_nid(unsigned long pfn);
-int __node_distance(int a, int b);
 void numa_update_cpu_topology(void);
 
 extern cpumask_t node_to_cpumask_map[MAX_NUMNODES];
--- linux-ein-5.4.0.orig/arch/s390/include/asm/page.h
+++ linux-ein-5.4.0/arch/s390/include/asm/page.h
@@ -20,6 +20,8 @@
 #define PAGE_SIZE	_PAGE_SIZE
 #define PAGE_MASK	_PAGE_MASK
 #define PAGE_DEFAULT_ACC	0
+/* storage-protection override */
+#define PAGE_SPO_ACC		9
 #define PAGE_DEFAULT_KEY	(PAGE_DEFAULT_ACC << 4)
 
 #define HPAGE_SHIFT	20
@@ -33,6 +35,8 @@
 #define ARCH_HAS_PREPARE_HUGEPAGE
 #define ARCH_HAS_HUGEPAGE_CLEAR_FLUSH
 
+#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
+
 #include <asm/setup.h>
 #ifndef __ASSEMBLY__
 
@@ -40,7 +44,7 @@
 
 static inline void storage_key_init_range(unsigned long start, unsigned long end)
 {
-	if (PAGE_DEFAULT_KEY)
+	if (PAGE_DEFAULT_KEY != 0)
 		__storage_key_init_range(start, end);
 }
 
@@ -151,6 +155,11 @@
 #define HAVE_ARCH_FREE_PAGE
 #define HAVE_ARCH_ALLOC_PAGE
 
+#if IS_ENABLED(CONFIG_PGSTE)
+int arch_make_page_accessible(struct page *page);
+#define HAVE_ARCH_MAKE_PAGE_ACCESSIBLE
+#endif
+
 #endif /* !__ASSEMBLY__ */
 
 #define __PAGE_OFFSET		0x0UL
--- linux-ein-5.4.0.orig/arch/s390/include/asm/pci.h
+++ linux-ein-5.4.0/arch/s390/include/asm/pci.h
@@ -8,6 +8,7 @@
 #include <linux/pci.h>
 #include <linux/mutex.h>
 #include <linux/iommu.h>
+#include <linux/pci_hotplug.h>
 #include <asm-generic/pci.h>
 #include <asm/pci_clp.h>
 #include <asm/pci_debug.h>
@@ -24,10 +25,16 @@
 int pci_proc_domain(struct pci_bus *);
 
 #define ZPCI_BUS_NR			0	/* default bus number */
-#define ZPCI_DEVFN			0	/* default device number */
 
 #define ZPCI_NR_DMA_SPACES		1
 #define ZPCI_NR_DEVICES			CONFIG_PCI_NR_FUNCTIONS
+#define ZPCI_DOMAIN_BITMAP_SIZE		(1 << 16)
+
+#ifdef PCI
+#if (ZPCI_NR_DEVICES > ZPCI_DOMAIN_BITMAP_SIZE)
+# error ZPCI_NR_DEVICES can not be bigger than ZPCI_DOMAIN_BITMAP_SIZE
+#endif
+#endif /* PCI */
 
 /* PCI Function Controls */
 #define ZPCI_FC_FN_ENABLED		0x80
@@ -95,10 +102,26 @@
 
 struct s390_domain;
 
+#define ZPCI_FUNCTIONS_PER_BUS 256
+struct zpci_bus {
+	struct kref		kref;
+	struct pci_bus		*bus;
+	struct zpci_dev		*function[ZPCI_FUNCTIONS_PER_BUS];
+	struct list_head	resources;
+	struct list_head	bus_next;
+	int			pchid;
+	int			domain_nr;
+	bool			multifunction;
+	enum pci_bus_speed	max_bus_speed;
+};
+
 /* Private data per function */
 struct zpci_dev {
-	struct pci_bus	*bus;
+	struct zpci_bus *zbus;
 	struct list_head entry;		/* list of all zpci_devices, needed for hotplug, etc. */
+	struct list_head bus_next;
+	struct kref kref;
+	struct hotplug_slot hotplug_slot;
 
 	enum zpci_state state;
 	u32		fid;		/* function ID, used by sclp */
@@ -107,7 +130,12 @@
 	u16		pchid;		/* physical channel ID */
 	u8		pfgid;		/* function group ID */
 	u8		pft;		/* pci function type */
-	u16		domain;
+	u8		port;
+	u8		rid_available	: 1;
+	u8		has_hp_slot	: 1;
+	u8		is_physfn	: 1;
+	u8		reserved	: 5;
+	unsigned int	devfn;		/* DEVFN part of the RID*/
 
 	struct mutex lock;
 	u8 pfip[CLP_PFIP_NR_SEGMENTS];	/* pci function internal path */
@@ -167,15 +195,19 @@
 
 extern const struct attribute_group *zpci_attr_groups[];
 extern unsigned int s390_pci_force_floating __initdata;
+extern unsigned int s390_pci_no_rid;
 
 /* -----------------------------------------------------------------------------
   Prototypes
 ----------------------------------------------------------------------------- */
 /* Base stuff */
-int zpci_create_device(struct zpci_dev *);
-void zpci_remove_device(struct zpci_dev *zdev);
+int zpci_create_device(struct zpci_dev *zdev);
+void zpci_remove_device(struct zpci_dev *zdev, bool set_error);
 int zpci_enable_device(struct zpci_dev *);
 int zpci_disable_device(struct zpci_dev *);
+void zpci_device_reserved(struct zpci_dev *zdev);
+bool zpci_is_device_configured(struct zpci_dev *zdev);
+
 int zpci_register_ioat(struct zpci_dev *, u8, u64, u64, u64);
 int zpci_unregister_ioat(struct zpci_dev *, u8);
 void zpci_remove_reserved_devices(void);
@@ -183,12 +215,15 @@
 /* CLP */
 int clp_scan_pci_devices(void);
 int clp_rescan_pci_devices(void);
-int clp_rescan_pci_devices_simple(void);
+int clp_rescan_pci_devices_simple(u32 *fid);
 int clp_add_pci_device(u32, u32, int);
 int clp_enable_fh(struct zpci_dev *, u8);
 int clp_disable_fh(struct zpci_dev *);
 int clp_get_state(u32 fid, enum zpci_state *state);
 
+/* UID */
+void update_uid_checking(bool new);
+
 /* IOMMU Interface */
 int zpci_init_iommu(struct zpci_dev *zdev);
 void zpci_destroy_iommu(struct zpci_dev *zdev);
@@ -224,7 +259,14 @@
 /* Helpers */
 static inline struct zpci_dev *to_zpci(struct pci_dev *pdev)
 {
-	return pdev->sysdata;
+	struct zpci_bus *zbus = pdev->sysdata;
+
+	return zbus->function[pdev->devfn];
+}
+
+static inline struct zpci_dev *to_zpci_dev(struct device *dev)
+{
+	return to_zpci(to_pci_dev(dev));
 }
 
 struct zpci_dev *get_zdev_by_fid(u32);
--- linux-ein-5.4.0.orig/arch/s390/include/asm/pci_clp.h
+++ linux-ein-5.4.0/arch/s390/include/asm/pci_clp.h
@@ -93,7 +93,10 @@
 struct clp_rsp_query_pci {
 	struct clp_rsp_hdr hdr;
 	u16 vfn;			/* virtual fn number */
-	u16			:  6;
+	u16			:  3;
+	u16 rid_avail		:  1;
+	u16 is_physfn		:  1;
+	u16 reserved1		:  1;
 	u16 mio_addr_avail	:  1;
 	u16 util_str_avail	:  1;	/* utility string available? */
 	u16 pfgid		:  8;	/* pci function group id */
@@ -102,12 +105,16 @@
 	u16 pchid;
 	__le32 bar[PCI_BAR_COUNT];
 	u8 pfip[CLP_PFIP_NR_SEGMENTS];	/* pci function internal path */
-	u32			: 16;
+	u16			: 12;
+	u16 port		:  4;
 	u8 fmb_len;
 	u8 pft;				/* pci function type */
 	u64 sdma;			/* start dma as */
 	u64 edma;			/* end dma as */
-	u32 reserved[11];
+#define ZPCI_RID_MASK_DEVFN 0x00ff
+	u16 rid;			/* BUS/DEVFN PCI address */
+	u16 reserved0;
+	u32 reserved[10];
 	u32 uid;			/* user defined id */
 	u8 util_str[CLP_UTIL_STR_LEN];	/* utility string */
 	u32 reserved2[16];
--- linux-ein-5.4.0.orig/arch/s390/include/asm/pci_io.h
+++ linux-ein-5.4.0/arch/s390/include/asm/pci_io.h
@@ -8,14 +8,19 @@
 #include <linux/slab.h>
 #include <asm/pci_insn.h>
 
+/* I/O size constraints */
+#define ZPCI_MAX_READ_SIZE	8
+#define ZPCI_MAX_WRITE_SIZE	128
+
 /* I/O Map */
 #define ZPCI_IOMAP_SHIFT		48
-#define ZPCI_IOMAP_ADDR_BASE		0x8000000000000000UL
+#define ZPCI_IOMAP_ADDR_SHIFT		62
+#define ZPCI_IOMAP_ADDR_BASE		(1UL << ZPCI_IOMAP_ADDR_SHIFT)
 #define ZPCI_IOMAP_ADDR_OFF_MASK	((1UL << ZPCI_IOMAP_SHIFT) - 1)
 #define ZPCI_IOMAP_MAX_ENTRIES							\
-	((ULONG_MAX - ZPCI_IOMAP_ADDR_BASE + 1) / (1UL << ZPCI_IOMAP_SHIFT))
+	(1UL << (ZPCI_IOMAP_ADDR_SHIFT - ZPCI_IOMAP_SHIFT))
 #define ZPCI_IOMAP_ADDR_IDX_MASK						\
-	(~ZPCI_IOMAP_ADDR_OFF_MASK - ZPCI_IOMAP_ADDR_BASE)
+	((ZPCI_IOMAP_ADDR_BASE - 1) & ~ZPCI_IOMAP_ADDR_OFF_MASK)
 
 struct zpci_iomap_entry {
 	u32 fh;
@@ -140,7 +145,8 @@
 
 	while (n > 0) {
 		size = zpci_get_max_write_size((u64 __force) src,
-					       (u64) dst, n, 8);
+					       (u64) dst, n,
+					       ZPCI_MAX_READ_SIZE);
 		rc = zpci_read_single(dst, src, size);
 		if (rc)
 			break;
@@ -161,7 +167,8 @@
 
 	while (n > 0) {
 		size = zpci_get_max_write_size((u64 __force) dst,
-					       (u64) src, n, 128);
+					       (u64) src, n,
+					       ZPCI_MAX_WRITE_SIZE);
 		if (size > 8) /* main path */
 			rc = zpci_write_block(dst, src, size);
 		else
--- linux-ein-5.4.0.orig/arch/s390/include/asm/percpu.h
+++ linux-ein-5.4.0/arch/s390/include/asm/percpu.h
@@ -29,15 +29,15 @@
 	typedef typeof(pcp) pcp_op_T__;					\
 	pcp_op_T__ old__, new__, prev__;				\
 	pcp_op_T__ *ptr__;						\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));					\
-	prev__ = *ptr__;						\
+	prev__ = READ_ONCE(*ptr__);					\
 	do {								\
 		old__ = prev__;						\
 		new__ = old__ op (val);					\
 		prev__ = cmpxchg(ptr__, old__, new__);			\
 	} while (prev__ != old__);					\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	new__;								\
 })
 
@@ -68,7 +68,7 @@
 	typedef typeof(pcp) pcp_op_T__; 				\
 	pcp_op_T__ val__ = (val);					\
 	pcp_op_T__ old__, *ptr__;					\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp)); 				\
 	if (__builtin_constant_p(val__) &&				\
 	    ((szcast)val__ > -129) && ((szcast)val__ < 128)) {		\
@@ -84,7 +84,7 @@
 			: [val__] "d" (val__)				\
 			: "cc");					\
 	}								\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 }
 
 #define this_cpu_add_4(pcp, val) arch_this_cpu_add(pcp, val, "laa", "asi", int)
@@ -95,14 +95,14 @@
 	typedef typeof(pcp) pcp_op_T__; 				\
 	pcp_op_T__ val__ = (val);					\
 	pcp_op_T__ old__, *ptr__;					\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));	 				\
 	asm volatile(							\
 		op "    %[old__],%[val__],%[ptr__]\n"			\
 		: [old__] "=d" (old__), [ptr__] "+Q" (*ptr__)		\
 		: [val__] "d" (val__)					\
 		: "cc");						\
-	preempt_enable();						\
+	preempt_enable_notrace();						\
 	old__ + val__;							\
 })
 
@@ -114,14 +114,14 @@
 	typedef typeof(pcp) pcp_op_T__; 				\
 	pcp_op_T__ val__ = (val);					\
 	pcp_op_T__ old__, *ptr__;					\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));	 				\
 	asm volatile(							\
 		op "    %[old__],%[val__],%[ptr__]\n"			\
 		: [old__] "=d" (old__), [ptr__] "+Q" (*ptr__)		\
 		: [val__] "d" (val__)					\
 		: "cc");						\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 }
 
 #define this_cpu_and_4(pcp, val)	arch_this_cpu_to_op(pcp, val, "lan")
@@ -136,10 +136,10 @@
 	typedef typeof(pcp) pcp_op_T__;					\
 	pcp_op_T__ ret__;						\
 	pcp_op_T__ *ptr__;						\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));					\
 	ret__ = cmpxchg(ptr__, oval, nval);				\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	ret__;								\
 })
 
@@ -152,10 +152,10 @@
 ({									\
 	typeof(pcp) *ptr__;						\
 	typeof(pcp) ret__;						\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	ptr__ = raw_cpu_ptr(&(pcp));					\
 	ret__ = xchg(ptr__, nval);					\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	ret__;								\
 })
 
@@ -171,11 +171,11 @@
 	typeof(pcp1) *p1__;						\
 	typeof(pcp2) *p2__;						\
 	int ret__;							\
-	preempt_disable();						\
+	preempt_disable_notrace();					\
 	p1__ = raw_cpu_ptr(&(pcp1));					\
 	p2__ = raw_cpu_ptr(&(pcp2));					\
 	ret__ = __cmpxchg_double(p1__, p2__, o1__, o2__, n1__, n2__);	\
-	preempt_enable();						\
+	preempt_enable_notrace();					\
 	ret__;								\
 })
 
--- linux-ein-5.4.0.orig/arch/s390/include/asm/pgalloc.h
+++ linux-ein-5.4.0/arch/s390/include/asm/pgalloc.h
@@ -56,7 +56,12 @@
 		crst_table_init(table, _REGION2_ENTRY_EMPTY);
 	return (p4d_t *) table;
 }
-#define p4d_free(mm, p4d) crst_table_free(mm, (unsigned long *) p4d)
+
+static inline void p4d_free(struct mm_struct *mm, p4d_t *p4d)
+{
+	if (!mm_p4d_folded(mm))
+		crst_table_free(mm, (unsigned long *) p4d);
+}
 
 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
 {
@@ -65,7 +70,12 @@
 		crst_table_init(table, _REGION3_ENTRY_EMPTY);
 	return (pud_t *) table;
 }
-#define pud_free(mm, pud) crst_table_free(mm, (unsigned long *) pud)
+
+static inline void pud_free(struct mm_struct *mm, pud_t *pud)
+{
+	if (!mm_pud_folded(mm))
+		crst_table_free(mm, (unsigned long *) pud);
+}
 
 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long vmaddr)
 {
@@ -83,6 +93,8 @@
 
 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
 {
+	if (mm_pmd_folded(mm))
+		return;
 	pgtable_pmd_page_dtor(virt_to_page(pmd));
 	crst_table_free(mm, (unsigned long *) pmd);
 }
--- linux-ein-5.4.0.orig/arch/s390/include/asm/pgtable.h
+++ linux-ein-5.4.0/arch/s390/include/asm/pgtable.h
@@ -19,6 +19,7 @@
 #include <linux/atomic.h>
 #include <asm/bug.h>
 #include <asm/page.h>
+#include <asm/uv.h>
 
 extern pgd_t swapper_pg_dir[];
 extern void paging_init(void);
@@ -522,6 +523,15 @@
 	return 0;
 }
 
+static inline int mm_is_protected(struct mm_struct *mm)
+{
+#ifdef CONFIG_PGSTE
+	if (unlikely(atomic_read(&mm->context.is_protected)))
+		return 1;
+#endif
+	return 0;
+}
+
 static inline int mm_alloc_pgste(struct mm_struct *mm)
 {
 #ifdef CONFIG_PGSTE
@@ -756,6 +766,12 @@
 	return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0;
 }
 
+#define pud_write pud_write
+static inline int pud_write(pud_t pud)
+{
+	return (pud_val(pud) & _REGION3_ENTRY_WRITE) != 0;
+}
+
 static inline int pmd_dirty(pmd_t pmd)
 {
 	int dirty = 1;
@@ -1071,7 +1087,12 @@
 static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
 				       unsigned long addr, pte_t *ptep)
 {
-	return ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
+	pte_t res;
+
+	res = ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
+	if (mm_is_protected(mm) && pte_present(res))
+		uv_convert_from_secure(pte_val(res) & PAGE_MASK);
+	return res;
 }
 
 #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION
@@ -1083,7 +1104,12 @@
 static inline pte_t ptep_clear_flush(struct vm_area_struct *vma,
 				     unsigned long addr, pte_t *ptep)
 {
-	return ptep_xchg_direct(vma->vm_mm, addr, ptep, __pte(_PAGE_INVALID));
+	pte_t res;
+
+	res = ptep_xchg_direct(vma->vm_mm, addr, ptep, __pte(_PAGE_INVALID));
+	if (mm_is_protected(vma->vm_mm) && pte_present(res))
+		uv_convert_from_secure(pte_val(res) & PAGE_MASK);
+	return res;
 }
 
 /*
@@ -1098,12 +1124,17 @@
 					    unsigned long addr,
 					    pte_t *ptep, int full)
 {
+	pte_t res;
+
 	if (full) {
-		pte_t pte = *ptep;
+		res = *ptep;
 		*ptep = __pte(_PAGE_INVALID);
-		return pte;
+	} else {
+		res = ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
 	}
-	return ptep_xchg_lazy(mm, addr, ptep, __pte(_PAGE_INVALID));
+	if (mm_is_protected(mm) && pte_present(res))
+		uv_convert_from_secure(pte_val(res) & PAGE_MASK);
+	return res;
 }
 
 #define __HAVE_ARCH_PTEP_SET_WRPROTECT
@@ -1173,8 +1204,6 @@
 static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
 			      pte_t *ptep, pte_t entry)
 {
-	if (!MACHINE_HAS_NX)
-		pte_val(entry) &= ~_PAGE_NOEXEC;
 	if (pte_present(entry))
 		pte_val(entry) &= ~_PAGE_UNUSED;
 	if (mm_has_pgste(mm))
@@ -1191,6 +1220,8 @@
 {
 	pte_t __pte;
 	pte_val(__pte) = physpage + pgprot_val(pgprot);
+	if (!MACHINE_HAS_NX)
+		pte_val(__pte) &= ~_PAGE_NOEXEC;
 	return pte_mkyoung(__pte);
 }
 
@@ -1241,26 +1272,46 @@
 #define pgd_offset(mm, address) pgd_offset_raw(READ_ONCE((mm)->pgd), address)
 #define pgd_offset_k(address) pgd_offset(&init_mm, address)
 
-static inline p4d_t *p4d_offset(pgd_t *pgd, unsigned long address)
+static inline p4d_t *p4d_offset_lockless(pgd_t *pgdp, pgd_t pgd, unsigned long address)
+{
+	if ((pgd_val(pgd) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R1)
+		return (p4d_t *) pgd_deref(pgd) + p4d_index(address);
+	return (p4d_t *) pgdp;
+}
+#define p4d_offset_lockless p4d_offset_lockless
+
+static inline p4d_t *p4d_offset(pgd_t *pgdp, unsigned long address)
+{
+	return p4d_offset_lockless(pgdp, *pgdp, address);
+}
+
+static inline pud_t *pud_offset_lockless(p4d_t *p4dp, p4d_t p4d, unsigned long address)
+{
+	if ((p4d_val(p4d) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R2)
+		return (pud_t *) p4d_deref(p4d) + pud_index(address);
+	return (pud_t *) p4dp;
+}
+#define pud_offset_lockless pud_offset_lockless
+
+static inline pud_t *pud_offset(p4d_t *p4dp, unsigned long address)
 {
-	if ((pgd_val(*pgd) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R1)
-		return (p4d_t *) pgd_deref(*pgd) + p4d_index(address);
-	return (p4d_t *) pgd;
+	return pud_offset_lockless(p4dp, *p4dp, address);
 }
+#define pud_offset pud_offset
 
-static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
+static inline pmd_t *pmd_offset_lockless(pud_t *pudp, pud_t pud, unsigned long address)
 {
-	if ((p4d_val(*p4d) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R2)
-		return (pud_t *) p4d_deref(*p4d) + pud_index(address);
-	return (pud_t *) p4d;
+	if ((pud_val(pud) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R3)
+		return (pmd_t *) pud_deref(pud) + pmd_index(address);
+	return (pmd_t *) pudp;
 }
+#define pmd_offset_lockless pmd_offset_lockless
 
-static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
+static inline pmd_t *pmd_offset(pud_t *pudp, unsigned long address)
 {
-	if ((pud_val(*pud) & _REGION_ENTRY_TYPE_MASK) >= _REGION_ENTRY_TYPE_R3)
-		return (pmd_t *) pud_deref(*pud) + pmd_index(address);
-	return (pmd_t *) pud;
+	return pmd_offset_lockless(pudp, *pudp, address);
 }
+#define pmd_offset pmd_offset
 
 static inline pte_t *pte_offset(pmd_t *pmd, unsigned long address)
 {
--- linux-ein-5.4.0.orig/arch/s390/include/asm/preempt.h
+++ linux-ein-5.4.0/arch/s390/include/asm/preempt.h
@@ -52,10 +52,17 @@
 
 static inline void __preempt_count_add(int val)
 {
-	if (__builtin_constant_p(val) && (val >= -128) && (val <= 127))
-		__atomic_add_const(val, &S390_lowcore.preempt_count);
-	else
-		__atomic_add(val, &S390_lowcore.preempt_count);
+	/*
+	 * With some obscure config options and CONFIG_PROFILE_ALL_BRANCHES
+	 * enabled, gcc 12 fails to handle __builtin_constant_p().
+	 */
+	if (!IS_ENABLED(CONFIG_PROFILE_ALL_BRANCHES)) {
+		if (__builtin_constant_p(val) && (val >= -128) && (val <= 127)) {
+			__atomic_add_const(val, &S390_lowcore.preempt_count);
+			return;
+		}
+	}
+	__atomic_add(val, &S390_lowcore.preempt_count);
 }
 
 static inline void __preempt_count_sub(int val)
--- linux-ein-5.4.0.orig/arch/s390/include/asm/processor.h
+++ linux-ein-5.4.0/arch/s390/include/asm/processor.h
@@ -162,6 +162,7 @@
 #define INIT_THREAD {							\
 	.ksp = sizeof(init_stack) + (unsigned long) &init_stack,	\
 	.fpu.regs = (void *) init_task.thread.fpu.fprs,			\
+	.last_break = 1,						\
 }
 
 /*
@@ -214,7 +215,7 @@
 	return sp;
 }
 
-static __no_kasan_or_inline unsigned short stap(void)
+static __always_inline unsigned short stap(void)
 {
 	unsigned short cpu_address;
 
@@ -253,7 +254,7 @@
  * Set PSW mask to specified value, while leaving the
  * PSW addr pointing to the next instruction.
  */
-static __no_kasan_or_inline void __load_psw_mask(unsigned long mask)
+static __always_inline void __load_psw_mask(unsigned long mask)
 {
 	unsigned long addr;
 	psw_t psw;
--- linux-ein-5.4.0.orig/arch/s390/include/asm/qdio.h
+++ linux-ein-5.4.0/arch/s390/include/asm/qdio.h
@@ -227,7 +227,7 @@
  * @sbal: absolute SBAL address
  */
 struct sl_element {
-	unsigned long sbal;
+	u64 sbal;
 } __attribute__ ((packed));
 
 /**
--- linux-ein-5.4.0.orig/arch/s390/include/asm/sclp.h
+++ linux-ein-5.4.0/arch/s390/include/asm/sclp.h
@@ -129,6 +129,8 @@
 int sclp_chp_read_info(struct sclp_chp_info *info);
 int sclp_pci_configure(u32 fid);
 int sclp_pci_deconfigure(u32 fid);
+int sclp_ap_configure(u32 apid);
+int sclp_ap_deconfigure(u32 apid);
 int sclp_pci_report(struct zpci_report_error_header *report, u32 fh, u32 fid);
 int memcpy_hsa_kernel(void *dest, unsigned long src, size_t count);
 int memcpy_hsa_user(void __user *dest, unsigned long src, size_t count);
--- linux-ein-5.4.0.orig/arch/s390/include/asm/setup.h
+++ linux-ein-5.4.0/arch/s390/include/asm/setup.h
@@ -8,6 +8,7 @@
 
 #include <linux/bits.h>
 #include <uapi/asm/setup.h>
+#include <linux/build_bug.h>
 
 #define EP_OFFSET		0x10008
 #define EP_STRING		"S390EP"
@@ -38,6 +39,7 @@
 #define MACHINE_FLAG_NX		BIT(15)
 #define MACHINE_FLAG_GS		BIT(16)
 #define MACHINE_FLAG_SCC	BIT(17)
+#define MACHINE_FLAG_PCI_MIO	BIT(18)
 
 #define LPP_MAGIC		BIT(31)
 #define LPP_PID_MASK		_AC(0xffffffff, UL)
@@ -80,6 +82,13 @@
 	char command_line[ARCH_COMMAND_LINE_SIZE];	/* 0x10480 */
 };
 
+extern unsigned int zlib_dfltcc_support;
+#define ZLIB_DFLTCC_DISABLED		0
+#define ZLIB_DFLTCC_FULL		1
+#define ZLIB_DFLTCC_DEFLATE_ONLY	2
+#define ZLIB_DFLTCC_INFLATE_ONLY	3
+#define ZLIB_DFLTCC_FULL_DEBUG		4
+
 extern int noexec_disabled;
 extern int memory_end_set;
 extern unsigned long memory_end;
@@ -105,6 +114,7 @@
 #define MACHINE_HAS_NX		(S390_lowcore.machine_flags & MACHINE_FLAG_NX)
 #define MACHINE_HAS_GS		(S390_lowcore.machine_flags & MACHINE_FLAG_GS)
 #define MACHINE_HAS_SCC		(S390_lowcore.machine_flags & MACHINE_FLAG_SCC)
+#define MACHINE_HAS_PCI_MIO	(S390_lowcore.machine_flags & MACHINE_FLAG_PCI_MIO)
 
 /*
  * Console mode. Override with conmode=
@@ -157,6 +167,12 @@
 	return __kaslr_offset;
 }
 
+static inline u32 gen_lpswe(unsigned long addr)
+{
+	BUILD_BUG_ON(addr > 0xfff);
+	return 0xb2b20000 | addr;
+}
+
 #else /* __ASSEMBLY__ */
 
 #define IPL_DEVICE	(IPL_DEVICE_OFFSET)
--- linux-ein-5.4.0.orig/arch/s390/include/asm/stacktrace.h
+++ linux-ein-5.4.0/arch/s390/include/asm/stacktrace.h
@@ -79,12 +79,16 @@
 	CALL_ARGS_4(arg1, arg2, arg3, arg4);				\
 	register unsigned long r4 asm("6") = (unsigned long)(arg5)
 
-#define CALL_FMT_0 "=&d" (r2) :
-#define CALL_FMT_1 "+&d" (r2) :
-#define CALL_FMT_2 CALL_FMT_1 "d" (r3),
-#define CALL_FMT_3 CALL_FMT_2 "d" (r4),
-#define CALL_FMT_4 CALL_FMT_3 "d" (r5),
-#define CALL_FMT_5 CALL_FMT_4 "d" (r6),
+/*
+ * To keep this simple mark register 2-6 as being changed (volatile)
+ * by the called function, even though register 6 is saved/nonvolatile.
+ */
+#define CALL_FMT_0 "=&d" (r2)
+#define CALL_FMT_1 "+&d" (r2)
+#define CALL_FMT_2 CALL_FMT_1, "+&d" (r3)
+#define CALL_FMT_3 CALL_FMT_2, "+&d" (r4)
+#define CALL_FMT_4 CALL_FMT_3, "+&d" (r5)
+#define CALL_FMT_5 CALL_FMT_4, "+&d" (r6)
 
 #define CALL_CLOBBER_5 "0", "1", "14", "cc", "memory"
 #define CALL_CLOBBER_4 CALL_CLOBBER_5
@@ -105,10 +109,118 @@
 		"	brasl	14,%[_fn]\n"				\
 		"	la	15,0(%[_prev])\n"			\
 		: [_prev] "=&a" (prev), CALL_FMT_##nr			\
-		  [_stack] "a" (stack),					\
+		: [_stack] "a" (stack),					\
 		  [_bc] "i" (offsetof(struct stack_frame, back_chain)),	\
 		  [_fn] "X" (fn) : CALL_CLOBBER_##nr);			\
 	r2;								\
 })
 
+#define CALL_LARGS_0(...)						\
+	long dummy = 0
+#define CALL_LARGS_1(t1, a1)						\
+	long arg1  = (long)(t1)(a1)
+#define CALL_LARGS_2(t1, a1, t2, a2)					\
+	CALL_LARGS_1(t1, a1);						\
+	long arg2 = (long)(t2)(a2)
+#define CALL_LARGS_3(t1, a1, t2, a2, t3, a3)				\
+	CALL_LARGS_2(t1, a1, t2, a2);					\
+	long arg3 = (long)(t3)(a3)
+#define CALL_LARGS_4(t1, a1, t2, a2, t3, a3, t4, a4)			\
+	CALL_LARGS_3(t1, a1, t2, a2, t3, a3);				\
+	long arg4  = (long)(t4)(a4)
+#define CALL_LARGS_5(t1, a1, t2, a2, t3, a3, t4, a4, t5, a5)		\
+	CALL_LARGS_4(t1, a1, t2, a2, t3, a3, t4, a4);			\
+	long arg5 = (long)(t5)(a5)
+
+#define CALL_REGS_0							\
+	register long r2 asm("2") = dummy
+#define CALL_REGS_1							\
+	register long r2 asm("2") = arg1
+#define CALL_REGS_2							\
+	CALL_REGS_1;							\
+	register long r3 asm("3") = arg2
+#define CALL_REGS_3							\
+	CALL_REGS_2;							\
+	register long r4 asm("4") = arg3
+#define CALL_REGS_4							\
+	CALL_REGS_3;							\
+	register long r5 asm("5") = arg4
+#define CALL_REGS_5							\
+	CALL_REGS_4;							\
+	register long r6 asm("6") = arg5
+
+#define CALL_TYPECHECK_0(...)
+#define CALL_TYPECHECK_1(t, a, ...)					\
+	typecheck(t, a)
+#define CALL_TYPECHECK_2(t, a, ...)					\
+	CALL_TYPECHECK_1(__VA_ARGS__);					\
+	typecheck(t, a)
+#define CALL_TYPECHECK_3(t, a, ...)					\
+	CALL_TYPECHECK_2(__VA_ARGS__);					\
+	typecheck(t, a)
+#define CALL_TYPECHECK_4(t, a, ...)					\
+	CALL_TYPECHECK_3(__VA_ARGS__);					\
+	typecheck(t, a)
+#define CALL_TYPECHECK_5(t, a, ...)					\
+	CALL_TYPECHECK_4(__VA_ARGS__);					\
+	typecheck(t, a)
+
+#define CALL_PARM_0(...) void
+#define CALL_PARM_1(t, a, ...) t
+#define CALL_PARM_2(t, a, ...) t, CALL_PARM_1(__VA_ARGS__)
+#define CALL_PARM_3(t, a, ...) t, CALL_PARM_2(__VA_ARGS__)
+#define CALL_PARM_4(t, a, ...) t, CALL_PARM_3(__VA_ARGS__)
+#define CALL_PARM_5(t, a, ...) t, CALL_PARM_4(__VA_ARGS__)
+#define CALL_PARM_6(t, a, ...) t, CALL_PARM_5(__VA_ARGS__)
+
+/*
+ * Use call_on_stack() to call a function switching to a specified
+ * stack. Proper sign and zero extension of function arguments is
+ * done. Usage:
+ *
+ * rc = call_on_stack(nr, stack, rettype, fn, t1, a1, t2, a2, ...)
+ *
+ * - nr specifies the number of function arguments of fn.
+ * - stack specifies the stack to be used.
+ * - fn is the function to be called.
+ * - rettype is the return type of fn.
+ * - t1, a1, ... are pairs, where t1 must match the type of the first
+ *   argument of fn, t2 the second, etc. a1 is the corresponding
+ *   first function argument (not name), etc.
+ */
+#define call_on_stack(nr, stack, rettype, fn, ...)			\
+({									\
+	rettype (*__fn)(CALL_PARM_##nr(__VA_ARGS__)) = fn;		\
+	unsigned long frame = current_frame_address();			\
+	unsigned long __stack = stack;					\
+	unsigned long prev;						\
+	CALL_LARGS_##nr(__VA_ARGS__);					\
+	CALL_REGS_##nr;							\
+									\
+	CALL_TYPECHECK_##nr(__VA_ARGS__);				\
+	asm volatile(							\
+		"	lgr	%[_prev],15\n"				\
+		"	lg	15,%[_stack]\n"				\
+		"	stg	%[_frame],%[_bc](15)\n"			\
+		"	brasl	14,%[_fn]\n"				\
+		"	lgr	15,%[_prev]\n"				\
+		: [_prev] "=&d" (prev), CALL_FMT_##nr			\
+		: [_stack] "R" (__stack),				\
+		  [_bc] "i" (offsetof(struct stack_frame, back_chain)),	\
+		  [_frame] "d" (frame),					\
+		  [_fn] "X" (__fn) : CALL_CLOBBER_##nr);		\
+	(rettype)r2;							\
+})
+
+#define CALL_ON_STACK_NORETURN(fn, stack)				\
+({									\
+	asm volatile(							\
+		"	la	15,0(%[_stack])\n"			\
+		"	xc	%[_bc](8,15),%[_bc](15)\n"		\
+		"	brasl	14,%[_fn]\n"				\
+		::[_bc] "i" (offsetof(struct stack_frame, back_chain)),	\
+		  [_stack] "a" (stack), [_fn] "X" (fn));		\
+	BUG();								\
+})
+
 #endif /* _ASM_S390_STACKTRACE_H */
--- linux-ein-5.4.0.orig/arch/s390/include/asm/syscall.h
+++ linux-ein-5.4.0/arch/s390/include/asm/syscall.h
@@ -33,7 +33,17 @@
 static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
-	return IS_ERR_VALUE(regs->gprs[2]) ? regs->gprs[2] : 0;
+	unsigned long error = regs->gprs[2];
+#ifdef CONFIG_COMPAT
+	if (test_tsk_thread_flag(task, TIF_31BIT)) {
+		/*
+		 * Sign-extend the value so (int)-EFOO becomes (long)-EFOO
+		 * and will match correctly in comparisons.
+		 */
+		error = (long)(int)error;
+	}
+#endif
+	return IS_ERR_VALUE(error) ? error : 0;
 }
 
 static inline long syscall_get_return_value(struct task_struct *task,
--- linux-ein-5.4.0.orig/arch/s390/include/asm/timex.h
+++ linux-ein-5.4.0/arch/s390/include/asm/timex.h
@@ -10,8 +10,9 @@
 #ifndef _ASM_S390_TIMEX_H
 #define _ASM_S390_TIMEX_H
 
-#include <asm/lowcore.h>
+#include <linux/preempt.h>
 #include <linux/time64.h>
+#include <asm/lowcore.h>
 
 /* The value of the TOD clock for 1.1.1970. */
 #define TOD_UNIX_EPOCH 0x7d91048bca000000ULL
@@ -154,7 +155,7 @@
 
 static inline unsigned long long get_tod_clock(void)
 {
-	unsigned char clk[STORE_CLOCK_EXT_SIZE];
+	char clk[STORE_CLOCK_EXT_SIZE];
 
 	get_tod_clock_ext(clk);
 	return *((unsigned long long *)&clk[1]);
@@ -176,6 +177,7 @@
 {
 	return (cycles_t) get_tod_clock() >> 2;
 }
+#define get_cycles get_cycles
 
 int get_phys_clock(unsigned long *clock);
 void init_cpu_timer(void);
@@ -186,15 +188,18 @@
 /**
  * get_clock_monotonic - returns current time in clock rate units
  *
- * The caller must ensure that preemption is disabled.
  * The clock and tod_clock_base get changed via stop_machine.
- * Therefore preemption must be disabled when calling this
- * function, otherwise the returned value is not guaranteed to
- * be monotonic.
+ * Therefore preemption must be disabled, otherwise the returned
+ * value is not guaranteed to be monotonic.
  */
 static inline unsigned long long get_tod_clock_monotonic(void)
 {
-	return get_tod_clock() - *(unsigned long long *) &tod_clock_base[1];
+	unsigned long long tod;
+
+	preempt_disable_notrace();
+	tod = get_tod_clock() - *(unsigned long long *) &tod_clock_base[1];
+	preempt_enable_notrace();
+	return tod;
 }
 
 /**
--- linux-ein-5.4.0.orig/arch/s390/include/asm/topology.h
+++ linux-ein-5.4.0/arch/s390/include/asm/topology.h
@@ -68,11 +68,8 @@
 
 #ifdef CONFIG_NUMA
 
-#define cpu_to_node cpu_to_node
-static inline int cpu_to_node(int cpu)
-{
-	return cpu_topology[cpu].node_id;
-}
+extern int __cpu_to_node(int cpu);
+#define cpu_to_node __cpu_to_node
 
 /* Returns a pointer to the cpumask of CPUs on node 'node'. */
 #define cpumask_of_node cpumask_of_node
@@ -83,8 +80,6 @@
 
 #define pcibus_to_node(bus) __pcibus_to_node(bus)
 
-#define node_distance(a, b) __node_distance(a, b)
-
 #else /* !CONFIG_NUMA */
 
 #define numa_node_id numa_node_id
--- linux-ein-5.4.0.orig/arch/s390/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/s390/include/asm/uaccess.h
@@ -60,54 +60,109 @@
 #define INLINE_COPY_TO_USER
 #endif
 
+unsigned long __must_check
+_copy_from_user_key(void *to, const void __user *from, unsigned long n, unsigned long key);
+
+static __always_inline unsigned long __must_check
+copy_from_user_key(void *to, const void __user *from, unsigned long n, unsigned long key)
+{
+	if (likely(check_copy_size(to, n, false)))
+		n = _copy_from_user_key(to, from, n, key);
+	return n;
+}
+
+unsigned long __must_check
+_copy_to_user_key(void __user *to, const void *from, unsigned long n, unsigned long key);
+
+static __always_inline unsigned long __must_check
+copy_to_user_key(void __user *to, const void *from, unsigned long n, unsigned long key)
+{
+	if (likely(check_copy_size(from, n, true)))
+		n = _copy_to_user_key(to, from, n, key);
+	return n;
+}
+
+union oac {
+	unsigned int val;
+	struct {
+		struct {
+			unsigned short key : 4;
+			unsigned short	   : 4;
+			unsigned short as  : 2;
+			unsigned short	   : 4;
+			unsigned short k   : 1;
+			unsigned short a   : 1;
+		} oac1;
+		struct {
+			unsigned short key : 4;
+			unsigned short	   : 4;
+			unsigned short as  : 2;
+			unsigned short	   : 4;
+			unsigned short k   : 1;
+			unsigned short a   : 1;
+		} oac2;
+	};
+};
+
 #ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
 
-#define __put_get_user_asm(to, from, size, spec)		\
-({								\
-	register unsigned long __reg0 asm("0") = spec;		\
-	int __rc;						\
-								\
-	asm volatile(						\
-		"0:	mvcos	%1,%3,%2\n"			\
-		"1:	xr	%0,%0\n"			\
-		"2:\n"						\
-		".pushsection .fixup, \"ax\"\n"			\
-		"3:	lhi	%0,%5\n"			\
-		"	jg	2b\n"				\
-		".popsection\n"					\
-		EX_TABLE(0b,3b) EX_TABLE(1b,3b)			\
-		: "=d" (__rc), "+Q" (*(to))			\
-		: "d" (size), "Q" (*(from)),			\
-		  "d" (__reg0), "K" (-EFAULT)			\
-		: "cc");					\
-	__rc;							\
+#define __put_get_user_asm(to, from, size, oac_spec)			\
+({									\
+	int __rc;							\
+									\
+	asm volatile(							\
+		"	lr	0,%[spec]\n"				\
+		"0:	mvcos	%[_to],%[_from],%[_size]\n"		\
+		"1:	xr	%[rc],%[rc]\n"				\
+		"2:\n"							\
+		".pushsection .fixup, \"ax\"\n"				\
+		"3:	lhi	%[rc],%[retval]\n"			\
+		"	jg	2b\n"					\
+		".popsection\n"						\
+		EX_TABLE(0b,3b) EX_TABLE(1b,3b)				\
+		: [rc] "=&d" (__rc), [_to] "+Q" (*(to))			\
+		: [_size] "d" (size), [_from] "Q" (*(from)),		\
+		  [retval] "K" (-EFAULT), [spec] "d" (oac_spec.val)	\
+		: "cc", "0");						\
+	__rc;								\
 })
 
+#define __put_user_asm(to, from, size)				\
+	__put_get_user_asm(to, from, size, ((union oac) {	\
+		.oac1.as = PSW_BITS_AS_PRIMARY,			\
+		.oac1.a = 1					\
+	}))
+
+#define __get_user_asm(to, from, size)				\
+	__put_get_user_asm(to, from, size, ((union oac) {	\
+		.oac2.as = PSW_BITS_AS_PRIMARY,			\
+		.oac2.a = 1					\
+	}))							\
+
 static __always_inline int __put_user_fn(void *x, void __user *ptr, unsigned long size)
 {
-	unsigned long spec = 0x010000UL;
 	int rc;
 
 	switch (size) {
 	case 1:
-		rc = __put_get_user_asm((unsigned char __user *)ptr,
-					(unsigned char *)x,
-					size, spec);
+		rc = __put_user_asm((unsigned char __user *)ptr,
+				    (unsigned char *)x,
+				    size);
 		break;
 	case 2:
-		rc = __put_get_user_asm((unsigned short __user *)ptr,
-					(unsigned short *)x,
-					size, spec);
+		rc = __put_user_asm((unsigned short __user *)ptr,
+				    (unsigned short *)x,
+				    size);
 		break;
 	case 4:
-		rc = __put_get_user_asm((unsigned int __user *)ptr,
-					(unsigned int *)x,
-					size, spec);
+		rc = __put_user_asm((unsigned int __user *)ptr,
+				    (unsigned int *)x,
+				    size);
 		break;
 	case 8:
-		rc = __put_get_user_asm((unsigned long __user *)ptr,
-					(unsigned long *)x,
-					size, spec);
+		rc = __put_user_asm((unsigned long __user *)ptr,
+				    (unsigned long *)x,
+				    size);
 		break;
 	}
 	return rc;
@@ -115,29 +170,28 @@
 
 static __always_inline int __get_user_fn(void *x, const void __user *ptr, unsigned long size)
 {
-	unsigned long spec = 0x01UL;
 	int rc;
 
 	switch (size) {
 	case 1:
-		rc = __put_get_user_asm((unsigned char *)x,
-					(unsigned char __user *)ptr,
-					size, spec);
+		rc = __get_user_asm((unsigned char *)x,
+				    (unsigned char __user *)ptr,
+				    size);
 		break;
 	case 2:
-		rc = __put_get_user_asm((unsigned short *)x,
-					(unsigned short __user *)ptr,
-					size, spec);
+		rc = __get_user_asm((unsigned short *)x,
+				    (unsigned short __user *)ptr,
+				    size);
 		break;
 	case 4:
-		rc = __put_get_user_asm((unsigned int *)x,
-					(unsigned int __user *)ptr,
-					size, spec);
+		rc = __get_user_asm((unsigned int *)x,
+				    (unsigned int __user *)ptr,
+				    size);
 		break;
 	case 8:
-		rc = __put_get_user_asm((unsigned long *)x,
-					(unsigned long __user *)ptr,
-					size, spec);
+		rc = __get_user_asm((unsigned long *)x,
+				    (unsigned long __user *)ptr,
+				    size);
 		break;
 	}
 	return rc;
@@ -276,6 +330,6 @@
 }
 
 int copy_to_user_real(void __user *dest, void *src, unsigned long count);
-void s390_kernel_write(void *dst, const void *src, size_t size);
+void *s390_kernel_write(void *dst, const void *src, size_t size);
 
 #endif /* __S390_UACCESS_H */
--- linux-ein-5.4.0.orig/arch/s390/include/asm/uv.h
+++ linux-ein-5.4.0/arch/s390/include/asm/uv.h
@@ -14,23 +14,67 @@
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/bug.h>
+#include <linux/sched.h>
 #include <asm/page.h>
+#include <asm/gmap.h>
+
+#define UVC_CC_OK	0
+#define UVC_CC_ERROR	1
+#define UVC_CC_BUSY	2
+#define UVC_CC_PARTIAL	3
 
 #define UVC_RC_EXECUTED		0x0001
 #define UVC_RC_INV_CMD		0x0002
 #define UVC_RC_INV_STATE	0x0003
 #define UVC_RC_INV_LEN		0x0005
 #define UVC_RC_NO_RESUME	0x0007
+#define UVC_RC_NEED_DESTROY	0x8000
 
 #define UVC_CMD_QUI			0x0001
+#define UVC_CMD_INIT_UV			0x000f
+#define UVC_CMD_CREATE_SEC_CONF		0x0100
+#define UVC_CMD_DESTROY_SEC_CONF	0x0101
+#define UVC_CMD_CREATE_SEC_CPU		0x0120
+#define UVC_CMD_DESTROY_SEC_CPU		0x0121
+#define UVC_CMD_CONV_TO_SEC_STOR	0x0200
+#define UVC_CMD_CONV_FROM_SEC_STOR	0x0201
+#define UVC_CMD_SET_SEC_CONF_PARAMS	0x0300
+#define UVC_CMD_UNPACK_IMG		0x0301
+#define UVC_CMD_VERIFY_IMG		0x0302
+#define UVC_CMD_CPU_RESET		0x0310
+#define UVC_CMD_CPU_RESET_INITIAL	0x0311
+#define UVC_CMD_PREPARE_RESET		0x0320
+#define UVC_CMD_CPU_RESET_CLEAR		0x0321
+#define UVC_CMD_CPU_SET_STATE		0x0330
+#define UVC_CMD_SET_UNSHARE_ALL		0x0340
+#define UVC_CMD_PIN_PAGE_SHARED		0x0341
+#define UVC_CMD_UNPIN_PAGE_SHARED	0x0342
 #define UVC_CMD_SET_SHARED_ACCESS	0x1000
 #define UVC_CMD_REMOVE_SHARED_ACCESS	0x1001
 
 /* Bits in installed uv calls */
 enum uv_cmds_inst {
 	BIT_UVC_CMD_QUI = 0,
+	BIT_UVC_CMD_INIT_UV = 1,
+	BIT_UVC_CMD_CREATE_SEC_CONF = 2,
+	BIT_UVC_CMD_DESTROY_SEC_CONF = 3,
+	BIT_UVC_CMD_CREATE_SEC_CPU = 4,
+	BIT_UVC_CMD_DESTROY_SEC_CPU = 5,
+	BIT_UVC_CMD_CONV_TO_SEC_STOR = 6,
+	BIT_UVC_CMD_CONV_FROM_SEC_STOR = 7,
 	BIT_UVC_CMD_SET_SHARED_ACCESS = 8,
 	BIT_UVC_CMD_REMOVE_SHARED_ACCESS = 9,
+	BIT_UVC_CMD_SET_SEC_PARMS = 11,
+	BIT_UVC_CMD_UNPACK_IMG = 13,
+	BIT_UVC_CMD_VERIFY_IMG = 14,
+	BIT_UVC_CMD_CPU_RESET = 15,
+	BIT_UVC_CMD_CPU_RESET_INITIAL = 16,
+	BIT_UVC_CMD_CPU_SET_STATE = 17,
+	BIT_UVC_CMD_PREPARE_RESET = 18,
+	BIT_UVC_CMD_CPU_PERFORM_CLEAR_RESET = 19,
+	BIT_UVC_CMD_UNSHARE_ALL = 20,
+	BIT_UVC_CMD_PIN_PAGE_SHARED = 21,
+	BIT_UVC_CMD_UNPIN_PAGE_SHARED = 22,
 };
 
 struct uv_cb_header {
@@ -40,13 +84,127 @@
 	u16 rrc;	/* Return Reason Code */
 } __packed __aligned(8);
 
+/* Query Ultravisor Information */
 struct uv_cb_qui {
 	struct uv_cb_header header;
 	u64 reserved08;
 	u64 inst_calls_list[4];
-	u64 reserved30[15];
+	u64 reserved30[2];
+	u64 uv_base_stor_len;
+	u64 reserved48;
+	u64 conf_base_phys_stor_len;
+	u64 conf_base_virt_stor_len;
+	u64 conf_virt_var_stor_len;
+	u64 cpu_stor_len;
+	u32 reserved70[3];
+	u32 max_num_sec_conf;
+	u64 max_guest_stor_addr;
+	u8  reserved88[158 - 136];
+	u16 max_guest_cpus;
+	u8  reserveda0[200 - 160];
+} __packed __aligned(8);
+
+/* Initialize Ultravisor */
+struct uv_cb_init {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 stor_origin;
+	u64 stor_len;
+	u64 reserved28[4];
+} __packed __aligned(8);
+
+/* Create Guest Configuration */
+struct uv_cb_cgc {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 conf_base_stor_origin;
+	u64 conf_virt_stor_origin;
+	u64 reserved30;
+	u64 guest_stor_origin;
+	u64 guest_stor_len;
+	u64 guest_sca;
+	u64 guest_asce;
+	u64 reserved58[5];
+} __packed __aligned(8);
+
+/* Create Secure CPU */
+struct uv_cb_csc {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 cpu_handle;
+	u64 guest_handle;
+	u64 stor_origin;
+	u8  reserved30[6];
+	u16 num;
+	u64 state_origin;
+	u64 reserved40[4];
+} __packed __aligned(8);
+
+/* Convert to Secure */
+struct uv_cb_cts {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 gaddr;
+} __packed __aligned(8);
+
+/* Convert from Secure / Pin Page Shared */
+struct uv_cb_cfs {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 paddr;
+} __packed __aligned(8);
+
+/* Set Secure Config Parameter */
+struct uv_cb_ssc {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 sec_header_origin;
+	u32 sec_header_len;
+	u32 reserved2c;
+	u64 reserved30[4];
 } __packed __aligned(8);
 
+/* Unpack */
+struct uv_cb_unp {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 guest_handle;
+	u64 gaddr;
+	u64 tweak[2];
+	u64 reserved38[3];
+} __packed __aligned(8);
+
+#define PV_CPU_STATE_OPR	1
+#define PV_CPU_STATE_STP	2
+#define PV_CPU_STATE_CHKSTP	3
+#define PV_CPU_STATE_OPR_LOAD	5
+
+struct uv_cb_cpu_set_state {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 cpu_handle;
+	u8  reserved20[7];
+	u8  state;
+	u64 reserved28[5];
+};
+
+/*
+ * A common UV call struct for calls that take no payload
+ * Examples:
+ * Destroy cpu/config
+ * Verify
+ */
+struct uv_cb_nodata {
+	struct uv_cb_header header;
+	u64 reserved08[2];
+	u64 handle;
+	u64 reserved20[4];
+} __packed __aligned(8);
+
+/* Set Shared Access */
 struct uv_cb_share {
 	struct uv_cb_header header;
 	u64 reserved08[3];
@@ -54,21 +212,76 @@
 	u64 reserved28;
 } __packed __aligned(8);
 
-static inline int uv_call(unsigned long r1, unsigned long r2)
+static inline int __uv_call(unsigned long r1, unsigned long r2)
 {
 	int cc;
 
 	asm volatile(
-		"0:	.insn rrf,0xB9A40000,%[r1],%[r2],0,0\n"
-		"		brc	3,0b\n"
-		"		ipm	%[cc]\n"
-		"		srl	%[cc],28\n"
+		"	.insn rrf,0xB9A40000,%[r1],%[r2],0,0\n"
+		"	ipm	%[cc]\n"
+		"	srl	%[cc],28\n"
 		: [cc] "=d" (cc)
 		: [r1] "a" (r1), [r2] "a" (r2)
 		: "memory", "cc");
 	return cc;
 }
 
+static inline int uv_call(unsigned long r1, unsigned long r2)
+{
+	int cc;
+
+	do {
+		cc = __uv_call(r1, r2);
+	} while (cc > 1);
+	return cc;
+}
+
+/* Low level uv_call that avoids stalls for long running busy conditions  */
+static inline int uv_call_sched(unsigned long r1, unsigned long r2)
+{
+	int cc;
+
+	do {
+		cc = __uv_call(r1, r2);
+		cond_resched();
+	} while (cc > 1);
+	return cc;
+}
+
+/*
+ * special variant of uv_call that only transports the cpu or guest
+ * handle and the command, like destroy or verify.
+ */
+static inline int uv_cmd_nodata(u64 handle, u16 cmd, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_nodata uvcb = {
+		.header.cmd = cmd,
+		.header.len = sizeof(uvcb),
+		.handle = handle,
+	};
+	int cc;
+
+	WARN(!handle, "No handle provided to Ultravisor call cmd %x\n", cmd);
+	cc = uv_call_sched(0, (u64)&uvcb);
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	return cc ? -EINVAL : 0;
+}
+
+struct uv_info {
+	unsigned long inst_calls_list[4];
+	unsigned long uv_base_stor_len;
+	unsigned long guest_base_stor_len;
+	unsigned long guest_virt_base_stor_len;
+	unsigned long guest_virt_var_stor_len;
+	unsigned long guest_cpu_stor_len;
+	unsigned long max_sec_stor_addr;
+	unsigned int max_num_sec_conf;
+	unsigned short max_guest_cpus;
+};
+
+extern struct uv_info uv_info;
+
 #ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
 extern int prot_virt_guest;
 
@@ -121,11 +334,40 @@
 	return share(addr, UVC_CMD_REMOVE_SHARED_ACCESS);
 }
 
-void uv_query_info(void);
 #else
 #define is_prot_virt_guest() 0
 static inline int uv_set_shared(unsigned long addr) { return 0; }
 static inline int uv_remove_shared(unsigned long addr) { return 0; }
+#endif
+
+#if IS_ENABLED(CONFIG_KVM)
+extern int prot_virt_host;
+
+static inline int is_prot_virt_host(void)
+{
+	return prot_virt_host;
+}
+
+int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb);
+int uv_convert_from_secure(unsigned long paddr);
+int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr);
+
+void setup_uv(void);
+void adjust_to_uv_max(unsigned long *vmax);
+#else
+#define is_prot_virt_host() 0
+static inline void setup_uv(void) {}
+static inline void adjust_to_uv_max(unsigned long *vmax) {}
+
+static inline int uv_convert_from_secure(unsigned long paddr)
+{
+	return 0;
+}
+#endif
+
+#if defined(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) || IS_ENABLED(CONFIG_KVM)
+void uv_query_info(void);
+#else
 static inline void uv_query_info(void) {}
 #endif
 
--- linux-ein-5.4.0.orig/arch/s390/include/asm/vdso.h
+++ linux-ein-5.4.0/arch/s390/include/asm/vdso.h
@@ -36,6 +36,7 @@
 	__u32 tk_shift;			/* Shift used for xtime_nsec	0x60 */
 	__u32 ts_dir;			/* TOD steering direction	0x64 */
 	__u64 ts_end;			/* TOD steering end		0x68 */
+	__u32 hrtimer_res;		/* hrtimer resolution		0x70 */
 };
 
 struct vdso_per_cpu_data {
--- linux-ein-5.4.0.orig/arch/s390/include/uapi/asm/ipl.h
+++ linux-ein-5.4.0/arch/s390/include/uapi/asm/ipl.h
@@ -27,6 +27,7 @@
 	IPL_PBT_FCP = 0,
 	IPL_PBT_SCP_DATA = 1,
 	IPL_PBT_CCW = 2,
+	IPL_PBT_NVME = 4,
 };
 
 /* IPL Parameter Block 0 with common fields */
@@ -67,6 +68,30 @@
 #define IPL_PB0_FCP_OPT_IPL	0x10
 #define IPL_PB0_FCP_OPT_DUMP	0x20
 
+/* IPL Parameter Block 0 for NVMe */
+struct ipl_pb0_nvme {
+	__u32 len;
+	__u8  pbt;
+	__u8  reserved1[3];
+	__u8  loadparm[8];
+	__u8  reserved2[304];
+	__u8  opt;
+	__u8  reserved3[3];
+	__u32 fid;
+	__u8 reserved4[12];
+	__u32 nsid;
+	__u8 reserved5[4];
+	__u32 bootprog;
+	__u8 reserved6[12];
+	__u64 br_lba;
+	__u32 scp_data_len;
+	__u8  reserved7[260];
+	__u8  scp_data[];
+} __packed;
+
+#define IPL_PB0_NVME_OPT_IPL	0x10
+#define IPL_PB0_NVME_OPT_DUMP	0x20
+
 /* IPL Parameter Block 0 for CCW */
 struct ipl_pb0_ccw {
 	__u32 len;
--- linux-ein-5.4.0.orig/arch/s390/include/uapi/asm/kvm.h
+++ linux-ein-5.4.0/arch/s390/include/uapi/asm/kvm.h
@@ -231,11 +231,13 @@
 #define KVM_SYNC_GSCB   (1UL << 9)
 #define KVM_SYNC_BPBC   (1UL << 10)
 #define KVM_SYNC_ETOKEN (1UL << 11)
+#define KVM_SYNC_DIAG318 (1UL << 12)
 
 #define KVM_SYNC_S390_VALID_FIELDS \
 	(KVM_SYNC_PREFIX | KVM_SYNC_GPRS | KVM_SYNC_ACRS | KVM_SYNC_CRS | \
 	 KVM_SYNC_ARCH0 | KVM_SYNC_PFAULT | KVM_SYNC_VRS | KVM_SYNC_RICCB | \
-	 KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN)
+	 KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN | \
+	 KVM_SYNC_DIAG318)
 
 /* length and alignment of the sdnx as a power of two */
 #define SDNXC 8
@@ -264,7 +266,8 @@
 	__u8 reserved2 : 7;
 	__u8 padding1[51];	/* riccb needs to be 64byte aligned */
 	__u8 riccb[64];		/* runtime instrumentation controls block */
-	__u8 padding2[192];	/* sdnx needs to be 256byte aligned */
+	__u64 diag318;		/* diagnose 0x318 info */
+	__u8 padding2[184];	/* sdnx needs to be 256byte aligned */
 	union {
 		__u8 sdnx[SDNXL];  /* state description annex */
 		struct {
--- linux-ein-5.4.0.orig/arch/s390/include/uapi/asm/pkey.h
+++ linux-ein-5.4.0/arch/s390/include/uapi/asm/pkey.h
@@ -25,10 +25,11 @@
 #define MAXPROTKEYSIZE	64	/* a protected key blob may be up to 64 bytes */
 #define MAXCLRKEYSIZE	32	   /* a clear key value may be up to 32 bytes */
 #define MAXAESCIPHERKEYSIZE 136  /* our aes cipher keys have always 136 bytes */
+#define MINEP11AESKEYBLOBSIZE 256  /* min EP11 AES key blob size  */
+#define MAXEP11AESKEYBLOBSIZE 320  /* max EP11 AES key blob size */
 
-/* Minimum and maximum size of a key blob */
+/* Minimum size of a key blob */
 #define MINKEYBLOBSIZE	SECKEYBLOBSIZE
-#define MAXKEYBLOBSIZE	MAXAESCIPHERKEYSIZE
 
 /* defines for the type field within the pkey_protkey struct */
 #define PKEY_KEYTYPE_AES_128		      1
@@ -39,6 +40,7 @@
 enum pkey_key_type {
 	PKEY_TYPE_CCA_DATA   = (__u32) 1,
 	PKEY_TYPE_CCA_CIPHER = (__u32) 2,
+	PKEY_TYPE_EP11	     = (__u32) 3,
 };
 
 /* the newer ioctls use a pkey_key_size enum for key size information */
@@ -200,7 +202,7 @@
 
 /*
  * Generate secure key, version 2.
- * Generate either a CCA AES secure key or a CCA AES cipher key.
+ * Generate CCA AES secure key, CCA AES cipher key or EP11 AES secure key.
  * There needs to be a list of apqns given with at least one entry in there.
  * All apqns in the list need to be exact apqns, 0xFFFF as ANY card or domain
  * is not supported. The implementation walks through the list of apqns and
@@ -210,10 +212,13 @@
  * (return -1 with errno ENODEV). You may use the PKEY_APQNS4KT ioctl to
  * generate a list of apqns based on the key type to generate.
  * The keygenflags argument is passed to the low level generation functions
- * individual for the key type and has a key type specific meaning. Currently
- * only CCA AES cipher keys react to this parameter: Use one or more of the
- * PKEY_KEYGEN_* flags to widen the export possibilities. By default a cipher
- * key is only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * individual for the key type and has a key type specific meaning. When
+ * generating CCA cipher keys you can use one or more of the PKEY_KEYGEN_*
+ * flags to widen the export possibilities. By default a cipher key is
+ * only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * The keygenflag argument for generating an EP11 AES key should either be 0
+ * to use the defaults which are XCP_BLOB_ENCRYPT, XCP_BLOB_DECRYPT and
+ * XCP_BLOB_PROTKEY_EXTRACTABLE or a valid combination of XCP_BLOB_* flags.
  */
 struct pkey_genseck2 {
 	struct pkey_apqn __user *apqns; /* in: ptr to list of apqn targets*/
@@ -229,8 +234,8 @@
 
 /*
  * Generate secure key from clear key value, version 2.
- * Construct a CCA AES secure key or CCA AES cipher key from a given clear key
- * value.
+ * Construct an CCA AES secure key, CCA AES cipher key or EP11 AES secure
+ * key from a given clear key value.
  * There needs to be a list of apqns given with at least one entry in there.
  * All apqns in the list need to be exact apqns, 0xFFFF as ANY card or domain
  * is not supported. The implementation walks through the list of apqns and
@@ -240,10 +245,13 @@
  * (return -1 with errno ENODEV). You may use the PKEY_APQNS4KT ioctl to
  * generate a list of apqns based on the key type to generate.
  * The keygenflags argument is passed to the low level generation functions
- * individual for the key type and has a key type specific meaning. Currently
- * only CCA AES cipher keys react to this parameter: Use one or more of the
- * PKEY_KEYGEN_* flags to widen the export possibilities. By default a cipher
- * key is only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * individual for the key type and has a key type specific meaning. When
+ * generating CCA cipher keys you can use one or more of the PKEY_KEYGEN_*
+ * flags to widen the export possibilities. By default a cipher key is
+ * only exportable for CPACF (PKEY_KEYGEN_XPRT_CPAC).
+ * The keygenflag argument for generating an EP11 AES key should either be 0
+ * to use the defaults which are XCP_BLOB_ENCRYPT, XCP_BLOB_DECRYPT and
+ * XCP_BLOB_PROTKEY_EXTRACTABLE or a valid combination of XCP_BLOB_* flags.
  */
 struct pkey_clr2seck2 {
 	struct pkey_apqn __user *apqns; /* in: ptr to list of apqn targets */
@@ -266,14 +274,19 @@
  * with one apqn able to handle this key.
  * The function also checks for the master key verification patterns
  * of the key matching to the current or alternate mkvp of the apqn.
- * Currently CCA AES secure keys and CCA AES cipher keys are supported.
- * The flags field is updated with some additional info about the apqn mkvp
+ * For CCA AES secure keys and CCA AES cipher keys this means to check
+ * the key's mkvp against the current or old mkvp of the apqns. The flags
+ * field is updated with some additional info about the apqn mkvp
  * match: If the current mkvp matches to the key's mkvp then the
  * PKEY_FLAGS_MATCH_CUR_MKVP bit is set, if the alternate mkvp matches to
  * the key's mkvp the PKEY_FLAGS_MATCH_ALT_MKVP is set. For CCA keys the
  * alternate mkvp is the old master key verification pattern.
  * CCA AES secure keys are also checked to have the CPACF export allowed
  * bit enabled (XPRTCPAC) in the kmf1 field.
+ * EP11 keys are also supported and the wkvp of the key is checked against
+ * the current wkvp of the apqns. There is no alternate for this type of
+ * key and so on a match the flag PKEY_FLAGS_MATCH_CUR_MKVP always is set.
+ * EP11 keys are also checked to have XCP_BLOB_PROTKEY_EXTRACTABLE set.
  * The ioctl returns 0 as long as the given or found apqn matches to
  * matches with the current or alternate mkvp to the key's mkvp. If the given
  * apqn does not match or there is no such apqn found, -1 with errno
@@ -313,16 +326,20 @@
 /*
  * Build a list of APQNs based on a key blob given.
  * Is able to find out which type of secure key is given (CCA AES secure
- * key or CCA AES cipher key) and tries to find all matching crypto cards
- * based on the MKVP and maybe other criterias (like CCA AES cipher keys
- * need a CEX5C or higher). The list of APQNs is further filtered by the key's
- * mkvp which needs to match to either the current mkvp or the alternate mkvp
- * (which is the old mkvp on CCA adapters) of the apqns. The flags argument may
- * be used to limit the matching apqns. If the PKEY_FLAGS_MATCH_CUR_MKVP is
- * given, only the current mkvp of each apqn is compared. Likewise with the
- * PKEY_FLAGS_MATCH_ALT_MKVP. If both are given, it is assumed to
- * return apqns where either the current or the alternate mkvp
+ * key, CCA AES cipher key or EP11 AES key) and tries to find all matching
+ * crypto cards based on the MKVP and maybe other criterias (like CCA AES
+ * cipher keys need a CEX5C or higher, EP11 keys with BLOB_PKEY_EXTRACTABLE
+ * need a CEX7 and EP11 api version 4). The list of APQNs is further filtered
+ * by the key's mkvp which needs to match to either the current mkvp (CCA and
+ * EP11) or the alternate mkvp (old mkvp, CCA adapters only) of the apqns. The
+ * flags argument may be used to limit the matching apqns. If the
+ * PKEY_FLAGS_MATCH_CUR_MKVP is given, only the current mkvp of each apqn is
+ * compared. Likewise with the PKEY_FLAGS_MATCH_ALT_MKVP. If both are given, it
+ * is assumed to return apqns where either the current or the alternate mkvp
  * matches. At least one of the matching flags needs to be given.
+ * The flags argument for EP11 keys has no further action and is currently
+ * ignored (but needs to be given as PKEY_FLAGS_MATCH_CUR_MKVP) as there is only
+ * the wkvp from the key to match against the apqn's wkvp.
  * The list of matching apqns is stored into the space given by the apqns
  * argument and the number of stored entries goes into apqn_entries. If the list
  * is empty (apqn_entries is 0) the apqn_entries field is updated to the number
@@ -356,6 +373,10 @@
  * If both are given, it is assumed to return apqns where either the
  * current or the alternate mkvp matches. If no match flag is given
  * (flags is 0) the mkvp values are ignored for the match process.
+ * For EP11 keys there is only the current wkvp. So if the apqns should also
+ * match to a given wkvp, then the PKEY_FLAGS_MATCH_CUR_MKVP flag should be
+ * set. The wkvp value is 32 bytes but only the leftmost 16 bytes are compared
+ * against the leftmost 16 byte of the wkvp of the apqn.
  * The list of matching apqns is stored into the space given by the apqns
  * argument and the number of stored entries goes into apqn_entries. If the list
  * is empty (apqn_entries is 0) the apqn_entries field is updated to the number
--- linux-ein-5.4.0.orig/arch/s390/include/uapi/asm/zcrypt.h
+++ linux-ein-5.4.0/arch/s390/include/uapi/asm/zcrypt.h
@@ -36,12 +36,12 @@
  * - length(n_modulus) = inputdatalength
  */
 struct ica_rsa_modexpo {
-	char __user  *inputdata;
-	unsigned int  inputdatalength;
-	char __user  *outputdata;
-	unsigned int  outputdatalength;
-	char __user  *b_key;
-	char __user  *n_modulus;
+	__u8 __user  *inputdata;
+	__u32	      inputdatalength;
+	__u8 __user  *outputdata;
+	__u32	      outputdatalength;
+	__u8 __user  *b_key;
+	__u8 __user  *n_modulus;
 };
 
 /**
@@ -59,15 +59,15 @@
  * - length(u_mult_inv) = inputdatalength/2 + 8
  */
 struct ica_rsa_modexpo_crt {
-	char __user  *inputdata;
-	unsigned int  inputdatalength;
-	char __user  *outputdata;
-	unsigned int  outputdatalength;
-	char __user  *bp_key;
-	char __user  *bq_key;
-	char __user  *np_prime;
-	char __user  *nq_prime;
-	char __user  *u_mult_inv;
+	__u8 __user  *inputdata;
+	__u32	      inputdatalength;
+	__u8 __user  *outputdata;
+	__u32	      outputdatalength;
+	__u8 __user  *bp_key;
+	__u8 __user  *bq_key;
+	__u8 __user  *np_prime;
+	__u8 __user  *nq_prime;
+	__u8 __user  *u_mult_inv;
 };
 
 /**
@@ -83,67 +83,67 @@
  *	    key block
  */
 struct CPRBX {
-	unsigned short	cprb_len;	/* CPRB length	      220	 */
-	unsigned char	cprb_ver_id;	/* CPRB version id.   0x02	 */
-	unsigned char	pad_000[3];	/* Alignment pad bytes		 */
-	unsigned char	func_id[2];	/* function id	      0x5432	 */
-	unsigned char	cprb_flags[4];	/* Flags			 */
-	unsigned int	req_parml;	/* request parameter buffer len	 */
-	unsigned int	req_datal;	/* request data buffer		 */
-	unsigned int	rpl_msgbl;	/* reply  message block length	 */
-	unsigned int	rpld_parml;	/* replied parameter block len	 */
-	unsigned int	rpl_datal;	/* reply data block len		 */
-	unsigned int	rpld_datal;	/* replied data block len	 */
-	unsigned int	req_extbl;	/* request extension block len	 */
-	unsigned char	pad_001[4];	/* reserved			 */
-	unsigned int	rpld_extbl;	/* replied extension block len	 */
-	unsigned char	padx000[16 - sizeof(char *)];
-	unsigned char  *req_parmb;	/* request parm block 'address'	 */
-	unsigned char	padx001[16 - sizeof(char *)];
-	unsigned char  *req_datab;	/* request data block 'address'	 */
-	unsigned char	padx002[16 - sizeof(char *)];
-	unsigned char  *rpl_parmb;	/* reply parm block 'address'	 */
-	unsigned char	padx003[16 - sizeof(char *)];
-	unsigned char  *rpl_datab;	/* reply data block 'address'	 */
-	unsigned char	padx004[16 - sizeof(char *)];
-	unsigned char  *req_extb;	/* request extension block 'addr'*/
-	unsigned char	padx005[16 - sizeof(char *)];
-	unsigned char  *rpl_extb;	/* reply extension block 'address'*/
-	unsigned short	ccp_rtcode;	/* server return code		 */
-	unsigned short	ccp_rscode;	/* server reason code		 */
-	unsigned int	mac_data_len;	/* Mac Data Length		 */
-	unsigned char	logon_id[8];	/* Logon Identifier		 */
-	unsigned char	mac_value[8];	/* Mac Value			 */
-	unsigned char	mac_content_flgs;/* Mac content flag byte	 */
-	unsigned char	pad_002;	/* Alignment			 */
-	unsigned short	domain;		/* Domain			 */
-	unsigned char	usage_domain[4];/* Usage domain			 */
-	unsigned char	cntrl_domain[4];/* Control domain		 */
-	unsigned char	S390enf_mask[4];/* S/390 enforcement mask	 */
-	unsigned char	pad_004[36];	/* reserved			 */
+	__u16	     cprb_len;		/* CPRB length	      220	 */
+	__u8	     cprb_ver_id;	/* CPRB version id.   0x02	 */
+	__u8	     pad_000[3];	/* Alignment pad bytes		 */
+	__u8	     func_id[2];	/* function id	      0x5432	 */
+	__u8	     cprb_flags[4];	/* Flags			 */
+	__u32	     req_parml;		/* request parameter buffer len	 */
+	__u32	     req_datal;		/* request data buffer		 */
+	__u32	     rpl_msgbl;		/* reply  message block length	 */
+	__u32	     rpld_parml;	/* replied parameter block len	 */
+	__u32	     rpl_datal;		/* reply data block len		 */
+	__u32	     rpld_datal;	/* replied data block len	 */
+	__u32	     req_extbl;		/* request extension block len	 */
+	__u8	     pad_001[4];	/* reserved			 */
+	__u32	     rpld_extbl;	/* replied extension block len	 */
+	__u8	     padx000[16 - sizeof(__u8 *)];
+	__u8 __user *req_parmb;		/* request parm block 'address'	 */
+	__u8	     padx001[16 - sizeof(__u8 *)];
+	__u8 __user *req_datab;		/* request data block 'address'	 */
+	__u8	     padx002[16 - sizeof(__u8 *)];
+	__u8 __user *rpl_parmb;		/* reply parm block 'address'	 */
+	__u8	     padx003[16 - sizeof(__u8 *)];
+	__u8 __user *rpl_datab;		/* reply data block 'address'	 */
+	__u8	     padx004[16 - sizeof(__u8 *)];
+	__u8 __user *req_extb;		/* request extension block 'addr'*/
+	__u8	     padx005[16 - sizeof(__u8 *)];
+	__u8 __user *rpl_extb;		/* reply extension block 'address'*/
+	__u16	     ccp_rtcode;	/* server return code		 */
+	__u16	     ccp_rscode;	/* server reason code		 */
+	__u32	     mac_data_len;	/* Mac Data Length		 */
+	__u8	     logon_id[8];	/* Logon Identifier		 */
+	__u8	     mac_value[8];	/* Mac Value			 */
+	__u8	     mac_content_flgs;	/* Mac content flag byte	 */
+	__u8	     pad_002;		/* Alignment			 */
+	__u16	     domain;		/* Domain			 */
+	__u8	     usage_domain[4];	/* Usage domain			 */
+	__u8	     cntrl_domain[4];	/* Control domain		 */
+	__u8	     S390enf_mask[4];	/* S/390 enforcement mask	 */
+	__u8	     pad_004[36];	/* reserved			 */
 } __attribute__((packed));
 
 /**
  * xcRB
  */
 struct ica_xcRB {
-	unsigned short	agent_ID;
-	unsigned int	user_defined;
-	unsigned short	request_ID;
-	unsigned int	request_control_blk_length;
-	unsigned char	padding1[16 - sizeof(char *)];
-	char __user    *request_control_blk_addr;
-	unsigned int	request_data_length;
-	char		padding2[16 - sizeof(char *)];
-	char __user    *request_data_address;
-	unsigned int	reply_control_blk_length;
-	char		padding3[16 - sizeof(char *)];
-	char __user    *reply_control_blk_addr;
-	unsigned int	reply_data_length;
-	char		padding4[16 - sizeof(char *)];
-	char __user    *reply_data_addr;
-	unsigned short	priority_window;
-	unsigned int	status;
+	__u16	      agent_ID;
+	__u32	      user_defined;
+	__u16	      request_ID;
+	__u32	      request_control_blk_length;
+	__u8	      _padding1[16 - sizeof(__u8 *)];
+	__u8 __user  *request_control_blk_addr;
+	__u32	      request_data_length;
+	__u8	      _padding2[16 - sizeof(__u8 *)];
+	__u8 __user  *request_data_address;
+	__u32	      reply_control_blk_length;
+	__u8	      _padding3[16 - sizeof(__u8 *)];
+	__u8 __user  *reply_control_blk_addr;
+	__u32	      reply_data_length;
+	__u8	      __padding4[16 - sizeof(__u8 *)];
+	__u8 __user  *reply_data_addr;
+	__u16	      priority_window;
+	__u32	      status;
 } __attribute__((packed));
 
 /**
@@ -161,17 +161,17 @@
  * @payload_len:	Payload length
  */
 struct ep11_cprb {
-	__u16		cprb_len;
-	unsigned char	cprb_ver_id;
-	unsigned char	pad_000[2];
-	unsigned char	flags;
-	unsigned char	func_id[2];
-	__u32		source_id;
-	__u32		target_id;
-	__u32		ret_code;
-	__u32		reserved1;
-	__u32		reserved2;
-	__u32		payload_len;
+	__u16	cprb_len;
+	__u8	cprb_ver_id;
+	__u8	pad_000[2];
+	__u8	flags;
+	__u8	func_id[2];
+	__u32	source_id;
+	__u32	target_id;
+	__u32	ret_code;
+	__u32	reserved1;
+	__u32	reserved2;
+	__u32	payload_len;
 } __attribute__((packed));
 
 /**
@@ -197,13 +197,13 @@
  */
 struct ep11_urb {
 	__u16		targets_num;
-	__u64		targets;
+	__u8 __user    *targets;
 	__u64		weight;
 	__u64		req_no;
 	__u64		req_len;
-	__u64		req;
+	__u8 __user    *req;
 	__u64		resp_len;
-	__u64		resp;
+	__u8 __user    *resp;
 } __attribute__((packed));
 
 /**
@@ -237,7 +237,9 @@
 	struct zcrypt_device_status_ext device[MAX_ZDEV_ENTRIES_EXT];
 };
 
-#define AUTOSELECT 0xFFFFFFFF
+#define AUTOSELECT  0xFFFFFFFF
+#define AUTOSEL_AP  ((__u16) 0xFFFF)
+#define AUTOSEL_DOM ((__u16) 0xFFFF)
 
 #define ZCRYPT_IOCTL_MAGIC 'z'
 
--- linux-ein-5.4.0.orig/arch/s390/kernel/Makefile
+++ linux-ein-5.4.0/arch/s390/kernel/Makefile
@@ -78,7 +78,11 @@
 obj-$(CONFIG_PERF_EVENTS)	+= perf_cpum_cf_diag.o
 
 obj-$(CONFIG_TRACEPOINTS)	+= trace.o
+obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE))	+= uv.o
 
 # vdso
 obj-y				+= vdso64/
 obj-$(CONFIG_COMPAT_VDSO)	+= vdso32/
+
+# kernel message catalog
+obj-$(CONFIG_KMSG_IDS)		+= kmsg.o
--- linux-ein-5.4.0.orig/arch/s390/kernel/asm-offsets.c
+++ linux-ein-5.4.0/arch/s390/kernel/asm-offsets.c
@@ -76,6 +76,7 @@
 	OFFSET(__VDSO_TK_SHIFT, vdso_data, tk_shift);
 	OFFSET(__VDSO_TS_DIR, vdso_data, ts_dir);
 	OFFSET(__VDSO_TS_END, vdso_data, ts_end);
+	OFFSET(__VDSO_CLOCK_REALTIME_RES, vdso_data, hrtimer_res);
 	OFFSET(__VDSO_ECTG_BASE, vdso_per_cpu_data, ectg_timer_base);
 	OFFSET(__VDSO_ECTG_USER, vdso_per_cpu_data, ectg_user_time);
 	OFFSET(__VDSO_CPU_NR, vdso_per_cpu_data, cpu_nr);
@@ -87,7 +88,6 @@
 	DEFINE(__CLOCK_REALTIME_COARSE, CLOCK_REALTIME_COARSE);
 	DEFINE(__CLOCK_MONOTONIC_COARSE, CLOCK_MONOTONIC_COARSE);
 	DEFINE(__CLOCK_THREAD_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID);
-	DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
 	DEFINE(__CLOCK_COARSE_RES, LOW_RES_NSEC);
 	BLANK();
 	/* idle data offsets */
@@ -125,6 +125,8 @@
 	OFFSET(__LC_EXT_DAMAGE_CODE, lowcore, external_damage_code);
 	OFFSET(__LC_MCCK_FAIL_STOR_ADDR, lowcore, failing_storage_address);
 	OFFSET(__LC_LAST_BREAK, lowcore, breaking_event_addr);
+	OFFSET(__LC_RETURN_LPSWE, lowcore, return_lpswe);
+	OFFSET(__LC_RETURN_MCCK_LPSWE, lowcore, return_mcck_lpswe);
 	OFFSET(__LC_RST_OLD_PSW, lowcore, restart_old_psw);
 	OFFSET(__LC_EXT_OLD_PSW, lowcore, external_old_psw);
 	OFFSET(__LC_SVC_OLD_PSW, lowcore, svc_old_psw);
--- linux-ein-5.4.0.orig/arch/s390/kernel/cpcmd.c
+++ linux-ein-5.4.0/arch/s390/kernel/cpcmd.c
@@ -37,10 +37,12 @@
 
 static int diag8_response(int cmdlen, char *response, int *rlen)
 {
+	unsigned long _cmdlen = cmdlen | 0x40000000L;
+	unsigned long _rlen = *rlen;
 	register unsigned long reg2 asm ("2") = (addr_t) cpcmd_buf;
 	register unsigned long reg3 asm ("3") = (addr_t) response;
-	register unsigned long reg4 asm ("4") = cmdlen | 0x40000000L;
-	register unsigned long reg5 asm ("5") = *rlen;
+	register unsigned long reg4 asm ("4") = _cmdlen;
+	register unsigned long reg5 asm ("5") = _rlen;
 
 	asm volatile(
 		"	diag	%2,%0,0x8\n"
--- linux-ein-5.4.0.orig/arch/s390/kernel/crash_dump.c
+++ linux-ein-5.4.0/arch/s390/kernel/crash_dump.c
@@ -44,7 +44,7 @@
 	u64 fprs[16];
 	u32 fpc;
 	u32 prefix;
-	u64 todpreg;
+	u32 todpreg;
 	u64 timer;
 	u64 todcmp;
 	u64 vxrs_low[16];
--- linux-ein-5.4.0.orig/arch/s390/kernel/debug.c
+++ linux-ein-5.4.0/arch/s390/kernel/debug.c
@@ -198,9 +198,10 @@
 	if (!areas)
 		goto fail_malloc_areas;
 	for (i = 0; i < nr_areas; i++) {
+		/* GFP_NOWARN to avoid user triggerable WARN, we handle fails */
 		areas[i] = kmalloc_array(pages_per_area,
 					 sizeof(debug_entry_t *),
-					 GFP_KERNEL);
+					 GFP_KERNEL | __GFP_NOWARN);
 		if (!areas[i])
 			goto fail_malloc_areas2;
 		for (j = 0; j < pages_per_area; j++) {
@@ -326,24 +327,6 @@
 		goto out;
 
 	rc->mode = mode & ~S_IFMT;
-
-	/* create root directory */
-	rc->debugfs_root_entry = debugfs_create_dir(rc->name,
-						    debug_debugfs_root_entry);
-
-	/* append new element to linked list */
-	if (!debug_area_first) {
-		/* first element in list */
-		debug_area_first = rc;
-		rc->prev = NULL;
-	} else {
-		/* append element to end of list */
-		debug_area_last->next = rc;
-		rc->prev = debug_area_last;
-	}
-	debug_area_last = rc;
-	rc->next = NULL;
-
 	refcount_set(&rc->ref_count, 1);
 out:
 	return rc;
@@ -403,27 +386,10 @@
  */
 static void debug_info_put(debug_info_t *db_info)
 {
-	int i;
-
 	if (!db_info)
 		return;
-	if (refcount_dec_and_test(&db_info->ref_count)) {
-		for (i = 0; i < DEBUG_MAX_VIEWS; i++) {
-			if (!db_info->views[i])
-				continue;
-			debugfs_remove(db_info->debugfs_entries[i]);
-		}
-		debugfs_remove(db_info->debugfs_root_entry);
-		if (db_info == debug_area_first)
-			debug_area_first = db_info->next;
-		if (db_info == debug_area_last)
-			debug_area_last = db_info->prev;
-		if (db_info->prev)
-			db_info->prev->next = db_info->next;
-		if (db_info->next)
-			db_info->next->prev = db_info->prev;
+	if (refcount_dec_and_test(&db_info->ref_count))
 		debug_info_free(db_info);
-	}
 }
 
 /*
@@ -647,6 +613,31 @@
 	return 0; /* success */
 }
 
+/* Create debugfs entries and add to internal list. */
+static void _debug_register(debug_info_t *id)
+{
+	/* create root directory */
+	id->debugfs_root_entry = debugfs_create_dir(id->name,
+						    debug_debugfs_root_entry);
+
+	/* append new element to linked list */
+	if (!debug_area_first) {
+		/* first element in list */
+		debug_area_first = id;
+		id->prev = NULL;
+	} else {
+		/* append element to end of list */
+		debug_area_last->next = id;
+		id->prev = debug_area_last;
+	}
+	debug_area_last = id;
+	id->next = NULL;
+
+	debug_register_view(id, &debug_level_view);
+	debug_register_view(id, &debug_flush_view);
+	debug_register_view(id, &debug_pages_view);
+}
+
 /**
  * debug_register_mode() - creates and initializes debug area.
  *
@@ -676,19 +667,16 @@
 	if ((uid != 0) || (gid != 0))
 		pr_warn("Root becomes the owner of all s390dbf files in sysfs\n");
 	BUG_ON(!initialized);
-	mutex_lock(&debug_mutex);
 
 	/* create new debug_info */
 	rc = debug_info_create(name, pages_per_area, nr_areas, buf_size, mode);
-	if (!rc)
-		goto out;
-	debug_register_view(rc, &debug_level_view);
-	debug_register_view(rc, &debug_flush_view);
-	debug_register_view(rc, &debug_pages_view);
-out:
-	if (!rc)
+	if (rc) {
+		mutex_lock(&debug_mutex);
+		_debug_register(rc);
+		mutex_unlock(&debug_mutex);
+	} else {
 		pr_err("Registering debug feature %s failed\n", name);
-	mutex_unlock(&debug_mutex);
+	}
 	return rc;
 }
 EXPORT_SYMBOL(debug_register_mode);
@@ -717,6 +705,27 @@
 }
 EXPORT_SYMBOL(debug_register);
 
+/* Remove debugfs entries and remove from internal list. */
+static void _debug_unregister(debug_info_t *id)
+{
+	int i;
+
+	for (i = 0; i < DEBUG_MAX_VIEWS; i++) {
+		if (!id->views[i])
+			continue;
+		debugfs_remove(id->debugfs_entries[i]);
+	}
+	debugfs_remove(id->debugfs_root_entry);
+	if (id == debug_area_first)
+		debug_area_first = id->next;
+	if (id == debug_area_last)
+		debug_area_last = id->prev;
+	if (id->prev)
+		id->prev->next = id->next;
+	if (id->next)
+		id->next->prev = id->prev;
+}
+
 /**
  * debug_unregister() - give back debug area.
  *
@@ -730,8 +739,10 @@
 	if (!id)
 		return;
 	mutex_lock(&debug_mutex);
-	debug_info_put(id);
+	_debug_unregister(id);
 	mutex_unlock(&debug_mutex);
+
+	debug_info_put(id);
 }
 EXPORT_SYMBOL(debug_unregister);
 
--- linux-ein-5.4.0.orig/arch/s390/kernel/diag.c
+++ linux-ein-5.4.0/arch/s390/kernel/diag.c
@@ -84,7 +84,7 @@
 
 static void *show_diag_stat_start(struct seq_file *m, loff_t *pos)
 {
-	return *pos <= nr_cpu_ids ? (void *)((unsigned long) *pos + 1) : NULL;
+	return *pos <= NR_DIAG_STAT ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 
 static void *show_diag_stat_next(struct seq_file *m, void *v, loff_t *pos)
@@ -133,7 +133,7 @@
 }
 EXPORT_SYMBOL(diag_stat_inc);
 
-void diag_stat_inc_norecursion(enum diag_stat_enum nr)
+void notrace diag_stat_inc_norecursion(enum diag_stat_enum nr)
 {
 	this_cpu_inc(diag_stat.counter[nr]);
 	trace_s390_diagnose_norecursion(diag_map[nr].code);
--- linux-ein-5.4.0.orig/arch/s390/kernel/dis.c
+++ linux-ein-5.4.0/arch/s390/kernel/dis.c
@@ -461,10 +461,11 @@
 				ptr += sprintf(ptr, "%%c%i", value);
 			else if (operand->flags & OPERAND_VR)
 				ptr += sprintf(ptr, "%%v%i", value);
-			else if (operand->flags & OPERAND_PCREL)
-				ptr += sprintf(ptr, "%lx", (signed int) value
-								      + addr);
-			else if (operand->flags & OPERAND_SIGNED)
+			else if (operand->flags & OPERAND_PCREL) {
+				void *pcrel = (void *)((int)value + addr);
+
+				ptr += sprintf(ptr, "%px", pcrel);
+			} else if (operand->flags & OPERAND_SIGNED)
 				ptr += sprintf(ptr, "%i", value);
 			else
 				ptr += sprintf(ptr, "%u", value);
@@ -536,7 +537,7 @@
 		else
 			*ptr++ = ' ';
 		addr = regs->psw.addr + start - 32;
-		ptr += sprintf(ptr, "%016lx: ", addr);
+		ptr += sprintf(ptr, "%px: ", (void *)addr);
 		if (start + opsize >= end)
 			break;
 		for (i = 0; i < opsize; i++)
@@ -556,7 +557,7 @@
 
 void print_fn_code(unsigned char *code, unsigned long len)
 {
-	char buffer[64], *ptr;
+	char buffer[128], *ptr;
 	int opsize, i;
 
 	while (len) {
@@ -564,7 +565,7 @@
 		opsize = insn_length(*code);
 		if (opsize > len)
 			break;
-		ptr += sprintf(ptr, "%p: ", code);
+		ptr += sprintf(ptr, "%px: ", code);
 		for (i = 0; i < opsize; i++)
 			ptr += sprintf(ptr, "%02x", code[i]);
 		*ptr++ = '\t';
--- linux-ein-5.4.0.orig/arch/s390/kernel/dumpstack.c
+++ linux-ein-5.4.0/arch/s390/kernel/dumpstack.c
@@ -210,5 +210,5 @@
 	if (panic_on_oops)
 		panic("Fatal exception: panic_on_oops");
 	oops_exit();
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
--- linux-ein-5.4.0.orig/arch/s390/kernel/early.c
+++ linux-ein-5.4.0/arch/s390/kernel/early.c
@@ -169,6 +169,8 @@
 	psw_t psw;
 
 	psw.mask = PSW_MASK_BASE | PSW_DEFAULT_KEY | PSW_MASK_EA | PSW_MASK_BA;
+	if (IS_ENABLED(CONFIG_KASAN))
+		psw.mask |= PSW_MASK_DAT;
 	psw.addr = (unsigned long) s390_base_ext_handler;
 	S390_lowcore.external_new_psw = psw;
 	psw.addr = (unsigned long) s390_base_pgm_handler;
@@ -250,6 +252,10 @@
 		clock_comparator_max = -1ULL >> 1;
 		__ctl_set_bit(0, 53);
 	}
+	if (IS_ENABLED(CONFIG_PCI) && test_facility(153)) {
+		S390_lowcore.machine_flags |= MACHINE_FLAG_PCI_MIO;
+		/* the control bit is set during PCI initialization */
+	}
 }
 
 static inline void save_vector_registers(void)
--- linux-ein-5.4.0.orig/arch/s390/kernel/entry.S
+++ linux-ein-5.4.0/arch/s390/kernel/entry.S
@@ -115,26 +115,29 @@
 
 	.macro	SWITCH_ASYNC savearea,timer
 	tmhh	%r8,0x0001		# interrupting from user ?
-	jnz	1f
+	jnz	2f
 	lgr	%r14,%r9
+	cghi	%r14,__LC_RETURN_LPSWE
+	je	0f
 	slg	%r14,BASED(.Lcritical_start)
 	clg	%r14,BASED(.Lcritical_length)
-	jhe	0f
+	jhe	1f
+0:
 	lghi	%r11,\savearea		# inside critical section, do cleanup
 	brasl	%r14,cleanup_critical
 	tmhh	%r8,0x0001		# retest problem state after cleanup
-	jnz	1f
-0:	lg	%r14,__LC_ASYNC_STACK	# are we already on the target stack?
+	jnz	2f
+1:	lg	%r14,__LC_ASYNC_STACK	# are we already on the target stack?
 	slgr	%r14,%r15
 	srag	%r14,%r14,STACK_SHIFT
-	jnz	2f
+	jnz	3f
 	CHECK_STACK \savearea
 	aghi	%r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
-	j	3f
-1:	UPDATE_VTIME %r14,%r15,\timer
+	j	4f
+2:	UPDATE_VTIME %r14,%r15,\timer
 	BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
-2:	lg	%r15,__LC_ASYNC_STACK	# load async stack
-3:	la	%r11,STACK_FRAME_OVERHEAD(%r15)
+3:	lg	%r15,__LC_ASYNC_STACK	# load async stack
+4:	la	%r11,STACK_FRAME_OVERHEAD(%r15)
 	.endm
 
 	.macro UPDATE_VTIME w1,w2,enter_timer
@@ -365,9 +368,9 @@
 	jnz	.Lsysc_nr_ok
 	# svc 0: system call number in %r1
 	llgfr	%r1,%r1				# clear high word in r1
+	sth	%r1,__PT_INT_CODE+2(%r11)
 	cghi	%r1,NR_syscalls
 	jnl	.Lsysc_nr_ok
-	sth	%r1,__PT_INT_CODE+2(%r11)
 	slag	%r8,%r1,3
 .Lsysc_nr_ok:
 	xc	__SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
@@ -401,7 +404,7 @@
 	stpt	__LC_EXIT_TIMER
 	mvc	__VDSO_ECTG_BASE(16,%r14),__LC_EXIT_TIMER
 	lmg	%r11,%r15,__PT_R11(%r11)
-	lpswe	__LC_RETURN_PSW
+	b	__LC_RETURN_LPSWE(%r0)
 .Lsysc_done:
 
 #
@@ -608,43 +611,50 @@
 	BPOFF
 	stmg	%r8,%r15,__LC_SAVE_AREA_SYNC
 	lg	%r10,__LC_LAST_BREAK
-	lg	%r12,__LC_CURRENT
+	srag	%r11,%r10,12
+	jnz	0f
+	/* if __LC_LAST_BREAK is < 4096, it contains one of
+	 * the lpswe addresses in lowcore. Set it to 1 (initial state)
+	 * to prevent leaking that address to userspace.
+	 */
+	lghi	%r10,1
+0:	lg	%r12,__LC_CURRENT
 	lghi	%r11,0
 	larl	%r13,cleanup_critical
 	lmg	%r8,%r9,__LC_PGM_OLD_PSW
 	tmhh	%r8,0x0001		# test problem state bit
-	jnz	2f			# -> fault in user space
+	jnz	3f			# -> fault in user space
 #if IS_ENABLED(CONFIG_KVM)
 	# cleanup critical section for program checks in sie64a
 	lgr	%r14,%r9
 	slg	%r14,BASED(.Lsie_critical_start)
 	clg	%r14,BASED(.Lsie_critical_length)
-	jhe	0f
+	jhe	1f
 	lg	%r14,__SF_SIE_CONTROL(%r15)	# get control block pointer
 	ni	__SIE_PROG0C+3(%r14),0xfe	# no longer in SIE
 	lctlg	%c1,%c1,__LC_USER_ASCE		# load primary asce
 	larl	%r9,sie_exit			# skip forward to sie_exit
 	lghi	%r11,_PIF_GUEST_FAULT
 #endif
-0:	tmhh	%r8,0x4000		# PER bit set in old PSW ?
-	jnz	1f			# -> enabled, can't be a double fault
+1:	tmhh	%r8,0x4000		# PER bit set in old PSW ?
+	jnz	2f			# -> enabled, can't be a double fault
 	tm	__LC_PGM_ILC+3,0x80	# check for per exception
 	jnz	.Lpgm_svcper		# -> single stepped svc
-1:	CHECK_STACK __LC_SAVE_AREA_SYNC
+2:	CHECK_STACK __LC_SAVE_AREA_SYNC
 	aghi	%r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
-	# CHECK_VMAP_STACK branches to stack_overflow or 4f
-	CHECK_VMAP_STACK __LC_SAVE_AREA_SYNC,4f
-2:	UPDATE_VTIME %r14,%r15,__LC_SYNC_ENTER_TIMER
+	# CHECK_VMAP_STACK branches to stack_overflow or 5f
+	CHECK_VMAP_STACK __LC_SAVE_AREA_SYNC,5f
+3:	UPDATE_VTIME %r14,%r15,__LC_SYNC_ENTER_TIMER
 	BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
 	lg	%r15,__LC_KERNEL_STACK
 	lgr	%r14,%r12
 	aghi	%r14,__TASK_thread	# pointer to thread_struct
 	lghi	%r13,__LC_PGM_TDB
 	tm	__LC_PGM_ILC+2,0x02	# check for transaction abort
-	jz	3f
+	jz	4f
 	mvc	__THREAD_trap_tdb(256,%r14),0(%r13)
-3:	stg	%r10,__THREAD_last_break(%r14)
-4:	lgr	%r13,%r11
+4:	stg	%r10,__THREAD_last_break(%r14)
+5:	lgr	%r13,%r11
 	la	%r11,STACK_FRAME_OVERHEAD(%r15)
 	stmg	%r0,%r7,__PT_R0(%r11)
 	# clear user controlled registers to prevent speculative use
@@ -663,14 +673,14 @@
 	stg	%r13,__PT_FLAGS(%r11)
 	stg	%r10,__PT_ARGS(%r11)
 	tm	__LC_PGM_ILC+3,0x80	# check for per exception
-	jz	5f
+	jz	6f
 	tmhh	%r8,0x0001		# kernel per event ?
 	jz	.Lpgm_kprobe
 	oi	__PT_FLAGS+7(%r11),_PIF_PER_TRAP
 	mvc	__THREAD_per_address(8,%r14),__LC_PER_ADDRESS
 	mvc	__THREAD_per_cause(2,%r14),__LC_PER_CODE
 	mvc	__THREAD_per_paid(1,%r14),__LC_PER_ACCESS_ID
-5:	REENABLE_IRQS
+6:	REENABLE_IRQS
 	xc	__SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
 	larl	%r1,pgm_check_table
 	llgh	%r10,__PT_INT_CODE+2(%r11)
@@ -775,7 +785,7 @@
 	mvc	__VDSO_ECTG_BASE(16,%r14),__LC_EXIT_TIMER
 .Lio_exit_kernel:
 	lmg	%r11,%r15,__PT_R11(%r11)
-	lpswe	__LC_RETURN_PSW
+	b	__LC_RETURN_LPSWE(%r0)
 .Lio_done:
 
 #
@@ -983,6 +993,7 @@
  * Load idle PSW. The second "half" of this function is in .Lcleanup_idle.
  */
 ENTRY(psw_idle)
+	stg	%r14,(__SF_GPRS+8*8)(%r15)
 	stg	%r3,__SF_EMPTY(%r15)
 	larl	%r1,.Lpsw_idle_lpsw+4
 	stg	%r1,__SF_EMPTY+8(%r15)
@@ -1214,7 +1225,7 @@
 	stpt	__LC_EXIT_TIMER
 	mvc	__VDSO_ECTG_BASE(16,%r14),__LC_EXIT_TIMER
 0:	lmg	%r11,%r15,__PT_R11(%r11)
-	lpswe	__LC_RETURN_MCCK_PSW
+	b	__LC_RETURN_MCCK_LPSWE
 
 .Lmcck_panic:
 	lg	%r15,__LC_NODAT_STACK
@@ -1271,6 +1282,8 @@
 #endif
 
 ENTRY(cleanup_critical)
+	cghi	%r9,__LC_RETURN_LPSWE
+	je	.Lcleanup_lpswe
 #if IS_ENABLED(CONFIG_KVM)
 	clg	%r9,BASED(.Lcleanup_table_sie)	# .Lsie_gmap
 	jl	0f
@@ -1424,6 +1437,7 @@
 	mvc	__LC_RETURN_PSW(16),__PT_PSW(%r9)
 	mvc	0(64,%r11),__PT_R8(%r9)
 	lmg	%r0,%r7,__PT_R0(%r9)
+.Lcleanup_lpswe:
 1:	lmg	%r8,%r9,__LC_RETURN_PSW
 	BR_EX	%r14,%r11
 .Lcleanup_sysc_restore_insn:
--- linux-ein-5.4.0.orig/arch/s390/kernel/entry.h
+++ linux-ein-5.4.0/arch/s390/kernel/entry.h
@@ -24,6 +24,8 @@
 
 void do_protection_exception(struct pt_regs *regs);
 void do_dat_exception(struct pt_regs *regs);
+void do_secure_storage_access(struct pt_regs *regs);
+void do_non_secure_storage_access(struct pt_regs *regs);
 
 void addressing_exception(struct pt_regs *regs);
 void data_exception(struct pt_regs *regs);
--- linux-ein-5.4.0.orig/arch/s390/kernel/ftrace.c
+++ linux-ein-5.4.0/arch/s390/kernel/ftrace.c
@@ -57,6 +57,7 @@
  * >	brasl	%r0,ftrace_caller	# offset 0
  */
 
+void *ftrace_func __read_mostly = ftrace_stub;
 unsigned long ftrace_plt;
 
 static inline void ftrace_generate_orig_insn(struct ftrace_insn *insn)
@@ -72,15 +73,6 @@
 #endif
 }
 
-static inline int is_kprobe_on_ftrace(struct ftrace_insn *insn)
-{
-#ifdef CONFIG_KPROBES
-	if (insn->opc == BREAKPOINT_INSTRUCTION)
-		return 1;
-#endif
-	return 0;
-}
-
 static inline void ftrace_generate_kprobe_nop_insn(struct ftrace_insn *insn)
 {
 #ifdef CONFIG_KPROBES
@@ -114,16 +106,6 @@
 		/* Initial code replacement */
 		ftrace_generate_orig_insn(&orig);
 		ftrace_generate_nop_insn(&new);
-	} else if (is_kprobe_on_ftrace(&old)) {
-		/*
-		 * If we find a breakpoint instruction, a kprobe has been
-		 * placed at the beginning of the function. We write the
-		 * constant KPROBE_ON_FTRACE_NOP into the remaining four
-		 * bytes of the original instruction so that the kprobes
-		 * handler can execute a nop, if it reaches this breakpoint.
-		 */
-		ftrace_generate_kprobe_call_insn(&orig);
-		ftrace_generate_kprobe_nop_insn(&new);
 	} else {
 		/* Replace ftrace call with a nop. */
 		ftrace_generate_call_insn(&orig, rec->ip);
@@ -142,21 +124,10 @@
 
 	if (probe_kernel_read(&old, (void *) rec->ip, sizeof(old)))
 		return -EFAULT;
-	if (is_kprobe_on_ftrace(&old)) {
-		/*
-		 * If we find a breakpoint instruction, a kprobe has been
-		 * placed at the beginning of the function. We write the
-		 * constant KPROBE_ON_FTRACE_CALL into the remaining four
-		 * bytes of the original instruction so that the kprobes
-		 * handler can execute a brasl if it reaches this breakpoint.
-		 */
-		ftrace_generate_kprobe_nop_insn(&orig);
-		ftrace_generate_kprobe_call_insn(&new);
-	} else {
-		/* Replace nop with an ftrace call. */
-		ftrace_generate_nop_insn(&orig);
-		ftrace_generate_call_insn(&new, rec->ip);
-	}
+	/* Replace nop with an ftrace call. */
+	ftrace_generate_nop_insn(&orig);
+	ftrace_generate_call_insn(&new, rec->ip);
+
 	/* Verify that the to be replaced code matches what we expect. */
 	if (memcmp(&orig, &old, sizeof(old)))
 		return -EINVAL;
@@ -166,6 +137,7 @@
 
 int ftrace_update_ftrace_func(ftrace_func_t func)
 {
+	ftrace_func = func;
 	return 0;
 }
 
@@ -241,3 +213,45 @@
 }
 
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
+
+#ifdef CONFIG_KPROBES_ON_FTRACE
+void kprobe_ftrace_handler(unsigned long ip, unsigned long parent_ip,
+		struct ftrace_ops *ops, struct pt_regs *regs)
+{
+	struct kprobe_ctlblk *kcb;
+	struct kprobe *p = get_kprobe((kprobe_opcode_t *)ip);
+
+	if (unlikely(!p) || kprobe_disabled(p))
+		return;
+
+	if (kprobe_running()) {
+		kprobes_inc_nmissed_count(p);
+		return;
+	}
+
+	__this_cpu_write(current_kprobe, p);
+
+	kcb = get_kprobe_ctlblk();
+	kcb->kprobe_status = KPROBE_HIT_ACTIVE;
+
+	instruction_pointer_set(regs, ip);
+
+	if (!p->pre_handler || !p->pre_handler(p, regs)) {
+
+		instruction_pointer_set(regs, ip + MCOUNT_INSN_SIZE);
+
+		if (unlikely(p->post_handler)) {
+			kcb->kprobe_status = KPROBE_HIT_SSDONE;
+			p->post_handler(p, regs, 0);
+		}
+	}
+	__this_cpu_write(current_kprobe, NULL);
+}
+NOKPROBE_SYMBOL(kprobe_ftrace_handler);
+
+int arch_prepare_kprobe_ftrace(struct kprobe *p)
+{
+	p->ainsn.insn = NULL;
+	return 0;
+}
+#endif
--- linux-ein-5.4.0.orig/arch/s390/kernel/ipl.c
+++ linux-ein-5.4.0/arch/s390/kernel/ipl.c
@@ -39,6 +39,7 @@
 #define IPL_CCW_STR		"ccw"
 #define IPL_FCP_STR		"fcp"
 #define IPL_FCP_DUMP_STR	"fcp_dump"
+#define IPL_NVME_STR		"nvme"
 #define IPL_NSS_STR		"nss"
 
 #define DUMP_CCW_STR		"ccw"
@@ -93,6 +94,8 @@
 		return IPL_FCP_DUMP_STR;
 	case IPL_TYPE_NSS:
 		return IPL_NSS_STR;
+	case IPL_TYPE_NVME:
+		return IPL_NVME_STR;
 	case IPL_TYPE_UNKNOWN:
 	default:
 		return IPL_UNKNOWN_STR;
@@ -133,6 +136,7 @@
 
 static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN;
 static struct ipl_parameter_block *reipl_block_fcp;
+static struct ipl_parameter_block *reipl_block_nvme;
 static struct ipl_parameter_block *reipl_block_ccw;
 static struct ipl_parameter_block *reipl_block_nss;
 static struct ipl_parameter_block *reipl_block_actual;
@@ -258,6 +262,8 @@
 			return IPL_TYPE_FCP_DUMP;
 		else
 			return IPL_TYPE_FCP;
+	case IPL_PBT_NVME:
+		return IPL_TYPE_NVME;
 	}
 	return IPL_TYPE_UNKNOWN;
 }
@@ -314,6 +320,8 @@
 	case IPL_TYPE_FCP:
 	case IPL_TYPE_FCP_DUMP:
 		return sprintf(page, "0.0.%04x\n", ipl_block.fcp.devno);
+	case IPL_TYPE_NVME:
+		return sprintf(page, "%08ux\n", ipl_block.nvme.fid);
 	default:
 		return 0;
 	}
@@ -342,15 +350,35 @@
 
 	return memory_read_from_buffer(buf, count, &off, scp_data, size);
 }
+
+static ssize_t ipl_nvme_scp_data_read(struct file *filp, struct kobject *kobj,
+				 struct bin_attribute *attr, char *buf,
+				 loff_t off, size_t count)
+{
+	unsigned int size = ipl_block.nvme.scp_data_len;
+	void *scp_data = &ipl_block.nvme.scp_data;
+
+	return memory_read_from_buffer(buf, count, &off, scp_data, size);
+}
+
 static struct bin_attribute ipl_scp_data_attr =
 	__BIN_ATTR(scp_data, S_IRUGO, ipl_scp_data_read, NULL, PAGE_SIZE);
 
+static struct bin_attribute ipl_nvme_scp_data_attr =
+	__BIN_ATTR(scp_data, S_IRUGO, ipl_nvme_scp_data_read, NULL, PAGE_SIZE);
+
 static struct bin_attribute *ipl_fcp_bin_attrs[] = {
 	&ipl_parameter_attr,
 	&ipl_scp_data_attr,
 	NULL,
 };
 
+static struct bin_attribute *ipl_nvme_bin_attrs[] = {
+	&ipl_parameter_attr,
+	&ipl_nvme_scp_data_attr,
+	NULL,
+};
+
 /* FCP ipl device attributes */
 
 DEFINE_IPL_ATTR_RO(ipl_fcp, wwpn, "0x%016llx\n",
@@ -362,6 +390,16 @@
 DEFINE_IPL_ATTR_RO(ipl_fcp, br_lba, "%lld\n",
 		   (unsigned long long)ipl_block.fcp.br_lba);
 
+/* NVMe ipl device attributes */
+DEFINE_IPL_ATTR_RO(ipl_nvme, fid, "0x%08llx\n",
+		   (unsigned long long)ipl_block.nvme.fid);
+DEFINE_IPL_ATTR_RO(ipl_nvme, nsid, "0x%08llx\n",
+		   (unsigned long long)ipl_block.nvme.nsid);
+DEFINE_IPL_ATTR_RO(ipl_nvme, bootprog, "%lld\n",
+		   (unsigned long long)ipl_block.nvme.bootprog);
+DEFINE_IPL_ATTR_RO(ipl_nvme, br_lba, "%lld\n",
+		   (unsigned long long)ipl_block.nvme.br_lba);
+
 static ssize_t ipl_ccw_loadparm_show(struct kobject *kobj,
 				     struct kobj_attribute *attr, char *page)
 {
@@ -396,6 +434,24 @@
 	.bin_attrs = ipl_fcp_bin_attrs,
 };
 
+static struct attribute *ipl_nvme_attrs[] = {
+	&sys_ipl_type_attr.attr,
+	&sys_ipl_nvme_fid_attr.attr,
+	&sys_ipl_nvme_nsid_attr.attr,
+	&sys_ipl_nvme_bootprog_attr.attr,
+	&sys_ipl_nvme_br_lba_attr.attr,
+	&sys_ipl_ccw_loadparm_attr.attr,
+	&sys_ipl_secure_attr.attr,
+	&sys_ipl_has_secure_attr.attr,
+	NULL,
+};
+
+static struct attribute_group ipl_nvme_attr_group = {
+	.attrs = ipl_nvme_attrs,
+	.bin_attrs = ipl_nvme_bin_attrs,
+};
+
+
 /* CCW ipl device attributes */
 
 static struct attribute *ipl_ccw_attrs_vm[] = {
@@ -429,6 +485,8 @@
 
 static struct attribute *ipl_unknown_attrs[] = {
 	&sys_ipl_type_attr.attr,
+	&sys_ipl_secure_attr.attr,
+	&sys_ipl_has_secure_attr.attr,
 	NULL,
 };
 
@@ -471,6 +529,9 @@
 	case IPL_TYPE_FCP_DUMP:
 		rc = sysfs_create_group(&ipl_kset->kobj, &ipl_fcp_attr_group);
 		break;
+	case IPL_TYPE_NVME:
+		rc = sysfs_create_group(&ipl_kset->kobj, &ipl_nvme_attr_group);
+		break;
 	default:
 		rc = sysfs_create_group(&ipl_kset->kobj,
 					&ipl_unknown_attr_group);
@@ -706,6 +767,93 @@
 	.bin_attrs = reipl_fcp_bin_attrs,
 };
 
+/* NVME reipl device attributes */
+
+static ssize_t reipl_nvme_scpdata_read(struct file *filp, struct kobject *kobj,
+				      struct bin_attribute *attr,
+				      char *buf, loff_t off, size_t count)
+{
+	size_t size = reipl_block_nvme->nvme.scp_data_len;
+	void *scp_data = reipl_block_nvme->nvme.scp_data;
+
+	return memory_read_from_buffer(buf, count, &off, scp_data, size);
+}
+
+static ssize_t reipl_nvme_scpdata_write(struct file *filp, struct kobject *kobj,
+				       struct bin_attribute *attr,
+				       char *buf, loff_t off, size_t count)
+{
+	size_t scpdata_len = count;
+	size_t padding;
+
+	if (off)
+		return -EINVAL;
+
+	memcpy(reipl_block_nvme->nvme.scp_data, buf, count);
+	if (scpdata_len % 8) {
+		padding = 8 - (scpdata_len % 8);
+		memset(reipl_block_nvme->nvme.scp_data + scpdata_len,
+		       0, padding);
+		scpdata_len += padding;
+	}
+
+	reipl_block_nvme->hdr.len = IPL_BP_FCP_LEN + scpdata_len;
+	reipl_block_nvme->nvme.len = IPL_BP0_FCP_LEN + scpdata_len;
+	reipl_block_nvme->nvme.scp_data_len = scpdata_len;
+
+	return count;
+}
+
+static struct bin_attribute sys_reipl_nvme_scp_data_attr =
+	__BIN_ATTR(scp_data, (S_IRUGO | S_IWUSR), reipl_nvme_scpdata_read,
+		   reipl_nvme_scpdata_write, DIAG308_SCPDATA_SIZE);
+
+static struct bin_attribute *reipl_nvme_bin_attrs[] = {
+	&sys_reipl_nvme_scp_data_attr,
+	NULL,
+};
+
+DEFINE_IPL_ATTR_RW(reipl_nvme, fid, "0x%08llx\n", "%llx\n",
+		   reipl_block_nvme->nvme.fid);
+DEFINE_IPL_ATTR_RW(reipl_nvme, nsid, "0x%08llx\n", "%llx\n",
+		   reipl_block_nvme->nvme.nsid);
+DEFINE_IPL_ATTR_RW(reipl_nvme, bootprog, "%lld\n", "%lld\n",
+		   reipl_block_nvme->nvme.bootprog);
+DEFINE_IPL_ATTR_RW(reipl_nvme, br_lba, "%lld\n", "%lld\n",
+		   reipl_block_nvme->nvme.br_lba);
+
+/* nvme wrapper */
+static ssize_t reipl_nvme_loadparm_show(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *page)
+{
+	return reipl_generic_loadparm_show(reipl_block_nvme, page);
+}
+
+static ssize_t reipl_nvme_loadparm_store(struct kobject *kobj,
+					struct kobj_attribute *attr,
+					const char *buf, size_t len)
+{
+	return reipl_generic_loadparm_store(reipl_block_nvme, buf, len);
+}
+
+static struct kobj_attribute sys_reipl_nvme_loadparm_attr =
+	__ATTR(loadparm, S_IRUGO | S_IWUSR, reipl_nvme_loadparm_show,
+					    reipl_nvme_loadparm_store);
+
+static struct attribute *reipl_nvme_attrs[] = {
+	&sys_reipl_nvme_fid_attr.attr,
+	&sys_reipl_nvme_nsid_attr.attr,
+	&sys_reipl_nvme_bootprog_attr.attr,
+	&sys_reipl_nvme_br_lba_attr.attr,
+	&sys_reipl_nvme_loadparm_attr.attr,
+	NULL,
+};
+
+static struct attribute_group reipl_nvme_attr_group = {
+	.attrs = reipl_nvme_attrs,
+	.bin_attrs = reipl_nvme_bin_attrs
+};
+
 /* CCW reipl device attributes */
 DEFINE_IPL_CCW_ATTR_RW(reipl_ccw, device, reipl_block_ccw->ccw);
 
@@ -850,6 +998,9 @@
 	case IPL_TYPE_FCP:
 		reipl_block_actual = reipl_block_fcp;
 		break;
+	case IPL_TYPE_NVME:
+		reipl_block_actual = reipl_block_nvme;
+		break;
 	case IPL_TYPE_NSS:
 		reipl_block_actual = reipl_block_nss;
 		break;
@@ -876,6 +1027,8 @@
 		rc = reipl_set_type(IPL_TYPE_CCW);
 	else if (strncmp(buf, IPL_FCP_STR, strlen(IPL_FCP_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_FCP);
+	else if (strncmp(buf, IPL_NVME_STR, strlen(IPL_NVME_STR)) == 0)
+		rc = reipl_set_type(IPL_TYPE_NVME);
 	else if (strncmp(buf, IPL_NSS_STR, strlen(IPL_NSS_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_NSS);
 	return (rc != 0) ? rc : len;
@@ -886,6 +1039,7 @@
 
 static struct kset *reipl_kset;
 static struct kset *reipl_fcp_kset;
+static struct kset *reipl_nvme_kset;
 
 static void __reipl_run(void *unused)
 {
@@ -898,6 +1052,10 @@
 		diag308(DIAG308_SET, reipl_block_fcp);
 		diag308(DIAG308_LOAD_CLEAR, NULL);
 		break;
+	case IPL_TYPE_NVME:
+		diag308(DIAG308_SET, reipl_block_nvme);
+		diag308(DIAG308_LOAD_CLEAR, NULL);
+		break;
 	case IPL_TYPE_NSS:
 		diag308(DIAG308_SET, reipl_block_nss);
 		diag308(DIAG308_LOAD_CLEAR, NULL);
@@ -1034,6 +1192,49 @@
 	return 0;
 }
 
+static int __init reipl_nvme_init(void)
+{
+	int rc;
+
+	reipl_block_nvme = (void *) get_zeroed_page(GFP_KERNEL);
+	if (!reipl_block_nvme)
+		return -ENOMEM;
+
+	/* sysfs: create kset for mixing attr group and bin attrs */
+	reipl_nvme_kset = kset_create_and_add(IPL_NVME_STR, NULL,
+					     &reipl_kset->kobj);
+	if (!reipl_nvme_kset) {
+		free_page((unsigned long) reipl_block_nvme);
+		return -ENOMEM;
+	}
+
+	rc = sysfs_create_group(&reipl_nvme_kset->kobj, &reipl_nvme_attr_group);
+	if (rc) {
+		kset_unregister(reipl_nvme_kset);
+		free_page((unsigned long) reipl_block_nvme);
+		return rc;
+	}
+
+	if (ipl_info.type == IPL_TYPE_NVME) {
+		memcpy(reipl_block_nvme, &ipl_block, sizeof(ipl_block));
+		/*
+		 * Fix loadparm: There are systems where the (SCSI) LOADPARM
+		 * is invalid in the IPL parameter block, so take it
+		 * always from sclp_ipl_info.
+		 */
+		memcpy(reipl_block_nvme->nvme.loadparm, sclp_ipl_info.loadparm,
+		       LOADPARM_LEN);
+	} else {
+		reipl_block_nvme->hdr.len = IPL_BP_NVME_LEN;
+		reipl_block_nvme->hdr.version = IPL_PARM_BLOCK_VERSION;
+		reipl_block_nvme->nvme.len = IPL_BP0_NVME_LEN;
+		reipl_block_nvme->nvme.pbt = IPL_PBT_NVME;
+		reipl_block_nvme->nvme.opt = IPL_PB0_NVME_OPT_IPL;
+	}
+	reipl_capabilities |= IPL_TYPE_NVME;
+	return 0;
+}
+
 static int __init reipl_type_init(void)
 {
 	enum ipl_type reipl_type = ipl_info.type;
@@ -1049,6 +1250,9 @@
 	if (reipl_block->pb0_hdr.pbt == IPL_PBT_FCP) {
 		memcpy(reipl_block_fcp, reipl_block, size);
 		reipl_type = IPL_TYPE_FCP;
+	} else if (reipl_block->pb0_hdr.pbt == IPL_PBT_NVME) {
+		memcpy(reipl_block_nvme, reipl_block, size);
+		reipl_type = IPL_TYPE_NVME;
 	} else if (reipl_block->pb0_hdr.pbt == IPL_PBT_CCW) {
 		memcpy(reipl_block_ccw, reipl_block, size);
 		reipl_type = IPL_TYPE_CCW;
@@ -1075,6 +1279,9 @@
 	rc = reipl_fcp_init();
 	if (rc)
 		return rc;
+	rc = reipl_nvme_init();
+	if (rc)
+		return rc;
 	rc = reipl_nss_init();
 	if (rc)
 		return rc;
@@ -1691,6 +1898,10 @@
 		ipl_info.data.fcp.wwpn = ipl_block.fcp.wwpn;
 		ipl_info.data.fcp.lun = ipl_block.fcp.lun;
 		break;
+	case IPL_TYPE_NVME:
+		ipl_info.data.nvme.fid = ipl_block.nvme.fid;
+		ipl_info.data.nvme.nsid = ipl_block.nvme.nsid;
+		break;
 	case IPL_TYPE_NSS:
 	case IPL_TYPE_UNKNOWN:
 		/* We have no info to copy */
@@ -1783,7 +1994,7 @@
 
 	buf = vzalloc(report->size);
 	if (!buf)
-		return ERR_PTR(-ENOMEM);
+		goto out;
 	ptr = buf;
 
 	memcpy(ptr, report->ipib, report->ipib->hdr.len);
@@ -1822,6 +2033,7 @@
 	}
 
 	BUG_ON(ptr > buf + report->size);
+out:
 	return buf;
 }
 
@@ -1842,3 +2054,8 @@
 }
 
 #endif
+
+bool ipl_get_secureboot(void)
+{
+	return !!ipl_secure_flag;
+}
--- linux-ein-5.4.0.orig/arch/s390/kernel/irq.c
+++ linux-ein-5.4.0/arch/s390/kernel/irq.c
@@ -294,11 +294,6 @@
 	return IRQ_HANDLED;
 }
 
-static struct irqaction external_interrupt = {
-	.name	 = "EXT",
-	.handler = do_ext_interrupt,
-};
-
 void __init init_ext_interrupts(void)
 {
 	int idx;
@@ -308,7 +303,8 @@
 
 	irq_set_chip_and_handler(EXT_INTERRUPT,
 				 &dummy_irq_chip, handle_percpu_irq);
-	setup_irq(EXT_INTERRUPT, &external_interrupt);
+	if (request_irq(EXT_INTERRUPT, do_ext_interrupt, 0, "EXT", NULL))
+		panic("Failed to register EXT interrupt\n");
 }
 
 static DEFINE_SPINLOCK(irq_subclass_lock);
--- linux-ein-5.4.0.orig/arch/s390/kernel/jump_label.c
+++ linux-ein-5.4.0/arch/s390/kernel/jump_label.c
@@ -36,7 +36,7 @@
 	unsigned char *ipe = (unsigned char *)expected;
 	unsigned char *ipn = (unsigned char *)new;
 
-	pr_emerg("Jump label code mismatch at %pS [%p]\n", ipc, ipc);
+	pr_emerg("Jump label code mismatch at %pS [%px]\n", ipc, ipc);
 	pr_emerg("Found:    %6ph\n", ipc);
 	pr_emerg("Expected: %6ph\n", ipe);
 	pr_emerg("New:      %6ph\n", ipn);
--- linux-ein-5.4.0.orig/arch/s390/kernel/kmsg.c
+++ linux-ein-5.4.0/arch/s390/kernel/kmsg.c
@@ -0,0 +1,114 @@
+/*
+ * Message printing with message catalog prefixes.
+ *
+ * Copyright IBM Corp. 2012
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/jhash.h>
+#include <linux/device.h>
+
+static inline u32 __printk_jhash(const void *key, u32 length)
+{
+	u32 a, b, c, len;
+	const u8 *k;
+	u8 zk[12];
+
+	a = b = 0x9e3779b9;
+	c = 0;
+	for (len = length + 12, k = key; len >= 12; len -= 12, k += 12) {
+		if (len >= 24) {
+			a += k[0] | k[1] << 8 | k[2] << 16 | k[3] << 24;
+			b += k[4] | k[5] << 8 | k[6] << 16 | k[7] << 24;
+			c += k[8] | k[9] << 8 | k[10] << 16 | k[11] << 24;
+		} else {
+			memset(zk, 0, 12);
+			memcpy(zk, k, len - 12);
+			a += zk[0] | zk[1] << 8 | zk[2] << 16 | zk[3] << 24;
+			b += zk[4] | zk[5] << 8 | zk[6] << 16 | zk[7] << 24;
+			c += (u32) zk[8] << 8;
+			c += (u32) zk[9] << 16;
+			c += (u32) zk[10] << 24;
+			c += length;
+		}
+		a -= b + c; a ^= (c>>13);
+		b -= a + c; b ^= (a<<8);
+		c -= a + b; c ^= (b>>13);
+		a -= b + c; a ^= (c>>12);
+		b -= a + c; b ^= (a<<16);
+		c -= a + b; c ^= (b>>5);
+		a -= b + c; a ^= (c>>3);
+		b -= a + c; b ^= (a<<10);
+		c -= a + b; c ^= (b>>15);
+	}
+	return c;
+}
+
+/**
+ * __jhash_string - calculate the six digit jhash of a string
+ * @str: string to calculate the jhash
+ */
+unsigned long long __jhash_string(const char *str)
+{
+	return __printk_jhash(str, strlen(str)) & 0xffffff;
+}
+EXPORT_SYMBOL(__jhash_string);
+
+static int __dev_printk_hash(const char *level, const struct device *dev,
+			     struct va_format *vaf)
+{
+	if (!dev)
+		return printk("%s(NULL device *): %pV", level, vaf);
+
+	return printk("%s%s.%06x: %pV", level, dev_driver_string(dev),
+		      __printk_jhash(vaf->fmt, strlen(vaf->fmt)) & 0xffffff,
+		      vaf);
+}
+
+int dev_printk_hash(const char *level, const struct device *dev,
+		    const char *fmt, ...)
+{
+	struct va_format vaf;
+	va_list args;
+	int r;
+
+	va_start(args, fmt);
+
+	vaf.fmt = fmt;
+	vaf.va = &args;
+
+	r = __dev_printk_hash(level, dev, &vaf);
+	va_end(args);
+
+	return r;
+}
+EXPORT_SYMBOL(dev_printk_hash);
+
+#define define_dev_printk_hash_level(func, kern_level)		\
+int func(const struct device *dev, const char *fmt, ...)	\
+{								\
+	struct va_format vaf;					\
+	va_list args;						\
+	int r;							\
+								\
+	va_start(args, fmt);					\
+								\
+	vaf.fmt = fmt;						\
+	vaf.va = &args;						\
+								\
+	r = __dev_printk_hash(kern_level, dev, &vaf);		\
+	va_end(args);						\
+								\
+	return r;						\
+}								\
+EXPORT_SYMBOL(func);
+
+define_dev_printk_hash_level(dev_emerg_hash, KERN_EMERG);
+define_dev_printk_hash_level(dev_alert_hash, KERN_ALERT);
+define_dev_printk_hash_level(dev_crit_hash, KERN_CRIT);
+define_dev_printk_hash_level(dev_err_hash, KERN_ERR);
+define_dev_printk_hash_level(dev_warn_hash, KERN_WARNING);
+define_dev_printk_hash_level(dev_notice_hash, KERN_NOTICE);
+define_dev_printk_hash_level(_dev_info_hash, KERN_INFO);
--- linux-ein-5.4.0.orig/arch/s390/kernel/kprobes.c
+++ linux-ein-5.4.0/arch/s390/kernel/kprobes.c
@@ -56,21 +56,10 @@
 
 static void copy_instruction(struct kprobe *p)
 {
-	unsigned long ip = (unsigned long) p->addr;
 	s64 disp, new_disp;
 	u64 addr, new_addr;
 
-	if (ftrace_location(ip) == ip) {
-		/*
-		 * If kprobes patches the instruction that is morphed by
-		 * ftrace make sure that kprobes always sees the branch
-		 * "jg .+24" that skips the mcount block or the "brcl 0,0"
-		 * in case of hotpatch.
-		 */
-		ftrace_generate_nop_insn((struct ftrace_insn *)p->ainsn.insn);
-		p->ainsn.is_ftrace_insn = 1;
-	} else
-		memcpy(p->ainsn.insn, p->addr, insn_length(*p->addr >> 8));
+	memcpy(p->ainsn.insn, p->addr, insn_length(*p->addr >> 8));
 	p->opcode = p->ainsn.insn[0];
 	if (!probe_is_insn_relative_long(p->ainsn.insn))
 		return;
@@ -136,11 +125,6 @@
 }
 NOKPROBE_SYMBOL(arch_prepare_kprobe);
 
-int arch_check_ftrace_location(struct kprobe *p)
-{
-	return 0;
-}
-
 struct swap_insn_args {
 	struct kprobe *p;
 	unsigned int arm_kprobe : 1;
@@ -149,28 +133,11 @@
 static int swap_instruction(void *data)
 {
 	struct swap_insn_args *args = data;
-	struct ftrace_insn new_insn, *insn;
 	struct kprobe *p = args->p;
-	size_t len;
+	u16 opc;
 
-	new_insn.opc = args->arm_kprobe ? BREAKPOINT_INSTRUCTION : p->opcode;
-	len = sizeof(new_insn.opc);
-	if (!p->ainsn.is_ftrace_insn)
-		goto skip_ftrace;
-	len = sizeof(new_insn);
-	insn = (struct ftrace_insn *) p->addr;
-	if (args->arm_kprobe) {
-		if (is_ftrace_nop(insn))
-			new_insn.disp = KPROBE_ON_FTRACE_NOP;
-		else
-			new_insn.disp = KPROBE_ON_FTRACE_CALL;
-	} else {
-		ftrace_generate_call_insn(&new_insn, (unsigned long)p->addr);
-		if (insn->disp == KPROBE_ON_FTRACE_NOP)
-			ftrace_generate_nop_insn(&new_insn);
-	}
-skip_ftrace:
-	s390_kernel_write(p->addr, &new_insn, len);
+	opc = args->arm_kprobe ? BREAKPOINT_INSTRUCTION : p->opcode;
+	s390_kernel_write(p->addr, &opc, sizeof(opc));
 	return 0;
 }
 NOKPROBE_SYMBOL(swap_instruction);
@@ -255,6 +222,7 @@
 {
 	__this_cpu_write(current_kprobe, kcb->prev_kprobe.kp);
 	kcb->kprobe_status = kcb->prev_kprobe.status;
+	kcb->prev_kprobe.kp = NULL;
 }
 NOKPROBE_SYMBOL(pop_kprobe);
 
@@ -464,24 +432,6 @@
 	unsigned long ip = regs->psw.addr;
 	int fixup = probe_get_fixup_type(p->ainsn.insn);
 
-	/* Check if the kprobes location is an enabled ftrace caller */
-	if (p->ainsn.is_ftrace_insn) {
-		struct ftrace_insn *insn = (struct ftrace_insn *) p->addr;
-		struct ftrace_insn call_insn;
-
-		ftrace_generate_call_insn(&call_insn, (unsigned long) p->addr);
-		/*
-		 * A kprobe on an enabled ftrace call site actually single
-		 * stepped an unconditional branch (ftrace nop equivalent).
-		 * Now we need to fixup things and pretend that a brasl r0,...
-		 * was executed instead.
-		 */
-		if (insn->disp == KPROBE_ON_FTRACE_CALL) {
-			ip += call_insn.disp * 2 - MCOUNT_INSN_SIZE;
-			regs->gprs[0] = (unsigned long)p->addr + sizeof(*insn);
-		}
-	}
-
 	if (fixup & FIXUP_PSW_NORMAL)
 		ip += (unsigned long) p->addr - (unsigned long) p->ainsn.insn;
 
@@ -509,12 +459,11 @@
 	if (!p)
 		return 0;
 
+	resume_execution(p, regs);
 	if (kcb->kprobe_status != KPROBE_REENTER && p->post_handler) {
 		kcb->kprobe_status = KPROBE_HIT_SSDONE;
 		p->post_handler(p, regs, 0);
 	}
-
-	resume_execution(p, regs);
 	pop_kprobe(kcb);
 	preempt_enable_no_resched();
 
--- linux-ein-5.4.0.orig/arch/s390/kernel/machine_kexec.c
+++ linux-ein-5.4.0/arch/s390/kernel/machine_kexec.c
@@ -164,7 +164,9 @@
 #ifdef CONFIG_CRASH_DUMP
 	int rc;
 
+	preempt_disable();
 	rc = CALL_ON_STACK(do_start_kdump, S390_lowcore.nodat_stack, 1, image);
+	preempt_enable();
 	return rc == 0;
 #else
 	return false;
@@ -254,10 +256,10 @@
 	VMCOREINFO_SYMBOL(lowcore_ptr);
 	VMCOREINFO_SYMBOL(high_memory);
 	VMCOREINFO_LENGTH(lowcore_ptr, NR_CPUS);
-	mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
 	vmcoreinfo_append_str("SDMA=%lx\n", __sdma);
 	vmcoreinfo_append_str("EDMA=%lx\n", __edma);
 	vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
+	mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
 }
 
 void machine_shutdown(void)
--- linux-ein-5.4.0.orig/arch/s390/kernel/machine_kexec_file.c
+++ linux-ein-5.4.0/arch/s390/kernel/machine_kexec_file.c
@@ -12,6 +12,7 @@
 #include <linux/kexec.h>
 #include <linux/module_signature.h>
 #include <linux/verification.h>
+#include <linux/vmalloc.h>
 #include <asm/boot_data.h>
 #include <asm/ipl.h>
 #include <asm/setup.h>
@@ -28,6 +29,7 @@
 	const unsigned long marker_len = sizeof(MODULE_SIG_STRING) - 1;
 	struct module_signature *ms;
 	unsigned long sig_len;
+	int ret;
 
 	/* Skip signature verification when not secure IPLed. */
 	if (!ipl_secure_flag)
@@ -62,11 +64,18 @@
 		return -EBADMSG;
 	}
 
-	return verify_pkcs7_signature(kernel, kernel_len,
-				      kernel + kernel_len, sig_len,
-				      VERIFY_USE_PLATFORM_KEYRING,
-				      VERIFYING_MODULE_SIGNATURE,
-				      NULL, NULL);
+	ret = verify_pkcs7_signature(kernel, kernel_len,
+				     kernel + kernel_len, sig_len,
+				     VERIFY_USE_SECONDARY_KEYRING,
+				     VERIFYING_MODULE_SIGNATURE,
+				     NULL, NULL);
+	if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING))
+		ret = verify_pkcs7_signature(kernel, kernel_len,
+					     kernel + kernel_len, sig_len,
+					     VERIFY_USE_PLATFORM_KEYRING,
+					     VERIFYING_MODULE_SIGNATURE,
+					     NULL, NULL);
+	return ret;
 }
 #endif /* CONFIG_KEXEC_SIG */
 
@@ -151,7 +160,7 @@
 		buf.mem += crashk_res.start;
 	buf.memsz = buf.bufsz;
 
-	data->parm->initrd_start = buf.mem;
+	data->parm->initrd_start = data->memsz;
 	data->parm->initrd_size = buf.memsz;
 	data->memsz += buf.memsz;
 
@@ -170,13 +179,12 @@
 	struct kexec_buf buf;
 	unsigned long addr;
 	void *ptr, *end;
+	int ret;
 
 	buf.image = image;
 
 	data->memsz = ALIGN(data->memsz, PAGE_SIZE);
 	buf.mem = data->memsz;
-	if (image->type == KEXEC_TYPE_CRASH)
-		buf.mem += crashk_res.start;
 
 	ptr = (void *)ipl_cert_list_addr;
 	end = ptr + ipl_cert_list_size;
@@ -199,9 +207,13 @@
 		ptr += len;
 	}
 
+	ret = -ENOMEM;
 	buf.buffer = ipl_report_finish(data->report);
+	if (!buf.buffer)
+		goto out;
 	buf.bufsz = data->report->size;
 	buf.memsz = buf.bufsz;
+	image->arch.ipl_buf = buf.buffer;
 
 	data->memsz += buf.memsz;
 
@@ -209,7 +221,12 @@
 		data->kernel_buf + offsetof(struct lowcore, ipl_parmblock_ptr);
 	*lc_ipl_parmblock_ptr = (__u32)buf.mem;
 
-	return kexec_add_buffer(&buf);
+	if (image->type == KEXEC_TYPE_CRASH)
+		buf.mem += crashk_res.start;
+
+	ret = kexec_add_buffer(&buf);
+out:
+	return ret;
 }
 
 void *kexec_file_add_components(struct kimage *image,
@@ -269,6 +286,7 @@
 {
 	Elf_Rela *relas;
 	int i, r_type;
+	int ret;
 
 	relas = (void *)pi->ehdr + relsec->sh_offset;
 
@@ -303,7 +321,11 @@
 		addr = section->sh_addr + relas[i].r_offset;
 
 		r_type = ELF64_R_TYPE(relas[i].r_info);
-		arch_kexec_do_relocs(r_type, loc, val, addr);
+		ret = arch_kexec_do_relocs(r_type, loc, val, addr);
+		if (ret) {
+			pr_err("Unknown rela relocation: %d\n", r_type);
+			return -ENOEXEC;
+		}
 	}
 	return 0;
 }
@@ -321,3 +343,11 @@
 
 	return kexec_image_probe_default(image, buf, buf_len);
 }
+
+int arch_kimage_file_post_load_cleanup(struct kimage *image)
+{
+	vfree(image->arch.ipl_buf);
+	image->arch.ipl_buf = NULL;
+
+	return kexec_image_post_load_cleanup_default(image);
+}
--- linux-ein-5.4.0.orig/arch/s390/kernel/machine_kexec_reloc.c
+++ linux-ein-5.4.0/arch/s390/kernel/machine_kexec_reloc.c
@@ -28,6 +28,7 @@
 		break;
 	case R_390_64:		/* Direct 64 bit.  */
 	case R_390_GLOB_DAT:
+	case R_390_JMP_SLOT:
 		*(u64 *)loc = val;
 		break;
 	case R_390_PC16:	/* PC relative 16 bit.	*/
--- linux-ein-5.4.0.orig/arch/s390/kernel/mcount.S
+++ linux-ein-5.4.0/arch/s390/kernel/mcount.S
@@ -26,6 +26,12 @@
 #define STACK_PTREGS	  (STACK_FRAME_OVERHEAD)
 #define STACK_PTREGS_GPRS (STACK_PTREGS + __PT_GPRS)
 #define STACK_PTREGS_PSW  (STACK_PTREGS + __PT_PSW)
+#ifdef __PACK_STACK
+/* allocate just enough for r14, r15 and backchain */
+#define TRACED_FUNC_FRAME_SIZE	24
+#else
+#define TRACED_FUNC_FRAME_SIZE	STACK_FRAME_OVERHEAD
+#endif
 
 ENTRY(_mcount)
 	BR_EX	%r14
@@ -35,25 +41,39 @@
 ENTRY(ftrace_caller)
 	.globl	ftrace_regs_caller
 	.set	ftrace_regs_caller,ftrace_caller
+	stg	%r14,(__SF_GPRS+8*8)(%r15)	# save traced function caller
+	lghi	%r14,0				# save condition code
+	ipm	%r14				# don't put any instructions
+	sllg	%r14,%r14,16			# clobbering CC before this point
 	lgr	%r1,%r15
 #if !(defined(CC_USING_HOTPATCH) || defined(CC_USING_NOP_MCOUNT))
 	aghi	%r0,MCOUNT_RETURN_FIXUP
 #endif
-	aghi	%r15,-STACK_FRAME_SIZE
+	# allocate stack frame for ftrace_caller to contain traced function
+	aghi	%r15,-TRACED_FUNC_FRAME_SIZE
 	stg	%r1,__SF_BACKCHAIN(%r15)
+	stg	%r0,(__SF_GPRS+8*8)(%r15)
+	stg	%r15,(__SF_GPRS+9*8)(%r15)
+	# allocate pt_regs and stack frame for ftrace_trace_function
+	aghi	%r15,-STACK_FRAME_SIZE
 	stg	%r1,(STACK_PTREGS_GPRS+15*8)(%r15)
+	stg	%r14,(STACK_PTREGS_PSW)(%r15)
+	lg	%r14,(__SF_GPRS+8*8)(%r1)	# restore original return address
+	stosm	(STACK_PTREGS_PSW)(%r15),0
+	aghi	%r1,-TRACED_FUNC_FRAME_SIZE
+	stg	%r1,__SF_BACKCHAIN(%r15)
 	stg	%r0,(STACK_PTREGS_PSW+8)(%r15)
 	stmg	%r2,%r14,(STACK_PTREGS_GPRS+2*8)(%r15)
 #ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
 	aghik	%r2,%r0,-MCOUNT_INSN_SIZE
 	lgrl	%r4,function_trace_op
-	lgrl	%r1,ftrace_trace_function
+	lgrl	%r1,ftrace_func
 #else
 	lgr	%r2,%r0
 	aghi	%r2,-MCOUNT_INSN_SIZE
 	larl	%r4,function_trace_op
 	lg	%r4,0(%r4)
-	larl	%r1,ftrace_trace_function
+	larl	%r1,ftrace_func
 	lg	%r1,0(%r1)
 #endif
 	lgr	%r3,%r14
--- linux-ein-5.4.0.orig/arch/s390/kernel/nmi.c
+++ linux-ein-5.4.0/arch/s390/kernel/nmi.c
@@ -179,7 +179,7 @@
 		       "malfunction (code 0x%016lx).\n", mcck.mcck_code);
 		printk(KERN_EMERG "mcck: task: %s, pid: %d.\n",
 		       current->comm, current->pid);
-		do_exit(SIGSEGV);
+		make_task_dead(SIGSEGV);
 	}
 }
 EXPORT_SYMBOL_GPL(s390_handle_mcck);
--- linux-ein-5.4.0.orig/arch/s390/kernel/perf_cpum_cf.c
+++ linux-ein-5.4.0/arch/s390/kernel/perf_cpum_cf.c
@@ -199,7 +199,7 @@
 	[PERF_COUNT_HW_BUS_CYCLES]	    = -1,
 };
 
-static int __hw_perf_event_init(struct perf_event *event)
+static int __hw_perf_event_init(struct perf_event *event, unsigned int type)
 {
 	struct perf_event_attr *attr = &event->attr;
 	struct hw_perf_event *hwc = &event->hw;
@@ -207,7 +207,7 @@
 	int err = 0;
 	u64 ev;
 
-	switch (attr->type) {
+	switch (type) {
 	case PERF_TYPE_RAW:
 		/* Raw events are used to access counters directly,
 		 * hence do not permit excludes */
@@ -292,19 +292,38 @@
 	return err;
 }
 
+/* Events CPU_CYLCES and INSTRUCTIONS can be submitted with two different
+ * attribute::type values:
+ * - PERF_TYPE_HARDWARE:
+ * - pmu->type:
+ * Handle both type of invocations identical. They address the same hardware.
+ * The result is different when event modifiers exclude_kernel and/or
+ * exclude_user are also set.
+ */
+static int cpumf_pmu_event_type(struct perf_event *event)
+{
+	u64 ev = event->attr.config;
+
+	if (cpumf_generic_events_basic[PERF_COUNT_HW_CPU_CYCLES] == ev ||
+	    cpumf_generic_events_basic[PERF_COUNT_HW_INSTRUCTIONS] == ev ||
+	    cpumf_generic_events_user[PERF_COUNT_HW_CPU_CYCLES] == ev ||
+	    cpumf_generic_events_user[PERF_COUNT_HW_INSTRUCTIONS] == ev)
+		return PERF_TYPE_HARDWARE;
+	return PERF_TYPE_RAW;
+}
+
 static int cpumf_pmu_event_init(struct perf_event *event)
 {
+	unsigned int type = event->attr.type;
 	int err;
 
-	switch (event->attr.type) {
-	case PERF_TYPE_HARDWARE:
-	case PERF_TYPE_HW_CACHE:
-	case PERF_TYPE_RAW:
-		err = __hw_perf_event_init(event);
-		break;
-	default:
+	if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW)
+		err = __hw_perf_event_init(event, type);
+	else if (event->pmu->type == type)
+		/* Registered as unknown PMU */
+		err = __hw_perf_event_init(event, cpumf_pmu_event_type(event));
+	else
 		return -ENOENT;
-	}
 
 	if (unlikely(err) && event->destroy)
 		event->destroy(event);
@@ -553,7 +572,7 @@
 		return -ENODEV;
 
 	cpumf_pmu.attr_groups = cpumf_cf_event_group();
-	rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW);
+	rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", -1);
 	if (rc)
 		pr_err("Registering the cpum_cf PMU failed with rc=%i\n", rc);
 	return rc;
--- linux-ein-5.4.0.orig/arch/s390/kernel/perf_cpum_cf_diag.c
+++ linux-ein-5.4.0/arch/s390/kernel/perf_cpum_cf_diag.c
@@ -243,13 +243,13 @@
 	int err = -ENOENT;
 
 	debug_sprintf_event(cf_diag_dbg, 5,
-			    "%s event %p cpu %d config %#llx "
+			    "%s event %p cpu %d config %#llx type:%u "
 			    "sample_type %#llx cf_diag_events %d\n", __func__,
-			    event, event->cpu, attr->config, attr->sample_type,
-			    atomic_read(&cf_diag_events));
+			    event, event->cpu, attr->config, event->pmu->type,
+			    attr->sample_type, atomic_read(&cf_diag_events));
 
 	if (event->attr.config != PERF_EVENT_CPUM_CF_DIAG ||
-	    event->attr.type != PERF_TYPE_RAW)
+	    event->attr.type != event->pmu->type)
 		goto out;
 
 	/* Raw events are used to access counters directly,
@@ -308,7 +308,7 @@
 	case CPUMF_CTR_SET_CRYPTO:
 		if (info->csvn >= 1 && info->csvn <= 5)
 			ctrset_size = 16;
-		else if (info->csvn == 6)
+		else if (info->csvn == 6 || info->csvn == 7)
 			ctrset_size = 20;
 		break;
 	case CPUMF_CTR_SET_EXT:
@@ -318,7 +318,7 @@
 			ctrset_size = 48;
 		else if (info->csvn >= 3 && info->csvn <= 5)
 			ctrset_size = 128;
-		else if (info->csvn == 6)
+		else if (info->csvn == 6 || info->csvn == 7)
 			ctrset_size = 160;
 		break;
 	case CPUMF_CTR_SET_MT_DIAG:
@@ -693,7 +693,7 @@
 	}
 	debug_register_view(cf_diag_dbg, &debug_sprintf_view);
 
-	rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", PERF_TYPE_RAW);
+	rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", -1);
 	if (rc) {
 		debug_unregister_view(cf_diag_dbg, &debug_sprintf_view);
 		debug_unregister(cf_diag_dbg);
--- linux-ein-5.4.0.orig/arch/s390/kernel/perf_cpum_cf_events.c
+++ linux-ein-5.4.0/arch/s390/kernel/perf_cpum_cf_events.c
@@ -238,6 +238,134 @@
 CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
 CPUMF_EVENT_ATTR(cf_z14, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
 
+CPUMF_EVENT_ATTR(cf_z15, L1D_RO_EXCL_WRITES, 0x0080);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_WRITES, 0x0081);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_MISSES, 0x0082);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_HPAGE_WRITES, 0x0083);
+CPUMF_EVENT_ATTR(cf_z15, DTLB2_GPAGE_WRITES, 0x0084);
+CPUMF_EVENT_ATTR(cf_z15, L1D_L2D_SOURCED_WRITES, 0x0085);
+CPUMF_EVENT_ATTR(cf_z15, ITLB2_WRITES, 0x0086);
+CPUMF_EVENT_ATTR(cf_z15, ITLB2_MISSES, 0x0087);
+CPUMF_EVENT_ATTR(cf_z15, L1I_L2I_SOURCED_WRITES, 0x0088);
+CPUMF_EVENT_ATTR(cf_z15, TLB2_PTE_WRITES, 0x0089);
+CPUMF_EVENT_ATTR(cf_z15, TLB2_CRSTE_WRITES, 0x008a);
+CPUMF_EVENT_ATTR(cf_z15, TLB2_ENGINES_BUSY, 0x008b);
+CPUMF_EVENT_ATTR(cf_z15, TX_C_TEND, 0x008c);
+CPUMF_EVENT_ATTR(cf_z15, TX_NC_TEND, 0x008d);
+CPUMF_EVENT_ATTR(cf_z15, L1C_TLB2_MISSES, 0x008f);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES, 0x0090);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES, 0x0091);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV, 0x0092);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES, 0x0093);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x0094);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x0095);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES, 0x0096);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x0097);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x0098);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES, 0x0099);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x009a);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x009b);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES, 0x009c);
+CPUMF_EVENT_ATTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES, 0x009d);
+CPUMF_EVENT_ATTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO, 0x009e);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES, 0x00a2);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES, 0x00a3);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV, 0x00a4);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES, 0x00a5);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES, 0x00a6);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV, 0x00a7);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES, 0x00a8);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES, 0x00a9);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV, 0x00aa);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES, 0x00ab);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES, 0x00ac);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV, 0x00ad);
+CPUMF_EVENT_ATTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES, 0x00ae);
+CPUMF_EVENT_ATTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES, 0x00af);
+CPUMF_EVENT_ATTR(cf_z15, BCD_DFP_EXECUTION_SLOTS, 0x00e0);
+CPUMF_EVENT_ATTR(cf_z15, VX_BCD_EXECUTION_SLOTS, 0x00e1);
+CPUMF_EVENT_ATTR(cf_z15, DECIMAL_INSTRUCTIONS, 0x00e2);
+CPUMF_EVENT_ATTR(cf_z15, LAST_HOST_TRANSLATIONS, 0x00e8);
+CPUMF_EVENT_ATTR(cf_z15, TX_NC_TABORT, 0x00f3);
+CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_NO_SPECIAL, 0x00f4);
+CPUMF_EVENT_ATTR(cf_z15, TX_C_TABORT_SPECIAL, 0x00f5);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_ACCESS, 0x00f7);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_CYCLES, 0x00fc);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_CC, 0x00108);
+CPUMF_EVENT_ATTR(cf_z15, DFLT_CCFINISH, 0x00109);
+CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
+CPUMF_EVENT_ATTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
+CPUMF_EVENT_ATTR(cf_z16, L1D_RO_EXCL_WRITES, 0x0080);
+CPUMF_EVENT_ATTR(cf_z16, DTLB2_WRITES, 0x0081);
+CPUMF_EVENT_ATTR(cf_z16, DTLB2_MISSES, 0x0082);
+CPUMF_EVENT_ATTR(cf_z16, CRSTE_1MB_WRITES, 0x0083);
+CPUMF_EVENT_ATTR(cf_z16, DTLB2_GPAGE_WRITES, 0x0084);
+CPUMF_EVENT_ATTR(cf_z16, ITLB2_WRITES, 0x0086);
+CPUMF_EVENT_ATTR(cf_z16, ITLB2_MISSES, 0x0087);
+CPUMF_EVENT_ATTR(cf_z16, TLB2_PTE_WRITES, 0x0089);
+CPUMF_EVENT_ATTR(cf_z16, TLB2_CRSTE_WRITES, 0x008a);
+CPUMF_EVENT_ATTR(cf_z16, TLB2_ENGINES_BUSY, 0x008b);
+CPUMF_EVENT_ATTR(cf_z16, TX_C_TEND, 0x008c);
+CPUMF_EVENT_ATTR(cf_z16, TX_NC_TEND, 0x008d);
+CPUMF_EVENT_ATTR(cf_z16, L1C_TLB2_MISSES, 0x008f);
+CPUMF_EVENT_ATTR(cf_z16, DCW_REQ, 0x0091);
+CPUMF_EVENT_ATTR(cf_z16, DCW_REQ_IV, 0x0092);
+CPUMF_EVENT_ATTR(cf_z16, DCW_REQ_CHIP_HIT, 0x0093);
+CPUMF_EVENT_ATTR(cf_z16, DCW_REQ_DRAWER_HIT, 0x0094);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP, 0x0095);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_IV, 0x0096);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_CHIP_HIT, 0x0097);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_DRAWER_HIT, 0x0098);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_MODULE, 0x0099);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_DRAWER, 0x009a);
+CPUMF_EVENT_ATTR(cf_z16, DCW_OFF_DRAWER, 0x009b);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_CHIP_MEMORY, 0x009c);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_MODULE_MEMORY, 0x009d);
+CPUMF_EVENT_ATTR(cf_z16, DCW_ON_DRAWER_MEMORY, 0x009e);
+CPUMF_EVENT_ATTR(cf_z16, DCW_OFF_DRAWER_MEMORY, 0x009f);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_MODULE_IV, 0x00a0);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_MODULE_CHIP_HIT, 0x00a1);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_MODULE_DRAWER_HIT, 0x00a2);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_DRAWER_IV, 0x00a3);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_DRAWER_CHIP_HIT, 0x00a4);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_ON_DRAWER_DRAWER_HIT, 0x00a5);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_OFF_DRAWER_IV, 0x00a6);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_OFF_DRAWER_CHIP_HIT, 0x00a7);
+CPUMF_EVENT_ATTR(cf_z16, IDCW_OFF_DRAWER_DRAWER_HIT, 0x00a8);
+CPUMF_EVENT_ATTR(cf_z16, ICW_REQ, 0x00a9);
+CPUMF_EVENT_ATTR(cf_z16, ICW_REQ_IV, 0x00aa);
+CPUMF_EVENT_ATTR(cf_z16, ICW_REQ_CHIP_HIT, 0x00ab);
+CPUMF_EVENT_ATTR(cf_z16, ICW_REQ_DRAWER_HIT, 0x00ac);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP, 0x00ad);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_IV, 0x00ae);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_CHIP_HIT, 0x00af);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_DRAWER_HIT, 0x00b0);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_MODULE, 0x00b1);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_DRAWER, 0x00b2);
+CPUMF_EVENT_ATTR(cf_z16, ICW_OFF_DRAWER, 0x00b3);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_CHIP_MEMORY, 0x00b4);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_MODULE_MEMORY, 0x00b5);
+CPUMF_EVENT_ATTR(cf_z16, ICW_ON_DRAWER_MEMORY, 0x00b6);
+CPUMF_EVENT_ATTR(cf_z16, ICW_OFF_DRAWER_MEMORY, 0x00b7);
+CPUMF_EVENT_ATTR(cf_z16, BCD_DFP_EXECUTION_SLOTS, 0x00e0);
+CPUMF_EVENT_ATTR(cf_z16, VX_BCD_EXECUTION_SLOTS, 0x00e1);
+CPUMF_EVENT_ATTR(cf_z16, DECIMAL_INSTRUCTIONS, 0x00e2);
+CPUMF_EVENT_ATTR(cf_z16, LAST_HOST_TRANSLATIONS, 0x00e8);
+CPUMF_EVENT_ATTR(cf_z16, TX_NC_TABORT, 0x00f4);
+CPUMF_EVENT_ATTR(cf_z16, TX_C_TABORT_NO_SPECIAL, 0x00f5);
+CPUMF_EVENT_ATTR(cf_z16, TX_C_TABORT_SPECIAL, 0x00f6);
+CPUMF_EVENT_ATTR(cf_z16, DFLT_ACCESS, 0x00f8);
+CPUMF_EVENT_ATTR(cf_z16, DFLT_CYCLES, 0x00fd);
+CPUMF_EVENT_ATTR(cf_z16, SORTL, 0x0100);
+CPUMF_EVENT_ATTR(cf_z16, DFLT_CC, 0x0109);
+CPUMF_EVENT_ATTR(cf_z16, DFLT_CCFINISH, 0x010a);
+CPUMF_EVENT_ATTR(cf_z16, NNPA_INVOCATIONS, 0x010b);
+CPUMF_EVENT_ATTR(cf_z16, NNPA_COMPLETIONS, 0x010c);
+CPUMF_EVENT_ATTR(cf_z16, NNPA_WAIT_LOCK, 0x010d);
+CPUMF_EVENT_ATTR(cf_z16, NNPA_HOLD_LOCK, 0x010e);
+CPUMF_EVENT_ATTR(cf_z16, MT_DIAG_CYCLES_ONE_THR_ACTIVE, 0x01c0);
+CPUMF_EVENT_ATTR(cf_z16, MT_DIAG_CYCLES_TWO_THR_ACTIVE, 0x01c1);
+
 static struct attribute *cpumcf_fvn1_pmu_event_attr[] __initdata = {
 	CPUMF_EVENT_PTR(cf_fvn1, CPU_CYCLES),
 	CPUMF_EVENT_PTR(cf_fvn1, INSTRUCTIONS),
@@ -286,7 +414,7 @@
 	NULL,
 };
 
-static struct attribute *cpumcf_svn_6_pmu_event_attr[] __initdata = {
+static struct attribute *cpumcf_svn_67_pmu_event_attr[] __initdata = {
 	CPUMF_EVENT_PTR(cf_svn_12345, PRNG_FUNCTIONS),
 	CPUMF_EVENT_PTR(cf_svn_12345, PRNG_CYCLES),
 	CPUMF_EVENT_PTR(cf_svn_12345, PRNG_BLOCKED_FUNCTIONS),
@@ -516,6 +644,141 @@
 	NULL,
 };
 
+static struct attribute *cpumcf_z15_pmu_event_attr[] __initdata = {
+	CPUMF_EVENT_PTR(cf_z15, L1D_RO_EXCL_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_HPAGE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, DTLB2_GPAGE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_L2D_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, ITLB2_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, ITLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_L2I_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, TLB2_PTE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, TLB2_CRSTE_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, TLB2_ENGINES_BUSY),
+	CPUMF_EVENT_PTR(cf_z15, TX_C_TEND),
+	CPUMF_EVENT_PTR(cf_z15, TX_NC_TEND),
+	CPUMF_EVENT_PTR(cf_z15, L1C_TLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_OFFDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1D_ONCHIP_L3_SOURCED_WRITES_RO),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCHIP_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFCLUSTER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_MEMORY_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L3_SOURCED_WRITES_IV),
+	CPUMF_EVENT_PTR(cf_z15, L1I_ONDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, L1I_OFFDRAWER_L4_SOURCED_WRITES),
+	CPUMF_EVENT_PTR(cf_z15, BCD_DFP_EXECUTION_SLOTS),
+	CPUMF_EVENT_PTR(cf_z15, VX_BCD_EXECUTION_SLOTS),
+	CPUMF_EVENT_PTR(cf_z15, DECIMAL_INSTRUCTIONS),
+	CPUMF_EVENT_PTR(cf_z15, LAST_HOST_TRANSLATIONS),
+	CPUMF_EVENT_PTR(cf_z15, TX_NC_TABORT),
+	CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_NO_SPECIAL),
+	CPUMF_EVENT_PTR(cf_z15, TX_C_TABORT_SPECIAL),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_ACCESS),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_CYCLES),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_CC),
+	CPUMF_EVENT_PTR(cf_z15, DFLT_CCFINISH),
+	CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
+	CPUMF_EVENT_PTR(cf_z15, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
+	NULL,
+};
+
+static struct attribute *cpumcf_z16_pmu_event_attr[] __initdata = {
+	CPUMF_EVENT_PTR(cf_z16, L1D_RO_EXCL_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, DTLB2_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, DTLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z16, CRSTE_1MB_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, DTLB2_GPAGE_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, ITLB2_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, ITLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z16, TLB2_PTE_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, TLB2_CRSTE_WRITES),
+	CPUMF_EVENT_PTR(cf_z16, TLB2_ENGINES_BUSY),
+	CPUMF_EVENT_PTR(cf_z16, TX_C_TEND),
+	CPUMF_EVENT_PTR(cf_z16, TX_NC_TEND),
+	CPUMF_EVENT_PTR(cf_z16, L1C_TLB2_MISSES),
+	CPUMF_EVENT_PTR(cf_z16, DCW_REQ),
+	CPUMF_EVENT_PTR(cf_z16, DCW_REQ_IV),
+	CPUMF_EVENT_PTR(cf_z16, DCW_REQ_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, DCW_REQ_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_IV),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_MODULE),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_DRAWER),
+	CPUMF_EVENT_PTR(cf_z16, DCW_OFF_DRAWER),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_CHIP_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_MODULE_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, DCW_ON_DRAWER_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, DCW_OFF_DRAWER_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_ON_MODULE_IV),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_ON_MODULE_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_ON_MODULE_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_ON_DRAWER_IV),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_ON_DRAWER_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_ON_DRAWER_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_OFF_DRAWER_IV),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_OFF_DRAWER_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, IDCW_OFF_DRAWER_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, ICW_REQ),
+	CPUMF_EVENT_PTR(cf_z16, ICW_REQ_IV),
+	CPUMF_EVENT_PTR(cf_z16, ICW_REQ_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, ICW_REQ_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_IV),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_CHIP_HIT),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_DRAWER_HIT),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_MODULE),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_DRAWER),
+	CPUMF_EVENT_PTR(cf_z16, ICW_OFF_DRAWER),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_CHIP_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_MODULE_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, ICW_ON_DRAWER_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, ICW_OFF_DRAWER_MEMORY),
+	CPUMF_EVENT_PTR(cf_z16, BCD_DFP_EXECUTION_SLOTS),
+	CPUMF_EVENT_PTR(cf_z16, VX_BCD_EXECUTION_SLOTS),
+	CPUMF_EVENT_PTR(cf_z16, DECIMAL_INSTRUCTIONS),
+	CPUMF_EVENT_PTR(cf_z16, LAST_HOST_TRANSLATIONS),
+	CPUMF_EVENT_PTR(cf_z16, TX_NC_TABORT),
+	CPUMF_EVENT_PTR(cf_z16, TX_C_TABORT_NO_SPECIAL),
+	CPUMF_EVENT_PTR(cf_z16, TX_C_TABORT_SPECIAL),
+	CPUMF_EVENT_PTR(cf_z16, DFLT_ACCESS),
+	CPUMF_EVENT_PTR(cf_z16, DFLT_CYCLES),
+	CPUMF_EVENT_PTR(cf_z16, SORTL),
+	CPUMF_EVENT_PTR(cf_z16, DFLT_CC),
+	CPUMF_EVENT_PTR(cf_z16, DFLT_CCFINISH),
+	CPUMF_EVENT_PTR(cf_z16, NNPA_INVOCATIONS),
+	CPUMF_EVENT_PTR(cf_z16, NNPA_COMPLETIONS),
+	CPUMF_EVENT_PTR(cf_z16, NNPA_WAIT_LOCK),
+	CPUMF_EVENT_PTR(cf_z16, NNPA_HOLD_LOCK),
+	CPUMF_EVENT_PTR(cf_z16, MT_DIAG_CYCLES_ONE_THR_ACTIVE),
+	CPUMF_EVENT_PTR(cf_z16, MT_DIAG_CYCLES_TWO_THR_ACTIVE),
+	NULL,
+};
+
 /* END: CPUM_CF COUNTER DEFINITIONS ===================================== */
 
 static struct attribute_group cpumcf_pmu_events_group = {
@@ -596,8 +859,8 @@
 	case 1 ... 5:
 		csvn = cpumcf_svn_12345_pmu_event_attr;
 		break;
-	case 6:
-		csvn = cpumcf_svn_6_pmu_event_attr;
+	case 6 ... 7:
+		csvn = cpumcf_svn_67_pmu_event_attr;
 		break;
 	default:
 		csvn = none;
@@ -624,9 +887,15 @@
 		break;
 	case 0x3906:
 	case 0x3907:
+		model = cpumcf_z14_pmu_event_attr;
+		break;
 	case 0x8561:
 	case 0x8562:
-		model = cpumcf_z14_pmu_event_attr;
+		model = cpumcf_z15_pmu_event_attr;
+		break;
+	case 0x3931:
+	case 0x3932:
+		model = cpumcf_z16_pmu_event_attr;
 		break;
 	default:
 		model = none;
--- linux-ein-5.4.0.orig/arch/s390/kernel/perf_cpum_sf.c
+++ linux-ein-5.4.0/arch/s390/kernel/perf_cpum_sf.c
@@ -193,7 +193,7 @@
 				   unsigned long num_sdb, gfp_t gfp_flags)
 {
 	int i, rc;
-	unsigned long *new, *tail;
+	unsigned long *new, *tail, *tail_prev = NULL;
 
 	if (!sfb->sdbt || !sfb->tail)
 		return -EINVAL;
@@ -232,6 +232,7 @@
 			sfb->num_sdbt++;
 			/* Link current page to tail of chain */
 			*tail = (unsigned long)(void *) new + 1;
+			tail_prev = tail;
 			tail = new;
 		}
 
@@ -241,10 +242,22 @@
 		 * issue, a new realloc call (if required) might succeed.
 		 */
 		rc = alloc_sample_data_block(tail, gfp_flags);
-		if (rc)
+		if (rc) {
+			/* Undo last SDBT. An SDBT with no SDB at its first
+			 * entry but with an SDBT entry instead can not be
+			 * handled by the interrupt handler code.
+			 * Avoid this situation.
+			 */
+			if (tail_prev) {
+				sfb->num_sdbt--;
+				free_page((unsigned long) new);
+				tail = tail_prev;
+			}
 			break;
+		}
 		sfb->num_sdb++;
 		tail++;
+		tail_prev = new = NULL;	/* Allocated at least one SBD */
 	}
 
 	/* Link sampling buffer to its origin */
@@ -1169,7 +1182,7 @@
 	sample = (struct hws_basic_entry *) *sdbt;
 	while ((unsigned long *) sample < (unsigned long *) te) {
 		/* Check for an empty sample */
-		if (!sample->def)
+		if (!sample->def || sample->LS)
 			break;
 
 		/* Update perf event period */
@@ -1300,18 +1313,28 @@
 		 */
 		if (flush_all && done)
 			break;
-
-		/* If an event overflow happened, discard samples by
-		 * processing any remaining sample-data-blocks.
-		 */
-		if (event_overflow)
-			flush_all = 1;
 	}
 
 	/* Account sample overflows in the event hardware structure */
 	if (sampl_overflow)
 		OVERFLOW_REG(hwc) = DIV_ROUND_UP(OVERFLOW_REG(hwc) +
 						 sampl_overflow, 1 + num_sdb);
+
+	/* Perf_event_overflow() and perf_event_account_interrupt() limit
+	 * the interrupt rate to an upper limit. Roughly 1000 samples per
+	 * task tick.
+	 * Hitting this limit results in a large number
+	 * of throttled REF_REPORT_THROTTLE entries and the samples
+	 * are dropped.
+	 * Slightly increase the interval to avoid hitting this limit.
+	 */
+	if (event_overflow) {
+		SAMPL_RATE(hwc) += DIV_ROUND_UP(SAMPL_RATE(hwc), 10);
+		debug_sprintf_event(sfdbg, 1, "%s: rate adjustment %ld\n",
+				    __func__,
+				    DIV_ROUND_UP(SAMPL_RATE(hwc), 10));
+	}
+
 	if (sampl_overflow || event_overflow)
 		debug_sprintf_event(sfdbg, 4, "hw_perf_event_update: "
 				    "overflow stats: sample=%llu event=%llu\n",
@@ -1406,8 +1429,8 @@
 		idx = aux->empty_mark + 1;
 		for (i = 0; i < range_scan; i++, idx++) {
 			te = aux_sdb_trailer(aux, idx);
-			te->flags = te->flags & ~SDB_TE_BUFFER_FULL_MASK;
-			te->flags = te->flags & ~SDB_TE_ALERT_REQ_MASK;
+			te->flags &= ~(SDB_TE_BUFFER_FULL_MASK |
+				       SDB_TE_ALERT_REQ_MASK);
 			te->overflow = 0;
 		}
 		/* Save the position of empty SDBs */
@@ -1454,8 +1477,7 @@
 	te = aux_sdb_trailer(aux, alert_index);
 	do {
 		orig_flags = te->flags;
-		orig_overflow = te->overflow;
-		*overflow = orig_overflow;
+		*overflow = orig_overflow = te->overflow;
 		if (orig_flags & SDB_TE_BUFFER_FULL_MASK) {
 			/*
 			 * SDB is already set by hardware.
@@ -1566,6 +1588,7 @@
 	perf_aux_output_end(handle, size);
 	num_sdb = aux->sfb.num_sdb;
 
+	num_sdb = aux->sfb.num_sdb;
 	while (!done) {
 		/* Get an output handle */
 		aux = perf_aux_output_begin(handle, cpuhw->event);
@@ -1688,7 +1711,7 @@
 	}
 
 	/* Allocate aux_buffer struct for the event */
-	aux = kmalloc(sizeof(struct aux_buffer), GFP_KERNEL);
+	aux = kzalloc(sizeof(struct aux_buffer), GFP_KERNEL);
 	if (!aux)
 		goto no_aux;
 	sfb = &aux->sfb;
@@ -2194,4 +2217,4 @@
 }
 
 arch_initcall(init_cpum_sampling_pmu);
-core_param(cpum_sfb_size, CPUM_SF_MAX_SDB, sfb_size, 0640);
+core_param(cpum_sfb_size, CPUM_SF_MAX_SDB, sfb_size, 0644);
--- linux-ein-5.4.0.orig/arch/s390/kernel/perf_event.c
+++ linux-ein-5.4.0/arch/s390/kernel/perf_event.c
@@ -224,9 +224,13 @@
 			   struct pt_regs *regs)
 {
 	struct unwind_state state;
+	unsigned long addr;
 
-	unwind_for_each_frame(&state, current, regs, 0)
-		perf_callchain_store(entry, state.ip);
+	unwind_for_each_frame(&state, current, regs, 0) {
+		addr = unwind_get_return_address(&state);
+		if (!addr || perf_callchain_store(entry, addr))
+			return;
+	}
 }
 
 /* Perf definitions for PMU event attributes in sysfs */
--- linux-ein-5.4.0.orig/arch/s390/kernel/pgm_check.S
+++ linux-ein-5.4.0/arch/s390/kernel/pgm_check.S
@@ -78,8 +78,8 @@
 PGM_CHECK(do_dat_exception)		/* 3a */
 PGM_CHECK(do_dat_exception)		/* 3b */
 PGM_CHECK_DEFAULT			/* 3c */
-PGM_CHECK_DEFAULT			/* 3d */
-PGM_CHECK_DEFAULT			/* 3e */
+PGM_CHECK(do_secure_storage_access)	/* 3d */
+PGM_CHECK(do_non_secure_storage_access)	/* 3e */
 PGM_CHECK_DEFAULT			/* 3f */
 PGM_CHECK_DEFAULT			/* 40 */
 PGM_CHECK_DEFAULT			/* 41 */
--- linux-ein-5.4.0.orig/arch/s390/kernel/process.c
+++ linux-ein-5.4.0/arch/s390/kernel/process.c
@@ -76,6 +76,18 @@
 
 	memcpy(dst, src, arch_task_struct_size);
 	dst->thread.fpu.regs = dst->thread.fpu.fprs;
+
+	/*
+	 * Don't transfer over the runtime instrumentation or the guarded
+	 * storage control block pointers. These fields are cleared here instead
+	 * of in copy_thread() to avoid premature freeing of associated memory
+	 * on fork() failure. Wait to clear the RI flag because ->stack still
+	 * refers to the source thread.
+	 */
+	dst->thread.ri_cb = NULL;
+	dst->thread.gs_cb = NULL;
+	dst->thread.gs_bc_cb = NULL;
+
 	return 0;
 }
 
@@ -105,6 +117,7 @@
 	p->thread.system_timer = 0;
 	p->thread.hardirq_timer = 0;
 	p->thread.softirq_timer = 0;
+	p->thread.last_break = 1;
 
 	frame->sf.back_chain = 0;
 	/* new return point is ret_from_fork */
@@ -132,13 +145,11 @@
 	frame->childregs.flags = 0;
 	if (new_stackp)
 		frame->childregs.gprs[15] = new_stackp;
-
-	/* Don't copy runtime instrumentation info */
-	p->thread.ri_cb = NULL;
+	/*
+	 * Clear the runtime instrumentation flag after the above childregs
+	 * copy. The CB pointer was already cleared in arch_dup_task_struct().
+	 */
 	frame->childregs.psw.mask &= ~PSW_MASK_RI;
-	/* Don't copy guarded storage control block */
-	p->thread.gs_cb = NULL;
-	p->thread.gs_bc_cb = NULL;
 
 	/* Set a new TLS ?  */
 	if (clone_flags & CLONE_SETTLS) {
--- linux-ein-5.4.0.orig/arch/s390/kernel/processor.c
+++ linux-ein-5.4.0/arch/s390/kernel/processor.c
@@ -165,8 +165,9 @@
 static int show_cpuinfo(struct seq_file *m, void *v)
 {
 	unsigned long n = (unsigned long) v - 1;
+	unsigned long first = cpumask_first(cpu_online_mask);
 
-	if (!n)
+	if (n == first)
 		show_cpu_summary(m, v);
 	if (!machine_has_cpu_mhz)
 		return 0;
@@ -179,6 +180,8 @@
 {
 	if (*pos)
 		*pos = cpumask_next(*pos - 1, cpu_online_mask);
+	else
+		*pos = cpumask_first(cpu_online_mask);
 	return *pos < nr_cpu_ids ? (void *)*pos + 1 : NULL;
 }
 
--- linux-ein-5.4.0.orig/arch/s390/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/s390/kernel/ptrace.c
@@ -324,6 +324,25 @@
 		child->thread.per_user.end = data;
 }
 
+static void fixup_int_code(struct task_struct *child, addr_t data)
+{
+	struct pt_regs *regs = task_pt_regs(child);
+	int ilc = regs->int_code >> 16;
+	u16 insn;
+
+	if (ilc > 6)
+		return;
+
+	if (ptrace_access_vm(child, regs->psw.addr - (regs->int_code >> 16),
+			&insn, sizeof(insn), FOLL_FORCE) != sizeof(insn))
+		return;
+
+	/* double check that tracee stopped on svc instruction */
+	if ((insn >> 8) != 0xa)
+		return;
+
+	regs->int_code = 0x20000 | (data & 0xffff);
+}
 /*
  * Write a word to the user area of a process at location addr. This
  * operation does have an additional problem compared to peek_user.
@@ -335,7 +354,9 @@
 	struct user *dummy = NULL;
 	addr_t offset;
 
+
 	if (addr < (addr_t) &dummy->regs.acrs) {
+		struct pt_regs *regs = task_pt_regs(child);
 		/*
 		 * psw and gprs are stored on the stack
 		 */
@@ -353,7 +374,11 @@
 				/* Invalid addressing mode bits */
 				return -EINVAL;
 		}
-		*(addr_t *)((addr_t) &task_pt_regs(child)->psw + addr) = data;
+
+		if (test_pt_regs_flag(regs, PIF_SYSCALL) &&
+			addr == offsetof(struct user, regs.gprs[2]))
+			fixup_int_code(child, data);
+		*(addr_t *)((addr_t) &regs->psw + addr) = data;
 
 	} else if (addr < (addr_t) (&dummy->regs.orig_gpr2)) {
 		/*
@@ -477,9 +502,7 @@
 		}
 		return 0;
 	case PTRACE_GET_LAST_BREAK:
-		put_user(child->thread.last_break,
-			 (unsigned long __user *) data);
-		return 0;
+		return put_user(child->thread.last_break, (unsigned long __user *)data);
 	case PTRACE_ENABLE_TE:
 		if (!MACHINE_HAS_TE)
 			return -EIO;
@@ -719,6 +742,10 @@
 			regs->psw.mask = (regs->psw.mask & ~PSW_MASK_BA) |
 				(__u64)(tmp & PSW32_ADDR_AMODE);
 		} else {
+
+			if (test_pt_regs_flag(regs, PIF_SYSCALL) &&
+				addr == offsetof(struct compat_user, regs.gprs[2]))
+				fixup_int_code(child, data);
 			/* gpr 0-15 */
 			*(__u32*)((addr_t) &regs->psw + addr*2 + 4) = tmp;
 		}
@@ -827,9 +854,7 @@
 		}
 		return 0;
 	case PTRACE_GET_LAST_BREAK:
-		put_user(child->thread.last_break,
-			 (unsigned int __user *) data);
-		return 0;
+		return put_user(child->thread.last_break, (unsigned int __user *)data);
 	}
 	return compat_ptrace_request(child, request, addr, data);
 }
@@ -838,40 +863,45 @@
 asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
 {
 	unsigned long mask = -1UL;
+	long ret = -1;
 
 	/*
 	 * The sysc_tracesys code in entry.S stored the system
 	 * call number to gprs[2].
 	 */
 	if (test_thread_flag(TIF_SYSCALL_TRACE) &&
-	    (tracehook_report_syscall_entry(regs) ||
-	     regs->gprs[2] >= NR_syscalls)) {
+	    tracehook_report_syscall_entry(regs)) {
 		/*
-		 * Tracing decided this syscall should not happen or the
-		 * debugger stored an invalid system call number. Skip
+		 * Tracing decided this syscall should not happen. Skip
 		 * the system call and the system call restart handling.
 		 */
-		clear_pt_regs_flag(regs, PIF_SYSCALL);
-		return -1;
+		goto skip;
 	}
 
 	/* Do the secure computing check after ptrace. */
 	if (secure_computing(NULL)) {
 		/* seccomp failures shouldn't expose any additional code. */
-		return -1;
+		goto skip;
 	}
 
 	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
-		trace_sys_enter(regs, regs->gprs[2]);
+		trace_sys_enter(regs, regs->int_code & 0xffff);
 
 	if (is_compat_task())
 		mask = 0xffffffff;
 
-	audit_syscall_entry(regs->gprs[2], regs->orig_gpr2 & mask,
+	audit_syscall_entry(regs->int_code & 0xffff, regs->orig_gpr2 & mask,
 			    regs->gprs[3] &mask, regs->gprs[4] &mask,
 			    regs->gprs[5] &mask);
 
+	if ((signed long)regs->gprs[2] >= NR_syscalls) {
+		regs->gprs[2] = -ENOSYS;
+		ret = -ENOSYS;
+	}
 	return regs->gprs[2];
+skip:
+	clear_pt_regs_flag(regs, PIF_SYSCALL);
+	return ret;
 }
 
 asmlinkage void do_syscall_trace_exit(struct pt_regs *regs)
@@ -1256,7 +1286,6 @@
 		cb->pc == 1 &&
 		cb->qc == 0 &&
 		cb->reserved2 == 0 &&
-		cb->key == PAGE_DEFAULT_KEY &&
 		cb->reserved3 == 0 &&
 		cb->reserved4 == 0 &&
 		cb->reserved5 == 0 &&
@@ -1320,7 +1349,11 @@
 		kfree(data);
 		return -EINVAL;
 	}
-
+	/*
+	 * Override access key in any case, since user space should
+	 * not be able to set it, nor should it care about it.
+	 */
+	ri_cb.key = PAGE_DEFAULT_KEY >> 4;
 	preempt_disable();
 	if (!target->thread.ri_cb)
 		target->thread.ri_cb = data;
--- linux-ein-5.4.0.orig/arch/s390/kernel/runtime_instr.c
+++ linux-ein-5.4.0/arch/s390/kernel/runtime_instr.c
@@ -57,7 +57,7 @@
 	cb->k = 1;
 	cb->ps = 1;
 	cb->pc = 1;
-	cb->key = PAGE_DEFAULT_KEY;
+	cb->key = PAGE_DEFAULT_KEY >> 4;
 	cb->v = 1;
 }
 
--- linux-ein-5.4.0.orig/arch/s390/kernel/setup.c
+++ linux-ein-5.4.0/arch/s390/kernel/setup.c
@@ -49,6 +49,7 @@
 #include <linux/memory.h>
 #include <linux/compat.h>
 #include <linux/start_kernel.h>
+#include <linux/security.h>
 
 #include <asm/boot_data.h>
 #include <asm/ipl.h>
@@ -73,6 +74,7 @@
 #include <asm/nospec-branch.h>
 #include <asm/mem_detect.h>
 #include <asm/uv.h>
+#include <asm/asm-offsets.h>
 #include "entry.h"
 
 /*
@@ -92,10 +94,6 @@
 
 unsigned long int_hwcap = 0;
 
-#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
-int __bootdata_preserved(prot_virt_guest);
-#endif
-
 int __bootdata(noexec_disabled);
 int __bootdata(memory_end_set);
 unsigned long __bootdata(memory_end);
@@ -111,6 +109,8 @@
 unsigned long __bootdata_preserved(__sdma);
 unsigned long __bootdata_preserved(__edma);
 unsigned long __bootdata_preserved(__kaslr_offset);
+unsigned int __bootdata_preserved(zlib_dfltcc_support);
+EXPORT_SYMBOL(zlib_dfltcc_support);
 
 unsigned long VMALLOC_START;
 EXPORT_SYMBOL(VMALLOC_START);
@@ -161,7 +161,7 @@
 	else if (CONSOLE_IS_3270)
 		add_preferred_console("tty3270", 0, NULL);
 	else if (CONSOLE_IS_VT220)
-		add_preferred_console("ttyS", 1, NULL);
+		add_preferred_console("ttysclp", 0, NULL);
 	else if (CONSOLE_IS_HVC)
 		add_preferred_console("hvc", 0, NULL);
 }
@@ -355,7 +355,6 @@
 
 void __init arch_call_rest_init(void)
 {
-	struct stack_frame *frame;
 	unsigned long stack;
 
 	stack = stack_alloc();
@@ -368,13 +367,7 @@
 	set_task_stack_end_magic(current);
 	stack += STACK_INIT_OFFSET;
 	S390_lowcore.kernel_stack = stack;
-	frame = (struct stack_frame *) stack;
-	memset(frame, 0, sizeof(*frame));
-	/* Branch to rest_init on the new stack, never returns */
-	asm volatile(
-		"	la	15,0(%[_frame])\n"
-		"	jg	rest_init\n"
-		: : [_frame] "a" (frame));
+	CALL_ON_STACK_NORETURN(rest_init, stack);
 }
 
 static void __init setup_lowcore_dat_off(void)
@@ -457,6 +450,8 @@
 	lc->spinlock_index = 0;
 	arch_spin_lock_setup(0);
 	lc->br_r1_trampoline = 0x07f1;	/* br %r1 */
+	lc->return_lpswe = gen_lpswe(__LC_RETURN_PSW);
+	lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW);
 
 	set_prefix((u32)(unsigned long) lc);
 	lowcore_ptr[0] = lc;
@@ -571,6 +566,9 @@
 			vmax = _REGION1_SIZE; /* 4-level kernel page table */
 	}
 
+	if (is_prot_virt_host())
+		adjust_to_uv_max(&vmax);
+
 	/* module area is at the end of the kernel address space. */
 	MODULES_END = vmax;
 	MODULES_VADDR = MODULES_END - MODULES_LEN;
@@ -631,7 +629,7 @@
 /*
  * Make sure that the area behind memory_end is protected
  */
-static void reserve_memory_end(void)
+static void __init reserve_memory_end(void)
 {
 	if (memory_end_set)
 		memblock_reserve(memory_end, ULONG_MAX);
@@ -640,7 +638,7 @@
 /*
  * Make sure that oldmem, where the dump is stored, is protected
  */
-static void reserve_oldmem(void)
+static void __init reserve_oldmem(void)
 {
 #ifdef CONFIG_CRASH_DUMP
 	if (OLDMEM_BASE)
@@ -652,7 +650,7 @@
 /*
  * Make sure that oldmem, where the dump is stored, is protected
  */
-static void remove_oldmem(void)
+static void __init remove_oldmem(void)
 {
 #ifdef CONFIG_CRASH_DUMP
 	if (OLDMEM_BASE)
@@ -845,9 +843,6 @@
 		storage_key_init_range(reg->base, reg->base + reg->size);
 	}
 	psw_set_key(PAGE_DEFAULT_KEY);
-
-	/* Only cosmetics */
-	memblock_enforce_memory_limit(memblock_end_of_DRAM());
 }
 
 /*
@@ -926,9 +921,9 @@
 	if (MACHINE_HAS_VX) {
 		elf_hwcap |= HWCAP_S390_VXRS;
 		if (test_facility(134))
-			elf_hwcap |= HWCAP_S390_VXRS_EXT;
-		if (test_facility(135))
 			elf_hwcap |= HWCAP_S390_VXRS_BCD;
+		if (test_facility(135))
+			elf_hwcap |= HWCAP_S390_VXRS_EXT;
 		if (test_facility(148))
 			elf_hwcap |= HWCAP_S390_VXRS_EXT2;
 		if (test_facility(152))
@@ -1012,6 +1007,11 @@
 	if (stsi(vmms, 3, 2, 2) == 0 && vmms->count)
 		add_device_randomness(&vmms->vm, sizeof(vmms->vm[0]) * vmms->count);
 	memblock_free((unsigned long) vmms, PAGE_SIZE);
+
+#ifdef CONFIG_ARCH_RANDOM
+	if (cpacf_query_func(CPACF_PRNO, CPACF_PRNO_TRNG))
+		static_branch_enable(&s390_arch_random_available);
+#endif
 }
 
 /*
@@ -1038,8 +1038,7 @@
 {
 	union diag318_info diag318_info = {
 		.cpnc = CPNC_LINUX,
-		.cpvc_linux = 0,
-		.cpvc_distro = {0},
+		.cpvc = 0,
 	};
 
 	if (!sclp.has_diag318)
@@ -1059,7 +1058,7 @@
 
 	if (!early_ipl_comp_list_addr)
 		return;
-	if (ipl_block.hdr.flags & IPL_PL_FLAG_IPLSR)
+	if (ipl_block.hdr.flags & IPL_PL_FLAG_SIPL)
 		pr_info("Linux is running with Secure-IPL enabled\n");
 	else
 		pr_info("Linux is running with Secure-IPL disabled\n");
@@ -1103,6 +1102,12 @@
 
 	log_component_list();
 
+#ifdef CONFIG_LOCK_DOWN_IN_SECURE_BOOT
+	if (ipl_get_secureboot())
+		security_lock_kernel_down("Secure IPL",
+					  LOCKDOWN_INTEGRITY_MAX);
+#endif
+
 	/* Have one command line that is parsed and saved in /proc/cmdline */
 	/* boot_command_line has been already set up in early.c */
 	*cmdline_p = boot_command_line;
@@ -1117,6 +1122,7 @@
 	if (IS_ENABLED(CONFIG_EXPOLINE_AUTO))
 		nospec_auto_detect();
 
+	jump_label_init();
 	parse_early_param();
 #ifdef CONFIG_CRASH_DUMP
 	/* Deactivate elfcorehdr= kernel parameter */
@@ -1151,6 +1157,8 @@
 	 */
 	memblock_trim_memory(1UL << (MAX_ORDER - 1 + PAGE_SHIFT));
 
+	if (is_prot_virt_host())
+		setup_uv();
 	setup_memory_end();
 	setup_memory();
 	dma_contiguous_reserve(memory_end);
--- linux-ein-5.4.0.orig/arch/s390/kernel/smp.c
+++ linux-ein-5.4.0/arch/s390/kernel/smp.c
@@ -145,7 +145,7 @@
 
 static inline int pcpu_stopped(struct pcpu *pcpu)
 {
-	u32 uninitialized_var(status);
+	u32 status;
 
 	if (__pcpu_sigp(pcpu->address, SIGP_SENSE,
 			0, &status) != SIGP_CC_STATUS_STORED)
@@ -212,6 +212,8 @@
 	lc->spinlock_lockval = arch_spin_lockval(cpu);
 	lc->spinlock_index = 0;
 	lc->br_r1_trampoline = 0x07f1;	/* br %r1 */
+	lc->return_lpswe = gen_lpswe(__LC_RETURN_PSW);
+	lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW);
 	if (nmi_alloc_per_cpu(lc))
 		goto out_async;
 	if (vdso_alloc_per_cpu(lc))
@@ -262,10 +264,13 @@
 	lc->spinlock_index = 0;
 	lc->percpu_offset = __per_cpu_offset[cpu];
 	lc->kernel_asce = S390_lowcore.kernel_asce;
+	lc->user_asce = S390_lowcore.kernel_asce;
 	lc->machine_flags = S390_lowcore.machine_flags;
 	lc->user_timer = lc->system_timer =
 		lc->steal_timer = lc->avg_steal_timer = 0;
 	__ctl_store(lc->cregs_save_area, 0, 15);
+	lc->cregs_save_area[1] = lc->kernel_asce;
+	lc->cregs_save_area[7] = lc->vdso_asce;
 	save_access_regs((unsigned int *) lc->access_regs_save_area);
 	memcpy(lc->stfle_fac_list, S390_lowcore.stfle_fac_list,
 	       sizeof(lc->stfle_fac_list));
@@ -398,7 +403,7 @@
 	return -1;
 }
 
-bool arch_vcpu_is_preempted(int cpu)
+bool notrace arch_vcpu_is_preempted(int cpu)
 {
 	if (test_cpu_flag_of(CIF_ENABLED_WAIT, cpu))
 		return false;
@@ -408,7 +413,7 @@
 }
 EXPORT_SYMBOL(arch_vcpu_is_preempted);
 
-void smp_yield_cpu(int cpu)
+void notrace smp_yield_cpu(int cpu)
 {
 	if (MACHINE_HAS_DIAG9C) {
 		diag_stat_inc_norecursion(DIAG_STAT_X09C);
@@ -724,39 +729,67 @@
 
 static int smp_add_present_cpu(int cpu);
 
-static int __smp_rescan_cpus(struct sclp_core_info *info, int sysfs_add)
+static int smp_add_core(struct sclp_core_entry *core, cpumask_t *avail,
+			bool configured, bool early)
 {
 	struct pcpu *pcpu;
-	cpumask_t avail;
-	int cpu, nr, i, j;
+	int cpu, nr, i;
 	u16 address;
 
 	nr = 0;
-	cpumask_xor(&avail, cpu_possible_mask, cpu_present_mask);
-	cpu = cpumask_first(&avail);
-	for (i = 0; (i < info->combined) && (cpu < nr_cpu_ids); i++) {
-		if (sclp.has_core_type && info->core[i].type != boot_core_type)
+	if (sclp.has_core_type && core->type != boot_core_type)
+		return nr;
+	cpu = cpumask_first(avail);
+	address = core->core_id << smp_cpu_mt_shift;
+	for (i = 0; (i <= smp_cpu_mtid) && (cpu < nr_cpu_ids); i++) {
+		if (pcpu_find_address(cpu_present_mask, address + i))
 			continue;
-		address = info->core[i].core_id << smp_cpu_mt_shift;
-		for (j = 0; j <= smp_cpu_mtid; j++) {
-			if (pcpu_find_address(cpu_present_mask, address + j))
-				continue;
-			pcpu = pcpu_devices + cpu;
-			pcpu->address = address + j;
-			pcpu->state =
-				(cpu >= info->configured*(smp_cpu_mtid + 1)) ?
-				CPU_STATE_STANDBY : CPU_STATE_CONFIGURED;
-			smp_cpu_set_polarization(cpu, POLARIZATION_UNKNOWN);
-			set_cpu_present(cpu, true);
-			if (sysfs_add && smp_add_present_cpu(cpu) != 0)
-				set_cpu_present(cpu, false);
-			else
-				nr++;
-			cpu = cpumask_next(cpu, &avail);
-			if (cpu >= nr_cpu_ids)
+		pcpu = pcpu_devices + cpu;
+		pcpu->address = address + i;
+		if (configured)
+			pcpu->state = CPU_STATE_CONFIGURED;
+		else
+			pcpu->state = CPU_STATE_STANDBY;
+		smp_cpu_set_polarization(cpu, POLARIZATION_UNKNOWN);
+		set_cpu_present(cpu, true);
+		if (!early && smp_add_present_cpu(cpu) != 0)
+			set_cpu_present(cpu, false);
+		else
+			nr++;
+		cpumask_clear_cpu(cpu, avail);
+		cpu = cpumask_next(cpu, avail);
+	}
+	return nr;
+}
+
+static int __smp_rescan_cpus(struct sclp_core_info *info, bool early)
+{
+	struct sclp_core_entry *core;
+	static cpumask_t avail;
+	bool configured;
+	u16 core_id;
+	int nr, i;
+
+	nr = 0;
+	cpumask_xor(&avail, cpu_possible_mask, cpu_present_mask);
+	/*
+	 * Add IPL core first (which got logical CPU number 0) to make sure
+	 * that all SMT threads get subsequent logical CPU numbers.
+	 */
+	if (early) {
+		core_id = pcpu_devices[0].address >> smp_cpu_mt_shift;
+		for (i = 0; i < info->configured; i++) {
+			core = &info->core[i];
+			if (core->core_id == core_id) {
+				nr += smp_add_core(core, &avail, true, early);
 				break;
+			}
 		}
 	}
+	for (i = 0; i < info->combined; i++) {
+		configured = i < info->configured;
+		nr += smp_add_core(&info->core[i], &avail, configured, early);
+	}
 	return nr;
 }
 
@@ -805,18 +838,21 @@
 
 	/* Add CPUs present at boot */
 	get_online_cpus();
-	__smp_rescan_cpus(info, 0);
+	__smp_rescan_cpus(info, true);
 	put_online_cpus();
 	memblock_free_early((unsigned long)info, sizeof(*info));
 }
 
 static void smp_init_secondary(void)
 {
-	int cpu = smp_processor_id();
+	int cpu = raw_smp_processor_id();
 
 	S390_lowcore.last_update_clock = get_tod_clock();
 	restore_access_regs(S390_lowcore.access_regs_save_area);
+	set_cpu_flag(CIF_ASCE_PRIMARY);
+	set_cpu_flag(CIF_ASCE_SECONDARY);
 	cpu_init();
+	rcu_cpu_starting(cpu);
 	preempt_disable();
 	init_cpu_timer();
 	vtime_init();
@@ -843,30 +879,18 @@
 	S390_lowcore.restart_source = -1UL;
 	__ctl_load(S390_lowcore.cregs_save_area, 0, 15);
 	__load_psw_mask(PSW_KERNEL_BITS | PSW_MASK_DAT);
-	CALL_ON_STACK(smp_init_secondary, S390_lowcore.kernel_stack, 0);
+	CALL_ON_STACK_NORETURN(smp_init_secondary, S390_lowcore.kernel_stack);
 }
 
 /* Upping and downing of CPUs */
 int __cpu_up(unsigned int cpu, struct task_struct *tidle)
 {
-	struct pcpu *pcpu;
-	int base, i, rc;
+	struct pcpu *pcpu = pcpu_devices + cpu;
+	int rc;
 
-	pcpu = pcpu_devices + cpu;
 	if (pcpu->state != CPU_STATE_CONFIGURED)
 		return -EIO;
-	base = smp_get_base_cpu(cpu);
-	for (i = 0; i <= smp_cpu_mtid; i++) {
-		if (base + i < nr_cpu_ids)
-			if (cpu_online(base + i))
-				break;
-	}
-	/*
-	 * If this is the first CPU of the core to get online
-	 * do an initial CPU reset.
-	 */
-	if (i > smp_cpu_mtid &&
-	    pcpu_sigp_retry(pcpu_devices + base, SIGP_INITIAL_CPU_RESET, 0) !=
+	if (pcpu_sigp_retry(pcpu, SIGP_INITIAL_CPU_RESET, 0) !=
 	    SIGP_CC_ORDER_CODE_ACCEPTED)
 		return -EIO;
 
@@ -1148,7 +1172,7 @@
 	smp_get_core_info(info, 0);
 	get_online_cpus();
 	mutex_lock(&smp_cpu_state_mutex);
-	nr = __smp_rescan_cpus(info, 1);
+	nr = __smp_rescan_cpus(info, false);
 	mutex_unlock(&smp_cpu_state_mutex);
 	put_online_cpus();
 	kfree(info);
--- linux-ein-5.4.0.orig/arch/s390/kernel/sthyi.c
+++ linux-ein-5.4.0/arch/s390/kernel/sthyi.c
@@ -460,9 +460,9 @@
  *
  * Fills the destination with system information returned by the STHYI
  * instruction. The data is generated by emulation or execution of STHYI,
- * if available. The return value is the condition code that would be
- * returned, the rc parameter is the return code which is passed in
- * register R2 + 1.
+ * if available. The return value is either a negative error value or
+ * the condition code that would be returned, the rc parameter is the
+ * return code which is passed in register R2 + 1.
  */
 int sthyi_fill(void *dst, u64 *rc)
 {
--- linux-ein-5.4.0.orig/arch/s390/kernel/time.c
+++ linux-ein-5.4.0/arch/s390/kernel/time.c
@@ -310,6 +310,7 @@
 
 	vdso_data->tk_mult = tk->tkr_mono.mult;
 	vdso_data->tk_shift = tk->tkr_mono.shift;
+	vdso_data->hrtimer_res = hrtimer_resolution;
 	smp_wmb();
 	++vdso_data->tb_update_count;
 }
@@ -353,8 +354,9 @@
 static DEFINE_MUTEX(clock_sync_mutex);
 static unsigned long clock_sync_flags;
 
-#define CLOCK_SYNC_HAS_STP	0
-#define CLOCK_SYNC_STP		1
+#define CLOCK_SYNC_HAS_STP		0
+#define CLOCK_SYNC_STP			1
+#define CLOCK_SYNC_STPINFO_VALID	2
 
 /*
  * The get_clock function for the physical clock. It will get the current
@@ -591,6 +593,22 @@
 	queue_work(time_sync_wq, &stp_work);
 }
 
+static int __store_stpinfo(void)
+{
+	int rc = chsc_sstpi(stp_page, &stp_info, sizeof(struct stp_sstpi));
+
+	if (rc)
+		clear_bit(CLOCK_SYNC_STPINFO_VALID, &clock_sync_flags);
+	else
+		set_bit(CLOCK_SYNC_STPINFO_VALID, &clock_sync_flags);
+	return rc;
+}
+
+static int stpinfo_valid(void)
+{
+	return stp_online && test_bit(CLOCK_SYNC_STPINFO_VALID, &clock_sync_flags);
+}
+
 static int stp_sync_clock(void *data)
 {
 	struct clock_sync_data *sync = data;
@@ -612,8 +630,7 @@
 			if (rc == 0) {
 				sync->clock_delta = clock_delta;
 				clock_sync_global(clock_delta);
-				rc = chsc_sstpi(stp_page, &stp_info,
-						sizeof(struct stp_sstpi));
+				rc = __store_stpinfo();
 				if (rc == 0 && stp_info.tmd != 2)
 					rc = -EAGAIN;
 			}
@@ -658,7 +675,7 @@
 	if (rc)
 		goto out_unlock;
 
-	rc = chsc_sstpi(stp_page, &stp_info, sizeof(struct stp_sstpi));
+	rc = __store_stpinfo();
 	if (rc || stp_info.c == 0)
 		goto out_unlock;
 
@@ -695,10 +712,14 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%016llx\n",
-		       *(unsigned long long *) stp_info.ctnid);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%016llx\n",
+			      *(unsigned long long *) stp_info.ctnid);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(ctn_id, 0400, stp_ctn_id_show, NULL);
@@ -707,9 +728,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", stp_info.ctn);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", stp_info.ctn);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(ctn_type, 0400, stp_ctn_type_show, NULL);
@@ -718,9 +743,13 @@
 				   struct device_attribute *attr,
 				   char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x2000))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.dsto);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x2000))
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.dsto);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(dst_offset, 0400, stp_dst_offset_show, NULL);
@@ -729,9 +758,13 @@
 					struct device_attribute *attr,
 					char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x8000))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.leaps);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x8000))
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.leaps);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(leap_seconds, 0400, stp_leap_seconds_show, NULL);
@@ -740,9 +773,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.stratum);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.stratum);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(stratum, 0400, stp_stratum_show, NULL);
@@ -751,9 +788,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x0800))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int) stp_info.tto);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x0800))
+		ret = sprintf(buf, "%i\n", (int) stp_info.tto);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(time_offset, 0400, stp_time_offset_show, NULL);
@@ -762,9 +803,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online || !(stp_info.vbits & 0x4000))
-		return -ENODATA;
-	return sprintf(buf, "%i\n", (int)(s16) stp_info.tzo);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid() && (stp_info.vbits & 0x4000))
+		ret = sprintf(buf, "%i\n", (int)(s16) stp_info.tzo);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(time_zone_offset, 0400,
@@ -774,9 +819,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", stp_info.tmd);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", stp_info.tmd);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(timing_mode, 0400, stp_timing_mode_show, NULL);
@@ -785,9 +834,13 @@
 				struct device_attribute *attr,
 				char *buf)
 {
-	if (!stp_online)
-		return -ENODATA;
-	return sprintf(buf, "%i\n", stp_info.tst);
+	ssize_t ret = -ENODATA;
+
+	mutex_lock(&stp_work_mutex);
+	if (stpinfo_valid())
+		ret = sprintf(buf, "%i\n", stp_info.tst);
+	mutex_unlock(&stp_work_mutex);
+	return ret;
 }
 
 static DEVICE_ATTR(timing_state, 0400, stp_timing_state_show, NULL);
--- linux-ein-5.4.0.orig/arch/s390/kernel/topology.c
+++ linux-ein-5.4.0/arch/s390/kernel/topology.c
@@ -65,6 +65,13 @@
 
 cpumask_t cpus_with_topology;
 
+int __cpu_to_node(int cpu)
+{
+	return cpu_topology[cpu].node_id;
+}
+
+EXPORT_SYMBOL(__cpu_to_node);
+
 static cpumask_t cpu_group_map(struct mask_info *info, unsigned int cpu)
 {
 	cpumask_t mask;
--- linux-ein-5.4.0.orig/arch/s390/kernel/trace.c
+++ linux-ein-5.4.0/arch/s390/kernel/trace.c
@@ -14,7 +14,7 @@
 
 static DEFINE_PER_CPU(unsigned int, diagnose_trace_depth);
 
-void trace_s390_diagnose_norecursion(int diag_nr)
+void notrace trace_s390_diagnose_norecursion(int diag_nr)
 {
 	unsigned long flags;
 	unsigned int *depth;
--- linux-ein-5.4.0.orig/arch/s390/kernel/unwind_bc.c
+++ linux-ein-5.4.0/arch/s390/kernel/unwind_bc.c
@@ -60,6 +60,11 @@
 		ip = READ_ONCE_NOCHECK(sf->gprs[8]);
 		reliable = false;
 		regs = NULL;
+		if (!__kernel_text_address(ip)) {
+			/* skip bogus %r14 */
+			state->regs = NULL;
+			return unwind_next_frame(state);
+		}
 	} else {
 		sf = (struct stack_frame *) state->sp;
 		sp = READ_ONCE_NOCHECK(sf->back_chain);
--- linux-ein-5.4.0.orig/arch/s390/kernel/uv.c
+++ linux-ein-5.4.0/arch/s390/kernel/uv.c
@@ -0,0 +1,472 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Common Ultravisor functions and initialization
+ *
+ * Copyright IBM Corp. 2019, 2020
+ */
+#define KMSG_COMPONENT "prot_virt"
+#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/sizes.h>
+#include <linux/bitmap.h>
+#include <linux/memblock.h>
+#include <linux/pagemap.h>
+#include <linux/swap.h>
+#include <asm/facility.h>
+#include <asm/sections.h>
+#include <asm/uv.h>
+
+/* the bootdata_preserved fields come from ones in arch/s390/boot/uv.c */
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
+int __bootdata_preserved(prot_virt_guest);
+#endif
+
+#if IS_ENABLED(CONFIG_KVM)
+int prot_virt_host;
+EXPORT_SYMBOL(prot_virt_host);
+struct uv_info __bootdata_preserved(uv_info);
+EXPORT_SYMBOL(uv_info);
+
+static int __init prot_virt_setup(char *val)
+{
+	bool enabled;
+	int rc;
+
+	rc = kstrtobool(val, &enabled);
+	if (!rc && enabled)
+		prot_virt_host = 1;
+
+	if (is_prot_virt_guest() && prot_virt_host) {
+		prot_virt_host = 0;
+		pr_warn("Protected virtualization not available in protected guests.");
+	}
+
+	if (prot_virt_host && !test_facility(158)) {
+		prot_virt_host = 0;
+		pr_warn("Protected virtualization not supported by the hardware.");
+	}
+
+	return rc;
+}
+early_param("prot_virt", prot_virt_setup);
+
+static int __init uv_init(unsigned long stor_base, unsigned long stor_len)
+{
+	struct uv_cb_init uvcb = {
+		.header.cmd = UVC_CMD_INIT_UV,
+		.header.len = sizeof(uvcb),
+		.stor_origin = stor_base,
+		.stor_len = stor_len,
+	};
+
+	if (uv_call(0, (uint64_t)&uvcb)) {
+		pr_err("Ultravisor init failed with rc: 0x%x rrc: 0%x\n",
+		       uvcb.header.rc, uvcb.header.rrc);
+		return -1;
+	}
+	return 0;
+}
+
+void __init setup_uv(void)
+{
+	unsigned long uv_stor_base;
+
+	uv_stor_base = (unsigned long)memblock_alloc_try_nid(
+		uv_info.uv_base_stor_len, SZ_1M, SZ_2G,
+		MEMBLOCK_ALLOC_ACCESSIBLE, NUMA_NO_NODE);
+	if (!uv_stor_base) {
+		pr_warn("Failed to reserve %lu bytes for ultravisor base storage\n",
+			uv_info.uv_base_stor_len);
+		goto fail;
+	}
+
+	if (uv_init(uv_stor_base, uv_info.uv_base_stor_len)) {
+		memblock_free(uv_stor_base, uv_info.uv_base_stor_len);
+		goto fail;
+	}
+
+	pr_info("Reserving %luMB as ultravisor base storage\n",
+		uv_info.uv_base_stor_len >> 20);
+	return;
+fail:
+	pr_info("Disabling support for protected virtualization");
+	prot_virt_host = 0;
+}
+
+void adjust_to_uv_max(unsigned long *vmax)
+{
+	*vmax = min_t(unsigned long, *vmax, uv_info.max_sec_stor_addr);
+}
+
+/*
+ * Requests the Ultravisor to pin the page in the shared state. This will
+ * cause an intercept when the guest attempts to unshare the pinned page.
+ */
+static int uv_pin_shared(unsigned long paddr)
+{
+	struct uv_cb_cfs uvcb = {
+		.header.cmd = UVC_CMD_PIN_PAGE_SHARED,
+		.header.len = sizeof(uvcb),
+		.paddr = paddr,
+	};
+
+	if (uv_call(0, (u64)&uvcb))
+		return -EINVAL;
+	return 0;
+}
+
+/*
+ * Requests the Ultravisor to encrypt a guest page and make it
+ * accessible to the host for paging (export).
+ *
+ * @paddr: Absolute host address of page to be exported
+ */
+int uv_convert_from_secure(unsigned long paddr)
+{
+	struct uv_cb_cfs uvcb = {
+		.header.cmd = UVC_CMD_CONV_FROM_SEC_STOR,
+		.header.len = sizeof(uvcb),
+		.paddr = paddr
+	};
+
+	if (uv_call(0, (u64)&uvcb))
+		return -EINVAL;
+	return 0;
+}
+
+/*
+ * Calculate the expected ref_count for a page that would otherwise have no
+ * further pins. This was cribbed from similar functions in other places in
+ * the kernel, but with some slight modifications. We know that a secure
+ * page can not be a huge page for example.
+ */
+static int expected_page_refs(struct page *page)
+{
+	int res;
+
+	res = page_mapcount(page);
+	if (PageSwapCache(page)) {
+		res++;
+	} else if (page_mapping(page)) {
+		res++;
+		if (page_has_private(page))
+			res++;
+	}
+	return res;
+}
+
+static int make_secure_pte(pte_t *ptep, unsigned long addr,
+			   struct page *exp_page, struct uv_cb_header *uvcb)
+{
+	pte_t entry = READ_ONCE(*ptep);
+	struct page *page;
+	int expected, cc = 0;
+
+	if (!pte_present(entry))
+		return -ENXIO;
+	if (pte_val(entry) & _PAGE_INVALID)
+		return -ENXIO;
+
+	page = pte_page(entry);
+	if (page != exp_page)
+		return -ENXIO;
+	if (PageWriteback(page))
+		return -EAGAIN;
+	expected = expected_page_refs(page);
+	if (!page_ref_freeze(page, expected))
+		return -EBUSY;
+	set_bit(PG_arch_1, &page->flags);
+	/*
+	 * If the UVC does not succeed or fail immediately, we don't want to
+	 * loop for long, or we might get stall notifications.
+	 * On the other hand, this is a complex scenario and we are holding a lot of
+	 * locks, so we can't easily sleep and reschedule. We try only once,
+	 * and if the UVC returned busy or partial completion, we return
+	 * -EAGAIN and we let the callers deal with it.
+	 */
+	cc = __uv_call(0, (u64)uvcb);
+	page_ref_unfreeze(page, expected);
+	/*
+	 * Return -ENXIO if the page was not mapped, -EINVAL for other errors.
+	 * If busy or partially completed, return -EAGAIN.
+	 */
+	if (cc == UVC_CC_OK)
+		return 0;
+	else if (cc == UVC_CC_BUSY || cc == UVC_CC_PARTIAL)
+		return -EAGAIN;
+	return uvcb->rc == 0x10a ? -ENXIO : -EINVAL;
+}
+
+/*
+ * Requests the Ultravisor to make a page accessible to a guest.
+ * If it's brought in the first time, it will be cleared. If
+ * it has been exported before, it will be decrypted and integrity
+ * checked.
+ */
+int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb)
+{
+	struct vm_area_struct *vma;
+	bool local_drain = false;
+	spinlock_t *ptelock;
+	unsigned long uaddr;
+	struct page *page;
+	pte_t *ptep;
+	int rc;
+
+again:
+	rc = -EFAULT;
+	down_read(&gmap->mm->mmap_sem);
+
+	uaddr = __gmap_translate(gmap, gaddr);
+	if (IS_ERR_VALUE(uaddr))
+		goto out;
+	vma = find_vma(gmap->mm, uaddr);
+	if (!vma)
+		goto out;
+	/*
+	 * Secure pages cannot be huge and userspace should not combine both.
+	 * In case userspace does it anyway this will result in an -EFAULT for
+	 * the unpack. The guest is thus never reaching secure mode. If
+	 * userspace is playing dirty tricky with mapping huge pages later
+	 * on this will result in a segmentation fault.
+	 */
+	if (is_vm_hugetlb_page(vma))
+		goto out;
+
+	rc = -ENXIO;
+	page = follow_page(vma, uaddr, FOLL_WRITE);
+	if (IS_ERR_OR_NULL(page))
+		goto out;
+
+	lock_page(page);
+	ptep = get_locked_pte(gmap->mm, uaddr, &ptelock);
+	rc = make_secure_pte(ptep, uaddr, page, uvcb);
+	pte_unmap_unlock(ptep, ptelock);
+	unlock_page(page);
+out:
+	up_read(&gmap->mm->mmap_sem);
+
+	if (rc == -EAGAIN) {
+		/*
+		 * If we are here because the UVC returned busy or partial
+		 * completion, this is just a useless check, but it is safe.
+		 */
+		wait_on_page_writeback(page);
+	} else if (rc == -EBUSY) {
+		/*
+		 * If we have tried a local drain and the page refcount
+		 * still does not match our expected safe value, try with a
+		 * system wide drain. This is needed if the pagevecs holding
+		 * the page are on a different CPU.
+		 */
+		if (local_drain) {
+			lru_add_drain_all();
+			/* We give up here, and let the caller try again */
+			return -EAGAIN;
+		}
+		/*
+		 * We are here if the page refcount does not match the
+		 * expected safe value. The main culprits are usually
+		 * pagevecs. With lru_add_drain() we drain the pagevecs
+		 * on the local CPU so that hopefully the refcount will
+		 * reach the expected safe value.
+		 */
+		lru_add_drain();
+		local_drain = true;
+		/* And now we try again immediately after draining */
+		goto again;
+	} else if (rc == -ENXIO) {
+		if (gmap_fault(gmap, gaddr, FAULT_FLAG_WRITE))
+			return -EFAULT;
+		return -EAGAIN;
+	}
+	return rc;
+}
+EXPORT_SYMBOL_GPL(gmap_make_secure);
+
+int gmap_convert_to_secure(struct gmap *gmap, unsigned long gaddr)
+{
+	struct uv_cb_cts uvcb = {
+		.header.cmd = UVC_CMD_CONV_TO_SEC_STOR,
+		.header.len = sizeof(uvcb),
+		.guest_handle = gmap->guest_handle,
+		.gaddr = gaddr,
+	};
+
+	return gmap_make_secure(gmap, gaddr, &uvcb);
+}
+EXPORT_SYMBOL_GPL(gmap_convert_to_secure);
+
+/*
+ * To be called with the page locked or with an extra reference! This will
+ * prevent gmap_make_secure from touching the page concurrently. Having 2
+ * parallel make_page_accessible is fine, as the UV calls will become a
+ * no-op if the page is already exported.
+ */
+int arch_make_page_accessible(struct page *page)
+{
+	int rc = 0;
+
+	/* Hugepage cannot be protected, so nothing to do */
+	if (PageHuge(page))
+		return 0;
+
+	/*
+	 * PG_arch_1 is used in 3 places:
+	 * 1. for kernel page tables during early boot
+	 * 2. for storage keys of huge pages and KVM
+	 * 3. As an indication that this page might be secure. This can
+	 *    overindicate, e.g. we set the bit before calling
+	 *    convert_to_secure.
+	 * As secure pages are never huge, all 3 variants can co-exists.
+	 */
+	if (!test_bit(PG_arch_1, &page->flags))
+		return 0;
+
+	rc = uv_pin_shared(page_to_phys(page));
+	if (!rc) {
+		clear_bit(PG_arch_1, &page->flags);
+		return 0;
+	}
+
+	rc = uv_convert_from_secure(page_to_phys(page));
+	if (!rc) {
+		clear_bit(PG_arch_1, &page->flags);
+		return 0;
+	}
+
+	return rc;
+}
+EXPORT_SYMBOL_GPL(arch_make_page_accessible);
+
+#endif
+
+#if defined(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) || IS_ENABLED(CONFIG_KVM)
+static ssize_t uv_query_facilities(struct kobject *kobj,
+				   struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%lx\n%lx\n%lx\n%lx\n",
+			uv_info.inst_calls_list[0],
+			uv_info.inst_calls_list[1],
+			uv_info.inst_calls_list[2],
+			uv_info.inst_calls_list[3]);
+}
+
+static struct kobj_attribute uv_query_facilities_attr =
+	__ATTR(facilities, 0444, uv_query_facilities, NULL);
+
+static ssize_t uv_query_max_guest_cpus(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%d\n",
+			uv_info.max_guest_cpus);
+}
+
+static struct kobj_attribute uv_query_max_guest_cpus_attr =
+	__ATTR(max_cpus, 0444, uv_query_max_guest_cpus, NULL);
+
+static ssize_t uv_query_max_guest_vms(struct kobject *kobj,
+				      struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%d\n",
+			uv_info.max_num_sec_conf);
+}
+
+static struct kobj_attribute uv_query_max_guest_vms_attr =
+	__ATTR(max_guests, 0444, uv_query_max_guest_vms, NULL);
+
+static ssize_t uv_query_max_guest_addr(struct kobject *kobj,
+				       struct kobj_attribute *attr, char *page)
+{
+	return snprintf(page, PAGE_SIZE, "%lx\n",
+			uv_info.max_sec_stor_addr);
+}
+
+static struct kobj_attribute uv_query_max_guest_addr_attr =
+	__ATTR(max_address, 0444, uv_query_max_guest_addr, NULL);
+
+static struct attribute *uv_query_attrs[] = {
+	&uv_query_facilities_attr.attr,
+	&uv_query_max_guest_cpus_attr.attr,
+	&uv_query_max_guest_vms_attr.attr,
+	&uv_query_max_guest_addr_attr.attr,
+	NULL,
+};
+
+static struct attribute_group uv_query_attr_group = {
+	.attrs = uv_query_attrs,
+};
+
+static ssize_t uv_is_prot_virt_guest(struct kobject *kobj,
+				     struct kobj_attribute *attr, char *page)
+{
+	int val = 0;
+
+#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
+	val = prot_virt_guest;
+#endif
+	return scnprintf(page, PAGE_SIZE, "%d\n", val);
+}
+
+static ssize_t uv_is_prot_virt_host(struct kobject *kobj,
+				    struct kobj_attribute *attr, char *page)
+{
+	int val = 0;
+
+#if IS_ENABLED(CONFIG_KVM)
+	val = prot_virt_host;
+#endif
+
+	return scnprintf(page, PAGE_SIZE, "%d\n", val);
+}
+
+static struct kobj_attribute uv_prot_virt_guest =
+	__ATTR(prot_virt_guest, 0444, uv_is_prot_virt_guest, NULL);
+
+static struct kobj_attribute uv_prot_virt_host =
+	__ATTR(prot_virt_host, 0444, uv_is_prot_virt_host, NULL);
+
+static const struct attribute *uv_prot_virt_attrs[] = {
+	&uv_prot_virt_guest.attr,
+	&uv_prot_virt_host.attr,
+	NULL,
+};
+
+static struct kset *uv_query_kset;
+static struct kobject *uv_kobj;
+
+static int __init uv_info_init(void)
+{
+	int rc = -ENOMEM;
+
+	if (!test_facility(158))
+		return 0;
+
+	uv_kobj = kobject_create_and_add("uv", firmware_kobj);
+	if (!uv_kobj)
+		return -ENOMEM;
+
+	rc = sysfs_create_files(uv_kobj, uv_prot_virt_attrs);
+	if (rc)
+		goto out_kobj;
+
+	uv_query_kset = kset_create_and_add("query", NULL, uv_kobj);
+	if (!uv_query_kset)
+		goto out_ind_files;
+
+	rc = sysfs_create_group(&uv_query_kset->kobj, &uv_query_attr_group);
+	if (!rc)
+		return 0;
+
+	kset_unregister(uv_query_kset);
+out_ind_files:
+	sysfs_remove_files(uv_kobj, uv_prot_virt_attrs);
+out_kobj:
+	kobject_del(uv_kobj);
+	kobject_put(uv_kobj);
+	return rc;
+}
+device_initcall(uv_info_init);
+#endif
--- linux-ein-5.4.0.orig/arch/s390/kernel/vdso64/Makefile
+++ linux-ein-5.4.0/arch/s390/kernel/vdso64/Makefile
@@ -18,8 +18,8 @@
 
 KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS))
 KBUILD_CFLAGS_64 += -m64 -fPIC -shared -fno-common -fno-builtin
-KBUILD_CFLAGS_64 += -nostdlib -Wl,-soname=linux-vdso64.so.1 \
-		    -Wl,--hash-style=both
+ldflags-y := -fPIC -shared -nostdlib -soname=linux-vdso64.so.1 \
+	     --hash-style=both --build-id -T
 
 $(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
 $(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_64)
@@ -37,8 +37,8 @@
 $(obj)/vdso64_wrapper.o : $(obj)/vdso64.so
 
 # link rule for the .so file, .lds has to be first
-$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) FORCE
-	$(call if_changed,vdso64ld)
+$(obj)/vdso64.so.dbg: $(obj)/vdso64.lds $(obj-vdso64) FORCE
+	$(call if_changed,ld)
 
 # strip rule for the .so file
 $(obj)/%.so: OBJCOPYFLAGS := -S
@@ -50,8 +50,6 @@
 	$(call if_changed_dep,vdso64as)
 
 # actual build commands
-quiet_cmd_vdso64ld = VDSO64L $@
-      cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $(filter %.lds %.o,$^) -o $@
 quiet_cmd_vdso64as = VDSO64A $@
       cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $<
 
--- linux-ein-5.4.0.orig/arch/s390/kernel/vdso64/clock_getres.S
+++ linux-ein-5.4.0/arch/s390/kernel/vdso64/clock_getres.S
@@ -17,12 +17,14 @@
 	.type  __kernel_clock_getres,@function
 __kernel_clock_getres:
 	CFI_STARTPROC
-	larl	%r1,4f
+	larl	%r1,3f
+	lg	%r0,0(%r1)
 	cghi	%r2,__CLOCK_REALTIME_COARSE
 	je	0f
 	cghi	%r2,__CLOCK_MONOTONIC_COARSE
 	je	0f
-	larl	%r1,3f
+	larl	%r1,_vdso_data
+	llgf	%r0,__VDSO_CLOCK_REALTIME_RES(%r1)
 	cghi	%r2,__CLOCK_REALTIME
 	je	0f
 	cghi	%r2,__CLOCK_MONOTONIC
@@ -36,7 +38,6 @@
 	jz	2f
 0:	ltgr	%r3,%r3
 	jz	1f				/* res == NULL */
-	lg	%r0,0(%r1)
 	xc	0(8,%r3),0(%r3)			/* set tp->tv_sec to zero */
 	stg	%r0,8(%r3)			/* store tp->tv_usec */
 1:	lghi	%r2,0
@@ -45,6 +46,5 @@
 	svc	0
 	br	%r14
 	CFI_ENDPROC
-3:	.quad	__CLOCK_REALTIME_RES
-4:	.quad	__CLOCK_COARSE_RES
+3:	.quad	__CLOCK_COARSE_RES
 	.size	__kernel_clock_getres,.-__kernel_clock_getres
--- linux-ein-5.4.0.orig/arch/s390/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/s390/kernel/vmlinux.lds.S
@@ -15,6 +15,8 @@
 /* Handle ro_after_init data on our own. */
 #define RO_AFTER_INIT_DATA
 
+#define RUNTIME_DISCARD_EXIT
+
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/vmlinux.lds.h>
 
@@ -124,6 +126,7 @@
 	/*
 	 * Table with the patch locations to undo expolines
 	*/
+	. = ALIGN(4);
 	.nospec_call_table : {
 		__nospec_call_start = . ;
 		*(.s390_indirect*)
@@ -188,5 +191,6 @@
 	DISCARDS
 	/DISCARD/ : {
 		*(.eh_frame)
+		*(.interp)
 	}
 }
--- linux-ein-5.4.0.orig/arch/s390/kernel/vtime.c
+++ linux-ein-5.4.0/arch/s390/kernel/vtime.c
@@ -136,7 +136,8 @@
 		"	stck	%1"	/* Store current tod clock value */
 #endif
 		: "=Q" (S390_lowcore.last_update_timer),
-		  "=Q" (S390_lowcore.last_update_clock));
+		  "=Q" (S390_lowcore.last_update_clock)
+		: : "cc");
 	clock = S390_lowcore.last_update_clock - clock;
 	timer -= S390_lowcore.last_update_timer;
 
@@ -216,7 +217,7 @@
 	avg_steal = S390_lowcore.avg_steal_timer / 2;
 	if ((s64) steal > 0) {
 		S390_lowcore.steal_timer = 0;
-		account_steal_time(steal);
+		account_steal_time(cputime_to_nsecs(steal));
 		avg_steal += steal;
 	}
 	S390_lowcore.avg_steal_timer = avg_steal;
--- linux-ein-5.4.0.orig/arch/s390/kvm/Makefile
+++ linux-ein-5.4.0/arch/s390/kvm/Makefile
@@ -9,6 +9,6 @@
 ccflags-y := -Ivirt/kvm -Iarch/s390/kvm
 
 kvm-objs := $(common-objs) kvm-s390.o intercept.o interrupt.o priv.o sigp.o
-kvm-objs += diag.o gaccess.o guestdbg.o vsie.o
+kvm-objs += diag.o gaccess.o guestdbg.o vsie.o pv.o
 
 obj-$(CONFIG_KVM) += kvm.o
--- linux-ein-5.4.0.orig/arch/s390/kvm/diag.c
+++ linux-ein-5.4.0/arch/s390/kvm/diag.c
@@ -2,7 +2,7 @@
 /*
  * handling diagnose instructions
  *
- * Copyright IBM Corp. 2008, 2011
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -187,6 +187,10 @@
 		return -EOPNOTSUPP;
 	}
 
+	/*
+	 * no need to check the return value of vcpu_stop as it can only have
+	 * an error for protvirt, but protvirt means user cpu state
+	 */
 	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
 		kvm_s390_vcpu_stop(vcpu);
 	vcpu->run->s390_reset_flags |= KVM_S390_RESET_SUBSYSTEM;
--- linux-ein-5.4.0.orig/arch/s390/kvm/gaccess.c
+++ linux-ein-5.4.0/arch/s390/kvm/gaccess.c
@@ -9,6 +9,7 @@
 #include <linux/vmalloc.h>
 #include <linux/mm_types.h>
 #include <linux/err.h>
+#include <linux/bitfield.h>
 
 #include <asm/pgtable.h>
 #include <asm/gmap.h>
@@ -794,48 +795,268 @@
 	return 1;
 }
 
-static int guest_page_range(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
-			    unsigned long *pages, unsigned long nr_pages,
-			    const union asce asce, enum gacc_mode mode)
+static int vm_check_access_key(struct kvm *kvm, u8 access_key,
+			       enum gacc_mode mode, gpa_t gpa)
+{
+	u8 storage_key, access_control;
+	bool fetch_protected;
+	unsigned long hva;
+	int r;
+
+	if (access_key == 0)
+		return 0;
+
+	hva = gfn_to_hva(kvm, gpa_to_gfn(gpa));
+	if (kvm_is_error_hva(hva))
+		return PGM_ADDRESSING;
+
+	down_read(&current->mm->mmap_sem);
+	r = get_guest_storage_key(current->mm, hva, &storage_key);
+	up_read(&current->mm->mmap_sem);
+	if (r)
+		return r;
+	access_control = FIELD_GET(_PAGE_ACC_BITS, storage_key);
+	if (access_control == access_key)
+		return 0;
+	fetch_protected = storage_key & _PAGE_FP_BIT;
+	if ((mode == GACC_FETCH || mode == GACC_IFETCH) && !fetch_protected)
+		return 0;
+	return PGM_PROTECTION;
+}
+
+static bool fetch_prot_override_applicable(struct kvm_vcpu *vcpu, enum gacc_mode mode,
+					   union asce asce)
+{
+	psw_t *psw = &vcpu->arch.sie_block->gpsw;
+	unsigned long override;
+
+	if (mode == GACC_FETCH || mode == GACC_IFETCH) {
+		/* check if fetch protection override enabled */
+		override = vcpu->arch.sie_block->gcr[0];
+		override &= CR0_FETCH_PROTECTION_OVERRIDE;
+		/* not applicable if subject to DAT && private space */
+		override = override && !(psw_bits(*psw).dat && asce.p);
+		return override;
+	}
+	return false;
+}
+
+static bool fetch_prot_override_applies(unsigned long ga, unsigned int len)
+{
+	return ga < 2048 && ga + len <= 2048;
+}
+
+static bool storage_prot_override_applicable(struct kvm_vcpu *vcpu)
+{
+	/* check if storage protection override enabled */
+	return vcpu->arch.sie_block->gcr[0] & CR0_STORAGE_PROTECTION_OVERRIDE;
+}
+
+static bool storage_prot_override_applies(u8 access_control)
+{
+	/* matches special storage protection override key (9) -> allow */
+	return access_control == PAGE_SPO_ACC;
+}
+
+static int vcpu_check_access_key(struct kvm_vcpu *vcpu, u8 access_key,
+				 enum gacc_mode mode, union asce asce, gpa_t gpa,
+				 unsigned long ga, unsigned int len)
+{
+	u8 storage_key, access_control;
+	unsigned long hva;
+	int r;
+
+	/* access key 0 matches any storage key -> allow */
+	if (access_key == 0)
+		return 0;
+	/*
+	 * caller needs to ensure that gfn is accessible, so we can
+	 * assume that this cannot fail
+	 */
+	hva = gfn_to_hva(vcpu->kvm, gpa_to_gfn(gpa));
+	down_read(&current->mm->mmap_sem);
+	r = get_guest_storage_key(current->mm, hva, &storage_key);
+	up_read(&current->mm->mmap_sem);
+	if (r)
+		return r;
+	access_control = FIELD_GET(_PAGE_ACC_BITS, storage_key);
+	/* access key matches storage key -> allow */
+	if (access_control == access_key)
+		return 0;
+	if (mode == GACC_FETCH || mode == GACC_IFETCH) {
+		/* it is a fetch and fetch protection is off -> allow */
+		if (!(storage_key & _PAGE_FP_BIT))
+			return 0;
+		if (fetch_prot_override_applicable(vcpu, mode, asce) &&
+		    fetch_prot_override_applies(ga, len))
+			return 0;
+	}
+	if (storage_prot_override_applicable(vcpu) &&
+	    storage_prot_override_applies(access_control))
+		return 0;
+	return PGM_PROTECTION;
+}
+
+/**
+ * guest_range_to_gpas() - Calculate guest physical addresses of page fragments
+ * covering a logical range
+ * @vcpu: virtual cpu
+ * @ga: guest address, start of range
+ * @ar: access register
+ * @gpas: output argument, may be NULL
+ * @len: length of range in bytes
+ * @asce: address-space-control element to use for translation
+ * @mode: access mode
+ * @access_key: access key to mach the range's storage keys against
+ *
+ * Translate a logical range to a series of guest absolute addresses,
+ * such that the concatenation of page fragments starting at each gpa make up
+ * the whole range.
+ * The translation is performed as if done by the cpu for the given @asce, @ar,
+ * @mode and state of the @vcpu.
+ * If the translation causes an exception, its program interruption code is
+ * returned and the &struct kvm_s390_pgm_info pgm member of @vcpu is modified
+ * such that a subsequent call to kvm_s390_inject_prog_vcpu() will inject
+ * a correct exception into the guest.
+ * The resulting gpas are stored into @gpas, unless it is NULL.
+ *
+ * Note: All fragments except the first one start at the beginning of a page.
+ *	 When deriving the boundaries of a fragment from a gpa, all but the last
+ *	 fragment end at the end of the page.
+ *
+ * Return:
+ * * 0		- success
+ * * <0		- translation could not be performed, for example if  guest
+ *		  memory could not be accessed
+ * * >0		- an access exception occurred. In this case the returned value
+ *		  is the program interruption code and the contents of pgm may
+ *		  be used to inject an exception into the guest.
+ */
+static int guest_range_to_gpas(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
+			       unsigned long *gpas, unsigned long len,
+			       const union asce asce, enum gacc_mode mode,
+			       u8 access_key)
 {
 	psw_t *psw = &vcpu->arch.sie_block->gpsw;
+	unsigned int offset = offset_in_page(ga);
+	unsigned int fragment_len;
 	int lap_enabled, rc = 0;
 	enum prot_type prot;
+	unsigned long gpa;
 
 	lap_enabled = low_address_protection_enabled(vcpu, asce);
-	while (nr_pages) {
+	while (min(PAGE_SIZE - offset, len) > 0) {
+		fragment_len = min(PAGE_SIZE - offset, len);
 		ga = kvm_s390_logical_to_effective(vcpu, ga);
 		if (mode == GACC_STORE && lap_enabled && is_low_address(ga))
 			return trans_exc(vcpu, PGM_PROTECTION, ga, ar, mode,
 					 PROT_TYPE_LA);
-		ga &= PAGE_MASK;
 		if (psw_bits(*psw).dat) {
-			rc = guest_translate(vcpu, ga, pages, asce, mode, &prot);
+			rc = guest_translate(vcpu, ga, &gpa, asce, mode, &prot);
 			if (rc < 0)
 				return rc;
 		} else {
-			*pages = kvm_s390_real_to_abs(vcpu, ga);
-			if (kvm_is_error_gpa(vcpu->kvm, *pages))
+			gpa = kvm_s390_real_to_abs(vcpu, ga);
+			if (kvm_is_error_gpa(vcpu->kvm, gpa))
 				rc = PGM_ADDRESSING;
 		}
 		if (rc)
 			return trans_exc(vcpu, rc, ga, ar, mode, prot);
-		ga += PAGE_SIZE;
-		pages++;
-		nr_pages--;
+		rc = vcpu_check_access_key(vcpu, access_key, mode, asce, gpa, ga,
+					   fragment_len);
+		if (rc)
+			return trans_exc(vcpu, rc, ga, ar, mode, PROT_TYPE_KEYC);
+		if (gpas)
+			*gpas++ = gpa;
+		offset = 0;
+		ga += fragment_len;
+		len -= fragment_len;
 	}
 	return 0;
 }
 
-int access_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
-		 unsigned long len, enum gacc_mode mode)
+static int access_guest_page(struct kvm *kvm, enum gacc_mode mode, gpa_t gpa,
+			     void *data, unsigned int len)
+{
+	const unsigned int offset = offset_in_page(gpa);
+	const gfn_t gfn = gpa_to_gfn(gpa);
+	int rc;
+
+	if (mode == GACC_STORE)
+		rc = kvm_write_guest_page(kvm, gfn, data, offset, len);
+	else
+		rc = kvm_read_guest_page(kvm, gfn, data, offset, len);
+	return rc;
+}
+
+static int
+access_guest_page_with_key(struct kvm *kvm, enum gacc_mode mode, gpa_t gpa,
+			   void *data, unsigned int len, u8 access_key)
+{
+	struct kvm_memory_slot *slot;
+	bool writable;
+	gfn_t gfn;
+	hva_t hva;
+	int rc;
+
+	gfn = gpa >> PAGE_SHIFT;
+	slot = gfn_to_memslot(kvm, gfn);
+	hva = gfn_to_hva_memslot_prot(slot, gfn, &writable);
+
+	if (kvm_is_error_hva(hva))
+		return PGM_ADDRESSING;
+	/*
+	 * Check if it's a ro memslot, even tho that can't occur (they're unsupported).
+	 * Don't try to actually handle that case.
+	 */
+	if (!writable && mode == GACC_STORE)
+		return -EOPNOTSUPP;
+	hva += offset_in_page(gpa);
+	if (mode == GACC_STORE)
+		rc = copy_to_user_key((void __user *)hva, data, len, access_key);
+	else
+		rc = copy_from_user_key(data, (void __user *)hva, len, access_key);
+	if (rc)
+		return PGM_PROTECTION;
+	if (mode == GACC_STORE)
+		mark_page_dirty(kvm, gfn);
+	return 0;
+}
+
+int access_guest_abs_with_key(struct kvm *kvm, gpa_t gpa, void *data,
+			      unsigned long len, enum gacc_mode mode, u8 access_key)
+{
+	int offset = offset_in_page(gpa);
+	int fragment_len;
+	int rc;
+
+	while (min(PAGE_SIZE - offset, len) > 0) {
+		fragment_len = min(PAGE_SIZE - offset, len);
+		rc = access_guest_page_with_key(kvm, mode, gpa, data, fragment_len, access_key);
+		if (rc)
+			return rc;
+		offset = 0;
+		len -= fragment_len;
+		data += fragment_len;
+		gpa += fragment_len;
+	}
+	return 0;
+}
+
+int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
+			  void *data, unsigned long len, enum gacc_mode mode,
+			  u8 access_key)
 {
 	psw_t *psw = &vcpu->arch.sie_block->gpsw;
-	unsigned long _len, nr_pages, gpa, idx;
-	unsigned long pages_array[2];
-	unsigned long *pages;
+	unsigned long nr_pages, idx;
+	unsigned long gpa_array[2];
+	unsigned int fragment_len;
+	unsigned long *gpas;
+	enum prot_type prot;
 	int need_ipte_lock;
 	union asce asce;
+	bool try_storage_prot_override;
+	bool try_fetch_prot_override;
 	int rc;
 
 	if (!len)
@@ -845,55 +1066,85 @@
 	if (rc)
 		return rc;
 	nr_pages = (((ga & ~PAGE_MASK) + len - 1) >> PAGE_SHIFT) + 1;
-	pages = pages_array;
-	if (nr_pages > ARRAY_SIZE(pages_array))
-		pages = vmalloc(array_size(nr_pages, sizeof(unsigned long)));
-	if (!pages)
+	gpas = gpa_array;
+	if (nr_pages > ARRAY_SIZE(gpa_array))
+		gpas = vmalloc(array_size(nr_pages, sizeof(unsigned long)));
+	if (!gpas)
 		return -ENOMEM;
+	try_fetch_prot_override = fetch_prot_override_applicable(vcpu, mode, asce);
+	try_storage_prot_override = storage_prot_override_applicable(vcpu);
 	need_ipte_lock = psw_bits(*psw).dat && !asce.r;
 	if (need_ipte_lock)
 		ipte_lock(vcpu);
-	rc = guest_page_range(vcpu, ga, ar, pages, nr_pages, asce, mode);
-	for (idx = 0; idx < nr_pages && !rc; idx++) {
-		gpa = *(pages + idx) + (ga & ~PAGE_MASK);
-		_len = min(PAGE_SIZE - (gpa & ~PAGE_MASK), len);
-		if (mode == GACC_STORE)
-			rc = kvm_write_guest(vcpu->kvm, gpa, data, _len);
-		else
-			rc = kvm_read_guest(vcpu->kvm, gpa, data, _len);
-		len -= _len;
-		ga += _len;
-		data += _len;
+	/*
+	 * Since we do the access further down ultimately via a move instruction
+	 * that does key checking and returns an error in case of a protection
+	 * violation, we don't need to do the check during address translation.
+	 * Skip it by passing access key 0, which matches any storage key,
+	 * obviating the need for any further checks. As a result the check is
+	 * handled entirely in hardware on access, we only need to take care to
+	 * forego key protection checking if fetch protection override applies or
+	 * retry with the special key 9 in case of storage protection override.
+	 */
+	rc = guest_range_to_gpas(vcpu, ga, ar, gpas, len, asce, mode, 0);
+	if (rc)
+		goto out_unlock;
+	for (idx = 0; idx < nr_pages; idx++) {
+		fragment_len = min(PAGE_SIZE - offset_in_page(gpas[idx]), len);
+		if (try_fetch_prot_override && fetch_prot_override_applies(ga, fragment_len)) {
+			rc = access_guest_page(vcpu->kvm, mode, gpas[idx],
+					       data, fragment_len);
+		} else {
+			rc = access_guest_page_with_key(vcpu->kvm, mode, gpas[idx],
+							data, fragment_len, access_key);
+		}
+		if (rc == PGM_PROTECTION && try_storage_prot_override)
+			rc = access_guest_page_with_key(vcpu->kvm, mode, gpas[idx],
+							data, fragment_len, PAGE_SPO_ACC);
+		if (rc == PGM_PROTECTION)
+			prot = PROT_TYPE_KEYC;
+		if (rc)
+			break;
+		len -= fragment_len;
+		data += fragment_len;
+		ga = kvm_s390_logical_to_effective(vcpu, ga + fragment_len);
 	}
+	if (rc > 0)
+		rc = trans_exc(vcpu, rc, ga, ar, mode, prot);
+out_unlock:
 	if (need_ipte_lock)
 		ipte_unlock(vcpu);
-	if (nr_pages > ARRAY_SIZE(pages_array))
-		vfree(pages);
+	if (nr_pages > ARRAY_SIZE(gpa_array))
+		vfree(gpas);
 	return rc;
 }
 
 int access_guest_real(struct kvm_vcpu *vcpu, unsigned long gra,
 		      void *data, unsigned long len, enum gacc_mode mode)
 {
-	unsigned long _len, gpa;
+	unsigned int fragment_len;
+	unsigned long gpa;
 	int rc = 0;
 
 	while (len && !rc) {
 		gpa = kvm_s390_real_to_abs(vcpu, gra);
-		_len = min(PAGE_SIZE - (gpa & ~PAGE_MASK), len);
-		if (mode)
-			rc = write_guest_abs(vcpu, gpa, data, _len);
-		else
-			rc = read_guest_abs(vcpu, gpa, data, _len);
-		len -= _len;
-		gra += _len;
-		data += _len;
+		fragment_len = min(PAGE_SIZE - offset_in_page(gpa), len);
+		rc = access_guest_page(vcpu->kvm, mode, gpa, data, fragment_len);
+		len -= fragment_len;
+		gra += fragment_len;
+		data += fragment_len;
 	}
 	return rc;
 }
 
 /**
- * guest_translate_address - translate guest logical into guest absolute address
+ * guest_translate_address_with_key - translate guest logical into guest absolute address
+ * @vcpu: virtual cpu
+ * @gva: Guest virtual address
+ * @ar: Access register
+ * @gpa: Guest physical address
+ * @mode: Translation access mode
+ * @access_key: access key to mach the storage key with
  *
  * Parameter semantics are the same as the ones from guest_translate.
  * The memory contents at the guest address are not changed.
@@ -901,11 +1152,10 @@
  * Note: The IPTE lock is not taken during this function, so the caller
  * has to take care of this.
  */
-int guest_translate_address(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
-			    unsigned long *gpa, enum gacc_mode mode)
+int guest_translate_address_with_key(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
+				     unsigned long *gpa, enum gacc_mode mode,
+				     u8 access_key)
 {
-	psw_t *psw = &vcpu->arch.sie_block->gpsw;
-	enum prot_type prot;
 	union asce asce;
 	int rc;
 
@@ -913,47 +1163,59 @@
 	rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode);
 	if (rc)
 		return rc;
-	if (is_low_address(gva) && low_address_protection_enabled(vcpu, asce)) {
-		if (mode == GACC_STORE)
-			return trans_exc(vcpu, PGM_PROTECTION, gva, 0,
-					 mode, PROT_TYPE_LA);
-	}
-
-	if (psw_bits(*psw).dat && !asce.r) {	/* Use DAT? */
-		rc = guest_translate(vcpu, gva, gpa, asce, mode, &prot);
-		if (rc > 0)
-			return trans_exc(vcpu, rc, gva, 0, mode, prot);
-	} else {
-		*gpa = kvm_s390_real_to_abs(vcpu, gva);
-		if (kvm_is_error_gpa(vcpu->kvm, *gpa))
-			return trans_exc(vcpu, rc, gva, PGM_ADDRESSING, mode, 0);
-	}
-
-	return rc;
+	return guest_range_to_gpas(vcpu, gva, ar, gpa, 1, asce, mode,
+				   access_key);
 }
 
 /**
  * check_gva_range - test a range of guest virtual addresses for accessibility
+ * @vcpu: virtual cpu
+ * @gva: Guest virtual address
+ * @ar: Access register
+ * @length: Length of test range
+ * @mode: Translation access mode
+ * @access_key: access key to mach the storage keys with
  */
 int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
-		    unsigned long length, enum gacc_mode mode)
+		    unsigned long length, enum gacc_mode mode, u8 access_key)
 {
-	unsigned long gpa;
-	unsigned long currlen;
+	union asce asce;
 	int rc = 0;
 
+	rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode);
+	if (rc)
+		return rc;
 	ipte_lock(vcpu);
-	while (length > 0 && !rc) {
-		currlen = min(length, PAGE_SIZE - (gva % PAGE_SIZE));
-		rc = guest_translate_address(vcpu, gva, ar, &gpa, mode);
-		gva += currlen;
-		length -= currlen;
-	}
+	rc = guest_range_to_gpas(vcpu, gva, ar, NULL, length, asce, mode,
+				 access_key);
 	ipte_unlock(vcpu);
 
 	return rc;
 }
 
+/**
+ * check_gpa_range - test a range of guest physical addresses for accessibility
+ * @kvm: virtual machine instance
+ * @gpa: guest physical address
+ * @length: length of test range
+ * @mode: access mode to test, relevant for storage keys
+ * @access_key: access key to mach the storage keys with
+ */
+int check_gpa_range(struct kvm *kvm, unsigned long gpa, unsigned long length,
+		    enum gacc_mode mode, u8 access_key)
+{
+	unsigned int fragment_len;
+	int rc = 0;
+
+	while (length && !rc) {
+		fragment_len = min(PAGE_SIZE - offset_in_page(gpa), length);
+		rc = vm_check_access_key(kvm, access_key, mode, gpa);
+		length -= fragment_len;
+		gpa += fragment_len;
+	}
+	return rc;
+}
+
 /**
  * kvm_s390_check_low_addr_prot_real - check for low-address protection
  * @gra: Guest real address
--- linux-ein-5.4.0.orig/arch/s390/kvm/gaccess.h
+++ linux-ein-5.4.0/arch/s390/kvm/gaccess.h
@@ -18,17 +18,14 @@
 
 /**
  * kvm_s390_real_to_abs - convert guest real address to guest absolute address
- * @vcpu - guest virtual cpu
+ * @prefix - guest prefix
  * @gra - guest real address
  *
  * Returns the guest absolute address that corresponds to the passed guest real
- * address @gra of a virtual guest cpu by applying its prefix.
+ * address @gra of by applying the given prefix.
  */
-static inline unsigned long kvm_s390_real_to_abs(struct kvm_vcpu *vcpu,
-						 unsigned long gra)
+static inline unsigned long _kvm_s390_real_to_abs(u32 prefix, unsigned long gra)
 {
-	unsigned long prefix  = kvm_s390_get_prefix(vcpu);
-
 	if (gra < 2 * PAGE_SIZE)
 		gra += prefix;
 	else if (gra >= prefix && gra < prefix + 2 * PAGE_SIZE)
@@ -37,6 +34,43 @@
 }
 
 /**
+ * kvm_s390_real_to_abs - convert guest real address to guest absolute address
+ * @vcpu - guest virtual cpu
+ * @gra - guest real address
+ *
+ * Returns the guest absolute address that corresponds to the passed guest real
+ * address @gra of a virtual guest cpu by applying its prefix.
+ */
+static inline unsigned long kvm_s390_real_to_abs(struct kvm_vcpu *vcpu,
+						 unsigned long gra)
+{
+	return _kvm_s390_real_to_abs(kvm_s390_get_prefix(vcpu), gra);
+}
+
+/**
+ * _kvm_s390_logical_to_effective - convert guest logical to effective address
+ * @psw: psw of the guest
+ * @ga: guest logical address
+ *
+ * Convert a guest logical address to an effective address by applying the
+ * rules of the addressing mode defined by bits 31 and 32 of the given PSW
+ * (extendended/basic addressing mode).
+ *
+ * Depending on the addressing mode, the upper 40 bits (24 bit addressing
+ * mode), 33 bits (31 bit addressing mode) or no bits (64 bit addressing
+ * mode) of @ga will be zeroed and the remaining bits will be returned.
+ */
+static inline unsigned long _kvm_s390_logical_to_effective(psw_t *psw,
+							   unsigned long ga)
+{
+	if (psw_bits(*psw).eaba == PSW_BITS_AMODE_64BIT)
+		return ga;
+	if (psw_bits(*psw).eaba == PSW_BITS_AMODE_31BIT)
+		return ga & ((1UL << 31) - 1);
+	return ga & ((1UL << 24) - 1);
+}
+
+/**
  * kvm_s390_logical_to_effective - convert guest logical to effective address
  * @vcpu: guest virtual cpu
  * @ga: guest logical address
@@ -52,13 +86,7 @@
 static inline unsigned long kvm_s390_logical_to_effective(struct kvm_vcpu *vcpu,
 							  unsigned long ga)
 {
-	psw_t *psw = &vcpu->arch.sie_block->gpsw;
-
-	if (psw_bits(*psw).eaba == PSW_BITS_AMODE_64BIT)
-		return ga;
-	if (psw_bits(*psw).eaba == PSW_BITS_AMODE_31BIT)
-		return ga & ((1UL << 31) - 1);
-	return ga & ((1UL << 24) - 1);
+	return _kvm_s390_logical_to_effective(&vcpu->arch.sie_block->gpsw, ga);
 }
 
 /*
@@ -158,24 +186,34 @@
 	GACC_IFETCH,
 };
 
-int guest_translate_address(struct kvm_vcpu *vcpu, unsigned long gva,
-			    u8 ar, unsigned long *gpa, enum gacc_mode mode);
+int guest_translate_address_with_key(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
+				     unsigned long *gpa, enum gacc_mode mode,
+				     u8 access_key);
+
 int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
-		    unsigned long length, enum gacc_mode mode);
+		    unsigned long length, enum gacc_mode mode, u8 access_key);
+
+int check_gpa_range(struct kvm *kvm, unsigned long gpa, unsigned long length,
+		    enum gacc_mode mode, u8 access_key);
 
-int access_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
-		 unsigned long len, enum gacc_mode mode);
+int access_guest_abs_with_key(struct kvm *kvm, gpa_t gpa, void *data,
+			      unsigned long len, enum gacc_mode mode, u8 access_key);
+
+int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
+			  void *data, unsigned long len, enum gacc_mode mode,
+			  u8 access_key);
 
 int access_guest_real(struct kvm_vcpu *vcpu, unsigned long gra,
 		      void *data, unsigned long len, enum gacc_mode mode);
 
 /**
- * write_guest - copy data from kernel space to guest space
+ * write_guest_with_key - copy data from kernel space to guest space
  * @vcpu: virtual cpu
  * @ga: guest address
  * @ar: access register
  * @data: source address in kernel space
  * @len: number of bytes to copy
+ * @access_key: access key the storage key needs to match
  *
  * Copy @len bytes from @data (kernel space) to @ga (guest address).
  * In order to copy data to guest space the PSW of the vcpu is inspected:
@@ -186,8 +224,8 @@
  * The addressing mode of the PSW is also inspected, so that address wrap
  * around is taken into account for 24-, 31- and 64-bit addressing mode,
  * if the to be copied data crosses page boundaries in guest address space.
- * In addition also low address and DAT protection are inspected before
- * copying any data (key protection is currently not implemented).
+ * In addition low address, DAT and key protection checks are performed before
+ * copying any data.
  *
  * This function modifies the 'struct kvm_s390_pgm_info pgm' member of @vcpu.
  * In case of an access exception (e.g. protection exception) pgm will contain
@@ -215,10 +253,53 @@
  *	 if data has been changed in guest space in case of an exception.
  */
 static inline __must_check
+int write_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
+			 void *data, unsigned long len, u8 access_key)
+{
+	return access_guest_with_key(vcpu, ga, ar, data, len, GACC_STORE,
+				     access_key);
+}
+
+/**
+ * write_guest - copy data from kernel space to guest space
+ * @vcpu: virtual cpu
+ * @ga: guest address
+ * @ar: access register
+ * @data: source address in kernel space
+ * @len: number of bytes to copy
+ *
+ * The behaviour of write_guest is identical to write_guest_with_key, except
+ * that the PSW access key is used instead of an explicit argument.
+ */
+static inline __must_check
 int write_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
 		unsigned long len)
 {
-	return access_guest(vcpu, ga, ar, data, len, GACC_STORE);
+	u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key;
+
+	return write_guest_with_key(vcpu, ga, ar, data, len, access_key);
+}
+
+/**
+ * read_guest_with_key - copy data from guest space to kernel space
+ * @vcpu: virtual cpu
+ * @ga: guest address
+ * @ar: access register
+ * @data: destination address in kernel space
+ * @len: number of bytes to copy
+ * @access_key: access key the storage key needs to match
+ *
+ * Copy @len bytes from @ga (guest address) to @data (kernel space).
+ *
+ * The behaviour of read_guest_with_key is identical to write_guest_with_key,
+ * except that data will be copied from guest space to kernel space.
+ */
+static inline __must_check
+int read_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
+			void *data, unsigned long len, u8 access_key)
+{
+	return access_guest_with_key(vcpu, ga, ar, data, len, GACC_FETCH,
+				     access_key);
 }
 
 /**
@@ -231,14 +312,16 @@
  *
  * Copy @len bytes from @ga (guest address) to @data (kernel space).
  *
- * The behaviour of read_guest is identical to write_guest, except that
- * data will be copied from guest space to kernel space.
+ * The behaviour of read_guest is identical to read_guest_with_key, except
+ * that the PSW access key is used instead of an explicit argument.
  */
 static inline __must_check
 int read_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
 	       unsigned long len)
 {
-	return access_guest(vcpu, ga, ar, data, len, GACC_FETCH);
+	u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key;
+
+	return read_guest_with_key(vcpu, ga, ar, data, len, access_key);
 }
 
 /**
@@ -259,7 +342,10 @@
 int read_guest_instr(struct kvm_vcpu *vcpu, unsigned long ga, void *data,
 		     unsigned long len)
 {
-	return access_guest(vcpu, ga, 0, data, len, GACC_IFETCH);
+	u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key;
+
+	return access_guest_with_key(vcpu, ga, 0, data, len, GACC_IFETCH,
+				     access_key);
 }
 
 /**
--- linux-ein-5.4.0.orig/arch/s390/kvm/intercept.c
+++ linux-ein-5.4.0/arch/s390/kvm/intercept.c
@@ -2,7 +2,7 @@
 /*
  * in-kernel handling for sie intercepts
  *
- * Copyright IBM Corp. 2008, 2014
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -16,6 +16,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/irq.h>
 #include <asm/sysinfo.h>
+#include <asm/uv.h>
 
 #include "kvm-s390.h"
 #include "gaccess.h"
@@ -79,6 +80,10 @@
 			return rc;
 	}
 
+	/*
+	 * no need to check the return value of vcpu_stop as it can only have
+	 * an error for protvirt, but protvirt means user cpu state
+	 */
 	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
 		kvm_s390_vcpu_stop(vcpu);
 	return -EOPNOTSUPP;
@@ -231,6 +236,13 @@
 
 	vcpu->stat.exit_program_interruption++;
 
+	/*
+	 * Intercept 8 indicates a loop of specification exceptions
+	 * for protected guests.
+	 */
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		return -EOPNOTSUPP;
+
 	if (guestdbg_enabled(vcpu) && per_event(vcpu)) {
 		rc = kvm_s390_handle_per_event(vcpu);
 		if (rc)
@@ -318,18 +330,18 @@
 
 	kvm_s390_get_regs_rre(vcpu, &reg1, &reg2);
 
-	/* Make sure that the source is paged-in */
-	rc = guest_translate_address(vcpu, vcpu->run->s.regs.gprs[reg2],
-				     reg2, &srcaddr, GACC_FETCH);
+	/* Ensure that the source is paged-in, no actual access -> no key checking */
+	rc = guest_translate_address_with_key(vcpu, vcpu->run->s.regs.gprs[reg2],
+					      reg2, &srcaddr, GACC_FETCH, 0);
 	if (rc)
 		return kvm_s390_inject_prog_cond(vcpu, rc);
 	rc = kvm_arch_fault_in_page(vcpu, srcaddr, 0);
 	if (rc != 0)
 		return rc;
 
-	/* Make sure that the destination is paged-in */
-	rc = guest_translate_address(vcpu, vcpu->run->s.regs.gprs[reg1],
-				     reg1, &dstaddr, GACC_STORE);
+	/* Ensure that the source is paged-in, no actual access -> no key checking */
+	rc = guest_translate_address_with_key(vcpu, vcpu->run->s.regs.gprs[reg1],
+					      reg1, &dstaddr, GACC_STORE, 0);
 	if (rc)
 		return kvm_s390_inject_prog_cond(vcpu, rc);
 	rc = kvm_arch_fault_in_page(vcpu, dstaddr, 1);
@@ -360,8 +372,8 @@
  */
 int handle_sthyi(struct kvm_vcpu *vcpu)
 {
-	int reg1, reg2, r = 0;
-	u64 code, addr, cc = 0, rc = 0;
+	int reg1, reg2, cc = 0, r = 0;
+	u64 code, addr, rc = 0;
 	struct sthyi_sctns *sctns = NULL;
 
 	if (!test_kvm_facility(vcpu->kvm, 74))
@@ -384,7 +396,7 @@
 		goto out;
 	}
 
-	if (addr & ~PAGE_MASK)
+	if (!kvm_s390_pv_cpu_is_protected(vcpu) && (addr & ~PAGE_MASK))
 		return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
 	sctns = (void *)get_zeroed_page(GFP_KERNEL);
@@ -392,13 +404,21 @@
 		return -ENOMEM;
 
 	cc = sthyi_fill(sctns, &rc);
-
+	if (cc < 0) {
+		free_page((unsigned long)sctns);
+		return cc;
+	}
 out:
 	if (!cc) {
-		r = write_guest(vcpu, addr, reg2, sctns, PAGE_SIZE);
-		if (r) {
-			free_page((unsigned long)sctns);
-			return kvm_s390_inject_prog_cond(vcpu, r);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			memcpy((void *)(sida_origin(vcpu->arch.sie_block)),
+			       sctns, PAGE_SIZE);
+		} else {
+			r = write_guest(vcpu, addr, reg2, sctns, PAGE_SIZE);
+			if (r) {
+				free_page((unsigned long)sctns);
+				return kvm_s390_inject_prog_cond(vcpu, r);
+			}
 		}
 	}
 
@@ -444,6 +464,97 @@
 	return kvm_s390_inject_program_int(vcpu, PGM_OPERATION);
 }
 
+static int handle_pv_spx(struct kvm_vcpu *vcpu)
+{
+	u32 pref = *(u32 *)vcpu->arch.sie_block->sidad;
+
+	kvm_s390_set_prefix(vcpu, pref);
+	trace_kvm_s390_handle_prefix(vcpu, 1, pref);
+	return 0;
+}
+
+static int handle_pv_sclp(struct kvm_vcpu *vcpu)
+{
+	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
+
+	spin_lock(&fi->lock);
+	/*
+	 * 2 cases:
+	 * a: an sccb answering interrupt was already pending or in flight.
+	 *    As the sccb value is not known we can simply set some value to
+	 *    trigger delivery of a saved SCCB. UV will then use its saved
+	 *    copy of the SCCB value.
+	 * b: an error SCCB interrupt needs to be injected so we also inject
+	 *    a fake SCCB address. Firmware will use the proper one.
+	 * This makes sure, that both errors and real sccb returns will only
+	 * be delivered after a notification intercept (instruction has
+	 * finished) but not after others.
+	 */
+	fi->srv_signal.ext_params |= 0x43000;
+	set_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs);
+	clear_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs);
+	spin_unlock(&fi->lock);
+	return 0;
+}
+
+static int handle_pv_uvc(struct kvm_vcpu *vcpu)
+{
+	struct uv_cb_share *guest_uvcb = (void *)vcpu->arch.sie_block->sidad;
+	struct uv_cb_cts uvcb = {
+		.header.cmd	= UVC_CMD_UNPIN_PAGE_SHARED,
+		.header.len	= sizeof(uvcb),
+		.guest_handle	= kvm_s390_pv_get_handle(vcpu->kvm),
+		.gaddr		= guest_uvcb->paddr,
+	};
+	int rc;
+
+	if (guest_uvcb->header.cmd != UVC_CMD_REMOVE_SHARED_ACCESS) {
+		WARN_ONCE(1, "Unexpected notification intercept for UVC 0x%x\n",
+			  guest_uvcb->header.cmd);
+		return 0;
+	}
+	rc = gmap_make_secure(vcpu->arch.gmap, uvcb.gaddr, &uvcb);
+	/*
+	 * If the unpin did not succeed, the guest will exit again for the UVC
+	 * and we will retry the unpin.
+	 */
+	if (rc == -EINVAL)
+		return 0;
+	/*
+	 * If we got -EAGAIN here, we simply return it. It will eventually
+	 * get propagated all the way to userspace, which should then try
+	 * again.
+	 */
+	return rc;
+}
+
+static int handle_pv_notification(struct kvm_vcpu *vcpu)
+{
+	int ret;
+
+	if (vcpu->arch.sie_block->ipa == 0xb210)
+		return handle_pv_spx(vcpu);
+	if (vcpu->arch.sie_block->ipa == 0xb220)
+		return handle_pv_sclp(vcpu);
+	if (vcpu->arch.sie_block->ipa == 0xb9a4)
+		return handle_pv_uvc(vcpu);
+	if (vcpu->arch.sie_block->ipa >> 8 == 0xae) {
+		/*
+		 * Besides external call, other SIGP orders also cause a
+		 * 108 (pv notify) intercept. In contrast to external call,
+		 * these orders need to be emulated and hence the appropriate
+		 * place to handle them is in handle_instruction().
+		 * So first try kvm_s390_handle_sigp_pei() and if that isn't
+		 * successful, go on with handle_instruction().
+		 */
+		ret = kvm_s390_handle_sigp_pei(vcpu);
+		if (!ret)
+			return ret;
+	}
+
+	return handle_instruction(vcpu);
+}
+
 int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu)
 {
 	int rc, per_rc = 0;
@@ -480,6 +591,28 @@
 	case ICPT_KSS:
 		rc = kvm_s390_skey_check_enable(vcpu);
 		break;
+	case ICPT_MCHKREQ:
+	case ICPT_INT_ENABLE:
+		/*
+		 * PSW bit 13 or a CR (0, 6, 14) changed and we might
+		 * now be able to deliver interrupts. The pre-run code
+		 * will take care of this.
+		 */
+		rc = 0;
+		break;
+	case ICPT_PV_INSTR:
+		rc = handle_instruction(vcpu);
+		break;
+	case ICPT_PV_NOTIFY:
+		rc = handle_pv_notification(vcpu);
+		break;
+	case ICPT_PV_PREF:
+		rc = 0;
+		gmap_convert_to_secure(vcpu->arch.gmap,
+				       kvm_s390_get_prefix(vcpu));
+		gmap_convert_to_secure(vcpu->arch.gmap,
+				       kvm_s390_get_prefix(vcpu) + PAGE_SIZE);
+		break;
 	default:
 		return -EOPNOTSUPP;
 	}
--- linux-ein-5.4.0.orig/arch/s390/kvm/interrupt.c
+++ linux-ein-5.4.0/arch/s390/kvm/interrupt.c
@@ -2,7 +2,7 @@
 /*
  * handling kvm guest interrupts
  *
- * Copyright IBM Corp. 2008, 2015
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  */
@@ -81,8 +81,9 @@
 		struct esca_block *sca = vcpu->kvm->arch.sca;
 		union esca_sigp_ctrl *sigp_ctrl =
 			&(sca->cpu[vcpu->vcpu_id].sigp_ctrl);
-		union esca_sigp_ctrl new_val = {0}, old_val = *sigp_ctrl;
+		union esca_sigp_ctrl new_val = {0}, old_val;
 
+		old_val = READ_ONCE(*sigp_ctrl);
 		new_val.scn = src_id;
 		new_val.c = 1;
 		old_val.c = 0;
@@ -93,8 +94,9 @@
 		struct bsca_block *sca = vcpu->kvm->arch.sca;
 		union bsca_sigp_ctrl *sigp_ctrl =
 			&(sca->cpu[vcpu->vcpu_id].sigp_ctrl);
-		union bsca_sigp_ctrl new_val = {0}, old_val = *sigp_ctrl;
+		union bsca_sigp_ctrl new_val = {0}, old_val;
 
+		old_val = READ_ONCE(*sigp_ctrl);
 		new_val.scn = src_id;
 		new_val.c = 1;
 		old_val.c = 0;
@@ -124,16 +126,18 @@
 		struct esca_block *sca = vcpu->kvm->arch.sca;
 		union esca_sigp_ctrl *sigp_ctrl =
 			&(sca->cpu[vcpu->vcpu_id].sigp_ctrl);
-		union esca_sigp_ctrl old = *sigp_ctrl;
+		union esca_sigp_ctrl old;
 
+		old = READ_ONCE(*sigp_ctrl);
 		expect = old.value;
 		rc = cmpxchg(&sigp_ctrl->value, old.value, 0);
 	} else {
 		struct bsca_block *sca = vcpu->kvm->arch.sca;
 		union bsca_sigp_ctrl *sigp_ctrl =
 			&(sca->cpu[vcpu->vcpu_id].sigp_ctrl);
-		union bsca_sigp_ctrl old = *sigp_ctrl;
+		union bsca_sigp_ctrl old;
 
+		old = READ_ONCE(*sigp_ctrl);
 		expect = old.value;
 		rc = cmpxchg(&sigp_ctrl->value, old.value, 0);
 	}
@@ -324,8 +328,11 @@
 
 static inline unsigned long pending_irqs_no_gisa(struct kvm_vcpu *vcpu)
 {
-	return vcpu->kvm->arch.float_int.pending_irqs |
-		vcpu->arch.local_int.pending_irqs;
+	unsigned long pending = vcpu->kvm->arch.float_int.pending_irqs |
+				vcpu->arch.local_int.pending_irqs;
+
+	pending &= ~vcpu->kvm->arch.float_int.masked_irqs;
+	return pending;
 }
 
 static inline unsigned long pending_irqs(struct kvm_vcpu *vcpu)
@@ -383,10 +390,18 @@
 		__clear_bit(IRQ_PEND_EXT_CLOCK_COMP, &active_mask);
 	if (!(vcpu->arch.sie_block->gcr[0] & CR0_CPU_TIMER_SUBMASK))
 		__clear_bit(IRQ_PEND_EXT_CPU_TIMER, &active_mask);
-	if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK))
+	if (!(vcpu->arch.sie_block->gcr[0] & CR0_SERVICE_SIGNAL_SUBMASK)) {
 		__clear_bit(IRQ_PEND_EXT_SERVICE, &active_mask);
+		__clear_bit(IRQ_PEND_EXT_SERVICE_EV, &active_mask);
+	}
 	if (psw_mchk_disabled(vcpu))
 		active_mask &= ~IRQ_PEND_MCHK_MASK;
+	/* PV guest cpus can have a single interruption injected at a time. */
+	if (kvm_s390_pv_cpu_is_protected(vcpu) &&
+	    vcpu->arch.sie_block->iictl != IICTL_CODE_NONE)
+		active_mask &= ~(IRQ_PEND_EXT_II_MASK |
+				 IRQ_PEND_IO_MASK |
+				 IRQ_PEND_MCHK_MASK);
 	/*
 	 * Check both floating and local interrupt's cr14 because
 	 * bit IRQ_PEND_MCHK_REP could be set in both cases.
@@ -408,13 +423,13 @@
 static void __set_cpu_idle(struct kvm_vcpu *vcpu)
 {
 	kvm_s390_set_cpuflags(vcpu, CPUSTAT_WAIT);
-	set_bit(vcpu->vcpu_id, vcpu->kvm->arch.idle_mask);
+	set_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
 }
 
 static void __unset_cpu_idle(struct kvm_vcpu *vcpu)
 {
 	kvm_s390_clear_cpuflags(vcpu, CPUSTAT_WAIT);
-	clear_bit(vcpu->vcpu_id, vcpu->kvm->arch.idle_mask);
+	clear_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
 }
 
 static void __reset_intercept_indicators(struct kvm_vcpu *vcpu)
@@ -479,19 +494,23 @@
 static int __must_check __deliver_cpu_timer(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
-	int rc;
+	int rc = 0;
 
 	vcpu->stat.deliver_cputm++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_CPU_TIMER,
 					 0, 0);
-
-	rc  = put_guest_lc(vcpu, EXT_IRQ_CPU_TIMER,
-			   (u16 *)__LC_EXT_INT_CODE);
-	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
-	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_CPU_TIMER;
+	} else {
+		rc  = put_guest_lc(vcpu, EXT_IRQ_CPU_TIMER,
+				   (u16 *)__LC_EXT_INT_CODE);
+		rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
+		rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
+				     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+		rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
+				    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	}
 	clear_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs);
 	return rc ? -EFAULT : 0;
 }
@@ -499,19 +518,23 @@
 static int __must_check __deliver_ckc(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
-	int rc;
+	int rc = 0;
 
 	vcpu->stat.deliver_ckc++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_CLOCK_COMP,
 					 0, 0);
-
-	rc  = put_guest_lc(vcpu, EXT_IRQ_CLK_COMP,
-			   (u16 __user *)__LC_EXT_INT_CODE);
-	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
-	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_CLK_COMP;
+	} else {
+		rc  = put_guest_lc(vcpu, EXT_IRQ_CLK_COMP,
+				   (u16 __user *)__LC_EXT_INT_CODE);
+		rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
+		rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
+				     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+		rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
+				    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	}
 	clear_bit(IRQ_PEND_EXT_CLOCK_COMP, &li->pending_irqs);
 	return rc ? -EFAULT : 0;
 }
@@ -553,6 +576,20 @@
 	union mci mci;
 	int rc;
 
+	/*
+	 * All other possible payload for a machine check (e.g. the register
+	 * contents in the save area) will be handled by the ultravisor, as
+	 * the hypervisor does not not have the needed information for
+	 * protected guests.
+	 */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_MCHK;
+		vcpu->arch.sie_block->mcic = mchk->mcic;
+		vcpu->arch.sie_block->faddr = mchk->failing_storage_address;
+		vcpu->arch.sie_block->edc = mchk->ext_damage_code;
+		return 0;
+	}
+
 	mci.val = mchk->mcic;
 	/* take care of lazy register loading */
 	save_fpu_regs();
@@ -696,17 +733,21 @@
 static int __must_check __deliver_restart(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
-	int rc;
+	int rc = 0;
 
 	VCPU_EVENT(vcpu, 3, "%s", "deliver: cpu restart");
 	vcpu->stat.deliver_restart_signal++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_RESTART, 0, 0);
 
-	rc  = write_guest_lc(vcpu,
-			     offsetof(struct lowcore, restart_old_psw),
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, offsetof(struct lowcore, restart_psw),
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_RESTART;
+	} else {
+		rc  = write_guest_lc(vcpu,
+				     offsetof(struct lowcore, restart_old_psw),
+				     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+		rc |= read_guest_lc(vcpu, offsetof(struct lowcore, restart_psw),
+				    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	}
 	clear_bit(IRQ_PEND_RESTART, &li->pending_irqs);
 	return rc ? -EFAULT : 0;
 }
@@ -748,6 +789,12 @@
 	vcpu->stat.deliver_emergency_signal++;
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_EMERGENCY,
 					 cpu_addr, 0);
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_EMERGENCY_SIG;
+		vcpu->arch.sie_block->extcpuaddr = cpu_addr;
+		return 0;
+	}
 
 	rc  = put_guest_lc(vcpu, EXT_IRQ_EMERGENCY_SIG,
 			   (u16 *)__LC_EXT_INT_CODE);
@@ -776,6 +823,12 @@
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id,
 					 KVM_S390_INT_EXTERNAL_CALL,
 					 extcall.code, 0);
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_EXTERNAL_CALL;
+		vcpu->arch.sie_block->extcpuaddr = extcall.code;
+		return 0;
+	}
 
 	rc  = put_guest_lc(vcpu, EXT_IRQ_EXTERNAL_CALL,
 			   (u16 *)__LC_EXT_INT_CODE);
@@ -787,6 +840,21 @@
 	return rc ? -EFAULT : 0;
 }
 
+static int __deliver_prog_pv(struct kvm_vcpu *vcpu, u16 code)
+{
+	switch (code) {
+	case PGM_SPECIFICATION:
+		vcpu->arch.sie_block->iictl = IICTL_CODE_SPECIFICATION;
+		break;
+	case PGM_OPERAND:
+		vcpu->arch.sie_block->iictl = IICTL_CODE_OPERAND;
+		break;
+	default:
+		return -EINVAL;
+	}
+	return 0;
+}
+
 static int __must_check __deliver_prog(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
@@ -807,6 +875,10 @@
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_PROGRAM_INT,
 					 pgm_info.code, 0);
 
+	/* PER is handled by the ultravisor */
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		return __deliver_prog_pv(vcpu, pgm_info.code & ~PGM_PER);
+
 	switch (pgm_info.code & ~PGM_PER) {
 	case PGM_AFX_TRANSLATION:
 	case PGM_ASX_TRANSLATION:
@@ -902,20 +974,49 @@
 	return rc ? -EFAULT : 0;
 }
 
+#define SCCB_MASK 0xFFFFFFF8
+#define SCCB_EVENT_PENDING 0x3
+
+static int write_sclp(struct kvm_vcpu *vcpu, u32 parm)
+{
+	int rc;
+
+	if (kvm_s390_pv_cpu_get_handle(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_EXT;
+		vcpu->arch.sie_block->eic = EXT_IRQ_SERVICE_SIG;
+		vcpu->arch.sie_block->eiparams = parm;
+		return 0;
+	}
+
+	rc  = put_guest_lc(vcpu, EXT_IRQ_SERVICE_SIG, (u16 *)__LC_EXT_INT_CODE);
+	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
+	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
+			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
+			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
+	rc |= put_guest_lc(vcpu, parm,
+			   (u32 *)__LC_EXT_PARAMS);
+
+	return rc ? -EFAULT : 0;
+}
+
 static int __must_check __deliver_service(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
 	struct kvm_s390_ext_info ext;
-	int rc = 0;
 
 	spin_lock(&fi->lock);
-	if (!(test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs))) {
+	if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs) ||
+	    !(test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs))) {
 		spin_unlock(&fi->lock);
 		return 0;
 	}
 	ext = fi->srv_signal;
 	memset(&fi->srv_signal, 0, sizeof(ext));
 	clear_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs);
+	clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		set_bit(IRQ_PEND_EXT_SERVICE, &fi->masked_irqs);
 	spin_unlock(&fi->lock);
 
 	VCPU_EVENT(vcpu, 4, "deliver: sclp parameter 0x%x",
@@ -924,16 +1025,31 @@
 	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_SERVICE,
 					 ext.ext_params, 0);
 
-	rc  = put_guest_lc(vcpu, EXT_IRQ_SERVICE_SIG, (u16 *)__LC_EXT_INT_CODE);
-	rc |= put_guest_lc(vcpu, 0, (u16 *)__LC_EXT_CPU_ADDR);
-	rc |= write_guest_lc(vcpu, __LC_EXT_OLD_PSW,
-			     &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= read_guest_lc(vcpu, __LC_EXT_NEW_PSW,
-			    &vcpu->arch.sie_block->gpsw, sizeof(psw_t));
-	rc |= put_guest_lc(vcpu, ext.ext_params,
-			   (u32 *)__LC_EXT_PARAMS);
+	return write_sclp(vcpu, ext.ext_params);
+}
 
-	return rc ? -EFAULT : 0;
+static int __must_check __deliver_service_ev(struct kvm_vcpu *vcpu)
+{
+	struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int;
+	struct kvm_s390_ext_info ext;
+
+	spin_lock(&fi->lock);
+	if (!(test_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs))) {
+		spin_unlock(&fi->lock);
+		return 0;
+	}
+	ext = fi->srv_signal;
+	/* only clear the event bit */
+	fi->srv_signal.ext_params &= ~SCCB_EVENT_PENDING;
+	clear_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
+	spin_unlock(&fi->lock);
+
+	VCPU_EVENT(vcpu, 4, "%s", "deliver: sclp parameter event");
+	vcpu->stat.deliver_service_signal++;
+	trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_INT_SERVICE,
+					 ext.ext_params, 0);
+
+	return write_sclp(vcpu, SCCB_EVENT_PENDING);
 }
 
 static int __must_check __deliver_pfault_done(struct kvm_vcpu *vcpu)
@@ -1028,6 +1144,15 @@
 {
 	int rc;
 
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->iictl = IICTL_CODE_IO;
+		vcpu->arch.sie_block->subchannel_id = io->subchannel_id;
+		vcpu->arch.sie_block->subchannel_nr = io->subchannel_nr;
+		vcpu->arch.sie_block->io_int_parm = io->io_int_parm;
+		vcpu->arch.sie_block->io_int_word = io->io_int_word;
+		return 0;
+	}
+
 	rc  = put_guest_lc(vcpu, io->subchannel_id, (u16 *)__LC_SUBCHANNEL_ID);
 	rc |= put_guest_lc(vcpu, io->subchannel_nr, (u16 *)__LC_SUBCHANNEL_NR);
 	rc |= put_guest_lc(vcpu, io->io_int_parm, (u32 *)__LC_IO_INT_PARM);
@@ -1329,6 +1454,9 @@
 		case IRQ_PEND_EXT_SERVICE:
 			rc = __deliver_service(vcpu);
 			break;
+		case IRQ_PEND_EXT_SERVICE_EV:
+			rc = __deliver_service_ev(vcpu);
+			break;
 		case IRQ_PEND_PFAULT_DONE:
 			rc = __deliver_pfault_done(vcpu);
 			break;
@@ -1421,7 +1549,7 @@
 	if (kvm_get_vcpu_by_id(vcpu->kvm, src_id) == NULL)
 		return -EINVAL;
 
-	if (sclp.has_sigpif)
+	if (sclp.has_sigpif && !kvm_s390_pv_cpu_get_handle(vcpu))
 		return sca_inject_ext_call(vcpu, src_id);
 
 	if (test_and_set_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs))
@@ -1682,9 +1810,6 @@
 	return inti;
 }
 
-#define SCCB_MASK 0xFFFFFFF8
-#define SCCB_EVENT_PENDING 0x3
-
 static int __inject_service(struct kvm *kvm,
 			     struct kvm_s390_interrupt_info *inti)
 {
@@ -1693,6 +1818,11 @@
 	kvm->stat.inject_service_signal++;
 	spin_lock(&fi->lock);
 	fi->srv_signal.ext_params |= inti->ext.ext_params & SCCB_EVENT_PENDING;
+
+	/* We always allow events, track them separately from the sccb ints */
+	if (fi->srv_signal.ext_params & SCCB_EVENT_PENDING)
+		set_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs);
+
 	/*
 	 * Early versions of the QEMU s390 bios will inject several
 	 * service interrupts after another without handling a
@@ -1774,7 +1904,14 @@
 	kvm->stat.inject_io++;
 	isc = int_word_to_isc(inti->io.io_int_word);
 
-	if (gi->origin && inti->type & KVM_S390_INT_IO_AI_MASK) {
+	/*
+	 * Do not make use of gisa in protected mode. We do not use the lock
+	 * checking variant as this is just a performance optimization and we
+	 * do not hold the lock here. This is ok as the code will pick
+	 * interrupts from both "lists" for delivery.
+	 */
+	if (!kvm_s390_pv_get_handle(kvm) &&
+	    gi->origin && inti->type & KVM_S390_INT_IO_AI_MASK) {
 		VM_EVENT(kvm, 4, "%s isc %1u", "inject: I/O (AI/gisa)", isc);
 		gisa_set_ipm_gisc(gi->origin, isc);
 		kfree(inti);
@@ -1835,7 +1972,8 @@
 		break;
 	case KVM_S390_INT_IO_MIN...KVM_S390_INT_IO_MAX:
 		if (!(type & KVM_S390_INT_IO_AI_MASK &&
-		      kvm->arch.gisa_int.origin))
+		      kvm->arch.gisa_int.origin) ||
+		      kvm_s390_pv_cpu_get_handle(dst_vcpu))
 			kvm_s390_set_cpuflags(dst_vcpu, CPUSTAT_IO_INT);
 		break;
 	default:
@@ -1982,6 +2120,13 @@
 	return test_bit(IRQ_PEND_SIGP_STOP, &li->pending_irqs);
 }
 
+int kvm_s390_is_restart_irq_pending(struct kvm_vcpu *vcpu)
+{
+	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
+
+	return test_bit(IRQ_PEND_RESTART, &li->pending_irqs);
+}
+
 void kvm_s390_clear_stop_irq(struct kvm_vcpu *vcpu)
 {
 	struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
@@ -2081,6 +2226,10 @@
 	struct kvm_s390_float_interrupt *fi = &kvm->arch.float_int;
 	int i;
 
+	mutex_lock(&kvm->lock);
+	if (!kvm_s390_pv_is_protected(kvm))
+		fi->masked_irqs = 0;
+	mutex_unlock(&kvm->lock);
 	spin_lock(&fi->lock);
 	fi->pending_irqs = 0;
 	memset(&fi->srv_signal, 0, sizeof(fi->srv_signal));
@@ -2147,7 +2296,8 @@
 			n++;
 		}
 	}
-	if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs)) {
+	if (test_bit(IRQ_PEND_EXT_SERVICE, &fi->pending_irqs) ||
+	    test_bit(IRQ_PEND_EXT_SERVICE_EV, &fi->pending_irqs)) {
 		if (n == max_irqs) {
 			/* signal userspace to try again */
 			ret = -ENOMEM;
@@ -2191,7 +2341,7 @@
 		return -EINVAL;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	mutex_lock(&fi->ais_lock);
 	ais.simm = fi->simm;
@@ -2328,9 +2478,6 @@
 	if (!adapter)
 		return -ENOMEM;
 
-	INIT_LIST_HEAD(&adapter->maps);
-	init_rwsem(&adapter->maps_lock);
-	atomic_set(&adapter->nr_maps, 0);
 	adapter->id = adapter_info.id;
 	adapter->isc = adapter_info.isc;
 	adapter->maskable = adapter_info.maskable;
@@ -2355,87 +2502,12 @@
 	return ret;
 }
 
-static int kvm_s390_adapter_map(struct kvm *kvm, unsigned int id, __u64 addr)
-{
-	struct s390_io_adapter *adapter = get_io_adapter(kvm, id);
-	struct s390_map_info *map;
-	int ret;
-
-	if (!adapter || !addr)
-		return -EINVAL;
-
-	map = kzalloc(sizeof(*map), GFP_KERNEL);
-	if (!map) {
-		ret = -ENOMEM;
-		goto out;
-	}
-	INIT_LIST_HEAD(&map->list);
-	map->guest_addr = addr;
-	map->addr = gmap_translate(kvm->arch.gmap, addr);
-	if (map->addr == -EFAULT) {
-		ret = -EFAULT;
-		goto out;
-	}
-	ret = get_user_pages_fast(map->addr, 1, FOLL_WRITE, &map->page);
-	if (ret < 0)
-		goto out;
-	BUG_ON(ret != 1);
-	down_write(&adapter->maps_lock);
-	if (atomic_inc_return(&adapter->nr_maps) < MAX_S390_ADAPTER_MAPS) {
-		list_add_tail(&map->list, &adapter->maps);
-		ret = 0;
-	} else {
-		put_page(map->page);
-		ret = -EINVAL;
-	}
-	up_write(&adapter->maps_lock);
-out:
-	if (ret)
-		kfree(map);
-	return ret;
-}
-
-static int kvm_s390_adapter_unmap(struct kvm *kvm, unsigned int id, __u64 addr)
-{
-	struct s390_io_adapter *adapter = get_io_adapter(kvm, id);
-	struct s390_map_info *map, *tmp;
-	int found = 0;
-
-	if (!adapter || !addr)
-		return -EINVAL;
-
-	down_write(&adapter->maps_lock);
-	list_for_each_entry_safe(map, tmp, &adapter->maps, list) {
-		if (map->guest_addr == addr) {
-			found = 1;
-			atomic_dec(&adapter->nr_maps);
-			list_del(&map->list);
-			put_page(map->page);
-			kfree(map);
-			break;
-		}
-	}
-	up_write(&adapter->maps_lock);
-
-	return found ? 0 : -EINVAL;
-}
-
 void kvm_s390_destroy_adapters(struct kvm *kvm)
 {
 	int i;
-	struct s390_map_info *map, *tmp;
 
-	for (i = 0; i < MAX_S390_IO_ADAPTERS; i++) {
-		if (!kvm->arch.adapters[i])
-			continue;
-		list_for_each_entry_safe(map, tmp,
-					 &kvm->arch.adapters[i]->maps, list) {
-			list_del(&map->list);
-			put_page(map->page);
-			kfree(map);
-		}
+	for (i = 0; i < MAX_S390_IO_ADAPTERS; i++)
 		kfree(kvm->arch.adapters[i]);
-	}
 }
 
 static int modify_io_adapter(struct kvm_device *dev,
@@ -2457,11 +2529,14 @@
 		if (ret > 0)
 			ret = 0;
 		break;
+	/*
+	 * The following operations are no longer needed and therefore no-ops.
+	 * The gpa to hva translation is done when an IRQ route is set up. The
+	 * set_irq code uses get_user_pages_remote() to do the actual write.
+	 */
 	case KVM_S390_IO_ADAPTER_MAP:
-		ret = kvm_s390_adapter_map(dev->kvm, req.id, req.addr);
-		break;
 	case KVM_S390_IO_ADAPTER_UNMAP:
-		ret = kvm_s390_adapter_unmap(dev->kvm, req.id, req.addr);
+		ret = 0;
 		break;
 	default:
 		ret = -EINVAL;
@@ -2500,7 +2575,7 @@
 	int ret = 0;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	if (copy_from_user(&req, (void __user *)attr->addr, sizeof(req)))
 		return -EFAULT;
@@ -2580,7 +2655,7 @@
 	struct kvm_s390_ais_all ais;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	if (copy_from_user(&ais, (void __user *)attr->addr, sizeof(ais)))
 		return -EFAULT;
@@ -2700,19 +2775,15 @@
 	return swap ? (bit ^ (BITS_PER_LONG - 1)) : bit;
 }
 
-static struct s390_map_info *get_map_info(struct s390_io_adapter *adapter,
-					  u64 addr)
+static struct page *get_map_page(struct kvm *kvm, u64 uaddr)
 {
-	struct s390_map_info *map;
+	struct page *page = NULL;
 
-	if (!adapter)
-		return NULL;
-
-	list_for_each_entry(map, &adapter->maps, list) {
-		if (map->guest_addr == addr)
-			return map;
-	}
-	return NULL;
+	down_read(&kvm->mm->mmap_sem);
+	get_user_pages_remote(NULL, kvm->mm, uaddr, 1, FOLL_WRITE,
+			      &page, NULL, NULL);
+	up_read(&kvm->mm->mmap_sem);
+	return page;
 }
 
 static int adapter_indicators_set(struct kvm *kvm,
@@ -2721,30 +2792,35 @@
 {
 	unsigned long bit;
 	int summary_set, idx;
-	struct s390_map_info *info;
+	struct page *ind_page, *summary_page;
 	void *map;
 
-	info = get_map_info(adapter, adapter_int->ind_addr);
-	if (!info)
+	ind_page = get_map_page(kvm, adapter_int->ind_addr);
+	if (!ind_page)
 		return -1;
-	map = page_address(info->page);
-	bit = get_ind_bit(info->addr, adapter_int->ind_offset, adapter->swap);
-	set_bit(bit, map);
-	idx = srcu_read_lock(&kvm->srcu);
-	mark_page_dirty(kvm, info->guest_addr >> PAGE_SHIFT);
-	set_page_dirty_lock(info->page);
-	info = get_map_info(adapter, adapter_int->summary_addr);
-	if (!info) {
-		srcu_read_unlock(&kvm->srcu, idx);
+	summary_page = get_map_page(kvm, adapter_int->summary_addr);
+	if (!summary_page) {
+		put_page(ind_page);
 		return -1;
 	}
-	map = page_address(info->page);
-	bit = get_ind_bit(info->addr, adapter_int->summary_offset,
-			  adapter->swap);
+
+	idx = srcu_read_lock(&kvm->srcu);
+	map = page_address(ind_page);
+	bit = get_ind_bit(adapter_int->ind_addr,
+			  adapter_int->ind_offset, adapter->swap);
+	set_bit(bit, map);
+	mark_page_dirty(kvm, adapter_int->ind_addr >> PAGE_SHIFT);
+	set_page_dirty_lock(ind_page);
+	map = page_address(summary_page);
+	bit = get_ind_bit(adapter_int->summary_addr,
+			  adapter_int->summary_offset, adapter->swap);
 	summary_set = test_and_set_bit(bit, map);
-	mark_page_dirty(kvm, info->guest_addr >> PAGE_SHIFT);
-	set_page_dirty_lock(info->page);
+	mark_page_dirty(kvm, adapter_int->summary_addr >> PAGE_SHIFT);
+	set_page_dirty_lock(summary_page);
 	srcu_read_unlock(&kvm->srcu, idx);
+
+	put_page(ind_page);
+	put_page(summary_page);
 	return summary_set ? 0 : 1;
 }
 
@@ -2766,9 +2842,7 @@
 	adapter = get_io_adapter(kvm, e->adapter.adapter_id);
 	if (!adapter)
 		return -1;
-	down_read(&adapter->maps_lock);
 	ret = adapter_indicators_set(kvm, adapter, &e->adapter);
-	up_read(&adapter->maps_lock);
 	if ((ret > 0) && !adapter->masked) {
 		ret = kvm_s390_inject_airq(kvm, adapter);
 		if (ret == 0)
@@ -2819,23 +2893,27 @@
 			  struct kvm_kernel_irq_routing_entry *e,
 			  const struct kvm_irq_routing_entry *ue)
 {
-	int ret;
+	u64 uaddr;
 
 	switch (ue->type) {
+	/* we store the userspace addresses instead of the guest addresses */
 	case KVM_IRQ_ROUTING_S390_ADAPTER:
 		e->set = set_adapter_int;
-		e->adapter.summary_addr = ue->u.adapter.summary_addr;
-		e->adapter.ind_addr = ue->u.adapter.ind_addr;
+		uaddr =  gmap_translate(kvm->arch.gmap, ue->u.adapter.summary_addr);
+		if (uaddr == -EFAULT)
+			return -EFAULT;
+		e->adapter.summary_addr = uaddr;
+		uaddr =  gmap_translate(kvm->arch.gmap, ue->u.adapter.ind_addr);
+		if (uaddr == -EFAULT)
+			return -EFAULT;
+		e->adapter.ind_addr = uaddr;
 		e->adapter.summary_offset = ue->u.adapter.summary_offset;
 		e->adapter.ind_offset = ue->u.adapter.ind_offset;
 		e->adapter.adapter_id = ue->u.adapter.adapter_id;
-		ret = 0;
-		break;
+		return 0;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
-
-	return ret;
 }
 
 int kvm_set_msi(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm,
@@ -2984,18 +3062,19 @@
 
 static void __airqs_kick_single_vcpu(struct kvm *kvm, u8 deliverable_mask)
 {
-	int vcpu_id, online_vcpus = atomic_read(&kvm->online_vcpus);
+	int vcpu_idx, online_vcpus = atomic_read(&kvm->online_vcpus);
 	struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
 	struct kvm_vcpu *vcpu;
+	u8 vcpu_isc_mask;
 
-	for_each_set_bit(vcpu_id, kvm->arch.idle_mask, online_vcpus) {
-		vcpu = kvm_get_vcpu(kvm, vcpu_id);
+	for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) {
+		vcpu = kvm_get_vcpu(kvm, vcpu_idx);
 		if (psw_ioint_disabled(vcpu))
 			continue;
-		deliverable_mask &= (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
-		if (deliverable_mask) {
+		vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
+		if (deliverable_mask & vcpu_isc_mask) {
 			/* lately kicked but not yet running */
-			if (test_and_set_bit(vcpu_id, gi->kicked_mask))
+			if (test_and_set_bit(vcpu_idx, gi->kicked_mask))
 				return;
 			kvm_s390_vcpu_wakeup(vcpu);
 			return;
--- linux-ein-5.4.0.orig/arch/s390/kvm/kvm-s390.c
+++ linux-ein-5.4.0/arch/s390/kvm/kvm-s390.c
@@ -2,7 +2,7 @@
 /*
  * hosting IBM Z kernel virtual machines (s390x)
  *
- * Copyright IBM Corp. 2008, 2018
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -44,6 +44,7 @@
 #include <asm/cpacf.h>
 #include <asm/timex.h>
 #include <asm/ap.h>
+#include <asm/uv.h>
 #include "kvm-s390.h"
 #include "gaccess.h"
 
@@ -219,6 +220,7 @@
 static struct gmap_notifier gmap_notifier;
 static struct gmap_notifier vsie_gmap_notifier;
 debug_info_t *kvm_s390_dbf;
+debug_info_t *kvm_s390_dbf_uv;
 
 /* Section: not file related */
 int kvm_arch_hardware_enable(void)
@@ -232,8 +234,10 @@
 	return 0;
 }
 
+/* forward declarations */
 static void kvm_gmap_notifier(struct gmap *gmap, unsigned long start,
 			      unsigned long end);
+static int sca_switch_to_extended(struct kvm *kvm);
 
 static void kvm_clock_sync_scb(struct kvm_s390_sie_block *scb, u64 delta)
 {
@@ -318,31 +322,31 @@
 
 static inline int plo_test_bit(unsigned char nr)
 {
-	register unsigned long r0 asm("0") = (unsigned long) nr | 0x100;
+	unsigned long function = (unsigned long)nr | 0x100;
 	int cc;
 
 	asm volatile(
+		"	lgr	0,%[function]\n"
 		/* Parameter registers are ignored for "test bit" */
 		"	plo	0,0,0,0(0)\n"
 		"	ipm	%0\n"
 		"	srl	%0,28\n"
 		: "=d" (cc)
-		: "d" (r0)
-		: "cc");
+		: [function] "d" (function)
+		: "cc", "0");
 	return cc == 0;
 }
 
 static __always_inline void __insn32_query(unsigned int opcode, u8 *query)
 {
-	register unsigned long r0 asm("0") = 0;	/* query function */
-	register unsigned long r1 asm("1") = (unsigned long) query;
-
 	asm volatile(
-		/* Parameter regs are ignored */
+		"	lghi	0,0\n"
+		"	lgr	1,%[query]\n"
+		/* Parameter registers are ignored */
 		"	.insn	rrf,%[opc] << 16,2,4,6,0\n"
 		:
-		: "d" (r0), "a" (r1), [opc] "i" (opcode)
-		: "cc", "memory");
+		: [query] "d" ((unsigned long)query), [opc] "i" (opcode)
+		: "cc", "memory", "0", "1");
 }
 
 #define INSN_SORTL 0xb938
@@ -453,16 +457,19 @@
 
 int kvm_arch_init(void *opaque)
 {
-	int rc;
+	int rc = -ENOMEM;
 
 	kvm_s390_dbf = debug_register("kvm-trace", 32, 1, 7 * sizeof(long));
 	if (!kvm_s390_dbf)
 		return -ENOMEM;
 
-	if (debug_register_view(kvm_s390_dbf, &debug_sprintf_view)) {
-		rc = -ENOMEM;
-		goto out_debug_unreg;
-	}
+	kvm_s390_dbf_uv = debug_register("kvm-uv", 32, 1, 7 * sizeof(long));
+	if (!kvm_s390_dbf_uv)
+		goto out;
+
+	if (debug_register_view(kvm_s390_dbf, &debug_sprintf_view) ||
+	    debug_register_view(kvm_s390_dbf_uv, &debug_sprintf_view))
+		goto out;
 
 	kvm_s390_cpu_feat_init();
 
@@ -470,19 +477,17 @@
 	rc = kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC);
 	if (rc) {
 		pr_err("A FLIC registration call failed with rc=%d\n", rc);
-		goto out_debug_unreg;
+		goto out;
 	}
 
 	rc = kvm_s390_gib_init(GAL_ISC);
 	if (rc)
-		goto out_gib_destroy;
+		goto out;
 
 	return 0;
 
-out_gib_destroy:
-	kvm_s390_gib_destroy();
-out_debug_unreg:
-	debug_unregister(kvm_s390_dbf);
+out:
+	kvm_arch_exit();
 	return rc;
 }
 
@@ -490,6 +495,7 @@
 {
 	kvm_s390_gib_destroy();
 	debug_unregister(kvm_s390_dbf);
+	debug_unregister(kvm_s390_dbf_uv);
 }
 
 /* Section: device related */
@@ -532,6 +538,9 @@
 	case KVM_CAP_S390_CMMA_MIGRATION:
 	case KVM_CAP_S390_AIS:
 	case KVM_CAP_S390_AIS_MIGRATION:
+	case KVM_CAP_S390_VCPU_RESETS:
+	case KVM_CAP_S390_DIAG318:
+	case KVM_CAP_S390_MEM_OP_EXTENSION:
 		r = 1;
 		break;
 	case KVM_CAP_S390_HPAGE_1M:
@@ -566,6 +575,9 @@
 	case KVM_CAP_S390_BPB:
 		r = test_facility(82);
 		break;
+	case KVM_CAP_S390_PROTECTED:
+		r = is_prot_virt_host();
+		break;
 	default:
 		r = 0;
 	}
@@ -1084,6 +1096,8 @@
 	return 0;
 }
 
+static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
+
 static int kvm_s390_set_tod_ext(struct kvm *kvm, struct kvm_device_attr *attr)
 {
 	struct kvm_s390_vm_tod_clock gtod;
@@ -1093,7 +1107,7 @@
 
 	if (!test_kvm_facility(kvm, 139) && gtod.epoch_idx)
 		return -EINVAL;
-	kvm_s390_set_tod_clock(kvm, &gtod);
+	__kvm_s390_set_tod_clock(kvm, &gtod);
 
 	VM_EVENT(kvm, 3, "SET: TOD extension: 0x%x, TOD base: 0x%llx",
 		gtod.epoch_idx, gtod.tod);
@@ -1124,7 +1138,7 @@
 			   sizeof(gtod.tod)))
 		return -EFAULT;
 
-	kvm_s390_set_tod_clock(kvm, &gtod);
+	__kvm_s390_set_tod_clock(kvm, &gtod);
 	VM_EVENT(kvm, 3, "SET: TOD base: 0x%llx", gtod.tod);
 	return 0;
 }
@@ -1136,6 +1150,16 @@
 	if (attr->flags)
 		return -EINVAL;
 
+	mutex_lock(&kvm->lock);
+	/*
+	 * For protected guests, the TOD is managed by the ultravisor, so trying
+	 * to change it will never bring the expected results.
+	 */
+	if (kvm_s390_pv_is_protected(kvm)) {
+		ret = -EOPNOTSUPP;
+		goto out_unlock;
+	}
+
 	switch (attr->attr) {
 	case KVM_S390_VM_TOD_EXT:
 		ret = kvm_s390_set_tod_ext(kvm, attr);
@@ -1150,6 +1174,9 @@
 		ret = -ENXIO;
 		break;
 	}
+
+out_unlock:
+	mutex_unlock(&kvm->lock);
 	return ret;
 }
 
@@ -1932,6 +1959,9 @@
 			start = slot + 1;
 	}
 
+	if (start >= slots->used_slots)
+		return slots->used_slots - 1;
+
 	if (gfn >= memslots[start].base_gfn &&
 	    gfn < memslots[start].base_gfn + memslots[start].npages) {
 		atomic_set(&slots->lru_slot, start);
@@ -1979,6 +2009,10 @@
 		ms = slots->memslots + slotidx;
 		ofs = 0;
 	}
+
+	if (cur_gfn < ms->base_gfn)
+		ofs = 0;
+
 	ofs = find_next_bit(kvm_second_dirty_bitmap(ms), ms->npages, ofs);
 	while ((slotidx > 0) && (ofs >= ms->npages)) {
 		slotidx--;
@@ -2160,6 +2194,271 @@
 	return r;
 }
 
+static int kvm_s390_cpus_from_pv(struct kvm *kvm, u16 *rcp, u16 *rrcp)
+{
+	struct kvm_vcpu *vcpu;
+	u16 rc, rrc;
+	int ret = 0;
+	int i;
+
+	/*
+	 * We ignore failures and try to destroy as many CPUs as possible.
+	 * At the same time we must not free the assigned resources when
+	 * this fails, as the ultravisor has still access to that memory.
+	 * So kvm_s390_pv_destroy_cpu can leave a "wanted" memory leak
+	 * behind.
+	 * We want to return the first failure rc and rrc, though.
+	 */
+	kvm_for_each_vcpu(i, vcpu, kvm) {
+		mutex_lock(&vcpu->mutex);
+		if (kvm_s390_pv_destroy_cpu(vcpu, &rc, &rrc) && !ret) {
+			*rcp = rc;
+			*rrcp = rrc;
+			ret = -EIO;
+		}
+		mutex_unlock(&vcpu->mutex);
+	}
+	return ret;
+}
+
+static int kvm_s390_cpus_to_pv(struct kvm *kvm, u16 *rc, u16 *rrc)
+{
+	int i, r = 0;
+	u16 dummy;
+
+	struct kvm_vcpu *vcpu;
+
+	kvm_for_each_vcpu(i, vcpu, kvm) {
+		mutex_lock(&vcpu->mutex);
+		r = kvm_s390_pv_create_cpu(vcpu, rc, rrc);
+		mutex_unlock(&vcpu->mutex);
+		if (r)
+			break;
+	}
+	if (r)
+		kvm_s390_cpus_from_pv(kvm, &dummy, &dummy);
+	return r;
+}
+
+static int kvm_s390_handle_pv(struct kvm *kvm, struct kvm_pv_cmd *cmd)
+{
+	int r = 0;
+	u16 dummy;
+	void __user *argp = (void __user *)cmd->data;
+
+	switch (cmd->cmd) {
+	case KVM_PV_ENABLE: {
+		r = -EINVAL;
+		if (kvm_s390_pv_is_protected(kvm))
+			break;
+
+		/*
+		 *  FMT 4 SIE needs esca. As we never switch back to bsca from
+		 *  esca, we need no cleanup in the error cases below
+		 */
+		r = sca_switch_to_extended(kvm);
+		if (r)
+			break;
+
+		down_write(&current->mm->mmap_sem);
+		r = gmap_mark_unmergeable();
+		up_write(&current->mm->mmap_sem);
+		if (r)
+			break;
+
+		r = kvm_s390_pv_init_vm(kvm, &cmd->rc, &cmd->rrc);
+		if (r)
+			break;
+
+		r = kvm_s390_cpus_to_pv(kvm, &cmd->rc, &cmd->rrc);
+		if (r)
+			kvm_s390_pv_deinit_vm(kvm, &dummy, &dummy);
+
+		/* we need to block service interrupts from now on */
+		set_bit(IRQ_PEND_EXT_SERVICE, &kvm->arch.float_int.masked_irqs);
+		break;
+	}
+	case KVM_PV_DISABLE: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = kvm_s390_cpus_from_pv(kvm, &cmd->rc, &cmd->rrc);
+		/*
+		 * If a CPU could not be destroyed, destroy VM will also fail.
+		 * There is no point in trying to destroy it. Instead return
+		 * the rc and rrc from the first CPU that failed destroying.
+		 */
+		if (r)
+			break;
+		r = kvm_s390_pv_deinit_vm(kvm, &cmd->rc, &cmd->rrc);
+
+		/* no need to block service interrupts any more */
+		clear_bit(IRQ_PEND_EXT_SERVICE, &kvm->arch.float_int.masked_irqs);
+		break;
+	}
+	case KVM_PV_SET_SEC_PARMS: {
+		struct kvm_s390_pv_sec_parm parms = {};
+		void *hdr;
+
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = -EFAULT;
+		if (copy_from_user(&parms, argp, sizeof(parms)))
+			break;
+
+		/* Currently restricted to 8KB */
+		r = -EINVAL;
+		if (parms.length > PAGE_SIZE * 2)
+			break;
+
+		r = -ENOMEM;
+		hdr = vmalloc(parms.length);
+		if (!hdr)
+			break;
+
+		r = -EFAULT;
+		if (!copy_from_user(hdr, (void __user *)parms.origin,
+				    parms.length))
+			r = kvm_s390_pv_set_sec_parms(kvm, hdr, parms.length,
+						      &cmd->rc, &cmd->rrc);
+
+		vfree(hdr);
+		break;
+	}
+	case KVM_PV_UNPACK: {
+		struct kvm_s390_pv_unp unp = {};
+
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = -EFAULT;
+		if (copy_from_user(&unp, argp, sizeof(unp)))
+			break;
+
+		r = kvm_s390_pv_unpack(kvm, unp.addr, unp.size, unp.tweak,
+				       &cmd->rc, &cmd->rrc);
+		break;
+	}
+	case KVM_PV_VERIFY: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+				  UVC_CMD_VERIFY_IMG, &cmd->rc, &cmd->rrc);
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT VERIFY: rc %x rrc %x", cmd->rc,
+			     cmd->rrc);
+		break;
+	}
+	case KVM_PV_PREP_RESET: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+				  UVC_CMD_PREPARE_RESET, &cmd->rc, &cmd->rrc);
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT PREP RESET: rc %x rrc %x",
+			     cmd->rc, cmd->rrc);
+		break;
+	}
+	case KVM_PV_UNSHARE_ALL: {
+		r = -EINVAL;
+		if (!kvm_s390_pv_is_protected(kvm))
+			break;
+
+		r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+				  UVC_CMD_SET_UNSHARE_ALL, &cmd->rc, &cmd->rrc);
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT UNSHARE: rc %x rrc %x",
+			     cmd->rc, cmd->rrc);
+		break;
+	}
+	default:
+		r = -ENOTTY;
+	}
+	return r;
+}
+
+static bool access_key_invalid(u8 access_key)
+{
+	return access_key > 0xf;
+}
+
+static int kvm_s390_vm_mem_op(struct kvm *kvm, struct kvm_s390_mem_op *mop)
+{
+	void __user *uaddr = (void __user *)mop->buf;
+	u64 supported_flags;
+	void *tmpbuf = NULL;
+	int r, srcu_idx;
+
+	supported_flags = KVM_S390_MEMOP_F_SKEY_PROTECTION
+			  | KVM_S390_MEMOP_F_CHECK_ONLY;
+	if (mop->flags & ~supported_flags || !mop->size)
+		return -EINVAL;
+	if (mop->size > MEM_OP_MAX_SIZE)
+		return -E2BIG;
+	if (kvm_s390_pv_is_protected(kvm))
+		return -EINVAL;
+	if (mop->flags & KVM_S390_MEMOP_F_SKEY_PROTECTION) {
+		if (access_key_invalid(mop->key))
+			return -EINVAL;
+	} else {
+		mop->key = 0;
+	}
+	if (!(mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY)) {
+		tmpbuf = vmalloc(mop->size);
+		if (!tmpbuf)
+			return -ENOMEM;
+	}
+
+	srcu_idx = srcu_read_lock(&kvm->srcu);
+
+	if (kvm_is_error_gpa(kvm, mop->gaddr)) {
+		r = PGM_ADDRESSING;
+		goto out_unlock;
+	}
+
+	switch (mop->op) {
+	case KVM_S390_MEMOP_ABSOLUTE_READ: {
+		if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) {
+			r = check_gpa_range(kvm, mop->gaddr, mop->size, GACC_FETCH, mop->key);
+		} else {
+			r = access_guest_abs_with_key(kvm, mop->gaddr, tmpbuf,
+						      mop->size, GACC_FETCH, mop->key);
+			if (r == 0) {
+				if (copy_to_user(uaddr, tmpbuf, mop->size))
+					r = -EFAULT;
+			}
+		}
+		break;
+	}
+	case KVM_S390_MEMOP_ABSOLUTE_WRITE: {
+		if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) {
+			r = check_gpa_range(kvm, mop->gaddr, mop->size, GACC_STORE, mop->key);
+		} else {
+			if (copy_from_user(tmpbuf, uaddr, mop->size)) {
+				r = -EFAULT;
+				break;
+			}
+			r = access_guest_abs_with_key(kvm, mop->gaddr, tmpbuf,
+						      mop->size, GACC_STORE, mop->key);
+		}
+		break;
+	}
+	default:
+		r = -EINVAL;
+	}
+
+out_unlock:
+	srcu_read_unlock(&kvm->srcu, srcu_idx);
+
+	vfree(tmpbuf);
+	return r;
+}
+
 long kvm_arch_vm_ioctl(struct file *filp,
 		       unsigned int ioctl, unsigned long arg)
 {
@@ -2257,6 +2556,42 @@
 		mutex_unlock(&kvm->slots_lock);
 		break;
 	}
+	case KVM_S390_PV_COMMAND: {
+		struct kvm_pv_cmd args;
+
+		/* protvirt means user cpu state */
+		kvm_s390_set_user_cpu_state_ctrl(kvm);
+		r = 0;
+		if (!is_prot_virt_host()) {
+			r = -EINVAL;
+			break;
+		}
+		if (copy_from_user(&args, argp, sizeof(args))) {
+			r = -EFAULT;
+			break;
+		}
+		if (args.flags) {
+			r = -EINVAL;
+			break;
+		}
+		mutex_lock(&kvm->lock);
+		r = kvm_s390_handle_pv(kvm, &args);
+		mutex_unlock(&kvm->lock);
+		if (copy_to_user(argp, &args, sizeof(args))) {
+			r = -EFAULT;
+			break;
+		}
+		break;
+	}
+	case KVM_S390_MEM_OP: {
+		struct kvm_s390_mem_op mem_op;
+
+		if (copy_from_user(&mem_op, argp, sizeof(mem_op)) == 0)
+			r = kvm_s390_vm_mem_op(kvm, &mem_op);
+		else
+			r = -EFAULT;
+		break;
+	}
 	default:
 		r = -ENOTTY;
 	}
@@ -2520,6 +2855,8 @@
 
 void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
 {
+	u16 rc, rrc;
+
 	VCPU_EVENT(vcpu, 3, "%s", "free cpu");
 	trace_kvm_s390_destroy_vcpu(vcpu->vcpu_id);
 	kvm_s390_clear_local_irqs(vcpu);
@@ -2532,6 +2869,9 @@
 
 	if (vcpu->kvm->arch.use_cmma)
 		kvm_s390_vcpu_unsetup_cmma(vcpu);
+	/* We can not hold the vcpu mutex here, we are already dying */
+	if (kvm_s390_pv_cpu_get_handle(vcpu))
+		kvm_s390_pv_destroy_cpu(vcpu, &rc, &rrc);
 	free_page((unsigned long)(vcpu->arch.sie_block));
 
 	kvm_vcpu_uninit(vcpu);
@@ -2556,10 +2896,20 @@
 
 void kvm_arch_destroy_vm(struct kvm *kvm)
 {
+	u16 rc, rrc;
+
 	kvm_free_vcpus(kvm);
 	sca_dispose(kvm);
-	debug_unregister(kvm->arch.dbf);
 	kvm_s390_gisa_destroy(kvm);
+	/*
+	 * We are already at the end of life and kvm->lock is not taken.
+	 * This is ok as the file descriptor is closed by now and nobody
+	 * can mess with the pv state. To avoid lockdep_assert_held from
+	 * complaining we do not use kvm_s390_pv_is_protected.
+	 */
+	if (kvm_s390_pv_get_handle(kvm))
+		kvm_s390_pv_deinit_vm(kvm, &rc, &rrc);
+	debug_unregister(kvm->arch.dbf);
 	free_page((unsigned long)kvm->arch.sie_page2);
 	if (!kvm_is_ucontrol(kvm))
 		gmap_remove(kvm->arch.gmap);
@@ -2655,6 +3005,9 @@
 	unsigned int vcpu_idx;
 	u32 scaol, scaoh;
 
+	if (kvm->arch.use_esca)
+		return 0;
+
 	new_sca = alloc_pages_exact(sizeof(*new_sca), GFP_KERNEL|__GFP_ZERO);
 	if (!new_sca)
 		return -ENOMEM;
@@ -2715,7 +3068,8 @@
 				    KVM_SYNC_ACRS |
 				    KVM_SYNC_CRS |
 				    KVM_SYNC_ARCH0 |
-				    KVM_SYNC_PFAULT;
+				    KVM_SYNC_PFAULT |
+				    KVM_SYNC_DIAG318;
 	kvm_s390_set_prefix(vcpu, 0);
 	if (test_kvm_facility(vcpu->kvm, 64))
 		vcpu->run->kvm_valid_regs |= KVM_SYNC_RICCB;
@@ -2847,35 +3201,6 @@
 
 }
 
-static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu)
-{
-	/* this equals initial cpu reset in pop, but we don't switch to ESA */
-	vcpu->arch.sie_block->gpsw.mask = 0UL;
-	vcpu->arch.sie_block->gpsw.addr = 0UL;
-	kvm_s390_set_prefix(vcpu, 0);
-	kvm_s390_set_cpu_timer(vcpu, 0);
-	vcpu->arch.sie_block->ckc       = 0UL;
-	vcpu->arch.sie_block->todpr     = 0;
-	memset(vcpu->arch.sie_block->gcr, 0, 16 * sizeof(__u64));
-	vcpu->arch.sie_block->gcr[0]  = CR0_UNUSED_56 |
-					CR0_INTERRUPT_KEY_SUBMASK |
-					CR0_MEASUREMENT_ALERT_SUBMASK;
-	vcpu->arch.sie_block->gcr[14] = CR14_UNUSED_32 |
-					CR14_UNUSED_33 |
-					CR14_EXTERNAL_DAMAGE_SUBMASK;
-	/* make sure the new fpc will be lazily loaded */
-	save_fpu_regs();
-	current->thread.fpu.fpc = 0;
-	vcpu->arch.sie_block->gbea = 1;
-	vcpu->arch.sie_block->pp = 0;
-	vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
-	vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID;
-	kvm_clear_async_pf_completion_queue(vcpu);
-	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
-		kvm_s390_vcpu_stop(vcpu);
-	kvm_s390_clear_local_irqs(vcpu);
-}
-
 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
 {
 	mutex_lock(&vcpu->kvm->lock);
@@ -2968,6 +3293,7 @@
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 {
 	int rc = 0;
+	u16 uvrc, uvrrc;
 
 	atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH |
 						    CPUSTAT_SM |
@@ -3035,6 +3361,14 @@
 
 	kvm_s390_vcpu_crypto_setup(vcpu);
 
+	mutex_lock(&vcpu->kvm->lock);
+	if (kvm_s390_pv_is_protected(vcpu->kvm)) {
+		rc = kvm_s390_pv_create_cpu(vcpu, &uvrc, &uvrrc);
+		if (rc)
+			kvm_s390_vcpu_unsetup_cmma(vcpu);
+	}
+	mutex_unlock(&vcpu->kvm->lock);
+
 	return rc;
 }
 
@@ -3091,6 +3425,7 @@
 
 int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
 {
+	clear_bit(vcpu->vcpu_idx, vcpu->kvm->arch.gisa_int.kicked_mask);
 	return kvm_s390_vcpu_has_irq(vcpu, 0);
 }
 
@@ -3290,10 +3625,60 @@
 	return r;
 }
 
-static int kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
+static void kvm_arch_vcpu_ioctl_normal_reset(struct kvm_vcpu *vcpu)
 {
-	kvm_s390_vcpu_initial_reset(vcpu);
-	return 0;
+	vcpu->arch.sie_block->gpsw.mask &= ~PSW_MASK_RI;
+	vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID;
+	memset(vcpu->run->s.regs.riccb, 0, sizeof(vcpu->run->s.regs.riccb));
+
+	kvm_clear_async_pf_completion_queue(vcpu);
+	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
+		kvm_s390_vcpu_stop(vcpu);
+	kvm_s390_clear_local_irqs(vcpu);
+}
+
+static void kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
+{
+	/* Initial reset is a superset of the normal reset */
+	kvm_arch_vcpu_ioctl_normal_reset(vcpu);
+
+	/* this equals initial cpu reset in pop, but we don't switch to ESA */
+	vcpu->arch.sie_block->gpsw.mask = 0;
+	vcpu->arch.sie_block->gpsw.addr = 0;
+	kvm_s390_set_prefix(vcpu, 0);
+	kvm_s390_set_cpu_timer(vcpu, 0);
+	vcpu->arch.sie_block->ckc = 0;
+	memset(vcpu->arch.sie_block->gcr, 0, sizeof(vcpu->arch.sie_block->gcr));
+	vcpu->arch.sie_block->gcr[0] = CR0_INITIAL_MASK;
+	vcpu->arch.sie_block->gcr[14] = CR14_INITIAL_MASK;
+	vcpu->run->s.regs.fpc = 0;
+	/*
+	 * Do not reset these registers in the protected case, as some of
+	 * them are overlayed and they are not accessible in this case
+	 * anyway.
+	 */
+	if (!kvm_s390_pv_cpu_is_protected(vcpu)) {
+		vcpu->arch.sie_block->gbea = 1;
+		vcpu->arch.sie_block->pp = 0;
+		vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
+		vcpu->arch.sie_block->todpr = 0;
+	}
+}
+
+static void kvm_arch_vcpu_ioctl_clear_reset(struct kvm_vcpu *vcpu)
+{
+	struct kvm_sync_regs *regs = &vcpu->run->s.regs;
+
+	/* Clear reset is a superset of the initial reset */
+	kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+
+	memset(&regs->gprs, 0, sizeof(regs->gprs));
+	memset(&regs->vrs, 0, sizeof(regs->vrs));
+	memset(&regs->acrs, 0, sizeof(regs->acrs));
+	memset(&regs->gscb, 0, sizeof(regs->gscb));
+
+	regs->etoken = 0;
+	regs->etoken_extension = 0;
 }
 
 int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs)
@@ -3463,16 +3848,22 @@
 	vcpu_load(vcpu);
 
 	/* user space knows about this interface - let it control the state */
-	vcpu->kvm->arch.user_cpu_state_ctrl = 1;
+	kvm_s390_set_user_cpu_state_ctrl(vcpu->kvm);
 
 	switch (mp_state->mp_state) {
 	case KVM_MP_STATE_STOPPED:
-		kvm_s390_vcpu_stop(vcpu);
+		rc = kvm_s390_vcpu_stop(vcpu);
 		break;
 	case KVM_MP_STATE_OPERATING:
-		kvm_s390_vcpu_start(vcpu);
+		rc = kvm_s390_vcpu_start(vcpu);
 		break;
 	case KVM_MP_STATE_LOAD:
+		if (!kvm_s390_pv_cpu_is_protected(vcpu)) {
+			rc = -ENXIO;
+			break;
+		}
+		rc = kvm_s390_pv_set_cpu_state(vcpu, PV_CPU_STATE_OPR_LOAD);
+		break;
 	case KVM_MP_STATE_CHECK_STOP:
 		/* fall through - CHECK_STOP and LOAD are not supported yet */
 	default:
@@ -3568,14 +3959,12 @@
 	return 0;
 }
 
-void kvm_s390_set_tod_clock(struct kvm *kvm,
-			    const struct kvm_s390_vm_tod_clock *gtod)
+static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
 {
 	struct kvm_vcpu *vcpu;
 	struct kvm_s390_tod_clock_ext htod;
 	int i;
 
-	mutex_lock(&kvm->lock);
 	preempt_disable();
 
 	get_tod_clock_ext((char *)&htod);
@@ -3596,7 +3985,15 @@
 
 	kvm_s390_vcpu_unblock_all(kvm);
 	preempt_enable();
+}
+
+int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
+{
+	if (!mutex_trylock(&kvm->lock))
+		return 0;
+	__kvm_s390_set_tod_clock(kvm, gtod);
 	mutex_unlock(&kvm->lock);
+	return 1;
 }
 
 /**
@@ -3725,7 +4122,7 @@
 		kvm_s390_patch_guest_per_regs(vcpu);
 	}
 
-	clear_bit(vcpu->vcpu_id, vcpu->kvm->arch.gisa_int.kicked_mask);
+	clear_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.gisa_int.kicked_mask);
 
 	vcpu->arch.sie_block->icptcode = 0;
 	cpuflags = atomic_read(&vcpu->arch.sie_block->cpuflags);
@@ -3824,9 +4221,11 @@
 	return vcpu_post_run_fault_in_sie(vcpu);
 }
 
+#define PSW_INT_MASK (PSW_MASK_EXT | PSW_MASK_IO | PSW_MASK_MCHECK)
 static int __vcpu_run(struct kvm_vcpu *vcpu)
 {
 	int rc, exit_reason;
+	struct sie_page *sie_page = (struct sie_page *)vcpu->arch.sie_block;
 
 	/*
 	 * We try to hold kvm->srcu during most of vcpu_run (except when run-
@@ -3848,8 +4247,28 @@
 		guest_enter_irqoff();
 		__disable_cpu_timer_accounting(vcpu);
 		local_irq_enable();
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			memcpy(sie_page->pv_grregs,
+			       vcpu->run->s.regs.gprs,
+			       sizeof(sie_page->pv_grregs));
+		}
 		exit_reason = sie64a(vcpu->arch.sie_block,
 				     vcpu->run->s.regs.gprs);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			memcpy(vcpu->run->s.regs.gprs,
+			       sie_page->pv_grregs,
+			       sizeof(sie_page->pv_grregs));
+			/*
+			 * We're not allowed to inject interrupts on intercepts
+			 * that leave the guest state in an "in-between" state
+			 * where the next SIE entry will do a continuation.
+			 * Fence interrupts in our "internal" PSW.
+			 */
+			if (vcpu->arch.sie_block->icptcode == ICPT_PV_INSTR ||
+			    vcpu->arch.sie_block->icptcode == ICPT_PV_PREF) {
+				vcpu->arch.sie_block->gpsw.mask &= ~PSW_INT_MASK;
+			}
+		}
 		local_irq_disable();
 		__enable_cpu_timer_accounting(vcpu);
 		guest_exit_irqoff();
@@ -3863,7 +4282,7 @@
 	return rc;
 }
 
-static void sync_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+static void sync_regs_fmt2(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
 {
 	struct runtime_instr_cb *riccb;
 	struct gs_cb *gscb;
@@ -3872,16 +4291,7 @@
 	gscb = (struct gs_cb *) &kvm_run->s.regs.gscb;
 	vcpu->arch.sie_block->gpsw.mask = kvm_run->psw_mask;
 	vcpu->arch.sie_block->gpsw.addr = kvm_run->psw_addr;
-	if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX)
-		kvm_s390_set_prefix(vcpu, kvm_run->s.regs.prefix);
-	if (kvm_run->kvm_dirty_regs & KVM_SYNC_CRS) {
-		memcpy(&vcpu->arch.sie_block->gcr, &kvm_run->s.regs.crs, 128);
-		/* some control register changes require a tlb flush */
-		kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
-	}
 	if (kvm_run->kvm_dirty_regs & KVM_SYNC_ARCH0) {
-		kvm_s390_set_cpu_timer(vcpu, kvm_run->s.regs.cputm);
-		vcpu->arch.sie_block->ckc = kvm_run->s.regs.ckc;
 		vcpu->arch.sie_block->todpr = kvm_run->s.regs.todpr;
 		vcpu->arch.sie_block->pp = kvm_run->s.regs.pp;
 		vcpu->arch.sie_block->gbea = kvm_run->s.regs.gbea;
@@ -3893,6 +4303,11 @@
 		if (vcpu->arch.pfault_token == KVM_S390_PFAULT_TOKEN_INVALID)
 			kvm_clear_async_pf_completion_queue(vcpu);
 	}
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_DIAG318) {
+		vcpu->arch.diag318_info.val = kvm_run->s.regs.diag318;
+		vcpu->arch.sie_block->cpnc = vcpu->arch.diag318_info.cpnc;
+		VCPU_EVENT(vcpu, 3, "setting cpnc to %d", vcpu->arch.diag318_info.cpnc);
+	}
 	/*
 	 * If userspace sets the riccb (e.g. after migration) to a valid state,
 	 * we should enable RI here instead of doing the lazy enablement.
@@ -3922,6 +4337,36 @@
 		vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
 		vcpu->arch.sie_block->fpf |= kvm_run->s.regs.bpbc ? FPF_BPBC : 0;
 	}
+	if (MACHINE_HAS_GS) {
+		preempt_disable();
+		__ctl_set_bit(2, 4);
+		if (current->thread.gs_cb) {
+			vcpu->arch.host_gscb = current->thread.gs_cb;
+			save_gs_cb(vcpu->arch.host_gscb);
+		}
+		if (vcpu->arch.gs_enabled) {
+			current->thread.gs_cb = (struct gs_cb *)
+						&vcpu->run->s.regs.gscb;
+			restore_gs_cb(current->thread.gs_cb);
+		}
+		preempt_enable();
+	}
+	/* SIE will load etoken directly from SDNX and therefore kvm_run */
+}
+
+static void sync_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+{
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX)
+		kvm_s390_set_prefix(vcpu, kvm_run->s.regs.prefix);
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_CRS) {
+		memcpy(&vcpu->arch.sie_block->gcr, &kvm_run->s.regs.crs, 128);
+		/* some control register changes require a tlb flush */
+		kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
+	}
+	if (kvm_run->kvm_dirty_regs & KVM_SYNC_ARCH0) {
+		kvm_s390_set_cpu_timer(vcpu, kvm_run->s.regs.cputm);
+		vcpu->arch.sie_block->ckc = kvm_run->s.regs.ckc;
+	}
 	save_access_regs(vcpu->arch.host_acrs);
 	restore_access_regs(vcpu->run->s.regs.acrs);
 	/* save host (userspace) fprs/vrs */
@@ -3936,23 +4381,48 @@
 	if (test_fp_ctl(current->thread.fpu.fpc))
 		/* User space provided an invalid FPC, let's clear it */
 		current->thread.fpu.fpc = 0;
+
+	/* Sync fmt2 only data */
+	if (likely(!kvm_s390_pv_cpu_is_protected(vcpu))) {
+		sync_regs_fmt2(vcpu, kvm_run);
+	} else {
+		/*
+		 * In several places we have to modify our internal view to
+		 * not do things that are disallowed by the ultravisor. For
+		 * example we must not inject interrupts after specific exits
+		 * (e.g. 112 prefix page not secure). We do this by turning
+		 * off the machine check, external and I/O interrupt bits
+		 * of our PSW copy. To avoid getting validity intercepts, we
+		 * do only accept the condition code from userspace.
+		 */
+		vcpu->arch.sie_block->gpsw.mask &= ~PSW_MASK_CC;
+		vcpu->arch.sie_block->gpsw.mask |= kvm_run->psw_mask &
+						   PSW_MASK_CC;
+	}
+
+	kvm_run->kvm_dirty_regs = 0;
+}
+
+static void store_regs_fmt2(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
+{
+	kvm_run->s.regs.todpr = vcpu->arch.sie_block->todpr;
+	kvm_run->s.regs.pp = vcpu->arch.sie_block->pp;
+	kvm_run->s.regs.gbea = vcpu->arch.sie_block->gbea;
+	kvm_run->s.regs.bpbc = (vcpu->arch.sie_block->fpf & FPF_BPBC) == FPF_BPBC;
+	kvm_run->s.regs.diag318 = vcpu->arch.diag318_info.val;
 	if (MACHINE_HAS_GS) {
 		preempt_disable();
 		__ctl_set_bit(2, 4);
-		if (current->thread.gs_cb) {
-			vcpu->arch.host_gscb = current->thread.gs_cb;
-			save_gs_cb(vcpu->arch.host_gscb);
-		}
-		if (vcpu->arch.gs_enabled) {
-			current->thread.gs_cb = (struct gs_cb *)
-						&vcpu->run->s.regs.gscb;
-			restore_gs_cb(current->thread.gs_cb);
-		}
+		if (vcpu->arch.gs_enabled)
+			save_gs_cb(current->thread.gs_cb);
+		current->thread.gs_cb = vcpu->arch.host_gscb;
+		restore_gs_cb(vcpu->arch.host_gscb);
+		if (!vcpu->arch.host_gscb)
+			__ctl_clear_bit(2, 4);
+		vcpu->arch.host_gscb = NULL;
 		preempt_enable();
 	}
-	/* SIE will load etoken directly from SDNX and therefore kvm_run */
-
-	kvm_run->kvm_dirty_regs = 0;
+	/* SIE will save etoken directly into SDNX and therefore kvm_run */
 }
 
 static void store_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
@@ -3963,13 +4433,9 @@
 	memcpy(&kvm_run->s.regs.crs, &vcpu->arch.sie_block->gcr, 128);
 	kvm_run->s.regs.cputm = kvm_s390_get_cpu_timer(vcpu);
 	kvm_run->s.regs.ckc = vcpu->arch.sie_block->ckc;
-	kvm_run->s.regs.todpr = vcpu->arch.sie_block->todpr;
-	kvm_run->s.regs.pp = vcpu->arch.sie_block->pp;
-	kvm_run->s.regs.gbea = vcpu->arch.sie_block->gbea;
 	kvm_run->s.regs.pft = vcpu->arch.pfault_token;
 	kvm_run->s.regs.pfs = vcpu->arch.pfault_select;
 	kvm_run->s.regs.pfc = vcpu->arch.pfault_compare;
-	kvm_run->s.regs.bpbc = (vcpu->arch.sie_block->fpf & FPF_BPBC) == FPF_BPBC;
 	save_access_regs(vcpu->run->s.regs.acrs);
 	restore_access_regs(vcpu->arch.host_acrs);
 	/* Save guest register state */
@@ -3978,19 +4444,8 @@
 	/* Restore will be done lazily at return */
 	current->thread.fpu.fpc = vcpu->arch.host_fpregs.fpc;
 	current->thread.fpu.regs = vcpu->arch.host_fpregs.regs;
-	if (MACHINE_HAS_GS) {
-		__ctl_set_bit(2, 4);
-		if (vcpu->arch.gs_enabled)
-			save_gs_cb(current->thread.gs_cb);
-		preempt_disable();
-		current->thread.gs_cb = vcpu->arch.host_gscb;
-		restore_gs_cb(vcpu->arch.host_gscb);
-		preempt_enable();
-		if (!vcpu->arch.host_gscb)
-			__ctl_clear_bit(2, 4);
-		vcpu->arch.host_gscb = NULL;
-	}
-	/* SIE will save etoken directly into SDNX and therefore kvm_run */
+	if (likely(!kvm_s390_pv_cpu_is_protected(vcpu)))
+		store_regs_fmt2(vcpu, kvm_run);
 }
 
 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
@@ -4014,6 +4469,10 @@
 
 	kvm_sigset_activate(vcpu);
 
+	/*
+	 * no need to check the return value of vcpu_start as it can only have
+	 * an error for protvirt, but protvirt means user cpu state
+	 */
 	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm)) {
 		kvm_s390_vcpu_start(vcpu);
 	} else if (is_vcpu_stopped(vcpu)) {
@@ -4151,18 +4610,27 @@
 	kvm_s390_sync_request(KVM_REQ_ENABLE_IBS, vcpu);
 }
 
-void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)
+int kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)
 {
-	int i, online_vcpus, started_vcpus = 0;
+	int i, online_vcpus, r = 0, started_vcpus = 0;
 
 	if (!is_vcpu_stopped(vcpu))
-		return;
+		return 0;
 
 	trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 1);
 	/* Only one cpu at a time may enter/leave the STOPPED state. */
 	spin_lock(&vcpu->kvm->arch.start_stop_lock);
 	online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
 
+	/* Let's tell the UV that we want to change into the operating state */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		r = kvm_s390_pv_set_cpu_state(vcpu, PV_CPU_STATE_OPR);
+		if (r) {
+			spin_unlock(&vcpu->kvm->arch.start_stop_lock);
+			return r;
+		}
+	}
+
 	for (i = 0; i < online_vcpus; i++) {
 		if (!is_vcpu_stopped(vcpu->kvm->vcpus[i]))
 			started_vcpus++;
@@ -4182,31 +4650,52 @@
 
 	kvm_s390_clear_cpuflags(vcpu, CPUSTAT_STOPPED);
 	/*
+	 * The real PSW might have changed due to a RESTART interpreted by the
+	 * ultravisor. We block all interrupts and let the next sie exit
+	 * refresh our view.
+	 */
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		vcpu->arch.sie_block->gpsw.mask &= ~PSW_INT_MASK;
+	/*
 	 * Another VCPU might have used IBS while we were offline.
 	 * Let's play safe and flush the VCPU at startup.
 	 */
 	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
 	spin_unlock(&vcpu->kvm->arch.start_stop_lock);
-	return;
+	return 0;
 }
 
-void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
+int kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
 {
-	int i, online_vcpus, started_vcpus = 0;
+	int i, online_vcpus, r = 0, started_vcpus = 0;
 	struct kvm_vcpu *started_vcpu = NULL;
 
 	if (is_vcpu_stopped(vcpu))
-		return;
+		return 0;
 
 	trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 0);
 	/* Only one cpu at a time may enter/leave the STOPPED state. */
 	spin_lock(&vcpu->kvm->arch.start_stop_lock);
 	online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
 
-	/* SIGP STOP and SIGP STOP AND STORE STATUS has been fully processed */
-	kvm_s390_clear_stop_irq(vcpu);
+	/* Let's tell the UV that we want to change into the stopped state */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		r = kvm_s390_pv_set_cpu_state(vcpu, PV_CPU_STATE_STP);
+		if (r) {
+			spin_unlock(&vcpu->kvm->arch.start_stop_lock);
+			return r;
+		}
+	}
 
+	/*
+	 * Set the VCPU to STOPPED and THEN clear the interrupt flag,
+	 * now that the SIGP STOP and SIGP STOP AND STORE STATUS orders
+	 * have been fully processed. This will ensure that the VCPU
+	 * is kept BUSY if another VCPU is inquiring with SIGP SENSE.
+	 */
 	kvm_s390_set_cpuflags(vcpu, CPUSTAT_STOPPED);
+	kvm_s390_clear_stop_irq(vcpu);
+
 	__disable_ibs_on_vcpu(vcpu);
 
 	for (i = 0; i < online_vcpus; i++) {
@@ -4225,7 +4714,7 @@
 	}
 
 	spin_unlock(&vcpu->kvm->arch.start_stop_lock);
-	return;
+	return 0;
 }
 
 static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
@@ -4252,37 +4741,74 @@
 	return r;
 }
 
-static long kvm_s390_guest_mem_op(struct kvm_vcpu *vcpu,
+static long kvm_s390_vcpu_sida_op(struct kvm_vcpu *vcpu,
 				  struct kvm_s390_mem_op *mop)
 {
 	void __user *uaddr = (void __user *)mop->buf;
+	int r = 0;
+
+	if (mop->flags || !mop->size)
+		return -EINVAL;
+	if (mop->size + mop->sida_offset < mop->size)
+		return -EINVAL;
+	if (mop->size + mop->sida_offset > sida_size(vcpu->arch.sie_block))
+		return -E2BIG;
+	if (!kvm_s390_pv_cpu_is_protected(vcpu))
+		return -EINVAL;
+
+	switch (mop->op) {
+	case KVM_S390_MEMOP_SIDA_READ:
+		if (copy_to_user(uaddr, (void *)(sida_origin(vcpu->arch.sie_block) +
+				 mop->sida_offset), mop->size))
+			r = -EFAULT;
+
+		break;
+	case KVM_S390_MEMOP_SIDA_WRITE:
+		if (copy_from_user((void *)(sida_origin(vcpu->arch.sie_block) +
+				   mop->sida_offset), uaddr, mop->size))
+			r = -EFAULT;
+		break;
+	}
+	return r;
+}
+
+static long kvm_s390_vcpu_mem_op(struct kvm_vcpu *vcpu,
+				 struct kvm_s390_mem_op *mop)
+{
+	void __user *uaddr = (void __user *)mop->buf;
 	void *tmpbuf = NULL;
-	int r, srcu_idx;
+	int r = 0;
 	const u64 supported_flags = KVM_S390_MEMOP_F_INJECT_EXCEPTION
-				    | KVM_S390_MEMOP_F_CHECK_ONLY;
+				    | KVM_S390_MEMOP_F_CHECK_ONLY
+				    | KVM_S390_MEMOP_F_SKEY_PROTECTION;
 
 	if (mop->flags & ~supported_flags || mop->ar >= NUM_ACRS || !mop->size)
 		return -EINVAL;
-
 	if (mop->size > MEM_OP_MAX_SIZE)
 		return -E2BIG;
-
+	if (kvm_s390_pv_cpu_is_protected(vcpu))
+		return -EINVAL;
+	if (mop->flags & KVM_S390_MEMOP_F_SKEY_PROTECTION) {
+		if (access_key_invalid(mop->key))
+			return -EINVAL;
+	} else {
+		mop->key = 0;
+	}
 	if (!(mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY)) {
 		tmpbuf = vmalloc(mop->size);
 		if (!tmpbuf)
 			return -ENOMEM;
 	}
 
-	srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
-
 	switch (mop->op) {
 	case KVM_S390_MEMOP_LOGICAL_READ:
 		if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) {
-			r = check_gva_range(vcpu, mop->gaddr, mop->ar,
-					    mop->size, GACC_FETCH);
+			r = check_gva_range(vcpu, mop->gaddr, mop->ar, mop->size,
+					    GACC_FETCH, mop->key);
 			break;
 		}
-		r = read_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size);
+		r = read_guest_with_key(vcpu, mop->gaddr, mop->ar, tmpbuf,
+					mop->size, mop->key);
 		if (r == 0) {
 			if (copy_to_user(uaddr, tmpbuf, mop->size))
 				r = -EFAULT;
@@ -4290,22 +4816,19 @@
 		break;
 	case KVM_S390_MEMOP_LOGICAL_WRITE:
 		if (mop->flags & KVM_S390_MEMOP_F_CHECK_ONLY) {
-			r = check_gva_range(vcpu, mop->gaddr, mop->ar,
-					    mop->size, GACC_STORE);
+			r = check_gva_range(vcpu, mop->gaddr, mop->ar, mop->size,
+					    GACC_STORE, mop->key);
 			break;
 		}
 		if (copy_from_user(tmpbuf, uaddr, mop->size)) {
 			r = -EFAULT;
 			break;
 		}
-		r = write_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size);
+		r = write_guest_with_key(vcpu, mop->gaddr, mop->ar, tmpbuf,
+					 mop->size, mop->key);
 		break;
-	default:
-		r = -EINVAL;
 	}
 
-	srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);
-
 	if (r > 0 && (mop->flags & KVM_S390_MEMOP_F_INJECT_EXCEPTION) != 0)
 		kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm);
 
@@ -4313,6 +4836,31 @@
 	return r;
 }
 
+static long kvm_s390_vcpu_memsida_op(struct kvm_vcpu *vcpu,
+				     struct kvm_s390_mem_op *mop)
+{
+	int r, srcu_idx;
+
+	srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
+
+	switch (mop->op) {
+	case KVM_S390_MEMOP_LOGICAL_READ:
+	case KVM_S390_MEMOP_LOGICAL_WRITE:
+		r = kvm_s390_vcpu_mem_op(vcpu, mop);
+		break;
+	case KVM_S390_MEMOP_SIDA_READ:
+	case KVM_S390_MEMOP_SIDA_WRITE:
+		/* we are locked against sida going away by the vcpu->mutex */
+		r = kvm_s390_vcpu_sida_op(vcpu, mop);
+		break;
+	default:
+		r = -EINVAL;
+	}
+
+	srcu_read_unlock(&vcpu->kvm->srcu, srcu_idx);
+	return r;
+}
+
 long kvm_arch_vcpu_async_ioctl(struct file *filp,
 			       unsigned int ioctl, unsigned long arg)
 {
@@ -4348,13 +4896,14 @@
 	void __user *argp = (void __user *)arg;
 	int idx;
 	long r;
+	u16 rc, rrc;
 
 	vcpu_load(vcpu);
 
 	switch (ioctl) {
 	case KVM_S390_STORE_STATUS:
 		idx = srcu_read_lock(&vcpu->kvm->srcu);
-		r = kvm_s390_vcpu_store_status(vcpu, arg);
+		r = kvm_s390_store_status_unloaded(vcpu, arg);
 		srcu_read_unlock(&vcpu->kvm->srcu, idx);
 		break;
 	case KVM_S390_SET_INITIAL_PSW: {
@@ -4366,12 +4915,43 @@
 		r = kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
 		break;
 	}
+	case KVM_S390_CLEAR_RESET:
+		r = 0;
+		kvm_arch_vcpu_ioctl_clear_reset(vcpu);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			r = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+					  UVC_CMD_CPU_RESET_CLEAR, &rc, &rrc);
+			VCPU_EVENT(vcpu, 3, "PROTVIRT RESET CLEAR VCPU: rc %x rrc %x",
+				   rc, rrc);
+		}
+		break;
 	case KVM_S390_INITIAL_RESET:
-		r = kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+		r = 0;
+		kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			r = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+					  UVC_CMD_CPU_RESET_INITIAL,
+					  &rc, &rrc);
+			VCPU_EVENT(vcpu, 3, "PROTVIRT RESET INITIAL VCPU: rc %x rrc %x",
+				   rc, rrc);
+		}
+		break;
+	case KVM_S390_NORMAL_RESET:
+		r = 0;
+		kvm_arch_vcpu_ioctl_normal_reset(vcpu);
+		if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+			r = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+					  UVC_CMD_CPU_RESET, &rc, &rrc);
+			VCPU_EVENT(vcpu, 3, "PROTVIRT RESET NORMAL VCPU: rc %x rrc %x",
+				   rc, rrc);
+		}
 		break;
 	case KVM_SET_ONE_REG:
 	case KVM_GET_ONE_REG: {
 		struct kvm_one_reg reg;
+		r = -EINVAL;
+		if (kvm_s390_pv_cpu_is_protected(vcpu))
+			break;
 		r = -EFAULT;
 		if (copy_from_user(&reg, argp, sizeof(reg)))
 			break;
@@ -4434,7 +5014,7 @@
 		struct kvm_s390_mem_op mem_op;
 
 		if (copy_from_user(&mem_op, argp, sizeof(mem_op)) == 0)
-			r = kvm_s390_guest_mem_op(vcpu, &mem_op);
+			r = kvm_s390_vcpu_memsida_op(vcpu, &mem_op);
 		else
 			r = -EFAULT;
 		break;
@@ -4520,6 +5100,26 @@
 	if (mem->guest_phys_addr + mem->memory_size > kvm->arch.mem_limit)
 		return -EINVAL;
 
+	/* When we are protected, we should not change the memory slots */
+	if (kvm_s390_pv_get_handle(kvm))
+		return -EINVAL;
+
+	if (!kvm->arch.migration_mode)
+		return 0;
+
+	/*
+	 * Turn off migration mode when:
+	 * - userspace creates a new memslot with dirty logging off,
+	 * - userspace modifies an existing memslot (MOVE or FLAGS_ONLY) and
+	 *   dirty logging is turned off.
+	 * Migration mode expects dirty page logging being enabled to store
+	 * its dirty bitmap.
+	 */
+	if (change != KVM_MR_DELETE &&
+	    !(mem->flags & KVM_MEM_LOG_DIRTY_PAGES))
+		WARN(kvm_s390_vm_stop_migration(kvm),
+		     "Failed to stop migration mode");
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/s390/kvm/kvm-s390.h
+++ linux-ein-5.4.0/arch/s390/kvm/kvm-s390.h
@@ -2,7 +2,7 @@
 /*
  * definition for kvm on s390
  *
- * Copyright IBM Corp. 2008, 2009
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -15,6 +15,7 @@
 #include <linux/hrtimer.h>
 #include <linux/kvm.h>
 #include <linux/kvm_host.h>
+#include <linux/lockdep.h>
 #include <asm/facility.h>
 #include <asm/processor.h>
 #include <asm/sclp.h>
@@ -25,6 +26,17 @@
 #define IS_ITDB_VALID(vcpu)	((*(char *)vcpu->arch.sie_block->itdba == TDB_FORMAT1))
 
 extern debug_info_t *kvm_s390_dbf;
+extern debug_info_t *kvm_s390_dbf_uv;
+
+#define KVM_UV_EVENT(d_kvm, d_loglevel, d_string, d_args...)\
+do { \
+	debug_sprintf_event((d_kvm)->arch.dbf, d_loglevel, d_string "\n", \
+	  d_args); \
+	debug_sprintf_event(kvm_s390_dbf_uv, d_loglevel, \
+			    "%d: " d_string "\n", (d_kvm)->userspace_pid, \
+			    d_args); \
+} while (0)
+
 #define KVM_EVENT(d_loglevel, d_string, d_args...)\
 do { \
 	debug_sprintf_event(kvm_s390_dbf, d_loglevel, d_string "\n", \
@@ -67,7 +79,7 @@
 
 static inline int is_vcpu_idle(struct kvm_vcpu *vcpu)
 {
-	return test_bit(vcpu->vcpu_id, vcpu->kvm->arch.idle_mask);
+	return test_bit(kvm_vcpu_get_idx(vcpu), vcpu->kvm->arch.idle_mask);
 }
 
 static inline int kvm_is_ucontrol(struct kvm *kvm)
@@ -196,6 +208,48 @@
 	return kvm->arch.user_cpu_state_ctrl != 0;
 }
 
+static inline void kvm_s390_set_user_cpu_state_ctrl(struct kvm *kvm)
+{
+	if (kvm->arch.user_cpu_state_ctrl)
+		return;
+
+	VM_EVENT(kvm, 3, "%s", "ENABLE: Userspace CPU state control");
+	kvm->arch.user_cpu_state_ctrl = 1;
+}
+
+/* implemented in pv.c */
+int kvm_s390_pv_destroy_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc);
+int kvm_s390_pv_create_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc);
+int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc);
+int kvm_s390_pv_init_vm(struct kvm *kvm, u16 *rc, u16 *rrc);
+int kvm_s390_pv_set_sec_parms(struct kvm *kvm, void *hdr, u64 length, u16 *rc,
+			      u16 *rrc);
+int kvm_s390_pv_unpack(struct kvm *kvm, unsigned long addr, unsigned long size,
+		       unsigned long tweak, u16 *rc, u16 *rrc);
+int kvm_s390_pv_set_cpu_state(struct kvm_vcpu *vcpu, u8 state);
+
+static inline u64 kvm_s390_pv_get_handle(struct kvm *kvm)
+{
+	return kvm->arch.pv.handle;
+}
+
+static inline u64 kvm_s390_pv_cpu_get_handle(struct kvm_vcpu *vcpu)
+{
+	return vcpu->arch.pv.handle;
+}
+
+static inline bool kvm_s390_pv_is_protected(struct kvm *kvm)
+{
+	lockdep_assert_held(&kvm->lock);
+	return !!kvm_s390_pv_get_handle(kvm);
+}
+
+static inline bool kvm_s390_pv_cpu_is_protected(struct kvm_vcpu *vcpu)
+{
+	lockdep_assert_held(&vcpu->mutex);
+	return !!kvm_s390_pv_cpu_get_handle(vcpu);
+}
+
 /* implemented in interrupt.c */
 int kvm_s390_handle_wait(struct kvm_vcpu *vcpu);
 void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu);
@@ -281,13 +335,12 @@
 int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu);
 
 /* implemented in kvm-s390.c */
-void kvm_s390_set_tod_clock(struct kvm *kvm,
-			    const struct kvm_s390_vm_tod_clock *gtod);
+int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
 long kvm_arch_fault_in_page(struct kvm_vcpu *vcpu, gpa_t gpa, int writable);
 int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
 int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr);
-void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
-void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
+int kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
+int kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
 void kvm_s390_vcpu_block(struct kvm_vcpu *vcpu);
 void kvm_s390_vcpu_unblock(struct kvm_vcpu *vcpu);
 bool kvm_s390_vcpu_sie_inhibited(struct kvm_vcpu *vcpu);
@@ -373,6 +426,7 @@
 int kvm_s390_ext_call_pending(struct kvm_vcpu *vcpu);
 extern struct kvm_device_ops kvm_flic_ops;
 int kvm_s390_is_stop_irq_pending(struct kvm_vcpu *vcpu);
+int kvm_s390_is_restart_irq_pending(struct kvm_vcpu *vcpu);
 void kvm_s390_clear_stop_irq(struct kvm_vcpu *vcpu);
 int kvm_s390_set_irq_state(struct kvm_vcpu *vcpu,
 			   void __user *buf, int len);
--- linux-ein-5.4.0.orig/arch/s390/kvm/priv.c
+++ linux-ein-5.4.0/arch/s390/kvm/priv.c
@@ -2,7 +2,7 @@
 /*
  * handling privileged instructions
  *
- * Copyright IBM Corp. 2008, 2018
+ * Copyright IBM Corp. 2008, 2020
  *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
@@ -103,7 +103,20 @@
 		return kvm_s390_inject_prog_cond(vcpu, rc);
 
 	VCPU_EVENT(vcpu, 3, "SCK: setting guest TOD to 0x%llx", gtod.tod);
-	kvm_s390_set_tod_clock(vcpu->kvm, &gtod);
+	/*
+	 * To set the TOD clock the kvm lock must be taken, but the vcpu lock
+	 * is already held in handle_set_clock. The usual lock order is the
+	 * opposite.  As SCK is deprecated and should not be used in several
+	 * cases, for example when the multiple epoch facility or TOD clock
+	 * steering facility is installed (see Principles of Operation),  a
+	 * slow path can be used.  If the lock can not be taken via try_lock,
+	 * the instruction will be retried via -EAGAIN at a later point in
+	 * time.
+	 */
+	if (!kvm_s390_try_set_tod_clock(vcpu->kvm, &gtod)) {
+		kvm_s390_retry_instr(vcpu);
+		return -EAGAIN;
+	}
 
 	kvm_s390_set_psw_cc(vcpu, 0);
 	return 0;
@@ -398,6 +411,8 @@
 		up_read(&current->mm->mmap_sem);
 		if (rc == -EFAULT)
 			return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
+		if (rc == -EAGAIN)
+			continue;
 		if (rc < 0)
 			return rc;
 		start += PAGE_SIZE;
@@ -626,10 +641,12 @@
 	 * available for the guest are AQIC and TAPQ with the t bit set
 	 * since we do not set IC.3 (FIII) we currently will only intercept
 	 * the AQIC function code.
+	 * Note: running nested under z/VM can result in intercepts for other
+	 * function codes, e.g. PQAP(QCI). We do not support this and bail out.
 	 */
 	reg0 = vcpu->run->s.regs.gprs[0];
 	fc = (reg0 >> 24) & 0xff;
-	if (WARN_ON_ONCE(fc != 0x03))
+	if (fc != 0x03)
 		return -EOPNOTSUPP;
 
 	/* PQAP instruction is allowed for guest kernel only */
@@ -872,7 +889,7 @@
 
 	operand2 = kvm_s390_get_base_disp_s(vcpu, &ar);
 
-	if (operand2 & 0xfff)
+	if (!kvm_s390_pv_cpu_is_protected(vcpu) && (operand2 & 0xfff))
 		return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
 
 	switch (fc) {
@@ -893,8 +910,13 @@
 		handle_stsi_3_2_2(vcpu, (void *) mem);
 		break;
 	}
-
-	rc = write_guest(vcpu, operand2, ar, (void *)mem, PAGE_SIZE);
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		memcpy((void *)sida_origin(vcpu->arch.sie_block), (void *)mem,
+		       PAGE_SIZE);
+		rc = 0;
+	} else {
+		rc = write_guest(vcpu, operand2, ar, (void *)mem, PAGE_SIZE);
+	}
 	if (rc) {
 		rc = kvm_s390_inject_prog_cond(vcpu, rc);
 		goto out;
@@ -1432,10 +1454,11 @@
 
 static int handle_tprot(struct kvm_vcpu *vcpu)
 {
-	u64 address1, address2;
-	unsigned long hva, gpa;
-	int ret = 0, cc = 0;
+	u64 address, operand2;
+	unsigned long gpa;
+	u8 access_key;
 	bool writable;
+	int ret, cc;
 	u8 ar;
 
 	vcpu->stat.instruction_tprot++;
@@ -1443,43 +1466,46 @@
 	if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
 		return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP);
 
-	kvm_s390_get_base_disp_sse(vcpu, &address1, &address2, &ar, NULL);
+	kvm_s390_get_base_disp_sse(vcpu, &address, &operand2, &ar, NULL);
+	access_key = (operand2 & 0xf0) >> 4;
 
-	/* we only handle the Linux memory detection case:
-	 * access key == 0
-	 * everything else goes to userspace. */
-	if (address2 & 0xf0)
-		return -EOPNOTSUPP;
 	if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_DAT)
 		ipte_lock(vcpu);
-	ret = guest_translate_address(vcpu, address1, ar, &gpa, GACC_STORE);
-	if (ret == PGM_PROTECTION) {
+
+	ret = guest_translate_address_with_key(vcpu, address, ar, &gpa,
+					       GACC_STORE, access_key);
+	if (ret == 0) {
+		gfn_to_hva_prot(vcpu->kvm, gpa_to_gfn(gpa), &writable);
+	} else if (ret == PGM_PROTECTION) {
+		writable = false;
 		/* Write protected? Try again with read-only... */
-		cc = 1;
-		ret = guest_translate_address(vcpu, address1, ar, &gpa,
-					      GACC_FETCH);
+		ret = guest_translate_address_with_key(vcpu, address, ar, &gpa,
+						       GACC_FETCH, access_key);
 	}
-	if (ret) {
-		if (ret == PGM_ADDRESSING || ret == PGM_TRANSLATION_SPEC) {
-			ret = kvm_s390_inject_program_int(vcpu, ret);
-		} else if (ret > 0) {
-			/* Translation not available */
-			kvm_s390_set_psw_cc(vcpu, 3);
+	if (ret >= 0) {
+		cc = -1;
+
+		/* Fetching permitted; storing permitted */
+		if (ret == 0 && writable)
+			cc = 0;
+		/* Fetching permitted; storing not permitted */
+		else if (ret == 0 && !writable)
+			cc = 1;
+		/* Fetching not permitted; storing not permitted */
+		else if (ret == PGM_PROTECTION)
+			cc = 2;
+		/* Translation not available */
+		else if (ret != PGM_ADDRESSING && ret != PGM_TRANSLATION_SPEC)
+			cc = 3;
+
+		if (cc != -1) {
+			kvm_s390_set_psw_cc(vcpu, cc);
 			ret = 0;
+		} else {
+			ret = kvm_s390_inject_program_int(vcpu, ret);
 		}
-		goto out_unlock;
 	}
 
-	hva = gfn_to_hva_prot(vcpu->kvm, gpa_to_gfn(gpa), &writable);
-	if (kvm_is_error_hva(hva)) {
-		ret = kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-	} else {
-		if (!writable)
-			cc = 1;		/* Write not permitted ==> read-only */
-		kvm_s390_set_psw_cc(vcpu, cc);
-		/* Note: CC2 only occurs for storage keys (not supported yet) */
-	}
-out_unlock:
 	if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_DAT)
 		ipte_unlock(vcpu);
 	return ret;
--- linux-ein-5.4.0.orig/arch/s390/kvm/pv.c
+++ linux-ein-5.4.0/arch/s390/kvm/pv.c
@@ -0,0 +1,303 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Hosting Protected Virtual Machines
+ *
+ * Copyright IBM Corp. 2019, 2020
+ *    Author(s): Janosch Frank <frankja@linux.ibm.com>
+ */
+#include <linux/kvm.h>
+#include <linux/kvm_host.h>
+#include <linux/pagemap.h>
+#include <linux/sched/signal.h>
+#include <asm/pgalloc.h>
+#include <asm/gmap.h>
+#include <asm/uv.h>
+#include <asm/mman.h>
+#include "kvm-s390.h"
+
+int kvm_s390_pv_destroy_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc)
+{
+	int cc = 0;
+
+	if (kvm_s390_pv_cpu_get_handle(vcpu)) {
+		cc = uv_cmd_nodata(kvm_s390_pv_cpu_get_handle(vcpu),
+				   UVC_CMD_DESTROY_SEC_CPU, rc, rrc);
+
+		KVM_UV_EVENT(vcpu->kvm, 3,
+			     "PROTVIRT DESTROY VCPU %d: rc %x rrc %x",
+			     vcpu->vcpu_id, *rc, *rrc);
+		WARN_ONCE(cc, "protvirt destroy cpu failed rc %x rrc %x",
+			  *rc, *rrc);
+	}
+	/* Intended memory leak for something that should never happen. */
+	if (!cc)
+		free_pages(vcpu->arch.pv.stor_base,
+			   get_order(uv_info.guest_cpu_stor_len));
+
+	free_page(sida_origin(vcpu->arch.sie_block));
+	vcpu->arch.sie_block->pv_handle_cpu = 0;
+	vcpu->arch.sie_block->pv_handle_config = 0;
+	memset(&vcpu->arch.pv, 0, sizeof(vcpu->arch.pv));
+	vcpu->arch.sie_block->sdf = 0;
+	/*
+	 * The sidad field (for sdf == 2) is now the gbea field (for sdf == 0).
+	 * Use the reset value of gbea to avoid leaking the kernel pointer of
+	 * the just freed sida.
+	 */
+	vcpu->arch.sie_block->gbea = 1;
+	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
+
+	return cc ? EIO : 0;
+}
+
+int kvm_s390_pv_create_cpu(struct kvm_vcpu *vcpu, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_csc uvcb = {
+		.header.cmd = UVC_CMD_CREATE_SEC_CPU,
+		.header.len = sizeof(uvcb),
+	};
+	int cc;
+
+	if (kvm_s390_pv_cpu_get_handle(vcpu))
+		return -EINVAL;
+
+	vcpu->arch.pv.stor_base = __get_free_pages(GFP_KERNEL,
+						   get_order(uv_info.guest_cpu_stor_len));
+	if (!vcpu->arch.pv.stor_base)
+		return -ENOMEM;
+
+	/* Input */
+	uvcb.guest_handle = kvm_s390_pv_get_handle(vcpu->kvm);
+	uvcb.num = vcpu->arch.sie_block->icpua;
+	uvcb.state_origin = (u64)vcpu->arch.sie_block;
+	uvcb.stor_origin = (u64)vcpu->arch.pv.stor_base;
+
+	/* Alloc Secure Instruction Data Area Designation */
+	vcpu->arch.sie_block->sidad = __get_free_page(GFP_KERNEL | __GFP_ZERO);
+	if (!vcpu->arch.sie_block->sidad) {
+		free_pages(vcpu->arch.pv.stor_base,
+			   get_order(uv_info.guest_cpu_stor_len));
+		return -ENOMEM;
+	}
+
+	cc = uv_call(0, (u64)&uvcb);
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	KVM_UV_EVENT(vcpu->kvm, 3,
+		     "PROTVIRT CREATE VCPU: cpu %d handle %llx rc %x rrc %x",
+		     vcpu->vcpu_id, uvcb.cpu_handle, uvcb.header.rc,
+		     uvcb.header.rrc);
+
+	if (cc) {
+		u16 dummy;
+
+		kvm_s390_pv_destroy_cpu(vcpu, &dummy, &dummy);
+		return -EIO;
+	}
+
+	/* Output */
+	vcpu->arch.pv.handle = uvcb.cpu_handle;
+	vcpu->arch.sie_block->pv_handle_cpu = uvcb.cpu_handle;
+	vcpu->arch.sie_block->pv_handle_config = kvm_s390_pv_get_handle(vcpu->kvm);
+	vcpu->arch.sie_block->sdf = 2;
+	kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu);
+	return 0;
+}
+
+/* only free resources when the destroy was successful */
+static void kvm_s390_pv_dealloc_vm(struct kvm *kvm)
+{
+	vfree(kvm->arch.pv.stor_var);
+	free_pages(kvm->arch.pv.stor_base,
+		   get_order(uv_info.guest_base_stor_len));
+	memset(&kvm->arch.pv, 0, sizeof(kvm->arch.pv));
+}
+
+static int kvm_s390_pv_alloc_vm(struct kvm *kvm)
+{
+	unsigned long base = uv_info.guest_base_stor_len;
+	unsigned long virt = uv_info.guest_virt_var_stor_len;
+	unsigned long npages = 0, vlen = 0;
+	struct kvm_memory_slot *memslot;
+
+	kvm->arch.pv.stor_var = NULL;
+	kvm->arch.pv.stor_base = __get_free_pages(GFP_KERNEL, get_order(base));
+	if (!kvm->arch.pv.stor_base)
+		return -ENOMEM;
+
+	/*
+	 * Calculate current guest storage for allocation of the
+	 * variable storage, which is based on the length in MB.
+	 *
+	 * Slots are sorted by GFN
+	 */
+	mutex_lock(&kvm->slots_lock);
+	memslot = kvm_memslots(kvm)->memslots;
+	npages = memslot->base_gfn + memslot->npages;
+	mutex_unlock(&kvm->slots_lock);
+
+	kvm->arch.pv.guest_len = npages * PAGE_SIZE;
+
+	/* Allocate variable storage */
+	vlen = ALIGN(virt * ((npages * PAGE_SIZE) / HPAGE_SIZE), PAGE_SIZE);
+	vlen += uv_info.guest_virt_base_stor_len;
+	kvm->arch.pv.stor_var = vzalloc(vlen);
+	if (!kvm->arch.pv.stor_var)
+		goto out_err;
+	return 0;
+
+out_err:
+	kvm_s390_pv_dealloc_vm(kvm);
+	return -ENOMEM;
+}
+
+/* this should not fail, but if it does, we must not free the donated memory */
+int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc)
+{
+	int cc;
+
+	/* make all pages accessible before destroying the guest */
+	s390_reset_acc(kvm->mm);
+
+	cc = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm),
+			   UVC_CMD_DESTROY_SEC_CONF, rc, rrc);
+	WRITE_ONCE(kvm->arch.gmap->guest_handle, 0);
+	atomic_set(&kvm->mm->context.is_protected, 0);
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT DESTROY VM: rc %x rrc %x", *rc, *rrc);
+	WARN_ONCE(cc, "protvirt destroy vm failed rc %x rrc %x", *rc, *rrc);
+	/* Inteded memory leak on "impossible" error */
+	if (!cc)
+		kvm_s390_pv_dealloc_vm(kvm);
+	return cc ? -EIO : 0;
+}
+
+int kvm_s390_pv_init_vm(struct kvm *kvm, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_cgc uvcb = {
+		.header.cmd = UVC_CMD_CREATE_SEC_CONF,
+		.header.len = sizeof(uvcb)
+	};
+	int cc, ret;
+	u16 dummy;
+
+	ret = kvm_s390_pv_alloc_vm(kvm);
+	if (ret)
+		return ret;
+
+	/* Inputs */
+	uvcb.guest_stor_origin = 0; /* MSO is 0 for KVM */
+	uvcb.guest_stor_len = kvm->arch.pv.guest_len;
+	uvcb.guest_asce = kvm->arch.gmap->asce;
+	uvcb.guest_sca = (unsigned long)kvm->arch.sca;
+	uvcb.conf_base_stor_origin = (u64)kvm->arch.pv.stor_base;
+	uvcb.conf_virt_stor_origin = (u64)kvm->arch.pv.stor_var;
+
+	cc = uv_call_sched(0, (u64)&uvcb);
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT CREATE VM: handle %llx len %llx rc %x rrc %x",
+		     uvcb.guest_handle, uvcb.guest_stor_len, *rc, *rrc);
+
+	/* Outputs */
+	kvm->arch.pv.handle = uvcb.guest_handle;
+
+	if (cc) {
+		if (uvcb.header.rc & UVC_RC_NEED_DESTROY)
+			kvm_s390_pv_deinit_vm(kvm, &dummy, &dummy);
+		else
+			kvm_s390_pv_dealloc_vm(kvm);
+		return -EIO;
+	}
+	kvm->arch.gmap->guest_handle = uvcb.guest_handle;
+	atomic_set(&kvm->mm->context.is_protected, 1);
+	return 0;
+}
+
+int kvm_s390_pv_set_sec_parms(struct kvm *kvm, void *hdr, u64 length, u16 *rc,
+			      u16 *rrc)
+{
+	struct uv_cb_ssc uvcb = {
+		.header.cmd = UVC_CMD_SET_SEC_CONF_PARAMS,
+		.header.len = sizeof(uvcb),
+		.sec_header_origin = (u64)hdr,
+		.sec_header_len = length,
+		.guest_handle = kvm_s390_pv_get_handle(kvm),
+	};
+	int cc = uv_call(0, (u64)&uvcb);
+
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT VM SET PARMS: rc %x rrc %x",
+		     *rc, *rrc);
+	return cc ? -EINVAL : 0;
+}
+
+static int unpack_one(struct kvm *kvm, unsigned long addr, u64 tweak,
+		      u64 offset, u16 *rc, u16 *rrc)
+{
+	struct uv_cb_unp uvcb = {
+		.header.cmd = UVC_CMD_UNPACK_IMG,
+		.header.len = sizeof(uvcb),
+		.guest_handle = kvm_s390_pv_get_handle(kvm),
+		.gaddr = addr,
+		.tweak[0] = tweak,
+		.tweak[1] = offset,
+	};
+	int ret = gmap_make_secure(kvm->arch.gmap, addr, &uvcb);
+
+	*rc = uvcb.header.rc;
+	*rrc = uvcb.header.rrc;
+
+	if (ret && ret != -EAGAIN)
+		KVM_UV_EVENT(kvm, 3, "PROTVIRT VM UNPACK: failed addr %llx with rc %x rrc %x",
+			     uvcb.gaddr, *rc, *rrc);
+	return ret;
+}
+
+int kvm_s390_pv_unpack(struct kvm *kvm, unsigned long addr, unsigned long size,
+		       unsigned long tweak, u16 *rc, u16 *rrc)
+{
+	u64 offset = 0;
+	int ret = 0;
+
+	if (addr & ~PAGE_MASK || !size || size & ~PAGE_MASK)
+		return -EINVAL;
+
+	KVM_UV_EVENT(kvm, 3, "PROTVIRT VM UNPACK: start addr %lx size %lx",
+		     addr, size);
+
+	while (offset < size) {
+		ret = unpack_one(kvm, addr, tweak, offset, rc, rrc);
+		if (ret == -EAGAIN) {
+			cond_resched();
+			if (fatal_signal_pending(current))
+				break;
+			continue;
+		}
+		if (ret)
+			break;
+		addr += PAGE_SIZE;
+		offset += PAGE_SIZE;
+	}
+	if (!ret)
+		KVM_UV_EVENT(kvm, 3, "%s", "PROTVIRT VM UNPACK: successful");
+	return ret;
+}
+
+int kvm_s390_pv_set_cpu_state(struct kvm_vcpu *vcpu, u8 state)
+{
+	struct uv_cb_cpu_set_state uvcb = {
+		.header.cmd	= UVC_CMD_CPU_SET_STATE,
+		.header.len	= sizeof(uvcb),
+		.cpu_handle	= kvm_s390_pv_cpu_get_handle(vcpu),
+		.state		= state,
+	};
+	int cc;
+
+	cc = uv_call(0, (u64)&uvcb);
+	KVM_UV_EVENT(vcpu->kvm, 3, "PROTVIRT SET CPU %d STATE %d rc %x rrc %x",
+		     vcpu->vcpu_id, state, uvcb.header.rc, uvcb.header.rrc);
+	if (cc)
+		return -EINVAL;
+	return 0;
+}
--- linux-ein-5.4.0.orig/arch/s390/kvm/sigp.c
+++ linux-ein-5.4.0/arch/s390/kvm/sigp.c
@@ -151,22 +151,10 @@
 static int __sigp_set_arch(struct kvm_vcpu *vcpu, u32 parameter,
 			   u64 *status_reg)
 {
-	unsigned int i;
-	struct kvm_vcpu *v;
-	bool all_stopped = true;
-
-	kvm_for_each_vcpu(i, v, vcpu->kvm) {
-		if (v == vcpu)
-			continue;
-		if (!is_vcpu_stopped(v))
-			all_stopped = false;
-	}
-
 	*status_reg &= 0xffffffff00000000UL;
 
 	/* Reject set arch order, with czam we're always in z/Arch mode. */
-	*status_reg |= (all_stopped ? SIGP_STATUS_INVALID_PARAMETER :
-					SIGP_STATUS_INCORRECT_STATE);
+	*status_reg |= SIGP_STATUS_INVALID_PARAMETER;
 	return SIGP_CC_STATUS_STORED;
 }
 
@@ -288,6 +276,34 @@
 	if (!dst_vcpu)
 		return SIGP_CC_NOT_OPERATIONAL;
 
+	/*
+	 * SIGP RESTART, SIGP STOP, and SIGP STOP AND STORE STATUS orders
+	 * are processed asynchronously. Until the affected VCPU finishes
+	 * its work and calls back into KVM to clear the (RESTART or STOP)
+	 * interrupt, we need to return any new non-reset orders "busy".
+	 *
+	 * This is important because a single VCPU could issue:
+	 *  1) SIGP STOP $DESTINATION
+	 *  2) SIGP SENSE $DESTINATION
+	 *
+	 * If the SIGP SENSE would not be rejected as "busy", it could
+	 * return an incorrect answer as to whether the VCPU is STOPPED
+	 * or OPERATING.
+	 */
+	if (order_code != SIGP_INITIAL_CPU_RESET &&
+	    order_code != SIGP_CPU_RESET) {
+		/*
+		 * Lockless check. Both SIGP STOP and SIGP (RE)START
+		 * properly synchronize everything while processing
+		 * their orders, while the guest cannot observe a
+		 * difference when issuing other orders from two
+		 * different VCPUs.
+		 */
+		if (kvm_s390_is_stop_irq_pending(dst_vcpu) ||
+		    kvm_s390_is_restart_irq_pending(dst_vcpu))
+			return SIGP_CC_BUSY;
+	}
+
 	switch (order_code) {
 	case SIGP_SENSE:
 		vcpu->stat.instruction_sigp_sense++;
@@ -464,9 +480,9 @@
 	struct kvm_vcpu *dest_vcpu;
 	u8 order_code = kvm_s390_get_base_disp_rs(vcpu, NULL);
 
-	trace_kvm_s390_handle_sigp_pei(vcpu, order_code, cpu_addr);
-
 	if (order_code == SIGP_EXTERNAL_CALL) {
+		trace_kvm_s390_handle_sigp_pei(vcpu, order_code, cpu_addr);
+
 		dest_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr);
 		BUG_ON(dest_vcpu == NULL);
 
--- linux-ein-5.4.0.orig/arch/s390/kvm/vsie.c
+++ linux-ein-5.4.0/arch/s390/kvm/vsie.c
@@ -168,7 +168,8 @@
 			    sizeof(struct kvm_s390_apcb0)))
 		return -EFAULT;
 
-	bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb0));
+	bitmap_and(apcb_s, apcb_s, apcb_h,
+		   BITS_PER_BYTE * sizeof(struct kvm_s390_apcb0));
 
 	return 0;
 }
@@ -190,7 +191,8 @@
 			    sizeof(struct kvm_s390_apcb1)))
 		return -EFAULT;
 
-	bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb1));
+	bitmap_and(apcb_s, apcb_s, apcb_h,
+		   BITS_PER_BYTE * sizeof(struct kvm_s390_apcb1));
 
 	return 0;
 }
@@ -540,14 +542,17 @@
 	if (test_kvm_cpu_feat(vcpu->kvm, KVM_S390_VM_CPU_FEAT_CEI))
 		scb_s->eca |= scb_o->eca & ECA_CEI;
 	/* Epoch Extension */
-	if (test_kvm_facility(vcpu->kvm, 139))
+	if (test_kvm_facility(vcpu->kvm, 139)) {
 		scb_s->ecd |= scb_o->ecd & ECD_MEF;
+		scb_s->epdx = scb_o->epdx;
+	}
 
 	/* etoken */
 	if (test_kvm_facility(vcpu->kvm, 156))
 		scb_s->ecd |= scb_o->ecd & ECD_ETOKENF;
 
 	scb_s->hpid = HPID_VSIE;
+	scb_s->cpnc = scb_o->cpnc;
 
 	prepare_ibc(vcpu, vsie_page);
 	rc = shadow_crycb(vcpu, vsie_page);
@@ -1202,6 +1207,7 @@
 		scb_s->iprcc = PGM_ADDRESSING;
 		scb_s->pgmilc = 4;
 		scb_s->gpsw.addr = __rewind_psw(scb_s->gpsw, 4);
+		rc = 1;
 	}
 	return rc;
 }
--- linux-ein-5.4.0.orig/arch/s390/lib/string.c
+++ linux-ein-5.4.0/arch/s390/lib/string.c
@@ -246,14 +246,13 @@
 #ifdef __HAVE_ARCH_STRRCHR
 char *strrchr(const char *s, int c)
 {
-       size_t len = __strend(s) - s;
+	ssize_t len = __strend(s) - s;
 
-       if (len)
-	       do {
-		       if (s[len] == (char) c)
-			       return (char *) s + len;
-	       } while (--len > 0);
-       return NULL;
+	do {
+		if (s[len] == (char)c)
+			return (char *)s + len;
+	} while (--len >= 0);
+	return NULL;
 }
 EXPORT_SYMBOL(strrchr);
 #endif
--- linux-ein-5.4.0.orig/arch/s390/lib/uaccess.c
+++ linux-ein-5.4.0/arch/s390/lib/uaccess.c
@@ -64,10 +64,13 @@
 {
 	mm_segment_t old_fs;
 	unsigned long asce, cr;
+	unsigned long flags;
 
 	old_fs = current->thread.mm_segment;
 	if (old_fs & 1)
 		return old_fs;
+	/* protect against a concurrent page table upgrade */
+	local_irq_save(flags);
 	current->thread.mm_segment |= 1;
 	asce = S390_lowcore.kernel_asce;
 	if (likely(old_fs == USER_DS)) {
@@ -83,6 +86,7 @@
 		__ctl_load(asce, 7, 7);
 		set_cpu_flag(CIF_ASCE_SECONDARY);
 	}
+	local_irq_restore(flags);
 	return old_fs;
 }
 EXPORT_SYMBOL(enable_sacf_uaccess);
@@ -98,10 +102,16 @@
 EXPORT_SYMBOL(disable_sacf_uaccess);
 
 static inline unsigned long copy_from_user_mvcos(void *x, const void __user *ptr,
-						 unsigned long size)
+						 unsigned long size, unsigned long key)
 {
-	register unsigned long reg0 asm("0") = 0x01UL;
 	unsigned long tmp1, tmp2;
+	union oac spec = {
+		.oac2.key = key,
+		.oac2.as = PSW_BITS_AS_PRIMARY,
+		.oac2.k = 1,
+		.oac2.a = 1,
+	};
+	register unsigned long reg0 asm("0") = spec.val;
 
 	tmp1 = -4096UL;
 	asm volatile(
@@ -128,7 +138,7 @@
 }
 
 static inline unsigned long copy_from_user_mvcp(void *x, const void __user *ptr,
-						unsigned long size)
+						unsigned long size, unsigned long key)
 {
 	unsigned long tmp1, tmp2;
 	mm_segment_t old_fs;
@@ -137,12 +147,12 @@
 	tmp1 = -256UL;
 	asm volatile(
 		"   sacf  0\n"
-		"0: mvcp  0(%0,%2),0(%1),%3\n"
+		"0: mvcp  0(%0,%2),0(%1),%[key]\n"
 		"7: jz    5f\n"
 		"1: algr  %0,%3\n"
 		"   la    %1,256(%1)\n"
 		"   la    %2,256(%2)\n"
-		"2: mvcp  0(%0,%2),0(%1),%3\n"
+		"2: mvcp  0(%0,%2),0(%1),%[key]\n"
 		"8: jnz   1b\n"
 		"   j     5f\n"
 		"3: la    %4,255(%1)\n"	/* %4 = ptr + 255 */
@@ -151,7 +161,7 @@
 		"   slgr  %4,%1\n"
 		"   clgr  %0,%4\n"	/* copy crosses next page boundary? */
 		"   jnh   6f\n"
-		"4: mvcp  0(%4,%2),0(%1),%3\n"
+		"4: mvcp  0(%4,%2),0(%1),%[key]\n"
 		"9: slgr  %0,%4\n"
 		"   j     6f\n"
 		"5: slgr  %0,%0\n"
@@ -159,24 +169,53 @@
 		EX_TABLE(0b,3b) EX_TABLE(2b,3b) EX_TABLE(4b,6b)
 		EX_TABLE(7b,3b) EX_TABLE(8b,3b) EX_TABLE(9b,6b)
 		: "+a" (size), "+a" (ptr), "+a" (x), "+a" (tmp1), "=a" (tmp2)
-		: : "cc", "memory");
+		: [key] "d" (key << 4)
+		: "cc", "memory");
 	disable_sacf_uaccess(old_fs);
 	return size;
 }
 
-unsigned long raw_copy_from_user(void *to, const void __user *from, unsigned long n)
+static unsigned long raw_copy_from_user_key(void *to, const void __user *from,
+					    unsigned long n, unsigned long key)
 {
 	if (copy_with_mvcos())
-		return copy_from_user_mvcos(to, from, n);
-	return copy_from_user_mvcp(to, from, n);
+		return copy_from_user_mvcos(to, from, n, key);
+	return copy_from_user_mvcp(to, from, n, key);
+}
+
+unsigned long raw_copy_from_user(void *to, const void __user *from, unsigned long n)
+{
+	return raw_copy_from_user_key(to, from, n, 0);
 }
 EXPORT_SYMBOL(raw_copy_from_user);
 
+unsigned long _copy_from_user_key(void *to, const void __user *from,
+				  unsigned long n, unsigned long key)
+{
+	unsigned long res = n;
+
+	might_fault();
+	if (likely(access_ok(from, n))) {
+		kasan_check_write(to, n);
+		res = raw_copy_from_user_key(to, from, n, key);
+	}
+	if (unlikely(res))
+		memset(to + (n - res), 0, res);
+	return res;
+}
+EXPORT_SYMBOL(_copy_from_user_key);
+
 static inline unsigned long copy_to_user_mvcos(void __user *ptr, const void *x,
-					       unsigned long size)
+					       unsigned long size, unsigned long key)
 {
-	register unsigned long reg0 asm("0") = 0x010000UL;
 	unsigned long tmp1, tmp2;
+	union oac spec = {
+		.oac1.key = key,
+		.oac1.as = PSW_BITS_AS_PRIMARY,
+		.oac1.k = 1,
+		.oac1.a = 1,
+	};
+	register unsigned long reg0 asm("0") = spec.val;
 
 	tmp1 = -4096UL;
 	asm volatile(
@@ -203,7 +242,7 @@
 }
 
 static inline unsigned long copy_to_user_mvcs(void __user *ptr, const void *x,
-					      unsigned long size)
+					      unsigned long size, unsigned long key)
 {
 	unsigned long tmp1, tmp2;
 	mm_segment_t old_fs;
@@ -212,12 +251,12 @@
 	tmp1 = -256UL;
 	asm volatile(
 		"   sacf  0\n"
-		"0: mvcs  0(%0,%1),0(%2),%3\n"
+		"0: mvcs  0(%0,%1),0(%2),%[key]\n"
 		"7: jz    5f\n"
 		"1: algr  %0,%3\n"
 		"   la    %1,256(%1)\n"
 		"   la    %2,256(%2)\n"
-		"2: mvcs  0(%0,%1),0(%2),%3\n"
+		"2: mvcs  0(%0,%1),0(%2),%[key]\n"
 		"8: jnz   1b\n"
 		"   j     5f\n"
 		"3: la    %4,255(%1)\n" /* %4 = ptr + 255 */
@@ -226,7 +265,7 @@
 		"   slgr  %4,%1\n"
 		"   clgr  %0,%4\n"	/* copy crosses next page boundary? */
 		"   jnh   6f\n"
-		"4: mvcs  0(%4,%1),0(%2),%3\n"
+		"4: mvcs  0(%4,%1),0(%2),%[key]\n"
 		"9: slgr  %0,%4\n"
 		"   j     6f\n"
 		"5: slgr  %0,%0\n"
@@ -234,24 +273,49 @@
 		EX_TABLE(0b,3b) EX_TABLE(2b,3b) EX_TABLE(4b,6b)
 		EX_TABLE(7b,3b) EX_TABLE(8b,3b) EX_TABLE(9b,6b)
 		: "+a" (size), "+a" (ptr), "+a" (x), "+a" (tmp1), "=a" (tmp2)
-		: : "cc", "memory");
+		: [key] "d" (key << 4)
+		: "cc", "memory");
 	disable_sacf_uaccess(old_fs);
 	return size;
 }
 
-unsigned long raw_copy_to_user(void __user *to, const void *from, unsigned long n)
+static unsigned long raw_copy_to_user_key(void __user *to, const void *from,
+					  unsigned long n, unsigned long key)
 {
 	if (copy_with_mvcos())
-		return copy_to_user_mvcos(to, from, n);
-	return copy_to_user_mvcs(to, from, n);
+		return copy_to_user_mvcos(to, from, n, key);
+	return copy_to_user_mvcs(to, from, n, key);
+}
+
+unsigned long raw_copy_to_user(void __user *to, const void *from, unsigned long n)
+{
+	return raw_copy_to_user_key(to, from, n, 0);
 }
 EXPORT_SYMBOL(raw_copy_to_user);
 
+unsigned long _copy_to_user_key(void __user *to, const void *from,
+				unsigned long n, unsigned long key)
+{
+	might_fault();
+	if (access_ok(to, n)) {
+		kasan_check_read(from, n);
+		n = raw_copy_to_user_key(to, from, n, key);
+	}
+	return n;
+}
+EXPORT_SYMBOL(_copy_to_user_key);
+
 static inline unsigned long copy_in_user_mvcos(void __user *to, const void __user *from,
 					       unsigned long size)
 {
-	register unsigned long reg0 asm("0") = 0x010001UL;
 	unsigned long tmp1, tmp2;
+	union oac spec = {
+		.oac1.as = PSW_BITS_AS_PRIMARY,
+		.oac1.a = 1,
+		.oac2.as = PSW_BITS_AS_PRIMARY,
+		.oac2.a = 1,
+	};
+	register unsigned long reg0 asm("0") = spec.val;
 
 	tmp1 = -4096UL;
 	/* FIXME: copy with reduced length. */
@@ -314,8 +378,12 @@
 
 static inline unsigned long clear_user_mvcos(void __user *to, unsigned long size)
 {
-	register unsigned long reg0 asm("0") = 0x010000UL;
 	unsigned long tmp1, tmp2;
+	union oac spec = {
+		.oac1.as = PSW_BITS_AS_PRIMARY,
+		.oac1.a = 1,
+	};
+	register unsigned long reg0 asm("0") = spec.val;
 
 	tmp1 = -4096UL;
 	asm volatile(
@@ -335,7 +403,7 @@
 		"4: slgr  %0,%0\n"
 		"5:\n"
 		EX_TABLE(0b,2b) EX_TABLE(3b,5b)
-		: "+a" (size), "+a" (to), "+a" (tmp1), "=a" (tmp2)
+		: "+&a" (size), "+&a" (to), "+a" (tmp1), "=&a" (tmp2)
 		: "a" (empty_zero_page), "d" (reg0) : "cc", "memory");
 	return size;
 }
--- linux-ein-5.4.0.orig/arch/s390/mm/fault.c
+++ linux-ein-5.4.0/arch/s390/mm/fault.c
@@ -38,6 +38,7 @@
 #include <asm/irq.h>
 #include <asm/mmu_context.h>
 #include <asm/facility.h>
+#include <asm/uv.h>
 #include "../kernel/entry.h"
 
 #define __FAIL_ADDR_MASK -4096L
@@ -432,7 +433,9 @@
 	flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	if (user_mode(regs))
 		flags |= FAULT_FLAG_USER;
-	if (access == VM_WRITE || (trans_exc_code & store_indication) == 0x400)
+	if ((trans_exc_code & store_indication) == 0x400)
+		access = VM_WRITE;
+	if (access == VM_WRITE)
 		flags |= FAULT_FLAG_WRITE;
 	down_read(&mm->mmap_sem);
 
@@ -816,3 +819,80 @@
 early_initcall(pfault_irq_init);
 
 #endif /* CONFIG_PFAULT */
+
+#if IS_ENABLED(CONFIG_PGSTE)
+void do_secure_storage_access(struct pt_regs *regs)
+{
+	unsigned long addr = regs->int_parm_long & __FAIL_ADDR_MASK;
+	struct vm_area_struct *vma;
+	struct mm_struct *mm;
+	struct page *page;
+	int rc;
+
+	switch (get_fault_type(regs)) {
+	case USER_FAULT:
+		mm = current->mm;
+		down_read(&mm->mmap_sem);
+		vma = find_vma(mm, addr);
+		if (!vma) {
+			up_read(&mm->mmap_sem);
+			do_fault_error(regs, VM_READ | VM_WRITE, VM_FAULT_BADMAP);
+			break;
+		}
+		page = follow_page(vma, addr, FOLL_WRITE | FOLL_GET);
+		if (IS_ERR_OR_NULL(page)) {
+			up_read(&mm->mmap_sem);
+			break;
+		}
+		if (arch_make_page_accessible(page))
+			send_sig(SIGSEGV, current, 0);
+		put_page(page);
+		up_read(&mm->mmap_sem);
+		break;
+	case KERNEL_FAULT:
+		page = phys_to_page(addr);
+		if (unlikely(!try_get_page(page)))
+			break;
+		rc = arch_make_page_accessible(page);
+		put_page(page);
+		if (rc)
+			BUG();
+		break;
+	case VDSO_FAULT:
+		/* fallthrough */
+	case GMAP_FAULT:
+		/* fallthrough */
+	default:
+		do_fault_error(regs, VM_READ | VM_WRITE, VM_FAULT_BADMAP);
+		WARN_ON_ONCE(1);
+	}
+}
+NOKPROBE_SYMBOL(do_secure_storage_access);
+
+void do_non_secure_storage_access(struct pt_regs *regs)
+{
+	unsigned long gaddr = regs->int_parm_long & __FAIL_ADDR_MASK;
+	struct gmap *gmap = (struct gmap *)S390_lowcore.gmap;
+
+	if (get_fault_type(regs) != GMAP_FAULT) {
+		do_fault_error(regs, VM_READ | VM_WRITE, VM_FAULT_BADMAP);
+		WARN_ON_ONCE(1);
+		return;
+	}
+
+	if (gmap_convert_to_secure(gmap, gaddr) == -EINVAL)
+		send_sig(SIGSEGV, current, 0);
+}
+NOKPROBE_SYMBOL(do_non_secure_storage_access);
+
+#else
+void do_secure_storage_access(struct pt_regs *regs)
+{
+	default_trap_handler(regs);
+}
+
+void do_non_secure_storage_access(struct pt_regs *regs)
+{
+	default_trap_handler(regs);
+}
+#endif
--- linux-ein-5.4.0.orig/arch/s390/mm/gmap.c
+++ linux-ein-5.4.0/arch/s390/mm/gmap.c
@@ -684,9 +684,10 @@
 		vmaddr |= gaddr & ~PMD_MASK;
 		/* Get pointer to the page table entry */
 		ptep = get_locked_pte(gmap->mm, vmaddr, &ptl);
-		if (likely(ptep))
+		if (likely(ptep)) {
 			ptep_zap_unused(gmap->mm, vmaddr, ptep, 0);
-		pte_unmap_unlock(ptep, ptl);
+			pte_unmap_unlock(ptep, ptl);
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(__gmap_zap);
@@ -787,14 +788,18 @@
 static inline unsigned long *gmap_table_walk(struct gmap *gmap,
 					     unsigned long gaddr, int level)
 {
+	const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
 	unsigned long *table;
 
 	if ((gmap->asce & _ASCE_TYPE_MASK) + 4 < (level * 4))
 		return NULL;
 	if (gmap_is_shadow(gmap) && gmap->removed)
 		return NULL;
-	if (gaddr & (-1UL << (31 + ((gmap->asce & _ASCE_TYPE_MASK) >> 2)*11)))
+
+	if (asce_type != _ASCE_TYPE_REGION1 &&
+	    gaddr & (-1UL << (31 + (asce_type >> 2) * 11)))
 		return NULL;
+
 	table = gmap->table;
 	switch (gmap->asce & _ASCE_TYPE_MASK) {
 	case _ASCE_TYPE_REGION1:
@@ -1173,6 +1178,7 @@
 static inline void gmap_insert_rmap(struct gmap *sg, unsigned long vmaddr,
 				    struct gmap_rmap *rmap)
 {
+	struct gmap_rmap *temp;
 	void __rcu **slot;
 
 	BUG_ON(!gmap_is_shadow(sg));
@@ -1180,6 +1186,12 @@
 	if (slot) {
 		rmap->next = radix_tree_deref_slot_protected(slot,
 							&sg->guest_table_lock);
+		for (temp = rmap->next; temp; temp = temp->next) {
+			if (temp->raddr == rmap->raddr) {
+				kfree(rmap);
+				return;
+			}
+		}
 		radix_tree_replace_slot(&sg->host_to_rmap, slot, rmap);
 	} else {
 		rmap->next = NULL;
@@ -1840,6 +1852,7 @@
 		goto out_free;
 	} else if (*table & _REGION_ENTRY_ORIGIN) {
 		rc = -EAGAIN;		/* Race with shadow */
+		goto out_free;
 	}
 	crst_table_init(s_r3t, _REGION3_ENTRY_EMPTY);
 	/* mark as invalid as long as the parent table is not protected */
@@ -2480,23 +2493,36 @@
 }
 EXPORT_SYMBOL_GPL(gmap_sync_dirty_log_pmd);
 
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+static int thp_split_walk_pmd_entry(pmd_t *pmd, unsigned long addr,
+				    unsigned long end, struct mm_walk *walk)
+{
+	struct vm_area_struct *vma = walk->vma;
+
+	split_huge_pmd(vma, pmd, addr);
+	return 0;
+}
+
+static const struct mm_walk_ops thp_split_walk_ops = {
+	.pmd_entry	= thp_split_walk_pmd_entry,
+};
+
 static inline void thp_split_mm(struct mm_struct *mm)
 {
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
 	struct vm_area_struct *vma;
-	unsigned long addr;
 
 	for (vma = mm->mmap; vma != NULL; vma = vma->vm_next) {
-		for (addr = vma->vm_start;
-		     addr < vma->vm_end;
-		     addr += PAGE_SIZE)
-			follow_page(vma, addr, FOLL_SPLIT);
 		vma->vm_flags &= ~VM_HUGEPAGE;
 		vma->vm_flags |= VM_NOHUGEPAGE;
+		walk_page_vma(vma, &thp_split_walk_ops, NULL);
 	}
 	mm->def_flags |= VM_NOHUGEPAGE;
-#endif
 }
+#else
+static inline void thp_split_mm(struct mm_struct *mm)
+{
+}
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
 
 /*
  * Remove all empty zero pages from the mapping for lazy refaulting
@@ -2548,6 +2574,22 @@
 }
 EXPORT_SYMBOL_GPL(s390_enable_sie);
 
+int gmap_mark_unmergeable(void)
+{
+	struct mm_struct *mm = current->mm;
+	struct vm_area_struct *vma;
+
+	for (vma = mm->mmap; vma; vma = vma->vm_next) {
+		if (ksm_madvise(vma, vma->vm_start, vma->vm_end,
+				MADV_UNMERGEABLE, &vma->vm_flags)) {
+			return -ENOMEM;
+		}
+	}
+	mm->def_flags &= ~VM_MERGEABLE;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(gmap_mark_unmergeable);
+
 /*
  * Enable storage key handling from now on and initialize the storage
  * keys with the default key.
@@ -2560,6 +2602,18 @@
 	return 0;
 }
 
+/*
+ * Give a chance to schedule after setting a key to 256 pages.
+ * We only hold the mm lock, which is a rwsem and the kvm srcu.
+ * Both can sleep.
+ */
+static int __s390_enable_skey_pmd(pmd_t *pmd, unsigned long addr,
+				  unsigned long next, struct mm_walk *walk)
+{
+	cond_resched();
+	return 0;
+}
+
 static int __s390_enable_skey_hugetlb(pte_t *pte, unsigned long addr,
 				      unsigned long hmask, unsigned long next,
 				      struct mm_walk *walk)
@@ -2582,18 +2636,19 @@
 	end = start + HPAGE_SIZE - 1;
 	__storage_key_init_range(start, end);
 	set_bit(PG_arch_1, &page->flags);
+	cond_resched();
 	return 0;
 }
 
 static const struct mm_walk_ops enable_skey_walk_ops = {
 	.hugetlb_entry		= __s390_enable_skey_hugetlb,
 	.pte_entry		= __s390_enable_skey_pte,
+	.pmd_entry		= __s390_enable_skey_pmd,
 };
 
 int s390_enable_skey(void)
 {
 	struct mm_struct *mm = current->mm;
-	struct vm_area_struct *vma;
 	int rc = 0;
 
 	down_write(&mm->mmap_sem);
@@ -2601,16 +2656,11 @@
 		goto out_up;
 
 	mm->context.uses_skeys = 1;
-	for (vma = mm->mmap; vma; vma = vma->vm_next) {
-		if (ksm_madvise(vma, vma->vm_start, vma->vm_end,
-				MADV_UNMERGEABLE, &vma->vm_flags)) {
-			mm->context.uses_skeys = 0;
-			rc = -ENOMEM;
-			goto out_up;
-		}
+	rc = gmap_mark_unmergeable();
+	if (rc) {
+		mm->context.uses_skeys = 0;
+		goto out_up;
 	}
-	mm->def_flags &= ~VM_MERGEABLE;
-
 	walk_page_range(mm, 0, TASK_SIZE, &enable_skey_walk_ops, NULL);
 
 out_up:
@@ -2640,3 +2690,38 @@
 	up_write(&mm->mmap_sem);
 }
 EXPORT_SYMBOL_GPL(s390_reset_cmma);
+
+/*
+ * make inaccessible pages accessible again
+ */
+static int __s390_reset_acc(pte_t *ptep, unsigned long addr,
+			    unsigned long next, struct mm_walk *walk)
+{
+	pte_t pte = READ_ONCE(*ptep);
+
+	if (pte_present(pte))
+		WARN_ON_ONCE(uv_convert_from_secure(pte_val(pte) & PAGE_MASK));
+	return 0;
+}
+
+static const struct mm_walk_ops reset_acc_walk_ops = {
+	.pte_entry		= __s390_reset_acc,
+};
+
+#include <linux/sched/mm.h>
+void s390_reset_acc(struct mm_struct *mm)
+{
+	/*
+	 * we might be called during
+	 * reset:                             we walk the pages and clear
+	 * close of all kvm file descriptors: we walk the pages and clear
+	 * exit of process on fd closure:     vma already gone, do nothing
+	 */
+	if (!mmget_not_zero(mm))
+		return;
+	down_read(&mm->mmap_sem);
+	walk_page_range(mm, 0, TASK_SIZE, &reset_acc_walk_ops, NULL);
+	up_read(&mm->mmap_sem);
+	mmput(mm);
+}
+EXPORT_SYMBOL_GPL(s390_reset_acc);
--- linux-ein-5.4.0.orig/arch/s390/mm/hugetlbpage.c
+++ linux-ein-5.4.0/arch/s390/mm/hugetlbpage.c
@@ -2,7 +2,7 @@
 /*
  *  IBM System z Huge TLB Page Support for Kernel.
  *
- *    Copyright IBM Corp. 2007,2016
+ *    Copyright IBM Corp. 2007,2020
  *    Author(s): Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
@@ -11,6 +11,9 @@
 
 #include <linux/mm.h>
 #include <linux/hugetlb.h>
+#include <linux/mman.h>
+#include <linux/sched/mm.h>
+#include <linux/security.h>
 
 /*
  * If the bit selected by single-bit bitmask "a" is set within "x", move
@@ -114,7 +117,7 @@
 					     _PAGE_YOUNG);
 #ifdef CONFIG_MEM_SOFT_DIRTY
 		pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_SOFT_DIRTY,
-					     _PAGE_DIRTY);
+					     _PAGE_SOFT_DIRTY);
 #endif
 		pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_NOEXEC,
 					     _PAGE_NOEXEC);
@@ -156,10 +159,13 @@
 		rste &= ~_SEGMENT_ENTRY_NOEXEC;
 
 	/* Set correct table type for 2G hugepages */
-	if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3)
-		rste |= _REGION_ENTRY_TYPE_R3 | _REGION3_ENTRY_LARGE;
-	else
+	if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) {
+		if (likely(pte_present(pte)))
+			rste |= _REGION3_ENTRY_LARGE;
+		rste |= _REGION_ENTRY_TYPE_R3;
+	} else if (likely(pte_present(pte)))
 		rste |= _SEGMENT_ENTRY_LARGE;
+
 	clear_huge_pte_skeys(mm, rste);
 	pte_val(*ptep) = rste;
 }
@@ -267,3 +273,98 @@
 	return 1;
 }
 __setup("hugepagesz=", setup_hugepagesz);
+
+static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
+		unsigned long addr, unsigned long len,
+		unsigned long pgoff, unsigned long flags)
+{
+	struct hstate *h = hstate_file(file);
+	struct vm_unmapped_area_info info;
+
+	info.flags = 0;
+	info.length = len;
+	info.low_limit = current->mm->mmap_base;
+	info.high_limit = TASK_SIZE;
+	info.align_mask = PAGE_MASK & ~huge_page_mask(h);
+	info.align_offset = 0;
+	return vm_unmapped_area(&info);
+}
+
+static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
+		unsigned long addr0, unsigned long len,
+		unsigned long pgoff, unsigned long flags)
+{
+	struct hstate *h = hstate_file(file);
+	struct vm_unmapped_area_info info;
+	unsigned long addr;
+
+	info.flags = VM_UNMAPPED_AREA_TOPDOWN;
+	info.length = len;
+	info.low_limit = max(PAGE_SIZE, mmap_min_addr);
+	info.high_limit = current->mm->mmap_base;
+	info.align_mask = PAGE_MASK & ~huge_page_mask(h);
+	info.align_offset = 0;
+	addr = vm_unmapped_area(&info);
+
+	/*
+	 * A failed mmap() very likely causes application failure,
+	 * so fall back to the bottom-up function here. This scenario
+	 * can happen with large stack limits and large mmap()
+	 * allocations.
+	 */
+	if (addr & ~PAGE_MASK) {
+		VM_BUG_ON(addr != -ENOMEM);
+		info.flags = 0;
+		info.low_limit = TASK_UNMAPPED_BASE;
+		info.high_limit = TASK_SIZE;
+		addr = vm_unmapped_area(&info);
+	}
+
+	return addr;
+}
+
+unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+		unsigned long len, unsigned long pgoff, unsigned long flags)
+{
+	struct hstate *h = hstate_file(file);
+	struct mm_struct *mm = current->mm;
+	struct vm_area_struct *vma;
+	int rc;
+
+	if (len & ~huge_page_mask(h))
+		return -EINVAL;
+	if (len > TASK_SIZE - mmap_min_addr)
+		return -ENOMEM;
+
+	if (flags & MAP_FIXED) {
+		if (prepare_hugepage_range(file, addr, len))
+			return -EINVAL;
+		goto check_asce_limit;
+	}
+
+	if (addr) {
+		addr = ALIGN(addr, huge_page_size(h));
+		vma = find_vma(mm, addr);
+		if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
+		    (!vma || addr + len <= vm_start_gap(vma)))
+			goto check_asce_limit;
+	}
+
+	if (mm->get_unmapped_area == arch_get_unmapped_area)
+		addr = hugetlb_get_unmapped_area_bottomup(file, addr, len,
+				pgoff, flags);
+	else
+		addr = hugetlb_get_unmapped_area_topdown(file, addr, len,
+				pgoff, flags);
+	if (addr & ~PAGE_MASK)
+		return addr;
+
+check_asce_limit:
+	if (addr + len > current->mm->context.asce_limit &&
+	    addr + len <= TASK_SIZE) {
+		rc = crst_table_upgrade(mm, addr + len);
+		if (rc)
+			return (unsigned long) rc;
+	}
+	return addr;
+}
--- linux-ein-5.4.0.orig/arch/s390/mm/init.c
+++ linux-ein-5.4.0/arch/s390/mm/init.c
@@ -168,9 +168,9 @@
 		return;
 
 	/* make sure bounce buffers are shared */
+	swiotlb_force = SWIOTLB_FORCE;
 	swiotlb_init(1);
 	swiotlb_update_mem_attributes();
-	swiotlb_force = SWIOTLB_FORCE;
 }
 
 void __init mem_init(void)
@@ -291,10 +291,8 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 	vmem_remove_mapping(start, size);
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
--- linux-ein-5.4.0.orig/arch/s390/mm/kasan_init.c
+++ linux-ein-5.4.0/arch/s390/mm/kasan_init.c
@@ -101,6 +101,9 @@
 	pgt_prot = pgprot_val(PAGE_KERNEL_EXEC);
 	sgt_prot = pgprot_val(SEGMENT_KERNEL_EXEC);
 
+	/*
+	 * The first 1MB of 1:1 mapping is mapped with 4KB pages
+	 */
 	while (address < end) {
 		pg_dir = pgd_offset_k(address);
 		if (pgd_none(*pg_dir)) {
@@ -146,30 +149,26 @@
 
 		pm_dir = pmd_offset(pu_dir, address);
 		if (pmd_none(*pm_dir)) {
-			if (mode == POPULATE_ZERO_SHADOW &&
-			    IS_ALIGNED(address, PMD_SIZE) &&
+			if (IS_ALIGNED(address, PMD_SIZE) &&
 			    end - address >= PMD_SIZE) {
-				pmd_populate(&init_mm, pm_dir,
-						kasan_early_shadow_pte);
-				address = (address + PMD_SIZE) & PMD_MASK;
-				continue;
-			}
-			/* the first megabyte of 1:1 is mapped with 4k pages */
-			if (has_edat && address && end - address >= PMD_SIZE &&
-			    mode != POPULATE_ZERO_SHADOW) {
-				void *page;
-
-				if (mode == POPULATE_ONE2ONE) {
-					page = (void *)address;
-				} else {
-					page = kasan_early_alloc_segment();
-					memset(page, 0, _SEGMENT_SIZE);
+				if (mode == POPULATE_ZERO_SHADOW) {
+					pmd_populate(&init_mm, pm_dir, kasan_early_shadow_pte);
+					address = (address + PMD_SIZE) & PMD_MASK;
+					continue;
+				} else if (has_edat && address) {
+					void *page;
+
+					if (mode == POPULATE_ONE2ONE) {
+						page = (void *)address;
+					} else {
+						page = kasan_early_alloc_segment();
+						memset(page, 0, _SEGMENT_SIZE);
+					}
+					pmd_val(*pm_dir) = __pa(page) | sgt_prot;
+					address = (address + PMD_SIZE) & PMD_MASK;
+					continue;
 				}
-				pmd_val(*pm_dir) = __pa(page) | sgt_prot;
-				address = (address + PMD_SIZE) & PMD_MASK;
-				continue;
 			}
-
 			pt_dir = kasan_early_pte_alloc();
 			pmd_populate(&init_mm, pm_dir, pt_dir);
 		} else if (pmd_large(*pm_dir)) {
--- linux-ein-5.4.0.orig/arch/s390/mm/maccess.c
+++ linux-ein-5.4.0/arch/s390/mm/maccess.c
@@ -55,22 +55,29 @@
  */
 static DEFINE_SPINLOCK(s390_kernel_write_lock);
 
-void notrace s390_kernel_write(void *dst, const void *src, size_t size)
+notrace void *s390_kernel_write(void *dst, const void *src, size_t size)
 {
+	void *tmp = dst;
 	unsigned long flags;
 	long copied;
 
 	spin_lock_irqsave(&s390_kernel_write_lock, flags);
-	while (size) {
-		copied = s390_kernel_write_odd(dst, src, size);
-		dst += copied;
-		src += copied;
-		size -= copied;
+	if (!(flags & PSW_MASK_DAT)) {
+		memcpy(dst, src, size);
+	} else {
+		while (size) {
+			copied = s390_kernel_write_odd(tmp, src, size);
+			tmp += copied;
+			src += copied;
+			size -= copied;
+		}
 	}
 	spin_unlock_irqrestore(&s390_kernel_write_lock, flags);
+
+	return dst;
 }
 
-static int __memcpy_real(void *dest, void *src, size_t count)
+static int __no_sanitize_address __memcpy_real(void *dest, void *src, size_t count)
 {
 	register unsigned long _dest asm("2") = (unsigned long) dest;
 	register unsigned long _len1 asm("3") = (unsigned long) count;
@@ -91,19 +98,23 @@
 	return rc;
 }
 
-static unsigned long _memcpy_real(unsigned long dest, unsigned long src,
-				  unsigned long count)
+static unsigned long __no_sanitize_address _memcpy_real(unsigned long dest,
+							unsigned long src,
+							unsigned long count)
 {
 	int irqs_disabled, rc;
 	unsigned long flags;
 
 	if (!count)
 		return 0;
-	flags = __arch_local_irq_stnsm(0xf8UL);
+	flags = arch_local_irq_save();
 	irqs_disabled = arch_irqs_disabled_flags(flags);
 	if (!irqs_disabled)
 		trace_hardirqs_off();
+	__arch_local_irq_stnsm(0xf8); // disable DAT
 	rc = __memcpy_real((void *) dest, (void *) src, (size_t) count);
+	if (flags & PSW_MASK_DAT)
+		__arch_local_irq_stosm(0x04); // enable DAT
 	if (!irqs_disabled)
 		trace_hardirqs_on();
 	__arch_local_irq_ssm(flags);
@@ -115,9 +126,15 @@
  */
 int memcpy_real(void *dest, void *src, size_t count)
 {
-	if (S390_lowcore.nodat_stack != 0)
-		return CALL_ON_STACK(_memcpy_real, S390_lowcore.nodat_stack,
-				     3, dest, src, count);
+	int rc;
+
+	if (S390_lowcore.nodat_stack != 0) {
+		preempt_disable();
+		rc = CALL_ON_STACK(_memcpy_real, S390_lowcore.nodat_stack, 3,
+				   dest, src, count);
+		preempt_enable();
+		return rc;
+	}
 	/*
 	 * This is a really early memcpy_real call, the stacks are
 	 * not set up yet. Just call _memcpy_real on the early boot
--- linux-ein-5.4.0.orig/arch/s390/mm/pgalloc.c
+++ linux-ein-5.4.0/arch/s390/mm/pgalloc.c
@@ -70,8 +70,20 @@
 {
 	struct mm_struct *mm = arg;
 
-	if (current->active_mm == mm)
-		set_user_asce(mm);
+	/* we must change all active ASCEs to avoid the creation of new TLBs */
+	if (current->active_mm == mm) {
+		S390_lowcore.user_asce = mm->context.asce;
+		if (current->thread.mm_segment == USER_DS) {
+			__ctl_load(S390_lowcore.user_asce, 1, 1);
+			/* Mark user-ASCE present in CR1 */
+			clear_cpu_flag(CIF_ASCE_PRIMARY);
+		}
+		if (current->thread.mm_segment == USER_DS_SACF) {
+			__ctl_load(S390_lowcore.user_asce, 7, 7);
+			/* enable_sacf_uaccess does all or nothing */
+			WARN_ON(!test_cpu_flag(CIF_ASCE_SECONDARY));
+		}
+	}
 	__tlb_flush_local();
 }
 
@@ -243,13 +255,15 @@
 		/* Free 2K page table fragment of a 4K page */
 		bit = (__pa(table) & ~PAGE_MASK)/(PTRS_PER_PTE*sizeof(pte_t));
 		spin_lock_bh(&mm->context.lock);
-		mask = atomic_xor_bits(&page->_refcount, 1U << (bit + 24));
+		mask = atomic_xor_bits(&page->_refcount, 0x11U << (bit + 24));
 		mask >>= 24;
 		if (mask & 3)
 			list_add(&page->lru, &mm->context.pgtable_list);
 		else
 			list_del(&page->lru);
 		spin_unlock_bh(&mm->context.lock);
+		mask = atomic_xor_bits(&page->_refcount, 0x10U << (bit + 24));
+		mask >>= 24;
 		if (mask != 0)
 			return;
 	} else {
--- linux-ein-5.4.0.orig/arch/s390/mm/pgtable.c
+++ linux-ein-5.4.0/arch/s390/mm/pgtable.c
@@ -716,7 +716,7 @@
 	pgste_val(pgste) |= PGSTE_GR_BIT | PGSTE_GC_BIT;
 	ptev = pte_val(*ptep);
 	if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE))
-		page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1);
+		page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 0);
 	pgste_set_unlock(ptep, pgste);
 	preempt_enable();
 }
@@ -970,6 +970,7 @@
 int pgste_perform_essa(struct mm_struct *mm, unsigned long hva, int orc,
 			unsigned long *oldpte, unsigned long *oldpgste)
 {
+	struct vm_area_struct *vma;
 	unsigned long pgstev;
 	spinlock_t *ptl;
 	pgste_t pgste;
@@ -979,6 +980,10 @@
 	WARN_ON_ONCE(orc > ESSA_MAX);
 	if (unlikely(orc > ESSA_MAX))
 		return -EINVAL;
+
+	vma = find_vma(mm, hva);
+	if (!vma || hva < vma->vm_start || is_vm_hugetlb_page(vma))
+		return -EFAULT;
 	ptep = get_locked_pte(mm, hva, &ptl);
 	if (unlikely(!ptep))
 		return -EFAULT;
@@ -1071,10 +1076,14 @@
 int set_pgste_bits(struct mm_struct *mm, unsigned long hva,
 			unsigned long bits, unsigned long value)
 {
+	struct vm_area_struct *vma;
 	spinlock_t *ptl;
 	pgste_t new;
 	pte_t *ptep;
 
+	vma = find_vma(mm, hva);
+	if (!vma || hva < vma->vm_start || is_vm_hugetlb_page(vma))
+		return -EFAULT;
 	ptep = get_locked_pte(mm, hva, &ptl);
 	if (unlikely(!ptep))
 		return -EFAULT;
@@ -1099,9 +1108,13 @@
  */
 int get_pgste(struct mm_struct *mm, unsigned long hva, unsigned long *pgstep)
 {
+	struct vm_area_struct *vma;
 	spinlock_t *ptl;
 	pte_t *ptep;
 
+	vma = find_vma(mm, hva);
+	if (!vma || hva < vma->vm_start || is_vm_hugetlb_page(vma))
+		return -EFAULT;
 	ptep = get_locked_pte(mm, hva, &ptl);
 	if (unlikely(!ptep))
 		return -EFAULT;
--- linux-ein-5.4.0.orig/arch/s390/mm/vmem.c
+++ linux-ein-5.4.0/arch/s390/mm/vmem.c
@@ -415,6 +415,10 @@
 		     SET_MEMORY_RO | SET_MEMORY_X);
 	__set_memory(__stext_dma, (__etext_dma - __stext_dma) >> PAGE_SHIFT,
 		     SET_MEMORY_RO | SET_MEMORY_X);
+
+	/* we need lowcore executable for our LPSWE instructions */
+	set_memory_x(0, 1);
+
 	pr_info("Write protected kernel read-only data: %luk\n",
 		(unsigned long)(__end_rodata - _stext) >> 10);
 }
--- linux-ein-5.4.0.orig/arch/s390/net/bpf_jit_comp.c
+++ linux-ein-5.4.0/arch/s390/net/bpf_jit_comp.c
@@ -23,6 +23,7 @@
 #include <linux/filter.h>
 #include <linux/init.h>
 #include <linux/bpf.h>
+#include <linux/mm.h>
 #include <asm/cacheflush.h>
 #include <asm/dis.h>
 #include <asm/facility.h>
@@ -113,7 +114,7 @@
 {
 	u32 r1 = reg2hex[b1];
 
-	if (!jit->seen_reg[r1] && r1 >= 6 && r1 <= 15)
+	if (r1 >= 6 && r1 <= 15 && !jit->seen_reg[r1])
 		jit->seen_reg[r1] = 1;
 }
 
@@ -568,10 +569,10 @@
 		EMIT4(0xb9080000, dst_reg, src_reg);
 		break;
 	case BPF_ALU | BPF_ADD | BPF_K: /* dst = (u32) dst + (u32) imm */
-		if (!imm)
-			break;
-		/* alfi %dst,imm */
-		EMIT6_IMM(0xc20b0000, dst_reg, imm);
+		if (imm != 0) {
+			/* alfi %dst,imm */
+			EMIT6_IMM(0xc20b0000, dst_reg, imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_ADD | BPF_K: /* dst = dst + imm */
@@ -593,17 +594,22 @@
 		EMIT4(0xb9090000, dst_reg, src_reg);
 		break;
 	case BPF_ALU | BPF_SUB | BPF_K: /* dst = (u32) dst - (u32) imm */
-		if (!imm)
-			break;
-		/* alfi %dst,-imm */
-		EMIT6_IMM(0xc20b0000, dst_reg, -imm);
+		if (imm != 0) {
+			/* alfi %dst,-imm */
+			EMIT6_IMM(0xc20b0000, dst_reg, -imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_SUB | BPF_K: /* dst = dst - imm */
 		if (!imm)
 			break;
-		/* agfi %dst,-imm */
-		EMIT6_IMM(0xc2080000, dst_reg, -imm);
+		if (imm == -0x80000000) {
+			/* algfi %dst,0x80000000 */
+			EMIT6_IMM(0xc20a0000, dst_reg, 0x80000000);
+		} else {
+			/* agfi %dst,-imm */
+			EMIT6_IMM(0xc2080000, dst_reg, -imm);
+		}
 		break;
 	/*
 	 * BPF_MUL
@@ -618,10 +624,10 @@
 		EMIT4(0xb90c0000, dst_reg, src_reg);
 		break;
 	case BPF_ALU | BPF_MUL | BPF_K: /* dst = (u32) dst * (u32) imm */
-		if (imm == 1)
-			break;
-		/* msfi %r5,imm */
-		EMIT6_IMM(0xc2010000, dst_reg, imm);
+		if (imm != 1) {
+			/* msfi %r5,imm */
+			EMIT6_IMM(0xc2010000, dst_reg, imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_MUL | BPF_K: /* dst = dst * imm */
@@ -674,6 +680,8 @@
 			if (BPF_OP(insn->code) == BPF_MOD)
 				/* lhgi %dst,0 */
 				EMIT4_IMM(0xa7090000, dst_reg, 0);
+			else
+				EMIT_ZERO(dst_reg);
 			break;
 		}
 		/* lhi %w0,0 */
@@ -768,10 +776,10 @@
 		EMIT4(0xb9820000, dst_reg, src_reg);
 		break;
 	case BPF_ALU | BPF_XOR | BPF_K: /* dst = (u32) dst ^ (u32) imm */
-		if (!imm)
-			break;
-		/* xilf %dst,imm */
-		EMIT6_IMM(0xc0070000, dst_reg, imm);
+		if (imm != 0) {
+			/* xilf %dst,imm */
+			EMIT6_IMM(0xc0070000, dst_reg, imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_XOR | BPF_K: /* dst = dst ^ imm */
@@ -792,10 +800,10 @@
 		EMIT6_DISP_LH(0xeb000000, 0x000d, dst_reg, dst_reg, src_reg, 0);
 		break;
 	case BPF_ALU | BPF_LSH | BPF_K: /* dst = (u32) dst << (u32) imm */
-		if (imm == 0)
-			break;
-		/* sll %dst,imm(%r0) */
-		EMIT4_DISP(0x89000000, dst_reg, REG_0, imm);
+		if (imm != 0) {
+			/* sll %dst,imm(%r0) */
+			EMIT4_DISP(0x89000000, dst_reg, REG_0, imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_LSH | BPF_K: /* dst = dst << imm */
@@ -817,10 +825,10 @@
 		EMIT6_DISP_LH(0xeb000000, 0x000c, dst_reg, dst_reg, src_reg, 0);
 		break;
 	case BPF_ALU | BPF_RSH | BPF_K: /* dst = (u32) dst >> (u32) imm */
-		if (imm == 0)
-			break;
-		/* srl %dst,imm(%r0) */
-		EMIT4_DISP(0x88000000, dst_reg, REG_0, imm);
+		if (imm != 0) {
+			/* srl %dst,imm(%r0) */
+			EMIT4_DISP(0x88000000, dst_reg, REG_0, imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_RSH | BPF_K: /* dst = dst >> imm */
@@ -842,10 +850,10 @@
 		EMIT6_DISP_LH(0xeb000000, 0x000a, dst_reg, dst_reg, src_reg, 0);
 		break;
 	case BPF_ALU | BPF_ARSH | BPF_K: /* ((s32) dst >> imm */
-		if (imm == 0)
-			break;
-		/* sra %dst,imm(%r0) */
-		EMIT4_DISP(0x8a000000, dst_reg, REG_0, imm);
+		if (imm != 0) {
+			/* sra %dst,imm(%r0) */
+			EMIT4_DISP(0x8a000000, dst_reg, REG_0, imm);
+		}
 		EMIT_ZERO(dst_reg);
 		break;
 	case BPF_ALU64 | BPF_ARSH | BPF_K: /* ((s64) dst) >>= imm */
@@ -913,6 +921,11 @@
 		}
 		break;
 	/*
+	 * BPF_NOSPEC (speculation barrier)
+	 */
+	case BPF_ST | BPF_NOSPEC:
+		break;
+	/*
 	 * BPF_ST(X)
 	 */
 	case BPF_STX | BPF_MEM | BPF_B: /* *(u8 *)(dst + off) = src_reg */
@@ -1369,10 +1382,10 @@
 	}
 
 	memset(&jit, 0, sizeof(jit));
-	jit.addrs = kcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL);
+	jit.addrs = kvcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL);
 	if (jit.addrs == NULL) {
 		fp = orig_fp;
-		goto out;
+		goto free_addrs;
 	}
 	/*
 	 * Three initial passes:
@@ -1422,7 +1435,7 @@
 	if (!fp->is_func || extra_pass) {
 		bpf_prog_fill_jited_linfo(fp, jit.addrs + 1);
 free_addrs:
-		kfree(jit.addrs);
+		kvfree(jit.addrs);
 		kfree(jit_data);
 		fp->aux->jit_data = NULL;
 	}
--- linux-ein-5.4.0.orig/arch/s390/numa/numa.c
+++ linux-ein-5.4.0/arch/s390/numa/numa.c
@@ -49,12 +49,6 @@
 		mode->update_cpu_topology();
 }
 
-int __node_distance(int a, int b)
-{
-	return mode->distance ? mode->distance(a, b) : 0;
-}
-EXPORT_SYMBOL(__node_distance);
-
 int numa_debug_enabled;
 
 /*
--- linux-ein-5.4.0.orig/arch/s390/pci/Makefile
+++ linux-ein-5.4.0/arch/s390/pci/Makefile
@@ -4,4 +4,5 @@
 #
 
 obj-$(CONFIG_PCI)	+= pci.o pci_irq.o pci_dma.o pci_clp.o pci_sysfs.o \
-			   pci_event.o pci_debug.o pci_insn.o pci_mmio.o
+			   pci_event.o pci_debug.o pci_insn.o pci_mmio.o \
+			   pci_bus.o
--- linux-ein-5.4.0.orig/arch/s390/pci/pci.c
+++ linux-ein-5.4.0/arch/s390/pci/pci.c
@@ -35,17 +35,21 @@
 #include <asm/pci_clp.h>
 #include <asm/pci_dma.h>
 
+#include "pci_bus.h"
+
 /* list of all detected zpci devices */
 static LIST_HEAD(zpci_list);
 static DEFINE_SPINLOCK(zpci_list_lock);
 
-static DECLARE_BITMAP(zpci_domain, ZPCI_NR_DEVICES);
+static DECLARE_BITMAP(zpci_domain, ZPCI_DOMAIN_BITMAP_SIZE);
 static DEFINE_SPINLOCK(zpci_domain_lock);
 
 #define ZPCI_IOMAP_ENTRIES						\
 	min(((unsigned long) ZPCI_NR_DEVICES * PCI_BAR_COUNT / 2),	\
 	    ZPCI_IOMAP_MAX_ENTRIES)
 
+unsigned int s390_pci_no_rid;
+
 static DEFINE_SPINLOCK(zpci_iomap_lock);
 static unsigned long *zpci_iomap_bitmap;
 struct zpci_iomap_entry *zpci_iomap_start;
@@ -86,17 +90,12 @@
 	spin_unlock(&zpci_list_lock);
 
 	list_for_each_entry_safe(zdev, tmp, &remove, entry)
-		zpci_remove_device(zdev);
-}
-
-static struct zpci_dev *get_zdev_by_bus(struct pci_bus *bus)
-{
-	return (bus && bus->sysdata) ? (struct zpci_dev *) bus->sysdata : NULL;
+		zpci_device_reserved(zdev);
 }
 
 int pci_domain_nr(struct pci_bus *bus)
 {
-	return ((struct zpci_dev *) bus->sysdata)->domain;
+	return ((struct zpci_bus *) bus->sysdata)->domain_nr;
 }
 EXPORT_SYMBOL_GPL(pci_domain_nr);
 
@@ -371,29 +370,17 @@
 static int pci_read(struct pci_bus *bus, unsigned int devfn, int where,
 		    int size, u32 *val)
 {
-	struct zpci_dev *zdev = get_zdev_by_bus(bus);
-	int ret;
+	struct zpci_dev *zdev = get_zdev_by_bus(bus, devfn);
 
-	if (!zdev || devfn != ZPCI_DEVFN)
-		ret = -ENODEV;
-	else
-		ret = zpci_cfg_load(zdev, where, val, size);
-
-	return ret;
+	return (zdev) ? zpci_cfg_load(zdev, where, val, size) : -ENODEV;
 }
 
 static int pci_write(struct pci_bus *bus, unsigned int devfn, int where,
 		     int size, u32 val)
 {
-	struct zpci_dev *zdev = get_zdev_by_bus(bus);
-	int ret;
+	struct zpci_dev *zdev = get_zdev_by_bus(bus, devfn);
 
-	if (!zdev || devfn != ZPCI_DEVFN)
-		ret = -ENODEV;
-	else
-		ret = zpci_cfg_store(zdev, where, val, size);
-
-	return ret;
+	return (zdev) ? zpci_cfg_store(zdev, where, val, size) : -ENODEV;
 }
 
 static struct pci_ops pci_root_ops = {
@@ -423,7 +410,7 @@
 
 		if (zpci_use_mio(zdev))
 			pdev->resource[i].start =
-				(resource_size_t __force) zdev->bars[i].mio_wb;
+				(resource_size_t __force) zdev->bars[i].mio_wt;
 		else
 			pdev->resource[i].start = (resource_size_t __force)
 				pci_iomap_range_fh(pdev, i, 0, 0);
@@ -504,15 +491,15 @@
 	return r;
 }
 
-static int zpci_setup_bus_resources(struct zpci_dev *zdev,
-				    struct list_head *resources)
+int zpci_setup_bus_resources(struct zpci_dev *zdev,
+			     struct list_head *resources)
 {
 	unsigned long addr, size, flags;
 	struct resource *res;
 	int i, entry;
 
 	snprintf(zdev->res_name, sizeof(zdev->res_name),
-		 "PCI Bus %04x:%02x", zdev->domain, ZPCI_BUS_NR);
+		 "PCI Bus %04x:%02x", zdev->uid, ZPCI_BUS_NR);
 
 	for (i = 0; i < PCI_BAR_COUNT; i++) {
 		if (!zdev->bars[i].size)
@@ -530,7 +517,7 @@
 			flags |= IORESOURCE_MEM_64;
 
 		if (zpci_use_mio(zdev))
-			addr = (unsigned long) zdev->bars[i].mio_wb;
+			addr = (unsigned long) zdev->bars[i].mio_wt;
 		else
 			addr = ZPCI_ADDR(entry);
 		size = 1UL << zdev->bars[i].size;
@@ -563,9 +550,12 @@
 
 int pcibios_add_device(struct pci_dev *pdev)
 {
+	struct zpci_dev *zdev = to_zpci(pdev);
 	struct resource *res;
 	int i;
 
+	/* The pdev has a reference to the zdev via its bus */
+	zpci_zdev_get(zdev);
 	if (pdev->is_physfn)
 		pdev->no_vf_scan = 1;
 
@@ -585,7 +575,10 @@
 
 void pcibios_release_device(struct pci_dev *pdev)
 {
+	struct zpci_dev *zdev = to_zpci(pdev);
+
 	zpci_unmap_resources(pdev);
+	zpci_zdev_put(zdev);
 }
 
 int pcibios_enable_device(struct pci_dev *pdev, int mask)
@@ -649,86 +642,54 @@
 };
 #endif /* CONFIG_HIBERNATE_CALLBACKS */
 
-static int zpci_alloc_domain(struct zpci_dev *zdev)
+static int __zpci_register_domain(int domain)
 {
-	if (zpci_unique_uid) {
-		zdev->domain = (u16) zdev->uid;
-		if (zdev->domain >= ZPCI_NR_DEVICES)
-			return 0;
-
-		spin_lock(&zpci_domain_lock);
-		if (test_bit(zdev->domain, zpci_domain)) {
-			spin_unlock(&zpci_domain_lock);
-			return -EEXIST;
-		}
-		set_bit(zdev->domain, zpci_domain);
-		spin_unlock(&zpci_domain_lock);
-		return 0;
-	}
-
 	spin_lock(&zpci_domain_lock);
-	zdev->domain = find_first_zero_bit(zpci_domain, ZPCI_NR_DEVICES);
-	if (zdev->domain == ZPCI_NR_DEVICES) {
+	if (test_bit(domain, zpci_domain)) {
 		spin_unlock(&zpci_domain_lock);
-		return -ENOSPC;
+		pr_err("Domain %04x is already assigned\n", domain);
+		return -EEXIST;
 	}
-	set_bit(zdev->domain, zpci_domain);
+	set_bit(domain, zpci_domain);
 	spin_unlock(&zpci_domain_lock);
-	return 0;
+	return domain;
 }
 
-static void zpci_free_domain(struct zpci_dev *zdev)
+static int __zpci_alloc_domain(void)
 {
-	if (zdev->domain >= ZPCI_NR_DEVICES)
-		return;
+	int domain;
 
 	spin_lock(&zpci_domain_lock);
-	clear_bit(zdev->domain, zpci_domain);
+	/*
+	 * We can always auto allocate domains below ZPCI_NR_DEVICES.
+	 * There is either a free domain or we have reached the maximum in
+	 * which case we would have bailed earlier.
+	 */
+	domain = find_first_zero_bit(zpci_domain, ZPCI_NR_DEVICES);
+	set_bit(domain, zpci_domain);
 	spin_unlock(&zpci_domain_lock);
+	return domain;
 }
 
-void pcibios_remove_bus(struct pci_bus *bus)
+int zpci_alloc_domain(int domain)
 {
-	struct zpci_dev *zdev = get_zdev_by_bus(bus);
-
-	zpci_exit_slot(zdev);
-	zpci_cleanup_bus_resources(zdev);
-	zpci_destroy_iommu(zdev);
-	zpci_free_domain(zdev);
-
-	spin_lock(&zpci_list_lock);
-	list_del(&zdev->entry);
-	spin_unlock(&zpci_list_lock);
-
-	zpci_dbg(3, "rem fid:%x\n", zdev->fid);
-	kfree(zdev);
+	if (zpci_unique_uid) {
+		if (domain)
+			return __zpci_register_domain(domain);
+		pr_warn("UID checking was active but no UID is provided: switching to automatic domain allocation\n");
+		update_uid_checking(false);
+	}
+	return __zpci_alloc_domain();
 }
 
-static int zpci_scan_bus(struct zpci_dev *zdev)
+void zpci_free_domain(int domain)
 {
-	LIST_HEAD(resources);
-	int ret;
-
-	ret = zpci_setup_bus_resources(zdev, &resources);
-	if (ret)
-		goto error;
-
-	zdev->bus = pci_scan_root_bus(NULL, ZPCI_BUS_NR, &pci_root_ops,
-				      zdev, &resources);
-	if (!zdev->bus) {
-		ret = -EIO;
-		goto error;
-	}
-	zdev->bus->max_bus_speed = zdev->max_bus_speed;
-	pci_bus_add_devices(zdev->bus);
-	return 0;
-
-error:
-	zpci_cleanup_bus_resources(zdev);
-	pci_free_resource_list(&resources);
-	return ret;
+	spin_lock(&zpci_domain_lock);
+	clear_bit(domain, zpci_domain);
+	spin_unlock(&zpci_domain_lock);
 }
 
+
 int zpci_enable_device(struct zpci_dev *zdev)
 {
 	int rc;
@@ -754,21 +715,68 @@
 int zpci_disable_device(struct zpci_dev *zdev)
 {
 	zpci_dma_exit_device(zdev);
+	/*
+	 * The zPCI function may already be disabled by the platform, this is
+	 * detected in clp_disable_fh() which becomes a no-op.
+	 */
 	return clp_disable_fh(zdev);
 }
 EXPORT_SYMBOL_GPL(zpci_disable_device);
 
+bool zpci_is_device_configured(struct zpci_dev *zdev)
+{
+	enum zpci_state state = zdev->state;
+
+	return state != ZPCI_FN_STATE_RESERVED &&
+		state != ZPCI_FN_STATE_STANDBY;
+}
+
+/* zpci_remove_device - Removes the given zdev from the PCI core
+ * @zdev: the zdev to be removed from the PCI core
+ * @set_error: if true the device's error state is set to permanent failure
+ *
+ * Sets a zPCI device to a configured but offline state; the zPCI
+ * device is still accessible through its hotplug slot and the zPCI
+ * API but is removed from the common code PCI bus, making it
+ * no longer available to drivers.
+ */
+void zpci_remove_device(struct zpci_dev *zdev, bool set_error)
+{
+	struct zpci_bus *zbus = zdev->zbus;
+	struct pci_dev *pdev;
+
+	if (!zdev->zbus->bus)
+		return;
+
+	pdev = pci_get_slot(zbus->bus, zdev->devfn);
+	if (pdev) {
+		if (set_error)
+			pdev->error_state = pci_channel_io_perm_failure;
+		if (pdev->is_virtfn) {
+			zpci_remove_virtfn(pdev, zdev->vfn);
+			/* balance pci_get_slot */
+			pci_dev_put(pdev);
+			return;
+		}
+		pci_stop_and_remove_bus_device_locked(pdev);
+		/* balance pci_get_slot */
+		pci_dev_put(pdev);
+	}
+}
+
 int zpci_create_device(struct zpci_dev *zdev)
 {
 	int rc;
 
-	rc = zpci_alloc_domain(zdev);
-	if (rc)
-		goto out;
+	kref_init(&zdev->kref);
+
+	spin_lock(&zpci_list_lock);
+	list_add_tail(&zdev->entry, &zpci_list);
+	spin_unlock(&zpci_list_lock);
 
 	rc = zpci_init_iommu(zdev);
 	if (rc)
-		goto out_free;
+		goto out;
 
 	mutex_init(&zdev->lock);
 	if (zdev->state == ZPCI_FN_STATE_CONFIGURED) {
@@ -776,36 +784,81 @@
 		if (rc)
 			goto out_destroy_iommu;
 	}
-	rc = zpci_scan_bus(zdev);
+
+	rc = zpci_bus_device_register(zdev, &pci_root_ops);
 	if (rc)
 		goto out_disable;
 
-	spin_lock(&zpci_list_lock);
-	list_add_tail(&zdev->entry, &zpci_list);
-	spin_unlock(&zpci_list_lock);
-
-	zpci_init_slot(zdev);
-
 	return 0;
 
 out_disable:
 	if (zdev->state == ZPCI_FN_STATE_ONLINE)
 		zpci_disable_device(zdev);
+
 out_destroy_iommu:
 	zpci_destroy_iommu(zdev);
-out_free:
-	zpci_free_domain(zdev);
 out:
+	spin_lock(&zpci_list_lock);
+	list_del(&zdev->entry);
+	spin_unlock(&zpci_list_lock);
 	return rc;
 }
 
-void zpci_remove_device(struct zpci_dev *zdev)
+/**
+ * zpci_device_reserved() - Mark device as resverved
+ * @zdev: the zpci_dev that was reserved
+ *
+ * Handle the case that a given zPCI function was reserved by another system.
+ * After a call to this function the zpci_dev can not be found via
+ * get_zdev_by_fid() anymore but may still be accessible via existing
+ * references though it will not be functional anymore.
+ */
+void zpci_device_reserved(struct zpci_dev *zdev)
+{
+	if (zdev->has_hp_slot)
+		zpci_exit_slot(zdev);
+	/*
+	 * Remove device from zpci_list as it is going away. This also
+	 * makes sure we ignore subsequent zPCI events for this device.
+	 */
+	spin_lock(&zpci_list_lock);
+	list_del(&zdev->entry);
+	spin_unlock(&zpci_list_lock);
+	zdev->state = ZPCI_FN_STATE_RESERVED;
+	zpci_dbg(3, "rsv fid:%x\n", zdev->fid);
+	zpci_zdev_put(zdev);
+}
+
+void zpci_release_device(struct kref *kref)
 {
-	if (!zdev->bus)
-		return;
+	struct zpci_dev *zdev = container_of(kref, struct zpci_dev, kref);
 
-	pci_stop_root_bus(zdev->bus);
-	pci_remove_root_bus(zdev->bus);
+	if (zdev->zbus->bus)
+		zpci_remove_device(zdev, false);
+
+	switch (zdev->state) {
+	case ZPCI_FN_STATE_ONLINE:
+	case ZPCI_FN_STATE_CONFIGURED:
+		zpci_disable_device(zdev);
+		fallthrough;
+	case ZPCI_FN_STATE_STANDBY:
+		if (zdev->has_hp_slot)
+			zpci_exit_slot(zdev);
+		spin_lock(&zpci_list_lock);
+		list_del(&zdev->entry);
+		spin_unlock(&zpci_list_lock);
+		zpci_dbg(3, "rsv fid:%x\n", zdev->fid);
+		fallthrough;
+	case ZPCI_FN_STATE_RESERVED:
+		zpci_cleanup_bus_resources(zdev);
+		zpci_bus_device_unregister(zdev);
+		zpci_destroy_iommu(zdev);
+		fallthrough;
+	default:
+		break;
+	}
+	zpci_dbg(3, "rem fid:%x\n", zdev->fid);
+	kfree(zdev);
 }
 
 int zpci_report_error(struct pci_dev *pdev,
@@ -854,7 +907,6 @@
 }
 
 static unsigned int s390_pci_probe __initdata = 1;
-static unsigned int s390_pci_no_mio __initdata;
 unsigned int s390_pci_force_floating __initdata;
 static unsigned int s390_pci_initialized;
 
@@ -865,13 +917,17 @@
 		return NULL;
 	}
 	if (!strcmp(str, "nomio")) {
-		s390_pci_no_mio = 1;
+		S390_lowcore.machine_flags &= ~MACHINE_FLAG_PCI_MIO;
 		return NULL;
 	}
 	if (!strcmp(str, "force_floating")) {
 		s390_pci_force_floating = 1;
 		return NULL;
 	}
+	if (!strcmp(str, "norid")) {
+		s390_pci_no_rid = 1;
+		return NULL;
+	}
 	return str;
 }
 
@@ -890,7 +946,7 @@
 	if (!test_facility(69) || !test_facility(71))
 		return 0;
 
-	if (test_facility(153) && !s390_pci_no_mio) {
+	if (MACHINE_HAS_PCI_MIO) {
 		static_branch_enable(&have_mio);
 		ctl_set_bit(2, 5);
 	}
@@ -934,5 +990,5 @@
 void zpci_rescan(void)
 {
 	if (zpci_is_enabled())
-		clp_rescan_pci_devices_simple();
+		clp_rescan_pci_devices_simple(NULL);
 }
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_bus.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_bus.c
@@ -0,0 +1,332 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright IBM Corp. 2020
+ *
+ * Author(s):
+ *   Pierre Morel <pmorel@linux.ibm.com>
+ *
+ */
+
+#define KMSG_COMPONENT "zpci"
+#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/err.h>
+#include <linux/export.h>
+#include <linux/delay.h>
+#include <linux/seq_file.h>
+#include <linux/jump_label.h>
+#include <linux/pci.h>
+#include <linux/printk.h>
+
+#include <asm/pci_clp.h>
+#include <asm/pci_dma.h>
+
+#include "pci_bus.h"
+
+static LIST_HEAD(zbus_list);
+static DEFINE_SPINLOCK(zbus_list_lock);
+static int zpci_nb_devices;
+
+/* zpci_bus_scan
+ * @zbus: the zbus holding the zdevices
+ * @ops: the pci operations
+ *
+ * The domain number must be set before pci_scan_root_bus is called.
+ * This function can be called once the domain is known, hence
+ * when the function_0 is dicovered.
+ */
+static int zpci_bus_scan(struct zpci_bus *zbus, int domain, struct pci_ops *ops)
+{
+	struct pci_bus *bus;
+	int rc;
+
+	rc = zpci_alloc_domain(domain);
+	if (rc < 0)
+		return rc;
+	zbus->domain_nr = rc;
+
+	bus = pci_scan_root_bus(NULL, ZPCI_BUS_NR, ops, zbus, &zbus->resources);
+	if (!bus) {
+		zpci_free_domain(zbus->domain_nr);
+		return -EFAULT;
+	}
+
+	zbus->bus = bus;
+	pci_bus_add_devices(bus);
+	return 0;
+}
+
+static void zpci_bus_release(struct kref *kref)
+{
+	struct zpci_bus *zbus = container_of(kref, struct zpci_bus, kref);
+
+	if (zbus->bus) {
+		pci_lock_rescan_remove();
+		pci_stop_root_bus(zbus->bus);
+
+		zpci_free_domain(zbus->domain_nr);
+		pci_free_resource_list(&zbus->resources);
+
+		pci_remove_root_bus(zbus->bus);
+		pci_unlock_rescan_remove();
+	}
+
+	spin_lock(&zbus_list_lock);
+	list_del(&zbus->bus_next);
+	spin_unlock(&zbus_list_lock);
+	kfree(zbus);
+}
+
+static void zpci_bus_put(struct zpci_bus *zbus)
+{
+	kref_put(&zbus->kref, zpci_bus_release);
+}
+
+static struct zpci_bus *zpci_bus_get(int pchid)
+{
+	struct zpci_bus *zbus;
+
+	spin_lock(&zbus_list_lock);
+	list_for_each_entry(zbus, &zbus_list, bus_next) {
+		if (pchid == zbus->pchid) {
+			kref_get(&zbus->kref);
+			goto out_unlock;
+		}
+	}
+	zbus = NULL;
+out_unlock:
+	spin_unlock(&zbus_list_lock);
+	return zbus;
+}
+
+static struct zpci_bus *zpci_bus_alloc(int pchid)
+{
+	struct zpci_bus *zbus;
+
+	zbus = kzalloc(sizeof(*zbus), GFP_KERNEL);
+	if (!zbus)
+		return NULL;
+
+	zbus->pchid = pchid;
+	INIT_LIST_HEAD(&zbus->bus_next);
+	spin_lock(&zbus_list_lock);
+	list_add_tail(&zbus->bus_next, &zbus_list);
+	spin_unlock(&zbus_list_lock);
+
+	kref_init(&zbus->kref);
+	INIT_LIST_HEAD(&zbus->resources);
+
+	return zbus;
+}
+
+#ifdef CONFIG_PCI_IOV
+static int zpci_bus_link_virtfn(struct pci_dev *pdev,
+		struct pci_dev *virtfn, int vfid)
+{
+	int rc;
+
+	rc = pci_iov_sysfs_link(pdev, virtfn, vfid);
+	if (rc)
+		return rc;
+
+	virtfn->is_virtfn = 1;
+	virtfn->multifunction = 0;
+	virtfn->physfn = pci_dev_get(pdev);
+
+	return 0;
+}
+
+static int zpci_bus_setup_virtfn(struct zpci_bus *zbus,
+		struct pci_dev *virtfn, int vfn)
+{
+	int i, cand_devfn;
+	struct zpci_dev *zdev;
+	struct pci_dev *pdev;
+	int vfid = vfn - 1; /* Linux' vfid's start at 0 vfn at 1*/
+	int rc = 0;
+
+	if (!zbus->multifunction)
+		return 0;
+
+	/* If the parent PF for the given VF is also configured in the
+	 * instance, it must be on the same zbus.
+	 * We can then identify the parent PF by checking what
+	 * devfn the VF would have if it belonged to that PF using the PF's
+	 * stride and offset. Only if this candidate devfn matches the
+	 * actual devfn will we link both functions.
+	 */
+	for (i = 0; i < ZPCI_FUNCTIONS_PER_BUS; i++) {
+		zdev = zbus->function[i];
+		if (zdev && zdev->is_physfn) {
+			pdev = pci_get_slot(zbus->bus, zdev->devfn);
+			if (!pdev)
+				continue;
+			cand_devfn = pci_iov_virtfn_devfn(pdev, vfid);
+			if (cand_devfn == virtfn->devfn) {
+				rc = zpci_bus_link_virtfn(pdev, virtfn, vfid);
+				/* balance pci_get_slot() */
+				pci_dev_put(pdev);
+				break;
+			}
+			/* balance pci_get_slot() */
+			pci_dev_put(pdev);
+		}
+	}
+	return rc;
+}
+#else
+static inline int zpci_bus_setup_virtfn(struct zpci_bus *zbus,
+		struct pci_dev *virtfn, int vfn)
+{
+	return 0;
+}
+#endif
+
+void pcibios_bus_add_device(struct pci_dev *pdev)
+{
+	struct zpci_dev *zdev = to_zpci(pdev);
+
+	/*
+	 * With pdev->no_vf_scan the common PCI probing code does not
+	 * perform PF/VF linking.
+	 */
+	if (zdev->vfn) {
+		zpci_bus_setup_virtfn(zdev->zbus, pdev, zdev->vfn);
+		pdev->no_command_memory = 1;
+	}
+}
+
+static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev)
+{
+	struct pci_bus *bus;
+	struct resource_entry *window, *n;
+	struct resource *res;
+	struct pci_dev *pdev;
+	int rc;
+
+	bus = zbus->bus;
+	if (!bus)
+		return -EINVAL;
+
+	pdev = pci_get_slot(bus, zdev->devfn);
+	if (pdev) {
+		/* Device is already known. */
+		pci_dev_put(pdev);
+		return 0;
+	}
+
+	rc = zpci_init_slot(zdev);
+	if (rc)
+		return rc;
+	zdev->has_hp_slot = 1;
+
+	resource_list_for_each_entry_safe(window, n, &zbus->resources) {
+		res = window->res;
+		pci_bus_add_resource(bus, res, 0);
+	}
+
+	pdev = pci_scan_single_device(bus, zdev->devfn);
+	if (pdev)
+		pci_bus_add_device(pdev);
+
+	return 0;
+}
+
+static void zpci_bus_add_devices(struct zpci_bus *zbus)
+{
+	int i;
+
+	for (i = 1; i < ZPCI_FUNCTIONS_PER_BUS; i++)
+		if (zbus->function[i])
+			zpci_bus_add_device(zbus, zbus->function[i]);
+
+	pci_lock_rescan_remove();
+	pci_bus_add_devices(zbus->bus);
+	pci_unlock_rescan_remove();
+}
+
+int zpci_bus_device_register(struct zpci_dev *zdev, struct pci_ops *ops)
+{
+	struct zpci_bus *zbus = NULL;
+	int rc = -EBADF;
+
+	if (zpci_nb_devices == ZPCI_NR_DEVICES) {
+		pr_warn("Adding PCI function %08x failed because the configured limit of %d is reached\n",
+			zdev->fid, ZPCI_NR_DEVICES);
+		return -ENOSPC;
+	}
+	zpci_nb_devices++;
+
+	if (zdev->devfn >= ZPCI_FUNCTIONS_PER_BUS)
+		return -EINVAL;
+
+	if (!s390_pci_no_rid && zdev->rid_available)
+		zbus = zpci_bus_get(zdev->pchid);
+
+	if (!zbus) {
+		zbus = zpci_bus_alloc(zdev->pchid);
+		if (!zbus)
+			return -ENOMEM;
+	}
+
+	zdev->zbus = zbus;
+	if (zbus->function[zdev->devfn]) {
+		pr_err("devfn %04x is already assigned\n", zdev->devfn);
+		goto error; /* rc already set */
+	}
+	zbus->function[zdev->devfn] = zdev;
+
+	zpci_setup_bus_resources(zdev, &zbus->resources);
+
+	if (zbus->bus) {
+		if (!zbus->multifunction) {
+			WARN_ONCE(1, "zbus is not multifunction\n");
+			goto error_bus;
+		}
+		if (!zdev->rid_available) {
+			WARN_ONCE(1, "rid_available not set for multifunction\n");
+			goto error_bus;
+		}
+		rc = zpci_bus_add_device(zbus, zdev);
+		if (rc)
+			goto error_bus;
+	} else if (zdev->devfn == 0) {
+		if (zbus->multifunction && !zdev->rid_available) {
+			WARN_ONCE(1, "rid_available not set on function 0 for multifunction\n");
+			goto error_bus;
+		}
+		rc = zpci_bus_scan(zbus, (u16)zdev->uid, ops);
+		if (rc)
+			goto error_bus;
+		zpci_bus_add_devices(zbus);
+		rc = zpci_init_slot(zdev);
+		if (rc)
+			goto error_bus;
+		zdev->has_hp_slot = 1;
+		zbus->multifunction = zdev->rid_available;
+		zbus->max_bus_speed = zdev->max_bus_speed;
+	} else {
+		zbus->multifunction = 1;
+	}
+
+	return 0;
+
+error_bus:
+	zpci_nb_devices--;
+	zbus->function[zdev->devfn] = NULL;
+error:
+	pr_err("Adding PCI function %08x failed\n", zdev->fid);
+	zpci_bus_put(zbus);
+	return rc;
+}
+
+void zpci_bus_device_unregister(struct zpci_dev *zdev)
+{
+	struct zpci_bus *zbus = zdev->zbus;
+
+	zpci_nb_devices--;
+	zbus->function[zdev->devfn] = NULL;
+	zpci_bus_put(zbus);
+}
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_bus.h
+++ linux-ein-5.4.0/arch/s390/pci/pci_bus.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright IBM Corp. 2020
+ *
+ * Author(s):
+ *   Pierre Morel <pmorel@linux.ibm.com>
+ *
+ */
+
+int zpci_bus_device_register(struct zpci_dev *zdev, struct pci_ops *ops);
+void zpci_bus_device_unregister(struct zpci_dev *zdev);
+int zpci_bus_init(void);
+
+void zpci_release_device(struct kref *kref);
+static inline void zpci_zdev_put(struct zpci_dev *zdev)
+{
+	kref_put(&zdev->kref, zpci_release_device);
+}
+
+static inline void zpci_zdev_get(struct zpci_dev *zdev)
+{
+	kref_get(&zdev->kref);
+}
+
+int zpci_alloc_domain(int domain);
+void zpci_free_domain(int domain);
+int zpci_setup_bus_resources(struct zpci_dev *zdev,
+			     struct list_head *resources);
+
+static inline struct zpci_dev *get_zdev_by_bus(struct pci_bus *bus,
+					       unsigned int devfn)
+{
+	struct zpci_bus *zbus = bus->sysdata;
+
+	return (devfn >= ZPCI_FUNCTIONS_PER_BUS) ? NULL : zbus->function[devfn];
+}
+
+#ifdef CONFIG_PCI_IOV
+static inline void zpci_remove_virtfn(struct pci_dev *pdev, int vfn)
+{
+
+	pci_lock_rescan_remove();
+	/* Linux' vfid's start at 0 vfn at 1 */
+	pci_iov_remove_virtfn(pdev->physfn, vfn - 1);
+	pci_unlock_rescan_remove();
+}
+#else /* CONFIG_PCI_IOV */
+static inline void zpci_remove_virtfn(struct pci_dev *pdev, int vfn) {}
+#endif /* CONFIG_PCI_IOV */
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_clp.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_clp.c
@@ -24,7 +24,7 @@
 
 bool zpci_unique_uid;
 
-static void update_uid_checking(bool new)
+void update_uid_checking(bool new)
 {
 	if (zpci_unique_uid != new)
 		zpci_dbg(1, "uid checking:%d\n", new);
@@ -155,8 +155,13 @@
 	zdev->pfgid = response->pfgid;
 	zdev->pft = response->pft;
 	zdev->vfn = response->vfn;
+	zdev->port = response->port;
 	zdev->uid = response->uid;
 	zdev->fmb_length = sizeof(u32) * response->fmb_len;
+	zdev->rid_available = response->rid_avail;
+	zdev->is_physfn = response->is_physfn;
+	if (!s390_pci_no_rid && zdev->rid_available)
+		zdev->devfn = response->rid & ZPCI_RID_MASK_DEVFN;
 
 	memcpy(zdev->pfip, response->pfip, sizeof(zdev->pfip));
 	if (response->util_str_avail) {
@@ -240,12 +245,14 @@
 }
 
 /*
- * Enable/Disable a given PCI function defined by its function handle.
+ * Enable/Disable a given PCI function and update its function handle if
+ * necessary
  */
-static int clp_set_pci_fn(u32 *fh, u8 nr_dma_as, u8 command)
+static int clp_set_pci_fn(struct zpci_dev *zdev, u8 nr_dma_as, u8 command)
 {
 	struct clp_req_rsp_set_pci *rrb;
 	int rc, retries = 100;
+	u32 fid = zdev->fid;
 
 	rrb = clp_alloc_block(GFP_KERNEL);
 	if (!rrb)
@@ -256,7 +263,7 @@
 		rrb->request.hdr.len = sizeof(rrb->request);
 		rrb->request.hdr.cmd = CLP_SET_PCI_FN;
 		rrb->response.hdr.len = sizeof(rrb->response);
-		rrb->request.fh = *fh;
+		rrb->request.fh = zdev->fh;
 		rrb->request.oc = command;
 		rrb->request.ndas = nr_dma_as;
 
@@ -269,12 +276,17 @@
 		}
 	} while (rrb->response.hdr.rsp == CLP_RC_SETPCIFN_BUSY);
 
-	if (!rc && rrb->response.hdr.rsp == CLP_RC_OK)
-		*fh = rrb->response.fh;
-	else {
+	if (rc || rrb->response.hdr.rsp != CLP_RC_OK) {
 		zpci_err("Set PCI FN:\n");
 		zpci_err_clp(rrb->response.hdr.rsp, rc);
-		rc = -EIO;
+	}
+
+	if (!rc && rrb->response.hdr.rsp == CLP_RC_OK) {
+		zdev->fh = rrb->response.fh;
+	} else if (!rc && rrb->response.hdr.rsp == CLP_RC_SETPCIFN_ALRDY &&
+			rrb->response.fh == 0) {
+		/* Function is already in desired state - update handle */
+		rc = clp_rescan_pci_devices_simple(&fid);
 	}
 	clp_free_block(rrb);
 	return rc;
@@ -282,18 +294,17 @@
 
 int clp_enable_fh(struct zpci_dev *zdev, u8 nr_dma_as)
 {
-	u32 fh = zdev->fh;
 	int rc;
 
-	rc = clp_set_pci_fn(&fh, nr_dma_as, CLP_SET_ENABLE_PCI_FN);
-	zpci_dbg(3, "ena fid:%x, fh:%x, rc:%d\n", zdev->fid, fh, rc);
+	rc = clp_set_pci_fn(zdev, nr_dma_as, CLP_SET_ENABLE_PCI_FN);
+	zpci_dbg(3, "ena fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc);
 	if (rc)
 		goto out;
 
-	zdev->fh = fh;
 	if (zpci_use_mio(zdev)) {
-		rc = clp_set_pci_fn(&fh, nr_dma_as, CLP_SET_ENABLE_MIO);
-		zpci_dbg(3, "ena mio fid:%x, fh:%x, rc:%d\n", zdev->fid, fh, rc);
+		rc = clp_set_pci_fn(zdev, nr_dma_as, CLP_SET_ENABLE_MIO);
+		zpci_dbg(3, "ena mio fid:%x, fh:%x, rc:%d\n",
+				zdev->fid, zdev->fh, rc);
 		if (rc)
 			clp_disable_fh(zdev);
 	}
@@ -303,17 +314,13 @@
 
 int clp_disable_fh(struct zpci_dev *zdev)
 {
-	u32 fh = zdev->fh;
 	int rc;
 
 	if (!zdev_enabled(zdev))
 		return 0;
 
-	rc = clp_set_pci_fn(&fh, 0, CLP_SET_DISABLE_PCI_FN);
-	zpci_dbg(3, "dis fid:%x, fh:%x, rc:%d\n", zdev->fid, fh, rc);
-	if (!rc)
-		zdev->fh = fh;
-
+	rc = clp_set_pci_fn(zdev, 0, CLP_SET_DISABLE_PCI_FN);
+	zpci_dbg(3, "dis fid:%x, fh:%x, rc:%d\n", zdev->fid, zdev->fh, rc);
 	return rc;
 }
 
@@ -370,10 +377,14 @@
 static void __clp_update(struct clp_fh_list_entry *entry, void *data)
 {
 	struct zpci_dev *zdev;
+	u32 *fid = data;
 
 	if (!entry->vendor_id)
 		return;
 
+	if (fid && *fid != entry->fid)
+		return;
+
 	zdev = get_zdev_by_fid(entry->fid);
 	if (!zdev)
 		return;
@@ -413,7 +424,10 @@
 	return rc;
 }
 
-int clp_rescan_pci_devices_simple(void)
+/* Rescan PCI functions and refresh function handles. If fid is non-NULL only
+ * refresh the handle of the function matching @fid
+ */
+int clp_rescan_pci_devices_simple(u32 *fid)
 {
 	struct clp_req_rsp_list_pci *rrb;
 	int rc;
@@ -422,7 +436,7 @@
 	if (!rrb)
 		return -ENOMEM;
 
-	rc = clp_list_pci(rrb, NULL, __clp_update);
+	rc = clp_list_pci(rrb, fid, __clp_update);
 
 	clp_free_block(rrb);
 	return rc;
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_dma.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_dma.c
@@ -543,6 +543,17 @@
 		s->dma_length = 0;
 	}
 }
+
+static unsigned long *bitmap_vzalloc(size_t bits, gfp_t flags)
+{
+	size_t n = BITS_TO_LONGS(bits);
+	size_t bytes;
+
+	if (unlikely(check_mul_overflow(n, sizeof(unsigned long), &bytes)))
+		return NULL;
+
+	return vzalloc(bytes);
+}
 	
 int zpci_dma_init_device(struct zpci_dev *zdev)
 {
@@ -579,13 +590,13 @@
 				zdev->end_dma - zdev->start_dma + 1);
 	zdev->end_dma = zdev->start_dma + zdev->iommu_size - 1;
 	zdev->iommu_pages = zdev->iommu_size >> PAGE_SHIFT;
-	zdev->iommu_bitmap = vzalloc(zdev->iommu_pages / 8);
+	zdev->iommu_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL);
 	if (!zdev->iommu_bitmap) {
 		rc = -ENOMEM;
 		goto free_dma_table;
 	}
 	if (!s390_iommu_strict) {
-		zdev->lazy_bitmap = vzalloc(zdev->iommu_pages / 8);
+		zdev->lazy_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL);
 		if (!zdev->lazy_bitmap) {
 			rc = -ENOMEM;
 			goto free_bitmap;
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_event.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_event.c
@@ -14,6 +14,8 @@
 #include <asm/pci_debug.h>
 #include <asm/sclp.h>
 
+#include "pci_bus.h"
+
 /* Content Code Description for PCI Function Error */
 struct zpci_ccdf_err {
 	u32 reserved1;
@@ -53,7 +55,7 @@
 	zpci_err_hex(ccdf, sizeof(*ccdf));
 
 	if (zdev)
-		pdev = pci_get_slot(zdev->bus, ZPCI_DEVFN);
+		pdev = pci_get_slot(zdev->zbus->bus, zdev->devfn);
 
 	pr_err("%s: Event 0x%x reports an error for PCI function 0x%x\n",
 	       pdev ? pci_name(pdev) : "n/a", ccdf->pec, ccdf->fid);
@@ -74,46 +76,52 @@
 static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
 {
 	struct zpci_dev *zdev = get_zdev_by_fid(ccdf->fid);
-	struct pci_dev *pdev = NULL;
 	enum zpci_state state;
+	struct pci_dev *pdev;
 	int ret;
 
-	if (zdev)
-		pdev = pci_get_slot(zdev->bus, ZPCI_DEVFN);
-
-	pr_info("%s: Event 0x%x reconfigured PCI function 0x%x\n",
-		pdev ? pci_name(pdev) : "n/a", ccdf->pec, ccdf->fid);
 	zpci_err("avail CCDF:\n");
 	zpci_err_hex(ccdf, sizeof(*ccdf));
 
 	switch (ccdf->pec) {
 	case 0x0301: /* Reserved|Standby -> Configured */
 		if (!zdev) {
-			ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
-			if (ret)
-				break;
-			zdev = get_zdev_by_fid(ccdf->fid);
+			ret = clp_add_pci_device(ccdf->fid, ccdf->fh, 1);
+			break;
 		}
-		if (!zdev || zdev->state != ZPCI_FN_STATE_STANDBY)
+		/* the configuration request may be stale */
+		if (zdev->state != ZPCI_FN_STATE_STANDBY)
 			break;
-		zdev->state = ZPCI_FN_STATE_CONFIGURED;
 		zdev->fh = ccdf->fh;
+		zdev->state = ZPCI_FN_STATE_CONFIGURED;
 		ret = zpci_enable_device(zdev);
 		if (ret)
 			break;
+
+		/* the PCI function will be scanned once function 0 appears */
+		if (!zdev->zbus->bus)
+			break;
+
+		pdev = pci_scan_single_device(zdev->zbus->bus, zdev->devfn);
+		if (!pdev)
+			break;
+
+		pci_bus_add_device(pdev);
 		pci_lock_rescan_remove();
-		pci_rescan_bus(zdev->bus);
+		pci_bus_add_devices(zdev->zbus->bus);
 		pci_unlock_rescan_remove();
 		break;
 	case 0x0302: /* Reserved -> Standby */
-		if (!zdev)
+		if (!zdev) {
 			clp_add_pci_device(ccdf->fid, ccdf->fh, 0);
+			break;
+		}
+		zdev->fh = ccdf->fh;
 		break;
 	case 0x0303: /* Deconfiguration requested */
 		if (!zdev)
 			break;
-		if (pdev)
-			pci_stop_and_remove_bus_device_locked(pdev);
+		zpci_remove_device(zdev, false);
 
 		ret = zpci_disable_device(zdev);
 		if (ret)
@@ -128,19 +136,17 @@
 	case 0x0304: /* Configured -> Standby|Reserved */
 		if (!zdev)
 			break;
-		if (pdev) {
-			/* Give the driver a hint that the function is
-			 * already unusable. */
-			pdev->error_state = pci_channel_io_perm_failure;
-			pci_stop_and_remove_bus_device_locked(pdev);
-		}
+		/* Give the driver a hint that the function is
+		 * already unusable.
+		 */
+		zpci_remove_device(zdev, true);
 
 		zdev->fh = ccdf->fh;
 		zpci_disable_device(zdev);
 		zdev->state = ZPCI_FN_STATE_STANDBY;
 		if (!clp_get_state(ccdf->fid, &state) &&
 		    state == ZPCI_FN_STATE_RESERVED) {
-			zpci_remove_device(zdev);
+			zpci_device_reserved(zdev);
 		}
 		break;
 	case 0x0306: /* 0x308 or 0x302 for multiple devices */
@@ -149,12 +155,11 @@
 	case 0x0308: /* Standby -> Reserved */
 		if (!zdev)
 			break;
-		zpci_remove_device(zdev);
+		zpci_device_reserved(zdev);
 		break;
 	default:
 		break;
 	}
-	pci_dev_put(pdev);
 }
 
 void zpci_event_availability(void *data)
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_irq.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_irq.c
@@ -115,7 +115,6 @@
 	.name = "PCI-MSI",
 	.irq_unmask = pci_msi_unmask_irq,
 	.irq_mask = pci_msi_mask_irq,
-	.irq_set_affinity = zpci_set_irq_affinity,
 };
 
 static void zpci_handle_cpu_local_irq(bool rescan)
@@ -276,7 +275,9 @@
 		rc = -EIO;
 		if (hwirq - bit >= msi_vecs)
 			break;
-		irq = __irq_alloc_descs(-1, 0, 1, 0, THIS_MODULE, msi->affinity);
+		irq = __irq_alloc_descs(-1, 0, 1, 0, THIS_MODULE,
+				(irq_delivery == DIRECTED) ?
+				msi->affinity : NULL);
 		if (irq < 0)
 			return -ENOMEM;
 		rc = irq_set_msi_desc(irq, msi);
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_mmio.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_mmio.c
@@ -11,6 +11,113 @@
 #include <linux/mm.h>
 #include <linux/errno.h>
 #include <linux/pci.h>
+#include <asm/pci_io.h>
+#include <asm/pci_debug.h>
+
+static inline void zpci_err_mmio(u8 cc, u8 status, u64 offset)
+{
+	struct {
+		u64 offset;
+		u8 cc;
+		u8 status;
+	} data = {offset, cc, status};
+
+	zpci_err_hex(&data, sizeof(data));
+}
+
+static inline int __pcistb_mio_inuser(
+		void __iomem *ioaddr, const void __user *src,
+		u64 len, u8 *status)
+{
+	int cc = -ENXIO;
+
+	asm volatile (
+		"       sacf 256\n"
+		"0:     .insn   rsy,0xeb00000000d4,%[len],%[ioaddr],%[src]\n"
+		"1:     ipm     %[cc]\n"
+		"       srl     %[cc],28\n"
+		"2:     sacf 768\n"
+		EX_TABLE(0b, 2b) EX_TABLE(1b, 2b)
+		: [cc] "+d" (cc), [len] "+d" (len)
+		: [ioaddr] "a" (ioaddr), [src] "Q" (*((u8 __force *)src))
+		: "cc", "memory");
+	*status = len >> 24 & 0xff;
+	return cc;
+}
+
+static inline int __pcistg_mio_inuser(
+		void __iomem *ioaddr, const void __user *src,
+		u64 ulen, u8 *status)
+{
+	register u64 addr asm("2") = (u64 __force) ioaddr;
+	register u64 len asm("3") = ulen;
+	int cc = -ENXIO;
+	u64 val = 0;
+	u64 cnt = ulen;
+	u8 tmp;
+
+	/*
+	 * copy 0 < @len <= 8 bytes from @src into the right most bytes of
+	 * a register, then store it to PCI at @ioaddr while in secondary
+	 * address space. pcistg then uses the user mappings.
+	 */
+	asm volatile (
+		"       sacf    256\n"
+		"0:     llgc    %[tmp],0(%[src])\n"
+		"4:	sllg	%[val],%[val],8\n"
+		"       aghi    %[src],1\n"
+		"       ogr     %[val],%[tmp]\n"
+		"       brctg   %[cnt],0b\n"
+		"1:     .insn   rre,0xb9d40000,%[val],%[ioaddr]\n"
+		"2:     ipm     %[cc]\n"
+		"       srl     %[cc],28\n"
+		"3:     sacf    768\n"
+		EX_TABLE(0b, 3b) EX_TABLE(4b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b)
+		:
+		[src] "+a" (src), [cnt] "+d" (cnt),
+		[val] "+d" (val), [tmp] "=d" (tmp),
+		[len] "+d" (len), [cc] "+d" (cc),
+		[ioaddr] "+a" (addr)
+		:: "cc", "memory");
+	*status = len >> 24 & 0xff;
+
+	/* did we read everything from user memory? */
+	if (!cc && cnt != 0)
+		cc = -EFAULT;
+
+	return cc;
+}
+
+static inline int __memcpy_toio_inuser(void __iomem *dst,
+				   const void __user *src, size_t n)
+{
+	int size, rc = 0;
+	u8 status = 0;
+	mm_segment_t old_fs;
+
+	if (!src)
+		return -EINVAL;
+
+	old_fs = enable_sacf_uaccess();
+	while (n > 0) {
+		size = zpci_get_max_write_size((u64 __force) dst,
+					       (u64 __force) src, n,
+					       ZPCI_MAX_WRITE_SIZE);
+		if (size > 8) /* main path */
+			rc = __pcistb_mio_inuser(dst, src, size, &status);
+		else
+			rc = __pcistg_mio_inuser(dst, src, size, &status);
+		if (rc)
+			break;
+		src += size;
+		dst += size;
+		n -= size;
+	}
+	disable_sacf_uaccess(old_fs);
+	if (rc)
+		zpci_err_mmio(rc, status, (__force u64) dst);
+	return rc;
+}
 
 static long get_pfn(unsigned long user_addr, unsigned long access,
 		    unsigned long *pfn)
@@ -21,7 +128,7 @@
 	down_read(&current->mm->mmap_sem);
 	ret = -EINVAL;
 	vma = find_vma(current->mm, user_addr);
-	if (!vma)
+	if (!vma || user_addr < vma->vm_start)
 		goto out;
 	ret = -EACCES;
 	if (!(vma->vm_flags & access))
@@ -46,6 +153,20 @@
 
 	if (length <= 0 || PAGE_SIZE - (mmio_addr & ~PAGE_MASK) < length)
 		return -EINVAL;
+
+	/*
+	 * Only support read access to MIO capable devices on a MIO enabled
+	 * system. Otherwise we would have to check for every address if it is
+	 * a special ZPCI_ADDR and we would have to do a get_pfn() which we
+	 * don't need for MIO capable devices.
+	 */
+	if (static_branch_likely(&have_mio)) {
+		ret = __memcpy_toio_inuser((void  __iomem *) mmio_addr,
+					user_buffer,
+					length);
+		return ret;
+	}
+
 	if (length > 64) {
 		buf = kmalloc(length, GFP_KERNEL);
 		if (!buf)
@@ -56,7 +177,8 @@
 	ret = get_pfn(mmio_addr, VM_WRITE, &pfn);
 	if (ret)
 		goto out;
-	io_addr = (void __iomem *)((pfn << PAGE_SHIFT) | (mmio_addr & ~PAGE_MASK));
+	io_addr = (void __iomem *)((pfn << PAGE_SHIFT) |
+			(mmio_addr & ~PAGE_MASK));
 
 	ret = -EFAULT;
 	if ((unsigned long) io_addr < ZPCI_IOMAP_ADDR_BASE)
@@ -72,6 +194,78 @@
 	return ret;
 }
 
+static inline int __pcilg_mio_inuser(
+		void __user *dst, const void __iomem *ioaddr,
+		u64 ulen, u8 *status)
+{
+	register u64 addr asm("2") = (u64 __force) ioaddr;
+	register u64 len asm("3") = ulen;
+	u64 cnt = ulen;
+	int shift = ulen * 8;
+	int cc = -ENXIO;
+	u64 val, tmp;
+
+	/*
+	 * read 0 < @len <= 8 bytes from the PCI memory mapped at @ioaddr (in
+	 * user space) into a register using pcilg then store these bytes at
+	 * user address @dst
+	 */
+	asm volatile (
+		"       sacf    256\n"
+		"0:     .insn   rre,0xb9d60000,%[val],%[ioaddr]\n"
+		"1:     ipm     %[cc]\n"
+		"       srl     %[cc],28\n"
+		"       ltr     %[cc],%[cc]\n"
+		"       jne     4f\n"
+		"2:     ahi     %[shift],-8\n"
+		"       srlg    %[tmp],%[val],0(%[shift])\n"
+		"3:     stc     %[tmp],0(%[dst])\n"
+		"5:	aghi	%[dst],1\n"
+		"       brctg   %[cnt],2b\n"
+		"4:     sacf    768\n"
+		EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b) EX_TABLE(5b, 4b)
+		:
+		[cc] "+d" (cc), [val] "=d" (val), [len] "+d" (len),
+		[dst] "+a" (dst), [cnt] "+d" (cnt), [tmp] "=d" (tmp),
+		[shift] "+d" (shift)
+		:
+		[ioaddr] "a" (addr)
+		: "cc", "memory");
+
+	/* did we write everything to the user space buffer? */
+	if (!cc && cnt != 0)
+		cc = -EFAULT;
+
+	*status = len >> 24 & 0xff;
+	return cc;
+}
+
+static inline int __memcpy_fromio_inuser(void __user *dst,
+				     const void __iomem *src,
+				     unsigned long n)
+{
+	int size, rc = 0;
+	u8 status;
+	mm_segment_t old_fs;
+
+	old_fs = enable_sacf_uaccess();
+	while (n > 0) {
+		size = zpci_get_max_write_size((u64 __force) src,
+					       (u64 __force) dst, n,
+					       ZPCI_MAX_READ_SIZE);
+		rc = __pcilg_mio_inuser(dst, src, size, &status);
+		if (rc)
+			break;
+		src += size;
+		dst += size;
+		n -= size;
+	}
+	disable_sacf_uaccess(old_fs);
+	if (rc)
+		zpci_err_mmio(rc, status, (__force u64) dst);
+	return rc;
+}
+
 SYSCALL_DEFINE3(s390_pci_mmio_read, unsigned long, mmio_addr,
 		void __user *, user_buffer, size_t, length)
 {
@@ -86,12 +280,27 @@
 
 	if (length <= 0 || PAGE_SIZE - (mmio_addr & ~PAGE_MASK) < length)
 		return -EINVAL;
+
+	/*
+	 * Only support write access to MIO capable devices on a MIO enabled
+	 * system. Otherwise we would have to check for every address if it is
+	 * a special ZPCI_ADDR and we would have to do a get_pfn() which we
+	 * don't need for MIO capable devices.
+	 */
+	if (static_branch_likely(&have_mio)) {
+		ret = __memcpy_fromio_inuser(
+				user_buffer, (const void __iomem *)mmio_addr,
+				length);
+		return ret;
+	}
+
 	if (length > 64) {
 		buf = kmalloc(length, GFP_KERNEL);
 		if (!buf)
 			return -ENOMEM;
-	} else
+	} else {
 		buf = local_buf;
+	}
 
 	ret = get_pfn(mmio_addr, VM_READ, &pfn);
 	if (ret)
--- linux-ein-5.4.0.orig/arch/s390/pci/pci_sysfs.c
+++ linux-ein-5.4.0/arch/s390/pci/pci_sysfs.c
@@ -13,6 +13,8 @@
 #include <linux/stat.h>
 #include <linux/pci.h>
 
+#include "../../../drivers/pci/pci.h"
+
 #include <asm/sclp.h>
 
 #define zpci_attr(name, fmt, member)					\
@@ -31,6 +33,7 @@
 zpci_attr(pfgid, "0x%02x\n", pfgid);
 zpci_attr(vfn, "0x%04x\n", vfn);
 zpci_attr(pft, "0x%02x\n", pft);
+zpci_attr(port, "%d\n", port);
 zpci_attr(uid, "0x%x\n", uid);
 zpci_attr(segment0, "0x%02x\n", pfip[0]);
 zpci_attr(segment1, "0x%02x\n", pfip[1]);
@@ -49,31 +52,50 @@
 static ssize_t recover_store(struct device *dev, struct device_attribute *attr,
 			     const char *buf, size_t count)
 {
+	struct kernfs_node *kn;
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct zpci_dev *zdev = to_zpci(pdev);
-	int ret;
-
-	if (!device_remove_file_self(dev, attr))
-		return count;
+	int ret = 0;
 
+	/* Can't use device_remove_self() here as that would lead us to lock
+	 * the pci_rescan_remove_lock while holding the device' kernfs lock.
+	 * This would create a possible deadlock with disable_slot() which is
+	 * not directly protected by the device' kernfs lock but takes it
+	 * during the device removal which happens under
+	 * pci_rescan_remove_lock.
+	 *
+	 * This is analogous to sdev_store_delete() in
+	 * drivers/scsi/scsi_sysfs.c
+	 */
+	kn = sysfs_break_active_protection(&dev->kobj, &attr->attr);
+	WARN_ON_ONCE(!kn);
+	/* device_remove_file() serializes concurrent calls ignoring all but
+	 * the first
+	 */
+	device_remove_file(dev, attr);
+
+	/* A concurrent call to recover_store() may slip between
+	 * sysfs_break_active_protection() and the sysfs file removal.
+	 * Once it unblocks from pci_lock_rescan_remove() the original pdev
+	 * will already be removed.
+	 */
 	pci_lock_rescan_remove();
-	pci_stop_and_remove_bus_device(pdev);
-	ret = zpci_disable_device(zdev);
-	if (ret)
-		goto error;
-
-	ret = zpci_enable_device(zdev);
-	if (ret)
-		goto error;
-
-	pci_rescan_bus(zdev->bus);
+	if (pci_dev_is_added(pdev)) {
+		pci_stop_and_remove_bus_device(pdev);
+		ret = zpci_disable_device(zdev);
+		if (ret)
+			goto out;
+
+		ret = zpci_enable_device(zdev);
+		if (ret)
+			goto out;
+		pci_rescan_bus(zdev->zbus->bus);
+	}
+out:
 	pci_unlock_rescan_remove();
-
-	return count;
-
-error:
-	pci_unlock_rescan_remove();
-	return ret;
+	if (kn)
+		sysfs_unbreak_active_protection(kn);
+	return ret ? ret : count;
 }
 static DEVICE_ATTR_WO(recover);
 
@@ -121,6 +143,7 @@
 	&dev_attr_pchid.attr,
 	&dev_attr_pfgid.attr,
 	&dev_attr_pft.attr,
+	&dev_attr_port.attr,
 	&dev_attr_vfn.attr,
 	&dev_attr_uid.attr,
 	&dev_attr_recover.attr,
--- linux-ein-5.4.0.orig/arch/s390/purgatory/Makefile
+++ linux-ein-5.4.0/arch/s390/purgatory/Makefile
@@ -15,8 +15,10 @@
 $(obj)/mem.o: $(srctree)/arch/s390/lib/mem.S FORCE
 	$(call if_changed_rule,as_o_S)
 
-$(obj)/string.o: $(srctree)/arch/s390/lib/string.c FORCE
-	$(call if_changed_rule,cc_o_c)
+KCOV_INSTRUMENT := n
+GCOV_PROFILE := n
+UBSAN_SANITIZE := n
+KASAN_SANITIZE := n
 
 KBUILD_CFLAGS := -fno-strict-aliasing -Wall -Wstrict-prototypes
 KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
--- linux-ein-5.4.0.orig/arch/s390/purgatory/head.S
+++ linux-ein-5.4.0/arch/s390/purgatory/head.S
@@ -62,14 +62,15 @@
 	jh	10b
 .endm
 
-.macro START_NEXT_KERNEL base
+.macro START_NEXT_KERNEL base subcode
 	lg	%r4,kernel_entry-\base(%r13)
 	lg	%r5,load_psw_mask-\base(%r13)
 	ogr	%r4,%r5
 	stg	%r4,0(%r0)
 
 	xgr	%r0,%r0
-	diag	%r0,%r0,0x308
+	lghi	%r1,\subcode
+	diag	%r0,%r1,0x308
 .endm
 
 .text
@@ -123,7 +124,7 @@
 	je	.start_crash_kernel
 
 	/* start normal kernel */
-	START_NEXT_KERNEL .base_crash
+	START_NEXT_KERNEL .base_crash 0
 
 .return_old_kernel:
 	lmg	%r6,%r15,gprregs-.base_crash(%r13)
@@ -227,7 +228,7 @@
 	MEMCPY	%r9,%r10,%r11
 
 	/* start crash kernel */
-	START_NEXT_KERNEL .base_dst
+	START_NEXT_KERNEL .base_dst 1
 
 
 load_psw_mask:
--- linux-ein-5.4.0.orig/arch/s390/purgatory/string.c
+++ linux-ein-5.4.0/arch/s390/purgatory/string.c
@@ -0,0 +1,3 @@
+// SPDX-License-Identifier: GPL-2.0
+#define __HAVE_ARCH_MEMCMP	/* arch function */
+#include "../lib/string.c"
--- linux-ein-5.4.0.orig/arch/sh/Kconfig
+++ linux-ein-5.4.0/arch/sh/Kconfig
@@ -2,6 +2,7 @@
 config SUPERH
 	def_bool y
 	select ARCH_HAS_BINFMT_FLAT if !MMU
+	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
 	select ARCH_MIGHT_HAVE_PC_PARPORT
--- linux-ein-5.4.0.orig/arch/sh/Kconfig.debug
+++ linux-ein-5.4.0/arch/sh/Kconfig.debug
@@ -58,6 +58,7 @@
 
 config DWARF_UNWINDER
 	bool "Enable the DWARF unwinder for stacktraces"
+	depends on DEBUG_KERNEL
 	select FRAME_POINTER
 	depends on SUPERH32
 	default n
--- linux-ein-5.4.0.orig/arch/sh/boards/mach-ap325rxa/setup.c
+++ linux-ein-5.4.0/arch/sh/boards/mach-ap325rxa/setup.c
@@ -529,7 +529,7 @@
 	device_initialize(&ap325rxa_ceu_device.dev);
 	dma_declare_coherent_memory(&ap325rxa_ceu_device.dev,
 			ceu_dma_membase, ceu_dma_membase,
-			ceu_dma_membase + CEU_BUFFER_MEMORY_SIZE - 1);
+			CEU_BUFFER_MEMORY_SIZE);
 
 	platform_device_add(&ap325rxa_ceu_device);
 
--- linux-ein-5.4.0.orig/arch/sh/boards/mach-ecovec24/setup.c
+++ linux-ein-5.4.0/arch/sh/boards/mach-ecovec24/setup.c
@@ -1442,15 +1442,13 @@
 	device_initialize(&ecovec_ceu_devices[0]->dev);
 	dma_declare_coherent_memory(&ecovec_ceu_devices[0]->dev,
 				    ceu0_dma_membase, ceu0_dma_membase,
-				    ceu0_dma_membase +
-				    CEU_BUFFER_MEMORY_SIZE - 1);
+				    CEU_BUFFER_MEMORY_SIZE);
 	platform_device_add(ecovec_ceu_devices[0]);
 
 	device_initialize(&ecovec_ceu_devices[1]->dev);
 	dma_declare_coherent_memory(&ecovec_ceu_devices[1]->dev,
 				    ceu1_dma_membase, ceu1_dma_membase,
-				    ceu1_dma_membase +
-				    CEU_BUFFER_MEMORY_SIZE - 1);
+				    CEU_BUFFER_MEMORY_SIZE);
 	platform_device_add(ecovec_ceu_devices[1]);
 
 	gpiod_add_lookup_table(&cn12_power_gpiod_table);
--- linux-ein-5.4.0.orig/arch/sh/boards/mach-kfr2r09/setup.c
+++ linux-ein-5.4.0/arch/sh/boards/mach-kfr2r09/setup.c
@@ -603,7 +603,7 @@
 	device_initialize(&kfr2r09_ceu_device.dev);
 	dma_declare_coherent_memory(&kfr2r09_ceu_device.dev,
 			ceu_dma_membase, ceu_dma_membase,
-			ceu_dma_membase + CEU_BUFFER_MEMORY_SIZE - 1);
+			CEU_BUFFER_MEMORY_SIZE);
 
 	platform_device_add(&kfr2r09_ceu_device);
 
--- linux-ein-5.4.0.orig/arch/sh/boards/mach-landisk/setup.c
+++ linux-ein-5.4.0/arch/sh/boards/mach-landisk/setup.c
@@ -82,6 +82,9 @@
 
 static void __init landisk_setup(char **cmdline_p)
 {
+	/* I/O port identity mapping */
+	__set_io_port_base(0);
+
 	/* LED ON */
 	__raw_writeb(__raw_readb(PA_LED) | 0x03, PA_LED);
 
--- linux-ein-5.4.0.orig/arch/sh/boards/mach-migor/setup.c
+++ linux-ein-5.4.0/arch/sh/boards/mach-migor/setup.c
@@ -604,7 +604,7 @@
 	device_initialize(&migor_ceu_device.dev);
 	dma_declare_coherent_memory(&migor_ceu_device.dev,
 			ceu_dma_membase, ceu_dma_membase,
-			ceu_dma_membase + CEU_BUFFER_MEMORY_SIZE - 1);
+			CEU_BUFFER_MEMORY_SIZE);
 
 	platform_device_add(&migor_ceu_device);
 
--- linux-ein-5.4.0.orig/arch/sh/boards/mach-se/7724/setup.c
+++ linux-ein-5.4.0/arch/sh/boards/mach-se/7724/setup.c
@@ -939,15 +939,13 @@
 	device_initialize(&ms7724se_ceu_devices[0]->dev);
 	dma_declare_coherent_memory(&ms7724se_ceu_devices[0]->dev,
 				    ceu0_dma_membase, ceu0_dma_membase,
-				    ceu0_dma_membase +
-				    CEU_BUFFER_MEMORY_SIZE - 1);
+				    CEU_BUFFER_MEMORY_SIZE);
 	platform_device_add(ms7724se_ceu_devices[0]);
 
 	device_initialize(&ms7724se_ceu_devices[1]->dev);
 	dma_declare_coherent_memory(&ms7724se_ceu_devices[1]->dev,
 				    ceu1_dma_membase, ceu1_dma_membase,
-				    ceu1_dma_membase +
-				    CEU_BUFFER_MEMORY_SIZE - 1);
+				    CEU_BUFFER_MEMORY_SIZE);
 	platform_device_add(ms7724se_ceu_devices[1]);
 
 	return platform_add_devices(ms7724se_devices,
--- linux-ein-5.4.0.orig/arch/sh/configs/sh03_defconfig
+++ linux-ein-5.4.0/arch/sh/configs/sh03_defconfig
@@ -46,7 +46,6 @@
 CONFIG_SCSI=m
 CONFIG_BLK_DEV_SD=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_NETDEVICES=y
 CONFIG_NET_ETHERNET=y
--- linux-ein-5.4.0.orig/arch/sh/drivers/dma/Kconfig
+++ linux-ein-5.4.0/arch/sh/drivers/dma/Kconfig
@@ -63,8 +63,7 @@
 
 config G2_DMA
 	tristate "G2 Bus DMA support"
-	depends on SH_DREAMCAST
-	select SH_DMA_API
+	depends on SH_DREAMCAST && SH_DMA_API
 	help
 	  This enables support for the DMA controller for the Dreamcast's
 	  G2 bus. Drivers that want this will generally enable this on
--- linux-ein-5.4.0.orig/arch/sh/drivers/dma/dma-sh.c
+++ linux-ein-5.4.0/arch/sh/drivers/dma/dma-sh.c
@@ -19,6 +19,18 @@
 #include <cpu/dma.h>
 
 /*
+ * Some of the SoCs feature two DMAC modules. In such a case, the channels are
+ * distributed equally among them.
+ */
+#ifdef	SH_DMAC_BASE1
+#define	SH_DMAC_NR_MD_CH	(CONFIG_NR_ONCHIP_DMA_CHANNELS / 2)
+#else
+#define	SH_DMAC_NR_MD_CH	CONFIG_NR_ONCHIP_DMA_CHANNELS
+#endif
+
+#define	SH_DMAC_CH_SZ		0x10
+
+/*
  * Define the default configuration for dual address memory-memory transfer.
  * The 0x400 value represents auto-request, external->external.
  */
@@ -29,7 +41,7 @@
 	unsigned long base = SH_DMAC_BASE0;
 
 #ifdef SH_DMAC_BASE1
-	if (chan >= 6)
+	if (chan >= SH_DMAC_NR_MD_CH)
 		base = SH_DMAC_BASE1;
 #endif
 
@@ -40,13 +52,13 @@
 {
 	unsigned long base = dma_find_base(chan);
 
-	/* Normalize offset calculation */
-	if (chan >= 9)
-		chan -= 6;
-	if (chan >= 4)
-		base += 0x10;
+	chan = (chan % SH_DMAC_NR_MD_CH) * SH_DMAC_CH_SZ;
+
+	/* DMAOR is placed inside the channel register space. Step over it. */
+	if (chan >= DMAOR)
+		base += SH_DMAC_CH_SZ;
 
-	return base + (chan * 0x10);
+	return base + chan;
 }
 
 #ifdef CONFIG_SH_DMA_IRQ_MULTI
@@ -250,12 +262,11 @@
 #define NR_DMAOR	1
 #endif
 
-/*
- * DMAOR bases are broken out amongst channel groups. DMAOR0 manages
- * channels 0 - 5, DMAOR1 6 - 11 (optional).
- */
-#define dmaor_read_reg(n)		__raw_readw(dma_find_base((n)*6))
-#define dmaor_write_reg(n, data)	__raw_writew(data, dma_find_base(n)*6)
+#define dmaor_read_reg(n)		__raw_readw(dma_find_base((n) * \
+						    SH_DMAC_NR_MD_CH) + DMAOR)
+#define dmaor_write_reg(n, data)	__raw_writew(data, \
+						     dma_find_base((n) * \
+						     SH_DMAC_NR_MD_CH) + DMAOR)
 
 static inline int dmaor_reset(int no)
 {
--- linux-ein-5.4.0.orig/arch/sh/include/asm/pgalloc.h
+++ linux-ein-5.4.0/arch/sh/include/asm/pgalloc.h
@@ -12,6 +12,7 @@
 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
 extern pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address);
 extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
+#define __pmd_free_tlb(tlb, pmdp, addr)		pmd_free((tlb)->mm, (pmdp))
 #endif
 
 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
@@ -33,13 +34,4 @@
 	tlb_remove_page((tlb), (pte));			\
 } while (0)
 
-#if CONFIG_PGTABLE_LEVELS > 2
-#define __pmd_free_tlb(tlb, pmdp, addr)			\
-do {							\
-	struct page *page = virt_to_page(pmdp);		\
-	pgtable_pmd_page_dtor(page);			\
-	tlb_remove_page((tlb), page);			\
-} while (0);
-#endif
-
 #endif /* __ASM_SH_PGALLOC_H */
--- linux-ein-5.4.0.orig/arch/sh/include/asm/processor.h
+++ linux-ein-5.4.0/arch/sh/include/asm/processor.h
@@ -173,6 +173,8 @@
 #define instruction_size(insn)	(4)
 #endif
 
+void select_idle_routine(void);
+
 #endif /* __ASSEMBLY__ */
 
 #ifdef CONFIG_SUPERH32
--- linux-ein-5.4.0.orig/arch/sh/include/asm/processor_32.h
+++ linux-ein-5.4.0/arch/sh/include/asm/processor_32.h
@@ -51,6 +51,7 @@
 #define SR_FD		0x00008000
 #define SR_MD		0x40000000
 
+#define SR_USER_MASK	0x00000303	// M, Q, S, T bits
 /*
  * DSP structure and data
  */
--- linux-ein-5.4.0.orig/arch/sh/include/asm/sections.h
+++ linux-ein-5.4.0/arch/sh/include/asm/sections.h
@@ -4,7 +4,7 @@
 
 #include <asm-generic/sections.h>
 
-extern long __machvec_start, __machvec_end;
+extern char __machvec_start[], __machvec_end[];
 extern char __uncached_start, __uncached_end;
 extern char __start_eh_frame[], __stop_eh_frame[];
 
--- linux-ein-5.4.0.orig/arch/sh/include/asm/sfp-machine.h
+++ linux-ein-5.4.0/arch/sh/include/asm/sfp-machine.h
@@ -13,6 +13,14 @@
 #ifndef _SFP_MACHINE_H
 #define _SFP_MACHINE_H
 
+#ifdef __BIG_ENDIAN__
+#define __BYTE_ORDER __BIG_ENDIAN
+#define __LITTLE_ENDIAN 0
+#else
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#define __BIG_ENDIAN 0
+#endif
+
 #define _FP_W_TYPE_SIZE		32
 #define _FP_W_TYPE		unsigned long
 #define _FP_WS_TYPE		signed long
--- linux-ein-5.4.0.orig/arch/sh/include/cpu-sh2a/cpu/sh7269.h
+++ linux-ein-5.4.0/arch/sh/include/cpu-sh2a/cpu/sh7269.h
@@ -78,8 +78,15 @@
 	GPIO_FN_WDTOVF,
 
 	/* CAN */
-	GPIO_FN_CTX1, GPIO_FN_CRX1, GPIO_FN_CTX0, GPIO_FN_CTX0_CTX1,
-	GPIO_FN_CRX0, GPIO_FN_CRX0_CRX1, GPIO_FN_CRX0_CRX1_CRX2,
+	GPIO_FN_CTX2, GPIO_FN_CRX2,
+	GPIO_FN_CTX1, GPIO_FN_CRX1,
+	GPIO_FN_CTX0, GPIO_FN_CRX0,
+	GPIO_FN_CTX0_CTX1, GPIO_FN_CRX0_CRX1,
+	GPIO_FN_CTX0_CTX1_CTX2, GPIO_FN_CRX0_CRX1_CRX2,
+	GPIO_FN_CTX2_PJ21, GPIO_FN_CRX2_PJ20,
+	GPIO_FN_CTX1_PJ23, GPIO_FN_CRX1_PJ22,
+	GPIO_FN_CTX0_CTX1_PJ23, GPIO_FN_CRX0_CRX1_PJ22,
+	GPIO_FN_CTX0_CTX1_CTX2_PJ21, GPIO_FN_CRX0_CRX1_CRX2_PJ20,
 
 	/* DMAC */
 	GPIO_FN_TEND0, GPIO_FN_DACK0, GPIO_FN_DREQ0,
--- linux-ein-5.4.0.orig/arch/sh/include/cpu-sh4/cpu/sh7734.h
+++ linux-ein-5.4.0/arch/sh/include/cpu-sh4/cpu/sh7734.h
@@ -134,7 +134,7 @@
 	GPIO_FN_EX_WAIT1, GPIO_FN_SD1_DAT0_A, GPIO_FN_DREQ2, GPIO_FN_CAN1_TX_C,
 		GPIO_FN_ET0_LINK_C, GPIO_FN_ET0_ETXD5_A,
 	GPIO_FN_EX_WAIT0, GPIO_FN_TCLK1_B,
-	GPIO_FN_RD_WR, GPIO_FN_TCLK0,
+	GPIO_FN_RD_WR, GPIO_FN_TCLK0, GPIO_FN_CAN_CLK_B, GPIO_FN_ET0_ETXD4,
 	GPIO_FN_EX_CS5, GPIO_FN_SD1_CMD_A, GPIO_FN_ATADIR, GPIO_FN_QSSL_B,
 		GPIO_FN_ET0_ETXD3_A,
 	GPIO_FN_EX_CS4, GPIO_FN_SD1_WP_A, GPIO_FN_ATAWR, GPIO_FN_QMI_QIO1_B,
--- linux-ein-5.4.0.orig/arch/sh/kernel/cpu/fpu.c
+++ linux-ein-5.4.0/arch/sh/kernel/cpu/fpu.c
@@ -62,18 +62,20 @@
 	}
 
 	if (!tsk_used_math(tsk)) {
-		local_irq_enable();
+		int ret;
 		/*
 		 * does a slab alloc which can sleep
 		 */
-		if (init_fpu(tsk)) {
+		local_irq_enable();
+		ret = init_fpu(tsk);
+		local_irq_disable();
+		if (ret) {
 			/*
 			 * ran out of memory!
 			 */
-			do_group_exit(SIGKILL);
+			force_sig(SIGKILL);
 			return;
 		}
-		local_irq_disable();
 	}
 
 	grab_fpu(regs);
--- linux-ein-5.4.0.orig/arch/sh/kernel/cpu/sh2/probe.c
+++ linux-ein-5.4.0/arch/sh/kernel/cpu/sh2/probe.c
@@ -21,7 +21,7 @@
 	if (!of_flat_dt_is_compatible(node, "jcore,cache"))
 		return 0;
 
-	j2_ccr_base = (u32 __iomem *)of_flat_dt_translate_address(node);
+	j2_ccr_base = ioremap(of_flat_dt_translate_address(node), 4);
 
 	return 1;
 }
--- linux-ein-5.4.0.orig/arch/sh/kernel/cpu/sh4/sq.c
+++ linux-ein-5.4.0/arch/sh/kernel/cpu/sh4/sq.c
@@ -380,7 +380,7 @@
 	if (unlikely(!sq_cache))
 		return ret;
 
-	sq_bitmap = kzalloc(size, GFP_KERNEL);
+	sq_bitmap = kcalloc(size, sizeof(long), GFP_KERNEL);
 	if (unlikely(!sq_bitmap))
 		goto out;
 
--- linux-ein-5.4.0.orig/arch/sh/kernel/cpu/sh4a/smp-shx3.c
+++ linux-ein-5.4.0/arch/sh/kernel/cpu/sh4a/smp-shx3.c
@@ -73,8 +73,9 @@
 	BUILD_BUG_ON(SMP_MSG_NR >= 8);
 
 	for (i = 0; i < SMP_MSG_NR; i++)
-		request_irq(104 + i, ipi_interrupt_handler,
-			    IRQF_PERCPU, "IPI", (void *)(long)i);
+		if (request_irq(104 + i, ipi_interrupt_handler,
+			    IRQF_PERCPU, "IPI", (void *)(long)i))
+			pr_err("Failed to request irq %d\n", i);
 
 	for (i = 0; i < max_cpus; i++)
 		set_cpu_present(i, true);
--- linux-ein-5.4.0.orig/arch/sh/kernel/dma-coherent.c
+++ linux-ein-5.4.0/arch/sh/kernel/dma-coherent.c
@@ -25,7 +25,7 @@
 	 * Pages from the page allocator may have data present in
 	 * cache. So flush the cache before using uncached memory.
 	 */
-	arch_sync_dma_for_device(dev, virt_to_phys(ret), size,
+	arch_sync_dma_for_device(virt_to_phys(ret), size,
 			DMA_BIDIRECTIONAL);
 
 	ret_nocache = (void __force *)ioremap_nocache(virt_to_phys(ret), size);
@@ -59,8 +59,8 @@
 	iounmap(vaddr);
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	void *addr = sh_cacheop_vaddr(phys_to_virt(paddr));
 
--- linux-ein-5.4.0.orig/arch/sh/kernel/entry-common.S
+++ linux-ein-5.4.0/arch/sh/kernel/entry-common.S
@@ -199,7 +199,7 @@
 	mov.l	@(OFF_R7,r15), r7   ! arg3
 	mov.l	@(OFF_R3,r15), r3   ! syscall_nr
 	!
-	mov.l	2f, r10			! Number of syscalls
+	mov.l	6f, r10			! Number of syscalls
 	cmp/hs	r10, r3
 	bf	syscall_call
 	mov	#-ENOSYS, r0
@@ -353,7 +353,7 @@
 	tst	r9, r8
 	bf	syscall_trace_entry
 	!
-	mov.l	2f, r8			! Number of syscalls
+	mov.l	6f, r8			! Number of syscalls
 	cmp/hs	r8, r3
 	bt	syscall_badsys
 	!
@@ -392,7 +392,7 @@
 #if !defined(CONFIG_CPU_SH2)
 1:	.long	TRA
 #endif
-2:	.long	NR_syscalls
+6:	.long	NR_syscalls
 3:	.long	sys_call_table
 7:	.long	do_syscall_trace_enter
 8:	.long	do_syscall_trace_leave
--- linux-ein-5.4.0.orig/arch/sh/kernel/head_32.S
+++ linux-ein-5.4.0/arch/sh/kernel/head_32.S
@@ -64,7 +64,7 @@
 	ldc	r0, r6_bank
 #endif
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 	mov	r4, r12		! Store device tree blob pointer in r12
 #endif
 	
@@ -315,7 +315,7 @@
 10:		
 #endif
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 	mov.l	8f, r0		! Make flat device tree available early.
 	jsr	@r0
 	 mov	r12, r4
@@ -346,7 +346,7 @@
 5:	.long	start_kernel
 6:	.long	cpu_init
 7:	.long	init_thread_union
-#if defined(CONFIG_OF_FLATTREE)
+#if defined(CONFIG_OF_EARLY_FLATTREE)
 8:	.long	sh_fdt_init
 #endif
 
--- linux-ein-5.4.0.orig/arch/sh/kernel/idle.c
+++ linux-ein-5.4.0/arch/sh/kernel/idle.c
@@ -15,6 +15,7 @@
 #include <linux/smp.h>
 #include <linux/atomic.h>
 #include <asm/pgalloc.h>
+#include <asm/processor.h>
 #include <asm/smp.h>
 #include <asm/bl_bit.h>
 
--- linux-ein-5.4.0.orig/arch/sh/kernel/machvec.c
+++ linux-ein-5.4.0/arch/sh/kernel/machvec.c
@@ -19,8 +19,8 @@
 #define MV_NAME_SIZE 32
 
 #define for_each_mv(mv) \
-	for ((mv) = (struct sh_machine_vector *)&__machvec_start; \
-	     (mv) && (unsigned long)(mv) < (unsigned long)&__machvec_end; \
+	for ((mv) = (struct sh_machine_vector *)__machvec_start; \
+	     (mv) && (unsigned long)(mv) < (unsigned long)__machvec_end; \
 	     (mv)++)
 
 static struct sh_machine_vector * __init get_mv_byname(const char *name)
@@ -86,8 +86,8 @@
 	if (!machvec_selected) {
 		unsigned long machvec_size;
 
-		machvec_size = ((unsigned long)&__machvec_end -
-				(unsigned long)&__machvec_start);
+		machvec_size = ((unsigned long)__machvec_end -
+				(unsigned long)__machvec_start);
 
 		/*
 		 * Sanity check for machvec section alignment. Ensure
@@ -101,7 +101,7 @@
 		 * vector (usually the only one) from .machvec.init.
 		 */
 		if (machvec_size >= sizeof(struct sh_machine_vector))
-			sh_mv = *(struct sh_machine_vector *)&__machvec_start;
+			sh_mv = *(struct sh_machine_vector *)__machvec_start;
 	}
 
 	printk(KERN_NOTICE "Booting machvec: %s\n", get_system_type());
--- linux-ein-5.4.0.orig/arch/sh/kernel/nmi_debug.c
+++ linux-ein-5.4.0/arch/sh/kernel/nmi_debug.c
@@ -49,7 +49,7 @@
 	register_die_notifier(&nmi_debug_nb);
 
 	if (*str != '=')
-		return 0;
+		return 1;
 
 	for (p = str + 1; *p; p = sep + 1) {
 		sep = strchr(p, ',');
@@ -70,6 +70,6 @@
 			break;
 	}
 
-	return 0;
+	return 1;
 }
 __setup("nmi_debug", nmi_debug_setup);
--- linux-ein-5.4.0.orig/arch/sh/kernel/setup.c
+++ linux-ein-5.4.0/arch/sh/kernel/setup.c
@@ -43,6 +43,7 @@
 #include <asm/smp.h>
 #include <asm/mmu_context.h>
 #include <asm/mmzone.h>
+#include <asm/processor.h>
 #include <asm/sparsemem.h>
 
 /*
@@ -243,7 +244,7 @@
 {
 }
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 void __ref sh_fdt_init(phys_addr_t dt_phys)
 {
 	static int done = 0;
@@ -330,7 +331,7 @@
 	/* Let earlyprintk output early console messages */
 	early_platform_driver_probe("earlyprintk", 1, 1);
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 #ifdef CONFIG_USE_BUILTIN_DTB
 	unflatten_and_copy_device_tree();
 #else
@@ -362,3 +363,57 @@
 {
 	return sh_mv.mv_mode_pins() & pin;
 }
+
+void __init arch_cpu_finalize_init(void)
+{
+	char *p = &init_utsname()->machine[2]; /* "sh" */
+
+	select_idle_routine();
+
+	current_cpu_data.loops_per_jiffy = loops_per_jiffy;
+
+	switch (current_cpu_data.family) {
+	case CPU_FAMILY_SH2:
+		*p++ = '2';
+		break;
+	case CPU_FAMILY_SH2A:
+		*p++ = '2';
+		*p++ = 'a';
+		break;
+	case CPU_FAMILY_SH3:
+		*p++ = '3';
+		break;
+	case CPU_FAMILY_SH4:
+		*p++ = '4';
+		break;
+	case CPU_FAMILY_SH4A:
+		*p++ = '4';
+		*p++ = 'a';
+		break;
+	case CPU_FAMILY_SH4AL_DSP:
+		*p++ = '4';
+		*p++ = 'a';
+		*p++ = 'l';
+		*p++ = '-';
+		*p++ = 'd';
+		*p++ = 's';
+		*p++ = 'p';
+		break;
+	case CPU_FAMILY_UNKNOWN:
+		/*
+		 * Specifically use CPU_FAMILY_UNKNOWN rather than
+		 * default:, so we're able to have the compiler whine
+		 * about unhandled enumerations.
+		 */
+		break;
+	}
+
+	pr_info("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
+
+#ifndef __LITTLE_ENDIAN__
+	/* 'eb' means 'Endian Big' */
+	*p++ = 'e';
+	*p++ = 'b';
+#endif
+	*p = '\0';
+}
--- linux-ein-5.4.0.orig/arch/sh/kernel/signal_32.c
+++ linux-ein-5.4.0/arch/sh/kernel/signal_32.c
@@ -116,6 +116,7 @@
 restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p)
 {
 	unsigned int err = 0;
+	unsigned int sr = regs->sr & ~SR_USER_MASK;
 
 #define COPY(x)		err |= __get_user(regs->x, &sc->sc_##x)
 			COPY(regs[1]);
@@ -131,6 +132,8 @@
 	COPY(sr);	COPY(pc);
 #undef COPY
 
+	regs->sr = (regs->sr & SR_USER_MASK) | sr;
+
 #ifdef CONFIG_SH_FPU
 	if (boot_cpu_data.flags & CPU_HAS_FPU) {
 		int owned_fp;
--- linux-ein-5.4.0.orig/arch/sh/kernel/traps.c
+++ linux-ein-5.4.0/arch/sh/kernel/traps.c
@@ -57,7 +57,7 @@
 	if (panic_on_oops)
 		panic("Fatal exception");
 
-	do_exit(SIGSEGV);
+	make_task_dead(SIGSEGV);
 }
 
 void die_if_kernel(const char *str, struct pt_regs *regs, long err)
--- linux-ein-5.4.0.orig/arch/sh/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/sh/kernel/vmlinux.lds.S
@@ -10,6 +10,7 @@
 #define LOAD_OFFSET	0
 OUTPUT_ARCH(sh)
 #endif
+#define RUNTIME_DISCARD_EXIT
 
 #include <asm/thread_info.h>
 #include <asm/cache.h>
--- linux-ein-5.4.0.orig/arch/sh/math-emu/math.c
+++ linux-ein-5.4.0/arch/sh/math-emu/math.c
@@ -468,109 +468,6 @@
 }
 
 /**
- *	denormal_to_double - Given denormalized float number,
- *	                     store double float
- *
- *	@fpu: Pointer to sh_fpu_soft structure
- *	@n: Index to FP register
- */
-static void denormal_to_double(struct sh_fpu_soft_struct *fpu, int n)
-{
-	unsigned long du, dl;
-	unsigned long x = fpu->fpul;
-	int exp = 1023 - 126;
-
-	if (x != 0 && (x & 0x7f800000) == 0) {
-		du = (x & 0x80000000);
-		while ((x & 0x00800000) == 0) {
-			x <<= 1;
-			exp--;
-		}
-		x &= 0x007fffff;
-		du |= (exp << 20) | (x >> 3);
-		dl = x << 29;
-
-		fpu->fp_regs[n] = du;
-		fpu->fp_regs[n+1] = dl;
-	}
-}
-
-/**
- *	ieee_fpe_handler - Handle denormalized number exception
- *
- *	@regs: Pointer to register structure
- *
- *	Returns 1 when it's handled (should not cause exception).
- */
-static int ieee_fpe_handler(struct pt_regs *regs)
-{
-	unsigned short insn = *(unsigned short *)regs->pc;
-	unsigned short finsn;
-	unsigned long nextpc;
-	int nib[4] = {
-		(insn >> 12) & 0xf,
-		(insn >> 8) & 0xf,
-		(insn >> 4) & 0xf,
-		insn & 0xf};
-
-	if (nib[0] == 0xb ||
-	    (nib[0] == 0x4 && nib[2] == 0x0 && nib[3] == 0xb)) /* bsr & jsr */
-		regs->pr = regs->pc + 4;
-
-	if (nib[0] == 0xa || nib[0] == 0xb) { /* bra & bsr */
-		nextpc = regs->pc + 4 + ((short) ((insn & 0xfff) << 4) >> 3);
-		finsn = *(unsigned short *) (regs->pc + 2);
-	} else if (nib[0] == 0x8 && nib[1] == 0xd) { /* bt/s */
-		if (regs->sr & 1)
-			nextpc = regs->pc + 4 + ((char) (insn & 0xff) << 1);
-		else
-			nextpc = regs->pc + 4;
-		finsn = *(unsigned short *) (regs->pc + 2);
-	} else if (nib[0] == 0x8 && nib[1] == 0xf) { /* bf/s */
-		if (regs->sr & 1)
-			nextpc = regs->pc + 4;
-		else
-			nextpc = regs->pc + 4 + ((char) (insn & 0xff) << 1);
-		finsn = *(unsigned short *) (regs->pc + 2);
-	} else if (nib[0] == 0x4 && nib[3] == 0xb &&
-		 (nib[2] == 0x0 || nib[2] == 0x2)) { /* jmp & jsr */
-		nextpc = regs->regs[nib[1]];
-		finsn = *(unsigned short *) (regs->pc + 2);
-	} else if (nib[0] == 0x0 && nib[3] == 0x3 &&
-		 (nib[2] == 0x0 || nib[2] == 0x2)) { /* braf & bsrf */
-		nextpc = regs->pc + 4 + regs->regs[nib[1]];
-		finsn = *(unsigned short *) (regs->pc + 2);
-	} else if (insn == 0x000b) { /* rts */
-		nextpc = regs->pr;
-		finsn = *(unsigned short *) (regs->pc + 2);
-	} else {
-		nextpc = regs->pc + 2;
-		finsn = insn;
-	}
-
-	if ((finsn & 0xf1ff) == 0xf0ad) { /* fcnvsd */
-		struct task_struct *tsk = current;
-
-		if ((tsk->thread.xstate->softfpu.fpscr & (1 << 17))) {
-			/* FPU error */
-			denormal_to_double (&tsk->thread.xstate->softfpu,
-					    (finsn >> 8) & 0xf);
-			tsk->thread.xstate->softfpu.fpscr &=
-				~(FPSCR_CAUSE_MASK | FPSCR_FLAG_MASK);
-			task_thread_info(tsk)->status |= TS_USEDFPU;
-		} else {
-			force_sig_fault(SIGFPE, FPE_FLTINV,
-					(void __user *)regs->pc);
-		}
-
-		regs->pc = nextpc;
-		return 1;
-	}
-
-	return 0;
-}
-
-/**
  * fpu_init - Initialize FPU registers
  * @fpu: Pointer to software emulated FPU registers.
  */
--- linux-ein-5.4.0.orig/arch/sh/math-emu/sfp-util.h
+++ linux-ein-5.4.0/arch/sh/math-emu/sfp-util.h
@@ -67,7 +67,3 @@
   } while (0)
 
 #define abort()	return 0
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-
--- linux-ein-5.4.0.orig/arch/sh/mm/init.c
+++ linux-ein-5.4.0/arch/sh/mm/init.c
@@ -434,9 +434,7 @@
 {
 	unsigned long start_pfn = PFN_DOWN(start);
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
--- linux-ein-5.4.0.orig/arch/sparc/Kconfig
+++ linux-ein-5.4.0/arch/sparc/Kconfig
@@ -52,6 +52,7 @@
 config SPARC32
 	def_bool !64BIT
 	select ARCH_32BIT_OFF_T
+	select ARCH_HAS_CPU_FINALIZE_INIT if !SMP
 	select ARCH_HAS_SYNC_DMA_FOR_CPU
 	select GENERIC_ATOMIC64
 	select CLZ_TAB
@@ -65,7 +66,6 @@
 	select HAVE_KRETPROBES
 	select HAVE_KPROBES
 	select HAVE_RCU_TABLE_FREE if SMP
-	select HAVE_RCU_TABLE_NO_INVALIDATE if HAVE_RCU_TABLE_FREE
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 	select HAVE_DYNAMIC_FTRACE
@@ -322,7 +322,7 @@
 	  This config option is actually maximum order plus one. For example,
 	  a value of 13 means that the largest free memory block is 2^12 pages.
 
-if SPARC64
+if SPARC64 || COMPILE_TEST
 source "kernel/power/Kconfig"
 endif
 
@@ -525,7 +525,7 @@
 	bool
 	depends on SPARC64
 	default y
-	select COMPAT_BINFMT_ELF
+	select COMPAT_BINFMT_ELF if BINFMT_ELF
 	select HAVE_UID16
 	select ARCH_WANT_OLD_COMPAT_IPC
 	select COMPAT_OLD_SIGACTION
--- linux-ein-5.4.0.orig/arch/sparc/configs/sparc64_defconfig
+++ linux-ein-5.4.0/arch/sparc/configs/sparc64_defconfig
@@ -73,7 +73,6 @@
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_MULTI_LUN=y
 CONFIG_SCSI_CONSTANTS=y
--- linux-ein-5.4.0.orig/arch/sparc/include/asm/io_64.h
+++ linux-ein-5.4.0/arch/sparc/include/asm/io_64.h
@@ -407,6 +407,7 @@
 }
 
 #define ioremap_nocache(X,Y)		ioremap((X),(Y))
+#define ioremap_uc(X,Y)			ioremap((X),(Y))
 #define ioremap_wc(X,Y)			ioremap((X),(Y))
 #define ioremap_wt(X,Y)			ioremap((X),(Y))
 
--- linux-ein-5.4.0.orig/arch/sparc/include/asm/mman.h
+++ linux-ein-5.4.0/arch/sparc/include/asm/mman.h
@@ -57,35 +57,39 @@
 {
 	if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_ADI))
 		return 0;
-	if (prot & PROT_ADI) {
-		if (!adi_capable())
-			return 0;
+	return 1;
+}
 
-		if (addr) {
-			struct vm_area_struct *vma;
+#define arch_validate_flags(vm_flags) arch_validate_flags(vm_flags)
+/* arch_validate_flags() - Ensure combination of flags is valid for a
+ *	VMA.
+ */
+static inline bool arch_validate_flags(unsigned long vm_flags)
+{
+	/* If ADI is being enabled on this VMA, check for ADI
+	 * capability on the platform and ensure VMA is suitable
+	 * for ADI
+	 */
+	if (vm_flags & VM_SPARC_ADI) {
+		if (!adi_capable())
+			return false;
 
-			vma = find_vma(current->mm, addr);
-			if (vma) {
-				/* ADI can not be enabled on PFN
-				 * mapped pages
-				 */
-				if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
-					return 0;
+		/* ADI can not be enabled on PFN mapped pages */
+		if (vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
+			return false;
 
-				/* Mergeable pages can become unmergeable
-				 * if ADI is enabled on them even if they
-				 * have identical data on them. This can be
-				 * because ADI enabled pages with identical
-				 * data may still not have identical ADI
-				 * tags on them. Disallow ADI on mergeable
-				 * pages.
-				 */
-				if (vma->vm_flags & VM_MERGEABLE)
-					return 0;
-			}
-		}
+		/* Mergeable pages can become unmergeable
+		 * if ADI is enabled on them even if they
+		 * have identical data on them. This can be
+		 * because ADI enabled pages with identical
+		 * data may still not have identical ADI
+		 * tags on them. Disallow ADI on mergeable
+		 * pages.
+		 */
+		if (vm_flags & VM_MERGEABLE)
+			return false;
 	}
-	return 1;
+	return true;
 }
 #endif /* CONFIG_SPARC64 */
 
--- linux-ein-5.4.0.orig/arch/sparc/include/asm/timex_32.h
+++ linux-ein-5.4.0/arch/sparc/include/asm/timex_32.h
@@ -9,8 +9,6 @@
 
 #define CLOCK_TICK_RATE	1193180 /* Underlying HZ */
 
-/* XXX Maybe do something better at some point... -DaveM */
-typedef unsigned long cycles_t;
-#define get_cycles()	(0)
+#include <asm-generic/timex.h>
 
 #endif
--- linux-ein-5.4.0.orig/arch/sparc/include/asm/tlb_64.h
+++ linux-ein-5.4.0/arch/sparc/include/asm/tlb_64.h
@@ -28,6 +28,15 @@
 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
 #define tlb_flush(tlb)	flush_tlb_pending()
 
+/*
+ * SPARC64's hardware TLB fill does not use the Linux page-tables
+ * and therefore we don't need a TLBI when freeing page-table pages.
+ */
+
+#ifdef CONFIG_HAVE_RCU_TABLE_FREE
+#define tlb_needs_table_invalidate()	(false)
+#endif
+
 #include <asm-generic/tlb.h>
 
 #endif /* _SPARC64_TLB_H */
--- linux-ein-5.4.0.orig/arch/sparc/include/uapi/asm/ipcbuf.h
+++ linux-ein-5.4.0/arch/sparc/include/uapi/asm/ipcbuf.h
@@ -15,19 +15,19 @@
 
 struct ipc64_perm
 {
-	__kernel_key_t	key;
-	__kernel_uid_t	uid;
-	__kernel_gid_t	gid;
-	__kernel_uid_t	cuid;
-	__kernel_gid_t	cgid;
+	__kernel_key_t		key;
+	__kernel_uid32_t	uid;
+	__kernel_gid32_t	gid;
+	__kernel_uid32_t	cuid;
+	__kernel_gid32_t	cgid;
 #ifndef __arch64__
-	unsigned short	__pad0;
+	unsigned short		__pad0;
 #endif
-	__kernel_mode_t	mode;
-	unsigned short	__pad1;
-	unsigned short	seq;
-	unsigned long long __unused1;
-	unsigned long long __unused2;
+	__kernel_mode_t		mode;
+	unsigned short		__pad1;
+	unsigned short		seq;
+	unsigned long long	__unused1;
+	unsigned long long	__unused2;
 };
 
 #endif /* __SPARC_IPCBUF_H */
--- linux-ein-5.4.0.orig/arch/sparc/kernel/ioport.c
+++ linux-ein-5.4.0/arch/sparc/kernel/ioport.c
@@ -356,7 +356,9 @@
 void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
 		dma_addr_t dma_addr, unsigned long attrs)
 {
-	if (!sparc_dma_free_resource(cpu_addr, PAGE_ALIGN(size)))
+	size = PAGE_ALIGN(size);
+
+	if (!sparc_dma_free_resource(cpu_addr, size))
 		return;
 
 	dma_make_coherent(dma_addr, size);
@@ -366,8 +368,8 @@
 
 /* IIep is write-through, not flushing on cpu to device transfer. */
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	if (dir != PCI_DMA_TODEVICE)
 		dma_make_coherent(paddr, PAGE_ALIGN(size));
--- linux-ein-5.4.0.orig/arch/sparc/kernel/mdesc.c
+++ linux-ein-5.4.0/arch/sparc/kernel/mdesc.c
@@ -39,6 +39,7 @@
 	u32	node_sz; /* node block size */
 	u32	name_sz; /* name block size */
 	u32	data_sz; /* data block size */
+	char	data[];
 } __attribute__((aligned(16)));
 
 struct mdesc_elem {
@@ -612,7 +613,7 @@
 
 static struct mdesc_elem *node_block(struct mdesc_hdr *mdesc)
 {
-	return (struct mdesc_elem *) (mdesc + 1);
+	return (struct mdesc_elem *) mdesc->data;
 }
 
 static void *name_block(struct mdesc_hdr *mdesc)
--- linux-ein-5.4.0.orig/arch/sparc/kernel/ptrace_32.c
+++ linux-ein-5.4.0/arch/sparc/kernel/ptrace_32.c
@@ -46,82 +46,79 @@
 	REGSET_FP,
 };
 
+static int regwindow32_get(struct task_struct *target,
+			   const struct pt_regs *regs,
+			   u32 *uregs)
+{
+	unsigned long reg_window = regs->u_regs[UREG_I6];
+	int size = 16 * sizeof(u32);
+
+	if (target == current) {
+		if (copy_from_user(uregs, (void __user *)reg_window, size))
+			return -EFAULT;
+	} else {
+		if (access_process_vm(target, reg_window, uregs, size,
+				      FOLL_FORCE) != size)
+			return -EFAULT;
+	}
+	return 0;
+}
+
+static int regwindow32_set(struct task_struct *target,
+			   const struct pt_regs *regs,
+			   u32 *uregs)
+{
+	unsigned long reg_window = regs->u_regs[UREG_I6];
+	int size = 16 * sizeof(u32);
+
+	if (target == current) {
+		if (copy_to_user((void __user *)reg_window, uregs, size))
+			return -EFAULT;
+	} else {
+		if (access_process_vm(target, reg_window, uregs, size,
+				      FOLL_FORCE | FOLL_WRITE) != size)
+			return -EFAULT;
+	}
+	return 0;
+}
+
 static int genregs32_get(struct task_struct *target,
 			 const struct user_regset *regset,
 			 unsigned int pos, unsigned int count,
 			 void *kbuf, void __user *ubuf)
 {
 	const struct pt_regs *regs = target->thread.kregs;
-	unsigned long __user *reg_window;
-	unsigned long *k = kbuf;
-	unsigned long __user *u = ubuf;
-	unsigned long reg;
+	u32 uregs[16];
+	int ret;
 
 	if (target == current)
 		flush_user_windows();
 
-	pos /= sizeof(reg);
-	count /= sizeof(reg);
+	ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+				  regs->u_regs,
+				  0, 16 * sizeof(u32));
+	if (ret || !count)
+		return ret;
 
-	if (kbuf) {
-		for (; count > 0 && pos < 16; count--)
-			*k++ = regs->u_regs[pos++];
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (get_user(*k++, &reg_window[pos++]))
-				return -EFAULT;
-		}
-	} else {
-		for (; count > 0 && pos < 16; count--) {
-			if (put_user(regs->u_regs[pos++], u++))
-				return -EFAULT;
-		}
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (get_user(reg, &reg_window[pos++]) ||
-			    put_user(reg, u++))
-				return -EFAULT;
-		}
-	}
-	while (count > 0) {
-		switch (pos) {
-		case 32: /* PSR */
-			reg = regs->psr;
-			break;
-		case 33: /* PC */
-			reg = regs->pc;
-			break;
-		case 34: /* NPC */
-			reg = regs->npc;
-			break;
-		case 35: /* Y */
-			reg = regs->y;
-			break;
-		case 36: /* WIM */
-		case 37: /* TBR */
-			reg = 0;
-			break;
-		default:
-			goto finish;
-		}
-
-		if (kbuf)
-			*k++ = reg;
-		else if (put_user(reg, u++))
+	if (pos < 32 * sizeof(u32)) {
+		if (regwindow32_get(target, regs, uregs))
 			return -EFAULT;
-		pos++;
-		count--;
+		ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+					  uregs,
+					  16 * sizeof(u32), 32 * sizeof(u32));
+		if (ret || !count)
+			return ret;
 	}
-finish:
-	pos *= sizeof(reg);
-	count *= sizeof(reg);
 
-	return user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf,
-					38 * sizeof(reg), -1);
+	uregs[0] = regs->psr;
+	uregs[1] = regs->pc;
+	uregs[2] = regs->npc;
+	uregs[3] = regs->y;
+	uregs[4] = 0;	/* WIM */
+	uregs[5] = 0;	/* TBR */
+	return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+				  uregs,
+				  32 * sizeof(u32), 38 * sizeof(u32));
 }
 
 static int genregs32_set(struct task_struct *target,
@@ -130,82 +127,58 @@
 			 const void *kbuf, const void __user *ubuf)
 {
 	struct pt_regs *regs = target->thread.kregs;
-	unsigned long __user *reg_window;
-	const unsigned long *k = kbuf;
-	const unsigned long __user *u = ubuf;
-	unsigned long reg;
+	u32 uregs[16];
+	u32 psr;
+	int ret;
 
 	if (target == current)
 		flush_user_windows();
 
-	pos /= sizeof(reg);
-	count /= sizeof(reg);
-
-	if (kbuf) {
-		for (; count > 0 && pos < 16; count--)
-			regs->u_regs[pos++] = *k++;
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (put_user(*k++, &reg_window[pos++]))
-				return -EFAULT;
-		}
-	} else {
-		for (; count > 0 && pos < 16; count--) {
-			if (get_user(reg, u++))
-				return -EFAULT;
-			regs->u_regs[pos++] = reg;
-		}
-
-		reg_window = (unsigned long __user *) regs->u_regs[UREG_I6];
-		reg_window -= 16;
-		for (; count > 0 && pos < 32; count--) {
-			if (get_user(reg, u++) ||
-			    put_user(reg, &reg_window[pos++]))
-				return -EFAULT;
-		}
-	}
-	while (count > 0) {
-		unsigned long psr;
-
-		if (kbuf)
-			reg = *k++;
-		else if (get_user(reg, u++))
-			return -EFAULT;
-
-		switch (pos) {
-		case 32: /* PSR */
-			psr = regs->psr;
-			psr &= ~(PSR_ICC | PSR_SYSCALL);
-			psr |= (reg & (PSR_ICC | PSR_SYSCALL));
-			regs->psr = psr;
-			break;
-		case 33: /* PC */
-			regs->pc = reg;
-			break;
-		case 34: /* NPC */
-			regs->npc = reg;
-			break;
-		case 35: /* Y */
-			regs->y = reg;
-			break;
-		case 36: /* WIM */
-		case 37: /* TBR */
-			break;
-		default:
-			goto finish;
-		}
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 regs->u_regs,
+				 0, 16 * sizeof(u32));
+	if (ret || !count)
+		return ret;
 
-		pos++;
-		count--;
+	if (pos < 32 * sizeof(u32)) {
+		if (regwindow32_get(target, regs, uregs))
+			return -EFAULT;
+		ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+					 uregs,
+					 16 * sizeof(u32), 32 * sizeof(u32));
+		if (ret)
+			return ret;
+		if (regwindow32_set(target, regs, uregs))
+			return -EFAULT;
+		if (!count)
+			return 0;
 	}
-finish:
-	pos *= sizeof(reg);
-	count *= sizeof(reg);
-
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &psr,
+				 32 * sizeof(u32), 33 * sizeof(u32));
+	if (ret)
+		return ret;
+	regs->psr = (regs->psr & ~(PSR_ICC | PSR_SYSCALL)) |
+		    (psr & (PSR_ICC | PSR_SYSCALL));
+	if (!count)
+		return 0;
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &regs->pc,
+				 33 * sizeof(u32), 34 * sizeof(u32));
+	if (ret || !count)
+		return ret;
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &regs->npc,
+				 34 * sizeof(u32), 35 * sizeof(u32));
+	if (ret || !count)
+		return ret;
+	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+				 &regs->y,
+				 35 * sizeof(u32), 36 * sizeof(u32));
+	if (ret || !count)
+		return ret;
 	return user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
-					 38 * sizeof(reg), -1);
+					 36 * sizeof(u32), 38 * sizeof(u32));
 }
 
 static int fpregs32_get(struct task_struct *target,
--- linux-ein-5.4.0.orig/arch/sparc/kernel/ptrace_64.c
+++ linux-ein-5.4.0/arch/sparc/kernel/ptrace_64.c
@@ -572,19 +572,13 @@
 			for (; count > 0 && pos < 32; count--) {
 				if (access_process_vm(target,
 						      (unsigned long)
-						      &reg_window[pos],
+						      &reg_window[pos++],
 						      &reg, sizeof(reg),
 						      FOLL_FORCE)
 				    != sizeof(reg))
 					return -EFAULT;
-				if (access_process_vm(target,
-						      (unsigned long) u,
-						      &reg, sizeof(reg),
-						      FOLL_FORCE | FOLL_WRITE)
-				    != sizeof(reg))
+				if (put_user(reg, u++))
 					return -EFAULT;
-				pos++;
-				u++;
 			}
 		}
 	}
@@ -684,12 +678,7 @@
 			}
 		} else {
 			for (; count > 0 && pos < 32; count--) {
-				if (access_process_vm(target,
-						      (unsigned long)
-						      u,
-						      &reg, sizeof(reg),
-						      FOLL_FORCE)
-				    != sizeof(reg))
+				if (get_user(reg, u++))
 					return -EFAULT;
 				if (access_process_vm(target,
 						      (unsigned long)
--- linux-ein-5.4.0.orig/arch/sparc/kernel/setup_32.c
+++ linux-ein-5.4.0/arch/sparc/kernel/setup_32.c
@@ -422,3 +422,10 @@
 }
 
 subsys_initcall(topology_init);
+
+#if defined(CONFIG_SPARC32) && !defined(CONFIG_SMP)
+void __init arch_cpu_finalize_init(void)
+{
+	cpu_data(0).udelay_val = loops_per_jiffy;
+}
+#endif
--- linux-ein-5.4.0.orig/arch/sparc/kernel/smp_64.c
+++ linux-ein-5.4.0/arch/sparc/kernel/smp_64.c
@@ -1039,38 +1039,9 @@
  * are flush_tlb_*() routines, and these run after flush_cache_*()
  * which performs the flushw.
  *
- * The SMP TLB coherency scheme we use works as follows:
- *
- * 1) mm->cpu_vm_mask is a bit mask of which cpus an address
- *    space has (potentially) executed on, this is the heuristic
- *    we use to avoid doing cross calls.
- *
- *    Also, for flushing from kswapd and also for clones, we
- *    use cpu_vm_mask as the list of cpus to make run the TLB.
- *
- * 2) TLB context numbers are shared globally across all processors
- *    in the system, this allows us to play several games to avoid
- *    cross calls.
- *
- *    One invariant is that when a cpu switches to a process, and
- *    that processes tsk->active_mm->cpu_vm_mask does not have the
- *    current cpu's bit set, that tlb context is flushed locally.
- *
- *    If the address space is non-shared (ie. mm->count == 1) we avoid
- *    cross calls when we want to flush the currently running process's
- *    tlb state.  This is done by clearing all cpu bits except the current
- *    processor's in current->mm->cpu_vm_mask and performing the
- *    flush locally only.  This will force any subsequent cpus which run
- *    this task to flush the context from the local tlb if the process
- *    migrates to another cpu (again).
- *
- * 3) For shared address spaces (threads) and swapping we bite the
- *    bullet for most cases and perform the cross call (but only to
- *    the cpus listed in cpu_vm_mask).
- *
- *    The performance gain from "optimizing" away the cross call for threads is
- *    questionable (in theory the big win for threads is the massive sharing of
- *    address space state across processors).
+ * mm->cpu_vm_mask is a bit mask of which cpus an address
+ * space has (potentially) executed on, this is the heuristic
+ * we use to limit cross calls.
  */
 
 /* This currently is only used by the hugetlb arch pre-fault
@@ -1080,18 +1051,13 @@
 void smp_flush_tlb_mm(struct mm_struct *mm)
 {
 	u32 ctx = CTX_HWBITS(mm->context);
-	int cpu = get_cpu();
 
-	if (atomic_read(&mm->mm_users) == 1) {
-		cpumask_copy(mm_cpumask(mm), cpumask_of(cpu));
-		goto local_flush_and_out;
-	}
+	get_cpu();
 
 	smp_cross_call_masked(&xcall_flush_tlb_mm,
 			      ctx, 0, 0,
 			      mm_cpumask(mm));
 
-local_flush_and_out:
 	__flush_tlb_mm(ctx, SECONDARY_CONTEXT);
 
 	put_cpu();
@@ -1114,17 +1080,15 @@
 {
 	u32 ctx = CTX_HWBITS(mm->context);
 	struct tlb_pending_info info;
-	int cpu = get_cpu();
+
+	get_cpu();
 
 	info.ctx = ctx;
 	info.nr = nr;
 	info.vaddrs = vaddrs;
 
-	if (mm == current->mm && atomic_read(&mm->mm_users) == 1)
-		cpumask_copy(mm_cpumask(mm), cpumask_of(cpu));
-	else
-		smp_call_function_many(mm_cpumask(mm), tlb_pending_func,
-				       &info, 1);
+	smp_call_function_many(mm_cpumask(mm), tlb_pending_func,
+			       &info, 1);
 
 	__flush_tlb_pending(ctx, nr, vaddrs);
 
@@ -1134,14 +1098,13 @@
 void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr)
 {
 	unsigned long context = CTX_HWBITS(mm->context);
-	int cpu = get_cpu();
 
-	if (mm == current->mm && atomic_read(&mm->mm_users) == 1)
-		cpumask_copy(mm_cpumask(mm), cpumask_of(cpu));
-	else
-		smp_cross_call_masked(&xcall_flush_tlb_page,
-				      context, vaddr, 0,
-				      mm_cpumask(mm));
+	get_cpu();
+
+	smp_cross_call_masked(&xcall_flush_tlb_page,
+			      context, vaddr, 0,
+			      mm_cpumask(mm));
+
 	__flush_tlb_page(context, vaddr);
 
 	put_cpu();
--- linux-ein-5.4.0.orig/arch/sparc/kernel/traps_32.c
+++ linux-ein-5.4.0/arch/sparc/kernel/traps_32.c
@@ -86,9 +86,7 @@
 	}
 	printk("Instruction DUMP:");
 	instruction_dump ((unsigned long *) regs->pc);
-	if(regs->psr & PSR_PS)
-		do_exit(SIGKILL);
-	do_exit(SIGSEGV);
+	make_task_dead((regs->psr & PSR_PS) ? SIGKILL : SIGSEGV);
 }
 
 void do_hw_interrupt(struct pt_regs *regs, unsigned long type)
--- linux-ein-5.4.0.orig/arch/sparc/kernel/traps_64.c
+++ linux-ein-5.4.0/arch/sparc/kernel/traps_64.c
@@ -275,14 +275,13 @@
 			asi = (regs->tstate >> 24); /* saved %asi       */
 		else
 			asi = (insn >> 5);	    /* immediate asi    */
-		if ((asi & 0xf2) == ASI_PNF) {
-			if (insn & 0x1000000) {     /* op3[5:4]=3       */
-				handle_ldf_stq(insn, regs);
-				return true;
-			} else if (insn & 0x200000) { /* op3[2], stores */
+		if ((asi & 0xf6) == ASI_PNF) {
+			if (insn & 0x200000)        /* op3[2], stores   */
 				return false;
-			}
-			handle_ld_nf(insn, regs);
+			if (insn & 0x1000000)       /* op3[5:4]=3 (fp)  */
+				handle_ldf_stq(insn, regs);
+			else
+				handle_ld_nf(insn, regs);
 			return true;
 		}
 	}
@@ -2565,9 +2564,7 @@
 	}
 	if (panic_on_oops)
 		panic("Fatal exception");
-	if (regs->tstate & TSTATE_PRIV)
-		do_exit(SIGKILL);
-	do_exit(SIGSEGV);
+	make_task_dead((regs->tstate & TSTATE_PRIV)? SIGKILL : SIGSEGV);
 }
 EXPORT_SYMBOL(die_if_kernel);
 
--- linux-ein-5.4.0.orig/arch/sparc/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/sparc/kernel/vmlinux.lds.S
@@ -172,12 +172,14 @@
 	}
 	PERCPU_SECTION(SMP_CACHE_BYTES)
 
-#ifdef CONFIG_JUMP_LABEL
 	. = ALIGN(PAGE_SIZE);
 	.exit.text : {
 		EXIT_TEXT
 	}
-#endif
+
+	.exit.data : {
+		EXIT_DATA
+	}
 
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
--- linux-ein-5.4.0.orig/arch/sparc/lib/iomap.c
+++ linux-ein-5.4.0/arch/sparc/lib/iomap.c
@@ -19,8 +19,10 @@
 EXPORT_SYMBOL(ioport_map);
 EXPORT_SYMBOL(ioport_unmap);
 
+#ifdef CONFIG_PCI
 void pci_iounmap(struct pci_dev *dev, void __iomem * addr)
 {
 	/* nothing to do */
 }
 EXPORT_SYMBOL(pci_iounmap);
+#endif
--- linux-ein-5.4.0.orig/arch/sparc/lib/memset.S
+++ linux-ein-5.4.0/arch/sparc/lib/memset.S
@@ -142,6 +142,7 @@
 	ZERO_LAST_BLOCKS(%o0, 0x48, %g2)
 	ZERO_LAST_BLOCKS(%o0, 0x08, %g2)
 13:
+	EXT(12b, 13b, 21f)
 	be	8f
 	 andcc	%o1, 4, %g0
 
--- linux-ein-5.4.0.orig/arch/sparc/mm/init_32.c
+++ linux-ein-5.4.0/arch/sparc/mm/init_32.c
@@ -197,6 +197,9 @@
 	size = memblock_phys_mem_size() - memblock_reserved_size();
 	*pages_avail = (size >> PAGE_SHIFT) - high_pages;
 
+	/* Only allow low memory to be allocated via memblock allocation */
+	memblock_set_current_limit(max_low_pfn << PAGE_SHIFT);
+
 	return max_pfn;
 }
 
--- linux-ein-5.4.0.orig/arch/sparc/mm/init_64.c
+++ linux-ein-5.4.0/arch/sparc/mm/init_64.c
@@ -2904,7 +2904,7 @@
 	if (!page)
 		return NULL;
 	if (!pgtable_pte_page_ctor(page)) {
-		free_unref_page(page);
+		__free_page(page);
 		return NULL;
 	}
 	return (pte_t *) page_address(page);
--- linux-ein-5.4.0.orig/arch/sparc/mm/srmmu.c
+++ linux-ein-5.4.0/arch/sparc/mm/srmmu.c
@@ -379,7 +379,6 @@
 		return NULL;
 	page = pfn_to_page(__nocache_pa(pte) >> PAGE_SHIFT);
 	if (!pgtable_pte_page_ctor(page)) {
-		__free_page(page);
 		return NULL;
 	}
 	return page;
--- linux-ein-5.4.0.orig/arch/sparc/net/bpf_jit_comp_64.c
+++ linux-ein-5.4.0/arch/sparc/net/bpf_jit_comp_64.c
@@ -1287,6 +1287,9 @@
 			return 1;
 		break;
 	}
+	/* speculation barrier */
+	case BPF_ST | BPF_NOSPEC:
+		break;
 	/* ST: *(size *)(dst + off) = imm */
 	case BPF_ST | BPF_MEM | BPF_W:
 	case BPF_ST | BPF_MEM | BPF_H:
--- linux-ein-5.4.0.orig/arch/um/Kconfig
+++ linux-ein-5.4.0/arch/um/Kconfig
@@ -5,6 +5,7 @@
 config UML
 	bool
 	default y
+	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_HAS_KCOV
 	select ARCH_NO_PREEMPT
 	select HAVE_ARCH_AUDITSYSCALL
@@ -14,6 +15,7 @@
 	select HAVE_FUTEX_CMPXCHG if FUTEX
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DEBUG_BUGVERBOSE
+	select HAVE_COPY_THREAD_TLS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
 	select GENERIC_CLOCKEVENTS
--- linux-ein-5.4.0.orig/arch/um/Kconfig.debug
+++ linux-ein-5.4.0/arch/um/Kconfig.debug
@@ -17,6 +17,7 @@
 	bool "Enable gcov support"
 	depends on DEBUG_INFO
 	depends on !KCOV
+	depends on !MODULES
 	help
 	  This option allows developers to retrieve coverage data from a UML
 	  session.
--- linux-ein-5.4.0.orig/arch/um/Makefile
+++ linux-ein-5.4.0/arch/um/Makefile
@@ -132,14 +132,23 @@
 # The wrappers will select whether using "malloc" or the kernel allocator.
 LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc
 
+# Avoid binutils 2.39+ warnings by marking the stack non-executable and
+# ignorning warnings for the kallsyms sections.
+LDFLAGS_EXECSTACK = -z noexecstack
+ifeq ($(CONFIG_LD_IS_BFD),y)
+LDFLAGS_EXECSTACK += $(call ld-option,--no-warn-rwx-segments)
+endif
+
 LD_FLAGS_CMDLINE = $(foreach opt,$(KBUILD_LDFLAGS),-Wl,$(opt))
 
 # Used by link-vmlinux.sh which has special support for um link
 export CFLAGS_vmlinux := $(LINK-y) $(LINK_WRAPS) $(LD_FLAGS_CMDLINE)
+export LDFLAGS_vmlinux := $(LDFLAGS_EXECSTACK)
 
 # When cleaning we don't include .config, so we don't include
 # TT or skas makefiles and don't clean skas_ptregs.h.
 CLEAN_FILES += linux x.i gmon.out
+MRPROPER_DIRS += arch/$(SUBARCH)/include/generated
 
 archclean:
 	@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
--- linux-ein-5.4.0.orig/arch/um/configs/i386_defconfig
+++ linux-ein-5.4.0/arch/um/configs/i386_defconfig
@@ -35,6 +35,7 @@
 CONFIG_XTERM_CHAN=y
 CONFIG_CON_CHAN="pts"
 CONFIG_SSL_CHAN="pts"
+CONFIG_SOUND=m
 CONFIG_UML_SOUND=m
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
--- linux-ein-5.4.0.orig/arch/um/configs/x86_64_defconfig
+++ linux-ein-5.4.0/arch/um/configs/x86_64_defconfig
@@ -33,6 +33,7 @@
 CONFIG_XTERM_CHAN=y
 CONFIG_CON_CHAN="pts"
 CONFIG_SSL_CHAN="pts"
+CONFIG_SOUND=m
 CONFIG_UML_SOUND=m
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
--- linux-ein-5.4.0.orig/arch/um/drivers/Kconfig
+++ linux-ein-5.4.0/arch/um/drivers/Kconfig
@@ -104,24 +104,14 @@
 
 config UML_SOUND
 	tristate "Sound support"
+	depends on SOUND
+	select SOUND_OSS_CORE
 	help
 	  This option enables UML sound support.  If enabled, it will pull in
-	  soundcore and the UML hostaudio relay, which acts as a intermediary
+	  the UML hostaudio relay, which acts as a intermediary
 	  between the host's dsp and mixer devices and the UML sound system.
 	  It is safe to say 'Y' here.
 
-config SOUND
-	tristate
-	default UML_SOUND
-
-config SOUND_OSS_CORE
-	bool
-	default UML_SOUND
-
-config HOSTAUDIO
-	tristate
-	default UML_SOUND
-
 endmenu
 
 menu "UML Network Devices"
@@ -337,7 +327,7 @@
 endmenu
 
 config VIRTIO_UML
-	tristate "UML driver for virtio devices"
+	bool "UML driver for virtio devices"
 	select VIRTIO
 	help
 	  This driver provides support for virtio based paravirtual device
--- linux-ein-5.4.0.orig/arch/um/drivers/Makefile
+++ linux-ein-5.4.0/arch/um/drivers/Makefile
@@ -52,7 +52,7 @@
 obj-$(CONFIG_MCONSOLE) += mconsole.o
 obj-$(CONFIG_MMAPPER) += mmapper_kern.o 
 obj-$(CONFIG_BLK_DEV_UBD) += ubd.o 
-obj-$(CONFIG_HOSTAUDIO) += hostaudio.o
+obj-$(CONFIG_UML_SOUND) += hostaudio.o
 obj-$(CONFIG_NULL_CHAN) += null.o 
 obj-$(CONFIG_PORT_CHAN) += port.o
 obj-$(CONFIG_PTY_CHAN) += pty.o
--- linux-ein-5.4.0.orig/arch/um/drivers/chan_user.c
+++ linux-ein-5.4.0/arch/um/drivers/chan_user.c
@@ -26,10 +26,10 @@
 	n = read(fd, c_out, sizeof(*c_out));
 	if (n > 0)
 		return n;
-	else if (errno == EAGAIN)
-		return 0;
 	else if (n == 0)
 		return -EIO;
+	else if (errno == EAGAIN)
+		return 0;
 	return -errno;
 }
 
@@ -220,7 +220,7 @@
 		       unsigned long *stack_out)
 {
 	struct winch_data data;
-	int fds[2], n, err;
+	int fds[2], n, err, pid;
 	char c;
 
 	err = os_pipe(fds, 1, 1);
@@ -238,8 +238,9 @@
 	 * problem with /dev/net/tun, which if held open by this
 	 * thread, prevents the TUN/TAP device from being reused.
 	 */
-	err = run_helper_thread(winch_thread, &data, CLONE_FILES, stack_out);
-	if (err < 0) {
+	pid = run_helper_thread(winch_thread, &data, CLONE_FILES, stack_out);
+	if (pid < 0) {
+		err = pid;
 		printk(UM_KERN_ERR "fork of winch_thread failed - errno = %d\n",
 		       -err);
 		goto out_close;
@@ -256,13 +257,14 @@
 		goto out_close;
 	}
 
-	if (os_set_fd_block(*fd_out, 0)) {
+	err = os_set_fd_block(*fd_out, 0);
+	if (err) {
 		printk(UM_KERN_ERR "winch_tramp: failed to set thread_fd "
 		       "non-blocking.\n");
 		goto out_close;
 	}
 
-	return err;
+	return pid;
 
  out_close:
 	close(fds[1]);
--- linux-ein-5.4.0.orig/arch/um/drivers/mconsole_kern.c
+++ linux-ein-5.4.0/arch/um/drivers/mconsole_kern.c
@@ -217,7 +217,7 @@
 
 void mconsole_stop(struct mc_request *req)
 {
-	deactivate_fd(req->originating_fd, MCONSOLE_IRQ);
+	block_signals();
 	os_set_fd_block(req->originating_fd, 1);
 	mconsole_reply(req, "stopped", 0, 0);
 	for (;;) {
@@ -240,6 +240,7 @@
 	}
 	os_set_fd_block(req->originating_fd, 0);
 	mconsole_reply(req, "", 0, 0);
+	unblock_signals();
 }
 
 static DEFINE_SPINLOCK(mc_devices_lock);
--- linux-ein-5.4.0.orig/arch/um/drivers/slip_user.c
+++ linux-ein-5.4.0/arch/um/drivers/slip_user.c
@@ -145,7 +145,8 @@
 	}
 	sfd = err;
 
-	if (set_up_tty(sfd))
+	err = set_up_tty(sfd);
+	if (err)
 		goto out_close2;
 
 	pri->slave = sfd;
--- linux-ein-5.4.0.orig/arch/um/drivers/ubd_kern.c
+++ linux-ein-5.4.0/arch/um/drivers/ubd_kern.c
@@ -47,18 +47,25 @@
 /* Max request size is determined by sector mask - 32K */
 #define UBD_MAX_REQUEST (8 * sizeof(long))
 
+struct io_desc {
+	char *buffer;
+	unsigned long length;
+	unsigned long sector_mask;
+	unsigned long long cow_offset;
+	unsigned long bitmap_words[2];
+};
+
 struct io_thread_req {
 	struct request *req;
 	int fds[2];
 	unsigned long offsets[2];
 	unsigned long long offset;
-	unsigned long length;
-	char *buffer;
 	int sectorsize;
-	unsigned long sector_mask;
-	unsigned long long cow_offset;
-	unsigned long bitmap_words[2];
 	int error;
+
+	int desc_cnt;
+	/* io_desc has to be the last element of the struct */
+	struct io_desc io_desc[];
 };
 
 
@@ -524,12 +531,7 @@
 				blk_queue_max_write_zeroes_sectors(io_req->req->q, 0);
 				blk_queue_flag_clear(QUEUE_FLAG_DISCARD, io_req->req->q);
 			}
-			if ((io_req->error) || (io_req->buffer == NULL))
-				blk_mq_end_request(io_req->req, io_req->error);
-			else {
-				if (!blk_update_request(io_req->req, io_req->error, io_req->length))
-					__blk_mq_end_request(io_req->req, io_req->error);
-			}
+			blk_mq_end_request(io_req->req, io_req->error);
 			kfree(io_req);
 		}
 	}
@@ -945,6 +947,7 @@
 	blk_queue_write_cache(ubd_dev->queue, true, false);
 
 	blk_queue_max_segments(ubd_dev->queue, MAX_SG);
+	blk_queue_segment_boundary(ubd_dev->queue, PAGE_SIZE - 1);
 	err = ubd_disk_register(UBD_MAJOR, ubd_dev->size, n, &ubd_gendisk[n]);
 	if(err){
 		*error_out = "Failed to register device";
@@ -1288,37 +1291,74 @@
 	*cow_offset += bitmap_offset;
 }
 
-static void cowify_req(struct io_thread_req *req, unsigned long *bitmap,
+static void cowify_req(struct io_thread_req *req, struct io_desc *segment,
+		       unsigned long offset, unsigned long *bitmap,
 		       __u64 bitmap_offset, __u64 bitmap_len)
 {
-	__u64 sector = req->offset >> SECTOR_SHIFT;
+	__u64 sector = offset >> SECTOR_SHIFT;
 	int i;
 
-	if (req->length > (sizeof(req->sector_mask) * 8) << SECTOR_SHIFT)
+	if (segment->length > (sizeof(segment->sector_mask) * 8) << SECTOR_SHIFT)
 		panic("Operation too long");
 
 	if (req_op(req->req) == REQ_OP_READ) {
-		for (i = 0; i < req->length >> SECTOR_SHIFT; i++) {
+		for (i = 0; i < segment->length >> SECTOR_SHIFT; i++) {
 			if(ubd_test_bit(sector + i, (unsigned char *) bitmap))
 				ubd_set_bit(i, (unsigned char *)
-					    &req->sector_mask);
+					    &segment->sector_mask);
 		}
+	} else {
+		cowify_bitmap(offset, segment->length, &segment->sector_mask,
+			      &segment->cow_offset, bitmap, bitmap_offset,
+			      segment->bitmap_words, bitmap_len);
 	}
-	else cowify_bitmap(req->offset, req->length, &req->sector_mask,
-			   &req->cow_offset, bitmap, bitmap_offset,
-			   req->bitmap_words, bitmap_len);
 }
 
-static int ubd_queue_one_vec(struct blk_mq_hw_ctx *hctx, struct request *req,
-		u64 off, struct bio_vec *bvec)
+static void ubd_map_req(struct ubd *dev, struct io_thread_req *io_req,
+			struct request *req)
+{
+	struct bio_vec bvec;
+	struct req_iterator iter;
+	int i = 0;
+	unsigned long byte_offset = io_req->offset;
+	int op = req_op(req);
+
+	if (op == REQ_OP_WRITE_ZEROES || op == REQ_OP_DISCARD) {
+		io_req->io_desc[0].buffer = NULL;
+		io_req->io_desc[0].length = blk_rq_bytes(req);
+	} else {
+		rq_for_each_segment(bvec, req, iter) {
+			BUG_ON(i >= io_req->desc_cnt);
+
+			io_req->io_desc[i].buffer =
+				page_address(bvec.bv_page) + bvec.bv_offset;
+			io_req->io_desc[i].length = bvec.bv_len;
+			i++;
+		}
+	}
+
+	if (dev->cow.file) {
+		for (i = 0; i < io_req->desc_cnt; i++) {
+			cowify_req(io_req, &io_req->io_desc[i], byte_offset,
+				   dev->cow.bitmap, dev->cow.bitmap_offset,
+				   dev->cow.bitmap_len);
+			byte_offset += io_req->io_desc[i].length;
+		}
+
+	}
+}
+
+static struct io_thread_req *ubd_alloc_req(struct ubd *dev, struct request *req,
+					   int desc_cnt)
 {
-	struct ubd *dev = hctx->queue->queuedata;
 	struct io_thread_req *io_req;
-	int ret;
+	int i;
 
-	io_req = kmalloc(sizeof(struct io_thread_req), GFP_ATOMIC);
+	io_req = kmalloc(sizeof(*io_req) +
+			 (desc_cnt * sizeof(struct io_desc)),
+			 GFP_ATOMIC);
 	if (!io_req)
-		return -ENOMEM;
+		return NULL;
 
 	io_req->req = req;
 	if (dev->cow.file)
@@ -1326,26 +1366,41 @@
 	else
 		io_req->fds[0] = dev->fd;
 	io_req->error = 0;
-
-	if (bvec != NULL) {
-		io_req->buffer = page_address(bvec->bv_page) + bvec->bv_offset;
-		io_req->length = bvec->bv_len;
-	} else {
-		io_req->buffer = NULL;
-		io_req->length = blk_rq_bytes(req);
-	}
-
 	io_req->sectorsize = SECTOR_SIZE;
 	io_req->fds[1] = dev->fd;
-	io_req->cow_offset = -1;
-	io_req->offset = off;
-	io_req->sector_mask = 0;
+	io_req->offset = (u64) blk_rq_pos(req) << SECTOR_SHIFT;
 	io_req->offsets[0] = 0;
 	io_req->offsets[1] = dev->cow.data_offset;
 
-	if (dev->cow.file)
-		cowify_req(io_req, dev->cow.bitmap,
-			   dev->cow.bitmap_offset, dev->cow.bitmap_len);
+	for (i = 0 ; i < desc_cnt; i++) {
+		io_req->io_desc[i].sector_mask = 0;
+		io_req->io_desc[i].cow_offset = -1;
+	}
+
+	return io_req;
+}
+
+static int ubd_submit_request(struct ubd *dev, struct request *req)
+{
+	int segs = 0;
+	struct io_thread_req *io_req;
+	int ret;
+	int op = req_op(req);
+
+	if (op == REQ_OP_FLUSH)
+		segs = 0;
+	else if (op == REQ_OP_WRITE_ZEROES || op == REQ_OP_DISCARD)
+		segs = 1;
+	else
+		segs = blk_rq_nr_phys_segments(req);
+
+	io_req = ubd_alloc_req(dev, req, segs);
+	if (!io_req)
+		return -ENOMEM;
+
+	io_req->desc_cnt = segs;
+	if (segs)
+		ubd_map_req(dev, io_req, req);
 
 	ret = os_write_file(thread_fd, &io_req, sizeof(io_req));
 	if (ret != sizeof(io_req)) {
@@ -1356,22 +1411,6 @@
 	return ret;
 }
 
-static int queue_rw_req(struct blk_mq_hw_ctx *hctx, struct request *req)
-{
-	struct req_iterator iter;
-	struct bio_vec bvec;
-	int ret;
-	u64 off = (u64)blk_rq_pos(req) << SECTOR_SHIFT;
-
-	rq_for_each_segment(bvec, req, iter) {
-		ret = ubd_queue_one_vec(hctx, req, off, &bvec);
-		if (ret < 0)
-			return ret;
-		off += bvec.bv_len;
-	}
-	return 0;
-}
-
 static blk_status_t ubd_queue_rq(struct blk_mq_hw_ctx *hctx,
 				 const struct blk_mq_queue_data *bd)
 {
@@ -1384,17 +1423,12 @@
 	spin_lock_irq(&ubd_dev->lock);
 
 	switch (req_op(req)) {
-	/* operations with no lentgth/offset arguments */
 	case REQ_OP_FLUSH:
-		ret = ubd_queue_one_vec(hctx, req, 0, NULL);
-		break;
 	case REQ_OP_READ:
 	case REQ_OP_WRITE:
-		ret = queue_rw_req(hctx, req);
-		break;
 	case REQ_OP_DISCARD:
 	case REQ_OP_WRITE_ZEROES:
-		ret = ubd_queue_one_vec(hctx, req, (u64)blk_rq_pos(req) << 9, NULL);
+		ret = ubd_submit_request(ubd_dev, req);
 		break;
 	default:
 		WARN_ON_ONCE(1);
@@ -1482,22 +1516,22 @@
  * will result in unpredictable behaviour and/or crashes.
  */
 
-static int update_bitmap(struct io_thread_req *req)
+static int update_bitmap(struct io_thread_req *req, struct io_desc *segment)
 {
 	int n;
 
-	if(req->cow_offset == -1)
+	if (segment->cow_offset == -1)
 		return map_error(0);
 
-	n = os_pwrite_file(req->fds[1], &req->bitmap_words,
-			  sizeof(req->bitmap_words), req->cow_offset);
-	if (n != sizeof(req->bitmap_words))
+	n = os_pwrite_file(req->fds[1], &segment->bitmap_words,
+			  sizeof(segment->bitmap_words), segment->cow_offset);
+	if (n != sizeof(segment->bitmap_words))
 		return map_error(-n);
 
 	return map_error(0);
 }
 
-static void do_io(struct io_thread_req *req)
+static void do_io(struct io_thread_req *req, struct io_desc *desc)
 {
 	char *buf = NULL;
 	unsigned long len;
@@ -1512,21 +1546,20 @@
 		return;
 	}
 
-	nsectors = req->length / req->sectorsize;
+	nsectors = desc->length / req->sectorsize;
 	start = 0;
 	do {
-		bit = ubd_test_bit(start, (unsigned char *) &req->sector_mask);
+		bit = ubd_test_bit(start, (unsigned char *) &desc->sector_mask);
 		end = start;
 		while((end < nsectors) &&
-		      (ubd_test_bit(end, (unsigned char *)
-				    &req->sector_mask) == bit))
+		      (ubd_test_bit(end, (unsigned char *) &desc->sector_mask) == bit))
 			end++;
 
 		off = req->offset + req->offsets[bit] +
 			start * req->sectorsize;
 		len = (end - start) * req->sectorsize;
-		if (req->buffer != NULL)
-			buf = &req->buffer[start * req->sectorsize];
+		if (desc->buffer != NULL)
+			buf = &desc->buffer[start * req->sectorsize];
 
 		switch (req_op(req->req)) {
 		case REQ_OP_READ:
@@ -1566,7 +1599,8 @@
 		start = end;
 	} while(start < nsectors);
 
-	req->error = update_bitmap(req);
+	req->offset += len;
+	req->error = update_bitmap(req, desc);
 }
 
 /* Changed in start_io_thread, which is serialized by being called only
@@ -1599,14 +1633,21 @@
 		}
 
 		for (count = 0; count < n/sizeof(struct io_thread_req *); count++) {
+			struct io_thread_req *req = (*io_req_buffer)[count];
+			int i;
+
 			io_count++;
-			do_io((*io_req_buffer)[count]);
+			for (i = 0; !req->error && i < req->desc_cnt; i++)
+				do_io(req, &(req->io_desc[i]));
+
 		}
 
 		written = 0;
 
 		do {
-			res = os_write_file(kernel_fd, ((char *) io_req_buffer) + written, n);
+			res = os_write_file(kernel_fd,
+					    ((char *) io_req_buffer) + written,
+					    n - written);
 			if (res >= 0) {
 				written += res;
 			}
--- linux-ein-5.4.0.orig/arch/um/drivers/vector_kern.c
+++ linux-ein-5.4.0/arch/um/drivers/vector_kern.c
@@ -746,6 +746,7 @@
 
 	if (parsed == NULL) {
 		*error_out = "vector_config failed to parse parameters";
+		kfree(params);
 		return -EINVAL;
 	}
 
--- linux-ein-5.4.0.orig/arch/um/drivers/virtio_uml.c
+++ linux-ein-5.4.0/arch/um/drivers/virtio_uml.c
@@ -4,12 +4,12 @@
  *
  * Copyright(c) 2019 Intel Corporation
  *
- * This module allows virtio devices to be used over a vhost-user socket.
+ * This driver allows virtio devices to be used over a vhost-user socket.
  *
  * Guest devices can be instantiated by kernel module or command line
  * parameters. One device will be created for each parameter. Syntax:
  *
- *		[virtio_uml.]device=<socket>:<virtio_id>[:<platform_id>]
+ *		virtio_uml.device=<socket>:<virtio_id>[:<platform_id>]
  * where:
  *		<socket>	:= vhost-user socket path to connect
  *		<virtio_id>	:= virtio device id (as in virtio_ids.h)
@@ -83,7 +83,7 @@
 	return 0;
 }
 
-static int full_read(int fd, void *buf, int len)
+static int full_read(int fd, void *buf, int len, bool abortable)
 {
 	int rc;
 
@@ -93,7 +93,7 @@
 			buf += rc;
 			len -= rc;
 		}
-	} while (len && (rc > 0 || rc == -EINTR));
+	} while (len && (rc > 0 || rc == -EINTR || (!abortable && rc == -EAGAIN)));
 
 	if (rc < 0)
 		return rc;
@@ -104,7 +104,7 @@
 
 static int vhost_user_recv_header(int fd, struct vhost_user_msg *msg)
 {
-	return full_read(fd, msg, sizeof(msg->header));
+	return full_read(fd, msg, sizeof(msg->header), true);
 }
 
 static int vhost_user_recv(int fd, struct vhost_user_msg *msg,
@@ -118,7 +118,7 @@
 	size = msg->header.size;
 	if (size > max_payload_size)
 		return -EPROTO;
-	return full_read(fd, &msg->payload, size);
+	return full_read(fd, &msg->payload, size, false);
 }
 
 static int vhost_user_recv_resp(struct virtio_uml_device *vu_dev,
@@ -959,6 +959,7 @@
 	}
 
 	os_close_file(vu_dev->sock);
+	kfree(vu_dev);
 }
 
 /* Platform device */
@@ -977,7 +978,7 @@
 	if (!pdata)
 		return -EINVAL;
 
-	vu_dev = devm_kzalloc(&pdev->dev, sizeof(*vu_dev), GFP_KERNEL);
+	vu_dev = kzalloc(sizeof(*vu_dev), GFP_KERNEL);
 	if (!vu_dev)
 		return -ENOMEM;
 
@@ -993,7 +994,7 @@
 		rc = os_connect_socket(pdata->socket_path);
 	} while (rc == -EINTR);
 	if (rc < 0)
-		return rc;
+		goto error_free;
 	vu_dev->sock = rc;
 
 	rc = vhost_user_init(vu_dev);
@@ -1009,6 +1010,8 @@
 
 error_init:
 	os_close_file(vu_dev->sock);
+error_free:
+	kfree(vu_dev);
 	return rc;
 }
 
--- linux-ein-5.4.0.orig/arch/um/drivers/xterm.c
+++ linux-ein-5.4.0/arch/um/drivers/xterm.c
@@ -18,6 +18,7 @@
 struct xterm_chan {
 	int pid;
 	int helper_pid;
+	int chan_fd;
 	char *title;
 	int device;
 	int raw;
@@ -33,6 +34,7 @@
 		return NULL;
 	*data = ((struct xterm_chan) { .pid 		= -1,
 				       .helper_pid 	= -1,
+				       .chan_fd		= -1,
 				       .device 		= device,
 				       .title 		= opts->xterm_title,
 				       .raw  		= opts->raw } );
@@ -149,6 +151,7 @@
 		goto out_kill;
 	}
 
+	data->chan_fd = fd;
 	new = xterm_fd(fd, &data->helper_pid);
 	if (new < 0) {
 		err = new;
@@ -206,6 +209,8 @@
 		os_kill_process(data->helper_pid, 0);
 	data->helper_pid = -1;
 
+	if (data->chan_fd != -1)
+		os_close_file(data->chan_fd);
 	os_close_file(fd);
 }
 
--- linux-ein-5.4.0.orig/arch/um/include/asm/common.lds.S
+++ linux-ein-5.4.0/arch/um/include/asm/common.lds.S
@@ -83,8 +83,8 @@
 	__preinit_array_end = .;
   }
   .init_array : {
-        /* dummy - we call this ourselves */
 	__init_array_start = .;
+	*(.init_array)
 	__init_array_end = .;
   }
   .fini_array : {
--- linux-ein-5.4.0.orig/arch/um/include/asm/ptrace-generic.h
+++ linux-ein-5.4.0/arch/um/include/asm/ptrace-generic.h
@@ -36,7 +36,7 @@
 extern unsigned long getreg(struct task_struct *child, int regno);
 extern int putreg(struct task_struct *child, int regno, unsigned long value);
 
-extern int arch_copy_tls(struct task_struct *new);
+extern int arch_set_tls(struct task_struct *new, unsigned long tls);
 extern void clear_flushed_tls(struct task_struct *task);
 extern int syscall_trace_enter(struct pt_regs *regs);
 extern void syscall_trace_leave(struct pt_regs *regs);
--- linux-ein-5.4.0.orig/arch/um/include/asm/thread_info.h
+++ linux-ein-5.4.0/arch/um/include/asm/thread_info.h
@@ -63,6 +63,7 @@
 #define TIF_RESTORE_SIGMASK	7
 #define TIF_NOTIFY_RESUME	8
 #define TIF_SECCOMP		9	/* secure computing */
+#define TIF_SINGLESTEP		10	/* single stepping userspace */
 
 #define _TIF_SYSCALL_TRACE	(1 << TIF_SYSCALL_TRACE)
 #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
@@ -70,5 +71,6 @@
 #define _TIF_MEMDIE		(1 << TIF_MEMDIE)
 #define _TIF_SYSCALL_AUDIT	(1 << TIF_SYSCALL_AUDIT)
 #define _TIF_SECCOMP		(1 << TIF_SECCOMP)
+#define _TIF_SINGLESTEP		(1 << TIF_SINGLESTEP)
 
 #endif
--- linux-ein-5.4.0.orig/arch/um/include/asm/timex.h
+++ linux-ein-5.4.0/arch/um/include/asm/timex.h
@@ -2,13 +2,8 @@
 #ifndef __UM_TIMEX_H
 #define __UM_TIMEX_H
 
-typedef unsigned long cycles_t;
-
-static inline cycles_t get_cycles (void)
-{
-	return 0;
-}
-
 #define CLOCK_TICK_RATE (HZ)
 
+#include <asm-generic/timex.h>
+
 #endif
--- linux-ein-5.4.0.orig/arch/um/include/shared/registers.h
+++ linux-ein-5.4.0/arch/um/include/shared/registers.h
@@ -16,8 +16,8 @@
 extern int save_fpx_registers(int pid, unsigned long *fp_regs);
 extern int restore_fpx_registers(int pid, unsigned long *fp_regs);
 extern int save_registers(int pid, struct uml_pt_regs *regs);
-extern int restore_registers(int pid, struct uml_pt_regs *regs);
-extern int init_registers(int pid);
+extern int restore_pid_registers(int pid, struct uml_pt_regs *regs);
+extern int init_pid_registers(int pid);
 extern void get_safe_registers(unsigned long *regs, unsigned long *fp_regs);
 extern unsigned long get_thread_reg(int reg, jmp_buf *buf);
 extern int get_fp_registers(int pid, unsigned long *regs);
--- linux-ein-5.4.0.orig/arch/um/kernel/Makefile
+++ linux-ein-5.4.0/arch/um/kernel/Makefile
@@ -21,7 +21,6 @@
 
 obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o
 obj-$(CONFIG_GPROF)	+= gprof_syms.o
-obj-$(CONFIG_GCOV)	+= gmon_syms.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-$(CONFIG_STACKTRACE) += stacktrace.o
 
--- linux-ein-5.4.0.orig/arch/um/kernel/dyn.lds.S
+++ linux-ein-5.4.0/arch/um/kernel/dyn.lds.S
@@ -6,6 +6,12 @@
 ENTRY(_start)
 jiffies = jiffies_64;
 
+VERSION {
+  {
+    local: *;
+  };
+}
+
 SECTIONS
 {
   PROVIDE (__executable_start = START);
@@ -103,6 +109,7 @@
      be empty, which isn't pretty.  */
   . = ALIGN(32 / 8);
   .preinit_array     : { *(.preinit_array) }
+  .init_array     : { *(.init_array) }
   .fini_array     : { *(.fini_array) }
   .data           : {
     INIT_TASK_DATA(KERNEL_STACK_SIZE)
--- linux-ein-5.4.0.orig/arch/um/kernel/exec.c
+++ linux-ein-5.4.0/arch/um/kernel/exec.c
@@ -44,7 +44,7 @@
 {
 	PT_REGS_IP(regs) = eip;
 	PT_REGS_SP(regs) = esp;
-	current->ptrace &= ~PT_DTRACE;
+	clear_thread_flag(TIF_SINGLESTEP);
 #ifdef SUBARCH_EXECVE1
 	SUBARCH_EXECVE1(regs->regs);
 #endif
--- linux-ein-5.4.0.orig/arch/um/kernel/process.c
+++ linux-ein-5.4.0/arch/um/kernel/process.c
@@ -153,8 +153,8 @@
 	userspace(&current->thread.regs.regs, current_thread_info()->aux_fp_regs);
 }
 
-int copy_thread(unsigned long clone_flags, unsigned long sp,
-		unsigned long arg, struct task_struct * p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
+		unsigned long arg, struct task_struct * p, unsigned long tls)
 {
 	void (*handler)(void);
 	int kthread = current->flags & PF_KTHREAD;
@@ -188,7 +188,7 @@
 		 * Set a new TLS for the child thread?
 		 */
 		if (clone_flags & CLONE_SETTLS)
-			ret = arch_copy_tls(p);
+			ret = arch_set_tls(p, tls);
 	}
 
 	return ret;
@@ -380,7 +380,7 @@
 {
 	struct task_struct *task = t ? t : current;
 
-	if (!(task->ptrace & PT_DTRACE))
+	if (!test_thread_flag(TIF_SINGLESTEP))
 		return 0;
 
 	if (task->thread.singlestep_syscall)
--- linux-ein-5.4.0.orig/arch/um/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/um/kernel/ptrace.c
@@ -12,7 +12,7 @@
 
 void user_enable_single_step(struct task_struct *child)
 {
-	child->ptrace |= PT_DTRACE;
+	set_tsk_thread_flag(child, TIF_SINGLESTEP);
 	child->thread.singlestep_syscall = 0;
 
 #ifdef SUBARCH_SET_SINGLESTEPPING
@@ -22,7 +22,7 @@
 
 void user_disable_single_step(struct task_struct *child)
 {
-	child->ptrace &= ~PT_DTRACE;
+	clear_tsk_thread_flag(child, TIF_SINGLESTEP);
 	child->thread.singlestep_syscall = 0;
 
 #ifdef SUBARCH_SET_SINGLESTEPPING
@@ -121,7 +121,7 @@
 }
 
 /*
- * XXX Check PT_DTRACE vs TIF_SINGLESTEP for singlestepping check and
+ * XXX Check TIF_SINGLESTEP for singlestepping check and
  * PT_PTRACED vs TIF_SYSCALL_TRACE for syscall tracing check
  */
 int syscall_trace_enter(struct pt_regs *regs)
@@ -145,7 +145,7 @@
 	audit_syscall_exit(regs);
 
 	/* Fake a debug trap */
-	if (ptraced & PT_DTRACE)
+	if (test_thread_flag(TIF_SINGLESTEP))
 		send_sigtrap(&regs->regs, 0);
 
 	if (!test_thread_flag(TIF_SYSCALL_TRACE))
--- linux-ein-5.4.0.orig/arch/um/kernel/sigio.c
+++ linux-ein-5.4.0/arch/um/kernel/sigio.c
@@ -35,14 +35,14 @@
 }
 
 /* These are called from os-Linux/sigio.c to protect its pollfds arrays. */
-static DEFINE_SPINLOCK(sigio_spinlock);
+static DEFINE_MUTEX(sigio_mutex);
 
 void sigio_lock(void)
 {
-	spin_lock(&sigio_spinlock);
+	mutex_lock(&sigio_mutex);
 }
 
 void sigio_unlock(void)
 {
-	spin_unlock(&sigio_spinlock);
+	mutex_unlock(&sigio_mutex);
 }
--- linux-ein-5.4.0.orig/arch/um/kernel/signal.c
+++ linux-ein-5.4.0/arch/um/kernel/signal.c
@@ -53,7 +53,7 @@
 	unsigned long sp;
 	int err;
 
-	if ((current->ptrace & PT_DTRACE) && (current->ptrace & PT_PTRACED))
+	if (test_thread_flag(TIF_SINGLESTEP) && (current->ptrace & PT_PTRACED))
 		singlestep = 1;
 
 	/* Did we come from a system call? */
@@ -128,7 +128,7 @@
 	 * on the host.  The tracing thread will check this flag and
 	 * PTRACE_SYSCALL if necessary.
 	 */
-	if (current->ptrace & PT_DTRACE)
+	if (test_thread_flag(TIF_SINGLESTEP))
 		current->thread.singlestep_syscall =
 			is_syscall(PT_REGS_IP(&current->thread.regs));
 
--- linux-ein-5.4.0.orig/arch/um/kernel/tlb.c
+++ linux-ein-5.4.0/arch/um/kernel/tlb.c
@@ -126,6 +126,9 @@
 	struct host_vm_op *last;
 	int fd = -1, ret = 0;
 
+	if (virt + len > STUB_START && virt < STUB_END)
+		return -EINVAL;
+
 	if (hvc->userspace)
 		fd = phys_mapping(phys, &offset);
 	else
@@ -163,7 +166,7 @@
 	struct host_vm_op *last;
 	int ret = 0;
 
-	if ((addr >= STUB_START) && (addr < STUB_END))
+	if (addr + len > STUB_START && addr < STUB_END)
 		return -EINVAL;
 
 	if (hvc->index != 0) {
@@ -193,6 +196,9 @@
 	struct host_vm_op *last;
 	int ret = 0;
 
+	if (addr + len > STUB_START && addr < STUB_END)
+		return -EINVAL;
+
 	if (hvc->index != 0) {
 		last = &hvc->ops[hvc->index - 1];
 		if ((last->type == MPROTECT) &&
@@ -433,6 +439,10 @@
 	struct mm_id *mm_id;
 
 	address &= PAGE_MASK;
+
+	if (address >= STUB_START && address < STUB_END)
+		goto kill;
+
 	pgd = pgd_offset(mm, address);
 	if (!pgd_present(*pgd))
 		goto kill;
--- linux-ein-5.4.0.orig/arch/um/kernel/um_arch.c
+++ linux-ein-5.4.0/arch/um/kernel/um_arch.c
@@ -3,6 +3,7 @@
  * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
  */
 
+#include <linux/cpu.h>
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/mm.h>
@@ -77,7 +78,7 @@
 
 static void *c_start(struct seq_file *m, loff_t *pos)
 {
-	return *pos < NR_CPUS ? cpu_data + *pos : NULL;
+	return *pos < nr_cpu_ids ? cpu_data + *pos : NULL;
 }
 
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
@@ -353,7 +354,7 @@
 	setup_hostinfo(host_info, sizeof host_info);
 }
 
-void __init check_bugs(void)
+void __init arch_cpu_finalize_init(void)
 {
 	arch_check_bugs();
 	os_check_bugs();
--- linux-ein-5.4.0.orig/arch/um/kernel/uml.lds.S
+++ linux-ein-5.4.0/arch/um/kernel/uml.lds.S
@@ -7,6 +7,12 @@
 ENTRY(_start)
 jiffies = jiffies_64;
 
+VERSION {
+  {
+    local: *;
+  };
+}
+
 SECTIONS
 {
   /* This must contain the right address - not quite the default ELF one.*/
--- linux-ein-5.4.0.orig/arch/um/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/um/kernel/vmlinux.lds.S
@@ -1,4 +1,4 @@
-
+#define RUNTIME_DISCARD_EXIT
 KERNEL_STACK_SIZE = 4096 * (1 << CONFIG_KERNEL_STACK_ORDER);
 
 #ifdef CONFIG_LD_SCRIPT_STATIC
--- linux-ein-5.4.0.orig/arch/um/os-Linux/file.c
+++ linux-ein-5.4.0/arch/um/os-Linux/file.c
@@ -8,6 +8,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <signal.h>
+#include <linux/falloc.h>
 #include <sys/ioctl.h>
 #include <sys/mount.h>
 #include <sys/socket.h>
--- linux-ein-5.4.0.orig/arch/um/os-Linux/irq.c
+++ linux-ein-5.4.0/arch/um/os-Linux/irq.c
@@ -48,7 +48,7 @@
 int os_event_mask(int irq_type)
 {
 	if (irq_type == IRQ_READ)
-		return EPOLLIN | EPOLLPRI;
+		return EPOLLIN | EPOLLPRI | EPOLLERR | EPOLLHUP | EPOLLRDHUP;
 	if (irq_type == IRQ_WRITE)
 		return EPOLLOUT;
 	return 0;
--- linux-ein-5.4.0.orig/arch/um/os-Linux/main.c
+++ linux-ein-5.4.0/arch/um/os-Linux/main.c
@@ -170,7 +170,7 @@
 	 * that they won't be delivered after the exec, when
 	 * they are definitely not expected.
 	 */
-	unblock_signals_trace();
+	unblock_signals();
 
 	os_info("\n");
 	/* Reboot */
--- linux-ein-5.4.0.orig/arch/um/os-Linux/registers.c
+++ linux-ein-5.4.0/arch/um/os-Linux/registers.c
@@ -21,7 +21,7 @@
 	return 0;
 }
 
-int restore_registers(int pid, struct uml_pt_regs *regs)
+int restore_pid_registers(int pid, struct uml_pt_regs *regs)
 {
 	int err;
 
@@ -36,7 +36,7 @@
 static unsigned long exec_regs[MAX_REG_NR];
 static unsigned long exec_fp_regs[FP_SIZE];
 
-int init_registers(int pid)
+int init_pid_registers(int pid)
 {
 	int err;
 
--- linux-ein-5.4.0.orig/arch/um/os-Linux/skas/process.c
+++ linux-ein-5.4.0/arch/um/os-Linux/skas/process.c
@@ -5,6 +5,7 @@
  */
 
 #include <stdlib.h>
+#include <stdbool.h>
 #include <unistd.h>
 #include <sched.h>
 #include <errno.h>
@@ -641,10 +642,24 @@
 	UML_LONGJMP(&initial_jmpbuf, INIT_JMP_HALT);
 }
 
+static bool noreboot;
+
+static int __init noreboot_cmd_param(char *str, int *add)
+{
+	noreboot = true;
+	return 0;
+}
+
+__uml_setup("noreboot", noreboot_cmd_param,
+"noreboot\n"
+"    Rather than rebooting, exit always, akin to QEMU's -no-reboot option.\n"
+"    This is useful if you're using CONFIG_PANIC_TIMEOUT in order to catch\n"
+"    crashes in CI\n");
+
 void reboot_skas(void)
 {
 	block_signals_trace();
-	UML_LONGJMP(&initial_jmpbuf, INIT_JMP_REBOOT);
+	UML_LONGJMP(&initial_jmpbuf, noreboot ? INIT_JMP_HALT : INIT_JMP_REBOOT);
 }
 
 void __switch_mm(struct mm_id *mm_idp)
--- linux-ein-5.4.0.orig/arch/um/os-Linux/start_up.c
+++ linux-ein-5.4.0/arch/um/os-Linux/start_up.c
@@ -336,7 +336,7 @@
 	check_tmpexec();
 
 	pid = start_ptraced_child();
-	if (init_registers(pid))
+	if (init_pid_registers(pid))
 		fatal("Failed to initialize default registers");
 	stop_ptraced_child(pid, 1, 1);
 }
--- linux-ein-5.4.0.orig/arch/um/os-Linux/umid.c
+++ linux-ein-5.4.0/arch/um/os-Linux/umid.c
@@ -137,20 +137,13 @@
 {
 	char pid[sizeof("nnnnn\0")], *end, *file;
 	int dead, fd, p, n, err;
-	size_t filelen;
+	size_t filelen = strlen(dir) + sizeof("/pid") + 1;
 
-	err = asprintf(&file, "%s/pid", dir);
-	if (err < 0)
-		return 0;
+	file = malloc(filelen);
+	if (!file)
+		return -ENOMEM;
 
-	filelen = strlen(file);
-
-	n = snprintf(file, filelen, "%s/pid", dir);
-	if (n >= filelen) {
-		printk(UM_KERN_ERR "is_umdir_used - pid filename too long\n");
-		err = -E2BIG;
-		goto out;
-	}
+	snprintf(file, filelen, "%s/pid", dir);
 
 	dead = 0;
 	fd = open(file, O_RDONLY);
--- linux-ein-5.4.0.orig/arch/x86/Kconfig
+++ linux-ein-5.4.0/arch/x86/Kconfig
@@ -60,6 +60,7 @@
 	select ARCH_CLOCKSOURCE_DATA
 	select ARCH_CLOCKSOURCE_INIT
 	select ARCH_HAS_ACPI_TABLE_UPGRADE	if ACPI
+	select ARCH_HAS_CPU_FINALIZE_INIT
 	select ARCH_HAS_DEBUG_VIRTUAL
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_ELF_RANDOMIZE
@@ -73,7 +74,6 @@
 	select ARCH_HAS_PMEM_API		if X86_64
 	select ARCH_HAS_PTE_DEVMAP		if X86_64
 	select ARCH_HAS_PTE_SPECIAL
-	select ARCH_HAS_REFCOUNT
 	select ARCH_HAS_UACCESS_FLUSHCACHE	if X86_64
 	select ARCH_HAS_UACCESS_MCSAFE		if X86_64 && X86_MCE
 	select ARCH_HAS_SET_MEMORY
@@ -550,6 +550,7 @@
 	depends on X86_EXTENDED_PLATFORM
 	depends on NUMA
 	depends on EFI
+	depends on KEXEC_CORE
 	depends on X86_X2APIC
 	depends on PCI
 	---help---
@@ -1424,7 +1425,7 @@
 
 config HIGHMEM64G
 	bool "64GB"
-	depends on !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !WINCHIP3D && !MK6
+	depends on !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6
 	select X86_PAE
 	---help---
 	  Select this if you have a 32-bit processor and more than 4
@@ -1540,7 +1541,6 @@
 
 config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT
 	bool "Activate AMD Secure Memory Encryption (SME) by default"
-	default y
 	depends on AMD_MEM_ENCRYPT
 	---help---
 	  Say yes to have system memory encrypted by default if running on
@@ -1990,6 +1990,7 @@
 	depends on ACPI
 	select UCS2_STRING
 	select EFI_RUNTIME_WRAPPERS
+	select ARCH_USE_MEMREMAP_PROT
 	---help---
 	  This enables the kernel to use EFI runtime services that are
 	  available (such as the EFI variable services).
@@ -2480,6 +2481,25 @@
 
 endmenu
 
+config GDS_FORCE_MITIGATION
+	bool "Force GDS Mitigation"
+	depends on CPU_SUP_INTEL
+	default n
+	help
+	  Gather Data Sampling (GDS) is a hardware vulnerability which allows
+	  unprivileged speculative access to data which was previously stored in
+	  vector registers.
+
+	  This option is equivalent to setting gather_data_sampling=force on the
+	  command line. The microcode mitigation is used if present, otherwise
+	  AVX is disabled as a mitigation. On affected systems that are missing
+	  the microcode any userspace code that unconditionally uses AVX will
+	  break with this option set.
+
+	  Setting this option on systems not vulnerable to GDS has no effect.
+
+	  If in doubt, say N.
+
 config ARCH_HAS_ADD_PAGES
 	def_bool y
 	depends on X86_64 && ARCH_ENABLE_MEMORY_HOTPLUG
--- linux-ein-5.4.0.orig/arch/x86/Makefile
+++ linux-ein-5.4.0/arch/x86/Makefile
@@ -34,12 +34,13 @@
 REALMODE_CFLAGS	:= $(M16_CFLAGS) -g -Os -DDISABLE_BRANCH_PROFILING \
 		   -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
 		   -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
-		   -mno-mmx -mno-sse
+		   -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
 
 REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding)
 REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector)
 REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -Wno-address-of-packed-member)
 REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), $(cc_stack_align4))
+REALMODE_CFLAGS += $(CLANG_FLAGS)
 export REALMODE_CFLAGS
 
 # BITS is used as extension for files which are available in a 32 bit
@@ -61,6 +62,9 @@
 KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
 KBUILD_CFLAGS += $(call cc-option,-mno-avx,)
 
+# Intel CET isn't enabled in the kernel
+KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
+
 ifeq ($(CONFIG_X86_32),y)
         BITS := 32
         UTS_MACHINE := i386
--- linux-ein-5.4.0.orig/arch/x86/boot/Makefile
+++ linux-ein-5.4.0/arch/x86/boot/Makefile
@@ -87,7 +87,7 @@
 
 SETUP_OBJS = $(addprefix $(obj)/,$(setup-y))
 
-sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [ABCDGRSTVW] \(startup_32\|startup_64\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|z_.*\)$$/\#define ZO_\2 0x\1/p'
+sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [a-zA-Z] \(startup_32\|startup_64\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|z_.*\)$$/\#define ZO_\2 0x\1/p'
 
 quiet_cmd_zoffset = ZOFFSET $@
       cmd_zoffset = $(NM) $< | sed -n $(sed-zoffset) > $@
@@ -100,7 +100,7 @@
 AFLAGS_header.o += -I$(objtree)/$(obj)
 $(obj)/header.o: $(obj)/zoffset.h
 
-LDFLAGS_setup.elf	:= -m elf_i386 -T
+LDFLAGS_setup.elf	:= -m elf_i386 -z noexecstack -T
 $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE
 	$(call if_changed,ld)
 
--- linux-ein-5.4.0.orig/arch/x86/boot/bioscall.S
+++ linux-ein-5.4.0/arch/x86/boot/bioscall.S
@@ -32,7 +32,7 @@
 	movw	%dx, %si
 	movw	%sp, %di
 	movw	$11, %cx
-	rep; movsd
+	rep; movsl
 
 	/* Pop full state from the stack */
 	popal
@@ -67,7 +67,7 @@
 	jz	4f
 	movw	%sp, %si
 	movw	$11, %cx
-	rep; movsd
+	rep; movsl
 4:	addw	$44, %sp
 
 	/* Restore state and return */
--- linux-ein-5.4.0.orig/arch/x86/boot/boot.h
+++ linux-ein-5.4.0/arch/x86/boot/boot.h
@@ -110,66 +110,78 @@
 
 static inline u8 rdfs8(addr_t addr)
 {
+	u8 *ptr = (u8 *)absolute_pointer(addr);
 	u8 v;
-	asm volatile("movb %%fs:%1,%0" : "=q" (v) : "m" (*(u8 *)addr));
+	asm volatile("movb %%fs:%1,%0" : "=q" (v) : "m" (*ptr));
 	return v;
 }
 static inline u16 rdfs16(addr_t addr)
 {
+	u16 *ptr = (u16 *)absolute_pointer(addr);
 	u16 v;
-	asm volatile("movw %%fs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr));
+	asm volatile("movw %%fs:%1,%0" : "=r" (v) : "m" (*ptr));
 	return v;
 }
 static inline u32 rdfs32(addr_t addr)
 {
+	u32 *ptr = (u32 *)absolute_pointer(addr);
 	u32 v;
-	asm volatile("movl %%fs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr));
+	asm volatile("movl %%fs:%1,%0" : "=r" (v) : "m" (*ptr));
 	return v;
 }
 
 static inline void wrfs8(u8 v, addr_t addr)
 {
-	asm volatile("movb %1,%%fs:%0" : "+m" (*(u8 *)addr) : "qi" (v));
+	u8 *ptr = (u8 *)absolute_pointer(addr);
+	asm volatile("movb %1,%%fs:%0" : "+m" (*ptr) : "qi" (v));
 }
 static inline void wrfs16(u16 v, addr_t addr)
 {
-	asm volatile("movw %1,%%fs:%0" : "+m" (*(u16 *)addr) : "ri" (v));
+	u16 *ptr = (u16 *)absolute_pointer(addr);
+	asm volatile("movw %1,%%fs:%0" : "+m" (*ptr) : "ri" (v));
 }
 static inline void wrfs32(u32 v, addr_t addr)
 {
-	asm volatile("movl %1,%%fs:%0" : "+m" (*(u32 *)addr) : "ri" (v));
+	u32 *ptr = (u32 *)absolute_pointer(addr);
+	asm volatile("movl %1,%%fs:%0" : "+m" (*ptr) : "ri" (v));
 }
 
 static inline u8 rdgs8(addr_t addr)
 {
+	u8 *ptr = (u8 *)absolute_pointer(addr);
 	u8 v;
-	asm volatile("movb %%gs:%1,%0" : "=q" (v) : "m" (*(u8 *)addr));
+	asm volatile("movb %%gs:%1,%0" : "=q" (v) : "m" (*ptr));
 	return v;
 }
 static inline u16 rdgs16(addr_t addr)
 {
+	u16 *ptr = (u16 *)absolute_pointer(addr);
 	u16 v;
-	asm volatile("movw %%gs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr));
+	asm volatile("movw %%gs:%1,%0" : "=r" (v) : "m" (*ptr));
 	return v;
 }
 static inline u32 rdgs32(addr_t addr)
 {
+	u32 *ptr = (u32 *)absolute_pointer(addr);
 	u32 v;
-	asm volatile("movl %%gs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr));
+	asm volatile("movl %%gs:%1,%0" : "=r" (v) : "m" (*ptr));
 	return v;
 }
 
 static inline void wrgs8(u8 v, addr_t addr)
 {
-	asm volatile("movb %1,%%gs:%0" : "+m" (*(u8 *)addr) : "qi" (v));
+	u8 *ptr = (u8 *)absolute_pointer(addr);
+	asm volatile("movb %1,%%gs:%0" : "+m" (*ptr) : "qi" (v));
 }
 static inline void wrgs16(u16 v, addr_t addr)
 {
-	asm volatile("movw %1,%%gs:%0" : "+m" (*(u16 *)addr) : "ri" (v));
+	u16 *ptr = (u16 *)absolute_pointer(addr);
+	asm volatile("movw %1,%%gs:%0" : "+m" (*ptr) : "ri" (v));
 }
 static inline void wrgs32(u32 v, addr_t addr)
 {
-	asm volatile("movl %1,%%gs:%0" : "+m" (*(u32 *)addr) : "ri" (v));
+	u32 *ptr = (u32 *)absolute_pointer(addr);
+	asm volatile("movl %1,%%gs:%0" : "+m" (*ptr) : "ri" (v));
 }
 
 /* Note: these only return true/false, not a signed return value! */
--- linux-ein-5.4.0.orig/arch/x86/boot/compressed/Makefile
+++ linux-ein-5.4.0/arch/x86/boot/compressed/Makefile
@@ -38,6 +38,8 @@
 KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
 KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
 KBUILD_CFLAGS += -Wno-pointer-sign
+# Disable relocation relaxation in case the link is not PIE.
+KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mrelax-relocations=no)
 
 KBUILD_AFLAGS  := $(KBUILD_CFLAGS) -D__ASSEMBLY__
 GCOV_PROFILE := n
@@ -55,6 +57,10 @@
 KBUILD_LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \
 	&& echo "-z noreloc-overflow -pie --no-dynamic-linker")
 endif
+
+KBUILD_LDFLAGS += -z noexecstack
+KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
+
 LDFLAGS_vmlinux := -T
 
 hostprogs-y	:= mkpiggy
@@ -102,7 +108,7 @@
 quiet_cmd_check_data_rel = DATAREL $@
 define cmd_check_data_rel
 	for obj in $(filter %.o,$^); do \
-		${CROSS_COMPILE}readelf -S $$obj | grep -qF .rel.local && { \
+		$(READELF) -S $$obj | grep -qF .rel.local && { \
 			echo "error: $$obj has data relocations!" >&2; \
 			exit 1; \
 		} || true; \
--- linux-ein-5.4.0.orig/arch/x86/boot/compressed/acpi.c
+++ linux-ein-5.4.0/arch/x86/boot/compressed/acpi.c
@@ -393,7 +393,13 @@
 	table = table_addr + sizeof(struct acpi_table_srat);
 
 	while (table + sizeof(struct acpi_subtable_header) < table_end) {
+
 		sub_table = (struct acpi_subtable_header *)table;
+		if (!sub_table->length) {
+			debug_putstr("Invalid zero length SRAT subtable.\n");
+			return 0;
+		}
+
 		if (sub_table->type == ACPI_SRAT_TYPE_MEMORY_AFFINITY) {
 			struct acpi_srat_mem_affinity *ma;
 
--- linux-ein-5.4.0.orig/arch/x86/boot/compressed/head_32.S
+++ linux-ein-5.4.0/arch/x86/boot/compressed/head_32.S
@@ -49,16 +49,17 @@
  * Position Independent Executable (PIE) so that linker won't optimize
  * R_386_GOT32X relocation to its fixed symbol address.  Older
  * linkers generate R_386_32 relocations against locally defined symbols,
- * _bss, _ebss, _got and _egot, in PIE.  It isn't wrong, just less
+ * _bss, _ebss, _got, _egot and _end, in PIE.  It isn't wrong, just less
  * optimal than R_386_RELATIVE.  But the x86 kernel fails to properly handle
  * R_386_32 relocations when relocating the kernel.  To generate
- * R_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as
+ * R_386_RELATIVE relocations, we mark _bss, _ebss, _got, _egot and _end as
  * hidden:
  */
 	.hidden _bss
 	.hidden _ebss
 	.hidden _got
 	.hidden _egot
+	.hidden _end
 
 	__HEAD
 ENTRY(startup_32)
@@ -106,7 +107,7 @@
 	notl	%eax
 	andl    %eax, %ebx
 	cmpl	$LOAD_PHYSICAL_ADDR, %ebx
-	jge	1f
+	jae	1f
 #endif
 	movl	$LOAD_PHYSICAL_ADDR, %ebx
 1:
@@ -209,7 +210,7 @@
 #endif
 
 	.text
-.Lrelocated:
+SYM_FUNC_START_LOCAL_NOALIGN(.Lrelocated)
 
 /*
  * Clear BSS (stack is currently empty)
@@ -260,6 +261,7 @@
  */
 	xorl	%ebx, %ebx
 	jmp	*%eax
+SYM_FUNC_END(.Lrelocated)
 
 #ifdef CONFIG_EFI_STUB
 	.data
--- linux-ein-5.4.0.orig/arch/x86/boot/compressed/head_64.S
+++ linux-ein-5.4.0/arch/x86/boot/compressed/head_64.S
@@ -42,6 +42,7 @@
 	.hidden _ebss
 	.hidden _got
 	.hidden _egot
+	.hidden _end
 
 	__HEAD
 	.code32
@@ -106,7 +107,7 @@
 	notl	%eax
 	andl	%eax, %ebx
 	cmpl	$LOAD_PHYSICAL_ADDR, %ebx
-	jge	1f
+	jae	1f
 #endif
 	movl	$LOAD_PHYSICAL_ADDR, %ebx
 1:
@@ -244,6 +245,11 @@
 	leal	efi32_config(%ebp), %eax
 	movl	%eax, efi_config(%ebp)
 
+	/* Disable paging */
+	movl	%cr0, %eax
+	btrl	$X86_CR0_PG_BIT, %eax
+	movl	%eax, %cr0
+
 	jmp	startup_32
 ENDPROC(efi32_stub_entry)
 #endif
@@ -292,7 +298,7 @@
 	notq	%rax
 	andq	%rax, %rbp
 	cmpq	$LOAD_PHYSICAL_ADDR, %rbp
-	jge	1f
+	jae	1f
 #endif
 	movq	$LOAD_PHYSICAL_ADDR, %rbp
 1:
@@ -375,11 +381,25 @@
 	/* Save the trampoline address in RCX */
 	movq	%rax, %rcx
 
+	/* Set up 32-bit addressable stack */
+	leaq	TRAMPOLINE_32BIT_STACK_END(%rcx), %rsp
+
 	/*
-	 * Load the address of trampoline_return() into RDI.
-	 * It will be used by the trampoline to return to the main code.
+	 * Preserve live 64-bit registers on the stack: this is necessary
+	 * because the architecture does not guarantee that GPRs will retain
+	 * their full 64-bit values across a 32-bit mode switch.
+	 */
+	pushq	%rbp
+	pushq	%rbx
+	pushq	%rsi
+
+	/*
+	 * Push the 64-bit address of trampoline_return() onto the new stack.
+	 * It will be used by the trampoline to return to the main code. Due to
+	 * the 32-bit mode switch, it cannot be kept it in a register either.
 	 */
 	leaq	trampoline_return(%rip), %rdi
+	pushq	%rdi
 
 	/* Switch to compatibility mode (CS.L = 0 CS.D = 1) via far return */
 	pushq	$__KERNEL32_CS
@@ -387,6 +407,11 @@
 	pushq	%rax
 	lretq
 trampoline_return:
+	/* Restore live 64-bit registers */
+	popq	%rsi
+	popq	%rbx
+	popq	%rbp
+
 	/* Restore the stack, the 32-bit trampoline uses its own stack */
 	leaq	boot_stack_end(%rbx), %rsp
 
@@ -511,7 +536,7 @@
 #endif
 
 	.text
-.Lrelocated:
+SYM_FUNC_START_LOCAL_NOALIGN(.Lrelocated)
 
 /*
  * Clear BSS (stack is currently empty)
@@ -540,6 +565,7 @@
  * Jump to the decompressed kernel.
  */
 	jmp	*%rax
+SYM_FUNC_END(.Lrelocated)
 
 /*
  * Adjust the global offset table
@@ -566,7 +592,7 @@
 /*
  * This is the 32-bit trampoline that will be copied over to low memory.
  *
- * RDI contains the return address (might be above 4G).
+ * Return address is at the top of the stack (might be above 4G).
  * ECX contains the base address of the trampoline memory.
  * Non zero RDX means trampoline needs to enable 5-level paging.
  */
@@ -576,9 +602,6 @@
 	movl	%eax, %ds
 	movl	%eax, %ss
 
-	/* Set up new stack */
-	leal	TRAMPOLINE_32BIT_STACK_END(%ecx), %esp
-
 	/* Disable paging */
 	movl	%cr0, %eax
 	btrl	$X86_CR0_PG_BIT, %eax
@@ -635,9 +658,10 @@
 	lret
 
 	.code64
-.Lpaging_enabled:
+SYM_FUNC_START_LOCAL_NOALIGN(.Lpaging_enabled)
 	/* Return from the trampoline */
-	jmp	*%rdi
+	retq
+SYM_FUNC_END(.Lpaging_enabled)
 
 	/*
          * The trampoline code has a size limit.
@@ -647,11 +671,12 @@
 	.org	trampoline_32bit_src + TRAMPOLINE_32BIT_CODE_SIZE
 
 	.code32
-.Lno_longmode:
+SYM_FUNC_START_LOCAL_NOALIGN(.Lno_longmode)
 	/* This isn't an x86-64 CPU, so hang intentionally, we cannot continue */
 1:
 	hlt
 	jmp     1b
+SYM_FUNC_END(.Lno_longmode)
 
 #include "../../kernel/verify_cpu.S"
 
--- linux-ein-5.4.0.orig/arch/x86/boot/compressed/kaslr_64.c
+++ linux-ein-5.4.0/arch/x86/boot/compressed/kaslr_64.c
@@ -29,9 +29,6 @@
 #define __PAGE_OFFSET __PAGE_OFFSET_BASE
 #include "../../mm/ident_map.c"
 
-/* Used by pgtable.h asm code to force instruction serialization. */
-unsigned long __force_order;
-
 /* Used to track our page table allocation area. */
 struct alloc_pgt_data {
 	unsigned char *pgt_buf;
--- linux-ein-5.4.0.orig/arch/x86/boot/compressed/pgtable_64.c
+++ linux-ein-5.4.0/arch/x86/boot/compressed/pgtable_64.c
@@ -5,15 +5,6 @@
 #include "pgtable.h"
 #include "../string.h"
 
-/*
- * __force_order is used by special_insns.h asm code to force instruction
- * serialization.
- *
- * It is not referenced from the code, but GCC < 5 with -fPIE would fail
- * due to an undefined symbol. Define it to make these ancient GCCs work.
- */
-unsigned long __force_order;
-
 #define BIOS_START_MIN		0x20000U	/* 128K, less than this is insane */
 #define BIOS_START_MAX		0x9f000U	/* 640K, absolute maximum */
 
--- linux-ein-5.4.0.orig/arch/x86/boot/main.c
+++ linux-ein-5.4.0/arch/x86/boot/main.c
@@ -33,7 +33,7 @@
 		u16 cl_offset;
 	};
 	const struct old_cmdline * const oldcmd =
-		(const struct old_cmdline *)OLD_CL_ADDRESS;
+		absolute_pointer(OLD_CL_ADDRESS);
 
 	BUILD_BUG_ON(sizeof(boot_params) != 4096);
 	memcpy(&boot_params.hdr, &hdr, sizeof(hdr));
--- linux-ein-5.4.0.orig/arch/x86/boot/pmjump.S
+++ linux-ein-5.4.0/arch/x86/boot/pmjump.S
@@ -40,13 +40,13 @@
 
 	# Transition to 32-bit mode
 	.byte	0x66, 0xea		# ljmpl opcode
-2:	.long	in_pm32			# offset
+2:	.long	.Lin_pm32		# offset
 	.word	__BOOT_CS		# segment
 ENDPROC(protected_mode_jump)
 
 	.code32
 	.section ".text32","ax"
-GLOBAL(in_pm32)
+SYM_FUNC_START_LOCAL_NOALIGN(.Lin_pm32)
 	# Set up data segments for flat 32-bit mode
 	movl	%ecx, %ds
 	movl	%ecx, %es
@@ -72,4 +72,4 @@
 	lldt	%cx
 
 	jmpl	*%eax			# Jump to the 32-bit entrypoint
-ENDPROC(in_pm32)
+SYM_FUNC_END(.Lin_pm32)
--- linux-ein-5.4.0.orig/arch/x86/boot/setup.ld
+++ linux-ein-5.4.0/arch/x86/boot/setup.ld
@@ -20,7 +20,7 @@
 	.initdata	: { *(.initdata) }
 	__end_init = .;
 
-	.text		: { *(.text) }
+	.text		: { *(.text .text.*) }
 	.text32		: { *(.text32) }
 
 	. = ALIGN(16);
--- linux-ein-5.4.0.orig/arch/x86/boot/video-vga.c
+++ linux-ein-5.4.0/arch/x86/boot/video-vga.c
@@ -188,7 +188,7 @@
 	vga_set_vertical_end(60*8);
 }
 
-static int vga_set_mode(struct mode_info *mode)
+static int __attribute__((optimize("no-jump-tables"))) vga_set_mode(struct mode_info *mode)
 {
 	/* Set the basic mode */
 	vga_set_basic_mode();
--- linux-ein-5.4.0.orig/arch/x86/configs/i386_defconfig
+++ linux-ein-5.4.0/arch/x86/configs/i386_defconfig
@@ -137,7 +137,6 @@
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SPI_ATTRS=y
@@ -205,7 +204,6 @@
 CONFIG_FB_TILEBLITTING=y
 CONFIG_FB_EFI=y
 # CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
--- linux-ein-5.4.0.orig/arch/x86/configs/x86_64_defconfig
+++ linux-ein-5.4.0/arch/x86/configs/x86_64_defconfig
@@ -136,7 +136,6 @@
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SPI_ATTRS=y
@@ -201,7 +200,6 @@
 CONFIG_FB_TILEBLITTING=y
 CONFIG_FB_EFI=y
 # CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
--- linux-ein-5.4.0.orig/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
+++ linux-ein-5.4.0/arch/x86/crypto/aes_ctrby8_avx-x86_64.S
@@ -127,10 +127,6 @@
 
 /* generate a unique variable for ddq_add_x */
 
-.macro setddq n
-	var_ddq_add = ddq_add_\n
-.endm
-
 /* generate a unique variable for xmm register */
 .macro setxdata n
 	var_xdata = %xmm\n
@@ -140,9 +136,7 @@
 
 .macro club name, id
 .altmacro
-	.if \name == DDQ_DATA
-		setddq %\id
-	.elseif \name == XDATA
+	.if \name == XDATA
 		setxdata %\id
 	.endif
 .noaltmacro
@@ -165,9 +159,8 @@
 
 	.set i, 1
 	.rept (by - 1)
-		club DDQ_DATA, i
 		club XDATA, i
-		vpaddq	var_ddq_add(%rip), xcounter, var_xdata
+		vpaddq	(ddq_add_1 + 16 * (i - 1))(%rip), xcounter, var_xdata
 		vptest	ddq_low_msk(%rip), var_xdata
 		jnz 1f
 		vpaddq	ddq_high_add_1(%rip), var_xdata, var_xdata
@@ -180,8 +173,7 @@
 	vmovdqa	1*16(p_keys), xkeyA
 
 	vpxor	xkey0, xdata0, xdata0
-	club DDQ_DATA, by
-	vpaddq	var_ddq_add(%rip), xcounter, xcounter
+	vpaddq	(ddq_add_1 + 16 * (by - 1))(%rip), xcounter, xcounter
 	vptest	ddq_low_msk(%rip), xcounter
 	jnz	1f
 	vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
--- linux-ein-5.4.0.orig/arch/x86/crypto/aesni-intel_asm.S
+++ linux-ein-5.4.0/arch/x86/crypto/aesni-intel_asm.S
@@ -266,7 +266,7 @@
 	PSHUFB_XMM %xmm2, %xmm0
 	movdqu %xmm0, CurCount(%arg2) # ctx_data.current_counter = iv
 
-	PRECOMPUTE \SUBKEY, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
+	PRECOMPUTE \SUBKEY, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7
 	movdqu HashKey(%arg2), %xmm13
 
 	CALC_AAD_HASH %xmm13, \AAD, \AADLEN, %xmm0, %xmm1, %xmm2, %xmm3, \
@@ -319,7 +319,7 @@
 
 	# Main loop - Encrypt/Decrypt remaining blocks
 
-	cmp	$0, %r13
+	test	%r13, %r13
 	je	_zero_cipher_left_\@
 	sub	$64, %r13
 	je	_four_cipher_left_\@
@@ -438,7 +438,7 @@
 
 	mov PBlockLen(%arg2), %r12
 
-	cmp $0, %r12
+	test %r12, %r12
 	je _partial_done\@
 
 	GHASH_MUL %xmm8, %xmm13, %xmm9, %xmm10, %xmm11, %xmm5, %xmm6
@@ -475,7 +475,7 @@
 	add	$8, %r10
 	sub	$8, %r11
 	psrldq	$8, %xmm0
-	cmp	$0, %r11
+	test	%r11, %r11
 	je	_return_T_done_\@
 _T_4_\@:
 	movd	%xmm0, %eax
@@ -483,7 +483,7 @@
 	add	$4, %r10
 	sub	$4, %r11
 	psrldq	$4, %xmm0
-	cmp	$0, %r11
+	test	%r11, %r11
 	je	_return_T_done_\@
 _T_123_\@:
 	movd	%xmm0, %eax
@@ -620,7 +620,7 @@
 
 	/* read the last <16B of AAD */
 _get_AAD_rest\@:
-	cmp	   $0, %r11
+	test	   %r11, %r11
 	je	   _get_AAD_done\@
 
 	READ_PARTIAL_BLOCK %r10, %r11, \TMP1, \TMP7
@@ -641,7 +641,7 @@
 .macro PARTIAL_BLOCK CYPH_PLAIN_OUT PLAIN_CYPH_IN PLAIN_CYPH_LEN DATA_OFFSET \
 	AAD_HASH operation
 	mov 	PBlockLen(%arg2), %r13
-	cmp	$0, %r13
+	test	%r13, %r13
 	je	_partial_block_done_\@	# Leave Macro if no partial blocks
 	# Read in input data without over reading
 	cmp	$16, \PLAIN_CYPH_LEN
@@ -693,7 +693,7 @@
 	PSHUFB_XMM	%xmm2, %xmm3
 	pxor	%xmm3, \AAD_HASH
 
-	cmp	$0, %r10
+	test	%r10, %r10
 	jl	_partial_incomplete_1_\@
 
 	# GHASH computation for the last <16 Byte block
@@ -728,7 +728,7 @@
 	PSHUFB_XMM %xmm2, %xmm9
 	pxor	%xmm9, \AAD_HASH
 
-	cmp	$0, %r10
+	test	%r10, %r10
 	jl	_partial_incomplete_2_\@
 
 	# GHASH computation for the last <16 Byte block
@@ -748,7 +748,7 @@
 	PSHUFB_XMM	%xmm2, %xmm9
 .endif
 	# output encrypted Bytes
-	cmp	$0, %r10
+	test	%r10, %r10
 	jl	_partial_fill_\@
 	mov	%r13, %r12
 	mov	$16, %r13
@@ -978,7 +978,7 @@
 * arg1, %arg3, %arg4 are used as pointers only, not modified
 * %r11 is the data offset value
 */
-.macro GHASH_4_ENCRYPT_4_PARALLEL_ENC TMP1 TMP2 TMP3 TMP4 TMP5 \
+.macro GHASH_4_ENCRYPT_4_PARALLEL_enc TMP1 TMP2 TMP3 TMP4 TMP5 \
 TMP6 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 operation
 
 	movdqa	  \XMM1, \XMM5
@@ -1186,7 +1186,7 @@
 * arg1, %arg3, %arg4 are used as pointers only, not modified
 * %r11 is the data offset value
 */
-.macro GHASH_4_ENCRYPT_4_PARALLEL_DEC TMP1 TMP2 TMP3 TMP4 TMP5 \
+.macro GHASH_4_ENCRYPT_4_PARALLEL_dec TMP1 TMP2 TMP3 TMP4 TMP5 \
 TMP6 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 operation
 
 	movdqa	  \XMM1, \XMM5
@@ -1946,7 +1946,7 @@
 ENDPROC(aesni_set_key)
 
 /*
- * void aesni_enc(struct crypto_aes_ctx *ctx, u8 *dst, const u8 *src)
+ * void aesni_enc(const void *ctx, u8 *dst, const u8 *src)
  */
 ENTRY(aesni_enc)
 	FRAME_BEGIN
@@ -2137,7 +2137,7 @@
 ENDPROC(_aesni_enc4)
 
 /*
- * void aesni_dec (struct crypto_aes_ctx *ctx, u8 *dst, const u8 *src)
+ * void aesni_dec (const void *ctx, u8 *dst, const u8 *src)
  */
 ENTRY(aesni_dec)
 	FRAME_BEGIN
@@ -2726,25 +2726,18 @@
 	pxor CTR, IV;
 
 /*
- * void aesni_xts_crypt8(struct crypto_aes_ctx *ctx, const u8 *dst, u8 *src,
- *			 bool enc, u8 *iv)
+ * void aesni_xts_encrypt(const struct crypto_aes_ctx *ctx, u8 *dst,
+ *			  const u8 *src, unsigned int len, le128 *iv)
  */
-ENTRY(aesni_xts_crypt8)
+ENTRY(aesni_xts_encrypt)
 	FRAME_BEGIN
-	cmpb $0, %cl
-	movl $0, %ecx
-	movl $240, %r10d
-	leaq _aesni_enc4, %r11
-	leaq _aesni_dec4, %rax
-	cmovel %r10d, %ecx
-	cmoveq %rax, %r11
 
 	movdqa .Lgf128mul_x_ble_mask, GF128MUL_MASK
 	movups (IVP), IV
 
 	mov 480(KEYP), KLEN
-	addq %rcx, KEYP
 
+.Lxts_enc_loop4:
 	movdqa IV, STATE1
 	movdqu 0x00(INP), INC
 	pxor INC, STATE1
@@ -2768,71 +2761,103 @@
 	pxor INC, STATE4
 	movdqu IV, 0x30(OUTP)
 
-	CALL_NOSPEC %r11
+	call _aesni_enc4
 
 	movdqu 0x00(OUTP), INC
 	pxor INC, STATE1
 	movdqu STATE1, 0x00(OUTP)
 
-	_aesni_gf128mul_x_ble()
-	movdqa IV, STATE1
-	movdqu 0x40(INP), INC
-	pxor INC, STATE1
-	movdqu IV, 0x40(OUTP)
-
 	movdqu 0x10(OUTP), INC
 	pxor INC, STATE2
 	movdqu STATE2, 0x10(OUTP)
 
-	_aesni_gf128mul_x_ble()
-	movdqa IV, STATE2
-	movdqu 0x50(INP), INC
-	pxor INC, STATE2
-	movdqu IV, 0x50(OUTP)
-
 	movdqu 0x20(OUTP), INC
 	pxor INC, STATE3
 	movdqu STATE3, 0x20(OUTP)
 
-	_aesni_gf128mul_x_ble()
-	movdqa IV, STATE3
-	movdqu 0x60(INP), INC
-	pxor INC, STATE3
-	movdqu IV, 0x60(OUTP)
-
 	movdqu 0x30(OUTP), INC
 	pxor INC, STATE4
 	movdqu STATE4, 0x30(OUTP)
 
 	_aesni_gf128mul_x_ble()
-	movdqa IV, STATE4
-	movdqu 0x70(INP), INC
-	pxor INC, STATE4
-	movdqu IV, 0x70(OUTP)
 
-	_aesni_gf128mul_x_ble()
+	add $64, INP
+	add $64, OUTP
+	sub $64, LEN
+	ja .Lxts_enc_loop4
+
 	movups IV, (IVP)
 
-	CALL_NOSPEC %r11
+	FRAME_END
+	ret
+ENDPROC(aesni_xts_encrypt)
+
+/*
+ * void aesni_xts_decrypt(const struct crypto_aes_ctx *ctx, u8 *dst,
+ *			  const u8 *src, unsigned int len, le128 *iv)
+ */
+ENTRY(aesni_xts_decrypt)
+	FRAME_BEGIN
+
+	movdqa .Lgf128mul_x_ble_mask, GF128MUL_MASK
+	movups (IVP), IV
+
+	mov 480(KEYP), KLEN
+	add $240, KEYP
 
-	movdqu 0x40(OUTP), INC
+.Lxts_dec_loop4:
+	movdqa IV, STATE1
+	movdqu 0x00(INP), INC
 	pxor INC, STATE1
-	movdqu STATE1, 0x40(OUTP)
+	movdqu IV, 0x00(OUTP)
 
-	movdqu 0x50(OUTP), INC
+	_aesni_gf128mul_x_ble()
+	movdqa IV, STATE2
+	movdqu 0x10(INP), INC
+	pxor INC, STATE2
+	movdqu IV, 0x10(OUTP)
+
+	_aesni_gf128mul_x_ble()
+	movdqa IV, STATE3
+	movdqu 0x20(INP), INC
+	pxor INC, STATE3
+	movdqu IV, 0x20(OUTP)
+
+	_aesni_gf128mul_x_ble()
+	movdqa IV, STATE4
+	movdqu 0x30(INP), INC
+	pxor INC, STATE4
+	movdqu IV, 0x30(OUTP)
+
+	call _aesni_dec4
+
+	movdqu 0x00(OUTP), INC
+	pxor INC, STATE1
+	movdqu STATE1, 0x00(OUTP)
+
+	movdqu 0x10(OUTP), INC
 	pxor INC, STATE2
-	movdqu STATE2, 0x50(OUTP)
+	movdqu STATE2, 0x10(OUTP)
 
-	movdqu 0x60(OUTP), INC
+	movdqu 0x20(OUTP), INC
 	pxor INC, STATE3
-	movdqu STATE3, 0x60(OUTP)
+	movdqu STATE3, 0x20(OUTP)
 
-	movdqu 0x70(OUTP), INC
+	movdqu 0x30(OUTP), INC
 	pxor INC, STATE4
-	movdqu STATE4, 0x70(OUTP)
+	movdqu STATE4, 0x30(OUTP)
+
+	_aesni_gf128mul_x_ble()
+
+	add $64, INP
+	add $64, OUTP
+	sub $64, LEN
+	ja .Lxts_dec_loop4
+
+	movups IV, (IVP)
 
 	FRAME_END
 	ret
-ENDPROC(aesni_xts_crypt8)
+ENDPROC(aesni_xts_decrypt)
 
 #endif
--- linux-ein-5.4.0.orig/arch/x86/crypto/aesni-intel_avx-x86_64.S
+++ linux-ein-5.4.0/arch/x86/crypto/aesni-intel_avx-x86_64.S
@@ -370,7 +370,7 @@
 
 
 _initial_blocks_encrypted\@:
-        cmp     $0, %r13
+        test    %r13, %r13
         je      _zero_cipher_left\@
 
         sub     $128, %r13
@@ -529,7 +529,7 @@
         vmovdqu HashKey(arg2), %xmm13
 
         mov PBlockLen(arg2), %r12
-        cmp $0, %r12
+        test %r12, %r12
         je _partial_done\@
 
 	#GHASH computation for the last <16 Byte block
@@ -574,7 +574,7 @@
         add     $8, %r10
         sub     $8, %r11
         vpsrldq $8, %xmm9, %xmm9
-        cmp     $0, %r11
+        test    %r11, %r11
         je     _return_T_done\@
 _T_4\@:
         vmovd   %xmm9, %eax
@@ -582,7 +582,7 @@
         add     $4, %r10
         sub     $4, %r11
         vpsrldq     $4, %xmm9, %xmm9
-        cmp     $0, %r11
+        test    %r11, %r11
         je     _return_T_done\@
 _T_123\@:
         vmovd     %xmm9, %eax
@@ -626,7 +626,7 @@
 	cmp     $16, %r11
 	jge     _get_AAD_blocks\@
 	vmovdqu \T8, \T7
-	cmp     $0, %r11
+	test    %r11, %r11
 	je      _get_AAD_done\@
 
 	vpxor   \T7, \T7, \T7
@@ -645,7 +645,7 @@
 	vpxor   \T1, \T7, \T7
 	jmp     _get_AAD_rest8\@
 _get_AAD_rest4\@:
-	cmp     $0, %r11
+	test    %r11, %r11
 	jle      _get_AAD_rest0\@
 	mov     (%r10), %eax
 	movq    %rax, \T1
@@ -750,7 +750,7 @@
 .macro PARTIAL_BLOCK GHASH_MUL CYPH_PLAIN_OUT PLAIN_CYPH_IN PLAIN_CYPH_LEN DATA_OFFSET \
         AAD_HASH ENC_DEC
         mov 	PBlockLen(arg2), %r13
-        cmp	$0, %r13
+        test	%r13, %r13
         je	_partial_block_done_\@	# Leave Macro if no partial blocks
         # Read in input data without over reading
         cmp	$16, \PLAIN_CYPH_LEN
@@ -802,7 +802,7 @@
         vpshufb	%xmm2, %xmm3, %xmm3
         vpxor	%xmm3, \AAD_HASH, \AAD_HASH
 
-        cmp	$0, %r10
+        test	%r10, %r10
         jl	_partial_incomplete_1_\@
 
         # GHASH computation for the last <16 Byte block
@@ -837,7 +837,7 @@
         vpshufb %xmm2, %xmm9, %xmm9
         vpxor	%xmm9, \AAD_HASH, \AAD_HASH
 
-        cmp	$0, %r10
+        test	%r10, %r10
         jl	_partial_incomplete_2_\@
 
         # GHASH computation for the last <16 Byte block
@@ -857,7 +857,7 @@
         vpshufb	%xmm2, %xmm9, %xmm9
 .endif
         # output encrypted Bytes
-        cmp	$0, %r10
+        test	%r10, %r10
         jl	_partial_fill_\@
         mov	%r13, %r12
         mov	$16, %r13
--- linux-ein-5.4.0.orig/arch/x86/crypto/aesni-intel_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/aesni-intel_glue.c
@@ -83,10 +83,8 @@
 
 asmlinkage int aesni_set_key(struct crypto_aes_ctx *ctx, const u8 *in_key,
 			     unsigned int key_len);
-asmlinkage void aesni_enc(struct crypto_aes_ctx *ctx, u8 *out,
-			  const u8 *in);
-asmlinkage void aesni_dec(struct crypto_aes_ctx *ctx, u8 *out,
-			  const u8 *in);
+asmlinkage void aesni_enc(const void *ctx, u8 *out, const u8 *in);
+asmlinkage void aesni_dec(const void *ctx, u8 *out, const u8 *in);
 asmlinkage void aesni_ecb_enc(struct crypto_aes_ctx *ctx, u8 *out,
 			      const u8 *in, unsigned int len);
 asmlinkage void aesni_ecb_dec(struct crypto_aes_ctx *ctx, u8 *out,
@@ -99,6 +97,12 @@
 #define AVX_GEN2_OPTSIZE 640
 #define AVX_GEN4_OPTSIZE 4096
 
+asmlinkage void aesni_xts_encrypt(const struct crypto_aes_ctx *ctx, u8 *out,
+				  const u8 *in, unsigned int len, u8 *iv);
+
+asmlinkage void aesni_xts_decrypt(const struct crypto_aes_ctx *ctx, u8 *out,
+				  const u8 *in, unsigned int len, u8 *iv);
+
 #ifdef CONFIG_X86_64
 
 static void (*aesni_ctr_enc_tfm)(struct crypto_aes_ctx *ctx, u8 *out,
@@ -106,9 +110,6 @@
 asmlinkage void aesni_ctr_enc(struct crypto_aes_ctx *ctx, u8 *out,
 			      const u8 *in, unsigned int len, u8 *iv);
 
-asmlinkage void aesni_xts_crypt8(struct crypto_aes_ctx *ctx, u8 *out,
-				 const u8 *in, bool enc, u8 *iv);
-
 /* asmlinkage void aesni_gcm_enc()
  * void *ctx,  AES Key schedule. Starts on a 16 byte boundary.
  * struct gcm_context_data.  May be uninitialized.
@@ -550,29 +551,24 @@
 }
 
 
-static void aesni_xts_tweak(void *ctx, u8 *out, const u8 *in)
-{
-	aesni_enc(ctx, out, in);
-}
-
-static void aesni_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void aesni_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv, GLUE_FUNC_CAST(aesni_enc));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, aesni_enc);
 }
 
-static void aesni_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void aesni_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv, GLUE_FUNC_CAST(aesni_dec));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, aesni_dec);
 }
 
-static void aesni_xts_enc8(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void aesni_xts_enc32(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	aesni_xts_crypt8(ctx, (u8 *)dst, (const u8 *)src, true, (u8 *)iv);
+	aesni_xts_encrypt(ctx, dst, src, 32 * AES_BLOCK_SIZE, (u8 *)iv);
 }
 
-static void aesni_xts_dec8(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void aesni_xts_dec32(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	aesni_xts_crypt8(ctx, (u8 *)dst, (const u8 *)src, false, (u8 *)iv);
+	aesni_xts_decrypt(ctx, dst, src, 32 * AES_BLOCK_SIZE, (u8 *)iv);
 }
 
 static const struct common_glue_ctx aesni_enc_xts = {
@@ -580,11 +576,11 @@
 	.fpu_blocks_limit = 1,
 
 	.funcs = { {
-		.num_blocks = 8,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(aesni_xts_enc8) }
+		.num_blocks = 32,
+		.fn_u = { .xts = aesni_xts_enc32 }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(aesni_xts_enc) }
+		.fn_u = { .xts = aesni_xts_enc }
 	} }
 };
 
@@ -593,11 +589,11 @@
 	.fpu_blocks_limit = 1,
 
 	.funcs = { {
-		.num_blocks = 8,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(aesni_xts_dec8) }
+		.num_blocks = 32,
+		.fn_u = { .xts = aesni_xts_dec32 }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(aesni_xts_dec) }
+		.fn_u = { .xts = aesni_xts_dec }
 	} }
 };
 
@@ -606,8 +602,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct aesni_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&aesni_enc_xts, req,
-				   XTS_TWEAK_CAST(aesni_xts_tweak),
+	return glue_xts_req_128bit(&aesni_enc_xts, req, aesni_enc,
 				   aes_ctx(ctx->raw_tweak_ctx),
 				   aes_ctx(ctx->raw_crypt_ctx),
 				   false);
@@ -618,8 +613,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct aesni_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&aesni_dec_xts, req,
-				   XTS_TWEAK_CAST(aesni_xts_tweak),
+	return glue_xts_req_128bit(&aesni_dec_xts, req, aesni_enc,
 				   aes_ctx(ctx->raw_tweak_ctx),
 				   aes_ctx(ctx->raw_crypt_ctx),
 				   true);
@@ -707,7 +701,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	unsigned long auth_tag_len = crypto_aead_authsize(tfm);
 	const struct aesni_gcm_tfm_s *gcm_tfm = aesni_gcm_tfm;
-	struct gcm_context_data data AESNI_ALIGN_ATTR;
+	u8 databuf[sizeof(struct gcm_context_data) + (AESNI_ALIGN - 8)] __aligned(8);
+	struct gcm_context_data *data = PTR_ALIGN((void *)databuf, AESNI_ALIGN);
 	struct scatter_walk dst_sg_walk = {};
 	unsigned long left = req->cryptlen;
 	unsigned long len, srclen, dstlen;
@@ -760,8 +755,7 @@
 	}
 
 	kernel_fpu_begin();
-	gcm_tfm->init(aes_ctx, &data, iv,
-		hash_subkey, assoc, assoclen);
+	gcm_tfm->init(aes_ctx, data, iv, hash_subkey, assoc, assoclen);
 	if (req->src != req->dst) {
 		while (left) {
 			src = scatterwalk_map(&src_sg_walk);
@@ -771,10 +765,10 @@
 			len = min(srclen, dstlen);
 			if (len) {
 				if (enc)
-					gcm_tfm->enc_update(aes_ctx, &data,
+					gcm_tfm->enc_update(aes_ctx, data,
 							     dst, src, len);
 				else
-					gcm_tfm->dec_update(aes_ctx, &data,
+					gcm_tfm->dec_update(aes_ctx, data,
 							     dst, src, len);
 			}
 			left -= len;
@@ -792,10 +786,10 @@
 			len = scatterwalk_clamp(&src_sg_walk, left);
 			if (len) {
 				if (enc)
-					gcm_tfm->enc_update(aes_ctx, &data,
+					gcm_tfm->enc_update(aes_ctx, data,
 							     src, src, len);
 				else
-					gcm_tfm->dec_update(aes_ctx, &data,
+					gcm_tfm->dec_update(aes_ctx, data,
 							     src, src, len);
 			}
 			left -= len;
@@ -804,7 +798,7 @@
 			scatterwalk_done(&src_sg_walk, 1, left);
 		}
 	}
-	gcm_tfm->finalize(aes_ctx, &data, authTag, auth_tag_len);
+	gcm_tfm->finalize(aes_ctx, data, authTag, auth_tag_len);
 	kernel_fpu_end();
 
 	if (!assocmem)
@@ -853,7 +847,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 	unsigned int i;
 	__be32 counter = cpu_to_be32(1);
 
@@ -880,7 +875,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct aesni_rfc4106_gcm_ctx *ctx = aesni_rfc4106_gcm_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 	unsigned int i;
 
 	if (unlikely(req->assoclen != 16 && req->assoclen != 20))
@@ -1010,7 +1006,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct generic_gcmaes_ctx *ctx = generic_gcmaes_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 	__be32 counter = cpu_to_be32(1);
 
 	memcpy(iv, req->iv, 12);
@@ -1026,7 +1023,8 @@
 	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
 	struct generic_gcmaes_ctx *ctx = generic_gcmaes_ctx_get(tfm);
 	void *aes_ctx = &(ctx->aes_key_expanded);
-	u8 iv[16] __attribute__ ((__aligned__(AESNI_ALIGN)));
+	u8 ivbuf[16 + (AESNI_ALIGN - 8)] __aligned(8);
+	u8 *iv = PTR_ALIGN(&ivbuf[0], AESNI_ALIGN);
 
 	memcpy(iv, req->iv, 12);
 	*((__be32 *)(iv+12)) = counter;
--- linux-ein-5.4.0.orig/arch/x86/crypto/camellia_aesni_avx2_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/camellia_aesni_avx2_glue.c
@@ -19,20 +19,17 @@
 #define CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS 32
 
 /* 32-way AVX2/AES-NI parallel cipher functions */
-asmlinkage void camellia_ecb_enc_32way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
-asmlinkage void camellia_ecb_dec_32way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
-
-asmlinkage void camellia_cbc_dec_32way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
-asmlinkage void camellia_ctr_32way(struct camellia_ctx *ctx, u8 *dst,
-				   const u8 *src, le128 *iv);
-
-asmlinkage void camellia_xts_enc_32way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src, le128 *iv);
-asmlinkage void camellia_xts_dec_32way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src, le128 *iv);
+asmlinkage void camellia_ecb_enc_32way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void camellia_ecb_dec_32way(const void *ctx, u8 *dst, const u8 *src);
+
+asmlinkage void camellia_cbc_dec_32way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void camellia_ctr_32way(const void *ctx, u8 *dst, const u8 *src,
+				   le128 *iv);
+
+asmlinkage void camellia_xts_enc_32way(const void *ctx, u8 *dst, const u8 *src,
+				       le128 *iv);
+asmlinkage void camellia_xts_dec_32way(const void *ctx, u8 *dst, const u8 *src,
+				       le128 *iv);
 
 static const struct common_glue_ctx camellia_enc = {
 	.num_funcs = 4,
@@ -40,16 +37,16 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_enc_32way) }
+		.fn_u = { .ecb = camellia_ecb_enc_32way }
 	}, {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_enc_16way) }
+		.fn_u = { .ecb = camellia_ecb_enc_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk_2way) }
+		.fn_u = { .ecb = camellia_enc_blk_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk) }
+		.fn_u = { .ecb = camellia_enc_blk }
 	} }
 };
 
@@ -59,16 +56,16 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_ctr_32way) }
+		.fn_u = { .ctr = camellia_ctr_32way }
 	}, {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_ctr_16way) }
+		.fn_u = { .ctr = camellia_ctr_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr_2way) }
+		.fn_u = { .ctr = camellia_crypt_ctr_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr) }
+		.fn_u = { .ctr = camellia_crypt_ctr }
 	} }
 };
 
@@ -78,13 +75,13 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_enc_32way) }
+		.fn_u = { .xts = camellia_xts_enc_32way }
 	}, {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_enc_16way) }
+		.fn_u = { .xts = camellia_xts_enc_16way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_enc) }
+		.fn_u = { .xts = camellia_xts_enc }
 	} }
 };
 
@@ -94,16 +91,16 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_dec_32way) }
+		.fn_u = { .ecb = camellia_ecb_dec_32way }
 	}, {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_dec_16way) }
+		.fn_u = { .ecb = camellia_ecb_dec_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk_2way) }
+		.fn_u = { .ecb = camellia_dec_blk_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk) }
+		.fn_u = { .ecb = camellia_dec_blk }
 	} }
 };
 
@@ -113,16 +110,16 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_cbc_dec_32way) }
+		.fn_u = { .cbc = camellia_cbc_dec_32way }
 	}, {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_cbc_dec_16way) }
+		.fn_u = { .cbc = camellia_cbc_dec_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_decrypt_cbc_2way) }
+		.fn_u = { .cbc = camellia_decrypt_cbc_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_dec_blk) }
+		.fn_u = { .cbc = camellia_dec_blk }
 	} }
 };
 
@@ -132,13 +129,13 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_AVX2_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_dec_32way) }
+		.fn_u = { .xts = camellia_xts_dec_32way }
 	}, {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_dec_16way) }
+		.fn_u = { .xts = camellia_xts_dec_16way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_dec) }
+		.fn_u = { .xts = camellia_xts_dec }
 	} }
 };
 
@@ -161,8 +158,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(camellia_enc_blk),
-					   req);
+	return glue_cbc_encrypt_req_128bit(camellia_enc_blk, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -180,8 +176,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct camellia_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&camellia_enc_xts, req,
-				   XTS_TWEAK_CAST(camellia_enc_blk),
+	return glue_xts_req_128bit(&camellia_enc_xts, req, camellia_enc_blk,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
 }
 
@@ -190,8 +185,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct camellia_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&camellia_dec_xts, req,
-				   XTS_TWEAK_CAST(camellia_enc_blk),
+	return glue_xts_req_128bit(&camellia_dec_xts, req, camellia_enc_blk,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/camellia_aesni_avx_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/camellia_aesni_avx_glue.c
@@ -18,41 +18,36 @@
 #define CAMELLIA_AESNI_PARALLEL_BLOCKS 16
 
 /* 16-way parallel cipher functions (avx/aes-ni) */
-asmlinkage void camellia_ecb_enc_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
+asmlinkage void camellia_ecb_enc_16way(const void *ctx, u8 *dst, const u8 *src);
 EXPORT_SYMBOL_GPL(camellia_ecb_enc_16way);
 
-asmlinkage void camellia_ecb_dec_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
+asmlinkage void camellia_ecb_dec_16way(const void *ctx, u8 *dst, const u8 *src);
 EXPORT_SYMBOL_GPL(camellia_ecb_dec_16way);
 
-asmlinkage void camellia_cbc_dec_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
+asmlinkage void camellia_cbc_dec_16way(const void *ctx, u8 *dst, const u8 *src);
 EXPORT_SYMBOL_GPL(camellia_cbc_dec_16way);
 
-asmlinkage void camellia_ctr_16way(struct camellia_ctx *ctx, u8 *dst,
-				   const u8 *src, le128 *iv);
+asmlinkage void camellia_ctr_16way(const void *ctx, u8 *dst, const u8 *src,
+				   le128 *iv);
 EXPORT_SYMBOL_GPL(camellia_ctr_16way);
 
-asmlinkage void camellia_xts_enc_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src, le128 *iv);
+asmlinkage void camellia_xts_enc_16way(const void *ctx, u8 *dst, const u8 *src,
+				       le128 *iv);
 EXPORT_SYMBOL_GPL(camellia_xts_enc_16way);
 
-asmlinkage void camellia_xts_dec_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src, le128 *iv);
+asmlinkage void camellia_xts_dec_16way(const void *ctx, u8 *dst, const u8 *src,
+				       le128 *iv);
 EXPORT_SYMBOL_GPL(camellia_xts_dec_16way);
 
-void camellia_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void camellia_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(camellia_enc_blk));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, camellia_enc_blk);
 }
 EXPORT_SYMBOL_GPL(camellia_xts_enc);
 
-void camellia_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void camellia_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(camellia_dec_blk));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, camellia_dec_blk);
 }
 EXPORT_SYMBOL_GPL(camellia_xts_dec);
 
@@ -62,13 +57,13 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_enc_16way) }
+		.fn_u = { .ecb = camellia_ecb_enc_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk_2way) }
+		.fn_u = { .ecb = camellia_enc_blk_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk) }
+		.fn_u = { .ecb = camellia_enc_blk }
 	} }
 };
 
@@ -78,13 +73,13 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_ctr_16way) }
+		.fn_u = { .ctr = camellia_ctr_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr_2way) }
+		.fn_u = { .ctr = camellia_crypt_ctr_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr) }
+		.fn_u = { .ctr = camellia_crypt_ctr }
 	} }
 };
 
@@ -94,10 +89,10 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_enc_16way) }
+		.fn_u = { .xts = camellia_xts_enc_16way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_enc) }
+		.fn_u = { .xts = camellia_xts_enc }
 	} }
 };
 
@@ -107,13 +102,13 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_dec_16way) }
+		.fn_u = { .ecb = camellia_ecb_dec_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk_2way) }
+		.fn_u = { .ecb = camellia_dec_blk_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk) }
+		.fn_u = { .ecb = camellia_dec_blk }
 	} }
 };
 
@@ -123,13 +118,13 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_cbc_dec_16way) }
+		.fn_u = { .cbc = camellia_cbc_dec_16way }
 	}, {
 		.num_blocks = 2,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_decrypt_cbc_2way) }
+		.fn_u = { .cbc = camellia_decrypt_cbc_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_dec_blk) }
+		.fn_u = { .cbc = camellia_dec_blk }
 	} }
 };
 
@@ -139,10 +134,10 @@
 
 	.funcs = { {
 		.num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_dec_16way) }
+		.fn_u = { .xts = camellia_xts_dec_16way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(camellia_xts_dec) }
+		.fn_u = { .xts = camellia_xts_dec }
 	} }
 };
 
@@ -165,8 +160,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(camellia_enc_blk),
-					   req);
+	return glue_cbc_encrypt_req_128bit(camellia_enc_blk, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -206,8 +200,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct camellia_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&camellia_enc_xts, req,
-				   XTS_TWEAK_CAST(camellia_enc_blk),
+	return glue_xts_req_128bit(&camellia_enc_xts, req, camellia_enc_blk,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
 }
 
@@ -216,8 +209,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct camellia_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&camellia_dec_xts, req,
-				   XTS_TWEAK_CAST(camellia_enc_blk),
+	return glue_xts_req_128bit(&camellia_dec_xts, req, camellia_enc_blk,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/camellia_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/camellia_glue.c
@@ -18,19 +18,17 @@
 #include <asm/crypto/glue_helper.h>
 
 /* regular block cipher functions */
-asmlinkage void __camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst,
-				   const u8 *src, bool xor);
+asmlinkage void __camellia_enc_blk(const void *ctx, u8 *dst, const u8 *src,
+				   bool xor);
 EXPORT_SYMBOL_GPL(__camellia_enc_blk);
-asmlinkage void camellia_dec_blk(struct camellia_ctx *ctx, u8 *dst,
-				 const u8 *src);
+asmlinkage void camellia_dec_blk(const void *ctx, u8 *dst, const u8 *src);
 EXPORT_SYMBOL_GPL(camellia_dec_blk);
 
 /* 2-way parallel cipher functions */
-asmlinkage void __camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst,
-					const u8 *src, bool xor);
+asmlinkage void __camellia_enc_blk_2way(const void *ctx, u8 *dst, const u8 *src,
+					bool xor);
 EXPORT_SYMBOL_GPL(__camellia_enc_blk_2way);
-asmlinkage void camellia_dec_blk_2way(struct camellia_ctx *ctx, u8 *dst,
-				      const u8 *src);
+asmlinkage void camellia_dec_blk_2way(const void *ctx, u8 *dst, const u8 *src);
 EXPORT_SYMBOL_GPL(camellia_dec_blk_2way);
 
 static void camellia_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
@@ -1267,8 +1265,10 @@
 	return camellia_setkey(&tfm->base, key, key_len);
 }
 
-void camellia_decrypt_cbc_2way(void *ctx, u128 *dst, const u128 *src)
+void camellia_decrypt_cbc_2way(const void *ctx, u8 *d, const u8 *s)
 {
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 	u128 iv = *src;
 
 	camellia_dec_blk_2way(ctx, (u8 *)dst, (u8 *)src);
@@ -1277,9 +1277,11 @@
 }
 EXPORT_SYMBOL_GPL(camellia_decrypt_cbc_2way);
 
-void camellia_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void camellia_crypt_ctr(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblk;
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	if (dst != src)
 		*dst = *src;
@@ -1291,9 +1293,11 @@
 }
 EXPORT_SYMBOL_GPL(camellia_crypt_ctr);
 
-void camellia_crypt_ctr_2way(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void camellia_crypt_ctr_2way(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblks[2];
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	if (dst != src) {
 		dst[0] = src[0];
@@ -1315,10 +1319,10 @@
 
 	.funcs = { {
 		.num_blocks = 2,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk_2way) }
+		.fn_u = { .ecb = camellia_enc_blk_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk) }
+		.fn_u = { .ecb = camellia_enc_blk }
 	} }
 };
 
@@ -1328,10 +1332,10 @@
 
 	.funcs = { {
 		.num_blocks = 2,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr_2way) }
+		.fn_u = { .ctr = camellia_crypt_ctr_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr) }
+		.fn_u = { .ctr = camellia_crypt_ctr }
 	} }
 };
 
@@ -1341,10 +1345,10 @@
 
 	.funcs = { {
 		.num_blocks = 2,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk_2way) }
+		.fn_u = { .ecb = camellia_dec_blk_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk) }
+		.fn_u = { .ecb = camellia_dec_blk }
 	} }
 };
 
@@ -1354,10 +1358,10 @@
 
 	.funcs = { {
 		.num_blocks = 2,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_decrypt_cbc_2way) }
+		.fn_u = { .cbc = camellia_decrypt_cbc_2way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_dec_blk) }
+		.fn_u = { .cbc = camellia_dec_blk }
 	} }
 };
 
@@ -1373,8 +1377,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(camellia_enc_blk),
-					   req);
+	return glue_cbc_encrypt_req_128bit(camellia_enc_blk, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
--- linux-ein-5.4.0.orig/arch/x86/crypto/cast6_avx_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/cast6_avx_glue.c
@@ -20,20 +20,17 @@
 
 #define CAST6_PARALLEL_BLOCKS 8
 
-asmlinkage void cast6_ecb_enc_8way(struct cast6_ctx *ctx, u8 *dst,
-				   const u8 *src);
-asmlinkage void cast6_ecb_dec_8way(struct cast6_ctx *ctx, u8 *dst,
-				   const u8 *src);
-
-asmlinkage void cast6_cbc_dec_8way(struct cast6_ctx *ctx, u8 *dst,
-				   const u8 *src);
-asmlinkage void cast6_ctr_8way(struct cast6_ctx *ctx, u8 *dst, const u8 *src,
+asmlinkage void cast6_ecb_enc_8way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void cast6_ecb_dec_8way(const void *ctx, u8 *dst, const u8 *src);
+
+asmlinkage void cast6_cbc_dec_8way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void cast6_ctr_8way(const void *ctx, u8 *dst, const u8 *src,
 			       le128 *iv);
 
-asmlinkage void cast6_xts_enc_8way(struct cast6_ctx *ctx, u8 *dst,
-				   const u8 *src, le128 *iv);
-asmlinkage void cast6_xts_dec_8way(struct cast6_ctx *ctx, u8 *dst,
-				   const u8 *src, le128 *iv);
+asmlinkage void cast6_xts_enc_8way(const void *ctx, u8 *dst, const u8 *src,
+				   le128 *iv);
+asmlinkage void cast6_xts_dec_8way(const void *ctx, u8 *dst, const u8 *src,
+				   le128 *iv);
 
 static int cast6_setkey_skcipher(struct crypto_skcipher *tfm,
 				 const u8 *key, unsigned int keylen)
@@ -41,21 +38,21 @@
 	return cast6_setkey(&tfm->base, key, keylen);
 }
 
-static void cast6_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void cast6_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(__cast6_encrypt));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, __cast6_encrypt);
 }
 
-static void cast6_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void cast6_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(__cast6_decrypt));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, __cast6_decrypt);
 }
 
-static void cast6_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void cast6_crypt_ctr(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblk;
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	le128_to_be128(&ctrblk, iv);
 	le128_inc(iv);
@@ -70,10 +67,10 @@
 
 	.funcs = { {
 		.num_blocks = CAST6_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(cast6_ecb_enc_8way) }
+		.fn_u = { .ecb = cast6_ecb_enc_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_encrypt) }
+		.fn_u = { .ecb = __cast6_encrypt }
 	} }
 };
 
@@ -83,10 +80,10 @@
 
 	.funcs = { {
 		.num_blocks = CAST6_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_ctr_8way) }
+		.fn_u = { .ctr = cast6_ctr_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_crypt_ctr) }
+		.fn_u = { .ctr = cast6_crypt_ctr }
 	} }
 };
 
@@ -96,10 +93,10 @@
 
 	.funcs = { {
 		.num_blocks = CAST6_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_enc_8way) }
+		.fn_u = { .xts = cast6_xts_enc_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_enc) }
+		.fn_u = { .xts = cast6_xts_enc }
 	} }
 };
 
@@ -109,10 +106,10 @@
 
 	.funcs = { {
 		.num_blocks = CAST6_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(cast6_ecb_dec_8way) }
+		.fn_u = { .ecb = cast6_ecb_dec_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_decrypt) }
+		.fn_u = { .ecb = __cast6_decrypt }
 	} }
 };
 
@@ -122,10 +119,10 @@
 
 	.funcs = { {
 		.num_blocks = CAST6_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(cast6_cbc_dec_8way) }
+		.fn_u = { .cbc = cast6_cbc_dec_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__cast6_decrypt) }
+		.fn_u = { .cbc = __cast6_decrypt }
 	} }
 };
 
@@ -135,10 +132,10 @@
 
 	.funcs = { {
 		.num_blocks = CAST6_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_dec_8way) }
+		.fn_u = { .xts = cast6_xts_dec_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(cast6_xts_dec) }
+		.fn_u = { .xts = cast6_xts_dec }
 	} }
 };
 
@@ -154,8 +151,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(__cast6_encrypt),
-					   req);
+	return glue_cbc_encrypt_req_128bit(__cast6_encrypt, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -199,8 +195,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct cast6_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&cast6_enc_xts, req,
-				   XTS_TWEAK_CAST(__cast6_encrypt),
+	return glue_xts_req_128bit(&cast6_enc_xts, req, __cast6_encrypt,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
 }
 
@@ -209,8 +204,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct cast6_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&cast6_dec_xts, req,
-				   XTS_TWEAK_CAST(__cast6_encrypt),
+	return glue_xts_req_128bit(&cast6_dec_xts, req, __cast6_encrypt,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/chacha-avx512vl-x86_64.S
+++ linux-ein-5.4.0/arch/x86/crypto/chacha-avx512vl-x86_64.S
@@ -172,7 +172,7 @@
 	# xor remaining bytes from partial register into output
 	mov		%rcx,%rax
 	and		$0xf,%rcx
-	jz		.Ldone8
+	jz		.Ldone2
 	mov		%rax,%r9
 	and		$~0xf,%r9
 
@@ -438,7 +438,7 @@
 	# xor remaining bytes from partial register into output
 	mov		%rcx,%rax
 	and		$0xf,%rcx
-	jz		.Ldone8
+	jz		.Ldone4
 	mov		%rax,%r9
 	and		$~0xf,%r9
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
+++ linux-ein-5.4.0/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
@@ -170,7 +170,7 @@
 
 	## branch into array
 	lea	jump_table(%rip), bufp
-	movzxw  (bufp, %rax, 2), len
+	movzwq  (bufp, %rax, 2), len
 	lea	crc_array(%rip), bufp
 	lea     (bufp, len, 1), bufp
 	JMP_NOSPEC bufp
--- linux-ein-5.4.0.orig/arch/x86/crypto/ghash-clmulni-intel_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/ghash-clmulni-intel_glue.c
@@ -19,6 +19,7 @@
 #include <crypto/internal/simd.h>
 #include <asm/cpu_device_id.h>
 #include <asm/simd.h>
+#include <asm/unaligned.h>
 
 #define GHASH_BLOCK_SIZE	16
 #define GHASH_DIGEST_SIZE	16
@@ -54,7 +55,6 @@
 			const u8 *key, unsigned int keylen)
 {
 	struct ghash_ctx *ctx = crypto_shash_ctx(tfm);
-	be128 *x = (be128 *)key;
 	u64 a, b;
 
 	if (keylen != GHASH_BLOCK_SIZE) {
@@ -63,8 +63,8 @@
 	}
 
 	/* perform multiplication by 'x' in GF(2^128) */
-	a = be64_to_cpu(x->a);
-	b = be64_to_cpu(x->b);
+	a = get_unaligned_be64(key);
+	b = get_unaligned_be64(key + 8);
 
 	ctx->shash.a = (b << 1) | (a >> 63);
 	ctx->shash.b = (a << 1) | (b >> 63);
--- linux-ein-5.4.0.orig/arch/x86/crypto/glue_helper.c
+++ linux-ein-5.4.0/arch/x86/crypto/glue_helper.c
@@ -134,7 +134,8 @@
 				src -= num_blocks - 1;
 				dst -= num_blocks - 1;
 
-				gctx->funcs[i].fn_u.cbc(ctx, dst, src);
+				gctx->funcs[i].fn_u.cbc(ctx, (u8 *)dst,
+							(const u8 *)src);
 
 				nbytes -= func_bytes;
 				if (nbytes < bsize)
@@ -188,7 +189,9 @@
 
 			/* Process multi-block batch */
 			do {
-				gctx->funcs[i].fn_u.ctr(ctx, dst, src, &ctrblk);
+				gctx->funcs[i].fn_u.ctr(ctx, (u8 *)dst,
+							(const u8 *)src,
+							&ctrblk);
 				src += num_blocks;
 				dst += num_blocks;
 				nbytes -= func_bytes;
@@ -210,7 +213,8 @@
 
 		be128_to_le128(&ctrblk, (be128 *)walk.iv);
 		memcpy(&tmp, walk.src.virt.addr, nbytes);
-		gctx->funcs[gctx->num_funcs - 1].fn_u.ctr(ctx, &tmp, &tmp,
+		gctx->funcs[gctx->num_funcs - 1].fn_u.ctr(ctx, (u8 *)&tmp,
+							  (const u8 *)&tmp,
 							  &ctrblk);
 		memcpy(walk.dst.virt.addr, &tmp, nbytes);
 		le128_to_be128((be128 *)walk.iv, &ctrblk);
@@ -240,7 +244,8 @@
 
 		if (nbytes >= func_bytes) {
 			do {
-				gctx->funcs[i].fn_u.xts(ctx, dst, src,
+				gctx->funcs[i].fn_u.xts(ctx, (u8 *)dst,
+							(const u8 *)src,
 							walk->iv);
 
 				src += num_blocks;
@@ -354,8 +359,8 @@
 }
 EXPORT_SYMBOL_GPL(glue_xts_req_128bit);
 
-void glue_xts_crypt_128bit_one(void *ctx, u128 *dst, const u128 *src, le128 *iv,
-			       common_glue_func_t fn)
+void glue_xts_crypt_128bit_one(const void *ctx, u8 *dst, const u8 *src,
+			       le128 *iv, common_glue_func_t fn)
 {
 	le128 ivblk = *iv;
 
@@ -363,13 +368,13 @@
 	gf128mul_x_ble(iv, &ivblk);
 
 	/* CC <- T xor C */
-	u128_xor(dst, src, (u128 *)&ivblk);
+	u128_xor((u128 *)dst, (const u128 *)src, (u128 *)&ivblk);
 
 	/* PP <- D(Key2,CC) */
-	fn(ctx, (u8 *)dst, (u8 *)dst);
+	fn(ctx, dst, dst);
 
 	/* P <- T xor PP */
-	u128_xor(dst, dst, (u128 *)&ivblk);
+	u128_xor((u128 *)dst, (u128 *)dst, (u128 *)&ivblk);
 }
 EXPORT_SYMBOL_GPL(glue_xts_crypt_128bit_one);
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/nhpoly1305-avx2-glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/nhpoly1305-avx2-glue.c
@@ -29,7 +29,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_fpu_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_avx2);
--- linux-ein-5.4.0.orig/arch/x86/crypto/nhpoly1305-sse2-glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/nhpoly1305-sse2-glue.c
@@ -29,7 +29,7 @@
 		return crypto_nhpoly1305_update(desc, src, srclen);
 
 	do {
-		unsigned int n = min_t(unsigned int, srclen, PAGE_SIZE);
+		unsigned int n = min_t(unsigned int, srclen, SZ_4K);
 
 		kernel_fpu_begin();
 		crypto_nhpoly1305_update_helper(desc, src, n, _nh_sse2);
--- linux-ein-5.4.0.orig/arch/x86/crypto/serpent_avx2_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/serpent_avx2_glue.c
@@ -19,18 +19,16 @@
 #define SERPENT_AVX2_PARALLEL_BLOCKS 16
 
 /* 16-way AVX2 parallel cipher functions */
-asmlinkage void serpent_ecb_enc_16way(struct serpent_ctx *ctx, u8 *dst,
-				      const u8 *src);
-asmlinkage void serpent_ecb_dec_16way(struct serpent_ctx *ctx, u8 *dst,
-				      const u8 *src);
-asmlinkage void serpent_cbc_dec_16way(void *ctx, u128 *dst, const u128 *src);
+asmlinkage void serpent_ecb_enc_16way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void serpent_ecb_dec_16way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void serpent_cbc_dec_16way(const void *ctx, u8 *dst, const u8 *src);
 
-asmlinkage void serpent_ctr_16way(void *ctx, u128 *dst, const u128 *src,
+asmlinkage void serpent_ctr_16way(const void *ctx, u8 *dst, const u8 *src,
 				  le128 *iv);
-asmlinkage void serpent_xts_enc_16way(struct serpent_ctx *ctx, u8 *dst,
-				      const u8 *src, le128 *iv);
-asmlinkage void serpent_xts_dec_16way(struct serpent_ctx *ctx, u8 *dst,
-				      const u8 *src, le128 *iv);
+asmlinkage void serpent_xts_enc_16way(const void *ctx, u8 *dst, const u8 *src,
+				      le128 *iv);
+asmlinkage void serpent_xts_dec_16way(const void *ctx, u8 *dst, const u8 *src,
+				      le128 *iv);
 
 static int serpent_setkey_skcipher(struct crypto_skcipher *tfm,
 				   const u8 *key, unsigned int keylen)
@@ -44,13 +42,13 @@
 
 	.funcs = { {
 		.num_blocks = 16,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_enc_16way) }
+		.fn_u = { .ecb = serpent_ecb_enc_16way }
 	}, {
 		.num_blocks = 8,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_enc_8way_avx) }
+		.fn_u = { .ecb = serpent_ecb_enc_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_encrypt) }
+		.fn_u = { .ecb = __serpent_encrypt }
 	} }
 };
 
@@ -60,13 +58,13 @@
 
 	.funcs = { {
 		.num_blocks = 16,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_ctr_16way) }
+		.fn_u = { .ctr = serpent_ctr_16way }
 	},  {
 		.num_blocks = 8,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_ctr_8way_avx) }
+		.fn_u = { .ctr = serpent_ctr_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(__serpent_crypt_ctr) }
+		.fn_u = { .ctr = __serpent_crypt_ctr }
 	} }
 };
 
@@ -76,13 +74,13 @@
 
 	.funcs = { {
 		.num_blocks = 16,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_enc_16way) }
+		.fn_u = { .xts = serpent_xts_enc_16way }
 	}, {
 		.num_blocks = 8,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_enc_8way_avx) }
+		.fn_u = { .xts = serpent_xts_enc_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_enc) }
+		.fn_u = { .xts = serpent_xts_enc }
 	} }
 };
 
@@ -92,13 +90,13 @@
 
 	.funcs = { {
 		.num_blocks = 16,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_dec_16way) }
+		.fn_u = { .ecb = serpent_ecb_dec_16way }
 	}, {
 		.num_blocks = 8,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_dec_8way_avx) }
+		.fn_u = { .ecb = serpent_ecb_dec_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_decrypt) }
+		.fn_u = { .ecb = __serpent_decrypt }
 	} }
 };
 
@@ -108,13 +106,13 @@
 
 	.funcs = { {
 		.num_blocks = 16,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(serpent_cbc_dec_16way) }
+		.fn_u = { .cbc = serpent_cbc_dec_16way }
 	}, {
 		.num_blocks = 8,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(serpent_cbc_dec_8way_avx) }
+		.fn_u = { .cbc = serpent_cbc_dec_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__serpent_decrypt) }
+		.fn_u = { .cbc = __serpent_decrypt }
 	} }
 };
 
@@ -124,13 +122,13 @@
 
 	.funcs = { {
 		.num_blocks = 16,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_dec_16way) }
+		.fn_u = { .xts = serpent_xts_dec_16way }
 	}, {
 		.num_blocks = 8,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_dec_8way_avx) }
+		.fn_u = { .xts = serpent_xts_dec_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_dec) }
+		.fn_u = { .xts = serpent_xts_dec }
 	} }
 };
 
@@ -146,8 +144,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(__serpent_encrypt),
-					   req);
+	return glue_cbc_encrypt_req_128bit(__serpent_encrypt, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -166,8 +163,8 @@
 	struct serpent_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
 	return glue_xts_req_128bit(&serpent_enc_xts, req,
-				   XTS_TWEAK_CAST(__serpent_encrypt),
-				   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
+				   __serpent_encrypt, &ctx->tweak_ctx,
+				   &ctx->crypt_ctx, false);
 }
 
 static int xts_decrypt(struct skcipher_request *req)
@@ -176,8 +173,8 @@
 	struct serpent_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
 	return glue_xts_req_128bit(&serpent_dec_xts, req,
-				   XTS_TWEAK_CAST(__serpent_encrypt),
-				   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
+				   __serpent_encrypt, &ctx->tweak_ctx,
+				   &ctx->crypt_ctx, true);
 }
 
 static struct skcipher_alg serpent_algs[] = {
--- linux-ein-5.4.0.orig/arch/x86/crypto/serpent_avx_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/serpent_avx_glue.c
@@ -20,33 +20,35 @@
 #include <asm/crypto/serpent-avx.h>
 
 /* 8-way parallel cipher functions */
-asmlinkage void serpent_ecb_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_ecb_enc_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src);
 EXPORT_SYMBOL_GPL(serpent_ecb_enc_8way_avx);
 
-asmlinkage void serpent_ecb_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_ecb_dec_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src);
 EXPORT_SYMBOL_GPL(serpent_ecb_dec_8way_avx);
 
-asmlinkage void serpent_cbc_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_cbc_dec_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src);
 EXPORT_SYMBOL_GPL(serpent_cbc_dec_8way_avx);
 
-asmlinkage void serpent_ctr_8way_avx(struct serpent_ctx *ctx, u8 *dst,
-				     const u8 *src, le128 *iv);
+asmlinkage void serpent_ctr_8way_avx(const void *ctx, u8 *dst, const u8 *src,
+				     le128 *iv);
 EXPORT_SYMBOL_GPL(serpent_ctr_8way_avx);
 
-asmlinkage void serpent_xts_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_xts_enc_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src, le128 *iv);
 EXPORT_SYMBOL_GPL(serpent_xts_enc_8way_avx);
 
-asmlinkage void serpent_xts_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_xts_dec_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src, le128 *iv);
 EXPORT_SYMBOL_GPL(serpent_xts_dec_8way_avx);
 
-void __serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void __serpent_crypt_ctr(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblk;
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	le128_to_be128(&ctrblk, iv);
 	le128_inc(iv);
@@ -56,17 +58,15 @@
 }
 EXPORT_SYMBOL_GPL(__serpent_crypt_ctr);
 
-void serpent_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void serpent_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(__serpent_encrypt));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, __serpent_encrypt);
 }
 EXPORT_SYMBOL_GPL(serpent_xts_enc);
 
-void serpent_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void serpent_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(__serpent_decrypt));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, __serpent_decrypt);
 }
 EXPORT_SYMBOL_GPL(serpent_xts_dec);
 
@@ -102,10 +102,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_enc_8way_avx) }
+		.fn_u = { .ecb = serpent_ecb_enc_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_encrypt) }
+		.fn_u = { .ecb = __serpent_encrypt }
 	} }
 };
 
@@ -115,10 +115,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_ctr_8way_avx) }
+		.fn_u = { .ctr = serpent_ctr_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(__serpent_crypt_ctr) }
+		.fn_u = { .ctr = __serpent_crypt_ctr }
 	} }
 };
 
@@ -128,10 +128,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_enc_8way_avx) }
+		.fn_u = { .xts = serpent_xts_enc_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_enc) }
+		.fn_u = { .xts = serpent_xts_enc }
 	} }
 };
 
@@ -141,10 +141,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_dec_8way_avx) }
+		.fn_u = { .ecb = serpent_ecb_dec_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_decrypt) }
+		.fn_u = { .ecb = __serpent_decrypt }
 	} }
 };
 
@@ -154,10 +154,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(serpent_cbc_dec_8way_avx) }
+		.fn_u = { .cbc = serpent_cbc_dec_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__serpent_decrypt) }
+		.fn_u = { .cbc = __serpent_decrypt }
 	} }
 };
 
@@ -167,10 +167,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_dec_8way_avx) }
+		.fn_u = { .xts = serpent_xts_dec_8way_avx }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(serpent_xts_dec) }
+		.fn_u = { .xts = serpent_xts_dec }
 	} }
 };
 
@@ -186,8 +186,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(__serpent_encrypt),
-					   req);
+	return glue_cbc_encrypt_req_128bit(__serpent_encrypt, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -206,8 +205,8 @@
 	struct serpent_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
 	return glue_xts_req_128bit(&serpent_enc_xts, req,
-				   XTS_TWEAK_CAST(__serpent_encrypt),
-				   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
+				   __serpent_encrypt, &ctx->tweak_ctx,
+				   &ctx->crypt_ctx, false);
 }
 
 static int xts_decrypt(struct skcipher_request *req)
@@ -216,8 +215,8 @@
 	struct serpent_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
 	return glue_xts_req_128bit(&serpent_dec_xts, req,
-				   XTS_TWEAK_CAST(__serpent_encrypt),
-				   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
+				   __serpent_encrypt, &ctx->tweak_ctx,
+				   &ctx->crypt_ctx, true);
 }
 
 static struct skcipher_alg serpent_algs[] = {
--- linux-ein-5.4.0.orig/arch/x86/crypto/serpent_sse2_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/serpent_sse2_glue.c
@@ -31,9 +31,11 @@
 	return __serpent_setkey(crypto_skcipher_ctx(tfm), key, keylen);
 }
 
-static void serpent_decrypt_cbc_xway(void *ctx, u128 *dst, const u128 *src)
+static void serpent_decrypt_cbc_xway(const void *ctx, u8 *d, const u8 *s)
 {
 	u128 ivs[SERPENT_PARALLEL_BLOCKS - 1];
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 	unsigned int j;
 
 	for (j = 0; j < SERPENT_PARALLEL_BLOCKS - 1; j++)
@@ -45,9 +47,11 @@
 		u128_xor(dst + (j + 1), dst + (j + 1), ivs + j);
 }
 
-static void serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void serpent_crypt_ctr(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblk;
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	le128_to_be128(&ctrblk, iv);
 	le128_inc(iv);
@@ -56,10 +60,12 @@
 	u128_xor(dst, src, (u128 *)&ctrblk);
 }
 
-static void serpent_crypt_ctr_xway(void *ctx, u128 *dst, const u128 *src,
+static void serpent_crypt_ctr_xway(const void *ctx, u8 *d, const u8 *s,
 				   le128 *iv)
 {
 	be128 ctrblks[SERPENT_PARALLEL_BLOCKS];
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 	unsigned int i;
 
 	for (i = 0; i < SERPENT_PARALLEL_BLOCKS; i++) {
@@ -79,10 +85,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_enc_blk_xway) }
+		.fn_u = { .ecb = serpent_enc_blk_xway }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_encrypt) }
+		.fn_u = { .ecb = __serpent_encrypt }
 	} }
 };
 
@@ -92,10 +98,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_crypt_ctr_xway) }
+		.fn_u = { .ctr = serpent_crypt_ctr_xway }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_crypt_ctr) }
+		.fn_u = { .ctr = serpent_crypt_ctr }
 	} }
 };
 
@@ -105,10 +111,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(serpent_dec_blk_xway) }
+		.fn_u = { .ecb = serpent_dec_blk_xway }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_decrypt) }
+		.fn_u = { .ecb = __serpent_decrypt }
 	} }
 };
 
@@ -118,10 +124,10 @@
 
 	.funcs = { {
 		.num_blocks = SERPENT_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(serpent_decrypt_cbc_xway) }
+		.fn_u = { .cbc = serpent_decrypt_cbc_xway }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__serpent_decrypt) }
+		.fn_u = { .cbc = __serpent_decrypt }
 	} }
 };
 
@@ -137,7 +143,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(__serpent_encrypt),
+	return glue_cbc_encrypt_req_128bit(__serpent_encrypt,
 					   req);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/twofish_avx_glue.c
+++ linux-ein-5.4.0/arch/x86/crypto/twofish_avx_glue.c
@@ -22,20 +22,17 @@
 #define TWOFISH_PARALLEL_BLOCKS 8
 
 /* 8-way parallel cipher functions */
-asmlinkage void twofish_ecb_enc_8way(struct twofish_ctx *ctx, u8 *dst,
-				     const u8 *src);
-asmlinkage void twofish_ecb_dec_8way(struct twofish_ctx *ctx, u8 *dst,
-				     const u8 *src);
-
-asmlinkage void twofish_cbc_dec_8way(struct twofish_ctx *ctx, u8 *dst,
-				     const u8 *src);
-asmlinkage void twofish_ctr_8way(struct twofish_ctx *ctx, u8 *dst,
-				 const u8 *src, le128 *iv);
-
-asmlinkage void twofish_xts_enc_8way(struct twofish_ctx *ctx, u8 *dst,
-				     const u8 *src, le128 *iv);
-asmlinkage void twofish_xts_dec_8way(struct twofish_ctx *ctx, u8 *dst,
-				     const u8 *src, le128 *iv);
+asmlinkage void twofish_ecb_enc_8way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void twofish_ecb_dec_8way(const void *ctx, u8 *dst, const u8 *src);
+
+asmlinkage void twofish_cbc_dec_8way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void twofish_ctr_8way(const void *ctx, u8 *dst, const u8 *src,
+				 le128 *iv);
+
+asmlinkage void twofish_xts_enc_8way(const void *ctx, u8 *dst, const u8 *src,
+				     le128 *iv);
+asmlinkage void twofish_xts_dec_8way(const void *ctx, u8 *dst, const u8 *src,
+				     le128 *iv);
 
 static int twofish_setkey_skcipher(struct crypto_skcipher *tfm,
 				   const u8 *key, unsigned int keylen)
@@ -43,22 +40,19 @@
 	return twofish_setkey(&tfm->base, key, keylen);
 }
 
-static inline void twofish_enc_blk_3way(struct twofish_ctx *ctx, u8 *dst,
-					const u8 *src)
+static inline void twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src)
 {
 	__twofish_enc_blk_3way(ctx, dst, src, false);
 }
 
-static void twofish_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void twofish_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(twofish_enc_blk));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, twofish_enc_blk);
 }
 
-static void twofish_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+static void twofish_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv)
 {
-	glue_xts_crypt_128bit_one(ctx, dst, src, iv,
-				  GLUE_FUNC_CAST(twofish_dec_blk));
+	glue_xts_crypt_128bit_one(ctx, dst, src, iv, twofish_dec_blk);
 }
 
 struct twofish_xts_ctx {
@@ -93,13 +87,13 @@
 
 	.funcs = { {
 		.num_blocks = TWOFISH_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_ecb_enc_8way) }
+		.fn_u = { .ecb = twofish_ecb_enc_8way }
 	}, {
 		.num_blocks = 3,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_3way) }
+		.fn_u = { .ecb = twofish_enc_blk_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk) }
+		.fn_u = { .ecb = twofish_enc_blk }
 	} }
 };
 
@@ -109,13 +103,13 @@
 
 	.funcs = { {
 		.num_blocks = TWOFISH_PARALLEL_BLOCKS,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_ctr_8way) }
+		.fn_u = { .ctr = twofish_ctr_8way }
 	}, {
 		.num_blocks = 3,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_enc_blk_ctr_3way) }
+		.fn_u = { .ctr = twofish_enc_blk_ctr_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_enc_blk_ctr) }
+		.fn_u = { .ctr = twofish_enc_blk_ctr }
 	} }
 };
 
@@ -125,10 +119,10 @@
 
 	.funcs = { {
 		.num_blocks = TWOFISH_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(twofish_xts_enc_8way) }
+		.fn_u = { .xts = twofish_xts_enc_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(twofish_xts_enc) }
+		.fn_u = { .xts = twofish_xts_enc }
 	} }
 };
 
@@ -138,13 +132,13 @@
 
 	.funcs = { {
 		.num_blocks = TWOFISH_PARALLEL_BLOCKS,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_ecb_dec_8way) }
+		.fn_u = { .ecb = twofish_ecb_dec_8way }
 	}, {
 		.num_blocks = 3,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk_3way) }
+		.fn_u = { .ecb = twofish_dec_blk_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk) }
+		.fn_u = { .ecb = twofish_dec_blk }
 	} }
 };
 
@@ -154,13 +148,13 @@
 
 	.funcs = { {
 		.num_blocks = TWOFISH_PARALLEL_BLOCKS,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_cbc_dec_8way) }
+		.fn_u = { .cbc = twofish_cbc_dec_8way }
 	}, {
 		.num_blocks = 3,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk_cbc_3way) }
+		.fn_u = { .cbc = twofish_dec_blk_cbc_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk) }
+		.fn_u = { .cbc = twofish_dec_blk }
 	} }
 };
 
@@ -170,10 +164,10 @@
 
 	.funcs = { {
 		.num_blocks = TWOFISH_PARALLEL_BLOCKS,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(twofish_xts_dec_8way) }
+		.fn_u = { .xts = twofish_xts_dec_8way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .xts = GLUE_XTS_FUNC_CAST(twofish_xts_dec) }
+		.fn_u = { .xts = twofish_xts_dec }
 	} }
 };
 
@@ -189,8 +183,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(twofish_enc_blk),
-					   req);
+	return glue_cbc_encrypt_req_128bit(twofish_enc_blk, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
@@ -208,8 +201,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct twofish_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&twofish_enc_xts, req,
-				   XTS_TWEAK_CAST(twofish_enc_blk),
+	return glue_xts_req_128bit(&twofish_enc_xts, req, twofish_enc_blk,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, false);
 }
 
@@ -218,8 +210,7 @@
 	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
 	struct twofish_xts_ctx *ctx = crypto_skcipher_ctx(tfm);
 
-	return glue_xts_req_128bit(&twofish_dec_xts, req,
-				   XTS_TWEAK_CAST(twofish_enc_blk),
+	return glue_xts_req_128bit(&twofish_dec_xts, req, twofish_enc_blk,
 				   &ctx->tweak_ctx, &ctx->crypt_ctx, true);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/crypto/twofish_glue_3way.c
+++ linux-ein-5.4.0/arch/x86/crypto/twofish_glue_3way.c
@@ -25,21 +25,22 @@
 	return twofish_setkey(&tfm->base, key, keylen);
 }
 
-static inline void twofish_enc_blk_3way(struct twofish_ctx *ctx, u8 *dst,
-					const u8 *src)
+static inline void twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src)
 {
 	__twofish_enc_blk_3way(ctx, dst, src, false);
 }
 
-static inline void twofish_enc_blk_xor_3way(struct twofish_ctx *ctx, u8 *dst,
+static inline void twofish_enc_blk_xor_3way(const void *ctx, u8 *dst,
 					    const u8 *src)
 {
 	__twofish_enc_blk_3way(ctx, dst, src, true);
 }
 
-void twofish_dec_blk_cbc_3way(void *ctx, u128 *dst, const u128 *src)
+void twofish_dec_blk_cbc_3way(const void *ctx, u8 *d, const u8 *s)
 {
 	u128 ivs[2];
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	ivs[0] = src[0];
 	ivs[1] = src[1];
@@ -51,9 +52,11 @@
 }
 EXPORT_SYMBOL_GPL(twofish_dec_blk_cbc_3way);
 
-void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv)
+void twofish_enc_blk_ctr(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblk;
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	if (dst != src)
 		*dst = *src;
@@ -66,10 +69,11 @@
 }
 EXPORT_SYMBOL_GPL(twofish_enc_blk_ctr);
 
-void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src,
-			      le128 *iv)
+void twofish_enc_blk_ctr_3way(const void *ctx, u8 *d, const u8 *s, le128 *iv)
 {
 	be128 ctrblks[3];
+	u128 *dst = (u128 *)d;
+	const u128 *src = (const u128 *)s;
 
 	if (dst != src) {
 		dst[0] = src[0];
@@ -94,10 +98,10 @@
 
 	.funcs = { {
 		.num_blocks = 3,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_3way) }
+		.fn_u = { .ecb = twofish_enc_blk_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk) }
+		.fn_u = { .ecb = twofish_enc_blk }
 	} }
 };
 
@@ -107,10 +111,10 @@
 
 	.funcs = { {
 		.num_blocks = 3,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_ctr_3way) }
+		.fn_u = { .ctr = twofish_enc_blk_ctr_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_ctr) }
+		.fn_u = { .ctr = twofish_enc_blk_ctr }
 	} }
 };
 
@@ -120,10 +124,10 @@
 
 	.funcs = { {
 		.num_blocks = 3,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk_3way) }
+		.fn_u = { .ecb = twofish_dec_blk_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk) }
+		.fn_u = { .ecb = twofish_dec_blk }
 	} }
 };
 
@@ -133,10 +137,10 @@
 
 	.funcs = { {
 		.num_blocks = 3,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk_cbc_3way) }
+		.fn_u = { .cbc = twofish_dec_blk_cbc_3way }
 	}, {
 		.num_blocks = 1,
-		.fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk) }
+		.fn_u = { .cbc = twofish_dec_blk }
 	} }
 };
 
@@ -152,8 +156,7 @@
 
 static int cbc_encrypt(struct skcipher_request *req)
 {
-	return glue_cbc_encrypt_req_128bit(GLUE_FUNC_CAST(twofish_enc_blk),
-					   req);
+	return glue_cbc_encrypt_req_128bit(twofish_enc_blk, req);
 }
 
 static int cbc_decrypt(struct skcipher_request *req)
--- linux-ein-5.4.0.orig/arch/x86/entry/calling.h
+++ linux-ein-5.4.0/arch/x86/entry/calling.h
@@ -6,6 +6,8 @@
 #include <asm/percpu.h>
 #include <asm/asm-offsets.h>
 #include <asm/processor-flags.h>
+#include <asm/msr.h>
+#include <asm/nospec-branch.h>
 
 /*
 
@@ -98,13 +100,6 @@
 #define SIZEOF_PTREGS	21*8
 
 .macro PUSH_AND_CLEAR_REGS rdx=%rdx rax=%rax save_ret=0
-	/*
-	 * Push registers and sanitize registers of values that a
-	 * speculation attack might otherwise want to exploit. The
-	 * lower registers are likely clobbered well before they
-	 * could be put to use in a speculative execution gadget.
-	 * Interleave XOR with PUSH for better uop scheduling:
-	 */
 	.if \save_ret
 	pushq	%rsi		/* pt_regs->si */
 	movq	8(%rsp), %rsi	/* temporarily store the return address in %rsi */
@@ -114,57 +109,58 @@
 	pushq   %rsi		/* pt_regs->si */
 	.endif
 	pushq	\rdx		/* pt_regs->dx */
-	xorl	%edx, %edx	/* nospec   dx */
 	pushq   %rcx		/* pt_regs->cx */
-	xorl	%ecx, %ecx	/* nospec   cx */
 	pushq   \rax		/* pt_regs->ax */
 	pushq   %r8		/* pt_regs->r8 */
-	xorl	%r8d, %r8d	/* nospec   r8 */
 	pushq   %r9		/* pt_regs->r9 */
-	xorl	%r9d, %r9d	/* nospec   r9 */
 	pushq   %r10		/* pt_regs->r10 */
-	xorl	%r10d, %r10d	/* nospec   r10 */
 	pushq   %r11		/* pt_regs->r11 */
-	xorl	%r11d, %r11d	/* nospec   r11*/
 	pushq	%rbx		/* pt_regs->rbx */
-	xorl    %ebx, %ebx	/* nospec   rbx*/
 	pushq	%rbp		/* pt_regs->rbp */
-	xorl    %ebp, %ebp	/* nospec   rbp*/
 	pushq	%r12		/* pt_regs->r12 */
-	xorl	%r12d, %r12d	/* nospec   r12*/
 	pushq	%r13		/* pt_regs->r13 */
-	xorl	%r13d, %r13d	/* nospec   r13*/
 	pushq	%r14		/* pt_regs->r14 */
-	xorl	%r14d, %r14d	/* nospec   r14*/
 	pushq	%r15		/* pt_regs->r15 */
-	xorl	%r15d, %r15d	/* nospec   r15*/
 	UNWIND_HINT_REGS
+
 	.if \save_ret
 	pushq	%rsi		/* return address on top of stack */
 	.endif
+
+	/*
+	 * Sanitize registers of values that a speculation attack might
+	 * otherwise want to exploit. The lower registers are likely clobbered
+	 * well before they could be put to use in a speculative execution
+	 * gadget.
+	 */
+	xorl	%edx,  %edx	/* nospec dx  */
+	xorl	%ecx,  %ecx	/* nospec cx  */
+	xorl	%r8d,  %r8d	/* nospec r8  */
+	xorl	%r9d,  %r9d	/* nospec r9  */
+	xorl	%r10d, %r10d	/* nospec r10 */
+	xorl	%r11d, %r11d	/* nospec r11 */
+	xorl	%ebx,  %ebx	/* nospec rbx */
+	xorl	%ebp,  %ebp	/* nospec rbp */
+	xorl	%r12d, %r12d	/* nospec r12 */
+	xorl	%r13d, %r13d	/* nospec r13 */
+	xorl	%r14d, %r14d	/* nospec r14 */
+	xorl	%r15d, %r15d	/* nospec r15 */
+
 .endm
 
-.macro POP_REGS pop_rdi=1 skip_r11rcx=0
+.macro POP_REGS pop_rdi=1
 	popq %r15
 	popq %r14
 	popq %r13
 	popq %r12
 	popq %rbp
 	popq %rbx
-	.if \skip_r11rcx
-	popq %rsi
-	.else
 	popq %r11
-	.endif
 	popq %r10
 	popq %r9
 	popq %r8
 	popq %rax
-	.if \skip_r11rcx
-	popq %rsi
-	.else
 	popq %rcx
-	.endif
 	popq %rdx
 	popq %rsi
 	.if \pop_rdi
@@ -315,6 +311,62 @@
 #endif
 
 /*
+ * IBRS kernel mitigation for Spectre_v2.
+ *
+ * Assumes full context is established (PUSH_REGS, CR3 and GS) and it clobbers
+ * the regs it uses (AX, CX, DX). Must be called before the first RET
+ * instruction (NOTE! UNTRAIN_RET includes a RET instruction)
+ *
+ * The optional argument is used to save/restore the current value,
+ * which is used on the paranoid paths.
+ *
+ * Assumes x86_spec_ctrl_{base,current} to have SPEC_CTRL_IBRS set.
+ */
+.macro IBRS_ENTER save_reg
+	ALTERNATIVE "jmp .Lend_\@", "", X86_FEATURE_KERNEL_IBRS
+	movl	$MSR_IA32_SPEC_CTRL, %ecx
+
+.ifnb \save_reg
+	rdmsr
+	shl	$32, %rdx
+	or	%rdx, %rax
+	mov	%rax, \save_reg
+	test	$SPEC_CTRL_IBRS, %eax
+	jz	.Ldo_wrmsr_\@
+	lfence
+	jmp	.Lend_\@
+.Ldo_wrmsr_\@:
+.endif
+
+	movq	PER_CPU_VAR(x86_spec_ctrl_current), %rdx
+	movl	%edx, %eax
+	shr	$32, %rdx
+	wrmsr
+.Lend_\@:
+.endm
+
+/*
+ * Similar to IBRS_ENTER, requires KERNEL GS,CR3 and clobbers (AX, CX, DX)
+ * regs. Must be called after the last RET.
+ */
+.macro IBRS_EXIT save_reg
+	ALTERNATIVE "jmp .Lend_\@", "", X86_FEATURE_KERNEL_IBRS
+	movl	$MSR_IA32_SPEC_CTRL, %ecx
+
+.ifnb \save_reg
+	mov	\save_reg, %rdx
+.else
+	movq	PER_CPU_VAR(x86_spec_ctrl_current), %rdx
+	andl	$(~SPEC_CTRL_IBRS), %edx
+.endif
+
+	movl	%edx, %eax
+	shr	$32, %rdx
+	wrmsr
+.Lend_\@:
+.endm
+
+/*
  * Mitigate Spectre v1 for conditional swapgs code paths.
  *
  * FENCE_SWAPGS_USER_ENTRY is used in the user entry swapgs code path, to
--- linux-ein-5.4.0.orig/arch/x86/entry/common.c
+++ linux-ein-5.4.0/arch/x86/entry/common.c
@@ -218,6 +218,7 @@
 	user_enter_irqoff();
 
 	mds_user_clear_cpu_buffers();
+	amd_clear_divider();
 }
 
 #define SYSCALL_EXIT_WORK_FLAGS				\
--- linux-ein-5.4.0.orig/arch/x86/entry/entry_32.S
+++ linux-ein-5.4.0/arch/x86/entry/entry_32.S
@@ -172,7 +172,7 @@
 	ALTERNATIVE "jmp .Lend_\@", "", X86_FEATURE_PTI
 	.if \no_user_check == 0
 	/* coming from usermode? */
-	testl	$SEGMENT_RPL_MASK, PT_CS(%esp)
+	testl	$USER_SEGMENT_RPL_MASK, PT_CS(%esp)
 	jz	.Lend_\@
 	.endif
 	/* On user-cr3? */
@@ -205,64 +205,76 @@
 #define CS_FROM_ENTRY_STACK	(1 << 31)
 #define CS_FROM_USER_CR3	(1 << 30)
 #define CS_FROM_KERNEL		(1 << 29)
+#define CS_FROM_ESPFIX		(1 << 28)
 
 .macro FIXUP_FRAME
 	/*
 	 * The high bits of the CS dword (__csh) are used for CS_FROM_*.
 	 * Clear them in case hardware didn't do this for us.
 	 */
-	andl	$0x0000ffff, 3*4(%esp)
+	andl	$0x0000ffff, 4*4(%esp)
 
 #ifdef CONFIG_VM86
-	testl	$X86_EFLAGS_VM, 4*4(%esp)
+	testl	$X86_EFLAGS_VM, 5*4(%esp)
 	jnz	.Lfrom_usermode_no_fixup_\@
 #endif
-	testl	$SEGMENT_RPL_MASK, 3*4(%esp)
+	testl	$USER_SEGMENT_RPL_MASK, 4*4(%esp)
 	jnz	.Lfrom_usermode_no_fixup_\@
 
-	orl	$CS_FROM_KERNEL, 3*4(%esp)
+	orl	$CS_FROM_KERNEL, 4*4(%esp)
 
 	/*
 	 * When we're here from kernel mode; the (exception) stack looks like:
 	 *
-	 *  5*4(%esp) - <previous context>
-	 *  4*4(%esp) - flags
-	 *  3*4(%esp) - cs
-	 *  2*4(%esp) - ip
-	 *  1*4(%esp) - orig_eax
-	 *  0*4(%esp) - gs / function
+	 *  6*4(%esp) - <previous context>
+	 *  5*4(%esp) - flags
+	 *  4*4(%esp) - cs
+	 *  3*4(%esp) - ip
+	 *  2*4(%esp) - orig_eax
+	 *  1*4(%esp) - gs / function
+	 *  0*4(%esp) - fs
 	 *
 	 * Lets build a 5 entry IRET frame after that, such that struct pt_regs
 	 * is complete and in particular regs->sp is correct. This gives us
-	 * the original 5 enties as gap:
+	 * the original 6 enties as gap:
 	 *
-	 * 12*4(%esp) - <previous context>
-	 * 11*4(%esp) - gap / flags
-	 * 10*4(%esp) - gap / cs
-	 *  9*4(%esp) - gap / ip
-	 *  8*4(%esp) - gap / orig_eax
-	 *  7*4(%esp) - gap / gs / function
-	 *  6*4(%esp) - ss
-	 *  5*4(%esp) - sp
-	 *  4*4(%esp) - flags
-	 *  3*4(%esp) - cs
-	 *  2*4(%esp) - ip
-	 *  1*4(%esp) - orig_eax
-	 *  0*4(%esp) - gs / function
+	 * 14*4(%esp) - <previous context>
+	 * 13*4(%esp) - gap / flags
+	 * 12*4(%esp) - gap / cs
+	 * 11*4(%esp) - gap / ip
+	 * 10*4(%esp) - gap / orig_eax
+	 *  9*4(%esp) - gap / gs / function
+	 *  8*4(%esp) - gap / fs
+	 *  7*4(%esp) - ss
+	 *  6*4(%esp) - sp
+	 *  5*4(%esp) - flags
+	 *  4*4(%esp) - cs
+	 *  3*4(%esp) - ip
+	 *  2*4(%esp) - orig_eax
+	 *  1*4(%esp) - gs / function
+	 *  0*4(%esp) - fs
 	 */
 
 	pushl	%ss		# ss
 	pushl	%esp		# sp (points at ss)
-	addl	$6*4, (%esp)	# point sp back at the previous context
-	pushl	6*4(%esp)	# flags
-	pushl	6*4(%esp)	# cs
-	pushl	6*4(%esp)	# ip
-	pushl	6*4(%esp)	# orig_eax
-	pushl	6*4(%esp)	# gs / function
+	addl	$7*4, (%esp)	# point sp back at the previous context
+	pushl	7*4(%esp)	# flags
+	pushl	7*4(%esp)	# cs
+	pushl	7*4(%esp)	# ip
+	pushl	7*4(%esp)	# orig_eax
+	pushl	7*4(%esp)	# gs / function
+	pushl	7*4(%esp)	# fs
 .Lfrom_usermode_no_fixup_\@:
 .endm
 
 .macro IRET_FRAME
+	/*
+	 * We're called with %ds, %es, %fs, and %gs from the interrupted
+	 * frame, so we shouldn't use them.  Also, we may be in ESPFIX
+	 * mode and therefore have a nonzero SS base and an offset ESP,
+	 * so any attempt to access the stack needs to use SS.  (except for
+	 * accesses through %esp, which automatically use SS.)
+	 */
 	testl $CS_FROM_KERNEL, 1*4(%esp)
 	jz .Lfinished_frame_\@
 
@@ -276,31 +288,40 @@
 	movl	5*4(%esp), %eax		# (modified) regs->sp
 
 	movl	4*4(%esp), %ecx		# flags
-	movl	%ecx, -4(%eax)
+	movl	%ecx, %ss:-1*4(%eax)
 
 	movl	3*4(%esp), %ecx		# cs
 	andl	$0x0000ffff, %ecx
-	movl	%ecx, -8(%eax)
+	movl	%ecx, %ss:-2*4(%eax)
 
 	movl	2*4(%esp), %ecx		# ip
-	movl	%ecx, -12(%eax)
+	movl	%ecx, %ss:-3*4(%eax)
 
 	movl	1*4(%esp), %ecx		# eax
-	movl	%ecx, -16(%eax)
+	movl	%ecx, %ss:-4*4(%eax)
 
 	popl	%ecx
-	lea	-16(%eax), %esp
+	lea	-4*4(%eax), %esp
 	popl	%eax
 .Lfinished_frame_\@:
 .endm
 
-.macro SAVE_ALL pt_regs_ax=%eax switch_stacks=0 skip_gs=0
+.macro SAVE_ALL pt_regs_ax=%eax switch_stacks=0 skip_gs=0 unwind_espfix=0
 	cld
 .if \skip_gs == 0
 	PUSH_GS
 .endif
-	FIXUP_FRAME
 	pushl	%fs
+
+	pushl	%eax
+	movl	$(__KERNEL_PERCPU), %eax
+	movl	%eax, %fs
+.if \unwind_espfix > 0
+	UNWIND_ESPFIX_STACK
+.endif
+	popl	%eax
+
+	FIXUP_FRAME
 	pushl	%es
 	pushl	%ds
 	pushl	\pt_regs_ax
@@ -313,8 +334,6 @@
 	movl	$(__USER_DS), %edx
 	movl	%edx, %ds
 	movl	%edx, %es
-	movl	$(__KERNEL_PERCPU), %edx
-	movl	%edx, %fs
 .if \skip_gs == 0
 	SET_KERNEL_GS %edx
 .endif
@@ -324,8 +343,8 @@
 .endif
 .endm
 
-.macro SAVE_ALL_NMI cr3_reg:req
-	SAVE_ALL
+.macro SAVE_ALL_NMI cr3_reg:req unwind_espfix=0
+	SAVE_ALL unwind_espfix=\unwind_espfix
 
 	BUG_IF_WRONG_CR3
 
@@ -357,6 +376,7 @@
 2:	popl	%es
 3:	popl	%fs
 	POP_GS \pop
+	IRET_FRAME
 .pushsection .fixup, "ax"
 4:	movl	$0, (%esp)
 	jmp	1b
@@ -395,7 +415,8 @@
 
 .macro CHECK_AND_APPLY_ESPFIX
 #ifdef CONFIG_X86_ESPFIX32
-#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + (GDT_ENTRY_ESPFIX_SS * 8)
+#define GDT_ESPFIX_OFFSET (GDT_ENTRY_ESPFIX_SS * 8)
+#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + GDT_ESPFIX_OFFSET
 
 	ALTERNATIVE	"jmp .Lend_\@", "", X86_BUG_ESPFIX
 
@@ -729,7 +750,6 @@
 	movl	%ebx, PER_CPU_VAR(stack_canary)+stack_canary_offset
 #endif
 
-#ifdef CONFIG_RETPOLINE
 	/*
 	 * When switching from a shallower to a deeper call stack
 	 * the RSB may either underflow or use entries populated
@@ -738,7 +758,6 @@
 	 * speculative execution to prevent attack.
 	 */
 	FILL_RETURN_BUFFER %ebx, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_CTXSW
-#endif
 
 	/* restore callee-saved registers */
 	popfl
@@ -848,9 +867,10 @@
  * Xen doesn't set %esp to be precisely what the normal SYSENTER
  * entry point expects, so fix it up before using the normal path.
  */
-ENTRY(xen_sysenter_target)
+SYM_CODE_START(xen_sysenter_target)
 	addl	$5*4, %esp			/* remove xen-provided frame */
 	jmp	.Lsysenter_past_esp
+SYM_CODE_END(xen_sysenter_target)
 #endif
 
 /*
@@ -1075,7 +1095,6 @@
 	/* Restore user state */
 	RESTORE_REGS pop=4			# skip orig_eax/error_code
 .Lirq_return:
-	IRET_FRAME
 	/*
 	 * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization
 	 * when returning from IPI handler and when returning from
@@ -1128,30 +1147,43 @@
  * We can't call C functions using the ESPFIX stack. This code reads
  * the high word of the segment base from the GDT and swiches to the
  * normal stack and adjusts ESP with the matching offset.
+ *
+ * We might be on user CR3 here, so percpu data is not mapped and we can't
+ * access the GDT through the percpu segment.  Instead, use SGDT to find
+ * the cpu_entry_area alias of the GDT.
  */
 #ifdef CONFIG_X86_ESPFIX32
 	/* fixup the stack */
-	mov	GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
-	mov	GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
+	pushl	%ecx
+	subl	$2*4, %esp
+	sgdt	(%esp)
+	movl	2(%esp), %ecx				/* GDT address */
+	/*
+	 * Careful: ECX is a linear pointer, so we need to force base
+	 * zero.  %cs is the only known-linear segment we have right now.
+	 */
+	mov	%cs:GDT_ESPFIX_OFFSET + 4(%ecx), %al	/* bits 16..23 */
+	mov	%cs:GDT_ESPFIX_OFFSET + 7(%ecx), %ah	/* bits 24..31 */
 	shl	$16, %eax
+	addl	$2*4, %esp
+	popl	%ecx
 	addl	%esp, %eax			/* the adjusted stack pointer */
 	pushl	$__KERNEL_DS
 	pushl	%eax
 	lss	(%esp), %esp			/* switch to the normal stack segment */
 #endif
 .endm
+
 .macro UNWIND_ESPFIX_STACK
+	/* It's safe to clobber %eax, all other regs need to be preserved */
 #ifdef CONFIG_X86_ESPFIX32
 	movl	%ss, %eax
 	/* see if on espfix stack */
 	cmpw	$__ESPFIX_SS, %ax
-	jne	27f
-	movl	$__KERNEL_DS, %eax
-	movl	%eax, %ds
-	movl	%eax, %es
+	jne	.Lno_fixup_\@
 	/* switch to normal stack */
 	FIXUP_ESPFIX_STACK
-27:
+.Lno_fixup_\@:
 #endif
 .endm
 
@@ -1341,11 +1373,6 @@
 
 #ifdef CONFIG_XEN_PV
 ENTRY(xen_hypervisor_callback)
-	pushl	$-1				/* orig_ax = -1 => not a system call */
-	SAVE_ALL
-	ENCODE_FRAME_POINTER
-	TRACE_IRQS_OFF
-
 	/*
 	 * Check to see if we got the event in the critical
 	 * region in xen_iret_direct, after we've reenabled
@@ -1353,16 +1380,17 @@
 	 * iret instruction's behaviour where it delivers a
 	 * pending interrupt when enabling interrupts:
 	 */
-	movl	PT_EIP(%esp), %eax
-	cmpl	$xen_iret_start_crit, %eax
+	cmpl	$xen_iret_start_crit, (%esp)
 	jb	1f
-	cmpl	$xen_iret_end_crit, %eax
+	cmpl	$xen_iret_end_crit, (%esp)
 	jae	1f
-
-	jmp	xen_iret_crit_fixup
-
-ENTRY(xen_do_upcall)
-1:	mov	%esp, %eax
+	call	xen_iret_crit_fixup
+1:
+	pushl	$-1				/* orig_ax = -1 => not a system call */
+	SAVE_ALL
+	ENCODE_FRAME_POINTER
+	TRACE_IRQS_OFF
+	mov	%esp, %eax
 	call	xen_evtchn_do_upcall
 #ifndef CONFIG_PREEMPTION
 	call	xen_maybe_preempt_hcall
@@ -1449,10 +1477,9 @@
 
 common_exception_read_cr2:
 	/* the function address is in %gs's slot on the stack */
-	SAVE_ALL switch_stacks=1 skip_gs=1
+	SAVE_ALL switch_stacks=1 skip_gs=1 unwind_espfix=1
 
 	ENCODE_FRAME_POINTER
-	UNWIND_ESPFIX_STACK
 
 	/* fixup %gs */
 	GS_TO_REG %ecx
@@ -1474,9 +1501,8 @@
 
 common_exception:
 	/* the function address is in %gs's slot on the stack */
-	SAVE_ALL switch_stacks=1 skip_gs=1
+	SAVE_ALL switch_stacks=1 skip_gs=1 unwind_espfix=1
 	ENCODE_FRAME_POINTER
-	UNWIND_ESPFIX_STACK
 
 	/* fixup %gs */
 	GS_TO_REG %ecx
@@ -1515,6 +1541,10 @@
 	ASM_CLAC
 
 #ifdef CONFIG_X86_ESPFIX32
+	/*
+	 * ESPFIX_SS is only ever set on the return to user path
+	 * after we've switched to the entry stack.
+	 */
 	pushl	%eax
 	movl	%ss, %eax
 	cmpw	$__ESPFIX_SS, %ax
@@ -1550,6 +1580,11 @@
 	movl	%ebx, %esp
 
 .Lnmi_return:
+#ifdef CONFIG_X86_ESPFIX32
+	testl	$CS_FROM_ESPFIX, PT_CS(%esp)
+	jnz	.Lnmi_from_espfix
+#endif
+
 	CHECK_AND_APPLY_ESPFIX
 	RESTORE_ALL_NMI cr3_reg=%edi pop=4
 	jmp	.Lirq_return
@@ -1557,23 +1592,42 @@
 #ifdef CONFIG_X86_ESPFIX32
 .Lnmi_espfix_stack:
 	/*
-	 * create the pointer to lss back
+	 * Create the pointer to LSS back
 	 */
 	pushl	%ss
 	pushl	%esp
 	addl	$4, (%esp)
-	/* copy the iret frame of 12 bytes */
-	.rept 3
-	pushl	16(%esp)
-	.endr
-	pushl	%eax
-	SAVE_ALL_NMI cr3_reg=%edi
+
+	/* Copy the (short) IRET frame */
+	pushl	4*4(%esp)	# flags
+	pushl	4*4(%esp)	# cs
+	pushl	4*4(%esp)	# ip
+
+	pushl	%eax		# orig_ax
+
+	SAVE_ALL_NMI cr3_reg=%edi unwind_espfix=1
 	ENCODE_FRAME_POINTER
-	FIXUP_ESPFIX_STACK			# %eax == %esp
+
+	/* clear CS_FROM_KERNEL, set CS_FROM_ESPFIX */
+	xorl	$(CS_FROM_ESPFIX | CS_FROM_KERNEL), PT_CS(%esp)
+
 	xorl	%edx, %edx			# zero error code
-	call	do_nmi
+	movl	%esp, %eax			# pt_regs pointer
+	jmp	.Lnmi_from_sysenter_stack
+
+.Lnmi_from_espfix:
 	RESTORE_ALL_NMI cr3_reg=%edi
-	lss	12+4(%esp), %esp		# back to espfix stack
+	/*
+	 * Because we cleared CS_FROM_KERNEL, IRET_FRAME 'forgot' to
+	 * fix up the gap and long frame:
+	 *
+	 *  3 - original frame	(exception)
+	 *  2 - ESPFIX block	(above)
+	 *  6 - gap		(FIXUP_FRAME)
+	 *  5 - long frame	(FIXUP_FRAME)
+	 *  1 - orig_ax
+	 */
+	lss	(1+5+6)*4(%esp), %esp			# back to espfix stack
 	jmp	.Lirq_return
 #endif
 END(nmi)
@@ -1592,6 +1646,7 @@
 END(int3)
 
 ENTRY(general_protection)
+	ASM_CLAC
 	pushl	$do_general_protection
 	jmp	common_exception
 END(general_protection)
@@ -1604,13 +1659,13 @@
 END(async_page_fault)
 #endif
 
-ENTRY(rewind_stack_do_exit)
+ENTRY(rewind_stack_and_make_dead)
 	/* Prevent any naive code from trying to unwind to our caller. */
 	xorl	%ebp, %ebp
 
 	movl	PER_CPU_VAR(cpu_current_top_of_stack), %esi
 	leal	-TOP_OF_KERNEL_STACK_PADDING-PTREGS_SIZE(%esi), %esp
 
-	call	do_exit
+	call	make_task_dead
 1:	jmp 1b
-END(rewind_stack_do_exit)
+END(rewind_stack_and_make_dead)
--- linux-ein-5.4.0.orig/arch/x86/entry/entry_64.S
+++ linux-ein-5.4.0/arch/x86/entry/entry_64.S
@@ -172,6 +172,10 @@
 	/* IRQs are off. */
 	movq	%rax, %rdi
 	movq	%rsp, %rsi
+
+	/* clobbers %rax, make sure it is after saving the syscall nr */
+	IBRS_ENTER
+
 	call	do_syscall_64		/* returns with IRQs disabled */
 
 	TRACE_IRQS_IRETQ		/* we're about to change IF */
@@ -248,9 +252,8 @@
 	 * perf profiles. Nothing jumps here.
 	 */
 syscall_return_via_sysret:
-	/* rcx and r11 are already restored (see code above) */
-	UNWIND_HINT_EMPTY
-	POP_REGS pop_rdi=0 skip_r11rcx=1
+	IBRS_EXIT
+	POP_REGS pop_rdi=0
 
 	/*
 	 * Now all regs are restored except RSP and RDI.
@@ -258,6 +261,7 @@
 	 */
 	movq	%rsp, %rdi
 	movq	PER_CPU_VAR(cpu_tss_rw + TSS_sp0), %rsp
+	UNWIND_HINT_EMPTY
 
 	pushq	RSP-RDI(%rdi)	/* RSP */
 	pushq	(%rdi)		/* RDI */
@@ -301,7 +305,6 @@
 	movq	%rbx, PER_CPU_VAR(fixed_percpu_data) + stack_canary_offset
 #endif
 
-#ifdef CONFIG_RETPOLINE
 	/*
 	 * When switching from a shallower to a deeper call stack
 	 * the RSB may either underflow or use entries populated
@@ -310,7 +313,6 @@
 	 * speculative execution to prevent attack.
 	 */
 	FILL_RETURN_BUFFER %r12, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_CTXSW
-#endif
 
 	/* restore callee-saved registers */
 	popq	%r15
@@ -512,7 +514,7 @@
  * +----------------------------------------------------+
  */
 ENTRY(interrupt_entry)
-	UNWIND_HINT_FUNC
+	UNWIND_HINT_IRET_REGS offset=16
 	ASM_CLAC
 	cld
 
@@ -544,9 +546,9 @@
 	pushq	5*8(%rdi)		/* regs->eflags */
 	pushq	4*8(%rdi)		/* regs->cs */
 	pushq	3*8(%rdi)		/* regs->ip */
+	UNWIND_HINT_IRET_REGS
 	pushq	2*8(%rdi)		/* regs->orig_ax */
 	pushq	8(%rdi)			/* return address */
-	UNWIND_HINT_FUNC
 
 	movq	(%rdi), %rdi
 	jmp	2f
@@ -616,12 +618,13 @@
 	jz	retint_kernel
 
 	/* Interrupt came from user space */
-GLOBAL(retint_user)
+.Lretint_user:
 	mov	%rsp,%rdi
 	call	prepare_exit_to_usermode
 	TRACE_IRQS_IRETQ
 
 GLOBAL(swapgs_restore_regs_and_return_to_usermode)
+	IBRS_EXIT
 #ifdef CONFIG_DEBUG_ENTRY
 	/* Assert that pt_regs indicates user mode. */
 	testb	$3, CS(%rsp)
@@ -637,6 +640,7 @@
 	 */
 	movq	%rsp, %rdi
 	movq	PER_CPU_VAR(cpu_tss_rw + TSS_sp0), %rsp
+	UNWIND_HINT_EMPTY
 
 	/* Copy the IRET frame to the trampoline stack. */
 	pushq	6*8(%rdi)	/* SS */
@@ -1247,7 +1251,13 @@
 	 */
 	FENCE_SWAPGS_KERNEL_ENTRY
 
-	ret
+	/*
+	 * Once we have CR3 and %GS setup save and set SPEC_CTRL. Just like
+	 * CR3 above, keep the old value in a callee saved register.
+	 */
+	IBRS_ENTER save_reg=%r15
+
+	RET
 END(paranoid_entry)
 
 /*
@@ -1275,12 +1285,20 @@
 	jmp	.Lparanoid_exit_restore
 .Lparanoid_exit_no_swapgs:
 	TRACE_IRQS_IRETQ_DEBUG
+
+	/*
+	 * Must restore IBRS state before both CR3 and %GS since we need access
+	 * to the per-CPU x86_spec_ctrl_shadow variable.
+	 */
+	IBRS_EXIT save_reg=%r15
+
 	/* Always restore stashed CR3 value (see paranoid_entry) */
 	RESTORE_CR3	scratch_reg=%rbx save_reg=%r14
 .Lparanoid_exit_restore:
 	jmp restore_regs_and_return_to_kernel
 END(paranoid_exit)
 
+
 /*
  * Save all registers in pt_regs, and switch GS if needed.
  */
@@ -1300,6 +1318,7 @@
 	FENCE_SWAPGS_USER_ENTRY
 	/* We have user CR3.  Change to kernel CR3. */
 	SWITCH_TO_KERNEL_CR3 scratch_reg=%rax
+	IBRS_ENTER
 
 .Lerror_entry_from_usermode_after_swapgs:
 	/* Put us onto the real thread stack. */
@@ -1355,6 +1374,7 @@
 	SWAPGS
 	FENCE_SWAPGS_USER_ENTRY
 	SWITCH_TO_KERNEL_CR3 scratch_reg=%rax
+	IBRS_ENTER
 
 	/*
 	 * Pretend that the exception came from user mode: set up pt_regs
@@ -1372,7 +1392,7 @@
 	TRACE_IRQS_OFF
 	testb	$3, CS(%rsp)
 	jz	retint_kernel
-	jmp	retint_user
+	jmp	.Lretint_user
 END(error_exit)
 
 /*
@@ -1460,6 +1480,8 @@
 	PUSH_AND_CLEAR_REGS rdx=(%rdx)
 	ENCODE_FRAME_POINTER
 
+	IBRS_ENTER
+
 	/*
 	 * At this point we no longer need to worry about stack damage
 	 * due to nesting -- we're on the normal thread stack and we're
@@ -1683,6 +1705,9 @@
 	movq	$-1, %rsi
 	call	do_nmi
 
+	/* Always restore stashed SPEC_CTRL value (see paranoid_entry) */
+	IBRS_EXIT save_reg=%r15
+
 	/* Always restore stashed CR3 value (see paranoid_entry) */
 	RESTORE_CR3 scratch_reg=%r15 save_reg=%r14
 
@@ -1732,14 +1757,14 @@
 END(ignore_sysret)
 #endif
 
-ENTRY(rewind_stack_do_exit)
+ENTRY(rewind_stack_and_make_dead)
 	UNWIND_HINT_FUNC
 	/* Prevent any naive code from trying to unwind to our caller. */
 	xorl	%ebp, %ebp
 
 	movq	PER_CPU_VAR(cpu_current_top_of_stack), %rax
 	leaq	-PTREGS_SIZE(%rax), %rsp
-	UNWIND_HINT_FUNC sp_offset=PTREGS_SIZE
+	UNWIND_HINT_REGS
 
-	call	do_exit
-END(rewind_stack_do_exit)
+	call	make_task_dead
+END(rewind_stack_and_make_dead)
--- linux-ein-5.4.0.orig/arch/x86/entry/entry_64_compat.S
+++ linux-ein-5.4.0/arch/x86/entry/entry_64_compat.S
@@ -4,7 +4,6 @@
  *
  * Copyright 2000-2002 Andi Kleen, SuSE Labs.
  */
-#include "calling.h"
 #include <asm/asm-offsets.h>
 #include <asm/current.h>
 #include <asm/errno.h>
@@ -17,6 +16,8 @@
 #include <linux/linkage.h>
 #include <linux/err.h>
 
+#include "calling.h"
+
 	.section .entry.text, "ax"
 
 /*
@@ -106,6 +107,8 @@
 	xorl	%r15d, %r15d		/* nospec   r15 */
 	cld
 
+	IBRS_ENTER
+
 	/*
 	 * SYSENTER doesn't filter flags, so we need to clear NT and AC
 	 * ourselves.  To save a few cycles, we can check whether
@@ -253,6 +256,8 @@
 	 */
 	TRACE_IRQS_OFF
 
+	IBRS_ENTER
+
 	movq	%rsp, %rdi
 	call	do_fast_syscall_32
 	/* XEN PV guests always use IRET path */
@@ -267,6 +272,9 @@
 	 */
 	STACKLEAK_ERASE
 	TRACE_IRQS_ON			/* User mode traces as IRQs on. */
+
+	IBRS_EXIT
+
 	movq	RBX(%rsp), %rbx		/* pt_regs->rbx */
 	movq	RBP(%rsp), %rbp		/* pt_regs->rbp */
 	movq	EFLAGS(%rsp), %r11	/* pt_regs->flags (in r11) */
@@ -408,6 +416,7 @@
 	 * gate turned them off.
 	 */
 	TRACE_IRQS_OFF
+	IBRS_ENTER
 
 	movq	%rsp, %rdi
 	call	do_int80_syscall_32
--- linux-ein-5.4.0.orig/arch/x86/entry/syscall_32.c
+++ linux-ein-5.4.0/arch/x86/entry/syscall_32.c
@@ -10,13 +10,11 @@
 #ifdef CONFIG_IA32_EMULATION
 /* On X86_64, we use struct pt_regs * to pass parameters to syscalls */
 #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *);
-
-/* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */
-extern asmlinkage long sys_ni_syscall(const struct pt_regs *);
-
+#define __sys_ni_syscall __ia32_sys_ni_syscall
 #else /* CONFIG_IA32_EMULATION */
 #define __SYSCALL_I386(nr, sym, qual) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
 extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
+#define __sys_ni_syscall sys_ni_syscall
 #endif /* CONFIG_IA32_EMULATION */
 
 #include <asm/syscalls_32.h>
@@ -29,6 +27,6 @@
 	 * Smells like a compiler bug -- it doesn't work
 	 * when the & below is removed.
 	 */
-	[0 ... __NR_syscall_compat_max] = &sys_ni_syscall,
+	[0 ... __NR_syscall_compat_max] = &__sys_ni_syscall,
 #include <asm/syscalls_32.h>
 };
--- linux-ein-5.4.0.orig/arch/x86/entry/syscall_64.c
+++ linux-ein-5.4.0/arch/x86/entry/syscall_64.c
@@ -4,11 +4,17 @@
 #include <linux/linkage.h>
 #include <linux/sys.h>
 #include <linux/cache.h>
+#include <linux/syscalls.h>
 #include <asm/asm-offsets.h>
 #include <asm/syscall.h>
 
-/* this is a lie, but it does not hurt as sys_ni_syscall just returns -EINVAL */
-extern asmlinkage long sys_ni_syscall(const struct pt_regs *);
+extern asmlinkage long sys_ni_syscall(void);
+
+SYSCALL_DEFINE0(ni_syscall)
+{
+	return sys_ni_syscall();
+}
+
 #define __SYSCALL_64(nr, sym, qual) extern asmlinkage long sym(const struct pt_regs *);
 #define __SYSCALL_X32(nr, sym, qual) __SYSCALL_64(nr, sym, qual)
 #include <asm/syscalls_64.h>
@@ -23,7 +29,7 @@
 	 * Smells like a compiler bug -- it doesn't work
 	 * when the & below is removed.
 	 */
-	[0 ... __NR_syscall_max] = &sys_ni_syscall,
+	[0 ... __NR_syscall_max] = &__x64_sys_ni_syscall,
 #include <asm/syscalls_64.h>
 };
 
@@ -40,7 +46,7 @@
 	 * Smells like a compiler bug -- it doesn't work
 	 * when the & below is removed.
 	 */
-	[0 ... __NR_syscall_x32_max] = &sys_ni_syscall,
+	[0 ... __NR_syscall_x32_max] = &__x64_sys_ni_syscall,
 #include <asm/syscalls_64.h>
 };
 
--- linux-ein-5.4.0.orig/arch/x86/entry/syscalls/syscall_32.tbl
+++ linux-ein-5.4.0/arch/x86/entry/syscalls/syscall_32.tbl
@@ -124,13 +124,13 @@
 110	i386	iopl			sys_iopl			__ia32_sys_iopl
 111	i386	vhangup			sys_vhangup			__ia32_sys_vhangup
 112	i386	idle
-113	i386	vm86old			sys_vm86old			sys_ni_syscall
+113	i386	vm86old			sys_vm86old			__ia32_sys_ni_syscall
 114	i386	wait4			sys_wait4			__ia32_compat_sys_wait4
 115	i386	swapoff			sys_swapoff			__ia32_sys_swapoff
 116	i386	sysinfo			sys_sysinfo			__ia32_compat_sys_sysinfo
 117	i386	ipc			sys_ipc				__ia32_compat_sys_ipc
 118	i386	fsync			sys_fsync			__ia32_sys_fsync
-119	i386	sigreturn		sys_sigreturn			sys32_sigreturn
+119	i386	sigreturn		sys_sigreturn			__ia32_compat_sys_sigreturn
 120	i386	clone			sys_clone			__ia32_compat_sys_x86_clone
 121	i386	setdomainname		sys_setdomainname		__ia32_sys_setdomainname
 122	i386	uname			sys_newuname			__ia32_sys_newuname
@@ -177,14 +177,14 @@
 163	i386	mremap			sys_mremap			__ia32_sys_mremap
 164	i386	setresuid		sys_setresuid16			__ia32_sys_setresuid16
 165	i386	getresuid		sys_getresuid16			__ia32_sys_getresuid16
-166	i386	vm86			sys_vm86			sys_ni_syscall
+166	i386	vm86			sys_vm86			__ia32_sys_ni_syscall
 167	i386	query_module
 168	i386	poll			sys_poll			__ia32_sys_poll
 169	i386	nfsservctl
 170	i386	setresgid		sys_setresgid16			__ia32_sys_setresgid16
 171	i386	getresgid		sys_getresgid16			__ia32_sys_getresgid16
 172	i386	prctl			sys_prctl			__ia32_sys_prctl
-173	i386	rt_sigreturn		sys_rt_sigreturn		sys32_rt_sigreturn
+173	i386	rt_sigreturn		sys_rt_sigreturn		__ia32_compat_sys_rt_sigreturn
 174	i386	rt_sigaction		sys_rt_sigaction		__ia32_compat_sys_rt_sigaction
 175	i386	rt_sigprocmask		sys_rt_sigprocmask		__ia32_compat_sys_rt_sigprocmask
 176	i386	rt_sigpending		sys_rt_sigpending		__ia32_compat_sys_rt_sigpending
--- linux-ein-5.4.0.orig/arch/x86/entry/vdso/Makefile
+++ linux-ein-5.4.0/arch/x86/entry/vdso/Makefile
@@ -178,7 +178,7 @@
 		 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
 
 VDSO_LDFLAGS = -shared --hash-style=both --build-id \
-	$(call ld-option, --eh-frame-hdr) -Bsymbolic
+	$(call ld-option, --eh-frame-hdr) -Bsymbolic -z noexecstack
 GCOV_PROFILE := n
 
 quiet_cmd_vdso_and_check = VDSO    $@
--- linux-ein-5.4.0.orig/arch/x86/entry/vdso/vdso32-setup.c
+++ linux-ein-5.4.0/arch/x86/entry/vdso/vdso32-setup.c
@@ -11,6 +11,7 @@
 #include <linux/smp.h>
 #include <linux/kernel.h>
 #include <linux/mm_types.h>
+#include <linux/elf.h>
 
 #include <asm/processor.h>
 #include <asm/vdso.h>
--- linux-ein-5.4.0.orig/arch/x86/entry/vdso/vma.c
+++ linux-ein-5.4.0/arch/x86/entry/vdso/vma.c
@@ -222,8 +222,8 @@
 
 	/* Round the lowest possible end address up to a PMD boundary. */
 	end = (start + len + PMD_SIZE - 1) & PMD_MASK;
-	if (end >= TASK_SIZE_MAX)
-		end = TASK_SIZE_MAX;
+	if (end >= DEFAULT_MAP_WINDOW)
+		end = DEFAULT_MAP_WINDOW;
 	end -= len;
 
 	if (end > start) {
@@ -323,7 +323,7 @@
 static __init int vdso_setup(char *s)
 {
 	vdso64_enabled = simple_strtoul(s, NULL, 0);
-	return 0;
+	return 1;
 }
 __setup("vdso=", vdso_setup);
 
--- linux-ein-5.4.0.orig/arch/x86/events/Kconfig
+++ linux-ein-5.4.0/arch/x86/events/Kconfig
@@ -10,11 +10,11 @@
 	available on NehalemEX and more modern processors.
 
 config PERF_EVENTS_INTEL_RAPL
-	tristate "Intel rapl performance events"
-	depends on PERF_EVENTS && CPU_SUP_INTEL && PCI
+	tristate "Intel/AMD rapl performance events"
+	depends on PERF_EVENTS && (CPU_SUP_INTEL || CPU_SUP_AMD) && PCI
 	default y
 	---help---
-	Include support for Intel rapl performance events for power
+	Include support for Intel and AMD rapl performance events for power
 	monitoring on modern processors.
 
 config PERF_EVENTS_INTEL_CSTATE
--- linux-ein-5.4.0.orig/arch/x86/events/Makefile
+++ linux-ein-5.4.0/arch/x86/events/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-y					+= core.o probe.o
+obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL)	+= rapl.o
 obj-y					+= amd/
 obj-$(CONFIG_X86_LOCAL_APIC)            += msr.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= intel/
--- linux-ein-5.4.0.orig/arch/x86/events/amd/core.c
+++ linux-ein-5.4.0/arch/x86/events/amd/core.c
@@ -14,6 +14,10 @@
 static DEFINE_PER_CPU(unsigned long, perf_nmi_tstamp);
 static unsigned long perf_nmi_window;
 
+/* AMD Event 0xFFF: Merge.  Used with Large Increment per Cycle events */
+#define AMD_MERGE_EVENT ((0xFULL << 32) | 0xFFULL)
+#define AMD_MERGE_EVENT_ENABLE (AMD_MERGE_EVENT | ARCH_PERFMON_EVENTSEL_ENABLE)
+
 static __initconst const u64 amd_hw_cache_event_ids
 				[PERF_COUNT_HW_CACHE_MAX]
 				[PERF_COUNT_HW_CACHE_OP_MAX]
@@ -246,6 +250,7 @@
 	[PERF_COUNT_HW_CPU_CYCLES]		= 0x0076,
 	[PERF_COUNT_HW_INSTRUCTIONS]		= 0x00c0,
 	[PERF_COUNT_HW_CACHE_REFERENCES]	= 0xff60,
+	[PERF_COUNT_HW_CACHE_MISSES]		= 0x0964,
 	[PERF_COUNT_HW_BRANCH_INSTRUCTIONS]	= 0x00c2,
 	[PERF_COUNT_HW_BRANCH_MISSES]		= 0x00c3,
 	[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND]	= 0x0287,
@@ -301,6 +306,25 @@
 	return offset;
 }
 
+/*
+ * AMD64 events are detected based on their event codes.
+ */
+static inline unsigned int amd_get_event_code(struct hw_perf_event *hwc)
+{
+	return ((hwc->config >> 24) & 0x0f00) | (hwc->config & 0x00ff);
+}
+
+static inline bool amd_is_pair_event_code(struct hw_perf_event *hwc)
+{
+	if (!(x86_pmu.flags & PMU_FL_PAIR))
+		return false;
+
+	switch (amd_get_event_code(hwc)) {
+	case 0x003:	return true;	/* Retired SSE/AVX FLOPs */
+	default:	return false;
+	}
+}
+
 static int amd_core_hw_config(struct perf_event *event)
 {
 	if (event->attr.exclude_host && event->attr.exclude_guest)
@@ -316,15 +340,10 @@
 	else if (event->attr.exclude_guest)
 		event->hw.config |= AMD64_EVENTSEL_HOSTONLY;
 
-	return 0;
-}
+	if ((x86_pmu.flags & PMU_FL_PAIR) && amd_is_pair_event_code(&event->hw))
+		event->hw.flags |= PERF_X86_EVENT_PAIR;
 
-/*
- * AMD64 events are detected based on their event codes.
- */
-static inline unsigned int amd_get_event_code(struct hw_perf_event *hwc)
-{
-	return ((hwc->config >> 24) & 0x0f00) | (hwc->config & 0x00ff);
+	return 0;
 }
 
 static inline int amd_is_nb_event(struct hw_perf_event *hwc)
@@ -864,6 +883,29 @@
 	}
 }
 
+static struct event_constraint pair_constraint;
+
+static struct event_constraint *
+amd_get_event_constraints_f17h(struct cpu_hw_events *cpuc, int idx,
+			       struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+
+	if (amd_is_pair_event_code(hwc))
+		return &pair_constraint;
+
+	return &unconstrained;
+}
+
+static void amd_put_event_constraints_f17h(struct cpu_hw_events *cpuc,
+					   struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+
+	if (is_counter_pair(hwc))
+		--cpuc->n_pair;
+}
+
 static ssize_t amd_event_sysfs_show(char *page, u64 config)
 {
 	u64 event = (config & ARCH_PERFMON_EVENTSEL_EVENT) |
@@ -907,33 +949,15 @@
 
 static int __init amd_core_pmu_init(void)
 {
+	u64 even_ctr_mask = 0ULL;
+	int i;
+
 	if (!boot_cpu_has(X86_FEATURE_PERFCTR_CORE))
 		return 0;
 
-	/* Avoid calulating the value each time in the NMI handler */
+	/* Avoid calculating the value each time in the NMI handler */
 	perf_nmi_window = msecs_to_jiffies(100);
 
-	switch (boot_cpu_data.x86) {
-	case 0x15:
-		pr_cont("Fam15h ");
-		x86_pmu.get_event_constraints = amd_get_event_constraints_f15h;
-		break;
-	case 0x17:
-		pr_cont("Fam17h ");
-		/*
-		 * In family 17h, there are no event constraints in the PMC hardware.
-		 * We fallback to using default amd_get_event_constraints.
-		 */
-		break;
-	case 0x18:
-		pr_cont("Fam18h ");
-		/* Using default amd_get_event_constraints. */
-		break;
-	default:
-		pr_err("core perfctr but no constraints; unknown hardware!\n");
-		return -ENODEV;
-	}
-
 	/*
 	 * If core performance counter extensions exists, we must use
 	 * MSR_F15H_PERF_CTL/MSR_F15H_PERF_CTR msrs. See also
@@ -948,6 +972,32 @@
 	 */
 	x86_pmu.amd_nb_constraints = 0;
 
+	if (boot_cpu_data.x86 == 0x15) {
+		pr_cont("Fam15h ");
+		x86_pmu.get_event_constraints = amd_get_event_constraints_f15h;
+	}
+	if (boot_cpu_data.x86 >= 0x17) {
+		pr_cont("Fam17h+ ");
+		/*
+		 * Family 17h and compatibles have constraints for Large
+		 * Increment per Cycle events: they may only be assigned an
+		 * even numbered counter that has a consecutive adjacent odd
+		 * numbered counter following it.
+		 */
+		for (i = 0; i < x86_pmu.num_counters - 1; i += 2)
+			even_ctr_mask |= BIT_ULL(i);
+
+		pair_constraint = (struct event_constraint)
+				    __EVENT_CONSTRAINT(0, even_ctr_mask, 0,
+				    x86_pmu.num_counters / 2, 0,
+				    PERF_X86_EVENT_PAIR);
+
+		x86_pmu.get_event_constraints = amd_get_event_constraints_f17h;
+		x86_pmu.put_event_constraints = amd_put_event_constraints_f17h;
+		x86_pmu.perf_ctr_pair_en = AMD_MERGE_EVENT_ENABLE;
+		x86_pmu.flags |= PMU_FL_PAIR;
+	}
+
 	pr_cont("core perfctr, ");
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/x86/events/amd/ibs.c
+++ linux-ein-5.4.0/arch/x86/events/amd/ibs.c
@@ -89,6 +89,8 @@
 	u64				max_period;
 	unsigned long			offset_mask[1];
 	int				offset_max;
+	unsigned int			fetch_count_reset_broken : 1;
+	unsigned int			fetch_ignore_if_zero_rip : 1;
 	struct cpu_perf_ibs __percpu	*pcpu;
 
 	struct attribute		**format_attrs;
@@ -310,6 +312,16 @@
 	hwc->config_base = perf_ibs->msr;
 	hwc->config = config;
 
+	/*
+	 * rip recorded by IbsOpRip will not be consistent with rsp and rbp
+	 * recorded as part of interrupt regs. Thus we need to use rip from
+	 * interrupt regs while unwinding call stack. Setting _EARLY flag
+	 * makes sure we unwind call-stack before perf sample rip is set to
+	 * IbsOpRip.
+	 */
+	if (event->attr.sample_type & PERF_SAMPLE_CALLCHAIN)
+		event->attr.sample_type |= __PERF_SAMPLE_CALLCHAIN_EARLY;
+
 	return 0;
 }
 
@@ -334,11 +346,15 @@
 {
 	u64 count = 0;
 
+	/*
+	 * If the internal 27-bit counter rolled over, the count is MaxCnt
+	 * and the lower 7 bits of CurCnt are randomized.
+	 * Otherwise CurCnt has the full 27-bit current counter value.
+	 */
 	if (config & IBS_OP_VAL)
-		count += (config & IBS_OP_MAX_CNT) << 4; /* cnt rolled over */
-
-	if (ibs_caps & IBS_CAPS_RDWROPCNT)
-		count += (config & IBS_OP_CUR_CNT) >> 32;
+		count = (config & IBS_OP_MAX_CNT) << 4;
+	else if (ibs_caps & IBS_CAPS_RDWROPCNT)
+		count = (config & IBS_OP_CUR_CNT) >> 32;
 
 	return count;
 }
@@ -363,7 +379,12 @@
 static inline void perf_ibs_enable_event(struct perf_ibs *perf_ibs,
 					 struct hw_perf_event *hwc, u64 config)
 {
-	wrmsrl(hwc->config_base, hwc->config | config | perf_ibs->enable_mask);
+	u64 tmp = hwc->config | config;
+
+	if (perf_ibs->fetch_count_reset_broken)
+		wrmsrl(hwc->config_base, tmp & ~perf_ibs->enable_mask);
+
+	wrmsrl(hwc->config_base, tmp | perf_ibs->enable_mask);
 }
 
 /*
@@ -551,6 +572,7 @@
 		.start		= perf_ibs_start,
 		.stop		= perf_ibs_stop,
 		.read		= perf_ibs_read,
+		.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
 	},
 	.msr			= MSR_AMD64_IBSOPCTL,
 	.config_mask		= IBS_OP_CONFIG_MASK,
@@ -626,18 +648,24 @@
 				       perf_ibs->offset_max,
 				       offset + 1);
 	} while (offset < offset_max);
+	/*
+	 * Read IbsBrTarget, IbsOpData4, and IbsExtdCtl separately
+	 * depending on their availability.
+	 * Can't add to offset_max as they are staggered
+	 */
 	if (event->attr.sample_type & PERF_SAMPLE_RAW) {
-		/*
-		 * Read IbsBrTarget and IbsOpData4 separately
-		 * depending on their availability.
-		 * Can't add to offset_max as they are staggered
-		 */
-		if (ibs_caps & IBS_CAPS_BRNTRGT) {
-			rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++);
-			size++;
+		if (perf_ibs == &perf_ibs_op) {
+			if (ibs_caps & IBS_CAPS_BRNTRGT) {
+				rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++);
+				size++;
+			}
+			if (ibs_caps & IBS_CAPS_OPDATA4) {
+				rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++);
+				size++;
+			}
 		}
-		if (ibs_caps & IBS_CAPS_OPDATA4) {
-			rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++);
+		if (perf_ibs == &perf_ibs_fetch && (ibs_caps & IBS_CAPS_FETCHCTLEXTD)) {
+			rdmsrl(MSR_AMD64_ICIBSEXTDCTL, *buf++);
 			size++;
 		}
 	}
@@ -647,6 +675,10 @@
 	if (check_rip && (ibs_data.regs[2] & IBS_RIP_INVALID)) {
 		regs.flags &= ~PERF_EFLAGS_EXACT;
 	} else {
+		/* Workaround for erratum #1197 */
+		if (perf_ibs->fetch_ignore_if_zero_rip && !(ibs_data.regs[1]))
+			goto out;
+
 		set_linear_ip(&regs, ibs_data.regs[1]);
 		regs.flags |= PERF_EFLAGS_EXACT;
 	}
@@ -661,6 +693,14 @@
 		data.raw = &raw;
 	}
 
+	/*
+	 * rip recorded by IbsOpRip will not be consistent with rsp and rbp
+	 * recorded as part of interrupt regs. Thus we need to use rip from
+	 * interrupt regs while unwinding call stack.
+	 */
+	if (event->attr.sample_type & PERF_SAMPLE_CALLCHAIN)
+		data.callchain = perf_callchain(event, iregs);
+
 	throttle = perf_event_overflow(event, &data, &regs);
 out:
 	if (throttle) {
@@ -733,6 +773,16 @@
 {
 	struct attribute **attr = ibs_op_format_attrs;
 
+	/*
+	 * Some chips fail to reset the fetch count when it is written; instead
+	 * they need a 0-1 transition of IbsFetchEn.
+	 */
+	if (boot_cpu_data.x86 >= 0x16 && boot_cpu_data.x86 <= 0x18)
+		perf_ibs_fetch.fetch_count_reset_broken = 1;
+
+	if (boot_cpu_data.x86 == 0x19 && boot_cpu_data.x86_model < 0x10)
+		perf_ibs_fetch.fetch_ignore_if_zero_rip = 1;
+
 	perf_ibs_pmu_init(&perf_ibs_fetch, "ibs_fetch");
 
 	if (ibs_caps & IBS_CAPS_OPCNT) {
--- linux-ein-5.4.0.orig/arch/x86/events/amd/iommu.c
+++ linux-ein-5.4.0/arch/x86/events/amd/iommu.c
@@ -18,8 +18,6 @@
 #include "../perf_event.h"
 #include "iommu.h"
 
-#define COUNTER_SHIFT		16
-
 /* iommu pmu conf masks */
 #define GET_CSOURCE(x)     ((x)->conf & 0xFFULL)
 #define GET_DEVID(x)       (((x)->conf >> 8)  & 0xFFFFULL)
@@ -81,12 +79,12 @@
 };
 
 struct amd_iommu_event_desc {
-	struct kobj_attribute attr;
+	struct device_attribute attr;
 	const char *event;
 };
 
-static ssize_t _iommu_event_show(struct kobject *kobj,
-				struct kobj_attribute *attr, char *buf)
+static ssize_t _iommu_event_show(struct device *dev,
+				struct device_attribute *attr, char *buf)
 {
 	struct amd_iommu_event_desc *event =
 		container_of(attr, struct amd_iommu_event_desc, attr);
@@ -285,22 +283,31 @@
 	WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
 	hwc->state = 0;
 
+	/*
+	 * To account for power-gating, which prevents write to
+	 * the counter, we need to enable the counter
+	 * before setting up counter register.
+	 */
+	perf_iommu_enable_event(event);
+
 	if (flags & PERF_EF_RELOAD) {
-		u64 prev_raw_count = local64_read(&hwc->prev_count);
+		u64 count = 0;
 		struct amd_iommu *iommu = perf_event_2_iommu(event);
 
+		/*
+		 * Since the IOMMU PMU only support counting mode,
+		 * the counter always start with value zero.
+		 */
 		amd_iommu_pc_set_reg(iommu, hwc->iommu_bank, hwc->iommu_cntr,
-				     IOMMU_PC_COUNTER_REG, &prev_raw_count);
+				     IOMMU_PC_COUNTER_REG, &count);
 	}
 
-	perf_iommu_enable_event(event);
 	perf_event_update_userpage(event);
-
 }
 
 static void perf_iommu_read(struct perf_event *event)
 {
-	u64 count, prev, delta;
+	u64 count;
 	struct hw_perf_event *hwc = &event->hw;
 	struct amd_iommu *iommu = perf_event_2_iommu(event);
 
@@ -311,14 +318,11 @@
 	/* IOMMU pc counter register is only 48 bits */
 	count &= GENMASK_ULL(47, 0);
 
-	prev = local64_read(&hwc->prev_count);
-	if (local64_cmpxchg(&hwc->prev_count, prev, count) != prev)
-		return;
-
-	/* Handle 48-bit counter overflow */
-	delta = (count << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
-	delta >>= COUNTER_SHIFT;
-	local64_add(delta, &event->count);
+	/*
+	 * Since the counter always start with value zero,
+	 * simply just accumulate the count for the event.
+	 */
+	local64_add(count, &event->count);
 }
 
 static void perf_iommu_stop(struct perf_event *event, int flags)
@@ -328,15 +332,16 @@
 	if (hwc->state & PERF_HES_UPTODATE)
 		return;
 
+	/*
+	 * To account for power-gating, in which reading the counter would
+	 * return zero, we need to read the register before disabling.
+	 */
+	perf_iommu_read(event);
+	hwc->state |= PERF_HES_UPTODATE;
+
 	perf_iommu_disable_event(event);
 	WARN_ON_ONCE(hwc->state & PERF_HES_STOPPED);
 	hwc->state |= PERF_HES_STOPPED;
-
-	if (hwc->state & PERF_HES_UPTODATE)
-		return;
-
-	perf_iommu_read(event);
-	hwc->state |= PERF_HES_UPTODATE;
 }
 
 static int perf_iommu_add(struct perf_event *event, int flags)
@@ -379,7 +384,7 @@
 	while (amd_iommu_v2_event_descs[i].attr.attr.name)
 		i++;
 
-	attrs = kcalloc(i + 1, sizeof(struct attribute **), GFP_KERNEL);
+	attrs = kcalloc(i + 1, sizeof(*attrs), GFP_KERNEL);
 	if (!attrs)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/arch/x86/events/amd/power.c
+++ linux-ein-5.4.0/arch/x86/events/amd/power.c
@@ -217,6 +217,7 @@
 	.stop		= pmu_event_stop,
 	.read		= pmu_event_read,
 	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
+	.module		= THIS_MODULE,
 };
 
 static int power_cpu_exit(unsigned int cpu)
--- linux-ein-5.4.0.orig/arch/x86/events/amd/uncore.c
+++ linux-ein-5.4.0/arch/x86/events/amd/uncore.c
@@ -190,15 +190,12 @@
 
 	/*
 	 * NB and Last level cache counters (MSRs) are shared across all cores
-	 * that share the same NB / Last level cache. Interrupts can be directed
-	 * to a single target core, however, event counts generated by processes
-	 * running on other cores cannot be masked out. So we do not support
-	 * sampling and per-thread events.
+	 * that share the same NB / Last level cache.  On family 16h and below,
+	 * Interrupts can be directed to a single target core, however, event
+	 * counts generated by processes running on other cores cannot be masked
+	 * out. So we do not support sampling and per-thread events via
+	 * CAP_NO_INTERRUPT, and we do not enable counter overflow interrupts:
 	 */
-	if (is_sampling_event(event) || event->attach_state & PERF_ATTACH_TASK)
-		return -EINVAL;
-
-	/* and we do not enable counter overflow interrupts */
 	hwc->config = event->attr.config & AMD64_RAW_EVENT_MASK_NB;
 	hwc->idx = -1;
 
@@ -306,7 +303,7 @@
 	.start		= amd_uncore_start,
 	.stop		= amd_uncore_stop,
 	.read		= amd_uncore_read,
-	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
+	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT,
 };
 
 static struct pmu amd_llc_pmu = {
@@ -317,7 +314,7 @@
 	.start		= amd_uncore_start,
 	.stop		= amd_uncore_stop,
 	.read		= amd_uncore_read,
-	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE,
+	.capabilities	= PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT,
 };
 
 static struct amd_uncore *amd_uncore_alloc(unsigned int cpu)
--- linux-ein-5.4.0.orig/arch/x86/events/core.c
+++ linux-ein-5.4.0/arch/x86/events/core.c
@@ -375,7 +375,7 @@
 	 * LBR and BTS are still mutually exclusive.
 	 */
 	if (x86_pmu.lbr_pt_coexist && what == x86_lbr_exclusive_pt)
-		return 0;
+		goto out;
 
 	if (!atomic_inc_not_zero(&x86_pmu.lbr_exclusive[what])) {
 		mutex_lock(&pmc_reserve_mutex);
@@ -387,6 +387,7 @@
 		mutex_unlock(&pmc_reserve_mutex);
 	}
 
+out:
 	atomic_inc(&active_events);
 	return 0;
 
@@ -397,11 +398,15 @@
 
 void x86_del_exclusive(unsigned int what)
 {
+	atomic_dec(&active_events);
+
+	/*
+	 * See the comment in x86_add_exclusive().
+	 */
 	if (x86_pmu.lbr_pt_coexist && what == x86_lbr_exclusive_pt)
 		return;
 
 	atomic_dec(&x86_pmu.lbr_exclusive[what]);
-	atomic_dec(&active_events);
 }
 
 int x86_setup_perfctr(struct perf_event *event)
@@ -612,6 +617,7 @@
 	int idx;
 
 	for (idx = 0; idx < x86_pmu.num_counters; idx++) {
+		struct hw_perf_event *hwc = &cpuc->events[idx]->hw;
 		u64 val;
 
 		if (!test_bit(idx, cpuc->active_mask))
@@ -621,6 +627,8 @@
 			continue;
 		val &= ~ARCH_PERFMON_EVENTSEL_ENABLE;
 		wrmsrl(x86_pmu_config_addr(idx), val);
+		if (is_counter_pair(hwc))
+			wrmsrl(x86_pmu_config_addr(idx + 1), 0);
 	}
 }
 
@@ -693,7 +701,7 @@
 	int	counter;	/* counter index */
 	int	unassigned;	/* number of events to be assigned left */
 	int	nr_gp;		/* number of GP counters used */
-	unsigned long used[BITS_TO_LONGS(X86_PMC_IDX_MAX)];
+	u64	used;
 };
 
 /* Total max is X86_PMC_IDX_MAX, but we are O(n!) limited */
@@ -750,8 +758,12 @@
 	sched->saved_states--;
 	sched->state = sched->saved[sched->saved_states];
 
-	/* continue with next counter: */
-	clear_bit(sched->state.counter++, sched->state.used);
+	/* this assignment didn't work out */
+	/* XXX broken vs EVENT_PAIR */
+	sched->state.used &= ~BIT_ULL(sched->state.counter);
+
+	/* try the next one */
+	sched->state.counter++;
 
 	return true;
 }
@@ -776,20 +788,32 @@
 	if (c->idxmsk64 & (~0ULL << INTEL_PMC_IDX_FIXED)) {
 		idx = INTEL_PMC_IDX_FIXED;
 		for_each_set_bit_from(idx, c->idxmsk, X86_PMC_IDX_MAX) {
-			if (!__test_and_set_bit(idx, sched->state.used))
-				goto done;
+			u64 mask = BIT_ULL(idx);
+
+			if (sched->state.used & mask)
+				continue;
+
+			sched->state.used |= mask;
+			goto done;
 		}
 	}
 
 	/* Grab the first unused counter starting with idx */
 	idx = sched->state.counter;
 	for_each_set_bit_from(idx, c->idxmsk, INTEL_PMC_IDX_FIXED) {
-		if (!__test_and_set_bit(idx, sched->state.used)) {
-			if (sched->state.nr_gp++ >= sched->max_gp)
-				return false;
+		u64 mask = BIT_ULL(idx);
 
-			goto done;
-		}
+		if (c->flags & PERF_X86_EVENT_PAIR)
+			mask |= mask << 1;
+
+		if (sched->state.used & mask)
+			continue;
+
+		if (sched->state.nr_gp++ >= sched->max_gp)
+			return false;
+
+		sched->state.used |= mask;
+		goto done;
 	}
 
 	return false;
@@ -866,12 +890,10 @@
 int x86_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign)
 {
 	struct event_constraint *c;
-	unsigned long used_mask[BITS_TO_LONGS(X86_PMC_IDX_MAX)];
 	struct perf_event *e;
 	int n0, i, wmin, wmax, unsched = 0;
 	struct hw_perf_event *hwc;
-
-	bitmap_zero(used_mask, X86_PMC_IDX_MAX);
+	u64 used_mask = 0;
 
 	/*
 	 * Compute the number of events already present; see x86_pmu_add(),
@@ -914,6 +936,8 @@
 	 * fastpath, try to reuse previous register
 	 */
 	for (i = 0; i < n; i++) {
+		u64 mask;
+
 		hwc = &cpuc->event_list[i]->hw;
 		c = cpuc->event_constraint[i];
 
@@ -925,11 +949,16 @@
 		if (!test_bit(hwc->idx, c->idxmsk))
 			break;
 
+		mask = BIT_ULL(hwc->idx);
+		if (is_counter_pair(hwc))
+			mask |= mask << 1;
+
 		/* not already used */
-		if (test_bit(hwc->idx, used_mask))
+		if (used_mask & mask)
 			break;
 
-		__set_bit(hwc->idx, used_mask);
+		used_mask |= mask;
+
 		if (assign)
 			assign[i] = hwc->idx;
 	}
@@ -952,6 +981,15 @@
 		    READ_ONCE(cpuc->excl_cntrs->exclusive_present))
 			gpmax /= 2;
 
+		/*
+		 * Reduce the amount of available counters to allow fitting
+		 * the extra Merge events needed by large increment events.
+		 */
+		if (x86_pmu.flags & PMU_FL_PAIR) {
+			gpmax = x86_pmu.num_counters - cpuc->n_pair;
+			WARN_ON(gpmax <= 0);
+		}
+
 		unsched = perf_assign_events(cpuc->event_constraint, n, wmin,
 					     wmax, gpmax, assign);
 	}
@@ -1032,6 +1070,8 @@
 			return -EINVAL;
 		cpuc->event_list[n] = leader;
 		n++;
+		if (is_counter_pair(&leader->hw))
+			cpuc->n_pair++;
 	}
 	if (!dogrp)
 		return n;
@@ -1046,6 +1086,8 @@
 
 		cpuc->event_list[n] = event;
 		n++;
+		if (is_counter_pair(&event->hw))
+			cpuc->n_pair++;
 	}
 	return n;
 }
@@ -1232,6 +1274,13 @@
 	wrmsrl(hwc->event_base, (u64)(-left) & x86_pmu.cntval_mask);
 
 	/*
+	 * Clear the Merge event counter's upper 16 bits since
+	 * we currently declare a 48-bit counter width
+	 */
+	if (is_counter_pair(hwc))
+		wrmsrl(x86_pmu_event_addr(idx + 1), 0);
+
+	/*
 	 * Due to erratum on certan cpu we need
 	 * a second write to be sure the register
 	 * is updated properly
@@ -1641,9 +1690,12 @@
 
 ssize_t events_sysfs_show(struct device *dev, struct device_attribute *attr, char *page)
 {
-	struct perf_pmu_events_attr *pmu_attr = \
+	struct perf_pmu_events_attr *pmu_attr =
 		container_of(attr, struct perf_pmu_events_attr, attr);
-	u64 config = x86_pmu.event_map(pmu_attr->id);
+	u64 config = 0;
+
+	if (pmu_attr->id < x86_pmu.max_events)
+		config = x86_pmu.event_map(pmu_attr->id);
 
 	/* string trumps id */
 	if (pmu_attr->event_str)
@@ -1712,6 +1764,9 @@
 {
 	struct perf_pmu_events_attr *pmu_attr;
 
+	if (idx >= x86_pmu.max_events)
+		return 0;
+
 	pmu_attr = container_of(attr, struct perf_pmu_events_attr, attr.attr);
 	/* str trumps id */
 	return pmu_attr->event_str || x86_pmu.event_map(idx) ? attr->mode : 0;
@@ -2097,6 +2152,7 @@
 	if (err) {
 		if (event->destroy)
 			event->destroy(event);
+		event->destroy = NULL;
 	}
 
 	if (READ_ONCE(x86_pmu.attr_rdpmc) &&
@@ -2354,10 +2410,11 @@
 void
 perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct unwind_state state;
 	unsigned long addr;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2463,10 +2520,11 @@
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	struct stack_frame frame;
 	const unsigned long __user *fp;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
+	if (guest_cbs && guest_cbs->is_in_guest()) {
 		/* TODO: We don't support guest os callchain now */
 		return;
 	}
@@ -2550,18 +2608,21 @@
 
 unsigned long perf_instruction_pointer(struct pt_regs *regs)
 {
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest())
-		return perf_guest_cbs->get_guest_ip();
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
+
+	if (guest_cbs && guest_cbs->is_in_guest())
+		return guest_cbs->get_guest_ip();
 
 	return regs->ip + code_segment_base(regs);
 }
 
 unsigned long perf_misc_flags(struct pt_regs *regs)
 {
+	struct perf_guest_info_callbacks *guest_cbs = perf_get_guest_cbs();
 	int misc = 0;
 
-	if (perf_guest_cbs && perf_guest_cbs->is_in_guest()) {
-		if (perf_guest_cbs->is_user_mode())
+	if (guest_cbs && guest_cbs->is_in_guest()) {
+		if (guest_cbs->is_user_mode())
 			misc |= PERF_RECORD_MISC_GUEST_USER;
 		else
 			misc |= PERF_RECORD_MISC_GUEST_KERNEL;
--- linux-ein-5.4.0.orig/arch/x86/events/intel/Makefile
+++ linux-ein-5.4.0/arch/x86/events/intel/Makefile
@@ -2,8 +2,6 @@
 obj-$(CONFIG_CPU_SUP_INTEL)		+= core.o bts.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= ds.o knc.o
 obj-$(CONFIG_CPU_SUP_INTEL)		+= lbr.o p4.o p6.o pt.o
-obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL)	+= intel-rapl-perf.o
-intel-rapl-perf-objs			:= rapl.o
 obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE)	+= intel-uncore.o
 intel-uncore-objs			:= uncore.o uncore_nhmex.o uncore_snb.o uncore_snbep.o
 obj-$(CONFIG_PERF_EVENTS_INTEL_CSTATE)	+= intel-cstate.o
--- linux-ein-5.4.0.orig/arch/x86/events/intel/bts.c
+++ linux-ein-5.4.0/arch/x86/events/intel/bts.c
@@ -63,9 +63,17 @@
 
 static struct pmu bts_pmu;
 
+static int buf_nr_pages(struct page *page)
+{
+	if (!PagePrivate(page))
+		return 1;
+
+	return 1 << page_private(page);
+}
+
 static size_t buf_size(struct page *page)
 {
-	return 1 << (PAGE_SHIFT + page_private(page));
+	return buf_nr_pages(page) * PAGE_SIZE;
 }
 
 static void *
@@ -83,9 +91,7 @@
 	/* count all the high order buffers */
 	for (pg = 0, nbuf = 0; pg < nr_pages;) {
 		page = virt_to_page(pages[pg]);
-		if (WARN_ON_ONCE(!PagePrivate(page) && nr_pages > 1))
-			return NULL;
-		pg += 1 << page_private(page);
+		pg += buf_nr_pages(page);
 		nbuf++;
 	}
 
@@ -109,7 +115,7 @@
 		unsigned int __nr_pages;
 
 		page = virt_to_page(pages[pg]);
-		__nr_pages = PagePrivate(page) ? 1 << page_private(page) : 1;
+		__nr_pages = buf_nr_pages(page);
 		buf->buf[nbuf].page = page;
 		buf->buf[nbuf].offset = offset;
 		buf->buf[nbuf].displacement = (pad ? BTS_RECORD_SIZE - pad : 0);
--- linux-ein-5.4.0.orig/arch/x86/events/intel/core.c
+++ linux-ein-5.4.0/arch/x86/events/intel/core.c
@@ -243,21 +243,23 @@
 
 static struct event_constraint intel_icl_event_constraints[] = {
 	FIXED_EVENT_CONSTRAINT(0x00c0, 0),	/* INST_RETIRED.ANY */
-	INTEL_UEVENT_CONSTRAINT(0x1c0, 0),	/* INST_RETIRED.PREC_DIST */
+	FIXED_EVENT_CONSTRAINT(0x01c0, 0),	/* INST_RETIRED.PREC_DIST */
 	FIXED_EVENT_CONSTRAINT(0x003c, 1),	/* CPU_CLK_UNHALTED.CORE */
 	FIXED_EVENT_CONSTRAINT(0x0300, 2),	/* CPU_CLK_UNHALTED.REF */
 	FIXED_EVENT_CONSTRAINT(0x0400, 3),	/* SLOTS */
 	INTEL_EVENT_CONSTRAINT_RANGE(0x03, 0x0a, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0x1f, 0x28, 0xf),
 	INTEL_EVENT_CONSTRAINT(0x32, 0xf),	/* SW_PREFETCH_ACCESS.* */
-	INTEL_EVENT_CONSTRAINT_RANGE(0x48, 0x54, 0xf),
+	INTEL_EVENT_CONSTRAINT_RANGE(0x48, 0x56, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0x60, 0x8b, 0xf),
 	INTEL_UEVENT_CONSTRAINT(0x04a3, 0xff),  /* CYCLE_ACTIVITY.STALLS_TOTAL */
-	INTEL_UEVENT_CONSTRAINT(0x10a3, 0xff),  /* CYCLE_ACTIVITY.STALLS_MEM_ANY */
+	INTEL_UEVENT_CONSTRAINT(0x10a3, 0xff),  /* CYCLE_ACTIVITY.CYCLES_MEM_ANY */
+	INTEL_UEVENT_CONSTRAINT(0x14a3, 0xff),  /* CYCLE_ACTIVITY.STALLS_MEM_ANY */
 	INTEL_EVENT_CONSTRAINT(0xa3, 0xf),      /* CYCLE_ACTIVITY.* */
 	INTEL_EVENT_CONSTRAINT_RANGE(0xa8, 0xb0, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0xb7, 0xbd, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0xd0, 0xe6, 0xf),
+	INTEL_EVENT_CONSTRAINT(0xef, 0xf),
 	INTEL_EVENT_CONSTRAINT_RANGE(0xf0, 0xf4, 0xf),
 	EVENT_CONSTRAINT_END
 };
@@ -1892,8 +1894,8 @@
 
 static struct extra_reg intel_tnt_extra_regs[] __read_mostly = {
 	/* must define OFFCORE_RSP_X first, see intel_fixup_er() */
-	INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0xffffff9fffull, RSP_0),
-	INTEL_UEVENT_EXTRA_REG(0x02b7, MSR_OFFCORE_RSP_1, 0xffffff9fffull, RSP_1),
+	INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0x800ff0ffffff9fffull, RSP_0),
+	INTEL_UEVENT_EXTRA_REG(0x02b7, MSR_OFFCORE_RSP_1, 0xff0ffffff9fffull, RSP_1),
 	EVENT_EXTRA_END
 };
 
@@ -2331,6 +2333,7 @@
 {
 	struct perf_sample_data data;
 	struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
+	struct perf_guest_info_callbacks *guest_cbs;
 	int bit;
 	int handled = 0;
 
@@ -2384,9 +2387,11 @@
 	 */
 	if (__test_and_clear_bit(55, (unsigned long *)&status)) {
 		handled++;
-		if (unlikely(perf_guest_cbs && perf_guest_cbs->is_in_guest() &&
-			perf_guest_cbs->handle_intel_pt_intr))
-			perf_guest_cbs->handle_intel_pt_intr();
+
+		guest_cbs = perf_get_guest_cbs();
+		if (unlikely(guest_cbs && guest_cbs->is_in_guest() &&
+			     guest_cbs->handle_intel_pt_intr))
+			guest_cbs->handle_intel_pt_intr();
 		else
 			intel_pt_interrupt();
 	}
@@ -3998,9 +4003,13 @@
 	INTEL_CPU_DESC(INTEL_FAM6_BROADWELL_D,		 3, 0x07000009),
 	INTEL_CPU_DESC(INTEL_FAM6_BROADWELL_D,		 4, 0x0f000009),
 	INTEL_CPU_DESC(INTEL_FAM6_BROADWELL_D,		 5, 0x0e000002),
-	INTEL_CPU_DESC(INTEL_FAM6_BROADWELL_X,		 2, 0x0b000014),
+	INTEL_CPU_DESC(INTEL_FAM6_BROADWELL_X,		 1, 0x0b000014),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 3, 0x00000021),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 4, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 5, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 6, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		 7, 0x00000000),
+	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X,		11, 0x00000000),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_L,		 3, 0x0000007c),
 	INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE,		 3, 0x0000007c),
 	INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE,		 9, 0x0000004e),
@@ -4746,6 +4755,7 @@
 		break;
 
 	case INTEL_FAM6_ATOM_TREMONT_D:
+	case INTEL_FAM6_ATOM_TREMONT:
 		x86_pmu.late_ack = true;
 		memcpy(hw_cache_event_ids, glp_hw_cache_event_ids,
 		       sizeof(hw_cache_event_ids));
@@ -5056,7 +5066,7 @@
 		extra_skl_attr = skl_format_attr;
 		mem_attr = icl_events_attrs;
 		tsx_attr = icl_tsx_events_attrs;
-		x86_pmu.rtm_abort_event = X86_CONFIG(.event=0xca, .umask=0x02);
+		x86_pmu.rtm_abort_event = X86_CONFIG(.event=0xc9, .umask=0x04);
 		x86_pmu.lbr_pt_coexist = true;
 		intel_pmu_pebs_data_source_skl(pmem);
 		pr_cont("Icelake events, ");
--- linux-ein-5.4.0.orig/arch/x86/events/intel/cstate.c
+++ linux-ein-5.4.0/arch/x86/events/intel/cstate.c
@@ -40,17 +40,18 @@
  * Model specific counters:
  *	MSR_CORE_C1_RES: CORE C1 Residency Counter
  *			 perf code: 0x00
- *			 Available model: SLM,AMT,GLM,CNL
+ *			 Available model: SLM,AMT,GLM,CNL,TNT
  *			 Scope: Core (each processor core has a MSR)
  *	MSR_CORE_C3_RESIDENCY: CORE C3 Residency Counter
  *			       perf code: 0x01
  *			       Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,GLM,
- *						CNL,KBL,CML
+ *						CNL,KBL,CML,TNT
  *			       Scope: Core
  *	MSR_CORE_C6_RESIDENCY: CORE C6 Residency Counter
  *			       perf code: 0x02
  *			       Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW,
- *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL
+ *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL,
+ *						TNT
  *			       Scope: Core
  *	MSR_CORE_C7_RESIDENCY: CORE C7 Residency Counter
  *			       perf code: 0x03
@@ -60,17 +61,18 @@
  *	MSR_PKG_C2_RESIDENCY:  Package C2 Residency Counter.
  *			       perf code: 0x00
  *			       Available model: SNB,IVB,HSW,BDW,SKL,KNL,GLM,CNL,
- *						KBL,CML,ICL,TGL
+ *						KBL,CML,ICL,TGL,TNT
  *			       Scope: Package (physical package)
  *	MSR_PKG_C3_RESIDENCY:  Package C3 Residency Counter.
  *			       perf code: 0x01
  *			       Available model: NHM,WSM,SNB,IVB,HSW,BDW,SKL,KNL,
- *						GLM,CNL,KBL,CML,ICL,TGL
+ *						GLM,CNL,KBL,CML,ICL,TGL,TNT
  *			       Scope: Package (physical package)
  *	MSR_PKG_C6_RESIDENCY:  Package C6 Residency Counter.
  *			       perf code: 0x02
- *			       Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW
- *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL
+ *			       Available model: SLM,AMT,NHM,WSM,SNB,IVB,HSW,BDW,
+ *						SKL,KNL,GLM,CNL,KBL,CML,ICL,TGL,
+ *						TNT
  *			       Scope: Package (physical package)
  *	MSR_PKG_C7_RESIDENCY:  Package C7 Residency Counter.
  *			       perf code: 0x03
@@ -87,7 +89,8 @@
  *			       Scope: Package (physical package)
  *	MSR_PKG_C10_RESIDENCY: Package C10 Residency Counter.
  *			       perf code: 0x06
- *			       Available model: HSW ULT,KBL,GLM,CNL,CML,ICL,TGL
+ *			       Available model: HSW ULT,KBL,GLM,CNL,CML,ICL,TGL,
+ *						TNT
  *			       Scope: Package (physical package)
  *
  */
@@ -104,14 +107,14 @@
 MODULE_LICENSE("GPL");
 
 #define DEFINE_CSTATE_FORMAT_ATTR(_var, _name, _format)		\
-static ssize_t __cstate_##_var##_show(struct kobject *kobj,	\
-				struct kobj_attribute *attr,	\
+static ssize_t __cstate_##_var##_show(struct device *dev,	\
+				struct device_attribute *attr,	\
 				char *page)			\
 {								\
 	BUILD_BUG_ON(sizeof(_format) >= PAGE_SIZE);		\
 	return sprintf(page, _format "\n");			\
 }								\
-static struct kobj_attribute format_attr_##_var =		\
+static struct device_attribute format_attr_##_var =		\
 	__ATTR(_name, 0444, __cstate_##_var##_show, NULL)
 
 static ssize_t cstate_get_attr_cpumask(struct device *dev,
@@ -640,8 +643,9 @@
 
 	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT,   glm_cstates),
 	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT_D, glm_cstates),
-
 	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT_PLUS, glm_cstates),
+	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_TREMONT_D, glm_cstates),
+	X86_CSTATES_MODEL(INTEL_FAM6_ATOM_TREMONT, glm_cstates),
 
 	X86_CSTATES_MODEL(INTEL_FAM6_ICELAKE_L, icl_cstates),
 	X86_CSTATES_MODEL(INTEL_FAM6_ICELAKE,   icl_cstates),
--- linux-ein-5.4.0.orig/arch/x86/events/intel/ds.c
+++ linux-ein-5.4.0/arch/x86/events/intel/ds.c
@@ -669,9 +669,7 @@
 
 static inline void intel_pmu_drain_pebs_buffer(void)
 {
-	struct pt_regs regs;
-
-	x86_pmu.drain_pebs(&regs);
+	x86_pmu.drain_pebs(NULL);
 }
 
 /*
@@ -854,8 +852,13 @@
 	INTEL_FLAGS_UEVENT_CONSTRAINT(0x0400, 0x800000000ULL),	/* SLOTS */
 
 	INTEL_PLD_CONSTRAINT(0x1cd, 0xff),			/* MEM_TRANS_RETIRED.LOAD_LATENCY */
-	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x1d0, 0xf),	/* MEM_INST_RETIRED.LOAD */
-	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x2d0, 0xf),	/* MEM_INST_RETIRED.STORE */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x11d0, 0xf),	/* MEM_INST_RETIRED.STLB_MISS_LOADS */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x12d0, 0xf),	/* MEM_INST_RETIRED.STLB_MISS_STORES */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x21d0, 0xf),	/* MEM_INST_RETIRED.LOCK_LOADS */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x41d0, 0xf),	/* MEM_INST_RETIRED.SPLIT_LOADS */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x42d0, 0xf),	/* MEM_INST_RETIRED.SPLIT_STORES */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x81d0, 0xf),	/* MEM_INST_RETIRED.ALL_LOADS */
+	INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x82d0, 0xf),	/* MEM_INST_RETIRED.ALL_STORES */
 
 	INTEL_FLAGS_EVENT_CONSTRAINT_DATALA_LD_RANGE(0xd1, 0xd4, 0xf), /* MEM_LOAD_*_RETIRED.* */
 
@@ -1713,6 +1716,8 @@
 	old = ((s64)(prev_raw_count << shift) >> shift);
 	local64_add(new - old + count * period, &event->count);
 
+	local64_set(&hwc->period_left, -new);
+
 	perf_event_update_userpage(event);
 
 	return 0;
@@ -1734,6 +1739,7 @@
 	struct x86_perf_regs perf_regs;
 	struct pt_regs *regs = &perf_regs.regs;
 	void *at = get_next_pebs_record_by_bit(base, top, bit);
+	struct pt_regs dummy_iregs;
 
 	if (hwc->flags & PERF_X86_EVENT_AUTO_RELOAD) {
 		/*
@@ -1746,6 +1752,9 @@
 	} else if (!intel_pmu_save_and_restart(event))
 		return;
 
+	if (!iregs)
+		iregs = &dummy_iregs;
+
 	while (count > 1) {
 		setup_sample(event, iregs, at, &data, regs);
 		perf_event_output(event, &data, regs);
@@ -1755,16 +1764,22 @@
 	}
 
 	setup_sample(event, iregs, at, &data, regs);
-
-	/*
-	 * All but the last records are processed.
-	 * The last one is left to be able to call the overflow handler.
-	 */
-	if (perf_event_overflow(event, &data, regs)) {
-		x86_pmu_stop(event, 0);
-		return;
+	if (iregs == &dummy_iregs) {
+		/*
+		 * The PEBS records may be drained in the non-overflow context,
+		 * e.g., large PEBS + context switch. Perf should treat the
+		 * last record the same as other PEBS records, and doesn't
+		 * invoke the generic overflow handler.
+		 */
+		perf_event_output(event, &data, regs);
+	} else {
+		/*
+		 * All but the last records are processed.
+		 * The last one is left to be able to call the overflow handler.
+		 */
+		if (perf_event_overflow(event, &data, regs))
+			x86_pmu_stop(event, 0);
 	}
-
 }
 
 static void intel_pmu_drain_pebs_core(struct pt_regs *iregs)
@@ -1880,7 +1895,7 @@
 		 */
 		if (!pebs_status && cpuc->pebs_enabled &&
 			!(cpuc->pebs_enabled & (cpuc->pebs_enabled-1)))
-			pebs_status = cpuc->pebs_enabled;
+			pebs_status = p->status = cpuc->pebs_enabled;
 
 		bit = find_first_bit((unsigned long *)&pebs_status,
 					x86_pmu.max_pebs_events);
@@ -1902,7 +1917,7 @@
 		 * that caused the PEBS record. It's called collision.
 		 * If collision happened, the record will be dropped.
 		 */
-		if (p->status != (1ULL << bit)) {
+		if (pebs_status != (1ULL << bit)) {
 			for_each_set_bit(i, (unsigned long *)&pebs_status, size)
 				error[i]++;
 			continue;
--- linux-ein-5.4.0.orig/arch/x86/events/intel/pt.c
+++ linux-ein-5.4.0/arch/x86/events/intel/pt.c
@@ -62,7 +62,7 @@
 	PT_CAP(single_range_output,	0, CPUID_ECX, BIT(2)),
 	PT_CAP(output_subsys,		0, CPUID_ECX, BIT(3)),
 	PT_CAP(payloads_lip,		0, CPUID_ECX, BIT(31)),
-	PT_CAP(num_address_ranges,	1, CPUID_EAX, 0x3),
+	PT_CAP(num_address_ranges,	1, CPUID_EAX, 0x7),
 	PT_CAP(mtc_periods,		1, CPUID_EAX, 0xffff0000),
 	PT_CAP(cycle_thresholds,	1, CPUID_EBX, 0xffff),
 	PT_CAP(psb_periods,		1, CPUID_EBX, 0xffff0000),
@@ -460,7 +460,7 @@
 			pt->filters.filter[range].msr_b = filter->msr_b;
 		}
 
-		rtit_ctl |= filter->config << pt_address_ranges[range].reg_off;
+		rtit_ctl |= (u64)filter->config << pt_address_ranges[range].reg_off;
 	}
 
 	return rtit_ctl;
--- linux-ein-5.4.0.orig/arch/x86/events/intel/uncore.c
+++ linux-ein-5.4.0/arch/x86/events/intel/uncore.c
@@ -92,8 +92,8 @@
 	return map;
 }
 
-ssize_t uncore_event_show(struct kobject *kobj,
-			  struct kobj_attribute *attr, char *buf)
+ssize_t uncore_event_show(struct device *dev,
+			  struct device_attribute *attr, char *buf)
 {
 	struct uncore_event_desc *event =
 		container_of(attr, struct uncore_event_desc, attr);
--- linux-ein-5.4.0.orig/arch/x86/events/intel/uncore.h
+++ linux-ein-5.4.0/arch/x86/events/intel/uncore.h
@@ -144,7 +144,7 @@
 #define UNCORE_BOX_FLAG_CFL8_CBOX_MSR_OFFS	2
 
 struct uncore_event_desc {
-	struct kobj_attribute attr;
+	struct device_attribute attr;
 	const char *config;
 };
 
@@ -165,8 +165,8 @@
 struct pci2phy_map *__find_pci2phy_map(int segment);
 int uncore_pcibus_to_physid(struct pci_bus *bus);
 
-ssize_t uncore_event_show(struct kobject *kobj,
-			  struct kobj_attribute *attr, char *buf);
+ssize_t uncore_event_show(struct device *dev,
+			  struct device_attribute *attr, char *buf);
 
 #define INTEL_UNCORE_EVENT_DESC(_name, _config)			\
 {								\
@@ -175,14 +175,14 @@
 }
 
 #define DEFINE_UNCORE_FORMAT_ATTR(_var, _name, _format)			\
-static ssize_t __uncore_##_var##_show(struct kobject *kobj,		\
-				struct kobj_attribute *attr,		\
+static ssize_t __uncore_##_var##_show(struct device *dev,		\
+				struct device_attribute *attr,		\
 				char *page)				\
 {									\
 	BUILD_BUG_ON(sizeof(_format) >= PAGE_SIZE);			\
 	return sprintf(page, _format "\n");				\
 }									\
-static struct kobj_attribute format_attr_##_var =			\
+static struct device_attribute format_attr_##_var =			\
 	__ATTR(_name, 0444, __uncore_##_var##_show, NULL)
 
 static inline bool uncore_pmc_fixed(int idx)
--- linux-ein-5.4.0.orig/arch/x86/events/intel/uncore_snb.c
+++ linux-ein-5.4.0/arch/x86/events/intel/uncore_snb.c
@@ -15,6 +15,7 @@
 #define PCI_DEVICE_ID_INTEL_SKL_HQ_IMC		0x1910
 #define PCI_DEVICE_ID_INTEL_SKL_SD_IMC		0x190f
 #define PCI_DEVICE_ID_INTEL_SKL_SQ_IMC		0x191f
+#define PCI_DEVICE_ID_INTEL_SKL_E3_IMC		0x1918
 #define PCI_DEVICE_ID_INTEL_KBL_Y_IMC		0x590c
 #define PCI_DEVICE_ID_INTEL_KBL_U_IMC		0x5904
 #define PCI_DEVICE_ID_INTEL_KBL_UQ_IMC		0x5914
@@ -109,6 +110,10 @@
 #define ICL_UNC_CBO_0_PER_CTR0			0x702
 #define ICL_UNC_CBO_MSR_OFFSET			0x8
 
+/* ICL ARB register */
+#define ICL_UNC_ARB_PER_CTR			0x3b1
+#define ICL_UNC_ARB_PERFEVTSEL			0x3b3
+
 DEFINE_UNCORE_FORMAT_ATTR(event, event, "config:0-7");
 DEFINE_UNCORE_FORMAT_ATTR(umask, umask, "config:8-15");
 DEFINE_UNCORE_FORMAT_ATTR(edge, edge, "config:18");
@@ -296,15 +301,21 @@
 	snb_uncore_arb.ops = &skl_uncore_msr_ops;
 }
 
+static struct intel_uncore_ops icl_uncore_msr_ops = {
+	.disable_event	= snb_uncore_msr_disable_event,
+	.enable_event	= snb_uncore_msr_enable_event,
+	.read_counter	= uncore_msr_read_counter,
+};
+
 static struct intel_uncore_type icl_uncore_cbox = {
 	.name		= "cbox",
-	.num_counters   = 4,
+	.num_counters   = 2,
 	.perf_ctr_bits	= 44,
 	.perf_ctr	= ICL_UNC_CBO_0_PER_CTR0,
 	.event_ctl	= SNB_UNC_CBO_0_PERFEVTSEL0,
 	.event_mask	= SNB_UNC_RAW_EVENT_MASK,
 	.msr_offset	= ICL_UNC_CBO_MSR_OFFSET,
-	.ops		= &skl_uncore_msr_ops,
+	.ops		= &icl_uncore_msr_ops,
 	.format_group	= &snb_uncore_format_group,
 };
 
@@ -333,13 +344,25 @@
 	.single_fixed	= 1,
 	.event_mask	= SNB_UNC_CTL_EV_SEL_MASK,
 	.format_group	= &icl_uncore_clock_format_group,
-	.ops		= &skl_uncore_msr_ops,
+	.ops		= &icl_uncore_msr_ops,
 	.event_descs	= icl_uncore_events,
 };
 
+static struct intel_uncore_type icl_uncore_arb = {
+	.name		= "arb",
+	.num_counters   = 1,
+	.num_boxes	= 1,
+	.perf_ctr_bits	= 44,
+	.perf_ctr	= ICL_UNC_ARB_PER_CTR,
+	.event_ctl	= ICL_UNC_ARB_PERFEVTSEL,
+	.event_mask	= SNB_UNC_RAW_EVENT_MASK,
+	.ops		= &icl_uncore_msr_ops,
+	.format_group	= &snb_uncore_format_group,
+};
+
 static struct intel_uncore_type *icl_msr_uncores[] = {
 	&icl_uncore_cbox,
-	&snb_uncore_arb,
+	&icl_uncore_arb,
 	&icl_uncore_clockbox,
 	NULL,
 };
@@ -357,7 +380,6 @@
 {
 	uncore_msr_uncores = icl_msr_uncores;
 	icl_uncore_cbox.num_boxes = icl_get_cbox_num();
-	snb_uncore_arb.ops = &skl_uncore_msr_ops;
 }
 
 enum {
@@ -553,6 +575,22 @@
 	return 0;
 }
 
+static u64 snb_uncore_imc_read_counter(struct intel_uncore_box *box, struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+
+	/*
+	 * SNB IMC counters are 32-bit and are laid out back to back
+	 * in MMIO space. Therefore we must use a 32-bit accessor function
+	 * using readq() from uncore_mmio_read_counter() causes problems
+	 * because it is reading 64-bit at a time. This is okay for the
+	 * uncore_perf_event_update() function because it drops the upper
+	 * 32-bits but not okay for plain uncore_read_counter() as invoked
+	 * in uncore_pmu_event_start().
+	 */
+	return (u64)readl(box->io_addr + hwc->event_base);
+}
+
 static struct pmu snb_uncore_imc_pmu = {
 	.task_ctx_nr	= perf_invalid_context,
 	.event_init	= snb_uncore_imc_event_init,
@@ -572,7 +610,7 @@
 	.disable_event	= snb_uncore_imc_disable_event,
 	.enable_event	= snb_uncore_imc_enable_event,
 	.hw_config	= snb_uncore_imc_hw_config,
-	.read_counter	= uncore_mmio_read_counter,
+	.read_counter	= snb_uncore_imc_read_counter,
 };
 
 static struct intel_uncore_type snb_uncore_imc = {
@@ -658,6 +696,10 @@
 		.driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0),
 	},
 	{ /* IMC */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SKL_E3_IMC),
+		.driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0),
+	},
+	{ /* IMC */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KBL_Y_IMC),
 		.driver_data = UNCORE_PCI_DEV_DATA(SNB_PCI_UNCORE_IMC, 0),
 	},
@@ -826,6 +868,7 @@
 	IMC_DEV(SKL_HQ_IMC, &skl_uncore_pci_driver),  /* 6th Gen Core H Quad Core */
 	IMC_DEV(SKL_SD_IMC, &skl_uncore_pci_driver),  /* 6th Gen Core S Dual Core */
 	IMC_DEV(SKL_SQ_IMC, &skl_uncore_pci_driver),  /* 6th Gen Core S Quad Core */
+	IMC_DEV(SKL_E3_IMC, &skl_uncore_pci_driver),  /* Xeon E3 V5 Gen Core processor */
 	IMC_DEV(KBL_Y_IMC, &skl_uncore_pci_driver),  /* 7th Gen Core Y */
 	IMC_DEV(KBL_U_IMC, &skl_uncore_pci_driver),  /* 7th Gen Core U */
 	IMC_DEV(KBL_UQ_IMC, &skl_uncore_pci_driver),  /* 7th Gen Core U Quad Core */
--- linux-ein-5.4.0.orig/arch/x86/events/intel/uncore_snbep.c
+++ linux-ein-5.4.0/arch/x86/events/intel/uncore_snbep.c
@@ -369,11 +369,6 @@
 #define SNR_M2M_PCI_PMON_BOX_CTL		0x438
 #define SNR_M2M_PCI_PMON_UMASK_EXT		0xff
 
-/* SNR PCIE3 */
-#define SNR_PCIE3_PCI_PMON_CTL0			0x508
-#define SNR_PCIE3_PCI_PMON_CTR0			0x4e8
-#define SNR_PCIE3_PCI_PMON_BOX_CTL		0x4e4
-
 /* SNR IMC */
 #define SNR_IMC_MMIO_PMON_FIXED_CTL		0x54
 #define SNR_IMC_MMIO_PMON_FIXED_CTR		0x38
@@ -1098,7 +1093,6 @@
 	SNBEP_PCI_QPI_PORT0_FILTER,
 	SNBEP_PCI_QPI_PORT1_FILTER,
 	BDX_PCI_QPI_PORT2_FILTER,
-	HSWEP_PCI_PCU_3,
 };
 
 static int snbep_qpi_hw_config(struct intel_uncore_box *box, struct perf_event *event)
@@ -2755,22 +2749,34 @@
 	NULL,
 };
 
-void hswep_uncore_cpu_init(void)
+#define HSWEP_PCU_DID			0x2fc0
+#define HSWEP_PCU_CAPID4_OFFET		0x94
+#define hswep_get_chop(_cap)		(((_cap) >> 6) & 0x3)
+
+static bool hswep_has_limit_sbox(unsigned int device)
 {
-	int pkg = boot_cpu_data.logical_proc_id;
+	struct pci_dev *dev = pci_get_device(PCI_VENDOR_ID_INTEL, device, NULL);
+	u32 capid4;
+
+	if (!dev)
+		return false;
+
+	pci_read_config_dword(dev, HSWEP_PCU_CAPID4_OFFET, &capid4);
+	pci_dev_put(dev);
+	if (!hswep_get_chop(capid4))
+		return true;
+
+	return false;
+}
 
+void hswep_uncore_cpu_init(void)
+{
 	if (hswep_uncore_cbox.num_boxes > boot_cpu_data.x86_max_cores)
 		hswep_uncore_cbox.num_boxes = boot_cpu_data.x86_max_cores;
 
 	/* Detect 6-8 core systems with only two SBOXes */
-	if (uncore_extra_pci_dev[pkg].dev[HSWEP_PCI_PCU_3]) {
-		u32 capid4;
-
-		pci_read_config_dword(uncore_extra_pci_dev[pkg].dev[HSWEP_PCI_PCU_3],
-				      0x94, &capid4);
-		if (((capid4 >> 6) & 0x3) == 0)
-			hswep_uncore_sbox.num_boxes = 2;
-	}
+	if (hswep_has_limit_sbox(HSWEP_PCU_DID))
+		hswep_uncore_sbox.num_boxes = 2;
 
 	uncore_msr_uncores = hswep_msr_uncores;
 }
@@ -3033,11 +3039,6 @@
 		.driver_data = UNCORE_PCI_DEV_DATA(UNCORE_EXTRA_PCI_DEV,
 						   SNBEP_PCI_QPI_PORT1_FILTER),
 	},
-	{ /* PCU.3 (for Capability registers) */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x2fc0),
-		.driver_data = UNCORE_PCI_DEV_DATA(UNCORE_EXTRA_PCI_DEV,
-						   HSWEP_PCI_PCU_3),
-	},
 	{ /* end: all zeroes */ }
 };
 
@@ -3129,27 +3130,18 @@
 	EVENT_CONSTRAINT_END
 };
 
+#define BDX_PCU_DID			0x6fc0
+
 void bdx_uncore_cpu_init(void)
 {
-	int pkg = topology_phys_to_logical_pkg(boot_cpu_data.phys_proc_id);
-
 	if (bdx_uncore_cbox.num_boxes > boot_cpu_data.x86_max_cores)
 		bdx_uncore_cbox.num_boxes = boot_cpu_data.x86_max_cores;
 	uncore_msr_uncores = bdx_msr_uncores;
 
-	/* BDX-DE doesn't have SBOX */
-	if (boot_cpu_data.x86_model == 86) {
-		uncore_msr_uncores[BDX_MSR_UNCORE_SBOX] = NULL;
 	/* Detect systems with no SBOXes */
-	} else if (uncore_extra_pci_dev[pkg].dev[HSWEP_PCI_PCU_3]) {
-		struct pci_dev *pdev;
-		u32 capid4;
-
-		pdev = uncore_extra_pci_dev[pkg].dev[HSWEP_PCI_PCU_3];
-		pci_read_config_dword(pdev, 0x94, &capid4);
-		if (((capid4 >> 6) & 0x3) == 0)
-			bdx_msr_uncores[BDX_MSR_UNCORE_SBOX] = NULL;
-	}
+	if ((boot_cpu_data.x86_model == 86) || hswep_has_limit_sbox(BDX_PCU_DID))
+		uncore_msr_uncores[BDX_MSR_UNCORE_SBOX] = NULL;
+
 	hswep_uncore_pcu.constraints = bdx_uncore_pcu_constraints;
 }
 
@@ -3370,11 +3362,6 @@
 		.driver_data = UNCORE_PCI_DEV_DATA(UNCORE_EXTRA_PCI_DEV,
 						   BDX_PCI_QPI_PORT2_FILTER),
 	},
-	{ /* PCU.3 (for Capability registers) */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x6fc0),
-		.driver_data = UNCORE_PCI_DEV_DATA(UNCORE_EXTRA_PCI_DEV,
-						   HSWEP_PCI_PCU_3),
-	},
 	{ /* end: all zeroes */ }
 };
 
@@ -3493,6 +3480,9 @@
 	struct hw_perf_event_extra *reg1 = &event->hw.extra_reg;
 	struct extra_reg *er;
 	int idx = 0;
+	/* Any of the CHA events may be filtered by Thread/Core-ID.*/
+	if (event->hw.config & SNBEP_CBO_PMON_CTL_TID_EN)
+		idx = SKX_CHA_MSR_PMON_BOX_FILTER_TID;
 
 	for (er = skx_uncore_cha_extra_regs; er->msr; er++) {
 		if (er->event != (event->hw.config & er->config_mask))
@@ -3560,6 +3550,7 @@
 	UNCORE_EVENT_CONSTRAINT(0xc0, 0xc),
 	UNCORE_EVENT_CONSTRAINT(0xc5, 0xc),
 	UNCORE_EVENT_CONSTRAINT(0xd4, 0xc),
+	UNCORE_EVENT_CONSTRAINT(0xd5, 0xc),
 	EVENT_CONSTRAINT_END
 };
 
@@ -4328,27 +4319,12 @@
 	.format_group	= &snr_m2m_uncore_format_group,
 };
 
-static struct intel_uncore_type snr_uncore_pcie3 = {
-	.name		= "pcie3",
-	.num_counters	= 4,
-	.num_boxes	= 1,
-	.perf_ctr_bits	= 48,
-	.perf_ctr	= SNR_PCIE3_PCI_PMON_CTR0,
-	.event_ctl	= SNR_PCIE3_PCI_PMON_CTL0,
-	.event_mask	= SNBEP_PMON_RAW_EVENT_MASK,
-	.box_ctl	= SNR_PCIE3_PCI_PMON_BOX_CTL,
-	.ops		= &ivbep_uncore_pci_ops,
-	.format_group	= &ivbep_uncore_format_group,
-};
-
 enum {
 	SNR_PCI_UNCORE_M2M,
-	SNR_PCI_UNCORE_PCIE3,
 };
 
 static struct intel_uncore_type *snr_pci_uncores[] = {
 	[SNR_PCI_UNCORE_M2M]		= &snr_uncore_m2m,
-	[SNR_PCI_UNCORE_PCIE3]		= &snr_uncore_pcie3,
 	NULL,
 };
 
@@ -4357,10 +4333,6 @@
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x344a),
 		.driver_data = UNCORE_PCI_DEV_FULL_DATA(12, 0, SNR_PCI_UNCORE_M2M, 0),
 	},
-	{ /* PCIe3 */
-		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x334a),
-		.driver_data = UNCORE_PCI_DEV_FULL_DATA(4, 0, SNR_PCI_UNCORE_PCIE3, 0),
-	},
 	{ /* end: all zeroes */ }
 };
 
@@ -4415,7 +4387,7 @@
 		return;
 
 	pci_read_config_dword(pdev, SNR_IMC_MMIO_BASE_OFFSET, &pci_dword);
-	addr = (pci_dword & SNR_IMC_MMIO_BASE_MASK) << 23;
+	addr = ((resource_size_t)pci_dword & SNR_IMC_MMIO_BASE_MASK) << 23;
 
 	pci_read_config_dword(pdev, SNR_IMC_MMIO_MEM0_OFFSET, &pci_dword);
 	addr |= (pci_dword & SNR_IMC_MMIO_MEM0_MASK) << 12;
@@ -4536,6 +4508,7 @@
 	INTEL_UNCORE_EVENT_DESC(write,		"event=0xff,umask=0x21"),
 	INTEL_UNCORE_EVENT_DESC(write.scale,	"3.814697266e-6"),
 	INTEL_UNCORE_EVENT_DESC(write.unit,	"MiB"),
+	{ /* end: all zeroes */ },
 };
 
 static struct intel_uncore_ops snr_uncore_imc_freerunning_ops = {
--- linux-ein-5.4.0.orig/arch/x86/events/msr.c
+++ linux-ein-5.4.0/arch/x86/events/msr.c
@@ -75,8 +75,9 @@
 
 	case INTEL_FAM6_ATOM_GOLDMONT:
 	case INTEL_FAM6_ATOM_GOLDMONT_D:
-
 	case INTEL_FAM6_ATOM_GOLDMONT_PLUS:
+	case INTEL_FAM6_ATOM_TREMONT_D:
+	case INTEL_FAM6_ATOM_TREMONT:
 
 	case INTEL_FAM6_XEON_PHI_KNL:
 	case INTEL_FAM6_XEON_PHI_KNM:
--- linux-ein-5.4.0.orig/arch/x86/events/perf_event.h
+++ linux-ein-5.4.0/arch/x86/events/perf_event.h
@@ -77,6 +77,7 @@
 #define PERF_X86_EVENT_AUTO_RELOAD	0x0200 /* use PEBS auto-reload */
 #define PERF_X86_EVENT_LARGE_PEBS	0x0400 /* use large PEBS */
 #define PERF_X86_EVENT_PEBS_VIA_PT	0x0800 /* use PT buffer for PEBS */
+#define PERF_X86_EVENT_PAIR		0x1000 /* Large Increment per Cycle */
 
 struct amd_nb {
 	int nb_id;  /* NorthBridge id */
@@ -272,6 +273,7 @@
 	struct amd_nb			*amd_nb;
 	/* Inverted mask of bits to clear in the perf_ctr ctrl registers */
 	u64				perf_ctr_virt_mask;
+	int				n_pair; /* Large increment events */
 
 	void				*kfree_on_online[X86_PERF_KFREE_MAX];
 };
@@ -686,6 +688,7 @@
 	 * AMD bits
 	 */
 	unsigned int	amd_nb_constraints : 1;
+	u64		perf_ctr_pair_en;
 
 	/*
 	 * Extra registers for events
@@ -735,6 +738,7 @@
 #define PMU_FL_EXCL_ENABLED	0x8 /* exclusive counter active */
 #define PMU_FL_PEBS_ALL		0x10 /* all events are valid PEBS events */
 #define PMU_FL_TFA		0x20 /* deal with TSX force abort */
+#define PMU_FL_PAIR		0x40 /* merge counters for large incr. events */
 
 #define EVENT_VAR(_id)  event_attr_##_id
 #define EVENT_PTR(_id) &event_attr_##_id.attr.attr
@@ -830,6 +834,11 @@
 
 void x86_pmu_disable_all(void);
 
+static inline bool is_counter_pair(struct hw_perf_event *hwc)
+{
+	return hwc->flags & PERF_X86_EVENT_PAIR;
+}
+
 static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc,
 					  u64 enable_mask)
 {
@@ -837,6 +846,14 @@
 
 	if (hwc->extra_reg.reg)
 		wrmsrl(hwc->extra_reg.reg, hwc->extra_reg.config);
+
+	/*
+	 * Add enabled Merge event on next counter
+	 * if large increment event being enabled on this counter
+	 */
+	if (is_counter_pair(hwc))
+		wrmsrl(x86_pmu_config_addr(hwc->idx + 1), x86_pmu.perf_ctr_pair_en);
+
 	wrmsrl(hwc->config_base, (hwc->config | enable_mask) & ~disable_mask);
 }
 
@@ -850,9 +867,13 @@
 
 static inline void x86_pmu_disable_event(struct perf_event *event)
 {
+	u64 disable_mask = __this_cpu_read(cpu_hw_events.perf_ctr_virt_mask);
 	struct hw_perf_event *hwc = &event->hw;
 
-	wrmsrl(hwc->config_base, hwc->config);
+	wrmsrl(hwc->config_base, hwc->config & ~disable_mask);
+
+	if (is_counter_pair(hwc))
+		wrmsrl(x86_pmu_config_addr(hwc->idx + 1), 0);
 }
 
 void x86_pmu_enable_event(struct perf_event *event);
--- linux-ein-5.4.0.orig/arch/x86/events/rapl.c
+++ linux-ein-5.4.0/arch/x86/events/rapl.c
@@ -0,0 +1,793 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Support Intel/AMD RAPL energy consumption counters
+ * Copyright (C) 2013 Google, Inc., Stephane Eranian
+ *
+ * Intel RAPL interface is specified in the IA-32 Manual Vol3b
+ * section 14.7.1 (September 2013)
+ *
+ * AMD RAPL interface for Fam17h is described in the public PPR:
+ * https://bugzilla.kernel.org/show_bug.cgi?id=206537
+ *
+ * RAPL provides more controls than just reporting energy consumption
+ * however here we only expose the 3 energy consumption free running
+ * counters (pp0, pkg, dram).
+ *
+ * Each of those counters increments in a power unit defined by the
+ * RAPL_POWER_UNIT MSR. On SandyBridge, this unit is 1/(2^16) Joules
+ * but it can vary.
+ *
+ * Counter to rapl events mappings:
+ *
+ *  pp0 counter: consumption of all physical cores (power plane 0)
+ * 	  event: rapl_energy_cores
+ *    perf code: 0x1
+ *
+ *  pkg counter: consumption of the whole processor package
+ *	  event: rapl_energy_pkg
+ *    perf code: 0x2
+ *
+ * dram counter: consumption of the dram domain (servers only)
+ *	  event: rapl_energy_dram
+ *    perf code: 0x3
+ *
+ * gpu counter: consumption of the builtin-gpu domain (client only)
+ *	  event: rapl_energy_gpu
+ *    perf code: 0x4
+ *
+ *  psys counter: consumption of the builtin-psys domain (client only)
+ *	  event: rapl_energy_psys
+ *    perf code: 0x5
+ *
+ * We manage those counters as free running (read-only). They may be
+ * use simultaneously by other tools, such as turbostat.
+ *
+ * The events only support system-wide mode counting. There is no
+ * sampling support because it does not make sense and is not
+ * supported by the RAPL hardware.
+ *
+ * Because we want to avoid floating-point operations in the kernel,
+ * the events are all reported in fixed point arithmetic (32.32).
+ * Tools must adjust the counts to convert them to Watts using
+ * the duration of the measurement. Tools may use a function such as
+ * ldexp(raw_count, -32);
+ */
+
+#define pr_fmt(fmt) "RAPL PMU: " fmt
+
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/perf_event.h>
+#include <linux/nospec.h>
+#include <asm/cpu_device_id.h>
+#include <asm/intel-family.h>
+#include "perf_event.h"
+#include "probe.h"
+
+MODULE_LICENSE("GPL");
+
+/*
+ * RAPL energy status counters
+ */
+enum perf_rapl_events {
+	PERF_RAPL_PP0 = 0,		/* all cores */
+	PERF_RAPL_PKG,			/* entire package */
+	PERF_RAPL_RAM,			/* DRAM */
+	PERF_RAPL_PP1,			/* gpu */
+	PERF_RAPL_PSYS,			/* psys */
+
+	PERF_RAPL_MAX,
+	NR_RAPL_DOMAINS = PERF_RAPL_MAX,
+};
+
+static const char *const rapl_domain_names[NR_RAPL_DOMAINS] __initconst = {
+	"pp0-core",
+	"package",
+	"dram",
+	"pp1-gpu",
+	"psys",
+};
+
+/*
+ * event code: LSB 8 bits, passed in attr->config
+ * any other bit is reserved
+ */
+#define RAPL_EVENT_MASK	0xFFULL
+#define RAPL_CNTR_WIDTH 32
+
+#define RAPL_EVENT_ATTR_STR(_name, v, str)					\
+static struct perf_pmu_events_attr event_attr_##v = {				\
+	.attr		= __ATTR(_name, 0444, perf_event_sysfs_show, NULL),	\
+	.id		= 0,							\
+	.event_str	= str,							\
+};
+
+struct rapl_pmu {
+	raw_spinlock_t		lock;
+	int			n_active;
+	int			cpu;
+	struct list_head	active_list;
+	struct pmu		*pmu;
+	ktime_t			timer_interval;
+	struct hrtimer		hrtimer;
+};
+
+struct rapl_pmus {
+	struct pmu		pmu;
+	unsigned int		maxdie;
+	struct rapl_pmu		*pmus[];
+};
+
+struct rapl_model {
+	unsigned long	events;
+	bool		apply_quirk;
+};
+
+ /* 1/2^hw_unit Joule */
+static int rapl_hw_unit[NR_RAPL_DOMAINS] __read_mostly;
+static struct rapl_pmus *rapl_pmus;
+static cpumask_t rapl_cpu_mask;
+static unsigned int rapl_cntr_mask;
+static u64 rapl_timer_ms;
+static struct perf_msr rapl_msrs[];
+
+static inline struct rapl_pmu *cpu_to_rapl_pmu(unsigned int cpu)
+{
+	unsigned int dieid = topology_logical_die_id(cpu);
+
+	/*
+	 * The unsigned check also catches the '-1' return value for non
+	 * existent mappings in the topology map.
+	 */
+	return dieid < rapl_pmus->maxdie ? rapl_pmus->pmus[dieid] : NULL;
+}
+
+static inline u64 rapl_read_counter(struct perf_event *event)
+{
+	u64 raw;
+	rdmsrl(event->hw.event_base, raw);
+	return raw;
+}
+
+static inline u64 rapl_scale(u64 v, int cfg)
+{
+	if (cfg > NR_RAPL_DOMAINS) {
+		pr_warn("Invalid domain %d, failed to scale data\n", cfg);
+		return v;
+	}
+	/*
+	 * scale delta to smallest unit (1/2^32)
+	 * users must then scale back: count * 1/(1e9*2^32) to get Joules
+	 * or use ldexp(count, -32).
+	 * Watts = Joules/Time delta
+	 */
+	return v << (32 - rapl_hw_unit[cfg - 1]);
+}
+
+static u64 rapl_event_update(struct perf_event *event)
+{
+	struct hw_perf_event *hwc = &event->hw;
+	u64 prev_raw_count, new_raw_count;
+	s64 delta, sdelta;
+	int shift = RAPL_CNTR_WIDTH;
+
+again:
+	prev_raw_count = local64_read(&hwc->prev_count);
+	rdmsrl(event->hw.event_base, new_raw_count);
+
+	if (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
+			    new_raw_count) != prev_raw_count) {
+		cpu_relax();
+		goto again;
+	}
+
+	/*
+	 * Now we have the new raw value and have updated the prev
+	 * timestamp already. We can now calculate the elapsed delta
+	 * (event-)time and add that to the generic event.
+	 *
+	 * Careful, not all hw sign-extends above the physical width
+	 * of the count.
+	 */
+	delta = (new_raw_count << shift) - (prev_raw_count << shift);
+	delta >>= shift;
+
+	sdelta = rapl_scale(delta, event->hw.config);
+
+	local64_add(sdelta, &event->count);
+
+	return new_raw_count;
+}
+
+static void rapl_start_hrtimer(struct rapl_pmu *pmu)
+{
+       hrtimer_start(&pmu->hrtimer, pmu->timer_interval,
+		     HRTIMER_MODE_REL_PINNED);
+}
+
+static enum hrtimer_restart rapl_hrtimer_handle(struct hrtimer *hrtimer)
+{
+	struct rapl_pmu *pmu = container_of(hrtimer, struct rapl_pmu, hrtimer);
+	struct perf_event *event;
+	unsigned long flags;
+
+	if (!pmu->n_active)
+		return HRTIMER_NORESTART;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+
+	list_for_each_entry(event, &pmu->active_list, active_entry)
+		rapl_event_update(event);
+
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+
+	hrtimer_forward_now(hrtimer, pmu->timer_interval);
+
+	return HRTIMER_RESTART;
+}
+
+static void rapl_hrtimer_init(struct rapl_pmu *pmu)
+{
+	struct hrtimer *hr = &pmu->hrtimer;
+
+	hrtimer_init(hr, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	hr->function = rapl_hrtimer_handle;
+}
+
+static void __rapl_pmu_event_start(struct rapl_pmu *pmu,
+				   struct perf_event *event)
+{
+	if (WARN_ON_ONCE(!(event->hw.state & PERF_HES_STOPPED)))
+		return;
+
+	event->hw.state = 0;
+
+	list_add_tail(&event->active_entry, &pmu->active_list);
+
+	local64_set(&event->hw.prev_count, rapl_read_counter(event));
+
+	pmu->n_active++;
+	if (pmu->n_active == 1)
+		rapl_start_hrtimer(pmu);
+}
+
+static void rapl_pmu_event_start(struct perf_event *event, int mode)
+{
+	struct rapl_pmu *pmu = event->pmu_private;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+	__rapl_pmu_event_start(pmu, event);
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+}
+
+static void rapl_pmu_event_stop(struct perf_event *event, int mode)
+{
+	struct rapl_pmu *pmu = event->pmu_private;
+	struct hw_perf_event *hwc = &event->hw;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+
+	/* mark event as deactivated and stopped */
+	if (!(hwc->state & PERF_HES_STOPPED)) {
+		WARN_ON_ONCE(pmu->n_active <= 0);
+		pmu->n_active--;
+		if (pmu->n_active == 0)
+			hrtimer_cancel(&pmu->hrtimer);
+
+		list_del(&event->active_entry);
+
+		WARN_ON_ONCE(hwc->state & PERF_HES_STOPPED);
+		hwc->state |= PERF_HES_STOPPED;
+	}
+
+	/* check if update of sw counter is necessary */
+	if ((mode & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) {
+		/*
+		 * Drain the remaining delta count out of a event
+		 * that we are disabling:
+		 */
+		rapl_event_update(event);
+		hwc->state |= PERF_HES_UPTODATE;
+	}
+
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+}
+
+static int rapl_pmu_event_add(struct perf_event *event, int mode)
+{
+	struct rapl_pmu *pmu = event->pmu_private;
+	struct hw_perf_event *hwc = &event->hw;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pmu->lock, flags);
+
+	hwc->state = PERF_HES_UPTODATE | PERF_HES_STOPPED;
+
+	if (mode & PERF_EF_START)
+		__rapl_pmu_event_start(pmu, event);
+
+	raw_spin_unlock_irqrestore(&pmu->lock, flags);
+
+	return 0;
+}
+
+static void rapl_pmu_event_del(struct perf_event *event, int flags)
+{
+	rapl_pmu_event_stop(event, PERF_EF_UPDATE);
+}
+
+static int rapl_pmu_event_init(struct perf_event *event)
+{
+	u64 cfg = event->attr.config & RAPL_EVENT_MASK;
+	int bit, ret = 0;
+	struct rapl_pmu *pmu;
+
+	/* only look at RAPL events */
+	if (event->attr.type != rapl_pmus->pmu.type)
+		return -ENOENT;
+
+	/* check only supported bits are set */
+	if (event->attr.config & ~RAPL_EVENT_MASK)
+		return -EINVAL;
+
+	if (event->cpu < 0)
+		return -EINVAL;
+
+	event->event_caps |= PERF_EV_CAP_READ_ACTIVE_PKG;
+
+	if (!cfg || cfg >= NR_RAPL_DOMAINS + 1)
+		return -EINVAL;
+
+	cfg = array_index_nospec((long)cfg, NR_RAPL_DOMAINS + 1);
+	bit = cfg - 1;
+
+	/* check event supported */
+	if (!(rapl_cntr_mask & (1 << bit)))
+		return -EINVAL;
+
+	/* unsupported modes and filters */
+	if (event->attr.sample_period) /* no sampling */
+		return -EINVAL;
+
+	/* must be done before validate_group */
+	pmu = cpu_to_rapl_pmu(event->cpu);
+	if (!pmu)
+		return -EINVAL;
+	event->cpu = pmu->cpu;
+	event->pmu_private = pmu;
+	event->hw.event_base = rapl_msrs[bit].msr;
+	event->hw.config = cfg;
+	event->hw.idx = bit;
+
+	return ret;
+}
+
+static void rapl_pmu_event_read(struct perf_event *event)
+{
+	rapl_event_update(event);
+}
+
+static ssize_t rapl_get_attr_cpumask(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	return cpumap_print_to_pagebuf(true, buf, &rapl_cpu_mask);
+}
+
+static DEVICE_ATTR(cpumask, S_IRUGO, rapl_get_attr_cpumask, NULL);
+
+static struct attribute *rapl_pmu_attrs[] = {
+	&dev_attr_cpumask.attr,
+	NULL,
+};
+
+static struct attribute_group rapl_pmu_attr_group = {
+	.attrs = rapl_pmu_attrs,
+};
+
+RAPL_EVENT_ATTR_STR(energy-cores, rapl_cores, "event=0x01");
+RAPL_EVENT_ATTR_STR(energy-pkg  ,   rapl_pkg, "event=0x02");
+RAPL_EVENT_ATTR_STR(energy-ram  ,   rapl_ram, "event=0x03");
+RAPL_EVENT_ATTR_STR(energy-gpu  ,   rapl_gpu, "event=0x04");
+RAPL_EVENT_ATTR_STR(energy-psys,   rapl_psys, "event=0x05");
+
+RAPL_EVENT_ATTR_STR(energy-cores.unit, rapl_cores_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-pkg.unit  ,   rapl_pkg_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-ram.unit  ,   rapl_ram_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-gpu.unit  ,   rapl_gpu_unit, "Joules");
+RAPL_EVENT_ATTR_STR(energy-psys.unit,   rapl_psys_unit, "Joules");
+
+/*
+ * we compute in 0.23 nJ increments regardless of MSR
+ */
+RAPL_EVENT_ATTR_STR(energy-cores.scale, rapl_cores_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-pkg.scale,     rapl_pkg_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-ram.scale,     rapl_ram_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-gpu.scale,     rapl_gpu_scale, "2.3283064365386962890625e-10");
+RAPL_EVENT_ATTR_STR(energy-psys.scale,   rapl_psys_scale, "2.3283064365386962890625e-10");
+
+/*
+ * There are no default events, but we need to create
+ * "events" group (with empty attrs) before updating
+ * it with detected events.
+ */
+static struct attribute *attrs_empty[] = {
+	NULL,
+};
+
+static struct attribute_group rapl_pmu_events_group = {
+	.name = "events",
+	.attrs = attrs_empty,
+};
+
+PMU_FORMAT_ATTR(event, "config:0-7");
+static struct attribute *rapl_formats_attr[] = {
+	&format_attr_event.attr,
+	NULL,
+};
+
+static struct attribute_group rapl_pmu_format_group = {
+	.name = "format",
+	.attrs = rapl_formats_attr,
+};
+
+static const struct attribute_group *rapl_attr_groups[] = {
+	&rapl_pmu_attr_group,
+	&rapl_pmu_format_group,
+	&rapl_pmu_events_group,
+	NULL,
+};
+
+static struct attribute *rapl_events_cores[] = {
+	EVENT_PTR(rapl_cores),
+	EVENT_PTR(rapl_cores_unit),
+	EVENT_PTR(rapl_cores_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_cores_group = {
+	.name  = "events",
+	.attrs = rapl_events_cores,
+};
+
+static struct attribute *rapl_events_pkg[] = {
+	EVENT_PTR(rapl_pkg),
+	EVENT_PTR(rapl_pkg_unit),
+	EVENT_PTR(rapl_pkg_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_pkg_group = {
+	.name  = "events",
+	.attrs = rapl_events_pkg,
+};
+
+static struct attribute *rapl_events_ram[] = {
+	EVENT_PTR(rapl_ram),
+	EVENT_PTR(rapl_ram_unit),
+	EVENT_PTR(rapl_ram_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_ram_group = {
+	.name  = "events",
+	.attrs = rapl_events_ram,
+};
+
+static struct attribute *rapl_events_gpu[] = {
+	EVENT_PTR(rapl_gpu),
+	EVENT_PTR(rapl_gpu_unit),
+	EVENT_PTR(rapl_gpu_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_gpu_group = {
+	.name  = "events",
+	.attrs = rapl_events_gpu,
+};
+
+static struct attribute *rapl_events_psys[] = {
+	EVENT_PTR(rapl_psys),
+	EVENT_PTR(rapl_psys_unit),
+	EVENT_PTR(rapl_psys_scale),
+	NULL,
+};
+
+static struct attribute_group rapl_events_psys_group = {
+	.name  = "events",
+	.attrs = rapl_events_psys,
+};
+
+static bool test_msr(int idx, void *data)
+{
+	return test_bit(idx, (unsigned long *) data);
+}
+
+static struct perf_msr rapl_msrs[] = {
+	[PERF_RAPL_PP0]  = { MSR_PP0_ENERGY_STATUS,      &rapl_events_cores_group, test_msr },
+	[PERF_RAPL_PKG]  = { MSR_PKG_ENERGY_STATUS,      &rapl_events_pkg_group,   test_msr },
+	[PERF_RAPL_RAM]  = { MSR_DRAM_ENERGY_STATUS,     &rapl_events_ram_group,   test_msr },
+	[PERF_RAPL_PP1]  = { MSR_PP1_ENERGY_STATUS,      &rapl_events_gpu_group,   test_msr },
+	[PERF_RAPL_PSYS] = { MSR_PLATFORM_ENERGY_STATUS, &rapl_events_psys_group,  test_msr },
+};
+
+static int rapl_cpu_offline(unsigned int cpu)
+{
+	struct rapl_pmu *pmu = cpu_to_rapl_pmu(cpu);
+	int target;
+
+	/* Check if exiting cpu is used for collecting rapl events */
+	if (!cpumask_test_and_clear_cpu(cpu, &rapl_cpu_mask))
+		return 0;
+
+	pmu->cpu = -1;
+	/* Find a new cpu to collect rapl events */
+	target = cpumask_any_but(topology_die_cpumask(cpu), cpu);
+
+	/* Migrate rapl events to the new target */
+	if (target < nr_cpu_ids) {
+		cpumask_set_cpu(target, &rapl_cpu_mask);
+		pmu->cpu = target;
+		perf_pmu_migrate_context(pmu->pmu, cpu, target);
+	}
+	return 0;
+}
+
+static int rapl_cpu_online(unsigned int cpu)
+{
+	struct rapl_pmu *pmu = cpu_to_rapl_pmu(cpu);
+	int target;
+
+	if (!pmu) {
+		pmu = kzalloc_node(sizeof(*pmu), GFP_KERNEL, cpu_to_node(cpu));
+		if (!pmu)
+			return -ENOMEM;
+
+		raw_spin_lock_init(&pmu->lock);
+		INIT_LIST_HEAD(&pmu->active_list);
+		pmu->pmu = &rapl_pmus->pmu;
+		pmu->timer_interval = ms_to_ktime(rapl_timer_ms);
+		rapl_hrtimer_init(pmu);
+
+		rapl_pmus->pmus[topology_logical_die_id(cpu)] = pmu;
+	}
+
+	/*
+	 * Check if there is an online cpu in the package which collects rapl
+	 * events already.
+	 */
+	target = cpumask_any_and(&rapl_cpu_mask, topology_die_cpumask(cpu));
+	if (target < nr_cpu_ids)
+		return 0;
+
+	cpumask_set_cpu(cpu, &rapl_cpu_mask);
+	pmu->cpu = cpu;
+	return 0;
+}
+
+static int rapl_check_hw_unit(bool apply_quirk)
+{
+	u64 msr_rapl_power_unit_bits;
+	int i;
+
+	/* protect rdmsrl() to handle virtualization */
+	if (rdmsrl_safe(MSR_RAPL_POWER_UNIT, &msr_rapl_power_unit_bits))
+		return -1;
+	for (i = 0; i < NR_RAPL_DOMAINS; i++)
+		rapl_hw_unit[i] = (msr_rapl_power_unit_bits >> 8) & 0x1FULL;
+
+	/*
+	 * DRAM domain on HSW server and KNL has fixed energy unit which can be
+	 * different than the unit from power unit MSR. See
+	 * "Intel Xeon Processor E5-1600 and E5-2600 v3 Product Families, V2
+	 * of 2. Datasheet, September 2014, Reference Number: 330784-001 "
+	 */
+	if (apply_quirk)
+		rapl_hw_unit[PERF_RAPL_RAM] = 16;
+
+	/*
+	 * Calculate the timer rate:
+	 * Use reference of 200W for scaling the timeout to avoid counter
+	 * overflows. 200W = 200 Joules/sec
+	 * Divide interval by 2 to avoid lockstep (2 * 100)
+	 * if hw unit is 32, then we use 2 ms 1/200/2
+	 */
+	rapl_timer_ms = 2;
+	if (rapl_hw_unit[0] < 32) {
+		rapl_timer_ms = (1000 / (2 * 100));
+		rapl_timer_ms *= (1ULL << (32 - rapl_hw_unit[0] - 1));
+	}
+	return 0;
+}
+
+static void __init rapl_advertise(void)
+{
+	int i;
+
+	pr_info("API unit is 2^-32 Joules, %d fixed counters, %llu ms ovfl timer\n",
+		hweight32(rapl_cntr_mask), rapl_timer_ms);
+
+	for (i = 0; i < NR_RAPL_DOMAINS; i++) {
+		if (rapl_cntr_mask & (1 << i)) {
+			pr_info("hw unit of domain %s 2^-%d Joules\n",
+				rapl_domain_names[i], rapl_hw_unit[i]);
+		}
+	}
+}
+
+static void cleanup_rapl_pmus(void)
+{
+	int i;
+
+	for (i = 0; i < rapl_pmus->maxdie; i++)
+		kfree(rapl_pmus->pmus[i]);
+	kfree(rapl_pmus);
+}
+
+static const struct attribute_group *rapl_attr_update[] = {
+	&rapl_events_cores_group,
+	&rapl_events_pkg_group,
+	&rapl_events_ram_group,
+	&rapl_events_gpu_group,
+	&rapl_events_psys_group,
+	NULL,
+};
+
+static int __init init_rapl_pmus(void)
+{
+	int maxdie = topology_max_packages() * topology_max_die_per_package();
+	size_t size;
+
+	size = sizeof(*rapl_pmus) + maxdie * sizeof(struct rapl_pmu *);
+	rapl_pmus = kzalloc(size, GFP_KERNEL);
+	if (!rapl_pmus)
+		return -ENOMEM;
+
+	rapl_pmus->maxdie		= maxdie;
+	rapl_pmus->pmu.attr_groups	= rapl_attr_groups;
+	rapl_pmus->pmu.attr_update	= rapl_attr_update;
+	rapl_pmus->pmu.task_ctx_nr	= perf_invalid_context;
+	rapl_pmus->pmu.event_init	= rapl_pmu_event_init;
+	rapl_pmus->pmu.add		= rapl_pmu_event_add;
+	rapl_pmus->pmu.del		= rapl_pmu_event_del;
+	rapl_pmus->pmu.start		= rapl_pmu_event_start;
+	rapl_pmus->pmu.stop		= rapl_pmu_event_stop;
+	rapl_pmus->pmu.read		= rapl_pmu_event_read;
+	rapl_pmus->pmu.module		= THIS_MODULE;
+	rapl_pmus->pmu.capabilities	= PERF_PMU_CAP_NO_EXCLUDE;
+	return 0;
+}
+
+#define X86_RAPL_MODEL_MATCH(model, init)	\
+	{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&init }
+
+static struct rapl_model model_snb = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_PP1),
+	.apply_quirk	= false,
+};
+
+static struct rapl_model model_snbep = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM),
+	.apply_quirk	= false,
+};
+
+static struct rapl_model model_hsw = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM) |
+			  BIT(PERF_RAPL_PP1),
+	.apply_quirk	= false,
+};
+
+static struct rapl_model model_hsx = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM),
+	.apply_quirk	= true,
+};
+
+static struct rapl_model model_knl = {
+	.events		= BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM),
+	.apply_quirk	= true,
+};
+
+static struct rapl_model model_skl = {
+	.events		= BIT(PERF_RAPL_PP0) |
+			  BIT(PERF_RAPL_PKG) |
+			  BIT(PERF_RAPL_RAM) |
+			  BIT(PERF_RAPL_PP1) |
+			  BIT(PERF_RAPL_PSYS),
+	.apply_quirk	= false,
+};
+
+static const struct x86_cpu_id rapl_model_match[] __initconst = {
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE,		model_snb),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE_X,		model_snbep),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE,		model_snb),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE_X,		model_snbep),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_X,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_L,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_G,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_G,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_X,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_D,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL,		model_knl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNM,		model_knl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X,		model_hsx),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_CANNONLAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT,		model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT_D,	model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT_PLUS,	model_hsw),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ICELAKE_L,		model_skl),
+	X86_RAPL_MODEL_MATCH(INTEL_FAM6_ICELAKE,		model_skl),
+	{},
+};
+
+MODULE_DEVICE_TABLE(x86cpu, rapl_model_match);
+
+static int __init rapl_pmu_init(void)
+{
+	const struct x86_cpu_id *id;
+	struct rapl_model *rm;
+	int ret;
+
+	id = x86_match_cpu(rapl_model_match);
+	if (!id)
+		return -ENODEV;
+
+	rm = (struct rapl_model *) id->driver_data;
+	rapl_cntr_mask = perf_msr_probe(rapl_msrs, PERF_RAPL_MAX,
+					false, (void *) &rm->events);
+
+	ret = rapl_check_hw_unit(rm->apply_quirk);
+	if (ret)
+		return ret;
+
+	ret = init_rapl_pmus();
+	if (ret)
+		return ret;
+
+	/*
+	 * Install callbacks. Core will call them for each online cpu.
+	 */
+	ret = cpuhp_setup_state(CPUHP_AP_PERF_X86_RAPL_ONLINE,
+				"perf/x86/rapl:online",
+				rapl_cpu_online, rapl_cpu_offline);
+	if (ret)
+		goto out;
+
+	ret = perf_pmu_register(&rapl_pmus->pmu, "power", -1);
+	if (ret)
+		goto out1;
+
+	rapl_advertise();
+	return 0;
+
+out1:
+	cpuhp_remove_state(CPUHP_AP_PERF_X86_RAPL_ONLINE);
+out:
+	pr_warn("Initialization failed (%d), disabled\n", ret);
+	cleanup_rapl_pmus();
+	return ret;
+}
+module_init(rapl_pmu_init);
+
+static void __exit intel_rapl_exit(void)
+{
+	cpuhp_remove_state_nocalls(CPUHP_AP_PERF_X86_RAPL_ONLINE);
+	perf_pmu_unregister(&rapl_pmus->pmu);
+	cleanup_rapl_pmus();
+}
+module_exit(intel_rapl_exit);
--- linux-ein-5.4.0.orig/arch/x86/hyperv/hv_init.c
+++ linux-ein-5.4.0/arch/x86/hyperv/hv_init.c
@@ -19,9 +19,18 @@
 #include <linux/mm.h>
 #include <linux/hyperv.h>
 #include <linux/slab.h>
+#include <linux/kernel.h>
 #include <linux/cpuhotplug.h>
 #include <clocksource/hyperv_timer.h>
 
+#ifndef PKG_ABI
+/*
+ * Preserve the ability to 'make deb-pkg' since PKG_ABI is provided
+ * by the Ubuntu build rules.
+ */
+#define PKG_ABI 0
+#endif
+
 void *hv_hypercall_pg;
 EXPORT_SYMBOL_GPL(hv_hypercall_pg);
 
@@ -154,7 +163,6 @@
 	struct hv_reenlightenment_control re_ctrl = {
 		.vector = HYPERV_REENLIGHTENMENT_VECTOR,
 		.enabled = 1,
-		.target_vp = hv_vp_index[smp_processor_id()]
 	};
 	struct hv_tsc_emulation_control emu_ctrl = {.enabled = 1};
 
@@ -163,13 +171,20 @@
 		return;
 	}
 
+	if (!hv_vp_index)
+		return;
+
 	hv_reenlightenment_cb = cb;
 
 	/* Make sure callback is registered before we write to MSRs */
 	wmb();
 
+	re_ctrl.target_vp = hv_vp_index[get_cpu()];
+
 	wrmsrl(HV_X64_MSR_REENLIGHTENMENT_CONTROL, *((u64 *)&re_ctrl));
 	wrmsrl(HV_X64_MSR_TSC_EMULATION_CONTROL, *((u64 *)&emu_ctrl));
+
+	put_cpu();
 }
 EXPORT_SYMBOL_GPL(set_hv_tscchange_cb);
 
@@ -297,7 +312,7 @@
 	 * 1. Register the guest ID
 	 * 2. Enable the hypercall and register the hypercall page
 	 */
-	guest_id = generate_guest_id(0, LINUX_VERSION_CODE, 0);
+	guest_id = generate_guest_id(0x80 /*Canonical*/, LINUX_VERSION_CODE, PKG_ABI);
 	wrmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id);
 
 	hv_hypercall_pg  = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX);
@@ -354,11 +369,14 @@
 }
 EXPORT_SYMBOL_GPL(hyperv_cleanup);
 
-void hyperv_report_panic(struct pt_regs *regs, long err)
+void hyperv_report_panic(struct pt_regs *regs, long err, bool in_die)
 {
 	static bool panic_reported;
 	u64 guest_id;
 
+	if (in_die && !panic_on_oops)
+		return;
+
 	/*
 	 * We prefer to report panic on 'die' chain as we have proper
 	 * registers to report, but if we miss it (e.g. on BUG()) we need
--- linux-ein-5.4.0.orig/arch/x86/hyperv/mmu.c
+++ linux-ein-5.4.0/arch/x86/hyperv/mmu.c
@@ -66,11 +66,17 @@
 	if (!hv_hypercall_pg)
 		goto do_native;
 
-	if (cpumask_empty(cpus))
-		return;
-
 	local_irq_save(flags);
 
+	/*
+	 * Only check the mask _after_ interrupt has been disabled to avoid the
+	 * mask changing under our feet.
+	 */
+	if (cpumask_empty(cpus)) {
+		local_irq_restore(flags);
+		return;
+	}
+
 	flush_pcpu = (struct hv_tlb_flush **)
 		     this_cpu_ptr(hyperv_pcpu_input_arg);
 
--- linux-ein-5.4.0.orig/arch/x86/ia32/ia32_aout.c
+++ linux-ein-5.4.0/arch/x86/ia32/ia32_aout.c
@@ -140,6 +140,7 @@
 	set_personality_ia32(false);
 
 	setup_new_exec(bprm);
+	install_exec_creds(bprm);
 
 	regs->cs = __USER32_CS;
 	regs->r8 = regs->r9 = regs->r10 = regs->r11 = regs->r12 =
@@ -156,8 +157,6 @@
 	if (retval < 0)
 		return retval;
 
-	install_exec_creds(bprm);
-
 	if (N_MAGIC(ex) == OMAGIC) {
 		unsigned long text_addr, map_size;
 
--- linux-ein-5.4.0.orig/arch/x86/ia32/ia32_signal.c
+++ linux-ein-5.4.0/arch/x86/ia32/ia32_signal.c
@@ -21,6 +21,7 @@
 #include <linux/personality.h>
 #include <linux/compat.h>
 #include <linux/binfmts.h>
+#include <linux/syscalls.h>
 #include <asm/ucontext.h>
 #include <linux/uaccess.h>
 #include <asm/fpu/internal.h>
@@ -118,7 +119,7 @@
 	return err;
 }
 
-asmlinkage long sys32_sigreturn(void)
+COMPAT_SYSCALL_DEFINE0(sigreturn)
 {
 	struct pt_regs *regs = current_pt_regs();
 	struct sigframe_ia32 __user *frame = (struct sigframe_ia32 __user *)(regs->sp-8);
@@ -144,7 +145,7 @@
 	return 0;
 }
 
-asmlinkage long sys32_rt_sigreturn(void)
+COMPAT_SYSCALL_DEFINE0(rt_sigreturn)
 {
 	struct pt_regs *regs = current_pt_regs();
 	struct rt_sigframe_ia32 __user *frame;
--- linux-ein-5.4.0.orig/arch/x86/include/asm/acenv.h
+++ linux-ein-5.4.0/arch/x86/include/asm/acenv.h
@@ -13,7 +13,19 @@
 
 /* Asm macros */
 
-#define ACPI_FLUSH_CPU_CACHE()	wbinvd()
+/*
+ * ACPI_FLUSH_CPU_CACHE() flushes caches on entering sleep states.
+ * It is required to prevent data loss.
+ *
+ * While running inside virtual machine, the kernel can bypass cache flushing.
+ * Changing sleep state in a virtual machine doesn't affect the host system
+ * sleep state and cannot lead to data loss.
+ */
+#define ACPI_FLUSH_CPU_CACHE()					\
+do {								\
+	if (!cpu_feature_enabled(X86_FEATURE_HYPERVISOR))	\
+		wbinvd();					\
+} while (0)
 
 int __acpi_acquire_global_lock(unsigned int *lock);
 int __acpi_release_global_lock(unsigned int *lock);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/apic.h
+++ linux-ein-5.4.0/arch/x86/include/asm/apic.h
@@ -140,6 +140,7 @@
 extern void lapic_shutdown(void);
 extern void sync_Arb_IDs(void);
 extern void init_bsp_APIC(void);
+extern void apic_intr_mode_select(void);
 extern void apic_intr_mode_init(void);
 extern void init_apic_mappings(void);
 void register_lapic_address(unsigned long address);
@@ -173,6 +174,7 @@
 extern int setup_APIC_eilvt(u8 lvt_off, u8 vector, u8 msg_type, u8 mask);
 extern void lapic_assign_system_vectors(void);
 extern void lapic_assign_legacy_vector(unsigned int isairq, bool replace);
+extern void lapic_update_legacy_vectors(void);
 extern void lapic_online(void);
 extern void lapic_offline(void);
 extern bool apic_needs_pit(void);
@@ -188,6 +190,7 @@
 # define setup_secondary_APIC_clock x86_init_noop
 static inline void lapic_update_tsc_freq(void) { }
 static inline void init_bsp_APIC(void) { }
+static inline void apic_intr_mode_select(void) { }
 static inline void apic_intr_mode_init(void) { }
 static inline void lapic_assign_system_vectors(void) { }
 static inline void lapic_assign_legacy_vector(unsigned int i, bool r) { }
@@ -195,16 +198,6 @@
 #endif /* !CONFIG_X86_LOCAL_APIC */
 
 #ifdef CONFIG_X86_X2APIC
-/*
- * Make previous memory operations globally visible before
- * sending the IPI through x2apic wrmsr. We need a serializing instruction or
- * mfence for this.
- */
-static inline void x2apic_wrmsr_fence(void)
-{
-	asm volatile("mfence" : : : "memory");
-}
-
 static inline void native_apic_msr_write(u32 reg, u32 v)
 {
 	if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
@@ -257,6 +250,7 @@
 
 extern int x2apic_mode;
 extern int x2apic_phys;
+extern void __init x2apic_set_max_apicid(u32 apicid);
 extern void __init check_x2apic(void);
 extern void x2apic_setup(void);
 static inline int x2apic_enabled(void)
@@ -452,6 +446,14 @@
 	apic_eoi();
 }
 
+
+static inline bool lapic_vector_set_in_irr(unsigned int vector)
+{
+	u32 irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
+
+	return !!(irr & (1U << (vector % 32)));
+}
+
 static inline unsigned default_get_apic_id(unsigned long x)
 {
 	unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
--- linux-ein-5.4.0.orig/arch/x86/include/asm/apm.h
+++ linux-ein-5.4.0/arch/x86/include/asm/apm.h
@@ -35,6 +35,7 @@
 	__asm__ __volatile__(APM_DO_ZERO_SEGS
 		"pushl %%edi\n\t"
 		"pushl %%ebp\n\t"
+		ANNOTATE_RETPOLINE_SAFE /* FRBS */
 		"lcall *%%cs:apm_bios_entry\n\t"
 		"setc %%al\n\t"
 		"popl %%ebp\n\t"
@@ -59,6 +60,7 @@
 	__asm__ __volatile__(APM_DO_ZERO_SEGS
 		"pushl %%edi\n\t"
 		"pushl %%ebp\n\t"
+		ANNOTATE_RETPOLINE_SAFE /* FRBS */
 		"lcall *%%cs:apm_bios_entry\n\t"
 		"setc %%bl\n\t"
 		"popl %%ebp\n\t"
--- linux-ein-5.4.0.orig/arch/x86/include/asm/archrandom.h
+++ linux-ein-5.4.0/arch/x86/include/asm/archrandom.h
@@ -73,10 +73,6 @@
 	return ok;
 }
 
-/* Conditional execution based on CPU type */
-#define arch_has_random()	static_cpu_has(X86_FEATURE_RDRAND)
-#define arch_has_random_seed()	static_cpu_has(X86_FEATURE_RDSEED)
-
 /*
  * These are the generic interfaces; they must not be declared if the
  * stubs in <linux/random.h> are to be invoked,
@@ -86,22 +82,22 @@
 
 static inline bool arch_get_random_long(unsigned long *v)
 {
-	return arch_has_random() ? rdrand_long(v) : false;
+	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_long(v) : false;
 }
 
 static inline bool arch_get_random_int(unsigned int *v)
 {
-	return arch_has_random() ? rdrand_int(v) : false;
+	return static_cpu_has(X86_FEATURE_RDRAND) ? rdrand_int(v) : false;
 }
 
 static inline bool arch_get_random_seed_long(unsigned long *v)
 {
-	return arch_has_random_seed() ? rdseed_long(v) : false;
+	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_long(v) : false;
 }
 
 static inline bool arch_get_random_seed_int(unsigned int *v)
 {
-	return arch_has_random_seed() ? rdseed_int(v) : false;
+	return static_cpu_has(X86_FEATURE_RDSEED) ? rdseed_int(v) : false;
 }
 
 extern void x86_init_rdrand(struct cpuinfo_x86 *c);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/asm.h
+++ linux-ein-5.4.0/arch/x86/include/asm/asm.h
@@ -7,9 +7,11 @@
 # define __ASM_FORM_RAW(x)     x
 # define __ASM_FORM_COMMA(x) x,
 #else
-# define __ASM_FORM(x)	" " #x " "
-# define __ASM_FORM_RAW(x)     #x
-# define __ASM_FORM_COMMA(x) " " #x ","
+#include <linux/stringify.h>
+
+# define __ASM_FORM(x)	" " __stringify(x) " "
+# define __ASM_FORM_RAW(x)     __stringify(x)
+# define __ASM_FORM_COMMA(x) " " __stringify(x) ","
 #endif
 
 #ifndef __x86_64__
@@ -139,9 +141,6 @@
 # define _ASM_EXTABLE_EX(from, to)				\
 	_ASM_EXTABLE_HANDLE(from, to, ex_handler_ext)
 
-# define _ASM_EXTABLE_REFCOUNT(from, to)			\
-	_ASM_EXTABLE_HANDLE(from, to, ex_handler_refcount)
-
 # define _ASM_NOKPROBE(entry)					\
 	.pushsection "_kprobe_blacklist","aw" ;			\
 	_ASM_ALIGN ;						\
@@ -170,9 +169,6 @@
 # define _ASM_EXTABLE_EX(from, to)				\
 	_ASM_EXTABLE_HANDLE(from, to, ex_handler_ext)
 
-# define _ASM_EXTABLE_REFCOUNT(from, to)			\
-	_ASM_EXTABLE_HANDLE(from, to, ex_handler_refcount)
-
 /* For C file, we already have NOKPROBE_SYMBOL macro */
 #endif
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/barrier.h
+++ linux-ein-5.4.0/arch/x86/include/asm/barrier.h
@@ -84,4 +84,22 @@
 
 #include <asm-generic/barrier.h>
 
+/*
+ * Make previous memory operations globally visible before
+ * a WRMSR.
+ *
+ * MFENCE makes writes visible, but only affects load/store
+ * instructions.  WRMSR is unfortunately not a load/store
+ * instruction and is unaffected by MFENCE.  The LFENCE ensures
+ * that the WRMSR is not reordered.
+ *
+ * Most WRMSRs are full serializing instructions themselves and
+ * do not require this barrier.  This is only required for the
+ * IA32_TSC_DEADLINE and X2APIC MSRs.
+ */
+static inline void weak_wrmsr_fence(void)
+{
+	asm volatile("mfence; lfence" : : : "memory");
+}
+
 #endif /* _ASM_X86_BARRIER_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/bugs.h
+++ linux-ein-5.4.0/arch/x86/include/asm/bugs.h
@@ -4,8 +4,6 @@
 
 #include <asm/processor.h>
 
-extern void check_bugs(void);
-
 #if defined(CONFIG_CPU_SUP_INTEL)
 void check_mpx_erratum(struct cpuinfo_x86 *c);
 #else
--- linux-ein-5.4.0.orig/arch/x86/include/asm/cacheinfo.h
+++ linux-ein-5.4.0/arch/x86/include/asm/cacheinfo.h
@@ -2,7 +2,7 @@
 #ifndef _ASM_X86_CACHEINFO_H
 #define _ASM_X86_CACHEINFO_H
 
-void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id);
-void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id);
+void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu);
+void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu);
 
 #endif /* _ASM_X86_CACHEINFO_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/compat.h
+++ linux-ein-5.4.0/arch/x86/include/asm/compat.h
@@ -31,15 +31,13 @@
 typedef u64 __attribute__((aligned(4))) compat_u64;
 
 struct compat_stat {
-	compat_dev_t	st_dev;
-	u16		__pad1;
+	u32		st_dev;
 	compat_ino_t	st_ino;
 	compat_mode_t	st_mode;
 	compat_nlink_t	st_nlink;
 	__compat_uid_t	st_uid;
 	__compat_gid_t	st_gid;
-	compat_dev_t	st_rdev;
-	u16		__pad2;
+	u32		st_rdev;
 	u32		st_size;
 	u32		st_blksize;
 	u32		st_blocks;
--- linux-ein-5.4.0.orig/arch/x86/include/asm/cpu_device_id.h
+++ linux-ein-5.4.0/arch/x86/include/asm/cpu_device_id.h
@@ -5,9 +5,163 @@
 /*
  * Declare drivers belonging to specific x86 CPUs
  * Similar in spirit to pci_device_id and related PCI functions
+ *
+ * The wildcard initializers are in mod_devicetable.h because
+ * file2alias needs them. Sigh.
  */
-
 #include <linux/mod_devicetable.h>
+/* Get the INTEL_FAM* model defines */
+#include <asm/intel-family.h>
+/* And the X86_VENDOR_* ones */
+#include <asm/processor.h>
+
+/* Centaur FAM6 models */
+#define X86_CENTAUR_FAM6_C7_A		0xa
+#define X86_CENTAUR_FAM6_C7_D		0xd
+#define X86_CENTAUR_FAM6_NANO		0xf
+
+#define X86_STEPPINGS(mins, maxs)    GENMASK(maxs, mins)
+/**
+ * X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE - Base macro for CPU matching
+ * @_vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@_vendor
+ * @_family:	The family number or X86_FAMILY_ANY
+ * @_model:	The model number, model constant or X86_MODEL_ANY
+ * @_steppings:	Bitmask for steppings, stepping constant or X86_STEPPING_ANY
+ * @_feature:	A X86_FEATURE bit or X86_FEATURE_ANY
+ * @_data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * Use only if you need all selectors. Otherwise use one of the shorter
+ * macros of the X86_MATCH_* family. If there is no matching shorthand
+ * macro, consider to add one. If you really need to wrap one of the macros
+ * into another macro at the usage site for good reasons, then please
+ * start this local macro with X86_MATCH to allow easy grepping.
+ */
+#define X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(_vendor, _family, _model, \
+						    _steppings, _feature, _data) { \
+	.vendor		= X86_VENDOR_##_vendor,				\
+	.family		= _family,					\
+	.model		= _model,					\
+	.steppings	= _steppings,					\
+	.feature	= _feature,					\
+	.driver_data	= (unsigned long) _data				\
+}
+
+/**
+ * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Macro for CPU matching
+ * @_vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@_vendor
+ * @_family:	The family number or X86_FAMILY_ANY
+ * @_model:	The model number, model constant or X86_MODEL_ANY
+ * @_feature:	A X86_FEATURE bit or X86_FEATURE_ANY
+ * @_data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * The steppings arguments of X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE() is
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, model, feature, data) \
+	X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(vendor, family, model, \
+						X86_STEPPING_ANY, feature, data)
+
+/**
+ * X86_MATCH_VENDOR_FAM_FEATURE - Macro for matching vendor, family and CPU feature
+ * @vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@vendor
+ * @family:	The family number or X86_FAMILY_ANY
+ * @feature:	A X86_FEATURE bit
+ * @data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM_FEATURE(vendor, family, feature, data)	\
+	X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family,		\
+					   X86_MODEL_ANY, feature, data)
+
+/**
+ * X86_MATCH_VENDOR_FEATURE - Macro for matching vendor and CPU feature
+ * @vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@vendor
+ * @feature:	A X86_FEATURE bit
+ * @data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FEATURE(vendor, feature, data)			\
+	X86_MATCH_VENDOR_FAM_FEATURE(vendor, X86_FAMILY_ANY, feature, data)
+
+/**
+ * X86_MATCH_FEATURE - Macro for matching a CPU feature
+ * @feature:	A X86_FEATURE bit
+ * @data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_FEATURE(feature, data)				\
+	X86_MATCH_VENDOR_FEATURE(ANY, feature, data)
+
+/* Transitional to keep the existing code working */
+#define X86_FEATURE_MATCH(feature)	X86_MATCH_FEATURE(feature, NULL)
+
+/**
+ * X86_MATCH_VENDOR_FAM_MODEL - Match vendor, family and model
+ * @vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@vendor
+ * @family:	The family number or X86_FAMILY_ANY
+ * @model:	The model number, model constant or X86_MODEL_ANY
+ * @data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, data)		\
+	X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, model,	\
+					   X86_FEATURE_ANY, data)
+
+/**
+ * X86_MATCH_VENDOR_FAM - Match vendor and family
+ * @vendor:	The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *		The name is expanded to X86_VENDOR_@vendor
+ * @family:	The family number or X86_FAMILY_ANY
+ * @data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments to X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set of wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM(vendor, family, data)			\
+	X86_MATCH_VENDOR_FAM_MODEL(vendor, family, X86_MODEL_ANY, data)
+
+/**
+ * X86_MATCH_INTEL_FAM6_MODEL - Match vendor INTEL, family 6 and model
+ * @model:	The model name without the INTEL_FAM6_ prefix or ANY
+ *		The model name is expanded to INTEL_FAM6_@model internally
+ * @data:	Driver specific data or NULL. The internal storage
+ *		format is unsigned long. The supplied value, pointer
+ *		etc. is casted to unsigned long internally.
+ *
+ * The vendor is set to INTEL, the family to 6 and all other missing
+ * arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are set to wildcards.
+ *
+ * See X86_MATCH_VENDOR_FAM_MODEL_FEATURE() for further information.
+ */
+#define X86_MATCH_INTEL_FAM6_MODEL(model, data)				\
+	X86_MATCH_VENDOR_FAM_MODEL(INTEL, 6, INTEL_FAM6_##model, data)
 
 /*
  * Match specific microcode revisions.
--- linux-ein-5.4.0.orig/arch/x86/include/asm/cpu_entry_area.h
+++ linux-ein-5.4.0/arch/x86/include/asm/cpu_entry_area.h
@@ -78,8 +78,12 @@
 
 	/*
 	 * The GDT is just below entry_stack and thus serves (on x86_64) as
-	 * a a read-only guard page.
+	 * a read-only guard page. On 32-bit the GDT must be writeable, so
+	 * it needs an extra guard page.
 	 */
+#ifdef CONFIG_X86_32
+	char guard_entry_stack[PAGE_SIZE];
+#endif
 	struct entry_stack_page entry_stack_page;
 
 	/*
@@ -94,7 +98,6 @@
 	 */
 	struct cea_exception_stacks estacks;
 #endif
-#ifdef CONFIG_CPU_SUP_INTEL
 	/*
 	 * Per CPU debug store for Intel performance monitoring. Wastes a
 	 * full page at the moment.
@@ -105,11 +108,9 @@
 	 * Reserve enough fixmap PTEs.
 	 */
 	struct debug_store_buffers cpu_debug_buffers;
-#endif
 };
 
-#define CPU_ENTRY_AREA_SIZE	(sizeof(struct cpu_entry_area))
-#define CPU_ENTRY_AREA_TOT_SIZE	(CPU_ENTRY_AREA_SIZE * NR_CPUS)
+#define CPU_ENTRY_AREA_SIZE		(sizeof(struct cpu_entry_area))
 
 DECLARE_PER_CPU(struct cpu_entry_area *, cpu_entry_area);
 DECLARE_PER_CPU(struct cea_exception_stacks *, cea_exception_stacks);
@@ -117,17 +118,23 @@
 extern void setup_cpu_entry_areas(void);
 extern void cea_set_pte(void *cea_vaddr, phys_addr_t pa, pgprot_t flags);
 
+/* Single page reserved for the readonly IDT mapping: */
 #define	CPU_ENTRY_AREA_RO_IDT		CPU_ENTRY_AREA_BASE
 #define CPU_ENTRY_AREA_PER_CPU		(CPU_ENTRY_AREA_RO_IDT + PAGE_SIZE)
 
 #define CPU_ENTRY_AREA_RO_IDT_VADDR	((void *)CPU_ENTRY_AREA_RO_IDT)
 
-#define CPU_ENTRY_AREA_MAP_SIZE			\
-	(CPU_ENTRY_AREA_PER_CPU + CPU_ENTRY_AREA_TOT_SIZE - CPU_ENTRY_AREA_BASE)
+#ifdef CONFIG_X86_32
+#define CPU_ENTRY_AREA_MAP_SIZE		(CPU_ENTRY_AREA_PER_CPU +		\
+					 (CPU_ENTRY_AREA_SIZE * NR_CPUS) -	\
+					 CPU_ENTRY_AREA_BASE)
+#else
+#define CPU_ENTRY_AREA_MAP_SIZE		P4D_SIZE
+#endif
 
 extern struct cpu_entry_area *get_cpu_entry_area(int cpu);
 
-static inline struct entry_stack *cpu_entry_stack(int cpu)
+static __always_inline struct entry_stack *cpu_entry_stack(int cpu)
 {
 	return &get_cpu_entry_area(cpu)->entry_stack_page.stack;
 }
--- linux-ein-5.4.0.orig/arch/x86/include/asm/cpufeature.h
+++ linux-ein-5.4.0/arch/x86/include/asm/cpufeature.h
@@ -30,6 +30,8 @@
 	CPUID_7_ECX,
 	CPUID_8000_0007_EBX,
 	CPUID_7_EDX,
+	CPUID_8000_001F_EAX,
+	CPUID_8000_0021_EAX,
 };
 
 #ifdef CONFIG_X86_FEATURE_NAMES
@@ -49,7 +51,7 @@
 extern const char * const x86_bug_flags[NBUGINTS*32];
 
 #define test_cpu_cap(c, bit)						\
-	 test_bit(bit, (unsigned long *)((c)->x86_capability))
+	 arch_test_bit(bit, (unsigned long *)((c)->x86_capability))
 
 /*
  * There are 32 bits/features in each mask word.  The high bits
@@ -88,8 +90,10 @@
 	   CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 16, feature_bit) ||	\
 	   CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 17, feature_bit) ||	\
 	   CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 18, feature_bit) ||	\
+	   CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 19, feature_bit) ||	\
+	   CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 20, feature_bit) ||	\
 	   REQUIRED_MASK_CHECK					  ||	\
-	   BUILD_BUG_ON_ZERO(NCAPINTS != 19))
+	   BUILD_BUG_ON_ZERO(NCAPINTS != 21))
 
 #define DISABLED_MASK_BIT_SET(feature_bit)				\
 	 ( CHECK_BIT_IN_MASK_WORD(DISABLED_MASK,  0, feature_bit) ||	\
@@ -111,8 +115,10 @@
 	   CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 16, feature_bit) ||	\
 	   CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 17, feature_bit) ||	\
 	   CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 18, feature_bit) ||	\
+	   CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 19, feature_bit) ||	\
+	   CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 20, feature_bit) ||	\
 	   DISABLED_MASK_CHECK					  ||	\
-	   BUILD_BUG_ON_ZERO(NCAPINTS != 19))
+	   BUILD_BUG_ON_ZERO(NCAPINTS != 21))
 
 #define cpu_has(c, bit)							\
 	(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :	\
--- linux-ein-5.4.0.orig/arch/x86/include/asm/cpufeatures.h
+++ linux-ein-5.4.0/arch/x86/include/asm/cpufeatures.h
@@ -13,8 +13,8 @@
 /*
  * Defines x86 CPU feature bits
  */
-#define NCAPINTS			19	   /* N 32-bit words worth of info */
-#define NBUGINTS			1	   /* N 32-bit bug flags */
+#define NCAPINTS			21	   /* N 32-bit words worth of info */
+#define NBUGINTS			2	   /* N 32-bit bug flags */
 
 /*
  * Note: If the comment begins with a quoted string, that string is used
@@ -96,6 +96,7 @@
 #define X86_FEATURE_SYSCALL32		( 3*32+14) /* "" syscall in IA32 userspace */
 #define X86_FEATURE_SYSENTER32		( 3*32+15) /* "" sysenter in IA32 userspace */
 #define X86_FEATURE_REP_GOOD		( 3*32+16) /* REP microcode works well */
+/* FREE!                                ( 3*32+17) */
 #define X86_FEATURE_LFENCE_RDTSC	( 3*32+18) /* "" LFENCE synchronizes RDTSC */
 #define X86_FEATURE_ACC_POWER		( 3*32+19) /* AMD Accumulated Power Mechanism */
 #define X86_FEATURE_NOPL		( 3*32+20) /* The NOPL (0F 1F) instructions */
@@ -107,6 +108,7 @@
 #define X86_FEATURE_EXTD_APICID		( 3*32+26) /* Extended APICID (8 bits) */
 #define X86_FEATURE_AMD_DCM		( 3*32+27) /* AMD multi-node processor */
 #define X86_FEATURE_APERFMPERF		( 3*32+28) /* P-State hardware coordination feedback capability (APERF/MPERF MSRs) */
+/* free					( 3*32+29) */
 #define X86_FEATURE_NONSTOP_TSC_S3	( 3*32+30) /* TSC doesn't stop in S3 state */
 #define X86_FEATURE_TSC_KNOWN_FREQ	( 3*32+31) /* TSC has known frequency */
 
@@ -199,17 +201,17 @@
 #define X86_FEATURE_INVPCID_SINGLE	( 7*32+ 7) /* Effectively INVPCID && CR4.PCIDE=1 */
 #define X86_FEATURE_HW_PSTATE		( 7*32+ 8) /* AMD HW-PState */
 #define X86_FEATURE_PROC_FEEDBACK	( 7*32+ 9) /* AMD ProcFeedbackInterface */
-#define X86_FEATURE_SME			( 7*32+10) /* AMD Secure Memory Encryption */
+/* FREE!                                ( 7*32+10) */
 #define X86_FEATURE_PTI			( 7*32+11) /* Kernel Page Table Isolation enabled */
-#define X86_FEATURE_RETPOLINE		( 7*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */
-#define X86_FEATURE_RETPOLINE_AMD	( 7*32+13) /* "" AMD Retpoline mitigation for Spectre variant 2 */
+#define X86_FEATURE_KERNEL_IBRS		( 7*32+12) /* "" Set/clear IBRS on kernel entry/exit */
+#define X86_FEATURE_RSB_VMEXIT		( 7*32+13) /* "" Fill RSB on VM-Exit */
 #define X86_FEATURE_INTEL_PPIN		( 7*32+14) /* Intel Processor Inventory Number */
 #define X86_FEATURE_CDP_L2		( 7*32+15) /* Code and Data Prioritization L2 */
 #define X86_FEATURE_MSR_SPEC_CTRL	( 7*32+16) /* "" MSR SPEC_CTRL is implemented */
 #define X86_FEATURE_SSBD		( 7*32+17) /* Speculative Store Bypass Disable */
 #define X86_FEATURE_MBA			( 7*32+18) /* Memory Bandwidth Allocation */
 #define X86_FEATURE_RSB_CTXSW		( 7*32+19) /* "" Fill RSB on context switches */
-#define X86_FEATURE_SEV			( 7*32+20) /* AMD Secure Encrypted Virtualization */
+/* FREE!                                ( 7*32+20) */
 #define X86_FEATURE_USE_IBPB		( 7*32+21) /* "" Indirect Branch Prediction Barrier enabled */
 #define X86_FEATURE_USE_IBRS_FW		( 7*32+22) /* "" Use IBRS during runtime firmware calls */
 #define X86_FEATURE_SPEC_STORE_BYPASS_DISABLE	( 7*32+23) /* "" Disable Speculative Store Bypass. */
@@ -284,6 +286,11 @@
 #define X86_FEATURE_CQM_MBM_LOCAL	(11*32+ 3) /* LLC Local MBM monitoring */
 #define X86_FEATURE_FENCE_SWAPGS_USER	(11*32+ 4) /* "" LFENCE in user entry SWAPGS path */
 #define X86_FEATURE_FENCE_SWAPGS_KERNEL	(11*32+ 5) /* "" LFENCE in kernel entry SWAPGS path */
+#define X86_FEATURE_RRSBA_CTRL		(11*32+11) /* "" RET prediction control */
+#define X86_FEATURE_RETPOLINE		(11*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */
+#define X86_FEATURE_RETPOLINE_LFENCE	(11*32+13) /* "" Use LFENCE for Spectre variant 2 */
+#define X86_FEATURE_RSB_VMEXIT_LITE	(11*32+17) /* "" Fill RSB on VM exit when EIBRS is enabled */
+#define X86_FEATURE_MSR_TSX_CTRL	(11*32+18) /* "" MSR IA32_TSX_CTRL (Intel) implemented */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
 #define X86_FEATURE_AVX512_BF16		(12*32+ 5) /* AVX512 BFLOAT16 instructions */
@@ -300,6 +307,7 @@
 #define X86_FEATURE_AMD_SSBD		(13*32+24) /* "" Speculative Store Bypass Disable */
 #define X86_FEATURE_VIRT_SSBD		(13*32+25) /* Virtualized Speculative Store Bypass Disable */
 #define X86_FEATURE_AMD_SSB_NO		(13*32+26) /* "" Speculative Store Bypass is fixed in hardware. */
+#define X86_FEATURE_BTC_NO		(13*32+29) /* "" Not vulnerable to Branch Type Confusion */
 
 /* Thermal and Power Management Leaf, CPUID level 0x00000006 (EAX), word 14 */
 #define X86_FEATURE_DTHERM		(14*32+ 0) /* Digital Thermal Sensor */
@@ -357,6 +365,7 @@
 #define X86_FEATURE_AVX512_4VNNIW	(18*32+ 2) /* AVX-512 Neural Network Instructions */
 #define X86_FEATURE_AVX512_4FMAPS	(18*32+ 3) /* AVX-512 Multiply Accumulation Single precision */
 #define X86_FEATURE_AVX512_VP2INTERSECT (18*32+ 8) /* AVX-512 Intersect for D/Q */
+#define X86_FEATURE_SRBDS_CTRL		(18*32+ 9) /* "" SRBDS mitigation MSR available */
 #define X86_FEATURE_MD_CLEAR		(18*32+10) /* VERW clears CPU buffers */
 #define X86_FEATURE_TSX_FORCE_ABORT	(18*32+13) /* "" TSX_FORCE_ABORT */
 #define X86_FEATURE_PCONFIG		(18*32+18) /* Intel PCONFIG */
@@ -366,6 +375,13 @@
 #define X86_FEATURE_ARCH_CAPABILITIES	(18*32+29) /* IA32_ARCH_CAPABILITIES MSR (Intel) */
 #define X86_FEATURE_SPEC_CTRL_SSBD	(18*32+31) /* "" Speculative Store Bypass Disable */
 
+/* AMD-defined memory encryption features, CPUID level 0x8000001f (EAX), word 19 */
+#define X86_FEATURE_SME			(19*32+ 0) /* AMD Secure Memory Encryption */
+#define X86_FEATURE_SEV			(19*32+ 1) /* AMD Secure Encrypted Virtualization */
+#define X86_FEATURE_VM_PAGE_FLUSH	(19*32+ 2) /* "" VM Page Flush MSR is supported */
+#define X86_FEATURE_SEV_ES		(19*32+ 3) /* AMD Secure Encrypted Virtualization - Encrypted State */
+#define X86_FEATURE_SME_COHERENT	(19*32+10) /* "" AMD hardware-enforced cache coherency */
+
 /*
  * BUG word(s)
  */
@@ -401,5 +417,14 @@
 #define X86_BUG_SWAPGS			X86_BUG(21) /* CPU is affected by speculation through SWAPGS */
 #define X86_BUG_TAA			X86_BUG(22) /* CPU is affected by TSX Async Abort(TAA) */
 #define X86_BUG_ITLB_MULTIHIT		X86_BUG(23) /* CPU may incur MCE during certain page attribute changes */
+#define X86_BUG_SRBDS			X86_BUG(24) /* CPU may leak RNG bits if not mitigated */
+#define X86_BUG_MMIO_STALE_DATA		X86_BUG(25) /* CPU is affected by Processor MMIO Stale Data vulnerabilities */
+#define X86_BUG_RETBLEED		X86_BUG(26) /* CPU is affected by RETBleed */
+#define X86_BUG_EIBRS_PBRSB		X86_BUG(27) /* EIBRS is vulnerable to Post Barrier RSB Predictions */
+#define X86_BUG_MMIO_UNKNOWN		X86_BUG(28) /* CPU is too old and its MMIO Stale Data status is unknown */
+#define X86_BUG_SMT_RSB			X86_BUG(29) /* CPU is vulnerable to Cross-Thread Return Address Predictions */
+#define X86_BUG_GDS			X86_BUG(30) /* CPU is affected by Gather Data Sampling */
 
+/* BUG word 2 */
+#define X86_BUG_DIV0			X86_BUG(1*32 + 1) /* AMD DIV0 speculation bug */
 #endif /* _ASM_X86_CPUFEATURES_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/crash.h
+++ linux-ein-5.4.0/arch/x86/include/asm/crash.h
@@ -2,10 +2,18 @@
 #ifndef _ASM_X86_CRASH_H
 #define _ASM_X86_CRASH_H
 
+struct kimage;
+
 int crash_load_segments(struct kimage *image);
 int crash_copy_backup_region(struct kimage *image);
 int crash_setup_memmap_entries(struct kimage *image,
 		struct boot_params *params);
 void crash_smp_send_stop(void);
 
+#ifdef CONFIG_KEXEC_CORE
+void __init crash_reserve_low_1M(void);
+#else
+static inline void __init crash_reserve_low_1M(void) { }
+#endif
+
 #endif /* _ASM_X86_CRASH_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/crypto/camellia.h
+++ linux-ein-5.4.0/arch/x86/include/asm/crypto/camellia.h
@@ -32,65 +32,60 @@
 			       unsigned int keylen);
 
 /* regular block cipher functions */
-asmlinkage void __camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst,
-				   const u8 *src, bool xor);
-asmlinkage void camellia_dec_blk(struct camellia_ctx *ctx, u8 *dst,
-				 const u8 *src);
+asmlinkage void __camellia_enc_blk(const void *ctx, u8 *dst, const u8 *src,
+				   bool xor);
+asmlinkage void camellia_dec_blk(const void *ctx, u8 *dst, const u8 *src);
 
 /* 2-way parallel cipher functions */
-asmlinkage void __camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst,
-					const u8 *src, bool xor);
-asmlinkage void camellia_dec_blk_2way(struct camellia_ctx *ctx, u8 *dst,
-				      const u8 *src);
+asmlinkage void __camellia_enc_blk_2way(const void *ctx, u8 *dst, const u8 *src,
+					bool xor);
+asmlinkage void camellia_dec_blk_2way(const void *ctx, u8 *dst, const u8 *src);
 
 /* 16-way parallel cipher functions (avx/aes-ni) */
-asmlinkage void camellia_ecb_enc_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
-asmlinkage void camellia_ecb_dec_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
-
-asmlinkage void camellia_cbc_dec_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src);
-asmlinkage void camellia_ctr_16way(struct camellia_ctx *ctx, u8 *dst,
-				   const u8 *src, le128 *iv);
-
-asmlinkage void camellia_xts_enc_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src, le128 *iv);
-asmlinkage void camellia_xts_dec_16way(struct camellia_ctx *ctx, u8 *dst,
-				       const u8 *src, le128 *iv);
+asmlinkage void camellia_ecb_enc_16way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void camellia_ecb_dec_16way(const void *ctx, u8 *dst, const u8 *src);
 
-static inline void camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst,
-				    const u8 *src)
+asmlinkage void camellia_cbc_dec_16way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void camellia_ctr_16way(const void *ctx, u8 *dst, const u8 *src,
+				   le128 *iv);
+
+asmlinkage void camellia_xts_enc_16way(const void *ctx, u8 *dst, const u8 *src,
+				       le128 *iv);
+asmlinkage void camellia_xts_dec_16way(const void *ctx, u8 *dst, const u8 *src,
+				       le128 *iv);
+
+static inline void camellia_enc_blk(const void *ctx, u8 *dst, const u8 *src)
 {
 	__camellia_enc_blk(ctx, dst, src, false);
 }
 
-static inline void camellia_enc_blk_xor(struct camellia_ctx *ctx, u8 *dst,
-					const u8 *src)
+static inline void camellia_enc_blk_xor(const void *ctx, u8 *dst, const u8 *src)
 {
 	__camellia_enc_blk(ctx, dst, src, true);
 }
 
-static inline void camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst,
+static inline void camellia_enc_blk_2way(const void *ctx, u8 *dst,
 					 const u8 *src)
 {
 	__camellia_enc_blk_2way(ctx, dst, src, false);
 }
 
-static inline void camellia_enc_blk_xor_2way(struct camellia_ctx *ctx, u8 *dst,
+static inline void camellia_enc_blk_xor_2way(const void *ctx, u8 *dst,
 					     const u8 *src)
 {
 	__camellia_enc_blk_2way(ctx, dst, src, true);
 }
 
 /* glue helpers */
-extern void camellia_decrypt_cbc_2way(void *ctx, u128 *dst, const u128 *src);
-extern void camellia_crypt_ctr(void *ctx, u128 *dst, const u128 *src,
+extern void camellia_decrypt_cbc_2way(const void *ctx, u8 *dst, const u8 *src);
+extern void camellia_crypt_ctr(const void *ctx, u8 *dst, const u8 *src,
 			       le128 *iv);
-extern void camellia_crypt_ctr_2way(void *ctx, u128 *dst, const u128 *src,
+extern void camellia_crypt_ctr_2way(const void *ctx, u8 *dst, const u8 *src,
 				    le128 *iv);
 
-extern void camellia_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv);
-extern void camellia_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv);
+extern void camellia_xts_enc(const void *ctx, u8 *dst, const u8 *src,
+			     le128 *iv);
+extern void camellia_xts_dec(const void *ctx, u8 *dst, const u8 *src,
+			     le128 *iv);
 
 #endif /* ASM_X86_CAMELLIA_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/crypto/glue_helper.h
+++ linux-ein-5.4.0/arch/x86/include/asm/crypto/glue_helper.h
@@ -11,18 +11,13 @@
 #include <asm/fpu/api.h>
 #include <crypto/b128ops.h>
 
-typedef void (*common_glue_func_t)(void *ctx, u8 *dst, const u8 *src);
-typedef void (*common_glue_cbc_func_t)(void *ctx, u128 *dst, const u128 *src);
-typedef void (*common_glue_ctr_func_t)(void *ctx, u128 *dst, const u128 *src,
+typedef void (*common_glue_func_t)(const void *ctx, u8 *dst, const u8 *src);
+typedef void (*common_glue_cbc_func_t)(const void *ctx, u8 *dst, const u8 *src);
+typedef void (*common_glue_ctr_func_t)(const void *ctx, u8 *dst, const u8 *src,
 				       le128 *iv);
-typedef void (*common_glue_xts_func_t)(void *ctx, u128 *dst, const u128 *src,
+typedef void (*common_glue_xts_func_t)(const void *ctx, u8 *dst, const u8 *src,
 				       le128 *iv);
 
-#define GLUE_FUNC_CAST(fn) ((common_glue_func_t)(fn))
-#define GLUE_CBC_FUNC_CAST(fn) ((common_glue_cbc_func_t)(fn))
-#define GLUE_CTR_FUNC_CAST(fn) ((common_glue_ctr_func_t)(fn))
-#define GLUE_XTS_FUNC_CAST(fn) ((common_glue_xts_func_t)(fn))
-
 struct common_glue_func_entry {
 	unsigned int num_blocks; /* number of blocks that @fn will process */
 	union {
@@ -116,7 +111,8 @@
 			       common_glue_func_t tweak_fn, void *tweak_ctx,
 			       void *crypt_ctx, bool decrypt);
 
-extern void glue_xts_crypt_128bit_one(void *ctx, u128 *dst, const u128 *src,
-				      le128 *iv, common_glue_func_t fn);
+extern void glue_xts_crypt_128bit_one(const void *ctx, u8 *dst,
+				      const u8 *src, le128 *iv,
+				      common_glue_func_t fn);
 
 #endif /* _CRYPTO_GLUE_HELPER_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/crypto/serpent-avx.h
+++ linux-ein-5.4.0/arch/x86/include/asm/crypto/serpent-avx.h
@@ -15,26 +15,26 @@
 	struct serpent_ctx crypt_ctx;
 };
 
-asmlinkage void serpent_ecb_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_ecb_enc_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src);
-asmlinkage void serpent_ecb_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_ecb_dec_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src);
 
-asmlinkage void serpent_cbc_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_cbc_dec_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src);
-asmlinkage void serpent_ctr_8way_avx(struct serpent_ctx *ctx, u8 *dst,
-				     const u8 *src, le128 *iv);
+asmlinkage void serpent_ctr_8way_avx(const void *ctx, u8 *dst, const u8 *src,
+				     le128 *iv);
 
-asmlinkage void serpent_xts_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_xts_enc_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src, le128 *iv);
-asmlinkage void serpent_xts_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_xts_dec_8way_avx(const void *ctx, u8 *dst,
 					 const u8 *src, le128 *iv);
 
-extern void __serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src,
+extern void __serpent_crypt_ctr(const void *ctx, u8 *dst, const u8 *src,
 				le128 *iv);
 
-extern void serpent_xts_enc(void *ctx, u128 *dst, const u128 *src, le128 *iv);
-extern void serpent_xts_dec(void *ctx, u128 *dst, const u128 *src, le128 *iv);
+extern void serpent_xts_enc(const void *ctx, u8 *dst, const u8 *src, le128 *iv);
+extern void serpent_xts_dec(const void *ctx, u8 *dst, const u8 *src, le128 *iv);
 
 extern int xts_serpent_setkey(struct crypto_skcipher *tfm, const u8 *key,
 			      unsigned int keylen);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/crypto/serpent-sse2.h
+++ linux-ein-5.4.0/arch/x86/include/asm/crypto/serpent-sse2.h
@@ -9,25 +9,23 @@
 
 #define SERPENT_PARALLEL_BLOCKS 4
 
-asmlinkage void __serpent_enc_blk_4way(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void __serpent_enc_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
 				       const u8 *src, bool xor);
-asmlinkage void serpent_dec_blk_4way(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_dec_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
 				     const u8 *src);
 
-static inline void serpent_enc_blk_xway(struct serpent_ctx *ctx, u8 *dst,
-					const u8 *src)
+static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
 {
 	__serpent_enc_blk_4way(ctx, dst, src, false);
 }
 
-static inline void serpent_enc_blk_xway_xor(struct serpent_ctx *ctx, u8 *dst,
-					    const u8 *src)
+static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
+					    u8 *dst, const u8 *src)
 {
 	__serpent_enc_blk_4way(ctx, dst, src, true);
 }
 
-static inline void serpent_dec_blk_xway(struct serpent_ctx *ctx, u8 *dst,
-					const u8 *src)
+static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
 {
 	serpent_dec_blk_4way(ctx, dst, src);
 }
@@ -36,25 +34,23 @@
 
 #define SERPENT_PARALLEL_BLOCKS 8
 
-asmlinkage void __serpent_enc_blk_8way(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void __serpent_enc_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
 				       const u8 *src, bool xor);
-asmlinkage void serpent_dec_blk_8way(struct serpent_ctx *ctx, u8 *dst,
+asmlinkage void serpent_dec_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
 				     const u8 *src);
 
-static inline void serpent_enc_blk_xway(struct serpent_ctx *ctx, u8 *dst,
-				   const u8 *src)
+static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
 {
 	__serpent_enc_blk_8way(ctx, dst, src, false);
 }
 
-static inline void serpent_enc_blk_xway_xor(struct serpent_ctx *ctx, u8 *dst,
-				       const u8 *src)
+static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
+					    u8 *dst, const u8 *src)
 {
 	__serpent_enc_blk_8way(ctx, dst, src, true);
 }
 
-static inline void serpent_dec_blk_xway(struct serpent_ctx *ctx, u8 *dst,
-				   const u8 *src)
+static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
 {
 	serpent_dec_blk_8way(ctx, dst, src);
 }
--- linux-ein-5.4.0.orig/arch/x86/include/asm/crypto/twofish.h
+++ linux-ein-5.4.0/arch/x86/include/asm/crypto/twofish.h
@@ -7,22 +7,19 @@
 #include <crypto/b128ops.h>
 
 /* regular block cipher functions from twofish_x86_64 module */
-asmlinkage void twofish_enc_blk(struct twofish_ctx *ctx, u8 *dst,
-				const u8 *src);
-asmlinkage void twofish_dec_blk(struct twofish_ctx *ctx, u8 *dst,
-				const u8 *src);
+asmlinkage void twofish_enc_blk(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void twofish_dec_blk(const void *ctx, u8 *dst, const u8 *src);
 
 /* 3-way parallel cipher functions */
-asmlinkage void __twofish_enc_blk_3way(struct twofish_ctx *ctx, u8 *dst,
-				       const u8 *src, bool xor);
-asmlinkage void twofish_dec_blk_3way(struct twofish_ctx *ctx, u8 *dst,
-				     const u8 *src);
+asmlinkage void __twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src,
+				       bool xor);
+asmlinkage void twofish_dec_blk_3way(const void *ctx, u8 *dst, const u8 *src);
 
 /* helpers from twofish_x86_64-3way module */
-extern void twofish_dec_blk_cbc_3way(void *ctx, u128 *dst, const u128 *src);
-extern void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src,
+extern void twofish_dec_blk_cbc_3way(const void *ctx, u8 *dst, const u8 *src);
+extern void twofish_enc_blk_ctr(const void *ctx, u8 *dst, const u8 *src,
 				le128 *iv);
-extern void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src,
+extern void twofish_enc_blk_ctr_3way(const void *ctx, u8 *dst, const u8 *src,
 				     le128 *iv);
 
 #endif /* ASM_X86_TWOFISH_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/disabled-features.h
+++ linux-ein-5.4.0/arch/x86/include/asm/disabled-features.h
@@ -84,6 +84,8 @@
 #define DISABLED_MASK16	(DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57|DISABLE_UMIP)
 #define DISABLED_MASK17	0
 #define DISABLED_MASK18	0
-#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 19)
+#define DISABLED_MASK19	0
+#define DISABLED_MASK20	0
+#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
 
 #endif /* _ASM_X86_DISABLED_FEATURES_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/dma.h
+++ linux-ein-5.4.0/arch/x86/include/asm/dma.h
@@ -74,7 +74,7 @@
 #define MAX_DMA_PFN   ((16UL * 1024 * 1024) >> PAGE_SHIFT)
 
 /* 4GB broken PCI/AGP hardware bus master zone */
-#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
+#define MAX_DMA32_PFN (1UL << (32 - PAGE_SHIFT))
 
 #ifdef CONFIG_X86_32
 /* The maximum address that we can perform a DMA transfer to on this platform */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/emulate_prefix.h
+++ linux-ein-5.4.0/arch/x86/include/asm/emulate_prefix.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_X86_EMULATE_PREFIX_H
+#define _ASM_X86_EMULATE_PREFIX_H
+
+/*
+ * Virt escape sequences to trigger instruction emulation;
+ * ideally these would decode to 'whole' instruction and not destroy
+ * the instruction stream; sadly this is not true for the 'kvm' one :/
+ */
+
+#define __XEN_EMULATE_PREFIX  0x0f,0x0b,0x78,0x65,0x6e  /* ud2 ; .ascii "xen" */
+#define __KVM_EMULATE_PREFIX  0x0f,0x0b,0x6b,0x76,0x6d	/* ud2 ; .ascii "kvm" */
+
+#endif
--- linux-ein-5.4.0.orig/arch/x86/include/asm/fixmap.h
+++ linux-ein-5.4.0/arch/x86/include/asm/fixmap.h
@@ -156,7 +156,7 @@
 extern pte_t *pkmap_page_table;
 
 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte);
-void native_set_fixmap(enum fixed_addresses idx,
+void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
 		       phys_addr_t phys, pgprot_t flags);
 
 #ifndef CONFIG_PARAVIRT_XXL
--- linux-ein-5.4.0.orig/arch/x86/include/asm/fpu/api.h
+++ linux-ein-5.4.0/arch/x86/include/asm/fpu/api.h
@@ -16,14 +16,25 @@
  * Use kernel_fpu_begin/end() if you intend to use FPU in kernel context. It
  * disables preemption so be careful if you intend to use it for long periods
  * of time.
- * If you intend to use the FPU in softirq you need to check first with
+ * If you intend to use the FPU in irq/softirq you need to check first with
  * irq_fpu_usable() if it is possible.
  */
-extern void kernel_fpu_begin(void);
+
+/* Kernel FPU states to initialize in kernel_fpu_begin_mask() */
+#define KFPU_387	_BITUL(0)	/* 387 state will be initialized */
+#define KFPU_MXCSR	_BITUL(1)	/* MXCSR will be initialized */
+
+extern void kernel_fpu_begin_mask(unsigned int kfpu_mask);
 extern void kernel_fpu_end(void);
 extern bool irq_fpu_usable(void);
 extern void fpregs_mark_activate(void);
 
+/* Code that is unaware of kernel_fpu_begin_mask() can use this */
+static inline void kernel_fpu_begin(void)
+{
+	kernel_fpu_begin_mask(KFPU_387 | KFPU_MXCSR);
+}
+
 /*
  * Use fpregs_lock() while editing CPU's FPU registers or fpu->state.
  * A context switch will (and softirq might) save CPU's FPU registers to
--- linux-ein-5.4.0.orig/arch/x86/include/asm/fpu/internal.h
+++ linux-ein-5.4.0/arch/x86/include/asm/fpu/internal.h
@@ -41,7 +41,7 @@
 extern void fpu__init_cpu(void);
 extern void fpu__init_system_xstate(void);
 extern void fpu__init_cpu_xstate(void);
-extern void fpu__init_system(struct cpuinfo_x86 *c);
+extern void fpu__init_system(void);
 extern void fpu__init_check_bugs(void);
 extern void fpu__resume_cpu(void);
 extern u64 fpu__get_supported_xfeatures_mask(void);
@@ -102,6 +102,7 @@
 }
 extern void fpstate_sanitize_xstate(struct fpu *fpu);
 
+/* Returns 0 or the negated trap number, which results in -EFAULT for #PF */
 #define user_insn(insn, output, input...)				\
 ({									\
 	int err;							\
@@ -109,14 +110,14 @@
 	might_fault();							\
 									\
 	asm volatile(ASM_STAC "\n"					\
-		     "1:" #insn "\n\t"					\
+		     "1: " #insn "\n"					\
 		     "2: " ASM_CLAC "\n"				\
 		     ".section .fixup,\"ax\"\n"				\
-		     "3:  movl $-1,%[err]\n"				\
+		     "3:  negl %%eax\n"					\
 		     "    jmp  2b\n"					\
 		     ".previous\n"					\
-		     _ASM_EXTABLE(1b, 3b)				\
-		     : [err] "=r" (err), output				\
+		     _ASM_EXTABLE_FAULT(1b, 3b)				\
+		     : [err] "=a" (err), output				\
 		     : "0"(0), input);					\
 	err;								\
 })
@@ -203,6 +204,14 @@
 		asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state.fxsave));
 }
 
+static inline void fxsave(struct fxregs_state *fx)
+{
+	if (IS_ENABLED(CONFIG_X86_32))
+		asm volatile( "fxsave %[fx]" : [fx] "=m" (*fx));
+	else
+		asm volatile("fxsaveq %[fx]" : [fx] "=m" (*fx));
+}
+
 /* These macros all use (%edi)/(%rdi) as the single memory argument. */
 #define XSAVE		".byte " REX_PREFIX "0x0f,0xae,0x27"
 #define XSAVEOPT	".byte " REX_PREFIX "0x0f,0xae,0x37"
@@ -210,16 +219,20 @@
 #define XRSTOR		".byte " REX_PREFIX "0x0f,0xae,0x2f"
 #define XRSTORS		".byte " REX_PREFIX "0x0f,0xc7,0x1f"
 
+/*
+ * After this @err contains 0 on success or the negated trap number when
+ * the operation raises an exception. For faults this results in -EFAULT.
+ */
 #define XSTATE_OP(op, st, lmask, hmask, err)				\
 	asm volatile("1:" op "\n\t"					\
 		     "xor %[err], %[err]\n"				\
 		     "2:\n\t"						\
 		     ".pushsection .fixup,\"ax\"\n\t"			\
-		     "3: movl $-2,%[err]\n\t"				\
+		     "3: negl %%eax\n\t"				\
 		     "jmp 2b\n\t"					\
 		     ".popsection\n\t"					\
-		     _ASM_EXTABLE(1b, 3b)				\
-		     : [err] "=r" (err)					\
+		     _ASM_EXTABLE_FAULT(1b, 3b)				\
+		     : [err] "=a" (err)					\
 		     : "D" (st), "m" (*st), "a" (lmask), "d" (hmask)	\
 		     : "memory")
 
@@ -271,28 +284,6 @@
  * This function is called only during boot time when x86 caps are not set
  * up and alternative can not be used yet.
  */
-static inline void copy_xregs_to_kernel_booting(struct xregs_state *xstate)
-{
-	u64 mask = -1;
-	u32 lmask = mask;
-	u32 hmask = mask >> 32;
-	int err;
-
-	WARN_ON(system_state != SYSTEM_BOOTING);
-
-	if (boot_cpu_has(X86_FEATURE_XSAVES))
-		XSTATE_OP(XSAVES, xstate, lmask, hmask, err);
-	else
-		XSTATE_OP(XSAVE, xstate, lmask, hmask, err);
-
-	/* We should never fault when copying to a kernel buffer: */
-	WARN_ON_FPU(err);
-}
-
-/*
- * This function is called only during boot time when x86 caps are not set
- * up and alternative can not be used yet.
- */
 static inline void copy_kernel_to_xregs_booting(struct xregs_state *xstate)
 {
 	u64 mask = -1;
@@ -509,7 +500,7 @@
 
 static inline int fpregs_state_valid(struct fpu *fpu, unsigned int cpu)
 {
-	return fpu == this_cpu_read_stable(fpu_fpregs_owner_ctx) && cpu == fpu->last_cpu;
+	return fpu == this_cpu_read(fpu_fpregs_owner_ctx) && cpu == fpu->last_cpu;
 }
 
 /*
@@ -569,9 +560,11 @@
  * The FPU context is only stored/restored for a user task and
  * PF_KTHREAD is used to distinguish between kernel and user threads.
  */
-static inline void switch_fpu_prepare(struct fpu *old_fpu, int cpu)
+static inline void switch_fpu_prepare(struct task_struct *prev, int cpu)
 {
-	if (static_cpu_has(X86_FEATURE_FPU) && !(current->flags & PF_KTHREAD)) {
+	struct fpu *old_fpu = &prev->thread.fpu;
+
+	if (static_cpu_has(X86_FEATURE_FPU) && !(prev->flags & PF_KTHREAD)) {
 		if (!copy_fpregs_to_fpstate(old_fpu))
 			old_fpu->last_cpu = -1;
 		else
@@ -590,10 +583,11 @@
  * Load PKRU from the FPU context if available. Delay loading of the
  * complete FPU state until the return to userland.
  */
-static inline void switch_fpu_finish(struct fpu *new_fpu)
+static inline void switch_fpu_finish(struct task_struct *next)
 {
 	u32 pkru_val = init_pkru_value;
 	struct pkru_state *pk;
+	struct fpu *next_fpu = &next->thread.fpu;
 
 	if (!static_cpu_has(X86_FEATURE_FPU))
 		return;
@@ -607,10 +601,17 @@
 	 * PKRU state is switched eagerly because it needs to be valid before we
 	 * return to userland e.g. for a copy_to_user() operation.
 	 */
-	if (current->mm) {
-		pk = get_xsave_addr(&new_fpu->state.xsave, XFEATURE_PKRU);
-		if (pk)
-			pkru_val = pk->pkru;
+	if (!(next->flags & PF_KTHREAD)) {
+		/*
+		 * If the PKRU bit in xsave.header.xfeatures is not set,
+		 * then the PKRU component was in init state, which means
+		 * XRSTOR will set PKRU to 0. If the bit is not set then
+		 * get_xsave_addr() will return NULL because the PKRU value
+		 * in memory is not valid. This means pkru_val has to be
+		 * set to 0 and not to init_pkru_value.
+		 */
+		pk = get_xsave_addr(&next_fpu->state.xsave, XFEATURE_PKRU);
+		pkru_val = pk ? pk->pkru : 0;
 	}
 	__write_pkru(pkru_val);
 }
@@ -619,6 +620,11 @@
  * MXCSR and XCR definitions:
  */
 
+static inline void ldmxcsr(u32 mxcsr)
+{
+	asm volatile("ldmxcsr %0" :: "m" (mxcsr));
+}
+
 extern unsigned int mxcsr_feature_mask;
 
 #define XCR_XFEATURE_ENABLED_MASK	0x00000000
--- linux-ein-5.4.0.orig/arch/x86/include/asm/hyperv-tlfs.h
+++ linux-ein-5.4.0/arch/x86/include/asm/hyperv-tlfs.h
@@ -721,7 +721,7 @@
 	u64 guest_rip;
 
 	u32 hv_clean_fields;
-	u32 hv_padding_32;
+	u32 padding32_1;
 	u32 hv_synthetic_controls;
 	struct {
 		u32 nested_flush_hypercall:1;
@@ -729,7 +729,7 @@
 		u32 reserved:30;
 	}  __packed hv_enlightenments_control;
 	u32 hv_vp_id;
-
+	u32 padding32_2;
 	u64 hv_vm_id;
 	u64 partition_assist_page;
 	u64 padding64_4[4];
--- linux-ein-5.4.0.orig/arch/x86/include/asm/insn.h
+++ linux-ein-5.4.0/arch/x86/include/asm/insn.h
@@ -45,6 +45,7 @@
 		struct insn_field immediate2;	/* for 64bit imm or seg16 */
 	};
 
+	int	emulate_prefix_size;
 	insn_attr_t attr;
 	unsigned char opnd_bytes;
 	unsigned char addr_bytes;
@@ -128,6 +129,11 @@
 	return (insn->vex_prefix.nbytes == 4);
 }
 
+static inline int insn_has_emulate_prefix(struct insn *insn)
+{
+	return !!insn->emulate_prefix_size;
+}
+
 /* Ensure this instruction is decoded completely */
 static inline int insn_complete(struct insn *insn)
 {
@@ -195,6 +201,21 @@
 	return insn_offset_displacement(insn) + insn->displacement.nbytes;
 }
 
+/**
+ * for_each_insn_prefix() -- Iterate prefixes in the instruction
+ * @insn: Pointer to struct insn.
+ * @idx:  Index storage.
+ * @prefix: Prefix byte.
+ *
+ * Iterate prefix bytes of given @insn. Each prefix byte is stored in @prefix
+ * and the index is stored in @idx (note that this @idx is just for a cursor,
+ * do not change it.)
+ * Since prefixes.nbytes can be bigger than 4 if some prefixes
+ * are repeated, it cannot be used for looping over the prefixes.
+ */
+#define for_each_insn_prefix(insn, idx, prefix)	\
+	for (idx = 0; idx < ARRAY_SIZE(insn->prefixes.bytes) && (prefix = insn->prefixes.bytes[idx]) != 0; idx++)
+
 #define POP_SS_OPCODE 0x1f
 #define MOV_SREG_OPCODE 0x8e
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/intel-family.h
+++ linux-ein-5.4.0/arch/x86/include/asm/intel-family.h
@@ -35,6 +35,9 @@
  * The #define line may optionally include a comment including platform names.
  */
 
+/* Wildcard match for FAM6 so X86_MATCH_INTEL_FAM6_MODEL(ANY) works */
+#define INTEL_FAM6_ANY			X86_MODEL_ANY
+
 #define INTEL_FAM6_CORE_YONAH		0x0E
 
 #define INTEL_FAM6_CORE2_MEROM		0x0F
@@ -86,6 +89,19 @@
 #define INTEL_FAM6_COMETLAKE		0xA5
 #define INTEL_FAM6_COMETLAKE_L		0xA6
 
+#define INTEL_FAM6_ROCKETLAKE		0xA7
+
+/* Hybrid Core/Atom Processors */
+
+#define	INTEL_FAM6_LAKEFIELD		0x8A
+#define INTEL_FAM6_ALDERLAKE		0x97
+#define INTEL_FAM6_ALDERLAKE_L		0x9A
+#define INTEL_FAM6_ALDERLAKE_N		0xBE
+
+#define INTEL_FAM6_RAPTORLAKE		0xB7
+#define INTEL_FAM6_RAPTORLAKE_P		0xBA
+#define INTEL_FAM6_RAPTORLAKE_S		0xBF
+
 /* "Small Core" Processors (Atom) */
 
 #define INTEL_FAM6_ATOM_BONNELL		0x1C /* Diamondville, Pineview */
@@ -111,12 +127,16 @@
 
 #define INTEL_FAM6_ATOM_TREMONT_D	0x86 /* Jacobsville */
 #define INTEL_FAM6_ATOM_TREMONT		0x96 /* Elkhart Lake */
+#define INTEL_FAM6_ATOM_TREMONT_L	0x9C /* Jasper Lake */
 
 /* Xeon Phi */
 
 #define INTEL_FAM6_XEON_PHI_KNL		0x57 /* Knights Landing */
 #define INTEL_FAM6_XEON_PHI_KNM		0x85 /* Knights Mill */
 
+/* Family 5 */
+#define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
+
 /* Useful macros */
 #define INTEL_CPU_FAM_ANY(_family, _model, _driver_data)	\
 {								\
--- linux-ein-5.4.0.orig/arch/x86/include/asm/kasan.h
+++ linux-ein-5.4.0/arch/x86/include/asm/kasan.h
@@ -28,9 +28,12 @@
 #ifdef CONFIG_KASAN
 void __init kasan_early_init(void);
 void __init kasan_init(void);
+void __init kasan_populate_shadow_for_vaddr(void *va, size_t size, int nid);
 #else
 static inline void kasan_early_init(void) { }
 static inline void kasan_init(void) { }
+static inline void kasan_populate_shadow_for_vaddr(void *va, size_t size,
+						   int nid) { }
 #endif
 
 #endif
--- linux-ein-5.4.0.orig/arch/x86/include/asm/kexec.h
+++ linux-ein-5.4.0/arch/x86/include/asm/kexec.h
@@ -22,6 +22,7 @@
 
 #include <linux/string.h>
 #include <linux/kernel.h>
+#include <linux/module.h>
 
 #include <asm/page.h>
 #include <asm/ptrace.h>
@@ -201,6 +202,14 @@
 extern void arch_kexec_pre_free_pages(void *vaddr, unsigned int pages);
 #define arch_kexec_pre_free_pages arch_kexec_pre_free_pages
 
+#ifdef CONFIG_KEXEC_FILE
+struct purgatory_info;
+int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
+				     Elf_Shdr *section,
+				     const Elf_Shdr *relsec,
+				     const Elf_Shdr *symtab);
+#define arch_kexec_apply_relocations_add arch_kexec_apply_relocations_add
+#endif
 #endif
 
 typedef void crash_vmclear_fn(void);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/kvm_host.h
+++ linux-ein-5.4.0/arch/x86/include/asm/kvm_host.h
@@ -380,19 +380,17 @@
 	void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long root);
 	unsigned long (*get_cr3)(struct kvm_vcpu *vcpu);
 	u64 (*get_pdptr)(struct kvm_vcpu *vcpu, int index);
-	int (*page_fault)(struct kvm_vcpu *vcpu, gva_t gva, u32 err,
+	int (*page_fault)(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u32 err,
 			  bool prefault);
 	void (*inject_page_fault)(struct kvm_vcpu *vcpu,
 				  struct x86_exception *fault);
-	gpa_t (*gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t gva, u32 access,
-			    struct x86_exception *exception);
+	gpa_t (*gva_to_gpa)(struct kvm_vcpu *vcpu, gpa_t gva_or_gpa,
+			    u32 access, struct x86_exception *exception);
 	gpa_t (*translate_gpa)(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access,
 			       struct x86_exception *exception);
 	int (*sync_page)(struct kvm_vcpu *vcpu,
 			 struct kvm_mmu_page *sp);
 	void (*invlpg)(struct kvm_vcpu *vcpu, gva_t gva, hpa_t root_hpa);
-	void (*update_pte)(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
-			   u64 *spte, const void *pte);
 	hpa_t root_hpa;
 	gpa_t root_cr3;
 	union kvm_mmu_role mmu_role;
@@ -550,6 +548,7 @@
 	unsigned long cr4;
 	unsigned long cr4_guest_owned_bits;
 	unsigned long cr8;
+	u32 host_pkru;
 	u32 pkru;
 	u32 hflags;
 	u64 efer;
@@ -564,6 +563,7 @@
 	u64 ia32_misc_enable_msr;
 	u64 smbase;
 	u64 smi_count;
+	bool at_instruction_boundary;
 	bool tpr_access_reporting;
 	u64 ia32_xss;
 	u64 microcode_version;
@@ -667,10 +667,10 @@
 	bool pvclock_set_guest_stopped_request;
 
 	struct {
+		u8 preempted;
 		u64 msr_val;
 		u64 last_steal;
-		struct gfn_to_hva_cache stime;
-		struct kvm_steal_time steal;
+		struct gfn_to_pfn_cache cache;
 	} st;
 
 	u64 tsc_offset;
@@ -943,7 +943,6 @@
 struct kvm_vm_stat {
 	ulong mmu_shadow_zapped;
 	ulong mmu_pte_write;
-	ulong mmu_pte_updated;
 	ulong mmu_pde_zapped;
 	ulong mmu_flooded;
 	ulong mmu_recycled;
@@ -983,6 +982,8 @@
 	u64 irq_injections;
 	u64 nmi_injections;
 	u64 req_event;
+	u64 preemption_reported;
+	u64 preemption_other;
 };
 
 struct x86_instruction_info;
@@ -1098,7 +1099,7 @@
 	void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap);
 	void (*set_virtual_apic_mode)(struct kvm_vcpu *vcpu);
 	void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu, hpa_t hpa);
-	void (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
+	int (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
 	int (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
 	int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
 	int (*set_identity_map_addr)(struct kvm *kvm, u64 ident_addr);
@@ -1128,8 +1129,9 @@
 	bool (*xsaves_supported)(void);
 	bool (*umip_emulated)(void);
 	bool (*pt_supported)(void);
+	bool (*pku_supported)(void);
 
-	int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr);
+	int (*check_nested_events)(struct kvm_vcpu *vcpu);
 	void (*request_immediate_exit)(struct kvm_vcpu *vcpu);
 
 	void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
@@ -1158,7 +1160,7 @@
 	void (*enable_log_dirty_pt_masked)(struct kvm *kvm,
 					   struct kvm_memory_slot *slot,
 					   gfn_t offset, unsigned long mask);
-	int (*write_log_dirty)(struct kvm_vcpu *vcpu);
+	int (*write_log_dirty)(struct kvm_vcpu *vcpu, gpa_t l2_gpa);
 
 	/* pmu operations of sub-arch */
 	const struct kvm_pmu_ops *pmu_ops;
@@ -1450,7 +1452,7 @@
 
 int kvm_emulate_hypercall(struct kvm_vcpu *vcpu);
 
-int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t gva, u64 error_code,
+int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u64 error_code,
 		       void *insn, int insn_len);
 void kvm_mmu_invlpg(struct kvm_vcpu *vcpu, gva_t gva);
 void kvm_mmu_invpcid_gva(struct kvm_vcpu *vcpu, gva_t gva, unsigned long pcid);
@@ -1551,12 +1553,14 @@
 	_ASM_EXTABLE(666b, 667b)
 
 #define KVM_ARCH_WANT_MMU_NOTIFIER
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end);
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
 int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v);
 int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu);
+int kvm_cpu_has_extint(struct kvm_vcpu *v);
 int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu);
 int kvm_cpu_get_interrupt(struct kvm_vcpu *v);
 void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event);
@@ -1607,8 +1611,8 @@
 static inline bool kvm_irq_is_postable(struct kvm_lapic_irq *irq)
 {
 	/* We can only post Fixed and LowPrio IRQs */
-	return (irq->delivery_mode == dest_Fixed ||
-		irq->delivery_mode == dest_LowestPrio);
+	return (irq->delivery_mode == APIC_DM_FIXED ||
+		irq->delivery_mode == APIC_DM_LOWEST);
 }
 
 static inline void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu)
--- linux-ein-5.4.0.orig/arch/x86/include/asm/kvm_para.h
+++ linux-ein-5.4.0/arch/x86/include/asm/kvm_para.h
@@ -6,8 +6,6 @@
 #include <asm/alternative.h>
 #include <uapi/asm/kvm_para.h>
 
-extern void kvmclock_init(void);
-
 #ifdef CONFIG_KVM_GUEST
 bool kvm_check_and_clear_guest_paused(void);
 #else
@@ -85,13 +83,14 @@
 }
 
 #ifdef CONFIG_KVM_GUEST
+void kvmclock_init(void);
+void kvmclock_disable(void);
 bool kvm_para_available(void);
 unsigned int kvm_arch_para_features(void);
 unsigned int kvm_arch_para_hints(void);
 void kvm_async_pf_task_wait(u32 token, int interrupt_kernel);
 void kvm_async_pf_task_wake(u32 token);
 u32 kvm_read_and_reset_pf_reason(void);
-extern void kvm_disable_steal_time(void);
 void do_async_page_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);
 
 #ifdef CONFIG_PARAVIRT_SPINLOCKS
@@ -126,10 +125,6 @@
 	return 0;
 }
 
-static inline void kvm_disable_steal_time(void)
-{
-	return;
-}
 #endif
 
 #endif /* _ASM_X86_KVM_PARA_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/kvmclock.h
+++ linux-ein-5.4.0/arch/x86/include/asm/kvmclock.h
@@ -2,6 +2,20 @@
 #ifndef _ASM_X86_KVM_CLOCK_H
 #define _ASM_X86_KVM_CLOCK_H
 
+#include <linux/percpu.h>
+
 extern struct clocksource kvm_clock;
 
+DECLARE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu);
+
+static inline struct pvclock_vcpu_time_info *this_cpu_pvti(void)
+{
+	return &this_cpu_read(hv_clock_per_cpu)->pvti;
+}
+
+static inline struct pvclock_vsyscall_time_info *this_cpu_hvclock(void)
+{
+	return this_cpu_read(hv_clock_per_cpu);
+}
+
 #endif /* _ASM_X86_KVM_CLOCK_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/linkage.h
+++ linux-ein-5.4.0/arch/x86/include/asm/linkage.h
@@ -13,9 +13,13 @@
 
 #ifdef __ASSEMBLY__
 
-#define GLOBAL(name)	\
-	.globl name;	\
-	name:
+/*
+ * GLOBAL is DEPRECATED
+ *
+ * use SYM_DATA_START, SYM_FUNC_START, SYM_INNER_LABEL, SYM_CODE_START, or
+ * similar
+ */
+#define GLOBAL(name)	SYM_ENTRY(name, SYM_L_GLOBAL, SYM_A_NONE)
 
 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_ALIGNMENT_16)
 #define __ALIGN		.p2align 4, 0x90
--- linux-ein-5.4.0.orig/arch/x86/include/asm/mce.h
+++ linux-ein-5.4.0/arch/x86/include/asm/mce.h
@@ -290,6 +290,7 @@
 /* These may be used by multiple smca_hwid_mcatypes */
 enum smca_bank_types {
 	SMCA_LS = 0,	/* Load Store */
+	SMCA_LS_V2,	/* Load Store */
 	SMCA_IF,	/* Instruction Fetch */
 	SMCA_L2_CACHE,	/* L2 Cache */
 	SMCA_DE,	/* Decoder Unit */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/mem_encrypt.h
+++ linux-ein-5.4.0/arch/x86/include/asm/mem_encrypt.h
@@ -43,13 +43,13 @@
 int __init early_set_memory_decrypted(unsigned long vaddr, unsigned long size);
 int __init early_set_memory_encrypted(unsigned long vaddr, unsigned long size);
 
-/* Architecture __weak replacement functions */
-void __init mem_encrypt_init(void);
 void __init mem_encrypt_free_decrypted_mem(void);
 
 bool sme_active(void);
 bool sev_active(void);
 
+void __init mem_encrypt_init(void);
+
 #define __bss_decrypted __attribute__((__section__(".bss..decrypted")))
 
 #else	/* !CONFIG_AMD_MEM_ENCRYPT */
@@ -77,6 +77,8 @@
 static inline int __init
 early_set_memory_encrypted(unsigned long vaddr, unsigned long size) { return 0; }
 
+static inline void mem_encrypt_init(void) { }
+
 #define __bss_decrypted
 
 #endif	/* CONFIG_AMD_MEM_ENCRYPT */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/microcode.h
+++ linux-ein-5.4.0/arch/x86/include/asm/microcode.h
@@ -5,10 +5,12 @@
 #include <asm/cpu.h>
 #include <linux/earlycpio.h>
 #include <linux/initrd.h>
+#include <asm/microcode_amd.h>
 
 struct ucode_patch {
 	struct list_head plist;
 	void *data;		/* Intel uses only this one */
+	unsigned int size;
 	u32 patch_id;
 	u16 equiv_cpu;
 };
@@ -130,14 +132,16 @@
 int __init microcode_init(void);
 extern void __init load_ucode_bsp(void);
 extern void load_ucode_ap(void);
-void reload_early_microcode(void);
+void reload_early_microcode(unsigned int cpu);
 extern bool get_builtin_firmware(struct cpio_data *cd, const char *name);
 extern bool initrd_gone;
+void microcode_bsp_resume(void);
 #else
 static inline int __init microcode_init(void)			{ return 0; };
 static inline void __init load_ucode_bsp(void)			{ }
 static inline void load_ucode_ap(void)				{ }
-static inline void reload_early_microcode(void)			{ }
+static inline void reload_early_microcode(unsigned int cpu)	{ }
+static inline void microcode_bsp_resume(void)			{ }
 static inline bool
 get_builtin_firmware(struct cpio_data *cd, const char *name)	{ return false; }
 #endif
--- linux-ein-5.4.0.orig/arch/x86/include/asm/microcode_amd.h
+++ linux-ein-5.4.0/arch/x86/include/asm/microcode_amd.h
@@ -41,18 +41,20 @@
 	unsigned int			mpb[0];
 };
 
-#define PATCH_MAX_SIZE PAGE_SIZE
+#define PATCH_MAX_SIZE (3 * PAGE_SIZE)
 
 #ifdef CONFIG_MICROCODE_AMD
 extern void __init load_ucode_amd_bsp(unsigned int family);
 extern void load_ucode_amd_ap(unsigned int family);
 extern int __init save_microcode_in_initrd_amd(unsigned int family);
-void reload_ucode_amd(void);
+void reload_ucode_amd(unsigned int cpu);
+extern void amd_check_microcode(void);
 #else
 static inline void __init load_ucode_amd_bsp(unsigned int family) {}
 static inline void load_ucode_amd_ap(unsigned int family) {}
 static inline int __init
 save_microcode_in_initrd_amd(unsigned int family) { return -EINVAL; }
-void reload_ucode_amd(void) {}
+static inline void reload_ucode_amd(unsigned int cpu) {}
+static inline void amd_check_microcode(void) {}
 #endif
 #endif /* _ASM_X86_MICROCODE_AMD_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/msr-index.h
+++ linux-ein-5.4.0/arch/x86/include/asm/msr-index.h
@@ -47,6 +47,12 @@
 #define SPEC_CTRL_STIBP			BIT(SPEC_CTRL_STIBP_SHIFT)	/* STIBP mask */
 #define SPEC_CTRL_SSBD_SHIFT		2	   /* Speculative Store Bypass Disable bit */
 #define SPEC_CTRL_SSBD			BIT(SPEC_CTRL_SSBD_SHIFT)	/* Speculative Store Bypass Disable */
+#define SPEC_CTRL_RRSBA_DIS_S_SHIFT	6	   /* Disable RRSBA behavior */
+#define SPEC_CTRL_RRSBA_DIS_S		BIT(SPEC_CTRL_RRSBA_DIS_S_SHIFT)
+
+/* A mask for bits which the kernel toggles when controlling mitigations */
+#define SPEC_CTRL_MITIGATIONS_MASK	(SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD \
+							| SPEC_CTRL_RRSBA_DIS_S)
 
 #define MSR_IA32_PRED_CMD		0x00000049 /* Prediction Command */
 #define PRED_CMD_IBPB			BIT(0)	   /* Indirect Branch Prediction Barrier */
@@ -82,6 +88,7 @@
 #define MSR_IA32_ARCH_CAPABILITIES	0x0000010a
 #define ARCH_CAP_RDCL_NO		BIT(0)	/* Not susceptible to Meltdown */
 #define ARCH_CAP_IBRS_ALL		BIT(1)	/* Enhanced IBRS support */
+#define ARCH_CAP_RSBA			BIT(2)	/* RET may use alternative branch predictors */
 #define ARCH_CAP_SKIP_VMENTRY_L1DFLUSH	BIT(3)	/* Skip L1D flush on vmentry */
 #define ARCH_CAP_SSB_NO			BIT(4)	/*
 						 * Not susceptible to Speculative Store Bypass
@@ -105,6 +112,50 @@
 						 * Not susceptible to
 						 * TSX Async Abort (TAA) vulnerabilities.
 						 */
+#define ARCH_CAP_SBDR_SSDP_NO		BIT(13)	/*
+						 * Not susceptible to SBDR and SSDP
+						 * variants of Processor MMIO stale data
+						 * vulnerabilities.
+						 */
+#define ARCH_CAP_FBSDP_NO		BIT(14)	/*
+						 * Not susceptible to FBSDP variant of
+						 * Processor MMIO stale data
+						 * vulnerabilities.
+						 */
+#define ARCH_CAP_PSDP_NO		BIT(15)	/*
+						 * Not susceptible to PSDP variant of
+						 * Processor MMIO stale data
+						 * vulnerabilities.
+						 */
+#define ARCH_CAP_FB_CLEAR		BIT(17)	/*
+						 * VERW clears CPU fill buffer
+						 * even on MDS_NO CPUs.
+						 */
+#define ARCH_CAP_FB_CLEAR_CTRL		BIT(18)	/*
+						 * MSR_IA32_MCU_OPT_CTRL[FB_CLEAR_DIS]
+						 * bit available to control VERW
+						 * behavior.
+						 */
+#define ARCH_CAP_RRSBA			BIT(19)	/*
+						 * Indicates RET may use predictors
+						 * other than the RSB. With eIBRS
+						 * enabled predictions in kernel mode
+						 * are restricted to targets in
+						 * kernel.
+						 */
+#define ARCH_CAP_PBRSB_NO		BIT(24)	/*
+						 * Not susceptible to Post-Barrier
+						 * Return Stack Buffer Predictions.
+						 */
+#define ARCH_CAP_GDS_CTRL		BIT(25)	/*
+						 * CPU is vulnerable to Gather
+						 * Data Sampling (GDS) and
+						 * has controls for mitigation.
+						 */
+#define ARCH_CAP_GDS_NO			BIT(26)	/*
+						 * CPU is not vulnerable to Gather
+						 * Data Sampling (GDS).
+						 */
 
 #define MSR_IA32_FLUSH_CMD		0x0000010b
 #define L1D_FLUSH			BIT(0)	/*
@@ -119,6 +170,13 @@
 #define TSX_CTRL_RTM_DISABLE		BIT(0)	/* Disable RTM feature */
 #define TSX_CTRL_CPUID_CLEAR		BIT(1)	/* Disable TSX enumeration */
 
+/* SRBDS support */
+#define MSR_IA32_MCU_OPT_CTRL		0x00000123
+#define RNGDS_MITG_DIS			BIT(0)
+#define FB_CLEAR_DIS			BIT(3)	/* CPU Fill buffer clear disable */
+#define GDS_MITG_DIS			BIT(4)	/* Disable GDS mitigation */
+#define GDS_MITG_LOCKED			BIT(5)	/* GDS mitigation locked */
+
 #define MSR_IA32_SYSENTER_CS		0x00000174
 #define MSR_IA32_SYSENTER_ESP		0x00000175
 #define MSR_IA32_SYSENTER_EIP		0x00000176
@@ -411,6 +469,12 @@
 #define MSR_AMD64_OSVW_STATUS		0xc0010141
 #define MSR_AMD64_LS_CFG		0xc0011020
 #define MSR_AMD64_DC_CFG		0xc0011022
+
+#define MSR_AMD64_DE_CFG		0xc0011029
+#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT	 1
+#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE	BIT_ULL(MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT)
+#define MSR_AMD64_DE_CFG_ZEN2_FP_BACKUP_FIX_BIT 9
+
 #define MSR_AMD64_BU_CFG2		0xc001102a
 #define MSR_AMD64_IBSFETCHCTL		0xc0011030
 #define MSR_AMD64_IBSFETCHLINAD		0xc0011031
@@ -428,14 +492,20 @@
 #define MSR_AMD64_IBSOP_REG_MASK	((1UL<<MSR_AMD64_IBSOP_REG_COUNT)-1)
 #define MSR_AMD64_IBSCTL		0xc001103a
 #define MSR_AMD64_IBSBRTARGET		0xc001103b
+#define MSR_AMD64_ICIBSEXTDCTL		0xc001103c
 #define MSR_AMD64_IBSOPDATA4		0xc001103d
 #define MSR_AMD64_IBS_REG_COUNT_MAX	8 /* includes MSR_AMD64_IBSBRTARGET */
+#define MSR_AMD64_VM_PAGE_FLUSH		0xc001011e
 #define MSR_AMD64_SEV			0xc0010131
 #define MSR_AMD64_SEV_ENABLED_BIT	0
 #define MSR_AMD64_SEV_ENABLED		BIT_ULL(MSR_AMD64_SEV_ENABLED_BIT)
 
 #define MSR_AMD64_VIRT_SPEC_CTRL	0xc001011f
 
+/* Zen4 */
+#define MSR_ZEN4_BP_CFG			0xc001102e
+#define MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT 5
+
 /* Fam 17h MSRs */
 #define MSR_F17H_IRPERF			0xc00000e9
 
@@ -478,9 +548,6 @@
 #define FAM10H_MMIO_CONF_BASE_MASK	0xfffffffULL
 #define FAM10H_MMIO_CONF_BASE_SHIFT	20
 #define MSR_FAM10H_NODE_ID		0xc001100c
-#define MSR_F10H_DECFG			0xc0011029
-#define MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT	1
-#define MSR_F10H_DECFG_LFENCE_SERIALIZE		BIT_ULL(MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT)
 
 /* K8 MSRs */
 #define MSR_K8_TOP_MEM1			0xc001001a
@@ -510,6 +577,8 @@
 #define MSR_K7_HWCR			0xc0010015
 #define MSR_K7_HWCR_SMMLOCK_BIT		0
 #define MSR_K7_HWCR_SMMLOCK		BIT_ULL(MSR_K7_HWCR_SMMLOCK_BIT)
+#define MSR_K7_HWCR_IRPERF_EN_BIT	30
+#define MSR_K7_HWCR_IRPERF_EN		BIT_ULL(MSR_K7_HWCR_IRPERF_EN_BIT)
 #define MSR_K7_FID_VID_CTL		0xc0010041
 #define MSR_K7_FID_VID_STATUS		0xc0010042
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/msr.h
+++ linux-ein-5.4.0/arch/x86/include/asm/msr.h
@@ -88,7 +88,7 @@
  * think of extending them - you will be slapped with a stinking trout or a frozen
  * shark will reach you, wherever you are! You've been warned.
  */
-static inline unsigned long long notrace __rdmsr(unsigned int msr)
+static __always_inline unsigned long long __rdmsr(unsigned int msr)
 {
 	DECLARE_ARGS(val, low, high);
 
@@ -100,7 +100,7 @@
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static inline void notrace __wrmsr(unsigned int msr, u32 low, u32 high)
+static __always_inline void __wrmsr(unsigned int msr, u32 low, u32 high)
 {
 	asm volatile("1: wrmsr\n"
 		     "2:\n"
--- linux-ein-5.4.0.orig/arch/x86/include/asm/nmi.h
+++ linux-ein-5.4.0/arch/x86/include/asm/nmi.h
@@ -41,7 +41,6 @@
 	struct list_head	list;
 	nmi_handler_t		handler;
 	u64			max_duration;
-	struct irq_work		irq_work;
 	unsigned long		flags;
 	const char		*name;
 };
--- linux-ein-5.4.0.orig/arch/x86/include/asm/nospec-branch.h
+++ linux-ein-5.4.0/arch/x86/include/asm/nospec-branch.h
@@ -4,11 +4,14 @@
 #define _ASM_X86_NOSPEC_BRANCH_H_
 
 #include <linux/static_key.h>
+#include <linux/frame.h>
 
 #include <asm/alternative.h>
 #include <asm/alternative-asm.h>
 #include <asm/cpufeatures.h>
 #include <asm/msr-index.h>
+#include <asm/unwind_hints.h>
+#include <asm/percpu.h>
 
 /*
  * This should be used immediately before a retpoline alternative. It tells
@@ -44,6 +47,7 @@
  * the optimal version — two calls, each with their own speculation
  * trap should their return address end up getting used, in a loop.
  */
+#ifdef CONFIG_X86_64
 #define __FILL_RETURN_BUFFER(reg, nr, sp)	\
 	mov	$(nr/2), reg;			\
 771:						\
@@ -59,9 +63,24 @@
 	lfence;					\
 	jmp	775b;				\
 774:						\
+	add	$(BITS_PER_LONG/8) * 2, sp;	\
 	dec	reg;				\
 	jnz	771b;				\
+	/* barrier for jnz misprediction */	\
+	lfence;
+#else
+/*
+ * i386 doesn't unconditionally have LFENCE, as such it can't
+ * do a loop.
+ */
+#define __FILL_RETURN_BUFFER(reg, nr, sp)	\
+	.rept nr;				\
+	call	772f;				\
+	int3;					\
+772:;						\
+	.endr;					\
 	add	$(BITS_PER_LONG/8) * nr, sp;
+#endif
 
 #ifdef __ASSEMBLY__
 
@@ -115,7 +134,7 @@
 	ANNOTATE_NOSPEC_ALTERNATIVE
 	ALTERNATIVE_2 __stringify(ANNOTATE_RETPOLINE_SAFE; jmp *\reg),	\
 		__stringify(RETPOLINE_JMP \reg), X86_FEATURE_RETPOLINE,	\
-		__stringify(lfence; ANNOTATE_RETPOLINE_SAFE; jmp *\reg), X86_FEATURE_RETPOLINE_AMD
+		__stringify(lfence; ANNOTATE_RETPOLINE_SAFE; jmp *\reg), X86_FEATURE_RETPOLINE_LFENCE
 #else
 	jmp	*\reg
 #endif
@@ -126,24 +145,34 @@
 	ANNOTATE_NOSPEC_ALTERNATIVE
 	ALTERNATIVE_2 __stringify(ANNOTATE_RETPOLINE_SAFE; call *\reg),	\
 		__stringify(RETPOLINE_CALL \reg), X86_FEATURE_RETPOLINE,\
-		__stringify(lfence; ANNOTATE_RETPOLINE_SAFE; call *\reg), X86_FEATURE_RETPOLINE_AMD
+		__stringify(lfence; ANNOTATE_RETPOLINE_SAFE; call *\reg), X86_FEATURE_RETPOLINE_LFENCE
 #else
 	call	*\reg
 #endif
 .endm
 
+.macro ISSUE_UNBALANCED_RET_GUARD
+	call .Lunbalanced_ret_guard_\@
+	int3
+.Lunbalanced_ret_guard_\@:
+	add $(BITS_PER_LONG/8), %_ASM_SP
+	lfence
+.endm
+
  /*
   * A simpler FILL_RETURN_BUFFER macro. Don't make people use the CPP
   * monstrosity above, manually.
   */
-.macro FILL_RETURN_BUFFER reg:req nr:req ftr:req
-#ifdef CONFIG_RETPOLINE
-	ANNOTATE_NOSPEC_ALTERNATIVE
-	ALTERNATIVE "jmp .Lskip_rsb_\@",				\
-		__stringify(__FILL_RETURN_BUFFER(\reg,\nr,%_ASM_SP))	\
-		\ftr
+.macro FILL_RETURN_BUFFER reg:req nr:req ftr:req ftr2
+.ifb \ftr2
+	ALTERNATIVE "jmp .Lskip_rsb_\@", "", \ftr
+.else
+	ALTERNATIVE_2 "jmp .Lskip_rsb_\@", "", \ftr, "jmp .Lunbalanced_\@", \ftr2
+.endif
+	__FILL_RETURN_BUFFER(\reg,\nr,%_ASM_SP)
+.Lunbalanced_\@:
+	ISSUE_UNBALANCED_RET_GUARD
 .Lskip_rsb_\@:
-#endif
 .endm
 
 #else /* __ASSEMBLY__ */
@@ -171,7 +200,7 @@
 	"lfence;\n"						\
 	ANNOTATE_RETPOLINE_SAFE					\
 	"call *%[thunk_target]\n",				\
-	X86_FEATURE_RETPOLINE_AMD)
+	X86_FEATURE_RETPOLINE_LFENCE)
 # define THUNK_TARGET(addr) [thunk_target] "r" (addr)
 
 #else /* CONFIG_X86_32 */
@@ -201,7 +230,7 @@
 	"lfence;\n"						\
 	ANNOTATE_RETPOLINE_SAFE					\
 	"call *%[thunk_target]\n",				\
-	X86_FEATURE_RETPOLINE_AMD)
+	X86_FEATURE_RETPOLINE_LFENCE)
 
 # define THUNK_TARGET(addr) [thunk_target] "rm" (addr)
 #endif
@@ -213,9 +242,12 @@
 /* The Spectre V2 mitigation variants */
 enum spectre_v2_mitigation {
 	SPECTRE_V2_NONE,
-	SPECTRE_V2_RETPOLINE_GENERIC,
-	SPECTRE_V2_RETPOLINE_AMD,
-	SPECTRE_V2_IBRS_ENHANCED,
+	SPECTRE_V2_RETPOLINE,
+	SPECTRE_V2_LFENCE,
+	SPECTRE_V2_EIBRS,
+	SPECTRE_V2_EIBRS_RETPOLINE,
+	SPECTRE_V2_EIBRS_LFENCE,
+	SPECTRE_V2_IBRS,
 };
 
 /* The indirect branch speculation control variants */
@@ -279,6 +311,9 @@
 
 /* The Intel SPEC CTRL MSR base value cache */
 extern u64 x86_spec_ctrl_base;
+DECLARE_PER_CPU(u64, x86_spec_ctrl_current);
+extern void update_spec_ctrl_cond(u64 val);
+extern u64 spec_ctrl_current(void);
 
 /*
  * With retpoline, we must use IBRS to restrict branch prediction
@@ -288,18 +323,16 @@
  */
 #define firmware_restrict_branch_speculation_start()			\
 do {									\
-	u64 val = x86_spec_ctrl_base | SPEC_CTRL_IBRS;			\
-									\
 	preempt_disable();						\
-	alternative_msr_write(MSR_IA32_SPEC_CTRL, val,			\
+	alternative_msr_write(MSR_IA32_SPEC_CTRL,			\
+			      spec_ctrl_current() | SPEC_CTRL_IBRS,	\
 			      X86_FEATURE_USE_IBRS_FW);			\
 } while (0)
 
 #define firmware_restrict_branch_speculation_end()			\
 do {									\
-	u64 val = x86_spec_ctrl_base;					\
-									\
-	alternative_msr_write(MSR_IA32_SPEC_CTRL, val,			\
+	alternative_msr_write(MSR_IA32_SPEC_CTRL,			\
+			      spec_ctrl_current(),			\
 			      X86_FEATURE_USE_IBRS_FW);			\
 	preempt_enable();						\
 } while (0)
@@ -311,6 +344,8 @@
 DECLARE_STATIC_KEY_FALSE(mds_user_clear);
 DECLARE_STATIC_KEY_FALSE(mds_idle_clear);
 
+DECLARE_STATIC_KEY_FALSE(mmio_stale_data_clear);
+
 #include <asm/segment.h>
 
 /**
@@ -320,7 +355,7 @@
  * combination with microcode which triggers a CPU buffer flush when the
  * instruction is executed.
  */
-static inline void mds_clear_cpu_buffers(void)
+static __always_inline void mds_clear_cpu_buffers(void)
 {
 	static const u16 ds = __KERNEL_DS;
 
@@ -341,7 +376,7 @@
  *
  * Clear CPU buffers if the corresponding static key is enabled
  */
-static inline void mds_user_clear_cpu_buffers(void)
+static __always_inline void mds_user_clear_cpu_buffers(void)
 {
 	if (static_branch_likely(&mds_user_clear))
 		mds_clear_cpu_buffers();
--- linux-ein-5.4.0.orig/arch/x86/include/asm/page_64_types.h
+++ linux-ein-5.4.0/arch/x86/include/asm/page_64_types.h
@@ -15,7 +15,7 @@
 #define THREAD_SIZE_ORDER	(2 + KASAN_STACK_ORDER)
 #define THREAD_SIZE  (PAGE_SIZE << THREAD_SIZE_ORDER)
 
-#define EXCEPTION_STACK_ORDER (0 + KASAN_STACK_ORDER)
+#define EXCEPTION_STACK_ORDER (1 + KASAN_STACK_ORDER)
 #define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER)
 
 #define IRQ_STACK_ORDER (2 + KASAN_STACK_ORDER)
--- linux-ein-5.4.0.orig/arch/x86/include/asm/pci-direct.h
+++ linux-ein-5.4.0/arch/x86/include/asm/pci-direct.h
@@ -10,9 +10,11 @@
 extern u32 read_pci_config(u8 bus, u8 slot, u8 func, u8 offset);
 extern u8 read_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset);
 extern u16 read_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset);
+extern u32 pci_early_find_cap(int bus, int slot, int func, int cap);
 extern void write_pci_config(u8 bus, u8 slot, u8 func, u8 offset, u32 val);
 extern void write_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset, u8 val);
 extern void write_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset, u16 val);
 
+extern unsigned int pci_early_clear_msi;
 extern int early_pci_allowed(void);
 #endif /* _ASM_X86_PCI_DIRECT_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/pgtable.h
+++ linux-ein-5.4.0/arch/x86/include/asm/pgtable.h
@@ -253,6 +253,7 @@
 }
 
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
+/* NOTE: when predicate huge page, consider also pmd_devmap, or use pmd_large */
 static inline int pmd_trans_huge(pmd_t pmd)
 {
 	return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE;
@@ -624,12 +625,15 @@
 	return __pmd(val);
 }
 
-/* mprotect needs to preserve PAT bits when updating vm_page_prot */
+/*
+ * mprotect needs to preserve PAT and encryption bits when updating
+ * vm_page_prot
+ */
 #define pgprot_modify pgprot_modify
 static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
 {
 	pgprotval_t preservebits = pgprot_val(oldprot) & _PAGE_CHG_MASK;
-	pgprotval_t addbits = pgprot_val(newprot);
+	pgprotval_t addbits = pgprot_val(newprot) & ~_PAGE_CHG_MASK;
 	return __pgprot(preservebits | addbits);
 }
 
@@ -1371,8 +1375,8 @@
 #endif
 #endif
 
-#define PKRU_AD_BIT 0x1
-#define PKRU_WD_BIT 0x2
+#define PKRU_AD_BIT 0x1u
+#define PKRU_WD_BIT 0x2u
 #define PKRU_BITS_PER_PKEY 2
 
 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
--- linux-ein-5.4.0.orig/arch/x86/include/asm/pgtable_32_types.h
+++ linux-ein-5.4.0/arch/x86/include/asm/pgtable_32_types.h
@@ -44,11 +44,11 @@
  * Define this here and validate with BUILD_BUG_ON() in pgtable_32.c
  * to avoid include recursion hell
  */
-#define CPU_ENTRY_AREA_PAGES	(NR_CPUS * 40)
+#define CPU_ENTRY_AREA_PAGES	(NR_CPUS * 39)
 
-#define CPU_ENTRY_AREA_BASE						\
-	((FIXADDR_TOT_START - PAGE_SIZE * (CPU_ENTRY_AREA_PAGES + 1))   \
-	 & PMD_MASK)
+/* The +1 is for the readonly IDT page: */
+#define CPU_ENTRY_AREA_BASE	\
+	((FIXADDR_TOT_START - PAGE_SIZE*(CPU_ENTRY_AREA_PAGES+1)) & PMD_MASK)
 
 #define LDT_BASE_ADDR		\
 	((CPU_ENTRY_AREA_BASE - PAGE_SIZE) & PMD_MASK)
--- linux-ein-5.4.0.orig/arch/x86/include/asm/pgtable_types.h
+++ linux-ein-5.4.0/arch/x86/include/asm/pgtable_types.h
@@ -123,7 +123,7 @@
  */
 #define _PAGE_CHG_MASK	(PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT |		\
 			 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY |	\
-			 _PAGE_SOFT_DIRTY | _PAGE_DEVMAP)
+			 _PAGE_SOFT_DIRTY | _PAGE_DEVMAP | _PAGE_ENC)
 #define _HPAGE_CHG_MASK (_PAGE_CHG_MASK | _PAGE_PSE)
 
 /*
@@ -147,6 +147,7 @@
 #endif
 
 #define _PAGE_CACHE_MASK	(_PAGE_PAT | _PAGE_PCD | _PAGE_PWT)
+#define _PAGE_LARGE_CACHE_MASK	(_PAGE_PWT | _PAGE_PCD | _PAGE_PAT_LARGE)
 #define _PAGE_NOCACHE		(cachemode2protval(_PAGE_CACHE_MODE_UC))
 #define _PAGE_CACHE_WP		(cachemode2protval(_PAGE_CACHE_MODE_WP))
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/pkeys.h
+++ linux-ein-5.4.0/arch/x86/include/asm/pkeys.h
@@ -4,6 +4,11 @@
 
 #define ARCH_DEFAULT_PKEY	0
 
+/*
+ * If more than 16 keys are ever supported, a thorough audit
+ * will be necessary to ensure that the types that store key
+ * numbers and masks have sufficient capacity.
+ */
 #define arch_max_pkey() (boot_cpu_has(X86_FEATURE_OSPKE) ? 16 : 1)
 
 extern int arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
--- linux-ein-5.4.0.orig/arch/x86/include/asm/processor.h
+++ linux-ein-5.4.0/arch/x86/include/asm/processor.h
@@ -334,7 +334,7 @@
 #define INVALID_IO_BITMAP_OFFSET	0x8000
 
 struct entry_stack {
-	unsigned long		words[64];
+	char	stack[PAGE_SIZE];
 };
 
 struct entry_stack_page {
@@ -507,15 +507,6 @@
 }
 
 /*
- * Thread-synchronous status.
- *
- * This is different from the flags in that nobody else
- * ever touches our thread-synchronous status, so we don't
- * have to worry about atomic accesses.
- */
-#define TS_COMPAT		0x0002	/* 32bit syscall active (64BIT)*/
-
-/*
  * Set IOPL bits in EFLAGS from given mask
  */
 static inline void native_set_iopl_mask(unsigned mask)
@@ -936,9 +927,11 @@
 #ifdef CONFIG_CPU_SUP_AMD
 extern u16 amd_get_nb_id(int cpu);
 extern u32 amd_get_nodes_per_socket(void);
+extern void amd_clear_divider(void);
 #else
 static inline u16 amd_get_nb_id(int cpu)		{ return 0; }
 static inline u32 amd_get_nodes_per_socket(void)	{ return 0; }
+static inline void amd_clear_divider(void)		{ }
 #endif
 
 static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
@@ -995,4 +988,6 @@
 	TAA_MITIGATION_TSX_DISABLED,
 };
 
+extern bool gds_ucode_mitigated(void);
+
 #endif /* _ASM_X86_PROCESSOR_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/proto.h
+++ linux-ein-5.4.0/arch/x86/include/asm/proto.h
@@ -4,6 +4,8 @@
 
 #include <asm/ldt.h>
 
+struct task_struct;
+
 /* misc architecture specific prototypes */
 
 void syscall_init(void);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/ptrace.h
+++ linux-ein-5.4.0/arch/x86/include/asm/ptrace.h
@@ -309,8 +309,8 @@
 	static const unsigned int argument_offs[] = {
 #ifdef __i386__
 		offsetof(struct pt_regs, ax),
-		offsetof(struct pt_regs, cx),
 		offsetof(struct pt_regs, dx),
+		offsetof(struct pt_regs, cx),
 #define NR_REG_ARGUMENTS 3
 #else
 		offsetof(struct pt_regs, di),
--- linux-ein-5.4.0.orig/arch/x86/include/asm/realmode.h
+++ linux-ein-5.4.0/arch/x86/include/asm/realmode.h
@@ -82,6 +82,7 @@
 }
 
 void reserve_real_mode(void);
+void load_trampoline_pgtable(void);
 
 #endif /* __ASSEMBLY__ */
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/reboot.h
+++ linux-ein-5.4.0/arch/x86/include/asm/reboot.h
@@ -25,6 +25,8 @@
 #define MRR_BIOS	0
 #define MRR_APM		1
 
+void cpu_emergency_disable_virtualization(void);
+
 typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
 void nmi_panic_self_stop(struct pt_regs *regs);
 void nmi_shootdown_cpus(nmi_shootdown_cb callback);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/required-features.h
+++ linux-ein-5.4.0/arch/x86/include/asm/required-features.h
@@ -101,6 +101,8 @@
 #define REQUIRED_MASK16	0
 #define REQUIRED_MASK17	0
 #define REQUIRED_MASK18	0
-#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 19)
+#define REQUIRED_MASK19	0
+#define REQUIRED_MASK20	0
+#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
 
 #endif /* _ASM_X86_REQUIRED_FEATURES_H */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/resctrl_sched.h
+++ linux-ein-5.4.0/arch/x86/include/asm/resctrl_sched.h
@@ -51,24 +51,27 @@
  *   simple as possible.
  * Must be called with preemption disabled.
  */
-static void __resctrl_sched_in(void)
+static inline void __resctrl_sched_in(struct task_struct *tsk)
 {
 	struct resctrl_pqr_state *state = this_cpu_ptr(&pqr_state);
 	u32 closid = state->default_closid;
 	u32 rmid = state->default_rmid;
+	u32 tmp;
 
 	/*
 	 * If this task has a closid/rmid assigned, use it.
 	 * Else use the closid/rmid assigned to this cpu.
 	 */
 	if (static_branch_likely(&rdt_alloc_enable_key)) {
-		if (current->closid)
-			closid = current->closid;
+		tmp = READ_ONCE(tsk->closid);
+		if (tmp)
+			closid = tmp;
 	}
 
 	if (static_branch_likely(&rdt_mon_enable_key)) {
-		if (current->rmid)
-			rmid = current->rmid;
+		tmp = READ_ONCE(tsk->rmid);
+		if (tmp)
+			rmid = tmp;
 	}
 
 	if (closid != state->cur_closid || rmid != state->cur_rmid) {
@@ -78,15 +81,15 @@
 	}
 }
 
-static inline void resctrl_sched_in(void)
+static inline void resctrl_sched_in(struct task_struct *tsk)
 {
 	if (static_branch_likely(&rdt_enable_key))
-		__resctrl_sched_in();
+		__resctrl_sched_in(tsk);
 }
 
 #else
 
-static inline void resctrl_sched_in(void) {}
+static inline void resctrl_sched_in(struct task_struct *tsk) {}
 
 #endif /* CONFIG_X86_CPU_RESCTRL */
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/segment.h
+++ linux-ein-5.4.0/arch/x86/include/asm/segment.h
@@ -31,6 +31,18 @@
  */
 #define SEGMENT_RPL_MASK	0x3
 
+/*
+ * When running on Xen PV, the actual privilege level of the kernel is 1,
+ * not 0. Testing the Requested Privilege Level in a segment selector to
+ * determine whether the context is user mode or kernel mode with
+ * SEGMENT_RPL_MASK is wrong because the PV kernel's privilege level
+ * matches the 0x3 mask.
+ *
+ * Testing with USER_SEGMENT_RPL_MASK is valid for both native and Xen PV
+ * kernels because privilege level 2 is never used.
+ */
+#define USER_SEGMENT_RPL_MASK	0x2
+
 /* User mode is privilege level 3: */
 #define USER_RPL		0x3
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/set_memory.h
+++ linux-ein-5.4.0/arch/x86/include/asm/set_memory.h
@@ -85,28 +85,35 @@
 void set_kernel_text_ro(void);
 
 #ifdef CONFIG_X86_64
-static inline int set_mce_nospec(unsigned long pfn)
+/*
+ * Prevent speculative access to the page by either unmapping
+ * it (if we do not require access to any part of the page) or
+ * marking it uncacheable (if we want to try to retrieve data
+ * from non-poisoned lines in the page).
+ */
+static inline int set_mce_nospec(unsigned long pfn, bool unmap)
 {
 	unsigned long decoy_addr;
 	int rc;
 
 	/*
-	 * Mark the linear address as UC to make sure we don't log more
-	 * errors because of speculative access to the page.
 	 * We would like to just call:
-	 *      set_memory_uc((unsigned long)pfn_to_kaddr(pfn), 1);
+	 *      set_memory_XX((unsigned long)pfn_to_kaddr(pfn), 1);
 	 * but doing that would radically increase the odds of a
 	 * speculative access to the poison page because we'd have
 	 * the virtual address of the kernel 1:1 mapping sitting
 	 * around in registers.
 	 * Instead we get tricky.  We create a non-canonical address
 	 * that looks just like the one we want, but has bit 63 flipped.
-	 * This relies on set_memory_uc() properly sanitizing any __pa()
+	 * This relies on set_memory_XX() properly sanitizing any __pa()
 	 * results with __PHYSICAL_MASK or PTE_PFN_MASK.
 	 */
 	decoy_addr = (pfn << PAGE_SHIFT) + (PAGE_OFFSET ^ BIT(63));
 
-	rc = set_memory_uc(decoy_addr, 1);
+	if (unmap)
+		rc = set_memory_np(decoy_addr, 1);
+	else
+		rc = set_memory_uc(decoy_addr, 1);
 	if (rc)
 		pr_warn("Could not invalidate pfn=0x%lx from 1:1 map\n", pfn);
 	return rc;
--- linux-ein-5.4.0.orig/arch/x86/include/asm/smap.h
+++ linux-ein-5.4.0/arch/x86/include/asm/smap.h
@@ -57,8 +57,10 @@
 {
 	unsigned long flags;
 
-	asm volatile (ALTERNATIVE("", "pushf; pop %0; " __ASM_CLAC,
-				  X86_FEATURE_SMAP)
+	asm volatile ("# smap_save\n\t"
+		      ALTERNATIVE("jmp 1f", "", X86_FEATURE_SMAP)
+		      "pushf; pop %0; " __ASM_CLAC "\n\t"
+		      "1:"
 		      : "=rm" (flags) : : "memory", "cc");
 
 	return flags;
@@ -66,7 +68,10 @@
 
 static __always_inline void smap_restore(unsigned long flags)
 {
-	asm volatile (ALTERNATIVE("", "push %0; popf", X86_FEATURE_SMAP)
+	asm volatile ("# smap_restore\n\t"
+		      ALTERNATIVE("jmp 1f", "", X86_FEATURE_SMAP)
+		      "push %0; popf\n\t"
+		      "1:"
 		      : : "g" (flags) : "memory", "cc");
 }
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/special_insns.h
+++ linux-ein-5.4.0/arch/x86/include/asm/special_insns.h
@@ -10,45 +10,47 @@
 #include <linux/jump_label.h>
 
 /*
- * Volatile isn't enough to prevent the compiler from reordering the
- * read/write functions for the control registers and messing everything up.
- * A memory clobber would solve the problem, but would prevent reordering of
- * all loads stores around it, which can hurt performance. Solution is to
- * use a variable and mimic reads and writes to it to enforce serialization
+ * The compiler should not reorder volatile asm statements with respect to each
+ * other: they should execute in program order. However GCC 4.9.x and 5.x have
+ * a bug (which was fixed in 8.1, 7.3 and 6.5) where they might reorder
+ * volatile asm. The write functions are not affected since they have memory
+ * clobbers preventing reordering. To prevent reads from being reordered with
+ * respect to writes, use a dummy memory operand.
  */
-extern unsigned long __force_order;
+
+#define __FORCE_ORDER "m"(*(unsigned int *)0x1000UL)
 
 void native_write_cr0(unsigned long val);
 
 static inline unsigned long native_read_cr0(void)
 {
 	unsigned long val;
-	asm volatile("mov %%cr0,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr0,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 	return val;
 }
 
 static inline unsigned long native_read_cr2(void)
 {
 	unsigned long val;
-	asm volatile("mov %%cr2,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr2,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 	return val;
 }
 
 static inline void native_write_cr2(unsigned long val)
 {
-	asm volatile("mov %0,%%cr2": : "r" (val), "m" (__force_order));
+	asm volatile("mov %0,%%cr2": : "r" (val) : "memory");
 }
 
 static inline unsigned long __native_read_cr3(void)
 {
 	unsigned long val;
-	asm volatile("mov %%cr3,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr3,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 	return val;
 }
 
 static inline void native_write_cr3(unsigned long val)
 {
-	asm volatile("mov %0,%%cr3": : "r" (val), "m" (__force_order));
+	asm volatile("mov %0,%%cr3": : "r" (val) : "memory");
 }
 
 static inline unsigned long native_read_cr4(void)
@@ -63,10 +65,10 @@
 	asm volatile("1: mov %%cr4, %0\n"
 		     "2:\n"
 		     _ASM_EXTABLE(1b, 2b)
-		     : "=r" (val), "=m" (__force_order) : "0" (0));
+		     : "=r" (val) : "0" (0), __FORCE_ORDER);
 #else
 	/* CR4 always exists on x86_64. */
-	asm volatile("mov %%cr4,%0\n\t" : "=r" (val), "=m" (__force_order));
+	asm volatile("mov %%cr4,%0\n\t" : "=r" (val) : __FORCE_ORDER);
 #endif
 	return val;
 }
--- linux-ein-5.4.0.orig/arch/x86/include/asm/stackprotector.h
+++ linux-ein-5.4.0/arch/x86/include/asm/stackprotector.h
@@ -55,8 +55,13 @@
 /*
  * Initialize the stackprotector canary value.
  *
- * NOTE: this must only be called from functions that never return,
+ * NOTE: this must only be called from functions that never return
  * and it must always be inlined.
+ *
+ * In addition, it should be called from a compilation unit for which
+ * stack protector is disabled. Alternatively, the caller should not end
+ * with a function call which gets tail-call optimized as that would
+ * lead to checking a modified canary value.
  */
 static __always_inline void boot_init_stack_canary(void)
 {
--- linux-ein-5.4.0.orig/arch/x86/include/asm/suspend_32.h
+++ linux-ein-5.4.0/arch/x86/include/asm/suspend_32.h
@@ -21,7 +21,6 @@
 #endif
 	unsigned long cr0, cr2, cr3, cr4;
 	u64 misc_enable;
-	bool misc_enable_saved;
 	struct saved_msrs saved_msrs;
 	struct desc_ptr gdt_desc;
 	struct desc_ptr idt;
@@ -30,6 +29,7 @@
 	unsigned long tr;
 	unsigned long safety;
 	unsigned long return_address;
+	bool misc_enable_saved;
 } __attribute__((packed));
 
 /* routines for saving/restoring kernel state */
--- linux-ein-5.4.0.orig/arch/x86/include/asm/suspend_64.h
+++ linux-ein-5.4.0/arch/x86/include/asm/suspend_64.h
@@ -14,9 +14,13 @@
  * Image of the saved processor state, used by the low level ACPI suspend to
  * RAM code and by the low level hibernation code.
  *
- * If you modify it, fix arch/x86/kernel/acpi/wakeup_64.S and make sure that
- * __save/__restore_processor_state(), defined in arch/x86/kernel/suspend_64.c,
- * still work as required.
+ * If you modify it, check how it is used in arch/x86/kernel/acpi/wakeup_64.S
+ * and make sure that __save/__restore_processor_state(), defined in
+ * arch/x86/power/cpu.c, still work as required.
+ *
+ * Because the structure is packed, make sure to avoid unaligned members. For
+ * optimisation purposes but also because tools like kmemleak only search for
+ * pointers that are aligned.
  */
 struct saved_context {
 	struct pt_regs regs;
@@ -36,7 +40,6 @@
 
 	unsigned long cr0, cr2, cr3, cr4;
 	u64 misc_enable;
-	bool misc_enable_saved;
 	struct saved_msrs saved_msrs;
 	unsigned long efer;
 	u16 gdt_pad; /* Unused */
@@ -48,6 +51,7 @@
 	unsigned long tr;
 	unsigned long safety;
 	unsigned long return_address;
+	bool misc_enable_saved;
 } __attribute__((packed));
 
 #define loaddebug(thread,register) \
--- linux-ein-5.4.0.orig/arch/x86/include/asm/svm.h
+++ linux-ein-5.4.0/arch/x86/include/asm/svm.h
@@ -119,6 +119,8 @@
 #define V_IGN_TPR_SHIFT 20
 #define V_IGN_TPR_MASK (1 << V_IGN_TPR_SHIFT)
 
+#define V_IRQ_INJECTION_BITS_MASK (V_IRQ_MASK | V_INTR_PRIO_MASK | V_IGN_TPR_MASK)
+
 #define V_INTR_MASKING_SHIFT 24
 #define V_INTR_MASKING_MASK (1 << V_INTR_MASKING_SHIFT)
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/sync_core.h
+++ linux-ein-5.4.0/arch/x86/include/asm/sync_core.h
@@ -16,12 +16,13 @@
 	/* With PTI, we unconditionally serialize before running user code. */
 	if (static_cpu_has(X86_FEATURE_PTI))
 		return;
+
 	/*
-	 * Return from interrupt and NMI is done through iret, which is core
-	 * serializing.
+	 * Even if we're in an interrupt, we might reschedule before returning,
+	 * in which case we could switch to a different thread in the same mm
+	 * and return using SYSRET or SYSEXIT.  Instead of trying to keep
+	 * track of our need to sync the core, just sync right away.
 	 */
-	if (in_irq() || in_nmi())
-		return;
 	sync_core();
 }
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/syscall_wrapper.h
+++ linux-ein-5.4.0/arch/x86/include/asm/syscall_wrapper.h
@@ -6,6 +6,8 @@
 #ifndef _ASM_X86_SYSCALL_WRAPPER_H
 #define _ASM_X86_SYSCALL_WRAPPER_H
 
+struct pt_regs;
+
 /* Mapping of registers to parameters for syscalls on x86-64 and x32 */
 #define SC_X86_64_REGS_TO_ARGS(x, ...)					\
 	__MAP(x,__SC_ARGS						\
@@ -28,13 +30,21 @@
  * kernel/sys_ni.c and SYS_NI in kernel/time/posix-stubs.c to cover this
  * case as well.
  */
+#define __IA32_COMPAT_SYS_STUB0(x, name)				\
+	asmlinkage long __ia32_compat_sys_##name(const struct pt_regs *regs);\
+	ALLOW_ERROR_INJECTION(__ia32_compat_sys_##name, ERRNO);		\
+	asmlinkage long __ia32_compat_sys_##name(const struct pt_regs *regs)\
+	{								\
+		return __se_compat_sys_##name();			\
+	}
+
 #define __IA32_COMPAT_SYS_STUBx(x, name, ...)				\
 	asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs);\
 	ALLOW_ERROR_INJECTION(__ia32_compat_sys##name, ERRNO);		\
 	asmlinkage long __ia32_compat_sys##name(const struct pt_regs *regs)\
 	{								\
 		return __se_compat_sys##name(SC_IA32_REGS_TO_ARGS(x,__VA_ARGS__));\
-	}								\
+	}
 
 #define __IA32_SYS_STUBx(x, name, ...)					\
 	asmlinkage long __ia32_sys##name(const struct pt_regs *regs);	\
@@ -48,16 +58,23 @@
  * To keep the naming coherent, re-define SYSCALL_DEFINE0 to create an alias
  * named __ia32_sys_*()
  */
-#define SYSCALL_DEFINE0(sname)					\
-	SYSCALL_METADATA(_##sname, 0);				\
-	asmlinkage long __x64_sys_##sname(void);		\
-	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);	\
-	SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname);	\
-	asmlinkage long __x64_sys_##sname(void)
-
-#define COND_SYSCALL(name)						\
-	cond_syscall(__x64_sys_##name);					\
-	cond_syscall(__ia32_sys_##name)
+
+#define SYSCALL_DEFINE0(sname)						\
+	SYSCALL_METADATA(_##sname, 0);					\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused);\
+	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);		\
+	SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname);		\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused)
+
+#define COND_SYSCALL(name)							\
+	asmlinkage __weak long __x64_sys_##name(const struct pt_regs *__unused)	\
+	{									\
+		return sys_ni_syscall();					\
+	}									\
+	asmlinkage __weak long __ia32_sys_##name(const struct pt_regs *__unused)\
+	{									\
+		return sys_ni_syscall();					\
+	}
 
 #define SYS_NI(name)							\
 	SYSCALL_ALIAS(__x64_sys_##name, sys_ni_posix_timers);		\
@@ -75,15 +92,24 @@
  * of the x86-64-style parameter ordering of x32 syscalls. The syscalls common
  * with x86_64 obviously do not need such care.
  */
+#define __X32_COMPAT_SYS_STUB0(x, name, ...)				\
+	asmlinkage long __x32_compat_sys_##name(const struct pt_regs *regs);\
+	ALLOW_ERROR_INJECTION(__x32_compat_sys_##name, ERRNO);		\
+	asmlinkage long __x32_compat_sys_##name(const struct pt_regs *regs)\
+	{								\
+		return __se_compat_sys_##name();\
+	}
+
 #define __X32_COMPAT_SYS_STUBx(x, name, ...)				\
 	asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs);\
 	ALLOW_ERROR_INJECTION(__x32_compat_sys##name, ERRNO);		\
 	asmlinkage long __x32_compat_sys##name(const struct pt_regs *regs)\
 	{								\
 		return __se_compat_sys##name(SC_X86_64_REGS_TO_ARGS(x,__VA_ARGS__));\
-	}								\
+	}
 
 #else /* CONFIG_X86_X32 */
+#define __X32_COMPAT_SYS_STUB0(x, name)
 #define __X32_COMPAT_SYS_STUBx(x, name, ...)
 #endif /* CONFIG_X86_X32 */
 
@@ -94,6 +120,17 @@
  * mapping of registers to parameters, we need to generate stubs for each
  * of them.
  */
+#define COMPAT_SYSCALL_DEFINE0(name)					\
+	static long __se_compat_sys_##name(void);			\
+	static inline long __do_compat_sys_##name(void);		\
+	__IA32_COMPAT_SYS_STUB0(x, name)				\
+	__X32_COMPAT_SYS_STUB0(x, name)					\
+	static long __se_compat_sys_##name(void)			\
+	{								\
+		return __do_compat_sys_##name();			\
+	}								\
+	static inline long __do_compat_sys_##name(void)
+
 #define COMPAT_SYSCALL_DEFINEx(x, name, ...)					\
 	static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
 	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
@@ -181,15 +218,19 @@
  * macros to work correctly.
  */
 #ifndef SYSCALL_DEFINE0
-#define SYSCALL_DEFINE0(sname)					\
-	SYSCALL_METADATA(_##sname, 0);				\
-	asmlinkage long __x64_sys_##sname(void);		\
-	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);	\
-	asmlinkage long __x64_sys_##sname(void)
+#define SYSCALL_DEFINE0(sname)						\
+	SYSCALL_METADATA(_##sname, 0);					\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused);\
+	ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO);		\
+	asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused)
 #endif
 
 #ifndef COND_SYSCALL
-#define COND_SYSCALL(name) cond_syscall(__x64_sys_##name)
+#define COND_SYSCALL(name) 							\
+	asmlinkage __weak long __x64_sys_##name(const struct pt_regs *__unused)	\
+	{									\
+		return sys_ni_syscall();					\
+	}
 #endif
 
 #ifndef SYS_NI
@@ -201,7 +242,6 @@
  * For VSYSCALLS, we need to declare these three syscalls with the new
  * pt_regs-based calling convention for in-kernel use.
  */
-struct pt_regs;
 asmlinkage long __x64_sys_getcpu(const struct pt_regs *regs);
 asmlinkage long __x64_sys_gettimeofday(const struct pt_regs *regs);
 asmlinkage long __x64_sys_time(const struct pt_regs *regs);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/thread_info.h
+++ linux-ein-5.4.0/arch/x86/include/asm/thread_info.h
@@ -221,10 +221,31 @@
 
 #endif
 
+/*
+ * Thread-synchronous status.
+ *
+ * This is different from the flags in that nobody else
+ * ever touches our thread-synchronous status, so we don't
+ * have to worry about atomic accesses.
+ */
+#define TS_COMPAT		0x0002	/* 32bit syscall active (64BIT)*/
+
+#ifndef __ASSEMBLY__
 #ifdef CONFIG_COMPAT
 #define TS_I386_REGS_POKED	0x0004	/* regs poked by 32-bit ptracer */
+#define TS_COMPAT_RESTART	0x0008
+
+#define arch_set_restart_data	arch_set_restart_data
+
+static inline void arch_set_restart_data(struct restart_block *restart)
+{
+	struct thread_info *ti = current_thread_info();
+	if (ti->status & TS_COMPAT)
+		ti->status |= TS_COMPAT_RESTART;
+	else
+		ti->status &= ~TS_COMPAT_RESTART;
+}
 #endif
-#ifndef __ASSEMBLY__
 
 #ifdef CONFIG_X86_32
 #define in_ia32_syscall() true
--- linux-ein-5.4.0.orig/arch/x86/include/asm/timex.h
+++ linux-ein-5.4.0/arch/x86/include/asm/timex.h
@@ -5,6 +5,15 @@
 #include <asm/processor.h>
 #include <asm/tsc.h>
 
+static inline unsigned long random_get_entropy(void)
+{
+	if (!IS_ENABLED(CONFIG_X86_TSC) &&
+	    !cpu_feature_enabled(X86_FEATURE_TSC))
+		return random_get_entropy_fallback();
+	return rdtsc();
+}
+#define random_get_entropy random_get_entropy
+
 /* Assume we use the PIT time source for the clock tick */
 #define CLOCK_TICK_RATE		PIT_TICK_RATE
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/topology.h
+++ linux-ein-5.4.0/arch/x86/include/asm/topology.h
@@ -110,6 +110,8 @@
 #define topology_die_id(cpu)			(cpu_data(cpu).cpu_die_id)
 #define topology_core_id(cpu)			(cpu_data(cpu).cpu_core_id)
 
+extern unsigned int __max_die_per_package;
+
 #ifdef CONFIG_SMP
 #define topology_die_cpumask(cpu)		(per_cpu(cpu_die_map, cpu))
 #define topology_core_cpumask(cpu)		(per_cpu(cpu_core_map, cpu))
@@ -118,8 +120,6 @@
 extern unsigned int __max_logical_packages;
 #define topology_max_packages()			(__max_logical_packages)
 
-extern unsigned int __max_die_per_package;
-
 static inline int topology_max_die_per_package(void)
 {
 	return __max_die_per_package;
--- linux-ein-5.4.0.orig/arch/x86/include/asm/tsc.h
+++ linux-ein-5.4.0/arch/x86/include/asm/tsc.h
@@ -22,13 +22,12 @@
 
 static inline cycles_t get_cycles(void)
 {
-#ifndef CONFIG_X86_TSC
-	if (!boot_cpu_has(X86_FEATURE_TSC))
+	if (!IS_ENABLED(CONFIG_X86_TSC) &&
+	    !cpu_feature_enabled(X86_FEATURE_TSC))
 		return 0;
-#endif
-
 	return rdtsc();
 }
+#define get_cycles get_cycles
 
 extern struct system_counterval_t convert_art_to_tsc(u64 art);
 extern struct system_counterval_t convert_art_ns_to_tsc(u64 art_ns);
--- linux-ein-5.4.0.orig/arch/x86/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/x86/include/asm/uaccess.h
@@ -378,18 +378,6 @@
 		     : "=r" (err), ltype(x)				\
 		     : "m" (__m(addr)), "i" (errret), "0" (err))
 
-#define __get_user_asm_nozero(x, addr, err, itype, rtype, ltype, errret)	\
-	asm volatile("\n"						\
-		     "1:	mov"itype" %2,%"rtype"1\n"		\
-		     "2:\n"						\
-		     ".section .fixup,\"ax\"\n"				\
-		     "3:	mov %3,%0\n"				\
-		     "	jmp 2b\n"					\
-		     ".previous\n"					\
-		     _ASM_EXTABLE_UA(1b, 3b)				\
-		     : "=r" (err), ltype(x)				\
-		     : "m" (__m(addr)), "i" (errret), "0" (err))
-
 /*
  * This doesn't do __uaccess_begin/end - the exception handling
  * around it must do that.
@@ -453,6 +441,103 @@
 	__builtin_expect(__gu_err, 0);					\
 })
 
+#ifdef CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT
+#define __try_cmpxchg_user_asm(itype, ltype, _ptr, _pold, _new, label)	({ \
+	bool success;							\
+	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
+	__typeof__(*(_ptr)) __old = *_old;				\
+	__typeof__(*(_ptr)) __new = (_new);				\
+	asm_volatile_goto("\n"						\
+		     "1: " LOCK_PREFIX "cmpxchg"itype" %[new], %[ptr]\n"\
+		     _ASM_EXTABLE_UA(1b, %l[label])			\
+		     : CC_OUT(z) (success),				\
+		       [ptr] "+m" (*_ptr),				\
+		       [old] "+a" (__old)				\
+		     : [new] ltype (__new)				\
+		     : "memory"						\
+		     : label);						\
+	if (unlikely(!success))						\
+		*_old = __old;						\
+	likely(success);					})
+
+#ifdef CONFIG_X86_32
+#define __try_cmpxchg64_user_asm(_ptr, _pold, _new, label)	({	\
+	bool success;							\
+	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
+	__typeof__(*(_ptr)) __old = *_old;				\
+	__typeof__(*(_ptr)) __new = (_new);				\
+	asm_volatile_goto("\n"						\
+		     "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n"		\
+		     _ASM_EXTABLE_UA(1b, %l[label])			\
+		     : CC_OUT(z) (success),				\
+		       "+A" (__old),					\
+		       [ptr] "+m" (*_ptr)				\
+		     : "b" ((u32)__new),				\
+		       "c" ((u32)((u64)__new >> 32))			\
+		     : "memory"						\
+		     : label);						\
+	if (unlikely(!success))						\
+		*_old = __old;						\
+	likely(success);					})
+#endif // CONFIG_X86_32
+#else  // !CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT
+#define __try_cmpxchg_user_asm(itype, ltype, _ptr, _pold, _new, label)	({ \
+	int __err = 0;							\
+	bool success;							\
+	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
+	__typeof__(*(_ptr)) __old = *_old;				\
+	__typeof__(*(_ptr)) __new = (_new);				\
+	asm volatile("\n"						\
+		     "1: " LOCK_PREFIX "cmpxchg"itype" %[new], %[ptr]\n"\
+		     CC_SET(z)						\
+		     "2:\n"						\
+		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_EFAULT_REG,	\
+					   %[errout])			\
+		     : CC_OUT(z) (success),				\
+		       [errout] "+r" (__err),				\
+		       [ptr] "+m" (*_ptr),				\
+		       [old] "+a" (__old)				\
+		     : [new] ltype (__new)				\
+		     : "memory");					\
+	if (unlikely(__err))						\
+		goto label;						\
+	if (unlikely(!success))						\
+		*_old = __old;						\
+	likely(success);					})
+
+#ifdef CONFIG_X86_32
+/*
+ * Unlike the normal CMPXCHG, hardcode ECX for both success/fail and error.
+ * There are only six GPRs available and four (EAX, EBX, ECX, and EDX) are
+ * hardcoded by CMPXCHG8B, leaving only ESI and EDI.  If the compiler uses
+ * both ESI and EDI for the memory operand, compilation will fail if the error
+ * is an input+output as there will be no register available for input.
+ */
+#define __try_cmpxchg64_user_asm(_ptr, _pold, _new, label)	({	\
+	int __result;							\
+	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
+	__typeof__(*(_ptr)) __old = *_old;				\
+	__typeof__(*(_ptr)) __new = (_new);				\
+	asm volatile("\n"						\
+		     "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n"		\
+		     "mov $0, %%ecx\n\t"				\
+		     "setz %%cl\n"					\
+		     "2:\n"						\
+		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_EFAULT_REG, %%ecx) \
+		     : [result]"=c" (__result),				\
+		       "+A" (__old),					\
+		       [ptr] "+m" (*_ptr)				\
+		     : "b" ((u32)__new),				\
+		       "c" ((u32)((u64)__new >> 32))			\
+		     : "memory", "cc");					\
+	if (unlikely(__result < 0))					\
+		goto label;						\
+	if (unlikely(!__result))					\
+		*_old = __old;						\
+	likely(__result);					})
+#endif // CONFIG_X86_32
+#endif // CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT
+
 /* FIXME: this hack is definitely wrong -AK */
 struct __large_struct { unsigned long buf[100]; };
 #define __m(x) (*(struct __large_struct __user *)(x))
@@ -734,6 +819,51 @@
 	if (unlikely(__gu_err)) goto err_label;					\
 } while (0)
 
+extern void __try_cmpxchg_user_wrong_size(void);
+
+#ifndef CONFIG_X86_32
+#define __try_cmpxchg64_user_asm(_ptr, _oldp, _nval, _label)		\
+	__try_cmpxchg_user_asm("q", "r", (_ptr), (_oldp), (_nval), _label)
+#endif
+
+/*
+ * Force the pointer to u<size> to match the size expected by the asm helper.
+ * clang/LLVM compiles all cases and only discards the unused paths after
+ * processing errors, which breaks i386 if the pointer is an 8-byte value.
+ */
+#define unsafe_try_cmpxchg_user(_ptr, _oldp, _nval, _label) ({			\
+	bool __ret;								\
+	__chk_user_ptr(_ptr);							\
+	switch (sizeof(*(_ptr))) {						\
+	case 1:	__ret = __try_cmpxchg_user_asm("b", "q",			\
+					       (__force u8 *)(_ptr), (_oldp),	\
+					       (_nval), _label);		\
+		break;								\
+	case 2:	__ret = __try_cmpxchg_user_asm("w", "r",			\
+					       (__force u16 *)(_ptr), (_oldp),	\
+					       (_nval), _label);		\
+		break;								\
+	case 4:	__ret = __try_cmpxchg_user_asm("l", "r",			\
+					       (__force u32 *)(_ptr), (_oldp),	\
+					       (_nval), _label);		\
+		break;								\
+	case 8:	__ret = __try_cmpxchg64_user_asm((__force u64 *)(_ptr), (_oldp),\
+						 (_nval), _label);		\
+		break;								\
+	default: __try_cmpxchg_user_wrong_size();				\
+	}									\
+	__ret;						})
+
+/* "Returns" 0 on success, 1 on failure, -EFAULT if the access faults. */
+#define __try_cmpxchg_user(_ptr, _oldp, _nval, _label)	({		\
+	int __ret = -EFAULT;						\
+	__uaccess_begin_nospec();					\
+	__ret = !unsafe_try_cmpxchg_user(_ptr, _oldp, _nval, _label);	\
+_label:									\
+	__uaccess_end();						\
+	__ret;								\
+							})
+
 /*
  * We want the unsafe accessors to always be inlined and use
  * the error labels - thus the macro games.
--- linux-ein-5.4.0.orig/arch/x86/include/asm/uaccess_32.h
+++ linux-ein-5.4.0/arch/x86/include/asm/uaccess_32.h
@@ -23,33 +23,6 @@
 static __always_inline unsigned long
 raw_copy_from_user(void *to, const void __user *from, unsigned long n)
 {
-	if (__builtin_constant_p(n)) {
-		unsigned long ret;
-
-		switch (n) {
-		case 1:
-			ret = 0;
-			__uaccess_begin_nospec();
-			__get_user_asm_nozero(*(u8 *)to, from, ret,
-					      "b", "b", "=q", 1);
-			__uaccess_end();
-			return ret;
-		case 2:
-			ret = 0;
-			__uaccess_begin_nospec();
-			__get_user_asm_nozero(*(u16 *)to, from, ret,
-					      "w", "w", "=r", 2);
-			__uaccess_end();
-			return ret;
-		case 4:
-			ret = 0;
-			__uaccess_begin_nospec();
-			__get_user_asm_nozero(*(u32 *)to, from, ret,
-					      "l", "k", "=r", 4);
-			__uaccess_end();
-			return ret;
-		}
-	}
 	return __copy_user_ll(to, (__force const void *)from, n);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/uaccess_64.h
+++ linux-ein-5.4.0/arch/x86/include/asm/uaccess_64.h
@@ -65,117 +65,13 @@
 static __always_inline __must_check unsigned long
 raw_copy_from_user(void *dst, const void __user *src, unsigned long size)
 {
-	int ret = 0;
-
-	if (!__builtin_constant_p(size))
-		return copy_user_generic(dst, (__force void *)src, size);
-	switch (size) {
-	case 1:
-		__uaccess_begin_nospec();
-		__get_user_asm_nozero(*(u8 *)dst, (u8 __user *)src,
-			      ret, "b", "b", "=q", 1);
-		__uaccess_end();
-		return ret;
-	case 2:
-		__uaccess_begin_nospec();
-		__get_user_asm_nozero(*(u16 *)dst, (u16 __user *)src,
-			      ret, "w", "w", "=r", 2);
-		__uaccess_end();
-		return ret;
-	case 4:
-		__uaccess_begin_nospec();
-		__get_user_asm_nozero(*(u32 *)dst, (u32 __user *)src,
-			      ret, "l", "k", "=r", 4);
-		__uaccess_end();
-		return ret;
-	case 8:
-		__uaccess_begin_nospec();
-		__get_user_asm_nozero(*(u64 *)dst, (u64 __user *)src,
-			      ret, "q", "", "=r", 8);
-		__uaccess_end();
-		return ret;
-	case 10:
-		__uaccess_begin_nospec();
-		__get_user_asm_nozero(*(u64 *)dst, (u64 __user *)src,
-			       ret, "q", "", "=r", 10);
-		if (likely(!ret))
-			__get_user_asm_nozero(*(u16 *)(8 + (char *)dst),
-				       (u16 __user *)(8 + (char __user *)src),
-				       ret, "w", "w", "=r", 2);
-		__uaccess_end();
-		return ret;
-	case 16:
-		__uaccess_begin_nospec();
-		__get_user_asm_nozero(*(u64 *)dst, (u64 __user *)src,
-			       ret, "q", "", "=r", 16);
-		if (likely(!ret))
-			__get_user_asm_nozero(*(u64 *)(8 + (char *)dst),
-				       (u64 __user *)(8 + (char __user *)src),
-				       ret, "q", "", "=r", 8);
-		__uaccess_end();
-		return ret;
-	default:
-		return copy_user_generic(dst, (__force void *)src, size);
-	}
+	return copy_user_generic(dst, (__force void *)src, size);
 }
 
 static __always_inline __must_check unsigned long
 raw_copy_to_user(void __user *dst, const void *src, unsigned long size)
 {
-	int ret = 0;
-
-	if (!__builtin_constant_p(size))
-		return copy_user_generic((__force void *)dst, src, size);
-	switch (size) {
-	case 1:
-		__uaccess_begin();
-		__put_user_asm(*(u8 *)src, (u8 __user *)dst,
-			      ret, "b", "b", "iq", 1);
-		__uaccess_end();
-		return ret;
-	case 2:
-		__uaccess_begin();
-		__put_user_asm(*(u16 *)src, (u16 __user *)dst,
-			      ret, "w", "w", "ir", 2);
-		__uaccess_end();
-		return ret;
-	case 4:
-		__uaccess_begin();
-		__put_user_asm(*(u32 *)src, (u32 __user *)dst,
-			      ret, "l", "k", "ir", 4);
-		__uaccess_end();
-		return ret;
-	case 8:
-		__uaccess_begin();
-		__put_user_asm(*(u64 *)src, (u64 __user *)dst,
-			      ret, "q", "", "er", 8);
-		__uaccess_end();
-		return ret;
-	case 10:
-		__uaccess_begin();
-		__put_user_asm(*(u64 *)src, (u64 __user *)dst,
-			       ret, "q", "", "er", 10);
-		if (likely(!ret)) {
-			asm("":::"memory");
-			__put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst,
-				       ret, "w", "w", "ir", 2);
-		}
-		__uaccess_end();
-		return ret;
-	case 16:
-		__uaccess_begin();
-		__put_user_asm(*(u64 *)src, (u64 __user *)dst,
-			       ret, "q", "", "er", 16);
-		if (likely(!ret)) {
-			asm("":::"memory");
-			__put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst,
-				       ret, "q", "", "er", 8);
-		}
-		__uaccess_end();
-		return ret;
-	default:
-		return copy_user_generic((__force void *)dst, src, size);
-	}
+	return copy_user_generic((__force void *)dst, src, size);
 }
 
 static __always_inline __must_check
--- linux-ein-5.4.0.orig/arch/x86/include/asm/unwind.h
+++ linux-ein-5.4.0/arch/x86/include/asm/unwind.h
@@ -19,7 +19,7 @@
 #if defined(CONFIG_UNWINDER_ORC)
 	bool signal, full_regs;
 	unsigned long sp, bp, ip;
-	struct pt_regs *regs;
+	struct pt_regs *regs, *prev_regs;
 #elif defined(CONFIG_UNWINDER_FRAME_POINTER)
 	bool got_irq;
 	unsigned long *bp, *orig_sp, ip;
--- linux-ein-5.4.0.orig/arch/x86/include/asm/virtext.h
+++ linux-ein-5.4.0/arch/x86/include/asm/virtext.h
@@ -30,15 +30,22 @@
 }
 
 
-/** Disable VMX on the current CPU
+/**
+ * cpu_vmxoff() - Disable VMX on the current CPU
  *
- * vmxoff causes a undefined-opcode exception if vmxon was not run
- * on the CPU previously. Only call this function if you know VMX
- * is enabled.
+ * Disable VMX and clear CR4.VMXE (even if VMXOFF faults)
+ *
+ * Note, VMXOFF causes a #UD if the CPU is !post-VMXON, but it's impossible to
+ * atomically track post-VMXON state, e.g. this may be called in NMI context.
+ * Eat all faults as all other faults on VMXOFF faults are mode related, i.e.
+ * faults are guaranteed to be due to the !post-VMXON check unless the CPU is
+ * magically in RM, VM86, compat mode, or at CPL>0.
  */
 static inline void cpu_vmxoff(void)
 {
-	asm volatile ("vmxoff");
+	asm_volatile_goto("1: vmxoff\n\t"
+			  _ASM_EXTABLE(1b, %l[fault]) :::: fault);
+fault:
 	cr4_clear_bits(X86_CR4_VMXE);
 }
 
@@ -88,12 +95,6 @@
 		return 0;
 	}
 
-	if (boot_cpu_data.extended_cpuid_level < SVM_CPUID_FUNC) {
-		if (msg)
-			*msg = "can't execute cpuid_8000000a";
-		return 0;
-	}
-
 	if (!boot_cpu_has(X86_FEATURE_SVM)) {
 		if (msg)
 			*msg = "svm not available";
@@ -113,7 +114,21 @@
 
 	wrmsrl(MSR_VM_HSAVE_PA, 0);
 	rdmsrl(MSR_EFER, efer);
-	wrmsrl(MSR_EFER, efer & ~EFER_SVME);
+	if (efer & EFER_SVME) {
+		/*
+		 * Force GIF=1 prior to disabling SVM to ensure INIT and NMI
+		 * aren't blocked, e.g. if a fatal error occurred between CLGI
+		 * and STGI.  Note, STGI may #UD if SVM is disabled from NMI
+		 * context between reading EFER and executing STGI.  In that
+		 * case, GIF must already be set, otherwise the NMI would have
+		 * been blocked, so just eat the fault.
+		 */
+		asm_volatile_goto("1: stgi\n\t"
+				  _ASM_EXTABLE(1b, %l[fault])
+				  ::: "memory" : fault);
+fault:
+		wrmsrl(MSR_EFER, efer & ~EFER_SVME);
+	}
 }
 
 /** Makes sure SVM is disabled, if it is supported on the CPU
--- linux-ein-5.4.0.orig/arch/x86/include/asm/vmx.h
+++ linux-ein-5.4.0/arch/x86/include/asm/vmx.h
@@ -19,8 +19,8 @@
 /*
  * Definitions of Primary Processor-Based VM-Execution Controls.
  */
-#define CPU_BASED_VIRTUAL_INTR_PENDING          0x00000004
-#define CPU_BASED_USE_TSC_OFFSETING             0x00000008
+#define CPU_BASED_INTR_WINDOW_EXITING           0x00000004
+#define CPU_BASED_USE_TSC_OFFSETTING            0x00000008
 #define CPU_BASED_HLT_EXITING                   0x00000080
 #define CPU_BASED_INVLPG_EXITING                0x00000200
 #define CPU_BASED_MWAIT_EXITING                 0x00000400
@@ -31,7 +31,7 @@
 #define CPU_BASED_CR8_LOAD_EXITING              0x00080000
 #define CPU_BASED_CR8_STORE_EXITING             0x00100000
 #define CPU_BASED_TPR_SHADOW                    0x00200000
-#define CPU_BASED_VIRTUAL_NMI_PENDING		0x00400000
+#define CPU_BASED_NMI_WINDOW_EXITING		0x00400000
 #define CPU_BASED_MOV_DR_EXITING                0x00800000
 #define CPU_BASED_UNCOND_IO_EXITING             0x01000000
 #define CPU_BASED_USE_IO_BITMAPS                0x02000000
--- linux-ein-5.4.0.orig/arch/x86/include/asm/x86_init.h
+++ linux-ein-5.4.0/arch/x86/include/asm/x86_init.h
@@ -51,12 +51,14 @@
  *				are set up.
  * @intr_init:			interrupt init code
  * @trap_init:			platform specific trap setup
+ * @intr_mode_select:		interrupt delivery mode selection
  * @intr_mode_init:		interrupt delivery mode setup
  */
 struct x86_init_irqs {
 	void (*pre_vector_init)(void);
 	void (*intr_init)(void);
 	void (*trap_init)(void);
+	void (*intr_mode_select)(void);
 	void (*intr_mode_init)(void);
 };
 
--- linux-ein-5.4.0.orig/arch/x86/include/asm/xen/interface.h
+++ linux-ein-5.4.0/arch/x86/include/asm/xen/interface.h
@@ -379,12 +379,9 @@
  * Prefix forces emulation of some non-trapping instructions.
  * Currently only CPUID.
  */
-#ifdef __ASSEMBLY__
-#define XEN_EMULATE_PREFIX .byte 0x0f,0x0b,0x78,0x65,0x6e ;
-#define XEN_CPUID          XEN_EMULATE_PREFIX cpuid
-#else
-#define XEN_EMULATE_PREFIX ".byte 0x0f,0x0b,0x78,0x65,0x6e ; "
-#define XEN_CPUID          XEN_EMULATE_PREFIX "cpuid"
-#endif
+#include <asm/emulate_prefix.h>
+
+#define XEN_EMULATE_PREFIX __ASM_FORM(.byte __XEN_EMULATE_PREFIX ;)
+#define XEN_CPUID          XEN_EMULATE_PREFIX __ASM_FORM(cpuid)
 
 #endif /* _ASM_X86_XEN_INTERFACE_H */
--- linux-ein-5.4.0.orig/arch/x86/include/uapi/asm/unistd.h
+++ linux-ein-5.4.0/arch/x86/include/uapi/asm/unistd.h
@@ -2,8 +2,15 @@
 #ifndef _UAPI_ASM_X86_UNISTD_H
 #define _UAPI_ASM_X86_UNISTD_H
 
-/* x32 syscall flag bit */
-#define __X32_SYSCALL_BIT	0x40000000UL
+/*
+ * x32 syscall flag bit.  Some user programs expect syscall NR macros
+ * and __X32_SYSCALL_BIT to have type int, even though syscall numbers
+ * are, for practical purposes, unsigned long.
+ *
+ * Fortunately, expressions like (nr & ~__X32_SYSCALL_BIT) do the right
+ * thing regardless.
+ */
+#define __X32_SYSCALL_BIT	0x40000000
 
 #ifndef __KERNEL__
 # ifdef __i386__
--- linux-ein-5.4.0.orig/arch/x86/include/uapi/asm/vmx.h
+++ linux-ein-5.4.0/arch/x86/include/uapi/asm/vmx.h
@@ -33,7 +33,7 @@
 #define EXIT_REASON_TRIPLE_FAULT        2
 #define EXIT_REASON_INIT_SIGNAL			3
 
-#define EXIT_REASON_PENDING_INTERRUPT   7
+#define EXIT_REASON_INTERRUPT_WINDOW    7
 #define EXIT_REASON_NMI_WINDOW          8
 #define EXIT_REASON_TASK_SWITCH         9
 #define EXIT_REASON_CPUID               10
@@ -94,7 +94,7 @@
 	{ EXIT_REASON_EXTERNAL_INTERRUPT,    "EXTERNAL_INTERRUPT" }, \
 	{ EXIT_REASON_TRIPLE_FAULT,          "TRIPLE_FAULT" }, \
 	{ EXIT_REASON_INIT_SIGNAL,           "INIT_SIGNAL" }, \
-	{ EXIT_REASON_PENDING_INTERRUPT,     "PENDING_INTERRUPT" }, \
+	{ EXIT_REASON_INTERRUPT_WINDOW,      "INTERRUPT_WINDOW" }, \
 	{ EXIT_REASON_NMI_WINDOW,            "NMI_WINDOW" }, \
 	{ EXIT_REASON_TASK_SWITCH,           "TASK_SWITCH" }, \
 	{ EXIT_REASON_CPUID,                 "CPUID" }, \
--- linux-ein-5.4.0.orig/arch/x86/kernel/acpi/boot.c
+++ linux-ein-5.4.0/arch/x86/kernel/acpi/boot.c
@@ -1339,6 +1339,17 @@
 	return 0;
 }
 
+static int __init disable_acpi_xsdt(const struct dmi_system_id *d)
+{
+	if (!acpi_force) {
+		pr_notice("%s detected: force use of acpi=rsdt\n", d->ident);
+		acpi_gbl_do_not_use_xsdt = TRUE;
+	} else {
+		pr_notice("Warning: DMI blacklist says broken, but acpi XSDT forced\n");
+	}
+	return 0;
+}
+
 static int __init dmi_disable_acpi(const struct dmi_system_id *d)
 {
 	if (!acpi_force) {
@@ -1463,6 +1474,19 @@
 		     DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
 		     },
 	 },
+	/*
+	 * Boxes that need ACPI XSDT use disabled due to corrupted tables
+	 */
+	{
+	 .callback = disable_acpi_xsdt,
+	 .ident = "Advantech DAC-BJ01",
+	 .matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "NEC"),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "Bearlake CRB Board"),
+		     DMI_MATCH(DMI_BIOS_VERSION, "V1.12"),
+		     DMI_MATCH(DMI_BIOS_DATE, "02/01/2011"),
+		     },
+	 },
 	{}
 };
 
@@ -1553,10 +1577,18 @@
 	/*
 	 * Initialize the ACPI boot-time table parser.
 	 */
-	if (acpi_table_init()) {
+	if (acpi_locate_initial_tables())
 		disable_acpi();
-		return;
-	}
+	else
+		acpi_reserve_initial_tables();
+}
+
+int __init early_acpi_boot_init(void)
+{
+	if (acpi_disabled)
+		return 1;
+
+	acpi_table_init_complete();
 
 	acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf);
 
@@ -1569,18 +1601,9 @@
 		} else {
 			printk(KERN_WARNING PREFIX "Disabling ACPI support\n");
 			disable_acpi();
-			return;
+			return 1;
 		}
 	}
-}
-
-int __init early_acpi_boot_init(void)
-{
-	/*
-	 * If acpi_disabled, bail out
-	 */
-	if (acpi_disabled)
-		return 1;
 
 	/*
 	 * Process the Multiple APIC Description Table (MADT), if present
@@ -1740,7 +1763,7 @@
 		new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
 		val = cmpxchg(lock, old, new);
 	} while (unlikely (val != old));
-	return (new < 3) ? -1 : 0;
+	return ((new & 0x3) < 3) ? -1 : 0;
 }
 
 int __acpi_release_global_lock(unsigned int *lock)
--- linux-ein-5.4.0.orig/arch/x86/kernel/acpi/cstate.c
+++ linux-ein-5.4.0/arch/x86/kernel/acpi/cstate.c
@@ -161,7 +161,8 @@
 
 	/* Make sure we are running on right CPU */
 
-	retval = work_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx);
+	retval = call_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx,
+			     false);
 	if (retval == 0) {
 		/* Use the hint in CST */
 		percpu_entry->states[cx->index].eax = cx->address;
--- linux-ein-5.4.0.orig/arch/x86/kernel/acpi/wakeup_32.S
+++ linux-ein-5.4.0/arch/x86/kernel/acpi/wakeup_32.S
@@ -3,14 +3,14 @@
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 
 # Copyright 2003, 2008 Pavel Machek <pavel@suse.cz
 
 	.code32
 	ALIGN
 
-ENTRY(wakeup_pmode_return)
-wakeup_pmode_return:
+SYM_CODE_START(wakeup_pmode_return)
 	movw	$__KERNEL_DS, %ax
 	movw	%ax, %ss
 	movw	%ax, %fs
@@ -38,7 +38,9 @@
 
 	# jump to place where we left off
 	movl	saved_eip, %eax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp	*%eax
+SYM_CODE_END(wakeup_pmode_return)
 
 bogus_magic:
 	jmp	bogus_magic
@@ -72,7 +74,7 @@
 	popfl
 	ret
 
-ENTRY(do_suspend_lowlevel)
+SYM_CODE_START(do_suspend_lowlevel)
 	call	save_processor_state
 	call	save_registers
 	pushl	$3
@@ -87,6 +89,7 @@
 	call	restore_registers
 	call	restore_processor_state
 	ret
+SYM_CODE_END(do_suspend_lowlevel)
 
 .data
 ALIGN
--- linux-ein-5.4.0.orig/arch/x86/kernel/acpi/wakeup_64.S
+++ linux-ein-5.4.0/arch/x86/kernel/acpi/wakeup_64.S
@@ -7,6 +7,7 @@
 #include <asm/msr.h>
 #include <asm/asm-offsets.h>
 #include <asm/frame.h>
+#include <asm/nospec-branch.h>
 
 # Copyright 2003 Pavel Machek <pavel@suse.cz
 
@@ -39,6 +40,7 @@
 	movq	saved_rbp, %rbp
 
 	movq	saved_rip, %rax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp	*%rax
 ENDPROC(wakeup_long64)
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/amd_nb.c
+++ linux-ein-5.4.0/arch/x86/kernel/amd_nb.c
@@ -18,10 +18,13 @@
 #define PCI_DEVICE_ID_AMD_17H_ROOT	0x1450
 #define PCI_DEVICE_ID_AMD_17H_M10H_ROOT	0x15d0
 #define PCI_DEVICE_ID_AMD_17H_M30H_ROOT	0x1480
+#define PCI_DEVICE_ID_AMD_17H_M60H_ROOT	0x1630
 #define PCI_DEVICE_ID_AMD_17H_DF_F4	0x1464
 #define PCI_DEVICE_ID_AMD_17H_M10H_DF_F4 0x15ec
 #define PCI_DEVICE_ID_AMD_17H_M30H_DF_F4 0x1494
+#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F4 0x144c
 #define PCI_DEVICE_ID_AMD_17H_M70H_DF_F4 0x1444
+#define PCI_DEVICE_ID_AMD_19H_DF_F4	0x1654
 
 /* Protect the PCI config register pairs used for SMN and DF indirect access. */
 static DEFINE_MUTEX(smn_mutex);
@@ -32,6 +35,7 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_ROOT) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_ROOT) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_ROOT) },
 	{}
 };
 
@@ -50,8 +54,10 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F3) },
 	{}
 };
 EXPORT_SYMBOL_GPL(amd_nb_misc_ids);
@@ -65,7 +71,9 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F4) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F4) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F4) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F4) },
 	{}
 };
--- linux-ein-5.4.0.orig/arch/x86/kernel/aperture_64.c
+++ linux-ein-5.4.0/arch/x86/kernel/aperture_64.c
@@ -126,32 +126,6 @@
 }
 
 
-/* Find a PCI capability */
-static u32 __init find_cap(int bus, int slot, int func, int cap)
-{
-	int bytes;
-	u8 pos;
-
-	if (!(read_pci_config_16(bus, slot, func, PCI_STATUS) &
-						PCI_STATUS_CAP_LIST))
-		return 0;
-
-	pos = read_pci_config_byte(bus, slot, func, PCI_CAPABILITY_LIST);
-	for (bytes = 0; bytes < 48 && pos >= 0x40; bytes++) {
-		u8 id;
-
-		pos &= ~3;
-		id = read_pci_config_byte(bus, slot, func, pos+PCI_CAP_LIST_ID);
-		if (id == 0xff)
-			break;
-		if (id == cap)
-			return pos;
-		pos = read_pci_config_byte(bus, slot, func,
-						pos+PCI_CAP_LIST_NEXT);
-	}
-	return 0;
-}
-
 /* Read a standard AGPv3 bridge header */
 static u32 __init read_agp(int bus, int slot, int func, int cap, u32 *order)
 {
@@ -240,8 +214,8 @@
 				case PCI_CLASS_BRIDGE_HOST:
 				case PCI_CLASS_BRIDGE_OTHER: /* needed? */
 					/* AGP bridge? */
-					cap = find_cap(bus, slot, func,
-							PCI_CAP_ID_AGP);
+					cap = pci_early_find_cap(bus, slot,
+						 func, PCI_CAP_ID_AGP);
 					if (!cap)
 						break;
 					*valid_agp = 1;
--- linux-ein-5.4.0.orig/arch/x86/kernel/apic/apic.c
+++ linux-ein-5.4.0/arch/x86/kernel/apic/apic.c
@@ -42,6 +42,7 @@
 #include <asm/x86_init.h>
 #include <asm/pgalloc.h>
 #include <linux/atomic.h>
+#include <asm/barrier.h>
 #include <asm/mpspec.h>
 #include <asm/i8259.h>
 #include <asm/proto.h>
@@ -167,7 +168,7 @@
 {
 	apic_calibrate_pmtmr = 1;
 	notsc_setup(NULL);
-	return 0;
+	return 1;
 }
 __setup("apicpmtimer", setup_apicpmtimer);
 #endif
@@ -352,8 +353,6 @@
 		 * According to Intel, MFENCE can do the serialization here.
 		 */
 		asm volatile("mfence" : : : "memory");
-
-		printk_once(KERN_DEBUG "TSC deadline timer enabled\n");
 		return;
 	}
 
@@ -411,10 +410,9 @@
 		if (vector && !eilvt_entry_is_changeable(vector, new))
 			/* may not change if vectors are different */
 			return rsvd;
-		rsvd = atomic_cmpxchg(&eilvt_offsets[offset], rsvd, new);
-	} while (rsvd != new);
+	} while (!atomic_try_cmpxchg(&eilvt_offsets[offset], &rsvd, new));
 
-	rsvd &= ~APIC_EILVT_MASKED;
+	rsvd = new & ~APIC_EILVT_MASKED;
 	if (rsvd && rsvd != vector)
 		pr_info("LVT offset %d assigned for vector 0x%02x\n",
 			offset, rsvd);
@@ -474,6 +472,9 @@
 {
 	u64 tsc;
 
+	/* This MSR is special and need a special fence: */
+	weak_wrmsr_fence();
+
 	tsc = rdtsc();
 	wrmsrl(MSR_IA32_TSC_DEADLINE, tsc + (((u64) delta) * TSC_DIVISOR));
 	return 0;
@@ -552,7 +553,7 @@
 #define DEADLINE_MODEL_MATCH_REV(model, rev)	\
 	{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)rev }
 
-static u32 hsx_deadline_rev(void)
+static __init u32 hsx_deadline_rev(void)
 {
 	switch (boot_cpu_data.x86_stepping) {
 	case 0x02: return 0x3a; /* EP */
@@ -562,7 +563,7 @@
 	return ~0U;
 }
 
-static u32 bdx_deadline_rev(void)
+static __init u32 bdx_deadline_rev(void)
 {
 	switch (boot_cpu_data.x86_stepping) {
 	case 0x02: return 0x00000011;
@@ -574,7 +575,7 @@
 	return ~0U;
 }
 
-static u32 skx_deadline_rev(void)
+static __init u32 skx_deadline_rev(void)
 {
 	switch (boot_cpu_data.x86_stepping) {
 	case 0x03: return 0x01000136;
@@ -587,7 +588,7 @@
 	return ~0U;
 }
 
-static const struct x86_cpu_id deadline_match[] = {
+static const struct x86_cpu_id deadline_match[] __initconst = {
 	DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_HASWELL_X,	hsx_deadline_rev),
 	DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X,	0x0b000020),
 	DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_D,	bdx_deadline_rev),
@@ -609,18 +610,19 @@
 	{},
 };
 
-static void apic_check_deadline_errata(void)
+static __init bool apic_validate_deadline_timer(void)
 {
 	const struct x86_cpu_id *m;
 	u32 rev;
 
-	if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER) ||
-	    boot_cpu_has(X86_FEATURE_HYPERVISOR))
-		return;
+	if (!boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER))
+		return false;
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		return true;
 
 	m = x86_match_cpu(deadline_match);
 	if (!m)
-		return;
+		return true;
 
 	/*
 	 * Function pointers will have the MSB set due to address layout,
@@ -632,11 +634,12 @@
 		rev = (u32)m->driver_data;
 
 	if (boot_cpu_data.microcode >= rev)
-		return;
+		return true;
 
 	setup_clear_cpu_cap(X86_FEATURE_TSC_DEADLINE_TIMER);
 	pr_err(FW_BUG "TSC_DEADLINE disabled due to Errata; "
 	       "please update microcode to version: 0x%x (or later)\n", rev);
+	return false;
 }
 
 /*
@@ -830,8 +833,17 @@
 	if (!tsc_khz || !cpu_khz)
 		return true;
 
-	/* Is there an APIC at all? */
-	if (!boot_cpu_has(X86_FEATURE_APIC))
+	/* Is there an APIC at all or is it disabled? */
+	if (!boot_cpu_has(X86_FEATURE_APIC) || disable_apic)
+		return true;
+
+	/*
+	 * If interrupt delivery mode is legacy PIC or virtual wire without
+	 * configuration, the local APIC timer wont be set up. Make sure
+	 * that the PIT is initialized.
+	 */
+	if (apic_intr_mode == APIC_PIC ||
+	    apic_intr_mode == APIC_VIRTUAL_WIRE_NO_CONFIG)
 		return true;
 
 	/* Virt guests may lack ARAT, but still have DEADLINE */
@@ -1322,7 +1334,7 @@
 
 enum apic_intr_mode_id apic_intr_mode __ro_after_init;
 
-static int __init apic_intr_mode_select(void)
+static int __init __apic_intr_mode_select(void)
 {
 	/* Check kernel option */
 	if (disable_apic) {
@@ -1384,6 +1396,12 @@
 	return APIC_SYMMETRIC_IO;
 }
 
+/* Select the interrupt delivery mode for the BSP */
+void __init apic_intr_mode_select(void)
+{
+	apic_intr_mode = __apic_intr_mode_select();
+}
+
 /*
  * An initial setup of the virtual wire mode.
  */
@@ -1440,8 +1458,6 @@
 {
 	bool upmode = IS_ENABLED(CONFIG_UP_LATE_INIT);
 
-	apic_intr_mode = apic_intr_mode_select();
-
 	switch (apic_intr_mode) {
 	case APIC_PIC:
 		pr_info("APIC: Keep in PIC mode(8259)\n");
@@ -1873,20 +1889,22 @@
 		return;
 
 	if (remap_mode != IRQ_REMAP_X2APIC_MODE) {
-		/* IR is required if there is APIC ID > 255 even when running
-		 * under KVM
+		/*
+		 * Using X2APIC without IR is not architecturally supported
+		 * on bare metal but may be supported in guests.
 		 */
-		if (max_physical_apicid > 255 ||
-		    !x86_init.hyper.x2apic_available()) {
+		if (!x86_init.hyper.x2apic_available()) {
 			pr_info("x2apic: IRQ remapping doesn't support X2APIC mode\n");
 			x2apic_disable();
 			return;
 		}
 
 		/*
-		 * without IR all CPUs can be addressed by IOAPIC/MSI
-		 * only in physical mode
+		 * Without IR, all CPUs can be addressed by IOAPIC/MSI only
+		 * in physical mode, and CPUs with an APIC ID that cannnot
+		 * be addressed must not be brought online.
 		 */
+		x2apic_set_max_apicid(255);
 		x2apic_phys = 1;
 	}
 	x2apic_enable();
@@ -2085,7 +2103,8 @@
 {
 	unsigned int new_apicid;
 
-	apic_check_deadline_errata();
+	if (apic_validate_deadline_timer())
+		pr_info("TSC deadline timer available\n");
 
 	if (x2apic_mode) {
 		boot_cpu_physical_apicid = read_apic_id();
@@ -2334,6 +2353,11 @@
 	[0 ... NR_CPUS - 1] = -1,
 };
 
+bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
+{
+	return phys_id == cpuid_to_apicid[cpu];
+}
+
 #ifdef CONFIG_SMP
 /**
  * apic_id_is_primary_thread - Check whether APIC ID belongs to a primary thread
@@ -2554,6 +2578,7 @@
 	end_local_APIC_setup();
 	irq_remap_enable_fault_handling();
 	setup_IO_APIC();
+	lapic_update_legacy_vectors();
 }
 
 #ifdef CONFIG_UP_LATE_INIT
--- linux-ein-5.4.0.orig/arch/x86/kernel/apic/io_apic.c
+++ linux-ein-5.4.0/arch/x86/kernel/apic/io_apic.c
@@ -1046,6 +1046,16 @@
 	if (idx >= 0 && test_bit(mp_irqs[idx].srcbus, mp_bus_not_pci)) {
 		irq = mp_irqs[idx].srcbusirq;
 		legacy = mp_is_legacy_irq(irq);
+		/*
+		 * IRQ2 is unusable for historical reasons on systems which
+		 * have a legacy PIC. See the comment vs. IRQ2 further down.
+		 *
+		 * If this gets removed at some point then the related code
+		 * in lapic_assign_system_vectors() needs to be adjusted as
+		 * well.
+		 */
+		if (legacy && irq == PIC_CASCADE_IR)
+			return -EINVAL;
 	}
 
 	mutex_lock(&ioapic_mutex);
@@ -1727,9 +1737,10 @@
 
 static inline bool ioapic_irqd_mask(struct irq_data *data)
 {
-	/* If we are moving the irq we need to mask it */
+	/* If we are moving the IRQ we need to mask it */
 	if (unlikely(irqd_is_setaffinity_pending(data))) {
-		mask_ioapic_irq(data);
+		if (!irqd_irq_masked(data))
+			mask_ioapic_irq(data);
 		return true;
 	}
 	return false;
@@ -1766,7 +1777,9 @@
 		 */
 		if (!io_apic_level_ack_pending(data->chip_data))
 			irq_move_masked_irq(data);
-		unmask_ioapic_irq(data);
+		/* If the IRQ is masked in the core, leave it: */
+		if (!irqd_irq_masked(data))
+			unmask_ioapic_irq(data);
 	}
 }
 #else
@@ -1948,7 +1961,8 @@
 	.irq_set_affinity	= ioapic_set_affinity,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_get_irqchip_state	= ioapic_irq_get_chip_state,
-	.flags			= IRQCHIP_SKIP_SET_WAKE,
+	.flags			= IRQCHIP_SKIP_SET_WAKE |
+				  IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static struct irq_chip ioapic_ir_chip __read_mostly = {
@@ -1961,7 +1975,8 @@
 	.irq_set_affinity	= ioapic_set_affinity,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_get_irqchip_state	= ioapic_irq_get_chip_state,
-	.flags			= IRQCHIP_SKIP_SET_WAKE,
+	.flags			= IRQCHIP_SKIP_SET_WAKE |
+				  IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static inline void init_IO_APIC_traps(void)
@@ -2253,6 +2268,7 @@
 	legacy_pic->init(0);
 	legacy_pic->make_irq(0);
 	apic_write(APIC_LVT0, APIC_DM_EXTINT);
+	legacy_pic->unmask(0);
 
 	unlock_ExtINT_logic();
 
@@ -2326,12 +2342,12 @@
 	ip->irqdomain = irq_domain_create_linear(fn, hwirqs, cfg->ops,
 						 (void *)(long)ioapic);
 
-	/* Release fw handle if it was allocated above */
-	if (!cfg->dev)
-		irq_domain_free_fwnode(fn);
-
-	if (!ip->irqdomain)
+	if (!ip->irqdomain) {
+		/* Release fw handle if it was allocated above */
+		if (!cfg->dev)
+			irq_domain_free_fwnode(fn);
 		return -ENOMEM;
+	}
 
 	ip->irqdomain->parent = parent;
 
@@ -2345,8 +2361,13 @@
 
 static void ioapic_destroy_irqdomain(int idx)
 {
+	struct ioapic_domain_cfg *cfg = &ioapics[idx].irqdomain_cfg;
+	struct fwnode_handle *fn = ioapics[idx].irqdomain->fwnode;
+
 	if (ioapics[idx].irqdomain) {
 		irq_domain_remove(ioapics[idx].irqdomain);
+		if (!cfg->dev)
+			irq_domain_free_fwnode(fn);
 		ioapics[idx].irqdomain = NULL;
 	}
 }
@@ -2434,17 +2455,21 @@
 
 unsigned int arch_dynirq_lower_bound(unsigned int from)
 {
+	unsigned int ret;
+
 	/*
 	 * dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use
 	 * gsi_top if ioapic_dynirq_base hasn't been initialized yet.
 	 */
-	if (!ioapic_initialized)
-		return gsi_top;
+	ret = ioapic_dynirq_base ? : gsi_top;
+
 	/*
-	 * For DT enabled machines ioapic_dynirq_base is irrelevant and not
-	 * updated. So simply return @from if ioapic_dynirq_base == 0.
+	 * For DT enabled machines ioapic_dynirq_base is irrelevant and
+	 * always 0. gsi_top can be 0 if there is no IO/APIC registered.
+	 * 0 is an invalid interrupt number for dynamic allocations. Return
+	 * @from instead.
 	 */
-	return ioapic_dynirq_base ? : from;
+	return ret ? : from;
 }
 
 #ifdef CONFIG_X86_32
--- linux-ein-5.4.0.orig/arch/x86/kernel/apic/msi.c
+++ linux-ein-5.4.0/arch/x86/kernel/apic/msi.c
@@ -23,10 +23,8 @@
 
 static struct irq_domain *msi_default_domain;
 
-static void irq_msi_compose_msg(struct irq_data *data, struct msi_msg *msg)
+static void __irq_msi_compose_msg(struct irq_cfg *cfg, struct msi_msg *msg)
 {
-	struct irq_cfg *cfg = irqd_cfg(data);
-
 	msg->address_hi = MSI_ADDR_BASE_HI;
 
 	if (x2apic_enabled())
@@ -47,6 +45,129 @@
 		MSI_DATA_VECTOR(cfg->vector);
 }
 
+static void irq_msi_compose_msg(struct irq_data *data, struct msi_msg *msg)
+{
+	__irq_msi_compose_msg(irqd_cfg(data), msg);
+}
+
+static void irq_msi_update_msg(struct irq_data *irqd, struct irq_cfg *cfg)
+{
+	struct msi_msg msg[2] = { [1] = { }, };
+
+	__irq_msi_compose_msg(cfg, msg);
+	irq_data_get_irq_chip(irqd)->irq_write_msi_msg(irqd, msg);
+}
+
+static int
+msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)
+{
+	struct irq_cfg old_cfg, *cfg = irqd_cfg(irqd);
+	struct irq_data *parent = irqd->parent_data;
+	unsigned int cpu;
+	int ret;
+
+	/* Save the current configuration */
+	cpu = cpumask_first(irq_data_get_effective_affinity_mask(irqd));
+	old_cfg = *cfg;
+
+	/* Allocate a new target vector */
+	ret = parent->chip->irq_set_affinity(parent, mask, force);
+	if (ret < 0 || ret == IRQ_SET_MASK_OK_DONE)
+		return ret;
+
+	/*
+	 * For non-maskable and non-remapped MSI interrupts the migration
+	 * to a different destination CPU and a different vector has to be
+	 * done careful to handle the possible stray interrupt which can be
+	 * caused by the non-atomic update of the address/data pair.
+	 *
+	 * Direct update is possible when:
+	 * - The MSI is maskable (remapped MSI does not use this code path)).
+	 *   The quirk bit is not set in this case.
+	 * - The new vector is the same as the old vector
+	 * - The old vector is MANAGED_IRQ_SHUTDOWN_VECTOR (interrupt starts up)
+	 * - The interrupt is not yet started up
+	 * - The new destination CPU is the same as the old destination CPU
+	 */
+	if (!irqd_msi_nomask_quirk(irqd) ||
+	    cfg->vector == old_cfg.vector ||
+	    old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR ||
+	    !irqd_is_started(irqd) ||
+	    cfg->dest_apicid == old_cfg.dest_apicid) {
+		irq_msi_update_msg(irqd, cfg);
+		return ret;
+	}
+
+	/*
+	 * Paranoia: Validate that the interrupt target is the local
+	 * CPU.
+	 */
+	if (WARN_ON_ONCE(cpu != smp_processor_id())) {
+		irq_msi_update_msg(irqd, cfg);
+		return ret;
+	}
+
+	/*
+	 * Redirect the interrupt to the new vector on the current CPU
+	 * first. This might cause a spurious interrupt on this vector if
+	 * the device raises an interrupt right between this update and the
+	 * update to the final destination CPU.
+	 *
+	 * If the vector is in use then the installed device handler will
+	 * denote it as spurious which is no harm as this is a rare event
+	 * and interrupt handlers have to cope with spurious interrupts
+	 * anyway. If the vector is unused, then it is marked so it won't
+	 * trigger the 'No irq handler for vector' warning in do_IRQ().
+	 *
+	 * This requires to hold vector lock to prevent concurrent updates to
+	 * the affected vector.
+	 */
+	lock_vector_lock();
+
+	/*
+	 * Mark the new target vector on the local CPU if it is currently
+	 * unused. Reuse the VECTOR_RETRIGGERED state which is also used in
+	 * the CPU hotplug path for a similar purpose. This cannot be
+	 * undone here as the current CPU has interrupts disabled and
+	 * cannot handle the interrupt before the whole set_affinity()
+	 * section is done. In the CPU unplug case, the current CPU is
+	 * about to vanish and will not handle any interrupts anymore. The
+	 * vector is cleaned up when the CPU comes online again.
+	 */
+	if (IS_ERR_OR_NULL(this_cpu_read(vector_irq[cfg->vector])))
+		this_cpu_write(vector_irq[cfg->vector], VECTOR_RETRIGGERED);
+
+	/* Redirect it to the new vector on the local CPU temporarily */
+	old_cfg.vector = cfg->vector;
+	irq_msi_update_msg(irqd, &old_cfg);
+
+	/* Now transition it to the target CPU */
+	irq_msi_update_msg(irqd, cfg);
+
+	/*
+	 * All interrupts after this point are now targeted at the new
+	 * vector/CPU.
+	 *
+	 * Drop vector lock before testing whether the temporary assignment
+	 * to the local CPU was hit by an interrupt raised in the device,
+	 * because the retrigger function acquires vector lock again.
+	 */
+	unlock_vector_lock();
+
+	/*
+	 * Check whether the transition raced with a device interrupt and
+	 * is pending in the local APICs IRR. It is safe to do this outside
+	 * of vector lock as the irq_desc::lock of this interrupt is still
+	 * held and interrupts are disabled: The check is not accessing the
+	 * underlying vector store. It's just checking the local APIC's
+	 * IRR.
+	 */
+	if (lapic_vector_set_in_irr(cfg->vector))
+		irq_data_get_irq_chip(irqd)->irq_retrigger(irqd);
+
+	return ret;
+}
+
 /*
  * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices,
  * which implement the MSI or MSI-X Capability Structure.
@@ -58,7 +179,9 @@
 	.irq_ack		= irq_chip_ack_parent,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_compose_msi_msg	= irq_msi_compose_msg,
-	.flags			= IRQCHIP_SKIP_SET_WAKE,
+	.irq_set_affinity	= msi_set_affinity,
+	.flags			= IRQCHIP_SKIP_SET_WAKE |
+				  IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 int native_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
@@ -142,10 +265,13 @@
 		msi_default_domain =
 			pci_msi_create_irq_domain(fn, &pci_msi_domain_info,
 						  parent);
-		irq_domain_free_fwnode(fn);
 	}
-	if (!msi_default_domain)
+	if (!msi_default_domain) {
+		irq_domain_free_fwnode(fn);
 		pr_warn("failed to initialize irqdomain for MSI/MSI-x.\n");
+	} else {
+		msi_default_domain->flags |= IRQ_DOMAIN_MSI_NOMASK_QUIRK;
+	}
 }
 
 #ifdef CONFIG_IRQ_REMAP
@@ -156,7 +282,8 @@
 	.irq_ack		= irq_chip_ack_parent,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_set_vcpu_affinity	= irq_chip_set_vcpu_affinity_parent,
-	.flags			= IRQCHIP_SKIP_SET_WAKE,
+	.flags			= IRQCHIP_SKIP_SET_WAKE |
+				  IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static struct msi_domain_info pci_msi_ir_domain_info = {
@@ -178,7 +305,8 @@
 	if (!fn)
 		return NULL;
 	d = pci_msi_create_irq_domain(fn, &pci_msi_ir_domain_info, parent);
-	irq_domain_free_fwnode(fn);
+	if (!d)
+		irq_domain_free_fwnode(fn);
 	return d;
 }
 #endif
@@ -198,7 +326,8 @@
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_compose_msi_msg	= irq_msi_compose_msg,
 	.irq_write_msi_msg	= dmar_msi_write_msg,
-	.flags			= IRQCHIP_SKIP_SET_WAKE,
+	.flags			= IRQCHIP_SKIP_SET_WAKE |
+				  IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static irq_hw_number_t dmar_msi_get_hwirq(struct msi_domain_info *info,
@@ -241,7 +370,8 @@
 	if (fn) {
 		dmar_domain = msi_create_irq_domain(fn, &dmar_msi_domain_info,
 						    x86_vector_domain);
-		irq_domain_free_fwnode(fn);
+		if (!dmar_domain)
+			irq_domain_free_fwnode(fn);
 	}
 out:
 	mutex_unlock(&dmar_lock);
@@ -295,7 +425,7 @@
 	.irq_retrigger = irq_chip_retrigger_hierarchy,
 	.irq_compose_msi_msg = irq_msi_compose_msg,
 	.irq_write_msi_msg = hpet_msi_write_msg,
-	.flags = IRQCHIP_SKIP_SET_WAKE,
+	.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_AFFINITY_PRE_STARTUP,
 };
 
 static irq_hw_number_t hpet_msi_get_hwirq(struct msi_domain_info *info,
@@ -366,7 +496,10 @@
 	}
 
 	d = msi_create_irq_domain(fn, domain_info, parent);
-	irq_domain_free_fwnode(fn);
+	if (!d) {
+		irq_domain_free_fwnode(fn);
+		kfree(domain_info);
+	}
 	return d;
 }
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/apic/vector.c
+++ linux-ein-5.4.0/arch/x86/kernel/apic/vector.c
@@ -272,20 +272,24 @@
 	const struct cpumask *affmsk = irq_data_get_affinity_mask(irqd);
 	int node = irq_data_get_node(irqd);
 
-	if (node == NUMA_NO_NODE)
-		goto all;
-	/* Try the intersection of @affmsk and node mask */
-	cpumask_and(vector_searchmask, cpumask_of_node(node), affmsk);
-	if (!assign_vector_locked(irqd, vector_searchmask))
-		return 0;
-	/* Try the node mask */
-	if (!assign_vector_locked(irqd, cpumask_of_node(node)))
-		return 0;
-all:
+	if (node != NUMA_NO_NODE) {
+		/* Try the intersection of @affmsk and node mask */
+		cpumask_and(vector_searchmask, cpumask_of_node(node), affmsk);
+		if (!assign_vector_locked(irqd, vector_searchmask))
+			return 0;
+	}
+
 	/* Try the full affinity mask */
 	cpumask_and(vector_searchmask, affmsk, cpu_online_mask);
 	if (!assign_vector_locked(irqd, vector_searchmask))
 		return 0;
+
+	if (node != NUMA_NO_NODE) {
+		/* Try the node mask */
+		if (!assign_vector_locked(irqd, cpumask_of_node(node)))
+			return 0;
+	}
+
 	/* Try the full online mask */
 	return assign_vector_locked(irqd, cpu_online_mask);
 }
@@ -446,12 +450,10 @@
 	trace_vector_activate(irqd->irq, apicd->is_managed,
 			      apicd->can_reserve, reserve);
 
-	/* Nothing to do for fixed assigned vectors */
-	if (!apicd->can_reserve && !apicd->is_managed)
-		return 0;
-
 	raw_spin_lock_irqsave(&vector_lock, flags);
-	if (reserve || irqd_is_managed_and_shutdown(irqd))
+	if (!apicd->can_reserve && !apicd->is_managed)
+		assign_irq_vector_any_locked(irqd);
+	else if (reserve || irqd_is_managed_and_shutdown(irqd))
 		vector_assign_managed_shutdown(irqd);
 	else if (apicd->is_managed)
 		ret = activate_managed(irqd);
@@ -556,6 +558,10 @@
 		irqd->chip_data = apicd;
 		irqd->hwirq = virq + i;
 		irqd_set_single_target(irqd);
+
+		/* Don't invoke affinity setter on deactivated interrupts */
+		irqd_set_affinity_on_activate(irqd);
+
 		/*
 		 * Legacy vectors are already assigned when the IOAPIC
 		 * takes them over. They stay on the same vector. This is
@@ -674,6 +680,26 @@
 	irq_matrix_assign_system(vector_matrix, ISA_IRQ_VECTOR(irq), replace);
 }
 
+void __init lapic_update_legacy_vectors(void)
+{
+	unsigned int i;
+
+	if (IS_ENABLED(CONFIG_X86_IO_APIC) && nr_ioapics > 0)
+		return;
+
+	/*
+	 * If the IO/APIC is disabled via config, kernel command line or
+	 * lack of enumeration then all legacy interrupts are routed
+	 * through the PIC. Make sure that they are marked as legacy
+	 * vectors. PIC_CASCADE_IRQ has already been marked in
+	 * lapic_assign_system_vectors().
+	 */
+	for (i = 0; i < nr_legacy_irqs(); i++) {
+		if (i != PIC_CASCADE_IR)
+			lapic_assign_legacy_vector(i, true);
+	}
+}
+
 void __init lapic_assign_system_vectors(void)
 {
 	unsigned int i, vector = 0;
@@ -703,7 +729,6 @@
 	x86_vector_domain = irq_domain_create_tree(fn, &x86_vector_domain_ops,
 						   NULL);
 	BUG_ON(x86_vector_domain == NULL);
-	irq_domain_free_fwnode(fn);
 	irq_set_default_host(x86_vector_domain);
 
 	arch_init_msi_domain(x86_vector_domain);
@@ -769,20 +794,10 @@
 static int apic_set_affinity(struct irq_data *irqd,
 			     const struct cpumask *dest, bool force)
 {
-	struct apic_chip_data *apicd = apic_chip_data(irqd);
 	int err;
 
-	/*
-	 * Core code can call here for inactive interrupts. For inactive
-	 * interrupts which use managed or reservation mode there is no
-	 * point in going through the vector assignment right now as the
-	 * activation will assign a vector which fits the destination
-	 * cpumask. Let the core code store the destination mask and be
-	 * done with it.
-	 */
-	if (!irqd_is_activated(irqd) &&
-	    (apicd->is_managed || apicd->can_reserve))
-		return IRQ_SET_MASK_OK;
+	if (WARN_ON_ONCE(!irqd_is_activated(irqd)))
+		return -EIO;
 
 	raw_spin_lock(&vector_lock);
 	cpumask_and(vector_searchmask, dest, cpu_online_mask);
--- linux-ein-5.4.0.orig/arch/x86/kernel/apic/x2apic_cluster.c
+++ linux-ein-5.4.0/arch/x86/kernel/apic/x2apic_cluster.c
@@ -29,7 +29,8 @@
 {
 	u32 dest = per_cpu(x86_cpu_to_logical_apicid, cpu);
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	__x2apic_send_IPI_dest(dest, vector, APIC_DEST_LOGICAL);
 }
 
@@ -41,7 +42,8 @@
 	unsigned long flags;
 	u32 dest;
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	local_irq_save(flags);
 
 	tmpmsk = this_cpu_cpumask_var_ptr(ipi_mask);
--- linux-ein-5.4.0.orig/arch/x86/kernel/apic/x2apic_phys.c
+++ linux-ein-5.4.0/arch/x86/kernel/apic/x2apic_phys.c
@@ -8,6 +8,12 @@
 int x2apic_phys;
 
 static struct apic apic_x2apic_phys;
+static u32 x2apic_max_apicid __ro_after_init;
+
+void __init x2apic_set_max_apicid(u32 apicid)
+{
+	x2apic_max_apicid = apicid;
+}
 
 static int __init set_x2apic_phys_mode(char *arg)
 {
@@ -37,7 +43,8 @@
 {
 	u32 dest = per_cpu(x86_cpu_to_apicid, cpu);
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	__x2apic_send_IPI_dest(dest, vector, APIC_DEST_PHYSICAL);
 }
 
@@ -48,7 +55,8 @@
 	unsigned long this_cpu;
 	unsigned long flags;
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 
 	local_irq_save(flags);
 
@@ -89,7 +97,10 @@
 
 static int x2apic_phys_probe(void)
 {
-	if (x2apic_mode && (x2apic_phys || x2apic_fadt_phys()))
+	if (!x2apic_mode)
+		return 0;
+
+	if (x2apic_phys || x2apic_fadt_phys())
 		return 1;
 
 	return apic == &apic_x2apic_phys;
@@ -98,6 +109,9 @@
 /* Common x2apic functions, also used by x2apic_cluster */
 int x2apic_apic_id_valid(u32 apicid)
 {
+	if (x2apic_max_apicid && apicid > x2apic_max_apicid)
+		return 0;
+
 	return 1;
 }
 
@@ -116,7 +130,8 @@
 {
 	unsigned long cfg = __prepare_ICR(which, vector, 0);
 
-	x2apic_wrmsr_fence();
+	/* x2apic MSRs are special and need a special fence: */
+	weak_wrmsr_fence();
 	native_x2apic_icr_write(cfg, 0);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/apm_32.c
+++ linux-ein-5.4.0/arch/x86/kernel/apm_32.c
@@ -238,12 +238,6 @@
 #endif
 
 /*
- * The apm_bios device is one of the misc char devices.
- * This is its minor number.
- */
-#define	APM_MINOR_DEV	134
-
-/*
  * Various options can be changed at boot time as follows:
  * (We allow underscores for compatibility with the modules code)
  *	apm=on/off			enable/disable APM
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/amd.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/amd.c
@@ -26,10 +26,6 @@
 
 #include "cpu.h"
 
-static const int amd_erratum_383[];
-static const int amd_erratum_400[];
-static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum);
-
 /*
  * nodes_per_socket: Stores the number of nodes per socket.
  * Refer to Fam15h Models 00-0fh BKDG - CPUID Fn8000_001E_ECX
@@ -37,6 +33,87 @@
  */
 static u32 nodes_per_socket = 1;
 
+/*
+ * AMD errata checking
+ *
+ * Errata are defined as arrays of ints using the AMD_LEGACY_ERRATUM() or
+ * AMD_OSVW_ERRATUM() macros. The latter is intended for newer errata that
+ * have an OSVW id assigned, which it takes as first argument. Both take a
+ * variable number of family-specific model-stepping ranges created by
+ * AMD_MODEL_RANGE().
+ *
+ * Example:
+ *
+ * const int amd_erratum_319[] =
+ *	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0x4, 0x2),
+ *			   AMD_MODEL_RANGE(0x10, 0x8, 0x0, 0x8, 0x0),
+ *			   AMD_MODEL_RANGE(0x10, 0x9, 0x0, 0x9, 0x0));
+ */
+
+#define AMD_LEGACY_ERRATUM(...)		{ -1, __VA_ARGS__, 0 }
+#define AMD_OSVW_ERRATUM(osvw_id, ...)	{ osvw_id, __VA_ARGS__, 0 }
+#define AMD_MODEL_RANGE(f, m_start, s_start, m_end, s_end) \
+	((f << 24) | (m_start << 16) | (s_start << 12) | (m_end << 4) | (s_end))
+#define AMD_MODEL_RANGE_FAMILY(range)	(((range) >> 24) & 0xff)
+#define AMD_MODEL_RANGE_START(range)	(((range) >> 12) & 0xfff)
+#define AMD_MODEL_RANGE_END(range)	((range) & 0xfff)
+
+static const int amd_erratum_400[] =
+	AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf),
+			    AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf));
+
+static const int amd_erratum_383[] =
+	AMD_OSVW_ERRATUM(3, AMD_MODEL_RANGE(0x10, 0, 0, 0xff, 0xf));
+
+/* #1054: Instructions Retired Performance Counter May Be Inaccurate */
+static const int amd_erratum_1054[] =
+	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0, 0, 0x2f, 0xf));
+
+static const int amd_zenbleed[] =
+	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x30, 0x0, 0x4f, 0xf),
+			   AMD_MODEL_RANGE(0x17, 0x60, 0x0, 0x7f, 0xf),
+			   AMD_MODEL_RANGE(0x17, 0x90, 0x0, 0x91, 0xf),
+			   AMD_MODEL_RANGE(0x17, 0xa0, 0x0, 0xaf, 0xf));
+
+static const int amd_div0[] =
+	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x00, 0x0, 0x2f, 0xf),
+			   AMD_MODEL_RANGE(0x17, 0x50, 0x0, 0x5f, 0xf));
+
+static const int amd_erratum_1485[] =
+	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf),
+			   AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf));
+
+static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
+{
+	int osvw_id = *erratum++;
+	u32 range;
+	u32 ms;
+
+	if (osvw_id >= 0 && osvw_id < 65536 &&
+	    cpu_has(cpu, X86_FEATURE_OSVW)) {
+		u64 osvw_len;
+
+		rdmsrl(MSR_AMD64_OSVW_ID_LENGTH, osvw_len);
+		if (osvw_id < osvw_len) {
+			u64 osvw_bits;
+
+			rdmsrl(MSR_AMD64_OSVW_STATUS + (osvw_id >> 6),
+			    osvw_bits);
+			return osvw_bits & (1ULL << (osvw_id & 0x3f));
+		}
+	}
+
+	/* OSVW unavailable or ID unknown, match family-model-stepping range */
+	ms = (cpu->x86_model << 4) | cpu->x86_stepping;
+	while ((range = *erratum++))
+		if ((cpu->x86 == AMD_MODEL_RANGE_FAMILY(range)) &&
+		    (ms >= AMD_MODEL_RANGE_START(range)) &&
+		    (ms <= AMD_MODEL_RANGE_END(range)))
+			return true;
+
+	return false;
+}
+
 static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p)
 {
 	u32 gprs[8] = { 0 };
@@ -204,6 +281,15 @@
 		return;
 	}
 #endif
+	/*
+	 * Work around Erratum 1386.  The XSAVES instruction malfunctions in
+	 * certain circumstances on Zen1/2 uarch, and not all parts have had
+	 * updated microcode at the time of writing (March 2023).
+	 *
+	 * Affected parts all have no supervisor XSAVE states, meaning that
+	 * the XSAVEC instruction (which works fine) is equivalent.
+	 */
+	clear_cpu_cap(c, X86_FEATURE_XSAVES);
 }
 
 static void init_amd_k7(struct cpuinfo_x86 *c)
@@ -334,7 +420,6 @@
  */
 static void amd_get_topology(struct cpuinfo_x86 *c)
 {
-	u8 node_id;
 	int cpu = smp_processor_id();
 
 	/* get information required for multi-node processors */
@@ -344,7 +429,7 @@
 
 		cpuid(0x8000001e, &eax, &ebx, &ecx, &edx);
 
-		node_id  = ecx & 0xff;
+		c->cpu_die_id  = ecx & 0xff;
 
 		if (c->x86 == 0x15)
 			c->cu_id = ebx & 0xff;
@@ -364,15 +449,15 @@
 		if (!err)
 			c->x86_coreid_bits = get_count_order(c->x86_max_cores);
 
-		cacheinfo_amd_init_llc_id(c, cpu, node_id);
+		cacheinfo_amd_init_llc_id(c, cpu);
 
 	} else if (cpu_has(c, X86_FEATURE_NODEID_MSR)) {
 		u64 value;
 
 		rdmsrl(MSR_FAM10H_NODE_ID, value);
-		node_id = value & 7;
+		c->cpu_die_id = value & 7;
 
-		per_cpu(cpu_llc_id, cpu) = node_id;
+		per_cpu(cpu_llc_id, cpu) = c->cpu_die_id;
 	} else
 		return;
 
@@ -397,7 +482,7 @@
 	/* Convert the initial APIC ID into the socket ID */
 	c->phys_proc_id = c->initial_apicid >> bits;
 	/* use socket ID also for last level cache */
-	per_cpu(cpu_llc_id, cpu) = c->phys_proc_id;
+	per_cpu(cpu_llc_id, cpu) = c->cpu_die_id = c->phys_proc_id;
 }
 
 u16 amd_get_nb_id(int cpu)
@@ -545,12 +630,12 @@
 		u32 ecx;
 
 		ecx = cpuid_ecx(0x8000001e);
-		nodes_per_socket = ((ecx >> 8) & 7) + 1;
+		__max_die_per_package = nodes_per_socket = ((ecx >> 8) & 7) + 1;
 	} else if (boot_cpu_has(X86_FEATURE_NODEID_MSR)) {
 		u64 value;
 
 		rdmsrl(MSR_FAM10H_NODE_ID, value);
-		nodes_per_socket = ((value >> 3) & 7) + 1;
+		__max_die_per_package = nodes_per_socket = ((value >> 3) & 7) + 1;
 	}
 
 	if (!boot_cpu_has(X86_FEATURE_AMD_SSBD) &&
@@ -587,7 +672,7 @@
 	 *	      If BIOS has not enabled SME then don't advertise the
 	 *	      SME feature (set in scattered.c).
 	 *   For SEV: If BIOS has not enabled SEV then don't advertise the
-	 *            SEV feature (set in scattered.c).
+	 *            SEV and SEV_ES feature (set in scattered.c).
 	 *
 	 *   In all cases, since support for SME and SEV requires long mode,
 	 *   don't advertise the feature under CONFIG_X86_32.
@@ -615,9 +700,10 @@
 		return;
 
 clear_all:
-		clear_cpu_cap(c, X86_FEATURE_SME);
+		setup_clear_cpu_cap(X86_FEATURE_SME);
 clear_sev:
-		clear_cpu_cap(c, X86_FEATURE_SEV);
+		setup_clear_cpu_cap(X86_FEATURE_SEV);
+		setup_clear_cpu_cap(X86_FEATURE_SEV_ES);
 	}
 }
 
@@ -794,8 +880,6 @@
 		set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH);
 }
 
-#define MSR_AMD64_DE_CFG	0xC0011029
-
 static void init_amd_ln(struct cpuinfo_x86 *c)
 {
 	/*
@@ -894,12 +978,62 @@
 	node_reclaim_distance = 32;
 #endif
 
-	/*
-	 * Fix erratum 1076: CPB feature bit not being set in CPUID.
-	 * Always set it, except when running under a hypervisor.
-	 */
-	if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && !cpu_has(c, X86_FEATURE_CPB))
-		set_cpu_cap(c, X86_FEATURE_CPB);
+	/* Fix up CPUID bits, but only if not virtualised. */
+	if (!cpu_has(c, X86_FEATURE_HYPERVISOR)) {
+
+		/* Erratum 1076: CPB feature bit not being set in CPUID. */
+		if (!cpu_has(c, X86_FEATURE_CPB))
+			set_cpu_cap(c, X86_FEATURE_CPB);
+
+		/*
+		 * Zen3 (Fam19 model < 0x10) parts are not susceptible to
+		 * Branch Type Confusion, but predate the allocation of the
+		 * BTC_NO bit.
+		 */
+		if (c->x86 == 0x19 && !cpu_has(c, X86_FEATURE_BTC_NO))
+			set_cpu_cap(c, X86_FEATURE_BTC_NO);
+	}
+}
+
+static bool cpu_has_zenbleed_microcode(void)
+{
+	u32 good_rev = 0;
+
+	switch (boot_cpu_data.x86_model) {
+	case 0x30 ... 0x3f: good_rev = 0x0830107a; break;
+	case 0x60 ... 0x67: good_rev = 0x0860010b; break;
+	case 0x68 ... 0x6f: good_rev = 0x08608105; break;
+	case 0x70 ... 0x7f: good_rev = 0x08701032; break;
+	case 0xa0 ... 0xaf: good_rev = 0x08a00008; break;
+
+	default:
+		return false;
+		break;
+	}
+
+	if (boot_cpu_data.microcode < good_rev)
+		return false;
+
+	return true;
+}
+
+static void zenbleed_check(struct cpuinfo_x86 *c)
+{
+	if (!cpu_has_amd_erratum(c, amd_zenbleed))
+		return;
+
+	if (cpu_has(c, X86_FEATURE_HYPERVISOR))
+		return;
+
+	if (!cpu_has(c, X86_FEATURE_AVX))
+		return;
+
+	if (!cpu_has_zenbleed_microcode()) {
+		pr_notice_once("Zenbleed: please update your microcode for the most optimal fix\n");
+		msr_set_bit(MSR_AMD64_DE_CFG, MSR_AMD64_DE_CFG_ZEN2_FP_BACKUP_FIX_BIT);
+	} else {
+		msr_clear_bit(MSR_AMD64_DE_CFG, MSR_AMD64_DE_CFG_ZEN2_FP_BACKUP_FIX_BIT);
+	}
 }
 
 static void init_amd(struct cpuinfo_x86 *c)
@@ -956,8 +1090,8 @@
 		 * msr_set_bit() uses the safe accessors, too, even if the MSR
 		 * is not present.
 		 */
-		msr_set_bit(MSR_F10H_DECFG,
-			    MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT);
+		msr_set_bit(MSR_AMD64_DE_CFG,
+			    MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT);
 
 		/* A serializing LFENCE stops RDTSC speculation */
 		set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
@@ -978,6 +1112,24 @@
 	/* AMD CPUs don't reset SS attributes on SYSRET, Xen does. */
 	if (!cpu_has(c, X86_FEATURE_XENPV))
 		set_cpu_bug(c, X86_BUG_SYSRET_SS_ATTRS);
+
+	/*
+	 * Turn on the Instructions Retired free counter on machines not
+	 * susceptible to erratum #1054 "Instructions Retired Performance
+	 * Counter May Be Inaccurate".
+	 */
+	if (cpu_has(c, X86_FEATURE_IRPERF) &&
+	    !cpu_has_amd_erratum(c, amd_erratum_1054))
+		msr_set_bit(MSR_K7_HWCR, MSR_K7_HWCR_IRPERF_EN_BIT);
+
+	check_null_seg_clears_base(c);
+
+	zenbleed_check(c);
+
+	if (cpu_has_amd_erratum(c, amd_div0)) {
+		pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protection.\n");
+		setup_force_cpu_bug(X86_BUG_DIV0);
+	}
 }
 
 #ifdef CONFIG_X86_32
@@ -1073,70 +1225,6 @@
 
 cpu_dev_register(amd_cpu_dev);
 
-/*
- * AMD errata checking
- *
- * Errata are defined as arrays of ints using the AMD_LEGACY_ERRATUM() or
- * AMD_OSVW_ERRATUM() macros. The latter is intended for newer errata that
- * have an OSVW id assigned, which it takes as first argument. Both take a
- * variable number of family-specific model-stepping ranges created by
- * AMD_MODEL_RANGE().
- *
- * Example:
- *
- * const int amd_erratum_319[] =
- *	AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0x4, 0x2),
- *			   AMD_MODEL_RANGE(0x10, 0x8, 0x0, 0x8, 0x0),
- *			   AMD_MODEL_RANGE(0x10, 0x9, 0x0, 0x9, 0x0));
- */
-
-#define AMD_LEGACY_ERRATUM(...)		{ -1, __VA_ARGS__, 0 }
-#define AMD_OSVW_ERRATUM(osvw_id, ...)	{ osvw_id, __VA_ARGS__, 0 }
-#define AMD_MODEL_RANGE(f, m_start, s_start, m_end, s_end) \
-	((f << 24) | (m_start << 16) | (s_start << 12) | (m_end << 4) | (s_end))
-#define AMD_MODEL_RANGE_FAMILY(range)	(((range) >> 24) & 0xff)
-#define AMD_MODEL_RANGE_START(range)	(((range) >> 12) & 0xfff)
-#define AMD_MODEL_RANGE_END(range)	((range) & 0xfff)
-
-static const int amd_erratum_400[] =
-	AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf),
-			    AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf));
-
-static const int amd_erratum_383[] =
-	AMD_OSVW_ERRATUM(3, AMD_MODEL_RANGE(0x10, 0, 0, 0xff, 0xf));
-
-
-static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
-{
-	int osvw_id = *erratum++;
-	u32 range;
-	u32 ms;
-
-	if (osvw_id >= 0 && osvw_id < 65536 &&
-	    cpu_has(cpu, X86_FEATURE_OSVW)) {
-		u64 osvw_len;
-
-		rdmsrl(MSR_AMD64_OSVW_ID_LENGTH, osvw_len);
-		if (osvw_id < osvw_len) {
-			u64 osvw_bits;
-
-			rdmsrl(MSR_AMD64_OSVW_STATUS + (osvw_id >> 6),
-			    osvw_bits);
-			return osvw_bits & (1ULL << (osvw_id & 0x3f));
-		}
-	}
-
-	/* OSVW unavailable or ID unknown, match family-model-stepping range */
-	ms = (cpu->x86_model << 4) | cpu->x86_stepping;
-	while ((range = *erratum++))
-		if ((cpu->x86 == AMD_MODEL_RANGE_FAMILY(range)) &&
-		    (ms >= AMD_MODEL_RANGE_START(range)) &&
-		    (ms <= AMD_MODEL_RANGE_END(range)))
-			return true;
-
-	return false;
-}
-
 void set_dr_addr_mask(unsigned long mask, int dr)
 {
 	if (!boot_cpu_has(X86_FEATURE_BPEXT))
@@ -1155,3 +1243,30 @@
 		break;
 	}
 }
+
+static void zenbleed_check_cpu(void *unused)
+{
+	struct cpuinfo_x86 *c = &cpu_data(smp_processor_id());
+
+	zenbleed_check(c);
+
+	if (!cpu_has(c, X86_FEATURE_HYPERVISOR) &&
+	     cpu_has_amd_erratum(c, amd_erratum_1485))
+		msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
+}
+
+void amd_check_microcode(void)
+{
+	on_each_cpu(zenbleed_check_cpu, NULL, 1);
+}
+
+/*
+ * Issue a DIV 0/1 insn to clear any division data from previous DIV
+ * operations.
+ */
+void noinstr amd_clear_divider(void)
+{
+	asm volatile(ALTERNATIVE("", "div %2\n\t", X86_BUG_DIV0)
+		     :: "a" (0), "d" (0), "r" (1));
+}
+EXPORT_SYMBOL_GPL(amd_clear_divider);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/bugs.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/bugs.c
@@ -9,7 +9,6 @@
  *	- Andrew D. Balsa (code cleanup).
  */
 #include <linux/init.h>
-#include <linux/utsname.h>
 #include <linux/cpu.h>
 #include <linux/module.h>
 #include <linux/nospec.h>
@@ -25,32 +24,69 @@
 #include <asm/msr.h>
 #include <asm/vmx.h>
 #include <asm/paravirt.h>
-#include <asm/alternative.h>
 #include <asm/pgtable.h>
-#include <asm/set_memory.h>
 #include <asm/intel-family.h>
 #include <asm/e820/api.h>
 #include <asm/hypervisor.h>
+#include <linux/bpf.h>
 
 #include "cpu.h"
 
 static void __init spectre_v1_select_mitigation(void);
 static void __init spectre_v2_select_mitigation(void);
+static void __init retbleed_select_mitigation(void);
+static void __init spectre_v2_user_select_mitigation(void);
 static void __init ssb_select_mitigation(void);
 static void __init l1tf_select_mitigation(void);
 static void __init mds_select_mitigation(void);
+static void __init md_clear_update_mitigation(void);
+static void __init md_clear_select_mitigation(void);
 static void __init taa_select_mitigation(void);
+static void __init mmio_select_mitigation(void);
+static void __init srbds_select_mitigation(void);
+static void __init gds_select_mitigation(void);
 
-/* The base value of the SPEC_CTRL MSR that always has to be preserved. */
+/* The base value of the SPEC_CTRL MSR without task-specific bits set */
 u64 x86_spec_ctrl_base;
 EXPORT_SYMBOL_GPL(x86_spec_ctrl_base);
+
+/* The current value of the SPEC_CTRL MSR with task-specific bits set */
+DEFINE_PER_CPU(u64, x86_spec_ctrl_current);
+EXPORT_SYMBOL_GPL(x86_spec_ctrl_current);
+
 static DEFINE_MUTEX(spec_ctrl_mutex);
 
+/* Update SPEC_CTRL MSR and its cached copy unconditionally */
+static void update_spec_ctrl(u64 val)
+{
+	this_cpu_write(x86_spec_ctrl_current, val);
+	wrmsrl(MSR_IA32_SPEC_CTRL, val);
+}
+
 /*
- * The vendor and possibly platform specific bits which can be modified in
- * x86_spec_ctrl_base.
+ * Keep track of the SPEC_CTRL MSR value for the current task, which may differ
+ * from x86_spec_ctrl_base due to STIBP/SSB in __speculation_ctrl_update().
  */
-static u64 __ro_after_init x86_spec_ctrl_mask = SPEC_CTRL_IBRS;
+void update_spec_ctrl_cond(u64 val)
+{
+	if (this_cpu_read(x86_spec_ctrl_current) == val)
+		return;
+
+	this_cpu_write(x86_spec_ctrl_current, val);
+
+	/*
+	 * When KERNEL_IBRS this MSR is written on return-to-user, unless
+	 * forced the update can be delayed until that time.
+	 */
+	if (!cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS))
+		wrmsrl(MSR_IA32_SPEC_CTRL, val);
+}
+
+u64 spec_ctrl_current(void)
+{
+	return this_cpu_read(x86_spec_ctrl_current);
+}
+EXPORT_SYMBOL_GPL(spec_ctrl_current);
 
 /*
  * AMD specific MSR info for Speculative Store Bypass control.
@@ -73,100 +109,61 @@
 DEFINE_STATIC_KEY_FALSE(mds_idle_clear);
 EXPORT_SYMBOL_GPL(mds_idle_clear);
 
-void __init check_bugs(void)
-{
-	identify_boot_cpu();
-
-	/*
-	 * identify_boot_cpu() initialized SMT support information, let the
-	 * core code know.
-	 */
-	cpu_smt_check_topology();
-
-	if (!IS_ENABLED(CONFIG_SMP)) {
-		pr_info("CPU: ");
-		print_cpu_info(&boot_cpu_data);
-	}
+/* Controls CPU Fill buffer clear before KVM guest MMIO accesses */
+DEFINE_STATIC_KEY_FALSE(mmio_stale_data_clear);
+EXPORT_SYMBOL_GPL(mmio_stale_data_clear);
 
+void __init cpu_select_mitigations(void)
+{
 	/*
 	 * Read the SPEC_CTRL MSR to account for reserved bits which may
 	 * have unknown values. AMD64_LS_CFG MSR is cached in the early AMD
 	 * init code as it is not enumerated and depends on the family.
 	 */
-	if (boot_cpu_has(X86_FEATURE_MSR_SPEC_CTRL))
+	if (cpu_feature_enabled(X86_FEATURE_MSR_SPEC_CTRL)) {
 		rdmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
 
-	/* Allow STIBP in MSR_SPEC_CTRL if supported */
-	if (boot_cpu_has(X86_FEATURE_STIBP))
-		x86_spec_ctrl_mask |= SPEC_CTRL_STIBP;
+		/*
+		 * Previously running kernel (kexec), may have some controls
+		 * turned ON. Clear them and let the mitigations setup below
+		 * rediscover them based on configuration.
+		 */
+		x86_spec_ctrl_base &= ~SPEC_CTRL_MITIGATIONS_MASK;
+	}
 
 	/* Select the proper CPU mitigations before patching alternatives: */
 	spectre_v1_select_mitigation();
 	spectre_v2_select_mitigation();
-	ssb_select_mitigation();
-	l1tf_select_mitigation();
-	mds_select_mitigation();
-	taa_select_mitigation();
-
-	arch_smt_update();
-
-#ifdef CONFIG_X86_32
 	/*
-	 * Check whether we are able to run this kernel safely on SMP.
-	 *
-	 * - i386 is no longer supported.
-	 * - In order to run on anything without a TSC, we need to be
-	 *   compiled for a i486.
+	 * retbleed_select_mitigation() relies on the state set by
+	 * spectre_v2_select_mitigation(); specifically it wants to know about
+	 * spectre_v2=ibrs.
 	 */
-	if (boot_cpu_data.x86 < 4)
-		panic("Kernel requires i486+ for 'invlpg' and other features");
-
-	init_utsname()->machine[1] =
-		'0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
-	alternative_instructions();
-
-	fpu__init_check_bugs();
-#else /* CONFIG_X86_64 */
-	alternative_instructions();
-
+	retbleed_select_mitigation();
 	/*
-	 * Make sure the first 2MB area is not mapped by huge pages
-	 * There are typically fixed size MTRRs in there and overlapping
-	 * MTRRs into large pages causes slow downs.
-	 *
-	 * Right now we don't do that with gbpages because there seems
-	 * very little benefit for that case.
+	 * spectre_v2_user_select_mitigation() relies on the state set by
+	 * retbleed_select_mitigation(); specifically the STIBP selection is
+	 * forced for UNRET.
 	 */
-	if (!direct_gbpages)
-		set_memory_4k((unsigned long)__va(0), 1);
-#endif
+	spectre_v2_user_select_mitigation();
+	ssb_select_mitigation();
+	l1tf_select_mitigation();
+	md_clear_select_mitigation();
+	srbds_select_mitigation();
+	gds_select_mitigation();
 }
 
+/*
+ * NOTE: For VMX, this function is not called in the vmexit path.
+ * It uses vmx_spec_ctrl_restore_host() instead.
+ */
 void
 x86_virt_spec_ctrl(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl, bool setguest)
 {
-	u64 msrval, guestval, hostval = x86_spec_ctrl_base;
+	u64 msrval, guestval = guest_spec_ctrl, hostval = spec_ctrl_current();
 	struct thread_info *ti = current_thread_info();
 
-	/* Is MSR_SPEC_CTRL implemented ? */
 	if (static_cpu_has(X86_FEATURE_MSR_SPEC_CTRL)) {
-		/*
-		 * Restrict guest_spec_ctrl to supported values. Clear the
-		 * modifiable bits in the host base value and or the
-		 * modifiable bits from the guest value.
-		 */
-		guestval = hostval & ~x86_spec_ctrl_mask;
-		guestval |= guest_spec_ctrl & x86_spec_ctrl_mask;
-
-		/* SSBD controlled in MSR_SPEC_CTRL */
-		if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
-		    static_cpu_has(X86_FEATURE_AMD_SSBD))
-			hostval |= ssbd_tif_to_spec_ctrl(ti->flags);
-
-		/* Conditional STIBP enabled? */
-		if (static_branch_unlikely(&switch_to_cond_stibp))
-			hostval |= stibp_tif_to_spec_ctrl(ti->flags);
-
 		if (hostval != guestval) {
 			msrval = setguest ? guestval : hostval;
 			wrmsrl(MSR_IA32_SPEC_CTRL, msrval);
@@ -245,8 +242,6 @@
 		    (mds_nosmt || cpu_mitigations_auto_nosmt()))
 			cpu_smt_disable(false);
 	}
-
-	pr_info("%s\n", mds_strings[mds_mitigation]);
 }
 
 static int __init mds_cmdline(char *str)
@@ -296,7 +291,7 @@
 	/* TSX previously disabled by tsx=off */
 	if (!boot_cpu_has(X86_FEATURE_RTM)) {
 		taa_mitigation = TAA_MITIGATION_TSX_DISABLED;
-		goto out;
+		return;
 	}
 
 	if (cpu_mitigations_off()) {
@@ -304,9 +299,13 @@
 		return;
 	}
 
-	/* TAA mitigation is turned off on the cmdline (tsx_async_abort=off) */
-	if (taa_mitigation == TAA_MITIGATION_OFF)
-		goto out;
+	/*
+	 * TAA mitigation via VERW is turned off if both
+	 * tsx_async_abort=off and mds=off are specified.
+	 */
+	if (taa_mitigation == TAA_MITIGATION_OFF &&
+	    mds_mitigation == MDS_MITIGATION_OFF)
+		return;
 
 	if (boot_cpu_has(X86_FEATURE_MD_CLEAR))
 		taa_mitigation = TAA_MITIGATION_VERW;
@@ -338,9 +337,6 @@
 
 	if (taa_nosmt || cpu_mitigations_auto_nosmt())
 		cpu_smt_disable(false);
-
-out:
-	pr_info("%s\n", taa_strings[taa_mitigation]);
 }
 
 static int __init tsx_async_abort_parse_cmdline(char *str)
@@ -365,6 +361,390 @@
 early_param("tsx_async_abort", tsx_async_abort_parse_cmdline);
 
 #undef pr_fmt
+#define pr_fmt(fmt)	"MMIO Stale Data: " fmt
+
+enum mmio_mitigations {
+	MMIO_MITIGATION_OFF,
+	MMIO_MITIGATION_UCODE_NEEDED,
+	MMIO_MITIGATION_VERW,
+};
+
+/* Default mitigation for Processor MMIO Stale Data vulnerabilities */
+static enum mmio_mitigations mmio_mitigation __ro_after_init = MMIO_MITIGATION_VERW;
+static bool mmio_nosmt __ro_after_init = false;
+
+static const char * const mmio_strings[] = {
+	[MMIO_MITIGATION_OFF]		= "Vulnerable",
+	[MMIO_MITIGATION_UCODE_NEEDED]	= "Vulnerable: Clear CPU buffers attempted, no microcode",
+	[MMIO_MITIGATION_VERW]		= "Mitigation: Clear CPU buffers",
+};
+
+static void __init mmio_select_mitigation(void)
+{
+	u64 ia32_cap;
+
+	if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA) ||
+	     boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN) ||
+	     cpu_mitigations_off()) {
+		mmio_mitigation = MMIO_MITIGATION_OFF;
+		return;
+	}
+
+	if (mmio_mitigation == MMIO_MITIGATION_OFF)
+		return;
+
+	ia32_cap = x86_read_arch_cap_msr();
+
+	/*
+	 * Enable CPU buffer clear mitigation for host and VMM, if also affected
+	 * by MDS or TAA. Otherwise, enable mitigation for VMM only.
+	 */
+	if (boot_cpu_has_bug(X86_BUG_MDS) || (boot_cpu_has_bug(X86_BUG_TAA) &&
+					      boot_cpu_has(X86_FEATURE_RTM)))
+		static_branch_enable(&mds_user_clear);
+	else
+		static_branch_enable(&mmio_stale_data_clear);
+
+	/*
+	 * If Processor-MMIO-Stale-Data bug is present and Fill Buffer data can
+	 * be propagated to uncore buffers, clearing the Fill buffers on idle
+	 * is required irrespective of SMT state.
+	 */
+	if (!(ia32_cap & ARCH_CAP_FBSDP_NO))
+		static_branch_enable(&mds_idle_clear);
+
+	/*
+	 * Check if the system has the right microcode.
+	 *
+	 * CPU Fill buffer clear mitigation is enumerated by either an explicit
+	 * FB_CLEAR or by the presence of both MD_CLEAR and L1D_FLUSH on MDS
+	 * affected systems.
+	 */
+	if ((ia32_cap & ARCH_CAP_FB_CLEAR) ||
+	    (boot_cpu_has(X86_FEATURE_MD_CLEAR) &&
+	     boot_cpu_has(X86_FEATURE_FLUSH_L1D) &&
+	     !(ia32_cap & ARCH_CAP_MDS_NO)))
+		mmio_mitigation = MMIO_MITIGATION_VERW;
+	else
+		mmio_mitigation = MMIO_MITIGATION_UCODE_NEEDED;
+
+	if (mmio_nosmt || cpu_mitigations_auto_nosmt())
+		cpu_smt_disable(false);
+}
+
+static int __init mmio_stale_data_parse_cmdline(char *str)
+{
+	if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA))
+		return 0;
+
+	if (!str)
+		return -EINVAL;
+
+	if (!strcmp(str, "off")) {
+		mmio_mitigation = MMIO_MITIGATION_OFF;
+	} else if (!strcmp(str, "full")) {
+		mmio_mitigation = MMIO_MITIGATION_VERW;
+	} else if (!strcmp(str, "full,nosmt")) {
+		mmio_mitigation = MMIO_MITIGATION_VERW;
+		mmio_nosmt = true;
+	}
+
+	return 0;
+}
+early_param("mmio_stale_data", mmio_stale_data_parse_cmdline);
+
+#undef pr_fmt
+#define pr_fmt(fmt)     "" fmt
+
+static void __init md_clear_update_mitigation(void)
+{
+	if (cpu_mitigations_off())
+		return;
+
+	if (!static_key_enabled(&mds_user_clear))
+		goto out;
+
+	/*
+	 * mds_user_clear is now enabled. Update MDS, TAA and MMIO Stale Data
+	 * mitigation, if necessary.
+	 */
+	if (mds_mitigation == MDS_MITIGATION_OFF &&
+	    boot_cpu_has_bug(X86_BUG_MDS)) {
+		mds_mitigation = MDS_MITIGATION_FULL;
+		mds_select_mitigation();
+	}
+	if (taa_mitigation == TAA_MITIGATION_OFF &&
+	    boot_cpu_has_bug(X86_BUG_TAA)) {
+		taa_mitigation = TAA_MITIGATION_VERW;
+		taa_select_mitigation();
+	}
+	if (mmio_mitigation == MMIO_MITIGATION_OFF &&
+	    boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) {
+		mmio_mitigation = MMIO_MITIGATION_VERW;
+		mmio_select_mitigation();
+	}
+out:
+	if (boot_cpu_has_bug(X86_BUG_MDS))
+		pr_info("MDS: %s\n", mds_strings[mds_mitigation]);
+	if (boot_cpu_has_bug(X86_BUG_TAA))
+		pr_info("TAA: %s\n", taa_strings[taa_mitigation]);
+	if (boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA))
+		pr_info("MMIO Stale Data: %s\n", mmio_strings[mmio_mitigation]);
+	else if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN))
+		pr_info("MMIO Stale Data: Unknown: No mitigations\n");
+}
+
+static void __init md_clear_select_mitigation(void)
+{
+	mds_select_mitigation();
+	taa_select_mitigation();
+	mmio_select_mitigation();
+
+	/*
+	 * As MDS, TAA and MMIO Stale Data mitigations are inter-related, update
+	 * and print their mitigation after MDS, TAA and MMIO Stale Data
+	 * mitigation selection is done.
+	 */
+	md_clear_update_mitigation();
+}
+
+#undef pr_fmt
+#define pr_fmt(fmt)	"SRBDS: " fmt
+
+enum srbds_mitigations {
+	SRBDS_MITIGATION_OFF,
+	SRBDS_MITIGATION_UCODE_NEEDED,
+	SRBDS_MITIGATION_FULL,
+	SRBDS_MITIGATION_TSX_OFF,
+	SRBDS_MITIGATION_HYPERVISOR,
+};
+
+static enum srbds_mitigations srbds_mitigation __ro_after_init = SRBDS_MITIGATION_FULL;
+
+static const char * const srbds_strings[] = {
+	[SRBDS_MITIGATION_OFF]		= "Vulnerable",
+	[SRBDS_MITIGATION_UCODE_NEEDED]	= "Vulnerable: No microcode",
+	[SRBDS_MITIGATION_FULL]		= "Mitigation: Microcode",
+	[SRBDS_MITIGATION_TSX_OFF]	= "Mitigation: TSX disabled",
+	[SRBDS_MITIGATION_HYPERVISOR]	= "Unknown: Dependent on hypervisor status",
+};
+
+static bool srbds_off;
+
+void update_srbds_msr(void)
+{
+	u64 mcu_ctrl;
+
+	if (!boot_cpu_has_bug(X86_BUG_SRBDS))
+		return;
+
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		return;
+
+	if (!boot_cpu_has(X86_FEATURE_SRBDS_CTRL))
+		return;
+
+	rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+
+	switch (srbds_mitigation) {
+	case SRBDS_MITIGATION_OFF:
+	case SRBDS_MITIGATION_TSX_OFF:
+		mcu_ctrl |= RNGDS_MITG_DIS;
+		break;
+	case SRBDS_MITIGATION_FULL:
+		mcu_ctrl &= ~RNGDS_MITG_DIS;
+		break;
+	default:
+		break;
+	}
+
+	wrmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+}
+
+static void __init srbds_select_mitigation(void)
+{
+	u64 ia32_cap;
+
+	if (!boot_cpu_has_bug(X86_BUG_SRBDS))
+		return;
+
+	/*
+	 * Check to see if this is one of the MDS_NO systems supporting TSX that
+	 * are only exposed to SRBDS when TSX is enabled or when CPU is affected
+	 * by Processor MMIO Stale Data vulnerability.
+	 */
+	ia32_cap = x86_read_arch_cap_msr();
+	if ((ia32_cap & ARCH_CAP_MDS_NO) && !boot_cpu_has(X86_FEATURE_RTM) &&
+	    !boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA))
+		srbds_mitigation = SRBDS_MITIGATION_TSX_OFF;
+	else if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		srbds_mitigation = SRBDS_MITIGATION_HYPERVISOR;
+	else if (!boot_cpu_has(X86_FEATURE_SRBDS_CTRL))
+		srbds_mitigation = SRBDS_MITIGATION_UCODE_NEEDED;
+	else if (cpu_mitigations_off() || srbds_off)
+		srbds_mitigation = SRBDS_MITIGATION_OFF;
+
+	update_srbds_msr();
+	pr_info("%s\n", srbds_strings[srbds_mitigation]);
+}
+
+static int __init srbds_parse_cmdline(char *str)
+{
+	if (!str)
+		return -EINVAL;
+
+	if (!boot_cpu_has_bug(X86_BUG_SRBDS))
+		return 0;
+
+	srbds_off = !strcmp(str, "off");
+	return 0;
+}
+early_param("srbds", srbds_parse_cmdline);
+
+#undef pr_fmt
+#define pr_fmt(fmt)	"GDS: " fmt
+
+enum gds_mitigations {
+	GDS_MITIGATION_OFF,
+	GDS_MITIGATION_UCODE_NEEDED,
+	GDS_MITIGATION_FORCE,
+	GDS_MITIGATION_FULL,
+	GDS_MITIGATION_FULL_LOCKED,
+	GDS_MITIGATION_HYPERVISOR,
+};
+
+#if IS_ENABLED(CONFIG_GDS_FORCE_MITIGATION)
+static enum gds_mitigations gds_mitigation __ro_after_init = GDS_MITIGATION_FORCE;
+#else
+static enum gds_mitigations gds_mitigation __ro_after_init = GDS_MITIGATION_FULL;
+#endif
+
+static const char * const gds_strings[] = {
+	[GDS_MITIGATION_OFF]		= "Vulnerable",
+	[GDS_MITIGATION_UCODE_NEEDED]	= "Vulnerable: No microcode",
+	[GDS_MITIGATION_FORCE]		= "Mitigation: AVX disabled, no microcode",
+	[GDS_MITIGATION_FULL]		= "Mitigation: Microcode",
+	[GDS_MITIGATION_FULL_LOCKED]	= "Mitigation: Microcode (locked)",
+	[GDS_MITIGATION_HYPERVISOR]	= "Unknown: Dependent on hypervisor status",
+};
+
+bool gds_ucode_mitigated(void)
+{
+	return (gds_mitigation == GDS_MITIGATION_FULL ||
+		gds_mitigation == GDS_MITIGATION_FULL_LOCKED);
+}
+EXPORT_SYMBOL_GPL(gds_ucode_mitigated);
+
+void update_gds_msr(void)
+{
+	u64 mcu_ctrl_after;
+	u64 mcu_ctrl;
+
+	switch (gds_mitigation) {
+	case GDS_MITIGATION_OFF:
+		rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+		mcu_ctrl |= GDS_MITG_DIS;
+		break;
+	case GDS_MITIGATION_FULL_LOCKED:
+		/*
+		 * The LOCKED state comes from the boot CPU. APs might not have
+		 * the same state. Make sure the mitigation is enabled on all
+		 * CPUs.
+		 */
+	case GDS_MITIGATION_FULL:
+		rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+		mcu_ctrl &= ~GDS_MITG_DIS;
+		break;
+	case GDS_MITIGATION_FORCE:
+	case GDS_MITIGATION_UCODE_NEEDED:
+	case GDS_MITIGATION_HYPERVISOR:
+		return;
+	};
+
+	wrmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+
+	/*
+	 * Check to make sure that the WRMSR value was not ignored. Writes to
+	 * GDS_MITG_DIS will be ignored if this processor is locked but the boot
+	 * processor was not.
+	 */
+	rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl_after);
+	WARN_ON_ONCE(mcu_ctrl != mcu_ctrl_after);
+}
+
+static void __init gds_select_mitigation(void)
+{
+	u64 mcu_ctrl;
+
+	if (!boot_cpu_has_bug(X86_BUG_GDS))
+		return;
+
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) {
+		gds_mitigation = GDS_MITIGATION_HYPERVISOR;
+		goto out;
+	}
+
+	if (cpu_mitigations_off())
+		gds_mitigation = GDS_MITIGATION_OFF;
+	/* Will verify below that mitigation _can_ be disabled */
+
+	/* No microcode */
+	if (!(x86_read_arch_cap_msr() & ARCH_CAP_GDS_CTRL)) {
+		if (gds_mitigation == GDS_MITIGATION_FORCE) {
+			/*
+			 * This only needs to be done on the boot CPU so do it
+			 * here rather than in update_gds_msr()
+			 */
+			setup_clear_cpu_cap(X86_FEATURE_AVX);
+			pr_warn("Microcode update needed! Disabling AVX as mitigation.\n");
+		} else {
+			gds_mitigation = GDS_MITIGATION_UCODE_NEEDED;
+		}
+		goto out;
+	}
+
+	/* Microcode has mitigation, use it */
+	if (gds_mitigation == GDS_MITIGATION_FORCE)
+		gds_mitigation = GDS_MITIGATION_FULL;
+
+	rdmsrl(MSR_IA32_MCU_OPT_CTRL, mcu_ctrl);
+	if (mcu_ctrl & GDS_MITG_LOCKED) {
+		if (gds_mitigation == GDS_MITIGATION_OFF)
+			pr_warn("Mitigation locked. Disable failed.\n");
+
+		/*
+		 * The mitigation is selected from the boot CPU. All other CPUs
+		 * _should_ have the same state. If the boot CPU isn't locked
+		 * but others are then update_gds_msr() will WARN() of the state
+		 * mismatch. If the boot CPU is locked update_gds_msr() will
+		 * ensure the other CPUs have the mitigation enabled.
+		 */
+		gds_mitigation = GDS_MITIGATION_FULL_LOCKED;
+	}
+
+	update_gds_msr();
+out:
+	pr_info("%s\n", gds_strings[gds_mitigation]);
+}
+
+static int __init gds_parse_cmdline(char *str)
+{
+	if (!str)
+		return -EINVAL;
+
+	if (!boot_cpu_has_bug(X86_BUG_GDS))
+		return 0;
+
+	if (!strcmp(str, "off"))
+		gds_mitigation = GDS_MITIGATION_OFF;
+	else if (!strcmp(str, "force"))
+		gds_mitigation = GDS_MITIGATION_FORCE;
+
+	return 0;
+}
+early_param("gather_data_sampling", gds_parse_cmdline);
+
+#undef pr_fmt
 #define pr_fmt(fmt)     "Spectre V1 : " fmt
 
 enum spectre_v1_mitigation {
@@ -456,13 +836,106 @@
 }
 early_param("nospectre_v1", nospectre_v1_cmdline);
 
-#undef pr_fmt
-#define pr_fmt(fmt)     "Spectre V2 : " fmt
-
 static enum spectre_v2_mitigation spectre_v2_enabled __ro_after_init =
 	SPECTRE_V2_NONE;
 
-static enum spectre_v2_user_mitigation spectre_v2_user __ro_after_init =
+#undef pr_fmt
+#define pr_fmt(fmt)     "RETBleed: " fmt
+
+enum retbleed_mitigation {
+	RETBLEED_MITIGATION_NONE,
+	RETBLEED_MITIGATION_IBRS,
+	RETBLEED_MITIGATION_EIBRS,
+};
+
+enum retbleed_mitigation_cmd {
+	RETBLEED_CMD_OFF,
+	RETBLEED_CMD_AUTO,
+};
+
+const char * const retbleed_strings[] = {
+	[RETBLEED_MITIGATION_NONE]	= "Vulnerable",
+	[RETBLEED_MITIGATION_IBRS]	= "Mitigation: IBRS",
+	[RETBLEED_MITIGATION_EIBRS]	= "Mitigation: Enhanced IBRS",
+};
+
+static enum retbleed_mitigation retbleed_mitigation __ro_after_init =
+	RETBLEED_MITIGATION_NONE;
+static enum retbleed_mitigation_cmd retbleed_cmd __ro_after_init =
+	RETBLEED_CMD_AUTO;
+
+static int __init retbleed_parse_cmdline(char *str)
+{
+	if (!str)
+		return -EINVAL;
+
+	if (!strcmp(str, "off"))
+		retbleed_cmd = RETBLEED_CMD_OFF;
+	else if (!strcmp(str, "auto"))
+		retbleed_cmd = RETBLEED_CMD_AUTO;
+	else
+		pr_err("Unknown retbleed option (%s). Defaulting to 'auto'\n", str);
+
+	return 0;
+}
+early_param("retbleed", retbleed_parse_cmdline);
+
+#define RETBLEED_UNTRAIN_MSG "WARNING: BTB untrained return thunk mitigation is only effective on AMD/Hygon!\n"
+#define RETBLEED_COMPILER_MSG "WARNING: kernel not compiled with RETPOLINE or -mfunction-return capable compiler!\n"
+#define RETBLEED_INTEL_MSG "WARNING: Spectre v2 mitigation leaves CPU vulnerable to RETBleed attacks, data leaks possible!\n"
+
+static void __init retbleed_select_mitigation(void)
+{
+	if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off())
+		return;
+
+	switch (retbleed_cmd) {
+	case RETBLEED_CMD_OFF:
+		return;
+
+	case RETBLEED_CMD_AUTO:
+	default:
+		/*
+		 * The Intel mitigation (IBRS) was already selected in
+		 * spectre_v2_select_mitigation().
+		 */
+
+		break;
+	}
+
+	switch (retbleed_mitigation) {
+	default:
+		break;
+	}
+
+	/*
+	 * Let IBRS trump all on Intel without affecting the effects of the
+	 * retbleed= cmdline option.
+	 */
+	if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) {
+		switch (spectre_v2_enabled) {
+		case SPECTRE_V2_IBRS:
+			retbleed_mitigation = RETBLEED_MITIGATION_IBRS;
+			break;
+		case SPECTRE_V2_EIBRS:
+		case SPECTRE_V2_EIBRS_RETPOLINE:
+		case SPECTRE_V2_EIBRS_LFENCE:
+			retbleed_mitigation = RETBLEED_MITIGATION_EIBRS;
+			break;
+		default:
+			pr_err(RETBLEED_INTEL_MSG);
+		}
+	}
+
+	pr_info("%s\n", retbleed_strings[retbleed_mitigation]);
+}
+
+#undef pr_fmt
+#define pr_fmt(fmt)     "Spectre V2 : " fmt
+
+static enum spectre_v2_user_mitigation spectre_v2_user_stibp __ro_after_init =
+	SPECTRE_V2_USER_NONE;
+static enum spectre_v2_user_mitigation spectre_v2_user_ibpb __ro_after_init =
 	SPECTRE_V2_USER_NONE;
 
 #ifdef CONFIG_RETPOLINE
@@ -486,6 +959,33 @@
 static inline const char *spectre_v2_module_string(void) { return ""; }
 #endif
 
+#define SPECTRE_V2_LFENCE_MSG "WARNING: LFENCE mitigation is not recommended for this CPU, data leaks possible!\n"
+#define SPECTRE_V2_EIBRS_EBPF_MSG "WARNING: Unprivileged eBPF is enabled with eIBRS on, data leaks possible via Spectre v2 BHB attacks!\n"
+#define SPECTRE_V2_EIBRS_LFENCE_EBPF_SMT_MSG "WARNING: Unprivileged eBPF is enabled with eIBRS+LFENCE mitigation and SMT, data leaks possible via Spectre v2 BHB attacks!\n"
+#define SPECTRE_V2_IBRS_PERF_MSG "WARNING: IBRS mitigation selected on Enhanced IBRS CPU, this may cause unnecessary performance loss\n"
+
+#ifdef CONFIG_BPF_SYSCALL
+void unpriv_ebpf_notify(int new_state)
+{
+	if (new_state)
+		return;
+
+	/* Unprivileged eBPF is enabled */
+
+	switch (spectre_v2_enabled) {
+	case SPECTRE_V2_EIBRS:
+		pr_err(SPECTRE_V2_EIBRS_EBPF_MSG);
+		break;
+	case SPECTRE_V2_EIBRS_LFENCE:
+		if (sched_smt_active())
+			pr_err(SPECTRE_V2_EIBRS_LFENCE_EBPF_SMT_MSG);
+		break;
+	default:
+		break;
+	}
+}
+#endif
+
 static inline bool match_option(const char *arg, int arglen, const char *opt)
 {
 	int len = strlen(opt);
@@ -500,7 +1000,11 @@
 	SPECTRE_V2_CMD_FORCE,
 	SPECTRE_V2_CMD_RETPOLINE,
 	SPECTRE_V2_CMD_RETPOLINE_GENERIC,
-	SPECTRE_V2_CMD_RETPOLINE_AMD,
+	SPECTRE_V2_CMD_RETPOLINE_LFENCE,
+	SPECTRE_V2_CMD_EIBRS,
+	SPECTRE_V2_CMD_EIBRS_RETPOLINE,
+	SPECTRE_V2_CMD_EIBRS_LFENCE,
+	SPECTRE_V2_CMD_IBRS,
 };
 
 enum spectre_v2_user_cmd {
@@ -541,13 +1045,15 @@
 		pr_info("spectre_v2_user=%s forced on command line.\n", reason);
 }
 
+static __ro_after_init enum spectre_v2_mitigation_cmd spectre_v2_cmd;
+
 static enum spectre_v2_user_cmd __init
-spectre_v2_parse_user_cmdline(enum spectre_v2_mitigation_cmd v2_cmd)
+spectre_v2_parse_user_cmdline(void)
 {
 	char arg[20];
 	int ret, i;
 
-	switch (v2_cmd) {
+	switch (spectre_v2_cmd) {
 	case SPECTRE_V2_CMD_NONE:
 		return SPECTRE_V2_USER_CMD_NONE;
 	case SPECTRE_V2_CMD_FORCE:
@@ -573,8 +1079,20 @@
 	return SPECTRE_V2_USER_CMD_AUTO;
 }
 
+static inline bool spectre_v2_in_eibrs_mode(enum spectre_v2_mitigation mode)
+{
+	return mode == SPECTRE_V2_EIBRS ||
+	       mode == SPECTRE_V2_EIBRS_RETPOLINE ||
+	       mode == SPECTRE_V2_EIBRS_LFENCE;
+}
+
+static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
+{
+	return spectre_v2_in_eibrs_mode(mode) || mode == SPECTRE_V2_IBRS;
+}
+
 static void __init
-spectre_v2_user_select_mitigation(enum spectre_v2_mitigation_cmd v2_cmd)
+spectre_v2_user_select_mitigation(void)
 {
 	enum spectre_v2_user_mitigation mode = SPECTRE_V2_USER_NONE;
 	bool smt_possible = IS_ENABLED(CONFIG_SMP);
@@ -587,7 +1105,7 @@
 	    cpu_smt_control == CPU_SMT_NOT_SUPPORTED)
 		smt_possible = false;
 
-	cmd = spectre_v2_parse_user_cmdline(v2_cmd);
+	cmd = spectre_v2_parse_user_cmdline();
 	switch (cmd) {
 	case SPECTRE_V2_USER_CMD_NONE:
 		goto set_mode;
@@ -608,24 +1126,17 @@
 		break;
 	}
 
-	/*
-	 * At this point, an STIBP mode other than "off" has been set.
-	 * If STIBP support is not being forced, check if STIBP always-on
-	 * is preferred.
-	 */
-	if (mode != SPECTRE_V2_USER_STRICT &&
-	    boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON))
-		mode = SPECTRE_V2_USER_STRICT_PREFERRED;
-
 	/* Initialize Indirect Branch Prediction Barrier */
 	if (boot_cpu_has(X86_FEATURE_IBPB)) {
 		setup_force_cpu_cap(X86_FEATURE_USE_IBPB);
 
+		spectre_v2_user_ibpb = mode;
 		switch (cmd) {
 		case SPECTRE_V2_USER_CMD_FORCE:
 		case SPECTRE_V2_USER_CMD_PRCTL_IBPB:
 		case SPECTRE_V2_USER_CMD_SECCOMP_IBPB:
 			static_branch_enable(&switch_mm_always_ibpb);
+			spectre_v2_user_ibpb = SPECTRE_V2_USER_STRICT;
 			break;
 		case SPECTRE_V2_USER_CMD_PRCTL:
 		case SPECTRE_V2_USER_CMD_AUTO:
@@ -641,28 +1152,45 @@
 			"always-on" : "conditional");
 	}
 
-	/* If enhanced IBRS is enabled no STIBP required */
-	if (spectre_v2_enabled == SPECTRE_V2_IBRS_ENHANCED)
+	/*
+	 * If no STIBP, enhanced IBRS is enabled, or SMT impossible, STIBP
+	 * is not required.
+	 *
+	 * Enhanced IBRS also protects against cross-thread branch target
+	 * injection in user-mode as the IBRS bit remains always set which
+	 * implicitly enables cross-thread protections.  However, in legacy IBRS
+	 * mode, the IBRS bit is set only on kernel entry and cleared on return
+	 * to userspace. This disables the implicit cross-thread protection,
+	 * so allow for STIBP to be selected in that case.
+	 */
+	if (!boot_cpu_has(X86_FEATURE_STIBP) ||
+	    !smt_possible ||
+	    spectre_v2_in_eibrs_mode(spectre_v2_enabled))
 		return;
 
 	/*
-	 * If SMT is not possible or STIBP is not available clear the STIBP
-	 * mode.
+	 * At this point, an STIBP mode other than "off" has been set.
+	 * If STIBP support is not being forced, check if STIBP always-on
+	 * is preferred.
 	 */
-	if (!smt_possible || !boot_cpu_has(X86_FEATURE_STIBP))
-		mode = SPECTRE_V2_USER_NONE;
+	if (mode != SPECTRE_V2_USER_STRICT &&
+	    boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON))
+		mode = SPECTRE_V2_USER_STRICT_PREFERRED;
+
+	spectre_v2_user_stibp = mode;
+
 set_mode:
-	spectre_v2_user = mode;
-	/* Only print the STIBP mode when SMT possible */
-	if (smt_possible)
-		pr_info("%s\n", spectre_v2_user_strings[mode]);
+	pr_info("%s\n", spectre_v2_user_strings[mode]);
 }
 
 static const char * const spectre_v2_strings[] = {
 	[SPECTRE_V2_NONE]			= "Vulnerable",
-	[SPECTRE_V2_RETPOLINE_GENERIC]		= "Mitigation: Full generic retpoline",
-	[SPECTRE_V2_RETPOLINE_AMD]		= "Mitigation: Full AMD retpoline",
-	[SPECTRE_V2_IBRS_ENHANCED]		= "Mitigation: Enhanced IBRS",
+	[SPECTRE_V2_RETPOLINE]			= "Mitigation: Retpolines",
+	[SPECTRE_V2_LFENCE]			= "Mitigation: LFENCE",
+	[SPECTRE_V2_EIBRS]			= "Mitigation: Enhanced IBRS",
+	[SPECTRE_V2_EIBRS_LFENCE]		= "Mitigation: Enhanced IBRS + LFENCE",
+	[SPECTRE_V2_EIBRS_RETPOLINE]		= "Mitigation: Enhanced IBRS + Retpolines",
+	[SPECTRE_V2_IBRS]			= "Mitigation: IBRS",
 };
 
 static const struct {
@@ -673,9 +1201,14 @@
 	{ "off",		SPECTRE_V2_CMD_NONE,		  false },
 	{ "on",			SPECTRE_V2_CMD_FORCE,		  true  },
 	{ "retpoline",		SPECTRE_V2_CMD_RETPOLINE,	  false },
-	{ "retpoline,amd",	SPECTRE_V2_CMD_RETPOLINE_AMD,	  false },
+	{ "retpoline,amd",	SPECTRE_V2_CMD_RETPOLINE_LFENCE,  false },
+	{ "retpoline,lfence",	SPECTRE_V2_CMD_RETPOLINE_LFENCE,  false },
 	{ "retpoline,generic",	SPECTRE_V2_CMD_RETPOLINE_GENERIC, false },
+	{ "eibrs",		SPECTRE_V2_CMD_EIBRS,		  false },
+	{ "eibrs,lfence",	SPECTRE_V2_CMD_EIBRS_LFENCE,	  false },
+	{ "eibrs,retpoline",	SPECTRE_V2_CMD_EIBRS_RETPOLINE,	  false },
 	{ "auto",		SPECTRE_V2_CMD_AUTO,		  false },
+	{ "ibrs",		SPECTRE_V2_CMD_IBRS,              false },
 };
 
 static void __init spec_v2_print_cond(const char *reason, bool secure)
@@ -711,17 +1244,48 @@
 	}
 
 	if ((cmd == SPECTRE_V2_CMD_RETPOLINE ||
-	     cmd == SPECTRE_V2_CMD_RETPOLINE_AMD ||
-	     cmd == SPECTRE_V2_CMD_RETPOLINE_GENERIC) &&
+	     cmd == SPECTRE_V2_CMD_RETPOLINE_LFENCE ||
+	     cmd == SPECTRE_V2_CMD_RETPOLINE_GENERIC ||
+	     cmd == SPECTRE_V2_CMD_EIBRS_LFENCE ||
+	     cmd == SPECTRE_V2_CMD_EIBRS_RETPOLINE) &&
 	    !IS_ENABLED(CONFIG_RETPOLINE)) {
-		pr_err("%s selected but not compiled in. Switching to AUTO select\n", mitigation_options[i].option);
+		pr_err("%s selected but not compiled in. Switching to AUTO select\n",
+		       mitigation_options[i].option);
+		return SPECTRE_V2_CMD_AUTO;
+	}
+
+	if ((cmd == SPECTRE_V2_CMD_EIBRS ||
+	     cmd == SPECTRE_V2_CMD_EIBRS_LFENCE ||
+	     cmd == SPECTRE_V2_CMD_EIBRS_RETPOLINE) &&
+	    !boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) {
+		pr_err("%s selected but CPU doesn't have eIBRS. Switching to AUTO select\n",
+		       mitigation_options[i].option);
 		return SPECTRE_V2_CMD_AUTO;
 	}
 
-	if (cmd == SPECTRE_V2_CMD_RETPOLINE_AMD &&
-	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON &&
-	    boot_cpu_data.x86_vendor != X86_VENDOR_AMD) {
-		pr_err("retpoline,amd selected but CPU is not AMD. Switching to AUTO select\n");
+	if ((cmd == SPECTRE_V2_CMD_RETPOLINE_LFENCE ||
+	     cmd == SPECTRE_V2_CMD_EIBRS_LFENCE) &&
+	    !boot_cpu_has(X86_FEATURE_LFENCE_RDTSC)) {
+		pr_err("%s selected, but CPU doesn't have a serializing LFENCE. Switching to AUTO select\n",
+		       mitigation_options[i].option);
+		return SPECTRE_V2_CMD_AUTO;
+	}
+
+	if (cmd == SPECTRE_V2_CMD_IBRS && boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) {
+		pr_err("%s selected but not Intel CPU. Switching to AUTO select\n",
+		       mitigation_options[i].option);
+		return SPECTRE_V2_CMD_AUTO;
+	}
+
+	if (cmd == SPECTRE_V2_CMD_IBRS && !boot_cpu_has(X86_FEATURE_IBRS)) {
+		pr_err("%s selected but CPU doesn't have IBRS. Switching to AUTO select\n",
+		       mitigation_options[i].option);
+		return SPECTRE_V2_CMD_AUTO;
+	}
+
+	if (cmd == SPECTRE_V2_CMD_IBRS && boot_cpu_has(X86_FEATURE_XENPV)) {
+		pr_err("%s selected but running as XenPV guest. Switching to AUTO select\n",
+		       mitigation_options[i].option);
 		return SPECTRE_V2_CMD_AUTO;
 	}
 
@@ -730,6 +1294,79 @@
 	return cmd;
 }
 
+static enum spectre_v2_mitigation __init spectre_v2_select_retpoline(void)
+{
+	if (!IS_ENABLED(CONFIG_RETPOLINE)) {
+		pr_err("Kernel not compiled with retpoline; no mitigation available!");
+		return SPECTRE_V2_NONE;
+	}
+
+	return SPECTRE_V2_RETPOLINE;
+}
+
+/* Disable in-kernel use of non-RSB RET predictors */
+static void __init spec_ctrl_disable_kernel_rrsba(void)
+{
+	u64 ia32_cap;
+
+	if (!boot_cpu_has(X86_FEATURE_RRSBA_CTRL))
+		return;
+
+	ia32_cap = x86_read_arch_cap_msr();
+
+	if (ia32_cap & ARCH_CAP_RRSBA) {
+		x86_spec_ctrl_base |= SPEC_CTRL_RRSBA_DIS_S;
+		update_spec_ctrl(x86_spec_ctrl_base);
+	}
+}
+
+static void __init spectre_v2_determine_rsb_fill_type_at_vmexit(enum spectre_v2_mitigation mode)
+{
+	/*
+	 * Similar to context switches, there are two types of RSB attacks
+	 * after VM exit:
+	 *
+	 * 1) RSB underflow
+	 *
+	 * 2) Poisoned RSB entry
+	 *
+	 * When retpoline is enabled, both are mitigated by filling/clearing
+	 * the RSB.
+	 *
+	 * When IBRS is enabled, while #1 would be mitigated by the IBRS branch
+	 * prediction isolation protections, RSB still needs to be cleared
+	 * because of #2.  Note that SMEP provides no protection here, unlike
+	 * user-space-poisoned RSB entries.
+	 *
+	 * eIBRS should protect against RSB poisoning, but if the EIBRS_PBRSB
+	 * bug is present then a LITE version of RSB protection is required,
+	 * just a single call needs to retire before a RET is executed.
+	 */
+	switch (mode) {
+	case SPECTRE_V2_NONE:
+		return;
+
+	case SPECTRE_V2_EIBRS_LFENCE:
+	case SPECTRE_V2_EIBRS:
+		if (boot_cpu_has_bug(X86_BUG_EIBRS_PBRSB)) {
+			setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT_LITE);
+			pr_info("Spectre v2 / PBRSB-eIBRS: Retire a single CALL on VMEXIT\n");
+		}
+		return;
+
+	case SPECTRE_V2_EIBRS_RETPOLINE:
+	case SPECTRE_V2_RETPOLINE:
+	case SPECTRE_V2_LFENCE:
+	case SPECTRE_V2_IBRS:
+		setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT);
+		pr_info("Spectre v2 / SpectreRSB : Filling RSB on VMEXIT\n");
+		return;
+	}
+
+	pr_warn_once("Unknown Spectre v2 mode, disabling RSB mitigation at VM exit");
+	dump_stack();
+}
+
 static void __init spectre_v2_select_mitigation(void)
 {
 	enum spectre_v2_mitigation_cmd cmd = spectre_v2_parse_cmdline();
@@ -750,86 +1387,161 @@
 	case SPECTRE_V2_CMD_FORCE:
 	case SPECTRE_V2_CMD_AUTO:
 		if (boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) {
-			mode = SPECTRE_V2_IBRS_ENHANCED;
-			/* Force it so VMEXIT will restore correctly */
-			x86_spec_ctrl_base |= SPEC_CTRL_IBRS;
-			wrmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
-			goto specv2_set_mode;
+			mode = SPECTRE_V2_EIBRS;
+			break;
+		}
+
+		if (boot_cpu_has_bug(X86_BUG_RETBLEED) &&
+		    retbleed_cmd != RETBLEED_CMD_OFF &&
+		    boot_cpu_has(X86_FEATURE_IBRS) &&
+		    boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) {
+			mode = SPECTRE_V2_IBRS;
+			break;
 		}
-		if (IS_ENABLED(CONFIG_RETPOLINE))
-			goto retpoline_auto;
+
+		mode = spectre_v2_select_retpoline();
 		break;
-	case SPECTRE_V2_CMD_RETPOLINE_AMD:
-		if (IS_ENABLED(CONFIG_RETPOLINE))
-			goto retpoline_amd;
+
+	case SPECTRE_V2_CMD_RETPOLINE_LFENCE:
+		pr_err(SPECTRE_V2_LFENCE_MSG);
+		mode = SPECTRE_V2_LFENCE;
 		break;
+
 	case SPECTRE_V2_CMD_RETPOLINE_GENERIC:
-		if (IS_ENABLED(CONFIG_RETPOLINE))
-			goto retpoline_generic;
+		mode = SPECTRE_V2_RETPOLINE;
 		break;
+
 	case SPECTRE_V2_CMD_RETPOLINE:
-		if (IS_ENABLED(CONFIG_RETPOLINE))
-			goto retpoline_auto;
+		mode = spectre_v2_select_retpoline();
+		break;
+
+	case SPECTRE_V2_CMD_IBRS:
+		mode = SPECTRE_V2_IBRS;
+		break;
+
+	case SPECTRE_V2_CMD_EIBRS:
+		mode = SPECTRE_V2_EIBRS;
+		break;
+
+	case SPECTRE_V2_CMD_EIBRS_LFENCE:
+		mode = SPECTRE_V2_EIBRS_LFENCE;
+		break;
+
+	case SPECTRE_V2_CMD_EIBRS_RETPOLINE:
+		mode = SPECTRE_V2_EIBRS_RETPOLINE;
 		break;
 	}
-	pr_err("Spectre mitigation: kernel not compiled with retpoline; no mitigation available!");
-	return;
 
-retpoline_auto:
-	if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
-	    boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
-	retpoline_amd:
-		if (!boot_cpu_has(X86_FEATURE_LFENCE_RDTSC)) {
-			pr_err("Spectre mitigation: LFENCE not serializing, switching to generic retpoline\n");
-			goto retpoline_generic;
-		}
-		mode = SPECTRE_V2_RETPOLINE_AMD;
-		setup_force_cpu_cap(X86_FEATURE_RETPOLINE_AMD);
-		setup_force_cpu_cap(X86_FEATURE_RETPOLINE);
-	} else {
-	retpoline_generic:
-		mode = SPECTRE_V2_RETPOLINE_GENERIC;
+	if (mode == SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled())
+		pr_err(SPECTRE_V2_EIBRS_EBPF_MSG);
+
+	if (spectre_v2_in_ibrs_mode(mode)) {
+		x86_spec_ctrl_base |= SPEC_CTRL_IBRS;
+		update_spec_ctrl(x86_spec_ctrl_base);
+	}
+
+	switch (mode) {
+	case SPECTRE_V2_NONE:
+	case SPECTRE_V2_EIBRS:
+		break;
+
+	case SPECTRE_V2_IBRS:
+		setup_force_cpu_cap(X86_FEATURE_KERNEL_IBRS);
+		if (boot_cpu_has(X86_FEATURE_IBRS_ENHANCED))
+			pr_warn(SPECTRE_V2_IBRS_PERF_MSG);
+		break;
+
+	case SPECTRE_V2_LFENCE:
+	case SPECTRE_V2_EIBRS_LFENCE:
+		setup_force_cpu_cap(X86_FEATURE_RETPOLINE_LFENCE);
+		fallthrough;
+
+	case SPECTRE_V2_RETPOLINE:
+	case SPECTRE_V2_EIBRS_RETPOLINE:
 		setup_force_cpu_cap(X86_FEATURE_RETPOLINE);
+		break;
 	}
 
-specv2_set_mode:
+	/*
+	 * Disable alternate RSB predictions in kernel when indirect CALLs and
+	 * JMPs gets protection against BHI and Intramode-BTI, but RET
+	 * prediction from a non-RSB predictor is still a risk.
+	 */
+	if (mode == SPECTRE_V2_EIBRS_LFENCE ||
+	    mode == SPECTRE_V2_EIBRS_RETPOLINE ||
+	    mode == SPECTRE_V2_RETPOLINE)
+		spec_ctrl_disable_kernel_rrsba();
+
 	spectre_v2_enabled = mode;
 	pr_info("%s\n", spectre_v2_strings[mode]);
 
 	/*
-	 * If spectre v2 protection has been enabled, unconditionally fill
-	 * RSB during a context switch; this protects against two independent
-	 * issues:
+	 * If Spectre v2 protection has been enabled, fill the RSB during a
+	 * context switch.  In general there are two types of RSB attacks
+	 * across context switches, for which the CALLs/RETs may be unbalanced.
+	 *
+	 * 1) RSB underflow
+	 *
+	 *    Some Intel parts have "bottomless RSB".  When the RSB is empty,
+	 *    speculated return targets may come from the branch predictor,
+	 *    which could have a user-poisoned BTB or BHB entry.
+	 *
+	 *    AMD has it even worse: *all* returns are speculated from the BTB,
+	 *    regardless of the state of the RSB.
+	 *
+	 *    When IBRS or eIBRS is enabled, the "user -> kernel" attack
+	 *    scenario is mitigated by the IBRS branch prediction isolation
+	 *    properties, so the RSB buffer filling wouldn't be necessary to
+	 *    protect against this type of attack.
+	 *
+	 *    The "user -> user" attack scenario is mitigated by RSB filling.
+	 *
+	 * 2) Poisoned RSB entry
+	 *
+	 *    If the 'next' in-kernel return stack is shorter than 'prev',
+	 *    'next' could be tricked into speculating with a user-poisoned RSB
+	 *    entry.
+	 *
+	 *    The "user -> kernel" attack scenario is mitigated by SMEP and
+	 *    eIBRS.
+	 *
+	 *    The "user -> user" scenario, also known as SpectreBHB, requires
+	 *    RSB clearing.
 	 *
-	 *	- RSB underflow (and switch to BTB) on Skylake+
-	 *	- SpectreRSB variant of spectre v2 on X86_BUG_SPECTRE_V2 CPUs
+	 * So to mitigate all cases, unconditionally fill RSB on context
+	 * switches.
+	 *
+	 * FIXME: Is this pointless for retbleed-affected AMD?
 	 */
 	setup_force_cpu_cap(X86_FEATURE_RSB_CTXSW);
 	pr_info("Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch\n");
 
+	spectre_v2_determine_rsb_fill_type_at_vmexit(mode);
+
 	/*
-	 * Retpoline means the kernel is safe because it has no indirect
-	 * branches. Enhanced IBRS protects firmware too, so, enable restricted
-	 * speculation around firmware calls only when Enhanced IBRS isn't
-	 * supported.
+	 * Retpoline protects the kernel, but doesn't protect firmware.  IBRS
+	 * and Enhanced IBRS protect firmware too, so enable IBRS around
+	 * firmware calls only when IBRS / Enhanced IBRS aren't otherwise
+	 * enabled.
 	 *
 	 * Use "mode" to check Enhanced IBRS instead of boot_cpu_has(), because
 	 * the user might select retpoline on the kernel command line and if
 	 * the CPU supports Enhanced IBRS, kernel might un-intentionally not
 	 * enable IBRS around firmware calls.
 	 */
-	if (boot_cpu_has(X86_FEATURE_IBRS) && mode != SPECTRE_V2_IBRS_ENHANCED) {
+	if (boot_cpu_has(X86_FEATURE_IBRS) && !spectre_v2_in_ibrs_mode(mode)) {
 		setup_force_cpu_cap(X86_FEATURE_USE_IBRS_FW);
 		pr_info("Enabling Restricted Speculation for firmware calls\n");
 	}
 
 	/* Set up IBPB and STIBP depending on the general spectre V2 command */
-	spectre_v2_user_select_mitigation(cmd);
+	spectre_v2_cmd = cmd;
 }
 
 static void update_stibp_msr(void * __unused)
 {
-	wrmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
+	u64 val = spec_ctrl_current() | (x86_spec_ctrl_base & SPEC_CTRL_STIBP);
+	update_spec_ctrl(val);
 }
 
 /* Update x86_spec_ctrl_base in case SMT state changed. */
@@ -864,6 +1576,8 @@
 /* Update the static key controlling the MDS CPU buffer clear in idle */
 static void update_mds_branch_idle(void)
 {
+	u64 ia32_cap = x86_read_arch_cap_msr();
+
 	/*
 	 * Enable the idle clearing if SMT is active on CPUs which are
 	 * affected only by MSBDS and not any other MDS variant.
@@ -875,20 +1589,27 @@
 	if (!boot_cpu_has_bug(X86_BUG_MSBDS_ONLY))
 		return;
 
-	if (sched_smt_active())
+	if (sched_smt_active()) {
 		static_branch_enable(&mds_idle_clear);
-	else
+	} else if (mmio_mitigation == MMIO_MITIGATION_OFF ||
+		   (ia32_cap & ARCH_CAP_FBSDP_NO)) {
 		static_branch_disable(&mds_idle_clear);
+	}
 }
 
 #define MDS_MSG_SMT "MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.\n"
 #define TAA_MSG_SMT "TAA CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html for more details.\n"
+#define MMIO_MSG_SMT "MMIO Stale Data CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/processor_mmio_stale_data.html for more details.\n"
 
 void cpu_bugs_smt_update(void)
 {
 	mutex_lock(&spec_ctrl_mutex);
 
-	switch (spectre_v2_user) {
+	if (sched_smt_active() && unprivileged_ebpf_enabled() &&
+	    spectre_v2_enabled == SPECTRE_V2_EIBRS_LFENCE)
+		pr_warn_once(SPECTRE_V2_EIBRS_LFENCE_EBPF_SMT_MSG);
+
+	switch (spectre_v2_user_stibp) {
 	case SPECTRE_V2_USER_NONE:
 		break;
 	case SPECTRE_V2_USER_STRICT:
@@ -923,6 +1644,16 @@
 		break;
 	}
 
+	switch (mmio_mitigation) {
+	case MMIO_MITIGATION_VERW:
+	case MMIO_MITIGATION_UCODE_NEEDED:
+		if (sched_smt_active())
+			pr_warn_once(MMIO_MSG_SMT);
+		break;
+	case MMIO_MITIGATION_OFF:
+		break;
+	}
+
 	mutex_unlock(&spec_ctrl_mutex);
 }
 
@@ -1027,16 +1758,6 @@
 	}
 
 	/*
-	 * If SSBD is controlled by the SPEC_CTRL MSR, then set the proper
-	 * bit in the mask to allow guests to use the mitigation even in the
-	 * case where the host does not enable it.
-	 */
-	if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
-	    static_cpu_has(X86_FEATURE_AMD_SSBD)) {
-		x86_spec_ctrl_mask |= SPEC_CTRL_SSBD;
-	}
-
-	/*
 	 * We have three CPU feature flags that are in play here:
 	 *  - X86_BUG_SPEC_STORE_BYPASS - CPU is susceptible.
 	 *  - X86_FEATURE_SSBD - CPU is able to turn off speculative store bypass
@@ -1053,7 +1774,7 @@
 			x86_amd_ssb_disable();
 		} else {
 			x86_spec_ctrl_base |= SPEC_CTRL_SSBD;
-			wrmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
+			update_spec_ctrl(x86_spec_ctrl_base);
 		}
 	}
 
@@ -1127,19 +1848,40 @@
 	return 0;
 }
 
+static bool is_spec_ib_user_controlled(void)
+{
+	return spectre_v2_user_ibpb == SPECTRE_V2_USER_PRCTL ||
+		spectre_v2_user_ibpb == SPECTRE_V2_USER_SECCOMP ||
+		spectre_v2_user_stibp == SPECTRE_V2_USER_PRCTL ||
+		spectre_v2_user_stibp == SPECTRE_V2_USER_SECCOMP;
+}
+
 static int ib_prctl_set(struct task_struct *task, unsigned long ctrl)
 {
 	switch (ctrl) {
 	case PR_SPEC_ENABLE:
-		if (spectre_v2_user == SPECTRE_V2_USER_NONE)
+		if (spectre_v2_user_ibpb == SPECTRE_V2_USER_NONE &&
+		    spectre_v2_user_stibp == SPECTRE_V2_USER_NONE)
 			return 0;
 		/*
-		 * Indirect branch speculation is always disabled in strict
-		 * mode.
+		 * With strict mode for both IBPB and STIBP, the instruction
+		 * code paths avoid checking this task flag and instead,
+		 * unconditionally run the instruction. However, STIBP and IBPB
+		 * are independent and either can be set to conditionally
+		 * enabled regardless of the mode of the other.
+		 *
+		 * If either is set to conditional, allow the task flag to be
+		 * updated, unless it was force-disabled by a previous prctl
+		 * call. Currently, this is possible on an AMD CPU which has the
+		 * feature X86_FEATURE_AMD_STIBP_ALWAYS_ON. In this case, if the
+		 * kernel is booted with 'spectre_v2_user=seccomp', then
+		 * spectre_v2_user_ibpb == SPECTRE_V2_USER_SECCOMP and
+		 * spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT_PREFERRED.
 		 */
-		if (spectre_v2_user == SPECTRE_V2_USER_STRICT ||
-		    spectre_v2_user == SPECTRE_V2_USER_STRICT_PREFERRED)
+		if (!is_spec_ib_user_controlled() ||
+		    task_spec_ib_force_disable(task))
 			return -EPERM;
+
 		task_clear_spec_ib_disable(task);
 		task_update_spec_tif(task);
 		break;
@@ -1149,15 +1891,19 @@
 		 * Indirect branch speculation is always allowed when
 		 * mitigation is force disabled.
 		 */
-		if (spectre_v2_user == SPECTRE_V2_USER_NONE)
+		if (spectre_v2_user_ibpb == SPECTRE_V2_USER_NONE &&
+		    spectre_v2_user_stibp == SPECTRE_V2_USER_NONE)
 			return -EPERM;
-		if (spectre_v2_user == SPECTRE_V2_USER_STRICT ||
-		    spectre_v2_user == SPECTRE_V2_USER_STRICT_PREFERRED)
+
+		if (!is_spec_ib_user_controlled())
 			return 0;
+
 		task_set_spec_ib_disable(task);
 		if (ctrl == PR_SPEC_FORCE_DISABLE)
 			task_set_spec_ib_force_disable(task);
 		task_update_spec_tif(task);
+		if (task == current)
+			indirect_branch_prediction_barrier();
 		break;
 	default:
 		return -ERANGE;
@@ -1183,7 +1929,8 @@
 {
 	if (ssb_mode == SPEC_STORE_BYPASS_SECCOMP)
 		ssb_prctl_set(task, PR_SPEC_FORCE_DISABLE);
-	if (spectre_v2_user == SPECTRE_V2_USER_SECCOMP)
+	if (spectre_v2_user_ibpb == SPECTRE_V2_USER_SECCOMP ||
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_SECCOMP)
 		ib_prctl_set(task, PR_SPEC_FORCE_DISABLE);
 }
 #endif
@@ -1214,22 +1961,21 @@
 	if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V2))
 		return PR_SPEC_NOT_AFFECTED;
 
-	switch (spectre_v2_user) {
-	case SPECTRE_V2_USER_NONE:
+	if (spectre_v2_user_ibpb == SPECTRE_V2_USER_NONE &&
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_NONE)
 		return PR_SPEC_ENABLE;
-	case SPECTRE_V2_USER_PRCTL:
-	case SPECTRE_V2_USER_SECCOMP:
+	else if (is_spec_ib_user_controlled()) {
 		if (task_spec_ib_force_disable(task))
 			return PR_SPEC_PRCTL | PR_SPEC_FORCE_DISABLE;
 		if (task_spec_ib_disable(task))
 			return PR_SPEC_PRCTL | PR_SPEC_DISABLE;
 		return PR_SPEC_PRCTL | PR_SPEC_ENABLE;
-	case SPECTRE_V2_USER_STRICT:
-	case SPECTRE_V2_USER_STRICT_PREFERRED:
+	} else if (spectre_v2_user_ibpb == SPECTRE_V2_USER_STRICT ||
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT ||
+	    spectre_v2_user_stibp == SPECTRE_V2_USER_STRICT_PREFERRED)
 		return PR_SPEC_DISABLE;
-	default:
+	else
 		return PR_SPEC_NOT_AFFECTED;
-	}
 }
 
 int arch_prctl_spec_ctrl_get(struct task_struct *task, unsigned long which)
@@ -1247,7 +1993,7 @@
 void x86_spec_ctrl_setup_ap(void)
 {
 	if (boot_cpu_has(X86_FEATURE_MSR_SPEC_CTRL))
-		wrmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
+		update_spec_ctrl(x86_spec_ctrl_base);
 
 	if (ssb_mode == SPEC_STORE_BYPASS_DISABLE)
 		x86_amd_ssb_disable();
@@ -1463,12 +2209,29 @@
 		       sched_smt_active() ? "vulnerable" : "disabled");
 }
 
+static ssize_t mmio_stale_data_show_state(char *buf)
+{
+	if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN))
+		return sysfs_emit(buf, "Unknown: No mitigations\n");
+
+	if (mmio_mitigation == MMIO_MITIGATION_OFF)
+		return sysfs_emit(buf, "%s\n", mmio_strings[mmio_mitigation]);
+
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) {
+		return sysfs_emit(buf, "%s; SMT Host state unknown\n",
+				  mmio_strings[mmio_mitigation]);
+	}
+
+	return sysfs_emit(buf, "%s; SMT %s\n", mmio_strings[mmio_mitigation],
+			  sched_smt_active() ? "vulnerable" : "disabled");
+}
+
 static char *stibp_state(void)
 {
-	if (spectre_v2_enabled == SPECTRE_V2_IBRS_ENHANCED)
+	if (spectre_v2_in_eibrs_mode(spectre_v2_enabled))
 		return "";
 
-	switch (spectre_v2_user) {
+	switch (spectre_v2_user_stibp) {
 	case SPECTRE_V2_USER_NONE:
 		return ", STIBP: disabled";
 	case SPECTRE_V2_USER_STRICT:
@@ -1495,6 +2258,56 @@
 	return "";
 }
 
+static char *pbrsb_eibrs_state(void)
+{
+	if (boot_cpu_has_bug(X86_BUG_EIBRS_PBRSB)) {
+		if (boot_cpu_has(X86_FEATURE_RSB_VMEXIT_LITE) ||
+		    boot_cpu_has(X86_FEATURE_RSB_VMEXIT))
+			return ", PBRSB-eIBRS: SW sequence";
+		else
+			return ", PBRSB-eIBRS: Vulnerable";
+	} else {
+		return ", PBRSB-eIBRS: Not affected";
+	}
+}
+
+static ssize_t spectre_v2_show_state(char *buf)
+{
+	if (spectre_v2_enabled == SPECTRE_V2_LFENCE)
+		return sprintf(buf, "Vulnerable: LFENCE\n");
+
+	if (spectre_v2_enabled == SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled())
+		return sprintf(buf, "Vulnerable: eIBRS with unprivileged eBPF\n");
+
+	if (sched_smt_active() && unprivileged_ebpf_enabled() &&
+	    spectre_v2_enabled == SPECTRE_V2_EIBRS_LFENCE)
+		return sprintf(buf, "Vulnerable: eIBRS+LFENCE with unprivileged eBPF and SMT\n");
+
+	return sprintf(buf, "%s%s%s%s%s%s%s\n",
+		       spectre_v2_strings[spectre_v2_enabled],
+		       ibpb_state(),
+		       boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
+		       stibp_state(),
+		       boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "",
+		       pbrsb_eibrs_state(),
+		       spectre_v2_module_string());
+}
+
+static ssize_t srbds_show_state(char *buf)
+{
+	return sprintf(buf, "%s\n", srbds_strings[srbds_mitigation]);
+}
+
+static ssize_t retbleed_show_state(char *buf)
+{
+	return sprintf(buf, "%s\n", retbleed_strings[retbleed_mitigation]);
+}
+
+static ssize_t gds_show_state(char *buf)
+{
+	return sysfs_emit(buf, "%s\n", gds_strings[gds_mitigation]);
+}
+
 static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr,
 			       char *buf, unsigned int bug)
 {
@@ -1515,12 +2328,7 @@
 		return sprintf(buf, "%s\n", spectre_v1_strings[spectre_v1_mitigation]);
 
 	case X86_BUG_SPECTRE_V2:
-		return sprintf(buf, "%s%s%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled],
-			       ibpb_state(),
-			       boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
-			       stibp_state(),
-			       boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "",
-			       spectre_v2_module_string());
+		return spectre_v2_show_state(buf);
 
 	case X86_BUG_SPEC_STORE_BYPASS:
 		return sprintf(buf, "%s\n", ssb_strings[ssb_mode]);
@@ -1539,6 +2347,19 @@
 	case X86_BUG_ITLB_MULTIHIT:
 		return itlb_multihit_show_state(buf);
 
+	case X86_BUG_SRBDS:
+		return srbds_show_state(buf);
+
+	case X86_BUG_MMIO_STALE_DATA:
+	case X86_BUG_MMIO_UNKNOWN:
+		return mmio_stale_data_show_state(buf);
+
+	case X86_BUG_RETBLEED:
+		return retbleed_show_state(buf);
+
+	case X86_BUG_GDS:
+		return gds_show_state(buf);
+
 	default:
 		break;
 	}
@@ -1585,4 +2406,27 @@
 {
 	return cpu_show_common(dev, attr, buf, X86_BUG_ITLB_MULTIHIT);
 }
+
+ssize_t cpu_show_srbds(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	return cpu_show_common(dev, attr, buf, X86_BUG_SRBDS);
+}
+
+ssize_t cpu_show_mmio_stale_data(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN))
+		return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_UNKNOWN);
+	else
+		return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_STALE_DATA);
+}
+
+ssize_t cpu_show_retbleed(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	return cpu_show_common(dev, attr, buf, X86_BUG_RETBLEED);
+}
+
+ssize_t cpu_show_gds(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	return cpu_show_common(dev, attr, buf, X86_BUG_GDS);
+}
 #endif
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/cacheinfo.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/cacheinfo.c
@@ -646,7 +646,7 @@
 	return i;
 }
 
-void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id)
+void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu)
 {
 	/*
 	 * We may have multiple LLCs if L3 caches exist, so check if we
@@ -657,7 +657,7 @@
 
 	if (c->x86 < 0x17) {
 		/* LLC is at the node level. */
-		per_cpu(cpu_llc_id, cpu) = node_id;
+		per_cpu(cpu_llc_id, cpu) = c->cpu_die_id;
 	} else if (c->x86 == 0x17 && c->x86_model <= 0x1F) {
 		/*
 		 * LLC is at the core complex level.
@@ -684,7 +684,7 @@
 	}
 }
 
-void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id)
+void cacheinfo_hygon_init_llc_id(struct cpuinfo_x86 *c, int cpu)
 {
 	/*
 	 * We may have multiple LLCs if L3 caches exist, so check if we
@@ -985,7 +985,7 @@
 	this_leaf->priv = base->nb;
 }
 
-static int __init_cache_level(unsigned int cpu)
+int init_cache_level(unsigned int cpu)
 {
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
 
@@ -1014,7 +1014,7 @@
 	id4_regs->id = c->apicid >> index_msb;
 }
 
-static int __populate_cache_leaves(unsigned int cpu)
+int populate_cache_leaves(unsigned int cpu)
 {
 	unsigned int idx, ret;
 	struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
@@ -1033,6 +1033,3 @@
 
 	return 0;
 }
-
-DEFINE_SMP_CALL_CACHE_FUNCTION(init_cache_level)
-DEFINE_SMP_CALL_CACHE_FUNCTION(populate_cache_leaves)
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/common.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/common.c
@@ -17,10 +17,14 @@
 #include <linux/init.h>
 #include <linux/kprobes.h>
 #include <linux/kgdb.h>
+#include <linux/mem_encrypt.h>
 #include <linux/smp.h>
+#include <linux/cpu.h>
 #include <linux/io.h>
 #include <linux/syscore_ops.h>
+#include <linux/utsname.h>
 
+#include <asm/alternative.h>
 #include <asm/stackprotector.h>
 #include <asm/perf_event.h>
 #include <asm/mmu_context.h>
@@ -57,6 +61,7 @@
 #ifdef CONFIG_X86_LOCAL_APIC
 #include <asm/uv/uv.h>
 #endif
+#include <asm/set_memory.h>
 
 #include "cpu.h"
 
@@ -366,6 +371,9 @@
 	cr4_clear_bits(X86_CR4_UMIP);
 }
 
+/* These bits should not change their value after CPU init is finished. */
+static const unsigned long cr4_pinned_mask =
+	X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_UMIP | X86_CR4_FSGSBASE;
 static DEFINE_STATIC_KEY_FALSE_RO(cr_pinning);
 static unsigned long cr4_pinned_bits __ro_after_init;
 
@@ -374,7 +382,7 @@
 	unsigned long bits_missing = 0;
 
 set_register:
-	asm volatile("mov %0,%%cr0": "+r" (val), "+m" (__force_order));
+	asm volatile("mov %0,%%cr0": "+r" (val) : : "memory");
 
 	if (static_branch_likely(&cr_pinning)) {
 		if (unlikely((val & X86_CR0_WP) != X86_CR0_WP)) {
@@ -390,20 +398,20 @@
 
 void native_write_cr4(unsigned long val)
 {
-	unsigned long bits_missing = 0;
+	unsigned long bits_changed = 0;
 
 set_register:
-	asm volatile("mov %0,%%cr4": "+r" (val), "+m" (cr4_pinned_bits));
+	asm volatile("mov %0,%%cr4": "+r" (val) : : "memory");
 
 	if (static_branch_likely(&cr_pinning)) {
-		if (unlikely((val & cr4_pinned_bits) != cr4_pinned_bits)) {
-			bits_missing = ~val & cr4_pinned_bits;
-			val |= bits_missing;
+		if (unlikely((val & cr4_pinned_mask) != cr4_pinned_bits)) {
+			bits_changed = (val & cr4_pinned_mask) ^ cr4_pinned_bits;
+			val = (val & ~cr4_pinned_mask) | cr4_pinned_bits;
 			goto set_register;
 		}
-		/* Warn after we've set the missing bits. */
-		WARN_ONCE(bits_missing, "CR4 bits went missing: %lx!?\n",
-			  bits_missing);
+		/* Warn after we've corrected the changed bits. */
+		WARN_ONCE(bits_changed, "pinned CR4 bits changed: 0x%lx!?\n",
+			  bits_changed);
 	}
 }
 EXPORT_SYMBOL(native_write_cr4);
@@ -415,7 +423,7 @@
 	if (boot_cpu_has(X86_FEATURE_PCID))
 		cr4 |= X86_CR4_PCIDE;
 	if (static_branch_likely(&cr_pinning))
-		cr4 |= cr4_pinned_bits;
+		cr4 = (cr4 & ~cr4_pinned_mask) | cr4_pinned_bits;
 
 	__write_cr4(cr4);
 
@@ -430,10 +438,7 @@
  */
 static void __init setup_cr_pinning(void)
 {
-	unsigned long mask;
-
-	mask = (X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_UMIP);
-	cr4_pinned_bits = this_cpu_read(cpu_tlbstate.cr4) & mask;
+	cr4_pinned_bits = this_cpu_read(cpu_tlbstate.cr4) & cr4_pinned_mask;
 	static_key_enable(&cr_pinning.key);
 }
 
@@ -444,8 +449,6 @@
 
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
-	struct pkru_state *pk;
-
 	/* check the boot processor, plus compile options for PKU: */
 	if (!cpu_feature_enabled(X86_FEATURE_PKU))
 		return;
@@ -456,15 +459,12 @@
 		return;
 
 	cr4_set_bits(X86_CR4_PKE);
-	pk = get_xsave_addr(&init_fpstate.xsave, XFEATURE_PKRU);
-	if (pk)
-		pk->pkru = init_pkru_value;
 	/*
 	 * Seting X86_CR4_PKE will cause the X86_FEATURE_OSPKE
 	 * cpuid bit to be set.  We need to ensure that we
 	 * update that bit in this CPU's "cpu_info".
 	 */
-	get_cpu_cap(c);
+	set_cpu_cap(c, X86_FEATURE_OSPKE);
 }
 
 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
@@ -961,6 +961,12 @@
 	if (c->extended_cpuid_level >= 0x8000000a)
 		c->x86_capability[CPUID_8000_000A_EDX] = cpuid_edx(0x8000000a);
 
+	if (c->extended_cpuid_level >= 0x8000001f)
+		c->x86_capability[CPUID_8000_001F_EAX] = cpuid_eax(0x8000001f);
+
+	if (c->extended_cpuid_level >= 0x80000021)
+		c->x86_capability[CPUID_8000_0021_EAX] = cpuid_eax(0x80000021);
+
 	init_scattered_cpuid_features(c);
 	init_speculation_control(c);
 	init_cqm(c);
@@ -1024,6 +1030,9 @@
 #define MSBDS_ONLY		BIT(5)
 #define NO_SWAPGS		BIT(6)
 #define NO_ITLB_MULTIHIT	BIT(7)
+#define NO_SPECTRE_V2		BIT(8)
+#define NO_EIBRS_PBRSB		BIT(9)
+#define NO_MMIO			BIT(10)
 
 #define VULNWL(_vendor, _family, _model, _whitelist)	\
 	{ X86_VENDOR_##_vendor, _family, _model, X86_FEATURE_ANY, _whitelist }
@@ -1044,6 +1053,11 @@
 	VULNWL(NSC,	5, X86_MODEL_ANY,	NO_SPECULATION),
 
 	/* Intel Family 6 */
+	VULNWL_INTEL(TIGERLAKE,			NO_MMIO),
+	VULNWL_INTEL(TIGERLAKE_L,		NO_MMIO),
+	VULNWL_INTEL(ALDERLAKE,			NO_MMIO),
+	VULNWL_INTEL(ALDERLAKE_L,		NO_MMIO),
+
 	VULNWL_INTEL(ATOM_SALTWELL,		NO_SPECULATION | NO_ITLB_MULTIHIT),
 	VULNWL_INTEL(ATOM_SALTWELL_TABLET,	NO_SPECULATION | NO_ITLB_MULTIHIT),
 	VULNWL_INTEL(ATOM_SALTWELL_MID,		NO_SPECULATION | NO_ITLB_MULTIHIT),
@@ -1062,9 +1076,9 @@
 	VULNWL_INTEL(ATOM_AIRMONT_MID,		NO_L1TF | MSBDS_ONLY | NO_SWAPGS | NO_ITLB_MULTIHIT),
 	VULNWL_INTEL(ATOM_AIRMONT_NP,		NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT),
 
-	VULNWL_INTEL(ATOM_GOLDMONT,		NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT),
-	VULNWL_INTEL(ATOM_GOLDMONT_D,		NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT),
-	VULNWL_INTEL(ATOM_GOLDMONT_PLUS,	NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT),
+	VULNWL_INTEL(ATOM_GOLDMONT,		NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+	VULNWL_INTEL(ATOM_GOLDMONT_D,		NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+	VULNWL_INTEL(ATOM_GOLDMONT_PLUS,	NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO | NO_EIBRS_PBRSB),
 
 	/*
 	 * Technically, swapgs isn't serializing on AMD (despite it previously
@@ -1074,23 +1088,92 @@
 	 * good enough for our purposes.
 	 */
 
-	VULNWL_INTEL(ATOM_TREMONT_D,		NO_ITLB_MULTIHIT),
+	VULNWL_INTEL(ATOM_TREMONT,		NO_EIBRS_PBRSB),
+	VULNWL_INTEL(ATOM_TREMONT_L,		NO_EIBRS_PBRSB),
+	VULNWL_INTEL(ATOM_TREMONT_D,		NO_ITLB_MULTIHIT | NO_EIBRS_PBRSB),
 
 	/* AMD Family 0xf - 0x12 */
-	VULNWL_AMD(0x0f,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
-	VULNWL_AMD(0x10,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
-	VULNWL_AMD(0x11,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
-	VULNWL_AMD(0x12,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
+	VULNWL_AMD(0x0f,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+	VULNWL_AMD(0x10,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+	VULNWL_AMD(0x11,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+	VULNWL_AMD(0x12,	NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
 
 	/* FAMILY_ANY must be last, otherwise 0x0f - 0x12 matches won't work */
-	VULNWL_AMD(X86_FAMILY_ANY,	NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
-	VULNWL_HYGON(X86_FAMILY_ANY,	NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT),
+	VULNWL_AMD(X86_FAMILY_ANY,	NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+	VULNWL_HYGON(X86_FAMILY_ANY,	NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
+
+	/* Zhaoxin Family 7 */
+	VULNWL(CENTAUR,	7, X86_MODEL_ANY,	NO_SPECTRE_V2 | NO_MMIO),
+	VULNWL(ZHAOXIN,	7, X86_MODEL_ANY,	NO_SPECTRE_V2 | NO_MMIO),
 	{}
 };
 
-static bool __init cpu_matches(unsigned long which)
+#define VULNBL(vendor, family, model, blacklist)	\
+	X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, blacklist)
+
+#define VULNBL_INTEL_STEPPINGS(model, steppings, issues)		   \
+	X86_MATCH_VENDOR_FAM_MODEL_STEPPINGS_FEATURE(INTEL, 6,		   \
+					    INTEL_FAM6_##model, steppings, \
+					    X86_FEATURE_ANY, issues)
+
+#define VULNBL_AMD(family, blacklist)		\
+	VULNBL(AMD, family, X86_MODEL_ANY, blacklist)
+
+#define VULNBL_HYGON(family, blacklist)		\
+	VULNBL(HYGON, family, X86_MODEL_ANY, blacklist)
+
+#define SRBDS		BIT(0)
+/* CPU is affected by X86_BUG_MMIO_STALE_DATA */
+#define MMIO		BIT(1)
+/* CPU is affected by Shared Buffers Data Sampling (SBDS), a variant of X86_BUG_MMIO_STALE_DATA */
+#define MMIO_SBDS	BIT(2)
+/* CPU is affected by RETbleed, speculating where you would not expect it */
+#define RETBLEED	BIT(3)
+/* CPU is affected by SMT (cross-thread) return predictions */
+#define SMT_RSB		BIT(4)
+/* CPU is affected by GDS */
+#define GDS		BIT(5)
+
+static const struct x86_cpu_id cpu_vuln_blacklist[] __initconst = {
+	VULNBL_INTEL_STEPPINGS(IVYBRIDGE,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL,		X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL_L,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL_G,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(HASWELL_X,	X86_STEPPING_ANY,		MMIO),
+	VULNBL_INTEL_STEPPINGS(BROADWELL_D,	X86_STEPPING_ANY,		MMIO),
+	VULNBL_INTEL_STEPPINGS(BROADWELL_G,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(BROADWELL_X,	X86_STEPPING_ANY,		MMIO),
+	VULNBL_INTEL_STEPPINGS(BROADWELL,	X86_STEPPING_ANY,		SRBDS),
+	VULNBL_INTEL_STEPPINGS(SKYLAKE_X,	X86_STEPPING_ANY,		MMIO | RETBLEED | GDS),
+	VULNBL_INTEL_STEPPINGS(SKYLAKE_L,	X86_STEPPING_ANY,		MMIO | RETBLEED | GDS | SRBDS),
+	VULNBL_INTEL_STEPPINGS(SKYLAKE,		X86_STEPPING_ANY,		MMIO | RETBLEED | GDS | SRBDS),
+	VULNBL_INTEL_STEPPINGS(KABYLAKE_L,	X86_STEPPING_ANY,		MMIO | RETBLEED | GDS | SRBDS),
+	VULNBL_INTEL_STEPPINGS(KABYLAKE,	X86_STEPPING_ANY,		MMIO | RETBLEED | GDS | SRBDS),
+	VULNBL_INTEL_STEPPINGS(CANNONLAKE_L,	X86_STEPPING_ANY,		RETBLEED),
+	VULNBL_INTEL_STEPPINGS(ICELAKE_L,	X86_STEPPING_ANY,		MMIO | MMIO_SBDS | RETBLEED | GDS),
+	VULNBL_INTEL_STEPPINGS(ICELAKE_D,	X86_STEPPING_ANY,		MMIO | GDS),
+	VULNBL_INTEL_STEPPINGS(ICELAKE_X,	X86_STEPPING_ANY,		MMIO | GDS),
+	VULNBL_INTEL_STEPPINGS(COMETLAKE,	X86_STEPPING_ANY,		MMIO | MMIO_SBDS | RETBLEED | GDS),
+	VULNBL_INTEL_STEPPINGS(COMETLAKE_L,	X86_STEPPINGS(0x0, 0x0),	MMIO | RETBLEED),
+	VULNBL_INTEL_STEPPINGS(COMETLAKE_L,	X86_STEPPING_ANY,		MMIO | MMIO_SBDS | RETBLEED | GDS),
+	VULNBL_INTEL_STEPPINGS(TIGERLAKE_L,	X86_STEPPING_ANY,		GDS),
+	VULNBL_INTEL_STEPPINGS(TIGERLAKE,	X86_STEPPING_ANY,		GDS),
+	VULNBL_INTEL_STEPPINGS(LAKEFIELD,	X86_STEPPING_ANY,		MMIO | MMIO_SBDS | RETBLEED),
+	VULNBL_INTEL_STEPPINGS(ROCKETLAKE,	X86_STEPPING_ANY,		MMIO | RETBLEED | GDS),
+	VULNBL_INTEL_STEPPINGS(ATOM_TREMONT,	X86_STEPPING_ANY,		MMIO | MMIO_SBDS),
+	VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_D,	X86_STEPPING_ANY,		MMIO),
+	VULNBL_INTEL_STEPPINGS(ATOM_TREMONT_L,	X86_STEPPING_ANY,		MMIO | MMIO_SBDS),
+
+	VULNBL_AMD(0x15, RETBLEED),
+	VULNBL_AMD(0x16, RETBLEED),
+	VULNBL_AMD(0x17, RETBLEED | SMT_RSB),
+	VULNBL_HYGON(0x18, RETBLEED | SMT_RSB),
+	{}
+};
+
+static bool __init cpu_matches(const struct x86_cpu_id *table, unsigned long which)
 {
-	const struct x86_cpu_id *m = x86_match_cpu(cpu_vuln_whitelist);
+	const struct x86_cpu_id *m = x86_match_cpu(table);
 
 	return m && !!(m->driver_data & which);
 }
@@ -1105,34 +1188,46 @@
 	return ia32_cap;
 }
 
+static bool arch_cap_mmio_immune(u64 ia32_cap)
+{
+	return (ia32_cap & ARCH_CAP_FBSDP_NO &&
+		ia32_cap & ARCH_CAP_PSDP_NO &&
+		ia32_cap & ARCH_CAP_SBDR_SSDP_NO);
+}
+
 static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)
 {
 	u64 ia32_cap = x86_read_arch_cap_msr();
 
 	/* Set ITLB_MULTIHIT bug if cpu is not in the whitelist and not mitigated */
-	if (!cpu_matches(NO_ITLB_MULTIHIT) && !(ia32_cap & ARCH_CAP_PSCHANGE_MC_NO))
+	if (!cpu_matches(cpu_vuln_whitelist, NO_ITLB_MULTIHIT) &&
+	    !(ia32_cap & ARCH_CAP_PSCHANGE_MC_NO))
 		setup_force_cpu_bug(X86_BUG_ITLB_MULTIHIT);
 
-	if (cpu_matches(NO_SPECULATION))
+	if (cpu_matches(cpu_vuln_whitelist, NO_SPECULATION))
 		return;
 
 	setup_force_cpu_bug(X86_BUG_SPECTRE_V1);
-	setup_force_cpu_bug(X86_BUG_SPECTRE_V2);
 
-	if (!cpu_matches(NO_SSB) && !(ia32_cap & ARCH_CAP_SSB_NO) &&
+	if (!cpu_matches(cpu_vuln_whitelist, NO_SPECTRE_V2))
+		setup_force_cpu_bug(X86_BUG_SPECTRE_V2);
+
+	if (!cpu_matches(cpu_vuln_whitelist, NO_SSB) &&
+	    !(ia32_cap & ARCH_CAP_SSB_NO) &&
 	   !cpu_has(c, X86_FEATURE_AMD_SSB_NO))
 		setup_force_cpu_bug(X86_BUG_SPEC_STORE_BYPASS);
 
 	if (ia32_cap & ARCH_CAP_IBRS_ALL)
 		setup_force_cpu_cap(X86_FEATURE_IBRS_ENHANCED);
 
-	if (!cpu_matches(NO_MDS) && !(ia32_cap & ARCH_CAP_MDS_NO)) {
+	if (!cpu_matches(cpu_vuln_whitelist, NO_MDS) &&
+	    !(ia32_cap & ARCH_CAP_MDS_NO)) {
 		setup_force_cpu_bug(X86_BUG_MDS);
-		if (cpu_matches(MSBDS_ONLY))
+		if (cpu_matches(cpu_vuln_whitelist, MSBDS_ONLY))
 			setup_force_cpu_bug(X86_BUG_MSBDS_ONLY);
 	}
 
-	if (!cpu_matches(NO_SWAPGS))
+	if (!cpu_matches(cpu_vuln_whitelist, NO_SWAPGS))
 		setup_force_cpu_bug(X86_BUG_SWAPGS);
 
 	/*
@@ -1150,7 +1245,60 @@
 	     (ia32_cap & ARCH_CAP_TSX_CTRL_MSR)))
 		setup_force_cpu_bug(X86_BUG_TAA);
 
-	if (cpu_matches(NO_MELTDOWN))
+	/*
+	 * SRBDS affects CPUs which support RDRAND or RDSEED and are listed
+	 * in the vulnerability blacklist.
+	 *
+	 * Some of the implications and mitigation of Shared Buffers Data
+	 * Sampling (SBDS) are similar to SRBDS. Give SBDS same treatment as
+	 * SRBDS.
+	 */
+	if ((cpu_has(c, X86_FEATURE_RDRAND) ||
+	     cpu_has(c, X86_FEATURE_RDSEED)) &&
+	    cpu_matches(cpu_vuln_blacklist, SRBDS | MMIO_SBDS))
+		    setup_force_cpu_bug(X86_BUG_SRBDS);
+
+	/*
+	 * Processor MMIO Stale Data bug enumeration
+	 *
+	 * Affected CPU list is generally enough to enumerate the vulnerability,
+	 * but for virtualization case check for ARCH_CAP MSR bits also, VMM may
+	 * not want the guest to enumerate the bug.
+	 *
+	 * Set X86_BUG_MMIO_UNKNOWN for CPUs that are neither in the blacklist,
+	 * nor in the whitelist and also don't enumerate MSR ARCH_CAP MMIO bits.
+	 */
+	if (!arch_cap_mmio_immune(ia32_cap)) {
+		if (cpu_matches(cpu_vuln_blacklist, MMIO))
+			setup_force_cpu_bug(X86_BUG_MMIO_STALE_DATA);
+		else if (!cpu_matches(cpu_vuln_whitelist, NO_MMIO))
+			setup_force_cpu_bug(X86_BUG_MMIO_UNKNOWN);
+	}
+
+	if (!cpu_has(c, X86_FEATURE_BTC_NO)) {
+		if (cpu_matches(cpu_vuln_blacklist, RETBLEED) || (ia32_cap & ARCH_CAP_RSBA))
+			setup_force_cpu_bug(X86_BUG_RETBLEED);
+	}
+
+	if (cpu_has(c, X86_FEATURE_IBRS_ENHANCED) &&
+	    !cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) &&
+	    !(ia32_cap & ARCH_CAP_PBRSB_NO))
+		setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB);
+
+	if (cpu_matches(cpu_vuln_blacklist, SMT_RSB))
+		setup_force_cpu_bug(X86_BUG_SMT_RSB);
+
+	/*
+	 * Check if CPU is vulnerable to GDS. If running in a virtual machine on
+	 * an affected processor, the VMM may have disabled the use of GATHER by
+	 * disabling AVX2. The only way to do this in HW is to clear XCR0[2],
+	 * which means that AVX will be disabled.
+	 */
+	if (cpu_matches(cpu_vuln_blacklist, GDS) && !(ia32_cap & ARCH_CAP_GDS_NO) &&
+	    boot_cpu_has(X86_FEATURE_AVX))
+		setup_force_cpu_bug(X86_BUG_GDS);
+
+	if (cpu_matches(cpu_vuln_whitelist, NO_MELTDOWN))
 		return;
 
 	/* Rogue Data Cache Load? No! */
@@ -1159,7 +1307,7 @@
 
 	setup_force_cpu_bug(X86_BUG_CPU_MELTDOWN);
 
-	if (cpu_matches(NO_L1TF))
+	if (cpu_matches(cpu_vuln_whitelist, NO_L1TF))
 		return;
 
 	setup_force_cpu_bug(X86_BUG_L1TF);
@@ -1235,8 +1383,6 @@
 
 	cpu_set_bug_bits(c);
 
-	fpu__init_system(c);
-
 #ifdef CONFIG_X86_32
 	/*
 	 * Regardless of whether PCID is enumerated, the SDM says
@@ -1296,9 +1442,8 @@
 	early_identify_cpu(&boot_cpu_data);
 }
 
-static void detect_null_seg_behavior(struct cpuinfo_x86 *c)
+static bool detect_null_seg_behavior(void)
 {
-#ifdef CONFIG_X86_64
 	/*
 	 * Empirically, writing zero to a segment selector on AMD does
 	 * not clear the base, whereas writing zero to a segment
@@ -1319,10 +1464,43 @@
 	wrmsrl(MSR_FS_BASE, 1);
 	loadsegment(fs, 0);
 	rdmsrl(MSR_FS_BASE, tmp);
-	if (tmp != 0)
-		set_cpu_bug(c, X86_BUG_NULL_SEG);
 	wrmsrl(MSR_FS_BASE, old_base);
-#endif
+	return tmp == 0;
+}
+
+void check_null_seg_clears_base(struct cpuinfo_x86 *c)
+{
+	/* BUG_NULL_SEG is only relevant with 64bit userspace */
+	if (!IS_ENABLED(CONFIG_X86_64))
+		return;
+
+	/* Zen3 CPUs advertise Null Selector Clears Base in CPUID. */
+	if (c->extended_cpuid_level >= 0x80000021 &&
+	    cpuid_eax(0x80000021) & BIT(6))
+		return;
+
+	/*
+	 * CPUID bit above wasn't set. If this kernel is still running
+	 * as a HV guest, then the HV has decided not to advertize
+	 * that CPUID bit for whatever reason.	For example, one
+	 * member of the migration pool might be vulnerable.  Which
+	 * means, the bug is present: set the BUG flag and return.
+	 */
+	if (cpu_has(c, X86_FEATURE_HYPERVISOR)) {
+		set_cpu_bug(c, X86_BUG_NULL_SEG);
+		return;
+	}
+
+	/*
+	 * Zen2 CPUs also have this behaviour, but no CPUID bit.
+	 * 0x18 is the respective family for Hygon.
+	 */
+	if ((c->x86 == 0x17 || c->x86 == 0x18) &&
+	    detect_null_seg_behavior())
+		return;
+
+	/* All the remaining ones are affected */
+	set_cpu_bug(c, X86_BUG_NULL_SEG);
 }
 
 static void generic_identify(struct cpuinfo_x86 *c)
@@ -1358,8 +1536,6 @@
 
 	get_model_name(c); /* Default name */
 
-	detect_null_seg_behavior(c);
-
 	/*
 	 * ESPFIX is a strange bug.  All real CPUs have it.  Paravirt
 	 * systems that run Linux at CPL > 0 may or may not have the
@@ -1597,6 +1773,9 @@
 	mtrr_ap_init();
 	validate_apic_and_package_id(c);
 	x86_spec_ctrl_setup_ap();
+	update_srbds_msr();
+	if (boot_cpu_has_bug(X86_BUG_GDS))
+		update_gds_msr();
 }
 
 static __init int setup_noclflush(char *arg)
@@ -1785,7 +1964,7 @@
 	unsigned long cpudata = vdso_encode_cpunode(cpu, early_cpu_to_node(cpu));
 	struct desc_struct d = { };
 
-	if (boot_cpu_has(X86_FEATURE_RDTSCP))
+	if (boot_cpu_has(X86_FEATURE_RDTSCP) || boot_cpu_has(X86_FEATURE_RDPID))
 		write_rdtscp_aux(cpudata);
 
 	/* Store CPU and node number in limit. */
@@ -1895,8 +2074,6 @@
 	clear_all_debug_regs();
 	dbg_restore_debug_regs();
 
-	fpu__init_cpu();
-
 	if (is_uv_system())
 		uv_cpu_init();
 
@@ -1954,8 +2131,6 @@
 	clear_all_debug_regs();
 	dbg_restore_debug_regs();
 
-	fpu__init_cpu();
-
 	load_fixmap_gdt(cpu);
 }
 #endif
@@ -1974,6 +2149,8 @@
 	/* Reload CPUID max function as it might've changed. */
 	info.cpuid_level = cpuid_eax(0);
 
+	amd_check_microcode();
+
 	/*
 	 * Copy all capability leafs to pick up the synthetic ones so that
 	 * memcmp() below doesn't fail on that. The ones coming from CPUID will
@@ -2000,3 +2177,69 @@
 	/* Check whether IPI broadcasting can be enabled */
 	apic_smt_update();
 }
+
+void __init arch_cpu_finalize_init(void)
+{
+	identify_boot_cpu();
+
+	/*
+	 * identify_boot_cpu() initialized SMT support information, let the
+	 * core code know.
+	 */
+	cpu_smt_check_topology();
+
+	if (!IS_ENABLED(CONFIG_SMP)) {
+		pr_info("CPU: ");
+		print_cpu_info(&boot_cpu_data);
+	}
+
+	cpu_select_mitigations();
+
+	arch_smt_update();
+
+	if (IS_ENABLED(CONFIG_X86_32)) {
+		/*
+		 * Check whether this is a real i386 which is not longer
+		 * supported and fixup the utsname.
+		 */
+		if (boot_cpu_data.x86 < 4)
+			panic("Kernel requires i486+ for 'invlpg' and other features");
+
+		init_utsname()->machine[1] =
+			'0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
+	}
+
+	/*
+	 * Must be before alternatives because it might set or clear
+	 * feature bits.
+	 */
+	fpu__init_system();
+	fpu__init_cpu();
+
+	alternative_instructions();
+
+	if (IS_ENABLED(CONFIG_X86_64)) {
+		/*
+		 * Make sure the first 2MB area is not mapped by huge pages
+		 * There are typically fixed size MTRRs in there and overlapping
+		 * MTRRs into large pages causes slow downs.
+		 *
+		 * Right now we don't do that with gbpages because there seems
+		 * very little benefit for that case.
+		 */
+		if (!direct_gbpages)
+			set_memory_4k((unsigned long)__va(0), 1);
+	} else {
+		fpu__init_check_bugs();
+	}
+
+	/*
+	 * This needs to be called before any devices perform DMA
+	 * operations that might use the SWIOTLB bounce buffers. It will
+	 * mark the bounce buffers as decrypted so that their usage will
+	 * not cause "plain-text" data to be decrypted when accessed. It
+	 * must be called after late_time_init() so that Hyper-V x86/x64
+	 * hypercalls work when the SWIOTLB bounce buffers are decrypted.
+	 */
+	mem_encrypt_init();
+}
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/cpu.h
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/cpu.h
@@ -73,10 +73,14 @@
 extern int detect_extended_topology(struct cpuinfo_x86 *c);
 extern int detect_ht_early(struct cpuinfo_x86 *c);
 extern void detect_ht(struct cpuinfo_x86 *c);
+extern void check_null_seg_clears_base(struct cpuinfo_x86 *c);
 
 unsigned int aperfmperf_get_khz(int cpu);
+void cpu_select_mitigations(void);
 
 extern void x86_spec_ctrl_setup_ap(void);
+extern void update_srbds_msr(void);
+extern void update_gds_msr(void);
 
 extern u64 x86_read_arch_cap_msr(void);
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/hygon.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/hygon.c
@@ -64,7 +64,6 @@
  */
 static void hygon_get_topology(struct cpuinfo_x86 *c)
 {
-	u8 node_id;
 	int cpu = smp_processor_id();
 
 	/* get information required for multi-node processors */
@@ -74,7 +73,7 @@
 
 		cpuid(0x8000001e, &eax, &ebx, &ecx, &edx);
 
-		node_id  = ecx & 0xff;
+		c->cpu_die_id  = ecx & 0xff;
 
 		c->cpu_core_id = ebx & 0xff;
 
@@ -92,14 +91,14 @@
 		/* Socket ID is ApicId[6] for these processors. */
 		c->phys_proc_id = c->apicid >> APICID_SOCKET_ID_BIT;
 
-		cacheinfo_hygon_init_llc_id(c, cpu, node_id);
+		cacheinfo_hygon_init_llc_id(c, cpu);
 	} else if (cpu_has(c, X86_FEATURE_NODEID_MSR)) {
 		u64 value;
 
 		rdmsrl(MSR_FAM10H_NODE_ID, value);
-		node_id = value & 7;
+		c->cpu_die_id = value & 7;
 
-		per_cpu(cpu_llc_id, cpu) = node_id;
+		per_cpu(cpu_llc_id, cpu) = c->cpu_die_id;
 	} else
 		return;
 
@@ -122,7 +121,7 @@
 	/* Convert the initial APIC ID into the socket ID */
 	c->phys_proc_id = c->initial_apicid >> bits;
 	/* use socket ID also for last level cache */
-	per_cpu(cpu_llc_id, cpu) = c->phys_proc_id;
+	per_cpu(cpu_llc_id, cpu) = c->cpu_die_id = c->phys_proc_id;
 }
 
 static void srat_detect_node(struct cpuinfo_x86 *c)
@@ -336,8 +335,8 @@
 		 * msr_set_bit() uses the safe accessors, too, even if the MSR
 		 * is not present.
 		 */
-		msr_set_bit(MSR_F10H_DECFG,
-			    MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT);
+		msr_set_bit(MSR_AMD64_DE_CFG,
+			    MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT);
 
 		/* A serializing LFENCE stops RDTSC speculation */
 		set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
@@ -351,6 +350,8 @@
 	/* Hygon CPUs don't reset SS attributes on SYSRET, Xen does. */
 	if (!cpu_has(c, X86_FEATURE_XENPV))
 		set_cpu_bug(c, X86_BUG_SYSRET_SS_ATTRS);
+
+	check_null_seg_clears_base(c);
 }
 
 static void cpu_detect_tlb_hygon(struct cpuinfo_x86 *c)
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/intel.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/intel.c
@@ -97,7 +97,7 @@
 static int __init ring3mwait_disable(char *__unused)
 {
 	ring3mwait_disabled = true;
-	return 0;
+	return 1;
 }
 __setup("ring3mwait=disable", ring3mwait_disable);
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/match.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/match.c
@@ -16,12 +16,17 @@
  * respective wildcard entries.
  *
  * A typical table entry would be to match a specific CPU
- * { X86_VENDOR_INTEL, 6, 0x12 }
- * or to match a specific CPU feature
- * { X86_FEATURE_MATCH(X86_FEATURE_FOOBAR) }
+ *
+ * X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_BROADWELL,
+ *				      X86_FEATURE_ANY, NULL);
  *
  * Fields can be wildcarded with %X86_VENDOR_ANY, %X86_FAMILY_ANY,
- * %X86_MODEL_ANY, %X86_FEATURE_ANY or 0 (except for vendor)
+ * %X86_MODEL_ANY, %X86_FEATURE_ANY (except for vendor)
+ *
+ * asm/cpu_device_id.h contains a set of useful macros which are shortcuts
+ * for various common selections. The above can be shortened to:
+ *
+ * X86_MATCH_INTEL_FAM6_MODEL(BROADWELL, NULL);
  *
  * Arrays used to match for this should also be declared using
  * MODULE_DEVICE_TABLE(x86cpu, ...)
@@ -34,13 +39,18 @@
 	const struct x86_cpu_id *m;
 	struct cpuinfo_x86 *c = &boot_cpu_data;
 
-	for (m = match; m->vendor | m->family | m->model | m->feature; m++) {
+	for (m = match;
+	     m->vendor | m->family | m->model | m->steppings | m->feature;
+	     m++) {
 		if (m->vendor != X86_VENDOR_ANY && c->x86_vendor != m->vendor)
 			continue;
 		if (m->family != X86_FAMILY_ANY && c->x86 != m->family)
 			continue;
 		if (m->model != X86_MODEL_ANY && c->x86_model != m->model)
 			continue;
+		if (m->steppings != X86_STEPPING_ANY &&
+		    !(BIT(c->x86_stepping) & m->steppings))
+			continue;
 		if (m->feature != X86_FEATURE_ANY && !cpu_has(c, m->feature))
 			continue;
 		return m;
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/amd.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/amd.c
@@ -78,6 +78,7 @@
 
 static struct smca_bank_name smca_names[] = {
 	[SMCA_LS]	= { "load_store",	"Load Store Unit" },
+	[SMCA_LS_V2]	= { "load_store",	"Load Store Unit" },
 	[SMCA_IF]	= { "insn_fetch",	"Instruction Fetch Unit" },
 	[SMCA_L2_CACHE]	= { "l2_cache",		"L2 Cache" },
 	[SMCA_DE]	= { "decode_unit",	"Decode Unit" },
@@ -138,6 +139,7 @@
 
 	/* ZN Core (HWID=0xB0) MCA types */
 	{ SMCA_LS,	 HWID_MCATYPE(0xB0, 0x0), 0x1FFFFF },
+	{ SMCA_LS_V2,	 HWID_MCATYPE(0xB0, 0x10), 0xFFFFFF },
 	{ SMCA_IF,	 HWID_MCATYPE(0xB0, 0x1), 0x3FFF },
 	{ SMCA_L2_CACHE, HWID_MCATYPE(0xB0, 0x2), 0xF },
 	{ SMCA_DE,	 HWID_MCATYPE(0xB0, 0x3), 0x1FF },
@@ -266,10 +268,10 @@
 	smca_set_misc_banks_map(bank, cpu);
 
 	/* Return early if this bank was already initialized. */
-	if (smca_banks[bank].hwid)
+	if (smca_banks[bank].hwid && smca_banks[bank].hwid->hwid_mcatype != 0)
 		return;
 
-	if (rdmsr_safe_on_cpu(cpu, MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) {
+	if (rdmsr_safe(MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) {
 		pr_warn("Failed to read MCA_IPID for bank %d\n", bank);
 		return;
 	}
@@ -1161,9 +1163,12 @@
 	.store			= store,
 };
 
+static void threshold_block_release(struct kobject *kobj);
+
 static struct kobj_type threshold_ktype = {
 	.sysfs_ops		= &threshold_ops,
 	.default_attrs		= default_attrs,
+	.release		= threshold_block_release,
 };
 
 static const char *get_name(unsigned int bank, struct threshold_block *b)
@@ -1196,8 +1201,9 @@
 	return buf_mcatype;
 }
 
-static int allocate_threshold_blocks(unsigned int cpu, unsigned int bank,
-				     unsigned int block, u32 address)
+static int allocate_threshold_blocks(unsigned int cpu, struct threshold_bank *tb,
+				     unsigned int bank, unsigned int block,
+				     u32 address)
 {
 	struct threshold_block *b = NULL;
 	u32 low, high;
@@ -1241,16 +1247,12 @@
 
 	INIT_LIST_HEAD(&b->miscj);
 
-	if (per_cpu(threshold_banks, cpu)[bank]->blocks) {
-		list_add(&b->miscj,
-			 &per_cpu(threshold_banks, cpu)[bank]->blocks->miscj);
-	} else {
-		per_cpu(threshold_banks, cpu)[bank]->blocks = b;
-	}
+	if (tb->blocks)
+		list_add(&b->miscj, &tb->blocks->miscj);
+	else
+		tb->blocks = b;
 
-	err = kobject_init_and_add(&b->kobj, &threshold_ktype,
-				   per_cpu(threshold_banks, cpu)[bank]->kobj,
-				   get_name(bank, b));
+	err = kobject_init_and_add(&b->kobj, &threshold_ktype, tb->kobj, get_name(bank, b));
 	if (err)
 		goto out_free;
 recurse:
@@ -1258,7 +1260,7 @@
 	if (!address)
 		return 0;
 
-	err = allocate_threshold_blocks(cpu, bank, block, address);
+	err = allocate_threshold_blocks(cpu, tb, bank, block, address);
 	if (err)
 		goto out_free;
 
@@ -1343,8 +1345,6 @@
 		goto out_free;
 	}
 
-	per_cpu(threshold_banks, cpu)[bank] = b;
-
 	if (is_shared_bank(bank)) {
 		refcount_set(&b->cpus, 1);
 
@@ -1355,9 +1355,13 @@
 		}
 	}
 
-	err = allocate_threshold_blocks(cpu, bank, 0, msr_ops.misc(bank));
-	if (!err)
-		goto out;
+	err = allocate_threshold_blocks(cpu, b, bank, 0, msr_ops.misc(bank));
+	if (err)
+		goto out_free;
+
+	per_cpu(threshold_banks, cpu)[bank] = b;
+
+	return 0;
 
  out_free:
 	kfree(b);
@@ -1366,8 +1370,12 @@
 	return err;
 }
 
-static void deallocate_threshold_block(unsigned int cpu,
-						 unsigned int bank)
+static void threshold_block_release(struct kobject *kobj)
+{
+	kfree(to_block(kobj));
+}
+
+static void deallocate_threshold_block(unsigned int cpu, unsigned int bank)
 {
 	struct threshold_block *pos = NULL;
 	struct threshold_block *tmp = NULL;
@@ -1377,13 +1385,11 @@
 		return;
 
 	list_for_each_entry_safe(pos, tmp, &head->blocks->miscj, miscj) {
-		kobject_put(&pos->kobj);
 		list_del(&pos->miscj);
-		kfree(pos);
+		kobject_put(&pos->kobj);
 	}
 
-	kfree(per_cpu(threshold_banks, cpu)[bank]->blocks);
-	per_cpu(threshold_banks, cpu)[bank]->blocks = NULL;
+	kobject_put(&head->blocks->kobj);
 }
 
 static void __threshold_remove_blocks(struct threshold_bank *b)
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/core.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/core.c
@@ -310,11 +310,17 @@
 	panic("Panicing machine check CPU died");
 }
 
-static void mce_panic(const char *msg, struct mce *final, char *exp)
+static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
 {
-	int apei_err = 0;
 	struct llist_node *pending;
 	struct mce_evt_llist *l;
+	int apei_err = 0;
+
+	/*
+	 * Allow instrumentation around external facilities usage. Not that it
+	 * matters a whole lot since the machine is going to panic anyway.
+	 */
+	instrumentation_begin();
 
 	if (!fake_panic) {
 		/*
@@ -329,7 +335,7 @@
 	} else {
 		/* Don't log too much for fake panic */
 		if (atomic_inc_return(&mce_fake_panicked) > 1)
-			return;
+			goto out;
 	}
 	pending = mce_gen_pool_prepare_records();
 	/* First print corrected ones that are still unlogged */
@@ -367,6 +373,9 @@
 		panic(msg);
 	} else
 		pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
+
+out:
+	instrumentation_end();
 }
 
 /* Support code for software error injection */
@@ -388,10 +397,38 @@
 	return -1;
 }
 
+static void ex_handler_msr_mce(struct pt_regs *regs, bool wrmsr)
+{
+	if (wrmsr) {
+		pr_emerg("MSR access error: WRMSR to 0x%x (tried to write 0x%08x%08x) at rIP: 0x%lx (%pS)\n",
+			 (unsigned int)regs->cx, (unsigned int)regs->dx, (unsigned int)regs->ax,
+			 regs->ip, (void *)regs->ip);
+	} else {
+		pr_emerg("MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pS)\n",
+			 (unsigned int)regs->cx, regs->ip, (void *)regs->ip);
+	}
+
+	show_stack_regs(regs);
+
+	panic("MCA architectural violation!\n");
+
+	while (true)
+		cpu_relax();
+}
+
+__visible bool ex_handler_rdmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr)
+{
+	ex_handler_msr_mce(regs, false);
+	return true;
+}
+
 /* MSR access wrappers used for error injection */
 static u64 mce_rdmsrl(u32 msr)
 {
-	u64 v;
+	DECLARE_ARGS(val, low, high);
 
 	if (__this_cpu_read(injectm.finished)) {
 		int offset = msr_to_offset(msr);
@@ -401,21 +438,33 @@
 		return *(u64 *)((char *)this_cpu_ptr(&injectm) + offset);
 	}
 
-	if (rdmsrl_safe(msr, &v)) {
-		WARN_ONCE(1, "mce: Unable to read MSR 0x%x!\n", msr);
-		/*
-		 * Return zero in case the access faulted. This should
-		 * not happen normally but can happen if the CPU does
-		 * something weird, or if the code is buggy.
-		 */
-		v = 0;
-	}
+	/*
+	 * RDMSR on MCA MSRs should not fault. If they do, this is very much an
+	 * architectural violation and needs to be reported to hw vendor. Panic
+	 * the box to not allow any further progress.
+	 */
+	asm volatile("1: rdmsr\n"
+		     "2:\n"
+		     _ASM_EXTABLE_HANDLE(1b, 2b, ex_handler_rdmsr_fault)
+		     : EAX_EDX_RET(val, low, high) : "c" (msr));
+
+
+	return EAX_EDX_VAL(val, low, high);
+}
 
-	return v;
+__visible bool ex_handler_wrmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr)
+{
+	ex_handler_msr_mce(regs, true);
+	return true;
 }
 
 static void mce_wrmsrl(u32 msr, u64 v)
 {
+	u32 low, high;
+
 	if (__this_cpu_read(injectm.finished)) {
 		int offset = msr_to_offset(msr);
 
@@ -423,7 +472,15 @@
 			*(u64 *)((char *)this_cpu_ptr(&injectm) + offset) = v;
 		return;
 	}
-	wrmsrl(msr, v);
+
+	low  = (u32)v;
+	high = (u32)(v >> 32);
+
+	/* See comment in mce_rdmsrl() */
+	asm volatile("1: wrmsr\n"
+		     "2:\n"
+		     _ASM_EXTABLE_HANDLE(1b, 2b, ex_handler_wrmsr_fault)
+		     : : "c" (msr), "a"(low), "d" (high) : "memory");
 }
 
 /*
@@ -533,6 +590,13 @@
 }
 EXPORT_SYMBOL_GPL(mce_is_memory_error);
 
+static bool whole_page(struct mce *m)
+{
+	if (!mca_cfg.ser || !(m->status & MCI_STATUS_MISCV))
+		return true;
+	return MCI_MISC_ADDR_LSB(m->misc) >= PAGE_SHIFT;
+}
+
 bool mce_is_correctable(struct mce *m)
 {
 	if (m->cpuvendor == X86_VENDOR_AMD && m->status & MCI_STATUS_DEFERRED)
@@ -601,7 +665,7 @@
 	if (mce_usable_address(mce) && (mce->severity == MCE_AO_SEVERITY)) {
 		pfn = mce->addr >> PAGE_SHIFT;
 		if (!memory_failure(pfn, 0))
-			set_mce_nospec(pfn);
+			set_mce_nospec(pfn, whole_page(mce));
 	}
 
 	return NOTIFY_OK;
@@ -636,7 +700,7 @@
 /*
  * Read ADDR and MISC registers.
  */
-static void mce_read_aux(struct mce *m, int i)
+static noinstr void mce_read_aux(struct mce *m, int i)
 {
 	if (m->status & MCI_STATUS_MISCV)
 		m->misc = mce_rdmsrl(msr_ops.misc(i));
@@ -814,8 +878,8 @@
 		if (quirk_no_way_out)
 			quirk_no_way_out(i, m, regs);
 
+		m->bank = i;
 		if (mce_severity(m, mca_cfg.tolerant, &tmp, true) >= MCE_PANIC_SEVERITY) {
-			m->bank = i;
 			mce_read_aux(m, i);
 			*msg = tmp;
 			return 1;
@@ -1016,10 +1080,13 @@
  * Synchronize between CPUs after main scanning loop.
  * This invokes the bulk of the Monarch processing.
  */
-static int mce_end(int order)
+static noinstr int mce_end(int order)
 {
-	int ret = -1;
 	u64 timeout = (u64)mca_cfg.monarch_timeout * NSEC_PER_USEC;
+	int ret = -1;
+
+	/* Allow instrumentation around external facilities. */
+	instrumentation_begin();
 
 	if (!timeout)
 		goto reset;
@@ -1063,7 +1130,8 @@
 		/*
 		 * Don't reset anything. That's done by the Monarch.
 		 */
-		return 0;
+		ret = 0;
+		goto out;
 	}
 
 	/*
@@ -1078,6 +1146,10 @@
 	 * Let others run again.
 	 */
 	atomic_set(&mce_executing, 0);
+
+out:
+	instrumentation_end();
+
 	return ret;
 }
 
@@ -1103,7 +1175,7 @@
 	if (ret)
 		pr_err("Memory error not recovered");
 	else
-		set_mce_nospec(m->addr >> PAGE_SHIFT);
+		set_mce_nospec(m->addr >> PAGE_SHIFT, whole_page(m));
 	return ret;
 }
 
@@ -1306,8 +1378,10 @@
 	 * When there's any problem use only local no_way_out state.
 	 */
 	if (!lmce) {
-		if (mce_end(order) < 0)
-			no_way_out = worst >= MCE_PANIC_SEVERITY;
+		if (mce_end(order) < 0) {
+			if (!no_way_out)
+				no_way_out = worst >= MCE_PANIC_SEVERITY;
+		}
 	} else {
 		/*
 		 * If there was a fatal machine check we should have
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/inject.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/inject.c
@@ -347,7 +347,7 @@
 	char buf[MAX_FLAG_OPT_SIZE], *__buf;
 	int err;
 
-	if (cnt > MAX_FLAG_OPT_SIZE)
+	if (!cnt || cnt > MAX_FLAG_OPT_SIZE)
 		return -EINVAL;
 
 	if (copy_from_user(&buf, ubuf, cnt))
@@ -511,7 +511,7 @@
 	 */
 	if (inj_type == DFR_INT_INJ) {
 		i_mce.status |= MCI_STATUS_DEFERRED;
-		i_mce.status |= (i_mce.status & ~MCI_STATUS_UC);
+		i_mce.status &= ~MCI_STATUS_UC;
 	}
 
 	/*
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/intel.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/intel.c
@@ -489,17 +489,18 @@
 			return;
 
 		if ((val & 3UL) == 1UL) {
-			/* PPIN available but disabled: */
+			/* PPIN locked in disabled mode */
 			return;
 		}
 
-		/* If PPIN is disabled, but not locked, try to enable: */
-		if (!(val & 3UL)) {
+		/* If PPIN is disabled, try to enable */
+		if (!(val & 2UL)) {
 			wrmsrl_safe(MSR_PPIN_CTL,  val | 2UL);
 			rdmsrl_safe(MSR_PPIN_CTL, &val);
 		}
 
-		if ((val & 3UL) == 2UL)
+		/* Is the enable bit set? */
+		if (val & 2UL)
 			set_cpu_cap(c, X86_FEATURE_INTEL_PPIN);
 	}
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/internal.h
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/internal.h
@@ -172,4 +172,14 @@
 static inline bool amd_filter_mce(struct mce *m)			{ return false; };
 #endif
 
+__visible bool ex_handler_rdmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr);
+
+__visible bool ex_handler_wrmsr_fault(const struct exception_table_entry *fixup,
+				      struct pt_regs *regs, int trapnr,
+				      unsigned long error_code,
+				      unsigned long fault_addr);
+
 #endif /* __X86_MCE_INTERNAL_H__ */
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/severity.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/severity.c
@@ -9,9 +9,11 @@
 #include <linux/seq_file.h>
 #include <linux/init.h>
 #include <linux/debugfs.h>
-#include <asm/mce.h>
 #include <linux/uaccess.h>
 
+#include <asm/mce.h>
+#include <asm/intel-family.h>
+
 #include "internal.h"
 
 /*
@@ -40,9 +42,14 @@
 	unsigned char context;
 	unsigned char excp;
 	unsigned char covered;
+	unsigned char cpu_model;
+	unsigned char cpu_minstepping;
+	unsigned char bank_lo, bank_hi;
 	char *msg;
 } severities[] = {
 #define MCESEV(s, m, c...) { .sev = MCE_ ## s ## _SEVERITY, .msg = m, ## c }
+#define BANK_RANGE(l, h) .bank_lo = l, .bank_hi = h
+#define MODEL_STEPPING(m, s) .cpu_model = m, .cpu_minstepping = s
 #define  KERNEL		.context = IN_KERNEL
 #define  USER		.context = IN_USER
 #define  KERNEL_RECOV	.context = IN_KERNEL_RECOV
@@ -97,7 +104,6 @@
 		KEEP, "Corrected error",
 		NOSER, BITCLR(MCI_STATUS_UC)
 		),
-
 	/*
 	 * known AO MCACODs reported via MCE or CMC:
 	 *
@@ -113,6 +119,18 @@
 		AO, "Action optional: last level cache writeback error",
 		SER, MASK(MCI_UC_AR|MCACOD, MCI_STATUS_UC|MCACOD_L3WB)
 		),
+	/*
+	 * Quirk for Skylake/Cascade Lake. Patrol scrubber may be configured
+	 * to report uncorrected errors using CMCI with a special signature.
+	 * UC=0, MSCOD=0x0010, MCACOD=binary(000X 0000 1100 XXXX) reported
+	 * in one of the memory controller banks.
+	 * Set severity to "AO" for same action as normal patrol scrub error.
+	 */
+	MCESEV(
+		AO, "Uncorrected Patrol Scrub Error",
+		SER, MASK(MCI_STATUS_UC|MCI_ADDR|0xffffeff0, MCI_ADDR|0x001000c0),
+		MODEL_STEPPING(INTEL_FAM6_SKYLAKE_X, 4), BANK_RANGE(13, 18)
+	),
 
 	/* ignore OVER for UCNA */
 	MCESEV(
@@ -320,6 +338,12 @@
 			continue;
 		if (s->excp && excp != s->excp)
 			continue;
+		if (s->cpu_model && boot_cpu_data.x86_model != s->cpu_model)
+			continue;
+		if (s->cpu_minstepping && boot_cpu_data.x86_stepping < s->cpu_minstepping)
+			continue;
+		if (s->bank_lo && (m->bank < s->bank_lo || m->bank > s->bank_hi))
+			continue;
 		if (msg)
 			*msg = s->msg;
 		s->covered = 1;
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mce/therm_throt.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mce/therm_throt.c
@@ -188,7 +188,7 @@
 	/* if we just entered the thermal event */
 	if (new_event) {
 		if (event == THERMAL_THROTTLING_EVENT)
-			pr_crit("CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n",
+			pr_warn("CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n",
 				this_cpu,
 				level == CORE_LEVEL ? "Core" : "Package",
 				state->count);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/microcode/amd.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/microcode/amd.c
@@ -55,7 +55,9 @@
 };
 
 static u32 ucode_new_rev;
-static u8 amd_ucode_patch[PATCH_MAX_SIZE];
+
+/* One blob per node. */
+static u8 amd_ucode_patch[MAX_NUMNODES][PATCH_MAX_SIZE];
 
 /*
  * Microcode patch container file is prepended to the initrd in cpio
@@ -429,7 +431,7 @@
 	patch	= (u8 (*)[PATCH_MAX_SIZE])__pa_nodebug(&amd_ucode_patch);
 #else
 	new_rev = &ucode_new_rev;
-	patch	= &amd_ucode_patch;
+	patch	= &amd_ucode_patch[0];
 #endif
 
 	desc.cpuid_1_eax = cpuid_1_eax;
@@ -441,7 +443,13 @@
 		return ret;
 
 	native_rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy);
-	if (rev >= mc->hdr.patch_id)
+
+	/*
+	 * Allow application of the same revision to pick up SMT-specific
+	 * changes even if the revision of the other SMT thread is already
+	 * up-to-date.
+	 */
+	if (rev > mc->hdr.patch_id)
 		return ret;
 
 	if (!__apply_microcode_amd(mc)) {
@@ -523,8 +531,12 @@
 
 	native_rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy);
 
-	/* Check whether we have saved a new patch already: */
-	if (*new_rev && rev < mc->hdr.patch_id) {
+	/*
+	 * Check whether a new patch has been saved already. Also, allow application of
+	 * the same revision in order to pick up SMT-thread-specific configuration even
+	 * if the sibling SMT thread already has an up-to-date revision.
+	 */
+	if (*new_rev && rev <= mc->hdr.patch_id) {
 		if (!__apply_microcode_amd(mc)) {
 			*new_rev = mc->hdr.patch_id;
 			return;
@@ -538,8 +550,7 @@
 	apply_microcode_early_amd(cpuid_1_eax, cp.data, cp.size, false);
 }
 
-static enum ucode_state
-load_microcode_amd(bool save, u8 family, const u8 *data, size_t size);
+static enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t size);
 
 int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
 {
@@ -557,19 +568,19 @@
 	if (!desc.mc)
 		return -EINVAL;
 
-	ret = load_microcode_amd(true, x86_family(cpuid_1_eax), desc.data, desc.size);
+	ret = load_microcode_amd(x86_family(cpuid_1_eax), desc.data, desc.size);
 	if (ret > UCODE_UPDATED)
 		return -EINVAL;
 
 	return 0;
 }
 
-void reload_ucode_amd(void)
+void reload_ucode_amd(unsigned int cpu)
 {
-	struct microcode_amd *mc;
 	u32 rev, dummy;
+	struct microcode_amd *mc;
 
-	mc = (struct microcode_amd *)amd_ucode_patch;
+	mc = (struct microcode_amd *)amd_ucode_patch[cpu_to_node(cpu)];
 
 	rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy);
 
@@ -689,7 +700,7 @@
 	rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy);
 
 	/* need to apply patch? */
-	if (rev >= mc_amd->hdr.patch_id) {
+	if (rev > mc_amd->hdr.patch_id) {
 		ret = UCODE_OK;
 		goto out;
 	}
@@ -783,6 +794,7 @@
 		kfree(patch);
 		return -EINVAL;
 	}
+	patch->size = *patch_size;
 
 	mc_hdr      = (struct microcode_header_amd *)(fw + SECTION_HDR_SIZE);
 	proc_id     = mc_hdr->processor_rev_id;
@@ -834,9 +846,10 @@
 	return UCODE_OK;
 }
 
-static enum ucode_state
-load_microcode_amd(bool save, u8 family, const u8 *data, size_t size)
+static enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t size)
 {
+	struct cpuinfo_x86 *c;
+	unsigned int nid, cpu;
 	struct ucode_patch *p;
 	enum ucode_state ret;
 
@@ -849,22 +862,22 @@
 		return ret;
 	}
 
-	p = find_patch(0);
-	if (!p) {
-		return ret;
-	} else {
-		if (boot_cpu_data.microcode >= p->patch_id)
-			return ret;
+	for_each_node(nid) {
+		cpu = cpumask_first(cpumask_of_node(nid));
+		c = &cpu_data(cpu);
+
+		p = find_patch(cpu);
+		if (!p)
+			continue;
 
-		ret = UCODE_NEW;
-	}
+		if (c->microcode >= p->patch_id)
+			continue;
 
-	/* save BSP's matching patch for early load */
-	if (!save)
-		return ret;
+		ret = UCODE_NEW;
 
-	memset(amd_ucode_patch, 0, PATCH_MAX_SIZE);
-	memcpy(amd_ucode_patch, p->data, min_t(u32, ksize(p->data), PATCH_MAX_SIZE));
+		memset(&amd_ucode_patch[nid], 0, PATCH_MAX_SIZE);
+		memcpy(&amd_ucode_patch[nid], p->data, min_t(u32, p->size, PATCH_MAX_SIZE));
+	}
 
 	return ret;
 }
@@ -890,12 +903,11 @@
 {
 	char fw_name[36] = "amd-ucode/microcode_amd.bin";
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
-	bool bsp = c->cpu_index == boot_cpu_data.cpu_index;
 	enum ucode_state ret = UCODE_NFOUND;
 	const struct firmware *fw;
 
 	/* reload ucode container only on the boot cpu */
-	if (!refresh_fw || !bsp)
+	if (!refresh_fw)
 		return UCODE_OK;
 
 	if (c->x86 >= 0x15)
@@ -910,7 +922,7 @@
 	if (!verify_container(fw->data, fw->size, false))
 		goto fw_release;
 
-	ret = load_microcode_amd(bsp, c->x86, fw->data, fw->size);
+	ret = load_microcode_amd(c->x86, fw->data, fw->size);
 
  fw_release:
 	release_firmware(fw);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/microcode/core.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/microcode/core.c
@@ -322,7 +322,7 @@
 #endif
 }
 
-void reload_early_microcode(void)
+void reload_early_microcode(unsigned int cpu)
 {
 	int vendor, family;
 
@@ -336,7 +336,7 @@
 		break;
 	case X86_VENDOR_AMD:
 		if (family >= 0x10)
-			reload_ucode_amd();
+			reload_ucode_amd(cpu);
 		break;
 	default:
 		break;
@@ -626,16 +626,16 @@
 	if (val != 1)
 		return size;
 
-	tmp_ret = microcode_ops->request_microcode_fw(bsp, &microcode_pdev->dev, true);
-	if (tmp_ret != UCODE_NEW)
-		return size;
-
 	get_online_cpus();
 
 	ret = check_online_cpus();
 	if (ret)
 		goto put;
 
+	tmp_ret = microcode_ops->request_microcode_fw(bsp, &microcode_pdev->dev, true);
+	if (tmp_ret != UCODE_NEW)
+		goto put;
+
 	mutex_lock(&microcode_mutex);
 	ret = microcode_reload_late();
 	mutex_unlock(&microcode_mutex);
@@ -772,9 +772,9 @@
 };
 
 /**
- * mc_bp_resume - Update boot CPU microcode during resume.
+ * microcode_bsp_resume - Update boot CPU microcode during resume.
  */
-static void mc_bp_resume(void)
+void microcode_bsp_resume(void)
 {
 	int cpu = smp_processor_id();
 	struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
@@ -782,11 +782,11 @@
 	if (uci->valid && uci->mc)
 		microcode_ops->apply_microcode(cpu);
 	else if (!uci->mc)
-		reload_early_microcode();
+		reload_early_microcode(cpu);
 }
 
 static struct syscore_ops mc_syscore_ops = {
-	.resume			= mc_bp_resume,
+	.resume			= microcode_bsp_resume,
 };
 
 static int mc_cpu_starting(unsigned int cpu)
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/microcode/intel.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/microcode/intel.c
@@ -100,53 +100,6 @@
 	return find_matching_signature(mc, csig, cpf);
 }
 
-/*
- * Given CPU signature and a microcode patch, this function finds if the
- * microcode patch has matching family and model with the CPU.
- *
- * %true - if there's a match
- * %false - otherwise
- */
-static bool microcode_matches(struct microcode_header_intel *mc_header,
-			      unsigned long sig)
-{
-	unsigned long total_size = get_totalsize(mc_header);
-	unsigned long data_size = get_datasize(mc_header);
-	struct extended_sigtable *ext_header;
-	unsigned int fam_ucode, model_ucode;
-	struct extended_signature *ext_sig;
-	unsigned int fam, model;
-	int ext_sigcount, i;
-
-	fam   = x86_family(sig);
-	model = x86_model(sig);
-
-	fam_ucode   = x86_family(mc_header->sig);
-	model_ucode = x86_model(mc_header->sig);
-
-	if (fam == fam_ucode && model == model_ucode)
-		return true;
-
-	/* Look for ext. headers: */
-	if (total_size <= data_size + MC_HEADER_SIZE)
-		return false;
-
-	ext_header   = (void *) mc_header + data_size + MC_HEADER_SIZE;
-	ext_sig      = (void *)ext_header + EXT_HEADER_SIZE;
-	ext_sigcount = ext_header->count;
-
-	for (i = 0; i < ext_sigcount; i++) {
-		fam_ucode   = x86_family(ext_sig->sig);
-		model_ucode = x86_model(ext_sig->sig);
-
-		if (fam == fam_ucode && model == model_ucode)
-			return true;
-
-		ext_sig++;
-	}
-	return false;
-}
-
 static struct ucode_patch *memdup_patch(void *data, unsigned int size)
 {
 	struct ucode_patch *p;
@@ -164,7 +117,7 @@
 	return p;
 }
 
-static void save_microcode_patch(void *data, unsigned int size)
+static void save_microcode_patch(struct ucode_cpu_info *uci, void *data, unsigned int size)
 {
 	struct microcode_header_intel *mc_hdr, *mc_saved_hdr;
 	struct ucode_patch *iter, *tmp, *p = NULL;
@@ -210,6 +163,9 @@
 	if (!p)
 		return;
 
+	if (!find_matching_signature(p->data, uci->cpu_sig.sig, uci->cpu_sig.pf))
+		return;
+
 	/*
 	 * Save for early loading. On 32-bit, that needs to be a physical
 	 * address as the APs are running from physical addresses, before
@@ -344,13 +300,14 @@
 
 		size -= mc_size;
 
-		if (!microcode_matches(mc_header, uci->cpu_sig.sig)) {
+		if (!find_matching_signature(data, uci->cpu_sig.sig,
+					     uci->cpu_sig.pf)) {
 			data += mc_size;
 			continue;
 		}
 
 		if (save) {
-			save_microcode_patch(data, mc_size);
+			save_microcode_patch(uci, data, mc_size);
 			goto next;
 		}
 
@@ -483,14 +440,14 @@
  * Save this microcode patch. It will be loaded early when a CPU is
  * hot-added or resumes.
  */
-static void save_mc_for_early(u8 *mc, unsigned int size)
+static void save_mc_for_early(struct ucode_cpu_info *uci, u8 *mc, unsigned int size)
 {
 	/* Synchronization during CPU hotplug. */
 	static DEFINE_MUTEX(x86_cpu_microcode_mutex);
 
 	mutex_lock(&x86_cpu_microcode_mutex);
 
-	save_microcode_patch(mc, size);
+	save_microcode_patch(uci, mc, size);
 	show_saved_mc();
 
 	mutex_unlock(&x86_cpu_microcode_mutex);
@@ -702,7 +659,6 @@
 	else
 		iup = &intel_ucode_patch;
 
-reget:
 	if (!*iup) {
 		patch = __load_ucode_intel(&uci);
 		if (!patch)
@@ -713,12 +669,7 @@
 
 	uci.mc = *iup;
 
-	if (apply_microcode_early(&uci, true)) {
-		/* Mixed-silicon system? Try to refetch the proper patch: */
-		*iup = NULL;
-
-		goto reget;
-	}
+	apply_microcode_early(&uci, true);
 }
 
 static struct microcode_intel *find_patch(struct ucode_cpu_info *uci)
@@ -934,7 +885,7 @@
 	 * permanent memory. So it will be loaded early when a CPU is hot added
 	 * or resumes.
 	 */
-	save_mc_for_early(new_mc, new_mc_size);
+	save_mc_for_early(uci, new_mc, new_mc_size);
 
 	pr_debug("CPU%d found a matching microcode update with version 0x%x (current=0x%x)\n",
 		 cpu, new_rev, uci->cpu_sig.rev);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mshyperv.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mshyperv.c
@@ -82,7 +82,7 @@
 	inc_irq_stat(hyperv_stimer0_count);
 	if (hv_stimer0_handler)
 		hv_stimer0_handler();
-	add_interrupt_randomness(HYPERV_STIMER0_VECTOR, 0);
+	add_interrupt_randomness(HYPERV_STIMER0_VECTOR);
 	ack_APIC_irq();
 
 	exiting_irq();
@@ -227,8 +227,8 @@
 	ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
 	ms_hyperv.hints    = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO);
 
-	pr_info("Hyper-V: features 0x%x, hints 0x%x\n",
-		ms_hyperv.features, ms_hyperv.hints);
+	pr_info("Hyper-V: features 0x%x, hints 0x%x, misc 0x%x\n",
+		ms_hyperv.features, ms_hyperv.hints, ms_hyperv.misc_features);
 
 	ms_hyperv.max_vp_index = cpuid_eax(HYPERV_CPUID_IMPLEMENT_LIMITS);
 	ms_hyperv.max_lp_index = cpuid_ebx(HYPERV_CPUID_IMPLEMENT_LIMITS);
@@ -263,6 +263,16 @@
 			cpuid_eax(HYPERV_CPUID_NESTED_FEATURES);
 	}
 
+	/*
+	 * Hyper-V expects to get crash register data or kmsg when
+	 * crash enlightment is available and system crashes. Set
+	 * crash_kexec_post_notifiers to be true to make sure that
+	 * calling crash enlightment interface before running kdump
+	 * kernel.
+	 */
+	if (ms_hyperv.misc_features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE)
+		crash_kexec_post_notifiers = true;
+
 #ifdef CONFIG_X86_LOCAL_APIC
 	if (ms_hyperv.features & HV_X64_ACCESS_FREQUENCY_MSRS &&
 	    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mtrr/generic.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mtrr/generic.c
@@ -167,9 +167,6 @@
 	*repeat = 0;
 	*uniform = 1;
 
-	/* Make end inclusive instead of exclusive */
-	end--;
-
 	prev_match = MTRR_TYPE_INVALID;
 	for (i = 0; i < num_var_ranges; ++i) {
 		unsigned short start_state, end_state, inclusive;
@@ -261,6 +258,9 @@
 	int repeat;
 	u64 partial_end;
 
+	/* Make end inclusive instead of exclusive */
+	end--;
+
 	if (!mtrr_state_set)
 		return MTRR_TYPE_INVALID;
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/mtrr/mtrr.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/mtrr/mtrr.c
@@ -794,8 +794,6 @@
 	if (!use_intel() || mtrr_aps_delayed_init)
 		return;
 
-	rcu_cpu_starting(smp_processor_id());
-
 	/*
 	 * Ideally we should hold mtrr_mutex here to avoid mtrr entries
 	 * changed, but this routine will be called in cpu boot time,
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/resctrl/core.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/resctrl/core.c
@@ -260,6 +260,7 @@
 	r->num_closid = edx.split.cos_max + 1;
 	r->membw.max_delay = eax.split.max_delay + 1;
 	r->default_ctrl = MAX_MBA_BW;
+	r->membw.mbm_width = MBM_CNTR_WIDTH;
 	if (ecx & MBA_IS_LINEAR) {
 		r->membw.delay_linear = true;
 		r->membw.min_bw = MAX_MBA_BW - r->membw.max_delay;
@@ -289,6 +290,7 @@
 	/* AMD does not use delay */
 	r->membw.delay_linear = false;
 
+	r->membw.mbm_width = MBM_CNTR_WIDTH_AMD;
 	r->membw.min_bw = 0;
 	r->membw.bw_gran = 1;
 	/* Max value is 2048, Data width should be 4 in decimal */
@@ -578,12 +580,16 @@
 	d->id = id;
 	cpumask_set_cpu(cpu, &d->cpu_mask);
 
+	rdt_domain_reconfigure_cdp(r);
+
 	if (r->alloc_capable && domain_setup_ctrlval(r, d)) {
 		kfree(d);
 		return;
 	}
 
 	if (r->mon_capable && domain_setup_mon_state(r, d)) {
+		kfree(d->ctrl_val);
+		kfree(d->mbps_val);
 		kfree(d);
 		return;
 	}
@@ -618,7 +624,7 @@
 		if (static_branch_unlikely(&rdt_mon_enable_key))
 			rmdir_mondata_subdir_allrdtgrp(r, d->id);
 		list_del(&d->list);
-		if (is_mbm_enabled())
+		if (r->mon_capable && is_mbm_enabled())
 			cancel_delayed_work(&d->mbm_over);
 		if (is_llc_occupancy_enabled() &&  has_busy_rmid(r, d)) {
 			/*
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/resctrl/internal.h
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/resctrl/internal.h
@@ -32,6 +32,7 @@
 #define CQM_LIMBOCHECK_INTERVAL	1000
 
 #define MBM_CNTR_WIDTH			24
+#define MBM_CNTR_WIDTH_AMD		44
 #define MBM_OVERFLOW_INTERVAL		1000
 #define MAX_MBA_BW			100u
 #define MBA_IS_LINEAR			0x4
@@ -57,6 +58,7 @@
 }
 
 DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
+DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
 
 /**
  * struct mon_evt - Entry in the event list of a resource
@@ -274,7 +276,6 @@
  * struct mbm_state - status for each MBM counter in each domain
  * @chunks:	Total data moved (multiply by rdt_group.mon_scale to get bytes)
  * @prev_msr	Value of IA32_QM_CTR for this RMID last time we read it
- * @chunks_bw	Total local data moved. Used for bandwidth calculation
  * @prev_bw_msr:Value of previous IA32_QM_CTR for bandwidth counting
  * @prev_bw	The most recent bandwidth in MBps
  * @delta_bw	Difference between the current and previous bandwidth
@@ -283,7 +284,6 @@
 struct mbm_state {
 	u64	chunks;
 	u64	prev_msr;
-	u64	chunks_bw;
 	u64	prev_bw_msr;
 	u32	prev_bw;
 	u32	delta_bw;
@@ -367,6 +367,7 @@
  * @min_bw:		Minimum memory bandwidth percentage user can request
  * @bw_gran:		Granularity at which the memory bandwidth is allocated
  * @delay_linear:	True if memory B/W delay is in linear scale
+ * @mbm_width:		memory B/W monitor counter width
  * @mba_sc:		True if MBA software controller(mba_sc) is enabled
  * @mb_map:		Mapping of memory B/W percentage to memory B/W delay
  */
@@ -375,6 +376,7 @@
 	u32		min_bw;
 	u32		bw_gran;
 	u32		delay_linear;
+	u32		mbm_width;
 	bool		mba_sc;
 	u32		*mb_map;
 };
@@ -600,5 +602,6 @@
 void __check_limbo(struct rdt_domain *d, bool force_free);
 bool cbm_validate_intel(char *buf, u32 *data, struct rdt_resource *r);
 bool cbm_validate_amd(char *buf, u32 *data, struct rdt_resource *r);
+void rdt_domain_reconfigure_cdp(struct rdt_resource *r);
 
 #endif /* _ASM_X86_RESCTRL_INTERNAL_H */
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/resctrl/monitor.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -216,21 +216,21 @@
 
 static u64 mbm_overflow_count(u64 prev_msr, u64 cur_msr)
 {
-	u64 shift = 64 - MBM_CNTR_WIDTH, chunks;
+	u64 shift, chunks;
 
+	shift = 64 - rdt_resources_all[RDT_RESOURCE_MBA].membw.mbm_width;
 	chunks = (cur_msr << shift) - (prev_msr << shift);
 	return chunks >>= shift;
 }
 
-static int __mon_event_count(u32 rmid, struct rmid_read *rr)
+static u64 __mon_event_count(u32 rmid, struct rmid_read *rr)
 {
 	struct mbm_state *m;
 	u64 chunks, tval;
 
 	tval = __rmid_read(rmid, rr->evtid);
 	if (tval & (RMID_VAL_ERROR | RMID_VAL_UNAVAIL)) {
-		rr->val = tval;
-		return -EINVAL;
+		return tval;
 	}
 	switch (rr->evtid) {
 	case QOS_L3_OCCUP_EVENT_ID:
@@ -244,10 +244,10 @@
 		break;
 	default:
 		/*
-		 * Code would never reach here because
-		 * an invalid event id would fail the __rmid_read.
+		 * Code would never reach here because an invalid
+		 * event id would fail the __rmid_read.
 		 */
-		return -EINVAL;
+		return RMID_VAL_ERROR;
 	}
 
 	if (rr->first) {
@@ -279,8 +279,6 @@
 		return;
 
 	chunks = mbm_overflow_count(m->prev_bw_msr, tval);
-	m->chunks_bw += chunks;
-	m->chunks = m->chunks_bw;
 	cur_bw = (chunks * r->mon_scale) >> 20;
 
 	if (m->delta_comp)
@@ -299,23 +297,29 @@
 	struct rdtgroup *rdtgrp, *entry;
 	struct rmid_read *rr = info;
 	struct list_head *head;
+	u64 ret_val;
 
 	rdtgrp = rr->rgrp;
 
-	if (__mon_event_count(rdtgrp->mon.rmid, rr))
-		return;
+	ret_val = __mon_event_count(rdtgrp->mon.rmid, rr);
 
 	/*
-	 * For Ctrl groups read data from child monitor groups.
+	 * For Ctrl groups read data from child monitor groups and
+	 * add them together. Count events which are read successfully.
+	 * Discard the rmid_read's reporting errors.
 	 */
 	head = &rdtgrp->mon.crdtgrp_list;
 
 	if (rdtgrp->type == RDTCTRL_GROUP) {
 		list_for_each_entry(entry, head, mon.crdtgrp_list) {
-			if (__mon_event_count(entry->mon.rmid, rr))
-				return;
+			if (__mon_event_count(entry->mon.rmid, rr) == 0)
+				ret_val = 0;
 		}
 	}
+
+	/* Report error if none of rmid_reads are successful */
+	if (ret_val)
+		rr->val = ret_val;
 }
 
 /*
@@ -450,15 +454,14 @@
 	}
 	if (is_mbm_local_enabled()) {
 		rr.evtid = QOS_L3_MBM_LOCAL_EVENT_ID;
+		__mon_event_count(rmid, &rr);
 
 		/*
 		 * Call the MBA software controller only for the
 		 * control groups and when user has enabled
 		 * the software controller explicitly.
 		 */
-		if (!is_mba_sc(NULL))
-			__mon_event_count(rmid, &rr);
-		else
+		if (is_mba_sc(NULL))
 			mbm_bw_count(rmid, &rr);
 	}
 }
@@ -514,7 +517,7 @@
 
 	mutex_lock(&rdtgroup_mutex);
 
-	if (!static_branch_likely(&rdt_enable_key))
+	if (!static_branch_likely(&rdt_mon_enable_key))
 		goto out_unlock;
 
 	d = get_domain_from_cpu(cpu, &rdt_resources_all[RDT_RESOURCE_L3]);
@@ -543,7 +546,7 @@
 	unsigned long delay = msecs_to_jiffies(delay_ms);
 	int cpu;
 
-	if (!static_branch_likely(&rdt_enable_key))
+	if (!static_branch_likely(&rdt_mon_enable_key))
 		return;
 	cpu = cpumask_any(&dom->cpu_mask);
 	dom->mbm_work_cpu = cpu;
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -416,6 +416,7 @@
 	struct pseudo_lock_region *plr = rdtgrp->plr;
 	u32 rmid_p, closid_p;
 	unsigned long i;
+	u64 saved_msr;
 #ifdef CONFIG_KASAN
 	/*
 	 * The registers used for local register variables are also used
@@ -459,6 +460,7 @@
 	 * the buffer and evict pseudo-locked memory read earlier from the
 	 * cache.
 	 */
+	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
 	__wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
@@ -510,7 +512,7 @@
 	__wrmsr(IA32_PQR_ASSOC, rmid_p, closid_p);
 
 	/* Re-enable the hardware prefetcher(s) */
-	wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0);
+	wrmsrl(MSR_MISC_FEATURE_CONTROL, saved_msr);
 	local_irq_enable();
 
 	plr->thread_done = 1;
@@ -867,6 +869,7 @@
 static int measure_cycles_lat_fn(void *_plr)
 {
 	struct pseudo_lock_region *plr = _plr;
+	u32 saved_low, saved_high;
 	unsigned long i;
 	u64 start, end;
 	void *mem_r;
@@ -875,6 +878,7 @@
 	/*
 	 * Disable hardware prefetchers.
 	 */
+	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
 	mem_r = READ_ONCE(plr->kmem);
 	/*
@@ -891,7 +895,7 @@
 		end = rdtsc_ordered();
 		trace_pseudo_lock_mem_latency((u32)(end - start));
 	}
-	wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0);
+	wrmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	local_irq_enable();
 	plr->thread_done = 1;
 	wake_up_interruptible(&plr->lock_thread_wq);
@@ -936,6 +940,7 @@
 	u64 hits_before = 0, hits_after = 0, miss_before = 0, miss_after = 0;
 	struct perf_event *miss_event, *hit_event;
 	int hit_pmcnum, miss_pmcnum;
+	u32 saved_low, saved_high;
 	unsigned int line_size;
 	unsigned int size;
 	unsigned long i;
@@ -969,6 +974,7 @@
 	/*
 	 * Disable hardware prefetchers.
 	 */
+	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
 
 	/* Initialize rest of local variables */
@@ -1027,7 +1033,7 @@
 	 */
 	rmb();
 	/* Re-enable hardware prefetchers */
-	wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0);
+	wrmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	local_irq_enable();
 out_hit:
 	perf_event_release_kernel(hit_event);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -311,7 +311,7 @@
 	 * executing task might have its own closid selected. Just reuse
 	 * the context switch code.
 	 */
-	resctrl_sched_in();
+	resctrl_sched_in(current);
 }
 
 /*
@@ -507,85 +507,102 @@
 	return ret ?: nbytes;
 }
 
-struct task_move_callback {
-	struct callback_head	work;
-	struct rdtgroup		*rdtgrp;
-};
-
-static void move_myself(struct callback_head *head)
+/**
+ * rdtgroup_remove - the helper to remove resource group safely
+ * @rdtgrp: resource group to remove
+ *
+ * On resource group creation via a mkdir, an extra kernfs_node reference is
+ * taken to ensure that the rdtgroup structure remains accessible for the
+ * rdtgroup_kn_unlock() calls where it is removed.
+ *
+ * Drop the extra reference here, then free the rdtgroup structure.
+ *
+ * Return: void
+ */
+static void rdtgroup_remove(struct rdtgroup *rdtgrp)
 {
-	struct task_move_callback *callback;
-	struct rdtgroup *rdtgrp;
-
-	callback = container_of(head, struct task_move_callback, work);
-	rdtgrp = callback->rdtgrp;
+	kernfs_put(rdtgrp->kn);
+	kfree(rdtgrp);
+}
 
+static void _update_task_closid_rmid(void *task)
+{
 	/*
-	 * If resource group was deleted before this task work callback
-	 * was invoked, then assign the task to root group and free the
-	 * resource group.
+	 * If the task is still current on this CPU, update PQR_ASSOC MSR.
+	 * Otherwise, the MSR is updated when the task is scheduled in.
 	 */
-	if (atomic_dec_and_test(&rdtgrp->waitcount) &&
-	    (rdtgrp->flags & RDT_DELETED)) {
-		current->closid = 0;
-		current->rmid = 0;
-		kfree(rdtgrp);
-	}
-
-	preempt_disable();
-	/* update PQR_ASSOC MSR to make resource group go into effect */
-	resctrl_sched_in();
-	preempt_enable();
+	if (task == current)
+		resctrl_sched_in(task);
+}
 
-	kfree(callback);
+static void update_task_closid_rmid(struct task_struct *t)
+{
+	if (IS_ENABLED(CONFIG_SMP) && task_curr(t))
+		smp_call_function_single(task_cpu(t), _update_task_closid_rmid, t, 1);
+	else
+		_update_task_closid_rmid(t);
 }
 
 static int __rdtgroup_move_task(struct task_struct *tsk,
 				struct rdtgroup *rdtgrp)
 {
-	struct task_move_callback *callback;
-	int ret;
-
-	callback = kzalloc(sizeof(*callback), GFP_KERNEL);
-	if (!callback)
-		return -ENOMEM;
-	callback->work.func = move_myself;
-	callback->rdtgrp = rdtgrp;
+	/* If the task is already in rdtgrp, no need to move the task. */
+	if ((rdtgrp->type == RDTCTRL_GROUP && tsk->closid == rdtgrp->closid &&
+	     tsk->rmid == rdtgrp->mon.rmid) ||
+	    (rdtgrp->type == RDTMON_GROUP && tsk->rmid == rdtgrp->mon.rmid &&
+	     tsk->closid == rdtgrp->mon.parent->closid))
+		return 0;
 
 	/*
-	 * Take a refcount, so rdtgrp cannot be freed before the
-	 * callback has been invoked.
+	 * Set the task's closid/rmid before the PQR_ASSOC MSR can be
+	 * updated by them.
+	 *
+	 * For ctrl_mon groups, move both closid and rmid.
+	 * For monitor groups, can move the tasks only from
+	 * their parent CTRL group.
 	 */
-	atomic_inc(&rdtgrp->waitcount);
-	ret = task_work_add(tsk, &callback->work, true);
-	if (ret) {
-		/*
-		 * Task is exiting. Drop the refcount and free the callback.
-		 * No need to check the refcount as the group cannot be
-		 * deleted before the write function unlocks rdtgroup_mutex.
-		 */
-		atomic_dec(&rdtgrp->waitcount);
-		kfree(callback);
-		rdt_last_cmd_puts("Task exited\n");
-	} else {
-		/*
-		 * For ctrl_mon groups move both closid and rmid.
-		 * For monitor groups, can move the tasks only from
-		 * their parent CTRL group.
-		 */
-		if (rdtgrp->type == RDTCTRL_GROUP) {
-			tsk->closid = rdtgrp->closid;
-			tsk->rmid = rdtgrp->mon.rmid;
-		} else if (rdtgrp->type == RDTMON_GROUP) {
-			if (rdtgrp->mon.parent->closid == tsk->closid) {
-				tsk->rmid = rdtgrp->mon.rmid;
-			} else {
-				rdt_last_cmd_puts("Can't move task to different control group\n");
-				ret = -EINVAL;
-			}
+
+	if (rdtgrp->type == RDTCTRL_GROUP) {
+		WRITE_ONCE(tsk->closid, rdtgrp->closid);
+		WRITE_ONCE(tsk->rmid, rdtgrp->mon.rmid);
+	} else if (rdtgrp->type == RDTMON_GROUP) {
+		if (rdtgrp->mon.parent->closid == tsk->closid) {
+			WRITE_ONCE(tsk->rmid, rdtgrp->mon.rmid);
+		} else {
+			rdt_last_cmd_puts("Can't move task to different control group\n");
+			return -EINVAL;
 		}
 	}
-	return ret;
+
+	/*
+	 * Ensure the task's closid and rmid are written before determining if
+	 * the task is current that will decide if it will be interrupted.
+	 * This pairs with the full barrier between the rq->curr update and
+	 * resctrl_sched_in() during context switch.
+	 */
+	smp_mb();
+
+	/*
+	 * By now, the task's closid and rmid are set. If the task is current
+	 * on a CPU, the PQR_ASSOC MSR needs to be updated to make the resource
+	 * group go into effect. If the task is not current, the MSR will be
+	 * updated when the task is scheduled in.
+	 */
+	update_task_closid_rmid(tsk);
+
+	return 0;
+}
+
+static bool is_closid_match(struct task_struct *t, struct rdtgroup *r)
+{
+	return (rdt_alloc_capable &&
+	       (r->type == RDTCTRL_GROUP) && (t->closid == r->closid));
+}
+
+static bool is_rmid_match(struct task_struct *t, struct rdtgroup *r)
+{
+	return (rdt_mon_capable &&
+	       (r->type == RDTMON_GROUP) && (t->rmid == r->mon.rmid));
 }
 
 /**
@@ -603,8 +620,7 @@
 
 	rcu_read_lock();
 	for_each_process_thread(p, t) {
-		if ((r->type == RDTCTRL_GROUP && t->closid == r->closid) ||
-		    (r->type == RDTMON_GROUP && t->rmid == r->mon.rmid)) {
+		if (is_closid_match(t, r) || is_rmid_match(t, r)) {
 			ret = 1;
 			break;
 		}
@@ -699,12 +715,15 @@
 static void show_rdt_tasks(struct rdtgroup *r, struct seq_file *s)
 {
 	struct task_struct *p, *t;
+	pid_t pid;
 
 	rcu_read_lock();
 	for_each_process_thread(p, t) {
-		if ((r->type == RDTCTRL_GROUP && t->closid == r->closid) ||
-		    (r->type == RDTMON_GROUP && t->rmid == r->mon.rmid))
-			seq_printf(s, "%d\n", t->pid);
+		if (is_closid_match(t, r) || is_rmid_match(t, r)) {
+			pid = task_pid_vnr(t);
+			if (pid)
+				seq_printf(s, "%d\n", pid);
+		}
 	}
 	rcu_read_unlock();
 }
@@ -1027,6 +1046,7 @@
 	_d_cdp = rdt_find_domain(_r_cdp, d->id, NULL);
 	if (WARN_ON(IS_ERR_OR_NULL(_d_cdp))) {
 		_r_cdp = NULL;
+		_d_cdp = NULL;
 		ret = -EINVAL;
 	}
 
@@ -1617,7 +1637,6 @@
 	if (IS_ERR(kn_subdir))
 		return PTR_ERR(kn_subdir);
 
-	kernfs_get(kn_subdir);
 	ret = rdtgroup_kn_set_ugid(kn_subdir);
 	if (ret)
 		return ret;
@@ -1640,7 +1659,6 @@
 	kn_info = kernfs_create_dir(parent_kn, "info", parent_kn->mode, NULL);
 	if (IS_ERR(kn_info))
 		return PTR_ERR(kn_info);
-	kernfs_get(kn_info);
 
 	ret = rdtgroup_add_files(kn_info, RF_TOP_INFO);
 	if (ret)
@@ -1661,12 +1679,6 @@
 			goto out_destroy;
 	}
 
-	/*
-	 * This extra ref will be put in kernfs_remove() and guarantees
-	 * that @rdtgrp->kn is always accessible.
-	 */
-	kernfs_get(kn_info);
-
 	ret = rdtgroup_kn_set_ugid(kn_info);
 	if (ret)
 		goto out_destroy;
@@ -1695,12 +1707,6 @@
 	if (dest_kn)
 		*dest_kn = kn;
 
-	/*
-	 * This extra ref will be put in kernfs_remove() and guarantees
-	 * that @rdtgrp->kn is always accessible.
-	 */
-	kernfs_get(kn);
-
 	ret = rdtgroup_kn_set_ugid(kn);
 	if (ret)
 		goto out_destroy;
@@ -1741,9 +1747,6 @@
 	struct rdt_domain *d;
 	int cpu;
 
-	if (!zalloc_cpumask_var(&cpu_mask, GFP_KERNEL))
-		return -ENOMEM;
-
 	if (level == RDT_RESOURCE_L3)
 		update = l3_qos_cfg_update;
 	else if (level == RDT_RESOURCE_L2)
@@ -1751,6 +1754,9 @@
 	else
 		return -EINVAL;
 
+	if (!zalloc_cpumask_var(&cpu_mask, GFP_KERNEL))
+		return -ENOMEM;
+
 	r_l = &rdt_resources_all[level];
 	list_for_each_entry(d, &r_l->domains, list) {
 		/* Pick one CPU from each domain instance to update MSR */
@@ -1769,6 +1775,19 @@
 	return 0;
 }
 
+/* Restore the qos cfg state when a domain comes online */
+void rdt_domain_reconfigure_cdp(struct rdt_resource *r)
+{
+	if (!r->alloc_capable)
+		return;
+
+	if (r == &rdt_resources_all[RDT_RESOURCE_L2DATA])
+		l2_qos_cfg_update(&r->alloc_enabled);
+
+	if (r == &rdt_resources_all[RDT_RESOURCE_L3DATA])
+		l3_qos_cfg_update(&r->alloc_enabled);
+}
+
 /*
  * Enable or disable the MBA software controller
  * which helps user specify bandwidth in MBps.
@@ -1914,8 +1933,7 @@
 		    rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED)
 			rdtgroup_pseudo_lock_remove(rdtgrp);
 		kernfs_unbreak_active_protection(kn);
-		kernfs_put(rdtgrp->kn);
-		kfree(rdtgrp);
+		rdtgroup_remove(rdtgrp);
 	} else {
 		kernfs_unbreak_active_protection(kn);
 	}
@@ -1970,17 +1988,15 @@
 
 	if (rdt_mon_capable) {
 		ret = mongroup_create_dir(rdtgroup_default.kn,
-					  NULL, "mon_groups",
+					  &rdtgroup_default, "mon_groups",
 					  &kn_mongrp);
 		if (ret < 0)
 			goto out_info;
-		kernfs_get(kn_mongrp);
 
 		ret = mkdir_mondata_all(rdtgroup_default.kn,
 					&rdtgroup_default, &kn_mondata);
 		if (ret < 0)
 			goto out_mongrp;
-		kernfs_get(kn_mondata);
 		rdtgroup_default.mon.mon_data_kn = kn_mondata;
 	}
 
@@ -2146,18 +2162,6 @@
 	return 0;
 }
 
-static bool is_closid_match(struct task_struct *t, struct rdtgroup *r)
-{
-	return (rdt_alloc_capable &&
-		(r->type == RDTCTRL_GROUP) && (t->closid == r->closid));
-}
-
-static bool is_rmid_match(struct task_struct *t, struct rdtgroup *r)
-{
-	return (rdt_mon_capable &&
-		(r->type == RDTMON_GROUP) && (t->rmid == r->mon.rmid));
-}
-
 /*
  * Move tasks from one to the other group. If @from is NULL, then all tasks
  * in the systems are moved unconditionally (used for teardown).
@@ -2175,22 +2179,26 @@
 	for_each_process_thread(p, t) {
 		if (!from || is_closid_match(t, from) ||
 		    is_rmid_match(t, from)) {
-			t->closid = to->closid;
-			t->rmid = to->mon.rmid;
+			WRITE_ONCE(t->closid, to->closid);
+			WRITE_ONCE(t->rmid, to->mon.rmid);
 
-#ifdef CONFIG_SMP
 			/*
-			 * This is safe on x86 w/o barriers as the ordering
-			 * of writing to task_cpu() and t->on_cpu is
-			 * reverse to the reading here. The detection is
-			 * inaccurate as tasks might move or schedule
-			 * before the smp function call takes place. In
-			 * such a case the function call is pointless, but
+			 * Order the closid/rmid stores above before the loads
+			 * in task_curr(). This pairs with the full barrier
+			 * between the rq->curr update and resctrl_sched_in()
+			 * during context switch.
+			 */
+			smp_mb();
+
+			/*
+			 * If the task is on a CPU, set the CPU in the mask.
+			 * The detection is inaccurate as tasks might move or
+			 * schedule before the smp function call takes place.
+			 * In such a case the function call is pointless, but
 			 * there is no other side effect.
 			 */
-			if (mask && t->on_cpu)
+			if (IS_ENABLED(CONFIG_SMP) && mask && task_curr(t))
 				cpumask_set_cpu(task_cpu(t), mask);
-#endif
 		}
 	}
 	read_unlock(&tasklist_lock);
@@ -2205,7 +2213,11 @@
 	list_for_each_entry_safe(sentry, stmp, head, mon.crdtgrp_list) {
 		free_rmid(sentry->mon.rmid);
 		list_del(&sentry->mon.crdtgrp_list);
-		kfree(sentry);
+
+		if (atomic_read(&sentry->waitcount) != 0)
+			sentry->flags = RDT_DELETED;
+		else
+			rdtgroup_remove(sentry);
 	}
 }
 
@@ -2243,7 +2255,11 @@
 
 		kernfs_remove(rdtgrp->kn);
 		list_del(&rdtgrp->rdtgroup_list);
-		kfree(rdtgrp);
+
+		if (atomic_read(&rdtgrp->waitcount) != 0)
+			rdtgrp->flags = RDT_DELETED;
+		else
+			rdtgroup_remove(rdtgrp);
 	}
 	/* Notify online CPUs to update per cpu storage and PQR_ASSOC MSR */
 	update_closid_rmid(cpu_online_mask, &rdtgroup_default);
@@ -2343,11 +2359,6 @@
 	if (IS_ERR(kn))
 		return PTR_ERR(kn);
 
-	/*
-	 * This extra ref will be put in kernfs_remove() and guarantees
-	 * that kn is always accessible.
-	 */
-	kernfs_get(kn);
 	ret = rdtgroup_kn_set_ugid(kn);
 	if (ret)
 		goto out_destroy;
@@ -2446,7 +2457,7 @@
 	/*
 	 * Create the mon_data directory first.
 	 */
-	ret = mongroup_create_dir(parent_kn, NULL, "mon_data", &kn);
+	ret = mongroup_create_dir(parent_kn, prgrp, "mon_data", &kn);
 	if (ret)
 		return ret;
 
@@ -2645,7 +2656,7 @@
 	uint files = 0;
 	int ret;
 
-	prdtgrp = rdtgroup_kn_lock_live(prgrp_kn);
+	prdtgrp = rdtgroup_kn_lock_live(parent_kn);
 	if (!prdtgrp) {
 		ret = -ENODEV;
 		goto out_unlock;
@@ -2683,8 +2694,8 @@
 	/*
 	 * kernfs_remove() will drop the reference count on "kn" which
 	 * will free it. But we still need it to stick around for the
-	 * rdtgroup_kn_unlock(kn} call below. Take one extra reference
-	 * here, which will be dropped inside rdtgroup_kn_unlock().
+	 * rdtgroup_kn_unlock(kn) call. Take one extra reference here,
+	 * which will be dropped by kernfs_put() in rdtgroup_remove().
 	 */
 	kernfs_get(kn);
 
@@ -2718,18 +2729,19 @@
 	kernfs_activate(kn);
 
 	/*
-	 * The caller unlocks the prgrp_kn upon success.
+	 * The caller unlocks the parent_kn upon success.
 	 */
 	return 0;
 
 out_idfree:
 	free_rmid(rdtgrp->mon.rmid);
 out_destroy:
+	kernfs_put(rdtgrp->kn);
 	kernfs_remove(rdtgrp->kn);
 out_free_rgrp:
 	kfree(rdtgrp);
 out_unlock:
-	rdtgroup_kn_unlock(prgrp_kn);
+	rdtgroup_kn_unlock(parent_kn);
 	return ret;
 }
 
@@ -2737,7 +2749,7 @@
 {
 	kernfs_remove(rgrp->kn);
 	free_rmid(rgrp->mon.rmid);
-	kfree(rgrp);
+	rdtgroup_remove(rgrp);
 }
 
 /*
@@ -2767,7 +2779,7 @@
 	 */
 	list_add_tail(&rdtgrp->mon.crdtgrp_list, &prgrp->mon.crdtgrp_list);
 
-	rdtgroup_kn_unlock(prgrp_kn);
+	rdtgroup_kn_unlock(parent_kn);
 	return ret;
 }
 
@@ -2810,7 +2822,7 @@
 		 * Create an empty mon_groups directory to hold the subset
 		 * of tasks and cpus to monitor.
 		 */
-		ret = mongroup_create_dir(kn, NULL, "mon_groups", NULL);
+		ret = mongroup_create_dir(kn, rdtgrp, "mon_groups", NULL);
 		if (ret) {
 			rdt_last_cmd_puts("kernfs subdir error\n");
 			goto out_del_list;
@@ -2826,7 +2838,7 @@
 out_common_fail:
 	mkdir_rdt_prepare_clean(rdtgrp);
 out_unlock:
-	rdtgroup_kn_unlock(prgrp_kn);
+	rdtgroup_kn_unlock(parent_kn);
 	return ret;
 }
 
@@ -2899,11 +2911,6 @@
 	WARN_ON(list_empty(&prdtgrp->mon.crdtgrp_list));
 	list_del(&rdtgrp->mon.crdtgrp_list);
 
-	/*
-	 * one extra hold on this, will drop when we kfree(rdtgrp)
-	 * in rdtgroup_kn_unlock()
-	 */
-	kernfs_get(kn);
 	kernfs_remove(rdtgrp->kn);
 
 	return 0;
@@ -2915,11 +2922,6 @@
 	rdtgrp->flags = RDT_DELETED;
 	list_del(&rdtgrp->rdtgroup_list);
 
-	/*
-	 * one extra hold on this, will drop when we kfree(rdtgrp)
-	 * in rdtgroup_kn_unlock()
-	 */
-	kernfs_get(kn);
 	kernfs_remove(rdtgrp->kn);
 	return 0;
 }
@@ -2952,13 +2954,13 @@
 	closid_free(rdtgrp->closid);
 	free_rmid(rdtgrp->mon.rmid);
 
+	rdtgroup_ctrl_remove(kn, rdtgrp);
+
 	/*
 	 * Free all the child monitor group rmids.
 	 */
 	free_all_child_rdtgrp(rdtgrp);
 
-	rdtgroup_ctrl_remove(kn, rdtgrp);
-
 	return 0;
 }
 
@@ -2985,7 +2987,8 @@
 	 * If the rdtgroup is a mon group and parent directory
 	 * is a valid "mon_groups" directory, remove the mon group.
 	 */
-	if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn) {
+	if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn &&
+	    rdtgrp != &rdtgroup_default) {
 		if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP ||
 		    rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) {
 			ret = rdtgroup_ctrl_remove(kn, rdtgrp);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/scattered.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/scattered.c
@@ -26,6 +26,7 @@
 static const struct cpuid_bit cpuid_bits[] = {
 	{ X86_FEATURE_APERFMPERF,       CPUID_ECX,  0, 0x00000006, 0 },
 	{ X86_FEATURE_EPB,		CPUID_ECX,  3, 0x00000006, 0 },
+	{ X86_FEATURE_RRSBA_CTRL,	CPUID_EDX,  2, 0x00000007, 2 },
 	{ X86_FEATURE_CQM_LLC,		CPUID_EDX,  1, 0x0000000f, 0 },
 	{ X86_FEATURE_CQM_OCCUP_LLC,	CPUID_EDX,  0, 0x0000000f, 1 },
 	{ X86_FEATURE_CQM_MBM_TOTAL,	CPUID_EDX,  1, 0x0000000f, 1 },
@@ -39,8 +40,6 @@
 	{ X86_FEATURE_CPB,		CPUID_EDX,  9, 0x80000007, 0 },
 	{ X86_FEATURE_PROC_FEEDBACK,    CPUID_EDX, 11, 0x80000007, 0 },
 	{ X86_FEATURE_MBA,		CPUID_EBX,  6, 0x80000008, 0 },
-	{ X86_FEATURE_SME,		CPUID_EAX,  0, 0x8000001f, 0 },
-	{ X86_FEATURE_SEV,		CPUID_EAX,  1, 0x8000001f, 0 },
 	{ 0, 0, 0, 0, 0 }
 };
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/topology.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/topology.c
@@ -25,10 +25,10 @@
 #define BITS_SHIFT_NEXT_LEVEL(eax)	((eax) & 0x1f)
 #define LEVEL_MAX_SIBLINGS(ebx)		((ebx) & 0xffff)
 
-#ifdef CONFIG_SMP
 unsigned int __max_die_per_package __read_mostly = 1;
 EXPORT_SYMBOL(__max_die_per_package);
 
+#ifdef CONFIG_SMP
 /*
  * Check if given CPUID extended toplogy "leaf" is implemented
  */
@@ -79,7 +79,7 @@
 	 * initial apic id, which also represents 32-bit extended x2apic id.
 	 */
 	c->initial_apicid = edx;
-	smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx);
+	smp_num_siblings = max_t(int, smp_num_siblings, LEVEL_MAX_SIBLINGS(ebx));
 #endif
 	return 0;
 }
@@ -107,7 +107,8 @@
 	 */
 	cpuid_count(leaf, SMT_LEVEL, &eax, &ebx, &ecx, &edx);
 	c->initial_apicid = edx;
-	core_level_siblings = smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx);
+	core_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
+	smp_num_siblings = max_t(int, smp_num_siblings, LEVEL_MAX_SIBLINGS(ebx));
 	core_plus_mask_width = ht_mask_width = BITS_SHIFT_NEXT_LEVEL(eax);
 	die_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
 	die_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax);
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/tsx.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/tsx.c
@@ -55,24 +55,6 @@
 	wrmsrl(MSR_IA32_TSX_CTRL, tsx);
 }
 
-static bool __init tsx_ctrl_is_supported(void)
-{
-	u64 ia32_cap = x86_read_arch_cap_msr();
-
-	/*
-	 * TSX is controlled via MSR_IA32_TSX_CTRL.  However, support for this
-	 * MSR is enumerated by ARCH_CAP_TSX_MSR bit in MSR_IA32_ARCH_CAPABILITIES.
-	 *
-	 * TSX control (aka MSR_IA32_TSX_CTRL) is only available after a
-	 * microcode update on CPUs that have their MSR_IA32_ARCH_CAPABILITIES
-	 * bit MDS_NO=1. CPUs with MDS_NO=0 are not planned to get
-	 * MSR_IA32_TSX_CTRL support even after a microcode update. Thus,
-	 * tsx= cmdline requests will do nothing on CPUs without
-	 * MSR_IA32_TSX_CTRL support.
-	 */
-	return !!(ia32_cap & ARCH_CAP_TSX_CTRL_MSR);
-}
-
 static enum tsx_ctrl_states x86_get_tsx_auto_mode(void)
 {
 	if (boot_cpu_has_bug(X86_BUG_TAA))
@@ -86,9 +68,22 @@
 	char arg[5] = {};
 	int ret;
 
-	if (!tsx_ctrl_is_supported())
+	/*
+	 * TSX is controlled via MSR_IA32_TSX_CTRL.  However, support for this
+	 * MSR is enumerated by ARCH_CAP_TSX_MSR bit in MSR_IA32_ARCH_CAPABILITIES.
+	 *
+	 * TSX control (aka MSR_IA32_TSX_CTRL) is only available after a
+	 * microcode update on CPUs that have their MSR_IA32_ARCH_CAPABILITIES
+	 * bit MDS_NO=1. CPUs with MDS_NO=0 are not planned to get
+	 * MSR_IA32_TSX_CTRL support even after a microcode update. Thus,
+	 * tsx= cmdline requests will do nothing on CPUs without
+	 * MSR_IA32_TSX_CTRL support.
+	 */
+	if (!(x86_read_arch_cap_msr() & ARCH_CAP_TSX_CTRL_MSR))
 		return;
 
+	setup_force_cpu_cap(X86_FEATURE_MSR_TSX_CTRL);
+
 	ret = cmdline_find_option(boot_command_line, "tsx", arg, sizeof(arg));
 	if (ret >= 0) {
 		if (!strcmp(arg, "on")) {
@@ -115,11 +110,12 @@
 		tsx_disable();
 
 		/*
-		 * tsx_disable() will change the state of the
-		 * RTM CPUID bit.  Clear it here since it is now
-		 * expected to be not set.
+		 * tsx_disable() will change the state of the RTM and HLE CPUID
+		 * bits. Clear them here since they are now expected to be not
+		 * set.
 		 */
 		setup_clear_cpu_cap(X86_FEATURE_RTM);
+		setup_clear_cpu_cap(X86_FEATURE_HLE);
 	} else if (tsx_ctrl_state == TSX_CTRL_ENABLE) {
 
 		/*
@@ -131,10 +127,10 @@
 		tsx_enable();
 
 		/*
-		 * tsx_enable() will change the state of the
-		 * RTM CPUID bit.  Force it here since it is now
-		 * expected to be set.
+		 * tsx_enable() will change the state of the RTM and HLE CPUID
+		 * bits. Force them here since they are now expected to be set.
 		 */
 		setup_force_cpu_cap(X86_FEATURE_RTM);
+		setup_force_cpu_cap(X86_FEATURE_HLE);
 	}
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/cpu/umwait.c
+++ linux-ein-5.4.0/arch/x86/kernel/cpu/umwait.c
@@ -17,12 +17,6 @@
  */
 static u32 umwait_control_cached = UMWAIT_CTRL_VAL(100000, UMWAIT_C02_ENABLE);
 
-u32 get_umwait_control_msr(void)
-{
-	return umwait_control_cached;
-}
-EXPORT_SYMBOL_GPL(get_umwait_control_msr);
-
 /*
  * Cache the original IA32_UMWAIT_CONTROL MSR value which is configured by
  * hardware or BIOS before kernel boot.
--- linux-ein-5.4.0.orig/arch/x86/kernel/crash.c
+++ linux-ein-5.4.0/arch/x86/kernel/crash.c
@@ -24,6 +24,7 @@
 #include <linux/export.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
+#include <linux/memblock.h>
 
 #include <asm/processor.h>
 #include <asm/hardirq.h>
@@ -36,9 +37,9 @@
 #include <linux/kdebug.h>
 #include <asm/cpu.h>
 #include <asm/reboot.h>
-#include <asm/virtext.h>
 #include <asm/intel_pt.h>
 #include <asm/crash.h>
+#include <asm/cmdline.h>
 
 /* Used while preparing memory map entries for second kernel */
 struct crash_memmap_data {
@@ -68,6 +69,19 @@
 	rcu_read_unlock();
 }
 
+/*
+ * When the crashkernel option is specified, only use the low
+ * 1M for the real mode trampoline.
+ */
+void __init crash_reserve_low_1M(void)
+{
+	if (cmdline_find_option(boot_command_line, "crashkernel", NULL, 0) < 0)
+		return;
+
+	memblock_reserve(0, 1<<20);
+	pr_info("Reserving the low 1M of memory for crashkernel\n");
+}
+
 #if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
 
 static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
@@ -79,15 +93,6 @@
 	 */
 	cpu_crash_vmclear_loaded_vmcss();
 
-	/* Disable VMX or SVM if needed.
-	 *
-	 * We need to disable virtualization on all CPUs.
-	 * Having VMX or SVM enabled on any CPU may break rebooting
-	 * after the kdump kernel has finished its task.
-	 */
-	cpu_emergency_vmxoff();
-	cpu_emergency_svm_disable();
-
 	/*
 	 * Disable Intel PT to stop its logging
 	 */
@@ -146,12 +151,7 @@
 	 */
 	cpu_crash_vmclear_loaded_vmcss();
 
-	/* Booting kdump kernel with VMX or SVM enabled won't work,
-	 * because (among other limitations) we can't disable paging
-	 * with the virt flags.
-	 */
-	cpu_emergency_vmxoff();
-	cpu_emergency_svm_disable();
+	cpu_emergency_disable_virtualization();
 
 	/*
 	 * Disable Intel PT to stop its logging
@@ -349,7 +349,7 @@
 	struct crash_memmap_data cmd;
 	struct crash_mem *cmem;
 
-	cmem = vzalloc(sizeof(struct crash_mem));
+	cmem = vzalloc(struct_size(cmem, ranges, 1));
 	if (!cmem)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/doublefault.c
+++ linux-ein-5.4.0/arch/x86/kernel/doublefault.c
@@ -65,6 +65,9 @@
 	.ss		= __KERNEL_DS,
 	.ds		= __USER_DS,
 	.fs		= __KERNEL_PERCPU,
+#ifndef CONFIG_X86_32_LAZY_GS
+	.gs		= __KERNEL_STACK_CANARY,
+#endif
 
 	.__cr3		= __pa_nodebug(swapper_pg_dir),
 };
--- linux-ein-5.4.0.orig/arch/x86/kernel/dumpstack.c
+++ linux-ein-5.4.0/arch/x86/kernel/dumpstack.c
@@ -171,7 +171,6 @@
 	printk("%sCall Trace:\n", log_lvl);
 
 	unwind_start(&state, task, regs, stack);
-	stack = stack ? : get_stack_pointer(task, regs);
 	regs = unwind_get_entry_regs(&state, &partial);
 
 	/*
@@ -190,9 +189,13 @@
 	 * - hardirq stack
 	 * - entry stack
 	 */
-	for ( ; stack; stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) {
+	for (stack = stack ?: get_stack_pointer(task, regs);
+	     stack;
+	     stack = stack_info.next_sp) {
 		const char *stack_name;
 
+		stack = PTR_ALIGN(stack, sizeof(long));
+
 		if (get_stack_info(stack, task, &stack_info, &visit_mask)) {
 			/*
 			 * We weren't on a valid stack.  It's possible that
@@ -326,7 +329,7 @@
 }
 NOKPROBE_SYMBOL(oops_begin);
 
-void __noreturn rewind_stack_do_exit(int signr);
+void __noreturn rewind_stack_and_make_dead(int signr);
 
 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
 {
@@ -361,7 +364,7 @@
 	 * reuse the task stack and that existing poisons are invalid.
 	 */
 	kasan_unpoison_task_stack(current);
-	rewind_stack_do_exit(signr);
+	rewind_stack_and_make_dead(signr);
 }
 NOKPROBE_SYMBOL(oops_end);
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/early-quirks.c
+++ linux-ein-5.4.0/arch/x86/kernel/early-quirks.c
@@ -28,6 +28,37 @@
 #include <asm/irq_remapping.h>
 #include <asm/early_ioremap.h>
 
+static void __init early_pci_clear_msi(int bus, int slot, int func)
+{
+	int pos;
+	u16 ctrl;
+
+	if (likely(!pci_early_clear_msi))
+		return;
+
+	pr_info_once("Clearing MSI/MSI-X enable bits early in boot (quirk)\n");
+
+	pos = pci_early_find_cap(bus, slot, func, PCI_CAP_ID_MSI);
+	if (pos) {
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSI_FLAGS);
+		ctrl &= ~PCI_MSI_FLAGS_ENABLE;
+		write_pci_config_16(bus, slot, func, pos + PCI_MSI_FLAGS, ctrl);
+
+		/* Read again to flush previous write */
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSI_FLAGS);
+	}
+
+	pos = pci_early_find_cap(bus, slot, func, PCI_CAP_ID_MSIX);
+	if (pos) {
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSIX_FLAGS);
+		ctrl &= ~PCI_MSIX_FLAGS_ENABLE;
+		write_pci_config_16(bus, slot, func, pos + PCI_MSIX_FLAGS, ctrl);
+
+		/* Read again to flush previous write */
+		ctrl = read_pci_config_16(bus, slot, func, pos + PCI_MSIX_FLAGS);
+	}
+}
+
 static void __init fix_hypertransport_config(int num, int slot, int func)
 {
 	u32 htcfg;
@@ -515,6 +546,7 @@
 	.stolen_size = gen9_stolen_size,
 };
 
+/* Intel integrated GPUs for which we need to reserve "stolen memory" */
 static const struct pci_device_id intel_early_ids[] __initconst = {
 	INTEL_I830_IDS(&i830_early_ops),
 	INTEL_I845G_IDS(&i845_early_ops),
@@ -587,6 +619,13 @@
 	u16 device;
 	int i;
 
+	/*
+	 * Reserve "stolen memory" for an integrated GPU.  If we've already
+	 * found one, there's nothing to do for other (discrete) GPUs.
+	 */
+	if (resource_size(&intel_graphics_stolen_res))
+		return;
+
 	device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
 
 	for (i = 0; i < ARRAY_SIZE(intel_early_ids); i++) {
@@ -699,7 +738,7 @@
 	{ PCI_VENDOR_ID_INTEL, 0x3406, PCI_CLASS_BRIDGE_HOST,
 	  PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
 	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA, PCI_ANY_ID,
-	  QFLAG_APPLY_ONCE, intel_graphics_quirks },
+	  0, intel_graphics_quirks },
 	/*
 	 * HPET on the current version of the Baytrail platform has accuracy
 	 * problems: it will halt in deep idle state - so we disable it.
@@ -710,10 +749,9 @@
 	 */
 	{ PCI_VENDOR_ID_INTEL, 0x0f00,
 		PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
-	{ PCI_VENDOR_ID_INTEL, 0x3ec4,
-		PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
 	{ PCI_VENDOR_ID_BROADCOM, 0x4331,
 	  PCI_CLASS_NETWORK_OTHER, PCI_ANY_ID, 0, apple_airport_reset},
+	{ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, early_pci_clear_msi},
 	{}
 };
 
@@ -766,6 +804,10 @@
 				    PCI_HEADER_TYPE);
 
 	if ((type & 0x7f) == PCI_HEADER_TYPE_BRIDGE) {
+		/* pci_early_clear_msi scans the buses differently. */
+		if (pci_early_clear_msi)
+			return -1;
+
 		sec = read_pci_config_byte(num, slot, func, PCI_SECONDARY_BUS);
 		if (sec > num)
 			early_pci_scan_bus(sec);
@@ -792,8 +834,13 @@
 
 void __init early_quirks(void)
 {
+	int bus;
+
 	if (!early_pci_allowed())
 		return;
 
 	early_pci_scan_bus(0);
+	/* pci_early_clear_msi scans more buses. */
+	for (bus = 1; pci_early_clear_msi && bus < 256; bus++)
+		early_pci_scan_bus(bus);
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/fpu/core.c
+++ linux-ein-5.4.0/arch/x86/kernel/fpu/core.c
@@ -82,7 +82,7 @@
 }
 EXPORT_SYMBOL(irq_fpu_usable);
 
-void kernel_fpu_begin(void)
+void kernel_fpu_begin_mask(unsigned int kfpu_mask)
 {
 	preempt_disable();
 
@@ -101,8 +101,15 @@
 		copy_fpregs_to_fpstate(&current->thread.fpu);
 	}
 	__cpu_invalidate_fpregs_state();
+
+	/* Put sane initial values into the control registers. */
+	if (likely(kfpu_mask & KFPU_MXCSR) && boot_cpu_has(X86_FEATURE_XMM))
+		ldmxcsr(MXCSR_DEFAULT);
+
+	if (unlikely(kfpu_mask & KFPU_387) && boot_cpu_has(X86_FEATURE_FPU))
+		asm volatile ("fninit");
 }
-EXPORT_SYMBOL_GPL(kernel_fpu_begin);
+EXPORT_SYMBOL_GPL(kernel_fpu_begin_mask);
 
 void kernel_fpu_end(void)
 {
--- linux-ein-5.4.0.orig/arch/x86/kernel/fpu/init.c
+++ linux-ein-5.4.0/arch/x86/kernel/fpu/init.c
@@ -50,7 +50,7 @@
 	fpu__init_cpu_xstate();
 }
 
-static bool fpu__probe_without_cpuid(void)
+static bool __init fpu__probe_without_cpuid(void)
 {
 	unsigned long cr0;
 	u16 fsw, fcw;
@@ -68,7 +68,7 @@
 	return fsw == 0 && (fcw & 0x103f) == 0x003f;
 }
 
-static void fpu__init_system_early_generic(struct cpuinfo_x86 *c)
+static void __init fpu__init_system_early_generic(void)
 {
 	if (!boot_cpu_has(X86_FEATURE_CPUID) &&
 	    !test_bit(X86_FEATURE_FPU, (unsigned long *)cpu_caps_cleared)) {
@@ -139,9 +139,6 @@
 unsigned int fpu_kernel_xstate_size;
 EXPORT_SYMBOL_GPL(fpu_kernel_xstate_size);
 
-/* Get alignment of the TYPE. */
-#define TYPE_ALIGN(TYPE) offsetof(struct { char x; TYPE test; }, test)
-
 /*
  * Enforce that 'MEMBER' is the last field of 'TYPE'.
  *
@@ -149,8 +146,8 @@
  * because that's how C aligns structs.
  */
 #define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
-	BUILD_BUG_ON(sizeof(TYPE) != ALIGN(offsetofend(TYPE, MEMBER), \
-					   TYPE_ALIGN(TYPE)))
+	BUILD_BUG_ON(sizeof(TYPE) !=         \
+		     ALIGN(offsetofend(TYPE, MEMBER), _Alignof(TYPE)))
 
 /*
  * We append the 'struct fpu' to the task_struct:
@@ -242,9 +239,9 @@
  */
 static void __init fpu__init_parse_early_param(void)
 {
-	char arg[32];
+	char arg[128];
 	char *argptr = arg;
-	int bit;
+	int arglen, res, bit;
 
 #ifdef CONFIG_X86_32
 	if (cmdline_find_option_bool(boot_command_line, "no387"))
@@ -267,22 +264,36 @@
 	if (cmdline_find_option_bool(boot_command_line, "noxsaves"))
 		setup_clear_cpu_cap(X86_FEATURE_XSAVES);
 
-	if (cmdline_find_option(boot_command_line, "clearcpuid", arg,
-				sizeof(arg)) &&
-	    get_option(&argptr, &bit) &&
-	    bit >= 0 &&
-	    bit < NCAPINTS * 32)
-		setup_clear_cpu_cap(bit);
+	arglen = cmdline_find_option(boot_command_line, "clearcpuid", arg, sizeof(arg));
+	if (arglen <= 0)
+		return;
+
+	pr_info("Clearing CPUID bits:");
+	do {
+		res = get_option(&argptr, &bit);
+		if (res == 0 || res == 3)
+			break;
+
+		/* If the argument was too long, the last bit may be cut off */
+		if (res == 1 && arglen >= sizeof(arg))
+			break;
+
+		if (bit >= 0 && bit < NCAPINTS * 32) {
+			pr_cont(" " X86_CAP_FMT, x86_cap_flag(bit));
+			setup_clear_cpu_cap(bit);
+		}
+	} while (res == 2);
+	pr_cont("\n");
 }
 
 /*
  * Called on the boot CPU once per system bootup, to set up the initial
  * FPU state that is later cloned into all processes:
  */
-void __init fpu__init_system(struct cpuinfo_x86 *c)
+void __init fpu__init_system(void)
 {
 	fpu__init_parse_early_param();
-	fpu__init_system_early_generic(c);
+	fpu__init_system_early_generic();
 
 	/*
 	 * The FPU has to be operational for some of the
--- linux-ein-5.4.0.orig/arch/x86/kernel/fpu/regset.c
+++ linux-ein-5.4.0/arch/x86/kernel/fpu/regset.c
@@ -124,7 +124,7 @@
 	/*
 	 * A whole standard-format XSAVE buffer is needed:
 	 */
-	if ((pos != 0) || (count < fpu_user_xstate_size))
+	if (pos != 0 || count != fpu_user_xstate_size)
 		return -EFAULT;
 
 	xsave = &fpu->state.xsave;
--- linux-ein-5.4.0.orig/arch/x86/kernel/fpu/signal.c
+++ linux-ein-5.4.0/arch/x86/kernel/fpu/signal.c
@@ -289,13 +289,17 @@
 		return 0;
 	}
 
-	if (!access_ok(buf, size))
-		return -EACCES;
+	if (!access_ok(buf, size)) {
+		ret = -EACCES;
+		goto out;
+	}
 
-	if (!static_cpu_has(X86_FEATURE_FPU))
-		return fpregs_soft_set(current, NULL,
-				       0, sizeof(struct user_i387_ia32_struct),
-				       NULL, buf) != 0;
+	if (!static_cpu_has(X86_FEATURE_FPU)) {
+		ret = fpregs_soft_set(current, NULL, 0,
+				      sizeof(struct user_i387_ia32_struct),
+				      NULL, buf);
+		goto out;
+	}
 
 	if (use_xsave()) {
 		struct _fpx_sw_bytes fx_sw_user;
@@ -333,7 +337,7 @@
 	if (ia32_fxstate) {
 		ret = __copy_from_user(&env, buf, sizeof(env));
 		if (ret)
-			goto err_out;
+			goto out;
 		envp = &env;
 	} else {
 		/*
@@ -352,6 +356,7 @@
 			fpregs_unlock();
 			return 0;
 		}
+		fpregs_deactivate(fpu);
 		fpregs_unlock();
 	}
 
@@ -368,7 +373,7 @@
 				ret = validate_xstate_header(&fpu->state.xsave.header);
 		}
 		if (ret)
-			goto err_out;
+			goto out;
 
 		sanitize_restored_xstate(&fpu->state, envp, xfeatures, fx_only);
 
@@ -381,7 +386,7 @@
 		ret = __copy_from_user(&fpu->state.fxsave, buf_fx, state_size);
 		if (ret) {
 			ret = -EFAULT;
-			goto err_out;
+			goto out;
 		}
 
 		sanitize_restored_xstate(&fpu->state, envp, xfeatures, fx_only);
@@ -396,16 +401,18 @@
 	} else {
 		ret = __copy_from_user(&fpu->state.fsave, buf_fx, state_size);
 		if (ret)
-			goto err_out;
+			goto out;
 
 		fpregs_lock();
 		ret = copy_kernel_to_fregs_err(&fpu->state.fsave);
 	}
 	if (!ret)
 		fpregs_mark_activate();
+	else
+		fpregs_deactivate(fpu);
 	fpregs_unlock();
 
-err_out:
+out:
 	if (ret)
 		fpu__clear(fpu);
 	return ret;
--- linux-ein-5.4.0.orig/arch/x86/kernel/fpu/xstate.c
+++ linux-ein-5.4.0/arch/x86/kernel/fpu/xstate.c
@@ -399,12 +399,32 @@
 }
 
 /*
+ * All supported features have either init state all zeros or are
+ * handled in setup_init_fpu() individually. This is an explicit
+ * feature list and does not use XFEATURE_MASK*SUPPORTED to catch
+ * newly added supported features at build time and make people
+ * actually look at the init state for the new feature.
+ */
+#define XFEATURES_INIT_FPSTATE_HANDLED		\
+	(XFEATURE_MASK_FP |			\
+	 XFEATURE_MASK_SSE |			\
+	 XFEATURE_MASK_YMM |			\
+	 XFEATURE_MASK_OPMASK |			\
+	 XFEATURE_MASK_ZMM_Hi256 |		\
+	 XFEATURE_MASK_Hi16_ZMM	 |		\
+	 XFEATURE_MASK_PKRU |			\
+	 XFEATURE_MASK_BNDREGS |		\
+	 XFEATURE_MASK_BNDCSR)
+
+/*
  * setup the xstate image representing the init state
  */
 static void __init setup_init_fpu_buf(void)
 {
 	static int on_boot_cpu __initdata = 1;
 
+	BUILD_BUG_ON(XCNTXT_MASK != XFEATURES_INIT_FPSTATE_HANDLED);
+
 	WARN_ON_FPU(!on_boot_cpu);
 	on_boot_cpu = 0;
 
@@ -423,10 +443,22 @@
 	copy_kernel_to_xregs_booting(&init_fpstate.xsave);
 
 	/*
-	 * Dump the init state again. This is to identify the init state
-	 * of any feature which is not represented by all zero's.
+	 * All components are now in init state. Read the state back so
+	 * that init_fpstate contains all non-zero init state. This only
+	 * works with XSAVE, but not with XSAVEOPT and XSAVES because
+	 * those use the init optimization which skips writing data for
+	 * components in init state.
+	 *
+	 * XSAVE could be used, but that would require to reshuffle the
+	 * data when XSAVES is available because XSAVES uses xstate
+	 * compaction. But doing so is a pointless exercise because most
+	 * components have an all zeros init state except for the legacy
+	 * ones (FP and SSE). Those can be saved with FXSAVE into the
+	 * legacy area. Adding new features requires to ensure that init
+	 * state is all zeroes or if not to add the necessary handling
+	 * here.
 	 */
-	copy_xregs_to_kernel_booting(&init_fpstate.xsave);
+	fxsave(&init_fpstate.fxsave);
 }
 
 static int xfeature_uncompacted_offset(int xfeature_nr)
@@ -773,6 +805,14 @@
 	fpu__init_prepare_fx_sw_frame();
 	setup_init_fpu_buf();
 	setup_xstate_comp();
+
+	/*
+	 * CPU capabilities initialization runs before FPU init. So
+	 * X86_FEATURE_OSXSAVE is not set. Now that XSAVE is completely
+	 * functional, set the feature bit so depending code works.
+	 */
+	setup_force_cpu_cap(X86_FEATURE_OSXSAVE);
+
 	print_xstate_offset_size();
 
 	pr_info("x86/fpu: Enabled xstate features 0x%llx, context size is %d bytes, using '%s' format.\n",
@@ -895,8 +935,6 @@
 
 #ifdef CONFIG_ARCH_HAS_PKEYS
 
-#define NR_VALID_PKRU_BITS (CONFIG_NR_PROTECTION_KEYS * 2)
-#define PKRU_VALID_MASK (NR_VALID_PKRU_BITS - 1)
 /*
  * This will go out and modify PKRU register to set the access
  * rights for @pkey to @init_val.
@@ -915,6 +953,13 @@
 	if (!boot_cpu_has(X86_FEATURE_OSPKE))
 		return -EINVAL;
 
+	/*
+	 * This code should only be called with valid 'pkey'
+	 * values originating from in-kernel users.  Complain
+	 * if a bad value is observed.
+	 */
+	WARN_ON_ONCE(pkey >= arch_max_pkey());
+
 	/* Set the bits we need in PKRU:  */
 	if (init_val & PKEY_DISABLE_ACCESS)
 		new_pkru_bits |= PKRU_AD_BIT;
@@ -952,18 +997,31 @@
 	return true;
 }
 
-/*
- * This is similar to user_regset_copyout(), but will not add offset to
- * the source data pointer or increment pos, count, kbuf, and ubuf.
- */
-static inline void
-__copy_xstate_to_kernel(void *kbuf, const void *data,
-			unsigned int offset, unsigned int size, unsigned int size_total)
+static void fill_gap(unsigned to, void **kbuf, unsigned *pos, unsigned *count)
 {
-	if (offset < size_total) {
-		unsigned int copy = min(size, size_total - offset);
+	if (*pos < to) {
+		unsigned size = to - *pos;
+
+		if (size > *count)
+			size = *count;
+		memcpy(*kbuf, (void *)&init_fpstate.xsave + *pos, size);
+		*kbuf += size;
+		*pos += size;
+		*count -= size;
+	}
+}
 
-		memcpy(kbuf + offset, data, copy);
+static void copy_part(unsigned offset, unsigned size, void *from,
+			void **kbuf, unsigned *pos, unsigned *count)
+{
+	fill_gap(offset, kbuf, pos, count);
+	if (size > *count)
+		size = *count;
+	if (size) {
+		memcpy(*kbuf, from, size);
+		*kbuf += size;
+		*pos += size;
+		*count -= size;
 	}
 }
 
@@ -976,8 +1034,9 @@
  */
 int copy_xstate_to_kernel(void *kbuf, struct xregs_state *xsave, unsigned int offset_start, unsigned int size_total)
 {
-	unsigned int offset, size;
 	struct xstate_header header;
+	const unsigned off_mxcsr = offsetof(struct fxregs_state, mxcsr);
+	unsigned count = size_total;
 	int i;
 
 	/*
@@ -993,46 +1052,42 @@
 	header.xfeatures = xsave->header.xfeatures;
 	header.xfeatures &= ~XFEATURE_MASK_SUPERVISOR;
 
+	if (header.xfeatures & XFEATURE_MASK_FP)
+		copy_part(0, off_mxcsr,
+			  &xsave->i387, &kbuf, &offset_start, &count);
+	if (header.xfeatures & (XFEATURE_MASK_SSE | XFEATURE_MASK_YMM))
+		copy_part(off_mxcsr, MXCSR_AND_FLAGS_SIZE,
+			  &xsave->i387.mxcsr, &kbuf, &offset_start, &count);
+	if (header.xfeatures & XFEATURE_MASK_FP)
+		copy_part(offsetof(struct fxregs_state, st_space), 128,
+			  &xsave->i387.st_space, &kbuf, &offset_start, &count);
+	if (header.xfeatures & XFEATURE_MASK_SSE)
+		copy_part(xstate_offsets[XFEATURE_SSE], 256,
+			  &xsave->i387.xmm_space, &kbuf, &offset_start, &count);
+	/*
+	 * Fill xsave->i387.sw_reserved value for ptrace frame:
+	 */
+	copy_part(offsetof(struct fxregs_state, sw_reserved), 48,
+		  xstate_fx_sw_bytes, &kbuf, &offset_start, &count);
 	/*
 	 * Copy xregs_state->header:
 	 */
-	offset = offsetof(struct xregs_state, header);
-	size = sizeof(header);
+	copy_part(offsetof(struct xregs_state, header), sizeof(header),
+		  &header, &kbuf, &offset_start, &count);
 
-	__copy_xstate_to_kernel(kbuf, &header, offset, size, size_total);
-
-	for (i = 0; i < XFEATURE_MAX; i++) {
+	for (i = FIRST_EXTENDED_XFEATURE; i < XFEATURE_MAX; i++) {
 		/*
 		 * Copy only in-use xstates:
 		 */
 		if ((header.xfeatures >> i) & 1) {
 			void *src = __raw_xsave_addr(xsave, i);
 
-			offset = xstate_offsets[i];
-			size = xstate_sizes[i];
-
-			/* The next component has to fit fully into the output buffer: */
-			if (offset + size > size_total)
-				break;
-
-			__copy_xstate_to_kernel(kbuf, src, offset, size, size_total);
+			copy_part(xstate_offsets[i], xstate_sizes[i],
+				  src, &kbuf, &offset_start, &count);
 		}
 
 	}
-
-	if (xfeatures_mxcsr_quirk(header.xfeatures)) {
-		offset = offsetof(struct fxregs_state, mxcsr);
-		size = MXCSR_AND_FLAGS_SIZE;
-		__copy_xstate_to_kernel(kbuf, &xsave->i387.mxcsr, offset, size, size_total);
-	}
-
-	/*
-	 * Fill xsave->i387.sw_reserved value for ptrace frame:
-	 */
-	offset = offsetof(struct fxregs_state, sw_reserved);
-	size = sizeof(xstate_fx_sw_bytes);
-
-	__copy_xstate_to_kernel(kbuf, xstate_fx_sw_bytes, offset, size, size_total);
+	fill_gap(size_total, &kbuf, &offset_start, &count);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/ftrace_32.S
+++ linux-ein-5.4.0/arch/x86/kernel/ftrace_32.S
@@ -89,7 +89,7 @@
 	ret
 END(ftrace_caller)
 
-ENTRY(ftrace_regs_caller)
+SYM_CODE_START(ftrace_regs_caller)
 	/*
 	 * We're here from an mcount/fentry CALL, and the stack frame looks like:
 	 *
@@ -163,6 +163,7 @@
 	popl	%eax
 
 	jmp	.Lftrace_ret
+SYM_CODE_END(ftrace_regs_caller)
 
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
 ENTRY(ftrace_graph_caller)
--- linux-ein-5.4.0.orig/arch/x86/kernel/head64.c
+++ linux-ein-5.4.0/arch/x86/kernel/head64.c
@@ -383,6 +383,8 @@
 {
 	memset(__bss_start, 0,
 	       (unsigned long) __bss_stop - (unsigned long) __bss_start);
+	memset(__brk_base, 0,
+	       (unsigned long) __brk_limit - (unsigned long) __brk_base);
 }
 
 static unsigned long get_cmd_line_ptr(void)
--- linux-ein-5.4.0.orig/arch/x86/kernel/head_32.S
+++ linux-ein-5.4.0/arch/x86/kernel/head_32.S
@@ -26,6 +26,7 @@
 #include <asm/bootparam.h>
 #include <asm/export.h>
 #include <asm/pgtable_32.h>
+#include <asm/nospec-branch.h>
 
 /* Physical address */
 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -64,7 +65,7 @@
  * can.
  */
 __HEAD
-ENTRY(startup_32)
+SYM_CODE_START(startup_32)
 	movl pa(initial_stack),%ecx
 	
 	/* test KEEP_SEGMENTS flag to see if the bootloader is asking
@@ -153,6 +154,7 @@
 
 	movl pa(subarch_entries)(,%eax,4), %eax
 	subl $__PAGE_OFFSET, %eax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp *%eax
 
 .Lbad_subarch:
@@ -172,6 +174,7 @@
 #else
 	jmp .Ldefault_entry
 #endif /* CONFIG_PARAVIRT */
+SYM_CODE_END(startup_32)
 
 #ifdef CONFIG_HOTPLUG_CPU
 /*
@@ -302,6 +305,7 @@
 	movl setup_once_ref,%eax
 	andl %eax,%eax
 	jz 1f				# Did we do this already?
+	ANNOTATE_RETPOLINE_SAFE
 	call *%eax
 1:
 
@@ -571,6 +575,16 @@
 #  error "Kernel PMDs should be 1, 2 or 3"
 # endif
 	.align PAGE_SIZE		/* needs to be page-sized too */
+
+#ifdef CONFIG_PAGE_TABLE_ISOLATION
+	/*
+	 * PTI needs another page so sync_initial_pagetable() works correctly
+	 * and does not scribble over the data which is placed behind the
+	 * actual initial_page_table. See clone_pgd_range().
+	 */
+	.fill 1024, 4, 0
+#endif
+
 #endif
 
 .data
--- linux-ein-5.4.0.orig/arch/x86/kernel/hpet.c
+++ linux-ein-5.4.0/arch/x86/kernel/hpet.c
@@ -9,6 +9,7 @@
 
 #include <asm/hpet.h>
 #include <asm/time.h>
+#include <asm/mwait.h>
 
 #undef  pr_fmt
 #define pr_fmt(fmt) "hpet: " fmt
@@ -806,6 +807,83 @@
 	return false;
 }
 
+static bool __init mwait_pc10_supported(void)
+{
+	unsigned int eax, ebx, ecx, mwait_substates;
+
+	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
+		return false;
+
+	if (!cpu_feature_enabled(X86_FEATURE_MWAIT))
+		return false;
+
+	if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
+		return false;
+
+	cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &mwait_substates);
+
+	return (ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) &&
+	       (ecx & CPUID5_ECX_INTERRUPT_BREAK) &&
+	       (mwait_substates & (0xF << 28));
+}
+
+/*
+ * Check whether the system supports PC10. If so force disable HPET as that
+ * stops counting in PC10. This check is overbroad as it does not take any
+ * of the following into account:
+ *
+ *	- ACPI tables
+ *	- Enablement of intel_idle
+ *	- Command line arguments which limit intel_idle C-state support
+ *
+ * That's perfectly fine. HPET is a piece of hardware designed by committee
+ * and the only reasons why it is still in use on modern systems is the
+ * fact that it is impossible to reliably query TSC and CPU frequency via
+ * CPUID or firmware.
+ *
+ * If HPET is functional it is useful for calibrating TSC, but this can be
+ * done via PMTIMER as well which seems to be the last remaining timer on
+ * X86/INTEL platforms that has not been completely wreckaged by feature
+ * creep.
+ *
+ * In theory HPET support should be removed altogether, but there are older
+ * systems out there which depend on it because TSC and APIC timer are
+ * dysfunctional in deeper C-states.
+ *
+ * It's only 20 years now that hardware people have been asked to provide
+ * reliable and discoverable facilities which can be used for timekeeping
+ * and per CPU timer interrupts.
+ *
+ * The probability that this problem is going to be solved in the
+ * forseeable future is close to zero, so the kernel has to be cluttered
+ * with heuristics to keep up with the ever growing amount of hardware and
+ * firmware trainwrecks. Hopefully some day hardware people will understand
+ * that the approach of "This can be fixed in software" is not sustainable.
+ * Hope dies last...
+ */
+static bool __init hpet_is_pc10_damaged(void)
+{
+	unsigned long long pcfg;
+
+	/* Check whether PC10 substates are supported */
+	if (!mwait_pc10_supported())
+		return false;
+
+	/* Check whether PC10 is enabled in PKG C-state limit */
+	rdmsrl(MSR_PKG_CST_CONFIG_CONTROL, pcfg);
+	if ((pcfg & 0xF) < 8)
+		return false;
+
+	if (hpet_force_user) {
+		pr_warn("HPET force enabled via command line, but dysfunctional in PC10.\n");
+		return false;
+	}
+
+	pr_info("HPET dysfunctional in PC10. Force disabled.\n");
+	boot_hpet_disable = true;
+	return true;
+}
+
 /**
  * hpet_enable - Try to setup the HPET timer. Returns 1 on success.
  */
@@ -819,6 +897,9 @@
 	if (!is_hpet_capable())
 		return 0;
 
+	if (hpet_is_pc10_damaged())
+		return 0;
+
 	hpet_set_mapping();
 	if (!hpet_virt_address)
 		return 0;
--- linux-ein-5.4.0.orig/arch/x86/kernel/i8259.c
+++ linux-ein-5.4.0/arch/x86/kernel/i8259.c
@@ -114,6 +114,7 @@
 	disable_irq_nosync(irq);
 	io_apic_irqs &= ~(1<<irq);
 	irq_set_chip_and_handler(irq, &i8259A_chip, handle_level_irq);
+	irq_set_status_flags(irq, IRQ_LEVEL);
 	enable_irq(irq);
 	lapic_assign_legacy_vector(irq, true);
 }
@@ -207,7 +208,7 @@
 		 * lets ACK and report it. [once per IRQ]
 		 */
 		if (!(spurious_irq_mask & irqmask)) {
-			printk(KERN_DEBUG
+			printk_deferred(KERN_DEBUG
 			       "spurious 8259A interrupt: IRQ%d.\n", irq);
 			spurious_irq_mask |= irqmask;
 		}
--- linux-ein-5.4.0.orig/arch/x86/kernel/idt.c
+++ linux-ein-5.4.0/arch/x86/kernel/idt.c
@@ -318,7 +318,11 @@
 
 #ifdef CONFIG_X86_LOCAL_APIC
 	for_each_clear_bit_from(i, system_vectors, NR_VECTORS) {
-		set_bit(i, system_vectors);
+		/*
+		 * Don't set the non assigned system vectors in the
+		 * system_vectors bitmap. Otherwise they show up in
+		 * /proc/interrupts.
+		 */
 		entry = spurious_entries_start + 8 * (i - FIRST_SYSTEM_VECTOR);
 		set_intr_gate(i, entry);
 	}
--- linux-ein-5.4.0.orig/arch/x86/kernel/ima_arch.c
+++ linux-ein-5.4.0/arch/x86/kernel/ima_arch.c
@@ -10,8 +10,6 @@
 
 static enum efi_secureboot_mode get_sb_mode(void)
 {
-	efi_char16_t efi_SecureBoot_name[] = L"SecureBoot";
-	efi_char16_t efi_SetupMode_name[] = L"SecureBoot";
 	efi_guid_t efi_variable_guid = EFI_GLOBAL_VARIABLE_GUID;
 	efi_status_t status;
 	unsigned long size;
@@ -25,7 +23,7 @@
 	}
 
 	/* Get variable contents into buffer */
-	status = efi.get_variable(efi_SecureBoot_name, &efi_variable_guid,
+	status = efi.get_variable(L"SecureBoot", &efi_variable_guid,
 				  NULL, &size, &secboot);
 	if (status == EFI_NOT_FOUND) {
 		pr_info("ima: secureboot mode disabled\n");
@@ -38,7 +36,7 @@
 	}
 
 	size = sizeof(setupmode);
-	status = efi.get_variable(efi_SetupMode_name, &efi_variable_guid,
+	status = efi.get_variable(L"SetupMode", &efi_variable_guid,
 				  NULL, &size, &setupmode);
 
 	if (status != EFI_SUCCESS)	/* ignore unknown SetupMode */
--- linux-ein-5.4.0.orig/arch/x86/kernel/irq.c
+++ linux-ein-5.4.0/arch/x86/kernel/irq.c
@@ -295,8 +295,10 @@
 {
 	if (handler)
 		kvm_posted_intr_wakeup_handler = handler;
-	else
+	else {
 		kvm_posted_intr_wakeup_handler = dummy_handler;
+		synchronize_rcu();
+	}
 }
 EXPORT_SYMBOL_GPL(kvm_set_posted_intr_wakeup_handler);
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/irq_64.c
+++ linux-ein-5.4.0/arch/x86/kernel/irq_64.c
@@ -43,7 +43,7 @@
 		pages[i] = pfn_to_page(pa >> PAGE_SHIFT);
 	}
 
-	va = vmap(pages, IRQ_STACK_SIZE / PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL);
+	va = vmap(pages, IRQ_STACK_SIZE / PAGE_SIZE, VM_MAP, PAGE_KERNEL);
 	if (!va)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/irqinit.c
+++ linux-ein-5.4.0/arch/x86/kernel/irqinit.c
@@ -72,8 +72,10 @@
 
 	legacy_pic->init(0);
 
-	for (i = 0; i < nr_legacy_irqs(); i++)
+	for (i = 0; i < nr_legacy_irqs(); i++) {
 		irq_set_chip_and_handler(i, chip, handle_level_irq);
+		irq_set_status_flags(i, IRQ_LEVEL);
+	}
 }
 
 void __init init_IRQ(void)
--- linux-ein-5.4.0.orig/arch/x86/kernel/kexec-bzimage64.c
+++ linux-ein-5.4.0/arch/x86/kernel/kexec-bzimage64.c
@@ -210,8 +210,7 @@
 	params->hdr.hardware_subarch = boot_params.hdr.hardware_subarch;
 
 	/* Copying screen_info will do? */
-	memcpy(&params->screen_info, &boot_params.screen_info,
-				sizeof(struct screen_info));
+	memcpy(&params->screen_info, &screen_info, sizeof(struct screen_info));
 
 	/* Fill in memsize later */
 	params->screen_info.ext_mem_k = 0;
--- linux-ein-5.4.0.orig/arch/x86/kernel/kprobes/core.c
+++ linux-ein-5.4.0/arch/x86/kernel/kprobes/core.c
@@ -157,6 +157,8 @@
 int can_boost(struct insn *insn, void *addr)
 {
 	kprobe_opcode_t opcode;
+	insn_byte_t prefix;
+	int i;
 
 	if (search_exception_tables((unsigned long)addr))
 		return 0;	/* Page fault may occur on this address. */
@@ -169,9 +171,14 @@
 	if (insn->opcode.nbytes != 1)
 		return 0;
 
-	/* Can't boost Address-size override prefix */
-	if (unlikely(inat_is_address_size_prefix(insn->attr)))
-		return 0;
+	for_each_insn_prefix(insn, i, prefix) {
+		insn_attr_t attr;
+
+		attr = inat_get_opcode_attribute(prefix);
+		/* Can't boost Address-size override prefix and CS override prefix */
+		if (prefix == 0x2e || inat_is_address_size_prefix(attr))
+			return 0;
+	}
 
 	opcode = insn->opcode.bytes[0];
 
@@ -196,8 +203,8 @@
 		/* clear and set flags are boostable */
 		return (opcode == 0xf5 || (0xf7 < opcode && opcode < 0xfe));
 	default:
-		/* CS override prefix and call are not boostable */
-		return (opcode != 0x2e && opcode != 0x9a);
+		/* call is not boostable */
+		return opcode != 0x9a;
 	}
 }
 
@@ -351,6 +358,10 @@
 	kernel_insn_init(insn, dest, MAX_INSN_SIZE);
 	insn_get_length(insn);
 
+	/* We can not probe force emulate prefixed instruction */
+	if (insn_has_emulate_prefix(insn))
+		return 0;
+
 	/* Another subsystem puts a breakpoint, failed to recover */
 	if (insn->opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
 		return 0;
@@ -746,16 +757,11 @@
 NOKPROBE_SYMBOL(kretprobe_trampoline);
 STACK_FRAME_NON_STANDARD(kretprobe_trampoline);
 
-static struct kprobe kretprobe_kprobe = {
-	.addr = (void *)kretprobe_trampoline,
-};
-
 /*
  * Called from kretprobe_trampoline
  */
 __used __visible void *trampoline_handler(struct pt_regs *regs)
 {
-	struct kprobe_ctlblk *kcb;
 	struct kretprobe_instance *ri = NULL;
 	struct hlist_head *head, empty_rp;
 	struct hlist_node *tmp;
@@ -765,16 +771,12 @@
 	void *frame_pointer;
 	bool skipped = false;
 
-	preempt_disable();
-
 	/*
 	 * Set a dummy kprobe for avoiding kretprobe recursion.
 	 * Since kretprobe never run in kprobe handler, kprobe must not
 	 * be running at this point.
 	 */
-	kcb = get_kprobe_ctlblk();
-	__this_cpu_write(current_kprobe, &kretprobe_kprobe);
-	kcb->kprobe_status = KPROBE_HIT_ACTIVE;
+	kprobe_busy_begin();
 
 	INIT_HLIST_HEAD(&empty_rp);
 	kretprobe_hash_lock(current, &head, &flags);
@@ -850,7 +852,7 @@
 			__this_cpu_write(current_kprobe, &ri->rp->kp);
 			ri->ret_addr = correct_ret_addr;
 			ri->rp->handler(ri, regs);
-			__this_cpu_write(current_kprobe, &kretprobe_kprobe);
+			__this_cpu_write(current_kprobe, &kprobe_busy);
 		}
 
 		recycle_rp_inst(ri, &empty_rp);
@@ -866,8 +868,7 @@
 
 	kretprobe_hash_unlock(current, &flags);
 
-	__this_cpu_write(current_kprobe, NULL);
-	preempt_enable();
+	kprobe_busy_end();
 
 	hlist_for_each_entry_safe(ri, tmp, &empty_rp, hlist) {
 		hlist_del(&ri->hlist);
@@ -1029,6 +1030,11 @@
 		 * So clear it by resetting the current kprobe:
 		 */
 		regs->flags &= ~X86_EFLAGS_TF;
+		/*
+		 * Since the single step (trap) has been cancelled,
+		 * we need to restore BTF here.
+		 */
+		restore_btf();
 
 		/*
 		 * If the TF flag was set before the kprobe hit,
--- linux-ein-5.4.0.orig/arch/x86/kernel/kprobes/opt.c
+++ linux-ein-5.4.0/arch/x86/kernel/kprobes/opt.c
@@ -43,8 +43,8 @@
 		/* This function only handles jump-optimized kprobe */
 		if (kp && kprobe_optimized(kp)) {
 			op = container_of(kp, struct optimized_kprobe, kp);
-			/* If op->list is not empty, op is under optimizing */
-			if (list_empty(&op->list))
+			/* If op is optimized or under unoptimizing */
+			if (list_empty(&op->list) || optprobe_queued_unopt(op))
 				goto found;
 		}
 	}
@@ -314,7 +314,7 @@
 
 	for (i = 1; i < op->optinsn.size; i++) {
 		p = get_kprobe(op->kp.addr + i);
-		if (p && !kprobe_disabled(p))
+		if (p && !kprobe_disarmed(p))
 			return -EEXIST;
 	}
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/kvm.c
+++ linux-ein-5.4.0/arch/x86/kernel/kvm.c
@@ -24,6 +24,7 @@
 #include <linux/debugfs.h>
 #include <linux/nmi.h>
 #include <linux/swait.h>
+#include <linux/syscore_ops.h>
 #include <asm/timer.h>
 #include <asm/cpu.h>
 #include <asm/traps.h>
@@ -33,6 +34,7 @@
 #include <asm/apicdef.h>
 #include <asm/hypervisor.h>
 #include <asm/tlb.h>
+#include <asm/reboot.h>
 
 static int kvmapf = 1;
 
@@ -57,6 +59,7 @@
 DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64) __visible;
 static int has_steal_clock = 0;
 
+static int has_guest_poll = 0;
 /*
  * No need for any "IO delay" on KVM
  */
@@ -321,8 +324,7 @@
 
 		wrmsrl(MSR_KVM_ASYNC_PF_EN, pa);
 		__this_cpu_write(apf_reason.enabled, 1);
-		printk(KERN_INFO"KVM setup async PF for cpu %d\n",
-		       smp_processor_id());
+		pr_info("setup async PF for cpu %d\n", smp_processor_id());
 	}
 
 	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI)) {
@@ -347,35 +349,17 @@
 	wrmsrl(MSR_KVM_ASYNC_PF_EN, 0);
 	__this_cpu_write(apf_reason.enabled, 0);
 
-	printk(KERN_INFO"Unregister pv shared memory for cpu %d\n",
-	       smp_processor_id());
+	pr_info("disable async PF for cpu %d\n", smp_processor_id());
 }
 
-static void kvm_pv_guest_cpu_reboot(void *unused)
+static void kvm_disable_steal_time(void)
 {
-	/*
-	 * We disable PV EOI before we load a new kernel by kexec,
-	 * since MSR_KVM_PV_EOI_EN stores a pointer into old kernel's memory.
-	 * New kernel can re-enable when it boots.
-	 */
-	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
-		wrmsrl(MSR_KVM_PV_EOI_EN, 0);
-	kvm_pv_disable_apf();
-	kvm_disable_steal_time();
-}
+	if (!has_steal_clock)
+		return;
 
-static int kvm_pv_reboot_notify(struct notifier_block *nb,
-				unsigned long code, void *unused)
-{
-	if (code == SYS_RESTART)
-		on_each_cpu(kvm_pv_guest_cpu_reboot, NULL, 1);
-	return NOTIFY_DONE;
+	wrmsr(MSR_KVM_STEAL_TIME, 0, 0);
 }
 
-static struct notifier_block kvm_pv_reboot_nb = {
-	.notifier_call = kvm_pv_reboot_notify,
-};
-
 static u64 kvm_steal_clock(int cpu)
 {
 	u64 steal;
@@ -393,14 +377,6 @@
 	return steal;
 }
 
-void kvm_disable_steal_time(void)
-{
-	if (!has_steal_clock)
-		return;
-
-	wrmsr(MSR_KVM_STEAL_TIME, 0, 0);
-}
-
 static inline void __set_percpu_decrypted(void *ptr, unsigned long size)
 {
 	early_set_memory_decrypted((unsigned long) ptr, size);
@@ -428,6 +404,27 @@
 	}
 }
 
+static void kvm_guest_cpu_offline(bool shutdown)
+{
+	kvm_disable_steal_time();
+	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
+		wrmsrl(MSR_KVM_PV_EOI_EN, 0);
+	kvm_pv_disable_apf();
+	if (!shutdown)
+		apf_task_wake_all();
+	kvmclock_disable();
+}
+
+static int kvm_cpu_online(unsigned int cpu)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	kvm_guest_cpu_init();
+	local_irq_restore(flags);
+	return 0;
+}
+
 #ifdef CONFIG_SMP
 #define KVM_IPI_CLUSTER_SIZE	(2 * BITS_PER_LONG)
 
@@ -464,7 +461,7 @@
 		} else if (apic_id < min && max - apic_id < KVM_IPI_CLUSTER_SIZE) {
 			ipi_bitmap <<= min - apic_id;
 			min = apic_id;
-		} else if (apic_id < min + KVM_IPI_CLUSTER_SIZE) {
+		} else if (apic_id > min && apic_id < min + KVM_IPI_CLUSTER_SIZE) {
 			max = apic_id < max ? max : apic_id;
 		} else {
 			ret = kvm_hypercall4(KVM_HC_SEND_IPI, (unsigned long)ipi_bitmap,
@@ -547,31 +544,46 @@
 	kvm_spinlock_init();
 }
 
-static void kvm_guest_cpu_offline(void)
+static int kvm_cpu_down_prepare(unsigned int cpu)
 {
-	kvm_disable_steal_time();
-	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
-		wrmsrl(MSR_KVM_PV_EOI_EN, 0);
-	kvm_pv_disable_apf();
-	apf_task_wake_all();
-}
+	unsigned long flags;
 
-static int kvm_cpu_online(unsigned int cpu)
-{
-	local_irq_disable();
-	kvm_guest_cpu_init();
-	local_irq_enable();
+	local_irq_save(flags);
+	kvm_guest_cpu_offline(false);
+	local_irq_restore(flags);
 	return 0;
 }
 
-static int kvm_cpu_down_prepare(unsigned int cpu)
+#endif
+
+static int kvm_suspend(void)
 {
-	local_irq_disable();
-	kvm_guest_cpu_offline();
-	local_irq_enable();
+	u64 val = 0;
+
+	kvm_guest_cpu_offline(false);
+
+#ifdef CONFIG_ARCH_CPUIDLE_HALTPOLL
+	if (kvm_para_has_feature(KVM_FEATURE_POLL_CONTROL))
+		rdmsrl(MSR_KVM_POLL_CONTROL, val);
+	has_guest_poll = !(val & 1);
+#endif
 	return 0;
 }
+
+static void kvm_resume(void)
+{
+	kvm_cpu_online(raw_smp_processor_id());
+
+#ifdef CONFIG_ARCH_CPUIDLE_HALTPOLL
+	if (kvm_para_has_feature(KVM_FEATURE_POLL_CONTROL) && has_guest_poll)
+		wrmsrl(MSR_KVM_POLL_CONTROL, 0);
 #endif
+}
+
+static struct syscore_ops kvm_syscore_ops = {
+	.suspend	= kvm_suspend,
+	.resume		= kvm_resume,
+};
 
 static void __init kvm_apf_trap_init(void)
 {
@@ -606,6 +618,37 @@
 	native_flush_tlb_others(flushmask, info);
 }
 
+static void kvm_pv_guest_cpu_reboot(void *unused)
+{
+	kvm_guest_cpu_offline(true);
+}
+
+static int kvm_pv_reboot_notify(struct notifier_block *nb,
+				unsigned long code, void *unused)
+{
+	if (code == SYS_RESTART)
+		on_each_cpu(kvm_pv_guest_cpu_reboot, NULL, 1);
+	return NOTIFY_DONE;
+}
+
+static struct notifier_block kvm_pv_reboot_nb = {
+	.notifier_call = kvm_pv_reboot_notify,
+};
+
+/*
+ * After a PV feature is registered, the host will keep writing to the
+ * registered memory location. If the guest happens to shutdown, this memory
+ * won't be valid. In cases like kexec, in which you install a new kernel, this
+ * means a random memory location will be kept being written.
+ */
+#ifdef CONFIG_KEXEC_CORE
+static void kvm_crash_shutdown(struct pt_regs *regs)
+{
+	kvm_guest_cpu_offline(true);
+	native_machine_crash_shutdown(regs);
+}
+#endif
+
 static void __init kvm_guest_init(void)
 {
 	int i;
@@ -649,6 +692,12 @@
 	kvm_guest_cpu_init();
 #endif
 
+#ifdef CONFIG_KEXEC_CORE
+	machine_ops.crash_shutdown = kvm_crash_shutdown;
+#endif
+
+	register_syscore_ops(&kvm_syscore_ops);
+
 	/*
 	 * Hard lockup detection is enabled by default. Disable it, as guests
 	 * can get false positives too easily, for example if the host is
--- linux-ein-5.4.0.orig/arch/x86/kernel/kvmclock.c
+++ linux-ein-5.4.0/arch/x86/kernel/kvmclock.c
@@ -20,7 +20,6 @@
 #include <asm/hypervisor.h>
 #include <asm/mem_encrypt.h>
 #include <asm/x86_init.h>
-#include <asm/reboot.h>
 #include <asm/kvmclock.h>
 
 static int kvmclock __initdata = 1;
@@ -51,18 +50,9 @@
 static struct pvclock_vsyscall_time_info
 			hv_clock_boot[HVC_BOOT_ARRAY_SIZE] __bss_decrypted __aligned(PAGE_SIZE);
 static struct pvclock_wall_clock wall_clock __bss_decrypted;
-static DEFINE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu);
 static struct pvclock_vsyscall_time_info *hvclock_mem;
-
-static inline struct pvclock_vcpu_time_info *this_cpu_pvti(void)
-{
-	return &this_cpu_read(hv_clock_per_cpu)->pvti;
-}
-
-static inline struct pvclock_vsyscall_time_info *this_cpu_hvclock(void)
-{
-	return this_cpu_read(hv_clock_per_cpu);
-}
+DEFINE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu);
+EXPORT_PER_CPU_SYMBOL_GPL(hv_clock_per_cpu);
 
 /*
  * The wallclock is the time of day when we booted. Since then, some time may
@@ -197,28 +187,9 @@
 }
 #endif
 
-/*
- * After the clock is registered, the host will keep writing to the
- * registered memory location. If the guest happens to shutdown, this memory
- * won't be valid. In cases like kexec, in which you install a new kernel, this
- * means a random memory location will be kept being written. So before any
- * kind of shutdown from our side, we unregister the clock by writing anything
- * that does not have the 'enable' bit set in the msr
- */
-#ifdef CONFIG_KEXEC_CORE
-static void kvm_crash_shutdown(struct pt_regs *regs)
-{
-	native_write_msr(msr_kvm_system_time, 0, 0);
-	kvm_disable_steal_time();
-	native_machine_crash_shutdown(regs);
-}
-#endif
-
-static void kvm_shutdown(void)
+void kvmclock_disable(void)
 {
 	native_write_msr(msr_kvm_system_time, 0, 0);
-	kvm_disable_steal_time();
-	native_machine_shutdown();
 }
 
 static void __init kvmclock_init_mem(void)
@@ -346,10 +317,6 @@
 #endif
 	x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
 	x86_platform.restore_sched_clock_state = kvm_restore_sched_clock_state;
-	machine_ops.shutdown  = kvm_shutdown;
-#ifdef CONFIG_KEXEC_CORE
-	machine_ops.crash_shutdown  = kvm_crash_shutdown;
-#endif
 	kvm_get_preset_lpj();
 
 	/*
--- linux-ein-5.4.0.orig/arch/x86/kernel/module.c
+++ linux-ein-5.4.0/arch/x86/kernel/module.c
@@ -114,6 +114,7 @@
 			*location += sym->st_value;
 			break;
 		case R_386_PC32:
+		case R_386_PLT32:
 			/* Add the value, subtract its position */
 			*location += sym->st_value - (uint32_t)location;
 			break;
--- linux-ein-5.4.0.orig/arch/x86/kernel/nmi.c
+++ linux-ein-5.4.0/arch/x86/kernel/nmi.c
@@ -104,18 +104,21 @@
 }
 fs_initcall(nmi_warning_debugfs);
 
-static void nmi_max_handler(struct irq_work *w)
+static void nmi_check_duration(struct nmiaction *action, u64 duration)
 {
-	struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
 	int remainder_ns, decimal_msecs;
-	u64 whole_msecs = READ_ONCE(a->max_duration);
 
-	remainder_ns = do_div(whole_msecs, (1000 * 1000));
+	if (duration < nmi_longest_ns || duration < action->max_duration)
+		return;
+
+	action->max_duration = duration;
+
+	remainder_ns = do_div(duration, (1000 * 1000));
 	decimal_msecs = remainder_ns / 1000;
 
 	printk_ratelimited(KERN_INFO
 		"INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
-		a->handler, whole_msecs, decimal_msecs);
+		action->handler, duration, decimal_msecs);
 }
 
 static int nmi_handle(unsigned int type, struct pt_regs *regs)
@@ -142,11 +145,7 @@
 		delta = sched_clock() - delta;
 		trace_nmi_handler(a->handler, (int)delta, thishandled);
 
-		if (delta < nmi_longest_ns || delta < a->max_duration)
-			continue;
-
-		a->max_duration = delta;
-		irq_work_queue(&a->irq_work);
+		nmi_check_duration(a, delta);
 	}
 
 	rcu_read_unlock();
@@ -164,8 +163,6 @@
 	if (!action->handler)
 		return -EINVAL;
 
-	init_irq_work(&action->irq_work, nmi_max_handler);
-
 	raw_spin_lock_irqsave(&desc->lock, flags);
 
 	/*
--- linux-ein-5.4.0.orig/arch/x86/kernel/pmem.c
+++ linux-ein-5.4.0/arch/x86/kernel/pmem.c
@@ -27,6 +27,11 @@
 	 * simply here to trigger the module to load on demand.
 	 */
 	pdev = platform_device_alloc("e820_pmem", -1);
-	return platform_device_add(pdev);
+
+	rc = platform_device_add(pdev);
+	if (rc)
+		platform_device_put(pdev);
+
+	return rc;
 }
 device_initcall(register_e820_pmem);
--- linux-ein-5.4.0.orig/arch/x86/kernel/process.c
+++ linux-ein-5.4.0/arch/x86/kernel/process.c
@@ -428,28 +428,20 @@
 
 	lockdep_assert_irqs_disabled();
 
-	/*
-	 * If TIF_SSBD is different, select the proper mitigation
-	 * method. Note that if SSBD mitigation is disabled or permanentely
-	 * enabled this branch can't be taken because nothing can set
-	 * TIF_SSBD.
-	 */
-	if (tif_diff & _TIF_SSBD) {
-		if (static_cpu_has(X86_FEATURE_VIRT_SSBD)) {
+	/* Handle change of TIF_SSBD depending on the mitigation method. */
+	if (static_cpu_has(X86_FEATURE_VIRT_SSBD)) {
+		if (tif_diff & _TIF_SSBD)
 			amd_set_ssb_virt_state(tifn);
-		} else if (static_cpu_has(X86_FEATURE_LS_CFG_SSBD)) {
+	} else if (static_cpu_has(X86_FEATURE_LS_CFG_SSBD)) {
+		if (tif_diff & _TIF_SSBD)
 			amd_set_core_ssb_state(tifn);
-		} else if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
-			   static_cpu_has(X86_FEATURE_AMD_SSBD)) {
-			msr |= ssbd_tif_to_spec_ctrl(tifn);
-			updmsr  = true;
-		}
+	} else if (static_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
+		   static_cpu_has(X86_FEATURE_AMD_SSBD)) {
+		updmsr |= !!(tif_diff & _TIF_SSBD);
+		msr |= ssbd_tif_to_spec_ctrl(tifn);
 	}
 
-	/*
-	 * Only evaluate TIF_SPEC_IB if conditional STIBP is enabled,
-	 * otherwise avoid the MSR write.
-	 */
+	/* Only evaluate TIF_SPEC_IB if conditional STIBP is enabled. */
 	if (IS_ENABLED(CONFIG_SMP) &&
 	    static_branch_unlikely(&switch_to_cond_stibp)) {
 		updmsr |= !!(tif_diff & _TIF_SPEC_IB);
@@ -457,7 +449,7 @@
 	}
 
 	if (updmsr)
-		wrmsrl(MSR_IA32_SPEC_CTRL, msr);
+		update_spec_ctrl_cond(msr);
 }
 
 static unsigned long speculation_ctrl_update_tif(struct task_struct *tsk)
@@ -667,6 +659,10 @@
  */
 static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c)
 {
+	/* User has disallowed the use of MWAIT. Fallback to HALT */
+	if (boot_option_idle_override == IDLE_NOMWAIT)
+		return 0;
+
 	if (c->x86_vendor != X86_VENDOR_INTEL)
 		return 0;
 
@@ -777,9 +773,8 @@
 	} else if (!strcmp(str, "nomwait")) {
 		/*
 		 * If the boot option of "idle=nomwait" is added,
-		 * it means that mwait will be disabled for CPU C2/C3
-		 * states. In such case it won't touch the variable
-		 * of boot_option_idle_override.
+		 * it means that mwait will be disabled for CPU C1/C2/C3
+		 * states.
 		 */
 		boot_option_idle_override = IDLE_NOMWAIT;
 	} else
--- linux-ein-5.4.0.orig/arch/x86/kernel/process_32.c
+++ linux-ein-5.4.0/arch/x86/kernel/process_32.c
@@ -229,14 +229,12 @@
 {
 	struct thread_struct *prev = &prev_p->thread,
 			     *next = &next_p->thread;
-	struct fpu *prev_fpu = &prev->fpu;
-	struct fpu *next_fpu = &next->fpu;
 	int cpu = smp_processor_id();
 
 	/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
 
 	if (!test_thread_flag(TIF_NEED_FPU_LOAD))
-		switch_fpu_prepare(prev_fpu, cpu);
+		switch_fpu_prepare(prev_p, cpu);
 
 	/*
 	 * Save away %gs. No need to save %fs, as it was saved on the
@@ -292,10 +290,10 @@
 
 	this_cpu_write(current_task, next_p);
 
-	switch_fpu_finish(next_fpu);
+	switch_fpu_finish(next_p);
 
 	/* Load the Intel cache allocation PQR MSR. */
-	resctrl_sched_in();
+	resctrl_sched_in(next_p);
 
 	return prev_p;
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/process_64.c
+++ linux-ein-5.4.0/arch/x86/kernel/process_64.c
@@ -316,7 +316,7 @@
 		 */
 		mutex_lock(&task->mm->context.lock);
 		ldt = task->mm->context.ldt;
-		if (unlikely(idx >= ldt->nr_entries))
+		if (unlikely(!ldt || idx >= ldt->nr_entries))
 			base = 0;
 		else
 			base = get_desc_base(ldt->entries + idx);
@@ -505,15 +505,13 @@
 {
 	struct thread_struct *prev = &prev_p->thread;
 	struct thread_struct *next = &next_p->thread;
-	struct fpu *prev_fpu = &prev->fpu;
-	struct fpu *next_fpu = &next->fpu;
 	int cpu = smp_processor_id();
 
 	WARN_ON_ONCE(IS_ENABLED(CONFIG_DEBUG_ENTRY) &&
 		     this_cpu_read(irq_count) != -1);
 
 	if (!test_thread_flag(TIF_NEED_FPU_LOAD))
-		switch_fpu_prepare(prev_fpu, cpu);
+		switch_fpu_prepare(prev_p, cpu);
 
 	/* We must save %fs and %gs before load_TLS() because
 	 * %fs and %gs may be cleared by load_TLS().
@@ -565,7 +563,7 @@
 	this_cpu_write(current_task, next_p);
 	this_cpu_write(cpu_current_top_of_stack, task_top_of_stack(next_p));
 
-	switch_fpu_finish(next_fpu);
+	switch_fpu_finish(next_p);
 
 	/* Reload sp0. */
 	update_task_stack(next_p);
@@ -612,7 +610,7 @@
 	}
 
 	/* Load the Intel cache allocation PQR MSR. */
-	resctrl_sched_in();
+	resctrl_sched_in(next_p);
 
 	return prev_p;
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/quirks.c
+++ linux-ein-5.4.0/arch/x86/kernel/quirks.c
@@ -95,7 +95,7 @@
 static void ich_force_enable_hpet(struct pci_dev *dev)
 {
 	u32 val;
-	u32 uninitialized_var(rcba);
+	u32 rcba;
 	int err = 0;
 
 	if (hpet_address || force_hpet_address)
@@ -185,7 +185,7 @@
 static void old_ich_force_hpet_resume(void)
 {
 	u32 val;
-	u32 uninitialized_var(gen_cntl);
+	u32 gen_cntl;
 
 	if (!force_hpet_address || !cached_dev)
 		return;
@@ -207,7 +207,7 @@
 static void old_ich_force_enable_hpet(struct pci_dev *dev)
 {
 	u32 val;
-	u32 uninitialized_var(gen_cntl);
+	u32 gen_cntl;
 
 	if (hpet_address || force_hpet_address)
 		return;
@@ -298,7 +298,7 @@
 
 static void vt8237_force_enable_hpet(struct pci_dev *dev)
 {
-	u32 uninitialized_var(val);
+	u32 val;
 
 	if (hpet_address || force_hpet_address)
 		return;
@@ -429,7 +429,7 @@
 
 static void nvidia_force_enable_hpet(struct pci_dev *dev)
 {
-	u32 uninitialized_var(val);
+	u32 val;
 
 	if (hpet_address || force_hpet_address)
 		return;
--- linux-ein-5.4.0.orig/arch/x86/kernel/reboot.c
+++ linux-ein-5.4.0/arch/x86/kernel/reboot.c
@@ -32,6 +32,7 @@
 #include <asm/realmode.h>
 #include <asm/x86_init.h>
 #include <asm/efi.h>
+#include <asm/nospec-branch.h>
 
 /*
  * Power off function, if any
@@ -113,25 +114,17 @@
 	spin_unlock(&rtc_lock);
 
 	/*
-	 * Switch back to the initial page table.
+	 * Switch to the trampoline page table.
 	 */
-#ifdef CONFIG_X86_32
-	load_cr3(initial_page_table);
-#else
-	write_cr3(real_mode_header->trampoline_pgd);
-
-	/* Exiting long mode will fail if CR4.PCIDE is set. */
-	if (boot_cpu_has(X86_FEATURE_PCID))
-		cr4_clear_bits(X86_CR4_PCIDE);
-#endif
+	load_trampoline_pgtable();
 
 	/* Jump to the identity-mapped low memory code */
 #ifdef CONFIG_X86_32
-	asm volatile("jmpl *%0" : :
+	asm volatile(ANNOTATE_RETPOLINE_SAFE "jmpl *%0" : :
 		     "rm" (real_mode_header->machine_real_restart_asm),
 		     "a" (type));
 #else
-	asm volatile("ljmpl *%0" : :
+	asm volatile(ANNOTATE_RETPOLINE_SAFE "ljmpl *%0" : :
 		     "m" (real_mode_header->machine_real_restart_asm),
 		     "D" (type));
 #endif
@@ -197,6 +190,14 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5"),
 		},
 	},
+	{	/* Handle problems with rebooting on Apple MacBook6,1 */
+		.callback = set_pci_reboot,
+		.ident = "Apple MacBook6,1",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "MacBook6,1"),
+		},
+	},
 	{	/* Handle problems with rebooting on Apple MacBookPro5 */
 		.callback = set_pci_reboot,
 		.ident = "Apple MacBookPro5",
@@ -380,10 +381,11 @@
 	},
 	{	/* Handle problems with rebooting on the OptiPlex 990. */
 		.callback = set_pci_reboot,
-		.ident = "Dell OptiPlex 990",
+		.ident = "Dell OptiPlex 990 BIOS A0x",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
 			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
+			DMI_MATCH(DMI_BIOS_VERSION, "A0"),
 		},
 	},
 	{	/* Handle problems with rebooting on Dell 300's */
@@ -469,6 +471,15 @@
 		},
 	},
 
+	{	/* PCIe Wifi card isn't detected after reboot otherwise */
+		.callback = set_pci_reboot,
+		.ident = "Zotac ZBOX CI327 nano",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "NA"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "ZBOX-CI327NANO-GS-01"),
+		},
+	},
+
 	/* Sony */
 	{	/* Handle problems with rebooting on Sony VGN-Z540N */
 		.callback = set_bios_reboot,
@@ -478,7 +489,46 @@
 			DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"),
 		},
 	},
-
+	{	/* Handle problems with rebooting on the Latitude E6520. */
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E6520",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"),
+		},
+	},
+	{       /* Handle problems with rebooting on the OptiPlex 790. */
+		.callback = set_pci_reboot,
+		.ident = "Dell OptiPlex 790",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 790"),
+		},
+	},
+	{	/* Handle problems with rebooting on the OptiPlex 990. */
+		.callback = set_pci_reboot,
+		.ident = "Dell OptiPlex 990",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
+		},
+	},
+	{       /* Handle problems with rebooting on the Latitude E6220. */
+		.callback = set_pci_reboot,
+		.ident = "Dell Latitude E6220",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6220"),
+		},
+	},
+	{	/* Handle problems with rebooting on the OptiPlex 390. */
+		.callback = set_pci_reboot,
+		.ident = "Dell OptiPlex 390",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 390"),
+		},
+	},
 	{ }
 };
 
@@ -518,42 +568,29 @@
 	}
 }
 
-static void vmxoff_nmi(int cpu, struct pt_regs *regs)
-{
-	cpu_emergency_vmxoff();
-}
+static inline void nmi_shootdown_cpus_on_restart(void);
 
-/* Use NMIs as IPIs to tell all CPUs to disable virtualization */
-static void emergency_vmx_disable_all(void)
+static void emergency_reboot_disable_virtualization(void)
 {
 	/* Just make sure we won't change CPUs while doing this */
 	local_irq_disable();
 
 	/*
-	 * We need to disable VMX on all CPUs before rebooting, otherwise
-	 * we risk hanging up the machine, because the CPU ignore INIT
-	 * signals when VMX is enabled.
+	 * Disable virtualization on all CPUs before rebooting to avoid hanging
+	 * the system, as VMX and SVM block INIT when running in the host.
 	 *
-	 * We can't take any locks and we may be on an inconsistent
-	 * state, so we use NMIs as IPIs to tell the other CPUs to disable
-	 * VMX and halt.
+	 * We can't take any locks and we may be on an inconsistent state, so
+	 * use NMIs as IPIs to tell the other CPUs to disable VMX/SVM and halt.
 	 *
-	 * For safety, we will avoid running the nmi_shootdown_cpus()
-	 * stuff unnecessarily, but we don't have a way to check
-	 * if other CPUs have VMX enabled. So we will call it only if the
-	 * CPU we are running on has VMX enabled.
-	 *
-	 * We will miss cases where VMX is not enabled on all CPUs. This
-	 * shouldn't do much harm because KVM always enable VMX on all
-	 * CPUs anyway. But we can miss it on the small window where KVM
-	 * is still enabling VMX.
-	 */
-	if (cpu_has_vmx() && cpu_vmx_enabled()) {
-		/* Disable VMX on this CPU. */
-		cpu_vmxoff();
+	 * Do the NMI shootdown even if virtualization is off on _this_ CPU, as
+	 * other CPUs may have virtualization enabled.
+	 */
+	if (cpu_has_vmx() || cpu_has_svm(NULL)) {
+		/* Safely force _this_ CPU out of VMX/SVM operation. */
+		cpu_emergency_disable_virtualization();
 
-		/* Halt and disable VMX on the other CPUs */
-		nmi_shootdown_cpus(vmxoff_nmi);
+		/* Disable VMX/SVM and halt on other CPUs. */
+		nmi_shootdown_cpus_on_restart();
 
 	}
 }
@@ -590,7 +627,7 @@
 	unsigned short mode;
 
 	if (reboot_emergency)
-		emergency_vmx_disable_all();
+		emergency_reboot_disable_virtualization();
 
 	tboot_shutdown(TB_SHUTDOWN_REBOOT);
 
@@ -795,6 +832,17 @@
 /* This is the CPU performing the emergency shutdown work. */
 int crashing_cpu = -1;
 
+/*
+ * Disable virtualization, i.e. VMX or SVM, to ensure INIT is recognized during
+ * reboot.  VMX blocks INIT if the CPU is post-VMXON, and SVM blocks INIT if
+ * GIF=0, i.e. if the crash occurred between CLGI and STGI.
+ */
+void cpu_emergency_disable_virtualization(void)
+{
+	cpu_emergency_vmxoff();
+	cpu_emergency_svm_disable();
+}
+
 #if defined(CONFIG_SMP)
 
 static nmi_shootdown_cb shootdown_callback;
@@ -817,7 +865,14 @@
 		return NMI_HANDLED;
 	local_irq_disable();
 
-	shootdown_callback(cpu, regs);
+	if (shootdown_callback)
+		shootdown_callback(cpu, regs);
+
+	/*
+	 * Prepare the CPU for reboot _after_ invoking the callback so that the
+	 * callback can safely use virtualization instructions, e.g. VMCLEAR.
+	 */
+	cpu_emergency_disable_virtualization();
 
 	atomic_dec(&waiting_for_crash_ipi);
 	/* Assume hlt works */
@@ -828,18 +883,32 @@
 	return NMI_HANDLED;
 }
 
-/*
- * Halt all other CPUs, calling the specified function on each of them
+/**
+ * nmi_shootdown_cpus - Stop other CPUs via NMI
+ * @callback:	Optional callback to be invoked from the NMI handler
+ *
+ * The NMI handler on the remote CPUs invokes @callback, if not
+ * NULL, first and then disables virtualization to ensure that
+ * INIT is recognized during reboot.
  *
- * This function can be used to halt all other CPUs on crash
- * or emergency reboot time. The function passed as parameter
- * will be called inside a NMI handler on all CPUs.
+ * nmi_shootdown_cpus() can only be invoked once. After the first
+ * invocation all other CPUs are stuck in crash_nmi_callback() and
+ * cannot respond to a second NMI.
  */
 void nmi_shootdown_cpus(nmi_shootdown_cb callback)
 {
 	unsigned long msecs;
+
 	local_irq_disable();
 
+	/*
+	 * Avoid certain doom if a shootdown already occurred; re-registering
+	 * the NMI handler will cause list corruption, modifying the callback
+	 * will do who knows what, etc...
+	 */
+	if (WARN_ON_ONCE(crash_ipi_issued))
+		return;
+
 	/* Make a note of crashing cpu. Will be used in NMI callback. */
 	crashing_cpu = safe_smp_processor_id();
 
@@ -867,7 +936,17 @@
 		msecs--;
 	}
 
-	/* Leave the nmi callback set */
+	/*
+	 * Leave the nmi callback set, shootdown is a one-time thing.  Clearing
+	 * the callback could result in a NULL pointer dereference if a CPU
+	 * (finally) responds after the timeout expires.
+	 */
+}
+
+static inline void nmi_shootdown_cpus_on_restart(void)
+{
+	if (!crash_ipi_issued)
+		nmi_shootdown_cpus(NULL);
 }
 
 /*
@@ -897,6 +976,8 @@
 	/* No other CPUs to shoot down */
 }
 
+static inline void nmi_shootdown_cpus_on_restart(void) { }
+
 void run_crash_ipi_callback(struct pt_regs *regs)
 {
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/relocate_kernel_32.S
+++ linux-ein-5.4.0/arch/x86/kernel/relocate_kernel_32.S
@@ -8,6 +8,7 @@
 #include <asm/page_types.h>
 #include <asm/kexec.h>
 #include <asm/processor-flags.h>
+#include <asm/nospec-branch.h>
 
 /*
  * Must be relocatable PIC code callable as a C function
@@ -165,6 +166,7 @@
 	movl	CP_PA_SWAP_PAGE(%edi), %esp
 	addl	$PAGE_SIZE, %esp
 2:
+	ANNOTATE_RETPOLINE_SAFE
 	call	*%edx
 
 	/* get the re-entry point of the peer system */
--- linux-ein-5.4.0.orig/arch/x86/kernel/relocate_kernel_64.S
+++ linux-ein-5.4.0/arch/x86/kernel/relocate_kernel_64.S
@@ -9,6 +9,7 @@
 #include <asm/kexec.h>
 #include <asm/processor-flags.h>
 #include <asm/pgtable_types.h>
+#include <asm/nospec-branch.h>
 
 /*
  * Must be relocatable PIC code callable as a C function
@@ -192,6 +193,7 @@
 1:
 	popq	%rdx
 	leaq	PAGE_SIZE(%r10), %rsp
+	ANNOTATE_RETPOLINE_SAFE
 	call	*%rdx
 
 	/* get the re-entry point of the peer system */
--- linux-ein-5.4.0.orig/arch/x86/kernel/setup.c
+++ linux-ein-5.4.0/arch/x86/kernel/setup.c
@@ -73,6 +73,7 @@
 #include <linux/jiffies.h>
 #include <linux/mem_encrypt.h>
 #include <linux/sizes.h>
+#include <linux/security.h>
 
 #include <linux/usb/xhci-dbgp.h>
 #include <video/edid.h>
@@ -1027,6 +1028,13 @@
 	if (efi_enabled(EFI_BOOT))
 		efi_init();
 
+	efi_set_secure_boot(boot_params.secure_boot);
+
+#ifdef CONFIG_LOCK_DOWN_IN_SECURE_BOOT
+	if (efi_enabled(EFI_SECURE_BOOT))
+		security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX);
+#endif
+
 	dmi_setup();
 
 	/*
@@ -1126,6 +1134,7 @@
 		efi_fake_memmap();
 		efi_find_mirror();
 		efi_esrt_init();
+		efi_mokvar_table_init();
 
 		/*
 		 * The EFI specification says that boot service code won't be
@@ -1179,23 +1188,13 @@
 	/* Allocate bigger log buffer */
 	setup_log_buf(1);
 
-	if (efi_enabled(EFI_BOOT)) {
-		switch (boot_params.secure_boot) {
-		case efi_secureboot_mode_disabled:
-			pr_info("Secure boot disabled\n");
-			break;
-		case efi_secureboot_mode_enabled:
-			pr_info("Secure boot enabled\n");
-			break;
-		default:
-			pr_info("Secure boot could not be determined\n");
-			break;
-		}
-	}
+	efi_set_secure_boot(boot_params.secure_boot);
 
 	reserve_initrd();
 
 	acpi_table_upgrade();
+	/* Look for ACPI tables and reserve memory occupied by them. */
+	acpi_boot_table_init();
 
 	vsmp_init();
 
@@ -1203,11 +1202,6 @@
 
 	early_platform_quirks();
 
-	/*
-	 * Parse the ACPI tables for possible boot-time SMP configuration.
-	 */
-	acpi_boot_table_init();
-
 	early_acpi_boot_init();
 
 	initmem_init();
--- linux-ein-5.4.0.orig/arch/x86/kernel/signal.c
+++ linux-ein-5.4.0/arch/x86/kernel/signal.c
@@ -241,10 +241,11 @@
 	     void __user **fpstate)
 {
 	/* Default to using normal stack */
+	bool nested_altstack = on_sig_stack(regs->sp);
+	bool entering_altstack = false;
 	unsigned long math_size = 0;
 	unsigned long sp = regs->sp;
 	unsigned long buf_fx = 0;
-	int onsigstack = on_sig_stack(sp);
 	int ret;
 
 	/* redzone */
@@ -253,15 +254,23 @@
 
 	/* This is the X/Open sanctioned signal stack switching.  */
 	if (ka->sa.sa_flags & SA_ONSTACK) {
-		if (sas_ss_flags(sp) == 0)
+		/*
+		 * This checks nested_altstack via sas_ss_flags(). Sensible
+		 * programs use SS_AUTODISARM, which disables that check, and
+		 * programs that don't use SS_AUTODISARM get compatible.
+		 */
+		if (sas_ss_flags(sp) == 0) {
 			sp = current->sas_ss_sp + current->sas_ss_size;
+			entering_altstack = true;
+		}
 	} else if (IS_ENABLED(CONFIG_X86_32) &&
-		   !onsigstack &&
+		   !nested_altstack &&
 		   regs->ss != __USER_DS &&
 		   !(ka->sa.sa_flags & SA_RESTORER) &&
 		   ka->sa.sa_restorer) {
 		/* This is the legacy signal stack switching. */
 		sp = (unsigned long) ka->sa.sa_restorer;
+		entering_altstack = true;
 	}
 
 	sp = fpu__alloc_mathframe(sp, IS_ENABLED(CONFIG_X86_32),
@@ -274,8 +283,15 @@
 	 * If we are on the alternate signal stack and would overflow it, don't.
 	 * Return an always-bogus address instead so we will die with SIGSEGV.
 	 */
-	if (onsigstack && !likely(on_sig_stack(sp)))
+	if (unlikely((nested_altstack || entering_altstack) &&
+		     !__on_sig_stack(sp))) {
+
+		if (show_unhandled_signals && printk_ratelimit())
+			pr_info("%s[%d] overflowed sigaltstack\n",
+				current->comm, task_pid_nr(current));
+
 		return (void __user *)-1L;
+	}
 
 	/* save i387 and extended state */
 	ret = copy_fpstate_to_sigframe(*fpstate, (void __user *)buf_fx, math_size);
@@ -770,30 +786,8 @@
 
 static inline unsigned long get_nr_restart_syscall(const struct pt_regs *regs)
 {
-	/*
-	 * This function is fundamentally broken as currently
-	 * implemented.
-	 *
-	 * The idea is that we want to trigger a call to the
-	 * restart_block() syscall and that we want in_ia32_syscall(),
-	 * in_x32_syscall(), etc. to match whatever they were in the
-	 * syscall being restarted.  We assume that the syscall
-	 * instruction at (regs->ip - 2) matches whatever syscall
-	 * instruction we used to enter in the first place.
-	 *
-	 * The problem is that we can get here when ptrace pokes
-	 * syscall-like values into regs even if we're not in a syscall
-	 * at all.
-	 *
-	 * For now, we maintain historical behavior and guess based on
-	 * stored state.  We could do better by saving the actual
-	 * syscall arch in restart_block or (with caveats on x32) by
-	 * checking if regs->ip points to 'int $0x80'.  The current
-	 * behavior is incorrect if a tracer has a different bitness
-	 * than the tracee.
-	 */
 #ifdef CONFIG_IA32_EMULATION
-	if (current_thread_info()->status & (TS_COMPAT|TS_I386_REGS_POKED))
+	if (current_thread_info()->status & TS_COMPAT_RESTART)
 		return __NR_ia32_restart_syscall;
 #endif
 #ifdef CONFIG_X86_X32_ABI
--- linux-ein-5.4.0.orig/arch/x86/kernel/smp.c
+++ linux-ein-5.4.0/arch/x86/kernel/smp.c
@@ -31,7 +31,7 @@
 #include <asm/mce.h>
 #include <asm/trace/irq_vectors.h>
 #include <asm/kexec.h>
-#include <asm/virtext.h>
+#include <asm/reboot.h>
 
 /*
  *	Some notes on x86 processor bugs affecting SMP operation:
@@ -121,7 +121,7 @@
 	if (raw_smp_processor_id() == atomic_read(&stopping_cpu))
 		return NMI_HANDLED;
 
-	cpu_emergency_vmxoff();
+	cpu_emergency_disable_virtualization();
 	stop_this_cpu(NULL);
 
 	return NMI_HANDLED;
@@ -134,7 +134,7 @@
 asmlinkage __visible void smp_reboot_interrupt(void)
 {
 	ipi_entering_ack_irq();
-	cpu_emergency_vmxoff();
+	cpu_emergency_disable_virtualization();
 	stop_this_cpu(NULL);
 	irq_exit();
 }
--- linux-ein-5.4.0.orig/arch/x86/kernel/smpboot.c
+++ linux-ein-5.4.0/arch/x86/kernel/smpboot.c
@@ -99,6 +99,17 @@
 DEFINE_PER_CPU_READ_MOSTLY(struct cpuinfo_x86, cpu_info);
 EXPORT_PER_CPU_SYMBOL(cpu_info);
 
+struct mwait_cpu_dead {
+	unsigned int	control;
+	unsigned int	status;
+};
+
+/*
+ * Cache line aligned data for mwait_play_dead(). Separate on purpose so
+ * that it's unlikely to be touched by other CPUs.
+ */
+static DEFINE_PER_CPU_ALIGNED(struct mwait_cpu_dead, mwait_cpu_dead);
+
 /* Logical package management. We might want to allocate that dynamically */
 unsigned int __max_logical_packages __read_mostly;
 EXPORT_SYMBOL(__max_logical_packages);
@@ -224,6 +235,8 @@
 #endif
 	load_current_idt();
 	cpu_init();
+	fpu__init_cpu();
+	rcu_cpu_starting(raw_smp_processor_id());
 	x86_cpuinit.early_percpu_clock_init();
 	preempt_disable();
 	smp_callin();
@@ -262,6 +275,14 @@
 
 	wmb();
 	cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
+
+	/*
+	 * Prevent tail call to cpu_startup_entry() because the stack protector
+	 * guard has been changed a couple of function calls up, in
+	 * boot_init_stack_canary() and must not be checked before tail calling
+	 * another function.
+	 */
+	prevent_tail_call_optimization();
 }
 
 /**
@@ -1591,14 +1612,28 @@
 	if (ret)
 		return ret;
 
-	/*
-	 * Disable the local APIC. Otherwise IPI broadcasts will reach
-	 * it. It still responds normally to INIT, NMI, SMI, and SIPI
-	 * messages.
-	 */
-	apic_soft_disable();
 	cpu_disable_common();
 
+        /*
+         * Disable the local APIC. Otherwise IPI broadcasts will reach
+         * it. It still responds normally to INIT, NMI, SMI, and SIPI
+         * messages.
+         *
+         * Disabling the APIC must happen after cpu_disable_common()
+         * which invokes fixup_irqs().
+         *
+         * Disabling the APIC preserves already set bits in IRR, but
+         * an interrupt arriving after disabling the local APIC does not
+         * set the corresponding IRR bit.
+         *
+         * fixup_irqs() scans IRR for set bits so it can raise a not
+         * yet handled interrupt on the new destination CPU via an IPI
+         * but obviously it can't do so for IRR bits which are not set.
+         * IOW, interrupts arriving after disabling the local APIC will
+         * be lost.
+         */
+	apic_soft_disable();
+
 	return 0;
 }
 
@@ -1652,10 +1687,10 @@
  */
 static inline void mwait_play_dead(void)
 {
+	struct mwait_cpu_dead *md = this_cpu_ptr(&mwait_cpu_dead);
 	unsigned int eax, ebx, ecx, edx;
 	unsigned int highest_cstate = 0;
 	unsigned int highest_subcstate = 0;
-	void *mwait_ptr;
 	int i;
 
 	if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
@@ -1690,13 +1725,6 @@
 			(highest_subcstate - 1);
 	}
 
-	/*
-	 * This should be a memory location in a cache line which is
-	 * unlikely to be touched by other processors.  The actual
-	 * content is immaterial as it is not actually modified in any way.
-	 */
-	mwait_ptr = &current_thread_info()->flags;
-
 	wbinvd();
 
 	while (1) {
@@ -1708,9 +1736,9 @@
 		 * case where we return around the loop.
 		 */
 		mb();
-		clflush(mwait_ptr);
+		clflush(md);
 		mb();
-		__monitor(mwait_ptr, 0, 0);
+		__monitor(md, 0, 0);
 		mb();
 		__mwait(eax, 0);
 		/*
--- linux-ein-5.4.0.orig/arch/x86/kernel/stacktrace.c
+++ linux-ein-5.4.0/arch/x86/kernel/stacktrace.c
@@ -58,7 +58,6 @@
 			 * or a page fault), which can make frame pointers
 			 * unreliable.
 			 */
-
 			if (IS_ENABLED(CONFIG_FRAME_POINTER))
 				return -EINVAL;
 		}
@@ -81,10 +80,6 @@
 	if (unwind_error(&state))
 		return -EINVAL;
 
-	/* Success path for non-user tasks, i.e. kthreads and idle tasks */
-	if (!(task->flags & (PF_KTHREAD | PF_IDLE)))
-		return -EINVAL;
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/step.c
+++ linux-ein-5.4.0/arch/x86/kernel/step.c
@@ -175,8 +175,7 @@
 	 *
 	 * NOTE: this means that set/clear TIF_BLOCKSTEP is only safe if
 	 * task is current or it can't be running, otherwise we can race
-	 * with __switch_to_xtra(). We rely on ptrace_freeze_traced() but
-	 * PTRACE_KILL is not safe.
+	 * with __switch_to_xtra(). We rely on ptrace_freeze_traced().
 	 */
 	local_irq_disable();
 	debugctl = get_debugctlmsr();
--- linux-ein-5.4.0.orig/arch/x86/kernel/sys_x86_64.c
+++ linux-ein-5.4.0/arch/x86/kernel/sys_x86_64.c
@@ -70,9 +70,6 @@
 	if (*str == 0)
 		return 1;
 
-	if (*str == '=')
-		str++;
-
 	if (!strcmp(str, "32"))
 		va_align.flags = ALIGN_VA_32;
 	else if (!strcmp(str, "64"))
@@ -82,11 +79,11 @@
 	else if (!strcmp(str, "on"))
 		va_align.flags = ALIGN_VA_32 | ALIGN_VA_64;
 	else
-		return 0;
+		pr_warn("invalid option value: 'align_va_addr=%s'\n", str);
 
 	return 1;
 }
-__setup("align_va_addr", control_va_addr_alignment);
+__setup("align_va_addr=", control_va_addr_alignment);
 
 SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
 		unsigned long, prot, unsigned long, flags,
--- linux-ein-5.4.0.orig/arch/x86/kernel/sysfb_efi.c
+++ linux-ein-5.4.0/arch/x86/kernel/sysfb_efi.c
@@ -264,6 +264,22 @@
 					"Lenovo ideapad D330-10IGM"),
 		},
 	},
+	{
+		/* Lenovo IdeaPad Duet 3 10IGL5 with 1200x1920 portrait screen */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_VERSION,
+					"IdeaPad Duet 3 10IGL5"),
+		},
+	},
+	{
+		/* Lenovo Yoga Book X91F / X91L */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			/* Non exact match to match F + L versions */
+			DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91"),
+		},
+	},
 	{},
 };
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/sysfb_simplefb.c
+++ linux-ein-5.4.0/arch/x86/kernel/sysfb_simplefb.c
@@ -90,11 +90,11 @@
 	if (si->orig_video_isVGA == VIDEO_TYPE_VLFB)
 		size <<= 16;
 	length = mode->height * mode->stride;
-	length = PAGE_ALIGN(length);
 	if (length > size) {
 		printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n");
 		return -EINVAL;
 	}
+	length = PAGE_ALIGN(length);
 
 	/* setup IORESOURCE_MEM as framebuffer memory */
 	memset(&res, 0, sizeof(res));
--- linux-ein-5.4.0.orig/arch/x86/kernel/tboot.c
+++ linux-ein-5.4.0/arch/x86/kernel/tboot.c
@@ -512,9 +512,6 @@
 	if (!tboot_enabled())
 		return 0;
 
-	if (intel_iommu_tboot_noforce)
-		return 1;
-
 	if (no_iommu || swiotlb || dmar_disabled)
 		pr_warning("Forcing Intel-IOMMU to enabled\n");
 
--- linux-ein-5.4.0.orig/arch/x86/kernel/time.c
+++ linux-ein-5.4.0/arch/x86/kernel/time.c
@@ -25,10 +25,6 @@
 #include <asm/hpet.h>
 #include <asm/time.h>
 
-#ifdef CONFIG_X86_64
-__visible volatile unsigned long jiffies __cacheline_aligned_in_smp = INITIAL_JIFFIES;
-#endif
-
 unsigned long profile_pc(struct pt_regs *regs)
 {
 	unsigned long pc = instruction_pointer(regs);
@@ -91,10 +87,18 @@
 
 static __init void x86_late_time_init(void)
 {
+	/*
+	 * Before PIT/HPET init, select the interrupt mode. This is required
+	 * to make the decision whether PIT should be initialized correct.
+	 */
+	x86_init.irqs.intr_mode_select();
+
+	/* Setup the legacy timers */
 	x86_init.timers.timer_init();
+
 	/*
-	 * After PIT/HPET timers init, select and setup
-	 * the final interrupt mode for delivering IRQs.
+	 * After PIT/HPET timers init, set up the final interrupt mode for
+	 * delivering IRQs.
 	 */
 	x86_init.irqs.intr_mode_init();
 	tsc_init();
--- linux-ein-5.4.0.orig/arch/x86/kernel/tsc.c
+++ linux-ein-5.4.0/arch/x86/kernel/tsc.c
@@ -1162,6 +1162,12 @@
 
 EXPORT_SYMBOL_GPL(mark_tsc_unstable);
 
+static void __init tsc_disable_clocksource_watchdog(void)
+{
+	clocksource_tsc_early.flags &= ~CLOCK_SOURCE_MUST_VERIFY;
+	clocksource_tsc.flags &= ~CLOCK_SOURCE_MUST_VERIFY;
+}
+
 static void __init check_system_tsc_reliable(void)
 {
 #if defined(CONFIG_MGEODEGX1) || defined(CONFIG_MGEODE_LX) || defined(CONFIG_X86_GENERIC)
@@ -1178,6 +1184,23 @@
 #endif
 	if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE))
 		tsc_clocksource_reliable = 1;
+
+	/*
+	 * Disable the clocksource watchdog when the system has:
+	 *  - TSC running at constant frequency
+	 *  - TSC which does not stop in C-States
+	 *  - the TSC_ADJUST register which allows to detect even minimal
+	 *    modifications
+	 *  - not more than two sockets. As the number of sockets cannot be
+	 *    evaluated at the early boot stage where this has to be
+	 *    invoked, check the number of online memory nodes as a
+	 *    fallback solution which is an reasonable estimate.
+	 */
+	if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
+	    boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
+	    boot_cpu_has(X86_FEATURE_TSC_ADJUST) &&
+	    nr_online_nodes <= 2)
+		tsc_disable_clocksource_watchdog();
 }
 
 /*
@@ -1369,9 +1392,6 @@
 	if (tsc_unstable)
 		goto unreg;
 
-	if (tsc_clocksource_reliable || no_tsc_watchdog)
-		clocksource_tsc.flags &= ~CLOCK_SOURCE_MUST_VERIFY;
-
 	if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC_S3))
 		clocksource_tsc.flags |= CLOCK_SOURCE_SUSPEND_NONSTOP;
 
@@ -1506,7 +1526,7 @@
 	}
 
 	if (tsc_clocksource_reliable || no_tsc_watchdog)
-		clocksource_tsc_early.flags &= ~CLOCK_SOURCE_MUST_VERIFY;
+		tsc_disable_clocksource_watchdog();
 
 	clocksource_register_khz(&clocksource_tsc_early, tsc_khz);
 	detect_art();
--- linux-ein-5.4.0.orig/arch/x86/kernel/tsc_msr.c
+++ linux-ein-5.4.0/arch/x86/kernel/tsc_msr.c
@@ -15,18 +15,46 @@
 #include <asm/param.h>
 #include <asm/tsc.h>
 
-#define MAX_NUM_FREQS	9
+#define MAX_NUM_FREQS	16 /* 4 bits to select the frequency */
+
+/*
+ * The frequency numbers in the SDM are e.g. 83.3 MHz, which does not contain a
+ * lot of accuracy which leads to clock drift. As far as we know Bay Trail SoCs
+ * use a 25 MHz crystal and Cherry Trail uses a 19.2 MHz crystal, the crystal
+ * is the source clk for a root PLL which outputs 1600 and 100 MHz. It is
+ * unclear if the root PLL outputs are used directly by the CPU clock PLL or
+ * if there is another PLL in between.
+ * This does not matter though, we can model the chain of PLLs as a single PLL
+ * with a quotient equal to the quotients of all PLLs in the chain multiplied.
+ * So we can create a simplified model of the CPU clock setup using a reference
+ * clock of 100 MHz plus a quotient which gets us as close to the frequency
+ * from the SDM as possible.
+ * For the 83.3 MHz example from above this would give us 100 MHz * 5 / 6 =
+ * 83 and 1/3 MHz, which matches exactly what has been measured on actual hw.
+ */
+#define TSC_REFERENCE_KHZ 100000
+
+struct muldiv {
+	u32 multiplier;
+	u32 divider;
+};
 
 /*
  * If MSR_PERF_STAT[31] is set, the maximum resolved bus ratio can be
  * read in MSR_PLATFORM_ID[12:8], otherwise in MSR_PERF_STAT[44:40].
  * Unfortunately some Intel Atom SoCs aren't quite compliant to this,
  * so we need manually differentiate SoC families. This is what the
- * field msr_plat does.
+ * field use_msr_plat does.
  */
 struct freq_desc {
-	u8 msr_plat;	/* 1: use MSR_PLATFORM_INFO, 0: MSR_IA32_PERF_STATUS */
+	bool use_msr_plat;
+	struct muldiv muldiv[MAX_NUM_FREQS];
+	/*
+	 * Some CPU frequencies in the SDM do not map to known PLL freqs, in
+	 * that case the muldiv array is empty and the freqs array is used.
+	 */
 	u32 freqs[MAX_NUM_FREQS];
+	u32 mask;
 };
 
 /*
@@ -35,31 +63,86 @@
  * by MSR based on SDM.
  */
 static const struct freq_desc freq_desc_pnw = {
-	0, { 0, 0, 0, 0, 0, 99840, 0, 83200 }
+	.use_msr_plat = false,
+	.freqs = { 0, 0, 0, 0, 0, 99840, 0, 83200 },
+	.mask = 0x07,
 };
 
 static const struct freq_desc freq_desc_clv = {
-	0, { 0, 133200, 0, 0, 0, 99840, 0, 83200 }
+	.use_msr_plat = false,
+	.freqs = { 0, 133200, 0, 0, 0, 99840, 0, 83200 },
+	.mask = 0x07,
 };
 
+/*
+ * Bay Trail SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ *  000:   100 *  5 /  6  =  83.3333 MHz
+ *  001:   100 *  1 /  1  = 100.0000 MHz
+ *  010:   100 *  4 /  3  = 133.3333 MHz
+ *  011:   100 *  7 /  6  = 116.6667 MHz
+ *  100:   100 *  4 /  5  =  80.0000 MHz
+ */
 static const struct freq_desc freq_desc_byt = {
-	1, { 83300, 100000, 133300, 116700, 80000, 0, 0, 0 }
+	.use_msr_plat = true,
+	.muldiv = { { 5, 6 }, { 1, 1 }, { 4, 3 }, { 7, 6 },
+		    { 4, 5 } },
+	.mask = 0x07,
 };
 
+/*
+ * Cherry Trail SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ * 0000:   100 *  5 /  6  =  83.3333 MHz
+ * 0001:   100 *  1 /  1  = 100.0000 MHz
+ * 0010:   100 *  4 /  3  = 133.3333 MHz
+ * 0011:   100 *  7 /  6  = 116.6667 MHz
+ * 0100:   100 *  4 /  5  =  80.0000 MHz
+ * 0101:   100 * 14 / 15  =  93.3333 MHz
+ * 0110:   100 *  9 / 10  =  90.0000 MHz
+ * 0111:   100 *  8 /  9  =  88.8889 MHz
+ * 1000:   100 *  7 /  8  =  87.5000 MHz
+ */
 static const struct freq_desc freq_desc_cht = {
-	1, { 83300, 100000, 133300, 116700, 80000, 93300, 90000, 88900, 87500 }
+	.use_msr_plat = true,
+	.muldiv = { { 5, 6 }, {  1,  1 }, { 4,  3 }, { 7, 6 },
+		    { 4, 5 }, { 14, 15 }, { 9, 10 }, { 8, 9 },
+		    { 7, 8 } },
+	.mask = 0x0f,
 };
 
+/*
+ * Merriefield SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ * 0001:   100 *  1 /  1  = 100.0000 MHz
+ * 0010:   100 *  4 /  3  = 133.3333 MHz
+ */
 static const struct freq_desc freq_desc_tng = {
-	1, { 0, 100000, 133300, 0, 0, 0, 0, 0 }
+	.use_msr_plat = true,
+	.muldiv = { { 0, 0 }, { 1, 1 }, { 4, 3 } },
+	.mask = 0x07,
 };
 
+/*
+ * Moorefield SDM MSR_FSB_FREQ frequencies simplified PLL model:
+ * 0000:   100 *  5 /  6  =  83.3333 MHz
+ * 0001:   100 *  1 /  1  = 100.0000 MHz
+ * 0010:   100 *  4 /  3  = 133.3333 MHz
+ * 0011:   100 *  1 /  1  = 100.0000 MHz
+ */
 static const struct freq_desc freq_desc_ann = {
-	1, { 83300, 100000, 133300, 100000, 0, 0, 0, 0 }
+	.use_msr_plat = true,
+	.muldiv = { { 5, 6 }, { 1, 1 }, { 4, 3 }, { 1, 1 } },
+	.mask = 0x0f,
 };
 
+/*
+ * 24 MHz crystal? : 24 * 13 / 4 = 78 MHz
+ * Frequency step for Lightning Mountain SoC is fixed to 78 MHz,
+ * so all the frequency entries are 78000.
+ */
 static const struct freq_desc freq_desc_lgm = {
-	1, { 78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000 }
+	.use_msr_plat = true,
+	.freqs = { 78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000,
+		   78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000 },
+	.mask = 0x0f,
 };
 
 static const struct x86_cpu_id tsc_msr_cpu_ids[] = {
@@ -81,17 +164,19 @@
  */
 unsigned long cpu_khz_from_msr(void)
 {
-	u32 lo, hi, ratio, freq;
+	u32 lo, hi, ratio, freq, tscref;
 	const struct freq_desc *freq_desc;
 	const struct x86_cpu_id *id;
+	const struct muldiv *md;
 	unsigned long res;
+	int index;
 
 	id = x86_match_cpu(tsc_msr_cpu_ids);
 	if (!id)
 		return 0;
 
 	freq_desc = (struct freq_desc *)id->driver_data;
-	if (freq_desc->msr_plat) {
+	if (freq_desc->use_msr_plat) {
 		rdmsr(MSR_PLATFORM_INFO, lo, hi);
 		ratio = (lo >> 8) & 0xff;
 	} else {
@@ -101,12 +186,28 @@
 
 	/* Get FSB FREQ ID */
 	rdmsr(MSR_FSB_FREQ, lo, hi);
+	index = lo & freq_desc->mask;
+	md = &freq_desc->muldiv[index];
 
-	/* Map CPU reference clock freq ID(0-7) to CPU reference clock freq(KHz) */
-	freq = freq_desc->freqs[lo & 0x7];
+	/*
+	 * Note this also catches cases where the index points to an unpopulated
+	 * part of muldiv, in that case the else will set freq and res to 0.
+	 */
+	if (md->divider) {
+		tscref = TSC_REFERENCE_KHZ * md->multiplier;
+		freq = DIV_ROUND_CLOSEST(tscref, md->divider);
+		/*
+		 * Multiplying by ratio before the division has better
+		 * accuracy than just calculating freq * ratio.
+		 */
+		res = DIV_ROUND_CLOSEST(tscref * ratio, md->divider);
+	} else {
+		freq = freq_desc->freqs[index];
+		res = freq * ratio;
+	}
 
-	/* TSC frequency = maximum resolved freq * maximum resolved bus ratio */
-	res = freq * ratio;
+	if (freq == 0)
+		pr_err("Error MSR_FSB_FREQ index %d is unknown\n", index);
 
 #ifdef CONFIG_X86_LOCAL_APIC
 	lapic_timer_period = (freq * 1000) / HZ;
--- linux-ein-5.4.0.orig/arch/x86/kernel/tsc_sync.c
+++ linux-ein-5.4.0/arch/x86/kernel/tsc_sync.c
@@ -30,6 +30,7 @@
 };
 
 static DEFINE_PER_CPU(struct tsc_adjust, tsc_adjust);
+static struct timer_list tsc_sync_check_timer;
 
 /*
  * TSC's on different sockets may be reset asynchronously.
@@ -77,6 +78,46 @@
 	}
 }
 
+/*
+ * Normally the tsc_sync will be checked every time system enters idle
+ * state, but there is still caveat that a system won't enter idle,
+ * either because it's too busy or configured purposely to not enter
+ * idle.
+ *
+ * So setup a periodic timer (every 10 minutes) to make sure the check
+ * is always on.
+ */
+
+#define SYNC_CHECK_INTERVAL		(HZ * 600)
+
+static void tsc_sync_check_timer_fn(struct timer_list *unused)
+{
+	int next_cpu;
+
+	tsc_verify_tsc_adjust(false);
+
+	/* Run the check for all onlined CPUs in turn */
+	next_cpu = cpumask_next(raw_smp_processor_id(), cpu_online_mask);
+	if (next_cpu >= nr_cpu_ids)
+		next_cpu = cpumask_first(cpu_online_mask);
+
+	tsc_sync_check_timer.expires += SYNC_CHECK_INTERVAL;
+	add_timer_on(&tsc_sync_check_timer, next_cpu);
+}
+
+static int __init start_sync_check_timer(void)
+{
+	if (!cpu_feature_enabled(X86_FEATURE_TSC_ADJUST) || tsc_clocksource_reliable)
+		return 0;
+
+	timer_setup(&tsc_sync_check_timer, tsc_sync_check_timer_fn, 0);
+	tsc_sync_check_timer.expires = jiffies + SYNC_CHECK_INTERVAL;
+	add_timer(&tsc_sync_check_timer);
+
+	return 0;
+}
+late_initcall(start_sync_check_timer);
+
 static void tsc_sanitize_first_cpu(struct tsc_adjust *cur, s64 bootval,
 				   unsigned int cpu, bool bootcpu)
 {
--- linux-ein-5.4.0.orig/arch/x86/kernel/unwind_orc.c
+++ linux-ein-5.4.0/arch/x86/kernel/unwind_orc.c
@@ -90,22 +90,27 @@
 static struct orc_entry *orc_ftrace_find(unsigned long ip)
 {
 	struct ftrace_ops *ops;
-	unsigned long caller;
+	unsigned long tramp_addr, offset;
 
 	ops = ftrace_ops_trampoline(ip);
 	if (!ops)
 		return NULL;
 
+	/* Set tramp_addr to the start of the code copied by the trampoline */
 	if (ops->flags & FTRACE_OPS_FL_SAVE_REGS)
-		caller = (unsigned long)ftrace_regs_call;
+		tramp_addr = (unsigned long)ftrace_regs_caller;
 	else
-		caller = (unsigned long)ftrace_call;
+		tramp_addr = (unsigned long)ftrace_caller;
+
+	/* Now place tramp_addr to the location within the trampoline ip is at */
+	offset = ip - ops->trampoline;
+	tramp_addr += offset;
 
 	/* Prevent unlikely recursion */
-	if (ip == caller)
+	if (ip == tramp_addr)
 		return NULL;
 
-	return orc_find(caller);
+	return orc_find(tramp_addr);
 }
 #else
 static struct orc_entry *orc_ftrace_find(unsigned long ip)
@@ -142,9 +147,6 @@
 {
 	static struct orc_entry *orc;
 
-	if (!orc_init)
-		return NULL;
-
 	if (ip == 0)
 		return &null_orc_entry;
 
@@ -360,8 +362,8 @@
 	if (!stack_access_ok(state, addr, sizeof(struct pt_regs)))
 		return false;
 
-	*ip = regs->ip;
-	*sp = regs->sp;
+	*ip = READ_ONCE_NOCHECK(regs->ip);
+	*sp = READ_ONCE_NOCHECK(regs->sp);
 	return true;
 }
 
@@ -373,14 +375,43 @@
 	if (!stack_access_ok(state, addr, IRET_FRAME_SIZE))
 		return false;
 
-	*ip = regs->ip;
-	*sp = regs->sp;
+	*ip = READ_ONCE_NOCHECK(regs->ip);
+	*sp = READ_ONCE_NOCHECK(regs->sp);
 	return true;
 }
 
+/*
+ * If state->regs is non-NULL, and points to a full pt_regs, just get the reg
+ * value from state->regs.
+ *
+ * Otherwise, if state->regs just points to IRET regs, and the previous frame
+ * had full regs, it's safe to get the value from the previous regs.  This can
+ * happen when early/late IRQ entry code gets interrupted by an NMI.
+ */
+static bool get_reg(struct unwind_state *state, unsigned int reg_off,
+		    unsigned long *val)
+{
+	unsigned int reg = reg_off/8;
+
+	if (!state->regs)
+		return false;
+
+	if (state->full_regs) {
+		*val = READ_ONCE_NOCHECK(((unsigned long *)state->regs)[reg]);
+		return true;
+	}
+
+	if (state->prev_regs) {
+		*val = READ_ONCE_NOCHECK(((unsigned long *)state->prev_regs)[reg]);
+		return true;
+	}
+
+	return false;
+}
+
 bool unwind_next_frame(struct unwind_state *state)
 {
-	unsigned long ip_p, sp, orig_ip = state->ip, prev_sp = state->sp;
+	unsigned long ip_p, sp, tmp, orig_ip = state->ip, prev_sp = state->sp;
 	enum stack_type prev_type = state->stack_info.type;
 	struct orc_entry *orc;
 	bool indirect = false;
@@ -398,8 +429,11 @@
 	/*
 	 * Find the orc_entry associated with the text address.
 	 *
-	 * Decrement call return addresses by one so they work for sibling
-	 * calls and calls to noreturn functions.
+	 * For a call frame (as opposed to a signal frame), state->ip points to
+	 * the instruction after the call.  That instruction's stack layout
+	 * could be different from the call instruction's layout, for example
+	 * if the call was to a noreturn function.  So get the ORC data for the
+	 * call instruction itself.
 	 */
 	orc = orc_find(state->signal ? state->ip : state->ip - 1);
 	if (!orc) {
@@ -442,39 +476,35 @@
 		break;
 
 	case ORC_REG_R10:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, r10), &sp)) {
 			orc_warn("missing regs for base reg R10 at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->r10;
 		break;
 
 	case ORC_REG_R13:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, r13), &sp)) {
 			orc_warn("missing regs for base reg R13 at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->r13;
 		break;
 
 	case ORC_REG_DI:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, di), &sp)) {
 			orc_warn("missing regs for base reg DI at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->di;
 		break;
 
 	case ORC_REG_DX:
-		if (!state->regs || !state->full_regs) {
+		if (!get_reg(state, offsetof(struct pt_regs, dx), &sp)) {
 			orc_warn("missing regs for base reg DX at ip %pB\n",
 				 (void *)state->ip);
 			goto err;
 		}
-		sp = state->regs->dx;
 		break;
 
 	default:
@@ -501,6 +531,7 @@
 
 		state->sp = sp;
 		state->regs = NULL;
+		state->prev_regs = NULL;
 		state->signal = false;
 		break;
 
@@ -512,6 +543,7 @@
 		}
 
 		state->regs = (struct pt_regs *)sp;
+		state->prev_regs = NULL;
 		state->full_regs = true;
 		state->signal = true;
 		break;
@@ -523,6 +555,8 @@
 			goto err;
 		}
 
+		if (state->full_regs)
+			state->prev_regs = state->regs;
 		state->regs = (void *)sp - IRET_FRAME_OFFSET;
 		state->full_regs = false;
 		state->signal = true;
@@ -531,14 +565,14 @@
 	default:
 		orc_warn("unknown .orc_unwind entry type %d for ip %pB\n",
 			 orc->type, (void *)orig_ip);
-		break;
+		goto err;
 	}
 
 	/* Find BP: */
 	switch (orc->bp_reg) {
 	case ORC_REG_UNDEFINED:
-		if (state->regs && state->full_regs)
-			state->bp = state->regs->bp;
+		if (get_reg(state, offsetof(struct pt_regs, bp), &tmp))
+			state->bp = tmp;
 		break;
 
 	case ORC_REG_PREV_SP:
@@ -585,17 +619,20 @@
 	memset(state, 0, sizeof(*state));
 	state->task = task;
 
+	if (!orc_init)
+		goto err;
+
 	/*
 	 * Refuse to unwind the stack of a task while it's executing on another
 	 * CPU.  This check is racy, but that's ok: the unwinder has other
 	 * checks to prevent it from going off the rails.
 	 */
 	if (task_on_another_cpu(task))
-		goto done;
+		goto err;
 
 	if (regs) {
 		if (user_mode(regs))
-			goto done;
+			goto the_end;
 
 		state->ip = regs->ip;
 		state->sp = regs->sp;
@@ -614,9 +651,10 @@
 	} else {
 		struct inactive_task_frame *frame = (void *)task->thread.sp;
 
-		state->sp = task->thread.sp;
+		state->sp = task->thread.sp + sizeof(*frame);
 		state->bp = READ_ONCE_NOCHECK(frame->bp);
 		state->ip = READ_ONCE_NOCHECK(frame->ret_addr);
+		state->signal = (void *)state->ip == ret_from_fork;
 	}
 
 	if (get_stack_info((unsigned long *)state->sp, state->task,
@@ -628,6 +666,7 @@
 		 * generate some kind of backtrace if this happens.
 		 */
 		void *next_page = (void *)PAGE_ALIGN((unsigned long)state->sp);
+		state->error = true;
 		if (get_stack_info(next_page, state->task, &state->stack_info,
 				   &state->stack_mask))
 			return;
@@ -653,8 +692,9 @@
 
 	return;
 
-done:
+err:
+	state->error = true;
+the_end:
 	state->stack_info.type = STACK_TYPE_UNKNOWN;
-	return;
 }
 EXPORT_SYMBOL_GPL(__unwind_start);
--- linux-ein-5.4.0.orig/arch/x86/kernel/uprobes.c
+++ linux-ein-5.4.0/arch/x86/kernel/uprobes.c
@@ -255,12 +255,13 @@
 
 static bool is_prefix_bad(struct insn *insn)
 {
+	insn_byte_t p;
 	int i;
 
-	for (i = 0; i < insn->prefixes.nbytes; i++) {
+	for_each_insn_prefix(insn, i, p) {
 		insn_attr_t attr;
 
-		attr = inat_get_opcode_attribute(insn->prefixes.bytes[i]);
+		attr = inat_get_opcode_attribute(p);
 		switch (attr) {
 		case INAT_MAKE_PREFIX(INAT_PFX_ES):
 		case INAT_MAKE_PREFIX(INAT_PFX_CS):
@@ -715,13 +716,15 @@
 static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
 {
 	u8 opc1 = OPCODE1(insn);
+	insn_byte_t p;
 	int i;
 
 	switch (opc1) {
 	case 0xeb:	/* jmp 8 */
 	case 0xe9:	/* jmp 32 */
-	case 0x90:	/* prefix* + nop; same as jmp with .offs = 0 */
 		break;
+	case 0x90:	/* prefix* + nop; same as jmp with .offs = 0 */
+		goto setup;
 
 	case 0xe8:	/* call relative */
 		branch_clear_offset(auprobe, insn);
@@ -746,11 +749,12 @@
 	 * Intel and AMD behavior differ in 64-bit mode: Intel ignores 66 prefix.
 	 * No one uses these insns, reject any branch insns with such prefix.
 	 */
-	for (i = 0; i < insn->prefixes.nbytes; i++) {
-		if (insn->prefixes.bytes[i] == 0x66)
+	for_each_insn_prefix(insn, i, p) {
+		if (p == 0x66)
 			return -ENOTSUPP;
 	}
 
+setup:
 	auprobe->branch.opc1 = opc1;
 	auprobe->branch.ilen = insn->length;
 	auprobe->branch.offs = insn->immediate.value;
--- linux-ein-5.4.0.orig/arch/x86/kernel/vmlinux.lds.S
+++ linux-ein-5.4.0/arch/x86/kernel/vmlinux.lds.S
@@ -21,6 +21,8 @@
 #define LOAD_OFFSET __START_KERNEL_map
 #endif
 
+#define RUNTIME_DISCARD_EXIT
+
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
@@ -36,13 +38,13 @@
 #ifdef CONFIG_X86_32
 OUTPUT_ARCH(i386)
 ENTRY(phys_startup_32)
-jiffies = jiffies_64;
 #else
 OUTPUT_ARCH(i386:x86-64)
 ENTRY(phys_startup_64)
-jiffies_64 = jiffies;
 #endif
 
+jiffies = jiffies_64;
+
 #if defined(CONFIG_X86_64)
 /*
  * On 64-bit, align RODATA to 2MB so we retain large page mappings for
@@ -362,6 +364,7 @@
 	.bss : AT(ADDR(.bss) - LOAD_OFFSET) {
 		__bss_start = .;
 		*(.bss..page_aligned)
+		. = ALIGN(PAGE_SIZE);
 		*(BSS_MAIN)
 		BSS_DECRYPTED
 		. = ALIGN(PAGE_SIZE);
--- linux-ein-5.4.0.orig/arch/x86/kernel/x86_init.c
+++ linux-ein-5.4.0/arch/x86/kernel/x86_init.c
@@ -58,6 +58,7 @@
 		.pre_vector_init	= init_ISA_irqs,
 		.intr_init		= native_init_IRQ,
 		.trap_init		= x86_init_noop,
+		.intr_mode_select	= apic_intr_mode_select,
 		.intr_mode_init		= apic_intr_mode_init
 	},
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/cpuid.c
+++ linux-ein-5.4.0/arch/x86/kvm/cpuid.c
@@ -352,6 +352,7 @@
 	unsigned f_umip = kvm_x86_ops->umip_emulated() ? F(UMIP) : 0;
 	unsigned f_intel_pt = kvm_x86_ops->pt_supported() ? F(INTEL_PT) : 0;
 	unsigned f_la57;
+	unsigned f_pku = kvm_x86_ops->pku_supported() ? F(PKU) : 0;
 
 	/* cpuid 7.0.ebx */
 	const u32 kvm_cpuid_7_0_ebx_x86_features =
@@ -363,7 +364,7 @@
 
 	/* cpuid 7.0.ecx*/
 	const u32 kvm_cpuid_7_0_ecx_x86_features =
-		F(AVX512VBMI) | F(LA57) | F(PKU) | 0 /*OSPKE*/ | F(RDPID) |
+		F(AVX512VBMI) | F(LA57) | 0 /*PKU*/ | 0 /*OSPKE*/ | F(RDPID) |
 		F(AVX512_VPOPCNTDQ) | F(UMIP) | F(AVX512_VBMI2) | F(GFNI) |
 		F(VAES) | F(VPCLMULQDQ) | F(AVX512_VNNI) | F(AVX512_BITALG) |
 		F(CLDEMOTE) | F(MOVDIRI) | F(MOVDIR64B) | 0 /*WAITPKG*/;
@@ -392,6 +393,7 @@
 		/* Set LA57 based on hardware capability. */
 		entry->ecx |= f_la57;
 		entry->ecx |= f_umip;
+		entry->ecx |= f_pku;
 		/* PKU is not yet implemented for shadow paging. */
 		if (!tdp_enabled || !boot_cpu_has(X86_FEATURE_OSPKE))
 			entry->ecx &= ~F(PKU);
@@ -402,7 +404,8 @@
 			entry->edx |= F(SPEC_CTRL);
 		if (boot_cpu_has(X86_FEATURE_STIBP))
 			entry->edx |= F(INTEL_STIBP);
-		if (boot_cpu_has(X86_FEATURE_SSBD))
+		if (boot_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
+		    boot_cpu_has(X86_FEATURE_AMD_SSBD))
 			entry->edx |= F(SPEC_CTRL_SSBD);
 		/*
 		 * We emulate ARCH_CAPABILITIES in software even
@@ -504,7 +507,7 @@
 
 	r = -E2BIG;
 
-	if (*nent >= maxnent)
+	if (WARN_ON(*nent >= maxnent))
 		goto out;
 
 	do_host_cpuid(entry, function, 0);
@@ -589,6 +592,11 @@
 		union cpuid10_eax eax;
 		union cpuid10_edx edx;
 
+		if (!static_cpu_has(X86_FEATURE_ARCH_PERFMON)) {
+			entry->eax = entry->ebx = entry->ecx = entry->edx = 0;
+			break;
+		}
+
 		perf_get_x86_pmu_capability(&cap);
 
 		/*
@@ -742,9 +750,16 @@
 		unsigned virt_as = max((entry->eax >> 8) & 0xff, 48U);
 		unsigned phys_as = entry->eax & 0xff;
 
-		if (!g_phys_as)
+		/*
+		 * Use bare metal's MAXPHADDR if the CPU doesn't report guest
+		 * MAXPHYADDR separately, or if TDP (NPT) is disabled, as the
+		 * guest version "applies only to guests using nested paging".
+		 */
+		if (!g_phys_as || !tdp_enabled)
 			g_phys_as = phys_as;
+
 		entry->eax = g_phys_as | (virt_as << 8);
+		entry->ecx &= ~(GENMASK(31, 16) | GENMASK(11, 8));
 		entry->edx = 0;
 		entry->ebx &= kvm_cpuid_8000_0008_ebx_x86_features;
 		cpuid_mask(&entry->ebx, CPUID_8000_0008_EBX);
@@ -759,7 +774,8 @@
 			entry->ebx |= F(AMD_IBRS);
 		if (boot_cpu_has(X86_FEATURE_STIBP))
 			entry->ebx |= F(AMD_STIBP);
-		if (boot_cpu_has(X86_FEATURE_SSBD))
+		if (boot_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) ||
+		    boot_cpu_has(X86_FEATURE_AMD_SSBD))
 			entry->ebx |= F(AMD_SSBD);
 		if (!boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS))
 			entry->ebx |= F(AMD_SSB_NO);
@@ -776,6 +792,9 @@
 		entry->ecx = entry->edx = 0;
 		break;
 	case 0x8000001a:
+		entry->eax &= GENMASK(2, 0);
+		entry->ebx = entry->ecx = entry->edx = 0;
+		break;
 	case 0x8000001e:
 		break;
 	/*Add support for Centaur's CPUID instruction*/
@@ -810,6 +829,9 @@
 static int do_cpuid_func(struct kvm_cpuid_entry2 *entry, u32 func,
 			 int *nent, int maxnent, unsigned int type)
 {
+	if (*nent >= maxnent)
+		return -E2BIG;
+
 	if (type == KVM_GET_EMULATED_CPUID)
 		return __do_cpuid_func_emulated(entry, func, nent, maxnent);
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/cpuid.h
+++ linux-ein-5.4.0/arch/x86/kvm/cpuid.h
@@ -53,6 +53,7 @@
 	[CPUID_7_ECX]         = {         7, 0, CPUID_ECX},
 	[CPUID_8000_0007_EBX] = {0x80000007, 0, CPUID_EBX},
 	[CPUID_7_EDX]         = {         7, 0, CPUID_EDX},
+	[CPUID_8000_0021_EAX] = {0x80000021, 0, CPUID_EAX},
 };
 
 static __always_inline struct cpuid_reg x86_feature_cpuid(unsigned x86_feature)
@@ -154,6 +155,20 @@
 	return x86_stepping(best->eax);
 }
 
+static inline bool guest_has_spec_ctrl_msr(struct kvm_vcpu *vcpu)
+{
+	return (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_STIBP) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD));
+}
+
+static inline bool guest_has_pred_cmd_msr(struct kvm_vcpu *vcpu)
+{
+	return (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL) ||
+		guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBPB));
+}
+
 static inline bool supports_cpuid_fault(struct kvm_vcpu *vcpu)
 {
 	return vcpu->arch.msr_platform_info & MSR_PLATFORM_INFO_CPUID_FAULT;
--- linux-ein-5.4.0.orig/arch/x86/kvm/emulate.c
+++ linux-ein-5.4.0/arch/x86/kvm/emulate.c
@@ -22,6 +22,7 @@
 #include "kvm_cache_regs.h"
 #include <asm/kvm_emulate.h>
 #include <linux/stringify.h>
+#include <asm/fpu/api.h>
 #include <asm/debugreg.h>
 #include <asm/nospec-branch.h>
 
@@ -775,8 +776,7 @@
 			   ctxt->mode, linear);
 }
 
-static inline int assign_eip(struct x86_emulate_ctxt *ctxt, ulong dst,
-			     enum x86emul_mode mode)
+static inline int assign_eip(struct x86_emulate_ctxt *ctxt, ulong dst)
 {
 	ulong linear;
 	int rc;
@@ -786,41 +786,71 @@
 
 	if (ctxt->op_bytes != sizeof(unsigned long))
 		addr.ea = dst & ((1UL << (ctxt->op_bytes << 3)) - 1);
-	rc = __linearize(ctxt, addr, &max_size, 1, false, true, mode, &linear);
+	rc = __linearize(ctxt, addr, &max_size, 1, false, true, ctxt->mode, &linear);
 	if (rc == X86EMUL_CONTINUE)
 		ctxt->_eip = addr.ea;
 	return rc;
 }
 
+static inline int emulator_recalc_and_set_mode(struct x86_emulate_ctxt *ctxt)
+{
+	u64 efer;
+	struct desc_struct cs;
+	u16 selector;
+	u32 base3;
+
+	ctxt->ops->get_msr(ctxt, MSR_EFER, &efer);
+
+	if (!(ctxt->ops->get_cr(ctxt, 0) & X86_CR0_PE)) {
+		/* Real mode. cpu must not have long mode active */
+		if (efer & EFER_LMA)
+			return X86EMUL_UNHANDLEABLE;
+		ctxt->mode = X86EMUL_MODE_REAL;
+		return X86EMUL_CONTINUE;
+	}
+
+	if (ctxt->eflags & X86_EFLAGS_VM) {
+		/* Protected/VM86 mode. cpu must not have long mode active */
+		if (efer & EFER_LMA)
+			return X86EMUL_UNHANDLEABLE;
+		ctxt->mode = X86EMUL_MODE_VM86;
+		return X86EMUL_CONTINUE;
+	}
+
+	if (!ctxt->ops->get_segment(ctxt, &selector, &cs, &base3, VCPU_SREG_CS))
+		return X86EMUL_UNHANDLEABLE;
+
+	if (efer & EFER_LMA) {
+		if (cs.l) {
+			/* Proper long mode */
+			ctxt->mode = X86EMUL_MODE_PROT64;
+		} else if (cs.d) {
+			/* 32 bit compatibility mode*/
+			ctxt->mode = X86EMUL_MODE_PROT32;
+		} else {
+			ctxt->mode = X86EMUL_MODE_PROT16;
+		}
+	} else {
+		/* Legacy 32 bit / 16 bit mode */
+		ctxt->mode = cs.d ? X86EMUL_MODE_PROT32 : X86EMUL_MODE_PROT16;
+	}
+
+	return X86EMUL_CONTINUE;
+}
+
 static inline int assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst)
 {
-	return assign_eip(ctxt, dst, ctxt->mode);
+	return assign_eip(ctxt, dst);
 }
 
-static int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst,
-			  const struct desc_struct *cs_desc)
+static int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst)
 {
-	enum x86emul_mode mode = ctxt->mode;
-	int rc;
+	int rc = emulator_recalc_and_set_mode(ctxt);
 
-#ifdef CONFIG_X86_64
-	if (ctxt->mode >= X86EMUL_MODE_PROT16) {
-		if (cs_desc->l) {
-			u64 efer = 0;
+	if (rc != X86EMUL_CONTINUE)
+		return rc;
 
-			ctxt->ops->get_msr(ctxt, MSR_EFER, &efer);
-			if (efer & EFER_LMA)
-				mode = X86EMUL_MODE_PROT64;
-		} else
-			mode = X86EMUL_MODE_PROT32; /* temporary value */
-	}
-#endif
-	if (mode == X86EMUL_MODE_PROT16 || mode == X86EMUL_MODE_PROT32)
-		mode = cs_desc->d ? X86EMUL_MODE_PROT32 : X86EMUL_MODE_PROT16;
-	rc = assign_eip(ctxt, dst, mode);
-	if (rc == X86EMUL_CONTINUE)
-		ctxt->mode = mode;
-	return rc;
+	return assign_eip(ctxt, dst);
 }
 
 static inline int jmp_rel(struct x86_emulate_ctxt *ctxt, int rel)
@@ -1075,8 +1105,23 @@
 	}
 }
 
+static void emulator_get_fpu(void)
+{
+	fpregs_lock();
+
+	fpregs_assert_state_consistent();
+	if (test_thread_flag(TIF_NEED_FPU_LOAD))
+		switch_fpu_return();
+}
+
+static void emulator_put_fpu(void)
+{
+	fpregs_unlock();
+}
+
 static void read_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data, int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movdqa %%xmm0, %0" : "=m"(*data)); break;
 	case 1: asm("movdqa %%xmm1, %0" : "=m"(*data)); break;
@@ -1098,11 +1143,13 @@
 #endif
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static void write_sse_reg(struct x86_emulate_ctxt *ctxt, sse128_t *data,
 			  int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movdqa %0, %%xmm0" : : "m"(*data)); break;
 	case 1: asm("movdqa %0, %%xmm1" : : "m"(*data)); break;
@@ -1124,10 +1171,12 @@
 #endif
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static void read_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movq %%mm0, %0" : "=m"(*data)); break;
 	case 1: asm("movq %%mm1, %0" : "=m"(*data)); break;
@@ -1139,10 +1188,12 @@
 	case 7: asm("movq %%mm7, %0" : "=m"(*data)); break;
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static void write_mmx_reg(struct x86_emulate_ctxt *ctxt, u64 *data, int reg)
 {
+	emulator_get_fpu();
 	switch (reg) {
 	case 0: asm("movq %0, %%mm0" : : "m"(*data)); break;
 	case 1: asm("movq %0, %%mm1" : : "m"(*data)); break;
@@ -1154,6 +1205,7 @@
 	case 7: asm("movq %0, %%mm7" : : "m"(*data)); break;
 	default: BUG();
 	}
+	emulator_put_fpu();
 }
 
 static int em_fninit(struct x86_emulate_ctxt *ctxt)
@@ -1161,7 +1213,9 @@
 	if (ctxt->ops->get_cr(ctxt, 0) & (X86_CR0_TS | X86_CR0_EM))
 		return emulate_nm(ctxt);
 
+	emulator_get_fpu();
 	asm volatile("fninit");
+	emulator_put_fpu();
 	return X86EMUL_CONTINUE;
 }
 
@@ -1172,7 +1226,9 @@
 	if (ctxt->ops->get_cr(ctxt, 0) & (X86_CR0_TS | X86_CR0_EM))
 		return emulate_nm(ctxt);
 
+	emulator_get_fpu();
 	asm volatile("fnstcw %0": "+m"(fcw));
+	emulator_put_fpu();
 
 	ctxt->dst.val = fcw;
 
@@ -1186,7 +1242,9 @@
 	if (ctxt->ops->get_cr(ctxt, 0) & (X86_CR0_TS | X86_CR0_EM))
 		return emulate_nm(ctxt);
 
+	emulator_get_fpu();
 	asm volatile("fnstsw %0": "+m"(fsw));
+	emulator_put_fpu();
 
 	ctxt->dst.val = fsw;
 
@@ -1685,11 +1743,6 @@
 		goto exception;
 	}
 
-	if (!seg_desc.p) {
-		err_vec = (seg == VCPU_SREG_SS) ? SS_VECTOR : NP_VECTOR;
-		goto exception;
-	}
-
 	dpl = seg_desc.dpl;
 
 	switch (seg) {
@@ -1729,12 +1782,6 @@
 	case VCPU_SREG_TR:
 		if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9))
 			goto exception;
-		old_desc = seg_desc;
-		seg_desc.type |= 2; /* busy */
-		ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
-						  sizeof(seg_desc), &ctxt->exception);
-		if (ret != X86EMUL_CONTINUE)
-			return ret;
 		break;
 	case VCPU_SREG_LDTR:
 		if (seg_desc.s || seg_desc.type != 2)
@@ -1753,6 +1800,11 @@
 		break;
 	}
 
+	if (!seg_desc.p) {
+		err_vec = (seg == VCPU_SREG_SS) ? SS_VECTOR : NP_VECTOR;
+		goto exception;
+	}
+
 	if (seg_desc.s) {
 		/* mark segment as accessed */
 		if (!(seg_desc.type & 1)) {
@@ -1767,8 +1819,17 @@
 		if (ret != X86EMUL_CONTINUE)
 			return ret;
 		if (emul_is_noncanonical_address(get_desc_base(&seg_desc) |
-				((u64)base3 << 32), ctxt))
-			return emulate_gp(ctxt, 0);
+						 ((u64)base3 << 32), ctxt))
+			return emulate_gp(ctxt, err_code);
+	}
+
+	if (seg == VCPU_SREG_TR) {
+		old_desc = seg_desc;
+		seg_desc.type |= 2; /* busy */
+		ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
+						  sizeof(seg_desc), &ctxt->exception);
+		if (ret != X86EMUL_CONTINUE)
+			return ret;
 	}
 load:
 	ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg);
@@ -1988,7 +2049,7 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
-	if (ctxt->modrm_reg == VCPU_SREG_SS)
+	if (seg == VCPU_SREG_SS)
 		ctxt->interruptibility = KVM_X86_SHADOW_INT_MOV_SS;
 	if (ctxt->op_bytes > 2)
 		rsp_increment(ctxt, ctxt->op_bytes - 2);
@@ -2205,7 +2266,7 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
-	rc = assign_eip_far(ctxt, ctxt->src.val, &new_desc);
+	rc = assign_eip_far(ctxt, ctxt->src.val);
 	/* Error handling is not implemented. */
 	if (rc != X86EMUL_CONTINUE)
 		return X86EMUL_UNHANDLEABLE;
@@ -2286,7 +2347,7 @@
 				       &new_desc);
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
-	rc = assign_eip_far(ctxt, eip, &new_desc);
+	rc = assign_eip_far(ctxt, eip);
 	/* Error handling is not implemented. */
 	if (rc != X86EMUL_CONTINUE)
 		return X86EMUL_UNHANDLEABLE;
@@ -2861,6 +2922,8 @@
 	ops->get_msr(ctxt, MSR_IA32_SYSENTER_ESP, &msr_data);
 	*reg_write(ctxt, VCPU_REGS_RSP) = (efer & EFER_LMA) ? msr_data :
 							      (u32)msr_data;
+	if (efer & EFER_LMA)
+		ctxt->mode = X86EMUL_MODE_PROT64;
 
 	return X86EMUL_CONTINUE;
 }
@@ -2919,6 +2982,7 @@
 	ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS);
 
 	ctxt->_eip = rdx;
+	ctxt->mode = usermode;
 	*reg_write(ctxt, VCPU_REGS_RSP) = rcx;
 
 	return X86EMUL_CONTINUE;
@@ -3515,7 +3579,7 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
-	rc = assign_eip_far(ctxt, ctxt->src.val, &new_desc);
+	rc = assign_eip_far(ctxt, ctxt->src.val);
 	if (rc != X86EMUL_CONTINUE)
 		goto fail;
 
@@ -3588,7 +3652,7 @@
 	u64 tsc_aux = 0;
 
 	if (ctxt->ops->get_msr(ctxt, MSR_TSC_AUX, &tsc_aux))
-		return emulate_gp(ctxt, 0);
+		return emulate_ud(ctxt);
 	ctxt->dst.val = tsc_aux;
 	return X86EMUL_CONTINUE;
 }
@@ -3662,11 +3726,25 @@
 
 static int em_cr_write(struct x86_emulate_ctxt *ctxt)
 {
-	if (ctxt->ops->set_cr(ctxt, ctxt->modrm_reg, ctxt->src.val))
+	int cr_num = ctxt->modrm_reg;
+	int r;
+
+	if (ctxt->ops->set_cr(ctxt, cr_num, ctxt->src.val))
 		return emulate_gp(ctxt, 0);
 
 	/* Disable writeback. */
 	ctxt->dst.type = OP_NONE;
+
+	if (cr_num == 0) {
+		/*
+		 * CR0 write might have updated CR0.PE and/or CR0.PG
+		 * which can affect the cpu's execution mode.
+		 */
+		r = emulator_recalc_and_set_mode(ctxt);
+		if (r != X86EMUL_CONTINUE)
+			return r;
+	}
+
 	return X86EMUL_CONTINUE;
 }
 
@@ -4021,6 +4099,12 @@
 	return X86EMUL_CONTINUE;
 }
 
+static int em_clflushopt(struct x86_emulate_ctxt *ctxt)
+{
+	/* emulating clflushopt regardless of cpuid */
+	return X86EMUL_CONTINUE;
+}
+
 static int em_movsxd(struct x86_emulate_ctxt *ctxt)
 {
 	ctxt->dst.val = (s32) ctxt->src.val;
@@ -4094,8 +4178,12 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
+	emulator_get_fpu();
+
 	rc = asm_safe("fxsave %[fx]", , [fx] "+m"(fx_state));
 
+	emulator_put_fpu();
+
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
@@ -4138,6 +4226,8 @@
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
+	emulator_get_fpu();
+
 	if (size < __fxstate_size(16)) {
 		rc = fxregs_fixup(&fx_state, size);
 		if (rc != X86EMUL_CONTINUE)
@@ -4153,6 +4243,8 @@
 		rc = asm_safe("fxrstor %[fx]", : [fx] "m"(fx_state));
 
 out:
+	emulator_put_fpu();
+
 	return rc;
 }
 
@@ -4555,7 +4647,7 @@
 };
 
 static const struct gprefix pfx_0f_ae_7 = {
-	I(SrcMem | ByteOp, em_clflush), N, N, N,
+	I(SrcMem | ByteOp, em_clflush), I(SrcMem | ByteOp, em_clflushopt), N, N,
 };
 
 static const struct group_dual group15 = { {
@@ -5160,6 +5252,7 @@
 	ctxt->fetch.ptr = ctxt->fetch.data;
 	ctxt->fetch.end = ctxt->fetch.data + insn_len;
 	ctxt->opcode_len = 1;
+	ctxt->intercept = x86_intercept_none;
 	if (insn_len > 0)
 		memcpy(ctxt->fetch.data, insn, insn_len);
 	else {
@@ -5212,16 +5305,28 @@
 				ctxt->ad_bytes = def_ad_bytes ^ 6;
 			break;
 		case 0x26:	/* ES override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_ES;
+			break;
 		case 0x2e:	/* CS override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_CS;
+			break;
 		case 0x36:	/* SS override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_SS;
+			break;
 		case 0x3e:	/* DS override */
 			has_seg_override = true;
-			ctxt->seg_override = (ctxt->b >> 3) & 3;
+			ctxt->seg_override = VCPU_SREG_DS;
 			break;
 		case 0x64:	/* FS override */
+			has_seg_override = true;
+			ctxt->seg_override = VCPU_SREG_FS;
+			break;
 		case 0x65:	/* GS override */
 			has_seg_override = true;
-			ctxt->seg_override = ctxt->b & 7;
+			ctxt->seg_override = VCPU_SREG_GS;
 			break;
 		case 0x40 ... 0x4f: /* REX */
 			if (mode != X86EMUL_MODE_PROT64)
@@ -5305,10 +5410,15 @@
 			}
 			break;
 		case Escape:
-			if (ctxt->modrm > 0xbf)
-				opcode = opcode.u.esc->high[ctxt->modrm - 0xc0];
-			else
+			if (ctxt->modrm > 0xbf) {
+				size_t size = ARRAY_SIZE(opcode.u.esc->high);
+				u32 index = array_index_nospec(
+					ctxt->modrm - 0xc0, size);
+
+				opcode = opcode.u.esc->high[index];
+			} else {
 				opcode = opcode.u.esc->op[(ctxt->modrm >> 3) & 7];
+			}
 			break;
 		case InstrDual:
 			if ((ctxt->modrm >> 6) == 3)
@@ -5450,7 +5560,9 @@
 {
 	int rc;
 
+	emulator_get_fpu();
 	rc = asm_safe("fwait");
+	emulator_put_fpu();
 
 	if (unlikely(rc != X86EMUL_CONTINUE))
 		return emulate_exception(ctxt, MF_VECTOR, 0, false);
@@ -5779,6 +5891,8 @@
 	}
 
 	ctxt->eip = ctxt->_eip;
+	if (ctxt->mode != X86EMUL_MODE_PROT64)
+		ctxt->eip = (u32)ctxt->_eip;
 
 done:
 	if (rc == X86EMUL_PROPAGATE_FAULT) {
--- linux-ein-5.4.0.orig/arch/x86/kvm/hyperv.c
+++ linux-ein-5.4.0/arch/x86/kvm/hyperv.c
@@ -205,7 +205,7 @@
 	struct kvm_vcpu *vcpu = synic_to_vcpu(synic);
 	int ret;
 
-	if (!synic->active && !host)
+	if (!synic->active && (!host || data))
 		return 1;
 
 	trace_kvm_hv_synic_set_msr(vcpu->vcpu_id, msr, data, host);
@@ -251,6 +251,9 @@
 	case HV_X64_MSR_EOM: {
 		int i;
 
+		if (!synic->active)
+			break;
+
 		for (i = 0; i < ARRAY_SIZE(synic->sint); i++)
 			kvm_hv_notify_acked_sint(vcpu, i);
 		break;
@@ -306,6 +309,9 @@
 	struct kvm_lapic_irq irq;
 	int ret, vector;
 
+	if (KVM_BUG_ON(!lapic_in_kernel(vcpu), vcpu->kvm))
+		return -EINVAL;
+
 	if (sint >= ARRAY_SIZE(synic->sint))
 		return -EINVAL;
 
@@ -514,6 +520,11 @@
 {
 	union hv_stimer_config new_config = {.as_uint64 = config},
 		old_config = {.as_uint64 = stimer->config.as_uint64};
+	struct kvm_vcpu *vcpu = stimer_to_vcpu(stimer);
+	struct kvm_vcpu_hv_synic *synic = vcpu_to_synic(vcpu);
+
+	if (!synic->active && (!host || config))
+		return 1;
 
 	trace_kvm_hv_stimer_set_config(stimer_to_vcpu(stimer)->vcpu_id,
 				       stimer->index, config, host);
@@ -533,6 +544,12 @@
 static int stimer_set_count(struct kvm_vcpu_hv_stimer *stimer, u64 count,
 			    bool host)
 {
+	struct kvm_vcpu *vcpu = stimer_to_vcpu(stimer);
+	struct kvm_vcpu_hv_synic *synic = vcpu_to_synic(vcpu);
+
+	if (!synic->active && (!host || count))
+		return 1;
+
 	trace_kvm_hv_stimer_set_count(stimer_to_vcpu(stimer)->vcpu_id,
 				      stimer->index, count, host);
 
@@ -809,11 +826,12 @@
 				     u32 index, u64 *pdata)
 {
 	struct kvm_hv *hv = &vcpu->kvm->arch.hyperv;
+	size_t size = ARRAY_SIZE(hv->hv_crash_param);
 
-	if (WARN_ON_ONCE(index >= ARRAY_SIZE(hv->hv_crash_param)))
+	if (WARN_ON_ONCE(index >= size))
 		return -EINVAL;
 
-	*pdata = hv->hv_crash_param[index];
+	*pdata = hv->hv_crash_param[array_index_nospec(index, size)];
 	return 0;
 }
 
@@ -852,11 +870,12 @@
 				     u32 index, u64 data)
 {
 	struct kvm_hv *hv = &vcpu->kvm->arch.hyperv;
+	size_t size = ARRAY_SIZE(hv->hv_crash_param);
 
-	if (WARN_ON_ONCE(index >= ARRAY_SIZE(hv->hv_crash_param)))
+	if (WARN_ON_ONCE(index >= size))
 		return -EINVAL;
 
-	hv->hv_crash_param[index] = data;
+	hv->hv_crash_param[array_index_nospec(index, size)] = data;
 	return 0;
 }
 
@@ -1499,11 +1518,13 @@
 
 		all_cpus = send_ipi_ex.vp_set.format == HV_GENERIC_SET_ALL;
 
+		if (all_cpus)
+			goto check_and_send_ipi;
+
 		if (!sparse_banks_len)
 			goto ret_success;
 
-		if (!all_cpus &&
-		    kvm_read_guest(kvm,
+		if (kvm_read_guest(kvm,
 				   ingpa + offsetof(struct hv_send_ipi_ex,
 						    vp_set.bank_contents),
 				   sparse_banks,
@@ -1511,6 +1532,7 @@
 			return HV_STATUS_INVALID_HYPERCALL_INPUT;
 	}
 
+check_and_send_ipi:
 	if ((vector < HV_IPI_LOW_VECTOR) || (vector > HV_IPI_HIGH_VECTOR))
 		return HV_STATUS_INVALID_HYPERCALL_INPUT;
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/i8259.c
+++ linux-ein-5.4.0/arch/x86/kvm/i8259.c
@@ -460,10 +460,14 @@
 	switch (addr) {
 	case 0x20:
 	case 0x21:
+		pic_lock(s);
+		pic_ioport_write(&s->pics[0], addr, data);
+		pic_unlock(s);
+		break;
 	case 0xa0:
 	case 0xa1:
 		pic_lock(s);
-		pic_ioport_write(&s->pics[addr >> 7], addr, data);
+		pic_ioport_write(&s->pics[1], addr, data);
 		pic_unlock(s);
 		break;
 	case 0x4d0:
--- linux-ein-5.4.0.orig/arch/x86/kvm/ioapic.c
+++ linux-ein-5.4.0/arch/x86/kvm/ioapic.c
@@ -36,6 +36,7 @@
 #include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/export.h>
+#include <linux/nospec.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/current.h>
@@ -68,13 +69,14 @@
 	default:
 		{
 			u32 redir_index = (ioapic->ioregsel - 0x10) >> 1;
-			u64 redir_content;
+			u64 redir_content = ~0ULL;
 
-			if (redir_index < IOAPIC_NUM_PINS)
-				redir_content =
-					ioapic->redirtbl[redir_index].bits;
-			else
-				redir_content = ~0ULL;
+			if (redir_index < IOAPIC_NUM_PINS) {
+				u32 index = array_index_nospec(
+					redir_index, IOAPIC_NUM_PINS);
+
+				redir_content = ioapic->redirtbl[index].bits;
+			}
 
 			result = (ioapic->ioregsel & 0x1) ?
 			    (redir_content >> 32) & 0xffffffff :
@@ -291,6 +293,7 @@
 
 		if (index >= IOAPIC_NUM_PINS)
 			return;
+		index = array_index_nospec(index, IOAPIC_NUM_PINS);
 		e = &ioapic->redirtbl[index];
 		mask_before = e->fields.mask;
 		/* Preserve read-only fields */
--- linux-ein-5.4.0.orig/arch/x86/kvm/irq.c
+++ linux-ein-5.4.0/arch/x86/kvm/irq.c
@@ -40,29 +40,10 @@
  * check if there is pending interrupt from
  * non-APIC source without intack.
  */
-static int kvm_cpu_has_extint(struct kvm_vcpu *v)
-{
-	u8 accept = kvm_apic_accept_pic_intr(v);
-
-	if (accept) {
-		if (irqchip_split(v->kvm))
-			return pending_userspace_extint(v);
-		else
-			return v->kvm->arch.vpic->output;
-	} else
-		return 0;
-}
-
-/*
- * check if there is injectable interrupt:
- * when virtual interrupt delivery enabled,
- * interrupt from apic will handled by hardware,
- * we don't need to check it here.
- */
-int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v)
+int kvm_cpu_has_extint(struct kvm_vcpu *v)
 {
 	/*
-	 * FIXME: interrupt.injected represents an interrupt that it's
+	 * FIXME: interrupt.injected represents an interrupt whose
 	 * side-effects have already been applied (e.g. bit from IRR
 	 * already moved to ISR). Therefore, it is incorrect to rely
 	 * on interrupt.injected to know if there is a pending
@@ -75,6 +56,23 @@
 	if (!lapic_in_kernel(v))
 		return v->arch.interrupt.injected;
 
+	if (!kvm_apic_accept_pic_intr(v))
+		return 0;
+
+	if (irqchip_split(v->kvm))
+		return pending_userspace_extint(v);
+	else
+		return v->kvm->arch.vpic->output;
+}
+
+/*
+ * check if there is injectable interrupt:
+ * when virtual interrupt delivery enabled,
+ * interrupt from apic will handled by hardware,
+ * we don't need to check it here.
+ */
+int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v)
+{
 	if (kvm_cpu_has_extint(v))
 		return 1;
 
@@ -90,20 +88,6 @@
  */
 int kvm_cpu_has_interrupt(struct kvm_vcpu *v)
 {
-	/*
-	 * FIXME: interrupt.injected represents an interrupt that it's
-	 * side-effects have already been applied (e.g. bit from IRR
-	 * already moved to ISR). Therefore, it is incorrect to rely
-	 * on interrupt.injected to know if there is a pending
-	 * interrupt in the user-mode LAPIC.
-	 * This leads to nVMX/nSVM not be able to distinguish
-	 * if it should exit from L2 to L1 on EXTERNAL_INTERRUPT on
-	 * pending interrupt or should re-inject an injected
-	 * interrupt.
-	 */
-	if (!lapic_in_kernel(v))
-		return v->arch.interrupt.injected;
-
 	if (kvm_cpu_has_extint(v))
 		return 1;
 
@@ -117,16 +101,21 @@
  */
 static int kvm_cpu_get_extint(struct kvm_vcpu *v)
 {
-	if (kvm_cpu_has_extint(v)) {
-		if (irqchip_split(v->kvm)) {
-			int vector = v->arch.pending_external_vector;
-
-			v->arch.pending_external_vector = -1;
-			return vector;
-		} else
-			return kvm_pic_read_irq(v->kvm); /* PIC */
-	} else
+	if (!kvm_cpu_has_extint(v)) {
+		WARN_ON(!lapic_in_kernel(v));
 		return -1;
+	}
+
+	if (!lapic_in_kernel(v))
+		return v->arch.interrupt.nr;
+
+	if (irqchip_split(v->kvm)) {
+		int vector = v->arch.pending_external_vector;
+
+		v->arch.pending_external_vector = -1;
+		return vector;
+	} else
+		return kvm_pic_read_irq(v->kvm); /* PIC */
 }
 
 /*
@@ -134,13 +123,7 @@
  */
 int kvm_cpu_get_interrupt(struct kvm_vcpu *v)
 {
-	int vector;
-
-	if (!lapic_in_kernel(v))
-		return v->arch.interrupt.nr;
-
-	vector = kvm_cpu_get_extint(v);
-
+	int vector = kvm_cpu_get_extint(v);
 	if (vector != -1)
 		return vector;			/* PIC */
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/irq_comm.c
+++ linux-ein-5.4.0/arch/x86/kvm/irq_comm.c
@@ -416,7 +416,7 @@
 
 			kvm_set_msi_irq(vcpu->kvm, entry, &irq);
 
-			if (irq.level && kvm_apic_match_dest(vcpu, NULL, 0,
+			if (irq.trig_mode && kvm_apic_match_dest(vcpu, NULL, 0,
 						irq.dest_id, irq.dest_mode))
 				__set_bit(irq.vector, ioapic_handled_vectors);
 		}
--- linux-ein-5.4.0.orig/arch/x86/kvm/kvm_cache_regs.h
+++ linux-ein-5.4.0/arch/x86/kvm/kvm_cache_regs.h
@@ -7,7 +7,7 @@
 #define KVM_POSSIBLE_CR0_GUEST_BITS X86_CR0_TS
 #define KVM_POSSIBLE_CR4_GUEST_BITS				  \
 	(X86_CR4_PVI | X86_CR4_DE | X86_CR4_PCE | X86_CR4_OSFXSR  \
-	 | X86_CR4_OSXMMEXCPT | X86_CR4_LA57 | X86_CR4_PGE)
+	 | X86_CR4_OSXMMEXCPT | X86_CR4_LA57 | X86_CR4_PGE | X86_CR4_TSD)
 
 #define BUILD_KVM_GPR_ACCESSORS(lname, uname)				      \
 static __always_inline unsigned long kvm_##lname##_read(struct kvm_vcpu *vcpu)\
--- linux-ein-5.4.0.orig/arch/x86/kvm/lapic.c
+++ linux-ein-5.4.0/arch/x86/kvm/lapic.c
@@ -118,7 +118,8 @@
 
 bool kvm_can_post_timer_interrupt(struct kvm_vcpu *vcpu)
 {
-	return pi_inject_timer && kvm_vcpu_apicv_active(vcpu);
+	return pi_inject_timer && kvm_vcpu_apicv_active(vcpu) &&
+		(kvm_mwait_in_guest(vcpu->kvm) || kvm_hlt_in_guest(vcpu->kvm));
 }
 EXPORT_SYMBOL_GPL(kvm_can_post_timer_interrupt);
 
@@ -637,9 +638,11 @@
 static bool pv_eoi_get_pending(struct kvm_vcpu *vcpu)
 {
 	u8 val;
-	if (pv_eoi_get_user(vcpu, &val) < 0)
+	if (pv_eoi_get_user(vcpu, &val) < 0) {
 		printk(KERN_WARNING "Can't read EOI MSR value: 0x%llx\n",
 			   (unsigned long long)vcpu->arch.pv_eoi.msr_val);
+		return false;
+	}
 	return val & 0x1;
 }
 
@@ -952,6 +955,10 @@
 	*r = -1;
 
 	if (irq->shorthand == APIC_DEST_SELF) {
+		if (KVM_BUG_ON(!src, kvm)) {
+			*r = 0;
+			return true;
+		}
 		*r = kvm_apic_set_irq(src->vcpu, irq, dest_map);
 		return true;
 	}
@@ -1056,11 +1063,8 @@
 						       apic->regs + APIC_TMR);
 		}
 
-		if (vcpu->arch.apicv_active)
-			kvm_x86_ops->deliver_posted_interrupt(vcpu, vector);
-		else {
+		if (kvm_x86_ops->deliver_posted_interrupt(vcpu, vector)) {
 			kvm_lapic_set_irr(vector, apic);
-
 			kvm_make_request(KVM_REQ_EVENT, vcpu);
 			kvm_vcpu_kick(vcpu);
 		}
@@ -1333,6 +1337,9 @@
 	if (!apic_x2apic_mode(apic))
 		valid_reg_mask |= APIC_REG_MASK(APIC_ARBPRI);
 
+	if (alignment + len > 4)
+		return 1;
+
 	if (offset > 0x3f0 || !(valid_reg_mask & APIC_REG_MASK(offset)))
 		return 1;
 
@@ -1685,7 +1692,7 @@
 
 	hrtimer_start(&apic->lapic_timer.timer,
 		apic->lapic_timer.target_expiration,
-		HRTIMER_MODE_ABS);
+		HRTIMER_MODE_ABS_HARD);
 }
 
 bool kvm_lapic_hv_timer_in_use(struct kvm_vcpu *vcpu)
@@ -1926,15 +1933,20 @@
 	case APIC_LVTTHMR:
 	case APIC_LVTPC:
 	case APIC_LVT1:
-	case APIC_LVTERR:
+	case APIC_LVTERR: {
 		/* TODO: Check vector */
+		size_t size;
+		u32 index;
+
 		if (!kvm_apic_sw_enabled(apic))
 			val |= APIC_LVT_MASKED;
-
-		val &= apic_lvt_mask[(reg - APIC_LVTT) >> 4];
+		size = ARRAY_SIZE(apic_lvt_mask);
+		index = array_index_nospec(
+				(reg - APIC_LVTT) >> 4, size);
+		val &= apic_lvt_mask[index];
 		kvm_lapic_set_reg(apic, reg, val);
-
 		break;
+	}
 
 	case APIC_LVTT:
 		if (!kvm_apic_sw_enabled(apic))
@@ -2081,7 +2093,7 @@
 {
 	struct kvm_lapic *apic = vcpu->arch.apic;
 
-	if (!lapic_in_kernel(vcpu) || apic_lvtt_oneshot(apic) ||
+	if (!kvm_apic_present(vcpu) || apic_lvtt_oneshot(apic) ||
 			apic_lvtt_period(apic))
 		return;
 
@@ -2092,10 +2104,7 @@
 
 void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8)
 {
-	struct kvm_lapic *apic = vcpu->arch.apic;
-
-	apic_set_tpr(apic, ((cr8 & 0x0f) << 4)
-		     | (kvm_lapic_get_reg(apic, APIC_TASKPRI) & 4));
+	apic_set_tpr(vcpu->arch.apic, (cr8 & 0x0f) << 4);
 }
 
 u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu)
@@ -2235,13 +2244,17 @@
 {
 	u32 reg = kvm_lapic_get_reg(apic, lvt_type);
 	int vector, mode, trig_mode;
+	int r;
 
 	if (kvm_apic_hw_enabled(apic) && !(reg & APIC_LVT_MASKED)) {
 		vector = reg & APIC_VECTOR_MASK;
 		mode = reg & APIC_MODE_MASK;
 		trig_mode = reg & APIC_LVT_LEVEL_TRIGGER;
-		return __apic_accept_irq(apic, mode, vector, 1, trig_mode,
-					NULL);
+
+		r = __apic_accept_irq(apic, mode, vector, 1, trig_mode, NULL);
+		if (r && lvt_type == APIC_LVTPC)
+			kvm_lapic_set_reg(apic, APIC_LVTPC, reg | APIC_LVT_MASKED);
+		return r;
 	}
 	return 0;
 }
@@ -2326,7 +2339,7 @@
 	struct kvm_lapic *apic = vcpu->arch.apic;
 	u32 ppr;
 
-	if (!kvm_apic_hw_enabled(apic))
+	if (!kvm_apic_present(vcpu))
 		return -1;
 
 	__apic_update_ppr(apic, &ppr);
--- linux-ein-5.4.0.orig/arch/x86/kvm/mmu.c
+++ linux-ein-5.4.0/arch/x86/kvm/mmu.c
@@ -343,6 +343,8 @@
 {
 	BUG_ON((u64)(unsigned)access_mask != access_mask);
 	BUG_ON((mmio_mask & mmio_value) != mmio_value);
+	WARN_ON(mmio_value & (shadow_nonpresent_or_rsvd_mask << shadow_nonpresent_or_rsvd_mask_len));
+	WARN_ON(mmio_value & shadow_nonpresent_or_rsvd_lower_gfn_mask);
 	shadow_mmio_value = mmio_value | SPTE_MMIO_MASK;
 	shadow_mmio_mask = mmio_mask | SPTE_SPECIAL_MASK;
 	shadow_mmio_access_mask = access_mask;
@@ -405,11 +407,11 @@
 }
 
 /*
- * Due to limited space in PTEs, the MMIO generation is a 19 bit subset of
+ * Due to limited space in PTEs, the MMIO generation is a 18 bit subset of
  * the memslots generation and is derived as follows:
  *
  * Bits 0-8 of the MMIO generation are propagated to spte bits 3-11
- * Bits 9-18 of the MMIO generation are propagated to spte bits 52-61
+ * Bits 9-17 of the MMIO generation are propagated to spte bits 54-62
  *
  * The KVM_MEMSLOT_GEN_UPDATE_IN_PROGRESS flag is intentionally not included in
  * the MMIO generation number, as doing so would require stealing a bit from
@@ -418,25 +420,38 @@
  * requires a full MMU zap).  The flag is instead explicitly queried when
  * checking for MMIO spte cache hits.
  */
-#define MMIO_SPTE_GEN_MASK		GENMASK_ULL(18, 0)
 
 #define MMIO_SPTE_GEN_LOW_START		3
 #define MMIO_SPTE_GEN_LOW_END		11
+
+#define MMIO_SPTE_GEN_HIGH_START	PT64_SECOND_AVAIL_BITS_SHIFT
+#define MMIO_SPTE_GEN_HIGH_END		62
+
 #define MMIO_SPTE_GEN_LOW_MASK		GENMASK_ULL(MMIO_SPTE_GEN_LOW_END, \
 						    MMIO_SPTE_GEN_LOW_START)
-
-#define MMIO_SPTE_GEN_HIGH_START	52
-#define MMIO_SPTE_GEN_HIGH_END		61
 #define MMIO_SPTE_GEN_HIGH_MASK		GENMASK_ULL(MMIO_SPTE_GEN_HIGH_END, \
 						    MMIO_SPTE_GEN_HIGH_START)
+
+#define MMIO_SPTE_GEN_LOW_BITS		(MMIO_SPTE_GEN_LOW_END - MMIO_SPTE_GEN_LOW_START + 1)
+#define MMIO_SPTE_GEN_HIGH_BITS		(MMIO_SPTE_GEN_HIGH_END - MMIO_SPTE_GEN_HIGH_START + 1)
+
+/* remember to adjust the comment above as well if you change these */
+static_assert(MMIO_SPTE_GEN_LOW_BITS == 9 && MMIO_SPTE_GEN_HIGH_BITS == 9);
+
+#define MMIO_SPTE_GEN_LOW_SHIFT		(MMIO_SPTE_GEN_LOW_START - 0)
+#define MMIO_SPTE_GEN_HIGH_SHIFT	(MMIO_SPTE_GEN_HIGH_START - MMIO_SPTE_GEN_LOW_BITS)
+
+#define MMIO_SPTE_GEN_MASK		GENMASK_ULL(MMIO_SPTE_GEN_LOW_BITS + MMIO_SPTE_GEN_HIGH_BITS - 1, 0)
+
 static u64 generation_mmio_spte_mask(u64 gen)
 {
 	u64 mask;
 
 	WARN_ON(gen & ~MMIO_SPTE_GEN_MASK);
+	BUILD_BUG_ON((MMIO_SPTE_GEN_HIGH_MASK | MMIO_SPTE_GEN_LOW_MASK) & SPTE_SPECIAL_MASK);
 
-	mask = (gen << MMIO_SPTE_GEN_LOW_START) & MMIO_SPTE_GEN_LOW_MASK;
-	mask |= (gen << MMIO_SPTE_GEN_HIGH_START) & MMIO_SPTE_GEN_HIGH_MASK;
+	mask = (gen << MMIO_SPTE_GEN_LOW_SHIFT) & MMIO_SPTE_GEN_LOW_MASK;
+	mask |= (gen << MMIO_SPTE_GEN_HIGH_SHIFT) & MMIO_SPTE_GEN_HIGH_MASK;
 	return mask;
 }
 
@@ -444,10 +459,8 @@
 {
 	u64 gen;
 
-	spte &= ~shadow_mmio_mask;
-
-	gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_START;
-	gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_START;
+	gen = (spte & MMIO_SPTE_GEN_LOW_MASK) >> MMIO_SPTE_GEN_LOW_SHIFT;
+	gen |= (spte & MMIO_SPTE_GEN_HIGH_MASK) >> MMIO_SPTE_GEN_HIGH_SHIFT;
 	return gen;
 }
 
@@ -538,16 +551,20 @@
 static u8 kvm_get_shadow_phys_bits(void)
 {
 	/*
-	 * boot_cpu_data.x86_phys_bits is reduced when MKTME is detected
-	 * in CPU detection code, but MKTME treats those reduced bits as
-	 * 'keyID' thus they are not reserved bits. Therefore for MKTME
-	 * we should still return physical address bits reported by CPUID.
-	 */
-	if (!boot_cpu_has(X86_FEATURE_TME) ||
-	    WARN_ON_ONCE(boot_cpu_data.extended_cpuid_level < 0x80000008))
-		return boot_cpu_data.x86_phys_bits;
+	 * boot_cpu_data.x86_phys_bits is reduced when MKTME or SME are detected
+	 * in CPU detection code, but the processor treats those reduced bits as
+	 * 'keyID' thus they are not reserved bits. Therefore KVM needs to look at
+	 * the physical address bits reported by CPUID.
+	 */
+	if (likely(boot_cpu_data.extended_cpuid_level >= 0x80000008))
+		return cpuid_eax(0x80000008) & 0xff;
 
-	return cpuid_eax(0x80000008) & 0xff;
+	/*
+	 * Quite weird to have VMX or SVM but not MAXPHYADDR; probably a VM with
+	 * custom CPUID.  Proceed with whatever the kernel found since these features
+	 * aren't virtualizable (SME/SEV also require CPUIDs higher than 0x80000008).
+	 */
+	return boot_cpu_data.x86_phys_bits;
 }
 
 static void kvm_mmu_reset_all_pte_masks(void)
@@ -576,16 +593,15 @@
 	 * the most significant bits of legal physical address space.
 	 */
 	shadow_nonpresent_or_rsvd_mask = 0;
-	low_phys_bits = boot_cpu_data.x86_cache_bits;
-	if (boot_cpu_data.x86_cache_bits <
-	    52 - shadow_nonpresent_or_rsvd_mask_len) {
+	low_phys_bits = boot_cpu_data.x86_phys_bits;
+	if (boot_cpu_has_bug(X86_BUG_L1TF) &&
+	    !WARN_ON_ONCE(boot_cpu_data.x86_cache_bits >=
+			  52 - shadow_nonpresent_or_rsvd_mask_len)) {
+		low_phys_bits = boot_cpu_data.x86_cache_bits
+			- shadow_nonpresent_or_rsvd_mask_len;
 		shadow_nonpresent_or_rsvd_mask =
-			rsvd_bits(boot_cpu_data.x86_cache_bits -
-				  shadow_nonpresent_or_rsvd_mask_len,
-				  boot_cpu_data.x86_cache_bits - 1);
-		low_phys_bits -= shadow_nonpresent_or_rsvd_mask_len;
-	} else
-		WARN_ON_ONCE(boot_cpu_has_bug(X86_BUG_L1TF));
+			rsvd_bits(low_phys_bits, boot_cpu_data.x86_cache_bits - 1);
+	}
 
 	shadow_nonpresent_or_rsvd_lower_gfn_mask =
 		GENMASK_ULL(low_phys_bits - 1, PAGE_SHIFT);
@@ -1282,12 +1298,12 @@
 	return __mmu_gfn_lpage_is_disallowed(gfn, level, slot);
 }
 
-static int host_mapping_level(struct kvm *kvm, gfn_t gfn)
+static int host_mapping_level(struct kvm_vcpu *vcpu, gfn_t gfn)
 {
 	unsigned long page_size;
 	int i, ret = 0;
 
-	page_size = kvm_host_page_size(kvm, gfn);
+	page_size = kvm_host_page_size(vcpu, gfn);
 
 	for (i = PT_PAGE_TABLE_LEVEL; i <= PT_MAX_HUGEPAGE_LEVEL; ++i) {
 		if (page_size >= KVM_HPAGE_SIZE(i))
@@ -1337,7 +1353,7 @@
 	if (unlikely(*force_pt_level))
 		return PT_PAGE_TABLE_LEVEL;
 
-	host_level = host_mapping_level(vcpu->kvm, large_gfn);
+	host_level = host_mapping_level(vcpu, large_gfn);
 
 	if (host_level == PT_PAGE_TABLE_LEVEL)
 		return host_level;
@@ -1814,10 +1830,10 @@
  * Emulate arch specific page modification logging for the
  * nested hypervisor
  */
-int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu)
+int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu, gpa_t l2_gpa)
 {
 	if (kvm_x86_ops->write_log_dirty)
-		return kvm_x86_ops->write_log_dirty(vcpu);
+		return kvm_x86_ops->write_log_dirty(vcpu, l2_gpa);
 
 	return 0;
 }
@@ -2040,7 +2056,8 @@
 	return kvm_handle_hva_range(kvm, hva, hva + 1, data, handler);
 }
 
-int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
+int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
+			unsigned flags)
 {
 	return kvm_handle_hva_range(kvm, start, end, 0, kvm_unmap_rmapp);
 }
@@ -2126,7 +2143,7 @@
  * aggregate version in order to make the slab shrinker
  * faster
  */
-static inline void kvm_mod_used_mmu_pages(struct kvm *kvm, unsigned long nr)
+static inline void kvm_mod_used_mmu_pages(struct kvm *kvm, long nr)
 {
 	kvm->arch.n_used_mmu_pages += nr;
 	percpu_counter_add(&kvm_total_used_mmu_pages, nr);
@@ -2226,13 +2243,6 @@
 {
 }
 
-static void nonpaging_update_pte(struct kvm_vcpu *vcpu,
-				 struct kvm_mmu_page *sp, u64 *spte,
-				 const void *pte)
-{
-	WARN_ON(1);
-}
-
 #define KVM_PAGE_ARRAY_NR 16
 
 struct kvm_mmu_pages {
@@ -3528,7 +3538,7 @@
  * - true: let the vcpu to access on the same address again.
  * - false: let the real page fault path to fix it.
  */
-static bool fast_page_fault(struct kvm_vcpu *vcpu, gva_t gva, int level,
+static bool fast_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, int level,
 			    u32 error_code)
 {
 	struct kvm_shadow_walk_iterator iterator;
@@ -3548,7 +3558,7 @@
 	do {
 		u64 new_spte;
 
-		for_each_shadow_entry_lockless(vcpu, gva, iterator, spte)
+		for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte)
 			if (!is_shadow_present_pte(spte) ||
 			    iterator.level < level)
 				break;
@@ -3626,7 +3636,7 @@
 
 	} while (true);
 
-	trace_fast_page_fault(vcpu, gva, error_code, iterator.sptep,
+	trace_fast_page_fault(vcpu, cr2_or_gpa, error_code, iterator.sptep,
 			      spte, fault_handled);
 	walk_shadow_page_lockless_end(vcpu);
 
@@ -3634,10 +3644,11 @@
 }
 
 static bool try_async_pf(struct kvm_vcpu *vcpu, bool prefault, gfn_t gfn,
-			 gva_t gva, kvm_pfn_t *pfn, bool write, bool *writable);
+			 gpa_t cr2_or_gpa, kvm_pfn_t *pfn, bool write,
+			 bool *writable);
 static int make_mmu_pages_available(struct kvm_vcpu *vcpu);
 
-static int nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, u32 error_code,
+static int nonpaging_map(struct kvm_vcpu *vcpu, gpa_t gpa, u32 error_code,
 			 gfn_t gfn, bool prefault)
 {
 	int r;
@@ -3663,16 +3674,16 @@
 		gfn &= ~(KVM_PAGES_PER_HPAGE(level) - 1);
 	}
 
-	if (fast_page_fault(vcpu, v, level, error_code))
+	if (fast_page_fault(vcpu, gpa, level, error_code))
 		return RET_PF_RETRY;
 
 	mmu_seq = vcpu->kvm->mmu_notifier_seq;
 	smp_rmb();
 
-	if (try_async_pf(vcpu, prefault, gfn, v, &pfn, write, &map_writable))
+	if (try_async_pf(vcpu, prefault, gfn, gpa, &pfn, write, &map_writable))
 		return RET_PF_RETRY;
 
-	if (handle_abnormal_pfn(vcpu, v, gfn, pfn, ACC_ALL, &r))
+	if (handle_abnormal_pfn(vcpu, gpa, gfn, pfn, ACC_ALL, &r))
 		return r;
 
 	r = RET_PF_RETRY;
@@ -3683,7 +3694,7 @@
 		goto out_unlock;
 	if (likely(!force_pt_level))
 		transparent_hugepage_adjust(vcpu, gfn, &pfn, &level);
-	r = __direct_map(vcpu, v, write, map_writable, level, pfn,
+	r = __direct_map(vcpu, gpa, write, map_writable, level, pfn,
 			 prefault, false);
 out_unlock:
 	spin_unlock(&vcpu->kvm->mmu_lock);
@@ -3981,7 +3992,7 @@
 }
 EXPORT_SYMBOL_GPL(kvm_mmu_sync_roots);
 
-static gpa_t nonpaging_gva_to_gpa(struct kvm_vcpu *vcpu, gva_t vaddr,
+static gpa_t nonpaging_gva_to_gpa(struct kvm_vcpu *vcpu, gpa_t vaddr,
 				  u32 access, struct x86_exception *exception)
 {
 	if (exception)
@@ -3989,7 +4000,7 @@
 	return vaddr;
 }
 
-static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gva_t vaddr,
+static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gpa_t vaddr,
 					 u32 access,
 					 struct x86_exception *exception)
 {
@@ -4149,13 +4160,14 @@
 	walk_shadow_page_lockless_end(vcpu);
 }
 
-static int nonpaging_page_fault(struct kvm_vcpu *vcpu, gva_t gva,
+static int nonpaging_page_fault(struct kvm_vcpu *vcpu, gpa_t gpa,
 				u32 error_code, bool prefault)
 {
-	gfn_t gfn = gva >> PAGE_SHIFT;
+	gfn_t gfn = gpa >> PAGE_SHIFT;
 	int r;
 
-	pgprintk("%s: gva %lx error %x\n", __func__, gva, error_code);
+	/* Note, paging is disabled, ergo gva == gpa. */
+	pgprintk("%s: gva %lx error %x\n", __func__, gpa, error_code);
 
 	if (page_fault_handle_page_track(vcpu, error_code, gfn))
 		return RET_PF_EMULATE;
@@ -4167,11 +4179,12 @@
 	MMU_WARN_ON(!VALID_PAGE(vcpu->arch.mmu->root_hpa));
 
 
-	return nonpaging_map(vcpu, gva & PAGE_MASK,
+	return nonpaging_map(vcpu, gpa & PAGE_MASK,
 			     error_code, gfn, prefault);
 }
 
-static int kvm_arch_setup_async_pf(struct kvm_vcpu *vcpu, gva_t gva, gfn_t gfn)
+static int kvm_arch_setup_async_pf(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
+				   gfn_t gfn)
 {
 	struct kvm_arch_async_pf arch;
 
@@ -4180,11 +4193,13 @@
 	arch.direct_map = vcpu->arch.mmu->direct_map;
 	arch.cr3 = vcpu->arch.mmu->get_cr3(vcpu);
 
-	return kvm_setup_async_pf(vcpu, gva, kvm_vcpu_gfn_to_hva(vcpu, gfn), &arch);
+	return kvm_setup_async_pf(vcpu, cr2_or_gpa,
+				  kvm_vcpu_gfn_to_hva(vcpu, gfn), &arch);
 }
 
 static bool try_async_pf(struct kvm_vcpu *vcpu, bool prefault, gfn_t gfn,
-			 gva_t gva, kvm_pfn_t *pfn, bool write, bool *writable)
+			 gpa_t cr2_or_gpa, kvm_pfn_t *pfn, bool write,
+			 bool *writable)
 {
 	struct kvm_memory_slot *slot;
 	bool async;
@@ -4204,12 +4219,12 @@
 		return false; /* *pfn has correct page already */
 
 	if (!prefault && kvm_can_do_async_pf(vcpu)) {
-		trace_kvm_try_async_get_page(gva, gfn);
+		trace_kvm_try_async_get_page(cr2_or_gpa, gfn);
 		if (kvm_find_async_pf_gfn(vcpu, gfn)) {
-			trace_kvm_async_pf_doublefault(gva, gfn);
+			trace_kvm_async_pf_doublefault(cr2_or_gpa, gfn);
 			kvm_make_request(KVM_REQ_APF_HALT, vcpu);
 			return true;
-		} else if (kvm_arch_setup_async_pf(vcpu, gva, gfn))
+		} else if (kvm_arch_setup_async_pf(vcpu, cr2_or_gpa, gfn))
 			return true;
 	}
 
@@ -4222,6 +4237,12 @@
 {
 	int r = 1;
 
+#ifndef CONFIG_X86_64
+	/* A 64-bit CR2 should be impossible on 32-bit KVM. */
+	if (WARN_ON_ONCE(fault_address >> 32))
+		return -EFAULT;
+#endif
+
 	vcpu->arch.l1tf_flush_l1d = true;
 	switch (vcpu->arch.apf.host_apf_reason) {
 	default:
@@ -4259,7 +4280,7 @@
 	return kvm_mtrr_check_gfn_range_consistency(vcpu, gfn, page_num);
 }
 
-static int tdp_page_fault(struct kvm_vcpu *vcpu, gva_t gpa, u32 error_code,
+static int tdp_page_fault(struct kvm_vcpu *vcpu, gpa_t gpa, u32 error_code,
 			  bool prefault)
 {
 	kvm_pfn_t pfn;
@@ -4328,7 +4349,6 @@
 	context->gva_to_gpa = nonpaging_gva_to_gpa;
 	context->sync_page = nonpaging_sync_page;
 	context->invlpg = nonpaging_invlpg;
-	context->update_pte = nonpaging_update_pte;
 	context->root_level = 0;
 	context->shadow_root_level = PT32E_ROOT_LEVEL;
 	context->direct_map = true;
@@ -4564,7 +4584,7 @@
 			nonleaf_bit8_rsvd | rsvd_bits(7, 7) |
 			rsvd_bits(maxphyaddr, 51);
 		rsvd_check->rsvd_bits_mask[0][2] = exb_bit_rsvd |
-			nonleaf_bit8_rsvd | gbpages_bit_rsvd |
+			gbpages_bit_rsvd |
 			rsvd_bits(maxphyaddr, 51);
 		rsvd_check->rsvd_bits_mask[0][1] = exb_bit_rsvd |
 			rsvd_bits(maxphyaddr, 51);
@@ -4646,7 +4666,15 @@
 void
 reset_shadow_zero_bits_mask(struct kvm_vcpu *vcpu, struct kvm_mmu *context)
 {
-	bool uses_nx = context->nx ||
+	/*
+	 * KVM uses NX when TDP is disabled to handle a variety of scenarios,
+	 * notably for huge SPTEs if iTLB multi-hit mitigation is enabled and
+	 * to generate correct permissions for CR0.WP=0/CR4.SMEP=1/EFER.NX=0.
+	 * The iTLB multi-hit workaround can be toggled at any time, so assume
+	 * NX can be used by any non-nested shadow MMU to avoid having to reset
+	 * MMU contexts.  Note, KVM forces EFER.NX=1 when TDP is disabled.
+	 */
+	bool uses_nx = context->nx || !tdp_enabled ||
 		context->mmu_role.base.smep_andnot_wp;
 	struct rsvd_bits_validate *shadow_zero_check;
 	int i;
@@ -4907,7 +4935,6 @@
 	context->gva_to_gpa = paging64_gva_to_gpa;
 	context->sync_page = paging64_sync_page;
 	context->invlpg = paging64_invlpg;
-	context->update_pte = paging64_update_pte;
 	context->shadow_root_level = level;
 	context->direct_map = false;
 }
@@ -4936,7 +4963,6 @@
 	context->gva_to_gpa = paging32_gva_to_gpa;
 	context->sync_page = paging32_sync_page;
 	context->invlpg = paging32_invlpg;
-	context->update_pte = paging32_update_pte;
 	context->shadow_root_level = PT32E_ROOT_LEVEL;
 	context->direct_map = false;
 }
@@ -5011,7 +5037,6 @@
 	context->page_fault = tdp_page_fault;
 	context->sync_page = nonpaging_sync_page;
 	context->invlpg = nonpaging_invlpg;
-	context->update_pte = nonpaging_update_pte;
 	context->shadow_root_level = kvm_x86_ops->get_tdp_level(vcpu);
 	context->direct_map = true;
 	context->set_cr3 = kvm_x86_ops->set_tdp_cr3;
@@ -5144,7 +5169,6 @@
 	context->gva_to_gpa = ept_gva_to_gpa;
 	context->sync_page = ept_sync_page;
 	context->invlpg = ept_invlpg;
-	context->update_pte = ept_update_pte;
 	context->root_level = PT64_ROOT_4LEVEL;
 	context->direct_map = false;
 	context->mmu_role.as_u64 = new_role.as_u64;
@@ -5284,19 +5308,6 @@
 }
 EXPORT_SYMBOL_GPL(kvm_mmu_unload);
 
-static void mmu_pte_write_new_pte(struct kvm_vcpu *vcpu,
-				  struct kvm_mmu_page *sp, u64 *spte,
-				  const void *new)
-{
-	if (sp->role.level != PT_PAGE_TABLE_LEVEL) {
-		++vcpu->kvm->stat.mmu_pde_zapped;
-		return;
-        }
-
-	++vcpu->kvm->stat.mmu_pte_updated;
-	vcpu->arch.mmu->update_pte(vcpu, sp, spte, new);
-}
-
 static bool need_remote_flush(u64 old, u64 new)
 {
 	if (!is_shadow_present_pte(old))
@@ -5462,14 +5473,10 @@
 
 		local_flush = true;
 		while (npte--) {
-			u32 base_role = vcpu->arch.mmu->mmu_role.base.word;
-
 			entry = *spte;
 			mmu_page_zap_pte(vcpu->kvm, sp, spte);
-			if (gentry &&
-			      !((sp->role.word ^ base_role)
-			      & mmu_base_role_mask.word) && rmap_can_add(vcpu))
-				mmu_pte_write_new_pte(vcpu, sp, spte, &gentry);
+			if (gentry && sp->role.level != PG_LEVEL_4K)
+				++vcpu->kvm->stat.mmu_pde_zapped;
 			if (need_remote_flush(entry, *spte))
 				remote_flush = true;
 			++spte;
@@ -5516,7 +5523,7 @@
 	return 0;
 }
 
-int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t cr2, u64 error_code,
+int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u64 error_code,
 		       void *insn, int insn_len)
 {
 	int r, emulation_type = 0;
@@ -5525,18 +5532,18 @@
 	/* With shadow page tables, fault_address contains a GVA or nGPA.  */
 	if (vcpu->arch.mmu->direct_map) {
 		vcpu->arch.gpa_available = true;
-		vcpu->arch.gpa_val = cr2;
+		vcpu->arch.gpa_val = cr2_or_gpa;
 	}
 
 	r = RET_PF_INVALID;
 	if (unlikely(error_code & PFERR_RSVD_MASK)) {
-		r = handle_mmio_page_fault(vcpu, cr2, direct);
+		r = handle_mmio_page_fault(vcpu, cr2_or_gpa, direct);
 		if (r == RET_PF_EMULATE)
 			goto emulate;
 	}
 
 	if (r == RET_PF_INVALID) {
-		r = vcpu->arch.mmu->page_fault(vcpu, cr2,
+		r = vcpu->arch.mmu->page_fault(vcpu, cr2_or_gpa,
 					       lower_32_bits(error_code),
 					       false);
 		WARN_ON(r == RET_PF_INVALID);
@@ -5556,7 +5563,7 @@
 	 */
 	if (vcpu->arch.mmu->direct_map &&
 	    (error_code & PFERR_NESTED_GUEST_PAGE) == PFERR_NESTED_GUEST_PAGE) {
-		kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(cr2));
+		kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(cr2_or_gpa));
 		return 1;
 	}
 
@@ -5571,7 +5578,7 @@
 	 * explicitly shadowing L1's page tables, i.e. unprotecting something
 	 * for L1 isn't going to magically fix whatever issue cause L2 to fail.
 	 */
-	if (!mmio_info_in_cache(vcpu, cr2, direct) && !is_guest_mode(vcpu))
+	if (!mmio_info_in_cache(vcpu, cr2_or_gpa, direct) && !is_guest_mode(vcpu))
 		emulation_type = EMULTYPE_ALLOW_RETRY;
 emulate:
 	/*
@@ -5586,7 +5593,7 @@
 			return 1;
 	}
 
-	return x86_emulate_instruction(vcpu, cr2, emulation_type, insn,
+	return x86_emulate_instruction(vcpu, cr2_or_gpa, emulation_type, insn,
 				       insn_len);
 }
 EXPORT_SYMBOL_GPL(kvm_mmu_page_fault);
@@ -5629,14 +5636,16 @@
 	uint i;
 
 	if (pcid == kvm_get_active_pcid(vcpu)) {
-		mmu->invlpg(vcpu, gva, mmu->root_hpa);
+		if (mmu->invlpg)
+			mmu->invlpg(vcpu, gva, mmu->root_hpa);
 		tlb_flush = true;
 	}
 
 	for (i = 0; i < KVM_MMU_NUM_PREV_ROOTS; i++) {
 		if (VALID_PAGE(mmu->prev_roots[i].hpa) &&
 		    pcid == kvm_get_pcid(vcpu, mmu->prev_roots[i].cr3)) {
-			mmu->invlpg(vcpu, gva, mmu->prev_roots[i].hpa);
+			if (mmu->invlpg)
+				mmu->invlpg(vcpu, gva, mmu->prev_roots[i].hpa);
 			tlb_flush = true;
 		}
 	}
@@ -5814,6 +5823,7 @@
 {
 	struct kvm_mmu_page *sp, *node;
 	int nr_zapped, batch = 0;
+	bool unstable;
 
 restart:
 	list_for_each_entry_safe_reverse(sp, node,
@@ -5846,11 +5856,12 @@
 			goto restart;
 		}
 
-		if (__kvm_mmu_prepare_zap_page(kvm, sp,
-				&kvm->arch.zapped_obsolete_pages, &nr_zapped)) {
-			batch += nr_zapped;
+		unstable = __kvm_mmu_prepare_zap_page(kvm, sp,
+				&kvm->arch.zapped_obsolete_pages, &nr_zapped);
+		batch += nr_zapped;
+
+		if (unstable)
 			goto restart;
-		}
 	}
 
 	/*
@@ -6232,25 +6243,16 @@
 	u64 mask;
 
 	/*
-	 * Set the reserved bits and the present bit of an paging-structure
-	 * entry to generate page fault with PFER.RSV = 1.
-	 */
-
-	/*
-	 * Mask the uppermost physical address bit, which would be reserved as
-	 * long as the supported physical address width is less than 52.
-	 */
-	mask = 1ull << 51;
-
-	/* Set the present bit. */
-	mask |= 1ull;
-
-	/*
-	 * If reserved bit is not supported, clear the present bit to disable
-	 * mmio page fault.
+	 * Set a reserved PA bit in MMIO SPTEs to generate page faults with
+	 * PFEC.RSVD=1 on MMIO accesses.  64-bit PTEs (PAE, x86-64, and EPT
+	 * paging) support a maximum of 52 bits of PA, i.e. if the CPU supports
+	 * 52-bit physical addresses then there are no reserved PA bits in the
+	 * PTEs and so the reserved PA approach must be disabled.
 	 */
-	if (IS_ENABLED(CONFIG_X86_64) && shadow_phys_bits == 52)
-		mask &= ~1ull;
+	if (shadow_phys_bits < 52)
+		mask = BIT_ULL(51) | PT_PRESENT_MASK;
+	else
+		mask = 0;
 
 	kvm_mmu_set_mmio_spte_mask(mask, mask, ACC_WRITE_MASK | ACC_USER_MASK);
 }
@@ -6445,6 +6447,7 @@
 				cond_resched_lock(&kvm->mmu_lock);
 		}
 	}
+	kvm_mmu_commit_zap_page(kvm, &invalid_list);
 
 	spin_unlock(&kvm->mmu_lock);
 	srcu_read_unlock(&kvm->srcu, rcu_idx);
--- linux-ein-5.4.0.orig/arch/x86/kvm/mmu.h
+++ linux-ein-5.4.0/arch/x86/kvm/mmu.h
@@ -48,7 +48,7 @@
 	if (e < s)
 		return 0;
 
-	return ((1ULL << (e - s + 1)) - 1) << s;
+	return ((2ULL << (e - s)) - 1) << s;
 }
 
 void kvm_mmu_set_mmio_spte_mask(u64 mmio_mask, u64 mmio_value, u64 access_mask);
@@ -209,7 +209,7 @@
 void kvm_mmu_gfn_allow_lpage(struct kvm_memory_slot *slot, gfn_t gfn);
 bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm,
 				    struct kvm_memory_slot *slot, u64 gfn);
-int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu);
+int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu, gpa_t l2_gpa);
 
 int kvm_mmu_post_init_vm(struct kvm *kvm);
 void kvm_mmu_pre_destroy_vm(struct kvm *kvm);
--- linux-ein-5.4.0.orig/arch/x86/kvm/mmutrace.h
+++ linux-ein-5.4.0/arch/x86/kvm/mmutrace.h
@@ -249,13 +249,13 @@
 
 TRACE_EVENT(
 	fast_page_fault,
-	TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code,
+	TP_PROTO(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa, u32 error_code,
 		 u64 *sptep, u64 old_spte, bool retry),
-	TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry),
+	TP_ARGS(vcpu, cr2_or_gpa, error_code, sptep, old_spte, retry),
 
 	TP_STRUCT__entry(
 		__field(int, vcpu_id)
-		__field(gva_t, gva)
+		__field(gpa_t, cr2_or_gpa)
 		__field(u32, error_code)
 		__field(u64 *, sptep)
 		__field(u64, old_spte)
@@ -265,7 +265,7 @@
 
 	TP_fast_assign(
 		__entry->vcpu_id = vcpu->vcpu_id;
-		__entry->gva = gva;
+		__entry->cr2_or_gpa = cr2_or_gpa;
 		__entry->error_code = error_code;
 		__entry->sptep = sptep;
 		__entry->old_spte = old_spte;
@@ -273,9 +273,9 @@
 		__entry->retry = retry;
 	),
 
-	TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx"
+	TP_printk("vcpu %d gva %llx error_code %s sptep %p old %#llx"
 		  " new %llx spurious %d fixed %d", __entry->vcpu_id,
-		  __entry->gva, __print_flags(__entry->error_code, "|",
+		  __entry->cr2_or_gpa, __print_flags(__entry->error_code, "|",
 		  kvm_mmu_trace_pferr_flags), __entry->sptep,
 		  __entry->old_spte, __entry->new_spte,
 		  __spte_satisfied(old_spte), __spte_satisfied(new_spte)
@@ -339,7 +339,7 @@
 		/* These depend on page entry type, so compute them now.  */
 		__field(bool, r)
 		__field(bool, x)
-		__field(u8, u)
+		__field(signed char, u)
 	),
 
 	TP_fast_assign(
--- linux-ein-5.4.0.orig/arch/x86/kvm/mtrr.c
+++ linux-ein-5.4.0/arch/x86/kvm/mtrr.c
@@ -192,11 +192,15 @@
 		break;
 	case MSR_MTRRfix16K_80000 ... MSR_MTRRfix16K_A0000:
 		*seg = 1;
-		*unit = msr - MSR_MTRRfix16K_80000;
+		*unit = array_index_nospec(
+			msr - MSR_MTRRfix16K_80000,
+			MSR_MTRRfix16K_A0000 - MSR_MTRRfix16K_80000 + 1);
 		break;
 	case MSR_MTRRfix4K_C0000 ... MSR_MTRRfix4K_F8000:
 		*seg = 2;
-		*unit = msr - MSR_MTRRfix4K_C0000;
+		*unit = array_index_nospec(
+			msr - MSR_MTRRfix4K_C0000,
+			MSR_MTRRfix4K_F8000 - MSR_MTRRfix4K_C0000 + 1);
 		break;
 	default:
 		return false;
--- linux-ein-5.4.0.orig/arch/x86/kvm/paging_tmpl.h
+++ linux-ein-5.4.0/arch/x86/kvm/paging_tmpl.h
@@ -33,10 +33,9 @@
 	#define PT_GUEST_ACCESSED_SHIFT PT_ACCESSED_SHIFT
 	#define PT_HAVE_ACCESSED_DIRTY(mmu) true
 	#ifdef CONFIG_X86_64
-	#define PT_MAX_FULL_LEVELS 4
-	#define CMPXCHG cmpxchg
+	#define PT_MAX_FULL_LEVELS PT64_ROOT_MAX_LEVEL
+	#define CMPXCHG "cmpxchgq"
 	#else
-	#define CMPXCHG cmpxchg64
 	#define PT_MAX_FULL_LEVELS 2
 	#endif
 #elif PTTYPE == 32
@@ -52,7 +51,7 @@
 	#define PT_GUEST_DIRTY_SHIFT PT_DIRTY_SHIFT
 	#define PT_GUEST_ACCESSED_SHIFT PT_ACCESSED_SHIFT
 	#define PT_HAVE_ACCESSED_DIRTY(mmu) true
-	#define CMPXCHG cmpxchg
+	#define CMPXCHG "cmpxchgl"
 #elif PTTYPE == PTTYPE_EPT
 	#define pt_element_t u64
 	#define guest_walker guest_walkerEPT
@@ -65,8 +64,10 @@
 	#define PT_GUEST_DIRTY_SHIFT 9
 	#define PT_GUEST_ACCESSED_SHIFT 8
 	#define PT_HAVE_ACCESSED_DIRTY(mmu) ((mmu)->ept_ad)
-	#define CMPXCHG cmpxchg64
 	#define PT_MAX_FULL_LEVELS 4
+	#ifdef CONFIG_X86_64
+	#define CMPXCHG "cmpxchgq"
+	#endif
 #else
 	#error Invalid PTTYPE value
 #endif
@@ -90,8 +91,8 @@
 	gpa_t pte_gpa[PT_MAX_FULL_LEVELS];
 	pt_element_t __user *ptep_user[PT_MAX_FULL_LEVELS];
 	bool pte_writable[PT_MAX_FULL_LEVELS];
-	unsigned pt_access;
-	unsigned pte_access;
+	unsigned int pt_access[PT_MAX_FULL_LEVELS];
+	unsigned int pte_access;
 	gfn_t gfn;
 	struct x86_exception fault;
 };
@@ -132,43 +133,39 @@
 			       pt_element_t __user *ptep_user, unsigned index,
 			       pt_element_t orig_pte, pt_element_t new_pte)
 {
-	int npages;
-	pt_element_t ret;
-	pt_element_t *table;
-	struct page *page;
-
-	npages = get_user_pages_fast((unsigned long)ptep_user, 1, FOLL_WRITE, &page);
-	if (likely(npages == 1)) {
-		table = kmap_atomic(page);
-		ret = CMPXCHG(&table[index], orig_pte, new_pte);
-		kunmap_atomic(table);
-
-		kvm_release_page_dirty(page);
-	} else {
-		struct vm_area_struct *vma;
-		unsigned long vaddr = (unsigned long)ptep_user & PAGE_MASK;
-		unsigned long pfn;
-		unsigned long paddr;
-
-		down_read(&current->mm->mmap_sem);
-		vma = find_vma_intersection(current->mm, vaddr, vaddr + PAGE_SIZE);
-		if (!vma || !(vma->vm_flags & VM_PFNMAP)) {
-			up_read(&current->mm->mmap_sem);
-			return -EFAULT;
-		}
-		pfn = ((vaddr - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
-		paddr = pfn << PAGE_SHIFT;
-		table = memremap(paddr, PAGE_SIZE, MEMREMAP_WB);
-		if (!table) {
-			up_read(&current->mm->mmap_sem);
-			return -EFAULT;
-		}
-		ret = CMPXCHG(&table[index], orig_pte, new_pte);
-		memunmap(table);
-		up_read(&current->mm->mmap_sem);
-	}
+	int r = -EFAULT;
+
+	if (!user_access_begin(ptep_user, sizeof(pt_element_t)))
+		return -EFAULT;
 
-	return (ret != orig_pte);
+#ifdef CMPXCHG
+	asm volatile("1:" LOCK_PREFIX CMPXCHG " %[new], %[ptr]\n"
+		     "mov $0, %[r]\n"
+		     "setnz %b[r]\n"
+		     "2:"
+		     _ASM_EXTABLE_UA(1b, 2b)
+		     : [ptr] "+m" (*ptep_user),
+		       [old] "+a" (orig_pte),
+		       [r] "+q" (r)
+		     : [new] "r" (new_pte)
+		     : "memory");
+#else
+	asm volatile("1:" LOCK_PREFIX "cmpxchg8b %[ptr]\n"
+		     "movl $0, %[r]\n"
+		     "jz 2f\n"
+		     "incl %[r]\n"
+		     "2:"
+		     _ASM_EXTABLE_UA(1b, 2b)
+		     : [ptr] "+m" (*ptep_user),
+		       [old] "+A" (orig_pte),
+		       [r] "+rm" (r)
+		     : [new_lo] "b" ((u32)new_pte),
+		       [new_hi] "c" ((u32)(new_pte >> 32))
+		     : "memory");
+#endif
+
+	user_access_end();
+	return r;
 }
 
 static bool FNAME(prefetch_invalid_gpte)(struct kvm_vcpu *vcpu,
@@ -220,7 +217,7 @@
 static int FNAME(update_accessed_dirty_bits)(struct kvm_vcpu *vcpu,
 					     struct kvm_mmu *mmu,
 					     struct guest_walker *walker,
-					     int write_fault)
+					     gpa_t addr, int write_fault)
 {
 	unsigned level, index;
 	pt_element_t pte, orig_pte;
@@ -245,7 +242,7 @@
 				!(pte & PT_GUEST_DIRTY_MASK)) {
 			trace_kvm_mmu_set_dirty_bit(table_gfn, index, sizeof(pte));
 #if PTTYPE == PTTYPE_EPT
-			if (kvm_arch_write_log_dirty(vcpu))
+			if (kvm_arch_write_log_dirty(vcpu, addr))
 				return -EINVAL;
 #endif
 			pte |= PT_GUEST_DIRTY_MASK;
@@ -291,11 +288,11 @@
 }
 
 /*
- * Fetch a guest pte for a guest virtual address
+ * Fetch a guest pte for a guest virtual address, or for an L2's GPA.
  */
 static int FNAME(walk_addr_generic)(struct guest_walker *walker,
 				    struct kvm_vcpu *vcpu, struct kvm_mmu *mmu,
-				    gva_t addr, u32 access)
+				    gpa_t addr, u32 access)
 {
 	int ret;
 	pt_element_t pte;
@@ -406,13 +403,15 @@
 		}
 
 		walker->ptes[walker->level - 1] = pte;
+
+		/* Convert to ACC_*_MASK flags for struct guest_walker.  */
+		walker->pt_access[walker->level - 1] = FNAME(gpte_access)(pt_access ^ walk_nx_mask);
 	} while (!is_last_gpte(mmu, walker->level, pte));
 
 	pte_pkey = FNAME(gpte_pkeys)(vcpu, pte);
 	accessed_dirty = have_ad ? pte_access & PT_GUEST_ACCESSED_MASK : 0;
 
 	/* Convert to ACC_*_MASK flags for struct guest_walker.  */
-	walker->pt_access = FNAME(gpte_access)(pt_access ^ walk_nx_mask);
 	walker->pte_access = FNAME(gpte_access)(pte_access ^ walk_nx_mask);
 	errcode = permission_fault(vcpu, mmu, walker->pte_access, pte_pkey, access);
 	if (unlikely(errcode))
@@ -442,7 +441,8 @@
 			(PT_GUEST_DIRTY_SHIFT - PT_GUEST_ACCESSED_SHIFT);
 
 	if (unlikely(!accessed_dirty)) {
-		ret = FNAME(update_accessed_dirty_bits)(vcpu, mmu, walker, write_fault);
+		ret = FNAME(update_accessed_dirty_bits)(vcpu, mmu, walker,
+							addr, write_fault);
 		if (unlikely(ret < 0))
 			goto error;
 		else if (ret)
@@ -450,7 +450,8 @@
 	}
 
 	pgprintk("%s: pte %llx pte_access %x pt_access %x\n",
-		 __func__, (u64)pte, walker->pte_access, walker->pt_access);
+		 __func__, (u64)pte, walker->pte_access,
+		 walker->pt_access[walker->level - 1]);
 	return 1;
 
 error:
@@ -496,7 +497,7 @@
 }
 
 static int FNAME(walk_addr)(struct guest_walker *walker,
-			    struct kvm_vcpu *vcpu, gva_t addr, u32 access)
+			    struct kvm_vcpu *vcpu, gpa_t addr, u32 access)
 {
 	return FNAME(walk_addr_generic)(walker, vcpu, vcpu->arch.mmu, addr,
 					access);
@@ -611,7 +612,7 @@
  * If the guest tries to write a write-protected page, we need to
  * emulate this operation, return 1 to indicate this case.
  */
-static int FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
+static int FNAME(fetch)(struct kvm_vcpu *vcpu, gpa_t addr,
 			 struct guest_walker *gw,
 			 int write_fault, int hlevel,
 			 kvm_pfn_t pfn, bool map_writable, bool prefault,
@@ -619,7 +620,7 @@
 {
 	struct kvm_mmu_page *sp = NULL;
 	struct kvm_shadow_walk_iterator it;
-	unsigned direct_access, access = gw->pt_access;
+	unsigned int direct_access, access;
 	int top_level, ret;
 	gfn_t gfn, base_gfn;
 
@@ -651,6 +652,7 @@
 		sp = NULL;
 		if (!is_shadow_present_pte(*it.sptep)) {
 			table_gfn = gw->table_gfn[it.level - 2];
+			access = gw->pt_access[it.level - 2];
 			sp = kvm_mmu_get_page(vcpu, table_gfn, addr, it.level-1,
 					      false, access);
 		}
@@ -765,7 +767,7 @@
  *  Returns: 1 if we need to emulate the instruction, 0 otherwise, or
  *           a negative value on error.
  */
-static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, u32 error_code,
+static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gpa_t addr, u32 error_code,
 			     bool prefault)
 {
 	int write_fault = error_code & PFERR_WRITE_MASK;
@@ -945,18 +947,19 @@
 	spin_unlock(&vcpu->kvm->mmu_lock);
 }
 
-static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr, u32 access,
+/* Note, @addr is a GPA when gva_to_gpa() translates an L2 GPA to an L1 GPA. */
+static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gpa_t addr, u32 access,
 			       struct x86_exception *exception)
 {
 	struct guest_walker walker;
 	gpa_t gpa = UNMAPPED_GVA;
 	int r;
 
-	r = FNAME(walk_addr)(&walker, vcpu, vaddr, access);
+	r = FNAME(walk_addr)(&walker, vcpu, addr, access);
 
 	if (r) {
 		gpa = gfn_to_gpa(walker.gfn);
-		gpa |= vaddr & ~PAGE_MASK;
+		gpa |= addr & ~PAGE_MASK;
 	} else if (exception)
 		*exception = walker.fault;
 
@@ -964,7 +967,8 @@
 }
 
 #if PTTYPE != PTTYPE_EPT
-static gpa_t FNAME(gva_to_gpa_nested)(struct kvm_vcpu *vcpu, gva_t vaddr,
+/* Note, gva_to_gpa_nested() is only used to translate L2 GVAs. */
+static gpa_t FNAME(gva_to_gpa_nested)(struct kvm_vcpu *vcpu, gpa_t vaddr,
 				      u32 access,
 				      struct x86_exception *exception)
 {
@@ -972,6 +976,11 @@
 	gpa_t gpa = UNMAPPED_GVA;
 	int r;
 
+#ifndef CONFIG_X86_64
+	/* A 64-bit GVA should be impossible on 32-bit KVM. */
+	WARN_ON_ONCE(vaddr >> 32);
+#endif
+
 	r = FNAME(walk_addr_nested)(&walker, vcpu, vaddr, access);
 
 	if (r) {
--- linux-ein-5.4.0.orig/arch/x86/kvm/pmu.c
+++ linux-ein-5.4.0/arch/x86/kvm/pmu.c
@@ -143,7 +143,6 @@
 void reprogram_gp_counter(struct kvm_pmc *pmc, u64 eventsel)
 {
 	unsigned config, type = PERF_TYPE_RAW;
-	u8 event_select, unit_mask;
 	struct kvm *kvm = pmc->vcpu->kvm;
 	struct kvm_pmu_event_filter *filter;
 	int i;
@@ -175,23 +174,18 @@
 	if (!allow_event)
 		return;
 
-	event_select = eventsel & ARCH_PERFMON_EVENTSEL_EVENT;
-	unit_mask = (eventsel & ARCH_PERFMON_EVENTSEL_UMASK) >> 8;
-
 	if (!(eventsel & (ARCH_PERFMON_EVENTSEL_EDGE |
 			  ARCH_PERFMON_EVENTSEL_INV |
 			  ARCH_PERFMON_EVENTSEL_CMASK |
 			  HSW_IN_TX |
 			  HSW_IN_TX_CHECKPOINTED))) {
-		config = kvm_x86_ops->pmu_ops->find_arch_event(pmc_to_pmu(pmc),
-						      event_select,
-						      unit_mask);
+		config = kvm_x86_ops->pmu_ops->pmc_perf_hw_id(pmc);
 		if (config != PERF_COUNT_HW_MAX)
 			type = PERF_TYPE_HARDWARE;
 	}
 
 	if (type == PERF_TYPE_RAW)
-		config = eventsel & X86_RAW_EVENT_MASK;
+		config = eventsel & AMD64_RAW_EVENT_MASK;
 
 	pmc_reprogram_counter(pmc, type, config,
 			      !(eventsel & ARCH_PERFMON_EVENTSEL_USR),
--- linux-ein-5.4.0.orig/arch/x86/kvm/pmu.h
+++ linux-ein-5.4.0/arch/x86/kvm/pmu.h
@@ -2,6 +2,8 @@
 #ifndef __KVM_X86_PMU_H
 #define __KVM_X86_PMU_H
 
+#include <linux/nospec.h>
+
 #define vcpu_to_pmu(vcpu) (&(vcpu)->arch.pmu)
 #define pmu_to_vcpu(pmu)  (container_of((pmu), struct kvm_vcpu, arch.pmu))
 #define pmc_to_pmu(pmc)   (&(pmc)->vcpu->arch.pmu)
@@ -20,8 +22,7 @@
 };
 
 struct kvm_pmu_ops {
-	unsigned (*find_arch_event)(struct kvm_pmu *pmu, u8 event_select,
-				    u8 unit_mask);
+	unsigned int (*pmc_perf_hw_id)(struct kvm_pmc *pmc);
 	unsigned (*find_fixed_event)(int idx);
 	bool (*pmc_is_enabled)(struct kvm_pmc *pmc);
 	struct kvm_pmc *(*pmc_idx_to_pmc)(struct kvm_pmu *pmu, int pmc_idx);
@@ -86,8 +87,12 @@
 static inline struct kvm_pmc *get_gp_pmc(struct kvm_pmu *pmu, u32 msr,
 					 u32 base)
 {
-	if (msr >= base && msr < base + pmu->nr_arch_gp_counters)
-		return &pmu->gp_counters[msr - base];
+	if (msr >= base && msr < base + pmu->nr_arch_gp_counters) {
+		u32 index = array_index_nospec(msr - base,
+					       pmu->nr_arch_gp_counters);
+
+		return &pmu->gp_counters[index];
+	}
 
 	return NULL;
 }
@@ -97,8 +102,12 @@
 {
 	int base = MSR_CORE_PERF_FIXED_CTR0;
 
-	if (msr >= base && msr < base + pmu->nr_arch_fixed_counters)
-		return &pmu->fixed_counters[msr - base];
+	if (msr >= base && msr < base + pmu->nr_arch_fixed_counters) {
+		u32 index = array_index_nospec(msr - base,
+					       pmu->nr_arch_fixed_counters);
+
+		return &pmu->fixed_counters[index];
+	}
 
 	return NULL;
 }
--- linux-ein-5.4.0.orig/arch/x86/kvm/pmu_amd.c
+++ linux-ein-5.4.0/arch/x86/kvm/pmu_amd.c
@@ -44,6 +44,22 @@
 	[7] = { 0xd1, 0x00, PERF_COUNT_HW_STALLED_CYCLES_BACKEND },
 };
 
+/* duplicated from amd_f17h_perfmon_event_map. */
+static struct kvm_event_hw_type_mapping amd_f17h_event_mapping[] = {
+	[0] = { 0x76, 0x00, PERF_COUNT_HW_CPU_CYCLES },
+	[1] = { 0xc0, 0x00, PERF_COUNT_HW_INSTRUCTIONS },
+	[2] = { 0x60, 0xff, PERF_COUNT_HW_CACHE_REFERENCES },
+	[3] = { 0x64, 0x09, PERF_COUNT_HW_CACHE_MISSES },
+	[4] = { 0xc2, 0x00, PERF_COUNT_HW_BRANCH_INSTRUCTIONS },
+	[5] = { 0xc3, 0x00, PERF_COUNT_HW_BRANCH_MISSES },
+	[6] = { 0x87, 0x02, PERF_COUNT_HW_STALLED_CYCLES_FRONTEND },
+	[7] = { 0x87, 0x01, PERF_COUNT_HW_STALLED_CYCLES_BACKEND },
+};
+
+/* amd_pmc_perf_hw_id depends on these being the same size */
+static_assert(ARRAY_SIZE(amd_event_mapping) ==
+	     ARRAY_SIZE(amd_f17h_event_mapping));
+
 static unsigned int get_msr_base(struct kvm_pmu *pmu, enum pmu_type type)
 {
 	struct kvm_vcpu *vcpu = pmu_to_vcpu(pmu);
@@ -126,21 +142,27 @@
 	return &pmu->gp_counters[msr_to_index(msr)];
 }
 
-static unsigned amd_find_arch_event(struct kvm_pmu *pmu,
-				    u8 event_select,
-				    u8 unit_mask)
+static unsigned int amd_pmc_perf_hw_id(struct kvm_pmc *pmc)
 {
+	struct kvm_event_hw_type_mapping *event_mapping;
+	u8 event_select = pmc->eventsel & ARCH_PERFMON_EVENTSEL_EVENT;
+	u8 unit_mask = (pmc->eventsel & ARCH_PERFMON_EVENTSEL_UMASK) >> 8;
 	int i;
 
+	if (guest_cpuid_family(pmc->vcpu) >= 0x17)
+		event_mapping = amd_f17h_event_mapping;
+	else
+		event_mapping = amd_event_mapping;
+
 	for (i = 0; i < ARRAY_SIZE(amd_event_mapping); i++)
-		if (amd_event_mapping[i].eventsel == event_select
-		    && amd_event_mapping[i].unit_mask == unit_mask)
+		if (event_mapping[i].eventsel == event_select
+		    && event_mapping[i].unit_mask == unit_mask)
 			break;
 
 	if (i == ARRAY_SIZE(amd_event_mapping))
 		return PERF_COUNT_HW_MAX;
 
-	return amd_event_mapping[i].event_type;
+	return event_mapping[i].event_type;
 }
 
 /* return PERF_COUNT_HW_MAX as AMD doesn't have fixed events */
@@ -245,12 +267,10 @@
 	/* MSR_EVNTSELn */
 	pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);
 	if (pmc) {
-		if (data == pmc->eventsel)
-			return 0;
-		if (!(data & pmu->reserved_bits)) {
+		data &= ~pmu->reserved_bits;
+		if (data != pmc->eventsel)
 			reprogram_gp_counter(pmc, data);
-			return 0;
-		}
+		return 0;
 	}
 
 	return 1;
@@ -266,7 +286,7 @@
 		pmu->nr_arch_gp_counters = AMD64_NUM_COUNTERS;
 
 	pmu->counter_bitmask[KVM_PMC_GP] = ((u64)1 << 48) - 1;
-	pmu->reserved_bits = 0xffffffff00200000ull;
+	pmu->reserved_bits = 0xfffffff000280000ull;
 	pmu->version = 1;
 	/* not applicable to AMD; but clean them to prevent any fall out */
 	pmu->counter_bitmask[KVM_PMC_FIXED] = 0;
@@ -302,7 +322,7 @@
 }
 
 struct kvm_pmu_ops amd_pmu_ops = {
-	.find_arch_event = amd_find_arch_event,
+	.pmc_perf_hw_id = amd_pmc_perf_hw_id,
 	.find_fixed_event = amd_find_fixed_event,
 	.pmc_is_enabled = amd_pmc_is_enabled,
 	.pmc_idx_to_pmc = amd_pmc_idx_to_pmc,
--- linux-ein-5.4.0.orig/arch/x86/kvm/svm.c
+++ linux-ein-5.4.0/arch/x86/kvm/svm.c
@@ -47,6 +47,7 @@
 #include <asm/kvm_para.h>
 #include <asm/irq_remapping.h>
 #include <asm/spec-ctrl.h>
+#include <asm/cpu_device_id.h>
 
 #include <asm/virtext.h>
 #include "trace.h"
@@ -516,6 +517,9 @@
 	c->intercept_dr = h->intercept_dr | g->intercept_dr;
 	c->intercept_exceptions = h->intercept_exceptions | g->intercept_exceptions;
 	c->intercept = h->intercept | g->intercept;
+
+	c->intercept |= (1ULL << INTERCEPT_VMLOAD);
+	c->intercept |= (1ULL << INTERCEPT_VMSAVE);
 }
 
 static inline struct vmcb *get_host_vmcb(struct vcpu_svm *svm)
@@ -787,9 +791,6 @@
 		if (!kvm_emulate_instruction(vcpu, EMULTYPE_SKIP))
 			return 0;
 	} else {
-		if (svm->next_rip - kvm_rip_read(vcpu) > MAX_INST_SIZE)
-			pr_err("%s: ip 0x%lx next 0x%llx\n",
-			       __func__, kvm_rip_read(vcpu), svm->next_rip);
 		kvm_rip_write(vcpu, svm->next_rip);
 	}
 	svm_set_interrupt_shadow(vcpu, 0);
@@ -892,6 +893,11 @@
 		return 0;
 	}
 
+	if (sev_active()) {
+		pr_info("KVM is unsupported when running as an SEV guest\n");
+		return 0;
+	}
+
 	return 1;
 }
 
@@ -998,33 +1004,32 @@
 static int svm_cpu_init(int cpu)
 {
 	struct svm_cpu_data *sd;
-	int r;
 
 	sd = kzalloc(sizeof(struct svm_cpu_data), GFP_KERNEL);
 	if (!sd)
 		return -ENOMEM;
 	sd->cpu = cpu;
-	r = -ENOMEM;
 	sd->save_area = alloc_page(GFP_KERNEL);
 	if (!sd->save_area)
-		goto err_1;
+		goto free_cpu_data;
 
 	if (svm_sev_enabled()) {
-		r = -ENOMEM;
 		sd->sev_vmcbs = kmalloc_array(max_sev_asid + 1,
 					      sizeof(void *),
 					      GFP_KERNEL);
 		if (!sd->sev_vmcbs)
-			goto err_1;
+			goto free_save_area;
 	}
 
 	per_cpu(svm_data, cpu) = sd;
 
 	return 0;
 
-err_1:
+free_save_area:
+	__free_page(sd->save_area);
+free_cpu_data:
 	kfree(sd);
-	return r;
+	return -ENOMEM;
 
 }
 
@@ -1298,6 +1303,47 @@
 	}
 }
 
+/*
+ * The default MMIO mask is a single bit (excluding the present bit),
+ * which could conflict with the memory encryption bit. Check for
+ * memory encryption support and override the default MMIO mask if
+ * memory encryption is enabled.
+ */
+static __init void svm_adjust_mmio_mask(void)
+{
+	unsigned int enc_bit, mask_bit;
+	u64 msr, mask;
+
+	/* If there is no memory encryption support, use existing mask */
+	if (cpuid_eax(0x80000000) < 0x8000001f)
+		return;
+
+	/* If memory encryption is not enabled, use existing mask */
+	rdmsrl(MSR_K8_SYSCFG, msr);
+	if (!(msr & MSR_K8_SYSCFG_MEM_ENCRYPT))
+		return;
+
+	enc_bit = cpuid_ebx(0x8000001f) & 0x3f;
+	mask_bit = boot_cpu_data.x86_phys_bits;
+
+	/* Increment the mask bit if it is the same as the encryption bit */
+	if (enc_bit == mask_bit)
+		mask_bit++;
+
+	/*
+	 * If the mask bit location is below 52, then some bits above the
+	 * physical addressing limit will always be reserved, so use the
+	 * rsvd_bits() function to generate the mask. This mask, along with
+	 * the present bit, will be used to generate a page fault with
+	 * PFER.RSV = 1.
+	 *
+	 * If the mask bit location is 52 (or above), then clear the mask.
+	 */
+	mask = (mask_bit < 52) ? rsvd_bits(mask_bit, 51) | PT_PRESENT_MASK : 0;
+
+	kvm_mmu_set_mmio_spte_mask(mask, mask, PT_WRITABLE_MASK | PT_USER_MASK);
+}
+
 static __init int svm_hardware_setup(void)
 {
 	int cpu;
@@ -1352,6 +1398,8 @@
 		}
 	}
 
+	svm_adjust_mmio_mask();
+
 	for_each_possible_cpu(cpu) {
 		r = svm_cpu_init(cpu);
 		if (r)
@@ -1399,12 +1447,7 @@
 		}
 	}
 
-	if (vgif) {
-		if (!boot_cpu_has(X86_FEATURE_VGIF))
-			vgif = false;
-		else
-			pr_info("Virtual GIF supported\n");
-	}
+	vgif = false; /* Disabled for CVE-2021-3653 */
 
 	return 0;
 
@@ -1739,7 +1782,7 @@
 
 	for_each_possible_cpu(cpu) {
 		sd = per_cpu(svm_data, cpu);
-		sd->sev_vmcbs[pos] = NULL;
+		sd->sev_vmcbs[asid] = NULL;
 	}
 }
 
@@ -1750,9 +1793,25 @@
 	__sev_asid_free(sev->asid);
 }
 
-static void sev_unbind_asid(struct kvm *kvm, unsigned int handle)
+static void sev_decommission(unsigned int handle)
 {
 	struct sev_data_decommission *decommission;
+
+	if (!handle)
+		return;
+
+	decommission = kzalloc(sizeof(*decommission), GFP_KERNEL);
+	if (!decommission)
+		return;
+
+	decommission->handle = handle;
+	sev_guest_decommission(decommission, NULL);
+
+	kfree(decommission);
+}
+
+static void sev_unbind_asid(struct kvm *kvm, unsigned int handle)
+{
 	struct sev_data_deactivate *data;
 
 	if (!handle)
@@ -1770,15 +1829,7 @@
 	sev_guest_df_flush(NULL);
 	kfree(data);
 
-	decommission = kzalloc(sizeof(*decommission), GFP_KERNEL);
-	if (!decommission)
-		return;
-
-	/* decommission handle */
-	decommission->handle = handle;
-	sev_guest_decommission(decommission, NULL);
-
-	kfree(decommission);
+	sev_decommission(handle);
 }
 
 static struct page **sev_pin_memory(struct kvm *kvm, unsigned long uaddr,
@@ -1791,6 +1842,8 @@
 	struct page **pages;
 	unsigned long first, last;
 
+	lockdep_assert_held(&kvm->lock);
+
 	if (ulen == 0 || uaddr + ulen < uaddr)
 		return NULL;
 
@@ -1818,7 +1871,7 @@
 		return NULL;
 
 	/* Pin the user virtual address. */
-	npinned = get_user_pages_fast(uaddr, npages, FOLL_WRITE, pages);
+	npinned = get_user_pages_fast(uaddr, npages, write ? FOLL_WRITE : 0, pages);
 	if (npinned != npages) {
 		pr_err("SEV: Failure locking %lu pages.\n", npages);
 		goto err;
@@ -1852,7 +1905,8 @@
 	uint8_t *page_virtual;
 	unsigned long i;
 
-	if (npages == 0 || pages == NULL)
+	if (this_cpu_has(X86_FEATURE_SME_COHERENT) || npages == 0 ||
+	    pages == NULL)
 		return;
 
 	for (i = 0; i < npages; i++) {
@@ -1883,6 +1937,10 @@
 	struct kvm_svm *kvm_svm = __vmalloc(sizeof(struct kvm_svm),
 					    GFP_KERNEL_ACCOUNT | __GFP_ZERO,
 					    PAGE_KERNEL);
+
+	if (!kvm_svm)
+		return NULL;
+
 	return &kvm_svm->kvm;
 }
 
@@ -1910,6 +1968,7 @@
 		list_for_each_safe(pos, q, head) {
 			__unregister_enc_region_locked(kvm,
 				list_entry(pos, struct enc_region, list));
+			cond_resched();
 		}
 	}
 
@@ -3191,8 +3250,8 @@
 			return NESTED_EXIT_HOST;
 		break;
 	case SVM_EXIT_EXCP_BASE + PF_VECTOR:
-		/* When we're shadowing, trap PFs, but not async PF */
-		if (!npt_enabled && svm->vcpu.arch.apf.host_apf_reason == 0)
+		/* Trap async PF even if not shadowing */
+		if (!npt_enabled || svm->vcpu.arch.apf.host_apf_reason)
 			return NESTED_EXIT_HOST;
 		break;
 	default:
@@ -3281,7 +3340,7 @@
 	dst->iopm_base_pa         = from->iopm_base_pa;
 	dst->msrpm_base_pa        = from->msrpm_base_pa;
 	dst->tsc_offset           = from->tsc_offset;
-	dst->asid                 = from->asid;
+	/* asid not copied, it is handled manually for svm->vmcb.  */
 	dst->tlb_ctl              = from->tlb_ctl;
 	dst->int_ctl              = from->int_ctl;
 	dst->int_vector           = from->int_vector;
@@ -3548,7 +3607,13 @@
 	svm->nested.intercept            = nested_vmcb->control.intercept;
 
 	svm_flush_tlb(&svm->vcpu, true);
-	svm->vmcb->control.int_ctl = nested_vmcb->control.int_ctl | V_INTR_MASKING_MASK;
+
+	svm->vmcb->control.int_ctl &=
+			V_INTR_MASKING_MASK | V_GIF_ENABLE_MASK | V_GIF_MASK;
+
+	svm->vmcb->control.int_ctl |= nested_vmcb->control.int_ctl &
+			(V_TPR_MASK | V_IRQ_INJECTION_BITS_MASK);
+
 	if (nested_vmcb->control.int_ctl & V_INTR_MASKING_MASK)
 		svm->vcpu.arch.hflags |= HF_VINTR_MASK;
 	else
@@ -3924,6 +3989,12 @@
 	return 1;
 }
 
+static int invd_interception(struct vcpu_svm *svm)
+{
+	/* Treat an INVD instruction as a NOP and just skip it. */
+	return kvm_skip_emulated_instruction(&svm->vcpu);
+}
+
 static int invlpg_interception(struct vcpu_svm *svm)
 {
 	if (!static_cpu_has(X86_FEATURE_DECODEASSISTS))
@@ -4001,7 +4072,7 @@
 	err = 0;
 	if (cr >= 16) { /* mov to cr */
 		cr -= 16;
-		val = kvm_register_read(&svm->vcpu, reg);
+		val = kvm_register_readl(&svm->vcpu, reg);
 		switch (cr) {
 		case 0:
 			if (!check_selective_cr0_intercepted(svm, val))
@@ -4046,7 +4117,7 @@
 			kvm_queue_exception(&svm->vcpu, UD_VECTOR);
 			return 1;
 		}
-		kvm_register_write(&svm->vcpu, reg, val);
+		kvm_register_writel(&svm->vcpu, reg, val);
 	}
 	return kvm_complete_insn_gp(&svm->vcpu, err);
 }
@@ -4076,13 +4147,13 @@
 	if (dr >= 16) { /* mov to DRn */
 		if (!kvm_require_dr(&svm->vcpu, dr - 16))
 			return 1;
-		val = kvm_register_read(&svm->vcpu, reg);
+		val = kvm_register_readl(&svm->vcpu, reg);
 		kvm_set_dr(&svm->vcpu, dr - 16, val);
 	} else {
 		if (!kvm_require_dr(&svm->vcpu, dr))
 			return 1;
 		kvm_get_dr(&svm->vcpu, dr, &val);
-		kvm_register_write(&svm->vcpu, reg, val);
+		kvm_register_writel(&svm->vcpu, reg, val);
 	}
 
 	return kvm_skip_emulated_instruction(&svm->vcpu);
@@ -4109,9 +4180,9 @@
 	msr->data = 0;
 
 	switch (msr->index) {
-	case MSR_F10H_DECFG:
-		if (boot_cpu_has(X86_FEATURE_LFENCE_RDTSC))
-			msr->data |= MSR_F10H_DECFG_LFENCE_SERIALIZE;
+	case MSR_AMD64_DE_CFG:
+		if (cpu_feature_enabled(X86_FEATURE_LFENCE_RDTSC))
+			msr->data |= MSR_AMD64_DE_CFG_LFENCE_SERIALIZE;
 		break;
 	default:
 		return 1;
@@ -4184,8 +4255,7 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
 		msr_info->data = svm->spec_ctrl;
@@ -4214,7 +4284,7 @@
 			msr_info->data = 0x1E;
 		}
 		break;
-	case MSR_F10H_DECFG:
+	case MSR_AMD64_DE_CFG:
 		msr_info->data = svm->msr_decfg;
 		break;
 	default:
@@ -4269,16 +4339,13 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBRS) &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
-		/* The STIBP bit doesn't fault even if it's not advertised */
-		if (data & ~(SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD))
+		if (kvm_spec_ctrl_test_value(data))
 			return 1;
 
 		svm->spec_ctrl = data;
-
 		if (!data)
 			break;
 
@@ -4297,18 +4364,17 @@
 		break;
 	case MSR_IA32_PRED_CMD:
 		if (!msr->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_AMD_IBPB))
+		    !guest_has_pred_cmd_msr(vcpu))
 			return 1;
 
 		if (data & ~PRED_CMD_IBPB)
 			return 1;
-
+		if (!boot_cpu_has(X86_FEATURE_IBPB))
+			return 1;
 		if (!data)
 			break;
 
 		wrmsrl(MSR_IA32_PRED_CMD, PRED_CMD_IBPB);
-		if (is_guest_mode(vcpu))
-			break;
 		set_msr_interception(svm->msrpm, MSR_IA32_PRED_CMD, 0, 1);
 		break;
 	case MSR_AMD64_VIRT_SPEC_CTRL:
@@ -4385,7 +4451,7 @@
 	case MSR_VM_IGNNE:
 		vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data);
 		break;
-	case MSR_F10H_DECFG: {
+	case MSR_AMD64_DE_CFG: {
 		struct kvm_msr_entry msr_entry;
 
 		msr_entry.index = msr->index;
@@ -4521,8 +4587,6 @@
 		break;
 	}
 	case AVIC_IPI_FAILURE_INVALID_TARGET:
-		WARN_ONCE(1, "Invalid IPI target: index=%u, vcpu=%d, icr=%#0x:%#0x\n",
-			  index, svm->vcpu.vcpu_id, icrh, icrl);
 		break;
 	case AVIC_IPI_FAILURE_INVALID_BACKING_PAGE:
 		WARN_ONCE(1, "Invalid backing page\n");
@@ -4776,7 +4840,7 @@
 	[SVM_EXIT_RDPMC]			= rdpmc_interception,
 	[SVM_EXIT_CPUID]			= cpuid_interception,
 	[SVM_EXIT_IRET]                         = iret_interception,
-	[SVM_EXIT_INVD]                         = emulate_on_interception,
+	[SVM_EXIT_INVD]                         = invd_interception,
 	[SVM_EXIT_PAUSE]			= pause_interception,
 	[SVM_EXIT_HLT]				= halt_interception,
 	[SVM_EXIT_INVLPG]			= invlpg_interception,
@@ -5074,8 +5138,6 @@
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
 
-	BUG_ON(!(gif_set(svm)));
-
 	trace_kvm_inj_virq(vcpu->arch.interrupt.nr);
 	++vcpu->stat.irq_injections;
 
@@ -5141,8 +5203,11 @@
 	return;
 }
 
-static void svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
+static int svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
 {
+	if (!vcpu->arch.apicv_active)
+		return -1;
+
 	kvm_lapic_set_irr(vec, vcpu->arch.apic);
 	smp_mb__after_atomic();
 
@@ -5154,6 +5219,8 @@
 		put_cpu();
 	} else
 		kvm_vcpu_wake_up(vcpu);
+
+	return 0;
 }
 
 static bool svm_dy_apicv_has_pending_interrupt(struct kvm_vcpu *vcpu)
@@ -5329,6 +5396,7 @@
 			 * - Tell IOMMU to use legacy mode for this interrupt.
 			 * - Retrieve ga_tag of prior interrupt remapping data.
 			 */
+			pi.prev_ga_tag = 0;
 			pi.is_guest_mode = false;
 			ret = irq_set_vcpu_affinity(host_irq, &pi);
 
@@ -5650,6 +5718,8 @@
 
 	local_irq_enable();
 
+	amd_clear_divider();
+
 	asm volatile (
 		"push %%" _ASM_BP "; \n\t"
 		"mov %c[rbx](%[svm]), %%" _ASM_BX " \n\t"
@@ -5968,7 +6038,7 @@
 
 static bool svm_xsaves_supported(void)
 {
-	return false;
+	return boot_cpu_has(X86_FEATURE_XSAVES);
 }
 
 static bool svm_umip_emulated(void)
@@ -5986,6 +6056,11 @@
 	return true;
 }
 
+static bool svm_pku_supported(void)
+{
+	return false;
+}
+
 #define PRE_EX(exit)  { .exit_code = (exit), \
 			.stage = X86_ICPT_PRE_EXCEPT, }
 #define POST_EX(exit) { .exit_code = (exit), \
@@ -6173,7 +6248,8 @@
 
 static void svm_handle_exit_irqoff(struct kvm_vcpu *vcpu)
 {
-
+	if (to_svm(vcpu)->vmcb->control.exit_code == SVM_EXIT_INTR)
+		vcpu->arch.at_instruction_boundary = true;
 }
 
 static void svm_sched_in(struct kvm_vcpu *vcpu, int cpu)
@@ -6413,8 +6489,10 @@
 
 	/* Bind ASID to this guest */
 	ret = sev_bind_asid(kvm, start->handle, error);
-	if (ret)
+	if (ret) {
+		sev_decommission(start->handle);
 		goto e_free_session;
+	}
 
 	/* return handle to userspace */
 	params.handle = start->handle;
@@ -7031,12 +7109,20 @@
 	if (!region)
 		return -ENOMEM;
 
+	mutex_lock(&kvm->lock);
 	region->pages = sev_pin_memory(kvm, range->addr, range->size, &region->npages, 1);
 	if (!region->pages) {
 		ret = -ENOMEM;
+		mutex_unlock(&kvm->lock);
 		goto e_free;
 	}
 
+	region->uaddr = range->addr;
+	region->size = range->size;
+
+	list_add_tail(&region->list, &sev->regions_list);
+	mutex_unlock(&kvm->lock);
+
 	/*
 	 * The guest may change the memory encryption attribute from C=0 -> C=1
 	 * or vice versa for this memory range. Lets make sure caches are
@@ -7045,13 +7131,6 @@
 	 */
 	sev_clflush_pages(region->pages, region->npages);
 
-	region->uaddr = range->addr;
-	region->size = range->size;
-
-	mutex_lock(&kvm->lock);
-	list_add_tail(&region->list, &sev->regions_list);
-	mutex_unlock(&kvm->lock);
-
 	return ret;
 
 e_free:
@@ -7278,6 +7357,7 @@
 	.xsaves_supported = svm_xsaves_supported,
 	.umip_emulated = svm_umip_emulated,
 	.pt_supported = svm_pt_supported,
+	.pku_supported = svm_pku_supported,
 
 	.set_supported_cpuid = svm_set_supported_cpuid,
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/trace.h
+++ linux-ein-5.4.0/arch/x86/kvm/trace.h
@@ -1483,16 +1483,16 @@
 	TP_ARGS(msg, err),
 
 	TP_STRUCT__entry(
-		__field(const char *, msg)
+		__string(msg, msg)
 		__field(u32, err)
 	),
 
 	TP_fast_assign(
-		__entry->msg = msg;
+		__assign_str(msg, msg);
 		__entry->err = err;
 	),
 
-	TP_printk("%s%s", __entry->msg, !__entry->err ? "" :
+	TP_printk("%s%s", __get_str(msg), !__entry->err ? "" :
 		__print_symbolic(__entry->err, VMX_VMENTER_INSTRUCTION_ERRORS))
 );
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/capabilities.h
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/capabilities.h
@@ -12,6 +12,7 @@
 extern bool __read_mostly enable_unrestricted_guest;
 extern bool __read_mostly enable_ept_ad_bits;
 extern bool __read_mostly enable_pml;
+extern bool __read_mostly enable_apicv;
 extern int __read_mostly pt_mode;
 
 #define PT_MODE_SYSTEM		0
@@ -145,6 +146,11 @@
 		SECONDARY_EXEC_DESC;
 }
 
+static inline bool vmx_pku_supported(void)
+{
+	return boot_cpu_has(X86_FEATURE_PKU);
+}
+
 static inline bool cpu_has_vmx_rdtscp(void)
 {
 	return vmcs_config.cpu_based_2nd_exec_ctrl &
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/evmcs.c
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/evmcs.c
@@ -303,14 +303,13 @@
 };
 const unsigned int nr_evmcs_1_fields = ARRAY_SIZE(vmcs_field_to_evmcs_1);
 
-void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf)
+__init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf)
 {
 	vmcs_conf->pin_based_exec_ctrl &= ~EVMCS1_UNSUPPORTED_PINCTRL;
 	vmcs_conf->cpu_based_2nd_exec_ctrl &= ~EVMCS1_UNSUPPORTED_2NDEXEC;
 
 	vmcs_conf->vmexit_ctrl &= ~EVMCS1_UNSUPPORTED_VMEXIT_CTRL;
 	vmcs_conf->vmentry_ctrl &= ~EVMCS1_UNSUPPORTED_VMENTRY_CTRL;
-
 }
 #endif
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/evmcs.h
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/evmcs.h
@@ -58,7 +58,9 @@
 	 SECONDARY_EXEC_SHADOW_VMCS |					\
 	 SECONDARY_EXEC_TSC_SCALING |					\
 	 SECONDARY_EXEC_PAUSE_LOOP_EXITING)
-#define EVMCS1_UNSUPPORTED_VMEXIT_CTRL (VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL)
+#define EVMCS1_UNSUPPORTED_VMEXIT_CTRL					\
+	(VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |				\
+	 VM_EXIT_SAVE_VMX_PREEMPTION_TIMER)
 #define EVMCS1_UNSUPPORTED_VMENTRY_CTRL (VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL)
 #define EVMCS1_UNSUPPORTED_VMFUNC (VMX_VMFUNC_EPTP_SWITCHING)
 
@@ -184,7 +186,7 @@
 	vp_ap->enlighten_vmentry = 1;
 }
 
-void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf);
+__init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf);
 #else /* !IS_ENABLED(CONFIG_HYPERV) */
 static inline void evmcs_write64(unsigned long field, u64 value) {}
 static inline void evmcs_write32(unsigned long field, u32 value) {}
@@ -193,7 +195,6 @@
 static inline u32 evmcs_read32(unsigned long field) { return 0; }
 static inline u16 evmcs_read16(unsigned long field) { return 0; }
 static inline void evmcs_load(u64 phys_addr) {}
-static inline void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf) {}
 static inline void evmcs_touch_msr_bitmap(void) {}
 #endif /* IS_ENABLED(CONFIG_HYPERV) */
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/nested.c
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/nested.c
@@ -11,6 +11,7 @@
 #include "mmu.h"
 #include "nested.h"
 #include "trace.h"
+#include "vmx.h"
 #include "x86.h"
 
 static bool __read_mostly enable_shadow_vmcs = 1;
@@ -223,7 +224,7 @@
 		return;
 
 	kvm_vcpu_unmap(vcpu, &vmx->nested.hv_evmcs_map, true);
-	vmx->nested.hv_evmcs_vmptr = -1ull;
+	vmx->nested.hv_evmcs_vmptr = 0;
 	vmx->nested.hv_evmcs = NULL;
 }
 
@@ -302,7 +303,7 @@
 	cpu = get_cpu();
 	prev = vmx->loaded_vmcs;
 	vmx->loaded_vmcs = vmcs;
-	vmx_vcpu_load_vmcs(vcpu, cpu);
+	vmx_vcpu_load_vmcs(vcpu, cpu, prev);
 	vmx_sync_vmcs_host_state(vmx, prev);
 	put_cpu();
 
@@ -1060,7 +1061,7 @@
 		BIT_ULL(49) | BIT_ULL(54) | BIT_ULL(55) |
 		/* reserved */
 		BIT_ULL(31) | GENMASK_ULL(47, 45) | GENMASK_ULL(63, 56);
-	u64 vmx_basic = vmx->nested.msrs.basic;
+	u64 vmx_basic = vmcs_config.nested.basic;
 
 	if (!is_bitwise_subset(vmx_basic, data, feature_and_reserved))
 		return -EINVAL;
@@ -1083,36 +1084,42 @@
 	return 0;
 }
 
-static int
-vmx_restore_control_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data)
+static void vmx_get_control_msr(struct nested_vmx_msrs *msrs, u32 msr_index,
+				u32 **low, u32 **high)
 {
-	u64 supported;
-	u32 *lowp, *highp;
-
 	switch (msr_index) {
 	case MSR_IA32_VMX_TRUE_PINBASED_CTLS:
-		lowp = &vmx->nested.msrs.pinbased_ctls_low;
-		highp = &vmx->nested.msrs.pinbased_ctls_high;
+		*low = &msrs->pinbased_ctls_low;
+		*high = &msrs->pinbased_ctls_high;
 		break;
 	case MSR_IA32_VMX_TRUE_PROCBASED_CTLS:
-		lowp = &vmx->nested.msrs.procbased_ctls_low;
-		highp = &vmx->nested.msrs.procbased_ctls_high;
+		*low = &msrs->procbased_ctls_low;
+		*high = &msrs->procbased_ctls_high;
 		break;
 	case MSR_IA32_VMX_TRUE_EXIT_CTLS:
-		lowp = &vmx->nested.msrs.exit_ctls_low;
-		highp = &vmx->nested.msrs.exit_ctls_high;
+		*low = &msrs->exit_ctls_low;
+		*high = &msrs->exit_ctls_high;
 		break;
 	case MSR_IA32_VMX_TRUE_ENTRY_CTLS:
-		lowp = &vmx->nested.msrs.entry_ctls_low;
-		highp = &vmx->nested.msrs.entry_ctls_high;
+		*low = &msrs->entry_ctls_low;
+		*high = &msrs->entry_ctls_high;
 		break;
 	case MSR_IA32_VMX_PROCBASED_CTLS2:
-		lowp = &vmx->nested.msrs.secondary_ctls_low;
-		highp = &vmx->nested.msrs.secondary_ctls_high;
+		*low = &msrs->secondary_ctls_low;
+		*high = &msrs->secondary_ctls_high;
 		break;
 	default:
 		BUG();
 	}
+}
+
+static int
+vmx_restore_control_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data)
+{
+	u32 *lowp, *highp;
+	u64 supported;
+
+	vmx_get_control_msr(&vmcs_config.nested, msr_index, &lowp, &highp);
 
 	supported = vmx_control_msr(*lowp, *highp);
 
@@ -1124,6 +1131,7 @@
 	if (!is_bitwise_subset(supported, data, GENMASK_ULL(63, 32)))
 		return -EINVAL;
 
+	vmx_get_control_msr(&vmx->nested.msrs, msr_index, &lowp, &highp);
 	*lowp = data;
 	*highp = data >> 32;
 	return 0;
@@ -1137,10 +1145,8 @@
 		BIT_ULL(28) | BIT_ULL(29) | BIT_ULL(30) |
 		/* reserved */
 		GENMASK_ULL(13, 9) | BIT_ULL(31);
-	u64 vmx_misc;
-
-	vmx_misc = vmx_control_msr(vmx->nested.msrs.misc_low,
-				   vmx->nested.msrs.misc_high);
+	u64 vmx_misc = vmx_control_msr(vmcs_config.nested.misc_low,
+				       vmcs_config.nested.misc_high);
 
 	if (!is_bitwise_subset(vmx_misc, data, feature_and_reserved_bits))
 		return -EINVAL;
@@ -1168,10 +1174,8 @@
 
 static int vmx_restore_vmx_ept_vpid_cap(struct vcpu_vmx *vmx, u64 data)
 {
-	u64 vmx_ept_vpid_cap;
-
-	vmx_ept_vpid_cap = vmx_control_msr(vmx->nested.msrs.ept_caps,
-					   vmx->nested.msrs.vpid_caps);
+	u64 vmx_ept_vpid_cap = vmx_control_msr(vmcs_config.nested.ept_caps,
+					       vmcs_config.nested.vpid_caps);
 
 	/* Every bit is either reserved or a feature bit. */
 	if (!is_bitwise_subset(vmx_ept_vpid_cap, data, -1ULL))
@@ -1182,20 +1186,21 @@
 	return 0;
 }
 
-static int vmx_restore_fixed0_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data)
+static u64 *vmx_get_fixed0_msr(struct nested_vmx_msrs *msrs, u32 msr_index)
 {
-	u64 *msr;
-
 	switch (msr_index) {
 	case MSR_IA32_VMX_CR0_FIXED0:
-		msr = &vmx->nested.msrs.cr0_fixed0;
-		break;
+		return &msrs->cr0_fixed0;
 	case MSR_IA32_VMX_CR4_FIXED0:
-		msr = &vmx->nested.msrs.cr4_fixed0;
-		break;
+		return &msrs->cr4_fixed0;
 	default:
 		BUG();
 	}
+}
+
+static int vmx_restore_fixed0_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data)
+{
+	const u64 *msr = vmx_get_fixed0_msr(&vmcs_config.nested, msr_index);
 
 	/*
 	 * 1 bits (which indicates bits which "must-be-1" during VMX operation)
@@ -1204,7 +1209,7 @@
 	if (!is_bitwise_subset(data, *msr, -1ULL))
 		return -EINVAL;
 
-	*msr = data;
+	*vmx_get_fixed0_msr(&vmx->nested.msrs, msr_index) = data;
 	return 0;
 }
 
@@ -1265,7 +1270,7 @@
 		vmx->nested.msrs.vmcs_enum = data;
 		return 0;
 	case MSR_IA32_VMX_VMFUNC:
-		if (data & ~vmx->nested.msrs.vmfunc_controls)
+		if (data & ~vmcs_config.nested.vmfunc_controls)
 			return -EINVAL;
 		vmx->nested.msrs.vmfunc_controls = data;
 		return 0;
@@ -1828,7 +1833,8 @@
 	if (!nested_enlightened_vmentry(vcpu, &evmcs_gpa))
 		return 1;
 
-	if (unlikely(evmcs_gpa != vmx->nested.hv_evmcs_vmptr)) {
+	if (unlikely(!vmx->nested.hv_evmcs ||
+		     evmcs_gpa != vmx->nested.hv_evmcs_vmptr)) {
 		if (!vmx->nested.hv_evmcs)
 			vmx->nested.current_vmptr = -1ull;
 
@@ -2056,20 +2062,19 @@
 			 ~PIN_BASED_VMX_PREEMPTION_TIMER);
 
 	/* Posted interrupts setting is only taken from vmcs12.  */
-	if (nested_cpu_has_posted_intr(vmcs12)) {
+	vmx->nested.pi_pending = false;
+	if (nested_cpu_has_posted_intr(vmcs12))
 		vmx->nested.posted_intr_nv = vmcs12->posted_intr_nv;
-		vmx->nested.pi_pending = false;
-	} else {
+	else
 		exec_control &= ~PIN_BASED_POSTED_INTR;
-	}
 	pin_controls_set(vmx, exec_control);
 
 	/*
 	 * EXEC CONTROLS
 	 */
 	exec_control = vmx_exec_control(vmx); /* L0's desires */
-	exec_control &= ~CPU_BASED_VIRTUAL_INTR_PENDING;
-	exec_control &= ~CPU_BASED_VIRTUAL_NMI_PENDING;
+	exec_control &= ~CPU_BASED_INTR_WINDOW_EXITING;
+	exec_control &= ~CPU_BASED_NMI_WINDOW_EXITING;
 	exec_control &= ~CPU_BASED_TPR_SHADOW;
 	exec_control |= vmcs12->cpu_based_vm_exec_control;
 
@@ -2230,6 +2235,8 @@
 		vmcs_writel(GUEST_TR_BASE, vmcs12->guest_tr_base);
 		vmcs_writel(GUEST_GDTR_BASE, vmcs12->guest_gdtr_base);
 		vmcs_writel(GUEST_IDTR_BASE, vmcs12->guest_idtr_base);
+
+		vmx->segment_cache.bitmask = 0;
 	}
 
 	if (!hv_evmcs || !(hv_evmcs->hv_clean_fields &
@@ -2418,6 +2425,16 @@
 				entry_failure_code))
 		return -EINVAL;
 
+	/*
+	 * Immediately write vmcs02.GUEST_CR3.  It will be propagated to vmcs12
+	 * on nested VM-Exit, which can occur without actually running L2 and
+	 * thus without hitting vmx_set_cr3(), e.g. if L1 is entering L2 with
+	 * vmcs12.GUEST_ACTIVITYSTATE=HLT, in which case KVM will intercept the
+	 * transition to HLT instead of running L2.
+	 */
+	if (enable_ept)
+		vmcs_writel(GUEST_CR3, vmcs12->guest_cr3);
+
 	/* Late preparation of GUEST_PDPTRs now that EFER and CRs are set. */
 	if (load_guest_pdptrs_vmcs12 && nested_cpu_has_ept(vmcs12) &&
 	    is_pae_paging(vcpu)) {
@@ -2442,7 +2459,7 @@
 		return -EINVAL;
 
 	if (CC(!nested_cpu_has_virtual_nmis(vmcs12) &&
-	       nested_cpu_has(vmcs12, CPU_BASED_VIRTUAL_NMI_PENDING)))
+	       nested_cpu_has(vmcs12, CPU_BASED_NMI_WINDOW_EXITING)))
 		return -EINVAL;
 
 	return 0;
@@ -2762,7 +2779,7 @@
 					struct vmcs12 *vmcs12,
 					u32 *exit_qual)
 {
-	bool ia32e;
+	bool ia32e = !!(vmcs12->vm_entry_controls & VM_ENTRY_IA32E_MODE);
 
 	*exit_qual = ENTRY_FAIL_DEFAULT;
 
@@ -2779,6 +2796,13 @@
 		return -EINVAL;
 	}
 
+	if (CC((vmcs12->guest_cr0 & (X86_CR0_PG | X86_CR0_PE)) == X86_CR0_PG))
+		return -EINVAL;
+
+	if (CC(ia32e && !(vmcs12->guest_cr4 & X86_CR4_PAE)) ||
+	    CC(ia32e && !(vmcs12->guest_cr0 & X86_CR0_PG)))
+		return -EINVAL;
+
 	/*
 	 * If the load IA32_EFER VM-entry control is 1, the following checks
 	 * are performed on the field for the IA32_EFER MSR:
@@ -2790,7 +2814,6 @@
 	 */
 	if (to_vmx(vcpu)->nested.nested_run_pending &&
 	    (vmcs12->vm_entry_controls & VM_ENTRY_LOAD_IA32_EFER)) {
-		ia32e = (vmcs12->vm_entry_controls & VM_ENTRY_IA32E_MODE) != 0;
 		if (CC(!kvm_valid_efer(vcpu, vmcs12->guest_ia32_efer)) ||
 		    CC(ia32e != !!(vmcs12->guest_ia32_efer & EFER_LMA)) ||
 		    CC(((vmcs12->guest_cr0 & X86_CR0_PG) &&
@@ -2847,35 +2870,8 @@
 		vmx->loaded_vmcs->host_state.cr4 = cr4;
 	}
 
-	asm(
-		"sub $%c[wordsize], %%" _ASM_SP "\n\t" /* temporarily adjust RSP for CALL */
-		"cmp %%" _ASM_SP ", %c[host_state_rsp](%[loaded_vmcs]) \n\t"
-		"je 1f \n\t"
-		__ex("vmwrite %%" _ASM_SP ", %[HOST_RSP]") "\n\t"
-		"mov %%" _ASM_SP ", %c[host_state_rsp](%[loaded_vmcs]) \n\t"
-		"1: \n\t"
-		"add $%c[wordsize], %%" _ASM_SP "\n\t" /* un-adjust RSP */
-
-		/* Check if vmlaunch or vmresume is needed */
-		"cmpb $0, %c[launched](%[loaded_vmcs])\n\t"
-
-		/*
-		 * VMLAUNCH and VMRESUME clear RFLAGS.{CF,ZF} on VM-Exit, set
-		 * RFLAGS.CF on VM-Fail Invalid and set RFLAGS.ZF on VM-Fail
-		 * Valid.  vmx_vmenter() directly "returns" RFLAGS, and so the
-		 * results of VM-Enter is captured via CC_{SET,OUT} to vm_fail.
-		 */
-		"call vmx_vmenter\n\t"
-
-		CC_SET(be)
-	      : ASM_CALL_CONSTRAINT, CC_OUT(be) (vm_fail)
-	      :	[HOST_RSP]"r"((unsigned long)HOST_RSP),
-		[loaded_vmcs]"r"(vmx->loaded_vmcs),
-		[launched]"i"(offsetof(struct loaded_vmcs, launched)),
-		[host_state_rsp]"i"(offsetof(struct loaded_vmcs, host_state.rsp)),
-		[wordsize]"i"(sizeof(ulong))
-	      : "memory"
-	);
+	vm_fail = __vmx_vcpu_run(vmx, (unsigned long *)&vcpu->arch.regs,
+				 __vmx_vcpu_run_flags(vmx));
 
 	if (vmx->msr_autoload.host.nr)
 		vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr);
@@ -3049,14 +3045,16 @@
 	u32 exit_qual;
 
 	evaluate_pending_interrupts = exec_controls_get(vmx) &
-		(CPU_BASED_VIRTUAL_INTR_PENDING | CPU_BASED_VIRTUAL_NMI_PENDING);
+		(CPU_BASED_INTR_WINDOW_EXITING | CPU_BASED_NMI_WINDOW_EXITING);
 	if (likely(!evaluate_pending_interrupts) && kvm_vcpu_apicv_active(vcpu))
 		evaluate_pending_interrupts |= vmx_has_apicv_interrupt(vcpu);
 
-	if (!(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS))
+	if (!vmx->nested.nested_run_pending ||
+	    !(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS))
 		vmx->nested.vmcs01_debugctl = vmcs_read64(GUEST_IA32_DEBUGCTL);
 	if (kvm_mpx_supported() &&
-		!(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_BNDCFGS))
+	    (!vmx->nested.nested_run_pending ||
+	     !(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_BNDCFGS)))
 		vmx->nested.vmcs01_guest_bndcfgs = vmcs_read64(GUEST_BNDCFGS);
 
 	/*
@@ -3083,8 +3081,10 @@
 	prepare_vmcs02_early(vmx, vmcs12);
 
 	if (from_vmentry) {
-		if (unlikely(!nested_get_vmcs12_pages(vcpu)))
+		if (unlikely(!nested_get_vmcs12_pages(vcpu))) {
+			vmx_switch_vmcs(vcpu, &vmx->vmcs01);
 			return NVMX_VMENTRY_KVM_INTERNAL_ERROR;
+		}
 
 		if (nested_vmx_check_vmentry_hw(vcpu)) {
 			vmx_switch_vmcs(vcpu, &vmx->vmcs01);
@@ -3096,7 +3096,7 @@
 	}
 
 	enter_guest_mode(vcpu);
-	if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETING)
+	if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETTING)
 		vcpu->arch.tsc_offset += vmcs12->tsc_offset;
 
 	if (prepare_vmcs02(vcpu, vmcs12, &exit_qual))
@@ -3160,7 +3160,7 @@
 	 * 26.7 "VM-entry failures during or after loading guest state".
 	 */
 vmentry_fail_vmexit_guest_mode:
-	if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETING)
+	if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETTING)
 		vcpu->arch.tsc_offset -= vmcs12->tsc_offset;
 	leave_guest_mode(vcpu);
 
@@ -3273,8 +3273,8 @@
 	 */
 	if ((vmcs12->guest_activity_state == GUEST_ACTIVITY_HLT) &&
 	    !(vmcs12->vm_entry_intr_info_field & INTR_INFO_VALID_MASK) &&
-	    !(vmcs12->cpu_based_vm_exec_control & CPU_BASED_VIRTUAL_NMI_PENDING) &&
-	    !((vmcs12->cpu_based_vm_exec_control & CPU_BASED_VIRTUAL_INTR_PENDING) &&
+	    !(vmcs12->cpu_based_vm_exec_control & CPU_BASED_NMI_WINDOW_EXITING) &&
+	    !((vmcs12->cpu_based_vm_exec_control & CPU_BASED_INTR_WINDOW_EXITING) &&
 	      (vmcs12->guest_rflags & X86_EFLAGS_IF))) {
 		vmx->nested.nested_run_pending = 0;
 		return kvm_vcpu_halt(vcpu);
@@ -3433,7 +3433,16 @@
 	u32 intr_info = nr | INTR_INFO_VALID_MASK;
 
 	if (vcpu->arch.exception.has_error_code) {
-		vmcs12->vm_exit_intr_error_code = vcpu->arch.exception.error_code;
+		/*
+		 * Intel CPUs do not generate error codes with bits 31:16 set,
+		 * and more importantly VMX disallows setting bits 31:16 in the
+		 * injected error code for VM-Entry.  Drop the bits to mimic
+		 * hardware and avoid inducing failure on nested VM-Entry if L1
+		 * chooses to inject the exception back to L2.  AMD CPUs _do_
+		 * generate "full" 32-bit error codes, so KVM allows userspace
+		 * to inject exception error codes with bits 31:16 set.
+		 */
+		vmcs12->vm_exit_intr_error_code = (u16)vcpu->arch.exception.error_code;
 		intr_info |= INTR_INFO_DELIVER_CODE_MASK;
 	}
 
@@ -3449,7 +3458,7 @@
 	nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI, intr_info, exit_qual);
 }
 
-static int vmx_check_nested_events(struct kvm_vcpu *vcpu, bool external_intr)
+static int vmx_check_nested_events(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	unsigned long exit_qual;
@@ -3496,8 +3505,7 @@
 		return 0;
 	}
 
-	if ((kvm_cpu_has_interrupt(vcpu) || external_intr) &&
-	    nested_exit_on_intr(vcpu)) {
+	if (kvm_cpu_has_interrupt(vcpu) && nested_exit_on_intr(vcpu)) {
 		if (block_nested_events)
 			return -EBUSY;
 		nested_vmx_vmexit(vcpu, EXIT_REASON_EXTERNAL_INTERRUPT, 0, 0);
@@ -3733,12 +3741,12 @@
 	/* update exit information fields: */
 	vmcs12->vm_exit_reason = exit_reason;
 	vmcs12->exit_qualification = exit_qualification;
-	vmcs12->vm_exit_intr_info = exit_intr_info;
-
-	vmcs12->idt_vectoring_info_field = 0;
-	vmcs12->vm_exit_instruction_len = vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
-	vmcs12->vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO);
 
+	/*
+	 * On VM-Exit due to a failed VM-Entry, the VMCS isn't marked launched
+	 * and only EXIT_REASON and EXIT_QUALIFICATION are updated, all other
+	 * exit info fields are unmodified.
+	 */
 	if (!(vmcs12->vm_exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY)) {
 		vmcs12->launch_state = 1;
 
@@ -3750,8 +3758,13 @@
 		 * Transfer the event that L0 or L1 may wanted to inject into
 		 * L2 to IDT_VECTORING_INFO_FIELD.
 		 */
+		vmcs12->idt_vectoring_info_field = 0;
 		vmcs12_save_pending_event(vcpu, vmcs12);
 
+		vmcs12->vm_exit_intr_info = exit_intr_info;
+		vmcs12->vm_exit_instruction_len = vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+		vmcs12->vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO);
+
 		/*
 		 * According to spec, there's no need to store the guest's
 		 * MSRs if the exit is due to a VM-entry failure that occurs
@@ -3764,14 +3777,6 @@
 			nested_vmx_abort(vcpu,
 					 VMX_ABORT_SAVE_GUEST_MSR_FAIL);
 	}
-
-	/*
-	 * Drop what we picked up for L2 via vmx_complete_interrupts. It is
-	 * preserved above and would only end up incorrectly in L1.
-	 */
-	vcpu->arch.nmi_injected = false;
-	kvm_clear_exception_queue(vcpu);
-	kvm_clear_interrupt_queue(vcpu);
 }
 
 /*
@@ -3913,6 +3918,10 @@
 	};
 	vmx_set_segment(vcpu, &seg, VCPU_SREG_TR);
 
+	memset(&seg, 0, sizeof(seg));
+	seg.unusable = 1;
+	vmx_set_segment(vcpu, &seg, VCPU_SREG_LDTR);
+
 	kvm_set_dr(vcpu, 7, 0x400);
 	vmcs_write64(GUEST_IA32_DEBUGCTL, 0);
 
@@ -4074,7 +4083,7 @@
 	if (nested_cpu_has_preemption_timer(vmcs12))
 		hrtimer_cancel(&to_vmx(vcpu)->nested.preemption_timer);
 
-	if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETING)
+	if (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETTING)
 		vcpu->arch.tsc_offset -= vmcs12->tsc_offset;
 
 	if (likely(!vmx->fail)) {
@@ -4106,8 +4115,30 @@
 		WARN_ON_ONCE(nested_early_check);
 	}
 
+	/*
+	 * Drop events/exceptions that were queued for re-injection to L2
+	 * (picked up via vmx_complete_interrupts()), as well as exceptions
+	 * that were pending for L2.  Note, this must NOT be hoisted above
+	 * prepare_vmcs12(), events/exceptions queued for re-injection need to
+	 * be captured in vmcs12 (see vmcs12_save_pending_event()).
+	 */
+	vcpu->arch.nmi_injected = false;
+	kvm_clear_exception_queue(vcpu);
+	kvm_clear_interrupt_queue(vcpu);
+
 	vmx_switch_vmcs(vcpu, &vmx->vmcs01);
 
+	/*
+	 * If IBRS is advertised to the vCPU, KVM must flush the indirect
+	 * branch predictors when transitioning from L2 to L1, as L1 expects
+	 * hardware (KVM in this case) to provide separate predictor modes.
+	 * Bare metal isolates VMX root (host) from VMX non-root (guest), but
+	 * doesn't isolate different VMCSs, i.e. in this case, doesn't provide
+	 * separate modes for L2 vs L1.
+	 */
+	if (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		indirect_branch_prediction_barrier();
+
 	/* Update any VMCS fields that might have changed while L2 ran */
 	vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr);
 	vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, vmx->msr_autoload.guest.nr);
@@ -4147,17 +4178,8 @@
 	vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
 
 	if (likely(!vmx->fail)) {
-		/*
-		 * TODO: SDM says that with acknowledge interrupt on
-		 * exit, bit 31 of the VM-exit interrupt information
-		 * (valid interrupt) is always set to 1 on
-		 * EXIT_REASON_EXTERNAL_INTERRUPT, so we shouldn't
-		 * need kvm_cpu_has_interrupt().  See the commit
-		 * message for details.
-		 */
-		if (nested_exit_intr_ack_set(vcpu) &&
-		    exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT &&
-		    kvm_cpu_has_interrupt(vcpu)) {
+		if (exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT &&
+		    nested_exit_intr_ack_set(vcpu)) {
 			int irq = kvm_cpu_get_interrupt(vcpu);
 			WARN_ON(irq < 0);
 			vmcs12->vm_exit_intr_info = irq |
@@ -4599,32 +4621,28 @@
 {
 	unsigned long field;
 	u64 field_value;
+	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	unsigned long exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
 	u32 vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO);
 	int len;
 	gva_t gva = 0;
-	struct vmcs12 *vmcs12;
+	struct vmcs12 *vmcs12 = is_guest_mode(vcpu) ? get_shadow_vmcs12(vcpu)
+						    : get_vmcs12(vcpu);
 	struct x86_exception e;
 	short offset;
 
 	if (!nested_vmx_check_permission(vcpu))
 		return 1;
 
-	if (to_vmx(vcpu)->nested.current_vmptr == -1ull)
+	/*
+	 * In VMX non-root operation, when the VMCS-link pointer is -1ull,
+	 * any VMREAD sets the ALU flags for VMfailInvalid.
+	 */
+	if (vmx->nested.current_vmptr == -1ull ||
+	    (is_guest_mode(vcpu) &&
+	     get_vmcs12(vcpu)->vmcs_link_pointer == -1ull))
 		return nested_vmx_failInvalid(vcpu);
 
-	if (!is_guest_mode(vcpu))
-		vmcs12 = get_vmcs12(vcpu);
-	else {
-		/*
-		 * When vmcs->vmcs_link_pointer is -1ull, any VMREAD
-		 * to shadowed-field sets the ALU flags for VMfailInvalid.
-		 */
-		if (get_vmcs12(vcpu)->vmcs_link_pointer == -1ull)
-			return nested_vmx_failInvalid(vcpu);
-		vmcs12 = get_shadow_vmcs12(vcpu);
-	}
-
 	/* Decode instruction info and find the field to read */
 	field = kvm_register_readl(vcpu, (((vmx_instruction_info) >> 28) & 0xf));
 
@@ -4653,8 +4671,10 @@
 				vmx_instruction_info, true, len, &gva))
 			return 1;
 		/* _system ok, nested_vmx_check_permission has verified cpl=0 */
-		if (kvm_write_guest_virt_system(vcpu, gva, &field_value, len, &e))
+		if (kvm_write_guest_virt_system(vcpu, gva, &field_value, len, &e)) {
 			kvm_inject_page_fault(vcpu, &e);
+			return 1;
+		}
 	}
 
 	return nested_vmx_succeed(vcpu);
@@ -4701,13 +4721,20 @@
 	 */
 	u64 field_value = 0;
 	struct x86_exception e;
-	struct vmcs12 *vmcs12;
+	struct vmcs12 *vmcs12 = is_guest_mode(vcpu) ? get_shadow_vmcs12(vcpu)
+						    : get_vmcs12(vcpu);
 	short offset;
 
 	if (!nested_vmx_check_permission(vcpu))
 		return 1;
 
-	if (vmx->nested.current_vmptr == -1ull)
+	/*
+	 * In VMX non-root operation, when the VMCS-link pointer is -1ull,
+	 * any VMWRITE sets the ALU flags for VMfailInvalid.
+	 */
+	if (vmx->nested.current_vmptr == -1ull ||
+	    (is_guest_mode(vcpu) &&
+	     get_vmcs12(vcpu)->vmcs_link_pointer == -1ull))
 		return nested_vmx_failInvalid(vcpu);
 
 	if (vmx_instruction_info & (1u << 10))
@@ -4726,6 +4753,12 @@
 
 
 	field = kvm_register_readl(vcpu, (((vmx_instruction_info) >> 28) & 0xf));
+
+	offset = vmcs_field_to_offset(field);
+	if (offset < 0)
+		return nested_vmx_failValid(vcpu,
+			VMXERR_UNSUPPORTED_VMCS_COMPONENT);
+
 	/*
 	 * If the vCPU supports "VMWRITE to any supported field in the
 	 * VMCS," then the "read-only" fields are actually read/write.
@@ -4735,29 +4768,12 @@
 		return nested_vmx_failValid(vcpu,
 			VMXERR_VMWRITE_READ_ONLY_VMCS_COMPONENT);
 
-	if (!is_guest_mode(vcpu)) {
-		vmcs12 = get_vmcs12(vcpu);
-
-		/*
-		 * Ensure vmcs12 is up-to-date before any VMWRITE that dirties
-		 * vmcs12, else we may crush a field or consume a stale value.
-		 */
-		if (!is_shadow_field_rw(field))
-			copy_vmcs02_to_vmcs12_rare(vcpu, vmcs12);
-	} else {
-		/*
-		 * When vmcs->vmcs_link_pointer is -1ull, any VMWRITE
-		 * to shadowed-field sets the ALU flags for VMfailInvalid.
-		 */
-		if (get_vmcs12(vcpu)->vmcs_link_pointer == -1ull)
-			return nested_vmx_failInvalid(vcpu);
-		vmcs12 = get_shadow_vmcs12(vcpu);
-	}
-
-	offset = vmcs_field_to_offset(field);
-	if (offset < 0)
-		return nested_vmx_failValid(vcpu,
-			VMXERR_UNSUPPORTED_VMCS_COMPONENT);
+	/*
+	 * Ensure vmcs12 is up-to-date before any VMWRITE that dirties
+	 * vmcs12, else we may crush a field or consume a stale value.
+	 */
+	if (!is_guest_mode(vcpu) && !is_shadow_field_rw(field))
+		copy_vmcs02_to_vmcs12_rare(vcpu, vmcs12);
 
 	/*
 	 * Some Intel CPUs intentionally drop the reserved bits of the AR byte
@@ -5100,7 +5116,7 @@
 	}
 
 	vmcs12 = get_vmcs12(vcpu);
-	if ((vmcs12->vm_function_control & (1 << function)) == 0)
+	if (!(vmcs12->vm_function_control & BIT_ULL(function)))
 		goto fail;
 
 	switch (function) {
@@ -5120,24 +5136,17 @@
 	return 1;
 }
 
-
-static bool nested_vmx_exit_handled_io(struct kvm_vcpu *vcpu,
-				       struct vmcs12 *vmcs12)
+/*
+ * Return true if an IO instruction with the specified port and size should cause
+ * a VM-exit into L1.
+ */
+bool nested_vmx_check_io_bitmaps(struct kvm_vcpu *vcpu, unsigned int port,
+				 int size)
 {
-	unsigned long exit_qualification;
+	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
 	gpa_t bitmap, last_bitmap;
-	unsigned int port;
-	int size;
 	u8 b;
 
-	if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
-		return nested_cpu_has(vmcs12, CPU_BASED_UNCOND_IO_EXITING);
-
-	exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
-
-	port = exit_qualification >> 16;
-	size = (exit_qualification & 7) + 1;
-
 	last_bitmap = (gpa_t)-1;
 	b = -1;
 
@@ -5164,6 +5173,24 @@
 	return false;
 }
 
+static bool nested_vmx_exit_handled_io(struct kvm_vcpu *vcpu,
+				       struct vmcs12 *vmcs12)
+{
+	unsigned long exit_qualification;
+	unsigned short port;
+	int size;
+
+	if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
+		return nested_cpu_has(vmcs12, CPU_BASED_UNCOND_IO_EXITING);
+
+	exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
+
+	port = exit_qualification >> 16;
+	size = (exit_qualification & 7) + 1;
+
+	return nested_vmx_check_io_bitmaps(vcpu, port, size);
+}
+
 /*
  * Return 1 if we should exit from L2 to L1 to handle an MSR access access,
  * rather than handle it ourselves in L0. I.e., check whether L1 expressed
@@ -5298,7 +5325,7 @@
 
 	/* Decode instruction info and find the field to access */
 	vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO);
-	field = kvm_register_read(vcpu, (((vmx_instruction_info) >> 28) & 0xf));
+	field = kvm_register_readl(vcpu, (((vmx_instruction_info) >> 28) & 0xf));
 
 	/* Out-of-range fields always cause a VM exit from L2 to L1 */
 	if (field >> 15)
@@ -5351,7 +5378,7 @@
 				vmcs_read32(VM_EXIT_INTR_ERROR_CODE),
 				KVM_ISA_VMX);
 
-	switch (exit_reason) {
+	switch ((u16)exit_reason) {
 	case EXIT_REASON_EXCEPTION_NMI:
 		if (is_nmi(intr_info))
 			return false;
@@ -5370,10 +5397,10 @@
 		return false;
 	case EXIT_REASON_TRIPLE_FAULT:
 		return true;
-	case EXIT_REASON_PENDING_INTERRUPT:
-		return nested_cpu_has(vmcs12, CPU_BASED_VIRTUAL_INTR_PENDING);
+	case EXIT_REASON_INTERRUPT_WINDOW:
+		return nested_cpu_has(vmcs12, CPU_BASED_INTR_WINDOW_EXITING);
 	case EXIT_REASON_NMI_WINDOW:
-		return nested_cpu_has(vmcs12, CPU_BASED_VIRTUAL_NMI_PENDING);
+		return nested_cpu_has(vmcs12, CPU_BASED_NMI_WINDOW_EXITING);
 	case EXIT_REASON_TASK_SWITCH:
 		return true;
 	case EXIT_REASON_CPUID:
@@ -5569,11 +5596,14 @@
 	if (is_guest_mode(vcpu)) {
 		sync_vmcs02_to_vmcs12(vcpu, vmcs12);
 		sync_vmcs02_to_vmcs12_rare(vcpu, vmcs12);
-	} else if (!vmx->nested.need_vmcs12_to_shadow_sync) {
-		if (vmx->nested.hv_evmcs)
-			copy_enlightened_to_vmcs12(vmx);
-		else if (enable_shadow_vmcs)
-			copy_shadow_to_vmcs12(vmx);
+	} else  {
+		copy_vmcs02_to_vmcs12_rare(vcpu, get_vmcs12(vcpu));
+		if (!vmx->nested.need_vmcs12_to_shadow_sync) {
+			if (vmx->nested.hv_evmcs)
+				copy_enlightened_to_vmcs12(vmx);
+			else if (enable_shadow_vmcs)
+				copy_shadow_to_vmcs12(vmx);
+		}
 	}
 
 	BUILD_BUG_ON(sizeof(user_vmx_nested_state->vmcs12) < VMCS12_SIZE);
@@ -5784,8 +5814,7 @@
  * bit in the high half is on if the corresponding bit in the control field
  * may be on. See also vmx_control_verify().
  */
-void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
-				bool apicv)
+void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps)
 {
 	/*
 	 * Note that as a general rule, the high half of the MSRs (bits in
@@ -5812,7 +5841,7 @@
 		PIN_BASED_EXT_INTR_MASK |
 		PIN_BASED_NMI_EXITING |
 		PIN_BASED_VIRTUAL_NMIS |
-		(apicv ? PIN_BASED_POSTED_INTR : 0);
+		(enable_apicv ? PIN_BASED_POSTED_INTR : 0);
 	msrs->pinbased_ctls_high |=
 		PIN_BASED_ALWAYSON_WITHOUT_TRUE_MSR |
 		PIN_BASED_VMX_PREEMPTION_TIMER;
@@ -5861,8 +5890,8 @@
 	msrs->procbased_ctls_low =
 		CPU_BASED_ALWAYSON_WITHOUT_TRUE_MSR;
 	msrs->procbased_ctls_high &=
-		CPU_BASED_VIRTUAL_INTR_PENDING |
-		CPU_BASED_VIRTUAL_NMI_PENDING | CPU_BASED_USE_TSC_OFFSETING |
+		CPU_BASED_INTR_WINDOW_EXITING |
+		CPU_BASED_NMI_WINDOW_EXITING | CPU_BASED_USE_TSC_OFFSETTING |
 		CPU_BASED_HLT_EXITING | CPU_BASED_INVLPG_EXITING |
 		CPU_BASED_MWAIT_EXITING | CPU_BASED_CR3_LOAD_EXITING |
 		CPU_BASED_CR3_STORE_EXITING |
@@ -5908,7 +5937,8 @@
 		SECONDARY_EXEC_RDRAND_EXITING |
 		SECONDARY_EXEC_ENABLE_INVPCID |
 		SECONDARY_EXEC_RDSEED_EXITING |
-		SECONDARY_EXEC_XSAVES;
+		SECONDARY_EXEC_XSAVES |
+		SECONDARY_EXEC_ENABLE_USR_WAIT_PAUSE;
 
 	/*
 	 * We can emulate "VMCS shadowing," even if the hardware
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/nested.h
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/nested.h
@@ -17,8 +17,7 @@
 };
 
 void vmx_leave_nested(struct kvm_vcpu *vcpu);
-void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
-				bool apicv);
+void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps);
 void nested_vmx_hardware_unsetup(void);
 __init int nested_vmx_hardware_setup(int (*exit_handlers[])(struct kvm_vcpu *));
 void nested_vmx_vcpu_setup(void);
@@ -33,6 +32,8 @@
 int vmx_get_vmx_msr(struct nested_vmx_msrs *msrs, u32 msr_index, u64 *pdata);
 int get_vmx_mem_address(struct kvm_vcpu *vcpu, unsigned long exit_qualification,
 			u32 vmx_instruction_info, bool wr, int len, gva_t *ret);
+bool nested_vmx_check_io_bitmaps(struct kvm_vcpu *vcpu, unsigned int port,
+				 int size);
 
 static inline struct vmcs12 *get_vmcs12(struct kvm_vcpu *vcpu)
 {
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/ops.h
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/ops.h
@@ -13,6 +13,8 @@
 #define __ex(x) __kvm_handle_fault_on_reboot(x)
 
 asmlinkage void vmread_error(unsigned long field, bool fault);
+__attribute__((regparm(0))) void vmread_error_trampoline(unsigned long field,
+							 bool fault);
 void vmwrite_error(unsigned long field, unsigned long value);
 void vmclear_error(struct vmcs *vmcs, u64 phys_addr);
 void vmptrld_error(struct vmcs *vmcs, u64 phys_addr);
@@ -70,15 +72,28 @@
 	asm volatile("1: vmread %2, %1\n\t"
 		     ".byte 0x3e\n\t" /* branch taken hint */
 		     "ja 3f\n\t"
-		     "mov %2, %%" _ASM_ARG1 "\n\t"
-		     "xor %%" _ASM_ARG2 ", %%" _ASM_ARG2 "\n\t"
-		     "2: call vmread_error\n\t"
-		     "xor %k1, %k1\n\t"
+
+		     /*
+		      * VMREAD failed.  Push '0' for @fault, push the failing
+		      * @field, and bounce through the trampoline to preserve
+		      * volatile registers.
+		      */
+		     "push $0\n\t"
+		     "push %2\n\t"
+		     "2:call vmread_error_trampoline\n\t"
+
+		     /*
+		      * Unwind the stack.  Note, the trampoline zeros out the
+		      * memory for @fault so that the result is '0' on error.
+		      */
+		     "pop %2\n\t"
+		     "pop %1\n\t"
 		     "3:\n\t"
 
+		     /* VMREAD faulted.  As above, except push '1' for @fault. */
 		     ".pushsection .fixup, \"ax\"\n\t"
-		     "4: mov %2, %%" _ASM_ARG1 "\n\t"
-		     "mov $1, %%" _ASM_ARG2 "\n\t"
+		     "4: push $1\n\t"
+		     "push %2\n\t"
 		     "jmp 2b\n\t"
 		     ".popsection\n\t"
 		     _ASM_EXTABLE(1b, 4b)
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/pmu_intel.c
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/pmu_intel.c
@@ -26,7 +26,7 @@
 	[4] = { 0x2e, 0x41, PERF_COUNT_HW_CACHE_MISSES },
 	[5] = { 0xc4, 0x00, PERF_COUNT_HW_BRANCH_INSTRUCTIONS },
 	[6] = { 0xc5, 0x00, PERF_COUNT_HW_BRANCH_MISSES },
-	[7] = { 0x00, 0x30, PERF_COUNT_HW_REF_CPU_CYCLES },
+	[7] = { 0x00, 0x03, PERF_COUNT_HW_REF_CPU_CYCLES },
 };
 
 /* mapping between fixed pmc index and intel_arch_events array */
@@ -64,10 +64,11 @@
 		reprogram_counter(pmu, bit);
 }
 
-static unsigned intel_find_arch_event(struct kvm_pmu *pmu,
-				      u8 event_select,
-				      u8 unit_mask)
+static unsigned int intel_pmc_perf_hw_id(struct kvm_pmc *pmc)
 {
+	struct kvm_pmu *pmu = pmc_to_pmu(pmc);
+	u8 event_select = pmc->eventsel & ARCH_PERFMON_EVENTSEL_EVENT;
+	u8 unit_mask = (pmc->eventsel & ARCH_PERFMON_EVENTSEL_UMASK) >> 8;
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(intel_arch_events); i++)
@@ -84,10 +85,14 @@
 
 static unsigned intel_find_fixed_event(int idx)
 {
-	if (idx >= ARRAY_SIZE(fixed_pmc_events))
+	u32 event;
+	size_t size = ARRAY_SIZE(fixed_pmc_events);
+
+	if (idx >= size)
 		return PERF_COUNT_HW_MAX;
 
-	return intel_arch_events[fixed_pmc_events[idx]].event_type;
+	event = fixed_pmc_events[array_index_nospec(idx, size)];
+	return intel_arch_events[event].event_type;
 }
 
 /* check if a PMC is enabled by comparing it with globl_ctrl bits. */
@@ -128,16 +133,20 @@
 	struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
 	bool fixed = idx & (1u << 30);
 	struct kvm_pmc *counters;
+	unsigned int num_counters;
 
 	idx &= ~(3u << 30);
-	if (!fixed && idx >= pmu->nr_arch_gp_counters)
-		return NULL;
-	if (fixed && idx >= pmu->nr_arch_fixed_counters)
+	if (fixed) {
+		counters = pmu->fixed_counters;
+		num_counters = pmu->nr_arch_fixed_counters;
+	} else {
+		counters = pmu->gp_counters;
+		num_counters = pmu->nr_arch_gp_counters;
+	}
+	if (idx >= num_counters)
 		return NULL;
-	counters = fixed ? pmu->fixed_counters : pmu->gp_counters;
 	*mask &= pmu->counter_bitmask[fixed ? KVM_PMC_FIXED : KVM_PMC_GP];
-
-	return &counters[idx];
+	return &counters[array_index_nospec(idx, num_counters)];
 }
 
 static bool intel_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr)
@@ -288,7 +297,9 @@
 
 	pmu->nr_arch_gp_counters = min_t(int, eax.split.num_counters,
 					 x86_pmu.num_counters_gp);
+	eax.split.bit_width = min_t(int, eax.split.bit_width, x86_pmu.bit_width_gp);
 	pmu->counter_bitmask[KVM_PMC_GP] = ((u64)1 << eax.split.bit_width) - 1;
+	eax.split.mask_length = min_t(int, eax.split.mask_length, x86_pmu.events_mask_len);
 	pmu->available_event_types = ~entry->ebx &
 					((1ull << eax.split.mask_length) - 1);
 
@@ -298,6 +309,8 @@
 		pmu->nr_arch_fixed_counters =
 			min_t(int, edx.split.num_counters_fixed,
 			      x86_pmu.num_counters_fixed);
+		edx.split.bit_width_fixed = min_t(int,
+			edx.split.bit_width_fixed, x86_pmu.bit_width_fixed);
 		pmu->counter_bitmask[KVM_PMC_FIXED] =
 			((u64)1 << edx.split.bit_width_fixed) - 1;
 	}
@@ -362,7 +375,7 @@
 }
 
 struct kvm_pmu_ops intel_pmu_ops = {
-	.find_arch_event = intel_find_arch_event,
+	.pmc_perf_hw_id = intel_pmc_perf_hw_id,
 	.find_fixed_event = intel_find_fixed_event,
 	.pmc_is_enabled = intel_pmc_is_enabled,
 	.pmc_idx_to_pmc = intel_pmc_idx_to_pmc,
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/run_flags.h
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/run_flags.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __KVM_X86_VMX_RUN_FLAGS_H
+#define __KVM_X86_VMX_RUN_FLAGS_H
+
+#define VMX_RUN_VMRESUME	(1 << 0)
+#define VMX_RUN_SAVE_SPEC_CTRL	(1 << 1)
+
+#endif /* __KVM_X86_VMX_RUN_FLAGS_H */
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/vmenter.S
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/vmenter.S
@@ -4,6 +4,7 @@
 #include <asm/bitsperlong.h>
 #include <asm/kvm_vcpu_regs.h>
 #include <asm/nospec-branch.h>
+#include "run_flags.h"
 
 #define WORD_SIZE (BITS_PER_LONG / 8)
 
@@ -30,73 +31,11 @@
 	.text
 
 /**
- * vmx_vmenter - VM-Enter the current loaded VMCS
- *
- * %RFLAGS.ZF:	!VMCS.LAUNCHED, i.e. controls VMLAUNCH vs. VMRESUME
- *
- * Returns:
- *	%RFLAGS.CF is set on VM-Fail Invalid
- *	%RFLAGS.ZF is set on VM-Fail Valid
- *	%RFLAGS.{CF,ZF} are cleared on VM-Success, i.e. VM-Exit
- *
- * Note that VMRESUME/VMLAUNCH fall-through and return directly if
- * they VM-Fail, whereas a successful VM-Enter + VM-Exit will jump
- * to vmx_vmexit.
- */
-ENTRY(vmx_vmenter)
-	/* EFLAGS.ZF is set if VMCS.LAUNCHED == 0 */
-	je 2f
-
-1:	vmresume
-	ret
-
-2:	vmlaunch
-	ret
-
-3:	cmpb $0, kvm_rebooting
-	je 4f
-	ret
-4:	ud2
-
-	.pushsection .fixup, "ax"
-5:	jmp 3b
-	.popsection
-
-	_ASM_EXTABLE(1b, 5b)
-	_ASM_EXTABLE(2b, 5b)
-
-ENDPROC(vmx_vmenter)
-
-/**
- * vmx_vmexit - Handle a VMX VM-Exit
- *
- * Returns:
- *	%RFLAGS.{CF,ZF} are cleared on VM-Success, i.e. VM-Exit
- *
- * This is vmx_vmenter's partner in crime.  On a VM-Exit, control will jump
- * here after hardware loads the host's state, i.e. this is the destination
- * referred to by VMCS.HOST_RIP.
- */
-ENTRY(vmx_vmexit)
-#ifdef CONFIG_RETPOLINE
-	ALTERNATIVE "jmp .Lvmexit_skip_rsb", "", X86_FEATURE_RETPOLINE
-	/* Preserve guest's RAX, it's used to stuff the RSB. */
-	push %_ASM_AX
-
-	/* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */
-	FILL_RETURN_BUFFER %_ASM_AX, RSB_CLEAR_LOOPS, X86_FEATURE_RETPOLINE
-
-	pop %_ASM_AX
-.Lvmexit_skip_rsb:
-#endif
-	ret
-ENDPROC(vmx_vmexit)
-
-/**
  * __vmx_vcpu_run - Run a vCPU via a transition to VMX guest mode
- * @vmx:	struct vcpu_vmx * (forwarded to vmx_update_host_rsp)
+ * @vmx:	struct vcpu_vmx *
  * @regs:	unsigned long * (to guest registers)
- * @launched:	%true if the VMCS has been launched
+ * @flags:	VMX_RUN_VMRESUME:	use VMRESUME instead of VMLAUNCH
+ *		VMX_RUN_SAVE_SPEC_CTRL: save guest SPEC_CTRL into vmx->spec_ctrl
  *
  * Returns:
  *	0 on VM-Exit, 1 on VM-Fail
@@ -115,24 +54,29 @@
 #endif
 	push %_ASM_BX
 
+	/* Save @vmx for SPEC_CTRL handling */
+	push %_ASM_ARG1
+
+	/* Save @flags for SPEC_CTRL handling */
+	push %_ASM_ARG3
+
 	/*
 	 * Save @regs, _ASM_ARG2 may be modified by vmx_update_host_rsp() and
 	 * @regs is needed after VM-Exit to save the guest's register values.
 	 */
 	push %_ASM_ARG2
 
-	/* Copy @launched to BL, _ASM_ARG3 is volatile. */
+	/* Copy @flags to BL, _ASM_ARG3 is volatile. */
 	mov %_ASM_ARG3B, %bl
 
-	/* Adjust RSP to account for the CALL to vmx_vmenter(). */
-	lea -WORD_SIZE(%_ASM_SP), %_ASM_ARG2
+	lea (%_ASM_SP), %_ASM_ARG2
 	call vmx_update_host_rsp
 
 	/* Load @regs to RAX. */
 	mov (%_ASM_SP), %_ASM_AX
 
 	/* Check if vmlaunch or vmresume is needed */
-	cmpb $0, %bl
+	testb $VMX_RUN_VMRESUME, %bl
 
 	/* Load guest registers.  Don't clobber flags. */
 	mov VCPU_RBX(%_ASM_AX), %_ASM_BX
@@ -154,11 +98,25 @@
 	/* Load guest RAX.  This kills the @regs pointer! */
 	mov VCPU_RAX(%_ASM_AX), %_ASM_AX
 
-	/* Enter guest mode */
-	call vmx_vmenter
+	/* Check EFLAGS.ZF from 'testb' above */
+	jz .Lvmlaunch
+
+/*
+ * If VMRESUME/VMLAUNCH and corresponding vmexit succeed, execution resumes at
+ * the 'vmx_vmexit' label below.
+ */
+.Lvmresume:
+	vmresume
+	jmp .Lvmfail
+
+.Lvmlaunch:
+	vmlaunch
+	jmp .Lvmfail
+
+	_ASM_EXTABLE(.Lvmresume, .Lfixup)
+	_ASM_EXTABLE(.Lvmlaunch, .Lfixup)
 
-	/* Jump on VM-Fail. */
-	jbe 2f
+SYM_INNER_LABEL(vmx_vmexit, SYM_L_GLOBAL)
 
 	/* Temporarily save guest's RAX. */
 	push %_ASM_AX
@@ -185,19 +143,21 @@
 	mov %r15, VCPU_R15(%_ASM_AX)
 #endif
 
-	/* Clear RAX to indicate VM-Exit (as opposed to VM-Fail). */
-	xor %eax, %eax
+	/* Clear return value to indicate VM-Exit (as opposed to VM-Fail). */
+	xor %ebx, %ebx
 
+.Lclear_regs:
 	/*
-	 * Clear all general purpose registers except RSP and RAX to prevent
+	 * Clear all general purpose registers except RSP and RBX to prevent
 	 * speculative use of the guest's values, even those that are reloaded
 	 * via the stack.  In theory, an L1 cache miss when restoring registers
 	 * could lead to speculative execution with the guest's values.
 	 * Zeroing XORs are dirt cheap, i.e. the extra paranoia is essentially
 	 * free.  RSP and RAX are exempt as RSP is restored by hardware during
-	 * VM-Exit and RAX is explicitly loaded with 0 or 1 to return VM-Fail.
+	 * VM-Exit and RBX is explicitly loaded with 0 or 1 to hold the return
+	 * value.
 	 */
-1:	xor %ebx, %ebx
+	xor %eax, %eax
 	xor %ecx, %ecx
 	xor %edx, %edx
 	xor %esi, %esi
@@ -216,8 +176,32 @@
 
 	/* "POP" @regs. */
 	add $WORD_SIZE, %_ASM_SP
-	pop %_ASM_BX
 
+	/*
+	 * IMPORTANT: RSB filling and SPEC_CTRL handling must be done before
+	 * the first unbalanced RET after vmexit!
+	 *
+	 * For retpoline or IBRS, RSB filling is needed to prevent poisoned RSB
+	 * entries and (in some cases) RSB underflow.
+	 *
+	 * eIBRS has its own protection against poisoned RSB, so it doesn't
+	 * need the RSB filling sequence.  But it does need to be enabled, and a
+	 * single call to retire, before the first unbalanced RET.
+         */
+
+	FILL_RETURN_BUFFER %_ASM_CX, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_VMEXIT,\
+			   X86_FEATURE_RSB_VMEXIT_LITE
+
+
+	pop %_ASM_ARG2	/* @flags */
+	pop %_ASM_ARG1	/* @vmx */
+
+	call vmx_spec_ctrl_restore_host
+
+	/* Put return value in AX */
+	mov %_ASM_BX, %_ASM_AX
+
+	pop %_ASM_BX
 #ifdef CONFIG_X86_64
 	pop %r12
 	pop %r13
@@ -230,7 +214,74 @@
 	pop %_ASM_BP
 	ret
 
-	/* VM-Fail.  Out-of-line to avoid a taken Jcc after VM-Exit. */
-2:	mov $1, %eax
-	jmp 1b
+.Lfixup:
+	cmpb $0, kvm_rebooting
+	jne .Lvmfail
+	ud2
+.Lvmfail:
+	/* VM-Fail: set return value to 1 */
+	mov $1, %_ASM_BX
+	jmp .Lclear_regs
+
 ENDPROC(__vmx_vcpu_run)
+
+
+.section .text, "ax"
+
+/**
+ * vmread_error_trampoline - Trampoline from inline asm to vmread_error()
+ * @field:	VMCS field encoding that failed
+ * @fault:	%true if the VMREAD faulted, %false if it failed
+
+ * Save and restore volatile registers across a call to vmread_error().  Note,
+ * all parameters are passed on the stack.
+ */
+ENTRY(vmread_error_trampoline)
+	push %_ASM_BP
+	mov  %_ASM_SP, %_ASM_BP
+
+	push %_ASM_AX
+	push %_ASM_CX
+	push %_ASM_DX
+#ifdef CONFIG_X86_64
+	push %rdi
+	push %rsi
+	push %r8
+	push %r9
+	push %r10
+	push %r11
+#endif
+#ifdef CONFIG_X86_64
+	/* Load @field and @fault to arg1 and arg2 respectively. */
+	mov 3*WORD_SIZE(%rbp), %_ASM_ARG2
+	mov 2*WORD_SIZE(%rbp), %_ASM_ARG1
+#else
+	/* Parameters are passed on the stack for 32-bit (see asmlinkage). */
+	push 3*WORD_SIZE(%ebp)
+	push 2*WORD_SIZE(%ebp)
+#endif
+
+	call vmread_error
+
+#ifndef CONFIG_X86_64
+	add $8, %esp
+#endif
+
+	/* Zero out @fault, which will be popped into the result register. */
+	_ASM_MOV $0, 3*WORD_SIZE(%_ASM_BP)
+
+#ifdef CONFIG_X86_64
+	pop %r11
+	pop %r10
+	pop %r9
+	pop %r8
+	pop %rsi
+	pop %rdi
+#endif
+	pop %_ASM_DX
+	pop %_ASM_CX
+	pop %_ASM_AX
+	pop %_ASM_BP
+
+	ret
+ENDPROC(vmread_error_trampoline)
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/vmx.c
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/vmx.c
@@ -31,6 +31,7 @@
 #include <asm/apic.h>
 #include <asm/asm.h>
 #include <asm/cpu.h>
+#include <asm/cpu_device_id.h>
 #include <asm/debugreg.h>
 #include <asm/desc.h>
 #include <asm/fpu/internal.h>
@@ -95,7 +96,7 @@
 static bool __read_mostly fasteoi = 1;
 module_param(fasteoi, bool, S_IRUGO);
 
-static bool __read_mostly enable_apicv = 1;
+bool __read_mostly enable_apicv = 1;
 module_param(enable_apicv, bool, S_IRUGO);
 
 /*
@@ -204,6 +205,9 @@
 #define L1D_CACHE_ORDER 4
 static void *vmx_l1d_flush_pages;
 
+/* Control for disabling CPU Fill buffer clear */
+static bool __read_mostly vmx_fb_clear_ctrl_available;
+
 static int vmx_setup_l1d_flush(enum vmx_l1d_flush_state l1tf)
 {
 	struct page *page;
@@ -335,6 +339,60 @@
 	return sprintf(s, "%s\n", vmentry_l1d_param[l1tf_vmx_mitigation].option);
 }
 
+static void vmx_setup_fb_clear_ctrl(void)
+{
+	u64 msr;
+
+	if (boot_cpu_has(X86_FEATURE_ARCH_CAPABILITIES) &&
+	    !boot_cpu_has_bug(X86_BUG_MDS) &&
+	    !boot_cpu_has_bug(X86_BUG_TAA)) {
+		rdmsrl(MSR_IA32_ARCH_CAPABILITIES, msr);
+		if (msr & ARCH_CAP_FB_CLEAR_CTRL)
+			vmx_fb_clear_ctrl_available = true;
+	}
+}
+
+static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
+{
+	u64 msr;
+
+	if (!vmx->disable_fb_clear)
+		return;
+
+	msr = __rdmsr(MSR_IA32_MCU_OPT_CTRL);
+	msr |= FB_CLEAR_DIS;
+	native_wrmsrl(MSR_IA32_MCU_OPT_CTRL, msr);
+	/* Cache the MSR value to avoid reading it later */
+	vmx->msr_ia32_mcu_opt_ctrl = msr;
+}
+
+static __always_inline void vmx_enable_fb_clear(struct vcpu_vmx *vmx)
+{
+	if (!vmx->disable_fb_clear)
+		return;
+
+	vmx->msr_ia32_mcu_opt_ctrl &= ~FB_CLEAR_DIS;
+	native_wrmsrl(MSR_IA32_MCU_OPT_CTRL, vmx->msr_ia32_mcu_opt_ctrl);
+}
+
+static void vmx_update_fb_clear_dis(struct kvm_vcpu *vcpu, struct vcpu_vmx *vmx)
+{
+	vmx->disable_fb_clear = vmx_fb_clear_ctrl_available;
+
+	/*
+	 * If guest will not execute VERW, there is no need to set FB_CLEAR_DIS
+	 * at VMEntry. Skip the MSR read/write when a guest has no use case to
+	 * execute VERW.
+	 */
+	if ((vcpu->arch.arch_capabilities & ARCH_CAP_FB_CLEAR) ||
+	   ((vcpu->arch.arch_capabilities & ARCH_CAP_MDS_NO) &&
+	    (vcpu->arch.arch_capabilities & ARCH_CAP_TAA_NO) &&
+	    (vcpu->arch.arch_capabilities & ARCH_CAP_PSDP_NO) &&
+	    (vcpu->arch.arch_capabilities & ARCH_CAP_FBSDP_NO) &&
+	    (vcpu->arch.arch_capabilities & ARCH_CAP_SBDR_SSDP_NO)))
+		vmx->disable_fb_clear = false;
+}
+
 static const struct kernel_param_ops vmentry_l1d_flush_ops = {
 	.set = vmentry_l1d_flush_set,
 	.get = vmentry_l1d_flush_get,
@@ -648,43 +706,15 @@
 }
 
 #ifdef CONFIG_KEXEC_CORE
-/*
- * This bitmap is used to indicate whether the vmclear
- * operation is enabled on all cpus. All disabled by
- * default.
- */
-static cpumask_t crash_vmclear_enabled_bitmap = CPU_MASK_NONE;
-
-static inline void crash_enable_local_vmclear(int cpu)
-{
-	cpumask_set_cpu(cpu, &crash_vmclear_enabled_bitmap);
-}
-
-static inline void crash_disable_local_vmclear(int cpu)
-{
-	cpumask_clear_cpu(cpu, &crash_vmclear_enabled_bitmap);
-}
-
-static inline int crash_local_vmclear_enabled(int cpu)
-{
-	return cpumask_test_cpu(cpu, &crash_vmclear_enabled_bitmap);
-}
-
 static void crash_vmclear_local_loaded_vmcss(void)
 {
 	int cpu = raw_smp_processor_id();
 	struct loaded_vmcs *v;
 
-	if (!crash_local_vmclear_enabled(cpu))
-		return;
-
 	list_for_each_entry(v, &per_cpu(loaded_vmcss_on_cpu, cpu),
 			    loaded_vmcss_on_cpu_link)
 		vmcs_clear(v->vmcs);
 }
-#else
-static inline void crash_enable_local_vmclear(int cpu) { }
-static inline void crash_disable_local_vmclear(int cpu) { }
 #endif /* CONFIG_KEXEC_CORE */
 
 static void __loaded_vmcs_clear(void *arg)
@@ -696,19 +726,24 @@
 		return; /* vcpu migration can race with cpu offline */
 	if (per_cpu(current_vmcs, cpu) == loaded_vmcs->vmcs)
 		per_cpu(current_vmcs, cpu) = NULL;
-	crash_disable_local_vmclear(cpu);
+
+	vmcs_clear(loaded_vmcs->vmcs);
+	if (loaded_vmcs->shadow_vmcs && loaded_vmcs->launched)
+		vmcs_clear(loaded_vmcs->shadow_vmcs);
+
 	list_del(&loaded_vmcs->loaded_vmcss_on_cpu_link);
 
 	/*
-	 * we should ensure updating loaded_vmcs->loaded_vmcss_on_cpu_link
-	 * is before setting loaded_vmcs->vcpu to -1 which is done in
-	 * loaded_vmcs_init. Otherwise, other cpu can see vcpu = -1 fist
-	 * then adds the vmcs into percpu list before it is deleted.
+	 * Ensure all writes to loaded_vmcs, including deleting it from its
+	 * current percpu list, complete before setting loaded_vmcs->vcpu to
+	 * -1, otherwise a different cpu can see vcpu == -1 first and add
+	 * loaded_vmcs to its percpu list before it's deleted from this cpu's
+	 * list. Pairs with the smp_rmb() in vmx_vcpu_load_vmcs().
 	 */
 	smp_wmb();
 
-	loaded_vmcs_init(loaded_vmcs);
-	crash_enable_local_vmclear(cpu);
+	loaded_vmcs->cpu = -1;
+	loaded_vmcs->launched = 0;
 }
 
 void loaded_vmcs_clear(struct loaded_vmcs *loaded_vmcs)
@@ -808,15 +843,15 @@
 /*
  * Check if MSR is intercepted for currently loaded MSR bitmap.
  */
-static bool msr_write_intercepted(struct kvm_vcpu *vcpu, u32 msr)
+static bool msr_write_intercepted(struct vcpu_vmx *vmx, u32 msr)
 {
 	unsigned long *msr_bitmap;
 	int f = sizeof(unsigned long);
 
-	if (!cpu_has_vmx_msr_bitmap())
+	if (!(exec_controls_get(vmx) & CPU_BASED_USE_MSR_BITMAPS))
 		return true;
 
-	msr_bitmap = to_vmx(vcpu)->loaded_vmcs->msr_bitmap;
+	msr_bitmap = vmx->loaded_vmcs->msr_bitmap;
 
 	if (msr <= 0x1fff) {
 		return !!test_bit(msr, msr_bitmap + 0x800 / f);
@@ -828,6 +863,24 @@
 	return true;
 }
 
+unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx)
+{
+	unsigned int flags = 0;
+
+	if (vmx->loaded_vmcs->launched)
+		flags |= VMX_RUN_VMRESUME;
+
+	/*
+	 * If writes to the SPEC_CTRL MSR aren't intercepted, the guest is free
+	 * to change it directly without causing a vmexit.  In that case read
+	 * it after vmexit and store it in vmx->spec_ctrl.
+	 */
+	if (unlikely(!msr_write_intercepted(vmx, MSR_IA32_SPEC_CTRL)))
+		flags |= VMX_RUN_SAVE_SPEC_CTRL;
+
+	return flags;
+}
+
 static void clear_atomic_switch_msr_special(struct vcpu_vmx *vmx,
 		unsigned long entry, unsigned long exit)
 {
@@ -1153,6 +1206,10 @@
 					   vmx->guest_msrs[i].mask);
 
 	}
+
+    	if (vmx->nested.need_vmcs12_to_shadow_sync)
+		nested_sync_vmcs12_to_shadow(vcpu);
+
 	if (vmx->guest_state_loaded)
 		return;
 
@@ -1309,33 +1366,44 @@
 		pi_set_on(pi_desc);
 }
 
-void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu)
+void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu,
+			struct loaded_vmcs *buddy)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	bool already_loaded = vmx->loaded_vmcs->cpu == cpu;
+	struct vmcs *prev;
 
 	if (!already_loaded) {
 		loaded_vmcs_clear(vmx->loaded_vmcs);
 		local_irq_disable();
-		crash_disable_local_vmclear(cpu);
 
 		/*
-		 * Read loaded_vmcs->cpu should be before fetching
-		 * loaded_vmcs->loaded_vmcss_on_cpu_link.
-		 * See the comments in __loaded_vmcs_clear().
+		 * Ensure loaded_vmcs->cpu is read before adding loaded_vmcs to
+		 * this cpu's percpu list, otherwise it may not yet be deleted
+		 * from its previous cpu's percpu list.  Pairs with the
+		 * smb_wmb() in __loaded_vmcs_clear().
 		 */
 		smp_rmb();
 
 		list_add(&vmx->loaded_vmcs->loaded_vmcss_on_cpu_link,
 			 &per_cpu(loaded_vmcss_on_cpu, cpu));
-		crash_enable_local_vmclear(cpu);
 		local_irq_enable();
 	}
 
-	if (per_cpu(current_vmcs, cpu) != vmx->loaded_vmcs->vmcs) {
+	prev = per_cpu(current_vmcs, cpu);
+	if (prev != vmx->loaded_vmcs->vmcs) {
 		per_cpu(current_vmcs, cpu) = vmx->loaded_vmcs->vmcs;
 		vmcs_load(vmx->loaded_vmcs->vmcs);
-		indirect_branch_prediction_barrier();
+
+		/*
+		 * No indirect branch prediction barrier needed when switching
+		 * the active VMCS within a vCPU, unless IBRS is advertised to
+		 * the vCPU.  To minimize the number of IBPBs executed, KVM
+		 * performs IBPB on nested VM-Exit (a single nested transition
+		 * may switch the active VMCS multiple times).
+		 */
+		if (!buddy || WARN_ON_ONCE(buddy->vmcs != prev))
+			indirect_branch_prediction_barrier();
 	}
 
 	if (!already_loaded) {
@@ -1380,11 +1448,10 @@
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 
-	vmx_vcpu_load_vmcs(vcpu, cpu);
+	vmx_vcpu_load_vmcs(vcpu, cpu, NULL);
 
 	vmx_vcpu_pi_load(vcpu, cpu);
 
-	vmx->host_pkru = read_pkru();
 	vmx->host_debugctlmsr = get_debugctlmsr();
 }
 
@@ -1552,7 +1619,7 @@
 
 static int skip_emulated_instruction(struct kvm_vcpu *vcpu)
 {
-	unsigned long rip;
+	unsigned long rip, orig_rip;
 
 	/*
 	 * Using VMCS.VM_EXIT_INSTRUCTION_LEN on EPT misconfig depends on
@@ -1564,8 +1631,17 @@
 	 */
 	if (!static_cpu_has(X86_FEATURE_HYPERVISOR) ||
 	    to_vmx(vcpu)->exit_reason != EXIT_REASON_EPT_MISCONFIG) {
-		rip = kvm_rip_read(vcpu);
-		rip += vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+		orig_rip = kvm_rip_read(vcpu);
+		rip = orig_rip + vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
+#ifdef CONFIG_X86_64
+		/*
+		 * We need to mask out the high 32 bits of RIP if not in 64-bit
+		 * mode, but just finding out that we are in 64-bit mode is
+		 * quite expensive.  Only do it if there was a carry.
+		 */
+		if (unlikely(((rip ^ orig_rip) >> 31) == 3) && !is_64_bit_mode(vcpu))
+			rip = (u32)rip;
+#endif
 		kvm_rip_write(vcpu, rip);
 	} else {
 		if (!kvm_emulate_instruction(vcpu, EMULTYPE_SKIP))
@@ -1602,7 +1678,17 @@
 	kvm_deliver_exception_payload(vcpu);
 
 	if (has_error_code) {
-		vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, error_code);
+		/*
+		 * Despite the error code being architecturally defined as 32
+		 * bits, and the VMCS field being 32 bits, Intel CPUs and thus
+		 * VMX don't actually supporting setting bits 31:16.  Hardware
+		 * will (should) never provide a bogus error code, but AMD CPUs
+		 * do generate error codes with bits 31:16 set, and so KVM's
+		 * ABI lets userspace shove in arbitrary 32-bit values.  Drop
+		 * the upper bits to avoid VM-Fail, losing information that
+		 * does't really exist is preferable to killing the VM.
+		 */
+		vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, (u16)error_code);
 		intr_info |= INTR_INFO_DELIVER_CODE_MASK;
 	}
 
@@ -1696,7 +1782,7 @@
 	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
 
 	if (is_guest_mode(vcpu) &&
-	    (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETING))
+	    (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETTING))
 		return vcpu->arch.tsc_offset - vmcs12->tsc_offset;
 
 	return vcpu->arch.tsc_offset;
@@ -1714,7 +1800,7 @@
 	 * to the newly set TSC to get L2's TSC.
 	 */
 	if (is_guest_mode(vcpu) &&
-	    (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETING))
+	    (vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_TSC_OFFSETTING))
 		g_tsc_offset = vmcs12->tsc_offset;
 
 	trace_kvm_write_tsc_offset(vcpu->vcpu_id,
@@ -1790,7 +1876,7 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
 		msr_info->data = to_vmx(vcpu)->spec_ctrl;
@@ -1973,15 +2059,13 @@
 		break;
 	case MSR_IA32_SPEC_CTRL:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		    !guest_has_spec_ctrl_msr(vcpu))
 			return 1;
 
-		/* The STIBP bit doesn't fault even if it's not advertised */
-		if (data & ~(SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD))
+		if (kvm_spec_ctrl_test_value(data))
 			return 1;
 
 		vmx->spec_ctrl = data;
-
 		if (!data)
 			break;
 
@@ -2003,12 +2087,13 @@
 		break;
 	case MSR_IA32_PRED_CMD:
 		if (!msr_info->host_initiated &&
-		    !guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL))
+		    !guest_has_pred_cmd_msr(vcpu))
 			return 1;
 
 		if (data & ~PRED_CMD_IBPB)
 			return 1;
-
+		if (!boot_cpu_has(X86_FEATURE_IBPB))
+			return 1;
 		if (!data)
 			break;
 
@@ -2140,6 +2225,8 @@
 			(index >= 2 * intel_pt_validate_cap(vmx->pt_desc.caps,
 					PT_CAP_num_address_ranges)))
 			return 1;
+		if (is_noncanonical_address(data, vcpu))
+			return 1;
 		if (index % 2)
 			vmx->pt_desc.guest.addr_b[index / 2] = data;
 		else
@@ -2168,9 +2255,13 @@
 			}
 			break;
 		}
-		ret = kvm_set_msr_common(vcpu, msr_info);
+			ret = kvm_set_msr_common(vcpu, msr_info);
 	}
 
+	/* FB_CLEAR may have changed, also update the FB_CLEAR_DIS behavior */
+	if (msr_index == MSR_IA32_ARCH_CAPABILITIES)
+		vmx_update_fb_clear_dis(vcpu, vmx);
+
 	return ret;
 }
 
@@ -2250,21 +2341,6 @@
 	    !hv_get_vp_assist_page(cpu))
 		return -EFAULT;
 
-	INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu));
-	INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
-	spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
-
-	/*
-	 * Now we can enable the vmclear operation in kdump
-	 * since the loaded_vmcss_on_cpu list on this cpu
-	 * has been initialized.
-	 *
-	 * Though the cpu is not in VMX operation now, there
-	 * is no problem to enable the vmclear operation
-	 * for the loaded_vmcss_on_cpu list is empty!
-	 */
-	crash_enable_local_vmclear(cpu);
-
 	rdmsrl(MSR_IA32_FEATURE_CONTROL, old);
 
 	test_bits = FEATURE_CONTROL_LOCKED;
@@ -2351,7 +2427,7 @@
 	      CPU_BASED_CR3_STORE_EXITING |
 	      CPU_BASED_UNCOND_IO_EXITING |
 	      CPU_BASED_MOV_DR_EXITING |
-	      CPU_BASED_USE_TSC_OFFSETING |
+	      CPU_BASED_USE_TSC_OFFSETTING |
 	      CPU_BASED_MWAIT_EXITING |
 	      CPU_BASED_MONITOR_EXITING |
 	      CPU_BASED_INVLPG_EXITING |
@@ -2521,8 +2597,10 @@
 	vmcs_conf->vmexit_ctrl         = _vmexit_control;
 	vmcs_conf->vmentry_ctrl        = _vmentry_control;
 
-	if (static_branch_unlikely(&enable_evmcs))
+#if IS_ENABLED(CONFIG_HYPERV)
+	if (enlightened_vmcs)
 		evmcs_sanitize_exec_ctrls(vmcs_conf);
+#endif
 
 	return 0;
 }
@@ -2973,6 +3051,9 @@
 
 static int get_ept_level(struct kvm_vcpu *vcpu)
 {
+	/* Nested EPT currently only supports 4-level walks. */
+	if (is_guest_mode(vcpu) && nested_cpu_has_ept(get_vmcs12(vcpu)))
+		return 4;
 	if (cpu_has_vmx_ept_5levels() && (cpuid_maxphyaddr(vcpu) > 48))
 		return 5;
 	return 4;
@@ -2995,6 +3076,7 @@
 void vmx_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
 {
 	struct kvm *kvm = vcpu->kvm;
+	bool update_guest_cr3 = true;
 	unsigned long guest_cr3;
 	u64 eptp;
 
@@ -3011,15 +3093,18 @@
 			spin_unlock(&to_kvm_vmx(kvm)->ept_pointer_lock);
 		}
 
-		if (enable_unrestricted_guest || is_paging(vcpu) ||
-		    is_guest_mode(vcpu))
+		/* Loading vmcs02.GUEST_CR3 is handled by nested VM-Enter. */
+		if (is_guest_mode(vcpu))
+			update_guest_cr3 = false;
+		else if (enable_unrestricted_guest || is_paging(vcpu))
 			guest_cr3 = kvm_read_cr3(vcpu);
 		else
 			guest_cr3 = to_kvm_vmx(kvm)->ept_identity_map_addr;
 		ept_load_pdptrs(vcpu);
 	}
 
-	vmcs_writel(GUEST_CR3, guest_cr3);
+	if (update_guest_cr3)
+		vmcs_writel(GUEST_CR3, guest_cr3);
 }
 
 int vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
@@ -3160,18 +3245,15 @@
 {
 	u32 ar;
 
-	if (var->unusable || !var->present)
-		ar = 1 << 16;
-	else {
-		ar = var->type & 15;
-		ar |= (var->s & 1) << 4;
-		ar |= (var->dpl & 3) << 5;
-		ar |= (var->present & 1) << 7;
-		ar |= (var->avl & 1) << 12;
-		ar |= (var->l & 1) << 13;
-		ar |= (var->db & 1) << 14;
-		ar |= (var->g & 1) << 15;
-	}
+	ar = var->type & 15;
+	ar |= (var->s & 1) << 4;
+	ar |= (var->dpl & 3) << 5;
+	ar |= (var->present & 1) << 7;
+	ar |= (var->avl & 1) << 12;
+	ar |= (var->l & 1) << 13;
+	ar |= (var->db & 1) << 14;
+	ar |= (var->g & 1) << 15;
+	ar |= (var->unusable || !var->present) << 16;
 
 	return ar;
 }
@@ -3844,24 +3926,29 @@
  * 2. If target vcpu isn't running(root mode), kick it to pick up the
  * interrupt from PIR in next vmentry.
  */
-static void vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
+static int vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
 	int r;
 
 	r = vmx_deliver_nested_posted_interrupt(vcpu, vector);
 	if (!r)
-		return;
+		return 0;
+
+	if (!vcpu->arch.apicv_active)
+		return -1;
 
 	if (pi_test_and_set_pir(vector, &vmx->pi_desc))
-		return;
+		return 0;
 
 	/* If a previous notification has sent the IPI, nothing to do.  */
 	if (pi_test_and_set_on(&vmx->pi_desc))
-		return;
+		return 0;
 
 	if (!kvm_vcpu_trigger_posted_interrupt(vcpu, false))
 		kvm_vcpu_kick(vcpu);
+
+	return 0;
 }
 
 /*
@@ -3929,6 +4016,8 @@
 
 void set_cr4_guest_host_mask(struct vcpu_vmx *vmx)
 {
+	BUILD_BUG_ON(KVM_CR4_GUEST_OWNED_BITS & ~KVM_POSSIBLE_CR4_GUEST_BITS);
+
 	vmx->vcpu.arch.cr4_guest_owned_bits = KVM_CR4_GUEST_OWNED_BITS;
 	if (enable_ept)
 		vmx->vcpu.arch.cr4_guest_owned_bits |= X86_CR4_PGE;
@@ -4364,11 +4453,13 @@
 	vpid_sync_context(vmx->vpid);
 	if (init_event)
 		vmx_clear_hlt(vcpu);
+
+	vmx_update_fb_clear_dis(vcpu, vmx);
 }
 
 static void enable_irq_window(struct kvm_vcpu *vcpu)
 {
-	exec_controls_setbit(to_vmx(vcpu), CPU_BASED_VIRTUAL_INTR_PENDING);
+	exec_controls_setbit(to_vmx(vcpu), CPU_BASED_INTR_WINDOW_EXITING);
 }
 
 static void enable_nmi_window(struct kvm_vcpu *vcpu)
@@ -4379,7 +4470,7 @@
 		return;
 	}
 
-	exec_controls_setbit(to_vmx(vcpu), CPU_BASED_VIRTUAL_NMI_PENDING);
+	exec_controls_setbit(to_vmx(vcpu), CPU_BASED_NMI_WINDOW_EXITING);
 }
 
 static void vmx_inject_irq(struct kvm_vcpu *vcpu)
@@ -4491,8 +4582,13 @@
 
 static int vmx_interrupt_allowed(struct kvm_vcpu *vcpu)
 {
-	return (!to_vmx(vcpu)->nested.nested_run_pending &&
-		vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) &&
+	if (to_vmx(vcpu)->nested.nested_run_pending)
+		return false;
+
+	if (is_guest_mode(vcpu) && nested_exit_on_intr(vcpu))
+		return true;
+
+	return (vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) &&
 		!(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) &
 			(GUEST_INTR_STATE_STI | GUEST_INTR_STATE_MOV_SS));
 }
@@ -4586,7 +4682,7 @@
  */
 static void kvm_machine_check(void)
 {
-#if defined(CONFIG_X86_MCE) && defined(CONFIG_X86_64)
+#if defined(CONFIG_X86_MCE)
 	struct pt_regs regs = {
 		.cs = 3, /* Fake ring 3 no matter what the guest ran on */
 		.flags = X86_EFLAGS_IF,
@@ -4707,7 +4803,7 @@
 	return 0;
 }
 
-static int handle_external_interrupt(struct kvm_vcpu *vcpu)
+static __always_inline int handle_external_interrupt(struct kvm_vcpu *vcpu)
 {
 	++vcpu->stat.irq_exits;
 	return 1;
@@ -4979,21 +5075,6 @@
 	vmcs_writel(GUEST_DR7, val);
 }
 
-static int handle_cpuid(struct kvm_vcpu *vcpu)
-{
-	return kvm_emulate_cpuid(vcpu);
-}
-
-static int handle_rdmsr(struct kvm_vcpu *vcpu)
-{
-	return kvm_emulate_rdmsr(vcpu);
-}
-
-static int handle_wrmsr(struct kvm_vcpu *vcpu)
-{
-	return kvm_emulate_wrmsr(vcpu);
-}
-
 static int handle_tpr_below_threshold(struct kvm_vcpu *vcpu)
 {
 	kvm_apic_update_ppr(vcpu);
@@ -5002,7 +5083,7 @@
 
 static int handle_interrupt_window(struct kvm_vcpu *vcpu)
 {
-	exec_controls_clearbit(to_vmx(vcpu), CPU_BASED_VIRTUAL_INTR_PENDING);
+	exec_controls_clearbit(to_vmx(vcpu), CPU_BASED_INTR_WINDOW_EXITING);
 
 	kvm_make_request(KVM_REQ_EVENT, vcpu);
 
@@ -5010,11 +5091,6 @@
 	return 1;
 }
 
-static int handle_halt(struct kvm_vcpu *vcpu)
-{
-	return kvm_emulate_halt(vcpu);
-}
-
 static int handle_vmcall(struct kvm_vcpu *vcpu)
 {
 	return kvm_emulate_hypercall(vcpu);
@@ -5220,7 +5296,7 @@
 static int handle_nmi_window(struct kvm_vcpu *vcpu)
 {
 	WARN_ON_ONCE(!enable_vnmi);
-	exec_controls_clearbit(to_vmx(vcpu), CPU_BASED_VIRTUAL_NMI_PENDING);
+	exec_controls_clearbit(to_vmx(vcpu), CPU_BASED_NMI_WINDOW_EXITING);
 	++vcpu->stat.nmi_window_exits;
 	kvm_make_request(KVM_REQ_EVENT, vcpu);
 
@@ -5241,7 +5317,7 @@
 	WARN_ON_ONCE(vmx->emulation_required && vmx->nested.nested_run_pending);
 
 	intr_window_requested = exec_controls_get(vmx) &
-				CPU_BASED_VIRTUAL_INTR_PENDING;
+				CPU_BASED_INTR_WINDOW_EXITING;
 
 	while (vmx->emulation_required && count-- != 0) {
 		if (intr_window_requested && vmx_interrupt_allowed(vcpu))
@@ -5562,11 +5638,11 @@
 	[EXIT_REASON_IO_INSTRUCTION]          = handle_io,
 	[EXIT_REASON_CR_ACCESS]               = handle_cr,
 	[EXIT_REASON_DR_ACCESS]               = handle_dr,
-	[EXIT_REASON_CPUID]                   = handle_cpuid,
-	[EXIT_REASON_MSR_READ]                = handle_rdmsr,
-	[EXIT_REASON_MSR_WRITE]               = handle_wrmsr,
-	[EXIT_REASON_PENDING_INTERRUPT]       = handle_interrupt_window,
-	[EXIT_REASON_HLT]                     = handle_halt,
+	[EXIT_REASON_CPUID]                   = kvm_emulate_cpuid,
+	[EXIT_REASON_MSR_READ]                = kvm_emulate_rdmsr,
+	[EXIT_REASON_MSR_WRITE]               = kvm_emulate_wrmsr,
+	[EXIT_REASON_INTERRUPT_WINDOW]        = handle_interrupt_window,
+	[EXIT_REASON_HLT]                     = kvm_emulate_halt,
 	[EXIT_REASON_INVD]		      = handle_invd,
 	[EXIT_REASON_INVLPG]		      = handle_invlpg,
 	[EXIT_REASON_RDPMC]                   = handle_rdpmc,
@@ -5904,6 +5980,7 @@
 			(exit_reason != EXIT_REASON_EXCEPTION_NMI &&
 			exit_reason != EXIT_REASON_EPT_VIOLATION &&
 			exit_reason != EXIT_REASON_PML_FULL &&
+			exit_reason != EXIT_REASON_APIC_ACCESS &&
 			exit_reason != EXIT_REASON_TASK_SWITCH)) {
 		vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR;
 		vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_DELIVERY_EV;
@@ -5939,9 +6016,23 @@
 	}
 
 	if (exit_reason < kvm_vmx_max_exit_handlers
-	    && kvm_vmx_exit_handlers[exit_reason])
+	    && kvm_vmx_exit_handlers[exit_reason]) {
+#ifdef CONFIG_RETPOLINE
+		if (exit_reason == EXIT_REASON_MSR_WRITE)
+			return kvm_emulate_wrmsr(vcpu);
+		else if (exit_reason == EXIT_REASON_PREEMPTION_TIMER)
+			return handle_preemption_timer(vcpu);
+		else if (exit_reason == EXIT_REASON_INTERRUPT_WINDOW)
+			return handle_interrupt_window(vcpu);
+		else if (exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT)
+			return handle_external_interrupt(vcpu);
+		else if (exit_reason == EXIT_REASON_HLT)
+			return kvm_emulate_halt(vcpu);
+		else if (exit_reason == EXIT_REASON_EPT_MISCONFIG)
+			return handle_ept_misconfig(vcpu);
+#endif
 		return kvm_vmx_exit_handlers[exit_reason](vcpu);
-	else {
+	} else {
 		vcpu_unimpl(vcpu, "vmx: unexpected exit reason 0x%x\n",
 				exit_reason);
 		dump_vmcs();
@@ -6269,6 +6360,7 @@
 	);
 
 	kvm_after_interrupt(vcpu);
+	vcpu->arch.at_instruction_boundary = true;
 }
 STACK_FRAME_NON_STANDARD(handle_external_interrupt_irqoff);
 
@@ -6438,23 +6530,6 @@
 					msrs[i].host, false);
 }
 
-static void atomic_switch_umwait_control_msr(struct vcpu_vmx *vmx)
-{
-	u32 host_umwait_control;
-
-	if (!vmx_has_waitpkg(vmx))
-		return;
-
-	host_umwait_control = get_umwait_control_msr();
-
-	if (vmx->msr_ia32_umwait_control != host_umwait_control)
-		add_atomic_switch_msr(vmx, MSR_IA32_UMWAIT_CONTROL,
-			vmx->msr_ia32_umwait_control,
-			host_umwait_control, false);
-	else
-		clear_atomic_switch_msr(vmx, MSR_IA32_UMWAIT_CONTROL);
-}
-
 static void vmx_update_hv_timer(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
@@ -6489,7 +6564,30 @@
 	}
 }
 
-bool __vmx_vcpu_run(struct vcpu_vmx *vmx, unsigned long *regs, bool launched);
+void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
+					unsigned int flags)
+{
+	u64 hostval = this_cpu_read(x86_spec_ctrl_current);
+
+	if (!cpu_feature_enabled(X86_FEATURE_MSR_SPEC_CTRL))
+		return;
+
+	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
+		vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
+
+	/*
+	 * If the guest/host SPEC_CTRL values differ, restore the host value.
+	 *
+	 * For legacy IBRS, the IBRS bit always needs to be written after
+	 * transitioning from a less privileged predictor mode, regardless of
+	 * whether the guest/host values differ.
+	 */
+	if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) ||
+	    vmx->spec_ctrl != hostval)
+		native_wrmsrl(MSR_IA32_SPEC_CTRL, hostval);
+
+	barrier_nospec();
+}
 
 static void vmx_vcpu_run(struct kvm_vcpu *vcpu)
 {
@@ -6511,8 +6609,11 @@
 		vmcs_write32(PLE_WINDOW, vmx->ple_window);
 	}
 
-	if (vmx->nested.need_vmcs12_to_shadow_sync)
-		nested_sync_vmcs12_to_shadow(vcpu);
+	/*
+	 * We did this in prepare_switch_to_guest, because it needs to
+	 * be within srcu_read_lock.
+	 */
+	WARN_ON_ONCE(vmx->nested.need_vmcs12_to_shadow_sync);
 
 	if (test_bit(VCPU_REGS_RSP, (unsigned long *)&vcpu->arch.regs_dirty))
 		vmcs_writel(GUEST_RSP, vcpu->arch.regs[VCPU_REGS_RSP]);
@@ -6541,15 +6642,9 @@
 
 	kvm_load_guest_xcr0(vcpu);
 
-	if (static_cpu_has(X86_FEATURE_PKU) &&
-	    kvm_read_cr4_bits(vcpu, X86_CR4_PKE) &&
-	    vcpu->arch.pkru != vmx->host_pkru)
-		__write_pkru(vcpu->arch.pkru);
-
 	pt_guest_enter(vmx);
 
 	atomic_switch_perf_msrs(vmx);
-	atomic_switch_umwait_control_msr(vmx);
 
 	if (enable_preemption_timer)
 		vmx_update_hv_timer(vcpu);
@@ -6571,34 +6666,21 @@
 		vmx_l1d_flush(vcpu);
 	else if (static_branch_unlikely(&mds_user_clear))
 		mds_clear_cpu_buffers();
+	else if (static_branch_unlikely(&mmio_stale_data_clear) &&
+		 kvm_arch_has_assigned_device(vcpu->kvm))
+		mds_clear_cpu_buffers();
+
+	vmx_disable_fb_clear(vmx);
 
 	if (vcpu->arch.cr2 != read_cr2())
 		write_cr2(vcpu->arch.cr2);
 
 	vmx->fail = __vmx_vcpu_run(vmx, (unsigned long *)&vcpu->arch.regs,
-				   vmx->loaded_vmcs->launched);
+				   __vmx_vcpu_run_flags(vmx));
 
 	vcpu->arch.cr2 = read_cr2();
 
-	/*
-	 * We do not use IBRS in the kernel. If this vCPU has used the
-	 * SPEC_CTRL MSR it may have left it on; save the value and
-	 * turn it off. This is much more efficient than blindly adding
-	 * it to the atomic save/restore list. Especially as the former
-	 * (Saving guest MSRs on vmexit) doesn't even exist in KVM.
-	 *
-	 * For non-nested case:
-	 * If the L01 MSR bitmap does not intercept the MSR, then we need to
-	 * save it.
-	 *
-	 * For nested case:
-	 * If the L02 MSR bitmap does not intercept the MSR, then we need to
-	 * save it.
-	 */
-	if (unlikely(!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL)))
-		vmx->spec_ctrl = native_read_msr(MSR_IA32_SPEC_CTRL);
-
-	x86_spec_ctrl_restore_host(vmx->spec_ctrl, 0);
+	vmx_enable_fb_clear(vmx);
 
 	/* All fields are clean at this point */
 	if (static_branch_unlikely(&enable_evmcs))
@@ -6634,18 +6716,6 @@
 
 	pt_guest_exit(vmx);
 
-	/*
-	 * eager fpu is enabled if PKEY is supported and CR4 is switched
-	 * back on host, so it is safe to read guest PKRU from current
-	 * XSAVE.
-	 */
-	if (static_cpu_has(X86_FEATURE_PKU) &&
-	    kvm_read_cr4_bits(vcpu, X86_CR4_PKE)) {
-		vcpu->arch.pkru = rdpkru();
-		if (vcpu->arch.pkru != vmx->host_pkru)
-			__write_pkru(vmx->host_pkru);
-	}
-
 	kvm_put_guest_xcr0(vcpu);
 
 	vmx->nested.nested_run_pending = 0;
@@ -6670,6 +6740,10 @@
 	struct kvm_vmx *kvm_vmx = __vmalloc(sizeof(struct kvm_vmx),
 					    GFP_KERNEL_ACCOUNT | __GFP_ZERO,
 					    PAGE_KERNEL);
+
+	if (!kvm_vmx)
+		return NULL;
+
 	return &kvm_vmx->kvm;
 }
 
@@ -6793,8 +6867,7 @@
 
 	if (nested)
 		nested_vmx_setup_ctls_msrs(&vmx->nested.msrs,
-					   vmx_capability.ept,
-					   kvm_vcpu_apicv_active(&vmx->vcpu));
+					   vmx_capability.ept);
 	else
 		memset(&vmx->nested.msrs, 0, sizeof(vmx->nested.msrs));
 
@@ -6876,8 +6949,7 @@
 	if (setup_vmcs_config(&vmcs_conf, &vmx_cap) < 0)
 		return -EIO;
 	if (nested)
-		nested_vmx_setup_ctls_msrs(&vmcs_conf.nested, vmx_cap.ept,
-					   enable_apicv);
+		nested_vmx_setup_ctls_msrs(&vmcs_conf.nested, vmx_cap.ept);
 	if (memcmp(&vmcs_config, &vmcs_conf, sizeof(struct vmcs_config)) != 0) {
 		printk(KERN_ERR "kvm: CPU %d feature inconsistency!\n",
 				smp_processor_id());
@@ -7123,6 +7195,40 @@
 	to_vmx(vcpu)->req_immediate_exit = true;
 }
 
+static int vmx_check_intercept_io(struct kvm_vcpu *vcpu,
+				  struct x86_instruction_info *info)
+{
+	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
+	unsigned short port;
+	bool intercept;
+	int size;
+
+	if (info->intercept == x86_intercept_in ||
+	    info->intercept == x86_intercept_ins) {
+		port = info->src_val;
+		size = info->dst_bytes;
+	} else {
+		port = info->dst_val;
+		size = info->src_bytes;
+	}
+
+	/*
+	 * If the 'use IO bitmaps' VM-execution control is 0, IO instruction
+	 * VM-exits depend on the 'unconditional IO exiting' VM-execution
+	 * control.
+	 *
+	 * Otherwise, IO instruction VM-exits are controlled by the IO bitmaps.
+	 */
+	if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
+		intercept = nested_cpu_has(vmcs12,
+					   CPU_BASED_UNCOND_IO_EXITING);
+	else
+		intercept = nested_vmx_check_io_bitmaps(vcpu, port, size);
+
+	/* FIXME: produce nested vmexit and return X86EMUL_INTERCEPTED.  */
+	return intercept ? X86EMUL_UNHANDLEABLE : X86EMUL_CONTINUE;
+}
+
 static int vmx_check_intercept(struct kvm_vcpu *vcpu,
 			       struct x86_instruction_info *info,
 			       enum x86_intercept_stage stage)
@@ -7130,19 +7236,60 @@
 	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
 	struct x86_emulate_ctxt *ctxt = &vcpu->arch.emulate_ctxt;
 
+	switch (info->intercept) {
 	/*
 	 * RDPID causes #UD if disabled through secondary execution controls.
 	 * Because it is marked as EmulateOnUD, we need to intercept it here.
 	 */
-	if (info->intercept == x86_intercept_rdtscp &&
-	    !nested_cpu_has2(vmcs12, SECONDARY_EXEC_RDTSCP)) {
-		ctxt->exception.vector = UD_VECTOR;
-		ctxt->exception.error_code_valid = false;
-		return X86EMUL_PROPAGATE_FAULT;
-	}
+	case x86_intercept_rdtscp:
+		if (!nested_cpu_has2(vmcs12, SECONDARY_EXEC_RDTSCP)) {
+			ctxt->exception.vector = UD_VECTOR;
+			ctxt->exception.error_code_valid = false;
+			return X86EMUL_PROPAGATE_FAULT;
+		}
+		break;
+
+	case x86_intercept_in:
+	case x86_intercept_ins:
+	case x86_intercept_out:
+	case x86_intercept_outs:
+		return vmx_check_intercept_io(vcpu, info);
+
+	case x86_intercept_lgdt:
+	case x86_intercept_lidt:
+	case x86_intercept_lldt:
+	case x86_intercept_ltr:
+	case x86_intercept_sgdt:
+	case x86_intercept_sidt:
+	case x86_intercept_sldt:
+	case x86_intercept_str:
+		if (!nested_cpu_has2(vmcs12, SECONDARY_EXEC_DESC))
+			return X86EMUL_CONTINUE;
+
+		/* FIXME: produce nested vmexit and return X86EMUL_INTERCEPTED.  */
+		break;
+
+	case x86_intercept_pause:
+		/*
+		 * PAUSE is a single-byte NOP with a REPE prefix, i.e. collides
+		 * with vanilla NOPs in the emulator.  Apply the interception
+		 * check only to actual PAUSE instructions.  Don't check
+		 * PAUSE-loop-exiting, software can't expect a given PAUSE to
+		 * exit, i.e. KVM is within its rights to allow L2 to execute
+		 * the PAUSE.
+		 */
+		if ((info->rep_prefix != REPE_PREFIX) ||
+		    !nested_cpu_has2(vmcs12, CPU_BASED_PAUSE_EXITING))
+			return X86EMUL_CONTINUE;
+
+		break;
 
 	/* TODO: check more intercepts... */
-	return X86EMUL_CONTINUE;
+	default:
+		break;
+	}
+
+	return X86EMUL_UNHANDLEABLE;
 }
 
 #ifdef CONFIG_X86_64
@@ -7238,11 +7385,11 @@
 	kvm_flush_pml_buffers(kvm);
 }
 
-static int vmx_write_pml_buffer(struct kvm_vcpu *vcpu)
+static int vmx_write_pml_buffer(struct kvm_vcpu *vcpu, gpa_t gpa)
 {
 	struct vmcs12 *vmcs12;
 	struct vcpu_vmx *vmx = to_vmx(vcpu);
-	gpa_t gpa, dst;
+	gpa_t dst;
 
 	if (is_guest_mode(vcpu)) {
 		WARN_ON_ONCE(vmx->nested.pml_full);
@@ -7261,7 +7408,7 @@
 			return 1;
 		}
 
-		gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS) & ~0xFFFull;
+		gpa &= ~0xFFFull;
 		dst = vmcs12->pml_address + sizeof(u64) * vmcs12->guest_pml_index;
 
 		if (kvm_write_guest_page(vcpu->kvm, gpa_to_gfn(dst), &gpa,
@@ -7727,7 +7874,7 @@
 
 	if (nested) {
 		nested_vmx_setup_ctls_msrs(&vmcs_config.nested,
-					   vmx_capability.ept, enable_apicv);
+					   vmx_capability.ept);
 
 		r = nested_vmx_hardware_setup(kvm_vmx_exit_handlers);
 		if (r)
@@ -7861,6 +8008,7 @@
 	.xsaves_supported = vmx_xsaves_supported,
 	.umip_emulated = vmx_umip_emulated,
 	.pt_supported = vmx_pt_supported,
+	.pku_supported = vmx_pku_supported,
 
 	.request_immediate_exit = vmx_request_immediate_exit,
 
@@ -7949,7 +8097,7 @@
 
 static int __init vmx_init(void)
 {
-	int r;
+	int r, cpu;
 
 #if IS_ENABLED(CONFIG_HYPERV)
 	/*
@@ -8003,6 +8151,15 @@
 		return r;
 	}
 
+	vmx_setup_fb_clear_ctrl();
+
+	for_each_possible_cpu(cpu) {
+		INIT_LIST_HEAD(&per_cpu(loaded_vmcss_on_cpu, cpu));
+
+		INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
+		spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+	}
+
 #ifdef CONFIG_KEXEC_CORE
 	rcu_assign_pointer(crash_vmclear_loaded_vmcss,
 			   crash_vmclear_local_loaded_vmcss);
--- linux-ein-5.4.0.orig/arch/x86/kvm/vmx/vmx.h
+++ linux-ein-5.4.0/arch/x86/kvm/vmx/vmx.h
@@ -10,12 +10,11 @@
 #include "capabilities.h"
 #include "ops.h"
 #include "vmcs.h"
+#include "run_flags.h"
 
 extern const u32 vmx_msr_index[];
 extern u64 host_efer;
 
-extern u32 get_umwait_control_msr(void);
-
 #define MSR_TYPE_R	1
 #define MSR_TYPE_W	2
 #define MSR_TYPE_RW	3
@@ -282,8 +281,11 @@
 	u64 msr_ia32_feature_control;
 	u64 msr_ia32_feature_control_valid_bits;
 	u64 ept_pointer;
+	u64 msr_ia32_mcu_opt_ctrl;
+	bool disable_fb_clear;
 
 	struct pt_desc pt_desc;
+
 };
 
 enum ept_pointers_status {
@@ -304,7 +306,8 @@
 };
 
 bool nested_vmx_allowed(struct kvm_vcpu *vcpu);
-void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu);
+void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu,
+			struct loaded_vmcs *buddy);
 void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
 int allocate_vpid(void);
 void free_vpid(int vpid);
@@ -334,6 +337,10 @@
 struct shared_msr_entry *find_msr_entry(struct vcpu_vmx *vmx, u32 msr);
 void pt_update_intercept_for_msr(struct vcpu_vmx *vmx);
 void vmx_update_host_rsp(struct vcpu_vmx *vmx, unsigned long host_rsp);
+void vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx, unsigned int flags);
+unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx);
+bool __vmx_vcpu_run(struct vcpu_vmx *vmx, unsigned long *regs,
+		    unsigned int flags);
 
 #define POSTED_INTR_ON  0
 #define POSTED_INTR_SN  1
@@ -513,7 +520,7 @@
 
 static inline bool vmx_has_waitpkg(struct vcpu_vmx *vmx)
 {
-	return vmx->secondary_exec_control &
+	return secondary_exec_controls_get(vmx) &
 		SECONDARY_EXEC_ENABLE_USR_WAIT_PAUSE;
 }
 
--- linux-ein-5.4.0.orig/arch/x86/kvm/x86.c
+++ linux-ein-5.4.0/arch/x86/kvm/x86.c
@@ -68,6 +68,7 @@
 #include <asm/mshyperv.h>
 #include <asm/hypervisor.h>
 #include <asm/intel_pt.h>
+#include <asm/emulate_prefix.h>
 #include <clocksource/hyperv_timer.h>
 
 #define CREATE_TRACE_POINTS
@@ -92,6 +93,8 @@
 static u64 __read_mostly efer_reserved_bits = ~((u64)EFER_SCE);
 #endif
 
+static u64 __read_mostly cr4_reserved_bits = CR4_RESERVED_BITS;
+
 #define VM_STAT(x, ...) offsetof(struct kvm, stat.x), KVM_STAT_VM, ## __VA_ARGS__
 #define VCPU_STAT(x, ...) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU, ## __VA_ARGS__
 
@@ -100,6 +103,7 @@
 
 static void update_cr8_intercept(struct kvm_vcpu *vcpu);
 static void process_nmi(struct kvm_vcpu *vcpu);
+static void process_smi(struct kvm_vcpu *vcpu);
 static void enter_smm(struct kvm_vcpu *vcpu);
 static void __kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags);
 static void store_regs(struct kvm_vcpu *vcpu);
@@ -164,6 +168,10 @@
 	u32 msrs[KVM_NR_SHARED_MSRS];
 };
 
+/* Enable/disable SMT_RSB bug mitigation */
+bool __read_mostly mitigate_smt_rsb;
+module_param(mitigate_smt_rsb, bool, 0444);
+
 struct kvm_shared_msrs {
 	struct user_return_notifier urn;
 	bool registered;
@@ -203,9 +211,10 @@
 	{ "nmi_injections", VCPU_STAT(nmi_injections) },
 	{ "req_event", VCPU_STAT(req_event) },
 	{ "l1d_flush", VCPU_STAT(l1d_flush) },
+	{ "preemption_reported", VCPU_STAT(preemption_reported) },
+	{ "preemption_other", VCPU_STAT(preemption_other) },
 	{ "mmu_shadow_zapped", VM_STAT(mmu_shadow_zapped) },
 	{ "mmu_pte_write", VM_STAT(mmu_pte_write) },
-	{ "mmu_pte_updated", VM_STAT(mmu_pte_updated) },
 	{ "mmu_pde_zapped", VM_STAT(mmu_pde_zapped) },
 	{ "mmu_flooded", VM_STAT(mmu_flooded) },
 	{ "mmu_recycled", VM_STAT(mmu_recycled) },
@@ -300,13 +309,14 @@
 	struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu);
 	int err;
 
-	if (((value ^ smsr->values[slot].curr) & mask) == 0)
+	value = (value & mask) | (smsr->values[slot].host & ~mask);
+	if (value == smsr->values[slot].curr)
 		return 0;
-	smsr->values[slot].curr = value;
 	err = wrmsrl_safe(shared_msrs_global.msrs[slot], value);
 	if (err)
 		return 1;
 
+	smsr->values[slot].curr = value;
 	if (!smsr->registered) {
 		smsr->urn.on_user_return = kvm_on_user_return;
 		user_return_notifier_register(&smsr->urn);
@@ -442,6 +452,14 @@
 		 * for #DB exceptions under VMX.
 		 */
 		vcpu->arch.dr6 ^= payload & DR6_RTM;
+
+		/*
+		 * The #DB payload is defined as compatible with the 'pending
+		 * debug exceptions' field under VMX, not DR6. While bit 12 is
+		 * defined in the 'pending debug exceptions' field (enabled
+		 * breakpoint), it is reserved and must be zero in DR6.
+		 */
+		vcpu->arch.dr6 &= ~BIT(12);
 		break;
 	case PF_VECTOR:
 		vcpu->arch.cr2 = payload;
@@ -464,8 +482,6 @@
 
 	if (!vcpu->arch.exception.pending && !vcpu->arch.exception.injected) {
 	queue:
-		if (has_error && !is_protmode(vcpu))
-			has_error = false;
 		if (reinject) {
 			/*
 			 * On vmentry, vcpu->arch.exception.pending is only
@@ -821,11 +837,25 @@
 			xsetbv(XCR_XFEATURE_ENABLED_MASK, vcpu->arch.xcr0);
 		vcpu->guest_xcr0_loaded = 1;
 	}
+
+	if (static_cpu_has(X86_FEATURE_PKU) &&
+	    (kvm_read_cr4_bits(vcpu, X86_CR4_PKE) ||
+	     (vcpu->arch.xcr0 & XFEATURE_MASK_PKRU)) &&
+	    vcpu->arch.pkru != vcpu->arch.host_pkru)
+		__write_pkru(vcpu->arch.pkru);
 }
 EXPORT_SYMBOL_GPL(kvm_load_guest_xcr0);
 
 void kvm_put_guest_xcr0(struct kvm_vcpu *vcpu)
 {
+	if (static_cpu_has(X86_FEATURE_PKU) &&
+	    (kvm_read_cr4_bits(vcpu, X86_CR4_PKE) ||
+	     (vcpu->arch.xcr0 & XFEATURE_MASK_PKRU))) {
+		vcpu->arch.pkru = rdpkru();
+		if (vcpu->arch.pkru != vcpu->arch.host_pkru)
+			__write_pkru(vcpu->arch.host_pkru);
+	}
+
 	if (vcpu->guest_xcr0_loaded) {
 		if (vcpu->arch.xcr0 != host_xcr0)
 			xsetbv(XCR_XFEATURE_ENABLED_MASK, host_xcr0);
@@ -885,9 +915,38 @@
 }
 EXPORT_SYMBOL_GPL(kvm_set_xcr);
 
+static u64 kvm_host_cr4_reserved_bits(struct cpuinfo_x86 *c)
+{
+	u64 reserved_bits = CR4_RESERVED_BITS;
+
+	if (!cpu_has(c, X86_FEATURE_XSAVE))
+		reserved_bits |= X86_CR4_OSXSAVE;
+
+	if (!cpu_has(c, X86_FEATURE_SMEP))
+		reserved_bits |= X86_CR4_SMEP;
+
+	if (!cpu_has(c, X86_FEATURE_SMAP))
+		reserved_bits |= X86_CR4_SMAP;
+
+	if (!cpu_has(c, X86_FEATURE_FSGSBASE))
+		reserved_bits |= X86_CR4_FSGSBASE;
+
+	if (!cpu_has(c, X86_FEATURE_PKU))
+		reserved_bits |= X86_CR4_PKE;
+
+	if (!cpu_has(c, X86_FEATURE_LA57) &&
+	    !(cpuid_ecx(0x7) & bit(X86_FEATURE_LA57)))
+		reserved_bits |= X86_CR4_LA57;
+
+	if (!cpu_has(c, X86_FEATURE_UMIP) && !kvm_x86_ops->umip_emulated())
+		reserved_bits |= X86_CR4_UMIP;
+
+	return reserved_bits;
+}
+
 static int kvm_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
 {
-	if (cr4 & CR4_RESERVED_BITS)
+	if (cr4 & cr4_reserved_bits)
 		return -EINVAL;
 
 	if (!guest_cpuid_has(vcpu, X86_FEATURE_XSAVE) && (cr4 & X86_CR4_OSXSAVE))
@@ -918,7 +977,8 @@
 {
 	unsigned long old_cr4 = kvm_read_cr4(vcpu);
 	unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE |
-				   X86_CR4_SMEP | X86_CR4_SMAP | X86_CR4_PKE;
+				   X86_CR4_SMEP;
+	unsigned long mmu_role_bits = pdptr_bits | X86_CR4_SMAP | X86_CR4_PKE;
 
 	if (kvm_valid_cr4(vcpu, cr4))
 		return 1;
@@ -926,6 +986,8 @@
 	if (is_long_mode(vcpu)) {
 		if (!(cr4 & X86_CR4_PAE))
 			return 1;
+		if ((cr4 ^ old_cr4) & X86_CR4_LA57)
+			return 1;
 	} else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
 		   && ((cr4 ^ old_cr4) & pdptr_bits)
 		   && !load_pdptrs(vcpu, vcpu->arch.walk_mmu,
@@ -944,7 +1006,7 @@
 	if (kvm_x86_ops->set_cr4(vcpu, cr4))
 		return 1;
 
-	if (((cr4 ^ old_cr4) & pdptr_bits) ||
+	if (((cr4 ^ old_cr4) & mmu_role_bits) ||
 	    (!(cr4 & X86_CR4_PCIDE) && (old_cr4 & X86_CR4_PCIDE)))
 		kvm_mmu_reset_context(vcpu);
 
@@ -1053,9 +1115,11 @@
 
 static int __kvm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long val)
 {
+	size_t size = ARRAY_SIZE(vcpu->arch.db);
+
 	switch (dr) {
 	case 0 ... 3:
-		vcpu->arch.db[dr] = val;
+		vcpu->arch.db[array_index_nospec(dr, size)] = val;
 		if (!(vcpu->guest_debug & KVM_GUESTDBG_USE_HW_BP))
 			vcpu->arch.eff_db[dr] = val;
 		break;
@@ -1092,9 +1156,11 @@
 
 int kvm_get_dr(struct kvm_vcpu *vcpu, int dr, unsigned long *val)
 {
+	size_t size = ARRAY_SIZE(vcpu->arch.db);
+
 	switch (dr) {
 	case 0 ... 3:
-		*val = vcpu->arch.db[dr];
+		*val = vcpu->arch.db[array_index_nospec(dr, size)];
 		break;
 	case 4:
 		/* fall through */
@@ -1159,7 +1225,7 @@
 	MSR_IA32_UMWAIT_CONTROL,
 
 	MSR_ARCH_PERFMON_FIXED_CTR0, MSR_ARCH_PERFMON_FIXED_CTR1,
-	MSR_ARCH_PERFMON_FIXED_CTR0 + 2, MSR_ARCH_PERFMON_FIXED_CTR0 + 3,
+	MSR_ARCH_PERFMON_FIXED_CTR0 + 2,
 	MSR_CORE_PERF_FIXED_CTR_CTRL, MSR_CORE_PERF_GLOBAL_STATUS,
 	MSR_CORE_PERF_GLOBAL_CTRL, MSR_CORE_PERF_GLOBAL_OVF_CTRL,
 	MSR_ARCH_PERFMON_PERFCTR0, MSR_ARCH_PERFMON_PERFCTR1,
@@ -1180,6 +1246,13 @@
 	MSR_ARCH_PERFMON_EVENTSEL0 + 12, MSR_ARCH_PERFMON_EVENTSEL0 + 13,
 	MSR_ARCH_PERFMON_EVENTSEL0 + 14, MSR_ARCH_PERFMON_EVENTSEL0 + 15,
 	MSR_ARCH_PERFMON_EVENTSEL0 + 16, MSR_ARCH_PERFMON_EVENTSEL0 + 17,
+
+	MSR_K7_EVNTSEL0, MSR_K7_EVNTSEL1, MSR_K7_EVNTSEL2, MSR_K7_EVNTSEL3,
+	MSR_K7_PERFCTR0, MSR_K7_PERFCTR1, MSR_K7_PERFCTR2, MSR_K7_PERFCTR3,
+	MSR_F15H_PERF_CTL0, MSR_F15H_PERF_CTL1, MSR_F15H_PERF_CTL2,
+	MSR_F15H_PERF_CTL3, MSR_F15H_PERF_CTL4, MSR_F15H_PERF_CTL5,
+	MSR_F15H_PERF_CTR0, MSR_F15H_PERF_CTR1, MSR_F15H_PERF_CTR2,
+	MSR_F15H_PERF_CTR3, MSR_F15H_PERF_CTR4, MSR_F15H_PERF_CTR5,
 };
 
 static u32 msrs_to_save[ARRAY_SIZE(msrs_to_save_all)];
@@ -1270,7 +1343,7 @@
 	MSR_IA32_VMX_EPT_VPID_CAP,
 	MSR_IA32_VMX_VMFUNC,
 
-	MSR_F10H_DECFG,
+	MSR_AMD64_DE_CFG,
 	MSR_IA32_UCODE_REV,
 	MSR_IA32_ARCH_CAPABILITIES,
 };
@@ -1327,10 +1400,22 @@
 	 * If TSX is disabled on the system, guests are also mitigated against
 	 * TAA and clear CPU buffer mitigation is not required for guests.
 	 */
-	if (boot_cpu_has_bug(X86_BUG_TAA) && boot_cpu_has(X86_FEATURE_RTM) &&
-	    (data & ARCH_CAP_TSX_CTRL_MSR))
+	if (!boot_cpu_has(X86_FEATURE_RTM))
+		data &= ~ARCH_CAP_TAA_NO;
+	else if (!boot_cpu_has_bug(X86_BUG_TAA))
+		data |= ARCH_CAP_TAA_NO;
+	else if (data & ARCH_CAP_TSX_CTRL_MSR)
 		data &= ~ARCH_CAP_MDS_NO;
 
+	/* KVM does not emulate MSR_IA32_TSX_CTRL.  */
+	data &= ~ARCH_CAP_TSX_CTRL_MSR;
+
+	/* Guests don't need to know "Fill buffer clear control" exists */
+	data &= ~ARCH_CAP_FB_CLEAR_CTRL;
+
+	if (!boot_cpu_has_bug(X86_BUG_GDS) || gds_ucode_mitigated())
+		data |= ARCH_CAP_GDS_NO;
+
 	return data;
 }
 
@@ -2484,7 +2569,10 @@
 	default:
 		if (msr >= MSR_IA32_MC0_CTL &&
 		    msr < MSR_IA32_MCx_CTL(bank_num)) {
-			u32 offset = msr - MSR_IA32_MC0_CTL;
+			u32 offset = array_index_nospec(
+				msr - MSR_IA32_MC0_CTL,
+				MSR_IA32_MCx_CTL(bank_num) - MSR_IA32_MC0_CTL);
+
 			/* only 0 or all 1s can be written to IA32_MCi_CTL
 			 * some Linux kernels though clear bit 10 in bank 4 to
 			 * workaround a BIOS/GART TBL issue on AMD K8s, ignore
@@ -2580,45 +2668,47 @@
 
 static void record_steal_time(struct kvm_vcpu *vcpu)
 {
+	struct kvm_host_map map;
+	struct kvm_steal_time *st;
+
 	if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
 		return;
 
-	if (unlikely(kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time))))
+	/* -EAGAIN is returned in atomic context so we can just return. */
+	if (kvm_map_gfn(vcpu, vcpu->arch.st.msr_val >> PAGE_SHIFT,
+			&map, &vcpu->arch.st.cache, false))
 		return;
 
+	st = map.hva +
+		offset_in_page(vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS);
+
 	/*
 	 * Doing a TLB flush here, on the guest's behalf, can avoid
 	 * expensive IPIs.
 	 */
 	trace_kvm_pv_tlb_flush(vcpu->vcpu_id,
-		vcpu->arch.st.steal.preempted & KVM_VCPU_FLUSH_TLB);
-	if (xchg(&vcpu->arch.st.steal.preempted, 0) & KVM_VCPU_FLUSH_TLB)
+		st->preempted & KVM_VCPU_FLUSH_TLB);
+	if (xchg(&st->preempted, 0) & KVM_VCPU_FLUSH_TLB)
 		kvm_vcpu_flush_tlb(vcpu, false);
 
-	if (vcpu->arch.st.steal.version & 1)
-		vcpu->arch.st.steal.version += 1;  /* first time write, random junk */
+	vcpu->arch.st.preempted = 0;
 
-	vcpu->arch.st.steal.version += 1;
+	if (st->version & 1)
+		st->version += 1;  /* first time write, random junk */
 
-	kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
+	st->version += 1;
 
 	smp_wmb();
 
-	vcpu->arch.st.steal.steal += current->sched_info.run_delay -
+	st->steal += current->sched_info.run_delay -
 		vcpu->arch.st.last_steal;
 	vcpu->arch.st.last_steal = current->sched_info.run_delay;
 
-	kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
-
 	smp_wmb();
 
-	vcpu->arch.st.steal.version += 1;
+	st->version += 1;
 
-	kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
-		&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
+	kvm_unmap_gfn(vcpu, &map, &vcpu->arch.st.cache, true, false);
 }
 
 int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
@@ -2685,7 +2775,7 @@
 		return kvm_mtrr_set_msr(vcpu, msr, data);
 	case MSR_IA32_APICBASE:
 		return kvm_set_apic_base(vcpu, msr_info);
-	case APIC_BASE_MSR ... APIC_BASE_MSR + 0x3ff:
+	case APIC_BASE_MSR ... APIC_BASE_MSR + 0xff:
 		return kvm_x2apic_msr_write(vcpu, msr, data);
 	case MSR_IA32_TSCDEADLINE:
 		kvm_set_lapic_tscdeadline_msr(vcpu, data);
@@ -2695,6 +2785,10 @@
 			if (!msr_info->host_initiated) {
 				s64 adj = data - vcpu->arch.ia32_tsc_adjust_msr;
 				adjust_tsc_offset_guest(vcpu, adj);
+				/* Before back to guest, tsc_timestamp must be adjusted
+				 * as well, otherwise guest's percpu pvclock time could jump.
+				 */
+				kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu);
 			}
 			vcpu->arch.ia32_tsc_adjust_msr = data;
 		}
@@ -2771,11 +2865,6 @@
 		if (data & KVM_STEAL_RESERVED_MASK)
 			return 1;
 
-		if (kvm_gfn_to_hva_cache_init(vcpu->kvm, &vcpu->arch.st.stime,
-						data & KVM_STEAL_VALID_BITS,
-						sizeof(struct kvm_steal_time)))
-			return 1;
-
 		vcpu->arch.st.msr_val = data;
 
 		if (!(data & KVM_MSR_ENABLED))
@@ -2911,7 +3000,10 @@
 	default:
 		if (msr >= MSR_IA32_MC0_CTL &&
 		    msr < MSR_IA32_MCx_CTL(bank_num)) {
-			u32 offset = msr - MSR_IA32_MC0_CTL;
+			u32 offset = array_index_nospec(
+				msr - MSR_IA32_MC0_CTL,
+				MSR_IA32_MCx_CTL(bank_num) - MSR_IA32_MC0_CTL);
+
 			data = vcpu->arch.mce_banks[offset];
 			break;
 		}
@@ -2991,7 +3083,7 @@
 	case MSR_IA32_APICBASE:
 		msr_info->data = kvm_get_apic_base(vcpu);
 		break;
-	case APIC_BASE_MSR ... APIC_BASE_MSR + 0x3ff:
+	case APIC_BASE_MSR ... APIC_BASE_MSR + 0xff:
 		return kvm_x2apic_msr_read(vcpu, msr_info->index, &msr_info->data);
 		break;
 	case MSR_IA32_TSCDEADLINE:
@@ -3261,10 +3353,15 @@
 		r = KVM_CLOCK_TSC_STABLE;
 		break;
 	case KVM_CAP_X86_DISABLE_EXITS:
-		r |=  KVM_X86_DISABLE_EXITS_HLT | KVM_X86_DISABLE_EXITS_PAUSE |
-		      KVM_X86_DISABLE_EXITS_CSTATE;
-		if(kvm_can_mwait_in_guest())
-			r |= KVM_X86_DISABLE_EXITS_MWAIT;
+		r = KVM_X86_DISABLE_EXITS_PAUSE;
+
+		if (!mitigate_smt_rsb) {
+			r |= KVM_X86_DISABLE_EXITS_HLT |
+			     KVM_X86_DISABLE_EXITS_CSTATE;
+
+			if (kvm_can_mwait_in_guest())
+				r |= KVM_X86_DISABLE_EXITS_MWAIT;
+		}
 		break;
 	case KVM_CAP_X86_SMM:
 		/* SMBASE is usually relocated above 1M on modern chipsets,
@@ -3437,10 +3534,6 @@
 
 	kvm_x86_ops->vcpu_load(vcpu, cpu);
 
-	fpregs_assert_state_consistent();
-	if (test_thread_flag(TIF_NEED_FPU_LOAD))
-		switch_fpu_return();
-
 	/* Apply any externally detected TSC adjustments (due to suspend) */
 	if (unlikely(vcpu->arch.tsc_offset_adjustment)) {
 		adjust_tsc_offset_host(vcpu, vcpu->arch.tsc_offset_adjustment);
@@ -3480,15 +3573,38 @@
 
 static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu)
 {
+	struct kvm_host_map map;
+	struct kvm_steal_time *st;
+
+	/*
+	 * The vCPU can be marked preempted if and only if the VM-Exit was on
+	 * an instruction boundary and will not trigger guest emulation of any
+	 * kind (see vcpu_run).  Vendor specific code controls (conservatively)
+	 * when this is true, for example allowing the vCPU to be marked
+	 * preempted if and only if the VM-Exit was due to a host interrupt.
+	 */
+	if (!vcpu->arch.at_instruction_boundary) {
+		vcpu->stat.preemption_other++;
+		return;
+	}
+
+	vcpu->stat.preemption_reported++;
 	if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
 		return;
 
-	vcpu->arch.st.steal.preempted = KVM_VCPU_PREEMPTED;
+	if (vcpu->arch.st.preempted)
+		return;
+
+	if (kvm_map_gfn(vcpu, vcpu->arch.st.msr_val >> PAGE_SHIFT, &map,
+			&vcpu->arch.st.cache, true))
+		return;
+
+	st = map.hva +
+		offset_in_page(vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS);
+
+	st->preempted = vcpu->arch.st.preempted = KVM_VCPU_PREEMPTED;
 
-	kvm_write_guest_offset_cached(vcpu->kvm, &vcpu->arch.st.stime,
-			&vcpu->arch.st.steal.preempted,
-			offsetof(struct kvm_steal_time, preempted),
-			sizeof(vcpu->arch.st.steal.preempted));
+	kvm_unmap_gfn(vcpu, &map, &vcpu->arch.st.cache, true, true);
 }
 
 void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
@@ -3549,22 +3665,33 @@
 
 static int kvm_cpu_accept_dm_intr(struct kvm_vcpu *vcpu)
 {
+	/*
+	 * We can accept userspace's request for interrupt injection
+	 * as long as we have a place to store the interrupt number.
+	 * The actual injection will happen when the CPU is able to
+	 * deliver the interrupt.
+	 */
+	if (kvm_cpu_has_extint(vcpu))
+		return false;
+
+	/* Acknowledging ExtINT does not happen if LINT0 is masked.  */
 	return (!lapic_in_kernel(vcpu) ||
 		kvm_apic_accept_pic_intr(vcpu));
 }
 
-/*
- * if userspace requested an interrupt window, check that the
- * interrupt window is open.
- *
- * No need to exit to userspace if we already have an interrupt queued.
- */
 static int kvm_vcpu_ready_for_interrupt_injection(struct kvm_vcpu *vcpu)
 {
-	return kvm_arch_interrupt_allowed(vcpu) &&
-		!kvm_cpu_has_interrupt(vcpu) &&
+	/*
+	 * Do not cause an interrupt window exit if an exception
+	 * is pending or an event needs reinjection; userspace
+	 * might want to inject the interrupt manually using KVM_SET_REGS
+	 * or KVM_SET_SREGS.  For that to work, we must be at an
+	 * instruction boundary and with no events half-injected.
+	 */
+	return (kvm_arch_interrupt_allowed(vcpu) &&
+		kvm_cpu_accept_dm_intr(vcpu) &&
 		!kvm_event_needs_reinjection(vcpu) &&
-		kvm_cpu_accept_dm_intr(vcpu);
+		!vcpu->arch.exception.pending);
 }
 
 static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu,
@@ -3624,7 +3751,7 @@
 	unsigned bank_num = mcg_cap & 0xff, bank;
 
 	r = -EINVAL;
-	if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS)
+	if (!bank_num || bank_num > KVM_MAX_MCE_BANKS)
 		goto out;
 	if (mcg_cap & ~(kvm_mce_cap_supported | 0xff | 0xff0000))
 		goto out;
@@ -3695,6 +3822,10 @@
 {
 	process_nmi(vcpu);
 
+
+	if (kvm_check_request(KVM_REQ_SMI, vcpu))
+		process_smi(vcpu);
+
 	/*
 	 * The API doesn't provide the instruction length for software
 	 * exceptions, so don't report them. As long as the guest RIP
@@ -3844,12 +3975,11 @@
 {
 	unsigned long val;
 
+	memset(dbgregs, 0, sizeof(*dbgregs));
 	memcpy(dbgregs->db, vcpu->arch.db, sizeof(vcpu->arch.db));
 	kvm_get_dr(vcpu, 6, &val);
 	dbgregs->dr6 = val;
 	dbgregs->dr7 = vcpu->arch.dr7;
-	dbgregs->flags = 0;
-	memset(&dbgregs->reserved, 0, sizeof(dbgregs->reserved));
 }
 
 static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
@@ -4421,6 +4551,7 @@
 	case KVM_SET_NESTED_STATE: {
 		struct kvm_nested_state __user *user_kvm_nested_state = argp;
 		struct kvm_nested_state kvm_state;
+		int idx;
 
 		r = -EINVAL;
 		if (!kvm_x86_ops->set_nested_state)
@@ -4444,7 +4575,9 @@
 		    && !(kvm_state.flags & KVM_STATE_NESTED_GUEST_MODE))
 			break;
 
+		idx = srcu_read_lock(&vcpu->kvm->srcu);
 		r = kvm_x86_ops->set_nested_state(vcpu, user_kvm_nested_state, &kvm_state);
+		srcu_read_unlock(&vcpu->kvm->srcu, idx);
 		break;
 	}
 	case KVM_GET_SUPPORTED_HV_CPUID: {
@@ -4786,15 +4919,26 @@
 		if (cap->args[0] & ~KVM_X86_DISABLE_VALID_EXITS)
 			break;
 
-		if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) &&
-			kvm_can_mwait_in_guest())
-			kvm->arch.mwait_in_guest = true;
-		if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT)
-			kvm->arch.hlt_in_guest = true;
 		if (cap->args[0] & KVM_X86_DISABLE_EXITS_PAUSE)
 			kvm->arch.pause_in_guest = true;
-		if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE)
-			kvm->arch.cstate_in_guest = true;
+
+#define SMT_RSB_MSG "This processor is affected by the Cross-Thread Return Predictions vulnerability. " \
+		    "KVM_CAP_X86_DISABLE_EXITS should only be used with SMT disabled or trusted guests."
+
+		if (!mitigate_smt_rsb) {
+			if (boot_cpu_has_bug(X86_BUG_SMT_RSB) && cpu_smt_possible() &&
+			    (cap->args[0] & ~KVM_X86_DISABLE_EXITS_PAUSE))
+				pr_warn_once(SMT_RSB_MSG);
+
+			if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) &&
+			    kvm_can_mwait_in_guest())
+				kvm->arch.mwait_in_guest = true;
+			if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT)
+				kvm->arch.hlt_in_guest = true;
+			if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE)
+				kvm->arch.cstate_in_guest = true;
+		}
+
 		r = 0;
 		break;
 	case KVM_CAP_MSR_PLATFORM_INFO:
@@ -4973,10 +5117,13 @@
 		r = -EFAULT;
 		if (copy_from_user(&u.ps, argp, sizeof(u.ps)))
 			goto out;
+		mutex_lock(&kvm->lock);
 		r = -ENXIO;
 		if (!kvm->arch.vpit)
-			goto out;
+			goto set_pit_out;
 		r = kvm_vm_ioctl_set_pit(kvm, &u.ps);
+set_pit_out:
+		mutex_unlock(&kvm->lock);
 		break;
 	}
 	case KVM_GET_PIT2: {
@@ -4996,10 +5143,13 @@
 		r = -EFAULT;
 		if (copy_from_user(&u.ps2, argp, sizeof(u.ps2)))
 			goto out;
+		mutex_lock(&kvm->lock);
 		r = -ENXIO;
 		if (!kvm->arch.vpit)
-			goto out;
+			goto set_pit2_out;
 		r = kvm_vm_ioctl_set_pit2(kvm, &u.ps2);
+set_pit2_out:
+		mutex_unlock(&kvm->lock);
 		break;
 	}
 	case KVM_REINJECT_CONTROL: {
@@ -5151,6 +5301,10 @@
 			if (!kvm_x86_ops->rdtscp_supported())
 				continue;
 			break;
+		case MSR_IA32_UMWAIT_CONTROL:
+			if (!boot_cpu_has(X86_FEATURE_WAITPKG))
+				continue;
+			break;
 		case MSR_IA32_RTIT_CTL:
 		case MSR_IA32_RTIT_STATUS:
 			if (!kvm_x86_ops->pt_supported())
@@ -5471,6 +5625,7 @@
 
 int handle_ud(struct kvm_vcpu *vcpu)
 {
+	static const char kvm_emulate_prefix[] = { __KVM_EMULATE_PREFIX };
 	int emul_type = EMULTYPE_TRAP_UD;
 	char sig[5]; /* ud2; .ascii "kvm" */
 	struct x86_exception e;
@@ -5478,7 +5633,7 @@
 	if (force_emulation_prefix &&
 	    kvm_read_guest_virt(vcpu, kvm_get_linear_rip(vcpu),
 				sig, sizeof(sig), &e) == 0 &&
-	    memcmp(sig, "\xf\xbkvm", sizeof(sig)) == 0) {
+	    memcmp(sig, kvm_emulate_prefix, sizeof(sig)) == 0) {
 		kvm_rip_write(vcpu, kvm_rip_read(vcpu) + sizeof(sig));
 		emul_type = EMULTYPE_TRAP_UD_FORCED;
 	}
@@ -6185,7 +6340,10 @@
 
 static void emulator_set_hflags(struct x86_emulate_ctxt *ctxt, unsigned emul_flags)
 {
-	emul_to_vcpu(ctxt)->arch.hflags = emul_flags;
+	struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);
+
+	vcpu->arch.hflags = emul_flags;
+	kvm_mmu_reset_context(vcpu);
 }
 
 static int emulator_pre_leave_smm(struct x86_emulate_ctxt *ctxt,
@@ -6356,11 +6514,11 @@
 	return 1;
 }
 
-static bool reexecute_instruction(struct kvm_vcpu *vcpu, gva_t cr2,
+static bool reexecute_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
 				  bool write_fault_to_shadow_pgtable,
 				  int emulation_type)
 {
-	gpa_t gpa = cr2;
+	gpa_t gpa = cr2_or_gpa;
 	kvm_pfn_t pfn;
 
 	if (!(emulation_type & EMULTYPE_ALLOW_RETRY))
@@ -6374,7 +6532,7 @@
 		 * Write permission should be allowed since only
 		 * write access need to be emulated.
 		 */
-		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);
+		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2_or_gpa, NULL);
 
 		/*
 		 * If the mapping is invalid in guest, let cpu retry
@@ -6431,10 +6589,10 @@
 }
 
 static bool retry_instruction(struct x86_emulate_ctxt *ctxt,
-			      unsigned long cr2,  int emulation_type)
+			      gpa_t cr2_or_gpa,  int emulation_type)
 {
 	struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);
-	unsigned long last_retry_eip, last_retry_addr, gpa = cr2;
+	unsigned long last_retry_eip, last_retry_addr, gpa = cr2_or_gpa;
 
 	last_retry_eip = vcpu->arch.last_retry_eip;
 	last_retry_addr = vcpu->arch.last_retry_addr;
@@ -6463,14 +6621,14 @@
 	if (x86_page_table_writing_insn(ctxt))
 		return false;
 
-	if (ctxt->eip == last_retry_eip && last_retry_addr == cr2)
+	if (ctxt->eip == last_retry_eip && last_retry_addr == cr2_or_gpa)
 		return false;
 
 	vcpu->arch.last_retry_eip = ctxt->eip;
-	vcpu->arch.last_retry_addr = cr2;
+	vcpu->arch.last_retry_addr = cr2_or_gpa;
 
 	if (!vcpu->arch.mmu->direct_map)
-		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);
+		gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2_or_gpa, NULL);
 
 	kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa));
 
@@ -6616,11 +6774,8 @@
 	return false;
 }
 
-int x86_emulate_instruction(struct kvm_vcpu *vcpu,
-			    unsigned long cr2,
-			    int emulation_type,
-			    void *insn,
-			    int insn_len)
+int x86_emulate_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
+			    int emulation_type, void *insn, int insn_len)
 {
 	int r;
 	struct x86_emulate_ctxt *ctxt = &vcpu->arch.emulate_ctxt;
@@ -6666,10 +6821,13 @@
 				kvm_queue_exception(vcpu, UD_VECTOR);
 				return 1;
 			}
-			if (reexecute_instruction(vcpu, cr2, write_fault_to_spt,
-						emulation_type))
+			if (reexecute_instruction(vcpu, cr2_or_gpa,
+						  write_fault_to_spt,
+						  emulation_type))
 				return 1;
-			if (ctxt->have_exception) {
+
+			if (ctxt->have_exception &&
+			    !(emulation_type & EMULTYPE_SKIP)) {
 				/*
 				 * #UD should result in just EMULATION_FAILED, and trap-like
 				 * exception should not be encountered during decode.
@@ -6701,7 +6859,7 @@
 		return 1;
 	}
 
-	if (retry_instruction(ctxt, cr2, emulation_type))
+	if (retry_instruction(ctxt, cr2_or_gpa, emulation_type))
 		return 1;
 
 	/* this is needed for vmware backdoor interface to work since it
@@ -6713,7 +6871,7 @@
 
 restart:
 	/* Save the faulting GPA (cr2) in the address field */
-	ctxt->exception.address = cr2;
+	ctxt->exception.address = cr2_or_gpa;
 
 	r = x86_emulate_insn(ctxt);
 
@@ -6721,7 +6879,7 @@
 		return 1;
 
 	if (r == EMULATION_FAILED) {
-		if (reexecute_instruction(vcpu, cr2, write_fault_to_spt,
+		if (reexecute_instruction(vcpu, cr2_or_gpa, write_fault_to_spt,
 					emulation_type))
 			return 1;
 
@@ -6760,7 +6918,7 @@
 		if (!ctxt->have_exception ||
 		    exception_type(ctxt->exception.vector) == EXCPT_TRAP) {
 			kvm_rip_write(vcpu, ctxt->eip);
-			if (r && ctxt->tf)
+			if (r && (ctxt->tf || (vcpu->guest_debug & KVM_GUESTDBG_SINGLESTEP)))
 				r = kvm_vcpu_do_singlestep(vcpu);
 			__kvm_set_rflags(vcpu, ctxt->eflags);
 		}
@@ -7182,7 +7340,7 @@
 		goto out;
 	}
 	if (ops->disabled_by_bios()) {
-		printk(KERN_ERR "kvm: disabled by bios\n");
+		printk(KERN_WARNING "kvm: disabled by bios\n");
 		r = -EOPNOTSUPP;
 		goto out;
 	}
@@ -7217,6 +7375,8 @@
 	if (r)
 		goto out_free_percpu;
 
+	mitigate_smt_rsb &= boot_cpu_has_bug(X86_BUG_SMT_RSB) && cpu_smt_possible();
+
 	kvm_x86_ops = ops;
 
 	kvm_mmu_set_mask_ptes(PT_USER_MASK, PT_ACCESSED_MASK,
@@ -7264,6 +7424,7 @@
 	cpuhp_remove_state_nocalls(CPUHP_AP_X86_KVM_CLK_ONLINE);
 #ifdef CONFIG_X86_64
 	pvclock_gtod_unregister_notifier(&pvclock_gtod_notifier);
+	cancel_work_sync(&pvclock_gtod_work);
 #endif
 	kvm_x86_ops = NULL;
 	kvm_mmu_module_exit();
@@ -7496,14 +7657,21 @@
 	kvm_x86_ops->update_cr8_intercept(vcpu, tpr, max_irr);
 }
 
-static int inject_pending_event(struct kvm_vcpu *vcpu, bool req_int_win)
+static void kvm_inject_exception(struct kvm_vcpu *vcpu)
+{
+       if (vcpu->arch.exception.error_code && !is_protmode(vcpu))
+               vcpu->arch.exception.error_code = false;
+       kvm_x86_ops->queue_exception(vcpu);
+}
+
+static int inject_pending_event(struct kvm_vcpu *vcpu)
 {
 	int r;
 
 	/* try to reinject previous events if any */
 
 	if (vcpu->arch.exception.injected)
-		kvm_x86_ops->queue_exception(vcpu);
+		kvm_inject_exception(vcpu);
 	/*
 	 * Do not inject an NMI or interrupt if there is a pending
 	 * exception.  Exceptions and interrupts are recognized at
@@ -7532,7 +7700,7 @@
 	 * from L2 to L1.
 	 */
 	if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) {
-		r = kvm_x86_ops->check_nested_events(vcpu, req_int_win);
+		r = kvm_x86_ops->check_nested_events(vcpu);
 		if (r != 0)
 			return r;
 	}
@@ -7569,7 +7737,7 @@
 			}
 		}
 
-		kvm_x86_ops->queue_exception(vcpu);
+		kvm_inject_exception(vcpu);
 	}
 
 	/* Don't consider new event if we re-injected an event */
@@ -7594,7 +7762,7 @@
 		 * KVM_REQ_EVENT only on certain events and not unconditionally?
 		 */
 		if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) {
-			r = kvm_x86_ops->check_nested_events(vcpu, req_int_win);
+			r = kvm_x86_ops->check_nested_events(vcpu);
 			if (r != 0)
 				return r;
 		}
@@ -7905,9 +8073,8 @@
 	kvm_x86_ops->load_eoi_exitmap(vcpu, eoi_exit_bitmap);
 }
 
-int kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
-		unsigned long start, unsigned long end,
-		bool blockable)
+void kvm_arch_mmu_notifier_invalidate_range(struct kvm *kvm,
+					    unsigned long start, unsigned long end)
 {
 	unsigned long apic_address;
 
@@ -7918,8 +8085,6 @@
 	apic_address = gfn_to_hva(kvm, APIC_DEFAULT_PHYS_BASE >> PAGE_SHIFT);
 	if (start <= apic_address && apic_address < end)
 		kvm_make_all_cpus_request(kvm, KVM_REQ_APIC_PAGE_RELOAD);
-
-	return 0;
 }
 
 void kvm_vcpu_reload_apic_access_page(struct kvm_vcpu *vcpu)
@@ -8071,7 +8236,7 @@
 			goto out;
 		}
 
-		if (inject_pending_event(vcpu, req_int_win) != 0)
+		if (inject_pending_event(vcpu) != 0)
 			req_immediate_exit = true;
 		else {
 			/* Enable SMI/NMI/IRQ window open exits if needed.
@@ -8163,8 +8328,12 @@
 	trace_kvm_entry(vcpu->vcpu_id);
 	guest_enter_irqoff();
 
-	/* The preempt notifier should have taken care of the FPU already.  */
-	WARN_ON_ONCE(test_thread_flag(TIF_NEED_FPU_LOAD));
+	/* Save host pkru register if supported */
+	vcpu->arch.host_pkru = read_pkru();
+
+	fpregs_assert_state_consistent();
+	if (test_thread_flag(TIF_NEED_FPU_LOAD))
+		switch_fpu_return();
 
 	if (unlikely(vcpu->arch.switch_db_regs)) {
 		set_debugreg(0, 7);
@@ -8174,6 +8343,8 @@
 		set_debugreg(vcpu->arch.eff_db[3], 3);
 		set_debugreg(vcpu->arch.dr6, 6);
 		vcpu->arch.switch_db_regs &= ~KVM_DEBUGREG_RELOAD;
+	} else if (unlikely(hw_breakpoint_active())) {
+		set_debugreg(0, 7);
 	}
 
 	kvm_x86_ops->run(vcpu);
@@ -8256,6 +8427,8 @@
 	return r;
 
 cancel_injection:
+	if (req_immediate_exit)
+		kvm_make_request(KVM_REQ_EVENT, vcpu);
 	kvm_x86_ops->cancel_injection(vcpu);
 	if (unlikely(vcpu->arch.apic_attention))
 		kvm_lapic_sync_from_vapic(vcpu);
@@ -8300,7 +8473,7 @@
 static inline bool kvm_vcpu_running(struct kvm_vcpu *vcpu)
 {
 	if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events)
-		kvm_x86_ops->check_nested_events(vcpu, false);
+		kvm_x86_ops->check_nested_events(vcpu);
 
 	return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&
 		!vcpu->arch.apf.halted);
@@ -8315,6 +8488,13 @@
 	vcpu->arch.l1tf_flush_l1d = true;
 
 	for (;;) {
+		/*
+		 * If another guest vCPU requests a PV TLB flush in the middle
+		 * of instruction emulation, the rest of the emulation could
+		 * use a stale page translation. Assume that any code after
+		 * this point can start executing an instruction.
+		 */
+		vcpu->arch.at_instruction_boundary = false;
 		if (kvm_vcpu_running(vcpu)) {
 			r = vcpu_enter_guest(vcpu);
 		} else {
@@ -8436,12 +8616,26 @@
 	return 0;
 }
 
+static void kvm_save_current_fpu(struct fpu *fpu)
+{
+	/*
+	 * If the target FPU state is not resident in the CPU registers, just
+	 * memcpy() from current, else save CPU state directly to the target.
+	 */
+	if (test_thread_flag(TIF_NEED_FPU_LOAD))
+		memcpy(&fpu->state, &current->thread.fpu.state,
+		       fpu_kernel_xstate_size);
+	else
+		copy_fpregs_to_fpstate(fpu);
+}
+
 /* Swap (qemu) user FPU context for the guest FPU context. */
 static void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
 {
 	fpregs_lock();
 
-	copy_fpregs_to_fpstate(vcpu->arch.user_fpu);
+	kvm_save_current_fpu(vcpu->arch.user_fpu);
+
 	/* PKRU is separately restored in kvm_x86_ops->run.  */
 	__copy_kernel_to_fpregs(&vcpu->arch.guest_fpu->state,
 				~XFEATURE_MASK_PKRU);
@@ -8457,7 +8651,8 @@
 {
 	fpregs_lock();
 
-	copy_fpregs_to_fpstate(vcpu->arch.guest_fpu);
+	kvm_save_current_fpu(vcpu->arch.guest_fpu);
+
 	copy_kernel_to_fpregs(&vcpu->arch.user_fpu->state);
 
 	fpregs_mark_activate();
@@ -8679,6 +8874,8 @@
 				    struct kvm_mp_state *mp_state)
 {
 	vcpu_load(vcpu);
+	if (kvm_mpx_supported())
+		kvm_load_guest_fpu(vcpu);
 
 	kvm_apic_accept_events(vcpu);
 	if (vcpu->arch.mp_state == KVM_MP_STATE_HALTED &&
@@ -8687,6 +8884,8 @@
 	else
 		mp_state->mp_state = vcpu->arch.mp_state;
 
+	if (kvm_mpx_supported())
+		kvm_put_guest_fpu(vcpu);
 	vcpu_put(vcpu);
 	return 0;
 }
@@ -9046,6 +9245,9 @@
 void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
 {
 	void *wbinvd_dirty_mask = vcpu->arch.wbinvd_dirty_mask;
+	struct gfn_to_pfn_cache *cache = &vcpu->arch.st.cache;
+
+	kvm_release_pfn(cache->pfn, cache->dirty, cache);
 
 	kvmclock_reset(vcpu);
 
@@ -9110,17 +9312,13 @@
 
 void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
 {
-	vcpu->arch.apf.msr_val = 0;
-
-	vcpu_load(vcpu);
-	kvm_mmu_unload(vcpu);
-	vcpu_put(vcpu);
-
-	kvm_x86_ops->vcpu_free(vcpu);
+	kvm_arch_vcpu_free(vcpu);
 }
 
 void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
 {
+	unsigned long old_cr0 = kvm_read_cr0(vcpu);
+
 	kvm_lapic_reset(vcpu, init_event);
 
 	vcpu->arch.hflags = 0;
@@ -9190,6 +9388,17 @@
 	vcpu->arch.ia32_xss = 0;
 
 	kvm_x86_ops->vcpu_reset(vcpu, init_event);
+
+	/*
+	 * Reset the MMU context if paging was enabled prior to INIT (which is
+	 * implied if CR0.PG=1 as CR0 will be '0' prior to RESET).  Unlike the
+	 * standard CR0/CR4/EFER modification paths, only CR0.PG needs to be
+	 * checked because it is unconditionally cleared on INIT and all other
+	 * paging related bits are ignored if paging is disabled, i.e. CR0.WP,
+	 * CR4, and EFER changes are all irrelevant if CR0.PG was '0'.
+	 */
+	if (old_cr0 & X86_CR0_PG)
+		kvm_mmu_reset_context(vcpu);
 }
 
 void kvm_vcpu_deliver_sipi_vector(struct kvm_vcpu *vcpu, u8 vector)
@@ -9308,6 +9517,8 @@
 	if (r != 0)
 		return r;
 
+	cr4_reserved_bits = kvm_host_cr4_reserved_bits(&boot_cpu_data);
+
 	if (kvm_has_tsc_control) {
 		/*
 		 * Make sure the user can only configure tsc_khz values that
@@ -9648,6 +9859,13 @@
 {
 	int i;
 
+	/*
+	 * Clear out the previous array pointers for the KVM_MR_MOVE case.  The
+	 * old arrays will be freed by __kvm_set_memory_region() if installing
+	 * the new memslot is successful.
+	 */
+	memset(&slot->arch, 0, sizeof(slot->arch));
+
 	for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) {
 		struct kvm_lpage_info *linfo;
 		unsigned long ugfn;
@@ -9710,11 +9928,18 @@
 
 void kvm_arch_memslots_updated(struct kvm *kvm, u64 gen)
 {
+	struct kvm_vcpu *vcpu;
+	int i;
+
 	/*
 	 * memslots->generation has been incremented.
 	 * mmio generation may have reached its maximum value.
 	 */
 	kvm_mmu_invalidate_mmio_sptes(kvm, gen);
+
+	/* Force re-initialization of steal_time cache */
+	kvm_for_each_vcpu(i, vcpu, kvm)
+		kvm_vcpu_kick(vcpu);
 }
 
 int kvm_arch_prepare_memory_region(struct kvm *kvm,
@@ -9722,6 +9947,10 @@
 				const struct kvm_userspace_memory_region *mem,
 				enum kvm_mr_change change)
 {
+	if (change == KVM_MR_MOVE)
+		return kvm_arch_create_memslot(kvm, memslot,
+					       mem->memory_size >> PAGE_SHIFT);
+
 	return 0;
 }
 
@@ -9966,7 +10195,7 @@
 	      work->arch.cr3 != vcpu->arch.mmu->get_cr3(vcpu))
 		return;
 
-	vcpu->arch.mmu->page_fault(vcpu, work->gva, 0, true);
+	vcpu->arch.mmu->page_fault(vcpu, work->cr2_or_gpa, 0, true);
 }
 
 static inline u32 kvm_async_pf_hash_fn(gfn_t gfn)
@@ -10079,7 +10308,7 @@
 {
 	struct x86_exception fault;
 
-	trace_kvm_async_pf_not_present(work->arch.token, work->gva);
+	trace_kvm_async_pf_not_present(work->arch.token, work->cr2_or_gpa);
 	kvm_add_async_pf_gfn(vcpu, work->arch.gfn);
 
 	if (kvm_can_deliver_async_pf(vcpu) &&
@@ -10114,7 +10343,7 @@
 		work->arch.token = ~0; /* broadcast wakeup */
 	else
 		kvm_del_async_pf_gfn(vcpu, work->arch.gfn);
-	trace_kvm_async_pf_ready(work->arch.token, work->gva);
+	trace_kvm_async_pf_ready(work->arch.token, work->cr2_or_gpa);
 
 	if (vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED &&
 	    !apf_get_user(vcpu, &val)) {
@@ -10163,9 +10392,9 @@
 }
 EXPORT_SYMBOL_GPL(kvm_arch_end_assignment);
 
-bool kvm_arch_has_assigned_device(struct kvm *kvm)
+bool noinstr kvm_arch_has_assigned_device(struct kvm *kvm)
 {
-	return atomic_read(&kvm->arch.assigned_device_count);
+	return arch_atomic_read(&kvm->arch.assigned_device_count);
 }
 EXPORT_SYMBOL_GPL(kvm_arch_has_assigned_device);
 
@@ -10245,6 +10474,32 @@
 EXPORT_SYMBOL_GPL(kvm_arch_no_poll);
 
 
+int kvm_spec_ctrl_test_value(u64 value)
+{
+	/*
+	 * test that setting IA32_SPEC_CTRL to given value
+	 * is allowed by the host processor
+	 */
+
+	u64 saved_value;
+	unsigned long flags;
+	int ret = 0;
+
+	local_irq_save(flags);
+
+	if (rdmsrl_safe(MSR_IA32_SPEC_CTRL, &saved_value))
+		ret = 1;
+	else if (wrmsrl_safe(MSR_IA32_SPEC_CTRL, value))
+		ret = 1;
+	else
+		wrmsrl(MSR_IA32_SPEC_CTRL, saved_value);
+
+	local_irq_restore(flags);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(kvm_spec_ctrl_test_value);
+
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_exit);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_fast_mmio);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_inj_virq);
--- linux-ein-5.4.0.orig/arch/x86/kvm/x86.h
+++ linux-ein-5.4.0/arch/x86/kvm/x86.h
@@ -286,7 +286,7 @@
 bool kvm_mtrr_check_gfn_range_consistency(struct kvm_vcpu *vcpu, gfn_t gfn,
 					  int page_num);
 bool kvm_vector_hashing_enabled(void);
-int x86_emulate_instruction(struct kvm_vcpu *vcpu, unsigned long cr2,
+int x86_emulate_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
 			    int emulation_type, void *insn, int insn_len);
 
 #define KVM_SUPPORTED_XCR0     (XFEATURE_MASK_FP | XFEATURE_MASK_SSE \
@@ -368,5 +368,6 @@
 
 void kvm_load_guest_xcr0(struct kvm_vcpu *vcpu);
 void kvm_put_guest_xcr0(struct kvm_vcpu *vcpu);
+int kvm_spec_ctrl_test_value(u64 value);
 
 #endif
--- linux-ein-5.4.0.orig/arch/x86/lib/delay.c
+++ linux-ein-5.4.0/arch/x86/lib/delay.c
@@ -43,8 +43,8 @@
 		"	jnz 2b		\n"
 		"3:	dec %0		\n"
 
-		: /* we don't need output */
-		:"a" (loops)
+		: "+a" (loops)
+		:
 	);
 }
 
--- linux-ein-5.4.0.orig/arch/x86/lib/insn-eval.c
+++ linux-ein-5.4.0/arch/x86/lib/insn-eval.c
@@ -70,14 +70,15 @@
 {
 	int idx = INAT_SEG_REG_DEFAULT;
 	int num_overrides = 0, i;
+	insn_byte_t p;
 
 	insn_get_prefixes(insn);
 
 	/* Look for any segment override prefixes. */
-	for (i = 0; i < insn->prefixes.nbytes; i++) {
+	for_each_insn_prefix(insn, i, p) {
 		insn_attr_t attr;
 
-		attr = inat_get_opcode_attribute(insn->prefixes.bytes[i]);
+		attr = inat_get_opcode_attribute(p);
 		switch (attr) {
 		case INAT_MAKE_PREFIX(INAT_PFX_CS):
 			idx = INAT_SEG_REG_CS;
--- linux-ein-5.4.0.orig/arch/x86/lib/insn.c
+++ linux-ein-5.4.0/arch/x86/lib/insn.c
@@ -13,6 +13,8 @@
 #include <asm/inat.h>
 #include <asm/insn.h>
 
+#include <asm/emulate_prefix.h>
+
 /* Verify next sizeof(t) bytes can be on the same instruction */
 #define validate_next(t, insn, n)	\
 	((insn)->next_byte + sizeof(t) + n <= (insn)->end_kaddr)
@@ -58,6 +60,36 @@
 		insn->addr_bytes = 4;
 }
 
+static const insn_byte_t xen_prefix[] = { __XEN_EMULATE_PREFIX };
+static const insn_byte_t kvm_prefix[] = { __KVM_EMULATE_PREFIX };
+
+static int __insn_get_emulate_prefix(struct insn *insn,
+				     const insn_byte_t *prefix, size_t len)
+{
+	size_t i;
+
+	for (i = 0; i < len; i++) {
+		if (peek_nbyte_next(insn_byte_t, insn, i) != prefix[i])
+			goto err_out;
+	}
+
+	insn->emulate_prefix_size = len;
+	insn->next_byte += len;
+
+	return 1;
+
+err_out:
+	return 0;
+}
+
+static void insn_get_emulate_prefix(struct insn *insn)
+{
+	if (__insn_get_emulate_prefix(insn, xen_prefix, sizeof(xen_prefix)))
+		return;
+
+	__insn_get_emulate_prefix(insn, kvm_prefix, sizeof(kvm_prefix));
+}
+
 /**
  * insn_get_prefixes - scan x86 instruction prefix bytes
  * @insn:	&struct insn containing instruction
@@ -76,6 +108,8 @@
 	if (prefixes->got)
 		return;
 
+	insn_get_emulate_prefix(insn);
+
 	nb = 0;
 	lb = 0;
 	b = peek_next(insn_byte_t, insn);
--- linux-ein-5.4.0.orig/arch/x86/lib/iomap_copy_64.S
+++ linux-ein-5.4.0/arch/x86/lib/iomap_copy_64.S
@@ -10,6 +10,6 @@
  */
 ENTRY(__iowrite32_copy)
 	movl %edx,%ecx
-	rep movsd
+	rep movsl
 	ret
 ENDPROC(__iowrite32_copy)
--- linux-ein-5.4.0.orig/arch/x86/lib/iomem.c
+++ linux-ein-5.4.0/arch/x86/lib/iomem.c
@@ -22,7 +22,7 @@
 		     : "memory");
 }
 
-void memcpy_fromio(void *to, const volatile void __iomem *from, size_t n)
+static void string_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n)
 {
 	if (unlikely(!n))
 		return;
@@ -38,9 +38,8 @@
 	}
 	rep_movs(to, (const void *)from, n);
 }
-EXPORT_SYMBOL(memcpy_fromio);
 
-void memcpy_toio(volatile void __iomem *to, const void *from, size_t n)
+static void string_memcpy_toio(volatile void __iomem *to, const void *from, size_t n)
 {
 	if (unlikely(!n))
 		return;
@@ -56,14 +55,64 @@
 	}
 	rep_movs((void *)to, (const void *) from, n);
 }
+
+static void unrolled_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n)
+{
+	const volatile char __iomem *in = from;
+	char *out = to;
+	int i;
+
+	for (i = 0; i < n; ++i)
+		out[i] = readb(&in[i]);
+}
+
+static void unrolled_memcpy_toio(volatile void __iomem *to, const void *from, size_t n)
+{
+	volatile char __iomem *out = to;
+	const char *in = from;
+	int i;
+
+	for (i = 0; i < n; ++i)
+		writeb(in[i], &out[i]);
+}
+
+static void unrolled_memset_io(volatile void __iomem *a, int b, size_t c)
+{
+	volatile char __iomem *mem = a;
+	int i;
+
+	for (i = 0; i < c; ++i)
+		writeb(b, &mem[i]);
+}
+
+void memcpy_fromio(void *to, const volatile void __iomem *from, size_t n)
+{
+	if (sev_key_active())
+		unrolled_memcpy_fromio(to, from, n);
+	else
+		string_memcpy_fromio(to, from, n);
+}
+EXPORT_SYMBOL(memcpy_fromio);
+
+void memcpy_toio(volatile void __iomem *to, const void *from, size_t n)
+{
+	if (sev_key_active())
+		unrolled_memcpy_toio(to, from, n);
+	else
+		string_memcpy_toio(to, from, n);
+}
 EXPORT_SYMBOL(memcpy_toio);
 
 void memset_io(volatile void __iomem *a, int b, size_t c)
 {
-	/*
-	 * TODO: memset can mangle the IO patterns quite a bit.
-	 * perhaps it would be better to use a dumb one:
-	 */
-	memset((void *)a, b, c);
+	if (sev_key_active()) {
+		unrolled_memset_io(a, b, c);
+	} else {
+		/*
+		 * TODO: memset can mangle the IO patterns quite a bit.
+		 * perhaps it would be better to use a dumb one:
+		 */
+		memset((void *)a, b, c);
+	}
 }
 EXPORT_SYMBOL(memset_io);
--- linux-ein-5.4.0.orig/arch/x86/lib/memcpy_64.S
+++ linux-ein-5.4.0/arch/x86/lib/memcpy_64.S
@@ -15,8 +15,6 @@
  * to a jmp to memcpy_erms which does the REP; MOVSB mem copy.
  */
 
-.weak memcpy
-
 /*
  * memcpy - Copy a memory block.
  *
@@ -29,7 +27,7 @@
  * rax original destination
  */
 ENTRY(__memcpy)
-ENTRY(memcpy)
+SYM_FUNC_START_WEAK(memcpy)
 	ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
 		      "jmp memcpy_erms", X86_FEATURE_ERMS
 
--- linux-ein-5.4.0.orig/arch/x86/lib/memmove_64.S
+++ linux-ein-5.4.0/arch/x86/lib/memmove_64.S
@@ -24,9 +24,7 @@
  * Output:
  * rax: dest
  */
-.weak memmove
-
-ENTRY(memmove)
+SYM_FUNC_START_WEAK(memmove)
 ENTRY(__memmove)
 
 	/* Handle more 32 bytes in loop */
--- linux-ein-5.4.0.orig/arch/x86/lib/memset_64.S
+++ linux-ein-5.4.0/arch/x86/lib/memset_64.S
@@ -6,8 +6,6 @@
 #include <asm/alternative-asm.h>
 #include <asm/export.h>
 
-.weak memset
-
 /*
  * ISO C memset - set a memory block to a byte value. This function uses fast
  * string to get better performance than the original function. The code is
@@ -19,7 +17,7 @@
  *
  * rax   original destination
  */
-ENTRY(memset)
+SYM_FUNC_START_WEAK(memset)
 ENTRY(__memset)
 	/*
 	 * Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
--- linux-ein-5.4.0.orig/arch/x86/lib/mmx_32.c
+++ linux-ein-5.4.0/arch/x86/lib/mmx_32.c
@@ -26,6 +26,16 @@
 #include <asm/fpu/api.h>
 #include <asm/asm.h>
 
+/*
+ * Use KFPU_387.  MMX instructions are not affected by MXCSR,
+ * but both AMD and Intel documentation states that even integer MMX
+ * operations will result in #MF if an exception is pending in FCW.
+ *
+ * EMMS is not needed afterwards because, after calling kernel_fpu_end(),
+ * any subsequent user of the 387 stack will reinitialize it using
+ * KFPU_387.
+ */
+
 void *_mmx_memcpy(void *to, const void *from, size_t len)
 {
 	void *p;
@@ -37,7 +47,7 @@
 	p = to;
 	i = len >> 6; /* len/64 */
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"1: prefetch (%0)\n"		/* This set is 28 bytes */
@@ -127,7 +137,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"  pxor %%mm0, %%mm0\n" : :
@@ -160,7 +170,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	/*
 	 * maybe the prefetch stuff can go before the expensive fnsave...
@@ -247,7 +257,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"  pxor %%mm0, %%mm0\n" : :
@@ -282,7 +292,7 @@
 {
 	int i;
 
-	kernel_fpu_begin();
+	kernel_fpu_begin_mask(KFPU_387);
 
 	__asm__ __volatile__ (
 		"1: prefetch (%0)\n"
--- linux-ein-5.4.0.orig/arch/x86/lib/msr-smp.c
+++ linux-ein-5.4.0/arch/x86/lib/msr-smp.c
@@ -253,7 +253,7 @@
 	rv->err = wrmsr_safe_regs(rv->regs);
 }
 
-int rdmsr_safe_regs_on_cpu(unsigned int cpu, u32 *regs)
+int rdmsr_safe_regs_on_cpu(unsigned int cpu, u32 regs[8])
 {
 	int err;
 	struct msr_regs_info rv;
@@ -266,7 +266,7 @@
 }
 EXPORT_SYMBOL(rdmsr_safe_regs_on_cpu);
 
-int wrmsr_safe_regs_on_cpu(unsigned int cpu, u32 *regs)
+int wrmsr_safe_regs_on_cpu(unsigned int cpu, u32 regs[8])
 {
 	int err;
 	struct msr_regs_info rv;
--- linux-ein-5.4.0.orig/arch/x86/lib/usercopy_64.c
+++ linux-ein-5.4.0/arch/x86/lib/usercopy_64.c
@@ -24,6 +24,7 @@
 	asm volatile(
 		"	testq  %[size8],%[size8]\n"
 		"	jz     4f\n"
+		"	.align 16\n"
 		"0:	movq $0,(%[dst])\n"
 		"	addq   $8,%[dst]\n"
 		"	decl %%ecx ; jnz   0b\n"
@@ -119,7 +120,7 @@
 	 */
 	if (size < 8) {
 		if (!IS_ALIGNED(dest, 4) || size != 4)
-			clean_cache_range(dst, 1);
+			clean_cache_range(dst, size);
 	} else {
 		if (!IS_ALIGNED(dest, 8)) {
 			dest = ALIGN(dest, boot_cpu_data.x86_clflush_size);
@@ -141,7 +142,7 @@
 
 	/* cache copy and flush to align dest */
 	if (!IS_ALIGNED(dest, 8)) {
-		unsigned len = min_t(unsigned, size, ALIGN(dest, 8) - dest);
+		size_t len = min_t(size_t, size, ALIGN(dest, 8) - dest);
 
 		memcpy((void *) dest, (void *) source, len);
 		clean_cache_range((void *) dest, len);
--- linux-ein-5.4.0.orig/arch/x86/lib/x86-opcode-map.txt
+++ linux-ein-5.4.0/arch/x86/lib/x86-opcode-map.txt
@@ -333,7 +333,7 @@
 06: CLTS
 07: SYSRET (o64)
 08: INVD
-09: WBINVD
+09: WBINVD | WBNOINVD (F3)
 0a:
 0b: UD2 (1B)
 0c:
@@ -364,7 +364,7 @@
 # a ModR/M byte.
 1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev
 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
-1c:
+1c: Grp20 (1A),(1C)
 1d:
 1e:
 1f: NOP Ev
@@ -792,6 +792,8 @@
 f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
 f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
 f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
+f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
+f9: MOVDIRI My,Gy
 EndTable
 
 Table: 3-byte opcode 2 (0x0f 0x3a)
@@ -907,7 +909,7 @@
 
 GrpTable: Grp3_2
 0: TEST Ev,Iz
-1:
+1: TEST Ev,Iz
 2: NOT Ev
 3: NEG Ev
 4: MUL rAX,Ev
@@ -943,9 +945,9 @@
 EndTable
 
 GrpTable: Grp7
-0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B)
-1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B)
-2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B)
+0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
+1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
+2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
 3: LIDT Ms
 4: SMSW Mw/Rv
 5: rdpkru (110),(11B) | wrpkru (111),(11B)
@@ -1020,7 +1022,7 @@
 3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
 4: XSAVE | ptwrite Ey (F3),(11B)
 5: XRSTOR | lfence (11B)
-6: XSAVEOPT | clwb (66) | mfence (11B)
+6: XSAVEOPT | clwb (66) | mfence (11B) | TPAUSE Rd (66),(11B) | UMONITOR Rv (F3),(11B) | UMWAIT Rd (F2),(11B)
 7: clflush | clflushopt (66) | sfence (11B)
 EndTable
 
@@ -1051,6 +1053,10 @@
 6: vscatterpf1qps/d Wx (66),(ev)
 EndTable
 
+GrpTable: Grp20
+0: cldemote Mb
+EndTable
+
 # AMD's Prefetch Group
 GrpTable: GrpP
 0: PREFETCH
--- linux-ein-5.4.0.orig/arch/x86/math-emu/fpu_system.h
+++ linux-ein-5.4.0/arch/x86/math-emu/fpu_system.h
@@ -107,6 +107,8 @@
 #define FPU_access_ok(y,z)	if ( !access_ok(y,z) ) \
 				math_abort(FPU_info,SIGSEGV)
 #define FPU_abort		math_abort(FPU_info, SIGSEGV)
+#define FPU_copy_from_user(to, from, n)	\
+		do { if (copy_from_user(to, from, n)) FPU_abort; } while (0)
 
 #undef FPU_IGNORE_CODE_SEGV
 #ifdef FPU_IGNORE_CODE_SEGV
@@ -122,7 +124,7 @@
 #define	FPU_code_access_ok(z) FPU_access_ok((void __user *)FPU_EIP,z)
 #endif
 
-#define FPU_get_user(x,y)       get_user((x),(y))
-#define FPU_put_user(x,y)       put_user((x),(y))
+#define FPU_get_user(x,y) do { if (get_user((x),(y))) FPU_abort; } while (0)
+#define FPU_put_user(x,y) do { if (put_user((x),(y))) FPU_abort; } while (0)
 
 #endif
--- linux-ein-5.4.0.orig/arch/x86/math-emu/reg_ld_str.c
+++ linux-ein-5.4.0/arch/x86/math-emu/reg_ld_str.c
@@ -85,7 +85,7 @@
 
 	RE_ENTRANT_CHECK_OFF;
 	FPU_access_ok(s, 10);
-	__copy_from_user(sti_ptr, s, 10);
+	FPU_copy_from_user(sti_ptr, s, 10);
 	RE_ENTRANT_CHECK_ON;
 
 	return FPU_tagof(sti_ptr);
@@ -1126,9 +1126,9 @@
 	/* Copy all registers in stack order. */
 	RE_ENTRANT_CHECK_OFF;
 	FPU_access_ok(s, 80);
-	__copy_from_user(register_base + offset, s, other);
+	FPU_copy_from_user(register_base + offset, s, other);
 	if (offset)
-		__copy_from_user(register_base, s + other, offset);
+		FPU_copy_from_user(register_base, s + other, offset);
 	RE_ENTRANT_CHECK_ON;
 
 	for (i = 0; i < 8; i++) {
--- linux-ein-5.4.0.orig/arch/x86/math-emu/wm_sqrt.S
+++ linux-ein-5.4.0/arch/x86/math-emu/wm_sqrt.S
@@ -209,7 +209,7 @@
 
 #ifdef PARANOID
 /* It should be possible to get here only if the arg is ffff....ffff */
-	cmp	$0xffffffff,FPU_fsqrt_arg_1
+	cmpl	$0xffffffff,FPU_fsqrt_arg_1
 	jnz	sqrt_stage_2_error
 #endif /* PARANOID */
 
--- linux-ein-5.4.0.orig/arch/x86/mm/cpu_entry_area.c
+++ linux-ein-5.4.0/arch/x86/mm/cpu_entry_area.c
@@ -4,22 +4,72 @@
 #include <linux/percpu.h>
 #include <linux/kallsyms.h>
 #include <linux/kcore.h>
+#include <linux/prandom.h>
 
 #include <asm/cpu_entry_area.h>
 #include <asm/pgtable.h>
 #include <asm/fixmap.h>
 #include <asm/desc.h>
+#include <asm/kasan.h>
+#include <asm/setup.h>
 
 static DEFINE_PER_CPU_PAGE_ALIGNED(struct entry_stack_page, entry_stack_storage);
 
 #ifdef CONFIG_X86_64
 static DEFINE_PER_CPU_PAGE_ALIGNED(struct exception_stacks, exception_stacks);
 DEFINE_PER_CPU(struct cea_exception_stacks*, cea_exception_stacks);
+
+static DEFINE_PER_CPU_READ_MOSTLY(unsigned long, _cea_offset);
+
+static __always_inline unsigned int cea_offset(unsigned int cpu)
+{
+	return per_cpu(_cea_offset, cpu);
+}
+
+static __init void init_cea_offsets(void)
+{
+	unsigned int max_cea;
+	unsigned int i, j;
+
+	if (!kaslr_enabled()) {
+		for_each_possible_cpu(i)
+			per_cpu(_cea_offset, i) = i;
+		return;
+	}
+
+	max_cea = (CPU_ENTRY_AREA_MAP_SIZE - PAGE_SIZE) / CPU_ENTRY_AREA_SIZE;
+
+	/* O(sodding terrible) */
+	for_each_possible_cpu(i) {
+		unsigned int cea;
+
+again:
+		cea = prandom_u32_max(max_cea);
+
+		for_each_possible_cpu(j) {
+			if (cea_offset(j) == cea)
+				goto again;
+
+			if (i == j)
+				break;
+		}
+
+		per_cpu(_cea_offset, i) = cea;
+	}
+}
+#else /* !X86_64 */
+DECLARE_PER_CPU_PAGE_ALIGNED(struct doublefault_stack, doublefault_stack);
+
+static __always_inline unsigned int cea_offset(unsigned int cpu)
+{
+	return cpu;
+}
+static inline void init_cea_offsets(void) { }
 #endif
 
 struct cpu_entry_area *get_cpu_entry_area(int cpu)
 {
-	unsigned long va = CPU_ENTRY_AREA_PER_CPU + cpu * CPU_ENTRY_AREA_SIZE;
+	unsigned long va = CPU_ENTRY_AREA_PER_CPU + cea_offset(cpu) * CPU_ENTRY_AREA_SIZE;
 	BUILD_BUG_ON(sizeof(struct cpu_entry_area) % PAGE_SIZE != 0);
 
 	return (struct cpu_entry_area *) va;
@@ -135,6 +185,9 @@
 	pgprot_t tss_prot = PAGE_KERNEL;
 #endif
 
+	kasan_populate_shadow_for_vaddr(cea, CPU_ENTRY_AREA_SIZE,
+					early_cpu_to_node(cpu));
+
 	cea_set_pte(&cea->gdt, get_cpu_gdt_paddr(cpu), gdt_prot);
 
 	cea_map_percpu_pages(&cea->entry_stack_page,
@@ -178,7 +231,8 @@
 #ifdef CONFIG_X86_32
 	unsigned long start, end;
 
-	BUILD_BUG_ON(CPU_ENTRY_AREA_PAGES * PAGE_SIZE < CPU_ENTRY_AREA_MAP_SIZE);
+	/* The +1 is for the readonly IDT: */
+	BUILD_BUG_ON((CPU_ENTRY_AREA_PAGES+1)*PAGE_SIZE != CPU_ENTRY_AREA_MAP_SIZE);
 	BUG_ON(CPU_ENTRY_AREA_BASE & ~PMD_MASK);
 
 	start = CPU_ENTRY_AREA_BASE;
@@ -194,6 +248,8 @@
 {
 	unsigned int cpu;
 
+	init_cea_offsets();
+
 	setup_cpu_entry_area_ptes();
 
 	for_each_possible_cpu(cpu)
--- linux-ein-5.4.0.orig/arch/x86/mm/extable.c
+++ linux-ein-5.4.0/arch/x86/mm/extable.c
@@ -45,55 +45,6 @@
 EXPORT_SYMBOL_GPL(ex_handler_fault);
 
 /*
- * Handler for UD0 exception following a failed test against the
- * result of a refcount inc/dec/add/sub.
- */
-__visible bool ex_handler_refcount(const struct exception_table_entry *fixup,
-				   struct pt_regs *regs, int trapnr,
-				   unsigned long error_code,
-				   unsigned long fault_addr)
-{
-	/* First unconditionally saturate the refcount. */
-	*(int *)regs->cx = INT_MIN / 2;
-
-	/*
-	 * Strictly speaking, this reports the fixup destination, not
-	 * the fault location, and not the actually overflowing
-	 * instruction, which is the instruction before the "js", but
-	 * since that instruction could be a variety of lengths, just
-	 * report the location after the overflow, which should be close
-	 * enough for finding the overflow, as it's at least back in
-	 * the function, having returned from .text.unlikely.
-	 */
-	regs->ip = ex_fixup_addr(fixup);
-
-	/*
-	 * This function has been called because either a negative refcount
-	 * value was seen by any of the refcount functions, or a zero
-	 * refcount value was seen by refcount_dec().
-	 *
-	 * If we crossed from INT_MAX to INT_MIN, OF (Overflow Flag: result
-	 * wrapped around) will be set. Additionally, seeing the refcount
-	 * reach 0 will set ZF (Zero Flag: result was zero). In each of
-	 * these cases we want a report, since it's a boundary condition.
-	 * The SF case is not reported since it indicates post-boundary
-	 * manipulations below zero or above INT_MAX. And if none of the
-	 * flags are set, something has gone very wrong, so report it.
-	 */
-	if (regs->flags & (X86_EFLAGS_OF | X86_EFLAGS_ZF)) {
-		bool zero = regs->flags & X86_EFLAGS_ZF;
-
-		refcount_error_report(regs, zero ? "hit zero" : "overflow");
-	} else if ((regs->flags & X86_EFLAGS_SF) == 0) {
-		/* Report if none of OF, ZF, nor SF are set. */
-		refcount_error_report(regs, "unexpected saturation");
-	}
-
-	return true;
-}
-EXPORT_SYMBOL(ex_handler_refcount);
-
-/*
  * Handler for when we fail to restore a task's FPU state.  We should never get
  * here because the FPU state of a task using the FPU (task->thread.fpu.state)
  * should always be valid.  However, past bugs have allowed userspace to set
--- linux-ein-5.4.0.orig/arch/x86/mm/fault.c
+++ linux-ein-5.4.0/arch/x86/mm/fault.c
@@ -189,7 +189,7 @@
 	return pmd_k;
 }
 
-void vmalloc_sync_all(void)
+static void vmalloc_sync(void)
 {
 	unsigned long address;
 
@@ -197,7 +197,7 @@
 		return;
 
 	for (address = VMALLOC_START & PMD_MASK;
-	     address >= TASK_SIZE_MAX && address < FIXADDR_TOP;
+	     address >= TASK_SIZE_MAX && address < VMALLOC_END;
 	     address += PMD_SIZE) {
 		struct page *page;
 
@@ -216,6 +216,16 @@
 	}
 }
 
+void vmalloc_sync_mappings(void)
+{
+	vmalloc_sync();
+}
+
+void vmalloc_sync_unmappings(void)
+{
+	vmalloc_sync();
+}
+
 /*
  * 32-bit:
  *
@@ -318,11 +328,23 @@
 
 #else /* CONFIG_X86_64: */
 
-void vmalloc_sync_all(void)
+void vmalloc_sync_mappings(void)
 {
+	/*
+	 * 64-bit mappings might allocate new p4d/pud pages
+	 * that need to be propagated to all tasks' PGDs.
+	 */
 	sync_global_pgds(VMALLOC_START & PGDIR_MASK, VMALLOC_END);
 }
 
+void vmalloc_sync_unmappings(void)
+{
+	/*
+	 * Unmappings never allocate or free p4d/pud pages.
+	 * No work is required here.
+	 */
+}
+
 /*
  * 64-bit:
  *
--- linux-ein-5.4.0.orig/arch/x86/mm/ident_map.c
+++ linux-ein-5.4.0/arch/x86/mm/ident_map.c
@@ -62,6 +62,7 @@
 			  unsigned long addr, unsigned long end)
 {
 	unsigned long next;
+	int result;
 
 	for (; addr < end; addr = next) {
 		p4d_t *p4d = p4d_page + p4d_index(addr);
@@ -73,13 +74,20 @@
 
 		if (p4d_present(*p4d)) {
 			pud = pud_offset(p4d, 0);
-			ident_pud_init(info, pud, addr, next);
+			result = ident_pud_init(info, pud, addr, next);
+			if (result)
+				return result;
+
 			continue;
 		}
 		pud = (pud_t *)info->alloc_pgt_page(info->context);
 		if (!pud)
 			return -ENOMEM;
-		ident_pud_init(info, pud, addr, next);
+
+		result = ident_pud_init(info, pud, addr, next);
+		if (result)
+			return result;
+
 		set_p4d(p4d, __p4d(__pa(pud) | info->kernpg_flag));
 	}
 
--- linux-ein-5.4.0.orig/arch/x86/mm/init.c
+++ linux-ein-5.4.0/arch/x86/mm/init.c
@@ -7,8 +7,10 @@
 #include <linux/swapops.h>
 #include <linux/kmemleak.h>
 #include <linux/sched/task.h>
+#include <linux/sched/mm.h>
 
 #include <asm/set_memory.h>
+#include <asm/cpu_device_id.h>
 #include <asm/e820/api.h>
 #include <asm/init.h>
 #include <asm/page.h>
@@ -25,6 +27,7 @@
 #include <asm/cpufeature.h>
 #include <asm/pti.h>
 #include <asm/text-patching.h>
+#include <asm/paravirt.h>
 
 /*
  * We need to define the tracepoints somewhere, and tlb.c
@@ -121,8 +124,6 @@
 	} else {
 		pfn = pgt_buf_end;
 		pgt_buf_end += num;
-		printk(KERN_DEBUG "BRK [%#010lx, %#010lx] PGTABLE\n",
-			pfn << PAGE_SHIFT, (pgt_buf_end << PAGE_SHIFT) - 1);
 	}
 
 	for (i = 0; i < num; i++) {
@@ -210,6 +211,24 @@
 	}
 }
 
+#define INTEL_MATCH(_model) { .vendor  = X86_VENDOR_INTEL,	\
+			      .family  = 6,			\
+			      .model = _model,			\
+			    }
+/*
+ * INVLPG may not properly flush Global entries
+ * on these CPUs when PCIDs are enabled.
+ */
+static const struct x86_cpu_id invlpg_miss_ids[] = {
+	INTEL_MATCH(INTEL_FAM6_ALDERLAKE   ),
+	INTEL_MATCH(INTEL_FAM6_ALDERLAKE_L ),
+	INTEL_MATCH(INTEL_FAM6_ALDERLAKE_N ),
+	INTEL_MATCH(INTEL_FAM6_RAPTORLAKE  ),
+	INTEL_MATCH(INTEL_FAM6_RAPTORLAKE_P),
+	INTEL_MATCH(INTEL_FAM6_RAPTORLAKE_S),
+	{}
+};
+
 static void setup_pcid(void)
 {
 	if (!IS_ENABLED(CONFIG_X86_64))
@@ -218,6 +237,12 @@
 	if (!boot_cpu_has(X86_FEATURE_PCID))
 		return;
 
+	if (x86_match_cpu(invlpg_miss_ids)) {
+		pr_info("Incomplete global flushes, disabling PCID");
+		setup_clear_cpu_cap(X86_FEATURE_PCID);
+		return;
+	}
+
 	if (boot_cpu_has(X86_FEATURE_PGE)) {
 		/*
 		 * This can't be cr4_set_bits_and_update_boot() -- the
@@ -712,9 +737,12 @@
 	spinlock_t *ptl;
 	pte_t *ptep;
 
-	poking_mm = copy_init_mm();
+	poking_mm = mm_alloc();
 	BUG_ON(!poking_mm);
 
+	/* Xen PV guests need the PGD to be pinned. */
+	paravirt_arch_dup_mmap(NULL, poking_mm);
+
 	/*
 	 * Randomize the poking address, but make sure that the following page
 	 * will be mapped at the same PMD. We need 2 pages, so find space for 3,
--- linux-ein-5.4.0.orig/arch/x86/mm/init_32.c
+++ linux-ein-5.4.0/arch/x86/mm/init_32.c
@@ -779,6 +779,9 @@
 	 * important here.
 	 */
 	set_highmem_pages_init();
+#ifdef CONFIG_HIGHMEM
+	set_default_mem_hotplug_zone(ZONE_HIGHMEM);
+#endif
 
 	/* this will put all low memory onto the freelists */
 	memblock_free_all();
@@ -865,10 +868,8 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct zone *zone;
 
-	zone = page_zone(pfn_to_page(start_pfn));
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 }
 #endif
 
--- linux-ein-5.4.0.orig/arch/x86/mm/init_64.c
+++ linux-ein-5.4.0/arch/x86/mm/init_64.c
@@ -1212,10 +1212,8 @@
 {
 	unsigned long start_pfn = start >> PAGE_SHIFT;
 	unsigned long nr_pages = size >> PAGE_SHIFT;
-	struct page *page = pfn_to_page(start_pfn) + vmem_altmap_offset(altmap);
-	struct zone *zone = page_zone(page);
 
-	__remove_pages(zone, start_pfn, nr_pages, altmap);
+	__remove_pages(start_pfn, nr_pages, altmap);
 	kernel_physical_mapping_remove(start, start + size);
 }
 #endif /* CONFIG_MEMORY_HOTPLUG */
@@ -1357,18 +1355,18 @@
 		return 0;
 
 	p4d = p4d_offset(pgd, addr);
-	if (p4d_none(*p4d))
+	if (!p4d_present(*p4d))
 		return 0;
 
 	pud = pud_offset(p4d, addr);
-	if (pud_none(*pud))
+	if (!pud_present(*pud))
 		return 0;
 
 	if (pud_large(*pud))
 		return pfn_valid(pud_pfn(*pud));
 
 	pmd = pmd_offset(pud, addr);
-	if (pmd_none(*pmd))
+	if (!pmd_present(*pmd))
 		return 0;
 
 	if (pmd_large(*pmd))
--- linux-ein-5.4.0.orig/arch/x86/mm/ioremap.c
+++ linux-ein-5.4.0/arch/x86/mm/ioremap.c
@@ -106,6 +106,24 @@
 	return 0;
 }
 
+/*
+ * The EFI runtime services data area is not covered by walk_mem_res(), but must
+ * be mapped encrypted when SEV is active.
+ */
+static void __ioremap_check_other(resource_size_t addr, struct ioremap_desc *desc)
+{
+	if (!sev_active())
+		return;
+
+	if (!IS_ENABLED(CONFIG_EFI))
+		return;
+
+	if (efi_mem_type(addr) == EFI_RUNTIME_SERVICES_DATA ||
+	    (efi_mem_type(addr) == EFI_BOOT_SERVICES_DATA &&
+	     efi_mem_attributes(addr) & EFI_MEMORY_RUNTIME))
+		desc->flags |= IORES_MAP_ENCRYPTED;
+}
+
 static int __ioremap_collect_map_flags(struct resource *res, void *arg)
 {
 	struct ioremap_desc *desc = arg;
@@ -124,6 +142,9 @@
  * To avoid multiple resource walks, this function walks resources marked as
  * IORESOURCE_MEM and IORESOURCE_BUSY and looking for system RAM and/or a
  * resource described not as IORES_DESC_NONE (e.g. IORES_DESC_ACPI_TABLES).
+ *
+ * After that, deal with misc other ranges in __ioremap_check_other() which do
+ * not fall into the above category.
  */
 static void __ioremap_check_mem(resource_size_t addr, unsigned long size,
 				struct ioremap_desc *desc)
@@ -135,6 +156,8 @@
 	memset(desc, 0, sizeof(struct ioremap_desc));
 
 	walk_mem_res(start, end, desc, __ioremap_collect_map_flags);
+
+	__ioremap_check_other(addr, desc);
 }
 
 /*
@@ -193,9 +216,15 @@
 	 * Mappings have to be page-aligned
 	 */
 	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PHYSICAL_PAGE_MASK;
+	phys_addr &= PAGE_MASK;
 	size = PAGE_ALIGN(last_addr+1) - phys_addr;
 
+	/*
+	 * Mask out any bits not part of the actual physical
+	 * address, like memory encryption bits.
+	 */
+	phys_addr &= PHYSICAL_PAGE_MASK;
+
 	retval = reserve_memtype(phys_addr, (u64)phys_addr + size,
 						pcm, &new_pcm);
 	if (retval) {
--- linux-ein-5.4.0.orig/arch/x86/mm/kasan_init_64.c
+++ linux-ein-5.4.0/arch/x86/mm/kasan_init_64.c
@@ -293,6 +293,18 @@
 	kasan_map_early_shadow(init_top_pgt);
 }
 
+void __init kasan_populate_shadow_for_vaddr(void *va, size_t size, int nid)
+{
+	unsigned long shadow_start, shadow_end;
+
+	shadow_start = (unsigned long)kasan_mem_to_shadow(va);
+	shadow_start = round_down(shadow_start, PAGE_SIZE);
+	shadow_end = (unsigned long)kasan_mem_to_shadow(va + size);
+	shadow_end = round_up(shadow_end, PAGE_SIZE);
+
+	kasan_populate_shadow(shadow_start, shadow_end, nid);
+}
+
 void __init kasan_init(void)
 {
 	int i;
@@ -356,9 +368,6 @@
 		kasan_mem_to_shadow((void *)PAGE_OFFSET + MAXMEM),
 		shadow_cpu_entry_begin);
 
-	kasan_populate_shadow((unsigned long)shadow_cpu_entry_begin,
-			      (unsigned long)shadow_cpu_entry_end, 0);
-
 	kasan_populate_early_shadow(shadow_cpu_entry_end,
 			kasan_mem_to_shadow((void *)__START_KERNEL_map));
 
--- linux-ein-5.4.0.orig/arch/x86/mm/kaslr.c
+++ linux-ein-5.4.0/arch/x86/mm/kaslr.c
@@ -182,11 +182,11 @@
 		set_p4d(p4d_tramp,
 			__p4d(_KERNPG_TABLE | __pa(pud_page_tramp)));
 
-		set_pgd(&trampoline_pgd_entry,
-			__pgd(_KERNPG_TABLE | __pa(p4d_page_tramp)));
+		trampoline_pgd_entry =
+			__pgd(_KERNPG_TABLE | __pa(p4d_page_tramp));
 	} else {
-		set_pgd(&trampoline_pgd_entry,
-			__pgd(_KERNPG_TABLE | __pa(pud_page_tramp)));
+		trampoline_pgd_entry =
+			__pgd(_KERNPG_TABLE | __pa(pud_page_tramp));
 	}
 }
 
--- linux-ein-5.4.0.orig/arch/x86/mm/mem_encrypt.c
+++ linux-ein-5.4.0/arch/x86/mm/mem_encrypt.c
@@ -229,7 +229,7 @@
 	if (pgprot_val(old_prot) == pgprot_val(new_prot))
 		return;
 
-	pa = pfn << page_level_shift(level);
+	pa = pfn << PAGE_SHIFT;
 	size = page_level_size(level);
 
 	/*
@@ -375,6 +375,7 @@
 
 	return false;
 }
+EXPORT_SYMBOL_GPL(sev_active);
 
 /* Architecture __weak replacement functions */
 void __init mem_encrypt_free_decrypted_mem(void)
--- linux-ein-5.4.0.orig/arch/x86/mm/mem_encrypt_identity.c
+++ linux-ein-5.4.0/arch/x86/mm/mem_encrypt_identity.c
@@ -27,6 +27,15 @@
 #undef CONFIG_PARAVIRT_XXL
 #undef CONFIG_PARAVIRT_SPINLOCKS
 
+/*
+ * This code runs before CPU feature bits are set. By default, the
+ * pgtable_l5_enabled() function uses bit X86_FEATURE_LA57 to determine if
+ * 5-level paging is active, so that won't work here. USE_EARLY_PGTABLE_L5
+ * is provided to handle this situation and, instead, use a variable that
+ * has been set by the early boot code.
+ */
+#define USE_EARLY_PGTABLE_L5
+
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/mem_encrypt.h>
@@ -45,8 +54,8 @@
 #define PMD_FLAGS_LARGE		(__PAGE_KERNEL_LARGE_EXEC & ~_PAGE_GLOBAL)
 
 #define PMD_FLAGS_DEC		PMD_FLAGS_LARGE
-#define PMD_FLAGS_DEC_WP	((PMD_FLAGS_DEC & ~_PAGE_CACHE_MASK) | \
-				 (_PAGE_PAT | _PAGE_PWT))
+#define PMD_FLAGS_DEC_WP	((PMD_FLAGS_DEC & ~_PAGE_LARGE_CACHE_MASK) | \
+				 (_PAGE_PAT_LARGE | _PAGE_PWT))
 
 #define PMD_FLAGS_ENC		(PMD_FLAGS_LARGE | _PAGE_ENC)
 
@@ -570,7 +579,8 @@
 	cmdline_ptr = (const char *)((u64)bp->hdr.cmd_line_ptr |
 				     ((u64)bp->ext_cmd_line_ptr << 32));
 
-	cmdline_find_option(cmdline_ptr, cmdline_arg, buffer, sizeof(buffer));
+	if (cmdline_find_option(cmdline_ptr, cmdline_arg, buffer, sizeof(buffer)) < 0)
+		return;
 
 	if (!strncmp(buffer, cmdline_on, sizeof(buffer)))
 		sme_me_mask = me_mask;
--- linux-ein-5.4.0.orig/arch/x86/mm/mmio-mod.c
+++ linux-ein-5.4.0/arch/x86/mm/mmio-mod.c
@@ -372,7 +372,7 @@
 	int cpu;
 	int err;
 
-	if (downed_cpus == NULL &&
+	if (!cpumask_available(downed_cpus) &&
 	    !alloc_cpumask_var(&downed_cpus, GFP_KERNEL)) {
 		pr_notice("Failed to allocate mask\n");
 		goto out;
@@ -402,7 +402,7 @@
 	int cpu;
 	int err;
 
-	if (downed_cpus == NULL || cpumask_weight(downed_cpus) == 0)
+	if (!cpumask_available(downed_cpus) || cpumask_weight(downed_cpus) == 0)
 		return;
 	pr_notice("Re-enabling CPUs...\n");
 	for_each_cpu(cpu, downed_cpus) {
--- linux-ein-5.4.0.orig/arch/x86/mm/numa.c
+++ linux-ein-5.4.0/arch/x86/mm/numa.c
@@ -822,7 +822,7 @@
 		return;
 	}
 	mask = node_to_cpumask_map[node];
-	if (!mask) {
+	if (!cpumask_available(mask)) {
 		pr_err("node_to_cpumask_map[%i] NULL\n", node);
 		dump_stack();
 		return;
@@ -868,7 +868,7 @@
 		dump_stack();
 		return cpu_none_mask;
 	}
-	if (node_to_cpumask_map[node] == NULL) {
+	if (!cpumask_available(node_to_cpumask_map[node])) {
 		printk(KERN_WARNING
 			"cpumask_of_node(%d): no node_to_cpumask_map!\n",
 			node);
--- linux-ein-5.4.0.orig/arch/x86/mm/numa_emulation.c
+++ linux-ein-5.4.0/arch/x86/mm/numa_emulation.c
@@ -321,7 +321,7 @@
 					      u64 addr, u64 max_addr, u64 size)
 {
 	return split_nodes_size_interleave_uniform(ei, pi, addr, max_addr, size,
-			0, NULL, NUMA_NO_NODE);
+			0, NULL, 0);
 }
 
 int __init setup_emu2phys_nid(int *dfl_phys_nid)
--- linux-ein-5.4.0.orig/arch/x86/mm/pageattr.c
+++ linux-ein-5.4.0/arch/x86/mm/pageattr.c
@@ -42,7 +42,8 @@
 	unsigned long	pfn;
 	unsigned int	flags;
 	unsigned int	force_split		: 1,
-			force_static_prot	: 1;
+			force_static_prot	: 1,
+			force_flush_all		: 1;
 	struct page	**pages;
 };
 
@@ -352,10 +353,10 @@
 		return;
 	}
 
-	if (cpa->numpages <= tlb_single_page_flush_ceiling)
-		on_each_cpu(__cpa_flush_tlb, cpa, 1);
-	else
+	if (cpa->force_flush_all || cpa->numpages > tlb_single_page_flush_ceiling)
 		flush_tlb_all();
+	else
+		on_each_cpu(__cpa_flush_tlb, cpa, 1);
 
 	if (!cache)
 		return;
@@ -1584,6 +1585,8 @@
 		alias_cpa.flags &= ~(CPA_PAGES_ARRAY | CPA_ARRAY);
 		alias_cpa.curpage = 0;
 
+		cpa->force_flush_all = 1;
+
 		ret = __change_page_attr_set_clr(&alias_cpa, 0);
 		if (ret)
 			return ret;
@@ -1604,6 +1607,7 @@
 		alias_cpa.flags &= ~(CPA_PAGES_ARRAY | CPA_ARRAY);
 		alias_cpa.curpage = 0;
 
+		cpa->force_flush_all = 1;
 		/*
 		 * The high mapping range is imprecise, so ignore the
 		 * return value.
@@ -1963,7 +1967,7 @@
 	/*
 	 * Before changing the encryption attribute, we need to flush caches.
 	 */
-	cpa_flush(&cpa, 1);
+	cpa_flush(&cpa, !this_cpu_has(X86_FEATURE_SME_COHERENT));
 
 	ret = __change_page_attr_set_clr(&cpa, 1);
 
@@ -2215,7 +2219,7 @@
 		.pgd = pgd,
 		.numpages = numpages,
 		.mask_set = __pgprot(0),
-		.mask_clr = __pgprot(0),
+		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW)),
 		.flags = 0,
 	};
 
@@ -2224,12 +2228,6 @@
 	if (!(__supported_pte_mask & _PAGE_NX))
 		goto out;
 
-	if (!(page_flags & _PAGE_NX))
-		cpa.mask_clr = __pgprot(_PAGE_NX);
-
-	if (!(page_flags & _PAGE_RW))
-		cpa.mask_clr = __pgprot(_PAGE_RW);
-
 	if (!(page_flags & _PAGE_ENC))
 		cpa.mask_clr = pgprot_encrypted(cpa.mask_clr);
 
--- linux-ein-5.4.0.orig/arch/x86/mm/pat.c
+++ linux-ein-5.4.0/arch/x86/mm/pat.c
@@ -75,7 +75,7 @@
 static int __init pat_debug_setup(char *str)
 {
 	pat_debug_enable = 1;
-	return 0;
+	return 1;
 }
 __setup("debugpat", pat_debug_setup);
 
@@ -1132,12 +1132,14 @@
 
 static void *memtype_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 {
+	kfree(v);
 	++*pos;
 	return memtype_get_idx(*pos);
 }
 
 static void memtype_seq_stop(struct seq_file *seq, void *v)
 {
+	kfree(v);
 }
 
 static int memtype_seq_show(struct seq_file *seq, void *v)
@@ -1146,7 +1148,6 @@
 
 	seq_printf(seq, "%s @ 0x%Lx-0x%Lx\n", cattr_name(print_entry->type),
 			print_entry->start, print_entry->end);
-	kfree(print_entry);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/x86/mm/pgtable.c
+++ linux-ein-5.4.0/arch/x86/mm/pgtable.c
@@ -643,8 +643,8 @@
 	fixmaps_set++;
 }
 
-void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
-		       pgprot_t flags)
+void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
+		       phys_addr_t phys, pgprot_t flags)
 {
 	/* Sanitize 'prot' against any unsupported bits: */
 	pgprot_val(flags) &= __default_kernel_pte_mask;
@@ -826,6 +826,8 @@
 	}
 
 	free_page((unsigned long)pmd_sv);
+
+	pgtable_pmd_page_dtor(virt_to_page(pmd));
 	free_page((unsigned long)pmd);
 
 	return 1;
--- linux-ein-5.4.0.orig/arch/x86/mm/pkeys.c
+++ linux-ein-5.4.0/arch/x86/mm/pkeys.c
@@ -10,7 +10,6 @@
 
 #include <asm/cpufeature.h>             /* boot_cpu_has, ...            */
 #include <asm/mmu_context.h>            /* vma_pkey()                   */
-#include <asm/fpu/internal.h>		/* init_fpstate			*/
 
 int __execute_only_pkey(struct mm_struct *mm)
 {
@@ -154,7 +153,6 @@
 static ssize_t init_pkru_write_file(struct file *file,
 		 const char __user *user_buf, size_t count, loff_t *ppos)
 {
-	struct pkru_state *pk;
 	char buf[32];
 	ssize_t len;
 	u32 new_init_pkru;
@@ -177,10 +175,6 @@
 		return -EINVAL;
 
 	WRITE_ONCE(init_pkru_value, new_init_pkru);
-	pk = get_xsave_addr(&init_fpstate.xsave, XFEATURE_PKRU);
-	if (!pk)
-		return -EINVAL;
-	pk->pkru = new_init_pkru;
 	return count;
 }
 
--- linux-ein-5.4.0.orig/arch/x86/mm/tlb.c
+++ linux-ein-5.4.0/arch/x86/mm/tlb.c
@@ -327,8 +327,14 @@
 	/*
 	 * The membarrier system call requires a full memory barrier and
 	 * core serialization before returning to user-space, after
-	 * storing to rq->curr. Writing to CR3 provides that full
-	 * memory barrier and core serializing instruction.
+	 * storing to rq->curr, when changing mm.  This is because
+	 * membarrier() sends IPIs to all CPUs that are in the target mm
+	 * to make them issue memory barriers.  However, if another CPU
+	 * switches to/from the target mm concurrently with
+	 * membarrier(), it can cause that CPU not to receive an IPI
+	 * when it really should issue a memory barrier.  Writing to CR3
+	 * provides that full memory barrier and core serializing
+	 * instruction.
 	 */
 	if (real_prev == next) {
 		VM_WARN_ON(this_cpu_read(cpu_tlbstate.ctxs[prev_asid].ctx_id) !=
--- linux-ein-5.4.0.orig/arch/x86/net/bpf_jit_comp.c
+++ linux-ein-5.4.0/arch/x86/net/bpf_jit_comp.c
@@ -138,6 +138,19 @@
 			     BIT(BPF_REG_AX));
 }
 
+/*
+ * is_ereg_8l() == true if BPF register 'reg' is mapped to access x86-64
+ * lower 8-bit registers dil,sil,bpl,spl,r8b..r15b, which need extra byte
+ * of encoding. al,cl,dl,bl have simpler encoding.
+ */
+static bool is_ereg_8l(u32 reg)
+{
+	return is_ereg(reg) ||
+	    (1 << reg) & (BIT(BPF_REG_1) |
+			  BIT(BPF_REG_2) |
+			  BIT(BPF_REG_FP));
+}
+
 static bool is_axreg(u32 reg)
 {
 	return reg == BPF_REG_0;
@@ -715,6 +728,13 @@
 			}
 			break;
 
+			/* speculation barrier */
+		case BPF_ST | BPF_NOSPEC:
+			if (boot_cpu_has(X86_FEATURE_XMM2))
+				/* Emit 'lfence' */
+				EMIT3(0x0F, 0xAE, 0xE8);
+			break;
+
 			/* ST: *(u8*)(dst_reg + off) = imm */
 		case BPF_ST | BPF_MEM | BPF_B:
 			if (is_ereg(dst_reg))
@@ -748,9 +768,8 @@
 			/* STX: *(u8*)(dst_reg + off) = src_reg */
 		case BPF_STX | BPF_MEM | BPF_B:
 			/* Emit 'mov byte ptr [rax + off], al' */
-			if (is_ereg(dst_reg) || is_ereg(src_reg) ||
-			    /* We have to add extra byte for x86 SIL, DIL regs */
-			    src_reg == BPF_REG_1 || src_reg == BPF_REG_2)
+			if (is_ereg(dst_reg) || is_ereg_8l(src_reg))
+				/* Add extra byte for eregs or SIL,DIL,BPL in src_reg */
 				EMIT2(add_2mod(0x40, dst_reg, src_reg), 0x88);
 			else
 				EMIT1(0x88);
@@ -1038,7 +1057,16 @@
 		}
 
 		if (image) {
-			if (unlikely(proglen + ilen > oldproglen)) {
+			/*
+			 * When populating the image, assert that:
+			 *
+			 *  i) We do not write beyond the allocated space, and
+			 * ii) addrs[i] did not change from the prior run, in order
+			 *     to validate assumptions made for computing branch
+			 *     displacements.
+			 */
+			if (unlikely(proglen + ilen > oldproglen ||
+				     proglen + ilen != addrs[i])) {
 				pr_err("bpf_jit: fatal error\n");
 				return -EFAULT;
 			}
@@ -1106,7 +1134,7 @@
 		extra_pass = true;
 		goto skip_init_addrs;
 	}
-	addrs = kmalloc_array(prog->len + 1, sizeof(*addrs), GFP_KERNEL);
+	addrs = kvmalloc_array(prog->len + 1, sizeof(*addrs), GFP_KERNEL);
 	if (!addrs) {
 		prog = orig_prog;
 		goto out_addrs;
@@ -1183,7 +1211,7 @@
 		if (image)
 			bpf_prog_fill_jited_linfo(prog, addrs + 1);
 out_addrs:
-		kfree(addrs);
+		kvfree(addrs);
 		kfree(jit_data);
 		prog->aux->jit_data = NULL;
 	}
--- linux-ein-5.4.0.orig/arch/x86/net/bpf_jit_comp32.c
+++ linux-ein-5.4.0/arch/x86/net/bpf_jit_comp32.c
@@ -1705,6 +1705,12 @@
 			i++;
 			break;
 		}
+		/* speculation barrier */
+		case BPF_ST | BPF_NOSPEC:
+			if (boot_cpu_has(X86_FEATURE_XMM2))
+				/* Emit 'lfence' */
+				EMIT3(0x0F, 0xAE, 0xE8);
+			break;
 		/* ST: *(u8*)(dst_reg + off) = imm */
 		case BPF_ST | BPF_MEM | BPF_H:
 		case BPF_ST | BPF_MEM | BPF_B:
@@ -1847,14 +1853,16 @@
 			case BPF_B:
 			case BPF_H:
 			case BPF_W:
-				if (!bpf_prog->aux->verifier_zext)
+				if (bpf_prog->aux->verifier_zext)
 					break;
 				if (dstk) {
 					EMIT3(0xC7, add_1reg(0x40, IA32_EBP),
 					      STACK_VAR(dst_hi));
 					EMIT(0x0, 4);
 				} else {
-					EMIT3(0xC7, add_1reg(0xC0, dst_hi), 0);
+					/* xor dst_hi,dst_hi */
+					EMIT2(0x33,
+					      add_2reg(0xC0, dst_hi, dst_hi));
 				}
 				break;
 			case BPF_DW:
@@ -2013,8 +2021,8 @@
 		case BPF_JMP | BPF_JSET | BPF_X:
 		case BPF_JMP32 | BPF_JSET | BPF_X: {
 			bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
-			u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
-			u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
+			u8 dreg_lo = IA32_EAX;
+			u8 dreg_hi = IA32_EDX;
 			u8 sreg_lo = sstk ? IA32_ECX : src_lo;
 			u8 sreg_hi = sstk ? IA32_EBX : src_hi;
 
@@ -2026,6 +2034,13 @@
 					      add_2reg(0x40, IA32_EBP,
 						       IA32_EDX),
 					      STACK_VAR(dst_hi));
+			} else {
+				/* mov dreg_lo,dst_lo */
+				EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
+				if (is_jmp64)
+					/* mov dreg_hi,dst_hi */
+					EMIT2(0x89,
+					      add_2reg(0xC0, dreg_hi, dst_hi));
 			}
 
 			if (sstk) {
@@ -2039,17 +2054,19 @@
 			}
 			/* and dreg_lo,sreg_lo */
 			EMIT2(0x23, add_2reg(0xC0, sreg_lo, dreg_lo));
-			/* and dreg_hi,sreg_hi */
-			EMIT2(0x23, add_2reg(0xC0, sreg_hi, dreg_hi));
-			/* or dreg_lo,dreg_hi */
-			EMIT2(0x09, add_2reg(0xC0, dreg_lo, dreg_hi));
+			if (is_jmp64) {
+				/* and dreg_hi,sreg_hi */
+				EMIT2(0x23, add_2reg(0xC0, sreg_hi, dreg_hi));
+				/* or dreg_lo,dreg_hi */
+				EMIT2(0x09, add_2reg(0xC0, dreg_lo, dreg_hi));
+			}
 			goto emit_cond_jmp;
 		}
 		case BPF_JMP | BPF_JSET | BPF_K:
 		case BPF_JMP32 | BPF_JSET | BPF_K: {
 			bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
-			u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
-			u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
+			u8 dreg_lo = IA32_EAX;
+			u8 dreg_hi = IA32_EDX;
 			u8 sreg_lo = IA32_ECX;
 			u8 sreg_hi = IA32_EBX;
 			u32 hi;
@@ -2062,6 +2079,13 @@
 					      add_2reg(0x40, IA32_EBP,
 						       IA32_EDX),
 					      STACK_VAR(dst_hi));
+			} else {
+				/* mov dreg_lo,dst_lo */
+				EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
+				if (is_jmp64)
+					/* mov dreg_hi,dst_hi */
+					EMIT2(0x89,
+					      add_2reg(0xC0, dreg_hi, dst_hi));
 			}
 
 			/* mov ecx,imm32 */
@@ -2260,7 +2284,16 @@
 		}
 
 		if (image) {
-			if (unlikely(proglen + ilen > oldproglen)) {
+			/*
+			 * When populating the image, assert that:
+			 *
+			 *  i) We do not write beyond the allocated space, and
+			 * ii) addrs[i] did not change from the prior run, in order
+			 *     to validate assumptions made for computing branch
+			 *     displacements.
+			 */
+			if (unlikely(proglen + ilen > oldproglen ||
+				     proglen + ilen != addrs[i])) {
 				pr_err("bpf_jit: fatal error\n");
 				return -EFAULT;
 			}
--- linux-ein-5.4.0.orig/arch/x86/pci/common.c
+++ linux-ein-5.4.0/arch/x86/pci/common.c
@@ -33,6 +33,7 @@
 #endif
 int pcibios_last_bus = -1;
 unsigned long pirq_table_addr;
+unsigned int pci_early_clear_msi;
 const struct pci_raw_ops *__read_mostly raw_pci_ops;
 const struct pci_raw_ops *__read_mostly raw_pci_ext_ops;
 
@@ -605,6 +606,9 @@
 	} else if (!strcmp(str, "skip_isa_align")) {
 		pci_probe |= PCI_CAN_SKIP_ISA_ALIGN;
 		return NULL;
+	} else if (!strcmp(str, "clearmsi")) {
+		pci_early_clear_msi = 1;
+		return NULL;
 	} else if (!strcmp(str, "noioapicquirk")) {
 		noioapicquirk = 1;
 		return NULL;
--- linux-ein-5.4.0.orig/arch/x86/pci/early.c
+++ linux-ein-5.4.0/arch/x86/pci/early.c
@@ -51,6 +51,31 @@
 	outw(val, 0xcfc + (offset&2));
 }
 
+u32 pci_early_find_cap(int bus, int slot, int func, int cap)
+{
+	int bytes;
+	u8 pos;
+
+	if (!(read_pci_config_16(bus, slot, func, PCI_STATUS) &
+						PCI_STATUS_CAP_LIST))
+		return 0;
+
+	pos = read_pci_config_byte(bus, slot, func, PCI_CAPABILITY_LIST);
+	for (bytes = 0; bytes < 48 && pos >= 0x40; bytes++) {
+		u8 id;
+
+		pos &= ~3;
+		id = read_pci_config_byte(bus, slot, func, pos+PCI_CAP_LIST_ID);
+		if (id == 0xff)
+			break;
+		if (id == cap)
+			return pos;
+		pos = read_pci_config_byte(bus, slot, func,
+						pos+PCI_CAP_LIST_NEXT);
+	}
+	return 0;
+}
+
 int early_pci_allowed(void)
 {
 	return (pci_probe & (PCI_PROBE_CONF1|PCI_PROBE_NOEARLY)) ==
--- linux-ein-5.4.0.orig/arch/x86/pci/fixup.c
+++ linux-ein-5.4.0/arch/x86/pci/fixup.c
@@ -7,6 +7,7 @@
 #include <linux/dmi.h>
 #include <linux/pci.h>
 #include <linux/vgaarb.h>
+#include <asm/amd_nb.h>
 #include <asm/hpet.h>
 #include <asm/pci_x86.h>
 
@@ -572,6 +573,10 @@
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6f60, pci_invalid_bar);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fa0, pci_invalid_bar);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa1ec, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa1ed, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa26c, pci_invalid_bar);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xa26d, pci_invalid_bar);
 
 /*
  * Device [1022:7808]
@@ -589,6 +594,17 @@
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7808, pci_fixup_amd_ehci_pme);
 
 /*
+ * Device [1022:7914]
+ * When in D0, PME# doesn't get asserted when plugging USB 2.0 device.
+ */
+static void pci_fixup_amd_fch_xhci_pme(struct pci_dev *dev)
+{
+	dev_info(&dev->dev, "PME# does not work under D0, disabling it\n");
+	dev->pme_support &= ~(PCI_PM_CAP_PME_D0 >> PCI_PM_CAP_PME_SHIFT);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7914, pci_fixup_amd_fch_xhci_pme);
+
+/*
  * Apple MacBook Pro: Avoid [mem 0x7fa00000-0x7fbfffff]
  *
  * Using the [mem 0x7fa00000-0x7fbfffff] region, e.g., by assigning it to
@@ -764,4 +780,68 @@
 DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x15b1, pci_amd_enable_64bit_bar);
 DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1601, pci_amd_enable_64bit_bar);
 
+#define RS690_LOWER_TOP_OF_DRAM2	0x30
+#define RS690_LOWER_TOP_OF_DRAM2_VALID	0x1
+#define RS690_UPPER_TOP_OF_DRAM2	0x31
+#define RS690_HTIU_NB_INDEX		0xA8
+#define RS690_HTIU_NB_INDEX_WR_ENABLE	0x100
+#define RS690_HTIU_NB_DATA		0xAC
+
+/*
+ * Some BIOS implementations support RAM above 4GB, but do not configure the
+ * PCI host to respond to bus master accesses for these addresses. These
+ * implementations set the TOP_OF_DRAM_SLOT1 register correctly, so PCI DMA
+ * works as expected for addresses below 4GB.
+ *
+ * Reference: "AMD RS690 ASIC Family Register Reference Guide" (pg. 2-57)
+ * https://www.amd.com/system/files/TechDocs/43372_rs690_rrg_3.00o.pdf
+ */
+static void rs690_fix_64bit_dma(struct pci_dev *pdev)
+{
+	u32 val = 0;
+	phys_addr_t top_of_dram = __pa(high_memory - 1) + 1;
+
+	if (top_of_dram <= (1ULL << 32))
+		return;
+
+	pci_write_config_dword(pdev, RS690_HTIU_NB_INDEX,
+				RS690_LOWER_TOP_OF_DRAM2);
+	pci_read_config_dword(pdev, RS690_HTIU_NB_DATA, &val);
+
+	if (val)
+		return;
+
+	pci_info(pdev, "Adjusting top of DRAM to %pa for 64-bit DMA support\n", &top_of_dram);
+
+	pci_write_config_dword(pdev, RS690_HTIU_NB_INDEX,
+		RS690_UPPER_TOP_OF_DRAM2 | RS690_HTIU_NB_INDEX_WR_ENABLE);
+	pci_write_config_dword(pdev, RS690_HTIU_NB_DATA, top_of_dram >> 32);
+
+	pci_write_config_dword(pdev, RS690_HTIU_NB_INDEX,
+		RS690_LOWER_TOP_OF_DRAM2 | RS690_HTIU_NB_INDEX_WR_ENABLE);
+	pci_write_config_dword(pdev, RS690_HTIU_NB_DATA,
+		top_of_dram | RS690_LOWER_TOP_OF_DRAM2_VALID);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7910, rs690_fix_64bit_dma);
+
+#endif
+
+#ifdef CONFIG_AMD_NB
+
+#define AMD_15B8_RCC_DEV2_EPF0_STRAP2                                  0x10136008
+#define AMD_15B8_RCC_DEV2_EPF0_STRAP2_NO_SOFT_RESET_DEV2_F0_MASK       0x00000080L
+
+static void quirk_clear_strap_no_soft_reset_dev2_f0(struct pci_dev *dev)
+{
+	u32 data;
+
+	if (!amd_smn_read(0, AMD_15B8_RCC_DEV2_EPF0_STRAP2, &data)) {
+		data &= ~AMD_15B8_RCC_DEV2_EPF0_STRAP2_NO_SOFT_RESET_DEV2_F0_MASK;
+		if (amd_smn_write(0, AMD_15B8_RCC_DEV2_EPF0_STRAP2, data))
+			pci_err(dev, "Failed to write data 0x%x\n", data);
+	} else {
+		pci_err(dev, "Failed to read data\n");
+	}
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x15b8, quirk_clear_strap_no_soft_reset_dev2_f0);
 #endif
--- linux-ein-5.4.0.orig/arch/x86/pci/intel_mid_pci.c
+++ linux-ein-5.4.0/arch/x86/pci/intel_mid_pci.c
@@ -33,6 +33,7 @@
 #include <asm/hw_irq.h>
 #include <asm/io_apic.h>
 #include <asm/intel-mid.h>
+#include <asm/acpi.h>
 
 #define PCIE_CAP_OFFSET	0x100
 
--- linux-ein-5.4.0.orig/arch/x86/pci/xen.c
+++ linux-ein-5.4.0/arch/x86/pci/xen.c
@@ -26,6 +26,7 @@
 #include <asm/xen/pci.h>
 #include <asm/xen/cpuid.h>
 #include <asm/apic.h>
+#include <asm/acpi.h>
 #include <asm/i8259.h>
 
 static int xen_pcifront_enable_irq(struct pci_dev *dev)
@@ -441,6 +442,11 @@
 
 	x86_msi.setup_msi_irqs = xen_hvm_setup_msi_irqs;
 	x86_msi.teardown_msi_irq = xen_teardown_msi_irq;
+	/*
+	 * With XEN PIRQ/Eventchannels in use PCI/MSI[-X] masking is solely
+	 * controlled by the hypervisor.
+	 */
+	pci_msi_ignore_mask = 1;
 }
 #endif
 
--- linux-ein-5.4.0.orig/arch/x86/platform/efi/efi.c
+++ linux-ein-5.4.0/arch/x86/platform/efi/efi.c
@@ -85,6 +85,11 @@
 #ifdef CONFIG_EFI_RCI2_TABLE
 	&rci2_table_phys,
 #endif
+	&efi.tpm_log,
+	&efi.tpm_final_log,
+#ifdef CONFIG_LOAD_UEFI_KEYS
+	&efi.mokvar_table,
+#endif
 };
 
 u64 efi_setup;		/* efi setup_data physical address */
@@ -504,7 +509,6 @@
 	efi_char16_t *c16;
 	char vendor[100] = "unknown";
 	int i = 0;
-	void *tmp;
 
 #ifdef CONFIG_X86_32
 	if (boot_params.efi_info.efi_systab_hi ||
@@ -529,14 +533,16 @@
 	/*
 	 * Show what we know for posterity
 	 */
-	c16 = tmp = early_memremap(efi.systab->fw_vendor, 2);
+	c16 = early_memremap_ro(efi.systab->fw_vendor,
+				sizeof(vendor) * sizeof(efi_char16_t));
 	if (c16) {
-		for (i = 0; i < sizeof(vendor) - 1 && *c16; ++i)
-			vendor[i] = *c16++;
+		for (i = 0; i < sizeof(vendor) - 1 && c16[i]; ++i)
+			vendor[i] = c16[i];
 		vendor[i] = '\0';
-	} else
+		early_memunmap(c16, sizeof(vendor) * sizeof(efi_char16_t));
+	} else {
 		pr_err("Could not map the firmware vendor!\n");
-	early_memunmap(tmp, 2);
+	}
 
 	pr_info("EFI v%u.%.02u by %s\n",
 		efi.systab->hdr.revision >> 16,
@@ -953,16 +959,14 @@
 
 	if (efi_alloc_page_tables()) {
 		pr_err("Failed to allocate EFI page tables\n");
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
+		goto err;
 	}
 
 	efi_merge_regions();
 	new_memmap = efi_map_regions(&count, &pg_shift);
 	if (!new_memmap) {
 		pr_err("Error reallocating memory, EFI runtime non-functional!\n");
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
+		goto err;
 	}
 
 	pa = __pa(new_memmap);
@@ -976,8 +980,7 @@
 
 	if (efi_memmap_init_late(pa, efi.memmap.desc_size * count)) {
 		pr_err("Failed to remap late EFI memory map\n");
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
+		goto err;
 	}
 
 	if (efi_enabled(EFI_DBG)) {
@@ -985,12 +988,11 @@
 		efi_print_memmap();
 	}
 
-	BUG_ON(!efi.systab);
+	if (WARN_ON(!efi.systab))
+		goto err;
 
-	if (efi_setup_page_tables(pa, 1 << pg_shift)) {
-		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
-		return;
-	}
+	if (efi_setup_page_tables(pa, 1 << pg_shift))
+		goto err;
 
 	efi_sync_low_kernel_mappings();
 
@@ -1010,9 +1012,9 @@
 	}
 
 	if (status != EFI_SUCCESS) {
-		pr_alert("Unable to switch EFI into virtual mode (status=%lx)!\n",
-			 status);
-		panic("EFI call to SetVirtualAddressMap() failed!");
+		pr_err("Unable to switch EFI into virtual mode (status=%lx)!\n",
+		       status);
+		goto err;
 	}
 
 	efi_free_boot_services();
@@ -1041,6 +1043,10 @@
 
 	/* clean DUMMY object */
 	efi_delete_dummy_variable();
+	return;
+
+err:
+	clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
 }
 
 void __init efi_enter_virtual_mode(void)
--- linux-ein-5.4.0.orig/arch/x86/platform/efi/efi_64.c
+++ linux-ein-5.4.0/arch/x86/platform/efi/efi_64.c
@@ -217,28 +217,30 @@
 	gfp_mask = GFP_KERNEL | __GFP_ZERO;
 	efi_pgd = (pgd_t *)__get_free_pages(gfp_mask, PGD_ALLOCATION_ORDER);
 	if (!efi_pgd)
-		return -ENOMEM;
+		goto fail;
 
 	pgd = efi_pgd + pgd_index(EFI_VA_END);
 	p4d = p4d_alloc(&init_mm, pgd, EFI_VA_END);
-	if (!p4d) {
-		free_page((unsigned long)efi_pgd);
-		return -ENOMEM;
-	}
+	if (!p4d)
+		goto free_pgd;
 
 	pud = pud_alloc(&init_mm, p4d, EFI_VA_END);
-	if (!pud) {
-		if (pgtable_l5_enabled())
-			free_page((unsigned long) pgd_page_vaddr(*pgd));
-		free_pages((unsigned long)efi_pgd, PGD_ALLOCATION_ORDER);
-		return -ENOMEM;
-	}
+	if (!pud)
+		goto free_p4d;
 
 	efi_mm.pgd = efi_pgd;
 	mm_init_cpumask(&efi_mm);
 	init_new_context(NULL, &efi_mm);
 
 	return 0;
+
+free_p4d:
+	if (pgtable_l5_enabled())
+		free_page((unsigned long)pgd_page_vaddr(*pgd));
+free_pgd:
+	free_pages((unsigned long)efi_pgd, PGD_ALLOCATION_ORDER);
+fail:
+	return -ENOMEM;
 }
 
 /*
@@ -316,7 +318,7 @@
 static inline phys_addr_t
 virt_to_phys_or_null_size(void *va, unsigned long size)
 {
-	bool bad_size;
+	phys_addr_t pa;
 
 	if (!va)
 		return 0;
@@ -324,16 +326,13 @@
 	if (virt_addr_valid(va))
 		return virt_to_phys(va);
 
-	/*
-	 * A fully aligned variable on the stack is guaranteed not to
-	 * cross a page bounary. Try to catch strings on the stack by
-	 * checking that 'size' is a power of two.
-	 */
-	bad_size = size > PAGE_SIZE || !is_power_of_2(size);
+	pa = slow_virt_to_phys(va);
 
-	WARN_ON(!IS_ALIGNED((unsigned long)va, size) || bad_size);
+	/* check if the object crosses a page boundary */
+	if (WARN_ON((pa ^ (pa + size - 1)) & PAGE_MASK))
+		return 0;
 
-	return slow_virt_to_phys(va);
+	return pa;
 }
 
 #define virt_to_phys_or_null(addr)				\
@@ -392,11 +391,12 @@
 		return 0;
 
 	page = alloc_page(GFP_KERNEL|__GFP_DMA32);
-	if (!page)
-		panic("Unable to allocate EFI runtime stack < 4GB\n");
+	if (!page) {
+		pr_err("Unable to allocate EFI runtime stack < 4GB\n");
+		return 1;
+	}
 
-	efi_scratch.phys_stack = virt_to_phys(page_address(page));
-	efi_scratch.phys_stack += PAGE_SIZE; /* stack grows down */
+	efi_scratch.phys_stack = page_to_phys(page + 1); /* stack grows down */
 
 	npages = (_etext - _text) >> PAGE_SHIFT;
 	text = __pa(_text);
@@ -790,6 +790,8 @@
 efi_thunk_get_variable(efi_char16_t *name, efi_guid_t *vendor,
 		       u32 *attr, unsigned long *data_size, void *data)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	efi_status_t status;
 	u32 phys_name, phys_vendor, phys_attr;
 	u32 phys_data_size, phys_data;
@@ -797,14 +799,19 @@
 
 	spin_lock_irqsave(&efi_runtime_lock, flags);
 
+	*vnd = *vendor;
+
 	phys_data_size = virt_to_phys_or_null(data_size);
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_name = virt_to_phys_or_null_size(name, efi_name_size(name));
 	phys_attr = virt_to_phys_or_null(attr);
 	phys_data = virt_to_phys_or_null_size(data, *data_size);
 
-	status = efi_thunk(get_variable, phys_name, phys_vendor,
-			   phys_attr, phys_data_size, phys_data);
+	if (!phys_name || (data && !phys_data))
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(get_variable, phys_name, phys_vendor,
+				   phys_attr, phys_data_size, phys_data);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
@@ -815,19 +822,25 @@
 efi_thunk_set_variable(efi_char16_t *name, efi_guid_t *vendor,
 		       u32 attr, unsigned long data_size, void *data)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	u32 phys_name, phys_vendor, phys_data;
 	efi_status_t status;
 	unsigned long flags;
 
 	spin_lock_irqsave(&efi_runtime_lock, flags);
 
+	*vnd = *vendor;
+
 	phys_name = virt_to_phys_or_null_size(name, efi_name_size(name));
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_data = virt_to_phys_or_null_size(data, data_size);
 
-	/* If data_size is > sizeof(u32) we've got problems */
-	status = efi_thunk(set_variable, phys_name, phys_vendor,
-			   attr, data_size, phys_data);
+	if (!phys_name || (data && !phys_data))
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(set_variable, phys_name, phys_vendor,
+				   attr, data_size, phys_data);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
@@ -839,6 +852,8 @@
 				   u32 attr, unsigned long data_size,
 				   void *data)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	u32 phys_name, phys_vendor, phys_data;
 	efi_status_t status;
 	unsigned long flags;
@@ -846,13 +861,17 @@
 	if (!spin_trylock_irqsave(&efi_runtime_lock, flags))
 		return EFI_NOT_READY;
 
+	*vnd = *vendor;
+
 	phys_name = virt_to_phys_or_null_size(name, efi_name_size(name));
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_data = virt_to_phys_or_null_size(data, data_size);
 
-	/* If data_size is > sizeof(u32) we've got problems */
-	status = efi_thunk(set_variable, phys_name, phys_vendor,
-			   attr, data_size, phys_data);
+	if (!phys_name || (data && !phys_data))
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(set_variable, phys_name, phys_vendor,
+				   attr, data_size, phys_data);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
@@ -864,21 +883,29 @@
 			    efi_char16_t *name,
 			    efi_guid_t *vendor)
 {
+	u8 buf[24] __aligned(8);
+	efi_guid_t *vnd = PTR_ALIGN((efi_guid_t *)buf, sizeof(*vnd));
 	efi_status_t status;
 	u32 phys_name_size, phys_name, phys_vendor;
 	unsigned long flags;
 
 	spin_lock_irqsave(&efi_runtime_lock, flags);
 
+	*vnd = *vendor;
+
 	phys_name_size = virt_to_phys_or_null(name_size);
-	phys_vendor = virt_to_phys_or_null(vendor);
+	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_name = virt_to_phys_or_null_size(name, *name_size);
 
-	status = efi_thunk(get_next_variable, phys_name_size,
-			   phys_name, phys_vendor);
+	if (!phys_name)
+		status = EFI_INVALID_PARAMETER;
+	else
+		status = efi_thunk(get_next_variable, phys_name_size,
+				   phys_name, phys_vendor);
 
 	spin_unlock_irqrestore(&efi_runtime_lock, flags);
 
+	*vendor = *vnd;
 	return status;
 }
 
--- linux-ein-5.4.0.orig/arch/x86/platform/efi/efi_stub_32.S
+++ linux-ein-5.4.0/arch/x86/platform/efi/efi_stub_32.S
@@ -8,6 +8,7 @@
 
 #include <linux/linkage.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 
 /*
  * efi_call_phys(void *, ...) is a function with variable parameters.
@@ -39,6 +40,7 @@
 	 */
 	movl	$1f, %edx
 	subl	$__PAGE_OFFSET, %edx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	jmp	*%edx
 1:
 
@@ -74,6 +76,7 @@
 	/*
 	 * 5. Call the physical function.
 	 */
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	jmp	*%ecx
 
 2:
@@ -96,6 +99,7 @@
 	 * adding EIP with PAGE_OFFSET.
 	 */
 	movl	$1f, %edx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	jmp	*%edx
 1:
 
--- linux-ein-5.4.0.orig/arch/x86/platform/efi/efi_stub_64.S
+++ linux-ein-5.4.0/arch/x86/platform/efi/efi_stub_64.S
@@ -12,6 +12,7 @@
 #include <asm/msr.h>
 #include <asm/processor-flags.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 
 #define SAVE_XMM			\
 	mov %rsp, %rax;			\
@@ -50,6 +51,7 @@
 	mov %r8, %r9
 	mov %rcx, %r8
 	mov %rsi, %rcx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	call *%rdi
 	addq $48, %rsp
 	RESTORE_XMM
--- linux-ein-5.4.0.orig/arch/x86/platform/efi/efi_thunk_64.S
+++ linux-ein-5.4.0/arch/x86/platform/efi/efi_thunk_64.S
@@ -22,6 +22,7 @@
 #include <linux/linkage.h>
 #include <asm/page_types.h>
 #include <asm/segment.h>
+#include <asm/nospec-branch.h>
 
 	.text
 	.code64
@@ -54,6 +55,7 @@
 
 	leaq	__efi64_thunk(%rip), %rbx
 	subq	%rax, %rbx
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	call	*%rbx
 
 	movq	efi_saved_sp(%rip), %rsp
@@ -135,6 +137,7 @@
 	movl	%eax, %es
 	movl	%eax, %ss
 
+	ANNOTATE_RETPOLINE_SAFE /* FRBS */
 	call	*%edi
 
 	/* We must preserve return value */
--- linux-ein-5.4.0.orig/arch/x86/platform/efi/quirks.c
+++ linux-ein-5.4.0/arch/x86/platform/efi/quirks.c
@@ -260,10 +260,6 @@
 		return;
 	}
 
-	/* No need to reserve regions that will never be freed. */
-	if (md.attribute & EFI_MEMORY_RUNTIME)
-		return;
-
 	size += addr % EFI_PAGE_SIZE;
 	size = round_up(size, EFI_PAGE_SIZE);
 	addr = round_down(addr, EFI_PAGE_SIZE);
@@ -283,7 +279,8 @@
 		return;
 	}
 
-	new = early_memremap(new_phys, new_size);
+	new = early_memremap_prot(new_phys, new_size,
+				  pgprot_val(pgprot_encrypted(FIXMAP_PAGE_NORMAL)));
 	if (!new) {
 		pr_err("Failed to map new boot services memmap\n");
 		return;
@@ -293,6 +290,8 @@
 	early_memunmap(new, new_size);
 
 	efi_memmap_install(new_phys, num_entries);
+	e820__range_update(addr, size, E820_TYPE_RAM, E820_TYPE_RESERVED);
+	e820__update_table(e820_table);
 }
 
 /*
--- linux-ein-5.4.0.orig/arch/x86/platform/olpc/olpc-xo1-sci.c
+++ linux-ein-5.4.0/arch/x86/platform/olpc/olpc-xo1-sci.c
@@ -81,7 +81,7 @@
 		return;
 	}
 
-	if (!!test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == state)
+	if (test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == !!state)
 		return; /* Nothing new to report. */
 
 	input_report_switch(ebook_switch_idev, SW_TABLET_MODE, state);
--- linux-ein-5.4.0.orig/arch/x86/platform/olpc/olpc.c
+++ linux-ein-5.4.0/arch/x86/platform/olpc/olpc.c
@@ -274,7 +274,7 @@
 
 static struct olpc_ec_driver ec_xo1_5_driver = {
 	.ec_cmd = olpc_xo1_ec_cmd,
-#ifdef CONFIG_OLPC_XO1_5_SCI
+#ifdef CONFIG_OLPC_XO15_SCI
 	/*
 	 * XO-1.5 EC wakeups are available when olpc-xo15-sci driver is
 	 * compiled in
--- linux-ein-5.4.0.orig/arch/x86/platform/pvh/head.S
+++ linux-ein-5.4.0/arch/x86/platform/pvh/head.S
@@ -16,6 +16,7 @@
 #include <asm/boot.h>
 #include <asm/processor-flags.h>
 #include <asm/msr.h>
+#include <asm/nospec-branch.h>
 #include <xen/interface/elfnote.h>
 
 	__HEAD
@@ -105,6 +106,7 @@
 	/* startup_64 expects boot_params in %rsi. */
 	mov $_pa(pvh_bootparams), %rsi
 	mov $_pa(startup_64), %rax
+	ANNOTATE_RETPOLINE_SAFE
 	jmp *%rax
 
 #else /* CONFIG_X86_64 */
--- linux-ein-5.4.0.orig/arch/x86/platform/uv/uv_irq.c
+++ linux-ein-5.4.0/arch/x86/platform/uv/uv_irq.c
@@ -167,9 +167,10 @@
 		goto out;
 
 	uv_domain = irq_domain_create_tree(fn, &uv_domain_ops, NULL);
-	irq_domain_free_fwnode(fn);
 	if (uv_domain)
 		uv_domain->parent = x86_vector_domain;
+	else
+		irq_domain_free_fwnode(fn);
 out:
 	mutex_unlock(&uv_lock);
 
--- linux-ein-5.4.0.orig/arch/x86/power/cpu.c
+++ linux-ein-5.4.0/arch/x86/power/cpu.c
@@ -25,6 +25,7 @@
 #include <asm/cpu.h>
 #include <asm/mmu_context.h>
 #include <asm/cpu_device_id.h>
+#include <asm/microcode.h>
 
 #ifdef CONFIG_X86_32
 __visible unsigned long saved_context_ebx;
@@ -40,7 +41,8 @@
 	struct saved_msr *end = msr + ctxt->saved_msrs.num;
 
 	while (msr < end) {
-		msr->valid = !rdmsrl_safe(msr->info.msr_no, &msr->info.reg.q);
+		if (msr->valid)
+			rdmsrl(msr->info.msr_no, msr->info.reg.q);
 		msr++;
 	}
 }
@@ -262,6 +264,13 @@
 	x86_platform.restore_sched_clock_state();
 	mtrr_bp_restore();
 	perf_restore_debug_store();
+
+	microcode_bsp_resume();
+
+	/*
+	 * This needs to happen after the microcode has been updated upon resume
+	 * because some of the MSRs are "emulated" in microcode.
+	 */
 	msr_restore_context(ctxt);
 }
 
@@ -421,8 +430,10 @@
 	}
 
 	for (i = saved_msrs->num, j = 0; i < total_num; i++, j++) {
+		u64 dummy;
+
 		msr_array[i].info.msr_no	= msr_id[j];
-		msr_array[i].valid		= false;
+		msr_array[i].valid		= !rdmsrl_safe(msr_id[j], &dummy);
 		msr_array[i].info.reg.q		= 0;
 	}
 	saved_msrs->num   = total_num;
@@ -509,10 +520,32 @@
 	return ret;
 }
 
+static void pm_save_spec_msr(void)
+{
+	struct msr_enumeration {
+		u32 msr_no;
+		u32 feature;
+	} msr_enum[] = {
+		{ MSR_IA32_SPEC_CTRL,	 X86_FEATURE_MSR_SPEC_CTRL },
+		{ MSR_IA32_TSX_CTRL,	 X86_FEATURE_MSR_TSX_CTRL },
+		{ MSR_TSX_FORCE_ABORT,	 X86_FEATURE_TSX_FORCE_ABORT },
+		{ MSR_IA32_MCU_OPT_CTRL, X86_FEATURE_SRBDS_CTRL },
+		{ MSR_AMD64_LS_CFG,	 X86_FEATURE_LS_CFG_SSBD },
+		{ MSR_AMD64_DE_CFG,	 X86_FEATURE_LFENCE_RDTSC },
+	};
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(msr_enum); i++) {
+		if (boot_cpu_has(msr_enum[i].feature))
+			msr_build_context(&msr_enum[i].msr_no, 1);
+	}
+}
+
 static int pm_check_save_msr(void)
 {
 	dmi_check_system(msr_save_dmi_table);
 	pm_cpu_check(msr_save_cpu_table);
+	pm_save_spec_msr();
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/x86/power/hibernate_asm_32.S
+++ linux-ein-5.4.0/arch/x86/power/hibernate_asm_32.S
@@ -35,7 +35,7 @@
 	ret
 ENDPROC(swsusp_arch_suspend)
 
-ENTRY(restore_image)
+SYM_CODE_START(restore_image)
 	/* prepare to jump to the image kernel */
 	movl	restore_jump_address, %ebx
 	movl	restore_cr3, %ebp
@@ -45,9 +45,10 @@
 	/* jump to relocated restore code */
 	movl	relocated_restore_code, %eax
 	jmpl	*%eax
+SYM_CODE_END(restore_image)
 
 /* code below has been relocated to a safe page */
-ENTRY(core_restore_code)
+SYM_CODE_START(core_restore_code)
 	movl	temp_pgt, %eax
 	movl	%eax, %cr3
 
@@ -77,6 +78,7 @@
 
 done:
 	jmpl	*%ebx
+SYM_CODE_END(core_restore_code)
 
 	/* code below belongs to the image kernel */
 	.align PAGE_SIZE
--- linux-ein-5.4.0.orig/arch/x86/power/hibernate_asm_64.S
+++ linux-ein-5.4.0/arch/x86/power/hibernate_asm_64.S
@@ -21,6 +21,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/processor-flags.h>
 #include <asm/frame.h>
+#include <asm/nospec-branch.h>
 
 ENTRY(swsusp_arch_suspend)
 	movq	$saved_context, %rax
@@ -66,6 +67,7 @@
 
 	/* jump to relocated restore code */
 	movq	relocated_restore_code(%rip), %rcx
+	ANNOTATE_RETPOLINE_SAFE
 	jmpq	*%rcx
 
 	/* code below has been relocated to a safe page */
@@ -96,6 +98,7 @@
 
 .Ldone:
 	/* jump to the restore_registers address from the image header */
+	ANNOTATE_RETPOLINE_SAFE
 	jmpq	*%r8
 
 	 /* code below belongs to the image kernel */
--- linux-ein-5.4.0.orig/arch/x86/purgatory/Makefile
+++ linux-ein-5.4.0/arch/x86/purgatory/Makefile
@@ -14,18 +14,26 @@
 
 CFLAGS_sha256.o := -D__DISABLE_EXPORTS
 
+# When profile-guided optimization is enabled, llvm emits two different
+# overlapping text sections, which is not supported by kexec. Remove profile
+# optimization flags.
+KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS))
+
 LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined -nostdlib -z nodefaultlib
 targets += purgatory.ro
 
+# Sanitizer, etc. runtimes are unavailable and cannot be linked here.
+GCOV_PROFILE	:= n
 KASAN_SANITIZE	:= n
+UBSAN_SANITIZE	:= n
 KCOV_INSTRUMENT := n
 
 # These are adjustments to the compiler flags used for objects that
 # make up the standalone purgatory.ro
 
 PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel
-PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss
-PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN)
+PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss -g0
+PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) -DDISABLE_BRANCH_PROFILING
 
 # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That
 # in turn leaves some undefined symbols like __fentry__ in purgatory and not
@@ -55,6 +63,9 @@
 CFLAGS_REMOVE_string.o		+= $(PURGATORY_CFLAGS_REMOVE)
 CFLAGS_string.o			+= $(PURGATORY_CFLAGS)
 
+AFLAGS_REMOVE_setup-x86_$(BITS).o	+= -g -Wa,-gdwarf-2
+AFLAGS_REMOVE_entry64.o			+= -g -Wa,-gdwarf-2
+
 $(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
 		$(call if_changed,ld)
 
--- linux-ein-5.4.0.orig/arch/x86/realmode/init.c
+++ linux-ein-5.4.0/arch/x86/realmode/init.c
@@ -8,6 +8,7 @@
 #include <asm/pgtable.h>
 #include <asm/realmode.h>
 #include <asm/tlbflush.h>
+#include <asm/crash.h>
 
 struct real_mode_header *real_mode_header;
 u32 *trampoline_cr4_features;
@@ -15,6 +16,32 @@
 /* Hold the pgd entry used on booting additional CPUs */
 pgd_t trampoline_pgd_entry;
 
+void load_trampoline_pgtable(void)
+{
+#ifdef CONFIG_X86_32
+	load_cr3(initial_page_table);
+#else
+	/*
+	 * This function is called before exiting to real-mode and that will
+	 * fail with CR4.PCIDE still set.
+	 */
+	if (boot_cpu_has(X86_FEATURE_PCID))
+		cr4_clear_bits(X86_CR4_PCIDE);
+
+	write_cr3(real_mode_header->trampoline_pgd);
+#endif
+
+	/*
+	 * The CR3 write above will not flush global TLB entries.
+	 * Stale, global entries from previous page tables may still be
+	 * present.  Flush those stale entries.
+	 *
+	 * This ensures that memory accessed while running with
+	 * trampoline_pgd is *actually* mapped into trampoline_pgd.
+	 */
+	__flush_tlb_all();
+}
+
 void __init reserve_real_mode(void)
 {
 	phys_addr_t mem;
@@ -34,6 +61,7 @@
 
 	memblock_reserve(mem, size);
 	set_real_mode_mem(mem);
+	crash_reserve_low_1M();
 }
 
 static void __init setup_real_mode(void)
@@ -48,6 +76,7 @@
 #ifdef CONFIG_X86_64
 	u64 *trampoline_pgd;
 	u64 efer;
+	int i;
 #endif
 
 	base = (unsigned char *)real_mode_header;
@@ -106,8 +135,17 @@
 		trampoline_header->flags |= TH_FLAGS_SME_ACTIVE;
 
 	trampoline_pgd = (u64 *) __va(real_mode_header->trampoline_pgd);
+
+	/* Map the real mode stub as virtual == physical */
 	trampoline_pgd[0] = trampoline_pgd_entry.pgd;
-	trampoline_pgd[511] = init_top_pgt[511].pgd;
+
+	/*
+	 * Include the entirety of the kernel mapping into the trampoline
+	 * PGD.  This way, all mappings present in the normal kernel page
+	 * tables are usable while running on trampoline_pgd.
+	 */
+	for (i = pgd_index(__PAGE_OFFSET); i < PTRS_PER_PGD; i++)
+		trampoline_pgd[i] = init_top_pgt[i].pgd;
 #endif
 }
 
--- linux-ein-5.4.0.orig/arch/x86/realmode/rm/trampoline_32.S
+++ linux-ein-5.4.0/arch/x86/realmode/rm/trampoline_32.S
@@ -23,13 +23,14 @@
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/page_types.h>
+#include <asm/nospec-branch.h>
 #include "realmode.h"
 
 	.text
 	.code16
 
 	.balign	PAGE_SIZE
-ENTRY(trampoline_start)
+SYM_CODE_START(trampoline_start)
 	wbinvd			# Needed for NUMA-Q should be harmless for others
 
 	LJMPW_RM(1f)
@@ -54,11 +55,14 @@
 	lmsw	%dx			# into protected mode
 
 	ljmpl	$__BOOT_CS, $pa_startup_32
+SYM_CODE_END(trampoline_start)
 
 	.section ".text32","ax"
 	.code32
-ENTRY(startup_32)			# note: also used from wakeup_asm.S
+SYM_CODE_START(startup_32)			# note: also used from wakeup_asm.S
+	ANNOTATE_RETPOLINE_SAFE
 	jmp	*%eax
+SYM_CODE_END(startup_32)
 
 	.bss
 	.balign 8
--- linux-ein-5.4.0.orig/arch/x86/realmode/rm/wakeup_asm.S
+++ linux-ein-5.4.0/arch/x86/realmode/rm/wakeup_asm.S
@@ -73,7 +73,7 @@
 	movw	%ax, %fs
 	movw	%ax, %gs
 
-	lidtl	wakeup_idt
+	lidtl	.Lwakeup_idt
 
 	/* Clear the EFLAGS */
 	pushl $0
@@ -171,8 +171,8 @@
 
 	/* This is the standard real-mode IDT */
 	.balign	16
-GLOBAL(wakeup_idt)
+.Lwakeup_idt:
 	.word	0xffff		/* limit */
 	.long	0		/* address */
 	.word	0
-END(wakeup_idt)
+END(.Lwakeup_idt)
--- linux-ein-5.4.0.orig/arch/x86/tools/chkobjdump.awk
+++ linux-ein-5.4.0/arch/x86/tools/chkobjdump.awk
@@ -10,6 +10,7 @@
 
 /^GNU objdump/ {
 	verstr = ""
+	gsub(/\(.*\)/, "");
 	for (i = 3; i <= NF; i++)
 		if (match($(i), "^[0-9]")) {
 			verstr = $(i);
--- linux-ein-5.4.0.orig/arch/x86/tools/gen-insn-attr-x86.awk
+++ linux-ein-5.4.0/arch/x86/tools/gen-insn-attr-x86.awk
@@ -69,7 +69,7 @@
 
 	lprefix1_expr = "\\((66|!F3)\\)"
 	lprefix2_expr = "\\(F3\\)"
-	lprefix3_expr = "\\((F2|!F3|66\\&F2)\\)"
+	lprefix3_expr = "\\((F2|!F3|66&F2)\\)"
 	lprefix_expr = "\\((66|F2|F3)\\)"
 	max_lprefix = 4
 
@@ -257,7 +257,7 @@
 	return add_flags(imm, mod)
 }
 
-/^[0-9a-f]+\:/ {
+/^[0-9a-f]+:/ {
 	if (NR == 1)
 		next
 	# get index
--- linux-ein-5.4.0.orig/arch/x86/tools/relocs.c
+++ linux-ein-5.4.0/arch/x86/tools/relocs.c
@@ -867,9 +867,11 @@
 	case R_386_PC32:
 	case R_386_PC16:
 	case R_386_PC8:
+	case R_386_PLT32:
 		/*
-		 * NONE can be ignored and PC relative relocations don't
-		 * need to be adjusted.
+		 * NONE can be ignored and PC relative relocations don't need
+		 * to be adjusted. Because sym must be defined, R_386_PLT32 can
+		 * be treated the same way as R_386_PC32.
 		 */
 		break;
 
@@ -910,9 +912,11 @@
 	case R_386_PC32:
 	case R_386_PC16:
 	case R_386_PC8:
+	case R_386_PLT32:
 		/*
-		 * NONE can be ignored and PC relative relocations don't
-		 * need to be adjusted.
+		 * NONE can be ignored and PC relative relocations don't need
+		 * to be adjusted. Because sym must be defined, R_386_PLT32 can
+		 * be treated the same way as R_386_PC32.
 		 */
 		break;
 
--- linux-ein-5.4.0.orig/arch/x86/um/ldt.c
+++ linux-ein-5.4.0/arch/x86/um/ldt.c
@@ -23,9 +23,11 @@
 {
 	long res;
 	void *stub_addr;
+
+	BUILD_BUG_ON(sizeof(*desc) % sizeof(long));
+
 	res = syscall_stub_data(mm_idp, (unsigned long *)desc,
-				(sizeof(*desc) + sizeof(long) - 1) &
-				    ~(sizeof(long) - 1),
+				sizeof(*desc) / sizeof(long),
 				addr, &stub_addr);
 	if (!res) {
 		unsigned long args[] = { func,
--- linux-ein-5.4.0.orig/arch/x86/um/shared/sysdep/syscalls_32.h
+++ linux-ein-5.4.0/arch/x86/um/shared/sysdep/syscalls_32.h
@@ -6,10 +6,9 @@
 #include <asm/unistd.h>
 #include <sysdep/ptrace.h>
 
-typedef long syscall_handler_t(struct pt_regs);
+typedef long syscall_handler_t(struct syscall_args);
 
 extern syscall_handler_t *sys_call_table[];
 
 #define EXECUTE_SYSCALL(syscall, regs) \
-	((long (*)(struct syscall_args)) \
-	 (*sys_call_table[syscall]))(SYSCALL_ARGS(&regs->regs))
+	((*sys_call_table[syscall]))(SYSCALL_ARGS(&regs->regs))
--- linux-ein-5.4.0.orig/arch/x86/um/shared/sysdep/syscalls_64.h
+++ linux-ein-5.4.0/arch/x86/um/shared/sysdep/syscalls_64.h
@@ -10,13 +10,12 @@
 #include <linux/msg.h>
 #include <linux/shm.h>
 
-typedef long syscall_handler_t(void);
+typedef long syscall_handler_t(long, long, long, long, long, long);
 
 extern syscall_handler_t *sys_call_table[];
 
 #define EXECUTE_SYSCALL(syscall, regs) \
-	(((long (*)(long, long, long, long, long, long)) \
-	  (*sys_call_table[syscall]))(UPT_SYSCALL_ARG1(&regs->regs), \
+	(((*sys_call_table[syscall]))(UPT_SYSCALL_ARG1(&regs->regs), \
 		 		      UPT_SYSCALL_ARG2(&regs->regs), \
 				      UPT_SYSCALL_ARG3(&regs->regs), \
 				      UPT_SYSCALL_ARG4(&regs->regs), \
--- linux-ein-5.4.0.orig/arch/x86/um/syscalls_64.c
+++ linux-ein-5.4.0/arch/x86/um/syscalls_64.c
@@ -11,6 +11,7 @@
 #include <linux/uaccess.h>
 #include <asm/prctl.h> /* XXX This should get the constants from libc */
 #include <os.h>
+#include <registers.h>
 
 long arch_prctl(struct task_struct *task, int option,
 		unsigned long __user *arg2)
@@ -35,7 +36,7 @@
 	switch (option) {
 	case ARCH_SET_FS:
 	case ARCH_SET_GS:
-		ret = restore_registers(pid, &current->thread.regs.regs);
+		ret = restore_pid_registers(pid, &current->thread.regs.regs);
 		if (ret)
 			return ret;
 		break;
--- linux-ein-5.4.0.orig/arch/x86/um/tls_32.c
+++ linux-ein-5.4.0/arch/x86/um/tls_32.c
@@ -65,9 +65,6 @@
 	struct thread_struct *t = &task->thread;
 	int idx;
 
-	if (!t->arch.tls_array)
-		return GDT_ENTRY_TLS_MIN;
-
 	for (idx = 0; idx < GDT_ENTRY_TLS_ENTRIES; idx++)
 		if (!t->arch.tls_array[idx].present)
 			return idx + GDT_ENTRY_TLS_MIN;
@@ -215,14 +212,12 @@
 	return 0;
 }
 
-int arch_copy_tls(struct task_struct *new)
+int arch_set_tls(struct task_struct *new, unsigned long tls)
 {
 	struct user_desc info;
 	int idx, ret = -EFAULT;
 
-	if (copy_from_user(&info,
-			   (void __user *) UPT_SI(&new->thread.regs.regs),
-			   sizeof(info)))
+	if (copy_from_user(&info, (void __user *) tls, sizeof(info)))
 		goto out;
 
 	ret = -EINVAL;
@@ -242,9 +237,6 @@
 {
 	struct thread_struct *t = &task->thread;
 
-	if (!t->arch.tls_array)
-		goto clear;
-
 	if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
 		return -EINVAL;
 
--- linux-ein-5.4.0.orig/arch/x86/um/tls_64.c
+++ linux-ein-5.4.0/arch/x86/um/tls_64.c
@@ -6,14 +6,13 @@
 {
 }
 
-int arch_copy_tls(struct task_struct *t)
+int arch_set_tls(struct task_struct *t, unsigned long tls)
 {
 	/*
 	 * If CLONE_SETTLS is set, we need to save the thread id
-	 * (which is argument 5, child_tid, of clone) so it can be set
-	 * during context switches.
+	 * so it can be set during context switches.
 	 */
-	t->thread.arch.fs = t->thread.regs.regs.gp[R8 / sizeof(long)];
+	t->thread.arch.fs = tls;
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/arch/x86/um/vdso/Makefile
+++ linux-ein-5.4.0/arch/x86/um/vdso/Makefile
@@ -62,7 +62,7 @@
 		       -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
 		 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
 
-VDSO_LDFLAGS = -fPIC -shared -Wl,--hash-style=sysv
+VDSO_LDFLAGS = -fPIC -shared -Wl,--hash-style=sysv -z noexecstack
 GCOV_PROFILE := n
 
 #
--- linux-ein-5.4.0.orig/arch/x86/um/vdso/um_vdso.c
+++ linux-ein-5.4.0/arch/x86/um/vdso/um_vdso.c
@@ -17,8 +17,10 @@
 {
 	long ret;
 
-	asm("syscall" : "=a" (ret) :
-		"0" (__NR_clock_gettime), "D" (clock), "S" (ts) : "memory");
+	asm("syscall"
+		: "=a" (ret)
+		: "0" (__NR_clock_gettime), "D" (clock), "S" (ts)
+		: "rcx", "r11", "memory");
 
 	return ret;
 }
@@ -29,8 +31,10 @@
 {
 	long ret;
 
-	asm("syscall" : "=a" (ret) :
-		"0" (__NR_gettimeofday), "D" (tv), "S" (tz) : "memory");
+	asm("syscall"
+		: "=a" (ret)
+		: "0" (__NR_gettimeofday), "D" (tv), "S" (tz)
+		: "rcx", "r11", "memory");
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/arch/x86/xen/enlighten_hvm.c
+++ linux-ein-5.4.0/arch/x86/xen/enlighten_hvm.c
@@ -175,6 +175,8 @@
        return 0;
 }
 
+static bool no_vector_callback __initdata;
+
 static void __init xen_hvm_guest_init(void)
 {
 	if (xen_pv_domain())
@@ -194,7 +196,7 @@
 
 	xen_panic_handler_init();
 
-	if (xen_feature(XENFEAT_hvm_callback_vector))
+	if (!no_vector_callback && xen_feature(XENFEAT_hvm_callback_vector))
 		xen_have_vector_callback = 1;
 
 	xen_hvm_smp_init();
@@ -220,6 +222,13 @@
 }
 early_param("xen_nopv", xen_parse_nopv);
 
+static __init int xen_parse_no_vector_callback(char *arg)
+{
+	no_vector_callback = true;
+	return 0;
+}
+early_param("xen_no_vector_callback", xen_parse_no_vector_callback);
+
 bool __init xen_hvm_need_lapic(void)
 {
 	if (xen_pv_domain())
--- linux-ein-5.4.0.orig/arch/x86/xen/enlighten_pv.c
+++ linux-ein-5.4.0/arch/x86/xen/enlighten_pv.c
@@ -727,8 +727,8 @@
 	preempt_enable();
 }
 
-static void xen_convert_trap_info(const struct desc_ptr *desc,
-				  struct trap_info *traps)
+static unsigned xen_convert_trap_info(const struct desc_ptr *desc,
+				      struct trap_info *traps, bool full)
 {
 	unsigned in, out, count;
 
@@ -738,17 +738,18 @@
 	for (in = out = 0; in < count; in++) {
 		gate_desc *entry = (gate_desc *)(desc->address) + in;
 
-		if (cvt_gate_to_trap(in, entry, &traps[out]))
+		if (cvt_gate_to_trap(in, entry, &traps[out]) || full)
 			out++;
 	}
-	traps[out].address = 0;
+
+	return out;
 }
 
 void xen_copy_trap_info(struct trap_info *traps)
 {
 	const struct desc_ptr *desc = this_cpu_ptr(&idt_desc);
 
-	xen_convert_trap_info(desc, traps);
+	xen_convert_trap_info(desc, traps, true);
 }
 
 /* Load a new IDT into Xen.  In principle this can be per-CPU, so we
@@ -758,6 +759,7 @@
 {
 	static DEFINE_SPINLOCK(lock);
 	static struct trap_info traps[257];
+	unsigned out;
 
 	trace_xen_cpu_load_idt(desc);
 
@@ -765,7 +767,8 @@
 
 	memcpy(this_cpu_ptr(&idt_desc), desc, sizeof(idt_desc));
 
-	xen_convert_trap_info(desc, traps);
+	out = xen_convert_trap_info(desc, traps, false);
+	memset(&traps[out], 0, sizeof(traps[0]));
 
 	xen_mc_flush();
 	if (HYPERVISOR_set_trap_table(traps))
@@ -905,14 +908,15 @@
 static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
 {
 	int ret;
+#ifdef CONFIG_X86_64
+	unsigned int which;
+	u64 base;
+#endif
 
 	ret = 0;
 
 	switch (msr) {
 #ifdef CONFIG_X86_64
-		unsigned which;
-		u64 base;
-
 	case MSR_FS_BASE:		which = SEGBASE_FS; goto set;
 	case MSR_KERNEL_GS_BASE:	which = SEGBASE_GS_USER; goto set;
 	case MSR_GS_BASE:		which = SEGBASE_GS_KERNEL; goto set;
@@ -1182,6 +1186,11 @@
 	x86_platform.legacy.rtc = 1;
 }
 
+static void __init xen_domu_set_legacy_features(void)
+{
+	x86_platform.legacy.rtc = 0;
+}
+
 /* First C function to be called on Xen boot */
 asmlinkage __visible void __init xen_start_kernel(void)
 {
@@ -1215,6 +1224,7 @@
 	x86_platform.get_nmi_reason = xen_get_nmi_reason;
 
 	x86_init.resources.memory_setup = xen_memory_setup;
+	x86_init.irqs.intr_mode_select	= x86_init_noop;
 	x86_init.irqs.intr_mode_init	= x86_init_noop;
 	x86_init.oem.arch_setup = xen_arch_setup;
 	x86_init.oem.banner = xen_banner;
@@ -1351,6 +1361,8 @@
 		add_preferred_console("xenboot", 0, NULL);
 		if (pci_xen)
 			x86_init.pci.arch_init = pci_xen_init;
+		x86_platform.set_legacy_features =
+				xen_domu_set_legacy_features;
 	} else {
 		const struct dom0_vga_console_info *info =
 			(void *)((char *)xen_start_info +
@@ -1380,6 +1392,15 @@
 		x86_init.mpparse.get_smp_config = x86_init_uint_noop;
 
 		xen_boot_params_init_edd();
+
+#ifdef CONFIG_ACPI
+		/*
+		 * Disable selecting "Firmware First mode" for correctable
+		 * memory errors, as this is the duty of the hypervisor to
+		 * decide.
+		 */
+		acpi_disable_cmcff = 1;
+#endif
 	}
 
 	if (!boot_params.screen_info.orig_video_isVGA)
--- linux-ein-5.4.0.orig/arch/x86/xen/p2m.c
+++ linux-ein-5.4.0/arch/x86/xen/p2m.c
@@ -622,8 +622,8 @@
 	}
 
 	/* Expanded the p2m? */
-	if (pfn > xen_p2m_last_pfn) {
-		xen_p2m_last_pfn = pfn;
+	if (pfn >= xen_p2m_last_pfn) {
+		xen_p2m_last_pfn = ALIGN(pfn + 1, P2M_PER_PAGE);
 		HYPERVISOR_shared_info->arch.max_pfn = xen_p2m_last_pfn;
 	}
 
@@ -714,9 +714,12 @@
 
 	for (i = 0; i < count; i++) {
 		unsigned long mfn, pfn;
+		struct gnttab_unmap_grant_ref unmap[2];
+		int rc;
 
 		/* Do not add to override if the map failed. */
-		if (map_ops[i].status)
+		if (map_ops[i].status != GNTST_okay ||
+		    (kmap_ops && kmap_ops[i].status != GNTST_okay))
 			continue;
 
 		if (map_ops[i].flags & GNTMAP_contains_pte) {
@@ -730,10 +733,46 @@
 
 		WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, "page must be ballooned");
 
-		if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) {
-			ret = -ENOMEM;
-			goto out;
+		if (likely(set_phys_to_machine(pfn, FOREIGN_FRAME(mfn))))
+			continue;
+
+		/*
+		 * Signal an error for this slot. This in turn requires
+		 * immediate unmapping.
+		 */
+		map_ops[i].status = GNTST_general_error;
+		unmap[0].host_addr = map_ops[i].host_addr,
+		unmap[0].handle = map_ops[i].handle;
+		map_ops[i].handle = ~0;
+		if (map_ops[i].flags & GNTMAP_device_map)
+			unmap[0].dev_bus_addr = map_ops[i].dev_bus_addr;
+		else
+			unmap[0].dev_bus_addr = 0;
+
+		if (kmap_ops) {
+			kmap_ops[i].status = GNTST_general_error;
+			unmap[1].host_addr = kmap_ops[i].host_addr,
+			unmap[1].handle = kmap_ops[i].handle;
+			kmap_ops[i].handle = ~0;
+			if (kmap_ops[i].flags & GNTMAP_device_map)
+				unmap[1].dev_bus_addr = kmap_ops[i].dev_bus_addr;
+			else
+				unmap[1].dev_bus_addr = 0;
 		}
+
+		/*
+		 * Pre-populate both status fields, to be recognizable in
+		 * the log message below.
+		 */
+		unmap[0].status = 1;
+		unmap[1].status = 1;
+
+		rc = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
+					       unmap, 1 + !!kmap_ops);
+		if (rc || unmap[0].status != GNTST_okay ||
+		    unmap[1].status != GNTST_okay)
+			pr_err_once("gnttab unmap failed: rc=%d st0=%d st1=%d\n",
+				    rc, unmap[0].status, unmap[1].status);
 	}
 
 out:
@@ -754,17 +793,15 @@
 		unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i]));
 		unsigned long pfn = page_to_pfn(pages[i]);
 
-		if (mfn == INVALID_P2M_ENTRY || !(mfn & FOREIGN_FRAME_BIT)) {
+		if (mfn != INVALID_P2M_ENTRY && (mfn & FOREIGN_FRAME_BIT))
+			set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
+		else
 			ret = -EINVAL;
-			goto out;
-		}
-
-		set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
 	}
 	if (kunmap_ops)
 		ret = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
-						kunmap_ops, count);
-out:
+						kunmap_ops, count) ?: ret;
+
 	return ret;
 }
 EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
--- linux-ein-5.4.0.orig/arch/x86/xen/pmu.c
+++ linux-ein-5.4.0/arch/x86/xen/pmu.c
@@ -512,10 +512,7 @@
 	return ret;
 }
 
-bool is_xen_pmu(int cpu)
-{
-	return (get_xenpmu_data() != NULL);
-}
+bool is_xen_pmu;
 
 void xen_pmu_init(int cpu)
 {
@@ -526,7 +523,7 @@
 
 	BUILD_BUG_ON(sizeof(struct xen_pmu_data) > PAGE_SIZE);
 
-	if (xen_hvm_domain())
+	if (xen_hvm_domain() || (cpu != 0 && !is_xen_pmu))
 		return;
 
 	xenpmu_data = (struct xen_pmu_data *)get_zeroed_page(GFP_KERNEL);
@@ -547,7 +544,8 @@
 	per_cpu(xenpmu_shared, cpu).xenpmu_data = xenpmu_data;
 	per_cpu(xenpmu_shared, cpu).flags = 0;
 
-	if (cpu == 0) {
+	if (!is_xen_pmu) {
+		is_xen_pmu = true;
 		perf_register_guest_info_callbacks(&xen_guest_cbs);
 		xen_pmu_arch_init();
 	}
--- linux-ein-5.4.0.orig/arch/x86/xen/pmu.h
+++ linux-ein-5.4.0/arch/x86/xen/pmu.h
@@ -4,6 +4,8 @@
 
 #include <xen/interface/xenpmu.h>
 
+extern bool is_xen_pmu;
+
 irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id);
 #ifdef CONFIG_XEN_HAVE_VPMU
 void xen_pmu_init(int cpu);
@@ -12,7 +14,6 @@
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool is_xen_pmu(int cpu);
 bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
 bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
 int pmu_apic_update(uint32_t reg);
--- linux-ein-5.4.0.orig/arch/x86/xen/smp.c
+++ linux-ein-5.4.0/arch/x86/xen/smp.c
@@ -32,30 +32,30 @@
 
 void xen_smp_intr_free(unsigned int cpu)
 {
+	kfree(per_cpu(xen_resched_irq, cpu).name);
+	per_cpu(xen_resched_irq, cpu).name = NULL;
 	if (per_cpu(xen_resched_irq, cpu).irq >= 0) {
 		unbind_from_irqhandler(per_cpu(xen_resched_irq, cpu).irq, NULL);
 		per_cpu(xen_resched_irq, cpu).irq = -1;
-		kfree(per_cpu(xen_resched_irq, cpu).name);
-		per_cpu(xen_resched_irq, cpu).name = NULL;
 	}
+	kfree(per_cpu(xen_callfunc_irq, cpu).name);
+	per_cpu(xen_callfunc_irq, cpu).name = NULL;
 	if (per_cpu(xen_callfunc_irq, cpu).irq >= 0) {
 		unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu).irq, NULL);
 		per_cpu(xen_callfunc_irq, cpu).irq = -1;
-		kfree(per_cpu(xen_callfunc_irq, cpu).name);
-		per_cpu(xen_callfunc_irq, cpu).name = NULL;
 	}
+	kfree(per_cpu(xen_debug_irq, cpu).name);
+	per_cpu(xen_debug_irq, cpu).name = NULL;
 	if (per_cpu(xen_debug_irq, cpu).irq >= 0) {
 		unbind_from_irqhandler(per_cpu(xen_debug_irq, cpu).irq, NULL);
 		per_cpu(xen_debug_irq, cpu).irq = -1;
-		kfree(per_cpu(xen_debug_irq, cpu).name);
-		per_cpu(xen_debug_irq, cpu).name = NULL;
 	}
+	kfree(per_cpu(xen_callfuncsingle_irq, cpu).name);
+	per_cpu(xen_callfuncsingle_irq, cpu).name = NULL;
 	if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) {
 		unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq,
 				       NULL);
 		per_cpu(xen_callfuncsingle_irq, cpu).irq = -1;
-		kfree(per_cpu(xen_callfuncsingle_irq, cpu).name);
-		per_cpu(xen_callfuncsingle_irq, cpu).name = NULL;
 	}
 }
 
@@ -65,6 +65,7 @@
 	char *resched_name, *callfunc_name, *debug_name;
 
 	resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu);
+	per_cpu(xen_resched_irq, cpu).name = resched_name;
 	rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR,
 				    cpu,
 				    xen_reschedule_interrupt,
@@ -74,9 +75,9 @@
 	if (rc < 0)
 		goto fail;
 	per_cpu(xen_resched_irq, cpu).irq = rc;
-	per_cpu(xen_resched_irq, cpu).name = resched_name;
 
 	callfunc_name = kasprintf(GFP_KERNEL, "callfunc%d", cpu);
+	per_cpu(xen_callfunc_irq, cpu).name = callfunc_name;
 	rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR,
 				    cpu,
 				    xen_call_function_interrupt,
@@ -86,18 +87,21 @@
 	if (rc < 0)
 		goto fail;
 	per_cpu(xen_callfunc_irq, cpu).irq = rc;
-	per_cpu(xen_callfunc_irq, cpu).name = callfunc_name;
 
-	debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
-	rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt,
-				     IRQF_PERCPU | IRQF_NOBALANCING,
-				     debug_name, NULL);
-	if (rc < 0)
-		goto fail;
-	per_cpu(xen_debug_irq, cpu).irq = rc;
-	per_cpu(xen_debug_irq, cpu).name = debug_name;
+	if (!xen_fifo_events) {
+		debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
+		per_cpu(xen_debug_irq, cpu).name = debug_name;
+		rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu,
+					     xen_debug_interrupt,
+					     IRQF_PERCPU | IRQF_NOBALANCING,
+					     debug_name, NULL);
+		if (rc < 0)
+			goto fail;
+		per_cpu(xen_debug_irq, cpu).irq = rc;
+	}
 
 	callfunc_name = kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu);
+	per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name;
 	rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR,
 				    cpu,
 				    xen_call_function_single_interrupt,
@@ -107,7 +111,6 @@
 	if (rc < 0)
 		goto fail;
 	per_cpu(xen_callfuncsingle_irq, cpu).irq = rc;
-	per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name;
 
 	return 0;
 
--- linux-ein-5.4.0.orig/arch/x86/xen/smp_hvm.c
+++ linux-ein-5.4.0/arch/x86/xen/smp_hvm.c
@@ -19,6 +19,12 @@
 	xen_vcpu_setup(0);
 
 	/*
+	 * Called again in case the kernel boots on vcpu >= MAX_VIRT_CPUS.
+	 * Refer to comments in xen_hvm_init_time_ops().
+	 */
+	xen_hvm_init_time_ops();
+
+	/*
 	 * The alternative logic (which patches the unlock/lock) runs before
 	 * the smp bootup up code is activated. Hence we need to set this up
 	 * the core kernel is being patched. Otherwise we will have only
--- linux-ein-5.4.0.orig/arch/x86/xen/smp_pv.c
+++ linux-ein-5.4.0/arch/x86/xen/smp_pv.c
@@ -28,6 +28,7 @@
 #include <asm/desc.h>
 #include <asm/pgtable.h>
 #include <asm/cpu.h>
+#include <asm/fpu/internal.h>
 
 #include <xen/interface/xen.h>
 #include <xen/interface/vcpu.h>
@@ -53,6 +54,7 @@
 static DEFINE_PER_CPU(struct xen_common_irq, xen_pmu_irq) = { .irq = -1 };
 
 static irqreturn_t xen_irq_work_interrupt(int irq, void *dev_id);
+void asm_cpu_bringup_and_idle(void);
 
 static void cpu_bringup(void)
 {
@@ -60,6 +62,7 @@
 
 	cr4_init();
 	cpu_init();
+	fpu__init_cpu();
 	touch_softlockup_watchdog();
 	preempt_disable();
 
@@ -92,22 +95,23 @@
 	cpu_bringup();
 	boot_init_stack_canary();
 	cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
+	prevent_tail_call_optimization();
 }
 
 void xen_smp_intr_free_pv(unsigned int cpu)
 {
+	kfree(per_cpu(xen_irq_work, cpu).name);
+	per_cpu(xen_irq_work, cpu).name = NULL;
 	if (per_cpu(xen_irq_work, cpu).irq >= 0) {
 		unbind_from_irqhandler(per_cpu(xen_irq_work, cpu).irq, NULL);
 		per_cpu(xen_irq_work, cpu).irq = -1;
-		kfree(per_cpu(xen_irq_work, cpu).name);
-		per_cpu(xen_irq_work, cpu).name = NULL;
 	}
 
+	kfree(per_cpu(xen_pmu_irq, cpu).name);
+	per_cpu(xen_pmu_irq, cpu).name = NULL;
 	if (per_cpu(xen_pmu_irq, cpu).irq >= 0) {
 		unbind_from_irqhandler(per_cpu(xen_pmu_irq, cpu).irq, NULL);
 		per_cpu(xen_pmu_irq, cpu).irq = -1;
-		kfree(per_cpu(xen_pmu_irq, cpu).name);
-		per_cpu(xen_pmu_irq, cpu).name = NULL;
 	}
 }
 
@@ -117,6 +121,7 @@
 	char *callfunc_name, *pmu_name;
 
 	callfunc_name = kasprintf(GFP_KERNEL, "irqwork%d", cpu);
+	per_cpu(xen_irq_work, cpu).name = callfunc_name;
 	rc = bind_ipi_to_irqhandler(XEN_IRQ_WORK_VECTOR,
 				    cpu,
 				    xen_irq_work_interrupt,
@@ -126,10 +131,10 @@
 	if (rc < 0)
 		goto fail;
 	per_cpu(xen_irq_work, cpu).irq = rc;
-	per_cpu(xen_irq_work, cpu).name = callfunc_name;
 
-	if (is_xen_pmu(cpu)) {
+	if (is_xen_pmu) {
 		pmu_name = kasprintf(GFP_KERNEL, "pmu%d", cpu);
+		per_cpu(xen_pmu_irq, cpu).name = pmu_name;
 		rc = bind_virq_to_irqhandler(VIRQ_XENPMU, cpu,
 					     xen_pmu_irq_handler,
 					     IRQF_PERCPU|IRQF_NOBALANCING,
@@ -137,7 +142,6 @@
 		if (rc < 0)
 			goto fail;
 		per_cpu(xen_pmu_irq, cpu).irq = rc;
-		per_cpu(xen_pmu_irq, cpu).name = pmu_name;
 	}
 
 	return 0;
@@ -309,7 +313,7 @@
 	 * pointing just below where pt_regs would be if it were a normal
 	 * kernel entry.
 	 */
-	ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
+	ctxt->user_regs.eip = (unsigned long)asm_cpu_bringup_and_idle;
 	ctxt->flags = VGCF_IN_KERNEL;
 	ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
 	ctxt->user_regs.ds = __USER_DS;
--- linux-ein-5.4.0.orig/arch/x86/xen/spinlock.c
+++ linux-ein-5.4.0/arch/x86/xen/spinlock.c
@@ -75,6 +75,7 @@
 	     cpu, per_cpu(lock_kicker_irq, cpu));
 
 	name = kasprintf(GFP_KERNEL, "spinlock%d", cpu);
+	per_cpu(irq_name, cpu) = name;
 	irq = bind_ipi_to_irqhandler(XEN_SPIN_UNLOCK_VECTOR,
 				     cpu,
 				     dummy_handler,
@@ -85,7 +86,6 @@
 	if (irq >= 0) {
 		disable_irq(irq); /* make sure it's never delivered */
 		per_cpu(lock_kicker_irq, cpu) = irq;
-		per_cpu(irq_name, cpu) = name;
 	}
 
 	printk("cpu %d spinlock event irq %d\n", cpu, irq);
@@ -93,13 +93,23 @@
 
 void xen_uninit_lock_cpu(int cpu)
 {
+	int irq;
+
 	if (!xen_pvspin)
 		return;
 
-	unbind_from_irqhandler(per_cpu(lock_kicker_irq, cpu), NULL);
-	per_cpu(lock_kicker_irq, cpu) = -1;
 	kfree(per_cpu(irq_name, cpu));
 	per_cpu(irq_name, cpu) = NULL;
+	/*
+	 * When booting the kernel with 'mitigations=auto,nosmt', the secondary
+	 * CPUs are not activated, and lock_kicker_irq is not initialized.
+	 */
+	irq = per_cpu(lock_kicker_irq, cpu);
+	if (irq == -1)
+		return;
+
+	unbind_from_irqhandler(irq, NULL);
+	per_cpu(lock_kicker_irq, cpu) = -1;
 }
 
 PV_CALLEE_SAVE_REGS_THUNK(xen_vcpu_stolen);
--- linux-ein-5.4.0.orig/arch/x86/xen/time.c
+++ linux-ein-5.4.0/arch/x86/xen/time.c
@@ -547,6 +547,11 @@
 
 void __init xen_hvm_init_time_ops(void)
 {
+	static bool hvm_time_initialized;
+
+	if (hvm_time_initialized)
+		return;
+
 	/*
 	 * vector callback is needed otherwise we cannot receive interrupts
 	 * on cpu > 0 and at this point we don't know how many cpus are
@@ -556,7 +561,22 @@
 		return;
 
 	if (!xen_feature(XENFEAT_hvm_safe_pvclock)) {
-		pr_info("Xen doesn't support pvclock on HVM, disable pv timer");
+		pr_info_once("Xen doesn't support pvclock on HVM, disable pv timer");
+		return;
+	}
+
+	/*
+	 * Only MAX_VIRT_CPUS 'vcpu_info' are embedded inside 'shared_info'.
+	 * The __this_cpu_read(xen_vcpu) is still NULL when Xen HVM guest
+	 * boots on vcpu >= MAX_VIRT_CPUS (e.g., kexec), To access
+	 * __this_cpu_read(xen_vcpu) via xen_clocksource_read() will panic.
+	 *
+	 * The xen_hvm_init_time_ops() should be called again later after
+	 * __this_cpu_read(xen_vcpu) is available.
+	 */
+	if (!__this_cpu_read(xen_vcpu)) {
+		pr_info("Delay xen_init_time_common() as kernel is running on vcpu=%d\n",
+			xen_vcpu_nr(0));
 		return;
 	}
 
@@ -568,6 +588,8 @@
 	x86_platform.calibrate_tsc = xen_tsc_khz;
 	x86_platform.get_wallclock = xen_get_wallclock;
 	x86_platform.set_wallclock = xen_set_wallclock;
+
+	hvm_time_initialized = true;
 }
 #endif
 
--- linux-ein-5.4.0.orig/arch/x86/xen/xen-asm_32.S
+++ linux-ein-5.4.0/arch/x86/xen/xen-asm_32.S
@@ -56,7 +56,7 @@
 	_ASM_EXTABLE(1b,2b)
 .endm
 
-ENTRY(xen_iret)
+SYM_CODE_START(xen_iret)
 	/* test eflags for special cases */
 	testl $(X86_EFLAGS_VM | XEN_EFLAGS_NMI), 8(%esp)
 	jnz hyper_iret
@@ -122,14 +122,14 @@
 hyper_iret:
 	/* put this out of line since its very rarely used */
 	jmp hypercall_page + __HYPERVISOR_iret * 32
+SYM_CODE_END(xen_iret)
 
 	.globl xen_iret_start_crit, xen_iret_end_crit
 
 /*
- * This is called by xen_hypervisor_callback in entry.S when it sees
+ * This is called by xen_hypervisor_callback in entry_32.S when it sees
  * that the EIP at the time of interrupt was between
- * xen_iret_start_crit and xen_iret_end_crit.  We're passed the EIP in
- * %eax so we can do a more refined determination of what to do.
+ * xen_iret_start_crit and xen_iret_end_crit.
  *
  * The stack format at this point is:
  *	----------------
@@ -138,70 +138,46 @@
  *	 eflags		}  outer exception info
  *	 cs		}
  *	 eip		}
- *	---------------- <- edi (copy dest)
- *	 eax		:  outer eax if it hasn't been restored
  *	----------------
- *	 eflags		}  nested exception info
- *	 cs		}   (no ss/esp because we're nested
- *	 eip		}    from the same ring)
- *	 orig_eax	}<- esi (copy src)
- *	 - - - - - - - -
- *	 fs		}
- *	 es		}
- *	 ds		}  SAVE_ALL state
- *	 eax		}
- *	  :		:
- *	 ebx		}<- esp
+ *	 eax		:  outer eax if it hasn't been restored
  *	----------------
+ *	 eflags		}
+ *	 cs		}  nested exception info
+ *	 eip		}
+ *	 return address	: (into xen_hypervisor_callback)
  *
- * In order to deliver the nested exception properly, we need to shift
- * everything from the return addr up to the error code so it sits
- * just under the outer exception info.  This means that when we
- * handle the exception, we do it in the context of the outer
- * exception rather than starting a new one.
+ * In order to deliver the nested exception properly, we need to discard the
+ * nested exception frame such that when we handle the exception, we do it
+ * in the context of the outer exception rather than starting a new one.
  *
- * The only caveat is that if the outer eax hasn't been restored yet
- * (ie, it's still on stack), we need to insert its value into the
- * SAVE_ALL state before going on, since it's usermode state which we
- * eventually need to restore.
+ * The only caveat is that if the outer eax hasn't been restored yet (i.e.
+ * it's still on stack), we need to restore its value here.
  */
-ENTRY(xen_iret_crit_fixup)
+SYM_CODE_START(xen_iret_crit_fixup)
 	/*
 	 * Paranoia: Make sure we're really coming from kernel space.
 	 * One could imagine a case where userspace jumps into the
 	 * critical range address, but just before the CPU delivers a
-	 * GP, it decides to deliver an interrupt instead.  Unlikely?
-	 * Definitely.  Easy to avoid?  Yes.  The Intel documents
-	 * explicitly say that the reported EIP for a bad jump is the
-	 * jump instruction itself, not the destination, but some
-	 * virtual environments get this wrong.
-	 */
-	movl PT_CS(%esp), %ecx
-	andl $SEGMENT_RPL_MASK, %ecx
-	cmpl $USER_RPL, %ecx
-	je 2f
-
-	lea PT_ORIG_EAX(%esp), %esi
-	lea PT_EFLAGS(%esp), %edi
+	 * PF, it decides to deliver an interrupt instead.  Unlikely?
+	 * Definitely.  Easy to avoid?  Yes.
+	 */
+	testb $2, 2*4(%esp)		/* nested CS */
+	jnz 2f
 
 	/*
 	 * If eip is before iret_restore_end then stack
 	 * hasn't been restored yet.
 	 */
-	cmp $iret_restore_end, %eax
+	cmpl $iret_restore_end, 1*4(%esp)
 	jae 1f
 
-	movl 0+4(%edi), %eax		/* copy EAX (just above top of frame) */
-	movl %eax, PT_EAX(%esp)
-
-	lea ESP_OFFSET(%edi), %edi	/* move dest up over saved regs */
-
-	/* set up the copy */
-1:	std
-	mov $PT_EIP / 4, %ecx		/* saved regs up to orig_eax */
-	rep movsl
-	cld
-
-	lea 4(%edi), %esp		/* point esp to new frame */
-2:	jmp xen_do_upcall
-
+	movl 4*4(%esp), %eax		/* load outer EAX */
+	ret $4*4			/* discard nested EIP, CS, and EFLAGS as
+					 * well as the just restored EAX */
+
+1:
+	ret $3*4			/* discard nested EIP, CS, and EFLAGS */
+
+2:
+	ret
+SYM_CODE_END(xen_iret_crit_fixup)
--- linux-ein-5.4.0.orig/arch/x86/xen/xen-head.S
+++ linux-ein-5.4.0/arch/x86/xen/xen-head.S
@@ -35,7 +35,11 @@
 	rep __ASM_SIZE(stos)
 
 	mov %_ASM_SI, xen_start_info
-	mov $init_thread_union+THREAD_SIZE, %_ASM_SP
+#ifdef CONFIG_X86_64
+	mov initial_stack(%rip), %rsp
+#else
+	mov initial_stack, %esp
+#endif
 
 #ifdef CONFIG_X86_64
 	/* Set up %gs.
@@ -51,9 +55,19 @@
 	wrmsr
 #endif
 
-	jmp xen_start_kernel
+	call xen_start_kernel
 END(startup_xen)
 	__FINIT
+
+#ifdef CONFIG_XEN_PV_SMP
+.pushsection .text
+SYM_CODE_START(asm_cpu_bringup_and_idle)
+	UNWIND_HINT_EMPTY
+
+	call cpu_bringup_and_idle
+SYM_CODE_END(asm_cpu_bringup_and_idle)
+.popsection
+#endif
 #endif
 
 .pushsection .text
--- linux-ein-5.4.0.orig/arch/x86/xen/xen-ops.h
+++ linux-ein-5.4.0/arch/x86/xen/xen-ops.h
@@ -30,6 +30,8 @@
 extern struct shared_info xen_dummy_shared_info;
 extern struct shared_info *HYPERVISOR_shared_info;
 
+extern bool xen_fifo_events;
+
 void xen_setup_mfn_list_list(void);
 void xen_build_mfn_list_list(void);
 void xen_setup_machphys_mapping(void);
--- linux-ein-5.4.0.orig/arch/xtensa/Kconfig
+++ linux-ein-5.4.0/arch/xtensa/Kconfig
@@ -22,11 +22,12 @@
 	select HAVE_ARCH_JUMP_LABEL
 	select HAVE_ARCH_KASAN if MMU
 	select HAVE_ARCH_TRACEHOOK
+	select HAVE_COPY_THREAD_TLS
 	select HAVE_DEBUG_KMEMLEAK
 	select HAVE_DMA_CONTIGUOUS
 	select HAVE_EXIT_THREAD
 	select HAVE_FUNCTION_TRACER
-	select HAVE_FUTEX_CMPXCHG if !MMU
+	select HAVE_FUTEX_CMPXCHG if !MMU && FUTEX
 	select HAVE_HW_BREAKPOINT if PERF_EVENTS
 	select HAVE_IRQ_TIME_ACCOUNTING
 	select HAVE_OPROFILE
--- linux-ein-5.4.0.orig/arch/xtensa/boot/Makefile
+++ linux-ein-5.4.0/arch/xtensa/boot/Makefile
@@ -9,8 +9,7 @@
 
 
 # KBUILD_CFLAGS used when building rest of boot (takes effect recursively)
-KBUILD_CFLAGS	+= -fno-builtin -Iarch/$(ARCH)/boot/include
-HOSTFLAGS	+= -Iarch/$(ARCH)/boot/include
+KBUILD_CFLAGS	+= -fno-builtin
 
 BIG_ENDIAN	:= $(shell echo __XTENSA_EB__ | $(CC) -E - | grep -v "\#")
 
--- linux-ein-5.4.0.orig/arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi
+++ linux-ein-5.4.0/arch/xtensa/boot/dts/xtfpga-flash-128m.dtsi
@@ -8,19 +8,19 @@
 			reg = <0x00000000 0x08000000>;
 			bank-width = <2>;
 			device-width = <2>;
-			partition@0x0 {
+			partition@0 {
 				label = "data";
 				reg = <0x00000000 0x06000000>;
 			};
-			partition@0x6000000 {
+			partition@6000000 {
 				label = "boot loader area";
 				reg = <0x06000000 0x00800000>;
 			};
-			partition@0x6800000 {
+			partition@6800000 {
 				label = "kernel image";
 				reg = <0x06800000 0x017e0000>;
 			};
-			partition@0x7fe0000 {
+			partition@7fe0000 {
 				label = "boot environment";
 				reg = <0x07fe0000 0x00020000>;
 			};
--- linux-ein-5.4.0.orig/arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi
+++ linux-ein-5.4.0/arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi
@@ -8,19 +8,19 @@
 			reg = <0x08000000 0x01000000>;
 			bank-width = <2>;
 			device-width = <2>;
-			partition@0x0 {
+			partition@0 {
 				label = "boot loader area";
 				reg = <0x00000000 0x00400000>;
 			};
-			partition@0x400000 {
+			partition@400000 {
 				label = "kernel image";
 				reg = <0x00400000 0x00600000>;
 			};
-			partition@0xa00000 {
+			partition@a00000 {
 				label = "data";
 				reg = <0x00a00000 0x005e0000>;
 			};
-			partition@0xfe0000 {
+			partition@fe0000 {
 				label = "boot environment";
 				reg = <0x00fe0000 0x00020000>;
 			};
--- linux-ein-5.4.0.orig/arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi
+++ linux-ein-5.4.0/arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi
@@ -8,11 +8,11 @@
 			reg = <0x08000000 0x00400000>;
 			bank-width = <2>;
 			device-width = <2>;
-			partition@0x0 {
+			partition@0 {
 				label = "boot loader area";
 				reg = <0x00000000 0x003f0000>;
 			};
-			partition@0x3f0000 {
+			partition@3f0000 {
 				label = "boot environment";
 				reg = <0x003f0000 0x00010000>;
 			};
--- linux-ein-5.4.0.orig/arch/xtensa/boot/lib/zmem.c
+++ linux-ein-5.4.0/arch/xtensa/boot/lib/zmem.c
@@ -4,13 +4,14 @@
 /* bits taken from ppc */
 
 extern void *avail_ram, *end_avail;
+void gunzip(void *dst, int dstlen, unsigned char *src, int *lenp);
 
-void exit (void)
+static void exit(void)
 {
   for (;;);
 }
 
-void *zalloc(unsigned size)
+static void *zalloc(unsigned int size)
 {
         void *p = avail_ram;
 
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/core.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/core.h
@@ -6,6 +6,10 @@
 
 #include <variant/core.h>
 
+#ifndef XCHAL_HAVE_DIV32
+#define XCHAL_HAVE_DIV32 0
+#endif
+
 #ifndef XCHAL_HAVE_EXCLUSIVE
 #define XCHAL_HAVE_EXCLUSIVE 0
 #endif
@@ -18,4 +22,13 @@
 #define XCHAL_SPANNING_WAY 0
 #endif
 
+#ifndef XCHAL_HW_MIN_VERSION
+#if defined(XCHAL_HW_MIN_VERSION_MAJOR) && defined(XCHAL_HW_MIN_VERSION_MINOR)
+#define XCHAL_HW_MIN_VERSION (XCHAL_HW_MIN_VERSION_MAJOR * 100 + \
+			      XCHAL_HW_MIN_VERSION_MINOR)
+#else
+#define XCHAL_HW_MIN_VERSION 0
+#endif
+#endif
+
 #endif
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/kmem_layout.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/kmem_layout.h
@@ -11,6 +11,7 @@
 #ifndef _XTENSA_KMEM_LAYOUT_H
 #define _XTENSA_KMEM_LAYOUT_H
 
+#include <asm/core.h>
 #include <asm/types.h>
 
 #ifdef CONFIG_MMU
@@ -65,6 +66,34 @@
 
 #endif
 
+/* KIO definition */
+
+#if XCHAL_HAVE_PTP_MMU
+#define XCHAL_KIO_CACHED_VADDR		0xe0000000
+#define XCHAL_KIO_BYPASS_VADDR		0xf0000000
+#define XCHAL_KIO_DEFAULT_PADDR		0xf0000000
+#else
+#define XCHAL_KIO_BYPASS_VADDR		XCHAL_KIO_PADDR
+#define XCHAL_KIO_DEFAULT_PADDR		0x90000000
+#endif
+#define XCHAL_KIO_SIZE			0x10000000
+
+#if (!XCHAL_HAVE_PTP_MMU || XCHAL_HAVE_SPANNING_WAY) && defined(CONFIG_USE_OF)
+#define XCHAL_KIO_PADDR			xtensa_get_kio_paddr()
+#ifndef __ASSEMBLY__
+extern unsigned long xtensa_kio_paddr;
+
+static inline unsigned long xtensa_get_kio_paddr(void)
+{
+	return xtensa_kio_paddr;
+}
+#endif
+#else
+#define XCHAL_KIO_PADDR			XCHAL_KIO_DEFAULT_PADDR
+#endif
+
+/* KERNEL_STACK definition */
+
 #ifndef CONFIG_KASAN
 #define KERNEL_STACK_SHIFT	13
 #else
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/pgtable.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/pgtable.h
@@ -70,7 +70,7 @@
  */
 #define VMALLOC_START		(XCHAL_KSEG_CACHED_VADDR - 0x10000000)
 #define VMALLOC_END		(VMALLOC_START + 0x07FEFFFF)
-#define TLBTEMP_BASE_1		(VMALLOC_END + 1)
+#define TLBTEMP_BASE_1		(VMALLOC_START + 0x08000000)
 #define TLBTEMP_BASE_2		(TLBTEMP_BASE_1 + DCACHE_WAY_SIZE)
 #if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE
 #define TLBTEMP_SIZE		(2 * DCACHE_WAY_SIZE)
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/processor.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/processor.h
@@ -225,8 +225,8 @@
 
 #define xtensa_set_sr(x, sr) \
 	({ \
-	 unsigned int v = (unsigned int)(x); \
-	 __asm__ __volatile__ ("wsr %0, "__stringify(sr) :: "a"(v)); \
+	 __asm__ __volatile__ ("wsr %0, "__stringify(sr) :: \
+			       "a"((unsigned int)(x))); \
 	 })
 
 #define xtensa_get_sr(sr) \
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/syscall.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/syscall.h
@@ -51,7 +51,7 @@
 					    struct pt_regs *regs,
 					    int error, long val)
 {
-	regs->areg[0] = (long) error ? error : val;
+	regs->areg[2] = (long) error ? error : val;
 }
 
 #define SYSCALL_MAX_ARGS 6
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/thread_info.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/thread_info.h
@@ -55,6 +55,10 @@
 	mm_segment_t		addr_limit;	/* thread address space */
 
 	unsigned long		cpenable;
+#if XCHAL_HAVE_EXCLUSIVE
+	/* result of the most recent exclusive store */
+	unsigned long		atomctl8;
+#endif
 
 	/* Allocate storage for extra user states and coprocessor states. */
 #if XTENSA_HAVE_COPROCESSORS
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/timex.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/timex.h
@@ -29,10 +29,6 @@
 
 extern unsigned long ccount_freq;
 
-typedef unsigned long long cycles_t;
-
-#define get_cycles()	(0)
-
 void local_timer_setup(unsigned cpu);
 
 /*
@@ -59,4 +55,6 @@
 	xtensa_set_sr(ccompare, SREG_CCOMPARE + LINUX_TIMER);
 }
 
+#include <asm-generic/timex.h>
+
 #endif	/* _XTENSA_TIMEX_H */
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/uaccess.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/uaccess.h
@@ -300,7 +300,7 @@
 	return -EFAULT;
 }
 #else
-long strncpy_from_user(char *dst, const char *src, long count);
+long strncpy_from_user(char *dst, const char __user *src, long count);
 #endif
 
 /*
--- linux-ein-5.4.0.orig/arch/xtensa/include/asm/vectors.h
+++ linux-ein-5.4.0/arch/xtensa/include/asm/vectors.h
@@ -21,50 +21,14 @@
 #include <asm/core.h>
 #include <asm/kmem_layout.h>
 
-#if XCHAL_HAVE_PTP_MMU
-#define XCHAL_KIO_CACHED_VADDR		0xe0000000
-#define XCHAL_KIO_BYPASS_VADDR		0xf0000000
-#define XCHAL_KIO_DEFAULT_PADDR		0xf0000000
-#else
-#define XCHAL_KIO_BYPASS_VADDR		XCHAL_KIO_PADDR
-#define XCHAL_KIO_DEFAULT_PADDR		0x90000000
-#endif
-#define XCHAL_KIO_SIZE			0x10000000
-
-#if (!XCHAL_HAVE_PTP_MMU || XCHAL_HAVE_SPANNING_WAY) && defined(CONFIG_OF)
-#define XCHAL_KIO_PADDR			xtensa_get_kio_paddr()
-#ifndef __ASSEMBLY__
-extern unsigned long xtensa_kio_paddr;
-
-static inline unsigned long xtensa_get_kio_paddr(void)
-{
-	return xtensa_kio_paddr;
-}
-#endif
-#else
-#define XCHAL_KIO_PADDR			XCHAL_KIO_DEFAULT_PADDR
-#endif
-
-#if defined(CONFIG_MMU)
-
-#if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
-/* Image Virtual Start Address */
-#define KERNELOFFSET			(XCHAL_KSEG_CACHED_VADDR + \
-					 CONFIG_KERNEL_LOAD_ADDRESS - \
+#if defined(CONFIG_MMU) && XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
+#define KERNELOFFSET			(CONFIG_KERNEL_LOAD_ADDRESS + \
+					 XCHAL_KSEG_CACHED_VADDR - \
 					 XCHAL_KSEG_PADDR)
 #else
 #define KERNELOFFSET			CONFIG_KERNEL_LOAD_ADDRESS
 #endif
 
-#else /* !defined(CONFIG_MMU) */
-  /* MMU Not being used - Virtual == Physical */
-
-/* Location of the start of the kernel text, _start */
-#define KERNELOFFSET			CONFIG_KERNEL_LOAD_ADDRESS
-
-
-#endif /* CONFIG_MMU */
-
 #define RESET_VECTOR1_VADDR		(XCHAL_RESET_VECTOR1_VADDR)
 #ifdef CONFIG_VECTORS_OFFSET
 #define VECBASE_VADDR			(KERNELOFFSET - CONFIG_VECTORS_OFFSET)
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/asm-offsets.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/asm-offsets.c
@@ -93,6 +93,9 @@
 	DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
 	DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
 	DEFINE(THREAD_CPENABLE, offsetof (struct thread_info, cpenable));
+#if XCHAL_HAVE_EXCLUSIVE
+	DEFINE(THREAD_ATOMCTL8, offsetof (struct thread_info, atomctl8));
+#endif
 #if XTENSA_HAVE_COPROCESSORS
 	DEFINE(THREAD_XTREGS_CP0, offsetof(struct thread_info, xtregs_cp.cp0));
 	DEFINE(THREAD_XTREGS_CP1, offsetof(struct thread_info, xtregs_cp.cp1));
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/coprocessor.S
+++ linux-ein-5.4.0/arch/xtensa/kernel/coprocessor.S
@@ -37,7 +37,7 @@
 	.if XTENSA_HAVE_COPROCESSOR(x);					\
 		.align 4;						\
 	.Lsave_cp_regs_cp##x:						\
-		xchal_cp##x##_store a2 a4 a5 a6 a7;			\
+		xchal_cp##x##_store a2 a3 a4 a5 a6;			\
 		jx	a0;						\
 	.endif
 
@@ -54,7 +54,7 @@
 	.if XTENSA_HAVE_COPROCESSOR(x);					\
 		.align 4;						\
 	.Lload_cp_regs_cp##x:						\
-		xchal_cp##x##_load a2 a4 a5 a6 a7;			\
+		xchal_cp##x##_load a2 a3 a4 a5 a6;			\
 		jx	a0;						\
 	.endif
 
@@ -109,37 +109,6 @@
 	.previous
 
 /*
- * coprocessor_flush(struct thread_info*, index)
- *                             a2        a3
- *
- * Save coprocessor registers for coprocessor 'index'.
- * The register values are saved to or loaded from the coprocessor area 
- * inside the task_info structure.
- *
- * Note that this function doesn't update the coprocessor_owner information!
- *
- */
-
-ENTRY(coprocessor_flush)
-
-	/* reserve 4 bytes on stack to save a0 */
-	abi_entry(4)
-
-	s32i	a0, a1, 0
-	movi	a0, .Lsave_cp_regs_jump_table
-	addx8	a3, a3, a0
-	l32i	a4, a3, 4
-	l32i	a3, a3, 0
-	add	a2, a2, a4
-	beqz	a3, 1f
-	callx0	a3
-1:	l32i	a0, a1, 0
-
-	abi_ret(4)
-
-ENDPROC(coprocessor_flush)
-
-/*
  * Entry condition:
  *
  *   a0:	trashed, original value saved on stack (PT_AREG0)
@@ -261,6 +230,39 @@
 
 ENDPROC(fast_coprocessor)
 
+	.text
+
+/*
+ * coprocessor_flush(struct thread_info*, index)
+ *                             a2        a3
+ *
+ * Save coprocessor registers for coprocessor 'index'.
+ * The register values are saved to or loaded from the coprocessor area
+ * inside the task_info structure.
+ *
+ * Note that this function doesn't update the coprocessor_owner information!
+ *
+ */
+
+ENTRY(coprocessor_flush)
+
+	/* reserve 4 bytes on stack to save a0 */
+	abi_entry(4)
+
+	s32i	a0, a1, 0
+	movi	a0, .Lsave_cp_regs_jump_table
+	addx8	a3, a3, a0
+	l32i	a4, a3, 4
+	l32i	a3, a3, 0
+	add	a2, a2, a4
+	beqz	a3, 1f
+	callx0	a3
+1:	l32i	a0, a1, 0
+
+	abi_ret(4)
+
+ENDPROC(coprocessor_flush)
+
 	.data
 
 ENTRY(coprocessor_owner)
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/entry.S
+++ linux-ein-5.4.0/arch/xtensa/kernel/entry.S
@@ -374,6 +374,11 @@
 	s32i	a2, a1, PT_LCOUNT
 #endif
 
+#if XCHAL_HAVE_EXCLUSIVE
+	/* Clear exclusive access monitor set by interrupted code */
+	clrex
+#endif
+
 	/* It is now save to restore the EXC_TABLE_FIXUP variable. */
 
 	rsr	a2, exccause
@@ -1892,6 +1897,7 @@
 
 	mov	a6, a2
 	call4	do_syscall_trace_enter
+	beqz	a6, .Lsyscall_exit
 	l32i	a7, a2, PT_SYSCALL
 
 1:
@@ -1906,8 +1912,6 @@
 
 	addx4	a4, a7, a4
 	l32i	a4, a4, 0
-	movi	a5, sys_ni_syscall;
-	beq	a4, a5, 1f
 
 	/* Load args: arg0 - arg5 are passed via regs. */
 
@@ -1927,6 +1931,7 @@
 
 	s32i	a6, a2, PT_AREG2
 	bnez	a3, 1f
+.Lsyscall_exit:
 	abi_ret(4)
 
 1:
@@ -2024,6 +2029,12 @@
 	s32i	a3, a4, THREAD_CPENABLE
 #endif
 
+#if XCHAL_HAVE_EXCLUSIVE
+	l32i	a3, a5, THREAD_ATOMCTL8
+	getex	a3
+	s32i	a3, a4, THREAD_ATOMCTL8
+#endif
+
 	/* Flush register file. */
 
 	spill_registers_kernel
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/irq.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/irq.c
@@ -145,7 +145,7 @@
 
 void __init init_IRQ(void)
 {
-#ifdef CONFIG_OF
+#ifdef CONFIG_USE_OF
 	irqchip_init();
 #else
 #ifdef CONFIG_HAVE_SMP
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/jump_label.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/jump_label.c
@@ -40,7 +40,7 @@
 {
 	struct patch *patch = data;
 
-	if (atomic_inc_return(&patch->cpu_count) == 1) {
+	if (atomic_inc_return(&patch->cpu_count) == num_online_cpus()) {
 		local_patch_text(patch->addr, patch->data, patch->sz);
 		atomic_inc(&patch->cpu_count);
 	} else {
@@ -61,7 +61,7 @@
 			.data = data,
 		};
 		stop_machine_cpuslocked(patch_text_stop_machine,
-					&patch, NULL);
+					&patch, cpu_online_mask);
 	} else {
 		unsigned long flags;
 
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/pci-dma.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/pci-dma.c
@@ -44,8 +44,8 @@
 		}
 }
 
-void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_BIDIRECTIONAL:
@@ -62,8 +62,8 @@
 	}
 }
 
-void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir)
+void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
+		enum dma_data_direction dir)
 {
 	switch (dir) {
 	case DMA_BIDIRECTIONAL:
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/perf_event.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/perf_event.c
@@ -13,17 +13,26 @@
 #include <linux/perf_event.h>
 #include <linux/platform_device.h>
 
+#include <asm/core.h>
 #include <asm/processor.h>
 #include <asm/stacktrace.h>
 
+#define XTENSA_HWVERSION_RG_2015_0	260000
+
+#if XCHAL_HW_MIN_VERSION >= XTENSA_HWVERSION_RG_2015_0
+#define XTENSA_PMU_ERI_BASE		0x00101000
+#else
+#define XTENSA_PMU_ERI_BASE		0x00001000
+#endif
+
 /* Global control/status for all perf counters */
-#define XTENSA_PMU_PMG			0x1000
+#define XTENSA_PMU_PMG			XTENSA_PMU_ERI_BASE
 /* Perf counter values */
-#define XTENSA_PMU_PM(i)		(0x1080 + (i) * 4)
+#define XTENSA_PMU_PM(i)		(XTENSA_PMU_ERI_BASE + 0x80 + (i) * 4)
 /* Perf counter control registers */
-#define XTENSA_PMU_PMCTRL(i)		(0x1100 + (i) * 4)
+#define XTENSA_PMU_PMCTRL(i)		(XTENSA_PMU_ERI_BASE + 0x100 + (i) * 4)
 /* Perf counter status registers */
-#define XTENSA_PMU_PMSTAT(i)		(0x1180 + (i) * 4)
+#define XTENSA_PMU_PMSTAT(i)		(XTENSA_PMU_ERI_BASE + 0x180 + (i) * 4)
 
 #define XTENSA_PMU_PMG_PMEN		0x1
 
@@ -401,7 +410,7 @@
 	.read = xtensa_pmu_read,
 };
 
-static int xtensa_pmu_setup(int cpu)
+static int xtensa_pmu_setup(unsigned int cpu)
 {
 	unsigned i;
 
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/process.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/process.c
@@ -202,8 +202,9 @@
  * involved.  Much simpler to just not copy those live frames across.
  */
 
-int copy_thread(unsigned long clone_flags, unsigned long usp_thread_fn,
-		unsigned long thread_fn_arg, struct task_struct *p)
+int copy_thread_tls(unsigned long clone_flags, unsigned long usp_thread_fn,
+		unsigned long thread_fn_arg, struct task_struct *p,
+		unsigned long tls)
 {
 	struct pt_regs *childregs = task_pt_regs(p);
 
@@ -264,9 +265,8 @@
 			       &regs->areg[XCHAL_NUM_AREGS - len/4], len);
 		}
 
-		/* The thread pointer is passed in the '4th argument' (= a5) */
 		if (clone_flags & CLONE_SETTLS)
-			childregs->threadptr = childregs->areg[5];
+			childregs->threadptr = tls;
 	} else {
 		p->thread.ra = MAKE_RA_FOR_CALL(
 				(unsigned long)ret_from_kernel_thread, 1);
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/ptrace.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/ptrace.c
@@ -225,12 +225,12 @@
 
 void user_enable_single_step(struct task_struct *child)
 {
-	child->ptrace |= PT_SINGLESTEP;
+	set_tsk_thread_flag(child, TIF_SINGLESTEP);
 }
 
 void user_disable_single_step(struct task_struct *child)
 {
-	child->ptrace &= ~PT_SINGLESTEP;
+	clear_tsk_thread_flag(child, TIF_SINGLESTEP);
 }
 
 /*
@@ -542,14 +542,28 @@
 	return ret;
 }
 
-void do_syscall_trace_enter(struct pt_regs *regs)
+void do_syscall_trace_leave(struct pt_regs *regs);
+int do_syscall_trace_enter(struct pt_regs *regs)
 {
+	if (regs->syscall == NO_SYSCALL)
+		regs->areg[2] = -ENOSYS;
+
 	if (test_thread_flag(TIF_SYSCALL_TRACE) &&
-	    tracehook_report_syscall_entry(regs))
+	    tracehook_report_syscall_entry(regs)) {
+		regs->areg[2] = -ENOSYS;
 		regs->syscall = NO_SYSCALL;
+		return 0;
+	}
+
+	if (regs->syscall == NO_SYSCALL) {
+		do_syscall_trace_leave(regs);
+		return 0;
+	}
 
 	if (test_thread_flag(TIF_SYSCALL_TRACEPOINT))
 		trace_sys_enter(regs, syscall_get_nr(current, regs));
+
+	return 1;
 }
 
 void do_syscall_trace_leave(struct pt_regs *regs)
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/setup.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/setup.c
@@ -64,7 +64,7 @@
 extern int initrd_below_start_ok;
 #endif
 
-#ifdef CONFIG_OF
+#ifdef CONFIG_USE_OF
 void *dtb_start = __dtb_start;
 #endif
 
@@ -126,7 +126,7 @@
 
 #endif /* CONFIG_BLK_DEV_INITRD */
 
-#ifdef CONFIG_OF
+#ifdef CONFIG_USE_OF
 
 static int __init parse_tag_fdt(const bp_tag_t *tag)
 {
@@ -136,7 +136,7 @@
 
 __tagtable(BP_TAG_FDT, parse_tag_fdt);
 
-#endif /* CONFIG_OF */
+#endif /* CONFIG_USE_OF */
 
 static int __init parse_tag_cmdline(const bp_tag_t* tag)
 {
@@ -184,7 +184,7 @@
 }
 #endif
 
-#ifdef CONFIG_OF
+#ifdef CONFIG_USE_OF
 
 #if !XCHAL_HAVE_PTP_MMU || XCHAL_HAVE_SPANNING_WAY
 unsigned long xtensa_kio_paddr = XCHAL_KIO_DEFAULT_PADDR;
@@ -233,7 +233,7 @@
 		strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
 }
 
-#endif /* CONFIG_OF */
+#endif /* CONFIG_USE_OF */
 
 /*
  * Initialize architecture. (Early stage)
@@ -254,7 +254,7 @@
 	if (bp_start)
 		parse_bootparam(bp_start);
 
-#ifdef CONFIG_OF
+#ifdef CONFIG_USE_OF
 	early_init_devtree(dtb_start);
 #endif
 
@@ -716,7 +716,8 @@
 static void *
 c_next(struct seq_file *f, void *v, loff_t *pos)
 {
-	return NULL;
+	++*pos;
+	return c_start(f, pos);
 }
 
 static void
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/signal.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/signal.c
@@ -465,7 +465,7 @@
 		/* Set up the stack frame */
 		ret = setup_frame(&ksig, sigmask_to_save(), regs);
 		signal_setup_done(ret, &ksig, 0);
-		if (current->ptrace & PT_SINGLESTEP)
+		if (test_thread_flag(TIF_SINGLESTEP))
 			task_pt_regs(current)->icountlevel = 1;
 
 		return;
@@ -491,7 +491,7 @@
 	/* If there's no signal to deliver, we just restore the saved mask.  */
 	restore_saved_sigmask();
 
-	if (current->ptrace & PT_SINGLESTEP)
+	if (test_thread_flag(TIF_SINGLESTEP))
 		task_pt_regs(current)->icountlevel = 1;
 	return;
 }
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/time.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/time.c
@@ -160,6 +160,7 @@
 	cpu = of_find_compatible_node(NULL, NULL, "cdns,xtensa-cpu");
 	if (cpu) {
 		clk = of_clk_get(cpu, 0);
+		of_node_put(cpu);
 		if (!IS_ERR(clk)) {
 			ccount_freq = clk_get_rate(clk);
 			return;
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/traps.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/traps.c
@@ -543,5 +543,5 @@
 	if (panic_on_oops)
 		panic("Fatal exception");
 
-	do_exit(err);
+	make_task_dead(err);
 }
--- linux-ein-5.4.0.orig/arch/xtensa/kernel/xtensa_ksyms.c
+++ linux-ein-5.4.0/arch/xtensa/kernel/xtensa_ksyms.c
@@ -87,13 +87,13 @@
 }
 EXPORT_SYMBOL(__xtensa_libgcc_window_spill);
 
-unsigned long __sync_fetch_and_and_4(unsigned long *p, unsigned long v)
+unsigned int __sync_fetch_and_and_4(volatile void *p, unsigned int v)
 {
 	BUG();
 }
 EXPORT_SYMBOL(__sync_fetch_and_and_4);
 
-unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v)
+unsigned int __sync_fetch_and_or_4(volatile void *p, unsigned int v)
 {
 	BUG();
 }
--- linux-ein-5.4.0.orig/arch/xtensa/mm/cache.c
+++ linux-ein-5.4.0/arch/xtensa/mm/cache.c
@@ -71,8 +71,10 @@
 			kvaddr = TLBTEMP_BASE_1 +
 				(page_to_phys(page) & DCACHE_ALIAS_MASK);
 
+			preempt_disable();
 			__invalidate_dcache_page_alias(kvaddr,
 						       page_to_phys(page));
+			preempt_enable();
 		}
 	}
 }
@@ -157,6 +159,7 @@
 		if (!alias && !mapping)
 			return;
 
+		preempt_disable();
 		virt = TLBTEMP_BASE_1 + (phys & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(virt, phys);
 
@@ -167,6 +170,7 @@
 
 		if (mapping)
 			__invalidate_icache_page_alias(virt, phys);
+		preempt_enable();
 	}
 
 	/* There shouldn't be an entry in the cache for this page anymore. */
@@ -200,8 +204,10 @@
 	unsigned long phys = page_to_phys(pfn_to_page(pfn));
 	unsigned long virt = TLBTEMP_BASE_1 + (address & DCACHE_ALIAS_MASK);
 
+	preempt_disable();
 	__flush_invalidate_dcache_page_alias(virt, phys);
 	__invalidate_icache_page_alias(virt, phys);
+	preempt_enable();
 }
 EXPORT_SYMBOL(local_flush_cache_page);
 
@@ -228,11 +234,13 @@
 		unsigned long phys = page_to_phys(page);
 		unsigned long tmp;
 
+		preempt_disable();
 		tmp = TLBTEMP_BASE_1 + (phys & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(tmp, phys);
 		tmp = TLBTEMP_BASE_1 + (addr & DCACHE_ALIAS_MASK);
 		__flush_invalidate_dcache_page_alias(tmp, phys);
 		__invalidate_icache_page_alias(tmp, phys);
+		preempt_enable();
 
 		clear_bit(PG_arch_1, &page->flags);
 	}
@@ -266,7 +274,9 @@
 
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
+		preempt_disable();
 		__flush_invalidate_dcache_page_alias(t, phys);
+		preempt_enable();
 	}
 
 	/* Copy data */
@@ -281,9 +291,11 @@
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
 
+		preempt_disable();
 		__flush_invalidate_dcache_range((unsigned long) dst, len);
 		if ((vma->vm_flags & VM_EXEC) != 0)
 			__invalidate_icache_page_alias(t, phys);
+		preempt_enable();
 
 	} else if ((vma->vm_flags & VM_EXEC) != 0) {
 		__flush_dcache_range((unsigned long)dst,len);
@@ -305,7 +317,9 @@
 
 	if (alias) {
 		unsigned long t = TLBTEMP_BASE_1 + (vaddr & DCACHE_ALIAS_MASK);
+		preempt_disable();
 		__flush_invalidate_dcache_page_alias(t, phys);
+		preempt_enable();
 	}
 
 	memcpy(dst, src, len);
--- linux-ein-5.4.0.orig/arch/xtensa/mm/kasan_init.c
+++ linux-ein-5.4.0/arch/xtensa/mm/kasan_init.c
@@ -56,7 +56,9 @@
 
 		for (k = 0; k < PTRS_PER_PTE; ++k, ++j) {
 			phys_addr_t phys =
-				memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE);
+				memblock_phys_alloc_range(PAGE_SIZE, PAGE_SIZE,
+							  0,
+							  MEMBLOCK_ALLOC_ANYWHERE);
 
 			if (!phys)
 				panic("Failed to allocate page table page\n");
--- linux-ein-5.4.0.orig/arch/xtensa/mm/mmu.c
+++ linux-ein-5.4.0/arch/xtensa/mm/mmu.c
@@ -101,7 +101,7 @@
 
 void init_kio(void)
 {
-#if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY && defined(CONFIG_OF)
+#if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY && defined(CONFIG_USE_OF)
 	/*
 	 * Update the IO area mapping in case xtensa_kio_paddr has changed
 	 */
--- linux-ein-5.4.0.orig/arch/xtensa/mm/tlb.c
+++ linux-ein-5.4.0/arch/xtensa/mm/tlb.c
@@ -216,6 +216,8 @@
 	unsigned tlbidx = w | (e << PAGE_SHIFT);
 	unsigned r0 = dtlb ?
 		read_dtlb_virtual(tlbidx) : read_itlb_virtual(tlbidx);
+	unsigned r1 = dtlb ?
+		read_dtlb_translation(tlbidx) : read_itlb_translation(tlbidx);
 	unsigned vpn = (r0 & PAGE_MASK) | (e << PAGE_SHIFT);
 	unsigned pte = get_pte_for_vaddr(vpn);
 	unsigned mm_asid = (get_rasid_register() >> 8) & ASID_MASK;
@@ -231,8 +233,6 @@
 	}
 
 	if (tlb_asid == mm_asid) {
-		unsigned r1 = dtlb ? read_dtlb_translation(tlbidx) :
-			read_itlb_translation(tlbidx);
 		if ((pte ^ r1) & PAGE_MASK) {
 			pr_err("%cTLB: way: %u, entry: %u, mapping: %08x->%08x, PTE: %08x\n",
 					dtlb ? 'D' : 'I', w, e, r0, r1, pte);
--- linux-ein-5.4.0.orig/arch/xtensa/platforms/iss/console.c
+++ linux-ein-5.4.0/arch/xtensa/platforms/iss/console.c
@@ -168,9 +168,13 @@
 
 int __init rs_init(void)
 {
-	tty_port_init(&serial_port);
+	int ret;
 
 	serial_driver = alloc_tty_driver(SERIAL_MAX_NUM_LINES);
+	if (!serial_driver)
+		return -ENOMEM;
+
+	tty_port_init(&serial_port);
 
 	pr_info("%s %s\n", serial_name, serial_version);
 
@@ -190,8 +194,15 @@
 	tty_set_operations(serial_driver, &serial_ops);
 	tty_port_link_device(&serial_port, serial_driver, 0);
 
-	if (tty_register_driver(serial_driver))
-		panic("Couldn't register serial driver\n");
+	ret = tty_register_driver(serial_driver);
+	if (ret) {
+		pr_err("Couldn't register serial driver\n");
+		tty_driver_kref_put(serial_driver);
+		tty_port_destroy(&serial_port);
+
+		return ret;
+	}
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/arch/xtensa/platforms/iss/network.c
+++ linux-ein-5.4.0/arch/xtensa/platforms/iss/network.c
@@ -204,7 +204,7 @@
 	return simc_write(lp->tp.info.tuntap.fd, (*skb)->data, (*skb)->len);
 }
 
-unsigned short tuntap_protocol(struct sk_buff *skb)
+static unsigned short tuntap_protocol(struct sk_buff *skb)
 {
 	return eth_type_trans(skb, skb->dev);
 }
@@ -231,7 +231,7 @@
 
 	init += sizeof(TRANSPORT_TUNTAP_NAME) - 1;
 	if (*init == ',') {
-		rem = split_if_spec(init + 1, &mac_str, &dev_name);
+		rem = split_if_spec(init + 1, &mac_str, &dev_name, NULL);
 		if (rem != NULL) {
 			pr_err("%s: extra garbage on specification : '%s'\n",
 			       dev->name, rem);
@@ -477,7 +477,7 @@
 	return -EINVAL;
 }
 
-void iss_net_user_timer_expire(struct timer_list *unused)
+static void iss_net_user_timer_expire(struct timer_list *unused)
 {
 }
 
--- linux-ein-5.4.0.orig/arch/xtensa/platforms/xtfpga/setup.c
+++ linux-ein-5.4.0/arch/xtensa/platforms/xtfpga/setup.c
@@ -50,8 +50,12 @@
 
 void platform_restart(void)
 {
-	/* Flush and reset the mmu, simulate a processor reset, and
-	 * jump to the reset vector. */
+	/* Try software reset first. */
+	WRITE_ONCE(*(u32 *)XTFPGA_SWRST_VADDR, 0xdead);
+
+	/* If software reset did not work, flush and reset the mmu,
+	 * simulate a processor reset, and jump to the reset vector.
+	 */
 	cpu_reset();
 	/* control never gets here */
 }
@@ -81,7 +85,7 @@
 
 #endif
 
-#ifdef CONFIG_OF
+#ifdef CONFIG_USE_OF
 
 static void __init xtfpga_clk_setup(struct device_node *np)
 {
@@ -144,6 +148,7 @@
 
 	if ((eth = of_find_compatible_node(eth, NULL, "opencores,ethoc")))
 		update_local_mac(eth);
+	of_node_put(eth);
 	return 0;
 }
 arch_initcall(machine_setup);
@@ -299,4 +304,4 @@
  */
 arch_initcall(xtavnet_init);
 
-#endif /* CONFIG_OF */
+#endif /* CONFIG_USE_OF */
--- linux-ein-5.4.0.orig/block/bfq-cgroup.c
+++ linux-ein-5.4.0/block/bfq-cgroup.c
@@ -536,6 +536,7 @@
 				   */
 	bfqg->bfqd = bfqd;
 	bfqg->active_entities = 0;
+	bfqg->online = true;
 	bfqg->rq_pos_tree = RB_ROOT;
 }
 
@@ -564,28 +565,11 @@
 	entity->sched_data = &parent->sched_data;
 }
 
-static struct bfq_group *bfq_lookup_bfqg(struct bfq_data *bfqd,
-					 struct blkcg *blkcg)
+static void bfq_link_bfqg(struct bfq_data *bfqd, struct bfq_group *bfqg)
 {
-	struct blkcg_gq *blkg;
-
-	blkg = blkg_lookup(blkcg, bfqd->queue);
-	if (likely(blkg))
-		return blkg_to_bfqg(blkg);
-	return NULL;
-}
-
-struct bfq_group *bfq_find_set_group(struct bfq_data *bfqd,
-				     struct blkcg *blkcg)
-{
-	struct bfq_group *bfqg, *parent;
+	struct bfq_group *parent;
 	struct bfq_entity *entity;
 
-	bfqg = bfq_lookup_bfqg(bfqd, blkcg);
-
-	if (unlikely(!bfqg))
-		return NULL;
-
 	/*
 	 * Update chain of bfq_groups as we might be handling a leaf group
 	 * which, along with some of its relatives, has not been hooked yet
@@ -593,16 +577,37 @@
 	 */
 	entity = &bfqg->entity;
 	for_each_entity(entity) {
-		bfqg = container_of(entity, struct bfq_group, entity);
-		if (bfqg != bfqd->root_group) {
-			parent = bfqg_parent(bfqg);
+		struct bfq_group *curr_bfqg = container_of(entity,
+						struct bfq_group, entity);
+		if (curr_bfqg != bfqd->root_group) {
+			parent = bfqg_parent(curr_bfqg);
 			if (!parent)
 				parent = bfqd->root_group;
-			bfq_group_set_parent(bfqg, parent);
+			bfq_group_set_parent(curr_bfqg, parent);
 		}
 	}
+}
 
-	return bfqg;
+struct bfq_group *bfq_bio_bfqg(struct bfq_data *bfqd, struct bio *bio)
+{
+	struct blkcg_gq *blkg = bio->bi_blkg;
+	struct bfq_group *bfqg;
+
+	while (blkg) {
+		if (!blkg->online) {
+			blkg = blkg->parent;
+			continue;
+		}
+		bfqg = blkg_to_bfqg(blkg);
+		if (bfqg->online) {
+			bio_associate_blkg_from_css(bio, &blkg->blkcg->css);
+			return bfqg;
+		}
+		blkg = blkg->parent;
+	}
+	bio_associate_blkg_from_css(bio,
+				&bfqg_to_blkg(bfqd->root_group)->blkcg->css);
+	return bfqd->root_group;
 }
 
 /**
@@ -624,6 +629,18 @@
 {
 	struct bfq_entity *entity = &bfqq->entity;
 
+	/*
+	 * oom_bfqq is not allowed to move, oom_bfqq will hold ref to root_group
+	 * until elevator exit.
+	 */
+	if (bfqq == &bfqd->oom_bfqq)
+		return;
+	/*
+	 * Get extra reference to prevent bfqq from being freed in
+	 * next possible expire or deactivate.
+	 */
+	bfqq->ref++;
+
 	/* If bfqq is empty, then bfq_bfqq_expire also invokes
 	 * bfq_del_bfqq_busy, thereby removing bfqq and its entity
 	 * from data structures related to current group. Otherwise we
@@ -653,6 +670,8 @@
 
 	if (!bfqd->in_service_queue && !bfqd->rq_in_driver)
 		bfq_schedule_dispatch(bfqd);
+	/* release extra ref taken above, bfqq may happen to be freed now */
+	bfq_put_queue(bfqq);
 }
 
 /**
@@ -664,41 +683,58 @@
  * Move bic to blkcg, assuming that bfqd->lock is held; which makes
  * sure that the reference to cgroup is valid across the call (see
  * comments in bfq_bic_update_cgroup on this issue)
- *
- * NOTE: an alternative approach might have been to store the current
- * cgroup in bfqq and getting a reference to it, reducing the lookup
- * time here, at the price of slightly more complex code.
  */
-static struct bfq_group *__bfq_bic_change_cgroup(struct bfq_data *bfqd,
-						struct bfq_io_cq *bic,
-						struct blkcg *blkcg)
+static void *__bfq_bic_change_cgroup(struct bfq_data *bfqd,
+				     struct bfq_io_cq *bic,
+				     struct bfq_group *bfqg)
 {
 	struct bfq_queue *async_bfqq = bic_to_bfqq(bic, 0);
 	struct bfq_queue *sync_bfqq = bic_to_bfqq(bic, 1);
-	struct bfq_group *bfqg;
 	struct bfq_entity *entity;
 
-	bfqg = bfq_find_set_group(bfqd, blkcg);
-
-	if (unlikely(!bfqg))
-		bfqg = bfqd->root_group;
-
 	if (async_bfqq) {
 		entity = &async_bfqq->entity;
 
 		if (entity->sched_data != &bfqg->sched_data) {
 			bic_set_bfqq(bic, NULL, 0);
-			bfq_log_bfqq(bfqd, async_bfqq,
-				     "bic_change_group: %p %d",
-				     async_bfqq, async_bfqq->ref);
-			bfq_put_queue(async_bfqq);
+			bfq_release_process_ref(bfqd, async_bfqq);
 		}
 	}
 
 	if (sync_bfqq) {
-		entity = &sync_bfqq->entity;
-		if (entity->sched_data != &bfqg->sched_data)
-			bfq_bfqq_move(bfqd, sync_bfqq, bfqg);
+		if (!sync_bfqq->new_bfqq && !bfq_bfqq_coop(sync_bfqq)) {
+			/* We are the only user of this bfqq, just move it */
+			if (sync_bfqq->entity.sched_data != &bfqg->sched_data)
+				bfq_bfqq_move(bfqd, sync_bfqq, bfqg);
+		} else {
+			struct bfq_queue *bfqq;
+
+			/*
+			 * The queue was merged to a different queue. Check
+			 * that the merge chain still belongs to the same
+			 * cgroup.
+			 */
+			for (bfqq = sync_bfqq; bfqq; bfqq = bfqq->new_bfqq)
+				if (bfqq->entity.sched_data !=
+				    &bfqg->sched_data)
+					break;
+			if (bfqq) {
+				/*
+				 * Some queue changed cgroup so the merge is
+				 * not valid anymore. We cannot easily just
+				 * cancel the merge (by clearing new_bfqq) as
+				 * there may be other processes using this
+				 * queue and holding refs to all queues below
+				 * sync_bfqq->new_bfqq. Similarly if the merge
+				 * already happened, we need to detach from
+				 * bfqq now so that we cannot merge bio to a
+				 * request from the old cgroup.
+				 */
+				bfq_put_cooperator(sync_bfqq);
+				bfq_release_process_ref(bfqd, sync_bfqq);
+				bic_set_bfqq(bic, NULL, 1);
+			}
+		}
 	}
 
 	return bfqg;
@@ -707,20 +743,24 @@
 void bfq_bic_update_cgroup(struct bfq_io_cq *bic, struct bio *bio)
 {
 	struct bfq_data *bfqd = bic_to_bfqd(bic);
-	struct bfq_group *bfqg = NULL;
+	struct bfq_group *bfqg = bfq_bio_bfqg(bfqd, bio);
 	uint64_t serial_nr;
 
-	rcu_read_lock();
-	serial_nr = __bio_blkcg(bio)->css.serial_nr;
+	serial_nr = bfqg_to_blkg(bfqg)->blkcg->css.serial_nr;
 
 	/*
 	 * Check whether blkcg has changed.  The condition may trigger
 	 * spuriously on a newly created cic but there's no harm.
 	 */
 	if (unlikely(!bfqd) || likely(bic->blkcg_serial_nr == serial_nr))
-		goto out;
+		return;
 
-	bfqg = __bfq_bic_change_cgroup(bfqd, bic, __bio_blkcg(bio));
+	/*
+	 * New cgroup for this process. Make sure it is linked to bfq internal
+	 * cgroup hierarchy.
+	 */
+	bfq_link_bfqg(bfqd, bfqg);
+	__bfq_bic_change_cgroup(bfqd, bic, bfqg);
 	/*
 	 * Update blkg_path for bfq_log_* functions. We cache this
 	 * path, and update it here, for the following
@@ -773,8 +813,6 @@
 	 */
 	blkg_path(bfqg_to_blkg(bfqg), bfqg->blkg_path, sizeof(bfqg->blkg_path));
 	bic->blkcg_serial_nr = serial_nr;
-out:
-	rcu_read_unlock();
 }
 
 /**
@@ -792,39 +830,53 @@
 /**
  * bfq_reparent_leaf_entity - move leaf entity to the root_group.
  * @bfqd: the device data structure with the root group.
- * @entity: the entity to move.
+ * @entity: the entity to move, if entity is a leaf; or the parent entity
+ *	    of an active leaf entity to move, if entity is not a leaf.
  */
 static void bfq_reparent_leaf_entity(struct bfq_data *bfqd,
-				     struct bfq_entity *entity)
+				     struct bfq_entity *entity,
+				     int ioprio_class)
 {
-	struct bfq_queue *bfqq = bfq_entity_to_bfqq(entity);
+	struct bfq_queue *bfqq;
+	struct bfq_entity *child_entity = entity;
+
+	while (child_entity->my_sched_data) { /* leaf not reached yet */
+		struct bfq_sched_data *child_sd = child_entity->my_sched_data;
+		struct bfq_service_tree *child_st = child_sd->service_tree +
+			ioprio_class;
+		struct rb_root *child_active = &child_st->active;
+
+		child_entity = bfq_entity_of(rb_first(child_active));
+
+		if (!child_entity)
+			child_entity = child_sd->in_service_entity;
+	}
 
+	bfqq = bfq_entity_to_bfqq(child_entity);
 	bfq_bfqq_move(bfqd, bfqq, bfqd->root_group);
 }
 
 /**
- * bfq_reparent_active_entities - move to the root group all active
- *                                entities.
+ * bfq_reparent_active_queues - move to the root group all active queues.
  * @bfqd: the device data structure with the root group.
  * @bfqg: the group to move from.
- * @st: the service tree with the entities.
+ * @st: the service tree to start the search from.
  */
-static void bfq_reparent_active_entities(struct bfq_data *bfqd,
-					 struct bfq_group *bfqg,
-					 struct bfq_service_tree *st)
+static void bfq_reparent_active_queues(struct bfq_data *bfqd,
+				       struct bfq_group *bfqg,
+				       struct bfq_service_tree *st,
+				       int ioprio_class)
 {
 	struct rb_root *active = &st->active;
-	struct bfq_entity *entity = NULL;
-
-	if (!RB_EMPTY_ROOT(&st->active))
-		entity = bfq_entity_of(rb_first(active));
+	struct bfq_entity *entity;
 
-	for (; entity ; entity = bfq_entity_of(rb_first(active)))
-		bfq_reparent_leaf_entity(bfqd, entity);
+	while ((entity = bfq_entity_of(rb_first(active))))
+		bfq_reparent_leaf_entity(bfqd, entity, ioprio_class);
 
 	if (bfqg->sched_data.in_service_entity)
 		bfq_reparent_leaf_entity(bfqd,
-			bfqg->sched_data.in_service_entity);
+					 bfqg->sched_data.in_service_entity,
+					 ioprio_class);
 }
 
 /**
@@ -857,13 +909,6 @@
 		st = bfqg->sched_data.service_tree + i;
 
 		/*
-		 * The idle tree may still contain bfq_queues belonging
-		 * to exited task because they never migrated to a different
-		 * cgroup from the one being destroyed now.
-		 */
-		bfq_flush_idle_tree(st);
-
-		/*
 		 * It may happen that some queues are still active
 		 * (busy) upon group destruction (if the corresponding
 		 * processes have been forced to terminate). We move
@@ -875,13 +920,27 @@
 		 * There is no need to put the sync queues, as the
 		 * scheduler has taken no reference.
 		 */
-		bfq_reparent_active_entities(bfqd, bfqg, st);
+		bfq_reparent_active_queues(bfqd, bfqg, st, i);
+
+		/*
+		 * The idle tree may still contain bfq_queues
+		 * belonging to exited task because they never
+		 * migrated to a different cgroup from the one being
+		 * destroyed now. In addition, even
+		 * bfq_reparent_active_queues() may happen to add some
+		 * entities to the idle tree. It happens if, in some
+		 * of the calls to bfq_bfqq_move() performed by
+		 * bfq_reparent_active_queues(), the queue to move is
+		 * empty and gets expired.
+		 */
+		bfq_flush_idle_tree(st);
 	}
 
 	__bfq_deactivate_entity(entity, false);
 
 put_async_queues:
 	bfq_put_async_queues(bfqd, bfqg);
+	bfqg->online = false;
 
 	spin_unlock_irqrestore(&bfqd->lock, flags);
 	/*
@@ -1370,7 +1429,7 @@
 	bfq_end_wr_async_queues(bfqd, bfqd->root_group);
 }
 
-struct bfq_group *bfq_find_set_group(struct bfq_data *bfqd, struct blkcg *blkcg)
+struct bfq_group *bfq_bio_bfqg(struct bfq_data *bfqd, struct bio *bio)
 {
 	return bfqd->root_group;
 }
@@ -1380,6 +1439,10 @@
 	return bfqq->bfqd->root_group;
 }
 
+void bfqg_and_blkg_get(struct bfq_group *bfqg) {}
+
+void bfqg_and_blkg_put(struct bfq_group *bfqg) {}
+
 struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node)
 {
 	struct bfq_group *bfqg;
--- linux-ein-5.4.0.orig/block/bfq-iosched.c
+++ linux-ein-5.4.0/block/bfq-iosched.c
@@ -420,6 +420,8 @@
  */
 void bfq_schedule_dispatch(struct bfq_data *bfqd)
 {
+	lockdep_assert_held(&bfqd->lock);
+
 	if (bfqd->queued != 0) {
 		bfq_log(bfqd, "schedule dispatch");
 		blk_mq_run_hw_queues(bfqd->queue, true);
@@ -614,6 +616,10 @@
 		bfqq->pos_root = NULL;
 	}
 
+	/* oom_bfqq does not participate in queue merging */
+	if (bfqq == &bfqd->oom_bfqq)
+		return;
+
 	/*
 	 * bfqq cannot be merged any longer (see comments in
 	 * bfq_setup_cooperator): no point in adding bfqq into the
@@ -2206,10 +2212,9 @@
 
 }
 
-static bool bfq_bio_merge(struct blk_mq_hw_ctx *hctx, struct bio *bio,
+static bool bfq_bio_merge(struct request_queue *q, struct bio *bio,
 		unsigned int nr_segs)
 {
-	struct request_queue *q = hctx->queue;
 	struct bfq_data *bfqd = q->elevator->elevator_data;
 	struct request *free = NULL;
 	/*
@@ -2224,10 +2229,17 @@
 
 	spin_lock_irq(&bfqd->lock);
 
-	if (bic)
+	if (bic) {
+		/*
+		 * Make sure cgroup info is uptodate for current process before
+		 * considering the merge.
+		 */
+		bfq_bic_update_cgroup(bic, bio);
+
 		bfqd->bio_bfqq = bic_to_bfqq(bic, op_is_sync(bio->bi_opf));
-	else
+	} else {
 		bfqd->bio_bfqq = NULL;
+	}
 	bfqd->bio_bic = bic;
 
 	ret = blk_mq_sched_try_merge(q, bio, nr_segs, &free);
@@ -2248,14 +2260,15 @@
 	__rq = bfq_find_rq_fmerge(bfqd, bio, q);
 	if (__rq && elv_bio_merge_ok(__rq, bio)) {
 		*req = __rq;
+
+		if (blk_discard_mergable(__rq))
+			return ELEVATOR_DISCARD_MERGE;
 		return ELEVATOR_FRONT_MERGE;
 	}
 
 	return ELEVATOR_NO_MERGE;
 }
 
-static struct bfq_queue *bfq_init_rq(struct request *rq);
-
 static void bfq_request_merged(struct request_queue *q, struct request *req,
 			       enum elv_merge type)
 {
@@ -2264,7 +2277,7 @@
 	    blk_rq_pos(req) <
 	    blk_rq_pos(container_of(rb_prev(&req->rb_node),
 				    struct request, rb_node))) {
-		struct bfq_queue *bfqq = bfq_init_rq(req);
+		struct bfq_queue *bfqq = RQ_BFQQ(req);
 		struct bfq_data *bfqd;
 		struct request *prev, *next_rq;
 
@@ -2316,8 +2329,8 @@
 static void bfq_requests_merged(struct request_queue *q, struct request *rq,
 				struct request *next)
 {
-	struct bfq_queue *bfqq = bfq_init_rq(rq),
-		*next_bfqq = bfq_init_rq(next);
+	struct bfq_queue *bfqq = RQ_BFQQ(rq),
+		*next_bfqq = RQ_BFQQ(next);
 
 	if (!bfqq)
 		return;
@@ -2496,6 +2509,14 @@
 	if (process_refs == 0 || new_process_refs == 0)
 		return NULL;
 
+	/*
+	 * Make sure merged queues belong to the same parent. Parents could
+	 * have changed since the time we decided the two queues are suitable
+	 * for merging.
+	 */
+	if (new_bfqq->entity.parent != bfqq->entity.parent)
+		return NULL;
+
 	bfq_log_bfqq(bfqq->bfqd, bfqq, "scheduling merge with queue %d",
 		new_bfqq->pid);
 
@@ -2520,6 +2541,15 @@
 	 * are likely to increase the throughput.
 	 */
 	bfqq->new_bfqq = new_bfqq;
+	/*
+	 * The above assignment schedules the following redirections:
+	 * each time some I/O for bfqq arrives, the process that
+	 * generated that I/O is disassociated from bfqq and
+	 * associated with new_bfqq. Here we increases new_bfqq->ref
+	 * in advance, adding the number of processes that are
+	 * expected to be associated with new_bfqq as they happen to
+	 * issue I/O.
+	 */
 	new_bfqq->ref += process_refs;
 	return new_bfqq;
 }
@@ -2579,6 +2609,10 @@
 {
 	struct bfq_queue *in_service_bfqq, *new_bfqq;
 
+	/* if a merge has already been setup, then proceed with that first */
+	if (bfqq->new_bfqq)
+		return bfqq->new_bfqq;
+
 	/*
 	 * Do not perform queue merging if the device is non
 	 * rotational and performs internal queueing. In fact, such a
@@ -2633,9 +2667,6 @@
 	if (bfq_too_late_for_merging(bfqq))
 		return NULL;
 
-	if (bfqq->new_bfqq)
-		return bfqq->new_bfqq;
-
 	if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq))
 		return NULL;
 
@@ -2713,8 +2744,6 @@
 	}
 }
 
-
-static
 void bfq_release_process_ref(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 {
 	/*
@@ -2935,6 +2964,7 @@
 	}
 
 	bfqd->in_service_queue = bfqq;
+	bfqd->in_serv_last_pos = 0;
 }
 
 /*
@@ -3444,6 +3474,10 @@
 static bool idling_needed_for_service_guarantees(struct bfq_data *bfqd,
 						 struct bfq_queue *bfqq)
 {
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	return (bfqq->wr_coeff > 1 &&
 		(bfqd->wr_busy_queues <
 		 bfq_tot_busy_queues(bfqd) ||
@@ -4077,6 +4111,10 @@
 		bfqq_sequential_and_IO_bound,
 		idling_boosts_thr;
 
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	bfqq_sequential_and_IO_bound = !BFQQ_SEEKY(bfqq) &&
 		bfq_bfqq_IO_bound(bfqq) && bfq_bfqq_has_short_ttime(bfqq);
 
@@ -4170,6 +4208,10 @@
 	struct bfq_data *bfqd = bfqq->bfqd;
 	bool idling_boosts_thr_with_no_issue, idling_needed_for_service_guar;
 
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	if (unlikely(bfqd->strict_guarantees))
 		return true;
 
@@ -4779,7 +4821,7 @@
 	struct bfq_data *bfqd = hctx->queue->elevator->elevator_data;
 	struct request *rq;
 	struct bfq_queue *in_serv_queue;
-	bool waiting_rq, idle_timer_disabled;
+	bool waiting_rq, idle_timer_disabled = false;
 
 	spin_lock_irq(&bfqd->lock);
 
@@ -4787,14 +4829,15 @@
 	waiting_rq = in_serv_queue && bfq_bfqq_wait_request(in_serv_queue);
 
 	rq = __bfq_dispatch_request(hctx);
-
-	idle_timer_disabled =
-		waiting_rq && !bfq_bfqq_wait_request(in_serv_queue);
+	if (in_serv_queue == bfqd->in_service_queue) {
+		idle_timer_disabled =
+			waiting_rq && !bfq_bfqq_wait_request(in_serv_queue);
+	}
 
 	spin_unlock_irq(&bfqd->lock);
-
-	bfq_update_dispatch_stats(hctx->queue, rq, in_serv_queue,
-				  idle_timer_disabled);
+	bfq_update_dispatch_stats(hctx->queue, rq,
+			idle_timer_disabled ? in_serv_queue : NULL,
+				idle_timer_disabled);
 
 	return rq;
 }
@@ -4810,9 +4853,7 @@
 {
 	struct bfq_queue *item;
 	struct hlist_node *n;
-#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	struct bfq_group *bfqg = bfqq_group(bfqq);
-#endif
 
 	if (bfqq->bfqd)
 		bfq_log_bfqq(bfqq->bfqd, bfqq, "put_queue: %p %d",
@@ -4885,12 +4926,10 @@
 		bfqq->bfqd->last_completed_rq_bfqq = NULL;
 
 	kmem_cache_free(bfq_pool, bfqq);
-#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	bfqg_and_blkg_put(bfqg);
-#endif
 }
 
-static void bfq_put_cooperator(struct bfq_queue *bfqq)
+void bfq_put_cooperator(struct bfq_queue *bfqq)
 {
 	struct bfq_queue *__bfqq, *next;
 
@@ -4994,7 +5033,7 @@
 	if (bfqq->new_ioprio >= IOPRIO_BE_NR) {
 		pr_crit("bfq_set_next_ioprio_data: new_ioprio %d\n",
 			bfqq->new_ioprio);
-		bfqq->new_ioprio = IOPRIO_BE_NR;
+		bfqq->new_ioprio = IOPRIO_BE_NR - 1;
 	}
 
 	bfqq->entity.new_weight = bfq_ioprio_to_weight(bfqq->new_ioprio);
@@ -5121,14 +5160,7 @@
 	struct bfq_queue *bfqq;
 	struct bfq_group *bfqg;
 
-	rcu_read_lock();
-
-	bfqg = bfq_find_set_group(bfqd, __bio_blkcg(bio));
-	if (!bfqg) {
-		bfqq = &bfqd->oom_bfqq;
-		goto out;
-	}
-
+	bfqg = bfq_bio_bfqg(bfqd, bio);
 	if (!is_sync) {
 		async_bfqq = bfq_async_queue_prio(bfqd, bfqg, ioprio_class,
 						  ioprio);
@@ -5172,7 +5204,6 @@
 out:
 	bfqq->ref++; /* get a process reference to this queue */
 	bfq_log_bfqq(bfqd, bfqq, "get_queue, at end: %p, %d", bfqq, bfqq->ref);
-	rcu_read_unlock();
 	return bfqq;
 }
 
@@ -5475,6 +5506,8 @@
 					   unsigned int cmd_flags) {}
 #endif /* CONFIG_BFQ_CGROUP_DEBUG */
 
+static struct bfq_queue *bfq_init_rq(struct request *rq);
+
 static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
 			       bool at_head)
 {
@@ -5485,17 +5518,14 @@
 	unsigned int cmd_flags;
 
 	spin_lock_irq(&bfqd->lock);
+	bfqq = bfq_init_rq(rq);
 	if (blk_mq_sched_try_insert_merge(q, rq)) {
 		spin_unlock_irq(&bfqd->lock);
 		return;
 	}
 
-	spin_unlock_irq(&bfqd->lock);
-
 	blk_mq_sched_request_inserted(rq);
 
-	spin_lock_irq(&bfqd->lock);
-	bfqq = bfq_init_rq(rq);
 	if (!bfqq || at_head || blk_rq_is_passthrough(rq)) {
 		if (at_head)
 			list_add(&rq->queuelist, &bfqd->dispatch);
@@ -5881,18 +5911,6 @@
 	struct bfq_data *bfqd;
 
 	/*
-	 * Requeue and finish hooks are invoked in blk-mq without
-	 * checking whether the involved request is actually still
-	 * referenced in the scheduler. To handle this fact, the
-	 * following two checks make this function exit in case of
-	 * spurious invocations, for which there is nothing to do.
-	 *
-	 * First, check whether rq has nothing to do with an elevator.
-	 */
-	if (unlikely(!(rq->rq_flags & RQF_ELVPRIV)))
-		return;
-
-	/*
 	 * rq either is not associated with any icq, or is an already
 	 * requeued request that has not (yet) been re-inserted into
 	 * a bfq_queue.
@@ -6198,20 +6216,28 @@
 	return bfqq;
 }
 
-static void bfq_idle_slice_timer_body(struct bfq_queue *bfqq)
+static void
+bfq_idle_slice_timer_body(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 {
-	struct bfq_data *bfqd = bfqq->bfqd;
 	enum bfqq_expiration reason;
 	unsigned long flags;
 
 	spin_lock_irqsave(&bfqd->lock, flags);
-	bfq_clear_bfqq_wait_request(bfqq);
 
+	/*
+	 * Considering that bfqq may be in race, we should firstly check
+	 * whether bfqq is in service before doing something on it. If
+	 * the bfqq in race is not in service, it has already been expired
+	 * through __bfq_bfqq_expire func and its wait_request flags has
+	 * been cleared in __bfq_bfqd_reset_in_service func.
+	 */
 	if (bfqq != bfqd->in_service_queue) {
 		spin_unlock_irqrestore(&bfqd->lock, flags);
 		return;
 	}
 
+	bfq_clear_bfqq_wait_request(bfqq);
+
 	if (bfq_bfqq_budget_timeout(bfqq))
 		/*
 		 * Also here the queue can be safely expired
@@ -6233,8 +6259,8 @@
 	bfq_bfqq_expire(bfqd, bfqq, true, reason);
 
 schedule_dispatch:
-	spin_unlock_irqrestore(&bfqd->lock, flags);
 	bfq_schedule_dispatch(bfqd);
+	spin_unlock_irqrestore(&bfqd->lock, flags);
 }
 
 /*
@@ -6256,7 +6282,7 @@
 	 * early.
 	 */
 	if (bfqq)
-		bfq_idle_slice_timer_body(bfqq);
+		bfq_idle_slice_timer_body(bfqd, bfqq);
 
 	return HRTIMER_NORESTART;
 }
@@ -6371,10 +6397,10 @@
 
 	hrtimer_cancel(&bfqd->idle_slice_timer);
 
-#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	/* release oom-queue reference to root group */
 	bfqg_and_blkg_put(bfqd->root_group);
 
+#ifdef CONFIG_BFQ_GROUP_IOSCHED
 	blkcg_deactivate_policy(bfqd->queue, &blkcg_policy_bfq);
 #else
 	spin_lock_irq(&bfqd->lock);
@@ -6383,6 +6409,8 @@
 	spin_unlock_irq(&bfqd->lock);
 #endif
 
+	wbt_enable_default(bfqd->queue);
+
 	kfree(bfqd);
 }
 
--- linux-ein-5.4.0.orig/block/bfq-iosched.h
+++ linux-ein-5.4.0/block/bfq-iosched.h
@@ -896,6 +896,8 @@
 
 	/* reference counter (see comments in bfq_bic_update_cgroup) */
 	int ref;
+	/* Is bfq_group still online? */
+	bool online;
 
 	struct bfq_entity entity;
 	struct bfq_sched_data sched_data;
@@ -916,6 +918,7 @@
 
 #else
 struct bfq_group {
+	struct bfq_entity entity;
 	struct bfq_sched_data sched_data;
 
 	struct bfq_queue *async_bfqq[2][IOPRIO_BE_NR];
@@ -948,7 +951,9 @@
 void bfq_bfqq_expire(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 		     bool compensate, enum bfqq_expiration reason);
 void bfq_put_queue(struct bfq_queue *bfqq);
+void bfq_put_cooperator(struct bfq_queue *bfqq);
 void bfq_end_wr_async_queues(struct bfq_data *bfqd, struct bfq_group *bfqg);
+void bfq_release_process_ref(struct bfq_data *bfqd, struct bfq_queue *bfqq);
 void bfq_schedule_dispatch(struct bfq_data *bfqd);
 void bfq_put_async_queues(struct bfq_data *bfqd, struct bfq_group *bfqg);
 
@@ -973,8 +978,7 @@
 void bfq_init_entity(struct bfq_entity *entity, struct bfq_group *bfqg);
 void bfq_bic_update_cgroup(struct bfq_io_cq *bic, struct bio *bio);
 void bfq_end_wr_async(struct bfq_data *bfqd);
-struct bfq_group *bfq_find_set_group(struct bfq_data *bfqd,
-				     struct blkcg *blkcg);
+struct bfq_group *bfq_bio_bfqg(struct bfq_data *bfqd, struct bio *bio);
 struct blkcg_gq *bfqg_to_blkg(struct bfq_group *bfqg);
 struct bfq_group *bfqq_group(struct bfq_queue *bfqq);
 struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node);
--- linux-ein-5.4.0.orig/block/bio-integrity.c
+++ linux-ein-5.4.0/block/bio-integrity.c
@@ -24,6 +24,18 @@
 	flush_workqueue(kintegrityd_wq);
 }
 
+void __bio_integrity_free(struct bio_set *bs, struct bio_integrity_payload *bip)
+{
+	if (bs && mempool_initialized(&bs->bio_integrity_pool)) {
+		if (bip->bip_vec)
+			bvec_free(&bs->bvec_integrity_pool, bip->bip_vec,
+				  bip->bip_slab);
+		mempool_free(bip, &bs->bio_integrity_pool);
+	} else {
+		kfree(bip);
+	}
+}
+
 /**
  * bio_integrity_alloc - Allocate integrity payload and attach it to bio
  * @bio:	bio to attach integrity metadata to
@@ -75,7 +87,7 @@
 
 	return bip;
 err:
-	mempool_free(bip, &bs->bio_integrity_pool);
+	__bio_integrity_free(bs, bip);
 	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL(bio_integrity_alloc);
@@ -87,7 +99,7 @@
  * Description: Used to free the integrity portion of a bio. Usually
  * called from bio_free().
  */
-static void bio_integrity_free(struct bio *bio)
+void bio_integrity_free(struct bio *bio)
 {
 	struct bio_integrity_payload *bip = bio_integrity(bio);
 	struct bio_set *bs = bio->bi_pool;
@@ -96,14 +108,7 @@
 		kfree(page_address(bip->bip_vec->bv_page) +
 		      bip->bip_vec->bv_offset);
 
-	if (bs && mempool_initialized(&bs->bio_integrity_pool)) {
-		bvec_free(&bs->bvec_integrity_pool, bip->bip_vec, bip->bip_slab);
-
-		mempool_free(bip, &bs->bio_integrity_pool);
-	} else {
-		kfree(bip);
-	}
-
+	__bio_integrity_free(bs, bip);
 	bio->bi_integrity = NULL;
 	bio->bi_opf &= ~REQ_INTEGRITY;
 }
@@ -278,7 +283,6 @@
 
 		if (ret == 0) {
 			printk(KERN_ERR "could not attach integrity payload\n");
-			kfree(buf);
 			status = BLK_STS_RESOURCE;
 			goto err_end_io;
 		}
@@ -376,7 +380,7 @@
 	struct blk_integrity *bi = blk_get_integrity(bio->bi_disk);
 	unsigned bytes = bio_integrity_bytes(bi, bytes_done >> 9);
 
-	bip->bip_iter.bi_sector += bytes_done >> 9;
+	bip->bip_iter.bi_sector += bio_integrity_intervals(bi, bytes_done >> 9);
 	bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes);
 }
 
@@ -420,6 +424,7 @@
 
 	bip->bip_vcnt = bip_src->bip_vcnt;
 	bip->bip_iter = bip_src->bip_iter;
+	bip->bip_flags = bip_src->bip_flags & ~BIP_BLOCK_INTEGRITY;
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/block/bio.c
+++ linux-ein-5.4.0/block/bio.c
@@ -233,6 +233,9 @@
 void bio_uninit(struct bio *bio)
 {
 	bio_disassociate_blkg(bio);
+
+	if (bio_integrity(bio))
+		bio_integrity_free(bio);
 }
 EXPORT_SYMBOL(bio_uninit);
 
@@ -302,7 +305,7 @@
 {
 	struct bio *parent = bio->bi_private;
 
-	if (!parent->bi_status)
+	if (bio->bi_status && !parent->bi_status)
 		parent->bi_status = bio->bi_status;
 	bio_put(bio);
 	return parent;
@@ -536,6 +539,56 @@
 EXPORT_SYMBOL(zero_fill_bio_iter);
 
 /**
+ * bio_truncate - truncate the bio to small size of @new_size
+ * @bio:	the bio to be truncated
+ * @new_size:	new size for truncating the bio
+ *
+ * Description:
+ *   Truncate the bio to new size of @new_size. If bio_op(bio) is
+ *   REQ_OP_READ, zero the truncated part. This function should only
+ *   be used for handling corner cases, such as bio eod.
+ */
+void bio_truncate(struct bio *bio, unsigned new_size)
+{
+	struct bio_vec bv;
+	struct bvec_iter iter;
+	unsigned int done = 0;
+	bool truncated = false;
+
+	if (new_size >= bio->bi_iter.bi_size)
+		return;
+
+	if (bio_op(bio) != REQ_OP_READ)
+		goto exit;
+
+	bio_for_each_segment(bv, bio, iter) {
+		if (done + bv.bv_len > new_size) {
+			unsigned offset;
+
+			if (!truncated)
+				offset = new_size - done;
+			else
+				offset = 0;
+			zero_user(bv.bv_page, bv.bv_offset + offset,
+				  bv.bv_len - offset);
+			truncated = true;
+		}
+		done += bv.bv_len;
+	}
+
+ exit:
+	/*
+	 * Don't touch bvec table here and make it really immutable, since
+	 * fs bio user has to retrieve all pages via bio_for_each_segment_all
+	 * in its .end_bio() callback.
+	 *
+	 * It is enough to truncate bio by updating .bi_size since we can make
+	 * correct bvec with the updated .bi_size for drivers.
+	 */
+	bio->bi_iter.bi_size = new_size;
+}
+
+/**
  * bio_put - release a reference to a bio
  * @bio:   bio to release reference to
  *
@@ -631,8 +684,8 @@
 		struct page *page, unsigned int len, unsigned int off,
 		bool *same_page)
 {
-	phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) +
-		bv->bv_offset + bv->bv_len - 1;
+	size_t bv_end = bv->bv_offset + bv->bv_len;
+	phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1;
 	phys_addr_t page_addr = page_to_phys(page);
 
 	if (vec_end_addr + 1 != page_addr + off)
@@ -641,9 +694,9 @@
 		return false;
 
 	*same_page = ((vec_end_addr & PAGE_MASK) == page_addr);
-	if (!*same_page && pfn_to_page(PFN_DOWN(vec_end_addr)) + 1 != page)
-		return false;
-	return true;
+	if (*same_page)
+		return true;
+	return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE);
 }
 
 static bool bio_try_merge_pc_page(struct request_queue *q, struct bio *bio,
@@ -751,10 +804,14 @@
 	if (WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED)))
 		return false;
 
-	if (bio->bi_vcnt > 0 && !bio_full(bio, len)) {
+	if (bio->bi_vcnt > 0) {
 		struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1];
 
 		if (page_is_mergeable(bv, page, len, off, same_page)) {
+			if (bio->bi_iter.bi_size > UINT_MAX - len) {
+				*same_page = false;
+				return false;
+			}
 			bv->bv_len += len;
 			bio->bi_iter.bi_size += len;
 			return true;
@@ -1570,7 +1627,7 @@
 		if (bytes > len)
 			bytes = len;
 
-		page = alloc_page(q->bounce_gfp | gfp_mask);
+		page = alloc_page(q->bounce_gfp | __GFP_ZERO | gfp_mask);
 		if (!page)
 			goto cleanup;
 
@@ -1698,14 +1755,14 @@
 	schedule_work(&bio_dirty_work);
 }
 
-void update_io_ticks(struct hd_struct *part, unsigned long now)
+void update_io_ticks(struct hd_struct *part, unsigned long now, bool end)
 {
 	unsigned long stamp;
 again:
 	stamp = READ_ONCE(part->stamp);
 	if (unlikely(stamp != now)) {
 		if (likely(cmpxchg(&part->stamp, stamp, now) == stamp)) {
-			__part_stat_add(part, io_ticks, 1);
+			__part_stat_add(part, io_ticks, end ? now - stamp : 1);
 		}
 	}
 	if (part->partno) {
@@ -1721,7 +1778,7 @@
 
 	part_stat_lock();
 
-	update_io_ticks(part, jiffies);
+	update_io_ticks(part, jiffies, false);
 	part_stat_inc(part, ios[sgrp]);
 	part_stat_add(part, sectors[sgrp], sectors);
 	part_inc_in_flight(q, part, op_is_write(op));
@@ -1739,7 +1796,7 @@
 
 	part_stat_lock();
 
-	update_io_ticks(part, now);
+	update_io_ticks(part, now, true);
 	part_stat_add(part, nsecs[sgrp], jiffies_to_nsecs(duration));
 	part_stat_add(part, time_in_queue, duration);
 	part_dec_in_flight(q, part, op_is_write(req_op));
@@ -2122,7 +2179,7 @@
 	rcu_read_lock();
 
 	if (src->bi_blkg)
-		__bio_associate_blkg(dst, src->bi_blkg);
+		bio_associate_blkg_from_css(dst, &bio_blkcg(src)->css);
 
 	rcu_read_unlock();
 }
--- linux-ein-5.4.0.orig/block/blk-cgroup.c
+++ linux-ein-5.4.0/block/blk-cgroup.c
@@ -855,13 +855,20 @@
 			goto fail;
 		}
 
+		if (radix_tree_preload(GFP_KERNEL)) {
+			blkg_free(new_blkg);
+			ret = -ENOMEM;
+			goto fail;
+		}
+
 		rcu_read_lock();
 		spin_lock_irq(&q->queue_lock);
 
 		blkg = blkg_lookup_check(pos, pol, q);
 		if (IS_ERR(blkg)) {
 			ret = PTR_ERR(blkg);
-			goto fail_unlock;
+			blkg_free(new_blkg);
+			goto fail_preloaded;
 		}
 
 		if (blkg) {
@@ -870,10 +877,12 @@
 			blkg = blkg_create(pos, q, new_blkg);
 			if (IS_ERR(blkg)) {
 				ret = PTR_ERR(blkg);
-				goto fail_unlock;
+				goto fail_preloaded;
 			}
 		}
 
+		radix_tree_preload_end();
+
 		if (pos == blkcg)
 			goto success;
 	}
@@ -883,6 +892,8 @@
 	ctx->body = input;
 	return 0;
 
+fail_preloaded:
+	radix_tree_preload_end();
 fail_unlock:
 	spin_unlock_irq(&q->queue_lock);
 	rcu_read_unlock();
@@ -1078,6 +1089,8 @@
  */
 void blkcg_destroy_blkgs(struct blkcg *blkcg)
 {
+	might_sleep();
+
 	spin_lock_irq(&blkcg->lock);
 
 	while (!hlist_empty(&blkcg->blkg_list)) {
@@ -1085,14 +1098,20 @@
 						struct blkcg_gq, blkcg_node);
 		struct request_queue *q = blkg->q;
 
-		if (spin_trylock(&q->queue_lock)) {
-			blkg_destroy(blkg);
-			spin_unlock(&q->queue_lock);
-		} else {
+		if (need_resched() || !spin_trylock(&q->queue_lock)) {
+			/*
+			 * Given that the system can accumulate a huge number
+			 * of blkgs in pathological cases, check to see if we
+			 * need to rescheduling to avoid softlockup.
+			 */
 			spin_unlock_irq(&blkcg->lock);
-			cpu_relax();
+			cond_resched();
 			spin_lock_irq(&blkcg->lock);
+			continue;
 		}
+
+		blkg_destroy(blkg);
+		spin_unlock(&q->queue_lock);
 	}
 
 	spin_unlock_irq(&blkcg->lock);
@@ -1219,13 +1238,15 @@
 	if (preloaded)
 		radix_tree_preload_end();
 
-	ret = blk_iolatency_init(q);
+	ret = blk_throtl_init(q);
 	if (ret)
 		goto err_destroy_all;
 
-	ret = blk_throtl_init(q);
-	if (ret)
+	ret = blk_iolatency_init(q);
+	if (ret) {
+		blk_throtl_exit(q);
 		goto err_destroy_all;
+	}
 	return 0;
 
 err_destroy_all:
@@ -1424,6 +1445,10 @@
 		list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
 			pol->pd_init_fn(blkg->pd[pol->plid]);
 
+	if (pol->pd_online_fn)
+		list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
+			pol->pd_online_fn(blkg->pd[pol->plid]);
+
 	__set_bit(pol->plid, q->blkcg_pols);
 	ret = 0;
 
@@ -1441,10 +1466,14 @@
 	/* alloc failed, nothing's initialized yet, free everything */
 	spin_lock_irq(&q->queue_lock);
 	list_for_each_entry(blkg, &q->blkg_list, q_node) {
+		struct blkcg *blkcg = blkg->blkcg;
+
+		spin_lock(&blkcg->lock);
 		if (blkg->pd[pol->plid]) {
 			pol->pd_free_fn(blkg->pd[pol->plid]);
 			blkg->pd[pol->plid] = NULL;
 		}
+		spin_unlock(&blkcg->lock);
 	}
 	spin_unlock_irq(&q->queue_lock);
 	ret = -ENOMEM;
@@ -1476,12 +1505,16 @@
 	__clear_bit(pol->plid, q->blkcg_pols);
 
 	list_for_each_entry(blkg, &q->blkg_list, q_node) {
+		struct blkcg *blkcg = blkg->blkcg;
+
+		spin_lock(&blkcg->lock);
 		if (blkg->pd[pol->plid]) {
 			if (pol->pd_offline_fn)
 				pol->pd_offline_fn(blkg->pd[pol->plid]);
 			pol->pd_free_fn(blkg->pd[pol->plid]);
 			blkg->pd[pol->plid] = NULL;
 		}
+		spin_unlock(&blkcg->lock);
 	}
 
 	spin_unlock_irq(&q->queue_lock);
--- linux-ein-5.4.0.orig/block/blk-core.c
+++ linux-ein-5.4.0/block/blk-core.c
@@ -502,6 +502,7 @@
 		goto fail_stats;
 
 	q->backing_dev_info->ra_pages = VM_READAHEAD_PAGES;
+	q->backing_dev_info->io_pages = VM_READAHEAD_PAGES;
 	q->backing_dev_info->capabilities = BDI_CAP_CGROUP_WRITEBACK;
 	q->backing_dev_info->name = "block";
 	q->node = node_id;
@@ -742,11 +743,10 @@
 {
 	char b[BDEVNAME_SIZE];
 
-	printk(KERN_INFO "attempt to access beyond end of device\n");
-	printk(KERN_INFO "%s: rw=%d, want=%Lu, limit=%Lu\n",
-			bio_devname(bio, b), bio->bi_opf,
-			(unsigned long long)bio_end_sector(bio),
-			(long long)maxsector);
+	pr_info_ratelimited("attempt to access beyond end of device\n"
+			    "%s: rw=%d, want=%llu, limit=%llu\n",
+			    bio_devname(bio, b), bio->bi_opf,
+			    bio_end_sector(bio), maxsector);
 }
 
 #ifdef CONFIG_FAIL_MAKE_REQUEST
@@ -793,10 +793,7 @@
 
 		if (op_is_flush(bio->bi_opf) && !bio_sectors(bio))
 			return false;
-
-		WARN_ONCE(1,
-		       "generic_make_request: Trying to write "
-			"to read-only block-device %s (partno %d)\n",
+		pr_warn("Trying to write to read-only block-device %s (partno %d)\n",
 			bio_devname(bio, b), part->partno);
 		/* Older lvm-tools actually trigger this */
 		return false;
@@ -886,11 +883,14 @@
 	}
 
 	/*
-	 * For a REQ_NOWAIT based request, return -EOPNOTSUPP
-	 * if queue is not a request based queue.
+	 * Non-mq queues do not honor REQ_NOWAIT, so complete a bio
+	 * with BLK_STS_AGAIN status in order to catch -EAGAIN and
+	 * to give a chance to the caller to repeat request gracefully.
 	 */
-	if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q))
-		goto not_supported;
+	if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) {
+		status = BLK_STS_AGAIN;
+		goto end_io;
+	}
 
 	if (should_fail_bio(bio))
 		goto end_io;
@@ -1333,7 +1333,7 @@
 		part_stat_lock();
 		part = req->part;
 
-		update_io_ticks(part, jiffies);
+		update_io_ticks(part, jiffies, true);
 		part_stat_inc(part, ios[sgrp]);
 		part_stat_add(part, nsecs[sgrp], now - req->start_time_ns);
 		part_stat_add(part, time_in_queue, nsecs_to_jiffies64(now - req->start_time_ns));
@@ -1375,7 +1375,7 @@
 		rq->part = part;
 	}
 
-	update_io_ticks(part, jiffies);
+	update_io_ticks(part, jiffies, false);
 
 	part_stat_unlock();
 }
--- linux-ein-5.4.0.orig/block/blk-flush.c
+++ linux-ein-5.4.0/block/blk-flush.c
@@ -69,6 +69,7 @@
 #include <linux/blkdev.h>
 #include <linux/gfp.h>
 #include <linux/blk-mq.h>
+#include <linux/lockdep.h>
 
 #include "blk.h"
 #include "blk-mq.h"
@@ -221,8 +222,10 @@
 		return;
 	}
 
-	if (fq->rq_status != BLK_STS_OK)
+	if (fq->rq_status != BLK_STS_OK) {
 		error = fq->rq_status;
+		fq->rq_status = BLK_STS_OK;
+	}
 
 	hctx = flush_rq->mq_hctx;
 	if (!q->elevator) {
@@ -398,7 +401,7 @@
 	 */
 	if ((policy & REQ_FSEQ_DATA) &&
 	    !(policy & (REQ_FSEQ_PREFLUSH | REQ_FSEQ_POSTFLUSH))) {
-		blk_mq_request_bypass_insert(rq, false);
+		blk_mq_request_bypass_insert(rq, false, false);
 		return;
 	}
 
@@ -492,6 +495,9 @@
 	INIT_LIST_HEAD(&fq->flush_queue[1]);
 	INIT_LIST_HEAD(&fq->flush_data_in_flight);
 
+	lockdep_register_key(&fq->key);
+	lockdep_set_class(&fq->mq_flush_lock, &fq->key);
+
 	return fq;
 
  fail_rq:
@@ -506,6 +512,7 @@
 	if (!fq)
 		return;
 
+	lockdep_unregister_key(&fq->key);
 	kfree(fq->flush_rq);
 	kfree(fq);
 }
--- linux-ein-5.4.0.orig/block/blk-ioc.c
+++ linux-ein-5.4.0/block/blk-ioc.c
@@ -84,6 +84,7 @@
 	 * making it impossible to determine icq_cache.  Record it in @icq.
 	 */
 	icq->__rcu_icq_cache = et->icq_cache;
+	icq->flags |= ICQ_DESTROYED;
 	call_rcu(&icq->__rcu_head, icq_free_icq_rcu);
 }
 
@@ -212,15 +213,21 @@
 {
 	unsigned long flags;
 
+	rcu_read_lock();
 	while (!list_empty(icq_list)) {
 		struct io_cq *icq = list_entry(icq_list->next,
 						struct io_cq, q_node);
 		struct io_context *ioc = icq->ioc;
 
 		spin_lock_irqsave(&ioc->lock, flags);
+		if (icq->flags & ICQ_DESTROYED) {
+			spin_unlock_irqrestore(&ioc->lock, flags);
+			continue;
+		}
 		ioc_destroy_icq(icq);
 		spin_unlock_irqrestore(&ioc->lock, flags);
 	}
+	rcu_read_unlock();
 }
 
 /**
--- linux-ein-5.4.0.orig/block/blk-iocost.c
+++ linux-ein-5.4.0/block/blk-iocost.c
@@ -248,7 +248,9 @@
 
 	/* 1/64k is granular enough and can easily be handled w/ u32 */
 	HWEIGHT_WHOLE		= 1 << 16,
+};
 
+enum {
 	/*
 	 * As vtime is used to calculate the cost of each IO, it needs to
 	 * be fairly high precision.  For example, it should be able to
@@ -271,6 +273,11 @@
 	VRATE_MIN		= VTIME_PER_USEC * VRATE_MIN_PPM / MILLION,
 	VRATE_CLAMP_ADJ_PCT	= 4,
 
+	/* switch iff the conditions are met for longer than this */
+	AUTOP_CYCLE_NSEC	= 10LLU * NSEC_PER_SEC,
+};
+
+enum {
 	/* if IOs end up waiting for requests, issue less */
 	RQ_WAIT_BUSY_PCT	= 5,
 
@@ -288,9 +295,6 @@
 	SURPLUS_SCALE_ABS	= HWEIGHT_WHOLE / 50,	/* + 2% */
 	SURPLUS_MIN_ADJ_DELTA	= HWEIGHT_WHOLE / 33,	/* 3% */
 
-	/* switch iff the conditions are met for longer than this */
-	AUTOP_CYCLE_NSEC	= 10LLU * NSEC_PER_SEC,
-
 	/*
 	 * Count IO size in 4k pages.  The 12bit shift helps keeping
 	 * size-proportional components of cost calculation in closer
@@ -469,7 +473,7 @@
 	 */
 	atomic64_t			vtime;
 	atomic64_t			done_vtime;
-	atomic64_t			abs_vdebt;
+	u64				abs_vdebt;
 	u64				last_vtime;
 
 	/*
@@ -785,9 +789,14 @@
 
 	*page = *seqio = *randio = 0;
 
-	if (bps)
-		*page = DIV64_U64_ROUND_UP(VTIME_PER_SEC,
-					   DIV_ROUND_UP_ULL(bps, IOC_PAGE_SIZE));
+	if (bps) {
+		u64 bps_pages = DIV_ROUND_UP_ULL(bps, IOC_PAGE_SIZE);
+
+		if (bps_pages)
+			*page = DIV64_U64_ROUND_UP(VTIME_PER_SEC, bps_pages);
+		else
+			*page = 1;
+	}
 
 	if (seqiops) {
 		v = DIV64_U64_ROUND_UP(VTIME_PER_SEC, seqiops);
@@ -1145,7 +1154,7 @@
 	struct iocg_wake_ctx ctx = { .iocg = iocg };
 	u64 margin_ns = (u64)(ioc->period_us *
 			      WAITQ_TIMER_MARGIN_PCT / 100) * NSEC_PER_USEC;
-	u64 abs_vdebt, vdebt, vshortage, expires, oexpires;
+	u64 vdebt, vshortage, expires, oexpires;
 	s64 vbudget;
 	u32 hw_inuse;
 
@@ -1155,18 +1164,15 @@
 	vbudget = now->vnow - atomic64_read(&iocg->vtime);
 
 	/* pay off debt */
-	abs_vdebt = atomic64_read(&iocg->abs_vdebt);
-	vdebt = abs_cost_to_cost(abs_vdebt, hw_inuse);
+	vdebt = abs_cost_to_cost(iocg->abs_vdebt, hw_inuse);
 	if (vdebt && vbudget > 0) {
 		u64 delta = min_t(u64, vbudget, vdebt);
 		u64 abs_delta = min(cost_to_abs_cost(delta, hw_inuse),
-				    abs_vdebt);
+				    iocg->abs_vdebt);
 
 		atomic64_add(delta, &iocg->vtime);
 		atomic64_add(delta, &iocg->done_vtime);
-		atomic64_sub(abs_delta, &iocg->abs_vdebt);
-		if (WARN_ON_ONCE(atomic64_read(&iocg->abs_vdebt) < 0))
-			atomic64_set(&iocg->abs_vdebt, 0);
+		iocg->abs_vdebt -= abs_delta;
 	}
 
 	/*
@@ -1212,7 +1218,7 @@
 	return HRTIMER_NORESTART;
 }
 
-static void iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost)
+static bool iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost)
 {
 	struct ioc *ioc = iocg->ioc;
 	struct blkcg_gq *blkg = iocg_to_blkg(iocg);
@@ -1222,18 +1228,24 @@
 	u64 expires, oexpires;
 	u32 hw_inuse;
 
+	lockdep_assert_held(&iocg->waitq.lock);
+
 	/* debt-adjust vtime */
 	current_hweight(iocg, NULL, &hw_inuse);
-	vtime += abs_cost_to_cost(atomic64_read(&iocg->abs_vdebt), hw_inuse);
+	vtime += abs_cost_to_cost(iocg->abs_vdebt, hw_inuse);
 
-	/* clear or maintain depending on the overage */
-	if (time_before_eq64(vtime, now->vnow)) {
+	/*
+	 * Clear or maintain depending on the overage. Non-zero vdebt is what
+	 * guarantees that @iocg is online and future iocg_kick_delay() will
+	 * clear use_delay. Don't leave it on when there's no vdebt.
+	 */
+	if (!iocg->abs_vdebt || time_before_eq64(vtime, now->vnow)) {
 		blkcg_clear_delay(blkg);
-		return;
+		return false;
 	}
 	if (!atomic_read(&blkg->use_delay) &&
 	    time_before_eq64(vtime, now->vnow + vmargin))
-		return;
+		return false;
 
 	/* use delay */
 	if (cost) {
@@ -1250,19 +1262,23 @@
 	oexpires = ktime_to_ns(hrtimer_get_softexpires(&iocg->delay_timer));
 	if (hrtimer_is_queued(&iocg->delay_timer) &&
 	    abs(oexpires - expires) <= margin_ns / 4)
-		return;
+		return true;
 
 	hrtimer_start_range_ns(&iocg->delay_timer, ns_to_ktime(expires),
 			       margin_ns / 4, HRTIMER_MODE_ABS);
+	return true;
 }
 
 static enum hrtimer_restart iocg_delay_timer_fn(struct hrtimer *timer)
 {
 	struct ioc_gq *iocg = container_of(timer, struct ioc_gq, delay_timer);
 	struct ioc_now now;
+	unsigned long flags;
 
+	spin_lock_irqsave(&iocg->waitq.lock, flags);
 	ioc_now(iocg->ioc, &now);
 	iocg_kick_delay(iocg, &now, 0);
+	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
 
 	return HRTIMER_NORESTART;
 }
@@ -1317,7 +1333,7 @@
 		return false;
 
 	/* is something in flight? */
-	if (atomic64_read(&iocg->done_vtime) < atomic64_read(&iocg->vtime))
+	if (atomic64_read(&iocg->done_vtime) != atomic64_read(&iocg->vtime))
 		return false;
 
 	return true;
@@ -1370,14 +1386,13 @@
 	 * should have woken up in the last period and expire idle iocgs.
 	 */
 	list_for_each_entry_safe(iocg, tiocg, &ioc->active_iocgs, active_list) {
-		if (!waitqueue_active(&iocg->waitq) &&
-		    !atomic64_read(&iocg->abs_vdebt) && !iocg_is_idle(iocg))
+		if (!waitqueue_active(&iocg->waitq) && !iocg->abs_vdebt &&
+		    !iocg_is_idle(iocg))
 			continue;
 
 		spin_lock(&iocg->waitq.lock);
 
-		if (waitqueue_active(&iocg->waitq) ||
-		    atomic64_read(&iocg->abs_vdebt)) {
+		if (waitqueue_active(&iocg->waitq) || iocg->abs_vdebt) {
 			/* might be oversleeping vtime / hweight changes, kick */
 			iocg_kick_waitq(iocg, &now);
 			iocg_kick_delay(iocg, &now, 0);
@@ -1540,19 +1555,39 @@
 	if (rq_wait_pct > RQ_WAIT_BUSY_PCT ||
 	    missed_ppm[READ] > ppm_rthr ||
 	    missed_ppm[WRITE] > ppm_wthr) {
+		/* clearly missing QoS targets, slow down vrate */
 		ioc->busy_level = max(ioc->busy_level, 0);
 		ioc->busy_level++;
 	} else if (rq_wait_pct <= RQ_WAIT_BUSY_PCT * UNBUSY_THR_PCT / 100 &&
 		   missed_ppm[READ] <= ppm_rthr * UNBUSY_THR_PCT / 100 &&
 		   missed_ppm[WRITE] <= ppm_wthr * UNBUSY_THR_PCT / 100) {
-		/* take action iff there is contention */
-		if (nr_shortages && !nr_lagging) {
+		/* QoS targets are being met with >25% margin */
+		if (nr_shortages) {
+			/*
+			 * We're throttling while the device has spare
+			 * capacity.  If vrate was being slowed down, stop.
+			 */
 			ioc->busy_level = min(ioc->busy_level, 0);
-			/* redistribute surpluses first */
-			if (!nr_surpluses)
+
+			/*
+			 * If there are IOs spanning multiple periods, wait
+			 * them out before pushing the device harder.  If
+			 * there are surpluses, let redistribution work it
+			 * out first.
+			 */
+			if (!nr_lagging && !nr_surpluses)
 				ioc->busy_level--;
+		} else {
+			/*
+			 * Nobody is being throttled and the users aren't
+			 * issuing enough IOs to saturate the device.  We
+			 * simply don't know how close the device is to
+			 * saturation.  Coast.
+			 */
+			ioc->busy_level = 0;
 		}
 	} else {
+		/* inside the hysterisis margin, we're good */
 		ioc->busy_level = 0;
 	}
 
@@ -1593,7 +1628,7 @@
 				      vrate_min, vrate_max);
 		}
 
-		trace_iocost_ioc_vrate_adj(ioc, vrate, &missed_ppm, rq_wait_pct,
+		trace_iocost_ioc_vrate_adj(ioc, vrate, missed_ppm, rq_wait_pct,
 					   nr_lagging, nr_shortages,
 					   nr_surpluses);
 
@@ -1602,7 +1637,7 @@
 			ioc->period_us * vrate * INUSE_MARGIN_PCT, 100);
 	} else if (ioc->busy_level != prev_busy_level || nr_lagging) {
 		trace_iocost_ioc_vrate_adj(ioc, atomic64_read(&ioc->vtime_rate),
-					   &missed_ppm, rq_wait_pct, nr_lagging,
+					   missed_ppm, rq_wait_pct, nr_lagging,
 					   nr_shortages, nr_surpluses);
 	}
 
@@ -1720,26 +1755,49 @@
 	 * tests are racy but the races aren't systemic - we only miss once
 	 * in a while which is fine.
 	 */
-	if (!waitqueue_active(&iocg->waitq) &&
-	    !atomic64_read(&iocg->abs_vdebt) &&
+	if (!waitqueue_active(&iocg->waitq) && !iocg->abs_vdebt &&
 	    time_before_eq64(vtime + cost, now.vnow)) {
 		iocg_commit_bio(iocg, bio, cost);
 		return;
 	}
 
 	/*
-	 * We're over budget.  If @bio has to be issued regardless,
-	 * remember the abs_cost instead of advancing vtime.
-	 * iocg_kick_waitq() will pay off the debt before waking more IOs.
+	 * We activated above but w/o any synchronization. Deactivation is
+	 * synchronized with waitq.lock and we won't get deactivated as long
+	 * as we're waiting or has debt, so we're good if we're activated
+	 * here. In the unlikely case that we aren't, just issue the IO.
+	 */
+	spin_lock_irq(&iocg->waitq.lock);
+
+	if (unlikely(list_empty(&iocg->active_list))) {
+		spin_unlock_irq(&iocg->waitq.lock);
+		iocg_commit_bio(iocg, bio, cost);
+		return;
+	}
+
+	/*
+	 * We're over budget. If @bio has to be issued regardless, remember
+	 * the abs_cost instead of advancing vtime. iocg_kick_waitq() will pay
+	 * off the debt before waking more IOs.
+	 *
 	 * This way, the debt is continuously paid off each period with the
-	 * actual budget available to the cgroup.  If we just wound vtime,
-	 * we would incorrectly use the current hw_inuse for the entire
-	 * amount which, for example, can lead to the cgroup staying
-	 * blocked for a long time even with substantially raised hw_inuse.
+	 * actual budget available to the cgroup. If we just wound vtime, we
+	 * would incorrectly use the current hw_inuse for the entire amount
+	 * which, for example, can lead to the cgroup staying blocked for a
+	 * long time even with substantially raised hw_inuse.
+	 *
+	 * An iocg with vdebt should stay online so that the timer can keep
+	 * deducting its vdebt and [de]activate use_delay mechanism
+	 * accordingly. We don't want to race against the timer trying to
+	 * clear them and leave @iocg inactive w/ dangling use_delay heavily
+	 * penalizing the cgroup and its descendants.
 	 */
 	if (bio_issue_as_root_blkg(bio) || fatal_signal_pending(current)) {
-		atomic64_add(abs_cost, &iocg->abs_vdebt);
-		iocg_kick_delay(iocg, &now, cost);
+		iocg->abs_vdebt += abs_cost;
+		if (iocg_kick_delay(iocg, &now, cost))
+			blkcg_schedule_throttle(rqos->q,
+					(bio->bi_opf & REQ_SWAP) == REQ_SWAP);
+		spin_unlock_irq(&iocg->waitq.lock);
 		return;
 	}
 
@@ -1756,20 +1814,6 @@
 	 * All waiters are on iocg->waitq and the wait states are
 	 * synchronized using waitq.lock.
 	 */
-	spin_lock_irq(&iocg->waitq.lock);
-
-	/*
-	 * We activated above but w/o any synchronization.  Deactivation is
-	 * synchronized with waitq.lock and we won't get deactivated as
-	 * long as we're waiting, so we're good if we're activated here.
-	 * In the unlikely case that we are deactivated, just issue the IO.
-	 */
-	if (unlikely(list_empty(&iocg->active_list))) {
-		spin_unlock_irq(&iocg->waitq.lock);
-		iocg_commit_bio(iocg, bio, cost);
-		return;
-	}
-
 	init_waitqueue_func_entry(&wait.wait, iocg_wake_fn);
 	wait.wait.private = current;
 	wait.bio = bio;
@@ -1801,6 +1845,7 @@
 	struct ioc_now now;
 	u32 hw_inuse;
 	u64 abs_cost, cost;
+	unsigned long flags;
 
 	/* bypass if disabled or for root cgroup */
 	if (!ioc->enabled || !iocg->level)
@@ -1820,15 +1865,28 @@
 		iocg->cursor = bio_end;
 
 	/*
-	 * Charge if there's enough vtime budget and the existing request
-	 * has cost assigned.  Otherwise, account it as debt.  See debt
-	 * handling in ioc_rqos_throttle() for details.
+	 * Charge if there's enough vtime budget and the existing request has
+	 * cost assigned.
 	 */
 	if (rq->bio && rq->bio->bi_iocost_cost &&
-	    time_before_eq64(atomic64_read(&iocg->vtime) + cost, now.vnow))
+	    time_before_eq64(atomic64_read(&iocg->vtime) + cost, now.vnow)) {
 		iocg_commit_bio(iocg, bio, cost);
-	else
-		atomic64_add(abs_cost, &iocg->abs_vdebt);
+		return;
+	}
+
+	/*
+	 * Otherwise, account it as debt if @iocg is online, which it should
+	 * be for the vast majority of cases. See debt handling in
+	 * ioc_rqos_throttle() for details.
+	 */
+	spin_lock_irqsave(&iocg->waitq.lock, flags);
+	if (likely(!list_empty(&iocg->active_list))) {
+		iocg->abs_vdebt += abs_cost;
+		iocg_kick_delay(iocg, &now, cost);
+	} else {
+		iocg_commit_bio(iocg, bio, cost);
+	}
+	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
 }
 
 static void ioc_rqos_done_bio(struct rq_qos *rqos, struct bio *bio)
@@ -1998,7 +2056,6 @@
 	iocg->ioc = ioc;
 	atomic64_set(&iocg->vtime, now.vnow);
 	atomic64_set(&iocg->done_vtime, now.vnow);
-	atomic64_set(&iocg->abs_vdebt, 0);
 	atomic64_set(&iocg->active_period, atomic64_read(&ioc->cur_period));
 	INIT_LIST_HEAD(&iocg->active_list);
 	iocg->hweight_active = HWEIGHT_WHOLE;
@@ -2026,14 +2083,15 @@
 {
 	struct ioc_gq *iocg = pd_to_iocg(pd);
 	struct ioc *ioc = iocg->ioc;
+	unsigned long flags;
 
 	if (ioc) {
-		spin_lock(&ioc->lock);
+		spin_lock_irqsave(&ioc->lock, flags);
 		if (!list_empty(&iocg->active_list)) {
 			propagate_active_weight(iocg, 0, 0);
 			list_del_init(&iocg->active_list);
 		}
-		spin_unlock(&ioc->lock);
+		spin_unlock_irqrestore(&ioc->lock, flags);
 
 		hrtimer_cancel(&iocg->waitq_timer);
 		hrtimer_cancel(&iocg->delay_timer);
--- linux-ein-5.4.0.orig/block/blk-iolatency.c
+++ linux-ein-5.4.0/block/blk-iolatency.c
@@ -86,7 +86,17 @@
 struct blk_iolatency {
 	struct rq_qos rqos;
 	struct timer_list timer;
-	atomic_t enabled;
+
+	/*
+	 * ->enabled is the master enable switch gating the throttling logic and
+	 * inflight tracking. The number of cgroups which have iolat enabled is
+	 * tracked in ->enable_cnt, and ->enable is flipped on/off accordingly
+	 * from ->enable_work with the request_queue frozen. For details, See
+	 * blkiolatency_enable_work_fn().
+	 */
+	bool enabled;
+	atomic_t enable_cnt;
+	struct work_struct enable_work;
 };
 
 static inline struct blk_iolatency *BLKIOLATENCY(struct rq_qos *rqos)
@@ -94,11 +104,6 @@
 	return container_of(rqos, struct blk_iolatency, rqos);
 }
 
-static inline bool blk_iolatency_enabled(struct blk_iolatency *blkiolat)
-{
-	return atomic_read(&blkiolat->enabled) > 0;
-}
-
 struct child_latency_info {
 	spinlock_t lock;
 
@@ -463,7 +468,7 @@
 	struct blkcg_gq *blkg = bio->bi_blkg;
 	bool issue_as_root = bio_issue_as_root_blkg(bio);
 
-	if (!blk_iolatency_enabled(blkiolat))
+	if (!blkiolat->enabled)
 		return;
 
 	while (blkg && blkg->parent) {
@@ -593,7 +598,6 @@
 	u64 window_start;
 	u64 now = ktime_to_ns(ktime_get());
 	bool issue_as_root = bio_issue_as_root_blkg(bio);
-	bool enabled = false;
 	int inflight = 0;
 
 	blkg = bio->bi_blkg;
@@ -604,8 +608,7 @@
 	if (!iolat)
 		return;
 
-	enabled = blk_iolatency_enabled(iolat->blkiolat);
-	if (!enabled)
+	if (!iolat->blkiolat->enabled)
 		return;
 
 	while (blkg && blkg->parent) {
@@ -643,6 +646,7 @@
 	struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos);
 
 	del_timer_sync(&blkiolat->timer);
+	flush_work(&blkiolat->enable_work);
 	blkcg_deactivate_policy(rqos->q, &blkcg_policy_iolatency);
 	kfree(blkiolat);
 }
@@ -714,6 +718,44 @@
 	rcu_read_unlock();
 }
 
+/**
+ * blkiolatency_enable_work_fn - Enable or disable iolatency on the device
+ * @work: enable_work of the blk_iolatency of interest
+ *
+ * iolatency needs to keep track of the number of in-flight IOs per cgroup. This
+ * is relatively expensive as it involves walking up the hierarchy twice for
+ * every IO. Thus, if iolatency is not enabled in any cgroup for the device, we
+ * want to disable the in-flight tracking.
+ *
+ * We have to make sure that the counting is balanced - we don't want to leak
+ * the in-flight counts by disabling accounting in the completion path while IOs
+ * are in flight. This is achieved by ensuring that no IO is in flight by
+ * freezing the queue while flipping ->enabled. As this requires a sleepable
+ * context, ->enabled flipping is punted to this work function.
+ */
+static void blkiolatency_enable_work_fn(struct work_struct *work)
+{
+	struct blk_iolatency *blkiolat = container_of(work, struct blk_iolatency,
+						      enable_work);
+	bool enabled;
+
+	/*
+	 * There can only be one instance of this function running for @blkiolat
+	 * and it's guaranteed to be executed at least once after the latest
+	 * ->enabled_cnt modification. Acting on the latest ->enable_cnt is
+	 * sufficient.
+	 *
+	 * Also, we know @blkiolat is safe to access as ->enable_work is flushed
+	 * in blkcg_iolatency_exit().
+	 */
+	enabled = atomic_read(&blkiolat->enable_cnt);
+	if (enabled != blkiolat->enabled) {
+		blk_mq_freeze_queue(blkiolat->rqos.q);
+		blkiolat->enabled = enabled;
+		blk_mq_unfreeze_queue(blkiolat->rqos.q);
+	}
+}
+
 int blk_iolatency_init(struct request_queue *q)
 {
 	struct blk_iolatency *blkiolat;
@@ -739,17 +781,15 @@
 	}
 
 	timer_setup(&blkiolat->timer, blkiolatency_timer_fn, 0);
+	INIT_WORK(&blkiolat->enable_work, blkiolatency_enable_work_fn);
 
 	return 0;
 }
 
-/*
- * return 1 for enabling iolatency, return -1 for disabling iolatency, otherwise
- * return 0.
- */
-static int iolatency_set_min_lat_nsec(struct blkcg_gq *blkg, u64 val)
+static void iolatency_set_min_lat_nsec(struct blkcg_gq *blkg, u64 val)
 {
 	struct iolatency_grp *iolat = blkg_to_lat(blkg);
+	struct blk_iolatency *blkiolat = iolat->blkiolat;
 	u64 oldval = iolat->min_lat_nsec;
 
 	iolat->min_lat_nsec = val;
@@ -757,13 +797,15 @@
 	iolat->cur_win_nsec = min_t(u64, iolat->cur_win_nsec,
 				    BLKIOLATENCY_MAX_WIN_SIZE);
 
-	if (!oldval && val)
-		return 1;
+	if (!oldval && val) {
+		if (atomic_inc_return(&blkiolat->enable_cnt) == 1)
+			schedule_work(&blkiolat->enable_work);
+	}
 	if (oldval && !val) {
 		blkcg_clear_delay(blkg);
-		return -1;
+		if (atomic_dec_return(&blkiolat->enable_cnt) == 0)
+			schedule_work(&blkiolat->enable_work);
 	}
-	return 0;
 }
 
 static void iolatency_clear_scaling(struct blkcg_gq *blkg)
@@ -795,7 +837,6 @@
 	u64 lat_val = 0;
 	u64 oldval;
 	int ret;
-	int enable = 0;
 
 	ret = blkg_conf_prep(blkcg, &blkcg_policy_iolatency, buf, &ctx);
 	if (ret)
@@ -830,37 +871,12 @@
 	blkg = ctx.blkg;
 	oldval = iolat->min_lat_nsec;
 
-	enable = iolatency_set_min_lat_nsec(blkg, lat_val);
-	if (enable) {
-		WARN_ON_ONCE(!blk_get_queue(blkg->q));
-		blkg_get(blkg);
-	}
-
-	if (oldval != iolat->min_lat_nsec) {
+	iolatency_set_min_lat_nsec(blkg, lat_val);
+	if (oldval != iolat->min_lat_nsec)
 		iolatency_clear_scaling(blkg);
-	}
-
 	ret = 0;
 out:
 	blkg_conf_finish(&ctx);
-	if (ret == 0 && enable) {
-		struct iolatency_grp *tmp = blkg_to_lat(blkg);
-		struct blk_iolatency *blkiolat = tmp->blkiolat;
-
-		blk_mq_freeze_queue(blkg->q);
-
-		if (enable == 1)
-			atomic_inc(&blkiolat->enabled);
-		else if (enable == -1)
-			atomic_dec(&blkiolat->enabled);
-		else
-			WARN_ON_ONCE(1);
-
-		blk_mq_unfreeze_queue(blkg->q);
-
-		blkg_put(blkg);
-		blk_put_queue(blkg->q);
-	}
 	return ret ?: nbytes;
 }
 
@@ -1001,14 +1017,8 @@
 {
 	struct iolatency_grp *iolat = pd_to_lat(pd);
 	struct blkcg_gq *blkg = lat_to_blkg(iolat);
-	struct blk_iolatency *blkiolat = iolat->blkiolat;
-	int ret;
 
-	ret = iolatency_set_min_lat_nsec(blkg, 0);
-	if (ret == 1)
-		atomic_inc(&blkiolat->enabled);
-	if (ret == -1)
-		atomic_dec(&blkiolat->enabled);
+	iolatency_set_min_lat_nsec(blkg, 0);
 	iolatency_clear_scaling(blkg);
 }
 
--- linux-ein-5.4.0.orig/block/blk-map.c
+++ linux-ein-5.4.0/block/blk-map.c
@@ -151,7 +151,7 @@
 	return 0;
 
 unmap_rq:
-	__blk_rq_unmap_user(bio);
+	blk_rq_unmap_user(bio);
 fail:
 	rq->bio = NULL;
 	return ret;
--- linux-ein-5.4.0.orig/block/blk-merge.c
+++ linux-ein-5.4.0/block/blk-merge.c
@@ -7,6 +7,7 @@
 #include <linux/bio.h>
 #include <linux/blkdev.h>
 #include <linux/scatterlist.h>
+#include <linux/blk-cgroup.h>
 
 #include <trace/events/block.h>
 
@@ -154,20 +155,23 @@
 	if (max_sectors > start_offset)
 		return max_sectors - start_offset;
 
-	return sectors & (lbs - 1);
+	return sectors & ~(lbs - 1);
 }
 
-static unsigned get_max_segment_size(const struct request_queue *q,
-				     unsigned offset)
+static inline unsigned get_max_segment_size(const struct request_queue *q,
+					    struct page *start_page,
+					    unsigned long offset)
 {
 	unsigned long mask = queue_segment_boundary(q);
 
-	/* default segment boundary mask means no boundary limit */
-	if (mask == BLK_SEG_BOUNDARY_MASK)
-		return queue_max_segment_size(q);
+	offset = mask & (page_to_phys(start_page) + offset);
 
-	return min_t(unsigned long, mask - (mask & offset) + 1,
-		     queue_max_segment_size(q));
+	/*
+	 * overflow may be triggered in case of zero page physical address
+	 * on 32bit arch, use queue's max segment size when that happens.
+	 */
+	return min_not_zero(mask - offset + 1,
+			(unsigned long)queue_max_segment_size(q));
 }
 
 /**
@@ -201,7 +205,8 @@
 	unsigned seg_size = 0;
 
 	while (len && *nsegs < max_segs) {
-		seg_size = get_max_segment_size(q, bv->bv_offset + total_len);
+		seg_size = get_max_segment_size(q, bv->bv_page,
+						bv->bv_offset + total_len);
 		seg_size = min(seg_size, len);
 
 		(*nsegs)++;
@@ -366,6 +371,14 @@
 	switch (bio_op(rq->bio)) {
 	case REQ_OP_DISCARD:
 	case REQ_OP_SECURE_ERASE:
+		if (queue_max_discard_segments(rq->q) > 1) {
+			struct bio *bio = rq->bio;
+
+			for_each_bio(bio)
+				nr_phys_segs++;
+			return nr_phys_segs;
+		}
+		return 1;
 	case REQ_OP_WRITE_ZEROES:
 		return 0;
 	case REQ_OP_WRITE_SAME:
@@ -404,7 +417,8 @@
 
 	while (nbytes > 0) {
 		unsigned offset = bvec->bv_offset + total;
-		unsigned len = min(get_max_segment_size(q, offset), nbytes);
+		unsigned len = min(get_max_segment_size(q, bvec->bv_page,
+					offset), nbytes);
 		struct page *page = bvec->bv_page;
 
 		/*
@@ -463,7 +477,7 @@
 			     struct scatterlist *sglist,
 			     struct scatterlist **sg)
 {
-	struct bio_vec uninitialized_var(bvec), bvprv = { NULL };
+	struct bio_vec bvec, bvprv = { NULL };
 	struct bvec_iter iter;
 	int nsegs = 0;
 	bool new_bio = false;
@@ -548,15 +562,29 @@
 }
 EXPORT_SYMBOL(blk_rq_map_sg);
 
+static inline unsigned int blk_rq_get_max_segments(struct request *rq)
+{
+	if (req_op(rq) == REQ_OP_DISCARD)
+		return queue_max_discard_segments(rq->q);
+	return queue_max_segments(rq->q);
+}
+
 static inline int ll_new_hw_segment(struct request *req, struct bio *bio,
 		unsigned int nr_phys_segs)
 {
-	if (req->nr_phys_segments + nr_phys_segs > queue_max_segments(req->q))
+	if (!blk_cgroup_mergeable(req, bio))
 		goto no_merge;
 
 	if (blk_integrity_merge_bio(req->q, req, bio) == false)
 		goto no_merge;
 
+	/* discard request merge won't add new segment */
+	if (req_op(req) == REQ_OP_DISCARD)
+		return 1;
+
+	if (req->nr_phys_segments + nr_phys_segs > blk_rq_get_max_segments(req))
+		goto no_merge;
+
 	/*
 	 * This will form the start of a new hw segment.  Bump both
 	 * counters.
@@ -635,7 +663,10 @@
 		return 0;
 
 	total_phys_segments = req->nr_phys_segments + next->nr_phys_segments;
-	if (total_phys_segments > queue_max_segments(q))
+	if (total_phys_segments > blk_rq_get_max_segments(req))
+		return 0;
+
+	if (!blk_cgroup_mergeable(req, next->bio))
 		return 0;
 
 	if (blk_integrity_merge_rq(q, req, next) == false)
@@ -690,21 +721,6 @@
 		part_stat_unlock();
 	}
 }
-/*
- * Two cases of handling DISCARD merge:
- * If max_discard_segments > 1, the driver takes every bio
- * as a range and send them to controller together. The ranges
- * needn't to be contiguous.
- * Otherwise, the bios/requests will be handled as same as
- * others which should be contiguous.
- */
-static inline bool blk_discard_mergable(struct request *req)
-{
-	if (req_op(req) == REQ_OP_DISCARD &&
-	    queue_max_discard_segments(req->q) > 1)
-		return true;
-	return false;
-}
 
 static enum elv_merge blk_try_req_merge(struct request *req,
 					struct request *next)
@@ -861,6 +877,10 @@
 	if (rq->rq_disk != bio->bi_disk)
 		return false;
 
+	/* don't merge across cgroup boundaries */
+	if (!blk_cgroup_mergeable(rq, bio))
+		return false;
+
 	/* only merge integrity protected bio into ditto rq */
 	if (blk_integrity_merge_bio(rq->q, rq, bio) == false)
 		return false;
--- linux-ein-5.4.0.orig/block/blk-mq-debugfs.c
+++ linux-ein-5.4.0/block/blk-mq-debugfs.c
@@ -125,6 +125,9 @@
 	QUEUE_FLAG_NAME(REGISTERED),
 	QUEUE_FLAG_NAME(SCSI_PASSTHROUGH),
 	QUEUE_FLAG_NAME(QUIESCED),
+	QUEUE_FLAG_NAME(PCI_P2PDMA),
+	QUEUE_FLAG_NAME(ZONE_RESETALL),
+	QUEUE_FLAG_NAME(RQ_ALLOC_TIME),
 };
 #undef QUEUE_FLAG_NAME
 
@@ -880,6 +883,9 @@
 	char name[20];
 	int i;
 
+	if (!q->debugfs_dir)
+		return;
+
 	snprintf(name, sizeof(name), "hctx%u", hctx->queue_num);
 	hctx->debugfs_dir = debugfs_create_dir(name, q->debugfs_dir);
 
--- linux-ein-5.4.0.orig/block/blk-mq-sched.c
+++ linux-ein-5.4.0/block/blk-mq-sched.c
@@ -59,8 +59,7 @@
 }
 
 /*
- * Mark a hardware queue as needing a restart. For shared queues, maintain
- * a count of how many hardware queues are marked for restart.
+ * Mark a hardware queue as needing a restart.
  */
 void blk_mq_sched_mark_restart_hctx(struct blk_mq_hw_ctx *hctx)
 {
@@ -77,19 +76,32 @@
 		return;
 	clear_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);
 
+	/*
+	 * Order clearing SCHED_RESTART and list_empty_careful(&hctx->dispatch)
+	 * in blk_mq_run_hw_queue(). Its pair is the barrier in
+	 * blk_mq_dispatch_rq_list(). So dispatch code won't see SCHED_RESTART,
+	 * meantime new request added to hctx->dispatch is missed to check in
+	 * blk_mq_run_hw_queue().
+	 */
+	smp_mb();
+
 	blk_mq_run_hw_queue(hctx, true);
 }
 
 /*
  * Only SCSI implements .get_budget and .put_budget, and SCSI restarts
  * its queue by itself in its completion handler, so we don't need to
- * restart queue if .get_budget() returns BLK_STS_NO_RESOURCE.
+ * restart queue if .get_budget() fails to get the budget.
+ *
+ * Returns -EAGAIN if hctx->dispatch was found non-empty and run_work has to
+ * be run again.  This is necessary to avoid starving flushes.
  */
-static void blk_mq_do_dispatch_sched(struct blk_mq_hw_ctx *hctx)
+static int blk_mq_do_dispatch_sched(struct blk_mq_hw_ctx *hctx)
 {
 	struct request_queue *q = hctx->queue;
 	struct elevator_queue *e = q->elevator;
 	LIST_HEAD(rq_list);
+	int ret = 0;
 
 	do {
 		struct request *rq;
@@ -97,6 +109,11 @@
 		if (e->type->ops.has_work && !e->type->ops.has_work(hctx))
 			break;
 
+		if (!list_empty_careful(&hctx->dispatch)) {
+			ret = -EAGAIN;
+			break;
+		}
+
 		if (!blk_mq_get_dispatch_budget(hctx))
 			break;
 
@@ -113,6 +130,8 @@
 		 */
 		list_add(&rq->queuelist, &rq_list);
 	} while (blk_mq_dispatch_rq_list(q, &rq_list, true));
+
+	return ret;
 }
 
 static struct blk_mq_ctx *blk_mq_next_ctx(struct blk_mq_hw_ctx *hctx,
@@ -129,17 +148,26 @@
 /*
  * Only SCSI implements .get_budget and .put_budget, and SCSI restarts
  * its queue by itself in its completion handler, so we don't need to
- * restart queue if .get_budget() returns BLK_STS_NO_RESOURCE.
+ * restart queue if .get_budget() fails to get the budget.
+ *
+ * Returns -EAGAIN if hctx->dispatch was found non-empty and run_work has to
+ * to be run again.  This is necessary to avoid starving flushes.
  */
-static void blk_mq_do_dispatch_ctx(struct blk_mq_hw_ctx *hctx)
+static int blk_mq_do_dispatch_ctx(struct blk_mq_hw_ctx *hctx)
 {
 	struct request_queue *q = hctx->queue;
 	LIST_HEAD(rq_list);
 	struct blk_mq_ctx *ctx = READ_ONCE(hctx->dispatch_from);
+	int ret = 0;
 
 	do {
 		struct request *rq;
 
+		if (!list_empty_careful(&hctx->dispatch)) {
+			ret = -EAGAIN;
+			break;
+		}
+
 		if (!sbitmap_any_bit_set(&hctx->ctx_map))
 			break;
 
@@ -165,21 +193,17 @@
 	} while (blk_mq_dispatch_rq_list(q, &rq_list, true));
 
 	WRITE_ONCE(hctx->dispatch_from, ctx);
+	return ret;
 }
 
-void blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx)
+int __blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx)
 {
 	struct request_queue *q = hctx->queue;
 	struct elevator_queue *e = q->elevator;
 	const bool has_sched_dispatch = e && e->type->ops.dispatch_request;
+	int ret = 0;
 	LIST_HEAD(rq_list);
 
-	/* RCU or SRCU read lock is needed before checking quiesced flag */
-	if (unlikely(blk_mq_hctx_stopped(hctx) || blk_queue_quiesced(q)))
-		return;
-
-	hctx->run++;
-
 	/*
 	 * If we have previous entries on our dispatch list, grab them first for
 	 * more fair dispatch.
@@ -208,19 +232,41 @@
 		blk_mq_sched_mark_restart_hctx(hctx);
 		if (blk_mq_dispatch_rq_list(q, &rq_list, false)) {
 			if (has_sched_dispatch)
-				blk_mq_do_dispatch_sched(hctx);
+				ret = blk_mq_do_dispatch_sched(hctx);
 			else
-				blk_mq_do_dispatch_ctx(hctx);
+				ret = blk_mq_do_dispatch_ctx(hctx);
 		}
 	} else if (has_sched_dispatch) {
-		blk_mq_do_dispatch_sched(hctx);
+		ret = blk_mq_do_dispatch_sched(hctx);
 	} else if (hctx->dispatch_busy) {
 		/* dequeue request one by one from sw queue if queue is busy */
-		blk_mq_do_dispatch_ctx(hctx);
+		ret = blk_mq_do_dispatch_ctx(hctx);
 	} else {
 		blk_mq_flush_busy_ctxs(hctx, &rq_list);
 		blk_mq_dispatch_rq_list(q, &rq_list, false);
 	}
+
+	return ret;
+}
+
+void blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx)
+{
+	struct request_queue *q = hctx->queue;
+
+	/* RCU or SRCU read lock is needed before checking quiesced flag */
+	if (unlikely(blk_mq_hctx_stopped(hctx) || blk_queue_quiesced(q)))
+		return;
+
+	hctx->run++;
+
+	/*
+	 * A return of -EAGAIN is an indication that hctx->dispatch is not
+	 * empty and we must run again in order to avoid starving flushes.
+	 */
+	if (__blk_mq_sched_dispatch_requests(hctx) == -EAGAIN) {
+		if (__blk_mq_sched_dispatch_requests(hctx) == -EAGAIN)
+			blk_mq_run_hw_queue(hctx, true);
+	}
 }
 
 bool blk_mq_sched_try_merge(struct request_queue *q, struct bio *bio,
@@ -325,14 +371,16 @@
 		unsigned int nr_segs)
 {
 	struct elevator_queue *e = q->elevator;
-	struct blk_mq_ctx *ctx = blk_mq_get_ctx(q);
-	struct blk_mq_hw_ctx *hctx = blk_mq_map_queue(q, bio->bi_opf, ctx);
+	struct blk_mq_ctx *ctx;
+	struct blk_mq_hw_ctx *hctx;
 	bool ret = false;
 	enum hctx_type type;
 
 	if (e && e->type->ops.bio_merge)
-		return e->type->ops.bio_merge(hctx, bio, nr_segs);
+		return e->type->ops.bio_merge(q, bio, nr_segs);
 
+	ctx = blk_mq_get_ctx(q);
+	hctx = blk_mq_map_queue(q, bio->bi_opf, ctx);
 	type = hctx->type;
 	if ((hctx->flags & BLK_MQ_F_SHOULD_MERGE) &&
 			!list_empty_careful(&ctx->rq_lists[type])) {
@@ -361,13 +409,19 @@
 				       bool has_sched,
 				       struct request *rq)
 {
-	/* dispatch flush rq directly */
-	if (rq->rq_flags & RQF_FLUSH_SEQ) {
-		spin_lock(&hctx->lock);
-		list_add(&rq->queuelist, &hctx->dispatch);
-		spin_unlock(&hctx->lock);
+	/*
+	 * dispatch flush and passthrough rq directly
+	 *
+	 * passthrough request has to be added to hctx->dispatch directly.
+	 * For some reason, device may be in one situation which can't
+	 * handle FS request, so STS_RESOURCE is always returned and the
+	 * FS request will be added to hctx->dispatch. However passthrough
+	 * request may be required at that time for fixing the problem. If
+	 * passthrough request is added to scheduler queue, there isn't any
+	 * chance to dispatch it given we prioritize requests in hctx->dispatch.
+	 */
+	if ((rq->rq_flags & RQF_FLUSH_SEQ) || blk_rq_is_passthrough(rq))
 		return true;
-	}
 
 	if (has_sched)
 		rq->rq_flags |= RQF_SORTED;
@@ -391,8 +445,32 @@
 
 	WARN_ON(e && (rq->tag != -1));
 
-	if (blk_mq_sched_bypass_insert(hctx, !!e, rq))
+	if (blk_mq_sched_bypass_insert(hctx, !!e, rq)) {
+		/*
+		 * Firstly normal IO request is inserted to scheduler queue or
+		 * sw queue, meantime we add flush request to dispatch queue(
+		 * hctx->dispatch) directly and there is at most one in-flight
+		 * flush request for each hw queue, so it doesn't matter to add
+		 * flush request to tail or front of the dispatch queue.
+		 *
+		 * Secondly in case of NCQ, flush request belongs to non-NCQ
+		 * command, and queueing it will fail when there is any
+		 * in-flight normal IO request(NCQ command). When adding flush
+		 * rq to the front of hctx->dispatch, it is easier to introduce
+		 * extra time to flush rq's latency because of S_SCHED_RESTART
+		 * compared with adding to the tail of dispatch queue, then
+		 * chance of flush merge is increased, and less flush requests
+		 * will be issued to controller. It is observed that ~10% time
+		 * is saved in blktests block/004 on disk attached to AHCI/NCQ
+		 * drive when adding flush rq to the front of hctx->dispatch.
+		 *
+		 * Simply queue flush rq to the front of hctx->dispatch so that
+		 * intensive flush workloads can benefit in case of NCQ HW.
+		 */
+		at_head = (rq->rq_flags & RQF_FLUSH_SEQ) ? true : at_head;
+		blk_mq_request_bypass_insert(rq, at_head, false);
 		goto run;
+	}
 
 	if (e && e->type->ops.insert_requests) {
 		LIST_HEAD(list);
--- linux-ein-5.4.0.orig/block/blk-mq-sched.h
+++ linux-ein-5.4.0/block/blk-mq-sched.h
@@ -66,7 +66,7 @@
 	struct request_queue *q = rq->q;
 	struct elevator_queue *e = q->elevator;
 
-	if (e && e->type->ops.requeue_request)
+	if ((rq->rq_flags & RQF_ELVPRIV) && e && e->type->ops.requeue_request)
 		e->type->ops.requeue_request(rq);
 }
 
--- linux-ein-5.4.0.orig/block/blk-mq-sysfs.c
+++ linux-ein-5.4.0/block/blk-mq-sysfs.c
@@ -36,8 +36,6 @@
 	struct blk_mq_hw_ctx *hctx = container_of(kobj, struct blk_mq_hw_ctx,
 						  kobj);
 
-	cancel_delayed_work_sync(&hctx->run_work);
-
 	if (hctx->flags & BLK_MQ_F_BLOCKING)
 		cleanup_srcu_struct(hctx->srcu);
 	blk_free_flush_queue(hctx->fq);
@@ -166,20 +164,25 @@
 
 static ssize_t blk_mq_hw_sysfs_cpus_show(struct blk_mq_hw_ctx *hctx, char *page)
 {
+	const size_t size = PAGE_SIZE - 1;
 	unsigned int i, first = 1;
-	ssize_t ret = 0;
+	int ret = 0, pos = 0;
 
 	for_each_cpu(i, hctx->cpumask) {
 		if (first)
-			ret += sprintf(ret + page, "%u", i);
+			ret = snprintf(pos + page, size - pos, "%u", i);
 		else
-			ret += sprintf(ret + page, ", %u", i);
+			ret = snprintf(pos + page, size - pos, ", %u", i);
+
+		if (ret >= size - pos)
+			break;
 
 		first = 0;
+		pos += ret;
 	}
 
-	ret += sprintf(ret + page, "\n");
-	return ret;
+	ret = snprintf(pos + page, size + 1 - pos, "\n");
+	return pos + ret;
 }
 
 static struct blk_mq_hw_ctx_sysfs_entry blk_mq_hw_sysfs_nr_tags = {
@@ -247,7 +250,7 @@
 {
 	struct request_queue *q = hctx->queue;
 	struct blk_mq_ctx *ctx;
-	int i, ret;
+	int i, j, ret;
 
 	if (!hctx->nr_ctx)
 		return 0;
@@ -259,9 +262,16 @@
 	hctx_for_each_ctx(hctx, ctx, i) {
 		ret = kobject_add(&ctx->kobj, &hctx->kobj, "cpu%u", ctx->cpu);
 		if (ret)
-			break;
+			goto out;
 	}
 
+	return 0;
+out:
+	hctx_for_each_ctx(hctx, ctx, j) {
+		if (j < i)
+			kobject_del(&ctx->kobj);
+	}
+	kobject_del(&hctx->kobj);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/block/blk-mq.c
+++ linux-ein-5.4.0/block/blk-mq.c
@@ -579,7 +579,14 @@
 	q->mq_ops->complete(rq);
 }
 
-static void __blk_mq_complete_request(struct request *rq)
+/**
+ * blk_mq_complete_request - end I/O on a request
+ * @rq:		the request being processed
+ *
+ * Description:
+ *	Complete a request by scheduling the ->complete_rq operation.
+ **/
+void blk_mq_complete_request(struct request *rq)
 {
 	struct blk_mq_ctx *ctx = rq->mq_ctx;
 	struct request_queue *q = rq->q;
@@ -625,6 +632,7 @@
 	}
 	put_cpu();
 }
+EXPORT_SYMBOL(blk_mq_complete_request);
 
 static void hctx_unlock(struct blk_mq_hw_ctx *hctx, int srcu_idx)
 	__releases(hctx->srcu)
@@ -646,23 +654,6 @@
 		*srcu_idx = srcu_read_lock(hctx->srcu);
 }
 
-/**
- * blk_mq_complete_request - end I/O on a request
- * @rq:		the request being processed
- *
- * Description:
- *	Ends all I/O on a request. It does not handle partial completions.
- *	The actual completion happens out-of-order, through a IPI handler.
- **/
-bool blk_mq_complete_request(struct request *rq)
-{
-	if (unlikely(blk_should_fake_timeout(rq->q)))
-		return false;
-	__blk_mq_complete_request(rq);
-	return true;
-}
-EXPORT_SYMBOL(blk_mq_complete_request);
-
 int blk_mq_request_started(struct request *rq)
 {
 	return blk_mq_rq_state(rq) != MQ_RQ_IDLE;
@@ -733,7 +724,6 @@
 	/* this request will be re-inserted to io scheduler queue */
 	blk_mq_sched_requeue_request(rq);
 
-	BUG_ON(!list_empty(&rq->queuelist));
 	blk_mq_add_to_requeue_list(rq, true, kick_requeue_list);
 }
 EXPORT_SYMBOL(blk_mq_requeue_request);
@@ -761,7 +751,7 @@
 		 * merge.
 		 */
 		if (rq->rq_flags & RQF_DONTPREP)
-			blk_mq_request_bypass_insert(rq, false);
+			blk_mq_request_bypass_insert(rq, false, false);
 		else
 			blk_mq_sched_insert_request(rq, true, false, false);
 	}
@@ -829,10 +819,10 @@
 			       void *priv, bool reserved)
 {
 	/*
-	 * If we find a request that is inflight and the queue matches,
+	 * If we find a request that isn't idle and the queue matches,
 	 * we know the queue is busy. Return false to stop the iteration.
 	 */
-	if (rq->state == MQ_RQ_IN_FLIGHT && rq->q == hctx->queue) {
+	if (blk_mq_request_started(rq) && rq->q == hctx->queue) {
 		bool *busy = priv;
 
 		*busy = true;
@@ -1113,7 +1103,7 @@
 static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx,
 				 struct request *rq)
 {
-	struct sbitmap_queue *sbq = &hctx->tags->bitmap_tags;
+	struct sbitmap_queue *sbq;
 	struct wait_queue_head *wq;
 	wait_queue_entry_t *wait;
 	bool ret;
@@ -1136,6 +1126,10 @@
 	if (!list_empty_careful(&wait->entry))
 		return false;
 
+	if (blk_mq_tag_is_reserved(rq->mq_hctx->sched_tags, rq->internal_tag))
+		sbq = &hctx->tags->breserved_tags;
+	else
+		sbq = &hctx->tags->bitmap_tags;
 	wq = &bt_wait_ptr(sbq, hctx)->wait;
 
 	spin_lock_irq(&wq->lock);
@@ -1205,6 +1199,23 @@
 
 #define BLK_MQ_RESOURCE_DELAY	3		/* ms units */
 
+static void blk_mq_handle_dev_resource(struct request *rq,
+				       struct list_head *list)
+{
+	struct request *next =
+		list_first_entry_or_null(list, struct request, queuelist);
+
+	/*
+	 * If an I/O scheduler has been configured and we got a driver tag for
+	 * the next request already, free it.
+	 */
+	if (next)
+		blk_mq_put_driver_tag(next);
+
+	list_add(&rq->queuelist, list);
+	__blk_mq_requeue_request(rq);
+}
+
 /*
  * Returns true if we did some work AND can potentially do more.
  */
@@ -1216,6 +1227,7 @@
 	bool no_tag = false;
 	int errors, queued;
 	blk_status_t ret = BLK_STS_OK;
+	bool no_budget_avail = false;
 
 	if (list_empty(list))
 		return false;
@@ -1232,8 +1244,11 @@
 		rq = list_first_entry(list, struct request, queuelist);
 
 		hctx = rq->mq_hctx;
-		if (!got_budget && !blk_mq_get_dispatch_budget(hctx))
+		if (!got_budget && !blk_mq_get_dispatch_budget(hctx)) {
+			blk_mq_put_driver_tag(rq);
+			no_budget_avail = true;
 			break;
+		}
 
 		if (!blk_mq_get_driver_tag(rq)) {
 			/*
@@ -1272,17 +1287,7 @@
 
 		ret = q->mq_ops->queue_rq(hctx, &bd);
 		if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE) {
-			/*
-			 * If an I/O scheduler has been configured and we got a
-			 * driver tag for the next request already, free it
-			 * again.
-			 */
-			if (!list_empty(list)) {
-				nxt = list_first_entry(list, struct request, queuelist);
-				blk_mq_put_driver_tag(nxt);
-			}
-			list_add(&rq->queuelist, list);
-			__blk_mq_requeue_request(rq);
+			blk_mq_handle_dev_resource(rq, list);
 			break;
 		}
 
@@ -1313,10 +1318,19 @@
 			q->mq_ops->commit_rqs(hctx);
 
 		spin_lock(&hctx->lock);
-		list_splice_init(list, &hctx->dispatch);
+		list_splice_tail_init(list, &hctx->dispatch);
 		spin_unlock(&hctx->lock);
 
 		/*
+		 * Order adding requests to hctx->dispatch and checking
+		 * SCHED_RESTART flag. The pair of this smp_mb() is the one
+		 * in blk_mq_sched_restart(). Avoid restart code path to
+		 * miss the new added requests to hctx->dispatch, meantime
+		 * SCHED_RESTART is observed here.
+		 */
+		smp_mb();
+
+		/*
 		 * If SCHED_RESTART was set by the caller of this function and
 		 * it is no longer set that means that it was cleared by another
 		 * thread and hence that a queue rerun is needed.
@@ -1338,13 +1352,15 @@
 		 *
 		 * If driver returns BLK_STS_RESOURCE and SCHED_RESTART
 		 * bit is set, run queue after a delay to avoid IO stalls
-		 * that could otherwise occur if the queue is idle.
+		 * that could otherwise occur if the queue is idle.  We'll do
+		 * similar if we couldn't get budget and SCHED_RESTART is set.
 		 */
 		needs_restart = blk_mq_sched_needs_restart(hctx);
 		if (!needs_restart ||
 		    (no_tag && list_empty_careful(&hctx->dispatch_wait.entry)))
 			blk_mq_run_hw_queue(hctx, true);
-		else if (needs_restart && (ret == BLK_STS_RESOURCE))
+		else if (needs_restart && (ret == BLK_STS_RESOURCE ||
+					   no_budget_avail))
 			blk_mq_delay_run_hw_queue(hctx, BLK_MQ_RESOURCE_DELAY);
 
 		blk_mq_update_dispatch_busy(hctx, true);
@@ -1668,12 +1684,16 @@
  * Should only be used carefully, when the caller knows we want to
  * bypass a potential IO scheduler on the target device.
  */
-void blk_mq_request_bypass_insert(struct request *rq, bool run_queue)
+void blk_mq_request_bypass_insert(struct request *rq, bool at_head,
+				  bool run_queue)
 {
 	struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
 
 	spin_lock(&hctx->lock);
-	list_add_tail(&rq->queuelist, &hctx->dispatch);
+	if (at_head)
+		list_add(&rq->queuelist, &hctx->dispatch);
+	else
+		list_add_tail(&rq->queuelist, &hctx->dispatch);
 	spin_unlock(&hctx->lock);
 
 	if (run_queue)
@@ -1863,7 +1883,8 @@
 	if (bypass_insert)
 		return BLK_STS_RESOURCE;
 
-	blk_mq_request_bypass_insert(rq, run_queue);
+	blk_mq_sched_insert_request(rq, false, run_queue, false);
+
 	return BLK_STS_OK;
 }
 
@@ -1879,7 +1900,7 @@
 
 	ret = __blk_mq_try_issue_directly(hctx, rq, cookie, false, true);
 	if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE)
-		blk_mq_request_bypass_insert(rq, true);
+		blk_mq_request_bypass_insert(rq, false, true);
 	else if (ret != BLK_STS_OK)
 		blk_mq_end_request(rq, ret);
 
@@ -1913,7 +1934,7 @@
 		if (ret != BLK_STS_OK) {
 			if (ret == BLK_STS_RESOURCE ||
 					ret == BLK_STS_DEV_RESOURCE) {
-				blk_mq_request_bypass_insert(rq,
+				blk_mq_request_bypass_insert(rq, false,
 							list_empty(list));
 				break;
 			}
@@ -2487,18 +2508,6 @@
 	 * If the cpu isn't present, the cpu is mapped to first hctx.
 	 */
 	for_each_possible_cpu(i) {
-		hctx_idx = set->map[HCTX_TYPE_DEFAULT].mq_map[i];
-		/* unmapped hw queue can be remapped after CPU topo changed */
-		if (!set->tags[hctx_idx] &&
-		    !__blk_mq_alloc_rq_map(set, hctx_idx)) {
-			/*
-			 * If tags initialization fail for some hctx,
-			 * that hctx won't be brought online.  In this
-			 * case, remap the current ctx to hctx[0] which
-			 * is guaranteed to always have tags allocated
-			 */
-			set->map[HCTX_TYPE_DEFAULT].mq_map[i] = 0;
-		}
 
 		ctx = per_cpu_ptr(q->queue_ctx, i);
 		for (j = 0; j < set->nr_maps; j++) {
@@ -2507,6 +2516,18 @@
 						HCTX_TYPE_DEFAULT, i);
 				continue;
 			}
+			hctx_idx = set->map[j].mq_map[i];
+			/* unmapped hw queue can be remapped after CPU topo changed */
+			if (!set->tags[hctx_idx] &&
+			    !__blk_mq_alloc_rq_map(set, hctx_idx)) {
+				/*
+				 * If tags initialization fail for some hctx,
+				 * that hctx won't be brought online.  In this
+				 * case, remap the current ctx to hctx[0] which
+				 * is guaranteed to always have tags allocated
+				 */
+				set->map[j].mq_map[i] = 0;
+			}
 
 			hctx = blk_mq_map_queue_type(q, j, i);
 			ctx->hctxs[j] = hctx;
@@ -2943,10 +2964,12 @@
 /* tags can _not_ be used after returning from blk_mq_exit_queue */
 void blk_mq_exit_queue(struct request_queue *q)
 {
-	struct blk_mq_tag_set	*set = q->tag_set;
+	struct blk_mq_tag_set *set = q->tag_set;
 
-	blk_mq_del_queue_tag_set(q);
+	/* Checks hctx->flags & BLK_MQ_F_TAG_QUEUE_SHARED. */
 	blk_mq_exit_hw_queues(q, set, set->nr_hw_queues);
+	/* May clear BLK_MQ_F_TAG_QUEUE_SHARED in hctx->flags. */
+	blk_mq_del_queue_tag_set(q);
 }
 
 static int __blk_mq_alloc_rq_maps(struct blk_mq_tag_set *set)
@@ -3003,6 +3026,14 @@
 
 static int blk_mq_update_queue_map(struct blk_mq_tag_set *set)
 {
+	/*
+	 * blk_mq_map_queues() and multiple .map_queues() implementations
+	 * expect that set->map[HCTX_TYPE_DEFAULT].nr_queues is set to the
+	 * number of hardware queues.
+	 */
+	if (set->nr_maps == 1)
+		set->map[HCTX_TYPE_DEFAULT].nr_queues = set->nr_hw_queues;
+
 	if (set->ops->map_queues && !is_kdump_kernel()) {
 		int i;
 
@@ -3265,7 +3296,9 @@
 
 	if (set->nr_maps == 1 && nr_hw_queues > nr_cpu_ids)
 		nr_hw_queues = nr_cpu_ids;
-	if (nr_hw_queues < 1 || nr_hw_queues == set->nr_hw_queues)
+	if (nr_hw_queues < 1)
+		return;
+	if (set->nr_maps == 1 && nr_hw_queues == set->nr_hw_queues)
 		return;
 
 	list_for_each_entry(q, &set->tag_list, tag_set_list)
@@ -3290,8 +3323,8 @@
 
 	prev_nr_hw_queues = set->nr_hw_queues;
 	set->nr_hw_queues = nr_hw_queues;
-	blk_mq_update_queue_map(set);
 fallback:
+	blk_mq_update_queue_map(set);
 	list_for_each_entry(q, &set->tag_list, tag_set_list) {
 		blk_mq_realloc_hw_ctxs(set, q);
 		if (q->nr_hw_queues != set->nr_hw_queues) {
--- linux-ein-5.4.0.orig/block/blk-mq.h
+++ linux-ein-5.4.0/block/blk-mq.h
@@ -66,7 +66,8 @@
  */
 void __blk_mq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
 				bool at_head);
-void blk_mq_request_bypass_insert(struct request *rq, bool run_queue);
+void blk_mq_request_bypass_insert(struct request *rq, bool at_head,
+				  bool run_queue);
 void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx,
 				struct list_head *list);
 
--- linux-ein-5.4.0.orig/block/blk-pm.c
+++ linux-ein-5.4.0/block/blk-pm.c
@@ -67,6 +67,10 @@
 
 	WARN_ON_ONCE(q->rpm_status != RPM_ACTIVE);
 
+	spin_lock_irq(&q->queue_lock);
+	q->rpm_status = RPM_SUSPENDING;
+	spin_unlock_irq(&q->queue_lock);
+
 	/*
 	 * Increase the pm_only counter before checking whether any
 	 * non-PM blk_queue_enter() calls are in progress to avoid that any
@@ -89,15 +93,14 @@
 	/* Switch q_usage_counter back to per-cpu mode. */
 	blk_mq_unfreeze_queue(q);
 
-	spin_lock_irq(&q->queue_lock);
-	if (ret < 0)
+	if (ret < 0) {
+		spin_lock_irq(&q->queue_lock);
+		q->rpm_status = RPM_ACTIVE;
 		pm_runtime_mark_last_busy(q->dev);
-	else
-		q->rpm_status = RPM_SUSPENDING;
-	spin_unlock_irq(&q->queue_lock);
+		spin_unlock_irq(&q->queue_lock);
 
-	if (ret)
 		blk_clear_pm_only(q);
+	}
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/block/blk-rq-qos.c
+++ linux-ein-5.4.0/block/blk-rq-qos.c
@@ -266,8 +266,8 @@
 	if (!has_sleeper && acquire_inflight_cb(rqw, private_data))
 		return;
 
-	prepare_to_wait_exclusive(&rqw->wait, &data.wq, TASK_UNINTERRUPTIBLE);
-	has_sleeper = !wq_has_single_sleeper(&rqw->wait);
+	has_sleeper = !prepare_to_wait_exclusive(&rqw->wait, &data.wq,
+						 TASK_UNINTERRUPTIBLE);
 	do {
 		/* The memory barrier in set_task_state saves us here. */
 		if (data.got_token)
--- linux-ein-5.4.0.orig/block/blk-rq-qos.h
+++ linux-ein-5.4.0/block/blk-rq-qos.h
@@ -7,6 +7,7 @@
 #include <linux/blk_types.h>
 #include <linux/atomic.h>
 #include <linux/wait.h>
+#include <linux/blk-mq.h>
 
 #include "blk-mq-debugfs.h"
 
@@ -99,8 +100,21 @@
 
 static inline void rq_qos_add(struct request_queue *q, struct rq_qos *rqos)
 {
+	/*
+	 * No IO can be in-flight when adding rqos, so freeze queue, which
+	 * is fine since we only support rq_qos for blk-mq queue.
+	 *
+	 * Reuse ->queue_lock for protecting against other concurrent
+	 * rq_qos adding/deleting
+	 */
+	blk_mq_freeze_queue(q);
+
+	spin_lock_irq(&q->queue_lock);
 	rqos->next = q->rq_qos;
 	q->rq_qos = rqos;
+	spin_unlock_irq(&q->queue_lock);
+
+	blk_mq_unfreeze_queue(q);
 
 	if (rqos->ops->debugfs_attrs)
 		blk_mq_debugfs_register_rqos(rqos);
@@ -110,12 +124,22 @@
 {
 	struct rq_qos **cur;
 
+	/*
+	 * See comment in rq_qos_add() about freezing queue & using
+	 * ->queue_lock.
+	 */
+	blk_mq_freeze_queue(q);
+
+	spin_lock_irq(&q->queue_lock);
 	for (cur = &q->rq_qos; *cur; cur = &(*cur)->next) {
 		if (*cur == rqos) {
 			*cur = rqos->next;
 			break;
 		}
 	}
+	spin_unlock_irq(&q->queue_lock);
+
+	blk_mq_unfreeze_queue(q);
 
 	blk_mq_debugfs_unregister_rqos(rqos);
 }
--- linux-ein-5.4.0.orig/block/blk-settings.c
+++ linux-ein-5.4.0/block/blk-settings.c
@@ -328,7 +328,7 @@
  *   storage device can address.  The default of 512 covers most
  *   hardware.
  **/
-void blk_queue_logical_block_size(struct request_queue *q, unsigned short size)
+void blk_queue_logical_block_size(struct request_queue *q, unsigned int size)
 {
 	q->limits.logical_block_size = size;
 
@@ -473,6 +473,14 @@
 }
 EXPORT_SYMBOL(blk_queue_stack_limits);
 
+static unsigned int blk_round_down_sectors(unsigned int sectors, unsigned int lbs)
+{
+	sectors = round_down(sectors, lbs >> SECTOR_SHIFT);
+	if (sectors < PAGE_SIZE >> SECTOR_SHIFT)
+		sectors = PAGE_SIZE >> SECTOR_SHIFT;
+	return sectors;
+}
+
 /**
  * blk_stack_limits - adjust queue_limits for stacked devices
  * @t:	the stacking driver limits (top device)
@@ -586,6 +594,10 @@
 		ret = -1;
 	}
 
+	t->max_sectors = blk_round_down_sectors(t->max_sectors, t->logical_block_size);
+	t->max_hw_sectors = blk_round_down_sectors(t->max_hw_sectors, t->logical_block_size);
+	t->max_dev_sectors = blk_round_down_sectors(t->max_dev_sectors, t->logical_block_size);
+
 	/* Discard alignment and granularity */
 	if (b->discard_granularity) {
 		alignment = queue_limit_discard_alignment(b, start);
@@ -664,6 +676,9 @@
 		printk(KERN_NOTICE "%s: Warning: Device %s is misaligned\n",
 		       top, bottom);
 	}
+
+	t->backing_dev_info->io_pages =
+		t->limits.max_sectors >> (PAGE_SHIFT - 9);
 }
 EXPORT_SYMBOL(disk_stack_limits);
 
--- linux-ein-5.4.0.orig/block/blk-sysfs.c
+++ linux-ein-5.4.0/block/blk-sysfs.c
@@ -891,9 +891,16 @@
 
 	blk_free_queue_stats(q->stats);
 
-	if (queue_is_mq(q))
+	if (queue_is_mq(q)) {
+		struct blk_mq_hw_ctx *hctx;
+		int i;
+
 		cancel_delayed_work_sync(&q->requeue_work);
 
+		queue_for_each_hw_ctx(q, hctx, i)
+			cancel_delayed_work_sync(&hctx->run_work);
+	}
+
 	blk_exit_queue(q);
 
 	blk_queue_free_zone_bitmaps(q);
@@ -1053,15 +1060,17 @@
 	 */
 	if (queue_is_mq(q))
 		blk_mq_unregister_dev(disk_to_dev(disk), q);
-
-	kobject_uevent(&q->kobj, KOBJ_REMOVE);
-	kobject_del(&q->kobj);
 	blk_trace_remove_sysfs(disk_to_dev(disk));
 
 	mutex_lock(&q->sysfs_lock);
 	if (q->elevator)
 		elv_unregister_queue(q);
 	mutex_unlock(&q->sysfs_lock);
+
+	/* Now that we've deleted all child objects, we can delete the queue. */
+	kobject_uevent(&q->kobj, KOBJ_REMOVE);
+	kobject_del(&q->kobj);
+
 	mutex_unlock(&q->sysfs_dir_lock);
 
 	kobject_put(&disk_to_dev(disk)->kobj);
--- linux-ein-5.4.0.orig/block/blk-throttle.c
+++ linux-ein-5.4.0/block/blk-throttle.c
@@ -2414,6 +2414,7 @@
 void blk_throtl_exit(struct request_queue *q)
 {
 	BUG_ON(!q->td);
+	del_timer_sync(&q->td->service_queue.pending_timer);
 	throtl_shutdown_wq(q);
 	blkcg_deactivate_policy(q, &blkcg_policy_throtl);
 	free_percpu(q->td->latency_buckets[READ]);
--- linux-ein-5.4.0.orig/block/blk-timeout.c
+++ linux-ein-5.4.0/block/blk-timeout.c
@@ -20,13 +20,11 @@
 }
 __setup("fail_io_timeout=", setup_fail_io_timeout);
 
-int blk_should_fake_timeout(struct request_queue *q)
+bool __blk_should_fake_timeout(struct request_queue *q)
 {
-	if (!test_bit(QUEUE_FLAG_FAIL_IO, &q->queue_flags))
-		return 0;
-
 	return should_fail(&fail_io_timeout, 1);
 }
+EXPORT_SYMBOL_GPL(__blk_should_fake_timeout);
 
 static int __init fail_io_timeout_debugfs(void)
 {
--- linux-ein-5.4.0.orig/block/blk-wbt.c
+++ linux-ein-5.4.0/block/blk-wbt.c
@@ -77,7 +77,8 @@
 
 static inline bool rwb_enabled(struct rq_wb *rwb)
 {
-	return rwb && rwb->wb_normal != 0;
+	return rwb && rwb->enable_state != WBT_STATE_OFF_DEFAULT &&
+		      rwb->wb_normal != 0;
 }
 
 static void wb_timestamp(struct rq_wb *rwb, unsigned long *var)
@@ -644,9 +645,13 @@
 void wbt_enable_default(struct request_queue *q)
 {
 	struct rq_qos *rqos = wbt_rq_qos(q);
+
 	/* Throttling already enabled? */
-	if (rqos)
+	if (rqos) {
+		if (RQWB(rqos)->enable_state == WBT_STATE_OFF_DEFAULT)
+			RQWB(rqos)->enable_state = WBT_STATE_ON_DEFAULT;
 		return;
+	}
 
 	/* Queue not registered? Maybe shutting down... */
 	if (!blk_queue_registered(q))
@@ -710,7 +715,7 @@
 	rwb = RQWB(rqos);
 	if (rwb->enable_state == WBT_STATE_ON_DEFAULT) {
 		blk_stat_deactivate(rwb->cb);
-		rwb->wb_normal = 0;
+		rwb->enable_state = WBT_STATE_OFF_DEFAULT;
 	}
 }
 EXPORT_SYMBOL_GPL(wbt_disable_default);
--- linux-ein-5.4.0.orig/block/blk-wbt.h
+++ linux-ein-5.4.0/block/blk-wbt.h
@@ -34,6 +34,7 @@
 enum {
 	WBT_STATE_ON_DEFAULT	= 1,
 	WBT_STATE_ON_MANUAL	= 2,
+	WBT_STATE_OFF_DEFAULT
 };
 
 struct rq_wb {
--- linux-ein-5.4.0.orig/block/blk-zoned.c
+++ linux-ein-5.4.0/block/blk-zoned.c
@@ -202,32 +202,14 @@
 }
 EXPORT_SYMBOL_GPL(blkdev_report_zones);
 
-/*
- * Special case of zone reset operation to reset all zones in one command,
- * useful for applications like mkfs.
- */
-static int __blkdev_reset_all_zones(struct block_device *bdev, gfp_t gfp_mask)
-{
-	struct bio *bio = bio_alloc(gfp_mask, 0);
-	int ret;
-
-	/* across the zones operations, don't need any sectors */
-	bio_set_dev(bio, bdev);
-	bio_set_op_attrs(bio, REQ_OP_ZONE_RESET_ALL, 0);
-
-	ret = submit_bio_wait(bio);
-	bio_put(bio);
-
-	return ret;
-}
-
 static inline bool blkdev_allow_reset_all_zones(struct block_device *bdev,
+						sector_t sector,
 						sector_t nr_sectors)
 {
 	if (!blk_queue_zone_resetall(bdev_get_queue(bdev)))
 		return false;
 
-	if (nr_sectors != part_nr_sects_read(bdev->bd_part))
+	if (sector || nr_sectors != part_nr_sects_read(bdev->bd_part))
 		return false;
 	/*
 	 * REQ_OP_ZONE_RESET_ALL can be executed only if the block device is
@@ -271,9 +253,6 @@
 		/* Out of range */
 		return -EINVAL;
 
-	if (blkdev_allow_reset_all_zones(bdev, nr_sectors))
-		return  __blkdev_reset_all_zones(bdev, gfp_mask);
-
 	/* Check alignment (handle eventual smaller last zone) */
 	zone_sectors = blk_queue_zone_sectors(q);
 	if (sector & (zone_sectors - 1))
@@ -285,17 +264,24 @@
 
 	blk_start_plug(&plug);
 	while (sector < end_sector) {
-
 		bio = blk_next_bio(bio, 0, gfp_mask);
-		bio->bi_iter.bi_sector = sector;
 		bio_set_dev(bio, bdev);
-		bio_set_op_attrs(bio, REQ_OP_ZONE_RESET, 0);
 
+		/*
+		 * Special case for the zone reset operation that reset all
+		 * zones, this is useful for applications like mkfs.
+		 */
+		if (blkdev_allow_reset_all_zones(bdev, sector, nr_sectors)) {
+			bio->bi_opf = REQ_OP_ZONE_RESET_ALL;
+			break;
+		}
+
+		bio->bi_opf = REQ_OP_ZONE_RESET;
+		bio->bi_iter.bi_sector = sector;
 		sector += zone_sectors;
 
 		/* This may take a while, so be nice to others */
 		cond_resched();
-
 	}
 
 	ret = submit_bio_wait(bio);
@@ -330,9 +316,6 @@
 	if (!blk_queue_is_zoned(q))
 		return -ENOTTY;
 
-	if (!capable(CAP_SYS_ADMIN))
-		return -EACCES;
-
 	if (copy_from_user(&rep, argp, sizeof(struct blk_zone_report)))
 		return -EFAULT;
 
@@ -388,9 +371,6 @@
 	if (!blk_queue_is_zoned(q))
 		return -ENOTTY;
 
-	if (!capable(CAP_SYS_ADMIN))
-		return -EACCES;
-
 	if (!(mode & FMODE_WRITE))
 		return -EBADF;
 
--- linux-ein-5.4.0.orig/block/blk.h
+++ linux-ein-5.4.0/block/blk.h
@@ -30,6 +30,7 @@
 	 * at the same time
 	 */
 	struct request		*orig_rq;
+	struct lock_class_key	key;
 	spinlock_t		mq_flush_lock;
 };
 
@@ -121,6 +122,7 @@
 #ifdef CONFIG_BLK_DEV_INTEGRITY
 void blk_flush_integrity(void);
 bool __bio_integrity_endio(struct bio *);
+void bio_integrity_free(struct bio *bio);
 static inline bool bio_integrity_endio(struct bio *bio)
 {
 	if (bio_integrity(bio))
@@ -166,6 +168,9 @@
 {
 	return true;
 }
+static inline void bio_integrity_free(struct bio *bio)
+{
+}
 #endif /* CONFIG_BLK_DEV_INTEGRITY */
 
 unsigned long blk_rq_timeout(unsigned long timeout);
@@ -209,17 +214,9 @@
 
 struct hd_struct *__disk_get_part(struct gendisk *disk, int partno);
 
-#ifdef CONFIG_FAIL_IO_TIMEOUT
-int blk_should_fake_timeout(struct request_queue *);
 ssize_t part_timeout_show(struct device *, struct device_attribute *, char *);
 ssize_t part_timeout_store(struct device *, struct device_attribute *,
 				const char *, size_t);
-#else
-static inline int blk_should_fake_timeout(struct request_queue *q)
-{
-	return 0;
-}
-#endif
 
 void __blk_queue_split(struct request_queue *q, struct bio **bio,
 		unsigned int *nr_segs);
--- linux-ein-5.4.0.orig/block/bsg-lib.c
+++ linux-ein-5.4.0/block/bsg-lib.c
@@ -181,9 +181,12 @@
 void bsg_job_done(struct bsg_job *job, int result,
 		  unsigned int reply_payload_rcv_len)
 {
+	struct request *rq = blk_mq_rq_from_pdu(job);
+
 	job->result = result;
 	job->reply_payload_rcv_len = reply_payload_rcv_len;
-	blk_mq_complete_request(blk_mq_rq_from_pdu(job));
+	if (likely(!blk_should_fake_timeout(rq->q)))
+		blk_mq_complete_request(rq);
 }
 EXPORT_SYMBOL_GPL(bsg_job_done);
 
@@ -266,7 +269,7 @@
 	struct request *req = bd->rq;
 	struct bsg_set *bset =
 		container_of(q->tag_set, struct bsg_set, tag_set);
-	int sts = BLK_STS_IOERR;
+	blk_status_t sts = BLK_STS_IOERR;
 	int ret;
 
 	blk_mq_start_request(req);
--- linux-ein-5.4.0.orig/block/bsg.c
+++ linux-ein-5.4.0/block/bsg.c
@@ -157,8 +157,10 @@
 		return PTR_ERR(rq);
 
 	ret = q->bsg_dev.ops->fill_hdr(rq, &hdr, mode);
-	if (ret)
+	if (ret) {
+		blk_put_request(rq);
 		return ret;
+	}
 
 	rq->timeout = msecs_to_jiffies(hdr.timeout);
 	if (!rq->timeout)
@@ -369,10 +371,13 @@
 	case SG_GET_RESERVED_SIZE:
 	case SG_SET_RESERVED_SIZE:
 	case SG_EMULATED_HOST:
-	case SCSI_IOCTL_SEND_COMMAND:
 		return scsi_cmd_ioctl(bd->queue, NULL, file->f_mode, cmd, uarg);
 	case SG_IO:
 		return bsg_sg_io(bd->queue, file->f_mode, uarg);
+	case SCSI_IOCTL_SEND_COMMAND:
+		pr_warn_ratelimited("%s: calling unsupported SCSI_IOCTL_SEND_COMMAND\n",
+				current->comm);
+		return -EINVAL;
 	default:
 		return -ENOTTY;
 	}
--- linux-ein-5.4.0.orig/block/compat_ioctl.c
+++ linux-ein-5.4.0/block/compat_ioctl.c
@@ -6,6 +6,7 @@
 #include <linux/compat.h>
 #include <linux/elevator.h>
 #include <linux/hdreg.h>
+#include <linux/pr.h>
 #include <linux/slab.h>
 #include <linux/syscalls.h>
 #include <linux/types.h>
@@ -354,6 +355,10 @@
 	 * but we call blkdev_ioctl, which gets the lock for us
 	 */
 	case BLKRRPART:
+	case BLKREPORTZONE:
+	case BLKRESETZONE:
+	case BLKGETZONESZ:
+	case BLKGETNRZONES:
 		return blkdev_ioctl(bdev, mode, cmd,
 				(unsigned long)compat_ptr(arg));
 	case BLKBSZSET_32:
@@ -388,7 +393,7 @@
 		return 0;
 	case BLKGETSIZE:
 		size = i_size_read(bdev->bd_inode);
-		if ((size >> 9) > ~0UL)
+		if ((size >> 9) > ~(compat_ulong_t)0)
 			return -EFBIG;
 		return compat_put_ulong(arg, size >> 9);
 
@@ -401,6 +406,14 @@
 	case BLKTRACETEARDOWN: /* compatible */
 		ret = blk_trace_ioctl(bdev, cmd, compat_ptr(arg));
 		return ret;
+	case IOC_PR_REGISTER:
+	case IOC_PR_RESERVE:
+	case IOC_PR_RELEASE:
+	case IOC_PR_PREEMPT:
+	case IOC_PR_PREEMPT_ABORT:
+	case IOC_PR_CLEAR:
+		return blkdev_ioctl(bdev, mode, cmd,
+				(unsigned long)compat_ptr(arg));
 	default:
 		if (disk->fops->compat_ioctl)
 			ret = disk->fops->compat_ioctl(bdev, mode, cmd, arg);
--- linux-ein-5.4.0.orig/block/elevator.c
+++ linux-ein-5.4.0/block/elevator.c
@@ -337,6 +337,9 @@
 	__rq = elv_rqhash_find(q, bio->bi_iter.bi_sector);
 	if (__rq && elv_bio_merge_ok(__rq, bio)) {
 		*req = __rq;
+
+		if (blk_discard_mergable(__rq))
+			return ELEVATOR_DISCARD_MERGE;
 		return ELEVATOR_BACK_MERGE;
 	}
 
@@ -522,8 +525,6 @@
 		kobject_del(&e->kobj);
 
 		e->registered = 0;
-		/* Re-enable throttling in case elevator disabled it */
-		wbt_enable_default(q);
 	}
 }
 
--- linux-ein-5.4.0.orig/block/genhd.c
+++ linux-ein-5.4.0/block/genhd.c
@@ -222,14 +222,17 @@
 		part = rcu_dereference(ptbl->part[piter->idx]);
 		if (!part)
 			continue;
+		get_device(part_to_dev(part));
+		piter->part = part;
 		if (!part_nr_sects_read(part) &&
 		    !(piter->flags & DISK_PITER_INCL_EMPTY) &&
 		    !(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
-		      piter->idx == 0))
+		      piter->idx == 0)) {
+			put_device(part_to_dev(part));
+			piter->part = NULL;
 			continue;
+		}
 
-		get_device(part_to_dev(part));
-		piter->part = part;
 		piter->idx += inc;
 		break;
 	}
@@ -634,10 +637,8 @@
 	disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj);
 	disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
 
-	if (disk->flags & GENHD_FL_HIDDEN) {
-		dev_set_uevent_suppress(ddev, 0);
+	if (disk->flags & GENHD_FL_HIDDEN)
 		return;
-	}
 
 	/* No minors to use for partitions */
 	if (!disk_part_scan_enabled(disk))
--- linux-ein-5.4.0.orig/block/ioprio.c
+++ linux-ein-5.4.0/block/ioprio.c
@@ -207,6 +207,7 @@
 				pgrp = task_pgrp(current);
 			else
 				pgrp = find_vpid(who);
+			read_lock(&tasklist_lock);
 			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
 				tmpio = get_task_ioprio(p);
 				if (tmpio < 0)
@@ -216,6 +217,8 @@
 				else
 					ret = ioprio_best(ret, tmpio);
 			} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
+			read_unlock(&tasklist_lock);
+
 			break;
 		case IOPRIO_WHO_USER:
 			uid = make_kuid(current_user_ns(), who);
--- linux-ein-5.4.0.orig/block/kyber-iosched.c
+++ linux-ein-5.4.0/block/kyber-iosched.c
@@ -562,11 +562,12 @@
 	}
 }
 
-static bool kyber_bio_merge(struct blk_mq_hw_ctx *hctx, struct bio *bio,
+static bool kyber_bio_merge(struct request_queue *q, struct bio *bio,
 		unsigned int nr_segs)
 {
+	struct blk_mq_ctx *ctx = blk_mq_get_ctx(q);
+	struct blk_mq_hw_ctx *hctx = blk_mq_map_queue(q, bio->bi_opf, ctx);
 	struct kyber_hctx_data *khd = hctx->sched_data;
-	struct blk_mq_ctx *ctx = blk_mq_get_ctx(hctx->queue);
 	struct kyber_ctx_queue *kcq = &khd->kcqs[ctx->index_hw[hctx->type]];
 	unsigned int sched_domain = kyber_sched_domain(bio->bi_opf);
 	struct list_head *rq_list = &kcq->rq_list[sched_domain];
--- linux-ein-5.4.0.orig/block/mq-deadline.c
+++ linux-ein-5.4.0/block/mq-deadline.c
@@ -452,6 +452,8 @@
 
 		if (elv_bio_merge_ok(__rq, bio)) {
 			*rq = __rq;
+			if (blk_discard_mergable(__rq))
+				return ELEVATOR_DISCARD_MERGE;
 			return ELEVATOR_FRONT_MERGE;
 		}
 	}
@@ -459,10 +461,9 @@
 	return ELEVATOR_NO_MERGE;
 }
 
-static bool dd_bio_merge(struct blk_mq_hw_ctx *hctx, struct bio *bio,
+static bool dd_bio_merge(struct request_queue *q, struct bio *bio,
 		unsigned int nr_segs)
 {
-	struct request_queue *q = hctx->queue;
 	struct deadline_data *dd = q->elevator->elevator_data;
 	struct request *free = NULL;
 	bool ret;
--- linux-ein-5.4.0.orig/block/partition-generic.c
+++ linux-ein-5.4.0/block/partition-generic.c
@@ -272,6 +272,7 @@
 	struct disk_part_tbl *ptbl =
 		rcu_dereference_protected(disk->part_tbl, 1);
 	struct hd_struct *part;
+	struct block_device *bdev;
 
 	if (partno >= ptbl->len)
 		return;
@@ -292,6 +293,12 @@
 	 * "in-use" until we really free the gendisk.
 	 */
 	blk_invalidate_devt(part_devt(part));
+
+	bdev = bdget(part_devt(part));
+	if (bdev) {
+		remove_inode_hash(bdev->bd_inode);
+		bdput(bdev);
+	}
 	hd_struct_kill(part);
 }
 
--- linux-ein-5.4.0.orig/block/partitions/amiga.c
+++ linux-ein-5.4.0/block/partitions/amiga.c
@@ -11,11 +11,19 @@
 #define pr_fmt(fmt) fmt
 
 #include <linux/types.h>
+#include <linux/mm_types.h>
+#include <linux/overflow.h>
 #include <linux/affs_hardblocks.h>
 
 #include "check.h"
 #include "amiga.h"
 
+/* magic offsets in partition DosEnvVec */
+#define NR_HD	3
+#define NR_SECT	5
+#define LO_CYL	9
+#define HI_CYL	10
+
 static __inline__ u32
 checksum_block(__be32 *m, int size)
 {
@@ -32,8 +40,12 @@
 	unsigned char *data;
 	struct RigidDiskBlock *rdb;
 	struct PartitionBlock *pb;
-	int start_sect, nr_sects, blk, part, res = 0;
-	int blksize = 1;	/* Multiplier for disk block size */
+	u64 start_sect, nr_sects;
+	sector_t blk, end_sect;
+	u32 cylblk;		/* rdb_CylBlocks = nr_heads*sect_per_track */
+	u32 nr_hd, nr_sect, lo_cyl, hi_cyl;
+	int part, res = 0;
+	unsigned int blksize = 1;	/* Multiplier for disk block size */
 	int slot = 1;
 	char b[BDEVNAME_SIZE];
 
@@ -43,7 +55,7 @@
 		data = read_part_sector(state, blk, &sect);
 		if (!data) {
 			if (warn_no_part)
-				pr_err("Dev %s: unable to read RDB block %d\n",
+				pr_err("Dev %s: unable to read RDB block %llu\n",
 				       bdevname(state->bdev, b), blk);
 			res = -1;
 			goto rdb_done;
@@ -60,12 +72,12 @@
 		*(__be32 *)(data+0xdc) = 0;
 		if (checksum_block((__be32 *)data,
 				be32_to_cpu(rdb->rdb_SummedLongs) & 0x7F)==0) {
-			pr_err("Trashed word at 0xd0 in block %d ignored in checksum calculation\n",
+			pr_err("Trashed word at 0xd0 in block %llu ignored in checksum calculation\n",
 			       blk);
 			break;
 		}
 
-		pr_err("Dev %s: RDB in block %d has bad checksum\n",
+		pr_err("Dev %s: RDB in block %llu has bad checksum\n",
 		       bdevname(state->bdev, b), blk);
 	}
 
@@ -81,12 +93,17 @@
 	}
 	blk = be32_to_cpu(rdb->rdb_PartitionList);
 	put_dev_sector(sect);
-	for (part = 1; blk>0 && part<=16; part++, put_dev_sector(sect)) {
-		blk *= blksize;	/* Read in terms partition table understands */
+	for (part = 1; (s32) blk>0 && part<=16; part++, put_dev_sector(sect)) {
+		/* Read in terms partition table understands */
+		if (check_mul_overflow(blk, (sector_t) blksize, &blk)) {
+			pr_err("Dev %s: overflow calculating partition block %llu! Skipping partitions %u and beyond\n",
+				bdevname(state->bdev, b), blk, part);
+			break;
+		}
 		data = read_part_sector(state, blk, &sect);
 		if (!data) {
 			if (warn_no_part)
-				pr_err("Dev %s: unable to read partition block %d\n",
+				pr_err("Dev %s: unable to read partition block %llu\n",
 				       bdevname(state->bdev, b), blk);
 			res = -1;
 			goto rdb_done;
@@ -98,19 +115,70 @@
 		if (checksum_block((__be32 *)pb, be32_to_cpu(pb->pb_SummedLongs) & 0x7F) != 0 )
 			continue;
 
-		/* Tell Kernel about it */
+		/* RDB gives us more than enough rope to hang ourselves with,
+		 * many times over (2^128 bytes if all fields max out).
+		 * Some careful checks are in order, so check for potential
+		 * overflows.
+		 * We are multiplying four 32 bit numbers to one sector_t!
+		 */
+
+		nr_hd   = be32_to_cpu(pb->pb_Environment[NR_HD]);
+		nr_sect = be32_to_cpu(pb->pb_Environment[NR_SECT]);
+
+		/* CylBlocks is total number of blocks per cylinder */
+		if (check_mul_overflow(nr_hd, nr_sect, &cylblk)) {
+			pr_err("Dev %s: heads*sects %u overflows u32, skipping partition!\n",
+				bdevname(state->bdev, b), cylblk);
+			continue;
+		}
+
+		/* check for consistency with RDB defined CylBlocks */
+		if (cylblk > be32_to_cpu(rdb->rdb_CylBlocks)) {
+			pr_warn("Dev %s: cylblk %u > rdb_CylBlocks %u!\n",
+				bdevname(state->bdev, b), cylblk,
+				be32_to_cpu(rdb->rdb_CylBlocks));
+		}
+
+		/* RDB allows for variable logical block size -
+		 * normalize to 512 byte blocks and check result.
+		 */
+
+		if (check_mul_overflow(cylblk, blksize, &cylblk)) {
+			pr_err("Dev %s: partition %u bytes per cyl. overflows u32, skipping partition!\n",
+				bdevname(state->bdev, b), part);
+			continue;
+		}
+
+		/* Calculate partition start and end. Limit of 32 bit on cylblk
+		 * guarantees no overflow occurs if LBD support is enabled.
+		 */
+
+		lo_cyl = be32_to_cpu(pb->pb_Environment[LO_CYL]);
+		start_sect = ((u64) lo_cyl * cylblk);
+
+		hi_cyl = be32_to_cpu(pb->pb_Environment[HI_CYL]);
+		nr_sects = (((u64) hi_cyl - lo_cyl + 1) * cylblk);
 
-		nr_sects = (be32_to_cpu(pb->pb_Environment[10]) + 1 -
-			    be32_to_cpu(pb->pb_Environment[9])) *
-			   be32_to_cpu(pb->pb_Environment[3]) *
-			   be32_to_cpu(pb->pb_Environment[5]) *
-			   blksize;
 		if (!nr_sects)
 			continue;
-		start_sect = be32_to_cpu(pb->pb_Environment[9]) *
-			     be32_to_cpu(pb->pb_Environment[3]) *
-			     be32_to_cpu(pb->pb_Environment[5]) *
-			     blksize;
+
+		/* Warn user if partition end overflows u32 (AmigaDOS limit) */
+
+		if ((start_sect + nr_sects) > UINT_MAX) {
+			pr_warn("Dev %s: partition %u (%llu-%llu) needs 64 bit device support!\n",
+				bdevname(state->bdev, b), part,
+				start_sect, start_sect + nr_sects);
+		}
+
+		if (check_add_overflow(start_sect, nr_sects, &end_sect)) {
+			pr_err("Dev %s: partition %u (%llu-%llu) needs LBD device support, skipping partition!\n",
+				bdevname(state->bdev, b), part,
+				start_sect, end_sect);
+			continue;
+		}
+
+		/* Tell Kernel about it */
+
 		put_partition(state,slot++,start_sect,nr_sects);
 		{
 			/* Be even more informative to aid mounting */
--- linux-ein-5.4.0.orig/block/sed-opal.c
+++ linux-ein-5.4.0/block/sed-opal.c
@@ -88,8 +88,8 @@
 	u64 lowest_lba;
 
 	size_t pos;
-	u8 cmd[IO_BUFFER_LENGTH];
-	u8 resp[IO_BUFFER_LENGTH];
+	u8 *cmd;
+	u8 *resp;
 
 	struct parsed_resp parsed;
 	size_t prev_d_len;
@@ -2019,6 +2019,8 @@
 		return;
 
 	clean_opal_dev(dev);
+	kfree(dev->resp);
+	kfree(dev->cmd);
 	kfree(dev);
 }
 EXPORT_SYMBOL(free_opal_dev);
@@ -2031,17 +2033,39 @@
 	if (!dev)
 		return NULL;
 
+	/*
+	 * Presumably DMA-able buffers must be cache-aligned. Kmalloc makes
+	 * sure the allocated buffer is DMA-safe in that regard.
+	 */
+	dev->cmd = kmalloc(IO_BUFFER_LENGTH, GFP_KERNEL);
+	if (!dev->cmd)
+		goto err_free_dev;
+
+	dev->resp = kmalloc(IO_BUFFER_LENGTH, GFP_KERNEL);
+	if (!dev->resp)
+		goto err_free_cmd;
+
 	INIT_LIST_HEAD(&dev->unlk_lst);
 	mutex_init(&dev->dev_lock);
 	dev->data = data;
 	dev->send_recv = send_recv;
 	if (check_opal_support(dev) != 0) {
 		pr_debug("Opal is not supported on this device\n");
-		kfree(dev);
-		return NULL;
+		goto err_free_resp;
 	}
 
 	return dev;
+
+err_free_resp:
+	kfree(dev->resp);
+
+err_free_cmd:
+	kfree(dev->cmd);
+
+err_free_dev:
+	kfree(dev);
+
+	return NULL;
 }
 EXPORT_SYMBOL(init_opal_dev);
 
--- linux-ein-5.4.0.orig/certs/Kconfig
+++ linux-ein-5.4.0/certs/Kconfig
@@ -83,4 +83,21 @@
 	  wrapper to incorporate the list into the kernel.  Each <hash> should
 	  be a string of hex digits.
 
+config SYSTEM_REVOCATION_LIST
+	bool "Provide system-wide ring of revocation certificates"
+	depends on SYSTEM_BLACKLIST_KEYRING
+	depends on PKCS7_MESSAGE_PARSER=y
+	help
+	  If set, this allows revocation certificates to be stored in the
+	  blacklist keyring and implements a hook whereby a PKCS#7 message can
+	  be checked to see if it matches such a certificate.
+
+config SYSTEM_REVOCATION_KEYS
+	string "X.509 certificates to be preloaded into the system blacklist keyring"
+	depends on SYSTEM_REVOCATION_LIST
+	help
+	  If set, this option should be the filename of a PEM-formatted file
+	  containing X.509 certificates to be included in the default blacklist
+	  keyring.
+
 endmenu
--- linux-ein-5.4.0.orig/certs/Makefile
+++ linux-ein-5.4.0/certs/Makefile
@@ -3,8 +3,9 @@
 # Makefile for the linux kernel signature checking certificates.
 #
 
-obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system_keyring.o system_certificates.o
-obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist.o
+obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system_keyring.o system_certificates.o common.o
+obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist.o common.o
+obj-$(CONFIG_SYSTEM_REVOCATION_LIST) += revocation_certificates.o
 ifneq ($(CONFIG_SYSTEM_BLACKLIST_HASH_LIST),"")
 obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_hashes.o
 else
@@ -29,7 +30,7 @@
 	$(call if_changed,extract_certs,$(SYSTEM_TRUSTED_KEYS_SRCPREFIX)$(CONFIG_SYSTEM_TRUSTED_KEYS))
 endif # CONFIG_SYSTEM_TRUSTED_KEYRING
 
-clean-files := x509_certificate_list .x509.list
+clean-files := x509_certificate_list .x509.list x509_revocation_list
 
 ifeq ($(CONFIG_MODULE_SIG),y)
 ###############################################################################
@@ -46,11 +47,19 @@
 redirect_openssl	= 2>&1
 quiet_redirect_openssl	= 2>&1
 silent_redirect_openssl = 2>/dev/null
+openssl_available       = $(shell openssl help 2>/dev/null && echo yes)
 
 # We do it this way rather than having a boolean option for enabling an
 # external private key, because 'make randconfig' might enable such a
 # boolean option and we unfortunately can't make it depend on !RANDCONFIG.
 ifeq ($(CONFIG_MODULE_SIG_KEY),"certs/signing_key.pem")
+
+ifeq ($(openssl_available),yes)
+X509TEXT=$(shell openssl x509 -in "certs/signing_key.pem" -text 2>/dev/null)
+
+$(if $(findstring rsaEncryption,$(X509TEXT)),,$(shell rm -f "certs/signing_key.pem"))
+endif
+
 $(obj)/signing_key.pem: $(obj)/x509.genkey
 	@$(kecho) "###"
 	@$(kecho) "### Now generating an X.509 key pair to be used for signing modules."
@@ -104,3 +113,17 @@
 $(obj)/signing_key.x509: scripts/extract-cert $(X509_DEP) FORCE
 	$(call if_changed,extract_certs,$(MODULE_SIG_KEY_SRCPREFIX)$(CONFIG_MODULE_SIG_KEY))
 endif # CONFIG_MODULE_SIG
+
+ifeq ($(CONFIG_SYSTEM_REVOCATION_LIST),y)
+
+$(eval $(call config_filename,SYSTEM_REVOCATION_KEYS))
+
+$(obj)/revocation_certificates.o: $(obj)/x509_revocation_list
+
+quiet_cmd_extract_certs  = EXTRACT_CERTS   $(patsubst "%",%,$(2))
+      cmd_extract_certs  = scripts/extract-cert $(2) $@
+
+targets += x509_revocation_list
+$(obj)/x509_revocation_list: scripts/extract-cert $(SYSTEM_REVOCATION_KEYS_SRCPREFIX)$(SYSTEM_REVOCATION_KEYS_FILENAME) FORCE
+	$(call if_changed,extract_certs,$(SYSTEM_REVOCATION_KEYS_SRCPREFIX)$(CONFIG_SYSTEM_REVOCATION_KEYS))
+endif
--- linux-ein-5.4.0.orig/certs/blacklist.c
+++ linux-ein-5.4.0/certs/blacklist.c
@@ -16,9 +16,15 @@
 #include <linux/seq_file.h>
 #include <keys/system_keyring.h>
 #include "blacklist.h"
+#include "common.h"
 
 static struct key *blacklist_keyring;
 
+#ifdef CONFIG_SYSTEM_REVOCATION_LIST
+extern __initconst const u8 revocation_certificate_list[];
+extern __initconst const unsigned long revocation_certificate_list_size;
+#endif
+
 /*
  * The description must be a type prefix, a colon and then an even number of
  * hex digits.  The hash is kept in the description.
@@ -135,6 +141,61 @@
 }
 EXPORT_SYMBOL_GPL(is_hash_blacklisted);
 
+int is_binary_blacklisted(const u8 *hash, size_t hash_len)
+{
+	if (is_hash_blacklisted(hash, hash_len, "bin") == -EKEYREJECTED)
+		return -EPERM;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(is_binary_blacklisted);
+
+#ifdef CONFIG_SYSTEM_REVOCATION_LIST
+/**
+ * add_key_to_revocation_list - Add a revocation certificate to the blacklist
+ * @data: The data blob containing the certificate
+ * @size: The size of data blob
+ */
+int add_key_to_revocation_list(const char *data, size_t size)
+{
+	key_ref_t key;
+
+	key = key_create_or_update(make_key_ref(blacklist_keyring, true),
+				   "asymmetric",
+				   NULL,
+				   data,
+				   size,
+				   ((KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_VIEW),
+				   KEY_ALLOC_NOT_IN_QUOTA | KEY_ALLOC_BUILT_IN);
+
+	if (IS_ERR(key)) {
+		pr_err("Problem with revocation key (%ld)\n", PTR_ERR(key));
+		return PTR_ERR(key);
+	} else {
+		pr_notice("Revoked X.509 cert '%s'\n",
+			  key_ref_to_ptr(key)->description);
+	}
+
+	return 0;
+}
+
+/**
+ * is_key_on_revocation_list - Determine if the key for a PKCS#7 message is revoked
+ * @pkcs7: The PKCS#7 message to check
+ */
+int is_key_on_revocation_list(struct pkcs7_message *pkcs7)
+{
+	int ret;
+
+	ret = pkcs7_validate_trust(pkcs7, blacklist_keyring);
+
+	if (ret == 0)
+		return -EKEYREJECTED;
+
+	return -ENOKEY;
+}
+#endif
+
 /*
  * Initialise the blacklist
  */
@@ -153,7 +214,7 @@
 			      KEY_USR_VIEW | KEY_USR_READ |
 			      KEY_USR_SEARCH,
 			      KEY_ALLOC_NOT_IN_QUOTA |
-			      KEY_FLAG_KEEP,
+			      KEY_ALLOC_SET_KEEP,
 			      NULL, NULL);
 	if (IS_ERR(blacklist_keyring))
 		panic("Can't allocate system blacklist keyring\n");
@@ -168,3 +229,18 @@
  * Must be initialised before we try and load the keys into the keyring.
  */
 device_initcall(blacklist_init);
+
+#ifdef CONFIG_SYSTEM_REVOCATION_LIST
+/*
+ * Load the compiled-in list of revocation X.509 certificates.
+ */
+static __init int load_revocation_certificate_list(void)
+{
+	if (revocation_certificate_list_size)
+		pr_notice("Loading compiled-in revocation X.509 certificates\n");
+
+	return load_certificate_list(revocation_certificate_list, revocation_certificate_list_size,
+				     blacklist_keyring);
+}
+late_initcall(load_revocation_certificate_list);
+#endif
--- linux-ein-5.4.0.orig/certs/blacklist.h
+++ linux-ein-5.4.0/certs/blacklist.h
@@ -1,3 +1,5 @@
 #include <linux/kernel.h>
+#include <linux/errno.h>
+#include <crypto/pkcs7.h>
 
 extern const char __initconst *const blacklist_hashes[];
--- linux-ein-5.4.0.orig/certs/blacklist_hashes.c
+++ linux-ein-5.4.0/certs/blacklist_hashes.c
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "blacklist.h"
 
-const char __initdata *const blacklist_hashes[] = {
+const char __initconst *const blacklist_hashes[] = {
 #include CONFIG_SYSTEM_BLACKLIST_HASH_LIST
 	, NULL
 };
--- linux-ein-5.4.0.orig/certs/common.c
+++ linux-ein-5.4.0/certs/common.c
@@ -0,0 +1,58 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <linux/kernel.h>
+#include <linux/key.h>
+#include "common.h"
+
+int load_certificate_list(const u8 cert_list[],
+			  const unsigned long list_size,
+			  const struct key *keyring)
+{
+	key_ref_t key;
+	const u8 *p, *end;
+	size_t plen;
+
+	p = cert_list;
+	end = p + list_size;
+	while (p < end) {
+		/* Each cert begins with an ASN.1 SEQUENCE tag and must be more
+		 * than 256 bytes in size.
+		 */
+		if (end - p < 4)
+			goto dodgy_cert;
+		if (p[0] != 0x30 &&
+		    p[1] != 0x82)
+			goto dodgy_cert;
+		plen = (p[2] << 8) | p[3];
+		plen += 4;
+		if (plen > end - p)
+			goto dodgy_cert;
+
+		key = key_create_or_update(make_key_ref(keyring, 1),
+					   "asymmetric",
+					   NULL,
+					   p,
+					   plen,
+					   ((KEY_POS_ALL & ~KEY_POS_SETATTR) |
+					   KEY_USR_VIEW | KEY_USR_READ),
+					   KEY_ALLOC_NOT_IN_QUOTA |
+					   KEY_ALLOC_BUILT_IN |
+					   KEY_ALLOC_BYPASS_RESTRICTION);
+		if (IS_ERR(key)) {
+			pr_err("Problem loading in-kernel X.509 certificate (%ld)\n",
+			       PTR_ERR(key));
+			WARN_ON_ONCE(1);
+		} else {
+			pr_notice("Loaded X.509 cert '%s'\n",
+				  key_ref_to_ptr(key)->description);
+			key_ref_put(key);
+		}
+		p += plen;
+	}
+
+	return 0;
+
+dodgy_cert:
+	pr_err("Problem parsing in-kernel X.509 certificate list\n");
+	return 0;
+}
--- linux-ein-5.4.0.orig/certs/common.h
+++ linux-ein-5.4.0/certs/common.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef _CERT_COMMON_H
+#define _CERT_COMMON_H
+
+int load_certificate_list(const u8 cert_list[], const unsigned long list_size,
+			  const struct key *keyring);
+
+#endif
--- linux-ein-5.4.0.orig/certs/revocation_certificates.S
+++ linux-ein-5.4.0/certs/revocation_certificates.S
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#include <linux/export.h>
+#include <linux/init.h>
+
+	__INITRODATA
+
+	.align 8
+	.globl revocation_certificate_list
+revocation_certificate_list:
+__revocation_list_start:
+	.incbin "certs/x509_revocation_list"
+__revocation_list_end:
+
+	.align 8
+	.globl revocation_certificate_list_size
+revocation_certificate_list_size:
+#ifdef CONFIG_64BIT
+	.quad __revocation_list_end - __revocation_list_start
+#else
+	.long __revocation_list_end - __revocation_list_start
+#endif
--- linux-ein-5.4.0.orig/certs/system_keyring.c
+++ linux-ein-5.4.0/certs/system_keyring.c
@@ -15,6 +15,7 @@
 #include <keys/asymmetric-type.h>
 #include <keys/system_keyring.h>
 #include <crypto/pkcs7.h>
+#include "common.h"
 
 static struct key *builtin_trusted_keys;
 #ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
@@ -136,54 +137,10 @@
  */
 static __init int load_system_certificate_list(void)
 {
-	key_ref_t key;
-	const u8 *p, *end;
-	size_t plen;
-
 	pr_notice("Loading compiled-in X.509 certificates\n");
 
-	p = system_certificate_list;
-	end = p + system_certificate_list_size;
-	while (p < end) {
-		/* Each cert begins with an ASN.1 SEQUENCE tag and must be more
-		 * than 256 bytes in size.
-		 */
-		if (end - p < 4)
-			goto dodgy_cert;
-		if (p[0] != 0x30 &&
-		    p[1] != 0x82)
-			goto dodgy_cert;
-		plen = (p[2] << 8) | p[3];
-		plen += 4;
-		if (plen > end - p)
-			goto dodgy_cert;
-
-		key = key_create_or_update(make_key_ref(builtin_trusted_keys, 1),
-					   "asymmetric",
-					   NULL,
-					   p,
-					   plen,
-					   ((KEY_POS_ALL & ~KEY_POS_SETATTR) |
-					   KEY_USR_VIEW | KEY_USR_READ),
-					   KEY_ALLOC_NOT_IN_QUOTA |
-					   KEY_ALLOC_BUILT_IN |
-					   KEY_ALLOC_BYPASS_RESTRICTION);
-		if (IS_ERR(key)) {
-			pr_err("Problem loading in-kernel X.509 certificate (%ld)\n",
-			       PTR_ERR(key));
-		} else {
-			pr_notice("Loaded X.509 cert '%s'\n",
-				  key_ref_to_ptr(key)->description);
-			key_ref_put(key);
-		}
-		p += plen;
-	}
-
-	return 0;
-
-dodgy_cert:
-	pr_err("Problem parsing in-kernel X.509 certificate list\n");
-	return 0;
+	return load_certificate_list(system_certificate_list, system_certificate_list_size,
+				     builtin_trusted_keys);
 }
 late_initcall(load_system_certificate_list);
 
@@ -241,6 +198,12 @@
 			pr_devel("PKCS#7 platform keyring is not available\n");
 			goto error;
 		}
+
+		ret = is_key_on_revocation_list(pkcs7);
+		if (ret != -ENOKEY) {
+			pr_devel("PKCS#7 platform key is on revocation list\n");
+			goto error;
+		}
 	}
 	ret = pkcs7_validate_trust(pkcs7, trusted_keys);
 	if (ret < 0) {
--- linux-ein-5.4.0.orig/crypto/Kconfig
+++ linux-ein-5.4.0/crypto/Kconfig
@@ -242,12 +242,12 @@
 
 config CRYPTO_ECC
 	tristate
+	select CRYPTO_RNG_DEFAULT
 
 config CRYPTO_ECDH
 	tristate "ECDH algorithm"
 	select CRYPTO_ECC
 	select CRYPTO_KPP
-	select CRYPTO_RNG_DEFAULT
 	help
 	  Generic implementation of the ECDH algorithm
 
@@ -309,6 +309,7 @@
 config CRYPTO_AEGIS128_SIMD
 	bool "Support SIMD acceleration for AEGIS-128"
 	depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
+	depends on !ARM || CC_IS_CLANG || GCC_VERSION >= 40800
 	default y
 
 config CRYPTO_AEGIS128_AESNI_SSE2
@@ -499,10 +500,10 @@
 	  encryption.
 
 	  This driver implements a crypto API template that can be
-	  instantiated either as a skcipher or as a aead (depending on the
+	  instantiated either as an skcipher or as an AEAD (depending on the
 	  type of the first template argument), and which defers encryption
 	  and decryption requests to the encapsulated cipher after applying
-	  ESSIV to the input IV. Note that in the aead case, it is assumed
+	  ESSIV to the input IV. Note that in the AEAD case, it is assumed
 	  that the keys are presented in the same format used by the authenc
 	  template, and that the IV appears at the end of the authenticated
 	  associated data (AAD) region (which is how dm-crypt uses it.)
--- linux-ein-5.4.0.orig/crypto/Makefile
+++ linux-ein-5.4.0/crypto/Makefile
@@ -93,7 +93,7 @@
 aegis128-y := aegis128-core.o
 
 ifeq ($(ARCH),arm)
-CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv7-a -mfloat-abi=softfp
+CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv8-a -mfloat-abi=softfp
 CFLAGS_aegis128-neon-inner.o += -mfpu=crypto-neon-fp-armv8
 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o
 endif
--- linux-ein-5.4.0.orig/crypto/af_alg.c
+++ linux-ein-5.4.0/crypto/af_alg.c
@@ -16,6 +16,7 @@
 #include <linux/module.h>
 #include <linux/net.h>
 #include <linux/rwsem.h>
+#include <linux/sched.h>
 #include <linux/sched/signal.h>
 #include <linux/security.h>
 
@@ -128,19 +129,15 @@
 void af_alg_release_parent(struct sock *sk)
 {
 	struct alg_sock *ask = alg_sk(sk);
-	unsigned int nokey = ask->nokey_refcnt;
-	bool last = nokey && !ask->refcnt;
+	unsigned int nokey = atomic_read(&ask->nokey_refcnt);
 
 	sk = ask->parent;
 	ask = alg_sk(sk);
 
-	lock_sock(sk);
-	ask->nokey_refcnt -= nokey;
-	if (!last)
-		last = !--ask->refcnt;
-	release_sock(sk);
+	if (nokey)
+		atomic_dec(&ask->nokey_refcnt);
 
-	if (last)
+	if (atomic_dec_and_test(&ask->refcnt))
 		sock_put(sk);
 }
 EXPORT_SYMBOL_GPL(af_alg_release_parent);
@@ -150,7 +147,7 @@
 	const u32 allowed = CRYPTO_ALG_KERN_DRIVER_ONLY;
 	struct sock *sk = sock->sk;
 	struct alg_sock *ask = alg_sk(sk);
-	struct sockaddr_alg *sa = (void *)uaddr;
+	struct sockaddr_alg_new *sa = (void *)uaddr;
 	const struct af_alg_type *type;
 	void *private;
 	int err;
@@ -158,7 +155,11 @@
 	if (sock->state == SS_CONNECTED)
 		return -EINVAL;
 
-	if (addr_len < sizeof(*sa))
+	BUILD_BUG_ON(offsetof(struct sockaddr_alg_new, salg_name) !=
+		     offsetof(struct sockaddr_alg, salg_name));
+	BUILD_BUG_ON(offsetof(struct sockaddr_alg, salg_name) != sizeof(*sa));
+
+	if (addr_len < sizeof(*sa) + 1)
 		return -EINVAL;
 
 	/* If caller uses non-allowed flag, return error. */
@@ -166,7 +167,7 @@
 		return -EINVAL;
 
 	sa->salg_type[sizeof(sa->salg_type) - 1] = 0;
-	sa->salg_name[sizeof(sa->salg_name) + addr_len - sizeof(*sa) - 1] = 0;
+	sa->salg_name[addr_len - sizeof(*sa) - 1] = 0;
 
 	type = alg_get_type(sa->salg_type);
 	if (IS_ERR(type) && PTR_ERR(type) == -ENOENT) {
@@ -185,7 +186,7 @@
 
 	err = -EBUSY;
 	lock_sock(sk);
-	if (ask->refcnt | ask->nokey_refcnt)
+	if (atomic_read(&ask->refcnt))
 		goto unlock;
 
 	swap(ask->type, type);
@@ -234,7 +235,7 @@
 	int err = -EBUSY;
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (atomic_read(&ask->refcnt) != atomic_read(&ask->nokey_refcnt))
 		goto unlock;
 
 	type = ask->type;
@@ -299,12 +300,14 @@
 	if (err)
 		goto unlock;
 
-	if (nokey || !ask->refcnt++)
+	if (atomic_inc_return_relaxed(&ask->refcnt) == 1)
 		sock_hold(sk);
-	ask->nokey_refcnt += nokey;
+	if (nokey) {
+		atomic_inc(&ask->nokey_refcnt);
+		atomic_set(&alg_sk(sk2)->nokey_refcnt, 1);
+	}
 	alg_sk(sk2)->parent = sk;
 	alg_sk(sk2)->type = type;
-	alg_sk(sk2)->nokey_refcnt = nokey;
 
 	newsock->ops = type->ops;
 	newsock->state = SS_CONNECTED;
@@ -637,6 +640,7 @@
 
 	if (!ctx->used)
 		ctx->merge = 0;
+	ctx->init = ctx->more;
 }
 EXPORT_SYMBOL_GPL(af_alg_pull_tsgl);
 
@@ -736,9 +740,10 @@
  *
  * @sk socket of connection to user space
  * @flags If MSG_DONTWAIT is set, then only report if function would sleep
+ * @min Set to minimum request size if partial requests are allowed.
  * @return 0 when writable memory is available, < 0 upon error
  */
-int af_alg_wait_for_data(struct sock *sk, unsigned flags)
+int af_alg_wait_for_data(struct sock *sk, unsigned flags, unsigned min)
 {
 	DEFINE_WAIT_FUNC(wait, woken_wake_function);
 	struct alg_sock *ask = alg_sk(sk);
@@ -756,7 +761,9 @@
 		if (signal_pending(current))
 			break;
 		timeout = MAX_SCHEDULE_TIMEOUT;
-		if (sk_wait_event(sk, &timeout, (ctx->used || !ctx->more),
+		if (sk_wait_event(sk, &timeout,
+				  ctx->init && (!ctx->more ||
+						(min && ctx->used >= min)),
 				  &wait)) {
 			err = 0;
 			break;
@@ -845,10 +852,17 @@
 	}
 
 	lock_sock(sk);
-	if (!ctx->more && ctx->used) {
-		err = -EINVAL;
-		goto unlock;
+	if (ctx->init && !ctx->more) {
+		if (ctx->used) {
+			err = -EINVAL;
+			goto unlock;
+		}
+
+		pr_info_once(
+			"%s sent an empty control message without MSG_MORE.\n",
+			current->comm);
 	}
+	ctx->init = true;
 
 	if (init) {
 		ctx->enc = enc;
@@ -1043,7 +1057,7 @@
 	af_alg_free_resources(areq);
 	sock_put(sk);
 
-	iocb->ki_complete(iocb, err ? err : resultlen, 0);
+	iocb->ki_complete(iocb, err ? err : (int)resultlen, 0);
 }
 EXPORT_SYMBOL_GPL(af_alg_async_cb);
 
--- linux-ein-5.4.0.orig/crypto/akcipher.c
+++ linux-ein-5.4.0/crypto/akcipher.c
@@ -119,6 +119,12 @@
 	return -ENOSYS;
 }
 
+static int akcipher_default_set_key(struct crypto_akcipher *tfm,
+				     const void *key, unsigned int keylen)
+{
+	return -ENOSYS;
+}
+
 int crypto_register_akcipher(struct akcipher_alg *alg)
 {
 	struct crypto_alg *base = &alg->base;
@@ -131,6 +137,8 @@
 		alg->encrypt = akcipher_default_op;
 	if (!alg->decrypt)
 		alg->decrypt = akcipher_default_op;
+	if (!alg->set_priv_key)
+		alg->set_priv_key = akcipher_default_set_key;
 
 	akcipher_prepare_alg(alg);
 	return crypto_register_alg(base);
--- linux-ein-5.4.0.orig/crypto/algapi.c
+++ linux-ein-5.4.0/crypto/algapi.c
@@ -257,6 +257,7 @@
 	struct crypto_alg *alg;
 	struct crypto_alg *q;
 	LIST_HEAD(list);
+	bool best;
 
 	down_write(&crypto_alg_sem);
 	list_for_each_entry(q, &crypto_alg_list, cra_list) {
@@ -280,6 +281,21 @@
 
 	alg->cra_flags |= CRYPTO_ALG_TESTED;
 
+	/* Only satisfy larval waiters if we are the best. */
+	best = true;
+	list_for_each_entry(q, &crypto_alg_list, cra_list) {
+		if (crypto_is_moribund(q) || !crypto_is_larval(q))
+			continue;
+
+		if (strcmp(alg->cra_name, q->cra_name))
+			continue;
+
+		if (q->cra_priority > alg->cra_priority) {
+			best = false;
+			break;
+		}
+	}
+
 	list_for_each_entry(q, &crypto_alg_list, cra_list) {
 		if (q == alg)
 			continue;
@@ -303,10 +319,12 @@
 				continue;
 			if ((q->cra_flags ^ alg->cra_flags) & larval->mask)
 				continue;
-			if (!crypto_mod_get(alg))
-				continue;
 
-			larval->adult = alg;
+			if (best && crypto_mod_get(alg))
+				larval->adult = alg;
+			else
+				larval->adult = ERR_PTR(-EAGAIN);
+
 			continue;
 		}
 
@@ -356,7 +374,7 @@
 	err = wait_for_completion_killable(&larval->completion);
 	WARN_ON(err);
 	if (!err)
-		crypto_probing_notify(CRYPTO_MSG_ALG_LOADED, larval);
+		crypto_notify(CRYPTO_MSG_ALG_LOADED, larval);
 
 out:
 	crypto_larval_kill(&larval->alg);
@@ -669,11 +687,9 @@
 
 void crypto_drop_spawn(struct crypto_spawn *spawn)
 {
-	if (!spawn->alg)
-		return;
-
 	down_write(&crypto_alg_sem);
-	list_del(&spawn->list);
+	if (spawn->alg)
+		list_del(&spawn->list);
 	up_write(&crypto_alg_sem);
 }
 EXPORT_SYMBOL_GPL(crypto_drop_spawn);
@@ -681,22 +697,16 @@
 static struct crypto_alg *crypto_spawn_alg(struct crypto_spawn *spawn)
 {
 	struct crypto_alg *alg;
-	struct crypto_alg *alg2;
 
 	down_read(&crypto_alg_sem);
 	alg = spawn->alg;
-	alg2 = alg;
-	if (alg2)
-		alg2 = crypto_mod_get(alg2);
-	up_read(&crypto_alg_sem);
-
-	if (!alg2) {
-		if (alg)
-			crypto_shoot_alg(alg);
-		return ERR_PTR(-EAGAIN);
+	if (alg && !crypto_mod_get(alg)) {
+		alg->cra_flags |= CRYPTO_ALG_DYING;
+		alg = NULL;
 	}
+	up_read(&crypto_alg_sem);
 
-	return alg;
+	return alg ?: ERR_PTR(-EAGAIN);
 }
 
 struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
--- linux-ein-5.4.0.orig/crypto/algboss.c
+++ linux-ein-5.4.0/crypto/algboss.c
@@ -188,8 +188,6 @@
 	if (IS_ERR(thread))
 		goto err_put_larval;
 
-	wait_for_completion_interruptible(&larval->completion);
-
 	return NOTIFY_STOP;
 
 err_put_larval:
--- linux-ein-5.4.0.orig/crypto/algif_aead.c
+++ linux-ein-5.4.0/crypto/algif_aead.c
@@ -78,7 +78,7 @@
 	SYNC_SKCIPHER_REQUEST_ON_STACK(skreq, null_tfm);
 
 	skcipher_request_set_sync_tfm(skreq, null_tfm);
-	skcipher_request_set_callback(skreq, CRYPTO_TFM_REQ_MAY_BACKLOG,
+	skcipher_request_set_callback(skreq, CRYPTO_TFM_REQ_MAY_SLEEP,
 				      NULL, NULL);
 	skcipher_request_set_crypt(skreq, src, dst, len, NULL);
 
@@ -106,8 +106,8 @@
 	size_t usedpages = 0;		/* [in]  RX bufs to be used from user */
 	size_t processed = 0;		/* [in]  TX bufs to be consumed */
 
-	if (!ctx->used) {
-		err = af_alg_wait_for_data(sk, flags);
+	if (!ctx->init || ctx->more) {
+		err = af_alg_wait_for_data(sk, flags, 0);
 		if (err)
 			return err;
 	}
@@ -291,19 +291,20 @@
 		areq->outlen = outlen;
 
 		aead_request_set_callback(&areq->cra_u.aead_req,
-					  CRYPTO_TFM_REQ_MAY_BACKLOG,
+					  CRYPTO_TFM_REQ_MAY_SLEEP,
 					  af_alg_async_cb, areq);
 		err = ctx->enc ? crypto_aead_encrypt(&areq->cra_u.aead_req) :
 				 crypto_aead_decrypt(&areq->cra_u.aead_req);
 
 		/* AIO operation in progress */
-		if (err == -EINPROGRESS || err == -EBUSY)
+		if (err == -EINPROGRESS)
 			return -EIOCBQUEUED;
 
 		sock_put(sk);
 	} else {
 		/* Synchronous operation */
 		aead_request_set_callback(&areq->cra_u.aead_req,
+					  CRYPTO_TFM_REQ_MAY_SLEEP |
 					  CRYPTO_TFM_REQ_MAY_BACKLOG,
 					  crypto_req_done, &ctx->wait);
 		err = crypto_wait_req(ctx->enc ?
@@ -384,7 +385,7 @@
 	struct alg_sock *ask = alg_sk(sk);
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (!atomic_read(&ask->nokey_refcnt))
 		goto unlock_child;
 
 	psk = ask->parent;
@@ -396,11 +397,8 @@
 	if (crypto_aead_get_flags(tfm->aead) & CRYPTO_TFM_NEED_KEY)
 		goto unlock;
 
-	if (!pask->refcnt++)
-		sock_hold(psk);
-
-	ask->refcnt = 1;
-	sock_put(psk);
+	atomic_dec(&pask->nokey_refcnt);
+	atomic_set(&ask->nokey_refcnt, 0);
 
 	err = 0;
 
@@ -561,12 +559,6 @@
 
 	INIT_LIST_HEAD(&ctx->tsgl_list);
 	ctx->len = len;
-	ctx->used = 0;
-	atomic_set(&ctx->rcvused, 0);
-	ctx->more = 0;
-	ctx->merge = 0;
-	ctx->enc = 0;
-	ctx->aead_assoclen = 0;
 	crypto_init_wait(&ctx->wait);
 
 	ask->private = ctx;
--- linux-ein-5.4.0.orig/crypto/algif_hash.c
+++ linux-ein-5.4.0/crypto/algif_hash.c
@@ -301,7 +301,7 @@
 	struct alg_sock *ask = alg_sk(sk);
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (!atomic_read(&ask->nokey_refcnt))
 		goto unlock_child;
 
 	psk = ask->parent;
@@ -313,11 +313,8 @@
 	if (crypto_ahash_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)
 		goto unlock;
 
-	if (!pask->refcnt++)
-		sock_hold(psk);
-
-	ask->refcnt = 1;
-	sock_put(psk);
+	atomic_dec(&pask->nokey_refcnt);
+	atomic_set(&ask->nokey_refcnt, 0);
 
 	err = 0;
 
--- linux-ein-5.4.0.orig/crypto/algif_skcipher.c
+++ linux-ein-5.4.0/crypto/algif_skcipher.c
@@ -56,13 +56,13 @@
 	struct alg_sock *pask = alg_sk(psk);
 	struct af_alg_ctx *ctx = ask->private;
 	struct crypto_skcipher *tfm = pask->private;
-	unsigned int bs = crypto_skcipher_blocksize(tfm);
+	unsigned int bs = crypto_skcipher_chunksize(tfm);
 	struct af_alg_async_req *areq;
 	int err = 0;
 	size_t len = 0;
 
-	if (!ctx->used) {
-		err = af_alg_wait_for_data(sk, flags);
+	if (!ctx->init || (ctx->more && ctx->used < bs)) {
+		err = af_alg_wait_for_data(sk, flags, bs);
 		if (err)
 			return err;
 	}
@@ -74,14 +74,10 @@
 		return PTR_ERR(areq);
 
 	/* convert iovecs of output buffers into RX SGL */
-	err = af_alg_get_rsgl(sk, msg, flags, areq, -1, &len);
+	err = af_alg_get_rsgl(sk, msg, flags, areq, ctx->used, &len);
 	if (err)
 		goto free;
 
-	/* Process only as much RX buffers for which we have TX data */
-	if (len > ctx->used)
-		len = ctx->used;
-
 	/*
 	 * If more buffers are to be expected to be processed, process only
 	 * full block size buffers.
@@ -127,7 +123,7 @@
 			crypto_skcipher_decrypt(&areq->cra_u.skcipher_req);
 
 		/* AIO operation in progress */
-		if (err == -EINPROGRESS || err == -EBUSY)
+		if (err == -EINPROGRESS)
 			return -EIOCBQUEUED;
 
 		sock_put(sk);
@@ -215,7 +211,7 @@
 	struct alg_sock *ask = alg_sk(sk);
 
 	lock_sock(sk);
-	if (ask->refcnt)
+	if (!atomic_read(&ask->nokey_refcnt))
 		goto unlock_child;
 
 	psk = ask->parent;
@@ -227,11 +223,8 @@
 	if (crypto_skcipher_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)
 		goto unlock;
 
-	if (!pask->refcnt++)
-		sock_hold(psk);
-
-	ask->refcnt = 1;
-	sock_put(psk);
+	atomic_dec(&pask->nokey_refcnt);
+	atomic_set(&ask->nokey_refcnt, 0);
 
 	err = 0;
 
@@ -340,6 +333,7 @@
 	ctx = sock_kmalloc(sk, len, GFP_KERNEL);
 	if (!ctx)
 		return -ENOMEM;
+	memset(ctx, 0, len);
 
 	ctx->iv = sock_kmalloc(sk, crypto_skcipher_ivsize(tfm),
 			       GFP_KERNEL);
@@ -347,16 +341,10 @@
 		sock_kfree_s(sk, ctx, len);
 		return -ENOMEM;
 	}
-
 	memset(ctx->iv, 0, crypto_skcipher_ivsize(tfm));
 
 	INIT_LIST_HEAD(&ctx->tsgl_list);
 	ctx->len = len;
-	ctx->used = 0;
-	atomic_set(&ctx->rcvused, 0);
-	ctx->more = 0;
-	ctx->merge = 0;
-	ctx->enc = 0;
 	crypto_init_wait(&ctx->wait);
 
 	ask->private = ctx;
--- linux-ein-5.4.0.orig/crypto/api.c
+++ linux-ein-5.4.0/crypto/api.c
@@ -97,7 +97,7 @@
 	struct crypto_larval *larval = (void *)alg;
 
 	BUG_ON(!crypto_is_larval(alg));
-	if (larval->adult)
+	if (!IS_ERR_OR_NULL(larval->adult))
 		crypto_mod_put(larval->adult);
 	kfree(larval);
 }
@@ -178,6 +178,8 @@
 		alg = ERR_PTR(-ETIMEDOUT);
 	else if (!alg)
 		alg = ERR_PTR(-ENOENT);
+	else if (IS_ERR(alg))
+		;
 	else if (crypto_is_test_larval(larval) &&
 		 !(alg->cra_flags & CRYPTO_ALG_TESTED))
 		alg = ERR_PTR(-EAGAIN);
@@ -344,13 +346,12 @@
 	return len;
 }
 
-void crypto_shoot_alg(struct crypto_alg *alg)
+static void crypto_shoot_alg(struct crypto_alg *alg)
 {
 	down_write(&crypto_alg_sem);
 	alg->cra_flags |= CRYPTO_ALG_DYING;
 	up_write(&crypto_alg_sem);
 }
-EXPORT_SYMBOL_GPL(crypto_shoot_alg);
 
 struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type,
 				      u32 mask)
@@ -567,7 +568,7 @@
 {
 	struct crypto_alg *alg;
 
-	if (unlikely(!mem))
+	if (IS_ERR_OR_NULL(mem))
 		return;
 
 	alg = tfm->__crt_alg;
--- linux-ein-5.4.0.orig/crypto/asymmetric_keys/asym_tpm.c
+++ linux-ein-5.4.0/crypto/asymmetric_keys/asym_tpm.c
@@ -370,7 +370,7 @@
 	memcpy(cur, e, sizeof(e));
 	cur += sizeof(e);
 	/* Zero parameters to satisfy set_pub_key ABI. */
-	memset(cur, 0, SETKEY_PARAMS_SIZE);
+	memzero_explicit(cur, SETKEY_PARAMS_SIZE);
 
 	return cur - buf;
 }
@@ -486,6 +486,7 @@
 	if (ret < 0)
 		goto error_free_tfm;
 
+	ret = -ENOMEM;
 	req = akcipher_request_alloc(tfm, GFP_KERNEL);
 	if (!req)
 		goto error_free_tfm;
--- linux-ein-5.4.0.orig/crypto/asymmetric_keys/pkcs7_verify.c
+++ linux-ein-5.4.0/crypto/asymmetric_keys/pkcs7_verify.c
@@ -79,16 +79,16 @@
 		}
 
 		if (sinfo->msgdigest_len != sig->digest_size) {
-			pr_debug("Sig %u: Invalid digest size (%u)\n",
-				 sinfo->index, sinfo->msgdigest_len);
+			pr_warn("Sig %u: Invalid digest size (%u)\n",
+				sinfo->index, sinfo->msgdigest_len);
 			ret = -EBADMSG;
 			goto error;
 		}
 
 		if (memcmp(sig->digest, sinfo->msgdigest,
 			   sinfo->msgdigest_len) != 0) {
-			pr_debug("Sig %u: Message digest doesn't match\n",
-				 sinfo->index);
+			pr_warn("Sig %u: Message digest doesn't match\n",
+				sinfo->index);
 			ret = -EKEYREJECTED;
 			goto error;
 		}
@@ -488,7 +488,7 @@
 			       const void *data, size_t datalen)
 {
 	if (pkcs7->data) {
-		pr_debug("Data already supplied\n");
+		pr_warn("Data already supplied\n");
 		return -EINVAL;
 	}
 	pkcs7->data = data;
--- linux-ein-5.4.0.orig/crypto/asymmetric_keys/public_key.c
+++ linux-ein-5.4.0/crypto/asymmetric_keys/public_key.c
@@ -119,6 +119,7 @@
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
+	ret = -ENOMEM;
 	key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
 		      GFP_KERNEL);
 	if (!key)
@@ -184,6 +185,7 @@
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
+	ret = -ENOMEM;
 	req = akcipher_request_alloc(tfm, GFP_KERNEL);
 	if (!req)
 		goto error_free_tfm;
@@ -253,9 +255,10 @@
 	struct crypto_wait cwait;
 	struct crypto_akcipher *tfm;
 	struct akcipher_request *req;
-	struct scatterlist src_sg[2];
+	struct scatterlist src_sg;
 	char alg_name[CRYPTO_MAX_ALG_NAME];
-	char *key, *ptr;
+	char *buf, *ptr;
+	size_t buf_len;
 	int ret;
 
 	pr_devel("==>%s()\n", __func__);
@@ -279,28 +282,31 @@
 	if (!req)
 		goto error_free_tfm;
 
-	key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
-		      GFP_KERNEL);
-	if (!key)
+	buf_len = max_t(size_t, pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
+			sig->s_size + sig->digest_size);
+
+	buf = kmalloc(buf_len, GFP_KERNEL);
+	if (!buf)
 		goto error_free_req;
 
-	memcpy(key, pkey->key, pkey->keylen);
-	ptr = key + pkey->keylen;
+	memcpy(buf, pkey->key, pkey->keylen);
+	ptr = buf + pkey->keylen;
 	ptr = pkey_pack_u32(ptr, pkey->algo);
 	ptr = pkey_pack_u32(ptr, pkey->paramlen);
 	memcpy(ptr, pkey->params, pkey->paramlen);
 
 	if (pkey->key_is_private)
-		ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
+		ret = crypto_akcipher_set_priv_key(tfm, buf, pkey->keylen);
 	else
-		ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
+		ret = crypto_akcipher_set_pub_key(tfm, buf, pkey->keylen);
 	if (ret)
-		goto error_free_key;
+		goto error_free_buf;
 
-	sg_init_table(src_sg, 2);
-	sg_set_buf(&src_sg[0], sig->s, sig->s_size);
-	sg_set_buf(&src_sg[1], sig->digest, sig->digest_size);
-	akcipher_request_set_crypt(req, src_sg, NULL, sig->s_size,
+	memcpy(buf, sig->s, sig->s_size);
+	memcpy(buf + sig->s_size, sig->digest, sig->digest_size);
+
+	sg_init_one(&src_sg, buf, sig->s_size + sig->digest_size);
+	akcipher_request_set_crypt(req, &src_sg, NULL, sig->s_size,
 				   sig->digest_size);
 	crypto_init_wait(&cwait);
 	akcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG |
@@ -308,8 +314,8 @@
 				      crypto_req_done, &cwait);
 	ret = crypto_wait_req(crypto_akcipher_verify(req), &cwait);
 
-error_free_key:
-	kfree(key);
+error_free_buf:
+	kfree(buf);
 error_free_req:
 	akcipher_request_free(req);
 error_free_tfm:
--- linux-ein-5.4.0.orig/crypto/asymmetric_keys/verify_pefile.c
+++ linux-ein-5.4.0/crypto/asymmetric_keys/verify_pefile.c
@@ -74,7 +74,7 @@
 		break;
 
 	default:
-		pr_debug("Unknown PEOPT magic = %04hx\n", pe32->magic);
+		pr_warn("Unknown PEOPT magic = %04hx\n", pe32->magic);
 		return -ELIBBAD;
 	}
 
@@ -95,7 +95,7 @@
 	ctx->certs_size = ddir->certs.size;
 
 	if (!ddir->certs.virtual_address || !ddir->certs.size) {
-		pr_debug("Unsigned PE binary\n");
+		pr_warn("Unsigned PE binary\n");
 		return -ENODATA;
 	}
 
@@ -127,7 +127,7 @@
 	unsigned len;
 
 	if (ctx->sig_len < sizeof(wrapper)) {
-		pr_debug("Signature wrapper too short\n");
+		pr_warn("Signature wrapper too short\n");
 		return -ELIBBAD;
 	}
 
@@ -135,19 +135,23 @@
 	pr_debug("sig wrapper = { %x, %x, %x }\n",
 		 wrapper.length, wrapper.revision, wrapper.cert_type);
 
-	/* Both pesign and sbsign round up the length of certificate table
-	 * (in optional header data directories) to 8 byte alignment.
+	/* sbsign rounds up the length of certificate table (in optional
+	 * header data directories) to 8 byte alignment.  However, the PE
+	 * specification states that while entries are 8-byte aligned, this is
+	 * not included in their length, and as a result, pesign has not
+	 * rounded up since 0.110.
 	 */
-	if (round_up(wrapper.length, 8) != ctx->sig_len) {
-		pr_debug("Signature wrapper len wrong\n");
+	if (wrapper.length > ctx->sig_len) {
+		pr_warn("Signature wrapper bigger than sig len (%x > %x)\n",
+			ctx->sig_len, wrapper.length);
 		return -ELIBBAD;
 	}
 	if (wrapper.revision != WIN_CERT_REVISION_2_0) {
-		pr_debug("Signature is not revision 2.0\n");
+		pr_warn("Signature is not revision 2.0\n");
 		return -ENOTSUPP;
 	}
 	if (wrapper.cert_type != WIN_CERT_TYPE_PKCS_SIGNED_DATA) {
-		pr_debug("Signature certificate type is not PKCS\n");
+		pr_warn("Signature certificate type is not PKCS\n");
 		return -ENOTSUPP;
 	}
 
@@ -160,7 +164,7 @@
 	ctx->sig_offset += sizeof(wrapper);
 	ctx->sig_len -= sizeof(wrapper);
 	if (ctx->sig_len < 4) {
-		pr_debug("Signature data missing\n");
+		pr_warn("Signature data missing\n");
 		return -EKEYREJECTED;
 	}
 
@@ -194,7 +198,7 @@
 		return 0;
 	}
 not_pkcs7:
-	pr_debug("Signature data not PKCS#7\n");
+	pr_warn("Signature data not PKCS#7\n");
 	return -ELIBBAD;
 }
 
@@ -337,8 +341,8 @@
 	digest_size = crypto_shash_digestsize(tfm);
 
 	if (digest_size != ctx->digest_len) {
-		pr_debug("Digest size mismatch (%zx != %x)\n",
-			 digest_size, ctx->digest_len);
+		pr_warn("Digest size mismatch (%zx != %x)\n",
+			digest_size, ctx->digest_len);
 		ret = -EBADMSG;
 		goto error_no_desc;
 	}
@@ -369,7 +373,7 @@
 	 * PKCS#7 certificate.
 	 */
 	if (memcmp(digest, ctx->digest, ctx->digest_len) != 0) {
-		pr_debug("Digest mismatch\n");
+		pr_warn("Digest mismatch\n");
 		ret = -EKEYREJECTED;
 	} else {
 		pr_debug("The digests match!\n");
--- linux-ein-5.4.0.orig/crypto/asymmetric_keys/x509_public_key.c
+++ linux-ein-5.4.0/crypto/asymmetric_keys/x509_public_key.c
@@ -129,6 +129,11 @@
 	if (strcmp(cert->pub->pkey_algo, cert->sig->pkey_algo) != 0)
 		goto out;
 
+	if (cert->unsupported_sig) {
+		ret = 0;
+		goto out;
+	}
+
 	ret = public_key_verify_signature(cert->pub, cert->sig);
 	if (ret < 0) {
 		if (ret == -ENOPKG) {
--- linux-ein-5.4.0.orig/crypto/authenc.c
+++ linux-ein-5.4.0/crypto/authenc.c
@@ -263,7 +263,7 @@
 		dst = scatterwalk_ffwd(areq_ctx->dst, req->dst, req->assoclen);
 
 	skcipher_request_set_tfm(skreq, ctx->enc);
-	skcipher_request_set_callback(skreq, aead_request_flags(req),
+	skcipher_request_set_callback(skreq, flags,
 				      req->base.complete, req->base.data);
 	skcipher_request_set_crypt(skreq, src, dst,
 				   req->cryptlen - authsize, req->iv);
--- linux-ein-5.4.0.orig/crypto/cast6_generic.c
+++ linux-ein-5.4.0/crypto/cast6_generic.c
@@ -154,7 +154,7 @@
 EXPORT_SYMBOL_GPL(cast6_setkey);
 
 /*forward quad round*/
-static inline void Q(u32 *block, u8 *Kr, u32 *Km)
+static inline void Q(u32 *block, const u8 *Kr, const u32 *Km)
 {
 	u32 I;
 	block[2] ^= F1(block[3], Kr[0], Km[0]);
@@ -164,7 +164,7 @@
 }
 
 /*reverse quad round*/
-static inline void QBAR(u32 *block, u8 *Kr, u32 *Km)
+static inline void QBAR(u32 *block, const u8 *Kr, const u32 *Km)
 {
 	u32 I;
 	block[3] ^= F1(block[0], Kr[3], Km[3]);
@@ -173,13 +173,14 @@
 	block[2] ^= F1(block[3], Kr[0], Km[0]);
 }
 
-void __cast6_encrypt(struct cast6_ctx *c, u8 *outbuf, const u8 *inbuf)
+void __cast6_encrypt(const void *ctx, u8 *outbuf, const u8 *inbuf)
 {
+	const struct cast6_ctx *c = ctx;
 	const __be32 *src = (const __be32 *)inbuf;
 	__be32 *dst = (__be32 *)outbuf;
 	u32 block[4];
-	u32 *Km;
-	u8 *Kr;
+	const u32 *Km;
+	const u8 *Kr;
 
 	block[0] = be32_to_cpu(src[0]);
 	block[1] = be32_to_cpu(src[1]);
@@ -211,13 +212,14 @@
 	__cast6_encrypt(crypto_tfm_ctx(tfm), outbuf, inbuf);
 }
 
-void __cast6_decrypt(struct cast6_ctx *c, u8 *outbuf, const u8 *inbuf)
+void __cast6_decrypt(const void *ctx, u8 *outbuf, const u8 *inbuf)
 {
+	const struct cast6_ctx *c = ctx;
 	const __be32 *src = (const __be32 *)inbuf;
 	__be32 *dst = (__be32 *)outbuf;
 	u32 block[4];
-	u32 *Km;
-	u8 *Kr;
+	const u32 *Km;
+	const u8 *Kr;
 
 	block[0] = be32_to_cpu(src[0]);
 	block[1] = be32_to_cpu(src[1]);
--- linux-ein-5.4.0.orig/crypto/cryptd.c
+++ linux-ein-5.4.0/crypto/cryptd.c
@@ -39,6 +39,10 @@
 };
 
 struct cryptd_queue {
+	/*
+	 * Protected by disabling BH to allow enqueueing from softinterrupt and
+	 * dequeuing from kworker (cryptd_queue_worker()).
+	 */
 	struct cryptd_cpu_queue __percpu *cpu_queue;
 };
 
@@ -125,28 +129,28 @@
 static int cryptd_enqueue_request(struct cryptd_queue *queue,
 				  struct crypto_async_request *request)
 {
-	int cpu, err;
+	int err;
 	struct cryptd_cpu_queue *cpu_queue;
 	refcount_t *refcnt;
 
-	cpu = get_cpu();
+	local_bh_disable();
 	cpu_queue = this_cpu_ptr(queue->cpu_queue);
 	err = crypto_enqueue_request(&cpu_queue->queue, request);
 
 	refcnt = crypto_tfm_ctx(request->tfm);
 
 	if (err == -ENOSPC)
-		goto out_put_cpu;
+		goto out;
 
-	queue_work_on(cpu, cryptd_wq, &cpu_queue->work);
+	queue_work_on(smp_processor_id(), cryptd_wq, &cpu_queue->work);
 
 	if (!refcount_read(refcnt))
-		goto out_put_cpu;
+		goto out;
 
 	refcount_inc(refcnt);
 
-out_put_cpu:
-	put_cpu();
+out:
+	local_bh_enable();
 
 	return err;
 }
@@ -162,15 +166,10 @@
 	cpu_queue = container_of(work, struct cryptd_cpu_queue, work);
 	/*
 	 * Only handle one request at a time to avoid hogging crypto workqueue.
-	 * preempt_disable/enable is used to prevent being preempted by
-	 * cryptd_enqueue_request(). local_bh_disable/enable is used to prevent
-	 * cryptd_enqueue_request() being accessed from software interrupts.
 	 */
 	local_bh_disable();
-	preempt_disable();
 	backlog = crypto_get_backlog(&cpu_queue->queue);
 	req = crypto_dequeue_request(&cpu_queue->queue);
-	preempt_enable();
 	local_bh_enable();
 
 	if (!req)
--- linux-ein-5.4.0.orig/crypto/crypto_user_base.c
+++ linux-ein-5.4.0/crypto/crypto_user_base.c
@@ -213,8 +213,10 @@
 drop_alg:
 	crypto_mod_put(alg);
 
-	if (err)
+	if (err) {
+		kfree_skb(skb);
 		return err;
+	}
 
 	return nlmsg_unicast(net->crypto_nlsk, skb, NETLINK_CB(in_skb).portid);
 }
--- linux-ein-5.4.0.orig/crypto/crypto_user_stat.c
+++ linux-ein-5.4.0/crypto/crypto_user_stat.c
@@ -328,8 +328,10 @@
 drop_alg:
 	crypto_mod_put(alg);
 
-	if (err)
+	if (err) {
+		kfree_skb(skb);
 		return err;
+	}
 
 	return nlmsg_unicast(net->crypto_nlsk, skb, NETLINK_CB(in_skb).portid);
 }
--- linux-ein-5.4.0.orig/crypto/drbg.c
+++ linux-ein-5.4.0/crypto/drbg.c
@@ -1035,17 +1035,38 @@
  ******************************************************************/
 
 static inline int __drbg_seed(struct drbg_state *drbg, struct list_head *seed,
-			      int reseed)
+			      int reseed, enum drbg_seed_state new_seed_state)
 {
 	int ret = drbg->d_ops->update(drbg, seed, reseed);
 
 	if (ret)
 		return ret;
 
-	drbg->seeded = true;
+	drbg->seeded = new_seed_state;
 	/* 10.1.1.2 / 10.1.1.3 step 5 */
 	drbg->reseed_ctr = 1;
 
+	switch (drbg->seeded) {
+	case DRBG_SEED_STATE_UNSEEDED:
+		/* Impossible, but handle it to silence compiler warnings. */
+		fallthrough;
+	case DRBG_SEED_STATE_PARTIAL:
+		/*
+		 * Require frequent reseeds until the seed source is
+		 * fully initialized.
+		 */
+		drbg->reseed_threshold = 50;
+		break;
+
+	case DRBG_SEED_STATE_FULL:
+		/*
+		 * Seed source has become fully initialized, frequent
+		 * reseeds no longer required.
+		 */
+		drbg->reseed_threshold = drbg_max_requests(drbg);
+		break;
+	}
+
 	return ret;
 }
 
@@ -1065,12 +1086,10 @@
 	return 0;
 }
 
-static void drbg_async_seed(struct work_struct *work)
+static int drbg_seed_from_random(struct drbg_state *drbg)
 {
 	struct drbg_string data;
 	LIST_HEAD(seedlist);
-	struct drbg_state *drbg = container_of(work, struct drbg_state,
-					       seed_work);
 	unsigned int entropylen = drbg_sec_strength(drbg->core->flags);
 	unsigned char entropy[32];
 	int ret;
@@ -1081,30 +1100,15 @@
 	drbg_string_fill(&data, entropy, entropylen);
 	list_add_tail(&data.list, &seedlist);
 
-	mutex_lock(&drbg->drbg_mutex);
-
 	ret = drbg_get_random_bytes(drbg, entropy, entropylen);
 	if (ret)
-		goto unlock;
+		goto out;
 
-	/* If nonblocking pool is initialized, deactivate Jitter RNG */
-	crypto_free_rng(drbg->jent);
-	drbg->jent = NULL;
-
-	/* Set seeded to false so that if __drbg_seed fails the
-	 * next generate call will trigger a reseed.
-	 */
-	drbg->seeded = false;
-
-	__drbg_seed(drbg, &seedlist, true);
-
-	if (drbg->seeded)
-		drbg->reseed_threshold = drbg_max_requests(drbg);
-
-unlock:
-	mutex_unlock(&drbg->drbg_mutex);
+	ret = __drbg_seed(drbg, &seedlist, true, DRBG_SEED_STATE_FULL);
 
+out:
 	memzero_explicit(entropy, entropylen);
+	return ret;
 }
 
 /*
@@ -1126,6 +1130,7 @@
 	unsigned int entropylen = drbg_sec_strength(drbg->core->flags);
 	struct drbg_string data1;
 	LIST_HEAD(seedlist);
+	enum drbg_seed_state new_seed_state = DRBG_SEED_STATE_FULL;
 
 	/* 9.1 / 9.2 / 9.3.1 step 3 */
 	if (pers && pers->len > (drbg_max_addtl(drbg))) {
@@ -1153,6 +1158,9 @@
 		BUG_ON((entropylen * 2) > sizeof(entropy));
 
 		/* Get seed from in-kernel /dev/urandom */
+		if (!rng_is_initialized())
+			new_seed_state = DRBG_SEED_STATE_PARTIAL;
+
 		ret = drbg_get_random_bytes(drbg, entropy, entropylen);
 		if (ret)
 			goto out;
@@ -1168,7 +1176,23 @@
 						   entropylen);
 			if (ret) {
 				pr_devel("DRBG: jent failed with %d\n", ret);
-				goto out;
+
+				/*
+				 * Do not treat the transient failure of the
+				 * Jitter RNG as an error that needs to be
+				 * reported. The combined number of the
+				 * maximum reseed threshold times the maximum
+				 * number of Jitter RNG transient errors is
+				 * less than the reseed threshold required by
+				 * SP800-90A allowing us to treat the
+				 * transient errors as such.
+				 *
+				 * However, we mandate that at least the first
+				 * seeding operation must succeed with the
+				 * Jitter RNG.
+				 */
+				if (!reseed || ret != -EAGAIN)
+					goto out;
 			}
 
 			drbg_string_fill(&data1, entropy, entropylen * 2);
@@ -1193,7 +1217,7 @@
 		memset(drbg->C, 0, drbg_statelen(drbg));
 	}
 
-	ret = __drbg_seed(drbg, &seedlist, reseed);
+	ret = __drbg_seed(drbg, &seedlist, reseed, new_seed_state);
 
 out:
 	memzero_explicit(entropy, entropylen * 2);
@@ -1294,8 +1318,10 @@
 	if (IS_ENABLED(CONFIG_CRYPTO_FIPS)) {
 		drbg->prev = kzalloc(drbg_sec_strength(drbg->core->flags),
 				     GFP_KERNEL);
-		if (!drbg->prev)
+		if (!drbg->prev) {
+			ret = -ENOMEM;
 			goto fini;
+		}
 		drbg->fips_primed = false;
 	}
 
@@ -1371,19 +1397,25 @@
 	 * here. The spec is a bit convoluted here, we make it simpler.
 	 */
 	if (drbg->reseed_threshold < drbg->reseed_ctr)
-		drbg->seeded = false;
+		drbg->seeded = DRBG_SEED_STATE_UNSEEDED;
 
-	if (drbg->pr || !drbg->seeded) {
+	if (drbg->pr || drbg->seeded == DRBG_SEED_STATE_UNSEEDED) {
 		pr_devel("DRBG: reseeding before generation (prediction "
 			 "resistance: %s, state %s)\n",
 			 drbg->pr ? "true" : "false",
-			 drbg->seeded ? "seeded" : "unseeded");
+			 (drbg->seeded ==  DRBG_SEED_STATE_FULL ?
+			  "seeded" : "unseeded"));
 		/* 9.3.1 steps 7.1 through 7.3 */
 		len = drbg_seed(drbg, addtl, true);
 		if (len)
 			goto err;
 		/* 9.3.1 step 7.4 */
 		addtl = NULL;
+	} else if (rng_is_initialized() &&
+		   drbg->seeded == DRBG_SEED_STATE_PARTIAL) {
+		len = drbg_seed_from_random(drbg);
+		if (len)
+			goto err;
 	}
 
 	if (addtl && 0 < addtl->len)
@@ -1476,51 +1508,23 @@
 	return 0;
 }
 
-static void drbg_schedule_async_seed(struct random_ready_callback *rdy)
-{
-	struct drbg_state *drbg = container_of(rdy, struct drbg_state,
-					       random_ready);
-
-	schedule_work(&drbg->seed_work);
-}
-
 static int drbg_prepare_hrng(struct drbg_state *drbg)
 {
-	int err;
-
 	/* We do not need an HRNG in test mode. */
 	if (list_empty(&drbg->test_data.list))
 		return 0;
 
-	INIT_WORK(&drbg->seed_work, drbg_async_seed);
-
-	drbg->random_ready.owner = THIS_MODULE;
-	drbg->random_ready.func = drbg_schedule_async_seed;
-
-	err = add_random_ready_callback(&drbg->random_ready);
-
-	switch (err) {
-	case 0:
-		break;
-
-	case -EALREADY:
-		err = 0;
-		/* fall through */
-
-	default:
-		drbg->random_ready.func = NULL;
-		return err;
-	}
-
 	drbg->jent = crypto_alloc_rng("jitterentropy_rng", 0, 0);
+	if (IS_ERR(drbg->jent)) {
+		const int err = PTR_ERR(drbg->jent);
 
-	/*
-	 * Require frequent reseeds until the seed source is fully
-	 * initialized.
-	 */
-	drbg->reseed_threshold = 50;
+		drbg->jent = NULL;
+		if (fips_enabled)
+			return err;
+		pr_info("DRBG: Continuing without Jitter RNG\n");
+	}
 
-	return err;
+	return 0;
 }
 
 /*
@@ -1563,7 +1567,7 @@
 	if (!drbg->core) {
 		drbg->core = &drbg_cores[coreref];
 		drbg->pr = pr;
-		drbg->seeded = false;
+		drbg->seeded = DRBG_SEED_STATE_UNSEEDED;
 		drbg->reseed_threshold = drbg_max_requests(drbg);
 
 		ret = drbg_alloc_state(drbg);
@@ -1574,14 +1578,6 @@
 		if (ret)
 			goto free_everything;
 
-		if (IS_ERR(drbg->jent)) {
-			ret = PTR_ERR(drbg->jent);
-			drbg->jent = NULL;
-			if (fips_enabled || ret != -ENOENT)
-				goto free_everything;
-			pr_info("DRBG: Continuing without Jitter RNG\n");
-		}
-
 		reseed = false;
 	}
 
@@ -1614,12 +1610,9 @@
  */
 static int drbg_uninstantiate(struct drbg_state *drbg)
 {
-	if (drbg->random_ready.func) {
-		del_random_ready_callback(&drbg->random_ready);
-		cancel_work_sync(&drbg->seed_work);
+	if (!IS_ERR_OR_NULL(drbg->jent))
 		crypto_free_rng(drbg->jent);
-		drbg->jent = NULL;
-	}
+	drbg->jent = NULL;
 
 	if (drbg->d_ops)
 		drbg->d_ops->crypto_fini(drbg);
--- linux-ein-5.4.0.orig/crypto/ecc.c
+++ linux-ein-5.4.0/crypto/ecc.c
@@ -1284,10 +1284,11 @@
 static inline void ecc_swap_digits(const u64 *in, u64 *out,
 				   unsigned int ndigits)
 {
+	const __be64 *src = (__force __be64 *)in;
 	int i;
 
 	for (i = 0; i < ndigits; i++)
-		out[i] = __swab64(in[ndigits - 1 - i]);
+		out[i] = be64_to_cpu(src[ndigits - 1 - i]);
 }
 
 static int __ecc_is_key_valid(const struct ecc_curve *curve,
--- linux-ein-5.4.0.orig/crypto/ecdh.c
+++ linux-ein-5.4.0/crypto/ecdh.c
@@ -39,7 +39,8 @@
 	struct ecdh params;
 	unsigned int ndigits;
 
-	if (crypto_ecdh_decode_key(buf, len, &params) < 0)
+	if (crypto_ecdh_decode_key(buf, len, &params) < 0 ||
+	    params.key_size > sizeof(ctx->private_key))
 		return -EINVAL;
 
 	ndigits = ecdh_supported_curve(params.curve_id);
@@ -53,12 +54,13 @@
 		return ecc_gen_privkey(ctx->curve_id, ctx->ndigits,
 				       ctx->private_key);
 
-	if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits,
-			     (const u64 *)params.key, params.key_size) < 0)
-		return -EINVAL;
-
 	memcpy(ctx->private_key, params.key, params.key_size);
 
+	if (ecc_is_key_valid(ctx->curve_id, ctx->ndigits,
+			     ctx->private_key, params.key_size) < 0) {
+		memzero_explicit(ctx->private_key, params.key_size);
+		return -EINVAL;
+	}
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/crypto/ecdh_helper.c
+++ linux-ein-5.4.0/crypto/ecdh_helper.c
@@ -67,6 +67,9 @@
 	if (secret.type != CRYPTO_KPP_SECRET_TYPE_ECDH)
 		return -EINVAL;
 
+	if (unlikely(len < secret.len))
+		return -EINVAL;
+
 	ptr = ecdh_unpack_data(&params->curve_id, ptr, sizeof(params->curve_id));
 	ptr = ecdh_unpack_data(&params->key_size, ptr, sizeof(params->key_size));
 	if (secret.len != crypto_ecdh_key_len(params))
--- linux-ein-5.4.0.orig/crypto/ecrdsa.c
+++ linux-ein-5.4.0/crypto/ecrdsa.c
@@ -112,15 +112,15 @@
 
 	/* Step 1: verify that 0 < r < q, 0 < s < q */
 	if (vli_is_zero(r, ndigits) ||
-	    vli_cmp(r, ctx->curve->n, ndigits) == 1 ||
+	    vli_cmp(r, ctx->curve->n, ndigits) >= 0 ||
 	    vli_is_zero(s, ndigits) ||
-	    vli_cmp(s, ctx->curve->n, ndigits) == 1)
+	    vli_cmp(s, ctx->curve->n, ndigits) >= 0)
 		return -EKEYREJECTED;
 
 	/* Step 2: calculate hash (h) of the message (passed as input) */
 	/* Step 3: calculate e = h \mod q */
 	vli_from_le64(e, digest, ndigits);
-	if (vli_cmp(e, ctx->curve->n, ndigits) == 1)
+	if (vli_cmp(e, ctx->curve->n, ndigits) >= 0)
 		vli_sub(e, e, ctx->curve->n, ndigits);
 	if (vli_is_zero(e, ndigits))
 		e[0] = 1;
@@ -136,7 +136,7 @@
 	/* Step 6: calculate point C = z_1P + z_2Q, and R = x_c \mod q */
 	ecc_point_mult_shamir(&cc, z1, &ctx->curve->g, z2, &ctx->pub_key,
 			      ctx->curve);
-	if (vli_cmp(cc.x, ctx->curve->n, ndigits) == 1)
+	if (vli_cmp(cc.x, ctx->curve->n, ndigits) >= 0)
 		vli_sub(cc.x, cc.x, ctx->curve->n, ndigits);
 
 	/* Step 7: if R == r signature is valid */
--- linux-ein-5.4.0.orig/crypto/essiv.c
+++ linux-ein-5.4.0/crypto/essiv.c
@@ -188,8 +188,12 @@
 	struct aead_request *req = areq->data;
 	struct essiv_aead_request_ctx *rctx = aead_request_ctx(req);
 
-	if (rctx->assoc)
-		kfree(rctx->assoc);
+	if (err == -EINPROGRESS)
+		goto out;
+
+	kfree(rctx->assoc);
+
+out:
 	aead_request_complete(req, err);
 }
 
@@ -265,7 +269,7 @@
 	err = enc ? crypto_aead_encrypt(subreq) :
 		    crypto_aead_decrypt(subreq);
 
-	if (rctx->assoc && err != -EINPROGRESS)
+	if (rctx->assoc && err != -EINPROGRESS && err != -EBUSY)
 		kfree(rctx->assoc);
 	return err;
 }
--- linux-ein-5.4.0.orig/crypto/hash_info.c
+++ linux-ein-5.4.0/crypto/hash_info.c
@@ -26,7 +26,7 @@
 	[HASH_ALGO_TGR_128]	= "tgr128",
 	[HASH_ALGO_TGR_160]	= "tgr160",
 	[HASH_ALGO_TGR_192]	= "tgr192",
-	[HASH_ALGO_SM3_256]	= "sm3-256",
+	[HASH_ALGO_SM3_256]	= "sm3",
 	[HASH_ALGO_STREEBOG_256] = "streebog256",
 	[HASH_ALGO_STREEBOG_512] = "streebog512",
 };
--- linux-ein-5.4.0.orig/crypto/internal.h
+++ linux-ein-5.4.0/crypto/internal.h
@@ -68,7 +68,6 @@
 void crypto_remove_spawns(struct crypto_alg *alg, struct list_head *list,
 			  struct crypto_alg *nalg);
 void crypto_remove_final(struct list_head *list);
-void crypto_shoot_alg(struct crypto_alg *alg);
 struct crypto_tfm *__crypto_alloc_tfm(struct crypto_alg *alg, u32 type,
 				      u32 mask);
 void *crypto_create_tfm(struct crypto_alg *alg,
--- linux-ein-5.4.0.orig/crypto/lrw.c
+++ linux-ein-5.4.0/crypto/lrw.c
@@ -289,7 +289,7 @@
 	crypto_free_skcipher(ctx->child);
 }
 
-static void free(struct skcipher_instance *inst)
+static void free_inst(struct skcipher_instance *inst)
 {
 	crypto_drop_skcipher(skcipher_instance_ctx(inst));
 	kfree(inst);
@@ -401,7 +401,7 @@
 	inst->alg.encrypt = encrypt;
 	inst->alg.decrypt = decrypt;
 
-	inst->free = free;
+	inst->free = free_inst;
 
 	err = skcipher_register_instance(tmpl, inst);
 	if (err)
--- linux-ein-5.4.0.orig/crypto/pcrypt.c
+++ linux-ein-5.4.0/crypto/pcrypt.c
@@ -24,6 +24,8 @@
 
 struct pcrypt_instance_ctx {
 	struct crypto_aead_spawn spawn;
+	struct padata_shell *psenc;
+	struct padata_shell *psdec;
 	atomic_t tfm_count;
 };
 
@@ -32,6 +34,12 @@
 	unsigned int cb_cpu;
 };
 
+static inline struct pcrypt_instance_ctx *pcrypt_tfm_ictx(
+	struct crypto_aead *tfm)
+{
+	return aead_instance_ctx(aead_alg_instance(tfm));
+}
+
 static int pcrypt_aead_setkey(struct crypto_aead *parent,
 			      const u8 *key, unsigned int keylen)
 {
@@ -63,7 +71,6 @@
 	struct padata_priv *padata = pcrypt_request_padata(preq);
 
 	padata->info = err;
-	req->base.flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
 
 	padata_do_serial(padata);
 }
@@ -72,12 +79,14 @@
 {
 	struct pcrypt_request *preq = pcrypt_padata_request(padata);
 	struct aead_request *req = pcrypt_request_ctx(preq);
+	int ret;
 
-	padata->info = crypto_aead_encrypt(req);
+	ret = crypto_aead_encrypt(req);
 
-	if (padata->info == -EINPROGRESS)
+	if (ret == -EINPROGRESS)
 		return;
 
+	padata->info = ret;
 	padata_do_serial(padata);
 }
 
@@ -90,6 +99,9 @@
 	struct crypto_aead *aead = crypto_aead_reqtfm(req);
 	struct pcrypt_aead_ctx *ctx = crypto_aead_ctx(aead);
 	u32 flags = aead_request_flags(req);
+	struct pcrypt_instance_ctx *ictx;
+
+	ictx = pcrypt_tfm_ictx(aead);
 
 	memset(padata, 0, sizeof(struct padata_priv));
 
@@ -103,7 +115,7 @@
 			       req->cryptlen, req->iv);
 	aead_request_set_ad(creq, req->assoclen);
 
-	err = padata_do_parallel(pencrypt, padata, &ctx->cb_cpu);
+	err = padata_do_parallel(ictx->psenc, padata, &ctx->cb_cpu);
 	if (!err)
 		return -EINPROGRESS;
 
@@ -114,12 +126,14 @@
 {
 	struct pcrypt_request *preq = pcrypt_padata_request(padata);
 	struct aead_request *req = pcrypt_request_ctx(preq);
+	int ret;
 
-	padata->info = crypto_aead_decrypt(req);
+	ret = crypto_aead_decrypt(req);
 
-	if (padata->info == -EINPROGRESS)
+	if (ret == -EINPROGRESS)
 		return;
 
+	padata->info = ret;
 	padata_do_serial(padata);
 }
 
@@ -132,6 +146,9 @@
 	struct crypto_aead *aead = crypto_aead_reqtfm(req);
 	struct pcrypt_aead_ctx *ctx = crypto_aead_ctx(aead);
 	u32 flags = aead_request_flags(req);
+	struct pcrypt_instance_ctx *ictx;
+
+	ictx = pcrypt_tfm_ictx(aead);
 
 	memset(padata, 0, sizeof(struct padata_priv));
 
@@ -145,7 +162,7 @@
 			       req->cryptlen, req->iv);
 	aead_request_set_ad(creq, req->assoclen);
 
-	err = padata_do_parallel(pdecrypt, padata, &ctx->cb_cpu);
+	err = padata_do_parallel(ictx->psdec, padata, &ctx->cb_cpu);
 	if (!err)
 		return -EINPROGRESS;
 
@@ -192,6 +209,8 @@
 	struct pcrypt_instance_ctx *ctx = aead_instance_ctx(inst);
 
 	crypto_drop_aead(&ctx->spawn);
+	padata_free_shell(ctx->psdec);
+	padata_free_shell(ctx->psenc);
 	kfree(inst);
 }
 
@@ -233,12 +252,22 @@
 	if (!inst)
 		return -ENOMEM;
 
+	err = -ENOMEM;
+
 	ctx = aead_instance_ctx(inst);
+	ctx->psenc = padata_alloc_shell(pencrypt);
+	if (!ctx->psenc)
+		goto out_free_inst;
+
+	ctx->psdec = padata_alloc_shell(pdecrypt);
+	if (!ctx->psdec)
+		goto out_free_psenc;
+
 	crypto_set_aead_spawn(&ctx->spawn, aead_crypto_instance(inst));
 
 	err = crypto_grab_aead(&ctx->spawn, name, 0, 0);
 	if (err)
-		goto out_free_inst;
+		goto out_free_psdec;
 
 	alg = crypto_spawn_aead_alg(&ctx->spawn);
 	err = pcrypt_init_instance(aead_crypto_instance(inst), &alg->base);
@@ -271,6 +300,10 @@
 
 out_drop_aead:
 	crypto_drop_aead(&ctx->spawn);
+out_free_psdec:
+	padata_free_shell(ctx->psdec);
+out_free_psenc:
+	padata_free_shell(ctx->psenc);
 out_free_inst:
 	kfree(inst);
 	goto out;
@@ -362,11 +395,12 @@
 
 static void __exit pcrypt_exit(void)
 {
+	crypto_unregister_template(&pcrypt_tmpl);
+
 	pcrypt_fini_padata(pencrypt);
 	pcrypt_fini_padata(pdecrypt);
 
 	kset_unregister(pcrypt_kset);
-	crypto_unregister_template(&pcrypt_tmpl);
 }
 
 subsys_initcall(pcrypt_init);
--- linux-ein-5.4.0.orig/crypto/rng.c
+++ linux-ein-5.4.0/crypto/rng.c
@@ -34,7 +34,6 @@
 	u8 *buf = NULL;
 	int err;
 
-	crypto_stats_get(alg);
 	if (!seed && slen) {
 		buf = kmalloc(slen, GFP_KERNEL);
 		if (!buf)
@@ -46,6 +45,7 @@
 		seed = buf;
 	}
 
+	crypto_stats_get(alg);
 	err = crypto_rng_alg(tfm)->seed(tfm, seed, slen);
 	crypto_stats_rng_seed(alg, err);
 out:
--- linux-ein-5.4.0.orig/crypto/rsa-pkcs1pad.c
+++ linux-ein-5.4.0/crypto/rsa-pkcs1pad.c
@@ -213,16 +213,14 @@
 		struct crypto_async_request *child_async_req, int err)
 {
 	struct akcipher_request *req = child_async_req->data;
-	struct crypto_async_request async_req;
 
 	if (err == -EINPROGRESS)
-		return;
+		goto out;
 
-	async_req.data = req->base.data;
-	async_req.tfm = crypto_akcipher_tfm(crypto_akcipher_reqtfm(req));
-	async_req.flags = child_async_req->flags;
-	req->base.complete(&async_req,
-			pkcs1pad_encrypt_sign_complete(req, err));
+	err = pkcs1pad_encrypt_sign_complete(req, err);
+
+out:
+	akcipher_request_complete(req, err);
 }
 
 static int pkcs1pad_encrypt(struct akcipher_request *req)
@@ -331,15 +329,14 @@
 		struct crypto_async_request *child_async_req, int err)
 {
 	struct akcipher_request *req = child_async_req->data;
-	struct crypto_async_request async_req;
 
 	if (err == -EINPROGRESS)
-		return;
+		goto out;
+
+	err = pkcs1pad_decrypt_complete(req, err);
 
-	async_req.data = req->base.data;
-	async_req.tfm = crypto_akcipher_tfm(crypto_akcipher_reqtfm(req));
-	async_req.flags = child_async_req->flags;
-	req->base.complete(&async_req, pkcs1pad_decrypt_complete(req, err));
+out:
+	akcipher_request_complete(req, err);
 }
 
 static int pkcs1pad_decrypt(struct akcipher_request *req)
@@ -475,6 +472,8 @@
 	pos++;
 
 	if (digest_info) {
+		if (digest_info->size > dst_len - pos)
+			goto done;
 		if (crypto_memneq(out_buf + pos, digest_info->data,
 				  digest_info->size))
 			goto done;
@@ -494,7 +493,7 @@
 			   sg_nents_for_len(req->src,
 					    req->src_len + req->dst_len),
 			   req_ctx->out_buf + ctx->key_size,
-			   req->dst_len, ctx->key_size);
+			   req->dst_len, req->src_len);
 	/* Do the actual verification step. */
 	if (memcmp(req_ctx->out_buf + ctx->key_size, out_buf + pos,
 		   req->dst_len) != 0)
@@ -509,15 +508,14 @@
 		struct crypto_async_request *child_async_req, int err)
 {
 	struct akcipher_request *req = child_async_req->data;
-	struct crypto_async_request async_req;
 
 	if (err == -EINPROGRESS)
-		return;
+		goto out;
+
+	err = pkcs1pad_verify_complete(req, err);
 
-	async_req.data = req->base.data;
-	async_req.tfm = crypto_akcipher_tfm(crypto_akcipher_reqtfm(req));
-	async_req.flags = child_async_req->flags;
-	req->base.complete(&async_req, pkcs1pad_verify_complete(req, err));
+out:
+	akcipher_request_complete(req, err);
 }
 
 /*
@@ -537,7 +535,7 @@
 
 	if (WARN_ON(req->dst) ||
 	    WARN_ON(!req->dst_len) ||
-	    !ctx->key_size || req->src_len < ctx->key_size)
+	    !ctx->key_size || req->src_len != ctx->key_size)
 		return -EINVAL;
 
 	req_ctx->out_buf = kmalloc(ctx->key_size + req->dst_len, GFP_KERNEL);
--- linux-ein-5.4.0.orig/crypto/seqiv.c
+++ linux-ein-5.4.0/crypto/seqiv.c
@@ -25,7 +25,7 @@
 	struct aead_request *subreq = aead_request_ctx(req);
 	struct crypto_aead *geniv;
 
-	if (err == -EINPROGRESS)
+	if (err == -EINPROGRESS || err == -EBUSY)
 		return;
 
 	if (err)
--- linux-ein-5.4.0.orig/crypto/serpent_generic.c
+++ linux-ein-5.4.0/crypto/serpent_generic.c
@@ -449,8 +449,9 @@
 }
 EXPORT_SYMBOL_GPL(serpent_setkey);
 
-void __serpent_encrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src)
+void __serpent_encrypt(const void *c, u8 *dst, const u8 *src)
 {
+	const struct serpent_ctx *ctx = c;
 	const u32 *k = ctx->expkey;
 	const __le32 *s = (const __le32 *)src;
 	__le32	*d = (__le32 *)dst;
@@ -514,8 +515,9 @@
 	__serpent_encrypt(ctx, dst, src);
 }
 
-void __serpent_decrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src)
+void __serpent_decrypt(const void *c, u8 *dst, const u8 *src)
 {
+	const struct serpent_ctx *ctx = c;
 	const u32 *k = ctx->expkey;
 	const __le32 *s = (const __le32 *)src;
 	__le32	*d = (__le32 *)dst;
--- linux-ein-5.4.0.orig/crypto/shash.c
+++ linux-ein-5.4.0/crypto/shash.c
@@ -20,12 +20,24 @@
 
 static const struct crypto_type crypto_shash_type;
 
-int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
-		    unsigned int keylen)
+static int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
+			   unsigned int keylen)
 {
 	return -ENOSYS;
 }
-EXPORT_SYMBOL_GPL(shash_no_setkey);
+
+/*
+ * Check whether an shash algorithm has a setkey function.
+ *
+ * For CFI compatibility, this must not be an inline function.  This is because
+ * when CFI is enabled, modules won't get the same address for shash_no_setkey
+ * (if it were exported, which inlining would require) as the core kernel will.
+ */
+bool crypto_shash_alg_has_setkey(struct shash_alg *alg)
+{
+	return alg->setkey != shash_no_setkey;
+}
+EXPORT_SYMBOL_GPL(crypto_shash_alg_has_setkey);
 
 static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key,
 				  unsigned int keylen)
--- linux-ein-5.4.0.orig/crypto/tcrypt.c
+++ linux-ein-5.4.0/crypto/tcrypt.c
@@ -198,8 +198,8 @@
 			goto out;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount * num_mb, secs, (long)bcount * blen * num_mb);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount * num_mb, secs, (u64)bcount * blen * num_mb);
 
 out:
 	kfree(rc);
@@ -468,8 +468,8 @@
 			return ret;
 	}
 
-	printk("%d operations in %d seconds (%ld bytes)\n",
-	       bcount, secs, (long)bcount * blen);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+	        bcount, secs, (u64)bcount * blen);
 	return 0;
 }
 
@@ -759,8 +759,8 @@
 			goto out;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount * num_mb, secs, (long)bcount * blen * num_mb);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount * num_mb, secs, (u64)bcount * blen * num_mb);
 
 out:
 	kfree(rc);
@@ -1196,8 +1196,8 @@
 			goto out;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount * num_mb, secs, (long)bcount * blen * num_mb);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount * num_mb, secs, (u64)bcount * blen * num_mb);
 
 out:
 	kfree(rc);
@@ -1281,15 +1281,6 @@
 			goto out_free_tfm;
 		}
 
-
-	for (i = 0; i < num_mb; ++i)
-		if (testmgr_alloc_buf(data[i].xbuf)) {
-			while (i--)
-				testmgr_free_buf(data[i].xbuf);
-			goto out_free_tfm;
-		}
-
-
 	for (i = 0; i < num_mb; ++i) {
 		data[i].req = skcipher_request_alloc(tfm, GFP_KERNEL);
 		if (!data[i].req) {
@@ -1434,8 +1425,8 @@
 			return ret;
 	}
 
-	pr_cont("%d operations in %d seconds (%ld bytes)\n",
-		bcount, secs, (long)bcount * blen);
+	pr_cont("%d operations in %d seconds (%llu bytes)\n",
+		bcount, secs, (u64)bcount * blen);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/crypto/testmgr.c
+++ linux-ein-5.4.0/crypto/testmgr.c
@@ -2102,6 +2102,7 @@
 	 * If the key or authentication tag size couldn't be set, no need to
 	 * continue to encrypt.
 	 */
+	vec->crypt_error = 0;
 	if (vec->setkey_error || vec->setauthsize_error)
 		goto done;
 
@@ -2245,10 +2246,12 @@
 					req, tsgls);
 		if (err)
 			goto out;
-		err = test_aead_vec_cfg(driver, DECRYPT, &vec, vec_name, cfg,
-					req, tsgls);
-		if (err)
-			goto out;
+		if (vec.crypt_error == 0) {
+			err = test_aead_vec_cfg(driver, DECRYPT, &vec, vec_name,
+						cfg, req, tsgls);
+			if (err)
+				goto out;
+		}
 		cond_resched();
 	}
 	err = 0;
@@ -2678,6 +2681,15 @@
 	skcipher_request_set_callback(req, 0, crypto_req_done, &wait);
 	skcipher_request_set_crypt(req, &src, &dst, vec->len, iv);
 	vec->crypt_error = crypto_wait_req(crypto_skcipher_encrypt(req), &wait);
+	if (vec->crypt_error != 0) {
+		/*
+		 * The only acceptable error here is for an invalid length, so
+		 * skcipher decryption should fail with the same error too.
+		 * We'll test for this.  But to keep the API usage well-defined,
+		 * explicitly initialize the ciphertext buffer too.
+		 */
+		memset((u8 *)vec->ctext, 0, vec->len);
+	}
 done:
 	snprintf(name, max_namelen, "\"random: len=%u klen=%u\"",
 		 vec->len, vec->klen);
@@ -4104,6 +4116,15 @@
 			.cipher = __VECS(tf_cbc_tv_template)
 		},
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "cbc-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_cbc_tv_template)
+		}
+	}, {
+#endif
 		.alg = "cbcmac(aes)",
 		.fips_allowed = 1,
 		.test = alg_test_hash,
@@ -4246,6 +4267,15 @@
 			.cipher = __VECS(tf_ctr_tv_template)
 		}
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "ctr-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_ctr_tv_template)
+		}
+	}, {
+#endif
 		.alg = "cts(cbc(aes))",
 		.test = alg_test_skcipher,
 		.fips_allowed = 1,
@@ -4532,6 +4562,15 @@
 			.cipher = __VECS(xtea_tv_template)
 		}
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "ecb-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_tv_template)
+		}
+	}, {
+#endif
 		.alg = "ecdh",
 		.test = alg_test_kpp,
 		.fips_allowed = 1,
@@ -5085,6 +5124,15 @@
 			.cipher = __VECS(tf_xts_tv_template)
 		}
 	}, {
+#if IS_ENABLED(CONFIG_CRYPTO_PAES_S390)
+		.alg = "xts-paes-s390",
+		.fips_allowed = 1,
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aes_xts_tv_template)
+		}
+	}, {
+#endif
 		.alg = "xts4096(paes)",
 		.test = alg_test_null,
 		.fips_allowed = 1,
--- linux-ein-5.4.0.orig/crypto/xts.c
+++ linux-ein-5.4.0/crypto/xts.c
@@ -328,7 +328,7 @@
 	crypto_free_cipher(ctx->tweak);
 }
 
-static void free(struct skcipher_instance *inst)
+static void free_inst(struct skcipher_instance *inst)
 {
 	crypto_drop_skcipher(skcipher_instance_ctx(inst));
 	kfree(inst);
@@ -439,7 +439,7 @@
 	inst->alg.encrypt = encrypt;
 	inst->alg.decrypt = decrypt;
 
-	inst->free = free;
+	inst->free = free_inst;
 
 	err = skcipher_register_instance(tmpl, inst);
 	if (err)
--- linux-ein-5.4.0.orig/debian.ein/abi/abiname
+++ linux-ein-5.4.0/debian.ein/abi/abiname
@@ -0,0 +1 @@
+1045
--- linux-ein-5.4.0.orig/debian.ein/abi/arm64/ein
+++ linux-ein-5.4.0/debian.ein/abi/arm64/ein
@@ -0,0 +1,19541 @@
+EXPORT_SYMBOL	 arch/arm64/lib/xor-neon 0xd4671463	xor_block_inner_neon
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x0dbff95b	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x193e16b6	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x198ea9c1	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x7f66b5b8	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x831448f7	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x838cb856	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x40f6e1c2	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x547fab53	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x8c9a3765	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x117e68e7	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0x8384536a	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x3fe434f2	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x52dd8af9	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xb5875e7c	btbcm_patchram
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cbcb4c	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x381968de	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xa4e8887b	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf15dcbee	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x1f918d2f	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x32831cf6	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8ba15198	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xdc9ed8a6	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x18d230f0	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xcde7490c	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xdd07e45b	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/crypto/caam/sm_test 0x3b6fc008	caam_sm_example_init
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x0c8e8165	cdns_mhdp_mailbox_validate_receive
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x0f9e8e3c	cdns_mhdp_event_config
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x136cb232	cdns_mhdp_load_firmware
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x14178263	cdns_mhdp_get_fw_clk
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x14ca6ddf	cdns_mhdp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x27027223	cdns_mhdp_set_fw_clk
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x2ecdcbf4	cdns_mhdp_clock_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x3d83a5b4	cdns_mhdp_reg_write_bit
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x43766fef	cdns_mhdp_bus_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x527a6937	cdns_mhdp_i2c_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x5a467b29	cdns_mhdp_audio_mute
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x62d49eeb	cdns_mhdp_set_firmware_active
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x6728fa11	cdns_mhdp_mailbox_send
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x6fb31383	cdns_mhdp_read_hpd
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x7940ccd2	cdns_mhdp_reg_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x87e612e8	cdns_mhdp_get_event
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x8d276930	cdns_mhdp_train_link
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x971ef8fc	cdns_mhdp_mailbox_read_receive
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x97cd86f7	cdns_mhdp_config_video
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x9cc26611	cdns_mhdp_get_last_i2c_status
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xa5704448	cdns_phy_reg_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xac1d57c9	cdns_mhdp_audio_config
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xb48527b8	cdns_mhdp_reg_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xbfe455df	cdns_mhdp_bus_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xc35fd285	cdns_mhdp_set_host_cap
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xce284cdb	cdns_mhdp_i2c_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xd07e4f8a	cdns_phy_reg_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xdf6691db	cdns_mhdp_check_alive
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xebb334af	cdns_mhdp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xf67fadc7	cdns_mhdp_audio_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xfbb9b9a4	cdns_mhdp_set_video_status
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xfffacf78	cdns_mhdp_get_edid_block
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/sec-dsim 0x24b95e85	sec_mipi_dsim_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/sec-dsim 0x33cf12b1	sec_mipi_dsim_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/sec-dsim 0x44677bee	sec_mipi_dsim_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/sec-dsim 0x74bf95a6	sec_mipi_dsim_check_pll_out
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/sec-dsim 0xb6634341	sec_mipi_dsim_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0580059e	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1a6ce701	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1eb41737	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2098d115	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3eedafd6	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6df553cb	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x73e6754a	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x82837e09	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x978dd1ea	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9f34edd1	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb69f1f9f	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xcb2580e8	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd04db6d0	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd4f3a470	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xdc49299e	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe92e3a0e	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe9ad09b3	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf7c064ce	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x10a8763c	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x395fcb66	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x7944f2cd	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x845962e5	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x86b3cf1a	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8a450ff7	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9ddd083c	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa0014a99	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa5fa2c77	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb167566c	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb3edc160	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc3168aa0	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc73f52b4	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd43ba9f2	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe1cf56de	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe59fe4bf	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf38a38f8	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfc16c50f	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfc7d7e95	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x01c479dc	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x035fc2d0	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0933602b	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0bec0cf8	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x172ca46a	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x19d12ce6	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1b8d6eb8	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x252d6972	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x25ca3fc0	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x270bc490	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2a8f8ee5	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2daaf907	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e950887	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2ecc8260	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x330a2215	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x34ab66a2	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3bef14fe	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x48cee9dd	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4b8b2867	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x510aeef4	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x54db24c4	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5573e251	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x55a29848	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5d99cef0	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6020296f	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x64182b66	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x69b570cb	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x70c8b2f0	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7364116b	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7bd3cbd1	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7c8e30ac	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x80739efa	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x81b453b5	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x847df63a	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x84a82f8d	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8b7189e0	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8f6e6e58	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x94dc2ba7	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x99a82fa1	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9a994ea8	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa07cd248	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa92bafde	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaace2efe	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac779ba2	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac9a0048	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xace635e6	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb2a97535	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb8cdc51d	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbda95199	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcadc7d94	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd198ab08	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd531771b	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd83a5f16	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdc0e9c78	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdd19c4bc	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xde0ed454	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe1257b71	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe51c9f0b	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe5f58d07	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe8bfa775	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeaabdeac	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf852a2eb	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf97a08db	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x6018d3e8	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x2b1b1a82	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xed3f914c	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x894cb8f7	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xad2f3ce2	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xec5f5bb2	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0efbfe1a	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x113a7414	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x37d3e800	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x47cc9cff	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x4ca604bc	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x4db6473c	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6c271bca	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9aaa4a64	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9e0d2b10	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9e8df757	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa1c0110f	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa3c67ea3	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xae07100b	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb00abb77	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb7902532	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf3e3ff76	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x273f3b77	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x4478d182	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xc7ffbbc3	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x1fc5c159	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x2d96b599	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x007635d4	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x9d5cc47d	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xabe5543a	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xc2105a38	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x71d27113	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x461829f6	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x47276740	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x492a6daa	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4d32e29b	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5132c72c	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x705b750f	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x958a9e05	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xd198ce3a	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xddb3dbea	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xde5d949a	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x0b0051bd	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x6db55de8	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x9f1e400e	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xeccc4f5e	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x200703a9	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x279852f4	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5c8ee488	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x61bf9440	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x81cabed0	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xa437c9d0	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe63254d1	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf07a5334	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf9b10b63	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x1756f114	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x1c6aba3e	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x69fff0ea	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x9443c2a6	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xd3841647	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x810808c0	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe0263b2f	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe7e1bd93	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x191d9678	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x21fb0db2	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x29fe7c73	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3b62403b	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x4207151d	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x4a91d221	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x4aa25219	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x505bc7df	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6c759d88	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8876dad4	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8bfbd65a	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8ed19f72	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x9e1c7c1b	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xaf464679	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc2c1d27e	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xd5dc143c	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe6d19cd9	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf7011307	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x343bc9a7	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xff27aa00	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0xdccd0fbc	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x07dcfc1f	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x63b2556f	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x7534be60	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xd42d06d8	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xdd851da5	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xf8af5fdf	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x25727692	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xeb0ccb40	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xa0302467	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xdf746feb	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xf7ff1a8f	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x1de5b6f0	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xc401b3fa	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0707b369	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x148e591f	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x18d8a629	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x26f98aa5	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3adedbe5	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3b9cddd2	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3dbf05b5	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5c495f6f	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5e5f8070	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x65a49790	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x786281c2	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x89993cc3	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x92d0fed6	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9cab7ff5	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xaf1a0940	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb19122c4	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb1c43687	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbcf66580	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc486b6be	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xcc0c7a26	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd784d7a4	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdca8ef0d	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf5aeed73	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x403e96b0	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x04da2031	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x62a18c35	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xa5d99b37	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xb340f449	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x2bf4d80e	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x9d0b0207	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x9ef8386f	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xca27da14	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x7027e8ee	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x7109e70e	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x1ac8f275	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x2b12491d	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x43d29e45	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xbd6bd9e8	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xc0f9299f	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xd8695b4b	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x1d9f8624	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x2e509132	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x81e4dfd8	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xf7224ff2	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x695b947e	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xcc72cc72	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xcc8bb67e	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x316b9f11	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x9ac17aa7	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xbe55e639	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xc78bf80c	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xdbed4273	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xbb154ed8	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xedd32c8d	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x1925c855	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x215b1139	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x2595826f	st_press_common_probe
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1e071405	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x23da5e0c	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x393302ae	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x475f579c	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x58f22f76	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x59bfa9db	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5f7cecde	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6a8fc42b	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x97a8eb74	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9b1c92d5	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa21b1752	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa48fcbdc	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb79a6dcd	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xba30ab6f	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc07123ff	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc4668512	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcffdfd01	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdd8b5a2b	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00407906	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x047816e1	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09939cbc	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a1c7202	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0af9bed1	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0afdb80a	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b54c949	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0bfd4a5f	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d0f8c35	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d42e6fe	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d5e19ec	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f711225	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10230c24	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x106a3b89	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1094a1fc	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1094c0d3	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x112b8a8a	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x115e8d6b	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x122a6aa7	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x175956b5	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19286771	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x203d45bd	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22b82424	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x23f19401	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x247c39a4	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24b4393e	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2773fda8	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x282ca64f	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28c5c28a	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2aedd402	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b2c8923	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e78d434	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f80cb44	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3093e759	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31f14731	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x32b6e5d5	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x347c258a	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3507349f	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x377d03d8	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38ccd2e9	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x395bb6eb	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a110d17	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a53cfff	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b1c2762	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b9d07d5	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bf8b09a	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c1320f8	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c3db45e	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3c40f146	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3cde42c3	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d2c2c26	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3edb4730	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x41528c5a	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x415de2fa	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43e07060	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4432c925	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x44ac6baa	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45197c59	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46764f20	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x480f2001	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4838bbed	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48a18e59	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x493a7191	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4a5a139c	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4d89777b	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4daa01dc	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f4da75d	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50927431	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x519c4a1b	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x51f0d83d	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5388a9c6	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x541129f6	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x543d0196	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c02b6d1	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cdda5dc	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5d5bf932	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5dbeabf4	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62467152	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62776eb7	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65027be3	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6838b2cb	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6853b6ad	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x68c17485	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a391125	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a3f5d20	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c88588d	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e85a23f	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f187207	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6fb32427	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x722e8b59	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x737c5a08	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x786476e2	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7908fde1	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79ed9819	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b42eb25	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bde5087	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c12c64c	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7fd36f92	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80259a0b	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8061d546	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81da1fe4	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81e50ac9	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86e339b0	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8771ec3a	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b847744	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b901da3	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8cff1d6e	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f1e41ef	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f671f52	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x907d47e1	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e9d878	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9145d89c	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x91551b50	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93c9712c	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94d20c7d	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94d72447	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95ff8b07	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9612ea2f	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x970ca5d9	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x987d6c93	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x991b263d	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a729e7d	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9af7574a	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b74c421	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9becc97f	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9fac1089	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa0a92942	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2dbe8a5	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa37ae39b	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa4b70078	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa74690f3	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa553c2f	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xac2e6e3c	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf6f2168	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf8c0458	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb021b2ea	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb43e995a	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4aa6d24	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb548c80c	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7372d42	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbbb1af47	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd45196b	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc00a9f84	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc00e3ef9	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc12a223a	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc27f7481	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc6d02cb0	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc771a4ff	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc98f030a	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc9a38992	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb35703e	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcc7de498	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd3e2ad2	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd5f68dd	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcdb974f8	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf1053e0	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd175adc4	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd355253b	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd47455fe	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd9e2754e	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdbe2f71c	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc039d0a	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdeedc440	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe241dcca	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe2e8d0a8	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe644dc65	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe72a5702	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe76947e8	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb4b4ac0	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xecac737d	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee0aadec	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf22e9583	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf358b085	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf35da93f	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3acf827	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4ceee73	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf59f94c3	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ae2d43	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf88e2b88	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfa82f333	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb39991c	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb51c735	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x09c67e42	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x09ea0af9	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0d103b93	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x26dbbc2d	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2e1bd76c	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x37e5eeae	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3cc236a4	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3d152422	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3d9d34f8	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x40ca9cce	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x617be396	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x624f8526	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x646ff11e	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6cc54bf3	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x73f14ac4	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x75f21a4e	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x823b06fa	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x93eaf7af	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa3a7c86f	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xac20a241	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb00a5d68	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb636828c	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xba5a54cd	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc5b988f7	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd55a3764	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xda06e86a	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xdf47132a	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe2270a54	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xea67f956	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xef11a199	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3bd77f0f	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x745c0fb4	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x79d6117c	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb97499ea	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xc0a8cae4	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xc9b01d41	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xee6701be	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf815597a	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x04169a3b	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x084df459	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0a5f1b60	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1724814e	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1930e38f	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x237babbe	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x292e2502	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2f7fe693	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x314977c9	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3b1f7303	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x47ed9f88	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5d230f13	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x68485933	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x68b65250	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6dbc110f	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x735032ba	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x86d560e5	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8ab462c8	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8c1f1055	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x938006a2	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x94de85f0	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x973820b9	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9963c061	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9e629476	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xab30db56	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xaca046d6	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbea37840	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc05be11b	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe4cdc26b	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xff8beadd	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x28e87380	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x8da5c189	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x921a02f5	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x957dbaa5	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x9c3b1af8	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xab864118	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xde34e3c4	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xdec5308b	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xf92abc2d	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x0fbbe835	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x13956289	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x50b74247	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x6bbf80b8	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xfed694ba	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x668cb405	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xaf4bba4d	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xd1347b31	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x79cfa6fa	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x70e0ad07	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x957b58a9	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xac8087b8	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xdf2c9ec6	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x72c0a087	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x07f4241f	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x187be246	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xe7013bd2	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf0d93038	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf1301579	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x43010afd	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x7265b669	ad7879_probe
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x13d87b4a	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x35658d18	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x395c33c2	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x51c3a06d	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8a73d9fd	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9058a331	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xce590f0c	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf481586e	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf6113236	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf709578d	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x058cd0c8	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x17222977	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1bc155e2	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x24056ce9	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x28d04c0f	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x34f9653c	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5465cf29	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5adc695c	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x64a29723	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x691ca791	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6eeaba75	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa540dce5	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb4314839	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc8d34b0a	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdae97c43	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdc93efce	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe7f46eb7	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf04be84d	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf113cd03	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf4190120	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf57abc05	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf5bf746f	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf6ddf0e3	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x0866cb94	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x5809963f	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xf85ae218	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0xf90ea003	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x56fc7ac0	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x71c0cdf4	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x7859b8ff	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xcdd1184e	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xd18144f3	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xdf5e310b	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/raid456 0x42227d4d	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0x4616dcf5	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x8672463f	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xd805055e	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x0071b6dd	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x8a3be2eb	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa1ddffbc	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x294e2660	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x32a75a95	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x38ed22ee	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x41f51799	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x4712cb65	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x5bb74721	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x5e85ca98	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x7764c7b8	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xdaa9baa6	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xfe0cce56	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2fc6f6d8	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x471ebed1	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbf2a854e	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x041e1d7a	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x09ff45db	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0b61e520	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0bbd6584	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x169ff8f1	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1aebf9bf	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1bdc39ec	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1c122d28	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28482aa7	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2bd7d86b	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315379e7	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3dc27a95	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x441d777e	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b620912	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x505e29f6	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x514630a6	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x52f53845	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5de87b74	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6770f7df	video_usercopy
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6e80c515	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7002405e	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x730286e5	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x772548bc	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78ad2c6c	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7b8b90fb	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x87014195	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8d46dd12	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x97be452b	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa268025c	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa26bdc63	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa5796057	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa6f58bdc	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa92037c1	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xabeac320	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb2d025ff	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb717890d	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb79efb1c	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb7f4041d	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc076296e	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc344f85a	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc37dcc1f	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc3d0818d	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc405f54a	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc6d063d9	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc920dd87	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc946fdaf	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xce118e1c	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xceff6074	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcfa64cc5	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd2f27076	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd8e7d197	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdd9e62a6	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe5be6628	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe74e6f0b	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe79747ef	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xec182714	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xedcae971	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xee5f1b47	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf10faf88	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf1303a1c	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf4045e76	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf47ff596	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf90bce47	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf92d0057	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfa9753bd	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x00e94e8d	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x423add98	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4c5cc888	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x585b065e	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6446ad8f	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x8a973c49	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x972227f6	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa73c08ae	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa869d733	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc5fe569b	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xcc5bf5b5	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf4602c58	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x050a2771	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x1fdc5f9e	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x2da6c79a	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x5907326f	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x9c03ada6	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x9d1295a3	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x1ff709af	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x838a11ff	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0f63bec3	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x4c42041f	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x4c4bc6ae	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x5355f9d4	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x792b5943	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8bd7224b	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9782c432	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xae5dde23	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xbe851d22	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe84ecd2e	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xec78ea11	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xaf3008df	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xcf084153	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x04f87f90	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x423da6d0	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xc6cb17f6	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x03054109	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x11fe54f6	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x229468eb	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2f608942	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4ba73e1a	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x58a59dd5	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x87f66fbb	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xaf7efbad	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd9b8abae	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xdec50f6f	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe14caf9c	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf66059c4	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x0652f473	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x76fa0014	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xa10c7b28	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd427abc3	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xdb4e4882	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xe0cff463	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xe33fa33b	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xa6e127d6	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0xe3558bb5	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x01d461fe	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x7b627ef9	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x12d3149f	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xe88af079	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x22abb6f0	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3afaa24c	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x4f3ebd73	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x57a78303	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x759e7e5e	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x85a084e9	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xd5d99028	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xef43ea45	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xf3ce166d	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xf42bfb68	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x21fb9fc6	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x507382bb	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0105b27c	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0379cd29	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x094f844e	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x09de4d38	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0b3b01ca	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0d157f6e	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x16a6be26	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1b04c9bb	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1b5779d8	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x247c166b	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x27237e3f	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2b8fcecf	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x387957b6	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3d2b1fa0	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4289ae58	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4cf5744a	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6041c531	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x635760fb	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x65353390	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x68dbe475	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6e64030e	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x74b3b06b	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7fd8acf7	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x82a9d277	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x91e7dd13	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x96516c9e	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9a187241	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9e866990	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa99c917d	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xac0e2751	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaf375cc5	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbfef8d8c	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcdeb006f	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd8adb288	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe8944126	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xeb1eb1b0	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf16cd641	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfffa6c2b	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x13b130d0	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xbb20f60e	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xc8930b03	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xccaf65db	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xf7ae278c	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xfa017ecf	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x8186f7b5	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xf5407ee4	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x883148f8	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x8d7432dd	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xb8cc70e4	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xe16a60c8	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x02588d73	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xa6297e32	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x5832a7f9	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x5f597b21	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x9ca9465d	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xba85372f	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xf6778e69	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xaa98d417	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xcc9f50b0	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x9d94447c	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xebb8a2f8	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-octeon 0x8a1d5c26	octeon_mdiobus_force_mod_depencency
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x2434b4a8	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x8ab956a0	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xb6a9125e	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf1eaea97	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/team/team 0x20dd838f	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x6f44c37f	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x77656532	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x912125e3	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xc591cc59	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0xd809d5be	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xdf690f0c	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xe3927f1b	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x12999423	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x145b8981	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x1a3b49e3	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x4e0cc2dc	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x5c62532b	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x91b84c2e	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa14aabf6	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xaa7a6b0e	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd3f01e4f	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf98aff50	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0xb9519fc5	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x1cff48f2	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x3c6adefb	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4a822426	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4ece4806	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6799e043	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x693adb60	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x81cd7235	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8d8d379f	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xace9f2b1	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb8c3c642	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe4c8bdd7	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe9a39106	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xeba13849	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x03c0d973	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x068733f9	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x17f1c0d3	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1a233a28	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2577446f	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2a273a0a	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x32ec2c1a	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x36c543f5	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x36d6a046	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x39ade22f	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b7c3434	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3c557ca1	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x43324634	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x43b2e453	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x479d0705	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50c12ec3	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x53cc01c7	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x57f11cae	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5aff53bb	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6c48699a	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x799ad232	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x807b4fe6	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x83ee1e3e	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8e1618d0	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x913f6863	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa0d25b07	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa446fb48	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa4bfe367	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa67d61c4	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xac82e0f4	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc14846c0	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc218b0f0	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc8041eb5	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc8bc0402	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xce2bed7d	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcfacb63e	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd21779c3	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd41a4c14	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd9edb5cf	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdcc0a29f	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe316890d	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe4d8810e	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe6a68b4a	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf2215367	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf59b6fe0	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf87df3a8	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfe16b992	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0f77317e	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1f11f028	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3ac727b5	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5d72c41c	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x68ee5f27	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x70ea77ee	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7c690cc0	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb6d03654	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe53b81d3	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfd9576b3	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfd9923a3	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0bdeda6e	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x12d6a436	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x195fb468	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3dbd43a6	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3fda9f7a	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x40259821	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x444cf3c7	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4b2eb1d7	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x540a5154	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x59981b38	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x66821569	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7bf582fb	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x96304d9f	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x974d2c5e	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x99eef7fe	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9e85a283	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa1823681	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc61e5b9a	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdf48e6c0	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe3666ec1	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf66ba856	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf766fc5d	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfa6b818b	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x01f7ee68	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x02e91b81	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x042edb55	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x06682879	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a15b550	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f34d06a	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x10d64a2f	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x17f819ee	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x188bcc1d	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d224dc4	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1df476fa	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e2f8d51	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f5f9fa8	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x212cc838	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x23594d81	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24f46a7b	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x288f8c78	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cb12b44	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x32c897cf	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x33ef2aac	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36356ee8	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a59e9c7	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e09a1b6	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f8a9408	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4245491d	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43aec57d	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cc95de6	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f04fe63	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x50ea1e1e	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x51483d53	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x53856de0	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x558d4691	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ec20a8e	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fe92f13	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x66d01ef6	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x69f4501d	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d4b8dfc	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e2c9d3f	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ee5b40a	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6eed7660	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fa62c36	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7078ef2b	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x741535c2	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x755282a4	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x755afe2d	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x763e679a	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7add6c81	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f8bbced	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x83214f5c	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x84836c98	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x86cebaa1	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8854f2dc	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c5c54ef	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e172df5	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e4613fe	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x90f9c2ce	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x95dce372	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x96f485b5	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d70111d	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa284b5cc	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa582fa50	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5872c8d	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa690f717	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa9bd0ed	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaad09a9f	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xae0b906f	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb245ddfb	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb384c0f3	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb44bb1c3	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5f33cb4	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb64edfd2	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0528707	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc13e4b5f	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc14d5f07	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc17004a6	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1731887	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2ac4192	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2fb6ef7	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3aed43a	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc530ca9a	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6b1d7e2	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xca172871	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xca8dd0aa	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf2d2a50	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1ae4c29	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1f952a1	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3f89632	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd44c8cff	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7dc60ff	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc7e7678	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfda8e1b	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe82d991e	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe97adc8a	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb9b719c	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeba63add	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf005d25f	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf028d1e8	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf075a28b	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1a579c9	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1b72a04	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf37a6a4a	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3cf901a	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf879fe36	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8a4cb99	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8e2c73f	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc3cfb45	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe6b8022	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x25a121df	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x270a4089	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3d980517	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4123648f	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8954b426	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8a601c5c	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x985fb646	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9dbcd801	brcmu_dbg_hex_dump
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa22131d2	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa5ef06bb	brcmu_prpkt
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xacd15486	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc9ede7e1	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xdb4f4907	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe608d2d8	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xfef25c44	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x063abc8a	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0cc2eb93	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0d501b71	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x179df2ec	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1eb068d6	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2d129a3c	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2d2cffec	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x325e0fc8	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3428e4e2	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3567d92f	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x385e3172	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x387b0636	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3dd847b9	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3f3d486b	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x513e1c20	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x590d5151	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5af6d869	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5e9e7f62	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x68ce4388	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7e06cf9b	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7e16fa0b	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x810829c0	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x83a94da1	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x90f362f0	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9940170b	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9a88ba0f	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xaef8d996	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcbb8ea3a	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcce69bea	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf2d24cb	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf79289d	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd12654c2	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd497ae2d	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd892a8c8	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe1d6f4ab	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe276a899	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe3ae8cdc	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xeb93291f	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf451f49a	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf90e9953	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfa64a34f	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x14817723	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x1f9b40bb	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x2de2490e	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7f730a92	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04450b98	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x06300625	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x12a086cd	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2867fce8	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f3740cb	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3a5b2fb7	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e9d8536	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3fe632af	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x49a7ae5f	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4f45a1ba	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x56fcea1c	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x57be5e05	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5c751d86	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x62bcab26	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6b73c5d5	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6cb71a1f	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6dde5368	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x74cff6fe	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8e3a3691	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x927d88e6	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9741b5d7	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9a6e3690	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa7742340	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaaa69d0d	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xabc294e9	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba356603	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbf8f3857	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc190fffb	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd13e272a	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd3f03aee	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd4f89ea0	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd55d5817	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0b80d0f7	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1f2922b4	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x30df6e4e	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x31887cda	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x34ca9841	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4bd2a89c	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x51894c97	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x523a1f23	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x550f425c	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5b54f94e	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8beb0f6b	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xaf57d976	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc198dec0	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xdcae7f90	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe377f6f8	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x503ff221	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xd8607da2	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xfc08f4e3	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x42aea28e	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x7d5905eb	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x3890297e	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x8baf377c	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xea0f35b6	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x36020d18	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xbeee76b5	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xe44b6e10	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x2fdf7ebb	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xa586807f	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xd7111637	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x1489be9b	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x1f055b62	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x2a7391d9	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x334c68a6	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x74c75a11	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x77296bbe	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xab4e7a91	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xda3234bb	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf5bdf888	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xfb4a5c57	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x20cb52fd	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x23971268	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x3f03a4c7	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4ed194ea	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5078d5c5	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6ab9f01f	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x89844616	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8eae47f1	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9df42804	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa0019c1b	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc081fc84	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xce1e8866	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xdb2988b0	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xdf12f29b	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe02bdf97	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe0c3826d	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe75e9de4	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf7616234	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x80a10be0	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xd5f7ed5b	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x012e1414	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x072e8d98	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x149a61a1	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x1aae926c	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x21a80e4f	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x22ef8f4a	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x2ecd735f	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x3699d470	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x3bec724b	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x3e56864e	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x3fb5a232	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x40222af8	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x48457619	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x4ac1c405	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x5813a13e	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x5f26fb63	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x6025f5d6	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x66966b92	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x679ee50b	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x6ef5855a	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x6f0eac9e	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x75750322	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x8c78984b	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x8cc08c7b	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x8e418896	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x91648b69	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0xae654fa2	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xbe9c5a84	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xc93bcefa	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xda95944d	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xdbbdd368	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xe2713eb1	parport_set_timeout
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x075c1bc8	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x3237ac0d	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x394306de	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x6664946e	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x695afc6c	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x6e2abf86	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x856b3072	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8ee6e65c	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9416794e	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xa01ce9a6	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xae78e710	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xaeaaba52	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xb932451a	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xd457cfb0	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xde39f822	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xe3a55c4f	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xee3584ce	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xfc4faa9c	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x1877ba4a	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x2cf42a8b	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x4aff8943	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x4bcd84b4	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x804c3bd8	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xad036d6b	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb21f00fa	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb2fef583	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xe8ce2254	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf50f9cd4	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0xf8f23179	pccard_static_ops
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x1b925ea4	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x391dd344	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4a4cb214	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x62ab99d9	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6b7001b0	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7dab8683	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb3c3e985	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb64c53ea	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb9519f0a	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xc55d0563	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xdeada3c8	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x041366c5	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x04caa6da	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x05e30043	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x076f0a17	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x07e98733	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0829ebc3	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x09b17163	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0bf7ac9a	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x163f2396	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1b049dfc	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2c6088c1	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2f00bdbc	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3a553401	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3e4e148e	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x42bd614d	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x48698610	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x48e7cf86	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x48f0da07	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4a56c096	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4c1f9b68	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4c30d3a6	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f307854	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x50384223	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x54f7562b	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x597f2df7	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5c29c929	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5d4c5afb	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6433f11c	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6466865d	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6707cfc8	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6cff6fe2	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6efb4970	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x74161d3b	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x79794933	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x80986f8c	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8325e7bd	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x897e3ae8	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8eaf8c23	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8f6a889d	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9285621e	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa5154c93	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa5aa4bfe	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa5cf30af	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9b1eafd	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb35acf8b	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb95dc0db	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbc45ba74	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbd4229ef	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcc576725	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd257b5fa	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd3687380	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xded7ae2f	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe2377541	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf02d1fe9	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa0c25f1	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa6a13f9	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfdd9631c	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xffff36c1	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x3f945c10	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x7823377b	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xd7b0bbe5	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x0d9ed577	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x88894107	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x087e55a1	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x20dce017	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x217c152e	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x399022da	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3db5d221	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x41fa2361	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x421ac455	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x46f6c2fd	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x4d424ac7	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x736b549d	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7f2f21c3	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x8eca7d4e	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9287f025	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x95f730f8	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb83e8274	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd794542e	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1c20c993	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1d884068	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2093bda1	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x33463a35	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3542f706	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3ae40364	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3cfd3c83	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3f611a4f	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x45714a56	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x59766471	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5e714ff8	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x75f3bd06	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x77020117	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7b107378	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x802f8545	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8cccbffe	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x94f87e3f	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9a7ed8ee	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa2c9bfde	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa57c8062	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbf8fdda5	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc1cd6125	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc33317f1	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc57324c5	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcb5eb6aa	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcc67cb06	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xce412a12	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf413e47e	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf6665ef2	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x1fdfaa33	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x4bccf7f9	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x5a5e336c	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa11cb124	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa3773d10	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x224f5b19	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x2c97c403	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x5445bd90	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xeb764cec	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xfae6d804	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x4341cf24	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xafda8024	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x08f6c5c5	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x3952b869	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x44546769	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x750a51b4	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x837000ed	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x8aba1f41	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xdfef4f24	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xe7a40aab	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xec2865d1	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x98d9cb2b	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xf0f2080c	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3cf3d66f	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x52e52654	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x6b8a0e0f	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x7dbc2a1e	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9ec22abf	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa2f8f2b1	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa7b83908	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xb7c779f7	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc88f5322	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xcbefe989	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xce57c64d	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd20839f9	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf815d30c	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x06e1b718	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x07e6c2ee	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x191ebd79	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2111288c	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2f7d56bd	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x462db728	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x67b3694c	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x687585a9	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6e0f60fc	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x72f968da	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x74f0b0f3	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x79fdcddf	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8cd398d6	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8ffe3a63	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9dd892c5	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa0991c25	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa6a9811f	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xd49fc3c2	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xeda728e2	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xffc0783f	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x25d8dc53	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2a6d85e4	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3438b86d	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3b0c05c2	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4eee70f4	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x526a82fb	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x58567781	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x5ab5a082	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6242b800	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x63ea42c3	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x75c4976d	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x79beff19	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x7c4a6f21	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9f3f94d3	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb37c52e5	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb5058b71	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb5bb514d	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xbab7322a	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc93ba55e	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcc74527b	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xdf91eb0d	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf1068023	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf31eb842	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf9ccdd48	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfe57344d	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x5d0eb013	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x907be8e7	ade7854_probe
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x00403f62	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x00a5a07b	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x07fb406a	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0d4c742c	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0d6f988b	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0f2c9de6	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x112c5c8e	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x159c1fc1	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1f9744d2	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2225f39e	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x225f6189	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2310eebc	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x32694f70	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x36b16e3c	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3b13a695	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x405cccf4	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x409c0e5c	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x40f4a814	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4fd08a6b	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x544a3ea0	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x60ac39c1	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x63b63fdc	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x67d4d694	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6decc636	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6f1128f9	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x71a4948b	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x79ed8611	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x80631479	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x91f6dfb4	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9ecc5034	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa17398ae	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb8d0474b	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc55539fd	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc8fe61ed	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc9aad95e	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca6410d0	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcc2e0787	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd439bc69	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd51d1e11	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd98dc583	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdd319678	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe33e0f67	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf71dd4da	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfe0c74e2	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x01f6d0b6	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x04290638	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0b1d268f	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0c4e205a	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cedb035	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0e19dbfc	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x126634c2	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1453bffc	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x147e5143	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x15768895	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1bb73736	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1d9ecef0	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1da60ee4	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x217f0484	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2614eccd	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26608d7f	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26e9075d	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b2b3b0d	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x305f8670	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x33d62589	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4d2b081d	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5b837aa6	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5f3a0430	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6048fe78	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x62f31330	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x699f1b42	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x69df6540	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6caa5fe9	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6eb006f8	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x72869ca1	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x73ee3709	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x76cad5ca	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7856847c	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7afced01	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7c386086	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7cad91b7	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7ea30fe0	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x813c754f	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x82b0382e	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x86478d1b	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b570c04	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8ceab700	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8e4f1eb0	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x90da37a8	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x923fba5a	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x99095492	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x99e0cbd9	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9c597367	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9df9689c	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9f523f1e	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa302c6d7	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9a17ff2	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xabbbdc95	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xae5dd44e	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb426c64e	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbb77f24d	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbd3f9c80	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc423b2eb	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcef2abb6	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcf4c6129	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcfeaf75b	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd096a5cc	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd59e6375	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd5cc7054	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xddc2ee1c	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xde313dea	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe2b0ddbb	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xebd8c8ef	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xece8712b	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf2a1fb5f	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf49e5f0a	transport_register_session
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x66092baa	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x9f8e1acf	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x0b960fe4	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x0c476632	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2adba865	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3329c1a6	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3fc46f47	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x59df2a5f	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x6ba44f7a	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x6c9930ad	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x890e906a	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xba52eb6a	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xc56b588b	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xd8558340	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdf1adf00	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xf374bf12	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x5eeac077	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x92a411b0	usb_serial_resume
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0561b8a6	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0b6b7a4b	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x18a066fb	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x27597826	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2c33d63e	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2fc6c106	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x481d5ab6	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x628b9df1	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x716756ff	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa3c3d46d	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd2e0c9b0	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf4d3b897	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x2f9e5c5b	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x36627ca1	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xa0e24a41	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xb4f642df	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x59d23ac3	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x66ffc892	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x0d3fe616	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x30bf34f7	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x4a5909e8	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x5e8bea95	lcd_device_register
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x57226d06	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xaa153d1c	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x18573054	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xf752561c	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x8864a081	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xbf6ce0e4	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xeb1ff3fb	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xee71941e	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x55255540	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xb29cfd05	bd70528_wdt_unlock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xe61e7a3a	bd70528_wdt_set
+EXPORT_SYMBOL	 fs/fscache/fscache 0x00b2013a	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x02b799f6	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x04df2d0e	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x19c67e42	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x208f1fb6	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x293b3437	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2d064664	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2ec548d7	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x47d9cb1b	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4d3b7f2c	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x58751d8d	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5967e9fe	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x59bedf5f	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5d8b8eb5	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6a399115	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6f69f660	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7044db4a	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7dab6942	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7db97912	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9aaf0036	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9b5c1761	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9e284f8e	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9e706b3f	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa16368e7	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa8f40848	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaaf35c26	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb720bed3	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbdbfaff6	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xce741aa9	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd199e078	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd73f3d72	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xde45385d	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe19a0ede	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe1e2604e	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe41c6dab	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xeacdb69f	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xed137a90	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfcaab8b3	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfe726ff1	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x3bdec0d4	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x53da245b	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x5f663d59	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8c03d64c	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xa0026dd0	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xacaa43ff	qtree_release_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x575d3c05	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xf2702f75	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x0f4ae2af	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x1fe2a578	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x31d7ec20	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x3e389127	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xcffdf619	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe906a24a	lowpan_nhc_add
+EXPORT_SYMBOL	 net/802/p8022 0x0530cdee	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x9a532dbe	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x30dbe4b3	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xbec484c8	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x04b3a79f	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x09b448ec	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x108796a8	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x215e615e	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x21ca7b40	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x291ec484	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x32415e5f	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x32b9ec11	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x383af8a4	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x4cc1aaec	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x52206270	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x52b34133	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x579d65cc	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x5f33ab8a	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x61fa9aa1	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x657b8ffc	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x788c7656	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x7bc32cf3	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x821fcca9	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x88e019d5	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x899ae62f	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x971499f3	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9cd786b1	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x9d41f291	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xab5e1587	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xb03dcdf2	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xb37a05bf	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xb6b1c915	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xba6db49a	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xba9e0a19	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xbcac53da	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xbce9e2fd	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd8d85ecd	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xdbbb3e27	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0xdbc8bcca	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6d7cb5a	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0xeb6a8afd	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xf5c5b98d	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xfe917b2f	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xfebf14cc	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x6e2a23e8	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xa7510a50	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xe5c2d129	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xf1bea806	alloc_ltalkdev
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x41a9041b	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x689cc018	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x7727b04a	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x7fec7448	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x800a96f9	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x8981f33b	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa2014367	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xb5e956d7	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0xc1fc910e	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xd34d4ab9	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xe04cc09a	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0xf155d053	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xfe3be2d5	atm_dev_deregister
+EXPORT_SYMBOL	 net/ax25/ax25 0x030f5afe	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x0527fdef	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x232ae55c	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x26f4b520	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x6ef1e34b	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x912b5804	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x9502bc4b	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xa10e93da	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x00dfb125	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x062aee6b	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x12188d7d	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x13c32a5c	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x161c847e	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x250bac9a	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2f609378	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x34ccd060	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x41453f98	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x537981e0	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5d7042ee	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5ea6fba9	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x66c1a564	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6f4c37c8	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x728bd2e8	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x73f4bcb0	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x88ee8b6f	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9088f90c	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa2615652	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa44ddbe2	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa96c4273	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xab68892b	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xacf5f097	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xad6f77e3	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xae85eb15	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb391f2ab	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb4d0cf90	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb56d026e	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb8b417e2	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb9c03974	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc38409c6	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc3bbf235	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcd2444af	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd131472e	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd59750ec	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd651be3f	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xda5e3185	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdd8aa07c	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf1330f78	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf3ccd41f	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf449d60e	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf4b42a3b	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe044289	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe95000a	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x4f284807	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x5b26342f	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xcfbdcd27	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xfced4998	ebt_unregister_table
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x2497185c	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x24b89d47	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4895eaee	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x8e913db6	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xd368d4d6	caif_disconnect_client
+EXPORT_SYMBOL	 net/can/can 0x67ec27d6	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0x6f97f1f1	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0xc7cb366c	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0xd1c57a8c	can_send
+EXPORT_SYMBOL	 net/can/can 0xea3904a1	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0xecfeb98b	can_rx_register
+EXPORT_SYMBOL	 net/ceph/libceph 0x005e226f	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x016e5597	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x03849664	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x07a74aab	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a34f2c3	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a7339a2	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x0c078663	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x0f7cf453	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x17298bab	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x191a7615	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x19c81e3e	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cba5662	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x1ead4f0c	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x1fac798e	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x23a6a593	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x24674a6f	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2542cfcb	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2c613f65	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x2d4e383e	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x3857159c	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d2ed285	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d514196	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f7b72fa	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x4117c988	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x43f15c6f	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x44f2b886	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x44f6ff0f	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x463e8303	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x48fd2b43	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x4e70419a	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x541883d5	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x5548787d	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x57c205e5	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a41a8a7	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5bba8aae	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x5c9891b3	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x5cf68ec7	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x5f047a96	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x5f9c7ec5	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x602a236b	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x638e3266	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x64f072d4	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x6574592e	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x708e7080	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x72d14aef	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x796fa02e	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x7ca35543	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x80916b38	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x819ea901	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x82d21d08	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87158500	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x8a0e6851	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x8c537064	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e120d36	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8f44bfb4	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x8fe51761	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x90ddc908	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9273c1da	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x93666023	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x94a8d9eb	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x9b4bd1cd	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bc6b539	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9cffee93	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x9d331006	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x9d3a8fb0	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fb8ff28	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fbba67f	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa118b20a	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1537161	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa6c4c95b	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xa89d865c	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xaa7e45f1	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xaac1af07	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad4b2cdd	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaf07cdd4	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb05094d2	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb68e5772	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbbbf16f1	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc024a09	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbeb054f4	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc3c05ac6	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xc50ebda1	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xc5f47d65	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xc61d6372	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xc8ea8463	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xca5d93d2	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcee5f277	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xcffedc96	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4681f20	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd336875	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe0cfc7a3	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xe121d9e0	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xeac7f990	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xec60056f	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeed1e806	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xeedd8f7d	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce3c3b	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce991c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf1ff2e12	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9334188	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9c93c5d	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb5be3c5	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xfce29e17	ceph_con_keepalive
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x0a48f6c6	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xd4c4d2e9	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x4ee54964	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xdb807ca2	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x16084be2	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x42e88ac6	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x4b8d7fca	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x73822afd	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x9ab4cbda	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xc3207ed1	wpan_phy_free
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x18090c97	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x9f5936e0	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xc425d7e4	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x05155f1f	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x5cf7cdf5	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xaff6beb8	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xecea0833	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x11f2d196	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x136e0bc7	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x1e3645bd	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xe4bb9f6a	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x58ee312b	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xd608de26	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xddba5e98	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x4266a74e	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x5eab1889	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xd7f9f1ef	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x0f1de659	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x236a662c	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x76efbdbf	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x897863b2	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xbc5528be	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xce588c34	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdd81ba11	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe6cecde7	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xec8c756a	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4affe80f	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x9cf964e2	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xf2ccd80c	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x6871ee3d	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xbfc0da22	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x6251359b	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xbeceb080	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x4b426e0e	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x9f8d6d6a	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0xc1ac9190	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x64fb48bd	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x696dece5	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x767db04f	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x831ea962	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xa3a60d11	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xbff7b918	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xce20005f	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0xebcab85c	lapb_unregister
+EXPORT_SYMBOL	 net/llc/llc 0x0cd7bfce	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x0f1732bd	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x346001bf	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x6fe03d92	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x739edd99	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x7d097d25	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xdc11c44b	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x01d8d2dc	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x020d3c88	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x02e1c8a8	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x03ed2fdd	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x047ee3c6	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x08c5ea90	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0936e255	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0954eb9a	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ab1c3b3	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0b33c956	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0d314664	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x10d57151	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1747dfb8	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1ae70074	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1b3fcb1b	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1f683609	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1ffffcac	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x250722d6	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x27513c77	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2956f8fb	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2c7498b7	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2d73dbd1	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f0921d0	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ffd89a5	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3259c7cb	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x357a05af	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x37da77bf	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x38ec9590	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3c4aee2d	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3d711fcd	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x45378730	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4d9f8846	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4f930432	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4fd5c0fa	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5b1207d7	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5b5103db	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5b6b22d9	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5f67bca3	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6188f18b	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x70970575	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x734b5469	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x73eeb284	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x74002e0f	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7c19b69b	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x807b4e97	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8098c5bf	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8251c692	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x85df8fb8	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x890d5fde	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8a175174	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8c0f913a	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8eb49ba6	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x90547c91	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9168eb9d	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x91734abb	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x950c7a67	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x951b3571	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x99de1484	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9d17b609	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9ec129d8	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa6427a68	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa6dbf04a	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa73af1f9	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaa2dca2c	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaad2e3bd	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xab2217df	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac7d4377	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xae682dca	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb327c535	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb70c6bf8	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb938cca2	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe2dd9bc	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbf77f300	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc21f2029	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc2c3af06	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc5746395	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc65c352f	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc8823081	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd5148808	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd6fac1f8	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd90f283a	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd9efc6b0	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdcafe68f	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xde610968	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdf85bf3f	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe73a54d8	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xee70409b	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf3a66ca8	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf49b22e5	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfbd6492e	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfd868345	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xffb64647	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x0c6cc13e	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x1fb3b246	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x299a519b	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x4198d327	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x50a74c3b	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x58e908a7	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x5baa4c45	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xe2f3d0ba	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x039400d9	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x16486536	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1e869d43	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3aaaaf80	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x552866ac	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5d8f4d80	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x6c04100b	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x797427f0	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8752902b	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c9d671a	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbadd5132	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc09ed0fb	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe5ee3557	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe9d427f4	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xef73c562	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x8814d328	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xa132c0db	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x077bc2e9	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x50f916eb	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x5fe8b1c6	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x64f5ec11	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xaaea595f	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x15d80844	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x24c29542	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x4d0da990	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x60697749	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x60e41f24	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x953a01fb	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa5134678	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfc08c59c	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfe4d0a6c	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x09910761	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x10d113b6	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1bf34d14	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x29c08fb2	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x55fa562a	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5f4015a5	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x602840e2	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x696c7caf	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6b9e9bd4	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6e108825	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8e2c0fc0	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9bded5d6	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9e401794	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xad2a735e	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb6c1d831	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xba07a3f9	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbaae2199	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc4ba648a	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd155788	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe253e18e	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf505dfc0	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x080c4255	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x09665c5d	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0daa0591	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0dfffbc7	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x24e27d4d	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2ab7dc3d	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2b0e6fd4	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4d6c7a60	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x54f15e86	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5c016d32	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x619b80de	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x635ba266	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6dfdcd72	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x808e36f6	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8eff9b88	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x95d6cdf0	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x976eb0a2	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x98aea1cf	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9fcf954f	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb453716d	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb7fbe013	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xbd0cea33	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc54b7166	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xdec64724	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe8be6997	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xebd4bab1	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf36e3ff7	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfc94f3dc	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfca58788	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nfc 0x189f26c2	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x2362f3e0	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x25428e43	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x285b8cba	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x36758395	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x45f4c7de	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x4e6930ed	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x583025e9	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x649ce9f8	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x6d2e3932	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x702b5302	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x7042ef20	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x7be42386	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x88608bd7	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x8b14b672	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0xa63813ef	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xa859df7b	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xb5fb1833	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xbd339cd3	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0xc3bd7854	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xd815e1ff	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xe6176468	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xe78f3ea4	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xee35e3a7	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xf8a8a3d0	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x49329b2b	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x857f317b	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xe932de65	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xfdbadf29	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x14660466	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x23437832	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x2994fdcd	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x603b2836	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0x6189302a	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0x94e45e1a	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xce0219f8	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xceec0f62	pn_sock_hash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x08eebcc3	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x09784c14	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x09fc40fb	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x14a2333c	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1cd9c83d	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3c1f291e	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x48a7ca78	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x559d25f6	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x72f0bc96	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9ed8bce3	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xaf5fa54c	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb533ce99	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb909f9d9	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xcfd33dd3	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe960697f	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xeedf593b	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf5c80e19	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/sctp/sctp 0x8866d02a	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x21084a89	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x36fbf9da	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x824ff913	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x4a37f7fd	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x7e17b827	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x8c9ff18d	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x1835c3d4	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0xbc1f358f	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xd6f9a275	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0xdb97bc65	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tls/tls 0x61bb6454	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xae3ce001	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0xfe59df74	tls_register_device
+EXPORT_SYMBOL	 net/wimax/wimax 0xc15f1c09	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0xdfee7c08	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x025bd185	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0737198a	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0e79b4f1	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0fd5ed30	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x13459d76	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15808c53	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15deb519	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ded318c	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ed5b76f	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x217634fe	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x24a602cd	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x253ac4e0	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2677ceb2	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2dc73960	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x30d488d6	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x31b07c1a	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3a65532a	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3ab7402e	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d7525f8	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3e0924df	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4951a341	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4facd5ac	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x52c9c8ec	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5b64ab9d	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5cbe8444	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5e3e8cfc	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x609224c5	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6214b90e	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x627f2849	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63ab6420	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x642c33d9	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x65d546ba	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x662f1284	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6bf10ffe	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6c4fbc79	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6cc87a7d	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7531ae7c	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7889bdb0	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7aa7c096	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7f845227	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x86d9aeda	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x88f7172a	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b2de005	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8bf3ee84	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8cecef61	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8e08369d	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x91b2132b	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x91c3cb54	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x987c8c33	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9a27c74d	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa11a3aff	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa24b6da2	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa2761a9b	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa3440587	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa4583a75	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa50c5a81	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa59e4322	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa5db1466	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa7a9bc53	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac49df52	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb070af5c	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb070bb84	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4a98670	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb9574f06	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbedb1c86	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbf2637bc	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbf2f8d2d	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbfafe449	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc01cb9d5	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc2148db9	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc34e7af3	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc3c3799a	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc5a526d3	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc80af836	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc9fed255	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc831ad9	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xccfe0039	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce8f1fa3	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd4231562	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xda5c88c1	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xddb81ec4	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdf7c0c18	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdf8cc275	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe62c5675	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe789385f	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe9cace08	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeaabfb02	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xec86a924	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeecf5ef7	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeed317f5	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf044f01e	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5adbf6f	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf873138f	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/lib80211 0x2dd7f2dd	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x38172f24	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x975f0a41	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0xbb73a3d4	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0xea7b2714	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xeb17a1a4	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 sound/ac97_bus 0x2214aeb1	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0xf70edca8	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x542dbf4a	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x8207b791	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xa8a56889	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xbdbd69a8	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x33bf00ed	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x02c9ca39	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x0914fa78	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x0f7d6795	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x14acb07a	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x167965fb	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1c1410d1	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0x1c88edce	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x1d53b128	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x1f7da0e8	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x29edd064	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0x33974635	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x39601e94	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x46bcd5f3	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x4922c196	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4b018686	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x4f206836	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x50b7babd	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0x576df050	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x5af19b16	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x61640b39	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x63058c3b	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x64859267	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x6abfc131	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x6f8946d6	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0x713b77c6	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x76f241be	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x8357b60d	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0x83bb1cab	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0x8cb4db2f	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x998e83ad	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x9bcfdb87	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa3c9a300	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xa49f5439	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0xaeb1db7e	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xbc057af3	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0xc00b1600	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0xc38b9366	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc9326cc0	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0xcd50b274	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0xd626b759	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0xdab1a7bb	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xe0673d34	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0xe6d44afe	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xe78ac25a	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0xed0d76a1	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xed5718d9	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xf4bf1846	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x4810dd84	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x03553b4f	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x08306022	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0b4f0c82	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0ba168b4	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0cb66a10	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x12632711	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x19856fe8	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d4fb774	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1f9608dd	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x273a6bb8	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3c31f3c4	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x453775be	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x460b635a	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4854849b	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x499ac217	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x558f6bd3	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e54effe	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x60f6c7ea	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x64d36d08	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6594e41d	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6f8aca45	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7749473a	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x785d9a44	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x80af314c	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8fcd2b74	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9a76d690	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa27eb5dd	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xacc5b851	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb0958bc8	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb2a17ef5	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb4699925	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbb4b595b	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc5d88fd2	snd_pcm_notify
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc6d157bb	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc8aa3fde	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xccd35369	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcf4be424	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd332dc67	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xde2d8d71	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe00797fe	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe33d22a5	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf31f2766	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfe598c3a	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x113bb2f8	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1f98ece8	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x20b0186e	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4891efce	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4b279050	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x57f9fcf8	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5f26a572	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x69d1c4da	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x767012b1	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x840867d0	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x89ad255b	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xac981392	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xb033ab60	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xbc4a0232	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc23cac9b	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc7cd9248	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xca6d9cef	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe2bcc96a	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf6510620	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfe2c63f8	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x3f2a81ac	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-timer 0x028708f2	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x14a1f0b2	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0x1ec4c5c5	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0x35d20750	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x63f95ed2	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x64326dee	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x7dd9f3ed	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x9cb84bc0	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0x9e82539d	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0xabf72b5d	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0xb5f14bf5	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0xd68c4040	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xdef11e34	snd_timer_resolution
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x1c79d1b0	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x06691fbb	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x07384cbe	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x0c48b332	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x22b8085c	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x52567d0a	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6f5d7c99	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x74cc7cf8	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x8790419c	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x9796490d	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa3e1b484	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xab0bbc7c	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xbf0a2baf	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xdf757402	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe47c6206	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe63ff6b7	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xee929b2e	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfb4a182c	snd_ac97_update
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x82747d6b	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/imx/snd-sof-imx8 0x2c2f751a	sof_imx8_ops
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x01510c10	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x023d5121	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x08ff8756	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x11c203a4	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1af4630c	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1e0fb919	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x26ecaaa7	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x276dd47c	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x282287f2	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x29bf1902	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2ef2dcc7	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3ba048c1	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3bab15d3	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3bdec8c5	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3bdfbed0	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3c8d1bca	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3e4075e7	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3f87cf47	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3fa738b6	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x466d6ccc	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x52562e16	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x55e5cade	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6de51fc3	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6df847f7	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7024d517	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7a42e52f	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7aab6eed	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x856707f4	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x857ea5e7	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8956d90e	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8f4784a1	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x992d4df9	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9a5ad508	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa6d4fee2	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xacf97b9b	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xadc2970b	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbe513756	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc38e38b9	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd0b366d0	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdbfc9ab3	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xdf00eb59	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe2742c1d	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xecdedb6c	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf0988630	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf4857c44	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf60d7030	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof-nocodec 0x8f9981ca	sof_nocodec_setup
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xa8024077	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0000541b	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 vmlinux 0x0038056e	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0x003f1886	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x005c2567	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x00688973	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x00797528	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x008452da	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x008a5ef0	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 vmlinux 0x008f4e08	cnstr_shdsc_ahash
+EXPORT_SYMBOL	 vmlinux 0x009d40fc	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 vmlinux 0x00eea771	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x00fd963b	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x0104c587	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x010be613	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x010ddea2	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x010e854a	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x0112cd73	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x0117af50	drm_property_create_signed_range
+EXPORT_SYMBOL	 vmlinux 0x011bf464	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x013ec920	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01505d85	imx_scu_call_rpc
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015ec112	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x01790e94	csum_partial_copy
+EXPORT_SYMBOL	 vmlinux 0x017956da	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x018f4ed9	of_drm_find_bridge
+EXPORT_SYMBOL	 vmlinux 0x01986340	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x01aae1c4	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01d0659d	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x01d2db14	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x01e86883	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x01fa748c	cnstr_shdsc_skcipher_encap
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 vmlinux 0x0225ead0	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x023cfbbf	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x0248efd3	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x025a0629	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x02647fc9	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x02664dca	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02799ae5	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x02805284	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x028fa18b	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02ca3319	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x02d27957	atmel_i2c_send_receive
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x03151ce1	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 vmlinux 0x031a05f9	drm_dp_start_crc
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x033d371c	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x03455b9a	notify_change
+EXPORT_SYMBOL	 vmlinux 0x034944ff	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x0367b79c	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x036f3c46	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x03723f04	drm_panel_disable
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03b3f412	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x03b69504	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x03b811d0	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 vmlinux 0x03d44e02	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x03de6f77	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x03df63fd	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x03e5ff55	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x040204bf	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x04020a71	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 vmlinux 0x0417a5d1	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x0433db2a	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x0435dcd3	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x04508b40	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 vmlinux 0x0459764f	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x046523b3	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x0466261c	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 vmlinux 0x0474edef	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x04913f08	init_net
+EXPORT_SYMBOL	 vmlinux 0x04a61957	__bforget
+EXPORT_SYMBOL	 vmlinux 0x04c2a1f1	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04ff7677	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x04ff85f2	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x050b86bc	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x050e9b32	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x0511953f	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x05195f01	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x0521b89c	drm_atomic_state_init
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x0524e352	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x053f0e25	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x05445daf	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x055f8550	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x056b0952	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x056b8018	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x0570039b	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x0579485a	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x057c1ffb	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x057cc18e	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x058c7218	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x05902979	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 vmlinux 0x0599cc6d	register_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x05a05e57	drm_panel_prepare
+EXPORT_SYMBOL	 vmlinux 0x05a5a52c	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x05b04a78	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x05b19860	d_add
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05e2e492	rproc_coredump_set_elf_info
+EXPORT_SYMBOL	 vmlinux 0x05e9b2d1	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x05ec8bbb	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x05fd206b	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x0610f0cf	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x06143f5a	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0616cc03	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x0630e32f	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x0640cb13	lcdif_vblank_irq_clear
+EXPORT_SYMBOL	 vmlinux 0x0650d99b	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x0652b7ff	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x0668b595	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x069d2d1f	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x06a33e44	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x06a69c6b	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x06b8ea73	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c107d5	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06d0a620	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 vmlinux 0x06e4c0ac	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x06f1c0db	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 vmlinux 0x070926c8	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 vmlinux 0x07301f55	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x07306fad	drm_primary_helper_funcs
+EXPORT_SYMBOL	 vmlinux 0x073f91b3	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x074cb7f7	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x076394cf	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 vmlinux 0x077b0bc2	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x07a22b3b	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x07a78c84	d_drop
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07af1af9	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x07bbf5f2	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07d665de	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x07dd5169	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x07e52f65	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07fa0f02	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0806aa93	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x0807352e	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x080ad030	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x080eaf82	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x081106c4	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x08146843	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082b2f1e	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x082bbeec	dpu_be_blit
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x082eebab	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x083a7665	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0876757a	drm_gem_private_object_init
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x0884cee6	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x0890674c	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x08931d7f	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x089e4787	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x08a3718c	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x08a48351	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x08b864f0	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x08bb4a75	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x08ca79e6	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x08ceac02	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x08d7c207	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x08ea49cd	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 vmlinux 0x09008a4c	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x0906111b	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x09066d3a	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x090d7ca4	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x0915f6e6	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x091d06df	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x09371d02	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x09489846	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 vmlinux 0x09545a0c	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x0958a579	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x09684cfd	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x0970af05	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x0975ad44	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x098055cc	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x09810beb	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x0984be7b	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x098d62e8	drm_client_register
+EXPORT_SYMBOL	 vmlinux 0x0996a4e4	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d06b61	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09d7ef63	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09e3b911	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x09e81262	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a07a38b	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x0a08388e	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a29e8a8	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0a2f3bf0	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a7bbd66	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x0a865592	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x0a8b4f50	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x0a8bc151	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x0a8edb8f	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0abccd92	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0ad22128	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x0ad43eb4	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x0addf0de	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 vmlinux 0x0aee0355	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b20848f	drm_property_create
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b3f7e60	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x0b3fe2eb	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 vmlinux 0x0b5235a5	ir_raw_handler_register
+EXPORT_SYMBOL	 vmlinux 0x0b64f896	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b92231a	drm_mode_put_tile_group
+EXPORT_SYMBOL	 vmlinux 0x0ba0b938	vm_brk
+EXPORT_SYMBOL	 vmlinux 0x0ba80c72	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x0ba990e6	drm_writeback_queue_job
+EXPORT_SYMBOL	 vmlinux 0x0ba9c15e	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 vmlinux 0x0ba9fb72	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x0bb53f12	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 vmlinux 0x0bbcb74b	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bd04008	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x0bdb2f1f	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x0bdfd0a2	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 vmlinux 0x0bed108a	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x0bf94d41	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x0bfc1d1a	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c288160	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x0c291c25	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x0c2c3bd2	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0x0c31ec99	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x0c37e1bf	serio_open
+EXPORT_SYMBOL	 vmlinux 0x0c614c49	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c78cd41	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x0c7bd7f8	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x0c87967e	drm_property_blob_get
+EXPORT_SYMBOL	 vmlinux 0x0c88b443	drm_modeset_unlock_all
+EXPORT_SYMBOL	 vmlinux 0x0c9b490f	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x0c9d04dd	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 vmlinux 0x0caced2c	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cd5096f	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0cdd8857	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0ce0d517	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d0ff50e	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x0d1b0624	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x0d295aba	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x0d4c3626	drm_modeset_drop_locks
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d5a9b55	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 vmlinux 0x0d5c2383	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 vmlinux 0x0d5ce202	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d6319e0	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x0d6f1ed5	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x0d6f2ece	drm_fb_helper_init
+EXPORT_SYMBOL	 vmlinux 0x0d70b92e	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x0d7c29d8	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x0db14e12	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x0db3c0b1	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e4262c6	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x0e6f6645	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0ea861c4	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x0ea89bdc	release_sock
+EXPORT_SYMBOL	 vmlinux 0x0eae9ca0	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x0eb34c36	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x0eb48651	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x0eb6fc38	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x0ec1f75a	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0x0ec52545	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x0ec62ef3	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x0ecf131b	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x0ed8c1b3	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x0ee18995	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x0ef0713d	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f19c4c5	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x0f1fa205	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x0f340b9d	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f3a2f26	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x0f58adb7	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x0f6c6f9f	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x0f85496b	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f9b3813	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x0f9bcb9e	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x0fa7b556	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fb61c73	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fe50259	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x0fe55404	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x0feb255b	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x0ff12eb7	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x0ff3e3c3	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x10311d52	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x104c8158	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 vmlinux 0x105faa71	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x10b811ef	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 vmlinux 0x10ba9d3a	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x10be9236	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 vmlinux 0x10d9dc42	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10f26675	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x10ff9037	misc_register
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x110f9148	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x11138e1c	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x111c8cec	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x111d16a3	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x112169e4	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x11298ae9	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 vmlinux 0x112b9c6b	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x114bbc9c	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x115af3fc	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 vmlinux 0x115d85fc	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x11642079	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x1165a973	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1178b828	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x11818a39	d_path
+EXPORT_SYMBOL	 vmlinux 0x1183b2ed	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x11af91d9	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x11b12f82	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 vmlinux 0x11bca47d	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x11bdacce	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 vmlinux 0x11bed201	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x11c1a694	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x11d05a3d	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11e993e2	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x121adc83	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x121db6c8	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x121f16e3	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x12297b85	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x12359eeb	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x1246c8d0	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x124bad4d	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0x124c09fc	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x12521979	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x126194c8	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x126e320c	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 vmlinux 0x129438ce	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12a4e128	__arch_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x12b65c3a	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x12c5535e	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x12c7b6bd	dev_open
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12de2ac4	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 vmlinux 0x12e263ee	of_node_put
+EXPORT_SYMBOL	 vmlinux 0x12f5bb62	km_query
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x131df108	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x13228f53	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x1323c3d2	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x132f6be8	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x133622f4	register_sound_special
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x13646a38	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x136e68ba	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x13730f5e	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x137e51ca	ir_raw_handler_unregister
+EXPORT_SYMBOL	 vmlinux 0x138bdb46	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x138d06cc	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x138e634a	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b992c7	drm_ioctl_kernel
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13de630a	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x13e12ca7	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x13e164c4	drm_fb_helper_set_par
+EXPORT_SYMBOL	 vmlinux 0x140cd866	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x140ef74a	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x140fa8df	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x14277bf1	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x14538699	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 vmlinux 0x145d2614	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x146a6f51	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x146b8397	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x1470d8ce	sm_establish_keystore
+EXPORT_SYMBOL	 vmlinux 0x147253ae	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x1479e5a3	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x14829620	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x14849509	bdput
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14b89635	arm64_const_caps_ready
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14c80779	drm_bridge_chain_enable
+EXPORT_SYMBOL	 vmlinux 0x14d25e2a	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x14e33c68	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x14ed5d73	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x1500dc18	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x1510b36d	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x15127a44	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x151ae07a	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x153e0a68	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x1555acf1	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x155d3c94	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x1577bc06	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 vmlinux 0x157ff966	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x159ce0de	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x15a159ee	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x15b0367c	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x15b97863	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 vmlinux 0x15daeced	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 vmlinux 0x15e97470	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x15ebed2e	drm_object_attach_property
+EXPORT_SYMBOL	 vmlinux 0x16023a9c	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x16070a30	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x16098ac3	drm_gem_object_init
+EXPORT_SYMBOL	 vmlinux 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x1628f436	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x1640ee04	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x165f9eae	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x16611fc8	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x1679239c	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x16938cef	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 vmlinux 0x16b75d09	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 vmlinux 0x16bcd4ad	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 vmlinux 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16cffbba	skb_push
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 vmlinux 0x16f60b09	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x17039407	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1719b177	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x17215949	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x17465d98	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x17468a99	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 vmlinux 0x1753fd67	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x17679c33	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x1770ecd0	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0x17949089	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x17b435ef	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x17bf1d76	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x17f23b44	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x17f9ffe3	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x180ed5a5	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x1810bce3	drm_modeset_lock_all
+EXPORT_SYMBOL	 vmlinux 0x182811ac	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x18384d54	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x18679c63	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189258f3	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x18932be1	drm_panel_of_backlight
+EXPORT_SYMBOL	 vmlinux 0x18b48e28	__memset_io
+EXPORT_SYMBOL	 vmlinux 0x18b8166a	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 vmlinux 0x18d2e47c	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x18d63676	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18fe20c4	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x1907ee00	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x19242e38	efi
+EXPORT_SYMBOL	 vmlinux 0x192817c2	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x19292125	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 vmlinux 0x193892a3	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x1939b418	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x194adaf6	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567813	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x19594dc0	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x195db395	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x196df169	drm_object_property_get_value
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x198d8ca2	drm_debugfs_remove_files
+EXPORT_SYMBOL	 vmlinux 0x19959144	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x1999cf1b	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19b06e29	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x19b2cc33	path_put
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19d97cc5	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 vmlinux 0x19de1cea	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x19f37d26	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x1a134470	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x1a1b5574	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a2ba84d	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 vmlinux 0x1a32567d	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x1a3fd5da	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 vmlinux 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a504b82	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x1a52ba1c	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0x1a5e9bed	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 vmlinux 0x1a75e408	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa42673	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x1aa63b16	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x1ab37521	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1aca5d6a	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x1af220b8	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b26747b	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x1b32e9de	rproc_of_parse_firmware
+EXPORT_SYMBOL	 vmlinux 0x1b417e93	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b5e0f65	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x1b5f9eb6	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b7aee0f	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x1b7f359c	rpmsg_create_ept
+EXPORT_SYMBOL	 vmlinux 0x1b8bd0eb	rpmsg_trysend
+EXPORT_SYMBOL	 vmlinux 0x1b8c9329	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 vmlinux 0x1b966cee	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x1ba32a5d	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1baf3203	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bcc4226	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x1bd46020	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0x1be193a5	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 vmlinux 0x1be270d9	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x1bee63b4	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x1bfbef40	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x1c06abe6	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x1c06bec7	dev_close
+EXPORT_SYMBOL	 vmlinux 0x1c0c70f1	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c2ae507	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x1c32b204	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c369015	drm_atomic_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x1c386bfa	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x1c3e7387	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x1c4d2a1d	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c61060a	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x1c93522f	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x1c9eac8a	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x1ca47475	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb3662c	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x1cb642de	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x1cb89a70	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 vmlinux 0x1ce716c5	sys_imageblit
+EXPORT_SYMBOL	 vmlinux 0x1cf5b0ef	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x1d00bb28	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 vmlinux 0x1d07501d	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d1b26de	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x1d229457	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d6d88f8	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x1dcdf697	drm_connector_set_path_property
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de657c3	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 vmlinux 0x1df47790	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x1dfdd782	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x1e0373fc	imx_scu_irq_group_enable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e1be427	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e23c22a	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x1e24c2ba	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x1e4758cf	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x1e4a24c2	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e7a8c96	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x1e7cf805	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x1e836f02	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x1e96f43d	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea755b5	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x1eaa7a9d	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1ecb38cd	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x1ecf7924	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ef9086f	proto_register
+EXPORT_SYMBOL	 vmlinux 0x1f03b606	filp_open
+EXPORT_SYMBOL	 vmlinux 0x1f067360	pid_task
+EXPORT_SYMBOL	 vmlinux 0x1f1be5fc	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x1f235e64	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 vmlinux 0x1f249cf1	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x1f442a6d	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x1f5a6976	cnstr_shdsc_aead_encap
+EXPORT_SYMBOL	 vmlinux 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 vmlinux 0x1f7e59bf	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x1f858682	drm_crtc_vblank_off
+EXPORT_SYMBOL	 vmlinux 0x1f883826	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x1f8eb309	drm_gem_vm_open
+EXPORT_SYMBOL	 vmlinux 0x1f8ebc03	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x1fbb8581	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fcfb122	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fdc7df2	_mcount
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff3ad6b	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x1ffd62f9	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0x1fffd429	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200743a8	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x20537157	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x20586d65	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x2058d4ee	drm_crtc_check_viewport
+EXPORT_SYMBOL	 vmlinux 0x20645642	drm_debug
+EXPORT_SYMBOL	 vmlinux 0x2068594b	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x206d2451	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x206e317a	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x208ab664	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a387e1	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x20a6bfa3	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20ab4948	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d231d5	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20e62065	mmc_first_nonreserved_index
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x2100fb86	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x21022bd4	drm_bridge_attach
+EXPORT_SYMBOL	 vmlinux 0x21184424	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x212048fd	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x212767c7	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x21289939	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x213bbe70	update_region
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x214ef35f	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x21512cdb	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x21574dda	sm_keystore_cover_key
+EXPORT_SYMBOL	 vmlinux 0x2158f448	dev_load
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x2166a588	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2190058b	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x21a1e959	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x21a8363c	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21bdf667	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 vmlinux 0x21d6b048	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x21dda50e	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x2203b0c4	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x220b8c8f	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x220e55d0	mem_section
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2231c999	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x22363313	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x223939db	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x225a55ec	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x225be4ae	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x2263ec84	unregister_rpmsg_driver
+EXPORT_SYMBOL	 vmlinux 0x226b8bbd	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x227f5fd9	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x228bc5c5	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 vmlinux 0x228de34e	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 vmlinux 0x229484cd	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x22a65fc0	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22b750e1	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x22d3f650	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x22e71641	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x230256d0	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x231911e5	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 vmlinux 0x232bbcbf	can_nice
+EXPORT_SYMBOL	 vmlinux 0x233e1627	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x234a9ad0	md_error
+EXPORT_SYMBOL	 vmlinux 0x235819d0	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x235cafe0	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x238d1d61	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x238fe943	drm_gtf_mode_complex
+EXPORT_SYMBOL	 vmlinux 0x23943d76	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x23954175	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x23a0d26e	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x23aa8f64	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24296bb2	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x2436b32c	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x245ac5bb	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 vmlinux 0x2468e434	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x24888769	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x2489f590	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 vmlinux 0x24b48586	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x24bff04a	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24d46fa9	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 vmlinux 0x24e37e18	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x24ed73c2	drm_mode_create
+EXPORT_SYMBOL	 vmlinux 0x24f3efef	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x24fd0253	drm_dp_stop_crc
+EXPORT_SYMBOL	 vmlinux 0x2505bf18	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x250c6883	caam_blob_encap
+EXPORT_SYMBOL	 vmlinux 0x251726e6	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x252d6d78	file_modified
+EXPORT_SYMBOL	 vmlinux 0x253b2369	sm_keystore_slot_import
+EXPORT_SYMBOL	 vmlinux 0x253fa46a	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x2550a0d6	dm_io
+EXPORT_SYMBOL	 vmlinux 0x255c4e54	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2584283c	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x25895f32	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x25c1109f	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x25cbf8a7	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x25d574e1	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x25e4f76e	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x25e67ca6	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25f80535	drm_legacy_ioremap
+EXPORT_SYMBOL	 vmlinux 0x2604be46	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x2625c9c7	lcdif_vblank_irq_enable
+EXPORT_SYMBOL	 vmlinux 0x262b5072	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2636fe36	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x26400018	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0x2640c61c	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x264fa999	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x2658c98d	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 vmlinux 0x26645dec	drm_connector_list_iter_next
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x2675e448	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x26a37fa5	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x26ad648e	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x26d37ddb	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x26d6a6dc	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x26dcf179	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26eaf356	rpmsg_send
+EXPORT_SYMBOL	 vmlinux 0x26f0c092	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x26fbae91	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x2702e009	drm_connector_init
+EXPORT_SYMBOL	 vmlinux 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 vmlinux 0x2708a0bb	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x27284742	mii_nway_restart
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x272af639	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x2732fe79	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273c5d8e	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x273d4d60	serio_close
+EXPORT_SYMBOL	 vmlinux 0x2741ddb1	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x274843af	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x274e24b8	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x274fc986	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277b3ddd	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x279de410	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x27a26ff1	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x27abd674	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c5cc72	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x27cd3ab9	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27de70f7	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x27e15edd	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x28182155	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281caf81	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x2829b456	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x283368f6	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 vmlinux 0x2836f3c0	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x28398a8e	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x2840cdc8	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x28441242	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x2868e665	lcdifv3_vblank_irq_enable
+EXPORT_SYMBOL	 vmlinux 0x286912ce	drm_syncobj_get_fd
+EXPORT_SYMBOL	 vmlinux 0x286ba4b7	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x28768d4c	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x2883ba85	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x2884dee1	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x28a30c3c	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x28a4f078	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x28a6a1b0	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x28b9c2ea	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x28bb80c0	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x28c16a27	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x28cfef5f	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x28f0b11f	put_disk
+EXPORT_SYMBOL	 vmlinux 0x28fff2ba	drop_super
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29226ebd	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x292e1e1e	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x293f0338	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x294dfd65	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x2964ce52	drm_fb_helper_prepare
+EXPORT_SYMBOL	 vmlinux 0x297501f7	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x297bbcd4	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x29941779	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x29b2d1a3	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x29bf1fc5	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x29c7d047	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x29d03354	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x29d4b9e9	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x29de6678	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 vmlinux 0x29fa8d00	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x2a04d106	may_umount
+EXPORT_SYMBOL	 vmlinux 0x2a0784ae	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x2a0e35b6	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x2a2f3709	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a45a8a2	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x2a7a6431	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x2a850e6a	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x2a953ff8	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x2a9d15a2	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x2a9e48f3	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2aa2c140	cqhci_resume
+EXPORT_SYMBOL	 vmlinux 0x2aa870df	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2ab74d84	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2aca0f82	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x2ad77467	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 vmlinux 0x2adca55e	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x2ae3c4b1	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x2aeea5b1	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x2af77d5d	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x2b1a6e98	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x2b20cd55	dst_init
+EXPORT_SYMBOL	 vmlinux 0x2b536a42	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x2b558eb5	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b752be1	drm_modeset_unlock
+EXPORT_SYMBOL	 vmlinux 0x2b9887a5	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x2b99722a	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba17cdc	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x2ba2a75d	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x2bafa5f4	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bbe2376	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x2bc3d4db	drm_i2c_encoder_init
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2bfbab10	__memmove
+EXPORT_SYMBOL	 vmlinux 0x2c08d978	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x2c0ed18b	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x2c1e9e6c	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x2c21b7d6	drm_color_lut_check
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 vmlinux 0x2c3028dc	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x2c3821ee	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x2c38b859	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c7044dc	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x2c707e63	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c8e7539	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x2c91e17c	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x2ca43e70	igrab
+EXPORT_SYMBOL	 vmlinux 0x2cb35498	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cd4a16d	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2ce83721	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x2cfa9043	drm_framebuffer_init
+EXPORT_SYMBOL	 vmlinux 0x2d0ca457	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d19ac9a	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x2d1ec6ce	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x2d270bc8	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d339fc7	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3f6e55	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x2d47771c	lcdif_set_bus_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d48d0f0	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 vmlinux 0x2d89b79e	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d952d05	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2d9c6cae	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x2daa061c	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x2daeaf9d	init_task
+EXPORT_SYMBOL	 vmlinux 0x2db38c80	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x2dbbf41e	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x2dce2f1c	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2dce3daf	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x2dd11c6b	drm_is_current_master
+EXPORT_SYMBOL	 vmlinux 0x2dddc159	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x2df93c7e	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e2c8271	drm_gtf_mode
+EXPORT_SYMBOL	 vmlinux 0x2e39a0cd	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4843bc	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x2e5d6bc8	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 vmlinux 0x2e9497bc	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x2ea175f2	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 vmlinux 0x2ea17edd	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0x2ea3fbb7	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x2eb41d2a	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ece6ee9	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2ee635db	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x2eea912c	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f130b89	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 vmlinux 0x2f23109f	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x2f27dbed	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x2f333aab	imx_scu_get_handle
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f3b966e	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x2f3f5133	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f9ee60e	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x2fa3fa54	of_iomap
+EXPORT_SYMBOL	 vmlinux 0x2fa5a201	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x2fb13c33	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x2fb97d35	drm_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2fd2ac0a	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x2fda7170	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x2fe0b460	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2ff8ed84	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x30026bda	caam_jr_enqueue
+EXPORT_SYMBOL	 vmlinux 0x301fa007	_raw_spin_unlock
+EXPORT_SYMBOL	 vmlinux 0x30383f25	d_delete
+EXPORT_SYMBOL	 vmlinux 0x3039b8d9	load_nls
+EXPORT_SYMBOL	 vmlinux 0x30578d3f	drm_mode_create_tile_group
+EXPORT_SYMBOL	 vmlinux 0x306e8714	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x3083f65a	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x309c8dc4	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x30a31d06	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30a8457f	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30d98f63	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x30dfef27	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x31062338	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x310fd9ec	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x313123b7	rpmsg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x31456392	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x316c17c1	input_event
+EXPORT_SYMBOL	 vmlinux 0x317913b1	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x317a6973	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x317b5c88	drm_crtc_init
+EXPORT_SYMBOL	 vmlinux 0x3180a946	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x318147f8	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31a70e3d	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 vmlinux 0x31af0887	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 vmlinux 0x31d4dc50	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x31e9cfba	lcdifv3_vblank_irq_disable
+EXPORT_SYMBOL	 vmlinux 0x31ebc218	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x31ebd49a	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x322383f9	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x32333810	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 vmlinux 0x3246e0e2	drm_gem_prime_mmap
+EXPORT_SYMBOL	 vmlinux 0x3248e57b	drm_event_cancel_free
+EXPORT_SYMBOL	 vmlinux 0x324afed7	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x324eb5bd	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x3259303f	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x325b015f	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 vmlinux 0x32661322	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328ee376	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32bddc16	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x32bdf4df	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x32cd876e	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d24b64	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x32e12384	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x330dab76	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x3320b688	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3339b660	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x334dc20a	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 vmlinux 0x335a81d1	mii_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x3365b805	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x336e4fc8	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x33914718	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x33b072d9	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x33b740d7	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x33b90cd3	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x33c50612	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x33cb11ed	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x34101502	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x3434d008	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x34588079	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x345f9c73	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x34620dda	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x346929a6	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 vmlinux 0x34a47528	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x34b4ff07	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x34bc5f52	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x34c6a534	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x34ce402c	has_capability
+EXPORT_SYMBOL	 vmlinux 0x34da2644	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x350254d0	lcdifv3_set_bus_fmt
+EXPORT_SYMBOL	 vmlinux 0x350946e0	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x350c82cc	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x35464831	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354914f5	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x3553af06	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x35789071	drm_scdc_write
+EXPORT_SYMBOL	 vmlinux 0x35850578	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x358765a7	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x35912c8a	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x359a2c48	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a3ab2d	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 vmlinux 0x35b3d412	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x35b88b47	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x35bd4f23	drm_lspcon_get_mode
+EXPORT_SYMBOL	 vmlinux 0x35e01488	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x35f114a2	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x360e6177	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x3610b5f8	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x361187bb	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x36165551	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x362ac3f3	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 vmlinux 0x3634f2d3	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x363f5dee	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x3641ddaf	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x364850b1	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x36737ef4	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x367af631	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x36a2f6be	clk_get
+EXPORT_SYMBOL	 vmlinux 0x36a4f7ae	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 vmlinux 0x36aba562	drm_dev_init
+EXPORT_SYMBOL	 vmlinux 0x36b6ebbf	down_killable
+EXPORT_SYMBOL	 vmlinux 0x36d3fe54	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x36f0cd59	fd_install
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x371db07f	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x37245a59	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x3735a864	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37734e06	caam_dpaa2
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x378fc04f	drm_helper_force_disable_all
+EXPORT_SYMBOL	 vmlinux 0x37906eef	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37a1f114	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c968f6	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x37cdf4c3	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x37d3246c	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37dc50a7	generate_black_key
+EXPORT_SYMBOL	 vmlinux 0x37de73e6	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x3800e927	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x38115b7b	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x382408a6	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x383d5c31	drm_property_create_bool
+EXPORT_SYMBOL	 vmlinux 0x3845f36a	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x3854774b	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x386a51e0	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x3877f54e	drm_mode_config_cleanup
+EXPORT_SYMBOL	 vmlinux 0x3878c33c	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x387ebf9f	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x388fb759	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38a3f4d9	imx8mp_hdmi_pavi_powerup
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b13799	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x38b3b4a5	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x38c740b0	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x38ca9d75	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38e61656	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x38f6aeb7	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x38f92802	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x39036984	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 vmlinux 0x3904c1fc	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 vmlinux 0x391d7d54	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x391e2276	dpu_be_get
+EXPORT_SYMBOL	 vmlinux 0x391f09ab	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x392063cb	drm_add_modes_noedid
+EXPORT_SYMBOL	 vmlinux 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 vmlinux 0x392b42de	skb_put
+EXPORT_SYMBOL	 vmlinux 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x394f8144	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x39500e31	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x39626eef	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x397033a4	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 vmlinux 0x39828a6d	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x39882159	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x39986bdb	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39accb95	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39be2346	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x39d47818	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x39eac237	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x39f932b0	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x39f9769f	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x39feb094	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x39ff09de	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 vmlinux 0x3a032afa	drm_compat_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3a088fb6	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a1627ca	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 vmlinux 0x3a2183ca	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x3a2aa2a8	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a4e817a	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a555eb8	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x3a634643	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x3a68da67	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x3a7bddb4	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x3a7d6d79	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x3a82bf92	lcdifv3_set_mode
+EXPORT_SYMBOL	 vmlinux 0x3a903e49	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x3a9f3d5f	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x3ab5fee4	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3acc704d	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3add4dd3	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 vmlinux 0x3ae9eeae	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x3aebbf4a	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b00d0a7	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x3b0c5edb	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x3b16cd62	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b210d4d	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x3b27831a	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0x3b2a77d6	ilookup
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b383cea	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b441309	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x3b5398e0	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x3b5dfc14	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b6c41ea	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x3b79720c	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x3b799b57	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b8ad187	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b9ed55e	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 vmlinux 0x3ba0b220	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 vmlinux 0x3ba44dc8	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x3ba5d424	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x3bdc96c1	dpu_bliteng_get_id
+EXPORT_SYMBOL	 vmlinux 0x3be2738a	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bec9c80	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x3bfa2517	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x3c004220	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x3c07072a	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 vmlinux 0x3c16ea16	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c218b47	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0x3c23ddc2	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c448d28	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x3c488bb4	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x3c579c07	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x3c5db2f1	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x3c78e926	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x3c7988fb	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x3c7ddf02	is_trusted_type
+EXPORT_SYMBOL	 vmlinux 0x3c828478	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x3ca09a3f	rproc_coredump_using_sections
+EXPORT_SYMBOL	 vmlinux 0x3cb5da40	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x3cc9d7e9	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x3ce08ca3	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3cf435c6	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x3cfa1883	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x3cfbdfcc	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d07247c	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x3d183ec1	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3d1fb014	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d23212a	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x3d2936a9	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x3d2b9b64	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x3d4ad984	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x3d4b4cdc	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x3d4ec0b6	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d6c7549	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x3d72715f	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x3d83cdfc	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x3d8a7d78	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x3d8ec76e	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x3d9ee9f0	clear_page
+EXPORT_SYMBOL	 vmlinux 0x3daa069c	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dbb1643	usbnet_manage_power
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3de59236	lcdifv3_disable_controller
+EXPORT_SYMBOL	 vmlinux 0x3de8e406	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e1f0780	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 vmlinux 0x3e21d846	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e373cb1	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 vmlinux 0x3e57300e	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x3e5e6a0c	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x3e742d60	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3eb1bb46	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x3ec00b9d	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x3ec8fefe	mii_check_media
+EXPORT_SYMBOL	 vmlinux 0x3ecd21dd	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x3edb7643	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efcbefd	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f16e831	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x3f1fbaf7	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x3f2adc17	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f6d4689	drm_bridge_add
+EXPORT_SYMBOL	 vmlinux 0x3f703b60	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x3f9f40e7	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x3fb67d27	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3ffdf68f	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x400216f4	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x400d39d1	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x401093ed	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x40411503	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 vmlinux 0x4047d1fb	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x405aae53	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x407909cc	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40999e61	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x409b1d15	drm_plane_create_color_properties
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40bad7cf	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x40bc36d8	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x40bf885c	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40cb2702	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40d894aa	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x40ec70f7	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 vmlinux 0x41123b49	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x41379f9a	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414c1b77	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x41525a81	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x415ba37c	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x417a4c7b	drm_crtc_from_index
+EXPORT_SYMBOL	 vmlinux 0x417ff39f	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x41858cac	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x41a7955c	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x41b2976d	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x41c9ded1	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 vmlinux 0x41d1266b	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x41e5f0bc	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x41ed3709	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x41fb0d80	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x421edd7c	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x425e892f	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x42694399	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x427a5206	drm_add_edid_modes
+EXPORT_SYMBOL	 vmlinux 0x427b0236	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x427ffa3f	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x4284589e	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x42a028d0	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x42a8eca1	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x42af0eef	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x42b8e78c	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42c60621	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x42c61bda	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x42f2a36c	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x42f45eeb	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x4327236f	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x43303a13	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x4331c309	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4342d252	lcdifv3_pix_clk_round_rate
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x435363bd	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x4354f9c3	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x435cfaa2	iput
+EXPORT_SYMBOL	 vmlinux 0x436b5e1e	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x436c0ce3	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x436ec5e0	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43945f18	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x43a0d363	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x43a16b94	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x43b0c9c3	preempt_schedule
+EXPORT_SYMBOL	 vmlinux 0x43bbc36e	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x43bd090a	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x43dd044a	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x43e36dec	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x43e6d990	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x43ec246b	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x43f0196f	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43fa9fca	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x43fba188	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 vmlinux 0x44014ada	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x4402dee2	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4403bbd0	imx_sc_misc_set_control
+EXPORT_SYMBOL	 vmlinux 0x4424ad34	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x442adb77	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x443b109e	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x445a394a	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x447452d0	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x447d5068	start_tty
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x449eccab	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x44a1ee28	register_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x451401fa	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x4522a649	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x45252c91	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x4540fde0	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x455f670a	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x45626b77	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x456d39ca	drm_i2c_encoder_save
+EXPORT_SYMBOL	 vmlinux 0x457026ca	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x45789646	drm_get_edid
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x45c4ff53	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x45cd481f	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x45cda077	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x45ce0aea	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x45d9201a	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x45e6e2cc	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x45ece7cc	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x460be378	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x4630f3b7	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x46453cec	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x464a7c09	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x4657b215	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x465b0a29	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x46656b54	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x466fb5b5	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x46759c2e	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x4686109a	drm_dev_alloc
+EXPORT_SYMBOL	 vmlinux 0x46893448	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46a3bb20	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46f4bedd	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x46f6e35e	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x46ffa48a	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x470fbcfa	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x471a0b8b	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x471e2705	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x4722519c	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 vmlinux 0x47453b3d	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x47524c10	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x4758263c	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x475c4feb	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x479137ca	imx_scu_irq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x47920833	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x47972ae4	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x479e5d13	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x47af6e79	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x47b5a931	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x47c20f8a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0x47c2d87e	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47cfd825	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0x47df4c00	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x47e2dd22	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x47e8b48d	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0x47eeff6f	imx8mp_hdmi_pavi_powerdown
+EXPORT_SYMBOL	 vmlinux 0x47f8399d	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x47f84372	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x47f9ad5b	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x48062cc6	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x4811cab5	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x481e566f	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 vmlinux 0x4829a47e	memcpy
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x483bcc4d	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x483c3826	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x483dc9d7	filp_close
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x4869a51f	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x486bf93a	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x488bf024	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x4896d8fc	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x489eda10	memset32
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a400ab	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b4391e	lcdif_set_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 vmlinux 0x48bc21d9	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x48bee370	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48c3b626	single_release
+EXPORT_SYMBOL	 vmlinux 0x48cd2dc5	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x48cfdd19	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x48d8b02c	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x48e54eda	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x48fc948a	key_move
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490743d6	mii_check_gmii_support
+EXPORT_SYMBOL	 vmlinux 0x49087fc8	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x4953fa57	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x496318a9	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x4967e79f	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x498a1252	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x4993f40b	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x499fdf75	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x49a01bd3	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 vmlinux 0x49a43f94	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49d3457a	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x49ea1171	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x4a04096d	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x4a34efc0	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x4a3ff2f6	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x4a41ddcf	lcdifv3_vblank_irq_clear
+EXPORT_SYMBOL	 vmlinux 0x4a4d2ffa	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x4a668e7a	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 vmlinux 0x4a8e0f68	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a99dad2	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4ab78257	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4aefa858	stream_open
+EXPORT_SYMBOL	 vmlinux 0x4af048d9	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x4af6ddf0	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x4af82781	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b1f70cb	cnstr_desc_blob_encap
+EXPORT_SYMBOL	 vmlinux 0x4b241f89	lcdif_set_fb_addr
+EXPORT_SYMBOL	 vmlinux 0x4b243a5e	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x4b2b991e	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x4b4316d8	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x4b48f657	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x4b4a423a	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b4af383	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b68cc1f	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x4b702f80	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x4b808a34	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x4b90c2d2	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x4ba2f2ed	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x4bab737f	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bbf037a	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4be84bc7	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf0cb2c	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x4c013cbd	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c1cca3b	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 vmlinux 0x4c2ac3d4	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x4c3772bb	drm_writeback_signal_completion
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c3a87c2	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c57bec4	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x4c63e1d9	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x4c7f8d26	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x4c802675	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0x4c8e825e	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x4ca95ad3	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x4cb58847	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4ccd378a	_raw_write_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0x4cd00bad	cqhci_init
+EXPORT_SYMBOL	 vmlinux 0x4cdb54ee	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x4ce16078	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x4cf8ed84	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x4d08b7b1	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d0eedbc	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x4d198490	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x4d1c5af6	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 vmlinux 0x4d2398c1	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d4cb85f	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0x4d4f7348	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x4d51515c	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d673ec9	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d78c8da	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x4d7f3e1c	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x4d833d2f	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x4d853e96	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x4d90e669	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d97ca98	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x4d996f88	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4daf7fe0	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x4db665cf	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x4dbfd0db	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x4dc79870	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dca6ebf	iunique
+EXPORT_SYMBOL	 vmlinux 0x4dd34f94	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x4dddbc5f	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4deb6fc2	fget
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4dfe41ea	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 vmlinux 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 vmlinux 0x4e072471	drm_gem_mmap_obj
+EXPORT_SYMBOL	 vmlinux 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e2ec4a3	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e3aa997	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 vmlinux 0x4e4338ce	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x4e45c73a	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e4f94d7	bio_init
+EXPORT_SYMBOL	 vmlinux 0x4e66d4b7	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e812157	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x4e97ab8e	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x4e9d570a	drm_poll
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4eb92320	drm_dp_downstream_id
+EXPORT_SYMBOL	 vmlinux 0x4ebc588a	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ec6981a	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x4ec9f801	lcdifv3_set_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0x4ede0b00	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 vmlinux 0x4ee02400	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x4f0c831c	drm_connector_attach_encoder
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f1d090d	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f397bc9	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x4f4a727e	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f739114	lcdif_enable_controller
+EXPORT_SYMBOL	 vmlinux 0x4f79835b	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x4fa206fe	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x4fa74fe8	drm_dp_read_desc
+EXPORT_SYMBOL	 vmlinux 0x4fb4d6c4	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fd1bdb3	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x502511a7	imx8mp_hdmi_pai_disable
+EXPORT_SYMBOL	 vmlinux 0x5025f1d9	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x5037af49	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x504316d7	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 vmlinux 0x5049b25e	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x504fc1a6	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x505422ab	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x505aea5e	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x506aae39	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50804b0d	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x508f09aa	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x509ae6bd	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x50a27f48	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50ab5871	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50cf7585	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x50dc82bf	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x50e78ce7	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x50f3f4d4	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x510c3697	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x51106b96	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x51204ab8	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 vmlinux 0x513139f5	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 vmlinux 0x5133e672	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x513d7b86	drm_send_event_locked
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51659ce6	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x519a1ffd	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x51a71c11	imx8mp_hdmi_pvi_disable
+EXPORT_SYMBOL	 vmlinux 0x51b6d38e	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51c1016e	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x51c76709	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51d84965	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x51ec1aa6	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 vmlinux 0x51f4f814	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x51f5109d	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 vmlinux 0x520f1534	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 vmlinux 0x524fe210	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 vmlinux 0x527f01ff	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x5297fade	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x52a0362a	drm_crtc_vblank_count
+EXPORT_SYMBOL	 vmlinux 0x52bd6e4a	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x52c8aca6	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x52cda66f	dpu_bliteng_set_id
+EXPORT_SYMBOL	 vmlinux 0x52d67a4e	neon_aes_cbc_encrypt
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52e5af9c	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52f2850a	imx_sc_pm_cpu_start
+EXPORT_SYMBOL	 vmlinux 0x52f7a8d5	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x52fb0850	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x52fcac05	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x52fe34aa	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53116907	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x53160e28	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x53182802	cnstr_shdsc_rfc4106_decap
+EXPORT_SYMBOL	 vmlinux 0x531866f3	drm_state_dump
+EXPORT_SYMBOL	 vmlinux 0x531a114a	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x531f2e76	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x53211668	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0x53262fc2	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x532e8806	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x5333452a	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x535ba5eb	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x535c7e5c	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0x535da537	__free_pages
+EXPORT_SYMBOL	 vmlinux 0x5368237c	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x53784c92	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x5384deae	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x539800f2	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x539ede02	drm_gem_handle_delete
+EXPORT_SYMBOL	 vmlinux 0x53ae1d5e	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x53b0b53f	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53bfd95b	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x53c035a0	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x53c5c05a	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x53c96a69	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x53d0fc97	caam_ptr_sz
+EXPORT_SYMBOL	 vmlinux 0x53e07322	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x53ebd333	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x53f5121b	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x53fabe4a	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 vmlinux 0x54203831	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x543ab976	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x543eef55	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x544f6fc6	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x54759e9c	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x54790e8c	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x547f42c0	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x548e91a5	drm_print_regset32
+EXPORT_SYMBOL	 vmlinux 0x5492a67e	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x5494e226	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x549c47cc	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x549f9baa	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x54a93fa4	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ad7495	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x54ca2704	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54dd3601	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x54e3c6c9	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54e8c742	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550ec076	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x5516c242	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x5528657b	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x5537e3e1	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x5539f8ec	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x553e33fa	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x555506bf	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x555930ae	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x555d14d9	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x555e4abd	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x55655885	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x558a374f	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x5592d7ac	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x55945c7c	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x55a3121e	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 vmlinux 0x55a7c0ec	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x55b537ea	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x55c957be	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x55d33237	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e84340	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x5603c3a1	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x560c2ff5	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x560ebc37	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x5611f1d8	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x56329cd0	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563cfee6	drm_mode_probed_add
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x567bd59a	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x567c30fc	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x56a3637a	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d76fd3	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x56dd1794	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x56f87358	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x5705ec18	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x570bcedd	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x5710d41a	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x573149d4	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x576206e2	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x576ecf24	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x578e14c8	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x5797b0e5	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x579bb8d5	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x579daeb8	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x57b08181	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57c9c6c1	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x57d0b7b0	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 vmlinux 0x57d9ae16	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x57e62a5a	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x57e761f5	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x5804d9ce	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582e8f32	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x583cd3dc	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x583ecde7	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x585fc5f3	eth_header
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x5861f279	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x58752af0	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x58820694	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x588bb250	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5895383d	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58d037f7	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x590d27e8	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 vmlinux 0x591792c2	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x5920adbb	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x592363dd	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x59598c0d	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x5967e22e	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x596871d3	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x59717807	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x597fc506	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x5982a0fa	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a205e2	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59af2487	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59cc348b	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x59e3baae	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x5a047665	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a0c18c3	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x5a16ec4d	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5a7f2a	drm_crtc_vblank_put
+EXPORT_SYMBOL	 vmlinux 0x5a735c78	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x5a76eb2a	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x5a8495c1	is_valid_header_conf
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a8ce810	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a95d441	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 vmlinux 0x5a9f1d63	memmove
+EXPORT_SYMBOL	 vmlinux 0x5aa139f0	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 vmlinux 0x5aa26e5c	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0x5aa54973	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x5ac0b63e	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x5add83d6	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x5ae27f1d	tty_name
+EXPORT_SYMBOL	 vmlinux 0x5af82d30	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x5af842e9	drm_legacy_pci_init
+EXPORT_SYMBOL	 vmlinux 0x5b0ba528	drm_master_internal_acquire
+EXPORT_SYMBOL	 vmlinux 0x5b0c58d1	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x5b1bb581	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x5b289411	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x5b2ae1f5	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3db83f	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b5a86b0	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x5b6851e1	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x5b756ec8	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x5b8aaba2	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x5b8dbce2	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x5b9da5c5	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x5ba16e92	audit_log
+EXPORT_SYMBOL	 vmlinux 0x5bb374ce	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x5bb60577	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x5bbd692a	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x5bc1f7bd	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x5bc4d844	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x5bc526ff	bdevname
+EXPORT_SYMBOL	 vmlinux 0x5bc7c3d3	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x5bc96ad4	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x5bd227cb	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x5bdd5f1c	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5be6818b	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x5bea6350	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x5becbca2	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x5c3c7387	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c427745	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x5c58e9a4	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x5c609537	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x5c726902	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x5c81a720	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x5c9fb8ad	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x5cab7e1f	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x5cb31f9c	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x5cd37c4e	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x5cd798a1	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x5cf0e190	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cf6753b	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5cfb92d0	drm_debugfs_create_files
+EXPORT_SYMBOL	 vmlinux 0x5d043dd2	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x5d112304	__memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x5d1434c3	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x5d174568	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x5d2738d0	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x5d3204c2	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x5d48d787	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d66ed8c	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x5d6d96a5	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 vmlinux 0x5d6e9da5	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x5d72cbf0	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x5d74a5e9	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0x5d7cc85e	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x5d7d88ff	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x5d9f96b8	drm_client_framebuffer_create
+EXPORT_SYMBOL	 vmlinux 0x5dabeedc	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x5db0bb55	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 vmlinux 0x5dc13442	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x5de38790	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x5ded4339	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e06bc5c	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x5e11b07a	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x5e1c4bf3	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x5e21ce3b	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e454867	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x5e4581b6	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x5e5917a7	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e5f8cc9	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x5e718938	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e7a3c53	proc_create
+EXPORT_SYMBOL	 vmlinux 0x5e7d6d5a	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x5e7daf81	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea9f1cd	sm_detect_keystore_units
+EXPORT_SYMBOL	 vmlinux 0x5eac9ee7	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5eb335eb	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x5ebb3ca0	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x5ec3e860	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x5eca1a17	mtd_concat_create
+EXPORT_SYMBOL	 vmlinux 0x5ecdc076	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5edb6113	register_console
+EXPORT_SYMBOL	 vmlinux 0x5ede5538	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x5eecaf0e	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x5ef5dd4b	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f2205f7	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x5f3110c4	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x5f34bef9	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x5f3ea44a	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x5f40f46f	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x5f469389	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x5f53fe69	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x5f625bd5	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x5f637aeb	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x5f69b99e	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f81a561	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f96c7e7	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x5f98bdb6	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x5f9aa781	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x5fa17abb	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x5fb9664f	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fc80121	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x5fce1d9f	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x5fcff9b2	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 vmlinux 0x5fec20ff	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60239b3d	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x6026b728	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 vmlinux 0x60386d38	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6043b677	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x6074dc44	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x60843f56	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x609f737e	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60d01d6b	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x60d5ac16	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x60f320e4	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x60f79577	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x60f895fc	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x60f9b566	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x611a4af5	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x6147664a	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x61897832	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61b76bb9	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61cd3748	drm_syncobj_find
+EXPORT_SYMBOL	 vmlinux 0x61d2ffeb	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x61d9ed3a	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x61dc689d	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x61e75231	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61fedb56	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x621e7450	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x6225321e	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x622ef286	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x6232b720	lcdif_disable_controller
+EXPORT_SYMBOL	 vmlinux 0x623aba8c	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x62464ff4	seq_path
+EXPORT_SYMBOL	 vmlinux 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 vmlinux 0x626e6265	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62855f34	drm_gem_map_attach
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x628e5ea2	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x62939349	mmc_get_reserved_index
+EXPORT_SYMBOL	 vmlinux 0x629e5bc7	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0x62a39ff6	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x62b007a1	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x62b3e582	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x62bc9c20	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c13d75	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x62cb2f88	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x62df1ddf	sys_fillrect
+EXPORT_SYMBOL	 vmlinux 0x62e52569	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0x62f7e207	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x63090e71	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x630c6446	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x630d4349	dpu_be_configure_prefetch
+EXPORT_SYMBOL	 vmlinux 0x630f20fa	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 vmlinux 0x631559d4	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x6325537d	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x632aa5d5	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x632d1e29	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x6335e5bd	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x6339e193	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x633fd905	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x635af74a	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x6393f339	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x63a2cbb7	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x63a77e97	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63adf131	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x63b195f7	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c8129d	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0x63cc5362	drm_dev_fini
+EXPORT_SYMBOL	 vmlinux 0x63cea7d4	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63d93ac8	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x63eb622e	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x64192091	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x64199ff8	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6420dbb7	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x6436d80b	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x644d8c31	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x645a8d34	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x64704581	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x64774cef	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x649d9dff	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64c37075	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x64c4dc7b	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x64cc313e	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 vmlinux 0x64d27dec	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x64d59436	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x64f034ed	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x65178d7b	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x6531716b	devm_rproc_add
+EXPORT_SYMBOL	 vmlinux 0x653ad818	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x654449c3	memset16
+EXPORT_SYMBOL	 vmlinux 0x654aba22	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x65513f85	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 vmlinux 0x655581cd	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x655e5ccc	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x6579a193	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x65808033	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x65852c6f	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659a6e2a	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65aba5e7	drm_plane_init
+EXPORT_SYMBOL	 vmlinux 0x65c18397	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x65cdb887	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x65cef1e3	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65da19be	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x65e7856a	drm_dp_aux_init
+EXPORT_SYMBOL	 vmlinux 0x65ea3dfc	seq_write
+EXPORT_SYMBOL	 vmlinux 0x6602668b	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x6612ec9b	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x662c37ca	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x662e0458	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x662e7677	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x662eba4d	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x6635072d	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 vmlinux 0x6636c0b6	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 vmlinux 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x667278c5	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x66757069	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x66780cff	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x668102bf	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x66988aae	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x66a4399e	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66afbef4	simple_map_init
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66b834c0	imx8mp_hdmi_pavi_init
+EXPORT_SYMBOL	 vmlinux 0x66c1c260	drm_cvt_mode
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66e415e5	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x66eda872	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x6708e41b	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 vmlinux 0x6714b9e5	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0x671b73f0	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 vmlinux 0x673602a8	iommu_dma_get_resv_regions
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x675ae0ab	of_device_register
+EXPORT_SYMBOL	 vmlinux 0x67610e60	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x67665271	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x67787e6f	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0x677c2eb4	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x679c0532	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0x67a34a23	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b60e97	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67b7f4b4	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67eaab92	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x67eadee0	sm_keystore_slot_dealloc
+EXPORT_SYMBOL	 vmlinux 0x67f6ece4	iommu_get_msi_cookie
+EXPORT_SYMBOL	 vmlinux 0x6808c968	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x6822af05	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x68404656	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x68538fe5	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x6856b46c	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x6869c438	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 vmlinux 0x68785e41	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x687acac3	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68c760a0	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x68d73c8c	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x68f011a6	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x68f275ad	ce_aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x6900efe4	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x69344503	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x6939f842	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x693cf806	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x696623e1	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x69708d8f	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x697c5586	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 vmlinux 0x698c2fea	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x699150cd	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x69c60b20	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x69cdf0e8	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x69d83737	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69f94bf1	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a1e002d	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x6a20bbbf	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x6a2a1001	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x6a386dba	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x6a390fd8	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x6a3de777	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x6a44ee2a	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x6a456af6	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x6a54b95b	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6a558a	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x6a6e05bf	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x6a918087	sys_copyarea
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 vmlinux 0x6aa4e43e	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x6aa6b9ab	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x6aad3dda	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x6accd727	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6aebd755	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b0d292d	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2cfb5e	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b440c3a	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x6b4b2933	__ioremap
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5bd25b	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 vmlinux 0x6b623bab	drm_dev_get
+EXPORT_SYMBOL	 vmlinux 0x6b626e06	drm_property_create_bitmask
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b67d6bb	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x6b695b6a	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x6b7f0be7	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b926c99	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x6b9d47f5	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x6ba1cdfd	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x6bb7d7d7	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x6bbb095d	lcdifv3_set_fb_addr
+EXPORT_SYMBOL	 vmlinux 0x6bc264f6	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x6bc36979	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bd0e573	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6c0ad6bb	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x6c0f66ce	cnstr_shdsc_rfc4543_decap
+EXPORT_SYMBOL	 vmlinux 0x6c216ec7	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x6c223a1f	drm_atomic_state_default_release
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c4c463e	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x6c53eb21	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x6c578038	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x6c57bb43	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x6c58a480	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x6c5c66d3	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c6a3597	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0x6c71f9ad	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6c83972d	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x6c8e42c7	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x6c90e555	current_time
+EXPORT_SYMBOL	 vmlinux 0x6c97ef3d	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x6c9c4ff3	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x6ca82201	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbbfc54	__arch_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x6cd0486a	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x6ce24761	of_node_get
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cf6ff6e	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x6cfa4bde	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d169873	drm_atomic_commit
+EXPORT_SYMBOL	 vmlinux 0x6d19894c	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d34c036	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x6d500c81	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x6d57df6a	drm_property_add_enum
+EXPORT_SYMBOL	 vmlinux 0x6d5c00af	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d9bb8e4	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x6da59d5b	dpu_bliteng_set_dev
+EXPORT_SYMBOL	 vmlinux 0x6da8fa96	fb_class
+EXPORT_SYMBOL	 vmlinux 0x6dab1162	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x6db8ad8a	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dc5655e	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x6dc6c935	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6de03e0e	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6deb635a	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 vmlinux 0x6e0d798a	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x6e1cfa13	node_data
+EXPORT_SYMBOL	 vmlinux 0x6e28239a	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e29bcca	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 vmlinux 0x6e51e19e	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e61184b	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x6e709e1e	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x6e70dd95	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e7403cd	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x6e79a716	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x6e7e03a3	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x6e7f1f7a	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x6e895d8d	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 vmlinux 0x6e8d9413	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6eb13ea7	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x6ed1f096	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0x6ed5a988	drm_atomic_helper_commit
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6eef747a	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x6f057d31	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x6f135de5	cnstr_shdsc_aead_null_decap
+EXPORT_SYMBOL	 vmlinux 0x6f2ad37f	simple_link
+EXPORT_SYMBOL	 vmlinux 0x6f2b3577	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x6f393408	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f4f3686	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x6f6a4af7	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f86d358	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0x6f8d8421	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6fa7aff1	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fc6e4bc	drm_gem_prime_export
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fff261f	__arch_clear_user
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x700d9b83	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x701d6ce9	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x702a14f7	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x705d08b8	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x7064479d	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x70666e17	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x70750b46	generic_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x708842da	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x7090a236	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70adf1f5	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x70c6deb6	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x70d16019	of_root
+EXPORT_SYMBOL	 vmlinux 0x70d523c9	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x70efacf6	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0x70f18b21	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x70fed25f	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x7145e514	drm_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x714dd50b	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x7174d80a	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x717fbe1c	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x71934fed	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x7193cd15	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x71954f0c	cnstr_shdsc_gcm_decap
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a68f41	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x71a98666	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x71acd154	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x71b3157e	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x71b8a818	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0x71bd926e	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x71be87cc	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x71d4702b	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x71f15316	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x71f63264	drm_property_create_enum
+EXPORT_SYMBOL	 vmlinux 0x720dd9da	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x724172ba	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x725dbc99	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x7280b32e	lcdif_pix_clk_round_rate
+EXPORT_SYMBOL	 vmlinux 0x728f46bb	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x728f5613	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x728fb649	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x7291f975	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x729c26d9	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x72a7c9fc	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x72aa9d58	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72bf4209	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 vmlinux 0x72d10c92	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x72d2f447	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x72d4a8a7	cnstr_shdsc_sk_hash
+EXPORT_SYMBOL	 vmlinux 0x72d63d5c	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x72dcec7b	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x72deee6c	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f2f546	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 vmlinux 0x730e07de	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x730f5fd1	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x734a4bce	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x7377b1ad	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x737f12c3	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73869c45	register_sound_special_device
+EXPORT_SYMBOL	 vmlinux 0x739d2b6e	drm_mode_set_config_internal
+EXPORT_SYMBOL	 vmlinux 0x73b40308	drm_panel_add
+EXPORT_SYMBOL	 vmlinux 0x73b4622f	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x73caec05	lcdifv3_get_bus_fmt_from_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0x73d758a4	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x73da1aca	drm_crtc_vblank_on
+EXPORT_SYMBOL	 vmlinux 0x73e0f235	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x73ed77f7	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x73f01383	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x73f570a5	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x73f8845d	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x73fcf649	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x740ff547	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x74272b78	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x7429e20c	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0x744cad6e	drm_connector_unregister
+EXPORT_SYMBOL	 vmlinux 0x7451f3fa	drm_set_preferred_mode
+EXPORT_SYMBOL	 vmlinux 0x74524e96	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x7468d821	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x747e5c27	drm_fb_helper_check_var
+EXPORT_SYMBOL	 vmlinux 0x748abce9	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x74a09ed0	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x74a8f79c	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x74ac8dfa	__brelse
+EXPORT_SYMBOL	 vmlinux 0x74b591bb	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74cdc2b0	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fab141	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x750263e2	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x75094aee	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0x750c7029	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x751b467b	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 vmlinux 0x752e0937	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 vmlinux 0x75331a6b	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x7533468b	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x75371a2f	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x753f03b2	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x75424469	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x755bed02	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x755e6b77	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x755f4ba3	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x75700a18	drm_mode_object_find
+EXPORT_SYMBOL	 vmlinux 0x757348cd	drm_gem_prime_import
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x75a73a79	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x75b6606a	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x75b89c37	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x75bb7742	devm_drm_dev_init
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75cb418f	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75d80519	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x75d80ef1	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x75e8d6da	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 vmlinux 0x75eb651a	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 vmlinux 0x76223e9d	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x7623f78d	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x7626ce1b	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x763a79a2	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 vmlinux 0x7644c381	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x764863c5	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x764efa2f	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766173e2	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x7664e348	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x766cf039	drm_syncobj_create
+EXPORT_SYMBOL	 vmlinux 0x769aa07d	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76b3a172	padata_free
+EXPORT_SYMBOL	 vmlinux 0x76c6f40e	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x76d10177	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76f00ba0	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x77036589	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x771148e2	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x771e70a9	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x7725900c	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773ec70a	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x7746782f	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x775dc0fa	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x7765524e	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x77878fa7	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x77a0780b	drm_dp_check_act_status
+EXPORT_SYMBOL	 vmlinux 0x77ad4bdb	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 vmlinux 0x77b63d03	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x77b93ef0	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x77ba460f	dqget
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c247bd	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x77d9fae1	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x77dc4545	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x77dcbe0c	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x77df4d6c	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x77e78e36	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f08c5f	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x77f7f7df	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x77ff5f5f	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x78094b6f	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x7822436b	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x782a1779	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x78412a56	drm_gem_objects_lookup
+EXPORT_SYMBOL	 vmlinux 0x7843db09	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x78513fa2	vmap
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788854e6	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x788dc7b3	rpmsg_register_device
+EXPORT_SYMBOL	 vmlinux 0x78944167	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x78966625	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78b53bd1	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x78c03743	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e81434	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x78e8ced9	cnstr_shdsc_aead_givencap
+EXPORT_SYMBOL	 vmlinux 0x78fbd19f	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x78fe184c	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x791291d1	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0x79147c80	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x792c7a27	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x7942be97	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x79455e2f	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 vmlinux 0x794e6588	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x794fd004	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x7950bb69	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x7954291f	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x798f9a3e	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x79a64da8	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x79ad6700	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x79bdb527	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x79cc35d8	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x79d90878	drm_prime_gem_destroy
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a194bb0	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a3a1651	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0x7a4156e0	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a4f7e5a	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x7a59b983	imx_scu_enable_general_irq_channel
+EXPORT_SYMBOL	 vmlinux 0x7a5c8931	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x7a68a2bc	drm_property_create_range
+EXPORT_SYMBOL	 vmlinux 0x7a7cae21	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x7a86f6e3	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ac64293	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x7ac6e674	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad1a413	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7afaea06	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x7afb59b1	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x7afc99f5	drm_master_put
+EXPORT_SYMBOL	 vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x7b13c144	drm_connector_update_edid_property
+EXPORT_SYMBOL	 vmlinux 0x7b21987b	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x7b49f0d8	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x7b4c193f	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 vmlinux 0x7b4c3266	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b5f8910	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x7b6edf14	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7b95e064	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 vmlinux 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 vmlinux 0x7ba0230b	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x7bb0a791	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bba7b68	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd9817	pps_event
+EXPORT_SYMBOL	 vmlinux 0x7bd879f3	drm_framebuffer_remove
+EXPORT_SYMBOL	 vmlinux 0x7bdec42d	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x7be9af6f	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 vmlinux 0x7bf54956	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x7bf72074	drm_gem_lock_reservations
+EXPORT_SYMBOL	 vmlinux 0x7c00686f	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x7c071877	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 vmlinux 0x7c110db5	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x7c147b29	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c28f7bd	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x7c2fedcc	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x7c4075f5	kobject_add
+EXPORT_SYMBOL	 vmlinux 0x7c441091	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c618e14	drm_event_reserve_init
+EXPORT_SYMBOL	 vmlinux 0x7c629b4b	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x7c74d4bc	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc2e17c	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x7cc6fe8c	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x7ccea673	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 vmlinux 0x7cd55ec7	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x7cd76832	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce255b0	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x7ce383a5	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 vmlinux 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 vmlinux 0x7cf866ea	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d04d149	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0bb7da	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d13cd00	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x7d2055df	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x7d45ee76	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d4d81e1	drm_dp_aux_register
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d61937f	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x7d63bae3	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x7d67beda	drm_of_component_probe
+EXPORT_SYMBOL	 vmlinux 0x7d6d47b6	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x7d74d522	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x7d80f456	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x7d9265dc	drm_mode_get_tile_group
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7db53b8c	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 vmlinux 0x7dc478bd	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x7dcb61d9	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x7dcf4135	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x7dd0e20b	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7de8e382	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df8ce7b	drm_framebuffer_lookup
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e4326f5	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x7e4c85eb	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x7e5553c1	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x7e5c46f5	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x7e6ac30d	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x7e72b2bd	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x7e943202	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x7eb9e4f3	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x7ec14b3c	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ecd2fdd	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x7edc24f0	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x7ef2a45b	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x7ef95e06	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x7eff5a67	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f1304a2	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x7f1ece8c	drm_panel_enable
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f3f6b68	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x7f4a2b78	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f7e6c9b	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f8121bf	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x7f875fe8	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 vmlinux 0x7fb3362b	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x7fc2b77d	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x7fc6dfef	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x7fd24c51	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x7fd98be2	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fee2574	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x7ffb8c68	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x8005ef68	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x803cdf4f	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 vmlinux 0x8059891c	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x80730f78	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 vmlinux 0x807e3ac2	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x808b3835	f_setown
+EXPORT_SYMBOL	 vmlinux 0x808d7398	drm_gem_handle_create
+EXPORT_SYMBOL	 vmlinux 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80b5d6be	cqhci_pltfm_init
+EXPORT_SYMBOL	 vmlinux 0x80c61573	drm_irq_install
+EXPORT_SYMBOL	 vmlinux 0x80ca110b	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80ccdd86	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80da76fb	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x80e10fcc	drm_get_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x80e80e24	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x810a5a6e	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x810e981b	inet_accept
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x811376c0	fput
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x811ab44f	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x812426db	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x812fea2c	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x8140f577	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x8156ee5f	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 vmlinux 0x81572833	drm_gem_fb_destroy
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 vmlinux 0x81b0d762	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x81b560da	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e250f1	dst_release
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81eb3f66	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 vmlinux 0x81f72125	sound_class
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82106781	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x824794a5	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x825ca48a	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x825f659b	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x826b9525	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x827aa5d0	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x828fe3c0	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 vmlinux 0x829112c2	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 vmlinux 0x82a76cea	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x82bdbbb3	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82cc3780	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82dc9d3c	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 vmlinux 0x82e09935	drm_helper_connector_dpms
+EXPORT_SYMBOL	 vmlinux 0x82f2b3ca	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x82f36010	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x833fada3	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 vmlinux 0x8347e1b4	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x835d2925	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x83634f69	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x836e7a92	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x838eff44	drm_property_replace_blob
+EXPORT_SYMBOL	 vmlinux 0x83913ba1	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x83a8da83	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x83a96ce5	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x83af9710	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x83b64f72	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x83ba1303	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x83bd618d	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x83d21b2f	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0x83ea8710	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x83fcb856	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x83fdd46f	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x8425d274	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 vmlinux 0x8445c429	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 vmlinux 0x8451cac2	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x8473ac8b	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x84853089	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x848aa46a	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x84957640	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x84acceb7	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x84bc50ff	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x84bf8462	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84f21045	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x85159b29	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x851bd653	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x85328bfe	devm_rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 vmlinux 0x85402fe6	map_destroy
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x856ca8eb	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x8582ebff	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c9e5b8	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 vmlinux 0x85d6c501	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x85df6371	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85ee167b	drm_panel_init
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fc4633	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x861c1b4f	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0x86269e2a	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x862952bf	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x8633b6a8	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x864e9742	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x86529e0c	cnstr_desc_random_black_key
+EXPORT_SYMBOL	 vmlinux 0x865cbca1	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x865e1ccd	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x867bc026	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x867f2dc5	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x8693d39e	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x8698b65c	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x869ee0d5	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x86b08a36	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x86b38635	cqhci_irq
+EXPORT_SYMBOL	 vmlinux 0x86c6bf0b	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x86e4296c	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x86f8630f	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x86fa19c8	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x871834cf	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x871a61b5	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 vmlinux 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 vmlinux 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 vmlinux 0x872addcd	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 vmlinux 0x875ac032	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0x875f128d	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x87813870	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x8791e72e	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x87b30270	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87c38045	follow_down
+EXPORT_SYMBOL	 vmlinux 0x87c39361	finish_open
+EXPORT_SYMBOL	 vmlinux 0x87d6ef25	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0x87e87765	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x87ecd0ca	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x88497df5	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x8859ff2d	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x886f7706	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x887407ce	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x88779d49	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x887a7c3c	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x887db62d	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88a5969d	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88b2da56	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x88d44776	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x88d7f5e6	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x88d83dda	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88e3971b	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x88e96640	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x88fbff44	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x8907f029	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x89153ef3	km_report
+EXPORT_SYMBOL	 vmlinux 0x891ca13b	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x89328b06	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x8946ea72	fpsimd_context_busy
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x8950ba80	drm_probe_ddc
+EXPORT_SYMBOL	 vmlinux 0x8950cdc9	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x8959076f	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x898ab078	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x8997dbeb	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89c195d1	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x89ec96bf	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x89f5c4ea	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x89fdb2ea	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a3f3362	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4ab1f4	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x8a7094ba	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x8a751a1d	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x8a793362	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8a7bef08	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x8a7c6ac9	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a8c784f	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x8a8edb9a	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8ac136ae	imx_sc_misc_get_control
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac6af58	register_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8acef2ba	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8ae07aae	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 vmlinux 0x8aef2c4d	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x8aef76a5	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x8af8e25a	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x8afe1898	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b09668b	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 vmlinux 0x8b2631ad	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x8b298aab	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x8b35720a	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x8b3a751e	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x8b3bb0f3	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x8b4c679d	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b5f11ae	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b6ab13a	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x8b70ffa0	drm_ioctl_permit
+EXPORT_SYMBOL	 vmlinux 0x8b74ef63	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0x8b782c7f	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8baf54c9	drm_modeset_lock
+EXPORT_SYMBOL	 vmlinux 0x8bb2d5c8	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x8bc18fb3	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x8bc195de	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x8bc1b14d	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8be4e86c	d_move
+EXPORT_SYMBOL	 vmlinux 0x8bf25d3f	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 vmlinux 0x8c015f77	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 vmlinux 0x8c0a4d4e	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x8c0f3667	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c28ecb1	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 vmlinux 0x8c316c81	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c3486ca	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x8c36dd00	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x8c3aa007	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x8c54dcc4	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 vmlinux 0x8c5b0356	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x8c5ca397	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x8c6dff83	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 vmlinux 0x8c780423	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x8c78ff8b	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x8c83c90a	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 vmlinux 0x8c8569cb	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8ca92fba	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x8caf9305	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cc6fb79	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x8cce1b21	drm_property_lookup_blob
+EXPORT_SYMBOL	 vmlinux 0x8cd938af	tso_start
+EXPORT_SYMBOL	 vmlinux 0x8ce03143	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x8cf3515e	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x8d071db4	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x8d097878	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x8d1c34bf	build_skb
+EXPORT_SYMBOL	 vmlinux 0x8d20532d	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x8d2c843c	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x8d45b202	path_get
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d75d1db	lcdif_set_fb_hcrop
+EXPORT_SYMBOL	 vmlinux 0x8d76e1ab	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x8d7c9a14	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 vmlinux 0x8d965365	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8da437f0	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x8da579d9	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x8dae318e	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x8db0fc90	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 vmlinux 0x8dc34b34	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df678c5	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8e116a88	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x8e1327b8	drm_fb_helper_fini
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e233a1f	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x8e2fa342	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x8e33a8be	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x8e359020	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x8e3741bb	drm_master_internal_release
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e762ae7	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x8e84b105	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 vmlinux 0x8e98fcdf	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x8ea011d6	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x8ea0a85d	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x8ec2d26f	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x8ec860e8	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x8f0f5df9	is_key_type
+EXPORT_SYMBOL	 vmlinux 0x8f1cd912	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x8f2e7acb	drm_gem_put_pages
+EXPORT_SYMBOL	 vmlinux 0x8f371387	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x8f3f1d07	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x8f4e0069	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x8f51d849	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x8f5497f7	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 vmlinux 0x8f6fc3bc	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 vmlinux 0x8f7fb794	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x8f8ad394	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x8f8c5c3c	gen_split_key
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9ce9e8	module_layout
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fb51d76	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fcf2b72	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8ff57f1d	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 vmlinux 0x8ff650a9	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ffc045c	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x90097102	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x901e3274	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x9021c571	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x9025bf4f	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x90381029	nla_append
+EXPORT_SYMBOL	 vmlinux 0x905417e9	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x90565981	drm_connector_register
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x9064f25b	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x906e24e7	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x907b0651	pcibus_to_node
+EXPORT_SYMBOL	 vmlinux 0x9082c066	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x90894f0f	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x90950a13	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x90a0bcc4	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x90a2cc80	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x90bf73b6	dput
+EXPORT_SYMBOL	 vmlinux 0x90d05eca	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x90d0fb11	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x90dd3d68	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x90ff9bfc	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x9105a0fb	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x9114b616	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0x9118664f	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0x91271724	snvs_secvio_install_handler
+EXPORT_SYMBOL	 vmlinux 0x912abc94	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x9135bde4	rproc_memcpy
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x9191f9eb	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91aa93a3	init_tag_object_header
+EXPORT_SYMBOL	 vmlinux 0x91dab0a3	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0x91e59c93	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x91f69829	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x91f8788f	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 vmlinux 0x91ff3086	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x920aa24b	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x920c2371	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x921b07b1	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x922ef277	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x92345140	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x9246cb24	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 vmlinux 0x92668805	vli_cmp
+EXPORT_SYMBOL	 vmlinux 0x9266d794	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x928e202d	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x929bf685	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0x92a11d45	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x92a6f03d	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92d1a247	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 vmlinux 0x92d21574	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x92d5838e	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x92db8401	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x92e683f5	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x92e83efb	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fb1f0d	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x9300fe9a	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930f52b3	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x933752b4	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x9340a84e	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x935bc78e	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x93618aba	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x938cb186	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x939ee516	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c1204d	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x93d18450	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x93d9cb2f	drm_mode_prune_invalid
+EXPORT_SYMBOL	 vmlinux 0x93e004ff	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x93f2c46d	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x93ffddd5	arp_create
+EXPORT_SYMBOL	 vmlinux 0x9416c72b	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x94217cb4	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x9430d625	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x94428f0b	drm_dp_link_configure
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x9443c70d	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x9445e0e2	drm_panel_bridge_add
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x945cd04d	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x946064c9	simple_open
+EXPORT_SYMBOL	 vmlinux 0x9466e893	drm_connector_set_tile_property
+EXPORT_SYMBOL	 vmlinux 0x9472a54b	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x947c54c0	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x948e57f1	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x9492be6b	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x949b1176	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x94b65497	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bc8f24	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x94bd9480	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c47023	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x94f1123c	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x9501b8c6	drm_wait_one_vblank
+EXPORT_SYMBOL	 vmlinux 0x9505978c	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x95071fec	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x951d7c88	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x951d97c0	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 vmlinux 0x953cf990	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x953d6bae	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955a3872	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x955c0d42	drm_primary_helper_destroy
+EXPORT_SYMBOL	 vmlinux 0x957802fe	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x957f5c7e	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x957fa1d3	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x9580f7bc	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x958cf805	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x958e0584	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x95a01bd2	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 vmlinux 0x95b7aa19	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0x95cb523d	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x95ceadef	drm_put_dev
+EXPORT_SYMBOL	 vmlinux 0x95d81c24	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x95dbb69e	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x962b4bee	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x962f4ecd	drm_lspcon_set_mode
+EXPORT_SYMBOL	 vmlinux 0x9632e235	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x9660b4a5	cpu_hwcaps
+EXPORT_SYMBOL	 vmlinux 0x9667d19b	skb_append
+EXPORT_SYMBOL	 vmlinux 0x966d9ce9	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x966f9ab2	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x96731447	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x9688de8b	memstart_addr
+EXPORT_SYMBOL	 vmlinux 0x96974e80	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x96a31456	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x96a8bfa4	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x96ae23f6	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96b2b2bf	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 vmlinux 0x96b3c4bf	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x96bf0d48	drm_gem_get_pages
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96d8f467	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96f16b32	sm_keystore_slot_load
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x97015c25	drm_connector_cleanup
+EXPORT_SYMBOL	 vmlinux 0x971c000a	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x9726a95e	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x97282762	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x97488b7b	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x97503bc7	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x9755205c	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x97640e50	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0x97691a4f	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x9773b110	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x977ada47	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97acb49a	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b79e86	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97d77b22	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x97e05508	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x97e7132f	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x97f463d3	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 vmlinux 0x98027263	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x98101634	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x9818f223	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x98563031	seq_release
+EXPORT_SYMBOL	 vmlinux 0x98655715	sm_init_keystore
+EXPORT_SYMBOL	 vmlinux 0x986e019f	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x989b53fd	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x98a80cf8	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x98afe276	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 vmlinux 0x98b46623	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cf60b3	strlen
+EXPORT_SYMBOL	 vmlinux 0x98d8a67d	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98eb634d	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x98f9badf	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x98fb5842	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x99038d5a	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x990aad2b	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x9925377e	release_pages
+EXPORT_SYMBOL	 vmlinux 0x992c0d47	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x992daff4	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x9941c92b	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0x994eee2c	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x995d5810	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x995f682d	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x99801f3f	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x99859244	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x998bf5b3	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99b9c5d4	drm_syncobj_get_handle
+EXPORT_SYMBOL	 vmlinux 0x99c2e44b	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x99c863ae	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99d750bd	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x99e3f0e0	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x99fa7f13	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 vmlinux 0x9a0cd1fc	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x9a14a755	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a37a5db	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x9a3e8622	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x9a519cfd	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x9a537ee4	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a5c2771	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a88bbb6	lcdifv3_en_shadow_load
+EXPORT_SYMBOL	 vmlinux 0x9a9101af	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x9aa53c16	drm_connector_list_update
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ae7124d	drm_dp_aux_unregister
+EXPORT_SYMBOL	 vmlinux 0x9af42859	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 vmlinux 0x9af56270	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x9b1d82af	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x9b1f916e	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x9b25275d	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b460f84	drm_modeset_lock_init
+EXPORT_SYMBOL	 vmlinux 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b806bb1	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 vmlinux 0x9b9cb9ed	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x9bad1bf8	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x9baf6311	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x9bb711ec	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x9bc97cba	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 vmlinux 0x9bf1f228	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x9c005b1b	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x9c0f47dd	sock_register
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c1e5bf5	queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c2564ef	iommu_put_dma_cookie
+EXPORT_SYMBOL	 vmlinux 0x9c29cf78	drm_syncobj_find_fence
+EXPORT_SYMBOL	 vmlinux 0x9c314f5a	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0x9c3cfa74	dump_page
+EXPORT_SYMBOL	 vmlinux 0x9c5b7c40	drm_fb_helper_blank
+EXPORT_SYMBOL	 vmlinux 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9c9fccb3	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0x9ca5cf2a	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x9ca6c6f5	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cafcc12	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x9cb14fde	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x9cc07858	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x9cce9946	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x9cddd5a8	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce7f791	drm_dp_dpcd_read
+EXPORT_SYMBOL	 vmlinux 0x9ceee6b0	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d1a5e3a	__memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d265b25	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x9d3e56ed	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0x9d6149a6	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d654ea8	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x9d68d220	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x9d6ea49a	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x9d77867e	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9db34629	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 vmlinux 0x9dd8407e	drm_bridge_remove
+EXPORT_SYMBOL	 vmlinux 0x9deb6ecf	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x9e0adf87	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e118b2e	drm_any_plane_has_format
+EXPORT_SYMBOL	 vmlinux 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 vmlinux 0x9e13e711	i2c_bit_add_bus
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e21b8df	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x9e23ac96	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e592321	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x9e5f2755	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e8b0528	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea1a84a	sm_keystore_slot_alloc
+EXPORT_SYMBOL	 vmlinux 0x9ea2e97c	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9eb66f21	drm_dev_set_unique
+EXPORT_SYMBOL	 vmlinux 0x9eb7ba5f	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed81030	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x9eec02d5	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x9efca34b	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x9f36dd43	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4b7251	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x9f4d8bd4	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f5319d8	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f5dcb80	caam_jr_alloc
+EXPORT_SYMBOL	 vmlinux 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 vmlinux 0x9f842a93	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x9f8530df	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe6d472	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x9fee10a0	single_open
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff6c49b	drm_mode_duplicate
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa0026da4	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xa004507d	config_group_init
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa00ee664	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xa01fe0e5	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xa029fe68	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa04e3f1a	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 vmlinux 0xa055dea1	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 vmlinux 0xa074f47e	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xa0764b18	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa07d0404	split_key_done
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0ad499c	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0c57c85	drm_mode_object_put
+EXPORT_SYMBOL	 vmlinux 0xa0c60747	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xa0cb4d49	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f8d995	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0fe4651	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10dd792	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0xa11473b2	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1570d3d	drm_client_release
+EXPORT_SYMBOL	 vmlinux 0xa1663123	bdi_register
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa176c539	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xa18ad099	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xa19868fc	caam_strstatus
+EXPORT_SYMBOL	 vmlinux 0xa19db238	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xa1a9310e	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xa1cee4ab	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1fde56e	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa2174b20	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa21883db	__put_page
+EXPORT_SYMBOL	 vmlinux 0xa224e9fb	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa24ab6d2	block_write_end
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa250ab46	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0xa25325a8	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa2762391	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xa286a646	task_work_add
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2924204	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xa2948bcd	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0xa2a07b0c	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xa2aed5c8	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0xa2b591f4	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xa2b60541	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0xa2c2891d	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xa2db8297	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 vmlinux 0xa3027bfe	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xa306a9d1	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xa308dc2b	drm_panel_detach
+EXPORT_SYMBOL	 vmlinux 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa34d975f	rpmsg_send_offchannel
+EXPORT_SYMBOL	 vmlinux 0xa3504cfa	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xa364088c	sock_create
+EXPORT_SYMBOL	 vmlinux 0xa36ed546	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0xa3702d0b	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xa38208cb	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xa3bfdcb3	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0xa3c59ec5	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xa3c76bfb	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 vmlinux 0xa3cefaa0	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0xa3dd99b0	drm_dev_unplug
+EXPORT_SYMBOL	 vmlinux 0xa3e5fe1b	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 vmlinux 0xa3f525f2	drm_dp_downstream_debug
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4120812	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xa421ccd2	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xa43e6b29	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xa44ca0cc	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0xa4764a78	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 vmlinux 0xa48f43c1	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xa49dd88a	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0xa4a478a3	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xa4b31872	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xa4bafa70	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xa4c74231	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xa4fa2337	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0xa50e3be6	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xa51c5264	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0xa51f16c7	caam_little_end
+EXPORT_SYMBOL	 vmlinux 0xa52d6cbf	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xa52eea8b	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 vmlinux 0xa548b8cb	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xa54a64e6	drm_mode_object_get
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa55f7016	drm_property_destroy
+EXPORT_SYMBOL	 vmlinux 0xa568e972	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xa56b2a69	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xa580b5f3	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa59ffec2	kobject_init
+EXPORT_SYMBOL	 vmlinux 0xa5a69ffb	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5b3f080	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0xa5c65dda	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 vmlinux 0xa5ca94a9	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xa5e72dc4	drm_client_rotation
+EXPORT_SYMBOL	 vmlinux 0xa5e8d9b5	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xa601e42b	get_key_conf
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa60ec978	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0xa612d4ea	imx_dsp_ring_doorbell
+EXPORT_SYMBOL	 vmlinux 0xa61984eb	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa6286765	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xa6331f1c	drm_invalid_op
+EXPORT_SYMBOL	 vmlinux 0xa637169e	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xa63b5dfb	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0xa64408f1	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0xa64f590f	bioset_init
+EXPORT_SYMBOL	 vmlinux 0xa6658ca3	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0xa66a041d	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xa66f5fcc	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xa67464a0	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa682ecc3	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa6949f96	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xa6c16562	lcdif_vblank_irq_get
+EXPORT_SYMBOL	 vmlinux 0xa6e1366e	caam_blob_decap
+EXPORT_SYMBOL	 vmlinux 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 vmlinux 0xa7037ee6	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xa7199886	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xa738a884	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xa741dfac	drm_plane_force_disable
+EXPORT_SYMBOL	 vmlinux 0xa7434dc2	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa781300f	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7926e2a	drm_mode_validate_driver
+EXPORT_SYMBOL	 vmlinux 0xa7951622	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xa7a3cfbc	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xa7b046c8	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xa7d5da51	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7d8e7ab	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0xa7d9c21e	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7e4ec8d	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xa7eaad05	slot_dealloc
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7f03efe	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0xa805715f	lcdif_set_mode
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa8249838	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 vmlinux 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa85a6b2d	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xa85e8664	iommu_get_dma_cookie
+EXPORT_SYMBOL	 vmlinux 0xa85ed22b	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0xa8651e59	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa86a1cbb	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8b4dec8	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8d12458	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xa8dd993f	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xa8de95b3	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8e76049	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa90935c1	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xa90a41d6	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa90f9385	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa916f1ee	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xa92fa037	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xa9374c69	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xa95467b7	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xa95c4b84	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0xa963a4cd	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa979d7e5	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xa97e549d	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9a9ef0a	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0xa9cd1a06	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xa9d132b4	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0xa9d32565	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xa9f6f25e	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa0a2404	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xaa0d43b0	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xaa0e22bb	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xaa13c186	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xaa19e4aa	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0xaa26285c	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa441145	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0xaa5bfa30	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa8d5ba9	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 vmlinux 0xaa8ed63b	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xaaa14456	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0xaaa79019	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xaaaf09bc	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xaab2fc10	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 vmlinux 0xaab5bb13	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xaabcf369	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xaac0001b	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 vmlinux 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad76c6a	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae2269f	drm_gem_vm_close
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab077961	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0xab12bb2f	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xab206633	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xab29adcd	drm_dev_register
+EXPORT_SYMBOL	 vmlinux 0xab30de0e	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab4bb91b	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0xab4d1ced	caam_sm_shutdown
+EXPORT_SYMBOL	 vmlinux 0xab55bf24	mntget
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab607369	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab6e64c3	drm_gem_map_detach
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab7d6134	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xab8d89ed	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabaf28f9	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xabb525c4	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0xabc680e1	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabcf9f88	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0xabed46d9	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac078b64	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0xac19e760	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2c9dc1	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac48fad9	drm_client_buffer_vmap
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac54f833	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac6061af	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xac6ebf99	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xac7227a3	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac981363	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb1059c	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xaceb9e09	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xaced3403	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad083993	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0xad0c5032	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0xad21fb83	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xad2ee969	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0xad3a3811	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7a54ac	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0xad7dcdd9	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0xad8477cf	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad9c2873	cnstr_shdsc_chachapoly
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadb239d5	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xadbb96f3	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc2ce81	nla_put
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xaddec697	clear_inode
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae01584f	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 vmlinux 0xae284859	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae3ac621	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xae3beef3	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 vmlinux 0xae40de14	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae5a17e3	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0xae70195a	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xae7e155f	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xae90e883	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xae98c065	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0xae998305	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0xaeafd0df	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaf071c75	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0xaf2b1e0b	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf61882a	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 vmlinux 0xaf6fb148	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xaf8736e5	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xaf8767bb	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xaf929171	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xafaaa8e1	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xafb864c1	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xafcbc6db	inet_release
+EXPORT_SYMBOL	 vmlinux 0xafcee820	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xafe1eec6	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 vmlinux 0xafe43d1e	drm_panel_remove
+EXPORT_SYMBOL	 vmlinux 0xafe8d726	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xaffe4ced	drm_gem_object_lookup
+EXPORT_SYMBOL	 vmlinux 0xb00b81a9	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xb01096e6	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xb01a7e31	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb024f3f5	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0xb041d323	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xb048d713	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xb04a43ad	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xb04d7847	lcdif_get_bus_fmt_from_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0xb0511660	drm_helper_probe_detect
+EXPORT_SYMBOL	 vmlinux 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb058e71b	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb0698d80	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xb07004ff	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xb07f7209	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xb081b80e	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xb08607cb	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xb08da036	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0xb09144c7	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xb09819f2	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xb09a5b26	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 vmlinux 0xb0b2b118	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0xb0b583c0	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0xb0c1524a	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0ce7073	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xb0dae466	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e828a9	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb0ea7c7a	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xb0ee5047	unregister_console
+EXPORT_SYMBOL	 vmlinux 0xb0f0cd11	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0f67d94	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb1113143	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xb1125f9f	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xb118002d	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xb11b89cb	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb121c22c	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb15daa7b	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb180de0b	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xb1977507	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xb1a09358	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 vmlinux 0xb1a74d3a	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1d6f4a9	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1efbaf9	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xb1fe21d3	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xb20ab4bb	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xb20e8ead	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xb2239e0e	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0xb22552fc	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0xb22b9a3a	module_put
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb23027c1	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xb24ee7fc	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb256b168	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 vmlinux 0xb283e52c	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xb28e0f65	ihold
+EXPORT_SYMBOL	 vmlinux 0xb2921421	skb_split
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b08fe2	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2c2e0ba	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xb2c645e2	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xb2ead97c	kimage_vaddr
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb309dbb0	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0xb316f345	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb324b5f1	get_super
+EXPORT_SYMBOL	 vmlinux 0xb3388efd	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xb346b4c6	cnstr_shdsc_aead_null_encap
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb365552c	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb373c89f	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xb38365f3	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0xb384ca2e	cpu_hwcap_keys
+EXPORT_SYMBOL	 vmlinux 0xb3c7a510	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xb3ca0d11	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3dffd7b	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xb3e4970a	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xb3eef830	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0xb3efc522	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0xb3f49446	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f70d34	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb423361f	drm_legacy_pci_exit
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb4404770	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xb4444dd2	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xb446c8d7	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xb44a9573	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xb455924d	sha256_block_data_order
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb46f1417	ion_device_add_heap
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb48ed5ee	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4b3b10e	__module_get
+EXPORT_SYMBOL	 vmlinux 0xb4bfc9d2	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xb4c453c2	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0xb4cfd438	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xb4d53426	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 vmlinux 0xb4d8dc47	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb4de0ebd	ce_aes_setkey
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb5099475	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xb511c50f	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0xb512100f	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xb5136dc7	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb54240bf	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xb56ada82	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb58927f2	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb58b62c9	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xb5a1ce74	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5c274f3	sm_keystore_slot_export
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5fd9d2b	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xb609cdb8	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 vmlinux 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 vmlinux 0xb61d6fc2	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0xb6300712	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb6572ea7	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xb67754ed	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6ada957	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 vmlinux 0xb6bf8c4a	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0xb6c8913c	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xb6e09c0b	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6e7c165	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0xb6f3a2ac	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xb714f08c	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0xb71589f0	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb7508419	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xb786d2c4	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7c5ee53	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7cf1688	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0xb7cfd568	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 vmlinux 0xb7f5686c	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xb7f94d6f	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 vmlinux 0xb80c0681	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xb827737f	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0xb82dac34	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb835d733	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xb837c80e	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xb841f05e	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xb846c456	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0xb8490c06	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xb84b6e3b	drm_object_property_set_value
+EXPORT_SYMBOL	 vmlinux 0xb856c665	sm_keystore_slot_read
+EXPORT_SYMBOL	 vmlinux 0xb8639dd7	drm_property_blob_put
+EXPORT_SYMBOL	 vmlinux 0xb86b7d26	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xb874b516	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xb8867ba2	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xb8874956	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a0c75f	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b45450	cnstr_shdsc_skcipher_decap
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 vmlinux 0xb8d13520	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xb8e05fcb	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xb8eafc76	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0xb8ee46fb	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0xb8fd5224	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb905b360	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb935340c	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb96145b6	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 vmlinux 0xb96c6276	drm_panel_unprepare
+EXPORT_SYMBOL	 vmlinux 0xb98cfa24	drm_dev_has_vblank
+EXPORT_SYMBOL	 vmlinux 0xb98d1f9f	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xb9a0b4ad	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xb9ac8494	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 vmlinux 0xb9cebb54	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xb9d1b53c	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xb9d6a4e6	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0xb9e1cbb9	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9f33528	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xb9fd77b8	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xba02384a	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xba0bacad	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba248c53	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xba343b66	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0xba45cc8b	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba4dc0af	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xbaa84559	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xbaa91d2f	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0xbab01ec4	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xbab04d1a	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xbabdb028	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbac7257f	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xbac9083d	phy_start
+EXPORT_SYMBOL	 vmlinux 0xbb00d784	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb0ce0b4	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xbb24bc2d	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb2bed98	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb396977	rpmsg_find_device
+EXPORT_SYMBOL	 vmlinux 0xbb3a4b49	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbb45be0f	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb570050	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xbb6798a4	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0xbb8421cc	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 vmlinux 0xbba2dad8	cnstr_desc_black_key
+EXPORT_SYMBOL	 vmlinux 0xbba30ff8	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0xbba8f444	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xbbb0115e	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0xbbc6c213	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xbbd0fe21	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 vmlinux 0xbbd7a75b	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xbbda45c7	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbfd826e	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0xbc04f9f9	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0xbc0d73e5	cnstr_desc_blob_decap
+EXPORT_SYMBOL	 vmlinux 0xbc1f4383	new_inode
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc2c3542	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xbc549cdd	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xbc56be99	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0xbc5ef435	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xbc63838e	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0xbc724e03	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xbc801287	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xbc81482f	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 vmlinux 0xbc84c3fd	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0xbc894c24	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xbc93b247	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 vmlinux 0xbc950ee3	drm_mode_destroy
+EXPORT_SYMBOL	 vmlinux 0xbc9d43af	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbccdecff	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xbcf90361	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xbd0b7842	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0xbd36ea32	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd5e0167	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0xbd67c092	caam_imx
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbda2143a	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xbda2bee0	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xbdd2b2c0	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 vmlinux 0xbdff3e7d	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xbe047617	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xbe08706f	send_sig
+EXPORT_SYMBOL	 vmlinux 0xbe22a602	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xbe294bce	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xbe3522d1	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5242e3	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5bd6bc	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe658cc1	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7431c7	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xbe7d7d13	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe8277ba	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xbe9bc2dd	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xbea09877	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xbeabab0a	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xbeadf120	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xbebc0950	vfs_create
+EXPORT_SYMBOL	 vmlinux 0xbec42552	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbefd1328	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xbf046dd6	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0xbf122551	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xbf23f6aa	dns_query
+EXPORT_SYMBOL	 vmlinux 0xbf39a4da	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0xbf4d0d7e	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xbf5d60f7	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xbf6a14e0	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xbf79f4d4	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xbf810158	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xbf8ef935	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0xbf91351c	drm_dev_unregister
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfa77a3d	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xbfa7b789	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xbfaa4a48	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xbfcbc0d2	stmp_reset_block
+EXPORT_SYMBOL	 vmlinux 0xbfd1999c	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xbfd6acd5	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 vmlinux 0xbfd7e1d7	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xbfe2f03b	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff32a4c	drm_panel_bridge_remove
+EXPORT_SYMBOL	 vmlinux 0xbff3b12f	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0xbff6f7ed	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0xbffba24f	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 vmlinux 0xc00a080a	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0xc00e56ba	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 vmlinux 0xc01777db	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 vmlinux 0xc01cc7b8	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc03c5803	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xc04217f1	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07895e1	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b18ae9	page_mapping
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0cd9131	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xc0e00d1e	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xc0f1816d	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc0ff21c1	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xc10ae390	imx8mp_hdmi_pvi_enable
+EXPORT_SYMBOL	 vmlinux 0xc113ac1e	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xc117be23	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xc11a1ea5	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xc130ef1a	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xc1458ff3	_dev_err
+EXPORT_SYMBOL	 vmlinux 0xc14d01d2	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc1577279	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 vmlinux 0xc15caf3c	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16509df	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc16f80ad	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 vmlinux 0xc1723395	drm_mode_config_reset
+EXPORT_SYMBOL	 vmlinux 0xc185f2b7	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xc186e044	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xc18de3fe	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc1a216b1	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xc1bace80	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0xc1cc7b9c	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1eea5b0	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xc1ff8703	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xc1ff8b27	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0xc203ee31	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc231e3e3	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0xc24e7a70	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xc2539337	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 vmlinux 0xc25f5c2a	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc2688c59	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 vmlinux 0xc288c5ed	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xc29b5c0c	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2a5df22	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xc2a90e20	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xc2c15664	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xc2d5922f	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xc2d64dfa	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xc2dba211	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e6159e	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0xc2f52274	__lshrti3
+EXPORT_SYMBOL	 vmlinux 0xc2fc2e82	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc31ed052	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc32f5c6c	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0xc33ca81d	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xc33e5fdd	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0xc34bb6dc	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xc35c69b2	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc377d73a	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc380d9a9	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xc388bdce	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0xc38903d2	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc38cfb1f	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0xc392abfc	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 vmlinux 0xc3bc0cc9	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3c357d5	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0xc3c78a80	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xc3cb761a	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xc3cda4c5	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0xc3d53bb6	of_match_device
+EXPORT_SYMBOL	 vmlinux 0xc3e521b2	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc4267a72	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc4571dff	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0xc45b3b6d	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xc45dd0d8	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc494f187	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 vmlinux 0xc4b8ba14	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0xc4c6c032	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xc4ce7366	cqhci_deactivate
+EXPORT_SYMBOL	 vmlinux 0xc4d05f96	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 vmlinux 0xc4e925f8	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 vmlinux 0xc4ead3b4	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0xc4f50517	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xc4fbacf9	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0xc4fcbd53	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xc50b7163	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0xc5116c04	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 vmlinux 0xc5139a71	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xc51f9a2a	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 vmlinux 0xc52523d7	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc52eb602	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0xc5305e26	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0xc5427eed	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xc547347c	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xc549dcc1	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0xc54d3bdf	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 vmlinux 0xc561c4de	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xc5664491	_raw_spin_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xc56a41e6	vabits_actual
+EXPORT_SYMBOL	 vmlinux 0xc573a2bd	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0xc575b51c	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0xc5770e2f	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58d5a90	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0xc58f289f	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xc58fd2d0	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0xc5982829	drm_dp_link_power_up
+EXPORT_SYMBOL	 vmlinux 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc59f0de7	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xc5aa87d5	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 vmlinux 0xc5b00c03	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0xc5b57b7d	logfc
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5b7f94d	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0xc5c08d98	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0xc5c0f749	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xc5c55077	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xc5c7a195	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 vmlinux 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 vmlinux 0xc5d6558b	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5e901ec	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0xc5ea9edc	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xc5f69170	drm_crtc_vblank_get
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc5ff7d6b	drm_property_replace_global_blob
+EXPORT_SYMBOL	 vmlinux 0xc6039d5f	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc61348cc	drm_modeset_acquire_init
+EXPORT_SYMBOL	 vmlinux 0xc613f35b	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xc622556f	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xc629ef98	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc64a4d3c	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0xc65b963e	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc678b959	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0xc67a7780	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xc67f68cc	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0xc689443e	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xc691c738	mtd_concat_destroy
+EXPORT_SYMBOL	 vmlinux 0xc696a434	make_kuid
+EXPORT_SYMBOL	 vmlinux 0xc69df89f	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xc6ac993c	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xc6b1c5e4	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xc6ba6ae8	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xc6c6e673	dpu_bliteng_get_empty_instance
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6ccb960	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xc6d943c9	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc6df2128	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0xc6ed9270	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xc6eff86f	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xc6f3b3fc	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc70a6f77	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xc7173e56	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0xc718020d	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc7266d7a	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xc7334616	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 vmlinux 0xc73f1360	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xc74ffe37	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xc7607898	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xc77dacc8	drm_release
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7ac5218	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xc7b548d6	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xc7bededb	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7db10d7	processors
+EXPORT_SYMBOL	 vmlinux 0xc7de18ba	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xc7f656bb	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xc7f6fa07	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xc8007669	drm_dp_cec_irq
+EXPORT_SYMBOL	 vmlinux 0xc8080478	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc824c67b	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xc8257696	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xc838c3f5	__ashrti3
+EXPORT_SYMBOL	 vmlinux 0xc83e9c1c	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0xc83f4e38	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0xc8470871	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc8708806	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87b226d	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc896bfa1	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8c2fddd	drm_atomic_helper_check
+EXPORT_SYMBOL	 vmlinux 0xc8dca89c	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xc8dcc62a	krealloc
+EXPORT_SYMBOL	 vmlinux 0xc8df2583	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8f375c1	_raw_read_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xc8fe4755	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xc91e49fd	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0xc92411f9	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc95240f8	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc96a4e83	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc974eb7c	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc9868167	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0xc9ad919d	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xc9d9d331	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 vmlinux 0xc9dea495	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xca0814c9	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xca0b00fe	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca1ae721	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xca1ce8f4	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0xca1e6536	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca2710eb	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xca279b61	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xca346f2f	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca696f92	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xca9d384d	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xcabec08b	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xcac369a3	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xcace2fb5	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcad9150e	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb1447e6	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 vmlinux 0xcb23e00a	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xcb2a578e	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xcb2c3954	dpu_be_wait
+EXPORT_SYMBOL	 vmlinux 0xcb2d5d66	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3ca305	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0xcb55da49	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xcb5a3fb5	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xcb5fd33c	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0xcb622931	drm_client_modeset_dpms
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb7cc1e4	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xcb7d4a6a	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba0ef87	bio_put
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbdafbcb	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xcbdfc45d	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0xcbe34c61	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0xcbf79241	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc0603f0	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0xcc0b824e	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc1bfdd1	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xcc1cabd3	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xcc1dff13	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc2b135d	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc48da21	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc6b6286	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0xcc727a87	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xcc959f74	file_path
+EXPORT_SYMBOL	 vmlinux 0xcc980151	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xcca63314	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xccab3496	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0xccb699d2	kset_register
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xcceb5b8a	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xccee50d6	drm_atomic_helper_resume
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccf25b18	read_code
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd01b8e6	acpi_attach_data
+EXPORT_SYMBOL	 vmlinux 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcd0ade26	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xcd16919e	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd2d22c9	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xcd4022cb	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xcd44a43e	drm_mode_config_init
+EXPORT_SYMBOL	 vmlinux 0xcd5ba318	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xcd6416b0	drm_syncobj_add_point
+EXPORT_SYMBOL	 vmlinux 0xcd6e81ea	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xcd765ade	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xcd8001b6	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd9577e3	seq_open
+EXPORT_SYMBOL	 vmlinux 0xcda79f85	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0xcdb6a418	sha512_block_data_order
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd6bebc	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0xcddb5b22	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xcddc374b	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0xcddf45c2	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xcde69ec1	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcde8b42c	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xcdf12f34	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xce07cfe2	__arch_copy_in_user
+EXPORT_SYMBOL	 vmlinux 0xce12d696	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xce1537f2	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2ed0d8	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce72be23	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7eeb9d	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce881e6d	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xce8b696b	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xce963ed7	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceabf010	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 vmlinux 0xceb62916	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xceebf293	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0xcef44de9	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf09c4a1	dpu_bliteng_get_cmd_list
+EXPORT_SYMBOL	 vmlinux 0xcf0fade6	drm_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 vmlinux 0xcf12c043	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xcf166eb9	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf1ed87f	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xcf216207	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0xcf25737c	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf3d9451	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xcf3fac84	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xcf45430a	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf6b4787	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcf9e2770	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0xcf9e5948	lcdifv3_vblank_irq_get
+EXPORT_SYMBOL	 vmlinux 0xcfb322e8	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xcfbd4e62	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xcfc1e65a	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xcfd884a8	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0xd0115d4e	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xd011af8f	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xd01592b0	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0xd027feb1	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xd039be12	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd05978dd	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xd05dccfd	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xd064914d	bdget
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd077cf9d	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xd07ca650	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0xd08dd1da	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0xd09a5f21	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0d457e0	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xd0dcc5a8	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0xd0e7c843	mount_single
+EXPORT_SYMBOL	 vmlinux 0xd0ef1341	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0xd0f2630e	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd10df9e7	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 vmlinux 0xd15236a1	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0xd155e459	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xd1703d0b	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd1861697	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xd18b8820	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0xd1931f6b	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd1d7d07c	padata_start
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1e21019	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0xd1f10007	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0xd1fb24ea	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0xd215c0d8	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd2272a3e	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xd22afe46	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xd22b8f26	hid_bus_type
+EXPORT_SYMBOL	 vmlinux 0xd22d9657	bmap
+EXPORT_SYMBOL	 vmlinux 0xd22eeaac	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0xd235c7f1	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd243919e	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xd24a6c83	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xd258977f	rproc_resource_cleanup
+EXPORT_SYMBOL	 vmlinux 0xd25bc5d4	csum_tcpudp_nofold
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd25da602	caam_dump_sg
+EXPORT_SYMBOL	 vmlinux 0xd261e1e6	phy_connect
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd282c11c	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xd287076f	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd2904c15	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xd29198c7	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xd2aa4807	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xd2af37c6	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0xd2b5ef37	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xd2b62975	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xd2cd8589	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xd2d6427c	atmel_i2c_probe
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2dd6694	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd305cf99	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd31f0453	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 vmlinux 0xd344abb7	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xd3468ff6	caam_jr_run_and_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xd347b757	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd3559ef4	__memset
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd36bacda	cnstr_shdsc_rfc4106_encap
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd3a9eae0	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd3afccfe	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0xd3bcabf8	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0xd3bf57cb	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xd3c45cdb	drm_pci_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3d27b6a	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xd3d7328b	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0xd3e1bdb3	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0xd3e7c291	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f9d277	drm_noop
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd441c394	drm_gem_cma_print_info
+EXPORT_SYMBOL	 vmlinux 0xd4480f2d	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xd44935c4	drm_dp_dpcd_write
+EXPORT_SYMBOL	 vmlinux 0xd4586d4e	drm_vblank_restore
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd45eda29	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0xd4629954	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xd4649062	caam_jr_free
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd4a1eb0d	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4ac425c	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xd4b688f9	drm_read
+EXPORT_SYMBOL	 vmlinux 0xd4b7e771	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4d6c3b5	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fc810b	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 vmlinux 0xd513e48c	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xd51bebb5	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52bf0c3	kern_path
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd5347649	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xd54a52b6	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd5664246	drm_bridge_chain_disable
+EXPORT_SYMBOL	 vmlinux 0xd57916f3	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xd58bbe4e	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd59b4715	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0xd59d1c1f	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 vmlinux 0xd5a392c8	drm_atomic_check_only
+EXPORT_SYMBOL	 vmlinux 0xd5aa7a19	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xd5ae2b6a	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5c98154	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xd5f41819	neon_aes_ecb_encrypt
+EXPORT_SYMBOL	 vmlinux 0xd5f56e04	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd61e2c66	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xd626afbf	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xd63035e7	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 vmlinux 0xd6385b58	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd6502012	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xd656dbf8	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0xd66c8184	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0xd679f8f3	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 vmlinux 0xd6844b5d	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd68da0ab	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0xd6a0e942	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xd6af0185	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xd6b23472	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd6c163ca	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0xd6c3d4b4	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6dd687d	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xd6e91d44	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6eec931	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70c0fe0	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd7110e0d	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xd71493e2	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd7432891	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xd74d3471	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xd765f869	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xd7944255	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0xd79df159	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xd7a8ab9c	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xd7bfe069	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xd7c7f7cc	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d651cb	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7e6f1c8	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0xd7ea331f	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0xd7ee887f	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xd7f0e198	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xd7f95bd8	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xd7fca76a	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xd7ff1b8a	__ashlti3
+EXPORT_SYMBOL	 vmlinux 0xd7ffe5b4	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0xd801888d	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0xd80ede75	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0xd8275e31	drm_plane_cleanup
+EXPORT_SYMBOL	 vmlinux 0xd84593f1	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xd84bd91d	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd86ee1f5	drm_open
+EXPORT_SYMBOL	 vmlinux 0xd883ae07	drm_panel_attach
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8aaaffc	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0xd8b6c720	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0xd8b73a1b	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0xd8c266be	bio_split
+EXPORT_SYMBOL	 vmlinux 0xd8c318e2	_raw_write_unlock
+EXPORT_SYMBOL	 vmlinux 0xd8c6c943	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xd8cba5ba	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0xd8d0e31a	drm_universal_plane_init
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd8ff0d2e	drm_client_modeset_probe
+EXPORT_SYMBOL	 vmlinux 0xd90c8ea5	skb_pull
+EXPORT_SYMBOL	 vmlinux 0xd91f6ab6	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xd9252c09	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xd926c028	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9863346	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0xd98dec92	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9b78fe9	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9c8098f	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xd9d54479	cnstr_shdsc_xts_skcipher_decap
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9db0852	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0xd9e01c47	console_start
+EXPORT_SYMBOL	 vmlinux 0xd9eb40ec	drm_panel_get_modes
+EXPORT_SYMBOL	 vmlinux 0xd9f73c98	usbnet_link_change
+EXPORT_SYMBOL	 vmlinux 0xda0a8103	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xda2434d1	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0xda2a2c86	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4d080e	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0xda513dc9	drm_dev_put
+EXPORT_SYMBOL	 vmlinux 0xda66511b	atmel_i2c_enqueue
+EXPORT_SYMBOL	 vmlinux 0xda6af550	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda7bce46	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda8d4813	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 vmlinux 0xdaa7a50f	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdad8c78e	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0xdadb14e5	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdaf6f48e	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xdafcb005	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0xdb002a28	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0xdb03a2ab	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xdb07082c	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xdb142439	rpmsg_trysendto
+EXPORT_SYMBOL	 vmlinux 0xdb16673f	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xdb168730	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xdb1b14ba	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0xdb1cc81f	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 vmlinux 0xdb330e23	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb556431	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 vmlinux 0xdb5e2fa1	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb7bdaaa	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xdb8c0f58	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xdb999e8f	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0xdb9fb7dc	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xdba779f3	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 vmlinux 0xdbaae4ad	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xdbb67dc0	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdc401e	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbed2540	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdc0f04fd	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0xdc120547	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc51bc77	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0xdc7c9f6e	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0xdc936524	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0xdcabd09d	drm_atomic_state_clear
+EXPORT_SYMBOL	 vmlinux 0xdcb63146	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0xdcb764ad	memset
+EXPORT_SYMBOL	 vmlinux 0xdcee95c2	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 vmlinux 0xdcf5b398	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xdd164690	drm_scdc_read
+EXPORT_SYMBOL	 vmlinux 0xdd16f3f7	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0xdd170164	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd529ce6	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xdd53291a	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 vmlinux 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd6890b6	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xdd6c1cbb	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd74c1e0	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd91d225	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xdd92ba5c	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddb65cc6	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xddb95c31	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xddde2db4	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xdde35b46	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0xdde4c1da	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xddf71a0f	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xddfc3b42	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xde20f7f8	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde3de953	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xde62bf22	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0xde788a0c	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xde852f16	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 vmlinux 0xdeb4b096	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdeed0f1d	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdeffb1b4	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xdf171591	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xdf18f9fc	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xdf1ae5b2	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xdf1e7906	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xdf256037	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf34136f	set_tag_object_header_conf
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf377e8e	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xdf393e6c	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0xdf3a4c44	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xdf3dbb8c	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0xdf5009f2	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0xdf539d64	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf5da41c	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 vmlinux 0xdf6aae1e	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf78a677	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfa743c8	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xdfb17716	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0xdfc6029f	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfda9a87	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe0005ac1	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 vmlinux 0xe0132fda	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xe01b35d5	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0xe01dd562	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe038d4b6	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe03ab4f3	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xe03d6309	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xe040abb6	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xe0419ac4	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0xe044e170	default_llseek
+EXPORT_SYMBOL	 vmlinux 0xe07c5cee	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe09001e6	rpmsg_destroy_ept
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe09a7876	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0xe09aeddb	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xe09d67c4	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe10b2403	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xe110ff30	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe120ddb2	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12cba5d	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xe12ccc89	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13b49cb	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe14c285a	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xe150b3da	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xe153f436	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0xe15699fc	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0xe15bdc09	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0xe16182ba	do_map_probe
+EXPORT_SYMBOL	 vmlinux 0xe16cda0e	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 vmlinux 0xe17bf076	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xe1912f1d	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xe1914a51	drm_irq_uninstall
+EXPORT_SYMBOL	 vmlinux 0xe1d50492	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0xe1d9241b	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1de9144	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xe1e22acd	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe1eebd57	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0xe205481b	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0xe20d3993	first_ec
+EXPORT_SYMBOL	 vmlinux 0xe213efd0	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0xe21b8d38	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2449945	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xe253baea	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0xe25d5a6c	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe2964da9	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xe297909b	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0xe2a0b970	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xe2a8ee9e	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0xe2b85c2f	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d35874	drm_send_event
+EXPORT_SYMBOL	 vmlinux 0xe2d4a713	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2d56cb7	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0xe2e0c7c6	__flush_icache_range
+EXPORT_SYMBOL	 vmlinux 0xe2e30635	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe315737a	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe339743a	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xe351df98	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xe3544f7e	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xe3546015	rproc_free
+EXPORT_SYMBOL	 vmlinux 0xe359b38c	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 vmlinux 0xe3628d47	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xe36c4609	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0xe370a6de	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 vmlinux 0xe3712638	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0xe37b9d5c	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xe39b9e80	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3a6f745	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xe3aa77e1	drm_client_modeset_commit
+EXPORT_SYMBOL	 vmlinux 0xe3c128e7	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xe3c50de4	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe4174056	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xe41d1ad3	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe429431f	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xe43e3b3d	of_find_property
+EXPORT_SYMBOL	 vmlinux 0xe457e720	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 vmlinux 0xe46bfd3b	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xe4753709	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xe47ca247	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xe4922a36	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 vmlinux 0xe4989d8d	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0xe4bbc1dd	kimage_voffset
+EXPORT_SYMBOL	 vmlinux 0xe4c03461	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xe4c2e495	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4ebdec5	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xe4f2cf10	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xe4f561f8	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0xe4f81298	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe4fb091f	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xe4fce798	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe5047442	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xe508904f	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0xe51f44be	drm_av_sync_delay
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe5261274	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 vmlinux 0xe5274fa9	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0xe528fa41	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xe52ec99b	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0xe53f0591	cnstr_shdsc_aead_decap
+EXPORT_SYMBOL	 vmlinux 0xe54448b3	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe54981d2	mii_check_link
+EXPORT_SYMBOL	 vmlinux 0xe55b6dd1	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xe562ddf3	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56e3f0f	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xe5824518	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe58b35ca	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe592e6e3	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0xe5a0ef45	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xe5ada50f	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5cee426	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xe5d173b5	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xe5d54192	of_drm_find_panel
+EXPORT_SYMBOL	 vmlinux 0xe5e86ec6	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xe6043f64	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe61a19cc	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xe61d2877	drm_dp_link_probe
+EXPORT_SYMBOL	 vmlinux 0xe61ea942	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xe6480006	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xe6696a5e	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0xe66ad8b7	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0xe670774e	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0xe685bcea	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xe68e9639	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6923507	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0xe6ba7ec7	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 vmlinux 0xe6e1e28b	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xe6fdcb32	drm_plane_from_index
+EXPORT_SYMBOL	 vmlinux 0xe70b1694	cnstr_shdsc_xts_skcipher_encap
+EXPORT_SYMBOL	 vmlinux 0xe712a72d	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe7445e7d	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0xe7698027	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0xe7819edf	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7aa1340	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0xe7c20453	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xe7c494d9	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xe7cdc029	lcdifv3_enable_controller
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe8058c82	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0xe8077998	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0xe81b15cc	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xe81b35f8	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xe8360a44	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0xe840f7d0	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xe85e24f5	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe8640152	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xe86e1b07	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xe86f87d5	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0xe87ba730	drm_dev_enter
+EXPORT_SYMBOL	 vmlinux 0xe88dbd33	drm_clflush_pages
+EXPORT_SYMBOL	 vmlinux 0xe89b5ed8	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 vmlinux 0xe8aa4888	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xe8ab9b6a	drm_writeback_prepare_job
+EXPORT_SYMBOL	 vmlinux 0xe8b09536	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xe8b5244d	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0xe8d83c95	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe900bf89	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xe907652c	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xe90f1ae8	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe9233311	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xe94b0035	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe964ab36	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 vmlinux 0xe9927882	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xe99cfa77	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xe99f67f8	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9af7c21	inet_getname
+EXPORT_SYMBOL	 vmlinux 0xe9b1d258	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xe9d94477	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0xe9dafc23	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xe9dd5fe2	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xe9e80db5	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9ed1b0e	drm_encoder_init
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xe9ffc063	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xea11590c	neon_aes_xts_encrypt
+EXPORT_SYMBOL	 vmlinux 0xea1918bf	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xea3258f8	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 vmlinux 0xea38ccee	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea4319f0	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xea5663b8	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xea5918e5	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xea5d8735	ps2_command
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea72d5d5	mii_ethtool_gset
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea86d4c2	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xea984cf2	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0xeaab993a	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 vmlinux 0xead82557	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeae495f5	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeaf4b181	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xeafedb00	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xeb062ece	free_task
+EXPORT_SYMBOL	 vmlinux 0xeb213448	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb331a3f	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb507612	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb897cc8	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0xeb9bfa75	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xebaaefea	__register_rpmsg_driver
+EXPORT_SYMBOL	 vmlinux 0xebc03836	sock_release
+EXPORT_SYMBOL	 vmlinux 0xebca49f0	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebe3ac7d	is_black_key
+EXPORT_SYMBOL	 vmlinux 0xebe6ec97	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xebead0b3	drm_vblank_init
+EXPORT_SYMBOL	 vmlinux 0xebee70ba	drm_master_get
+EXPORT_SYMBOL	 vmlinux 0xebf90462	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec09f996	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xec12ba51	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xec1e4a77	bdi_put
+EXPORT_SYMBOL	 vmlinux 0xec1fb000	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec346e48	mntput
+EXPORT_SYMBOL	 vmlinux 0xec449263	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 vmlinux 0xec46c33d	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec572291	skb_dump
+EXPORT_SYMBOL	 vmlinux 0xec655945	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0xec77bc11	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xec782a8c	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xec7ccba2	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xec7ce216	cnstr_shdsc_rfc4543_encap
+EXPORT_SYMBOL	 vmlinux 0xec8c5a9e	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xecab8147	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xecbe3ba0	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0xecc581bf	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xecc8648e	i2c_bit_algo
+EXPORT_SYMBOL	 vmlinux 0xeccbc508	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xeccdb9a6	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf7dc35	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed264a4c	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 vmlinux 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 vmlinux 0xed4afc69	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xed4d056c	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed57a10e	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xed5db2a8	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed7dfd1b	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0xed89702a	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0xed8a2d95	memset64
+EXPORT_SYMBOL	 vmlinux 0xed970955	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0xedafdf33	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 vmlinux 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 vmlinux 0xedf26cfd	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xedf36740	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xedf5201c	lcdifv3_set_fb_hcrop
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee0aa0bd	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xee0b396e	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee1a24f0	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0xee1d74f7	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee38c10f	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xee3a10f5	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee6148a7	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xee6d4c84	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xee79c4a5	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7e7051	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xee7e9418	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee87d36f	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee94d1d9	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0xeea6435a	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0xeeb23ef3	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xeeb9fba2	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xeed2a0f5	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0xeed87656	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xeedfd09d	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0xeee8d3ce	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 vmlinux 0xeef5c727	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xeef676fe	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xef057830	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0xef0a0252	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xef17b422	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xef1988fc	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xef225ec5	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0xef249ed8	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xef2993f4	_raw_read_unlock
+EXPORT_SYMBOL	 vmlinux 0xef32b063	sk_free
+EXPORT_SYMBOL	 vmlinux 0xef496460	sget
+EXPORT_SYMBOL	 vmlinux 0xef4c88be	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xef672625	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0xef71110d	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0xef7a9fef	drm_add_override_edid_modes
+EXPORT_SYMBOL	 vmlinux 0xef89d2e3	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 vmlinux 0xef8e5335	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0xef8f155a	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xef9d265d	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xefa391de	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0xefa4148a	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefb07505	config_item_get
+EXPORT_SYMBOL	 vmlinux 0xefc32a9b	neon_aes_xts_decrypt
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefdd943a	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xefead3e7	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff24bfc	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xeff43aaa	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xeff7e53b	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf016c442	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xf0307385	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0xf0479c12	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xf05a95c7	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf06b3a84	dpu_be_put
+EXPORT_SYMBOL	 vmlinux 0xf079f6c5	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xf07c5d16	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0xf0854bad	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0xf08b6b91	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf0941f47	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf09bca55	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0xf0a4056e	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xf0b2b8a3	drm_mode_find_dmt
+EXPORT_SYMBOL	 vmlinux 0xf0c666ae	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0xf0eb1883	drm_client_dev_hotplug
+EXPORT_SYMBOL	 vmlinux 0xf0ef8d86	drm_gem_object_release
+EXPORT_SYMBOL	 vmlinux 0xf0fbe0df	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf140ffc6	dump_align
+EXPORT_SYMBOL	 vmlinux 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 vmlinux 0xf17457ab	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xf1759762	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xf17be64e	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 vmlinux 0xf18a9aaf	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf19f009b	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xf1aacb65	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf1ac97cd	drm_handle_vblank
+EXPORT_SYMBOL	 vmlinux 0xf1b5c9a1	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0xf1c1c280	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e6cbd4	cnstr_shdsc_gcm_encap
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1f90246	drm_gem_mmap
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf216ba2c	drm_connector_list_iter_end
+EXPORT_SYMBOL	 vmlinux 0xf217480f	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 vmlinux 0xf22a8d83	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xf22d82fd	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 vmlinux 0xf23995e5	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf243e26b	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xf245f321	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0xf247e0f1	drm_writeback_connector_init
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf2555e76	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xf25598bd	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xf2669a2c	imx_scu_irq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf26af6c5	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xf27967b5	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28e50be	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xf28fbfce	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2aa6e8d	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0xf2ab6486	rpmsg_sendto
+EXPORT_SYMBOL	 vmlinux 0xf2b27010	arp_send
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c8dd6a	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xf2cb7de4	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xf2cc80f1	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e6199a	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0xf2ec1dff	imx8mp_hdmi_pai_enable
+EXPORT_SYMBOL	 vmlinux 0xf2ed2f5f	of_get_property
+EXPORT_SYMBOL	 vmlinux 0xf2edf7c4	param_get_string
+EXPORT_SYMBOL	 vmlinux 0xf2fca51b	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xf30060e8	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xf30d39e5	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xf30d7510	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf359281f	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xf3745f4e	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xf374cbf0	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0xf3763ca6	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 vmlinux 0xf37f719d	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3a814ae	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3ca718e	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xf3db4a10	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xf3e023bf	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3eda18e	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xf3f1c61c	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xf431042a	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf43fc2a6	find_vma
+EXPORT_SYMBOL	 vmlinux 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 vmlinux 0xf443072a	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf4504d64	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0xf473ded0	drm_modeset_backoff
+EXPORT_SYMBOL	 vmlinux 0xf4748172	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf4810ba9	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0xf496365e	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xf4b079d4	lcdif_vblank_irq_disable
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4d08ab6	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf507dc3b	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xf51d0f15	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xf51f41f2	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 vmlinux 0xf52187b6	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xf5268baf	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf53ffa45	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0xf5467e04	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xf54aecf4	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xf5683212	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xf57b192c	follow_up
+EXPORT_SYMBOL	 vmlinux 0xf58a0999	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xf58a68ff	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5b24fa9	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xf5c177f3	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 vmlinux 0xf5d1fea4	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xf5d2b72d	snvs_secvio_remove_handler
+EXPORT_SYMBOL	 vmlinux 0xf5db162b	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5fe009b	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xf5fe502b	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 vmlinux 0xf60260af	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 vmlinux 0xf607b52a	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0xf6117712	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xf6131d94	would_dump
+EXPORT_SYMBOL	 vmlinux 0xf6314c44	drm_of_component_probe_with_match
+EXPORT_SYMBOL	 vmlinux 0xf63fd2d1	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf6549d59	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf678093c	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xf67abd0c	console_stop
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf693441c	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xf694309f	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xf69bf5e3	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xf6b823ea	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xf6bc224a	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xf6c45d23	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xf6ce6954	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0xf6da9d74	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xf6dcd38b	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0xf6df4fea	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf703f4b3	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xf71600f6	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0xf71b05e7	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xf71d0e51	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xf72bcb3c	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf7447989	sm_release_keystore
+EXPORT_SYMBOL	 vmlinux 0xf74eeeae	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0xf75130f0	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf77436d2	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xf77555cd	__memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xf79cf29e	drm_crtc_cleanup
+EXPORT_SYMBOL	 vmlinux 0xf7a9a566	get_acl
+EXPORT_SYMBOL	 vmlinux 0xf7b4a75f	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xf7b5d58e	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0xf7c6e1b6	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xf7cd8372	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0xf7d31de9	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0xf7dd2142	open_exec
+EXPORT_SYMBOL	 vmlinux 0xf7dd2cc5	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0xf7de6eac	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xf7e1dedd	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xf7e243da	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xf7f52e24	slot_alloc
+EXPORT_SYMBOL	 vmlinux 0xf7f9cbae	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf817c348	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xf81a8250	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xf82776fe	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf84a67f1	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf84d82cc	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf86663c5	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0xf88227bf	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf8953667	rpmsg_poll
+EXPORT_SYMBOL	 vmlinux 0xf8aeecab	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8f0ff65	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf9053a23	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xf909cdca	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0xf923396a	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xf92393c0	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xf92978c1	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xf93815ae	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf95a1484	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0xf95b05fc	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf97a3d98	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf9817bd8	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0xf983f52c	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0xf986b027	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0xf99276ae	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0xf994e9d6	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9bc2494	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9ca2eb4	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0xf9e65715	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0xf9e67921	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa0ee100	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0xfa1aa656	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xfa1cca47	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 vmlinux 0xfa3931bf	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa445aeb	drm_pci_free
+EXPORT_SYMBOL	 vmlinux 0xfa56e3ad	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa5cce7d	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xfa62b1bb	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xfa6cf990	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0xfa74bd1e	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xfa7651f7	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfaa81b38	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 vmlinux 0xfaaf57a9	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0xfab86d20	drm_encoder_cleanup
+EXPORT_SYMBOL	 vmlinux 0xfac671ac	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfacf4322	drm_client_init
+EXPORT_SYMBOL	 vmlinux 0xfb015cf6	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0xfb2f794d	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xfb320bbe	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb5bd5aa	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xfb5bfef1	lcdif_dump_registers
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb72dbf7	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xfb83eb64	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xfb8c3fb4	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0xfba01e69	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb4076e	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbbb3814	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0xfbc039c3	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfbed55e4	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xfbee43cd	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0xfbefb94c	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xfc012110	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc396081	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc532b85	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xfc590769	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc5ca4ed	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0xfc6227c4	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xfc6fb9dd	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xfc78da12	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0xfc7d2586	drm_property_create_object
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc97f235	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xfcabcff4	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xfcac5bfb	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0xfcace812	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 vmlinux 0xfcaf472e	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0xfcb000a4	node_states
+EXPORT_SYMBOL	 vmlinux 0xfcb51518	dqput
+EXPORT_SYMBOL	 vmlinux 0xfcbdbcb5	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xfcca5a9e	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xfccb9bfc	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xfccd8de3	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd2ec1d	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfce2ddcf	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcecb058	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xfd0d5631	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xfd193919	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xfd27b0e4	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xfd29934c	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0xfd2d19e8	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xfd473183	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xfd546d02	drm_dp_link_power_down
+EXPORT_SYMBOL	 vmlinux 0xfd60a1b4	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xfd7008d2	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xfd7587aa	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0xfd7d4d31	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0xfd84c162	key_link
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfd9f1297	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xfda875e1	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdad162d	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdbe6e4f	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdea1956	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe0ff178	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 vmlinux 0xfe1306dc	drm_gem_object_put
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe1d7ee0	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xfe1fa8a2	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0xfe4630db	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe628de9	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xfe63ce9c	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xfe673652	cdev_init
+EXPORT_SYMBOL	 vmlinux 0xfe7646b7	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0xfe78862e	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfe8da7b1	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfea84736	stop_tty
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfec877ce	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 vmlinux 0xfec88290	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xfed68707	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee06164	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0xfee9b3c8	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef68582	mii_link_ok
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff1ec66c	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0xff24c82b	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 vmlinux 0xff282521	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0xff2a35dd	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0xff411310	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0xff46a889	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff74d4c3	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xff808089	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff934141	drm_property_create_blob
+EXPORT_SYMBOL	 vmlinux 0xff977c79	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xff9bfe48	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 vmlinux 0xffa0cc3a	seq_read
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffd03092	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfffc0f68	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xfffd4d22	km_policy_expired
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x060e5b3d	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0d5e3fff	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x14747cf3	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1ca5b197	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x40fad5b7	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4908b13b	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x52ebb02b	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x58620db1	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x591a757d	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x69827d90	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7edddec5	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x906e2d18	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbf856475	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc4fd508f	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xcc5af9a8	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdb182763	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe462b8aa	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xed7c999c	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xb4221ab7	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xf35d6c48	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xc924f690	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xda5d849f	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x23ff8ccf	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x5f596b91	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x129d48cf	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x12f0cdba	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x94bf2735	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xe91cfaf0	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xa3cadb31	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xad8a6730	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x2485af36	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x27da7a9e	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x44413a32	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x0138a8d8	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x1b492530	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x716bcffd	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x9f5811d1	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x07cb3dd9	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x14931899	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1bb389d2	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2a19d27e	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x307d4018	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x5038ce69	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x5cadcc59	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x66e99ccc	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8676a194	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xaa70b997	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xcf08f8c6	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd1aff32b	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd3fa64ae	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf4ffae0a	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xdee6916c	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xf712fa14	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xf8fd0d41	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x9ff57393	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x026ee8dd	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x11a9cfc3	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x1e27a199	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x02ce2922	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x258e5ee4	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3b8d9ba7	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3d4dc8d5	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3f38ccd8	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x4023889b	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x49311726	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x5e6ccb75	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x61773274	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x65a1e8bd	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x85002a87	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x8561afa5	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x8e9ddc75	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x99ca7a73	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x9baf52a5	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb37f653d	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb596e5e5	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xbbeefdba	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc8a241bc	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xcc35236b	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd6c31456	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xddae8c52	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe6edebe5	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xf478868f	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xfa9e9ae8	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x0c16c614	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1108c5de	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x11bdeeb0	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x2dda6d7d	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x37577b32	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x3a22a6e6	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x43b88e6b	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x59724914	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x693c7dd8	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x94e358ce	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x9a0c377b	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xacf124e3	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb15a0c47	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xbe101771	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xd64514c3	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xfd371b28	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x2c05f94a	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0xd6e065b1	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x02b46d83	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x22901377	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x7103836b	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xcbf39110	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x66f0ce68	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xfd17ee25	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x016f9b28	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x13e206b5	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x244cdc8c	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2f20bc7a	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3fc3e52b	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4d7d1512	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x58a4f2d9	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x62e28abe	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6fb2255c	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7cebb0ba	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x83edc782	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x938dcc80	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x998fd2fe	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xaab4fbf6	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xaef67269	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb22528c1	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xbae1685e	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd9e54737	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdd59931e	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf8e45e66	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x57f9c07c	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7511a9a2	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7671a570	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xb599d574	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd17152cc	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xf239990b	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x007099e1	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0263e80c	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1226626b	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x15c01d5d	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x220e8a5c	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2239bde7	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2e984ba9	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x52218667	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5490dd59	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x59d53ea1	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5c163f45	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x789c9758	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8e9e3246	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa3f04387	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa7753bf0	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd16d2cc0	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xff59fea1	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x061fc33d	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x1171ac1c	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3e161877	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x435caa8a	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x5661d9a2	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6ef5de5b	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x772a8092	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xa58214e7	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xd1c2b848	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xe1fbc14f	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xe5b28437	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x18d692d0	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x19547349	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x1bfdebdf	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xc004e613	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xe569ad6b	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x2314c32f	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x325d421b	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x49ba245e	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x5dfebe0f	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x68b009b9	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x35e29a24	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x43507634	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xdb297261	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xf0962460	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x00ef45c7	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x2ef4e826	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3eb69250	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x45c35309	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x6e266d92	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7271ea46	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa265ee97	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa4a78298	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbc4763bf	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc15ce4db	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd981acbc	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdb6f1e46	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xfd4c53b0	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xa2d88b22	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x047c2046	hisi_acc_free_sgl_pool
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x04cf8f1b	hisi_qm_stop_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x0a08ace4	hisi_qm_get_vft
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x13ea3657	hisi_acc_sg_buf_map_to_hw_sgl
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x1a74638b	hisi_qm_get_hw_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x2e989180	hisi_qm_debug_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x3cae5227	hisi_qm_create_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x3fe7e1e5	hisi_qm_release_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x59881778	hisi_qm_debug_regs_clear
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x5e1b7f6d	hisi_qm_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x6a7f9633	hisi_qm_set_vft
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x6ceb9994	hisi_qm_get_free_qp_num
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x6cee3161	hisi_acc_sg_buf_unmap
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x70a2b1ec	hisi_qm_hw_error_handle
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x7fa22916	hisi_qm_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xbc2211d9	hisi_qm_dev_err_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xc60d5c74	hisi_acc_create_sgl_pool
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xcf672754	hisi_qm_uninit
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xdc90f7f8	hisi_qp_send
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xe0e8b0cc	hisi_qm_start_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xf7df448c	hisi_qm_dev_err_uninit
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xfc451ee6	hisi_qm_start
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x0b07ecf8	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x0c28702a	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4897350a	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x492e3c83	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x554ac4ad	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x61e62fe8	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb9f5cd89	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0x10febda6	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x0cae541c	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x6380b61d	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x6af76aad	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xe0c701f9	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xf669dad3	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x125cd06a	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x31318e09	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x54abdffd	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xc81e9b77	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xecd7eb3d	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xb9a4e058	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xd21cab85	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x3b28dd3a	cdns_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x4e80efb9	cdns_hdmi_set_plugged_cb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x5a184481	cdns_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x6782b4f3	cdns_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x99e9fb11	cdns_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xb1ab8cac	cdns_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xb2af4f6a	cdns_hdmi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xd53c3898	cdns_hdmi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xda3e7a4c	cdns_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/fsl-imx-ldb 0xa2055f23	ldb_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0xe9e02071	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x0b3a3371	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x11444767	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x616fa4db	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x088a1825	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x128d3814	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x149c6b16	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x173253ac	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1d8d4594	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1dda7df3	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x24e5b2d7	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4705e628	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5aa0e77c	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6736f9c4	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6907125a	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7250b934	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x80472f74	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x86d358af	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8ef82537	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9119e235	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x95195497	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x98338c3b	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x99b824ab	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9a64aa45	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9b16e4f3	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9eaac1ed	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9ed902e9	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa044f318	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa2942e97	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa5cedbd9	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xaf597fe4	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb49cf236	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb9c53311	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc4aa669d	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc9657985	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xce05f923	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdb854960	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xde23505b	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe420df5d	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe6a38be0	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf5d6536d	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x1d224b05	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x43fa3d06	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x5c280323	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x7354e05e	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xa33677df	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xca6ecb9c	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xdf4e29e0	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x339ed1f8	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x59b1c12e	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x7ba5ed6b	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x7e113dbc	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8535592e	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xb08b6b96	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xb1b561a6	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xbc38a5e4	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xcc15ff87	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xa27ec6b3	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x33485d7e	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x818807ed	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xd4497531	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x05f6d061	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x09e7f2c6	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0d78884c	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x105e8199	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1a88bd66	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2b963e6c	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x31599ded	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x36fc3f21	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x40e5dde7	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x429ab11c	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x46aca27a	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x4f5a6eec	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x71cce4c6	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x746eb770	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8546e74a	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8f00241d	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc696ca99	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd0b7046e	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x4340100e	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x70492f73	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xf679dfc8	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x082ffb09	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1090e7da	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x157806f7	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2a8a75b7	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x35cd6c12	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x5865da66	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x59fe93d3	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x63c466fb	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x649d2224	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x83f5a78a	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x93ab2a58	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9ef3deb8	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xad4547dc	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd156e74c	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd9d7e753	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe027d09e	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf117ceb6	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf22708b1	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf2e6bd71	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x140bc726	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1455ce5b	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x38cc4839	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x4497882d	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x62a4fb79	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x6f72f773	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x782e6541	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xe0822ca8	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xf8dbf728	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x17155652	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x44f55527	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x6513848e	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x16425b8e	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x527f42b4	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x7e8c7f71	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x948f1a44	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xc923a488	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xcd3a0817	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xd859d036	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xea989c2f	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf9ba40cb	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x842aefe5	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x9ec1c078	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xadcc9952	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xc83717b9	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0xc9dc2297	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x119bd88d	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x143901aa	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2d843880	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2dfa55d0	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3b8e292d	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x414ced83	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x44cab14d	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x57187045	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5ee46a68	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7765c9ec	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7b6f65b7	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7e2d1bec	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8b53d07d	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8fa7be3e	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x97c67734	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x99492be9	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa0070353	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa670240d	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbd634855	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xcc058fa2	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe045ad6b	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe3e68ea5	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe64a7d5d	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf1781bae	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf40b9c6c	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x3b45fd82	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xabec9f8f	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x74d809d3	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x9377823c	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x96e04e49	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xd6173599	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xa8e003dd	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xd1bde703	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xede75b78	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x3c178988	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xbc115872	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x0ed6b467	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x1308b4d2	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x202cd707	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x2b5bcdfb	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3f32699a	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x507a5fce	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xb54e23f7	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc9319cff	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf1c5618a	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf866f68d	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x3ea0b843	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x3f94fca3	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xa20e2248	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x2ba369aa	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x983fb1f6	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xcb10c979	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x91029243	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xa6759370	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0xece9d9bf	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xa6186c78	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xfda82890	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x498d81be	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x4a8f49d8	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x81e30c34	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x88bcefba	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xcd8b775c	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x0fb60a56	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x46dee6ae	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xcdbf4118	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x3dd11d17	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x5427d756	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x57f7b3b4	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x60a645ea	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x6ee09020	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x73a285a6	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x741a1d2a	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x7a2c8110	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x862e714b	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x88c6f801	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x96acc433	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc9435ffe	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xbecda283	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00ea8f22	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x6bc9d5d6	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xdc9e6961	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x05ebbd2f	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0819646f	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x088a0cac	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0c1c6de7	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x13195d6f	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x149f131c	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x186ecc38	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1c3ca2b1	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x23cb6d72	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x245df538	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x27076a41	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x28264cc3	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2a73e4db	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2ace5cce	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35b08cdd	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35e60a53	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4054b555	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x415e4e3b	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x446179b4	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x48d5196a	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4b49c664	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4d24942a	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4e045298	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5413633c	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x634ae217	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6837e39d	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x756790f3	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7b003555	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7df8cf47	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x87ab8e06	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8a060565	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x911ea465	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x995f6a82	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa00ae666	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa24041cb	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa35a6305	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xac29bf4b	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc10fcf8e	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc3af1b91	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc51722d0	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcfc8f903	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdfd793c4	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe1c14712	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe5b6dcec	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe60b6fa6	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf0b117bc	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf23ef815	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfa6bc469	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfb7d0053	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfbe3c4e3	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xa2b43da6	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x6a0805b9	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2d95024f	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x331bc888	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x4f117d30	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x6579df7f	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x891ea6fe	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xbbd95283	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xe5c92a16	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x630044a8	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xb97673c9	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0a5946c1	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4e394b18	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5202fe88	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x867bb6e5	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x95b6a7ef	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xa6128d9f	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xaa65e69b	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc83167da	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xcfde4c1e	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe290c1a5	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe408847d	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xea6550ae	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xec3b9db9	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x1cd4cd30	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x3de0afee	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xe9ad87f1	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x2f8bf45a	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x5f9f2f83	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x48806326	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xd6114ca6	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x14454185	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x2d4f074e	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x4998eb06	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xd1a3e8c5	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x08c079d3	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x107e352c	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1ec77af2	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2015f77d	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x38b03167	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x3f561028	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x57b673c3	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6097a57f	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc16a28e8	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xce70f908	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xdcd435b2	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf4a24386	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0f99a1ce	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x155966d1	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x1cae3914	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x316df602	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x3883b02c	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x4b209eaf	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x63c117d4	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6527522c	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7f884169	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb11f579d	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xcc78efa1	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe0b79948	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe37a844d	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xfa2a4da0	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xfe246765	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x3820a399	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x423498a4	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x506e3668	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x7867d08f	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xbaab6e8b	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xfc328ea1	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x0d275d65	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x20e0f192	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x34c54a9f	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x4db43f86	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xa0791bb6	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xa5415228	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xad253462	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xaf7113a1	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb2920ed1	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb3d442d2	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xddea4256	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0bb6287a	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1221a5c1	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x13123968	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1477c35a	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x15a4a5a6	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x22b58043	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x38c5d85f	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3c3c6bad	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3c3edbf6	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x65e2f17d	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x68e7e781	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x80bcadd5	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x93e63f20	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9c2ad36d	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc01f4b65	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xfeb3bdee	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xffdf173b	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xec757ebc	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x73357a70	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcb5796ea	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x5eeef914	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x6889113b	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x059af433	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3d05864f	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x442e54d1	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x530d5eba	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x93f2f46a	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xddc46a70	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe48fea82	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0140dc71	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x142d8cfe	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x21bc5348	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x251ea05c	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2cb77f37	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2e453480	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2f35cabe	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x319efb78	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4e50a7c9	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5c16f52c	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x688b38aa	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7a590037	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x92ea40d5	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9820100e	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9e67c707	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa58cc81d	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xabcf625c	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc18c325a	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc9cc37bb	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcb993d2c	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd4a865ba	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe0dd29b4	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf41baf2f	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf420aa8c	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf725cd12	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x2ac344e9	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x863d48fc	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xf41a9757	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x790ac904	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x9c4d3d8a	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x09a7d211	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0bd93a75	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x15d7c831	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1e10ac6f	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x2c723285	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x2e2ea21a	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x37b60f5d	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x44117e41	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4975dfab	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4a493376	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5bc54764	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5eb512bd	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x60f30cfb	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x61c59fff	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x695cd996	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6bebef2e	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x770e782e	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7e3b3263	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x94b56621	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9b8c47cc	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xaa256240	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbd408d6d	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbe0c930d	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbe5fee77	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbe9be18b	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc036a665	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc2db920f	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc5a595cd	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xcd94d6cb	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd6728578	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdc2d9095	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x7ec9b4ed	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x07da6d59	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0dba22b7	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1042350e	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x16f9255c	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1f124d5c	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x24c885fd	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2977baf9	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2b5fb3d2	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2b611846	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2cdaf079	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x39d33557	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3df48c56	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3f38bdcf	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x41da8455	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x48665179	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x50651f49	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5bb03cc3	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5e92257c	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x61ac32f0	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x63eb2ad7	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x65ab4d9e	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x65afdbf7	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x66b25c2f	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x69c223e5	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6dcf7673	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6ec75361	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x81974e83	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x879e4b08	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8d4832fc	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8e631c1b	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x97f8a7cd	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa733bf8f	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa878e058	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xae6d1486	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbd5fe33d	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcda35c69	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd126db54	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd7276a31	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdac272a6	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe1113aaf	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe2410bde	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee57b701	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf66c07af	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf706e2d2	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf7bc1471	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfb4636a9	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc781c47	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x48984f89	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x67f61b09	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x72be2b6e	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x7fa6b9cd	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x867eb038	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xad1dd160	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x0733046c	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x10e2cec5	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1550d848	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x309e2cdf	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3d269304	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3f3caefc	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x46b2adf6	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x66097867	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x750389c1	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x82e25d19	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x96d8b9af	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa059125b	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa30b8841	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xaf5c0619	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb503ccea	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc9c521d6	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd4e5b984	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe54c219f	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x6ddab8aa	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x29773f62	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x55812d26	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xb31b872c	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x2185ea1a	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3c5be39d	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7909f898	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x845ef8b6	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x911f75ad	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x91f2f4aa	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x93fe2723	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xcd51073e	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xcf97e0fc	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xfdcfeca8	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0529dc4e	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x09d5f0b6	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0df0804d	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x142fce59	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x15202a03	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x26a03972	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2f5336d6	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x34f8969b	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x383aef4b	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x487056ba	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4fc63fd5	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5cbf1ffa	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x65513db2	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x660f6843	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x67e54384	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x70d22a34	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7b11fa2b	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8e6de24f	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9af9b081	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9b7663b2	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa452ffe8	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb3951da3	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb622008a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbc0a6ad2	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbdf67eb2	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc578dca9	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc7af8f45	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc96674f1	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd79e664f	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xddca5a97	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe2ca5cfe	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe2fb18a5	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe660ed1d	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe76435fd	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf70f1b47	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x025b3726	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1d4bb8eb	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2a498bb3	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x372a5af1	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x43ce6139	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x44ff6e32	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x511888a9	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x55b0e801	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x777c8ad8	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8179a7de	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8cf036f0	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8fc8e50d	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa2eeff18	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa5dbd5f7	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb94ea1a4	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbe8f6567	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc2b8eba1	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc4a29cba	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xcbce8c63	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xda3bfa7d	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xee6acdfe	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf01777b9	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf655f1e8	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xfddafde2	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-contig 0x0d6b20fc	videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-contig 0xcb0f3e4c	videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-contig 0xee45ce45	videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x029482b2	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xb649b314	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc87c7a33	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0050fc57	v4l2_create_fwnode_links_to_pad
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x05c3b653	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0a5a9933	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11981788	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x12e0968c	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x150832ef	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x19da1993	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1c15f430	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x248f9d00	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2727bca5	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28345791	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2ad00f84	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2ca9b617	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3aab0a6c	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3bc3c31a	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3d917967	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3eae9edd	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x41b7a180	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x48ba3785	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4dc6280b	v4l2_subdev_get_fwnode_pad_1_to_1
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4fb960d8	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x516f413f	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x58574441	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5b9f7e18	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5e203178	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x68aba239	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x69aaad0e	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6fc6067b	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7cf0e479	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7e71a104	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7f2e2449	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x86e12475	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x894a2246	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8f3ae62a	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x939a4f05	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9a31c2fb	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa1efe418	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaede828e	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb0dcb8ab	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb181f4b7	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb4020cff	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb52b227d	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc848a7dc	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdc527002	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe023758e	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe8dcd5bf	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe9664468	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xee5fa59a	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xefb8b575	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf1adc763	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf3630d38	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf3f45118	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf9d41f51	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfc66ffec	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfdfdd1f2	v4l2_create_fwnode_links
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfe300ef0	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfeded94e	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x1ff20b2a	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x6308f6d0	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xf9493bf7	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x183e2e45	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x67f1a2a6	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x8fbaa40d	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xa5a98019	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xca217f6c	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xdda6f842	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xe7b202df	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x31cc74a4	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x4045dfad	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x48f0d833	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x8d95d517	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xa8f0377b	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xa9ebf08f	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xcbc8371f	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xdddb8f52	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x27c0bd82	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x51ee12bd	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf82c8a0e	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x1ebb7e21	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x2b2cc64e	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x6793ea56	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x6f2d9cb6	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x6f796206	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x95d6122e	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xe6d16afe	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x6e93ca7d	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xa7591a05	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xc568ee18	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x15371111	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3524994a	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3529450a	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x76118446	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x761c5806	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9c9d4f03	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa1f4d9bf	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa1f905ff	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd73b4d17	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe2c1c4b3	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe2cc18f3	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xed4b01a9	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf07cd85f	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x17752fb5	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x26f2dbf3	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x45c091fd	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x57cf6495	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xc232ae6e	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xcaa352ee	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x21ce7cf8	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x32ae9bc5	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x56aff9e9	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5a917aa3	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5bfc00fa	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x74576ad3	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x76a44577	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x98a61dfa	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xaf9046d0	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xafa64739	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf417a155	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x5a605707	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xbaf2c31a	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x365ed8bb	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x753bb3b1	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x837ffda6	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xaf8ea34f	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xe861c02e	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x0421cce9	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x007ae082	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0125c2e3	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x02be3095	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0dec1b47	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0fff9df1	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x133dbf96	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2362fa3c	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x373225b5	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3e245741	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x427e3c54	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4bad4c7c	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4f9b50f6	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x538d8a1a	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x576be8dd	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x589993a0	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x68bbdfd7	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7ad768a9	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8e5126f7	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8f4b6a49	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x91b233aa	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x950e3feb	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9eb44e0c	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9f714328	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa3b23614	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaded5f2d	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb079a6a2	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb9709754	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbfca2109	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc450ae5c	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdfcdc6e1	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe4a3ec1e	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe60b3496	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe7aa8ef0	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf1d7b6ad	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x16bab23a	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x18f8fe19	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x710a10ad	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x80d11f90	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x9d9737c9	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x5f5b3925	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x8f5465f9	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xa9becff7	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xf47007a7	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x0136a65e	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x481dc187	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x66b59c66	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x8493ac46	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x2053800b	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x3b7f12f2	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x66f7046a	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x4dfc2ced	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x13ee1e22	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x5886e7c2	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa041d04d	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xb8cf4fe7	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xed3414bb	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xf843a406	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xfecfa313	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x020c4eef	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x08673938	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x14c2a614	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1b3074bf	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1b4edb32	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x26509ec7	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x34b0f6d0	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x487d1980	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x571a0198	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x684808d5	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6937a3c3	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7aaba72b	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7f54de35	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8c417657	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8c7f9c09	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa4db9d58	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb9f27b17	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc5b88050	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc9d18c3c	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcc8c4de8	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd892d055	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xed7bed58	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xfc6c8ab2	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xfe88ad3e	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x07a85ec7	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0b1498ff	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x162d4c55	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x336a0f8e	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x44618b8c	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x8940cfd9	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9921cc30	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb9baac47	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc259b4e2	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc352698a	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xed494343	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf9c6246b	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xfc37d1e8	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x1a702fe7	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x5718dccb	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xa9fb42f9	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xb6b58644	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x2ecc8418	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x51d4d75d	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x85acf743	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x95f914a4	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xb31cae31	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xc42c4a3b	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xe1144952	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xeebbf4fa	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x20fc8547	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x4242e5e8	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x62f904ba	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x9199a4b3	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x9428aa18	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xaf2a0fda	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xc05c7cc4	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xe74e2db3	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x2743fef8	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x34e65b1d	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x4108709e	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x7e215576	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xbc165508	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x20cea9ba	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x5e9ce26a	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xad652dec	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xcf5b84ed	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x5ccd1a35	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x811e0e33	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xcf83703c	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x07c5cf01	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x3e22d103	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x919eb72c	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xa19b854b	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xbd634846	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x1a9645ea	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x248ab677	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x2d46c865	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x4318ab21	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5730855a	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x5f05aa48	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6be52bee	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x983a284b	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xbb9cf6f9	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xbe5ea180	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xdda09e91	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xeaf9ab80	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xec053137	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x87620633	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xb21baa88	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x4f5f8e9c	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x63afa348	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x9a34374b	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x0a2d569c	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x031ea22e	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0a1a453d	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0e71a4ae	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x12c21d5a	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x15e01ebc	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x25cced85	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x30ad2f3f	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x3171515b	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x32240768	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x34a81009	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x4196afb0	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7516ceb7	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x78cec76a	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7ac504dc	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7de86e08	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8d8861da	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8fadf032	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x94bb83c2	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa795a1a0	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xaf139de8	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc82f64ac	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc99d3c38	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xcad4dbf1	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xdda6ffd1	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xeb53e8fb	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xfa0333d3	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x2c0f557b	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x0a34af2c	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2058cc83	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x37901efc	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3dcc1b89	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x5429954f	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x88d8b227	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x93d6d655	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x946add18	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x966e77cc	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xa4d5db9c	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb5504568	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb99ed2d0	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc48eaa44	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe780c31f	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x007804cb	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x0457db42	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x1194bb31	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x13c42196	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x306ed75a	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x5185dacf	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x58290d6c	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x69baf3c3	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x842d0844	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8c7c1c54	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x9565846a	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x9feb27df	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xe8dffbc7	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x074f0be1	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x2650714b	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x8c5cd47f	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xac362f3d	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xe2cad974	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xf928077e	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x6d5717ef	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x6ec08df4	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x75cee143	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x9a26857b	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x00397613	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x1061f3ec	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x124a029f	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x19f45e3e	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x20a49cd8	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x263ddf59	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2a001ffa	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x38d868e6	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x3a1de802	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x404ce192	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5356d038	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x56b90bee	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x571e49fd	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x580017b9	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5dfecd4d	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x691197e1	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x7a328bd3	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8485827f	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x862310c5	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8b734c59	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x9654fac9	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xd4787a20	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xdc2543ed	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe500bbaf	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xeff8f64a	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf4875173	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x2f6e2665	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x6217b337	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x6f18ff75	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x70e671c0	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xa64f8006	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb688b3ab	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xbc9b5cb7	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xd282b6d4	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x19e32c4f	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x4f8f901a	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x6017bd7e	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xa00f9e18	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xc9abd925	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x0244282f	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x0b5e4739	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x134b101b	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x19138d0e	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x221262eb	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3ac6cc6d	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x44d229a6	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x58222b1a	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x767907e6	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7686815b	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7788863a	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7ec0488b	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x89e6fd30	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9c7c1422	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xccc0cabd	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf1a4f7c7	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xfbd91314	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x22124f29	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x22989168	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x43e7cc3d	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6ce10122	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x73c1364d	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x88cc838b	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8d8caec8	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xadd6cf24	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb1b08e1d	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb365608b	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xbe79e5cf	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xc9db16cb	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe32fab4b	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xeec5a4c3	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf2f1351e	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf59b5b52	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x190a4703	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x53d8853b	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x6dfaa953	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x963e5838	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xdb430875	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x16df3c3b	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x64ee83d4	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x843e366c	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xdfbbd8d1	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xf3cb81bc	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xe8139fa1	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x69d57bf6	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x743532e8	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x95a0bd3e	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xd2fe88ea	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xd858b737	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x0446a0b1	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x2028002e	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x6948a745	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x76177731	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x83c96610	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x934b7182	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x91798019	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x9e7cfb13	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2a7e7069	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x5964ab1d	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xd4df7716	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdaf69d68	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x01ff777f	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x2621c990	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x4eee803f	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x685509f3	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x754b21ab	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x8037d6c0	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x828c33e9	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x970fbc51	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9fc2a2d5	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x216dfc91	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x473ef381	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x48261575	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x6800c97d	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x8466518b	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x1842c59e	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x2936b86f	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x38cb3c50	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x49627bcc	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x5730f4a1	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7e8639e7	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x9b17263c	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xca5666ef	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xcfb7daa0	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xef37c2c2	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf0976a73	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x74311918	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xa4c404b8	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xb6e05de2	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xbda218e2	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xd29beddd	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xffeb49fd	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x8a092494	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x8cde3251	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x934cecd2	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xeab3d4ff	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0e535ff2	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x243fedcc	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x37a3866d	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3c987e3b	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x41bb7a3b	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4d1277b1	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4dd62eda	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x70b51753	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7a82a35c	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7e9310e0	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x84f38327	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xbb3d10a2	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd7dd2591	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe409b934	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xede17f8a	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf12ecf22	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x13a9a38d	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1568dd05	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4ae08970	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6cfc477e	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04ac6107	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0dcd28b1	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x10c6d421	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c80cc9f	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d32cdfc	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x306d14ae	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x45ee241a	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4ab510c1	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4d01787c	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4fc887ad	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5557d4bd	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x72875e54	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7c155e81	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8d9fad3e	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa01b5583	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xae79ef2c	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb114dd58	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbb67f72e	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbb994a7e	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbcd81c37	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcc9ff20e	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcefede37	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd50ed547	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe264f619	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf263e5c1	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf9a62a0b	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x34560242	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x566957d6	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x665d6649	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x9d0b50d9	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x10984f55	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x31175b91	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x98431e9c	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf81c7deb	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x0b6832d3	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x640aa816	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x6a03a6c2	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xd73fc1ad	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x370f1e78	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x6577d62f	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x8451d973	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x8f241ffd	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x9172baed	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xab6d90c3	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb3ac3ff0	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xff30c52c	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x1e2f30c1	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x3ea10416	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x5b00212f	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x007c8022	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x00f2cc3b	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0aae9cec	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0c888db0	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x187bb58c	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1e3959b9	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x219751d4	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3645df75	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3c524412	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x43fd0293	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x47c0d6e9	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49814a98	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49eae58b	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5487d4a2	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x704bd3be	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x734d6671	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x842d669b	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x94952370	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9a17e0c0	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa8a3087c	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa971bcd8	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xafd8e5b2	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb550f0b3	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbc3258c3	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbc8a08ef	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc051ec56	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc45e5a07	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc5007b73	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc88ddab4	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc8937b8e	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcda8dfd3	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd26ec9da	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd643e497	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdf970ae8	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdffbedab	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe42fb393	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xee644dd6	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf75aec14	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x13bcc20f	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1ac94258	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x36a55694	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x39f70c1e	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x658e0fdf	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6ccd062b	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6dda5950	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x96767e87	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x975f35b4	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xcec4e6ec	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe7d6f22b	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe911dd04	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0dadcc1b	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x1547dcb4	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3b6f0ca5	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x539370b4	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x588a1dc4	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6270f176	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x88d01f85	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x97ab165c	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xadb7a910	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb10ee976	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe62ca393	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf53aae74	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x131b22b5	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x20b3d76c	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x8d7bc556	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xc078c703	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xec6c8037	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x2fd45341	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x81d32019	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xeec5920e	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x32af9a2d	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x580d46fe	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xbfcb5b40	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x12fb4404	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x1ef0a560	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x6cf9c180	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xeb036cb8	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xf0917f4a	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0x5edb1491	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0475abdd	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0c377337	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1da29b77	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3335ffda	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5f7f1c55	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x73e782e7	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x77ea6ab3	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x8430dcf7	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9c5c54a5	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbaa72b4f	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbbc8eeb7	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbd8d4733	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbe0da7df	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe4e29c7f	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xedd7ba33	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf1e1d982	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xa59ef425	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xd26a2432	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x0dfd4174	hisi_sas_notify_phy_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x160db9ac	hisi_sas_phy_oob_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x1b3cf542	hisi_sas_host_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x242b99ef	hisi_sas_debugfs_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x289d7bbc	hisi_sas_release_tasks
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x2af56e6a	hisi_sas_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x2c1f3b67	hisi_sas_controller_reset_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x449b4f2a	hisi_sas_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4bba77e5	hisi_sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4ce178e2	hisi_sas_slot_task_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4f0272af	hisi_sas_stop_phys
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4fbff3ef	hisi_sas_probe
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4fc22123	hisi_sas_stt
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x579ff1f8	hisi_sas_scan_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x5ae74159	hisi_sas_phy_enable
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x60f764aa	hisi_sas_sync_irqs
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x6d6adb9a	hisi_sas_controller_reset_prepare
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x8591f48e	hisi_sas_init_mem
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x878a4eed	hisi_sas_debugfs_exit
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x93ca1299	hisi_sas_phy_down
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x9634d0f6	hisi_sas_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x9b807c91	hisi_sas_get_prog_phy_linkrate_mask
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xafa3e4f3	to_hisi_sas_port
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xb03aa9c5	hisi_sas_rst_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xc3a41131	hisi_sas_debugfs_dump_count
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xc5038e7e	hisi_sas_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xcdb71487	hisi_sas_get_fw_info
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe330cb74	hisi_sas_sync_rst_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe987d9aa	hisi_sas_debugfs_enable
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xebfae55c	hisi_sas_get_ata_protocol
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xeedc641d	hisi_sas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xeee5b172	hisi_sas_sata_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x2aae2f05	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x83e00244	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x83ed7734	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xa38a9264	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xa606a8b3	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xdb8fa72f	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe7350096	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0xdef9f159	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x01985a05	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x06298793	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x06cb8dce	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0a4fb467	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1aa6b549	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1ae3c678	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x24d9a98b	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2cd7e9e7	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3277c336	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3419bc11	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x35006e50	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x38adcb70	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3d19ea98	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3eeabc7a	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3f912098	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x40e610b8	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4c26a4a6	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4c330b2b	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4db09498	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6c1903c7	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x70205ecf	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x74b6b9e1	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x82af133e	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d52d971	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8dca4ad0	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x92029cd9	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9b9f6e1a	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e009054	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e5057a7	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa3072d97	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa3093b82	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xabc7218c	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb74158d5	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbda097dc	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc3fd7d48	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xca227a7d	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xda8ff1b0	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdfd88fa7	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe56bb6b5	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeed5abf0	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfd919888	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xff2a9f02	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x01562ffe	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x02a58fdf	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x05a25160	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1407590f	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1dbe75be	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x490eca24	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5912b046	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x98e3acc8	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9c33bf54	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9d68f96b	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9f3b5f9a	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc057874b	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc0695fc4	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xcf0e78ef	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe1189590	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe56dd2c3	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xffefc305	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0f951d3e	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x12eb5801	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x27423ff3	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4f75794d	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5481e157	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5517ad6a	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x839696c2	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x90ccb93f	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9e504d4e	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9ebd1a6f	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa354f024	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xada08889	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb56748c9	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc0bc4b2c	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd238feb0	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd3671f56	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd3b10c56	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdf840ebb	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe65321ca	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe93aead5	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xec9ce4e6	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa675435	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfa74b695	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfaacf904	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfbbd06bf	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x052b443f	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x08008f0e	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x13ab4d56	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x25f938cd	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x267e0a0e	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x28b0b83b	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2b59a4c0	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2d243339	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2d3dd4a6	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x33954ab6	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x39ac2410	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x39bed55c	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47226923	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4c293931	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x515a3148	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5bc3f921	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x61844ffe	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x61ef3409	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x63423f71	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x63a5efd1	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6f337ebd	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7df87f9f	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7e3b4f78	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x805b12c2	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8bf98f26	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9371e875	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9a72fda3	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa2237ec4	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xad34975a	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc5caf39	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc566248d	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcfa2aed0	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd00c405d	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd0f45878	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd1f31f4f	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe148f0bb	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe3bd1e9f	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf16044a7	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf35e06d7	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf514fa51	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfa6f474b	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x67e0517d	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x936f5f57	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xf1fd0522	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xfd5a0927	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x3a87dd35	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x19e4bf62	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x6fc98ad9	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x75138ec9	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x965d1882	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xcb8cdaef	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xeca7a476	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x0aad0e5a	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x0fd45283	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x386efcc5	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x5938b7b5	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8832fb2f	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x98cf3420	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xa53d8590	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xb58871b6	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe2635d79	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x33355768	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x42720baf	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x53a2e70a	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x5e6152f5	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x70201505	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd2604dd2	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xecadca25	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x1281b40b	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x71a9024a	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xb2f70ccb	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x437c8cff	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x4a569096	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xc4d6b8d1	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x00e1e387	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0554d557	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x08eef54d	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0e057a69	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x1a41adfd	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x33b6ef25	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x56dab946	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6c538d55	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6e09d30a	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7b99f737	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7f7f161d	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x85845f6b	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9b0f5c7c	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9d36e033	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb72277b8	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe272f179	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe5105c3c	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfeaf0807	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x4627be18	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0e6cc528	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0f633bac	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x17839ddb	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1ef07c02	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2014f3ec	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x20697588	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x232e84fb	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x274385cf	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2c78e727	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x32aaea7b	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x40e45df6	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4598667f	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x48c80308	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x48f3fc61	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4d92cf7e	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x56e43e9f	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5a46fd87	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5a6462e1	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x616d2d12	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x61fee278	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x697c72ed	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7d3e641f	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x857c31f2	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x95da3ff4	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x989b79bf	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9c390d6a	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa2d539ef	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa9960315	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb97a8c20	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc336058d	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xcd891c3c	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd3aa00e3	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd3af7ead	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xde121ee3	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe2819aee	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xededa228	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x098deb32	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x38e90fd3	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x570bc2c2	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa60f4a47	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xdc9d77cc	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xeda111b9	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x1141a68f	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x29e60b18	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xbc80502a	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x3107d7f4	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x3ef7161e	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x713e1c09	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x88d4836a	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xa8c8b38b	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xfcb480fd	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xff1bb601	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x037899ac	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x2e2798b1	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x589bc744	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5b2db64a	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5bb1aed7	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x60006db3	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x749fd442	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xb0fbd7d9	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xb5416e78	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xc13e841c	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xd9678502	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xe7fc0dfe	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xf79d099b	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x16194d27	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x6c7fa256	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x720ca2bb	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xaba7d8d3	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x07a3aac1	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x080e62a3	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x0cebcd14	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3a18832e	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x46121501	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x772cc7b0	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x7b86d3e2	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x8b6dcd94	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x953c7379	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9a91bb1b	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa8875a96	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb627a6ce	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xe7036352	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x19f54aa8	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x23931128	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x3ce5b3b9	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x499b2805	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5ee5f580	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x651625ba	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x67145464	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa3b1db7c	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xacd9bc65	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xbd6817ca	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc6d18548	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xcdadac72	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe4030ac7	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x264ed71b	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xe8102b55	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x688c79be	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x7359bc2f	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x1f6cdf5b	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x63a395bb	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0xe9943770	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x1b560860	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x27465917	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3c9ad4a3	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3e46654d	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3f35e5de	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x883193d8	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x96efb74a	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa09d71b0	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa220f33d	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xaf6e9054	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xbcae14ce	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xc2dbb163	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xc6fe4028	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xced03d5d	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcfe0af12	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd92e8539	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xdfa24da8	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-cap 0x0e79e01c	mxc_isi_out_formats
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-cap 0x7aa6afad	mxc_isi_cap_frame_write_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x0bb5828e	mxc_isi_get_hostdata
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x1c0dcfa3	mxc_isi_channel_config
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x2256e192	mxc_isi_clean_registers
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x268b271a	is_buf_active
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x37ec8661	mxc_isi_channel_init
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x3bc290e7	mxc_isi_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x5f79d1dc	mxc_isi_disable_irq
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x7e437f6e	mxc_isi_m2m_config_dst
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x81e710dc	mxc_isi_channel_set_chain_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x8503f34c	mxc_isi_channel_set_outbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x898e56bf	mxc_isi_clean_irq_status
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x8c50b273	mxc_isi_m2m_start_read
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x96324824	mxc_isi_channel_set_m2m_src_addr
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x9efb9e4f	mxc_isi_channel_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xb071c356	mxc_isi_m2m_config_src
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xbedb3e68	mxc_isi_get_irq_status
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xc314cb26	mxc_isi_channel_deinit
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xcdedcde4	mxc_isi_enable_irq
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xd4a043bd	mxc_isi_channel_source_config
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xe35a8206	mxc_isi_channel_sw_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xf05d4109	mxc_isi_dev_get_parent
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-m2m 0xe5eb3aaa	mxc_isi_m2m_frame_write_done
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0e37ec5c	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1701254b	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x25ebc69c	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2c195430	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x32058259	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4d903f97	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x57b9b84f	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x57f26027	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5802791a	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7da5829f	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x9e03ca68	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc53d2e7c	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe6289816	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xfa128e9d	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x03050d3f	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x10b7296c	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x210fd464	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2b82d7af	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2e860f93	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x32a191b8	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x395972d2	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x3ec50e73	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x525c7e03	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x61c40614	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6313e893	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x812ecaa8	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x9816ffb7	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc05a46a2	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xde564326	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe9d59215	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xeff48588	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x76b38ce0	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xc1f23415	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xd5b30e17	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x003b0023	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x010816f3	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x166bc4e8	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x194ac812	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1ba76ca7	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x222d2416	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x228d526f	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x24d84be8	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x29bb5660	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2abd37a7	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x406aaaec	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4485909c	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4ede0084	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x58232cc8	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a63fe76	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x644f7bb4	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x66519166	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6a6480a9	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x72761c77	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x72938b99	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x805354c6	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x84d856c9	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x96fed3b1	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9f87ecf7	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa193b113	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa6ccb1a9	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa6d42a31	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb2c451f4	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb6f6dd25	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc240a29b	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc41fa1ea	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc8731fda	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xdc56be02	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe2d0e26a	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe86e9ccc	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5171935	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfd850aac	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x0f666df3	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x33273b42	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x33666aba	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x575fdd2a	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x601c6935	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x85627bd1	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xae71e2df	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x45c258d8	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5808d458	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x77e8ac70	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x90e9594f	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xbb53f5ff	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd138b808	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xdae3aca9	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x133badfe	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x26b3e8f2	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x2a4ca96f	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x646f2d44	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x67a58cbb	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8c600ace	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x903477db	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x98ae434d	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa73b13e7	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb066f89c	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc5023835	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc99847a4	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd2ef2f00	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xeb5f5d60	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x8a60aa7a	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xb17de99a	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xfe6a6a01	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x11afd8e3	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x75766893	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x510679ec	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x52daa8a1	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xeadfa151	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x2197219a	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x44a91a34	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x4fbeca97	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x7b2720d3	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xeb2b46fc	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x0c19edb7	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x250c4868	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x2c3197ce	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x4fa3e409	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x7447e020	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xdc29b659	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x1c28489a	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x4e038a5c	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x70396e63	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xb25e56c4	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xe6cdb223	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xe8553e58	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x052d9dec	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0c4496e1	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x190840dd	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x541bc013	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x56872d0a	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x829ff9d3	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x83b309db	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8c5fdb2d	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x932d504d	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9b6fc1a8	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa2968dee	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd679c3c2	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xdd1cd732	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf0f4da3e	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xfa9a848d	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x346c8a43	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x44d9f186	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x053ffd00	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2ff16cf9	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x473470aa	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x55ccd682	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x5b916808	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6c0919ad	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6ec40ac8	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x71cfb88d	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x75bb689f	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7edb6a84	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x97e514e9	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xac01a7cb	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xadb6731b	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc756ce10	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xca01e81f	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd5104011	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xfdc8a964	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x15effe67	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x1f6392e7	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2873c025	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x59883b1a	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5a0371b7	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6ef6ca24	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x79d21c90	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9b9011b3	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa1f87a9d	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa87e0721	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xcc83ee7e	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xcfc923fd	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdae85895	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe10dfea1	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xff9d59bf	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x056e524e	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x096e7024	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0970939d	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0ccf3a5a	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0d008e3f	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x15d80685	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x23448233	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x28cd6656	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x30c5a0b8	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x37661d17	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3d83ed26	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x46ecad59	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x645fca99	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6cb099b7	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x781af447	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7e759d8f	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x98341532	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9b8dfb0a	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9bec705d	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa29a77c6	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa5558a06	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa7009b7a	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xab8729d2	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb5a2bb5c	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb94df3f3	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb9cbaef4	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcc22715e	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd966fe92	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe108803a	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xeda19755	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf1167e41	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0404d752	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1efe3d4a	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2335898a	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x33f9b94e	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x35ea6370	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4e8ea8a2	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x546ad61f	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x62b2e536	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6f45f8bf	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x738a46d4	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x75afddbe	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x829707a2	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x895e2efd	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9129c9c0	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9781e48e	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9879d6a7	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xafbd7a36	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbb9962fe	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc3d4b872	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xd5ab5736	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xd79b44e7	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xdfbbe64a	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xe9825e1d	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf136c5ad	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf5735c9a	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x5f505176	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xdba1a595	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x1ccd064d	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x541f8128	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x5b422601	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x6bf50e41	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x922d25f3	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xae4a4218	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb2a72c63	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb433d07c	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xc3af26f4	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x0e3f93d2	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x263c6909	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x793b87df	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xe93c1fa2	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x0ac78dfb	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x12a62c5a	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x32afe743	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x576f8ca3	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x6a75e077	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0xa0258c99	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x60350c68	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x71227f26	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xf730b58e	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x0c9078e9	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0ed31402	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x13997a20	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x28197155	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x289c581f	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x51603701	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x57e3911a	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x59495355	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5be47ad6	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x76f89460	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x85bcf6a0	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x909c1f45	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x9beba08f	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb6893709	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc08e2273	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd03014ed	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd210621c	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd367762e	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xdccd5e9f	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf6be5551	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xfdeb8839	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xff394203	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x169ed7df	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xcc597796	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x1472be5d	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xeacf3665	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x017e1efd	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1be90145	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x21080633	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x21c8860c	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2dda687a	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x31c421b2	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x334b2c44	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x35a69f77	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x365594a2	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3c8f9436	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3df06757	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x425ccfa0	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4f67d9a9	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5040c10d	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5e9665e8	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6dd28c39	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x764fdaf6	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x767c843e	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8453c84f	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x84e67ba9	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x862adbbd	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x88fc4f0f	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa4e231bd	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa63426be	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa8c1882e	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb2fa25a2	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb6447b64	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xba234ac5	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc71b33ec	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda3aeeef	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe8009638	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfd25f92b	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x381bd8f2	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x7faeb247	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x8d94240a	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xc6bdb288	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xf7c39988	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x089e28e3	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x298bd126	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x358297a6	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x41d8ef25	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x56f5978c	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x657a93ba	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x70c45565	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x727997c8	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x795505a3	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x85e92dc6	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9aee591d	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9b9c65ef	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9d6c7686	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xaeaa6c14	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x155f8253	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x214c6b3a	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x74424618	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xbf517ccd	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xd3571067	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xee20954b	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xeea2ef3d	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xeecb4276	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xf90519b5	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x2c35855e	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xc916ecb4	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0d1a725b	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x11f59ff2	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x16751047	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1d4a76a7	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1f7ca61d	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2a4057f6	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x303375ef	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3aef2568	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3e42ca9b	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5cb25df2	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x622ab40f	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x64ce16df	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6721175d	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6b325df9	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6b8da908	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6fc910cc	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x810122fc	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x84c5dcad	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8ceba400	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8e0585fd	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9abcb93c	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9b84bb2e	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa0e97e7d	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa6e9eba6	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xab1814b3	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xae577b03	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb57165ba	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb829e026	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb8ffc257	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbcef906b	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbf6227da	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbfda1fda	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc462505a	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xcb3d602d	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xda0f2fac	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf1e436f4	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf6e458cf	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfa09aa81	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x0fc32071	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x18c07cbf	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4596e33e	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4956a990	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x79405e7a	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x901ebdf6	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x95a24026	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x0a8aa425	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x5be55b89	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7a3fe4c5	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7cc2d746	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa5c65fb6	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb6ef00a8	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xce1661c3	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd186dd14	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd792566a	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xdcaa2b56	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xe284795d	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x11bd1473	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x1afbc872	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xac980ef7	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x26a2ad03	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x451f37ab	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xad9c13f9	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xe64fc1ac	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xebd24ff0	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xecc8d4ee	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xf6fd3073	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x05fbe040	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x065ef1fb	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0cabca13	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ed89d02	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x13a8aad9	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x148c4bf6	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x157d2452	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x15bdabdb	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x17adaabd	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x191cd861	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cab36b6	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cf2102a	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1dfd03e2	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e4ea046	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e9cd2ee	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f27feba	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f6df7af	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24f74f32	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x287aa9df	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x29aa2c61	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x29b64f00	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x32024eda	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33d61642	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x347b1c82	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x368cdba2	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c6d8fce	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d432e25	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d79f70f	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42af23c9	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x434cd873	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4aa25a7d	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4aea24fb	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c0b21eb	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c8917f8	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cce9780	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4d5796d0	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4ee79477	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4f0ebc76	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4f3674e0	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x50e8b7b3	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5220e9da	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5241ded2	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5311e3a9	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x54114b30	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5544279c	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x575f0862	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ae1bab4	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60af74ca	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63e25de4	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64cf0b04	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66fd6d77	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x69b78884	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6aa81c7d	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6b7e33ec	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6d455b12	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6e3c092f	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6eb9baa0	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7323eb45	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73c62cd0	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x754a0ce3	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x75921f0c	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x75c4622b	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x77097a16	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79a0e0d6	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7b34c591	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c34276d	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c52bd06	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f4eefb8	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8009a111	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x80401811	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8128b604	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x855eb9b0	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x86da9118	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8be9f7cc	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8d82ea3c	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8dec94e3	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e07210c	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92c3ffb7	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x95ed4c43	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x998b1d32	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9b17b83f	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ccf9e20	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9f8d3d74	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0819d5f	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2944338	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2d69b1c	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2e2047a	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa40dfa46	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa67c027f	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaaeb2885	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xab5f61a0	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xabd561cf	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaedad7b7	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaf8f5e30	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb3a82b10	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5b44808	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xba583e2f	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb98fc06	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc196817	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5a62d5a	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc8d5f82a	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9a241c4	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca069e6d	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc85c147	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcd64b500	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcf3bec15	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd066db7d	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd0f4ee46	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd0ffbe93	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd4d74c26	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc54f77e	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc5ef5c9	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdcce0349	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf841c01	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe50bc895	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5fb5172	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe7be033a	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe8a3f3ac	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe98ba488	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb37146c	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb9f0d32	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0cc1974	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf2488eb3	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf30db262	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf3af69ef	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf3c3d2cf	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf41b7076	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4747297	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf6f520e7	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfea2eccd	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xfc00cf1f	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x02465411	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0d2a73df	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0f56d312	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x17110790	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x17f146a4	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1808e59e	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1941c21e	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1df5f64e	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x22773236	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x28210dbc	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2e0fbe1a	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3563e568	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3ba5f867	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3cc7721b	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e4e7123	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3fb62c93	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x45807a06	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x49b58f50	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4b773f19	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4b853214	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x56f78645	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6068212b	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6fe63155	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7216e06a	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x73791b7d	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7611d9d6	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7c7311f4	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x810ebd3c	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x828c0f0a	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x82eb24be	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8747e2db	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x94fab7c8	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9c29b99d	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9ceb7d69	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa5326f85	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae9b2a82	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1b6ee17	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb23744ba	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb274ca73	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4676922	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb5437372	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb9249de8	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbebf0d82	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbfef8753	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc2cbc35f	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc64aedf9	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xca24621b	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd128ccc7	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd3af9661	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdbdc186a	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe4832436	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xebf3ce46	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeeafa57e	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf4a36c36	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf536a418	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf67a7f4f	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7b30db5	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfd932204	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xffd63db6	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x0a5f9abe	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x275dd52c	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x4c6b5e70	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x755a629a	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x85ea4e8b	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x2425af54	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x8b54d778	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x91abe0e2	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x99ae4d7c	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe8081954	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xed0d761e	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a43f25	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x07518fee	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x49003937	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x8ce86657	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x90e8378d	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x9bd6cb6e	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xc714da2e	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x2379cb1e	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x3f0a3786	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x66b33247	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xb21c023a	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3b4db3b7	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x781359ec	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc2d27d3a	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x3dbf1c0e	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x3e496b40	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x139f1cbb	base_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x17e890f4	base_old_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x476246cf	base_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x6d09f5ea	base_old_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x7321f7be	base_inv_old_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xb4b49bf1	base_inv_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xcfc67ff3	base_inv_old_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xfc10cc38	base_inv_false_key
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x32470848	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x752e0bfe	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x0828ff4f	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x38ba542e	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0x3e104964	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x88b0e24d	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xacfb65de	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe5c54551	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1443b2de	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x49de91c1	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4f6b24ec	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x64439c45	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xf13f6905	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xf923550c	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x212fa98d	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xe65e6d0e	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x3adc8734	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xc95a2cdc	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0x930a9fe6	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x207c83c3	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x428f3367	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x4667222f	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x69616d19	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x6c50fdb9	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x89649704	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xbaecacba	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xfe36a3c9	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x2c2d9a56	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2323e354	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x263473b9	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x34d2789b	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x55010119	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x571ea00a	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x75843746	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7d0ddc5a	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x80f669d1	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8390f769	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x90fbc148	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x944fd3db	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xac991be7	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb34673cc	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb8c4c2c7	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xbe636c78	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd39252e9	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe8a27ed7	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfd10c1dc	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/core/failover 0x2f88ed65	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x37aee401	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x6ae45a80	failover_register
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x062df2e0	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x08d166d1	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0fb6515f	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x10d793ef	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2c8dfeee	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x331d0594	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3c82b2c2	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x41a41c95	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4726c8b1	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4ab1eacd	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5503c9a5	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x73d7a318	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x74a5886c	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7727f786	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x836da8b1	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x85e53944	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x904072ad	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9150dc90	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x92320522	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x95ebc073	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9f251960	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa551e28a	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb50a03c1	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc937d7f3	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcacaa14f	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcc359573	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdf653b6e	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdf6f67dd	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0525330	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf37f92bb	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf4fe9def	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf5dab49d	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf6ebcf7b	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfbf41afe	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x40d7f9c2	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x47813c8f	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x5a16f443	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x81e5a2aa	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x9452f03b	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc025c1e0	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0ae034c6	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0fd06649	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x259c58fc	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2ce4985e	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3d4ea69b	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x473d907e	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x579becf7	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5877609e	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5963adc9	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5d2274c1	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6b46faa5	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6ff9b517	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7617007b	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x774efafa	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8c76ae7e	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9006dca3	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc144d21b	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc6749d89	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd022d399	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe6f4fd47	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xed15b196	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xc38943f1	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xd46d5997	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xe7ea4c4a	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xef179bba	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x1dd9669f	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x71729fe4	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xde54636d	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xfd228b4f	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xd320bec0	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xdf6d4e22	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x03a85e47	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xd3f85581	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xd91099b5	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x8ce59567	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xf665e2be	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x03e870e9	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x08965329	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x0f018edc	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x682bb171	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x7677868e	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8ed25d69	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb5a2dd53	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xc25ebaf4	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xcd99e870	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x864b3995	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x05e90f13	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x140df6b5	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1445788a	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3d4d87d6	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3f0894f4	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x429c3aa2	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5c3e70fa	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x665920e3	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x86b73b54	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x88336bcf	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8bd14297	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x95c2792e	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc28366e3	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc901a771	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcabc6a41	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe63380b5	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x65e5e565	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x69d61617	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x91180df2	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x8090ee1a	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x42862174	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x7e8198e7	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x8845d583	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xa9898b29	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xe8d027c7	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xe8819354	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x3cf746d0	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x584d9cd1	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x5c16fd6f	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x4686aaec	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xbf754042	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x356f2fc2	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x9d131e9f	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xa14f7c1a	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xd8fc4790	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xdbcd34d2	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x04bf8376	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x51738d33	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6cc1aba8	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x7643e5be	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xc1e73631	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xcd564ccb	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe88bc732	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xeea169da	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x64bfbf58	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x986ed909	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xa1c06722	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x884be155	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xd5690ac6	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xdfe4ff45	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x4713b746	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x87973fe0	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xe04cdbbf	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x4b974060	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xaabe962f	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0xb15ed1b7	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x31e64397	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x5f60676d	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x71d6bf16	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x974ee70a	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xc541fd57	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x6fe6323d	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x60c353b2	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x70521c69	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x705b485c	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x4880633e	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xcf7cc76f	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1c60b0d5	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4728e326	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4b0292cf	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7f914e39	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x83dc0b76	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x91e742db	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x93e6c5ec	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x94c7f293	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9677a866	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x96c0286e	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa2e8eb17	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc58adb20	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd14c4b1e	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf17553c9	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf685b05f	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf8505552	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xfdde90aa	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xc2a852db	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1a7a985c	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x318b043e	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x4a2be56a	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x4ebd1506	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5df5dc42	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6dc64d43	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x70ffcacd	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8175046f	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8db2710c	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8fd04bfb	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x96b109b4	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x9e2011ba	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb6cfab8b	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xcda474e9	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe2b42d77	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf4e6ec40	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x0e618f42	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xb65875e4	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xdb464a07	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe4bf0feb	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xec18f96c	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0be2e365	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x19f5c439	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2295334e	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x3bb70694	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x42dce2fa	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5966d12b	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5d770662	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6f0ef338	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x76dcb50c	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x903928eb	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x99932df8	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb0492cd7	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbcbeb9b5	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdc740d43	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe8399314	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xecd5330f	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf7f8e0c3	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xffc3a281	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x27f96478	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x2cfe8150	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x946d07b6	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xea1b8061	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x079677d9	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x190040d9	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x278cf0c5	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8b452d8a	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x98daf824	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x002a6a2e	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x01724e7c	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0374cba4	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x03cd9ac8	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0aef74bc	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0d4b4b37	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1877949c	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1aaf5a60	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1f90d054	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x225beeac	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2320ed22	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x27cb6646	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2809ec33	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2bc38647	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2d2ef1da	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x368afd0f	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x38ffcb01	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ae8ae10	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3b3d49bf	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3d297bf7	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3dbc5023	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3e1b0e13	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x41112b3c	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4419efda	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4719a971	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48856978	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48d356b0	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x49192017	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea7acb6	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4f8efeee	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x56bee518	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x59109b86	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x59e2b5d4	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5d3978ce	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e3719a8	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x67372a52	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x69822cf2	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x744c3f1b	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77b9cef2	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7c450d08	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x83abfe1b	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x872fd395	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x881b876d	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x88ace4f4	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8955901c	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a2072d9	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a75e70b	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c42e5ce	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x914200a9	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9677b401	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9904635a	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9f8e0aa3	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa0a7724f	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa19dd480	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa42df9b5	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa690f37d	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa9ca591c	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaa27e35a	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xace5283c	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5e29a1b	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb6c5eb95	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc50d7aa	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbde5309b	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbea85d5c	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbf2a8daa	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc4e15295	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc8423dba	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc8b7cdc6	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcbc2fda9	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xccab5b79	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdbe41d08	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdc32953f	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdd2a663c	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe1f75adc	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe2e6d225	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xea53ca9e	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xed4ce5b9	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xef197183	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfc9e1234	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfd5d7c6c	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe6db006	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x3a65a7bb	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xba6254e1	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x8a611dd7	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x06b236b3	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0f4c3435	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x13b2fe3b	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x1ba7399c	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x4ddba159	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5f6fc3c7	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x61a7e144	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x9012ac7c	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x92e595a5	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc95cf4b9	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xb8d27814	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x2bc7fbf6	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x7e3ac346	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd61dc669	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xed4a44d6	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x03f7e1fb	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x46696e03	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x5d0a59b4	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x778d397f	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x87a76b90	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xab6a74ac	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xf9d85386	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xb941ce80	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xb0297256	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x06ab5918	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x2cb892c1	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xe073d1d0	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x04cde934	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0fbd7082	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4e860e5b	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5b2b51b1	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x80d14526	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8c0f8c43	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x91e9f17f	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa0f2f6d9	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa318aa72	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xbf669e08	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xc9f812ae	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcedaa247	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x09620034	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x191a6019	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x1f9ca99f	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x2cc16416	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x8876f123	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xe8a6bfe5	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2e02b8e2	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x326c915c	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3b2f0de4	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4b2c8285	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x539375a5	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5a595c6a	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x6e8440da	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7a4e8964	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7f21405f	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9095773b	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa4e2c12b	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb8846619	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc9550e80	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xce8612b1	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xdf58091f	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf3747941	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0b20fd45	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x5af0ed14	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x6c639051	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x86f5af5e	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x87f6d7c9	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8c90ffa8	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x940c5276	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc4b12b65	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xd36ac630	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe5a4b170	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xf65e34cf	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0b935575	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x12a2d88b	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x12bd910a	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x14acb21b	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x154de5ef	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x164587e3	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x24d442ce	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2651e634	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c3e5eb2	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x405ac4c2	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x494fa9ff	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5693f785	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6500873d	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x696858cd	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7217a831	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x75f86c7b	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x76faaf3a	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7c4f7fa8	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8a0f00d1	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x957758f1	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa3e5505f	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa6faff18	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa908918f	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb281d08c	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb8356a3d	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbb611c0a	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc5271fe2	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcd5556be	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd245a800	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd8e9c922	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe031b70e	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe12221f8	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe54daa50	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xeee87508	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xefe13d3e	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfbcb6f1b	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x775a3f15	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x8a0aaded	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xae437ad0	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xaf18320d	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe5dd755e	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf333f32f	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x31ab2e10	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x4461316a	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x47e63377	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x32326fa1	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x85b36b95	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x09dcd126	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x132acd94	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x2eba0d2c	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x7989ba0f	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x3b7736b3	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xbd7701c1	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xcb899c71	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x01b69070	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0f74237c	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4068a774	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x427af5a2	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5ed4d548	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6ebba6bc	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x72f1f7db	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7340687d	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x780d9340	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bd094c4	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8d80594c	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8f275280	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb4921df6	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb6eb728a	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xba366d20	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe36303b0	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe4e458ed	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xee320650	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xefab0daa	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf504f6d9	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfa2c8884	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x5c259573	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xbd3bcb8f	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x2f90ecf6	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x93062012	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xdf32a6de	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x36cc8329	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x498394c2	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x72f13260	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x5254d22f	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xc96e7823	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x208cf37b	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x6edbaf04	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x9a683ad6	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xad768642	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc55cbde6	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe056c2a2	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x38ce4347	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x5e336db1	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x61658646	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x89640b21	psample_group_get
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00d1ac8d	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0a99d75c	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1cab61f1	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x20c5e653	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x212a3970	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x21656ff2	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b73a8f0	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2ec48229	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x37426d0f	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3b94ecfe	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x43013214	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x56e45039	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e2d48c1	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5f3ccacf	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6c19d14e	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6ddebff6	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x73a2fe00	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7c7aac09	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7ceeabec	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8150b1bf	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa841a3da	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xaccb30b1	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc29631e0	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc780a262	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdf0405c4	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe3371841	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf03d3834	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf78cf660	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfc974863	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x57fa16d5	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x71f1a1ba	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x74f81bfd	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xb8f88974	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x099bee57	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x32d3b9b8	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x656a68cb	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x7cba8283	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8480ebce	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8dddcca7	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa526a1ff	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb3206dc1	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xbda92aaf	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xeb824dd2	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x6a937dab	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x716dcd48	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe7ec486a	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xf5c7e694	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x010eb147	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0442df7c	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x059260d4	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x078e9b4c	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07a9ff3f	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x08c63af0	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09e6a418	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ab4d57d	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b618664	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c8c4301	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0dbc5c5d	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f42907f	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x106e512c	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1085bae8	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x112cab7c	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x113ddc02	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x119cfaa8	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1232c326	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12e83d67	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x160ecf3c	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16b13c23	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16ded541	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18a7ed06	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x196eb093	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a9148d4	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1bc7189c	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1cdb3525	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d8a26ab	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1fc8b65a	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2022643e	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2035e02f	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20afd2b7	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x216d1f82	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21a847d2	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2204f885	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22140f6b	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22bd57ef	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x248d968d	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x252620c0	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2886b14c	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2af08884	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2bcd8ae8	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c6c0322	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ceeb5f9	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d1303dd	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ec35ad6	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f0e3539	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8c9570	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31828ebb	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31cf61e0	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x329d7bfb	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x339456c2	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x343a94cc	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x351f1f29	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35c528c0	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39fcb3d8	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b2b7531	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b488bb1	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d9dcfc5	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e1261de	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41c5ac73	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43c22b8e	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43d74039	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x44fd20a5	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4676277e	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47359d88	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4779affc	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48e45469	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4af9a313	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b147d67	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e31a295	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8fe604	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x50fe47ec	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5290c406	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53f110e0	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55e602e3	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55eec91a	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x567fffd1	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57a9d78b	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57bc935b	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58539d53	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x58886474	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x599d1861	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59bb2421	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b150620	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5cba8399	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ce3ca91	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d761a49	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d8e6c65	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5dca3caa	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e0517e3	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e6266b3	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e976a5d	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5eb8ee60	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6387d87f	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x64ee0856	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x672c3998	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67739c1d	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x682688d7	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x68891ee9	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a453b96	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a5fca5e	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b2c36d3	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d855d45	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e1f23a2	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fbbf6d8	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71566493	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71b5b4ea	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7342c1f2	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73821d63	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73aae597	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73dec761	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x740cae58	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75cef6c3	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7700a4f0	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77769359	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77e5d40f	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78c33284	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x791dc42b	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7972a4ff	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7aea14c5	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b4549a1	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c064185	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c12c408	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7fa7347d	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81bd6cf8	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81d67d10	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x824db061	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82ed0f77	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x84dcd762	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86973224	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87404864	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a2fec5e	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b0aa64e	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e0900c0	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f23e498	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9202fb3a	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9349ed0f	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9715290b	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97a7a76f	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x991361e2	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9c5239ad	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e3bd99a	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f2a9389	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f3b7bcd	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9fe7ca55	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa046f961	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa0ced893	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2e99e82	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3664d55	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4c31d0f	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6332ef3	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8c54d93	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8dae769	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa91b84a4	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa98c7be8	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9eeaa40	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9f75611	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab4cec54	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad580cdf	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb13a4a3c	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2b7070b	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb385108a	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4244ecc	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb59e4b9c	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb83ce625	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb924e85d	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb93dcbe6	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba985137	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbaa2a1e2	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb23593c	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb3a989c	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb93fd06	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbbfff8cb	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd78dbe0	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf3496b5	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc1ce08ca	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2711d62	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8a5d3ae	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca971559	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccf311b7	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcdb5548e	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcec30f06	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcef11c7c	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf0bb9d8	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd09caef1	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0d25cd6	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd37fa34a	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd453247d	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd64e3e49	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7a3e26d	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7d62dad	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9e0e479	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda748ec5	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda749719	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda94a62e	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdae4a1b3	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc036921	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde0bfe6d	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde10d075	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe099771e	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe543fedd	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6ad7f3e	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8bb5386	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9ba19ac	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeadcff8b	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeba18cb9	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeef94542	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf3d8e294	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf3f838c0	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7903d48	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8140330	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf815a875	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8c5b042	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8dc9934	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf96bfb8b	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa30dd4d	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb069a19	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfd7f5d6b	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfea010d4	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfea261ea	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x27f11a0c	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xb3383f05	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x05f66242	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0756e8d1	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0ceb4699	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0d1aa78c	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x19b64efd	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1efaa702	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x230c75bf	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x28038b05	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x290c6b26	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2aba4f59	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x349f58a9	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x34b30da7	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x478af3f7	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x48f73ffc	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4e5c6478	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4f8473be	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x50841292	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x57b1f2e9	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x67926923	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x706d9bfc	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7554c56e	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x76c82109	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x76e09661	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x83317c58	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8a570cf4	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9e69583f	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa6dfaed7	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xadf3c9c8	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaef3ee25	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb10fcae4	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb600abd8	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc957a44c	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd6e58fbb	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe0cd216b	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8ba13de	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfeb32250	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x01308bad	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x07d874be	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x138a0569	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x26bd3566	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x47ec9768	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x625c23fe	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x62ef76a1	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6e627702	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73537c3c	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x76d43f7d	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7d84ceae	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x86766b71	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x87679f8f	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9d818df8	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb4783248	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe79ab619	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xec9db9f8	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfd36d82a	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x019f3815	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x13dca7b4	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x2da2ddfa	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x41eb3ce4	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x4d2ec208	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x512cd4f2	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x559b8a00	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x73161ebd	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x8aba7f8f	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x97d6d640	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xddf150ec	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xdef0a92d	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xffe98c11	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x458b2ffe	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7bed1ac8	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb118af97	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd3afdd0a	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xdeda5be8	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x17dded98	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x7fe5560d	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x9505c04e	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xca62840a	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x61776808	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x079826e5	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x2bce2119	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x33181b7f	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x3f6d483d	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x46e791fc	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4c23e909	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4ffcd725	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xb8518fc8	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbc7e63ba	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc6486b23	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xd0ec5169	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xfc7587a9	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x1bc60d1e	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x44fe049d	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x4ac2934c	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x541b188e	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x62e2d127	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x86d7ddda	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xaa77f228	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xc87ff92f	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xeac9c5e4	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xf8c6c371	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x24edc35c	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x32a0d3ec	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x3ada7cff	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x54f884ff	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x582e91fd	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x7e0511c5	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8e384f4e	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x943112e9	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x9c715cae	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd0709568	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xded20d5e	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x07d5ae68	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x54388c9e	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x6874de13	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xd3a09cf3	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x73520257	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/imx-pcm-dma 0x13d352f9	imx_pcm_dma_init
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x015b68d4	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0xe43722c5	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x23bf0894	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2e47d96e	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x34192dfa	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x367ca17d	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x38654e7a	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x42b5578a	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x45928348	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4ca142fb	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4eb27905	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x6244c89a	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x731c1644	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7bedd90d	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7c202735	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc2d4f26c	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xce1074e7	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd23d0522	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd29ad37b	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd96e4205	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x003d5cb6	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x012d8f36	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x015c5d26	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x017ef4c9	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0526c994	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x05a2cf2b	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x05ca3411	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x06dd1c2d	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x06fd0f5a	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x07dd8a9c	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f6ad3f8	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x10b8e752	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x10eff73a	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x112141de	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11fedba1	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x14e9e8e9	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x154647e2	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x177b44f3	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x17d836e1	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1af1035d	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1c81431f	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ddb3b6c	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1eaeae63	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1eec3600	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fb6d530	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fbab2ae	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x207f96db	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2117ba31	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x232a2773	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x235b6b6d	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x23c29a29	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x25a8de79	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2617e03f	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x26a38d96	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x26feaac1	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x28887ca1	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x296d7afb	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c3c0a52	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c9adcf9	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2d16b730	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2e9079da	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ea5b751	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2fe0868b	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2fe26c68	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32e7daf6	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x35f56eea	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36095996	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36a035eb	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36fef069	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3726574c	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x374d3202	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x39de876e	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3cb4abd6	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d85f7c0	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3e63301e	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3efdd71c	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40d21a99	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x41f06685	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4395c987	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x440ea37d	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4493a8cf	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x452adeaf	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x459b761a	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x45af5539	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46eb3b2a	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x473cdc50	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x47d77b50	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x487983af	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4bccd953	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4eb0fe29	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x513eaed0	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x527ed3b8	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x549c6b9c	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x572284ce	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x58473db4	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5a031114	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5d689ea1	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5dd9e295	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5fc26271	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6202c4ca	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x62754012	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x62c253f8	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x63a6da8a	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x64ab7c1f	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6629086c	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6652f76f	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x66f31acd	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68771d1a	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x692dc61b	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6af4177f	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6fb0c4c3	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x712b386e	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x719dc945	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7222b0dc	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x74101c4c	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x76fa8210	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77e79586	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7acb05d7	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7b3f2ca9	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7bc50c70	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7cfae43d	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7de1c5a0	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7ef589c2	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7f71df13	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8035a013	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8085d890	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8165ab66	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8498667a	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x864fa029	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8752d776	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x89479ca9	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8a9ca08b	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8b89db51	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9256a568	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x929ab79a	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x92e5fc1f	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9d1fc1d9	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9e8083e0	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa18f932a	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa28bd98f	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2e6013a	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa58bbe9e	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa7bd4ac2	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa850b367	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa8b66071	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa56b8ea	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaae05d5c	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad51c9d6	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb4d49857	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb541330d	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb552adbc	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb6347bfe	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb6500e85	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb75f5c25	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb82fc990	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbe3d7d16	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc0ebf511	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc27269b8	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc2b4f949	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc48f7f72	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc7240e54	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc73eb22c	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc763e7f6	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc7e53d6d	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb3e6620	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd392baf3	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd39c08d3	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd6f98a63	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8908047	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf05823a	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdfaf9195	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe51ea0e9	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe8d51df4	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe969b52a	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xea88508f	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb2db175	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee5b407f	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee98d308	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xef00f55c	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf255022a	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf391c802	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf4d1cf3b	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf77aec6c	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf7876dad	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf9e6912f	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfb7c1918	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfdeb4f04	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x7e1ec1c1	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xae6724f3	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xb98340a1	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe35686b1	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x072f6228	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x37a4ddff	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x448d3519	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5d22f783	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x74b3810d	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7cc44a98	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x84416bd4	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8452ce57	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x865ff108	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb48882f0	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xbdcd029d	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf23de9c8	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfa0af83e	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfb203f1b	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xffd61584	line6_init_pcm
+EXPORT_SYMBOL_GPL	 vmlinux 0x00032131	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x00034a3a	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x000aaddf	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x001a9297	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x002f1846	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0032992d	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x003ee8c1	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0050a936	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x006d569f	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x00722d83	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0087bc24	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x009a39e8	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x009f0ac7	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b8b688	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c80ade	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x00cbc218	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00db46c7	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e1fcb5	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e4430a	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e73739	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f51731	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f7fa45	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0114022d	irq_sim_irqnum
+EXPORT_SYMBOL_GPL	 vmlinux 0x011a85ae	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x012842d5	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x014f9cae	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x01525006	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x01560042	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x0157c0d9	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x015d6ae6	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x01610486	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0163479a	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x016ad554	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x016bbfa5	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x01838e12	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x01bc4d22	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ddc3df	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e710be	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0202d01f	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x02113d79	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0212aad2	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x021a8197	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x0221ad71	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0224bfca	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x022dac04	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x02367096	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x024992d7	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x024a6a2f	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x024ee832	hscaler_setup1
+EXPORT_SYMBOL_GPL	 vmlinux 0x0251dca8	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x02785a8d	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x029618bc	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x02980c82	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a10aca	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a81860	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a96cbb	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b21eec	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x02bf2b6e	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d77ea8	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x02d89aba	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x02eb0ab1	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f2db46	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f66f4e	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0315067a	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x032609de	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0327e7a6	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0330bdf6	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0331e224	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x033b0079	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0344ad28	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x03476120	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x0368b9e9	mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x037e8b52	kill_mtd_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x037ee18a	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x038602fd	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03988c32	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a4906f	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b03352	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c7b2c6	signature_wait_for_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x03dec589	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f7d56d	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0410b208	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x041cdb67	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x042255c1	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x04231953	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04344225	fetchdecode_need_fetcheco
+EXPORT_SYMBOL_GPL	 vmlinux 0x04462604	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04800be3	imx_check_clk_hws
+EXPORT_SYMBOL_GPL	 vmlinux 0x0481d545	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x0493c72b	prg_set_primary
+EXPORT_SYMBOL_GPL	 vmlinux 0x0494d04a	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04de44ef	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e4c766	dprc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f15209	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f7acd9	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x05271b67	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x053cfc9c	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x053efe2a	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0551ae8a	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x055359aa	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x055867d0	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x057dba71	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0584cb09	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05e21209	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x060b8c13	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0616eda7	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x061b71e9	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x062677fa	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x064551be	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06581a46	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x067bf877	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x06854c82	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x068e23da	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0693535a	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x06942d99	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x06a7efc4	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b298bf	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x06bf5fda	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c34037	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ddb61e	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e4cfc2	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x070a4e9e	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x070b6b43	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x070bf497	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0725d6ec	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0735e5e1	dpu_vproc_get_vscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0737a64d	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x07500119	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x07591ec4	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x0771e659	signature_shdldsel_global
+EXPORT_SYMBOL_GPL	 vmlinux 0x079747ed	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be375f	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d54e5e	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ec1e38	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f0f60d	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f35618	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x07ff2c38	dpu_vs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x081b9814	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0824847b	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x084ae83b	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x084d2296	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0868a1fc	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0887acfd	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x089692a6	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0896ddbc	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c7dd27	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c9606f	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x08cb237e	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dffaf7	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0x08eab43d	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f7575d	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ff4c0c	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0902f0ba	tcon_cfg_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x090aea6b	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x091c9806	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0922da8a	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0926f8ad	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0927e1b0	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09340e05	dw_hdmi_set_channel_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0939972f	extdst_pixengcfg_sync_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0939cdc7	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x093a92dc	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x093c0c96	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x093d016e	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x093e6b8d	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0942419d	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f6fc5	dw_hdmi_phy_i2c_set_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0951269b	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x09516b0d	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x095f989d	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0965057a	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0969f679	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0970fc83	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0987fa28	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a26d5c	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b5faee	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x09bd135b	extdst_gamma_apply_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c0a2c2	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c2e055	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c345a1	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 vmlinux 0x09cb66de	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x09feacb4	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a002ed2	fetchunit_set_burstlength
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a053c40	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a06a0ae	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a20ab18	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a244a33	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a334d5e	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a4a7066	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a53c71f	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6b11c7	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa576c7	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa6292d	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa6f1b1	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab70c56	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abe6756	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac11f82	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af04cba	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af0c3c8	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afa6ea1	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afb1920	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2a2dec	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b70fdb6	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7dcd67	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8de0e9	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b986db8	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9fb618	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba4d0e8	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb574d0	hscaler_pixengcfg_dynamic_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bef61fe	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf5477a	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0645fc	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c111b83	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1165ff	prg_stride_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c131fe7	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c71edb5	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c726d38	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c7df6d1	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c8d11c1	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9ed233	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cab05d9	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb6ccd8	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ccc5c72	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ccc8e45	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce09183	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0ac3d7	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1bae2d	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2d6dfb	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2f40ba	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d42654b	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d48b260	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a5939	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5b310e	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6a632a	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d75afa9	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d78645c	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8d76f3	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8e7f7d	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8ef9bb	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da54f38	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db62643	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de0ba49	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de303ff	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de5751e	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df4c698	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df8fb41	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfa5c54	mtd_read_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e02dfb3	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e04b241	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e04cf38	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e32104d	dpu_fw_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e38d119	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e39ba39	dpu_get_syncmode_min_prate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e4cad06	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e53f8f6	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6849b0	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eafc99c	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eafe286	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb81387	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec2e8e9	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec52c32	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecffcac	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed9f746	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eda8d5b	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efb360f	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0cfdb6	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f18d7bb	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1a3066	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2a7a93	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2e57ea	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f343b56	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f458cb2	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f545415	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6f32c9	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f72a7be	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7c5693	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9b2711	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa8950d	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc52d67	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc84a36	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc8ca90	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd9d529	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fdd3c6f	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fdfce26	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fdfe9ce	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe47c3f	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe5e52d	sdhci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff1410d	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x100359e4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1008e444	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101c4c23	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x101d6532	pinctrl_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x10212d5f	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x10354930	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x10442c4b	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x10555c68	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x105ba9b8	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x106198ef	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x10804621	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x108bf8e2	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a6c014	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x10b3bde4	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x10bed40e	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d6c4e5	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ebc006	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f789dc	extdst_pixengcfg_trigger_sequence_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x11125deb	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x113127a3	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x1135ce5a	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x11387df0	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1149dec4	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x116d0735	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1178abdc	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x11799af0	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1190ab8c	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x11975cf7	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b9dfae	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11dd850c	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ea01a0	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ec322b	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x11fb49c1	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1204a5d9	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1220179c	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x12302073	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x123122d1	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x12347358	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x123a0862	mtd_writev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1246b861	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x124d0129	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x12539a80	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x125897a1	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x12770442	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x12837404	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x12878380	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b645eb	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x12be0489	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c87b09	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d869c5	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d8d7f1	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e18f5e	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e8827a	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f770b8	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x130c01af	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1310219b	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x131497e1	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131c26d6	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1323c049	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1328175e	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x13357a35	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x133f41aa	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1342f6a9	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13631db7	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x13671e2b	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1374f598	sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1384474d	tee_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1384d877	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c3341b	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c42ca3	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c45bff	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d4b438	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e69fd3	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ef7920	hscaler_setup2
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f25dec	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f2ca2a	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x13fed01c	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x14058ef0	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x140ebb7c	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142572b9	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x14299115	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x142e1182	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x14481d42	constframe_controltrigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x14523b62	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x145b775a	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x14721c0a	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x1475aacd	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x148175c5	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1485a307	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x148a8e27	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x148e6216	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x149c25bf	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a60f6f	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c0f082	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c76776	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e3d165	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e8d61e	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x150ed847	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1512d414	hid_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1513a437	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x152ea923	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b7d2e	rc_repeat
+EXPORT_SYMBOL_GPL	 vmlinux 0x153ed1b3	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x15426082	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x15437bd2	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x15461d8c	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1570f864	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x157dbb34	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x158591fa	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x15906dc7	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a70800	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x15cb328f	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x15cd0d0f	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e0918c	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea1bff	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea6bd1	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x16032745	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x160683ba	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1609c4e9	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x161d537b	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1630b484	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x16428b2d	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x165c0e57	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16971778	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a0e0cd	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x16ba45aa	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c2725d	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c72388	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da2cef	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e9c838	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x17053753	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x17090dc3	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x170f2deb	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x172a892a	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1742ec05	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x174c89ab	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x17589ecf	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x175a848f	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17633e60	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x17754753	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a0633	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x177d22be	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x177f50f3	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x17984c87	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a01b09	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a801e2	extdst_last_pixel_cnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x17aa4953	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b89da0	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b956a0	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bb23bd	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c10908	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x17cb6ee2	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x17dff694	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ea35c8	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x18004611	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1814d07b	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x181764d6	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x1826240d	hid_hw_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x183572f2	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x183c15ae	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x184e2819	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x184e6330	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x185c1993	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x18661af0	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x188500c1	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x188606b8	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x188f7773	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x18960d64	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b42217	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b74d39	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x18cdf95a	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ebd569	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1912462d	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x19152678	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x192052b7	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x192bf06d	fetchdecode_rgb_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x1930d889	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1931ec7f	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x1933a1fa	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x19347e83	mtd_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x194a93ef	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x194ee835	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1953c50a	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x19631274	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x1963d7a8	imx_pinctrl_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x196bb681	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x198e2cec	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a47cc0	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b60648	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19cea9f3	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fbd819	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a126c8d	fetchdecode_layeroffset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a169cfd	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a186e65	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a248b9e	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5d0566	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6847c7	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8bf736	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a99e7d0	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a9e135a	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa2b6e1	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa4f0aa	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab0ce3f	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac25fa6	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac7d485	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae58cc6	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff5eca	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0bd6eb	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0f240f	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1ba6f3	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3ac757	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4ab88f	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b7886ed	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b9cfbf3	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc8cedd	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bceba65	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd3aee7	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf4a777	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bfe86e6	dpu_vproc_get_fetcheco_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0c2d90	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c1d3420	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c2fdf76	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c36bcf7	vscaler_output_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ad273	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c698e6b	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c69b84f	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c708ed0	fetchdecode_clipdimensions
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c792c5f	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c79a5db	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80ffce	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8c8b7f	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca2995b	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca9b8ff	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc103bf	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc6a85d	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf220fc	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf65fb2	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d139f56	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d18312d	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d22ae56	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3b9cc3	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d94ea08	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da7ffe2	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da846a6	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dae4d5d	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dcfebca	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de3a537	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de94349	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dfd9280	mtd_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e234749	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e24c00a	hid_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e26a90b	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e48c49b	rc_keydown
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e6a253c	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7b348d	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e80c381	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e98fb28	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9c590a	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9d18d3	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaa82f8	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecccd95	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee0aad6	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee3981a	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef0b68e	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f067977	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1cce8b	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f239f79	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4d5842	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4fdb79	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f77c42f	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8dd68f	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8ef71b	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f90ab04	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9a6331	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbf3c3c	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc62150	tcon_disable_pc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd14f13	hid_dump_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fde799d	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fecba70	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff595c9	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ffb23af	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x200d7b12	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x20125908	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x201e84d6	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x2023653c	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x202ff0e7	tee_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2038675e	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x203fbce7	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x20425e3e	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2044188f	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x20461ab7	pc_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x204a1b0b	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2056842d	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x2065954e	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x208b647b	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x20916a05	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x2095fadd	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x209be91b	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a4c8e9	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a885c5	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b48cdf	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ea89d1	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f4172d	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x211105d5	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x211b27fb	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x211f16f7	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x212b9139	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x2137fd37	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x21406c03	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x215b75eb	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x215f6030	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x21682f6e	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21723060	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x21778803	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2190c0b3	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a76955	dprc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b4cbd2	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ba8250	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x21bbc641	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d12029	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e194e9	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e1d9b3	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e91dc3	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ee2952	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x22028ca8	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x22033437	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2226de15	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x22339c4b	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x225ea658	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x22667fcd	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x227d425a	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22808e9f	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x229365bc	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x229b3423	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b07aef	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c14088	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c9a8f9	framegen_enable_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x22cc0398	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ea02df	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f31abb	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f31bae	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2313b6ed	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x232af9e8	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x233b3138	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23414def	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x2346dd4b	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x23499e8a	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x23518a11	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2369a4b8	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x239174b1	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bd01ed	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c0be6a	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c6927f	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23dd14be	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x23de9cdd	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e704e2	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f183ac	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x241dd05d	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24605406	dpu_vproc_has_hscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2469810f	__rcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2477230b	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2492c59e	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x249522ad	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a7f575	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x24bf108c	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ca3f6d	dpu_vproc_has_fetcheco_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e397ec	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e97a81	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ffdb00	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2506612f	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x251fde62	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2528b5fc	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x252f4f16	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x252ffcc8	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x253985f8	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x253c0c15	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x254d2a75	dpu_aux_tcon_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x2553930e	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x2560c657	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x256a784c	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x257cff96	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x257f3e0d	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x259e18a1	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a0c8c6	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a48cb6	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a91bec	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x25cab122	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x25d955e5	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e09b66	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e284c8	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e58f39	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x26032b43	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x260428de	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x26162347	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x26216aa0	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2633fa38	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2634c854	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x263a981a	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265be16f	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2667d58a	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2690b0b8	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x26967561	usbnet_get_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x269bd1d9	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26adcfee	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b1f029	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b8bd82	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26cd5333	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d46d46	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d629cd	dw_hdmi_phy_gen2_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ddb9a7	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e2bf92	hscaler_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x271c1a3f	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x27352216	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x27456b6d	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2745a1ce	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x275a268c	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x276041af	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x276dc44d	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x276eecdc	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x27715e4a	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x277c9218	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x278ff550	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x27988a9f	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a5868d	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x27bbafc4	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c04867	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c64862	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d13e33	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f29786	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa89a1	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2801c0ca	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x28128caa	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2816b5f2	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x281845c3	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2820cfb3	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x282768d5	store_pixengcfg_syncmode_fixup
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x282f83d1	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x283569fd	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x28468459	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x284edd4d	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x284f6f21	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x28717d31	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2873b5f8	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2892416a	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a1be02	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aabde2	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ac73d4	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e12b90	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f4eaa8	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x290051fa	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x29388fea	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x293f4b04	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x296a2c82	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x29800fc0	prg_reg_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x298bd796	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x298f83b1	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x2996cd48	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a3ed9b	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a90369	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c7bfcd	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d4c703	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ea0d90	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29fcf014	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2eb306	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2ec9d6	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a5bb4fe	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a687877	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a6884a2	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a689827	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a6a62f8	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7c9ff1	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7f83ce	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a865d53	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9461ea	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa76565	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad5bb5e	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad6fc39	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af25834	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af7d1cf	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b07f071	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b117468	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b268ced	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2e9656	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b36f8d4	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b43266a	layerblend_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b991511	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb429ac	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb95818	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be59afb	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf28513	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bfe5545	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0ba648	fetchunit_burst_size_fixup_tkt343664
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c1424d2	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c17c6fe	layerblend_shdldsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c296ab7	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c32044d	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c358891	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3ced53	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c42485e	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c480648	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6a6fa4	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7c706e	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c81a826	imx_1443x_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c83b4cb	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c90f389	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9cb190	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc1384a	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc41bf5	dprc_format_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd41eee	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cec0909	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0a9f53	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d180074	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1c0e80	dw_hdmi_setup_rx_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d23555e	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d237595	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d3f33ea	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d3f97fe	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d569eba	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d59030f	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d61c0c9	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d80c7df	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d854a84	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d85b180	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da6c11e	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da8330f	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dacc65f	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db1d9d1	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db7c572	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd4b4ee	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de1f62f	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de769e4	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de8d822	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfc2ef0	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e18ec0b	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4538a5	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4d8169	usbnet_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e50aa08	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e50e935	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e51a3d0	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e696654	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7d95cc	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e9191e5	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea71110	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebc7212	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec57368	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec5fc51	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed2cdce	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee87cc2	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eea7011	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef33844	imx_clk_hw_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef882e7	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1059a3	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1a6970	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f282cdb	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f291ae3	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c08cf	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2d25b1	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3b0860	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f40bcf1	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f56e87b	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa38801	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa9f093	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fac9436	dw_hdmi_set_channel_allocation
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fbaf70d	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fbde1a3	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc2fdbb	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcbce5b	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd32dd5	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd4abd3	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd605f3	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x300aa7fb	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x301b58af	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x302073cb	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x302b3aae	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x3030442e	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x3042e61c	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x304436ee	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x30483aec	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x304a9c42	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x305db0c0	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x306b31f4	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3074bbcf	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x30970368	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a7c0f5	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ab4349	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ba54d2	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bf23c9	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c151c2	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c21c59	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cb3a20	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x30d01fef	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dee66a	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e31739	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f1e992	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x31044f5f	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x31072916	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x310b439f	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x31140b76	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x31155ce4	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x3116d1ef	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x3128a497	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3139ed03	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x314d0cf5	fetchwarp_rgb_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x316212a8	dw_hdmi_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x318c2eca	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ae1370	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c9addf	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ccc6c7	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cfb266	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x31db848d	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ddce0f	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e772a3	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x31eb0d8a	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f24bbf	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x320b798a	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x320ef62f	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3255d4d1	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x326389cd	hid_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x32668828	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x326a9259	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x326c5479	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3275f23d	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3284cf5d	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x3289ae6b	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x328a3c13	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x329a4de7	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bf530d	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c34f40	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d935ff	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x32dc5b3e	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f7a416	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x32fbb6dc	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x33121068	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x331611dd	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3356c685	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x335d5ea2	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x335e5fea	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x336330ab	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x33941518	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b88fba	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x33bad243	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x33bbdad3	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c2ca73	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c3bd60	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c90b56	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ca0376	extdst_perfcountmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ca6c87	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d72d23	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ee59c8	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x3408c822	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x340a5d5a	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x340fd6a8	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x34181b78	tee_shm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x346bb189	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x346d19fa	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x346e369e	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x34701ba0	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x347314c4	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x347cd8aa	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x34889f10	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x348c847c	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a98a7d	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b89b20	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c9281e	dpu_st_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d4bdd3	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x34dd2f6f	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x34df15ce	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e70a0b	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ed1b05	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fba83b	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3511e16a	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x351626d1	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x351d93d9	imx_obtain_fixed_clk_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x35218765	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b6bfc	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3536b95a	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x353fdf1d	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3540b8f1	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3541960d	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x355d77d7	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x356f9ce1	framegen_cfg_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x356fb269	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x358f7ff7	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x3597c10a	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x359ce4f6	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a6f6f3	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b17da2	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c44ec4	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c9a37a	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35efba99	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x35faaaa6	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x360db354	mtd_write_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x361a6d80	irq_sim_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x3620be4a	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x3624edf1	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x3625a079	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x362c5871	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3632fa30	fetchunit_set_pixel_blend_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x363d786e	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x365989e5	imx_1416x_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3660dece	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3662b5a9	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3680d6b6	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x368c2717	fetchdecode_yuv_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x369ec604	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a45347	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c7e80f	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ca7762	dpu_vproc_has_vscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e00734	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e14c61	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e6de70	teedev_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f0d9a0	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f9b07a	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x370a5fe3	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x3719fdc3	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x371b6ed2	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x372dd2fe	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x373891ae	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x373e5032	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x37524c21	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x376a17d0	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a8e5c9	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x37aa9ca4	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b768b6	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c3de55	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c81214	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3803cf12	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x38047344	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x380a3bf8	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x382c35c9	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x382f5c06	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x385f48aa	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3867fe77	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x3872873a	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3877d833	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x387d1ef3	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x388fd02c	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3891b004	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b79a00	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c3aa36	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ce2ff7	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38eac4ac	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f0e437	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x390579ad	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3907938d	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3909efae	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3939c464	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x394eab6a	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x394f24c3	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x394fcddc	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x39580598	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x397b57ad	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a4c49b	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 vmlinux 0x39cf07c3	hscaler_get_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d5de51	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d7e8c0	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f6b4aa	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a11724b	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2f27a7	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a30f104	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a319064	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a553187	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a585cb9	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a607651	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a66967a	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a799edb	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7a1a54	signature_local_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8b3755	extdst_last_control_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a96601d	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aaabb0a	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac72ce6	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acc8bfd	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad2336d	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3adb6155	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aebbb06	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af21e7b	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af75fcc	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af93d25	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b03fc27	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0cde2b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b194124	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b45b469	hscaler_filter_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b46723c	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4f4d78	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b56c607	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b57c305	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b586b07	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b67c939	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b820566	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8507bf	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b9cc810	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb12efc	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb4468e	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bbde746	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bcbf1f3	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bcfeaaa	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdff7df	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be42574	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf19cb4	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bfd3cc3	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0bdda1	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c19d523	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c30b486	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c350d19	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3b434d	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4afad5	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c52d83d	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c550453	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c62c4ea	fetcheco_clipdimensions
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7ca5ce	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c91e427	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c920b40	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca90e66	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb3df72	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cbe0a94	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cbf68cf	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc83150	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc8aacf	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc91592	constframe_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc95abe	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd25a1d	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce77caf	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d14cd04	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d29ec16	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2a288e	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d413e5e	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d51b063	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5daf49	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6e5a1a	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7cdb76	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbba438	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc9f00e	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dca8564	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd7ce31	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de5df76	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df446fd	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfdae27	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e178cd5	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1a00a1	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1b7b3a	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1e2f14	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e44a0c3	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e790684	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e86e6e2	framegen_displaymode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e86fff7	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9d2604	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb56025	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb6ff76	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eedf080	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef73f52	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efebe72	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0861b6	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0ddd29	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f1b9e18	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f234d32	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f264b05	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f28c5fd	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2f0889	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f7291e1	hidinput_find_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f743b91	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f816455	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa5a39d	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb53d88	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb648a4	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd4ef1e	fetchdecode_get_fetcheco
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fde1f6a	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe5e9bc	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4017917f	dpu_fl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x401a27bb	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x401dbbb8	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x40263b22	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4034d662	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x403e577d	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4047d643	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4052838b	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4063873c	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x40835956	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x40869804	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x409c0cfc	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ae7cb9	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b6509a	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x40be97c6	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x40bfa081	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c5fbad	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c9b7e9	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x40eeca98	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x40efa8cd	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x411b5bc4	dpu_aux_ed_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x41237f71	cpu_have_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x412d8236	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4134db23	layerblend_pixengcfg_dynamic_sec_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x414a8103	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x41718703	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4180418d	rc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418273c4	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x41872051	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a04ccf	vscaler_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a3e2ab	signature_is_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a7dc2b	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x41aed1f2	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x41af8010	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c1f6fb	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e2273f	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e79741	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f71a09	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x41fe009f	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x41fe5a4a	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x421190a8	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x42147378	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4217e966	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x424663e7	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x424dbe55	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4257aa87	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x425dd739	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426395bd	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x42663eea	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x426da61f	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x428d7fdf	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x42926f4a	dw_hdmi_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x42adcf2a	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b583f8	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x42bac717	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c72d40	hid_field_extract
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ca86e3	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d67712	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e20cc0	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f4e0fd	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fcaee4	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x42febe6b	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x43010459	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4314c8a3	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x431e8d7e	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x433f2596	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x43440c37	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x43495c0f	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x435bbb50	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x436edc12	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4391a601	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b57d89	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c2a786	__cpu_clear_user_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ce0027	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d35c02	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e3610c	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e4a236	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f3d275	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x440891f0	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x440d55d3	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x4412e9e8	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x44239a23	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x442e8a98	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x446ba2d0	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484b81b	dpu_lb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4486e0a6	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x448ff656	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x449001c5	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a8964c	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b24c4d	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b26827	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b38dbe	irq_sim_fire
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f58a0f	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f6f4f9	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x450095cf	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x450c6e49	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x45101deb	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4516b40f	vscaler_pixengcfg_clken
+EXPORT_SYMBOL_GPL	 vmlinux 0x4526ea27	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x452a2203	dpu_fw_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x45389223	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x455e4f99	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x456e3221	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x456f496e	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x45700fac	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4577d9f3	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x457c4cfe	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x45995f7a	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ccd068	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d00036	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d8c684	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f65572	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x460114a5	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x460b59a9	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x4616f976	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4617a8ce	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4619be65	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x461f6c20	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x463748ae	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x463e39b6	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x465bdfb8	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x466b7df0	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x467ad30d	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46930c8b	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a2e7a9	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a4ce81	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a811eb	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ab5e1a	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ba2691	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x46baee8b	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bb00c1	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ec81ba	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f7a530	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x472ae996	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x473b84db	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x473c9072	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4751af52	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x475f1eb8	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x47608a94	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47682bb6	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x47748498	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x477cabb7	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4783b40c	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a90ccc	dprc_disable_repeat_en
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b7caf9	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c513a4	prg_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c6910e	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e08286	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e2d493	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x48020c1c	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x4805f1e2	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x48275962	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x48411c4c	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x48490707	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x485469bc	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x48554922	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x4866240e	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x48675749	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x486e2e42	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x488b4a06	hscaler_output_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a1cbe7	dpu_ed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a8f6cb	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d4fc06	tee_shm_alloc_kernel_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e09e4a	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e3cec9	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e7a736	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x48eb18c7	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x490f3c97	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4923e381	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49258dfa	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x49347a82	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x49437061	clk_hw_register_gate2
+EXPORT_SYMBOL_GPL	 vmlinux 0x494e4072	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x495e535f	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x49708253	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x49757892	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x4975e440	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x4986894a	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4990b74e	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x49915e21	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4995fb56	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x499f6fd1	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x49aa173e	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b3dccb	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x49be3d4d	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c05942	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e0fd21	__cpu_copy_user_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49eb42aa	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f07387	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0329c4	framegen_is_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a07ef22	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0d698b	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2588dc	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a32e695	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a33e876	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3da149	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3f9584	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a43c700	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4746bd	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a517836	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a687922	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6b0ec7	vscaler_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6d42f9	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7bb000	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a89bd7c	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9b174f	dw_hdmi_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aab3c23	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4abbbf56	hid_debug_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4addd652	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b00a135	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0614b4	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0dbf93	get_tree_mtd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2d948e	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b366a00	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b39d29b	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b71cdb8	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b84966e	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b895a40	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9629a9	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9d1c7c	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bba67f6	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be1f7e8	fetchlayer_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bec125e	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf0e163	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c076bba	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c231207	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c25290c	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c276593	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4071f1	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbef18c	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc9cfe3	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ccf1a05	extdst_pixengcfg_sync_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdb12a0	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce44a6f	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf71346	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfe8eff	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cff3dc8	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cff4ca4	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0c2c77	fetchunit_enable_src_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d11b1a0	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d373574	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d37a1c4	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d483acd	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4fa93a	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d54cc66	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d62eac3	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d77c13b	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8846da	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d931f19	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d95d6d1	memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da58ebb	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da602ee	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dbd3a65	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dcb730d	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dcfeaf5	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df52b20	hscaler_set_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e01cc7c	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e04acaa	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e050f90	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e37c9f1	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e395f45	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e441a06	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5511a8	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e7072f8	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e71a708	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e75932b	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e79168e	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea1fb9b	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac9b3e	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eae5e1b	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecc8da3	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed0be59	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee13ade	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee89828	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f047224	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f18ff28	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1bb02b	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f21078e	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f26e767	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3db437	prg_set_auxiliary
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f59a373	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa01e5e	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac687f	dpu_map_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb52bc8	framegen_wait_for_secondary_syncup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd8adde	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ffe827f	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5002cfac	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x50252396	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x5027a6cf	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x5039054e	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 vmlinux 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x50544cb1	dpu_sig_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x50745025	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ccb495	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d8fee7	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d9f96d	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e36327	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e5953d	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f8f284	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fafdae	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x5113cd4f	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x51211b0c	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x51285aff	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x513b993f	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x514a4035	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5175a6ab	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x517a1a79	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x51912092	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x51985847	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x51be27c0	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d019ff	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e1bf54	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f696b9	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f80356	fetcheco_clipoffset
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ffec39	dpu_aux_fg_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x52093b3e	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x520b91a4	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5224b75b	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x52356b1a	pc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52370a9a	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252259f	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52583ee3	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x526bba52	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x52774e37	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x528834e7	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x529628de	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a7812e	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a9c9f7	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x52c72e98	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x52c7791f	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52fd1a03	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x53159127	extdst_perfresult
+EXPORT_SYMBOL_GPL	 vmlinux 0x53188294	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5320b4ae	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x53337dd1	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x534e2174	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x53597d3d	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5380bfa0	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ad361b	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b856a6	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x53de75ef	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x540f499d	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x543c5349	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x54460d31	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x544a67cf	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x544b1c13	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5453f37a	rc_keyup
+EXPORT_SYMBOL_GPL	 vmlinux 0x54653103	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x547ff094	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5480d0f1	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x549a49d6	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b2808d	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d8c4b4	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f1d185	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x551ef571	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5520989c	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x557796c2	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x558816a3	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x558b0b99	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5591df9c	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5597c24e	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b23145	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c35a58	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c4c402	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c7ca87	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55fc977a	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x560269a1	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560c8a51	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x562aabb1	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x563b4e9d	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x564bd63d	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x566f266b	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x566f92a1	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5673ab26	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x567e8297	fetchunit_is_fetchlayer
+EXPORT_SYMBOL_GPL	 vmlinux 0x568d4627	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ba6f28	vscaler_get_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c31a2a	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d2b01e	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d75b10	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d7bec8	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x56db1a38	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e0cde0	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e35a2a	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e6e42b	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e95d1a	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f72e25	dw_hdmi_set_sample_non_pcm
+EXPORT_SYMBOL_GPL	 vmlinux 0x570b463f	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x571cb41a	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x571dafc8	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x5744cd19	fetchunit_set_src_bpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x574e2d9b	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x57504b25	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5751cd88	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5759a9c8	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x57648a41	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x577f7ac1	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x57808ad6	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x5783d9f7	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x578a1f32	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x578b6447	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x578f39fe	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b05aa7	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d47a4d	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d89611	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e66351	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f020e8	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f89692	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x57fac1ce	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x57fd4c34	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x58067b85	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x5808934e	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x58099b15	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x58266eff	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58330be9	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x5838325f	vscaler_setup2
+EXPORT_SYMBOL_GPL	 vmlinux 0x583f8cf8	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x5841e65e	tcon_set_operation_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5848b6c2	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x5850f3eb	hid_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x58541d79	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5854a4b3	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x585c96f9	fetcheco_get_block_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5869efff	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x586b45e8	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587a05db	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58adbbff	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x58bfd22c	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f17c8e	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f5579e	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x591eb763	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x592e66ad	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5935d376	hid_dump_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x59361534	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 vmlinux 0x594ac685	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x596326d6	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x59762e00	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x597ebe6f	hid_set_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a4cebe	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59be838b	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e17c4b	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ec6e82	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fe70a8	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a0159cd	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2366ed	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2bdedb	fetchunit_baddr_autoupdate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3747b0	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a444c21	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a735d3d	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a96913d	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa224ec	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aad2750	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac78f3e	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1befe5	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2b5e75	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2ed8ee	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b3a8cff	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b3b5c02	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b400bee	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b487c8d	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b543a32	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b5b9cf7	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6be176	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7b846e	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8d4e9f	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8e7b5b	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb5d566	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb8e16a	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdd3db	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf0aea3	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf61571	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c06344c	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c216c74	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2cb187	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2ee68b	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c349752	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c45e944	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4e3e54	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6565c5	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6aeddf	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c880da9	hid_parse_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c932b49	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb0b4c7	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cba73bd	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ceff325	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cfbb85b	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0b3d30	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d12330a	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d137ff2	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d13a592	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d16beea	mtd_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d39b17d	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d47da95	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d68c284	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d869170	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d86ba8f	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8b6a55	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da9fbcb	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db464ed	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db83879	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc80310	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dcad05c	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dede473	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df712d6	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df96d26	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0aacc8	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e1a1dbc	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2f4716	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3bbff6	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3ed086	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6185ae	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6b2755	extdst_pixengcfg_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e867cc6	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e94c502	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9c6390	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec7d3b8	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec909ca	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x5edf7c12	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ef722db	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f18db9e	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f278893	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f46dd51	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f476d15	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f55fe92	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6b1a39	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7fd5cf	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f86cdf8	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc3f3e7	framegen_is_slave
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd5bc97	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x600140b8	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x600eb66a	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x6016e2c3	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x601f3cda	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x605d5bfa	cache_line_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x60684d51	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x607218eb	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x607cf3c2	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a07a97	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a514da	fetchwarp_yuv_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b859ac	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d9e357	dpu_st_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60dc2d5a	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x60dd3067	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x60eff728	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f6ae47	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fe332b	hid_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x61116db7	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x611a9703	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129a597	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x613b3637	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x613d62c9	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6156bfde	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x616ea446	imx_pinctrl_parse_pin_scu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6176df12	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x618126fb	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x618a2e92	layerblend_pixengcfg_clken
+EXPORT_SYMBOL_GPL	 vmlinux 0x619ee51b	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a5527c	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x61aa8784	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c0ab1f	mtd_panic_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c86548	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x61db55eb	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x61eb9fa4	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f0a273	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x621eb99a	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x6220d8dd	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x62223108	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x622cc221	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x62387633	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x623bb44a	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x625a1a0a	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x625a55df	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x62718955	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6271c595	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x6279783e	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x62874f56	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x62971d77	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x629c7fd4	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x62afd3ef	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b7d6fe	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bbe98c	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c6f54a	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c77616	__hid_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f47db3	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631bd53d	signature_is_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x632d947b	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x63425764	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x634ec260	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x634ecc9e	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x634f11c2	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x63629466	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6376f043	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x63a9e6c9	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x63af14f0	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b5c5d7	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b6baa3	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c3176b	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d7b0ed	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d9440a	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x63dd6068	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f05b6d	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x640a416d	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6427e4c3	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x64283388	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x642f2615	fetchdecode_get_hscaler
+EXPORT_SYMBOL_GPL	 vmlinux 0x646587ac	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x64694905	extdst_is_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6480719a	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x648ab607	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b6ad8f	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdb5da	dprc_first_frame_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d7c68e	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x64efa949	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f0982f	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f24e3d	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f67cc5	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x64fd2e55	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x6504b411	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6513c259	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x65148219	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x6520f89d	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x652ecb09	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x65339d1c	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x65781120	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x65791e17	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x657fb229	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x658428fe	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x6586998a	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x659bb972	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c0a472	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c9b19f	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cc2e96	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cdeef0	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ce2fb5	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x65d1175a	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x65d5ecbe	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x65dc6a34	framegen_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e01af9	__sync_icache_dcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e9f6da	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f131b6	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x65fd65c4	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x660a69bb	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6616ff6d	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x661d5804	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x66460fe0	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x664a2bec	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x665c69f8	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b8be6b	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bd1c4b	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c3a219	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c9a860	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d05067	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d26313	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66dd1631	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e34fec	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e683f8	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f42559	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f47e62	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6708acb2	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x6712b5a7	dw_hdmi_phy_gen2_txpwron
+EXPORT_SYMBOL_GPL	 vmlinux 0x67136ad9	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6743b47b	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6748bbbc	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x676d56e8	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x677c4b8d	vscaler_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x677e429b	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x677e9af5	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x677ffecd	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x6787cc1f	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6789f07b	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6798f56e	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a237a3	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ab41e2	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b95d50	hid_input_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b9e4d5	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ca2b3d	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x67d9ca1a	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dbd365	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x67df1333	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e0098f	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e5c144	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e9503d	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ec36b2	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x67fdd6f9	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x68196c15	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x68294117	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x682da617	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x684d3580	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x684e4880	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x685294c9	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6853dc38	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6869c8eb	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6869f8ff	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68aa7e1c	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b0b727	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ed6bc7	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f3fb5d	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x68fc2fd4	hid_output_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x69089837	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x691d90f7	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6934fe0b	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69471787	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6952526c	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x697034c1	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x69798a7c	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6987fc4e	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x699f7520	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a0be35	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b93193	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c04ebc	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c6192a	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c80c17	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d519ff	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x69dc8341	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x69decf2a	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x69df9487	tee_client_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e62bc9	dpu_bliteng_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f6fcfa	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fa04d5	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fe290f	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0312b6	layerblend_position
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a06148a	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a075297	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0b8ecb	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a109ed7	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a2b794e	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a461500	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a47ab02	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4eea4b	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6769aa	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6992c8	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2dacf	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa02eb	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab14db2	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab34e85	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab9e4be	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac6dbf7	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af09827	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b055242	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b144b18	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1467fd	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1c7915	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2a1b0f	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2d7479	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b358405	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3f6917	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5081a3	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b60569b	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b822fe9	tee_shm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b87cf09	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b87e30c	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc7a199	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be01452	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf28c0f	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf9417e	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfd63ed	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c04103b	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0ee843	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c14cd3d	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2e486e	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2f6e8e	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c53f29a	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c5f1e90	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c608303	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6d7fb5	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7053fc	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7ad6dc	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7c3a69	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c87d7cb	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8e3b6e	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c8fa5ba	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca34fec	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca5567c	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc00e6b	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cedca7b	irq_sim_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d049f13	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0aac44	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d21e888	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d4394cc	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d4bbf2d	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d67f96a	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d926522	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daba575	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaf41c	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc28117	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de41643	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de6404a	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dea54a4	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dedc333	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1c2c30	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2ba6d4	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2e468c	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4822b5	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5087a0	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5112f9	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e52766f	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6957af	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6b7e36	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6bc512	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e758d6f	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e836962	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e90840e	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea4ccf6	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea51b60	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eae163c	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebba711	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed4354f	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eda23f0	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef1c960	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efa470d	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f046d0d	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1477ab	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f238bed	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f36a637	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3c1309	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f415e6f	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f545a68	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f5fd3bd	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f6583f5	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f73b148	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7beeb1	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa78b4e	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fac53e8	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb3f797	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc40f83	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd0fff3	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6feb6b68	extdst_pixengcfg_pipeline_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffa47c3	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x70468fd4	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ad1e21	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c7200a	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf8e1c	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e2e06b	hscaler_pixengcfg_clken
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e328e1	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e7e814	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ff297e	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7110e8b8	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x71436da8	fetchunit_stride_fixup_tkt339017
+EXPORT_SYMBOL_GPL	 vmlinux 0x71589480	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x715adeaa	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x715bfc95	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x715d3602	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7191bb7b	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7195e098	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x71966d3d	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7199f648	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a618f9	dprc_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b05050	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ce2463	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d97fe4	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e3608a	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x7200ccc1	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x720e1261	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x7212c98a	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x723a7a61	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x724ca6d3	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7255c7e8	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x72877f09	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x728fc6ea	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a6cfe1	dpu_hs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x72acbb51	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b005f3	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b42130	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1004a	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d0557d	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e2afa1	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x72eae46f	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x73118e38	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x73242dcd	cpu_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x73244dd2	hid_validate_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x733780fb	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7338a8ea	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x733eb829	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x734f9b8c	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x735728d5	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x736787c3	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x736927db	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x736bbd8a	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7377d1ad	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x737f3723	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fb602	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x739ce644	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a1f0f2	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a29676	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b01c75	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b07cbb	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ba4e23	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ba59d1	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73cfa1d5	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73eea183	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f639de	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x74195d35	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x741f7236	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x7427e1f2	usb_acpi_port_lpm_incapable
+EXPORT_SYMBOL_GPL	 vmlinux 0x742ce3b8	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x744e417a	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x7450e40e	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x746333b8	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x74690bea	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x746e5e1d	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x746f934a	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x74847f17	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x749d38c0	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a74ec4	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a820a2	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b49599	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c9259c	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e13369	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ea6e6d	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fa9bb8	imx_clk_hw_sscg_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x754d32b1	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x755d54f5	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x755f2dba	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7568d7fe	fetchunit_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x756c6701	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7575c9c9	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x758f9d15	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x75988ff8	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x7598e055	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a3760e	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b3da43	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bb370d	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bb4ef3	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cef7e3	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d10275	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d9911f	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75eb8c27	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f280b2	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fae303	extdst_pixengcfg_syncmode_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x760eca3f	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x760f370e	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x763149ed	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x763f37a3	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x7650e832	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7657ce60	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x765c16ea	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7673c7e5	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x768bfc9f	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x769c70ce	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a261c0	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x76adb24d	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c11879	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c79d9c	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c86c21	vscaler_filter_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cb7f88	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d854d3	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e0331c	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f5cfee	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7700dedd	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x771aa1f6	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x7726c4cd	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b0f64	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x774d54c6	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7758ffa4	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x775f3af9	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x776c85ee	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x778bf7d5	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x778d5b08	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x778f9d06	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7790b3ca	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x779657b2	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7801f2fa	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x780b59ea	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x78102292	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7812d4cb	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x78202a83	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7849c8fa	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x786b21cc	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x78744786	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x787afc4e	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a481c2	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bd44f4	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c60afe	fetchwarp_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ca837b	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d3cad6	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d5dec0	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d9ee8d	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x78db76a2	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e713ca	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f23c21	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fe8025	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x79029901	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x790a6f6a	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x791f28f9	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79227ff8	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7922aed4	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x79233a7b	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x793882d2	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x793c2521	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x795507e3	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7968eee1	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x79745298	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x7977e3cd	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x79824580	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7990cad7	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x7996a1af	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x799776f3	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b52aae	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c6f517	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cd9270	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e1bb98	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x79fefa12	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a006603	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a1c934d	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2f4a37	thermal_zone_of_get_sensor_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3dce07	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4298a3	fetchdecode_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a47c291	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a631306	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6e5e70	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7af3d9	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81e58a	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8cd8e1	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a90967f	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9637aa	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9b98e5	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aa34e59	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b015de8	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b076946	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b07f4c6	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0a0bb5	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2b98ab	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b30350d	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4a3eba	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b64136d	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b74701b	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba6fc68	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb045a7	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bdf9907	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf04435	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c129593	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c15a255	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2eec73	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c43d391	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c49babc	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c530059	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c57a76b	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c75ce8d	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c80658b	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8a0019	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caa576c	dpu_ed_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf04ee	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb7b747	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb9b0a2	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cbc6c75	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cceaf92	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cdbbe9e	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cdc7ef8	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0233e7	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d105996	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d11d041	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d27d4df	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3f1759	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d4ad681	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7441c1	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d772ed6	signature_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d876bf1	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d8a3aee	dw_hdmi_phy_i2c_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d981990	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d9a33bf	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d9ed886	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da4b474	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dbbd6ad	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc7c356	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd55e0f	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd8d5c6	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de65a03	acpi_lpat_free_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de6cc23	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7deadf0a	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e045d69	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0bda4a	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1f4f1f	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e238150	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2aaf7b	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2dab37	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e339ce4	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e339e25	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5925b7	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5a0aa2	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5be73a	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5edacb	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7bf271	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8740d7	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8ec877	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e938d45	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9b9c29	fetchdecode_clipoffset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eaf5e12	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eced667	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ede9317	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee52601	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef9306b	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0ae059	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f17eeb0	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f1dc127	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f260725	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f289bd5	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4d02ce	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f508e5e	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f523efb	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7295bd	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f733789	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f881040	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8d51cd	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8e1e6d	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f98086c	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9f9358	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb425ab	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fba0ce6	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fbeb5a8	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe039ba	dprc_stride_double_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe9eae3	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff1a3b5	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff93b77	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fff8d18	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x800ac87d	dpu_vproc_get_hscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x801eb65d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x80274d85	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x803bf476	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f279f	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x80652821	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x80684f2b	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x806d4e7c	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x80706421	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x80836de7	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x808faac2	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x8095c7a0	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x809a08a3	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x809c98b8	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x809dab97	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b916c8	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x80be8bfb	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c57266	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80dd3cd4	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80df9228	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e04aea	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x80fa83ef	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8104e347	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x8115dab4	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x814b7e42	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8161b4ef	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x8164159a	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x818310c8	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a1d789	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d1a056	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81eb286f	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f188eb	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2528a	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2b867	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f64272	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x82067a4e	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x82160953	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8224a044	mtd_del_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+EXPORT_SYMBOL_GPL	 vmlinux 0x822bb35a	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8244f1bd	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x824bdd43	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x82661e85	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e4696	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ba562c	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c0e9b6	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x82cb97cd	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e21bf1	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e3957b	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f2079a	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8340eb07	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x834afe25	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x834bc0c5	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8351b1c3	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x835bff65	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x83692c91	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x838fda19	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x83bf8d82	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c32e46	fetchunit_set_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cd7849	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x83dfa57a	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ea2183	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f2bcec	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x84020e85	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84150ce0	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x841ba4b1	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8426d2c2	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x8429fa11	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x844089f0	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845437d5	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x845a3140	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x845a6b12	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b978b	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x846225da	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x846a1d14	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x84756c52	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c4c078	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x84dbe258	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x84e991bf	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f67019	spi_nor_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x84fab339	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8503728f	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85253e27	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x8534042b	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x854aa875	framegen_panic_displaymode
+EXPORT_SYMBOL_GPL	 vmlinux 0x854d7ef9	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8550f6b5	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x858a46f1	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8591f409	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x859960af	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a09054	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a5a349	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b152ac	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b6513b	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ba0f6f	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d6ca29	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x85fd9922	tee_session_calc_client_uuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x86116caa	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x8618cc7c	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8619fed3	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86254674	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x862f5e34	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8655b95c	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8666456e	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8671eea0	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8674c715	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8697000e	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a8408e	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b3bd00	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c13575	framegen_syncmode_fixup
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d15bb5	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ddcdff	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x86de0eee	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ec209b	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8706162d	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x87259d01	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x8725c9b0	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x872bcb4b	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x872dad12	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x87548c95	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x875aa848	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x876a3312	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8773d8a9	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x877d29bb	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x878ea523	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x879c5438	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x879c6fdb	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d1a9f3	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d232d6	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x87eab062	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f0e7fa	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f2ab7b	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f8b565	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x88072a8e	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x88175fc1	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x882fa0d9	fetchunit_disable_src_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x8868a069	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x886d33f2	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 vmlinux 0x887b065d	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x888166d6	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8886b9a5	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x889f9d1c	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x88a2db6f	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b03903	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b15c5e	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b4cf8e	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ccccfd	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x88fecb31	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x890bb644	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x891bbfbc	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x891eeef7	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8921344d	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x892e67e2	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x893bdce1	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x898612c4	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bd60c7	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bf44ce	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d2c65e	imx_pinconf_set_scu
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e1ee91	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x89edfd2d	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f4cd5c	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a02674a	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2484cd	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2e34ba	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3e845e	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a51bef2	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a807a28	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a96b328	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a98aa53	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9ebc16	rc_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab5107f	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab68ddd	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8acfe328	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af385ec	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af7b56d	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b003b47	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b00d6a6	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b076933	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0d6dbb	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b115541	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b161f03	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1a2bc6	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b365924	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b45f08b	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b46ea2a	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b594e95	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5dfc12	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6e3fc3	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7561d8	hscaler_scale_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b76d330	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7e2e18	tee_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b83ce5d	pc_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8f43a8	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x8baeab89	extdst_pixengcfg_powerdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc52b52	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc58efb	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd22eca	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd506bd	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdc145d	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf14351	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf34f5a	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bfbb8aa	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bfff607	fetchunit_shdldreq_sticky
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c01a3a4	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3bc3c6	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c47ce90	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c580aa8	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5f27a1	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c696e55	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6dc3b0	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c70a875	signature_shdldsel_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c72206f	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8fae54	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c94cac8	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c95fb2f	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c99417c	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca201db	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca879de	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd3cc4d	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ceae04d	vscaler_setup5
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cede846	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ceea2ea	dpu_fd_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf0232f	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf7c427	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d01759f	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0274c6	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0d0037	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d189c14	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d208566	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d24fe02	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4304cd	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4967ac	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4b881e	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d522714	__rcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d68c17d	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d754fb7	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d80fe6a	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d86fdb5	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8a61c9	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da0b441	hidraw_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8daf11a9	signature_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db65ade	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db9d5ba	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbbee0c	fetchlayer_rgb_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dcd6f43	dw_hdmi_set_sample_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd8e93f	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd91fbb	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de89427	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e09590a	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e0fd36c	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e17ca07	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e2a79f2	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e40e4ba	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4136e9	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e51a3c7	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e531444	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e538344	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e75c5cf	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7f0a9c	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e959d7f	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e980d66	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bb78f	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea91ed4	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb52267	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb6eab8	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eba2b0e	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec8af9f	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed32010	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee2277c	dpu_aux_sig_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee2c58b	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee5e9e5	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eebbf6f	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efc7572	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efe29c9	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efee8b6	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f10ad1e	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f12f3d3	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f62b1e6	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f73b77d	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f833035	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa7a021	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd848b0	nvmem_cell_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fecacc8	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff96bf0	framegen_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x900f10f7	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9018ee01	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x902ff24f	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x904ffad2	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x905122c1	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9058087c	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906d28ba	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x906f3d86	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x90769640	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x909fc304	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a91e21	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cd7858	vscaler_setup4
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d52eea	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d8c3ae	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ddad3b	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x90fd25d3	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x9102ba64	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x912c8104	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x912e9a2a	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9134277c	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x914a9c2e	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x914be1f7	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x914e3ded	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x91519a16	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x91550c05	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x91594445	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9178a03d	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x917d42c9	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9182b250	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x91853fdd	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x918c1f77	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x919425fd	pv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x91957be5	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9197f5b0	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x919bd40e	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e24ca7	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e472e8	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9212d34f	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9219dbe0	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x9220a62b	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9224a84a	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9229960a	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924862f8	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x924bf399	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924e626b	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x926ed070	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9271051f	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x92742469	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a489f0	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b2b01c	dpu_sig_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x92bde357	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c3a869	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d2aeee	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d55b5c	save_stack_trace_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ebbcd0	vscaler_setup3
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f60ea6	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x93082d33	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x930ae6b3	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x931a6c3c	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x9323a197	constframe_framedimensions
+EXPORT_SYMBOL_GPL	 vmlinux 0x933959b3	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9344476f	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x93597945	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93808e99	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x938aa3de	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x938cb30f	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a021e0	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x93aa7aa9	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x93af60b3	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ba6276	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c28e85	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c6c861	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c7edeb	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c86bc9	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d86947	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dfe61e	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f0622b	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fc1ae8	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x94063820	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x94155ca6	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x942129cc	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x942a0f87	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x94426a7c	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x944e9cca	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x94589ef9	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9458f921	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x945dd24e	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x94777f5d	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x948bbf16	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x94972757	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f8f52	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a43ca7	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x94acd899	usbnet_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ce367b	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x94df771f	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x950ee7d1	fb_find_logo
+EXPORT_SYMBOL_GPL	 vmlinux 0x950ff716	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x951cc577	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x952ee604	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9537e9b4	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x953a96e8	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x954a300a	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x954cbf72	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9561f890	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x957d68c9	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9580f9cc	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x95870067	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9599e391	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a651fe	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b8cdbb	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bce512	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d1f2fc	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x95dc31be	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ed68c0	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ff2b50	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9657a2d9	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x965ecbde	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x96662693	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9669b009	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x968aebbd	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b408a4	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c32fe1	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c94a97	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d7c9c6	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e91030	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ef44b4	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f3e250	dw_hdmi_set_sample_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x96fc67dd	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9706ebb5	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x9710523b	register_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x97133534	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971ee1ce	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97557a19	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x9760e765	tcon_is_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9770d014	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x9774b197	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d8792e	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d9eeb8	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x97dced67	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x98218ad1	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9834a2ad	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x9847babb	signature_win
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98562150	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x985be96d	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x986c3934	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x98787c0d	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x987884df	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987fbc7f	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x98802e3e	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x98860186	imx_pinconf_get_scu
+EXPORT_SYMBOL_GPL	 vmlinux 0x989095c9	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a1f13f	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x98aca9b3	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bc95ed	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bd0ec7	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x98c0a97a	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x98c26be3	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x98c8f029	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cd1f29	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d7ad5e	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ef38df	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fca783	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x99098ba4	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9919dfcc	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x99258e46	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x99294d8f	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x992d496e	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9945a974	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x995abf5e	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x996943ed	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x99738da6	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x99788f35	vscaler_pixengcfg_dynamic_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x998e49cd	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x99922bec	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x999bbb73	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x99bc49b8	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x99cf7cf7	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e114c9	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ff73dd	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a099978	sdhci_set_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a130a3d	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a1932cb	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a1bd525	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2bca11	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a340f0e	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a37b00c	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a42903d	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a43843e	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5b774d	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a615122	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6829fb	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a84d6f0	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8c43ab	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aac504f	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac122fb	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac36b5d	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac5e2eb	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9acf33e0	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeb5aa4	signature_crc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af52236	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b0c64c6	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b16277d	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1a14ef	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b27739d	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b348eba	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b463034	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4a839e	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f3998	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b661d10	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7823af	__put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b8de133	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9b2a96	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba23284	prg_stride_double_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9badfcfa	dpu_get_singlemode_max_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb50bb7	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcb8051	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcd7760	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd71a51	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bdde6cc	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf5e2b5	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c132aeb	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c140399	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1fd262	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c23d9f3	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2af79e	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3515fa	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c4b01c9	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c606464	dpu_dec_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7ade49	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8975cb	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8ed91b	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c903581	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cbcace7	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cdc1b63	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce7fdd6	rc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d08c89c	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d0c5dd1	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d120ac4	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1ec262	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d225571	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d25740e	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d2bc628	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d305a41	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d31d38b	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4cbb5f	hidinput_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4d1c44	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6d98df	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d95023e	fetchunit_set_baseaddress
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d99fe52	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9daa7efe	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba620c	extdst_pixengcfg_div
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc2ea04	fetchlayer_yuv_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc3a9a6	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd2fcad	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd41289	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de6bfd8	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df59c1d	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfac6d7	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfd549b	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e111851	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3f80bf	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e427c46	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e446bc1	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e59f838	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e6d6725	hid_dump_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e76c4d6	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8382b7	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ead2aab	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb86591	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edafb25	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eead28b	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef86b65	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f02211a	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f33510e	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f42091e	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f58e922	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f5ade74	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f61f1f9	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6c5208	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f707968	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f86e12c	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f93e23a	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f990aae	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9b6a9e	vscaler_field_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa05f66	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb01cba	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc84020	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcb2c3e	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd57c64	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff01c75	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff6dd5e	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa00d0994	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa010270a	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01bde52	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa022a7ac	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xa03d1606	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0498acf	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0535114	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07895f9	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa079d034	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07b0439	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07ffe10	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0804d37	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa092741b	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0979270	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0bfe31b	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c46a8e	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c892e5	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0cc23df	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0cde9a0	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d0afa6	hid_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d58772	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dc6030	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e28015	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0fb6dc5	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1043b97	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11336a6	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1139f0b	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa116fe0b	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa12e2391	imx_drm_encoder_parse_of
+EXPORT_SYMBOL_GPL	 vmlinux 0xa137b522	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1405dd1	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa142a524	gsc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1512e74	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15bf9c0	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1667bee	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17db281	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa189345d	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1957479	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19778f7	constframe_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19f8baf	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b31caf	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c6e58b	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d281b3	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d84671	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1dec609	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e23bc0	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f1a764	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d3aca	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20f3fbb	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xa21b0d7d	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xa21b2e01	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xa241aa7b	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2761864	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xa28d594c	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ae8bf5	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b16bec	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c896d0	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d0da2c	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dfe9ff	mtd_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ec250a	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f06063	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f42cf0	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fe155b	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3023fef	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3055c53	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30cf25a	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31f69fa	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa325bd03	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32facbc	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa357847c	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36d95c6	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa37df497	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b8e3e2	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3bd770d	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e2df41	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4025ccc	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa404049b	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41c210e	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xa432bb11	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43821be	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa442d3e7	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa459def9	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4622215	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xa465df6b	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa466646d	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4714d38	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa492e774	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49736b3	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4a8e3dc	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4a94698	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ab5c9c	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ad1a23	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4aef1d4	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4b45c18	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4bdb590	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cc19b3	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4dba2b6	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4df9ceb	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4eb2727	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ece0ee	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4edf44f	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f2a2ed	acpi_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fcf0fc	dpu_fd_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50b4973	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50fd69d	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xa515eac0	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa526c70e	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52b2a3a	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53361c7	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5347b87	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa558ae61	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5755cdd	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa575d315	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa581e9d3	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58254e6	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa597f823	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b983c8	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c1ab63	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c60872	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d5d8da	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d6faad	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e39cf8	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e9d3ad	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5eb0a6a	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5f7f5d3	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fba539	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fe7c47	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6009532	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xa614b256	framegen_pkickconfig
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6404332	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa649d791	framegen_disable_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64ad0c1	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa675d819	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xa681675d	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6890bd0	extdst_kick_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa690681f	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ae3c68	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cb5c6d	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d8cdeb	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ddbdb1	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6de9c38	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6eaa3e7	framegen_secondary_is_syncup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6fb0516	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa708b9d1	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa711b94a	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa735f64a	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7503a62	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa75b26cc	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa762c066	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77a18c8	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77e3bc2	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa789b846	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79ce357	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7aa1325	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c03597	imx8m_clk_hw_composite_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cd9f4f	extdst_pixel_cnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ce3320	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d6d5bb	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e144f2	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7f98db5	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80bb8b5	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80ca3ed	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80e7ebd	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8141589	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8215b03	pc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa828ec32	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82acc9d	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83168e0	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xa835ae09	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8372a28	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83ea80c	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8526e98	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa853d4b3	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa857b610	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8598c04	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86bfdfb	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87fa613	layerblend_blendcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xa883ec40	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a0788f	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f06c60	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa918ad3b	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa91c1482	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa924a29f	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9256d12	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9262d86	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa934aaa8	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xa939b8e3	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa93b603d	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xa944a7b4	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9587d30	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95da0c9	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96874b3	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa97da79a	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa97e6e1b	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa980b2fe	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98892f7	tee_shm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98a17a1	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98a3cdb	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9925279	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa997cdf2	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a11629	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9d76c8f	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9d8e784	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ed2e30	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0b489a	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1c0d49	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2d019e	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3056a7	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa314a59	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa369933	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5781e1	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa682825	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa78176b	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7a5ae1	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7e42eb	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7f99c4	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9bddd8	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9c1966	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaac3b6f	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab594b9	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac02c7c	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac72309	hid_register_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacccf38	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacfca70	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xaadb7108	extdst_pixengcfg_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae42fc9	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae55a4e	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab04f14e	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xab189e46	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1abaa8	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xab319b3c	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xab333d77	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3405f9	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xab494869	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xab545ef1	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xab57b360	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6d9989	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xab886166	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8e9caa	dprc_irq_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb6c74f	dpu_hs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb97b11	framegen_syncmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xabbabcde	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd43b54	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3abf25	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xac4f6418	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5d1ff3	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xac638119	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6ddcc2	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xac854157	constframe_framedimensions_copy_prim
+EXPORT_SYMBOL_GPL	 vmlinux 0xac870d4f	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca0bb41	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb85c93	usbnet_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc00719	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd8bb09	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0xacde7411	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xace4a59f	layerblend_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xaced82a6	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf874c4	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad167f63	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2a17fc	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3185b0	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xad340791	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xad355931	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xad40d87b	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5cb718	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad70700f	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7ab700	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xad84a0c9	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8f8b88	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8fe5eb	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9d8717	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xada25f71	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc14c35	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc93aa3	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xadcc5ce7	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd64e91	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xaddf7188	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xade76c79	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xade93188	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae13f72a	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1b4451	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2583b1	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2aae9f	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3149b5	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xae36887a	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3b02d9	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xae480da5	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4afba2	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xae679334	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b7ce	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea45709	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaedc6b49	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeed88f7	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeff14ce	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1eb929	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2587ff	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf28d3af	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2d66cc	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf3fbf5d	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4cdc47	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4d89c4	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5ecbf6	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5fd008	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf640310	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf6841c7	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf789487	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf85b8d5	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9552f5	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9f573e	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa2696d	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd02510	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd2fcb7	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd67e56	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe09d3e	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xafff2e0d	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01bbdc9	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0318af9	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb043be07	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0527637	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb053af69	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07fada4	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb094650d	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb09c8556	sdhci_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b0a747	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bf2476	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f330f7	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f64292	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f85b8a	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1032e6d	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb110f405	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb122eef0	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb136ba49	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15731f8	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb17afeba	__hid_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18613cf	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ab2a47	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ac7dd6	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1b3a43a	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1b909ea	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1db0163	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e0f254	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e48545	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2067122	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb212f89a	mtd_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb22e9a78	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 vmlinux 0xb23c615c	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb242f8b9	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xb244b767	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24f7b87	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb25ca597	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb273d52c	fetchunit_is_fetchwarp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ae677a	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c82b24	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c8b1ca	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2cb845c	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d56ad7	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2da2c47	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e75fef	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f6a807	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2faeee9	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fc2220	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3135269	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb31b1888	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32b8dfb	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32c49fc	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb337a206	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3423f82	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb342dcd6	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34bc6a8	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34f2535	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb353b75c	dpu_fg_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36cfefd	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37bb893	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3969bed	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb399c72a	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a1c531	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a97f28	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b603ae	hid_dump_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c0b73a	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c3228f	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ce4e98	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e512d5	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f9e820	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3faba7d	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fb1ac9	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb405bf9e	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40ce1b2	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42a24a4	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4353bd4	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f867e	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46411f5	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4728375	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47aed53	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0xb48b75b5	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4902d42	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4984e96	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49dda24	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b55084	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c41301	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c77532	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d9e767	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53ac733	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53e29fc	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5412d06	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5423e43	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb558b600	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58f5b0c	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb591d0b3	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5982840	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59d382c	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59d4219	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ba7b2f	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d16583	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60d9abd	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb61e28e7	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6226da3	devm_irq_sim_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb622e588	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb62eda14	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6309781	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6349e79	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6441212	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64a8e3c	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6530ec4	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xb661a786	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb668aa37	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66a4a8a	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb676fec9	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb679f8e7	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb681913f	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ac50d4	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ada79d	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b7cb53	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b92736	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c7158a	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e72b78	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f4b6d4	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6fdc368	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xb701c337	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7024a49	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb704f543	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb709554a	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73605a1	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7377aae	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74a16db	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74bd2aa	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb752a61c	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb756e1d3	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb759bc95	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76536f4	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78ac251	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79b58d6	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7abd1c4	gsc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cf4504	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d68b68	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d8d47b	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e23733	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80ee4ad	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83c0998	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xb846091f	hid_hw_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8478890	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb848a56d	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8634846	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89acbe0	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89cfdc1	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8a1806c	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ae6f62	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8bd3a37	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d0e70f	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d9b2af	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ea634f	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb901d15b	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9116066	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91883ba	spi_nor_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91ae869	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91ed2fa	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9288c85	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92d06a3	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb94ce226	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95e40c0	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96c9c06	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96d2b34	mtd_unpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b67169	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c28381	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d77da2	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e456a5	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f90da5	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba00a75a	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0134d3	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xba187bd9	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xba1c3219	dpu_fe_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba288784	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2f67b9	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xba379f63	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xba38aabc	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xba49843d	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4b7947	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xba51ed18	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba703db7	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8ab2ee	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xba92ccd8	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xba94486d	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9f657d	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa3e63b	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab2e07c	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab3c071	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac02b9a	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae6cdd8	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6546e	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafa5da4	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafdd541	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb03b676	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb22ed31	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb283f65	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb299f9e	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2bbbf8	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb47af86	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5c7cba	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb696063	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb816356	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb858062	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8cfde2	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8f21e8	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9967fa	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba165cf	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc07c02	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc1c86c	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbccd08c	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd9f0a7	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbea0944	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbfa09ec	dpu_get_master_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0cd9d0	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0e7305	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc28c2ff	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc5376b2	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc5d2d29	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc65abc9	tee_client_open_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6d838c	hidraw_report_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7ddf36	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9fd7dd	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcaa67de	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcad4517	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd068c6	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd4a3d2	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf2c8c0	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf8b81a	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd034cd4	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd17e92c	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1dc46a	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1feb86	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2a985f	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2fad4d	layerblend_pixengcfg_dynamic_prim_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd48ef42	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd567a80	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5a8e5d	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd6661c5	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd782cfa	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7b2609	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd801fd6	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd807c01	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd886717	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda2e5f2	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda9651f	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbd9b56	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde63b3f	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf969cb	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe102fef	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1c21c5	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3163a2	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe34e0c2	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe384aa0	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe51337b	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5e4bf9	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe633397	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe63f4d3	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe69fa4a	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe75b022	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe76af1c	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe7d5e48	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe85b1fa	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe90d82b	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe913b6b	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea1a347	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeb428e3	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed87368	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbedd98a4	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee5ba88	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee7bd54	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef814b5	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf0164f5	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf159ecf	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf15eb96	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf29c710	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf40b12f	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf54e2ca	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf66a1d4	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6d27b4	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6fd82d	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf764aa8	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7a2701	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7e0d16	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7f2c59	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf81373e	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf861bd1	tee_client_close_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf87114d	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf87a841	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9be0d3	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfa8c1d8	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfaab370	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb738c4	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdeaace	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdf19ef	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff6eb90	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc018d504	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01ed645	tcon_enable_pc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01f65e9	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01fb8ad	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02172b1	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc045dd23	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0710568	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0842f92	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08a2f74	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0922d90	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a46df7	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ac6766	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ae69ad	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ae8f4b	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c323f9	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ccb98c	sdhci_free_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d6b6a7	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e4d756	hid_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ec48c3	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0fb7bcb	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10eb5cb	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11a927f	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11aa429	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11ca123	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0xc137c1e1	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc157439a	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1650eb2	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1692589	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16bc7f3	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1852045	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1900166	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19a2825	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19b518d	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a116ee	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1af9677	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cd9c64	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ebfe76	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xc201dd00	hscaler_get_block_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc204309a	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22fa216	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23bc2a9	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26b7b37	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26dad6e	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26fa91f	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2716463	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28db02f	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2970f9d	dpu_cf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a2049d	tcon_is_slave
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2baecb2	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c53fd6	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2dc9024	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e9b472	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3120859	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3124c9a	fb_sys_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36509b5	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xc37047e8	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc382b895	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38716f0	fb_sys_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3881b01	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39788cc	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc397c85e	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39f5a57	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3a9899f	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b3be6e	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c838eb	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cbbdbb	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cfac20	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d3b878	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e87ef1	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ef1195	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f0cb71	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f9c309	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ff806f	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc407be25	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40af733	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40ff152	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41c1b10	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4270c04	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4273732	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4377e05	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43aa8d5	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43d5097	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4593a9e	imx_pinctrl_sc_ipc_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc45c7ac3	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc474880c	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4817e13	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4871587	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49135ad	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4aeda98	framegen_secondary_requests_to_read_empty_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b11ea5	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b18e07	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c1a103	teedev_close_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c4b714	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4eae733	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4eaf740	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4faadd4	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51450c6	imx_ccm_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53e189a	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54345bf	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54f2fdc	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55b9c6b	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5aa6709	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c584d0	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c7afb3	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cdccda	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e469c7	tee_client_open_session
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e9ef5e	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ea5d89	get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6045a98	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc605c493	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60ad6f7	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6106279	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc616b901	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc621260e	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc629ea8f	save_stack_trace_tsk
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63dacb0	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63eef0f	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc649f481	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64d8ab1	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6620425	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66e4b0c	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xc678aa76	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68a5951	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d95058	fetchdecode_pixengcfg_dynamic_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e22885	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7078e57	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70941bf	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc723de01	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7331476	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7385579	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75610b9	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7699d40	regmap_test_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc783e28d	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79413b2	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a7005f	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a7e770	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b13fbb	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cdce34	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc80b3633	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc81e6db4	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc835e3f2	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84baff8	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85eb60b	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89a4ddd	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a12484	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a8089e	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b392ed	dpu_tcon_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ce8a20	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e11291	framegen_disable_pixel_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e2d958	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e76e14	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8fb1720	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9075146	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90a5cc2	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90a960f	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90b5030	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc92e9b15	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc92fb022	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc95162c9	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9558d7b	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9647ac1	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96b9175	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc972e5d3	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9823f70	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc995b171	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99630d9	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a0d8f7	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a460eb	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ac0442	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9aff1ef	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9cc1a02	mtd_is_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f411ad	fetchunit_is_fetchdecode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fe13ff	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca55a88d	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5aac46	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca87c2e4	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xca9a7dfe	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xca9dafc1	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa06a3e	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcab2252a	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac29998	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac44868	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac49491	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac8fbe2	dprc_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac9aaf8	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb00ce5e	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0da481	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb30798e	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb364f41	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3a2308	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb58969e	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb6024f3	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb70b405	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7c0922	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970633	imx_clk_hw_frac_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9e2d48	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb1c7e6	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc990c5	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc9b779	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbdad2e8	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe39d4d	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbfdb93d	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc015258	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0c2d6a	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc27422b	framegen_read_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3ada47	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc42d7b2	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc42d972	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc555205	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc571585	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc697683	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7ca8e4	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc82c114	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc85b2b0	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8ad710	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9da550	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca51720	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xccc7303e	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xccceefc0	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd6065e	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdcfb9f	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce762a3	extdst_pixengcfg_shdldreq
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfa452b	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0b7af0	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd2aafa9	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3a6fed	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd45c8bd	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd833929	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd984ec0	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd98ac72	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9bc215	dpu_lb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc67348	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcda735	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd7bd77	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddf1788	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde2c3b0	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde702d0	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xce003bf6	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xce036d19	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xce054cbc	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xce08b8e4	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1cc8f8	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1f37ab	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2de2a0	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xce3343cc	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5140ec	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5fdbe0	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xce636a3b	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xce639ec5	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0xce64b14f	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xce64cf53	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7628e1	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xce80fa9a	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xce859929	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 vmlinux 0xce99160d	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb6795f	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xceccb427	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee21743	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xceebd53a	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xceff75a7	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf1f81c4	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf4cde4f	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf78ca5f	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7a4fb0	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7b9f36	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf86ea9f	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf89cedf	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8a5e21	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8d17f2	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9b03ec	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9bef48	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb86db2	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc0e033	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfce4370	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0192c0b	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd01997a4	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd01b5124	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd029fc3b	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02a3f84	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02d6eda	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd060e3a6	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd076b0dc	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07bf513	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07bf563	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0898da8	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a38295	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b43f0c	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bf5ce6	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0da52a6	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db54c0	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e4a55a	signature_shdldreq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1091f6c	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10c134a	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10c69e4	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd123148c	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12f81b9	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1309167	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159d63d	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16d03f0	acpi_irq_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17d8253	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd182c23e	fetchunit_get_dprc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd193aca8	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a437dc	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a444ab	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a7345e	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d1c98d	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d5e75b	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d61784	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e37a5b	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e4f321	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e97ded	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fa6903	dw_hdmi_set_plugged_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fb5c3c	signature_crc_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fefb8b	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20e1cbe	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2154041	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2187557	hscaler_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23fcfa9	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24add16	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24b8b26	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24feb81	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2583113	signature_alpha_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27c1a27	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28e767f	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2902d0d	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2963ffc	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd29f30b6	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2a2aa20	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b772b7	hid_open_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b7b283	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c7cc0b	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d1d499	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d470c7	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e64f91	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2eac9eb	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ed98a1	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32c2cac	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd335d3bb	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xd338dce0	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3482d22	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37bb39e	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37e8c21	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3847ef9	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39201c3	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3990b0c	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a2729e	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c5983b	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c70e98	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3cac4b6	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3cc8f7f	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e8c56a	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40277db	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4042982	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xd406e5d9	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd418ed60	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0xd422c5d6	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42b1e91	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4358c44	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd473b8aa	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47422c6	imx_unregister_hw_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4845650	prg_shadow_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4846e99	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0xd484d3a9	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4af6d23	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ba3bb9	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f06f3f	framegen_secondary_clear_channel_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50462ac	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50feb0f	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd522a633	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5253c8c	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd540520b	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd546b8f3	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5502451	dprc_enable_ctrl_done_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd559eeee	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5654ade	drm_class_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5736259	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5845983	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a7a124	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b46cb5	extdst_pixengcfg_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e4cafd	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e69698	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ef97b6	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f256ec	prg_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f60425	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd618b0e9	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62d06cc	dpu_vs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd679ed77	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6835b72	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6968220	dw_hdmi_phy_setup_hpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69ad668	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b89f0e	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b8fc2c	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c4d2b3	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6dcf997	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6df6324	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6df68af	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e4da22	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e562fb	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70ddf02	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd710059c	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71f32f4	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xd730357e	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd732b083	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd735e738	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74c3834	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74dca7b	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75a9d3b	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd762b8fb	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd776b9b2	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b411cb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b9c361	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c0f6ef	dprc_reg_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7de0d8d	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e6e6a2	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80a3da3	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd825fc6f	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8279a90	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842a24a	signature_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84eb293	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd851ffc3	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd86de6ff	extdst_pixengcfg_sel_shdldreq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87848da	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87849c4	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88b35cf	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88b7ff3	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88e2b86	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8baf4f9	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8be801c	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c23b70	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c6cf25	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d2269d	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8dca506	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8dee3f6	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fe547b	dw_hdmi_audio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90dea7a	tee_client_close_session
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9116ffe	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd915db1f	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94240a9	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94fcfb9	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9543fd2	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd974476b	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd978031f	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd982bbe7	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98f1706	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9916c3a	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9957995	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ae6b68	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b08263	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b4ea08	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b5e6c3	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9bdde80	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d19725	hscaler_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9dba189	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e07955	dpu_cf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e0d8c4	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e78a22	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e7d92a	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9fc39ff	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xda020a5d	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xda14affe	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1b0214	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xda231cf8	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2486fa	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3d94ce	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xda487b6d	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xda67522c	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xda685654	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xda76de6b	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7f63ac	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xda81a424	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8763bf	fetcheco_layeroffset
+EXPORT_SYMBOL_GPL	 vmlinux 0xda90122b	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xda909a66	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xda97eb2b	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab3ecf5	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabda967	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabf4746	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae7d939	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaedbc0e	signature_global_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafa1790	dw_hdmi_phy_read_hpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1293b7	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb17b489	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1a2b7c	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb4384f6	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb546cf9	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5c2a6a	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5c3b73	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5db8f5	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5fc6f1	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6d4a60	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8b22cc	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8e6a9f	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba20c7a	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba4a6af	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb3e134	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb96ec7	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc6dd28	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbcc778f	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd756b8	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdb0e8b	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbde73d9	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe59762	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc118492	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2618be	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc3f1943	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc414dcc	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a50b	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc4800dd	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc54aa41	dprc_stride_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5d3298	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc691adc	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6f7324	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6fc6d5	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7054b2	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8a9afc	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca4ce07	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc551ba	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc56d3f	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcca6d78	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccd03e5	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd00961	of_alias_max_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd15c4f	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce0234e	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd09739e	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd219577	vscaler_set_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd24bb48	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd310162	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd35d502	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4450d4	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4bd1ff	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5341c4	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5402dd	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5b1161	prg_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5fa1b4	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd6cfab3	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7258e5	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7d655d	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f64f0	cpu_logical_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8335d7	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd862222	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd92b98b	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd949bf9	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd993acb	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda719e9	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xddba752b	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbfeded	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc58544	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcd4ab0	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddead633	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xde015283	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde196e73	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1dac0a	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3b527e	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xde46088d	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4bebec	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xde555d6e	timer_unstable_counter_workaround
+EXPORT_SYMBOL_GPL	 vmlinux 0xde672fdf	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde701eb4	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8a3050	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xde94368f	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xde973c58	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea0a267	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb8791d	dpu_aux_dec_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebd5ab3	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xdecf12b4	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeda9b71	__mtd_next_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedd4dab	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef99dd5	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf18353e	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1d7679	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf24e59e	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf4e44cb	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5200ba	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5b06ec	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5f704e	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf63c724	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf663e4a	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf66d682	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8ec1e2	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc1344b	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfdd8197	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfed549d	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfee6879	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00b2333	dpu_fl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe010a3db	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01133c0	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01c4b86	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02aa48f	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe030f8c9	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe037666e	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04e590f	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0672c70	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe069b420	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06b95b4	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08442eb	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08f522c	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09c8a48	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a67a99	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ab0697	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b2cb4e	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0be48b0	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c7e9c6	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d84556	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ea2eba	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f34beb	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0fcae29	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0fe3a8c	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1083954	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1090fd1	usbnet_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe118a6eb	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe122339e	rc_free_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1235124	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12bbc25	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xe13861d1	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe13c6071	vscaler_setup1
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1548ec6	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe160f517	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe166acaa	fetchdecode_get_vproc_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xe169a19c	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16c2b91	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16fa98c	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18271ff	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1868d1a	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18dfd26	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xe18f24c6	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1969f52	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19bf095	tee_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bbcbf6	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d4b4dc	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1dc156c	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e96257	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f8eec4	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1fcfc37	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22fb578	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2357708	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2448107	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe25733f5	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26bfbe3	dpu_tcon_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2848467	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xe289b8a8	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28cecd0	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ca89e2	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2caa7b0	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce3b1e	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d40dd0	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d9ca80	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2db0806	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2dfe32b	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ea94a5	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2edbab9	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3108d17	usbnet_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31ccf94	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3232371	fetchunit_is_fetcheco
+EXPORT_SYMBOL_GPL	 vmlinux 0xe327a8ef	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe330e392	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3401a5d	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35052e6	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35d8a4c	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe365a17b	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xe37674b3	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b9a75a	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cc50bb	signature_continuous_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3dc835a	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ee7f82	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3efab54	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fadd73	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe400be58	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe448dc15	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe482667b	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4854682	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48a0511	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xe493a7e7	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4955bc2	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b36454	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e42829	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e8c758	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4ed672f	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f8b833	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fdcf31	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52dab34	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52daeb0	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5336dac	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5538557	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56076a0	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5650bd4	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56b5746	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe576de4d	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58c4079	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59d3c20	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5abc112	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b006dd	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b4278b	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b609bd	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c04c30	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c4ae32	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d42978	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5da9669	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fdf35a	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe629080e	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6498f8c	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64dd845	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xe652b5ac	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xe67a4e24	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a153c3	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a390f0	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a9802d	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6aec990	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b99f9a	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bccb98	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6be87f6	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6fe164f	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe700abda	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe725b0a0	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7335564	mtd_is_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74e1ce2	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75357d5	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7725ad1	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe786e4bc	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a459c5	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7bd08b8	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d18713	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d79fc8	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e65226	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eafd56	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80c7c96	extdst_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80df5da	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81427c8	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8157aa2	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818bc7c	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8191190	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8215d8c	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8381e56	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83d944b	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83e41e2	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe845ca56	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84aa71c	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85bde4d	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8639558	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86a1393	signature_eval_win
+EXPORT_SYMBOL_GPL	 vmlinux 0xe873aa9a	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8740db4	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a0ae79	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b3fabf	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8baa54b	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c07422	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8dd7d78	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f2ed06	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ff79bb	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe912fec2	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9186db2	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9539fda	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95a0622	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95bc821	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95e2833	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97302d0	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xe988d08c	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a7b3e4	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9aaea47	put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9abe455	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b2c86b	layerblend_shdtoksel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b31f98	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cf700d	framegen_wait_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d33c34	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9db008c	usbnet_status_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e92773	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ec4a13	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0824c6	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea234ef4	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xea40257c	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4ba70e	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xea51e59a	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5507fc	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xea57419b	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5fa984	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xea91ff92	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa3e036	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaac1cc3	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac5df95	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac73e83	imx_drm_connector_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xead5c8e5	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae7feab	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf80424	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb29fec8	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3a32b0	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3f8466	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4318d1	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb547a37	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5ab627	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb674f3d	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8a2eb5	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8d6ed7	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb98b87b	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba4edca	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba8b2c0	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xebae4eae	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbad7f2	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbe52a0	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc8d0c2	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebcda0cb	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xec01b230	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0c9347	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0fe16d	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0xec169c9b	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xec25d818	framegen_enable_pixel_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3016db	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xec30584d	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3dc960	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec71ff0f	fetchunit_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7f6b4e	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xec842a41	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xec86aa6f	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xeccacd9f	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xecce5b2d	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xed01b6da	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0dedaa	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xed12014a	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xed181c71	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2ccfa5	vscaler_scale_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3438dd	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xed512917	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5c75a1	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xed65c7e9	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xed670aaf	dpu_dec_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6a1b5b	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6b64d6	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6f50f8	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed821862	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xed930656	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xed952dea	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xed98c171	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb6f0af	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xedbf6a85	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd9e356	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xedde372d	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xee12c45f	extdst_pixengcfg_is_sync_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee513eea	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c633a	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xee752a31	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee78cae5	sdhci_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7dde3a	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7f96d2	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xee85d5b6	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xee902409	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9d9be8	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeab03e6	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb0313c	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb87488	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed8ae06	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed9828f	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef5887a	__get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefbfce3	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeff4c9d	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0751a2	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1340a0	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef324886	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xef35e914	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3cac18	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xef41996d	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5244e0	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xef694e12	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6de6c7	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 vmlinux 0xef76213d	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xef8ba960	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9ec1d0	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9ede4e	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb1ef26	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb31dcf	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb4650a	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc166d7	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc204bb	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc6b830	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xefce2047	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcecfee	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd0d6e2	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe2c92a	devm_clk_get_optional_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff669d4	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffbabbd	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffd614b	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffd8de7	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0006480	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0024f6a	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf004342b	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf011d2a4	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02553dc	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0379c90	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0501ac3	fetchunit_get_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf053d1bf	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06ac9a3	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06de25c	mtd_add_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07fe3b6	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08535bb	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ab9a51	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c968d1	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0cde9ce	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0dc829a	sdhci_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0eb1ef9	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0efc3b0	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf107eaff	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10aacb0	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12180fd	imx_1443x_dram_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12a1794	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1392de9	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf13e2291	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14556c2	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16c8acc	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16f8acf	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18dc6d4	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a1eab3	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a71c36	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1bd8164	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c5f7e2	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d82561	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f21d06	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22afbed	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf239844f	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24531d8	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf246e58b	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xf259ee6c	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26f136e	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2735b54	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2799926	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xf279bea8	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27ddfa2	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27f4ed3	extdst_cnt_err_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf28c52a8	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0xf28ca69b	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf299f91b	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e06a98	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e46c54	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2ea07b9	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2ed765b	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fcd75e	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33aae17	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xf350e8b2	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf35bfb21	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3671196	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf380b7e7	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3898b19	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38f29e7	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a021ba	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a43ac3	fetcheco_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b415d4	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b6db91	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cd53b2	dpu_aux_cf_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d47b3e	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e5b964	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41aa641	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41ef8c4	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf420ff8c	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42b034d	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf436a361	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43c3860	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4465c46	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf452d280	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4566edb	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45782f0	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45ac860	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45ea805	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48141bb	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf499529f	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a109ed	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d994e3	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4eed88e	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50400ec	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50dc8f5	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5255598	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf529f8be	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52f0be6	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5362a64	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5375a06	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54241f8	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55398de	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59c0ea6	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59ed1fe	imx_drm_encoder_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a00aad	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b43f67	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b5f0bd	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b74d64	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cbfe70	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d3fd94	dpu_fe_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d42241	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f5a8cf	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf602625e	imx_pinctrl_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60aa59d	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60d0f39	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf630bd90	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6365269	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6447115	vscaler_get_block_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf647f571	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64940b2	imx_dev_clk_hw_pll14xx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf650876f	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf653b973	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf655ae18	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf687bdcd	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf68f14b9	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf690f0dd	dpu_bliteng_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69e4e2a	hid_hw_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a2d7a1	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a45044	extdst_cnt_err_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6aebf1e	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6cc061e	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e2ff62	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e978c0	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f5c7b5	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6fa1720	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6fd90fe	hidinput_report_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70d1f6f	disengcfg_sig_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70e3563	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70e4a4d	preempt_schedule_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71e2b94	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7234f72	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf734ba4d	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf739cc4b	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7410e0b	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74c474c	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf766ff9a	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76f89e2	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf781f3d3	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7884ad8	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf792dbf2	dpu_fg_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79a0f71	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79cf045	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2f198	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7af6f90	extdst_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c1d146	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c9d76f	hid_hw_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ca5b0d	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8040c75	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xf811dae9	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xf815be40	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84b11ed	tcon_configure_pc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8593667	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf883c6af	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88af824	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8947821	prg_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a24e82	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a2d6db	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c1e248	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8cfbc5d	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d596cd	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e0caca	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3c5db	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fabcfa	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xf904a59b	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91764fe	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91fea8f	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92bc306	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf930a8d9	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93708ec	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9371225	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9663055	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf967724e	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xf982374f	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf994a50c	framegen_shdtokgen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a49efb	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a988aa	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9aafd14	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9afd2da	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b5cad9	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9bd1ca6	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c3fe21	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c66675	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d7ed83	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e90e50	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e9fb7b	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0fb09b	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1fbfc8	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa2bc97a	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa41ccae	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4927c6	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5a0d09	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa94f4a3	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa54e0d	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa82306	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac8c110	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad6b207	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfada9fe1	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae7f422	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaece929	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfafb4357	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfafb7e0c	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1e50e2	framegen_wait_for_frame_counter_moving
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2601b5	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb47ca63	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4b3e90	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6679b7	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb73af68	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7e1f7b	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb97281a	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd22bea	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf47773	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf9454e	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc014cb6	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc02fb7d	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0e483f	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc10d999	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc13204b	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc15e427	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc41ca9e	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc72d78d	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc73c135	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7c40a2	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7e2cca	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8285af	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca88603	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa77d1	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb3b24f	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb8babc	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccbffae	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccd4837	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcceb26a	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xfced408c	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0427ce	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0553c9	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd059e63	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0cb803	imx8mp_get_ldo_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0cf0ad	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd337191	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd3f4ee4	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5b6b3d	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd628f45	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6cfc4f	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7f5ea0	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd915f81	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9a869f	fetcheco_frameresampling
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda07395	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdadf5d3	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb28bb5	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd306cd	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd69362	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb54c2	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde3449d	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde614a6	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdebb0f1	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfdbdbc	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdff7f48	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0a2ba4	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29a257	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3bbde5	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe52e68d	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5f3275	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6f1dfc	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe72d42a	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7d9cd0	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8b97a8	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8f17fc	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeada2dc	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb21e75	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb52139	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb8aca3	prg_set_blit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec63406	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecccc9e	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecd2d7a	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee05e26	fetchdecode_get_vscaler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef7f241	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xff000eba	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xff020f22	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff31a027	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xff39067f	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3b4203	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3d5a79	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xff428aff	fetchunit_set_src_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xff53a42b	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5e1df0	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xff725d3d	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xff79be68	tcon_set_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8c9ee6	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xff92e26c	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xffaaa1c8	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffcabc80	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd26af6	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd9bb78	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xffda939c	xhci_resume
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0b48068c	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0cf4496a	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2e90dc90	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x349d7ef9	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x582a52a4	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7d5b0e8b	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7e76e612	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x84404207	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x851cf9aa	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x89c8b88a	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8b6d0901	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x93b8f819	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x941c2025	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9ae1f4a1	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9d886951	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa648aa3d	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa87cd013	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa939a5c4	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaab2c72f	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xad4ed4b1	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc7401e7f	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xcc805170	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xdb3be97d	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe79faefc	usb_stor_resume	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.ein/abi/arm64/ein.compiler
+++ linux-ein-5.4.0/debian.ein/abi/arm64/ein.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.ein/abi/arm64/ein.modules
+++ linux-ein-5.4.0/debian.ein/abi/arm64/ein.modules
@@ -0,0 +1,3596 @@
+6lowpan
+6pack
+8021q
+8250_aspeed_vuart
+8250_dw
+8255
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a3d
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+ac97_bus
+acecad
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8801
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16480
+adis_lib
+adjd_s311
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm9240
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7511_drm
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes_ti
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci_ceva
+ahci_platform
+ahci_qoriq
+aiptek
+aircable
+ak8974
+ak8975
+al3320a
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+altera-stapl
+altera_ps2
+am2315
+amba-pl010
+ambakmi
+amc6821
+amd
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+aoe
+apbps2
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc4
+arc_ps2
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arm64-reloc-test
+arm_mhu
+arm_scpi
+arm_spe_pmu
+arp_tables
+arpt_mangle
+arptable_filter
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ashmem_linux
+asix
+aspeed-pwm-tacho
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at803x
+at86rf230
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atlas-ph-sensor
+atm
+atmel-flexcom
+atmel-hlcdc
+atmel_captouch
+atmel_mxt_ts
+atmtcp
+atusb
+atxp1
+aufs
+auo-pixcir-ts
+auth_rpcgss
+autofs4
+ax25
+ax88179_178a
+ax88796b
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-keypad
+bcm-sba-raid
+bcm-sf2
+bcm203x
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd70528-regulator
+bd70528_wdt
+bd9571mwv
+bd9571mwv-regulator
+befs
+belkin_sa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bnep
+bonding
+bpa10x
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb_nand
+brcmutil
+brd
+bridge
+bsd_comp
+btbcm
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrtl
+btsdio
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+c67x00
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence-quadspi
+cadence_wdt
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+carl9170
+cast5_generic
+cast6_generic
+cast_common
+catc
+cb710
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns_mhdp_drmcore
+cdns_mhdp_imx
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chipone_icn8318
+chnl_net
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+clip
+clk-max77686
+clk-max9485
+clk-pwm
+clk-rk808
+clk-scpi
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cobra
+coda
+coda-vpu
+colibri-vf50-ts
+comedi
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_test
+comedi_usb
+configs
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cpufreq-dt
+cpufreq_conservative
+cpufreq_powersave
+cpufreq_userspace
+cramfs
+crc-itu-t
+crc4
+crc64
+crc7
+crc8
+crct10dif-ce
+crypto_engine
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx25840
+cx82310_eth
+cxacru
+cy8ctmg110_ts
+cyapatp
+cyberjack
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+davicom
+db9
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+dht11
+diag
+digi_acceleport
+digicolor-usart
+diskonchip
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm9601
+dmard06
+dmard09
+dmard10
+dme1737
+dmi-sysfs
+docg3
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+drbd
+drm_mipi_dbi
+drv260x
+drv2665
+drv2667
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds4424
+ds620
+dsa_core
+dsa_loop
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-gp-audio
+dw-hdmi-i2s-audio
+dw_dmac
+dw_dmac_core
+dw_wdt
+dwc-xlgmac
+dwc2
+dwc3
+dwc3-haps
+dwc3-imx8mp
+dwc3-of-simple
+dwc3-pci
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-imx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efivarfs
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-mxc
+ehci-platform
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_usb
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+envelope-detector
+eql
+erofs
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+et1011c
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-gpio
+extcon-it5201
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+failover
+fakelb
+fan53555
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fec
+ff-memless
+fieldbus_dev
+flexcan
+fotg210-hcd
+fou
+fou6
+freevxfs
+fscache
+fsl-imx-ldb
+fsl-mph-dr-of
+fsl_imx8_ddr_perf
+fsl_lpuart
+fsl_pq_mdio
+ftdi-elan
+ftdi_sio
+ftl
+ftm-quaddec
+ftsteutates
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_hid
+g_mass_storage
+g_midi
+g_multi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+galcore
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+geneve
+genwqe_card
+gf2k
+gfs2
+gigaset
+gl518sm
+gl520sm
+gl620a
+gluebi
+gmsl-max9286
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-arizona
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-ir-recv
+gpio-ir-tx
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-mb86s7x
+gpio-mc33880
+gpio-mockup
+gpio-pcf857x
+gpio-pisosr
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpu-sched
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs_fpga
+gs_usb
+gsc-hwmon
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hampshire
+hantrodec
+hantrodec_845s
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hfcsusb
+hfs
+hfsplus
+hi311x
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi8435
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hisi_qm
+hisi_sas_main
+hisi_sas_v1_hw
+hisi_sas_v2_hw
+hisi_zip
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hp03
+hp206c
+hpfs
+hpilo
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hx280enc
+hx280enc_vc8000e
+hx711
+hx8357
+hx8357d
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-pca
+i2c-arb-gpio-challenge
+i2c-demux-pinctrl
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-nomadik
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-robotfuzz-osif
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-viperboard
+i3c
+ib_cm
+ib_core
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icp
+icplus
+ics932s401
+idmouse
+idt_89hpesx
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igorplugusb
+iguanair
+iio-mux
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+imon
+imon_raw
+ims-pcu
+imx-cpufreq-dt
+imx-dcss
+imx-dpu-crtc
+imx-dpu-render
+imx-lcdifv3-crtc
+imx-ldb
+imx-pcm-dma
+imx-pxp
+imx-tve
+imx6q-cpufreq
+imx6ul_tsc
+imx7d_adc
+imx7ulp_wdt
+imx8-capture
+imx8-isi-cap
+imx8-isi-hw
+imx8-isi-m2m
+imx8-media-dev
+imx8-mipi-csi2
+imx8-mipi-csi2-sam
+imx8-parallel-csi
+imx8mm_thermal
+imx8mp-ldb
+imx_rpmsg_pingpong
+imx_sc_thermal
+imx_sc_wdt
+imx_thermal
+imxfb
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+input-leds
+input-polldev
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipaq
+ipcomp
+ipcomp6
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+iproc_nand
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it6263
+it87
+itg3200
+iuu_phoenix
+iw_cm
+jc42
+jedec_probe
+jffs2
+jfs
+joydev
+joydump
+jsa1212
+kafs
+kalmia
+kaweth
+kbtab
+kcm
+kcomedilib
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kl5kusb105
+kmx61
+kobil_sct
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+kvaser_pci
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+lan743x
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+lcdif-mux-display
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-tca6507
+leds-tlc591xx
+ledtrig-activity
+ledtrig-audio
+ledtrig-camera
+ledtrig-netdev
+ledtrig-pattern
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libfc
+libfcoe
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpddr_cmds
+lru_cache
+lrw
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m62332
+mISDN_core
+mISDN_dsp
+m_can
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macsec
+macvlan
+macvtap
+madera
+madera-spi
+mag3110
+magellan
+mailbox-test
+map_absent
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mcba_usb
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdio-octeon
+megachips-stdpxxxx-ge-b850v3-fw
+melfas_mip4
+memstick
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+metro-usb
+metronomefb
+mi0283qt
+michael_mic
+microchip_t1
+microread
+microread_i2c
+microtek
+minix
+mip6
+mk712
+mkiss
+mlx90614
+mlx90632
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mms114
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+msdos
+msm-vibrator
+msp3400
+mspro_block
+mt7530
+mt9v011
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-quadspi
+mtouch
+multipath
+musb_hdrc
+mux-core
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mx6s_capture
+mxc-jpeg-encdec
+mxc4005
+mxc6255
+mxc_mipi_csi
+mxc_mlb
+mxc_vadc
+mxsfb
+mxuport
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+nau7802
+navman
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+net1080
+net2272
+net_failover
+netconsole
+netdevsim
+netlink_diag
+netrom
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+ni_usb6501
+nilfs2
+nlmon
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+notifier-error-inject
+npcm750-pwm-fan
+ns558
+nsh
+ntc_thermistor
+ntfs
+null_blk
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-reboot-mode
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nwl-mipi-dsi
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-seiko-43wvfig
+nxp-tja11xx
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+of_xilinx_wdt
+ofb
+ofpart
+ohci-platform
+omap4-keypad
+omfs
+omninet
+onenand
+opencores-kbd
+openvswitch
+opt3001
+opticon
+option
+orangefs
+oti6858
+otm3225a
+ov2640
+ov5640_camera_mipi_v2
+ov5640_camera_v2
+ov9281_camera_mipi_v2
+overlay
+oxu210hp-hcd
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panel
+panel-avd-tt101wx-cn-101-a
+panel-feiyang-fy07024di26a30d
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lg4573
+panel-lvds
+panel-orisetech-otm8009a
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-tpo-tpg110
+parade-ps8622
+parallel-display
+parkbd
+parport
+parport_ax88796
+pata_of_platform
+pata_platform
+pc87360
+pc87427
+pca9450-regulator
+pcbc
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pci
+pci-pf-stub
+pci-stub
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcrypt
+pcwd_usb
+pda_power
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pfuze100-regulator
+phantom
+phonet
+phram
+phy-fsl-imx8mp-lvds
+phy-fsl-imx8mq-usb
+phy-fsl-samsung-hdmi
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-tahvo
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+plx_pci
+pm-notifier-error-inject
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pwc
+pwm-atmel-hlcdc
+pwm-beeper
+pwm-fan
+pwm-fsl-ftm
+pwm-imx-tpm
+pwm-imx1
+pwm-imx27
+pwm-ir-tx
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-vibra
+pwm_bl
+pwrseq_sd8787
+pxa27x_udc
+pxe1610
+pxrc
+qca8k
+qcaux
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcserial
+qemu_fw_cfg
+qinfo_probe
+qmi_wwan
+qnx4
+qnx6
+qoriq_thermal
+qsemi
+qt1050
+qt1070
+qt2160
+quatech2
+quota_tree
+quota_v1
+quota_v2
+r8152
+r8188eu
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rave-sp
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-asus-pe100a
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rk805-pwrkey
+rk808
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rohm-bd70528
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rpcrdma
+rpcsec_gss_krb5
+rpr0521
+rsxx
+rt5033
+rt5033-regulator
+rt5033_battery
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-as3722
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cpcap
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-efi
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-imx-sc
+rtc-imxdi
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mxc
+rtc-palmas
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-x1205
+rtc-zynqmp
+rtl8150
+rtl8187
+rtl8192c-common
+rtl8192cu
+rtl8xxxu
+rtl_usb
+rtlwifi
+rtsx_pci
+rtsx_usb
+rtsx_usb_ms
+rtw88
+rtwpci
+rxrpc
+s1d13xxxfb
+s2255drv
+s3fwrn5
+s3fwrn5_i2c
+s6sy761
+saa7115
+safe_serial
+salsa20_generic
+samsung-keypad
+sata_dwc_460ex
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdio_uart
+sec-dsim
+sec_mipi_dsim-imx
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfp
+sgp30
+sh_veu
+sha1-ce
+sha3_generic
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+simple-pm-bus
+sir_ir
+sis_i2c
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm_common
+sm_ftl
+sm_test
+smb347-charger
+smc
+smc_diag
+smm665
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smscufx
+snd
+snd-ac97-codec
+snd-aloop
+snd-bcd2000
+snd-dummy
+snd-hrtimer
+snd-hwdep
+snd-mixer-oss
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-pcm
+snd-pcm-dmaengine
+snd-pcm-oss
+snd-portman2x4
+snd-rawmidi
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-event
+snd-seq-oss
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-adau7002
+snd-soc-audio-graph-card
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-dmic
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asoc-card
+snd-soc-fsl-asrc
+snd-soc-fsl-aud2htx
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-hdmi-codec
+snd-soc-imx-audmix
+snd-soc-imx-audmux
+snd-soc-imx-cdnhdmi
+snd-soc-imx-es8328
+snd-soc-imx-sgtl5000
+snd-soc-imx-spdif
+snd-soc-max98357a
+snd-soc-nau8822
+snd-soc-sgtl5000
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-sof
+snd-sof-imx8
+snd-sof-nocodec
+snd-sof-of
+snd-timer
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-virmidi
+snvs_pwrkey
+softdog
+softing
+sony-btf-mpx
+soundwire-bus
+sp805_wdt
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedtch
+spi-dln2
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-pl022
+spi-sc18is602
+spi-slave-system-control
+spi-slave-time
+spi-xcomm
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+ssu100
+st
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+ste10Xp
+stinger
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+sunkbd
+sunrpc
+sur40
+surface3_spi
+sx8
+sx8654
+sx9500
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_cs
+syscon-reboot-mode
+sysv
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pltfrm
+tc358767
+tc654
+tc74
+tca6416-keypad
+tca8418_keypad
+tcm_fc
+tcm_loop
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda1997x
+tda7432
+tda9840
+tda9950
+tda998x
+tdo24m
+tea
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+teranetics
+test_bpf
+test_firmware
+test_kmod
+test_module
+test_power
+test_static_key_base
+test_static_keys
+test_sysctl
+test_udelay
+test_user_copy
+tgr192
+thermal-generic-adc
+thmc50
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tfp410
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+timeriomem-rng
+tipc
+tls
+tlv320aic23b
+tm2-touchkey
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+touchit213
+touchright
+touchwin
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217
+tps65217-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+trancevibrator
+trf7970a
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttusbir
+ttynull
+tuner
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp5150
+tw2804
+tw9903
+tw9906
+twidjoy
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pltfrm
+uhid
+uio
+uio_dmem_genirq
+uio_pdrv_genirq
+uio_pruss
+uleds
+ulpi
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd78f0730
+us5182d
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+vesta_expansion
+vesta_overlaymgr
+veth
+vf610_adc
+vf610_dac
+vfio
+vfio-pci
+vfio_iommu_type1
+vfio_virqfd
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+vicodec
+video-mux
+videobuf-core
+videobuf-dma-contig
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_crypto
+virtio_input
+virtio_net
+virtio_scsi
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmk80xx
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vrf
+vringh
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6656_stage
+vxcan
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+warrior
+wcn36xx
+wdt87xx_i2c
+whiteheat
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+wire
+wireguard
+wishbone-serial
+wl1273-core
+wl3501_cs
+wm8739
+wm8775
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgmac_mdio
+xhci-plat-hcd
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_of
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xz_dec_test
+yam
+yealink
+yurex
+z3fold
+zaurus
+zavl
+zcommon
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
--- linux-ein-5.4.0.orig/debian.ein/abi/arm64/ein.retpoline
+++ linux-ein-5.4.0/debian.ein/abi/arm64/ein.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.ein/abi/armhf/ein
+++ linux-ein-5.4.0/debian.ein/abi/armhf/ein
@@ -0,0 +1,20336 @@
+EXPORT_SYMBOL	 arch/arm/lib/xor-neon 0x0f051164	xor_block_neon_inner
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x11289ed9	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x23432c93	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x8304b99c	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa0799590	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xc6fdff4a	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xdacef1a2	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x66852f7d	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x892fe721	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0xc5f4a450	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x5ca30c8c	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0xaa7b174e	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xb5e80cfa	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xe065e33b	bcma_core_irq
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x03013f6a	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0c191e5a	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x14e27f2d	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x336d63c9	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x56a74993	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5e986279	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x6eef892e	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x8e607fcf	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa61c035b	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb7475df8	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xef002268	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf422ce6a	pi_read_block
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x816b71a5	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xb12f1f3b	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x24a2fc15	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67db3357	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x88d42a3d	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xcc102689	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x27b9a3fb	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x34559fbf	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x3e6ba817	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xede2babc	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xa6dcb62b	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xab616ad7	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xd4cd5a26	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/caam/sm_test 0x2112977e	caam_sm_example_init
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x1de8a710	cdns_mhdp_get_edid_block
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x1ed0cf24	cdns_mhdp_set_host_cap
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x1ed745ad	cdns_mhdp_train_link
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x31390ae2	cdns_mhdp_clock_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x42a56e2b	cdns_mhdp_config_video
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x469f498b	cdns_mhdp_i2c_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x5ed127a5	cdns_mhdp_check_alive
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x5f4aa546	cdns_mhdp_load_firmware
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x695ff228	cdns_mhdp_audio_config
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x71d46e4d	cdns_mhdp_i2c_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x7220ac06	cdns_mhdp_get_last_i2c_status
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x794c41f0	cdns_mhdp_bus_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x8101e1da	cdns_mhdp_set_fw_clk
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x8266776d	cdns_mhdp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x88724589	cdns_mhdp_set_firmware_active
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x8dfa2138	cdns_mhdp_reg_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x8ef3f2fc	cdns_mhdp_set_video_status
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x9359ec21	cdns_mhdp_reg_write_bit
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x9c0bc1c1	cdns_mhdp_get_event
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xa329b06d	cdns_mhdp_audio_mute
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xafebb389	cdns_mhdp_read_hpd
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xb5b7b4a3	cdns_mhdp_mailbox_validate_receive
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xb88d99af	cdns_phy_reg_write
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xc54d6014	cdns_mhdp_mailbox_read_receive
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xc7eea2bf	cdns_mhdp_audio_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xcd3d14c5	cdns_mhdp_mailbox_send
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xd365ba80	cdns_mhdp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xdd7a3608	cdns_mhdp_get_fw_clk
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xe5456ce2	cdns_mhdp_event_config
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xe73ee510	cdns_mhdp_bus_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xe88e3e0f	cdns_mhdp_reg_read
+EXPORT_SYMBOL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xf9f1d5d8	cdns_phy_reg_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0196e09e	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x28f923b0	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2d013ebf	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2d17fff1	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x473b3f1f	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4b6045a4	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5f3826bc	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x73041878	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x73fcae4f	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x7daff3cf	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x8ac7758a	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9057328c	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x95ad8e8a	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd00789d3	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xdc5002c3	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf4172454	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfd623c29	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xff413b29	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0ac256ab	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3686ad6e	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x37917aef	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x497f3aaa	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x63fa7155	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x830f7ce5	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8832f7ae	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x88945a56	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8eb751fd	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb460a57e	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbbe5840b	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc90c5fda	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcdfaf35c	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe0791535	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe2a0d14a	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xef5ec944	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf75eabf5	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfadb4c2e	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfeab98e3	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x00055149	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0be6a17f	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x10fcbcf2	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x132b05be	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x165c49f9	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x18d2602c	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1935dff6	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1e9cd5a9	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ef0d6a5	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x263fca78	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2b626849	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2d542de3	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3060b1ad	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x395eaf13	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3b5b1c4d	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3e37e0f4	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x401c983c	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x422782ab	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x47c25984	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4b6103a9	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4c271952	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4dadf282	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x53200a30	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x53ba670d	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x567ac8d1	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x569c1ca6	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x57d19908	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f78d1e2	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f99c0b3	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5ff8371e	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x60842e01	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x62e188c3	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6fc8397f	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x714fdc32	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x797a4c1a	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7c06c4ac	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7c78af6e	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x881f883a	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8859400c	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9177cbb3	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x918c1548	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x92e4a679	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x95e19483	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x963e164a	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x988a0ea8	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x99c43e4e	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9c5dd13e	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa060a9f5	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa0a15d6d	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa3321d01	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaa1df99d	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb1aef8fd	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc34af00c	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc3ebf722	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc9477c3e	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd45617f1	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd78868a7	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xddc8751a	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe1ffce89	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe8fd0f5e	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xeb804cab	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf3ebfba5	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf8aaab81	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf92e76c9	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfcce59d9	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xf858e7d5	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x621c6861	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x88fb82bf	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x027d5176	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x0efa375a	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x33f3659f	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0a449686	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0f9a0c4b	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x14c45d37	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x253adf05	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x608005de	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x67aec1c0	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6b1705de	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x92d9c4df	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x94ba01c9	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x98096c91	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xad936e13	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb077fda1	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb8b4fe81	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xde8bec24	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf1dd0327	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf9423aff	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x3b5cd00f	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x402be662	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xf2351728	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x1f55fa18	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x3829214f	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x17788c2e	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x843e6c69	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x97472688	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xce19c337	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x9bb68b8a	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1f8be0d6	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3e6fbedb	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3fa927a0	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x548581b8	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6f7839ac	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x71107dcd	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x98d453de	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9c2a2495	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xd0d2949a	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf350776a	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x1499b852	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xaaf11bf3	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xf2c98fc5	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xf73175d8	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1f0bdc58	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2e937e4d	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x37c23256	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x48cd17fa	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xa288cf7c	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xbd26238a	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xdaabaf3b	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xe55def48	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf4091551	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x10e9b598	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x2a663b19	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x70c56531	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x79e133d1	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x9c15c243	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x2f848e9f	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x5b51af59	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xb80e8f91	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x01f73313	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x16993070	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2b10d64c	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x430ac5d2	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x47ddd963	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x4db28f2b	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x64bf8ed2	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6c22636a	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x84e7c07d	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8cf7ddcb	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x98714cbe	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x99040c7a	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x9fa57ee5	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb0dd8666	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb99a04e7	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xdd076f28	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe7635034	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xfbd52ec4	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x0d79a4c6	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x047ea00c	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xba8a67d7	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xef206fc7	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xfef4b844	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x0bdd30c9	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x92b9dc48	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xf725458e	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x0c8f19c2	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xefffc8d6	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x1a90f9e0	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xd73942e5	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x4ead1d79	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x670e4c63	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xea2b6222	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x05ef8114	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x061ee685	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1c68408a	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2421da4c	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x28373ebf	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x30897ccf	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3432ffc1	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x426ee785	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x4dde8e49	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5eb84f6f	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x84dd696c	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8c8763e9	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x91927f4e	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x92af5b60	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9342da37	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9d1050c2	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa672cb50	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb913a342	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbfa9185d	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc1de618c	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd299361a	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xddc4295b	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xddc8e96b	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x4bd67d2d	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x1eac23f7	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x686a08aa	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xbd187237	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xe7933b69	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x08025ef9	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x1e84f3b7	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x4f6f3b5c	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xd4eb1e96	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x32c3e862	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xaeaf5f56	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x09ee8e15	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xa045571f	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x10196833	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x53a95d6f	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x8e4ca2a2	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xc0655bf4	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x0f4e76ec	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x7114c989	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x76f9a814	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x98491580	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x66d18e2f	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x9128cde9	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xaa0f32a6	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x1b41aa44	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xb0ac92cc	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xc95a09e7	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xd75b0601	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xf1c77726	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x248d59b6	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x7fdd6527	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x2651366f	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x3d38fa41	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x9f3a4301	st_press_common_probe
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x0568e533	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3d9b333a	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x57f00665	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x66c12c48	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x730a6db5	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x81feafe2	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x94909515	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x980b80ba	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9afc4916	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa0317955	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa59dc430	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc5b030f4	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xddf594fd	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdf7af579	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe24d2bbe	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe323d921	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf8e56b88	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xfd226027	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00b01b7d	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00b30dac	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00cc61c3	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0106e843	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03c5dbdd	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x04a462d8	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x050fbf59	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0665bf7d	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06bc0350	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06fabda2	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x084760ad	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a3bb1c2	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ac6511a	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ae92b65	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10967b65	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x109dfffd	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x119f3a4d	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1441dba5	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18e6c453	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19686b26	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19bcc54d	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b1e27ab	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b1f4d96	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1c5bb37d	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x20cb825a	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x20d105b8	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21bd99e0	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24610ad6	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28762321	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ac8c1ec	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b172652	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2bdbd44b	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2dfe44eb	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ef3d77a	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2fcccb8a	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x315340c5	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31db88a7	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31ecf1f8	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x34d5a89d	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35327fe2	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x372c617b	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x387b83a0	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bc3c9ee	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bf9a1a6	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d4f3736	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e4aeaaf	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e5b0339	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40b327b8	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4319e67a	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x431e296a	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x480c6831	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x485b5fb8	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49219076	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49d9794b	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4af5e0b1	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4dda2baf	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x500c440e	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5063b0a1	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x520b2638	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ac06e3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52f6657c	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54894613	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58660836	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58ae5f46	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58be1878	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58e5b65a	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b01928f	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5caf424d	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cfba10d	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61cbca8b	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6212f271	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62157257	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62276273	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x636ff00d	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64f65576	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x652cda6b	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65b79cca	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65c215f1	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x691e0475	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x69f78360	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a9a9f62	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6cf0f0fe	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6cfa36a2	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e4a10cc	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6fafa81e	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70105236	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7281ace1	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x76146b57	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a50a478	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b880040	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c6eac2c	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e30f319	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7eda3354	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x83108339	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8491ba08	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x87020092	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x874aba5d	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8824bb47	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88c11094	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88dcb459	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8928a3b1	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x896c19c8	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89eda0af	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b9ca8b8	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c78af15	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d00975b	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d9d9cfe	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7ca551	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e91fd5f	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94ba3114	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95805c05	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97375eba	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9affd1ed	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d12f493	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f4c45c0	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa30c12f8	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa55386ff	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa62cf6a4	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6566186	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6cca36d	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7f6dfa3	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa23457f	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab63d114	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaffb0548	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb04a12ae	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb152a6d6	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb16adb4e	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1a312e1	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb441fc2b	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb46213a9	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5c3df30	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb620e318	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb6348920	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb64c600a	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbb55a667	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc551b9a	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbca23e40	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbffd509c	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc02d01c4	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc041c8ca	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2a814e0	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc6935bf3	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7c7b39b	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7e18e41	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8161366	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8a021cd	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8fef0d2	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xccf24af6	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd31de60	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd4e97f0	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd1dafbcb	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd3936b56	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5d374a4	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7c8d17c	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd8b10255	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdbd5cf85	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc4b8342	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde90e70e	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdfee2474	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdff058c2	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5b47ec5	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe6443c64	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8036c69	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8061480	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe898ee4d	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xea68ffe3	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb237d8c	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb3dd518	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf0255d2b	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf0d80c12	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1d21e5b	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf287a162	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf2ed9bc9	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5201454	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5a2b8fb	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf758688c	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf7b682e5	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8cf29fc	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf93e7385	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfa7b4f16	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfca3e596	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe701ccb	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfeba1ea1	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff1a322a	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff2d9acb	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff9e3bd5	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffbabce7	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffee5ac9	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x02e8f357	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x045dd18b	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x073a087a	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x11be5d35	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x21bbdc99	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x296d2af2	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2ed284ff	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3546ef52	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x35b05f7e	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3eac9f99	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x452c4196	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x58608a0b	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7869753d	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7ba26011	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x92cfeaf2	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x99a35908	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa4496f9f	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa9b50eb9	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb4247be3	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbce79050	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc3000cbe	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc7377b05	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd466c554	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe9c76d4b	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xeefdd122	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf10ce713	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf21f0218	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf5365189	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf61d1ff1	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf79b5b9b	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x84cc2b78	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x84fca5b8	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x94b40ecf	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb3992c15	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xbeda37a1	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd2b5a2f8	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xeaff16aa	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf4389b1b	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x199e1490	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x28a9800c	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4f491276	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x536b1f30	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x55609872	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6014bba4	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x66242562	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x66e4a1b4	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6bec280d	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6f0aeead	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6fb8125d	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7a5bab43	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x817c2347	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9a09f721	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa22d552b	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa4d6ec0f	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa7be2004	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xab0ad1bd	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xadf28606	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xaf7665b3	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbab7a491	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc87b35a5	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd4b5a515	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdf492dac	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xec8fb90f	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xef68990d	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf052d07d	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf8a3adcf	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfd9bfe60	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfdf5539a	rdma_reject
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x28f72b3e	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x56806bd8	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x7ae764d6	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x7ccb206c	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x8577b47b	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xb13d8eed	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xdf5d8fab	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xf38cba55	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xfa8b3350	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x47d1a873	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xc271acad	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xc650ec73	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xde116286	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe87ae35c	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x158f1e24	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x92c6dc05	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xd6e65743	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xa9b37dbc	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x33699de3	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x5dc588db	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x763e0ae9	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x82422310	cma3000_init
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0xdd2e2ad2	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x0deef026	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x1c3101aa	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x4ba449c3	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xef164221	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf65df9f6	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x94303e11	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x9621a3c2	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x060cefea	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x0cbad1b8	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x102db696	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x14d9a0a1	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x493f3d4a	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8afad2a5	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa7c4fd6c	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa90a2e43	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb01b3538	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xd0fb468b	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xdff3a66d	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe8ad9bd1	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0e458cab	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x144777df	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1715a73b	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x25ad6d12	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2e25f3df	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2efe445b	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3435d88b	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3eef7e5d	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x446d664c	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x56daed87	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x7a12d656	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x80159e04	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x82d9d481	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x964e33c6	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9a53d48c	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9e17ab65	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb0efd280	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc427641d	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdcf31cd7	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe477ae89	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe55e7fb4	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe803deda	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xef1b8dcc	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x0d8904a0	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34c333b4	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x611da4ca	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7782e88f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7e23be52	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x8efff430	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9ac7c147	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xadb6b25e	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xaf788fbb	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc04554f7	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc140a4f7	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2e8205f	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc4022eb3	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc6a36e24	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd2381a89	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd47b1f8e	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd9e35cf8	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3e5dad3	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfa93de35	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/dm-log 0x35f25696	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0x541846c5	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x5a965fcc	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0x87f34573	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1191475d	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1a06e6c9	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x478bcb11	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x4e815723	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xa6166e50	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf50a5812	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/raid456 0xa67f4d90	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xc027ea62	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x0080784f	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x262724cb	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x26d02dc9	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x2ba02d26	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x3ed73b1a	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x4225372a	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6b7c5107	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x710d22e9	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7733fd61	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x78899371	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7b124435	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd4e2ad80	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xec69ffbb	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x3500ea5d	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x699a91f2	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x6fe079eb	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xad889f8e	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x4f47ab80	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xaf878bc1	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x574242d3	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xe3652fd2	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x573a13e1	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x006d6880	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x047a795e	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x12e82c5e	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1609d70c	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1e7a8283	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x21381c3b	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x214d5b4e	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2a946438	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2c12c287	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x336540f1	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x34e1c96b	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3fd96ba7	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x42d15a1b	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4be5c646	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4cb83c5b	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4e1fabf3	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4e604012	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4f108a75	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x50ba458c	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5b2e2403	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5eb75787	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6c3b7b2b	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x77da9aae	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b334d3c	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8026ef3e	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82143c17	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa089332b	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa791919e	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc0b93899	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc1e23529	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3b0a338	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc8113054	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcd0d9ab7	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd2ddf161	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdafc31c5	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedda2b2f	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xeed2fc5c	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf11b6175	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf4c98e17	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfe73d116	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x0c37af09	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x16529274	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x20bb44d2	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7ee916cc	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x8144b010	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc02f3c7d	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xdabcfa2d	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf1ca9a08	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xfc324de0	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x7b8b4dbc	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xe6a695e7	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x82b26c82	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x8ad1ba48	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xea379cbc	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xfcd8fa05	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1018207d	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x3370abf6	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x35af8ee1	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x41d38cc2	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x53c50c54	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7b3df3a8	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8205cfa0	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8ed0c7d6	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9873efc3	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9d1960ea	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xb06c2ed8	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc52fd787	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd7e30a2f	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x42d2fd0e	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x9e45e187	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xad1cfcd2	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xd25a8767	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xef2f99f6	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x40ea875c	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x69f6b81b	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xe6d21b13	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x01c7a5d5	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x1f6868a2	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x3131fcd3	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xab653417	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xe518f2cb	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x23050d08	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x06960009	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x10aeae77	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xfcad4123	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0xd8749551	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x6671c6ea	vdoa_context_configure
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x787fe8a8	vdoa_device_run
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x7fe3d6f9	vdoa_context_create
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0xd96c63ec	vdoa_wait_for_completion
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0xfc58eef7	vdoa_context_destroy
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x0f54ee33	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x100cd144	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x2dfcad74	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x3d583f9c	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x57d6ac78	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x886026c8	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xd6505f58	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x73dc3faa	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xad48ed61	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x6a954e7b	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x8a0b1601	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xeabbaeaa	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x044daf7f	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x12e86d69	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x66be50e1	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7f136793	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x865aef7d	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb8c53982	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc66dfab3	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc86ebca9	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe3f05741	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x50d7c1bc	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x77a3a561	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x7ba6199f	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x7d943c18	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x87845035	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xb236bea2	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf96783b3	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x501cf728	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x22630e44	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2276e220	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2dd62629	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x584a3599	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5cc5d3d2	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x746ff2b8	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8045cefa	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb95da12c	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd7f16d18	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x16130834	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x5d8be6b4	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x02caff9c	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xb36ec728	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x08de7873	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x28e37940	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x38226987	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x4a650256	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x588ebab6	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x657d87d2	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x7429e283	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x827ce571	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x99a39859	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x1f807e52	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x28040cdb	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x4f279f6e	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x5d42fa80	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x712ec94e	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x91a4a839	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xd0558eac	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xdf9ab154	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x8ac7de6c	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xc5aad713	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xcb8e358c	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7f9fd50d	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8af806ca	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa8f8dd61	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x05bf7cab	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x08c5c16b	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0cabe3c7	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0ec0c318	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x12a5d44f	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1f15c91c	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x26f9de53	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2847bc15	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x330ded0c	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x35868cea	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3643693c	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x382493c2	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3a49af7f	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3da958ee	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x44043e8a	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x49f1835c	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4ade1885	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x52f85cf0	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5b710a80	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5bdcf6b1	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5d26e045	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5e706d11	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x64c5665f	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6be28f8a	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6d901870	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x704a346e	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x727807c2	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x774d2c0d	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x799254cd	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x858fe80f	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x868bed45	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x896d1b81	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e6552df	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8f576599	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9577fcbb	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9a9f0e61	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9d268488	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa1c0ee62	video_usercopy
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa6a9fce3	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa6b6b03b	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa7dff7c2	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa9c84b58	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xabc145f6	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb3cccaf2	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb4a89ba8	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb6046c43	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb8ea2b07	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbcb6a9c4	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbe6bec28	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc124796f	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc5da47f3	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc62ef71e	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc6c84512	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc8c978b2	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xca08b3b7	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xce6582e0	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd60f8294	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd7a92ad5	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd7d844c6	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd9f8df08	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdd2baa10	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe7f10c9e	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xeaf60f14	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf5820169	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf5facfe7	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x1574d28a	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x41a91760	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x5456779e	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x5b0e282a	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x5b24b732	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x7cf81e40	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x86ed9b90	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x9ae29dd8	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xb99e5183	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xbe5d2195	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xcb5f39fb	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xcdd2753d	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd04bfb16	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xef53d7c4	memstick_free_host
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x7937c093	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xd4d14fe4	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xfed37754	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x779c0899	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xa19d63cd	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xa630bec3	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x865b98e0	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xde49cd20	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x20ef80a0	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x558ab004	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6290c6e3	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7ad12dc4	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7f4cdf8a	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x9f0921b4	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa0202c08	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa23dd409	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xaa45fafa	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xbbd11544	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xc28ba3ec	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x3116f4af	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7d7bdb22	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x9c4e4d1b	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xae74f682	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xbf63e72f	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe1d9c91b	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x6ccc7082	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xea9d2e8d	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x7efc2349	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x21f94d92	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x23fc8a80	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2ac806cf	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x39f86aa1	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x5900cbdd	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x6e7ca49d	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x81ff5a9c	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xafd98a2f	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xddbfaa9b	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe5a83569	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xea0c54e3	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xed7cccfc	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xedaba890	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf4dc9d6c	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf865f374	tifm_eject
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x2ac0664e	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x56b9b154	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x596c7b93	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x64c791a3	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x1f28f749	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x2ad586ca	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x31c56624	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x532a5242	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x7f77a0ca	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x90ed06f7	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xb0ce8b75	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xc646f669	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xf09fc227	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xf7cd43fb	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0xe48dbb94	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x505babcb	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x5da6626b	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x88fc2bf0	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xb9473163	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x258277ce	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x5098549c	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x67ef5ca2	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xa7342cf3	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xb8c7e8a7	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xc2d1419e	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xddc0a904	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe7eb64af	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xec616b34	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xedc7bdd2	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x7df3a575	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa384ef09	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0171b4ce	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x044e7c85	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0821e1e4	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0839ae33	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0ad621fa	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0e2b8f6b	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x12e6b161	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x23590749	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2d161f45	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x512e581c	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x51cfe8bb	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x55ec128f	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5ce000fe	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6e817b62	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x705a5a1e	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7164e92d	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7743344f	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x79307566	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x829d63f2	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x841d36dc	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x998bfcb8	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9bde7a66	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa9b67b45	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xae3a39fe	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb80dd53a	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xba184bee	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc467d17c	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcb40c5fb	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd5e64a89	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd7a4d720	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd9c000e6	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdae267f9	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe1558adc	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe8f02bca	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xea1b4911	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf2f7234a	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfa7118e2	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfb7437ca	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x2d3cb339	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x4b7833dd	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x9960930a	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xa987ea0a	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xbb0f1dc8	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xc1655ae8	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x42e71285	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x760688e1	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xbbd04452	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x536651c8	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x61497e85	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x7d57adc6	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x73243ea7	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xdb7db2ed	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x040b7c56	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x247bc9fb	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x29342930	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x2a66e5c8	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x2c398f26	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x40aa3bc3	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x55dec460	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x58b5651c	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x6ab366aa	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xacb7111c	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x2e5625b7	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x74684879	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xbc292a9b	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xc21be63e	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xc3744403	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0xab91ed51	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xd83d36ac	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x055b9071	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1a5244dc	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a77d5e0	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35176cf6	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35e1edc1	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4cb66a55	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x516e87c7	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5b3a5b84	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6a08ed26	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7183f7a3	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8c29f7c6	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9fa52cf6	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa5b75e5a	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa600760	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaf607563	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbbd7a457	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xca1dfa84	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeca0348c	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xef9459f2	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x6918c6cf	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x8645c1b6	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x2cf9b1ab	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x2e34640e	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x3fa4a7cf	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4af0e7c5	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x513bcbb0	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5295be3b	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x68961bbe	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x70ece705	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7299d657	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x75a954c3	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x8d4e45c3	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9c0f1f32	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfcf3f66a	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x06f52df2	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x0ea12e06	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x30ee7470	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x6edce0c1	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x83aaadda	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x33b07eae	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xdb7a7f37	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x7276e48b	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x7eda43d5	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0cb8f8b	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/team/team 0x0c4a1c61	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x0fe23a4a	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x11fa0543	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x2cbbe1f2	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x370a660a	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x8308757f	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x8408bdbd	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x8cb29ef9	team_mode_register
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x00812da6	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x03487fb3	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x19a2e7cf	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x1edf5d43	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x5baf51bd	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x73ce0f80	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x8474b368	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa28f6dff	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd38d91ef	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf9776a68	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0xfb562095	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x0bd50a76	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x2ef63740	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x33c517b2	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x3beb8601	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x40fb4d11	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4f6024c6	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6842831e	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x916abdf7	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb0b6d8e5	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb8b56201	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe8dd4004	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xed9d947b	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xeefe799a	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x00bb9b84	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0fb1f939	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0fca575d	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x16c47489	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1c3f375c	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x21ba3804	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x26a478b7	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x29ecf4f6	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2c2b6e11	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3340783d	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x386abfb2	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3fe1a861	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x416b11b1	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x48fec113	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4edc0bf9	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x526379c3	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5c75f204	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x66abc15a	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6b2670f4	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6ea5038f	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x70e9b103	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x72b3c3a3	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7603e75b	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x77b853d0	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7853508d	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x815cd4c0	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x81b5f8ac	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8ba21bf9	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x90a2eb30	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x90e8c5b7	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x936ffbac	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x95e6db21	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9bc6f6c1	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa12388a2	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa229ff51	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb137468e	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbbca03ea	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbeafdc9f	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6b1c13e	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcae5aacd	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcb2ed3df	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcb8406e2	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd101c6f7	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd160e6b0	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd720ba41	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe8ed46e4	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf74afa70	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfb35bfec	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x09ac6969	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2b31db75	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2d5382dc	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5197c1ca	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5f20807f	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x71d2b388	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x82fd6c76	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x99cef8fd	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc2693039	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdd7cc576	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe13fcaba	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0d6f2099	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x129d0c53	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1e39d57a	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1e4ae759	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x2b63d5e3	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x428c9815	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x50d0d012	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6efdca2f	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7e4b0cb0	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x843444fe	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8e66187f	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9d141550	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa2888590	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xac76c21d	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb20a9184	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xbcdefd25	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc34ff4a2	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc9caa330	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xce687db7	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd4a4dc51	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdc5b4226	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe6ec769d	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf957df15	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x01618fd6	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x01675b18	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x062a051f	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b55d9c5	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bc393ce	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ec2d532	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x110ae39c	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x125bf89d	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x164dd7c2	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2310d9c0	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x234c653e	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x26bb2667	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x297bb0b5	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3257f17e	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x338773e8	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x35e61d54	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3658c6ad	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3694a2b9	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bd5fe90	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e1f071d	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x40113392	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x434b6a93	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43afd094	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x474614b2	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x48345c4d	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x49c5e238	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d20a97a	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e183cd9	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x511c8f68	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x51883f5c	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x51d8d6bd	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x52649fef	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55313990	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x578fe3b0	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ad21283	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f93be59	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x602aeaa4	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62a3e474	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x64e6fc89	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ecf7d33	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ee096f9	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x755177d7	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x777d2eb7	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x789b7571	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c89b69c	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d1a3106	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d55fa6f	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f2dd270	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f575c90	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x808aab11	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8371d718	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x86e081cd	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x87b7f678	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x89789979	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8aa61842	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b9aa6cc	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fa947e6	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x98d8b7ce	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x997a9765	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d63c9c2	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9dbf8262	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ebf8503	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5c7ece8	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7302be8	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaafc776a	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xad8252bc	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xae209f1d	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaeeefd36	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf11dd2e	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb770eb2b	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7ba97ea	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8141895	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbabcf311	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb03c6a4	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcc3452f	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf0860fb	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc07d5982	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0dfac90	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1be7e02	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc68a531f	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7b7ce43	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9960a13	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb1bae29	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb2e31cd	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb793ad2	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdbd14cb	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2c4cf3c	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3c3af08	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4580213	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4a8244d	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6d70c4e	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfdfea2d	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe465a583	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe509b4c6	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe894db6f	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8f09ddb	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea9ce19a	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xebcacddb	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xecfdeff8	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf01aa0d2	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0361ec9	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf059e4b3	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf397055a	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5f05317	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6c61c6f	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9890fc3	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa22dc7e	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x142df7e3	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x256f50e0	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x412c6379	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x44776ec1	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x50ec9278	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x757fce40	brcmu_dbg_hex_dump
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x84c9b231	brcmu_prpkt
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x885ae19a	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xaa5c8921	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xab618b74	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xccfb0a27	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcfabd740	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd0b1f950	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xeb945bde	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xee0b6d79	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0d494834	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x12149781	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13e9027c	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x22f00cdd	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2a3883df	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3141e319	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3920172b	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6374f550	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x68ae437d	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6cbc90f5	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x797d739f	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x85112635	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x90573a61	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9653456d	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa29e6ca7	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa9c1bf34	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xaeb94e8b	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb95ac284	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcfe6b4b9	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd28f85b8	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd4e90e8f	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xda627d6d	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe5515d4b	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xef985f8b	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf2b9694e	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x8d1e9d6b	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0b008b31	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0e56533d	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0e5eef63	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x10dd3326	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1ad8af7a	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2223c6a6	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x280d1a1c	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x29574faa	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2d2c2d6e	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3a6d3cba	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3e48e08b	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x40afdeab	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4625fa0f	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4db2708e	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4feed495	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x52f74268	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5385e271	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5af887a5	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5b0fa4a1	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5c1575cb	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5c1e6fcc	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5c406a3e	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6f4150d5	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7684efa7	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x90a8b294	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x928500e2	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x986fd260	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9b75affb	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9d6552cf	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9ed95870	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9f81d188	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa8e2f71e	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xaa2cdc8e	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xad56c00b	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb81d2fb5	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc71e9211	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcd96372f	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf09b15a	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd6f19f0b	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe44b891c	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfab44a6f	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x1412318d	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x22bb2fa7	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x3aa0dc39	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xf1ea6d0c	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0bd4468f	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0e815422	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1203e736	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1f69db48	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x243af7a5	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2eccaaa1	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3b84a8bd	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5decc3a1	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x600ce676	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6151cdfe	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7e4ce715	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x80e38717	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x819d0122	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8c4027a6	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x91aadfaa	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x91d3352e	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9a09cbf1	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9dc6fd54	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa0b38463	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa1d64200	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaa9f9a45	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba918200	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc3c337f3	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdcbf2353	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdccf53a9	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xddd0d909	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe415e70d	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe64fd448	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9bf66d0	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed436532	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfdcd5fca	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfe00aeb7	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0ad431eb	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x21d5f6ab	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x56b83274	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x57ec9d6b	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x591c52d5	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x68662d37	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x79a5f588	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x82f59717	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbc59abfe	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc8252f29	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xca623a61	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcc25c9b6	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd3a432a4	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf9b8b5ce	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xfee5289e	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x5b699389	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x35d0e071	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x4af2a551	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xef592c2f	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xf0b14ade	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x5dca57eb	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xce83ef7d	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xf9fc1da6	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x7cfd38e3	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xb0b66f52	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x23ca3985	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x4afcb80e	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x9b6eba5e	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x02f3348d	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x2c560b33	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xb2a4042e	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x43ae5092	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x5d5ed5c4	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xf4b26590	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x04db3aef	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x2283f162	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x53f1fbfe	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x934d0fc2	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb8c1664c	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xc4213a61	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xc6fe68da	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd28adf7b	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf73e0d38	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf8a2af1f	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x01f3cbb6	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x10e9be69	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x288ed1d2	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2931e1c0	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x29a0cc4d	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4922d789	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4d64dad3	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4e8bcf28	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x52747a10	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5d9e955d	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x60280ee9	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x69db8334	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x75c474ca	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x92535750	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9cd78208	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa8a50ea9	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xac9d0293	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb6261d97	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/parport/parport 0x08bab311	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x094f042e	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x114007bc	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x1a9745f5	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x24cbad4e	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x2bf2ba8c	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x2e52504f	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0x30c2ea45	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x358e44dd	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x38aa595a	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x462ff341	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x61628f9c	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x6c69b987	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x6f1ab8ab	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x73c9d586	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x74bbde82	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x75436f23	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x79f1addc	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x7ea68ec5	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x81150f58	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x8b162baa	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x94d6af60	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x9b2f552f	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xaaf98489	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xac93b176	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xbe445cb1	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0xc1471eae	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0xe4d12cff	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xe56297ba	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0xeaa91bc8	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xebf3940f	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xf06db878	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x9f32ecf4	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xd506dcd6	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x087ba152	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x2814774b	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x5b79ed39	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x60f5f03a	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x611a6ed7	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x6ded0039	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x71685c4b	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x79cb908f	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8736f68d	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x87d4dca0	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8e0fbd45	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x93b23281	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9c6b93b2	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xc2677cd9	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xcd20af46	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xd6a16525	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xe4f2554a	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xed14a7de	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x181063af	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x1c780fab	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x35d1d893	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x3fc98763	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x59fd0d01	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x67e1a279	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x7eb98b74	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x91254a40	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xc2f380a0	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xc3be2340	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf4f264b6	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x89be56bd	pccard_static_ops
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x08633eb2	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x1cd69d71	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x3602f3b6	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4b26c6c2	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x52a126d7	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x75250321	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa748705c	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf06f08cf	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf0a65093	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf250b120	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfb343e38	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x02cb4e59	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0966d9a8	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0fd8b7ee	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x113a7ce2	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x20472b65	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2073fe42	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x213c38e7	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x24f99f1b	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2768afce	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2f3da2fe	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x334b93ec	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3543278f	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3961fcce	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3ca3a798	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x556bb95f	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x597d5348	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5ab41f0c	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5bdb54eb	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5bf2e6be	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5fdfb5f5	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x61241595	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x640db2aa	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x64c3166f	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6927473d	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6aba11cd	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x728a0ede	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x744e99fb	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c57e7d5	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7e565436	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x827d901a	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x84d1ee65	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x854db124	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8d6019e0	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x94905c15	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x94d205e6	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x97d33840	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x99233c93	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x999d7470	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9b542a30	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa43c58f7	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa64dbfee	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xac5e06da	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaf1a8c56	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbe9e33a1	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc664fd43	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc6974c2d	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc821de35	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcc82d1bd	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd1becd3b	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd977468f	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdb0514b3	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe16f5bbf	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b6e7d0	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe6cb8c91	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe78becd9	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xec9f2db2	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xee31a48f	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf5190357	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf949f113	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x382e8f94	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x6ad7241f	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x74998bea	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x238e2d65	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xd54245ac	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0fefdf46	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x166d44f7	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1c5122b8	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x25afc813	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x507cb2d2	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x550a718d	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x728b0442	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7649d0e5	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb18b3fff	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb5e41661	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xbb508a51	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xdbe671f6	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xef43a3a5	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf7d42e75	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xfa83abf3	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xfd77c85c	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0be5d42a	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0c0f296e	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x190cff8d	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1ffca2b3	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x333c737e	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4a267ab5	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x546e2d5e	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6215558b	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x720d7070	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x780dbcc6	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x86488303	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8bf1e7b8	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x981f2c21	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9dc67853	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa0ec34ea	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xad7af806	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xaeb538f7	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb8c13918	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbe2930fa	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbf336e39	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd175a46a	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd1b24d06	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd1b5c232	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe26a84c8	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe9f8ab53	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xecf1bb3f	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf2157be1	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfbd3ed3c	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfd9d86cb	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x032cf828	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x2724d27f	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x45c397b0	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x70435588	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc974879f	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x0245e171	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x51d36658	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x76c8df3c	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x90ad346f	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb4536682	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xdcf7f46d	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xfff89131	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x260f6b3e	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x46bf0636	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x4d762f64	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x50d55a98	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x6e1b8086	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x924f6bb1	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xdc68854a	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xe244d077	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf2ab96e6	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x477bd33e	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xf4515452	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x08e3390a	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x0b0bdb5c	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x0ee359c3	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1ca2a983	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x35463929	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x65f39372	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x67b321bd	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x70fa21ec	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x776953f6	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9c13d2bf	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd234f9d0	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd9169fa9	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf57a2a60	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0252e36f	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0611c6c6	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x164f44d6	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x20fe3427	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3e1c44e3	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5d5b382f	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7c9d624b	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x81af7b81	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8d2fc418	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9130f203	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x913977e8	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9e556eb5	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9fe1648f	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xad783a68	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb5235aae	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb81f15be	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xbc5fbcc1	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe1889bbd	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf6045ca1	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfea68a68	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x09afeabe	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x15c0aebd	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x23154304	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x25503214	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x310be40c	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3b957a6e	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3d192be3	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x534d697f	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6ce960a7	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6de5db61	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x72a92d98	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x8510f5fc	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9dcadfa7	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa3371a2a	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc1a7511b	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcd23517a	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd1ee0243	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd82c9623	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd98c43c2	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd9b1a950	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xdb838dae	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xea1bf146	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xeb4f1207	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xeeffde3c	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfbc95e3a	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x39bc8b82	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x57c76457	ade7854_probe
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x003fc8a5	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x02de4dd0	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x054fb6af	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x16b657cb	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1910de1e	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1a1279c0	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1ce1861d	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x261bb932	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x28aadf46	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x35febc84	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3e54e054	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x40709f2d	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x479e3634	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x49054ec1	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4d3b1c08	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x50328e4b	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x51d96866	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5957752b	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x59adfe62	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6329f7e8	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x68c3a423	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6c89b628	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7879628b	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x852421d8	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8619158a	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8bed64ba	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8d163f32	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x968676b7	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x97d94d24	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa8fdd843	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb983b59c	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc2894ebc	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc31da356	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc384591c	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc8a4e0d7	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcd665bd6	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd1b71aad	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd33bf50f	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd5be2f58	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe75c6424	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf77604d0	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfa59adc5	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfb864728	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfc5f3d44	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x10e7a514	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x12752fbe	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1661e412	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1973d523	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x197daa70	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1ad8a36b	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2007a991	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x20117d1c	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x20bdbecd	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2290ffbe	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x235bd391	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2739d530	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2fffe794	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x33d88bc5	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3422bcbf	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x35534d63	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x373566e8	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x383cd724	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x38d0755f	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x40de3771	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4296dcaa	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4376555a	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x503a3dfe	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x50c4b259	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5151da22	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x52bc9457	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x558cae41	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x57ef04fa	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5a7becf7	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5e7d0bd4	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x65e82f3e	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x67d08798	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6aeeca3d	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6cb79244	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6f8956c1	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x70ecf3cb	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x77efbf9f	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x83d19f33	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x891f6ab5	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x91bae9ea	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92560581	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x99ee628a	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9b15819e	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9c2b7aa9	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9cee471c	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9d287bdc	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9d8a3c54	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9edca920	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa22a4c16	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa236216b	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa5be676e	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa87a1e41	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xab2f19a1	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb020c10b	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb79dd2fb	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbe0e1278	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc4f0467f	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xca8b4a5f	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcbaebcca	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce3a921e	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcf5a8a22	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd1cc0a66	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd70eb60b	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd8e683ec	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd93dcb87	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdcf91f4e	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe5c09fdf	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeb86369c	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf25f2469	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf4fb4162	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf53ea590	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfa844763	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfb466359	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x128ab85f	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x6a29da46	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0xf66c1d86	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x01db98b5	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x0eb5112f	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x0f6783a3	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2a993573	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2e7a14e7	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x32870492	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x332e0a7e	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5cd88315	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x810a4e53	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8cf0ba1f	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xda4860fb	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe63bb3a9	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xea451854	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x628247ca	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xd147f6f2	usb_serial_resume
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x26d11866	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x2855ab88	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x315c2ef3	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x46c969e8	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x477dcf6c	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x4f2f68f3	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x70435617	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x82882dd3	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x91b424ff	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc535afd5	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcb573d08	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf89f220d	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x05b8cfda	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x0f655355	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x440eeed0	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x51f16cdb	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x6374cdf8	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x812f45b6	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xf260b08d	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x2e900f78	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x63e772f8	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e91ca97	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x367ce26a	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x7bda5e6d	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x821e9390	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xa75ff962	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc7f2440e	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x00371875	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x38130f6c	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xbda71643	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xf33cd836	lcd_device_register
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xb2f1f9d6	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xf481adbe	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x5b27a31b	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xe883ae5d	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x4595c1c2	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x7c1fe2ac	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x9950d452	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x9c8fc21c	w1_add_master_device
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x244f1454	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x6973cb2f	bd70528_wdt_unlock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x8a540ca0	bd70528_wdt_set
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0564ed46	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x059a00d2	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x09abe592	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x115510b9	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1234261e	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x13ebcdba	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x178ee2c6	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x18aadd32	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1a830248	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1bf3fa57	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1d02adc7	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x36f95464	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3d08472c	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x40bf3ba0	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x40ed282c	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x54abfb7b	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5849f543	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5e4028ea	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5fb74333	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x659a7386	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x719e4d4e	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x778bc99a	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x87c14aad	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8872d153	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8c0fbc7f	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x90abba9b	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x968e8a93	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9e07837d	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa411e866	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb6dec2d8	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb726a5e5	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb78cf8a0	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbba11c70	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc71b26cd	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc88ae610	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcbcc1249	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xccd51b96	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe7a1ca1c	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe8bf51d8	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf684024a	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x10305d0b	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x45f8b90e	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x500a402c	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x55aaa19c	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x670888b6	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xdf9679b8	qtree_entry_unused
+EXPORT_SYMBOL	 lib/crc-itu-t 0xa2048e95	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba95c5c0	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0x5a742e56	crc8
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x03f599c7	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0x395b6d6a	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x466174df	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x4feade4b	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x56fc3ea0	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0x619ed575	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x84e0214b	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0xbbe7c23c	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0xc48fa976	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xc6e4cd46	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xcb990a55	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcea6747e	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xd212c9f0	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xeb13128b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0xf460a486	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0xf5ea5f5c	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0xf6acec20	lc_find
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x4cc636f2	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x765fd165	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xd02774b1	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x13d24f16	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1de3f19a	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2a0fd0d0	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2eacbe22	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3281fb74	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3545701d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35bdc817	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3b209a35	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x41e56a18	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x51022053	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x58f4c817	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x63230633	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6443babd	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66dbb4d2	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6cbcd95e	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x71432c37	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x78431876	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7aba5c0b	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7b51b66c	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x910096b6	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9e0ec162	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa9eb465f	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb7872388	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xba2ffeea	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc04b3f8c	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xcdfa135d	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd6205c02	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdac739f6	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf39e441c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf4cbffc3	ZSTD_flushStream
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x429531d9	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x44f231c2	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x77d43003	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x7dd2d61a	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x9e57f5f4	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xa2c0d069	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/802/p8022 0x08269738	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x49a89efb	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x7f24f12f	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xb7cfd965	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0cb57de4	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x0dd6f4a0	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x164f3e2f	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x21e907fd	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x22a05bbe	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x2ac6ee43	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x35453af8	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x385a2993	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x3ae71971	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x3cdafcdb	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d986cf9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x418bee06	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x41c697de	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x4654a921	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x4932e3ec	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x4a6663a1	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x545f82a9	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x5b0a7b93	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x62339ee5	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x630da0cb	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x64604917	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x7dd7f45d	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x7e3a0bff	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x80bbc6fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x82bbac9f	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x84f8d425	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x91df2c9f	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x95b89050	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x97c1115e	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0xa47498ba	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0xb6a290a4	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xbe6742d4	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xc05e25bb	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xc7c70acc	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xccf5feca	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xd2c7e9a1	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd41f41c5	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xdb1f32d0	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xdc06ddda	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6b1e55e	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xea19451a	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xf4b65d88	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xf5c467c4	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xfc07b5f7	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xfffbb590	p9_client_rename
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x113dd00f	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x14b404ca	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x7544f782	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x901b0a03	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/atm/atm 0x1bc9897d	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x1bca243f	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x345a0522	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x369d7fa5	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x38517862	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x41e3cbbf	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x6b9a3871	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x85d507ec	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x87b03cca	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xbd7c9df9	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xd9f63568	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0xdbb3d3eb	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xed13c4ea	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xf425627c	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x0b9db2ba	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x27f1bf51	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x5cc858bf	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x96b25be5	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0xa7dcdc97	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xb2e44748	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xccd9a757	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xf65e4f7a	ax25_linkfail_release
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x01c87850	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0da18144	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0f2a24c1	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1567d44f	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x16c29bfb	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x36f6aa83	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3d8362ff	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x409524e6	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x42e1d5a9	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x42e8d4b0	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x52cc1d43	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x53ccabca	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x659ed9f5	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6d631f99	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x734e7864	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x73b01ccf	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x79ddae6f	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7e1b82f5	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x84614900	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x89840f1e	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x89baf452	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8e2b49c4	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9006ffb3	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x93ebf630	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x953a6100	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x96842415	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x97c37da1	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9db6a562	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa054b6c3	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa3b1b481	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb3ea55cc	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcaf0d6cd	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcb72bf8c	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcf1436db	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd3c71e64	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd4b82d7c	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd6cc1d93	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xde57276e	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe1235019	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe2dfceb8	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe91b403b	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xebb6a5c9	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf98fe6ee	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfb9f6f30	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x008d5bea	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x2b958e04	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x41912cb5	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x867d182c	ebt_register_table
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x17c764ae	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x836467c7	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x8ee11a50	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xbb69ec37	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0xfdd524ac	caif_enroll_dev
+EXPORT_SYMBOL	 net/can/can 0x00e7682c	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x30125bd5	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x3fe900e3	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0x6a314006	can_send
+EXPORT_SYMBOL	 net/can/can 0xe6d9d0f8	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0xfaf37bdf	can_rx_unregister
+EXPORT_SYMBOL	 net/ceph/libceph 0x02d44064	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a3c60e0	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0x0bae20b8	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x0d9f7428	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x0f622489	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x0fe224b7	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x10849600	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x16632100	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cba3f20	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x1e2814d9	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x200e9571	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x211d95b5	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x21207294	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x218675da	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x26a9b726	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x29b79a82	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x29b9258a	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x317ac0ee	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3522979c	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x3599ae62	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x38a5dfa5	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x39073798	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b320cd9	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d094daf	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d0f2a7c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3de4b3ee	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x3e7db363	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x4119132d	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x414ffc45	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x45044d94	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x49a9b237	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x4dc750e2	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x4e238eb0	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x4eacb41e	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x4fe59e79	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x54bf3016	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a3cb705	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5c517173	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e2edaa9	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5ed47f74	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x6027f0ab	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x62d8fbd4	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x644b6e50	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x655bf797	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x66982026	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a301ed6	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d5f856e	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x6edb8cb7	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5c5f84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x70db1756	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x736a99bb	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x73778ae6	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x7406c284	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x747a10a2	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x7876bca0	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x7983aed9	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x7a13ca2b	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7fb7899a	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x842f8aec	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x84a2c7a0	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x8500aa59	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x85c6537d	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x8623b719	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87dbaa08	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x89749b52	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x8a8e3f61	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ab63ebb	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ae8688a	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x8bab636f	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8bd5050e	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e0303e0	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x92671fc6	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x96d9848b	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x98ee4c5d	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x999d7167	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bef8ed0	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x9c068b18	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9f2fa4d7	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1f444ec	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xa37a4d6c	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xa3c1bcce	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xa3d9d21b	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xa444fb1e	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa85c55d0	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0xaa28056a	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xac676827	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xafe726f5	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xb24302fc	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xb8de66f1	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbeea7281	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf210d2e	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc1735eca	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xc20c8ca8	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xc76b7978	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcba5b318	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xccc9fd86	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xccf01aba	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xcd0d2fa7	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xce5e718e	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xd01446fa	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd3236d5c	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4345b6b	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4c265eb	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd564e1b6	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd8867f45	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb70c544	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xddb6f33e	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe90551e0	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xe923bcde	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xef7e80ae	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xf562aab7	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xf7278c3c	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0xf7b44931	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xf96f1149	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb27a0ff	ceph_cls_lock
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xb0c9f16b	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xd6e0ba88	dccp_req_err
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x416267df	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xda21f066	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x040a57a3	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x1378990c	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x1667d955	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x2445d119	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x958c60f8	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xf367b3a0	wpan_phy_register
+EXPORT_SYMBOL	 net/ipv4/fou 0x19741ae4	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x1bf7bebd	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x61989a3d	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xff1adff3	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xea4a1ff4	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x35eb30a2	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x459e54a7	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x651cd599	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xbbd76e5c	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x2e5b591f	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x3fb665a9	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xd83f75aa	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xdda9a9f7	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x0525dbab	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xba07d012	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xd6c9810a	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x25ec78d2	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x9c61f42e	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xbb395897	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3806b8c0	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3eb0b771	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x652ab73f	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x6b4af6b9	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x75b3e2b5	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7e15be27	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xbabd69c7	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd967c375	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf1651d08	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x17eb62ff	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x83a5dd9c	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xb7a1ced2	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x08534ba5	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x14a510c9	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x56ed4134	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xb0830ccc	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x6e4fc917	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xd9e15422	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x0eef5f0a	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x61111c30	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x81047611	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x8cacad70	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x90372528	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xb2c7696c	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xce851307	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xe325070b	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xe3678bf7	lapb_unregister
+EXPORT_SYMBOL	 net/llc/llc 0x11c54b84	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x54d047db	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x616186a2	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x85642a4d	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xaac65133	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0xad2720b8	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0xfd3e5f12	llc_set_station_handler
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x02f05c95	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x063da4af	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0a566d53	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ce49ea0	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0e0e27fc	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0e818720	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x10a4f0cf	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x12205bdb	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1266e2d2	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19324e62	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1a9322ce	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1b02e8f1	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x226ff37c	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x270428b1	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x271c5d8a	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x281f3c5b	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2a2d154a	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2a5f6d0d	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2b257585	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x30e4f7bf	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x31af15b9	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x39251901	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3996aece	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3e246876	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x405b1e2e	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4a290263	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4bd7623d	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c32b499	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x512b5bb9	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x518de026	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x63c449cb	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x643aec4f	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x66009a48	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x66d1d77d	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x67007e28	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6a1f4ab0	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d078044	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x701e9d78	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x72a86d41	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x757e5598	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x78d52efd	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7d6db389	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7df8d72b	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8255fd66	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x868ad396	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x88004eb6	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8a160a90	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8da38dc5	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x94a2c4f1	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9539aa67	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9750e3f3	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9cff6097	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9f354b74	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa356c798	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa5d132fd	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa6795c9f	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa791b844	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa7f7af71	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaed3ddaf	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb5d564dd	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb8c4575a	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb8fa8f24	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbdf13826	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc7d508d2	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc8a76167	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcc08a615	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcc58f74a	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xce1adebd	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xce43b5f9	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xce94516d	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf3affce	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd024d8fe	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd2b4292f	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd4a11d5b	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd80108da	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xde66be2f	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdf4a938a	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdf7dc0ff	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe0fc520b	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe1e008d8	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe4549472	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe5701141	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe7f9522b	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe80bbe6c	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeae8da5b	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xed95c72c	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf40a29c2	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf713380c	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfa4fdfa0	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfa821ad3	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfb17a1b3	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfdb07f0b	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x057574a2	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x0cd4f2e7	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x7af6805e	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x87da856b	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xbcac3977	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xc7a8501c	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xdef1c603	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xed1a4879	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0199a50a	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0c3c70f8	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0fa32301	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x270d021c	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x67b3c461	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8a4e0d12	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9cf95c74	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xabc239ec	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbcbeef4b	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc072bc71	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xca68bf41	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd511ec88	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe427f535	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf9d99c8d	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xfcd82efc	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x2779f562	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x63021011	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x0401be38	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x1f26e08c	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x55d4ec85	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xe4136b43	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xf98c1529	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x170b0ea4	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x280ca042	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5684cb6e	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5811349b	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5bebafe1	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x9e259745	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa3d8e597	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd5576659	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xef488168	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x29cb9abd	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3e121dee	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x41b6cc96	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5126f336	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6e5f341c	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7e26281b	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8486c1b0	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8f36ed70	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9901dbd0	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa94d82be	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xab19bb05	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xacac3a7b	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbd249197	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc0ce432d	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc46712b7	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd7cab224	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd7d1de74	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe46e39d8	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf2e28e03	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xfcb9dcf1	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xff72540c	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x071705f9	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x092d7734	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x11cd21f2	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1948ab79	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x20020aa5	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2bbaeaf0	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3107389e	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3172dba4	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x36204674	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3ea15bc4	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x496834a8	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x58043301	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5a1771c1	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5d4e84f2	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7042425c	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x77c782d9	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x79ad41ba	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x88aff99a	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8e483546	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x90df4625	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9600422d	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9ee3c66f	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa2f25252	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xafc0fc97	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe9af7c38	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xec56af7f	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xee060221	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf5043309	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfcc44307	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nfc 0x08e6f8b6	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x2342079b	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x3742336f	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x4381aea0	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x60ac8590	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x6db97eaf	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x749d347c	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x771732be	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x7a30868f	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x7a37ae66	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0x82c35aac	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x91dac9b1	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x9816414a	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x9c869fca	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xb51d52e8	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xbc2c8793	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xbc77e53d	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xc1d0d6ae	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xc6eb5a5b	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xc89e8f44	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0xd55175a4	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xdfe4c066	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0xe137d6ef	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xed18a5fd	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xfab9a57c	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x75283534	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x9bf96824	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xc6ac9846	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xfe97e6d2	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x0dd478cc	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x28bd13c0	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x6e9a77a5	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xc2293095	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xd6a42869	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xdc5b49c5	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xee46a635	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0xf138dbdc	pn_sock_unhash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0528eeb7	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0712e37c	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x10f93d3b	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x37da020c	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x38220ab7	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4ab863e6	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4e0eb28c	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6744f3d3	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x73373d00	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9369ba3b	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xaddc2a1c	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb5730707	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xca2ba5a8	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd12c7aeb	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd13a1e16	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xdbebb24c	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xee19a2cb	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/sctp/sctp 0x37768eaa	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x4dfd550e	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x8c3e32ab	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xdd3a3b88	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x6d0f34d3	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x726b61b4	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xc54a3dba	xdr_truncate_encode
+EXPORT_SYMBOL	 net/tipc/tipc 0x25310892	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x8f1a508f	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0xd68c0c59	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xe2b37367	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tls/tls 0x2c23d3f7	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x4bf3b211	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0x727d01f8	tls_get_record
+EXPORT_SYMBOL	 net/wimax/wimax 0x64d485b6	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0xda0dfcf9	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x03995827	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x06b751e3	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x080207f4	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0876db55	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09862a60	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0a23c89c	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0dfe30af	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14862dd7	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14e28742	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x151c23bb	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1881c67f	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x23354611	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x29765911	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c2c5464	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2f1b23a2	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3289161c	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x33918a1c	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x34d9114e	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3650dd84	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38bcde2b	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38cb594a	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x429c0c4f	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4432e759	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x52699e04	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x53108da6	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x55b53efc	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x55c50cfa	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x595b0aab	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5990e7ee	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5b6047cd	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5cdad8ad	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5f052065	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x62aa3667	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6398ced8	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x64e7217b	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x66a6d139	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6753a9e4	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6a483789	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6b99c6e6	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6c24ab7b	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x755d0128	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7628c29e	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7cda3ba5	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d2bfdbd	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7fae8ba1	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x886a41e7	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x898ab010	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b24e88f	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8c014359	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8c21afa8	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8eed5011	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8f6149bb	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x91745dcf	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x98d5cb7d	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x99cb3e37	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9abf257b	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9af45125	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d7b7d02	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f129143	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f876de2	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f977489	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa05994d3	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa48008d0	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac4fa997	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaed10f56	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb03a1bf2	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb2bc1818	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb371b3e5	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4836be9	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb7bb68f5	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb7c634e8	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb9dc4f9a	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xba563c7a	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc967909	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce6b1d57	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xced5911e	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd1228446	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56ed7cf	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7f6f362	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdc1c93bc	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe0abe218	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe3456e76	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe34608d0	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe484103b	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe50e55be	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe5f96359	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe66fca0c	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe7e94172	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeb1e4fe7	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xecee4863	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xed04761d	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf34bb45b	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfcace4f6	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd459c5b	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfdd7f68b	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfebf3102	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/lib80211 0x2a8bcf48	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x59319b0c	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x68108a82	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0xab3e358a	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xbc31c3c0	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0xfed166dc	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 sound/ac97_bus 0xb2a45f57	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x3e11784a	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x14bc4f06	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x5fcbfe37	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xcc4274f0	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xcfbeb23f	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1724fb56	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x17fcf66b	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1cff6e14	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2f853c43	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5f7f98	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x56efbc6b	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdaf3383a	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x3d1a28f0	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x00784162	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x00f40c3c	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x0339defa	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x06eea359	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x0af4ccf1	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0x0b57065c	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0x0d8acb4e	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0x11182fc6	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1a3cf435	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0x215c132c	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x2431b5ee	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x30e11a72	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0x384d2998	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3fbe2f6a	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x43594836	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x4a2bcd83	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4d44f50f	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0x50687c2a	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x50ba79c8	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0x56450db2	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x5d328b4a	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x628b3465	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x63988181	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x6922c519	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x7849f055	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0x7c87ea58	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x7e240d5f	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x86f5472f	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x89a94c4b	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0x8c08c589	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x97c23b87	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x9cb338f6	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa4cdfabe	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0xac2229dc	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb5707fc7	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0xb8a960bc	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0xbe2c822d	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0xc174d275	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xcc409c80	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0xcd089dfc	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0xce3ca308	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd 0xd6d62457	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xde09948e	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xe8a8fe52	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xe8b4bf6a	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0xec3100e4	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0xf7bfe670	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x5bd4623f	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x03eef4a5	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x107f789a	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x15330792	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1826461c	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1a9c9b6b	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1aae6f19	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1e1305af	snd_pcm_notify
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1f5df5ea	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1feee74a	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2a16cd77	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2c5d42a4	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2f728506	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x375b0554	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3846d4f9	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x49b93a36	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4c5b29b1	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4d9b6d35	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x527cae56	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5b1055f3	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x60186b0d	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6335d5d8	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6cdac82e	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x79f1e4f6	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x853a06d9	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x854e1c27	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x92d43e99	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9722cfa7	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9958f277	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa0f95d17	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xaa4a1cc2	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb83dc2c6	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbbe6b1fd	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc1fe0e9f	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc378a280	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd7bf7907	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe0d8e58c	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe29753e3	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe7f48ced	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe86a24e2	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf085085d	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf0c5ce6f	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf2ad80d9	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf9f89d94	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfae66633	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfc5dcfeb	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0198c08b	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0b7a2f0f	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0cf6b6aa	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1b867b57	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x230b8b5d	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x36e7809b	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x429f49dc	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4757b8e3	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x47e0fcb8	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x533f7fef	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5535fdb1	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x67e60be8	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x73725802	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x7d8d6b7c	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x827715c2	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x90d4c155	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xb68c9728	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xca31822b	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd61a5086	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe7dfaae7	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0xcf7e1565	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x09b7ee9a	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0x12e7a1b0	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x1cde7d52	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x21019bb0	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x25f8952a	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x3e45925b	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x4726e2f0	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x58f240c8	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x77e16f7c	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xa1ecdeab	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0xea8a19b7	snd_timer_resolution
+EXPORT_SYMBOL	 sound/core/snd-timer 0xf4254b68	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0xf7446be4	snd_timer_pause
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x11f63da6	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x11334202	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x2b429530	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x308321f7	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x499d328f	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x56fb9b66	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x67b98f10	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x67d00818	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xa6ef9e46	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd4c4054f	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x545baded	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x7b0d732d	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x9f39c304	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xc9882123	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xca6e7dad	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xe8a74efe	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x04721f58	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1725d5dd	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1e5e07aa	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1ea802a8	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2504c3a0	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2910fb03	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x36c7fb02	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x41a1f4f5	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x4e21f83f	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x64e91fc4	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6cb0bab4	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6d0ce0ac	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7fcc9295	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x89d98e4b	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa5275aa9	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd12b2825	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd2658bc8	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x073ed0b2	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x2659fc23	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xa187c5ac	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xc82e4b83	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x24eec1c5	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x92ad9468	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xe06641fb	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x7c0b3862	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0a3d81a7	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0d47f62c	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0f315fd7	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1fdc60ff	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2252e3f8	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x24d3cc2e	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x288c5098	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2e0b9532	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x38f5df34	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3bafad4e	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3cb5a5ab	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x44885157	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4525f171	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x549d6590	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x560f651c	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5ec5701b	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x621bca49	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x65a976f2	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x661c2e75	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x693b32b4	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6afa8050	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6fe628e1	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7034d37b	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7e10cc20	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8da4cfbb	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x94ef6161	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9573e25d	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa3ace965	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa872bdab	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xad055b2c	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb07e8780	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb18092cb	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb71530dd	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbb3ab410	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbd537262	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc4be4371	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc864bc3b	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xca7ce0f3	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcad40728	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcb25e717	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd99f25bd	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe0fc1fe9	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe7dcd98b	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xeb631f6c	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf59875b0	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf7a8c4ea	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfcea71f3	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof-nocodec 0x40bbde51	sof_nocodec_setup
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xfcfe1c8d	__snd_usbmidi_create
+EXPORT_SYMBOL	 vmlinux 0x0013f049	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x002561a1	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x0028bab7	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 vmlinux 0x0028c942	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x0030c3df	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x003f44db	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x004220db	caam_strstatus
+EXPORT_SYMBOL	 vmlinux 0x0047b473	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x005f138b	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x0067080e	ir_raw_handler_unregister
+EXPORT_SYMBOL	 vmlinux 0x008b46e1	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x009d816f	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x009e7906	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x00a8e909	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0x00bd1297	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x00d2fe46	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x00dbac73	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x00dcc0a5	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x010b2e6e	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL	 vmlinux 0x01153934	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x011a9e53	elf_hwcap2
+EXPORT_SYMBOL	 vmlinux 0x01383a3f	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x013a8163	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 vmlinux 0x01423470	drm_dp_aux_init
+EXPORT_SYMBOL	 vmlinux 0x0142fc53	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x01505d85	imx_scu_call_rpc
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015fafb9	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x0160aec5	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x0178cdd3	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x01830813	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0198a2bd	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x01b9efef	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x01c2c5ab	drm_add_edid_modes
+EXPORT_SYMBOL	 vmlinux 0x01c72108	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x01d3cb74	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x01f9d39b	of_node_get
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020c0f80	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x0211eddd	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL	 vmlinux 0x0226da0b	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x023293f9	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x023e0b1a	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x0243c805	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0266b831	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x027bd091	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x027f856a	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x02865353	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x028d0c3b	drm_mode_create
+EXPORT_SYMBOL	 vmlinux 0x028f578e	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x029a5635	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02d42ac4	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x02f5e359	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x02f809ac	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 vmlinux 0x02fca2c3	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x0303897b	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x03052029	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x031cbac5	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x03406b85	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x0344ce39	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x03605b91	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x03656186	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x036612c1	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036f2bb5	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x037634f5	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037d4e89	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x038ddf33	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x03963566	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x0398479b	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x03ba39b0	v7_flush_user_cache_all
+EXPORT_SYMBOL	 vmlinux 0x03beb002	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x03c8481e	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x03f22328	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x03f2e837	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x0410037d	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x04245036	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x04323a18	drm_writeback_connector_init
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x04498886	drm_print_regset32
+EXPORT_SYMBOL	 vmlinux 0x044fb722	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x045a6c2d	drm_property_lookup_blob
+EXPORT_SYMBOL	 vmlinux 0x048336dd	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 vmlinux 0x04a37a18	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x04ad8245	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x04b3e359	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x04c6b4c3	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x04cd4e26	sm_keystore_slot_load
+EXPORT_SYMBOL	 vmlinux 0x04d7ed39	drm_client_release
+EXPORT_SYMBOL	 vmlinux 0x04eb54f7	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x04f0d632	drm_primary_helper_funcs
+EXPORT_SYMBOL	 vmlinux 0x0508088e	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x050e9bc7	drm_modeset_lock_init
+EXPORT_SYMBOL	 vmlinux 0x0520d0f5	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x053866ab	drm_helper_force_disable_all
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x05536d01	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x05629de3	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x056a7aac	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 vmlinux 0x058cb964	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x059d8b3f	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x05ab9214	cnstr_shdsc_sk_hash
+EXPORT_SYMBOL	 vmlinux 0x05b0caa0	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05be261d	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 vmlinux 0x05be87b7	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x05ca18a2	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x05d6aa49	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x05dbcdd1	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x05e13eb9	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x05e4748a	has_capability
+EXPORT_SYMBOL	 vmlinux 0x060057fe	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x06074d01	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x060845dd	drm_connector_set_path_property
+EXPORT_SYMBOL	 vmlinux 0x060c5e63	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x0640cb13	lcdif_vblank_irq_clear
+EXPORT_SYMBOL	 vmlinux 0x0658cf47	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x065a37c9	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x065d5350	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x06613750	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x06657112	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x0668b595	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x066bf038	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x06724b38	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x067ea780	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x068ea13c	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x06a5dba5	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x06b2ac02	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x06b3caf9	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x06b7a1e7	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x06c5f357	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06d15fd1	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x06dc0f26	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x06ec4d64	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x06ee45d1	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x06f08346	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x06f2a484	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 vmlinux 0x06f86a33	send_sig
+EXPORT_SYMBOL	 vmlinux 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 vmlinux 0x0712d1cd	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x071809e5	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x07274ca5	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x075a2c33	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x07607fbd	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x076d5500	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x07735a0a	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x077af67c	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x0788268b	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07abcad4	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x07b68563	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x07bfe10d	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07d1222e	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x07e2c085	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x07ff45ae	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x0815aa9c	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x0816ef5b	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x081c54b4	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x083aee97	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x084e008b	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x086253a7	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x08711d18	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x087f504b	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x08883515	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x089f37a6	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x08b14fec	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x08b35518	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x08c746b3	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0x08cfe945	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 vmlinux 0x08d1dc34	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x08dd6dd9	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x08e58b6f	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x08f2ab55	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x08f3c90f	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x0906ba15	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x092732a8	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x09660574	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09a07638	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x09ad85a1	sort_r
+EXPORT_SYMBOL	 vmlinux 0x09c6b5cc	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09ca1a64	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x09cca794	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09e913db	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a112c78	drm_encoder_cleanup
+EXPORT_SYMBOL	 vmlinux 0x0a167b23	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 vmlinux 0x0a20d621	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2fa60d	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x0a30c9fb	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL	 vmlinux 0x0a31b00e	drm_mode_probed_add
+EXPORT_SYMBOL	 vmlinux 0x0a3ae35f	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x0a3b2df0	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0x0a6402f4	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x0a669abd	drm_connector_update_edid_property
+EXPORT_SYMBOL	 vmlinux 0x0a7026c2	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 vmlinux 0x0a845a15	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x0a8714e1	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x0a8cd7b2	sock_register
+EXPORT_SYMBOL	 vmlinux 0x0a94f357	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x0a96b96a	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0x0a97f3a9	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa92814	key_validate
+EXPORT_SYMBOL	 vmlinux 0x0ab7fd43	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x0ac47aff	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x0ac9b77b	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad0fcf1	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x0ae547ed	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x0ae63743	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x0af9f6a5	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x0b13957e	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x0b154724	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x0b1b939e	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b221b7f	dpu_bliteng_set_id
+EXPORT_SYMBOL	 vmlinux 0x0b406fbd	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x0b40d7cf	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x0b44d13d	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0x0b617520	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b7bf566	drm_master_get
+EXPORT_SYMBOL	 vmlinux 0x0ba0b938	vm_brk
+EXPORT_SYMBOL	 vmlinux 0x0bac6d7d	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x0bb0cfa4	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0c0a8bb5	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x0c2344eb	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c4b15d6	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x0c59eef0	fget
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7f9e2a	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x0c8647c8	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x0c8ca1cc	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x0c942086	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x0c9bc286	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x0ca54fee	_test_and_set_bit
+EXPORT_SYMBOL	 vmlinux 0x0ca828ac	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0ce88552	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x0cf7160d	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0d018532	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d0b210d	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x0d167d4d	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x0d1f3cf4	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0x0d447025	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d567c2c	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x0d570dfe	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d676a4b	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x0d7bf0e0	rproc_resource_cleanup
+EXPORT_SYMBOL	 vmlinux 0x0d7e2910	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x0d81e14b	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x0d845c3b	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x0d8f0565	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x0d9956ad	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x0daeb458	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x0dba5e9a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x0dbef5ae	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x0dc0acbb	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x0dc1a78c	bin2hex
+EXPORT_SYMBOL	 vmlinux 0x0dfaab4b	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x0e0c13ad	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1c8804	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0e3cba39	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x0e4c95c1	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x0e583ebd	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x0e99267a	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x0eb45728	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x0ebe1fec	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x0ec987ac	drm_client_register
+EXPORT_SYMBOL	 vmlinux 0x0ecc142d	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x0ed923fe	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x0eea0399	strscpy
+EXPORT_SYMBOL	 vmlinux 0x0ef721a7	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x0ef9f90b	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x0efda491	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x0f0565a6	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x0f06957f	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f1aa730	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x0f1cba4b	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x0f28c9cd	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x0f36723a	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x0f387c11	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x0f3a4eee	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x0f3c878f	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x0f3f8db6	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x0f50b712	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x0f53618d	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x0f67cabf	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x0f69e11b	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f8db694	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x0f916450	drm_dev_register
+EXPORT_SYMBOL	 vmlinux 0x0f935fb6	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x0f9bab81	drm_client_modeset_probe
+EXPORT_SYMBOL	 vmlinux 0x0fab57d4	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x0fad7eab	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x0fae0027	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x10018cb0	__pv_offset
+EXPORT_SYMBOL	 vmlinux 0x101d05cd	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x10277157	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x1037df0d	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x1043958b	drm_vma_offset_remove
+EXPORT_SYMBOL	 vmlinux 0x10467a29	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x1048ded1	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x1056992d	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106a9e34	proc_create
+EXPORT_SYMBOL	 vmlinux 0x106f13ab	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x10739f1e	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1085ebcc	drm_encoder_init
+EXPORT_SYMBOL	 vmlinux 0x109d0eca	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x10b2874c	drm_connector_register
+EXPORT_SYMBOL	 vmlinux 0x10b4ac37	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x10ba2eb1	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x10ba8519	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10de2b90	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x10df4f10	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x10e1d77c	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x110dfe0f	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x111b21e1	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x112b97cd	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x113d58d3	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x114f22cb	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1175caa8	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1189e3a6	cnstr_shdsc_xts_skcipher_decap
+EXPORT_SYMBOL	 vmlinux 0x11984bee	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x119b50e7	elf_check_arch
+EXPORT_SYMBOL	 vmlinux 0x11aebbf6	register_sound_special_device
+EXPORT_SYMBOL	 vmlinux 0x11c1e034	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x11c916dc	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x11cde6b7	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x11d3a3e0	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11ee5448	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x121f1381	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x1231895f	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x1235b478	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x1242772f	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x1244d483	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x124bad4d	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0x12580d64	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x12585e08	_raw_spin_unlock
+EXPORT_SYMBOL	 vmlinux 0x126228f6	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x12623b91	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x12654498	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x1269be01	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x126a4914	inet_release
+EXPORT_SYMBOL	 vmlinux 0x128c683c	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 vmlinux 0x128f9122	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x12925d9c	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x129a5cd5	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12c76ed9	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12dbe715	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x12f19edf	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x13169b01	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x132d4aa1	i2c_bit_algo
+EXPORT_SYMBOL	 vmlinux 0x1343bcf1	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x13510769	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x1358aae4	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x135a12cf	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x135c829e	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x1376c632	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x1396edc1	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x139fe297	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x13bec41d	release_bus_freq
+EXPORT_SYMBOL	 vmlinux 0x13cdc77d	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13dd4e22	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x13ec6a28	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x13f0df76	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x13f11b31	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x140070f3	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x140276c8	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x141806b9	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x141c7044	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x141e1237	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x14478039	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x144aa521	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x1455a33b	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x1457c509	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x147223cc	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x1479da47	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x148eee9c	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14932ccb	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 vmlinux 0x14aa73f6	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x14b58dd9	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 vmlinux 0x14c14e34	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x14c4fc1d	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL	 vmlinux 0x14dabb90	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 vmlinux 0x14dadb2d	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x14e3c438	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x14ecae35	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x14ee25c2	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x14f44b42	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150cc6ef	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x150e5a56	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x150fb5ad	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x1514135d	path_get
+EXPORT_SYMBOL	 vmlinux 0x151b065d	seq_write
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1524ec83	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x1553b0dd	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x15550373	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x15566dc9	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x1559f84c	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x15611685	atmel_i2c_enqueue
+EXPORT_SYMBOL	 vmlinux 0x156b4ff7	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x158eb073	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x15a9857e	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x15b6235b	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c5cdff	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x15c880c0	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x15d433c0	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 vmlinux 0x15eed001	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x16033866	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x1615eeaa	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 vmlinux 0x16194598	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x1647c9ce	drm_dp_link_configure
+EXPORT_SYMBOL	 vmlinux 0x16525cc4	xa_find
+EXPORT_SYMBOL	 vmlinux 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 vmlinux 0x16adbf67	down_killable
+EXPORT_SYMBOL	 vmlinux 0x16af51df	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x16c5319a	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 vmlinux 0x16cc0016	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 vmlinux 0x16e20d69	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 vmlinux 0x16ed4000	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x170f1d07	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x170f7a9b	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x17113425	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x1714d231	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x172d060d	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x1738c19e	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x174dfe82	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 vmlinux 0x1751f714	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x175cd9d2	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x176c38c0	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x1779b27a	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x177efd0a	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x17a70977	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x17a9b196	drm_gem_object_init
+EXPORT_SYMBOL	 vmlinux 0x17c06545	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x17dcb0bf	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x17ddc82d	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x17f591c6	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x18025b9b	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 vmlinux 0x18099d7a	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 vmlinux 0x181e474e	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x181ffe80	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x182d6ec8	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x183903d0	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x183d93a0	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x184e0f4b	sm_keystore_slot_export
+EXPORT_SYMBOL	 vmlinux 0x1851f47a	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x186aba73	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x187f673f	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1895caf4	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x18a6520d	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x18b113e8	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x18bbd40f	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x18c385cb	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x18c8ec19	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 vmlinux 0x18cddfb7	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x18e3be95	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18f2c4ed	drm_color_lut_check
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x1922cfc2	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x192580ce	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 vmlinux 0x192fe2ea	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x19357896	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x194b3df7	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x194ccde9	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x195d4ac9	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x1963d68d	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x196fe1b8	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x197f01ca	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x1991bc7b	mii_check_link
+EXPORT_SYMBOL	 vmlinux 0x1999cf1b	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19a1df6a	drm_panel_init
+EXPORT_SYMBOL	 vmlinux 0x19b385e7	init_net
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19e60c02	drm_panel_remove
+EXPORT_SYMBOL	 vmlinux 0x19f18300	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x19f2a279	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x1a015c32	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x1a1c7036	drm_gem_fb_destroy
+EXPORT_SYMBOL	 vmlinux 0x1a21d691	__ksize
+EXPORT_SYMBOL	 vmlinux 0x1a3d9c3e	drm_irq_uninstall
+EXPORT_SYMBOL	 vmlinux 0x1a3fb4ed	rpmsg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 vmlinux 0x1a4af81b	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x1a4cd81e	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 vmlinux 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL	 vmlinux 0x1a73d629	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x1a77ad27	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x1a7bc9ef	xxh32
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a8467d4	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x1a958c6f	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1a9adc14	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x1aa08163	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x1aa5d9ff	arp_send
+EXPORT_SYMBOL	 vmlinux 0x1aa86d18	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x1ababd5b	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x1aca9159	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x1acc25ef	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x1ad1f2e7	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x1aded990	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x1aefd17c	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 vmlinux 0x1af30674	drm_fb_helper_prepare
+EXPORT_SYMBOL	 vmlinux 0x1affe37e	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b08a544	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x1b185f0a	drm_bridge_remove
+EXPORT_SYMBOL	 vmlinux 0x1b25d685	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x1b25f187	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x1b30cb84	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x1b3cbc29	drm_object_property_get_value
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b67b23c	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x1b6c70c7	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b77ee0d	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x1b840aa8	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 vmlinux 0x1b99bd7b	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 vmlinux 0x1b9c7f9b	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x1ba11389	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x1ba68ef8	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1ba6a7fe	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 vmlinux 0x1bb829d9	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x1bc69cd0	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x1bc9433e	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x1bdac95c	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x1bdb30af	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 vmlinux 0x1bdc8e6e	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x1bde6a64	would_dump
+EXPORT_SYMBOL	 vmlinux 0x1be20e5c	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x1be942a9	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x1bf54d0f	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 vmlinux 0x1c11a1e0	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x1c15cd27	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x1c2a42eb	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x1c58b532	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x1c5efe95	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x1c777c5c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x1c837ad1	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x1c842da5	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x1ca509eb	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x1caf4c2b	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cc91d6c	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x1cce44e3	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x1ccf8d1a	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 vmlinux 0x1cd1e0cf	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x1cd911d9	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x1cf2c5b5	register_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x1cfc3eb3	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x1d04e6ea	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x1d082e4a	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x1d1154e1	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 vmlinux 0x1d160dfe	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x1d19722a	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d2f2f20	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 vmlinux 0x1d32900b	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 vmlinux 0x1d32d045	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x1d34ade5	drm_modeset_lock
+EXPORT_SYMBOL	 vmlinux 0x1d385b0f	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x1d3a2105	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x1d44c73c	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x1d61f1b0	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x1da8e9ff	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x1db092c7	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x1db929c1	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x1dba6926	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 vmlinux 0x1dbae328	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x1dc1cb27	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0x1dc44a5b	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x1dcca217	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x1dd295eb	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1ddbad08	drm_mode_get_tile_group
+EXPORT_SYMBOL	 vmlinux 0x1e0373fc	imx_scu_irq_group_enable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e12d948	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e1f04a5	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x1e29705c	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x1e4f13c4	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x1e5b935e	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e74be32	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x1e8094d9	key_put
+EXPORT_SYMBOL	 vmlinux 0x1e875830	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x1e96f43d	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x1e9c21d1	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x1e9d6939	drm_mode_object_put
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea03b3f	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb64646	div64_s64
+EXPORT_SYMBOL	 vmlinux 0x1ec66492	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x1eca13c9	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 vmlinux 0x1ecfab55	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1edf8882	update_region
+EXPORT_SYMBOL	 vmlinux 0x1ef73563	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x1f0ca117	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 vmlinux 0x1f1824b5	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x1f1de7df	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0x1f288f52	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x1f28ec71	misc_register
+EXPORT_SYMBOL	 vmlinux 0x1f34a5e8	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x1f4a7930	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x1f4d514c	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x1f4d5778	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x1f514a1c	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x1f574d19	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 vmlinux 0x1f9a5824	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x1fa1a8b0	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x1fb70615	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd6b621	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x1fe4f0d8	get_mem_type
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1fe9c89b	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x1fffa105	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x20070ea2	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x202c832b	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2061cfaf	cnstr_shdsc_rfc4106_encap
+EXPORT_SYMBOL	 vmlinux 0x20645642	drm_debug
+EXPORT_SYMBOL	 vmlinux 0x206831a1	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x2069ee55	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x208eebc9	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x20a08bd0	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x20a1f189	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20ab3e17	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x20c20491	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20ddb1ee	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x20e62065	mmc_first_nonreserved_index
+EXPORT_SYMBOL	 vmlinux 0x20e9ee6b	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 vmlinux 0x20eed869	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x20f41104	key_link
+EXPORT_SYMBOL	 vmlinux 0x20faa8d0	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x2101798c	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x2102a153	mntget
+EXPORT_SYMBOL	 vmlinux 0x2109226d	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x210c952c	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x21110dbf	mmioset
+EXPORT_SYMBOL	 vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL	 vmlinux 0x21188f8d	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x2128d9af	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x21497fdd	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x21548196	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x216d759a	mmiocpy
+EXPORT_SYMBOL	 vmlinux 0x216fda7a	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x2172f6b6	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x21b09e75	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21ce11fc	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x21d39f63	drm_vma_offset_add
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21f135ce	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x22115bfe	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x2219a582	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x221d66c3	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x22234e64	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x22434990	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x224429d9	caam_jr_enqueue
+EXPORT_SYMBOL	 vmlinux 0x2247b464	path_put
+EXPORT_SYMBOL	 vmlinux 0x2258938b	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x22748582	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x228a78d4	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x228b722a	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x228c1324	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x229499b1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x229f16da	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x22a472b6	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x22aa7513	mount_single
+EXPORT_SYMBOL	 vmlinux 0x22aea0c5	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 vmlinux 0x22b000d7	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22c21bf1	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x22d09855	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x22e60dec	drm_panel_enable
+EXPORT_SYMBOL	 vmlinux 0x22ec2bcf	drm_release
+EXPORT_SYMBOL	 vmlinux 0x22f5c5ea	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x22fe6a9f	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x2300e224	dst_release
+EXPORT_SYMBOL	 vmlinux 0x230b4dec	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x231055d4	drm_panel_add
+EXPORT_SYMBOL	 vmlinux 0x23196124	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x231b20b4	serio_open
+EXPORT_SYMBOL	 vmlinux 0x232001c9	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x235f1715	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 vmlinux 0x2375ac34	drm_syncobj_create
+EXPORT_SYMBOL	 vmlinux 0x237f53df	drm_noop
+EXPORT_SYMBOL	 vmlinux 0x238551f2	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x238bf54a	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x23a93717	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x23ab78c3	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23bbdeed	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x23e1a0b0	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x23eea787	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x24026141	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x2408ad54	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x241066cb	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24333a6a	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x24655ea6	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 vmlinux 0x246790df	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x246ea205	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2479f708	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x24903ec2	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x2496b30e	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0x24a9d729	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x24af7c2e	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x24c6a2d3	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x24d0546f	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e42937	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x24e6b540	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x24ec221e	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x24f653fb	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x24fb9d86	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x250113b4	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x25060268	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x250c5bca	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x2516ec6f	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x252ae297	drm_dev_alloc
+EXPORT_SYMBOL	 vmlinux 0x2534cc58	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x253bac2d	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x2542c1fc	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x254bd57e	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x254c42fd	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x2556ec08	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x255e4142	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257ae45c	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x257d9ca3	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x257f75e5	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x257ffc4a	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258a0944	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x25957175	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 vmlinux 0x25a64751	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 vmlinux 0x25a8a9fd	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x25c2251d	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x25cc1be9	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x25e2e374	current_time
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25ece266	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x25f2cf83	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x260e5957	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x2625c9c7	lcdif_vblank_irq_enable
+EXPORT_SYMBOL	 vmlinux 0x2626f302	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x26366666	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x26645036	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 vmlinux 0x2683cd01	bmap
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x268f5bb5	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x2690e6c1	_find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0x269b2018	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x269ccb56	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x26b358c0	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0x26c6354b	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x26c6f87c	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x26ce3cca	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x26d71904	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x26df4d40	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x26eaa76e	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x26f34cc0	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x27192513	follow_down
+EXPORT_SYMBOL	 vmlinux 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273c80f5	drm_debugfs_create_files
+EXPORT_SYMBOL	 vmlinux 0x2741da17	fput
+EXPORT_SYMBOL	 vmlinux 0x2746378d	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275442bd	drm_master_internal_acquire
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x276fd642	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x2770e6c2	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x278e7df6	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x27992a41	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x279b5b88	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c68705	node_states
+EXPORT_SYMBOL	 vmlinux 0x27cc44d0	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x27d23c3f	drm_vma_node_allow
+EXPORT_SYMBOL	 vmlinux 0x27f3e37b	drm_gem_mmap_obj
+EXPORT_SYMBOL	 vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x28576c87	drm_modeset_acquire_init
+EXPORT_SYMBOL	 vmlinux 0x2860f593	drm_bridge_add
+EXPORT_SYMBOL	 vmlinux 0x2868e665	lcdifv3_vblank_irq_enable
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x2878e15a	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x288b501a	drm_panel_unprepare
+EXPORT_SYMBOL	 vmlinux 0x28a1cb00	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 vmlinux 0x28a3a350	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x28a55df1	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x28b62bb9	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 vmlinux 0x28c216dc	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x28c72d31	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x28dc9ecd	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x28e80c37	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x28ea471f	drm_atomic_state_default_release
+EXPORT_SYMBOL	 vmlinux 0x28f65f9d	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2903d0ed	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2920a181	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x29470bae	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x294e6729	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x295fa563	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x2993b444	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x29a47fe9	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x29bb7a90	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x29c954d7	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x29d553f4	mem_map
+EXPORT_SYMBOL	 vmlinux 0x29d9f26e	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x29ed5324	__bforget
+EXPORT_SYMBOL	 vmlinux 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 vmlinux 0x2a0535f9	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x2a0e4b72	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2a139258	tty_name
+EXPORT_SYMBOL	 vmlinux 0x2a2783e2	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a3aa678	_test_and_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x2a4a11f1	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x2a602779	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2a692d75	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x2a846a07	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2a918d9e	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x2aa7d7bf	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x2ab54b41	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x2ab87c4b	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x2acb37d8	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 vmlinux 0x2acfa402	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 vmlinux 0x2adf2389	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x2aee2ae1	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x2afb8e61	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x2b286236	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x2b3202fd	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x2b3f957a	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x2b539df6	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x2b5ab97d	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b70fd9f	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x2b721c0d	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x2b744df8	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x2b99722a	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x2b9c7db3	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2baa8538	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x2bb33077	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0x2bb44121	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x2bc66f43	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x2be0f12d	dql_completed
+EXPORT_SYMBOL	 vmlinux 0x2bef4bb8	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x2bf2261c	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x2bfe1662	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x2bff5887	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x2c08beed	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x2c104fbd	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 vmlinux 0x2c30169b	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x2c36f1ed	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x2c43a94f	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x2c43d7c3	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x2c5c3100	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x2c674aef	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x2c6b6974	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x2c7c8e9a	pcibios_min_mem
+EXPORT_SYMBOL	 vmlinux 0x2c7e15b7	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x2c81ec75	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c8c27a4	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x2c92142f	drm_universal_plane_init
+EXPORT_SYMBOL	 vmlinux 0x2c93724f	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x2c9d3756	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x2cab3b93	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x2cc12d7b	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x2cd793fa	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x2cd941c8	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2ce1adaa	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x2cea4131	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x2cf6634f	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x2cfde9a2	warn_slowpath_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d110c27	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d2c0ae2	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d33fe10	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x2d395beb	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3a7a08	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x2d47771c	lcdif_set_bus_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 vmlinux 0x2d5c9379	drm_any_plane_has_format
+EXPORT_SYMBOL	 vmlinux 0x2d6fcc06	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2d718ce9	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x2d771fc8	drm_plane_cleanup
+EXPORT_SYMBOL	 vmlinux 0x2d7fc6f4	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da238d1	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 vmlinux 0x2da81bff	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x2dba1cea	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x2dbb4539	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x2dc68f8a	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x2dc826de	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x2dcf53ea	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x2dec67cd	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x2df61824	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x2e01b637	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2e036884	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x2e1199d5	cnstr_shdsc_gcm_decap
+EXPORT_SYMBOL	 vmlinux 0x2e195ba4	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ee36811	cqhci_pltfm_init
+EXPORT_SYMBOL	 vmlinux 0x2eec1e25	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x2eed504a	caam_ptr_sz
+EXPORT_SYMBOL	 vmlinux 0x2eeeab9c	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x2ef92600	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f050e7e	drm_property_blob_get
+EXPORT_SYMBOL	 vmlinux 0x2f07e89b	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x2f15628b	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 vmlinux 0x2f18c8b1	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x2f1b0d62	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2f1b4cad	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x2f1b8833	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x2f3102da	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x2f333aab	imx_scu_get_handle
+EXPORT_SYMBOL	 vmlinux 0x2f34c1e1	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 vmlinux 0x2f3daa00	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x2f50cbf5	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f5b0fdb	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2f6d6279	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x2f77cad6	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x2f89731c	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x2f8d991f	drm_i2c_encoder_save
+EXPORT_SYMBOL	 vmlinux 0x2f8dc374	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 vmlinux 0x2f8e597e	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x2f951bdc	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x2f97d372	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x2fa2211b	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x2fb77785	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x2fbb5b1c	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 vmlinux 0x2fd54ff3	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x2fda0f56	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x2fdc5f3f	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 vmlinux 0x2fdd3d24	drm_panel_detach
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2ff42c00	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x2ffadcb9	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x301af519	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x3071e6a7	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x308f92d7	drm_client_buffer_vmap
+EXPORT_SYMBOL	 vmlinux 0x309024fb	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x309037f0	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x309adf78	cnstr_shdsc_aead_decap
+EXPORT_SYMBOL	 vmlinux 0x309f913e	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30ad55d3	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x30adb317	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x30be5915	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x30c23591	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x30c2fc30	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x30cb1c20	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x30d9a471	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310917fe	sort
+EXPORT_SYMBOL	 vmlinux 0x3124d691	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x31267153	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 vmlinux 0x3133377a	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x313ec72b	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 vmlinux 0x31410790	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314b20c8	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x3169a1a0	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x3173c98b	filp_open
+EXPORT_SYMBOL	 vmlinux 0x317543fb	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x31891e4c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x319dd342	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x31b16e68	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31b33ae3	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x31b854eb	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 vmlinux 0x31c29172	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x31c3a422	drm_crtc_cleanup
+EXPORT_SYMBOL	 vmlinux 0x31ce333d	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x31e53da2	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x31e99308	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x31e9cfba	lcdifv3_vblank_irq_disable
+EXPORT_SYMBOL	 vmlinux 0x31ec2155	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL	 vmlinux 0x31f2eb4b	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0x32017e57	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x320611df	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x320720a6	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x321751ca	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x32177b0b	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 vmlinux 0x3228cac8	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 vmlinux 0x322b3616	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x32430023	_totalhigh_pages
+EXPORT_SYMBOL	 vmlinux 0x3249384a	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x324f4ddf	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x3267d04c	d_add
+EXPORT_SYMBOL	 vmlinux 0x32804173	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x3287797a	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL	 vmlinux 0x3298c1f8	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x329d2550	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 vmlinux 0x32c977c0	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x32ca3579	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x32caebb7	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d7628e	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x32e64030	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 vmlinux 0x3304c1e3	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x331cc98d	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x331e8eed	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x3332e4ec	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x3349557c	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3351396c	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x335a92dd	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x3375510b	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x33778ca1	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x337f9ad4	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x33882d77	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x33c54670	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x33c8ee97	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x33c9a044	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x33cdc78f	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x33d034f7	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x33e77272	module_layout
+EXPORT_SYMBOL	 vmlinux 0x33eb977d	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f98231	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x3419dfcf	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x3436333b	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x3447a071	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x345301ec	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x3457627e	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x34624559	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x34889927	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x348d4fa4	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x349b4277	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x349bde1d	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x349db37b	drm_client_framebuffer_create
+EXPORT_SYMBOL	 vmlinux 0x34a04d71	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 vmlinux 0x34a886cb	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x34bb3197	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x34ca145c	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x34d128aa	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x34d303c3	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x34db0039	load_nls
+EXPORT_SYMBOL	 vmlinux 0x34edd722	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 vmlinux 0x34f1dc68	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f4adca	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x34f5486e	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x34fa262e	kmap
+EXPORT_SYMBOL	 vmlinux 0x350254d0	lcdifv3_set_bus_fmt
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x351927d6	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x351c0abd	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x352a289a	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x352c05d9	release_resource
+EXPORT_SYMBOL	 vmlinux 0x353e3fa5	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x3547d281	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x354ca87c	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 vmlinux 0x355e03d6	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x3560e651	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x35696cb2	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x356d7810	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x3589038e	cnstr_shdsc_chachapoly
+EXPORT_SYMBOL	 vmlinux 0x358a4262	drm_mode_object_get
+EXPORT_SYMBOL	 vmlinux 0x359c05f4	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 vmlinux 0x35bc8c24	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x35c1697d	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x35c28f50	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x35d87ebb	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x35ea78f5	atomic_io_modify_relaxed
+EXPORT_SYMBOL	 vmlinux 0x35f7a386	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x3612c10f	tmio_core_mmc_enable
+EXPORT_SYMBOL	 vmlinux 0x3618fdff	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x361b2271	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x362aa7c1	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x362eea96	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x363148f5	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x3651b5e3	drm_is_current_master
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365c865f	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3674e752	kunmap
+EXPORT_SYMBOL	 vmlinux 0x367d4760	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x368b6054	sm_release_keystore
+EXPORT_SYMBOL	 vmlinux 0x369369b0	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x36ac2f42	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x36cd79b1	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x36dde62c	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x36e98294	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x36f7be63	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x370bc874	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x3722522f	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 vmlinux 0x372e1918	fd_install
+EXPORT_SYMBOL	 vmlinux 0x372e4c3c	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x373ea68f	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x374b47eb	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x375426e4	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x3754faf3	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x376f9a6a	drm_framebuffer_remove
+EXPORT_SYMBOL	 vmlinux 0x37734e06	caam_dpaa2
+EXPORT_SYMBOL	 vmlinux 0x37854f91	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 vmlinux 0x3796ddf2	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x379b4e34	of_match_device
+EXPORT_SYMBOL	 vmlinux 0x37a308d6	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b4979d	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x37bbb9d4	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37d31716	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37ddc066	dpu_be_wait
+EXPORT_SYMBOL	 vmlinux 0x37e18c7a	nla_append
+EXPORT_SYMBOL	 vmlinux 0x37e342f1	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x37ec3350	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x37f614b7	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x37f8cfe1	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x37fa89a5	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x380b5fbb	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 vmlinux 0x380bfc07	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x382f354f	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x383a70c4	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x3842b3a6	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x3844b5f7	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x38528535	devm_drm_dev_init
+EXPORT_SYMBOL	 vmlinux 0x3854774b	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x386a4856	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x386d9ce9	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x3872be05	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x38749b56	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x3892c50e	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x3896e792	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x389ecf9e	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x38a3f4d9	imx8mp_hdmi_pavi_powerup
+EXPORT_SYMBOL	 vmlinux 0x38a40651	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38c46903	imx_dsp_ring_doorbell
+EXPORT_SYMBOL	 vmlinux 0x38c70e06	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x38ce7d60	drm_get_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x38d1ba29	caam_blob_encap
+EXPORT_SYMBOL	 vmlinux 0x38f9a8ca	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x3909498a	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x3911628f	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 vmlinux 0x392df2f8	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x393b1047	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x396fae69	drm_atomic_helper_commit
+EXPORT_SYMBOL	 vmlinux 0x399021b8	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x3992bc63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x39a12ca7	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x39aaf28e	logfc
+EXPORT_SYMBOL	 vmlinux 0x39ad120d	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x39b2db14	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39c7556d	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x39c88fd5	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x39d87d0f	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x39e06b23	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x39e2aa25	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x3a1e0e20	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x3a21e998	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x3a2c2b1a	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x3a4b6806	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a61a499	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x3a6d3a7a	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x3a6d60fc	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x3a82bf92	lcdifv3_set_mode
+EXPORT_SYMBOL	 vmlinux 0x3a969871	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x3a9959d9	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x3aa370e7	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 vmlinux 0x3aab7569	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ae7bdf8	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x3aed3911	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x3aefdda5	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x3b025a92	iput
+EXPORT_SYMBOL	 vmlinux 0x3b11383d	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x3b299067	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x3b2a950e	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b40879d	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x3b48e32a	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b697738	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x3b6c41ea	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x3b75475a	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x3b8ae1da	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 vmlinux 0x3b917bbf	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 vmlinux 0x3ba4509b	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x3badd4d0	of_root
+EXPORT_SYMBOL	 vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL	 vmlinux 0x3bc1986c	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x3bcb0cb8	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x3bd884dd	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x3bd8c40a	drm_crtc_init
+EXPORT_SYMBOL	 vmlinux 0x3bda2304	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x3be3c529	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3be5ea33	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c1a18ff	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 vmlinux 0x3c249d58	sm_keystore_slot_alloc
+EXPORT_SYMBOL	 vmlinux 0x3c3a15f3	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c533cec	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x3c56f97c	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x3c7ddf02	is_trusted_type
+EXPORT_SYMBOL	 vmlinux 0x3c876c2e	drm_bridge_chain_enable
+EXPORT_SYMBOL	 vmlinux 0x3c8da2f0	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x3c8f6ef0	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x3c99f119	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x3c9b25d7	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 vmlinux 0x3cc0626b	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x3ccee3e7	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x3cd70bbf	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x3cdabd38	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce66ce4	drm_modeset_unlock_all
+EXPORT_SYMBOL	 vmlinux 0x3cf24c0c	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x3d100bd8	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x3d1340f4	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x3d14c5ed	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x3d1df04f	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x3d1fb08f	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x3d20c964	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x3d3b1dac	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL	 vmlinux 0x3d40ea7b	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x3d4d142f	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x3d52fb7f	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d644f40	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x3d71b40f	simple_map_init
+EXPORT_SYMBOL	 vmlinux 0x3d8a34c1	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x3db3cc91	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x3dba0e33	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x3dca83b3	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dcf1ffa	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3dcfdff3	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x3dd878a0	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x3de59236	lcdifv3_disable_controller
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e03ab3d	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x3e0d5eb9	drm_mode_config_cleanup
+EXPORT_SYMBOL	 vmlinux 0x3e0ead10	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x3e1be84a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2c7f05	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x3e2ccb4f	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x3e36c485	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 vmlinux 0x3e44b052	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x3e49d674	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x3e4da51d	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x3e5cf6f5	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x3e5e290d	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x3e5ef6bb	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x3e6b5375	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x3e6f033f	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 vmlinux 0x3e771313	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x3e82f3e9	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x3e8bd9e1	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x3e9048dd	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ed104a5	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x3eeb141d	mii_nway_restart
+EXPORT_SYMBOL	 vmlinux 0x3ef02cb4	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x3ef0c3cc	dump_page
+EXPORT_SYMBOL	 vmlinux 0x3ef5519f	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x3efdfafa	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f036cff	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x3f07dd72	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x3f1348b5	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x3f18e591	drm_property_create
+EXPORT_SYMBOL	 vmlinux 0x3f2feca7	register_console
+EXPORT_SYMBOL	 vmlinux 0x3f33ad52	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4892ed	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x3f4af46f	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f548511	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x3f59d6dd	request_bus_freq
+EXPORT_SYMBOL	 vmlinux 0x3f62d048	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x3f6ed0d1	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x3f96a0d0	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3f9b8ab9	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x3fc26761	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fea538c	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3ff1c038	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x40247814	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x4026f806	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x40304e25	audit_log
+EXPORT_SYMBOL	 vmlinux 0x403a93e7	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x403aa241	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x403f35a9	unregister_rpmsg_driver
+EXPORT_SYMBOL	 vmlinux 0x40508c40	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x405f53b2	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 vmlinux 0x406257ff	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 vmlinux 0x406b86fc	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0x4074245d	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 vmlinux 0x4081fecb	kset_register
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40a25599	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b51c05	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x40b7a63c	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 vmlinux 0x40ba5f32	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 vmlinux 0x40bb60a0	cnstr_shdsc_rfc4543_decap
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d402ad	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d8ae77	mmc_get_reserved_index
+EXPORT_SYMBOL	 vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL	 vmlinux 0x40fec91a	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x41089333	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x4122ef4b	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x4137aecd	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414975dd	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x414b9032	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0x415e3257	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x4171ddd2	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x417712e1	d_path
+EXPORT_SYMBOL	 vmlinux 0x41776c14	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418a5367	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x418c7ea5	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x41a3b502	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x41bb84fc	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x41ceeea6	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x41d02530	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x4208d0c2	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x421161f6	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x42172db8	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x4217ebe0	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x421d4dcf	krealloc
+EXPORT_SYMBOL	 vmlinux 0x422678a0	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x4227c96c	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x4238cafa	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x42428bb7	drm_legacy_ioremap
+EXPORT_SYMBOL	 vmlinux 0x4247cd8f	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424a52f3	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x424b1e08	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x4253aa7e	down_write
+EXPORT_SYMBOL	 vmlinux 0x4256457a	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x42604384	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x42830cf4	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x4298b775	v7_flush_kern_cache_all
+EXPORT_SYMBOL	 vmlinux 0x42bb48b1	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43037057	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x43057c78	seq_path
+EXPORT_SYMBOL	 vmlinux 0x431188ce	drm_connector_init
+EXPORT_SYMBOL	 vmlinux 0x4312b2fe	drm_connector_attach_encoder
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433b76ad	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x433cb39f	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x4342d252	lcdifv3_pix_clk_round_rate
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x436da922	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x43720d4a	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x437724a8	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x437cf44d	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x4384eb42	__release_region
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43893b35	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x4389d61a	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4389fc85	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x439fb594	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x43b0c9c3	preempt_schedule
+EXPORT_SYMBOL	 vmlinux 0x43b19af7	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x43f082da	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x4403bbd0	imx_sc_misc_set_control
+EXPORT_SYMBOL	 vmlinux 0x440680de	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 vmlinux 0x4422c811	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x442495c9	tmio_core_mmc_resume
+EXPORT_SYMBOL	 vmlinux 0x442792fc	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x443c7751	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x44462a15	snvs_secvio_remove_handler
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x4455c88f	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x445fc5d8	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL	 vmlinux 0x447cd77c	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x4489be9a	_raw_write_unlock
+EXPORT_SYMBOL	 vmlinux 0x4493332e	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x4495b975	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x44966b24	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x44a03b7b	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x44a81ddd	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x44af4748	drm_connector_unregister
+EXPORT_SYMBOL	 vmlinux 0x44c9dc6c	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0x44ca85f1	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450470e5	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x451c81ca	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x45252edc	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x454b6f02	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x459310f4	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x4598697e	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x45a56947	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x45bcfb31	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x45bda0d5	system_serial_low
+EXPORT_SYMBOL	 vmlinux 0x45d5730a	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x45fe2d81	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x461e88ad	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x462fac87	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x4632a44c	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x464e7d74	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x46683b89	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x46745d5a	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x46750ada	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x467de771	pid_task
+EXPORT_SYMBOL	 vmlinux 0x468c3d4e	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46b9ea39	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x46d0a2c1	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL	 vmlinux 0x46e7de30	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x46f1b830	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x4702a647	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x4702dedd	of_iomap
+EXPORT_SYMBOL	 vmlinux 0x47250c92	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 vmlinux 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 vmlinux 0x4742785a	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x4743b1e2	drm_dev_unregister
+EXPORT_SYMBOL	 vmlinux 0x474bcc4e	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x4754a43b	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x4756260d	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x475d84ef	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x476385c8	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x4783d708	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x478c2b05	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x478d9b84	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0x479137ca	imx_scu_irq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47998428	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x479c843e	cpu_user
+EXPORT_SYMBOL	 vmlinux 0x47ae4cd0	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 vmlinux 0x47c18519	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x47c20f8a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47e70229	v7_flush_user_cache_range
+EXPORT_SYMBOL	 vmlinux 0x47eeff6f	imx8mp_hdmi_pavi_powerdown
+EXPORT_SYMBOL	 vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL	 vmlinux 0x47fd63ac	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x480f523e	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x482508f3	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x482b5af0	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x482dd3cb	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x4834906a	drm_flip_work_commit
+EXPORT_SYMBOL	 vmlinux 0x4840b37f	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x48544aa6	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x4856e203	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x485d7c36	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x486299b4	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x48714574	gen_split_key
+EXPORT_SYMBOL	 vmlinux 0x4892353f	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 vmlinux 0x4898ddcc	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x489e2f8e	build_skb
+EXPORT_SYMBOL	 vmlinux 0x48a5b067	__machine_arch_type
+EXPORT_SYMBOL	 vmlinux 0x48a8ccfb	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b4391e	lcdif_set_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 vmlinux 0x48cb057c	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x48d28a50	d_drop
+EXPORT_SYMBOL	 vmlinux 0x48d35196	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x48dc385e	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 vmlinux 0x48e8efc6	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x48eb05b8	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x4901b548	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x49021e89	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x4919ca93	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493f16c2	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x4943afb9	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x49611a0d	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x49682e58	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x496c90dc	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x49970de8	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x49a4de96	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x49a74950	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x49b09e8e	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x49b47e45	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x49c500a8	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x49d1f560	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x49d3457a	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x49df9074	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x49f26466	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x49fab126	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x4a0d01f5	single_open
+EXPORT_SYMBOL	 vmlinux 0x4a12317c	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x4a1d9cb7	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x4a313c3c	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x4a41ddcf	lcdifv3_vblank_irq_clear
+EXPORT_SYMBOL	 vmlinux 0x4a639781	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x4a66310a	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 vmlinux 0x4a67b4a7	drm_dp_aux_unregister
+EXPORT_SYMBOL	 vmlinux 0x4a6de14b	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x4a85aee8	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x4a951e0e	bdput
+EXPORT_SYMBOL	 vmlinux 0x4a95bd2e	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4aa4e9f1	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x4addd9e4	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x4ae2bf19	drm_add_modes_noedid
+EXPORT_SYMBOL	 vmlinux 0x4ae2d91d	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x4af4a490	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x4af6ddf0	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x4afd2036	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b05c64e	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x4b241f89	lcdif_set_fb_addr
+EXPORT_SYMBOL	 vmlinux 0x4b255d7b	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 vmlinux 0x4b25a730	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x4b43db24	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x4b45fcc1	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0x4b473ec6	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4b484f10	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b4ef92d	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x4b57678a	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b6711cd	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x4b79195e	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x4b849ac5	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x4b935194	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0x4b93889b	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x4b95850f	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x4bac896c	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bb7ee95	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x4bc02ade	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x4bc03e52	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x4bc6ae2b	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x4bde964b	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x4be85a03	memweight
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf49c91	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x4bf72676	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x4bfdcefa	__memset32
+EXPORT_SYMBOL	 vmlinux 0x4bfed66a	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x4c06996c	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x4c12f4f8	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x4c1cca3b	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x4c25c917	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 vmlinux 0x4c2ae700	strnstr
+EXPORT_SYMBOL	 vmlinux 0x4c2b65ef	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x4c37c914	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c39a3b4	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x4c4166eb	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c4aba1a	drm_scdc_read
+EXPORT_SYMBOL	 vmlinux 0x4c58c066	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x4c639652	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x4c69f92d	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x4c6ceb58	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x4c812971	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x4c86a592	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x4c907ff2	drm_dev_has_vblank
+EXPORT_SYMBOL	 vmlinux 0x4c9df09c	file_path
+EXPORT_SYMBOL	 vmlinux 0x4ca85704	drm_cvt_mode
+EXPORT_SYMBOL	 vmlinux 0x4caf68d4	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4ccd643e	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x4d053c8f	tc6393xb_lcd_mode
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d152c6c	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 vmlinux 0x4d36b1a4	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x4d398c57	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x4d50b727	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 vmlinux 0x4d514485	xa_store
+EXPORT_SYMBOL	 vmlinux 0x4d5b9a23	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0x4d634803	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d97b0f9	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 vmlinux 0x4d999ddd	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da50a30	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 vmlinux 0x4da9d3a0	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x4daba156	drm_panel_attach
+EXPORT_SYMBOL	 vmlinux 0x4dbfd903	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x4dbfe4d6	drm_mode_set_config_internal
+EXPORT_SYMBOL	 vmlinux 0x4dd7881b	drm_crtc_vblank_get
+EXPORT_SYMBOL	 vmlinux 0x4de0ddaa	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df1fa82	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e00e915	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 vmlinux 0x4e047da3	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0x4e05bdec	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 vmlinux 0x4e17436d	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x4e297bc0	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 vmlinux 0x4e34fcf0	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e3adb34	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x4e3bf7fe	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e72dad3	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x4e7caec3	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x4e90fa99	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x4eb10924	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x4ec9f801	lcdifv3_set_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0x4ece165e	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x4edf7a37	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x4edf8514	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 vmlinux 0x4ee0e846	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x4ef04ef0	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ef73a31	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0x4effdbc8	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x4f13b3ef	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4f178335	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x4f18e843	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f22d6f9	completion_done
+EXPORT_SYMBOL	 vmlinux 0x4f59038c	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x4f61cbbc	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x4f61d3d4	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x4f739114	lcdif_enable_controller
+EXPORT_SYMBOL	 vmlinux 0x4f7b87ba	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x4f89e881	tso_start
+EXPORT_SYMBOL	 vmlinux 0x4fa417ce	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4fbcd3f0	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x4fd45585	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x4fefb215	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x4ff15167	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x4ff29e56	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x4ff6f3c9	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x501a8ea3	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 vmlinux 0x50217320	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x502511a7	imx8mp_hdmi_pai_disable
+EXPORT_SYMBOL	 vmlinux 0x502b6647	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 vmlinux 0x50474f12	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 vmlinux 0x504ee83b	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x505c323b	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x507ee2b7	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50bd5c4f	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d71bcf	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x50e01ad2	mii_link_ok
+EXPORT_SYMBOL	 vmlinux 0x50e0eada	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 vmlinux 0x50ed2fb7	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x50ef1e38	drm_prime_gem_destroy
+EXPORT_SYMBOL	 vmlinux 0x50f1efc2	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50f931de	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x50fd6103	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x511b65d1	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x5124b2f8	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x512834b6	drm_gem_cma_print_info
+EXPORT_SYMBOL	 vmlinux 0x513e5c98	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x514a62ec	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x5163657d	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51670a26	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x51675b83	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x516a25c7	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x5179eb88	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x518e991a	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x51918332	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x51a71c11	imx8mp_hdmi_pvi_disable
+EXPORT_SYMBOL	 vmlinux 0x51a8563a	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x51a910c0	arm_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x51af2814	generate_black_key
+EXPORT_SYMBOL	 vmlinux 0x51d3fdae	dst_init
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x51f7a61c	_raw_write_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0x51f7b2c0	drop_super
+EXPORT_SYMBOL	 vmlinux 0x51f8e0cc	page_address
+EXPORT_SYMBOL	 vmlinux 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 vmlinux 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 vmlinux 0x5225d817	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x522fb0e4	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x523e57aa	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x524a6472	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x525164fc	drm_master_put
+EXPORT_SYMBOL	 vmlinux 0x5260a729	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x526c3a6c	jiffies
+EXPORT_SYMBOL	 vmlinux 0x526d2aae	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 vmlinux 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 vmlinux 0x5284b5b7	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x528c709d	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x52b90169	drm_gtf_mode
+EXPORT_SYMBOL	 vmlinux 0x52c42670	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52e11ace	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x52f2850a	imx_sc_pm_cpu_start
+EXPORT_SYMBOL	 vmlinux 0x52fb6328	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x5334dbbc	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x534ada93	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x5350ecde	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x536060af	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x53806875	may_umount
+EXPORT_SYMBOL	 vmlinux 0x53942bc5	set_groups
+EXPORT_SYMBOL	 vmlinux 0x5394e062	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x53d93bfd	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x53d9a5e9	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x53de9136	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x540251ac	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 vmlinux 0x540b78dd	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 vmlinux 0x5421728c	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 vmlinux 0x542697bf	__register_rpmsg_driver
+EXPORT_SYMBOL	 vmlinux 0x5426e31c	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x542b739e	drm_probe_ddc
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x546204c4	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x5467e694	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x54800b8e	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x5497c7d5	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x54c2704c	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54d2082e	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x54d270bb	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x54d66ea8	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54e9ed42	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x54f16f69	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x54f2dc66	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x54f5adb8	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x550340f8	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x55110a08	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551cdddf	kunmap_high
+EXPORT_SYMBOL	 vmlinux 0x5526ee96	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x5544aa90	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x554ac97b	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x554e41ff	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x5562e403	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x5568a1c9	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x556dcea5	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x55829171	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x5590a972	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x55a3de40	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x55bdfcf8	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x55c499d8	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x55c942b9	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x55da862e	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563952a3	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0x56498087	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x564b2cab	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x5653f922	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x566b4719	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 vmlinux 0x566bbf97	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x56a2c153	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 vmlinux 0x56c78139	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d46856	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x56e5fe31	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x56e807b1	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x57004cfa	notify_change
+EXPORT_SYMBOL	 vmlinux 0x57056b12	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x5731e3b7	caam_sm_shutdown
+EXPORT_SYMBOL	 vmlinux 0x5735446d	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x574af4d0	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x5758b3fb	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x577d7ec3	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x57839ad4	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578c2dcd	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x5799c5c5	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x57a5e03f	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 vmlinux 0x57b984e4	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x57ceccd9	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x57ceedb1	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x57eb6bbf	padata_start
+EXPORT_SYMBOL	 vmlinux 0x57ebb556	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x57f66c10	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 vmlinux 0x57f7e962	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x57ff23f0	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x580420a3	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x581868b6	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x581bd139	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x581cde4e	up
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x5821d673	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x584a6b87	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x58559c92	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x5864404c	drm_dp_link_power_down
+EXPORT_SYMBOL	 vmlinux 0x587212d6	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x587a928c	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 vmlinux 0x587f6d21	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x588dba22	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5892ab4a	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x589cb32c	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b51692	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58bf826c	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x58c4516c	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 vmlinux 0x58d4952b	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 vmlinux 0x58df38fd	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58f71325	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x58fad869	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x59040ac7	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0x590c4207	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x592b5bd9	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x593567c5	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x593a5dfe	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x593be770	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL	 vmlinux 0x5951b54e	release_sock
+EXPORT_SYMBOL	 vmlinux 0x59571e69	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x59630fbb	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x5999df3a	drm_dp_stop_crc
+EXPORT_SYMBOL	 vmlinux 0x599a9b9b	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x599e1a48	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x59a355b9	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x59acef99	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x59b1d17c	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x59b4f34f	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x59b7cab6	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x59bda5f9	_raw_spin_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0x59d29dab	v7_flush_kern_dcache_area
+EXPORT_SYMBOL	 vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL	 vmlinux 0x5a058880	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x5a08872a	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a14de15	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x5a213b82	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x5a429d30	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5a42cfe9	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a551bfc	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x5a5c8ecd	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0x5a65bfb5	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x5a8495c1	is_valid_header_conf
+EXPORT_SYMBOL	 vmlinux 0x5aaa0884	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x5aaaae0c	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x5aad7322	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x5af16c26	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x5b062284	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b0acc3b	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 vmlinux 0x5b2caff5	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b4268bf	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0x5b4edf3e	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x5b508bdd	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 vmlinux 0x5b521588	drm_vma_node_revoke
+EXPORT_SYMBOL	 vmlinux 0x5b83ef49	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 vmlinux 0x5b844b2a	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x5b924c76	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x5b9b3e21	rpmsg_destroy_ept
+EXPORT_SYMBOL	 vmlinux 0x5ba38f23	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x5badbb78	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5bb951c9	find_vma
+EXPORT_SYMBOL	 vmlinux 0x5bbe49f4	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x5bc2dfce	drm_vblank_init
+EXPORT_SYMBOL	 vmlinux 0x5bda60c4	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x5bde292d	drm_framebuffer_lookup
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bebe698	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x5bf177c1	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x5c1dedec	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x5c24f4b0	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x5c3c7387	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x5c3f00fa	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c4b7930	save_stack_trace_tsk
+EXPORT_SYMBOL	 vmlinux 0x5c58990f	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x5c595acf	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x5c5c2019	drm_dp_dpcd_read
+EXPORT_SYMBOL	 vmlinux 0x5c716976	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5c7f1284	int_sqrt64
+EXPORT_SYMBOL	 vmlinux 0x5c84399d	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x5c875bff	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x5c8ccda9	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x5c91fc59	dev_close
+EXPORT_SYMBOL	 vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL	 vmlinux 0x5ca38022	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x5cb44dbd	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 vmlinux 0x5cbd8e69	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x5cc03588	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x5cd841b4	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x5cd8c45e	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x5ce9a942	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cf66fcf	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x5d0cc533	drm_dp_downstream_debug
+EXPORT_SYMBOL	 vmlinux 0x5d1442b1	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x5d232f2f	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x5d249d9d	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5d29332d	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x5d2b735a	mii_ethtool_gset
+EXPORT_SYMBOL	 vmlinux 0x5d37d658	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x5d39bf74	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0x5d3a1455	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x5d3c58cf	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d57fa8e	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x5d6a8ffb	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x5d7e183f	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x5d8bef82	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x5d928fc3	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x5d9cc8dd	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x5daaa5b6	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x5db8e16f	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x5dbbc6f4	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x5dc50454	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x5dc854a6	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x5dca46a5	drm_property_create_enum
+EXPORT_SYMBOL	 vmlinux 0x5dcf6341	outer_cache
+EXPORT_SYMBOL	 vmlinux 0x5dcf7073	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x5dd52863	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x5dda1135	drm_modeset_unlock
+EXPORT_SYMBOL	 vmlinux 0x5ddf32db	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x5de25da4	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 vmlinux 0x5de55a8e	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x5de5cca2	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x5e19bf78	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x5e2b9b38	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e6730b2	drm_mode_object_find
+EXPORT_SYMBOL	 vmlinux 0x5e680bad	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x5e6866d0	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x5e6bf2f3	imx_sema4_mutex_destroy
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e746dfa	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x5e77f765	rpmsg_poll
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e866d85	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5e9fb981	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x5ea6f663	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed05bf6	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5ed82fc0	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5eefdb8c	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x5ef0d5df	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0x5effe6f5	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f0b95cf	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x5f3cfe98	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x5f43ef87	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x5f70c820	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL	 vmlinux 0x5f7a5646	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x5f7dcb2a	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x5f849a69	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5f9112aa	drm_property_create_range
+EXPORT_SYMBOL	 vmlinux 0x5faeae10	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x5fb01358	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fb16349	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x5fc0c825	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 vmlinux 0x5fc5984c	drm_helper_connector_dpms
+EXPORT_SYMBOL	 vmlinux 0x5fd3c12c	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x5fe1d1da	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x5fea3ef1	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x5fecab9f	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x5ff074fc	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x5ff11cc3	pcibios_min_io
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x6008e486	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x600e3e4c	drm_ioctl_kernel
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602618bd	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x603286b8	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 vmlinux 0x6039b599	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60a4b719	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x60a62696	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x60bffe6d	div64_u64
+EXPORT_SYMBOL	 vmlinux 0x60c785f2	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x60e7349d	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x60eee335	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 vmlinux 0x60ef08a2	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x6101426f	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x61101634	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x6147a636	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x614a73b0	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x61512fb0	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 vmlinux 0x6156c7f4	net_dim
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x61a77e2d	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x61af8756	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x61b76bb9	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61bafbd4	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x61bf839e	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 vmlinux 0x61c76b3a	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x61d2bf93	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x61dc1226	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x61de47a0	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x61e6dff4	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x61e78c0b	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x62032f94	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x6210d712	dev_open
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x62151b1b	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x6221418b	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6232b720	lcdif_disable_controller
+EXPORT_SYMBOL	 vmlinux 0x62493bfd	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x624a8aa3	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x624d0130	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x62536845	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x625adb4a	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x625f7e0c	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x6265399b	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 vmlinux 0x626ca8ed	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x626f15d9	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627d4340	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x62840cb3	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x6287cb24	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x62a544cb	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x62b54807	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c1b17f	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x62cb9df5	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x62ccea15	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x62e0f7dd	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x62ec2dbc	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x630f2cb8	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 vmlinux 0x63148cbe	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x63316cdc	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x63321cfc	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x6334783c	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 vmlinux 0x6342f99f	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x634740e9	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x6349ef52	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x6362111b	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x6371e611	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x6375b6d1	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x637bc51a	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 vmlinux 0x63922b5d	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x6392efa6	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x63a5914c	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c93234	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x63d1d69d	imx_sema4_mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63f0ff01	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x63f8a1bc	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x6406bca1	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x640f6722	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x641f85d6	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x6431a93f	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64515883	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x64515a26	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x6473eb11	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 vmlinux 0x647af474	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x6487bcf0	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x6489d6ef	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x648c1ffa	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b1ad7f	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x64c48ed1	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x64d9da62	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x64def815	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x64f2644b	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x6513f76b	drm_atomic_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x65168ad7	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6578533e	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659bbf7a	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65ab5bde	flush_kernel_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x65c42ce1	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x65c989fd	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x65d411e9	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65da965a	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65ef6c42	arp_create
+EXPORT_SYMBOL	 vmlinux 0x65fe2adb	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x6618b7d5	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x662cb648	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x663d04a9	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x6641cec7	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x66474aa4	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 vmlinux 0x66657274	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0x6671ce86	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x6672a6ed	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x667d5b00	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 vmlinux 0x66840875	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x66c576ec	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x66cf7681	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x66cfa363	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x66d5c294	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66eaac4e	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x66ef8db2	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 vmlinux 0x66fff0ed	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x670497ec	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x67092819	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x670edb0a	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 vmlinux 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 vmlinux 0x67389d9d	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x6741448c	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x67431d07	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x674ec2f6	stream_open
+EXPORT_SYMBOL	 vmlinux 0x675ab7a1	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x67609084	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL	 vmlinux 0x67791353	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x6782d34a	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x67a01a31	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x67a726f6	sm_keystore_cover_key
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67bcb274	drm_dp_link_probe
+EXPORT_SYMBOL	 vmlinux 0x67bfa61f	drm_read
+EXPORT_SYMBOL	 vmlinux 0x67d7e934	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x67eb52d8	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x67f91005	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x680182a2	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x6802429d	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x6808c968	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x680f968b	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x68129447	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x682cd52b	mii_check_media
+EXPORT_SYMBOL	 vmlinux 0x683267e9	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x6839cc01	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x6860789c	serio_close
+EXPORT_SYMBOL	 vmlinux 0x6862ef62	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x686d3242	sys_copyarea
+EXPORT_SYMBOL	 vmlinux 0x6871dfad	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x6877f6ab	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x688baa81	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x689d11e6	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68c2696f	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0x68e3d520	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x68e4d962	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0x6921aa61	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x693eacef	drm_lspcon_get_mode
+EXPORT_SYMBOL	 vmlinux 0x6953d70e	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x69591a37	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x695ab47e	map_destroy
+EXPORT_SYMBOL	 vmlinux 0x695fd8c9	imx_sema4_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x696822ba	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x6972fb8c	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 vmlinux 0x698626ca	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x699b6bc8	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 vmlinux 0x69a810d8	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x69c3c65e	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x69cd89af	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x69e51d08	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x69f58385	drm_gem_prime_import
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a2c127e	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x6a360286	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 vmlinux 0x6a460953	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x6a5332a0	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ced1e	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a628686	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x6a687026	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x6a6d8926	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x6a6e05bf	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x6a6e7135	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0x6a7f780f	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x6a8012b2	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x6a8831e0	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x6a91ce5d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x6a94d2d9	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x6a987431	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x6a98cced	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x6ab15660	sm_establish_keystore
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6ade55b3	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x6adee68c	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6aebf671	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6af7b21a	packing
+EXPORT_SYMBOL	 vmlinux 0x6b028ddf	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x6b0b9550	drm_flip_work_init
+EXPORT_SYMBOL	 vmlinux 0x6b2c3fdb	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x6b2c9801	mtd_concat_create
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b343724	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x6b3f82b5	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x6b415ff2	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5bcef0	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 vmlinux 0x6b5d5f14	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x6b604710	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x6b7047f9	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x6b830cde	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b941f86	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x6ba35b32	bio_put
+EXPORT_SYMBOL	 vmlinux 0x6ba9a42d	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x6bac0f4d	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x6bbb095d	lcdifv3_set_fb_addr
+EXPORT_SYMBOL	 vmlinux 0x6bbe8b2f	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6be28c65	drm_syncobj_add_point
+EXPORT_SYMBOL	 vmlinux 0x6be67c7d	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x6bee05a9	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x6bf902ff	drm_property_create_signed_range
+EXPORT_SYMBOL	 vmlinux 0x6c014c71	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x6c06942c	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x6c174250	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x6c1a7a0f	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c5c779d	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c651a55	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x6c6665cf	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x6c783741	drm_dev_init
+EXPORT_SYMBOL	 vmlinux 0x6c810e42	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x6c973d3e	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x6c9acf09	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x6ca0b9a1	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x6ca9d4de	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x6cb08426	kmap_high
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbeab4e	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x6cbfc6a2	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x6cc40299	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x6cd1712f	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6ce200ad	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x6cea00ea	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x6cf8ac6d	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d2cedc4	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d36be73	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x6d5b7c25	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL	 vmlinux 0x6d6e2d5a	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x6d8157fb	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x6d89b199	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x6d8a3422	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x6d8f3486	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x6d926f41	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x6d9cc4ad	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x6da0e6cd	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x6dabb9da	dump_align
+EXPORT_SYMBOL	 vmlinux 0x6dca4a26	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6ddecc73	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 vmlinux 0x6de80084	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6dfed4d8	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x6e03a8eb	drm_client_dev_hotplug
+EXPORT_SYMBOL	 vmlinux 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 vmlinux 0x6e0e20b5	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x6e259d5e	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x6e2996af	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 vmlinux 0x6e422f30	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x6e4e7714	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x6e4fd3ab	drm_vblank_restore
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e813ab9	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x6e85be58	drm_property_create_bool
+EXPORT_SYMBOL	 vmlinux 0x6e8ba1ec	skb_append
+EXPORT_SYMBOL	 vmlinux 0x6e8ec415	atmel_i2c_probe
+EXPORT_SYMBOL	 vmlinux 0x6e8f258e	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ecdb792	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x6ed609b4	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6edd56c2	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x6ededebe	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 vmlinux 0x6ef6682b	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x6ef7a273	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x6ef9e901	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x6efd1723	drm_syncobj_find_fence
+EXPORT_SYMBOL	 vmlinux 0x6f013ecd	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x6f0f8a91	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x6f39afba	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x6f41ab20	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x6f4fa49d	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x6f6e555a	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x6f74ab24	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f79fb5b	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x6f83fba8	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x6f866960	get_bus_freq_mode
+EXPORT_SYMBOL	 vmlinux 0x6f86982d	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x6f8d453f	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0x6facd7e5	get_super
+EXPORT_SYMBOL	 vmlinux 0x6fb374e6	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x6fbe4717	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x7015095a	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x70182cba	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 vmlinux 0x701e6a7a	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x701f81ec	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x70225ffe	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x702f2eb8	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x70476f64	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x7068b9f9	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x70703993	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7071362a	iunique
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7073fdad	cnstr_shdsc_aead_null_decap
+EXPORT_SYMBOL	 vmlinux 0x70804e73	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x70830030	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 vmlinux 0x70854d5f	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x7088a859	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x70920680	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x709fa287	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x70a50f7d	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x70a98dd8	cnstr_desc_random_black_key
+EXPORT_SYMBOL	 vmlinux 0x70af799f	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x70cd8e1b	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x70f1a742	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x71077bd0	caam_jr_run_and_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x7116d80f	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x71198a65	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x711b8a9b	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x712110ab	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x71256cbb	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x7126b118	drm_property_replace_blob
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x7130c947	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x713e8634	rproc_coredump_using_sections
+EXPORT_SYMBOL	 vmlinux 0x714243cf	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7153e582	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x715c5fc6	user_path_create
+EXPORT_SYMBOL	 vmlinux 0x716b58cb	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x718055f2	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a71ebc	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x71c2e418	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL	 vmlinux 0x71da0455	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x71e7ff65	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 vmlinux 0x71f7de4f	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x724afb3d	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x724cbdaf	cnstr_shdsc_xts_skcipher_encap
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72570bd2	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x72629873	cpu_tlb
+EXPORT_SYMBOL	 vmlinux 0x7262a3f0	drm_get_format_info
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x727d5632	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x7280b32e	lcdif_pix_clk_round_rate
+EXPORT_SYMBOL	 vmlinux 0x72857c49	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x729c3a09	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x72aeda7d	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72cda666	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x72ce1eec	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x72ddb128	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x72e950e8	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 vmlinux 0x7317790e	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x73177ccb	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x73207d99	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x73269e52	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x732b7667	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x73306825	drm_of_component_probe
+EXPORT_SYMBOL	 vmlinux 0x73427de4	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x734d2d64	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x73548dbd	bdget
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x7359cfae	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 vmlinux 0x735f33b0	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x736a12b7	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x7371bef6	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x73796ff8	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x737e387a	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x738a34f8	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x738d79de	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x738ddff5	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x73958002	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x73972576	drm_plane_from_index
+EXPORT_SYMBOL	 vmlinux 0x73bd7485	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x73caec05	lcdifv3_get_bus_fmt_from_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0x73d3102d	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x73d71287	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x73e3999f	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x73f98191	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x740c1d74	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741d2d27	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x7429e20c	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0x742cb2e4	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x7439d3a3	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x744edc9c	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x744fa5f8	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x746384f4	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x748706bd	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x748cb797	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x748d85d9	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 vmlinux 0x74ae2728	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x74b55945	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x74baab48	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x74bb6c0a	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f6c43e	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x74f7609f	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x75032e4a	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x7506e5d2	console_stop
+EXPORT_SYMBOL	 vmlinux 0x750abdb5	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x7515daea	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0x75282e39	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 vmlinux 0x75404787	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x754218f0	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x754cb6d0	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0x754f348a	complete_all
+EXPORT_SYMBOL	 vmlinux 0x756593a1	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x7573965c	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x757f9399	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x758cdfc3	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x75957a10	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x759be372	unregister_busfreq_notifier
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d06244	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d48418	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75d9b58d	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x75ef7922	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 vmlinux 0x75f961ab	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x760fc5d4	drm_av_sync_delay
+EXPORT_SYMBOL	 vmlinux 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 vmlinux 0x7628a4d6	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x76341c50	drm_mode_config_init
+EXPORT_SYMBOL	 vmlinux 0x7646a67d	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x764f0419	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x7650dd34	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x7656acac	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x76570e7c	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x76650e41	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76a12029	drm_atomic_check_only
+EXPORT_SYMBOL	 vmlinux 0x76a48433	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x76ad9183	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x76af562d	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x76c8e5c9	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d3d335	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76d76a3c	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x76d89a27	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x76e198bc	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x76fc5de0	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 vmlinux 0x76ff260a	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x77004c17	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x7702b45c	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 vmlinux 0x7724fdc1	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x7743a196	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x77538dac	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x7753d75b	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x7754b26d	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x77712550	file_modified
+EXPORT_SYMBOL	 vmlinux 0x777493f5	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 vmlinux 0x7786939e	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x77869ce6	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x7788e927	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x77a1831c	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x77a6403e	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x77b4844a	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 vmlinux 0x77ba220a	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c32183	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f3c073	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x77f6c690	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x77f6f183	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x77fb9841	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x7807eb50	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780ac06c	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x78574696	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x786247fb	rproc_coredump_set_elf_info
+EXPORT_SYMBOL	 vmlinux 0x78759c20	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x787885bc	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x78997dc0	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a14d4e	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a5caa0	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x78acdedc	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 vmlinux 0x78ce5afc	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x78ddbb03	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e1a85e	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x78f2aa04	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x78f4e139	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x78f53321	follow_up
+EXPORT_SYMBOL	 vmlinux 0x79166b85	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x791feada	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 vmlinux 0x7922d092	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0x7929ffbf	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x794765d1	mempool_free
+EXPORT_SYMBOL	 vmlinux 0x794c88c2	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x79555d75	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x797a3fac	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x797c048d	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x7980a3ad	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x79870e60	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x79a219c4	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x79d0f655	drm_client_init
+EXPORT_SYMBOL	 vmlinux 0x79eb97ff	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x79fc577f	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a17583e	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a3e8a42	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a82f6be	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x7a9211e8	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7ab50cca	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ade9187	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x7aded2f7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x7af68832	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x7b149102	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x7b1dc7e9	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x7b1ecedc	drm_property_destroy
+EXPORT_SYMBOL	 vmlinux 0x7b200958	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x7b283ce3	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x7b2a90be	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x7b2f2619	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x7b2fb85d	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7b3dbc8f	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x7b3e8354	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x7b4af78b	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x7b5c8440	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x7b73a038	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x7b7e383b	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x7b7f58f2	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x7b87e506	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x7b8caada	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 vmlinux 0x7b9aeb65	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x7bb154ca	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x7bc0730b	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x7bc45cdc	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x7bca1842	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x7bdb6182	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x7be10110	drm_event_cancel_free
+EXPORT_SYMBOL	 vmlinux 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c207612	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x7c37f712	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x7c3a2831	drm_connector_list_iter_end
+EXPORT_SYMBOL	 vmlinux 0x7c408808	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c4fbc00	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x7c7b09b1	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 vmlinux 0x7c84d784	crypto_sha256_arm_update
+EXPORT_SYMBOL	 vmlinux 0x7c860c79	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x7c8cea9e	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cb8a8b1	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x7cb8fa5e	read_code
+EXPORT_SYMBOL	 vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL	 vmlinux 0x7cc429f6	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x7cdeeb4d	pgprot_user
+EXPORT_SYMBOL	 vmlinux 0x7ce1225b	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce6b9c9	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x7cf26581	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 vmlinux 0x7cfc2bd1	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0x7cfceca0	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d09596b	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d18acd1	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x7d28671f	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x7d2ef2b0	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x7d32b0cd	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x7d32ba4a	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x7d474d41	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d4d74ad	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x7d6c2636	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0x7d766806	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x7d787568	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x7d8f3233	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x7d951e37	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x7da13ad2	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x7da55a11	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x7dad07a6	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dc67915	ir_raw_handler_register
+EXPORT_SYMBOL	 vmlinux 0x7dd440b8	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x7ddb3eca	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x7dddc096	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x7de8e0db	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x7de9674e	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df1e51f	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x7e003cc0	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x7e016d38	drm_flip_work_cleanup
+EXPORT_SYMBOL	 vmlinux 0x7e09a644	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x7e0ce0c3	up_write
+EXPORT_SYMBOL	 vmlinux 0x7e107064	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x7e1248a3	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x7e170676	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x7e2ba2de	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e384321	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x7e68bc08	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x7e6cd466	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x7e906e9f	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x7ea10064	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x7ef62e3f	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x7f00ca9b	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f098be9	drm_mode_find_dmt
+EXPORT_SYMBOL	 vmlinux 0x7f0aab97	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x7f0e1acd	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x7f0fbb1b	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x7f1fb658	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f26f6f8	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x7f2777f6	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x7f304b27	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7f42f72c	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x7f463f32	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x7f4f52a3	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x7f58e250	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0x7f62261a	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7fa602d8	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x7fc29ed9	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x7fc45009	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x7fce58fd	dev_load
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7feb2fc1	drm_object_attach_property
+EXPORT_SYMBOL	 vmlinux 0x7fec441d	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x7ff2b761	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x7ff3b187	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x800e4ffa	__muldi3
+EXPORT_SYMBOL	 vmlinux 0x8023528a	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x8024caee	drm_legacy_pci_exit
+EXPORT_SYMBOL	 vmlinux 0x8039b3fd	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x806da5d0	sm_keystore_slot_import
+EXPORT_SYMBOL	 vmlinux 0x8089ac6c	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 vmlinux 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 vmlinux 0x80a42196	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x80b5521a	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x80c18a14	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x80c4c319	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x80ca3927	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d1cfbd	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80d936a9	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x80e08440	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x80e7ba18	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x80f7018e	drm_property_create_object
+EXPORT_SYMBOL	 vmlinux 0x80fe3a15	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x8108ac7a	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 vmlinux 0x816a0013	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x8177e997	drm_gem_object_lookup
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 vmlinux 0x81b44fbe	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x81d0a7b6	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x81d0bab5	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x81d5ac24	mii_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81e916a2	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 vmlinux 0x81f799bc	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x81fd0a4e	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x822137e2	arm_heavy_mb
+EXPORT_SYMBOL	 vmlinux 0x822c84af	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x8245b187	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL	 vmlinux 0x8253b6ea	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x825761ba	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 vmlinux 0x825ba36c	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x82636cf4	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x8265b302	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0x8274fe6c	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8282e623	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x82960199	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 vmlinux 0x8299f832	drm_gem_handle_create
+EXPORT_SYMBOL	 vmlinux 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 vmlinux 0x82bf8683	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 vmlinux 0x82c0c7f2	dpu_be_configure_prefetch
+EXPORT_SYMBOL	 vmlinux 0x82ca7dd0	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x82ceac45	dpu_bliteng_get_empty_instance
+EXPORT_SYMBOL	 vmlinux 0x82d8db77	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x82e6721a	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x82f87c8d	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x82f886a1	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x83146237	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x8320bea8	__umodsi3
+EXPORT_SYMBOL	 vmlinux 0x8329a803	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x832e2334	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x8343dd81	module_put
+EXPORT_SYMBOL	 vmlinux 0x8351f2dc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x8356375b	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x836313d0	caam_blob_decap
+EXPORT_SYMBOL	 vmlinux 0x83741366	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x83782197	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x83798e64	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83916dea	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x83995eff	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x839c6213	drm_gem_prime_mmap
+EXPORT_SYMBOL	 vmlinux 0x83b71033	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x83ba7dbd	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x83cd0e6f	atomic_io_modify
+EXPORT_SYMBOL	 vmlinux 0x83cf91e3	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x83e0c50e	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x83e1e4f3	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x83e86707	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x83ed8026	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x83f0ea15	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x83fc6d72	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x840d834f	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x8456e9a7	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8457f039	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x8458def7	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x8477dd83	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x848afe3f	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x848bcda0	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 vmlinux 0x848c3561	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x8494c5b5	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x849b42b0	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL	 vmlinux 0x84b8024c	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0x84befacb	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x84d2b009	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x84da21bb	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x84f4c228	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x850f294f	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x8510d4f5	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x852c6940	drm_ioctl
+EXPORT_SYMBOL	 vmlinux 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 vmlinux 0x85551a23	drm_fb_helper_check_var
+EXPORT_SYMBOL	 vmlinux 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8568de57	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0x856d3684	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x856fdadd	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x857801b2	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 vmlinux 0x857f5e8a	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x8582ebff	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x85885796	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x85a192d0	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x85ad59ec	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85c80279	xps_needed
+EXPORT_SYMBOL	 vmlinux 0x85d1a7bd	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x85df16f2	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85f006fb	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x860dcbda	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x8617e19f	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x862bc663	memset16
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x864680f6	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865336c2	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x8654e10e	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x86688331	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 vmlinux 0x866f0a71	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x8678761f	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x867ebf97	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x8689b33d	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86c0b3cd	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x86d18f31	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 vmlinux 0x86d9a77a	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x86e65294	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x86e7fc80	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x86eb0c08	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe02d6	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x870d5a1c	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x870e00b0	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x87180f29	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 vmlinux 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 vmlinux 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 vmlinux 0x873d4705	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x87539500	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x87594a57	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x87747722	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x877c6720	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x87a75188	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x87aa92e0	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x87c49b56	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 vmlinux 0x87f9f44e	rpmsg_trysendto
+EXPORT_SYMBOL	 vmlinux 0x8824772b	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x882e78d6	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x8834a1a8	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x885991e6	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 vmlinux 0x8865c822	drm_atomic_helper_resume
+EXPORT_SYMBOL	 vmlinux 0x8881a2f6	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88831e6d	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x8883e05d	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x888ddb20	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x8894ddb6	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x88b19f45	system_serial
+EXPORT_SYMBOL	 vmlinux 0x88b2fc01	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x88ca8403	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 vmlinux 0x88db665b	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88dbffc6	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88e84ae8	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x88eb3d0a	drm_panel_bridge_remove
+EXPORT_SYMBOL	 vmlinux 0x88f0d681	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x88fdd66d	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x89127fd5	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0x8912c3b6	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x893e789b	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x894f501d	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x895ad1aa	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x895cc35f	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x896085f0	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 vmlinux 0x897921e5	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x897af5f1	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x89a0c638	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x89a1d377	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x89ab31bb	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89d55c0c	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x89f5f4c2	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x8a043407	cnstr_shdsc_skcipher_decap
+EXPORT_SYMBOL	 vmlinux 0x8a0b4978	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x8a156088	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1d9913	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x8a3b1285	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4e043e	drm_object_property_set_value
+EXPORT_SYMBOL	 vmlinux 0x8a4e47f7	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL	 vmlinux 0x8a6fc610	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x8a7094ba	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa30959	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ab86b59	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 vmlinux 0x8aba91e9	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x8abea9f5	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x8ac136ae	imx_sc_misc_get_control
+EXPORT_SYMBOL	 vmlinux 0x8ac2ecf2	usbnet_link_change
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac5c7e6	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x8af011d8	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8af457f5	imx_scu_enable_general_irq_channel
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b340bd5	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x8b340de8	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x8b499746	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x8b50ba59	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x8b55e440	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x8b5927a0	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8b9f433f	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 vmlinux 0x8ba2d251	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x8ba69fe7	get_acl
+EXPORT_SYMBOL	 vmlinux 0x8ba76930	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x8baee76d	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x8bb72082	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x8bbebce0	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x8bc1ed91	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x8bc94bb4	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x8bd06d7d	dpu_be_blit
+EXPORT_SYMBOL	 vmlinux 0x8bd094ef	drm_modeset_lock_all
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8be7d292	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x8bee75d7	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x8c030ab9	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x8c0a039f	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x8c113153	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x8c271a8c	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 vmlinux 0x8c469445	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x8c4ffb45	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 vmlinux 0x8c543306	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x8c5d254a	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x8c5e68fb	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x8c63e622	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x8c75e4fa	drm_panel_bridge_add
+EXPORT_SYMBOL	 vmlinux 0x8c7c26d2	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x8c7d0a8a	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x8c8569cb	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x8c9664f4	slot_dealloc
+EXPORT_SYMBOL	 vmlinux 0x8c9b6a9e	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x8ca10772	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x8ca8d430	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 vmlinux 0x8caf9305	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x8cd8c521	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x8cdbefbd	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x8ce13cc5	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x8cef7d5f	drm_client_modeset_commit
+EXPORT_SYMBOL	 vmlinux 0x8d1034d7	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x8d356190	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x8d3cdb98	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x8d49882b	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5ebb61	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x8d670c72	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d75d1db	lcdif_set_fb_hcrop
+EXPORT_SYMBOL	 vmlinux 0x8d7f08c9	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x8d8180d0	rpmsg_create_ept
+EXPORT_SYMBOL	 vmlinux 0x8d908c05	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 vmlinux 0x8db78893	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x8dd72388	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de0a27e	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x8de642c6	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x8de7d160	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfefc0d	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x8e0aab0d	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x8e0ef78a	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x8e116a88	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x8e181bab	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x8e188e54	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x8e1b26fe	drm_dp_cec_irq
+EXPORT_SYMBOL	 vmlinux 0x8e202b80	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x8e3240eb	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x8e3fdc67	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x8e72cc0e	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x8e75e4e6	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x8e789ebb	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x8e7ec66e	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x8e8393a8	drm_scdc_write
+EXPORT_SYMBOL	 vmlinux 0x8e865d3c	arm_delay_ops
+EXPORT_SYMBOL	 vmlinux 0x8e91a641	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x8e9eaebb	drm_send_event
+EXPORT_SYMBOL	 vmlinux 0x8ed1f87c	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 vmlinux 0x8ed8622e	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x8ed9218e	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x8edbfffb	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8ee53127	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 vmlinux 0x8eeb4f9c	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x8efddee2	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x8f0100f7	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x8f0f5df9	is_key_type
+EXPORT_SYMBOL	 vmlinux 0x8f224dda	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 vmlinux 0x8f265d32	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x8f2e6b0e	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 vmlinux 0x8f3625fe	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8f420573	key_move
+EXPORT_SYMBOL	 vmlinux 0x8f42737d	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x8f438f11	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x8f45787f	arm_coherent_dma_ops
+EXPORT_SYMBOL	 vmlinux 0x8f678b07	__stack_chk_guard
+EXPORT_SYMBOL	 vmlinux 0x8f6ecd4f	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x8f77b6d2	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x8f842369	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x8f907a7a	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fc6ee12	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fe35457	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x8fe4b91b	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x9007c646	drm_gem_mmap
+EXPORT_SYMBOL	 vmlinux 0x9009fad5	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x9015d0bd	register_sound_special
+EXPORT_SYMBOL	 vmlinux 0x9026885d	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x902e8962	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x903464e6	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x90366a0f	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x904a3416	override_creds
+EXPORT_SYMBOL	 vmlinux 0x905a1a74	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 vmlinux 0x90609db6	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x90631e9f	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x906f5252	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x9085d92c	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x908e3c59	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x909c1fa4	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x90c4da3a	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x90cadc76	drm_dp_link_power_up
+EXPORT_SYMBOL	 vmlinux 0x90d4f360	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x90f3be93	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x9113b0e8	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 vmlinux 0x91176aa4	drm_poll
+EXPORT_SYMBOL	 vmlinux 0x9120ce21	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x9134ac98	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x913cd746	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x91481ee9	igrab
+EXPORT_SYMBOL	 vmlinux 0x916489c1	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x9169c962	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x9174505b	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x91826ac5	drm_plane_create_color_properties
+EXPORT_SYMBOL	 vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91a9c232	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x91ba7a63	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x91c72e55	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x91e167e4	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 vmlinux 0x91e736ea	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x91ea1560	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x91ec6aa2	drm_event_reserve_init
+EXPORT_SYMBOL	 vmlinux 0x91f49339	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 vmlinux 0x91f6f44a	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x91fa7926	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 vmlinux 0x9207badb	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x921b07b1	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x922740bf	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x9229bd77	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x922d645b	i2c_bit_add_bus
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x9241c2a7	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x92629516	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 vmlinux 0x92668805	vli_cmp
+EXPORT_SYMBOL	 vmlinux 0x926dd0f6	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x9288e83e	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x929209f4	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x92b450c2	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92d5838e	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x92d7657e	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x92dc3f16	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x92e996a9	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x92eb365d	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x932e8975	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 vmlinux 0x934685e8	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x9346b6bf	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x93747c78	cnstr_shdsc_gcm_encap
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x93869920	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x938f99c5	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x93a3d34c	km_query
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93abf3ce	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93b6874d	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x93bb9deb	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x93bdaa1f	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x93d75731	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x93dccc25	drm_dp_dpcd_write
+EXPORT_SYMBOL	 vmlinux 0x93de19b2	seq_open
+EXPORT_SYMBOL	 vmlinux 0x93e7c5b2	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x940edf70	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x94128dac	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x94205154	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x9422addf	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x9425caca	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x94318cc6	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x943dc8aa	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x9445d7ab	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x9452da46	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x945eb81c	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x947e0f25	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x9482652b	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x948c2dda	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94ae1da7	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x94bd0182	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c839a2	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 vmlinux 0x94d66bfe	efi
+EXPORT_SYMBOL	 vmlinux 0x94f045e5	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x9504db5a	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x950992ff	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x951417d6	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 vmlinux 0x9517a904	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x9524bb65	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 vmlinux 0x9542cf4f	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955032fc	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x955f5103	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x95678cf6	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x9571e77f	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x957bd40e	d_move
+EXPORT_SYMBOL	 vmlinux 0x95847b29	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x95848de8	caam_jr_alloc
+EXPORT_SYMBOL	 vmlinux 0x9586b003	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x958e37ae	imx_sema4_mutex_create
+EXPORT_SYMBOL	 vmlinux 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 vmlinux 0x95b17c4e	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x95bc54f7	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x95bd53fe	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x95cf5da1	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 vmlinux 0x95dbe078	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x95dc57dc	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95eb86fa	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x962fa4b8	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x96318d08	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x9638f349	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x963b9998	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x96404d7f	drm_gem_private_object_init
+EXPORT_SYMBOL	 vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x9671dc09	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x968d7c4d	new_inode
+EXPORT_SYMBOL	 vmlinux 0x969138fe	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x96915f29	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x96a02b1f	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x96a62087	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x96b322ab	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x96bf5d9f	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c56420	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x96c689f2	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96f94b26	drm_atomic_commit
+EXPORT_SYMBOL	 vmlinux 0x9709dbc5	current_work
+EXPORT_SYMBOL	 vmlinux 0x97106714	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x97173b95	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x9721c92e	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x9723e830	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL	 vmlinux 0x973a18f1	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x973d0b1c	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x9768c674	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x976eca16	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 vmlinux 0x9784edb6	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x9794d77e	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a89871	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97ca8df8	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 vmlinux 0x97cfbc4d	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x97f149b7	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x97febaeb	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x98150bf9	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x982b5bac	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 vmlinux 0x983ac031	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x984cd64f	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9858f6d0	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x987c11c7	__pv_phys_pfn_offset
+EXPORT_SYMBOL	 vmlinux 0x98832da8	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x989059fb	sm_keystore_slot_dealloc
+EXPORT_SYMBOL	 vmlinux 0x98a21b5a	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x98a7cbdf	sk_free
+EXPORT_SYMBOL	 vmlinux 0x98a889c8	drm_plane_init
+EXPORT_SYMBOL	 vmlinux 0x98ba6d3f	register_busfreq_notifier
+EXPORT_SYMBOL	 vmlinux 0x98ba891e	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x98bab586	drm_writeback_prepare_job
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x99143590	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x9914d4d8	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x9919148d	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993b03df	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x993dba58	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x9942dc6e	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0x9950086b	drm_dev_unplug
+EXPORT_SYMBOL	 vmlinux 0x99513d06	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x996829ea	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x9982d62a	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99acac0c	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x99aff243	pps_event
+EXPORT_SYMBOL	 vmlinux 0x99ba7975	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x99bb8806	memmove
+EXPORT_SYMBOL	 vmlinux 0x99bd963b	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99ea21d7	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 vmlinux 0x9a1d7b96	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a298e86	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x9a362637	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x9a386577	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x9a52c084	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x9a57de8b	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a58a39f	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x9a6e80ab	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 vmlinux 0x9a7697af	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x9a7a5d47	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x9a80d934	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x9a8318ef	v7_coherent_kern_range
+EXPORT_SYMBOL	 vmlinux 0x9a884165	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x9a88bbb6	lcdifv3_en_shadow_load
+EXPORT_SYMBOL	 vmlinux 0x9a89a7a3	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x9aa792f0	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x9aa9cea4	trace_print_flags_seq_u64
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9abaf052	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x9ac35dfa	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 vmlinux 0x9ac5a2f5	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x9acb8066	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x9acc6729	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x9adc0271	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x9ae085cc	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x9ae578a5	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x9aefc64f	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 vmlinux 0x9b1b7306	xxh64
+EXPORT_SYMBOL	 vmlinux 0x9b1d1bb5	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b28f5a2	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x9b2ee873	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 vmlinux 0x9b415291	dput
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b451b35	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x9b50efbf	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x9b65b408	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x9b6a408b	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL	 vmlinux 0x9b7fa954	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x9b7ff1fd	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 vmlinux 0x9baf9474	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x9bc3aad4	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x9bd99691	drm_atomic_state_init
+EXPORT_SYMBOL	 vmlinux 0x9be937ea	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x9c16e4bb	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x9c2ced16	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x9c32826c	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x9c335905	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x9c48cd9f	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x9c4d438c	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x9c4e50e5	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x9c5dcd59	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x9c7419dc	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9c864539	sm_detect_keystore_units
+EXPORT_SYMBOL	 vmlinux 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 vmlinux 0x9c9d9882	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0x9caaeafe	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cbc1ebc	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x9cccaf22	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9d042a02	cnstr_shdsc_rfc4106_decap
+EXPORT_SYMBOL	 vmlinux 0x9d06ac33	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d226bd1	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x9d247e3d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0x9d3267be	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x9d392ebe	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x9d4fb0f0	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x9d50813a	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0x9d5cd559	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d6a86b3	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x9d6b45b0	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x9d6d1d46	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x9d94c742	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x9d96f5f5	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0x9d9b7ebd	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x9dc08a71	pgprot_kernel
+EXPORT_SYMBOL	 vmlinux 0x9dc183f5	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 vmlinux 0x9dd38517	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x9dd59b2b	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x9dd7d290	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x9de427e5	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e39f939	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x9e4e9296	dql_init
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e746bf3	drm_debugfs_remove_files
+EXPORT_SYMBOL	 vmlinux 0x9e7628d5	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 vmlinux 0x9e7f15bd	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x9e89c574	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x9e8b6b68	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x9e8e4df3	drm_syncobj_get_handle
+EXPORT_SYMBOL	 vmlinux 0x9e96d7a9	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x9e9a9cb4	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9eb0876a	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x9eb9101a	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x9ec1da0c	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed8e7dd	drm_fb_helper_fini
+EXPORT_SYMBOL	 vmlinux 0x9edda651	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x9ef3ed83	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x9ef66cdb	drm_mode_duplicate
+EXPORT_SYMBOL	 vmlinux 0x9efd53d0	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 vmlinux 0x9f10f699	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x9f1b261a	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f580765	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 vmlinux 0x9f854cdc	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x9f867044	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x9f8c4eb9	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fc9182e	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x9fd0160d	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 vmlinux 0x9fd82b93	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0x9ffc6887	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xa0056038	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0xa0070dda	generic_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa0109c13	fb_blank
+EXPORT_SYMBOL	 vmlinux 0xa013bea0	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xa02c22f2	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xa035fbd0	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa043778c	drm_writeback_signal_completion
+EXPORT_SYMBOL	 vmlinux 0xa04a0d3e	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0xa0629a10	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 vmlinux 0xa06df9e1	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 vmlinux 0xa07c64a5	sound_class
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa0add21a	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0aefe3e	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b809c9	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0xa0cae18a	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0xa0d60693	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0db5d3f	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xa0dbcfe0	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xa0e85aeb	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0ef2c32	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0ff6342	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0xa1075b87	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10d4d7b	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xa10e55aa	cnstr_shdsc_aead_givencap
+EXPORT_SYMBOL	 vmlinux 0xa110c685	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0xa1182486	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa125736a	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0xa1368a6c	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 vmlinux 0xa13db6d7	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 vmlinux 0xa14380c1	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa14c9faa	drm_gem_map_detach
+EXPORT_SYMBOL	 vmlinux 0xa14cbdcc	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0xa15d0131	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xa1701cd1	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0xa1715172	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0xa174ce05	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xa17bd3fc	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xa17e5a07	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0xa1b495fa	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xa1bc8321	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0xa1c97ea5	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xa1d131ed	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1e0360b	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa23737bb	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 vmlinux 0xa24491bf	ida_free
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25981d4	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xa25a4da5	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa25f1903	sock_efree
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa272c38a	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2a7d830	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xa2adfcc4	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xa2b05126	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xa2e0a0a5	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 vmlinux 0xa2f6fd80	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0xa2f90ee8	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0xa2ff9be6	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xa303032d	filp_close
+EXPORT_SYMBOL	 vmlinux 0xa310fab3	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 vmlinux 0xa31cdfe0	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xa32100bc	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0xa3392d24	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 vmlinux 0xa33f7655	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 vmlinux 0xa35944f5	bio_split
+EXPORT_SYMBOL	 vmlinux 0xa36755ac	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xa36ff60c	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0xa3787829	arm_dma_ops
+EXPORT_SYMBOL	 vmlinux 0xa381944f	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xa38878f8	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0xa38ebe7e	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xa3979518	drm_helper_probe_detect
+EXPORT_SYMBOL	 vmlinux 0xa39878ef	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xa3a0ada0	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xa3a2d56b	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0xa3a46a34	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0xa3b22c06	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xa3b82210	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0xa3b8718c	ppp_input
+EXPORT_SYMBOL	 vmlinux 0xa3c1ca49	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xa3c93c4a	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xa3cc9b50	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa3d854ef	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0xa3ddff19	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0xa3e9370b	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0xa3ea603b	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0xa3ee290e	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xa41e5276	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0xa448a69b	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xa4501fce	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0xa46db01d	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 vmlinux 0xa47f6512	drm_gtf_mode_complex
+EXPORT_SYMBOL	 vmlinux 0xa484195c	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0xa488d3d3	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xa48d1bbd	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 vmlinux 0xa49dea70	cnstr_shdsc_ahash
+EXPORT_SYMBOL	 vmlinux 0xa4a2fde3	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xa4acaf0f	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xa4af956a	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xa4b7f2cc	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xa4be4210	finish_open
+EXPORT_SYMBOL	 vmlinux 0xa4dbbeeb	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xa4e5186b	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0xa4f40fc3	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xa4f41205	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xa4fda6ec	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 vmlinux 0xa50bbc15	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 vmlinux 0xa50ddd72	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0xa51f16c7	caam_little_end
+EXPORT_SYMBOL	 vmlinux 0xa526bb95	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xa54ad794	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xa54ce786	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5580f1d	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0xa564d3f2	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0xa5684076	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xa56e56f5	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xa56fde1c	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xa577ceba	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xa58a4271	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0xa5ab6971	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xa5afb676	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0xa5e9b642	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0xa5ed38f7	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0xa5fb512d	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xa601e42b	get_key_conf
+EXPORT_SYMBOL	 vmlinux 0xa60921f8	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xa60ca962	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61e9cf8	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xa632dbbe	hid_bus_type
+EXPORT_SYMBOL	 vmlinux 0xa65c98e6	padata_free
+EXPORT_SYMBOL	 vmlinux 0xa6647822	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0xa671ea36	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0xa679abff	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xa67c385b	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa68613dd	get_jiffies_64
+EXPORT_SYMBOL	 vmlinux 0xa68bc559	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa6997cf5	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xa6998418	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xa69c7bad	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xa6a0d293	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xa6a7a2ad	div_s64_rem
+EXPORT_SYMBOL	 vmlinux 0xa6af79fb	drm_plane_force_disable
+EXPORT_SYMBOL	 vmlinux 0xa6b59103	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xa6c16562	lcdif_vblank_irq_get
+EXPORT_SYMBOL	 vmlinux 0xa6d998e2	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xa6dd3737	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xa6e88fbf	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 vmlinux 0xa71f99f2	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xa72c5b95	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xa73ee62b	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xa7451ac6	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xa7464b09	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa74cbc0e	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xa7543281	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xa759ebb1	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 vmlinux 0xa7706e6d	__module_get
+EXPORT_SYMBOL	 vmlinux 0xa770b080	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0xa775a9d5	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa77e1174	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0xa784ef76	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xa7903c01	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xa7ad31f5	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xa7b3181c	up_read
+EXPORT_SYMBOL	 vmlinux 0xa7c0b179	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xa7d1e24b	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xa7d288d7	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0xa7de1306	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7e64362	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7f1b5cf	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0xa7fd054d	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0xa805715f	lcdif_set_mode
+EXPORT_SYMBOL	 vmlinux 0xa80acb56	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xa8225d0d	drm_property_replace_global_blob
+EXPORT_SYMBOL	 vmlinux 0xa823b031	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0xa826fb31	cqhci_resume
+EXPORT_SYMBOL	 vmlinux 0xa8315110	drm_send_event_locked
+EXPORT_SYMBOL	 vmlinux 0xa83c470d	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0xa8404a28	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa8464315	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa855ec26	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xa8610667	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xa8652384	drm_connector_cleanup
+EXPORT_SYMBOL	 vmlinux 0xa8697356	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xa87723fd	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xa87dac69	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0xa88bfe6c	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xa895b812	drm_i2c_encoder_init
+EXPORT_SYMBOL	 vmlinux 0xa8a08caf	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xa8a62d5e	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8a9ca49	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xa8c40917	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xa8c97a60	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8eae2d4	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0xa8ec7d34	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8f7f280	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xa900cad1	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0xa917fccd	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0xa92ed093	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 vmlinux 0xa93783fe	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0xa9399689	drm_crtc_from_index
+EXPORT_SYMBOL	 vmlinux 0xa93b554d	drm_crtc_vblank_put
+EXPORT_SYMBOL	 vmlinux 0xa9487fae	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xa9535c27	cnstr_shdsc_aead_encap
+EXPORT_SYMBOL	 vmlinux 0xa959783f	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xa960f8be	rpmsg_send_offchannel
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa96880f3	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0xa968cf8a	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0xa97c88ca	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xa980c660	caam_dump_sg
+EXPORT_SYMBOL	 vmlinux 0xa99d1b30	mtd_concat_destroy
+EXPORT_SYMBOL	 vmlinux 0xa9d14165	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0xa9e270e7	skb_put
+EXPORT_SYMBOL	 vmlinux 0xa9e38e0f	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xa9e6e670	bio_chain
+EXPORT_SYMBOL	 vmlinux 0xa9e75be2	drm_property_create_blob
+EXPORT_SYMBOL	 vmlinux 0xa9eae5c5	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xa9ff36be	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0xaa0a2803	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0xaa19e4aa	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0xaa21c6c2	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xaa2c171d	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xaa313fe4	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xaa44401f	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa711224	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xaa8707ca	slot_alloc
+EXPORT_SYMBOL	 vmlinux 0xaab732a9	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xaabb1e22	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 vmlinux 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 vmlinux 0xaacb5c52	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaadafc0a	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0xaae3ce5f	rproc_add
+EXPORT_SYMBOL	 vmlinux 0xaaeee32a	registered_fb
+EXPORT_SYMBOL	 vmlinux 0xaaf753e4	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0xaafd9237	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xaafdec5a	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xab13cf43	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xab1d21ec	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xab26bebd	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xab33df68	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab4290c2	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xab549062	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0xab5b7b55	start_tty
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab639c91	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab6564a8	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab72644f	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab79de3d	drm_gem_lock_reservations
+EXPORT_SYMBOL	 vmlinux 0xab80ab58	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xab81991b	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xab97b0af	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xab9db3e6	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0xab9fd7c8	cqhci_init
+EXPORT_SYMBOL	 vmlinux 0xaba1114c	cqhci_irq
+EXPORT_SYMBOL	 vmlinux 0xabc2b104	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabcbad88	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xabd4a269	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0xabdf843f	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xabe8f05e	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 vmlinux 0xabeff8d1	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac018a96	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0xac1775ca	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac20e02a	flush_signals
+EXPORT_SYMBOL	 vmlinux 0xac2286e3	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac32db29	drm_framebuffer_init
+EXPORT_SYMBOL	 vmlinux 0xac4804cd	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac75a4e1	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xac91cc46	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb2ebd4	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0xacb31ecf	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0xacb497dc	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xacc4192d	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xacd05047	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacefdf44	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xacf24dda	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf5a785	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad00f1d8	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0c7e6b	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xad0e6bd4	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xad21fc00	fb_class
+EXPORT_SYMBOL	 vmlinux 0xad300309	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 vmlinux 0xad39b68d	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xad5be6e4	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7cd813	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad9149f5	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0xadad7577	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc6bcd8	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xadd22e70	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0xadf0d034	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae08ded0	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xae0f87b4	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xae1ef7f6	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0xae1f1a26	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae353d77	arm_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0xae5175b1	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0xae831583	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xae831d31	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0xae85352d	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xae9849dd	__request_region
+EXPORT_SYMBOL	 vmlinux 0xae98cb0a	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xae9cef5e	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xae9f9f66	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xaea415c7	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xaed023f7	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 vmlinux 0xaed945f9	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xaeda37ee	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 vmlinux 0xaee63b69	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 vmlinux 0xaee95991	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xaef35912	tc6393xb_lcd_set_power
+EXPORT_SYMBOL	 vmlinux 0xaefaf7c0	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xaf16628a	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xaf16f615	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf50e76d	elf_set_personality
+EXPORT_SYMBOL	 vmlinux 0xaf58f29f	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 vmlinux 0xaf84865e	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0xaf8aa518	system_rev
+EXPORT_SYMBOL	 vmlinux 0xaf9a0a2a	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0xafa48ddb	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xafbb73e1	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0xafc55070	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xafd4f084	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0xafe9292e	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0xafede535	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0xaff03c0a	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xaff16441	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xaff1671e	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xb0037b23	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xb00dff6e	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xb011eae1	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb01ca030	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xb025bda2	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xb028fc19	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xb03d4a5d	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xb047f8b3	_dev_info
+EXPORT_SYMBOL	 vmlinux 0xb04cc866	sm_keystore_slot_read
+EXPORT_SYMBOL	 vmlinux 0xb04d272f	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xb04d7847	lcdif_get_bus_fmt_from_pix_fmt
+EXPORT_SYMBOL	 vmlinux 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb06ead97	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 vmlinux 0xb075f639	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xb0864131	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a3c5d2	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xb0b6ca9e	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0xb0c66dd4	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xb0cd7e19	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 vmlinux 0xb0d1b5e5	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e8e12a	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0xb0f8a1fb	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0xb10b2685	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb1210547	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12a68a2	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb1367428	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0xb14372e2	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xb1496d63	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb157ccf5	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb181f314	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xb1a53995	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xb1acf00f	irq_stat
+EXPORT_SYMBOL	 vmlinux 0xb1ad28e0	__gnu_mcount_nc
+EXPORT_SYMBOL	 vmlinux 0xb1ae9fc7	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xb1b78cfa	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0xb1b95672	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0xb1beca75	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xb1c2b9df	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb2107db8	devm_rproc_add
+EXPORT_SYMBOL	 vmlinux 0xb225ea34	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb23a3409	drm_connector_set_tile_property
+EXPORT_SYMBOL	 vmlinux 0xb23bb6b3	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0xb24320d6	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 vmlinux 0xb287b1cb	submit_bh
+EXPORT_SYMBOL	 vmlinux 0xb29b6968	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xb2a0ef96	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2d48a2e	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2df0b12	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xb2f07d5d	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xb2f33246	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30e125f	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0xb3126b8c	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0xb3271d26	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xb3296b6e	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xb3595edc	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xb36437ad	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xb3667805	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb367c984	mxc_set_irq_fiq
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb36a2ca7	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xb37dca2b	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xb37f0ffb	drm_dev_put
+EXPORT_SYMBOL	 vmlinux 0xb383c448	drm_pci_alloc
+EXPORT_SYMBOL	 vmlinux 0xb3968615	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xb397644c	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xb3b61e9c	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0xb3c99ee6	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3d3596a	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xb3e7ed52	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb3fc37de	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xb409619d	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xb410b498	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb426ad62	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xb4471bfe	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xb4517096	register_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xb4519a8f	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0xb4631d50	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xb46478cc	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xb467a3fb	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xb46b231e	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xb4759a52	drm_gem_object_put
+EXPORT_SYMBOL	 vmlinux 0xb476c8f4	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb476db83	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0xb482ccdf	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a3f264	phy_start
+EXPORT_SYMBOL	 vmlinux 0xb4b1e6d1	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xb4b6ac5a	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xb4b849c7	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xb4d23e17	dqput
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f3135b	ion_device_add_heap
+EXPORT_SYMBOL	 vmlinux 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 vmlinux 0xb5275c21	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 vmlinux 0xb5290bbb	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0xb5384b52	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0xb53acca9	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xb53d12fd	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0xb53ec4cc	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 vmlinux 0xb54235bd	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xb561ac5b	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xb561dae8	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xb564d70c	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xb56bd61a	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xb56cb834	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb58b655e	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xb593f5bb	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5a7d406	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0xb5a8a5a8	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xb5a962c6	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xb5a9c24b	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5b451e6	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xb5bf33ef	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xb5c1f08a	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xb5f5d22f	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xb606e75b	drm_irq_install
+EXPORT_SYMBOL	 vmlinux 0xb60f0de7	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 vmlinux 0xb614bbc7	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0xb61df812	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 vmlinux 0xb621049b	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xb62f451c	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb64b3e1b	drm_state_dump
+EXPORT_SYMBOL	 vmlinux 0xb64e2726	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xb6564f70	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb6628554	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xb68da3a1	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb69661fd	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0xb6a4ccaa	cnstr_desc_black_key
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6a87498	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xb6b493eb	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xb6b6284e	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0xb6c537e5	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0xb6d267f5	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6f4b4c1	drm_mode_create_tile_group
+EXPORT_SYMBOL	 vmlinux 0xb703fd2d	contig_page_data
+EXPORT_SYMBOL	 vmlinux 0xb708e458	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0xb7111364	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0xb714f314	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0xb71589f0	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xb725b5b8	drm_modeset_backoff
+EXPORT_SYMBOL	 vmlinux 0xb729b292	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xb7362c90	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xb7566933	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb75e883d	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xb761ab1b	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xb7628caf	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xb766e607	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb79b80c7	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xb79c777c	rproc_memcpy
+EXPORT_SYMBOL	 vmlinux 0xb7a890ff	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xb7ab110f	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xb7bb850d	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d2c9ab	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 vmlinux 0xb7df0e97	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xb7eda5a3	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xb7f4025a	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xb7ff182f	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xb816e136	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0xb818c14b	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xb81a7be0	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xb81c11c1	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xb837f0f2	drm_syncobj_find
+EXPORT_SYMBOL	 vmlinux 0xb84c3561	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb864b84b	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0xb86a3d8e	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0xb88484ae	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xb890a8e2	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b519fb	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0xb8b9781a	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 vmlinux 0xb8c183a7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xb8c66c45	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xb8c9aef4	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xb8e69358	drm_crtc_vblank_count
+EXPORT_SYMBOL	 vmlinux 0xb8ed25c3	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0xb8f9cd9b	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xb902cb2f	eth_header
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb91b9683	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xb928159e	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0xb9332aed	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb94e240c	kobject_init
+EXPORT_SYMBOL	 vmlinux 0xb95aa4b3	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xb95f98d6	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xb980645a	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xb98acc8d	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 vmlinux 0xb98df45a	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0xb99600cf	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xb99a8167	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xb9a21d8e	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xb9abfe5e	bdi_put
+EXPORT_SYMBOL	 vmlinux 0xb9acd3d9	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0xb9b8a5d0	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0xb9ca5f10	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 vmlinux 0xb9d7f4a1	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xb9dd464e	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0xb9e68ff8	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9ee606c	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0xb9f134c2	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xb9fb7cba	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0xba16a495	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xba17c108	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xba2806d6	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0xba32b9d8	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba5f3cda	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xba623184	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0xba6e3ce9	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 vmlinux 0xba8c609d	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0xbaae6ce4	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0xbab4aa12	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xbab993cd	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xbac3cd85	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xbac8c2b8	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xbad27058	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xbaeb3e3f	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0xbaef4675	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xbaf434c2	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb0f8f7b	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0xbb14eb31	bcmp
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb29ecde	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xbb33fee1	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb56082f	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xbb6cd455	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xbb72d4fe	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xbba748b7	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xbbad828e	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0xbbb04771	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0xbbe30181	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0xbbf3a3fc	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xbbf7c4f2	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xbbfb4a42	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0xbc024bd9	drm_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xbc030486	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xbc06114b	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xbc08a334	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xbc0a0db3	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 vmlinux 0xbc0b704b	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0xbc10dd97	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xbc113e90	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0xbc13df8e	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xbc2169cd	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xbc7c0cba	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0xbc8e662c	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0xbc8e81c3	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcaeb27b	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xbcafcd59	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xbcc5d073	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xbce3f9d0	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xbd0f9965	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0xbd1b06ad	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xbd3dbe07	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 vmlinux 0xbd41d354	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xbd60510e	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0xbd67c092	caam_imx
+EXPORT_SYMBOL	 vmlinux 0xbd6b8875	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xbd71b9bc	seq_read
+EXPORT_SYMBOL	 vmlinux 0xbd7791f0	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0xbd7cb9ff	drm_client_rotation
+EXPORT_SYMBOL	 vmlinux 0xbd820297	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0xbd9719f5	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0xbd9b9ae9	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xbd9f665a	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xbda50a0c	crypto_sha256_arm_finup
+EXPORT_SYMBOL	 vmlinux 0xbda9a056	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0xbdb10696	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0xbdc5790c	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xbdcf8797	rproc_of_parse_firmware
+EXPORT_SYMBOL	 vmlinux 0xbdeb195f	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xbe0e3cba	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0xbe30ec36	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xbe36f156	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0xbe3747bf	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xbe453b05	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe58206e	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0xbe593a70	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe5f365c	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0xbe5fcf7f	drm_dp_start_crc
+EXPORT_SYMBOL	 vmlinux 0xbe760dd8	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xbe93feb8	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0xbea19d65	drm_dp_check_act_status
+EXPORT_SYMBOL	 vmlinux 0xbeb7b970	dm_io
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee537cc	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef82f31	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xbefaf028	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xbf078540	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xbf0c7246	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xbf1becd2	drm_dev_enter
+EXPORT_SYMBOL	 vmlinux 0xbf44570e	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xbf4c9412	drm_set_preferred_mode
+EXPORT_SYMBOL	 vmlinux 0xbf4d4539	udp_table
+EXPORT_SYMBOL	 vmlinux 0xbf53ea1a	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0xbf7347b2	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xbf883ae4	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xbf8a106c	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xbf91aad7	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfb3588b	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0xbfca2f53	cqhci_deactivate
+EXPORT_SYMBOL	 vmlinux 0xbfcbc0d2	stmp_reset_block
+EXPORT_SYMBOL	 vmlinux 0xbfdf7bc3	mempool_create
+EXPORT_SYMBOL	 vmlinux 0xbfe83016	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xbfeb74e8	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc03484f7	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xc03e6634	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 vmlinux 0xc064aa3a	km_report
+EXPORT_SYMBOL	 vmlinux 0xc0685fb2	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc0863cb9	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc099c12c	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xc0a5b7d5	mii_check_gmii_support
+EXPORT_SYMBOL	 vmlinux 0xc0a98385	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc0aaaa2d	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xc0abcd08	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xc0ae96a4	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xc0b05617	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0c60524	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc0c70687	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xc0d77caf	drm_dp_aux_register
+EXPORT_SYMBOL	 vmlinux 0xc0da0e99	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0xc0f99782	drm_client_modeset_dpms
+EXPORT_SYMBOL	 vmlinux 0xc0fb357a	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc0ff21c1	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xc101c86d	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0xc1037b98	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xc104368b	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xc108a12d	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 vmlinux 0xc10ae390	imx8mp_hdmi_pvi_enable
+EXPORT_SYMBOL	 vmlinux 0xc151493f	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc15f4ed8	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc16da41c	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xc1982e8e	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xc1b5f795	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xc1c2b1e1	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xc1d6c435	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1e39092	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xc1f3dab0	drm_gem_object_release
+EXPORT_SYMBOL	 vmlinux 0xc2059c64	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0xc2094228	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xc21b63ed	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xc221bcad	set_tag_object_header_conf
+EXPORT_SYMBOL	 vmlinux 0xc23f1c5f	usbnet_manage_power
+EXPORT_SYMBOL	 vmlinux 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 vmlinux 0xc261671a	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0xc2667584	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc271c3be	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc2740d9e	rpmsg_register_device
+EXPORT_SYMBOL	 vmlinux 0xc2a23969	snvs_secvio_install_handler
+EXPORT_SYMBOL	 vmlinux 0xc2acc033	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xc2afd2b0	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xc2b1d4e1	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xc2be9582	drm_ioctl_permit
+EXPORT_SYMBOL	 vmlinux 0xc2cae53e	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xc2cf2dde	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0xc2d1d0f9	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e6b92f	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xc2e7ae2a	init_tag_object_header
+EXPORT_SYMBOL	 vmlinux 0xc2ede9c5	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 vmlinux 0xc30b4860	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc330b151	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xc3375873	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0xc3473677	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0xc34b6d37	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0xc358aaf8	snprintf
+EXPORT_SYMBOL	 vmlinux 0xc3647a02	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xc367d565	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0xc372af3e	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0xc37bfa10	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc3a2be2e	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xc3d2f6b2	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xc3d8c9d5	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xc3e2ec56	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xc3f2e11c	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xc4146cc8	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xc4147a16	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc41f81f6	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc422dc21	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xc434baf6	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xc4359584	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xc43b88bf	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0xc43f9208	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xc4594045	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xc46182eb	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xc4657dc8	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xc474da8f	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc4817c43	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xc499c5bf	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xc4a41ea1	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xc4a815f6	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xc4b3ba0c	nla_put
+EXPORT_SYMBOL	 vmlinux 0xc4b3f76a	drm_crtc_vblank_off
+EXPORT_SYMBOL	 vmlinux 0xc4ebd5d0	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xc4f1518d	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0xc4f984d0	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xc4f9d9df	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xc50398fe	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xc5050ee2	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0xc50a0487	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xc525cf48	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xc53037eb	of_drm_find_bridge
+EXPORT_SYMBOL	 vmlinux 0xc54098d3	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xc5520ee4	drm_crtc_check_viewport
+EXPORT_SYMBOL	 vmlinux 0xc562320d	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xc569f915	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xc5720708	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0xc57553f0	input_event
+EXPORT_SYMBOL	 vmlinux 0xc581500f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xc58499b2	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5afbe00	clk_get
+EXPORT_SYMBOL	 vmlinux 0xc5b8cb6c	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 vmlinux 0xc5cbdc54	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0xc5d7e95b	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0xc5ee6c48	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0xc5ee9694	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xc5f7dfeb	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60e6937	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xc62a7a9d	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc62eb188	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc6655a86	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xc66b868b	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xc66be666	proc_remove
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc67a0cba	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xc691e88e	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xc69e0c46	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xc69e93bd	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0xc69ee85b	md_error
+EXPORT_SYMBOL	 vmlinux 0xc6c0a92f	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 vmlinux 0xc6c175c1	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xc6c47e2d	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0xc6c58e20	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6d9913a	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0xc6efd2a6	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xc6f3b3fc	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f50562	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc73e1f58	padata_stop
+EXPORT_SYMBOL	 vmlinux 0xc7657a46	dev_printk
+EXPORT_SYMBOL	 vmlinux 0xc770be3c	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xc7725d0f	drm_dp_downstream_id
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc781ca4d	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c42bcf	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 vmlinux 0xc7cc863d	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7d558ee	drm_connector_list_iter_next
+EXPORT_SYMBOL	 vmlinux 0xc7dd5e33	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0xc7de66a0	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0xc7e53d48	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0xc7e87d1c	processor
+EXPORT_SYMBOL	 vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL	 vmlinux 0xc7f600f4	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xc7f6e83f	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xc7fd1b15	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0xc8097fe4	drm_gem_prime_export
+EXPORT_SYMBOL	 vmlinux 0xc812c11b	console_start
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc8254b67	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0xc8277b85	drm_dev_get
+EXPORT_SYMBOL	 vmlinux 0xc8339e24	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xc8411c80	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84eedf5	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xc85563e6	mntput
+EXPORT_SYMBOL	 vmlinux 0xc85726af	iget_failed
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8736e27	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a067dd	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0xc8a8ee8c	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8ad35c6	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 vmlinux 0xc8b58a25	__memset64
+EXPORT_SYMBOL	 vmlinux 0xc8cab2fa	drm_mode_validate_driver
+EXPORT_SYMBOL	 vmlinux 0xc8d2e069	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xc8f36d4b	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0xc8f4451b	split_key_done
+EXPORT_SYMBOL	 vmlinux 0xc8fa1e27	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0xc9017dfc	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xc920cea9	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0xc9374935	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xc94888d3	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xc94d8e3b	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0xc9589108	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xc9601b72	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9792fec	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc98ca3c8	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xc99e7432	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xc9a1f605	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xc9a75655	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 vmlinux 0xc9bf0e23	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xc9da4733	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e63c98	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0xc9efe3a7	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 vmlinux 0xc9f46daa	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xc9fb852a	can_nice
+EXPORT_SYMBOL	 vmlinux 0xc9fdd72b	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 vmlinux 0xca037728	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xca03c77a	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xca0484ee	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xca083041	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xca0e8ce4	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xca1d4f88	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca4382a2	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0xca5a7528	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xca6530cd	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca813ce6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xca8f0396	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xca935964	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca99e994	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xcae2b76f	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcafae113	cnstr_shdsc_skcipher_encap
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb21b38b	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xcb2249d5	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 vmlinux 0xcb3a94f9	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb502d78	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xcb606eb9	xa_load
+EXPORT_SYMBOL	 vmlinux 0xcb71292d	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xcb7a5453	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xcb8a4fa1	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xcb8c753b	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xcb9d4430	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbab48c8	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc405bd	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd99d95	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xcbdbb7b0	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xcbebf7ce	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xcbf1dbd0	utf8len
+EXPORT_SYMBOL	 vmlinux 0xcc1d22b2	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xcc1eb55f	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0xcc219d8d	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc2ceb8e	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc50a055	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc6da199	sm_init_keystore
+EXPORT_SYMBOL	 vmlinux 0xcc79b8dc	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xcc803672	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0xcc827982	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0xcc9a292f	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcc9b07e2	drm_gem_map_attach
+EXPORT_SYMBOL	 vmlinux 0xccabde25	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xccc33b31	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xccdc975e	drm_handle_vblank
+EXPORT_SYMBOL	 vmlinux 0xccdd8bb2	drm_panel_disable
+EXPORT_SYMBOL	 vmlinux 0xccec1adf	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd00abbc	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcd01c48f	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcd0fb94d	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd30b95a	tmio_core_mmc_clk_div
+EXPORT_SYMBOL	 vmlinux 0xcd37cafe	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0xcd3a2668	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xcd3c1b87	dns_query
+EXPORT_SYMBOL	 vmlinux 0xcd4bf70b	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xcd56210b	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xcd56e6a5	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL	 vmlinux 0xcd6fe7e0	try_module_get
+EXPORT_SYMBOL	 vmlinux 0xcd7c21a3	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xcd7dbbe8	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 vmlinux 0xcdaa6c81	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 vmlinux 0xcdad3df7	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdc46e16	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0xcde0755c	dpu_be_put
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xce0f020d	rpmsg_sendto
+EXPORT_SYMBOL	 vmlinux 0xce11c463	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xce224cd8	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xce282f8e	drm_modeset_drop_locks
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce3c88df	drm_pci_free
+EXPORT_SYMBOL	 vmlinux 0xce3ef8f2	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xce412922	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4fd5b6	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce5ea581	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xce6796d3	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0xce6b768a	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xce6ebc72	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xce7f680d	do_map_probe
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xcebbd6c1	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xcecfeb1e	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xceda8b5e	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xceeb842a	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf01f610	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 vmlinux 0xcf12ce58	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xcf186ea8	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf27c959	unlock_page
+EXPORT_SYMBOL	 vmlinux 0xcf3fac84	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xcf519335	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0xcf5aa0c3	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0xcf5d7493	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xcf736577	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0xcf7e1d1d	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xcf86cdac	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xcf8a8b69	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcf9e5948	lcdifv3_vblank_irq_get
+EXPORT_SYMBOL	 vmlinux 0xcfa682ec	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0xcfb9e0e3	ioremap_page
+EXPORT_SYMBOL	 vmlinux 0xcfcbb926	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0xcff133e5	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xd00697b0	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 vmlinux 0xd00c68f5	caam_jr_free
+EXPORT_SYMBOL	 vmlinux 0xd01170fd	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xd0260bc2	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xd03660d6	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd0462e77	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0xd0464a88	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04febe9	arm_elf_read_implies_exec
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0666f27	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xd07a9d05	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xd0975885	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xd09f2a2d	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a39c33	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xd0bfff6a	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xd0c40c38	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xd0c8ae98	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xd0f94746	drm_invalid_op
+EXPORT_SYMBOL	 vmlinux 0xd0fa84f9	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0xd1021a7e	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd13f58f4	drm_panel_get_modes
+EXPORT_SYMBOL	 vmlinux 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 vmlinux 0xd1545953	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xd161dd11	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xd16558d8	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0xd17631e2	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd1aaf569	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xd1b0ec55	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1ee9672	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xd1f47d19	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xd1f8e8ba	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xd1fc5f14	drm_flip_work_queue
+EXPORT_SYMBOL	 vmlinux 0xd20b4ad6	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0xd22981d3	drm_property_add_enum
+EXPORT_SYMBOL	 vmlinux 0xd22dd206	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0xd22e9fa7	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd261b755	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0xd261cf85	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xd263b154	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xd26464da	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0xd2659c24	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xd26c3719	inode_permission
+EXPORT_SYMBOL	 vmlinux 0xd27160cb	ether_setup
+EXPORT_SYMBOL	 vmlinux 0xd271b901	register_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0xd2757bd4	dqget
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27c447f	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xd290984f	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xd2b9dfee	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xd2c2ef70	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xd2d1690f	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2eda7a7	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xd2f63328	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0xd31943da	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd32579b1	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xd32d6c08	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd338ce20	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 vmlinux 0xd349ee92	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 vmlinux 0xd34fe7e4	drm_property_create_bitmask
+EXPORT_SYMBOL	 vmlinux 0xd354dd21	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35f75a1	match_string
+EXPORT_SYMBOL	 vmlinux 0xd361cba4	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd3718b96	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xd37ae5d1	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0xd38cf9f3	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd38e4f6d	drm_mode_prune_invalid
+EXPORT_SYMBOL	 vmlinux 0xd395a28e	devm_rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xd39fa6ab	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3a24090	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xd3abe9a9	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xd3b20daf	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0xd3ba02cc	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f945b1	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xd404f911	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0xd405446a	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40aec6c	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xd40ba686	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xd4132cc6	drm_gem_fence_array_add
+EXPORT_SYMBOL	 vmlinux 0xd4144c19	drm_master_internal_release
+EXPORT_SYMBOL	 vmlinux 0xd4384465	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0xd44e0ec5	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xd45ddb66	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xd46b54dd	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xd47091df	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xd47fc7cf	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd49e53b9	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a33abe	drm_open
+EXPORT_SYMBOL	 vmlinux 0xd4b9c91f	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4cf0064	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xd4d073e1	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xd4da5e1e	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xd4e2a7a6	drm_primary_helper_destroy
+EXPORT_SYMBOL	 vmlinux 0xd4e2f0e4	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0xd4ea36a6	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0xd4ede5b7	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xd4f37cd6	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0xd4f4e478	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xd4fd6a2a	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xd51132df	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd5354aa1	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xd53f83f3	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd54347ea	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xd579b849	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xd57eaab4	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd592d02b	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xd5a1091c	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5da9f9f	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0xd5deb127	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xd5f52d4f	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd60f14c6	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 vmlinux 0xd627480b	strncat
+EXPORT_SYMBOL	 vmlinux 0xd62c8e63	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 vmlinux 0xd63aa611	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xd63fafc2	div64_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xd6582ab0	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xd65c94ff	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0xd660cdd6	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xd66bf7dc	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd6a7563b	drm_atomic_state_clear
+EXPORT_SYMBOL	 vmlinux 0xd6b80796	rpmsg_find_device
+EXPORT_SYMBOL	 vmlinux 0xd6ca12b7	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xd6cb208a	serio_bus
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6f64656	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd702e9dc	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70d9d2b	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0xd715ce90	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xd718bb41	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd74d741e	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0xd7618383	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xd7637596	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xd7804af0	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0xd798ecce	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0xd7a07fb2	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xd7a4feee	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0xd7ac787b	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xd7b0a3a5	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d35dd8	_raw_read_unlock
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd80db5a5	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xd814c1e3	kmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xd81510c4	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0xd83dc5e6	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xd8410611	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xd84241d5	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xd8559f3b	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd875584a	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xd8768152	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xd87a8b83	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xd88433d6	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xd88768eb	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0xd8879d6a	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xd88e0bfb	kern_path
+EXPORT_SYMBOL	 vmlinux 0xd8926697	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8c3f0d7	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xd8cebdd0	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xd8cf9ce0	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd8d5674f	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0xd8d6c266	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xd9021644	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xd90551b8	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xd905a4e8	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0xd91f6ab6	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xd9363813	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xd96a9217	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 vmlinux 0xd983b6d1	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd98b2844	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xd98e1590	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd99198b4	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xd9b9c26c	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL	 vmlinux 0xd9d42bde	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e7d8c6	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0xda06698c	drm_lspcon_set_mode
+EXPORT_SYMBOL	 vmlinux 0xda1b673b	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xda270877	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0xda2bd6ea	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda575cb4	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xda5d90d2	drm_clflush_sg
+EXPORT_SYMBOL	 vmlinux 0xda6fc0b3	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda74f160	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xda759c5e	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xdab1926c	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0xdab74b45	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xdac47d9e	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdad051ee	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xdad97f94	__raw_writesw
+EXPORT_SYMBOL	 vmlinux 0xdadda5c0	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0xdae36dfe	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xdaf8598b	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xdb03a2ab	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xdb114fc4	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xdb2525f8	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0xdb33c982	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0xdb4a67f6	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0xdb5b281e	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb74c69a	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb81e2fc	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xdb9ca3c5	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdba4c818	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0xdbaae4ad	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xdbbcf8e6	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0xdbbdf988	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xdbc398ba	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xdbe82cc7	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0xdbea9d8a	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xdc0f8936	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc33856e	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xdc371398	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc430db2	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc4ddb82	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5941f3	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 vmlinux 0xdc5c7961	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xdc5cecd4	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xdc5db975	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xdc6b7b2e	drm_gem_objects_lookup
+EXPORT_SYMBOL	 vmlinux 0xdc6e6b1c	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xdc6ec081	dpu_be_get
+EXPORT_SYMBOL	 vmlinux 0xdc71274a	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 vmlinux 0xdc77d170	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0xdc7cf8dc	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 vmlinux 0xdc833fbb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 vmlinux 0xdc85a121	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xdc9b37b3	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0xdcad385f	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0xdcadc13e	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0xdccb3b89	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xdcdc0332	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xdcdcec43	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0xdcdcf072	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xdcf6d045	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL	 vmlinux 0xdd12a781	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xdd1cf8ff	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0xdd226fa9	__raw_readsw
+EXPORT_SYMBOL	 vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd2e77c1	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd41c010	sget
+EXPORT_SYMBOL	 vmlinux 0xdd4a1dc6	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xdd4ffa9b	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xdd74a0c6	skb_split
+EXPORT_SYMBOL	 vmlinux 0xdd81421f	trace_print_symbols_seq_u64
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd990770	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xdd9c6a60	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xdd9cfafb	drm_mode_put_tile_group
+EXPORT_SYMBOL	 vmlinux 0xddae151b	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0xddba5391	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xddc1604e	seq_release
+EXPORT_SYMBOL	 vmlinux 0xddc5864c	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 vmlinux 0xddc66a9d	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xddce8b48	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0xddda344f	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xddea2fe3	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0xddeae1a9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0xddfb1a9d	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xddffa48e	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0xde02f45a	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 vmlinux 0xde055354	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xde131ebc	drm_panel_prepare
+EXPORT_SYMBOL	 vmlinux 0xde13f3cb	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0xde59092a	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xde5f72cb	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xde63fcd6	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 vmlinux 0xde884145	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0xde8a293a	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 vmlinux 0xdea333e4	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xdea6ac8a	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xdec6ad2d	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xdece9282	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0xded290fb	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdeda9113	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xdede2319	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xdee0c86a	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 vmlinux 0xdee22a01	release_pages
+EXPORT_SYMBOL	 vmlinux 0xdee4152e	consume_skb
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdefbd032	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xdf0a4e0e	skb_dump
+EXPORT_SYMBOL	 vmlinux 0xdf0ba847	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xdf0cfcd1	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xdf1d3724	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xdf2a72ad	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf3a693d	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0xdf437567	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0xdf4b3c55	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xdf52def1	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0xdf535c24	drm_add_override_edid_modes
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 vmlinux 0xdf66f60c	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xdf798d13	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xdf832155	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf995437	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 vmlinux 0xdfaf065b	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xdfc6a55e	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xdfca0c2a	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0xdfcf76a1	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0xdfd9c062	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe0fe1f	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0xdfec7b3d	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe005de46	drm_mode_config_reset
+EXPORT_SYMBOL	 vmlinux 0xe008dacc	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 vmlinux 0xe01c0608	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xe028a6ca	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xe02a496a	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 vmlinux 0xe0384fc6	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0xe03e0ab7	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0xe0419ac4	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0xe049d141	__brelse
+EXPORT_SYMBOL	 vmlinux 0xe049d780	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xe0698aed	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xe08527d4	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xe087a188	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xe09be0d6	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xe0a1af81	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0a6b585	request_resource
+EXPORT_SYMBOL	 vmlinux 0xe0af3f5c	drm_fb_helper_blank
+EXPORT_SYMBOL	 vmlinux 0xe0b011ca	sys_fillrect
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b14110	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 vmlinux 0xe0c27d7e	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0xe0cbaef5	drm_gem_put_pages
+EXPORT_SYMBOL	 vmlinux 0xe0d814e8	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0xe0e1e747	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xe0e65b1d	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 vmlinux 0xe0fbd31b	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 vmlinux 0xe0fc18b1	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 vmlinux 0xe10a0496	drm_dev_fini
+EXPORT_SYMBOL	 vmlinux 0xe1119f4f	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe1233046	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe1442ce6	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xe14ec28e	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xe153f436	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0xe177bbc6	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xe187b7c6	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 vmlinux 0xe18d2cfb	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xe18e486a	default_llseek
+EXPORT_SYMBOL	 vmlinux 0xe19c768d	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe1a485b7	vmap
+EXPORT_SYMBOL	 vmlinux 0xe1a9b2ff	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xe1cc9dd6	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xe1dc3def	simple_open
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1fa0905	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xe2028aa0	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe20517f2	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 vmlinux 0xe20a8c91	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 vmlinux 0xe21c2f73	_raw_read_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xe22303a6	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0xe2274a1c	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xe232a10d	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xe2357ee4	cdev_init
+EXPORT_SYMBOL	 vmlinux 0xe23e0b77	free_task
+EXPORT_SYMBOL	 vmlinux 0xe2439be1	cnstr_shdsc_aead_null_encap
+EXPORT_SYMBOL	 vmlinux 0xe25b581a	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe25bfaf0	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0xe266f098	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0xe2a297d7	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xe2a72f01	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0xe2ac51be	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xe2b15162	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xe2b85d6a	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2cf8883	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xe2d47398	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xe2eef55a	user_revoke
+EXPORT_SYMBOL	 vmlinux 0xe2ef6fc1	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xe2f74df1	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30b7b57	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xe3110fde	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe32d37c2	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 vmlinux 0xe33e60cc	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xe34253f1	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0xe346f67a	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0xe3482046	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xe34db28a	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0xe3674b49	drm_dev_set_unique
+EXPORT_SYMBOL	 vmlinux 0xe3722779	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xe37a64e9	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0xe3861c82	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xe386f6f1	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xe38b0183	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0xe3a32515	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xe3a90dfa	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xe3b3cf3d	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xe3d37dd5	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe428464e	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0xe42eba16	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0xe459125f	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xe45b08d2	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xe477fc9b	memremap
+EXPORT_SYMBOL	 vmlinux 0xe4839467	dpu_bliteng_get_id
+EXPORT_SYMBOL	 vmlinux 0xe48ab21b	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xe49696c1	drm_gem_get_pages
+EXPORT_SYMBOL	 vmlinux 0xe4b4cd48	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL	 vmlinux 0xe4edbe65	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xe4f920f6	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0xe50085df	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xe51d79ab	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 vmlinux 0xe5211794	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe5245d08	__krealloc
+EXPORT_SYMBOL	 vmlinux 0xe527e27e	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xe52d8f03	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xe5351990	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xe5460829	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0xe55fd86c	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe5807e62	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xe5836e51	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xe583e0af	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5bd243c	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xe5c6b550	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5d8bffb	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0xe5dc2233	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xe5e601f5	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xe5fcf93a	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe648b2a2	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xe64c5f53	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xe68b407f	kmap_to_page
+EXPORT_SYMBOL	 vmlinux 0xe6a3ecbf	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xe6b52775	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0xe6bb95fb	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0xe6c12171	complete
+EXPORT_SYMBOL	 vmlinux 0xe6c1f510	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0xe6c8c095	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL	 vmlinux 0xe70db1bc	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe717f609	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0xe71ad954	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xe7242391	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xe7306289	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe749a225	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 vmlinux 0xe750c08b	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xe779c28e	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe7815edb	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xe78bc0fb	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xe794e5ca	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0xe7becaee	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0xe7cdc029	lcdifv3_enable_controller
+EXPORT_SYMBOL	 vmlinux 0xe7d4a629	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7ed4c32	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xe7f24e05	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0xe7fadf15	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xe80627e1	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xe8094613	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0xe80ea918	drm_crtc_vblank_on
+EXPORT_SYMBOL	 vmlinux 0xe83170d4	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0xe836af5a	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xe842dc8c	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0xe84face9	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xe8594672	sys_imageblit
+EXPORT_SYMBOL	 vmlinux 0xe867c43a	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe86c86a6	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0xe878ae48	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xe8873d6e	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 vmlinux 0xe8a11eb8	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0xe8a14bff	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xe8a8e3a6	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xe8aa262f	imx_sema4_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xe8b72467	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0xe8cd0a2c	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe91cb8ab	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0xe91e76d6	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xe9290c25	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0xe929ebc5	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 vmlinux 0xe9325f03	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0xe932fe24	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xe94bd95d	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xe94cb81e	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe9544b99	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xe95c8344	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xe97c4103	ioremap
+EXPORT_SYMBOL	 vmlinux 0xe97f1129	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xe9983d26	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xe99ade6d	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0xe99b7111	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0xe9af9c21	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0xe9b43add	drm_of_component_probe_with_match
+EXPORT_SYMBOL	 vmlinux 0xe9bc6654	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0xe9bd491b	drm_get_edid
+EXPORT_SYMBOL	 vmlinux 0xe9cbf734	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xe9d9120c	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0xe9dc687c	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0xe9e37aae	skb_push
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9e9b59a	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xe9eadc48	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe9ee5d6b	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xe9f6378c	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea6fb062	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xea714674	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea842dab	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xea904256	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xea9833f9	dpu_bliteng_get_cmd_list
+EXPORT_SYMBOL	 vmlinux 0xea989738	phy_resume
+EXPORT_SYMBOL	 vmlinux 0xea9d378e	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0xeaba8cca	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xeac7d5f4	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 vmlinux 0xeace8dc4	atmel_i2c_send_receive
+EXPORT_SYMBOL	 vmlinux 0xead1b45e	drm_panel_of_backlight
+EXPORT_SYMBOL	 vmlinux 0xead35360	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xeae22c1b	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeaf92a35	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xeafc4de8	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0xeb03b389	__raw_readsl
+EXPORT_SYMBOL	 vmlinux 0xeb0b9bf9	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb446f55	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xeb4e8314	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0xeb55a931	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xeb72cdd8	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0xeb7955f6	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xeb7aff5e	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xeb8fb6d2	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xeba601c5	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xeba94ad4	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xebb48c42	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0xebc5bbca	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0xebd72ce1	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebe3ac7d	is_black_key
+EXPORT_SYMBOL	 vmlinux 0xebe5dd54	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xebfdcbdf	system_serial_high
+EXPORT_SYMBOL	 vmlinux 0xec18c269	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0xec1a80e4	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0xec1bac4b	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 vmlinux 0xec37a2e8	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xec42f6bd	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec62e469	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 vmlinux 0xec636c62	drm_connector_list_update
+EXPORT_SYMBOL	 vmlinux 0xec887b41	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xec92b1b7	proto_register
+EXPORT_SYMBOL	 vmlinux 0xec940d58	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xecc358f8	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xecd9fa17	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xece64382	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf12bbc	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0xecf8a3b4	__raw_writesl
+EXPORT_SYMBOL	 vmlinux 0xed015d8c	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0xed052c36	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xed0f9b40	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0xed243d8e	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 vmlinux 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 vmlinux 0xed4c2f57	rpmsg_send
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed688da0	cnstr_desc_blob_encap
+EXPORT_SYMBOL	 vmlinux 0xed7db75a	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xed917425	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 vmlinux 0xed93f29e	__kunmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xeda592ca	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xedaafe3e	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 vmlinux 0xedd438dc	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0xedd9106d	__ashrdi3
+EXPORT_SYMBOL	 vmlinux 0xeddf59aa	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 vmlinux 0xedf5201c	lcdifv3_set_fb_hcrop
+EXPORT_SYMBOL	 vmlinux 0xedf53e41	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xedf6bbcf	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xee06d631	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 vmlinux 0xee0b5015	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee0e7648	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0xee177ed4	lock_rename
+EXPORT_SYMBOL	 vmlinux 0xee1c6cd5	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee2d8766	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xee316f38	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xee398f31	drm_syncobj_get_fd
+EXPORT_SYMBOL	 vmlinux 0xee434c6d	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 vmlinux 0xee43fd9b	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xee4d1bfd	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee59267a	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0xee74d03c	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xee81d36b	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0xee839897	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee98bc5f	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xeead88c3	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 vmlinux 0xeeb20b09	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xeeb51471	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0xeee67b4d	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0xef0dd7e9	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xef19256b	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xef2f70b5	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xef3c53cf	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0xef42e928	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xef4cad92	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0xef4d0e43	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xef50bb42	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xef62696e	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xef673c1a	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0xef738fe4	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xef7a094f	drm_gem_vm_open
+EXPORT_SYMBOL	 vmlinux 0xef900936	drm_gem_handle_delete
+EXPORT_SYMBOL	 vmlinux 0xefb7bccf	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xefb93314	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xefc0c550	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xefccc843	drm_legacy_pci_init
+EXPORT_SYMBOL	 vmlinux 0xefe1f817	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 vmlinux 0xefeaa6c1	of_drm_find_panel
+EXPORT_SYMBOL	 vmlinux 0xeff58efc	sock_create
+EXPORT_SYMBOL	 vmlinux 0xeff997ca	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf00776ad	dpu_bliteng_set_dev
+EXPORT_SYMBOL	 vmlinux 0xf01528a4	dim_turn
+EXPORT_SYMBOL	 vmlinux 0xf02a6977	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xf02debce	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xf04cd40d	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0xf06cee2c	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xf072066c	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf08f604d	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a343ed	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf0c161c5	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0xf0c7346c	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0xf0e37ddb	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0xf0ed2ef4	__raw_writesb
+EXPORT_SYMBOL	 vmlinux 0xf0ef52e8	down
+EXPORT_SYMBOL	 vmlinux 0xf0f81fb0	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf0ffd18c	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf102732a	crc16
+EXPORT_SYMBOL	 vmlinux 0xf108715e	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xf10ac650	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0xf10b8e67	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xf11a4427	drm_writeback_queue_job
+EXPORT_SYMBOL	 vmlinux 0xf1282b18	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 vmlinux 0xf1792ec9	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xf17f7c83	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0xf183062b	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xf1888fe0	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a219a2	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xf1b398f9	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0xf1c8e8ce	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xf1d62e2c	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1df9a35	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xf1dfb18b	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e0d52d	drm_atomic_helper_check
+EXPORT_SYMBOL	 vmlinux 0xf1e562ac	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1ea6f1c	__bswapsi2
+EXPORT_SYMBOL	 vmlinux 0xf1f8b85f	__put_page
+EXPORT_SYMBOL	 vmlinux 0xf1fbe305	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xf20a1cd0	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xf20ccf12	drm_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 vmlinux 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 vmlinux 0xf236c75e	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2507681	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0xf2630979	drm_gem_vm_close
+EXPORT_SYMBOL	 vmlinux 0xf2633bd3	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xf2637fad	drm_wait_one_vblank
+EXPORT_SYMBOL	 vmlinux 0xf2669a2c	imx_scu_irq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf2681ea1	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 vmlinux 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf287e5d1	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xf2b255ad	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c530e4	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xf2d9877a	bio_init
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2ec1dff	imx8mp_hdmi_pai_enable
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf31b1927	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xf331a320	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xf334892a	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xf3363f9f	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf3575582	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xf3579141	drm_property_blob_put
+EXPORT_SYMBOL	 vmlinux 0xf362dc7f	arm_clear_user
+EXPORT_SYMBOL	 vmlinux 0xf387d96e	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3a11c35	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 vmlinux 0xf3b0a0a6	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3c34616	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0xf3cd0a31	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3eb1323	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf40363b4	cnstr_desc_blob_decap
+EXPORT_SYMBOL	 vmlinux 0xf412aafc	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xf428570a	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0xf43e2799	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf455fb44	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xf46f23d8	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf477280c	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf47d4fee	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xf47dbc0e	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0xf489f584	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 vmlinux 0xf48fbac6	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xf4996fc8	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xf4a04498	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xf4a3cf9e	drm_bridge_attach
+EXPORT_SYMBOL	 vmlinux 0xf4aa7aac	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 vmlinux 0xf4b079d4	lcdif_vblank_irq_disable
+EXPORT_SYMBOL	 vmlinux 0xf4b3aa90	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0xf4ba246e	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xf4baa334	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf4bdb6ac	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c66370	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0xf4cfac96	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f2d341	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xf50c0ec7	drm_bridge_chain_disable
+EXPORT_SYMBOL	 vmlinux 0xf5172e88	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xf5229979	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xf52daa43	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5480f85	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0xf55e53a9	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0xf564412a	__aeabi_ulcmp
+EXPORT_SYMBOL	 vmlinux 0xf5748eac	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 vmlinux 0xf57c4b26	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xf5889ea3	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5962154	drm_fb_helper_init
+EXPORT_SYMBOL	 vmlinux 0xf59f6ea3	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xf5ae6bab	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xf5b666ef	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf5cdbb84	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xf5e6a3ab	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf63acc0f	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf64aac56	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xf6520004	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0xf652d359	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf65a3384	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0xf65fef07	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf6764f7b	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf68acf9d	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xf69f36f1	sock_release
+EXPORT_SYMBOL	 vmlinux 0xf6a542d7	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0xf6a5c98f	ilookup
+EXPORT_SYMBOL	 vmlinux 0xf6aa28b2	d_delete
+EXPORT_SYMBOL	 vmlinux 0xf6aefab6	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xf6de5157	f_setown
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6fb897a	ioremap_cached
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf702cdce	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xf705fa49	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0xf7163ec9	__raw_readsb
+EXPORT_SYMBOL	 vmlinux 0xf71f4396	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xf73690be	__scm_send
+EXPORT_SYMBOL	 vmlinux 0xf736a1f9	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xf738266b	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf768f870	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xf76c6244	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xf76f1a34	single_release
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf777cd1d	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xf77962ab	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL	 vmlinux 0xf788ff23	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xf7942bbb	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xf79fbeb4	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xf7ae8a63	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xf7b2c0b9	open_exec
+EXPORT_SYMBOL	 vmlinux 0xf7b2d3a8	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xf7b6ca10	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xf7c0bfd1	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0xf7cfa763	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xf7e89da9	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xf7f627e3	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf83776a2	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0xf838fd97	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0xf83940e0	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xf841ccce	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0xf84c3647	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0xf85bb048	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0xf86f27cd	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf87bca04	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0xf8821480	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xf894e3d9	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xf8a9b433	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xf8b8ffbc	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bee18d	drm_put_dev
+EXPORT_SYMBOL	 vmlinux 0xf8cdffbe	imx8mp_hdmi_pavi_init
+EXPORT_SYMBOL	 vmlinux 0xf8d5886f	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf90458a5	drm_dp_read_desc
+EXPORT_SYMBOL	 vmlinux 0xf9085b64	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xf919ef62	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0xf923ab06	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0xf925df3f	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0xf9267872	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xf930c718	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xf9395e98	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93b5f69	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf9430329	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 vmlinux 0xf94936c0	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0xf973f81b	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xf9a33e3f	put_disk
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9be8c1c	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9d1dd1b	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xf9d7f319	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xf9e97b5c	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xf9f0c951	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0xf9ffae23	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0xfa021f90	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xfa09509b	sg_last
+EXPORT_SYMBOL	 vmlinux 0xfa0f2bf1	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xfa14cd26	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0xfa297eec	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 vmlinux 0xfa3337a7	drm_mode_destroy
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfaaba24f	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xfab5b0d0	sgl_free
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfad29bea	init_task
+EXPORT_SYMBOL	 vmlinux 0xfad98f61	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xfadd73a5	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0xfae26823	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xfaf993e4	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xfb147daa	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 vmlinux 0xfb1d7438	down_read
+EXPORT_SYMBOL	 vmlinux 0xfb336634	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb377b6c	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb5bfef1	lcdif_dump_registers
+EXPORT_SYMBOL	 vmlinux 0xfb602eea	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL	 vmlinux 0xfb907975	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 vmlinux 0xfb931e64	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xfb9d1af1	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfba8e686	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xfba90eb0	rpmsg_trysend
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb1bb48	drm_fb_helper_set_par
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbfb8dda	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0xfbffb3bd	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xfc386061	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f3589	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfc4ad7b0	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0xfc4c62a8	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xfc7a8ee8	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0xfc8899f3	ihold
+EXPORT_SYMBOL	 vmlinux 0xfc89b756	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xfc92f996	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xfca50296	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xfcc53acc	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0xfcc66454	of_node_put
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd407c0	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfce1dffa	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd10a3c9	drm_clflush_pages
+EXPORT_SYMBOL	 vmlinux 0xfd1efa91	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL	 vmlinux 0xfd4b1558	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0xfd553440	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0xfd649433	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xfd653584	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xfd71df0b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0xfda92bec	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdaa825b	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xfdac72cd	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdb6481c	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xfdb94d0c	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0xfdbc364e	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0xfdc1f02f	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0xfdcad511	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdda9c34	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xfdde850d	cnstr_shdsc_rfc4543_encap
+EXPORT_SYMBOL	 vmlinux 0xfdecd8a1	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xfdf2f432	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0xfdf4cff0	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xfdff94e0	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe0a9b69	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 vmlinux 0xfe15eab6	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0xfe237268	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xfe2df904	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xfe3db31c	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xfe3f697b	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe49eed5	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xfe4a28d9	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xfe4c54d7	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0xfe51a21d	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe646d68	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xfe6be475	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 vmlinux 0xfe79cd4a	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xfe7c6aa4	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xfe81113d	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xfe8c5980	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0xfe90c4a6	_find_first_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xfe91daf8	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xfeac589c	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xfeb2447b	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfeda64d9	skb_trim
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee7c6bd	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 vmlinux 0xfeec3b47	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xfef5b6bb	simple_link
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xff0260bd	bdevname
+EXPORT_SYMBOL	 vmlinux 0xff0fddd6	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff238033	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xff282521	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0xff485d18	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff6ac0f5	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xff89b0dd	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xff8c2e5a	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff94bdeb	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xff9d13b6	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xffa1b171	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xffa34986	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xffab1636	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xffb94ef0	_test_and_change_bit
+EXPORT_SYMBOL	 vmlinux 0xffc0a94b	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xffc8c6b1	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xffdca469	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0xffdd4c9f	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xffe985db	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff7209b	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0xfffa3100	sg_next
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x7b6b0599	sha1_update_arm
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x9f3959a9	sha1_finup_arm
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0b2bc743	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x19071d05	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1fef6d8b	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x219b138e	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x225800ca	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x254d8803	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x52920794	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6183d8df	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x68e22b28	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x71195fe6	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x75f54461	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x76888297	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x785477cc	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x798ea3e1	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8882fcd0	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa1ed1ca8	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdc129184	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf0536255	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xf518b396	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x44745099	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x5de8bd8c	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xbd8b67ce	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x2486dd46	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x3224b101	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x27cd8ff5	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xaa2710c2	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xba7818f7	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xcf9b8588	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x00008877	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x32ec96f1	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xaf87e261	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xb93abcba	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x2a337ec0	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x01ae6212	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x8d059072	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xef96ade9	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xf7478adc	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x14490a5d	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2cea8392	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7e8fef13	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x9a1b3ba2	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xaeebb1fa	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xaf2b4d6e	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc14bd091	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc759a32a	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xcfa2aeb9	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd3f6b202	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xdb3c4b13	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xdbcf59bb	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe5489d04	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf39fe7d0	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x33dd5b54	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x78ae1fdb	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xff07edd1	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x511d412e	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x1b0989c4	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x569d4ceb	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xb82187a5	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x6c8c0285	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x063f692a	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x10e24674	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x2380b412	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x24740650	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x56b24dcf	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x5ca5d904	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x617bf161	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6f9ffa0b	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x72bd6795	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x78826cf8	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7efebbec	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x850475b7	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x9e6fd63d	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xa2dc56be	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xa50064f8	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xab6d9410	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xad3820d9	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xbfa2df86	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc4a284f1	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc5692ae3	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd183a88a	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xdb7f9a29	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xdc5486b0	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xde1b5551	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1aef4ac5	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1cb10933	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x47cff544	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x71ae56cc	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x832d3893	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8cd7fcd8	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8ecf2d78	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x93894643	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa3712732	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa9ff95cc	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcf466f85	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xd5ebd82f	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf5312bde	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf80fdb45	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf93b121a	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xfed18346	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0xb666074d	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xbf4774db	ks0108_writecontrol
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xedde6df2	ks0108_page
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xfee8ef7b	ks0108_address
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0x3eb04a68	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x0f5b6254	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x48b51c9d	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x897e72f0	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x99885e7c	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xcce6f691	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xe209ac91	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x044a8419	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0462ba7d	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x07035020	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x173d67ce	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x192205ce	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x19a22d3c	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x24396789	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4507a34a	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4789c911	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4d39c3c4	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x60edc513	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6c151cac	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x84917cd7	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8584190c	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x892e3178	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x973278cc	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xac665f82	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb791d1ca	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcb857939	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xfc26381d	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3873d278	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3b1d89c6	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x8189790d	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x9ae35458	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xc9785281	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xed9dc3a6	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0be3f1fc	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x12cbfed8	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x145dc9f2	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1b4b8c9a	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x252066c0	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x298d52df	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2ddf1501	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x37c69bf7	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4d58b976	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4e3e9eea	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x63a6803f	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x98e6e5b7	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xabaa4512	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb97c91b2	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd0345e9f	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe56281fb	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xed317eec	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0675d99d	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0e11595a	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x5645359f	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6548dddd	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6572c376	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x71bfac8e	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x80da0ff6	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x9ff886fe	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb39f644d	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xd421a894	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xefa6b851	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x62025196	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x72d743e8	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x959385dd	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x9da7c448	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xa9ac0c99	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x12a460a0	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x1b752fd2	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x3d66e548	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xf14a5ed1	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xfca26d27	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x07648a5f	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x4eefc546	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x5584ec2d	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x7ac9f29d	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x1b3bdfda	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x1f4c3bae	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x4f5801f4	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x578f1fe5	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x6916f15a	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7761f173	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x849833b5	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xae46be82	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbae8753a	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc2974207	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc3fbbf2d	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc71fb2e5	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xcfb885e2	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdbb38497	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe73554ee	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x39a0600e	bL_cpufreq_unregister
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x3f8e791a	bL_cpufreq_register
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x149098fc	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x28cc9632	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x371a8d70	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3a2140ac	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x57d06dd6	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x7b069a5c	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x7e6b74b8	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x02df6537	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x1195246d	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x22d5a461	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x41128742	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x47cfeb14	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7e9ffc4f	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x7f7e304f	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa0708e88	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa0fdadcc	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xa27d38d7	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb18f4fbe	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xbf82ea36	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xbf91345b	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc95b86dd	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xec0bcd0c	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xf2f31928	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0x78088300	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x09e53c11	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x7326fc5d	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0868ac2e	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0d97bd8e	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x13b7f395	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x36fc2aea	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x386057f1	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x46fc61a5	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x54995cc4	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x5618b5cc	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7cc5f403	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7cfeadd2	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8b1c502f	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa5faf1ca	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xad4713bb	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xaf054673	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb8f95164	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbe9f0cc1	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd8a83ee9	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf7bbae41	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfb1550e5	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x00b5be7d	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x1cd6faff	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2d2105df	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x789af716	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x7bdaef7e	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8bd93b77	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x90f68ce4	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xa21e3f0c	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb5c0c847	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc2ec1c2e	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xcc7de676	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd53ecc3b	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0251bd22	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x19d1b662	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3e8014f2	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x671d7218	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x7a0769eb	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x837a46eb	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9a6ed2f5	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xaffab899	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xcb357871	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd123cab5	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xdb9c3d14	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xdd3ee742	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xe46e3c5b	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x033554cf	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x0d636904	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x0ef844cb	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x4f04c449	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x6302f1e5	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x781d0d0b	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xe542889d	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x1988e0b6	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x2f42aa15	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x58ae0705	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x60a97912	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x644040dc	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x836826d1	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x86af276b	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x9fcae5ec	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc6417ff4	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd15dbc00	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe4ac7aa2	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xf2eefafd	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x02287ac1	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x2c433e5c	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x8f00e477	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xd93563c9	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xe547122d	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x16bb10b6	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x1c7fccc4	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x48553469	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xf98c0e6a	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xfd93373b	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x1b99b72b	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xaf5964ae	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x0274e1c9	cdns_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x6ff49645	cdns_hdmi_set_plugged_cb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x75db5fe7	cdns_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x7b807377	cdns_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x81469755	cdns_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x826fc582	cdns_hdmi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x8433734c	cdns_hdmi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0x97d0f100	cdns_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/cadence/cdns_mhdp_drmcore 0xcb938287	cdns_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/fsl-imx-ldb 0xacb5a4b3	ldb_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/ipuv3/imx-ipuv3-crtc 0x3346524b	ipu_plane_disable_deferred
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/ipuv3/imx-ipuv3-crtc 0xf9a8f320	ipu_planes_assign_pre
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0x89a1ce60	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x01f4ee1f	ipu_image_convert_adjust
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x050f0d7b	ipu_di_adjust_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0728116a	ipu_csi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x07da7337	ipu_image_convert
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0a3cc3aa	ipu_set_ic_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e42bd95	ipu_csi_set_dest
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x101f86a3	ipu_vdi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x118160e1	ipu_ic_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x13952dfe	ipu_dmfc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15ec2ba5	ipu_di_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18730251	ipu_rot_mode_to_degrees
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18aa0dcd	ipu_image_convert_abort
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1957b704	ipu_prg_channel_configure_pending
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1dcab521	ipu_cpmem_set_resolution
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1e913d9f	ipu_csi_get_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x20e09f6f	ipu_csi_set_mipi_datatype
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2329dae5	ipu_image_convert_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2424c9a6	ipu_csi_is_interlaced
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x258a4439	ipu_image_convert_queue
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x266b873c	ipu_cpmem_set_format_passthrough
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2cf7ed72	ipu_dc_init_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2d58b6bf	ipu_idmac_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2e825a67	ipu_smfc_set_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2f92d651	ipu_ic_task_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3020d65c	ipu_prg_max_active_channels
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x30979b69	ipu_cpmem_get_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3166aec7	ipu_dmfc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3bb1b1ae	ipu_prg_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3c78a07f	ipu_idmac_channel_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e86ea72	ipu_di_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e933fcd	ipu_cpmem_set_high_priority
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3ffe90f4	ipu_prg_format_supported
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x418a282f	ipu_drm_fourcc_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x41a84174	ipu_idmac_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42d3d500	ipu_image_convert_unprepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x44b6a209	ipu_ic_task_idma_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4903b46c	ipu_idmac_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4917f47a	ipu_ic_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x498b4c7b	ipu_image_convert_enum_format
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4c179b49	ipu_dp_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4ceb3854	ipu_cpmem_zero
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4cfbc85a	ipu_prg_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4d1d2644	ipu_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x51475e87	ipu_dmfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x527f3b94	ipu_smfc_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x53de277c	ipu_di_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x55767280	ipu_vdi_set_motion
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x580d2f81	ipu_vdi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5b15aea8	ipu_dp_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5cae270a	ipu_vdi_unsetup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5f0ccb81	ipu_cpmem_set_format_rgb
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x60bdf2ec	ipu_csi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x60c8607a	ipu_ic_task_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x623722e2	ipu_ic_task_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x63593ec7	ipu_csi_init_interface
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x64275e6a	ipu_dmfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6518ff3f	ipu_idmac_wait_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x66e729d2	ipu_mbus_code_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6b60659f	ipu_dp_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6f71d08d	ipu_dp_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939	ipu_dc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x70f8793f	ipu_idmac_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x71d24e95	ipu_idmac_set_double_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x747eaf4e	ipu_image_convert_verify
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7533deba	ipu_prg_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x756aec79	ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7a0fb5af	ipu_cpmem_set_image
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7bf6529f	ipu_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7de196b6	ipu_cpmem_set_stride
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8497c7d4	ipu_degrees_to_rot_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8659fb78	__ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x86e5578c	ipu_ic_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x87488820	ipu_fsu_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x886c35aa	ipu_smfc_map_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8895c751	ipu_cpmem_set_yuv_interleaved
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8e6b6c27	ipu_idmac_enable_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8eb22643	ipu_dp_set_global_alpha
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ece82bd	ipu_pixelformat_is_planar
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ee97057	ipu_cpmem_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8efee050	ipu_image_convert_prepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9058e289	ipu_smfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x91ce1a04	ipu_dp_set_window_pos
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x951a09d5	ipu_csi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x99cea300	ipu_prg_channel_configure
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9dac8d6e	ipu_idmac_buffer_is_ready
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9dc726bb	ipu_smfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9f38e177	ipu_dp_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa1f19f6e	ipu_module_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa4b0cabd	ipu_dc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa60b144b	ipu_csi_set_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa88eeb0b	ipu_dc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa8adc101	ipu_pixelformat_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa96882d8	ipu_ic_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa9a63dbb	ipu_idmac_channel_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xac2ce930	ipu_dc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xaee81eb0	ipu_dp_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xafc2aae7	ipu_srm_dp_update
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb217515f	ipu_idmac_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb23738be	ipu_idmac_clear_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb66bdd35	ipu_prg_present
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb6f79028	ipu_idmac_lock_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xba458b8f	ipu_csi_set_test_generator
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbc9d8e54	ipu_idmac_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbeb27a43	ipu_di_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbf983ba6	ipu_vdi_set_field_order
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc1810f36	ipu_cpmem_set_fmt
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc2b2402d	ipu_cpmem_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc36f8c05	ipu_idmac_select_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc3c2cdb0	ipu_smfc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4af2e81	ipu_dmfc_config_wait4eot
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4b15642	ipu_csi_set_skip_smfc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc6675aa9	ipu_csi_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc677177d	ipu_smfc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc97064e4	ipu_cpmem_set_uv_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc97e7a0f	ipu_di_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcabac686	ipu_fsu_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcb381035	ipu_set_csi_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcbea3eec	ipu_di_init_sync_panel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xce10db35	ipu_stride_to_bytes
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd14cd1a7	ipu_idmac_get_current_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd1a10880	ipu_csi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd8f285f0	ipu_vdi_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xda1471e2	ipu_dc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xdd1e2606	ipu_cpmem_set_yuv_planar_full
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe25dc634	ipu_ic_task_graphics_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe300a959	ipu_dp_setup_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe50ba82f	ipu_cpmem_interlaced_scan
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe5871603	ipu_cpmem_set_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe5d253cf	ipu_cpmem_set_block_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe6243c52	ipu_dc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe75b7a49	ipu_module_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xeb90b691	ipu_cpmem_set_rotation
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xec3fcc0e	ipu_cpmem_set_axi_id
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xeea12b31	ipu_vdi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1440dc1	ipu_ic_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1abac7e	ipu_csi_set_downsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1cd788c	ipu_cpmem_skip_odd_chroma_rows
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf541df2d	ipu_vdi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xfd759955	ipu_map_irq
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x022f4bdf	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x05b37978	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x10acdb33	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x16af90bb	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1e67fa9b	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x25f25997	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x264497a7	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2c4964dc	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2f2d6da2	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3191b3a1	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x338a6a53	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3909277a	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3998450a	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x493f714e	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4c72402a	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6065abc5	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x615ab395	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x623567ec	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x65d159e2	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x690a7228	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x73ccd731	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x770d4329	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x79c3530a	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8321bf11	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8cd0dd48	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x957b3d42	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9b3cedbd	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa41145ab	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb3956a08	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb5a79c29	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcdfdaa99	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xce45f69b	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcf1f8223	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd18f413f	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd2af5a36	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd4295f33	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd7632d60	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe09b0b86	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe1c5018b	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xecc25745	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf6800c43	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfb766975	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfdbda1b6	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x6ac9688b	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0a936d0a	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x49f21ec4	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x4c19c547	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x5c577c6d	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x9227ebd1	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xb17a135e	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0567ea9a	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x2bbf32e1	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x47b4795e	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x4d010eeb	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x65fe98a6	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x998509a4	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa72d639d	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe44b38b7	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe49dd8d3	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x20d9251d	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xf8aaec0a	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x98bd3237	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xfaafa623	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x01ce8d0c	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x10f40b4c	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x14376e43	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x21b89ca6	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x27a59b4e	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2fef9f3a	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x4a3a800d	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6da8b8f7	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x70774892	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7feacf15	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xad763979	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb437ac5b	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb7c25f0d	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xbab6ddf2	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xded73b77	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdf22b31b	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xea00820a	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xebfca797	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x9caa5005	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xda720dd9	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xf80ccaca	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0d534b39	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1c46c84f	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x274e30ff	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x500c74fe	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x54f035b7	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x59c98269	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x61b9cdb8	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x708aa064	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x85957727	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x9779dee9	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa6af76a2	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa8273850	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa8629e45	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb6157d71	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb63cfd57	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd196c114	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdbba9467	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xea301de4	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xfb25b714	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x33dc00e7	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x3ae6ed92	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x56aa5379	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x5b51210f	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa4673be9	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb8e4c8d3	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xbfda1621	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc5fbfee6	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xf677df63	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x1f39dfa0	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xa2abbee0	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xc458cc71	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x04335037	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x23bf691e	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x3642eed3	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x70b2c69b	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x8222fd6f	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x8312f979	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xad2df3d0	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xddfdf871	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf0cbb95a	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x591ab15a	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x695526ad	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xc2501043	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xea6dd876	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x56d8c086	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0ca2d729	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x23a5cac0	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3bd5c077	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3c3fa60e	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x53f0a1f3	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x56ca7c86	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x59a88421	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x658f0db3	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x679133dd	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x73bf5600	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x857d46c8	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x886d731f	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8b5d1f15	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9669c1e3	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa2c444f6	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa7d9d044	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xaaaf49b9	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xae0bf037	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xafe1e13a	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb4bf96aa	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc9f4c043	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xceeb3e8f	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe3fc54d7	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf709bcc1	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfc6bc5e0	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xdb2de742	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xfd8d9320	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x48502d04	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x6b31bff0	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xd38ec6b3	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xee208f63	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x19b6c7ab	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xac1d2e0a	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xc2f7960c	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x1686d3b5	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xce0fbc86	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x3a0bee90	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x43e7a404	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x671e6b45	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x6e2f9181	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x8f79f279	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x8ff8b346	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x99149aa8	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc8d019c5	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc91aebf8	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xfae7e092	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x667fbbb7	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xd362bb82	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xd982d407	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xfff2647d	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x02807046	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x387a354d	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x7408fc22	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x5524d33c	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xb686c706	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x0c0e303c	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x12940793	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x79099091	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x37249f2d	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x6f8264e4	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x0c994bfb	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x43eaba3e	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x8bc021b7	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x6c73b180	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x80f8519d	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x981b5a26	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x29e7ac7a	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x47855fe6	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x54e46e4b	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x65e91fcb	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x98978bf5	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xabb5bbeb	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb1628243	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb63ce9c9	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbe832bf3	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc9d07802	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xdf2cd6a7	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xee6a6217	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x7198db58	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x2c7ca2b0	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x2d155fe2	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x8e8b4240	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x05eb5d91	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0929ad1e	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0a4c19a2	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0f48b937	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1ea5bc1c	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20ce344a	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x247a11e5	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x25eebe14	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2b6ae1c4	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3f2b6e6b	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4508ff91	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4805ff56	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dd8597a	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4f4cd7a2	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5dd93bc1	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x625cfdfd	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x62f56934	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x645954f1	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6a0bd1b3	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x70cefdcb	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x71942907	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x71a3f449	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7381d044	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x767ad0ca	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x78ecc08c	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7905e8be	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7b6b4b60	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7bc7532a	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7da27f8a	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8002277a	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8a1e7f34	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8a7184bb	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8c49d65c	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9d7307f9	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9ff46da1	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa3218826	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa3b503d5	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa4550271	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xad99cbeb	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbe49bfb8	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbf9d408d	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc0880df2	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd4346067	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd8b466f6	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xda526355	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe22f086e	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe25c3d7d	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe9276c96	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeba00a36	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xec6b518c	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf31e7450	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xf9e61ea2	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x449ab886	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x0ac49511	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x283fc2d7	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x7503cf6f	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xc44432a1	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xe12d6fde	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xea79e452	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xd241bd78	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xc9f5c88e	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x0765e237	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x01371460	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x04727da4	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x2eceea30	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x3f6f2a01	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x48344afd	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4e3a5c33	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x629c64ab	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x72f5226c	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9acf7e7a	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbb6e8d1b	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbc864b63	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe1e06e89	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xf44f27c3	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x226ad771	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x5f1e8a65	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd5e3300e	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xf57ba51e	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xfaab5d65	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x0c891ec9	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xa92261c0	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x09179fe5	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x4debd5ed	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xcb1e0044	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xf52f171c	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x04304015	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x08b33e7d	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x27515b05	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6196effa	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6e1b665c	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8d37b6e1	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb1cb0690	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc4193ee3	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xd9a723b9	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe258b016	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf44d0bc7	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf48ccba1	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x184f6858	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x232179b7	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3b99877c	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x61091fab	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x63d3c17a	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x7b22f45c	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xb080adec	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xbfc0fafa	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xe6e00931	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x102cd697	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x5539b6c5	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x69331ded	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x8456fb40	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xcf4ec22b	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xdf19f20b	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x09abce5f	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x3212b726	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x4e0c2f3f	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x53889add	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x74b6ef11	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x8cb44ebc	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x967f2066	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xa143d0c1	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xdf7405d4	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xebfa9845	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf7d89beb	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x31d31ffc	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x336acd55	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x45dd6124	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x5b2a6615	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x700ffce4	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x7a9b3057	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x88b94564	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x92997c82	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x92c9cfa5	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbcf52873	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd08d7af7	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd2d5e9ee	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe2760d41	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xee3a6642	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeff9007a	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x1f3909b0	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x218b9fc2	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x21959de8	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x31f716ab	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x38af8efa	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x3bb904ca	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x3f1d040c	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x42500cf1	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4e6e6490	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x54123f25	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x54601d14	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5af0d7c9	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5bd34cf9	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5db188e2	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x62c2a035	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x692c2338	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x8583ca9c	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x8c466d6a	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x8eb173b7	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x8f8c6085	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4c92f78	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xafcf8409	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb81f4e11	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc0fc3714	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd6fc868c	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf1e32a96	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf267e88e	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5392887	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfbc7bc4f	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfc9f7e72	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfe240134	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x15fe9fe9	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1df0a8a1	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1dfccfa9	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4bc94eff	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4ffb2300	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x5030c2f2	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x540fa930	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x5d6d24d8	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x618d4627	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9317463d	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x95db865f	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb94a57e3	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xbf44e752	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd2f64296	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xde69c163	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe371d40e	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xfebc5d3f	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x94bb310a	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x03bb93e0	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5730f8ae	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5b3dc349	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x8f647e48	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x90136207	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa8dc6953	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xdefaaafa	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x7ead658e	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xb5a133ba	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x33c80baf	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x6c8f0678	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x96a59202	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x96d9048b	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x97f44c6b	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xccf65910	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x154182dc	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x29c25d50	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x46af8087	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x55f98e63	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x64976f82	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x8a56150c	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa433adbc	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa7083b63	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb8dbd4e1	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6367ed7	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3e25192	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0bab9c9e	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x117e4bc5	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x24935884	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x3395fefd	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x5450e11c	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x5e77dd53	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63222b29	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x791769a7	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x8143041a	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9558e01b	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xabc7ab51	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbe4e10b3	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc4ed099b	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xd75f5ab9	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe7f9217a	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf0ffea96	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf44763b8	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf944b509	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x060883ea	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1dcb6345	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1fc5390b	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x296a8524	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x31a4b85a	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x37d600b1	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3eca754f	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3faa2296	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x43d2a2df	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5a65e9c1	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5aaa5fd5	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5af8f4ca	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x63a422c8	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x67ced1b1	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x74e91ffa	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x77eb5995	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8003b842	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x94aa23d8	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa8632856	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa8c01395	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb2d76155	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc0ff42af	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd37318aa	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xdd45603f	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe0ab3eda	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe3e4d9fe	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe4137f03	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe9502bed	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xeb4b22e1	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x266b4ab0	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x51904c5b	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xeb1ea6dd	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x2fbb50b0	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xee601a17	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x05bf4fcd	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0b9e5a52	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0c8210a5	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x34c1f0b4	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4b8e0f05	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5197372d	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x53bbd4c0	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x58979062	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x68dd7242	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x69a25067	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6c6990a0	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x72cc8b7e	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7bb597e8	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8d91e5cb	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8e819a5b	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x92b0c0fb	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x964a53dc	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x98bc45d1	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9bf26c01	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9e2fe8ad	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa3be353a	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xaa2a123c	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xab86bb2b	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb44955e4	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb7e2f436	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb9982ab5	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc50d5585	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc80c3671	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe5b21997	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf61892f6	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfa0ff711	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0xb29372e1	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x25c69440	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x7dc47e04	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xeff8773e	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0xad35924c	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0x8b53ca8c	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0xf7511c86	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0x84f5ae6f	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0x178e5955	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x9a0e5c72	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0xc1d6ce45	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0xa3837a8a	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0xe63ecf12	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0x67776d20	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x9a7ac103	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0xa854ebb2	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x810e4664	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0xb0646010	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x0f429117	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0xb8d2c794	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0xfadbfe7b	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0x1e5a141f	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0x9dce0ab9	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0x02b07680	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0xe0da91ca	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x4e03136e	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0x8bf4f658	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0x9b016034	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0x511bf8ad	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0x2d3e0fe6	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0xfa915de9	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0xc216d8d5	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0x6146cf5b	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0xe44d0d07	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0x09c546d9	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0x9ec75521	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0x261b4b9b	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0x133ab3cb	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0xaf46b94c	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0x369d315a	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0x28d4ab72	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x6e055089	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0xf3231997	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0x570fb6f0	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0x7eae52ad	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0x4d6f1ee9	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0xed289ccc	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0xc24f2e57	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0xf8d5b3ec	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x8364583c	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0x1a68a446	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0x482defce	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0x9cc5d281	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0xdac81982	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0xcad68563	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0xcfd5e64e	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0x8404ec00	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0x32981f85	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0x8468e474	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0xd754779f	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0x6dec434f	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0x1a33c32c	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0xb344c955	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0x0d5e49cc	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0x2f28edc9	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0xb25259f9	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0x671daab9	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0x3ff56824	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0xce8669f5	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0xeaf2611a	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0x01fa0494	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xc1beb114	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0x44e91c4e	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0x28d3baee	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0xe48d2cea	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0x168aecda	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0af53b6b	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0f0d5a62	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x15399a72	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1541b5ca	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x166add6f	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1b34e30e	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1fbb15bf	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x283be551	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2cc159b5	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3d1e9294	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3e4350c6	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3e76575a	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x435e09eb	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4545fd3b	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x45cb80f5	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x46d7f4ed	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4958c24d	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x511eef68	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x52473774	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5e0c9adc	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5ec80c40	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5f576dfb	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x64568c03	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x692e7d09	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6bc9a94c	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6c5533d5	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7bb6f212	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x81c1e919	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x88c551af	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8927a9af	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8a6212a3	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x91a6a5d9	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x943a7673	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x983d45dd	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xac5f2473	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xaffed5f7	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xba437722	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbcb37785	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc2f28228	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc691209d	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdd85a0da	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe10ae920	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe7e0cbe3	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf683a812	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf94cb55b	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc781c47	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc80338d	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x0dea2e96	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x4af9a672	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x4ed92351	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x8e5edbce	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xe1d41a48	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xe4fa06e1	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xaf6cda88	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xd70d2ef2	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x0a46359c	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x0e467eab	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x13dce614	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x34d8b7b2	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xad650cf3	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0xb965ddb8	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0xb6321981	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0x519ecd48	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0xad45fb5d	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0x02cb436c	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0xf9d00cb4	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0xc73aea44	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x1c8336f8	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0x9a20d011	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0x2dd3a46f	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x0a11c68f	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0xd07df338	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0xf8bfa533	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0x20f4f9df	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x6f4a3cce	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x26bbdd38	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x4c0622f3	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x83335448	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x57335612	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xe4a2fe76	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xe630216e	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x25a676ec	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x3c336c2a	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0xea67fb95	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0x10442493	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0x7377b559	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x01cdfdd7	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x07c6616e	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0baf668d	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x12d206c0	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1ae0ed47	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x40ac1c5f	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5fbd0495	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x62c01c08	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x70322962	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x771f27d1	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x79bb3437	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x951c4758	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x96588b16	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa9716289	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaae3851a	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaba204a5	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcf6fd15a	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd7d90662	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xedf47c59	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfa0f6c0b	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xb9602170	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x06609a47	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x0eb42448	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x143d0175	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2ef13f26	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3c72c721	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4665f084	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x51092a86	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x58e6b2f7	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6edefafa	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x910e78bd	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9213b46b	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9c0569c1	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb6663436	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xcaf13634	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd6dd2b5a	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xda408084	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xde710388	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe11d9499	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe6e5635c	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x6ef2e431	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xd6f652b7	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xddfbf174	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xf305ac1e	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x6ddab8aa	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x90f001ed	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xb5b9d33f	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xd20aec26	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1fb39bdf	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3ba1547c	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x75fb8839	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x8f0c61df	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xa7798cdb	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xa94d42d3	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xc763f0ee	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xdafeec91	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xdc968316	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xea3f19f3	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x16e8e254	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1eca34dd	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1fe4262c	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x31717720	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x34c2b5af	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x36f18dc2	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x372b1912	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x47b3779a	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4bba70a7	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x50d5830a	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x522eace4	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5402b46b	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x564be297	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x618f4af3	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6388a11a	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x699b0bfa	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6d071a9b	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x703aa21b	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x777a87aa	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x86daa2c1	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x96639e83	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x980fedc7	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa0c67acc	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa84230c3	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb0d40f59	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb1247c95	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb2f0939f	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb3dbe203	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb60eec5a	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc5ac42b9	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc8583d49	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd3e16eec	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdaf1af01	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdeed55ed	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe3359207	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x04afda00	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0e4cbb73	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x13b78445	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x19602e79	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1fcddc10	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x258102b2	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x38936edc	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4ddb97ff	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x60d65503	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x673851d1	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6f854c0b	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x78dd2c06	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x79f32b77	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8f7eed6c	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x97fd5c6f	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb1413150	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb5b30f00	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbd99ebec	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xcfd60e7e	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd6d7cfc9	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd78db54d	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe30c0ecb	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe6fa2629	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf3d688b8	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-contig 0x49ae730a	videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-contig 0x67ace712	videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-contig 0xc9b7939e	videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x059c0966	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x8f2e4231	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xcb013250	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x03cb78e5	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0c295a44	v4l2_create_fwnode_links
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0ee44fd9	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0f4f89e2	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x17b0f375	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x25fc83c2	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2626963b	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2881295b	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x290fc240	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3095342e	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3abe4d80	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3cbe8c83	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3d1a302c	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x47ae51ea	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4e92f1a8	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x54ebab18	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x584f44b1	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5d11b4f1	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6004572c	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x60d8e9cb	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x663f94f5	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x66c416c6	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x74d8fb01	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x77e127e2	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7b2ab0be	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7c705d31	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x83999989	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x87ca6024	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x96351abf	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x969e9dcb	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9dc999e3	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa1030c18	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa33498cc	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa73fa5bf	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa812ff26	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb5c0c3fa	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb72a7068	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb786290b	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbbd40458	v4l2_create_fwnode_links_to_pad
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbead2b83	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc1f9b87d	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc4ff9167	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc619769f	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc7c91ff5	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xca9ef7ae	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xce093057	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd1a59943	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd1fd1fc0	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd723bf55	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdb3c1241	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xde059a3e	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xec5c8600	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf11f3ad0	v4l2_subdev_get_fwnode_pad_1_to_1
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf1d001ed	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf9b49215	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfa389304	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfb77b0e9	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfdc481ee	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfdd7f291	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xff0002e2	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xff76573f	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x52d53f8c	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x52e91170	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x8e37621d	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x5dcf85e2	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x68b1a642	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x6d15317f	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x72197296	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xbba2df8a	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xc3217d87	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xe612b140	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x453ce37c	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x59517bb0	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x5b096a4e	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x64944f7b	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x91e52ec9	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xc4d0ed53	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xcc986938	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xdbeba71f	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x0735f3af	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x56f6afda	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xcb910183	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x2be9b424	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x3420dac9	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x495d8be2	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x6ceb083c	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x7a6fe7bc	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x7ac1f945	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xf5a89b12	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xaca9b59c	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xca1ffb3b	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xf5d83580	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0bdd8308	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x174773bd	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x174aaffd	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x210a55ae	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x54726eb1	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x547fb2f1	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x83973348	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x839aef08	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xabce10fd	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc0a22e44	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc0aff204	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe7db033d	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf3295cef	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x00035bef	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x120cae87	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x15d42b56	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x47b99b67	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x52b6e5a7	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x8bba985d	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x0b02b720	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x200c8358	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x23eed429	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x27f4447e	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4df17013	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x6251dadc	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x7eaf3910	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x93c92dfd	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x94550c67	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa758211d	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xbad3804b	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x18ea1a3a	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x6f899f66	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x4d9bd2a1	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x99ebdc68	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x9a5515ec	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xa549eb38	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xc05c3d76	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x6272417b	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xeecaf484	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x06311987	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0bae6128	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1779517a	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1fd9b4e8	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x21619402	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x347cebcb	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x398f519e	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3cdc9fdf	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3fa8fe0b	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x437aa712	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x47dfe70a	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4c6ac6d0	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4ccacab5	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4d9e27ab	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x51e6aec9	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x65634cac	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x741ed82a	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7600aea2	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7ff81589	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8187807a	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8ac13b4b	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9c8a66f9	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9d1daeb5	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb478d060	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbdea9465	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc2b7bcce	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc53baccd	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc78988c2	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc7f44c34	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc8028a11	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcc66d2fa	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcd581ab8	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe08bebe3	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xefb4b894	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x31fa439f	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x32473b8c	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x408925c3	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x6a112202	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xda75b3d4	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0x63832016	ssbi_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0xffb381c9	ssbi_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x201ec4df	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x739cb65d	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x91f13093	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x98474930	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x301ad455	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0xd189b8ac	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0xf26058d1	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0xf73563bd	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x0687c6bd	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x5e86a643	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x8b48864a	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x4db5a849	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x2056ab6a	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x453c5cbe	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x675945a5	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x9bc4acae	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa56062f2	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa8729bff	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xf9498a7b	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x06835b64	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x11274865	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x11c3f544	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x167f8841	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x35dfe5b5	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4e23c847	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5ffee4cf	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6c6cd70a	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6dbd4736	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x73441e4f	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x77dffdfa	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x81132f93	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x974b2ec4	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9f6aa7e8	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa483505b	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xab31d1c6	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb8cf9197	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc7db2529	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcffbe89e	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xdb3e5f82	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe13a2bb7	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe4cb1943	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf640646a	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xff7ea324	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0d7cbaa0	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0db0b5f6	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x226cf295	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x28b1fdc8	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x4f937f96	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x59c877bf	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x5fa8f64c	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x626a1491	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x676863b4	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6aba0d42	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6ccf98b2	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x990235a4	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa9c9fbcb	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x468d829b	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x5b981172	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xbceb35d0	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xd006ebed	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x1a5f0e7d	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x33565888	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x58629b20	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x7192cba8	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x79c1ab82	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa45ae986	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xd257d73c	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xf35199e4	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x1ef08179	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x2b69ff35	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x2fca7d6b	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3b040eca	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x8627548b	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x97a887c8	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xf55af893	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xf8a95485	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x4d98b375	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x977dbee6	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x25eed213	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x3ab736fb	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x4dc87117	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x7161389f	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x984d3551	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xa188f9ef	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xa2f53391	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xb5e47c8f	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xbb7dc595	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xc9322e5a	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xe0516607	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xe39b5eca	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x16451eed	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x296c3b05	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xd4721e93	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x36f8a9f1	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x48aae221	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xc5016677	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xa73fcf76	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x646bd1ca	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x6fcc9442	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x8f90b5b2	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x1ad4a0b0	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x250edb3d	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x3f1a9717	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x4064ddc6	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x43b204c2	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x0158f19c	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x02b4fbee	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x247f3114	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x39685499	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x41d77361	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x99c13e93	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xb9ce31f0	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xc0672afe	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd6d0e94d	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xe569a19b	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xe68639b4	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf6e20c34	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xfd9afe8a	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x4094e14e	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xf3dadd63	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x3f255daa	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x5de9be22	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x62eafc06	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x668f1015	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x021cf7e4	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0edc3ebe	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2c0d293f	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2e495e06	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x300e52ea	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x454b142c	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x4e787dee	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x55bd8cb0	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5e891532	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x6cc73756	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7d521fd1	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7de7028c	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7f5b3fd8	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8b8acbda	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9200af73	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x94e76dea	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9845a3e3	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9f4ad299	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa1707d2f	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb966fb7a	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbb47834b	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc0a56510	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xcb900d67	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xdd4241c0	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe4abaeaf	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf41dbc36	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x4a0884ab	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x06eecb24	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x0cea4a6c	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x5365570c	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x68ac2027	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6b1cbc1a	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x796a28c5	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x822f062a	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x8bb60678	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x8e390fcc	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x99f0c542	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xaafeef99	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xad31859d	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb11be988	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xbda3adc2	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x0f5374f2	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x11cfca12	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x191e9616	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x230d3c5d	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x2afe87c7	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x362ca080	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x44f2948d	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x57bb6cff	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x899efebe	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb36cfb75	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xba0208d9	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xce9ddbc8	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xdc5980b1	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x005fdf03	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x12f2635a	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x620237db	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x9134c1b4	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xe3dafd43	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xe929bdb4	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x4e1e1017	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x5eab1b52	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xe0620559	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xed5c7b2c	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x092f3e25	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x18ef2187	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x266275ba	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2cdafe5b	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x327a41ea	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x36b246f7	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x379b0f40	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x3d27e94a	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x447490bf	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4508477f	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4d8d988a	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x561dd13c	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5d4d4d0a	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x60dd61b8	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x76d3d764	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x82818af9	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x82871473	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x857137cd	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8f2c9d4d	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x92d5655f	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xad1957c4	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xae727c7c	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb27ea438	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb57abe29	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xccdadd33	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xda37ad9c	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x3fa21852	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x473300fe	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x612529e6	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x898769a4	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xa5820e13	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xb79fd555	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc4afad38	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xcfcfd0cf	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x81fdc32f	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x82daeb33	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x9b21b152	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xcfe8de8c	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x133ec81e	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x00794913	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x26768169	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x2ac2bdf9	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3c53376c	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x4f8c86f8	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x53008eb7	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x59e94912	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x62c689ce	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x810640e4	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x887d6196	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x88ef92f3	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8b7cd765	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9c59ed60	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xb8850ac6	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc37ad377	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xcfdcc733	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd6e3c052	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x1d1dcdc9	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2181c204	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x30719af0	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x30eedc85	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3d20890a	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4e53d474	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7aa752fb	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7c29590a	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7e59f285	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x83aaa8dd	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x894cfa40	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x941a252d	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x983f9c69	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa5ebcfe9	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd7c9eaa6	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xddefe359	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x22fc6695	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x2695f52f	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x4be2f862	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x0b28a9ad	qcafrm_create_footer
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x2b6ddf3f	qcafrm_fsm_decode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x41da0375	qcafrm_create_header
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x08208320	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x0e2cefed	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x64923c2c	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd5b99c0d	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x462d7390	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7e42c429	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x910ec50d	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x9b3e32dc	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xae996f24	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x507f5f40	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x85532d8b	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xd2113747	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xe8707958	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xc06630a8	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x0ce238fc	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x8516845f	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x9a64c1b2	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xada78bbc	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xb7801f82	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x043b1ffe	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x2cf17716	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x45a4d02f	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xe4007475	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x52a69043	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x5fa728bc	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x0d0f2d0d	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x0bc17170	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x020724c1	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x49ace724	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x775d6217	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8a5bb89	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x10c471e0	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x2a6d94a9	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x3a893cf6	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x5a7bdbd8	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x636a2fb6	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x723e5cc9	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x73eb9124	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x80d17b5b	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xb0a0df12	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x4742b332	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x7cde933e	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x9ed1835a	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xbc694311	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xd2c149c1	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x0de23df3	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x115a89fb	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x14ce101a	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x336843d1	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x51ec6712	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x56b01a5b	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x61a419dd	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x64c52f6a	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xa90f9869	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd3fe2e46	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xe7262085	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x00c648c7	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x44daa5eb	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x720d7a55	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xbe346cbd	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xd41422c7	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xed9f5a47	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x71af4415	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x938f3452	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xa6f81b65	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xd10a6ec7	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0b436989	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1b492bd5	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x2a7c5ddd	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x38995d69	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3b482504	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x61db804d	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x839965a0	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x84620659	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x88c2f08c	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8e60021e	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9d0c1442	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xa508d4bc	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xae124de6	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd0f1c7a6	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd5ff9687	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf3b66f33	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x03040cd2	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x4e262d98	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x57292436	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x5bc74b50	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x68715e75	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x81f59c54	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xc288d7d6	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xe492ba9b	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xeeb77a52	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x07b2457d	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x12613667	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1ff0e30c	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x21641b24	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3844b90b	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x4beef190	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x642ab2fa	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6f344ea4	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x89709e6d	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x93401a87	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa4d52fc8	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xab368583	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb367039d	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xe86a20c9	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf6df3191	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xffff9f48	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x0dccca21	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x95038572	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xafeecd34	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xb2ed011c	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xbf080b8d	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xd2f62ccd	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xd685f15f	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xd774ad38	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0db50db7	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2184eb0a	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2834d585	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2f60e0c7	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3594f5ee	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x38a70f2b	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3e190e73	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x49a2469a	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x50bce0ba	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5683255f	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x58fffe5c	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x60d23443	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7df157cb	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x835bf5a6	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8ea1a874	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x949284a7	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9d95afb3	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa63ec368	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xae88088c	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd6dccf5a	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdd3fa839	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe224b6ba	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xeea98a5b	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xefc04e5d	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x02197834	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x02428f10	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x04a2995f	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0f1a24d3	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ce3b05a	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x272c4f56	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2bc44d56	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2c51ef25	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x32b010bf	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x37b97a0f	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3e79462d	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x47792bb0	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4a2aa5dd	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4b2f5ce9	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4e75c9e8	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x51592595	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x51c9d739	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x55ad5fb5	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x56d679a3	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x60abcce3	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x787f5ee7	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7c49db38	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7c99a6e6	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8213bf40	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x83c1331a	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x917bf911	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x962d9465	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x96e795f1	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x99de7af7	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9c3a939f	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9e222980	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9f97071d	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa39e6595	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa6f38d73	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xabec7894	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb18cea8f	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbc51234f	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbd7025dd	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc137ca58	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc8f57b5f	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc9db9b60	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xccef8ebd	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcfbd7a09	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd3bc2daa	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd4d1d4e4	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd51feef7	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd5d32fd3	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd61fddd4	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdd003a5f	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe6167498	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xed1f37b6	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf306f081	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf8cceb90	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x0a1eb4e4	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x3837dac0	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x58cd6618	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x6eb41ab3	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x9a68aa27	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbfdf7d0f	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xce5210ec	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xf5db9118	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x01275237	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x204c89a8	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x6f18e295	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7dd670d1	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7e96f13e	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x9340a8ea	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa4d5bd64	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0fd28b72	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x106f5a6d	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1f896a69	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x23a23e0a	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2703773c	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2cb28dab	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2f2f2560	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x32806f45	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x328339ff	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x453361f0	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4ce42c26	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4d6543c2	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4daa2bea	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5168db55	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x53ad4e7f	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x553dfd4a	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x59eb951b	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bdc4432	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d76c649	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5e22c1ec	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x617f9544	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6191236a	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6f5b4106	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75200d50	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x789f7d5d	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7b08edfd	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x81964cab	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x89073bcb	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8a9e85b0	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8b07bb24	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e655bb7	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x90b711df	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x972f8241	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9932ddd8	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9e91140d	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa8ef8467	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaa51f30a	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb257aacd	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb8c2b3a9	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc3608c75	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcba2e175	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcda9c22f	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xce20c49c	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd2051a9c	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd5b64a99	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd67632ac	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd9e49f48	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdb2d9231	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe1b6cf5c	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe232cead	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe4a3d6d8	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe8f5ff91	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xef1e6ffe	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf298b552	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf2b5bfa2	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf39d78f7	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf528ecc1	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf5c13481	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf5c81db5	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf6ae8f54	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf91b5453	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf9b4586d	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfe293f8e	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x26ca3b98	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x2910d855	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x2c82fe7d	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x2fc55d19	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7e38119a	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x9e2b7675	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb5133138	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x050a60ee	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x11916857	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1ca1f9de	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x255f9867	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x271cfa3d	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3448ce41	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x38967e34	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x47d19460	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x791d6081	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8f8ca3d2	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x93a5ec21	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9438e187	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9aac47cd	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa5a9d8a9	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb96f2906	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xbc1767d9	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe35fb51f	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe8776365	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe9669ca8	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x07956502	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2886214b	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2d989879	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3a7a15f8	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3c584eaa	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5353acde	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5836d090	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5ed65ea1	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x629fd212	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x65d4a3b1	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x68337c86	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6bb4f4dc	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6bdaf961	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x72c9c46c	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x752a4a52	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x81d8de5b	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8a0dc736	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x94a08b73	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x94f59949	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9e0b7b8b	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9fc2fef2	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa142e02c	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa5c9056b	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa6a7ef50	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb394ee52	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb5cc77e3	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb666242c	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbb36f8e9	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbbfd3176	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbc3cdac3	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc0aa1211	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc6a566c2	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc93ca77b	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd33131ae	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd49ef234	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xda1cfe84	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdfe2d5b5	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe163b4a9	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe3e7adf4	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5d5386a	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe6c80fa2	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf57c30a6	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfa3f62b4	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfdcbe945	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00f5038a	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0a65faf2	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x105c3adc	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10e2404c	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x21f103de	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x24bb852f	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2aa26dbe	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2ad00ffe	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3d0479a0	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4403d1f8	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x464debf2	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4df55e70	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4e65919f	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5e2e8cef	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6199a92b	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x68748f27	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6b186956	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6efe257d	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x700b0190	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x73dfa963	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x86d0331b	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x86e37635	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x893ee9c6	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x90a758cd	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x95c125ef	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x98a24d9c	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0179a7a	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa657b884	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa7f5facb	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xad8fad69	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xada67121	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb2cec29f	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbb38bc15	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbbeff91c	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc0330b83	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc87e2774	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcdaf30c1	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd25f42b2	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xde6e4685	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe06a90ee	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe213cff1	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe22a13ca	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf3aadf7a	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf4230476	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf658907c	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfea29d53	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0a7c6336	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1c9ea83f	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2ccdf6f8	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x350006f2	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x3f5461c9	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x51b30df1	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x601f02ff	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6baa5f75	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x981a9611	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9ad17474	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb2c2be73	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc0f8892c	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd908d11e	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd94ffc45	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe8ec6483	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf201b4db	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x185190c6	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x422d4ca2	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4c335a59	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc60859f0	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x13b60e55	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1ea9cc36	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x26837d17	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x269ac1c9	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c6f6a2d	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37b993b4	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4ac0f54a	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x63458b65	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x729e5a1a	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x75cda183	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x78f5fb59	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x87337c7e	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97fdff06	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa1e6c061	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa209e88e	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa2e8e0f9	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb016121b	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc05d6278	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc44b934d	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc76e01da	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc9f00fdf	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf4c7480	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf56a021	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdefd0335	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed4178c5	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf2e68ec3	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf8ff6add	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x2754dab0	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x2994c37e	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x68d7ca49	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xaa197ee0	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xae9ba4e1	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x04ec699f	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xaaa7a1b1	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xcdbe8753	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xe5d5df75	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x126dec07	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x1758fd6d	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xdfe00233	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x001aa20c	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x02e969be	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x033307dc	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x04c5dfd7	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0853d1b8	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x09ad81ca	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0cb4bab3	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0f39267e	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x13fe3c2f	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x160f301b	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2a4378c3	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2d5a05d3	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x65baac02	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6a32d619	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6b7ecf08	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6f293eb9	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7579d140	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x78d90efd	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8269839c	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x837665bc	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x84920c7e	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8bb0d85a	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8fc2a3b9	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x93ae2e25	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa2a56f9e	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa43cc706	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb1675575	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb9b66ee8	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbbb2cc75	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc1db71fa	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc73bb3f0	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc9e5f7ed	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xce810429	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcef4fcd3	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd8f99a02	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdc8d0fbb	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe2c59ffe	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe766fcfa	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xebb37b9d	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf603c8fb	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf70f1d43	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf98b8349	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfc0f74e0	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xff8067c5	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x738b0c60	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x7e02f404	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x948be9e6	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xe8ac7cca	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x4fd90d3a	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x57f16735	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x858931d6	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x9ebe2f19	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x0393570f	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x23040042	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x2582e48f	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x2e477992	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x3e5519cc	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x74c5c72b	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xc5b5058e	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xf72de743	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x99af3214	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xd6d3156e	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xd921d3ff	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x00a030d0	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x05424342	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1521d9e8	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x23c518a4	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2c2bee7c	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2f7bfc5a	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2ff2db82	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x35201217	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3687cc1c	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3d003dee	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x42d9d489	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4cd633c6	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5143169f	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5ad46803	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5e15176c	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x675d9a1c	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6acaa7fe	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6ed88fde	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x710dc37f	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x803d4a9b	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ab19397	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8cdc94e1	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9506b485	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x954c73db	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x97ecdcaf	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa21cee38	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaa3e913e	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xac09f651	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb2128685	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbbe564a5	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc115d4f8	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc474f418	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc717edce	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd5994f43	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xda280a06	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xebfc8d84	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf2b396ec	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf32a707e	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf8cf48ed	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfa6815f0	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x275e6814	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x2c64282b	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x39315ef7	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x440e01d5	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4fdae8d7	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6a5b01a7	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x7eb23933	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x824e013b	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x94f46797	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x999b6ecf	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa206b911	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xc8d240c4	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xd61c1aab	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xe8959738	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2d32b92b	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x4da7b187	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x5467ef3f	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x86515753	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb101fceb	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb147ef49	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xbdc0eed4	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xc8bfeabc	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xda040a09	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf22c94a3	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf33b2280	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x06f69780	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x5bd9f76f	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x85655df2	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x87927681	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x0964d159	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x19cb8f32	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x7daa1837	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xe88dfdd6	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x05665a04	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x388e2590	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xf32fbcc2	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x0f87bcb4	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x65592ce3	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xf2eb93d7	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x0c296792	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x36b851cf	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x51f9f3ac	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x8c6b4518	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xf989635b	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x50894ce4	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x63a08d79	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x69603c32	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x8f2314ab	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xc104bec5	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xc319fc82	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x0215abbb	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0x1a5f49ee	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x007a949e	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x057feda9	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x07c0ebc7	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x21c80802	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x21e84559	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3b49c1fa	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4457d903	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x478b9414	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x535bbc14	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7085fe8d	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9b17109f	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa36d396b	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xae42e504	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc412c5f7	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcb250bba	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfb025f05	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x2e6a7955	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xc70b8fc5	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x1a5caa44	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x43826ffe	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x76b10bf5	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xa7520e98	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc0adadd5	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc55aa80c	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xfaae0e0e	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x26d34ce5	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x042a133d	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x04335e27	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0450e3a4	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x06899e7c	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x09a4ff3b	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0e435bbd	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0f46ca34	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1abf0e77	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x25787937	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x26da9b4d	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x362dee56	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x39175c53	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x43d5979f	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x49060562	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x634499f8	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6d4b3802	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x721ef7f8	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x750aa96b	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x75178dc7	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7abce0fd	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8432bf97	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x885cbdc7	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x887a3468	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8e9095e1	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x91308d8b	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e9a838c	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa0a77585	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa33f7b3a	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbbbf2fee	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc0f298e5	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc6630b10	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcced4143	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcd3647a1	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcd4da6c9	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd499dda7	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xddf9b631	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe11d2f23	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe1284ef7	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe88cb690	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf2a57027	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf7e4bd9a	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf84f68c8	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0554cfcd	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0ef8a02e	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1f9eb9ce	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x341fa684	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x43ad3f4a	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5fc2b406	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x62a790d6	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x64902d70	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6505b720	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x68967fc6	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x829c5069	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa6d79fc3	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa8de4152	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbbe47464	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd9e1dec6	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xea325b46	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf78910b9	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x048cc6fc	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x04cd6c12	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x05c6ca5d	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0a070194	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0b145dc4	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x149c624e	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x179ea6fc	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x219373a1	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3156892e	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x327c7569	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x39ae1643	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x54c30b34	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5760eaaf	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x67291b00	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9110cc55	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa368c5c0	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb0c933a9	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb9ffc54c	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbe576e20	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcd2be5bb	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd2314070	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd4ca4068	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xda07809e	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdfbaa138	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf0710751	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x053e0280	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x063aeb39	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0b528d32	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0c15c7b6	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x113e80ab	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x17ce920f	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1b2d703b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x20020af4	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x20222496	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x29462e5d	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x321df691	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3368beec	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3a4a98fd	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4023d849	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x40d7e7ca	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4f760900	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x53c1b940	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x544af35d	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x558ed3b6	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x56e786ce	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x63a831b1	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6586366f	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x791eb0ad	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7c4ef909	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7f10b11d	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8002e27d	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x83fe41ec	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8882d82e	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x91b4db64	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa03ad5d8	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa63db243	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa958bd6a	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb37e5f70	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb5052761	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc7afc7fa	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xccd6b143	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcf6ff6b2	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd1fa8adb	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdeb71c18	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdfb6947d	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe0583423	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe129cd18	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe6211105	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xea5cc2ad	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf01945c4	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf9131c54	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x0decf748	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x180cc80a	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xe09f77be	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xfe3105ce	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x3f2c0f57	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x3e23ed52	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x79974b54	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x8e19e1d9	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xab158196	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xd4a55730	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xd72f8072	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x02a8652b	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x1d6d3c6f	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x21dc60cd	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x2ebd3f09	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x51e20684	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x905341a0	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x9a564a43	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xdd8b1dee	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xf9fc3e12	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x0ee314f5	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2f36bd42	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x33bdde7c	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xa2a4228b	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xf132c30a	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xf33d09fd	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff149525	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x19c90c4f	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x72ecf6f3	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x799dc50d	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x83d3ca8c	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x88140ba4	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xb3dfe42c	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x83a60371	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x8ef21f02	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xbd522ffa	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x16b509ca	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x61b4368e	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8a16ff06	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x8e8caa4f	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xce315967	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x189d1628	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x412ead8f	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x7922cf1a	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x02278e10	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0275ab10	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x08fb0bd6	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0de67622	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x15a1d3da	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2b432b37	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x39cfb5c5	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x54e73b4f	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7295b022	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9e77b7c7	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa408dae9	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa6380c71	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb9db0d5b	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc0ce1b96	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd42a15c3	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd581993a	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xee1ced19	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf57a6796	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0xeac1ec3e	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x07411a9c	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0855174b	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0a72942c	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1721336a	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1856cfab	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3b4ea7b0	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4c010284	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5304ec20	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x58e64e0b	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5b82dff4	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6203fccf	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x65290ef7	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x78b4bdfc	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7eacc09d	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7fbef06f	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8634915f	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8accce32	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x95b2295f	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9c7b71d1	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa21003d7	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa7c49254	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xba6cf7cf	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xba8275a5	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbbc88f39	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbd0ca236	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc0c8e4da	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xcbaeaa46	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd11c0c4c	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd4214e8f	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe4517a4f	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe4d70057	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe5972bf9	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xebbc5845	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xebe54816	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xecd818e1	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xff96160b	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x043ff142	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x0f777943	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x9a5a65fb	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xd9ba7eed	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xe3a862c1	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xfdca8afa	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x026d0b31	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x38bbb87b	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x9b85b846	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x1e967c84	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x22d58687	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x266bde1d	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x38d949b9	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x3e186aab	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xae245fd1	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xdefa4106	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x1f071bf0	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x21f79c8b	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x2f5dd351	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x330eabb1	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x51d1c23c	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x58e2379f	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x658e1e1b	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x79d15f49	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x9b69921b	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa6a50ba2	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xbe669a66	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xd6010ab4	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xf8669cf1	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x0db5084a	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x61653f65	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xee9e5f90	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xf94aa428	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x0067637c	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x0392a6d3	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1d64562c	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1e919383	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6c66d79a	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x7b33ca5d	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa4b0e558	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xace18f60	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xad469917	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb1e2ba30	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbecf93a0	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdea8bab7	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf524c2f4	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x02a0f07e	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x03dd39ae	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x05e48c6d	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2a4542f0	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2c2ad782	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2ed53c6e	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x303c1f09	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7fc386ec	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x9bb559e8	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc6e9ba3d	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe31e367a	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe8639dc1	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xfa82b5e8	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xed704189	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xf7080b6a	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x71f503a8	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x7aed8c5f	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x4ffab442	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xcbb83703	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x89457adc	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x061fc7e1	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x155e474a	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x20261336	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x224e7a40	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x2b545eb4	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x40f60eb8	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x5cd71460	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x77f096b5	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x78c80a01	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x87146a02	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x87972fae	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xaa950a86	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xc090b5c1	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe9999af8	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xea3fdb8a	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xec486eec	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfc69daa7	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-cap 0x0e79e01c	mxc_isi_out_formats
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-cap 0x6251c234	mxc_isi_cap_frame_write_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x0bf842d9	mxc_isi_get_irq_status
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x32eb1954	mxc_isi_clean_irq_status
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x41b9316f	mxc_isi_get_hostdata
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x438a051b	mxc_isi_channel_sw_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x4adcddd6	mxc_isi_channel_init
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x4bfa6429	mxc_isi_channel_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x518d931f	mxc_isi_disable_irq
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x64ee3ed8	mxc_isi_m2m_start_read
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x6850c798	mxc_isi_clean_registers
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x7d224f3f	mxc_isi_channel_set_outbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x82646073	mxc_isi_m2m_config_dst
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x85b13aa5	mxc_isi_channel_config
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x85ebf9c9	mxc_isi_channel_deinit
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x922d0143	mxc_isi_channel_set_m2m_src_addr
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x92d8783d	mxc_isi_enable_irq
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x9b166a66	mxc_isi_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0x9b223e69	mxc_isi_channel_source_config
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xa648336d	mxc_isi_m2m_config_src
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xe72b6efe	mxc_isi_dev_get_parent
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xf576d3e5	mxc_isi_channel_set_chain_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-hw 0xfab033ef	is_buf_active
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx8-isi-m2m 0x315d9271	mxc_isi_m2m_frame_write_done
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x02ddb90b	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x041d3aa8	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x18d89e48	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1ab2bd01	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x32264f4f	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x42e9e9f3	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x51e708f3	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5acc6a4b	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x650b82bf	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7bcf5390	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x8f771146	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb4a203c3	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbd510521	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xfd6b8e0d	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x07bdffbb	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x10e6fa2a	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x12d8c9c3	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x18297bf1	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x21bf2498	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2bd4cbd8	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2e7e21d7	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x54df2a79	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x59ec814c	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6a9dd90a	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8181ceec	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8f240c7c	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x9836617e	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc4a2fe1c	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd9807052	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xdc8a1386	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe66a0618	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe72e24ec	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe9c85f12	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x6e290857	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x8cd95bc2	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x9d3501bb	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04fb548c	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x07e6e955	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0c2e2c5b	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0e6dfd5d	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0efdf536	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0ff52e60	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1103c4d7	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x12a42b28	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x15af1ef5	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x24670db0	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x256b794e	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2b3118bf	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2ff994a4	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3798978a	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3a33720c	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3bdbe370	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x42745176	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x44c4c423	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x44c9b58e	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e4bc088	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5fcb8fc8	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x630e238c	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6555ecd3	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6b506345	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x76ec7e83	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x82d77543	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8832a129	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9714e8d2	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa2bd5960	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa4a656d0	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa4df2cf2	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xacd6bd6f	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb0fe53cd	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbdcd8d0d	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc86e6036	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd73896d4	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xdcc839de	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe9e52a00	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xefbe14e2	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf3c6480a	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf4039aae	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x1b5b507c	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x2b630962	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x708e76b2	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x74990840	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x93e946c3	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xb0d0895e	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xea872bf6	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x1107a57e	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x3fc89791	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x40fb377c	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x748fb89c	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc543b60e	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd8a64712	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xe2857035	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf2598b6b	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf4654c3f	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x114ccab6	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x4c982e35	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x584299d8	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5b335e64	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5dc93e8d	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x635948b4	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x67083fb8	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x854ef3fe	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8e45c135	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xbe6f4d58	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc82c7a6a	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd4eba891	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xeb4091e3	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xed227801	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x1b8b1e0b	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x3024a07d	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xccc3ce0a	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x8224b24d	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xd470044d	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x0feb9e53	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x77ef6252	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xc212e436	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x2d05e189	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x541273f8	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x7d6ec620	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x9d85b2cb	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xf8256c2e	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x01fe3665	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x07c0b6b9	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x178c119d	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x2d153362	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x7ed680a4	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x96f4625a	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x02f42352	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x09f3b16c	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x34675af2	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x4b5e967a	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x78ac97e3	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xeaef83b2	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x06e7b0cf	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0cce4566	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x15483e6a	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3539fdfc	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x36268585	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x47862cd0	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6d0c865a	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x753be694	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x90873b3c	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x908b7931	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9f83b6aa	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa16b55b6	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd6002f3d	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe8facd50	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf175564f	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x9cd1a131	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6c7bc88	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb96f8bda	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xf0ed2522	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x02605b74	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x03d868a0	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3f51484c	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x442122b5	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x46349f36	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6f1c67aa	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x729cd1b4	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x745e98d9	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x74c50b38	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x820d563f	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x8e653511	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x950f3aae	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5040b7d	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc404891b	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xce6382dd	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xdf7abe61	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe1502b95	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x20438054	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x22dcbfd9	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x4404b598	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x474db8c4	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6195bca1	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x7f69cd74	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x875c45c7	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x89482a82	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa2c7c85a	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc6176152	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc68bf08c	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xce2e5f6e	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd11e5bed	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xddc246ee	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xebeb0d5b	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x003aea1b	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x01026299	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x18a131dd	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3ad1b018	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3b56c466	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4acb9cd7	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4db1bc5f	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x53c10fbd	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x633c2646	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x67a1237e	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6fc744cc	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6fd4a004	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7a2d8992	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x80485013	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x86bc36e2	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8c0e0d01	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8d01707d	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9bb031b8	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9c8580f3	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa4160029	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa631d023	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa6b846dc	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb188d1e1	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb39882ca	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb78966a9	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb90dc16c	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xba55461f	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbb97069b	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc2fca7f2	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd96a5db3	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xdb252ce4	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xdb667dbc	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xedf1d5f4	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x03af142d	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x07d76c77	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x088bded4	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0addc3d2	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0cbfc50b	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1092767c	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x187a6dee	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1bee5592	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x301c6b25	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3876bbe5	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4750e85c	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x47944b03	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4964a5f7	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4d127d75	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7344aa5b	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x78cdbf97	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x81cbdd08	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x848f67d2	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9232c06c	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x9e76ab7e	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa5887e77	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb0a0bfe8	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb1e1b81b	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbbbb2921	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbcd3792e	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbe27e572	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xcc34eccd	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xcdbf753d	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xd17d7c0d	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xd261b2be	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xd7ca904d	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xdf22701e	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xea2175ba	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xeca16b4e	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf122d9df	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf5773e45	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf788b6a2	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf8ea315f	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xd9ce51dd	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xf1f8d23d	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x060ee634	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x107b0404	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x17bb008f	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x3d5b0bcd	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x50a583fc	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x5ced5cb7	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x89b796a2	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xc5902e82	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xfbade01e	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x1194cf1e	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x3067bbf0	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x3c2bd307	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x72480101	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-am335x-control 0x4bb9e933	am335x_get_phy_control
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x2da40cb7	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x83e16c26	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xa849ca6b	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xdd81960a	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xe88060c1	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x777fab35	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x09ea656c	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xe3b12a88	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xf57937ae	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x940999eb	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1919e790	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x25463b5c	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2e226106	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2f7ad972	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x31b94a4e	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3c88fc04	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5d7f911f	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x605b6bae	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x733e3963	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x749d75d3	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x74d74f4f	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x75f82ad4	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x7abf2c62	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8f982687	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa3d1bbb3	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbb173e76	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbf29124f	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc08f3860	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xca0c29fc	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xcbebc3eb	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xcc27b322	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xb4e62387	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xd367d4f7	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xa28ded54	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x99b7a6b6	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x059c2820	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x084c2ad8	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x13ecd4be	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1a6d5557	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2159260b	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x307eb17e	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x34b050dd	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3ccfbf55	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3e933676	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x42ab4ad7	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x439135b3	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4a49a721	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x52b9f34e	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7399dcdd	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x74a68d19	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7a5af703	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e6ab462	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7f9c51d3	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8c384441	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9172936e	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa03a49ef	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa597b332	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xac0fd81a	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbd04efd4	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe34fa84a	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeca2f9af	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xede5e5ab	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xefc1e21f	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf49629ec	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf7032313	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfbf729f0	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xfec979fa	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x029045d4	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x5a1ae748	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x982ed7d2	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xe3a600a0	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xf309fa55	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1a66a52c	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2262e167	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4115c703	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x46e65bfb	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x49b6b0ec	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6b4d7dda	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x6c9280f2	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x77c812c9	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x7feb6a79	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x84b67e41	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb35d93ba	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb45eb3ff	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf2347cc2	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x03640d22	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x37dfcb9f	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x44b83e00	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x57aa1f90	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x6c474b3d	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x741d3ad5	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xb21a7977	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc93c52a9	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xd436034d	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xfb06b71e	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xffea4a2e	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xce538e6d	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xd583d4ea	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x085411e5	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0cfa0604	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0f039016	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x18b189dd	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1993ac8c	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x224aa964	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2c5cb4f7	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2efec98f	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x350f38d9	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3ad78c67	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3d7f5339	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4dc6999c	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4efa63bb	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x52711e50	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5bd5bcc8	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5f8c799f	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x66b5e74f	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6c295f26	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x755f78b1	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7f681cd0	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x879d13e4	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x937f0ca5	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9a351459	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xaac44d3d	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb4cbb66d	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbdce7157	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc017ee6a	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc4a53687	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc568cbf0	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc9362442	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xcf5eca95	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd2932534	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd7f2c0ab	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd8ce0524	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdfca9988	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe43a45a0	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe956cb81	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfa95da62	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x09e1f180	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x2e96399f	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x3d9cae83	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x8dcffa52	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xcdd496ca	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xe04a1005	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xf295b4a8	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x09647499	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2c001f00	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x3fa468a6	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x5aee29db	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x93c7978b	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb38d1202	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb6b9df24	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb780ba66	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xbd7443d5	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc28e79a2	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xea4fd330	w1_reset_bus
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xd57f3a61	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xf1814d28	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xf9b3fdf5	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x21c0ca6c	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3935ad98	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x5df9a12e	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x65ac716a	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x65f95ec6	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x6c6789c2	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xdcc40854	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x008e33ce	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0165e7fb	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x020dd782	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x027e4aa3	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x02aa600a	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x032e44dd	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x04fe7bf2	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x060002ef	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x07700ce9	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0834f793	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x08d6fd8d	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b8e2623	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c6a9a18	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ec643e0	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ed52fbe	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0f185c38	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1042cfde	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10aee5a1	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10c2fdf7	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x131a2dfc	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x13eafdef	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x19497858	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1c1d6adf	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x234900c6	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x249bbf0c	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2860b442	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2b8c1575	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2c041a2b	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2d848c64	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x31bb7452	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3420a5a1	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x378c5c55	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38267ba7	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x397f3792	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39a428bf	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3ec464c2	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f3d5be	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x439ff835	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x47af7d20	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x48eeceac	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb407c4	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x507dde0f	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5169921f	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5581c748	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56a554a3	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56ef0409	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56f8a4d7	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5736f4f3	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x589ce243	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b413e20	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b451fd0	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5cddb8df	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5d48c698	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5fd320f0	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x603c1623	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62c88c02	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63846639	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x639a35f3	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66afef5d	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x68159d10	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x683c8c41	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x68d06f51	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73098fd2	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7763da63	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7787ff06	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7854a1b9	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79eb5d97	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7a1da314	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7aacba0b	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c499a2d	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d3f0820	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7eb29393	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8012666a	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x80e622ea	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x839c437d	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x88915cca	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8b956abf	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e4824a0	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fc0d3de	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92239570	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x93b92b30	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x954db615	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98f0ac18	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x993ec786	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9980ff1a	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ae8305f	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9b4ca37e	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0e12f6b	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa29a076f	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa3f993da	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa4426d3e	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa4613a6b	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa63c312c	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa700d4c9	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaaa14361	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xafd0cb37	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb22a0839	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb276b1c8	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb4e62c31	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb627fe60	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb696d8d0	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb8ce48e8	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb91fd747	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb94f4b50	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb9b8252f	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb80d9d1	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbeba30f5	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc019a841	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc24d79dd	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc578f259	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5f076d4	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce6a58a2	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xceba9bff	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd01932e3	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2d552d5	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd5befb1c	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd819b0c9	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd8f6e776	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe18020bd	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1d0d0d7	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe4498d75	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe75e419e	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe8a6d55c	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xea260f59	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec560fac	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef33a6d7	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0c240b7	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0f3ad6b	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf2e38873	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf731d5c0	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf9178987	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfbaef8bc	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc7749c3	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xffd6ad2e	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xae14429c	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x031a834a	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0512fb02	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x06f665a8	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0be0e1fc	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1953185e	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1bafc6c2	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1d48243e	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1f8649aa	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1fb2dac8	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2fa8b893	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x318324be	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x33038258	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3a2327fd	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3f93dce1	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4611ee42	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4e136fcb	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4fa89ecd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4fb9793c	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x503fa0e1	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x53cda404	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x58281ee2	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5c795056	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5c9f12c7	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6102a64b	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x61a46167	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x62cddaa4	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6487b73a	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69dc0480	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6b441787	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6bc6256b	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x70210621	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7190436d	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x72e97801	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78fdffb8	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7a3abbb5	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7a3d1f38	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7afc93ef	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7c237dd3	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7e7072e5	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x85b72780	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8a4fd5d4	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8b6dbe50	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x93ef7cbd	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x94123abc	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9a0d862d	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9bb06224	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9e2642a4	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa02df320	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa0a44183	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa41316f7	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa5dc589d	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae0a62fb	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae978047	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb06a54e5	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbcb15dd0	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbe718e5e	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc321d904	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc5043796	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd0f9201b	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd15f3bed	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd22c7a9f	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd7d3939f	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xddbaf145	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe2ec916e	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe45f4fb5	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe4b1f18a	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe8a0c8f5	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed80a00f	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf677baf8	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf6c4a97f	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x07757936	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x0d5e379d	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xbc710a79	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x2ab9528a	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x2ddeb68c	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x364f639b	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x479d3fed	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x57f0433d	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x87388012	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa6baf9c2	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xecb486e9	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf215ca69	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf42323c8	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x1cca8223	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x4f315b43	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7c412090	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x874d5f91	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x8a16d5cd	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xe2e44a80	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x3738d180	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x6998444b	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x73f826e6	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc6986669	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4d10a4d9	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x636707f7	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x83243138	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x955ee96c	crc64_be
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xbf7868d7	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xf930ed81	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x021957e1	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x0f8a2742	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xd4cb6873	raid6_call
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x43cf6517	base_inv_old_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x7191344f	base_inv_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x94ab3f1c	base_inv_old_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0x97238e2c	base_old_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xb65ea3be	base_false_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xc370e67f	base_old_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xf09ad6c6	base_inv_true_key
+EXPORT_SYMBOL_GPL	 lib/test_static_key_base 0xf6daee19	base_true_key
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x32a554fd	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x343e3c28	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x0c18e46f	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x29caa0d0	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x33c7ad57	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xbb086450	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe12e1369	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xf0d81db0	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x0572cbe3	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x19b6357c	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x416983be	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4ca5a732	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x80ac4bc8	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xf4efca25	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x237a3fd5	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xb4f51bb3	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x4a8d52c5	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x4dd9457f	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xd3649409	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x29005fda	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x35039000	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x45c7ed06	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x75396da0	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xacb531e4	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xae7aaaa2	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xcfc361b5	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xde8d7726	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x817b3604	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x016a9003	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x26cdb890	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2bda219b	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3458cfeb	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x79d26c85	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x844e5e91	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8af020c3	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x95fb7a89	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9adc1d4d	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9b539b69	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9e557f30	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb55e7c85	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc509f8ae	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd50aef8e	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe637380c	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xeaee006d	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xed7637dd	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfe63e4b2	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/core/failover 0x50f5336f	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x551510e0	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xee42722a	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x00bb57c2	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0468f047	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x05f61457	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x208ec4d3	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x22b13b22	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x27f6a68e	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x28fa0c97	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2a092faf	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x420f53fb	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x48d092b5	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4d651286	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4f5726b9	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x503ec4c8	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5066375c	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x57b419d0	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5f0712f2	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6066faeb	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6459d351	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x73778f4e	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x89fcdbd9	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8d7cd4af	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x995ccbc1	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9f711ffe	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa522bdb8	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb24eedff	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc195686f	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc1b5c603	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc78e85ff	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xce2e4488	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe91eb9bf	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xed6661d9	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0784aa7	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf4eb0486	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf4ec9d24	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfff91732	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x3cb57d58	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x870b6c74	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xad1fa443	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb6702c8b	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xd1e48fc0	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xd65c2cad	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x17bf50e6	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1d6df80e	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x43b585da	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4a58de21	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x58b4d859	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6c46ca71	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6f6b762b	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7fcca85c	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8000d881	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x987139a6	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9da2b348	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9f471543	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa923e856	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa992d16a	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xacc28c6d	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb48d6299	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb565b9d5	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc3096942	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd38da0ec	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd6e26907	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xeb28d3ae	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x2582a0bc	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x3d28322b	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x44b7c2a4	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x7f2df5da	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x40415dd8	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x704a96a7	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x9e696f7f	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xb568f8da	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x116ee7e8	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x409d9cfd	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x4ecfe6e2	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x7a3575f0	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xfb4ce07b	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x6e475ca6	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xd77aef52	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x233c9524	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2715f466	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2b0edf67	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x600d5c07	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8bdb577e	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xc305ec9f	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xcf9773ed	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xe66980b0	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xf73145cd	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x3172b14b	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x18000fea	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1f78601c	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3b5c7a9d	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3ba18b02	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x775fd228	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x82cad70c	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x854d07bb	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8bec61f3	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x91fc4a2f	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x99c24a53	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbca471f6	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd1b7468c	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdd170859	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe9be4cfc	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf9340654	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xfd7f9ddb	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x350c1bb8	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xe3e6d983	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xcf7429f5	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x30d52363	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x250da742	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xbd428f53	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xd0bbca60	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xe1b03430	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xec665d63	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x8517d8ea	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x0f01320d	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x62daccdc	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xb60f5f13	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x2a796534	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xea71577b	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x263e5eae	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x9a705f12	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xd97bcd62	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xe9f7ea97	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xef9e65e1	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x00235073	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x59f9c200	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x5e4392dd	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6be1c442	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x901a70b7	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe2f159bb	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe7b710e6	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xf1ac674d	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8bbaf4d6	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xa11a7972	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xda3b41b3	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x45ff9b29	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x8edea7aa	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xf38a9e73	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x5e236203	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xc8b73714	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x5aea459b	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x18522bb5	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xb67aa16f	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0xa60a1b9d	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x0d53767c	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x25c826d3	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x65da1978	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xc9e22c55	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xd12b003b	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x02707983	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x86dcfaf2	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xc8bb2d87	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xf9a9f059	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x1980fe3d	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x2e8f85f4	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x01e3abb7	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1e556495	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x372666f6	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4c5d4b4a	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x509dd2ac	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x5112b93e	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x713e8344	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x888ddec6	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x99ae027d	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9bbcfaa6	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9e6c40c1	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb0e9868e	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb8ed9fd9	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd06641fb	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe996e411	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xeed47d7b	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf9d6fdf1	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xe97a6578	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x03ba0716	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0be52e8a	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3d0ae837	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x50dc2577	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x780985e5	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x81fc100a	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x95c3560c	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x9df9ec46	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x9e25cd6a	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb6243c43	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd18a48ae	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd78d303f	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe5d75e9a	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf0c77711	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf9ba2227	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xfa9a24a5	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x331a39d2	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x3fb20c7e	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xb75f0830	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xbe89264e	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xfe096340	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x008d87f7	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x28121296	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2ed9184f	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x32a23510	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x4572d106	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x49782f79	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x53bf9754	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x69307840	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x83c78885	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x91b404e9	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa961b371	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xacbc97e7	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb80b08bb	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbe9b23c5	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbebdc0d0	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcbcbe18c	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd6c85ebb	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xda3d9770	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x7d37a78c	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xb095b6bf	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xb1fed0b6	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xdbfcc4ca	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x20f1a081	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x268a4802	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x4dd1f688	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x5167dd74	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbe03a217	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xc8a5c415	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xf6c2de29	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00abb77d	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0b7384e9	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0ecd3319	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x17d39fdd	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1cae0ae9	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1ee4070a	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1f7f8b6e	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x20319e61	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2424aaaa	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x244dedf6	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2c23b28b	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2e34aea7	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3014b8ef	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x32cba734	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3735f2ac	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3a0f02f7	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ad0b6f3	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3bc860bc	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3e4df53d	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3f257f77	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x40051e51	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4147700f	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x41d3f0b8	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x426c1159	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x446cb356	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x46990a0a	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x473e385d	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4b1afb18	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4c30dbf5	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea1c6ca	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea258d2	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4edd2a45	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x50f48d3c	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x516b17ef	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5226d9bf	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53c347b2	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5a943488	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5b370b7c	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5ca02814	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5cca5953	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5dde4052	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x672f7a82	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6c40ff2d	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6c78b9a6	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6f0bfbd2	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7043e672	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x744ffb54	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8102110a	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x862978a4	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x868e96fb	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8b207a73	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8b5e9065	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c6e11f4	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ca7f496	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8fcdea47	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9165f6cc	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9429cdbf	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9af88de6	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9c6fe7e3	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa739316c	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa9a3c025	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xab1c0ff6	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb0f0296b	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb37b199f	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb3d5f833	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc852f00	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc2a1893b	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc8eed982	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcd983f54	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcfec24ce	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd4f4a6c0	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd7e86391	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd884a4b9	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdddd1e2c	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xde0f92e2	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdea28734	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe1d2d67d	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe25beb98	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe8eff30d	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb4695e8	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf9312036	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf93bdf57	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfa0df1ce	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfa78e01b	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x07c2b6cf	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xc421ac4e	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x932f3ebc	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0f8fc02d	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x15041494	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x2987cb84	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x2b2f4f9e	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x46de4dba	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x58ea8d77	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x59b3b180	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x66eda4e6	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x762cfdad	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe3686d7a	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x85dfd741	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x043e73b8	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x1e3830db	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x6a6b7152	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x958905db	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x01a1d933	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x0e83b480	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x143f5eb0	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6cbaddb6	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x9de9c161	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xaf2fbda1	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xdd431872	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xaaacf14f	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xc3470080	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x7e40fb15	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xcb8a49c6	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xf171c5ee	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x03b01572	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1aa9d2a5	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x23362a28	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x385dbbe6	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5c2bee19	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6cc28f28	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7d94a8fa	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa0ab6a37	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb3156bab	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xbc17355c	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcfc61cf4	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xd16b0b4a	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x7b4c4f08	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x8beb14b0	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xca839b4a	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xdf13226f	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xfaf62086	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xfd658d4d	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0078eddf	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x4173baa5	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x43b40c6d	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x538d73d8	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5c17be76	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x678ed864	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7e9cecb4	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7f62b1ac	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x90a7adec	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa162ef66	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xaacd4673	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xafc2a656	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbd9ed845	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd7937770	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe4e029aa	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xfdd505d3	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x14e37d44	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1d5d7a5a	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x23a3484e	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x44535800	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x66834cde	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x7f0acdc0	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x931da64f	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa406ad38	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc3ad830b	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xd6103ee0	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xfd147549	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x030c89bc	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x05966ce2	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0963cfb8	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1ac6b5d5	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1b0ab558	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x24cb4d04	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x26ee666f	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2f14c8fa	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2f8b487c	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3a575a7f	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x435ce3c2	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51126273	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5d80101d	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x60cbb54e	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6eeea9b2	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x83b436dd	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x865e1db3	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8d5f486e	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9a5ed145	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9aeb792a	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9dcb7971	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9f33fa19	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa686f889	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc1f96f5f	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc6cf3c44	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc6ecf1c7	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc81ca516	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc8429c7a	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd2215633	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd316d045	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd3f7081c	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd4ee0678	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdaee3780	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2840590	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe7fa1ef9	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf4e2fa9b	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf4eb9cfb	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf520177b	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf8135e52	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfce78809	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x6d491413	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xa95f6820	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xaf6ee6d0	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xc06949ec	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe7805806	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf62531a1	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xa473751c	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xaf4668a1	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xec13fd05	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x9a3dd28e	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xb24e0171	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x0163d5a7	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x13b7fea5	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x3c9977c9	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xd2685f4b	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x2f816d57	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x4e638648	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xf4ba9741	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x00f8d8a3	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x18ad8e2f	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x246ab1cc	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x77afc985	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7cfbdf61	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8091a022	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x84bc18ac	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x88dc3feb	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xab896b26	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb6f78bd7	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc1819839	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc429fb63	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xcd3df419	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd2b30083	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd53235f4	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf5a2dad2	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x568a368f	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x88a90fab	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x4cc24dcb	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x9d469941	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xbf75432c	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x221d141a	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x9f77a421	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xcd683c6f	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x450c2abc	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x73f97b7f	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x5d773b10	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x7809f29c	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc83b6068	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe5b897f4	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe84a11dc	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xf043b2dc	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x28105ed1	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x6446d9eb	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x8f0e850e	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xfa3f4023	psample_group_get
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x16488dc1	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2455848e	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2724574b	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2efa0fb0	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x37b60849	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3b214ea4	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x49e32370	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5b4eb1d1	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5cb8ad28	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e2628b9	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e6a6aff	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x86ec71dc	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x877affdc	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x883d0181	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8a47e87c	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9d8bba17	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xae375189	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb1b61943	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbdbe9e46	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc4e8a117	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd0fc24d2	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd2bddc9a	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd3326ba3	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xda69502d	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe399669b	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe7a700b2	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe943a74d	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xed05996c	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf4c257e8	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf7f7674b	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfed3ab68	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x62c024f0	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x9ee50e24	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x433ee456	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x64923e28	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x97df540c	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xcc7cc76e	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x02626af7	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4a137c1f	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8d64839b	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x92a454dd	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x97dd8d29	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc3b23912	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd24546fb	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd6127ff1	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xdb3d5ce3	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xed0a32e9	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x163df0b7	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x33ed1ff5	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x86eb869a	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xbeec2855	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0074e1e8	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x00d9a684	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x01795c8f	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0337ba94	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x033ce135	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x03a81e92	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05501f85	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0599375d	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06396eeb	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06bf2a1b	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b6e8139	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b84fea0	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c28008b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c821aeb	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ecbf30c	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ed0fdec	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f4b04e5	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x103a5261	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10b6fea0	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x114000c3	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1286e39d	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x15c3bde4	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16bd4238	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1807e7d1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a00803f	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1af01b6b	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b1408cf	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c0cc9a0	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d6dbf6a	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ec4834d	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ee95de0	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f215c80	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f8b1987	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x219911f3	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22fec07d	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x239dede8	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x241117b2	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25aaa359	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26d40b2a	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x286ceaf6	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x28fddf17	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29043196	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ad87f3f	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2b2c0a03	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c5e8a54	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c679578	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c96a9b8	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cb1558f	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d038441	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d79c810	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8ebbe0	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30c8e096	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x312fb47f	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31343693	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3282ab42	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x337c759b	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x33e30fae	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3436d15e	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34875a1b	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x357b80fd	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36bc8f4d	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x378d5d42	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x37c4a180	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38376a56	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38cb0d92	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x392e2d66	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b3660c9	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b95d5eb	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f4646d4	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3fa9b4dd	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4063d46d	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4168b0bf	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42e21ddf	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4300a5b0	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43a40209	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43c5fe77	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4463c70d	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x450360e6	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4513a5e1	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4777c5f6	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a37d578	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a6f553c	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a8d9184	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b5489f6	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dcae75b	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x505b2d0f	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x506aad52	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51478ca9	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57543222	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x593ed1d0	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c026b6c	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d78a4d7	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e242f4a	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e840fe6	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ec91056	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6050486d	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60b55d25	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6201023d	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6352ad02	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x642f8d6f	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66b67c8d	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6726f704	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69092e37	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69abdb80	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69f5b110	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a797a42	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b562a1f	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6daf2b29	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e5e0805	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70f690ce	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7127df3b	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7412b6cd	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x741e1543	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x749325e9	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74b2ea2d	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74c4b946	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x759641f3	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75de9a78	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75e4712b	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x777ac82e	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77b03d34	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a4d02b5	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c4ab585	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e167122	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e9e5e5d	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f9684c0	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7fbfa5b1	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80e64d18	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81a99def	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82efc389	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86e21c20	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a7d101f	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b6d0502	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bac1666	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d9f152a	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8dec2550	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e407c9a	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f99c0f9	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x903700b2	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91df2168	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9224516d	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9434fdd6	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x94b9b407	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95fba52d	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x965bed46	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99e1b252	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9aaa1276	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9acb4b9e	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9daf5a08	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9df76379	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e243b4e	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f546817	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa16333b0	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa625cbf8	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa78b0428	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa7aa9162	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa819a081	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8a66c7e	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8cd6623	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8fee538	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaab27df5	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad19e43c	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad5e6c69	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf345163	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb208cefc	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb3af2860	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8f49d82	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8fa0030	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8fec296	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba8b4472	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbaf1d468	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb7b4a8a	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc08edc0	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe134490	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe4954f2	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbef2a1d9	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc120b9a3	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc169d947	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc16fee70	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2514b9d	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc28feb21	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc31679ed	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc394714b	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc39c480d	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc61c300b	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7e45079	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcb3d9e71	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbe6d0bf	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccf62a01	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf45fde7	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcff13fbc	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0ea179d	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd20986ea	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4310bf0	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd596caee	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd697862d	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd77239f9	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda265bf7	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda66019e	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdaa779d5	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb03976e	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb05eca3	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb2b2e03	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc117d6e	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcda84e2	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde162c6a	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe24f25c6	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2c1fd11	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3f2a60c	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4f19560	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6f2e67e	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe71c6218	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe7daef74	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe7f25677	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe85806c8	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe95c348f	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9cf5d0f	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb1a89c0	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec1e0341	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed807189	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0fcd78b	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1158166	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf17afd29	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf3239ffc	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf409b01c	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb569a4d	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfbc2aba7	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdd9b9a3	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfe704e92	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x116c0504	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x4194b205	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x020b963e	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0838d3b0	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1d57c760	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2bb3c5ae	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x37d5d97a	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3bb18fe4	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x414ed65c	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x42f468e0	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x43dadb07	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x516c64ba	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5c68e402	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x64ddf37f	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7be5018d	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x84fc3dc6	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8692fa06	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8e8fec59	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8f0cf2d1	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x99c46dce	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa54ebf73	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa6b4deed	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xac28a8e1	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb33cd746	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb3dcc62b	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb9aca77e	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbf00959a	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc0478543	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc6c75f30	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd56a6849	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd785033a	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xda0058e2	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe5b8ca2e	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe6ed201a	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8451ba8	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xeac68870	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf21882dc	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xff643ae0	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x003af130	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x07a8c0b9	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0e295291	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x35d77c37	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x37d93d99	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3d409c30	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x44420515	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x49bc5f15	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x63867c83	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x74e91915	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x75555ea3	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7c2df593	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7ff30d09	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x882926e8	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x98d4a803	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbfd5c039	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcaa8bff1	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe043897e	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe574aa7c	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfff9d250	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x0ccbc1f0	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x15aa4c64	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x1afbbf8b	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5ed0ab81	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x602594ba	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa8c70fff	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb6762454	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xc1363f3b	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xc59e4812	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd247644c	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe41436fa	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe9f31f3c	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xff3d3d62	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0551c095	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x263e7858	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x35ff9d90	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x3d63b496	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xfe21cc04	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x3909897d	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x54db367f	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x98c7d594	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xc36865f1	ipcomp_input
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0xb663681a	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0b099eb3	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0e7f0a39	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x1d1117a8	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x2d38b369	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x46df9146	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4eb9dd5c	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbdebd8be	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc33f061d	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xe7f272cb	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xee9065f6	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf00c0ed1	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf5fec00e	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x15afd219	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x34c73bf1	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x35414e6e	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x35d6e30b	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x6cfca164	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x92f4c885	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x9c22f3ac	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa72f9727	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xb0de0af7	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xb2059f2b	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x031003c2	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1a4e5364	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x4411c910	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x7be0698e	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8209c35c	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x91f011f4	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa4b065c6	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa9337207	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xc67d64f7	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd65d1303	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf35ab246	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x40f7178d	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x8337687d	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x8fe4f72d	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x9ac0bd0a	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x064c7b0b	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x0c0202f9	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x3ff78df3	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x61190ede	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x73a1316d	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xa6a7bce7	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xc8b851cf	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xcfe2ccc1	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd227fa47	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xf8f0bfb9	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xb7f49366	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xcd3211d8	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x29735250	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x5a1a1876	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xafc188bd	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xcda255ac	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe06fd907	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x00cfc88a	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x1c0a532a	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x52f0d7da	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x02ba9772	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xa47be264	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xf98ae74e	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x00324736	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xca6c0ee0	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x3ef00ef0	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x027089a5	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x07465efe	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x30f1a0e3	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xd034d926	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x6c33bcd9	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x69bb6ef4	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x8be53d6a	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xeaac7d64	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xed1cd14c	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xfa5fb6df	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x348c0e77	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xa80c2bc5	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x351c5e5f	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x4858ad68	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x887e7328	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xb4c21f9d	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x2eb0e8c4	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x452cabf7	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x9a07094e	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xf63f0b03	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x3e65ebbf	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xbcbb07ce	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x0561ef4e	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x100ddc88	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x20dd4be2	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xd9cae34b	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xeab636a1	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x973d7302	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x9019651a	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x68ff96a3	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xa2bbeaa4	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xb1d66b23	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x42de2240	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x28d919fc	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x8da82035	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xcc296838	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xd8e58484	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0xc8e3a08b	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x44c6a1ca	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/imx-pcm-dma 0x36727087	imx_pcm_dma_init
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x44ab12b7	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0xbdafd215	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x18754d03	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2982555f	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3468b934	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x42fd8577	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x538c5713	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x604e42fe	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x60ed5d93	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x81f0dcf9	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x837d64ff	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x881807b5	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x8f427407	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x952ad4f2	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9b5ca852	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xa13f1c9b	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc8c3153d	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc9aea0da	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xca507aec	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd2251dca	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0027e944	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0151ae4f	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0283e4df	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x047c8061	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0623acb9	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x068e1a5a	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x089c09ea	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0ad310ba	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1158154d	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11d2dc5d	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x125a2b4f	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x13671593	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x18c39184	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1958ed19	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1a9aa40b	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1b34e952	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1b6ac8e3	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x200233ce	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20de42a3	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20e41860	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x24338c23	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x25e18214	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x262ab2bc	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2660530b	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x26ba76e5	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x278f6df9	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x28259d96	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x28be8ab7	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x29349ef7	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2be49567	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x30cdabd7	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x31725259	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32aa489b	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x368a5731	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x369b2b33	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3b5367ab	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3bb343a8	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3e28f97e	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3fe24f0b	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40ef2d2e	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x42b6abc5	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43da3122	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46347aa9	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x49ebee6e	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4e23c26a	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4e3e1b4d	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ec07275	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f02186c	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5085a8bb	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53b65a99	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53c6d385	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x55218c3d	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x57f7af1d	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x599e033d	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5aea09ac	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5b27fe79	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5b9bbdf2	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5c7f4ca4	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5d1fe4ef	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e195fcb	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5fe1ad8d	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x61f17bbc	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6283d9fa	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x66ca9876	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x67c606c1	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x67fe814d	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x689bdf5b	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68d794ad	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x690149ad	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6ad6dafc	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6afe8e19	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6c67eabd	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e3b5133	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e6bdedf	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6edc2b20	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x71180dc7	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x71da2735	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x744ec3f3	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x747f9830	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x770c2595	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7712cbd4	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7baa026c	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7dabae35	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7dd2fa9f	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e83205a	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7f64f6b4	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7f8405f1	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8273e91b	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84e3aeda	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x855d3e8e	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85aacd44	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x85b65d4c	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x86c61636	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8718ecf0	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8819b137	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8c3f29ce	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8cec595c	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x918329d5	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x96bb3fcd	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x971669a5	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x977a2c46	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x985f58bc	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x986225ee	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99889a2e	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9acf850b	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9d30d18e	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9dabe6c5	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9f1a9820	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9f9e851a	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2b9807a	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa44e67b3	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa6439a55	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa6448e90	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa69181cc	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa9d5fd9c	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaaa402fb	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xac6d75a3	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad4868b4	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaf87c82f	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaff6dc90	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb0866b85	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb08d3ba9	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb163e7e7	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb20408f8	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb5e8f5a6	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbaf9ab26	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbc85c909	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbc933211	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbe669e6c	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc0c32241	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc2fa4342	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc343a423	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc4c2a4a3	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc53a96c1	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc5e3ecae	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb1be232	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcd51affe	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcf326d16	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd0bb36fd	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd2878bf7	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd51d9720	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd560b51e	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd5e84210	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd6014c34	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd7f641f8	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8366195	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8638c36	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9ac9e13	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdaad97ea	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe1ff3c4e	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe28d5032	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2acc726	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe30e3cb0	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe3a86ff2	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe3ce69cf	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe7065df1	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe72d78ee	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe8e5ff66	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeac38d7f	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xebbd7c7a	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee593a68	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee671ca8	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf082aac1	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf10dbae9	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf5349595	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf9735069	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfc645407	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x5b64e755	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xa985a7ca	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xc28c7dc6	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xf6b1e0fa	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x1030d32d	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x1c5c7055	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x39a46203	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x3faf1a8d	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x507ebe86	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7a46f829	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7ed830ca	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x92359124	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa08b9e2f	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb234fbed	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb38b2afe	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb7c0e530	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb94063f9	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc19d5a5d	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd7c7dd1b	line6_version_request_async
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x0004d675	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x00120757	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x0020454c	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x00297929	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x003a2161	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0055d1da	hidraw_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x0059dabc	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00722ed3	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0086bd43	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x00873c9c	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x008e73d5	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x009adeed	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a2f5bc	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c7993e	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x00cb185a	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d06e00	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d5ed28	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x00eea9a5	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x010985ec	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0114022d	irq_sim_irqnum
+EXPORT_SYMBOL_GPL	 vmlinux 0x011aa4a2	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0132a57d	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x013ea650	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x0140fbee	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fe8c2	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0166faa3	hid_output_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x0170cb6c	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x01782373	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0181dece	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183606e	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x019b0eee	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a27b4f	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a6cc93	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b3050c	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b8549e	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x01bdad00	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x01bdfb7b	fetchunit_is_fetchdecode
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d747f5	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01eb48b6	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f110e4	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0203fc02	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x022aea0d	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x022e4b55	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x023c83c5	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x023ceb62	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x024ee832	hscaler_setup1
+EXPORT_SYMBOL_GPL	 vmlinux 0x02571870	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x02594209	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x0259fea8	fetchunit_set_src_bpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x02634694	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0274f87f	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x02753068	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x028f8b98	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0297cdb7	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x029dd43e	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x02aac110	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b2b1cd	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c6a56b	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c8699b	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x02cd3783	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x02df4b06	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ea61a6	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f35e91	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f3b2c0	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x030d69ea	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x030e3a69	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03192f5f	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x032b6f84	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x032cd95b	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x033ebea7	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0362ce77	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x036d8e9b	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x038ffb59	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0393f35f	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a0c13f	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b21d93	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b91eb6	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x03bc45cc	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c1e960	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c7adff	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c7b2c6	signature_wait_for_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d01764	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d5bc3e	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d7f4fd	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e3fef2	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fb1ab8	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x04000e18	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x04032f53	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x041bd67b	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x042fa7b0	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0434386d	dpu_fl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x043cd8a3	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x044de1ed	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x04533a81	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x045c0558	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x047484f3	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0478e8c5	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x04800be3	imx_check_clk_hws
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b0c96	sdhci_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x0493c72b	prg_set_primary
+EXPORT_SYMBOL_GPL	 vmlinux 0x0498b4a7	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x049cc491	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x04a6fd29	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ae4635	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b473c6	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c34258	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d58be3	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d7e498	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04dcce4e	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e4c766	dprc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ee90fc	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x04eeb6d2	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f34ce3	__hid_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f4c3a5	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x050a4614	tee_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x052add14	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0538ff08	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x053e1c53	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x054806c7	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 vmlinux 0x054c7f30	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x05512458	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x05732053	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a1309f	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b009d4	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b7dbb4	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f25607	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f5a3bc	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x05fc6d9c	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x060982b6	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x06122337	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x062975a8	fetchlayer_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x06388372	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x06484f01	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x064ac9fa	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06589562	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x06748c68	dpu_bliteng_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x06754293	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x067a9691	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0696c7fc	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c7ce07	__get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cf9716	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e6046e	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e68e6e	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e92aea	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ebe794	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ff0a13	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07290de6	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x073011f2	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07330617	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0735e5e1	dpu_vproc_get_vscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x073d2814	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x075537ed	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x0771e659	signature_shdldsel_global
+EXPORT_SYMBOL_GPL	 vmlinux 0x07780f5e	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x07809cc4	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a26c05	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e1e956	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e75624	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x08069756	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x080c4253	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x081822d1	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082959d2	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x083523ed	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x083b2a11	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0846f46a	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 vmlinux 0x086d0764	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08829a72	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x08a25c52	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x08addedc	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bf7b55	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d0f3ac	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0902f0ba	tcon_cfg_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x090bcaa0	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x090c7994	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x090ebbbe	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x092214b9	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0932572e	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x09340e05	dw_hdmi_set_channel_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0939972f	extdst_pixengcfg_sync_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0947de4e	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x09491ed9	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f6fc5	dw_hdmi_phy_i2c_set_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x094f7b6a	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x09502478	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0973b430	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0975293b	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x099f9168	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b4f291	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09bd135b	extdst_gamma_apply_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c8fcd6	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e04193	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e0725d	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ec1fff	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a220280	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22631c	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3b3803	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a41bac7	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a468860	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6074dd	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a61b348	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a64a254	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a880a76	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a91f8e2	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa9b33d	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab5ca80	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abb73b4	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ace59d3	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0acf66a2	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad1c1d6	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ae5dec3	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aecf020	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afd29fd	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b19bd1d	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2970fe	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3d3841	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b473616	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4ea7b3	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b543b75	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b58c6cc	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5990c7	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5f14bd	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b875373	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb2d9a5	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb36cf2	fetchunit_set_pixel_blend_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb574d0	hscaler_pixengcfg_dynamic_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc2f10b	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc82105	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bcc5f3d	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be1564c	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf09ef8	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0643f1	dpu_cf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c09a1f5	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0a535e	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0fa1f5	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1165ff	prg_stride_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2bbf4c	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c38a281	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c478efe	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c4b2038	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c4e23a2	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c4f4bad	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c618038	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c6d8d5b	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c725ed9	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c7fc8fd	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c80c400	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c88edaf	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca596bc	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb8e914	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cba96f3	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbb619d	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce38318	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce420a3	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ceb087d	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf6461d	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d0fbf9c	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d138f20	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1a6c5f	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1f03ea	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2458cc	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d27fd62	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3b2c9a	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d52b0d9	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d57f685	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a5939	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5cae93	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6824c9	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d792c7f	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d887160	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8ec6f4	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da3c191	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da615a5	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x0daa079f	mtd_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db16d7f	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd4ec32	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de4bf5e	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de7c8ff	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0c0350	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1e99fa	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e347782	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9bd5fe	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9ea130	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ece0a18	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecff883	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed4863d	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x0edc69f0	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eee0eef	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eefb223	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f02cab0	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f353cea	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3c9351	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f50951f	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f54339f	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f5ee6df	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f95ba2c	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f964f0b	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa88ee3	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fabaeb8	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faf3342	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fb683c1	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fba7990	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fbf1d1d	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc07c74	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd6d349	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fda61be	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe162ea	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe32ad3	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x100359e4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x103653b4	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x10398c57	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x103fb6ae	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x10409b6c	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1043cac3	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x10505383	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1057ad86	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x106c2710	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x107449c5	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x109b51c1	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x109bcf74	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x10afb3e3	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c68116	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ddc30a	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e1ebcb	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f789dc	extdst_pixengcfg_trigger_sequence_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1104c4d5	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x110a977c	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x11276927	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x113f2878	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x1161d28b	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1168a043	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172b030	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x1193e0a1	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11bf3c8f	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c4723f	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c67c96	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d5040f	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d81ef9	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ef7cdc	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f74bc1	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1212c825	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x121407b9	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1214adb5	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x121dad57	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x122d5162	fetcheco_frameresampling
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x123b0a05	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x124cac85	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x124cb1d6	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x126c9935	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x12720260	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a5d4d5	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ac2c4e	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ac9556	hid_hw_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x12bb0fa0	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ec8ce1	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x12fe3a70	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1305588d	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x130e181c	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x13177679	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1323ebfd	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1327faa3	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x13544135	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x1358a623	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x135b7fa9	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1364e45c	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13987759	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1399b4dd	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x13acebf6	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ad52fe	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ada376	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b5ab27	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b8afb5	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x13bac445	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x13dc9b0e	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eb1205	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ef7920	hscaler_setup2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1408362a	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1417d9f1	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1427e05e	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x14362f71	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x14481d42	constframe_controltrigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x144f0b76	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x14564d2d	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1456d358	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x14657610	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x14781c38	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x14880b6c	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x148ecbb3	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a11bfd	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a4adcf	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a5af3a	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x14b1ae34	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c2872d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x1506ec95	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x1537f7b6	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x154e50ed	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x155358b2	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x15570aa7	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1558db54	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x157505bf	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x157b7471	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x158e6fee	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a24dfd	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b06044	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b32240	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b496ae	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x15be9d6d	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d41366	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x15dfc335	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x16061e4f	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1618e0f1	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x16353195	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x164627f2	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x165b4ad4	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x16717c9b	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1674941f	fetchunit_burst_size_fixup_tkt343664
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d283b	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16819de5	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x1696aa13	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x169f9be9	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a77eb1	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x16af7684	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b0edab	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b49c92	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b8b4fe	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d661ae	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x170227ff	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cd51c	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x174a5b10	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1756c9e1	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x1758e5bc	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x1759a58e	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x176c668e	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a0633	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a1900e	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a6a5be	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a801e2	extdst_last_pixel_cnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x17aa1740	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bcef46	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ca2952	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x17cac99a	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d45b64	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ff88b8	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x18004458	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x1810bd46	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x182e681b	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x182f9529	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x1830d342	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x183fdc26	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x18410d93	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x18443093	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x184b59f4	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1851255b	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x18583a72	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a925a8	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bb0990	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x18cca88e	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d6ffb8	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d75510	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ddfa86	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f1e8fe	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f5fbe9	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x19026a4a	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x190a0bed	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x19195675	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x1937a06b	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x194132fa	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x195eac39	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1960e18d	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x19703763	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x19721d69	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x19789f9c	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x19791f12	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19aa9a80	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x19bab7f9	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c4f086	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c6868c	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e2e11a	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f0fb42	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a138fd5	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a27786b	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a2f5dfb	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a47e70f	usbnet_status_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a65d4e3	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6f3a4f	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a83fb9f	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a891ba6	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aaa6953	rc_map_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac3f860	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ade3cee	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1579c6	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b18d51b	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1a1a6d	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1dc52f	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b335484	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3795b5	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3b239f	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b428f5e	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b437979	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b46760e	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4c378f	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4f6a4e	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b57bc50	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6b53c7	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6d55b2	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b72787e	fb_sys_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92777b	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b97ce4f	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba846c9	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc20b88	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdde6bd	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be7bd2c	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf122fd	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bfe86e6	dpu_vproc_get_fetcheco_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c17e5c3	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c27f7c1	hid_hw_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c36bcf7	vscaler_output_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c72a78f	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c78af25	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c842aa5	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8c08d9	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8c35e5	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9645ee	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9f566b	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb067d1	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce75ebd	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cea0f2f	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cea1953	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cecb114	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfddd23	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d238adf	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d23d2b2	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2ac9ed	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4be2c3	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d50f9a5	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d61e7e1	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d6c473e	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d79fa52	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7d393d	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7f94d5	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d91630b	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d94bf2b	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da80dfe	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dae35a3	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dcd24ce	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df700f7	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df89991	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e074352	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e086b83	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1c752d	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2c6162	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2f7757	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e359226	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e395b09	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e39b330	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7ce95d	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7ebaae	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8998a5	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9080df	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9117ac	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e94452e	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9c590a	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebb2719	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f27611f	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2ea6df	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f56d497	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5c587c	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5d8648	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f6b5c9d	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa19d51	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc62150	tcon_disable_pc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fda48f2	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe268c1	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff457bc	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff8fed9	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ffd7159	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x201bfa7e	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2025d3fc	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x20379376	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x203ec5ff	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2045294f	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x20461ab7	pc_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x2046af8e	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x204be82e	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x2053a3a4	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2068c300	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093fcbc	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b54daf	dpu_fg_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b7b8a0	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d88ae4	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d8f037	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fc7683	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2105b6dc	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x211bf86f	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x211eb983	hid_debug_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x21303744	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x213cf0d9	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x21562a1d	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x2164358b	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21718238	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x21726652	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2173524c	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2174c4ca	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x217b81bc	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x219b5aab	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a76955	dprc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b1f020	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c31290	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c91966	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e33213	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x21f839d6	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x220b93c4	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x220d4e08	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x2219656b	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x22335654	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x2248a354	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x22541547	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x225418a8	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x22673e83	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x226b45b0	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x227183c5	usbnet_get_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2276fe52	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2279c326	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x228902fb	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x229474a5	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a4c19a	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a99295	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a99da5	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x22bc016b	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c9a8f9	framegen_enable_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ca563f	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d04549	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ebc0a4	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ec0f32	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f1c33b	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f6af24	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 vmlinux 0x230133d3	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2307136a	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x23277ef4	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x23333fa0	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2352ad24	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23760de4	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x23854f83	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2388ef2e	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x23933cba	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x23950433	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2395a86c	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23afbfdc	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b0577a	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b72a14	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bd5689	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bd5ec1	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bf0c29	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d53bf1	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e07188	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e69950	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2419d9c9	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x24354792	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24605406	dpu_vproc_has_hscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2469810f	__rcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ca3f6d	dpu_vproc_has_fetcheco_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x24cc5cd7	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d6c146	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x24db4a7a	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e55ae6	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e5640c	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ef6ef2	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f1ba46	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x25152d6d	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2518bf9d	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x254d2a75	dpu_aux_tcon_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x254ef068	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x25628782	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x258f88fe	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x259319ed	fetchunit_enable_src_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a28b64	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x25d2bc92	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x25dfd7ed	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x2617baa8	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x261d8b02	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x26280e8e	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2629af2b	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x262c8e0b	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x26305083	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2638586b	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x263af9ef	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2641eb08	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x266d64a4	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2680c394	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x26941c74	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2694efa9	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x269e5d32	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a18448	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b19112	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b755c1	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x26bda48d	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d2045c	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d629cd	dw_hdmi_phy_gen2_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e2bf92	hscaler_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f350d0	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f5db8e	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2711b530	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2716e582	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x27489afe	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274daf25	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2750a45a	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x275556de	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2777c050	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x27784671	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x27819ca1	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x2787c503	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x279a6b7b	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x279f45b3	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x279f8004	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ad1671	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b05872	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b6b984	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x27bafdcc	rc_keydown
+EXPORT_SYMBOL_GPL	 vmlinux 0x27cd525b	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e6b4f3	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f18230	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fdb198	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x281351cd	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x281bddf5	usbnet_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x282768d5	store_pixengcfg_syncmode_fixup
+EXPORT_SYMBOL_GPL	 vmlinux 0x282b7d57	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x282dc148	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x28355d7e	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x28662dec	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x287d3ff1	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x28820562	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2886931e	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x288c15d7	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x28942487	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x289edb43	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a9bbbd	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b1c696	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c60e4e	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c95d62	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cddb12	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cf4e45	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d6d0df	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ef3fb4	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f3b323	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x29189d37	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x291b354a	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x291eb187	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x292b6f63	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 vmlinux 0x29373786	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2961ce84	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2964616b	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x29782b77	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x297aebc8	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x297c5087	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x297f1458	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x29800fc0	prg_reg_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x29dedc99	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x29df9370	dpu_tcon_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e1603f	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eb5b7e	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29fb48c6	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x29feb424	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a067816	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a110062	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2750d4	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2ce529	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a486db7	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a519951	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a61c1c5	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8b40d5	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a93a411	nvmem_cell_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a941af4	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aaf3907	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abd759f	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac6753c	regmap_test_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad04192	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad97171	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x2addfd8a	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af25a74	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2287d0	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2b4c2c	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b43266a	layerblend_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b470a25	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b481a37	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4a39c7	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7540a3	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7b6f05	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9487d5	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9829ce	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b99fe67	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba1a7e2	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcf1780	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd3fee6	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd40a5e	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd7e469	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bde2e8f	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bdfba4e	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be1618d	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bea94b7	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf065d2	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c17c6fe	layerblend_shdldsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c53e62a	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c5563c1	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c55abe8	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c67cf3c	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c74f80d	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7b8d8a	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c81a826	imx_1443x_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c90eb1d	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c927f83	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca4b360	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca7ba07	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca921c0	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cac3fb8	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb096c1	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb779e5	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbda86c	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc187fd	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc41bf5	dprc_format_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd01c2d	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea0968	rc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ceaa51b	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d076d2a	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0b3450	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0e69ce	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d19e697	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1c0e80	dw_hdmi_setup_rx_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dfc2d	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d39339d	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d4aa4c5	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7a52c8	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8d72b7	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9b7e83	sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dab04b8	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dacd5c4	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db0a9cc	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc0c589	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dce981b	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd22a72	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de8b3d1	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dec2afb	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df25f11	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e09f67c	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e153800	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e184d9c	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2c5d89	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e30509c	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e328f21	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3964a2	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4261f6	snmp_get_cpu_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e53d777	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e75d674	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea2ef63	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea7f7c4	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed5ec97	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edc7f11	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edd7801	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eee3657	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef33844	imx_clk_hw_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f40823d	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f47c62f	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f514cc9	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5753a0	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f59aeaa	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5c48d1	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f63e634	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f6464a6	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f65309d	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f73b920	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7401f1	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f77ce83	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7c0f77	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f84ab61	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f86f899	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f895416	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f89f67a	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f8ecea0	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f9d7871	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f9fb8d0	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fa3b7c2	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fac9436	dw_hdmi_set_channel_allocation
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fba02a3	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc2b3d9	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc7504b	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fce864a	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fe13411	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x300476f0	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x30054553	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x30096d57	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x30122429	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3014da7b	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x30186dbe	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x301dfa42	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x302321dd	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x304725b3	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069a011	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3072e03b	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x3073b272	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x308ec0f2	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a390d9	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a5131a	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x30af9108	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x30de1e15	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e994b2	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f370f7	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x310dffc9	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x311e2641	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x31251f77	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x31255a54	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x31298368	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x31396780	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x31450d48	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x31473809	fetchdecode_layeroffset
+EXPORT_SYMBOL_GPL	 vmlinux 0x31506049	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x315ef04c	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x316212a8	dw_hdmi_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x3163748c	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x31662d32	hid_register_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x31702c97	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x317238c1	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x317edd42	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3181c9df	__put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x318545e0	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3189c9c9	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a396a8	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bbc0be	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c9e3e0	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x31caab20	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d579fe	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e21380	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e47227	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ea79eb	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ee6e16	dprc_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f042ab	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f490a5	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x32005d04	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x320078f7	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224f8ca	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x324b8699	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x324e6371	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3250d6d9	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3255792d	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x325d83a9	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3262b071	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x326fe125	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x32793110	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x32795fda	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x328b66d7	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a411e9	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x32aaf818	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b98b2e	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc519f	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c2d8b9	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d73db4	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f59555	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3300c45b	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x331f36da	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x332a8190	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x33305e89	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x333c34fe	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x334427ca	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3357fc0d	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3361022a	devm_clk_get_optional_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x3368ad79	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x33759411	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x33774fec	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x339818c1	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a15cec	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b444d3	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b46aa6	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b977f5	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c7eb1d	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c9824f	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ca0376	extdst_perfcountmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cfb96f	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e9e0a2	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f61c16	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x34487405	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x3459cdde	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x345ab574	usbnet_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3461ba36	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x347e61f4	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3481ce24	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x34835ec1	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3485046e	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a00724	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d46880	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x34dc0eb2	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x350701d8	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x35078326	sdhci_free_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3509b3eb	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x350ccc61	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x350f63a8	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x351466b8	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x351d8920	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x35293185	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x35340c75	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x356f1e28	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x356f9ce1	framegen_cfg_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x356fed47	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x35839edf	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x358e7ae5	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x35aef3fb	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b0cd71	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x35bff3ea	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x35cf6266	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e05fb4	imx_pinctrl_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e30cb0	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e418ee	dw_hdmi_set_plugged_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x35ee10b8	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f511a9	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x361444d7	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x361a6d80	irq_sim_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x361bd049	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x36203734	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3620dec7	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x3645d8a4	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x364bc19f	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x365989e5	imx_1416x_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x36892c60	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3691bce7	hid_dump_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x3694045b	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a00b65	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a1566f	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x36aea7c5	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x36bb5849	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ca7762	dpu_vproc_has_vscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ea6057	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fd4d17	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ff5eef	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x3702ef51	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x370300d5	mtd_unpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x3705dbc4	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x371932a3	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x371bbdca	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3734838e	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3734adfc	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x373c2e96	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x373cc423	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3749c438	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x374ccbdd	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3771c557	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3782464b	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x378a644b	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914c00	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b31e88	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b4f1d1	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d92a98	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x37dbd9e3	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x37df9627	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e02df3	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e4f7c5	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e8174c	tee_client_open_session
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ef894c	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f44fd6	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f952c7	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3850245e	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x386f3802	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3877df97	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a9c2c7	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x38aa4657	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b4f6b9	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cd046f	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d64028	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x38db3328	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x38deca27	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38eb0a7b	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f74dfc	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fa2dee	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fe8e7a	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x390edadd	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x3915e0b4	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x39174654	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x391f9634	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x391fd54e	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x3923021a	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x39230f05	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x392b6120	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x392fc0f8	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x39472fc3	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x395a4c87	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x399fbd8c	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a47c24	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ad89b1	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x39befdfd	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c0a1f4	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x39cf07c3	hscaler_get_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d00ac5	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39eb606c	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f3d19d	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f752b0	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0e8c77	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1230a7	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a18b05a	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1ae5ff	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1d39e0	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a37777f	mtd_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a3b7d2d	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5be9b1	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5d4ae7	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a611db2	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7a1a54	signature_local_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8b3755	extdst_last_control_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8ee314	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa19bb7	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aac2693	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aae4124	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac3d5cd	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x3adc082d	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af70aaa	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afe00a5	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b03ea38	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0862f7	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b17ee56	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b231b0b	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b23b072	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b2d1f36	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b2dd103	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3ecdcf	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b45b469	hscaler_filter_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b538955	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b6bf704	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b6d8179	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b86faa3	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b889eab	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8ffedc	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b948d48	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba055e2	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba26281	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba27c0a	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb4ef4	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bed4680	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf02f1b	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bfddc78	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bff36f0	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c079de7	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c096e18	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1028a3	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c2277	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c34dc70	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c383998	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c43ac4f	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c46c54b	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4cd11e	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c5bbb7a	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c60757b	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c72724e	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c76fa95	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7ebf9a	dpu_fl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c889a05	fetcheco_layeroffset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c893d9f	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c91a59c	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9315ed	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c960652	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9cb077	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca37135	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cacbae0	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cae92bb	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc28098	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc33e8f	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc91592	constframe_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ccbbb6d	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cdb57bc	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cdec60c	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce8daa5	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ceb9df0	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf0127b	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d07465d	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0f9e07	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d18f2b3	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d19be09	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2445ad	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6ee467	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8867e0	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d887f7b	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d95bd7d	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da845eb	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dab7600	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db98ad0	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbfac20	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dccac28	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd184e4	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd40139	hid_set_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ddc8131	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de3a8f6	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de94d59	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ded770a	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df88bf3	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfcc8dc	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e12b4e9	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e13ffef	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1a9f69	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e37b6cc	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3aa658	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4a63a2	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4f45df	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5c97f0	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6d15bd	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e820c08	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e826e30	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e86e6e2	framegen_displaymode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e925573	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e927720	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9ca945	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb0df1b	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb7d94d	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec40239	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eca2f7a	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed14936	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3edf3736	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee3755f	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef696ca	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef92487	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f060887	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0dc578	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f199f8e	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f291a09	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f30925f	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f31bc49	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f372f31	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3b1fc3	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f49f542	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f51fdcf	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f6b11db	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f7672b5	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f825a22	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f83a2dd	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8f03a0	hid_hw_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f94a1bf	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f94b71b	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9f6c23	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9fa0a5	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbc368a	usbnet_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc51e51	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ff34793	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4010a515	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4015bef9	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x402363ba	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x403287e4	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x403384d1	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x403b3e07	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x403d1449	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x404ca803	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x404d56f0	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x405700bf	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x405c2913	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x405fea7d	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x40621cb5	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x406234ea	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x40754df3	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x407785a2	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x407c7df8	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x407d5ddd	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x408de6d7	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40a20095	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x40caa159	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f915dc	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x410a2e9c	fetchdecode_clipoffset
+EXPORT_SYMBOL_GPL	 vmlinux 0x410c89a4	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4116c22b	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x411b5bc4	dpu_aux_ed_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x4134db23	layerblend_pixengcfg_dynamic_sec_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x413f760a	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414e0908	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x41505b68	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4150f915	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4156298e	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4166ef44	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x416ce42a	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x419178b5	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x41945e6c	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x419d4e81	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x419dad49	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x419ec42a	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a04ccf	vscaler_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a17314	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a3e2ab	signature_is_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c30f3a	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cd7ce4	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f5919b	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205ad24	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x42067268	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x420fcec7	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x42110586	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x4214483b	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x423dcb48	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x42529e6a	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4268d263	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x42926f4a	dw_hdmi_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x42aadcce	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e0da30	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e8752e	rc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ec7ff1	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x42efb127	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fbe555	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x430521e4	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x43054280	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x43054b2e	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x43094da5	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x43142e1a	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x431e8d7e	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4332ee83	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4333b2f9	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x435ee21d	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x436387c5	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x436736b7	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x43755d55	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x437de1a9	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x439b932b	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x439db84f	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a4cc77	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ec7502	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f0e0b6	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4411aed2	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x44162e82	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4431a82f	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4433f3a6	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x443a0b50	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x443b4e52	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x444e3db4	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44531e80	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4466cdeb	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x447e063c	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x447ebec6	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x448491c8	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x448b889d	fetchunit_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a499d0	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b38dbe	irq_sim_fire
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ba1042	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44cfdb77	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d86b38	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d9c964	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e99536	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4516b40f	vscaler_pixengcfg_clken
+EXPORT_SYMBOL_GPL	 vmlinux 0x451a1306	fetchunit_set_baseaddress
+EXPORT_SYMBOL_GPL	 vmlinux 0x452dcfa6	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x452e13b2	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x45323e36	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x454e0e32	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x455f7af9	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4572b96e	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4576345d	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x45896480	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4596e089	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a62c3e	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ad44ea	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b51a95	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x45be734c	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d9c0aa	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x45da3cdd	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e46622	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fcf9fc	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ff8535	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4600ebda	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x46012f26	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x460e9659	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x46183c95	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x461cb931	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4627c359	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4629fda7	tee_shm_alloc_kernel_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x46526709	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x465b3e87	usbnet_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x465f9d18	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4665215f	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x466805cc	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x466d73b5	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4694360c	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a670ba	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b44a8e	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b735c4	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c06c19	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c6e97f	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x46cee352	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x46dba14d	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e7ee6e	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f1c93a	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46fbff1c	dpu_get_syncmode_min_prate
+EXPORT_SYMBOL_GPL	 vmlinux 0x47163b38	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x471ca8fb	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x47317949	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x473e12fa	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4764b736	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x47664a52	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x476cc1be	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x478065ea	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47925794	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a1565e	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a25702	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a90ccc	dprc_disable_repeat_en
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b260ac	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b29138	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c513a4	prg_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47cc7c3f	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dadcf9	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e71831	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x48020c1c	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x48152040	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x481b8f41	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x48212a6e	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x48218f54	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x483822a7	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x483c89c1	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x484779ef	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x484c681c	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4856b160	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x488b4a06	hscaler_output_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x489e0072	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a1cbe7	dpu_ed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c2bb00	rc_repeat
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c5ae6a	hid_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d7455f	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d883e6	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x48da63fb	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x48dfbf17	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4904c373	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x49254556	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4927b088	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x492ad95c	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x492c4b7e	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x492e3c40	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x49326ef6	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x49444c99	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x49494b6d	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4950d1f6	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4951e6ae	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x495ec946	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4994862d	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x49995b93	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a2951a	prg_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a62f54	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b15174	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b2dc1b	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x49ba727b	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bada6a	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cfb34f	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d33088	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dbe6be	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e481da	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e90d0f	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f48048	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a02b860	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0329c4	framegen_is_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a09e004	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a117eed	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a18e294	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a1b5166	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a331f86	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4e648d	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5971e3	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5c7376	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6b0ec7	vscaler_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a70628e	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a82a151	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8b83d6	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8fd3b0	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9b0eb1	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9b174f	dw_hdmi_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa0e7de	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa437ea	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa905a0	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac37f93	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac7025d	tee_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af46c07	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af99b7f	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b164bec	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2db8d6	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2f8ad8	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2ffafc	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b514d82	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5c537d	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b667530	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6b0936	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b86b870	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9615ed	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b962d52	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b96b29a	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bacebae	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb8d1b4	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bce8579	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be2f4a1	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf2838b	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c00de9d	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c04d7b3	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c14fc23	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c1b4e0b	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2d22f6	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3a1305	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c62b9d0	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c65f74a	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c66648f	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c824e26	fetchwarp_rgb_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c87fedc	imx_gpc_mf_request_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9cdd5c	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb1cf44	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ccf1a05	extdst_pixengcfg_sync_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdf6177	hid_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce7a56a	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf17d9a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf24332	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d08b6eb	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d33f601	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d35beaa	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3687d9	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d390f31	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3a1b2f	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d44730a	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d917521	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d9969c6	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da532b6	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dac9e8f	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db0c758	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc68a95	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd78d16	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df391d4	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df52b20	hscaler_set_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfa3e00	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e225e5c	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e229df6	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e328a13	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e358c01	dprc_stride_double_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e39ee43	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e443839	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e59db55	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5fe9a8	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e66f39a	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8edfeb	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9d428e	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eea0129	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eef5ce7	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f019d5f	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0b9045	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f105f11	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3d5da2	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3db437	prg_set_auxiliary
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4547e1	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4a3988	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f543ff9	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f66fbe5	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f77f73f	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f86ef2f	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa0fa4f	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb0420b	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb52a51	hid_parse_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb52bc8	framegen_wait_for_secondary_syncup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb71a3e	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fca1945	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fcc2124	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fda9ab0	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdcfabc	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fea826d	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5006cd4f	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x501978fe	imx_drm_encoder_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5027bb5d	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x503a7e9c	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x5041f949	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x505a82f9	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x506068db	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x507345b4	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x507a04ca	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5084dd94	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x508afef4	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5093618e	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x509b3e43	dpu_fd_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x50aa8c45	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b5eb6f	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x50bd591f	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c1cc23	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e12136	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f0aafb	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fc1d5e	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x51040964	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51067647	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x510cee96	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x512a0ec0	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0x512b2ed7	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x513ad34d	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x515370fe	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x51577ce6	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5170da17	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5182bbca	tee_client_open_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x518b1b5d	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x519823bc	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x519bd826	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x51bef85b	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e9522f	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ecf7ff	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f4f664	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ffec39	dpu_aux_fg_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x521f8077	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5224232e	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x52356b1a	pc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x523c72c5	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5261322c	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x52691d00	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x5269e400	hid_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x526ffd7a	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5271dbf4	pci_ioremap_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x527b1466	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x52836e82	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x5292807d	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5293e24e	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a4e055	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b3e8a1	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x52be4448	tee_client_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x52bf0ca9	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ccf4b3	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d1a877	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d9e2e8	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x52dc69ef	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x52eea1d9	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x52eea6e4	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f4794e	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f701d8	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x53098d63	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5312e383	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x53159127	extdst_perfresult
+EXPORT_SYMBOL_GPL	 vmlinux 0x531c09a1	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x5347ef34	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x53665152	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x53847ef2	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53883dec	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x5389bd04	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x539774e0	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5397d635	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x539d79d1	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b40f53	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d2cd83	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d9f5c4	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ddc373	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x53e7ffb3	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f0d483	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x53fe63cd	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x5409ee98	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x541365de	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x5414c4e5	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x5434f818	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x543cfa8c	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x54510b2b	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x5466ed5e	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5481a1af	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x54894ea5	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x549ab780	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b9b8a4	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c25df2	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d156bf	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d963d3	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e6967f	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ee3806	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x54efe7b4	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fbff27	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5501e8f9	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x55030936	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x551ef08f	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5528e47a	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5564b28c	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55775094	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557c076a	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5598f5fe	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a2dd4b	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b40ef5	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c0897a	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c43cbc	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eb7c95	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f76f0c	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f78d72	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f99976	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560e1ff1	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5639301c	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5648bf91	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5656a27f	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x565ceaf4	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x565e5484	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a63a6c	mtd_panic_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a6a76c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ba6f28	vscaler_get_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c12f13	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dda730	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e5bfbb	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f1cf1e	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f35659	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f72e25	dw_hdmi_set_sample_non_pcm
+EXPORT_SYMBOL_GPL	 vmlinux 0x570bf1fe	sdhci_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x57120334	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x571ec583	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573584a5	fetchdecode_get_vscaler
+EXPORT_SYMBOL_GPL	 vmlinux 0x573aa70d	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x57417f6b	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x57533f7c	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x57565623	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x575ddeab	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x57643b50	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5777892b	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x577b951f	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x57892666	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579b6f4d	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x579dac11	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a231cc	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a8cf5a	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f5c5f2	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x580749cc	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x5819d3c4	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x581cca96	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5835a381	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5838325f	vscaler_setup2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5841e65e	tcon_set_operation_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587ac04d	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x587baa43	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x58867b74	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x5898ac56	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a68675	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a8c1a3	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x58c39c8f	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x58c81847	tee_shm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d15931	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d4ab2b	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58eecd97	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x59237d97	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x593562de	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x5936dd34	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x59460cec	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x595246ae	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5960453e	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x596c9ca9	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x597ac509	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5990de05	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a1fab8	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ab1d76	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x59af54bf	fetchunit_set_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c45dc9	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c9cb42	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x59cea48b	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x59cf6879	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x59df6273	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e49aaf	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1888eb	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2fdf31	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a353fe9	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4fc994	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a5c6ac9	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a65abbc	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6d9d90	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8b21ab	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9b3167	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9fbfcc	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aaaa5d3	imx_obtain_fixed_clk_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aadddad	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac24451	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad5b123	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad7dd23	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae075fb	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af7a1da	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b09b55d	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b10eeb5	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b238567	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b26fa85	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2ae477	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b332c9c	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b380631	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b5f8d2a	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b701ace	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b805cf1	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b9a8d21	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b9d1cfd	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba20698	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba64353	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba72afe	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc67008	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdf6a1a	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf6f7c0	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf75096	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bfe51cd	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c00a22d	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c012ea7	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c26e224	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3b065b	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3ee907	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4bae84	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4ed8dc	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c597d5e	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c80ba99	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad2d96	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb9c1a1	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc60df6	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd89c23	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdb922c	hid_hw_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdc663e	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce029dd	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cee71c6	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf528b2	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d11220c	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d22b258	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d34d6bc	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d5e4db4	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d64f7c4	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d708f99	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d913da4	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9fa6fd	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db4f207	hid_open_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dec39c9	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dff6fda	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e01de11	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0611b7	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2334ac	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e42437e	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51de21	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6282f2	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e67b71d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6b2755	extdst_pixengcfg_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6b5b1e	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e78e595	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e85dfd8	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e89b708	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e953f19	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ead4244	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec0804a	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ecfde7c	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee89aef	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ef99907	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f1ca1cb	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f28cb04	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f40c83d	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4440b3	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f573e78	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f5fa645	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f789308	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f98040b	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9f6ba8	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa0ed1e	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa2e165	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa3905c	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb4c87b	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc2c660	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc3f3e7	framegen_is_slave
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd2b468	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5febef85	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff59497	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x601e295b	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x60313e2d	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x603fc83c	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60687168	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x60752f10	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60825afd	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091db5c	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a1d27b	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x60c5ea38	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d9e357	dpu_st_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60e9538f	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ea0f3e	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ea12b4	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f9312b	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6109afb2	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x611ee45b	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6127531e	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x612fc8c3	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x614782f1	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x614d35ad	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x61552d8b	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6162a211	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6164ac31	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6171ab84	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x61767e7f	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x617931c8	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6182addd	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x61830d68	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x618a2e92	layerblend_pixengcfg_clken
+EXPORT_SYMBOL_GPL	 vmlinux 0x619d7e38	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x619dc338	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b1432a	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b91df7	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c6dcf0	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 vmlinux 0x61de2408	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x621d2e11	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x622d8218	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x624268f0	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x62541547	rc_map_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6256a4dc	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x6278a87c	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x629306db	mtd_is_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x6295617c	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a16a93	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c1d630	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cab1bc	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d0e2a6	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x62decd91	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e413e3	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e88594	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x62ec378b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fc5010	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6307c63d	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6309e811	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631bd53d	signature_is_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x631dad2f	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x632955d8	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x633decc6	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x6341712c	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x63456146	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x634a6eb5	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x63706b31	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a85b3	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x639acf3b	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x639d7a90	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d2e5ad	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x63def4cd	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e33ecd	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x640423a9	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6405cc52	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x64195b9a	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x64210534	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x642cb102	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x642f5c5d	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x64308b18	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x643f583d	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x644bfdcf	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x646153c7	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x646371ed	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x64694905	extdst_is_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x64762799	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x647978fc	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x647bdd97	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x64888b71	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x648b5fc1	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64926b04	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x6499398f	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x649a686d	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a0f430	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bfdc84	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c03872	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c6e483	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c869b8	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdb5da	dprc_first_frame_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdf082	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ce27ad	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x651062ae	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x65284995	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x6544b96a	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x65513e6e	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6554ca46	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x656241cb	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x6563f2a3	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x658c7271	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6599e88f	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x659d6bf3	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a378f7	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x65b7b635	pc_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c339ee	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65d1b0bd	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x65dc6a34	framegen_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x65dce01e	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e23542	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e6ace6	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ee753b	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x65fc60f3	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x66052bd8	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6609aec3	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x66186e44	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x661bd26e	hid_input_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x6627d4ce	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x663058a0	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x66332856	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663c42b3	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665244c8	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x665fa21d	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6660638d	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x6669aeb0	dpu_fe_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x666d3a7d	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6681ff15	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66981ae7	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b64512	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66be3605	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x66be4d0f	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c01b01	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c94d66	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f5fe89	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fc268c	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fe40d1	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6709ef3d	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x6712b5a7	dw_hdmi_phy_gen2_txpwron
+EXPORT_SYMBOL_GPL	 vmlinux 0x67146447	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x6720e593	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6721bb03	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6768524e	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x67731bc4	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x677c4b8d	vscaler_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x6781513c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a5d22e	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b1e011	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bb4ac5	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bcc002	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f3dcd2	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f9c27e	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x67fb72dd	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x68048bdc	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x68234ae8	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x68246de7	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x6846083b	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x684f7ac4	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x68506d7a	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x68558aa6	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x686877f4	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68758fda	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x687fc494	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x687fca31	imx6q_cpuidle_fec_irqs_used
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689a00ae	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x689f8cb0	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x68c64451	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x68dffa1e	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e1193d	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e1fe16	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f2b638	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x6909dafc	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692a4f08	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69401bba	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6945725e	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695f16e1	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x695fa3b3	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x69662fec	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6971427a	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x697ed2a2	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a44708	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c419a7	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d4c2ce	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d7d237	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e2bf73	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f57289	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fa146c	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0310b0	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0312b6	layerblend_position
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a06e661	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a26901c	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6acf6e	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a767322	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a76cce2	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a777ea8	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8685f5	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8c6809	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a935f90	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a98a379	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2d0eb	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa5e412	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa9ade8	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad4541	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab1c8bb	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab49e1c	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab653d8	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab7c433	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac689de	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae641b6	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae86228	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aecfe88	fetchunit_baddr_autoupdate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af28f5b	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0efba6	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1eb097	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1f73d5	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b259e1a	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b334acc	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3e2371	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b491f29	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5d4ab8	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6c8d40	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7cf4bf	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7e15e9	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8a1d15	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb77dbe	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd7ab73	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf6484a	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfb1924	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0dc5d2	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c194d9c	fetchdecode_clipdimensions
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c1ebeab	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c37b8da	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3ec8c9	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c401c59	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c43b737	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4ef8bc	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c579194	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c604f14	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6cfecc	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7710b5	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c84bb48	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c895ea4	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c9d468c	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbc6a2d	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbef32c	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd17e49	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdc48f8	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cea3e38	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cedca7b	irq_sim_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf7f01e	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0b8c5e	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0c9d59	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d128152	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3ea278	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5b9075	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8051f0	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9d1f30	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da19784	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da64cef	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db57bb6	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc03cc1	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc43f43	imx6q_cpuidle_fec_irqs_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd3553e	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd789ad	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddc5519	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de415c5	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dea30ae	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dedc4e6	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6deff77e	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0438b2	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0519d2	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0550fb	mtd_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0c03e6	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2a589b	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4113e4	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e554c56	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5c75cc	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6958aa	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e79be75	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e9dde21	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb12aab	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6edb90fe	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef291bc	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef37662	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef62502	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f04686e	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0861f9	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f1ef7ba	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f200248	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f20479e	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f22fdfa	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f252ec1	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3b8112	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f47e5e3	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f4860de	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7836c2	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f844a5f	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f936523	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f96a134	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb4cef5	sdhci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb7e313	asic3_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb8575d	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb96929	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc2d79e	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x6feb6b68	extdst_pixengcfg_pipeline_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fef9b43	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff85c5f	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x701fca14	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x70302db8	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x7040e512	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7056ba4f	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x706ab174	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x707510e7	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x707af2e8	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x70827735	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x709c86f8	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x70af5cfa	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b575e6	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b8f36e	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d2e88f	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d92662	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e219c2	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e2e06b	hscaler_pixengcfg_clken
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e55d23	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f910f2	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x710a44e7	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7114117f	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7118ab8c	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x712c78f4	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7135fffd	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x71470fc2	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x714a56ab	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x715a4f37	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x715d934d	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7160653a	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71726b52	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x717ba043	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x717f967b	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x71829141	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x718c8d50	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x7197646f	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a86c12	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ad9a91	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x71af1688	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f5a3f2	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x722f3120	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7238998f	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x7252e039	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x72668f7e	mtd_write_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x72682883	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x7269a47a	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x726b0eee	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x72921aea	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7298e4a7	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a6cfe1	dpu_hs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b299e1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c5ee92	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d35bb9	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x72de5c75	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f44ac2	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x730bed0b	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x730c4ebc	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x731b50ac	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x733f4ea4	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x734918c5	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7349dab0	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x734e84d0	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x737abd2a	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x737b60f4	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x737c486b	kill_mtd_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a194ec	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b6081d	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b69a3d	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b98231	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d1187f	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d85a29	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x7409aef2	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x7409d7ad	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x740c6d59	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7411a57a	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7415013a	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x74197840	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x741e4a2b	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x74240d86	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x743493ac	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7436377b	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x746ed088	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x747246ce	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x74733966	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7490f543	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x749d7c42	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b1f85d	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c0a512	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x74df040a	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f01e8a	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fa9bb8	imx_clk_hw_sscg_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7500c227	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x7513b5ec	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7527e9cb	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x753e505f	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7543ac27	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x755ae3c8	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x756f0c8f	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x758e0b5a	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x758e866b	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x75975ec0	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x75aee456	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b9b279	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x75baf3a2	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bf6cc0	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x75c7ce33	hidinput_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d81910	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ed6e9e	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fae303	extdst_pixengcfg_syncmode_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x7616350c	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x761d28df	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x762bcd0b	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7631f1d2	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7650ca5b	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x766361ff	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x76655137	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x766755db	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x766b2451	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x76784b17	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x767a796c	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a87b1b	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x76ad9aa4	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x76afd32b	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c86c21	vscaler_filter_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e8c792	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f0f291	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f26840	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x771838b8	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x7728caee	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b028b	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x772e2c26	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x77303007	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x7733ae96	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7738d374	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x773d310f	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x77475aca	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7759c19b	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x775a8c58	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x775b71c1	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x776a85a7	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x778c4fdd	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77975585	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae45eb	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae4715	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c02572	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77cf1285	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d5fd2f	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x77dc283a	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x77e5cf7c	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f091bc	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x78043002	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x780a88ba	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x7823950b	dpu_get_singlemode_max_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x7823f5dc	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x784f82b7	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7855d52f	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d1c2c	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x78728992	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x787b882a	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x789cc418	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x789d3896	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a09c46	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a16df2	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c0de29	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cb3145	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cb7b11	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d6d001	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x78dc345b	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ecdd28	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x79005926	fetchwarp_yuv_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x790898e0	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x790aee16	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x790ecb68	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x79113d58	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7914d962	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x79170ccd	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x79238e08	hid_validate_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7934ea97	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x793a93dc	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x793bd59e	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b044f	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7996b1ea	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x79d1f170	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e4d4ed	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a1c79ff	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a1d0241	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a26ffef	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5e9950	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6af37a	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7f1396	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8013cf	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab6c547	tee_shm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab7f774	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac7d6dc	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ace633a	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad0a712	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ada96c3	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adf0da3	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af4d55b	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe62f9	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0d734b	fetchunit_shdldreq_sticky
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b33161e	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b433276	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b48d7c3	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4a9c05	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b69f477	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6d0e9d	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b7cef49	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b82aff1	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b92a807	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b994435	fetchdecode_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab1acb	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb045a7	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb0865b	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbbd18e	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc750e5	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be928ec	fetchdecode_pixengcfg_dynamic_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfbbfb7	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1197f2	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1cfab8	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c209397	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c301675	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c46e623	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c48f713	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c4b66ec	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c653d4a	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c685bb9	dpu_ed_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7611cc	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7e9dc2	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8e57a7	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a4438	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9c662f	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca4184a	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caa1aab	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb6aaa9	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd5039d	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceca803	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf0d140	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d27deeb	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2931b9	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3134d5	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d354b9e	fetchunit_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d61088b	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d772ed6	signature_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7b7494	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d8a3aee	dw_hdmi_phy_i2c_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d979b0b	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da50061	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da7ccd4	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da8bb45	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dbdf4c8	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd49d2e	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd8f1cb	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd9a95c	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e10643c	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1470aa	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e2a0708	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3c7227	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4a4f6c	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4d7e83	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6df6a9	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7828a2	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7c397e	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7ce256	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7d87fc	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9abd64	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebaa34a	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebb0a13	mtd_read_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec835a7	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed6476a	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee63b2e	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef883a6	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f203a7e	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f20f2d4	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f46a4fd	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6683b0	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f66e70b	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f69f086	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8a35f8	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8dd2bb	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa0caf5	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa36520	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa720a6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fadb239	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb62198	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd570e1	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd9b321	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fee9dab	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fffdef3	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x800ac87d	dpu_vproc_get_hscale_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x80133b77	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x80187a52	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x801880de	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x801de8e4	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x801eb65d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x801f8208	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x801ff400	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x804dc3d2	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805a3d59	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805f896b	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x8066a073	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x806be414	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x807ccc78	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x807d956c	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b3a1a9	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c92c36	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d11834	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d32306	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80fa3a57	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x81386822	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8150ce73	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x8151fe33	hidinput_find_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8166ba1c	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x81895558	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x818d7377	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a6faad	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x81aad000	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b260a7	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b440b3	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b4f3c0	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c02911	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c2e08d	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e45024	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2b867	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x82019a27	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x82136051	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8236ee8d	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x82453c41	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8246accf	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x825b9d5a	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x825c9914	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x82841c7a	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x829736a7	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b16a97	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c93427	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82dcdd6b	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x830b27cb	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8311e906	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x831ea6a5	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x83279909	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x83356607	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8342f1bf	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8379056b	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x83803eb2	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x839498bd	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x839ae5c8	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a99d67	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b8a72f	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x83bacf83	fetchdecode_get_hscaler
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c7b30d	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d91272	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e23f1f	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f429dd	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8401487f	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8407b8cf	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x840a37d3	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x840ca294	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x844207e1	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x844a4add	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b2069	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x848c2545	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x849997ab	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x849f9956	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a745f2	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b7a4ee	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b7be8c	dpu_fw_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ba4f90	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c3cb65	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c425bd	rc_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f4b5dc	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f53ce0	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506675d	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850950e8	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x850d1a3a	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x85163a37	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x854aa875	framegen_panic_displaymode
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855d9082	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8570f468	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8574ca6c	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x857d2bcb	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85aca8ec	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x85acb812	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x85adb356	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b3f3cf	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ca1c78	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d833af	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x85da543e	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e17ba2	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e7ba13	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f26943	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x85fd9922	tee_session_calc_client_uuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x862d1d44	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x8646d499	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8648f5a5	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8658c561	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8665230b	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x86768168	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x867a39e2	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x86806218	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x86855541	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x868d67c6	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x86984c43	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x869aa0ef	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x869b54d7	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a528ea	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b399e6	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b78f69	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c13575	framegen_syncmode_fixup
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cc2158	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ce08ca	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d2760b	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x870d6217	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x87104ae2	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x872e7f3c	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x873019c1	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x87466bd8	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x87516d7a	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x875384d9	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x8754dda3	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x8760cc4f	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8770ef55	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x8771082d	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x8786562b	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x879209b0	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x879a2167	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x879b4a08	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b846a7	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d2c21e	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f643f3	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x87fedcc2	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x88017b4d	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8805a073	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x880c9d94	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8816266c	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x883ca9d7	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x8848566a	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x886670bc	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8867c2f8	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x8870a7b7	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x887c7cd3	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x88885960	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x88919644	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c2a266	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c38ded	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c992b1	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ca5d64	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ccb86a	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x88cf84d3	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e27fbe	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e4a3d5	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8908b095	dpu_bliteng_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x891bb303	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x896493e6	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x896ae415	hidraw_report_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x89700e46	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x89726b52	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8984ff04	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8985da0e	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x89889bf5	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b894a4	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bfe270	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cdb3c5	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d55ebf	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x89dfb6db	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e6ad53	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e8041e	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4c1f1c	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7faa6c	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8058c0	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a87ded2	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8a9789	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa02161	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab09af2	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac522b0	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad9e668	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae5e42c	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae7e91a	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b01460c	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1828fc	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1d08e2	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2a5437	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b529ce4	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5462d1	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7561d8	hscaler_scale_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7ce742	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b810337	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b860026	register_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b89c14f	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b90fac0	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b91f7a7	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9aa9cd	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba55933	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x8baeab89	extdst_pixengcfg_powerdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc628f8	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be20baf	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be393a9	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bef3747	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bfc3cc7	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0e3ef6	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c35339e	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c39a791	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c41263a	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c48cfdc	mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c70a875	signature_shdldsel_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c797315	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca62a14	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca7cca5	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cacd7f1	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb23e84	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cb28669	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd5c0a	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbdb109	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ceae04d	vscaler_setup5
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cebd62c	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d19c31c	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d328e80	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d34cd6a	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d432308	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4f241d	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d503eaf	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d522714	__rcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d60b837	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d65a54b	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7098e5	dpu_get_master_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7d4b68	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d90fa79	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9ad09f	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da3184f	imx_pinctrl_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da911ee	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8daf11a9	signature_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db28d94	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbd85ec	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dcc65a2	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dcd6f43	dw_hdmi_set_sample_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ddbb927	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de4c6ea	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dff7dbd	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e339de4	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3c4813	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e456e8f	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4a67c3	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e509a8b	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e51a3c7	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6274b8	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e760309	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7abf9a	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e845d94	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e86ef78	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e96e888	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb3275d	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb8628d	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebb6001	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edb22e3	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edfbcd0	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee1a12e	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee2277c	dpu_aux_sig_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef1310f	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0d70da	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1a8cf9	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2608d7	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f417f7a	fetchlayer_rgb_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5cb531	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f725e67	probes_decode_arm_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7ae3db	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7cbc26	usbnet_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f83894c	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8a2075	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8b734a	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8cea24	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8d4a0e	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa47823	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd5ca1a	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd8e577	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd9c826	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff96bf0	framegen_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x900da9db	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9028675a	spi_nor_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x9039af65	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x905683ea	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x9057406c	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906dd327	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9072e481	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b14b50	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x90bad865	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cd7858	vscaler_setup4
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cf18ea	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d744b9	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec0b50	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x9106b357	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x911237cb	tee_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9117776a	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9119bd55	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x914a9f64	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x91519a16	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x91701055	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x917b57bd	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x919425fd	pv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a5f78d	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a648c6	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c7ad85	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d3d2bc	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d7405e	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d7ac95	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ef3e10	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x92133976	dpu_fd_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x92196cab	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9239ec15	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241e7f4	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x9245e828	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x92496bc1	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924cd67c	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9255341a	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x9257a71b	fetchunit_set_src_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x925a2d31	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x926834dd	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9272dcca	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x928adf3b	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x928f2c8a	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a391df	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x92abf86d	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b2b01c	dpu_sig_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b57248	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b74cae	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x92cb63a5	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ebbcd0	vscaler_setup3
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f71079	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x93172538	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x931d549b	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9323a197	constframe_framedimensions
+EXPORT_SYMBOL_GPL	 vmlinux 0x932806f7	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x93293258	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x934dd1b6	hid_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9353cd60	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x935beead	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x935efe75	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x935f1541	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x936aa9bc	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x937fc5a4	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x938608c5	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9387916b	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x93882eba	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9388d827	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9399ff73	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x93aef74a	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b3a543	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b46c06	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b84ceb	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bcccab	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c7edeb	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d9c55f	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e60f11	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f3cdd7	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f5506e	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fb510b	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x9405c2d3	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9409016c	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x940b59aa	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x94126859	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9415d0cc	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9416f183	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x942498ac	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943efb40	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9448f707	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x946169c4	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9472aec5	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9494176c	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x949e9a36	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a17ded	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x94abb745	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b738c0	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b75f53	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cf329b	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d24dfd	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e15147	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f7fc99	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9502c642	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x9509c247	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x950ee7d1	fb_find_logo
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x95301fa2	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9532a2eb	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x953c79f5	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x95426691	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x957e9af0	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x95868dc0	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b8eed4	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c0e1e4	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x95dbe25a	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e0f1db	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e6c648	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9601c4b2	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x9607f01e	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x963ddc9d	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 vmlinux 0x964fcc8d	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9661ad88	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x966c2276	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x969684fe	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a0e4a8	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a49075	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x96bc9bea	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c096ac	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c92df9	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x96dd44da	dpu_dec_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ea7a3d	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f3e250	dw_hdmi_set_sample_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x970de42b	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 vmlinux 0x970e2f13	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x970f84d9	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9711ce2a	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d61f0	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d69de	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x972ea4a2	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x973465d5	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x973a8c4c	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9752206d	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x9757706c	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9760e765	tcon_is_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x97770670	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x97798163	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x978b2a03	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x978d5b57	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x979e9dd6	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a6e345	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b4d750	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x97bb03ed	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c3c6a9	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c53172	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c5c7c7	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c605e6	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ca6c94	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x97cc16a4	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d677c7	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e2b389	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ec208b	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fe57b8	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x980e29f8	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9817c717	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9838fdef	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x9839dd73	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x9847babb	signature_win
+EXPORT_SYMBOL_GPL	 vmlinux 0x984de4db	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987a8dfb	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x987c78bd	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ee54f	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x9887ebbf	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x988982c4	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x98993526	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b399d4	get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b5c0f3	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b86504	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d54648	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e1a8b5	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x99217373	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x992e7865	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x993e3ae7	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x994657b2	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x994e5283	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d8cb9	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x996a810f	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x99788f35	vscaler_pixengcfg_dynamic_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x999995c0	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a3ee95	fetchunit_get_dprc
+EXPORT_SYMBOL_GPL	 vmlinux 0x99aff8ff	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x99cce0f3	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d430b2	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e881ce	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ef724c	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99fc735c	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a048866	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a14c13e	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4e155b	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a53a0db	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5d4ffb	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5f6173	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9bd48c	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ab25fa3	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abe09d3	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae71ce6	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae87498	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeb5aa4	signature_crc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b0a306e	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b17dfa2	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b2261d8	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b383c72	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b499d92	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5aa0c3	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5c6b77	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b68aca0	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b81800f	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc8e519	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bddab8c	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be341b8	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be4391d	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be8c434	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c081269	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c238edd	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c29dec5	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c342392	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c479790	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c5a032b	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c5dc1ef	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c606464	dpu_dec_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c83e4ee	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cbc09bb	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc02f59	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ced7694	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cee4043	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf4c90f	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d14b5d7	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d3bcb55	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d44c28b	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d454d4a	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d568b88	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d7ff1a3	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9b1bcd	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db04711	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba620c	extdst_pixengcfg_div
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba64d7	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de33d5e	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x9debba27	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df5a1ad	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfdf722	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e20025d	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e29a7c4	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4f5938	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7322e5	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7b4b75	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7d0640	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e859615	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e85c962	dpu_lb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9adfa0	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9be033	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb650f8	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee5e40a	__ktime_divns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9effc96c	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f140889	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f1c9875	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f256d08	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f360202	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f48e5ab	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4a51ca	pci_remap_cfgspace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4c9a91	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f59d7be	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7c9aa7	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9b6a9e	vscaler_field_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa93b91	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff97610	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa00ac5c0	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0236a5f	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0286ad6	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02d92c5	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xa038f306	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0423ee6	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xa045af23	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa052ed9a	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xa065794f	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa076033f	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0b6e5fe	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c48d85	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0cfc7d3	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dbbfc4	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e310a9	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f650cd	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11b2986	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa12e2589	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1389669	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1411eb1	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xa142a524	gsc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa153cceb	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa157d66c	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15b4bd3	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17615a1	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17d4abd	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa188194f	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19778f7	constframe_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b9cce6	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d22782	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1dc6768	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e9b8f7	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ea3747	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ec8d0e	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f1bd3a	arm_check_condition
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1fc6981	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20702b5	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa209487c	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20f2232	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa21a8787	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2265043	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa247a172	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2482d79	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xa259b244	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26b51c4	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26f685b	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27ceb37	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa28d623b	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2976a98	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b94c28	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b94de0	drm_class_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bc19c6	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c31b2a	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ce4d88	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d47ac4	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d583d6	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e657ff	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f27bfd	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fbe0af	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa306a23e	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32359aa	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33744aa	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3394489	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33c35ab	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xa346975c	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3498dc7	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34a0434	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34ca188	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 vmlinux 0xa363b9a4	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36612c2	dpu_sig_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa371acce	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3893f95	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39fa57a	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3cb67ee	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3daf976	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e27879	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa413a1b6	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4398474	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4404f0b	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa441d20e	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45dc275	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4770e94	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xa47d4ed4	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48509b3	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa489e7cd	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4984fd5	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4b2bc59	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4baddac	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c537ff	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c9103a	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cc19b3	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e4cc0d	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f2c25a	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f4a2b2	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fa568e	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa502b039	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5061d9d	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa51ae182	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53672ae	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53c41da	dpu_vs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53f0dd7	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa540c1b1	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xa55bc1ba	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59a1be4	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59a32af	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5acef42	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5cbec92	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5cd64e0	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5dcec57	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5ef4cd2	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa604f938	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60f3973	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa614b256	framegen_pkickconfig
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62ab3dc	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa649d791	framegen_disable_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64e8848	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65cb8ca	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa671955d	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6890bd0	extdst_kick_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a119bf	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ae588e	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c50307	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ce5236	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e78415	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6eaa3e7	framegen_secondary_is_syncup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f834db	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7007673	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709caf4	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70df1c2	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7230c05	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xa72abb17	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa749afac	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74b3cec	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74df9c3	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7548076	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7579a1d	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa771e646	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7963ec6	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa798948e	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a0d6bf	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a74acd	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7aaafde	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b1375e	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bdfd77	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c03597	imx8m_clk_hw_composite_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cd9f4f	extdst_pixel_cnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80fb56c	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xa816f9db	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa81d5dd6	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8215b03	pc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82d2a06	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa877c295	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87c7458	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87cbc85	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87fa613	layerblend_blendcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8953448	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a6dd9d	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a74991	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c10788	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d24fdc	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d41406	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e582cf	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ebd70b	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8efcc9b	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9050966	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9059c43	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0xa907a68b	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b7803	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92fba99	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95673e4	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95c3e2e	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96dbe82	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9792d41	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98664c6	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99a4deb	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99cdb09	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a10132	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a491bd	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a61bf7	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b9f970	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9be4a36	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9cb0a72	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9d2cdbc	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0e1c89	get_tree_mtd
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa20bfea	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa273ba5	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2a72bf	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3b8d8f	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa529a56	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6340e7	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa67f40f	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7d7331	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa961219	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9e823a	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaaffdd1	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab0e5f8	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaad7cccc	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xaadb7108	extdst_pixengcfg_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae47297	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaeab4b6	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaeb5b2a	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaecf75d	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaafd9b1d	fetcheco_get_block_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xab02c1b7	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xab0f1004	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xab0f89b8	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4f4b32	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5dde81	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7ed293	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xab840bd7	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xab851eea	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8e9caa	dprc_irq_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xab96909e	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xab999156	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9a4714	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba76a6b	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb97b11	framegen_syncmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc121f7	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc5abaf	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcda29e	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcdc173	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd727fe	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabda71a9	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe96256	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xabfe216e	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0162c5	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xac18b5b9	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0xac20ca3b	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6812ab	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6be7fb	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6c7dc4	fetchunit_get_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xac70f277	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xac854157	constframe_framedimensions_copy_prim
+EXPORT_SYMBOL_GPL	 vmlinux 0xac8e8b78	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xac997296	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9c2ae3	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca36816	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacda61f8	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xacdcb0e0	fetchdecode_yuv_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0xacdf7c2b	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xace2c05f	mtd_is_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xace4a59f	layerblend_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xacec3e9b	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0a2bbc	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xad101f0f	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xad35a884	spi_nor_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xad373f8c	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xad392bb5	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad41de5f	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xad47ee77	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad64eac6	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xad67d00c	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8c8a19	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad922b70	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad944395	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd54cfa	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xade42224	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xade67bfd	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xadeb9316	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0acfcd	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae104857	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1b8686	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2c9025	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3588b9	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae408b54	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xae47d020	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xae49a7f8	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xae5670b5	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xae5866e7	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xae60fc26	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae6c3e36	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 vmlinux 0xae70c13f	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae81281f	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea5b692	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeae1a8f	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeebdac2	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf0cf153	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf134e98	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf3f6612	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4b1fa1	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf593dd0	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7489a7	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf76bd73	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf889bb0	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9c832a	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9df5fd	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa76faa	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb184f8	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc58a40	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xafcc8ffd	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd3de4e	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xafdd6c56	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe059b3	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff917f7	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0051e24	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0098049	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0138bb7	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0232477	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03d6a41	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb063cee2	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0678441	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06d4f29	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0878398	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08a5b3a	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a753f6	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ab9a31	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0afc054	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b00056	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e5fc52	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e7fc52	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f62319	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0fb12c0	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1058f8f	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11f06cd	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb146fb0c	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15798e8	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb171f29e	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1740b6c	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1846927	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xb187bbe0	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18ba6bc	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18f6134	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18fc56c	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1919ca5	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19c7d56	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a24c12	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c1442e	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c98424	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1da34ee	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1df36a3	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f56248	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f686b2	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb203247f	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21920ac	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21df30b	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24447ac	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xb244a680	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb25fe140	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27134d2	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27601fe	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb277679e	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28fa63d	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb292d173	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2933fe5	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2985c43	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a308b2	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bbc687	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c4700c	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2dd7a02	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f3d514	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f63be2	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fb9f69	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb303296b	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3191e38	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3374c36	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3423182	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3428dc3	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb353b75c	dpu_fg_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3577360	prg_stride_double_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xb366a7f3	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3677db3	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36ee57f	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37da858	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3873a3d	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39c7cf9	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39fde6d	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a5eb4e	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a99f01	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4027afa	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4159415	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4175946	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4228c76	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42f9731	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4400858	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44b74b3	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4684b5c	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46cc8db	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xb474786e	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0xb482bd87	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb487b518	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xb48d3880	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb495565b	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49ae507	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49c6d90	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c53a00	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c5dde3	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d0936e	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e5a2fa	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ebd69c	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50cac87	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50d821c	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb511a6f6	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5297d13	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb534e67f	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53b275f	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53fae7e	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb545699e	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54af2c3	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb564604f	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58056d8	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59a777f	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59c63e7	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a81a06	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b3efb0	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d16d1c	dpu_hs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5dcd8a0	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e98d3c	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed9723	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5eddff5	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5f85388	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ffa8af	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60534ef	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6064151	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xb606795f	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60fbb13	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xb617db8e	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6529965	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0xb653429d	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6789676	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67af743	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6816c7c	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68edabd	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68f3901	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68f6c0b	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xb697db98	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69b9e5c	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69d7465	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ae7f35	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b901d1	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ccf9cc	fetchunit_stride_fixup_tkt339017
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ead3f3	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ec7cf4	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7081267	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70ea06e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xb711b9ab	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb723aaa5	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7279c75	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xb72b14b8	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7312834	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xb732658c	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73c42c6	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7491c17	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75f7ef9	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xb764d1b6	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76648d2	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76d490c	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7824e9b	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7834fa5	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xb787eee9	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7899dbe	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78b3a78	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7abd1c4	gsc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b81fa2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d75158	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d8ec4f	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e06ab2	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80ca917	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82c8f6b	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8367ef8	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb844d712	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8583ef2	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85bc33a	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87193f7	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8776e85	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb887763c	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88ab825	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8963ec8	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89892a1	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89fff7d	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8a79fa5	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ae383f	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c3b6b6	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8e9ba5e	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8efd78a	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90954fb	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90a1fcd	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9138620	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9173948	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917406f	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9176155	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb948330d	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96a6616	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9859fa9	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98b5b9a	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99a93f5	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99f6a12	mtd_del_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9a0c6e8	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9a84faa	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ae082e	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b49cbb	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c60e35	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f16119	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9fe9ceb	fetchwarp_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xba09216c	rc_map_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba1c928e	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba32658c	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xba3bcda6	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xba5ecba6	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xba63232b	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6364d9	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8f24bf	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa87bc1	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab0de73	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac39350	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbada8cb0	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae0d1bc	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae7711a	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaeb6d04	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf78af8	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafae4ed	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb08f0ed	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1685f0	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1ae583	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2ad0cc	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb504735	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7bef9e	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7c9362	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb902505	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb980002	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9d5bde	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba1af56	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba751c1	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbce8e70	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbdad584	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbddc24d	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbfabb00	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc232a03	fetchunit_set_burstlength
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2b9032	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc2ecf54	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc38db81	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6ad2e7	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6b0b54	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8f1336	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcae928d	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccb944b	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd402e5	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdbe307	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdcf404	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0090aa	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1699e8	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1fb7cb	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2fad4d	layerblend_pixengcfg_dynamic_prim_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd31b33e	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3446ec	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd427d4a	fetchunit_is_fetchwarp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd55d921	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5f2ee2	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd60e132	hid_dump_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd680c10	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd6b68cd	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd723127	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7a5f9c	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdac6e98	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc83f2d	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcc24d0	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd79080	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdddd657	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde87fcc	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf047b8	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1645a7	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1da022	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1f5be0	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe27f6e8	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe46f8ab	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5a7d00	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe702331	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe879ef8	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9af246	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeae6b65	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec1ebd0	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed73159	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee5295b	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef0f427	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefb53aa	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf02af44	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf049495	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf0ed2cf	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf23f9bb	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf28d0b6	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf410460	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4f57dc	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5c3268	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf662a5a	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf919176	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf966736	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfa1e800	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfaada18	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfad7df1	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbfa89b	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe83bb4	imx_ccm_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff0b2ab	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff77708	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xc002c143	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0055d61	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc018286e	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01ed645	tcon_enable_pc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0287f86	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc03a430e	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0420b23	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0442dd2	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0583e20	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05a4c2f	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc072fba9	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08a58cb	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08e836b	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b8810e	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0bee63e	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c78171	clk_hw_register_gate2
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d42432	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e35738	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e6ffbf	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ee1c0b	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f226c5	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10655da	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc118d866	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11b1af4	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1230d12	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13328ce	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13b7fcd	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14f88f4	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15f6b38	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1690eb0	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17546c2	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18bce86	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19189d6	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19437f5	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c0b5c7	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c4fcf1	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1e00405	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fb1a92	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2002c27	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc201dd00	hscaler_get_block_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20e039b	thermal_zone_of_get_sensor_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc222ead3	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2305108	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2309b19	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24bac72	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2510313	hid_dump_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2642a0f	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28aafe2	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a2049d	tcon_is_slave
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ae47b3	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c98ef5	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2d90054	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2db7e18	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e8971d	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f2b16f	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc307d838	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc30aef5b	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc31089ae	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3658df3	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc365abed	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36c5fd7	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc372f2fe	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc375fa80	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3852d30	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b45094	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b91429	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3bd486d	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c7f051	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4002bf7	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f8ef4	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4196845	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc424ef7f	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4272792	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43381e6	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43d161d	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc443a23e	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4492960	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46a1af0	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46a4df8	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc497f939	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ab9bf0	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4aeda98	framegen_secondary_requests_to_read_empty_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b264a1	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b7bc91	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c7ec13	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4dfb2e2	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e42b7a	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52c4584	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5356bbc	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5381db1	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5566f90	fetchunit_disable_src_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc557b276	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55a3361	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57e0509	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc593db88	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a387f0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c098a3	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c6264f	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d3aeb1	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f2eb5e	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6028547	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc603a92a	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc612e003	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc638cda6	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6423ed3	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67d0d97	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67df102	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68c7b82	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c3ed50	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c65cad	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6cb21a3	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6df901f	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e667f1	thread_notify_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6f43668	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6fdd209	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc73b4a1d	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc73cdbaf	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xc750f91d	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75be52e	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xc768c8cf	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xc771f25d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78f93fd	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79144f5	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc792a683	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79c8874	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a2f639	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a7e770	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7acb059	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c5ef8e	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e4b4a4	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f14f00	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc81e4c25	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc828d376	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82f4596	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8458f69	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc848f1db	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc849e66e	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84d30ea	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc863e70f	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc86a023d	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8709c11	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc874bcd0	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8775dfb	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8789b73	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87f5db0	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891136a	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc897573e	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a553b6	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8bceeea	hid_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d1abd0	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d2f10d	fetchunit_is_fetcheco
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e11291	framegen_disable_pixel_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e5ec8d	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ea0469	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f48f19	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f9cc19	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xc905c877	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91c0435	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc928f3f4	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ba48b	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc952ae52	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9846396	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a85b65	tee_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9b6d04a	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9bb9a9e	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c1f1f9	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c1f42f	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e6cb44	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ffc822	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xca0fb9e2	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1674b9	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1ed910	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xca277a6f	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xca35536d	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3e7575	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca48fa09	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4f8805	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xca542bdd	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5ba54b	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5e62d5	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6c9f9a	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xca720d4a	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca843a62	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xca855473	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xca8fd965	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xca99936c	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xca9cd30c	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa71fe0	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa78c42	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac1dcfb	pinctrl_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac8fbe2	dprc_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacf9116	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad63f92	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae66119	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf42c50	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb00e922	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2854c0	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2b4601	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2ecee5	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2f2150	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb31f712	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb404ef2	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb4912ef	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb82094f	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970633	imx_clk_hw_frac_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb09c95	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc0ccb4	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd19531	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd390e3	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd482c2	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbde21e4	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe6d5f5	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf2ae8d	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1d2768	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc20ac52	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc27422b	framegen_read_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2fba50	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc320f6d	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc481348	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5776f1	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc63f461	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc70d643	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc77f12b	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc797b4f	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc83f016	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc88e5a7	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1cd57	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1dda4	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce762a3	extdst_pixengcfg_shdldreq
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd01ac01	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd08d5d3	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd11822e	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24df04	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd30e156	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6045b0	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd60b38c	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd65b80d	dpu_fe_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd73d288	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd85a9f5	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd88bc1e	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd94e74c	teedev_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9bc215	dpu_lb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda9037d	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc90709	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcfbc46	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde5a717	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf46d16	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf73969	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdff380b	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xce04467f	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2e96e4	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xce453c42	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7dc701	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7f478f	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7fd1c0	devm_irq_sim_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8b7ca2	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb234c2	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcebcefeb	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecb2490	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecc202a	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecd32ec	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee0f60c	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xceebc0b7	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef007d1	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef4d5b4	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf15804e	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf2492bf	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf46c2c4	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf4f48b1	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf654569	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf661dfc	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf675e6c	rc_keyup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6ab5a3	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf72ab69	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf802f0e	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf96372d	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa75269	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbb0467	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc427a0	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfccbf15	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe66682	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff9e9ac	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0011332	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02cdbd9	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0362361	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xd036ea7f	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd046cf3b	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xd05fabc2	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0601e82	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0642f3b	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09245c5	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b0dc12	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c6f155	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c96cfc	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d17d8d	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e4a55a	signature_shdldreq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e5aa27	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f48c60	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f5c7de	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f93b1f	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd109ccd6	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11c2730	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12159a7	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12bf990	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12e3b5f	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1539b20	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1586c7d	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xd166254e	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1729790	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ba2d9	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd18adab7	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1908628	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd19d3445	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b5e7d8	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b96a6e	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c44e81	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d84643	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e641e5	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f62d48	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fb5c3c	signature_crc_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2010032	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd203f7a3	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2080949	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2187557	hscaler_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21cb4fc	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21e2c16	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22c1d63	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22d89b3	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23e766d	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2478ce4	dpu_fw_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2583113	signature_alpha_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2655933	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2704c81	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27e2b1b	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2924188	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd29384e5	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c5a79a	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d7ff5c	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2dc6834	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2eea246	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f4a570	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30788a6	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd307c264	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31d1ef7	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31dc51b	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xd330b123	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33a8aa8	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34a8b53	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36827a7	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36bce5f	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37d06d3	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3852724	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38700fb	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3900a71	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39071e6	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a64145	tee_client_close_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b7a7c7	mtd_writev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c44ca7	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d60015	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3fc5ab6	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40b11e6	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40f35ea	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xd414c8d3	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4153f65	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd421d2c1	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42b03f9	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xd440474f	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45a053c	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45affe9	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46368b1	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47422c6	imx_unregister_hw_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd478f8dd	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47ae0e5	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd482d923	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4845650	prg_shadow_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4898e95	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4cb8a89	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f06f3f	framegen_secondary_clear_channel_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50f4236	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51fcd89	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5270b81	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd537b2ba	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54dae0a	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5502451	dprc_enable_ctrl_done_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5551e0a	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5616123	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd574728f	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd58d5d62	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xd58ffac2	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd594a898	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ac24e5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b46cb5	extdst_pixengcfg_src_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5cf6592	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5dbb131	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e9c603	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f256ec	prg_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5fbef7a	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61611c8	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62302cd	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xd629b14c	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62d06cc	dpu_vs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6440621	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64aecf1	fetcheco_fetchtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64b54ab	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd666891a	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd66ae5fd	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xd66f1722	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67403d2	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd677e6c1	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67dc8ee	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6968220	dw_hdmi_phy_setup_hpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ae66de	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c7632c	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c9d6d7	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d2230f	imx_drm_connector_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e39945	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6efe946	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7236d1f	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7267b05	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7273409	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72eba03	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73e4185	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73f3043	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7451494	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7472b87	dpu_map_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74cf5ae	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74fb217	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd769fc74	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76caaaa	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd776af4f	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xd78c28a9	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b411cb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7be1c7a	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c0f6ef	dprc_reg_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c71f1b	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cbe12e	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d1bf1f	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e4f93a	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e68d29	hid_field_extract
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ebc2b8	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f9284b	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f963e6	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd818fb5a	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd841b615	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842a24a	signature_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd86de6ff	extdst_pixengcfg_sel_shdldreq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8723f94	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87d1caf	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd880f11b	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8819919	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd89d0b82	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a30024	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b88fc5	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ba6afa	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8bdc1d7	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d5e0c5	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d6bf1b	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8de607a	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e63ecb	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ede5de	hid_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fe547b	dw_hdmi_audio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9153390	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9361a18	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95513c0	rc_free_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd956e413	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xd959153f	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd990abb5	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99dce2d	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9bbef3e	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c85e0e	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9cc7c20	mtd_add_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d19725	hscaler_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e07955	dpu_cf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f7fadc	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0aa783	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xda116c19	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xda38f290	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xda410add	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4836e4	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4a536d	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xda553d72	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6658db	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6848fb	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xda71d700	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xda95dfed	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9b2d81	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab00ccf	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab542cb	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5b9ee	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac8ac7b	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac9a01b	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xdadd2f24	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae898ff	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaedbc0e	signature_global_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafa1790	dw_hdmi_phy_read_hpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb00cc2b	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb162202	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1f3472	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb25ca7d	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2c1044	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb330476	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb354b1c	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3ce892	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb559012	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6ef2af	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7fc98b	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8382f7	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb3e5ba	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbba76dc	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc87986	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdb0e8b	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe19c63	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe3951b	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbea1be7	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf3d045	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf6f9b2	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbff854b	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc098fcc	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc28fc27	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2a505e	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc44166f	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc48de07	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc54aa41	dprc_stride_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc63b0c4	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc71847c	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc799fec	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc973df5	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca85307	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcb69857	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcb7f7ef	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbe65f0	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc50e80	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcca2f52	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd00961	of_alias_max_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd69215	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcde4deb	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd21316c	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd219577	vscaler_set_stream_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4547d6	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5377f9	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd56c6c8	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5c1960	hidinput_report_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd797d2d	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd81fc75	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd97fe9c	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbb90dd	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbdd5e7	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc3597f	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf1e54f	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xddfede32	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xde007d93	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xde231201	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2e0d6b	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3080ba	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0xde358e27	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xde375eef	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5975a5	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xde67e3ac	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f3038	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xde76a52d	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8c6965	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9062c8	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9e49ad	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeadc482	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeae6cd2	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeaf1629	sdhci_set_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb8791d	dpu_aux_dec_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0xdecb89a7	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xdecd3c35	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef520ed	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xdefee261	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf022ce3	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2cf0d7	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf34d6f3	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf3d6574	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf44db8a	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf503990	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf69b5b3	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6b1ebd	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9dece5	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa356e2	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbdc5c3	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc02082	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc5a385	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfe68af6	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff4c8e0	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff6c145	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0164699	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0219ce6	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02905e2	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe037633b	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0452011	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06781b8	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe076fb4c	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0787324	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07f2fa6	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07f7f0d	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08b21b2	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09c732c	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09ea44c	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c5a917	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d0b529	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0df33a9	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f219b6	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0fb951b	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1057ec3	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10a7d6f	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe11d58d9	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12069e6	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe13c6071	vscaler_setup1
+EXPORT_SYMBOL_GPL	 vmlinux 0xe147ba22	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14f4888	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1528219	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1535551	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15ba6ab	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15ea724	fetchlayer_yuv_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe160246c	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1657dff	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1677d2c	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8df4b	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b9ac9e	fetchdecode_get_vproc_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1baf333	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bdbe1e	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c0b561	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c2a7c9	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e9e803	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1eb996e	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ef0886	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20bc7fc	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20ca4f2	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2146740	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22a7a03	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d14ed	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26bfbe3	dpu_tcon_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26bff4b	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26f65b6	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xe283aaa3	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29b684f	fetchdecode_need_fetcheco
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ab8141	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b5f9fa	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2eca5e0	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30fd906	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3109dd5	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31276ce	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xe312b0a4	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31340c3	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3218add	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3224e79	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32324fa	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32b6c7a	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0xe347ec42	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34f8e02	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe36a43f6	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe375e6db	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xe37b34c8	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38cf6f2	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39600a3	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3960e34	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b90afa	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c19482	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c21c16	fetcheco_clipoffset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c7f0a9	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cc50bb	signature_continuous_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fd6830	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe422a26e	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4463387	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4465205	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe466847f	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46f1124	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0xe475a38b	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4768bd2	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe491d7e5	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4954950	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe49b79c5	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4af3acc	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bff11c	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c609d9	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d938e6	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d9f1b2	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc6a92	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e95d81	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51411e9	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5676985	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56bf3ed	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56eba11	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5740717	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe57a9a90	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xe57d1efa	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a30a92	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b2f76f	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cc29f7	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d23379	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d7409c	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e9b4f5	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60fbb0e	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe61b8fb6	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe650d143	fetchunit_is_fetchlayer
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6570131	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe692be84	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bd9c7d	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6cb5b02	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d1a9a3	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d81d31	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6dc6008	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ee90c5	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71b4ebb	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe724f632	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe734a92e	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe73837a6	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe73d662e	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747297d	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747e903	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75308af	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75625fb	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76712c9	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79260d8	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe796fdb8	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a782d2	imx_drm_encoder_parse_of
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b7496f	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7bced2a	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7cbea56	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d3025a	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e40a3a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ead4c6	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fcc797	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe809971a	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80c7c96	extdst_shden
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82318f2	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8295d7d	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82a9a3c	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82cc09a	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85864c7	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85f5772	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86a1393	signature_eval_win
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86faa51	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88fc75b	mtd_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a19e00	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a63c86	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b18552	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b55261	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b68a1b	__mtd_next_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c18f0c	mtd_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8d4aeea	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e8105c	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ee31ca	fetchdecode_get_fetcheco
+EXPORT_SYMBOL_GPL	 vmlinux 0xe904d091	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe917306d	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe918394b	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe918e323	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe932cb78	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94185c0	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9547016	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe967aa43	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe976e419	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe983b03e	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9923f7c	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a7fe16	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b2c86b	layerblend_shdtoksel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cf700d	framegen_wait_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9dc6c32	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ee80a4	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ef13c8	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f359c4	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea22ba35	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2a1711	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xea31631e	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xea33ddc0	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4a09cb	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4b5f37	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5f7710	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7003c9	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7b6fd7	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xea916e54	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xea939725	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xea93bb37	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa2fbd9	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa8e359	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaaa9dd7	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaac5208	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabd1a84	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac7388b	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xead5c8e5	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xead75d61	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xead7ef2f	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae6ebb2	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaeaeed6	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf3aba1	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafd967d	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb030f5f	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb18c9ed	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1a03ff	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb22bed3	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb45c049	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4b65ca	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5883cd	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb663f3c	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6f107a	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb7e2033	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb930330	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9abbee	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba71230	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xebafa20a	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbbc986	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd7e271	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe99881	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xebea6b21	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf6fe1e	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xebfb588a	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0a8a7a	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0ee8d6	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0f8740	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xec25d818	framegen_enable_pixel_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xec358ffb	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xec36640e	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec397739	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0xec49ccb2	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xec4aa66e	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xec627d87	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8716f3	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8da810	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xec927df8	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9335ee	teedev_close_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9b1119	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9bacbf	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xecacbe43	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb1989f	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb2cc4f	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xecbf7fb7	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc2fc37	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc78edd	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xeccb6ad4	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xece3e1da	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xeceb2e15	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf4ee46	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf993c2	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2101a1	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xed291891	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2ccfa5	vscaler_scale_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xed344146	mcpm_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3bb37b	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xed47b1e4	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4a654a	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5844dc	tee_shm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7db80a	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed93c5a1	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9562ab	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9723fb	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb6039f	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd6d2ca	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xeddf697d	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xede0391c	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0xedfbe4bd	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0bbd2c	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0fa9ba	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xee12c45f	extdst_pixengcfg_is_sync_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xee159cdc	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xee19418d	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xee25aca7	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xee2bc7d5	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee4e91e2	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xee5ed5bd	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6f73ef	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xee86f087	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea2a102	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeabdef8	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec2b80f	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xeecfc57a	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed371df	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedb4700	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee5eba2	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefb9c6c	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefe1a41	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0b5c11	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xef213b33	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef4f554f	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6858e9	hid_dump_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef78910e	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7e6e45	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xef83eed1	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef947861	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa246d1	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2b990	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefafde58	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xefbd20f6	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc19ecd	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd79e23	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd9698e	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe13549	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe252af	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff38696	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf006050f	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01a0b0e	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01e70cf	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02653bf	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04c8f9d	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0554d9e	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xf062d603	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf069ce4f	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf072137c	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0957679	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0aa74c4	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ae97a9	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0af5c25	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b00c88	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c58dfa	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c7368a	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ec5f6e	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1075973	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10b0a69	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1154830	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12180fd	imx_1443x_dram_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf121b5cf	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1331665	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15d6dac	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15fc697	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf197a9e7	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b61f77	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b969c1	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c20daa	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c73eb2	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d5eafb	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d9a723	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f47e98	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f8405a	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fad20d	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fae6a3	asic3_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf204c639	__hid_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf20fcebd	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2200391	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22575ac	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24633f2	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xf250b1a5	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26dabdb	sdhci_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf277350e	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27f4ed3	extdst_cnt_err_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a88e42	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b0fe42	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e9b5bf	fetcheco_clipdimensions
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3027c54	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30fda27	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3162055	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31f228c	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36faad3	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38956ec	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38f1288	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39b321e	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c2cfde	dpu_st_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c3dad0	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cd53b2	dpu_aux_cf_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cfc41c	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cff56d	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d1d86f	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d2580d	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e88548	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e9874d	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf40b6f56	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf40b7c8c	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4141d8e	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41c0d17	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf422285f	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4223449	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4258586	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4273c9c	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42d5a0c	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43e9f40	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4410351	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf458ec37	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45e367f	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf461a2ac	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47b266d	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47de486	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e127f	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48185b2	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a489ec	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c3e0fb	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4dd9bb9	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ea9bf2	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ebabd1	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f0bc10	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5090f04	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51bb024	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52e14e9	snmp_fold_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf534f2d1	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53606c8	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55bb8b6	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5683098	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf578570e	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57a73bf	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf582df04	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58688cf	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58c20c1	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5aa1bcc	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c5b65a	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5db4b7a	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5dbc773	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e0d094	hid_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f1ddd6	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f7b01c	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f8a3e6	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fd60d4	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf625a090	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6447115	vscaler_get_block_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf644d93a	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64940b2	imx_dev_clk_hw_pll14xx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64a9aca	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xf651ef4f	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66da194	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf671b8a4	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69962b5	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a45044	extdst_cnt_err_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c0c945	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c17b92	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dbd8	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d804d2	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e33c53	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e9a5d8	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f04c95	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f25e4e	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6fed10a	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70d1f6f	disengcfg_sig_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70e4a4d	preempt_schedule_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70ebad2	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xf726fd3d	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730b39c	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7315a32	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73c700e	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73f6c1f	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7435856	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74fa9b6	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7688d06	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7695f18	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76b0a59	read_current_timer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7799a24	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7857e91	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7871536	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0xf792aa13	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a9ba1e	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7af6f90	extdst_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b436d5	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c42ad0	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cd11e3	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d3406b	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d66bb0	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ea571b	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xf802696c	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8055829	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8070f2f	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf814122c	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8285a7f	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f16b3	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf845d018	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84b11ed	tcon_configure_pc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84c299b	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xf853d500	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8666d1a	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88010de	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf883aabf	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8947821	prg_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf894b339	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a264e9	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a38105	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8aa4ee4	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8ab20aa	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8dacbb0	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9042f2d	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90670bf	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9114f40	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ce637	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ff2f5	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92ae00e	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf965c4d8	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9740f48	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97ca0e1	fetchdecode_rgb_constantcolor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98aa1e0	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99104e5	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf994a50c	framegen_shdtokgen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99ef02c	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b27f27	tee_client_close_session
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b67956	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d129df	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e5953c	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e82f67	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ed0f9a	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ed9b1f	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f45361	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa03858a	sram_exec_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa03c9a4	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa20cbe4	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa2428ed	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa49c9bf	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4e0fbd	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa69d89c	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6d0efa	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e6753	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa70a868	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa765223	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7ae96f	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa82f473	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9b95e1	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9e772a	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab122c4	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaba248a	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad1a3b6	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae62530	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae9f1b4	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0fe99a	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb10560c	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1e50e2	framegen_wait_for_frame_counter_moving
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb24d4ab	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb29267d	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4e7ba4	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb51f520	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb538f3b	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb5ded52	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6d5eca	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb70e177	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb78f827	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb9867bf	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba31983	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba6c3bf	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc0c9eb	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc612ee	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbcd9217	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd59148	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbedeb09	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbef07af	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf1bf51	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf4c9f1	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf92573	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf9531c	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbfb512c	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbff556c	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbff6baf	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc014cb6	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc049ea0	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc073723	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0cda64	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14e50c	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc37a503	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3f7f0a	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc85ba6f	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc93cbd7	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb1506a	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb841c3	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcbef6c6	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccf7cdc	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd027fc	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd2bc05	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcda26d7	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd01d4d5	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd040770	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0a1bc6	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd175f17	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd207ca7	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd2923a6	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd3f9d02	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd51e4fe	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5c75ff	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd8909ec	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb90e60	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc6354d	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde4fb07	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde9154d	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdea39d7	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0bbbd2	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe19a9dc	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1a28cd	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1eb6e1	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29b8e1	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29d810	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3bf4e1	put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe45cdfd	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe472238	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7d7e01	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe9146a8	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea11d3a	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea1bddf	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb8aca3	prg_set_blit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec4a7ba	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec95bab	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed0408e	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef307b0	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xfefc21f3	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff37c05c	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3a7d0f	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5fc1ee	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xff75998a	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xff79be68	tcon_set_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff897fcf	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9a0cff	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xffa79705	fb_sys_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb9596a	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xffbcd4fd	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc218dc	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc98e82	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd88267	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff2fba5	pinctrl_add_gpio_range
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0435f433	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2c425fa5	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x321cef85	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3971aebd	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3fc1dd6d	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4bd69342	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x558a63e1	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x55e3df12	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5753c4fc	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5a305648	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x72ee7637	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7dc8c8e9	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x81177010	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x87f98d17	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8e9067e1	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb7ae9f62	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb9022482	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc4a9bab0	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd5bc753f	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xda1e78b3	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xdda3467a	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf3db64b8	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf6698678	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfc3128f2	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.ein/abi/armhf/ein.compiler
+++ linux-ein-5.4.0/debian.ein/abi/armhf/ein.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.ein/abi/armhf/ein.modules
+++ linux-ein-5.4.0/debian.ein/abi/armhf/ein.modules
@@ -0,0 +1,4179 @@
+3c574_cs
+3c589_cs
+6lowpan
+6pack
+8021q
+8250_aspeed_vuart
+8250_dw
+8250_men_mcb
+8255
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a3d
+a8293
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+ac97_bus
+acecad
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16480
+adis_lib
+adjd_s311
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm9240
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7511_drm
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci_ceva
+ahci_platform
+ahci_qoriq
+aiptek
+aircable
+airspy
+ak8974
+ak8975
+al3320a
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+am2315
+amc6821
+amd
+amgis_m4_rpmsg_devices
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+ansi_cprng
+anubis
+anybuss_core
+aoe
+apbps2
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc4
+arc_ps2
+arc_uart
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arm_big_little
+arm_scpi
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ashmem_linux
+asix
+aspeed-pwm-tacho
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_sdio
+ath10k_usb
+ath3k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atlas-ph-sensor
+atm
+atmel-flexcom
+atmel-hlcdc
+atmel_captouch
+atmel_mxt_ts
+atmtcp
+atusb
+atxp1
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+autofs4
+ax25
+ax88179_178a
+ax88796
+ax88796b
+axis-fifo
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b2c2-flexcop
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-keypad
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm63xx_uart
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd70528-regulator
+bd70528_wdt
+bd9571mwv
+bd9571mwv-regulator
+befs
+belkin_sa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bnep
+bonding
+bpa10x
+bpck
+bpck6
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb_nand
+brcmutil
+brd
+bridge
+bsd_comp
+btbcm
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+c67x00
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence-quadspi
+cadence_wdt
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-raw
+cap11xx
+capi
+carl9170
+cast5_generic
+cast6_generic
+cast_common
+catc
+cb710
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns_mhdp_drmcore
+cdns_mhdp_imx
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chipone_icn8318
+chnl_net
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+clip
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-max77686
+clk-max9485
+clk-palmas
+clk-pwm
+clk-rk808
+clk-s2mps11
+clk-scpi
+clk-si514
+clk-si5351
+clk-si544
+clk-si570
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cobra
+coda
+coda-vpu
+colibri-vf50-ts
+comedi
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_test
+comedi_usb
+comm
+configs
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cpufreq_conservative
+cpufreq_powersave
+cpufreq_userspace
+cramfs
+crc-itu-t
+crc32-arm-ce
+crc4
+crc64
+crc7
+crc8
+crct10dif-arm-ce
+crypto_engine
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx24113
+cx24116
+cx24120
+cx24123
+cx25840
+cx82310_eth
+cxacru
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cy8ctmg110_ts
+cyapatp
+cyberjack
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+davicom
+db9
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+dfl
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm9000
+dm9601
+dmard06
+dmard09
+dmard10
+dme1737
+dmi-sysfs
+dnet
+docg3
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+drbd
+drm_mipi_dbi
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsa_loop
+dsbr100
+dstr
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-core
+dvb-pll
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_usb_v2
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-gp-audio
+dw-hdmi-i2s-audio
+dw_dmac
+dw_dmac_core
+dw_mmc
+dw_mmc-exynos
+dw_mmc-k3
+dw_mmc-pltfm
+dw_wdt
+dwc-xlgmac
+dwc2
+dwc3
+dwc3-haps
+dwc3-of-simple
+dwmac-dwc-qos-eth
+dwmac-generic
+dynapro
+e3x0-button
+e4000
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efivarfs
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-mxc
+ehci-platform
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_usb
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+envelope-detector
+epat
+epia
+eql
+erofs
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+et1011c
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+failover
+fakelb
+fan53555
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fec
+ff-memless
+fieldbus_dev
+fit2
+fit3
+flexcan
+fm_drv
+fmvj18x_cs
+fotg210-hcd
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-gpio
+fsi-master-hub
+fsi-scom
+fsl-edma
+fsl-edma-common
+fsl-imx-ldb
+fsl-mph-dr-of
+fsl-qdma
+fsl_lpuart
+fsl_pq_mdio
+ftdi-elan
+ftdi_sio
+ftgmac100
+ftl
+ftm-quaddec
+ftmac100
+ftsteutates
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_hid
+g_mass_storage
+g_midi
+g_multi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+galcore
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+geneve
+gf2k
+gfs2
+ghash-arm-ce
+gigaset
+gl518sm
+gl520sm
+gl620a
+gluebi
+gmsl-max9286
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-arizona
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-ir-recv
+gpio-ir-tx
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-mockup
+gpio-pcf857x
+gpio-pisosr
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpu-sched
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs_fpga
+gs_usb
+gsc-hwmon
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hampshire
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdpvr
+hfcsusb
+hfs
+hfsplus
+hi311x
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi8435
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hip04_eth
+hisi_femac
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hostap
+hp03
+hp206c
+hpfs
+hpilo
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hx711
+hx8357
+hx8357d
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-pca
+i2c-arb-gpio-challenge
+i2c-cbus-gpio
+i2c-demux-pinctrl
+i2c-diolan-u2c
+i2c-dln2
+i2c-emev2
+i2c-gpio
+i2c-hid
+i2c-kempld
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-simtec
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-viperboard
+i2c-xiic
+i3c
+ib_cm
+ib_core
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+ice40-spi
+icp
+icplus
+ics932s401
+idma64
+idmouse
+idt_89hpesx
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igorplugusb
+iguanair
+iio-mux
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+imm
+imon
+imon_raw
+impa7
+ims-pcu
+imx-dma
+imx-dpu-crtc
+imx-dpu-render
+imx-ipu-v3
+imx-ipuv3-crtc
+imx-lcdif-crtc
+imx-lcdifv3-crtc
+imx-ldb
+imx-mailbox
+imx-pcm-dma
+imx-pxp
+imx-tve
+imx-vdoa
+imx6q-cpufreq
+imx6ul_tsc
+imx7d_adc
+imx7ulp_wdt
+imx8-capture
+imx8-isi-cap
+imx8-isi-hw
+imx8-isi-m2m
+imx8-media-dev
+imx8-mipi-csi2
+imx8-mipi-csi2-sam
+imx8-parallel-csi
+imx8mm_thermal
+imx8mp-ldb
+imx_rpmsg_pingpong
+imx_sc_thermal
+imx_sc_wdt
+imx_thermal
+imxfb
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+input-leds
+input-polldev
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+iproc_nand
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+irps5401
+irq-madera
+irqbypass
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6421
+isl6423
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it6263
+it87
+it913x
+itd1000
+itg3200
+iuu_phoenix
+iw_cm
+ix2505v
+jc42
+jedec_probe
+jffs2
+jfs
+joydev
+joydump
+jsa1212
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kl5kusb105
+kmx61
+kobil_sct
+ks0108
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+lan743x
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+lcdif-mux-display
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pm8058
+leds-pwm
+leds-regulator
+leds-tca6507
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-camera
+ledtrig-netdev
+ledtrig-pattern
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpddr2_nvm
+lpddr_cmds
+lru_cache
+lrw
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m62332
+m88ds3103
+m88rs2000
+mISDN_core
+mISDN_dsp
+m_can
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+machxo2-spi
+macsec
+macvlan
+macvtap
+madera
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+map_absent
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcb
+mcb-lpc
+mcba_usb
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio-bitbang
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+megachips-stdpxxxx-ge-b850v3-fw
+melfas_mip4
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+mi0283qt
+michael_mic
+microchip_t1
+microread
+microread_i2c
+microtek
+minix
+mip6
+mk712
+mkiss
+mlx90614
+mlx90632
+mlxfw
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mms114
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0u
+mt76x2-common
+mt76x2u
+mt9m111
+mt9v011
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtouch
+multipath
+musb_hdrc
+mux-core
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mwifiex
+mwifiex_sdio
+mwifiex_usb
+mx6s_capture
+mxc-jpeg-encdec
+mxc4005
+mxc6255
+mxc_mipi_csi
+mxc_mlb
+mxc_vadc
+mxl111sf-demod
+mxl111sf-tuner
+mxl5005s
+mxl5007t
+mxsfb
+mxuport
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+nau7802
+navman
+nb8800
+nbd
+nbpfaxi
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+net1080
+net2272
+net_failover
+netconsole
+netdevsim
+netlink_diag
+netrom
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+ni_usb6501
+nilfs2
+nixge
+nlmon
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+notifier-error-inject
+npcm750-pwm-fan
+nps_enet
+ns558
+nsh
+ntc_thermistor
+ntfs
+null_blk
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-seiko-43wvfig
+nxp-tja11xx
+nxt200x
+nxt6000
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+of_mmc_spi
+of_xilinx_wdt
+ofb
+ofpart
+ohci-platform
+omap4-keypad
+omfs
+omninet
+on20
+on26
+onenand
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+orangefs
+oti6858
+otm3225a
+ov2640
+ov5640_camera_mipi_v2
+ov5640_camera_v2
+ov7251
+ov7640
+ov9281_camera_mipi_v2
+overlay
+oxu210hp-hcd
+p54common
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panel
+panel-avd-tt101wx-cn-101-a
+panel-feiyang-fy07024di26a30d
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lg4573
+panel-lvds
+panel-orisetech-otm8009a
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-tpo-tpg110
+parade-ps8622
+parallel-display
+paride
+parkbd
+parport
+parport_ax88796
+parport_pc
+pata_of_platform
+pata_platform
+pc87360
+pc87427
+pca9450-regulator
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pci
+pci-pf-stub
+pci-stub
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcnet_cs
+pcrypt
+pcwd_usb
+pd
+pda_power
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-am335x
+phy-am335x-control
+phy-cpcap-usb
+phy-fsl-imx8mp-lvds
+phy-fsl-imx8mq-usb
+phy-fsl-samsung-hdmi
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-mxs-usb
+phy-tahvo
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-rk805
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+plx_pci
+pm-notifier-error-inject
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmic8xxx-keypad
+pmic8xxx-pwrkey
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-beeper
+pwm-fan
+pwm-fsl-ftm
+pwm-imx-tpm
+pwm-imx1
+pwm-imx27
+pwm-ir-tx
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-vibra
+pwm_bl
+pwrseq_sd8787
+pxa27x_udc
+pxe1610
+pxrc
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-emac
+qcom-pm8xxx
+qcom-pm8xxx-xoadc
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_spmi-regulator
+qcserial
+qemu_fw_cfg
+qinfo_probe
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qoriq_thermal
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+quatech2
+quota_tree
+quota_v1
+quota_v2
+r8152
+r8188eu
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radio-keene
+radio-ma901
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rave-sp
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar_can
+rcar_canfd
+rcuperf
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rk805-pwrkey
+rk808
+rk808-regulator
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rohm-bd70528
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rpcrdma
+rpcsec_gss_krb5
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2500usb
+rt2800lib
+rt2800usb
+rt2x00lib
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-as3722
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cpcap
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-efi
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-imxdi
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mxc
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8192c-common
+rtl8192cu
+rtl8xxxu
+rtl_usb
+rtlwifi
+rtsx_pci
+rtsx_usb
+rtsx_usb_ms
+rtw88
+rtwpci
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2mpa01
+s2mps11
+s3fwrn5
+s3fwrn5_i2c
+s5h1409
+s5h1411
+s5h1420
+s5m8767
+s6sy761
+s921
+saa7115
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci-cadence
+sdhci-of-dwcmshc
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfp
+sgp30
+sh_veu
+sha1-arm
+sha1-arm-ce
+sha1-arm-neon
+sha3_generic
+shark2
+sharpslpart
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-core
+sir_ir
+sirf-audio-codec
+sis_i2c
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm_common
+sm_ftl
+sm_test
+smb347-charger
+smc
+smc911x
+smc91c92_cs
+smc91x
+smc_diag
+smm665
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-ak4117
+snd-aloop
+snd-bcd2000
+snd-dummy
+snd-hrtimer
+snd-hwdep
+snd-mixer-oss
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-pcm
+snd-pcm-dmaengine
+snd-pcm-oss
+snd-pdaudiocf
+snd-portman2x4
+snd-rawmidi
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-event
+snd-seq-oss
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asoc-card
+snd-soc-fsl-asrc
+snd-soc-fsl-aud2htx
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-imx-audmix
+snd-soc-imx-audmux
+snd-soc-imx-cdnhdmi
+snd-soc-imx-sgtl5000
+snd-soc-imx-spdif
+snd-soc-inno-rk3036
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas2562
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-nocodec
+snd-sof-of
+snd-timer
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-virmidi
+snd-vx-lib
+snd-vxpocket
+softdog
+softing
+sony-btf-mpx
+soundwire-bus
+sp2
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-oc-tiny
+spi-rockchip
+spi-sc18is602
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssbi
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+ssu100
+st
+st-asc
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+stb0899
+stb6000
+stb6100
+ste10Xp
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+sunkbd
+sunrpc
+sur40
+surface3_spi
+sx8
+sx8654
+sx9500
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_cs
+syscon-reboot-mode
+sysv
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pltfrm
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcm_fc
+tcm_loop
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda7432
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+teranetics
+test-kprobes
+test_bpf
+test_firmware
+test_kmod
+test_module
+test_power
+test_static_key_base
+test_static_keys
+test_sysctl
+test_udelay
+test_user_copy
+tgr192
+thermal-generic-adc
+thmc50
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tfp410
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_hecc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tilcdc
+timeriomem-rng
+tipc
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc
+tmio_mmc_core
+tmio_nand
+tmiofb
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+touchit213
+touchright
+touchwin
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217
+tps65217-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+trancevibrator
+trf7970a
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusbir
+ttynull
+tua9001
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tve200_drm
+tveeprom
+tvp5150
+tw2804
+tw9903
+tw9906
+twidjoy
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pltfrm
+uhid
+uio
+uio_dmem_genirq
+uio_pdrv_genirq
+uio_pruss
+uleds
+ulpi
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd78f0730
+us5182d
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+vesta_expansion
+vesta_overlaymgr
+veth
+vf610_adc
+vf610_dac
+vfio
+vfio-pci
+vfio_iommu_type1
+vfio_virqfd
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-velocity
+vicodec
+video-mux
+videobuf-core
+videobuf-dma-contig
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_crypto
+virtio_input
+virtio_net
+virtio_scsi
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmk80xx
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vrf
+vringh
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6656_stage
+vub300
+vxcan
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+warrior
+wcn36xx
+wdt87xx_i2c
+whiteheat
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgmac_mdio
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xirc2ps_cs
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xz_dec_test
+yam
+yealink
+yurex
+z3fold
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
--- linux-ein-5.4.0.orig/debian.ein/abi/armhf/ein.retpoline
+++ linux-ein-5.4.0/debian.ein/abi/armhf/ein.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.ein/abi/fwinfo
+++ linux-ein-5.4.0/debian.ein/abi/fwinfo
@@ -0,0 +1,438 @@
+firmware:       3826.arm
+firmware:       6fire/dmx6fireap.ihx
+firmware:       6fire/dmx6firecf.bin
+firmware:       6fire/dmx6firel2.ihx
+firmware:       BCM2033-FW.bin
+firmware:       BCM2033-MD.hex
+firmware:       ar5523.bin
+firmware:       ath10k/QCA6174/hw2.1/board-2.bin
+firmware:       ath10k/QCA6174/hw2.1/board.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-4.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/board-2.bin
+firmware:       ath10k/QCA6174/hw3.0/board.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-4.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-6.bin
+firmware:       ath10k/QCA9377/hw1.0/board.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-6.bin
+firmware:       ath10k/QCA9887/hw1.0/board-2.bin
+firmware:       ath10k/QCA9887/hw1.0/board.bin
+firmware:       ath10k/QCA9887/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA988X/hw2.0/board-2.bin
+firmware:       ath10k/QCA988X/hw2.0/board.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-2.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-3.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-4.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-5.bin
+firmware:       ath3k-1.fw
+firmware:       ath6k/AR6003/hw2.0/athwlan.bin.z77
+firmware:       ath6k/AR6003/hw2.0/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.0/bdata.bin
+firmware:       ath6k/AR6003/hw2.0/data.patch.bin
+firmware:       ath6k/AR6003/hw2.0/otp.bin.z77
+firmware:       ath6k/AR6003/hw2.1.1/athwlan.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.bin
+firmware:       ath6k/AR6003/hw2.1.1/data.patch.bin
+firmware:       ath6k/AR6003/hw2.1.1/otp.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.bin
+firmware:       ath6k/AR6004/hw1.0/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.bin
+firmware:       ath6k/AR6004/hw1.1/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.2/bdata.bin
+firmware:       ath6k/AR6004/hw1.2/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.3/bdata.bin
+firmware:       ath6k/AR6004/hw1.3/fw.ram.bin
+firmware:       ath9k_htc/htc_7010-1.4.0.fw
+firmware:       ath9k_htc/htc_9271-1.4.0.fw
+firmware:       atmel_at76c503-i3861.bin
+firmware:       atmel_at76c503-i3863.bin
+firmware:       atmel_at76c503-rfmd-acc.bin
+firmware:       atmel_at76c503-rfmd.bin
+firmware:       atmel_at76c505-rfmd.bin
+firmware:       atmel_at76c505-rfmd2958.bin
+firmware:       atmel_at76c505a-rfmd2958.bin
+firmware:       atmel_at76c505amx-rfmd.bin
+firmware:       atsc_denver.inp
+firmware:       b43/ucode11.fw
+firmware:       b43/ucode13.fw
+firmware:       b43/ucode14.fw
+firmware:       b43/ucode15.fw
+firmware:       b43/ucode16_lp.fw
+firmware:       b43/ucode16_mimo.fw
+firmware:       b43/ucode24_lcn.fw
+firmware:       b43/ucode25_lcn.fw
+firmware:       b43/ucode25_mimo.fw
+firmware:       b43/ucode26_mimo.fw
+firmware:       b43/ucode29_mimo.fw
+firmware:       b43/ucode30_mimo.fw
+firmware:       b43/ucode33_lcn40.fw
+firmware:       b43/ucode40.fw
+firmware:       b43/ucode42.fw
+firmware:       b43/ucode5.fw
+firmware:       b43/ucode9.fw
+firmware:       b43legacy/ucode2.fw
+firmware:       b43legacy/ucode4.fw
+firmware:       bfubase.frm
+firmware:       brcm/bcm43xx-0.fw
+firmware:       brcm/bcm43xx_hdr-0.fw
+firmware:       brcm/brcmfmac43012-sdio.bin
+firmware:       brcm/brcmfmac43143-sdio.bin
+firmware:       brcm/brcmfmac43143.bin
+firmware:       brcm/brcmfmac43236b.bin
+firmware:       brcm/brcmfmac43241b0-sdio.bin
+firmware:       brcm/brcmfmac43241b4-sdio.bin
+firmware:       brcm/brcmfmac43241b5-sdio.bin
+firmware:       brcm/brcmfmac43242a.bin
+firmware:       brcm/brcmfmac4329-sdio.bin
+firmware:       brcm/brcmfmac4330-sdio.bin
+firmware:       brcm/brcmfmac4334-sdio.bin
+firmware:       brcm/brcmfmac43340-sdio.bin
+firmware:       brcm/brcmfmac4335-sdio.bin
+firmware:       brcm/brcmfmac43362-sdio.bin
+firmware:       brcm/brcmfmac4339-sdio.bin
+firmware:       brcm/brcmfmac43430-sdio.bin
+firmware:       brcm/brcmfmac43430a0-sdio.bin
+firmware:       brcm/brcmfmac43455-sdio.bin
+firmware:       brcm/brcmfmac43456-sdio.bin
+firmware:       brcm/brcmfmac4350-pcie.bin
+firmware:       brcm/brcmfmac4350c2-pcie.bin
+firmware:       brcm/brcmfmac4354-sdio.bin
+firmware:       brcm/brcmfmac4356-pcie.bin
+firmware:       brcm/brcmfmac4356-sdio.bin
+firmware:       brcm/brcmfmac43569.bin
+firmware:       brcm/brcmfmac43570-pcie.bin
+firmware:       brcm/brcmfmac4358-pcie.bin
+firmware:       brcm/brcmfmac4359-pcie.bin
+firmware:       brcm/brcmfmac43602-pcie.bin
+firmware:       brcm/brcmfmac4365b-pcie.bin
+firmware:       brcm/brcmfmac4365c-pcie.bin
+firmware:       brcm/brcmfmac4366b-pcie.bin
+firmware:       brcm/brcmfmac4366c-pcie.bin
+firmware:       brcm/brcmfmac4371-pcie.bin
+firmware:       brcm/brcmfmac4373-sdio.bin
+firmware:       brcm/brcmfmac4373.bin
+firmware:       carl9170-1.fw
+firmware:       cis/3CCFEM556.cis
+firmware:       cis/3CXEM556.cis
+firmware:       cis/COMpad2.cis
+firmware:       cis/COMpad4.cis
+firmware:       cis/DP83903.cis
+firmware:       cis/LA-PCM.cis
+firmware:       cis/MT5634ZLX.cis
+firmware:       cis/NE2K.cis
+firmware:       cis/PCMLM28.cis
+firmware:       cis/PE-200.cis
+firmware:       cis/PE520.cis
+firmware:       cis/RS-COM-2P.cis
+firmware:       cis/SW_555_SER.cis
+firmware:       cis/SW_7xx_SER.cis
+firmware:       cis/SW_8xx_SER.cis
+firmware:       cis/tamarack.cis
+firmware:       cmmb_ming_app.inp
+firmware:       cmmb_vega_12mhz.inp
+firmware:       cmmb_venice_12mhz.inp
+firmware:       cpia2/stv0672_vp4.bin
+firmware:       cypress/cyfmac43439-sdio.bin
+firmware:       dvb-demod-m88ds3103.fw
+firmware:       dvb-demod-m88rs6000.fw
+firmware:       dvb-demod-mn88472-02.fw
+firmware:       dvb-demod-mn88473-01.fw
+firmware:       dvb-demod-si2165.fw
+firmware:       dvb-demod-si2168-a20-01.fw
+firmware:       dvb-demod-si2168-a30-01.fw
+firmware:       dvb-demod-si2168-b40-01.fw
+firmware:       dvb-demod-si2168-d60-01.fw
+firmware:       dvb-fe-af9013.fw
+firmware:       dvb-fe-drxj-mc-1.0.8.fw
+firmware:       dvb-fe-ds3000.fw
+firmware:       dvb-fe-tda10071.fw
+firmware:       dvb-fe-xc4000-1.4.1.fw
+firmware:       dvb-fe-xc4000-1.4.fw
+firmware:       dvb-fe-xc5000-1.6.114.fw
+firmware:       dvb-fe-xc5000c-4.1.30.7.fw
+firmware:       dvb-tuner-si2141-a10-01.fw
+firmware:       dvb-tuner-si2157-a30-01.fw
+firmware:       dvb-tuner-si2158-a20-01.fw
+firmware:       dvb-usb-af9015.fw
+firmware:       dvb-usb-af9035-02.fw
+firmware:       dvb-usb-dib0700-1.20.fw
+firmware:       dvb-usb-dw2101.fw
+firmware:       dvb-usb-dw2102.fw
+firmware:       dvb-usb-dw2104.fw
+firmware:       dvb-usb-dw3101.fw
+firmware:       dvb-usb-ec168.fw
+firmware:       dvb-usb-it9135-01.fw
+firmware:       dvb-usb-it9135-02.fw
+firmware:       dvb-usb-it9303-01.fw
+firmware:       dvb-usb-lme2510-lg.fw
+firmware:       dvb-usb-lme2510-s0194.fw
+firmware:       dvb-usb-lme2510c-lg.fw
+firmware:       dvb-usb-lme2510c-rs2000.fw
+firmware:       dvb-usb-lme2510c-s0194.fw
+firmware:       dvb-usb-lme2510c-s7395.fw
+firmware:       dvb-usb-p1100.fw
+firmware:       dvb-usb-p7500.fw
+firmware:       dvb-usb-s630.fw
+firmware:       dvb-usb-s660.fw
+firmware:       dvb-usb-terratec-h7-az6007.fw
+firmware:       dvb_nova_12mhz.inp
+firmware:       dvb_nova_12mhz_b0.inp
+firmware:       dvb_rio.inp
+firmware:       dvbh_rio.inp
+firmware:       e100/d101m_ucode.bin
+firmware:       e100/d101s_ucode.bin
+firmware:       e100/d102e_ucode.bin
+firmware:       edgeport/boot.fw
+firmware:       edgeport/boot2.fw
+firmware:       edgeport/down.fw
+firmware:       edgeport/down2.fw
+firmware:       edgeport/down3.bin
+firmware:       emi26/bitstream.fw
+firmware:       emi26/firmware.fw
+firmware:       emi26/loader.fw
+firmware:       emi62/bitstream.fw
+firmware:       emi62/loader.fw
+firmware:       emi62/spdif.fw
+firmware:       ene-ub6250/ms_init.bin
+firmware:       ene-ub6250/ms_rdwr.bin
+firmware:       ene-ub6250/msp_rdwr.bin
+firmware:       ene-ub6250/sd_init1.bin
+firmware:       ene-ub6250/sd_init2.bin
+firmware:       ene-ub6250/sd_rdwr.bin
+firmware:       f2255usb.bin
+firmware:       fm_radio.inp
+firmware:       fm_radio_rio.inp
+firmware:       fw.ram.bin
+firmware:       go7007/go7007fw.bin
+firmware:       go7007/go7007tv.bin
+firmware:       go7007/lr192.fw
+firmware:       go7007/px-m402u.fw
+firmware:       go7007/px-tv402u.fw
+firmware:       go7007/s2250-1.fw
+firmware:       go7007/s2250-2.fw
+firmware:       go7007/wis-startrek.fw
+firmware:       i1480-phy-0.0.bin
+firmware:       i1480-pre-phy-0.0.bin
+firmware:       i1480-usb-0.0.bin
+firmware:       i2400m-fw-usb-1.5.sbcf
+firmware:       i6050-fw-usb-1.5.sbcf
+firmware:       intel/ibt-11-5.ddc
+firmware:       intel/ibt-11-5.sfi
+firmware:       intel/ibt-12-16.ddc
+firmware:       intel/ibt-12-16.sfi
+firmware:       isdbt_nova_12mhz.inp
+firmware:       isdbt_nova_12mhz_b0.inp
+firmware:       isdbt_pele.inp
+firmware:       isdbt_rio.inp
+firmware:       isight.fw
+firmware:       isl3886usb
+firmware:       isl3887usb
+firmware:       kaweth/new_code.bin
+firmware:       kaweth/new_code_fix.bin
+firmware:       kaweth/trigger_code.bin
+firmware:       kaweth/trigger_code_fix.bin
+firmware:       keyspan/mpr.fw
+firmware:       keyspan/usa18x.fw
+firmware:       keyspan/usa19.fw
+firmware:       keyspan/usa19qi.fw
+firmware:       keyspan/usa19qw.fw
+firmware:       keyspan/usa19w.fw
+firmware:       keyspan/usa28.fw
+firmware:       keyspan/usa28x.fw
+firmware:       keyspan/usa28xa.fw
+firmware:       keyspan/usa28xb.fw
+firmware:       keyspan/usa49w.fw
+firmware:       keyspan/usa49wlc.fw
+firmware:       keyspan_pda/keyspan_pda.fw
+firmware:       keyspan_pda/xircom_pgs.fw
+firmware:       ks7010sd.rom
+firmware:       lantiq/xrx200_phy11g_a14.bin
+firmware:       lantiq/xrx200_phy11g_a22.bin
+firmware:       lantiq/xrx200_phy22f_a14.bin
+firmware:       lantiq/xrx200_phy22f_a22.bin
+firmware:       lantiq/xrx300_phy11g_a21.bin
+firmware:       lantiq/xrx300_phy22f_a21.bin
+firmware:       lattice-ecp3.bit
+firmware:       lbtf_usb.bin
+firmware:       lgs8g75.fw
+firmware:       libertas/gspi8385.bin
+firmware:       libertas/gspi8385_helper.bin
+firmware:       libertas/gspi8385_hlp.bin
+firmware:       libertas/gspi8686.bin
+firmware:       libertas/gspi8686_hlp.bin
+firmware:       libertas/gspi8686_v9.bin
+firmware:       libertas/gspi8686_v9_helper.bin
+firmware:       libertas/gspi8688.bin
+firmware:       libertas/gspi8688_helper.bin
+firmware:       libertas/sd8385.bin
+firmware:       libertas/sd8385_helper.bin
+firmware:       libertas/sd8686_v8.bin
+firmware:       libertas/sd8686_v8_helper.bin
+firmware:       libertas/sd8686_v9.bin
+firmware:       libertas/sd8686_v9_helper.bin
+firmware:       libertas/sd8688.bin
+firmware:       libertas/sd8688_helper.bin
+firmware:       libertas/usb8388.bin
+firmware:       libertas/usb8388_v5.bin
+firmware:       libertas/usb8388_v9.bin
+firmware:       libertas/usb8682.bin
+firmware:       mediatek/mt7610e.bin
+firmware:       mediatek/mt7610u.bin
+firmware:       mediatek/mt7622pr2h.bin
+firmware:       mediatek/mt7663pr2h.bin
+firmware:       mediatek/mt7668pr2h.bin
+firmware:       moxa/moxa-1110.fw
+firmware:       moxa/moxa-1130.fw
+firmware:       moxa/moxa-1131.fw
+firmware:       moxa/moxa-1150.fw
+firmware:       moxa/moxa-1151.fw
+firmware:       mrvl/sd8688.bin
+firmware:       mrvl/sd8688_helper.bin
+firmware:       mrvl/sd8786_uapsta.bin
+firmware:       mrvl/sd8787_uapsta.bin
+firmware:       mrvl/sd8797_uapsta.bin
+firmware:       mrvl/sd8887_uapsta.bin
+firmware:       mrvl/sd8897_uapsta.bin
+firmware:       mrvl/sd8987_uapsta.bin
+firmware:       mrvl/sdsd8977_combo_v2.bin
+firmware:       mrvl/sdsd8997_combo_v4.bin
+firmware:       mrvl/usb8766_uapsta.bin
+firmware:       mrvl/usb8797_uapsta.bin
+firmware:       mrvl/usb8801_uapsta.bin
+firmware:       mrvl/usbusb8997_combo_v4.bin
+firmware:       mt7601u.bin
+firmware:       mt7662.bin
+firmware:       mt7662_rom_patch.bin
+firmware:       mts_cdma.fw
+firmware:       mts_edge.fw
+firmware:       mts_gsm.fw
+firmware:       mts_mt9234mu.fw
+firmware:       mts_mt9234zba.fw
+firmware:       ositech/Xilinx7OD.bin
+firmware:       prism2_ru.fw
+firmware:       rs9113_wlan_qspi.rps
+firmware:       rt2870.bin
+firmware:       rt73.bin
+firmware:       rtl_bt/rtl8723a_fw.bin
+firmware:       rtl_bt/rtl8723b_config.bin
+firmware:       rtl_bt/rtl8723b_fw.bin
+firmware:       rtl_bt/rtl8723bs_config.bin
+firmware:       rtl_bt/rtl8723bs_fw.bin
+firmware:       rtl_bt/rtl8723ds_config.bin
+firmware:       rtl_bt/rtl8723ds_fw.bin
+firmware:       rtl_bt/rtl8761a_config.bin
+firmware:       rtl_bt/rtl8761a_fw.bin
+firmware:       rtl_bt/rtl8821a_config.bin
+firmware:       rtl_bt/rtl8821a_fw.bin
+firmware:       rtl_bt/rtl8822b_config.bin
+firmware:       rtl_bt/rtl8822b_fw.bin
+firmware:       rtlwifi/rtl8188eufw.bin
+firmware:       rtlwifi/rtl8192cufw.bin
+firmware:       rtlwifi/rtl8192cufw_A.bin
+firmware:       rtlwifi/rtl8192cufw_B.bin
+firmware:       rtlwifi/rtl8192cufw_TMSC.bin
+firmware:       rtlwifi/rtl8192eu_nic.bin
+firmware:       rtlwifi/rtl8712u.bin
+firmware:       rtlwifi/rtl8723aufw_A.bin
+firmware:       rtlwifi/rtl8723aufw_B.bin
+firmware:       rtlwifi/rtl8723aufw_B_NoBT.bin
+firmware:       rtlwifi/rtl8723bu_bt.bin
+firmware:       rtlwifi/rtl8723bu_nic.bin
+firmware:       rtw88/rtw8822c_fw.bin
+firmware:       rtw88/rtw8822c_wow_fw.bin
+firmware:       sd8385.bin
+firmware:       sd8385_helper.bin
+firmware:       sd8686.bin
+firmware:       sd8686_helper.bin
+firmware:       sd8688.bin
+firmware:       sd8688_helper.bin
+firmware:       sms1xxx-hcw-55xxx-dvbt-02.fw
+firmware:       sms1xxx-hcw-55xxx-isdbt-02.fw
+firmware:       sms1xxx-nova-a-dvbt-01.fw
+firmware:       sms1xxx-nova-b-dvbt-01.fw
+firmware:       sms1xxx-stellar-dvbt-01.fw
+firmware:       tdmb_denver.inp
+firmware:       tdmb_nova_12mhz.inp
+firmware:       tdmb_nova_12mhz_b0.inp
+firmware:       ti-connectivity/wl1251-fw.bin
+firmware:       ti-connectivity/wl1251-nvs.bin
+firmware:       ti-connectivity/wl127x-fw-5-mr.bin
+firmware:       ti-connectivity/wl127x-fw-5-plt.bin
+firmware:       ti-connectivity/wl127x-fw-5-sr.bin
+firmware:       ti-connectivity/wl128x-fw-5-mr.bin
+firmware:       ti-connectivity/wl128x-fw-5-plt.bin
+firmware:       ti-connectivity/wl128x-fw-5-sr.bin
+firmware:       ti-connectivity/wl18xx-fw-4.bin
+firmware:       ti_3410.fw
+firmware:       ti_5052.fw
+firmware:       ueagle-atm/930-fpga.bin
+firmware:       ueagle-atm/CMV4i.bin
+firmware:       ueagle-atm/CMV4i.bin.v2
+firmware:       ueagle-atm/CMV4p.bin
+firmware:       ueagle-atm/CMV4p.bin.v2
+firmware:       ueagle-atm/CMV9i.bin
+firmware:       ueagle-atm/CMV9i.bin.v2
+firmware:       ueagle-atm/CMV9p.bin
+firmware:       ueagle-atm/CMV9p.bin.v2
+firmware:       ueagle-atm/CMVei.bin
+firmware:       ueagle-atm/CMVei.bin.v2
+firmware:       ueagle-atm/CMVep.bin
+firmware:       ueagle-atm/CMVep.bin.v2
+firmware:       ueagle-atm/DSP4i.bin
+firmware:       ueagle-atm/DSP4p.bin
+firmware:       ueagle-atm/DSP9i.bin
+firmware:       ueagle-atm/DSP9p.bin
+firmware:       ueagle-atm/DSPei.bin
+firmware:       ueagle-atm/DSPep.bin
+firmware:       ueagle-atm/adi930.fw
+firmware:       ueagle-atm/eagle.fw
+firmware:       ueagle-atm/eagleI.fw
+firmware:       ueagle-atm/eagleII.fw
+firmware:       ueagle-atm/eagleIII.fw
+firmware:       ueagle-atm/eagleIV.fw
+firmware:       usb8388.bin
+firmware:       usbdux_firmware.bin
+firmware:       usbduxfast_firmware.bin
+firmware:       usbduxsigma_firmware.bin
+firmware:       v4l-cx231xx-avcore-01.fw
+firmware:       v4l-cx23885-avcore-01.fw
+firmware:       v4l-cx23885-enc.fw
+firmware:       v4l-cx25840.fw
+firmware:       v4l-pvrusb2-24xxx-01.fw
+firmware:       v4l-pvrusb2-29xxx-01.fw
+firmware:       v4l-pvrusb2-73xxx-01.fw
+firmware:       vicam/firmware.fw
+firmware:       vntwusb.fw
+firmware:       vx/bd56002.boot
+firmware:       vx/bd563s3.boot
+firmware:       vx/bd563v2.boot
+firmware:       vx/bx_1_vp4.b56
+firmware:       vx/bx_1_vxp.b56
+firmware:       vx/l_1_v22.d56
+firmware:       vx/l_1_vp4.d56
+firmware:       vx/l_1_vx2.d56
+firmware:       vx/l_1_vxp.d56
+firmware:       vx/x1_1_vp4.xlx
+firmware:       vx/x1_1_vx2.xlx
+firmware:       vx/x1_1_vxp.xlx
+firmware:       vx/x1_2_v22.xlx
+firmware:       whiteheat.fw
+firmware:       whiteheat_loader.fw
+firmware:       wlan/prima/WCNSS_qcom_wlan_nv.bin
+firmware:       xc3028-v27.fw
+firmware:       xc3028L-v36.fw
+firmware:       yam/1200.bin
+firmware:       yam/9600.bin
+firmware:       zd1201-ap.fw
+firmware:       zd1201.fw
+firmware:       zd1211/zd1211_ub
+firmware:       zd1211/zd1211_uphr
+firmware:       zd1211/zd1211_ur
+firmware:       zd1211/zd1211b_ub
+firmware:       zd1211/zd1211b_uphr
+firmware:       zd1211/zd1211b_ur
--- linux-ein-5.4.0.orig/debian.ein/abi/version
+++ linux-ein-5.4.0/debian.ein/abi/version
@@ -0,0 +1 @@
+5.4.0-1045.52
--- linux-ein-5.4.0.orig/debian.ein/changelog
+++ linux-ein-5.4.0/debian.ein/changelog
@@ -0,0 +1,17732 @@
+linux-ein (5.4.0-1046.53) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1046.53 -proposed tracker (LP: #2048256)
+
+  * [PE100A/PCIE] Incorrect PCIE Supply Configuration (LP:#2047889)
+    - dt-bindings: imx6q-pcie: Add "vph-supply" for PHY supply voltage
+    - arm64: dts: imx8mq-evk: add one regulator used to power up pcie phy
+    - PCI: imx6: Enable PHY internal regulator when supplied >3V
+    - SAUCE: arm64/dts: pe100a: add a dummy vph for pcie
+
+  * Audio device disappear after playing audio without setting (LP: #2047884)
+    - ASoC: fsl_sai: Don't disable bitclock for i.MX8MP
+
+  [ Ubuntu: 5.4.0-171.189 ]
+
+  * focal/linux: 5.4.0-171.189 -proposed tracker (LP: #2048282)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] remove helper scripts
+    - [Packaging] update annotations scripts
+    - debian/dkms-versions -- update from kernel-versions (main/2024.01.08)
+  * Page fault in RDMA ODP triggers BUG_ON during MMU notifier registration
+    (LP: #2046534)
+    - RDMA/odp: Ensure the mm is still alive before creating an implicit child
+  * Hotplugging SCSI disk in QEMU VM fails (LP: #2047382)
+    - Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
+  * CVE-2023-6040
+    - netfilter: nf_tables: Reject tables of unsupported family
+  * kernel_selftests failures on kernel-P10d-LPAR10.ppc64el.10
+    (LP: #2032641)
+    - selftests: Skip TM tests on synthetic TM implementations
+  * [Debian] autoreconstruct - Do not generate chmod -x for deleted  files
+    (LP: #2045562)
+    - [Debian] autoreconstruct - Do not generate chmod -x for deleted files
+  * CVE-2023-6931
+    - perf/core: Add a new read format to get a number of lost samples
+    - perf: Fix perf_event_validate_size()
+    - perf: Fix perf_event_validate_size() lockdep splat
+  * CVE-2023-6932
+    - ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
+  * CVE-2023-6606
+    - smb: client: fix OOB in smbCalcSize()
+  * CVE-2023-45863
+    - kobject: Fix slab-out-of-bounds in fill_kobj_path()
+  * Focal update: v5.4.259 upstream stable release (LP: #2043724)
+    - RDMA/cxgb4: Check skb value for failure to allocate
+    - lib/test_meminit: fix off-by-one error in test_pages()
+    - pwm: hibvt: Explicitly set .polarity in .get_state()
+    - HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect
+    - quota: Fix slow quotaoff
+    - net: prevent address rewrite in kernel_bind()
+    - drm: etvnaviv: fix bad backport leading to warning
+    - drm/msm/dsi: skip the wait for video mode done if not applicable
+    - ravb: Fix up dma_free_coherent() call in ravb_remove()
+    - ieee802154: ca8210: Fix a potential UAF in ca8210_probe
+    - mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type
+    - xen-netback: use default TX queue size for vifs
+    - drm/vmwgfx: fix typo of sizeof argument
+    - ixgbe: fix crash with empty VF macvlan list
+    - net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn()
+    - nfc: nci: assert requested protocol is valid
+    - workqueue: Override implicit ordered attribute in
+      workqueue_apply_unbound_cpumask()
+    - dmaengine: stm32-mdma: abort resume if no ongoing transfer
+    - usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer
+    - net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read
+    - usb: dwc3: Soft reset phy on probe for host
+    - usb: musb: Get the musb_qh poniter after musb_giveback
+    - usb: musb: Modify the "HWVers" register address
+    - iio: pressure: bmp280: Fix NULL pointer exception
+    - iio: pressure: dps310: Adjust Timeout Settings
+    - iio: pressure: ms5611: ms5611_prom_is_valid false negative bug
+    - mcb: remove is_added flag from mcb_device struct
+    - libceph: use kernel_connect()
+    - ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
+    - Input: powermate - fix use-after-free in powermate_config_complete
+    - Input: psmouse - fix fast_reconnect function for PS/2 mode
+    - Input: xpad - add PXN V900 support
+    - cgroup: Remove duplicates in cgroup v1 tasks file
+    - pinctrl: avoid unsafe code pattern in find_pinctrl()
+    - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
+    - usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call
+    - x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
+    - dmaengine: mediatek: Fix deadlock caused by synchronize_irq()
+    - powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
+    - powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
+    - ravb: Fix use-after-free issue in ravb_tx_timeout_work()
+    - Documentation: sysctl: align cells in second content column
+    - usb: hub: Guard against accesses to uninitialized BOS descriptors
+    - Bluetooth: hci_event: Ignore NULL link key
+    - Bluetooth: Reject connection with the device which has same BD_ADDR
+    - Bluetooth: Fix a refcnt underflow problem for hci_conn
+    - Bluetooth: vhci: Fix race when opening vhci device
+    - Bluetooth: hci_event: Fix coding style
+    - Bluetooth: avoid memcmp() out of bounds warning
+    - ice: fix over-shifted variable
+    - nfc: nci: fix possible NULL pointer dereference in send_acknowledge()
+    - regmap: fix NULL deref on lookup
+    - KVM: x86: Mask LVTPC when handling a PMI
+    - netfilter: nft_payload: fix wrong mac header matching
+    - qed: fix LL2 RX buffer allocation
+    - xfrm: fix a data-race in xfrm_gen_index()
+    - xfrm: interface: use DEV_STATS_INC()
+    - net: ipv4: fix return value check in esp_remove_trailer
+    - net: ipv6: fix return value check in esp_remove_trailer
+    - net: rfkill: gpio: prevent value glitch during probe
+    - tcp: fix excessive TLP and RACK timeouts from HZ rounding
+    - tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb
+    - tun: prevent negative ifindex
+    - ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr
+    - net: usb: smsc95xx: Fix an error code in smsc95xx_reset()
+    - i40e: prevent crash on probe if hw registers have invalid values
+    - net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve
+    - neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section
+    - netfilter: nft_set_rbtree: .deactivate fails if element has expired
+    - net: pktgen: Fix interface flags printing
+    - resource: Add irqresource_disabled()
+    - ACPI: Drop acpi_dev_irqresource_disabled()
+    - ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA
+    - ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks
+    - ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA
+    - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA
+    - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA
+    - ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone
+    - btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1
+    - btrfs: initialize start_slot in btrfs_log_prealloc_extents
+    - i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
+    - overlayfs: set ctime when setting mtime and atime
+    - gpio: timberdale: Fix potential deadlock on &tgpio->lock
+    - ata: libata-eh: Fix compilation warning in ata_eh_link_report()
+    - tracing: relax trace_event_eval_update() execution with cond_resched()
+    - HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
+    - Bluetooth: Avoid redundant authentication
+    - Bluetooth: hci_core: Fix build warnings
+    - wifi: mac80211: allow transmitting EAPOL frames with tainted key
+    - wifi: cfg80211: avoid leaking stack data into trace
+    - regulator/core: Revert "fix kobject release warning and memory leak in
+      regulator_register()"
+    - sky2: Make sure there is at least one frag_addr available
+    - drm: panel-orientation-quirks: Add quirk for One Mix 2S
+    - btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c
+    - HID: multitouch: Add required quirk for Synaptics 0xcd7e device
+    - Bluetooth: hci_event: Fix using memcmp when comparing keys
+    - mtd: rawnand: qcom: Unmap the right resource upon probe failure
+    - mtd: spinand: micron: correct bitmask for ecc status
+    - mtd: physmap-core: Restore map_rom fallback
+    - mmc: core: sdio: hold retuning if sdio in 1-bit mode
+    - mmc: core: Capture correct oemid-bits for eMMC cards
+    - Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
+    - ACPI: irq: Fix incorrect return value in acpi_register_gsi()
+    - USB: serial: option: add Telit LE910C4-WWX 0x1035 composition
+    - USB: serial: option: add entry for Sierra EM9191 with new firmware
+    - USB: serial: option: add Fibocom to DELL custom modem FM101R-GL
+    - s390/pci: fix iommu bitmap allocation
+    - gpio: vf610: set value before the direction to avoid a glitch
+    - ASoC: pxa: fix a memory leak in probe()
+    - phy: mapphone-mdm6600: Fix runtime disable on probe
+    - phy: mapphone-mdm6600: Fix runtime PM for remove
+    - phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
+    - Bluetooth: hci_sock: fix slab oob read in create_monitor_event
+    - Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name
+    - xfrm6: fix inet6_dev refcount underflow problem
+    - Linux 5.4.259
+  * Focal update: v5.4.258 upstream stable release (LP: #2042107)
+    - NFS/pNFS: Report EINVAL errors from connect() to the server
+    - SUNRPC: Mark the cred for revalidation if the server rejects it
+    - tracing: Increase trace array ref count on enable and filter files
+    - ata: libahci: clear pending interrupt status
+    - ext4: remove the 'group' parameter of ext4_trim_extent
+    - ext4: add new helper interface ext4_try_to_trim_range()
+    - ext4: scope ret locally in ext4_try_to_trim_range()
+    - ext4: change s_last_trim_minblks type to unsigned long
+    - ext4: mark group as trimmed only if it was fully scanned
+    - ext4: replace the traditional ternary conditional operator with with
+      max()/min()
+    - ext4: move setting of trimmed bit into ext4_try_to_trim_range()
+    - ext4: do not let fstrim block system suspend
+    - ASoC: meson: spdifin: start hw on dai probe
+    - netfilter: nf_tables: disallow element removal on anonymous sets
+    - bpf: Avoid deadlock when using queue and stack maps from NMI
+    - selftests/tls: Add {} to avoid static checker warning
+    - selftests: tls: swap the TX and RX sockets in some tests
+    - ASoC: imx-audmix: Fix return error with devm_clk_get()
+    - i40e: Fix for persistent lldp support
+    - SAUCE: Revert "UBUNTU: SAUCE: i40e Fix GPF when deleting VMs"
+    - i40e: Remove scheduling while atomic possibility
+    - i40e: Fix warning message and call stack during rmmod i40e driver
+    - i40e: Fix VF VLAN offloading when port VLAN is configured
+    - powerpc/perf/hv-24x7: Update domain value check
+    - dccp: fix dccp_v4_err()/dccp_v6_err() again
+    - net: hns3: add 5ms delay before clear firmware reset irq source
+    - net: bridge: use DEV_STATS_INC()
+    - team: fix null-ptr-deref when team device type is changed
+    - net: rds: Fix possible NULL-pointer dereference
+    - gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
+    - i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
+    - Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
+    - scsi: qla2xxx: Fix update_fcport for current_topology
+    - scsi: qla2xxx: Fix deletion race condition
+    - drm/amd/display: Reinstate LFC optimization
+    - drm/amd/display: Fix LFC multiplier changing erratically
+    - drm/amd/display: prevent potential division by zero errors
+    - ata: libata: disallow dev-initiated LPM transitions to unsupported states
+    - MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
+    - clk: tegra: fix error return case for recalc_rate
+    - ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
+    - bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
+    - xtensa: add default definition for XCHAL_HAVE_DIV32
+    - xtensa: iss/network: make functions static
+    - xtensa: boot: don't add include-dirs
+    - xtensa: boot/lib: fix function prototypes
+    - gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
+    - parisc: sba: Fix compile warning wrt list of SBA devices
+    - parisc: iosapic.c: Fix sparse warnings
+    - parisc: drivers: Fix sparse warning
+    - parisc: irq: Make irq_stack_union static to avoid sparse warning
+    - selftests/ftrace: Correctly enable event in instance-event.tc
+    - ring-buffer: Avoid softlockup in ring_buffer_resize()
+    - ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
+    - spi: nxp-fspi: reset the FLSHxCR1 registers
+    - bpf: Clarify error expectations from bpf_clone_redirect
+    - powerpc/watchpoints: Annotate atomic context in more places
+    - ncsi: Propagate carrier gain/loss events to the NCSI controller
+    - fbdev/sh7760fb: Depend on FB=y
+    - nvme-pci: do not set the NUMA node of device if it has none
+    - watchdog: iTCO_wdt: No need to stop the timer in probe
+    - watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
+    - i40e: improve locking of mac_filter_hash
+    - i40e: always propagate error value in i40e_set_vsi_promisc()
+    - i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc
+    - smack: Record transmuting in smk_transmuted
+    - smack: Retrieve transmuting information in smack_inode_getsecurity()
+    - Smack:- Use overlay inode label in smack_inode_copy_up()
+    - serial: 8250_port: Check IRQ data before use
+    - nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
+    - ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre
+      M70q
+    - ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
+    - i2c: i801: unregister tco_pdev in i801_probe() error path
+    - ring-buffer: Update "shortest_full" in polling
+    - btrfs: properly report 0 avail for very full file systems
+    - net: thunderbolt: Fix TCPv6 GSO checksum calculation
+    - ata: libata-core: Fix ata_port_request_pm() locking
+    - ata: libata-core: Fix port and device removal
+    - ata: libata-core: Do not register PM operations for SAS ports
+    - ata: libata-sata: increase PMP SRST timeout to 10s
+    - fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
+    - rbd: move rbd_dev_refresh() definition
+    - rbd: decouple header read-in from updating rbd_dev->header
+    - rbd: decouple parent info read-in from updating rbd_dev
+    - rbd: take header_rwsem in rbd_dev_refresh() only when updating
+    - Revert "PCI: qcom: Disable write access to read only registers for IP
+      v2.3.3"
+    - scsi: zfcp: Fix a double put in zfcp_port_enqueue()
+    - qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
+    - wifi: mwifiex: Fix tlv_buf_left calculation
+    - net: replace calls to sock->ops->connect() with kernel_connect()
+    - net: prevent rewrite of msg_name in sock_sendmsg()
+    - wifi: iwlwifi: dbg_ini: fix structure packing
+    - wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
+    - drivers/net: process the result of hdlc_open() and add call of hdlc_close()
+      in uhdlc_close()
+    - wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
+    - regmap: rbtree: Fix wrong register marked as in-cache when creating new node
+    - ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
+    - scsi: target: core: Fix deadlock due to recursive locking
+    - NFS4: Trace state recovery operation
+    - NFS: Add a helper nfs_client_for_each_server()
+    - NFSv4: Fix a nfs4_state_manager() race
+    - modpost: add missing else to the "of" check
+    - net: fix possible store tearing in neigh_periodic_work()
+    - ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
+    - net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
+    - net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
+    - net: nfc: llcp: Add lock when modifying device list
+    - netfilter: handle the connecting collision properly in
+      nf_conntrack_proto_sctp
+    - net: stmmac: dwmac-stm32: fix resume on STM32 MCU
+    - tcp: fix quick-ack counting to count actual ACKs of new data
+    - tcp: fix delayed ACKs for MSS boundary condition
+    - sctp: update transport state when processing a dupcook packet
+    - sctp: update hb timer immediately after users change hb_interval
+    - cpupower: add Makefile dependencies for install targets
+    - RDMA/core: Require admin capabilities to set system parameters
+    - IB/mlx4: Fix the size of a buffer in add_port_entries()
+    - gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
+    - gpio: pxa: disable pinctrl calls for MMP_GPIO
+    - RDMA/cma: Fix truncation compilation warning in make_cma_ports
+    - RDMA/uverbs: Fix typo of sizeof argument
+    - RDMA/siw: Fix connection failure handling
+    - RDMA/mlx5: Fix NULL string error
+    - parisc: Restore __ldcw_align for PA-RISC 2.0 processors
+    - NFS: Fix a race in __nfs_list_for_each_server()
+    - ima: rework CONFIG_IMA dependency block
+    - [Config] Update IMA_BLACKLIST_KEYRING and IMA_LOAD_X509
+    - xen/events: replace evtchn_rwlock with RCU
+    - Linux 5.4.258
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 19 Jan 2024 17:10:04 +0800
+
+linux-ein (5.4.0-1045.52) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1045.52 -proposed tracker (LP: #2046958)
+
+  * While playing videos screen goes black and after some period of time it will
+    be restored (LP: #2043226)
+    - SAUCE: drm/panel: avd-tt101wx-cn-101-a: Add media bus format
+    - SAUCE: drm/panel: avd-tt101wx-cn-101-a: Add proper delay after resetting
+      display
+    - SAUCE: drm/panel: avd-tt101wx-cn-101-a: Fix timing when entering/exiting
+      sleep
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 21 Dec 2023 18:41:13 +0800
+
+linux-ein (5.4.0-1044.51) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1044.51 -proposed tracker (LP: #2046115)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] remove helper scripts
+
+  [ Ubuntu: 5.4.0-169.187 ]
+
+  * focal/linux: 5.4.0-169.187 -proposed tracker (LP: #2044375)
+  * USB bus error after upgrading to proposed kernel on lunar, jammy and focal
+    (LP: #2043197)
+    - USB: core: Fix oversight in SuperSpeed initialization
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] update annotations scripts
+
+  [ Ubuntu: 5.4.0-168.186 ]
+
+  * focal/linux: 5.4.0-168.186 -proposed tracker (LP: #2041652)
+  * Focal update: v5.4.257 upstream stable release (LP: #2040284)
+    - erofs: ensure that the post-EOF tails are all zeroed
+    - ARM: pxa: remove use of symbol_get()
+    - mmc: au1xmmc: force non-modular build and remove symbol_get usage
+    - net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
+    - rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
+    - modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
+    - USB: serial: option: add Quectel EM05G variant (0x030e)
+    - USB: serial: option: add FOXCONN T99W368/T99W373 product
+    - HID: wacom: remove the battery when the EKR is off
+    - staging: rtl8712: fix race condition
+    - Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race
+      condition
+    - serial: sc16is7xx: fix bug when first setting GPIO direction
+    - firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
+    - fsi: master-ast-cf: Add MODULE_FIRMWARE macro
+    - nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
+    - nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
+    - pinctrl: amd: Don't show `Invalid config param` errors
+    - 9p: virtio: make sure 'offs' is initialized in zc_request
+    - ASoC: da7219: Flush pending AAD IRQ when suspending
+    - ASoC: da7219: Check for failure reading AAD IRQ events
+    - ethernet: atheros: fix return value check in atl1c_tso_csum()
+    - vxlan: generalize vxlan_parse_gpe_hdr and remove unused args
+    - m68k: Fix invalid .section syntax
+    - s390/dasd: use correct number of retries for ERP requests
+    - s390/dasd: fix hanging device after request requeue
+    - fs/nls: make load_nls() take a const parameter
+    - ASoc: codecs: ES8316: Fix DMIC config
+    - ASoC: atmel: Fix the 8K sample parameter in I2SC master
+    - platform/x86: intel: hid: Always call BTNL ACPI method
+    - platform/x86: huawei-wmi: Silence ambient light sensor
+    - security: keys: perform capable check only on privileged operations
+    - clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
+    - net: usb: qmi_wwan: add Quectel EM05GV2
+    - idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
+    - scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
+    - netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
+    - bnx2x: fix page fault following EEH recovery
+    - sctp: handle invalid error codes without calling BUG()
+    - cifs: add a warning when the in-flight count goes negative
+    - scsi: storvsc: Always set no_report_opcodes
+    - ALSA: seq: oss: Fix racy open/close of MIDI devices
+    - platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE
+      notifications
+    - powerpc/32s: Fix assembler warning about r0
+    - udf: Check consistency of Space Bitmap Descriptor
+    - udf: Handle error when adding extent to a file
+    - Revert "net: macsec: preserve ingress frame ordering"
+    - reiserfs: Check the return value from __getblk()
+    - eventfd: Export eventfd_ctx_do_read()
+    - eventfd: prevent underflow for eventfd semaphores
+    - new helper: lookup_positive_unlocked()
+    - fs: Fix error checking for d_hash_and_lookup()
+    - tmpfs: verify {g,u}id mount options correctly
+    - OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
+    - x86/asm: Make more symbols local
+    - x86/boot: Annotate local functions
+    - x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
+    - perf/imx_ddr: don't enable counter0 if none of 4 counters are used
+    - cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
+    - bpf: Clear the probe_addr for uprobe
+    - tcp: tcp_enter_quickack_mode() should be static
+    - regmap: rbtree: Use alloc_flags for memory allocations
+    - spi: tegra20-sflash: fix to check return value of platform_get_irq() in
+      tegra_sflash_probe()
+    - can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also
+      in case of OOM
+    - wifi: mwifiex: Fix OOB and integer underflow when rx packets
+    - mwifiex: switch from 'pci_' to 'dma_' API
+    - wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
+    - crypto: stm32 - Properly handle pm_runtime_get failing
+    - Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
+    - crypto: caam - fix unchecked return value error
+    - hwrng: iproc-rng200 - use semicolons rather than commas to separate
+      statements
+    - hwrng: iproc-rng200 - Implement suspend and resume calls
+    - lwt: Fix return values of BPF xmit ops
+    - lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
+    - fs: ocfs2: namei: check return value of ocfs2_add_entry()
+    - wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
+    - wifi: mwifiex: Fix missed return in oob checks failed path
+    - wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
+    - wifi: ath9k: protect WMI command response buffer replacement with a lock
+    - wifi: mwifiex: avoid possible NULL skb pointer dereference
+    - wifi: ath9k: use IS_ERR() with debugfs_create_dir()
+    - net: arcnet: Do not call kfree_skb() under local_irq_disable()
+    - mlxsw: i2c: Fix chunk size setting in output mailbox buffer
+    - mlxsw: i2c: Limit single transaction buffer size
+    - netrom: Deny concurrent connect().
+    - drm/bridge: tc358764: Fix debug print parameter order
+    - quota: avoid increasing DQST_LOOKUPS when iterating over dirty/inuse list
+    - quota: factor out dquot_write_dquot()
+    - quota: rename dquot_active() to inode_quota_active()
+    - quota: add new helper dquot_active()
+    - quota: fix dqput() to follow the guarantees dquot_srcu should provide
+    - drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
+    - ARM: dts: BCM53573: Drop nonexistent "default-off" LED trigger
+    - ARM: dts: BCM53573: Add cells sizes to PCIe node
+    - ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
+    - drm/etnaviv: fix dumping of active MMU context
+    - ARM: dts: s3c6410: move fixed clocks under root node in Mini6410
+    - ARM: dts: s3c6410: align node SROM bus node name with dtschema in Mini6410
+    - ARM: dts: s3c64xx: align pinctrl with dtschema
+    - ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
+    - ARM: dts: s5pv210: add RTC 32 KHz clock in SMDKV210
+    - ARM: dts: s5pv210: use defines for IRQ flags in SMDKV210
+    - ARM: dts: s5pv210: correct ethernet unit address in SMDKV210
+    - ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
+    - ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
+    - drm: adv7511: Fix low refresh rate register for ADV7533/5
+    - ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
+    - arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
+    - drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
+    - md/bitmap: don't set max_write_behind if there is no write mostly device
+    - md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
+    - drm/tegra: Remove superfluous error messages around platform_get_irq()
+    - drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
+    - of: unittest: fix null pointer dereferencing in
+      of_unittest_find_node_by_name()
+    - drm/armada: Fix off-by-one error in armada_overlay_get_property()
+    - drm/panel: simple: Add missing connector type and pixel format for AUO
+      T215HVN01
+    - ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
+    - [Config] Update annotations after CONFIG_IMA_TRUSTED_KEYRING removal
+    - drm/msm/mdp5: Don't leak some plane state
+    - smackfs: Prevent underflow in smk_set_cipso()
+    - audit: fix possible soft lockup in __audit_inode_child()
+    - drm/mediatek: Fix potential memory leak if vmap() fail
+    - of: unittest: Fix overlay type in apply/revert check
+    - ALSA: ac97: Fix possible error value of *rac97
+    - ipmi:ssif: Add check for kstrdup
+    - ipmi:ssif: Fix a memory leak when scanning for an adapter
+    - drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
+    - clk: sunxi-ng: Modify mismatched function name
+    - PCI: Mark NVIDIA T4 GPUs to avoid bus reset
+    - PCI: pciehp: Use RMW accessors for changing LNKCTL
+    - PCI/ASPM: Use RMW accessors for changing LNKCTL
+    - clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
+    - powerpc/fadump: reset dump area size if fadump memory reserve fails
+    - PCI: Add #defines for Enter Compliance, Transmit Margin
+    - drm/amdgpu: Correct Transmit Margin masks
+    - drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
+    - drm/amdgpu: Prefer pcie_capability_read_word()
+    - drm/amdgpu: Use RMW accessors for changing LNKCTL
+    - drm/radeon: Correct Transmit Margin masks
+    - drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
+    - drm/radeon: Prefer pcie_capability_read_word()
+    - drm/radeon: Use RMW accessors for changing LNKCTL
+    - wifi: ath10k: Use RMW accessors for changing LNKCTL
+    - nfs/blocklayout: Use the passed in gfp flags
+    - powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
+    - jfs: validate max amount of blocks before allocation.
+    - fs: lockd: avoid possible wrong NULL parameter
+    - NFSD: da_addr_body field missing in some GETDEVICEINFO replies
+    - NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
+    - media: v4l2-fwnode: fix v4l2_fwnode_parse_link handling
+    - media: v4l2-fwnode: simplify v4l2_fwnode_parse_link
+    - media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
+    - drivers: usb: smsusb: fix error handling code in smsusb_init_device
+    - media: dib7000p: Fix potential division by zero
+    - media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
+    - media: cx24120: Add retval check for cx24120_message_send()
+    - media: mediatek: vcodec: Return NULL if no vdec_fb is found
+    - usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
+    - scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
+    - scsi: be2iscsi: Add length check when parsing nlattrs
+    - scsi: qla4xxx: Add length check when parsing nlattrs
+    - serial: sprd: getting port index via serial aliases only
+    - serial: sprd: remove redundant sprd_port cleanup
+    - serial: sprd: Assign sprd_port after initialized to avoid wrong access
+    - serial: sprd: Fix DMA buffer leak issue
+    - x86/APM: drop the duplicate APM_MINOR_DEV macro
+    - scsi: qedf: Do not touch __user pointer in
+      qedf_dbg_stop_io_on_error_cmd_read() directly
+    - scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read()
+      directly
+    - scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read()
+      directly
+    - coresight: tmc: Explicit type conversions to prevent integer overflow
+    - dma-buf/sync_file: Fix docs syntax
+    - driver core: test_async: fix an error code
+    - IB/uverbs: Fix an potential error pointer dereference
+    - iommu/vt-d: Fix to flush cache of PASID directory table
+    - media: go7007: Remove redundant if statement
+    - USB: gadget: f_mass_storage: Fix unused variable warning
+    - media: i2c: ov5640: Configure HVP lines in s_power callback
+    - media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
+    - media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
+    - media: ov2680: Remove auto-gain and auto-exposure controls
+    - media: ov2680: Fix ov2680_bayer_order()
+    - media: ov2680: Fix vflip / hflip set functions
+    - media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
+    - scsi: core: Use 32-bit hostnum in scsi_host_lookup()
+    - scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
+    - serial: tegra: handle clk prepare error in tegra_uart_hw_init()
+    - amba: bus: fix refcount leak
+    - Revert "IB/isert: Fix incorrect release of isert connection"
+    - RDMA/siw: Balance the reference of cep->kref in the error path
+    - RDMA/siw: Correct wrong debug message
+    - HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
+    - HID: multitouch: Correct devm device reference for hidinput input_dev name
+    - x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
+    - tracing: Fix race issue between cpu buffer write and swap
+    - phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
+    - phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
+    - phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
+    - rpmsg: glink: Add check for kstrdup
+    - mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
+    - um: Fix hostaudio build errors
+    - dmaengine: ste_dma40: Add missing IRQ check in d40_probe
+    - cpufreq: Fix the race condition while updating the transition_task of policy
+    - virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
+    - skbuff: skb_segment, Call zero copy functions before using skbuff frags
+    - PM / devfreq: Fix leak in devfreq_dev_release()
+    - ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
+    - ipmi_si: fix a memleak in try_smi_init()
+    - ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
+    - backlight/gpio_backlight: Compare against struct fb_info.device
+    - backlight/bd6107: Compare against struct fb_info.device
+    - backlight/lv5207lp: Compare against struct fb_info.device
+    - xtensa: PMU: fix base address for the newer hardware
+    - media: dvb: symbol fixup for dvb_attach()
+    - ntb: Drop packets when qp link is down
+    - ntb: Clean up tx tail index on link down
+    - ntb: Fix calculation ntb_transport_tx_free_entry()
+    - Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
+    - procfs: block chmod on /proc/thread-self/comm
+    - parisc: Fix /proc/cpuinfo output for lscpu
+    - dlm: fix plock lookup when using multiple lockspaces
+    - dccp: Fix out of bounds access in DCCP error handler
+    - X.509: if signature is unsupported skip validation
+    - net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
+    - fsverity: skip PKCS#7 parser when keyring is empty
+    - pstore/ram: Check start of empty przs during init
+    - s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
+    - crypto: stm32 - fix loop iterating through scatterlist for DMA
+    - cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
+    - sc16is7xx: Set iobase to device index
+    - serial: sc16is7xx: fix broken port 0 uart init
+    - usb: typec: tcpci: clear the fault status bit
+    - udf: initialize newblock to 0
+    - drm: fix double free for gbo in drm_gem_vram_init and drm_gem_vram_create
+    - net/ipv6: SKB symmetric hash should incorporate transport ports
+    - scsi: qla2xxx: fix inconsistent TMF timeout
+    - scsi: qla2xxx: Fix erroneous link up failure
+    - scsi: qla2xxx: Turn off noisy message log
+    - scsi: qla2xxx: Remove unsupported ql2xenabledif option
+    - fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
+    - drm/ast: Fix DRAM init on AST2200
+    - lib/test_meminit: allocate pages up to order MAX_ORDER
+    - parisc: led: Fix LAN receive and transmit LEDs
+    - parisc: led: Reduce CPU overhead for disk & lan LED computation
+    - clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
+    - soc: qcom: qmi_encdec: Restrict string length in decode
+    - NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
+    - kconfig: fix possible buffer overflow
+    - perf annotate bpf: Don't enclose non-debug code with an assert()
+    - x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
+    - perf top: Don't pass an ERR_PTR() directly to perf_session__delete()
+    - watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
+    - pwm: lpc32xx: Remove handling of PWM channels
+    - sctp: annotate data-races around sk->sk_wmem_queued
+    - ipv4: annotate data-races around fi->fib_dead
+    - net: read sk->sk_family once in sk_mc_loop()
+    - igb: disable virtualization features on 82580
+    - veth: Fixing transmit return status for dropped packets
+    - net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
+    - af_unix: Fix data-races around user->unix_inflight.
+    - af_unix: Fix data-race around unix_tot_inflight.
+    - af_unix: Fix data-races around sk->sk_shutdown.
+    - af_unix: Fix data race around sk->sk_err.
+    - kcm: Destroy mutex in kcm_exit_net()
+    - igc: Change IGC_MIN to allow set rx/tx value between 64 and 80
+    - igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
+    - igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
+    - s390/zcrypt: don't leak memory if dev_set_name() fails
+    - idr: fix param name in idr_alloc_cyclic() doc
+    - ip_tunnels: use DEV_STATS_INC()
+    - net: hns3: fix the port information display when sfp is absent
+    - sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
+    - ata: sata_gemini: Add missing MODULE_DESCRIPTION
+    - ata: pata_ftide010: Add missing MODULE_DESCRIPTION
+    - fuse: nlookup missing decrement in fuse_direntplus_link
+    - btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
+    - btrfs: use the correct superblock to compare fsid in btrfs_validate_super
+    - mtd: rawnand: brcmnand: Fix crash during the panic_write
+    - mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
+    - mtd: rawnand: brcmnand: Fix potential false time out warning
+    - perf hists browser: Fix hierarchy mode header
+    - perf tools: Handle old data in PERF_RECORD_ATTR
+    - usb: typec: tcpm: Refactor tcpm_handle_vdm_request payload handling
+    - usb: typec: tcpm: Refactor tcpm_handle_vdm_request
+    - usb: typec: bus: verify partner exists in typec_altmode_attention
+    - ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2
+    - clk: imx8mm: Move 1443X/1416X PLL clock structure to common place
+    - net: ipv4: fix one memleak in __inet_del_ifa()
+    - net: ethernet: mvpp2_main: fix possible OOB write in
+      mvpp2_ethtool_get_rxnfc()
+    - net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in
+      mtk_hwlro_get_fdir_all()
+    - r8152: check budget for r8152_poll()
+    - kcm: Fix memory leak in error path of kcm_sendmsg()
+    - platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors
+    - mlxbf-tmfifo: sparse tags for config access
+    - platform/mellanox: mlxbf-tmfifo: Drop jumbo frames
+    - net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict()
+    - ixgbe: fix timestamp configuration code
+    - kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
+    - drm/amd/display: Fix a bug when searching for insert_above_mpcc
+    - parisc: Drop loops_per_jiffy from per_cpu struct
+    - autofs: fix memory leak of waitqueues in autofs_catatonic_mode
+    - btrfs: output extra debug info if we failed to find an inline backref
+    - locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
+    - ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
+    - kernel/fork: beware of __put_task_struct() calling context
+    - ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
+    - perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
+    - hw_breakpoint: fix single-stepping when using bpf_overflow_handler
+    - devlink: remove reload failed checks in params get/set callbacks
+    - wifi: ath9k: fix printk specifier
+    - wifi: mwifiex: fix fortify warning
+    - crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
+    - tpm_tis: Resend command to recover from data transfer errors
+    - mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
+    - alx: fix OOB-read compiler warning
+    - wifi: mac80211_hwsim: drop short frames
+    - drm/exynos: fix a possible null-pointer dereference due to data race in
+      exynos_drm_crtc_atomic_disable()
+    - bus: ti-sysc: Configure uart quirks for k3 SoC
+    - md: raid1: fix potential OOB in raid1_remove_disk()
+    - ext2: fix datatype of block number in ext2_xattr_set2()
+    - fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
+    - jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
+    - powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
+    - media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
+    - media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
+    - media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
+    - media: anysee: fix null-ptr-deref in anysee_master_xfer
+    - media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
+    - media: tuners: qt1010: replace BUG_ON with a regular error
+    - media: pci: cx23885: replace BUG with error return
+    - usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
+    - scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
+    - serial: cpm_uart: Avoid suspicious locking
+    - media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
+    - kobject: Add sanity check for kset->kobj.ktype in kset_register()
+    - tools features: Add feature test to check if libbfd has buildid support
+    - perf jevents: Make build dependency on test JSONs
+    - perf tools: Add an option to build without libbfd
+    - btrfs: move btrfs_pinned_by_swapfile prototype into volumes.h
+    - btrfs: add a helper to read the superblock metadata_uuid
+    - btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
+    - selftests: tracing: Fix to unmount tracefs for recovering environment
+    - md/raid1: fix error: ISO C90 forbids mixed declarations
+    - attr: block mode changes of symlinks
+    - btrfs: fix lockdep splat and potential deadlock after failure running
+      delayed items
+    - tracing: Have current_trace inc the trace array ref count
+    - tracing: Have option files inc the trace array ref count
+    - nfsd: fix change_info in NFSv4 RENAME replies
+    - tracefs: Add missing lockdown check to tracefs_create_dir()
+    - i2c: aspeed: Reset the i2c controller when timeout occurs
+    - scsi: megaraid_sas: Fix deadlock on firmware crashdump
+    - ext4: fix rec_len verify error
+    - mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
+    - drm/amdgpu: fix amdgpu_cs_p1_user_fence
+    - Linux 5.4.257
+  * Focal update: v5.4.257 upstream stable release (LP: #2040284) //
+    CVE-2023-39189
+    - netfilter: nfnetlink_osf: avoid OOB read
+  * CVE-2023-45871
+    - igb: set max size RX buffer when store bad packet is enabled
+  * CVE-2023-39193
+    - netfilter: xt_sctp: validate the flag_info count
+  * CVE-2023-39192
+    - netfilter: xt_u32: validate user space input
+  * CVE-2023-31085
+    - ubi: Refuse attaching if mtd's erasesize is 0
+  * CVE-2023-5717
+    - perf: Disallow mis-matched inherited group reads
+  * CVE-2023-5178
+    - nvmet-tcp: move send/recv error handling in the send/recv methods instead of
+      call-sites
+    - nvmet-tcp: Fix a possible UAF in queue intialization setup
+  * CVE-2023-42754
+    - ipv4: fix null-deref in ipv4_link_failure
+  * Focal update: v5.4.256 upstream stable release (LP: #2039446)
+    - powerpc/pmac/smp: Avoid unused-variable warnings
+    - powerpc/pmac/smp: Drop unnecessary volatile qualifier
+    - Revert "MIPS: Alchemy: fix dbdma2"
+    - Linux 5.4.256
+  * Focal update: v5.4.255 upstream stable release (LP: #2039440)
+    - mmc: sdhci_f_sdh30: convert to devm_platform_ioremap_resource
+    - mmc: sdhci-f-sdh30: Replace with sdhci_pltfm
+    - selftests: forwarding: tc_flower: Relax success criterion
+    - macsec: Fix traffic counters/statistics
+    - macsec: use DEV_STATS_INC()
+    - drm/radeon: Fix integer overflow in radeon_cs_parser_init
+    - ALSA: emu10k1: roll up loops in DSP setup code for Audigy
+    - quota: Properly disable quotas when add_dquot_ref() fails
+    - quota: fix warning in dqgrab()
+    - HID: add quirk for 03f0:464a HP Elite Presenter Mouse
+    - ovl: check type and offset of struct vfsmount in ovl_entry
+    - udf: Fix uninitialized array access for some pathnames
+    - fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev
+    - MIPS: dec: prom: Address -Warray-bounds warning
+    - FS: JFS: Fix null-ptr-deref Read in txBegin
+    - FS: JFS: Check for read-only mounted filesystem in txBegin
+    - media: v4l2-mem2mem: add lock to protect parameter num_rdy
+    - media: platform: mediatek: vpu: fix NULL ptr dereference
+    - usb: chipidea: imx: don't request QoS for imx8ulp
+    - gfs2: Fix possible data races in gfs2_show_options()
+    - pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
+    - Bluetooth: L2CAP: Fix use-after-free
+    - drm/amdgpu: Fix potential fence use-after-free v2
+    - ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
+    - ALSA: hda: fix a possible null-pointer dereference due to data race in
+      snd_hdac_regmap_sync()
+    - powerpc/kasan: Disable KCOV in KASAN code
+    - IMA: allow/fix UML builds
+    - iio: add addac subdirectory
+    - iio: adc: stx104: Utilize iomap interface
+    - iio: adc: stx104: Implement and utilize register structures
+    - iio: stx104: Move to addac subdirectory
+    - iio: addac: stx104: Fix race condition for stx104_write_raw()
+    - iio: addac: stx104: Fix race condition when converting analog-to-digital
+    - iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE
+    - PM-runtime: add tracepoints for usage_count changes
+    - PM: runtime: Add pm_runtime_get_if_active()
+    - ALSA: hda: Fix unhandled register update during auto-suspend period
+    - irqchip/mips-gic: Get rid of the reliance on irq_cpu_online()
+    - irqchip/mips-gic: Use raw spinlock for gic_lock
+    - interconnect: Move internal structs into a separate file
+    - interconnect: Add helpers for enabling/disabling a path
+    - usb: dwc3: qcom: Add helper functions to enable,disable wake irqs
+    - USB: dwc3: qcom: fix NULL-deref on suspend
+    - mmc: bcm2835: fix deferred probing
+    - mmc: sunxi: fix deferred probing
+    - leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
+    - tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs
+    - tracing/probes: Fix to update dynamic data counter if fetcharg uses it
+    - net/ncsi: Fix gma flag setting after response
+    - nfsd4: kill warnings on testing stateids with mismatched clientids
+    - nfsd: Remove incorrect check in nfsd4_validate_stateid
+    - virtio-mmio: convert to devm_platform_ioremap_resource
+    - virtio-mmio: Use to_virtio_mmio_device() to simply code
+    - virtio-mmio: don't break lifecycle of vm_dev
+    - i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue
+    - fbdev: mmp: fix value check in mmphw_probe()
+    - powerpc/rtas_flash: allow user copy to flash block cache objects
+    - tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32
+      platforms
+    - btrfs: fix BUG_ON condition in btrfs_cancel_balance
+    - net: xfrm: Fix xfrm_address_filter OOB read
+    - net: af_key: fix sadb_x_filter validation
+    - xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c
+    - xfrm: fix slab-use-after-free in decode_session6
+    - ip6_vti: fix slab-use-after-free in decode_session6
+    - ip_vti: fix potential slab-use-after-free in decode_session6
+    - selftests: mirror_gre_changes: Tighten up the TTL test match
+    - ipvs: fix racy memcpy in proc_do_sync_threshold
+    - netfilter: nft_dynset: disallow object maps
+    - team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
+    - i40e: fix misleading debug logs
+    - net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset
+    - sock: Fix misuse of sk_under_memory_pressure()
+    - net: do not allow gso_size to be set to GSO_BY_FRAGS
+    - bus: ti-sysc: Improve reset to work with modules with no sysconfig
+    - bus: ti-sysc: Flush posted write on enable before reset
+    - ARM: dts: imx7s: Drop dma-apb interrupt-names
+    - ARM: dts: imx: Adjust dma-apbh node name
+    - ARM: dts: imx: Set default tuning step for imx7d usdhc
+    - ARM: dts: imx: Set default tuning step for imx6sx usdhc
+    - ASoC: rt5665: add missed regulator_bulk_disable
+    - ASoC: meson: axg-tdm-formatter: fix channel slot allocation
+    - serial: 8250: Fix oops for port->pm on uart_change_pm()
+    - ALSA: usb-audio: Add support for Mythware XA001AU capture and playback
+      interfaces.
+    - cifs: Release folio lock on fscache read hit.
+    - mmc: wbsd: fix double mmc_free_host() in wbsd_init()
+    - mmc: block: Fix in_flight[issue_type] value error
+    - netfilter: set default timeout to 3 secs for sctp shutdown send and recv
+      state
+    - virtio-net: set queues after driver_ok
+    - net: fix the RTO timer retransmitting skb every 1ms if linear option is
+      enabled
+    - net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
+    - mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove
+    - net: phy: broadcom: stub c45 read/write for 54810
+    - PCI: acpiphp: Reassign resources on bridge if necessary
+    - dlm: improve plock logging if interrupted
+    - dlm: replace usage of found with dedicated list iterator variable
+    - fs: dlm: add pid to debug log
+    - fs: dlm: change plock interrupted message to debug again
+    - fs: dlm: use dlm_plock_info for do_unlock_close
+    - fs: dlm: fix mismatch of plock results from userspace
+    - MIPS: cpu-features: Enable octeon_cache by cpu_type
+    - MIPS: cpu-features: Use boot_cpu_type for CPU type based features
+    - fbdev: Improve performance of sys_imageblit()
+    - fbdev: Fix sys_imageblit() for arbitrary image widths
+    - fbdev: fix potential OOB read in fast_imageblit()
+    - dm integrity: increase RECALC_SECTORS to improve recalculate speed
+    - dm integrity: reduce vmalloc space footprint on 32-bit architectures
+    - ALSA: pcm: Set per-card upper limit of PCM buffer allocations
+    - ALSA: pcm: Use SG-buffer only when direct DMA is available
+    - ALSA: pcm: Fix potential data race at PCM memory allocation helpers
+    - regmap: Account for register length in SMBus I/O limits
+    - ASoC: fsl_sai: Refine enable/disable TE/RE sequence in trigger()
+    - ASoC: fsl_sai: Add new added registers and new bit definition
+    - ASoC: fsl_sai: Disable bit clock with transmitter
+    - drm/amd/display: do not wait for mpc idle if tg is disabled
+    - drm/amd/display: check TG is non-null before checking if enabled
+    - tracing: Fix memleak due to race between current_tracer and trace
+    - octeontx2-af: SDP: fix receive link config
+    - sock: annotate data-races around prot->memory_pressure
+    - dccp: annotate data-races in dccp_poll()
+    - ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()
+    - net: bgmac: Fix return value check for fixed_phy_register()
+    - net: bcmgenet: Fix return value check for fixed_phy_register()
+    - net: validate veth and vxcan peer ifindexes
+    - igb: Avoid starting unnecessary workqueues
+    - net/sched: fix a qdisc modification with ambiguous command request
+    - net: remove bond_slave_has_mac_rcu()
+    - bonding: fix macvlan over alb bond support
+    - ibmveth: Use dcbf rather than dcbfl
+    - NFSv4: Fix dropped lock for racing OPEN and delegation return
+    - clk: Fix slab-out-of-bounds error in devm_clk_release()
+    - nfsd: Fix race to FREE_STATEID and cl_revoked
+    - batman-adv: Trigger events for auto adjusted MTU
+    - batman-adv: Don't increase MTU when set by user
+    - batman-adv: Do not get eth header before batadv_check_management_packet
+    - batman-adv: Fix TT global entry leak when client roamed back
+    - batman-adv: Fix batadv_v_ogm_aggr_send memory leak
+    - batman-adv: Hold rtnl lock during MTU update via netlink
+    - lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels
+    - radix tree: remove unused variable
+    - media: vcodec: Fix potential array out-of-bounds in encoder queue_setup
+    - PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root
+      bus
+    - drm/display/dp: Fix the DP DSC Receiver cap size
+    - mm: allow a controlled amount of unfairness in the page lock
+    - rtnetlink: Reject negative ifindexes in RTM_NEWLINK
+    - ALSA: pcm: Fix build error on m68k and others
+    - Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available"
+    - interconnect: Do not skip aggregation for disabled paths
+    - ALSA: pcm: Check for null pointer of pointer substream before dereferencing
+      it
+    - Documentation/sysctl: document page_lock_unfairness
+    - irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable
+    - scsi: snic: Fix double free in snic_tgt_create()
+    - scsi: core: raid_class: Remove raid_component_add()
+    - clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
+    - pinctrl: renesas: rza2: Add lock around
+      pinctrl_generic{{add,remove}_group,{add,remove}_function}
+    - dma-buf/sw_sync: Avoid recursive lock during fence signal
+    - Linux 5.4.255
+  * Focal update: v5.4.254 upstream stable release (LP: #2039291)
+    - mmc: moxart: read scr register without changing byte order
+    - ipv6: adjust ndisc_is_useropt() to also return true for PIO
+    - dmaengine: pl330: Return DMA_PAUSED when transaction is paused
+    - drm/nouveau/gr: enable memory loads on helper invocation on all channels
+    - radix tree test suite: fix incorrect allocation size for pthreads
+    - nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput
+    - iio: cros_ec: Fix the allocation size for cros_ec_command
+    - binder: fix memory leak in binder_init()
+    - usb-storage: alauda: Fix uninit-value in alauda_check_media()
+    - usb: dwc3: Properly handle processing of pending events
+    - usb: common: usb-conn-gpio: Prevent bailing out if initial role is none
+    - x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405
+    - x86/mm: Fix VDSO and VVAR placement on 5-level paging machines
+    - x86: Move gds_ucode_mitigated() declaration to header
+    - drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
+    - selftests/rseq: Fix build with undefined __weak
+    - mISDN: Update parameter type of dsp_cmx_send()
+    - net/packet: annotate data-races around tp->status
+    - bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
+    - dccp: fix data-race around dp->dccps_mss_cache
+    - drivers: net: prevent tun_build_skb() to exceed the packet size limit
+    - IB/hfi1: Fix possible panic during hotplug remove
+    - wifi: cfg80211: fix sband iftype data lookup for AP_VLAN
+    - dmaengine: mcf-edma: Fix a potential un-allocated memory access
+    - net/mlx5: Allow 0 for total host VFs
+    - ibmvnic: Handle DMA unmapping of login buffs in release functions
+    - btrfs: don't stop integrity writeback too early
+    - btrfs: set cache_block_group_error if we find an error
+    - nvme-tcp: fix potential unbalanced freeze & unfreeze
+    - nvme-rdma: fix potential unbalanced freeze & unfreeze
+    - netfilter: nf_tables: report use refcount overflow
+    - scsi: core: Fix legacy /proc parsing buffer overflow
+    - scsi: storvsc: Fix handling of virtual Fibre Channel timeouts
+    - scsi: 53c700: Check that command slot is not NULL
+    - scsi: snic: Fix possible memory leak if device_add() fails
+    - scsi: core: Fix possible memory leak if device_add() fails
+    - alpha: remove __init annotation from exported page_is_ram()
+    - sch_netem: fix issues in netem_change() vs get_dist_table()
+    - Linux 5.4.254
+  * Focal update: v5.4.253 upstream stable release (LP: #2038652)
+    - jbd2: fix incorrect code style
+    - jbd2: fix kernel-doc markups
+    - jbd2: remove redundant buffer io error checks
+    - jbd2: recheck chechpointing non-dirty buffer
+    - jbd2: Fix wrongly judgement for buffer head removing while doing checkpoint
+    - gpio: tps68470: Make tps68470_gpio_output() always set the initial value
+    - bcache: remove 'int n' from parameter list of bch_bucket_alloc_set()
+    - bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent
+    - btrfs: qgroup: catch reserved space leaks at unmount time
+    - btrfs: fix race between quota disable and relocation
+    - btrfs: fix extent buffer leak after tree mod log failure at split_node()
+    - ext4: rename journal_dev to s_journal_dev inside ext4_sb_info
+    - ext4: Fix reusing stale buffer heads from last failed mounting
+    - PCI/ASPM: Return 0 or -ETIMEDOUT from pcie_retrain_link()
+    - PCI/ASPM: Factor out pcie_wait_for_retrain()
+    - PCI/ASPM: Avoid link retraining race
+    - dlm: cleanup plock_op vs plock_xop
+    - dlm: rearrange async condition return
+    - fs: dlm: interrupt posix locks only when process is killed
+    - ftrace: Add information on number of page groups allocated
+    - ftrace: Check if pages were allocated before calling free_pages()
+    - ftrace: Store the order of pages allocated in ftrace_page
+    - ftrace: Fix possible warning on checking all pages used in
+      ftrace_process_locs()
+    - pwm: meson: Remove redundant assignment to variable fin_freq
+    - pwm: meson: Simplify duplicated per-channel tracking
+    - pwm: meson: fix handling of period/duty if greater than UINT_MAX
+    - scsi: qla2xxx: Fix inconsistent format argument type in qla_os.c
+    - scsi: qla2xxx: Array index may go out of bound
+    - uapi: General notification queue definitions
+    - keys: Fix linking a duplicate key to a keyring's assoc_array
+    - ext4: fix to check return value of freeze_bdev() in ext4_shutdown()
+    - i40e: Fix an NULL vs IS_ERR() bug for debugfs_create_dir()
+    - vxlan: calculate correct header length for GPE
+    - phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe()
+    - ethernet: atheros: fix return value check in atl1e_tso_csum()
+    - ipv6 addrconf: fix bug where deleting a mngtmpaddr can create a new
+      temporary address
+    - bonding: reset bond's flags when down link is P2P device
+    - team: reset team's flags when down link is P2P device
+    - platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100
+    - net/sched: mqprio: refactor nlattr parsing to a separate function
+    - net/sched: mqprio: add extack to mqprio_parse_nlattr()
+    - net/sched: mqprio: Add length check for TCA_MQPRIO_{MAX/MIN}_RATE64
+    - benet: fix return value check in be_lancer_xmit_workarounds()
+    - RDMA/mlx4: Make check for invalid flags stricter
+    - drm/msm/dpu: drop enum dpu_core_perf_data_bus_id
+    - drm/msm/adreno: Fix snapshot BINDLESS_DATA size
+    - drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb()
+    - ASoC: fsl_spdif: Silence output on stop
+    - block: Fix a source code comment in include/uapi/linux/blkzoned.h
+    - dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths
+    - ata: pata_ns87415: mark ns87560_tf_read static
+    - ring-buffer: Fix wrong stat of cpu_buffer->read
+    - tracing: Fix warning in trace_buffered_event_disable()
+    - serial: 8250_dw: Preserve original value of DLF register
+    - serial: sifive: Fix sifive_serial_console_setup() section
+    - USB: serial: option: support Quectel EM060K_128
+    - USB: serial: option: add Quectel EC200A module support
+    - USB: serial: simple: add Kaufmann RKS+CAN VCP
+    - USB: serial: simple: sort driver entries
+    - can: gs_usb: gs_can_close(): add missing set of CAN state to
+      CAN_STATE_STOPPED
+    - Revert "usb: dwc3: core: Enable AutoRetry feature in the controller"
+    - usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy
+    - usb: dwc3: don't reset device side if dwc3 was configured as host-only
+    - usb: ohci-at91: Fix the unhandle interrupt when resume
+    - USB: quirks: add quirk for Focusrite Scarlett
+    - usb: xhci-mtk: set the dma max_seg_size
+    - Revert "usb: xhci: tegra: Fix error check"
+    - Documentation: security-bugs.rst: update preferences when dealing with the
+      linux-distros group
+    - Documentation: security-bugs.rst: clarify CVE handling
+    - staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext()
+    - hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled
+    - btrfs: check for commit error at btrfs_attach_transaction_barrier()
+    - tpm_tis: Explicitly check for error code
+    - irq-bcm6345-l1: Do not assume a fixed block to cpu mapping
+    - btrfs: check if the transaction was aborted at btrfs_wait_for_commit()
+    - virtio-net: fix race between set queues and probe
+    - s390/dasd: fix hanging device after quiesce/resume
+    - ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register
+    - dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
+    - ACPI: processor: perflib: Use the "no limit" frequency QoS
+    - ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily
+    - cpufreq: intel_pstate: Drop ACPI _PSS states table patching
+    - btrfs: qgroup: remove one-time use variables for quota_root checks
+    - btrfs: qgroup: return ENOTCONN instead of EINVAL when quotas are not enabled
+    - ASoC: cs42l51: fix driver to properly autoload with automatic module loading
+    - arm64: Add AMPERE1 to the Spectre-BHB affected list
+    - arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
+    - perf: Fix function pointer case
+    - loop: Select I/O scheduler 'none' from inside add_disk()
+    - word-at-a-time: use the same return type for has_zero regardless of
+      endianness
+    - KVM: s390: fix sthyi error handling
+    - net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx
+    - net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer()
+    - rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length
+    - perf test uprobe_from_different_cu: Skip if there is no gcc
+    - net: sched: cls_u32: Fix match key mis-addressing
+    - mISDN: hfcpci: Fix potential deadlock on &hc->lock
+    - net: annotate data-races around sk->sk_max_pacing_rate
+    - net: add missing READ_ONCE(sk->sk_rcvlowat) annotation
+    - net: add missing READ_ONCE(sk->sk_sndbuf) annotation
+    - net: add missing READ_ONCE(sk->sk_rcvbuf) annotation
+    - net: add missing data-race annotations around sk->sk_peek_off
+    - net: add missing data-race annotation for sk_ll_usec
+    - bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire
+    - driver core: add device probe log helper
+    - net: ll_temac: Switch to use dev_err_probe() helper
+    - net: ll_temac: fix error checking of irq_of_parse_and_map()
+    - net: dcb: choose correct policy to parse DCB_ATTR_BCN
+    - ip6mr: Fix skb_under_panic in ip6mr_cache_report()
+    - tcp_metrics: fix addr_same() helper
+    - tcp_metrics: annotate data-races around tm->tcpm_stamp
+    - tcp_metrics: annotate data-races around tm->tcpm_lock
+    - tcp_metrics: annotate data-races around tm->tcpm_vals[]
+    - tcp_metrics: annotate data-races around tm->tcpm_net
+    - tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen
+    - scsi: zfcp: Defer fc_rport blocking until after ADISC response
+    - libceph: fix potential hang in ceph_osdc_notify()
+    - USB: zaurus: Add ID for A-300/B-500/C-700
+    - mtd: spinand: toshiba: Fix ecc_get_status
+    - mtd: rawnand: meson: fix OOB available bytes for ECC
+    - fs/sysv: Null check to prevent null-ptr-deref bug
+    - net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb
+    - fs: Protect reconfiguration of sb read-write from racing writes
+    - ext2: Drop fragment support
+    - test_firmware: prevent race conditions by a correct implementation of
+      locking
+    - test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation
+    - mtd: rawnand: omap_elm: Fix incorrect type in assignment
+    - powerpc/mm/altmap: Fix altmap boundary check
+    - selftests/rseq: check if libc rseq support is registered
+    - selftests/rseq: Play nice with binaries statically linked against glibc
+      2.35+
+    - PM / wakeirq: support enabling wake-up irq after runtime_suspend called
+    - PM: sleep: wakeirq: fix wake irq arming
+    - ceph: show tasks waiting on caps in debugfs caps file
+    - ceph: use kill_anon_super helper
+    - ceph: defer stopping mdsc delayed_work
+    - arm64: dts: stratix10: fix incorrect I2C property for SCL signal
+    - ARM: dts: imx6sll: Make ssi node name same as other platforms
+    - ARM: dts: imx: Align L2 cache-controller nodename with dtschema
+    - ARM: dts: imx: add usb alias
+    - ARM: dts: imx6sll: fixup of operating points
+    - ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node
+    - driver core: Annotate dev_err_probe() with __must_check
+    - driver code: print symbolic error code
+    - drivers: core: fix kernel-doc markup for dev_err_probe()
+    - Revert "driver core: Annotate dev_err_probe() with __must_check"
+    - Linux 5.4.253
+    - Upstream stable to v5.4.253
+  * CVE-2023-37453
+    - USB: hub: Clean up use of port initialization schemes and retries
+    - USB: hub: Add Kconfig option to reduce number of port initialization retries
+    - USB: core: Unite old scheme and new scheme descriptor reads
+    - usb: hub: Check device descriptor before resusciation
+    - USB: core: Change usb_get_device_descriptor() API
+    - USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 11 Dec 2023 17:06:03 +0800
+
+linux-ein (5.4.0-1043.50) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1043.50 -proposed tracker (LP: #2044653)
+
+  * Amgis-V5][UC20] Cortex A7 Core 1 Bare metal application conflicts with
+    OPTEE/Linux (LP#2023563)
+    - SAUCE: irq-gic: Allow device tree to exclude irqs
+    - SAUCE: amgis: dts: Exclude A7 Core 1 irqs
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sun, 26 Nov 2023 23:57:27 +0800
+
+linux-ein (5.4.0-1042.49) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1042.49 -proposed tracker (LP: #2044059)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync update-dkms-versions helper
+
+  * Amgis v6 hardware (LP: #2043011)
+    - SAUCE: dts: Add Amgis v6 device tree
+
+  * Miscellaneous Ubuntu changes
+    - snap: medina: Adapt to the new config model
+
+  [ Ubuntu: 5.4.0-167.184 ]
+
+  * focal/linux: 5.4.0-167.184 -proposed tracker (LP: #2041988)
+  * CVE-2023-45871
+    - igb: set max size RX buffer when store bad packet is enabled
+  * CVE-2023-31085
+    - ubi: Refuse attaching if mtd's erasesize is 0
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 21 Nov 2023 13:00:44 +0800
+
+linux-ein (5.4.0-1041.48) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1041.48 -proposed tracker (LP: #2040956)
+
+  * Focal update: v5.4.251 upstream stable release (LP: #2034918)
+    - SAUCE: drm/panel: AVD101WX-CN: Update drm_panel_init() call
+
+  * Use new annotations model (LP: #2019000)
+    - [Config] ein: sanitize annotations
+    - [Config] ein: Migrate to the new annotations model
+    - [Config] ein: Migrate to the new annotations model
+
+  * CVE-2023-42755
+    - [Config] ein: remove NET_CLS_RSVP and NET_CLS_RSVP6
+
+  * Focal update: v5.4.248 upstream stable release (LP: #2031121)
+    - [Config] ein: updateconfigs for DECNET
+
+  * [Amgis-V5][UC20] LPM Suspend to Mem vs Standby (LP: #2038441)
+    - Revert "UBUNTU: SAUCE: imx7: Suspend/Resume updates"
+    - Revert "UBUNTU: SAUCE: ARM: imx7: Fix memory mapping for iram_tlb_io_desc by
+      removing the executable flag, resulting in a pagetable warning."
+
+  * Missing Marvell firmware (LP: #2037448)
+    - snap: medina: remove Marvell firmwares except sdsd8997_combo_v4.bin
+
+  * Miscellaneous Ubuntu changes
+    - [Config] ein: Change CONFIG_BLK_DEV_LOOP_MIN_COUNT to 8
+    - snap: medina: Remove pahole from build-packages
+
+  [ Ubuntu: 5.4.0-166.183 ]
+
+  * focal/linux: 5.4.0-166.183 -proposed tracker (LP: #2038010)
+  * Use new annotations model (LP: #2019000)
+    - [Packaging] new annotations model infrastructure
+    - [Packaging] config-check: Handle new annotations format 4
+    - [Packaging] rules: Use old-kernelconfig for old configs
+    - [Config] sanitize annotations
+    - [Config] import generated configs into annotation file
+    - [Packaging] kernelconfig: add i386 as supported arch
+    - [Config] Remove all old configs files
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - [Packaging] update annotations scripts
+  * fix typo in config-checks invocation (LP: #2020413)
+    - [Packaging] fix typo when calling the old config-check
+    - [Packaging] fix typo in 4-checks.mk
+  * support python < 3.9 with annotations (LP: #2020531)
+    - [Packaging] kconfig/annotations.py: support older way of merging dicts
+  * CVE-2023-42756
+    - netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
+  * CVE-2023-4623
+    - net/sched: sch_hfsc: Ensure inner classes have fsc curve
+  * Focal update: v5.4.252 upstream stable release (LP: #2036240)
+    - ia64/cpu: Switch to arch_cpu_finalize_init()
+    - m68k/cpu: Switch to arch_cpu_finalize_init()
+    - mips/cpu: Switch to arch_cpu_finalize_init()
+    - sh/cpu: Switch to arch_cpu_finalize_init()
+    - x86/cpufeatures: Add SEV-ES CPU feature
+    - x86/cpu: Add VM page flush MSR availablility as a CPUID feature
+    - x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX]
+    - tools headers cpufeatures: Sync with the kernel sources
+    - x86/cpu, kvm: Add support for CPUID_80000021_EAX
+    - Linux 5.4.252
+    - Upstream stable to v5.4.252
+  * CVE-2023-42755
+    - net/sched: Retire rsvp classifier
+    - [Config] remove NET_CLS_RSVP and NET_CLS_RSVP6
+  * CVE-2023-42753
+    - netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for
+      ip_set_hash_netportnet.c
+  * CVE-2023-34319
+    - xen/netback: Fix buffer overrun triggered by unusual packet
+  * CVE-2023-4921
+    - net: sched: sch_qfq: Fix UAF in qfq_dequeue()
+  * CVE-2023-42752
+    - igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
+  * Avoid address overwrite in kernel_connect (LP: #2035163)
+    - net: Avoid address overwrite in kernel_connect
+  * [regression] Unable to initialize SGX enclaves with XFRM other than 3
+    (LP: #2034745)
+    - x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4
+  * CVE-2023-4881
+    - netfilter: nftables: exthdr: fix 4-byte stack OOB write
+  * CVE-2023-4622
+    - af_unix: Fix null-ptr-deref in unix_stream_sendpage().
+  * Focal update: v5.4.251 upstream stable release (LP: #2034918)
+    - x86/smp: Use dedicated cache-line for mwait_play_dead()
+    - video: imsttfb: check for ioremap() failures
+    - fbdev: imsttfb: Fix use after free bug in imsttfb_probe
+    - HID: wacom: Use ktime_t rather than int when dealing with timestamps
+    - drm/i915: Initialise outparam for error return from wait_for_register
+    - scripts/tags.sh: Resolve gtags empty index generation
+    - drm/amdgpu: Validate VM ioctl flags.
+    - bgmac: fix *initial* chip reset to support BCM5358
+    - x86/resctrl: Use is_closid_match() in more places
+    - x86/resctrl: Only show tasks' pid in current pid namespace
+    - md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
+    - md/raid10: fix overflow of md/safe_mode_delay
+    - md/raid10: fix wrong setting of max_corr_read_errors
+    - md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request
+    - md/raid10: fix io loss while replacement replace rdev
+    - irqchip/jcore-aic: Kill use of irq_create_strict_mappings()
+    - irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
+    - tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
+    - clocksource/drivers/cadence-ttc: Use ttc driver as platform driver
+    - clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
+    - PM: domains: fix integer overflow issues in genpd_parse_state()
+    - powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
+    - ARM: 9303/1: kprobes: avoid missing-declaration warnings
+    - evm: Complete description of evm_inode_setattr()
+    - pstore/ram: Add check for kstrdup
+    - ima: Fix build warnings
+    - wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation
+    - wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
+    - samples/bpf: Fix buffer overflow in tcp_basertt
+    - spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG
+    - wifi: mwifiex: Fix the size of a memory allocation in
+      mwifiex_ret_802_11_scan()
+    - nfc: constify several pointers to u8, char and sk_buff
+    - nfc: llcp: fix possible use of uninitialized variable in
+      nfc_llcp_send_connect()
+    - regulator: core: Fix more error checking for debugfs_create_dir()
+    - regulator: core: Streamline debugfs operations
+    - wifi: orinoco: Fix an error handling path in spectrum_cs_probe()
+    - wifi: orinoco: Fix an error handling path in orinoco_cs_probe()
+    - wifi: atmel: Fix an error handling path in atmel_probe()
+    - wl3501_cs: Fix a bunch of formatting issues related to function docs
+    - wl3501_cs: Remove unnecessary NULL check
+    - wl3501_cs: Fix misspelling and provide missing documentation
+    - net: create netdev->dev_addr assignment helpers
+    - wl3501_cs: use eth_hw_addr_set()
+    - wifi: wl3501_cs: Fix an error handling path in wl3501_probe()
+    - wifi: ray_cs: Utilize strnlen() in parse_addr()
+    - wifi: ray_cs: Drop useless status variable in parse_addr()
+    - wifi: ray_cs: Fix an error handling path in ray_probe()
+    - wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
+    - wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown
+    - watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct
+      config
+    - watchdog/perf: more properly prevent false positives with turbo modes
+    - kexec: fix a memory leak in crash_shrink_memory()
+    - memstick r592: make memstick_debug_get_tpc_name() static
+    - wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key()
+    - rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO
+    - wifi: iwlwifi: pull from TXQs with softirqs disabled
+    - wifi: cfg80211: rewrite merging of inherited elements
+    - wifi: ath9k: convert msecs to jiffies where needed
+    - netlink: fix potential deadlock in netlink_set_err()
+    - netlink: do not hard code device address lenth in fdb dumps
+    - selftests: rtnetlink: remove netdevsim device after ipsec offload test
+    - gtp: Fix use-after-free in __gtp_encap_destroy().
+    - lib/ts_bm: reset initial match offset for every block of text
+    - netfilter: conntrack: dccp: copy entire header to stack buffer, not just
+      basic one
+    - netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return
+      value.
+    - ipvlan: Fix return value of ipvlan_queue_xmit()
+    - netlink: Add __sock_i_ino() for __netlink_diag_dump().
+    - radeon: avoid double free in ci_dpm_init()
+    - Input: drv260x - sleep between polling GO bit
+    - ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
+    - Input: adxl34x - do not hardcode interrupt trigger type
+    - drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
+    - RDMA/bnxt_re: Fix to remove an unnecessary log
+    - ARM: dts: gta04: Move model property out of pinctrl node
+    - arm64: dts: qcom: msm8916: correct camss unit address
+    - drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H
+    - ARM: ep93xx: fix missing-prototype warnings
+    - memory: brcmstb_dpfe: fix testing array offset after use
+    - ASoC: es8316: Increment max value for ALC Capture Target Volume control
+    - ASoC: es8316: Do not set rate constraints for unsupported MCLKs
+    - soc/fsl/qe: fix usb.c build errors
+    - IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors
+    - arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1
+    - fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
+    - drm/amdkfd: Fix potential deallocation of previously deallocated memory.
+    - drm/radeon: fix possible division-by-zero errors
+    - clk: tegra: tegra124-emc: Fix potential memory leak
+    - ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer
+    - clk: cdce925: check return value of kasprintf()
+    - clk: keystone: sci-clk: check return value of kasprintf()
+    - ASoC: imx-audmix: check return value of devm_kasprintf()
+    - scsi: qedf: Fix NULL dereference in error handling
+    - PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free
+    - scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe()
+    - PCI: pciehp: Cancel bringup sequence if card is not present
+    - PCI: ftpci100: Release the clock resources
+    - PCI: Add pci_clear_master() stub for non-CONFIG_PCI
+    - pinctrl: cherryview: Return correct value if pin in push-pull mode
+    - perf dwarf-aux: Fix off-by-one in die_get_varname()
+    - pinctrl: at91-pio4: check return value of devm_kasprintf()
+    - powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-
+      boundary
+    - hwrng: virtio - add an internal buffer
+    - hwrng: virtio - don't wait on cleanup
+    - hwrng: virtio - don't waste entropy
+    - hwrng: virtio - always add a pending request
+    - hwrng: virtio - Fix race on data_avail and actual data
+    - crypto: nx - fix build warnings when DEBUG_FS is not enabled
+    - modpost: fix section mismatch message for R_ARM_ABS32
+    - modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24}
+    - crypto: marvell/cesa - Fix type mismatch warning
+    - modpost: fix off by one in is_executable_section()
+    - ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard
+    - NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
+    - hwrng: st - Fix W=1 unused variable warning
+    - hwrng: st - keep clock enabled while hwrng is registered
+    - USB: serial: option: add LARA-R6 01B PIDs
+    - usb: dwc3: gadget: Propagate core init errors to UDC during pullup
+    - block: fix signed int overflow in Amiga partition support
+    - block: change all __u32 annotations to __be32 in affs_hardblocks.h
+    - w1: fix loop in w1_fini()
+    - sh: j2: Use ioremap() to translate device tree address into kernel memory
+    - media: usb: Check az6007_read() return value
+    - media: videodev2.h: Fix struct v4l2_input tuner index comment
+    - usb: dwc3: qcom: Fix potential memory leak
+    - extcon: Fix kernel doc of property fields to avoid warnings
+    - extcon: Fix kernel doc of property capability fields to avoid warnings
+    - usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
+    - usb: hide unused usbfs_notify_suspend/resume functions
+    - mfd: rt5033: Drop rt5033-battery sub-device
+    - KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes
+    - usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove()
+    - mfd: intel-lpss: Add missing check for platform_get_resource
+    - serial: 8250_omap: Use force_suspend and resume for system suspend
+    - mfd: stmfx: Fix error path in stmfx_chip_init
+    - KVM: s390: vsie: fix the length of APCB bitmap
+    - mfd: stmpe: Only disable the regulators if they are enabled
+    - pwm: imx-tpm: force 'real_period' to be zero in suspend
+    - pwm: sysfs: Do not apply state to already disabled PWMs
+    - rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
+    - sctp: fix potential deadlock on &net->sctp.addr_wq_lock
+    - Add MODULE_FIRMWARE() for FIRMWARE_TG357766.
+    - spi: bcm-qspi: return error if neither hif_mspi nor mspi is available
+    - mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
+    - f2fs: fix error path handling in truncate_dnode()
+    - powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y
+    - net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode
+    - tcp: annotate data races in __tcp_oow_rate_limited()
+    - xsk: Improve documentation for AF_XDP
+    - xsk: Honor SO_BINDTODEVICE on bind
+    - net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX
+    - net: dsa: tag_sja1105: fix MAC DA patching from meta frames
+    - sh: dma: Fix DMA channel offset calculation
+    - i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()
+    - i2c: xiic: Don't try to handle more interrupt events after error
+    - ALSA: jack: Fix mutex call in snd_jack_report()
+    - NFSD: add encoding of op_recall flag for write delegation
+    - mmc: core: disable TRIM on Kingston EMMC04G-M627
+    - mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M
+    - mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is
+      used.
+    - bcache: Remove unnecessary NULL point check in node allocations
+    - integrity: Fix possible multiple allocation in integrity_inode_get()
+    - jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
+    - fs: avoid empty option when generating legacy mount string
+    - ext4: Remove ext4 locking of moved directory
+    - Revert "f2fs: fix potential corruption when moving a directory"
+    - fs: Establish locking order for unrelated directories
+    - fs: Lock moved directories
+    - btrfs: fix race when deleting quota root from the dirty cow roots list
+    - ARM: orion5x: fix d2net gpio initialization
+    - fs: no need to check source
+    - fanotify: disallow mount/sb marks on kernel internal pseudo fs
+    - block: add overflow checks for Amiga partition support
+    - netfilter: nf_tables: fix nat hook table deletion
+    - netfilter: nftables: add helper function to set the base sequence number
+    - netfilter: add helper function to set up the nfnetlink header and use it
+    - netfilter: nf_tables: use net_generic infra for transaction data
+    - netfilter: nf_tables: add rescheduling points during loop detection walks
+    - netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound
+      set/chain
+    - netfilter: nf_tables: reject unbound anonymous set before commit phase
+    - netfilter: nf_tables: unbind non-anonymous set if rule construction fails
+    - netfilter: nf_tables: fix scheduling-while-atomic splat
+    - netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
+    - tty: serial: fsl_lpuart: add earlycon for imx8ulp platform
+    - block/partition: fix signedness issue for Amiga partitions
+    - net: lan743x: Don't sleep in atomic context
+    - workqueue: clean up WORK_* constant types, clarify masking
+    - drm/panel: Initialise panel dev and funcs through drm_panel_init()
+    - drm/panel: Add and fill drm_panel type field
+    - drm/panel: simple: Add connector_type for innolux_at043tn24
+    - igc: Remove delay during TX ring configuration
+    - igc: set TP bit in 'supported' and 'advertising' fields of
+      ethtool_link_ksettings
+    - scsi: qla2xxx: Fix error code in qla2x00_start_sp()
+    - net: mvneta: fix txq_map in case of txq_number==1
+    - ionic: improve irq numa locality
+    - ionic: clean irq affinity on queue deinit
+    - ionic: move irq request to qcq alloc
+    - ionic: ionic_intr_free parameter change
+    - ionic: remove WARN_ON to prevent panic_on_warn
+    - icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev().
+    - udp6: fix udp6_ehashfn() typo
+    - ntb: idt: Fix error handling in idt_pci_driver_init()
+    - NTB: amd: Fix error handling in amd_ntb_pci_driver_init()
+    - ntb: intel: Fix error handling in intel_ntb_pci_driver_init()
+    - NTB: ntb_transport: fix possible memory leak while device_register() fails
+    - NTB: ntb_tool: Add check for devm_kcalloc
+    - ipv6/addrconf: fix a potential refcount underflow for idev
+    - platform/x86: wmi: Replace UUID redefinitions by their originals
+    - platform/x86: wmi: Fix indentation in some cases
+    - platform/x86: wmi: remove unnecessary argument
+    - platform/x86: wmi: use guid_t and guid_equal()
+    - platform/x86: wmi: move variables
+    - platform/x86: wmi: Break possible infinite loop when parsing GUID
+    - erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF
+    - wifi: airo: avoid uninitialized warning in airo_get_rate()
+    - cls_flower: Add extack support for src and dst port range options
+    - net/sched: flower: Ensure both minimum and maximum ports are specified
+    - net/sched: make psched_mtu() RTNL-less safe
+    - pinctrl: amd: Fix mistake in handling clearing pins at startup
+    - pinctrl: amd: Detect internal GPIO0 debounce handling
+    - pinctrl: amd: Only use special debounce behavior for GPIO 0
+    - tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation
+    - mtd: rawnand: meson: fix unaligned DMA buffers handling
+    - net: bcmgenet: Ensure MDIO unregistration has clocks enabled
+    - powerpc: Fail build if using recordmcount with binutils v2.37
+    - misc: fastrpc: Create fastrpc scalar with correct buffer count
+    - SUNRPC: Fix UAF in svc_tcp_listen_data_ready()
+    - erofs: fix compact 4B support for 16k block size
+    - ext4: fix wrong unit use in ext4_mb_clear_bb
+    - ext4: only update i_reserved_data_blocks on successful block allocation
+    - jfs: jfs_dmap: Validate db_l2nbperpage while mounting
+    - PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold
+    - PCI: Add function 1 DMA alias quirk for Marvell 88SE9235
+    - PCI: qcom: Disable write access to read only registers for IP v2.3.3
+    - PCI: rockchip: Assert PCI Configuration Enable bit after probe
+    - PCI: rockchip: Write PCI Device ID to correct register
+    - PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked
+    - PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core
+    - PCI: rockchip: Use u32 variable to access 32-bit registers
+    - PCI: rockchip: Set address alignment for endpoint mode
+    - misc: pci_endpoint_test: Free IRQs before removing the device
+    - misc: pci_endpoint_test: Re-init completion for every test
+    - md/raid0: add discard support for the 'original' layout
+    - fs: dlm: return positive pid value for F_GETLK
+    - drm/atomic: Allow vblank-enabled + self-refresh "disable"
+    - drm/rockchip: vop: Leave vblank enabled in self-refresh
+    - serial: atmel: don't enable IRQs prematurely
+    - firmware: stratix10-svc: Fix a potential resource leak in
+      svc_create_memory_pool()
+    - hwrng: imx-rngc - fix the timeout for init and self check
+    - ceph: don't let check_caps skip sending responses for revoke msgs
+    - meson saradc: fix clock divider mask length
+    - Revert "8250: add support for ASIX devices with a FIFO bug"
+    - tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in
+      case of error
+    - tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when
+      iterating clk
+    - tracing/histograms: Add histograms to hist_vars if they have referenced
+      variables
+    - ring-buffer: Fix deadloop issue on reading trace_pipe
+    - xtensa: ISS: fix call to split_if_spec
+    - tracing: Fix null pointer dereference in tracing_err_log_open()
+    - tracing/probes: Fix not to count error code to total length
+    - scsi: qla2xxx: Wait for io return on terminate rport
+    - scsi: qla2xxx: Fix potential NULL pointer dereference
+    - scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport()
+    - scsi: qla2xxx: Correct the index of array
+    - scsi: qla2xxx: Pointer may be dereferenced
+    - scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
+    - drm/atomic: Fix potential use-after-free in nonblocking commits
+    - perf probe: Add test for regression introduced by switch to
+      die_get_decl_file()
+    - btrfs: fix warning when putting transaction with qgroups enabled after abort
+    - fuse: revalidate: don't invalidate if interrupted
+    - selftests: tc: set timeout to 15 minutes
+    - can: bcm: Fix UAF in bcm_proc_show()
+    - drm/client: Fix memory leak in drm_client_target_cloned
+    - drm/client: Fix memory leak in drm_client_modeset_probe
+    - ext4: correct inline offset when handling xattrs in inode body
+    - debugobjects: Recheck debug_objects_enabled before reporting
+    - nbd: Add the maximum limit of allocated index in nbd_dev_add
+    - md: fix data corruption for raid456 when reshape restart while grow up
+    - md/raid10: prevent soft lockup while flush writes
+    - posix-timers: Ensure timer ID search-loop limit is valid
+    - arm64: mm: fix VA-range sanity check
+    - sched/fair: Don't balance task to its current running CPU
+    - bpf: Address KCSAN report on bpf_lru_list
+    - devlink: report devlink_port_type_warn source device
+    - wifi: wext-core: Fix -Wstringop-overflow warning in
+      ioctl_standard_iw_point()
+    - wifi: iwlwifi: mvm: avoid baid size integer overflow
+    - igb: Fix igb_down hung on surprise removal
+    - spi: bcm63xx: fix max prepend length
+    - fbdev: imxfb: warn about invalid left/right margin
+    - pinctrl: amd: Use amd_pinconf_set() for all config options
+    - net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()
+    - iavf: Fix use-after-free in free_netdev
+    - net:ipv6: check return value of pskb_trim()
+    - Revert "tcp: avoid the lookup process failing to get sk in ehash table"
+    - fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe
+    - llc: Don't drop packet from non-root netns.
+    - netfilter: nf_tables: fix spurious set element insertion failure
+    - netfilter: nf_tables: can't schedule in nft_chain_validate
+    - tcp: annotate data-races around tp->tcp_tx_delay
+    - net: Replace the limit of TCP_LINGER2 with TCP_FIN_TIMEOUT_MAX
+    - tcp: annotate data-races around tp->linger2
+    - tcp: annotate data-races around rskq_defer_accept
+    - tcp: annotate data-races around tp->notsent_lowat
+    - tcp: annotate data-races around fastopenq.max_qlen
+    - tracing/histograms: Return an error if we fail to add histogram to hist_vars
+      list
+    - Linux 5.4.251
+  * Focal update: v5.4.250 upstream stable release (LP: #2033297)
+    - x86/microcode/AMD: Load late on both threads too
+    - Linux 5.4.250
+  * Focal update: v5.4.249 upstream stable release (LP: #2033278)
+    - nilfs2: reject devices with insufficient block count
+    - mm: rewrite wait_on_page_bit_common() logic
+    - list: add "list_del_init_careful()" to go with "list_empty_careful()"
+    - epoll: ep_autoremove_wake_function should use list_del_init_careful
+    - tracing: Add tracing_reset_all_online_cpus_unlocked() function
+    - x86/purgatory: remove PGO flags
+    - tick/common: Align tick period during sched_timer setup
+    - media: dvbdev: Fix memleak in dvb_register_device
+    - media: dvbdev: fix error logic at dvb_register_device()
+    - media: dvb-core: Fix use-after-free due to race at dvb_register_device()
+    - nilfs2: fix buffer corruption due to concurrent device reads
+    - Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
+    - PCI: hv: Fix a race condition bug in hv_pci_query_relations()
+    - cgroup: Do not corrupt task iteration when rebinding subsystem
+    - mmc: meson-gx: remove redundant mmc_request_done() call from irq context
+    - ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN
+    - writeback: fix dereferencing NULL mapping->host on writeback_page_template
+    - nilfs2: prevent general protection fault in nilfs_clear_dirty_page()
+    - cifs: Clean up DFS referral cache
+    - cifs: Get rid of kstrdup_const()'d paths
+    - cifs: Introduce helpers for finding TCP connection
+    - cifs: Merge is_path_valid() into get_normalized_path()
+    - cifs: Fix potential deadlock when updating vol in cifs_reconnect()
+    - x86/mm: Avoid using set_pgd() outside of real PGD pages
+    - ieee802154: hwsim: Fix possible memory leaks
+    - xfrm: Linearize the skb after offloading if needed.
+    - net: qca_spi: Avoid high load if QCA7000 is not available
+    - mmc: mtk-sd: fix deferred probing
+    - mmc: mvsdio: convert to devm_platform_ioremap_resource
+    - mmc: mvsdio: fix deferred probing
+    - mmc: omap: fix deferred probing
+    - mmc: omap_hsmmc: fix deferred probing
+    - mmc: sdhci-acpi: fix deferred probing
+    - mmc: sh_mmcif: fix deferred probing
+    - mmc: usdhi60rol0: fix deferred probing
+    - ipvs: align inner_mac_header for encapsulation
+    - net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
+    - be2net: Extend xmit workaround to BE3 chip
+    - netfilter: nf_tables: disallow element updates of bound anonymous sets
+    - netfilter: nfnetlink_osf: fix module autoload
+    - Revert "net: phy: dp83867: perform soft reset and retain established link"
+    - sch_netem: acquire qdisc lock in netem_change()
+    - scsi: target: iscsi: Prevent login threads from racing between each other
+    - HID: wacom: Add error check to wacom_parse_and_register()
+    - arm64: Add missing Set/Way CMO encodings
+    - media: cec: core: don't set last_initiator if tx in progress
+    - nfcsim.c: Fix error checking for debugfs_create_dir
+    - usb: gadget: udc: fix NULL dereference in remove()
+    - s390/cio: unregister device when the only path is gone
+    - ASoC: nau8824: Add quirk to active-high jack-detect
+    - ARM: dts: Fix erroneous ADS touchscreen polarities
+    - drm/exynos: vidi: fix a wrong error return
+    - drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl
+    - drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl
+    - x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys
+    - i2c: imx-lpi2c: fix type char overflow issue when calculating the clock
+      cycle
+    - mm: fix VM_BUG_ON(PageTail) and BUG_ON(PageWriteback)
+    - mm: make wait_on_page_writeback() wait for multiple pending writebacks
+    - Linux 5.4.249
+  * allow io_uring to be disabled in runtime (LP: #2035116)
+    - io_uring: add a sysctl to disable io_uring system-wide
+  * CVE-2023-31083
+    - Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO
+  * CVE-2023-4132
+    - media: usb: siano: Fix warning due to null work_func_t function pointer
+  * CVE-2023-3772
+    - xfrm: add NULL check in xfrm_update_ae_params
+  * CVE-2023-0597
+    - random32: add noise from network and scheduling activity
+    - x86/kasan: Map shadow for percpu pages on demand
+    - x86/mm: Randomize per-cpu entry area
+    - x86/mm: Recompute physical address for every page of per-CPU CEA mapping
+    - x86/mm: Populate KASAN shadow for entire per-CPU range of CPU entry area
+    - x86/mm: Do not shuffle CPU entry areas without KASLR
+
+  [ Ubuntu: 5.4.0-164.181 ]
+
+  * focal/linux: 5.4.0-164.181 -proposed tracker (LP: #2033867)
+  * Please enable Renesas RZ platform serial installer (LP: #2022361)
+    - [Config] enable hihope RZ/G2M serial console
+  * Azure: hv_netvsc: add support for vlans in AF_PACKET mode (LP: #2030872)
+    - hv_netvsc: add support for vlans in AF_PACKET mode
+  * systemd mount units fail during boot, while file system is correctly mounted
+    (LP: #1837227)
+    - list: introduce list_for_each_continue()
+    - proc/mounts: add cursor
+  * CVE-2023-40283
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
+  * CVE-2023-20588
+    - x86/bugs: Increase the x86 bugs vector size to two u32s
+    - x86/CPU/AMD: Do not leak quotient data after a division by 0
+    - x86/CPU/AMD: Fix the DIV(0) initial fix attempt
+  * CVE-2023-4194
+    - net: tun_chr_open(): set sk_uid from current_fsuid()
+    - net: tap_open(): set sk_uid from current_fsuid()
+  * CVE-2023-1206
+    - tcp: Reduce chance of collisions in inet6_hashfn().
+  * CVE-2021-4001
+    - bpf: Fix toctou on read-only map's constant scalar tracking
+  * Focal update: v5.4.248 upstream stable release (LP: #2031121)
+    - test_firmware: fix a memory leak with reqs buffer
+    - KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
+    - dasd: refactor dasd_ioctl_information
+    - s390/dasd: Use correct lock while counting channel queue length
+    - power: supply: ab8500: Fix external_power_changed race
+    - power: supply: sc27xx: Fix external_power_changed race
+    - power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() +
+      schedule()
+    - ARM: dts: vexpress: add missing cache properties
+    - power: supply: Ratelimit no data debug output
+    - platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
+    - regulator: Fix error checking for debugfs_create_dir
+    - irqchip/meson-gpio: Mark OF related data as maybe unused
+    - power: supply: Fix logic checking if system is running from battery
+    - btrfs: handle memory allocation failure in btrfs_csum_one_bio
+    - parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
+    - parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
+    - MIPS: Alchemy: fix dbdma2
+    - mips: Move initrd_start check after initrd address sanitisation.
+    - xen/blkfront: Only check REQ_FUA for writes
+    - drm:amd:amdgpu: Fix missing buffer object unlock in failure path
+    - ocfs2: fix use-after-free when unmounting read-only filesystem
+    - ocfs2: check new file size on fallocate call
+    - nios2: dts: Fix tse_mac "max-frame-size" property
+    - nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
+    - nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
+    - kexec: support purgatories with .text.hot sections
+    - powerpc/purgatory: remove PGO flags
+    - nouveau: fix client work fence deletion race
+    - RDMA/uverbs: Restrict usage of privileged QKEYs
+    - net: usb: qmi_wwan: add support for Compal RXM-G1
+    - ALSA: hda/realtek: Add a quirk for Compaq N14JP6
+    - Remove DECnet support from kernel
+    - [Config] updateconfigs for DECNET
+    - USB: serial: option: add Quectel EM061KGL series
+    - serial: lantiq: add missing interrupt ack
+    - usb: dwc3: gadget: Reset num TRBs before giving back the request
+    - spi: spi-fsl-dspi: Remove unused chip->void_write_data
+    - spi: fsl-dspi: avoid SCK glitches with continuous transfers
+    - netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
+    - ping6: Fix send to link-local addresses with VRF.
+    - RDMA/rxe: Remove the unused variable obj
+    - RDMA/rxe: Removed unused name from rxe_task struct
+    - RDMA/rxe: Fix the use-before-initialization error of resp_pkts
+    - iavf: remove mask from iavf_irq_enable_queues()
+    - IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
+    - IB/isert: Fix dead lock in ib_isert
+    - IB/isert: Fix possible list corruption in CMA handler
+    - IB/isert: Fix incorrect release of isert connection
+    - ipvlan: fix bound dev checking for IPv6 l3s mode
+    - sctp: fix an error code in sctp_sf_eat_auth()
+    - igb: fix nvm.ops.read() error handling
+    - drm/nouveau/dp: check for NULL nv_connector->native_mode
+    - drm/nouveau/kms: Don't change EDID when it hasn't actually changed
+    - drm/nouveau: add nv_encoder pointer check for NULL
+    - net/sched: cls_api: Fix lockup on flushing explicitly created chain
+    - net: lapbether: only support ethernet devices
+    - net: tipc: resize nlattr array to correct size
+    - selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
+    - afs: Fix vlserver probe RTT handling
+    - neighbour: Remove unused inline function neigh_key_eq16()
+    - net: Remove unused inline function dst_hold_and_use()
+    - neighbour: delete neigh_lookup_nodev as not used
+    - drm/nouveau/kms: Fix NULL pointer dereference in
+      nouveau_connector_detect_depth
+    - mmc: block: ensure error propagation for non-blk
+    - Linux 5.4.248
+  * Focal update: v5.4.247 upstream stable release (LP: #2030818)
+    - blk-iocost: avoid 64-bit division in ioc_timer_fn
+    - block/blk-iocost (gcc13): keep large values in a new enum
+    - i40iw: fix build warning in i40iw_manage_apbvt()
+    - i40e: fix build warnings in i40e_alloc.h
+    - spi: qup: Request DMA before enabling clocks
+    - neighbour: Replace zero-length array with flexible-array member
+    - neighbour: fix unaligned access to pneigh_entry
+    - net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods
+    - Bluetooth: Fix l2cap_disconnect_req deadlock
+    - Bluetooth: L2CAP: Add missing checks for invalid DCID
+    - netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper
+    - netfilter: ipset: Add schedule point in call_ad().
+    - rfs: annotate lockless accesses to sk->sk_rxhash
+    - rfs: annotate lockless accesses to RFS sock flow table
+    - net: sched: move rtm_tca_policy declaration to include file
+    - net: sched: fix possible refcount leak in tc_chain_tmplt_add()
+    - lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release()
+    - bnxt_en: Query default VLAN before VNIC setup on a VF
+    - batman-adv: Broken sync while rescheduling delayed work
+    - Input: xpad - delete a Razer DeathAdder mouse VID/PID entry
+    - Input: psmouse - fix OOB access in Elantech protocol
+    - ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01
+    - ALSA: hda/realtek: Add Lenovo P3 Tower platform
+    - drm/amdgpu: fix xclk freq on CHIP_STONEY
+    - can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in
+      J1939 Socket
+    - can: j1939: change j1939_netdev_lock type to mutex
+    - can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
+    - ceph: fix use-after-free bug for inodes when flushing capsnaps
+    - Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
+    - rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting
+    - pinctrl: meson-axg: add missing GPIOA_18 gpio group
+    - usb: usbfs: Enforce page requirements for mmap
+    - usb: usbfs: Use consistent mmap functions
+    - bonding (gcc13): synchronize bond_{a,t}lb_xmit() types
+    - i2c: sprd: Delete i2c adapter in .remove's error path
+    - eeprom: at24: also select REGMAP
+    - ext4: only check dquot_initialize_needed() when debugging
+    - drm/atomic: Don't pollute crtc_state->mode_blob with error pointers
+    - rbd: get snapshot context after exclusive lock is ensured to be held
+    - mtd: spinand: macronix: Add support for MX35LFxGE4AD
+    - Linux 5.4.247
+  * CVE-2023-4128
+    - net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_route: No longer copy tcf_result on update to avoid use-
+      after-free
+  * CVE-2023-3863
+    - nfc: llcp: simplify llcp_sock_connect() error paths
+    - net: nfc: Fix use-after-free caused by nfc_llcp_find_local
+  * CVE-2023-3212
+    - gfs2: Don't deref jdesc in evict
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 26 Oct 2023 23:43:23 +0800
+
+linux-ein (5.4.0-1040.47) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1040.47 -proposed tracker (LP: #2037063)
+
+  * [K4500-NXP][UC20] Enable VPU For HW Accelerated Video Decoding (LP:
+    #2029414)
+    - [Config] ein: Enable Hantro VPU decoder for IMX8mm devices
+
+  * Miscellaneous Ubuntu changes
+    - snap: Import snapcraft.yaml for Medina
+
+  [ Ubuntu: 5.4.0-163.180 ]
+
+  * focal/linux: 5.4.0-163.180 -proposed tracker (LP: #2034247)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+  * CVE-2023-40283
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
+  * CVE-2023-20588
+    - x86/bugs: Increase the x86 bugs vector size to two u32s
+    - x86/CPU/AMD: Do not leak quotient data after a division by 0
+    - x86/CPU/AMD: Fix the DIV(0) initial fix attempt
+  * CVE-2023-4128
+    - net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_route: No longer copy tcf_result on update to avoid use-
+      after-free
+
+  [ Ubuntu: 5.4.0-162.179 ]
+
+  * focal/linux: 5.4.0-162.179 -proposed tracker (LP: #2031128)
+  * libgnutls report "trap invalid opcode" when trying to install packages over
+    https (LP: #2031093)
+    - [Config]: disable CONFIG_GDS_FORCE_MITIGATION
+
+  [ Ubuntu: 5.4.0-160.177 ]
+
+  * focal/linux: 5.4.0-160.177 -proposed tracker (LP: #2031017)
+  * Fix boot test warning for log_check "CPU: 0 PID: 0 at
+    arch/x86/kernel/fpu/xstate.c:878 get_xsave_addr+0x98/0xb0" (LP: #2031022)
+    - x86/pkeys: Revert a5eff7259790 ("x86/pkeys: Add PKRU value to init_fpstate")
+
+  [ Ubuntu: 5.4.0-158.175 ]
+
+  * focal/linux: 5.4.0-158.175 -proposed tracker (LP: #2030466)
+  * CVE-2022-40982
+    - x86/mm: Initialize text poking earlier
+    - x86/mm: fix poking_init() for Xen PV guests
+    - x86/mm: Use mm_alloc() in poking_init()
+    - mm: Move mm_cachep initialization to mm_init()
+    - init: Provide arch_cpu_finalize_init()
+    - x86/cpu: Switch to arch_cpu_finalize_init()
+    - ARM: cpu: Switch to arch_cpu_finalize_init()
+    - sparc/cpu: Switch to arch_cpu_finalize_init()
+    - um/cpu: Switch to arch_cpu_finalize_init()
+    - init: Remove check_bugs() leftovers
+    - init: Invoke arch_cpu_finalize_init() earlier
+    - init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
+    - x86/fpu: Remove cpuinfo argument from init functions
+    - x86/fpu: Mark init functions __init
+    - x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
+    - x86/xen: Fix secondary processors' FPU initialization
+    - x86/speculation: Add Gather Data Sampling mitigation
+    - x86/speculation: Add force option to GDS mitigation
+    - x86/speculation: Add Kconfig option for GDS
+    - KVM: Add GDS_NO support to KVM
+    - Documentation/x86: Fix backwards on/off logic about YMM support
+    - [Config]: Enable CONFIG_ARCH_HAS_CPU_FINALIZE_INIT and
+      CONFIG_GDS_FORCE_MITIGATION
+  * CVE-2023-3609
+    - net/sched: cls_u32: Fix reference counter leak leading to overflow
+  * CVE-2023-20593
+    - x86/cpu/amd: Move the errata checking functionality up
+    - x86/cpu/amd: Add a Zenbleed fix
+  * CVE-2023-3611
+    - net/sched: sch_qfq: account for stab overhead in qfq_enqueue
+  * stacked overlay file system mounts that have chroot() called against them
+    appear to be getting locked (by the kernel most likely?) (LP: #2016398)
+    - SAUCE: overlayfs: fix reference count mismatch
+  * Focal update: v5.4.246 upstream stable release (LP: #2028981)
+    - RDMA/efa: Fix unsupported page sizes in device
+    - RDMA/bnxt_re: Enable SRIOV VF support on Broadcom's 57500 adapter series
+    - RDMA/bnxt_re: Refactor queue pair creation code
+    - RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx
+    - iommu/rockchip: Fix unwind goto issue
+    - iommu/amd: Don't block updates to GATag if guest mode is on
+    - dmaengine: pl330: rename _start to prevent build error
+    - net/mlx5: fw_tracer, Fix event handling
+    - netrom: fix info-leak in nr_write_internal()
+    - af_packet: Fix data-races of pkt_sk(sk)->num.
+    - amd-xgbe: fix the false linkup in xgbe_phy_status
+    - mtd: rawnand: ingenic: fix empty stub helper definitions
+    - af_packet: do not use READ_ONCE() in packet_bind()
+    - tcp: deny tcp_disconnect() when threads are waiting
+    - tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set
+    - net/sched: sch_ingress: Only create under TC_H_INGRESS
+    - net/sched: sch_clsact: Only create under TC_H_CLSACT
+    - net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs
+    - net/sched: Prohibit regrafting ingress or clsact Qdiscs
+    - net: sched: fix NULL pointer dereference in mq_attach
+    - ocfs2/dlm: move BITS_TO_BYTES() to bitops.h for wider use
+    - net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
+    - udp6: Fix race condition in udp6_sendmsg & connect
+    - net: dsa: mv88e6xxx: Increase wait after reset deactivation
+    - mtd: rawnand: marvell: ensure timing values are written
+    - mtd: rawnand: marvell: don't set the NAND frequency select
+    - watchdog: menz069_wdt: fix watchdog initialisation
+    - mailbox: mailbox-test: Fix potential double-free in
+      mbox_test_message_write()
+    - ARM: 9295/1: unwind:fix unwind abort for uleb128 case
+    - media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE
+    - fbdev: modedb: Add 1920x1080 at 60 Hz video mode
+    - fbdev: stifb: Fix info entry in sti_struct on error path
+    - nbd: Fix debugfs_create_dir error checking
+    - ASoC: dwc: limit the number of overrun messages
+    - xfrm: Check if_id in inbound policy/secpath match
+    - ASoC: ssm2602: Add workaround for playback distortions
+    - media: dvb_demux: fix a bug for the continuity counter
+    - media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer()
+    - media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer()
+    - media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer()
+    - media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer
+    - media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
+    - media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address
+    - media: netup_unidvb: fix irq init by register it at the end of probe
+    - media: dvb_ca_en50221: fix a size write bug
+    - media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb()
+    - media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table
+    - media: dvb-core: Fix use-after-free due on race condition at dvb_net
+    - media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221
+    - wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value
+    - ARM: dts: stm32: add pin map for CAN controller on stm32f7
+    - arm64/mm: mark private VM_FAULT_X defines as vm_fault_t
+    - scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed
+    - wifi: b43: fix incorrect __packed annotation
+    - netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with
+      CONFIG_NF_NAT
+    - ALSA: oss: avoid missing-prototype warnings
+    - atm: hide unused procfs functions
+    - mailbox: mailbox-test: fix a locking issue in mbox_test_message_write()
+    - iio: adc: mxs-lradc: fix the order of two cleanup operations
+    - HID: google: add jewel USB id
+    - HID: wacom: avoid integer overflow in wacom_intuos_inout()
+    - iio: light: vcnl4035: fixed chip ID check
+    - iio: dac: mcp4725: Fix i2c_master_send() return value handling
+    - iio: dac: build ad5758 driver when AD5758 is selected
+    - net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818
+    - usb: gadget: f_fs: Add unbind event before functionfs_unbind
+    - misc: fastrpc: return -EPIPE to invocations on device removal
+    - misc: fastrpc: reject new invocations during device removal
+    - scsi: stex: Fix gcc 13 warnings
+    - ata: libata-scsi: Use correct device no in ata_find_dev()
+    - flow_dissector: work around stack frame size warning
+    - x86/boot: Wrap literal addresses in absolute_pointer()
+    - ACPI: thermal: drop an always true check
+    - gcc-12: disable '-Wdangling-pointer' warning for now
+    - eth: sun: cassini: remove dead code
+    - kernel/extable.c: use address-of operator on section symbols
+    - treewide: Remove uninitialized_var() usage
+    - lib/dynamic_debug.c: use address-of operator on section symbols
+    - wifi: rtlwifi: remove always-true condition pointed out by GCC 12
+    - mmc: vub300: fix invalid response handling
+    - tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of
+      UARTCTRL_SBK
+    - selinux: don't use make's grouped targets feature yet
+    - tracing/probe: trace_probe_primary_from_call(): checked list_first_entry
+    - ext4: add EA_INODE checking to ext4_iget()
+    - ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find()
+    - ext4: disallow ea_inodes with extended attributes
+    - ext4: add lockdep annotations for i_data_sem for ea_inode's
+    - fbcon: Fix null-ptr-deref in soft_cursor
+    - test_firmware: fix the memory leak of the allocated firmware buffer
+    - regmap: Account for register length when chunking
+    - scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD)
+    - scsi: dpt_i2o: Do not process completions with invalid addresses
+    - [Config] updateconfigs for SCSI_DPT_I2O
+    - RDMA/bnxt_re: Remove set but not used variable 'dev_attr'
+    - RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds
+    - drm/edid: Fix uninitialized variable in drm_cvt_modes()
+    - wifi: rtlwifi: 8192de: correct checking of IQK reload
+    - drm/edid: fix objtool warning in drm_cvt_modes()
+    - Linux 5.4.246
+  * Focal update: v5.4.245 upstream stable release (LP: #2028980)
+    - cdc_ncm: Implement the 32-bit version of NCM Transfer Block
+    - net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize
+    - power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to
+      stabilize
+    - power: supply: core: Refactor
+      power_supply_set_input_current_limit_from_supplier()
+    - power: supply: bq24190: Call power_supply_changed() after updating input
+      current
+    - fs: fix undefined behavior in bit shift for SB_NOUSER
+    - net/mlx5: devcom only supports 2 ports
+    - net/mlx5: Devcom, serialize devcom registration
+    - cdc_ncm: Fix the build warning
+    - io_uring: always grab lock in io_cancel_async_work()
+    - io_uring: don't drop completion lock before timer is fully initialized
+    - io_uring: have io_kill_timeout() honor the request references
+    - bluetooth: Add cmd validity checks at the start of hci_sock_ioctl()
+    - binder: fix UAF caused by faulty buffer cleanup
+    - ipv{4,6}/raw: fix output xfrm lookup wrt protocol
+    - netfilter: ctnetlink: Support offloaded conntrack entry deletion
+    - Linux 5.4.245
+  * Focal update: v5.4.244 upstream stable release (LP: #2028697)
+    - driver core: add a helper to setup both the of_node and fwnode of a device
+    - drm/mipi-dsi: Set the fwnode for mipi_dsi_device
+    - ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings
+    - linux/dim: Do nothing if no time delta between samples
+    - net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs().
+    - netfilter: conntrack: fix possible bug_on with enable_hooks=1
+    - netlink: annotate accesses to nlk->cb_running
+    - net: annotate sk->sk_err write from do_recvmmsg()
+    - net: tap: check vlan with eth_type_vlan() method
+    - net: add vlan_get_protocol_and_depth() helper
+    - net: datagram: fix data-races in datagram_poll()
+    - af_unix: Fix a data race of sk->sk_receive_queue->qlen.
+    - af_unix: Fix data races around sk->sk_shutdown.
+    - fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
+    - drm/amd/display: Use DC_LOG_DC in the trasform pixel function
+    - regmap: cache: Return error in cache sync operations for REGCACHE_NONE
+    - firmware: arm_sdei: Fix sleep from invalid context BUG
+    - ACPI: EC: Fix oops when removing custom query handlers
+    - drm/tegra: Avoid potential 32-bit integer overflow
+    - ACPICA: Avoid undefined behavior: applying zero offset to null pointer
+    - ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in
+      acpi_db_display_objects
+    - wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex
+    - ext2: Check block size validity during mount
+    - scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow
+    - net: pasemi: Fix return type of pasemi_mac_start_tx()
+    - net: Catch invalid index in XPS mapping
+    - scsi: target: iscsit: Free cmds before session free
+    - lib: cpu_rmap: Avoid use after free on rmap->obj array entries
+    - scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race
+      condition
+    - gfs2: Fix inode height consistency check
+    - ext4: set goal start correctly in ext4_mb_normalize_request
+    - ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
+    - f2fs: fix to drop all dirty pages during umount() if cp_error is set
+    - samples/bpf: Fix fout leak in hbm's run_bpf_prog
+    - wifi: iwlwifi: pcie: fix possible NULL pointer dereference
+    - wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf
+    - wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace
+    - Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
+    - HID: logitech-hidpp: Don't use the USB serial for USB devices
+    - HID: logitech-hidpp: Reconcile USB and Unifying serials
+    - spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3
+    - HID: wacom: generic: Set battery quirk only when we see battery data
+    - usb: typec: tcpm: fix multiple times discover svids error
+    - serial: 8250: Reinit port->pm on port specific driver unbind
+    - mcb-pci: Reallocate memory region to avoid memory overlapping
+    - sched: Fix KCSAN noinstr violation
+    - recordmcount: Fix memory leaks in the uwrite function
+    - RDMA/core: Fix multiple -Warray-bounds warnings
+    - clk: tegra20: fix gcc-7 constant overflow warning
+    - iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any
+    - Input: xpad - add constants for GIP interface numbers
+    - phy: st: miphy28lp: use _poll_timeout functions for waits
+    - mfd: dln2: Fix memory leak in dln2_probe()
+    - btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid
+    - btrfs: fix space cache inconsistency after error loading it from disk
+    - ASoC: fsl_micfil: register platform component before registering cpu dai
+    - cpupower: Make TSC read per CPU for Mperf monitor
+    - af_key: Reject optional tunnel/BEET mode templates in outbound policies
+    - net: fec: Better handle pm_runtime_get() failing in .remove()
+    - ALSA: firewire-digi00x: prevent potential use after free
+    - vsock: avoid to close connected socket after the timeout
+    - serial: arc_uart: fix of_iomap leak in `arc_serial_probe`
+    - ip6_gre: Fix skb_under_panic in __gre6_xmit()
+    - ip6_gre: Make o_seqno start from 0 in native mode
+    - ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
+    - erspan: get the proto with the md version for collect_md
+    - net: hns3: fix sending pfc frames after reset issue
+    - net: hns3: fix reset delay time to avoid configuration timeout
+    - media: netup_unidvb: fix use-after-free at del_timer()
+    - drm/exynos: fix g2d_open/close helper function definitions
+    - net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
+    - net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
+    - net: bcmgenet: Restore phy_stop() depending upon suspend/close
+    - wifi: iwlwifi: mvm: don't trust firmware n_channels
+    - cassini: Fix a memory leak in the error handling path of cas_init_one()
+    - igb: fix bit_shift to be in [1..8] range
+    - vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
+    - USB: usbtmc: Fix direction for 0-length ioctl control messages
+    - usb-storage: fix deadlock when a scsi command timeouts more than once
+    - USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value
+    - usb: dwc3: debugfs: Resume dwc3 before accessing registers
+    - usb: typec: altmodes/displayport: fix pin_assignment_show
+    - ALSA: hda: Fix Oops by 9.1 surround channel names
+    - ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table
+    - ALSA: hda/realtek: Add a quirk for HP EliteDesk 805
+    - ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
+    - can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag
+    - can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop()
+    - can: kvaser_pciefd: Call request_irq() before enabling interrupts
+    - can: kvaser_pciefd: Empty SRB buffer in probe
+    - can: kvaser_pciefd: Clear listen-only bit if not explicitly requested
+    - can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt
+    - can: kvaser_pciefd: Disable interrupts in probe error path
+    - KVM: x86: do not report a vCPU as preempted outside instruction boundaries
+    - statfs: enforce statfs[64] structure initialization
+    - serial: Add support for Advantech PCI-1611U card
+    - ceph: force updating the msg pointer in non-split case
+    - tpm/tpm_tis: Disable interrupts for more Lenovo devices
+    - powerpc/64s/radix: Fix soft dirty tracking
+    - nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()
+    - netfilter: nftables: add nft_parse_register_load() and use it
+    - netfilter: nftables: add nft_parse_register_store() and use it
+    - netfilter: nftables: statify nft_parse_register()
+    - netfilter: nf_tables: validate registers coming from userspace.
+    - netfilter: nf_tables: add nft_setelem_parse_key()
+    - netfilter: nf_tables: allow up to 64 bytes in the set element data area
+    - netfilter: nf_tables: stricter validation of element data
+    - netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT
+      flag
+    - netfilter: nf_tables: hold mutex on netns pre_exit path
+    - HID: wacom: Force pen out of prox if no events have been received in a while
+    - HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs
+    - HID: wacom: add three styli to wacom_intuos_get_tool_type
+    - lib/string_helpers: Introduce string_upper() and string_lower() helpers
+    - usb: gadget: u_ether: Convert prints to device prints
+    - usb: gadget: u_ether: Fix host MAC address case
+    - vc_screen: rewrite vcs_size to accept vc, not inode
+    - vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
+    - s390/qdio: get rid of register asm
+    - s390/qdio: fix do_sqbs() inline assembly constraint
+    - watchdog: sp5100_tco: Immediately trigger upon starting.
+    - spi: fsl-spi: Re-organise transfer bits_per_word adaptation
+    - spi: fsl-cpm: Use 16 bit mode for large transfers with even size
+    - mt76: mt7615: Fix build with older compilers
+    - ALSA: hda/ca0132: add quirk for EVGA X299 DARK
+    - ALSA: hda/realtek: Enable headset onLenovo M70/M90
+    - m68k: Move signal frame following exception on 68020/030
+    - parisc: Handle kgdb breakpoints only in kernel context
+    - parisc: Allow to reboot machine after system halt
+    - gpio: mockup: Fix mode of debugfs files
+    - btrfs: use nofs when cleaning up aborted transactions
+    - selftests/memfd: Fix unknown type name build failure
+    - parisc: Fix flush_dcache_page() for usage from irq context
+    - x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms
+    - debugobjects: Don't wake up kswapd from fill_pool()
+    - fbdev: udlfb: Fix endpoint check
+    - net: fix stack overflow when LRO is disabled for virtual interfaces
+    - udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
+    - USB: core: Add routines for endpoint checks in old drivers
+    - USB: sisusbvga: Add endpoint checks
+    - media: radio-shark: Add endpoint checks
+    - net: fix skb leak in __skb_tstamp_tx()
+    - selftests: fib_tests: mute cleanup error message
+    - bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields
+    - ipv6: Fix out-of-bounds access in ipv6_find_tlv()
+    - power: supply: leds: Fix blink to LED on transition
+    - power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition
+    - power: supply: bq27xxx: Fix I2C IRQ race on remove
+    - power: supply: bq27xxx: Fix poll_interval handling and races on remove
+    - power: supply: sbs-charger: Fix INHIBITED bit for Status reg
+    - coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
+    - xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
+    - x86/show_trace_log_lvl: Ensure stack pointer is aligned, again
+    - ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg
+    - forcedeth: Fix an error handling path in nv_probe()
+    - net/mlx5: Fix error message when failing to allocate device memory
+    - net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device
+    - 3c589_cs: Fix an error handling path in tc589_probe()
+    - Linux 5.4.244
+  * Focal update: v5.4.243 upstream stable release (LP: #2025387)
+    - counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
+    - drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
+    - bluetooth: Perform careful capability checks in hci_sock_ioctl()
+    - USB: serial: option: add UNISOC vendor and TOZED LT70C product
+    - iio: adc: palmas_gpadc: fix NULL dereference on rmmod
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750
+    - asm-generic/io.h: suppress endianness warnings for readq() and writeq()
+    - USB: dwc3: fix runtime pm imbalance on probe errors
+    - USB: dwc3: fix runtime pm imbalance on unbind
+    - perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into
+      sysconf(__SC_THREAD_STACK_MIN_VALUE)
+    - staging: iio: resolver: ads1210: fix config mode
+    - debugfs: regset32: Add Runtime PM support
+    - xhci: fix debugfs register accesses while suspended
+    - MIPS: fw: Allow firmware to pass a empty env
+    - ipmi:ssif: Add send_retries increment
+    - ipmi: fix SSIF not responding under certain cond.
+    - kheaders: Use array declaration instead of char
+    - pwm: meson: Fix axg ao mux parents
+    - pwm: meson: Fix g12a ao clk81 name
+    - ring-buffer: Sync IRQ works before buffer destruction
+    - reiserfs: Add security prefix to xattr name in reiserfs_security_write()
+    - KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted
+    - i2c: omap: Fix standard mode false ACK readings
+    - Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path"
+    - ubifs: Fix memleak when insert_old_idx() failed
+    - ubi: Fix return value overwrite issue in try_write_vid_and_data()
+    - ubifs: Free memory for tmpfile name
+    - selinux: fix Makefile dependencies of flask.h
+    - selinux: ensure av_permissions.h is built when needed
+    - tpm, tpm_tis: Do not skip reset of original interrupt vector
+    - erofs: stop parsing non-compact HEAD index if clusterofs is invalid
+    - erofs: fix potential overflow calculating xattr_isize
+    - drm/rockchip: Drop unbalanced obj unref
+    - drm/vgem: add missing mutex_destroy
+    - drm/probe-helper: Cancel previous job before starting new one
+    - arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table
+    - arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table
+    - EDAC/skx: Fix overflows on the DRAM row address mapping arrays
+    - ARM: dts: qcom: ipq4019: Fix the PCI I/O port range
+    - ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
+    - ARM: dts: qcom: ipq8064: Fix the PCI I/O port range
+    - media: bdisp: Add missing check for create_workqueue
+    - media: uapi: add MEDIA_BUS_FMT_METADATA_FIXED media bus format.
+    - media: av7110: prevent underflow in write_ts_to_decoder()
+    - firmware: qcom_scm: Clear download bit during reboot
+    - drm/msm: fix unbalanced pm_runtime_enable in adreno_gpu_{init, cleanup}
+    - drm/msm/adreno: Defer enabling runpm until hw_init()
+    - drm/msm/adreno: drop bogus pm_runtime_set_active()
+    - mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
+    - drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe()
+    - regulator: core: Consistently set mutex_owner when using
+      ww_mutex_lock_slow()
+    - regulator: core: Avoid lockdep reports when resolving supplies
+    - x86/apic: Fix atomic update of offset in reserve_eilvt_offset()
+    - media: dm1105: Fix use after free bug in dm1105_remove due to race condition
+    - media: saa7134: fix use after free bug in saa7134_finidev due to race
+      condition
+    - media: rcar_fdp1: simplify error check logic at fdp_open()
+    - media: rcar_fdp1: fix pm_runtime_get_sync() usage count
+    - media: rcar_fdp1: Make use of the helper function
+      devm_platform_ioremap_resource()
+    - media: rcar_fdp1: Fix the correct variable assignments
+    - media: rcar_fdp1: Fix refcount leak in probe and remove function
+    - media: rc: gpio-ir-recv: Fix support for wake-up
+    - regulator: stm32-pwr: fix of_iomap leak
+    - x86/ioapic: Don't return 0 from arch_dynirq_lower_bound()
+    - arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step
+    - debugobject: Prevent init race with static objects
+    - timekeeping: Split jiffies seqlock
+    - tick/sched: Use tick_next_period for lockless quick check
+    - tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64()
+    - tick/sched: Optimize tick_do_update_jiffies64() further
+    - tick: Get rid of tick_period
+    - tick/common: Align tick period with the HZ tick.
+    - wifi: ath6kl: minor fix for allocation size
+    - wifi: ath9k: hif_usb: fix memory leak of remain_skbs
+    - wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list()
+    - wifi: ath6kl: reduce WARN to dev_dbg() in callback
+    - tools: bpftool: Remove invalid \' json escape
+    - wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser()
+    - wifi: rtw88: mac: Return the original error from rtw_mac_power_switch()
+    - scm: fix MSG_CTRUNC setting condition for SO_PASSSEC
+    - vlan: partially enable SIOCSHWTSTAMP in container
+    - net/packet: annotate accesses to po->xmit
+    - net/packet: convert po->origdev to an atomic flag
+    - net/packet: convert po->auxdata to an atomic flag
+    - scsi: target: iscsit: Fix TAS handling during conn cleanup
+    - scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
+    - f2fs: handle dqget error in f2fs_transfer_project_quota()
+    - rtlwifi: Start changing RT_TRACE into rtl_dbg
+    - rtlwifi: Replace RT_TRACE with rtl_dbg
+    - wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg()
+    - wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg()
+    - bpftool: Fix bug for long instructions in program CFG dumps
+    - crypto: drbg - make drbg_prepare_hrng() handle jent instantiation errors
+    - crypto: drbg - Only fail when jent is unavailable in FIPS mode
+    - scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup()
+    - bpf, sockmap: fix deadlocks in the sockhash and sockmap
+    - nvme: handle the persistent internal error AER
+    - nvme: fix async event trace event
+    - nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"
+    - bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap
+    - md/raid10: fix leak of 'r10bio->remaining' for recovery
+    - md/raid10: fix memleak for 'conf->bio_split'
+    - md: update the optimal I/O size on reshape
+    - md/raid10: fix memleak of md thread
+    - wifi: iwlwifi: make the loop for card preparation effective
+    - wifi: iwlwifi: mvm: check firmware response size
+    - ixgbe: Allow flow hash to be set via ethtool
+    - ixgbe: Enable setting RSS table to default values
+    - bpf: Don't EFAULT for getsockopt with optval=NULL
+    - netfilter: nf_tables: don't write table validation state without mutex
+    - ipv4: Fix potential uninit variable access bug in __ip_make_skb()
+    - netlink: Use copy_to_user() for optval in netlink_getsockopt().
+    - net: amd: Fix link leak when verifying config failed
+    - tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp.
+    - pstore: Revert pmsg_lock back to a normal mutex
+    - usb: host: xhci-rcar: remove leftover quirk handling
+    - fpga: bridge: fix kernel-doc parameter description
+    - iio: light: max44009: add missing OF device matching
+    - usb: gadget: udc: renesas_usb3: Fix use after free bug in
+      renesas_usb3_remove due to race condition
+    - PCI: imx6: Install the fault handler only on compatible match
+    - genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
+    - ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ
+    - ASoC: es8316: Handle optional IRQ assignment
+    - linux/vt_buffer.h: allow either builtin or modular for macros
+    - spi: qup: Don't skip cleanup in remove's error path
+    - spi: fsl-spi: Fix CPM/QE mode Litte Endian
+    - vmci_host: fix a race condition in vmci_host_poll() causing GPF
+    - of: Fix modalias string generation
+    - ia64: mm/contig: fix section mismatch warning/error
+    - ia64: salinfo: placate defined-but-not-used warning
+    - scripts/gdb: bail early if there are no clocks
+    - PM: domains: Fix up terminology with parent/child
+    - scripts/gdb: bail early if there are no generic PD
+    - mtd: spi-nor: cadence-quadspi: Make driver independent of flash geometry
+    - mtd: spi-nor: cadence-quadspi: Provide a way to disable DAC mode
+    - mtd: spi-nor: cadence-quadspi: Don't initialize rx_dma_complete on failure
+    - mtd: spi-nor: cadence-quadspi: Handle probe deferral while requesting DMA
+      channel
+    - spi: cadence-quadspi: fix suspend-resume implementations
+    - uapi/linux/const.h: prefer ISO-friendly __typeof__
+    - sh: sq: Fix incorrect element size for allocating bitmap buffer
+    - usb: chipidea: fix missing goto in `ci_hdrc_probe`
+    - usb: mtu3: fix kernel panic at qmu transfer done irq handler
+    - firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
+    - tty: serial: fsl_lpuart: adjust buffer length to the intended size
+    - serial: 8250: Add missing wakeup event reporting
+    - staging: rtl8192e: Fix W_DISABLE# does not work after stop/start
+    - spmi: Add a check for remove callback when removing a SPMI driver
+    - macintosh/windfarm_smu_sat: Add missing of_node_put()
+    - powerpc/mpc512x: fix resource printk format warning
+    - powerpc/wii: fix resource printk format warnings
+    - powerpc/sysdev/tsi108: fix resource printk format warnings
+    - macintosh: via-pmu-led: requires ATA to be set
+    - powerpc/rtas: use memmove for potentially overlapping buffer copy
+    - perf/core: Fix hardlockup failure caused by perf throttle
+    - RDMA/siw: Fix potential page_array out of range access
+    - RDMA/rdmavt: Delete unnecessary NULL check
+    - rtc: omap: include header for omap_rtc_power_off_program prototype
+    - RDMA/mlx4: Prevent shift wrapping in set_user_sq_size()
+    - rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
+    - power: supply: generic-adc-battery: fix unit scaling
+    - clk: add missing of_node_put() in "assigned-clocks" property parsing
+    - RDMA/siw: Remove namespace check from siw_netdev_event()
+    - IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order
+    - NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease
+    - firmware: raspberrypi: Keep count of all consumers
+    - firmware: raspberrypi: Introduce devm_rpi_firmware_get()
+    - input: raspberrypi-ts: Release firmware handle when not needed
+    - Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe
+    - SUNRPC: remove the maximum number of retries in call_bind_status
+    - RDMA/mlx5: Use correct device num_ports when modify DC
+    - clocksource/drivers/davinci: Avoid trailing '\n' hidden in pr_fmt()
+    - clocksource: davinci: axe a pointless __GFP_NOFAIL
+    - clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when
+      init fails
+    - openrisc: Properly store r31 to pt_regs on unhandled exceptions
+    - ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline
+    - leds: TI_LMU_COMMON: select REGMAP instead of depending on it
+    - dmaengine: mv_xor_v2: Fix an error code.
+    - pwm: mtk-disp: Don't check the return code of pwmchip_remove()
+    - pwm: mtk-disp: Adjust the clocks to avoid them mismatch
+    - pwm: mtk-disp: Disable shadow registers before setting backlight values
+    - phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and
+      ulpi_port
+    - dmaengine: dw-edma: Fix to change for continuous transfer
+    - dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing
+    - dmaengine: at_xdmac: do not enable all cyclic channels
+    - afs: Fix updating of i_size with dv jump from server
+    - parisc: Fix argument pointer in real64_call_asm()
+    - nilfs2: do not write dirty data after degenerating to read-only
+    - nilfs2: fix infinite loop in nilfs_mdt_get_block()
+    - md/raid10: fix null-ptr-deref in raid10_sync_request
+    - mailbox: zynqmp: Fix IPI isr handling
+    - mailbox: zynqmp: Fix typo in IPI documentation
+    - wifi: rtl8xxxu: RTL8192EU always needs full init
+    - clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent
+    - scripts/gdb: fix lx-timerlist for Python3
+    - btrfs: scrub: reject unsupported scrub flags
+    - s390/dasd: fix hanging blockdevice after request requeue
+    - dm clone: call kmem_cache_destroy() in dm_clone_init() error path
+    - dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path
+    - dm flakey: fix a crash with invalid table line
+    - perf auxtrace: Fix address filter entire kernel size
+    - perf intel-pt: Fix CYC timestamps after standalone CBR
+    - debugobject: Ensure pool refill (again)
+    - nohz: Add TICK_DEP_BIT_RCU
+    - tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
+    - mailbox: zynq: Switch to flexible array to simplify code
+    - mailbox: zynqmp: Fix counts of child nodes
+    - dm verity: skip redundant verity_handle_err() on I/O errors
+    - dm verity: fix error handling for check_at_most_once on FEC
+    - crypto: inside-secure - irq balance
+    - crypto: safexcel - Cleanup ring IRQ workqueues on load failure
+    - net/ncsi: clear Tx enable mode when handling a Config required AEN
+    - net/sched: cls_api: remove block_cb from driver_list before freeing
+    - sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
+    - net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu
+    - writeback: fix call of incorrect macro
+    - net/sched: act_mirred: Add carrier check
+    - rxrpc: Fix hard call timeout units
+    - ionic: remove noise from ethtool rxnfc error msg
+    - af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
+    - drm/amdgpu: add a missing lock for AMDGPU_SCHED
+    - ALSA: caiaq: input: Add error handling for unsupported input methods in
+      `snd_usb_caiaq_input_init`
+    - net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
+    - virtio_net: split free_unused_bufs()
+    - virtio_net: suppress cpu stall when free_unused_bufs
+    - perf vendor events power9: Remove UTF-8 characters from JSON files
+    - perf map: Delete two variable initialisations before null pointer checks in
+      sort__sym_from_cmp()
+    - perf symbols: Fix return incorrect build_id size in elf_read_build_id()
+    - btrfs: fix btrfs_prev_leaf() to not return the same key twice
+    - btrfs: don't free qgroup space unless specified
+    - btrfs: print-tree: parent bytenr must be aligned to sector size
+    - cifs: fix pcchunk length type in smb2_copychunk_range
+    - platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i
+    - inotify: Avoid reporting event with invalid wd
+    - sh: math-emu: fix macro redefined warning
+    - sh: init: use OF_EARLY_FLATTREE for early init
+    - sh: nmi_debug: fix return value of __setup handler
+    - remoteproc: stm32: Call of_node_put() on iteration error
+    - remoteproc: st: Call of_node_put() on iteration error
+    - ARM: dts: exynos: fix WM8960 clock name in Itop Elite
+    - ARM: dts: s5pv210: correct MIPI CSIS clock name
+    - f2fs: fix potential corruption when moving a directory
+    - drm/panel: otm8009a: Set backlight parent to panel device
+    - drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
+    - drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx
+      ras
+    - drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend
+    - HID: wacom: Set a default resolution for older tablets
+    - HID: wacom: insert timestamp to packed Bluetooth (BT) events
+    - ext4: fix WARNING in mb_find_extent
+    - ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
+    - ext4: fix data races when using cached status extents
+    - ext4: improve error recovery code paths in __ext4_remount()
+    - ext4: fix deadlock when converting an inline directory in nojournal mode
+    - ext4: add bounds checking in get_max_inline_xattr_value_size()
+    - ext4: bail out of ext4_xattr_ibody_get() fails for any reason
+    - ext4: remove a BUG_ON in ext4_mb_release_group_pa()
+    - ext4: fix invalid free tracking in ext4_xattr_move_to_block()
+    - tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH
+    - serial: 8250: Fix serial8250_tx_empty() race with DMA Tx
+    - drbd: correctly submit flush bio on barrier
+    - PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
+    - PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock
+    - printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h
+    - PM: domains: Restore comment indentation for generic_pm_domain.child_links
+    - drm/msm: Fix double pm_runtime_disable() call
+    - firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe()
+    - drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()
+    - drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
+    - mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
+    - drm/amd/display: Fix hang when skipping modeset
+    - Linux 5.4.243
+    - Upstream stable to v5.4.243
+  * Focal update: v5.4.243 upstream stable release (LP: #2025387) //
+    CVE-2023-2269
+    - dm ioctl: fix nested locking in table_clear() to remove deadlock concern
+  * Focal update: v5.4.242 upstream stable release (LP: #2025094)
+    - ARM: dts: rockchip: fix a typo error for rk3288 spdif node
+    - arm64: dts: meson-g12-common: specify full DMC range
+    - netfilter: br_netfilter: fix recent physdev match breakage
+    - regulator: fan53555: Explicitly include bits header
+    - virtio_net: bugfix overflow inside xdp_linearize_page()
+    - netfilter: nf_tables: fix ifdef to also consider nf_tables=m
+    - i40e: fix accessing vsi->active_filters without holding lock
+    - i40e: fix i40e_setup_misc_vector() error handling
+    - mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next()
+    - bpf: Fix incorrect verifier pruning due to missing register precision taints
+    - e1000e: Disable TSO on i219-LM card to increase speed
+    - f2fs: Fix f2fs_truncate_partial_nodes ftrace event
+    - Input: i8042 - add quirk for Fujitsu Lifebook A574/H
+    - selftests: sigaltstack: fix -Wuninitialized
+    - scsi: megaraid_sas: Fix fw_crash_buffer_show()
+    - scsi: core: Improve scsi_vpd_inquiry() checks
+    - net: dsa: b53: mmap: add phy ops
+    - s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling
+    - nvme-tcp: fix a possible UAF when failing to allocate an io queue
+    - xen/netback: use same error messages for same errors
+    - iio: light: tsl2772: fix reading proximity-diodes from device tree
+    - nilfs2: initialize unused bytes in segment summary blocks
+    - memstick: fix memory leak if card device is never registered
+    - mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25
+    - MIPS: Define RUNTIME_DISCARD_EXIT in LD script
+    - x86/purgatory: Don't generate debug info for purgatory.ro
+    - Revert "ext4: fix use-after-free in ext4_xattr_set_entry"
+    - ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
+    - ext4: fix use-after-free in ext4_xattr_set_entry
+    - udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM).
+    - tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct().
+    - inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
+    - dccp: Call inet6_destroy_sock() via sk->sk_destruct().
+    - sctp: Call inet6_destroy_sock() via sk->sk_destruct().
+    - xfs: fix forkoff miscalculation related to XFS_LITINO(mp)
+    - pwm: meson: Explicitly set .polarity in .get_state()
+    - iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger()
+    - ASN.1: Fix check for strdup() success
+    - Linux 5.4.242
+    - Upstream stable to v5.4.242
+  * CVE-2023-31084 // CVE-2023-31084 was assigned to this bug.
+    - media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
+  * CVE-2023-3776
+    - net/sched: cls_fw: Fix improper refcount update leads to use-after-free
+  * CVE-2023-3268
+    - kernel/relay.c: fix read_pos error when multiple readers
+    - relayfs: fix out-of-bounds access in relay_file_read
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] resync getabis
+
+  [ Ubuntu: 5.4.0-156.173 ]
+
+  * focal/linux: 5.4.0-156.173 -proposed tracker (LP: #2026585)
+  * CVE-2023-3390
+    - netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE
+  * Focal update: v5.4.241 upstream stable release (LP: #2023930)
+    - scsi: ses: Handle enclosure with just a primary component gracefully
+    - x86/PCI: Add quirk for AMD XHCI controller that loses MSI-X state in D3hot
+    - cgroup/cpuset: Wake up cpuset_attach_wq tasks in cpuset_cancel_attach()
+    - treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
+    - smb3: fix problem with null cifs super block with previous patch
+    - pinctrl: amd: Use irqchip template
+    - pinctrl: amd: disable and mask interrupts on probe
+    - pinctrl: amd: Disable and mask interrupts on resume
+    - pwm: cros-ec: Explicitly set .polarity in .get_state()
+    - pwm: sprd: Explicitly set .polarity in .get_state()
+    - wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded
+      sta
+    - icmp: guard against too small mtu
+    - net: don't let netpoll invoke NAPI if in xmit context
+    - sctp: check send stream number after wait_for_sndbuf
+    - ipv6: Fix an uninit variable access bug in __ip6_make_skb()
+    - gpio: davinci: Add irq chip flag to skip set wake
+    - sunrpc: only free unix grouplist after RCU settles
+    - NFSD: callback request does not use correct credential for AUTH_SYS
+    - xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
+    - USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs
+    - usb: typec: altmodes/displayport: Fix configure initial pin assignment
+    - USB: serial: option: add Telit FE990 compositions
+    - USB: serial: option: add Quectel RM500U-CN modem
+    - iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip
+    - iio: dac: cio-dac: Fix max DAC write value check for 12-bit
+    - tty: serial: sh-sci: Fix transmit end interrupt handler
+    - tty: serial: sh-sci: Fix Rx on RZ/G2L SCI
+    - tty: serial: fsl_lpuart: avoid checking for transfer complete when
+      UARTCTRL_SBK is asserted in lpuart32_tx_empty
+    - nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread()
+    - nilfs2: fix sysfs interface lifetime
+    - ALSA: hda/realtek: Add quirk for Clevo X370SNW
+    - perf/core: Fix the same task check in perf_event_set_output
+    - ftrace: Mark get_lock_parent_ip() __always_inline
+    - can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access
+    - tracing: Free error logs of tracing instances
+    - net_sched: prevent NULL dereference if default qdisc setup failed
+    - drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path
+    - ring-buffer: Fix race while reader and writer are on the same page
+    - mm/swap: fix swap_info_struct race between swapoff and get_swap_pages()
+    - irqdomain: Look for existing mapping only once
+    - irqdomain: Refactor __irq_domain_alloc_irqs()
+    - irqdomain: Fix mapping-creation race
+    - Revert "pinctrl: amd: Disable and mask interrupts on resume"
+    - ALSA: emu10k1: fix capture interrupt handler unlinking
+    - ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboard
+    - ALSA: i2c/cs8427: fix iec958 mixer control deactivation
+    - ALSA: firewire-tascam: add missing unwind goto in
+      snd_tscm_stream_start_duplex()
+    - ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45* motherboards
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp}
+    - Bluetooth: Fix race condition in hidp_session_thread
+    - btrfs: print checksum type and implementation at mount time
+    - btrfs: fix fast csum implementation detection
+    - mtdblock: tolerate corrected bit-flips
+    - mtd: rawnand: meson: fix bitmask for length in command word
+    - mtd: rawnand: stm32_fmc2: remove unsupported EDO mode
+    - niu: Fix missing unwind goto in niu_alloc_channels()
+    - qlcnic: check pci_reset_function result
+    - sctp: fix a potential overflow in sctp_ifwdtsn_skip
+    - RDMA/core: Fix GID entry ref leak when create_ah fails
+    - udp6: fix potential access to stale information
+    - net: macb: fix a memory corruption in extended buffer descriptor mode
+    - power: supply: cros_usbpd: reclassify "default case!" as debug
+    - i2c: imx-lpi2c: clean rx/tx buffers upon new message
+    - efi: sysfb_efi: Add quirk for Lenovo Yoga Book X91F/L
+    - drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Book X90F
+    - verify_pefile: relax wrapper length check
+    - asymmetric_keys: log on fatal failures in PE/pkcs7
+    - ubi: Fix failure attaching when vid_hdr offset equals to (sub)page size
+    - mtd: ubi: wl: Fix a couple of kernel-doc issues
+    - ubi: Fix deadlock caused by recursively holding work_sem
+    - i2c: ocores: generate stop condition after timeout in polling mode
+    - watchdog: sbsa_wdog: Make sure the timeout programming is within the limits
+    - coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug
+    - xfs: show the proper user quota options
+    - xfs: remove the kuid/kgid conversion wrappers
+    - xfs: add a new xfs_sb_version_has_v3inode helper
+    - xfs: only check the superblock version for dinode size calculation
+    - xfs: simplify di_flags2 inheritance in xfs_ialloc
+    - xfs: simplify a check in xfs_ioctl_setattr_check_cowextsize
+    - xfs: remove the di_version field from struct icdinode
+    - xfs: set inode size after creating symlink
+    - xfs: report corruption only as a regular error
+    - xfs: shut down the filesystem if we screw up quota reservation
+    - xfs: consider shutdown in bmapbt cursor delete assert
+    - xfs: don't reuse busy extents on extent trim
+    - xfs: force log and push AIL to clear pinned inodes when aborting mount
+    - Linux 5.4.241
+  * [UBUNTU 20.04] [HPS] Kernel panic with "refcount_t: underflow" in mlx5
+    driver (LP: #2019011)
+    - net/mlx5: cmdif, Avoid skipping reclaim pages if FW is not accessible
+    - net/mlx5: Fix handling of entry refcount when command is not issued to FW
+  * Disable hv-kvp-daemon if /dev/vmbus/hv_kvp is not present (LP: #2024900)
+    - [Packaging] disable hv-kvp-daemon if needed
+  * CVE-2023-35001
+    - netfilter: nf_tables: prevent OOB access in nft_byteorder_eval
+  * CVE-2023-32629
+    - ovl: adhere to the vfs_ vs. ovl_do_ conventions for xattrs
+  * CVE-2023-3141
+    - memstick: r592: Fix UAF bug in r592_remove due to race condition
+  * CVE-2023-3111
+    - btrfs: check return value of btrfs_commit_transaction in relocation
+    - btrfs: unset reloc control if transaction commit fails in
+      prepare_to_relocate()
+  * CVE-2023-3090
+    - ipvlan:Fix out-of-bounds caused by unclear skb->cb
+  * CVE-2023-1611
+    - btrfs: fix race between quota disable and quota assign ioctls
+  * CVE-2022-0168
+    - cifs: move some variables off the stack in smb2_ioctl_query_info
+    - cifs: prevent bad output lengths in smb2_ioctl_query_info()
+    - cifs: fix NULL ptr dereference in smb2_ioctl_query_info()
+  * CVE-2022-27672
+    - x86/speculation: Identify processors vulnerable to SMT RSB predictions
+    - KVM: x86: Mitigate the cross-thread return address predictions bug
+    - Documentation/hw-vuln: Add documentation for Cross-Thread Return Predictions
+  * Severe NFS performance degradation after LP #2003053 (LP: #2022098)
+    - SAUCE: Make NFS file-access stale cache behaviour opt-in
+  * Encountering an issue with memcpy_fromio causing failed boot of SEV-enabled
+    guest (LP: #2020319)
+    - x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO
+  * Focal update: v5.4.240 upstream stable release (LP: #2023601)
+    - net: tls: fix possible race condition between do_tls_getsockopt_conf() and
+      do_tls_setsockopt_conf()
+    - power: supply: da9150: Fix use after free bug in da9150_charger_remove due
+      to race condition
+    - iavf: fix inverted Rx hash condition leading to disabled hash
+    - iavf: fix non-tunneled IPv6 UDP packet type and hashing
+    - intel/igbvf: free irq on the error path in igbvf_request_msix()
+    - igbvf: Regard vf reset nack as success
+    - i2c: imx-lpi2c: check only for enabled interrupt flags
+    - scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()
+    - net: usb: smsc95xx: Limit packet length to skb->len
+    - qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info
+    - net: qcom/emac: Fix use after free bug in emac_remove due to race condition
+    - net/ps3_gelic_net: Fix RX sk_buff length
+    - net/ps3_gelic_net: Use dma_mapping_error
+    - keys: Do not cache key in task struct if key is requested from kernel thread
+    - bpf: Adjust insufficient default bpf_jit_limit
+    - net/mlx5: Read the TC mapping of all priorities on ETS query
+    - atm: idt77252: fix kmemleak when rmmod idt77252
+    - erspan: do not use skb_mac_header() in ndo_start_xmit()
+    - net/sonic: use dma_mapping_error() for error check
+    - nvme-tcp: fix nvme_tcp_term_pdu to match spec
+    - hvc/xen: prevent concurrent accesses to the shared ring
+    - net: mdio: thunder: Add missing fwnode_handle_put()
+    - Bluetooth: btqcomsmd: Fix command timeout after setting BD address
+    - platform/chrome: cros_ec_chardev: fix kernel data leak from ioctl
+    - hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs
+    - scsi: qla2xxx: Perform lockless command completion in abort path
+    - uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2
+    - thunderbolt: Use const qualifier for `ring_interrupt_index`
+    - riscv: Bump COMMAND_LINE_SIZE value to 1024
+    - ca8210: fix mac_len negative array access
+    - m68k: Only force 030 bus error if PC not in exception table
+    - selftests/bpf: check that modifier resolves after pointer
+    - scsi: target: iscsi: Fix an error message in iscsi_check_key()
+    - scsi: ufs: core: Add soft dependency on governor_simpleondemand
+    - scsi: lpfc: Avoid usage of list iterator variable after loop
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990
+    - net: usb: qmi_wwan: add Telit 0x1080 composition
+    - sh: sanitize the flags on sigreturn
+    - cifs: empty interface list when server doesn't support query interfaces
+    - scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR
+    - usb: gadget: u_audio: don't let userspace block driver unbind
+    - fsverity: Remove WQ_UNBOUND from fsverity read workqueue
+    - igb: revert rtnl_lock() that causes deadlock
+    - dm thin: fix deadlock when swapping to thin device
+    - usb: cdns3: Fix issue with using incorrect PCI device function
+    - usb: chipdea: core: fix return -EINVAL if request role is the same with
+      current role
+    - usb: chipidea: core: fix possible concurrent when switch role
+    - wifi: mac80211: fix qos on mesh interfaces
+    - nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy()
+    - i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer()
+    - dm stats: check for and propagate alloc_percpu failure
+    - dm crypt: add cond_resched() to dmcrypt_write()
+    - sched/fair: sanitize vruntime of entity being placed
+    - sched/fair: Sanitize vruntime of entity being migrated
+    - tun: avoid double free in tun_free_netdev
+    - ocfs2: fix data corruption after failed write
+    - fsverity: don't drop pagecache at end of FS_IOC_ENABLE_VERITY
+    - bus: imx-weim: fix branch condition evaluates to a garbage value
+    - md: avoid signed overflow in slot_store()
+    - ALSA: asihpi: check pao in control_message()
+    - ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set()
+    - fbdev: tgafb: Fix potential divide by zero
+    - sched_getaffinity: don't assume 'cpumask_size()' is fully initialized
+    - fbdev: nvidia: Fix potential divide by zero
+    - fbdev: intelfb: Fix potential divide by zero
+    - fbdev: lxfb: Fix potential divide by zero
+    - fbdev: au1200fb: Fix potential divide by zero
+    - ca8210: Fix unsigned mac_len comparison with zero in ca8210_skb_tx()
+    - dma-mapping: drop the dev argument to arch_sync_dma_for_*
+    - mips: bmips: BCM6358: disable RAC flush for TP1
+    - mtd: rawnand: meson: invalidate cache on polling ECC bit
+    - scsi: megaraid_sas: Fix crash after a double completion
+    - ptp_qoriq: fix memory leak in probe()
+    - regulator: fix spelling mistake "Cant" -> "Can't"
+    - regulator: Handle deferred clk
+    - net/net_failover: fix txq exceeding warning
+    - can: bcm: bcm_tx_setup(): fix KMSAN uninit-value in vfs_write
+    - s390/vfio-ap: fix memory leak in vfio_ap device driver
+    - i40e: fix registers dump after run ethtool adapter self test
+    - bnxt_en: Fix typo in PCI id to device description string mapping
+    - net: dsa: mv88e6xxx: Enable IGMP snooping on user ports only
+    - net: mvneta: make tx buffer array agnostic
+    - pinctrl: ocelot: Fix alt mode for ocelot
+    - Input: alps - fix compatibility with -funsigned-char
+    - Input: focaltech - use explicitly signed char type
+    - cifs: prevent infinite recursion in CIFSGetDFSRefer()
+    - cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL
+    - Input: goodix - add Lenovo Yoga Book X90F to nine_bytes_report DMI table
+    - xen/netback: don't do grant copy across page boundary
+    - pinctrl: at91-pio4: fix domain name assignment
+    - NFSv4: Fix hangs when recovering open state after a server reboot
+    - ALSA: hda/conexant: Partial revert of a quirk for Lenovo
+    - ALSA: usb-audio: Fix regression on detection of Roland VS-100
+    - drm/etnaviv: fix reference leak when mmaping imported buffer
+    - btrfs: scan device in non-exclusive mode
+    - ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
+    - net_sched: add __rcu annotation to netdev->qdisc
+    - net: sched: fix race condition in qdisc_graft()
+    - firmware: arm_scmi: Fix device node validation for mailbox transport
+    - gfs2: Always check inode size of inline inodes
+    - Linux 5.4.240
+  * Focal update: v5.4.239 upstream stable release (LP: #2023600)
+    - Linux 5.4.239
+  * CVE-2023-2124
+    - xfs: verify buffer contents when we skip log replay
+  * CVE-2020-36691
+    - netlink: limit recursion depth in policy validation
+  * CVE-2022-1184
+    - ext4: check if directory block is within i_size
+    - ext4: fix check for block being out of directory size
+  * CVE-2022-4269
+    - net: sched: extract qstats update code into functions
+    - net: sched: don't expose action qstats to skb_tc_reinsert()
+    - net/sched: act_mirred: refactor the handle of xmit
+    - net: sched: remove unused tcf_result extension
+    - net/sched: act_mirred: better wording on protection against excessive stack
+      growth
+    - act_mirred: use the backlog for nested calls to mirred ingress
+  * Focal update: v5.4.238 upstream stable release (LP: #2023427)
+    - ext4: fix cgroup writeback accounting with fs-layer encryption
+    - xfrm: Allow transport-mode states with AF_UNSPEC selector
+    - drm/panfrost: Don't sync rpm suspension after mmu flushing
+    - cifs: Move the in_send statistic to __smb_send_rqst()
+    - drm/meson: fix 1px pink line on GXM when scaling video overlay
+    - clk: HI655X: select REGMAP instead of depending on it
+    - docs: Correct missing "d_" prefix for dentry_operations member
+      d_weak_revalidate
+    - scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add()
+    - ALSA: hda - add Intel DG1 PCI and HDMI ids
+    - ALSA: hda - controller is in GPU on the DG1
+    - ALSA: hda: Add Alderlake-S PCI ID and HDMI codec vid
+    - ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
+    - ALSA: hda: Match only Intel devices with CONTROLLER_IN_GPU()
+    - netfilter: nft_redir: correct value of inet type `.maxattrs`
+    - scsi: core: Fix a comment in function scsi_host_dev_release()
+    - scsi: core: Fix a procfs host directory removal regression
+    - tcp: tcp_make_synack() can be called from process context
+    - nfc: pn533: initialize struct pn533_out_arg properly
+    - ipvlan: Make skb->skb_iif track skb->dev for l3s mode
+    - i40e: Fix kernel crash during reboot when adapter is in recovery mode
+    - qed/qed_dev: guard against a possible division by zero
+    - net: tunnels: annotate lockless accesses to dev->needed_headroom
+    - net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails
+    - nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition
+    - net: usb: smsc75xx: Limit packet length to skb->len
+    - nvmet: avoid potential UAF in nvmet_req_complete()
+    - block: sunvdc: add check for mdesc_grab() returning NULL
+    - ipv4: Fix incorrect table ID in IOCTL path
+    - net: usb: smsc75xx: Move packet length check to prevent kernel panic in
+      skb_pull
+    - net/iucv: Fix size of interrupt data
+    - ethernet: sun: add check for the mdesc_grab()
+    - hwmon: (adt7475) Display smoothing attributes in correct order
+    - hwmon: (adt7475) Fix masking of hysteresis registers
+    - hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race
+      condition
+    - hwmon: (ina3221) return prober error code
+    - media: m5mols: fix off-by-one loop termination error
+    - mmc: atmel-mci: fix race between stop command and start of next command
+    - jffs2: correct logic when creating a hole in jffs2_write_begin
+    - ext4: fail ext4_iget if special inode unallocated
+    - ext4: fix task hung in ext4_xattr_delete_inode
+    - drm/amdkfd: Fix an illegal memory access
+    - sh: intc: Avoid spurious sizeof-pointer-div warning
+    - ext4: fix possible double unlock when moving a directory
+    - tty: serial: fsl_lpuart: skip waiting for transmission complete when
+      UARTCTRL_SBK is asserted
+    - interconnect: fix mem leak when freeing nodes
+    - tracing: Check field value in hist_field_name()
+    - tracing: Make tracepoint lockdep check actually test something
+    - ftrace: Fix invalid address access in lookup_rec() when index is 0
+    - fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks
+    - x86/mm: Fix use of uninitialized buffer in sme_enable()
+    - drm/i915: Don't use stolen memory for ring buffers with LLC
+    - serial: 8250_em: Fix UART port type
+    - s390/ipl: add missing intersection check to ipl_report handling
+    - PCI: Unify delay handling for reset and resume
+    - HID: core: Provide new max_buffer_size attribute to over-ride the default
+    - HID: uhid: Over-ride the default maximum data buffer value with our own
+    - Linux 5.4.238
+  * Focal update: v5.4.237 upstream stable release (LP: #2023420)
+    - fs: prevent out-of-bounds array speculation when closing a file descriptor
+    - x86/CPU/AMD: Disable XSAVES on AMD family 0x17
+    - drm/connector: print max_requested_bpc in state debugfs
+    - ext4: fix RENAME_WHITEOUT handling for inline directories
+    - ext4: fix another off-by-one fsmap error on 1k block filesystems
+    - ext4: move where set the MAY_INLINE_DATA flag is set
+    - ext4: fix WARNING in ext4_update_inline_data
+    - ext4: zero i_disksize when initializing the bootloader inode
+    - nfc: change order inside nfc_se_io error path
+    - iommu/amd: Add PCI segment support for ivrs_[ioapic/hpet/acpihid] commands
+    - iommu/amd: Fix ill-formed ivrs_ioapic, ivrs_hpet and ivrs_acpihid options
+    - iommu/amd: Add a length limitation for the ivrs_acpihid command-line
+      parameter
+    - ipmi:ssif: make ssif_i2c_send() void
+    - ipmi:ssif: resend_msg() cannot fail
+    - ipmi:ssif: Remove rtc_us_timer
+    - ipmi:ssif: Increase the message retry time
+    - ipmi:ssif: Add a timer between request retries
+    - irqdomain: Change the type of 'size' in __irq_domain_add() to be consistent
+    - irqdomain: Fix domain registration race
+    - iommu/vt-d: Fix PASID directory pointer coherency
+    - SMB3: Backup intent flag missing from some more ops
+    - cifs: Fix uninitialized memory read in smb3_qfs_tcon()
+    - scsi: core: Remove the /proc/scsi/${proc_name} directory earlier
+    - ext4: Fix possible corruption when moving a directory
+    - drm/msm/a5xx: fix setting of the CP_PREEMPT_ENABLE_LOCAL register
+    - nfc: fdp: add null check of devm_kmalloc_array in
+      fdp_nci_i2c_read_device_properties
+    - ila: do not generate empty messages in ila_xlat_nl_cmd_get_mapping()
+    - selftests: nft_nat: ensuring the listening side is up before starting the
+      client
+    - net: usb: lan78xx: Remove lots of set but unused 'ret' variables
+    - net: lan78xx: fix accessing the LAN7800's internal phy specific registers
+      from the MAC driver
+    - net: caif: Fix use-after-free in cfusbl_device_notify()
+    - bnxt_en: Avoid order-5 memory allocation for TPA data
+    - netfilter: tproxy: fix deadlock due to missing BH disable
+    - btf: fix resolving BTF_KIND_VAR after ARRAY, STRUCT, UNION, PTR
+    - scsi: megaraid_sas: Update max supported LD IDs to 240
+    - net/smc: fix fallback failed while sendmsg with fastopen
+    - riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode
+    - ext4: Fix deadlock during directory rename
+    - MIPS: Fix a compilation issue
+    - alpha: fix R_ALPHA_LITERAL reloc for large modules
+    - macintosh: windfarm: Use unsigned type for 1-bit bitfields
+    - PCI: Add SolidRun vendor ID
+    - media: ov5640: Fix analogue gain control
+    - ipmi/watchdog: replace atomic_add() and atomic_sub()
+    - ipmi:watchdog: Set panic count to proper value on a panic
+    - drm/i915: Don't use BAR mappings for ring buffers with LLC
+    - x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
+    - arch: fix broken BuildID for arm64 and riscv
+    - powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
+    - powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
+    - s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
+    - sh: define RUNTIME_DISCARD_EXIT
+    - UML: define RUNTIME_DISCARD_EXIT
+    - s390/dasd: add missing discipline function
+    - Linux 5.4.237
+  * Focal update: v5.4.236 upstream stable release (LP: #2020390)
+    - staging: rtl8192e: Remove function ..dm_check_ac_dc_power calling a script
+    - staging: rtl8192e: Remove call_usermodehelper starting RadioPower.sh
+    - Linux 5.4.236
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 22 Sep 2023 18:38:25 +0800
+
+linux-ein (5.4.0-1039.46) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1039.46 -proposed tracker (LP: #2029267)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] resync getabis
+
+  * [K4500-NXP][UC20] CPU-Freq Interface Not Available On NXP Hardware
+    (LP#2008278)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Enable cpufreq support
+
+  * WIFI/Bluetooth module is not fully reset/initialized at Linux boot Edit
+    (LP#2019041)
+    - SAUCE: amgis: dts: Add MMC simple HW reset driver node
+
+  * Miscellaneous Ubuntu changes
+    - snap: reading: Set grade to devel instead of stable
+    - snap: reading: Remove package-repositories
+
+  [ Ubuntu: 5.4.0-153.170 ]
+
+  * focal/linux: 5.4.0-153.170 -proposed tracker (LP: #2024108)
+  * cls_flower: off-by-one in fl_set_geneve_opt (LP: #2023577)
+    - net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
+  * Some INVLPG implementations can leave Global translations unflushed when
+    PCIDs are enabled (LP: #2023220)
+    - x86/mm: Avoid incomplete Global INVLPG flushes
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 01 Aug 2023 23:03:05 +0800
+
+linux-ein (5.4.0-1038.45) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1038.45 -proposed tracker (LP: #2024158)
+
+  * CVE-2023-1829
+    - [Config] ein: Make sure CONFIG_NET_CLS_TCINDEX is not available
+
+  * Request a change to EMMC access rate, to DDR52 (LP#2012080)
+    - SAUCE: mmc: Add device tree quirks2 property
+    - SAUCE: mmc: Allow device tree to disable HS400
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Disable HS200 and HS400
+
+  [ Ubuntu: 5.4.0-152.169 ]
+
+  * focal/linux: 5.4.0-152.169 -proposed tracker (LP: #2023070)
+  * Focal update: v5.4.236 upstream stable release (LP: #2020390)
+    - wifi: cfg80211: Partial revert "wifi: cfg80211: Fix use after free for wext"
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync getabis
+
+  [ Ubuntu: 5.4.0-151.168 ]
+
+  * focal/linux: 5.4.0-151.168 -proposed tracker (LP: #2019375)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - debian/dkms-versions -- update from kernel-versions (main/2023.05.15)
+  * CVE-2023-32233
+    - netfilter: nf_tables: deactivate anonymous set from preparation phase
+  * CVE-2023-2612
+    - SAUCE: shiftfs: prevent lock unbalance in shiftfs_create_object()
+  * CVE-2023-31436
+    - net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg
+  * CVE-2023-1380
+    - wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
+  * Focal update: Focal update: v5.4.235 upstream stable release (LP: #2017706)
+    - HID: asus: Remove check for same LED brightness on set
+    - HID: asus: use spinlock to protect concurrent accesses
+    - HID: asus: use spinlock to safely schedule workers
+    - ARM: OMAP2+: Fix memory leak in realtime_counter_init()
+    - arm64: dts: qcom: qcs404: use symbol names for PCIe resets
+    - ARM: zynq: Fix refcount leak in zynq_early_slcr_init
+    - arm64: dts: meson-gx: Fix Ethernet MAC address unit name
+    - arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name
+    - arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address
+    - arm64: dts: meson: remove CPU opps below 1GHz for G12A boards
+    - ARM: OMAP1: call platform_device_put() in error case in
+      omap1_dm_timer_init()
+    - ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato
+    - ARM: imx: Call ida_simple_remove() for ida_simple_get
+    - arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name
+    - arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name
+    - arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible
+    - arm64: dts: amlogic: meson-gx: add missing unit address to rng node name
+    - arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node
+      name
+    - arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name
+    - ARM: dts: imx7s: correct iomuxc gpr mux controller cells
+    - arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
+    - Revert "scsi: core: run queue if SCSI device queue isn't ready and queue is
+      idle"
+    - block: Limit number of items taken from the I/O scheduler in one go
+    - blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx
+    - blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait
+    - blk-mq: correct stale comment of .get_budget
+    - s390/dasd: Prepare for additional path event handling
+    - s390/dasd: Fix potential memleak in dasd_eckd_init()
+    - sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity()
+    - sched/rt: pick_next_rt_entity(): check list_entry
+    - block: bio-integrity: Copy flags when bio_integrity_payload is cloned
+    - wifi: rsi: Fix memory leak in rsi_coex_attach()
+    - net/wireless: Delete unnecessary checks before the macro call
+      “dev_kfree_skb”
+    - wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: fix memory leak in lbs_init_adapter()
+    - wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - rtlwifi: fix -Wpointer-sign warning
+    - wifi: rtlwifi: Fix global-out-of-bounds bug in
+      _rtl8812ae_phy_set_txpower_limit()
+    - ipw2x00: switch from 'pci_' to 'dma_' API
+    - wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - wifi: ipw2200: fix memory leak in ipw_wdev_init()
+    - wilc1000: let wilc_mac_xmit() return NETDEV_TX_OK
+    - wifi: wilc1000: fix potential memory leak in wilc_mac_xmit()
+    - wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()
+    - wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid()
+    - wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave()
+    - crypto: x86/ghash - fix unaligned access in ghash_setkey()
+    - ACPICA: Drop port I/O validation for some regions
+    - genirq: Fix the return type of kstat_cpu_irqs_sum()
+    - lib/mpi: Fix buffer overrun when SG is too long
+    - ACPICA: nsrepair: handle cases without a return value correctly
+    - wifi: orinoco: check return value of hermes_write_wordrec()
+    - wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback
+      function
+    - ath9k: hif_usb: simplify if-if to if-else
+    - ath9k: htc: clean up statistics macros
+    - wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
+    - wifi: ath9k: Fix potential stack-out-of-bounds write in
+      ath9k_wmi_rsp_callback()
+    - ACPI: battery: Fix missing NUL-termination with large strings
+    - crypto: ccp - Failure on re-initialization due to duplicate sysfs filename
+    - crypto: essiv - remove redundant null pointer check before kfree
+    - crypto: essiv - Handle EBUSY correctly
+    - crypto: seqiv - Handle EBUSY correctly
+    - powercap: fix possible name leak in powercap_register_zone()
+    - net/mlx5: Enhance debug print in page allocation failure
+    - irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains
+    - irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe
+    - irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
+    - mptcp: add sk_stop_timer_sync helper
+    - net: add sock_init_data_uid()
+    - tun: tun_chr_open(): correctly initialize socket uid
+    - tap: tap_open(): correctly initialize socket uid
+    - OPP: fix error checking in opp_migrate_dentry()
+    - Bluetooth: L2CAP: Fix potential user-after-free
+    - libbpf: Fix alen calculation in libbpf_nla_dump_errormsg()
+    - rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
+    - crypto: rsa-pkcs1pad - Use akcipher_request_complete
+    - m68k: /proc/hardware should depend on PROC_FS
+    - RISC-V: time: initialize hrtimer based broadcast clock event device
+    - usb: gadget: udc: Avoid tasklet passing a global
+    - wifi: iwl3945: Add missing check for create_singlethread_workqueue
+    - wifi: iwl4965: Add missing check for create_singlethread_workqueue()
+    - wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize()
+    - crypto: crypto4xx - Call dma_unmap_page when done
+    - wifi: mac80211: make rate u32 in sta_set_rate_info_rx()
+    - thermal/drivers/hisi: Drop second sensor hi3660
+    - can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a
+      bus error
+    - irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
+    - irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
+    - selftests/net: Interpret UDP_GRO cmsg data as an int value
+    - drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats
+    - drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC
+    - drm/bridge: megachips: Fix error handling in i2c_register_driver()
+    - drm/vc4: dpi: Add option for inverting pixel clock and output enable
+    - drm/vc4: dpi: Fix format mapping for RGB565
+    - gpu: ipu-v3: common: Add of_node_put() for reference returned by
+      of_graph_get_port_by_id()
+    - drm/msm/hdmi: Add missing check for alloc_ordered_workqueue
+    - pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain
+    - ASoC: fsl_sai: initialize is_dsp_mode flag
+    - ALSA: hda/ca0132: minor fix for allocation size
+    - drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness
+    - drm/msm: use strscpy instead of strncpy
+    - drm/msm/dpu: Add check for cstate
+    - drm/msm/dpu: Add check for pstates
+    - drm/exynos: Don't reset bridge->next
+    - drm/bridge: Rename bridge helpers targeting a bridge chain
+    - drm/bridge: Introduce drm_bridge_get_next_bridge()
+    - drm: Initialize struct drm_crtc_state.no_vblank from device settings
+    - drm/msm/mdp5: Add check for kzalloc
+    - gpu: host1x: Don't skip assigning syncpoints to channels
+    - drm/mediatek: remove cast to pointers passed to kfree
+    - drm/mediatek: Use NULL instead of 0 for NULL pointer
+    - drm/mediatek: Drop unbalanced obj unref
+    - drm/mediatek: Clean dangling pointer on bind error path
+    - ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()
+    - gpio: vf610: connect GPIO label to dev name
+    - hwmon: (ltc2945) Handle error case in ltc2945_value_store
+    - scsi: aic94xx: Add missing check for dma_map_single()
+    - spi: bcm63xx-hsspi: fix pm_runtime
+    - spi: bcm63xx-hsspi: Fix multi-bit mode setting
+    - hwmon: (mlxreg-fan) Return zero speed for broken fan
+    - dm: remove flush_scheduled_work() during local_exit()
+    - spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()
+    - ASoC: dapm: declare missing structure prototypes
+    - ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared
+    - HID: bigben: use spinlock to protect concurrent accesses
+    - HID: bigben_worker() remove unneeded check on report_field
+    - HID: bigben: use spinlock to safely schedule workers
+    - HID: asus: Only set EV_REP if we are adding a mapping
+    - HID: asus: Add report_size to struct asus_touchpad_info
+    - HID: asus: Add support for multi-touch touchpad on Medion Akoya E1239T
+    - HID: asus: Fix mute and touchpad-toggle keys on Medion Akoya E1239T
+    - hid: bigben_probe(): validate report count
+    - nfsd: fix race to check ls_layouts
+    - cifs: Fix lost destroy smbd connection when MR allocate failed
+    - cifs: Fix warning and UAF when destroy the MR list
+    - gfs2: jdata writepage fix
+    - perf llvm: Fix inadvertent file creation
+    - perf tools: Fix auto-complete on aarch64
+    - sparc: allow PM configs for sparc32 COMPILE_TEST
+    - mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()
+    - clk: qcom: gcc-qcs404: disable gpll[04]_out_aux parents
+    - clk: qcom: gcc-qcs404: fix names of the DSI clocks used as parents
+    - mtd: rawnand: sunxi: Fix the size of the last OOB region
+    - clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed
+    - clk: renesas: cpg-mssr: Use enum clk_reg_layout instead of a boolean flag
+    - clk: renesas: cpg-mssr: Remove superfluous check in resume code
+    - Input: ads7846 - don't report pressure for ads7845
+    - Input: ads7846 - don't check penirq immediately for 7845
+    - clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC
+    - powerpc/powernv/ioda: Skip unallocated resources when mapping to PE
+    - clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
+    - powerpc/pseries/lpar: add missing RTAS retry status handling
+    - powerpc/pseries/lparcfg: add missing RTAS retry status handling
+    - powerpc/rtas: make all exports GPL
+    - powerpc/rtas: ensure 4KB alignment for rtas_data_buf
+    - powerpc/eeh: Small refactor of eeh_handle_normal_event()
+    - powerpc/eeh: Set channel state after notifying the drivers
+    - MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
+    - MIPS: vpe-mt: drop physical_memsize
+    - remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers
+    - media: platform: ti: Add missing check for devm_regulator_get
+    - powerpc: Remove linker flag from KBUILD_AFLAGS
+    - media: ov5675: Fix memleak in ov5675_init_controls()
+    - media: i2c: ov772x: Fix memleak in ov772x_probe()
+    - media: i2c: ov7670: 0 instead of -EINVAL was returned
+    - media: usb: siano: Fix use after free bugs caused by do_submit_urb
+    - rpmsg: glink: Avoid infinite loop on intent for missing channel
+    - udf: Define EFSCORRUPTED error code
+    - ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy
+    - blk-iocost: fix divide by 0 error in calc_lcoefs()
+    - wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
+    - rcu: Suppress smp_processor_id() complaint in
+      synchronize_rcu_expedited_wait()
+    - thermal: intel: Fix unsigned comparison with less than zero
+    - timers: Prevent union confusion from unexpected restart_syscall()
+    - x86/bugs: Reset speculation control settings on init
+    - wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-
+      of-bounds
+    - wifi: mt7601u: fix an integer underflow
+    - inet: fix fast path in __inet_hash_connect()
+    - ice: add missing checks for PF vsi type
+    - ACPI: Don't build ACPICA with '-Os'
+    - net: bcmgenet: Add a check for oversized packets
+    - m68k: Check syscall_trace_enter() return code
+    - wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup
+    - ACPI: video: Fix Lenovo Ideapad Z570 DMI match
+    - net/mlx5: fw_tracer: Fix debug print
+    - coda: Avoid partial allocation of sig_inputArgs
+    - uaccess: Add minimum bounds check on kernel buffer size
+    - drm/amd/display: Fix potential null-deref in dm_resume
+    - drm/omap: dsi: Fix excessive stack usage
+    - HID: Add Mapping for System Microphone Mute
+    - drm/radeon: free iio for atombios when driver shutdown
+    - drm/msm/dsi: Add missing check for alloc_ordered_workqueue
+    - docs/scripts/gdb: add necessary make scripts_gdb step
+    - ASoC: kirkwood: Iterate over array indexes instead of using pointer math
+    - regulator: max77802: Bounds check regulator id against opmode
+    - regulator: s5m8767: Bounds check id indexing into arrays
+    - hwmon: (coretemp) Simplify platform device handling
+    - pinctrl: at91: use devm_kasprintf() to avoid potential leaks
+    - drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5
+    - dm thin: add cond_resched() to various workqueue loops
+    - dm cache: add cond_resched() to various workqueue loops
+    - nfsd: zero out pointers after putting nfsd_files on COPY setup error
+    - wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu
+    - firmware: coreboot: framebuffer: Ignore reserved pixel color bits
+    - rtc: pm8xxx: fix set-alarm race
+    - ipmi_ssif: Rename idle state and check
+    - s390: discard .interp section
+    - s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler
+    - s390/kprobes: fix current_kprobe never cleared after kprobes reenter
+    - ARM: dts: exynos: correct HDMI phy compatible in Exynos4
+    - hfs: fix missing hfs_bnode_get() in __hfs_bnode_create
+    - fs: hfsplus: fix UAF issue in hfsplus_put_super
+    - f2fs: fix information leak in f2fs_move_inline_dirents()
+    - f2fs: fix cgroup writeback accounting with fs-layer encryption
+    - ocfs2: fix defrag path triggering jbd2 ASSERT
+    - ocfs2: fix non-auto defrag path not working issue
+    - udf: Truncate added extents on failed expansion
+    - udf: Do not bother merging very long extents
+    - udf: Do not update file length for failed writes to inline files
+    - udf: Preserve link count of system files
+    - udf: Detect system inodes linked into directory hierarchy
+    - udf: Fix file corruption when appending just after end of preallocated
+      extent
+    - KVM: Destroy target device if coalesced MMIO unregistration fails
+    - KVM: s390: disable migration mode when dirty tracking is disabled
+    - x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows)
+    - x86/crash: Disable virt in core NMI crash handler to avoid double shootdown
+    - x86/reboot: Disable virtualization in an emergency if SVM is supported
+    - x86/reboot: Disable SVM, not just VMX, when stopping CPUs
+    - x86/kprobes: Fix __recover_optprobed_insn check optimizing logic
+    - x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe
+      range
+    - x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter
+    - x86/microcode/AMD: Add a @cpu parameter to the reloading functions
+    - x86/microcode/AMD: Fix mixed steppings support
+    - x86/speculation: Allow enabling STIBP with legacy IBRS
+    - Documentation/hw-vuln: Document the interaction between IBRS and STIBP
+    - ima: Align ima_file_mmap() parameters with mmap_file LSM hook
+    - irqdomain: Fix association race
+    - irqdomain: Fix disassociation race
+    - irqdomain: Drop bogus fwspec-mapping error handling
+    - ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
+    - ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC
+    - ext4: optimize ea_inode block expansion
+    - ext4: refuse to create ea block when umounted
+    - wifi: rtl8xxxu: Use a longer retry limit of 48
+    - wifi: cfg80211: Fix use after free for wext
+    - thermal: intel: powerclamp: Fix cur_state for multi package system
+    - dm flakey: fix logic when corrupting a bio
+    - dm flakey: don't corrupt the zero page
+    - ARM: dts: exynos: correct TMU phandle in Exynos4
+    - ARM: dts: exynos: correct TMU phandle in Odroid XU
+    - rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
+    - alpha: fix FEN fault handling
+    - mips: fix syscall_get_nr
+    - media: ipu3-cio2: Fix PM runtime usage_count in driver unbind
+    - mm: memcontrol: deprecate charge moving
+    - mm/thp: check and bail out if page in deferred queue already
+    - ktest.pl: Give back console on Ctrt^C on monitor
+    - ktest.pl: Fix missing "end_monitor" when machine check fails
+    - ktest.pl: Add RUN_TIMEOUT option with default unlimited
+    - scsi: qla2xxx: Fix link failure in NPIV environment
+    - scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests
+    - scsi: qla2xxx: Fix erroneous link down
+    - scsi: ses: Don't attach if enclosure has no components
+    - scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process()
+    - scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses
+    - scsi: ses: Fix possible desc_ptr out-of-bounds accesses
+    - scsi: ses: Fix slab-out-of-bounds in ses_intf_remove()
+    - PCI/PM: Observe reset delay irrespective of bridge_d3
+    - PCI: hotplug: Allow marking devices as disconnected during bind/unbind
+    - PCI: Avoid FLR for AMD FCH AHCI adapters
+    - drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv
+    - drm/radeon: Fix eDP for single-display iMac11,2
+    - wifi: ath9k: use proper statements in conditionals
+    - kbuild: Port silent mode detection to future gnu make.
+    - fs/jfs: fix shift exponent db_agl2size negative
+    - pwm: sifive: Reduce time the controller lock is held
+    - pwm: sifive: Always let the first pwm_apply_state succeed
+    - pwm: stm32-lp: fix the check on arr and cmp registers update
+    - f2fs: use memcpy_{to,from}_page() where possible
+    - fs: f2fs: initialize fsdata in pagecache_write()
+    - um: vector: Fix memory leak in vector_config
+    - ubi: ensure that VID header offset + VID header size <= alloc, size
+    - ubifs: Fix build errors as symbol undefined
+    - ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted
+    - ubifs: Rectify space budget for ubifs_xrename()
+    - ubifs: Fix wrong dirty space budget for dirty inode
+    - ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1
+    - ubifs: Reserve one leb for each journal head while doing budget
+    - ubi: Fix use-after-free when volume resizing failed
+    - ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume()
+    - ubifs: Fix memory leak in alloc_wbufs()
+    - ubi: Fix possible null-ptr-deref in ubi_free_volume()
+    - ubifs: Re-statistic cleaned znode count if commit failed
+    - ubifs: dirty_cow_znode: Fix memleak in error handling path
+    - ubifs: ubifs_writepage: Mark page dirty after writing inode failed
+    - ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show()
+    - ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed
+    - x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list
+    - watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in
+      error path
+    - watchdog: Fix kmemleak in watchdog_cdev_register
+    - watchdog: pcwd_usb: Fix attempting to access uninitialized memory
+    - netfilter: ctnetlink: fix possible refcount leak in
+      ctnetlink_create_conntrack()
+    - ipv6: Add lwtunnel encap size of all siblings in nexthop calculation
+    - sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop
+    - net: fix __dev_kfree_skb_any() vs drop monitor
+    - 9p/xen: fix version parsing
+    - 9p/xen: fix connection sequence
+    - 9p/rdma: unmap receive dma buffer in rdma_request()/post_recv()
+    - net/mlx5: Geneve, Fix handling of Geneve object id as error code
+    - nfc: fix memory leak of se_io context in nfc_genl_se_io
+    - net/sched: act_sample: fix action bind logic
+    - ARM: dts: spear320-hmi: correct STMPE GPIO compatible
+    - tcp: tcp_check_req() can be called from process context
+    - vc_screen: modify vcs_size() handling in vcs_read()
+    - rtc: sun6i: Make external 32k oscillator optional
+    - rtc: sun6i: Always export the internal oscillator
+    - scsi: ipr: Work around fortify-string warning
+    - thermal: intel: quark_dts: fix error pointer dereference
+    - thermal: intel: BXT_PMIC: select REGMAP instead of depending on it
+    - tracing: Add NULL checks for buffer in ring_buffer_free_read_page()
+    - firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3
+    - mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak
+    - media: uvcvideo: Handle cameras with invalid descriptors
+    - media: uvcvideo: Handle errors from calls to usb_string
+    - media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910
+    - media: uvcvideo: Silence memcpy() run-time false positive warnings
+    - staging: emxx_udc: Add checks for dma_alloc_coherent()
+    - tty: fix out-of-bounds access in tty_driver_lookup_tty()
+    - tty: serial: fsl_lpuart: disable the CTS when send break signal
+    - mei: bus-fixup:upon error print return values of send and receive
+    - tools/iio/iio_utils:fix memory leak
+    - iio: accel: mma9551_core: Prevent uninitialized variable in
+      mma9551_read_status_word()
+    - iio: accel: mma9551_core: Prevent uninitialized variable in
+      mma9551_read_config_word()
+    - usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer
+      math
+    - USB: ene_usb6250: Allocate enough memory for full object
+    - usb: uvc: Enumerate valid values for color matching
+    - kernel/fail_function: fix memory leak with using debugfs_lookup()
+    - PCI: Add ACS quirk for Wangxun NICs
+    - phy: rockchip-typec: Fix unsigned comparison with less than zero
+    - net: tls: avoid hanging tasks on the tx_lock
+    - x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid}
+    - x86/resctl: fix scheduler confusion with 'current'
+    - Bluetooth: hci_sock: purge socket queues in the destruct() callback
+    - SAUCE: Revert "UBUNTU: SAUCE: Fix inet_csk_listen_start after CVE-2023-0461"
+    - tcp: Fix listen() regression in 5.4.229.
+    - media: uvcvideo: Provide sync and async uvc_ctrl_status_event
+    - media: uvcvideo: Fix race condition with usb_kill_urb
+    - dt-bindings: rtc: sun6i-a31-rtc: Loosen the requirements on the clocks
+    - Linux 5.4.235
+    - [Config] Drop mxsfb for armhf:generic-lpae
+  * Focal update: v5.4.234 upstream stable release (LP: #2017691)
+    - arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc
+    - ARM: dts: rockchip: add power-domains property to dp node on rk3288
+    - ACPI: NFIT: fix a potential deadlock during NFIT teardown
+    - btrfs: send: limit number of clones and allocated memory size
+    - IB/hfi1: Assign npages earlier
+    - neigh: make sure used and confirmed times are valid
+    - HID: core: Fix deadloop in hid_apply_multiplier.
+    - bpf: bpf_fib_lookup should not return neigh in NUD_FAILED state
+    - net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues().
+    - vc_screen: don't clobber return value in vcs_read
+    - dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
+    - USB: serial: option: add support for VW/Skoda "Carstick LTE"
+    - USB: core: Don't hold device lock while reading the "descriptors" sysfs file
+    - Linux 5.4.234
+  * CVE-2023-30456
+    - KVM: nVMX: add missing consistency checks for CR0 and CR4
+  * CVE-2023-1859
+    - 9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race
+      condition
+  * CVE-2023-1670
+    - xirc2ps_cs: Fix use after free bug in xirc2ps_detach
+
+  [ Ubuntu: 5.4.0-149.166 ]
+
+  * focal/linux: 5.4.0-149.166 -proposed tracker (LP: #2016591)
+  * Focal update: v5.4.233 upstream stable release (LP: #2015909)
+    - dma-mapping: add generic helpers for mapping sgtable objects
+    - scatterlist: add generic wrappers for iterating over sgtable objects
+    - drm: etnaviv: fix common struct sg_table related issues
+    - drm/etnaviv: don't truncate physical page address
+    - wifi: rtl8xxxu: gen2: Turn on the rate control
+    - powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G
+    - random: always mix cycle counter in add_latent_entropy()
+    - KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
+    - can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len
+    - powerpc: dts: t208x: Disable 10G on MAC1 and MAC2
+    - alarmtimer: Prevent starvation by small intervals and SIG_IGN
+    - drm/i915/gvt: fix double free bug in split_2MB_gtt_entry
+    - mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
+    - uaccess: Add speculation barrier to copy_from_user()
+    - wifi: mwifiex: Add missing compatible string for SD8787
+    - ext4: Fix function prototype mismatch for ext4_feat_ktype
+    - Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo
+      child qdiscs"
+    - bpf: add missing header file include
+    - Linux 5.4.233
+  *  selftest: fib_tests: Always cleanup before exit  (LP: #2015956)
+    - selftest: fib_tests: Always cleanup before exit
+  * fib_tests.sh in ubuntu_kernel_selftests was skipped silently on Focal
+    (LP: #2015440)
+    - selftests: Fix the executable permissions for fib_tests.sh
+  * Debian autoreconstruct Fix restoration of execute permissions (LP: #2015498)
+    - [Debian] autoreconstruct - fix restoration of execute permissions
+  * kernel: fix __clear_user() inline assembly constraints (LP: #2013088)
+    - s390/uaccess: add missing earlyclobber annotations to __clear_user()
+  * i/o error if next unused loop device is queried (LP: #1856871)
+    - loop: fix I/O error on fsync() in detached loop devices
+  * CVE-2023-1075
+    - net/tls: tls_is_tx_ready() checked list_entry
+  * Focal update: v5.4.232 upstream stable release (LP: #2011625)
+    - firewire: fix memory leak for payload of request subaction to IEC 61883-1
+      FCP region
+    - bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
+    - ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
+    - ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
+    - arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
+    - scsi: Revert "scsi: core: map PQ=1, PDT=other values to
+      SCSI_SCAN_TARGET_PRESENT"
+    - WRITE is "data source", not destination...
+    - fix iov_iter_bvec() "direction" argument
+    - fix "direction" argument of iov_iter_kvec()
+    - netrom: Fix use-after-free caused by accept on already connected socket
+    - netfilter: br_netfilter: disable sabotage_in hook after first suppression
+    - squashfs: harden sanity check in squashfs_read_xattr_id_table
+    - net: phy: meson-gxl: Add generic dummy stubs for MMD register access
+    - can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
+    - ata: libata: Fix sata_down_spd_limit() when no link speed is reported
+    - selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
+    - selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
+    - selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy
+      benchmarking
+    - virtio-net: Keep stop() to follow mirror sequence of open()
+    - net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
+    - efi: fix potential NULL deref in efi_mem_reserve_persistent
+    - scsi: target: core: Fix warning on RT kernels
+    - scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
+    - i2c: rk3x: fix a bunch of kernel-doc warnings
+    - net/x25: Fix to not accept on connected socket
+    - iio: adc: stm32-dfsdm: fill module aliases
+    - usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
+    - usb: dwc3: qcom: enable vbus override when in OTG dr-mode
+    - usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
+    - vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
+    - Input: i8042 - move __initconst to fix code styling warning
+    - Input: i8042 - merge quirk tables
+    - Input: i8042 - add TUXEDO devices to i8042 quirk tables
+    - Input: i8042 - add Clevo PCX0DX to i8042 quirk table
+    - fbcon: Check font dimension limits
+    - watchdog: diag288_wdt: do not use stack buffers for hardware data
+    - watchdog: diag288_wdt: fix __diag288() inline assembly
+    - efi: Accept version 2 of memory attributes table
+    - iio: hid: fix the retval in accel_3d_capture_sample
+    - iio: adc: berlin2-adc: Add missing of_node_put() in error path
+    - iio:adc:twl6030: Enable measurements of VUSB, VBAT and others
+    - parisc: Fix return code of pdc_iodc_print()
+    - parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
+    - riscv: disable generation of unwind tables
+    - mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
+    - fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
+    - mm/swapfile: add cond_resched() in get_swap_pages()
+    - Squashfs: fix handling and sanity checking of xattr_ids count
+    - nvmem: core: fix cell removal on error
+    - mm: swap: properly update readahead statistics in unuse_pte_range()
+    - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
+    - serial: 8250_dma: Fix DMA Rx completion race
+    - serial: 8250_dma: Fix DMA Rx rearm race
+    - powerpc/imc-pmu: Revert nest_init_lock to being a mutex
+    - fbdev: smscufx: fix error handling code in ufx_usb_probe
+    - f2fs: fix to do sanity check on i_extra_isize in is_alive()
+    - wifi: brcmfmac: Check the count value of channel spec to prevent out-of-
+      bounds reads
+    - iio:adc:twl6030: Enable measurement of VAC
+    - btrfs: limit device extents to the device size
+    - btrfs: zlib: zero-initialize zlib workspace
+    - ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
+    - tracing: Fix poll() and select() do not work on per_cpu trace_pipe and
+      trace_pipe_raw
+    - can: j1939: do not wait 250 ms if the same addr was already claimed
+    - IB/hfi1: Restore allocated resources on failed copyout
+    - IB/IPoIB: Fix legacy IPoIB due to wrong number of queues
+    - iommu: Add gfp parameter to iommu_ops::map
+    - RDMA/usnic: use iommu_map_atomic() under spin_lock()
+    - xfrm: fix bug with DSCP copy to v6 from v4 tunnel
+    - bonding: fix error checking in bond_debug_reregister()
+    - net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
+    - ionic: clean interrupt before enabling queue to avoid credit race
+    - ice: Do not use WQ_MEM_RECLAIM flag for workqueue
+    - rds: rds_rm_zerocopy_callback() use list_first_entry()
+    - selftests: forwarding: lib: quote the sysctl values
+    - ALSA: pci: lx6464es: fix a debug loop
+    - pinctrl: aspeed: Fix confusing types in return value
+    - pinctrl: single: fix potential NULL dereference
+    - pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
+    - net: USB: Fix wrong-direction WARNING in plusb.c
+    - usb: core: add quirk for Alcor Link AK9563 smartcard reader
+    - usb: typec: altmodes/displayport: Fix probe pin assign check
+    - ceph: flush cap releases when the session is flushed
+    - riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
+    - arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
+    - arm64: dts: meson-g12-common: Make mmc host controller interrupts level-
+      sensitive
+    - arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
+    - nvme-pci: Move enumeration by class to be last in the table
+    - bpf: Always return target ifindex in bpf_fib_lookup
+    - migrate: hugetlb: check for hugetlb shared PMD in node migration
+    - selftests/bpf: Verify copy_register_state() preserves parent/live fields
+    - ASoC: cs42l56: fix DT probe
+    - tools/virtio: fix the vringh test for virtio ring changes
+    - net/rose: Fix to not accept on connected socket
+    - net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
+    - net: sched: sch: Bounds check priority
+    - s390/decompressor: specify __decompress() buf len to avoid overflow
+    - nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
+    - aio: fix mremap after fork null-deref
+    - btrfs: free device in btrfs_close_devices for a single device filesystem
+    - netfilter: nft_tproxy: restrict to prerouting hook
+    - xfs: remove the xfs_efi_log_item_t typedef
+    - xfs: remove the xfs_efd_log_item_t typedef
+    - xfs: remove the xfs_inode_log_item_t typedef
+    - xfs: factor out a xfs_defer_create_intent helper
+    - xfs: merge the ->log_item defer op into ->create_intent
+    - xfs: merge the ->diff_items defer op into ->create_intent
+    - xfs: turn dfp_intent into a xfs_log_item
+    - xfs: refactor xfs_defer_finish_noroll
+    - xfs: log new intent items created as part of finishing recovered intent
+      items
+    - xfs: fix finobt btree block recovery ordering
+    - xfs: proper replay of deferred ops queued during log recovery
+    - xfs: xfs_defer_capture should absorb remaining block reservations
+    - xfs: xfs_defer_capture should absorb remaining transaction reservation
+    - xfs: clean up bmap intent item recovery checking
+    - xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
+    - xfs: fix an incore inode UAF in xfs_bui_recover
+    - xfs: change the order in which child and parent defer ops are finished
+    - xfs: periodically relog deferred intent items
+    - xfs: expose the log push threshold
+    - xfs: only relog deferred intent items if free space in the log gets low
+    - xfs: fix missing CoW blocks writeback conversion retry
+    - xfs: ensure inobt record walks always make forward progress
+    - xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks
+    - xfs: prevent UAF in xfs_log_item_in_current_chkpt
+    - xfs: sync lazy sb accounting on quiesce of read-only mounts
+    - Revert "ipv4: Fix incorrect route flushing when source address is deleted"
+    - ipv4: Fix incorrect route flushing when source address is deleted
+    - mmc: sdio: fix possible resource leaks in some error paths
+    - mmc: mmc_spi: fix error handling in mmc_spi_probe()
+    - ALSA: hda/conexant: add a new hda codec SN6180
+    - ALSA: hda/realtek - fixed wrong gpio assigned
+    - sched/psi: Fix use-after-free in ep_remove_wait_queue()
+    - hugetlb: check for undefined shift on 32 bit architectures
+    - Revert "mm: Always release pages to the buddy allocator in
+      memblock_free_late()."
+    - net: Fix unwanted sign extension in netdev_stats_to_stats64()
+    - revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
+    - ixgbe: allow to increase MTU to 3K with XDP enabled
+    - i40e: add double of VLAN header when computing the max MTU
+    - net: bgmac: fix BCM5358 support by setting correct flags
+    - sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list
+    - dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
+    - net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
+    - net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
+    - bnxt_en: Fix mqprio and XDP ring checking logic
+    - net: stmmac: Restrict warning on disabling DMA store and fwd mode
+    - ixgbe: add double of VLAN header when computing the max MTU
+    - ipv6: Fix datagram socket connection with DSCP.
+    - ipv6: Fix tcp socket connection with DSCP.
+    - i40e: Add checking for null for nlmsg_find_attr()
+    - kvm: initialize all of the kvm_debugregs structure before sending it to
+      userspace
+    - nilfs2: fix underflow in second superblock position calculations
+    - ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
+    - net: sched: sch: Fix off by one in htb_activate_prios()
+    - iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
+    - Linux 5.4.232
+  * CVE-2023-1118
+    - media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
+
+  [ Ubuntu: 5.4.0-148.165 ]
+
+  * focal/linux: 5.4.0-148.165 -proposed tracker (LP: #2016777)
+  * CVE-2023-1829
+    - net/sched: Retire tcindex classifier
+    - [Config]: Make sure CONFIG_NET_CLS_TCINDEX is not available
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 19 Jun 2023 13:05:12 +0800
+
+linux-ein (5.4.0-1037.43) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1037.43 -proposed tracker (LP: #2017272)
+
+  * [K4500-NXP][UC20] Unexpectedly reboot if using the kernel on 'master' branch
+    (LP: #2008068)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Load panel driver early
+
+  * Miscellaneous Ubuntu changes
+    - snap: Add snapcraft.yaml for Reading
+    - snap: reading: Add customized firmware
+    - snap: adopt trim-firmware
+
+  [ Ubuntu: 5.4.0-147.164 ]
+
+  * focal/linux: 5.4.0-147.164 -proposed tracker (LP: #2011959)
+  * CVE-2023-26545
+    - net: mpls: fix stale pointer if allocation fails during device rename
+  * CVE-2023-1281
+    - rcu: Upgrade rcu_swap_protected() to rcu_replace_pointer()
+    - net/sched: tcindex: update imperfect hash filters respecting rcu
+  * Focal update: v5.4.231 upstream stable release (LP: #2011226)
+    - clk: generalize devm_clk_get() a bit
+    - clk: Provide new devm_clk helpers for prepared and enabled clocks
+    - memory: atmel-sdramc: Fix missing clk_disable_unprepare in
+      atmel_ramc_probe()
+    - memory: mvebu-devbus: Fix missing clk_disable_unprepare in
+      mvebu_devbus_probe()
+    - ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts'
+    - ARM: imx27: Retrieve the SYSCTRL base address from devicetree
+    - ARM: imx31: Retrieve the IIM base address from devicetree
+    - ARM: imx35: Retrieve the IIM base address from devicetree
+    - ARM: imx: add missing of_node_put()
+    - HID: intel_ish-hid: Add check for ishtp_dma_tx_map
+    - EDAC/highbank: Fix memory leak in highbank_mc_probe()
+    - tomoyo: fix broken dependency on *.conf.default
+    - RDMA/core: Fix ib block iterator counter overflow
+    - IB/hfi1: Reject a zero-length user expected buffer
+    - IB/hfi1: Reserve user expected TIDs
+    - IB/hfi1: Fix expected receive setup error exit issues
+    - affs: initialize fsdata in affs_truncate()
+    - amd-xgbe: TX Flow Ctrl Registers are h/w ver dependent
+    - amd-xgbe: Delay AN timeout during KR training
+    - bpf: Fix pointer-leak due to insufficient speculative store bypass
+      mitigation
+    - phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in
+      rockchip_usb2phy_power_on()
+    - net: nfc: Fix use-after-free in local_cleanup()
+    - net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs
+    - gpio: mxc: Always set GPIOs used as interrupt source to INPUT mode
+    - net/sched: sch_taprio: fix possible use-after-free
+    - net: fix a concurrency bug in l2tp_tunnel_register()
+    - l2tp: Serialize access to sk_user_data with sk_callback_lock
+    - l2tp: Don't sleep and disable BH under writer-side sk_callback_lock
+    - net: usb: sr9700: Handle negative len
+    - net: mdio: validate parameter addr in mdiobus_get_phy()
+    - HID: check empty report_list in hid_validate_values()
+    - HID: check empty report_list in bigben_probe()
+    - net: stmmac: fix invalid call to mdiobus_get_phy()
+    - HID: revert CHERRY_MOUSE_000C quirk
+    - usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait
+    - usb: gadget: f_fs: Ensure ep0req is dequeued before free_request
+    - net: mlx5: eliminate anonymous module_init & module_exit
+    - drm/panfrost: fix GENERIC_ATOMIC64 dependency
+    - dmaengine: Fix double increment of client_count in dma_chan_get()
+    - net: macb: fix PTP TX timestamp failure due to packet padding
+    - HID: betop: check shape of output reports
+    - dmaengine: xilinx_dma: use devm_platform_ioremap_resource()
+    - dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling
+    - dmaengine: xilinx_dma: call of_node_put() when breaking out of
+      for_each_child_of_node()
+    - tcp: avoid the lookup process failing to get sk in ehash table
+    - w1: fix deadloop in __w1_remove_master_device()
+    - w1: fix WARNING after calling w1_process()
+    - driver core: Fix test_async_probe_init saves device in wrong array
+    - net: dsa: microchip: ksz9477: port map correction in ALU table entry
+      register
+    - tcp: fix rate_app_limited to default to 1
+    - cpufreq: Add Tegra234 to cpufreq-dt-platdev blocklist
+    - ASoC: fsl_micfil: Correct the number of steps on SX controls
+    - drm: Add orientation quirk for Lenovo ideapad D330-10IGL
+    - s390/debug: add _ASM_S390_ prefix to header guard
+    - cpufreq: armada-37xx: stop using 0 as NULL pointer
+    - ASoC: fsl_ssi: Rename AC'97 streams to avoid collisions with AC'97 CODEC
+    - ASoC: fsl-asoc-card: Fix naming of AC'97 CODEC widgets
+    - spi: spidev: remove debug messages that access spidev->spi without locking
+    - KVM: s390: interrupt: use READ_ONCE() before cmpxchg()
+    - scsi: hisi_sas: Set a port invalid only if there are no devices attached
+      when refreshing port id
+    - platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD
+    - platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK
+    - lockref: stop doing cpu_relax in the cmpxchg loop
+    - mmc: sdhci-esdhc-imx: clear pending interrupt and halt cqhci
+    - mmc: sdhci-esdhc-imx: disable the CMD CRC check for standard tuning
+    - mmc: sdhci-esdhc-imx: correct the tuning start tap and step setting
+    - netfilter: conntrack: do not renew entry stuck in tcp SYN_SENT state
+    - fs: reiserfs: remove useless new_opts in reiserfs_remount
+    - Bluetooth: hci_sync: cancel cmd_timer if hci_open failed
+    - scsi: hpsa: Fix allocation size for scsi_host_alloc()
+    - module: Don't wait for GOING modules
+    - tracing: Make sure trace_printk() can output as soon as it can be used
+    - trace_events_hist: add check for return value of 'create_hist_field'
+    - ftrace/scripts: Update the instructions for ftrace-bisect.sh
+    - cifs: Fix oops due to uncleared server->smbd_conn in reconnect
+    - KVM: x86/vmx: Do not skip segment attributes if unusable bit is set
+    - thermal: intel: int340x: Protect trip temperature from concurrent updates
+    - ARM: 9280/1: mm: fix warning on phys_addr_t to void pointer assignment
+    - EDAC/device: Respect any driver-supplied workqueue polling value
+    - EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info
+    - netlink: prevent potential spectre v1 gadgets
+    - net: fix UaF in netns ops registration error path
+    - netfilter: nft_set_rbtree: skip elements in transaction from garbage
+      collection
+    - netlink: annotate data races around nlk->portid
+    - netlink: annotate data races around dst_portid and dst_group
+    - netlink: annotate data races around sk_state
+    - ipv4: prevent potential spectre v1 gadget in ip_metrics_convert()
+    - ipv4: prevent potential spectre v1 gadget in fib_metrics_match()
+    - netfilter: conntrack: fix vtag checks for ABORT/SHUTDOWN_COMPLETE
+    - netrom: Fix use-after-free of a listening socket.
+    - net/sched: sch_taprio: do not schedule in taprio_reset()
+    - sctp: fail if no bound addresses can be used for a given scope
+    - net: ravb: Fix possible hang if RIS2_QFF1 happen
+    - thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
+    - net/tg3: resolve deadlock in tg3_reset_task() during EEH
+    - net/phy/mdio-i2c: Move header file to include/linux/mdio
+    - net: xgene: Move shared header file into include/linux
+    - net: mdio-mux-meson-g12a: force internal PHY off on mux switch
+    - Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI
+      mode"
+    - nfsd: Ensure knfsd shuts down when the "nfsd" pseudofs is unmounted
+    - block: fix and cleanup bio_check_ro
+    - x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL
+    - netfilter: conntrack: unify established states for SCTP paths
+    - perf/x86/amd: fix potential integer overflow on shift of a int
+    - clk: Fix pointer casting to prevent oops in devm_clk_release()
+    - x86/asm: Fix an assembler warning with current binutils
+    - ARM: dts: imx: Fix pca9547 i2c-mux node name
+    - bpf: Skip task with pid=1 in send_signal_common()
+    - blk-cgroup: fix missing pd_online_fn() while activating policy
+    - dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init
+    - sysctl: add a new register_sysctl_init() interface
+    - panic: unset panic_on_warn inside panic()
+    - mm: kasan: do not panic if both panic_on_warn and kasan_multishot set
+    - exit: Add and use make_task_dead.
+    - objtool: Add a missing comma to avoid string concatenation
+    - hexagon: Fix function name in die()
+    - h8300: Fix build errors from do_exit() to make_task_dead() transition
+    - csky: Fix function name in csky_alignment() and die()
+    - ia64: make IA64_MCA_RECOVERY bool instead of tristate
+    - exit: Put an upper limit on how often we can oops
+    - exit: Expose "oops_count" to sysfs
+    - exit: Allow oops_limit to be disabled
+    - panic: Consolidate open-coded panic_on_warn checks
+    - panic: Introduce warn_limit
+    - panic: Expose "warn_count" to sysfs
+    - docs: Fix path paste-o for /sys/kernel/warn_count
+    - exit: Use READ_ONCE() for all oops/warn limit reads
+    - ipv6: ensure sane device mtu in tunnels
+    - Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt
+    - usb: host: xhci-plat: add wakeup entry at sysfs
+    - Revert "xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()"
+    - Linux 5.4.231
+  * CVE-2022-3903
+    - USB: add usb_control_msg_send() and usb_control_msg_recv()
+    - USB: correct API of usb_control_msg_send/recv
+    - USB: move snd_usb_pipe_sanity_check into the USB core
+    - media: mceusb: Use new usb_control_msg_*() routines
+  * CVE-2022-3108
+    - drm/amdkfd: Check for null pointer after calling kmemdup
+  * Focal update: v5.4.230 upstream stable release (LP: #2008946)
+    - pNFS/filelayout: Fix coalescing test for single DS
+    - net/ethtool/ioctl: return -EOPNOTSUPP if we have no phy stats
+    - RDMA/srp: Move large values to a new enum for gcc13
+    - f2fs: let's avoid panic if extent_tree is not created
+    - wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices
+    - Add exception protection processing for vd in axi_chan_handle_err function
+    - nilfs2: fix general protection fault in nilfs_btree_insert()
+    - efi: fix userspace infinite retry read efivars after EFI runtime services
+      page fault
+    - drm/i915/gt: Reset twice
+    - ALSA: hda/realtek - Turn on power early
+    - xhci-pci: set the dma max_seg_size
+    - usb: xhci: Check endpoint is valid before dereferencing it
+    - xhci: Fix null pointer dereference when host dies
+    - xhci: Add update_hub_device override for PCI xHCI hosts
+    - xhci: Add a flag to disable USB3 lpm on a xhci root port level.
+    - usb: acpi: add helper to check port lpm capability using acpi _DSM
+    - xhci: Detect lpm incapable xHC USB3 roothub ports from ACPI tables
+    - prlimit: do_prlimit needs to have a speculation check
+    - USB: serial: option: add Quectel EM05-G (GR) modem
+    - USB: serial: option: add Quectel EM05-G (CS) modem
+    - USB: serial: option: add Quectel EM05-G (RS) modem
+    - USB: serial: option: add Quectel EC200U modem
+    - USB: serial: option: add Quectel EM05CN (SG) modem
+    - USB: serial: option: add Quectel EM05CN modem
+    - USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100
+    - misc: fastrpc: Don't remove map on creater_process and device_release
+    - misc: fastrpc: Fix use-after-free race condition for maps
+    - usb: core: hub: disable autosuspend for TI TUSB8041
+    - comedi: adv_pci1760: Fix PWM instruction handling
+    - mmc: sunxi-mmc: Fix clock refcount imbalance during unbind
+    - btrfs: fix race between quota rescan and disable leading to NULL pointer
+      deref
+    - cifs: do not include page data when checking signature
+    - USB: serial: cp210x: add SCALANCE LPE-9000 device id
+    - usb: host: ehci-fsl: Fix module alias
+    - usb: typec: altmodes/displayport: Add pin assignment helper
+    - usb: typec: altmodes/displayport: Fix pin assignment calculation
+    - usb: gadget: g_webcam: Send color matching descriptor per frame
+    - usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate()
+    - usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210
+    - dt-bindings: phy: g12a-usb3-pcie-phy: fix compatible string documentation
+    - serial: pch_uart: Pass correct sg to dma_unmap_sg()
+    - dmaengine: tegra210-adma: fix global intr clear
+    - serial: atmel: fix incorrect baudrate setup
+    - gsmi: fix null-deref in gsmi_get_variable
+    - drm/i915: re-disable RC6p on Sandy Bridge
+    - drm/amd/display: Fix set scaling doesn's work
+    - drm/amd/display: Fix COLOR_SPACE_YCBCR2020_TYPE matrix
+    - x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN
+    - mm/khugepaged: fix collapse_pte_mapped_thp() to allow anon_vma
+    - Linux 5.4.230
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sat, 22 Apr 2023 18:48:58 +0800
+
+linux-ein (5.4.0-1036.42) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1036.42 -proposed tracker (LP: #2015677)
+
+  * [Amgis-v*] Update device trees for UIO platform driver (LP#2012101)
+    - SAUCE: amgis: dts: Add UIO node
+
+  * [imx8-all][oem-support] CAAM Driver is not loaded (LP: #2009583)
+    - MLKU-129-3 arm64: dts: imx8mp: add secure memory
+    - MLKU-25-4 arm64: dts: imx8m: add secure memory
+
+  * Miscellaneous Ubuntu changes
+    - [Config] ein: Enforce module signature check
+    - SAUCE: Add imx8 modules to signature inclusion list
+
+  [ Ubuntu: 5.4.0-146.163 ]
+
+  * focal/linux: 5.4.0-146.163 -proposed tracker (LP: #2012094)
+  * NFS deathlock with last Kernel 5.4.0-144.161 and 5.15.0-67.74 (LP: #2009325)
+    - NFS: Correct timing for assigning access cache timestamp
+
+  [ Ubuntu: 5.4.0-145.162 ]
+
+  * focal/linux: 5.4.0-145.162 -proposed tracker (LP: #2008389)
+  * [SRU]Update ice driver to support E823 devices (LP: #1986717)
+    - ice: Add device ids for E822 devices
+    - ice: add support for E823 devices
+  * btrfs/154: rename fails with EOVERFLOW when calculating item size during
+    item key collision (LP: #2004132)
+    - btrfs: correctly calculate item size used when item key collision happens
+  * rtcpie in timers from ubuntu_kernel_selftests randomly failing
+    (LP: #1814234)
+    - SAUCE: selftest: rtcpie: Force passing unreliable subtest
+  * [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under
+    PV - kernel part (LP: #1999882)
+    - KVM: s390x: fix SCK locking
+    - KVM: s390: pv: don't allow userspace to set the clock under PV
+  * CVE-2021-3669
+    - ipc: replace costly bailout check in sysvipc_find_ipc()
+  * net:fcnal-test.sh 'nettest' command not found on F/K (LP: #2006391)
+    - selftests/net: Find nettest in current directory
+  * xfs: Preallocated ioend transactions cause deadlock due to log buffer
+    exhaustion (LP: #2007219)
+    - xfs: drop submit side trans alloc for append ioends
+  * CVE-2022-4382
+    - USB: gadgetfs: Fix race between mounting and unmounting
+  * CVE-2022-2196
+    - KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
+  * ubuntu_kernel_selftests: net:udpgso_bench.sh failed (LP: #1951447)
+    - selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
+  * net:fcnal-test.sh didn't return a non-zero value even with some sub-tests
+    failed (LP: #2006692)
+    - selftests: net/fcnal-test.sh: add exit code
+  * Fix selftests/ftracetests/Meta-selftests in Focal (LP: #2006453)
+    - SAUCE: Fix ftrace/Meta-selftests bashism check
+  * CVE-2023-23559
+    - wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sun, 09 Apr 2023 19:07:31 +0800
+
+linux-ein (5.4.0-1035.41) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1035.41 -proposed tracker (LP: #2011767)
+
+  * [UC20][Amgis-V5] Enabling OPTEE based FDE (LP#1995129)
+    - SAUCE: amgis: dts: Remove busfreq node
+    - SAUCE: amgis: dts: Fix OPTEE crash
+    - SAUCE: amgis: dts: Additional OCRAM node for OPTEE
+    - SAUCE: amgis: dts: Add secure memory
+
+  * [Amgis-V5][UC20] System reboot via RPMSG/M4 failed (LP#2009916)
+    - SAUCE: rpmsg: Change virtio bus name
+
+  * [PE100A] Fixes for LAN1 (LP: #1994123)
+    - SAUCE: net: fec: modify ethernet LED behavior for RTL8211E/RTL8211F
+    - net: phy: realtek: fix rtl8211e rx/tx delay config
+
+  * [PE100A] Fix PMIC Settings (LP: #1994118)
+    - SAUCE: arm64/dts: pe100a: modify dvs voltage of buck1~buck4.
+
+  * [PE100A] Add LTE modem support (LP: #1994089)
+    - SAUCE: net: Add support for more quectel modems
+
+  * Cadence MHDP HDMI CEC driver doesn't work when building as a module (LP:
+    #2011779)
+    - SAUCE: drm/cdns: Fix #if checks for CONFIG_DRM_CDNS_HDMI_CEC
+
+  * [PE100A] Wifi patch for WMX6219 module (LP: #1994116)
+    - [Config] CONFIG_RTW88_8822CE=y
+    - Revert "PCI: dwc: Use interrupt disabling instead of masking"
+    - PCI: dwc: Restore MSI Receiver mask during resume
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 17 Mar 2023 00:26:07 +0800
+
+linux-ein (5.4.0-1034.40) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1034.40 -proposed tracker (LP: #2009905)
+
+  * Focal update: v5.4.226 upstream stable release (LP: #2003896)
+    - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER
+
+  * [K4500-NXP][UC20] HMI screen does not turn on at end of first boot process
+    or simple power cycle (LP#2002765)
+    - Revert "UBUNTU: SAUCE: drm: AVD101WX-CN: Assigned bus format to fix
+      warning:"
+
+  * [UC20] failed to bring up PLS63-W, fail rate ~10% (LP: #2008468)
+    - nvmem: core: fix registration vs use race
+
+  * Patch file for cascade-kernel (SF: #00347119)
+    - Revert "UBUNTU: SAUCE: dts: vesta-500: change pad setting to save power"
+
+  [ Ubuntu: 5.4.0-144.161 ]
+
+  * focal/linux: 5.4.0-144.161 -proposed tracker (LP: #2004653)
+  * CVE-2023-0461
+    - SAUCE: Fix inet_csk_listen_start after CVE-2023-0461
+
+  [ Ubuntu: 5.4.0-143.160 ]
+
+  * focal/linux: 5.4.0-143.160 -proposed tracker (LP: #2004385)
+  * NFS: client permission error after adding user to permissible group
+    (LP: #2003053)
+    - NFS: Clear the file access cache upon login
+    - NFS: Judge the file access cache's timestamp in rcu path
+    - NFS: Fix up a sparse warning
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914)
+    - tracing/ring-buffer: Only do full wait when cpu != RING_BUFFER_ALL_CPUS
+    - udf: Discard preallocation before extending file with a hole
+    - udf: Fix preallocation discarding at indirect extent boundary
+    - udf: Do not bother looking for prealloc extents if i_lenExtents matches
+      i_size
+    - udf: Fix extending file within last block
+    - usb: gadget: uvc: Prevent buffer overflow in setup handler
+    - USB: serial: option: add Quectel EM05-G modem
+    - USB: serial: cp210x: add Kamstrup RF sniffer PIDs
+    - USB: serial: f81232: fix division by zero on line-speed change
+    - USB: serial: f81534: fix division by zero on line-speed change
+    - igb: Initialize mailbox message for VF reset
+    - xen-netback: move removal of "hotplug-status" to the right place
+    - HID: ite: Add support for Acer S1002 keyboard-dock
+    - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E
+    - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10
+    - HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk
+    - net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
+    - usb: musb: remove extra check in musb_gadget_vbus_draw
+    - ARM: dts: qcom: apq8064: fix coresight compatible
+    - arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias
+    - drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static
+    - arm: dts: spear600: Fix clcd interrupt
+    - soc: ti: knav_qmss_queue: Use pm_runtime_resume_and_get instead of
+      pm_runtime_get_sync
+    - soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe
+    - soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe
+    - perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init()
+    - perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init()
+    - arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators
+    - arm64: dts: mt2712e: Fix unit address for pinctrl node
+    - arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names
+    - arm64: dts: mt2712-evb: Fix usb vbus regulators unit names
+    - arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name
+    - ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: turris-omnia: Add ethernet aliases
+    - ARM: dts: turris-omnia: Add switch port 6 node
+    - arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC
+    - pstore/ram: Fix error return code in ramoops_probe()
+    - ARM: mmp: fix timer_read delay
+    - pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
+    - tpm/tpm_crb: Fix error message in __crb_relinquish_locality()
+    - cpuidle: dt: Return the correct numbers of parsed idle states
+    - alpha: fix syscall entry in !AUDUT_SYSCALL case
+    - PM: hibernate: Fix mistake in kerneldoc comment
+    - fs: don't audit the capability check in simple_xattr_list()
+    - selftests/ftrace: event_triggers: wait longer for test_event_enable
+    - perf: Fix possible memleak in pmu_dev_alloc()
+    - timerqueue: Use rb_entry_safe() in timerqueue_getnext()
+    - proc: fixup uptime selftest
+    - lib/fonts: fix undefined behavior in bit shift for get_default_font
+    - ocfs2: fix memory leak in ocfs2_stack_glue_init()
+    - MIPS: vpe-mt: fix possible memory leak while module exiting
+    - MIPS: vpe-cmp: fix possible memory leak while module exiting
+    - selftests/efivarfs: Add checking of the test return value
+    - PNP: fix name memory leak in pnp_alloc_dev()
+    - perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox()
+    - irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe()
+    - EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper()
+    - nfsd: don't call nfsd_file_put from client states seqfile display
+    - genirq/irqdesc: Don't try to remove non-existing sysfs files
+    - cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()
+    - libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
+    - lib/notifier-error-inject: fix error when writing -errno to debugfs file
+    - docs: fault-injection: fix non-working usage of negative values
+    - debugfs: fix error when writing negative value to atomic_t debugfs file
+    - ocfs2: ocfs2_mount_volume does cleanup job before return error
+    - ocfs2: rewrite error handling of ocfs2_fill_super
+    - ocfs2: fix memory leak in ocfs2_mount_volume()
+    - rapidio: fix possible name leaks when rio_add_device() fails
+    - rapidio: rio: fix possible name leak in rio_register_mport()
+    - clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled
+    - ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
+    - uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
+    - xen/events: only register debug interrupt for 2-level events
+    - x86/xen: Fix memory leak in xen_smp_intr_init{_pv}()
+    - x86/xen: Fix memory leak in xen_init_lock_cpu()
+    - xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource()
+    - PM: runtime: Improve path in rpm_idle() when no callback
+    - PM: runtime: Do not call __rpm_callback() from rpm_idle()
+    - platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]()
+    - MIPS: BCM63xx: Add check for NULL for clk in clk_enable
+    - MIPS: OCTEON: warn only once if deprecated link status is being used
+    - fs: sysv: Fix sysv_nblocks() returns wrong value
+    - rapidio: fix possible UAF when kfifo_alloc() fails
+    - eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD
+    - relay: fix type mismatch when allocating memory in relay_create_buf()
+    - hfs: Fix OOB Write in hfs_asc2mac
+    - rapidio: devices: fix missing put_device in mport_cdev_open
+    - wifi: ath9k: hif_usb: fix memory leak of urbs in
+      ath9k_hif_usb_dealloc_tx_urbs()
+    - wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
+    - wifi: rtl8xxxu: Fix reading the vendor of combo chips
+    - pata_ipx4xx_cf: Fix unsigned comparison with less than zero
+    - media: i2c: ad5820: Fix error path
+    - can: kvaser_usb: do not increase tx statistics when sending error message
+      frames
+    - can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device
+    - can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to
+      {leaf,usbcan}_cmd_can_error_event
+    - can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT
+    - can: kvaser_usb_leaf: Set Warning state even without bus errors
+    - can: kvaser_usb_leaf: Fix improved state not being reported
+    - can: kvaser_usb_leaf: Fix wrong CAN state after stopping
+    - can: kvaser_usb_leaf: Fix bogus restart events
+    - can: kvaser_usb: Add struct kvaser_usb_busparams
+    - can: kvaser_usb: Compare requested bittiming parameters with actual
+      parameters in do_set_{,data}_bittiming
+    - clk: renesas: r9a06g032: Repair grave increment error
+    - spi: Update reference to struct spi_controller
+    - drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure
+    - ima: Rename internal filter rule functions
+    - ima: Fix fall-through warnings for Clang
+    - ima: Handle -ESTALE returned by ima_filter_rule_match()
+    - media: vivid: fix compose size exceed boundary
+    - bpf: propagate precision in ALU/ALU64 operations
+    - mtd: Fix device name leak when register device failed in add_mtd_device()
+    - wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port
+    - media: camss: Clean up received buffers on failed start of streaming
+    - net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write()
+    - rxrpc: Fix ack.bufferSize to be 0 when generating an ack
+    - drm/radeon: Add the missed acpi_put_table() to fix memory leak
+    - drm/mediatek: Modify dpi power on/off sequence.
+    - ASoC: pxa: fix null-pointer dereference in filter()
+    - regulator: core: fix unbalanced of node refcount in regulator_dev_lookup()
+    - amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table()
+    - integrity: Fix memory leakage in keyring allocation error path
+    - ima: Fix misuse of dereference of pointer in template_desc_init_fields()
+    - wifi: ath10k: Fix return value in ath10k_pci_init()
+    - mtd: lpddr2_nvm: Fix possible null-ptr-deref
+    - Input: elants_i2c - properly handle the reset GPIO when power is off
+    - media: solo6x10: fix possible memory leak in solo_sysfs_init()
+    - media: platform: exynos4-is: Fix error handling in fimc_md_init()
+    - media: videobuf-dma-contig: use dma_mmap_coherent
+    - bpf: Move skb->len == 0 checks into __bpf_redirect
+    - HID: hid-sensor-custom: set fixed size for custom attributes
+    - ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT
+    - ALSA: seq: fix undefined behavior in bit shift for
+      SNDRV_SEQ_FILTER_USE_EVENT
+    - regulator: core: use kfree_const() to free space conditionally
+    - clk: rockchip: Fix memory leak in rockchip_clk_register_pll()
+    - bonding: Export skip slave logic to function
+    - bonding: Rename slave_arr to usable_slaves
+    - bonding: fix link recovery in mode 2 when updelay is nonzero
+    - mtd: maps: pxa2xx-flash: fix memory leak in probe
+    - media: imon: fix a race condition in send_packet()
+    - clk: imx8mn: correct the usb1_ctrl parent to be usb_bus
+    - clk: imx: replace osc_hdmi with dummy
+    - pinctrl: pinconf-generic: add missing of_node_put()
+    - media: dvb-core: Fix ignored return value in dvb_register_frontend()
+    - media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()
+    - media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC
+    - drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe()
+    - ASoC: dt-bindings: wcd9335: fix reset line polarity in example
+    - ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd
+    - NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding
+    - NFSv4.2: Fix a memory stomp in decode_attr_security_label
+    - NFSv4.2: Fix initialisation of struct nfs4_label
+    - NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
+    - ALSA: asihpi: fix missing pci_disable_device()
+    - wifi: iwlwifi: mvm: fix double free on tx path.
+    - ASoC: mediatek: mt8173: Enable IRQ when pdata is ready
+    - drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
+    - drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
+    - ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe
+    - netfilter: conntrack: set icmpv6 redirects as RELATED
+    - bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data
+    - bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect
+    - bonding: uninitialized variable in bond_miimon_inspect()
+    - spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE
+    - wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys()
+      fails
+    - regulator: core: fix module refcount leak in set_supply()
+    - clk: qcom: clk-krait: fix wrong div2 functions
+    - hsr: Avoid double remove of a node.
+    - configfs: fix possible memory leak in configfs_create_dir()
+    - regulator: core: fix resource leak in regulator_register()
+    - bpf, sockmap: fix race in sock_map_free()
+    - media: saa7164: fix missing pci_disable_device()
+    - ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
+    - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
+    - SUNRPC: Fix missing release socket in rpc_sockname()
+    - NFSv4.x: Fail client initialisation if state manager thread can't run
+    - mmc: alcor: fix return value check of mmc_add_host()
+    - mmc: moxart: fix return value check of mmc_add_host()
+    - mmc: mxcmmc: fix return value check of mmc_add_host()
+    - mmc: pxamci: fix return value check of mmc_add_host()
+    - mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host()
+    - mmc: toshsd: fix return value check of mmc_add_host()
+    - mmc: vub300: fix return value check of mmc_add_host()
+    - mmc: wmt-sdmmc: fix return value check of mmc_add_host()
+    - mmc: atmel-mci: fix return value check of mmc_add_host()
+    - mmc: omap_hsmmc: fix return value check of mmc_add_host()
+    - mmc: meson-gx: fix return value check of mmc_add_host()
+    - mmc: via-sdmmc: fix return value check of mmc_add_host()
+    - mmc: wbsd: fix return value check of mmc_add_host()
+    - mmc: mmci: fix return value check of mmc_add_host()
+    - media: c8sectpfe: Add of_node_put() when breaking out of loop
+    - media: coda: Add check for dcoda_iram_alloc
+    - media: coda: Add check for kmalloc
+    - clk: samsung: Fix memory leak in _samsung_clk_register_pll()
+    - spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode
+    - wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h
+    - wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware()
+    - blktrace: Fix output non-blktrace event when blk_classic option enabled
+    - clk: socfpga: clk-pll: Remove unused variable 'rc'
+    - clk: socfpga: use clk_hw_register for a5/c5
+    - clk: socfpga: Fix memory leak in socfpga_gate_init()
+    - net: vmw_vsock: vmci: Check memcpy_from_msg()
+    - net: defxx: Fix missing err handling in dfx_init()
+    - net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload()
+    - drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
+    - of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry()
+      and find_dup_cset_prop()
+    - ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: farsync: Fix kmemleak when rmmods farsync
+    - net/tunnel: wait until all sk_user_data reader finish before releasing the
+      sock
+    - net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - hamradio: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: amd-xgbe: Fix logic around active and passive cables
+    - net: amd-xgbe: Check only the minimum speed for active/passive cables
+    - can: tcan4x5x: Remove invalid write in clear_interrupts
+    - net: lan9303: Fix read error execution path
+    - ntb_netdev: Use dev_kfree_skb_any() in interrupt context
+    - Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave()
+    - stmmac: fix potential division by 0
+    - apparmor: fix a memleak in multi_transaction_new()
+    - apparmor: fix lockdep warning when removing a namespace
+    - apparmor: Fix abi check to include v8 abi
+    - apparmor: Use pointer to struct aa_label for lbs_cred
+    - RDMA/core: Fix order of nldev_exit call
+    - f2fs: fix normal discard process
+    - RDMA/siw: Fix immediate work request flush to completion queue
+    - RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port
+    - RDMA/siw: Set defined status for work completion with undefined status
+    - scsi: scsi_debug: Fix a warning in resp_write_scat()
+    - crypto: ccree - swap SHA384 and SHA512 larval hashes at build time
+    - crypto: ccree - Remove debugfs when platform_driver_register failed
+    - PCI: Check for alloc failure in pci_request_irq()
+    - RDMA/hfi: Decrease PCI device reference count in error path
+    - crypto: ccree - Make cc_debugfs_global_fini() available for module init
+      function
+    - RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create
+      failed
+    - scsi: hpsa: Fix possible memory leak in hpsa_init_one()
+    - crypto: tcrypt - Fix multibuffer skcipher speed test mem leak
+    - scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add()
+    - scsi: hpsa: Fix error handling in hpsa_add_sas_host()
+    - scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device()
+    - scsi: fcoe: Fix possible name leak when device_register() fails
+    - scsi: ipr: Fix WARNING in ipr_init()
+    - scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
+    - scsi: snic: Fix possible UAF in snic_tgt_create()
+    - RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps()
+    - f2fs: avoid victim selection from previous victim section
+    - crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()
+    - RDMA/hfi1: Fix error return code in parse_platform_config()
+    - orangefs: Fix sysfs not cleanup when dev init failed
+    - crypto: img-hash - Fix variable dereferenced before check 'hdev->req'
+    - hwrng: amd - Fix PCI device refcount leak
+    - hwrng: geode - Fix PCI device refcount leak
+    - IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces
+    - drivers: dio: fix possible memory leak in dio_init()
+    - tty: serial: tegra: Activate RX DMA transfer by request
+    - serial: tegra: Read DMA status before terminating
+    - class: fix possible memory leak in __class_register()
+    - vfio: platform: Do not pass return buffer to ACPI _RST method
+    - uio: uio_dmem_genirq: Fix missing unlock in irq configuration
+    - uio: uio_dmem_genirq: Fix deadlock between irq config and handling
+    - usb: fotg210-udc: Fix ages old endianness issues
+    - staging: vme_user: Fix possible UAF in tsi148_dma_list_add
+    - usb: typec: Check for ops->exit instead of ops->enter in altmode_exit
+    - usb: typec: tcpci: fix of node refcount leak in tcpci_register_port()
+    - serial: amba-pl011: avoid SBSA UART accessing DMACR register
+    - serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle.
+    - serial: pch: Fix PCI device refcount leak in pch_request_dma()
+    - tty: serial: clean up stop-tx part in altera_uart_tx_chars()
+    - tty: serial: altera_uart_{r,t}x_chars() need only uart_port
+    - serial: altera_uart: fix locking in polling mode
+    - serial: sunsab: Fix error handling in sunsab_init()
+    - test_firmware: fix memory leak in test_firmware_init()
+    - misc: ocxl: fix possible name leak in ocxl_file_register_afu()
+    - misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
+    - misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault
+      and gru_handle_user_call_os
+    - cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter()
+    - cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
+    - counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
+    - usb: roles: fix of node refcount leak in usb_role_switch_is_parent()
+    - usb: gadget: f_hid: optional SETUP/SET_REPORT mode
+    - usb: gadget: f_hid: fix f_hidg lifetime vs cdev
+    - usb: gadget: f_hid: fix refcount leak on error path
+    - drivers: mcb: fix resource leak in mcb_probe()
+    - mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
+    - chardev: fix error handling in cdev_device_add()
+    - i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
+    - staging: rtl8192u: Fix use after free in ieee80211_rx()
+    - staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor()
+    - vme: Fix error not catched in fake_init()
+    - i2c: ismt: Fix an out-of-bounds bug in ismt_access()
+    - usb: storage: Add check for kcalloc
+    - tracing/hist: Fix issue of losting command info in error_log
+    - samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe()
+    - fbdev: ssd1307fb: Drop optional dependency
+    - fbdev: pm2fb: fix missing pci_disable_device()
+    - fbdev: via: Fix error in via_core_init()
+    - fbdev: vermilion: decrease reference count in error path
+    - fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()
+    - HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
+    - HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
+    - power: supply: fix residue sysfs file in error handle route of
+      __power_supply_register()
+    - perf trace: Return error if a system call doesn't exist
+    - perf trace: Separate 'struct syscall_fmt' definition from syscall_fmts
+      variable
+    - perf trace: Factor out the initialization of syscal_arg_fmt->scnprintf
+    - perf trace: Add the syscall_arg_fmt pointer to syscall_arg
+    - perf trace: Allow associating scnprintf routines with well known arg names
+    - perf trace: Add a strtoul() method to 'struct syscall_arg_fmt'
+    - perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number
+    - perf trace: Handle failure when trace point folder is missed
+    - perf symbol: correction while adjusting symbol
+    - HSI: omap_ssi_core: Fix error handling in ssi_init()
+    - power: supply: fix null pointer dereferencing in
+      power_supply_get_battery_info
+    - RDMA/siw: Fix pointer cast warning
+    - include/uapi/linux/swab: Fix potentially missing __always_inline
+    - rtc: snvs: Allow a time difference on clock register read
+    - rtc: pcf85063: Fix reading alarm
+    - iommu/amd: Fix pci device refcount leak in ppr_notifier()
+    - iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()
+    - macintosh: fix possible memory leak in macio_add_one_device()
+    - macintosh/macio-adb: check the return value of ioremap()
+    - powerpc/52xx: Fix a resource leak in an error handling path
+    - cxl: Fix refcount leak in cxl_calc_capp_routing
+    - powerpc/xive: add missing iounmap() in error path in
+      xive_spapr_populate_irq_data()
+    - powerpc/perf: callchain validate kernel stack pointer bounds
+    - powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in
+      of_fsl_spi_probe()
+    - powerpc/hv-gpci: Fix hv_gpci event list
+    - selftests/powerpc: Fix resource leaks
+    - pwm: sifive: Call pwm_sifive_update_clock() while mutex is held
+    - remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev()
+    - remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in
+      adsp_alloc_memory_region()
+    - rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe()
+    - rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe()
+    - nfsd: Define the file access mode enum for tracing
+    - NFSD: Add tracepoints to NFSD's duplicate reply cache
+    - nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure
+    - mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - nfc: pn533: Clear nfc_target before being used
+    - r6040: Fix kmemleak in probe and remove
+    - rtc: mxc_v2: Add missing clk_disable_unprepare()
+    - openvswitch: Fix flow lookup to use unmasked key
+    - skbuff: Account for tail adjustment during pull operations
+    - mailbox: zynq-ipi: fix error handling while device_register() fails
+    - net_sched: reject TCF_EM_SIMPLE case for complex ematch module
+    - rxrpc: Fix missing unlock in rxrpc_do_sendmsg()
+    - myri10ge: Fix an error handling path in myri10ge_probe()
+    - net: stream: purge sk_error_queue in sk_stream_kill_queues()
+    - rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
+    - binfmt_misc: fix shift-out-of-bounds in check_special_flags
+    - fs: jfs: fix shift-out-of-bounds in dbAllocAG
+    - udf: Avoid double brelse() in udf_rename()
+    - fs: jfs: fix shift-out-of-bounds in dbDiscardAG
+    - ACPICA: Fix error code path in acpi_ds_call_control_method()
+    - nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()
+    - acct: fix potential integer overflow in encode_comp_t()
+    - hfs: fix OOB Read in __hfs_brec_find
+    - drm/etnaviv: add missing quirks for GC300
+    - brcmfmac: return error when getting invalid max_flowrings from dongle
+    - wifi: ath9k: verify the expected usb_endpoints are present
+    - wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out
+    - ASoC: codecs: rt298: Add quirk for KBL-R RVP platform
+    - ipmi: fix memleak when unload ipmi driver
+    - bpf: make sure skb->len != 0 when redirecting to a tunneling device
+    - net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()
+    - hamradio: baycom_epp: Fix return type of baycom_send_packet()
+    - wifi: brcmfmac: Fix potential shift-out-of-bounds in
+      brcmf_fw_alloc_request()
+    - igb: Do not free q_vector unless new one was allocated
+    - s390/ctcm: Fix return type of ctc{mp,}m_tx()
+    - s390/netiucv: Fix return type of netiucv_tx()
+    - s390/lcs: Fix return type of lcs_start_xmit()
+    - drm/rockchip: Use drm_mode_copy()
+    - drm/sti: Use drm_mode_copy()
+    - drivers/md/md-bitmap: check the return value of md_bitmap_get_counter()
+    - md/raid1: stop mdx_raid1 thread when raid1 array run failed
+    - net: add atomic_long_t to net_device_stats fields
+    - mrp: introduce active flags to prevent UAF when applicant uninit
+    - ppp: associate skb with a device at tx
+    - bpf: Prevent decl_tag from being referenced in func_proto arg
+    - media: dvb-frontends: fix leak of memory fw
+    - media: dvbdev: adopts refcnt to avoid UAF
+    - media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
+    - blk-mq: fix possible memleak when register 'hctx' failed
+    - regulator: core: fix use_count leakage when handling boot-on
+    - mmc: f-sdh30: Add quirks for broken timeout clock capability
+    - media: si470x: Fix use-after-free in si470x_int_in_callback()
+    - clk: st: Fix memory leak in st_of_quadfs_setup()
+    - hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param()
+    - drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
+    - drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
+    - orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string()
+    - orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init()
+    - ALSA/ASoC: hda: move/rename snd_hdac_ext_stop_streams to hdac_stream.c
+    - ALSA: hda: add snd_hdac_stop_streams() helper
+    - ASoC: Intel: Skylake: Fix driver hang during shutdown
+    - ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in
+      mt8173_rt5650_rt5514_dev_probe()
+    - ASoC: audio-graph-card: fix refcount leak of cpu_ep in
+      __graph_for_each_link()
+    - ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in
+      rockchip_pdm_runtime_resume()
+    - ASoC: wm8994: Fix potential deadlock
+    - ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in
+      rk_spdif_runtime_resume()
+    - ASoC: rt5670: Remove unbalanced pm_runtime_put()
+    - pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion
+    - pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES
+    - ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
+    - ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list
+    - usb: dwc3: core: defer probe on ulpi_read_id timeout
+    - HID: wacom: Ensure bootloader PID is usable in hidraw mode
+    - reiserfs: Add missing calls to reiserfs_security_free()
+    - iio: adc: ad_sigma_delta: do not use internal iio_dev lock
+    - iio: adc128s052: add proper .data members in adc128_of_match table
+    - regulator: core: fix deadlock on regulator enable
+    - gcov: add support for checksum field
+    - media: dvbdev: fix build warning due to comments
+    - media: dvbdev: fix refcnt bug
+    - cifs: fix oops during encryption
+    - nvme-pci: fix doorbell buffer value endianness
+    - ata: ahci: Fix PCS quirk application for suspend
+    - nvme: fix the NVME_CMD_EFFECTS_CSE_MASK definition
+    - objtool: Fix SEGFAULT
+    - powerpc/rtas: avoid device tree lookups in rtas_os_term()
+    - powerpc/rtas: avoid scheduling in rtas_os_term()
+    - HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint
+    - HID: plantronics: Additional PIDs for double volume key presses quirk
+    - hfsplus: fix bug causing custom uid and gid being unable to be assigned with
+      mount
+    - ovl: Use ovl mounter's fsuid and fsgid in ovl_link()
+    - ALSA: line6: correct midi status byte when receiving data from podxt
+    - ALSA: line6: fix stack overflow in line6_midi_transmit
+    - pnode: terminate at peers of source
+    - md: fix a crash in mempool_free
+    - mm, compaction: fix fast_isolate_around() to stay within boundaries
+    - f2fs: should put a page when checking the summary info
+    - mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING
+    - tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak
+    - tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak
+    - SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails
+    - net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO
+    - net/af_packet: make sure to pull mac header
+    - media: stv0288: use explicitly signed char
+    - soc: qcom: Select REMAP_MMIO for LLCC driver
+    - kest.pl: Fix grub2 menu handling for rebooting
+    - ktest.pl minconfig: Unset configs instead of just removing them
+    - mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K
+    - btrfs: fix resolving backrefs for inline extent followed by prealloc
+    - ARM: ux500: do not directly dereference __iomem
+    - arm64: dts: qcom: sdm850-lenovo-yoga-c630: correct I2C12 pins drive strength
+    - selftests: Use optional USERCFLAGS and USERLDFLAGS
+    - cpufreq: Init completion before kobject_init_and_add()
+    - binfmt: Move install_exec_creds after setup_new_exec to match binfmt_elf
+    - binfmt: Fix error return code in load_elf_fdpic_binary()
+    - dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
+    - dm thin: Fix ABBA deadlock between shrink_slab and dm_pool_abort_metadata
+    - dm thin: Use last transaction's pmd->root when commit failed
+    - dm thin: Fix UAF in run_timer_softirq()
+    - dm integrity: Fix UAF in dm_integrity_dtr()
+    - dm clone: Fix UAF in clone_dtr()
+    - dm cache: Fix UAF in destroy()
+    - dm cache: set needs_check flag after aborting metadata
+    - tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx'
+    - x86/microcode/intel: Do not retry microcode reloading on the APs
+    - tracing/hist: Fix wrong return value in parse_action_params()
+    - tracing: Fix infinite loop in tracing_read_pipe on overflowed
+      print_trace_line
+    - ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod
+    - media: dvb-core: Fix double free in dvb_register_device()
+    - cifs: fix confusing debug message
+    - cifs: fix missing display of three mount options
+    - md/bitmap: Fix bitmap chunk size overflow issues
+    - efi: Add iMac Pro 2017 to uefi skip cert quirk
+    - ipmi: fix long wait in unload when IPMI disconnect
+    - mtd: spi-nor: Check for zero erase size in spi_nor_find_best_erase_type()
+    - ima: Fix a potential NULL pointer access in ima_restore_measurement_list
+    - ipmi: fix use after free in _ipmi_destroy_user()
+    - PCI: Fix pci_device_is_present() for VFs by checking PF
+    - PCI/sysfs: Fix double free in error path
+    - crypto: n2 - add missing hash statesize
+    - iommu/amd: Fix ivrs_acpihid cmdline parsing code
+    - parisc: led: Fix potential null-ptr-deref in start_task()
+    - device_cgroup: Roll back to original exceptions after copy failure
+    - drm/connector: send hotplug uevent on connector cleanup
+    - drm/vmwgfx: Validate the box size for the snooped cursor
+    - ext4: add inode table check in __ext4_get_inode_loc to aovid possible
+      infinite loop
+    - ext4: fix undefined behavior in bit shift for ext4_check_flag_values
+    - ext4: add EXT4_IGET_BAD flag to prevent unexpected bad inode
+    - ext4: add helper to check quota inums
+    - ext4: fix reserved cluster accounting in __es_remove_extent()
+    - ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
+    - ext4: init quota for 'old.inode' in 'ext4_rename'
+    - ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline
+    - ext4: fix corruption when online resizing a 1K bigalloc fs
+    - ext4: fix error code return to user-space in ext4_get_branch()
+    - ext4: avoid BUG_ON when creating xattrs
+    - ext4: fix inode leak in ext4_xattr_inode_create() on an error path
+    - ext4: initialize quota before expanding inode in setproject ioctl
+    - ext4: avoid unaccounted block allocation when expanding inode
+    - ext4: allocate extended attribute value in vmalloc area
+    - btrfs: replace strncpy() with strscpy()
+    - PM/devfreq: governor: Add a private governor_data for governor
+    - media: s5p-mfc: Fix to handle reference queue during finishing
+    - media: s5p-mfc: Clear workbit to handle error condition
+    - media: s5p-mfc: Fix in register read and write for H264
+    - dm thin: resume even if in FAIL mode
+    - perf probe: Use dwarf_attr_integrate as generic DWARF attr accessor
+    - perf probe: Fix to get the DW_AT_decl_file and DW_AT_call_file as unsinged
+      data
+    - KVM: x86: optimize more exit handlers in vmx.c
+    - KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers
+    - KVM: VMX: Rename INTERRUPT_PENDING to INTERRUPT_WINDOW
+    - KVM: VMX: Rename NMI_PENDING to NMI_WINDOW
+    - KVM: VMX: Fix the spelling of CPU_BASED_USE_TSC_OFFSETTING
+    - KVM: nVMX: Properly expose ENABLE_USR_WAIT_PAUSE control to L1
+    - ravb: Fix "failed to switch device to config mode" message during unbind
+    - ext4: goto right label 'failed_mount3a'
+    - ext4: correct inconsistent error msg in nojournal mode
+    - mm/highmem: Lift memcpy_[to|from]_page to core
+    - ext4: use memcpy_to_page() in pagecache_write()
+    - fs: ext4: initialize fsdata in pagecache_write()
+    - ext4: use kmemdup() to replace kmalloc + memcpy
+    - mbcache: don't reclaim used entries
+    - mbcache: add functions to delete entry if unused
+    - ext4: remove EA inode entry from mbcache on inode eviction
+    - ext4: unindent codeblock in ext4_xattr_block_set()
+    - ext4: fix race when reusing xattr blocks
+    - mbcache: automatically delete entries from cache on freeing
+    - ext4: fix deadlock due to mbcache entry corruption
+    - SUNRPC: ensure the matching upcall is in-flight upon downcall
+    - bpf: pull before calling skb_postpull_rcsum()
+    - nfsd: shut down the NFSv4 state objects before the filecache
+    - net: hns3: add interrupts re-initialization while doing VF FLR
+    - net: sched: fix memory leak in tcindex_set_parms
+    - qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure
+    - nfc: Fix potential resource leaks
+    - vhost: fix range used in translate_desc()
+    - net: amd-xgbe: add missed tasklet_kill
+    - net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe
+    - RDMA/uverbs: Silence shiftTooManyBitsSigned warning
+    - RDMA/mlx5: Fix validation of max_rd_atomic caps for DC
+    - net: sched: atm: dont intepret cls results when asked to drop
+    - net: sched: cbq: dont intepret cls results when asked to drop
+    - perf tools: Fix resources leak in perf_data__open_dir()
+    - drivers/net/bonding/bond_3ad: return when there's no aggregator
+    - usb: rndis_host: Secure rndis_query check against int overflow
+    - drm/i915: unpin on error in intel_vgpu_shadow_mm_pin()
+    - caif: fix memory leak in cfctrl_linkup_request()
+    - udf: Fix extension of the last extent in the file
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet
+    - x86/bugs: Flush IBP in ib_prctl_set()
+    - nfsd: fix handling of readdir in v4root vs. mount upcall timeout
+    - riscv: uaccess: fix type of 0 variable on error in get_user()
+    - ext4: don't allow journal inode to have encrypt flag
+    - hfs/hfsplus: use WARN_ON for sanity check
+    - hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling
+    - mbcache: Avoid nesting of cache->c_list_lock under bit locks
+    - parisc: Align parisc MADV_XXX constants with all other architectures
+    - selftests: Fix kselftest O=objdir build from cluttering top level objdir
+    - selftests: set the BUILD variable to absolute path
+    - driver core: Fix bus_type.match() error handling in __driver_attach()
+    - net: sched: disallow noqueue for qdisc classes
+    - KVM: arm64: Fix S1PTW handling on RO memslots
+    - efi: tpm: Avoid READ_ONCE() for accessing the event log
+    - docs: Fix the docs build with Sphinx 6.0
+    - perf auxtrace: Fix address filter duplicate symbol selection
+    - s390/kexec: fix ipl report address for kdump
+    - s390/percpu: add READ_ONCE() to arch_this_cpu_to_op_simple()
+    - net/ulp: prevent ULP without clone op from entering the LISTEN status
+    - ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list
+    - cifs: Fix uninitialized memory read for smb311 posix symlink create
+    - drm/msm/adreno: Make adreno quirks not overwrite each other
+    - platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during
+      probe
+    - ixgbe: fix pci device refcount leak
+    - ipv6: raw: Deduct extension header length in rawv6_push_pending_frames
+    - wifi: wilc1000: sdio: fix module autoloading
+    - usb: ulpi: defer ulpi_register on ulpi_read_id timeout
+    - jbd2: use the correct print format
+    - quota: Factor out setup of quota inode
+    - ext4: fix bug_on in __es_tree_search caused by bad quota inode
+    - ext4: lost matching-pair of trace in ext4_truncate
+    - ext4: fix use-after-free in ext4_orphan_cleanup
+    - ext4: fix uninititialized value in 'ext4_evict_inode'
+    - netfilter: ipset: Fix overflow before widen in the bitmap_ip_create()
+      function.
+    - powerpc/imc-pmu: Fix use of mutex in IRQs disabled section
+    - x86/boot: Avoid using Intel mnemonics in AT&T syntax asm
+    - EDAC/device: Fix period calculation in edac_device_reset_delay_period()
+    - regulator: da9211: Use irq handler when ready
+    - tipc: improve throughput between nodes in netns
+    - tipc: eliminate checking netns if node established
+    - tipc: fix unexpected link reset due to discovery messages
+    - hvc/xen: lock console list traversal
+    - nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
+    - net/sched: act_mpls: Fix warning during failed attribute validation
+    - net/mlx5: Rename ptp clock info
+    - net/mlx5: Fix ptp max frequency adjustment range
+    - iommu/mediatek-v1: Add error handle for mtk_iommu_probe
+    - iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe()
+    - x86/resctrl: Use task_curr() instead of task_struct->on_cpu to prevent
+      unnecessary IPI
+    - x86/resctrl: Fix task CLOSID/RMID update race
+    - drm/virtio: Fix GEM handle creation UAF
+    - arm64: atomics: format whitespace consistently
+    - arm64: atomics: remove LL/SC trampolines
+    - arm64: cmpxchg_double*: hazard against entire exchange variable
+    - efi: fix NULL-deref in init error path
+    - mm: Always release pages to the buddy allocator in memblock_free_late().
+    - Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout"
+    - tipc: fix use-after-free in tipc_disc_rcv()
+    - tty: serial: tegra: Handle RX transfer in PIO mode if DMA wasn't started
+    - tipc: Add a missing case of TIPC_DIRECT_MSG type
+    - ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown
+    - tipc: call tipc_lxc_xmit without holding node_read_lock
+    - Linux 5.4.229
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914) //
+    CVE-2023-0266 was assigned for this issue.
+    - ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914) //
+    CVE-2022-41218 is assigned to those bugs above.
+    - media: dvb-core: Fix UAF due to refcount races at releasing
+  * Focal update: v5.4.228 upstream stable release (LP: #2003904)
+    - x86/smpboot: Move rcu_cpu_starting() earlier
+    - mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page
+    - block: unhash blkdev part inode when the part is deleted
+    - ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
+    - pinctrl: meditatek: Startup with the IRQs disabled
+    - can: sja1000: fix size of OCR_MODE_MASK define
+    - can: mcba_usb: Fix termination command argument
+    - ASoC: ops: Correct bounds check for second channel on SX controls
+    - Linux 5.4.228
+  * Focal update: v5.4.227 upstream stable release (LP: #2003901)
+    - arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4
+      series
+    - arm: dts: rockchip: fix node name for hym8563 rtc
+    - ARM: dts: rockchip: fix ir-receiver node names
+    - ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name
+    - ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels
+    - ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation
+    - ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188
+    - 9p/fd: Use P9_HDRSZ for header size
+    - regulator: slg51000: Wait after asserting CS pin
+    - ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event
+    - btrfs: send: avoid unaligned encoded writes when attempting to clone range
+    - ASoC: soc-pcm: Add NULL check in BE reparenting
+    - regulator: twl6030: fix get status of twl6032 regulators
+    - fbcon: Use kzalloc() in fbcon_prepare_logo()
+    - 9p/xen: check logical size for buffer size
+    - net: usb: qmi_wwan: add u-blox 0x1342 composition
+    - mm/khugepaged: take the right locks for page table retraction
+    - mm/khugepaged: fix GUP-fast interaction by sending IPI
+    - mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
+    - xen/netback: do some code cleanup
+    - xen/netback: don't call kfree_skb() with interrupts disabled
+    - Revert "net: dsa: b53: Fix valid setting for MDB entries"
+    - media: v4l2-dv-timings.c: fix too strict blanking sanity checks
+    - memcg: fix possible use-after-free in memcg_write_event_control()
+    - mm/gup: fix gup_pud_range() for dax
+    - KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field
+    - drm/shmem-helper: Remove errant put in error path
+    - HID: usbhid: Add ALWAYS_POLL quirk for some mice
+    - HID: hid-lg4ff: Add check for empty lbuf
+    - HID: core: fix shift-out-of-bounds in hid_report_raw_event
+    - can: af_can: fix NULL pointer dereference in can_rcv_filter
+    - ieee802154: cc2520: Fix error return code in cc2520_hw_init()
+    - ca8210: Fix crash by zero initializing data
+    - drm/bridge: ti-sn65dsi86: Fix output polarity setting bug
+    - gpio: amd8111: Fix PCI device reference count leak
+    - e1000e: Fix TX dispatch condition
+    - igb: Allocate MSI-X vector when testing
+    - af_unix: Get user_ns from in_skb in unix_diag_get_exact().
+    - Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn()
+    - Bluetooth: Fix not cleanup led when bt_init fails
+    - net: dsa: ksz: Check return value
+    - selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload
+    - mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
+    - net: encx24j600: Add parentheses to fix precedence
+    - net: encx24j600: Fix invalid logic in reading of MISTAT register
+    - xen-netfront: Fix NULL sring after live migration
+    - net: mvneta: Prevent out of bounds read in mvneta_config_rss()
+    - i40e: Fix not setting default xps_cpus after reset
+    - i40e: Fix for VF MAC address 0
+    - i40e: Disallow ip4 and ip6 l4_4_bytes
+    - NFC: nci: Bounds check struct nfc_target arrays
+    - nvme initialize core quirks before calling nvme_init_subsystem
+    - net: stmmac: fix "snps,axi-config" node property parsing
+    - net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq
+    - net: hisilicon: Fix potential use-after-free in hisi_femac_rx()
+    - net: hisilicon: Fix potential use-after-free in hix5hd2_rx()
+    - tipc: Fix potential OOB in tipc_link_proto_rcv()
+    - ipv4: Fix incorrect route flushing when source address is deleted
+    - ipv4: Fix incorrect route flushing when table ID 0 is used
+    - ethernet: aeroflex: fix potential skb leak in greth_init_rings()
+    - net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq()
+    - ipv6: avoid use-after-free in ip6_fragment()
+    - net: mvneta: Fix an out of bounds check
+    - can: esd_usb: Allow REC and TEC to return to zero
+    - Linux 5.4.227
+  * 5.15.0-58.64 breaks xen bridge networking (pvh domU) (LP: #2002889) // Focal
+    update: v5.4.227 upstream stable release (LP: #2003901)
+    - xen/netback: fix build warning
+  * Focal update: v5.4.226 upstream stable release (LP: #2003896)
+    - wifi: mac80211: fix memory free error when registering wiphy fail
+    - wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support
+    - audit: fix undefined behavior in bit shift for AUDIT_BIT
+    - wifi: mac80211: Fix ack frame idr leak when mesh has no route
+    - spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run
+    - drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017)
+    - block, bfq: fix null pointer dereference in bfq_bio_bfqg()
+    - arm64/syscall: Include asm/ptrace.h in syscall_wrapper header.
+    - RISC-V: vdso: Do not add missing symbols to version section in linker script
+    - MIPS: pic32: treat port as signed integer
+    - af_key: Fix send_acquire race with pfkey_register
+    - ARM: dts: am335x-pcm-953: Define fixed regulators in root node
+    - ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove
+    - regulator: core: fix kobject release warning and memory leak in
+      regulator_register()
+    - regulator: core: fix UAF in destroy_regulator()
+    - bus: sunxi-rsb: Support atomic transfers
+    - tee: optee: fix possible memory leak in optee_register_device()
+    - ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
+    - net: liquidio: simplify if expression
+    - nfc/nci: fix race with opening and closing
+    - net: pch_gbe: fix potential memleak in pch_gbe_tx_queue()
+    - 9p/fd: fix issue of list_del corruption in p9_fd_cancel()
+    - ARM: mxs: fix memory leak in mxs_machine_init()
+    - net/mlx4: Check retval of mlx4_bitmap_init
+    - net/qla3xxx: fix potential memleak in ql3xxx_send()
+    - net: pch_gbe: fix pci device refcount leak while module exiting
+    - nfp: add port from netdev validation for EEPROM access
+    - Drivers: hv: vmbus: fix double free in the error path of
+      vmbus_add_channel_work()
+    - Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register()
+    - net/mlx5: Fix FW tracer timestamp calculation
+    - tipc: set con sock in tipc_conn_alloc
+    - tipc: add an extra conn_get in tipc_conn_alloc
+    - tipc: check skb_linearize() return value in tipc_disc_rcv()
+    - xfrm: Fix ignored return value in xfrm6_init()
+    - NFC: nci: fix memory leak in nci_rx_data_packet()
+    - regulator: twl6030: re-add TWL6032_SUBCLASS
+    - bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending()
+    - dccp/tcp: Reset saddr on failure after inet6?_hash_connect().
+    - s390/dasd: fix no record found for raw_track_access
+    - nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
+    - nfc: st-nci: fix memory leaks in EVT_TRANSACTION
+    - net: thunderx: Fix the ACPI memory leak
+    - s390/crashdump: fix TOD programmable field size
+    - lib/vdso: use "grep -E" instead of "egrep"
+    - usb: dwc3: exynos: Fix remove() function
+    - arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency
+    - iio: light: apds9960: fix wrong register for gesture gain
+    - iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails
+    - init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash
+    - nios2: add FORCE for vmlinuz.gz
+    - iio: ms5611: Simplify IO callback parameters
+    - iio: pressure: ms5611: fixed value compensation bug
+    - ceph: do not update snapshot context when there is no new snapshot
+    - ceph: avoid putting the realm twice when decoding snaps fails
+    - firmware: google: Release devices before unregistering the bus
+    - firmware: coreboot: Register bus in module init
+    - nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty
+    - gcov: clang: fix the buffer overflow issue
+    - Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode
+    - ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01
+    - serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios()
+    - xen/platform-pci: add missing free_irq() in error path
+    - platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr()
+    - platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017)
+    - platform/x86: hp-wmi: Ignore Smart Experience App event
+    - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER
+    - tcp: configurable source port perturb table size
+    - net: usb: qmi_wwan: add Telit 0x103a composition
+    - dm integrity: flush the journal on suspend
+    - binder: avoid potential data leakage when copying txn
+    - binder: read pre-translated fds from sender buffer
+    - binder: defer copies of pre-patched txn data
+    - binder: fix pointer cast warning
+    - binder: Address corner cases in deferred copy and fixup
+    - binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
+    - btrfs: free btrfs_path before copying root refs to userspace
+    - btrfs: free btrfs_path before copying fspath to userspace
+    - btrfs: free btrfs_path before copying subvol info to userspace
+    - btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs()
+    - drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN
+    - drm/amdgpu: always register an MMU notifier for userptr
+    - fuse: lock inode unconditionally in fuse_fallocate()
+    - btrfs: free btrfs_path before copying inodes to userspace
+    - spi: spi-imx: Fix spi_bus_clk if requested clock is higher than input clock
+    - btrfs: move QUOTA_ENABLED check to rescan_should_stop from
+      btrfs_qgroup_rescan_worker
+    - drm/amdgpu: update drm_display_info correctly when the edid is read
+    - drm/amdgpu: Partially revert "drm/amdgpu: update drm_display_info correctly
+      when the edid is read"
+    - btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit()
+    - iio: health: afe4403: Fix oob read in afe4403_read_raw
+    - iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw
+    - iio: light: rpr0521: add missing Kconfig dependencies
+    - scripts/faddr2line: Fix regression in name resolution on ppc64le
+    - hwmon: (i5500_temp) fix missing pci_disable_device()
+    - hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails
+    - of: property: decrement node refcount in of_fwnode_get_reference_args()
+    - net/mlx5: Fix uninitialized variable bug in outlen_write()
+    - net/mlx5e: Fix use-after-free when reverting termination table
+    - can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev()
+    - can: cc770: cc770_isa_probe(): add missing free_cc770dev()
+    - qlcnic: fix sleep-in-atomic-context bugs caused by msleep
+    - wifi: cfg80211: fix buffer overflow in elem comparison
+    - net: phy: fix null-ptr-deref while probe() failed
+    - net: net_netdev: Fix error handling in ntb_netdev_init_module()
+    - net/9p: Fix a potential socket leak in p9_socket_open
+    - net: ethernet: nixge: fix NULL dereference
+    - dsa: lan9303: Correct stat name
+    - net: hsr: Fix potential use-after-free
+    - afs: Fix fileserver probe RTT handling
+    - net: tun: Fix use-after-free in tun_detach()
+    - packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE
+    - sctp: fix memory leak in sctp_stream_outq_migrate()
+    - net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed
+    - hwmon: (coretemp) Check for null before removing sysfs attrs
+    - hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
+    - net/mlx5: DR, Fix uninitialized var warning
+    - error-injection: Add prompt for function error injection
+    - tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
+    - nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
+    - x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3
+    - pinctrl: intel: Save and restore pins in "direct IRQ" mode
+    - mmc: mmc_test: Fix removal of debugfs file
+    - mmc: core: Fix ambiguous TRIM and DISCARD arg
+    - mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check
+    - mmc: sdhci-sprd: Fix no reset data and command after voltage switch
+    - tracing: Free buffers when a used dynamic event is removed
+    - arm64: Fix panic() when Spectre-v2 causes Spectre-BHB to re-allocate KVM
+      vectors
+    - arm64: errata: Fix KVM Spectre-v2 mitigation selection for Cortex-A57/A72
+    - mm: Fix '.data.once' orphan section warning
+    - ASoC: ops: Fix bounds check for _sx controls
+    - pinctrl: single: Fix potential division by zero
+    - iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init()
+    - parisc: Increase size of gcc stack frame check
+    - xtensa: increase size of gcc stack frame check
+    - parisc: Increase FRAME_WARN to 2048 bytes on parisc
+    - Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is
+      enabled
+    - selftests: net: add delete nexthop route warning test
+    - selftests: net: fix nexthop warning cleanup double ip typo
+    - ipv4: Handle attempt to delete multipath route when fib_info contains an nh
+      reference
+    - ipv4: Fix route deletion when nexthop info is not specified
+    - tracing/ring-buffer: Have polling block on watermark
+    - nvme: restrict management ioctls to admin
+    - nvme: ensure subsystem reset is single threaded
+    - x86/tsx: Add a feature bit for TSX control MSR support
+    - x86/pm: Add enumeration check before spec MSRs save/restore setup
+    - x86/ioremap: Fix page aligned size calculation in __ioremap_caller()
+    - Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend"
+    - char: tpm: Protect tpm_pm_suspend with locks
+    - mmc: sdhci: use FIELD_GET for preset value bit masks
+    - mmc: sdhci: Fix voltage switch delay
+    - proc: avoid integer type confusion in get_proc_long
+    - proc: proc_skip_spaces() shouldn't think it is working on C strings
+    - v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails
+    - ipc/sem: Fix dangling sem_array access in semtimedop race
+    - Linux 5.4.226
+  * CVE-2022-4139
+    - drm/i915: fix TLB invalidation for Gen12 video and compute engines
+  * Focal update: v5.4.225 upstream stable release (LP: #2002347)
+    - xfs: preserve rmapbt swapext block reservation from freed blocks
+    - xfs: rename xfs_bmap_is_real_extent to is_written_extent
+    - xfs: redesign the reflink remap loop to fix blkres depletion crash
+    - xfs: use MMAPLOCK around filemap_map_pages()
+    - xfs: preserve inode versioning across remounts
+    - xfs: drain the buf delwri queue before xfsaild idles
+    - phy: stm32: fix an error code in probe
+    - wifi: cfg80211: silence a sparse RCU warning
+    - wifi: cfg80211: fix memory leak in query_regdb_file()
+    - bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues
+    - HID: hyperv: fix possible memory leak in mousevsc_probe()
+    - net: gso: fix panic on frag_list with mixed head alloc types
+    - net: tun: Fix memory leaks of napi_get_frags
+    - bnxt_en: Fix possible crash in bnxt_hwrm_set_coal()
+    - bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer
+    - net: fman: Unregister ethernet device on removal
+    - capabilities: fix undefined behavior in bit shift for CAP_TO_MASK
+    - net: lapbether: fix issue of dev reference count leakage in
+      lapbeth_device_event()
+    - hamradio: fix issue of dev reference count leakage in bpq_device_event()
+    - drm/vc4: Fix missing platform_unregister_drivers() call in
+      vc4_drm_register()
+    - ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network
+    - can: af_can: fix NULL pointer dereference in can_rx_register()
+    - tipc: fix the msg->req tlv len check in
+      tipc_nl_compat_name_table_dump_header
+    - dmaengine: pxa_dma: use platform_get_irq_optional
+    - dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
+    - drivers: net: xgene: disable napi when register irq failed in
+      xgene_enet_open()
+    - perf stat: Fix printing os->prefix in CSV metrics output
+    - net: nixge: disable napi when enable interrupts failed in nixge_open()
+    - net/mlx5: Allow async trigger completion execution on single CPU systems
+    - net: cpsw: disable napi in cpsw_ndo_open()
+    - net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
+    - cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in
+      cxgb4vf_open()
+    - ethernet: s2io: disable napi when start nic failed in s2io_card_up()
+    - net: mv643xx_eth: disable napi when init rxq or txq failed in
+      mv643xx_eth_open()
+    - ethernet: tundra: free irq when alloc ring failed in tsi108_open()
+    - net: macvlan: fix memory leaks of macvlan_common_newlink
+    - riscv: process: fix kernel info leakage
+    - arm64: efi: Fix handling of misaligned runtime regions and drop warning
+    - MIPS: jump_label: Fix compat branch range check
+    - mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
+    - mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
+    - mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
+    - ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
+    - ALSA: hda: fix potential memleak in 'add_widget_node'
+    - ALSA: usb-audio: Add quirk entry for M-Audio Micro
+    - ALSA: usb-audio: Add DSD support for Accuphase DAC-60
+    - vmlinux.lds.h: Fix placement of '.data..decrypted' section
+    - nilfs2: fix deadlock in nilfs_count_free_blocks()
+    - nilfs2: fix use-after-free bug of ns_writer on remount
+    - drm/i915/dmabuf: fix sg_table handling in map_dma_buf
+    - btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()
+    - udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
+    - can: j1939: j1939_send_one(): fix missing CAN header initialization
+    - cert host tools: Stop complaining about deprecated OpenSSL functions
+    - dmaengine: at_hdmac: Fix at_lli struct definition
+    - dmaengine: at_hdmac: Don't start transactions at tx_submit level
+    - dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
+    - dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
+    - dmaengine: at_hdmac: Fix impossible condition
+    - dmaengine: at_hdmac: Check return code of dma_async_device_register
+    - net: tun: call napi_schedule_prep() to ensure we own a napi
+    - x86/cpu: Restore AMD's DE_CFG MSR after resume
+    - ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in
+      wm5102_probe"
+    - ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in
+      wm5110_probe"
+    - ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in
+      wm8997_probe"
+    - ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK
+    - spi: intel: Fix the offset to get the 64K erase opcode
+    - ASoC: codecs: jz4725b: add missed Line In power control bit
+    - ASoC: codecs: jz4725b: fix reported volume for Master ctl
+    - ASoC: codecs: jz4725b: use right control for Capture Volume
+    - ASoC: codecs: jz4725b: fix capture selector naming
+    - selftests/futex: fix build for clang
+    - selftests/intel_pstate: fix build for ARCH=x86_64
+    - NFSv4: Retry LOCK on OLD_STATEID during delegation return
+    - i2c: i801: add lis3lv02d's I2C address for Vostro 5568
+    - drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
+    - btrfs: remove pointless and double ulist frees in error paths of qgroup
+      tests
+    - ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" ->
+      "Route"
+    - spi: stm32: Print summary 'callbacks suppressed' message
+    - ASoC: core: Fix use-after-free in snd_soc_exit()
+    - serial: 8250_omap: remove wait loop from Errata i202 workaround
+    - serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove()
+    - serial: 8250: omap: Flush PM QOS work on remove
+    - serial: imx: Add missing .thaw_noirq hook
+    - tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send
+    - ASoC: soc-utils: Remove __exit for snd_soc_util_exit()
+    - block: sed-opal: kmalloc the cmd/resp buffers
+    - siox: fix possible memory leak in siox_device_add()
+    - parport_pc: Avoid FIFO port location truncation
+    - pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map
+    - arm64: dts: imx8mm: Fix NAND controller size-cells
+    - arm64: dts: imx8mn: Fix NAND controller size-cells
+    - ata: libata-transport: fix double ata_host_put() in ata_tport_add()
+    - net: bgmac: Drop free_netdev() from bgmac_enet_remove()
+    - mISDN: fix possible memory leak in mISDN_dsp_element_register()
+    - net: liquidio: release resources when liquidio driver open failed
+    - mISDN: fix misuse of put_device() in mISDN_register_device()
+    - net: macvlan: Use built-in RCU list checking
+    - net: caif: fix double disconnect client in chnl_net_open()
+    - bnxt_en: Remove debugfs when pci_register_driver failed
+    - xen/pcpu: fix possible memory leak in register_pcpu()
+    - drbd: use after free in drbd_create_device()
+    - platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when
+      virtualized
+    - net/x25: Fix skb leak in x25_lapb_receive_frame()
+    - cifs: Fix wrong return value checking when GETFLAGS
+    - net: thunderbolt: Fix error handling in tbnet_init()
+    - cifs: add check for returning value of SMB2_set_info_init
+    - ftrace: Fix the possible incorrect kernel message
+    - ftrace: Optimize the allocation for mcount entries
+    - ftrace: Fix null pointer dereference in ftrace_add_mod()
+    - ring_buffer: Do not deactivate non-existant pages
+    - ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open()
+    - Revert "usb: dwc3: disable USB core PHY management"
+    - slimbus: stream: correct presence rate frequencies
+    - speakup: fix a segfault caused by switching consoles
+    - USB: serial: option: add Sierra Wireless EM9191
+    - USB: serial: option: remove old LARA-R6 PID
+    - USB: serial: option: add u-blox LARA-R6 00B modem
+    - USB: serial: option: add u-blox LARA-L6 modem
+    - USB: serial: option: add Fibocom FM160 0x0111 composition
+    - usb: add NO_LPM quirk for Realforce 87U Keyboard
+    - usb: chipidea: fix deadlock in ci_otg_del_timer
+    - iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
+    - iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init()
+    - iio: pressure: ms5611: changed hardcoded SPI speed to value limited
+    - dm ioctl: fix misbehavior if list_versions races with module loading
+    - serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs
+    - serial: 8250_lpss: Configure DMA also w/o DMA filter
+    - Input: iforce - invert valid length check when fetching device IDs
+    - scsi: zfcp: Fix double free of FSF request when qdio send fails
+    - mmc: core: properly select voltage range without power cycle
+    - mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce
+      timeout
+    - mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()
+    - docs: update mediator contact information in CoC doc
+    - misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
+    - serial: 8250: Flush DMA Rx on RLSI
+    - ring-buffer: Include dropped pages in counting dirty patches
+    - scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus()
+    - kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case
+    - Input: i8042 - fix leaking of platform device on module removal
+    - macvlan: enforce a consistent minimal mtu
+    - tcp: cdg: allow tcp_cdg_release() to be called multiple times
+    - kcm: avoid potential race in kcm_tx_work
+    - bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb()
+    - kcm: close race conditions on sk_receive_queue
+    - 9p: trans_fd/p9_conn_cancel: drop client lock earlier
+    - gfs2: Check sb_bsize_shift after reading superblock
+    - gfs2: Switch from strlcpy to strscpy
+    - 9p/trans_fd: always use O_NONBLOCK read/write
+    - mm: fs: initialize fsdata passed to write_begin/write_end interface
+    - ntfs: fix use-after-free in ntfs_attr_find()
+    - ntfs: fix out-of-bounds read in ntfs_attr_find()
+    - ntfs: check overflow when iterating ATTR_RECORDs
+    - Linux 5.4.225
+  * CVE-2022-47520
+    - wifi: wilc1000: validate pairwise and authentication suite offsets
+  * CVE-2022-3545
+    - nfp: fix use-after-free in area_cache_get()
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 10 Mar 2023 12:24:57 +0800
+
+linux-ein (5.4.0-1033.39) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1033.39 -proposed tracker (LP: #2007484)
+
+  * Focal update: v5.4.221 upstream stable release (LP: #1997993)
+    - [Config] updateconfigs for ARM64_ERRATUM_1742098
+
+  * [UC20][Amgis-V5] AVR watchdog on reboot (LP#1999760)
+    - SAUCE: dts: amgis: Remove safe and v2 device tree files
+    - SAUCE: amgis: dts: Default to camera enable
+    - SAUCE: amgis: dts: v3 and v4 cleanup
+    - SAUCE: amgis: dts: v5 hardware GPIO configuration
+
+  * [UC20][Amgis-V5] Enabling OPTEE based FDE (LP #1995129)
+    - SAUCE: dts: amgis: Enable optee node
+
+  * [UC20][Amgis-V5] go standby mode and then resume pushing the power button
+    (LP #1995144)
+    - SAUCE: dts: amgis: Enable wake-up GPIO pin
+
+  * [UC20] Camera does not work after resume from suspend (LP #1999815)
+    - SAUCE: imx: gpcv2: Fix PGC CPU mapping after resume
+
+  [ Ubuntu: 5.4.0-139.156 ]
+
+  * focal/linux: 5.4.0-139.156 -proposed tracker (LP: #2003486)
+  * Revoke & rotate to new signing key (LP: #2002812)
+    - [Packaging] Revoke and rotate to new signing key
+
+  [ Ubuntu: 5.4.0-138.155 ]
+
+  * focal/linux: 5.4.0-138.155 -proposed tracker (LP: #2001845)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+  * Focal update: v5.4.224 upstream stable release (LP: #1999273)
+    - RDMA/cma: Use output interface for net_dev check
+    - IB/hfi1: Correctly move list in sc_disable()
+    - NFSv4.1: Handle RECLAIM_COMPLETE trunking errors
+    - NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot
+    - nfs4: Fix kmemleak when allocate slot failed
+    - net: dsa: Fix possible memory leaks in dsa_loop_init()
+    - RDMA/core: Fix null-ptr-deref in ib_core_cleanup()
+    - RDMA/qedr: clean up work queue on failure in qedr_alloc_resources()
+    - nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send()
+    - nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send()
+    - net: fec: fix improper use of NETDEV_TX_BUSY
+    - ata: pata_legacy: fix pdc20230_set_piomode()
+    - net: sched: Fix use after free in red_enqueue()
+    - net: tun: fix bugs for oversize packet when napi frags enabled
+    - netfilter: nf_tables: release flow rule object from commit path
+    - ipvs: use explicitly signed chars
+    - ipvs: fix WARNING in __ip_vs_cleanup_batch()
+    - ipvs: fix WARNING in ip_vs_app_net_cleanup()
+    - rose: Fix NULL pointer dereference in rose_send_frame()
+    - mISDN: fix possible memory leak in mISDN_register_device()
+    - isdn: mISDN: netjet: fix wrong check of device registration
+    - btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
+    - btrfs: fix inode list leak during backref walking at find_parent_nodes()
+    - btrfs: fix ulist leaks in error paths of qgroup self tests
+    - Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del()
+    - net: mdio: fix undefined behavior in bit shift for __mdiobus_register
+    - net, neigh: Fix null-ptr-deref in neigh_table_clear()
+    - ipv6: fix WARNING in ip6_route_net_exit_late()
+    - media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE
+    - media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE
+    - media: dvb-frontends/drxk: initialize err to 0
+    - media: meson: vdec: fix possible refcount leak in vdec_probe()
+    - scsi: core: Restrict legal sdev_state transitions via sysfs
+    - HID: saitek: add madcatz variant of MMO7 mouse device ID
+    - i2c: xiic: Add platform module alias
+    - xfs: don't fail verifier on empty attr3 leaf block
+    - xfs: use ordered buffers to initialize dquot buffers during quotacheck
+    - xfs: gut error handling in xfs_trans_unreserve_and_mod_sb()
+    - xfs: group quota should return EDQUOT when prj quota enabled
+    - xfs: don't fail unwritten extent conversion on writeback due to edquot
+    - xfs: Add the missed xfs_perag_put() for xfs_ifree_cluster()
+    - Bluetooth: L2CAP: Fix attempting to access uninitialized memory
+    - block, bfq: protect 'bfqd->queued' by 'bfqd->lock'
+    - binder: fix UAF of alloc->vma in race with munmap()
+    - btrfs: fix type of parameter generation in btrfs_get_dentry
+    - tcp/udp: Make early_demux back namespacified.
+    - kprobe: reverse kp->flags when arm_kprobe failed
+    - tools/nolibc/string: Fix memcmp() implementation
+    - tracing/histogram: Update document for KEYS_MAX size
+    - capabilities: fix potential memleak on error path from vfs_getxattr_alloc()
+    - fuse: add file_modified() to fallocate
+    - efi: random: reduce seed size to 32 bytes
+    - perf/x86/intel: Fix pebs event constraints for ICL
+    - perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[]
+    - ALSA: usb-audio: Add quirks for MacroSilicon MS2100/MS2106 devices
+    - parisc: Make 8250_gsc driver dependend on CONFIG_PARISC
+    - parisc: Export iosapic_serial_irq() symbol for serial port driver
+    - parisc: Avoid printing the hardware path twice
+    - ext4: fix warning in 'ext4_da_release_space'
+    - ext4: fix BUG_ON() when directory entry has invalid rec_len
+    - KVM: x86: Mask off reserved bits in CPUID.8000001AH
+    - KVM: x86: Mask off reserved bits in CPUID.80000008H
+    - KVM: x86: emulator: em_sysexit should update ctxt->mode
+    - KVM: x86: emulator: introduce emulator_recalc_and_set_mode
+    - KVM: x86: emulator: update the emulation mode after CR0 write
+    - mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times
+    - drm/rockchip: dsi: Force synchronous probe
+    - drm/i915/sdvo: Filter out invalid outputs more sensibly
+    - drm/i915/sdvo: Setup DDC fully before output init
+    - wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker()
+    - ipc: remove memcg accounting for sops objects in do_semtimedop()
+    - Linux 5.4.224
+  * Focal update: v5.4.223 upstream stable release (LP: #1999179)
+    - can: j1939: transport: j1939_session_skb_drop_old():
+      spin_unlock_irqrestore() before kfree_skb()
+    - can: kvaser_usb: Fix possible completions during init_completion
+    - ALSA: Use del_timer_sync() before freeing timer
+    - ALSA: au88x0: use explicitly signed char
+    - USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM
+    - usb: dwc3: gadget: Stop processing more requests on IMI
+    - usb: dwc3: gadget: Don't set IMI for no_interrupt
+    - usb: bdc: change state when port disconnected
+    - usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96
+      controller
+    - mtd: rawnand: marvell: Use correct logic for nand-keep-config
+    - xhci: Remove device endpoints from bandwidth list when freeing the device
+    - tools: iio: iio_utils: fix digit calculation
+    - iio: light: tsl2583: Fix module unloading
+    - fbdev: smscufx: Fix several use-after-free bugs
+    - mac802154: Fix LQI recording
+    - drm/msm/dsi: fix memory corruption with too many bridges
+    - drm/msm/hdmi: fix memory corruption with too many bridges
+    - mmc: core: Fix kernel panic when remove non-standard SDIO card
+    - kernfs: fix use-after-free in __kernfs_remove
+    - perf auxtrace: Fix address filter symbol name match for modules
+    - s390/futex: add missing EX_TABLE entry to __futex_atomic_op()
+    - s390/pci: add missing EX_TABLE entries to
+      __pcistg_mio_inuser()/__pcilg_mio_inuser()
+    - xfs: finish dfops on every insert range shift iteration
+    - xfs: clear XFS_DQ_FREEING if we can't lock the dquot buffer to flush
+    - xfs: force the log after remapping a synchronous-writes file
+    - Xen/gntdev: don't ignore kernel unmapping error
+    - xen/gntdev: Prevent leaking grants
+    - mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages
+    - net: ieee802154: fix error return code in dgram_bind()
+    - media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation
+    - drm/msm: Fix return type of mdp4_lvds_connector_mode_valid
+    - arc: iounmap() arg is volatile
+    - ALSA: ac97: fix possible memory leak in snd_ac97_dev_register()
+    - tipc: fix a null-ptr-deref in tipc_topsrv_accept
+    - net: netsec: fix error handling in netsec_register_mdio()
+    - x86/unwind/orc: Fix unreliable stack dump with gcov
+    - amd-xgbe: fix the SFP compliance codes check for DAC cables
+    - amd-xgbe: add the bit rate quirk for Molex cables
+    - kcm: annotate data-races around kcm->rx_psock
+    - kcm: annotate data-races around kcm->rx_wait
+    - net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed
+    - net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY
+    - tcp: fix indefinite deferral of RTO with SACK reneging
+    - can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error
+      path
+    - PM: hibernate: Allow hybrid sleep to work with s2idle
+    - media: vivid: s_fbuf: add more sanity checks
+    - media: vivid: dev->bitmap_cap wasn't freed in all cases
+    - media: v4l2-dv-timings: add sanity checks for blanking values
+    - media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced'
+    - i40e: Fix ethtool rx-flow-hash setting for X722
+    - i40e: Fix VF hang when reset is triggered on another VF
+    - i40e: Fix flow-type by setting GL_HASH_INSET registers
+    - net: ksz884x: fix missing pci_disable_device() on error in pcidev_init()
+    - PM: domains: Fix handling of unavailable/disabled idle states
+    - ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev()
+    - ALSA: aoa: Fix I2S device accounting
+    - openvswitch: switch from WARN to pr_warn
+    - net: ehea: fix possible memory leak in ehea_register_port()
+    - nh: fix scope used to find saddr when adding non gw nh
+    - net/mlx5e: Do not increment ESN when updating IPsec ESN state
+    - net/mlx5: Fix possible use-after-free in async command interface
+    - net: enetc: survive memory pressure without crashing
+    - can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global
+      FIFO receive
+    - Linux 5.4.223
+  * Focal update: v5.4.222 upstream stable release (LP: #1997994)
+    - once: fix section mismatch on clang builds
+    - Linux 5.4.222
+  * Focal update: v5.4.221 upstream stable release (LP: #1997993)
+    - xfs: open code insert range extent split helper
+    - xfs: rework insert range into an atomic operation
+    - xfs: rework collapse range into an atomic operation
+    - xfs: add a function to deal with corrupt buffers post-verifiers
+    - xfs: xfs_buf_corruption_error should take __this_address
+    - xfs: fix buffer corruption reporting when xfs_dir3_free_header_check fails
+    - xfs: check owner of dir3 data blocks
+    - xfs: check owner of dir3 blocks
+    - xfs: Use scnprintf() for avoiding potential buffer overflow
+    - xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
+    - xfs: remove the xfs_dq_logitem_t typedef
+    - xfs: remove the xfs_qoff_logitem_t typedef
+    - xfs: Replace function declaration by actual definition
+    - xfs: factor out quotaoff intent AIL removal and memory free
+    - xfs: fix unmount hang and memory leak on shutdown during quotaoff
+    - xfs: preserve default grace interval during quotacheck
+    - xfs: Lower CIL flush limit for large logs
+    - xfs: Throttle commits on delayed background CIL push
+    - xfs: factor common AIL item deletion code
+    - xfs: tail updates only need to occur when LSN changes
+    - xfs: don't write a corrupt unmount record to force summary counter recalc
+    - xfs: trylock underlying buffer on dquot flush
+    - xfs: factor out a new xfs_log_force_inode helper
+    - xfs: reflink should force the log out if mounted with wsync
+    - xfs: move inode flush to the sync workqueue
+    - xfs: fix use-after-free on CIL context on shutdown
+    - ocfs2: clear dinode links count in case of error
+    - ocfs2: fix BUG when iput after ocfs2_mknod fails
+    - x86/microcode/AMD: Apply the patch early on every logical thread
+    - hwmon/coretemp: Handle large core ID value
+    - ata: ahci-imx: Fix MODULE_ALIAS
+    - ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS
+    - KVM: arm64: vgic: Fix exit condition in scan_its_table()
+    - media: venus: dec: Handle the case where find_format fails
+    - [Config] updateconfigs for ARM64_ERRATUM_1742098
+    - arm64: errata: Remove AES hwcap for COMPAT tasks
+    - r8152: add PID for the Lenovo OneLink+ Dock
+    - btrfs: fix processing of delayed data refs during backref walking
+    - btrfs: fix processing of delayed tree block refs during backref walking
+    - ACPI: extlog: Handle multiple records
+    - tipc: Fix recognition of trial period
+    - tipc: fix an information leak in tipc_topsrv_kern_subscr
+    - HID: magicmouse: Do not set BTN_MOUSE on double report
+    - net/atm: fix proc_mpc_write incorrect return value
+    - net: phy: dp83867: Extend RX strap quirk for SGMII mode
+    - net: sched: cake: fix null pointer access issue when cake_init() fails
+    - net: hns: fix possible memory leak in hnae_ae_register()
+    - iommu/vt-d: Clean up si_domain in the init_dmars() error path
+    - arm64: topology: move store_cpu_topology() to shared code
+    - riscv: topology: fix default topology reporting
+    - ACPI: video: Force backlight native for more TongFang devices
+    - Makefile.debug: re-enable debug info for .S files
+    - hv_netvsc: Fix race between VF offering and VF association message from host
+    - mm: /proc/pid/smaps_rollup: fix no vma's null-deref
+    - Linux 5.4.221
+  * Focal update: v5.4.220 upstream stable release (LP: #1996812)
+    - ALSA: oss: Fix potential deadlock at unregistration
+    - ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()
+    - ALSA: usb-audio: Fix potential memory leaks
+    - ALSA: usb-audio: Fix NULL dererence at error path
+    - ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530
+    - ALSA: hda/realtek: Correct pin configs for ASUS G533Z
+    - ALSA: hda/realtek: Add quirk for ASUS GV601R laptop
+    - ALSA: hda/realtek: Add Intel Reference SSID to support headset keys
+    - mtd: rawnand: atmel: Unmap streaming DMA mappings
+    - cifs: destage dirty pages before re-reading them for cache=none
+    - cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message
+    - iio: dac: ad5593r: Fix i2c read protocol requirements
+    - iio: pressure: dps310: Refactor startup procedure
+    - iio: pressure: dps310: Reset chip after timeout
+    - usb: add quirks for Lenovo OneLink+ Dock
+    - can: kvaser_usb: Fix use of uninitialized completion
+    - can: kvaser_usb_leaf: Fix overread with an invalid command
+    - can: kvaser_usb_leaf: Fix TX queue out of sync after restart
+    - can: kvaser_usb_leaf: Fix CAN state after restart
+    - mmc: sdhci-sprd: Fix minimum clock limit
+    - fs: dlm: fix race between test_bit() and queue_work()
+    - fs: dlm: handle -EBUSY first in lock arg validation
+    - HID: multitouch: Add memory barriers
+    - quota: Check next/prev free block number after reading from quota file
+    - ASoC: wcd9335: fix order of Slimbus unprepare/disable
+    - regulator: qcom_rpm: Fix circular deferral regression
+    - RISC-V: Make port I/O string accessors actually work
+    - parisc: fbdev/stifb: Align graphics memory size to 4MB
+    - riscv: Allow PROT_WRITE-only mmap()
+    - riscv: Pass -mno-relax only on lld < 15.0.0
+    - UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
+    - PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge
+    - powerpc/boot: Explicitly disable usage of SPE instructions
+    - fbdev: smscufx: Fix use-after-free in ufx_ops_open()
+    - btrfs: fix race between quota enable and quota rescan ioctl
+    - f2fs: increase the limit for reserve_root
+    - f2fs: fix to do sanity check on destination blkaddr during recovery
+    - f2fs: fix to do sanity check on summary info
+    - nilfs2: fix use-after-free bug of struct nilfs_root
+    - jbd2: wake up journal waiters in FIFO order, not LIFO
+    - ext4: avoid crash when inline data creation follows DIO write
+    - ext4: fix null-ptr-deref in ext4_write_info
+    - ext4: make ext4_lazyinit_thread freezable
+    - ext4: place buffer head allocation before handle start
+    - livepatch: fix race between fork and KLP transition
+    - ftrace: Properly unset FTRACE_HASH_FL_MOD
+    - ring-buffer: Allow splice to read previous partially read pages
+    - ring-buffer: Have the shortest_full queue be the shortest not longest
+    - ring-buffer: Check pending waiters when doing wake ups as well
+    - ring-buffer: Fix race between reset page and reading page
+    - media: cedrus: Set the platform driver data earlier
+    - KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility
+    - KVM: nVMX: Unconditionally purge queued/injected events on nested "exit"
+    - KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS
+    - gcov: support GCC 12.1 and newer compilers
+    - drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()
+    - selinux: use "grep -E" instead of "egrep"
+    - tracing: Disable interrupt or preemption before acquiring arch_spinlock_t
+    - userfaultfd: open userfaultfds with O_RDONLY
+    - sh: machvec: Use char[] for section boundaries
+    - ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE
+    - nfsd: Fix a memory leak in an error handling path
+    - wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()
+    - wifi: mac80211: allow bw change during channel switch in mesh
+    - bpftool: Fix a wrong type cast in btf_dumper_int
+    - x86/resctrl: Fix to restore to original value when re-enabling hardware
+      prefetch register
+    - wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse()
+    - spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
+    - spi: qup: add missing clk_disable_unprepare on error in
+      spi_qup_pm_resume_runtime()
+    - wifi: rtl8xxxu: Fix skb misuse in TX queue selection
+    - bpf: btf: fix truncated last_member_type_id in btf_struct_resolve
+    - wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration
+    - net: fs_enet: Fix wrong check in do_pd_setup
+    - bpf: Ensure correct locking around vulnerable function find_vpid()
+    - x86/microcode/AMD: Track patch allocation size explicitly
+    - spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe
+    - netfilter: nft_fib: Fix for rpath check with VRF devices
+    - spi: s3c64xx: Fix large transfers with DMA
+    - vhost/vsock: Use kvmalloc/kvfree for larger packets.
+    - sctp: handle the error returned from sctp_auth_asoc_init_active_key
+    - tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited
+    - net: rds: don't hold sock lock when cancelling work from
+      rds_tcp_reset_callbacks()
+    - bnx2x: fix potential memory leak in bnx2x_tpa_stop()
+    - net/ieee802154: reject zero-sized raw_sendmsg()
+    - once: add DO_ONCE_SLOW() for sleepable contexts
+    - net: mvpp2: fix mvpp2 debugfs leak
+    - drm: bridge: adv7511: fix CEC power down control register offset
+    - drm/mipi-dsi: Detach devices when removing the host
+    - platform/chrome: fix double-free in chromeos_laptop_prepare()
+    - platform/chrome: fix memory corruption in ioctl
+    - platform/x86: msi-laptop: Fix old-ec check for backlight registering
+    - platform/x86: msi-laptop: Fix resource cleanup
+    - drm: fix drm_mipi_dbi build errors
+    - drm/bridge: megachips: Fix a null pointer dereference bug
+    - ASoC: rsnd: Add check for rsnd_mod_power_on
+    - ALSA: hda: beep: Simplify keep-power-at-enable behavior
+    - drm/omap: dss: Fix refcount leak bugs
+    - mmc: au1xmmc: Fix an error handling path in au1xmmc_probe()
+    - ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API
+    - drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx
+    - ALSA: dmaengine: increment buffer pointer atomically
+    - mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe()
+    - ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
+    - ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
+    - ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
+    - ALSA: hda/hdmi: Don't skip notification handling during PM operation
+    - memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe()
+    - memory: of: Fix refcount leak bug in of_get_ddr_timings()
+    - soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe()
+    - soc: qcom: smem_state: Add refcounting for the 'state->of_node'
+    - ARM: dts: turris-omnia: Fix mpp26 pin name and comment
+    - ARM: dts: kirkwood: lsxl: fix serial line
+    - ARM: dts: kirkwood: lsxl: remove first ethernet port
+    - ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family
+    - ARM: Drop CMDLINE_* dependency on ATAGS
+    - ARM: dts: exynos: fix polarity of VBUS GPIO of Origen
+    - iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
+    - iio: adc: at91-sama5d2_adc: check return status for pressure and touch
+    - iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
+    - iio: inkern: only release the device node when done with it
+    - iio: ABI: Fix wrong format of differential capacitance channel ABI.
+    - clk: meson: Hold reference returned by of_get_parent()
+    - clk: oxnas: Hold reference returned by of_get_parent()
+    - clk: berlin: Add of_node_put() for of_get_parent()
+    - clk: tegra: Fix refcount leak in tegra210_clock_init
+    - clk: tegra: Fix refcount leak in tegra114_clock_init
+    - clk: tegra20: Fix refcount leak in tegra20_clock_init
+    - HSI: omap_ssi: Fix refcount leak in ssi_probe
+    - HSI: omap_ssi_port: Fix dma_map_sg error check
+    - media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop
+    - tty: xilinx_uartps: Fix the ignore_status
+    - media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init
+    - RDMA/rxe: Fix "kernel NULL pointer dereference" error
+    - RDMA/rxe: Fix the error caused by qp->sk
+    - misc: ocxl: fix possible refcount leak in afu_ioctl()
+    - dyndbg: fix module.dyndbg handling
+    - dyndbg: let query-modname override actual module name
+    - mtd: devices: docg3: check the return value of devm_ioremap() in the probe
+    - RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.
+    - ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
+    - ata: fix ata_id_has_devslp()
+    - ata: fix ata_id_has_ncq_autosense()
+    - ata: fix ata_id_has_dipm()
+    - mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct()
+    - md/raid5: Ensure stripe_fill happens on non-read IO with journal
+    - xhci: Don't show warning for reinit on known broken suspend
+    - usb: gadget: function: fix dangling pnp_string in f_printer.c
+    - drivers: serial: jsm: fix some leaks in probe
+    - tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown
+    - phy: qualcomm: call clk_disable_unprepare in the error handling
+    - staging: vt6655: fix some erroneous memory clean-up loops
+    - firmware: google: Test spinlock on panic path to avoid lockups
+    - serial: 8250: Fix restoring termios speed after suspend
+    - scsi: libsas: Fix use-after-free bug in smp_execute_task_sg()
+    - fsi: core: Check error number after calling ida_simple_get
+    - mfd: intel_soc_pmic: Fix an error handling path in
+      intel_soc_pmic_i2c_probe()
+    - mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq()
+    - mfd: lp8788: Fix an error handling path in lp8788_probe()
+    - mfd: lp8788: Fix an error handling path in lp8788_irq_init() and
+      lp8788_irq_init()
+    - mfd: fsl-imx25: Fix check for platform_get_irq() errors
+    - mfd: sm501: Add check for platform_driver_register()
+    - clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent
+    - dmaengine: ioat: stop mod_timer from resurrecting deleted timer in
+      __cleanup()
+    - spmi: pmic-arb: correct duplicate APID to PPID mapping logic
+    - clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration
+    - clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe
+    - clk: ast2600: BCLK comes from EPLL
+    - mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg
+    - powerpc/math_emu/efp: Include module.h
+    - powerpc/sysdev/fsl_msi: Add missing of_node_put()
+    - powerpc/pci_dn: Add missing of_node_put()
+    - powerpc/powernv: add missing of_node_put() in opal_export_attrs()
+    - x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition
+    - powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5
+    - powerpc: Fix SPE Power ISA properties for e500v1 platforms
+    - cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset
+    - iommu/omap: Fix buffer overflow in debugfs
+    - crypto: akcipher - default implementation for setting a private key
+    - crypto: ccp - Release dma channels before dmaengine unrgister
+    - iommu/iova: Fix module config properly
+    - kbuild: remove the target in signal traps when interrupted
+    - crypto: cavium - prevent integer overflow loading firmware
+    - f2fs: fix race condition on setting FI_NO_EXTENT flag
+    - ACPI: video: Add Toshiba Satellite/Portege Z830 quirk
+    - MIPS: BCM47XX: Cast memcmp() of function to (void *)
+    - powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue
+    - thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to
+      avoid crash
+    - NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data
+    - wifi: brcmfmac: fix invalid address access when enabling SCAN log level
+    - bpftool: Clear errno after libcap's checks
+    - openvswitch: Fix double reporting of drops in dropwatch
+    - openvswitch: Fix overreporting of drops in dropwatch
+    - tcp: annotate data-race around tcp_md5sig_pool_populated
+    - wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg()
+    - xfrm: Update ipcomp_scratches with NULL when freed
+    - wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()
+    - Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create()
+    - Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times
+    - can: bcm: check the result of can_send() in bcm_can_tx()
+    - wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620
+    - wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620
+    - wifi: rt2x00: set VGC gain for both chains of MT7620
+    - wifi: rt2x00: set SoC wmac clock register
+    - wifi: rt2x00: correctly set BBP register 86 for MT7620
+    - net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory
+    - Bluetooth: L2CAP: Fix user-after-free
+    - drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc()
+    - drm: Use size_t type for len variable in drm_copy_field()
+    - drm: Prevent drm_copy_field() to attempt copying a NULL pointer
+    - drm/amd/display: fix overflow on MIN_I64 definition
+    - drm/vc4: vec: Fix timings for VEC modes
+    - drm: panel-orientation-quirks: Add quirk for Anbernic Win600
+    - platform/x86: msi-laptop: Change DMI match / alias strings to fix module
+      autoloading
+    - drm/amdgpu: fix initial connector audio value
+    - mmc: sdhci-msm: add compatible string check for sdm670
+    - ARM: dts: imx7d-sdb: config the max pressure for tsc2046
+    - ARM: dts: imx6q: add missing properties for sram
+    - ARM: dts: imx6dl: add missing properties for sram
+    - ARM: dts: imx6qp: add missing properties for sram
+    - ARM: dts: imx6sl: add missing properties for sram
+    - ARM: dts: imx6sll: add missing properties for sram
+    - ARM: dts: imx6sx: add missing properties for sram
+    - btrfs: scrub: try to fix super block errors
+    - clk: zynqmp: Fix stack-out-of-bounds in strncpy`
+    - media: cx88: Fix a null-ptr-deref bug in buffer_prepare()
+    - clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate
+    - scsi: 3w-9xxx: Avoid disabling device if failing to enable it
+    - nbd: Fix hung when signal interrupts nbd_start_device_ioctl()
+    - power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()
+    - staging: vt6655: fix potential memory leak
+    - ata: libahci_platform: Sanity check the DT child nodes number
+    - bcache: fix set_at_max_writeback_rate() for multiple attached devices
+    - HID: roccat: Fix use-after-free in roccat_read()
+    - md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d
+    - usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info()
+    - usb: musb: Fix musb_gadget.c rxstate overflow bug
+    - Revert "usb: storage: Add quirk for Samsung Fit flash"
+    - staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv()
+    - nvme: copy firmware_rev on each init
+    - nvmet-tcp: add bounds check on Transfer Tag
+    - usb: idmouse: fix an uninit-value in idmouse_open
+    - clk: bcm2835: Make peripheral PLLC critical
+    - perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc
+    - net: ieee802154: return -EINVAL for unknown addr type
+    - Revert "net/ieee802154: reject zero-sized raw_sendmsg()"
+    - net/ieee802154: don't warn zero-sized raw_sendmsg()
+    - ext4: continue to expand file system when the target size doesn't reach
+    - efi: libstub: drop pointless get_memory_map() call
+    - inet: fully convert sk->sk_rx_dst to RCU rules
+    - thermal: intel_powerclamp: Use first online CPU as control_cpu
+    - Linux 5.4.220
+  * Focal update: v5.4.219 upstream stable release (LP: #1996804)
+    - Linux 5.4.219
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 16 Feb 2023 23:33:02 +0800
+
+linux-ein (5.4.0-1032.38) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1032.38 -proposed tracker (LP: #2006609)
+
+  * [UC20][QCA-BT] The bluetooth interface is unstable (LP: #1999613)
+    - SAUCE: bluetooth: Add support for Qualcomm's HCI IBS protocol
+    - [Config] Enable HCI IBS protocol
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 09 Feb 2023 12:40:51 +0800
+
+linux-ein (5.4.0-1031.37) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1031.37 -proposed tracker (LP: #2002802)
+
+  * [K4500-NXP][B0+DV-2][UC20] Sometimes show kernel messages 'mmc2: cqhci:
+    timeout for tag 31' (LP: #2000621)
+    - mmc: sdhci-esdhc-imx: disable CMDQ support
+
+  [ Ubuntu: 5.4.0-137.154 ]
+
+  * focal/linux: 5.4.0-137.154 -proposed tracker (LP: #2001969)
+  * CVE-2022-3643
+    - xen/netback: Ensure protocol headers don't fall in the non-linear area
+  * CVE-2022-43945
+    - NFSD: Cap rsize_bop result based on send buffer size
+  * CVE-2022-45934
+    - Bluetooth: L2CAP: Fix u8 overflow
+  * CVE-2022-42896
+    - Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM
+    - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
+
+  [ Ubuntu: 5.4.0-136.153 ]
+
+  * focal/linux: 5.4.0-136.153 -proposed tracker (LP: #1997835)
+  * Expose built-in trusted and revoked certificates (LP: #1996892)
+    - [Packaging] Expose built-in trusted and revoked certificates
+  * [UBUNTU 20.04] KVM: PV: ext call delivered twice when receiver in PSW wait
+    (LP: #1995941)
+    - KVM: s390: pv: don't present the ecall interrupt twice
+  * [UBUNTU 20.04] boot: Add s390x secure boot trailer (LP: #1996071)
+    - s390/boot: add secure boot trailer
+  * Fix rfkill causing soft blocked wifi (LP: #1996198)
+    - platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi
+  * md: Replace snprintf with scnprintf (LP: #1993315)
+    - md: Replace snprintf with scnprintf
+  * input/keyboard: the keyboard on some Asus laptops can't work (LP: #1992266)
+    - ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA
+    - ACPI: resource: Add ASUS model S5402ZA to quirks
+  * Focal update: v5.4.218 upstream stable release (LP: #1995530)
+    - mm: pagewalk: Fix race between unmap and page walker
+    - perf tools: Fixup get_current_dir_name() compilation
+    - firmware: arm_scmi: Add SCMI PM driver remove routine
+    - dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
+    - dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API
+      failure
+    - ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
+    - scsi: qedf: Fix a UAF bug in __qedf_probe()
+    - net/ieee802154: fix uninit value bug in dgram_sendmsg
+    - um: Cleanup syscall_handler_t cast in syscalls_32.h
+    - um: Cleanup compiler warning in arch/x86/um/tls_32.c
+    - arch: um: Mark the stack non-executable to fix a binutils warning
+    - usb: mon: make mmapped memory read only
+    - USB: serial: ftdi_sio: fix 300 bps rate for SIO
+    - mmc: core: Replace with already defined values for readability
+    - mmc: core: Terminate infinite loop in SD-UHS voltage switch
+    - rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
+    - nilfs2: fix leak of nilfs_root in case of writer thread creation failure
+    - nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
+    - ceph: don't truncate file in atomic_open
+    - random: clamp credited irq bits to maximum mixed
+    - ALSA: hda: Fix position reporting on Poulsbo
+    - efi: Correct Macmini DMI match in uefi cert quirk
+    - USB: serial: qcserial: add new usb-id for Dell branded EM7455
+    - random: restore O_NONBLOCK support
+    - random: avoid reading two cache lines on irq randomness
+    - random: use expired timer rather than wq for mixing fast pool
+    - Input: xpad - add supported devices as contributed on github
+    - Input: xpad - fix wireless 360 controller breaking after suspend
+    - Linux 5.4.218
+  * Focal update: v5.4.217 upstream stable release (LP: #1995528)
+    - xfs: fix misuse of the XFS_ATTR_INCOMPLETE flag
+    - xfs: introduce XFS_MAX_FILEOFF
+    - xfs: truncate should remove all blocks, not just to the end of the page
+      cache
+    - xfs: fix s_maxbytes computation on 32-bit kernels
+    - xfs: fix IOCB_NOWAIT handling in xfs_file_dio_aio_read
+    - xfs: refactor remote attr value buffer invalidation
+    - xfs: fix memory corruption during remote attr value buffer invalidation
+    - xfs: move incore structures out of xfs_da_format.h
+    - xfs: streamline xfs_attr3_leaf_inactive
+    - xfs: fix uninitialized variable in xfs_attr3_leaf_inactive
+    - xfs: remove unused variable 'done'
+    - Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
+    - docs: update mediator information in CoC docs
+    - Linux 5.4.217
+  * Focal update: v5.4.216 upstream stable release (LP: #1995526)
+    - uas: add no-uas quirk for Hiksemi usb_disk
+    - usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
+    - uas: ignore UAS for Thinkplus chips
+    - net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
+    - clk: ingenic-tcu: Properly enable registers before accessing timers
+    - ARM: dts: integrator: Tag PCI host with device_type
+    - ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
+    - libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
+    - mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
+    - mm/page_alloc: fix race condition between build_all_zonelists and page
+      allocation
+    - mm: prevent page_frag_alloc() from corrupting the memory
+    - mm/migrate_device.c: flush TLB while holding PTL
+    - mm: fix madivse_pageout mishandling on non-LRU page
+    - media: dvb_vb2: fix possible out of bound access
+    - ARM: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver
+    - ARM: dts: am33xx: Fix MMCHS0 dma properties
+    - soc: sunxi: sram: Actually claim SRAM regions
+    - soc: sunxi: sram: Prevent the driver from being unbound
+    - soc: sunxi_sram: Make use of the helper function
+      devm_platform_ioremap_resource()
+    - soc: sunxi: sram: Fix probe function ordering issues
+    - soc: sunxi: sram: Fix debugfs info for A64 SRAM C
+    - Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in
+      suspend/resume time"
+    - Input: melfas_mip4 - fix return value check in mip4_probe()
+    - usbnet: Fix memory leak in usbnet_disconnect()
+    - nvme: add new line after variable declatation
+    - nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
+    - selftests: Fix the if conditions of in test_extra_filter()
+    - clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
+    - clk: iproc: Do not rely on node name for correct PLL setup
+    - Linux 5.4.216
+  * Focal update: v5.4.215 upstream stable release (LP: #1993203)
+    - of: fdt: fix off-by-one error in unflatten_dt_nodes()
+    - NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
+    - gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
+    - drm/meson: Correct OSD1 global alpha value
+    - drm/meson: Fix OSD1 RGB to YCbCr coefficient
+    - parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
+    - ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
+    - task_stack, x86/cea: Force-inline stack helpers
+    - tracing: hold caller_addr to hardirq_{enable,disable}_ip
+    - cifs: revalidate mapping when doing direct writes
+    - cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
+    - MAINTAINERS: add Chandan as xfs maintainer for 5.4.y
+    - iomap: iomap that extends beyond EOF should be marked dirty
+    - ASoC: nau8824: Fix semaphore unbalance at error paths
+    - regulator: pfuze100: Fix the global-out-of-bounds access in
+      pfuze100_regulator_probe()
+    - rxrpc: Fix local destruction being repeated
+    - rxrpc: Fix calc of resend age
+    - ALSA: hda/sigmatel: Keep power up while beep is enabled
+    - ALSA: hda/tegra: Align BDL entry to 4KB boundary
+    - net: usb: qmi_wwan: add Quectel RM520N
+    - afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
+    - MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
+    - mksysmap: Fix the mismatch of 'L0' symbols in System.map
+    - video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
+    - cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
+    - ALSA: hda/sigmatel: Fix unused variable warning for beep power change
+    - usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
+    - usb: dwc3: Issue core soft reset before enabling run/stop
+    - usb: dwc3: gadget: Prevent repeat pullup()
+    - usb: dwc3: gadget: Refactor pullup()
+    - usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
+    - usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
+    - usb: xhci-mtk: get the microframe boundary for ESIT
+    - usb: xhci-mtk: add only one extra CS for FS/LS INTR
+    - usb: xhci-mtk: use @sch_tt to check whether need do TT schedule
+    - usb: xhci-mtk: add a function to (un)load bandwidth info
+    - usb: xhci-mtk: add some schedule error number
+    - usb: xhci-mtk: allow multiple Start-Split in a microframe
+    - usb: xhci-mtk: relax TT periodic bandwidth allocation
+    - wifi: mac80211: Fix UAF in ieee80211_scan_rx()
+    - tty/serial: atmel: RS485 & ISO7816: wait for TXRDY before sending data
+    - serial: atmel: remove redundant assignment in rs485_config
+    - tty: serial: atmel: Preserve previous USART mode if RS485 disabled
+    - usb: add quirks for Lenovo OneLink+ Dock
+    - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
+    - usb: cdns3: fix issue with rearming ISO OUT endpoint
+    - Revert "usb: add quirks for Lenovo OneLink+ Dock"
+    - Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
+    - USB: core: Fix RST error in hub.c
+    - USB: serial: option: add Quectel BG95 0x0203 composition
+    - USB: serial: option: add Quectel RM520N
+    - ALSA: hda/tegra: set depop delay for tegra
+    - ALSA: hda: add Intel 5 Series / 3400 PCI DID
+    - ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
+    - ALSA: hda/realtek: Re-arrange quirk table entries
+    - ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
+    - ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
+    - ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
+    - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
+    - efi: libstub: check Shim mode using MokSBStateRT
+    - mm/slub: fix to return errno if kmalloc() fails
+    - arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
+    - arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
+    - arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
+    - netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
+    - netfilter: nf_conntrack_irc: Tighten matching on DCC message
+    - netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
+    - iavf: Fix cached head and tail value for iavf_get_tx_pending
+    - ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
+    - net: team: Unsync device addresses on ndo_stop
+    - MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
+    - MIPS: Loongson32: Fix PHY-mode being left unspecified
+    - iavf: Fix bad page state
+    - i40e: Fix set max_tx_rate when it is lower than 1 Mbps
+    - of: mdio: Add of_node_put() when breaking out of for_each_xx
+    - net/sched: taprio: avoid disabling offload when it was never enabled
+    - net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child
+      qdiscs
+    - netfilter: ebtables: fix memory leak when blob is malformed
+    - can: gs_usb: gs_can_open(): fix race dev->can.state condition
+    - perf jit: Include program header in ELF files
+    - perf kcore_copy: Do not check /proc/modules is unchanged
+    - net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
+    - net: sched: fix possible refcount leak in tc_new_tfilter()
+    - serial: Create uart_xmit_advance()
+    - serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
+    - serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
+    - s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
+    - usb: xhci-mtk: fix issue of out-of-bounds array access
+    - cifs: always initialize struct msghdr smb_msg completely
+    - Drivers: hv: Never allocate anything besides framebuffer from framebuffer
+      memory region
+    - drm/amd/display: Limit user regamma to a valid value
+    - drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
+    - workqueue: don't skip lockdep work dependency in cancel_work_sync()
+    - ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
+    - xfs: replace -EIO with -EFSCORRUPTED for corrupt metadata
+    - xfs: slightly tweak an assert in xfs_fs_map_blocks
+    - xfs: add missing assert in xfs_fsmap_owner_from_rmap
+    - xfs: range check ri_cnt when recovering log items
+    - xfs: attach dquots and reserve quota blocks during unwritten conversion
+    - xfs: convert EIO to EFSCORRUPTED when log contents are invalid
+    - xfs: constify the buffer pointer arguments to error functions
+    - xfs: always log corruption errors
+    - xfs: fix some memory leaks in log recovery
+    - xfs: stabilize insert range start boundary to avoid COW writeback race
+    - xfs: use bitops interface for buf log item AIL flag check
+    - xfs: refactor agfl length computation function
+    - xfs: split the sunit parameter update into two parts
+    - xfs: don't commit sunit/swidth updates to disk if that would cause repair
+      failures
+    - xfs: fix an ABBA deadlock in xfs_rename
+    - xfs: fix use-after-free when aborting corrupt attr inactivation
+    - ext4: make directory inode spreading reflect flexbg size
+    - Linux 5.4.215
+  * Focal update: v5.4.214 upstream stable release (LP: #1993196)
+    - drm/msm/rd: Fix FIFO-full deadlock
+    - HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
+    - hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
+    - tg3: Disable tg3 device on system reboot to avoid triggering AER
+    - ieee802154: cc2520: add rc code in cc2520_tx()
+    - Input: iforce - add support for Boeder Force Feedback Wheel
+    - nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
+    - perf/arm_pmu_platform: fix tests for platform_get_irq() failure
+    - platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
+    - usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
+    - mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
+    - net: dp83822: disable rx error interrupt
+    - soc: fsl: select FSL_GUTS driver for DPIO
+    - tracefs: Only clobber mode/uid/gid on remount if asked
+    - Linux 5.4.214
+  * Focal update: v5.4.213 upstream stable release (LP: #1992211)
+    - efi: capsule-loader: Fix use-after-free in efi_capsule_write
+    - wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in
+      il4965_rs_fill_link_cmd()
+    - fs: only do a memory barrier for the first set_buffer_uptodate()
+    - Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
+    - net: dp83822: disable false carrier interrupt
+    - drm/msm/dsi: fix the inconsistent indenting
+    - drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
+    - platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
+    - iio: adc: mcp3911: make use of the sign bit
+    - ieee802154/adf7242: defer destroy_workqueue call
+    - wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
+    - Revert "xhci: turn off port power in shutdown"
+    - net: sched: tbf: don't call qdisc_put() while holding tree lock
+    - ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
+    - kcm: fix strp_init() order and cleanup
+    - sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
+    - tcp: annotate data-race around challenge_timestamp
+    - Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
+    - net/smc: Remove redundant refcount increase
+    - serial: fsl_lpuart: RS485 RTS polariy is inverse
+    - staging: rtl8712: fix use after free bugs
+    - powerpc: align syscall table for ppc32
+    - vt: Clear selection before changing the font
+    - tty: serial: lpuart: disable flow control while waiting for the transmit
+      engine to complete
+    - Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
+    - iio: adc: mcp3911: use correct formula for AD conversion
+    - misc: fastrpc: fix memory corruption on probe
+    - misc: fastrpc: fix memory corruption on open
+    - USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
+    - binder: fix UAF of ref->proc caused by race condition
+    - usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
+    - drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
+    - clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
+    - Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
+    - clk: core: Fix runtime PM sequence in clk_core_unprepare()
+    - Input: rk805-pwrkey - fix module autoloading
+    - clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
+    - hwmon: (gpio-fan) Fix array out of bounds access
+    - gpio: pca953x: Add mutex_lock for regcache sync in PM
+    - thunderbolt: Use the actual buffer in tb_async_error()
+    - xhci: Add grace period after xHC start to prevent premature runtime suspend.
+    - USB: serial: cp210x: add Decagon UCA device id
+    - USB: serial: option: add support for OPPO R11 diag port
+    - USB: serial: option: add Quectel EM060K modem
+    - USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
+    - usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
+    - usb: dwc2: fix wrong order of phy_power_on and phy_init
+    - USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
+    - usb-storage: Add ignore-residue quirk for NXP PN7462AU
+    - s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
+    - s390: fix nospec table alignments
+    - USB: core: Prevent nested device-reset calls
+    - usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
+    - driver core: Don't probe devices after bus_type.match() probe deferral
+    - wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
+    - net: mac802154: Fix a condition in the receive path
+    - ALSA: seq: oss: Fix data-race for max_midi_devs access
+    - ALSA: seq: Fix data-race at module auto-loading
+    - drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
+    - btrfs: harden identification of a stale device
+    - usb: dwc3: fix PHY disable sequence
+    - usb: dwc3: disable USB core PHY management
+    - USB: serial: ch341: fix lost character on LCR updates
+    - USB: serial: ch341: fix disabled rx timer on older devices
+    - scsi: megaraid_sas: Fix double kfree()
+    - drm/gem: Fix GEM handle release errors
+    - drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
+    - drm/radeon: add a force flush to delay work when radeon
+    - parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
+    - parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
+    - arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned
+      fw_level
+    - fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
+    - drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
+    - ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
+    - ALSA: aloop: Fix random zeros in capture data when using jiffies timer
+    - ALSA: usb-audio: Fix an out-of-bounds bug in
+      __snd_usb_parse_audio_interface()
+    - kprobes: Prohibit probes in gate area
+    - debugfs: add debugfs_lookup_and_remove()
+    - nvmet: fix a use-after-free
+    - scsi: mpt3sas: Fix use-after-free warning
+    - scsi: lpfc: Add missing destroy_workqueue() in error path
+    - cgroup: Optimize single thread migration
+    - cgroup: Elide write-locking threadgroup_rwsem when updating csses on an
+      empty subtree
+    - cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
+    - smb3: missing inode locks in punch hole
+    - ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
+    - regulator: core: Clean up on enable failure
+    - RDMA/cma: Fix arguments order in net device validation
+    - soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
+    - RDMA/hns: Fix supported page size
+    - netfilter: br_netfilter: Drop dst references before setting.
+    - rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
+    - afs: Use the operation issue time instead of the reply time for callbacks
+    - sch_sfb: Don't assume the skb is still around after enqueueing to child
+    - tipc: fix shift wrapping bug in map_get()
+    - i40e: Fix kernel crash during module removal
+    - RDMA/siw: Pass a pointer to virt_to_page()
+    - ipv6: sr: fix out-of-bounds read when setting HMAC data.
+    - RDMA/mlx5: Set local port to one when accessing counters
+    - nvme-tcp: fix UAF when detecting digest errors
+    - tcp: fix early ETIMEDOUT after spurious non-SACK RTO
+    - sch_sfb: Also store skb len before calling child enqueue
+    - x86/nospec: Fix i386 RSB stuffing
+    - MIPS: loongson32: ls1c: Fix hang during startup
+    - Linux 5.4.213
+  * CVE-2022-2663
+    - netfilter: nf_conntrack_irc: Fix forged IP logic
+  * CVE-2022-3061
+    - video: fbdev: i740fb: Error out if 'pixclock' equals zero
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sat, 14 Jan 2023 16:17:47 +0800
+
+linux-ein (5.4.0-1030.36) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1030.36 -proposed tracker (LP: #2001879)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * remove a space from model in the device tree (LP: #2001574)
+    - SAUCE: dts: vesta-500: drop the last space from model
+
+  * [UC20] Improper network interface name for wwan interface (LP: #1999616)
+    - net: usb: cdc_ether: added support for Thales Cinterion PLSx3 modem family.
+    - SAUCE: net: usb: cdc_ether: add pls62 modem ids
+
+  * Set LED Behavior for Hard Reboot (LP: #1991304)
+    - SAUCE: dts: vesta-500: Fix the led level and let them on
+
+  * [imx8-bms] Disable SDMA (LP: #1997367)
+    - dmaengine: imx-sdma: restart cyclic channel if needed
+    - dmaengine: imx-sdma: fix cyclic buffer race condition
+    - dmaengine: imx-sdma: only restart cyclic channel when enabled
+
+  * [imx8-bms] Fail to boot OS (LP: #1995467)
+    - SAUCE: serial: sc16is7xx: setup GPIO controller later in probe
+    - SAUCE: serial: sc16is7xx: Change error path order
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 05 Jan 2023 23:08:21 +0800
+
+linux-ein (5.4.0-1029.35) focal; urgency=medium
+
+  * [UC20] Failed to change wifi MAC (LP: #1998279)
+    - SAUCE: ath10k: Add macaddr kernel module parameter
+
+  * Read serial number and MAC address from fuses (device provisioning) (LP:
+    #1991298)
+    - SAUCE: ath10k: Getting macaddr from Uboot
+
+  * Patch file for cascade-kernel (SF: #00347119)
+    - SAUCE: dts: vesta-500: change pad setting to save power
+
+  * Tillamook: Wifi need additional binary file to work (LP: #1990944)
+    - ath10k: add QCA9377 sdio hw_param item
+    - ath10k: switch to ieee80211_tx_dequeue_ni
+    - SAUCE: ath10k: sdio: skip cal_data if without cal_firmware
+
+  * Tillamook: [UC20] Could not detect any USB device (LP: #1991203)
+    - MLK-14285-1 usb: phy: add usb mode for usb_phy
+    - MLK-14285-2 usb: chipidea: set mode for usb phy driver
+    - MLK-13308-2 usb: phy: phy-mxs-usb: handle USB PHY event
+    - MLK-14285-3 usb: phy: mxs: optimize disconnect line condition
+
+  * Tillamook: (image) Secure boot for UC20 (LP: #1991185)
+    - SAUCE: dts: vesta-500: add ocram definition for optee-os
+
+  * Tillamook: (image) Create classic20-x02 image (LP: #1991167)
+    - SAUNCE: dts: add vesta-500 dts and overlay dts
+    - SAUCE: scripts: add support for building dtbo
+    - kbuild: Silence unavoidable dtc overlay warnings
+    - SAUCE: vesta_overlay: support dt overlay for vesta
+    - [Config] enable vesta overlay manager
+
+  * [K4500-NXP] Failed to probe caam_jr device message is shown in dmesg (LP:
+    #1993138)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Disable job ring 2 node
+
+  [ Ubuntu: 5.4.0-135.152 ]
+
+  * focal/linux: 5.4.0-135.152 -proposed tracker (LP: #1997412)
+  * containerd sporadic timeouts (LP: #1996678)
+    - epoll: call final ep_events_available() check under the lock
+    - epoll: check for events when removing a timed out thread from the wait queue
+    - Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
+  * CVE-2022-3621
+    - nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
+  * CVE-2022-3565
+    - mISDN: fix use-after-free bugs in l1oip timer handlers
+  * CVE-2022-3566
+    - tcp: Fix data races around icsk->icsk_af_ops.
+  * CVE-2022-3567
+    - ipv6: annotate some data-races around sk->sk_prot
+    - ipv6: Fix data races around sk->sk_prot.
+  * CVE-2022-3564
+    - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
+  * CVE-2022-3524
+    - tcp/udp: Fix memory leak in ipv6_renew_options().
+  * CVE-2022-3594
+    - r8152: Rate limit overflow messages
+  * CVE-2022-42703
+    - mm/rmap.c: don't reuse anon_vma if we just want a copy
+
+  [ Ubuntu: 5.4.0-132.148 ]
+
+  * CVE-2022-42719
+    - mac80211: mlme: find auth challenge directly
+    - wifi: mac80211: don't parse mbssid in assoc response
+    - wifi: mac80211: fix MBSSID parsing use-after-free
+  * iavf: SR-IOV VFs error with no traffic flow when MTU greater than 1500
+    (LP: #1983656)
+    - iavf: Fix set max MTU size with port VLAN and jumbo frames
+    - i40e: Fix VF set max MTU size
+  * fib_nexthop_nongw.sh from ubuntu_kernel_selftests failed on B-5.4
+    (LP: #1990800)
+    - SAUCE: selftests/net: skipping tests for older ip command releases
+  * CVE-2022-29901
+    - Revert "x86/speculation: Add RSB VM Exit protections"
+    - Revert "x86/cpu: Add a steppings field to struct x86_cpu_id"
+    - x86/devicetable: Move x86 specific macro out of generic code
+    - x86/cpu: Add consistent CPU match macros
+    - x86/cpu: Add a steppings field to struct x86_cpu_id
+    - x86/kvm/vmx: Make noinstr clean
+    - x86/cpufeatures: Move RETPOLINE flags to word 11
+    - x86/bugs: Report AMD retbleed vulnerability
+    - x86/bugs: Add AMD retbleed= boot parameter
+    - x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
+    - x86/entry: Remove skip_r11rcx
+    - x86/entry: Add kernel IBRS implementation
+    - x86/bugs: Optimize SPEC_CTRL MSR writes
+    - x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS
+    - x86/bugs: Split spectre_v2_select_mitigation() and
+      spectre_v2_user_select_mitigation()
+    - x86/bugs: Report Intel retbleed vulnerability
+    - intel_idle: Disable IBRS during long idle
+    - x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
+    - x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n
+    - x86/speculation: Fix firmware entry SPEC_CTRL handling
+    - x86/speculation: Fix SPEC_CTRL write on SMT state change
+    - x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit
+    - x86/speculation: Remove x86_spec_ctrl_mask
+    - KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S
+    - KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw
+    - KVM: VMX: Flatten __vmx_vcpu_run()
+    - KVM: VMX: Convert launched argument to flags
+    - KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
+    - KVM: VMX: Fix IBRS handling after vmexit
+    - x86/speculation: Fill RSB on vmexit for IBRS
+    - x86/common: Stamp out the stepping madness
+    - x86/cpu/amd: Enumerate BTC_NO
+    - x86/bugs: Add Cannon lake to RETBleed affected CPU list
+    - x86/speculation: Disable RRSBA behavior
+    - x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current
+    - x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
+    - x86/speculation: Add RSB VM Exit protections
+  * ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel
+    systems (LP: #1990985)
+    - ACPI: processor_idle: Skip dummy wait if kernel is in guest
+    - ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel
+      systems
+  * cgroup: all controllers mounted when using 'cgroup_no_v1=' (LP: #1988584)
+    - cgroup-v1: add disabled controller check in cgroup1_parse_param()
+  * Focal update: v5.4.212 upstream stable release (LP: #1991156)
+    - audit: fix potential double free on error path from fsnotify_add_inode_mark
+    - parisc: Fix exception handler for fldw and fstw instructions
+    - kernel/sys_ni: add compat entry for fadvise64_64
+    - usb: cdns3: Fix issue for clear halt endpoint
+    - pinctrl: amd: Don't save/restore interrupt status and wake status bits
+    - sched/deadline: Unthrottle PI boosted threads while enqueuing
+    - sched/deadline: Fix stale throttling on de-/boosted tasks
+    - sched/deadline: Fix priority inheritance with multiple scheduling classes
+    - kernel/sched: Remove dl_boosted flag comment
+    - xfrm: fix refcount leak in __xfrm_policy_check()
+    - SUNRPC: RPC level errors should set task->tk_rpc_status
+    - rose: check NULL rose_loopback_neigh->loopback
+    - net/mlx5e: Properly disable vlan strip on non-UL reps
+    - net: moxa: get rid of asymmetry in DMA mapping/unmapping
+    - bonding: 802.3ad: fix no transmission of LACPDUs
+    - net: ipvtap - add __init/__exit annotations to module init/exit funcs
+    - netfilter: ebtables: reject blobs that don't provide all entry points
+    - bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
+    - netfilter: nft_payload: report ERANGE for too long offset and length
+    - netfilter: nft_payload: do not truncate csum_offset and csum_type
+    - netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
+    - netfilter: nft_tunnel: restrict it to netdev family
+    - net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
+    - net: Fix data-races around netdev_tstamp_prequeue.
+    - ratelimit: Fix data-races in ___ratelimit().
+    - net: Fix a data-race around sysctl_tstamp_allow_data.
+    - net: Fix a data-race around sysctl_net_busy_poll.
+    - net: Fix a data-race around sysctl_net_busy_read.
+    - net: Fix a data-race around netdev_budget.
+    - net: Fix a data-race around netdev_budget_usecs.
+    - net: Fix a data-race around sysctl_somaxconn.
+    - ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
+    - btrfs: fix silent failure when deleting root reference
+    - btrfs: replace: drop assert for suspended replace
+    - btrfs: add info when mount fails due to stale replace target
+    - btrfs: check if root is readonly while setting security xattr
+    - x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
+    - loop: Check for overflow while configuring loop
+    - asm-generic: sections: refactor memory_intersects
+    - s390: fix double free of GS and RI CBs on fork() failure
+    - ACPI: processor: Remove freq Qos request for all CPUs
+    - mm/hugetlb: fix hugetlb not supporting softdirty tracking
+    - md: call __md_stop_writes in md_stop
+    - perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
+    - scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
+    - mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
+    - s390/mm: do not trigger write fault when vma does not allow VM_WRITE
+    - x86/bugs: Add "unknown" reporting for MMIO Stale Data
+    - kbuild: Fix include path in scripts/Makefile.modpost
+    - Bluetooth: L2CAP: Fix build errors in some archs
+    - HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
+    - udmabuf: Set the DMA mask for the udmabuf device (v2)
+    - media: pvrusb2: fix memory leak in pvr_probe
+    - HID: hidraw: fix memory leak in hidraw_release()
+    - fbdev: fb_pm2fb: Avoid potential divide by zero error
+    - ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is
+      dead
+    - bpf: Don't redirect packets with invalid pkt_len
+    - mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
+    - btrfs: introduce btrfs_lookup_match_dir
+    - btrfs: do not pin logs too early during renames
+    - btrfs: unify lookup return value when dir entry is missing
+    - drm/amd/display: Avoid MPC infinite loop
+    - drm/amd/display: clear optc underflow before turn off odm clock
+    - neigh: fix possible DoS due to net iface start/stop loop
+    - s390/hypfs: avoid error message under KVM
+    - drm/amd/display: Fix pixel clock programming
+    - netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y
+    - btrfs: tree-checker: check for overlapping extent items
+    - lib/vdso: Let do_coarse() return 0 to simplify the callsite
+    - lib/vdso: Mark do_hres() and do_coarse() as __always_inline
+    - kprobes: don't call disarm_kprobe() for disabled kprobes
+    - net/af_packet: check len when min_header_len equals to 0
+    - net: neigh: don't call kfree_skb() under spin_lock_irqsave()
+    - Linux 5.4.212
+  * Focal update: v5.4.211 upstream stable release (LP: #1990190)
+    - Makefile: link with -z noexecstack --no-warn-rwx-segments
+    - x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
+    - scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
+    - ALSA: bcd2000: Fix a UAF bug on the error path of probing
+    - igc: Remove _I_PHY_ID checking
+    - wifi: mac80211_hwsim: fix race condition in pending packet
+    - wifi: mac80211_hwsim: add back erroneously removed cast
+    - wifi: mac80211_hwsim: use 32-bit skb cookie
+    - add barriers to buffer_uptodate and set_buffer_uptodate
+    - HID: wacom: Only report rotation for art pen
+    - HID: wacom: Don't register pad_input for touch switch
+    - KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
+    - KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
+    - KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
+    - KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
+    - KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
+    - KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
+    - mm/mremap: hold the rmap lock in write mode when moving page table entries.
+    - ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
+    - ALSA: hda/cirrus - support for iMac 12,1 model
+    - ALSA: hda/realtek: Add quirk for another Asus K42JZ model
+    - tty: vt: initialize unicode screen buffer
+    - vfs: Check the truncate maximum size in inode_newsize_ok()
+    - fs: Add missing umask strip in vfs_tmpfile
+    - thermal: sysfs: Fix cooling_device_stats_setup() error code path
+    - fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
+    - usbnet: Fix linkwatch use-after-free on disconnect
+    - ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
+    - parisc: Fix device names in /proc/iomem
+    - parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
+    - drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
+    - drm/nouveau: fix another off-by-one in nvbios_addr
+    - drm/amdgpu: Check BO's requested pinning domains against its
+      preferred_domains
+    - iio: light: isl29028: Fix the warning in isl29028_remove()
+    - fuse: limit nsec
+    - serial: mvebu-uart: uart2 error bits clearing
+    - md-raid10: fix KASAN warning
+    - ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
+    - PCI: Add defines for normal and subtractive PCI bridges
+    - powerpc/fsl-pci: Fix Class Code of PCIe Root Port
+    - powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
+    - powerpc/powernv: Avoid crashing if rng is NULL
+    - MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
+    - coresight: Clear the connection field properly
+    - USB: HCD: Fix URB giveback issue in tasklet function
+    - ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
+    - arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
+    - netfilter: nf_tables: fix null deref due to zeroed list head
+    - epoll: autoremove wakers even more aggressively
+    - x86: Handle idle=nomwait cmdline properly for x86_idle
+    - arm64: Do not forget syscall when starting a new thread.
+    - arm64: fix oops in concurrently setting insn_emulation sysctls
+    - ext2: Add more validity checks for inode counts
+    - genirq: Don't return error on missing optional irq_request_resources()
+    - wait: Fix __wait_event_hrtimeout for RT/DL tasks
+    - ARM: dts: imx6ul: add missing properties for sram
+    - ARM: dts: imx6ul: change operating-points to uint32-matrix
+    - ARM: dts: imx6ul: fix csi node compatible
+    - ARM: dts: imx6ul: fix lcdif node compatible
+    - ARM: dts: imx6ul: fix qspi node compatible
+    - spi: synquacer: Add missing clk_disable_unprepare()
+    - ARM: OMAP2+: display: Fix refcount leak bug
+    - ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
+    - ACPI: PM: save NVS memory for Lenovo G40-45
+    - ACPI: LPSS: Fix missing check in register_device_clock()
+    - arm64: dts: qcom: ipq8074: fix NAND node name
+    - arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
+    - ARM: shmobile: rcar-gen2: Increase refcount for new reference
+    - PM: hibernate: defer device probing when resuming from hibernation
+    - selinux: Add boundary check in put_entry()
+    - spi: spi-rspi: Fix PIO fallback on RZ platforms
+    - ARM: findbit: fix overflowing offset
+    - meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
+    - ARM: bcm: Fix refcount leak in bcm_kona_smc_init
+    - x86/pmem: Fix platform-device leak in error path
+    - ARM: dts: ast2500-evb: fix board compatible
+    - ARM: dts: ast2600-evb: fix board compatible
+    - soc: fsl: guts: machine variable might be unset
+    - ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
+    - ARM: OMAP2+: Fix refcount leak in omapdss_init_of
+    - ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
+    - cpufreq: zynq: Fix refcount leak in zynq_get_revision
+    - soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
+    - ARM: dts: qcom: pm8841: add required thermal-sensor-cells
+    - bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
+    - arm64: dts: mt7622: fix BPI-R64 WPS button
+    - erofs: avoid consecutive detection for Highmem memory
+    - blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
+    - regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
+    - nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
+    - thermal/tools/tmon: Include pthread and time headers in tmon.h
+    - dm: return early from dm_pr_call() if DM device is suspended
+    - ath10k: do not enforce interrupt trigger type
+    - wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
+    - drm/mipi-dbi: align max_chunk to 2 in spi_transfer
+    - drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
+    - drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
+    - drm: adv7511: override i2c address of cec before accessing it
+    - i2c: Fix a potential use after free
+    - media: tw686x: Register the irq at the end of probe
+    - wifi: iwlegacy: 4965: fix potential off-by-one overflow in
+      il4965_rs_fill_link_cmd()
+    - drm: bridge: adv7511: Add check for mipi_dsi_driver_register
+    - drm/mcde: Fix refcount leak in mcde_dsi_bind
+    - media: hdpvr: fix error value returns in hdpvr_read
+    - drm/vc4: plane: Remove subpixel positioning check
+    - drm/vc4: plane: Fix margin calculations for the right/bottom edges
+    - drm/vc4: dsi: Correct DSI divider calculations
+    - crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
+    - drm/rockchip: vop: Don't crash for invalid duplicate_state()
+    - drm/rockchip: Fix an error handling path rockchip_dp_probe()
+    - drm/mediatek: dpi: Remove output format of YUV
+    - drm/mediatek: dpi: Only enable dpi after the bridge is enabled
+    - drm: bridge: sii8620: fix possible off-by-one
+    - drm/msm/mdp5: Fix global state lock backoff
+    - crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
+    - media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
+    - mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
+    - drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
+    - tcp: make retransmitted SKB fit into the send window
+    - libbpf: Fix the name of a reused map
+    - selftests: timers: valid-adjtimex: build fix for newer toolchains
+    - selftests: timers: clocksource-switch: fix passing errors from child
+    - fs: check FMODE_LSEEK to control internal pipe splicing
+    - wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
+    - wifi: p54: Fix an error handling path in p54spi_probe()
+    - wifi: p54: add missing parentheses in p54_flush()
+    - selftests/bpf: fix a test for snprintf() overflow
+    - can: pch_can: do not report txerr and rxerr during bus-off
+    - can: rcar_can: do not report txerr and rxerr during bus-off
+    - can: sja1000: do not report txerr and rxerr during bus-off
+    - can: hi311x: do not report txerr and rxerr during bus-off
+    - can: sun4i_can: do not report txerr and rxerr during bus-off
+    - can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
+    - can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
+    - can: usb_8dev: do not report txerr and rxerr during bus-off
+    - can: error: specify the values of data[5..7] of CAN error frames
+    - can: pch_can: pch_can_error(): initialize errc before using it
+    - Bluetooth: hci_intel: Add check for platform_driver_register
+    - i2c: cadence: Support PEC for SMBus block read
+    - i2c: mux-gpmux: Add of_node_put() when breaking out of loop
+    - wifi: wil6210: debugfs: fix uninitialized variable use in
+      `wil_write_file_wmi()`
+    - wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
+    - wifi: libertas: Fix possible refcount leak in if_usb_probe()
+    - net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
+    - crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
+    - iavf: Fix max_rate limiting
+    - netdevsim: Avoid allocation warnings triggered from user space
+    - net: rose: fix netdev reference changes
+    - dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
+    - clk: renesas: r9a06g032: Fix UART clkgrp bitsel
+    - mtd: maps: Fix refcount leak in of_flash_probe_versatile
+    - mtd: maps: Fix refcount leak in ap_flash_init
+    - mtd: rawnand: meson: Fix a potential double free issue
+    - HID: cp2112: prevent a buffer overflow in cp2112_xfer()
+    - mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
+    - mtd: partitions: Fix refcount leak in parse_redboot_of
+    - mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
+    - fpga: altera-pr-ip: fix unsigned comparison with less than zero
+    - usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
+    - usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
+    - usb: xhci: tegra: Fix error check
+    - clk: mediatek: reset: Fix written reset bit offset
+    - misc: rtsx: Fix an error handling path in rtsx_pci_probe()
+    - driver core: fix potential deadlock in __driver_attach
+    - clk: qcom: clk-krait: unlock spin after mux completion
+    - usb: host: xhci: use snprintf() in xhci_decode_trb()
+    - clk: qcom: ipq8074: fix NSS port frequency tables
+    - clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
+    - clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
+    - soundwire: bus_type: fix remove and shutdown support
+    - intel_th: Fix a resource leak in an error handling path
+    - intel_th: msu-sink: Potential dereference of null pointer
+    - intel_th: msu: Fix vmalloced buffers
+    - staging: rtl8192u: Fix sleep in atomic context bug in
+      dm_fsync_timer_callback
+    - mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
+    - memstick/ms_block: Fix some incorrect memory allocation
+    - memstick/ms_block: Fix a memory leak
+    - mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
+    - scsi: smartpqi: Fix DMA direction for RAID requests
+    - usb: gadget: udc: amd5536 depends on HAS_DMA
+    - RDMA/hns: Fix incorrect clearing of interrupt status register
+    - RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
+    - RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
+    - gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
+    - mmc: cavium-octeon: Add of_node_put() when breaking out of loop
+    - mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
+    - HID: alps: Declare U1_UNICORN_LEGACY support
+    - PCI: tegra194: Fix Root Port interrupt handling
+    - PCI: tegra194: Fix link up retry sequence
+    - USB: serial: fix tty-port initialized comments
+    - platform/olpc: Fix uninitialized data in debugfs write
+    - mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
+    - RDMA/rxe: Fix error unwind in rxe_create_qp()
+    - null_blk: fix ida error handling in null_add_dev()
+    - jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
+    - ext4: recover csum seed of tmp_inode after migrating to extents
+    - jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
+    - opp: Fix error check in dev_pm_opp_attach_genpd()
+    - ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
+    - ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
+    - ASoC: codecs: da7210: add check for i2c_add_driver
+    - ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
+    - serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
+    - ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
+    - ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
+    - profiling: fix shift too large makes kernel panic
+    - tty: n_gsm: fix non flow control frames during mux flow off
+    - tty: n_gsm: fix packet re-transmission without open control channel
+    - tty: n_gsm: fix race condition in gsmld_write()
+    - remoteproc: qcom: wcnss: Fix handling of IRQs
+    - vfio/ccw: Do not change FSM state in subchannel event
+    - tty: n_gsm: fix wrong T1 retry count handling
+    - tty: n_gsm: fix DM command
+    - tty: n_gsm: fix missing corner cases in gsmld_poll()
+    - iommu/exynos: Handle failed IOMMU device registration properly
+    - rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
+    - kfifo: fix kfifo_to_user() return type
+    - mfd: t7l66xb: Drop platform disable callback
+    - mfd: max77620: Fix refcount leak in max77620_initialise_fps
+    - iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
+    - s390/zcore: fix race when reading from hardware system area
+    - ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
+    - fuse: Remove the control interface for virtio-fs
+    - ASoC: audio-graph-card: Add of_node_put() in fail path
+    - watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in
+      armada_37xx_wdt_probe()
+    - video: fbdev: amba-clcd: Fix refcount leak bugs
+    - video: fbdev: sis: fix typos in SiS_GetModeID()
+    - powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
+    - powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and
+      alias
+    - powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
+    - powerpc/xive: Fix refcount leak in xive_get_max_prio
+    - powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
+    - perf symbol: Fail to read phdr workaround
+    - kprobes: Forbid probing on trampoline and BPF code areas
+    - powerpc/pci: Fix PHB numbering when using opal-phbid
+    - genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
+    - scripts/faddr2line: Fix vmlinux detection on arm64
+    - x86/numa: Use cpumask_available instead of hardcoded NULL check
+    - video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
+    - tools/thermal: Fix possible path truncations
+    - video: fbdev: vt8623fb: Check the size of screen before memset_io()
+    - video: fbdev: arkfb: Check the size of screen before memset_io()
+    - video: fbdev: s3fb: Check the size of screen before memset_io()
+    - scsi: zfcp: Fix missing auto port scan and thus missing target ports
+    - scsi: qla2xxx: Fix discovery issues in FC-AL topology
+    - scsi: qla2xxx: Turn off multi-queue for 8G adapters
+    - scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
+    - x86/olpc: fix 'logical not is only applied to the left hand side'
+    - spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
+    - kexec, KEYS, s390: Make use of built-in and secondary keyring for signature
+      verification
+    - tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
+    - btrfs: reset block group chunk force if we have to wait
+    - ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
+    - ext4: make sure ext4_append() always allocates new block
+    - ext4: fix use-after-free in ext4_xattr_set_entry
+    - ext4: update s_overhead_clusters in the superblock during an on-line resize
+    - ext4: fix extent status tree race in writeback error recovery path
+    - ext4: correct max_inline_xattr_value_size computing
+    - ext4: correct the misjudgment in ext4_iget_extra_inode
+    - intel_th: pci: Add Raptor Lake-S CPU support
+    - intel_th: pci: Add Raptor Lake-S PCH support
+    - intel_th: pci: Add Meteor Lake-P support
+    - dm raid: fix address sanitizer warning in raid_resume
+    - dm raid: fix address sanitizer warning in raid_status
+    - dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
+    - dm writecache: set a default MAX_WRITEBACK_JOBS
+    - ACPI: CPPC: Do not prevent CPPC from working in the future
+    - timekeeping: contribute wall clock to rng on time change
+    - firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
+    - iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
+    - btrfs: reject log replay if there is unsupported RO compat flag
+    - KVM: Add infrastructure and macro to mark VM as bugged
+    - KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
+    - KVM: x86: Avoid theoretical NULL pointer dereference in
+      kvm_irq_delivery_to_apic_fast()
+    - tcp: fix over estimation in sk_forced_mem_schedule()
+    - scsi: sg: Allow waiting for commands to complete on removed device
+    - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
+    - net/9p: Initialize the iounit field during fid creation
+    - net_sched: cls_route: disallow handle of 0
+    - ALSA: info: Fix llseek return value when using callback
+    - rds: add missing barrier to release_refill
+    - ata: libata-eh: Add missing command name
+    - mmc: pxamci: Fix another error handling path in pxamci_probe()
+    - mmc: pxamci: Fix an error handling path in pxamci_probe()
+    - btrfs: fix lost error handling when looking up extended ref on log replay
+    - tracing: Have filter accept "common_cpu" to be consistent
+    - can: ems_usb: fix clang's -Wunaligned-access warning
+    - apparmor: fix quiet_denied for file rules
+    - apparmor: fix absroot causing audited secids to begin with =
+    - apparmor: Fix failed mount permission check error message
+    - apparmor: fix aa_label_asxprint return check
+    - apparmor: fix overlapping attachment computation
+    - apparmor: fix reference count leak in aa_pivotroot()
+    - apparmor: Fix memleak in aa_simple_write_to_buffer()
+    - Documentation: ACPI: EINJ: Fix obsolete example
+    - NFSv4.1: Don't decrease the value of seq_nr_highest_sent
+    - NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
+    - NFSv4: Fix races in the legacy idmapper upcall
+    - NFSv4.1: RECLAIM_COMPLETE must handle EACCES
+    - NFSv4/pnfs: Fix a use-after-free bug in open
+    - can: mcp251x: Fix race condition on receive interrupt
+    - sunrpc: fix expiry of auth creds
+    - SUNRPC: Reinitialise the backchannel request buffers before reuse
+    - devlink: Fix use-after-free after a failed reload
+    - net: bgmac: Fix a BUG triggered by wrong bytes_compl
+    - pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
+    - pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
+    - pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
+    - ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
+    - geneve: do not use RT_TOS for IPv6 flowlabel
+    - plip: avoid rcu debug splat
+    - vsock: Fix memory leak in vsock_connect()
+    - vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
+    - dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
+    - tools/vm/slabinfo: use alphabetic order when two values are equal
+    - tools build: Switch to new openssl API for test-libcrypto
+    - NTB: ntb_tool: uninitialized heap data in tool_fn_write()
+    - nfp: ethtool: fix the display error of `ethtool -m DEVNAME`
+    - xen/xenbus: fix return type in xenbus_file_read()
+    - atm: idt77252: fix use-after-free bugs caused by tst_timer
+    - dpaa2-eth: trace the allocated address instead of page struct
+    - tee: add overflow check in register_shm_helper()
+    - nios2: page fault et.al. are *not* restartable syscalls...
+    - nios2: don't leave NULLs in sys_call_table[]
+    - nios2: traced syscall does need to check the syscall number
+    - nios2: fix syscall restart checks
+    - nios2: restarts apply only to the first sigframe we build...
+    - nios2: add force_successful_syscall_return()
+    - iavf: Fix adminq error handling
+    - clk: rockchip: add sclk_mac_lbtest to rk3188_critical_clocks
+    - netfilter: nf_tables: really skip inactive sets when allocating name
+    - powerpc/pci: Fix get_phb_number() locking
+    - net: dsa: mv88e6060: prevent crash on an unused port
+    - net: moxa: pass pdev instead of ndev to DMA functions
+    - net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
+    - ice: Ignore EEXIST when setting promisc mode
+    - i40e: Fix to stop tx_timeout recovery if GLOBR fails
+    - fec: Fix timer capture timing in `fec_ptp_enable_pps()`
+    - igb: Add lock to avoid data race
+    - gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
+    - locking/atomic: Make test_and_*_bit() ordered on failure
+    - drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
+    - PCI: Add ACS quirk for Broadcom BCM5750x NICs
+    - usb: cdns3 fix use-after-free at workaround 2
+    - usb: gadget: uvc: call uvc uvcg_warn on completed status instead of
+      uvcg_info
+    - irqchip/tegra: Fix overflow implicit truncation warnings
+    - drm/meson: Fix overflow implicit truncation warnings
+    - usb: host: ohci-ppc-of: Fix refcount leak bug
+    - usb: renesas: Fix refcount leak bug
+    - vboxguest: Do not use devm for irq
+    - clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
+    - scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user
+      input
+    - gadgetfs: ep_io - wait until IRQ finishes
+    - cxl: Fix a memory leak in an error handling path
+    - PCI/ACPI: Guard ARM64-specific mcfg_quirks
+    - um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
+    - selftests/kprobe: Do not test for GRP/ without event failures
+    - dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
+    - nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
+    - drivers:md:fix a potential use-after-free bug
+    - ext4: avoid remove directory when directory is corrupted
+    - ext4: avoid resizing to a partial cluster size
+    - lib/list_debug.c: Detect uninitialized lists
+    - tty: serial: Fix refcount leak bug in ucc_uart.c
+    - vfio: Clear the caps->buf to NULL after free
+    - mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
+    - riscv: mmap with PROT_WRITE but no PROT_READ is invalid
+    - RISC-V: Add fast call path of crash_kexec()
+    - watchdog: export lockup_detector_reconfigure
+    - powerpc/32: Don't always pass -mcpu=powerpc to the compiler
+    - ALSA: core: Add async signal helpers
+    - ALSA: timer: Use deferred fasync helper
+    - f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
+    - smb3: check xattr value length earlier
+    - powerpc/64: Init jump labels before parse_early_param()
+    - video: fbdev: i740fb: Check the argument of i740_calc_vclk()
+    - MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
+    - tracing/probes: Have kprobes and uprobes use $COMM too
+    - can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with
+      netdev_warn_once()
+    - can: j1939: j1939_session_destroy(): fix memory leak of skbs
+    - btrfs: only write the sectors in the vertical stripe which has data stripes
+    - btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
+    - Linux 5.4.211
+  * CVE-2022-3028
+    - af_key: Do not call xfrm_probe_algs in parallel
+  * CVE-2022-2978
+    - fs: fix UAF/GPF bug in nilfs_mdt_destroy
+  * CVE-2022-40768
+    - scsi: stex: Properly zero out the passthrough command structure
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 05 Dec 2022 19:40:05 +0800
+
+linux-ein (5.4.0-1028.34) focal; urgency=medium
+
+  * Dummy entry.
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 05 Dec 2022 14:25:56 +0800
+
+linux-imx (5.4.0-1028.34) focal; urgency=medium
+
+  * Focal update: v5.4.208 upstream stable release (LP: #1988225)
+    - [Config] updateconfigs for IMA_TEMPLATE
+    - [Config] updateconfigs for REFCOUNT_FULL
+
+  * [K4500-NXP][UC20] Integrate graphics driver needed for running QT
+    application (LP: #1990021)
+    - SAUCE: drm: AVD101WX-CN: Assigned bus format to fix warning:
+    - Revert "UBUNTU: SAUCE: arm64: dts: kdp-sm2s-imx8mm: Remove gpu node now at
+      the imx8mm.dtsi contains gpu nodes."
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Remove the 2d/3d GPU nodes that enable
+      the etnaviv driver.
+
+  * M4-RPMSG driver race condition (LP: #1991153)
+    - SAUCE: rpmsg: Fix race condition
+    - SAUCE: rpmsg: Use static prefix for globals
+    - SAUCE: rpmsg: Code clean-up
+
+  * [imx8-pdk] Fail to run perf (LP: #1987467)
+    - tools: perf: metricgroup: add metricgroup for each PMU
+    - perf vendor events: add JSON metrics for imx8 DDR Perf
+    - MLK-23195-4 tool: perf: imx8mp-ddr: correct the master ID
+    - MLK-23302-1 tools: perf: pmu-event: add socname for struct pmu_event
+    - MLK-23302-2 tools: perf: header: add support for checking socname
+    - MLK-23302-3 tools: perf: metricgroup: match metric with socname if needed
+    - MLK-23302-4 tools: perf: pmu-events: add SocName in DDR JSON file
+    - MLK-23724-1 tools: perf: fix metricgroup add metric events multiple times
+    - perf stat: Improve runtime stat for interval mode
+    - MLK-24053-2 perf vendor events: add ddr bandwidth usage metric for i.MX8MP
+    - perf/imx_ddr: Add driver for DDR PMU in i.MX8MPlus
+    - perf/imx_ddr: Dump AXI ID filter info to userspace
+    - perf/imx_ddr: Add stop event counters support for i.MX8MP
+    - MLK-23195-3 perf/imx_ddr: speed up overflow frequency of cycle counter
+    - bindings: perf: imx-ddr: Add new compatible string
+    - MLK-23417-1 perf/imx_ddr: Add AXI ID PORT CHANNEL filter support
+    - MLK-23417-3 perf/imx_ddr: Add driver support for i.MX8DXL DDR Perf
+    - MLK-23418-1 perf/imx_ddr: Extend driver for PMU in DRAM Block(DB)
+    - MLK-23418-3 perf/imx_ddr: Add clock support for Perf in DB
+    - MLK-23418-4 perf/imx_ddr: Add driver support for i.MX8DXL DB Perf
+
+  [ Ubuntu: 5.4.0-131.147 ]
+
+  * CVE-2022-2602
+    - SAUCE: io_uring/af_unix: defer registered files gc to io_uring release
+    - SAUCE: io_uring/af_unix: fix memleak during unix GC
+  * CVE-2022-41674
+    - SAUCE: wifi: cfg80211: fix u8 overflow in
+      cfg80211_update_notlisted_nontrans()
+    - SAUCE: wifi: cfg80211/mac80211: reject bad MBSSID elements
+    - SAUCE: wifi: cfg80211: ensure length byte is present before access
+    - SAUCE: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
+    - SAUCE: wifi: cfg80211: update hidden BSSes to avoid WARN_ON
+  * CVE-2022-42721
+    - SAUCE: wifi: cfg80211: avoid nontransmitted BSS list corruption
+  * CVE-2022-42720
+    - SAUCE: wifi: cfg80211: fix BSS refcounting bugs
+
+  [ Ubuntu: 5.4.0-128.144 ]
+
+  * focal/linux: 5.4.0-128.144 -proposed tracker (LP: #1990152)
+  * CVE-2022-3176
+    - io_uring: disable polling pollfree files
+  * ip/nexthop: fix default address selection for connected nexthop
+    (LP: #1988809)
+    - selftests/net: test nexthop without gw
+  * ip/nexthop: fix default address selection for connected nexthop
+    (LP: #1988809) // icmp_redirect.sh in ubuntu_kernel_selftests failed on
+    Jammy 5.15.0-49.55 (LP: #1990124)
+    - ip: fix triggering of 'icmp redirect'
+
+  [ Ubuntu: 5.4.0-127.143 ]
+
+  * focal/linux: 5.4.0-127.143 -proposed tracker (LP: #1989892)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.09.19)
+  * [UBUNTU 20.04] mlx5 driver crashes on accessing device attributes during
+    recovery (LP: #1987287)
+    - net/mlx5: Avoid processing commands before cmdif is ready
+  * Focal update: v5.4.210 upstream stable release (LP: #1989230)
+    - thermal: Fix NULL pointer dereferences in of_thermal_ functions
+    - ACPI: video: Force backlight native for some TongFang devices
+    - ACPI: video: Shortening quirk list by identifying Clevo by board_name only
+    - ACPI: APEI: Better fix to avoid spamming the console with old error logs
+    - bpf: Verifer, adjust_scalar_min_max_vals to always call update_reg_bounds()
+    - selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads
+    - bpf: Test_verifier, #70 error message updates for 32-bit right shift
+    - KVM: Don't null dereference ops->destroy
+    - selftests: KVM: Handle compiler optimizations in ucall
+    - media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
+    - macintosh/adb: fix oob read in do_adb_query() function
+    - x86/speculation: Add RSB VM Exit protections
+    - x86/speculation: Add LFENCE to RSB fill sequence
+    - Linux 5.4.210
+  * Focal update: v5.4.209 upstream stable release (LP: #1989228)
+    - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
+    - ntfs: fix use-after-free in ntfs_ucsncmp()
+    - s390/archrandom: prevent CPACF trng invocations in interrupt context
+    - tcp: Fix data-races around sysctl_tcp_dsack.
+    - tcp: Fix a data-race around sysctl_tcp_app_win.
+    - tcp: Fix a data-race around sysctl_tcp_adv_win_scale.
+    - tcp: Fix a data-race around sysctl_tcp_frto.
+    - tcp: Fix a data-race around sysctl_tcp_nometrics_save.
+    - ice: check (DD | EOF) bits on Rx descriptor rather than (EOP | RS)
+    - ice: do not setup vlan for loopback VSI
+    - scsi: ufs: host: Hold reference returned by of_parse_phandle()
+    - tcp: Fix a data-race around sysctl_tcp_limit_output_bytes.
+    - tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit.
+    - net: ping6: Fix memleak in ipv6_renew_options().
+    - ipv6/addrconf: fix a null-ptr-deref bug for ip6_ptr
+    - igmp: Fix data-races around sysctl_igmp_qrv.
+    - net: sungem_phy: Add of_node_put() for reference returned by of_get_parent()
+    - tcp: Fix a data-race around sysctl_tcp_min_tso_segs.
+    - tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen.
+    - tcp: Fix a data-race around sysctl_tcp_autocorking.
+    - tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
+    - Documentation: fix sctp_wmem in ip-sysctl.rst
+    - tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns.
+    - tcp: Fix a data-race around sysctl_tcp_comp_sack_nr.
+    - i40e: Fix interface init with MSI interrupts (no MSI-X)
+    - sctp: fix sleep in atomic context bug in timer handlers
+    - virtio-net: fix the race between refill work and close
+    - perf symbol: Correct address for bss symbols
+    - sfc: disable softirqs for ptp TX
+    - sctp: leave the err path free in sctp_stream_init to sctp_stream_free
+    - ARM: crypto: comment out gcc warning that breaks clang builds
+    - mt7601u: add USB device ID for some versions of XiaoDu WiFi Dongle.
+    - scsi: core: Fix race between handling STS_RESOURCE and completion
+    - Linux 5.4.209
+  * Focal update: v5.4.208 upstream stable release (LP: #1988225)
+    - pinctrl: stm32: fix optional IRQ support to gpios
+    - riscv: add as-options for modules with assembly compontents
+    - mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication
+    - lockdown: Fix kexec lockdown bypass with ima policy
+    - xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE
+    - PCI: hv: Fix multi-MSI to allow more than one MSI vector
+    - PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
+    - PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
+    - PCI: hv: Fix interrupt mapping for multi-MSI
+    - serial: mvebu-uart: correctly report configured baudrate value
+    - xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in
+      xfrm_bundle_lookup()
+    - power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe
+    - pinctrl: ralink: Check for null return of devm_kcalloc
+    - perf/core: Fix data race between perf_event_set_output() and
+      perf_mmap_close()
+    - igc: Reinstate IGC_REMOVED logic and implement it properly
+    - ip: Fix data-races around sysctl_ip_no_pmtu_disc.
+    - ip: Fix data-races around sysctl_ip_fwd_use_pmtu.
+    - ip: Fix data-races around sysctl_ip_nonlocal_bind.
+    - ip: Fix a data-race around sysctl_fwmark_reflect.
+    - tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
+    - tcp: Fix data-races around sysctl_tcp_mtu_probing.
+    - tcp: Fix data-races around sysctl_tcp_base_mss.
+    - tcp: Fix data-races around sysctl_tcp_min_snd_mss.
+    - tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor.
+    - tcp: Fix a data-race around sysctl_tcp_probe_threshold.
+    - tcp: Fix a data-race around sysctl_tcp_probe_interval.
+    - i2c: cadence: Change large transfer count reset logic to be unconditional
+    - net: stmmac: fix dma queue left shift overflow issue
+    - net/tls: Fix race in TLS device down flow
+    - igmp: Fix data-races around sysctl_igmp_llm_reports.
+    - igmp: Fix a data-race around sysctl_igmp_max_memberships.
+    - tcp: Fix data-races around sysctl_tcp_syncookies.
+    - tcp: Fix data-races around sysctl_tcp_reordering.
+    - tcp: Fix data-races around some timeout sysctl knobs.
+    - tcp: Fix a data-race around sysctl_tcp_notsent_lowat.
+    - tcp: Fix a data-race around sysctl_tcp_tw_reuse.
+    - tcp: Fix data-races around sysctl_max_syn_backlog.
+    - tcp: Fix data-races around sysctl_tcp_fastopen.
+    - iavf: Fix handling of dummy receive descriptors
+    - i40e: Fix erroneous adapter reinitialization during recovery process
+    - ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero
+    - gpio: pca953x: only use single read/write for No AI mode
+    - be2net: Fix buffer overflow in be_get_module_eeprom
+    - ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh.
+    - udp: Fix a data-race around sysctl_udp_l3mdev_accept.
+    - tcp: Fix data-races around sysctl knobs related to SYN option.
+    - tcp: Fix a data-race around sysctl_tcp_early_retrans.
+    - tcp: Fix data-races around sysctl_tcp_recovery.
+    - tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts.
+    - tcp: Fix data-races around sysctl_tcp_slow_start_after_idle.
+    - tcp: Fix a data-race around sysctl_tcp_retrans_collapse.
+    - tcp: Fix a data-race around sysctl_tcp_stdurg.
+    - tcp: Fix a data-race around sysctl_tcp_rfc1337.
+    - tcp: Fix data-races around sysctl_tcp_max_reordering.
+    - spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA
+      transfers
+    - mm/mempolicy: fix uninit-value in mpol_rebind_policy()
+    - bpf: Make sure mac_header was set before using it
+    - dlm: fix pending remove if msg allocation fails
+    - ima: remove the IMA_TEMPLATE Kconfig option
+    - [Config] updateconfigs for IMA_TEMPLATE
+    - locking/refcount: Define constants for saturation and max refcount values
+    - locking/refcount: Ensure integer operands are treated as signed
+    - locking/refcount: Remove unused refcount_*_checked() variants
+    - locking/refcount: Move the bulk of the REFCOUNT_FULL implementation into the
+      <linux/refcount.h> header
+    - locking/refcount: Improve performance of generic REFCOUNT_FULL code
+    - locking/refcount: Move saturation warnings out of line
+    - locking/refcount: Consolidate REFCOUNT_{MAX,SATURATED} definitions
+    - locking/refcount: Consolidate implementations of refcount_t
+    - [Config] updateconfigs for REFCOUNT_FULL
+    - x86: get rid of small constant size cases in raw_copy_{to,from}_user()
+    - x86/uaccess: Implement macros for CMPXCHG on user addresses
+    - mmap locking API: initial implementation as rwsem wrappers
+    - x86/mce: Deduplicate exception handling
+    - bitfield.h: Fix "type of reg too small for mask" test
+    - ALSA: memalloc: Align buffer allocations in page size
+    - Bluetooth: Add bt_skb_sendmsg helper
+    - Bluetooth: Add bt_skb_sendmmsg helper
+    - Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg
+    - Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg
+    - Bluetooth: Fix passing NULL to PTR_ERR
+    - Bluetooth: SCO: Fix sco_send_frame returning skb->len
+    - Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks
+    - tty: drivers/tty/, stop using tty_schedule_flip()
+    - tty: the rest, stop using tty_schedule_flip()
+    - tty: drop tty_schedule_flip()
+    - tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push()
+    - tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
+    - x86: drop bogus "cc" clobber from __try_cmpxchg_user_asm()
+    - Linux 5.4.208
+  * Focal update: v5.4.207 upstream stable release (LP: #1988219)
+    - ALSA: hda - Add fixup for Dell Latitidue E5430
+    - ALSA: hda/conexant: Apply quirk for another HP ProDesk 600 G3 model
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc221
+    - ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
+    - xen/netback: avoid entering xenvif_rx_next_skb() with an empty rx queue
+    - tracing/histograms: Fix memory leak problem
+    - net: sock: tracing: Fix sock_exceed_buf_limit not to dereference stale
+      pointer
+    - ip: fix dflt addr selection for connected nexthop
+    - ARM: 9213/1: Print message about disabled Spectre workarounds only once
+    - ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
+    - wifi: mac80211: fix queue selection for mesh/OCB interfaces
+    - cgroup: Use separate src/dst nodes when preloading css_sets for migration
+    - drm/panfrost: Fix shrinker list corruption by madvise IOCTL
+    - nilfs2: fix incorrect masking of permission flags for symlinks
+    - Revert "evm: Fix memleak in init_desc"
+    - sched/rt: Disable RT_RUNTIME_SHARE by default
+    - ext4: fix race condition between ext4_write and ext4_convert_inline_data
+    - ARM: dts: imx6qdl-ts7970: Fix ngpio typo and count
+    - ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle
+    - ARM: 9210/1: Mark the FDT_FIXED sections as shareable
+    - drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector()
+    - ima: Fix a potential integer overflow in ima_appraise_measurement
+    - ASoC: sgtl5000: Fix noise on shutdown/remove
+    - net: stmmac: dwc-qos: Disable split header for Tegra194
+    - inetpeer: Fix data-races around sysctl.
+    - net: Fix data-races around sysctl_mem.
+    - cipso: Fix data-races around sysctl.
+    - icmp: Fix data-races around sysctl.
+    - ipv4: Fix a data-race around sysctl_fib_sync_mem.
+    - ARM: dts: at91: sama5d2: Fix typo in i2s1 node
+    - ARM: dts: sunxi: Fix SPI NOR campatible on Orange Pi Zero
+    - drm/i915/gt: Serialize TLB invalidates with GT resets
+    - icmp: Fix a data-race around sysctl_icmp_ratelimit.
+    - icmp: Fix a data-race around sysctl_icmp_ratemask.
+    - raw: Fix a data-race around sysctl_raw_l3mdev_accept.
+    - ipv4: Fix data-races around sysctl_ip_dynaddr.
+    - net: ftgmac100: Hold reference returned by of_get_child_by_name()
+    - sfc: fix use after free when disabling sriov
+    - seg6: fix skb checksum evaluation in SRH encapsulation/insertion
+    - seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors
+    - seg6: bpf: fix skb checksum in bpf_push_seg6_encap()
+    - sfc: fix kernel panic when creating VF
+    - mm: sysctl: fix missing numa_stat when !CONFIG_HUGETLB_PAGE
+    - virtio_mmio: Add missing PM calls to freeze/restore
+    - virtio_mmio: Restore guest page size on resume
+    - netfilter: br_netfilter: do not skip all hooks with 0 priority
+    - cpufreq: pmac32-cpufreq: Fix refcount leak bug
+    - platform/x86: hp-wmi: Ignore Sanitization Mode event
+    - net: tipc: fix possible refcount leak in tipc_sk_create()
+    - NFC: nxp-nci: don't print header length mismatch on i2c error
+    - nvme: fix regression when disconnect a recovering ctrl
+    - net: sfp: fix memory leak in sfp_probe()
+    - ASoC: ops: Fix off by one in range control validation
+    - ASoC: wm5110: Fix DRE control
+    - ASoC: cs47l15: Fix event generation for low power mux control
+    - ASoC: madera: Fix event generation for OUT1 demux
+    - ASoC: madera: Fix event generation for rate controls
+    - irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
+    - x86: Clear .brk area at early boot
+    - soc: ixp4xx/npe: Fix unused match warning
+    - ARM: dts: stm32: use the correct clock source for CEC on stm32mp151
+    - signal handling: don't use BUG_ON() for debugging
+    - USB: serial: ftdi_sio: add Belimo device ids
+    - usb: typec: add missing uevent when partner support PD
+    - usb: dwc3: gadget: Fix event pending check
+    - tty: serial: samsung_tty: set dma burst_size to 1
+    - serial: 8250: fix return error code in serial8250_request_std_resource()
+    - serial: stm32: Clear prev values before setting RTS delays
+    - serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle
+    - can: m_can: m_can_tx_handler(): fix use after free of skb
+    - Linux 5.4.207
+  * Focal update: v5.4.206 upstream stable release (LP: #1988215)
+    - Linux 5.4.206
+  * Focal update: v5.4.205 upstream stable release (LP: #1988214)
+    - esp: limit skb_page_frag_refill use to a single page
+    - mm/slub: add missing TID updates on slab deactivation
+    - can: bcm: use call_rcu() instead of costly synchronize_rcu()
+    - can: grcan: grcan_probe(): remove extra of_node_get()
+    - can: gs_usb: gs_usb_open/close(): fix memory leak
+    - usbnet: fix memory leak in error case
+    - net: rose: fix UAF bug caused by rose_t0timer_expiry
+    - iommu/vt-d: Fix PCI bus rescan device hot add
+    - fbdev: fbmem: Fix logo center image dx issue
+    - video: of_display_timing.h: include errno.h
+    - powerpc/powernv: delay rng platform device creation until later in boot
+    - can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info
+    - can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression
+    - can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits
+    - xfs: remove incorrect ASSERT in xfs_rename
+    - ARM: meson: Fix refcount leak in meson_smp_prepare_cpus
+    - pinctrl: sunxi: a83t: Fix NAND function name for some pins
+    - pinctrl: sunxi: sunxi_pconf_set: use correct offset
+    - ARM: at91: pm: use proper compatible for sama5d2's rtc
+    - ARM: at91: pm: use proper compatibles for sam9x60's rtc and rtt
+    - ibmvnic: Properly dispose of all skbs during a failover.
+    - selftests: forwarding: fix flood_unicast_test when h2 supports
+      IFF_UNICAST_FLT
+    - selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT
+    - selftests: forwarding: fix error message in learning_test
+    - i2c: cadence: Unregister the clk notifier in error path
+    - dmaengine: imx-sdma: Allow imx8m for imx7 FW revs
+    - misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer
+    - misc: rtsx_usb: use separate command and response buffers
+    - misc: rtsx_usb: set return value in rsp_buf alloc err path
+    - dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo
+    - ida: don't use BUG_ON() for debugging
+    - dmaengine: pl330: Fix lockdep warning about non-static key
+    - dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly
+    - dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate
+    - dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate
+    - Linux 5.4.205
+  * Focal update: v5.4.204 upstream stable release (LP: #1988212)
+    - ipv6: take care of disable_policy when restoring routes
+    - nvdimm: Fix badblocks clear off-by-one error
+    - powerpc/prom_init: Fix kernel config grep
+    - powerpc/bpf: Fix use of user_pt_regs in uapi
+    - dm raid: fix accesses beyond end of raid member array
+    - dm raid: fix KASAN warning in raid5_add_disks
+    - s390/archrandom: simplify back to earlier design and initialize earlier
+    - SUNRPC: Fix READ_PLUS crasher
+    - net: rose: fix UAF bugs caused by timer handler
+    - net: usb: ax88179_178a: Fix packet receiving
+    - virtio-net: fix race between ndo_open() and virtio_device_ready()
+    - selftests/net: pass ipv6_args to udpgso_bench's IPv6 TCP test
+    - net: tun: unlink NAPI from device on destruction
+    - net: tun: stop NAPI when detaching queues
+    - RDMA/qedr: Fix reporting QP timeout attribute
+    - linux/dim: Fix divide by 0 in RDMA DIM
+    - usbnet: fix memory allocation in helpers
+    - net: ipv6: unexport __init-annotated seg6_hmac_net_init()
+    - caif_virtio: fix race between virtio_device_ready() and ndo_open()
+    - PM / devfreq: exynos-ppmu: Fix refcount leak in of_get_devfreq_events
+    - s390: remove unneeded 'select BUILD_BIN2C'
+    - netfilter: nft_dynset: restore set element counter when failing to update
+    - net/sched: act_api: Notify user space if any actions were flushed before
+      error
+    - net: bonding: fix possible NULL deref in rlb code
+    - net: bonding: fix use-after-free after 802.3ad slave unbind
+    - nfc: nfcmrvl: Fix irq_of_parse_and_map() return value
+    - NFC: nxp-nci: Don't issue a zero length i2c_master_read()
+    - net: tun: avoid disabling NAPI twice
+    - xen/gntdev: Avoid blocking in unmap_grant_pages()
+    - hwmon: (ibmaem) don't call platform_device_del() if platform_device_add()
+      fails
+    - net: dsa: bcm_sf2: force pause link settings
+    - sit: use min
+    - ipv6/sit: fix ipip6_tunnel_get_prl return value
+    - rseq/selftests,x86_64: Add rseq_offset_deref_addv()
+    - selftests/rseq: remove ARRAY_SIZE define from individual tests
+    - selftests/rseq: introduce own copy of rseq uapi header
+    - selftests/rseq: Remove useless assignment to cpu variable
+    - selftests/rseq: Remove volatile from __rseq_abi
+    - selftests/rseq: Introduce rseq_get_abi() helper
+    - selftests/rseq: Introduce thread pointer getters
+    - selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35
+    - selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian
+    - selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for
+      load/store
+    - selftests/rseq: Fix ppc32 offsets by using long rather than off_t
+    - selftests/rseq: Fix warnings about #if checks of undefined tokens
+    - selftests/rseq: Remove arm/mips asm goto compiler work-around
+    - selftests/rseq: Fix: work-around asm goto compiler bugs
+    - selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread
+      area
+    - selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread
+      area
+    - selftests/rseq: Change type of rseq_offset to ptrdiff_t
+    - xen/blkfront: fix leaking data in shared pages
+    - xen/netfront: fix leaking data in shared pages
+    - xen/netfront: force data bouncing when backend is untrusted
+    - xen/blkfront: force data bouncing when backend is untrusted
+    - xen/arm: Fix race in RB-tree based P2M accounting
+    - net: usb: qmi_wwan: add Telit 0x1060 composition
+    - net: usb: qmi_wwan: add Telit 0x1070 composition
+    - clocksource/drivers/ixp4xx: remove EXPORT_SYMBOL_GPL from
+      ixp4xx_timer_setup()
+    - Linux 5.4.204
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Wed, 09 Nov 2022 19:19:19 +0800
+
+linux-imx (5.4.0-1027.33) focal; urgency=medium
+
+  * [K4500-NXP] Update the device tree to load Vivante graphics drivers (LP:
+    #1990021)
+    - arm64: dts: imx8mm: Add GPU nodes for 2D and 3D core
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Remove gpu node now at the imx8mm.dtsi
+      contains gpu nodes.
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 03 Oct 2022 18:15:38 +0800
+
+linux-imx (5.4.0-1026.32) focal; urgency=medium
+
+  * Focal update: v5.4.198 upstream stable release (LP: #1982409)
+    - PCI: imx6: Fix PERST# start-up sequence
+
+  * [US20.04[UC20] RPMSG driver support (LP: #1968362)
+    - SAUCE: ARM: imx: Add M4 rpmsg module that allows applications to send and
+      request data to and from the M4.
+    - [Config] Set CONFIG_RPMSG_AMGIS_M4_DEVICES=m for armhf
+
+  * [K4500-NXP][UC20] Snap for testing HSM chip (LP: #1984131)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Swap i2c-1 and i2c-2 buses for STSAFE
+      TPM compatibility with RPI platform.
+
+  * [K4500-NXP] Set GPIO defaults for WIFI_ENABLE and CELL_MODEM_RESET (LP:
+    #1990059)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Set GPIO defaults for WIFI_ENABLE and
+      CELL_MODEM_RESET
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Delete user_gpio and tmp103 nodes to
+      disable kernel boot warnings
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Device tree cleanup and correction of
+      CMA size.
+
+  * Miscellaneous upstream changes
+    - LF-1235 clk: imx: Revert the changes for pll pfd gate clock
+
+  [ Ubuntu: 5.4.0-126.142 ]
+
+  * focal/linux: 5.4.0-126.142 -proposed tracker (LP: #1987819)
+  * [SRU] fnic driver on needs to be updated to 1.6.0.53 on Focal (LP: #1984011)
+    - scsi: fnic: Change shost_printk() to FNIC_FCS_DBG()
+    - scsi: fnic: Avoid looping in TRANS ETH on unload
+    - scsi: fnic: Change shost_printk() to FNIC_MAIN_DBG()
+    - scsi: fnic: Set scsi_set_resid() only for underflow
+    - scsi: fnic: Validate io_req before others
+  * Focal update: v5.4.203 upstream stable release (LP: #1986999)
+    - drm: remove drm_fb_helper_modinit
+    - powerpc/ftrace: Remove ftrace init tramp once kernel init is complete
+    - kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
+    - net: mscc: ocelot: allow unregistered IP multicast flooding
+    - ARM: 8989/1: use .fpu assembler directives instead of assembler arguments
+    - ARM: 8990/1: use VFP assembler mnemonics in register load/store macros
+    - ARM: 8971/1: replace the sole use of a symbol with its definition
+    - crypto: arm/sha256-neon - avoid ADRL pseudo instruction
+    - crypto: arm/sha512-neon - avoid ADRL pseudo instruction
+    - ARM: 8933/1: replace Sun/Solaris style flag on section directive
+    - ARM: 8929/1: use APSR_nzcv instead of r15 as mrc operand
+    - ARM: OMAP2+: drop unnecessary adrl
+    - ARM: 9029/1: Make iwmmxt.S support Clang's integrated assembler
+    - crypto: arm - use Kconfig based compiler checks for crypto opcodes
+    - crypto: arm/ghash-ce - define fpu before fpu registers are referenced
+    - Linux 5.4.203
+  * Focal update: v5.4.202 upstream stable release (LP: #1986995)
+    - random: schedule mix_interrupt_randomness() less often
+    - ALSA: hda/via: Fix missing beep setup
+    - ALSA: hda/conexant: Fix missing beep setup
+    - ALSA: hda/realtek - ALC897 headset MIC no sound
+    - ALSA: hda/realtek: Add quirk for Clevo PD70PNT
+    - net: openvswitch: fix parsing of nw_proto for IPv6 fragments
+    - mmc: sdhci-pci-o2micro: Fix card detect by dealing with debouncing
+    - ata: libata: add qc->flags in ata_qc_complete_template tracepoint
+    - dm era: commit metadata in postsuspend after worker stops
+    - dm mirror log: clear log bits up to BITS_PER_LONG boundary
+    - random: quiet urandom warning ratelimit suppression message
+    - USB: serial: option: add Telit LE910Cx 0x1250 composition
+    - USB: serial: option: add Quectel EM05-G modem
+    - USB: serial: option: add Quectel RM500K module support
+    - bpf: Fix request_sock leak in sk lookup helpers
+    - phy: aquantia: Fix AN when higher speeds than 1G are not advertised
+    - bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers
+    - net/sched: sch_netem: Fix arithmetic in netem_dump() for 32-bit platforms
+    - drm/msm/mdp4: Fix refcount leak in mdp4_modeset_init_intf
+    - erspan: do not assume transport header is always set
+    - net/tls: fix tls_sk_proto_close executed repeatedly
+    - udmabuf: add back sanity check
+    - x86/xen: Remove undefined behavior in setup_features()
+    - MIPS: Remove repetitive increase irq_err_count
+    - afs: Fix dynamic root getattr
+    - ice: ethtool: advertise 1000M speeds properly
+    - regmap-irq: Fix a bug in regmap_irq_enable() for type_in_mask chips
+    - igb: Make DMA faster when CPU is active on the PCIe link
+    - virtio_net: fix xdp_rxq_info bug after suspend/resume
+    - Revert "net/tls: fix tls_sk_proto_close executed repeatedly"
+    - gpio: winbond: Fix error code in winbond_gpio_get()
+    - s390/cpumf: Handle events cycles and instructions identical
+    - iio: adc: vf610: fix conversion mode sysfs node name
+    - xhci: turn off port power in shutdown
+    - usb: chipidea: udc: check request status before setting device address
+    - iio:chemical:ccs811: rearrange iio trigger get and register
+    - iio:accel:bma180: rearrange iio trigger get and register
+    - iio:accel:mxc4005: rearrange iio trigger get and register
+    - iio: accel: mma8452: ignore the return value of reset operation
+    - iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up()
+    - iio: trigger: sysfs: fix use-after-free on remove
+    - iio: adc: stm32: fix maximum clock rate for stm32mp15x
+    - iio: adc: axp288: Override TS pin bias current for some models
+    - xtensa: xtfpga: Fix refcount leak bug in setup
+    - xtensa: Fix refcount leak bug in time.c
+    - parisc: Enable ARCH_HAS_STRICT_MODULE_RWX
+    - powerpc: Enable execve syscall exit tracepoint
+    - powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
+    - powerpc/powernv: wire up rng during setup_arch
+    - ARM: dts: imx6qdl: correct PU regulator ramp delay
+    - ARM: exynos: Fix refcount leak in exynos_map_pmu
+    - soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
+    - ARM: Fix refcount leak in axxia_boot_secondary
+    - ARM: cns3xxx: Fix refcount leak in cns3xxx_init
+    - modpost: fix section mismatch check for exported init/exit sections
+    - random: update comment from copy_to_user() -> copy_to_iter()
+    - kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
+    - powerpc/pseries: wire up rng during setup_arch()
+    - Linux 5.4.202
+  * Focal update: v5.4.201 upstream stable release (LP: #1986993)
+    - dm: remove special-casing of bio-based immutable singleton target on NVMe
+    - usb: gadget: u_ether: fix regression in setting fixed MAC address
+    - tcp: add some entropy in __inet_hash_connect()
+    - tcp: use different parts of the port_offset for index and offset
+    - tcp: add small random increments to the source port
+    - tcp: dynamically allocate the perturb table used by source ports
+    - tcp: increase source port perturb table to 2^16
+    - tcp: drop the hash_32() part from the index calculation
+    - arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer
+    - Linux 5.4.201
+  * Focal update: v5.4.200 upstream stable release (LP: #1983152)
+    - Revert "UBUNTU: SAUCE: random: Make getrandom() ready earlier"
+    - 9p: missing chunk of "fs/9p: Don't update file type when updating file
+      attributes"
+    - bpf: Fix incorrect memory charge cost calculation in stack_map_alloc()
+    - nfc: st21nfca: fix incorrect sizing calculations in EVT_TRANSACTION
+    - crypto: blake2s - generic C library implementation and selftest
+    - lib/crypto: blake2s: move hmac construction into wireguard
+    - lib/crypto: sha1: re-roll loops to reduce code size
+    - compat_ioctl: remove /dev/random commands
+    - random: don't forget compat_ioctl on urandom
+    - random: Don't wake crng_init_wait when crng_init == 1
+    - random: Add a urandom_read_nowait() for random APIs that don't warn
+    - random: add GRND_INSECURE to return best-effort non-cryptographic bytes
+    - random: ignore GRND_RANDOM in getentropy(2)
+    - random: make /dev/random be almost like /dev/urandom
+    - random: remove the blocking pool
+    - random: delete code to pull data into pools
+    - random: remove kernel.random.read_wakeup_threshold
+    - random: remove unnecessary unlikely()
+    - random: convert to ENTROPY_BITS for better code readability
+    - random: Add and use pr_fmt()
+    - random: fix typo in add_timer_randomness()
+    - random: remove some dead code of poolinfo
+    - random: split primary/secondary crng init paths
+    - random: avoid warnings for !CONFIG_NUMA builds
+    - x86: Remove arch_has_random, arch_has_random_seed
+    - powerpc: Remove arch_has_random, arch_has_random_seed
+    - s390: Remove arch_has_random, arch_has_random_seed
+    - linux/random.h: Remove arch_has_random, arch_has_random_seed
+    - linux/random.h: Use false with bool
+    - linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check
+    - powerpc: Use bool in archrandom.h
+    - random: add arch_get_random_*long_early()
+    - random: avoid arch_get_random_seed_long() when collecting IRQ randomness
+    - random: remove dead code left over from blocking pool
+    - MAINTAINERS: co-maintain random.c
+    - crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h>
+    - crypto: blake2s - adjust include guard naming
+    - random: document add_hwgenerator_randomness() with other input functions
+    - random: remove unused irq_flags argument from add_interrupt_randomness()
+    - random: use BLAKE2s instead of SHA1 in extraction
+    - random: do not sign extend bytes for rotation when mixing
+    - random: do not re-init if crng_reseed completes before primary init
+    - random: mix bootloader randomness into pool
+    - random: harmonize "crng init done" messages
+    - random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
+    - random: initialize ChaCha20 constants with correct endianness
+    - random: early initialization of ChaCha constants
+    - random: avoid superfluous call to RDRAND in CRNG extraction
+    - random: don't reset crng_init_cnt on urandom_read()
+    - random: fix typo in comments
+    - random: cleanup poolinfo abstraction
+    - random: cleanup integer types
+    - random: remove incomplete last_data logic
+    - random: remove unused extract_entropy() reserved argument
+    - random: rather than entropy_store abstraction, use global
+    - random: remove unused OUTPUT_POOL constants
+    - random: de-duplicate INPUT_POOL constants
+    - random: prepend remaining pool constants with POOL_
+    - random: cleanup fractional entropy shift constants
+    - random: access input_pool_data directly rather than through pointer
+    - random: selectively clang-format where it makes sense
+    - random: simplify arithmetic function flow in account()
+    - random: continually use hwgenerator randomness
+    - random: access primary_pool directly rather than through pointer
+    - random: only call crng_finalize_init() for primary_crng
+    - random: use computational hash for entropy extraction
+    - random: simplify entropy debiting
+    - random: use linear min-entropy accumulation crediting
+    - random: always wake up entropy writers after extraction
+    - random: make credit_entropy_bits() always safe
+    - random: remove use_input_pool parameter from crng_reseed()
+    - random: remove batched entropy locking
+    - random: fix locking in crng_fast_load()
+    - random: use RDSEED instead of RDRAND in entropy extraction
+    - random: get rid of secondary crngs
+    - random: inline leaves of rand_initialize()
+    - random: ensure early RDSEED goes through mixer on init
+    - random: do not xor RDRAND when writing into /dev/random
+    - random: absorb fast pool into input pool after fast load
+    - random: use simpler fast key erasure flow on per-cpu keys
+    - random: use hash function for crng_slow_load()
+    - random: make more consistent use of integer types
+    - random: remove outdated INT_MAX >> 6 check in urandom_read()
+    - random: zero buffer after reading entropy from userspace
+    - random: fix locking for crng_init in crng_reseed()
+    - random: tie batched entropy generation to base_crng generation
+    - random: remove ifdef'd out interrupt bench
+    - random: remove unused tracepoints
+    - random: add proper SPDX header
+    - random: deobfuscate irq u32/u64 contributions
+    - random: introduce drain_entropy() helper to declutter crng_reseed()
+    - random: remove useless header comment
+    - random: remove whitespace and reorder includes
+    - random: group initialization wait functions
+    - random: group crng functions
+    - random: group entropy extraction functions
+    - random: group entropy collection functions
+    - random: group userspace read/write functions
+    - random: group sysctl functions
+    - random: rewrite header introductory comment
+    - random: defer fast pool mixing to worker
+    - random: do not take pool spinlock at boot
+    - random: unify early init crng load accounting
+    - random: check for crng_init == 0 in add_device_randomness()
+    - random: pull add_hwgenerator_randomness() declaration into random.h
+    - random: clear fast pool, crng, and batches in cpuhp bring up
+    - random: round-robin registers as ulong, not u32
+    - random: only wake up writers after zap if threshold was passed
+    - random: cleanup UUID handling
+    - random: unify cycles_t and jiffies usage and types
+    - random: do crng pre-init loading in worker rather than irq
+    - random: give sysctl_random_min_urandom_seed a more sensible value
+    - random: don't let 644 read-only sysctls be written to
+    - random: replace custom notifier chain with standard one
+    - random: use SipHash as interrupt entropy accumulator
+    - random: make consistent usage of crng_ready()
+    - random: reseed more often immediately after booting
+    - random: check for signal and try earlier when generating entropy
+    - random: skip fast_init if hwrng provides large chunk of entropy
+    - random: treat bootloader trust toggle the same way as cpu trust toggle
+    - random: re-add removed comment about get_random_{u32,u64} reseeding
+    - random: mix build-time latent entropy into pool at init
+    - random: do not split fast init input in add_hwgenerator_randomness()
+    - random: do not allow user to keep crng key around on stack
+    - random: check for signal_pending() outside of need_resched() check
+    - random: check for signals every PAGE_SIZE chunk of /dev/[u]random
+    - random: allow partial reads if later user copies fail
+    - random: make random_get_entropy() return an unsigned long
+    - random: document crng_fast_key_erasure() destination possibility
+    - random: fix sysctl documentation nits
+    - init: call time_init() before rand_initialize()
+    - ia64: define get_cycles macro for arch-override
+    - s390: define get_cycles macro for arch-override
+    - parisc: define get_cycles macro for arch-override
+    - alpha: define get_cycles macro for arch-override
+    - powerpc: define get_cycles macro for arch-override
+    - timekeeping: Add raw clock fallback for random_get_entropy()
+    - m68k: use fallback for random_get_entropy() instead of zero
+    - mips: use fallback for random_get_entropy() instead of just c0 random
+    - arm: use fallback for random_get_entropy() instead of zero
+    - nios2: use fallback for random_get_entropy() instead of zero
+    - x86/tsc: Use fallback for random_get_entropy() instead of zero
+    - um: use fallback for random_get_entropy() instead of zero
+    - sparc: use fallback for random_get_entropy() instead of zero
+    - xtensa: use fallback for random_get_entropy() instead of zero
+    - random: insist on random_get_entropy() existing in order to simplify
+    - random: do not use batches when !crng_ready()
+    - random: use first 128 bits of input as fast init
+    - random: do not pretend to handle premature next security model
+    - random: order timer entropy functions below interrupt functions
+    - random: do not use input pool from hard IRQs
+    - random: help compiler out with fast_mix() by using simpler arguments
+    - siphash: use one source of truth for siphash permutations
+    - random: use symbolic constants for crng_init states
+    - random: avoid initializing twice in credit race
+    - random: move initialization out of reseeding hot path
+    - random: remove ratelimiting for in-kernel unseeded randomness
+    - random: use proper jiffies comparison macro
+    - random: handle latent entropy and command line from random_init()
+    - random: credit architectural init the exact amount
+    - random: use static branch for crng_ready()
+    - random: remove extern from functions in header
+    - random: use proper return types on get_random_{int,long}_wait()
+    - random: make consistent use of buf and len
+    - random: move initialization functions out of hot pages
+    - random: move randomize_page() into mm where it belongs
+    - random: unify batched entropy implementations
+    - random: convert to using fops->read_iter()
+    - random: convert to using fops->write_iter()
+    - random: wire up fops->splice_{read,write}_iter()
+    - random: check for signals after page of pool writes
+    - Revert "random: use static branch for crng_ready()"
+    - crypto: drbg - always seeded with SP800-90B compliant noise source
+    - crypto: drbg - prepare for more fine-grained tracking of seeding state
+    - crypto: drbg - track whether DRBG was seeded with !rng_is_initialized()
+    - crypto: drbg - move dynamic ->reseed_threshold adjustments to __drbg_seed()
+    - crypto: drbg - always try to free Jitter RNG instance
+    - crypto: drbg - make reseeding from get_random_bytes() synchronous
+    - random: avoid checking crng_ready() twice in random_init()
+    - random: mark bootloader randomness code as __init
+    - random: account for arch randomness in bits
+    - powerpc/kasan: Silence KASAN warnings in __get_wchan()
+    - ASoC: nau8822: Add operation for internal PLL off and on
+    - dma-debug: make things less spammy under memory pressure
+    - ASoC: cs42l52: Fix TLV scales for mixer controls
+    - ASoC: cs35l36: Update digital volume TLV
+    - ASoC: cs53l30: Correct number of volume levels on SX controls
+    - ASoC: cs42l52: Correct TLV for Bypass Volume
+    - ASoC: cs42l56: Correct typo in minimum level for SX volume controls
+    - ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
+    - ASoC: wm8962: Fix suspend while playing music
+    - ASoC: es8328: Fix event generation for deemphasis control
+    - ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put()
+    - scsi: vmw_pvscsi: Expand vcpuHint to 16 bits
+    - scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology
+    - scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd
+      completion
+    - scsi: ipr: Fix missing/incorrect resource cleanup in error case
+    - scsi: pmcraid: Fix missing resource cleanup in error case
+    - ALSA: hda/realtek - Add HW8326 support
+    - virtio-mmio: fix missing put_device() when vm_cmdline_parent registration
+      failed
+    - nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred
+    - ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg
+    - net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface
+      netdev[napi]_alloc_frag
+    - random: credit cpu and bootloader seeds by default
+    - pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE
+    - clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()
+    - i40e: Fix adding ADQ filter to TC0
+    - i40e: Fix calculating the number of queue pairs
+    - i40e: Fix call trace in setup_tx_descriptors
+    - tty: goldfish: Fix free_irq() on remove
+    - misc: atmel-ssc: Fix IRQ check in ssc_probe
+    - mlxsw: spectrum_cnt: Reorder counter pools
+    - net: bgmac: Fix an erroneous kfree() in bgmac_remove()
+    - arm64: ftrace: fix branch range checks
+    - certs/blacklist_hashes.c: fix const confusion in certs blacklist
+    - faddr2line: Fix overlapping text section failures, the sequel
+    - irqchip/gic/realview: Fix refcount leak in realview_gic_of_init
+    - irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions
+    - irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
+    - i2c: designware: Use standard optional ref clock implementation
+    - comedi: vmk80xx: fix expression for tx buffer size
+    - USB: serial: option: add support for Cinterion MV31 with new baseline
+    - USB: serial: io_ti: add Agilent E5805A support
+    - usb: dwc2: Fix memory leak in dwc2_hcd_init
+    - usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe
+    - serial: 8250: Store to lsr_save_flags after lsr read
+    - dm mirror log: round up region bitmap size to BITS_PER_LONG
+    - ext4: fix bug_on ext4_mb_use_inode_pa
+    - ext4: make variable "count" signed
+    - ext4: add reserved GDT blocks check
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine
+    - virtio-pci: Remove wrong address verification in vp_del_vqs()
+    - net/sched: act_police: more accurate MTU policing
+    - net: openvswitch: fix leak of nested actions
+    - arm64: kprobes: Use BRK instead of single-step when executing instructions
+      out-of-line
+    - RISC-V: fix barrier() use in <vdso/processor.h>
+    - riscv: Less inefficient gcc tishift helpers (and export their symbols)
+    - powerpc/mm: Switch obsolete dssall to .long
+    - Linux 5.4.200
+  * Focal update: v5.4.199 upstream stable release (LP: #1983150)
+    - Linux 5.4.199
+  * Focal update: v5.4.198 upstream stable release (LP: #1982409)
+    - binfmt_flat: do not stop relocating GOT entries prematurely on riscv
+    - ALSA: hda/realtek - Fix microphone noise on ASUS TUF B550M-PLUS
+    - USB: serial: option: add Quectel BG95 modem
+    - USB: new quirk for Dell Gen 2 devices
+    - perf/x86/intel: Fix event constraints for ICL
+    - ptrace/um: Replace PT_DTRACE with TIF_SINGLESTEP
+    - ptrace/xtensa: Replace PT_SINGLESTEP with TIF_SINGLESTEP
+    - ptrace: Reimplement PTRACE_KILL by always sending SIGKILL
+    - btrfs: add "0x" prefix for unsupported optional features
+    - btrfs: repair super block num_devices automatically
+    - drm/virtio: fix NULL pointer dereference in virtio_gpu_conn_get_modes
+    - mwifiex: add mutex lock for call in mwifiex_dfs_chan_sw_work_queue
+    - b43legacy: Fix assigning negative value to unsigned variable
+    - b43: Fix assigning negative value to unsigned variable
+    - ipw2x00: Fix potential NULL dereference in libipw_xmit()
+    - ipv6: fix locking issues with loops over idev->addr_list
+    - fbcon: Consistently protect deferred_takeover with console_lock()
+    - ACPICA: Avoid cache flush inside virtual machines
+    - drm/komeda: return early if drm_universal_plane_init() fails.
+    - ALSA: jack: Access input_dev under mutex
+    - spi: spi-rspi: Remove setting {src,dst}_{addr,addr_width} based on DMA
+      direction
+    - tools/power turbostat: fix ICX DRAM power numbers
+    - drm/amd/pm: fix double free in si_parse_power_table()
+    - ath9k: fix QCA9561 PA bias level
+    - media: venus: hfi: avoid null dereference in deinit
+    - media: pci: cx23885: Fix the error handling in cx23885_initdev()
+    - media: cx25821: Fix the warning when removing the module
+    - md/bitmap: don't set sb values if can't pass sanity check
+    - mmc: jz4740: Apply DMA engine limits to maximum segment size
+    - scsi: megaraid: Fix error check return value of register_chrdev()
+    - drm/plane: Move range check for format_count earlier
+    - drm/amd/pm: fix the compile warning
+    - arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall
+    - drm: msm: fix error check return value of irq_of_parse_and_map()
+    - ipv6: Don't send rs packets to the interface of ARPHRD_TUNNEL
+    - net/mlx5: fs, delete the FTE when there are no rules attached to it
+    - ASoC: dapm: Don't fold register value changes into notifications
+    - mlxsw: spectrum_dcb: Do not warn about priority changes
+    - drm/amdgpu/ucode: Remove firmware load type check in amdgpu_ucode_free_bo
+    - HID: bigben: fix slab-out-of-bounds Write in bigben_probe
+    - ASoC: tscs454: Add endianness flag in snd_soc_component_driver
+    - s390/preempt: disable __preempt_count_add() optimization for
+      PROFILE_ALL_BRANCHES
+    - spi: stm32-qspi: Fix wait_cmd timeout in APM mode
+    - dma-debug: change allocation mode from GFP_NOWAIT to GFP_ATIOMIC
+    - ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default
+    - ipmi:ssif: Check for NULL msg when handling events and messages
+    - ipmi: Fix pr_fmt to avoid compilation issues
+    - rtlwifi: Use pr_warn instead of WARN_ONCE
+    - media: coda: limit frame interval enumeration to supported encoder frame
+      sizes
+    - media: cec-adap.c: fix is_configuring state
+    - openrisc: start CPU timer early in boot
+    - nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags
+    - ASoC: rt5645: Fix errorenous cleanup order
+    - nbd: Fix hung on disconnect request if socket is closed before
+    - net: phy: micrel: Allow probing without .driver_data
+    - media: exynos4-is: Fix compile warning
+    - ASoC: max98357a: remove dependency on GPIOLIB
+    - rxrpc: Return an error to sendmsg if call failed
+    - eth: tg3: silence the GCC 12 array-bounds warning
+    - selftests/bpf: fix btf_dump/btf_dump due to recent clang change
+    - IB/rdmavt: add missing locks in rvt_ruc_loopback
+    - ARM: dts: ox820: align interrupt controller node name with dtschema
+    - PM / devfreq: rk3399_dmc: Disable edev on remove()
+    - fs: jfs: fix possible NULL pointer dereference in dbFree()
+    - ARM: OMAP1: clock: Fix UART rate reporting algorithm
+    - powerpc/fadump: Fix fadump to work with a different endian capture kernel
+    - fat: add ratelimit to fat*_ent_bread()
+    - ARM: versatile: Add missing of_node_put in dcscb_init
+    - ARM: dts: exynos: add atmel,24c128 fallback to Samsung EEPROM
+    - ARM: hisi: Add missing of_node_put after of_find_compatible_node
+    - PCI: Avoid pci_dev_lock() AB/BA deadlock with sriov_numvfs_store()
+    - tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate
+    - powerpc/xics: fix refcount leak in icp_opal_init()
+    - powerpc/powernv: fix missing of_node_put in uv_init()
+    - macintosh/via-pmu: Fix build failure when CONFIG_INPUT is disabled
+    - powerpc/iommu: Add missing of_node_put in iommu_init_early_dart
+    - RDMA/hfi1: Prevent panic when SDMA is disabled
+    - drm: fix EDID struct for old ARM OABI format
+    - ath9k: fix ar9003_get_eepmisc
+    - drm/edid: fix invalid EDID extension block filtering
+    - drm/bridge: adv7511: clean up CEC adapter when probe fails
+    - ASoC: mediatek: Fix error handling in mt8173_max98090_dev_probe
+    - ASoC: mediatek: Fix missing of_node_put in mt2701_wm8960_machine_probe
+    - x86/delay: Fix the wrong asm constraint in delay_loop()
+    - drm/mediatek: Fix mtk_cec_mask()
+    - drm/vc4: txp: Don't set TXP_VSTART_AT_EOF
+    - drm/vc4: txp: Force alpha to be 0xff if it's disabled
+    - bpf: Fix excessive memory allocation in stack_map_alloc()
+    - nl80211: show SSID for P2P_GO interfaces
+    - drm/komeda: Fix an undefined behavior bug in komeda_plane_add()
+    - drm: mali-dp: potential dereference of null pointer
+    - spi: spi-ti-qspi: Fix return value handling of wait_for_completion_timeout
+    - NFC: NULL out the dev->rfkill to prevent UAF
+    - efi: Add missing prototype for efi_capsule_setup_info
+    - drbd: fix duplicate array initializer
+    - HID: hid-led: fix maximum brightness for Dream Cheeky
+    - HID: elan: Fix potential double free in elan_input_configured
+    - drm/bridge: Fix error handling in analogix_dp_probe
+    - sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq
+    - spi: img-spfi: Fix pm_runtime_get_sync() error checking
+    - cpufreq: Fix possible race in cpufreq online error path
+    - ath9k_htc: fix potential out of bounds access with invalid
+      rxstatus->rs_keyix
+    - inotify: show inotify mask flags in proc fdinfo
+    - fsnotify: fix wrong lockdep annotations
+    - of: overlay: do not break notify on NOTIFY_{OK|STOP}
+    - scsi: ufs: core: Exclude UECxx from SFR dump list
+    - x86/pm: Fix false positive kmemleak report in msr_build_context()
+    - x86/speculation: Add missing prototype for unpriv_ebpf_notify()
+    - ASoC: rk3328: fix disabling mclk on pclk probe failure
+    - perf tools: Add missing headers needed by util/data.h
+    - drm/msm/disp/dpu1: set vbif hw config to NULL to avoid use after memory free
+      during pm runtime resume
+    - drm/msm/dsi: fix error checks and return values for DSI xmit functions
+    - drm/msm/hdmi: check return value after calling
+      platform_get_resource_byname()
+    - drm/msm/hdmi: fix error check return value of irq_of_parse_and_map()
+    - drm/rockchip: vop: fix possible null-ptr-deref in vop_bind()
+    - virtio_blk: fix the discard_granularity and discard_alignment queue limits
+    - x86: Fix return value of __setup handlers
+    - irqchip/exiu: Fix acknowledgment of edge triggered interrupts
+    - irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value
+    - x86/mm: Cleanup the control_va_addr_alignment() __setup handler
+    - regulator: core: Fix enable_count imbalance with EXCLUSIVE_GET
+    - drm/msm/mdp5: Return error code in mdp5_pipe_release when deadlock is
+      detected
+    - drm/msm/mdp5: Return error code in mdp5_mixer_release when deadlock is
+      detected
+    - drm/msm: return an error pointer in msm_gem_prime_get_sg_table()
+    - media: uvcvideo: Fix missing check to determine if element is found in list
+    - iomap: iomap_write_failed fix
+    - Revert "cpufreq: Fix possible race in cpufreq online error path"
+    - perf/amd/ibs: Use interrupt regs ip for stack unwinding
+    - ASoC: fsl: Fix refcount leak in imx_sgtl5000_probe
+    - ASoC: mxs-saif: Fix refcount leak in mxs_saif_probe
+    - regulator: pfuze100: Fix refcount leak in pfuze_parse_regulators_dt
+    - scripts/faddr2line: Fix overlapping text section failures
+    - media: aspeed: Fix an error handling path in aspeed_video_probe()
+    - media: st-delta: Fix PM disable depth imbalance in delta_probe
+    - media: exynos4-is: Change clk_disable to clk_disable_unprepare
+    - media: pvrusb2: fix array-index-out-of-bounds in pvr2_i2c_core_init
+    - media: vsp1: Fix offset calculation for plane cropping
+    - Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout
+    - m68k: math-emu: Fix dependencies of math emulation support
+    - sctp: read sk->sk_bound_dev_if once in sctp_rcv()
+    - media: ov7670: remove ov7670_power_off from ov7670_remove
+    - ext4: reject the 'commit' option on ext2 filesystems
+    - drm/msm/a6xx: Fix refcount leak in a6xx_gpu_init
+    - drm: msm: fix possible memory leak in mdp5_crtc_cursor_set()
+    - thermal/drivers/broadcom: Fix potential NULL dereference in sr_thermal_probe
+    - ASoC: wm2000: fix missing clk_disable_unprepare() on error in
+      wm2000_anc_transition()
+    - NFC: hci: fix sleep in atomic context bugs in nfc_hci_hcp_message_tx
+    - rxrpc: Fix listen() setting the bar too high for the prealloc rings
+    - rxrpc: Don't try to resend the request if we're receiving the reply
+    - rxrpc: Fix overlapping ACK accounting
+    - rxrpc: Don't let ack.previousPacket regress
+    - rxrpc: Fix decision on when to generate an IDLE ACK
+    - net/smc: postpone sk_refcnt increment in connect()
+    - arm64: dts: rockchip: Move drive-impedance-ohm to emmc phy on rk3399
+    - ARM: dts: suniv: F1C100: fix watchdog compatible
+    - soc: qcom: smp2p: Fix missing of_node_put() in smp2p_parse_ipc
+    - soc: qcom: smsm: Fix missing of_node_put() in smsm_parse_ipc
+    - PCI: cadence: Fix find_first_zero_bit() limit
+    - PCI: rockchip: Fix find_first_zero_bit() limit
+    - KVM: nVMX: Leave most VM-Exit info fields unmodified on failed VM-Entry
+    - can: xilinx_can: mark bit timing constants as const
+    - ARM: dts: bcm2835-rpi-zero-w: Fix GPIO line name for Wifi/BT
+    - ARM: dts: bcm2837-rpi-cm3-io3: Fix GPIO line names for SMPS I2C
+    - ARM: dts: bcm2837-rpi-3-b-plus: Fix GPIO line name of power LED
+    - ARM: dts: bcm2835-rpi-b: Fix GPIO line names
+    - misc: ocxl: fix possible double free in ocxl_file_register_afu
+    - crypto: marvell/cesa - ECB does not IV
+    - arm: mediatek: select arch timer for mt7629
+    - powerpc/fadump: fix PT_LOAD segment for boot memory area
+    - mfd: ipaq-micro: Fix error check return value of platform_get_irq()
+    - scsi: fcoe: Fix Wstringop-overflow warnings in fcoe_wwn_from_mac()
+    - firmware: arm_scmi: Fix list protocols enumeration in the base protocol
+    - nvdimm: Allow overwrite in the presence of disabled dimms
+    - pinctrl: mvebu: Fix irq_of_parse_and_map() return value
+    - drivers/base/node.c: fix compaction sysfs file leak
+    - dax: fix cache flush on PMD-mapped pages
+    - powerpc/8xx: export 'cpm_setbrg' for modules
+    - powerpc/idle: Fix return value of __setup() handler
+    - powerpc/4xx/cpm: Fix return value of __setup() handler
+    - proc: fix dentry/inode overinstantiating under /proc/${pid}/net
+    - ipc/mqueue: use get_tree_nodev() in mqueue_get_tree()
+    - PCI: imx6: Fix PERST# start-up sequence
+    - tty: fix deadlock caused by calling printk() under tty_port->lock
+    - crypto: cryptd - Protect per-CPU resource by disabling BH.
+    - Input: sparcspkr - fix refcount leak in bbc_beep_probe
+    - powerpc/64: Only WARN if __pa()/__va() called with bad addresses
+    - powerpc/perf: Fix the threshold compare group constraint for power9
+    - macintosh: via-pmu and via-cuda need RTC_LIB
+    - powerpc/fsl_rio: Fix refcount leak in fsl_rio_setup
+    - mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe()
+    - mailbox: forward the hrtimer if not queued and under a lock
+    - RDMA/hfi1: Prevent use of lock before it is initialized
+    - Input: stmfts - do not leave device disabled in stmfts_input_open
+    - f2fs: fix dereference of stale list iterator after loop body
+    - iommu/mediatek: Add list_del in mtk_iommu_remove
+    - i2c: at91: use dma safe buffers
+    - i2c: at91: Initialize dma_buf in at91_twi_xfer()
+    - NFS: Do not report EINTR/ERESTARTSYS as mapping errors
+    - NFS: Do not report flush errors in nfs_write_end()
+    - NFS: Don't report errors from nfs_pageio_complete() more than once
+    - NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout
+    - video: fbdev: clcdfb: Fix refcount leak in clcdfb_of_vram_setup
+    - dmaengine: stm32-mdma: remove GISR1 register
+    - iommu/amd: Increase timeout waiting for GA log enablement
+    - perf c2c: Use stdio interface if slang is not supported
+    - perf jevents: Fix event syntax error caused by ExtSel
+    - f2fs: fix to avoid f2fs_bug_on() in dec_valid_node_count()
+    - f2fs: fix to do sanity check on block address in f2fs_do_zero_range()
+    - f2fs: fix to clear dirty inode in f2fs_evict_inode()
+    - f2fs: fix deadloop in foreground GC
+    - f2fs: don't need inode lock for system hidden quota
+    - f2fs: fix fallocate to use file_modified to update permissions consistently
+    - wifi: mac80211: fix use-after-free in chanctx code
+    - iwlwifi: mvm: fix assert 1F04 upon reconfig
+    - fs-writeback: writeback_sb_inodes：Recalculate 'wrote' according skipped
+      pages
+    - efi: Do not import certificates from UEFI Secure Boot for T2 Macs
+    - bfq: Split shared queues on move between cgroups
+    - bfq: Update cgroup information before merging bio
+    - bfq: Track whether bfq_group is still online
+    - ext4: fix use-after-free in ext4_rename_dir_prepare
+    - ext4: fix warning in ext4_handle_inode_extension
+    - ext4: fix bug_on in ext4_writepages
+    - ext4: verify dir block before splitting it
+    - ext4: avoid cycles in directory h-tree
+    - ACPI: property: Release subnode properties with data nodes
+    - tracing: Fix potential double free in create_var_ref()
+    - PCI/PM: Fix bridge_d3_blacklist[] Elo i2 overwrite of Gigabyte X299
+    - PCI: qcom: Fix runtime PM imbalance on probe errors
+    - PCI: qcom: Fix unbalanced PHY init on probe errors
+    - mm, compaction: fast_find_migrateblock() should return pfn in the target
+      zone
+    - dlm: fix plock invalid read
+    - dlm: fix missing lkb refcount handling
+    - ocfs2: dlmfs: fix error handling of user_dlm_destroy_lock
+    - scsi: dc395x: Fix a missing check on list iterator
+    - scsi: ufs: qcom: Add a readl() to make sure ref_clk gets enabled
+    - drm/amdgpu/cs: make commands with 0 chunks illegal behaviour.
+    - drm/etnaviv: check for reaped mapping in etnaviv_iommu_unmap_gem
+    - drm/nouveau/clk: Fix an incorrect NULL check on list iterator
+    - drm/bridge: analogix_dp: Grab runtime PM reference for DP-AUX
+    - md: fix an incorrect NULL check in does_sb_need_changing
+    - md: fix an incorrect NULL check in md_reload_sb
+    - mtd: cfi_cmdset_0002: Move and rename
+      chip_check/chip_ready/chip_good_for_write
+    - media: coda: Fix reported H264 profile
+    - media: coda: Add more H264 levels for CODA960
+    - Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug
+    - RDMA/hfi1: Fix potential integer multiplication overflow errors
+    - irqchip/armada-370-xp: Do not touch Performance Counter Overflow on A375,
+      A38x, A39x
+    - irqchip: irq-xtensa-mx: fix initial IRQ affinity
+    - mac80211: upgrade passive scan to active scan on DFS channels after beacon
+      rx
+    - um: chan_user: Fix winch_tramp() return value
+    - um: Fix out-of-bounds read in LDT setup
+    - iommu/msm: Fix an incorrect NULL check on list iterator
+    - nodemask.h: fix compilation error with GCC12
+    - hugetlb: fix huge_pmd_unshare address update
+    - rtl818x: Prevent using not initialized queues
+    - ASoC: rt5514: Fix event generation for "DSP Voice Wake Up" control
+    - carl9170: tx: fix an incorrect use of list iterator
+    - serial: pch: don't overwrite xmit->buf[0] by x_char
+    - tilcdc: tilcdc_external: fix an incorrect NULL check on list iterator
+    - gma500: fix an incorrect NULL check on list iterator
+    - arm64: dts: qcom: ipq8074: fix the sleep clock frequency
+    - phy: qcom-qmp: fix struct clk leak on probe errors
+    - ARM: pxa: maybe fix gpio lookup tables
+    - docs/conf.py: Cope with removal of language=None in Sphinx 5.0.0
+    - dt-bindings: gpio: altera: correct interrupt-cells
+    - blk-iolatency: Fix inflight count imbalances and IO hangs on offline
+    - phy: qcom-qmp: fix reset-controller leak on probe errors
+    - Kconfig: add config option for asm goto w/ outputs
+    - RDMA/rxe: Generate a completion for unsupported/invalid opcode
+    - MIPS: IP27: Remove incorrect `cpu_has_fpu' override
+    - bfq: Avoid merging queues with different parents
+    - bfq: Drop pointless unlock-lock pair
+    - bfq: Remove pointless bfq_init_rq() calls
+    - bfq: Get rid of __bio_blkcg() usage
+    - bfq: Make sure bfqg for which we are queueing requests is online
+    - block: fix bio_clone_blkg_association() to associate with proper blkcg_gq
+    - md: bcache: check the return value of kzalloc() in detached_dev_do_request()
+    - pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards
+    - staging: greybus: codecs: fix type confusion of list iterator variable
+    - iio: adc: ad7124: Remove shift from scan_type
+    - tty: goldfish: Use tty_port_destroy() to destroy port
+    - tty: serial: owl: Fix missing clk_disable_unprepare() in owl_uart_probe
+    - tty: serial: fsl_lpuart: fix potential bug when using both of_alias_get_id
+      and ida_simple_get
+    - usb: usbip: fix a refcount leak in stub_probe()
+    - usb: usbip: add missing device lock on tweak configuration cmd
+    - USB: storage: karma: fix rio_karma_init return
+    - usb: musb: Fix missing of_node_put() in omap2430_probe
+    - staging: fieldbus: Fix the error handling path in
+      anybuss_host_common_probe()
+    - pwm: lp3943: Fix duty calculation in case period was clamped
+    - rpmsg: qcom_smd: Fix irq_of_parse_and_map() return value
+    - usb: dwc3: pci: Fix pm_runtime_get_sync() error checking
+    - firmware: stratix10-svc: fix a missing check on list iterator
+    - iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check
+    - iio: adc: sc27xx: fix read big scale voltage not right
+    - iio: adc: sc27xx: Fine tune the scale calibration values
+    - rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails
+    - phy: qcom-qmp: fix pipe-clock imbalance on power-on failure
+    - serial: sifive: Report actual baud base rather than fixed 115200
+    - coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier
+    - soc: rockchip: Fix refcount leak in rockchip_grf_init
+    - clocksource/drivers/riscv: Events are stopped during CPU suspend
+    - rtc: mt6397: check return value after calling platform_get_resource()
+    - serial: meson: acquire port->lock in startup()
+    - serial: 8250_fintek: Check SER_RS485_RTS_* only with RS485
+    - serial: digicolor-usart: Don't allow CS5-6
+    - serial: rda-uart: Don't allow CS5-6
+    - serial: txx9: Don't allow CS5-6
+    - serial: sh-sci: Don't allow CS5-6
+    - serial: sifive: Sanitize CSIZE and c_iflag
+    - serial: st-asc: Sanitize CSIZE and correct PARENB for CS7
+    - serial: stm32-usart: Correct CSIZE, bits, and parity
+    - firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
+    - bus: ti-sysc: Fix warnings for unbind for serial
+    - driver: base: fix UAF when driver_attach failed
+    - driver core: fix deadlock in __device_attach
+    - watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe
+    - ASoC: fsl_sai: Fix FSL_SAI_xDR/xFR definition
+    - clocksource/drivers/oxnas-rps: Fix irq_of_parse_and_map() return value
+    - s390/crypto: fix scatterwalk_unmap() callers in AES-GCM
+    - net: sched: fixed barrier to prevent skbuff sticking in qdisc backlog
+    - net: ethernet: mtk_eth_soc: out of bounds read in mtk_hwlro_get_fdir_entry()
+    - net: dsa: mv88e6xxx: Fix refcount leak in mv88e6xxx_mdios_register
+    - modpost: fix removing numeric suffixes
+    - jffs2: fix memory leak in jffs2_do_fill_super
+    - ubi: ubi_create_volume: Fix use-after-free when volume creation failed
+    - nfp: only report pause frame configuration for physical device
+    - net/mlx5: Don't use already freed action pointer
+    - net/mlx5e: Update netdev features after changing XDP state
+    - net: sched: add barrier to fix packet stuck problem for lockless qdisc
+    - tcp: tcp_rtx_synack() can be called from process context
+    - afs: Fix infinite loop found by xfstest generic/676
+    - tipc: check attribute length for bearer name
+    - perf c2c: Fix sorting in percent_rmt_hitm_cmp()
+    - mips: cpc: Fix refcount leak in mips_cpc_default_phys_base
+    - tracing: Fix sleeping function called from invalid context on RT kernel
+    - tracing: Avoid adding tracer option before update_tracer_options
+    - f2fs: remove WARN_ON in f2fs_is_valid_blkaddr
+    - i2c: cadence: Increase timeout per message if necessary
+    - m68knommu: set ZERO_PAGE() to the allocated zeroed page
+    - m68knommu: fix undefined reference to `_init_sp'
+    - dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type
+    - NFSv4: Don't hold the layoutget locks across multiple RPC calls
+    - video: fbdev: pxa3xx-gcu: release the resources correctly in
+      pxa3xx_gcu_probe/remove()
+    - xprtrdma: treat all calls not a bcall when bc_serv is NULL
+    - netfilter: nat: really support inet nat without l3 address
+    - ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe
+    - netfilter: nf_tables: memleak flow rule from commit path
+    - xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
+    - af_unix: Fix a data-race in unix_dgram_peer_wake_me().
+    - bpf, arm64: Clear prog->jited_len along prog->jited
+    - net: dsa: lantiq_gswip: Fix refcount leak in gswip_gphy_fw_list
+    - net/mlx4_en: Fix wrong return value on ioctl EEPROM query failure
+    - SUNRPC: Fix the calculation of xdr->end in xdr_get_next_encode_buffer()
+    - net: mdio: unexport __init-annotated mdio_bus_init()
+    - net: xfrm: unexport __init-annotated xfrm4_protocol_init()
+    - net: ipv6: unexport __init-annotated seg6_hmac_init()
+    - net/mlx5: Rearm the FW tracer after each tracer event
+    - net/mlx5: fs, fail conflicting actions
+    - ip_gre: test csum_start instead of transport header
+    - net: altera: Fix refcount leak in altera_tse_mdio_create
+    - drm: imx: fix compiler warning with gcc-12
+    - iio: dummy: iio_simple_dummy: check the return value of kstrdup()
+    - iio: st_sensors: Add a local lock for protecting odr
+    - lkdtm/usercopy: Expand size of "out of frame" object
+    - tty: synclink_gt: Fix null-pointer-dereference in slgt_clean()
+    - tty: Fix a possible resource leak in icom_probe
+    - drivers: staging: rtl8192u: Fix deadlock in ieee80211_beacons_stop()
+    - drivers: staging: rtl8192e: Fix deadlock in rtllib_beacons_stop()
+    - USB: host: isp116x: check return value after calling platform_get_resource()
+    - drivers: tty: serial: Fix deadlock in sa1100_set_termios()
+    - drivers: usb: host: Fix deadlock in oxu_bus_suspend()
+    - USB: hcd-pci: Fully suspend across freeze/thaw cycle
+    - usb: dwc2: gadget: don't reset gadget's driver->bus
+    - misc: rtsx: set NULL intfdata when probe fails
+    - extcon: Modify extcon device to be created after driver data is set
+    - clocksource/drivers/sp804: Avoid error on multiple instances
+    - staging: rtl8712: fix uninit-value in usb_read8() and friends
+    - staging: rtl8712: fix uninit-value in r871xu_drv_init()
+    - serial: msm_serial: disable interrupts in __msm_console_write()
+    - kernfs: Separate kernfs_pr_cont_buf and rename_lock.
+    - watchdog: wdat_wdt: Stop watchdog when rebooting the system
+    - md: protect md_unregister_thread from reentrancy
+    - scsi: myrb: Fix up null pointer access on myrb_cleanup()
+    - ceph: allow ceph.dir.rctime xattr to be updatable
+    - drm/radeon: fix a possible null pointer dereference
+    - modpost: fix undefined behavior of is_arm_mapping_symbol()
+    - x86/cpu: Elide KCSAN for cpu_has() and friends
+    - nbd: call genl_unregister_family() first in nbd_cleanup()
+    - nbd: fix race between nbd_alloc_config() and module removal
+    - cifs: version operations for smb20 unneeded when legacy support disabled
+    - nodemask: Fix return values to be unsigned
+    - vringh: Fix loop descriptors check in the indirect cases
+    - scripts/gdb: change kernel config dumping method
+    - ALSA: hda/conexant - Fix loopback issue with CX20632
+    - cifs: return errors during session setup during reconnects
+    - ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files
+    - mmc: block: Fix CQE recovery reset success
+    - nfc: st21nfca: fix incorrect validating logic in EVT_TRANSACTION
+    - nfc: st21nfca: fix memory leaks in EVT_TRANSACTION handling
+    - ixgbe: fix bcast packets Rx on VF after promisc removal
+    - ixgbe: fix unexpected VLAN Rx in promisc mode on VF
+    - Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag
+    - powerpc/32: Fix overread/overwrite of thread_struct via ptrace
+    - md/raid0: Ignore RAID0 layout if the second zone has only one device
+    - mtd: cfi_cmdset_0002: Use chip_ready() for write on S29GL064N
+    - tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd
+    - Linux 5.4.198
+  * Focal update: v5.4.197 upstream stable release (LP: #1981758)
+    - x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
+    - staging: rtl8723bs: prevent ->Ssid overflow in rtw_wx_set_scan()
+    - Input: goodix - fix spurious key release events
+    - tcp: change source port randomizarion at connect() time
+    - secure_seq: use the 64 bits of the siphash for port offset calculation
+    - media: vim2m: Register video device after setting up internals
+    - media: vim2m: initialize the media device earlier
+    - ACPI: sysfs: Make sparse happy about address space in use
+    - ACPI: sysfs: Fix BERT error region memory mapping
+    - pinctrl: sunxi: fix f1c100s uart2 function
+    - net: af_key: check encryption module availability consistency
+    - net: ftgmac100: Disable hardware checksum on AST2600
+    - i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
+    - drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI
+      controllers
+    - assoc_array: Fix BUG_ON during garbage collect
+    - cfg80211: set custom regdomain after wiphy registration
+    - drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
+    - exec: Force single empty string when argv is empty
+    - netfilter: conntrack: re-fetch conntrack after insertion
+    - crypto: ecrdsa - Fix incorrect use of vli_cmp
+    - zsmalloc: fix races between asynchronous zspage free and page migration
+    - dm integrity: fix error code in dm_integrity_ctr()
+    - dm crypt: make printing of the key constant-time
+    - dm stats: add cond_resched when looping over entries
+    - dm verity: set DM_TARGET_IMMUTABLE feature flag
+    - raid5: introduce MD_BROKEN
+    - HID: multitouch: Add support for Google Whiskers Touchpad
+    - tpm: Fix buffer access in tpm2_get_tpm_pt()
+    - tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
+    - docs: submitting-patches: Fix crossref to 'The canonical patch format'
+    - NFS: Memory allocation failures are not server fatal errors
+    - NFSD: Fix possible sleep during nfsd4_release_lockowner()
+    - bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
+    - Linux 5.4.197
+  * Focal update: v5.4.196 upstream stable release (LP: #1981111)
+    - x86/xen: Make the boot CPU idle task reliable
+    - x86/xen: Make the secondary CPU idle tasks reliable
+    - rtc: fix use-after-free on device removal
+    - um: Cleanup syscall_handler_t definition/cast, fix warning
+    - Input: add bounds checking to input_set_capability()
+    - Input: stmfts - fix reference leak in stmfts_input_open
+    - crypto: stm32 - fix reference leak in stm32_crc_remove
+    - crypto: x86/chacha20 - Avoid spurious jumps to other functions
+    - ALSA: hda/realtek: Enable headset mic on Lenovo P360
+    - nvme-multipath: fix hang when disk goes live over reconnect
+    - rtc: mc146818-lib: Fix the AltCentury for AMD platforms
+    - MIPS: lantiq: check the return value of kzalloc()
+    - drbd: remove usage of list iterator variable after loop
+    - platform/chrome: cros_ec_debugfs: detach log reader wq from devm
+    - ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
+    - nilfs2: fix lockdep warnings in page operations for btree nodes
+    - nilfs2: fix lockdep warnings during disk space reclamation
+    - mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC
+    - mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD
+    - mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
+    - SUNRPC: Clean up scheduling of autoclose
+    - SUNRPC: Prevent immediate close+reconnect
+    - SUNRPC: Don't call connect() more than once on a TCP socket
+    - ALSA: wavefront: Proper check of get_user() error
+    - perf: Fix sys_perf_event_open() race against self
+    - Fix double fget() in vhost_net_set_backend()
+    - PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold
+    - KVM: x86/mmu: Update number of zapped pages even if page list is stable
+    - crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
+    - drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
+    - dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
+    - ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
+    - ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
+    - net: macb: Increment rx bd head after allocating skb and buffer
+    - net/sched: act_pedit: sanitize shift argument before usage
+    - net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
+    - net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
+    - ice: fix possible under reporting of ethtool Tx and Rx statistics
+    - clk: at91: generated: consider range when calculating best rate
+    - net/qla3xxx: Fix a test in ql_reset_work()
+    - NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
+    - net/mlx5e: Properly block LRO when XDP is enabled
+    - ARM: 9196/1: spectre-bhb: enable for Cortex-A15
+    - ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
+    - igb: skip phy status check where unavailable
+    - net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
+    - gpio: gpio-vf610: do not touch other bits when set the target bit
+    - gpio: mvebu/pwm: Refuse requests with inverted polarity
+    - perf bench numa: Address compiler error on s390
+    - scsi: qla2xxx: Fix missed DMA unmap for aborted commands
+    - mac80211: fix rx reordering with non explicit / psmp ack policy
+    - selftests: add ping test with ping_group_range tuned
+    - ethernet: tulip: fix missing pci_disable_device() on error in
+      tulip_init_one()
+    - net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe()
+    - net: atlantic: verify hw_head_ lies within TX buffer ring
+    - Input: ili210x - fix reset timing
+    - block: return ELEVATOR_DISCARD_MERGE if possible
+    - net: stmmac: disable Split Header (SPH) for Intel platforms
+    - firmware_loader: use kernel credentials when reading firmware
+    - ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk
+    - Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
+    - x86/xen: fix booting 32-bit pv guest
+    - x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
+    - i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
+    - afs: Fix afs_getattr() to refetch file status if callback break occurred
+    - Linux 5.4.196
+  * CVE-2022-36946
+    - netfilter: nf_queue: do not allow packet truncation below transport header
+      offset
+  * CVE-2021-33655
+    - fbcon: Disallow setting font bigger than screen size
+    - fbcon: Prevent that screen size is smaller than font size
+    - fbmem: Check virtual screen sizes in fb_set_var()
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 19 Sep 2022 00:41:11 +0800
+
+linux-imx (5.4.0-1025.31) focal; urgency=medium
+
+  * [X6MED][Feature] Bluetooth - no FW license & cannot initialise (LP:
+    #1933593)
+    - [Config] imx: armhf: CONFIG_IMX_SDMA=y
+
+  [ Ubuntu: 5.4.0-125.141 ]
+
+  * focal/linux: 5.4.0-125.141 -proposed tracker (LP: #1983947)
+  * nbd: requests can become stuck when disconnecting from server with qemu-nbd
+    (LP: #1896350)
+    - blk-mq: blk-mq: provide forced completion method
+    - blk-mq: move failure injection out of blk_mq_complete_request
+    - nbd: don't handle response without a corresponding request message
+    - nbd: make sure request completion won't concurrent
+    - nbd: don't clear 'NBD_CMD_INFLIGHT' flag if request is not completed
+    - nbd: fix io hung while disconnecting device
+  * CVE-2021-33656
+    - vt: drop old FONT ioctls
+  * CVE-2021-33061
+    - ixgbe: add the ability for the PF to disable VF link state
+    - ixgbe: add improvement for MDD response functionality
+    - ixgbevf: add disable link state
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 30 Aug 2022 18:28:39 +0800
+
+linux-imx (5.4.0-1024.29) focal; urgency=medium
+
+  * [Reading] Tracking bug for wireless support (LP: #1985008)
+    - SAUCE: net: wireless: brcmfmac: Add path for cypress firmware.
+    - SAUCE: net: wireless: brcmfmac: Support for CYW43439 SDIO
+    - brcmfmac: support 43439 Cypress Vendor and Device ID
+    - brcmfmac: add CYW43439 SR related changes
+
+  * [Reading] Tracking bug for kernel support (LP: #1985002)
+    - net: phy: dp83867: fix hfs boot in rgmii mode
+    - net: dp83867: Fix OF_MDIO config check
+    - SAUCE: arm64: dts: Support msc-sm2s-imx8mlc-mini.
+    - SAUCE: arm64: dts: msc-sm2-imx8m_mlc: Support Keurig.
+    - SAUCE: arm64: dts: imx8mlc_mini: build KDRP device tree
+    - SAUCE: arm64: dts: msc-sm2-imx8m_mlc: Added extcon entry for usb otg.
+    - arm64: dts: imx8mm: Remove incorrect fallback compatible for ocotp
+    - arm64: dts: imx8mm-evk: Assigned clocks for audio plls
+    - arm64: dts: imx8m: drop "fsl,aips-bus" and "fsl,imx8mq-aips-bus"
+    - arm64: dts: imx8m: fix aips dts node
+    - arm64: dts: imx8m: assign clocks for A53
+    - arm64: dts: imx8mm-evk: Assigned clocks for audio plls
+    - arm64: dts: imx8m: drop "fsl,aips-bus" and "fsl,imx8mq-aips-bus"
+    - arm64: dts: imx8m: fix aips dts node
+    - arm64: dts: imx8m: assign clocks for A53
+    - arm64: dts: imx8m: change ocotp node name on i.MX8M SoCs
+    - arm64: dts: imx8mm: add GPC node
+    - arm64: dts: imx8mm: Add the pcie support
+    - arm64: dts: imx8mm: Add the pcie phy support
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Correct pcie phy node.
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Add enet wakeup support,
+      including the irq wakeup property.
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Add dispmix-reset node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Define lcdif/dsi resets
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Increase cma size
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add csi bridge and mipi csi
+      node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add fsl,dataline for SAI
+      node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add caam snvs and secvio
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add caam snvs clock
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add secure memory
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add the resets pcie
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add gpu device
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add pcie ep support
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: use_dt_domains for pci node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: assign osc_24m to dsi PHY
+      REF clock source
+    - arm64: dts: imx8m: add NVMEM provider and consumer to read soc unique ID
+    - SAUCE: arm64: dts: msc-sm2s-imx8mm_mlc: Added usb over current settings.
+    - SAUCE: drm: Add panel driver for AVD101WX-CN.
+    - SAUCE: drm: Updated panel driver for AVD101WX-CN.
+    - SAUCE: drm: Updated panel driver for AVD101WX-CN init sequence and timing.
+    - SAUCE: arm64: dts: msc-sm2s-imx8mm_mlc: Fixed USB0 otg support.
+    - SAUCE: drm: Fixed AVD101WX-CN display resolution.
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Changed GPIO10 to wifi enable.
+    - SAUCE: irqchip: imx: Corrected typo
+    - drm/panel: add backlight support
+    - MLK-14392-1 input: touch: add focaltech touch screen support
+    - LF-2653 drm/imx: lcdif: implement mode_valid() for CRTC
+    - reset: Kconfig: use 'ARCH_MXC' for reset dispmix
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm-04N0830E-module: add optee device node
+    - [Config] add AVD-TT101WX-CN touchscreen panel
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Use native RTS/CTS functionality of
+      uart2.
+    - drm/drm_panel: no error when no callback
+    - [Config] CONFIG_DRM_IMX_LCDIF=y
+
+  [ Ubuntu: 5.4.0-124.140 ]
+
+  * CVE-2022-2586
+    - SAUCE: netfilter: nf_tables: do not allow SET_ID to refer to another table
+    - SAUCE: netfilter: nf_tables: do not allow RULE_ID to refer to another chain
+  * CVE-2022-2588
+    - SAUCE: net_sched: cls_route: remove from list when handle is 0
+  * CVE-2022-34918
+    - netfilter: nf_tables: stricter validation of element data
+
+  [ Ubuntu: 5.4.0-123.139 ]
+
+  * focal/linux: 5.4.0-123.139 -proposed tracker (LP: #1981284)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.07.11)
+  * Hairpin traffic does not work with centralized NAT gw (LP: #1967856)
+    - net: openvswitch: fix misuse of the cached connection on tuple changes
+  * [UBUNTU 20.04] Include patches to avoid self-detected stall with Secure
+    Execution (LP: #1979296)
+    - KVM: s390: pv: add macros for UVC CC values
+    - KVM: s390: pv: avoid stalls when making pages secure
+    - KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
+  * Focal update: v5.4.195 upstream stable release (LP: #1980407)
+    - batman-adv: Don't skb_split skbuffs with frag_list
+    - hwmon: (tmp401) Add OF device ID table
+    - mac80211: Reset MBSSID parameters upon connection
+    - net: Fix features skip in for_each_netdev_feature()
+    - ipv4: drop dst in multicast routing path
+    - drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
+    - netlink: do not reset transport header in netlink_recvmsg()
+    - mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
+    - dim: initialize all struct fields
+    - hwmon: (ltq-cputemp) restrict it to SOC_XWAY
+    - s390/ctcm: fix variable dereferenced before check
+    - s390/ctcm: fix potential memory leak
+    - s390/lcs: fix variable dereferenced before check
+    - net/sched: act_pedit: really ensure the skb is writable
+    - net/smc: non blocking recvmsg() return -EAGAIN when no data and
+      signal_pending
+    - net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
+    - gfs2: Fix filesystem block deallocation for short writes
+    - hwmon: (f71882fg) Fix negative temperature
+    - ASoC: max98090: Reject invalid values in custom control put()
+    - ASoC: max98090: Generate notifications on changes for custom control
+    - ASoC: ops: Validate input values in snd_soc_put_volsw_range()
+    - s390: disable -Warray-bounds
+    - net: emaclite: Don't advertise 1000BASE-T and do auto negotiation
+    - tcp: resalt the secret every 10 seconds
+    - tty: n_gsm: fix mux activation issues in gsm_config()
+    - usb: cdc-wdm: fix reading stuck on device close
+    - usb: typec: tcpci: Don't skip cleanup in .remove() on error
+    - USB: serial: pl2303: add device id for HP LM930 Display
+    - USB: serial: qcserial: add support for Sierra Wireless EM7590
+    - USB: serial: option: add Fibocom L610 modem
+    - USB: serial: option: add Fibocom MA510 modem
+    - slimbus: qcom: Fix IRQ check in qcom_slim_probe
+    - serial: 8250_mtk: Fix UART_EFR register address
+    - serial: 8250_mtk: Fix register address for XON/XOFF character
+    - drm/nouveau/tegra: Stop using iommu_present()
+    - i40e: i40e_main: fix a missing check on list iterator
+    - cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
+    - drm/vmwgfx: Initialize drm_mode_fb_cmd2
+    - MIPS: fix build with gcc-12
+    - net: phy: Fix race condition on link status change
+    - arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
+    - ping: fix address binding wrt vrf
+    - tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
+    - Linux 5.4.195
+  * Focal update: v5.4.194 upstream stable release (LP: #1980399)
+    - MIPS: Use address-of operator on section symbols
+    - block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
+    - drm/amd/display/dc/gpio/gpio_service: Pass around correct dce_{version,
+      environment} types
+    - drm/i915: Cast remain to unsigned long in eb_relocate_vma
+    - nfp: bpf: silence bitwise vs. logical OR warning
+    - can: grcan: grcan_probe(): fix broken system id check for errata workaround
+      needs
+    - can: grcan: only use the NAPI poll budget for RX
+    - arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
+    - [Config] updateconfigs for ARCH_HAS_HOLES_MEMORYMODEL
+    - KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
+    - x86/asm: Allow to pass macros to __ASM_FORM()
+    - x86: xen: kvm: Gather the definition of emulate prefixes
+    - x86: xen: insn: Decode Xen and KVM emulate-prefix signature
+    - x86: kprobes: Prohibit probing on instruction which has emulate prefix
+    - KVM: x86/svm: Account for family 17h event renumberings in
+      amd_pmc_perf_hw_id
+    - Bluetooth: Fix the creation of hdev->name
+    - mm: fix missing cache flush for all tail pages of compound page
+    - mm: hugetlb: fix missing cache flush in copy_huge_page_from_user()
+    - mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and
+      __mcopy_atomic()
+    - Linux 5.4.194
+  * Focal update: v5.4.193 upstream stable release (LP: #1979566)
+    - MIPS: Fix CP0 counter erratum detection for R4k CPUs
+    - parisc: Merge model and model name into one line in /proc/cpuinfo
+    - ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
+    - gpiolib: of: fix bounds check for 'gpio-reserved-ranges'
+    - Revert "SUNRPC: attempt AF_LOCAL connect on setup"
+    - firewire: fix potential uaf in outbound_phy_packet_callback()
+    - firewire: remove check of list iterator against head past the loop body
+    - firewire: core: extend card->lock in fw_core_handle_bus_reset
+    - ACPICA: Always create namespace nodes using acpi_ns_create_node()
+    - genirq: Synchronize interrupt thread startup
+    - ASoC: da7219: Fix change notifications for tone generator frequency
+    - ASoC: wm8958: Fix change notifications for DSP controls
+    - ASoC: meson: Fix event generation for G12A tohdmi mux
+    - s390/dasd: fix data corruption for ESE devices
+    - s390/dasd: prevent double format of tracks for ESE devices
+    - s390/dasd: Fix read for ESE with blksize < 4k
+    - s390/dasd: Fix read inconsistency for ESE DASD devices
+    - can: grcan: grcan_close(): fix deadlock
+    - can: grcan: use ofdev->dev when allocating DMA memory
+    - nfc: replace improper check device_is_registered() in netlink related
+      functions
+    - NFC: netlink: fix sleep in atomic bug when firmware download timeout
+    - hwmon: (adt7470) Fix warning on module removal
+    - ASoC: dmaengine: Restore NULL prepare_slave_config() callback
+    - RDMA/siw: Fix a condition race issue in MPA request processing
+    - net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init()
+    - net: stmmac: dwmac-sun8i: add missing of_node_put() in
+      sun8i_dwmac_register_mdio_mux()
+    - net: emaclite: Add error handling for of_address_to_resource()
+    - selftests: mirror_gre_bridge_1q: Avoid changing PVID while interface is
+      operational
+    - bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag
+    - smsc911x: allow using IRQ0
+    - btrfs: always log symlinks in full mode
+    - net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
+    - drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu
+    - NFSv4: Don't invalidate inode attributes on delegation return
+    - kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
+    - x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
+    - KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised
+    - net: ipv6: ensure we call ipv6_mc_down() at most once
+    - block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
+    - mm: fix unexpected zeroed page mapping with zram swap
+    - ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
+    - ALSA: pcm: Fix races among concurrent read/write and buffer changes
+    - ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
+    - ALSA: pcm: Fix races among concurrent prealloc proc writes
+    - ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
+    - tcp: make sure treq->af_specific is initialized
+    - dm: fix mempool NULL pointer race when completing IO
+    - dm: interlock pending dm_io and dm_wait_for_bios_completion
+    - PCI: aardvark: Clear all MSIs at setup
+    - PCI: aardvark: Fix reading MSI interrupt number
+    - mmc: rtsx: add 74 Clocks in power on flow
+    - Linux 5.4.193
+  * CVE-2022-1679
+    - SAUCE: ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
+  * CVE-2022-28893
+    - SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
+    - SUNRPC: Don't leak sockets in xs_local_connect()
+  * CVE-2022-1734
+    - nfc: nfcmrvl: main: reorder destructive operations in
+      nfcmrvl_nci_unregister_dev to avoid bugs
+  * CVE-2022-1652
+    - floppy: use a statically allocated error counter
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sun, 14 Aug 2022 19:45:48 +0800
+
+linux-imx (5.4.0-1023.28) focal; urgency=medium
+
+  * Focal update: upstream stable patchset v5.4.192 (LP: #1979014)
+    - [Config] updateconfigs for NVM
+
+  * [uc20-x01] System can not wake up from suspend. (LP: #1976604)
+    - soc: imx: gpcv2: support system suspend/resume
+    - SAUCE: imx7: Suspend/Resume updates
+
+  * [PE100A][Core] The system shutdown because the critial temperature of
+    thermal should be config to 105'c not 90'c (LP: #1982989)
+    - SAUCE: imx/pe100a: dts: Set GPU/VPU crit temprature to 105
+
+  [ Ubuntu: 5.4.0-122.138 ]
+
+  * focal/linux: 5.4.0-122.138 -proposed tracker (LP: #1979489)
+  * Remove SAUCE patches from test_vxlan_under_vrf.sh in net of
+    ubuntu_kernel_selftests (LP: #1975691)
+    - Revert "UBUNTU: SAUCE: selftests: net: Don't fail test_vxlan_under_vrf on
+      xfail"
+    - Revert "UBUNTU: SAUCE: selftests: net: Make test for VXLAN underlay in non-
+      default VRF an expected failure"
+  * Enable Asus USB-BT500 Bluetooth dongle(0b05:190e) (LP: #1976613)
+    - Bluetooth: btusb: Add flag to define wideband speech capability
+    - Bluetooth: btrtl: Add support for RTL8761B
+    - Bluetooth: btusb: Add 0x0b05:0x190e Realtek 8761BU (ASUS BT500) device.
+  * [UBUNTU 20.04] rcu stalls with many storage key guests (LP: #1975582)
+    - s390/gmap: voluntarily schedule during key setting
+    - s390/mm: use non-quiescing sske for KVM switch to keyed guest
+  * Ubuntu 5.4.0-117.132-generic 5.4.189 has BUG: kernel NULL pointer
+    dereference, address: 0000000000000034 (LP: #1978719)
+    - mm: rmap: explicitly reset vma->anon_vma in unlink_anon_vmas()
+  * Focal update: upstream stable patchset v5.4.192 (LP: #1979014)
+    - floppy: disable FDRAWCMD by default
+    - [Config] updateconfigs for BLK_DEV_FD_RAWCMD
+    - hamradio: defer 6pack kfree after unregister_netdev
+    - hamradio: remove needs_free_netdev to avoid UAF
+    - lightnvm: disable the subsystem
+    - [Config] updateconfigs for NVM, NVM_PBLK
+    - usb: mtu3: fix USB 3.0 dual-role-switch from device to host
+    - USB: quirks: add a Realtek card reader
+    - USB: quirks: add STRING quirk for VCOM device
+    - USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
+    - USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
+    - USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
+    - USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
+    - xhci: stop polling roothubs after shutdown
+    - xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
+    - iio: dac: ad5592r: Fix the missing return value.
+    - iio: dac: ad5446: Fix read_raw not returning set value
+    - iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
+    - usb: misc: fix improper handling of refcount in uss720_probe()
+    - usb: typec: ucsi: Fix role swapping
+    - usb: gadget: uvc: Fix crash when encoding data for usb request
+    - usb: gadget: configfs: clear deactivation flag in
+      configfs_composite_unbind()
+    - usb: dwc3: core: Fix tx/rx threshold settings
+    - usb: dwc3: gadget: Return proper request status
+    - serial: imx: fix overrun interrupts in DMA mode
+    - serial: 8250: Also set sticky MCR bits in console restoration
+    - serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
+    - arch_topology: Do not set llc_sibling if llc_id is invalid
+    - hex2bin: make the function hex_to_bin constant-time
+    - hex2bin: fix access beyond string end
+    - video: fbdev: udlfb: properly check endpoint type
+    - arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
+    - arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
+    - mtd: rawnand: fix ecc parameters for mt7622
+    - USB: Fix xhci event ring dequeue pointer ERDP update issue
+    - ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
+    - phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
+    - phy: samsung: exynos5250-sata: fix missing device put in probe error paths
+    - ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
+    - phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
+    - ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
+    - phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
+    - phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
+    - ARM: dts: Fix mmc order for omap3-gta04
+    - ARM: dts: am3517-evm: Fix misc pinmuxing
+    - ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
+    - ipvs: correctly print the memory size of ip_vs_conn_tab
+    - mtd: rawnand: Fix return value check of wait_for_completion_timeout
+    - bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt
+      hook
+    - tcp: md5: incorrect tcp_header_len for incoming connections
+    - tcp: ensure to use the most recently sent skb when filling the rate sample
+    - sctp: check asoc strreset_chunk in sctp_generate_reconf_event
+    - ARM: dts: imx6ull-colibri: fix vqmmc regulator
+    - arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
+    - pinctrl: pistachio: fix use of irq_of_parse_and_map()
+    - cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
+    - net: hns3: add validity check for message data length
+    - net/smc: sync err code when tcp connection was refused
+    - ip_gre: Make o_seqno start from 0 in native mode
+    - tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
+    - bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
+    - clk: sunxi: sun9i-mmc: check return value after calling
+      platform_get_resource()
+    - net: bcmgenet: hide status block before TX timestamping
+    - net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
+    - drm/amd/display: Fix memory leak in dcn21_clock_source_create
+    - tls: Skip tls_append_frag on zero copy size
+    - bnx2x: fix napi API usage sequence
+    - ixgbe: ensure IPsec VF<->PF compatibility
+    - tcp: fix F-RTO may not work correctly when receiving DSACK
+    - ASoC: wm8731: Disable the regulator when probing fails
+    - ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit()
+    - x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
+    - cifs: destage any unwritten data to the server before calling
+      copychunk_write
+    - drivers: net: hippi: Fix deadlock in rr_close()
+    - net: ethernet: stmmac: fix write to sgmii_adapter_base
+    - x86/cpu: Load microcode during restore_processor_state()
+    - tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
+    - tty: n_gsm: fix malformed counter for out of frame data
+    - netfilter: nft_socket: only do sk lookups when indev is available
+    - tty: n_gsm: fix insufficient txframe size
+    - tty: n_gsm: fix missing explicit ldisc flush
+    - tty: n_gsm: fix wrong command retry handling
+    - tty: n_gsm: fix wrong command frame length field encoding
+    - tty: n_gsm: fix incorrect UA handling
+    - hugetlbfs: get unmapped area below TASK_UNMAPPED_BASE for hugetlbfs
+    - mm, hugetlb: allow for "high" userspace addresses
+    - Linux 5.4.192
+  * CVE-2022-1789
+    - KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
+  * Focal update: v5.4.191 upstream stable release (LP: #1976116)
+    - etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead
+    - mm: page_alloc: fix building error on -Werror=array-compare
+    - tracing: Dump stacktrace trigger to the corresponding instance
+    - gfs2: assign rgrp glock before compute_bitstructs
+    - tcp: fix race condition when creating child sockets from syncookies
+    - tcp: Fix potential use-after-free due to double kfree()
+    - ALSA: usb-audio: Clear MIDI port active flag after draining
+    - ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek
+    - ASoC: msm8916-wcd-digital: Check failure for devm_snd_soc_register_component
+    - dmaengine: imx-sdma: Fix error checking in sdma_event_remap
+    - dmaengine: mediatek:Fix PM usage reference leak of
+      mtk_uart_apdma_alloc_chan_resources
+    - igc: Fix infinite loop in release_swfw_sync
+    - igc: Fix BUG: scheduling while atomic
+    - rxrpc: Restore removed timer deletion
+    - net/smc: Fix sock leak when release after smc_shutdown()
+    - net/packet: fix packet_sock xmit return value checking
+    - net/sched: cls_u32: fix possible leak in u32_init_knode()
+    - l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using
+      netdev_master_upper_dev_get_rcu
+    - netlink: reset network and mac headers in netlink_dump()
+    - selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets
+    - ARM: vexpress/spc: Avoid negative array index when !SMP
+    - reset: tegra-bpmp: Restore Handle errors in BPMP response
+    - platform/x86: samsung-laptop: Fix an unsigned comparison which can never be
+      negative
+    - ALSA: usb-audio: Fix undefined behavior due to shift overflowing the
+      constant
+    - vxlan: fix error return code in vxlan_fdb_append
+    - cifs: Check the IOCB_DIRECT flag, not O_DIRECT
+    - mt76: Fix undefined behavior due to shift overflowing the constant
+    - brcmfmac: sdio: Fix undefined behavior due to shift overflowing the constant
+    - dpaa_eth: Fix missing of_node_put in dpaa_get_ts_info()
+    - drm/msm/mdp5: check the return of kzalloc()
+    - net: macb: Restart tx only if queue pointer is lagging
+    - scsi: qedi: Fix failed disconnect handling
+    - stat: fix inconsistency between struct stat and struct compat_stat
+    - EDAC/synopsys: Read the error count from the correct register
+    - oom_kill.c: futex: delay the OOM reaper to allow time for proper futex
+      cleanup
+    - ata: pata_marvell: Check the 'bmdma_addr' beforing reading
+    - dma: at_xdmac: fix a missing check on list iterator
+    - drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
+    - drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
+    - KVM: PPC: Fix TCE handling for VFIO
+    - drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
+    - powerpc/perf: Fix power9 event alternatives
+    - xtensa: patch_text: Fixup last cpu should be master
+    - xtensa: fix a7 clobbering in coprocessor context load/store
+    - openvswitch: fix OOB access in reserve_sfa_size()
+    - ASoC: soc-dapm: fix two incorrect uses of list iterator
+    - e1000e: Fix possible overflow in LTR decoding
+    - ARC: entry: fix syscall_trace_exit argument
+    - arm_pmu: Validate single/group leader events
+    - ext4: fix symlink file size not match to file content
+    - ext4: fix use-after-free in ext4_search_dir
+    - ext4, doc: fix incorrect h_reserved size
+    - ext4: fix overhead calculation to account for the reserved gdt blocks
+    - ext4: force overhead calculation if the s_overhead_cluster makes no sense
+    - jbd2: fix a potential race while discarding reserved buffers after an abort
+    - spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and
+      controller
+    - staging: ion: Prevent incorrect reference counting behavour
+    - block/compat_ioctl: fix range check in BLKGETSIZE
+    - Linux 5.4.191
+  * Focal update: v5.4.190 upstream stable release (LP: #1973085)
+    - memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
+    - net/sched: flower: fix parsing of ethertype following VLAN header
+    - veth: Ensure eth header is in skb's linear part
+    - gpiolib: acpi: use correct format characters
+    - mlxsw: i2c: Fix initialization error flow
+    - net/sched: fix initialization order when updating chain 0 head
+    - net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link
+    - net/sched: taprio: Check if socket flags are valid
+    - cfg80211: hold bss_lock while updating nontrans_list
+    - drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init()
+    - net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
+    - sctp: Initialize daddr on peeled off socket
+    - testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set
+    - nfc: nci: add flush_workqueue to prevent uaf
+    - cifs: potential buffer overflow in handling symlinks
+    - drm/amd: Add USBC connector ID
+    - drm/amd/display: fix audio format not updated after edid updated
+    - drm/amd/display: Update VTEM Infopacket definition
+    - drm/amdkfd: Fix Incorrect VMIDs passed to HWS
+    - drm/amdkfd: Check for potential null return of kmalloc_array()
+    - Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer
+    - scsi: target: tcmu: Fix possible page UAF
+    - scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
+    - ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
+    - gpu: ipu-v3: Fix dev_dbg frequency output
+    - regulator: wm8994: Add an off-on delay for WM8994 variant
+    - arm64: alternatives: mark patch_alternative() as `noinstr`
+    - tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
+    - net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
+    - drm/amd/display: Fix allocate_mst_payload assert on resume
+    - powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
+    - scsi: mvsas: Add PCI ID of RocketRaid 2640
+    - scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
+    - drivers: net: slip: fix NPD bug in sl_tx_timeout()
+    - perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
+    - mm, page_alloc: fix build_zonerefs_node()
+    - mm: kmemleak: take a full lowmem check in kmemleak_*_phys()
+    - gcc-plugins: latent_entropy: use /dev/urandom
+    - ath9k: Properly clear TX status area before reporting to mac80211
+    - ath9k: Fix usage of driver-private space in tx_info
+    - btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()
+    - btrfs: mark resumed async balance as writing
+    - ALSA: hda/realtek: Add quirk for Clevo PD50PNT
+    - ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
+    - ipv6: fix panic when forwarding a pkt with no in6 dev
+    - drm/amd/display: don't ignore alpha property on pre-multiplied mode
+    - genirq/affinity: Consider that CPUs on nodes can be unbalanced
+    - tick/nohz: Use WARN_ON_ONCE() to prevent console saturation
+    - ARM: davinci: da850-evm: Avoid NULL pointer dereference
+    - dm integrity: fix memory corruption when tag_size is less than digest size
+    - smp: Fix offline cpu check in flush_smp_call_function_queue()
+    - i2c: pasemi: Wait for write xfers to finish
+    - dma-direct: avoid redundant memory sync for swiotlb
+    - ax25: add refcount in ax25_dev to avoid UAF bugs
+    - ax25: fix reference count leaks of ax25_dev
+    - ax25: fix UAF bugs of net_device caused by rebinding operation
+    - ax25: Fix refcount leaks caused by ax25_cb_del()
+    - ax25: fix UAF bug in ax25_send_control()
+    - ax25: fix NPD bug in ax25_disconnect
+    - ax25: Fix NULL pointer dereferences in ax25 timers
+    - ax25: Fix UAF bugs in ax25 timers
+    - Linux 5.4.190
+
+  [ Ubuntu: 5.4.0-121.137 ]
+
+  * focal/linux: 5.4.0-121.137 -proposed tracker (LP: #1978666)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.05.30)
+  * CVE-2022-28388
+    - can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error
+      path
+  * test_vxlan_under_vrf.sh in net from ubuntu_kernel_selftests failed (Check VM
+    connectivity through VXLAN (underlay in the default VRF) [FAIL])
+    (LP: #1871015)
+    - selftests: net: test_vxlan_under_vrf: fix HV connectivity test
+  * [UBUNTU 20.04] CPU-MF: add extended counter set definitions for new IBM z16
+    (LP: #1974433)
+    - s390/cpumf: add new extended counter set for IBM z16
+  * [UBUNTU 20.04] KVM nesting support leaks too much memory, might result in
+    stalls during cleanup (LP: #1974017)
+    - KVM: s390: vsie/gmap: reduce gmap_rmap overhead
+  * [UBUNTU 20.04] Null Pointer issue in nfs code running Ubuntu on IBM Z
+    (LP: #1968096)
+    - NFS: Fix up nfs_ctx_key_to_expire()
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Wed, 10 Aug 2022 14:53:21 +0800
+
+linux-imx (5.4.0-1022.26) focal; urgency=medium
+
+  * [pe100a] WWAN primary port is missing after resume from suspend (LP:
+    #1981540)
+    - SAUCE: pe100a: Pull platform reset pin low before suspend
+
+  * [PE100A] Custom setup required for LAN1 LED (LP: #1978043)
+    - SAUCE: net: fec: Set custom PHY LED config for PE100A
+
+  * [PE100A] Remove CAN debug messages (LP: #1965849)
+    - SAUCE: imx/pe100a: CAN: Remove debug messages
+
+  * [PE100A] Refine 0016-ethernet-Asus-LAN2-feature-porting.patch (LP: #1970770)
+    - SAUCE: Revert igb changes introduced by "Asus LAN2 feature porting"
+
+  * [PE100A] Syncing between two RTCs doesn't really work (LP: #1967267)
+    - SAUCE: rtc: isl1208: Mark UIE unsupported if there is no IRQ defined
+    - SAUCE: rtc: bq32k: Mark UIE unsupported if there is no IRQ defined
+    - SAUCE: imx/pe100a: dts: Add RTC aliases
+
+  * [PE100A] PCI bus doesn't work if platform-reset is not set as built-in (LP:
+    #1967293)
+    - SAUCE: pe100a: reset: Toggle reset pin on resume only
+    - [Config] CONFIG_RESET_ASUS_PE100A=m
+
+  * [PE100A] systemd does not turn-off device by power key pressed (LP:
+    #1965751)
+    - SAUCE: dts: pe100a: Add clock-names to snvs_pwrkey
+    - [Config] imx: arm64: CONFIG_KEYBOARD_SNVS_PWRKEY=m
+
+  * HDMI not worked after boot kernel (LP: #1965475)
+    - [Config] Enlarge CMA size for higher display resolution
+
+  * [PE100A] Add RTC bq32000 (LP: #1965851)
+    - SAUCE: imx/pe100a: dts: Add RTC bq32000
+
+  * Import eth0 pinctrl changes (LP: #1965852)
+    - SAUCE: pinctrl: modify RGMII TX&RX SRE to slow and other config.
+
+  * [pe100a][us2004]Intel I211 eth didn't bring up (LP: #1965485)
+    - [Config] Enable E100/E1000/E1000E and IGB
+    - [Config] CONFIG_RESET_ASUS_PE100A=y
+
+  * [PE100A]Internal eMMC is not working (LP: #1958199)
+    - [Config] Add driver for REGULATOR_BD718XX
+
+  * [pe100a][us2004]Wireless module not worked (LP: #1965481)
+    - [Config] Enable ath10k
+
+  * [pe100a][us2004]HDMI not worked after boot kernel (LP: #1965475)
+    - clk: imx8mq: add 27MHz PHY ref clock
+    - arm64: dts: imx8mq: add dcss, hdmi and create imx8mq-evk-hdmi.dts file
+    - dts: arm: imx: add imx8mq hdmi
+    - arm64: dts: imx8mq: add DCSS node
+    - arm64: dts: imx8mq: use the DCSS DTRC interrupts
+    - arm64: dts: imx8mq: add DCSS external oscillator support
+    - SAUCE: Fix HDMI output on PE100A
+    - [Config] CONFIG_FB_EFI=n
+
+  * [X6MED][UC20] WARNING: CPU: 0 PID: 1 at arch/arm/mm/dump.c (LP: #1951783)
+    - ARM: add __arm_iomem_set_ro() to write-protect ioremapped area
+    - ARM: imx6: mark OCRAM mapping read-only
+
+  * [imx8-bms] RS485 Send and receive test failed (LP: #1978514)
+    - MLK-21309: dma: engine: sdma: add uart rom script
+    - serial: core: Initialize rs485 RTS polarity already on probe
+
+  * [US20.04][UC20] Camera does not work (LP: #1966824)
+    - SAUCE: dts: amgis: Fix clock used by ov9281_mipi and clock used by clko1.
+    - [Config] Enable REGULATOR_ANATOP as a built-in driver for armhf.
+
+  * [uc20-x01] Can't find audio playback device (LP: #1976600)
+    - SAUCE: ASoC: topology: Avoid card NULL deref in
+      snd_soc_tplg_component_remove()
+
+  * [US20.04]Display not showing imagery (LP: #1970656)
+    - SAUCE: gpu: drm: panel: simple-panel: add DLC0430DCP10RF-2 support
+    - drm/mxsfb: Update mxsfb to support a bridge
+    - drm/mxsfb: Read bus flags from bridge if present
+    - drm/mxsfb: Add defines for the rest of registers
+    - drm/mxsfb: Reset vital registers for a proper initialization
+    - drm/mxsfb: Update register definitions using bit manipulation defines
+    - drm/mxsfb: Update mxsfb with additional pixel formats
+    - drm/mxsfb: Update mxsfb to support LCD reset
+    - drm/mxsfb: Clear OUTSTANDING_REQS bits
+    - MLK-24334-3: drm/mxsfb: Fix the LCD_RESET pin usage
+
+  * [US20.04] OV9281 camera sensor support (LP: #1966824)
+    - SAUCE: media: Add driver for OV9281
+    - SAUCE: media: Fix OV9281 module build and cleanup function names.
+    - SAUCE: media: capture: add grey pixel format used by ov9281 mipi driver.
+    - SAUCE: media: Fix OV9281 calls that search for regulators in the device
+      tree.
+    - SAUCE: dts: amgis: Fix pinctrl-0 for mipi-csi.
+    - [Config] Enable IMX_GPCV2_PM_DOMAINS for armhf.
+
+  * [US20.04] RPMSG driver support (LP: #1968362)
+    - rpmsg: imx: add the initial imx rpmsg support
+    - dt-binding: add imx rpmsg compatibility documentation
+    - rpmsg: imx: extend the rpmsg support for imx8qm and so on
+    - rpmsg: imx: bug fix and clean up the codes
+    - rpmsg: imx_rpmsg: add partition reset notify
+    - rpmsg: imx: enable the tx_block mechanism in the flow
+    - imx-mailbox: add state save and restore
+    - mailbox: imx: change to arch_init()
+    - mailbox: imx: add support for imx v1 mu
+    - SAUCE: ARM: imx: Define M4 related APIs in headers.
+    - clk: imx7d: add A7-M4 AMP power management support
+    - ARM: imx: add i.MX7D bus-freq support
+    - SAUCE: ARM: imx: Add type definition for LPDDR3.
+    - SAUCE: ARM: imx: add suspend/resume support needed for imx7 rpmsg
+      communication with the M4 core.
+    - ARM: imx: add i.MX7D power management support
+    - arm: arch: enable rpmsg for imx amp soc
+    - arm: imx: rename the compatible node of lpm mu driver
+    - MLK-23008 ARM: imx: Remove unused code on i.MX7D suspend driver
+    - LF-1011-26 arm: imx: pm-imx7: fix build break when calling of_flat_dt_match
+    - LF-1011-29 arm: imx: fix build break when calling of_flat_dt_match
+    - SAUCE: ARM: dts: Fix booting imx7 with added changes for
+      suspend/resume/power management.
+    - SAUCE: imx: Fix build error by including cpu type functions.
+    - SAUCE: dts: amgis: Enable rpmsg.
+    - [Config] Enable i.MX7D rpmsg support.
+    - SAUCE: dts: amgis: Fix booting without loading a bare metal m4 application.
+    - SAUCE: ARM: imx7: Use generic names per devicetree specification to fix
+      warnings from pm-imx7.
+    - SAUCE: ARM: imx7: Fix memory mapping for iram_tlb_io_desc by removing the
+      executable flag, resulting in a pagetable warning.
+
+  * [US20.04] Audio does not work (LP: #1966821)
+    - ASoC: tas2562: Introduce the TAS2562 amplifier
+    - ASoC: tas2562: Fix misuse of GENMASK macro
+    - ASoC: tas2562: Add support for digital volume control
+    - ASoC: tas2562: Fixed incorrect amp_level setting.
+    - ASoC: tas2562: Update shutdown GPIO property
+    - ASoC: tas2562: Update shutdown GPIO property
+    - ASoC: tas2562: Add the TAS2110 class-D amplifier
+    - [Config] CONFIG_SND_SOC_TAS2562=m on armhf
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Enable i.MX7D
+    - SAUCE: arm: dts: add Amgis dts files
+    - SAUCE: dts: amgis: Device tree janitorial work
+    - SAUCE: dts: amgis: enable camera in device tree
+    - SAUCE: dts: amgis: use imx internal version of csi bridge/mipi csi node
+    - SAUCE: imx/pe100a: Add dts and defconfig for ASUS PE100A
+    - SAUCE: imx/pe100a: dts: Enable Rohm PMIC on ASUS PE100A
+    - SAUCE: imx/pe100a: dts: Updates for PE100A
+    - SAUCE: imx/pe100a: Add the platform-reset driver to control platform reset
+      gpio
+    - SAUCE: imx/pe100a: Rename the reset driver
+    - [Config] CONFIG_RESET_ASUS_PE100A=m
+    - SAUCE: imx/pe100a: HDMI: auto config physical address for cec
+    - SAUCE: imx/pe100a: hdmi-cec: Set pa only when a property is available
+    - SAUCE: imx/pe100a: HDMI: modify resolution upper limmit to 1920x1080 when
+      noEDID
+    - SAUCE: imx/pe100a: dts: Enable rtc-isl1208
+    - SAUCE: imx/pe100a: dts: Add cpu-alert/crit temperature
+    - SAUCE: imx/pe100a: defconfig: Import thermal config updates
+    - SAUCE: imx/pe100a: dts: Enable Wake-On-LAN
+    - SAUCE: imx/pe100a: extcon: it5201: add IT5201 Type-C CC logic chip
+    - [Config] imx/pe100a: CONFIG_EXTCON_IT5201=m
+    - SAUCE: imx/pe100a: ethernet: Asus LAN2 feature porting
+    - SAUCE: imx/pe100a: dts: EEPROM: support at24 eeprom
+    - SAUCE: imx/pe100a: dts: Audio: disable unavailable sound cards and SAI
+      configurations.
+    - SAUCE: imx/pe100a: defconfig: update defconfig for asus board
+    - SAUCE: imx/pe100a: Gpu: Change gpu shader frequency from 800MHz to 1GHz.
+    - SAUCE: imx/pe100a: CAN: Add MCP2515 support
+    - [Config] imx/pe100a: Enable CONFIG_CAN_MCP251X and CONFIG_CAN_DEBUG_DEVICES
+    - SAUCE: imx/pe100a: enable spi1 and add TCG_TIS_SPI support on 3.0
+    - SAUCE: imx/pe100a: defconfig: Add drivers for moby container engine
+    - SAUCE: imx/pe100a: Remove undefined labels
+    - SAUCE: imx/pe100a: extcon: Fix i2c_device_id array
+    - SAUCE: imx/pe100a: dts: Add usdhc clocks assignment
+    - SAUCE: reset-pe100a: Remove gpio_is_valid() check
+    - SAUCE: net: fec: Fix bit mask definitions
+    - SAUCE: imx/pe100a: Remove assigned PCI clock
+
+  * Miscellaneous upstream changes
+    - soc: imx: fix build error of missing imx_src_is_m4_enabled
+    - irqchip: irq-imx-gpcv2: Add workaround for i.MX8MQ ERR11171
+    - irqchip: irq-imx-gpcv2: Disable cpuidle if no GPC_CORE_WAKE in EL3
+    - irqchip: irq-imx-gpcv2: fix the suspend/resume on imx8mq
+    - MLK-21399 irqchip: Allow i.MX8MQ to call into TF-A
+    - LF-125 irqchip: irq-imx-gpcv2: Fix build error of nosmp
+    - irqchip: imx-gpcv2: Fix build error for imx_v6_v7_defconfig
+    - PCI: imx: add the l1ss feature on imx8m platforms
+    - PCI: imx: enable imx8 pcie pm support
+    - PCI: dwc: Use interrupt disabling instead of masking
+    - PCI: dwc: fix the msi failure after pm operations
+    - Revert "UBUNTU: SAUCE: net: fec: add imx8mq and imx8qm new versions support"
+    - net: fec: add imx8mq and imx8qm new versions support
+    - Revert "net: fec: fix system hang during suspend/resume"
+    - net: fec: add WoL support for i.MX8MQ
+    - net: fec: fix system hang during suspend/resume
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Wed, 13 Jul 2022 19:24:36 +0800
+
+linux-imx (5.4.0-1021.23) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.05.30)
+
+  * Focal update: v5.4.184 upstream stable release (LP: #1969242)
+    - [Config] updateconfigs for HARDEN_BRANCH_HISTORY
+
+  * [X6MED][UC20] CAAM crypto engine kernel panic (LP: #1967124)
+    - [Config] enable L2 cache L2X0 and its ERRATA for armhf
+
+  * [imx8-pdk][uc20-x03]Kernel panic while system go into suspend (LP: #1963629)
+    - net: fec: fix system hang during suspend/resume
+
+  * Need POSIX Calls Especially Message Queue (LP: #1944649)
+    - SAUCE: apparmor: move ptrace mediation to more logical task.{h,c}
+    - SAUCE: apparmor: fix setting unconfined mode on a loaded profile
+    - SAUCE: apparmor: fix overlapping attachment computation
+    - SAUCE: apparmor: allow label to carry debug flags
+    - SAUCE: apparmor: extend policydb permission set by making use of the xbits
+    - SAUCE: apparmor: Add fine grained mediation of posix mqueues
+
+  * Enable full-disk encryption (FDE) via OP-TEE (LP: #1953725)
+    - arm: imx: remove GPC low power mode switch
+
+  * [imx8-pdk][imx8-firecpu20][US20.04/UC20] RS-485 didn't worked (LP: #1934083)
+    - MLK-24708 spi: imx: handle EPROBE_DEFER when get cs-gpios number
+
+  * [imx8-pdk][Feature]M7 core (LP: #1935879)
+    - remoteproc: imx_rproc: parse fsl,auto-boot
+    - remoteproc: imx_rproc: initial support for mutilple start/stop method
+    - remoteproc: imx_rproc: make clk optional
+    - remoteproc: imx_rproc: support i.MX7ULP
+    - remoteproc: imx_rproc: support i.MX8MN/P
+    - remoteproc: imx_rproc: support i.MX8ULP
+    - remoteproc: imx_rproc: Fix TCM io memory type
+    - remoteproc: imx_rproc: Fix ignoring mapping vdev regions
+    - remoteproc: imx_rproc: Fix rsc-table name
+    - remoteproc: imx_rproc: Change to ioremap_wc for dram
+    - remoteproc: imx_rproc: Move common structure to header file
+    - remoteproc: imx_rproc: Fix a resource leak in the remove function
+    - remoteproc: imx_rproc: correct firmware reload
+    - MLK-23754-14 remoteproc: elf_loader: drop unneedded memset
+    - MLK-23754-19 remoteproc: add rproc_memcpy
+    - MLK-23754-21 remoteproc: imx_rproc: add imx memcpy functions
+    - SAUCE: remoteproc: imx_rproc: expand the clk array
+
+  * [imx8-pdk] USB port features and functions for OTG (LP: #1936038)
+    - SAUCE: extcon: fix the timer task timeout value
+    - SAUCE: usb: dwc3: add a switch to let drd use extcon on imx8mp
+
+  * [imx8-pdk][Feature]LVDS (LP: #1930804)
+    - MLK-23622-01 soc: imx: Add active wakeup flag for domain with active-wakeup
+      property
+    - MLK-23671-01 soc: imx: Add the rpm always on flag if necessary
+    - MLK-11293: gpio: pca953x: add device_reset() call
+    - gpio: pca953x: no need to do regcache sync without vcc regulator
+    - MLK-23602 gpio: pca953x: no need to show the warning of reg everytime
+
+  * [imx8-pdk] stress-ng cpu cache fail (LP: #1934105)
+    - arm64: dts: imx8m: add cache info
+
+  * [imx8-bms]MAC address not fixed after burned fuse (LP: #1942029)
+    - net: ethernet: add property "nvmem_macaddr_swap" to swap macaddr bytes order
+    - net: fec: add defer probe for of_get_mac_address
+
+  * imx8-pdk: emmc and sdhc index can't be fixed (LP: #1966163)
+    - mmc: add feature of setting slot index via devicetree alias
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: fix the clk for audio and gpu3d
+    - [Config] Enable AUDIOMIX and HDMIMIX reset
+    - SAUCE: clk: clk-imx8mp: Fix gpu2d clks
+    - [config] enable HDMI graphic and audio Kconfigs
+    - [Config] do not enforce reserved CMA sizes in kernel config
+    - [Config] update caam crypto configs
+    - [Config] CONFIG_CRYPTO_DEV_FSL_CAAM_KEYBLOB_API_DESC=y
+    - SAUCE: sdma: disable rt pm for imx8mp
+    - SAUCE: media: imx8: support to build as module
+
+  * Miscellaneous upstream changes
+    - mfd: Add audiomix support
+    - MA-17597-3 mfd: imx-audiomix: add license for module build
+    - MLK-23250-06: reset: Add hdmimix reset driver
+    - reset: imx: Add audiomix reset controller support
+    - MA-17913 reset: Allow reset-imx7/hdmimix/audiomix driver to be loadable as
+      module
+    - MLK-23159-4 clk: imx: Add i.MX8MP clock driver
+    - arm64: dts: imx8mp: Add clock and power domain to audiomix dts node
+    - MLK-23314-7: clk: imx: clk-audiomix: refine some muxes flags
+    - MLK-23680-1: clk: imx: clk-audiomix: remove sdma root clock
+    - MLK-23886-2: clk: imx: clk-audiomix: fix runtime PM
+    - clk: imx: clk-audiomix: Add SAI PLL frequencies
+    - clk: imx: clk-audiomix: fix PDM clocks
+    - MLK-24307-1 clk: imx: clk-audiomix: enable set parent rate for
+      IMX8MP_CLK_AUDIOMIX_PDM_SEL
+    - ASoC: fsl_sai: Add new added registers and new bit definition
+    - ASoC: fsl-asoc-card: Defer probe when fail to find codec device
+    - clk: imx: Remove the audio ipg clock from imx8mp
+    - MLK-16290 drm: Add drm_of_component_probe_with_match() helper
+    - drm/fourcc: add a 10bits fully packed variant of NV12
+    - drm/imx: Revert a patch which merges imx-drm-core and ipuv3-crtc in one
+      module
+    - drm/imx: Extract IPUv3 specific KMS functions to ipuv3-kms.c (part 1)
+    - drm/imx: Add DPU KMS support (part 2)
+    - MLK-22171 drm/imx: Avoid leaking dangling pointer dev->driver_data to PM ops
+    - MLK-18535-6 drm/imx: core: add LCDIF support
+    - gpu: imx: Add dpu common driver support
+    - drm/imx: Add DPU KMS support (part 1)
+    - MLK-21876-5 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-6 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-7 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-8 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-9 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-10 gpu: drm: dpu: fix headfile reference issue (part 1)
+    - gpu: imx: dpu: framegen: Use bypass clock when display encoder type is TMDS
+    - drm/imx: dpu: crtc: Specify encoder type for framegen_cfg_videomode()
+    - gpu: imx: dpu: framegen: add disp_lpcg clock
+    - MLK-15321-1 gpu: imx: dpu: Add dpu blit engine device
+    - gpu: imx: dpu: fetchunit: Add helper for TKT343664 to fixup burst size
+    - gpu: imx: dpu: fetchunit: Add helper for TKT339017 to fixup stride
+    - gpu: imx: dpu: fetchunit: Use TKT343664's fixup for ->set_burstlength()
+    - gpu: imx: dpu: fetchunit: Use TKT343664&TKT339017's fixups for
+      ->set_baseaddress()
+    - gpu: imx: dpu: fetchunit: Use TKT343664&TKT339017's fixups for
+      ->set_src_stride()
+    - gpu: imx: dpu: fetchunit: Add DPR support
+    - gpu: imx: dpu: Access regs in display engine units wo holding mutex
+    - drm/imx: dpu: crtc: Evade the first dumb frame for DPR/PRG errata
+    - drm/imx: dpu: kms: Add prefetch engine support
+    - drm/imx: dpu: kms: Return properly in case we fail to get plane state to
+      check
+    - drm/imx: dpu: kms: Ensure array idx k >= 0 before accessing sources[]
+    - drm/imx: dpu: crtc: Send vblank event after drm_crtc_vblank_off() in
+      ->atomic_disable()
+    - drm/imx: dpu: crtc: Do not send out bogus vblank event in ->atomic_disable()
+    - drm/imx: dpu: crtc: Remove WARN_ON(!crtc->state->event)
+    - drm/imx: dpu: crtc: Precisely send vbland event if CRTC is active
+    - gpu: imx: dpu: framegen: Add helpers to get/clear sec chan status
+    - drm/imx: dpu: crtc: Warn on FrameGen sec chan empty FIFO read request
+    - drm/imx: dpu: crtc: Wait for FrameGen secondary syncup in ->atomic_enable()
+    - drm/imx: dpu: kms: Support full screen CRTC background
+    - gpu: imx: dpu: Add helpers to peek at auxiliary display submodules
+    - gpu: imx: dpu: common: Add di_grp_id in display client pdev's data
+    - gpu: imx: dpu: common: Introduce master_stream_id in struct dpu_data
+    - gpu: imx: dpu: common: Add helper dpu_get_master_stream_id() support
+    - gpu: imx: dpu: framegen: Add framegen_is_master/slave() helper support
+    - gpu: imx: dpu: extdst: Add extdst_is_master() helper support
+    - gpu: imx: dpu: tcon: Add tcon_is_master/slave() helpers support
+    - gpu: imx: dpu: sc misc: Add helper dpu_pxlink_set_dc_sync_mode() support
+    - gpu: imx: dpu: framegen: Add side-by-side support
+    - gpu: imx: tcon: Add side-by-side support
+    - drm/imx: dpu: crtc: Set crtc group id
+    - drm/imx: dpu: crtc: Peek auxiliary CRTC resources
+    - gpu: imx: dpu: Add pixel combiner support
+    - gpu: imx: dpu: common: Set master stream id to be 1 for i.MX8QM DPU
+    - gpu: imx: dpu: common: Add store9 support for sync mode fixup
+    - gpu: imx: dpu: common: Provide store9 to client pdev via pdata
+    - gpu: imx: dpu: framegen: Add framegen_syncmode_fixup() helper
+    - gpu: imx: dpu: extdst: Add extdst_pixengcfg_syncmode_master() helper
+    - drm/imx: dpu: kms: Add pixel combiner support
+    - drm/imx: dpu: kms: Support proper default blend mode
+    - drm/imx: dpu: plane: Improve bailout path of dpu_plane_create()
+    - drm/imx: dpu: plane: Support full zpos range for planes
+    - drm/imx: dpu: plane: Support alpha in pixel for overlay planes
+    - drm/imx: dpu: plane: Support multiple pixel blend modes
+    - drm/imx: dpu: plane: Add color properties support
+    - gpu: imx: dpu: disengcfg: Do HW initialization in dpu_dec_init()
+    - gpu: imx: dpu: framegen: Cache encoder_type in struct dpu_framegen
+    - gpu: imx: dpu: common: Add flag has_dual_ldb in struct dpu_data
+    - gpu: imx: framegen: Don't enable/disable pixlnk when driving special encoder
+    - gpu: imx: dpu: sc misc: Rename dpu_sc_misc_init() to
+      dpu_sc_misc_get_handle()
+    - gpu: imx: dpu: sc misc: Rename dpu_pxlink_init() to dpu_sc_misc_init()
+    - LF-73 gpu: imx: dpu: sc misc: Initialze KACHUNK_CNT as needed by blit engine
+    - gpu: imx: dpu: common: Initialize SCU misc settings in dpu_resume()
+    - MLK-21378-1 gpu: imx: Add imx8_prg support
+    - MLK-21378-2 gpu: imx: Add imx8_dprc support
+    - gpu: imx: Add imx8 pixel combiner support
+    - drm/imx: ldb: Add i.MX8qm LDB support
+    - drm/imx: ldb: Add i.MX8qxp LDB support
+    - MLK-21876-23 drm/imx: ldb: fix incorrect color displayed for mx8qxp
+    - drm/imx: ldb: Add system power management support
+    - drm/imx: ldb: Add dual channel mode support for i.MX8QXP
+    - drm/imx: Extract IPUv3 specific KMS functions to ipuv3-kms.c (part 2)
+    - drm/imx: ipuv3-crtc: Rename some IPUv3 specific functions
+    - MLK-18535-3 gpu: imx: add LCDIF core driver
+    - MLK-18535-5 drm/imx: add LCDIF DRM/KMS driver
+    - gpu: imx: lcdif: break Kconfig recursive dependency
+    - MLK-18535-10 drm/imx: lcdif: limit the maximum resolution to '1920x1080'
+    - MLK-18560 drm/imx: lcdif: refine bus format sanity check for plane
+    - MLK-18605-14 drm/imx: lcdif: adjust 'max_height' for '1080x1920' mode
+    - MLK-19017-2 gpu: imx: add DISPMIX power domain support for LCDIF
+    - MLK-19017-3 gpu: imx: add system pm support for LCDIF
+    - MLK-19017-4 gpu: imx: lcdif: add rpm status check for suspend/resume
+    - MLK-19083 drm/imx: lcdif: remove untrue condition for pixel format set
+    - MLK-19112 gpu: imx: lcdif: change 'rpm_suspended' to be atomic counter
+    - MLK-19152-1 gpu: imx: lcdif: realize fb horizontal crop via Pigeon Mode
+    - MLK-19152-2 drm/imx: lcdif: force 'mode_changed' when fb width changed
+    - MLK-19152-3 drm/imx: lcdif: add horizontal crop support to plane update
+    - MLK-19199 drm/imx: lcdif: replace FB width usage for cropping
+    - MLK-19158-2 drm/imx: lcdif: improve output bus format config
+    - MLK-19158-3 gpu: imx: lcdif: fix output order for 16bpp BGR formats
+    - MLK-19158-4 drm/imx: lcdif: remove bus format check from PLANE's check
+    - MLK-19158-5 drm/imx: lcdif: add bus format check to CRTC's check
+    - MLK-19318 drm/imx: lcdif: avoid log print when no device attached
+    - MLK-19819-1 drm/imx: lcdif: bypass atomic check when CRTC will be disabled
+    - MLK-19819-2 Revert "MLK-19318 drm/imx: lcdif: avoid log print when no device
+      attached"
+    - MLK-20337 drm/imx: lcdif: block 'active CRTC with no plane' commit
+    - MLK-22158 drm/imx: lcdif: force 'mode_changed' for fb pix fmt change
+    - MLK-21876-10 gpu: drm: lcdif: fix headfile reference issue
+    - drm/imx: lcdif: change DISPMIX reset for IMX8MN
+    - gpu: imx: lcdif: fix build warnings if CONFIG_PM_SLEEP off
+    - drm/imx: Replace reset flow for LCDIF
+    - gpu: imx: lcdif: add imx8mn compatible support
+    - drm/bridge: Add ITE IT6263 LVDS to HDMI transmitter support
+    - MLK-18535-7 drm/bridge: sec-dsim: add bridge driver support
+    - MLK-19081 drm/bridge: sec-dsim: correct args of 'drm_bridge_attach' call
+    - MLK-18605-1 drm/bridge: sec-dsim: add cleanup when detach dsi client
+    - MLK-18605-2 drm/bridge: sec-dsim: allow same panel can be re-attached
+    - MLK-18605-3 drm/bridge: sec-dsim: refuse unknown dsi device attach
+    - MLK-18605-4 drm/bridge: sec-dsim: refine data lanes stop state check
+    - MLK-18605-5 drm/bridge: sec-dsim: correct 'DSIM_FIFOCTRL' offset
+    - MLK-18605-6 drm/bridge: sec-dsim: add fifo pointers initialization
+    - MLK-18605-7 drm/bridge: sec-dsim: correct a register macro misspelt
+    - MLK-18605-8 drm/bridge: sec-dsim: add non-continuous clock support
+    - MLK-18605-9 drm/bridge: sec-dsim: increase timeout values for BTA and LPRX
+    - MLK-18605-10 drm/bridge: sec-dsim: complete mipi panel support
+    - MLK-19017-5 drm/bridge: sec-dsim: add DISPMIX power domain support
+    - MLK-19082 drm/bridge: sec-dsim: wait 'ph_tx_done' for long packet send
+    - MLK-19252-1 drm/bridge: sec-dsim: move PLL check to DSIM Encoder
+    - MLK-19252-3 drm/bridge: sec-dsim: workaround 3 data lanes case
+    - MLK-19252-4 drm/bridge: sec-dsim: improve HT configs
+    - MLK-19252-5 drm/bridge: sec-dsim: improve PLL PMS configs
+    - MLK-19252-6 drm/bridge: sec-dsim: improve DPHY TIMING configs
+    - MLK-19252-7 drm/bridge: sec-dsim: workaround for 720p@60Hz on 4 lanes
+    - MLK-19317-2 drm/bridge: sec-dsim: fine tune for '720p@60Hz' mode on 2 lanes
+    - MLK-19400-1 drm/bridge: sec-dsim: correct one fail branching
+    - MLK-21150-1 drm/bridge: sec-dsim: change uint64_t clk fields to uint32_t
+    - MLK-21150-2 drm/bridge: sec-dsim: refine hblank word count compute
+    - MLK-18535-13 dt-bindings: display: bridge: add sec-dsim bindings
+    - MLK-21150-3 drm/bridge: sec-dsim: add a new property 'pref-rate'
+    - MLK-21150-4 drm/bridge: sec-dsim: a general way to compute PLL PMS
+    - MLK-21252 drm/bridge: sec-dsim: resolve OVERFLOW_BEFORE_WIDEN warns
+    - MLK-21383 drm/bridge: sec-dsim: fix maybe-uninitialized build warnings
+    - MLK-21880-1 drm/bridge: sec-dsim: correct DSIM version register access
+    - MLK-21911 drm/bridge: sec-dsim: free 'pll_pms' to avoid memory leak
+    - MLK-21274-3 drm/bridge: sec-dsim: add defer probe support
+    - MLK-21274-2 drm/bridge: sec-dsim: remove bridge assign for encoder
+    - MLK-20687 drm/bridge: sec-dsim: correct LPM config for Long Packet
+    - MLK-20438 drm/bridge: sec-dsim: remove 'FORCEBTA' for packet send
+    - MLK-17275-2: drm/bridge: it6263: Add support for OF_DYNAMIC
+    - MLK-18535-8 drm/imx: sec_mipi_dsim-imx: add DSIM host driver
+    - drm/imx: add DISPMIX power domain support for SEC DSIM
+    - MLK-19017-6 drm/imx: add system pm support for SEC DSIM
+    - MLK-19017-7 drm/imx: sec-dsim_imx: add rpm status check for suspend/resume
+    - MLK-19158-1 drm/imx: sec-dsim_imx: add bus format check for ENCODER
+    - MLK-19537-3 drm/imx: sec-dsim_imx: remove dphy slave reset
+    - drm/imx: sec-dsim_imx: move PLL check to DSIM Encoder
+    - drm/imx: sec-dsim_imx: improve DPHY TIMING configs
+    - MLK-19400-2 drm/imx: sec-dsim_imx: alter 'rpm_suspended' to a counter
+    - drm/imx: sec-dsim_imx: a general way to compute PLL PMS
+    - drm/imx: sec-dsim_imx: correct DSIM version register access
+    - drm/imx: dsim: change DISPMIX reset for IMX8MN
+    - MLK-22304-1 drm/imx: dsim: fix build warnings if CONFIG_PM_SLEEP off
+    - drm/imx: Replace reset flow for DSIM
+    - drm/imx: sec-dsim_imx: add resets put for probe failure
+    - drm/imx: sec_dsim-imx: add imx8mn compatible support
+    - drm/bridge: Add NWL MIPI DSI host controller support
+    - drm/bridge: nwl-dsi: Add support for video_pll
+    - drm/bridge: nwl-dsi: Add support for clock-drop-level
+    - drm/bridge: nwl-dsi: fix nwl-dsi when used as module
+    - drm/bridge/nwl-dsi: add support for DCSS
+    - drm: bridge: add Cadence MHDP HDMI/DP API
+    - drm: bridge: Add Cadence DP/HDMI core driver
+    - gpu: drm: Add imx8qm/mq DP/HDMI driver
+    - drm: bridge: cadence: Add new api functions
+    - drm: bridge: cadence: Add mhdp audio driver
+    - drm: bridge: cadence: Add CEC driver for cdns mhdp hdmi
+    - drm: bridge: cadence: move struct imx_mhdp_device to drm/imx
+    - drm: imx: add imx8mq hdmi support
+    - drm: bridge: cadence: Add power_on to __cdns_dp_probe
+    - drm: ls1028a: Add DP driver support for LS1028A
+    - drm: bridge: cadence: Add support for periodically poll the connector
+    - drm: imx: hdmi: support arc function
+    - drm: bridge: cadence: Fix return value for set log addr
+    - drm: bridge: cdns dp: Remove link rate/lanes set by device tree
+    - drm: imx: mhdp: add dual mode support for imx8qm
+    - drm: bridge: cdns cec: fix LA failed set issue
+    - DRM: mhdp: HDMI: skip scdc write return check
+    - drm: mhdp: add mutex lock to mhdp register access function
+    - drm: mhdp: reset video mode after hdmi/dp cable plugin
+    - drm: bridge: cadence: hdmi: remove video mode limition
+    - drm/imx/hdp: add hdr10 metadata property
+    - drm/imx/hdp: add colorspace property
+    - drm/imx/hdp: force a mode set when colorspace is changed
+    - drm/imx/hdp: handle the various deep-color settings
+    - MLK-15321-2 gpu: imx: dpu: Add dpu blit engine driver
+    - MLK-15321-3 drm/imx: dpu: Add render feature support
+    - MLK-15321-4 drm/imx: core: Add bliteng as component of imx-drm
+    - MLK-17311 gpu: imx: dpu-blit: enable prefetch feature
+    - MGS-4061 gpu: imx: dpu-blit: fix kernel panic in pm test
+    - MGS-3940 gpu: imx: dpu-blit: fix first frame handler
+    - MGS-4051 gpu: imx: dpu-blit: fix suspend resume issue
+    - MGS-3940 gpu: imx: dpu-blit: fix dpr hang for smaller size
+    - MGS-4265 gpu: imx: dpu-blit: fix video hang with g2d compositor
+    - gpu: imx: dpu-blit: Do not initialize STORE9_STATIC register
+    - drm/imx: Add initial support for DCSS on iMX8MQ
+    - drm/imx/dcss: add busfreq support
+    - drm: imx: dcss: Fix for renaming reservation.h to dma-resv.h
+    - Revert "drm: imx: dcss: Fix for renaming reservation.h to dma-resv.h"
+    - Revert "drm/imx/dcss: add busfreq support"
+    - Revert "drm/imx: Add initial support for DCSS on iMX8MQ"
+    - drm/imx: Add initial support for DCSS on iMX8MQ
+    - drm/imx/dcss: use the external 27MHz phy clock
+    - drm/imx/dcss: add busfreq support
+    - drm/imx/dcss: add support for DEC400D
+    - drm/imx/dcss: add support vor video overlays
+    - drm/imx/dcss: remove reference to P010
+    - drm/imx/dcss: add WRSCL/RDSRC support
+    - drm/imx/dcss: add support for NV12_10LE40 format
+    - drm/imx/dcss: eliminate unnecessary formats from planes
+    - drm/imx/dcss: add color management properties to video planes
+    - drm/imx/dcss: change HDR10 pipes config handling
+    - drm/imx/dcss: add support for tiled formats on overlay planes
+    - drm/imx/dcss: fix crash in DTRC exit routine
+    - drm/imx/dcss: Release DTRC IRQs in case of failure
+    - drm/bridge/nwl-dsi: fix attach flow of downstream bridge
+    - drm: imx: mhdp: Adjustment core rate of DP TX CTRL for LS1028A
+    - LF-46 drm/imx: sec-dsim: use late suspend
+    - drm/imx/hdp: fix issue with non-SCDC HDMI sinks
+    - drm/bridge: nwl-dsi: Add support for component framework
+    - drm/bridge: nwl-dsi: Add support for 8QM and 8QXP
+    - drm/bridge: nwl-dsi: Fix find_panel_or_bridge
+    - gpu: imx: framegen: Use crtc_clock instead of mode clock
+    - drm/bridge: nwl-dsi Correct the DSI init sequence
+    - Revert "drm/imx/hdp: fix issue with non-SCDC HDMI sinks"
+    - drm: hdmi: imx8: fix wrong hdmi type with non-SCDC HDMI sinks
+    - LF-94: drm: hdmi: imx: Add hdmi phy video mode valid function
+    - LF-283 gpu: imx: dpu: common: Get irq count properly
+    - LF-296: drm: mhdp: build mhdp sub-modules into one driver module
+    - LF-282 drm/imx: dpu: Kconfig: Add prompt string for DRM_IMX_DPU
+    - LF-335 drm/bridge: sec-dsim: solve fallthrough build warnings
+    - LF-95-4 drm/bridge: nwl-dsi: Correct register offsets for tx_ulps and
+      pxl2dpi
+    - LF-95-5 drm/imx: imx-ldb: Correct control register offset for i.MX8QM/QXP
+      LDB
+    - drm/bridge: nwl-dsi: Fix phy_ref clock ordering
+    - MLK-21231 gpu: imx: dpu: framegen: Wait for 100ms at most for secondary
+      syncup
+    - LF-323-1: drm/bridge/cdns: move link training to bridge enable function
+    - LF-323-2: drm/bridge/cdns: enhance link training stability
+    - LF-407-1: drm/imx/dcss: fix compilation issues after rebase
+    - LF-407-2: drm/imx/dcss: fix module insertion hang
+    - LF-407-3: drm/imx/dcss: remove unnecessary sleep
+    - LF-424 gpu/imx: lcdif: fix typo for imx_lcdif_dt_ids
+    - LF-425-2 drm/bridge: sec-dsim: use 'attach-bridge' for bridge attach
+    - LF-568-1: drm: bridge: cdns: dp: change bridge_enable/disable name
+    - LF-568-2: drm: gpu: bridge: cdns: Add force mode set flag
+    - MLK-23234-4 gpu: imx: add LCDIFv3 core driver
+    - MLK-23234-6 drm/imx: add LCDIFv3 DRM/KMS driver
+    - MLK-23234-7 drm/imx: core: add LCDIFv3 support
+    - MLK-23234-8 drm/imx: sec-dsim: add imx8mp compatible
+    - MLK-23234-9 drm/imx: sec-dsim: bypass mediamix resets on imx8mp
+    - MLK-23245 gpu: imx: lcdifv3: correct panic thresholds calculation
+    - MLK-23248 gpu: imx: lcdifv3: correct panic enable register typo
+    - MLK-23250-02: drm: lcdifv3: Change frame size limit to 4096
+    - MLK-23250-04: lcdifv3: Add hdmimix lcdifv3 support
+    - MLK-23250-09: drm: imx: pavi: Add PAVI driver for iMX8MP HDMI
+    - MLK-23250-10: drm: imx: hdmi: Add iMX8MP hdmi driver
+    - MLK-23287-3: drm: imx: hdmi: Add iMX8MP hdmi gp audio driver
+    - MLK-23218 gpu: imx: lcdifv3: Change burst size to 256B
+    - LF-900: drm/imx/dcss: Fix kernel panic during suspend
+    - MLK-23252-3 gpu: imx: lcdifv3: Support client specific pdev id
+    - MLK-23252-4 gpu: imx: lcdifv3: Add compatible string for LDB's LCDIFv3
+    - MLK-23252-8 drm/imx: imx-ldb: Rename flag is_imx8 to is_imx8q
+    - MLK-23252-9 drm/imx: imx-ldb: Add i.MX8mp LDB support
+    - LF-794 gpu: cdn: imx8qm: Add firmware loading support
+    - LF-794 gpu: cdn: mhdp-common: Increase the check alive timeout
+    - MLK-23328: drm: bridge: hdmi: Fix no vendor infoframe after resume
+    - MLK-23102-1 drm/imx: dpu: kms: Remove fetchunit pin-off mechanism
+    - MLK-23102-2 gpu: imx: dpu: fetchunit: Remove pin-off operations
+    - MLK-23109 drm/imx: dpu: plane: Always enable DPRC when prefetch is needed
+    - MLK-23107-1 gpu: imx: imx8_dprc: Add helper dprc_disable_repeat_en()
+    - MLK-23107-2 drm/imx: dpu: kms: Disable DPRC repeat_en in ->atomic_flush()
+      where necessary
+    - MLK-23187-1 gpu: imx: dpu: framegen: Increase timeout again when waiting for
+      moving
+    - MLK-23187-2 drm/imx: dpu: crtc: Disable DPRC repeat_en in ->atomic_disable()
+    - MLK-23221: drm/bridge: nwl-dsi: Call panel enable early
+    - LF-841: drm/bridge: nwl-dsi: Fix mode_set
+    - LF-842-1: drm/bridge: nwl-dsi: Change mipi clocks re-parenting
+    - LF-555: drm: mhdp: Improve the AUX channel signal for DP port
+    - MLK-23425-1 gpu/imx: lcdifv3: enable frame clear
+    - MLK-23425-2 gpu/imx: lcdifv3: add dma disable
+    - MLK-23428 drm/imx: sec-dsim: add bound check in runtime suspend/resume
+    - MLK-23522: drm/imx: lcdifv3: remove unsupported formats
+    - MLK-23544: drm: gpu: dw_hdmi: check imx8mp hdmi phy support clk rate
+    - MLK-23538-1: drm: gpu: dw_imx: add CEC enable bit set
+    - LF-452: gpu: drm: bridge: hdmi: Add CEA mode check
+    - MLK-23576 gpu/imx: lcdifv3: add system sleep PM ops
+    - MLK-23545-1: drm: bridge: hdp: Remove force_mode_set flag when cable plugin
+    - MLK-23545-2: drm: imx: mhdp: weston8 UI recovery after cable plugout/in
+    - LF-1189-2 gpu: imx: dpu: tcon: Add MEDIA_BUS_FMT_RGB565_1X30_PADLO support
+    - LF-1189-3 gpu: imx: dpu: framegen: Add DPI encoder support
+    - LF-1189-5 drm/imx: Add LCDIF mux display support
+    - MLK-23767 gpu: imx: dpu: common: avoid deattach multiple power domain
+    - MLK-20486 drm/imx: ldb: Cleanup enc&conn in ->unbind() if necessary
+    - LF-1256-1 drm/imx: imx-ldb: Allocate imx_ldb in ->probe() instead of
+      ->bind()
+    - LF-1256-2 drm/imx: lcdif-mux-display: Allocate lmuxd in ->probe() instead of
+      ->bind()
+    - LF-1256-3 drm/imx: dpu: crtc: Allocate dpu_crtc in ->probe() instead of
+      ->bind()
+    - MLK-23781-1 drm/imx: lcdifv3: move 'lcdifv3_crtc' alloc to probe
+    - MLK-23781-2 drm/imx: lcdifv3: remove 'lcdifv3_plane_deinit()'
+    - MLK-23781-3 drm/imx: sec-dsim: move 'dsim_dev' alloc to probe
+    - MLK-23781-4 drm/imx: sec-dsim: initialize 'rpm_suspended' in probe
+    - MLK-23694-6 drm/imx: ldb: remove PLL clock rate set for i.MX8M
+    - MLK-23694-9 drm/imx: sec-dsim: put resets in unbind() to fix memory leak
+    - MLK-23694-10 drm/imx: sec-dsim: NULL panel ptr when host detached
+    - MLK-23694-11 drm/imx: sec-dsim: allow bind for no display attached
+    - MLK-23817 gpu: imx: dpu: common: Enable power for dpu irq chip at probe
+      stage
+    - MLK-23642-1: drm: bridge: cadence: support HBR and 6 channel
+    - MLK-23885 drm/imx: ldb: Add mode fixup for i.MX8mp LDB in ->atomic_check()
+    - MLK-23903 drm/imx: imx-ldb: Disable both two channels for split mode in
+      enc->disable()
+    - MLK-23904 drm/imx: imx-ldb: Cache split mode status in struct imx_ldb
+    - MLK-23905-1 drm/bridge: Add fsl imx ldb support
+    - MLK-23905-2 drm/imx: imx-ldb: Use platform specific encoder drivers
+    - MLK-23942-6 drm/bridge: fsl-imx-ldb: Add runtime PM support
+    - MLK-23942-7 drm/imx: imx8mp-ldb: Add runtime PM support
+    - MLK-23942-8 drm/imx: imx8qm-ldb: Add runtime PM support
+    - MLK-23942-9 drm/imx: imx8qxp-ldb: Add runtime PM support
+    - LF-621: drm/imx/dcss: add back disabled formats
+    - MLK-24002-1 drm/imx: lcdifv3: enable shadow load for plane update
+    - MLK-24002-2 drm/imx: lcdifv3: put controller enable to CRTC
+    - MLK-24040: drm: imx: pavi: Combine pai and pvi powerup/down function
+    - MLK-24045 drm/imx: sec-dsim: let host unregister later than device
+    - MLK-24065-1: drm: bridge: cadence: fix dp_aux_transfer write return value
+    - MLK-24065-2: drm: bridge: cadence: print error when clock recovery fails
+    - MLK-24065-3: drm: bridge: cadence: use the lane mapping from dt when setting
+      host capabilities
+    - MLK-24072: drm: imx8: correct mhdp files copyright
+    - MLK-24076-2: drm: imx: hdmi: Add copyright
+    - LF-1043: drm/bridge: nwl-dsi: Assert mipi resets before enable
+    - LF-811-1: drm/bridge: Add driver for legacy Freescale Seiko 43WVFIG adapter
+    - MLK-24168 drm/imx: dpu: kms: Avoid -EDEADLK warning when getting crtc_state
+      in ->atomic_check
+    - MLK-24190: drm: imx: dw_hdmi: Add resume function
+    - MLK-24146 drm: dw_hdmi: cec: Add cec suspend/resume function
+    - LF-1444 gpu: imx: dpu: common: Check of_match_device() return value in
+      dpu_probe()
+    - LF-1442-1 drm/imx: sec-dsim: avoid dereference NULL ptr of of_id
+    - LF-1442-2 drm/imx: lcdif: avoid dereference NULL ptr of of_id
+    - LF-1442-3 drm/imx: lcdifv3: avoid dereference NULL ptr of of_id
+    - MLK-24293 gpu/imx: lcdifv3: use late system sleep pm ops
+    - LF-1510: gpu: drm: lcdifv3: null return value check for of_id
+    - LF-1510-2: gpu: drm: dw_hdmi: null return value check
+    - LF-1511: drm: cdn-cec: replace ++i with i++ in loop
+    - LF-1512: drm: cdns mhdp: avoid potentially overflowing
+    - LF-1514: drm: cdns-mhdp: check link rate index
+    - LF-1516: drm: cdns-mhdp: fix error check variable name for clk_pxl_link
+    - MLK-24335: drm: bridge: cdns: hdmi support work in DVI mode
+    - LF-1555: drm: bridge: nwl-dsi: Fix null-pointer dereference
+    - LF-1556: drm/bridge: nwl-dsi: Fix potential null-pointer dereference
+    - MLK-21509-1 gpu: imx: dpu: common: Add signature unit support
+    - MLK-21509-2 gpu: imx: dpu: disengcfg: Add signature select support
+    - MLK-21509-3 drm/imx: dpu: kms: Add auto control mode debugfs CRC support
+    - MLK-21509-4 drm/imx: dpu: crc: Add user-configurable CRC region(ROI) support
+    - LF-1750 gpu: imx: imx8_dprc: Get scu ipc handle in ->probe()
+    - LF-1485: drm: bridge: dw_hdmi: null pointer check
+    - LF-1526: drm/imx/dcss: Fix Coverity issue
+    - MLK-24427-1: drm: gpu: imx: Move cdns driver files to mhdp folder
+    - MLK-24427-2: drm: bridge: cdns: Move DP API functions to separate file
+    - MLK-24427-3: drm: mhdp: Backporting code change from linux-nxp
+    - LF-2011 gpu: imx: imx8_dprc: Check return value of SCU func call in
+      dprc_dpu_gpr_configure()
+    - LF-2010 gpu: imx: imx8_dprc: Check return value of SCU func call in
+      dprc_prg_sel_configure()
+    - MLK-24519 gpu: imx: Increase maximum single pipe width to 2560
+    - MLK-24520: drm: bridge: cdns: increase maximum width from 4096 to 5120.
+    - MLK-24521: drm: bridge: hdmi: Prevent the driver from rejecting VIC 0 modes
+    - MLK-24522: drm/imx: dpu: Increase iMX DRM CTRC size to 5120 x 4096
+    - drm: bridge: dw-hdmi: Report connector status using callback
+    - MLK-24611-1: drm: bridge: synopsys: Add callback function for plug/unplug
+      event
+    - MLK-24611-2: drm: bridge: cdns: Add callback function for plug/unplug event
+    - MLK-24601: drm: imx: mhdp: DP PHY support 1/2 lanes mode
+    - MLK-24608: drm/imx/dcss: disallow certain modes
+    - MLK-24770: drm: mhdp: Sync DPTX capability with Cadence sample code
+    - MLK-24900-1 drm/imx: lcdifv3: Use dts to config LCDIF panic threshold
+    - MLK-24916-1: drm: bridge: synopsys: fix eld length issue
+    - MLK-24916-3: drm: bridge: synopsys: Add HBR support for gp audio
+    - MLK-24998-4 drm/bridge: sec-dsim: use 12MHz for default PHY REF clock
+    - MLK-24998-7 drm/imx: lcdifv3: implement mode_valid() for CRTC
+    - MLK-25012 drm/imx: lcdif: move 'lcdif_crtc' alloc to probe()
+    - MLK-24911-3: drm: imx: sec-dsim: Adjust the LDO trim value
+    - MLK-25101: drm: imx: dw_hdmi: Keep hdmi phy in poweron status
+    - MLK-25228: drm: dw-hdmi: Pass CTS 7-30 Audio InfoFrame
+    - MLK-25156: drm: dw_hdmi: reset hdmi phy power
+    - MLK-24491: drm: bridge: cdns: Add support of i2c-over-aux
+    - MLK-25340-1: drm: imx: hdp: Added power off function
+    - MLK-25340-2: drm: imx: mhdp: Adding power off to driver remove
+    - drm/imx: ipuv3-kms: Move to a new ipuv3 folder
+    - MLK-21876-10 gpu: drm: ipu: fix headfile reference issue (part2)
+    - Revert "drm/imx: Use simple encoder"
+    - Revert "drm/imx: pd: Use bus format/flags provided by the bridge when
+      available"
+    - drm/fourcc: add modifier for vivante compressed tiled layout
+    - MLK-15110-1 drm/fourcc: Add Amphion tiled layout format modifier
+    - MLK-17368-1 drm: add fourcc codes for Verisilicon tiled formats
+    - dt-bindings: firmware: imx: add scu clock type IDs
+    - MLK-23329-01 dt-bindings: imx: update sc ctrl interfaces
+    - media: bus format: Add RGB888_1X30_PADLO support
+    - media: bus format: Add RGB666_1X30_PADLO support
+    - media: bus format: Add RGB101010_1X7X5_SPWG/JEIDA support
+    - LF-1189-1 media: bus format: Add RGB565_1X30_PADLO support
+    - reset: Add driver for dispmix reset
+    - reset: imx8m: Correct clock name for dispmix driver
+    - LF-218 reset: dispmix: remove dev when init mmio regmap
+    - MLK-23250-07: clk: imx: add imx8mp hdmimix clk driver
+    - MLK-23538-2: clk: hdmimix: set cec clock parent to 32k_clk
+    - MLK-23356: reset: Remove noc reset bit from hdmimix reset
+    - MLK-23250-08: phy: Add samsung hdmi phy driver
+    - MLK-23542: phy: support more pixel rates
+    - MLK-24041: phy: fsl: sync code change with LF branch
+    - MLK-24397 phy: samsung hdmi: support more clock rate
+    - MLK-23252-6 phy: freescale: Add i.MX8mp LVDS PHY support
+    - MLK-23616-3 phy: fsl-imx8mp-lvds: Enable/disable APB clock when necessary
+    - MLK-23942-3 phy: freescale: phy-fsl-imx8mp-lvds: Add runtime PM support
+    - irq: imx: irqsteer: add multi-pd support for irqsteer
+    - MLK-23250-05: irqchip: imx-irqsteer: Add reset function
+    - MLK-17290-01 irqchip: imx-irqsteer: add runtime pm support
+    - MLK-23750-1: irqchip: imx: fix ISI_0, CSI_0 can't enter lp when suspend
+    - MA-17912 irqchip: irqsteer: Allow IMX_IRQSTEER to be loadable as module
+    - MLK-23252-1 clk: imx8mp: Add DISP2 pixel clock
+    - MLK-23252-2 clk: imx8mp: Add LDB root clock
+    - MGS-4530-1 add 6.2.4.p4 gpu driver for L4.19
+    - MGS-4530-2 disable busfreq-imx to fix L4.19 dash build
+    - MGS-4530-3 [#imx-1314] include dma-direct.h to fix gpu build for L4.19
+    - gpu: fix access_ok build error
+    - gpu: fix do_gettimeofday build error
+    - gpu: fix totalram_pages build error
+    - gpu: more build fix
+    - gpu: imx: fix gpu boot hang by defer driver register time
+    - MLK-21876-11 gpu: fix build for next-20190524 upgrade
+    - gpu: Update SCU API and change the method to distinguish 8QM/8QXP from other
+      boards
+    - gpu:Integrate 6.4.0 kernel driver for Linux L5.x
+    - gpu: fix build break due to dma headfile include
+    - gpu:Remove dma.h to avoid Linux 5.x build problem
+    - gpu-viv: Fix writecombine/wc build error
+    - MGS-5252 Integrate Vivante 6.4.0.p1 GPU driver
+    - MGS-5176 [#imx-1744] Coverity issue of 6.4.0.p1.
+    - MGS-5176-2 [#imx-1744] Need free the pages if malloc memory failed
+    - MGS-4376 [#imx-1238] fix low performance with CMA allocator
+    - MGS-5283 [#imx-1238] fix GPU memory without CMA
+    - MGS-5283 [#imx-1784] fix GPU AXI bus error
+    - MGS-5284 [#imx-1786] fix GPU panic with vm_mmap failure
+    - MGS-5261 [#imx-1771] fix dummy draw hang for 8MM GPU
+    - QSDK-5959 [#ccc] update the platform driver to support layerscape soc
+    - MGS-5307 gpu: integrate 6.4.0.p2 driver
+    - MGS-5245 [#imx-1755] [8MN_EVK] VTK: fix the gpu dump when enable vProfile
+    - LF-84 [#imx-1834] remove gpu coherent_dma_mask setting
+    - Add Malone decoder and windsor encoder for QXP/QM
+    - Add directory driver/mxc and related scripts
+    - arm64: vpu: m850d: hantro
+    - arm64: vpu: m850d: hantro: mxc config
+    - vpu: hantro: fix build failure
+    - vpu: malone: fix build failure
+    - vpu: windsor: fix build failure
+    - vpu: windsor: remove deprecated using of s_crop/g_crop
+    - vpu: windsor: remove deprecated using of VB2_BUF_STATE_PREPARED
+    - vpu: windsor: fix build error
+    - vpu: malone decoder: porting from 4.19 rc3 release
+    - vpu: malone decoder: porting from 4.19 rc3 release
+    - vpu: windsor encoder: porting from 4.19 rc3 release
+    - vpu: windsor encoder: porting from 4.19 rc3 release
+    - MLK-21876-22 vpu: build for ARM64 only
+    - MLK-21985-2 vpu: malone: b0: fix build for next 20190607 upgrade
+    - MLK-21985-3 vpu: windsor: b0: fix build for next 20190607 upgrade
+    - media: vpu_malone: fix boot warning by intialize device_caps
+    - media: vpu_windsor: fix boot warning by intialize device_caps
+    - vpu: hantro: fix build error when enabling 'CONFIG_DEVICE_THERMAL'
+    - vpu: malone: encoder: add mu2 power domain for imx8qm
+    - vpu: hantro: add decoder for imx845
+    - vpu: hantro: add encoder for imx845 h1
+    - vpu: imx6: add decoder/encoder
+    - vpu: imx6: add decoder/encoder
+    - vpu: hantro_845_h1: fix compat_ptr building issue
+    - vpu: windsor encoder: add vpuenc2 power domain for imx8qm
+    - vpu: windsor encoder: enable mailbox and unify code
+    - vpu: malone decoder: enable mailbox and unify code
+    - vpu: windor encoder: malone decoder: fix kernel panic caused by MU_Init
+    - MLK-22913 vpu: windsor malone: fix kernel panic caused by directly read MU
+    - MLK-22920 vpu: windsor encoder: change the writeable flag synchronously
+    - vpu: hantro: Fix kconfig to depend on ARCH_MXC instead
+    - MLK-22951 mxc: vpu_malone: add missing semicolon
+    - MLK-22952 mxc: vpu_windsor: add missing semicolon
+    - vpu: hantro: Fix kconfig to depend on ARCH_MXC instead
+    - MLK-22945 mxc vpu_malone: disable decode ctx before release it.
+    - MLK-22963 mxc vpu_windsor: fix call vzalloc during spinlock
+    - MLK-22991 mxc: vpu_malone vpu_windsor: check is vpu poweroff when suspend
+    - MLK-22999 mxc: vpu_malone: release debugfs after open to avoid memory leak
+    - LF-80:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:clear eos flag when output streamoff
+    - MLK-10600-1: mxc: sim: Add SIM IP driver support on the i.MX7d-12x12-arm2
+      platform.
+    - MLK-10600-2: mxc: sim: add an option to enable SIM driver build
+    - MLK-10913-1: mxc: sim: Add the SIM driver support for i.MX6UL-EVK platform.
+    - MLK-10959: mxc: sim: Disable cwt timer when tx and enable in rx.
+    - MLK-10968: mxc: sim: Add the init delay detection function in the driver.
+    - MLK-10976: mxc: sim: Using timer interrupt to implement precise timing.
+    - MLK-11354 sim: imx: relapce devm_request_and_ioremap with
+      devm_ioremap_resource
+    - MLK-11777 sim: imx: remove useless code
+    - MLK-11472 sim: imx: set sim1 IOMUX to default state
+    - MLK-14642 imx: sim: fix segment fault caused by user address access
+    - MLK-13473: imx_sim: fix module device table name
+    - MLK-17319-1 imx8: sim: add driver to support EMVSIM module
+    - MLK-17416 imx8: sim: add usleep_range() before reading SPDP Bit
+    - MLK-18485 emvsim: enable CWT for ATR
+    - MLK-22210 mxc: emvsim: enable ICM mode
+    - MLK-22211 mxc: emvsim: should not clear PEF/FEF flag in irq handler
+    - MLK-22213 mxc: emvsim: read TS character before updating value of GPCNT1
+    - MLK-22214 mxc: emvsim: clean up the code in ATR stage
+    - MLK-22215 mxc: emvsim: correct irq mask and clear irq status before
+      receiving
+    - MLK-22216 mxc: emvsim: last character need be transmitted separately with no
+      guard time
+    - MLK-22217 mxc: emvsim: add value adjustment for cwt/bwt timer
+    - sim: emvsim: add multi power domain support
+    - MLK-11442 mlb: imx: add mlb support on imx_4.1.y
+    - imx: mlb: Replace ACCESS_ONCE with READ_ONCE
+    - MLK-11910 mxc: mlb: fix irq unsigned_compare issue
+    - MLK-12185 mlb: imx: fix the operation for mlb status in mlb_isr
+    - MLK-15987 imx: mlb: use dma pool when iram doesn't exist
+    - MLK-15988 imx: mlb: remove clk for mlb 6 pin mode
+    - MLK-15990 imx: mlb: change mlb clock name
+    - MLK-15995 imx: mlb: only use irq_ahb1 for imx6
+    - MLK-15999 imx: mlb: fix build warnings
+    - MLK-15992 imx: mlb: add ipg & hclk clocks for imx8 mlb
+    - MLK-22071-1 mxc: mlb: Fix clock config for imx8qxp platform
+    - mxc: mlb: fix interrupt rw lock dead lock
+    - mxc mlb: Allow compilation on imx8
+    - MLK-23000-1 mxc: mlb: fix kernel dump when use gen_pool_dma_alloc
+    - mxc: IPU3: Forward IPUv3 common driver from imx_4.19.y kernel
+    - mxc: IPU3: Fix not including uapi/linux/sched/types.h
+    - MLK-22399 mxc IPUv3: cpmem: Get 0 u/v_offset in __ipu_ch_offset_calc() for
+      some pfmts
+    - mxc: hdmi-cec: Add imx6 hdmi cec driver
+    - media: mipi csi: add IPU CSI driver
+    - MGS-5372 [#imx-1708] Fix the VX/CL apps hang for 865 GPU/VIP
+    - LF-365 [8QM_MEK/8QXP_MEK]mxc:vpu_malone: need skip tsm when skip not decoded
+      frame
+    - MGS-5326 [#imx-1803] 0058-align-gc_feature_database
+    - LF-503:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:check space of cmd buffer
+    - LF-521: mxc: hantro: [All]arch64 kernel default build using imx_v8_defconfig
+      has many Warnings.100%
+    - LF-561: [8QM_MEK/8QXP_MEK]mxc:vpu_malone:reinit completion before send
+      command
+    - MGS-5226 [#imx-1746] add REG_DisableVIP bit 1
+    - LF-628:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:export frame threshold of frame mode
+    - LF-629: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: donot set end_flag if scode type
+      is BUFFFLUSH in low-latency mode
+    - MGS-5064 [#imx-1868] 0003-CL244120-Prepare-for-NXP-backwards-compatible-
+      requir
+    - MGS-5064 [#imx-1868] 0006-CL244297-align-gc_feature_database
+    - MGS-5064 [#imx-1868] 0010-BUG25711-CL244484-Android-CTS-some-cases-fail-in-
+      gle
+    - MA-16168 [#imx-1903] Fix GPU driver build error and not work issue on 5.4
+      kernel
+    - LF-408-2 [#imx-1873] disable 1M page for dynamic mapping
+    - MGS-5458 [#imx-1708] fix GPU/VIP coreIndex issue
+    - LF-688:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:export fw log via debugfs
+    - LF-690:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:extends the range of frame rate
+      from integers to real numbers
+    - LF-711:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:stream may hang due to the event msg
+      hasn't process in time
+    - MLK-23211-1: arm64: imx8mp: vpu: add vc8000e driver
+    - MA-16211: imx8mp: vpu: Implement hantro vc8000e ioctl32
+    - LF-765 [8QM_MEK/8QXP_MEK]mxc:vpu_malone: add FRAME_SKIP status to record
+      skip-frame
+    - LF-765-2 [8QM_MEK/8QXP_MEK]mxc: vpu_malone: check buffer status before add
+      buffer to queue
+    - MGS-5472 [#ccc] fix gpu resolve alignment issue
+    - LF-165 [#imx-1870] gputop counter test failed
+    - LF-165 [#imx-1870] Fix the error when converting pointer to int for 32 bit
+      system
+    - MGS-5341 [#imx-1870] Fix the uninitialized variable in GPU driver.
+    - MGS-5485 [#imx-1870] fix memory database error
+    - MGS-5485-2 [#imx-1870] fix system out of memory in gpu database
+    - MLK-23263 mxc: vpu_malone: correct vpu decoder used bits of fuse
+    - LF-840-1:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-2:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-3:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-4:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-5:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-6:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-7:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-984:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:report error event when the
+      resolution beyond limit
+    - LF-994 mxc: vpu_malone vpu_windsor: cope with upstream y2038 changes
+    - MLK-23375: arm64: imx8mp: vc8000e: remove legacy ioremap_nocache interface
+    - MGS-5464 [#imx-1915] 0014-CL249917-DEC400-P010_LSB-I010-format
+    - MLK-23377: arm64: imx8mp: vc8000e: fix system hang in suspend/resume
+      operation
+    - MGS-5497-2 [#ccc] fix 6QP 2D MMU exception issue
+    - MA-16364 [#imx-1927] Set 4GB address limit flag on 8mm/8mn as 8mq
+    - MGS-5490 [#imx-1868] 0009-CL247796-Add-cores-in-order-3D-VIP-cores-2D-core-
+      VG-
+    - MGS-5534 [#imx-1960] Add copyright in gc_feature_database.h
+    - MGS-5536-1 [#imx-1962] add memory-region property support
+    - MGS-5536-2 [#imx-1962] fix MMU shift mapping for 4GB truncated mtlb
+    - MLK-23394-2: XUVI/PPM: driver initial version.
+    - MLK-23394-5: XUVI/PPM: add build for XUVI/PPM.
+    - LF-1090:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:synchronize the allocate and free
+      mbi buffer
+    - MGS-5453 [#imx-1895] update gc_feature_database.h file
+    - MLK-23394 XUVI/PPM: decrease the usage count when it isn't in using.
+    - MLK-23377-2: arm64: imx8mp: vc8000e: fix system hang in suspend/resume
+      operation
+    - MGS-5554 [#imx-1868] update gc_feature_database.h and gc_hal_enum.h file
+    - MLK-23394 XUVI/PPM: fix coverity issues
+    - MLK-23220:mxc:vpu_malone:kfifo_alloc failure in VPU driver when memory
+      fragment
+    - LF-1077:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:compatible with ffmpeg h264_v4l2m2m
+      decoder
+    - LF-1078:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:compatible with ffmpeg
+      h264_v4l2m2m encoder
+    - LF-1078-2:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:compatible with ffmpeg
+      h264_v4l2m2m encoder
+    - LF-1180:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:v4l2 buffer of output stream use
+      virtual memory instead of dma
+    - LF-1181 mxc: vpu_malone: Not send res_change event until dst done_list is
+      empty
+    - MGS-5581 [#imx-1868] integrate vsi patch base on 6.4.0.p2 from 20200306 to
+      20200320
+    - LF-1208:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:instance may hang caused by stop
+      cmd is not sent in some case
+    - LF-1210:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: add LVL_FLOW debug log level to
+      help trace some key information
+    - LF-1091: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: request reasonable buffer size
+      for DCP instead of worst case
+    - LF-1212:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:fix issue in timestamp manager not
+      correctly handle buffers with same timestamp
+    - LF-1211 mxc: vpu_malone: v4l2_poll directly return if firmware already
+      finished
+    - MGS-5607 [#imx-1868] integrate vsi patch base on 6.4.0.p2 from 20200320 to
+      20200408
+    - MLK-23793-1 mxc: emvsim: fix pm issue
+    - MLK-23793-2 mxc: emvsim: add runtime pm support
+    - LF-1220 mxc: vpu_malone: manage mailbox according to runtime PM
+    - LF-1220-2 mxc: vpu_windsor manage mailbox according to runtime PM
+    - MGS-5612 [#IMX-2018] fix weston build error
+    - LF-1236 mxc: vpu_malone: roundup allocated kfifo size to power-of-two
+    - MLK-23394-1 XUVI/PPM: fix coverity issues
+    - MLK-23791 XUVI/PPM: MU: enable runtime PM for MU3
+    - LF-1225: [8QM_MEK/8QXP_MEK]mxc:vpu_malone:fix hevc incorrect dcp buffer size
+    - mxc: gpu: remove use of ioremap_nocache()
+    - mxc: gpu-viv: Remove dma-buf map/unmap hooks
+    - mxc: gpu: cope with upstream y2038 changes
+    - MGS-5616-1 [#ccc] Update some Linux APIs for 5.5 kernel
+    - MGS-5616-2 [#ccc] Remove dma-buf map/unmap hooks for 5.5 kernel
+    - LF-1278:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: implement ctrl to set h264 aspect
+      ratio
+    - MLK-23723: arm64: imx8mp: vpu: fix g1/g2 timeout during suspend/resume
+    - MGS-5596 [#imx-2035] [1/2] PM QoS feature development
+    - MGS-5551 [#imx-1868] Update GPU database
+    - MGS-5653 [#imx-2041] modify clock prepare/unprepare along with power on/off
+    - MA-17115 mxc: vpu_malone: send error event when firmware exception
+    - mxc: vpu_malone: fix build issue as module
+    - mxc: vpu_maline: Fix Kconfig to depends on VIDEO_V4L2
+    - MLK-24009-1 arm64: imx8mp: vpu: vc8000e: fix build issue as module
+    - MLK-24009-2 arm64: imx8mp: vpu: g1/g2: fix build issue as module
+    - MLK-24009-3 arm64: imx8mm: vpu: h1: fix build issue as module
+    - MLK-24009-4 arm64: imx8mq: vpu: g1/g2: fix build issue as module
+    - MLK-24090 mxc: ipu3: ipu_device: Fix AB-BA deadlock between vdoa_lock and
+      ipu_ch_tbl.lock
+    - LF-1406-1:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support insmod separately
+    - LF-1406-2:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support insmod repeatly
+    - LF-1405-1: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: support insmod separately
+    - LF-1405-2:[8QM_MEK/8QXP_MEK]mxc:vpu_malone: support insmod repeatly
+    - LF-1430-1 mxc: vpu_malone: refine insert scode for VC1 format
+    - LF-1430-2 mxc: vpu_malone: correct VP8 ivf frame header
+    - LF-1430-3 mxc: vpu_malone: unify set payload header
+    - LF-1430-4 mxc: vpu_malone: refine the operation of insert scode
+    - MGS-5060 [#imx-1868] 0021-Update-gc_feature_database.h-to-271754
+    - MGS-5709 [#imx-1439] fix gpu suspend/resume stuck
+    - MGS-5531 [#imx-1868] Fix VIP Hang isse with HW reet
+    - MGS-5768 [#imx-2132] fix android cts memory leak with
+      CL_MEM_USE_HOST_PHYSICAL_ADDR_VIV
+    - MLK-20236 mxc: sim/emvsim: useless call
+    - MGS-5787 [#imx-1868] 0003-CL275293-fix-flop-tp-reset-issue
+    - MGS-5787 [#imx-1868] 0004-CL275303-default-open-flopreset-with-TP
+    - MGS-5787 [#imx-1868] Update database for GPU/VIP
+    - MGS-5789 [#imx-2156] Fix Coverity issue in VIP PM HW workaround
+    - LF-1572 mxc: sim: Unchecked return value
+    - LF-1573 mxc: sim: Unchecked return value
+    - MLK-24363-1 mxc: emvsim: add error check when enable clk
+    - MLK-24363-2 mxc: emvsim: fix error report in probe stage
+    - MLK-24364 mxc: sim: add runtime pm support
+    - LF-1681: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: delete redundant data before
+      start code
+    - MA-17404 [#imx-2206] Kernel code copyright and license issue.
+    - MGS-5806 [#ccc] fix 8mm gpu hang due to dummy draw
+    - MLK-24404-1 mxc: vpu_malone: correct device power usage_count
+    - MLK-24404-2 mxc: vpu_windsor: correct device power usage_count
+    - MLK-24373-1 arm64: imx8mp: vpu: g1/g2: fix blocking issue in suspend
+    - MLK-24373-2 arm64: imx8mp: vpu: g1/g2: fix potential deadlock issue
+    - MLK-24477-2:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: enable color description in
+      vui
+    - MLK-24477-3:[8QM_MEK/8QXP_MEK]mxc:vpu_malone: improve get/set color api
+    - MGS-5849 Integrate VSI GPU 6.4.3.p0 kernel driver
+    - LF-2138: mxc: vpu_malone: change typedef of 'valid_ts_received' to unsigned
+      int
+    - LF-2111: mxc: vpu_windsor: Avoid hide parameter
+    - MGS-5933-1 [#ccc] reenable m865s gpu TX clock gating
+    - MGS-5928-1 [#ccc] allocate auxiliary memory for cacheable map
+    - MGS-5928-2 [#ccc] support virtual memory in normal zone
+    - MLK-24477-4:[8QM_MEK/8QXP_MEK]mxc:vpu_malone: report color space by try_fmt
+    - MGS-5928-3 [#ccc] fix Android kernel crash problem
+    - MLK-24499: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: set low latency mode through
+      set bframe
+    - MGS-5943 [#imx-2089] 0079-CL290440-KERNEL-SPACE-6.4.x-Always-enable-
+      gcdIGNORE_
+    - MGS-5943 [#imx-2089] 0081-BUG27413-CL290463-KERNEL-SPACE-64x_234062-ocl-fix-
+      th
+    - MGS-5943 [#imx-2089] 0091-KERNEL-SPACE-Update-
+      gc_feature_database.h-to-290561
+    - MLK-24593:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support change bitrate
+      dynamically
+    - MA-17341 [#imx-2211] Remove ts_address code to keep align with Linux
+    - MA-17341-2 [#imx-2211] Fix kernel panic when do stop on android
+    - MA-17683 [#imx-2302] Fix video playback "rcu stall" issue on 8mq
+    - MGS-5972 [#imx-2089] 0011-CL292878-KERNEL-SPACE-dev64x_234062-show-gpu-
+      video-m
+    - MGS-5972 [#imx-2089] 0038-KERNEL-SPACE-Update-
+      gc_feature_database.h-to-295136
+    - MA-18037 [#imx-2356] import vfs namespace to fix GPU module load errors
+    - MGS-6025: sync GPU kernel driver with 20201015 version
+    - MGS-6026 mxc/gpu-viv: integrate 6.4.3.p1 kernel
+    - MGS-6012-5 [#imx-2337] fix 6.4.3.p1 build break for L5.10
+    - MGS-6012-6 [#imx-2337] refine mmap_sem fix for L5.10 kernel
+    - MGS-6010 [#ccc] gpu: add GetSGT callback for reserved_mem
+    - LF-2118 [#ccc] fixed Coverity Issue:6124050
+    - LF-2118-2 [#ccc] fixed Coverity Issue:6124050
+    - MGS-5990-3 [#ccc] refine gpu memory bank configuration
+    - MGS-5990-4 [#ccc] fix the uninitialized variable
+    - MGS-6026-2 sync gpu database with formal 6.4.3.p1
+    - LF-2473 [#ccc] Coverity Issue:10281263
+    - LF-2466 [#ccc] fix the dereference issue
+    - LF-2461 [#ccc] use inline to fix multi-defination
+    - LF-2457 [#ccc] fix the Dereferencing null pointer
+    - LF-2478 [#ccc] fix the dereferencing null pointer
+    - LF-2480 [#ccc] rm DEBUG print as it print below like external mem
+    - LF-2492 [#ccc] check sscanf return value
+    - LF-2473 [#ccc] Coverity Issue:10281263
+    - MGS-4929 [#imx-2382] enable vivante drm for linux build
+    - MGS-6058 [#imx-2391] fix vivante drm build break for L5.10
+    - MGS-6060 gpu-viv: sync 20201116 patch release
+    - MGS-6060-2 gpu-viv: fix build break
+    - MLK-24959: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: move timestamp handler to
+      firmware
+    - MLK-24960: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: move timestamp manager to
+      firmware
+    - MGS-6108 [#imx-2416] fix GPU exception to access the freed MMU page
+    - MGS-6108-2 [#imx-2416] fix vg kernel panic for command unlock
+    - MGS-6108-3 [#imx-2416] fix gcdENABLE_VG logic issue
+    - MLK-21876-21 mxcfb: add uapi headfile for yocto build pass
+    - MLK-21876-17 mxc_v4l2: add uapi headfile for yocto build pass
+    - MLK-24874-3: include: uapi: mxc_v4l2: fix the UAPI_HEADER_TEST failure
+    - MLK-21876-19 pxp_dma: add uapi headfile for yocto build pass
+    - MLK-21876-13 ipu: add uapi headfile for yocto build pass
+    - MLK-24874-5: include: uapi: ipu: fix the UAPI_HEADER_TEST failure
+    - MLK-21876-12 vpu: add handro h1 headfile for Yocto build pass
+    - MA-11994 Add get phys address ioctl to dma-buf.
+    - MLK-16130-2: ASoC: fsl: add machine driver for cadence hdmi
+    - MLK-16159: ASoC: imx_cdnhdmi: refine the N value selection
+    - MLK-16538-2: hdmi api: Relocate hdmi api soure code
+    - MLK-13946-4: ASoC: imx-cdnhdmi: refine machine driver for api changes
+    - MLK-17344-1: ASoC: imx-cdnhdmi: get constraint rate from dts
+    - MLK-17620-2: ASoC: imx-cdnhdmi: switch to generic hdmi codec
+    - MLK-18368-2: ASoC: fsl: support hdmi rx in machine driver
+    - MLK-18833: ASoC: imx-cdnhdmi: fix no sound card issue
+    - MLK-20183-2: ASoC: imx-cdnhdmi: reconfigure the mclk for HDMI on imx8mq
+    - ASoC: imx-cdnhdmi: Fix compile error
+    - MLK-23642-3: ASoC: fsl: imx-cdnhdmi: support 6 channels
+    - MLK-24611-3: ASoC: imx-cdnhdmi: Add hdmi jack
+    - LF-2700: ASoC: fsl: imx-cdnhdmi: Fix error prompt
+    - MLK-23287-1: ASoC: fsl_aud2htx: Add aud2htx module driver
+    - MLK-23906-1: ASoC: fsl_aud2htx: Don't bind clock with regmap
+    - imx busfreq: Add API header file
+    - Add MU module for vpu dependence on QXP/QM
+    - MLK-9769-1 crypto: caam/jr - remove incorrect comment from job ring module
+    - MLK-20204 crypto: caam - remove deadcode on 32-bit platforms
+    - MLK-9769-9 crypto: caam - adjust RNG timing to support more devices
+    - MLK-9769-8 crypto: caam - add a test for the RNG
+    - MLKU-114-1 crypto: caam - reduce page 0 regs access to minimum
+    - MLKU-114-2 crypto: caam - SCU firmware support
+    - MLKU-114-3 crypto: caam - OP-TEE firmware support
+    - MLKU-38-3 crypto: caam - add SNVS / SECVIO support
+    - MLKU-25-3 crypto: caam - add Secure Memory support
+    - MLK-19801-1 crypto: caam - add tag functionality
+    - MLK-19801-2 crypto: caam - add support of tagged keys in caamalg
+    - MLK-10036 crypto: caam - add support for DSM with Mega/Fast mix on
+    - MLK-19449 crypto: caam - Change structure type representing DECO MID
+    - LFV-26 crypto: caam - fix Secure Memory driver init
+    - LF-63-1 crypto: caam - fix SM test init
+    - crypto: caam - fix snvs clk prepare+enable
+    - LF-838: crypto: caam - increase the domain of write memory barrier to full
+      system
+    - MLK-23774 crypto: caam - fix SNVS / SECVIO building as module
+    - MLK-21689 crypto: caam - make snvs clock optional
+    - MLK-23664-2 crypto: caam - allocate RNG instantiation descriptor with
+      GFP_DMA
+    - MLK-24420-1 crypto: caam - update tagged keys functionality and tk
+      transformations for skcipher
+    - MLK-24420-2 crypto: caam - add support for black keys and blobs
+    - MLK-24420-3 crypto: caam - add ioctl calls for black keys and blobs
+      generation
+    - MLK-24497 crypto: caam - update tagged object functionality by adding red
+      key length
+    - MLK-24496 crypto: caam - fix blob encapsulation/decapsulation
+    - MLK-24496 crypto: caam - add tag object header to blob
+    - MLK-24497 crypto: caam - update job descriptor with inline commands
+    - MLK-24517-1 crypto: caam - removed unnecessary validation of black key for
+      blob decapsulation
+    - MLK-24517-2 crypto: caam - removed unnecessary validation of black key for
+      blob encapsulation
+    - MLK-24517-3 crypto: caam - add null terminator to temporary buffer
+    - MLK-24517-4 crypto: caam - validate arguments received from user-space
+    - MLK-23664-3 crypto: caam - use struct hwrng's .init for initialization
+    - MLK-23664-4 crypto: caam - drop global context pointer and init_done
+    - MLK-23664-7 crypto: caam - invalidate entropy register during RNG
+      initialization
+    - MLK-21698: tee:optee: fix shared memory page attribute checks
+    - driver: tee: Handle NULL pointer indication from client
+    - tee: add support for session's client UUID generation
+    - tee: optee: Add support for session login client UUID generation
+    - tee: optee: remove need_resched() before cond_resched()
+    - MLK-16912 PL310: unlock ways during initialization
+    - MLK-16224-1: dmaengine: add src_fifo_num and dst_fifo_num in
+      dma_slave_config
+    - MLK-17385: dma: imx-sdma: update sdma script for multi fifo on SAI
+    - dma: engine: imx-sdma: add mcu_2_ecspi script
+    - dmaengine: imx-sdma: remove ERR009165 on i.mx6ul
+    - dmaengine: imx-sdma: fix ecspi1 rx dma not work on i.mx8mm
+    - dmaengine: imx-sdma: support allocate memory from iram
+    - dmaengine: imx-sdma: Add hdmi audio support in sdma
+    - dmaengine: imx-sdma: add sdma resume back after megafast off
+    - MLK-11259-1: dmaengine: imx-sdma: support dual fifo for DEV_TO_DEV
+    - MLK-16885-1: DMA: imx-sdma: update the buswidth that is supported
+    - include: dma-imx: support dual fifo for for DEV_TO_DEV
+    - dmaengine: imx-sdma: update sdma script for multi fifo on SAI
+    - MLK-22239-1: dmaengine: imx-sdma: Support 24bit/3bytes for sg mode
+    - dma: imx-sdma: Fix issue with IMX_DMATYPE_HDMI
+    - dma: imx-sdma: Add pm_ops to support suspend & resume
+    - MLK-22972 dmaengine: imx-sdma: correct the script number for v3
+    - MLK-23005: dmaengine: imx-sdma: correct data size of channel context
+    - LF-246: dmaengine: imx-sdma: correct is_ram_script checking
+    - LF-301: dmaengine: imx-sdma: Add once more loading firmware
+    - MLK-23400-1: dmaengine: imx-sdma: add sdma restore back for i.mx8mp
+    - MLK-20598 dmaengine: imx-sdma: fix potential system hang
+    - MLK-23869-1 dmaengine: imx-sdma: split sdma init hw and sw
+    - MLK-23869-2 dmaengine: imx-sdma: add runtime suspend/resume
+    - MLK-23869-3: dmaengine: imx-sdma: add sdma_get_firmware_wait
+    - MLK-24071 dmaengine: imx-sdma: fix random channel stop
+    - MLK-23540 dmaengine: imx-sdma: restore DONEx_CONFIG register
+    - MLK-24483-1: dmaengine: imx-sdma: remove ecspi_fixed on imx8mq
+    - MLK-25116-1: dmaengine: imx-sdma: save iram pool for bd allocated
+    - MLK-25116-2: dmaengine: imx-sdma: correct iram_pool check point
+    - LF-3132: dmaengine: imx-sdma: raise up channel0 priority after resume
+    - net: fec: add FEC_QUIRK_HAS_MULTI_QUEUES represents i.MX6SX ENET IP
+    - net: fec: add ndo_select_queue to fix TX bandwidth fluctuations
+    - MLK-16347-6 drm/bridge: adv7511: Add new compatible string
+    - MLK-16918-15 drm/bridge: Update adv7511 driver with some regs for adv7535
+    - MLK-16986-4 drm/bridge: adv7511: set bus_flags and bus_format
+    - MLK-17275-1 drm/bridge: adv7511: Add support for OF_DYNAMIC
+    - MLK-17275-7 drm/bridge: adv7511: Add dsi-channel property
+    - MLK-17650-1 drm/bridge: adv7511: Add support for programmable i2c addresses
+    - MLK-18877-1 drm/bridge: adv7511: Add debug info for HPD event
+    - MLK-17537-1 drm/bridge: Correct the ADV7533 init
+    - MLK-21958-13: drm/bridge: adv7511: Limit supported clocks
+    - drm/bridge: adv7511: Fix of_reconfig
+    - MA-17597-1 gpu: drm: select OF_DYNAMIC in it6263 and adv7511 config
+    - optee: model OP-TEE as a platform device/driver
+    - optee: use uuid for sysfs driver entry
+    - optee: enable support for multi-stage bus enumeration
+    - tpm_ftpm_tee: register driver on TEE bus
+    - hwrng: optee - handle unlimited data rates
+    - hwrng: optee - fix wait use case
+    - optee: Refuse to load the driver under the kdump kernel
+    - optee: fix tee out of memory failure seen during kexec reboot
+    - TEE-349 RPC Busfreq High
+
+  [ Ubuntu: 5.4.0-120.136 ]
+
+  * CVE-2022-21123 // CVE-2022-21125 // CVE-2022-21166
+    - cpu/speculation: Add prototype for cpu_show_srbds()
+    - x86/cpu: Add Jasper Lake to Intel family
+    - x86/cpu: Add Lakefield, Alder Lake and Rocket Lake models to the to Intel
+      CPU family
+    - x86/cpu: Add another Alder Lake CPU to the Intel family
+    - Documentation: Add documentation for Processor MMIO Stale Data
+    - x86/speculation/mmio: Enumerate Processor MMIO Stale Data bug
+    - x86/speculation: Add a common function for MD_CLEAR mitigation update
+    - x86/speculation/mmio: Add mitigation for Processor MMIO Stale Data
+    - x86/bugs: Group MDS, TAA & Processor MMIO Stale Data mitigations
+    - x86/speculation/mmio: Enable CPU Fill buffer clearing on idle
+    - x86/speculation/mmio: Add sysfs reporting for Processor MMIO Stale Data
+    - x86/speculation/srbds: Update SRBDS mitigation selection
+    - x86/speculation/mmio: Reuse SRBDS mitigation for SBDS
+    - KVM: x86/speculation: Disable Fill buffer clear within guests
+    - x86/speculation/mmio: Print SMT warning
+
+  [ Ubuntu: 5.4.0-117.132 ]
+
+  * CVE-2022-1966
+    - netfilter: nf_tables: add nft_set_elem_expr_alloc()
+    - netfilter: nf_tables: disallow non-stateful expression in sets earlier
+
+  [ Ubuntu: 5.4.0-115.129 ]
+
+  * CVE-2022-21499
+    - SAUCE: debug: Lock down kgdb
+
+  [ Ubuntu: 5.4.0-114.128 ]
+
+  * focal/linux: 5.4.0-114.128 -proposed tracker (LP: #1974391)
+  * 32 GT/s PCI link speeds reporting "Unknown speed" in sysfs (LP: #1970798)
+    - PCI: Add 32 GT/s decoding in some macros
+    - PCI: Add pci_speed_string()
+    - PCI: Use pci_speed_string() for all PCI/PCI-X/PCIe strings
+    - PCI: Add PCIE_LNKCAP2_SLS2SPEED() macro
+  * issuing invalid ioctl to /dev/vsock may spam dmesg (LP: #1971480)
+    - vsock: remove ratelimit unknown ioctl message
+  * config CONFIG_HISI_PMU for  kunpeng920 (LP: #1956086)
+    - drivers/perf: hisi: Permit modular builds of HiSilicon uncore drivers
+    - [Config] CONFIG_HISI_PMU=m
+  * Focal update: v5.4.189 upstream stable release (LP: #1971497)
+    - swiotlb: fix info leak with DMA_FROM_DEVICE
+    - USB: serial: pl2303: add IBM device IDs
+    - USB: serial: simple: add Nokia phone driver
+    - netdevice: add the case if dev is NULL
+    - HID: logitech-dj: add new lightspeed receiver id
+    - xfrm: fix tunnel model fragmentation behavior
+    - virtio_console: break out of buf poll on remove
+    - ethernet: sun: Free the coherent when failing in probing
+    - spi: Fix invalid sgs value
+    - net:mcf8390: Use platform_get_irq() to get the interrupt
+    - spi: Fix erroneous sgs value with min_t()
+    - af_key: add __GFP_ZERO flag for compose_sadb_supported in function
+      pfkey_register
+    - net: dsa: microchip: add spi_device_id tables
+    - iommu/iova: Improve 32-bit free space estimate
+    - tpm: fix reference counting for struct tpm_chip
+    - block: Add a helper to validate the block size
+    - virtio-blk: Use blk_validate_block_size() to validate block size
+    - USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
+    - xhci: fix runtime PM imbalance in USB2 resume
+    - xhci: make xhci_handshake timeout for xhci_reset() adjustable
+    - xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
+    - coresight: Fix TRCCONFIGR.QE sysfs interface
+    - iio: afe: rescale: use s64 for temporary scale calculations
+    - iio: inkern: apply consumer scale on IIO_VAL_INT cases
+    - iio: inkern: apply consumer scale when no channel scale is available
+    - iio: inkern: make a best effort on offset calculation
+    - greybus: svc: fix an error handling bug in gb_svc_hello()
+    - clk: uniphier: Fix fixed-rate initialization
+    - KEYS: fix length validation in keyctl_pkey_params_get_2()
+    - Documentation: add link to stable release candidate tree
+    - Documentation: update stable tree link
+    - HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
+    - SUNRPC: avoid race between mod_timer() and del_timer_sync()
+    - NFSD: prevent underflow in nfssvc_decode_writeargs()
+    - NFSD: prevent integer overflow on 32 bit systems
+    - f2fs: fix to unlock page correctly in error path of is_alive()
+    - f2fs: quota: fix loop condition at f2fs_quota_sync()
+    - f2fs: fix to do sanity check on .cp_pack_total_block_count
+    - pinctrl: samsung: drop pin banks references on error paths
+    - spi: mxic: Fix the transmit path
+    - jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
+    - jffs2: fix memory leak in jffs2_do_mount_fs
+    - jffs2: fix memory leak in jffs2_scan_medium
+    - mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
+    - mm: invalidate hwpoison page cache page in fault path
+    - mempolicy: mbind_range() set_policy() after vma_merge()
+    - scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
+    - qed: display VF trust config
+    - qed: validate and restrict untrusted VFs vlan promisc mode
+    - riscv: Fix fill_callchain return value
+    - Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
+    - ALSA: cs4236: fix an incorrect NULL check on list iterator
+    - ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
+    - mm,hwpoison: unmap poisoned page before invalidation
+    - mm/kmemleak: reset tag when compare object pointer
+    - drbd: fix potential silent data corruption
+    - powerpc/kvm: Fix kvm_use_magic_page
+    - udp: call udp_encap_enable for v6 sockets when enabling encap
+    - ACPI: properties: Consistently return -ENOENT if there are no more
+      references
+    - drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
+    - mailbox: tegra-hsp: Flush whole channel
+    - block: don't merge across cgroup boundaries if blkcg is enabled
+    - drm/edid: check basic audio support on CEA extension block
+    - video: fbdev: sm712fb: Fix crash in smtcfb_read()
+    - video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
+    - ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
+    - ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
+    - ARM: dts: exynos: add missing HDMI supplies on SMDK5250
+    - ARM: dts: exynos: add missing HDMI supplies on SMDK5420
+    - carl9170: fix missing bit-wise or operator for tx_params
+    - thermal: int340x: Increase bitmap size
+    - lib/raid6/test: fix multiple definition linking error
+    - crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
+    - crypto: rsa-pkcs1pad - restore signature length check
+    - crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
+    - DEC: Limit PMAX memory probing to R3k systems
+    - media: davinci: vpif: fix unbalanced runtime PM get
+    - xtensa: fix stop_machine_cpuslocked call in patch_text
+    - xtensa: fix xtensa_wsr always writing 0
+    - brcmfmac: firmware: Allocate space for default boardrev in nvram
+    - brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
+    - brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
+    - brcmfmac: pcie: Fix crashes due to early IRQs
+    - PCI: pciehp: Clear cmd_busy bit in polling mode
+    - regulator: qcom_smd: fix for_each_child.cocci warnings
+    - crypto: authenc - Fix sleep in atomic context in decrypt_tail
+    - crypto: mxs-dcp - Fix scatterlist processing
+    - spi: tegra114: Add missing IRQ check in tegra_spi_probe
+    - selftests/x86: Add validity check and allow field splitting
+    - audit: log AUDIT_TIME_* records only from rules
+    - crypto: ccree - don't attempt 0 len DMA mappings
+    - spi: pxa2xx-pci: Balance reference count for PCI DMA device
+    - hwmon: (pmbus) Add mutex to regulator ops
+    - hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
+    - block: don't delete queue kobject before its children
+    - PM: hibernate: fix __setup handler error handling
+    - PM: suspend: fix return value of __setup handler
+    - hwrng: atmel - disable trng on failure path
+    - crypto: vmx - add missing dependencies
+    - clocksource/drivers/timer-of: Check return value of of_iomap in
+      timer_of_base_init()
+    - ACPI: APEI: fix return value of __setup handlers
+    - crypto: ccp - ccp_dmaengine_unregister release dma channels
+    - hwmon: (pmbus) Add Vin unit off handling
+    - clocksource: acpi_pm: fix return value of __setup handler
+    - sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
+    - perf/core: Fix address filter parser for multiple filters
+    - perf/x86/intel/pt: Fix address filter config for 32-bit kernel
+    - f2fs: fix missing free nid in f2fs_handle_failed_inode
+    - f2fs: fix to avoid potential deadlock
+    - media: bttv: fix WARNING regression on tunerless devices
+    - media: coda: Fix missing put_device() call in coda_get_vdoa_data
+    - media: hantro: Fix overfill bottom register field name
+    - media: aspeed: Correct value for h-total-pixels
+    - video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
+    - video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
+    - video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
+    - ARM: dts: qcom: ipq4019: fix sleep clock
+    - soc: qcom: rpmpd: Check for null return of devm_kcalloc
+    - soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
+    - arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
+    - soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
+    - ARM: dts: imx: Add missing LVDS decoder on M53Menlo
+    - media: video/hdmi: handle short reads of hdmi info frame.
+    - media: em28xx: initialize refcount before kref_get
+    - media: usb: go7007: s2250-board: fix leak in probe()
+    - uaccess: fix nios2 and microblaze get_user_8()
+    - ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
+    - ASoC: ti: davinci-i2s: Add check for clk_enable()
+    - ALSA: spi: Add check for clk_enable()
+    - arm64: dts: ns2: Fix spi-cpol and spi-cpha property
+    - arm64: dts: broadcom: Fix sata nodename
+    - printk: fix return value of printk.devkmsg __setup handler
+    - ASoC: mxs-saif: Handle errors for clk_enable
+    - ASoC: atmel_ssc_dai: Handle errors for clk_enable
+    - ASoC: soc-compress: prevent the potentially use of null pointer
+    - memory: emif: Add check for setup_interrupts
+    - memory: emif: check the pointer temp in get_device_details()
+    - ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
+    - arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
+    - media: stk1160: If start stream fails, return buffers with
+      VB2_BUF_STATE_QUEUED
+    - ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
+    - ASoC: wm8350: Handle error for wm8350_register_irq
+    - ASoC: fsi: Add check for clk_enable
+    - video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
+    - ivtv: fix incorrect device_caps for ivtvfb
+    - ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
+    - ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
+    - ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
+    - ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in
+      msm8916_wcd_digital_probe
+    - mmc: davinci_mmc: Handle error for clk_enable
+    - ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
+    - drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
+    - drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
+    - ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
+    - udmabuf: validate ubuf->pagecount
+    - Bluetooth: hci_serdev: call init_rwsem() before p->open()
+    - mtd: onenand: Check for error irq
+    - mtd: rawnand: gpmi: fix controller timings setting
+    - drm/edid: Don't clear formats if using deep color
+    - drm/amd/display: Fix a NULL pointer dereference in
+      amdgpu_dm_connector_add_common_modes()
+    - ath9k_htc: fix uninit value bugs
+    - KVM: PPC: Fix vmx/vsx mixup in mmio emulation
+    - i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
+    - power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
+    - ray_cs: Check ioremap return value
+    - powerpc/perf: Don't use perf_hw_context for trace IMC PMU
+    - mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
+    - mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
+    - net: dsa: mv88e6xxx: Enable port policy support on 6097
+    - PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
+    - power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
+    - HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
+    - iommu/ipmmu-vmsa: Check for error num after setting mask
+    - drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
+    - IB/cma: Allow XRC INI QPs to set their local ACK timeout
+    - dax: make sure inodes are flushed before destroy cache
+    - iwlwifi: Fix -EIO error code that is never returned
+    - iwlwifi: mvm: Fix an error code in iwl_mvm_up()
+    - dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
+    - scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
+    - scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
+    - scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
+    - scsi: pm8001: Fix abort all task initialization
+    - drm/amd/display: Remove vupdate_int_entry definition
+    - TOMOYO: fix __setup handlers return values
+    - ext2: correct max file size computing
+    - drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
+    - power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false
+      return
+    - scsi: hisi_sas: Change permission of parameter prot_mask
+    - drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
+    - bpf, arm64: Call build_prologue() first in first JIT pass
+    - bpf, arm64: Feed byte-offset into bpf line info
+    - libbpf: Skip forward declaration when counting duplicated type names
+    - powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
+    - KVM: x86: Fix emulation in writing cr8
+    - KVM: x86/emulator: Defer not-present segment check in
+      __load_segment_descriptor()
+    - hv_balloon: rate-limit "Unhandled message" warning
+    - i2c: xiic: Make bus names unique
+    - power: supply: wm8350-power: Handle error for wm8350_register_irq
+    - power: supply: wm8350-power: Add missing free in free_charger_irq
+    - PCI: Reduce warnings on possible RW1C corruption
+    - mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
+    - powerpc/sysdev: fix incorrect use to determine if list is empty
+    - mfd: mc13xxx: Add check for mc13xxx_irq_request
+    - selftests/bpf: Make test_lwt_ip_encap more stable and faster
+    - powerpc: 8xx: fix a return value error in mpc8xx_pic_init
+    - vxcan: enable local echo for sent CAN frames
+    - MIPS: RB532: fix return value of __setup handler
+    - mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
+    - RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
+    - bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
+    - bpf, sockmap: Fix more uncharged while msg has more_data
+    - bpf, sockmap: Fix double uncharge the mem of sk_msg
+    - USB: storage: ums-realtek: fix error code in rts51x_read_mem()
+    - Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
+    - af_netlink: Fix shift out of bounds in group mask calculation
+    - i2c: mux: demux-pinctrl: do not deactivate a master that is not active
+    - selftests/bpf/test_lirc_mode2.sh: Exit with proper code
+    - tcp: ensure PMTU updates are processed during fastopen
+    - openvswitch: always update flow key after nat
+    - tipc: fix the timer expires after interval 100ms
+    - mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
+    - mxser: fix xmit_buf leak in activate when LSR == 0xff
+    - pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
+    - misc: alcor_pci: Fix an error handling path
+    - staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
+    - pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
+    - clk: qcom: ipq8074: Use floor ops for SDCC1 clock
+    - phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
+    - serial: 8250_mid: Balance reference count for PCI DMA device
+    - serial: 8250: Fix race condition in RTS-after-send handling
+    - iio: adc: Add check for devm_request_threaded_irq
+    - NFS: Return valid errors from nfs2/3_decode_dirent()
+    - dma-debug: fix return value of __setup handlers
+    - clk: imx7d: Remove audio_mclk_root_clk
+    - clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
+    - clk: qcom: clk-rcg2: Update the frac table for pixel clock
+    - remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
+    - remoteproc: qcom_wcnss: Add missing of_node_put() in
+      wcnss_alloc_memory_region
+    - clk: actions: Terminate clk_div_table with sentinel element
+    - clk: loongson1: Terminate clk_div_table with sentinel element
+    - clk: clps711x: Terminate clk_div_table with sentinel element
+    - clk: tegra: tegra124-emc: Fix missing put_device() call in
+      emc_ensure_emc_driver
+    - NFS: remove unneeded check in decode_devicenotify_args()
+    - staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
+    - pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
+    - pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
+    - pinctrl: mediatek: paris: Fix pingroup pin config state readback
+    - pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
+    - pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
+    - tty: hvc: fix return value of __setup handler
+    - kgdboc: fix return value of __setup handler
+    - kgdbts: fix return value of __setup handler
+    - firmware: google: Properly state IOMEM dependency
+    - driver core: dd: fix return value of __setup handler
+    - jfs: fix divide error in dbNextAG
+    - netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
+    - NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
+    - clk: qcom: gcc-msm8994: Fix gpll4 width
+    - clk: Initialize orphan req_rate
+    - xen: fix is_xen_pmu()
+    - net: phy: broadcom: Fix brcm_fet_config_init()
+    - selftests: test_vxlan_under_vrf: Fix broken test case
+    - qlcnic: dcb: default to returning -EOPNOTSUPP
+    - net/x25: Fix null-ptr-deref caused by x25_disconnect
+    - NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
+    - net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
+    - lib/test: use after free in register_test_dev_kmod()
+    - LSM: general protection fault in legacy_parse_param
+    - gcc-plugins/stackleak: Exactly match strings instead of prefixes
+    - pinctrl: npcm: Fix broken references to chip->parent_device
+    - block, bfq: don't move oom_bfqq
+    - selinux: use correct type for context length
+    - loop: use sysfs_emit() in the sysfs xxx show()
+    - Fix incorrect type in assignment of ipv6 port for audit
+    - irqchip/qcom-pdc: Fix broken locking
+    - irqchip/nvic: Release nvic_base upon failure
+    - bfq: fix use-after-free in bfq_dispatch_request
+    - ACPICA: Avoid walking the ACPI Namespace if it is not there
+    - lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
+    - Revert "Revert "block, bfq: honor already-setup queue merges""
+    - ACPI/APEI: Limit printable size of BERT table data
+    - PM: core: keep irq flags in device_pm_check_callbacks()
+    - spi: tegra20: Use of_device_get_match_data()
+    - ext4: don't BUG if someone dirty pages without asking ext4 first
+    - ntfs: add sanity check on allocation size
+    - video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
+    - video: fbdev: w100fb: Reset global state
+    - video: fbdev: cirrusfb: check pixclock to avoid divide by zero
+    - video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
+    - ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
+    - ARM: dts: bcm2837: Add the missing L1/L2 cache information
+    - ASoC: madera: Add dependencies on MFD
+    - video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
+    - video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of
+      snprintf()
+    - video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
+    - ASoC: soc-core: skip zero num_dai component in searching dai name
+    - media: cx88-mpeg: clear interrupt status register before streaming video
+    - ARM: tegra: tamonten: Fix I2C3 pad setting
+    - ARM: mmp: Fix failure to remove sram device
+    - video: fbdev: sm712fb: Fix crash in smtcfb_write()
+    - media: Revert "media: em28xx: add missing em28xx_close_extension"
+    - media: hdpvr: initialize dev->worker at hdpvr_register_videodev
+    - mmc: host: Return an error when ->enable_sdio_irq() ops is missing
+    - ALSA: hda/realtek: Add alc256-samsung-headphone fixup
+    - powerpc/lib/sstep: Fix 'sthcx' instruction
+    - powerpc/lib/sstep: Fix build errors with newer binutils
+    - powerpc: Fix build errors with newer binutils
+    - scsi: qla2xxx: Fix stuck session in gpdb
+    - scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
+    - scsi: qla2xxx: Fix warning for missing error code
+    - scsi: qla2xxx: Fix device reconnect in loop topology
+    - scsi: qla2xxx: Add devids and conditionals for 28xx
+    - scsi: qla2xxx: Check for firmware dump already collected
+    - scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
+    - scsi: qla2xxx: Fix disk failure to rediscover
+    - scsi: qla2xxx: Fix incorrect reporting of task management failure
+    - scsi: qla2xxx: Fix hang due to session stuck
+    - scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
+    - scsi: qla2xxx: Fix N2N inconsistent PLOGI
+    - scsi: qla2xxx: Reduce false trigger to login
+    - scsi: qla2xxx: Use correct feature type field during RFF_ID processing
+    - KVM: Prevent module exit until all VMs are freed
+    - KVM: x86: fix sending PV IPI
+    - ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
+    - ubifs: rename_whiteout: Fix double free for whiteout_ui->data
+    - ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
+    - ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
+    - ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
+    - ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
+    - ubifs: rename_whiteout: correct old_dir size computing
+    - XArray: Fix xas_create_range() when multi-order entry present
+    - can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
+    - can: mcba_usb: properly check endpoint type
+    - XArray: Update the LRU list in xas_split()
+    - rtc: check if __rtc_read_time was successful
+    - gfs2: Make sure FITRIM minlen is rounded up to fs block size
+    - net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
+    - pinctrl: pinconf-generic: Print arguments for bias-pull-*
+    - pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
+    - pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
+    - ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
+    - ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
+    - ARM: iop32x: offset IRQ numbers by 1
+    - ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
+    - powerpc/kasan: Fix early region not updated correctly
+    - ASoC: soc-compress: Change the check for codec_dai
+    - mm/mmap: return 1 from stack_guard_gap __setup() handler
+    - mm/memcontrol: return 1 from cgroup.memory __setup() handler
+    - mm/usercopy: return 1 from hardened_usercopy __setup() handler
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - dt-bindings: mtd: nand-controller: Fix the reg property description
+    - dt-bindings: mtd: nand-controller: Fix a comment in the examples
+    - dt-bindings: spi: mxic: The interrupt property is not mandatory
+    - ubi: fastmap: Return error code if memory allocation fails in add_aeb()
+    - ASoC: topology: Allow TLV control to be either read or write
+    - ARM: dts: spear1340: Update serial node properties
+    - ARM: dts: spear13xx: Update SPI dma properties
+    - um: Fix uml_mconsole stop/go
+    - openvswitch: Fixed nd target mask field in the flow dump.
+    - KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
+    - KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
+    - ubifs: Rectify space amount budget for mkdir/tmpfile operations
+    - rtc: wm8350: Handle error for wm8350_register_irq
+    - riscv module: remove (NOLOAD)
+    - ARM: 9187/1: JIVE: fix return value of __setup handler
+    - KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
+    - drm: Add orientation quirk for GPD Win Max
+    - ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
+    - drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
+    - ptp: replace snprintf with sysfs_emit
+    - powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
+    - bpf: Make dst_port field in struct bpf_sock 16-bit wide
+    - scsi: mvsas: Replace snprintf() with sysfs_emit()
+    - scsi: bfa: Replace snprintf() with sysfs_emit()
+    - power: supply: axp20x_battery: properly report current when discharging
+    - ipv6: make mc_forwarding atomic
+    - powerpc: Set crashkernel offset to mid of RMA region
+    - drm/amdgpu: Fix recursive locking warning
+    - PCI: aardvark: Fix support for MSI interrupts
+    - iommu/arm-smmu-v3: fix event handling soft lockup
+    - usb: ehci: add pci device support for Aspeed platforms
+    - PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
+    - power: supply: axp288-charger: Set Vhold to 4.4V
+    - ipv4: Invalidate neighbour for broadcast address upon address addition
+    - dm ioctl: prevent potential spectre v1 gadget
+    - drm/amdkfd: make CRAT table missing message informational only
+    - scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
+    - scsi: aha152x: Fix aha152x_setup() __setup handler return value
+    - net/smc: correct settings of RMB window update limit
+    - mips: ralink: fix a refcount leak in ill_acc_of_setup()
+    - macvtap: advertise link netns via netlink
+    - tuntap: add sanity checks about msg_controllen in sendmsg
+    - bnxt_en: Eliminate unintended link toggle during FW reset
+    - MIPS: fix fortify panic when copying asm exception handlers
+    - scsi: libfc: Fix use after free in fc_exch_abts_resp()
+    - usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
+    - xtensa: fix DTC warning unit_address_format
+    - Bluetooth: Fix use after free in hci_send_acl
+    - netlabel: fix out-of-bounds memory accesses
+    - init/main.c: return 1 from handled __setup() functions
+    - minix: fix bug when opening a file with O_DIRECT
+    - clk: si5341: fix reported clk_rate when output divider is 2
+    - w1: w1_therm: fixes w1_seq for ds28ea00 sensors
+    - NFSv4: Protect the state recovery thread against direct reclaim
+    - xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
+    - clk: Enforce that disjoints limits are invalid
+    - SUNRPC/call_alloc: async tasks mustn't block waiting for memory
+    - NFS: swap IO handling is slightly different for O_DIRECT IO
+    - NFS: swap-out must always use STABLE writes.
+    - serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()
+    - virtio_console: eliminate anonymous module_init & module_exit
+    - jfs: prevent NULL deref in diFree
+    - SUNRPC: Fix socket waits for write buffer space
+    - parisc: Fix CPU affinity for Lasi, WAX and Dino chips
+    - parisc: Fix patch code locking and flushing
+    - mm: fix race between MADV_FREE reclaim and blkdev direct IO read
+    - KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
+    - drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
+    - Drivers: hv: vmbus: Fix potential crash on module unload
+    - scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
+    - net/tls: fix slab-out-of-bounds bug in decrypt_internal
+    - net: ipv4: fix route with nexthop object delete warning
+    - net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
+    - drm/imx: Fix memory leak in imx_pd_connector_get_modes
+    - bnxt_en: reserve space inside receive page for skb_shared_info
+    - IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
+    - dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
+    - ipv6: Fix stats accounting in ip6_pkt_drop
+    - net: openvswitch: don't send internal clone attribute to the userspace.
+    - rxrpc: fix a race in rxrpc_exit_net()
+    - qede: confirm skb is allocated before using
+    - spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
+    - bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
+    - drbd: Fix five use after free bugs in get_initial_state
+    - SUNRPC: Handle ENOMEM in call_transmit_status()
+    - SUNRPC: Handle low memory situations in call_status()
+    - perf tools: Fix perf's libperf_print callback
+    - perf session: Remap buf if there is no space for event
+    - Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
+    - mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is
+      complete
+    - lz4: fix LZ4_decompress_safe_partial read out of bound
+    - mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
+    - mm/mempolicy: fix mpol_new leak in shared_policy_replace
+    - x86/pm: Save the MSR validity status at context setup
+    - x86/speculation: Restore speculation related MSRs during S3 resume
+    - btrfs: fix qgroup reserve overflow the qgroup limit
+    - arm64: patch_text: Fixup last cpu should be master
+    - ata: sata_dwc_460ex: Fix crash due to OOB write
+    - perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
+    - irqchip/gic-v3: Fix GICR_CTLR.RWP polling
+    - tools build: Filter out options and warnings not supported by clang
+    - tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
+    - dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
+    - mmc: mmci_sdmmc: Replace sg_dma_xxx macros
+    - mmc: mmci: stm32: correctly check all elements of sg list
+    - mm: don't skip swap entry even if zap_details specified
+    - arm64: module: remove (NOLOAD) from linker script
+    - mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
+    - drm/amdkfd: add missing void argument to function kgd2kfd_init
+    - drm/amdkfd: Fix -Wstrict-prototypes from
+      amdgpu_amdkfd_gfx_10_0_get_functions()
+    - cgroup: Use open-time credentials for process migraton perm checks
+    - cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
+    - cgroup: Use open-time cgroup namespace for process migration perm checks
+    - selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
+    - selftests: cgroup: Test open-time credential usage for migration checks
+    - selftests: cgroup: Test open-time cgroup namespace usage for migration
+      checks
+    - cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
+    - ACPI: processor idle: Check for architectural support for LPI
+    - Linux 5.4.189
+  * Focal update: v5.4.188 upstream stable release (LP: #1971496)
+    - nfsd: cleanup nfsd_file_lru_dispose()
+    - nfsd: Containerise filecache laundrette
+    - net: ipv6: fix skb_over_panic in __ip6_append_data
+    - tpm: Fix error handling in async work
+    - staging: fbtft: fb_st7789v: reset display before initialization
+    - thermal: int340x: fix memory leak in int3400_notify()
+    - llc: fix netdevice reference leaks in llc_ui_bind()
+    - ALSA: pcm: Add stream lock during PCM reset ioctl operations
+    - ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
+    - ALSA: cmipci: Restore aux vol on suspend/resume
+    - ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
+    - drivers: net: xgene: Fix regression in CRC stripping
+    - ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
+    - ALSA: oss: Fix PCM OSS buffer allocation overflow
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
+    - ALSA: hda/realtek: Add quirk for ASUS GA402
+    - ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
+    - ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
+    - ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
+    - crypto: qat - disable registration of algorithms
+    - rcu: Don't deboost before reporting expedited quiescent state
+    - mac80211: fix potential double free on mesh join
+    - tpm: use try_get_ops() in tpm-space.c
+    - nds32: fix access_ok() checks in get/put_user
+    - llc: only change llc->dev when bind() succeeds
+    - Linux 5.4.188
+  * Focal update: v5.4.187 upstream stable release (LP: #1971493)
+    - crypto: qcom-rng - ensure buffer for generate is completely filled
+    - ocfs2: fix crash when initialize filecheck kobj fails
+    - efi: fix return value of __setup handlers
+    - net: phy: marvell: Fix invalid comparison in the resume and suspend
+      functions
+    - net/packet: fix slab-out-of-bounds access in packet_recvmsg()
+    - atm: eni: Add check for dma_map_single
+    - hv_netvsc: Add check for kvmalloc_array
+    - drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
+    - net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
+    - net: dsa: Add missing of_node_put() in dsa_port_parse_of
+    - arm64: fix clang warning about TRAMP_VALIAS
+    - usb: gadget: rndis: prevent integer overflow in rndis_set_response()
+    - usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
+    - usb: usbtmc: Fix bug in pipe direction for control transfers
+    - Input: aiptek - properly check endpoint type
+    - perf symbols: Fix symbol size calculation condition
+    - Linux 5.4.187
+  * Focal update: v5.4.186 upstream stable release (LP: #1969678)
+    - Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
+    - sctp: fix the processing for INIT chunk
+    - xfrm: Check if_id in xfrm_migrate
+    - xfrm: Fix xfrm migrate issues when address family changes
+    - arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity
+    - arm64: dts: rockchip: reorder rk3399 hdmi clocks
+    - arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"
+    - ARM: dts: rockchip: reorder rk322x hmdi clocks
+    - ARM: dts: rockchip: fix a typo on rk3288 crypto-controller
+    - mac80211: refuse aggregations sessions before authorized
+    - MIPS: smp: fill in sibling and core maps earlier
+    - ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE
+    - can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when
+      fully ready
+    - atm: firestream: check the return value of ioremap() in fs_init()
+    - iwlwifi: don't advertise TWT support
+    - drm/vrr: Set VRR capable prop only if it is attached to connector
+    - nl80211: Update bss channel on channel switch for P2P_CLIENT
+    - tcp: make tcp_read_sock() more robust
+    - sfc: extend the locking on mcdi->seqno
+    - kselftest/vm: fix tests build with old libc
+    - fixup for "arm64 entry: Add macro for reading symbol address from the
+      trampoline"
+    - Linux 5.4.186
+  * Focal update: v5.4.185 upstream stable release (LP: #1969672)
+    - clk: qcom: gdsc: Add support to update GDSC transition delay
+    - arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias
+    - virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
+    - net: qlogic: check the return value of dma_alloc_coherent() in
+      qed_vf_hw_prepare()
+    - qed: return status of qed_iov_get_link
+    - drm/sun4i: mixer: Fix P010 and P210 format numbers
+    - ARM: dts: aspeed: Fix AST2600 quad spi group
+    - ethernet: Fix error handling in xemaclite_of_probe
+    - net: ethernet: ti: cpts: Handle error for clk_enable
+    - net: ethernet: lpc_eth: Handle error for clk_enable
+    - ax25: Fix NULL pointer dereference in ax25_kill_by_device
+    - net/mlx5: Fix size field in bufferx_reg struct
+    - net/mlx5: Fix a race on command flush flow
+    - NFC: port100: fix use-after-free in port100_send_complete
+    - selftests: pmtu.sh: Kill tcpdump processes launched by subshell.
+    - gpio: ts4900: Do not set DAT and OE together
+    - gianfar: ethtool: Fix refcount leak in gfar_get_ts_info
+    - net: phy: DP83822: clear MISR2 register to disable interrupts
+    - sctp: fix kernel-infoleak for SCTP sockets
+    - net: bcmgenet: Don't claim WOL when its not available
+    - net-sysfs: add check for netdevice being present to speed_show
+    - Revert "xen-netback: remove 'hotplug-status' once it has served its purpose"
+    - Revert "xen-netback: Check for hotplug-status existence before watching"
+    - ipv6: prevent a possible race condition with lifetimes
+    - tracing: Ensure trace buffer is at least 4096 bytes large
+    - selftest/vm: fix map_fixed_noreplace test failure
+    - selftests/memfd: clean up mapping in mfd_fail_write
+    - ARM: Spectre-BHB: provide empty stub for non-config
+    - fuse: fix pipe buffer lifetime for direct_io
+    - staging: gdm724x: fix use after free in gdm_lte_rx()
+    - net: macb: Fix lost RX packet wakeup race in NAPI receive
+    - mmc: meson: Fix usage of meson_mmc_post_req()
+    - riscv: Fix auipc+jalr relocation range checks
+    - arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
+    - virtio: unexport virtio_finalize_features
+    - virtio: acknowledge all features before access
+    - ARM: fix Thumb2 regression with Spectre BHB
+    - ext4: add check to prevent attempting to resize an fs with sparse_super2
+    - x86/cpufeatures: Mark two free bits in word 3
+    - x86/cpu: Add hardware-enforced cache coherency as a CPUID feature
+    - x86/mm/pat: Don't flush cache if hardware enforces cache coherency across
+      encryption domnains
+    - KVM: SVM: Don't flush cache if hardware enforces cache coherency across
+      encryption domains
+    - Linux 5.4.185
+  * Focal update: v5.4.184 upstream stable release (LP: #1969242)
+    - arm/arm64: Provide a wrapper for SMCCC 1.1 calls
+    - arm/arm64: smccc/psci: add arm_smccc_1_1_get_conduit()
+    - ARM: report Spectre v2 status through sysfs
+    - ARM: early traps initialisation
+    - ARM: use LOADADDR() to get load address of sections
+    - [Config] updateconfigs for HARDEN_BRANCH_HISTORY
+    - ARM: Spectre-BHB workaround
+    - ARM: include unprivileged BPF status in Spectre V2 reporting
+    - ARM: fix build error when BPF_SYSCALL is disabled
+    - ARM: fix co-processor register typo
+    - ARM: Do not use NOCROSSREFS directive with ld.lld
+    - ARM: fix build warning in proc-v7-bugs.c
+    - xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
+    - xen/grant-table: add gnttab_try_end_foreign_access()
+    - xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/netfront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/gntalloc: don't use gnttab_query_foreign_access()
+    - xen: remove gnttab_query_foreign_access()
+    - xen/9p: use alloc/free_pages_exact()
+    - xen/pvcalls: use alloc/free_pages_exact()
+    - xen/gnttab: fix gnttab_end_foreign_access() without page specified
+    - xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
+    - Linux 5.4.184
+  * Focal update: v5.4.183 upstream stable release (LP: #1969239)
+    - mac80211_hwsim: report NOACK frames in tx_status
+    - mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
+    - i2c: bcm2835: Avoid clock stretching timeouts
+    - ASoC: rt5668: do not block workqueue if card is unbound
+    - ASoC: rt5682: do not block workqueue if card is unbound
+    - Input: clear BTN_RIGHT/MIDDLE on buttonpads
+    - cifs: fix double free race when mount fails in cifs_get_root()
+    - dmaengine: shdma: Fix runtime PM imbalance on error
+    - i2c: cadence: allow COMPILE_TEST
+    - i2c: qup: allow COMPILE_TEST
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
+    - usb: gadget: don't release an existing dev->buf
+    - usb: gadget: clear related members when goto fail
+    - ata: pata_hpt37x: fix PCI clock detection
+    - ALSA: intel_hdmi: Fix reference to PCM buffer address
+    - ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
+    - xfrm: fix MTU regression
+    - netfilter: fix use-after-free in __nf_register_net_hook()
+    - xfrm: enforce validity of offload input flags
+    - netfilter: nf_queue: don't assume sk is full socket
+    - netfilter: nf_queue: fix possible use-after-free
+    - batman-adv: Request iflink once in batadv-on-batadv check
+    - batman-adv: Request iflink once in batadv_get_real_netdevice
+    - batman-adv: Don't expect inter-netns unique iflink indices
+    - net: dcb: flush lingering app table entries for unregistered devices
+    - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
+    - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
+    - block: Fix fsync always failed if once failed
+    - xen/netfront: destroy queues before real_num_tx_queues is zeroed
+    - sched/topology: Make sched_init_numa() use a set for the deduplicating sort
+    - sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
+    - ia64: ensure proper NUMA distance and possible map initialization
+    - mac80211: fix forwarded mesh frames AC & queue selection
+    - net: stmmac: fix return value of __setup handler
+    - iavf: Fix missing check for running netdev
+    - net: sxgbe: fix return value of __setup handler
+    - net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
+    - ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
+    - efivars: Respect "block" flag in efivar_entry_set_safe()
+    - firmware: arm_scmi: Remove space in MODULE_ALIAS name
+    - ASoC: cs4265: Fix the duplicated control name
+    - can: gs_usb: change active_channels's type from atomic_t to u8
+    - arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
+    - igc: igc_read_phy_reg_gpy: drop premature return
+    - ARM: Fix kgdb breakpoint for Thumb2
+    - ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
+    - igc: igc_write_phy_reg_gpy: drop premature return
+    - ibmvnic: free reset-work-item when flushing
+    - memfd: fix F_SEAL_WRITE after shmem huge page allocated
+    - soc: fsl: qe: Check of ioremap return value
+    - net: chelsio: cxgb3: check the return value of pci_find_capability()
+    - nl80211: Handle nla_memdup failures in handle_nan_filter
+    - Input: elan_i2c - move regulator_[en|dis]able() out of
+      elan_[en|dis]able_power()
+    - Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
+    - HID: add mapping for KEY_DICTATE
+    - HID: add mapping for KEY_ALL_APPLICATIONS
+    - tracing/histogram: Fix sorting on old "cpu" value
+    - tracing: Fix return value of __setup handlers
+    - btrfs: fix lost prealloc extents beyond eof after full fsync
+    - btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
+    - btrfs: add missing run of delayed items after unlink during log replay
+    - Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
+    - net: dcb: disable softirqs in dcbnl_flush_dev()
+    - hamradio: fix macro redefine warning
+    - Linux 5.4.183
+  * Focal update: v5.4.182 upstream stable release (LP: #1969236)
+    - cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
+    - clk: jz4725b: fix mmc0 clock gating
+    - vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
+    - parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
+    - parisc/unaligned: Fix ldw() and stw() unalignment handlers
+    - drm/amdgpu: disable MMHUB PG for Picasso
+    - sr9700: sanity check for packet length
+    - USB: zaurus: support another broken Zaurus
+    - x86/fpu: Correct pkru/xstate inconsistency
+    - tee: export teedev_open() and teedev_close_context()
+    - optee: use driver internal tee_context for some rpc
+    - lan743x: fix deadlock in lan743x_phy_link_status_change()
+    - ping: remove pr_err from ping_lookup
+    - perf data: Fix double free in perf_session__delete()
+    - bpf: Do not try bpf_msg_push_data with len 0
+    - net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
+    - tipc: Fix end of loop tests for list_for_each_entry()
+    - gso: do not skip outer ip header in case of ipip and net_failover
+    - openvswitch: Fix setting ipv6 fields causing hw csum failure
+    - drm/edid: Always set RGB444
+    - net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
+    - net: ll_temac: check the return value of devm_kmalloc()
+    - net: Force inlining of checksum functions in net/checksum.h
+    - nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
+    - netfilter: nf_tables: fix memory leak during stateful obj update
+    - net/mlx5: Fix possible deadlock on rule deletion
+    - net/mlx5: Fix wrong limitation of metadata match on ecpf
+    - spi: spi-zynq-qspi: Fix a NULL pointer dereference in
+      zynq_qspi_exec_mem_op()
+    - configfs: fix a race in configfs_{,un}register_subsystem()
+    - RDMA/ib_srp: Fix a deadlock
+    - tracing: Have traceon and traceoff trigger honor the instance
+    - iio: adc: men_z188_adc: Fix a resource leak in an error handling path
+    - iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
+    - iio: Fix error handling for PM
+    - ata: pata_hpt37x: disable primary channel on HPT371
+    - Revert "USB: serial: ch341: add new Product ID for CH341A"
+    - usb: gadget: rndis: add spinlock for rndis response list
+    - tracefs: Set the group ownership in apply_options() not parse_options()
+    - USB: serial: option: add support for DW5829e
+    - USB: serial: option: add Telit LE910R1 compositions
+    - usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
+    - usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
+    - xhci: re-initialize the HC during resume if HCE was set
+    - xhci: Prevent futile URB re-submissions due to incorrect return value.
+    - tty: n_gsm: fix encoding of control signal octet bit DV
+    - tty: n_gsm: fix proper link termination after failed open
+    - tty: n_gsm: fix NULL pointer access due to DLCI release
+    - gpio: tegra186: Fix chip_data type confusion
+    - Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of
+      DEVINIT/PREOS/ACR"
+    - memblock: use kfree() to release kmalloced memblock regions
+    - fget: clarify and improve __fget_files() implementation
+    - Linux 5.4.182
+  * CVE-2022-28390
+    - can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
+
+  [ Ubuntu: 5.4.0-113.127 ]
+
+  * focal/linux: 5.4.0-113.127 -proposed tracker (LP: #1973980)
+  * CVE-2022-29581
+    - net/sched: cls_u32: fix netns refcount changes in u32_change()
+  * CVE-2022-1116
+    - io_uring: fix fs->users overflow
+  * ext4: limit length to bitmap_maxbytes (LP: #1972281)
+    - ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
+  * Unprivileged users may use PTRACE_SEIZE to set PTRACE_O_SUSPEND_SECCOMP
+    option (LP: #1972740)
+    - ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 16 Jun 2022 14:40:57 +0800
+
+linux-imx (5.4.0-1020.21) focal; urgency=medium
+
+  * CVE-2022-23960
+    - [Config] set CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+
+  * Disable unprivileged BPF by default (LP: #1961338)
+    - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+
+  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
+    - [Config] Enable CONFIG_DEBUG_INFO_BTF on all arches
+
+  * Support builtin revoked certificates (LP: #1932029)
+    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
+
+  * Focal update: v5.4.129 upstream stable release (LP: #1936242)
+    - [Config] enable CONFIG_SYSTEM_REVOCATION_LIST
+
+  * Kernel worker blocked for long time on system boot (LP: #1973786)
+    - lan743x: fix deadlock in lan743x_phy_link_status_change()
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update Ubuntu.md
+
+  [ Ubuntu: 5.4.0-110.124 ]
+
+  * focal/linux: 5.4.0-110.124 -proposed tracker (LP: #1969053)
+  * net/mlx5e: Fix page DMA map/unmap attributes (LP: #1967292)
+    - net/mlx5e: Fix page DMA map/unmap attributes
+  * xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
+    (LP: #1966803)
+    - xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
+  * LRMv6: add multi-architecture support (LP: #1968774)
+    - [Packaging] resync dkms-build{,--nvidia-N}
+  * xfrm interface cannot be changed anymore (LP: #1968591)
+    - xfrm: fix the if_id check in changelink
+  * Use kernel-testing repo from launchpad for ADT tests (LP: #1968016)
+    - [Debian] Use kernel-testing repo from launchpad
+  * vmx_ldtr_test in ubuntu_kvm_unit_tests failed (FAIL: Expected 0 for L1 LDTR
+    selector (got 50)) (LP: #1956315)
+    - KVM: nVMX: Set LDTR to its architecturally defined value on nested VM-Exit
+  * [SRU][Regression] Revert "PM: ACPI: reboot: Use S5 for reboot" which causes
+    Bus Fatal Error when rebooting system with BCM5720 NIC (LP: #1917471)
+    - Revert "PM: ACPI: reboot: Use S5 for reboot"
+  * Focal update: v5.4.181 upstream stable release (LP: #1967582)
+    - Makefile.extrawarn: Move -Wunaligned-access to W=1
+    - HID:Add support for UGTABLET WP5540
+    - Revert "svm: Add warning message for AVIC IPI invalid target"
+    - serial: parisc: GSC: fix build when IOSAPIC is not set
+    - parisc: Drop __init from map_pages declaration
+    - parisc: Fix data TLB miss in sba_unmap_sg
+    - parisc: Fix sglist access in ccio-dma.c
+    - btrfs: send: in case of IO error log it
+    - platform/x86: ISST: Fix possible circular locking dependency detected
+    - selftests: rtc: Increase test timeout so that all tests run
+    - net: ieee802154: at86rf230: Stop leaking skb's
+    - selftests/zram: Skip max_comp_streams interface on newer kernel
+    - selftests/zram01.sh: Fix compression ratio calculation
+    - selftests/zram: Adapt the situation that /dev/zram0 is being used
+    - ax25: improve the incomplete fix to avoid UAF and NPD bugs
+    - vfs: make freeze_super abort when sync_filesystem returns error
+    - quota: make dquot_quota_sync return errors from ->sync_fs
+    - nvme: fix a possible use-after-free in controller reset during load
+    - nvme-tcp: fix possible use-after-free in transport error_recovery work
+    - nvme-rdma: fix possible use-after-free in transport error_recovery work
+    - drm/amdgpu: fix logic inversion in check
+    - Revert "module, async: async_synchronize_full() on module init iff async is
+      used"
+    - ftrace: add ftrace_init_nop()
+    - module/ftrace: handle patchable-function-entry
+    - arm64: module: rework special section handling
+    - arm64: module/ftrace: intialize PLT at load time
+    - iwlwifi: fix use-after-free
+    - drm/radeon: Fix backlight control on iMac 12,1
+    - ext4: check for out-of-order index extents in ext4_valid_extent_entries()
+    - ext4: check for inconsistent extents between index and leaf block
+    - ext4: prevent partial update of the extent blocks
+    - taskstats: Cleanup the use of task->exit_code
+    - dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
+    - vsock: remove vsock from connected table when connect is interrupted by a
+      signal
+    - mmc: block: fix read single on recovery logic
+    - iwlwifi: pcie: fix locking when "HW not ready"
+    - iwlwifi: pcie: gen2: fix locking when "HW not ready"
+    - netfilter: nft_synproxy: unregister hooks on init error path
+    - net: dsa: lan9303: fix reset on probe
+    - net: ieee802154: ca8210: Fix lifs/sifs periods
+    - ping: fix the dif and sdif check in ping_lookup
+    - bonding: force carrier update when releasing slave
+    - drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
+    - bonding: fix data-races around agg_select_timer
+    - libsubcmd: Fix use-after-free for realloc(..., 0)
+    - ALSA: hda: Fix regression on forced probe mask option
+    - ALSA: hda: Fix missing codec probe on Shenker Dock 15
+    - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
+    - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
+    - powerpc/lib/sstep: fix 'ptesync' build error
+    - mtd: rawnand: gpmi: don't leak PM reference in error path
+    - block/wbt: fix negative inflight counter when remove scsi device
+    - NFS: LOOKUP_DIRECTORY is also ok with symlinks
+    - NFS: Do not report writeback errors in nfs_getattr()
+    - mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
+    - mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
+    - scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
+    - EDAC: Fix calculation of returned address and next offset in
+      edac_align_ptr()
+    - net: sched: limit TC_ACT_REPEAT loops
+    - dmaengine: sh: rcar-dmac: Check for error num after setting mask
+    - copy_process(): Move fd_install() out of sighand->siglock critical section
+    - i2c: brcmstb: fix support for DSL and CM variants
+    - Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
+    - KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
+    - ARM: OMAP2+: hwmod: Add of_node_put() before break
+    - ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
+    - irqchip/sifive-plic: Add missing thead,c900-plic match string
+    - netfilter: conntrack: don't refresh sctp entries in closed state
+    - arm64: dts: meson-gx: add ATF BL32 reserved-memory region
+    - arm64: dts: meson-g12: add ATF BL32 reserved-memory region
+    - arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
+    - kconfig: let 'shell' return enough output for deep path names
+    - ata: libata-core: Disable TRIM on M88V29
+    - drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+    - tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+    - net: usb: qmi_wwan: Add support for Dell DW5829e
+    - net: macb: Align the dma and coherent dma masks
+    - kconfig: fix failing to generate auto.conf
+    - Linux 5.4.181
+  * Focal update: v5.4.180 upstream stable release (LP: #1966118)
+    - integrity: check the return value of audit_log_start()
+    - ima: Remove ima_policy file before directory
+    - ima: Allow template selection with ima_template[_fmt]= after ima_hash=
+    - ima: Do not print policy rule with inactive LSM labels
+    - mmc: sdhci-of-esdhc: Check for error num after setting mask
+    - net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs
+    - net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs
+    - NFS: Fix initialisation of nfs_client cl_flags field
+    - NFSD: Clamp WRITE offsets
+    - NFSD: Fix offset type in I/O trace points
+    - NFSv4 only print the label when its queried
+    - nfs: nfs4clinet: check the return value of kstrdup()
+    - NFSv4.1: Fix uninitialised variable in devicenotify
+    - NFSv4 remove zero number of fs_locations entries error check
+    - NFSv4 expose nfs_parse_server_name function
+    - drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer
+    - net: sched: Clarify error message when qdisc kind is unknown
+    - scsi: target: iscsi: Make sure the np under each tpg is unique
+    - scsi: qedf: Fix refcount issue when LOGO is received during TMF
+    - scsi: myrs: Fix crash in error case
+    - PM: hibernate: Remove register_nosave_region_late()
+    - usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
+    - net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()
+    - KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER
+    - riscv: fix build with binutils 2.38
+    - ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
+    - ARM: socfpga: fix missing RESET_CONTROLLER
+    - nvme-tcp: fix bogus request completion when failing to send AER
+    - ACPI/IORT: Check node revision for PMCG resources
+    - PM: s2idle: ACPI: Fix wakeup interrupts handling
+    - net: bridge: fix stale eth hdr pointer in br_dev_xmit
+    - perf probe: Fix ppc64 'perf probe add events failed' case
+    - ARM: dts: meson: Fix the UART compatible strings
+    - staging: fbtft: Fix error path in fbtft_driver_module_init()
+    - ARM: dts: imx6qdl-udoo: Properly describe the SD card detect
+    - usb: f_fs: Fix use-after-free for epfile
+    - misc: fastrpc: avoid double fput() on failed usercopy
+    - ixgbevf: Require large buffers for build_skb on 82599VF
+    - bonding: pair enable_port with slave_arr_updates
+    - ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path
+    - nfp: flower: fix ida_idx not being released
+    - net: do not keep the dst cache when uncloning an skb dst and its metadata
+    - net: fix a memleak when uncloning an skb dst and its metadata
+    - veth: fix races around rq->rx_notify_masked
+    - net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE
+    - tipc: rate limit warning for received illegal binding update
+    - net: amd-xgbe: disable interrupts during pci removal
+    - vt_ioctl: fix array_index_nospec in vt_setactivate
+    - vt_ioctl: add array_index_nospec to VT_ACTIVATE
+    - n_tty: wake up poll(POLLRDNORM) on receiving data
+    - eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX
+    - net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup
+    - usb: ulpi: Move of_node_put to ulpi_dev_release
+    - usb: ulpi: Call of_node_put correctly
+    - usb: dwc3: gadget: Prevent core from processing stale TRBs
+    - usb: gadget: udc: renesas_usb3: Fix host to USB_ROLE_NONE transition
+    - USB: gadget: validate interface OS descriptor requests
+    - usb: gadget: rndis: check size of RNDIS_MSG_SET command
+    - usb: gadget: f_uac2: Define specific wTerminalType
+    - USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320
+    - USB: serial: option: add ZTE MF286D modem
+    - USB: serial: ch341: add support for GW Instek USB2.0-Serial devices
+    - USB: serial: cp210x: add NCR Retail IO box id
+    - USB: serial: cp210x: add CPI Bulk Coin Recycler id
+    - seccomp: Invalidate seccomp mode to catch death failures
+    - hwmon: (dell-smm) Speed up setting of fan speed
+    - scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled
+    - perf: Fix list corruption in perf_cgroup_switch()
+    - Linux 5.4.180
+  * Focal update: v5.4.179 upstream stable release (LP: #1965591)
+    - moxart: fix potential use-after-free on remove path
+    - Linux 5.4.179
+  * CVE-2020-27820
+    - drm/nouveau: Add a dedicated mutex for the clients list
+    - drm/nouveau: clean up all clients on device removal
+  * CVE-2022-1016
+    - netfilter: nf_tables: initialize registers in nft_do_chain()
+  * CVE-2022-27223
+    - USB: gadget: validate endpoint index for xilinx udc
+  * CVE-2022-26490
+    - nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
+  * CVE-2021-26401
+    - x86/speculation: Use generic retpoline by default on AMD
+    - x86/speculation: Update link to AMD speculation whitepaper
+    - x86/speculation: Warn about Spectre v2 LFENCE mitigation
+    - x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
+  * CVE-2022-0001
+    - x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation
+      reporting
+
+  [ Ubuntu: 5.4.0-109.123 ]
+
+  * focal/linux: 5.4.0-109.123 -proposed tracker (LP: #1968290)
+  * USB devices not detected during boot on USB 3.0 hubs (LP: #1968210)
+    - SAUCE: Revert "Revert "xhci: Set HCD flag to defer primary roothub
+      registration""
+    - SAUCE: Revert "Revert "usb: core: hcd: Add support for deferring roothub
+      registration""
+
+  [ Ubuntu: 5.4.0-108.122 ]
+
+  * focal/linux: 5.4.0-108.122 -proposed tracker (LP: #1966740)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5
+    - debian/dkms-versions -- update from kernel-versions (main/2022.03.21)
+  * Low RX performance for 40G Solarflare NICs (LP: #1964512)
+    - SAUCE: sfc: The size of the RX recycle ring should be more flexible
+  * [UBUNTU 20.04] KVM: Enable storage key checking for intercepted instruction
+    (LP: #1962831)
+    - selftests: kvm: add _vm_ioctl
+    - selftests: kvm: Introduce the TEST_FAIL macro
+    - KVM: selftests: Add GUEST_ASSERT variants to pass values to host
+    - KVM: s390: gaccess: Refactor gpa and length calculation
+    - KVM: s390: gaccess: Refactor access address range check
+    - KVM: s390: gaccess: Cleanup access to guest pages
+    - s390/uaccess: introduce bit field for OAC specifier
+    - s390/uaccess: fix compile error
+    - s390/uaccess: Add copy_from/to_user_key functions
+    - KVM: s390: Honor storage keys when accessing guest memory
+    - KVM: s390: handle_tprot: Honor storage keys
+    - KVM: s390: selftests: Test TEST PROTECTION emulation
+    - KVM: s390: Add optional storage key checking to MEMOP IOCTL
+    - KVM: s390: Add vm IOCTL for key checked guest absolute memory access
+    - KVM: s390: Rename existing vcpu memop functions
+    - KVM: s390: Add capability for storage key extension of MEM_OP IOCTL
+    - KVM: s390: Update api documentation for memop ioctl
+    - KVM: s390: Clarify key argument for MEM_OP in api docs
+    - KVM: s390: Add missing vm MEM_OP size check
+  * 【sec-0911】 fail to reset sec module (LP: #1943301)
+    - crypto: hisilicon/sec2 - Add workqueue for SEC driver.
+    - crypto: hisilicon/sec2 - update SEC initialization and reset
+  * Lots of hisi_qm zombie task slow down system after stress test
+    (LP: #1932117)
+    - crypto: hisilicon - Use one workqueue per qm instead of per qp
+  * Lots of hisi_qm zombie task slow down system after stress test
+    (LP: #1932117) // 【sec-0911】 fail to reset sec module (LP: #1943301)
+    - crypto: hisilicon - Unify hardware error init/uninit into QM
+  * [UBUNTU 20.04] Fix SIGP processing on KVM/s390 (LP: #1962578)
+    - KVM: s390: Simplify SIGP Set Arch handling
+    - KVM: s390: Add a routine for setting userspace CPU state
+  * Move virtual graphics drivers from linux-modules-extra to linux-modules
+    (LP: #1960633)
+    - [Packaging] Move VM DRM drivers into modules
+  * Focal update: v5.4.178 upstream stable release (LP: #1964634)
+    - audit: improve audit queue handling when "audit=1" on cmdline
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw()
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx()
+    - ALSA: usb-audio: Simplify quirk entries with a macro
+    - ALSA: hda/realtek: Add quirk for ASUS GU603
+    - ALSA: hda/realtek: Add missing fixup-model entry for Gigabyte X570 ALC1220
+      quirks
+    - ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer
+      chipset)
+    - ALSA: hda/realtek: Fix silent output on Gigabyte X570 Aorus Xtreme after
+      reboot from Windows
+    - btrfs: fix deadlock between quota disable and qgroup rescan worker
+    - drm/nouveau: fix off by one in BIOS boundary checking
+    - mm/kmemleak: avoid scanning potential huge holes
+    - block: bio-integrity: Advance seed correctly for larger interval sizes
+    - memcg: charge fs_context and legacy_fs_context
+    - IB/rdmavt: Validate remote_addr during loopback atomic tests
+    - RDMA/siw: Fix broken RDMA Read Fence/Resume logic.
+    - RDMA/mlx4: Don't continue event handler after memory allocation failure
+    - iommu/vt-d: Fix potential memory leak in intel_setup_irq_remapping()
+    - iommu/amd: Fix loop timeout issue in iommu_ga_log_enable()
+    - spi: bcm-qspi: check for valid cs before applying chip select
+    - spi: mediatek: Avoid NULL pointer crash in interrupt
+    - spi: meson-spicc: add IRQ check in meson_spicc_probe
+    - net: ieee802154: hwsim: Ensure proper channel selection at probe time
+    - net: ieee802154: mcr20a: Fix lifs/sifs periods
+    - net: ieee802154: ca8210: Stop leaking skb's
+    - net: ieee802154: Return meaningful error codes from the netlink helpers
+    - net: macsec: Verify that send_sci is on when setting Tx sci explicitly
+    - net: stmmac: dump gmac4 DMA registers correctly
+    - net: stmmac: ensure PTP time register reads are consistent
+    - drm/i915/overlay: Prevent divide by zero bugs in scaling
+    - ASoC: fsl: Add missing error handling in pcm030_fabric_probe
+    - ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period bytes
+    - ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name
+    - ASoC: max9759: fix underflow in speaker_gain_control_put()
+    - pinctrl: bcm2835: Fix a few error paths
+    - scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe
+    - nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client.
+    - selftests: futex: Use variable MAKE instead of make
+    - rtc: cmos: Evaluate century appropriate
+    - EDAC/altera: Fix deferred probing
+    - EDAC/xgene: Fix deferred probing
+    - ext4: fix error handling in ext4_restore_inline_data()
+    - cgroup/cpuset: Fix "suspicious RCU usage" lockdep warning
+    - Linux 5.4.178
+  * Focal update: v5.4.177 upstream stable release (LP: #1964628)
+    - PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
+    - psi: Fix uaf issue when psi trigger is destroyed while being polled
+    - ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
+    - net: amd-xgbe: ensure to reset the tx_timer_active flag
+    - net: amd-xgbe: Fix skb data length underflow
+    - rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
+    - cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask()
+    - af_packet: fix data-race in packet_setsockopt / packet_setsockopt
+    - Linux 5.4.177
+  * Focal update: v5.4.176 upstream stable release (LP: #1962345)
+    - s390/hypfs: include z/VM guests with access control group set
+    - scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP
+      devices
+    - udf: Restore i_lenAlloc when inode expansion fails
+    - udf: Fix NULL ptr deref when converting from inline format
+    - PM: wakeup: simplify the output logic of pm_show_wakelocks()
+    - tracing/histogram: Fix a potential memory leak for kstrdup()
+    - tracing: Don't inc err_log entry count if entry allocation fails
+    - fsnotify: fix fsnotify hooks in pseudo filesystems
+    - drm/etnaviv: relax submit size limits
+    - arm64: errata: Fix exec handling in erratum 1418040 workaround
+    - netfilter: nft_payload: do not update layer 4 checksum when mangling
+      fragments
+    - serial: 8250: of: Fix mapped region size when using reg-offset property
+    - serial: stm32: fix software flow control transfer
+    - tty: n_gsm: fix SW flow control encoding/handling
+    - tty: Add support for Brainboxes UC cards.
+    - usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
+    - usb: common: ulpi: Fix crash in ulpi_match()
+    - usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
+    - USB: core: Fix hang in usb_kill_urb by adding memory barriers
+    - usb: typec: tcpm: Do not disconnect while receiving VBUS off
+    - ucsi_ccg: Check DEV_INT bit only when starting CCG4
+    - net: sfp: ignore disabled SFP node
+    - powerpc/32: Fix boot failure with GCC latent entropy plugin
+    - i40e: Increase delay to 1 s after global EMP reset
+    - i40e: Fix issue when maximum queues is exceeded
+    - i40e: Fix queues reservation for XDP
+    - i40e: fix unsigned stat widths
+    - rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
+    - rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
+    - scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
+    - ipv6_tunnel: Rate limit warning messages
+    - net: fix information leakage in /proc/net/ptype
+    - hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
+    - hwmon: (lm90) Mark alert as broken for MAX6680
+    - ping: fix the sk_bound_dev_if match in ping_lookup
+    - ipv4: avoid using shared IP generator for connected sockets
+    - hwmon: (lm90) Reduce maximum conversion rate for G781
+    - NFSv4: Handle case where the lookup of a directory fails
+    - NFSv4: nfs_atomic_open() can race when looking up a non-regular file
+    - net-procfs: show net devices bound packet types
+    - drm/msm: Fix wrong size calculation
+    - drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
+    - drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
+    - ipv6: annotate accesses to fn->fn_sernum
+    - NFS: Ensure the server has an up to date ctime before hardlinking
+    - NFS: Ensure the server has an up to date ctime before renaming
+    - netfilter: conntrack: don't increment invalid counter on NF_REPEAT
+    - net: phy: broadcom: hook up soft_reset for BCM54616S
+    - phylib: fix potential use-after-free
+    - rxrpc: Adjust retransmission backoff
+    - hwmon: (lm90) Mark alert as broken for MAX6654
+    - ibmvnic: init ->running_cap_crqs early
+    - ibmvnic: don't spin in tasklet
+    - drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
+    - yam: fix a memory leak in yam_siocdevprivate()
+    - net: hns3: handle empty unknown interrupt for VF
+    - ipv4: raw: lock the socket in raw_bind()
+    - ipv4: tcp: send zero IPID in SYNACK messages
+    - ipv4: remove sparse error in ip_neigh_gw4()
+    - dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
+    - fsnotify: invalidate dcache before IN_DELETE event
+    - block: Fix wrong offset in bio_truncate()
+    - mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
+    - Linux 5.4.176
+  * Focal update: v5.4.175 upstream stable release (LP: #1962330)
+    - rcu: Tighten rcu_advance_cbs_nowake() checks
+    - pinctrl: bcm2835: Drop unused define
+    - pinctrl: bcm2835: Refactor platform data
+    - pinctrl: bcm2835: Add support for all GPIOs on BCM2711
+    - pinctrl: bcm2835: Match BCM7211 compatible string
+    - pinctrl: bcm2835: Add support for wake-up interrupts
+    - pinctrl: bcm2835: Change init order for gpio hogs
+    - ARM: dts: gpio-ranges property is now required
+    - mmc: sdhci-esdhc-imx: disable CMDQ support
+    - select: Fix indefinitely sleeping task in poll_schedule_timeout()
+    - Linux 5.4.175
+
+  [ Ubuntu: 5.4.0-107.121 ]
+
+  * focal/linux: 5.4.0-107.121 -proposed tracker (LP: #1966275)
+  * CVE-2022-27666
+    - esp: Fix possible buffer overflow in ESP transformation
+  * CVE-2022-1055
+    - net: sched: fix use-after-free in tc_new_tfilter()
+  * Pick fixup from v5.4.176 upstream stable release to address cert
+    failure with clock jitter test in NUC7i3DNHE (LP: #1964204)
+    - Bluetooth: refactor malicious adv data check
+
+  [ Ubuntu: 5.4.0-105.119 ]
+
+  * CVE-2022-0847
+    - lib/iov_iter: initialize "flags" in new pipe_buffer
+  * Broken network on some AWS instances with focal/impish kernels
+    (LP: #1961968)
+    - SAUCE: Revert "PCI/MSI: Mask MSI-X vectors only on success"
+  * [UBUNTU 20.04] kernel: Add support for CPU-MF counter second version 7
+    (LP: #1960182)
+    - s390/cpumf: Support for CPU Measurement Facility CSVN 7
+    - s390/cpumf: Support for CPU Measurement Sampling Facility LS bit
+  * Hipersocket page allocation failure on Ubuntu 20.04 based SSC environments
+    (LP: #1959529)
+    - s390/qeth: use memory reserves to back RX buffers
+  * CVE-2022-0516
+    - KVM: s390: Return error on SIDA memop on normal guest
+  * CVE-2022-0435
+    - tipc: improve size validations for received domain records
+  * CVE-2022-0492
+    - cgroup-v1: Require capabilities to set release_agent
+  * Recalled NFSv4 files delegations overwhelm server (LP: #1957986)
+    - NFSv4: Fix delegation handling in update_open_stateid()
+    - NFSv4: nfs4_callback_getattr() should ignore revoked delegations
+    - NFSv4: Delegation recalls should not find revoked delegations
+    - NFSv4: fail nfs4_refresh_delegation_stateid() when the delegation was
+      revoked
+    - NFS: Rename nfs_inode_return_delegation_noreclaim()
+    - NFSv4: Don't remove the delegation from the super_list more than once
+    - NFSv4: Hold the delegation spinlock when updating the seqid
+    - NFSv4: Clear the NFS_DELEGATION_REVOKED flag in
+      nfs_update_inplace_delegation()
+    - NFSv4: Update the stateid seqid in nfs_revoke_delegation()
+    - NFSv4: Revoke the delegation on success in nfs4_delegreturn_done()
+    - NFSv4: Ignore requests to return the delegation if it was revoked
+    - NFSv4: Don't reclaim delegations that have been returned or revoked
+    - NFSv4: nfs4_return_incompatible_delegation() should check delegation
+      validity
+    - NFSv4: Fix nfs4_inode_make_writeable()
+    - NFS: nfs_inode_find_state_and_recover() fix stateid matching
+    - NFSv4: Fix races between open and delegreturn
+    - NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn
+    - NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done()
+    - NFSv4: nfs_inode_evict_delegation() should set NFS_DELEGATION_RETURNING
+    - NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is returned
+    - NFSv4: Try to return the delegation immediately when marked for return on
+      close
+    - NFSv4: Add accounting for the number of active delegations held
+    - NFSv4: Limit the total number of cached delegations
+    - NFSv4: Ensure the delegation is pinned in nfs_do_return_delegation()
+    - NFSv4: Ensure the delegation cred is pinned when we call delegreturn
+  * Focal update: v5.4.174 upstream stable release (LP: #1960566)
+    - HID: uhid: Fix worker destroying device without any protection
+    - HID: wacom: Reset expected and received contact counts at the same time
+    - HID: wacom: Ignore the confidence flag when a touch is removed
+    - HID: wacom: Avoid using stale array indicies to read contact count
+    - f2fs: fix to do sanity check in is_alive()
+    - nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed
+      bind()
+    - mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
+    - mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
+    - x86/gpu: Reserve stolen memory for first integrated Intel GPU
+    - tools/nolibc: x86-64: Fix startup code bug
+    - tools/nolibc: i386: fix initial stack alignment
+    - tools/nolibc: fix incorrect truncation of exit code
+    - rtc: cmos: take rtc_lock while reading from CMOS
+    - media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
+    - media: flexcop-usb: fix control-message timeouts
+    - media: mceusb: fix control-message timeouts
+    - media: em28xx: fix control-message timeouts
+    - media: cpia2: fix control-message timeouts
+    - media: s2255: fix control-message timeouts
+    - media: dib0700: fix undefined behavior in tuner shutdown
+    - media: redrat3: fix control-message timeouts
+    - media: pvrusb2: fix control-message timeouts
+    - media: stk1160: fix control-message timeouts
+    - can: softing_cs: softingcs_probe(): fix memleak on registration failure
+    - lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
+    - iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
+    - dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
+    - PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
+    - mm_zone: add function to check if managed dma zone exists
+    - mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed
+      pages
+    - shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
+    - drm/rockchip: dsi: Hold pm-runtime across bind/unbind
+    - drm/rockchip: dsi: Reconfigure hardware on resume()
+    - drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
+    - drm/panel: innolux-p079zca: Delete panel on attach() failure
+    - drm/rockchip: dsi: Fix unbalanced clock on probe error
+    - Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
+    - clk: bcm-2835: Pick the closest clock rate
+    - clk: bcm-2835: Remove rounding up the dividers
+    - wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
+    - wcn36xx: Release DMA channel descriptor allocations
+    - media: videobuf2: Fix the size printk format
+    - media: aspeed: fix mode-detect always time out at 2nd run
+    - media: em28xx: fix memory leak in em28xx_init_dev
+    - media: aspeed: Update signal status immediately to ensure sane hw state
+    - arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
+    - arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
+    - Bluetooth: stop proccessing malicious adv data
+    - tee: fix put order in teedev_close_context()
+    - media: dmxdev: fix UAF when dvb_register_device() fails
+    - crypto: qce - fix uaf on qce_ahash_register_one
+    - arm64: dts: ti: k3-j721e: correct cache-sets info
+    - tty: serial: atmel: Check return code of dmaengine_submit()
+    - tty: serial: atmel: Call dma_async_issue_pending()
+    - media: rcar-csi2: Correct the selection of hsfreqrange
+    - media: imx-pxp: Initialize the spinlock prior to using it
+    - media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
+    - media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
+    - media: venus: core: Fix a resource leak in the error handling path of
+      'venus_probe()'
+    - netfilter: bridge: add support for pppoe filtering
+    - arm64: dts: qcom: msm8916: fix MMC controller aliases
+    - ACPI: EC: Rework flushing of EC work while suspended to idle
+    - drm/amdgpu: Fix a NULL pointer dereference in
+      amdgpu_connector_lcd_native_mode()
+    - drm/radeon/radeon_kms: Fix a NULL pointer dereference in
+      radeon_driver_open_kms()
+    - arm64: dts: ti: k3-j721e: Fix the L2 cache sets
+    - tty: serial: uartlite: allow 64 bit address
+    - serial: amba-pl011: do not request memory region twice
+    - floppy: Fix hang in watchdog when disk is ejected
+    - staging: rtl8192e: return error code from rtllib_softmac_init()
+    - staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
+    - Bluetooth: btmtksdio: fix resume failure
+    - media: dib8000: Fix a memleak in dib8000_init()
+    - media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
+    - media: si2157: Fix "warm" tuner state detection
+    - sched/rt: Try to restart rt period timer when rt runtime exceeded
+    - rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
+    - mwifiex: Fix possible ABBA deadlock
+    - xfrm: fix a small bug in xfrm_sa_len()
+    - crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
+    - crypto: stm32/cryp - fix double pm exit
+    - crypto: stm32/cryp - fix lrw chaining mode
+    - ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
+    - media: dw2102: Fix use after free
+    - media: msi001: fix possible null-ptr-deref in msi001_probe()
+    - media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
+    - drm/msm/dpu: fix safe status debugfs file
+    - drm/bridge: ti-sn65dsi86: Set max register for regmap
+    - media: hantro: Fix probe func error path
+    - xfrm: interface with if_id 0 should return error
+    - xfrm: state and policy should fail if XFRMA_IF_ID 0
+    - ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
+    - usb: ftdi-elan: fix memory leak on device disconnect
+    - ARM: dts: armada-38x: Add generic compatible to UART nodes
+    - mmc: meson-mx-sdio: add IRQ check
+    - selinux: fix potential memleak in selinux_add_opt()
+    - bpftool: Enable line buffering for stdout
+    - x86/mce/inject: Avoid out-of-bounds write when setting flags
+    - ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
+    - pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+      __nonstatic_find_io_region()
+    - pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+      nonstatic_find_mem_region()
+    - netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
+    - bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
+    - ppp: ensure minimum packet size in ppp_write()
+    - rocker: fix a sleeping in atomic bug
+    - staging: greybus: audio: Check null pointer
+    - fsl/fman: Check for null pointer after calling devm_ioremap
+    - Bluetooth: hci_bcm: Check for error irq
+    - HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_get_str_desc
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_huion_init
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_frame_init_v1_buttonpad
+    - debugfs: lockdown: Allow reading debugfs files that are not world readable
+    - net/mlx5e: Don't block routes with nexthop objects in SW
+    - Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
+    - net/mlx5: Set command entry semaphore up once got index free
+    - spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
+    - tpm: add request_locality before write TPM_INT_ENABLE
+    - can: softing: softing_startstop(): fix set but not used variable warning
+    - can: xilinx_can: xcan_probe(): check for error irq
+    - pcmcia: fix setting of kthread task states
+    - net: mcs7830: handle usb read errors properly
+    - ext4: avoid trim error on fs with small groups
+    - ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
+    - ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
+    - ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
+    - RDMA/hns: Validate the pkey index
+    - clk: imx8mn: Fix imx8mn_clko1_sels
+    - powerpc/prom_init: Fix improper check of prom_getprop()
+    - ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
+    - ALSA: oss: fix compile error when OSS_DEBUG is enabled
+    - char/mwave: Adjust io port register size
+    - binder: fix handling of error during copy
+    - iommu/io-pgtable-arm: Fix table descriptor paddr formatting
+    - scsi: ufs: Fix race conditions related to driver data
+    - PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
+    - powerpc/powermac: Add additional missing lockdep_register_key()
+    - RDMA/core: Let ib_find_gid() continue search even after empty entry
+    - RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
+    - ASoC: rt5663: Handle device_property_read_u32_array error codes
+    - clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system
+      enter shell
+    - dmaengine: pxa/mmp: stop referencing config->slave_id
+    - iommu/iova: Fix race between FQ timeout and teardown
+    - phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
+    - ASoC: samsung: idma: Check of ioremap return value
+    - misc: lattice-ecp3-config: Fix task hung when firmware load failed
+    - mips: lantiq: add support for clk_set_parent()
+    - mips: bcm63xx: add support for clk_set_parent()
+    - RDMA/cxgb4: Set queue pair state when being queried
+    - of: base: Fix phandle argument length mismatch error message
+    - Bluetooth: Fix debugfs entry leak in hci_register_dev()
+    - fs: dlm: filter user dlm messages for kernel locks
+    - drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
+    - ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
+    - drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
+    - ARM: shmobile: rcar-gen2: Add missing of_node_put()
+    - batman-adv: allow netlink usage in unprivileged containers
+    - usb: gadget: f_fs: Use stream_open() for endpoint files
+    - drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
+    - HID: apple: Do not reset quirks when the Fn key is not found
+    - media: b2c2: Add missing check in flexcop_pci_isr:
+    - EDAC/synopsys: Use the quirk for version instead of ddr version
+    - mlxsw: pci: Add shutdown method in PCI driver
+    - drm/bridge: megachips: Ensure both bridges are probed before registration
+    - gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
+    - HSI: core: Fix return freed object in hsi_new_client
+    - mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
+    - rsi: Fix use-after-free in rsi_rx_done_handler()
+    - rsi: Fix out-of-bounds read in rsi_read_pkt()
+    - usb: uhci: add aspeed ast2600 uhci support
+    - floppy: Add max size check for user space request
+    - x86/mm: Flush global TLB when switching to trampoline page-table
+    - media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
+    - media: saa7146: hexium_orion: Fix a NULL pointer dereference in
+      hexium_attach()
+    - media: m920x: don't use stack on USB reads
+    - iwlwifi: mvm: synchronize with FW after multicast commands
+    - ath10k: Fix tx hanging
+    - net-sysfs: update the queue counts in the unregistration path
+    - net: phy: prefer 1000baseT over 1000baseKX
+    - gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
+    - x86/mce: Mark mce_panic() noinstr
+    - x86/mce: Mark mce_end() noinstr
+    - x86/mce: Mark mce_read_aux() noinstr
+    - net: bonding: debug: avoid printing debug logs when bond is not notifying
+      peers
+    - bpf: Do not WARN in bpf_warn_invalid_xdp_action()
+    - HID: quirks: Allow inverting the absolute X/Y values
+    - media: igorplugusb: receiver overflow should be reported
+    - media: saa7146: hexium_gemini: Fix a NULL pointer dereference in
+      hexium_attach()
+    - mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
+    - audit: ensure userspace is penalized the same as the kernel when under
+      pressure
+    - arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
+    - arm64: tegra: Adjust length of CCPLEX cluster MMIO region
+    - cpufreq: Fix initialization of min and max frequency QoS requests
+    - usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
+    - ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
+    - iwlwifi: fix leaks/bad data after failed firmware load
+    - iwlwifi: remove module loading failure message
+    - iwlwifi: mvm: Fix calculation of frame length
+    - um: registers: Rename function names to avoid conflicts and build problems
+    - jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
+    - ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
+    - ACPICA: Utilities: Avoid deleting the same object twice in a row
+    - ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
+    - ACPICA: Fix wrong interpretation of PCC address
+    - ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
+    - drm/amdgpu: fixup bad vram size on gmc v8
+    - ACPI: battery: Add the ThinkPad "Not Charging" quirk
+    - btrfs: remove BUG_ON() in find_parent_nodes()
+    - btrfs: remove BUG_ON(!eie) in find_parent_nodes
+    - net: mdio: Demote probed message to debug print
+    - mac80211: allow non-standard VHT MCS-10/11
+    - dm btree: add a defensive bounds check to insert_at()
+    - dm space map common: add bounds check to sm_ll_lookup_bitmap()
+    - net: phy: marvell: configure RGMII delays for 88E1118
+    - net: gemini: allow any RGMII interface mode
+    - regulator: qcom_smd: Align probe function with rpmh-regulator
+    - serial: pl010: Drop CR register reset on set_termios
+    - serial: core: Keep mctrl register state and cached copy in sync
+    - random: do not throw away excess input to crng_fast_load
+    - parisc: Avoid calling faulthandler_disabled() twice
+    - powerpc/6xx: add missing of_node_put
+    - powerpc/powernv: add missing of_node_put
+    - powerpc/cell: add missing of_node_put
+    - powerpc/btext: add missing of_node_put
+    - powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
+    - i2c: i801: Don't silently correct invalid transfer size
+    - powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
+    - i2c: mpc: Correct I2C reset procedure
+    - clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
+    - powerpc/powermac: Add missing lockdep_register_key()
+    - KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
+    - w1: Misuse of get_user()/put_user() reported by sparse
+    - scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
+    - ALSA: seq: Set upper limit of processed events
+    - powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
+    - MIPS: OCTEON: add put_device() after of_find_device_by_node()
+    - i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
+    - MIPS: Octeon: Fix build errors using clang
+    - scsi: sr: Don't use GFP_DMA
+    - ASoC: mediatek: mt8173: fix device_node leak
+    - power: bq25890: Enable continuous conversion for ADC at charging
+    - rpmsg: core: Clean up resources on announce_create failure.
+    - crypto: omap-aes - Fix broken pm_runtime_and_get() usage
+    - crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
+    - crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
+    - ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
+    - fuse: Pass correct lend value to filemap_write_and_wait_range()
+    - serial: Fix incorrect rs485 polarity on uart open
+    - cputime, cpuacct: Include guest time in user time in cpuacct.stat
+    - tracing/kprobes: 'nmissed' not showed correctly for kretprobe
+    - iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
+    - s390/mm: fix 2KB pgtable release race
+    - drm/etnaviv: limit submit sizes
+    - drm/nouveau/kms/nv04: use vzalloc for nv04_display
+    - drm/bridge: analogix_dp: Make PSR-exit block less
+    - PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
+    - PCI: pci-bridge-emul: Correctly set PCIe capabilities
+    - PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
+    - xfrm: fix policy lookup for ipv6 gre packets
+    - btrfs: fix deadlock between quota enable and other quota operations
+    - btrfs: check the root node for uptodate before returning it
+    - btrfs: respect the max size in the header when activating swap file
+    - ext4: make sure to reset inode lockdep class when quota enabling fails
+    - ext4: make sure quota gets properly shutdown on error
+    - ext4: set csum seed in tmp inode while migrating to extents
+    - ext4: Fix BUG_ON in ext4_bread when write quota data
+    - ext4: don't use the orphan list when migrating an inode
+    - drm/radeon: fix error handling in radeon_driver_open_kms
+    - of: base: Improve argument length mismatch error
+    - firmware: Update Kconfig help text for Google firmware
+    - media: rcar-csi2: Optimize the selection PHTW register
+    - Documentation: dmaengine: Correctly describe dmatest with channel unset
+    - Documentation: ACPI: Fix data node reference documentation
+    - Documentation: refer to config RANDOMIZE_BASE for kernel address-space
+      randomization
+    - Documentation: fix firewire.rst ABI file path error
+    - scsi: core: Show SCMD_LAST in text form
+    - RDMA/hns: Modify the mapping attribute of doorbell to device
+    - RDMA/rxe: Fix a typo in opcode name
+    - dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
+    - Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
+    - powerpc/cell: Fix clang -Wimplicit-fallthrough warning
+    - powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
+    - bpftool: Remove inclusion of utilities.mak from Makefiles
+    - ipv4: avoid quadratic behavior in netns dismantle
+    - net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
+    - parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
+    - f2fs: fix to reserve space for IO align feature
+    - af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
+    - clk: si5341: Fix clock HW provider cleanup
+    - net: axienet: limit minimum TX ring size
+    - net: axienet: fix number of TX ring slots for available check
+    - net: axienet: increase default TX ring size to 128
+    - rtc: pxa: fix null pointer dereference
+    - inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
+    - netns: add schedule point in ops_exit_list()
+    - xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
+    - gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
+    - libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
+    - perf script: Fix hex dump character output
+    - dmaengine: at_xdmac: Don't start transactions at tx_submit level
+    - dmaengine: at_xdmac: Print debug message after realeasing the lock
+    - dmaengine: at_xdmac: Fix concurrency over xfers_list
+    - dmaengine: at_xdmac: Fix lld view setting
+    - dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
+    - arm64: dts: qcom: msm8996: drop not documented adreno properties
+    - net_sched: restore "mpu xxx" handling
+    - bcmgenet: add WOL IRQ check
+    - net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
+    - dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
+    - dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
+    - scripts/dtc: dtx_diff: remove broken example from help text
+    - lib82596: Fix IRQ check in sni_82596_probe
+    - lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
+    - mtd: nand: bbt: Fix corner case in bad block table handling
+    - Revert "ia64: kprobes: Use generic kretprobe trampoline handler"
+    - Linux 5.4.174
+  * Focal update: v5.4.173 upstream stable release (LP: #1959701)
+    - kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test
+    - devtmpfs regression fix: reconfigure on each mount
+    - orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc()
+    - perf: Protect perf_guest_cbs with RCU
+    - KVM: s390: Clarify SIGP orders versus STOP/RESTART
+    - media: uvcvideo: fix division by zero at stream start
+    - rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with
+      interrupts enabled
+    - firmware: qemu_fw_cfg: fix sysfs information leak
+    - firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
+    - firmware: qemu_fw_cfg: fix kobject leak in probe error path
+    - KVM: x86: remove PMU FIXED_CTR3 from msrs_to_save_all
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after
+      reboot from Windows
+    - mtd: fixup CFI on ixp4xx
+    - ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN depends on !LD_IS_LLD
+    - Linux 5.4.173
+  * Focal update: v5.4.172 upstream stable release (LP: #1959698)
+    - workqueue: Fix unbind_workers() VS wq_worker_running() race
+    - Bluetooth: btusb: fix memory leak in btusb_mtk_submit_wmt_recv_urb()
+    - Bluetooth: bfusb: fix division by zero in send path
+    - USB: core: Fix bug in resuming hub's handling of wakeup requests
+    - USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
+    - mmc: sdhci-pci: Add PCI ID for Intel ADL
+    - veth: Do not record rx queue hint in veth_xmit
+    - mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
+    - drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...)
+      functions
+    - can: gs_usb: fix use of uninitialized variable, detach device on reception
+      of invalid USB data
+    - can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
+    - random: fix data race on crng_node_pool
+    - random: fix data race on crng init time
+    - random: fix crash on multiple early calls to add_bootloader_randomness()
+    - media: Revert "media: uvcvideo: Set unique vdev name based in type"
+    - staging: wlan-ng: Avoid bitwise vs logical OR warning in
+      hfa384x_usb_throttlefn()
+    - drm/i915: Avoid bitwise vs logical OR warning in snb_wm_latency_quirk()
+    - staging: greybus: fix stack size warning with UBSAN
+    - Linux 5.4.172
+  * Focal update: v5.4.171 upstream stable release (LP: #1959437)
+    - f2fs: quota: fix potential deadlock
+    - Input: touchscreen - Fix backport of
+      a02dcde595f7cbd240ccd64de96034ad91cffc40
+    - selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv()
+    - tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
+    - tracing: Tag trace_percpu_buffer as a percpu pointer
+    - ieee802154: atusb: fix uninit value in atusb_set_extended_addr
+    - iavf: Fix limit of total number of queues to active queues of VF
+    - RDMA/core: Don't infoleak GRH fields
+    - RDMA/uverbs: Check for null return of kmalloc_array
+    - mac80211: initialize variable have_higher_than_11mbit
+    - i40e: fix use-after-free in i40e_sync_filters_subtask()
+    - i40e: Fix for displaying message regarding NVM version
+    - i40e: Fix incorrect netdev's real number of RX/TX queues
+    - ipv4: Check attribute length for RTA_GATEWAY in multipath route
+    - ipv4: Check attribute length for RTA_FLOW in multipath route
+    - ipv6: Check attribute length for RTA_GATEWAY in multipath route
+    - ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route
+    - lwtunnel: Validate RTA_ENCAP_TYPE attribute length
+    - batman-adv: mcast: don't send link-local multicast to mcast routers
+    - sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
+    - net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8081
+    - power: supply: core: Break capacity loop
+    - power: reset: ltc2952: Fix use of floating point literals
+    - rndis_host: support Hytera digital radios
+    - phonet: refcount leak in pep_sock_accep
+    - ipv6: Continue processing multipath route even if gateway attribute is
+      invalid
+    - ipv6: Do cleanup if attribute validation fails in multipath route
+    - usb: mtu3: fix interval value for intr and isoc
+    - scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
+    - ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
+    - net: udp: fix alignment problem in udp4_seq_show()
+    - atlantic: Fix buff_ring OOB in aq_ring_rx_clean
+    - mISDN: change function names to avoid conflicts
+    - Linux 5.4.171
+  * Focal update: v5.4.170 upstream stable release (LP: #1958898)
+    - tee: handle lookup of shm with reference count 0
+    - Input: i8042 - add deferred probe support
+    - Input: i8042 - enable deferred probe quirk for ASUS UM325UA
+    - tomoyo: Check exceeded quota early in tomoyo_domain_quota_is_ok().
+    - platform/x86: apple-gmux: use resource_size() with res
+    - memblock: fix memblock_phys_alloc() section mismatch error
+    - recordmcount.pl: fix typo in s390 mcount regex
+    - selinux: initialize proto variable in selinux_ip_postroute_compat()
+    - scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
+    - net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources
+    - sctp: use call_rcu to free endpoint
+    - net: usb: pegasus: Do not drop long Ethernet frames
+    - net: lantiq_xrx200: fix statistics of received bytes
+    - NFC: st21nfca: Fix memory leak in device probe and remove
+    - ionic: Initialize the 'lif->dbid_inuse' bitmap
+    - net/mlx5e: Fix wrong features assignment in case of error
+    - selftests/net: udpgso_bench_tx: fix dst ip argument
+    - net/ncsi: check for error return from call to nla_put_u32
+    - fsl/fman: Fix missing put_device() call in fman_port_probe
+    - i2c: validate user data in compat ioctl
+    - nfc: uapi: use kernel size_t to fix user-space builds
+    - uapi: fix linux/nfc.h userspace compilation errors
+    - xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
+    - usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
+    - usb: mtu3: add memory barrier before set GPD's HWO
+    - usb: mtu3: fix list_head check warning
+    - usb: mtu3: set interval of FS intr and isoc endpoint
+    - binder: fix async_free_space accounting for empty parcels
+    - scsi: vmw_pvscsi: Set residual data length conditionally
+    - Input: appletouch - initialize work before device registration
+    - Input: spaceball - fix parsing of movement data packets
+    - net: fix use-after-free in tw_timer_handler
+    - perf script: Fix CPU filtering of a script's switch events
+    - Linux 5.4.170
+  * Focal update: v5.4.170 upstream stable release (LP: #1958898) // HID_ASUS
+    should depend on USB_HID in stable v4.15 backports (LP: #1959762)
+    - HID: asus: Add depends on USB_HID to HID_ASUS Kconfig option
+  * Focal update: v5.4.169 upstream stable release (LP: #1958557)
+    - net: usb: lan78xx: add Allied Telesis AT29M2-AF
+    - serial: 8250_fintek: Fix garbled text for console
+    - arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode
+    - spi: change clk_disable_unprepare to clk_unprepare
+    - IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
+    - netfilter: fix regression in looped (broad|multi)cast's MAC handling
+    - qlcnic: potential dereference null pointer of rx_queue->page_ring
+    - net: accept UFOv6 packages in virtio_net_hdr_to_skb
+    - net: skip virtio_net_hdr_set_proto if protocol already set
+    - ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module
+    - bonding: fix ad_actor_system option setting to default
+    - fjes: Check for error irq
+    - drivers: net: smc911x: Check for error irq
+    - sfc: falcon: Check null pointer of rx_queue->page_ring
+    - Input: elantech - fix stack out of bound access in
+      elantech_change_report_id()
+    - hwmon: (lm90) Fix usage of CONFIG2 register in detect function
+    - hwmon: (lm90) Add max6654 support to lm90 driver
+    - hwmon: (lm90) Add basic support for TI TMP461
+    - hwmon: (lm90) Introduce flag indicating extended temperature support
+    - hwmon: (lm90) Drop critical attribute support for MAX6654
+    - ALSA: jack: Check the return value of kstrdup()
+    - ALSA: drivers: opl3: Fix incorrect use of vp->state
+    - ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6
+    - Input: atmel_mxt_ts - fix double free in mxt_read_info_block
+    - ipmi: bail out if init_srcu_struct fails
+    - ipmi: ssif: initialize ssif_info->client early
+    - ipmi: fix initialization when workqueue allocation fails
+    - parisc: Correct completer in lws start
+    - x86/pkey: Fix undefined behaviour with PKRU_WD_BIT
+    - pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines
+    - mmc: sdhci-tegra: Fix switch to HS400ES mode
+    - mmc: core: Disable card detect during shutdown
+    - ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
+    - tee: optee: Fix incorrect page free bug
+    - f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
+    - usb: gadget: u_ether: fix race in setting MAC address in setup phase
+    - KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
+    - mm: mempolicy: fix THP allocations escaping mempolicy restrictions
+    - pinctrl: mediatek: fix global-out-of-bounds issue
+    - hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681
+    - hwmon: (lm90) Do not report 'busy' status bit as alarm
+    - ax25: NPD bug when detaching AX25 device
+    - hamradio: defer ax25 kfree after unregister_netdev
+    - hamradio: improve the incomplete fix to avoid NPD
+    - phonet/pep: refuse to enable an unbound pipe
+    - Linux 5.4.169
+  * Focal update: v5.4.168 upstream stable release (LP: #1957991)
+    - KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE
+    - mac80211: mark TX-during-stop for TX in in_reconfig
+    - mac80211: send ADDBA requests using the tid/queue of the aggregation session
+    - firmware: arm_scpi: Fix string overflow in SCPI genpd driver
+    - virtio_ring: Fix querying of maximum DMA mapping size for virtio device
+    - recordmcount.pl: look for jgnop instruction as well as bcrl on s390
+    - dm btree remove: fix use after free in rebalance_children()
+    - audit: improve robustness of the audit queue handling
+    - iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda
+    - nfsd: fix use-after-free due to delegation race
+    - arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-
+      edge
+    - arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply
+    - arm64: dts: rockchip: fix audio-supply for Rock Pi 4
+    - mac80211: track only QoS data frames for admission control
+    - ARM: socfpga: dts: fix qspi node compatible
+    - clk: Don't parent clks until the parent is fully registered
+    - selftests: net: Correct ping6 expected rc from 2 to 1
+    - s390/kexec_file: fix error handling when applying relocations
+    - sch_cake: do not call cake_destroy() from cake_init()
+    - inet_diag: use jiffies_delta_to_msecs()
+    - inet_diag: fix kernel-infoleak for UDP sockets
+    - selftests: Fix raw socket bind tests with VRF
+    - selftests: Fix IPv6 address bind tests
+    - dmaengine: st_fdma: fix MODULE_ALIAS
+    - selftest/net/forwarding: declare NETIFS p9 p10
+    - mac80211: agg-tx: refactor sending addba
+    - mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock
+    - mac80211: accept aggregation sessions on 6 GHz
+    - mac80211: fix lookup when adding AddBA extension element
+    - net: sched: lock action when translating it to flow_action infra
+    - flow_offload: return EOPNOTSUPP for the unsupported mpls action type
+    - rds: memory leak in __rds_conn_create()
+    - soc/tegra: fuse: Fix bitwise vs. logical OR warning
+    - igb: Fix removal of unicast MAC filters of VFs
+    - igbvf: fix double free in `igbvf_probe`
+    - ixgbe: set X550 MDIO speed before talking to PHY
+    - netdevsim: Zero-initialize memory for new map's value in function
+      nsim_bpf_map_alloc
+    - net: Fix double 0x prefix print in SKB dump
+    - net/smc: Prevent smc_release() from long blocking
+    - net: systemport: Add global locking for descriptor lifecycle
+    - sit: do not call ipip6_dev_free() from sit_init_net()
+    - USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04)
+    - PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error
+    - PCI/MSI: Mask MSI-X vectors only on success
+    - usb: xhci: Extend support for runtime power management for AMD's Yellow
+      carp.
+    - USB: serial: cp210x: fix CP2105 GPIO registration
+    - USB: serial: option: add Telit FN990 compositions
+    - timekeeping: Really make sure wall_to_monotonic isn't positive
+    - libata: if T_LENGTH is zero, dma direction should be DMA_NONE
+    - drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE
+    - mac80211: validate extended element ID is present
+    - mwifiex: Remove unnecessary braces from HostCmd_SET_SEQ_NO_BSS_INFO
+    - Input: touchscreen - avoid bitwise vs logical OR warning
+    - ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name
+    - xsk: Do not sleep in poll() when need_wakeup set
+    - media: mxl111sf: change mutex_init() location
+    - fuse: annotate lock in fuse_reverse_inval_entry()
+    - ovl: fix warning in ovl_create_real()
+    - scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select()
+    - rcu: Mark accesses to rcu_state.n_force_qs
+    - mac80211: fix regression in SSN handling of addba tx
+    - net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
+    - Revert "xsk: Do not sleep in poll() when need_wakeup set"
+    - xen/blkfront: harden blkfront against event channel storms
+    - xen/netfront: harden netfront against event channel storms
+    - xen/console: harden hvc_xen against event channel storms
+    - xen/netback: fix rx queue stall detection
+    - xen/netback: don't queue unlimited number of packages
+    - Linux 5.4.168
+  * Focal update: v5.4.167 upstream stable release (LP: #1957987)
+    - nfc: fix segfault in nfc_genl_dump_devices_done
+    - drm/msm/dsi: set default num_data_lanes
+    - net/mlx4_en: Update reported link modes for 1/10G
+    - parisc/agp: Annotate parisc agp init functions with __init
+    - i2c: rk3x: Handle a spurious start completion interrupt flag
+    - net: netlink: af_netlink: Prevent empty skb by adding a check on len.
+    - drm/amd/display: Fix for the no Audio bug with Tiled Displays
+    - drm/amd/display: add connector type check for CRC source set
+    - tracing: Fix a kmemleak false positive in tracing_map
+    - KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
+    - selinux: fix race condition when computing ocontext SIDs
+    - bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc
+    - hwmon: (dell-smm) Fix warning on /proc/i8k creation error
+    - memblock: free_unused_memmap: use pageblock units instead of MAX_ORDER
+    - memblock: align freed memory map on pageblock boundaries with SPARSEMEM
+    - memblock: ensure there is no overflow in memblock_overlaps_region()
+    - arm: extend pfn_valid to take into account freed memory map alignment
+    - arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM
+    - Linux 5.4.167
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+  [ Ubuntu: 5.4.0-104.118 ]
+
+  * CVE-2022-23960
+    - SAUCE: kvm: arm: fix build on 32-bit
+
+  [ Ubuntu: 5.4.0-103.117 ]
+
+  * CVE-2022-23960
+    - arm64: Add part number for Arm Cortex-A77
+    - arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
+    - arm64: Add Cortex-X2 CPU part definition
+    - arm64: add ID_AA64ISAR2_EL1 sys register
+    - SAUCE: arm64: entry.S: Add ventry overflow sanity checks
+    - SAUCE: arm64: entry: Make the trampoline cleanup optional
+    - SAUCE: arm64: entry: Free up another register on kpti's tramp_exit path
+    - SAUCE: arm64: entry: Move the trampoline data page before the text page
+    - SAUCE: arm64: entry: Allow tramp_alias to access symbols after the 4K
+      boundary
+    - SAUCE: arm64: entry: Don't assume tramp_vectors is the start of the vectors
+    - SAUCE: arm64: entry: Move trampoline macros out of ifdef'd section
+    - SAUCE: arm64: entry: Make the kpti trampoline's kpti sequence optional
+    - SAUCE: arm64: entry: Allow the trampoline text to occupy multiple pages
+    - SAUCE: arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
+    - SAUCE: arm64: entry: Add vectors that have the bhb mitigation sequences
+    - SAUCE: arm64: entry: Add macro for reading symbol addresses from the
+      trampoline
+    - SAUCE: arm64: Add percpu vectors for EL1
+    - SAUCE: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of
+      Spectre-v2
+    - SAUCE: KVM: arm64: Add templates for BHB mitigation sequences
+    - SAUCE: arm64: Mitigate spectre style branch history side channels
+    - SAUCE: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and
+      migrated
+    - SAUCE: arm64: Use the clearbhb instruction in mitigations
+    - [Config]: set CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+  * CVE-2022-25636
+    - netfilter: nf_tables_offload: incorrect flow offload action array size
+  * CVE-2022-0001
+    - x86/speculation: Merge one test in spectre_v2_user_select_mitigation()
+    - x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
+    - SAUCE: x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
+    - SAUCE: x86/speculation: Add eIBRS + Retpoline options
+    - SAUCE: Documentation/hw-vuln: Update spectre doc
+  * Disable unprivileged BPF by default (LP: #1961338)
+    - bpf: Add kconfig knob for disabling unpriv bpf by default
+    - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+
+  [ Ubuntu: 5.4.0-100.113 ]
+
+  * focal/linux: 5.4.0-100.113 -proposed tracker (LP: #1959900)
+  * CVE-2022-22942
+    - SAUCE: drm/vmwgfx: Fix stale file descriptors on failed usercopy
+  * CVE-2022-0330
+    - drm/i915: Flush TLBs before releasing backing store
+  * Focal update: v5.4.166 upstream stable release (LP: #1957008)
+    - netfilter: selftest: conntrack_vrf.sh: fix file permission
+    - Linux 5.4.166
+    - net/packet: rx_owner_map depends on pg_vec
+    - USB: gadget: bRequestType is a bitfield, not a enum
+    - HID: holtek: fix mouse probing
+    - udp: using datalen to cap ipv6 udp max gso segments
+    - selftests: Calculate udpgso segment count without header adjustment
+  * Focal update: v5.4.165 upstream stable release (LP: #1957007)
+    - serial: tegra: Change lower tolerance baud rate limit for tegra20 and
+      tegra30
+    - ntfs: fix ntfs_test_inode and ntfs_init_locked_inode function type
+    - HID: quirks: Add quirk for the Microsoft Surface 3 type-cover
+    - HID: google: add eel USB id
+    - HID: add hid_is_usb() function to make it simpler for USB detection
+    - HID: add USB_HID dependancy to hid-prodikeys
+    - HID: add USB_HID dependancy to hid-chicony
+    - HID: add USB_HID dependancy on some USB HID drivers
+    - HID: bigbenff: prevent null pointer dereference
+    - HID: wacom: fix problems when device is not a valid USB device
+    - HID: check for valid USB device for many HID drivers
+    - can: kvaser_usb: get CAN clock frequency from device
+    - can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct
+      stats->{rx,tx}_errors counter
+    - can: sja1000: fix use after free in ems_pcmcia_add_card()
+    - nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done
+    - selftests: netfilter: add a vrf+conntrack testcase
+    - vrf: don't run conntrack on vrf with !dflt qdisc
+    - bpf: Fix the off-by-two error in range markings
+    - ice: ignore dropped packets during init
+    - bonding: make tx_rebalance_counter an atomic
+    - nfp: Fix memory leak in nfp_cpp_area_cache_add()
+    - seg6: fix the iif in the IPv6 socket control block
+    - udp: using datalen to cap max gso segments
+    - iavf: restore MSI state on reset
+    - iavf: Fix reporting when setting descriptor count
+    - IB/hfi1: Correct guard on eager buffer deallocation
+    - mm: bdi: initialize bdi_min_ratio when bdi is unregistered
+    - ALSA: ctl: Fix copy of updated id with element read/write
+    - ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform
+    - ALSA: pcm: oss: Fix negative period/buffer sizes
+    - ALSA: pcm: oss: Limit the period size to 16MB
+    - ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*()
+    - btrfs: clear extent buffer uptodate when we fail to write it
+    - btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling
+    - nfsd: Fix nsfd startup race (again)
+    - tracefs: Have new files inherit the ownership of their parent
+    - clk: qcom: regmap-mux: fix parent clock lookup
+    - drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.
+    - can: pch_can: pch_can_rx_normal: fix use after free
+    - can: m_can: Disable and ignore ELO interrupt
+    - x86/sme: Explicitly map new EFI memmap table as encrypted
+    - libata: add horkage for ASMedia 1092
+    - wait: add wake_up_pollfree()
+    - SAUCE: binder: export __wake_up_pollfree for binder module
+    - binder: use wake_up_pollfree()
+    - signalfd: use wake_up_pollfree()
+    - aio: keep poll requests on waitqueue until completed
+    - aio: fix use-after-free due to missing POLLFREE handling
+    - tracefs: Set all files to the same group ownership as the mount option
+    - block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2)
+    - qede: validate non LSO skb length
+    - ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer
+    - i40e: Fix failed opcode appearing if handling messages from VF
+    - i40e: Fix pre-set max number of queues for VF
+    - mtd: rawnand: fsmc: Take instruction delay into account
+    - mtd: rawnand: fsmc: Fix timing computation
+    - dt-bindings: net: Reintroduce PHY no lane swap binding
+    - tools build: Remove needless libpython-version feature check that breaks
+      test-all fast path
+    - net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero
+    - net: altera: set a couple error code in probe()
+    - net: fec: only clear interrupt of handling queue in fec_enet_rx_queue()
+    - net, neigh: clear whole pneigh_entry at alloc time
+    - net/qla3xxx: fix an error code in ql_adapter_up()
+    - Revert "UBUNTU: SAUCE: selftests: fib_tests: assign address to dummy1 for
+      rp_filter tests"
+    - selftests/fib_tests: Rework fib_rp_filter_test()
+    - USB: gadget: detect too-big endpoint 0 requests
+    - USB: gadget: zero allocate endpoint 0 buffers
+    - usb: core: config: fix validation of wMaxPacketValue entries
+    - xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime
+      suspending
+    - usb: core: config: using bit mask instead of individual bits
+    - xhci: avoid race between disable slot command and host runtime suspend
+    - iio: trigger: Fix reference counting
+    - iio: trigger: stm32-timer: fix MODULE_ALIAS
+    - iio: stk3310: Don't return error code in interrupt handler
+    - iio: mma8452: Fix trigger reference couting
+    - iio: ltr501: Don't return error code in trigger handler
+    - iio: kxsd9: Don't return error code in trigger handler
+    - iio: itg3200: Call iio_trigger_notify_done() on error
+    - iio: dln2-adc: Fix lockdep complaint
+    - iio: dln2: Check return value of devm_iio_trigger_register()
+    - iio: at91-sama5d2: Fix incorrect sign extension
+    - iio: adc: axp20x_adc: fix charging current reporting on AXP22x
+    - iio: ad7768-1: Call iio_trigger_notify_done() on error
+    - iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove
+    - irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc()
+    - irqchip/armada-370-xp: Fix support for Multi-MSI interrupts
+    - irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL
+    - irqchip: nvic: Fix offset for Interrupt Priority Offsets
+    - misc: fastrpc: fix improper packet size calculation
+    - bpf: Add selftests to cover packet access corner cases
+    - Linux 5.4.165
+  * Focal update: v5.4.164 upstream stable release (LP: #1956381)
+    - NFSv42: Fix pagecache invalidation after COPY/CLONE
+    - of: clk: Make <linux/of_clk.h> self-contained
+    - arm64: dts: mcbin: support 2W SFP modules
+    - can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM
+    - gfs2: Fix length of holes reported at end-of-file
+    - drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY
+    - mac80211: do not access the IV when it was stripped
+    - net/smc: Transfer remaining wait queue entries during fallback
+    - atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait
+    - net: return correct error code
+    - platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
+    - s390/setup: avoid using memblock_enforce_memory_limit
+    - btrfs: check-integrity: fix a warning on write caching disabled disk
+    - thermal: core: Reset previous low and high trip during thermal zone init
+    - scsi: iscsi: Unblock session then wake up error handler
+    - ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
+    - ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in
+      hns_dsaf_ge_srst_by_port()
+    - net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of
+      bound
+    - net: ethernet: dec: tulip: de4x5: fix possible array overflows in
+      type3_infoblock()
+    - perf hist: Fix memory leak of a perf_hpp_fmt
+    - perf report: Fix memory leaks around perf_tip()
+    - net/smc: Avoid warning of possible recursive locking
+    - vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
+    - kprobes: Limit max data_size of the kretprobe instances
+    - rt2x00: do not mark device gone on EPROTO errors during start
+    - cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink()
+    - s390/pci: move pseudo-MMIO to prevent MIO overlap
+    - sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
+    - sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
+    - i2c: stm32f7: flush TX FIFO upon transfer errors
+    - i2c: stm32f7: recover the bus on access timeout
+    - i2c: stm32f7: stop dma transfer in case of NACK
+    - i2c: cbus-gpio: set atomic transfer callback
+    - natsemi: xtensa: fix section mismatch warnings
+    - net: qlogic: qlcnic: Fix a NULL pointer dereference in
+      qlcnic_83xx_add_rings()
+    - net: mpls: Fix notifications when deleting a device
+    - siphash: use _unaligned version by default
+    - net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
+    - selftests: net: Correct case name
+    - rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
+    - net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ
+      is available
+    - net: marvell: mvpp2: Fix the computation of shared CPUs
+    - net: annotate data-races on txq->xmit_lock_owner
+    - ipv4: convert fib_num_tclassid_users to atomic_t
+    - net/rds: correct socket tunable error in rds_tcp_tune()
+    - net/smc: Keep smc_close_final rc during active close
+    - drm/msm: Do hw_init() before capturing GPU state
+    - ipv6: fix memory leak in fib6_rule_suppress
+    - KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register
+    - sched/uclamp: Fix rq->uclamp_max not set on first enqueue
+    - parisc: Fix KBUILD_IMAGE for self-extracting kernel
+    - parisc: Fix "make install" on newer debian releases
+    - vgacon: Propagate console boot parameters before calling `vc_resize'
+    - xhci: Fix commad ring abort, write all 64 bits to CRCR register.
+    - USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
+    - usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
+    - x86/tsc: Add a timer to make sure TSC_adjust is always checked
+    - x86/tsc: Disable clocksource watchdog for TSC on qualified platorms
+    - x86/64/mm: Map all kernel memory into trampoline_pgd
+    - tty: serial: msm_serial: Deactivate RX DMA for polling support
+    - serial: pl011: Add ACPI SBSA UART match id
+    - serial: core: fix transmit-buffer reset and memleak
+    - serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array
+    - serial: 8250_pci: rewrite pericom_do_set_divisor()
+    - iwlwifi: mvm: retry init flow if failed
+    - parisc: Mark cr16 CPU clocksource unstable on all SMP machines
+    - net/tls: Fix authentication failure in CCM mode
+    - Linux 5.4.164
+  * Focal update: v5.4.163 upstream stable release (LP: #1956380)
+    - USB: serial: option: add Telit LE910S1 0x9200 composition
+    - USB: serial: option: add Fibocom FM101-GL variants
+    - usb: dwc2: gadget: Fix ISOC flow for elapsed frames
+    - usb: dwc2: hcd_queue: Fix use of floating point literal
+    - net: nexthop: fix null pointer dereference when IPv6 is not enabled
+    - usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts
+    - usb: hub: Fix usb enumeration issue due to address0 race
+    - usb: hub: Fix locking issues with address0_mutex
+    - binder: fix test regression due to sender_euid change
+    - ALSA: ctxfi: Fix out-of-range access
+    - media: cec: copy sequence field for the reply
+    - HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts
+    - staging/fbtft: Fix backlight
+    - staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
+    - xen: don't continue xenstore initialization in case of errors
+    - xen: detect uninitialized xenbus in xenbus_init
+    - KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB
+    - tracing/uprobe: Fix uprobe_perf_open probes iteration
+    - tracing: Fix pid filtering when triggers are attached
+    - mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB
+    - mdio: aspeed: Fix "Link is Down" issue
+    - PCI: aardvark: Deduplicate code in advk_pcie_rd_conf()
+    - PCI: aardvark: Wait for endpoint to be ready before training link
+    - PCI: aardvark: Fix big endian support
+    - PCI: aardvark: Train link immediately after enabling training
+    - PCI: aardvark: Improve link training
+    - PCI: aardvark: Issue PERST via GPIO
+    - PCI: aardvark: Replace custom macros by standard linux/pci_regs.h macros
+    - PCI: aardvark: Don't touch PCIe registers if no card connected
+    - PCI: aardvark: Fix compilation on s390
+    - PCI: aardvark: Move PCIe reset card code to advk_pcie_train_link()
+    - PCI: aardvark: Update comment about disabling link training
+    - PCI: pci-bridge-emul: Fix array overruns, improve safety
+    - PCI: aardvark: Configure PCIe resources from 'ranges' DT property
+    - PCI: aardvark: Fix PCIe Max Payload Size setting
+    - PCI: aardvark: Implement re-issuing config requests on CRS response
+    - PCI: aardvark: Simplify initialization of rootcap on virtual bridge
+    - PCI: aardvark: Fix link training
+    - PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated
+      bridge
+    - PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
+    - PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
+    - pinctrl: armada-37xx: Correct PWM pins definitions
+    - arm64: dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
+    - proc/vmcore: fix clearing user buffer by properly using clear_user()
+    - netfilter: ipvs: Fix reuse connection if RS weight is 0
+    - ARM: dts: BCM5301X: Fix I2C controller interrupt
+    - ARM: dts: BCM5301X: Add interrupt properties to GPIO node
+    - ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer
+    - ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
+    - net: ieee802154: handle iftypes as u32
+    - firmware: arm_scmi: pm: Propagate return value to caller
+    - NFSv42: Don't fail clone() unless the OP_CLONE operation failed
+    - ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
+    - scsi: mpt3sas: Fix kernel panic during drive powercycle test
+    - drm/vc4: fix error code in vc4_create_object()
+    - iavf: Prevent changing static ITR values if adaptive moderation is on
+    - ipv6: fix typos in __ip6_finish_output()
+    - nfp: checking parameter process for rx-usecs/tx-usecs is invalid
+    - net: ipv6: add fib6_nh_release_dsts stub
+    - net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group
+    - scsi: core: sysfs: Fix setting device state to SDEV_RUNNING
+    - net/smc: Ensure the active closing peer first closes clcsock
+    - nvmet-tcp: fix incomplete data digest send
+    - net/ncsi : Add payload to be 32-bit aligned to fix dropped packets
+    - PM: hibernate: use correct mode for swsusp_close()
+    - tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited
+      flows
+    - nvmet: use IOCB_NOWAIT only if the filesystem supports it
+    - igb: fix netpoll exit with traffic
+    - MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48
+    - net: vlan: fix underflow for the real_dev refcnt
+    - net/smc: Don't call clcsock shutdown twice when smc shutdown
+    - net: hns3: fix VF RSS failed problem after PF enable multi-TCs
+    - net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP
+    - net: mscc: ocelot: correctly report the timestamping RX filters in ethtool
+    - f2fs: set SBI_NEED_FSCK flag when inconsistent node block found
+    - smb3: do not error on fsync when readonly
+    - vhost/vsock: fix incorrect used length reported to the guest
+    - tracing: Check pid filtering when creating events
+    - s390/mm: validate VMA in PGSTE manipulation functions
+    - shm: extend forced shm destroy to support objects from several IPC nses
+    - NFC: add NCI_UNREG flag to eliminate the race
+    - fuse: release pipe buf after last use
+    - xen: sync include/xen/interface/io/ring.h with Xen's newest version
+    - xen/blkfront: read response from backend only once
+    - xen/blkfront: don't take local copy of a request from the ring page
+    - xen/blkfront: don't trust the backend response data blindly
+    - xen/netfront: read response from backend only once
+    - xen/netfront: don't read data from request on the ring page
+    - xen/netfront: disentangle tx_skb_freelist
+    - xen/netfront: don't trust the backend response data blindly
+    - tty: hvc: replace BUG_ON() with negative return value
+    - Linux 5.4.163
+  * net/mlx5e: EPERM on vlan 0 programming (LP: #1957753)
+    - net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
+  * CVE-2021-4083
+    - fget: check that the fd still exists after getting a ref to it
+  * CVE-2021-4155
+    - xfs: map unwritten blocks in XFS_IOC_{ALLOC, FREE}SP just like fallocate
+
+  [ Ubuntu: 5.4.0-99.112 ]
+
+  * focal/linux: 5.4.0-99.112 -proposed tracker (LP: #1959817)
+  * linux-image-5.4.0-97.110 freezes by accessing cifs shares (LP: #1959665)
+    - Revert "cifs: To match file servers, make sure the server hostname matches"
+    - Revert "cifs: set a minimum of 120s for next dns resolution"
+    - Revert "cifs: use the expiry output of dns_query to schedule next
+      resolution"
+
+  [ Ubuntu: 5.4.0-97.110 ]
+
+  * icmp_redirect from selftests fails on F/kvm (unary operator expected)
+    (LP: #1938964)
+    - selftests: icmp_redirect: pass xfail=0 to log_test()
+  * Focal: CIFS stable updates (LP: #1954926)
+    - cifs: use the expiry output of dns_query to schedule next resolution
+    - cifs: set a minimum of 120s for next dns resolution
+    - cifs: To match file servers, make sure the server hostname matches
+  * seccomp_bpf in seccomp from ubuntu_kernel_selftests failed to build on B-5.4
+    (LP: #1896420)
+    - SAUCE: selftests/seccomp: fix "storage size of 'md' isn't known" build issue
+    - SAUCE: selftests/seccomp: Fix s390x regs not defined issue
+  * system crash when removing ipmi_msghandler module (LP: #1950666)
+    - ipmi: Move remove_work to dedicated workqueue
+    - ipmi: msghandler: Make symbol 'remove_work_wq' static
+  * zcrypt DD: Toleration for new IBM Z Crypto Hardware - (Backport to Ubuntu
+    20.04) (LP: #1954680)
+    - s390/AP: support new dynamic AP bus size limit
+  * [UBUNTU 20.04] KVM hardware diagnose data improvements for guest kernel -
+    kernel part (LP: #1953334)
+    - s390/setup: diag 318: refactor struct
+    - s390/kvm: diagnose 0x318 sync and reset
+    - KVM: s390: remove diag318 reset code
+    - KVM: s390: add debug statement for diag 318 CPNC data
+  * Updates to ib_peer_memory requested by Nvidia (LP: #1947206)
+    - SAUCE: RDMA/core: Updated ib_peer_memory
+  * Include Infiniband Peer Memory interface (LP: #1923104)
+    - IB: Allow calls to ib_umem_get from kernel ULPs
+    - SAUCE: RDMA/core: Introduce peer memory interface
+  * Focal update: v5.4.162 upstream stable release (LP: #1954834)
+    - arm64: zynqmp: Do not duplicate flash partition label property
+    - arm64: zynqmp: Fix serial compatible string
+    - ARM: dts: NSP: Fix mpcore, mmc node names
+    - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
+    - arm64: dts: hisilicon: fix arm,sp805 compatible string
+    - RDMA/bnxt_re: Check if the vlan is valid before reporting
+    - usb: musb: tusb6010: check return value after calling
+      platform_get_resource()
+    - usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
+    - arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency
+    - arm64: dts: freescale: fix arm,sp805 compatible string
+    - ASoC: SOF: Intel: hda-dai: fix potential locking issue
+    - clk: imx: imx6ul: Move csi_sel mux to correct base register
+    - ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
+    - scsi: advansys: Fix kernel pointer leak
+    - firmware_loader: fix pre-allocated buf built-in firmware use
+    - ARM: dts: omap: fix gpmc,mux-add-data type
+    - usb: host: ohci-tmio: check return value after calling
+      platform_get_resource()
+    - ARM: dts: ls1021a: move thermal-zones node out of soc/
+    - ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
+    - ALSA: ISA: not for M68K
+    - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
+    - MIPS: sni: Fix the build
+    - scsi: target: Fix ordered tag handling
+    - scsi: target: Fix alua_tg_pt_gps_count tracking
+    - iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr()
+    - powerpc/5200: dts: fix memory node unit name
+    - ALSA: gus: fix null pointer dereference on pointer block
+    - powerpc/dcr: Use cmplwi instead of 3-argument cmpli
+    - sh: check return code of request_irq
+    - maple: fix wrong return value of maple_bus_init().
+    - f2fs: fix up f2fs_lookup tracepoints
+    - sh: fix kconfig unmet dependency warning for FRAME_POINTER
+    - sh: math-emu: drop unused functions
+    - sh: define __BIG_ENDIAN for math-emu
+    - clk: ingenic: Fix bugs with divided dividers
+    - clk/ast2600: Fix soc revision for AHB
+    - clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk
+    - mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
+    - sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
+    - tracing: Save normal string variables
+    - tracing/histogram: Do not copy the fixed-size char array field over the
+      field size
+    - RDMA/netlink: Add __maybe_unused to static inline in C file
+    - perf bpf: Avoid memory leak from perf_env__insert_btf()
+    - perf bench futex: Fix memory leak of perf_cpu_map__new()
+    - perf tests: Remove bash construct from record+zstd_comp_decomp.sh
+    - net: bnx2x: fix variable dereferenced before check
+    - iavf: check for null in iavf_fix_features
+    - iavf: free q_vectors before queues in iavf_disable_vf
+    - iavf: Fix failure to exit out from last all-multicast mode
+    - iavf: prevent accidental free of filter structure
+    - iavf: validate pointers
+    - iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
+    - MIPS: generic/yamon-dt: fix uninitialized variable error
+    - mips: bcm63xx: add support for clk_get_parent()
+    - mips: lantiq: add support for clk_get_parent()
+    - platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
+    - scsi: core: sysfs: Fix hang when device state is set via sysfs
+    - net: sched: act_mirred: drop dst for the direction from egress to ingress
+    - net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove
+    - net: virtio_net_hdr_to_skb: count transport header in UFO
+    - i40e: Fix correct max_pkt_size on VF RX queue
+    - i40e: Fix NULL ptr dereference on VSI filter sync
+    - i40e: Fix changing previously set num_queue_pairs for PFs
+    - i40e: Fix ping is lost after configuring ADq on VF
+    - i40e: Fix creation of first queue by omitting it if is not power of two
+    - i40e: Fix display error code in dmesg
+    - NFC: reorganize the functions in nci_request
+    - drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame
+    - NFC: reorder the logic in nfc_{un,}register_device
+    - KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr()
+    - perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
+    - perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
+    - s390/kexec: fix return code handling
+    - arm64: vdso32: suppress error message for 'make mrproper'
+    - tun: fix bonding active backup with arp monitoring
+    - hexagon: export raw I/O routines for modules
+    - ipc: WARN if trying to remove ipc object which is absent
+    - mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
+    - x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
+    - s390/kexec: fix memory leak of ipl report buffer
+    - udf: Fix crash after seekdir
+    - btrfs: fix memory ordering between normal and ordered work functions
+    - parisc/sticon: fix reverse colors
+    - cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
+    - drm/udl: fix control-message timeout
+    - drm/nouveau: use drm_dev_unplug() during device removal
+    - drm/i915/dp: Ensure sink rate values are always valid
+    - drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga
+      and dvi connectors
+    - Revert "net: mvpp2: disable force link UP during port init procedure"
+    - perf/core: Avoid put_page() when GUP fails
+    - batman-adv: Consider fragmentation for needed_headroom
+    - batman-adv: Reserve needed_*room for fragments
+    - batman-adv: Don't always reallocate the fragmentation skb head
+    - ASoC: DAPM: Cover regression by kctl change notification fix
+    - usb: max-3421: Use driver data instead of maintaining a list of bound
+      devices
+    - ice: Delete always true check of PF pointer
+    - ALSA: hda: hdac_ext_stream: fix potential locking issues
+    - ALSA: hda: hdac_stream: fix potential locking issue in
+      snd_hdac_stream_assign()
+    - Linux 5.4.162
+  * Focal update: v5.4.161 upstream stable release (LP: #1954828)
+    - scsi: ufs: Fix interrupt error message for shared interrupts
+    - MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
+    - ext4: fix lazy initialization next schedule time computation in more
+      granular unit
+    - scsi: ufs: Fix tm request when non-fatal error happens
+    - fortify: Explicitly disable Clang support
+    - parisc/entry: fix trace test in syscall exit path
+    - PCI/MSI: Destroy sysfs before freeing entries
+    - PCI/MSI: Deal with devices lying about their MSI mask capability
+    - PCI: Add MSI masking quirk for Nvidia ION AHCI
+    - erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
+    - erofs: fix unsafe pagevec reuse of hooked pclusters
+    - Linux 5.4.161
+  * Focal update: v5.4.160 upstream stable release (LP: #1953387)
+    - xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good
+      delay
+    - usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
+    - binder: use euid from cred instead of using task
+    - binder: use cred instead of task for selinux checks
+    - binder: use cred instead of task for getsecid
+    - Input: iforce - fix control-message timeout
+    - Input: elantench - fix misreporting trackpoint coordinates
+    - Input: i8042 - Add quirk for Fujitsu Lifebook T725
+    - libata: fix read log timeout value
+    - ocfs2: fix data corruption on truncate
+    - scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
+    - scsi: qla2xxx: Fix use after free in eh_abort path
+    - mmc: dw_mmc: Dont wait for DRTO on Write RSP error
+    - parisc: Fix ptrace check on syscall return
+    - tpm: Check for integer overflow in tpm2_map_response_body()
+    - firmware/psci: fix application of sizeof to pointer
+    - crypto: s5p-sss - Add error handling in s5p_aes_probe()
+    - media: ite-cir: IR receiver stop working after receive overflow
+    - media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
+    - media: v4l2-ioctl: Fix check_ext_ctrls
+    - ALSA: hda/realtek: Add quirk for Clevo PC70HS
+    - ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
+    - ALSA: hda/realtek: Add quirk for ASUS UX550VE
+    - ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
+    - ALSA: ua101: fix division by zero at probe
+    - ALSA: 6fire: fix control and bulk message timeouts
+    - ALSA: line6: fix control and interrupt message timeouts
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 400
+    - ALSA: synth: missing check for possible NULL after the call to kstrdup
+    - ALSA: timer: Fix use-after-free problem
+    - ALSA: timer: Unconditionally unlink slave instances, too
+    - fuse: fix page stealing
+    - x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
+    - x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
+    - x86/irq: Ensure PI wakeup handler is unregistered before module unload
+    - cavium: Return negative value when pci_alloc_irq_vectors() fails
+    - scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
+    - scsi: qla2xxx: Fix unmap of already freed sgl
+    - cavium: Fix return values of the probe function
+    - sfc: Don't use netif_info before net_device setup
+    - hyperv/vmbus: include linux/bitops.h
+    - ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
+    - reset: socfpga: add empty driver allowing consumers to probe
+    - mmc: winbond: don't build on M68K
+    - drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
+    - bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
+    - bpf: Prevent increasing bpf_jit_limit above max
+    - xen/netfront: stop tx queues during live migration
+    - nvmet-tcp: fix a memory leak when releasing a queue
+    - spi: spl022: fix Microwire full duplex mode
+    - net: multicast: calculate csum of looped-back and forwarded packets
+    - watchdog: Fix OMAP watchdog early handling
+    - drm: panel-orientation-quirks: Add quirk for GPD Win3
+    - nvmet-tcp: fix header digest verification
+    - r8169: Add device 10ec:8162 to driver r8169
+    - vmxnet3: do not stop tx queues after netif_device_detach()
+    - nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
+    - net/smc: Correct spelling mistake to TCPF_SYN_RECV
+    - btrfs: clear MISSING device status bit in btrfs_close_one_device
+    - btrfs: fix lost error handling when replaying directory deletes
+    - btrfs: call btrfs_check_rw_degradable only if there is a missing device
+    - ia64: kprobes: Fix to pass correct trampoline address to the handler
+    - hwmon: (pmbus/lm25066) Add offset coefficients
+    - regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is
+      disabled
+    - regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-
+      dvs-idx property
+    - EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
+    - mwifiex: fix division by zero in fw download path
+    - ath6kl: fix division by zero in send path
+    - ath6kl: fix control-message timeout
+    - ath10k: fix control-message timeout
+    - ath10k: fix division by zero in send path
+    - PCI: Mark Atheros QCA6174 to avoid bus reset
+    - rtl8187: fix control-message timeouts
+    - evm: mark evm_fixmode as __ro_after_init
+    - wcn36xx: Fix HT40 capability for 2Ghz band
+    - mwifiex: Read a PCI register after writing the TX ring write pointer
+    - libata: fix checking of DMA state
+    - wcn36xx: handle connection loss indication
+    - rsi: fix occasional initialisation failure with BT coex
+    - rsi: fix key enabled check causing unwanted encryption for vap_id > 0
+    - rsi: fix rate mask set leading to P2P failure
+    - rsi: Fix module dev_oper_mode parameter description
+    - RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
+    - signal: Remove the bogus sigkill_pending in ptrace_stop
+    - signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
+    - power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
+    - power: supply: max17042_battery: use VFSOC for capacity when no rsns
+    - KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
+    - can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
+    - can: j1939: j1939_can_recv(): ignore messages with invalid source address
+    - powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
+    - serial: core: Fix initializing and restoring termios speed
+    - ALSA: mixer: oss: Fix racy access to slots
+    - ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
+    - xen/balloon: add late_initcall_sync() for initial ballooning done
+    - PCI: pci-bridge-emul: Fix emulation of W1C bits
+    - PCI: aardvark: Do not clear status bits of masked interrupts
+    - PCI: aardvark: Fix checking for link up via LTSSM state
+    - PCI: aardvark: Do not unmask unused interrupts
+    - PCI: aardvark: Fix reporting Data Link Layer Link Active
+    - PCI: aardvark: Fix return value of MSI domain .alloc() method
+    - PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
+    - quota: check block number when reading the block in quota file
+    - quota: correct error number in free_dqentry()
+    - pinctrl: core: fix possible memory leak in pinctrl_enable()
+    - iio: dac: ad5446: Fix ad5622_write() return value
+    - USB: serial: keyspan: fix memleak on probe errors
+    - USB: iowarrior: fix control-message timeouts
+    - USB: chipidea: fix interrupt deadlock
+    - dma-buf: WARN on dmabuf release with pending attachments
+    - drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
+    - drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
+    - drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
+    - Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
+    - Bluetooth: fix use-after-free error in lock_sock_nested()
+    - drm/panel-orientation-quirks: add Valve Steam Deck
+    - platform/x86: wmi: do not fail if disabling fails
+    - MIPS: lantiq: dma: add small delay after reset
+    - MIPS: lantiq: dma: reset correct number of channel
+    - locking/lockdep: Avoid RCU-induced noinstr fail
+    - net: sched: update default qdisc visibility after Tx queue cnt changes
+    - smackfs: Fix use-after-free in netlbl_catmap_walk()
+    - x86: Increase exception stack sizes
+    - mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
+    - mwifiex: Properly initialize private structure on interface type changes
+    - ath10k: high latency fixes for beacon buffer
+    - media: mt9p031: Fix corrupted frame after restarting stream
+    - media: netup_unidvb: handle interrupt properly according to the firmware
+    - media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
+    - media: uvcvideo: Set capability in s_param
+    - media: uvcvideo: Return -EIO for control errors
+    - media: uvcvideo: Set unique vdev name based in type
+    - media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
+    - media: s5p-mfc: Add checking to s5p_mfc_probe().
+    - media: imx: set a media_device bus_info string
+    - media: mceusb: return without resubmitting URB in case of -EPROTO error.
+    - ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
+    - brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
+    - media: rcar-csi2: Add checking to rcsi2_start_receiver()
+    - ipmi: Disable some operations during a panic
+    - ACPICA: Avoid evaluating methods too early during system resume
+    - media: ipu3-imgu: imgu_fmt: Handle properly try
+    - media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
+    - media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
+    - net-sysfs: try not to restart the syscall if it will fail eventually
+    - tracefs: Have tracefs directories not set OTH permission bits by default
+    - ath: dfs_pattern_detector: Fix possible null-pointer dereference in
+      channel_detector_create()
+    - iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
+    - ACPI: battery: Accept charges over the design capacity as full
+    - leaking_addresses: Always print a trailing newline
+    - memstick: r592: Fix a UAF bug when removing the driver
+    - lib/xz: Avoid overlapping memcpy() with invalid input with in-place
+      decompression
+    - lib/xz: Validate the value before assigning it to an enum variable
+    - workqueue: make sysfs of unbound kworker cpumask more clever
+    - tracing/cfi: Fix cmp_entries_* functions signature mismatch
+    - mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
+    - block: remove inaccurate requeue check
+    - nvmet: fix use-after-free when a port is removed
+    - nvmet-tcp: fix use-after-free when a port is removed
+    - nvme: drop scan_lock and always kick requeue list when removing namespaces
+    - PM: hibernate: Get block device exclusively in swsusp_check()
+    - selftests: kvm: fix mismatched fclose() after popen()
+    - iwlwifi: mvm: disable RX-diversity in powersave
+    - smackfs: use __GFP_NOFAIL for smk_cipso_doi()
+    - ARM: clang: Do not rely on lr register for stacktrace
+    - gre/sit: Don't generate link-local addr if addr_gen_mode is
+      IN6_ADDR_GEN_MODE_NONE
+    - ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
+    - vrf: run conntrack only in context of lower/physdev for locally generated
+      packets
+    - net: annotate data-race in neigh_output()
+    - btrfs: do not take the uuid_mutex in btrfs_rm_device
+    - spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in
+      bcm_qspi_probe()
+    - x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
+    - parisc: fix warning in flush_tlb_all
+    - task_stack: Fix end_of_stack() for architectures with upwards-growing stack
+    - parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
+    - parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
+    - netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream
+      state
+    - selftests/bpf: Fix strobemeta selftest regression
+    - Bluetooth: fix init and cleanup of sco_conn.timeout_work
+    - rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
+    - drm/v3d: fix wait for TMU write combiner flush
+    - virtio-gpu: fix possible memory allocation failure
+    - net: net_namespace: Fix undefined member in key_remove_domain()
+    - cgroup: Make rebind_subsystems() disable v2 controllers all at once
+    - wilc1000: fix possible memory leak in cfg_scan_result()
+    - Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
+    - crypto: caam - disable pkc for non-E SoCs
+    - rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
+    - net: dsa: rtl8366rb: Fix off-by-one bug
+    - ath10k: Fix missing frame timestamp for beacon/probe-resp
+    - drm/amdgpu: fix warning for overflow check
+    - media: em28xx: add missing em28xx_close_extension
+    - media: cxd2880-spi: Fix a null pointer dereference on error handling path
+    - media: dvb-usb: fix ununit-value in az6027_rc_query
+    - media: TDA1997x: handle short reads of hdmi info frame.
+    - media: mtk-vpu: Fix a resource leak in the error handling path of
+      'mtk_vpu_probe()'
+    - media: radio-wl1273: Avoid card name truncation
+    - media: si470x: Avoid card name truncation
+    - media: tm6000: Avoid card name truncation
+    - media: cx23885: Fix snd_card_free call on null card pointer
+    - kprobes: Do not use local variable when creating debugfs file
+    - crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
+    - cpuidle: Fix kobject memory leaks in error paths
+    - media: em28xx: Don't use ops->suspend if it is NULL
+    - ath9k: Fix potential interrupt storm on queue reset
+    - EDAC/amd64: Handle three rank interleaving mode
+    - netfilter: nft_dynset: relax superfluous check on set updates
+    - media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
+    - crypto: qat - detect PFVF collision after ACK
+    - crypto: qat - disregard spurious PFVF interrupts
+    - hwrng: mtk - Force runtime pm ops for sleep ops
+    - b43legacy: fix a lower bounds test
+    - b43: fix a lower bounds test
+    - mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
+    - memstick: avoid out-of-range warning
+    - memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
+    - net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
+    - hwmon: Fix possible memleak in __hwmon_device_register()
+    - hwmon: (pmbus/lm25066) Let compiler determine outer dimension of
+      lm25066_coeff
+    - ath10k: fix max antenna gain unit
+    - drm/msm: uninitialized variable in msm_gem_import()
+    - net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
+    - mmc: mxs-mmc: disable regulator on error and in the remove function
+    - block: ataflop: fix breakage introduced at blk-mq refactoring
+    - platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
+    - mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
+    - rsi: stop thread firstly in rsi_91x_init() error handling
+    - mwifiex: Send DELBA requests according to spec
+    - phy: micrel: ksz8041nl: do not use power down mode
+    - nvme-rdma: fix error code in nvme_rdma_setup_ctrl
+    - PM: hibernate: fix sparse warnings
+    - clocksource/drivers/timer-ti-dm: Select TIMER_OF
+    - drm/msm: Fix potential NULL dereference in DPU SSPP
+    - smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
+    - libbpf: Fix BTF data layout checks and allow empty BTF
+    - s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
+    - irq: mips: avoid nested irq_enter()
+    - tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
+    - samples/kretprobes: Fix return value if register_kretprobe() failed
+    - KVM: s390: Fix handle_sske page fault handling
+    - libertas_tf: Fix possible memory leak in probe and disconnect
+    - libertas: Fix possible memory leak in probe and disconnect
+    - wcn36xx: add proper DMA memory barriers in rx path
+    - drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
+    - net: amd-xgbe: Toggle PLL settings during rate change
+    - net: phylink: avoid mvneta warning when setting pause parameters
+    - crypto: pcrypt - Delay write to padata->info
+    - selftests/bpf: Fix fclose/pclose mismatch in test_progs
+    - udp6: allow SO_MARK ctrl msg to affect routing
+    - ibmvnic: don't stop queue in xmit
+    - ibmvnic: Process crqs after enabling interrupts
+    - RDMA/rxe: Fix wrong port_cap_flags
+    - clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
+    - ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
+    - arm64: dts: rockchip: Fix GPU register width for RK3328
+    - ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
+    - RDMA/bnxt_re: Fix query SRQ failure
+    - arm64: dts: meson-g12a: Fix the pwm regulator supply properties
+    - ARM: dts: at91: tse850: the emac<->phy interface is rmii
+    - scsi: dc395: Fix error case unwinding
+    - MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
+    - JFS: fix memleak in jfs_mount
+    - ALSA: hda: Reduce udelay() at SKL+ position reporting
+    - arm: dts: omap3-gta04a4: accelerometer irq fix
+    - soc/tegra: Fix an error handling path in tegra_powergate_power_up()
+    - memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
+    - clk: at91: check pmc node status before registering syscore ops
+    - video: fbdev: chipsfb: use memset_io() instead of memset()
+    - serial: 8250_dw: Drop wrong use of ACPI_PTR()
+    - usb: gadget: hid: fix error code in do_config()
+    - power: supply: rt5033_battery: Change voltage values to µV
+    - scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
+    - RDMA/mlx4: Return missed an error if device doesn't support steering
+    - staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
+    - ARM: dts: stm32: fix SAI sub nodes register range
+    - ASoC: cs42l42: Correct some register default values
+    - ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
+    - phy: qcom-qusb2: Fix a memory leak on probe
+    - serial: xilinx_uartps: Fix race condition causing stuck TX
+    - HID: u2fzero: clarify error check and length calculations
+    - HID: u2fzero: properly handle timeouts in usb_submit_urb
+    - powerpc/44x/fsp2: add missing of_node_put
+    - mips: cm: Convert to bitfield API to fix out-of-bounds access
+    - power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
+    - apparmor: fix error check
+    - rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
+    - pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
+    - drm/plane-helper: fix uninitialized variable reference
+    - PCI: aardvark: Don't spam about PIO Response Status
+    - PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
+    - opp: Fix return in _opp_add_static_v2()
+    - NFS: Fix deadlocks in nfs_scan_commit_list()
+    - fs: orangefs: fix error return code of orangefs_revalidate_lookup()
+    - mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
+    - mtd: core: don't remove debugfs directory if device is in use
+    - dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
+    - auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
+    - auxdisplay: ht16k33: Connect backlight to fbdev
+    - auxdisplay: ht16k33: Fix frame buffer device blanking
+    - soc: fsl: dpaa2-console: free buffer before returning from
+      dpaa2_console_read
+    - netfilter: nfnetlink_queue: fix OOB when mac header was cleared
+    - dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
+    - signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
+    - m68k: set a default value for MEMORY_RESERVE
+    - watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
+    - ar7: fix kernel builds for compiler test
+    - scsi: qla2xxx: Fix gnl list corruption
+    - scsi: qla2xxx: Turn off target reset during issue_lip
+    - NFSv4: Fix a regression in nfs_set_open_stateid_locked()
+    - i2c: xlr: Fix a resource leak in the error handling path of
+      'xlr_i2c_probe()'
+    - xen-pciback: Fix return in pm_ctrl_init()
+    - net: davinci_emac: Fix interrupt pacing disable
+    - net: vlan: fix a UAF in vlan_dev_real_dev()
+    - ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
+    - bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
+    - mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and
+      zs_unregister_migration()
+    - zram: off by one in read_block_state()
+    - perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
+    - llc: fix out-of-bound array index in llc_sk_dev_hash()
+    - nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
+    - arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
+    - bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
+    - net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
+    - net: hns3: allow configure ETS bandwidth of all TCs
+    - vsock: prevent unnecessary refcnt inc for nonblocking connect
+    - net/smc: fix sk_refcnt underflow on linkdown and fallback
+    - cxgb4: fix eeprom len when diagnostics not implemented
+    - selftests/net: udpgso_bench_rx: fix port argument
+    - ARM: 9155/1: fix early early_iounmap()
+    - ARM: 9156/1: drop cc-option fallbacks for architecture selection
+    - parisc: Fix set_fixmap() on PA1.x CPUs
+    - irqchip/sifive-plic: Fixup EOI failed when masked
+    - f2fs: should use GFP_NOFS for directory inodes
+    - net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
+    - 9p/net: fix missing error check in p9_check_errors
+    - ovl: fix deadlock in splice write
+    - powerpc/lib: Add helper to check if offset is within conditional branch
+      range
+    - powerpc/bpf: Validate branch ranges
+    - powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
+    - powerpc/security: Add a helper to query stf_barrier type
+    - powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
+    - mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
+    - mm, oom: do not trigger out_of_memory from the #PF
+    - video: backlight: Drop maximum brightness override for brightness zero
+    - s390/cio: check the subchannel validity for dev_busid
+    - s390/tape: fix timer initialization in tape_std_assign()
+    - s390/cio: make ccw_device_dma_* more robust
+    - powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
+    - PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
+    - SUNRPC: Partial revert of commit 6f9f17287e78
+    - ath10k: fix invalid dma_addr_t token assignment
+    - selftests/bpf: Fix also no-alu32 strobemeta selftest
+    - Linux 5.4.160
+    - soc/tegra: pmc: Fix imbalanced clock disabling in error code path
+  * Focal update: v5.4.159 upstream stable release (LP: #1953071)
+    - Revert "x86/kvm: fix vcpu-id indexed array sizes"
+    - usb: ehci: handshake CMD_RUN instead of STS_HALT
+    - usb: gadget: Mark USB_FSL_QE broken on 64-bit
+    - usb: musb: Balance list entry in musb_gadget_queue
+    - usb-storage: Add compatibility quirk flags for iODD 2531/2541
+    - binder: don't detect sender/target during buffer cleanup
+    - printk/console: Allow to disable console output by using console="" or
+      console=null
+    - isofs: Fix out of bound access for corrupted isofs image
+    - comedi: dt9812: fix DMA buffers on stack
+    - comedi: ni_usb6501: fix NULL-deref in command paths
+    - comedi: vmk80xx: fix transfer-buffer overflows
+    - comedi: vmk80xx: fix bulk-buffer overflow
+    - comedi: vmk80xx: fix bulk and interrupt message timeouts
+    - staging: r8712u: fix control-message timeout
+    - staging: rtl8192u: fix control-message timeouts
+    - media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
+    - rsi: fix control-message timeout
+    - Linux 5.4.159
+  * Focal update: v5.4.158 upstream stable release (LP: #1953066)
+    - scsi: core: Put LLD module refcnt after SCSI device is released
+    - vrf: Revert "Reset skb conntrack connection..."
+    - net: ethernet: microchip: lan743x: Fix skb allocation failure
+    - media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
+    - Revert "xhci: Set HCD flag to defer primary roothub registration"
+    - Revert "usb: core: hcd: Add support for deferring roothub registration"
+    - sfc: Fix reading non-legacy supported link modes
+    - ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
+    - Linux 5.4.158
+  * [Ubuntu 20.04] Problem leading IUCV service down (on s390x) (LP: #1913442)
+    - usercopy: mark dma-kmalloc caches as usercopy caches
+
+  [ Ubuntu: 5.4.0-96.109 ]
+
+  * Support builtin revoked certificates (LP: #1932029)
+    - [Config]: add i386 to CONFIG_SYSTEM_REVOCATION_KEYS annotation
+  * CVE-2022-0185
+    - SAUCE: vfs: Out-of-bounds write of heap buffer in fs_context.c
+    - SAUCE: vfs: test that one given mount param is not larger than PAGE_SIZE
+
+  [ Ubuntu: 5.4.0-94.106 ]
+
+  * focal/linux: 5.4.0-94.106 -proposed tracker (LP: #1956628)
+  * [Regression] Focal kernel  5.4.0-92.103 fails to boot when Secure Encrypted
+    Virtualization(SEV) is enabled (LP: #1956575)
+    - x86/ioremap: Map EFI-reserved memory as encrypted for SEV
+
+  [ Ubuntu: 5.4.0-92.103 ]
+
+  * focal/linux: 5.4.0-92.103 -proposed tracker (LP: #1952316)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - debian/dkms-versions -- update from kernel-versions (main/2021.11.29)
+  * CVE-2021-4002
+    - tlb: mmu_gather: add tlb_flush_*_range APIs
+    - hugetlbfs: flush TLBs correctly after huge_pmd_unshare
+  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
+    - [Config] Enable CONFIG_DEBUG_INFO_BTF on all arches
+  * Focal linux-azure: Vm crash on Dv5/Ev5 (LP: #1950462)
+    - KVM: VMX: eVMCS: make evmcs_sanitize_exec_ctrls() work again
+    - jump_label: Fix usage in module __init
+  * Support builtin revoked certificates (LP: #1932029)
+    - Revert "UBUNTU: SAUCE: (lockdown) Make get_cert_list() not complain about
+      cert lists that aren't present."
+    - integrity: Move import of MokListRT certs to a separate routine
+    - integrity: Load certs from the EFI MOK config table
+    - certs: Add ability to preload revocation certs
+    - integrity: Load mokx variables into the blacklist keyring
+    - certs: add 'x509_revocation_list' to gitignore
+    - SAUCE: Dump stack when X.509 certificates cannot be loaded
+    - [Packaging] build canonical-revoked-certs.pem from branch/arch certs
+    - [Packaging] Revoke 2012 UEFI signing certificate as built-in
+    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
+  * Support importing mokx keys into revocation list from the mok table
+    (LP: #1928679)
+    - efi: Support for MOK variable config table
+    - efi: mokvar-table: fix some issues in new code
+    - efi: mokvar: add missing include of asm/early_ioremap.h
+    - efi/mokvar: Reserve the table only if it is in boot services data
+    - SAUCE: integrity: add informational messages when revoking certs
+  * Support importing mokx keys into revocation list from the mok table
+    (LP: #1928679) // CVE-2020-26541 when certificates are revoked via
+    MokListXRT.
+    - SAUCE: integrity: Load mokx certs from the EFI MOK config table
+  * Focal update: v5.4.157 upstream stable release (LP: #1951883)
+    - ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
+    - ARM: 9134/1: remove duplicate memcpy() definition
+    - ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
+    - ARM: 9141/1: only warn about XIP address when not compile testing
+    - ipv6: use siphash in rt6_exception_hash()
+    - ipv4: use siphash instead of Jenkins in fnhe_hashfun()
+    - usbnet: sanity check for maxpacket
+    - usbnet: fix error return code in usbnet_probe()
+    - Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
+    - ata: sata_mv: Fix the error handling of mv_chip_id()
+    - nfc: port100: fix using -ERRNO as command type mask
+    - net/tls: Fix flipped sign in tls_err_abort() calls
+    - mmc: vub300: fix control-message timeouts
+    - mmc: cqhci: clear HALT state after CQE enable
+    - mmc: dw_mmc: exynos: fix the finding clock sample value
+    - mmc: sdhci: Map more voltage level to SDHCI_POWER_330
+    - mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning
+      circuit
+    - cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
+    - net: lan78xx: fix division by zero in send path
+    - tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
+    - IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
+    - IB/hfi1: Fix abba locking issue with sc_disable()
+    - nvmet-tcp: fix data digest pointer calculation
+    - nvme-tcp: fix data digest pointer calculation
+    - RDMA/mlx5: Set user priority for DCT
+    - arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
+    - regmap: Fix possible double-free in regcache_rbtree_exit()
+    - net: batman-adv: fix error handling
+    - net: Prevent infinite while loop in skb_tx_hash()
+    - RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
+    - nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
+    - net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume
+      fails
+    - net: ethernet: microchip: lan743x: Fix dma allocation failure by using
+      dma_set_mask_and_coherent
+    - net: nxp: lpc_eth.c: avoid hang when bringing interface down
+    - net/tls: Fix flipped sign in async_wait.err assignment
+    - phy: phy_ethtool_ksettings_get: Lock the phy for consistency
+    - phy: phy_start_aneg: Add an unlocked version
+    - sctp: use init_tag from inithdr for ABORT chunk
+    - sctp: fix the processing for INIT_ACK chunk
+    - sctp: fix the processing for COOKIE_ECHO chunk
+    - sctp: add vtag check in sctp_sf_violation
+    - sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
+    - sctp: add vtag check in sctp_sf_ootb
+    - net: use netif_is_bridge_port() to check for IFF_BRIDGE_PORT
+    - cfg80211: correct bridge/4addr mode check
+    - KVM: s390: clear kicked_mask before sleeping again
+    - KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
+    - perf script: Check session->header.env.arch before using it
+    - Linux 5.4.157
+  * keyboard not working on Medion notebook s17 series (LP: #1950536)
+    - ACPI: resources: Add one more Medion model in IRQ override quirk
+  * creat09 from ubuntu_ltp_syscalls and cve-2018-13405 from ubuntu_ltp/cve
+    failed with XFS (LP: #1950239)
+    - xfs: ensure that the inode uid/gid match values match the icdinode ones
+    - xfs: merge the projid fields in struct xfs_icdinode
+    - xfs: remove the icdinode di_uid/di_gid members
+    - xfs: fix up non-directory creation in SGID directories
+  * reuseport_bpf_numa in net from ubuntu_kernel_selftests fails on ppc64le
+    (LP: #1867570)
+    - selftests/net: Fix reuseport_bpf_numa by skipping unavailable nodes
+  * Focal update: v5.4.156 upstream stable release (LP: #1951295)
+    - parisc: math-emu: Fix fall-through warnings
+    - net: switchdev: do not propagate bridge updates across bridges
+    - tee: optee: Fix missing devices unregister during optee_remove
+    - ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
+    - xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
+    - xtensa: xtfpga: Try software restart before simulating CPU reset
+    - NFSD: Keep existing listeners on portlist error
+    - dma-debug: fix sg checks in debug_dma_map_sg()
+    - ASoC: wm8960: Fix clock configuration on slave mode
+    - netfilter: ipvs: make global sysctl readonly in non-init netns
+    - lan78xx: select CRC32
+    - net: dsa: lantiq_gswip: fix register definition
+    - NIOS2: irqflags: rename a redefined register name
+    - net: hns3: reset DWRR of unused tc to zero
+    - net: hns3: add limit ets dwrr bandwidth cannot be 0
+    - net: hns3: disable sriov before unload hclge layer
+    - net: stmmac: Fix E2E delay mechanism
+    - net: enetc: fix ethtool counter name for PM0_TERR
+    - can: rcar_can: fix suspend/resume
+    - can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state
+      notification
+    - can: peak_pci: peak_pci_remove(): fix UAF
+    - can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
+    - can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
+    - can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with
+      error length
+    - can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
+    - ceph: fix handling of "meta" errors
+    - ocfs2: fix data corruption after conversion from inline format
+    - ocfs2: mount fails with buffer overflow in strlen
+    - elfcore: correct reference to CONFIG_UML
+    - ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
+    - ALSA: hda/realtek: Add quirk for Clevo PC50HS
+    - ASoC: DAPM: Fix missing kctl change notifications
+    - audit: fix possible null-pointer dereference in audit_filter_rules
+    - powerpc64/idle: Fix SP offsets when saving GPRs
+    - KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
+    - KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to
+      guest
+    - powerpc/idle: Don't corrupt back chain when going idle
+    - mm, slub: fix mismatch between reconstructed freelist depth and cnt
+    - mm, slub: fix potential memoryleak in kmem_cache_open()
+    - nfc: nci: fix the UAF of rf_conn_info object
+    - isdn: cpai: check ctr->cnr to avoid array index out of bound
+    - netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
+    - selftests: netfilter: remove stray bash debug line
+    - gcc-plugins/structleak: add makefile var for disabling structleak
+    - btrfs: deal with errors when checking if a dir entry exists during log
+      replay
+    - net: stmmac: add support for dwmac 3.40a
+    - ARM: dts: spear3xx: Fix gmac node
+    - isdn: mISDN: Fix sleeping function called from invalid context
+    - platform/x86: intel_scu_ipc: Update timeout value in comment
+    - ALSA: hda: avoid write to STATESTS if controller is in reset
+    - Input: snvs_pwrkey - add clk handling
+    - scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
+    - tracing: Have all levels of checks prevent recursion
+    - ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
+    - pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
+    - Linux 5.4.156
+  * ubuntu_ltp / finit_module02 fails on v4.15 and other kernels
+    (LP: #1950644) // Focal update: v5.4.156 upstream stable release
+    (LP: #1951295)
+    - vfs: check fd has read access in kernel_read_file_from_fd()
+  * Focal update: v5.4.155 upstream stable release (LP: #1951291)
+    - ovl: simplify file splice
+    - ALSA: usb-audio: Add quirk for VF0770
+    - ALSA: seq: Fix a potential UAF by wrong private_free call order
+    - ALSA: hda/realtek: Complete partial device name to avoid ambiguity
+    - ALSA: hda/realtek: Add quirk for Clevo X170KM-G
+    - ALSA: hda/realtek - ALC236 headset MIC recording issue
+    - ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
+    - nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
+    - s390: fix strrchr() implementation
+    - csky: don't let sigreturn play with priveleged bits of status register
+    - csky: Fixup regs.sr broken in ptrace
+    - btrfs: unlock newly allocated extent buffer after error
+    - btrfs: deal with errors when replaying dir entry during log replay
+    - btrfs: deal with errors when adding inode reference during log replay
+    - btrfs: check for error when looking up inode during dir entry replay
+    - watchdog: orion: use 0 for unset heartbeat
+    - x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
+    - mei: me: add Ice Lake-N device id.
+    - xhci: guard accesses to ep_state in xhci_endpoint_reset()
+    - xhci: Fix command ring pointer corruption while aborting a command
+    - xhci: Enable trust tx length quirk for Fresco FL11 USB controller
+    - cb710: avoid NULL pointer subtraction
+    - efi/cper: use stack buffer for error record decoding
+    - efi: Change down_interruptible() in virt_efi_reset_system() to
+      down_trylock()
+    - usb: musb: dsps: Fix the probe error path
+    - Input: xpad - add support for another USB ID of Nacon GC-100
+    - USB: serial: qcserial: add EM9191 QDL support
+    - USB: serial: option: add Quectel EC200S-CN module support
+    - USB: serial: option: add Telit LE910Cx composition 0x1204
+    - USB: serial: option: add prod. id for Quectel EG91
+    - EDAC/armada-xp: Fix output of uncorrectable error counter
+    - nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
+    - x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
+    - powerpc/xive: Discard disabled interrupts in get_irqchip_state()
+    - iio: adc: aspeed: set driver data when adc probe.
+    - iio: adc128s052: Fix the error handling path of 'adc128_probe()'
+    - iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
+    - iio: light: opt3001: Fixed timeout error when 0 lux
+    - iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
+    - iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
+    - iio: dac: ti-dac5571: fix an error code in probe()
+    - sctp: account stream padding length for reconf chunk
+    - gpio: pca953x: Improve bias setting
+    - net: arc: select CRC32
+    - net: korina: select CRC32
+    - net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
+    - net: stmmac: fix get_hw_feature() on old hardware
+    - net: encx24j600: check error in devm_regmap_init_encx24j600
+    - ethernet: s2io: fix setting mac address during resume
+    - nfc: fix error handling of nfc_proto_register()
+    - NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
+    - NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
+    - pata_legacy: fix a couple uninitialized variable bugs
+    - ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
+    - mlxsw: thermal: Fix out-of-bounds memory accesses
+    - platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
+    - drm/panel: olimex-lcd-olinuxino: select CRC32
+    - drm/msm: Fix null pointer dereference on pointer edp
+    - drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
+    - drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
+    - acpi/arm64: fix next_platform_timer() section mismatch error
+    - mqprio: Correct stats in mqprio_dump_class_stats().
+    - qed: Fix missing error code in qed_slowpath_start()
+    - r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
+    - ionic: don't remove netdev->dev_addr when syncing uc list
+    - Linux 5.4.155
+  * [UBUNTU 20.04] kernel:  unable to read partitions on virtio-block dasd (kvm)
+    (LP: #1950144) // Focal update: v5.4.155 upstream stable release
+    (LP: #1951291)
+    - virtio: write back F_VERSION_1 before validate
+  * Focal update: v5.4.154 upstream stable release (LP: #1951288)
+    - net: phy: bcm7xxx: Fixed indirect MMD operations
+    - ext4: correct the error path of ext4_write_inline_data_end()
+    - HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
+    - netfilter: ip6_tables: zero-initialize fragment offset
+    - HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
+    - netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
+    - netfilter: nf_nat_masquerade: defer conntrack walk to work queue
+    - mac80211: Drop frames from invalid MAC address in ad-hoc mode
+    - m68k: Handle arrivals of multiple signals correctly
+    - net: prevent user from passing illegal stab size
+    - mac80211: check return value of rhashtable_init
+    - net: sun: SUNVNET_COMMON should depend on INET
+    - drm/amdgpu: fix gart.bo pin_count leak
+    - scsi: ses: Fix unsigned comparison with less than zero
+    - scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
+    - sched: Always inline is_percpu_thread()
+    - Linux 5.4.154
+  * Focal update: v5.4.153 upstream stable release (LP: #1950014)
+    - Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
+    - USB: cdc-acm: fix racy tty buffer accesses
+    - USB: cdc-acm: fix break reporting
+    - usb: typec: tcpm: handle SRC_STARTUP state if cc changes
+    - xen/privcmd: fix error handling in mmap-resource processing
+    - mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
+    - ovl: fix missing negative dentry check in ovl_rename()
+    - nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
+    - nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
+    - xen/balloon: fix cancelled balloon action
+    - ARM: dts: omap3430-sdp: Fix NAND device node
+    - ARM: dts: qcom: apq8064: use compatible which contains chipid
+    - MIPS: BPF: Restore MIPS32 cBPF JIT
+    - bpf, mips: Validate conditional branch offsets
+    - soc: qcom: socinfo: Fixed argument passed to platform_set_data()
+    - ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
+    - soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
+    - ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
+    - ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
+    - arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
+    - xtensa: move XCHAL_KIO_* definitions to kmem_layout.h
+    - xtensa: use CONFIG_USE_OF instead of CONFIG_OF
+    - xtensa: call irqchip_init only when CONFIG_USE_OF is selected
+    - bpf, arm: Fix register clobbering in div/mod implementation
+    - bpf: Fix integer overflow in prealloc_elems_and_freelist()
+    - phy: mdio: fix memory leak
+    - net_sched: fix NULL deref in fifo_set_limit()
+    - powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
+    - ptp_pch: Load module automatically if ID matches
+    - arm64: dts: freescale: Fix SP805 clock-names
+    - arm64: dts: ls1028a: add missing CAN nodes
+    - ARM: imx6: disable the GIC CPU interface before calling stby-poweroff
+      sequence
+    - net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
+    - net/sched: sch_taprio: properly cancel timer from taprio_destroy()
+    - net: sfp: Fix typo in state machine debug string
+    - netlink: annotate data races around nlk->bound
+    - bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
+    - video: fbdev: gbefb: Only instantiate device when built for IP32
+    - drm/nouveau/debugfs: fix file release memory leak
+    - gve: Correct available tx qpl check
+    - rtnetlink: fix if_nlmsg_stats_size() under estimation
+    - gve: fix gve_get_stats()
+    - i40e: fix endless loop under rtnl
+    - i40e: Fix freeing of uninitialized misc IRQ vector
+    - net: prefer socket bound to interface when not in VRF
+    - i2c: acpi: fix resource leak in reconfiguration device addition
+    - bpf, s390: Fix potential memory leak about jit_data
+    - RISC-V: Include clone3() on rv32
+    - x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
+    - x86/hpet: Use another crystalball to evaluate HPET usability
+    - x86/Kconfig: Correct reference to MWINCHIP3D
+    - Linux 5.4.153
+  * Focal update: v5.4.152 upstream stable release (LP: #1950009)
+    - net: mdio: introduce a shutdown method to mdio device drivers
+    - xen-netback: correct success/error reporting for the SKB-with-fraglist case
+    - sparc64: fix pci_iounmap() when CONFIG_PCI is not set
+    - ext2: fix sleeping in atomic bugs on error
+    - scsi: sd: Free scsi_disk device via put_device()
+    - usb: testusb: Fix for showing the connection speed
+    - usb: dwc2: check return value after calling platform_get_resource()
+    - selftests: be sure to make khdr before other targets
+    - selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
+    - scsi: ses: Retry failed Send/Receive Diagnostic commands
+    - tools/vm/page-types: remove dependency on opt_file for idle page tracking
+    - KVM: do not shrink halt_poll_ns below grow_start
+    - kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
+    - perf/x86: Reset destroy callback on event init failure
+    - silence nfscache allocation warnings with kvzalloc
+    - libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
+    - Linux 5.4.152
+  * linux-aws: Fix backport of RDMA/efa: Expose maximum  TX doorbell batch
+    (LP: #1949882)
+    - SAUCE: aws: Fix backport of RDMA/efa: Expose maximum TX doorbell batch
+
+  [ Ubuntu: 5.4.0-91.102 ]
+
+  * focal/linux: 5.4.0-91.102 -proposed tracker (LP: #1949840)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update Ubuntu.md
+    - debian/dkms-versions -- update from kernel-versions (main/2021.11.08)
+  * KVM emulation failure when booting into  VM crash kernel with multiple CPUs
+    (LP: #1948862)
+    - KVM: x86: Properly reset MMU context at vCPU RESET/INIT
+  * aufs: kernel bug with apparmor and fuseblk (LP: #1948470)
+    - SAUCE: aufs: bugfix, stop omitting path->mnt
+  * ebpf:  bpf_redirect fails with ip6 gre interfaces (LP: #1947164)
+    - net: handle ARPHRD_IP6GRE in dev_is_mac_header_xmit()
+  * require CAP_NET_ADMIN to attach N_HCI ldisc (LP: #1949516)
+    - Bluetooth: hci_ldisc: require CAP_NET_ADMIN to attach N_HCI ldisc
+  * ACL updates on OCFS2 are not revalidated (LP: #1947161)
+    - ocfs2: fix remounting needed after setfacl command
+  * ppc64 BPF JIT mod by 1 will not return 0 (LP: #1948351)
+    - powerpc/bpf: Fix BPF_MOD when imm == 1
+  * Drop "UBUNTU: SAUCE: cachefiles: Page leaking in
+    cachefiles_read_backing_file while vmscan is active" (LP: #1947709)
+    - Revert "UBUNTU: SAUCE: cachefiles: Page leaking in
+      cachefiles_read_backing_file while vmscan is active"
+  * Reassign I/O Path of ConnectX-5 Port 1 before Port 2 causes NULL dereference
+    (LP: #1943464)
+    - s390/pci: fix leak of PCI device structure
+    - s390/pci: fix use after free of zpci_dev
+    - s390/pci: fix zpci_zdev_put() on reserve
+  * [SRU][F] USB: serial: pl2303: add support for PL2303HXN (LP: #1948377)
+    - USB: serial: pl2303: add support for PL2303HXN
+    - USB: serial: pl2303: fix line-speed handling on newer chips
+  * Focal update: v5.4.151 upstream stable release (LP: #1947888)
+    - tty: Fix out-of-bound vmalloc access in imageblit
+    - cpufreq: schedutil: Use kobject release() method to free sugov_tunables
+    - cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
+    - usb: cdns3: fix race condition before setting doorbell
+    - fs-verity: fix signed integer overflow with i_size near S64_MAX
+    - hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - scsi: ufs: Fix illegal offset in UPIU event trace
+    - mac80211: fix use-after-free in CCMP/GCMP RX
+    - x86/kvmclock: Move this_cpu_pvti into kvmclock.h
+    - drm/amd/display: Pass PCI deviceid into DC
+    - ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
+    - hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced
+      from sysfs
+    - mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
+    - mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
+    - mac80211: mesh: fix potentially unaligned access
+    - mac80211-hwsim: fix late beacon hrtimer handling
+    - sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
+    - hwmon: (tmp421) report /PVLD condition as fault
+    - hwmon: (tmp421) fix rounding for negative values
+    - net: ipv4: Fix rtnexthop len when RTA_FLOW is present
+    - e100: fix length calculation in e100_get_regs_len
+    - e100: fix buffer overrun in e100_get_regs
+    - selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
+    - scsi: csiostor: Add module softdep on cxgb4
+    - net: hns3: do not allow call hns3_nic_net_open repeatedly
+    - net: sched: flower: protect fl_walk() with rcu
+    - af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
+    - perf/x86/intel: Update event constraints for ICX
+    - elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
+    - debugfs: debugfs_create_file_size(): use IS_ERR to check for error
+    - ipack: ipoctal: fix stack information leak
+    - ipack: ipoctal: fix tty registration race
+    - ipack: ipoctal: fix tty-registration error handling
+    - ipack: ipoctal: fix missing allocation-failure check
+    - ipack: ipoctal: fix module reference leak
+    - ext4: fix loff_t overflow in ext4_max_bitmap_size()
+    - ext4: fix reserved space counter leakage
+    - ext4: fix potential infinite loop in ext4_dx_readdir()
+    - HID: u2fzero: ignore incomplete packets without data
+    - net: udp: annotate data race around udp_sk(sk)->corkflag
+    - net: stmmac: don't attach interface until resume finishes
+    - PCI: Fix pci_host_bridge struct device release/free handling
+    - libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
+    - hso: fix bailout in error case of probe
+    - usb: hso: fix error handling code of hso_create_net_device
+    - usb: hso: remove the bailout parameter
+    - crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
+    - HID: betop: fix slab-out-of-bounds Write in betop_probe
+    - netfilter: ipset: Fix oversized kvmalloc() calls
+    - HID: usbhid: free raw_report buffers in usbhid_stop
+    - Linux 5.4.151
+  * Focal update: v5.4.150 upstream stable release (LP: #1947886)
+    - usb: gadget: r8a66597: fix a loop in set_feature()
+    - usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
+    - usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
+    - usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
+    - cifs: fix incorrect check for null pointer in header_assemble
+    - xen/x86: fix PV trap handling on secondary processors
+    - usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
+    - USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
+    - USB: cdc-acm: fix minor-number release
+    - binder: make sure fd closes complete
+    - staging: greybus: uart: fix tty use after free
+    - Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
+    - USB: serial: mos7840: remove duplicated 0xac24 device ID
+    - USB: serial: option: add Telit LN920 compositions
+    - USB: serial: option: remove duplicate USB device ID
+    - USB: serial: option: add device id for Foxconn T99W265
+    - mcb: fix error handling in mcb_alloc_bus()
+    - erofs: fix up erofs_lookup tracepoint
+    - btrfs: prevent __btrfs_dump_space_info() to underflow its free space
+    - serial: mvebu-uart: fix driver's tx_empty callback
+    - net: hso: fix muxed tty registration
+    - afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation
+    - platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR()
+    - enetc: Fix illegal access when reading affinity_hint
+    - bnxt_en: Fix TX timeout when TX ring size is set to the smallest
+    - net/smc: add missing error check in smc_clc_prfx_set()
+    - gpio: uniphier: Fix void functions to remove return value
+    - qed: rdma - don't wait for resources under hw error recovery flow
+    - net/mlx4_en: Don't allow aRFS for encapsulated packets
+    - scsi: iscsi: Adjust iface sysfs attr detection
+    - tty: synclink_gt, drop unneeded forward declarations
+    - tty: synclink_gt: rename a conflicting function name
+    - fpga: machxo2-spi: Return an error on failure
+    - fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
+    - thermal/core: Potential buffer overflow in thermal_build_list_of_policies()
+    - cifs: fix a sign extension bug
+    - scsi: qla2xxx: Restore initiator in dual mode
+    - scsi: lpfc: Use correct scnprintf() limit
+    - irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
+    - irqchip/gic-v3-its: Fix potential VPE leak on error
+    - md: fix a lock order reversal in md_alloc
+    - blktrace: Fix uaf in blk_trace access after removing by sysfs
+    - net: macb: fix use after free on rmmod
+    - net: stmmac: allow CSR clock of 300MHz
+    - m68k: Double cast io functions to unsigned long
+    - ipv6: delay fib6_sernum increase in fib6_add
+    - bpf: Add oversize check before call kvcalloc()
+    - xen/balloon: use a kernel thread instead a workqueue
+    - nvme-multipath: fix ANA state updates when a namespace is not present
+    - sparc32: page align size in arch_dma_alloc
+    - blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
+    - compiler.h: Introduce absolute_pointer macro
+    - net: i825xx: Use absolute_pointer for memcpy from fixed memory location
+    - sparc: avoid stringop-overread errors
+    - qnx4: avoid stringop-overread errors
+    - parisc: Use absolute_pointer() to define PAGE0
+    - arm64: Mark __stack_chk_guard as __ro_after_init
+    - alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
+    - net: 6pack: Fix tx timeout and slot time
+    - spi: Fix tegra20 build with CONFIG_PM=n
+    - EDAC/synopsys: Fix wrong value type assignment for edac_mode
+    - thermal/drivers/int340x: Do not set a wrong tcc offset on resume
+    - arm64: dts: marvell: armada-37xx: Extend PCIe MEM space
+    - xen/balloon: fix balloon kthread freezing
+    - qnx4: work around gcc false positive warning bug
+    - Linux 5.4.150
+  * ACL updates on OCFS2 are not revalidated (LP: #1947161) // Focal update:
+    v5.4.150 upstream stable release (LP: #1947886)
+    - ocfs2: drop acl cache for directories too
+  * Focal update: v5.4.149 upstream stable release (LP: #1947885)
+    - PCI: pci-bridge-emul: Fix big-endian support
+    - PCI: aardvark: Indicate error in 'val' when config read fails
+    - PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
+    - PCI: aardvark: Fix reporting CRS value
+    - PCI/ACPI: Add Ampere Altra SOC MCFG quirk
+    - KVM: remember position in kvm->vcpus array
+    - console: consume APC, DM, DCS
+    - s390/pci_mmio: fully validate the VMA before calling follow_pte()
+    - ARM: Qualify enabling of swiotlb_init()
+    - apparmor: remove duplicate macro list_entry_is_head()
+    - ARM: 9077/1: PLT: Move struct plt_entries definition to header
+    - ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
+    - ARM: 9079/1: ftrace: Add MODULE_PLTS support
+    - ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE
+    - sctp: validate chunk size in __rcv_asconf_lookup
+    - sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
+    - staging: rtl8192u: Fix bitwise vs logical operator in
+      TranslateRxSignalStuff819xUsb()
+    - um: virtio_uml: fix memory leak on init failures
+    - dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
+    - thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
+    - 9p/trans_virtio: Remove sysfs file on probe failure
+    - prctl: allow to setup brk for et_dyn executables
+    - nilfs2: use refcount_dec_and_lock() to fix potential UAF
+    - profiling: fix shift-out-of-bounds bugs
+    - pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was
+      registered
+    - phy: avoid unnecessary link-up delay in polling mode
+    - net: stmmac: reset Tx desc base address before restarting Tx
+    - Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
+    - thermal/core: Fix thermal_cooling_device_register() prototype
+    - drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
+    - parisc: Move pci_dev_is_behind_card_dino to where it is used
+    - dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
+    - dmaengine: ioat: depends on !UML
+    - dmaengine: xilinx_dma: Set DMA mask for coherent APIs
+    - ceph: request Fw caps before updating the mtime in ceph_write_iter
+    - ceph: lockdep annotations for try_nonblocking_invalidate
+    - btrfs: fix lockdep warning while mounting sprout fs
+    - nilfs2: fix memory leak in nilfs_sysfs_create_device_group
+    - nilfs2: fix NULL pointer in nilfs_##name##_attr_release
+    - nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
+    - nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
+    - pwm: img: Don't modify HW state in .remove() callback
+    - pwm: rockchip: Don't modify HW state in .remove() callback
+    - pwm: stm32-lp: Don't modify HW state in .remove() callback
+    - blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
+    - rtc: rx8010: select REGMAP_I2C
+    - drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
+    - Linux 5.4.149
+
+  [ Ubuntu: 5.4.0-90.101 ]
+
+  * focal/linux: 5.4.0-90.101 -proposed tracker (LP: #1947260)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.10.18)
+  * Add final-checks to check certificates (LP: #1947174)
+    - [Packaging] Add system trusted and revocation keys final check
+  * No sound on Lenovo laptop models Legion 15IMHG05, Yoga 7 14ITL5, and 13s
+    Gen2 (LP: #1939052)
+    - ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i
+      15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.
+    - ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s
+      Gen2
+  * CVE-2020-36385
+    - RDMA/cma: Add missing locking to rdma_accept()
+    - RDMA/ucma: Fix the locking of ctx->file
+    - RDMA/ucma: Rework ucma_migrate_id() to avoid races with destroy
+  * Focal update: v5.4.148 upstream stable release (LP: #1946802)
+    - rtc: tps65910: Correct driver module alias
+    - btrfs: wake up async_delalloc_pages waiters after submit
+    - btrfs: reset replace target device to allocation state on close
+    - blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
+    - blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
+    - PCI/MSI: Skip masking MSI-X on Xen PV
+    - powerpc/perf/hv-gpci: Fix counter value parsing
+    - xen: fix setting of max_pfn in shared_info
+    - include/linux/list.h: add a macro to test if entry is pointing to the head
+    - 9p/xen: Fix end of loop tests for list_for_each_entry
+    - tools/thermal/tmon: Add cross compiling support
+    - pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
+    - pinctrl: ingenic: Fix incorrect pull up/down info
+    - soc: qcom: aoss: Fix the out of bound usage of cooling_devs
+    - soc: aspeed: lpc-ctrl: Fix boundary check for mmap
+    - soc: aspeed: p2a-ctrl: Fix boundary check for mmap
+    - arm64: head: avoid over-mapping in map_memory
+    - crypto: public_key: fix overflow during implicit conversion
+    - block: bfq: fix bfq_set_next_ioprio_data()
+    - power: supply: max17042: handle fails of reading status register
+    - dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
+    - VMCI: fix NULL pointer dereference when unmapping queue pair
+    - media: uvc: don't do DMA on stack
+    - media: rc-loopback: return number of emitters rather than error
+    - Revert "dmaengine: imx-sdma: refine to load context only once"
+    - dmaengine: imx-sdma: remove duplicated sdma_load_context
+    - libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
+    - ARM: 9105/1: atags_to_fdt: don't warn about stack size
+    - PCI/portdrv: Enable Bandwidth Notification only if port supports it
+    - PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
+    - PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
+    - PCI: xilinx-nwl: Enable the clock through CCF
+    - PCI: aardvark: Fix checking for PIO status
+    - PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
+    - PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
+    - HID: input: do not report stylus battery state as "full"
+    - f2fs: quota: fix potential deadlock
+    - scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND
+    - IB/hfi1: Adjust pkey entry in index 0
+    - RDMA/iwcm: Release resources if iw_cm module initialization fails
+    - docs: Fix infiniband uverbs minor number
+    - pinctrl: samsung: Fix pinctrl bank pin count
+    - vfio: Use config not menuconfig for VFIO_NOIOMMU
+    - powerpc/stacktrace: Include linux/delay.h
+    - RDMA/efa: Remove double QP type assignment
+    - f2fs: show f2fs instance in printk_ratelimited
+    - f2fs: reduce the scope of setting fsck tag when de->name_len is zero
+    - openrisc: don't printk() unconditionally
+    - dma-debug: fix debugfs initialization order
+    - SUNRPC: Fix potential memory corruption
+    - scsi: fdomain: Fix error return code in fdomain_probe()
+    - pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
+    - scsi: smartpqi: Fix an error code in pqi_get_raid_map()
+    - scsi: qedi: Fix error codes in qedi_alloc_global_queues()
+    - scsi: qedf: Fix error codes in qedf_alloc_global_queues()
+    - powerpc/config: Renable MTD_PHYSMAP_OF
+    - scsi: target: avoid per-loop XCOPY buffer allocations
+    - HID: i2c-hid: Fix Elan touchpad regression
+    - KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs
+      are live
+    - platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from
+      run_smbios_call
+    - fscache: Fix cookie key hashing
+    - clk: at91: sam9x60: Don't use audio PLL
+    - clk: at91: clk-generated: pass the id of changeable parent at registration
+    - clk: at91: clk-generated: Limit the requested rate to our range
+    - KVM: PPC: Fix clearing never mapped TCEs in realmode
+    - f2fs: fix to account missing .skipped_gc_rwsem
+    - f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
+    - f2fs: fix to unmap pages from userspace process in punch_hole()
+    - MIPS: Malta: fix alignment of the devicetree buffer
+    - kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
+    - userfaultfd: prevent concurrent API initialization
+    - drm/amdgpu: Fix amdgpu_ras_eeprom_init()
+    - ASoC: atmel: ATMEL drivers don't need HAS_DMA
+    - media: dib8000: rewrite the init prbs logic
+    - crypto: mxs-dcp - Use sg_mapping_iter to copy data
+    - PCI: Use pci_update_current_state() in pci_enable_device_flags()
+    - tipc: keep the skb in rcv queue until the whole data is read
+    - iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
+    - iavf: do not override the adapter state in the watchdog task
+    - iavf: fix locking of critical sections
+    - ARM: dts: qcom: apq8064: correct clock names
+    - video: fbdev: kyro: fix a DoS bug by restricting user input
+    - netlink: Deal with ESRCH error in nlmsg_notify()
+    - Smack: Fix wrong semantics in smk_access_entry()
+    - drm: avoid blocking in drm_clients_info's rcu section
+    - igc: Check if num of q_vectors is smaller than max before array access
+    - usb: host: fotg210: fix the endpoint's transactional opportunities
+      calculation
+    - usb: host: fotg210: fix the actual_length of an iso packet
+    - usb: gadget: u_ether: fix a potential null pointer dereference
+    - USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
+    - usb: gadget: composite: Allow bMaxPower=0 if self-powered
+    - staging: board: Fix uninitialized spinlock when attaching genpd
+    - tty: serial: jsm: hold port lock when reporting modem line changes
+    - drm/amd/display: Fix timer_per_pixel unit error
+    - drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex
+    - bpf/tests: Fix copy-and-paste error in double word test
+    - bpf/tests: Do not PASS tests without actually testing the result
+    - video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
+    - video: fbdev: kyro: Error out if 'pixclock' equals zero
+    - video: fbdev: riva: Error out if 'pixclock' equals zero
+    - ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
+    - flow_dissector: Fix out-of-bounds warnings
+    - s390/jump_label: print real address in a case of a jump label bug
+    - s390: make PCI mio support a machine flag
+    - serial: 8250: Define RX trigger levels for OxSemi 950 devices
+    - xtensa: ISS: don't panic in rs_init
+    - hvsi: don't panic on tty_register_driver failure
+    - serial: 8250_pci: make setup_port() parameters explicitly unsigned
+    - staging: ks7010: Fix the initialization of the 'sleep_status' structure
+    - samples: bpf: Fix tracex7 error raised on the missing argument
+    - ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
+    - Bluetooth: skip invalid hci_sync_conn_complete_evt
+    - workqueue: Fix possible memory leaks in wq_numa_init()
+    - bonding: 3ad: fix the concurrency between __bond_release_one() and
+      bond_3ad_state_machine_handler()
+    - arm64: tegra: Fix Tegra194 PCIe EP compatible string
+    - ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the
+      matching in-/output
+    - media: imx258: Rectify mismatch of VTS value
+    - media: imx258: Limit the max analogue gain to 480
+    - media: v4l2-dv-timings.c: fix wrong condition in two for-loops
+    - media: TDA1997x: fix tda1997x_query_dv_timings() return value
+    - media: tegra-cec: Handle errors of clk_prepare_enable()
+    - ARM: dts: imx53-ppd: Fix ACHC entry
+    - arm64: dts: qcom: sdm660: use reg value for memory node
+    - net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()
+    - drm/msm: mdp4: drop vblank get/put from prepare/complete_commit
+    - selftests/bpf: Fix xdp_tx.c prog section name
+    - Bluetooth: schedule SCO timeouts with delayed_work
+    - Bluetooth: avoid circular locks in sco_sock_connect
+    - net/mlx5: Fix variable type to match 64bit
+    - gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable
+      access in amdgpu_i2c_router_select_ddc_port()
+    - drm/display: fix possible null-pointer dereference in dcn10_set_clock()
+    - mac80211: Fix monitor MTU limit so that A-MSDUs get through
+    - ARM: tegra: tamonten: Fix UART pad setting
+    - arm64: tegra: Fix compatible string for Tegra132 CPUs
+    - arm64: dts: ls1046a: fix eeprom entries
+    - nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data
+    - Bluetooth: Fix handling of LE Enhanced Connection Complete
+    - opp: Don't print an error if required-opps is missing
+    - serial: sh-sci: fix break handling for sysrq
+    - tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
+    - rpc: fix gss_svc_init cleanup on failure
+    - staging: rts5208: Fix get_ms_information() heap buffer size
+    - gfs2: Don't call dlm after protocol is unmounted
+    - usb: chipidea: host: fix port index underflow and UBSAN complains
+    - lockd: lockd server-side shouldn't set fl_ops
+    - drm/exynos: Always initialize mapping in exynos_drm_register_dma()
+    - m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
+    - btrfs: tree-log: check btrfs_lookup_data_extent return value
+    - ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER
+    - ASoC: Intel: Skylake: Fix passing loadable flag for module
+    - of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
+    - mmc: sdhci-of-arasan: Check return value of non-void funtions
+    - mmc: rtsx_pci: Fix long reads when clock is prescaled
+    - selftests/bpf: Enlarge select() timeout for test_maps
+    - mmc: core: Return correct emmc response in case of ioctl error
+    - cifs: fix wrong release in sess_alloc_buffer() failed path
+    - Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST
+      quirk set"
+    - usb: musb: musb_dsps: request_irq() after initializing musb
+    - usbip: give back URBs for unsent unlink requests during cleanup
+    - usbip:vhci_hcd USB port can get stuck in the disabled state
+    - ASoC: rockchip: i2s: Fix regmap_ops hang
+    - ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
+    - drm/amdkfd: Account for SH/SE count when setting up cu masks.
+    - iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed
+    - iwlwifi: mvm: avoid static queue number aliasing
+    - iwlwifi: mvm: fix access to BSS elements
+    - net/mlx5: DR, Enable QP retransmission
+    - parport: remove non-zero check on count
+    - ath9k: fix OOB read ar9300_eeprom_restore_internal
+    - ath9k: fix sleeping in atomic context
+    - net: fix NULL pointer reference in cipso_v4_doi_free
+    - fix array-index-out-of-bounds in taprio_change
+    - net: w5100: check return value after calling platform_get_resource()
+    - parisc: fix crash with signals and alloca
+    - ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
+    - scsi: BusLogic: Fix missing pr_cont() use
+    - scsi: qla2xxx: Changes to support kdump kernel
+    - scsi: qla2xxx: Sync queue idx with queue_pair_map idx
+    - cpufreq: powernv: Fix init_chip_info initialization in numa=off
+    - s390/pv: fix the forcing of the swiotlb
+    - mm/hugetlb: initialize hugetlb_usage in mm_init
+    - mm,vmscan: fix divide by zero in get_scan_count
+    - memcg: enable accounting for pids in nested pid namespaces
+    - platform/chrome: cros_ec_proto: Send command again when timeout occurs
+    - lib/test_stackinit: Fix static initializer test
+    - net: dsa: lantiq_gswip: fix maximum frame length
+    - drm/msi/mdp4: populate priv->kms in mdp4_kms_init
+    - drm/amdgpu: Fix BUG_ON assert
+    - drm/panfrost: Simplify lock_region calculation
+    - drm/panfrost: Use u64 for size in lock_region
+    - drm/panfrost: Clamp lock region to Bifrost minimum
+    - btrfs: fix upper limit for max_inline for page size 64K
+    - xen: reset legacy rtc flag for PV domU
+    - bnx2x: Fix enabling network interfaces without VFs
+    - arm64/sve: Use correct size when reinitialising SVE state
+    - PM: base: power: don't try to use non-existing RTC for storing data
+    - PCI: Add AMD GPU multi-function power dependencies
+    - drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10
+    - drm/etnaviv: return context from etnaviv_iommu_context_get
+    - drm/etnaviv: put submit prev MMU context when it exists
+    - drm/etnaviv: stop abusing mmu_context as FE running marker
+    - drm/etnaviv: keep MMU context across runtime suspend/resume
+    - drm/etnaviv: exec and MMU state is lost when resetting the GPU
+    - drm/etnaviv: fix MMU context leak on GPU reset
+    - drm/etnaviv: reference MMU context when setting up hardware state
+    - drm/etnaviv: add missing MMU context put when reaping MMU mapping
+    - s390/sclp: fix Secure-IPL facility detection
+    - x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
+    - tipc: fix an use-after-free issue in tipc_recvmsg
+    - net-caif: avoid user-triggerable WARN_ON(1)
+    - ptp: dp83640: don't define PAGE0
+    - net/l2tp: Fix reference count leak in l2tp_udp_recv_core
+    - r6040: Restore MDIO clock frequency after MAC reset
+    - tipc: increase timeout in tipc_sk_enqueue()
+    - perf machine: Initialize srcline string member in add_location struct
+    - net/mlx5: FWTrace, cancel work on alloc pd error flow
+    - net/mlx5: Fix potential sleeping in atomic context
+    - events: Reuse value read using READ_ONCE instead of re-reading it
+    - vhost_net: fix OoB on sendmsg() failure.
+    - net/af_unix: fix a data-race in unix_dgram_poll
+    - net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
+    - tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
+    - qed: Handle management FW error
+    - dt-bindings: arm: Fix Toradex compatible typo
+    - ibmvnic: check failover_pending in login response
+    - KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing
+      registers
+    - net: hns3: pad the short tunnel frame before sending to hardware
+    - net: hns3: change affinity_mask to numa node range
+    - net: hns3: disable mac in flr process
+    - net: hns3: fix the timing issue of VF clearing interrupt sources
+    - mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
+    - dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
+    - mfd: db8500-prcmu: Adjust map to reality
+    - PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms
+    - fuse: fix use after free in fuse_read_interrupt()
+    - mfd: Don't use irq_create_mapping() to resolve a mapping
+    - tracing/probes: Reject events which have the same name of existing one
+    - PCI: Add ACS quirks for Cavium multi-function devices
+    - Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
+    - PCI: ibmphp: Fix double unmap of io_mem
+    - ethtool: Fix an error code in cxgb2.c
+    - NTB: Fix an error code in ntb_msit_probe()
+    - NTB: perf: Fix an error code in perf_setup_inbuf()
+    - mfd: axp20x: Update AXP288 volatile ranges
+    - PCI: Fix pci_dev_str_match_path() alloc while atomic bug
+    - mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
+    - KVM: arm64: Handle PSCI resets before userspace touches vCPU state
+    - PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
+    - mtd: rawnand: cafe: Fix a resource leak in the error handling path of
+      'cafe_nand_probe()'
+    - ARC: export clear_user_page() for modules
+    - perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}
+    - net: dsa: b53: Fix calculating number of switch ports
+    - netfilter: socket: icmp6: fix use-after-scope
+    - fq_codel: reject silly quantum parameters
+    - qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
+    - ip_gre: validate csum_start only on pull
+    - net: renesas: sh_eth: Fix freeing wrong tx descriptor
+    - Linux 5.4.148
+  * Focal update: v5.4.147 upstream stable release (LP: #1946795)
+    - Linux 5.4.147
+    - upstream stable to v5.4.147
+  * CVE-2021-3428
+    - ext4: save the error code which triggered an ext4_error() in the superblock
+    - ext4: simulate various I/O and checksum errors when reading metadata
+    - ext4: save all error info in save_error_info() and drop ext4_set_errno()
+    - ext4: check journal inode extents more carefully
+  * ip6gretap / erspan / ip6erspan in rtnetlink.sh from net of
+    ubuntu_kernel_selftests failed on B-5.4-aws / B-5.4-gke / B-5.4-oracle /
+    B-5.4-azure / B-5.4 (LP: #1896448)
+    - SAUCE: selftests: rtnetlink: fixes for older iproute2
+  * CVE-2019-19449
+    - f2fs: fix wrong total_sections check and fsmeta check
+    - f2fs: fix to do sanity check on segment/section count
+  * kernel bug found when disconnecting one fiber channel interface on Cisco
+    Chassis with fnic DRV_VERSION "1.6.0.47" (LP: #1944586)
+    - scsi: fnic: Do not call 'scsi_done()' for unhandled commands
+  * memfd from ubuntu_kernel_selftests failed to build on B-5.4 (unknown type
+    name ‘__u64’) (LP: #1944613)
+    - SAUCE: selftests/memfd: fix __u64 not defined build issue
+  * Medion Notebook Keyboard not working (LP: #1909814)
+    - ACPI: resources: Add DMI-based legacy IRQ override quirk
+  * vrf: fix refcnt leak with vxlan slaves (LP: #1945180)
+    - ipv4: Fix device used for dst_alloc with local routes
+  * Check for changes relevant for security certifications (LP: #1945989)
+    - [Packaging] Add a new fips-checks script
+    - [Packaging] Add fips-checks as part of finalchecks
+  * Fix cold plugged USB device on certain PCIe USB cards (LP: #1945211)
+    - Revert "UBUNTU: SAUCE: Revert "usb: core: reduce power-on-good delay time of
+      root hub""
+    - usb: core: hcd: Add support for deferring roothub registration
+    - xhci: Set HCD flag to defer primary roothub registration
+    - usb: core: hcd: Modularize HCD stop configuration in usb_stop_hcd()
+  * CVE-2021-3759
+    - memcg: enable accounting of ipc resources
+  * Focal update: v5.4.146 upstream stable release (LP: #1946024)
+    - locking/mutex: Fix HANDOFF condition
+    - regmap: fix the offset of register error log
+    - crypto: mxs-dcp - Check for DMA mapping errors
+    - sched/deadline: Fix reset_on_fork reporting of DL tasks
+    - power: supply: axp288_fuel_gauge: Report register-address on readb / writeb
+      errors
+    - crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop()
+    - sched/deadline: Fix missing clock update in migrate_task_rq_dl()
+    - rcu/tree: Handle VM stoppage in stall detection
+    - hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()
+    - hrtimer: Ensure timerfd notification for HIGHRES=n
+    - udf: Check LVID earlier
+    - udf: Fix iocharset=utf8 mount option
+    - isofs: joliet: Fix iocharset=utf8 mount option
+    - bcache: add proper error unwinding in bcache_device_init
+    - nvme-tcp: don't update queue count when failing to set io queues
+    - nvme-rdma: don't update queue count when failing to set io queues
+    - nvmet: pass back cntlid on successful completion
+    - power: supply: max17042_battery: fix typo in MAx17042_TOFF
+    - s390/cio: add dev_busid sysfs entry for each subchannel
+    - libata: fix ata_host_start()
+    - crypto: qat - do not ignore errors from enable_vf2pf_comms()
+    - crypto: qat - handle both source of interrupt in VF ISR
+    - crypto: qat - fix reuse of completion variable
+    - crypto: qat - fix naming for init/shutdown VF to PF notifications
+    - crypto: qat - do not export adf_iov_putmsg()
+    - fcntl: fix potential deadlock for &fasync_struct.fa_lock
+    - udf_get_extendedattr() had no boundary checks.
+    - s390/kasan: fix large PMD pages address alignment check
+    - s390/debug: fix debug area life cycle
+    - m68k: emu: Fix invalid free in nfeth_cleanup()
+    - sched: Fix UCLAMP_FLAG_IDLE setting
+    - spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
+    - spi: spi-pic32: Fix issue with uninitialized dma_slave_config
+    - genirq/timings: Fix error return code in irq_timings_test_irqs()
+    - lib/mpi: use kcalloc in mpi_resize
+    - clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock
+      source channel
+    - crypto: qat - use proper type for vf_mask
+    - certs: Trigger creation of RSA module signing key if it's not an RSA key
+    - regulator: vctrl: Use locked regulator_get_voltage in probe path
+    - regulator: vctrl: Avoid lockdep warning in enable/disable ops
+    - spi: sprd: Fix the wrong WDG_LOAD_VAL
+    - spi: spi-zynq-qspi: use wait_for_completion_timeout to make
+      zynq_qspi_exec_mem_op not interruptible
+    - EDAC/i10nm: Fix NVDIMM detection
+    - drm/panfrost: Fix missing clk_disable_unprepare() on error in
+      panfrost_clk_init()
+    - media: TDA1997x: enable EDID support
+    - soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally
+    - media: cxd2880-spi: Fix an error handling path
+    - bpf: Fix a typo of reuseport map in bpf.h.
+    - bpf: Fix potential memleak and UAF in the verifier.
+    - ARM: dts: aspeed-g6: Fix HVI3C function-group in pinctrl dtsi
+    - arm64: dts: renesas: r8a77995: draak: Remove bogus adv7511w properties
+    - soc: qcom: rpmhpd: Use corner in power_off
+    - media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
+    - media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
+    - media: dvb-usb: Fix error handling in dvb_usb_i2c_init
+    - media: go7007: remove redundant initialization
+    - media: coda: fix frame_mem_ctrl for YUV420 and YVU420 formats
+    - Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
+    - 6lowpan: iphc: Fix an off-by-one check of array index
+    - netns: protect netns ID lookups with RCU
+    - tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
+    - ARM: dts: meson8: Use a higher default GPU clock frequency
+    - ARM: dts: meson8b: odroidc1: Fix the pwm regulator supply properties
+    - ARM: dts: meson8b: mxq: Fix the pwm regulator supply properties
+    - ARM: dts: meson8b: ec100: Fix the pwm regulator supply properties
+    - net/mlx5e: Prohibit inner indir TIRs in IPoIB
+    - cgroup/cpuset: Fix a partition bug with hotplug
+    - net: cipso: fix warnings in netlbl_cipsov4_add_std
+    - i2c: highlander: add IRQ check
+    - leds: lt3593: Put fwnode in any case during ->probe()
+    - leds: trigger: audio: Add an activate callback to ensure the initial
+      brightness is set
+    - media: em28xx-input: fix refcount bug in em28xx_usb_disconnect
+    - media: venus: venc: Fix potential null pointer dereference on pointer fmt
+    - PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
+    - PCI: PM: Enable PME if it can be signaled from D3cold
+    - soc: qcom: smsm: Fix missed interrupts if state changes while masked
+    - debugfs: Return error during {full/open}_proxy_open() on rmmod
+    - Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
+    - PM: EM: Increase energy calculation precision
+    - drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs
+    - arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7
+    - counter: 104-quad-8: Return error when invalid mode during ceiling_write
+    - Bluetooth: fix repeated calls to sco_sock_kill
+    - drm/msm/dsi: Fix some reference counted resource leaks
+    - usb: gadget: udc: at91: add IRQ check
+    - usb: phy: fsl-usb: add IRQ check
+    - usb: phy: twl6030: add IRQ checks
+    - usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse
+    - usb: host: ohci-tmio: add IRQ check
+    - usb: phy: tahvo: add IRQ check
+    - mac80211: Fix insufficient headroom issue for AMSDU
+    - lockd: Fix invalid lockowner cast after vfs_test_lock
+    - nfsd4: Fix forced-expiry locking
+    - usb: gadget: mv_u3d: request_irq() after initializing UDC
+    - mm/swap: consider max pages in iomap_swapfile_add_extent
+    - Bluetooth: add timeout sanity check to hci_inquiry
+    - i2c: iop3xx: fix deferred probing
+    - i2c: s3c2410: fix IRQ check
+    - rsi: fix error code in rsi_load_9116_firmware()
+    - rsi: fix an error code in rsi_probe()
+    - ASoC: Intel: Skylake: Leave data as is when invoking TLV IPCs
+    - ASoC: Intel: Skylake: Fix module resource and format selection
+    - mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
+    - mmc: moxart: Fix issue with uninitialized dma_slave_config
+    - bpf: Fix possible out of bound write in narrow load handling
+    - CIFS: Fix a potencially linear read overflow
+    - i2c: mt65xx: fix IRQ check
+    - usb: ehci-orion: Handle errors of clk_prepare_enable() in probe
+    - usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA
+      config is available
+    - tty: serial: fsl_lpuart: fix the wrong mapbase value
+    - ASoC: wcd9335: Fix a double irq free in the remove function
+    - ASoC: wcd9335: Fix a memory leak in the error handling path of the probe
+      function
+    - ASoC: wcd9335: Disable irq on slave ports in the remove function
+    - ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
+    - bcma: Fix memory leak for internally-handled cores
+    - brcmfmac: pcie: fix oops on failure to resume and reprobe
+    - ipv6: make exception cache less predictible
+    - ipv4: make exception cache less predictible
+    - net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed
+    - net: qualcomm: fix QCA7000 checksum handling
+    - octeontx2-af: Fix loop in free and unmap counter
+    - ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
+    - bpf: Introduce BPF nospec instruction for mitigating Spectre v4
+    - bpf: Fix leakage due to insufficient speculative store bypass mitigation
+    - bpf: verifier: Allocate idmap scratch in verifier env
+    - bpf: Fix pointer arithmetic mask tightening under state pruning
+    - tty: Fix data race between tiocsti() and flush_to_ldisc()
+    - perf/x86/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op
+    - x86/resctrl: Fix a maybe-uninitialized build warning treated as error
+    - KVM: s390: index kvm->arch.idle_mask by vcpu_idx
+    - KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is
+      adjusted
+    - KVM: nVMX: Unconditionally clear nested.pi_pending on nested VM-Enter
+    - fuse: truncate pagecache on atomic_o_trunc
+    - fuse: flush extending writes
+    - IMA: remove -Wmissing-prototypes warning
+    - IMA: remove the dependency on CRYPTO_MD5
+    - fbmem: don't allow too huge resolutions
+    - backlight: pwm_bl: Improve bootloader/kernel device handover
+    - clk: kirkwood: Fix a clocking boot regression
+    - Linux 5.4.146
+  * AMD A8-7680 (amdgpu): broken Xorg acceleration and hibernation
+    (LP: #1920674) // Focal update: v5.4.146 upstream stable release
+    (LP: #1946024)
+    - drm/amdgpu/acp: Make PM domain really work
+  * Focal update: v5.4.145 upstream stable release (LP: #1945517)
+    - fscrypt: add fscrypt_symlink_getattr() for computing st_size
+    - ext4: report correct st_size for encrypted symlinks
+    - f2fs: report correct st_size for encrypted symlinks
+    - ubifs: report correct st_size for encrypted symlinks
+    - kthread: Fix PF_KTHREAD vs to_kthread() race
+    - xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG
+    - gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V
+      formats
+    - reset: reset-zynqmp: Fixed the argument data type
+    - qed: Fix the VF msix vectors flow
+    - net: macb: Add a NULL check on desc_ptp
+    - qede: Fix memset corruption
+    - perf/x86/intel/pt: Fix mask of num_address_ranges
+    - perf/x86/amd/ibs: Work around erratum #1197
+    - perf/x86/amd/power: Assign pmu.module
+    - cryptoloop: add a deprecation warning
+    - ARM: 8918/2: only build return_address() if needed
+    - ALSA: hda/realtek: Workaround for conflicting SSID on ASUS ROG Strix G17
+    - ALSA: pcm: fix divide error in snd_pcm_lib_ioctl
+    - ARC: wireup clone3 syscall
+    - media: stkwebcam: fix memory leak in stk_camera_probe
+    - igmp: Add ip_mc_list lock in ip_check_mc_rcu
+    - USB: serial: mos7720: improve OOM-handling in read_mos_reg()
+    - ipv4/icmp: l3mdev: Perform icmp error route lookup on source device routing
+      table (v2)
+    - powerpc/boot: Delete unneeded .globl _zimage_start
+    - net: ll_temac: Remove left-over debug message
+    - mm/page_alloc: speed up the iteration of max_order
+    - Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables
+      ASPM"
+    - x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating
+    - Revert "btrfs: compression: don't try to compress if we don't have enough
+      pages"
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 800
+    - usb: host: xhci-rcar: Don't reload firmware after the completion
+    - usb: mtu3: use @mult for HS isoc or intr
+    - usb: mtu3: fix the wrong HS mult value
+    - xhci: fix unsafe memory usage in xhci tracing
+    - x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
+    - PCI: Call Max Payload Size-related fixup quirks early
+    - Linux 5.4.145
+  * Focal update: v5.4.144 upstream stable release (LP: #1944756)
+    - net: qrtr: fix another OOB Read in qrtr_endpoint_post
+    - ARC: Fix CONFIG_STACKDEPOT
+    - netfilter: conntrack: collect all entries in one cycle
+    - once: Fix panic when module unload
+    - ovl: fix uninitialized pointer read in ovl_lookup_real_one()
+    - mmc: sdhci-msm: Update the software timeout value for sdhc
+    - mm, oom: make the calculation of oom badness more accurate
+    - can: usb: esd_usb2: esd_usb2_rx_event(): fix the interchange of the CAN RX
+      and TX error counters
+    - Revert "USB: serial: ch341: fix character loss at high transfer rates"
+    - USB: serial: option: add new VID/PID to support Fibocom FG150
+    - usb: dwc3: gadget: Fix dwc3_calc_trbs_left()
+    - usb: dwc3: gadget: Stop EP0 transfers during pullup disable
+    - scsi: core: Fix hang of freezing queue between blocking and running device
+    - RDMA/bnxt_re: Add missing spin lock initialization
+    - IB/hfi1: Fix possible null-pointer dereference in _extend_sdma_tx_descs()
+    - e1000e: Fix the max snoop/no-snoop latency for 10M
+    - RDMA/efa: Free IRQ vectors on error flow
+    - ip_gre: add validation for csum_start
+    - xgene-v2: Fix a resource leak in the error handling path of 'xge_probe()'
+    - net: marvell: fix MVNETA_TX_IN_PRGRS bit number
+    - rtnetlink: Return correct error on changing device netns
+    - net: hns3: clear hardware resource when loading driver
+    - net: hns3: fix duplicate node in VLAN list
+    - net: hns3: fix get wrong pfc_en when query PFC configuration
+    - drm/i915: Fix syncmap memory leak
+    - usb: gadget: u_audio: fix race condition on endpoint stop
+    - perf/x86/intel/uncore: Fix integer overflow on 23 bit left shift of a u32
+    - opp: remove WARN when no valid OPPs remain
+    - virtio: Improve vq->broken access to avoid any compiler optimization
+    - virtio_pci: Support surprise removal of virtio pci device
+    - vringh: Use wiov->used to check for read/write desc order
+    - qed: qed ll2 race condition fixes
+    - qed: Fix null-pointer dereference in qed_rdma_create_qp()
+    - drm: Copy drm_wait_vblank to user before returning
+    - drm/nouveau/disp: power down unused DP links during init
+    - net/rds: dma_map_sg is entitled to merge entries
+    - btrfs: fix race between marking inode needs to be logged and log syncing
+    - vt_kdsetmode: extend console locking
+    - bpf: Track contents of read-only maps as scalars
+    - bpf: Fix cast to pointer from integer of different size warning
+    - net: dsa: mt7530: fix VLAN traffic leaks again
+    - KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow MMUs
+    - arm64: dts: qcom: msm8994-angler: Fix gpio-reserved-ranges 85-88
+    - btrfs: fix NULL pointer dereference when deleting device by invalid id
+    - Revert "floppy: reintroduce O_NDELAY fix"
+    - Revert "parisc: Add assembly implementations for memset, strlen, strcpy,
+      strncpy and strcat"
+    - net: don't unconditionally copy_from_user a struct ifreq for socket ioctls
+    - audit: move put_tree() to avoid trim_trees refcount underflow and UAF
+    - Linux 5.4.144
+
+  [ Ubuntu: 5.4.0-89.100 ]
+
+  * focal/linux: 5.4.0-89.100 -proposed tracker (LP: #1944901)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.27)
+  * ext4 journal recovery fails w/ data=journal + mmap (LP: #1847340)
+    - jbd2: introduce/export functions
+      jbd2_journal_submit|finish_inode_data_buffers()
+    - jbd2, ext4, ocfs2: introduce/use journal callbacks
+      j_submit|finish_inode_data_buffers()
+    - ext4: data=journal: fixes for ext4_page_mkwrite()
+    - ext4: data=journal: write-protect pages on j_submit_inode_data_buffers()
+    - ext4: fix mmap write protection for data=journal mode
+  * CVE-2021-40490
+    - ext4: fix race writing to an inline_data file while its xattrs are changing
+  * Obsolete patch "UBUNTU: SAUCE: ext4: fix directory index node split
+    corruption" (LP: #1942902)
+    - Revert "UBUNTU: SAUCE: ext4: fix directory index node split corruption"
+  * psock_snd.sh in net from ubuntu_kernel_selftests ADT failure with
+    focal/groovy/hirsute/impish (LP: #1892213)
+    - selftests/net: remove min gso test in packet_snd
+  * Focal update: v5.4.143 upstream stable release (LP: #1944212)
+    - ext4: fix EXT4_MAX_LOGICAL_BLOCK macro
+    - x86/fpu: Make init_fpstate correct with optimized XSAVE
+    - ath: Use safer key clearing with key cache entries
+    - ath9k: Clear key cache explicitly on disabling hardware
+    - ath: Export ath_hw_keysetmac()
+    - ath: Modify ath_key_delete() to not need full key entry
+    - ath9k: Postpone key cache entry deletion for TXQ frames reference it
+    - mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards
+    - media: zr364xx: propagate errors from zr364xx_start_readpipe()
+    - media: zr364xx: fix memory leaks in probe()
+    - media: drivers/media/usb: fix memory leak in zr364xx_probe
+    - USB: core: Avoid WARNings for 0-length descriptor requests
+    - dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
+    - dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
+    - ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
+    - dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not
+      yet available
+    - scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry()
+    - scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach()
+    - scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
+    - scsi: core: Fix capacity set to zero after offlinining device
+    - ARM: dts: nomadik: Fix up interrupt controller node names
+    - net: usb: lan78xx: don't modify phy_device state concurrently
+    - drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X
+    - Bluetooth: hidp: use correct wait queue when removing ctrl_wait
+    - iommu: Check if group is NULL before remove device
+    - cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
+    - dccp: add do-while-0 stubs for dccp_pr_debug macros
+    - virtio: Protect vqs list access
+    - vhost: Fix the calculation in vhost_overflow()
+    - bpf: Clear zext_dst of dead insns
+    - bnxt: don't lock the tx queue from napi poll
+    - bnxt: disable napi before canceling DIM
+    - net: 6pack: fix slab-out-of-bounds in decode_data
+    - ptp_pch: Restore dependency on PCI
+    - bnxt_en: Add missing DMA memory barriers
+    - vrf: Reset skb conntrack connection on VRF rcv
+    - virtio-net: support XDP when not more queues
+    - virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO
+    - net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32
+    - net: mdio-mux: Don't ignore memory allocation errors
+    - net: mdio-mux: Handle -EPROBE_DEFER correctly
+    - ovs: clear skb->tstamp in forwarding path
+    - i40e: Fix ATR queue selection
+    - iavf: Fix ping is lost after untrusted VF had tried to change MAC
+    - ovl: add splice file read write helper
+    - mmc: dw_mmc: Fix hang on data CRC error
+    - ALSA: hda - fix the 'Capture Switch' value change notifications
+    - tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event
+      name
+    - slimbus: messaging: start transaction ids from 1 instead of zero
+    - slimbus: messaging: check for valid transaction id
+    - slimbus: ngd: reset dma setup during runtime pm
+    - ipack: tpci200: fix many double free issues in tpci200_pci_probe
+    - ipack: tpci200: fix memory leak in the tpci200_register
+    - btrfs: prevent rename2 from exchanging a subvol with a directory from
+      different parents
+    - PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI
+    - ASoC: intel: atom: Fix breakage for PCM buffer address setup
+    - mm, memcg: avoid stale protection values when cgroup is above protection
+    - mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim
+    - fs: warn about impending deprecation of mandatory locks
+    - netfilter: nft_exthdr: fix endianness of tcp option cast
+    - Linux 5.4.143
+  * Focal update: v5.4.142 upstream stable release (LP: #1944202)
+    - iio: adc: ti-ads7950: Ensure CS is deasserted after reading channels
+    - iio: humidity: hdc100x: Add margin to the conversion time
+    - iio: adc: Fix incorrect exit of for-loop
+    - ASoC: xilinx: Fix reference to PCM buffer address
+    - ASoC: intel: atom: Fix reference to PCM buffer address
+    - i2c: dev: zero out array used for i2c reads from userspace
+    - ceph: reduce contention in ceph_check_delayed_caps()
+    - ACPI: NFIT: Fix support for virtual SPA ranges
+    - libnvdimm/region: Fix label activation vs errors
+    - ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
+    - ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
+    - ASoC: cs42l42: Correct definition of ADC Volume control
+    - ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J
+    - ASoC: cs42l42: Fix inversion of ADC Notch Switch control
+    - ASoC: cs42l42: Remove duplicate control for WNF filter frequency
+    - netfilter: nf_conntrack_bridge: Fix memory leak when error
+    - ASoC: cs42l42: Fix LRCLK frame start edge
+    - net: dsa: mt7530: add the missing RxUnicast MIB counter
+    - platform/x86: pcengines-apuv2: revert wiring up simswitch GPIO as LED
+    - platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-
+      lookup tables
+    - net: phy: micrel: Fix link detection on ksz87xx switch"
+    - ppp: Fix generating ifname when empty IFLA_IFNAME is specified
+    - net: sched: act_mirred: Reset ct info when mirror/redirect skb
+    - iavf: Set RSS LUT and key in reset handle path
+    - psample: Add a fwd declaration for skbuff
+    - net/mlx5: Fix return value from tracer initialization
+    - drm/meson: fix colour distortion from HDR set during vendor u-boot
+    - net: dsa: microchip: Fix ksz_read64()
+    - net: Fix memory leak in ieee802154_raw_deliver
+    - net: igmp: fix data-race in igmp_ifc_timer_expire()
+    - net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
+    - net: dsa: lantiq: fix broken backpressure in .port_fdb_dump
+    - net: dsa: sja1105: fix broken backpressure in .port_fdb_dump
+    - net: bridge: fix memleak in br_add_if()
+    - net: linkwatch: fix failure to restore device state across suspend/resume
+    - tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B
+      packets
+    - net: igmp: increase size of mr_ifc_count
+    - xen/events: Fix race in set_evtchn_to_irq
+    - vsock/virtio: avoid potential deadlock when vsock device remove
+    - nbd: Aovid double completion of a request
+    - powerpc/kprobes: Fix kprobe Oops happens in booke
+    - x86/tools: Fix objdump version check again
+    - genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP
+    - x86/msi: Force affinity setup before startup
+    - x86/ioapic: Force affinity setup before startup
+    - x86/resctrl: Fix default monitoring groups reporting
+    - genirq/msi: Ensure deactivation on teardown
+    - genirq/timings: Prevent potential array overflow in __irq_timings_store()
+    - PCI/MSI: Enable and mask MSI-X early
+    - PCI/MSI: Mask all unused MSI-X entries
+    - PCI/MSI: Enforce that MSI-X table entry is masked for update
+    - PCI/MSI: Enforce MSI[X] entry updates to be visible
+    - PCI/MSI: Do not set invalid bits in MSI mask
+    - PCI/MSI: Correct misleading comments
+    - PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
+    - PCI/MSI: Protect msi_desc::masked for multi-MSI
+    - KVM: VMX: Use current VMCS to query WAITPKG support for MSR emulation
+    - ceph: add some lockdep assertions around snaprealm handling
+    - ceph: clean up locking annotation for ceph_get_snap_realm and
+      __lookup_snap_realm
+    - ceph: take snap_empty_lock atomically with snaprealm refcount change
+    - vmlinux.lds.h: Handle clang's module.{c,d}tor sections
+    - iommu/vt-d: Fix agaw for a supported 48 bit guest address width
+    - Linux 5.4.142
+  * Focal update: v5.4.141 upstream stable release (LP: #1943484)
+    - KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
+    - tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag
+    - media: v4l2-mem2mem: always consider OUTPUT queue during poll
+    - tracing: Reject string operand in the histogram expression
+    - usb: dwc3: Stop active transfers before halting the controller
+    - usb: dwc3: gadget: Allow runtime suspend if UDC unbinded
+    - usb: dwc3: gadget: Restart DWC3 gadget when enabling pullup
+    - usb: dwc3: gadget: Prevent EP queuing while stopping transfers
+    - usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable
+    - usb: dwc3: gadget: Disable gadget IRQ during pullup disable
+    - usb: dwc3: gadget: Avoid runtime resume if disabling pullup
+    - KVM: X86: MMU: Use the correct inherited permissions to get shadow page
+    - USB:ehci:fix Kunpeng920 ehci hardware problem
+    - ALSA: hda: Add quirk for ASUS Flow x13
+    - ppp: Fix generating ppp unit id when ifname is not specified
+    - ovl: prevent private clone if bind mount is not allowed
+    - btrfs: make qgroup_free_reserved_data take btrfs_inode
+    - btrfs: make btrfs_qgroup_reserve_data take btrfs_inode
+    - btrfs: qgroup: allow to unreserve range without releasing other ranges
+    - btrfs: qgroup: try to flush qgroup space when we get -EDQUOT
+    - btrfs: transaction: Cleanup unused TRANS_STATE_BLOCKED
+    - btrfs: qgroup: remove ASYNC_COMMIT mechanism in favor of reserve retry-
+      after-EDQUOT
+    - btrfs: fix lockdep splat when enabling and disabling qgroups
+    - net: xilinx_emaclite: Do not print real IOMEM pointer
+    - btrfs: qgroup: don't commit transaction when we already hold the handle
+    - btrfs: export and rename qgroup_reserve_meta
+    - btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
+    - Linux 5.4.141
+
+  [ Ubuntu: 5.4.0-88.99 ]
+
+  * focal/linux: 5.4.0-88.99 -proposed tracker (LP: #1944747)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.06)
+  * please drop virtualbox-guest-dkms virtualbox-guest-source (LP: #1933248)
+    - Revert "UBUNTU: [Config] Disable virtualbox dkms build"
+
+  [ Ubuntu: 5.4.0-87.98 ]
+
+  * please drop virtualbox-guest-dkms virtualbox-guest-source (LP: #1933248)
+    - [Config] Disable virtualbox dkms build
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.06)
+  *  LRMv5: switch primary version handling to kernel-versions data set
+    (LP: #1928921)
+    - [Packaging] switch to kernel-versions
+  * disable “CONFIG_HISI_DMA” config for ubuntu version (LP: #1936771)
+    - Disable CONFIG_HISI_DMA
+    - [Config] Record hisi_dma no longer built for arm64
+  * memory leaking when removing a profile (LP: #1939915)
+    - apparmor: Fix memory leak of profile proxy
+  * CryptoExpress EP11 cards are going offline (LP: #1939618)
+    - s390/zcrypt: Support for CCA protected key block version 2
+    - s390: Replace zero-length array with flexible-array member
+    - s390/zcrypt: Use scnprintf() for avoiding potential buffer overflow
+    - s390/zcrypt: replace snprintf/sprintf with scnprintf
+    - s390/ap: Remove ap device suspend and resume callbacks
+    - s390/zcrypt: use fallthrough;
+    - s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
+    - s390/ap: remove power management code from ap bus and drivers
+    - s390/ap: introduce new ap function ap_get_qdev()
+    - s390/zcrypt: use kzalloc
+    - s390/zcrypt: fix smatch warnings
+    - s390/zcrypt: code beautification and struct field renames
+    - s390/zcrypt: split ioctl function into smaller code units
+    - s390/ap: rename and clarify ap state machine related stuff
+    - s390/zcrypt: provide cex4 cca sysfs attributes for cex3
+    - s390/ap: rework crypto config info and default domain code
+    - s390/zcrypt: simplify cca_findcard2 loop code
+    - s390/zcrypt: remove set_fs() invocation in zcrypt device driver
+    - s390/ap: remove unnecessary spin_lock_init()
+    - s390/zcrypt: Support for CCA APKA master keys
+    - s390/zcrypt: introduce msg tracking in zcrypt functions
+    - s390/ap: split ap queue state machine state from device state
+    - s390/ap: add error response code field for ap queue devices
+    - s390/ap: add card/queue deconfig state
+    - s390/sclp: Add support for SCLP AP adapter config/deconfig
+    - s390/ap: Support AP card SCLP config and deconfig operations
+    - s390/ap/zcrypt: revisit ap and zcrypt error handling
+    - s390/zcrypt: move ap_msg param one level up the call chain
+    - s390/zcrypt: Introduce Failure Injection feature
+    - s390/zcrypt: fix wrong format specifications
+    - s390/ap: fix ap devices reference counting
+    - s390/zcrypt: return EIO when msg retry limit reached
+    - s390/zcrypt: fix zcard and zqueue hot-unplug memleak
+    - s390/ap: Fix hanging ioctl caused by wrong msg counter
+  * memfd from ubuntu_kernel_selftests failed to build on B-5.4 (LP: #1926142)
+    - SAUCE: selftests/memfd: fix build when F_SEAL_FUTURE_WRITE is not defined
+  * [SRU] Ice driver causes the kernel to crash with Ubuntu 20.04.2 with ethtool
+    specific register commands (LP: #1939855)
+    - ice: Fix bad register reads
+  * ubunut_kernel_selftests: memory-hotplug: avoid spamming logs with
+    dump_page() (LP: #1941829)
+    - selftests: memory-hotplug: avoid spamming logs with dump_page(), ratio limit
+      hot-remove error test
+  * e1000e blocks the boot process when it tried to write checksum to its NVM
+    (LP: #1936998)
+    - e1000e: Do not take care about recovery NVM checksum
+  * Focal update: v5.4.140 upstream stable release (LP: #1941798)
+    - Revert "ACPICA: Fix memory leak caused by _CID repair function"
+    - ALSA: seq: Fix racy deletion of subscriber
+    - arm64: dts: ls1028a: fix node name for the sysclk
+    - ARM: imx: add missing iounmap()
+    - ARM: imx: add missing clk_disable_unprepare()
+    - ARM: dts: imx6qdl-sr-som: Increase the PHY reset duration to 10ms
+    - ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz
+    - ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
+    - ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins
+    - arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode
+    - ALSA: usb-audio: fix incorrect clock source setting
+    - clk: stm32f4: fix post divisor setup for I2S/SAI PLLs
+    - ARM: dts: am437x-l4: fix typo in can@0 node
+    - omap5-board-common: remove not physically existing vdds_1v8_main fixed-
+      regulator
+    - spi: imx: mx51-ecspi: Reinstate low-speed CONFIGREG delay
+    - spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation
+    - scsi: sr: Return correct event when media event code is 3
+    - media: videobuf2-core: dequeue if start_streaming fails
+    - dmaengine: imx-dma: configure the generic DMA type to make it work
+    - net, gro: Set inner transport header offset in tcp/udp GRO hook
+    - net: dsa: sja1105: overwrite dynamic FDB entries with static ones in
+      .port_fdb_add
+    - net: dsa: sja1105: invalidate dynamic FDB entries learned concurrently with
+      statically added ones
+    - net: phy: micrel: Fix detection of ksz87xx switch
+    - net: natsemi: Fix missing pci_disable_device() in probe and remove
+    - gpio: tqmx86: really make IRQ optional
+    - sctp: move the active_key update after sh_keys is added
+    - nfp: update ethtool reporting of pauseframe control
+    - net: ipv6: fix returned variable type in ip6_skb_dst_mtu
+    - mips: Fix non-POSIX regexp
+    - bnx2x: fix an error code in bnx2x_nic_load()
+    - net: pegasus: fix uninit-value in get_interrupt_interval
+    - net: fec: fix use-after-free in fec_drv_remove
+    - net: vxge: fix use-after-free in vxge_device_unregister
+    - blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit()
+    - Bluetooth: defer cleanup of resources in hci_unregister_dev()
+    - USB: usbtmc: Fix RCU stall warning
+    - USB: serial: option: add Telit FD980 composition 0x1056
+    - USB: serial: ch341: fix character loss at high transfer rates
+    - USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
+    - firmware_loader: use -ETIMEDOUT instead of -EAGAIN in fw_load_sysfs_fallback
+    - firmware_loader: fix use-after-free in firmware_fallback_sysfs
+    - ALSA: hda/realtek: add mic quirk for Acer SF314-42
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 600
+    - usb: cdns3: Fixed incorrect gadget state
+    - usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers
+    - usb: gadget: f_hid: fixed NULL pointer dereference
+    - usb: gadget: f_hid: idle uses the highest byte for duration
+    - usb: otg-fsm: Fix hrtimer list corruption
+    - clk: fix leak on devm_clk_bulk_get_all() unwind
+    - scripts/tracing: fix the bug that can't parse raw_trace_func
+    - tracing / histogram: Give calculation hist_fields a size
+    - optee: Clear stale cache entries during initialization
+    - tee: add tee_shm_alloc_kernel_buf()
+    - optee: Fix memory leak when failing to register shm pages
+    - tpm_ftpm_tee: Free and unregister TEE shared memory during kexec
+    - staging: rtl8723bs: Fix a resource leak in sd_int_dpc
+    - staging: rtl8712: get rid of flush_scheduled_work
+    - media: rtl28xxu: fix zero-length control request
+    - pipe: increase minimum default pipe size to 2 pages
+    - ext4: fix potential htree corruption when growing large_dir directories
+    - serial: tegra: Only print FIFO error message when an error occurs
+    - serial: 8250_mtk: fix uart corruption issue when rx power off
+    - serial: 8250: Mask out floating 16/32-bit bus bits
+    - MIPS: Malta: Do not byte-swap accesses to the CBUS UART
+    - serial: 8250_pci: Enumerate Elkhart Lake UARTs via dedicated driver
+    - serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts.
+    - timers: Move clearing of base::timer_running under base:: Lock
+    - pcmcia: i82092: fix a null pointer dereference bug
+    - md/raid10: properly indicate failure when ending a failed write request
+    - KVM: x86: accept userspace interrupt only if no event is injected
+    - KVM: Do not leak memory for duplicate debugfs directories
+    - KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds
+    - arm64: vdso: Avoid ISB after reading from cntvct_el0
+    - soc: ixp4xx: fix printing resources
+    - spi: meson-spicc: fix memory leak in meson_spicc_remove
+    - soc: ixp4xx/qmgr: fix invalid __iomem access
+    - perf/x86/amd: Don't touch the AMD64_EVENTSEL_HOSTONLY bit inside the guest
+    - bpf, selftests: Adjust few selftest result_unpriv outcomes
+    - libata: fix ata_pio_sector for CONFIG_HIGHMEM
+    - reiserfs: add check for root_inode in reiserfs_fill_super
+    - reiserfs: check directory items on read from disk
+    - virt_wifi: fix error on connect
+    - alpha: Send stop IPI to send to online CPUs
+    - net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and
+      ql_adapter_reset
+    - arm64: fix compat syscall return truncation
+    - Linux 5.4.140
+  * Focal update: v5.4.139 upstream stable release (LP: #1941796)
+    - btrfs: delete duplicated words + other fixes in comments
+    - btrfs: do not commit logs and transactions during link and rename operations
+    - btrfs: fix race causing unnecessary inode logging during link and rename
+    - btrfs: fix lost inode on log replay after mix of fsync, rename and inode
+      eviction
+    - regulator: rt5033: Fix n_voltages settings for BUCK and LDO
+    - spi: stm32h7: fix full duplex irq handler handling
+    - ASoC: tlv320aic31xx: fix reversed bclk/wclk master bits
+    - r8152: Fix potential PM refcount imbalance
+    - qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()
+    - net: Fix zero-copy head len calculation.
+    - nvme: fix nvme_setup_command metadata trace event
+    - ACPI: fix NULL pointer dereference
+    - Revert "Bluetooth: Shutdown controller after workqueues are flushed or
+      cancelled"
+    - firmware: arm_scmi: Ensure drivers provide a probe function
+    - firmware: arm_scmi: Add delayed response status check
+    - bpf: Inherit expanded/patched seen count from old aux data
+    - bpf: Do not mark insn as seen under speculative path verification
+    - bpf: Fix leakage under speculation on mispredicted branches
+    - bpf: Test_verifier, add alu32 bounds tracking tests
+    - bpf, selftests: Add a verifier test for assigning 32bit reg states to 64bit
+      ones
+    - bpf, selftests: Adjust few selftest outcomes wrt unreachable code
+    - spi: mediatek: Fix fifo transfer
+    - Linux 5.4.139
+  * Focal update: v5.4.138 upstream stable release (LP: #1940559)
+    - net_sched: check error pointer in tcf_dump_walker()
+    - x86/asm: Ensure asm/proto.h can be included stand-alone
+    - btrfs: fix rw device counting in __btrfs_free_extra_devids
+    - btrfs: mark compressed range uptodate only if all bio succeed
+    - x86/kvm: fix vcpu-id indexed array sizes
+    - KVM: add missing compat KVM_CLEAR_DIRTY_LOG
+    - ocfs2: fix zero out valid data
+    - ocfs2: issue zeroout to EOF blocks
+    - can: j1939: j1939_xtp_rx_dat_one(): fix rxtimer value between consecutive
+      TP.DT to 750ms
+    - can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF
+    - can: mcba_usb_start(): add missing urb->transfer_dma initialization
+    - can: usb_8dev: fix memory leak
+    - can: ems_usb: fix memory leak
+    - can: esd_usb2: fix memory leak
+    - HID: wacom: Re-enable touch by default for Cintiq 24HDT / 27QHDT
+    - NIU: fix incorrect error return, missed in previous revert
+    - nfc: nfcsim: fix use after free during module unload
+    - cfg80211: Fix possible memory leak in function cfg80211_bss_update
+    - netfilter: conntrack: adjust stop timestamp to real expiry value
+    - netfilter: nft_nat: allow to specify layer 4 protocol NAT only
+    - i40e: Fix logic of disabling queues
+    - i40e: Fix firmware LLDP agent related warning
+    - i40e: Fix queue-to-TC mapping on Tx
+    - i40e: Fix log TC creation failure when max num of queues is exceeded
+    - tipc: fix sleeping in tipc accept routine
+    - net: Set true network header for ECN decapsulation
+    - mlx4: Fix missing error code in mlx4_load_one()
+    - net: llc: fix skb_over_panic
+    - net/mlx5: Fix flow table chaining
+    - net/mlx5e: Fix nullptr in mlx5e_hairpin_get_mdev()
+    - sctp: fix return value check in __sctp_rcv_asconf_lookup
+    - tulip: windbond-840: Fix missing pci_disable_device() in probe and remove
+    - sis900: Fix missing pci_disable_device() in probe and remove
+    - can: hi311x: fix a signedness bug in hi3110_cmd()
+    - PCI: mvebu: Setup BAR0 in order to fix MSI
+    - powerpc/pseries: Fix regression while building external modules
+    - i40e: Add additional info to PHY type error
+    - can: j1939: j1939_session_deactivate(): clarify lifetime of session object
+    - Linux 5.4.138
+  * Focal update: v5.4.137 upstream stable release (LP: #1940557)
+    - selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c
+    - tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include
+    - KVM: x86: determine if an exception has an error code only when injecting
+      it.
+    - af_unix: fix garbage collect vs MSG_PEEK
+    - workqueue: fix UAF in pwq_unbound_release_workfn()
+    - cgroup1: fix leaked context root causing sporadic NULL deref in LTP
+    - net/802/mrp: fix memleak in mrp_request_join()
+    - net/802/garp: fix memleak in garp_request_join()
+    - net: annotate data race around sk_ll_usec
+    - sctp: move 198 addresses from unusable to private scope
+    - ipv6: allocate enough headroom in ip6_finish_output2()
+    - hfs: add missing clean-up in hfs_fill_super
+    - hfs: fix high memory mapping in hfs_bnode_read
+    - hfs: add lock nesting notation to hfs_find_init
+    - firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow
+    - firmware: arm_scmi: Fix range check for the maximum number of pending
+      messages
+    - cifs: fix the out of range assignment to bit fields in
+      parse_server_interfaces
+    - iomap: remove the length variable in iomap_seek_data
+    - iomap: remove the length variable in iomap_seek_hole
+    - ARM: dts: versatile: Fix up interrupt controller node names
+    - ipv6: ip6_finish_output2: set sk into newly allocated nskb
+    - Linux 5.4.137
+  * Focal update: v5.4.136 upstream stable release (LP: #1939899)
+    - igc: Fix use-after-free error during reset
+    - igb: Fix use-after-free error during reset
+    - igc: change default return of igc_read_phy_reg()
+    - ixgbe: Fix an error handling path in 'ixgbe_probe()'
+    - igc: Prefer to use the pci_release_mem_regions method
+    - igc: Fix an error handling path in 'igc_probe()'
+    - igb: Fix an error handling path in 'igb_probe()'
+    - fm10k: Fix an error handling path in 'fm10k_probe()'
+    - e1000e: Fix an error handling path in 'e1000_probe()'
+    - iavf: Fix an error handling path in 'iavf_probe()'
+    - igb: Check if num of q_vectors is smaller than max before array access
+    - igb: Fix position of assignment to *ring
+    - gve: Fix an error handling path in 'gve_probe()'
+    - ipv6: fix 'disable_policy' for fwd packets
+    - selftests: icmp_redirect: remove from checking for IPv6 route get
+    - selftests: icmp_redirect: IPv6 PMTU info should be cleared after redirect
+    - pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped
+    - cxgb4: fix IRQ free race during driver unload
+    - nvme-pci: do not call nvme_dev_remove_admin from nvme_remove
+    - perf probe: Fix dso->nsinfo refcounting
+    - perf env: Fix sibling_dies memory leak
+    - perf test session_topology: Delete session->evlist
+    - perf test event_update: Fix memory leak of evlist
+    - perf dso: Fix memory leak in dso__new_map()
+    - perf script: Fix memory 'threads' and 'cpus' leaks on exit
+    - perf lzma: Close lzma stream on exit
+    - perf probe-file: Delete namelist in del_events() on the error path
+    - perf data: Close all files in close_dir()
+    - spi: imx: add a check for speed_hz before calculating the clock
+    - spi: stm32: Use dma_request_chan() instead dma_request_slave_channel()
+    - spi: stm32: fixes pm_runtime calls in probe/remove
+    - regulator: hi6421: Use correct variable type for regmap api val argument
+    - regulator: hi6421: Fix getting wrong drvdata
+    - spi: mediatek: fix fifo rx mode
+    - ASoC: rt5631: Fix regcache sync errors on resume
+    - liquidio: Fix unintentional sign extension issue on left shift of u16
+    - s390/bpf: Perform r1 range checking before accessing jit->seen_reg[r1]
+    - bpf, sockmap, tcp: sk_prot needs inuse_idx set for proc stats
+    - bpftool: Check malloc return value in mount_bpffs_for_pin
+    - net: fix uninit-value in caif_seqpkt_sendmsg
+    - efi/tpm: Differentiate missing and invalid final event log table.
+    - net: decnet: Fix sleeping inside in af_decnet
+    - KVM: PPC: Book3S: Fix CONFIG_TRANSACTIONAL_MEM=n crash
+    - KVM: PPC: Fix kvm_arch_vcpu_ioctl vcpu_load leak
+    - net: sched: fix memory leak in tcindex_partial_destroy_work
+    - netrom: Decrease sock refcount when sock timers expire
+    - scsi: iscsi: Fix iface sysfs attr detection
+    - scsi: target: Fix protect handling in WRITE SAME(32)
+    - spi: cadence: Correct initialisation of runtime PM again
+    - bnxt_en: Improve bnxt_ulp_stop()/bnxt_ulp_start() call sequence.
+    - bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe()
+    - bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()
+    - bnxt_en: Check abort error state in bnxt_half_open_nic()
+    - net: hisilicon: rename CACHE_LINE_MASK to avoid redefinition
+    - net/tcp_fastopen: fix data races around tfo_active_disable_stamp
+    - net: hns3: fix rx VLAN offload state inconsistent issue
+    - net/sched: act_skbmod: Skip non-Ethernet packets
+    - ipv6: fix another slab-out-of-bounds in fib6_nh_flush_exceptions
+    - nvme-pci: don't WARN_ON in nvme_reset_work if ctrl.state is not RESETTING
+    - Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem"
+    - afs: Fix tracepoint string placement with built-in AFS
+    - r8169: Avoid duplicate sysfs entry creation error
+    - nvme: set the PRACT bit when using Write Zeroes with T10 PI
+    - sctp: update active_key for asoc when old key is being replaced
+    - net: sched: cls_api: Fix the the wrong parameter
+    - drm/panel: raspberrypi-touchscreen: Prevent double-free
+    - proc: Avoid mixing integer types in mem_rw()
+    - s390/ftrace: fix ftrace_update_ftrace_func implementation
+    - s390/boot: fix use of expolines in the DMA code
+    - ALSA: usb-audio: Add missing proc text entry for BESPOKEN type
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum headsets
+    - ALSA: sb: Fix potential ABBA deadlock in CSP driver
+    - ALSA: hdmi: Expose all pins on MSI MS-7C94 board
+    - xhci: Fix lost USB 2 remote wake
+    - KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow
+    - KVM: PPC: Book3S HV Nested: Sanitise H_ENTER_NESTED TM state
+    - usb: hub: Disable USB 3 device initiated lpm if exit latency is too high
+    - usb: hub: Fix link power management max exit latency (MEL) calculations
+    - USB: usb-storage: Add LaCie Rugged USB3-FW to IGNORE_UAS
+    - usb: max-3421: Prevent corruption of freed memory
+    - usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop()
+    - USB: serial: option: add support for u-blox LARA-R6 family
+    - USB: serial: cp210x: fix comments for GE CS1000
+    - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
+    - usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
+    - firmware/efi: Tell memblock about EFI iomem reservations
+    - tracing/histogram: Rename "cpu" to "common_cpu"
+    - tracing: Fix bug in rb_per_cpu_empty() that might cause deadloop.
+    - btrfs: check for missing device in btrfs_trim_fs
+    - media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf()
+    - ixgbe: Fix packet corruption due to missing DMA sync
+    - selftest: use mmap instead of posix_memalign to allocate memory
+    - userfaultfd: do not untag user pointers
+    - hugetlbfs: fix mount mode command line processing
+    - rbd: don't hold lock_rwsem while running_list is being drained
+    - rbd: always kick acquire on "acquired" and "released" notifications
+    - nds32: fix up stack guard gap
+    - drm: Return -ENOTTY for non-drm ioctls
+    - net: dsa: mv88e6xxx: use correct .stats_set_histogram() on Topaz
+    - net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear
+    - iio: accel: bma180: Use explicit member assignment
+    - iio: accel: bma180: Fix BMA25x bandwidth register values
+    - btrfs: compression: don't try to compress if we don't have enough pages
+    - PCI: Mark AMD Navi14 GPU ATS as broken
+    - perf inject: Close inject.output on exit
+    - xhci: add xhci_get_virt_ep() helper
+    - Linux 5.4.136
+  * Focal update: v5.4.135 upstream stable release (LP: #1939442)
+    - ARM: dts: gemini: rename mdio to the right name
+    - ARM: dts: gemini: add device_type on pci
+    - ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288
+    - arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi
+    - ARM: dts: rockchip: Fix the timer clocks order
+    - ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x
+    - ARM: dts: rockchip: Fix power-controller node names for rk3066a
+    - ARM: dts: rockchip: Fix power-controller node names for rk3188
+    - ARM: dts: rockchip: Fix power-controller node names for rk3288
+    - arm64: dts: rockchip: Fix power-controller node names for px30
+    - arm64: dts: rockchip: Fix power-controller node names for rk3328
+    - reset: ti-syscon: fix to_ti_syscon_reset_data macro
+    - ARM: brcmstb: dts: fix NAND nodes names
+    - ARM: Cygnus: dts: fix NAND nodes names
+    - ARM: NSP: dts: fix NAND nodes names
+    - ARM: dts: BCM63xx: Fix NAND nodes names
+    - ARM: dts: Hurricane 2: Fix NAND nodes names
+    - ARM: dts: imx6: phyFLEX: Fix UART hardware flow control
+    - ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info
+    - rtc: mxc_v2: add missing MODULE_DEVICE_TABLE
+    - kbuild: sink stdout from cmd for silent build
+    - ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios
+    - ARM: dts: am437x-gp-evm: fix ti,no-reset-on-init flag for gpios
+    - ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
+    - ARM: dts: stm32: fix RCC node name on stm32f429 MCU
+    - ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
+    - arm64: dts: juno: Update SCPI nodes as per the YAML schema
+    - ARM: dts: rockchip: fix supply properties in io-domains nodes
+    - ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
+    - ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
+    - soc/tegra: fuse: Fix Tegra234-only builds
+    - firmware: tegra: bpmp: Fix Tegra234-only builds
+    - arm64: dts: ls208xa: remove bus-num from dspi node
+    - arm64: dts: imx8mq: assign PCIe clocks
+    - thermal/core: Correct function name thermal_zone_device_unregister()
+    - kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
+    - rtc: max77686: Do not enforce (incorrect) interrupt trigger type
+    - scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8
+    - scsi: libsas: Add LUN number check in .slave_alloc callback
+    - scsi: libfc: Fix array index out of bound exception
+    - scsi: qedf: Add check to synchronize abort and flush
+    - sched/fair: Fix CFS bandwidth hrtimer expiry type
+    - s390: introduce proper type handling call_on_stack() macro
+    - cifs: prevent NULL deref in cifs_compose_mount_options()
+    - arm64: dts: armada-3720-turris-mox: add firmware node
+    - firmware: turris-mox-rwtm: add marvell,armada-3700-rwtm-firmware compatible
+      string
+    - arm64: dts: marvell: armada-37xx: move firmware node to generic dtsi file
+    - f2fs: Show casefolding support only when supported
+    - usb: cdns3: Enable TDL_CHK only for OUT ep
+    - Revert "UBUNTU: SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root
+      kmem_cache destroy""
+    - mm: slab: fix kmem_cache_create failed when sysfs node not destroyed
+    - dm writecache: return the exact table values that were set
+    - net: dsa: mv88e6xxx: enable .port_set_policy() on Topaz
+    - net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz
+    - net: ipv6: fix return value of ip6_skb_dst_mtu
+    - netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo
+    - net/sched: act_ct: fix err check for nf_conntrack_confirm
+    - net: bridge: sync fdb to new unicast-filtering ports
+    - net: bcmgenet: Ensure all TX/RX queues DMAs are disabled
+    - net: ip_tunnel: fix mtu calculation for ETHER tunnel devices
+    - net: moxa: fix UAF in moxart_mac_probe
+    - net: qcom/emac: fix UAF in emac_remove
+    - net: ti: fix UAF in tlan_remove_one
+    - net: send SYNACK packet with accepted fwmark
+    - net: validate lwtstate->data before returning from skb_tunnel_info()
+    - net: fddi: fix UAF in fza_probe
+    - dma-buf/sync_file: Don't leak fences on merge failure
+    - tcp: annotate data races around tp->mtu_info
+    - ipv6: tcp: drop silly ICMPv6 packet too big messages
+    - bpftool: Properly close va_list 'ap' by va_end() on error
+    - perf test bpf: Free obj_buf
+    - udp: annotate data races around unix_sk(sk)->gso_size
+    - Linux 5.4.135
+  * Focal update: v5.4.134 upstream stable release (LP: #1939440)
+    - KVM: mmio: Fix use-after-free Read in kvm_vm_ioctl_unregister_coalesced_mmio
+    - KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled
+    - KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run()
+    - scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
+    - tracing: Do not reference char * as a string in histograms
+    - cgroup: verify that source is a string
+    - fbmem: Do not delete the mode that is still in use
+    - net: moxa: Use devm_platform_get_and_ioremap_resource()
+    - dmaengine: fsl-qdma: check dma_set_mask return value
+    - srcu: Fix broken node geometry after early ssp init
+    - tty: serial: fsl_lpuart: fix the potential risk of division or modulo by
+      zero
+    - misc/libmasm/module: Fix two use after free in ibmasm_init_one
+    - misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge
+    - iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get().
+    - iio: magn: bmc150: Balance runtime pm + use pm_runtime_resume_and_get()
+    - ALSA: usx2y: Don't call free_pages_exact() with NULL address
+    - Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
+    - w1: ds2438: fixing bug that would always get page0
+    - scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw()
+    - scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
+    - scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the
+      SGLs
+    - scsi: core: Cap scsi_host cmd_per_lun at can_queue
+    - ALSA: ac97: fix PM reference leak in ac97_bus_remove()
+    - tty: serial: 8250: serial_cs: Fix a memory leak in error handling path
+    - scsi: scsi_dh_alua: Check for negative result value
+    - fs/jfs: Fix missing error code in lmLogInit()
+    - scsi: megaraid_sas: Fix resource leak in case of probe failure
+    - scsi: megaraid_sas: Early detection of VD deletion through RaidMap update
+    - scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs
+    - scsi: iscsi: Add iscsi_cls_conn refcount helpers
+    - scsi: iscsi: Fix conn use after free during resets
+    - scsi: iscsi: Fix shost->max_id use
+    - scsi: qedi: Fix null ref during abort handling
+    - mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
+    - mfd: cpcap: Fix cpcap dmamask not set warnings
+    - ASoC: img: Fix PM reference leak in img_i2s_in_probe()
+    - serial: tty: uartlite: fix console setup
+    - s390/sclp_vt220: fix console name to match device
+    - ALSA: sb: Fix potential double-free of CSP mixer elements
+    - powerpc/ps3: Add dma_mask to ps3_dma_region
+    - iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get
+      fails
+    - iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation
+    - gpio: zynq: Check return value of pm_runtime_get_sync
+    - ALSA: ppc: fix error return code in snd_pmac_probe()
+    - selftests/powerpc: Fix "no_handler" EBB selftest
+    - gpio: pca953x: Add support for the On Semi pca9655
+    - ASoC: soc-core: Fix the error return code in
+      snd_soc_of_parse_audio_routing()
+    - s390/processor: always inline stap() and __load_psw_mask()
+    - s390/ipl_parm: fix program check new psw handling
+    - s390/mem_detect: fix diag260() program check new psw handling
+    - s390/mem_detect: fix tprot() program check new psw handling
+    - Input: hideep - fix the uninitialized use in hideep_nvm_unlock()
+    - ALSA: bebob: add support for ToneWeal FW66
+    - ALSA: usb-audio: scarlett2: Fix 18i8 Gen 2 PCM Input count
+    - ALSA: usb-audio: scarlett2: Fix data_mutex lock
+    - ALSA: usb-audio: scarlett2: Fix scarlett2_*_ctl_put() return values
+    - usb: gadget: f_hid: fix endianness issue with descriptors
+    - usb: gadget: hid: fix error return code in hid_bind()
+    - powerpc/boot: Fixup device-tree on little endian
+    - ASoC: Intel: kbl_da7219_max98357a: shrink platform_id below 20 characters
+    - backlight: lm3630a: Fix return code of .update_status() callback
+    - ALSA: hda: Add IRQ check for platform_get_irq()
+    - ALSA: usb-audio: scarlett2: Fix 6i6 Gen 2 line out descriptions
+    - staging: rtl8723bs: fix macro value for 2.4Ghz only device
+    - intel_th: Wait until port is in reset before programming it
+    - i2c: core: Disable client irq on reboot/shutdown
+    - power: supply: sc27xx: Add missing MODULE_DEVICE_TABLE
+    - power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE
+    - pwm: spear: Don't modify HW state in .remove callback
+    - power: supply: ab8500: Avoid NULL pointers
+    - power: supply: max17042: Do not enforce (incorrect) interrupt trigger type
+    - power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
+    - ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1
+    - PCI/P2PDMA: Avoid pci_get_slot(), which may sleep
+    - watchdog: Fix possible use-after-free in wdt_startup()
+    - watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff()
+    - watchdog: Fix possible use-after-free by calling del_timer_sync()
+    - watchdog: imx_sc_wdt: fix pretimeout
+    - x86/fpu: Return proper error codes from user access functions
+    - PCI: tegra: Add missing MODULE_DEVICE_TABLE
+    - orangefs: fix orangefs df output.
+    - ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
+    - NFS: nfs_find_open_context() may only select open files
+    - power: supply: charger-manager: add missing MODULE_DEVICE_TABLE
+    - power: supply: ab8500: add missing MODULE_DEVICE_TABLE
+    - pwm: img: Fix PM reference leak in img_pwm_enable()
+    - pwm: tegra: Don't modify HW state in .remove callback
+    - ACPI: AMBA: Fix resource name in /proc/iomem
+    - ACPI: video: Add quirk for the Dell Vostro 3350
+    - virtio-blk: Fix memory leak among suspend/resume procedure
+    - virtio_net: Fix error handling in virtnet_restore()
+    - virtio_console: Assure used length from device is limited
+    - x86/signal: Detect and prevent an alternate signal stack overflow
+    - f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs
+    - PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
+    - power: supply: rt5033_battery: Fix device tree enumeration
+    - NFSv4: Initialise connection to the server in nfs4_alloc_client()
+    - um: fix error return code in slip_open()
+    - um: fix error return code in winch_tramp()
+    - watchdog: aspeed: fix hardware timeout calculation
+    - nfs: fix acl memory leak of posix_acl_create()
+    - ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode
+    - PCI: iproc: Fix multi-MSI base vector number allocation
+    - PCI: iproc: Support multi-MSI only on uniprocessor kernel
+    - x86/fpu: Limit xstate copy size in xstateregs_set()
+    - pwm: imx1: Don't disable clocks at device remove time
+    - virtio_net: move tx vq operation under tx queue lock
+    - nvme-tcp: can't set sk_user_data without write_lock
+    - ALSA: isa: Fix error return code in snd_cmi8330_probe()
+    - NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times
+    - hexagon: use common DISCARDS macro
+    - ARM: dts: gemini-rut1xx: remove duplicate ethernet node
+    - reset: a10sr: add missing of_match_table reference
+    - ARM: exynos: add missing of_node_put for loop iteration
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4
+    - memory: atmel-ebi: add missing of_node_put for loop iteration
+    - reset: brcmstb: Add missing MODULE_DEVICE_TABLE
+    - memory: pl353: Fix error return code in pl353_smc_probe()
+    - rtc: fix snprintf() checking in is_rtc_hctosys()
+    - arm64: dts: renesas: v3msk: Fix memory size
+    - ARM: dts: r8a7779, marzen: Fix DU clock names
+    - firmware: tegra: Fix error return code in tegra210_bpmp_init()
+    - firmware: arm_scmi: Reset Rx buffer to max size during async commands
+    - ARM: dts: BCM5301X: Fixup SPI binding
+    - reset: bail if try_module_get() fails
+    - memory: fsl_ifc: fix leak of IO mapping on probe failure
+    - memory: fsl_ifc: fix leak of private memory on probe failure
+    - ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema
+    - ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema
+    - ARM: dts: imx6q-dhcom: Fix ethernet reset time properties
+    - ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems
+    - ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery
+    - thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations
+    - firmware: turris-mox-rwtm: fix reply status decoding function
+    - firmware: turris-mox-rwtm: report failures better
+    - firmware: turris-mox-rwtm: fail probing when firmware does not support hwrng
+    - scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
+    - mips: always link byteswap helpers into decompressor
+    - mips: disable branch profiling in boot/decompress.o
+    - MIPS: vdso: Invalid GIC access through VDSO
+    - scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg()
+    - misc: alcor_pci: fix inverted branch condition
+    - Linux 5.4.134
+
+  [ Ubuntu: 5.4.0-86.97 ]
+
+  * s390x BPF JIT vulnerabilities (LP: #1943960)
+    - SAUCE: s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant
+    - SAUCE: s390/bpf: Fix optimizing out zero-extensions
+
+  [ Ubuntu: 5.4.0-84.94 ]
+
+  * focal/linux: 5.4.0-84.94 -proposed tracker (LP: #1941767)
+  * Server boot failure after adding checks for ACPI IRQ override (LP: #1941657)
+    - Revert "ACPI: resources: Add checks for ACPI IRQ override"
+
+  [ Ubuntu: 5.4.0-83.93 ]
+
+  * focal/linux: 5.4.0-83.93 -proposed tracker (LP: #1940159)
+  * fails to launch linux L2 guests on AMD (LP: #1940134) // CVE-2021-3653
+    - KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+      (CVE-2021-3653)
+  * fails to launch linux L2 guests on AMD (LP: #1940134)
+    - SAUCE: Revert "UBUNTU: SAUCE: KVM: nSVM: avoid picking up unsupported bits
+      from L2 in int_ctl"
+
+  [ Ubuntu: 5.4.0-82.92 ]
+
+  * focal/linux: 5.4.0-82.92 -proposed tracker (LP: #1939799)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.08.16)
+  * CVE-2021-3656
+    - SAUCE: KVM: nSVM: always intercept VMLOAD/VMSAVE when nested
+  * CVE-2021-3653
+    - SAUCE: KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+  * [regression] USB device is not detected during boot (LP: #1939638)
+    - SAUCE: Revert "usb: core: reduce power-on-good delay time of root hub"
+  * dev_forward_skb: do not scrub skb mark within the same name space
+    (LP: #1935040)
+    - dev_forward_skb: do not scrub skb mark within the same name space
+  * XPS 9510 (TGL) Screen Brightness could not be changed (LP: #1933566)
+    - SAUCE: drm/i915: Force DPCD backlight mode for Dell XPS 9510(TGL)
+  * Acer Aspire 5 sound driver issues (LP: #1930188)
+    - ALSA: hda/realtek: headphone and mic don't work on an Acer laptop
+  * Sony Dualshock 4 usb dongle crashes the whole system (LP: #1935846)
+    - HID: sony: Workaround for DS4 dongle hotplug kernel crash.
+  * [21.10 FEAT] KVM: Provide a secure guest indication (LP: #1933173)
+    - s390/uv: add prot virt guest/host indication files
+    - s390/uv: fix prot virt host indication compilation
+  * Skip rtcpie test in kselftests/timers if the default RTC device does not
+    exist (LP: #1937991)
+    - selftests: timers: rtcpie: skip test if default RTC device does not exist
+  * Focal update: v5.4.133 upstream stable release (LP: #1938713)
+    - drm/mxsfb: Don't select DRM_KMS_FB_HELPER
+    - drm/zte: Don't select DRM_KMS_FB_HELPER
+    - drm/amd/amdgpu/sriov disable all ip hw status by default
+    - drm/vc4: fix argument ordering in vc4_crtc_get_margins()
+    - net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
+    - drm/amd/display: fix use_max_lb flag for 420 pixel formats
+    - hugetlb: clear huge pte during flush function on mips platform
+    - atm: iphase: fix possible use-after-free in ia_module_exit()
+    - mISDN: fix possible use-after-free in HFC_cleanup()
+    - atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
+    - net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
+    - drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init()
+    - reiserfs: add check for invalid 1st journal block
+    - drm/virtio: Fix double free on probe failure
+    - drm/sched: Avoid data corruptions
+    - udf: Fix NULL pointer dereference in udf_symlink function
+    - e100: handle eeprom as little endian
+    - igb: handle vlan types with checker enabled
+    - drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer()
+    - clk: renesas: r8a77995: Add ZA2 clock
+    - clk: tegra: Ensure that PLLU configuration is applied properly
+    - ipv6: use prandom_u32() for ID generation
+    - RDMA/cxgb4: Fix missing error code in create_qp()
+    - dm space maps: don't reset space map allocation cursor when committing
+    - pinctrl: mcp23s08: fix race condition in irq handler
+    - ice: set the value of global config lock timeout longer
+    - virtio_net: Remove BUG() to avoid machine dead
+    - net: bcmgenet: check return value after calling platform_get_resource()
+    - net: mvpp2: check return value after calling platform_get_resource()
+    - net: micrel: check return value after calling platform_get_resource()
+    - drm/amd/display: Update scaling settings on modeset
+    - drm/amd/display: Release MST resources on switch from MST to SST
+    - drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7
+    - drm/amdkfd: use allowed domain for vmbo validation
+    - fjes: check return value after calling platform_get_resource()
+    - selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
+    - r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM
+    - drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check
+    - xfrm: Fix error reporting in xfrm_state_construct.
+    - wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
+    - wl1251: Fix possible buffer overflow in wl1251_cmd_scan
+    - cw1200: add missing MODULE_DEVICE_TABLE
+    - bpf: Fix up register-based shifts in interpreter to silence KUBSAN
+    - mt76: mt7615: fix fixed-rate tx status reporting
+    - net: fix mistake path for netdev_features_strings
+    - net: sched: fix error return code in tcf_del_walker()
+    - drm/amdkfd: Walk through list with dqm lock hold
+    - rtl8xxxu: Fix device info for RTL8192EU devices
+    - atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
+    - atm: nicstar: register the interrupt handler in the right place
+    - vsock: notify server to shutdown when client has pending signal
+    - RDMA/rxe: Don't overwrite errno from ib_umem_get()
+    - iwlwifi: mvm: don't change band on bound PHY contexts
+    - iwlwifi: pcie: free IML DMA memory allocation
+    - iwlwifi: pcie: fix context info freeing
+    - sfc: avoid double pci_remove of VFs
+    - sfc: error code if SRIOV cannot be disabled
+    - wireless: wext-spy: Fix out-of-bounds warning
+    - media, bpf: Do not copy more entries than user space requested
+    - net: ip: avoid OOM kills with large UDP sends over loopback
+    - RDMA/cma: Fix rdma_resolve_route() memory leak
+    - Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip.
+    - Bluetooth: Fix the HCI to MGMT status conversion table
+    - Bluetooth: Shutdown controller after workqueues are flushed or cancelled
+    - Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
+    - sctp: validate from_addr_param return
+    - sctp: add size validation when walking chunks
+    - MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
+    - MIPS: set mips32r5 for virt extensions
+    - fscrypt: don't ignore minor_hash when hash is 0
+    - crypto: ccp - Annotate SEV Firmware file names
+    - perf bench: Fix 2 memory sanitizer warnings
+    - powerpc/mm: Fix lockup on kernel exec fault
+    - powerpc/barrier: Avoid collision with clang's __lwsync macro
+    - drm/amdgpu: Update NV SIMD-per-CU to 2
+    - drm/radeon: Add the missed drm_gem_object_put() in
+      radeon_user_framebuffer_create()
+    - drm/rockchip: dsi: remove extra component_del() call
+    - drm/amd/display: fix incorrrect valid irq check
+    - pinctrl/amd: Add device HID for new AMD GPIO controller
+    - drm/tegra: Don't set allow_fb_modifiers explicitly
+    - drm/msm/mdp4: Fix modifier support enabling
+    - drm/arm/malidp: Always list modifiers
+    - mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
+    - mmc: core: clear flags before allowing to retune
+    - mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
+    - ata: ahci_sunxi: Disable DIPM
+    - cpu/hotplug: Cure the cpusets trainwreck
+    - clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
+    - fpga: stratix10-soc: Add missing fpga_mgr_free() call
+    - MIPS: fix "mipsel-linux-ld: decompress.c:undefined reference to `memmove'"
+    - ASoC: tegra: Set driver_name=tegra for all machine drivers
+    - qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
+    - ipmi/watchdog: Stop watchdog timer when the current action is 'none'
+    - thermal/drivers/int340x/processor_thermal: Fix tcc setting
+    - ubifs: Fix races between xattr_{set|get} and listxattr operations
+    - power: supply: ab8500: Fix an old bug
+    - nvmem: core: add a missing of_node_put
+    - extcon: intel-mrfld: Sync hardware and software state on init
+    - seq_buf: Fix overflow in seq_buf_putmem_hex()
+    - rq-qos: fix missed wake-ups in rq_qos_throttle try two
+    - tracing: Simplify & fix saved_tgids logic
+    - tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
+    - ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe
+    - coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
+    - dm btree remove: assign new_root only when removal succeeds
+    - PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
+    - PCI: aardvark: Fix checking for PIO Non-posted Request
+    - PCI: aardvark: Implement workaround for the readback value of VEND_ID
+    - media: subdev: disallow ioctl for saa6588/davinci
+    - media: dtv5100: fix control-request directions
+    - media: zr364xx: fix memory leak in zr364xx_start_readpipe
+    - media: gspca/sq905: fix control-request direction
+    - media: gspca/sunplus: fix zero-length control requests
+    - pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
+    - jfs: fix GPF in diFree
+    - smackfs: restrict bytes count in smk_set_cipso()
+    - Linux 5.4.133
+  * Focal update: v5.4.132 upstream stable release (LP: #1938199)
+    - ALSA: usb-audio: fix rate on Ozone Z90 USB headset
+    - ALSA: usb-audio: Fix OOB access at proc output
+    - ALSA: usb-audio: scarlett2: Fix wrong resume call
+    - ALSA: intel8x0: Fix breakage at ac97 clock measurement
+    - ALSA: hda/realtek: Add another ALC236 variant support
+    - ALSA: hda/realtek: Improve fixup for HP Spectre x360 15-df0xxx
+    - ALSA: hda/realtek: Fix bass speaker DAC mapping for Asus UM431D
+    - ALSA: hda/realtek: Apply LED fixup for HP Dragonfly G1, too
+    - media: dvb-usb: fix wrong definition
+    - Input: usbtouchscreen - fix control-request directions
+    - net: can: ems_usb: fix use-after-free in ems_usb_disconnect()
+    - usb: gadget: eem: fix echo command packet response issue
+    - USB: cdc-acm: blacklist Heimann USB Appset device
+    - usb: dwc3: Fix debugfs creation flow
+    - usb: typec: Add the missed altmode_id_remove() in typec_register_altmode()
+    - xhci: solve a double free problem while doing s4
+    - ntfs: fix validity check for file name attribute
+    - copy_page_to_iter(): fix ITER_DISCARD case
+    - iov_iter_fault_in_readable() should do nothing in xarray case
+    - Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl
+    - arm_pmu: Fix write counter incorrect in ARMv7 big-endian mode
+    - ARM: dts: at91: sama5d4: fix pinctrl muxing
+    - btrfs: send: fix invalid path for unlink operations after parent
+      orphanization
+    - btrfs: clear defrag status of a root if starting transaction fails
+    - ext4: cleanup in-core orphan list if ext4_truncate() failed to get a
+      transaction handle
+    - ext4: fix kernel infoleak via ext4_extent_header
+    - ext4: return error code when ext4_fill_flex_info() fails
+    - ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
+    - ext4: remove check for zero nr_to_scan in ext4_es_scan()
+    - ext4: fix avefreec in find_group_orlov
+    - ext4: use ext4_grp_locked_error in mb_find_extent
+    - can: gw: synchronize rcu operations before removing gw job entry
+    - can: j1939: j1939_sk_init(): set SOCK_RCU_FREE to call sk_destruct() after
+      RCU is done
+    - can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in
+      TX path
+    - mac80211: remove iwlwifi specific workaround that broke sta NDP tx
+    - SUNRPC: Fix the batch tasks count wraparound.
+    - SUNRPC: Should wake up the privileged task firstly.
+    - perf/smmuv3: Don't trample existing events with global filter
+    - KVM: PPC: Book3S HV: Workaround high stack usage with clang
+    - s390/cio: dont call css_wait_for_slow_path() inside a lock
+    - rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path
+    - iio: light: tcs3472: do not free unallocated IRQ
+    - iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA
+      as volatile, too
+    - iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR
+    - iio: ltr501: ltr501_read_ps(): add missing endianness conversion
+    - serial: mvebu-uart: fix calculation of clock divisor
+    - serial: sh-sci: Stop dmaengine transfer in sci_stop_tx()
+    - serial_cs: Add Option International GSM-Ready 56K/ISDN modem
+    - serial_cs: remove wrong GLOBETROTTER.cis entry
+    - ath9k: Fix kernel NULL pointer dereference during ath_reset_internal()
+    - ssb: sdio: Don't overwrite const buffer if block_write fails
+    - rsi: Assign beacon rate settings to the correct rate_info descriptor field
+    - rsi: fix AP mode with WPA failure due to encrypted EAPOL
+    - tracing/histograms: Fix parsing of "sym-offset" modifier
+    - tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing
+    - seq_buf: Make trace_seq_putmem_hex() support data longer than 8
+    - powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi()
+    - evm: Execute evm_inode_init_security() only when an HMAC key is loaded
+    - evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded
+    - fuse: ignore PG_workingset after stealing
+    - fuse: check connected before queueing on fpq->io
+    - fuse: reject internal errno
+    - spi: Make of_register_spi_device also set the fwnode
+    - media: mdk-mdp: fix pm_runtime_get_sync() usage count
+    - media: s5p: fix pm_runtime_get_sync() usage count
+    - media: sh_vou: fix pm_runtime_get_sync() usage count
+    - media: mtk-vcodec: fix PM runtime get logic
+    - media: s5p-jpeg: fix pm_runtime_get_sync() usage count
+    - media: sti/bdisp: fix pm_runtime_get_sync() usage count
+    - media: exynos-gsc: fix pm_runtime_get_sync() usage count
+    - spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf'
+    - spi: spi-topcliff-pch: Fix potential double free in
+      pch_spi_process_messages()
+    - spi: omap-100k: Fix the length judgment problem
+    - regulator: uniphier: Add missing MODULE_DEVICE_TABLE
+    - hwrng: exynos - Fix runtime PM imbalance on error
+    - crypto: nx - add missing MODULE_DEVICE_TABLE
+    - media: sti: fix obj-$(config) targets
+    - media: cpia2: fix memory leak in cpia2_usb_probe
+    - media: cobalt: fix race condition in setting HPD
+    - media: pvrusb2: fix warning in pvr2_i2c_core_done
+    - media: imx: imx7_mipi_csis: Fix logging of only error event counters
+    - crypto: qat - check return code of qat_hal_rd_rel_reg()
+    - crypto: qat - remove unused macro in FW loader
+    - sched/fair: Fix ascii art by relpacing tabs
+    - media: em28xx: Fix possible memory leak of em28xx struct
+    - media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release
+    - media: bt8xx: Fix a missing check bug in bt878_probe
+    - media: st-hva: Fix potential NULL pointer dereferences
+    - Makefile: fix GDB warning with CONFIG_RELR
+    - media: dvd_usb: memory leak in cinergyt2_fe_attach
+    - memstick: rtsx_usb_ms: fix UAF
+    - mmc: sdhci-sprd: use sdhci_sprd_writew
+    - mmc: via-sdmmc: add a check against NULL pointer dereference
+    - crypto: shash - avoid comparing pointers to exported functions under CFI
+    - media: dvb_net: avoid speculation from net slot
+    - media: siano: fix device register error path
+    - media: imx-csi: Skip first few frames from a BT.656 source
+    - hwmon: (max31790) Report correct current pwm duty cycles
+    - hwmon: (max31790) Fix pwmX_enable attributes
+    - drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe()
+    - KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10
+      processors
+    - btrfs: fix error handling in __btrfs_update_delayed_inode
+    - btrfs: abort transaction if we fail to update the delayed inode
+    - btrfs: disable build on platforms having page size 256K
+    - locking/lockdep: Fix the dep path printing for backwards BFS
+    - lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage()
+    - KVM: s390: get rid of register asm usage
+    - regulator: mt6358: Fix vdram2 .vsel_mask
+    - regulator: da9052: Ensure enough delay time for .set_voltage_time_sel
+    - media: Fix Media Controller API config checks
+    - HID: do not use down_interruptible() when unbinding devices
+    - EDAC/ti: Add missing MODULE_DEVICE_TABLE
+    - ACPI: processor idle: Fix up C-state latency if not ordered
+    - hv_utils: Fix passing zero to 'PTR_ERR' warning
+    - lib: vsprintf: Fix handling of number field widths in vsscanf
+    - ACPI: EC: Make more Asus laptops use ECDT _GPE
+    - block_dump: remove block_dump feature in mark_inode_dirty()
+    - fs: dlm: cancel work sync othercon
+    - random32: Fix implicit truncation warning in prandom_seed_state()
+    - fs: dlm: fix memory leak when fenced
+    - ACPICA: Fix memory leak caused by _CID repair function
+    - ACPI: bus: Call kobject_put() in acpi_init() error path
+    - block: fix race between adding/removing rq qos and normal IO
+    - platform/x86: toshiba_acpi: Fix missing error code in
+      toshiba_acpi_setup_keyboard()
+    - nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst()
+    - EDAC/Intel: Do not load EDAC driver when running as a guest
+    - PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv()
+    - clocksource: Retry clock read if long delays detected
+    - ACPI: tables: Add custom DSDT file as makefile prerequisite
+    - HID: wacom: Correct base usage for capacitive ExpressKey status bits
+    - cifs: fix missing spinlock around update to ses->status
+    - block: fix discard request merge
+    - kthread_worker: fix return value when kthread_mod_delayed_work() races with
+      kthread_cancel_delayed_work_sync()
+    - ia64: mca_drv: fix incorrect array size calculation
+    - writeback, cgroup: increment isw_nr_in_flight before grabbing an inode
+    - media: s5p_cec: decrement usage count if disabled
+    - crypto: ixp4xx - dma_unmap the correct address
+    - crypto: ux500 - Fix error return code in hash_hw_final()
+    - sata_highbank: fix deferred probing
+    - pata_rb532_cf: fix deferred probing
+    - media: I2C: change 'RST' to "RSET" to fix multiple build errors
+    - sched/uclamp: Fix wrong implementation of cpu.uclamp.min
+    - sched/uclamp: Fix locking around cpu_util_update_eff()
+    - kbuild: run the checker after the compiler
+    - kbuild: Fix objtool dependency for 'OBJECT_FILES_NON_STANDARD_<obj> := n'
+    - pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
+    - evm: fix writing <securityfs>/evm overflow
+    - crypto: ccp - Fix a resource leak in an error handling path
+    - media: rc: i2c: Fix an error message
+    - pata_ep93xx: fix deferred probing
+    - media: exynos4-is: Fix a use after free in isp_video_release
+    - media: au0828: fix a NULL vs IS_ERR() check
+    - media: tc358743: Fix error return code in tc358743_probe_of()
+    - media: gspca/gl860: fix zero-length control requests
+    - m68k: atari: Fix ATARI_KBD_CORE kconfig unmet dependency warning
+    - media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()
+    - crypto: nitrox - fix unchecked variable in nitrox_register_interrupts
+    - crypto: omap-sham - Fix PM reference leak in omap sham ops
+    - mmc: usdhi6rol0: fix error return code in usdhi6_probe()
+    - arm64: consistently use reserved_pg_dir
+    - arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan
+    - media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx
+    - hwmon: (max31722) Remove non-standard ACPI device IDs
+    - hwmon: (max31790) Fix fan speed reporting for fan7..12
+    - KVM: nVMX: Ensure 64-bit shift when checking VMFUNC bitmap
+    - regulator: hi655x: Fix pass wrong pointer to config.driver_data
+    - btrfs: clear log tree recovering status if starting transaction fails
+    - sched/rt: Fix RT utilization tracking during policy change
+    - sched/rt: Fix Deadline utilization tracking during policy change
+    - sched/uclamp: Fix uclamp_tg_restrict()
+    - spi: spi-sun6i: Fix chipselect/clock bug
+    - crypto: nx - Fix RCU warning in nx842_OF_upd_status
+    - ACPI: sysfs: Fix a buffer overrun problem with description_show()
+    - extcon: extcon-max8997: Fix IRQ freeing at error path
+    - blk-wbt: introduce a new disable state to prevent false positive by
+      rwb_enabled()
+    - blk-wbt: make sure throttle is enabled properly
+    - ACPI: Use DEVICE_ATTR_<RW|RO|WO> macros
+    - ACPI: bgrt: Fix CFI violation
+    - cpufreq: Make cpufreq_online() call driver->offline() on errors
+    - ocfs2: fix snprintf() checking
+    - dax: fix ENOMEM handling in grab_mapping_entry()
+    - xfrm: xfrm_state_mtu should return at least 1280 for ipv6
+    - video: fbdev: imxfb: Fix an error message
+    - net: mvpp2: Put fwnode in error case during ->probe()
+    - net: pch_gbe: Propagate error from devm_gpio_request_one()
+    - pinctrl: renesas: r8a7796: Add missing bias for PRESET# pin
+    - pinctrl: renesas: r8a77990: JTAG pins do not have pull-down capabilities
+    - clk: meson: g12a: fix gp0 and hifi ranges
+    - net: ftgmac100: add missing error return code in ftgmac100_probe()
+    - drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on error in
+      cdn_dp_grf_write()
+    - drm/rockchip: dsi: move all lane config except LCDC mux to bind()
+    - ehea: fix error return code in ehea_restart_qps()
+    - net/sched: act_vlan: Fix modify to allow 0
+    - RDMA/core: Sanitize WQ state received from the userspace
+    - RDMA/rxe: Fix failure during driver load
+    - drm: qxl: ensure surf.data is ininitialized
+    - tools/bpftool: Fix error return code in do_batch()
+    - ath10k: go to path err_unsupported when chip id is not supported
+    - ath10k: add missing error return code in ath10k_pci_probe()
+    - wireless: carl9170: fix LEDS build errors & warnings
+    - ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others
+    - wcn36xx: Move hal_buf allocation to devm_kmalloc in probe
+    - ssb: Fix error return code in ssb_bus_scan()
+    - brcmfmac: fix setting of station info chains bitmask
+    - brcmfmac: correctly report average RSSI in station info
+    - brcmsmac: mac80211_if: Fix a resource leak in an error handling path
+    - ath10k: Fix an error code in ath10k_add_interface()
+    - netlabel: Fix memory leak in netlbl_mgmt_add_common
+    - RDMA/mlx5: Don't add slave port to unaffiliated list
+    - netfilter: nft_exthdr: check for IPv6 packet before further processing
+    - netfilter: nft_osf: check for TCP packet before further processing
+    - netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols
+    - RDMA/rxe: Fix qp reference counting for atomic ops
+    - samples/bpf: Fix the error return code of xdp_redirect's main()
+    - net: ethernet: aeroflex: fix UAF in greth_of_remove
+    - net: ethernet: ezchip: fix UAF in nps_enet_remove
+    - net: ethernet: ezchip: fix error handling
+    - vrf: do not push non-ND strict packets with a source LLA through packet taps
+      again
+    - net: sched: add barrier to ensure correct ordering for lockless qdisc
+    - tls: prevent oversized sendfile() hangs by ignoring MSG_MORE
+    - pkt_sched: sch_qfq: fix qfq_change_class() error path
+    - vxlan: add missing rcu_read_lock() in neigh_reduce()
+    - net/ipv4: swap flow ports when validating source
+    - tc-testing: fix list handling
+    - ieee802154: hwsim: Fix memory leak in hwsim_add_one
+    - ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl()
+    - mac80211: remove iwlwifi specific workaround NDPs of null_response
+    - net: bcmgenet: Fix attaching to PYH failed on RPi 4B
+    - ipv6: exthdrs: do not blindly use init_net
+    - bpf: Do not change gso_size during bpf_skb_change_proto()
+    - i40e: Fix error handling in i40e_vsi_open
+    - i40e: Fix autoneg disabling for non-10GBaseT links
+    - Revert "ibmvnic: remove duplicate napi_schedule call in open function"
+    - ibmvnic: free tx_pool if tso_pool alloc fails
+    - ipv6: fix out-of-bound access in ip6_parse_tlv()
+    - e1000e: Check the PCIm state
+    - bpfilter: Specify the log level for the kmsg message
+    - gve: Fix swapped vars when fetching max queues
+    - Revert "be2net: disable bh with spin_lock in be_process_mcc"
+    - Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid
+    - Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event
+    - clk: actions: Fix UART clock dividers on Owl S500 SoC
+    - clk: actions: Fix SD clocks factor table on Owl S500 SoC
+    - clk: actions: Fix bisp_factor_table based clocks on Owl S500 SoC
+    - clk: si5341: Avoid divide errors due to bogus register contents
+    - clk: si5341: Update initialization magic
+    - writeback: fix obtain a reference to a freeing memcg css
+    - net: lwtunnel: handle MTU calculation in forwading
+    - net: sched: fix warning in tcindex_alloc_perfect_hash
+    - RDMA/mlx5: Don't access NULL-cleared mpi pointer
+    - MIPS: Fix PKMAP with 32-bit MIPS huge page support
+    - staging: fbtft: Rectify GPIO handling
+    - rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread()
+    - tty: nozomi: Fix a resource leak in an error handling function
+    - mwifiex: re-fix for unaligned accesses
+    - iio: adis_buffer: do not return ints in irq handlers
+    - iio: adis16400: do not return ints in irq handlers
+    - iio: accel: bma180: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: bma220: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: hid: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: kxcjk-1013: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio:accel:mxc4005: Drop unnecessary explicit casts in regmap_bulk_read calls
+    - iio: accel: mxc4005: Fix overread of data and alignment issue.
+    - iio: accel: stk8312: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: stk8ba50: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ti-ads1015: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: vf610: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: gyro: bmg160: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: humidity: am2315: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: srf08: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: pulsed-light: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: as3935: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: hmc5843: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: bmc150: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: isl29125: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: tcs3414: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: tcs3472: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: cros_ec_sensors: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - iio: potentiostat: lmp91000: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - ASoC: rk3328: fix missing clk_disable_unprepare() on error in
+      rk3328_platform_probe()
+    - ASoC: hisilicon: fix missing clk_disable_unprepare() on error in
+      hi6210_i2s_startup()
+    - backlight: lm3630a_bl: Put fwnode in error case during ->probe()
+    - ASoC: rsnd: tidyup loop on rsnd_adg_clk_query()
+    - Input: hil_kbd - fix error return code in hil_dev_connect()
+    - mtd: partitions: redboot: seek fis-index-block in the right node
+    - char: pcmcia: error out if 'num_bytes_read' is greater than 4 in
+      set_protocol()
+    - firmware: stratix10-svc: Fix a resource leak in an error handling path
+    - tty: nozomi: Fix the error handling path of 'nozomi_card_init()'
+    - leds: lm3532: select regmap I2C API
+    - leds: lm36274: cosmetic: rename lm36274_data to chip
+    - leds: lm3692x: Put fwnode in any case during ->probe()
+    - scsi: FlashPoint: Rename si_flags field
+    - fsi: core: Fix return of error values on failures
+    - fsi: scom: Reset the FSI2PIB engine for any error
+    - fsi: occ: Don't accept response from un-initialized OCC
+    - fsi/sbefifo: Clean up correct FIFO when receiving reset request from SBE
+    - fsi/sbefifo: Fix reset timeout
+    - visorbus: fix error return code in visorchipset_init()
+    - s390: appldata depends on PROC_SYSCTL
+    - iommu/dma: Fix IOVA reserve dma ranges
+    - ASoC: mediatek: mtk-btcvsd: Fix an error handling path in
+      'mtk_btcvsd_snd_probe()'
+    - usb: gadget: f_fs: Fix setting of device and driver data cross-references
+    - usb: dwc2: Don't reset the core after setting turnaround time
+    - eeprom: idt_89hpesx: Put fwnode in matching case during ->probe()
+    - eeprom: idt_89hpesx: Restore printing the unsupported fwnode name
+    - iio: at91-sama5d2_adc: remove usage of iio_priv_to_dev() helper
+    - iio: adc: at91-sama5d2: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: hx711: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: mxs-lradc: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ti-ads8688: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: rm3100: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt()
+    - staging: gdm724x: check for overflow in gdm_lte_netif_rx()
+    - staging: rtl8712: remove redundant check in r871xu_drv_init
+    - staging: rtl8712: fix memory leak in rtl871x_load_fw_cb
+    - staging: mt7621-dts: fix pci address for PCI memory range
+    - serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates
+    - iio: light: vcnl4035: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: isl29501: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - ASoC: cs42l42: Correct definition of CS42L42_ADC_PDN_MASK
+    - of: Fix truncation of memory sizes on 32-bit platforms
+    - mtd: rawnand: marvell: add missing clk_disable_unprepare() on error in
+      marvell_nfc_resume()
+    - scsi: mpt3sas: Fix error return value in _scsih_expander_add()
+    - soundwire: stream: Fix test for DP prepare complete
+    - phy: uniphier-pcie: Fix updating phy parameters
+    - phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe()
+    - extcon: sm5502: Drop invalid register write in sm5502_reg_data
+    - extcon: max8997: Add missing modalias string
+    - ASoC: atmel-i2s: Fix usage of capture and playback at the same time
+    - configfs: fix memleak in configfs_release_bin_file
+    - leds: as3645a: Fix error return code in as3645a_parse_node()
+    - leds: ktd2692: Fix an error handling path
+    - powerpc: Offline CPU in stop_this_cpu()
+    - serial: mvebu-uart: do not allow changing baudrate when uartclk is not
+      available
+    - serial: mvebu-uart: correctly calculate minimal possible baudrate
+    - arm64: dts: marvell: armada-37xx: Fix reg for standard variant of UART
+    - vfio/pci: Handle concurrent vma faults
+    - mm/huge_memory.c: don't discard hugepage if other processes are mapping it
+    - mm/z3fold: fix potential memory leak in z3fold_destroy_pool()
+    - selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random
+    - perf llvm: Return -ENOMEM when asprintf() fails
+    - scsi: target: cxgbit: Unmap DMA buffer before calling target_execute_cmd()
+    - mmc: block: Disable CMDQ on the ioctl path
+    - mmc: vub3000: fix control-request direction
+    - scsi: core: Retry I/O for Notify (Enable Spinup) Required error
+    - iommu/dma: Fix compile warning in 32-bit builds
+    - Linux 5.4.132
+  * Keyboard not working (LP: #1909814) // Focal update: v5.4.132 upstream
+    stable release (LP: #1938199)
+    - ACPI: resources: Add checks for ACPI IRQ override
+  * Focal update: v5.4.131 upstream stable release (LP: #1936245)
+    - KVM: SVM: Periodically schedule when unregistering regions on destroy
+    - s390/stack: fix possible register corruption with stack switch helper
+    - KVM: SVM: Call SEV Guest Decommission if ASID binding fails
+    - xen/events: reset active flag for lateeoi events later
+    - Linux 5.4.131
+  * Focal update: v5.4.130 upstream stable release (LP: #1936244)
+    - scsi: sr: Return appropriate error code when disk is ejected
+    - drm/nouveau: fix dma_address check for CPU/GPU sync
+    - gpio: AMD8111 and TQMX86 require HAS_IOPORT_MAP
+    - RDMA/mlx5: Block FDB rules when not in switchdev mode
+    - Linux 5.4.130
+  * Focal update: v5.4.129 upstream stable release (LP: #1936242)
+    - module: limit enabling module.sig_enforce
+    - drm/nouveau: wait for moving fence after pinning v2
+    - drm/radeon: wait for moving fence after pinning
+    - ARM: 9081/1: fix gcc-10 thumb2-kernel regression
+    - mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk
+    - kbuild: add CONFIG_LD_IS_LLD
+    - arm64: link with -z norelro for LLD or aarch64-elf
+    - MIPS: generic: Update node names to avoid unit addresses
+    - spi: spi-nxp-fspi: move the register operation after the clock enable
+    - Revert "PCI: PM: Do not read power state in pci_enable_device_flags()"
+    - dmaengine: zynqmp_dma: Fix PM reference leak in
+      zynqmp_dma_alloc_chan_resourc()
+    - mac80211: remove warning in ieee80211_get_sband()
+    - mac80211_hwsim: drop pending frames on stop
+    - cfg80211: call cfg80211_leave_ocb when switching away from OCB
+    - dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe()
+    - dmaengine: mediatek: free the proper desc in desc_free handler
+    - dmaengine: mediatek: do not issue a new desc if one is still current
+    - dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma
+    - net: ipv4: Remove unneed BUG() function
+    - mac80211: drop multicast fragments
+    - net: ethtool: clear heap allocations for ethtool function
+    - ping: Check return value of function 'ping_queue_rcv_skb'
+    - inet: annotate date races around sk->sk_txhash
+    - net: phy: dp83867: perform soft reset and retain established link
+    - net: caif: fix memory leak in ldisc_open
+    - net/packet: annotate accesses to po->bind
+    - net/packet: annotate accesses to po->ifindex
+    - r8152: Avoid memcpy() over-reading of ETH_SS_STATS
+    - sh_eth: Avoid memcpy() over-reading of ETH_SS_STATS
+    - r8169: Avoid memcpy() over-reading of ETH_SS_STATS
+    - KVM: selftests: Fix kvm_check_cap() assertion
+    - net: qed: Fix memcpy() overflow of qed_dcbx_params()
+    - recordmcount: Correct st_shndx handling
+    - PCI: Add AMD RS690 quirk to enable 64-bit DMA
+    - net: ll_temac: Add memory-barriers for TX BD access
+    - net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY
+    - pinctrl: stm32: fix the reported number of GPIO lines per bank
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_device_group
+    - KVM: do not allow mapping valid but non-reference-counted pages
+    - i2c: robotfuzz-osif: fix control-request directions
+    - kthread_worker: split code for canceling the delayed work timer
+    - kthread: prevent deadlock when kthread_mod_delayed_work() races with
+      kthread_cancel_delayed_work_sync()
+    - mm: add VM_WARN_ON_ONCE_PAGE() macro
+    - mm/rmap: remove unneeded semicolon in page_not_mapped()
+    - mm/rmap: use page_not_mapped in try_to_unmap()
+    - mm, thp: use head page in __migration_entry_wait()
+    - mm/thp: fix __split_huge_pmd_locked() on shmem migration entry
+    - mm/thp: make is_huge_zero_pmd() safe and quicker
+    - mm/thp: try_to_unmap() use TTU_SYNC for safe splitting
+    - mm/thp: fix vma_address() if virtual address below file offset
+    - mm/thp: fix page_address_in_vma() on file THP tails
+    - mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page()
+    - mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split
+    - mm: page_vma_mapped_walk(): use page for pvmw->page
+    - mm: page_vma_mapped_walk(): settle PageHuge on entry
+    - mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd
+    - mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block
+    - mm: page_vma_mapped_walk(): crossing page table boundary
+    - mm: page_vma_mapped_walk(): add a level of indentation
+    - mm: page_vma_mapped_walk(): use goto instead of while (1)
+    - mm: page_vma_mapped_walk(): get vma_address_end() earlier
+    - mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes
+    - mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk()
+    - mm, futex: fix shared futex pgoff on shmem huge page
+    - [Config] enable CONFIG_SYSTEM_REVOCATION_LIST
+    - certs: Add EFI_CERT_X509_GUID support for dbx entries
+    - certs: Move load_system_certificate_list to a common function
+    - Linux 5.4.129
+  * Patch To Fix Bug in the Linux Block Layer Responsible For  Merging BIOs
+    (LP: #1931497)
+    - block: return the correct bvec when checking for gaps
+
+  [ Ubuntu: 5.4.0-81.91 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * large_dir in ext4 broken (LP: #1933074)
+    - SAUCE: ext4: fix directory index node split corruption
+  * Some test in kselftest/net on focal source tree were not tested at all
+    (LP: #1934282)
+    - selftests/net: add missing tests to Makefile
+  * curtin: install flash-kernel in arm64 UEFI unexpected (LP: #1918427)
+    - [Packaging] Allow grub-efi-arm* to satisfy recommends on ARM
+  * Add l2tp.sh in net from ubuntu_kernel_selftests back (LP: #1934293)
+    - Revert "UBUNTU: SAUCE: selftests/net -- disable l2tp.sh test"
+  * icmp_redirect.sh in net from ubuntu_kernel_selftests failed on F-OEM-5.6 /
+    F-OEM-5.10 / F-OEM-5.13 / F / G / H (LP: #1880645)
+    - selftests: icmp_redirect: support expected failures
+  * Focal update: v5.4.128 upstream stable release (LP: #1934179)
+    - dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM
+    - dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM
+    - dmaengine: stedma40: add missing iounmap() on error in d40_probe()
+    - afs: Fix an IS_ERR() vs NULL check
+    - mm/memory-failure: make sure wait for page writeback in memory_failure
+    - kvm: LAPIC: Restore guard to prevent illegal APIC register access
+    - batman-adv: Avoid WARN_ON timing related checks
+    - net: ipv4: fix memory leak in netlbl_cipsov4_add_std
+    - vrf: fix maximum MTU
+    - net: rds: fix memory leak in rds_recvmsg
+    - net: lantiq: disable interrupt before sheduling NAPI
+    - udp: fix race between close() and udp_abort()
+    - rtnetlink: Fix regression in bridge VLAN configuration
+    - net/sched: act_ct: handle DNAT tuple collision
+    - net/mlx5e: Remove dependency in IPsec initialization flows
+    - net/mlx5e: Fix page reclaim for dead peer hairpin
+    - net/mlx5: Consider RoCE cap before init RDMA resources
+    - net/mlx5e: allow TSO on VXLAN over VLAN topologies
+    - net/mlx5e: Block offload of outer header csum for UDP tunnels
+    - netfilter: synproxy: Fix out of bounds when parsing TCP options
+    - sch_cake: Fix out of bounds when parsing TCP options and header
+    - alx: Fix an error handling path in 'alx_probe()'
+    - net: stmmac: dwmac1000: Fix extended MAC address registers definition
+    - net: make get_net_ns return error if NET_NS is disabled
+    - qlcnic: Fix an error handling path in 'qlcnic_probe()'
+    - netxen_nic: Fix an error handling path in 'netxen_nic_probe()'
+    - net: qrtr: fix OOB Read in qrtr_endpoint_post
+    - ptp: improve max_adj check against unreasonable values
+    - net: cdc_ncm: switch to eth%d interface naming
+    - lantiq: net: fix duplicated skb in rx descriptor ring
+    - net: usb: fix possible use-after-free in smsc75xx_bind
+    - net: fec_ptp: fix issue caused by refactor the fec_devtype
+    - net: ipv4: fix memory leak in ip_mc_add1_src
+    - net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock
+    - be2net: Fix an error handling path in 'be_probe()'
+    - net: hamradio: fix memory leak in mkiss_close
+    - net: cdc_eem: fix tx fixup skb leak
+    - cxgb4: fix wrong shift.
+    - bnxt_en: Rediscover PHY capabilities after firmware reset
+    - bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path
+    - icmp: don't send out ICMP messages with a source address of 0.0.0.0
+    - net: ethernet: fix potential use-after-free in ec_bhf_remove
+    - regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting
+    - ASoC: rt5659: Fix the lost powers for the HDA header
+    - spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd()
+    - pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled
+    - radeon: use memcpy_to/fromio for UVD fw upload
+    - hwmon: (scpi-hwmon) shows the negative temperature properly
+    - can: bcm: fix infoleak in struct bcm_msg_head
+    - can: bcm/raw/isotp: use per module netdevice notifier
+    - can: j1939: fix Use-after-Free, hold skb ref while in use
+    - can: mcba_usb: fix memory leak in mcba_usb
+    - usb: core: hub: Disable autosuspend for Cypress CY7C65632
+    - tracing: Do not stop recording cmdlines when tracing is off
+    - tracing: Do not stop recording comms if the trace file is being read
+    - tracing: Do no increment trace_clock_global() by one
+    - PCI: Mark TI C667X to avoid bus reset
+    - PCI: Mark some NVIDIA GPUs to avoid bus reset
+    - PCI: aardvark: Don't rely on jiffies while holding spinlock
+    - PCI: aardvark: Fix kernel panic during PIO transfer
+    - PCI: Add ACS quirk for Broadcom BCM57414 NIC
+    - PCI: Work around Huawei Intelligent NIC VF FLR erratum
+    - KVM: x86: Immediately reset the MMU context when the SMM flag is cleared
+    - ARCv2: save ABI registers across signal handling
+    - x86/process: Check PF_KTHREAD and not current->mm for kernel threads
+    - x86/pkru: Write hardware init value to PKRU when xstate is init
+    - x86/fpu: Reset state for all signal restore failures
+    - dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc
+    - cfg80211: make certificate generation more robust
+    - cfg80211: avoid double free of PMSR request
+    - net: ll_temac: Make sure to free skb when it is completely used
+    - net: ll_temac: Fix TX BD buffer overwrite
+    - net: bridge: fix vlan tunnel dst null pointer dereference
+    - net: bridge: fix vlan tunnel dst refcnt when egressing
+    - mm/slub: clarify verification reporting
+    - mm/slub: fix redzoning for small allocations
+    - mm/slub.c: include swab.h
+    - net: stmmac: disable clocks in stmmac_remove_config_dt()
+    - net: fec_ptp: add clock rate zero check
+    - tools headers UAPI: Sync linux/in.h copy with the kernel sources
+    - KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read
+    - ARM: OMAP: replace setup_irq() by request_irq()
+    - clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support
+    - clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue
+    - clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940
+    - usb: dwc3: debugfs: Add and remove endpoint dirs dynamically
+    - usb: dwc3: core: fix kernel panic when do reboot
+    - Linux 5.4.128
+  * linux-azure CIFS DFS oops (LP: #1935833)
+    - cifs: get rid of unused parameter in reconn_setup_dfs_targets()
+    - cifs: handle empty list of targets in cifs_reconnect()
+  * pmtu.sh from net in ubuntu_kernel_selftests failed with no error message
+    (LP: #1887661)
+    - selftests: pmtu.sh: improve the test result processing
+  * cifs: On cifs_reconnect, resolve the hostname again (LP: #1929831)
+    - cifs: rename reconn_inval_dfs_target()
+    - cifs: Simplify reconnect code when dfs upcall is enabled
+    - cifs: Avoid error pointer dereference
+    - cifs: On cifs_reconnect, resolve the hostname again.
+  * Pixel format change broken for Elgato Cam Link 4K (LP: #1932367)
+    - (upstream) media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
+  * Focal update: v5.4.127 upstream stable release (LP: #1933851)
+    - net: ieee802154: fix null deref in parse dev addr
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65
+    - HID: hid-input: add mapping for emoji picker key
+    - HID: hid-sensor-hub: Return error for hid_set_field() failure
+    - HID: quirks: Add quirk for Lenovo optical mouse
+    - HID: multitouch: set Stylus suffix for Stylus-application devices, too
+    - HID: Add BUS_VIRTUAL to hid_connect logging
+    - HID: usbhid: fix info leak in hid_submit_ctrl
+    - drm/tegra: sor: Do not leak runtime PM reference
+    - ARM: OMAP2+: Fix build warning when mmc_omap is not built
+    - gfs2: Prevent direct-I/O write fallback errors from getting lost
+    - HID: gt683r: add missing MODULE_DEVICE_TABLE
+    - riscv: Use -mno-relax when using lld linker
+    - gfs2: Fix use-after-free in gfs2_glock_shrink_scan
+    - scsi: target: core: Fix warning on realtime kernels
+    - ethernet: myri10ge: Fix missing error code in myri10ge_probe()
+    - scsi: qedf: Do not put host in qedf_vport_create() unconditionally
+    - scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
+    - nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues()
+    - nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue()
+      fails
+    - nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue()
+    - net: ipconfig: Don't override command-line hostnames or domains
+    - drm/amd/display: Allow bandwidth validation for 0 streams.
+    - rtnetlink: Fix missing error code in rtnl_bridge_notify()
+    - net/x25: Return the correct errno code
+    - net: Return the correct errno code
+    - fib: Return the correct errno code
+    - Linux 5.4.127
+  * Focal update: v5.4.126 upstream stable release (LP: #1933369)
+    - proc: Check /proc/$pid/attr/ writes against file opener
+    - proc: Track /proc/$pid/attr/ opener mm_struct
+    - ASoC: max98088: fix ni clock divider calculation
+    - spi: Fix spi device unregister flow
+    - net/nfc/rawsock.c: fix a permission check bug
+    - usb: cdns3: Fix runtime PM imbalance on error
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830 tablet
+    - vfio-ccw: Serialize FSM IDLE state with I/O completion
+    - ASoC: sti-sas: add missing MODULE_DEVICE_TABLE
+    - spi: sprd: Add missing MODULE_DEVICE_TABLE
+    - isdn: mISDN: netjet: Fix crash in nj_probe:
+    - bonding: init notify_work earlier to avoid uninitialized use
+    - netlink: disable IRQs for netlink_lock_table()
+    - net: mdiobus: get rid of a BUG_ON()
+    - cgroup: disable controllers at parse time
+    - wq: handle VM suspension in stall detection
+    - net/qla3xxx: fix schedule while atomic in ql_sem_spinlock
+    - RDS tcp loopback connection can hang
+    - scsi: bnx2fc: Return failure if io_req is already in ABTS processing
+    - scsi: vmw_pvscsi: Set correct residual data length
+    - scsi: hisi_sas: Drop free_irq() of devm_request_irq() allocated irq
+    - scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal
+    - net: macb: ensure the device is available before accessing GEMGXL control
+      registers
+    - net: appletalk: cops: Fix data race in cops_probe1
+    - net: dsa: microchip: enable phy errata workaround on 9567
+    - nvme-fabrics: decode host pathing error for connect
+    - MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER
+    - dm verity: fix require_signatures module_param permissions
+    - bnx2x: Fix missing error code in bnx2x_iov_init_one()
+    - nvme-tcp: remove incorrect Kconfig dep in BLK_DEV_NVME
+    - powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers
+    - powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c controllers
+    - spi: Don't have controller clean up spi device before driver unbind
+    - spi: Cleanup on failure of initial setup
+    - i2c: mpc: Make use of i2c_recover_bus()
+    - i2c: mpc: implement erratum A-004447 workaround
+    - x86/boot: Add .text.* to setup.ld
+    - spi: bcm2835: Fix out-of-bounds access with more than 4 slaves
+    - drm: Fix use-after-free read in drm_getunique()
+    - drm: Lock pointer access in drm_master_release()
+    - kvm: avoid speculation-based attacks from out-of-range memslot accesses
+    - staging: rtl8723bs: Fix uninitialized variables
+    - btrfs: return value from btrfs_mark_extent_written() in case of error
+    - btrfs: promote debugging asserts to full-fledged checks in validate_super
+    - cgroup1: don't allow '\n' in renaming
+    - USB: f_ncm: ncm_bitrate (speed) is unsigned
+    - usb: f_ncm: only first packet of aggregate needs to start timer
+    - usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms
+    - usb: dwc3: ep0: fix NULL pointer exception
+    - usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling
+    - usb: typec: wcove: Use LE to CPU conversion when accessing msg->header
+    - usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path
+    - usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind
+    - USB: serial: ftdi_sio: add NovaTech OrionMX product ID
+    - USB: serial: omninet: add device id for Zyxel Omni 56K Plus
+    - USB: serial: quatech2: fix control-request directions
+    - USB: serial: cp210x: fix alternate function for CP2102N QFN20
+    - usb: gadget: eem: fix wrong eem header operation
+    - usb: fix various gadgets null ptr deref on 10gbps cabling.
+    - usb: fix various gadget panics on 10gbps cabling
+    - regulator: core: resolve supply for boot-on/always-on regulators
+    - regulator: max77620: Use device_set_of_node_from_dev()
+    - usb: typec: mux: Fix copy-paste mistake in typec_mux_match
+    - RDMA/ipoib: Fix warning caused by destroying non-initial netns
+    - RDMA/mlx4: Do not map the core_clock page to user space unless enabled
+    - vmlinux.lds.h: Avoid orphan section with !SMP
+    - perf: Fix data race between pin_count increment/decrement
+    - sched/fair: Make sure to update tg contrib for blocked load
+    - KVM: x86: Ensure liveliness of nested VM-Enter fail tracepoint message
+    - IB/mlx5: Fix initializing CQ fragments buffer
+    - NFS: Fix a potential NULL dereference in nfs_get_client()
+    - NFSv4: Fix deadlock between nfs4_evict_inode() and nfs4_opendata_get_inode()
+    - perf session: Correct buffer copying when peeking events
+    - kvm: fix previous commit for 32-bit builds
+    - NFS: Fix use-after-free in nfs4_init_client()
+    - NFSv4: Fix second deadlock in nfs4_evict_inode()
+    - NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error.
+    - scsi: core: Fix error handling of scsi_host_alloc()
+    - scsi: core: Fix failure handling of scsi_add_host_with_dma()
+    - scsi: core: Put .shost_dev in failure path if host state changes to RUNNING
+    - scsi: core: Only put parent device if host state differs from SHOST_CREATED
+    - ftrace: Do not blindly read the ip address in ftrace_bug()
+    - tracing: Correct the length check which causes memory corruption
+    - proc: only require mm_struct for writing
+    - Linux 5.4.126
+  * Focal update: v5.4.125 upstream stable release (LP: #1932957)
+    - btrfs: tree-checker: do not error out if extent ref hash doesn't match
+    - net: usb: cdc_ncm: don't spew notifications
+    - ALSA: usb: update old-style static const declaration
+    - nl80211: validate key indexes for cfg80211_registered_device
+    - hwmon: (dell-smm-hwmon) Fix index values
+    - netfilter: conntrack: unregister ipv4 sockopts on error unwind
+    - efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared
+    - efi: cper: fix snprintf() use in cper_dimm_err_location()
+    - vfio/pci: Fix error return code in vfio_ecap_init()
+    - vfio/pci: zap_vma_ptes() needs MMU
+    - samples: vfio-mdev: fix error handing in mdpy_fb_probe()
+    - vfio/platform: fix module_put call in error flow
+    - ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service
+    - HID: pidff: fix error return code in hid_pidff_init()
+    - HID: i2c-hid: fix format string mismatch
+    - net/sched: act_ct: Fix ct template allocation for zone 0
+    - ACPICA: Clean up context mutex during object deletion
+    - netfilter: nft_ct: skip expectations for confirmed conntrack
+    - netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches
+    - ieee802154: fix error return code in ieee802154_add_iface()
+    - ieee802154: fix error return code in ieee802154_llsec_getparams()
+    - ixgbevf: add correct exception tracing for XDP
+    - ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions
+    - ice: write register with correct offset
+    - ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared
+    - ice: Allow all LLDP packets from PF to Tx
+    - i2c: qcom-geni: Add shutdown callback for i2c
+    - i40e: optimize for XDP_REDIRECT in xsk path
+    - i40e: add correct exception tracing for XDP
+    - arm64: dts: ls1028a: fix memory node
+    - arm64: dts: zii-ultra: fix 12V_MAIN voltage
+    - ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property
+    - ARM: dts: imx7d-pico: Fix the 'tuning-step' property
+    - ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells
+    - bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act
+    - tipc: add extack messages for bearer/media failure
+    - tipc: fix unique bearer names sanity check
+    - Bluetooth: fix the erroneous flush_work() order
+    - Bluetooth: use correct lock to prevent UAF of hdev object
+    - net: caif: added cfserl_release function
+    - net: caif: add proper error handling
+    - net: caif: fix memory leak in caif_device_notify
+    - net: caif: fix memory leak in cfusbl_device_notify
+    - HID: i2c-hid: Skip ELAN power-on command after reset
+    - HID: magicmouse: fix NULL-deref on disconnect
+    - HID: multitouch: require Finger field to mark Win8 reports as MT
+    - ALSA: timer: Fix master timer notification
+    - ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx
+    - ARM: dts: imx6dl-yapp4: Fix RGMII connection to QCA8334 switch
+    - ARM: dts: imx6q-dhcom: Add PU,VDD1P1,VDD2P5 regulators
+    - ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
+    - usb: dwc2: Fix build in periphal-only mode
+    - pid: take a reference when initializing `cad_pid`
+    - ocfs2: fix data corruption by fallocate
+    - nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect
+    - drm/amdgpu: Don't query CE and UE errors
+    - drm/amdgpu: make sure we unpin the UVD BO
+    - x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing
+    - btrfs: mark ordered extent and inode with error if we fail to finish
+    - btrfs: fix error handling in btrfs_del_csums
+    - btrfs: return errors from btrfs_del_csums in cleanup_ref_head
+    - btrfs: fixup error handling in fixup_inode_link_counts
+    - mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY
+    - bnxt_en: Remove the setting of dev_port.
+    - mm: add thp_order
+    - XArray: add xa_get_order
+    - XArray: add xas_split
+    - mm/filemap: fix storing to a THP shadow entry
+    - btrfs: fix unmountable seed device after fstrim
+    - KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode
+    - KVM: arm64: Fix debug register indexing
+    - lib/lz4: explicitly support in-place decompression
+    - xen-pciback: redo VF placement in the virtual topology
+    - i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops
+    - neighbour: allow NUD_NOARP entries to be forced GCed
+    - Linux 5.4.125
+
+  [ Ubuntu: 5.4.0-80.90 ]
+
+  * CVE-2021-33909
+    - SAUCE: seq_file: Disallow extremely large seq buffer allocations
+
+  [ Ubuntu: 5.4.0-79.88 ]
+
+  * focal/linux: 5.4.0-79.88 -proposed tracker (LP: #1934343)
+  * lxd exec fails (LP: #1934187)
+    - SAUCE: Revert "proc: Check /proc/$pid/attr/ writes against file opener"
+
+  [ Ubuntu: 5.4.0-78.87 ]
+
+  * focal/linux: 5.4.0-78.87 -proposed tracker (LP: #1932478)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+    - update dkms package versions
+  * Disable hv-kvp-daemon.service on certain instance types (LP: #1932081)
+    - [Packaging]: Add kernel command line condition to hv-kvp-daemon service
+  * QLogic Direct-Connect host can't discover SCSI-FC or NVMe/FC devices
+    (LP: #1860724)
+    - scsi: qla2xxx: Serialize fc_port alloc in N2N
+    - scsi: qla2xxx: Set Nport ID for N2N
+    - scsi: qla2xxx: Fix point-to-point (N2N) device discovery issue
+    - scsi: qla2xxx: Fix N2N and NVMe connect retry failure
+  * [SRU] Add support for E810 NIC to Ice Driver in Focal (LP: #1912511)
+    - ice: add additional E810 device id
+  * Focal update: v5.4.124 upstream stable release (LP: #1931166)
+    - ALSA: hda/realtek: Headphone volume is controlled by Front mixer
+    - ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci
+    - ALSA: usb-audio: scarlett2: Improve driver startup messages
+    - cifs: set server->cipher_type to AES-128-CCM for SMB3.0
+    - NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()
+    - iommu/vt-d: Fix sysfs leak in alloc_iommu()
+    - perf intel-pt: Fix sample instruction bytes
+    - perf intel-pt: Fix transaction abort handling
+    - perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top
+      Calls by elapsed Time report
+    - perf scripts python: exported-sql-viewer.py: Fix Array TypeError
+    - perf scripts python: exported-sql-viewer.py: Fix warning display
+    - proc: Check /proc/$pid/attr/ writes against file opener
+    - net: hso: fix control-request directions
+    - ath10k: Validate first subframe of A-MSDU before processing the list
+    - dm snapshot: properly fix a crash when an origin has no snapshots
+    - drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate
+    - drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate
+    - drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate
+    - selftests/gpio: Use TEST_GEN_PROGS_EXTENDED
+    - selftests/gpio: Move include of lib.mk up
+    - selftests/gpio: Fix build when source tree is read only
+    - kgdb: fix gcc-11 warnings harder
+    - Documentation: seccomp: Fix user notification documentation
+    - serial: core: fix suspicious security_locked_down() call
+    - misc/uss720: fix memory leak in uss720_probe
+    - thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue
+    - mei: request autosuspend after sending rx flow control
+    - staging: iio: cdc: ad7746: avoid overwrite of num_channels
+    - iio: gyro: fxas21002c: balance runtime power in error path
+    - iio: adc: ad7768-1: Fix too small buffer passed to
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ad7124: Fix missbalanced regulator enable / disable on error.
+    - iio: adc: ad7124: Fix potential overflow due to non sequential channel
+      numbers
+    - iio: adc: ad7793: Add missing error code in ad7793_setup()
+    - serial: 8250_pci: Add support for new HPE serial device
+    - serial: 8250_pci: handle FL_NOIRQ board flag
+    - USB: trancevibrator: fix control-request direction
+    - USB: usbfs: Don't WARN about excessively large memory allocations
+    - serial: tegra: Fix a mask operation that is always true
+    - serial: sh-sci: Fix off-by-one error in FIFO threshold register setting
+    - serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
+    - USB: serial: ti_usb_3410_5052: add startech.com device id
+    - USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011
+    - USB: serial: ftdi_sio: add IDs for IDS GmbH Products
+    - USB: serial: pl2303: add device id for ADLINK ND-6530 GC
+    - thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID
+    - usb: dwc3: gadget: Properly track pending and queued SG
+    - usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen()
+    - net: usb: fix memory leak in smsc75xx_bind
+    - spi: spi-geni-qcom: Fix use-after-free on unbind
+    - Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails
+    - fs/nfs: Use fatal_signal_pending instead of signal_pending
+    - NFS: fix an incorrect limit in filelayout_decode_layout()
+    - NFS: Fix an Oopsable condition in __nfs_pageio_add_request()
+    - NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
+    - NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config
+    - drm/meson: fix shutdown crash when component not probed
+    - net/mlx5e: Fix multipath lag activation
+    - net/mlx5e: Fix nullptr in add_vlan_push_action()
+    - net/mlx4: Fix EEPROM dump support
+    - Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"
+    - tipc: wait and exit until all work queues are done
+    - tipc: skb_linearize the head skb when reassembling msgs
+    - spi: spi-fsl-dspi: Fix a resource leak in an error handling path
+    - net: dsa: mt7530: fix VLAN traffic leaks
+    - net: dsa: fix a crash if ->get_sset_count() fails
+    - net: dsa: sja1105: error out on unsupported PHY mode
+    - i2c: s3c2410: fix possible NULL pointer deref on read message after write
+    - i2c: i801: Don't generate an interrupt on bus reset
+    - i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E
+    - perf jevents: Fix getting maximum number of fds
+    - platform/x86: hp_accel: Avoid invoking _INI to speed up resume
+    - gpio: cadence: Add missing MODULE_DEVICE_TABLE
+    - Revert "media: usb: gspca: add a missed check for goto_low_power"
+    - Revert "ALSA: sb: fix a missing check of snd_ctl_add"
+    - Revert "serial: max310x: pass return value of spi_register_driver"
+    - serial: max310x: unregister uart driver in case of failure and abort
+    - Revert "net: fujitsu: fix a potential NULL pointer dereference"
+    - net: fujitsu: fix potential null-ptr-deref
+    - Revert "net/smc: fix a NULL pointer dereference"
+    - net: caif: remove BUG_ON(dev == NULL) in caif_xmit
+    - Revert "char: hpet: fix a missing check of ioremap"
+    - char: hpet: add checks after calling ioremap
+    - Revert "ALSA: gus: add a check of the status of snd_ctl_add"
+    - Revert "ALSA: usx2y: Fix potential NULL pointer dereference"
+    - Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference"
+    - isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
+    - Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()"
+    - ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()
+    - Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc"
+    - isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info
+    - Revert "dmaengine: qcom_hidma: Check for driver register failure"
+    - dmaengine: qcom_hidma: comment platform_driver_register call
+    - Revert "libertas: add checks for the return value of sysfs_create_group"
+    - libertas: register sysfs groups properly
+    - Revert "ASoC: cs43130: fix a NULL pointer dereference"
+    - ASoC: cs43130: handle errors in cs43130_probe() properly
+    - Revert "media: dvb: Add check on sp8870_readreg"
+    - media: dvb: Add check on sp8870_readreg return
+    - Revert "media: gspca: mt9m111: Check write_bridge for timeout"
+    - media: gspca: mt9m111: Check write_bridge for timeout
+    - Revert "media: gspca: Check the return value of write_bridge for timeout"
+    - media: gspca: properly check for errors in po1030_probe()
+    - Revert "net: liquidio: fix a NULL pointer dereference"
+    - net: liquidio: Add missing null pointer checks
+    - Revert "brcmfmac: add a check for the status of usb_register"
+    - brcmfmac: properly check for bus register errors
+    - btrfs: return whole extents in fiemap
+    - scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic
+    - openrisc: Define memory barrier mb
+    - btrfs: do not BUG_ON in link_to_fixup_dir
+    - platform/x86: hp-wireless: add AMD's hardware id to the supported list
+    - platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI
+    - platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700
+      tablet
+    - SMB3: incorrect file id in requests compounded with open
+    - drm/amd/display: Disconnect non-DP with no EDID
+    - drm/amd/amdgpu: fix refcount leak
+    - drm/amdgpu: Fix a use-after-free
+    - drm/amd/amdgpu: fix a potential deadlock in gpu reset
+    - net: netcp: Fix an error message
+    - net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count
+    - ASoC: cs42l42: Regmap must use_single_read/write
+    - vfio-ccw: Check initialized flag in cp_init()
+    - net: really orphan skbs tied to closing sk
+    - net: fec: fix the potential memory leak in fec_enet_init()
+    - net: mdio: thunder: Fix a double free issue in the .remove function
+    - net: mdio: octeon: Fix some double free issues
+    - openvswitch: meter: fix race when getting now_ms.
+    - tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT
+    - net: sched: fix packet stuck problem for lockless qdisc
+    - net: sched: fix tx action rescheduling issue during deactivation
+    - net: sched: fix tx action reschedule issue with stopped queue
+    - net: hso: check for allocation failure in hso_create_bulk_serial_device()
+    - net: bnx2: Fix error return code in bnx2_init_board()
+    - bnxt_en: Include new P5 HV definition in VF check.
+    - mld: fix panic in mld_newpack()
+    - gve: Check TX QPL was actually assigned
+    - gve: Update mgmt_msix_idx if num_ntfy changes
+    - gve: Add NULL pointer checks when freeing irqs.
+    - gve: Upgrade memory barrier in poll routine
+    - gve: Correct SKB queue index validation.
+    - cxgb4: avoid accessing registers when clearing filters
+    - staging: emxx_udc: fix loop in _nbu2ss_nuke()
+    - ASoC: cs35l33: fix an error code in probe()
+    - bpf: Set mac_len in bpf_skb_change_head
+    - ixgbe: fix large MTU request from VF
+    - scsi: libsas: Use _safe() loop in sas_resume_port()
+    - net: lantiq: fix memory corruption in RX ring
+    - ipv6: record frag_max_size in atomic fragments in input path
+    - ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be
+      static
+    - net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88
+    - sch_dsmark: fix a NULL deref in qdisc_reset()
+    - MIPS: alchemy: xxs1500: add gpio-au1000.h header file
+    - MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c
+    - drm/i915/display: fix compiler warning about array overrun
+    - i915: fix build warning in intel_dp_get_link_status()
+    - drivers/net/ethernet: clean up unused assignments
+    - net: hns3: check the return of skb_checksum_help()
+    - Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
+    - net: hso: bail out on interrupt URB allocation failure
+    - neighbour: Prevent Race condition in neighbour subsytem
+    - usb: core: reduce power-on-good delay time of root hub
+    - Linux 5.4.124
+  * Focal update: v5.4.123 upstream stable release (LP: #1931160)
+    - usb: dwc3: gadget: Enable suspend events
+    - perf unwind: Fix separate debug info files when using elfutils' libdw's
+      unwinder
+    - perf unwind: Set userdata for all __report_module() paths
+    - NFC: nci: fix memory leak in nci_allocate_device
+    - Linux 5.4.123
+  * Focal update: v5.4.122 upstream stable release (LP: #1931159)
+    - firmware: arm_scpi: Prevent the ternary sign expansion bug
+    - openrisc: Fix a memory leak
+    - RDMA/siw: Properly check send and receive CQ pointers
+    - RDMA/siw: Release xarray entry
+    - RDMA/rxe: Clear all QP fields if creation failed
+    - scsi: ufs: core: Increase the usable queue depth
+    - scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
+    - RDMA/mlx5: Recover from fatal event in dual port mode
+    - RDMA/core: Don't access cm_id after its destruction
+    - platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue
+    - platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
+    - RDMA/uverbs: Fix a NULL vs IS_ERR() bug
+    - ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
+    - nvmet: seset ns->file when open fails
+    - locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
+    - btrfs: avoid RCU stalls while running delayed iputs
+    - cifs: fix memory leak in smb2_copychunk_range
+    - ALSA: dice: fix stream format for TC Electronic Konnekt Live at high
+      sampling transfer frequency
+    - ALSA: intel8x0: Don't update period unless prepared
+    - ALSA: line6: Fix racy initialization of LINE6 MIDI
+    - ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26
+    - ALSA: firewire-lib: fix calculation for size of IR context payload
+    - ALSA: usb-audio: Validate MS endpoint descriptors
+    - ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
+    - ALSA: hda: fixup headset for ASUS GU502 laptop
+    - Revert "ALSA: sb8: add a check for request_region"
+    - ALSA: firewire-lib: fix check for the size of isochronous packet payload
+    - ALSA: hda/realtek: reset eapd coeff to default value for alc287
+    - ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293
+    - ALSA: hda/realtek: Fix silent headphone output on ASUS UX430UA
+    - ALSA: hda/realtek: Add fixup for HP OMEN laptop
+    - ALSA: hda/realtek: Add fixup for HP Spectre x360 15-df0xxx
+    - uio_hv_generic: Fix a memory leak in error handling paths
+    - Revert "rapidio: fix a NULL pointer dereference when create_workqueue()
+      fails"
+    - rapidio: handle create_workqueue() failure
+    - Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer
+      dereference"
+    - drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang
+    - drm/amdgpu: update gc golden setting for Navi12
+    - drm/amdgpu: update sdma golden setting for Navi12
+    - mmc: sdhci-pci-gli: increase 1.8V regulator wait
+    - xen-pciback: reconfigure also from backend watch handler
+    - dm snapshot: fix crash with transient storage and zero chunk size
+    - Revert "video: hgafb: fix potential NULL pointer dereference"
+    - Revert "net: stmicro: fix a missing check of clk_prepare"
+    - Revert "leds: lp5523: fix a missing check of return value of lp55xx_read"
+    - Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
+    - Revert "video: imsttfb: fix potential NULL pointer dereferences"
+    - Revert "ecryptfs: replace BUG_ON with error handling code"
+    - Revert "scsi: ufs: fix a missing check of devm_reset_control_get"
+    - Revert "gdrom: fix a memory leak bug"
+    - cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
+    - cdrom: gdrom: initialize global variable at init time
+    - Revert "media: rcar_drif: fix a memory disclosure"
+    - Revert "rtlwifi: fix a potential NULL pointer dereference"
+    - Revert "qlcnic: Avoid potential NULL pointer dereference"
+    - Revert "niu: fix missing checks of niu_pci_eeprom_read"
+    - ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
+    - net: stmicro: handle clk_prepare() failure during init
+    - scsi: ufs: handle cleanup correctly on devm_reset_control_get error
+    - net: rtlwifi: properly check for alloc_workqueue() failure
+    - ics932s401: fix broken handling of errors when word reading fails
+    - leds: lp5523: check return value of lp5xx_read and jump to cleanup code
+    - qlcnic: Add null check after calling netdev_alloc_skb
+    - video: hgafb: fix potential NULL pointer dereference
+    - vgacon: Record video mode changes with VT_RESIZEX
+    - vt: Fix character height handling with VT_RESIZEX
+    - tty: vt: always invoke vc->vc_sw->con_resize callback
+    - nvme-multipath: fix double initialization of ANA state
+    - ext4: fix error handling in ext4_end_enable_verity()
+    - Bluetooth: L2CAP: Fix handling LE modes by L2CAP_OPTIONS
+    - nvmet: use new ana_log_size instead the old one
+    - video: hgafb: correctly handle card detect failure during probe
+    - Bluetooth: SMP: Fail if remote and local public keys are identical
+    - Linux 5.4.122
+  * Focal update: v5.4.121 upstream stable release (LP: #1931158)
+    - x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
+    - kgdb: fix gcc-11 warning on indentation
+    - usb: sl811-hcd: improve misleading indentation
+    - cxgb4: Fix the -Wmisleading-indentation warning
+    - isdn: capi: fix mismatched prototypes
+    - pinctrl: ingenic: Improve unreachable code generation
+    - xsk: Simplify detection of empty and full rings
+    - virtio_net: Do not pull payload in skb->head
+    - PCI: thunder: Fix compile testing
+    - dmaengine: dw-edma: Fix crash on loading/unloading driver
+    - ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend()
+    - ACPI / hotplug / PCI: Fix reference count leak in enable_slot()
+    - Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated
+      devices
+    - Input: silead - add workaround for x86 BIOS-es which bring the chip up in a
+      stuck state
+    - um: Mark all kernel symbols as local
+    - um: Disable CONFIG_GCOV with MODULES
+    - ARM: 9075/1: kernel: Fix interrupted SMC calls
+    - scripts/recordmcount.pl: Fix RISC-V regex for clang
+    - riscv: Workaround mcount name prior to clang-13
+    - scsi: lpfc: Fix illegal memory access on Abort IOCBs
+    - ceph: fix fscache invalidation
+    - scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not
+      found
+    - bridge: Fix possible races between assigning rx_handler_data and setting
+      IFF_BRIDGE_PORT bit
+    - drm/amd/display: Fix two cursor duplication when using overlay
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055
+    - ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
+    - block: reexpand iov_iter after read/write
+    - lib: stackdepot: turn depot_lock spinlock to raw_spinlock
+    - net: stmmac: Do not enable RX FIFO overflow interrupts
+    - ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
+    - sit: proper dev_{hold|put} in ndo_[un]init methods
+    - ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
+    - ipv6: remove extra dev_hold() for fallback tunnels
+    - KVM: arm64: Initialize VCPU mdcr_el2 before loading it
+    - tweewide: Fix most Shebang lines
+    - scripts: switch explicitly to Python 3
+    - Linux 5.4.121
+  * Focal update: v5.4.120 upstream stable release (LP: #1930474)
+    - tpm: fix error return code in tpm2_get_cc_attrs_tbl()
+    - tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt()
+    - tpm, tpm_tis: Reserve locality in tpm_tis_resume()
+    - KVM: x86/mmu: Remove the defunct update_pte() paging hook
+    - PM: runtime: Fix unpaired parent child_count for force_resume
+    - fs: dlm: fix debugfs dump
+    - tipc: convert dest node's address to network order
+    - ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF
+    - net: stmmac: Set FIFO sizes for ipq806x
+    - ASoC: rsnd: core: Check convert rate in rsnd_hw_params
+    - i2c: bail out early when RDWR parameters are wrong
+    - ALSA: hdsp: don't disable if not enabled
+    - ALSA: hdspm: don't disable if not enabled
+    - ALSA: rme9652: don't disable if not enabled
+    - ALSA: bebob: enable to deliver MIDI messages for multiple ports
+    - Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
+    - Bluetooth: initialize skb_queue_head at l2cap_chan_create()
+    - net: bridge: when suppression is enabled exclude RARP packets
+    - Bluetooth: check for zapped sk before connecting
+    - ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
+    - i2c: Add I2C_AQ_NO_REP_START adapter quirk
+    - mac80211: clear the beacon's CRC after channel switch
+    - pinctrl: samsung: use 'int' for register masks in Exynos
+    - mt76: mt76x0: disable GTK offloading
+    - cuse: prevent clone
+    - ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init()
+    - Revert "iommu/amd: Fix performance counter initialization"
+    - iommu/amd: Remove performance counter pre-initialization test
+    - drm/amd/display: Force vsync flip when reconfiguring MPCC
+    - selftests: Set CC to clang in lib.mk if LLVM is set
+    - kconfig: nconf: stop endless search loops
+    - ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume
+    - sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
+    - flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target()
+    - powerpc/smp: Set numa node before updating mask
+    - ASoC: rt286: Generalize support for ALC3263 codec
+    - ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user()
+    - net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule
+    - samples/bpf: Fix broken tracex1 due to kprobe argument change
+    - powerpc/pseries: Stop calling printk in rtas_stop_self()
+    - drm/amd/display: fixed divide by zero kernel crash during dsc enablement
+    - wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
+    - wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
+    - qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth
+    - powerpc/iommu: Annotate nested lock for lockdep
+    - iavf: remove duplicate free resources calls
+    - net: ethernet: mtk_eth_soc: fix RX VLAN offload
+    - bnxt_en: Add PCI IDs for Hyper-V VF devices.
+    - ia64: module: fix symbolizer crash on fdescr
+    - ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
+    - thermal: thermal_of: Fix error return code of
+      thermal_of_populate_bind_params()
+    - f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
+    - PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc()
+    - PCI: Release OF node in pci_scan_device()'s error path
+    - ARM: 9064/1: hw_breakpoint: Do not directly check the event's
+      overflow_handler hook
+    - rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
+    - NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
+    - NFS: Deal correctly with attribute generation counter overflow
+    - PCI: endpoint: Fix missing destroy_workqueue()
+    - pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
+    - NFSv4.2 fix handling of sr_eof in SEEK's reply
+    - rtc: fsl-ftm-alarm: add MODULE_TABLE()
+    - ceph: fix inode leak on getattr error in __fh_to_dentry
+    - rtc: ds1307: Fix wday settings for rx8130
+    - net: hns3: fix incorrect configuration for igu_egu_hw_err
+    - net: hns3: initialize the message content in hclge_get_link_mode()
+    - net: hns3: add check for HNS3_NIC_STATE_INITED in
+      hns3_reset_notify_up_enet()
+    - net: hns3: fix for vxlan gpe tx checksum bug
+    - net: hns3: use netif_tx_disable to stop the transmit queue
+    - net: hns3: disable phy loopback setting in hclge_mac_start_phy
+    - sctp: do asoc update earlier in sctp_sf_do_dupcook_a
+    - RISC-V: Fix error code returned by riscv_hartid_to_cpuid()
+    - sunrpc: Fix misplaced barrier in call_decode
+    - ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
+    - sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
+    - netfilter: xt_SECMARK: add new revision to fix structure layout
+    - drm/radeon: Fix off-by-one power_state index heap overwrite
+    - drm/radeon: Avoid power table parsing memory leaks
+    - khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
+    - mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
+    - mm/migrate.c: fix potential indeterminate pte entry in
+      migrate_vma_insert_page()
+    - ksm: fix potential missing rmap_item for stable_node
+    - net: fix nla_strcmp to handle more then one trailing null character
+    - smc: disallow TCP_ULP in smc_setsockopt()
+    - netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
+    - can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
+    - sched: Fix out-of-bound access in uclamp
+    - sched/fair: Fix unfairness caused by missing load decay
+    - kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
+    - netfilter: nftables: avoid overflows in nft_hash_buckets()
+    - i40e: Fix use-after-free in i40e_client_subtask()
+    - i40e: fix the restart auto-negotiation after FEC modified
+    - i40e: Fix PHY type identifiers for 2.5G and 5G adapters
+    - ARC: entry: fix off-by-one error in syscall number validation
+    - ARC: mm: PAE: use 40-bit physical page mask
+    - powerpc/64s: Fix crashes when toggling stf barrier
+    - powerpc/64s: Fix crashes when toggling entry flush barrier
+    - hfsplus: prevent corruption in shrinking truncate
+    - squashfs: fix divide error in calculate_skip()
+    - userfaultfd: release page in error path to avoid BUG_ON
+    - mm/hugetlb: fix F_SEAL_FUTURE_WRITE
+    - drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors
+      are connected
+    - drm/i915: Avoid div-by-zero on gen2
+    - iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
+    - usb: fotg210-hcd: Fix an error message
+    - hwmon: (occ) Fix poll rate limiting
+    - ACPI: scan: Fix a memory leak in an error handling path
+    - kyber: fix out of bounds access when preempted
+    - nbd: Fix NULL pointer in flush_workqueue
+    - blk-mq: Swap two calls in blk_mq_exit_queue()
+    - iomap: fix sub-page uptodate handling
+    - usb: dwc3: omap: improve extcon initialization
+    - usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield
+    - usb: xhci: Increase timeout for HC halt
+    - usb: dwc2: Fix gadget DMA unmap direction
+    - usb: core: hub: fix race condition about TRSMRCY of resume
+    - usb: dwc3: gadget: Return success always for kick transfer in ep queue
+    - xhci: Do not use GFP_KERNEL in (potentially) atomic context
+    - xhci: Add reset resume quirk for AMD xhci controller.
+    - iio: gyro: mpu3050: Fix reported temperature value
+    - iio: tsl2583: Fix division by a zero lux_val
+    - cdc-wdm: untangle a circular dependency between callback and softint
+    - KVM: x86: Cancel pvclock_gtod_work on module removal
+    - mm: fix struct page layout on 32-bit systems
+    - FDDI: defxx: Make MMIO the configuration default except for EISA
+    - MIPS: Reinstate platform `__div64_32' handler
+    - MIPS: Avoid DIVU in `__div64_32' is result would be zero
+    - MIPS: Avoid handcoded DIVU in `__div64_32' altogether
+    - thermal/core/fair share: Lock the thermal zone while looping over instances
+    - f2fs: fix error handling in f2fs_end_enable_verity()
+    - ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address
+    - ARM: 9012/1: move device tree mapping out of linear region
+    - ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual
+      address
+    - ARM: 9027/1: head.S: explicitly map DT even if it lives in the first
+      physical section
+    - usb: typec: tcpm: Fix error while calculating PPS out values
+    - kobject_uevent: remove warning in init_uevent_argv()
+    - netfilter: conntrack: Make global sysctls readonly in non-init netns
+    - clk: exynos7: Mark aclk_fsys1_200 as critical
+    - nvme: do not try to reconfigure APST when the controller is not live
+    - ASoC: rsnd: check all BUSIF status when error
+    - Linux 5.4.120
+  * scsi: storvsc: Parameterize number hardware queues (LP: #1930626)
+    - scsi: storvsc: Parameterize number hardware queues
+
+  [ Ubuntu: 5.4.0-77.86 ]
+
+  * UAF on CAN J1939 j1939_can_recv (LP: #1932209)
+    - SAUCE: can: j1939: delay release of j1939_priv after synchronize_rcu
+  * UAF on CAN BCM bcm_rx_handler (LP: #1931855)
+    - SAUCE: can: bcm: delay release of struct bcm_op after synchronize_rcu
+
+  [ Ubuntu: 5.4.0-76.85 ]
+
+  * focal/linux: 5.4.0-76.85 -proposed tracker (LP: #1932123)
+  * Upstream v5.9 introduced 'module' patches that removed exported symbols
+    (LP: #1932065)
+    - SAUCE: Revert "modules: inherit TAINT_PROPRIETARY_MODULE"
+    - SAUCE: Revert "modules: return licensing information from find_symbol"
+    - SAUCE: Revert "modules: rename the licence field in struct symsearch to
+      license"
+    - SAUCE: Revert "modules: unexport __module_address"
+    - SAUCE: Revert "modules: unexport __module_text_address"
+    - SAUCE: Revert "modules: mark each_symbol_section static"
+    - SAUCE: Revert "modules: mark find_symbol static"
+    - SAUCE: Revert "modules: mark ref_module static"
+
+  [ Ubuntu: 5.4.0-75.84 ]
+
+  * focal/linux: 5.4.0-75.84 -proposed tracker (LP: #1930032)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * CVE-2021-33200
+    - bpf: Wrap aux data inside bpf_sanitize_info container
+    - bpf: Fix mask direction swap upon off reg sign change
+    - bpf: No need to simulate speculative domain for immediates
+  * Realtek USB hubs in Dell WD19SC/DC/TB fail to work after exiting s2idle
+    (LP: #1928242)
+    - USB: Verify the port status when timeout happens during port suspend
+  * CVE-2020-26145
+    - ath10k: drop fragments with multicast DA for SDIO
+    - ath10k: add CCMP PN replay protection for fragmented frames for PCIe
+    - ath10k: drop fragments with multicast DA for PCIe
+  * CVE-2020-26141
+    - ath10k: Fix TKIP Michael MIC verification for PCIe
+  * CVE-2020-24588
+    - mac80211: properly handle A-MSDUs that start with an RFC 1042 header
+    - cfg80211: mitigate A-MSDU aggregation attacks
+    - mac80211: drop A-MSDUs on old ciphers
+    - ath10k: drop MPDU which has discard flag set by firmware for SDIO
+  * CVE-2020-26139
+    - mac80211: do not accept/forward invalid EAPOL frames
+  * CVE-2020-24586 // CVE-2020-24587 // CVE-2020-24587 for such cases.
+    - mac80211: extend protection against mixed key and fragment cache attacks
+  * CVE-2020-24586 // CVE-2020-24587
+    - mac80211: prevent mixed key and fragment cache attacks
+    - mac80211: add fragment cache to sta_info
+    - mac80211: check defrag PN against current frame
+    - mac80211: prevent attacks on TKIP/WEP as well
+  * CVE-2020-26147
+    - mac80211: assure all fragments are encrypted
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull the code that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: remove unnecessary discard limits for raid0 and raid10
+  * [SRU] mpt3sas: only one vSES is handy even IOC has multi vSES (LP: #1926517)
+    - scsi: mpt3sas: Only one vSES is present even when IOC has multi vSES
+  * kvm: properly tear down PV features on hibernate (LP: #1920944)
+    - x86/kvm: Fix pr_info() for async PF setup/teardown
+    - x86/kvm: Teardown PV features on boot CPU as well
+    - x86/kvm: Disable kvmclock on all CPUs on shutdown
+    - x86/kvm: Disable all PV features on crash
+    - x86/kvm: Unify kvm_pv_guest_cpu_reboot() with kvm_guest_cpu_offline()
+  * Focal update: v5.4.119 upstream stable release (LP: #1929615)
+    - Bluetooth: verify AMP hci_chan before amp_destroy
+    - hsr: use netdev_err() instead of WARN_ONCE()
+    - bluetooth: eliminate the potential race condition when removing the HCI
+      controller
+    - net/nfc: fix use-after-free llcp_sock_bind/connect
+    - Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL"
+    - tty: moxa: fix TIOCSSERIAL jiffies conversions
+    - tty: amiserial: fix TIOCSSERIAL permission check
+    - USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions
+    - staging: greybus: uart: fix TIOCSSERIAL jiffies conversions
+    - USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check
+    - staging: fwserial: fix TIOCSSERIAL jiffies conversions
+    - tty: moxa: fix TIOCSSERIAL permission check
+    - staging: fwserial: fix TIOCSSERIAL permission check
+    - usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply
+    - usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply
+    - usb: typec: tcpm: update power supply once partner accepts
+    - usb: xhci-mtk: remove or operator for setting schedule parameters
+    - usb: xhci-mtk: improve bandwidth scheduling with TT
+    - ASoC: samsung: tm2_wm5110: check of of_parse return value
+    - ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function
+    - MIPS: pci-mt7620: fix PLL lock check
+    - MIPS: pci-rt2880: fix slot 0 configuration
+    - FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
+    - PCI: Allow VPD access for QLogic ISP2722
+    - iio:accel:adis16201: Fix wrong axis assignment that prevents loading
+    - misc: lis3lv02d: Fix false-positive WARN on various HP models
+    - misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
+    - misc: vmw_vmci: explicitly initialize vmci_datagram payload
+    - md/bitmap: wait for external bitmap writes to complete during tear down
+    - md-cluster: fix use-after-free issue when removing rdev
+    - md: split mddev_find
+    - md: factor out a mddev_find_locked helper from mddev_find
+    - md: md_open returns -EBUSY when entering racing area
+    - md: Fix missing unused status line of /proc/mdstat
+    - ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
+    - cfg80211: scan: drop entry from hidden_list on overflow
+    - rtw88: Fix array overrun in rtw_get_tx_power_params()
+    - drm/panfrost: Clear MMU irqs before handling the fault
+    - drm/panfrost: Don't try to map pages that are already mapped
+    - drm/radeon: fix copy of uninitialized variable back to userspace
+    - drm/amd/display: Reject non-zero src_y and src_x for video planes
+    - ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
+    - ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
+    - ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
+    - ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries
+    - ALSA: hda/realtek: Re-order ALC662 quirk table entries
+    - ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
+    - ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable
+    - KVM: s390: split kvm_s390_logical_to_effective
+    - KVM: s390: fix guarded storage control register handling
+    - s390: fix detection of vector enhancements facility 1 vs. vector packed
+      decimal facility
+    - KVM: s390: split kvm_s390_real_to_abs
+    - KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit
+    - KVM: Stop looking for coalesced MMIO zones if the bus is destroyed
+    - Revert "i3c master: fix missing destroy_workqueue() on error in
+      i3c_master_register"
+    - ovl: fix missing revert_creds() on error path
+    - usb: gadget: pch_udc: Revert d3cb25a12138 completely
+    - memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
+    - ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
+    - serial: stm32: fix incorrect characters on console
+    - serial: stm32: fix tx_empty condition
+    - usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS
+    - regmap: set debugfs_name to NULL after it is freed
+    - mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe()
+    - mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
+    - mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
+    - mtd: rawnand: qcom: Return actual error code instead of -ENODEV
+    - arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges'
+    - spi: stm32: drop devres version of spi_register_master
+    - arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding
+    - x86/microcode: Check for offline CPUs before requesting new microcode
+    - usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
+    - usb: gadget: pch_udc: Check if driver is present before calling ->setup()
+    - usb: gadget: pch_udc: Check for DMA mapping error
+    - crypto: qat - don't release uninitialized resources
+    - crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
+    - fotg210-udc: Fix DMA on EP0 for length > max packet size
+    - fotg210-udc: Fix EP0 IN requests bigger than two packets
+    - fotg210-udc: Remove a dubious condition leading to fotg210_done
+    - fotg210-udc: Mask GRP2 interrupts we don't handle
+    - fotg210-udc: Don't DMA more than the buffer can take
+    - fotg210-udc: Complete OUT requests on short packets
+    - mtd: require write permissions for locking and badblock ioctls
+    - bus: qcom: Put child node before return
+    - soundwire: bus: Fix device found flag correctly
+    - phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y,
+      unconditionally
+    - crypto: qat - fix error path in adf_isr_resource_alloc()
+    - usb: gadget: aspeed: fix dma map failure
+    - USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR()
+    - memory: pl353: fix mask of ECC page_size config register
+    - soundwire: stream: fix memory leak in stream config error path
+    - m68k: mvme147,mvme16x: Don't wipe PCC timer config bits
+    - mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
+    - irqchip/gic-v3: Fix OF_BAD_ADDR error handling
+    - staging: rtl8192u: Fix potential infinite loop
+    - staging: greybus: uart: fix unprivileged TIOCCSERIAL
+    - PM / devfreq: Use more accurate returned new_freq as resume_freq
+    - spi: Fix use-after-free with devm_spi_alloc_*
+    - soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
+    - soc: qcom: mdt_loader: Detect truncated read of segments
+    - ACPI: CPPC: Replace cppc_attr with kobj_attribute
+    - crypto: qat - Fix a double free in adf_create_ring
+    - cpufreq: armada-37xx: Fix setting TBG parent for load levels
+    - clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock
+    - cpufreq: armada-37xx: Fix the AVS value for load L1
+    - clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz
+    - clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0
+    - cpufreq: armada-37xx: Fix driver cleanup when registration failed
+    - cpufreq: armada-37xx: Fix determining base CPU frequency
+    - spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware()
+    - usb: gadget: r8a66597: Add missing null check on return from
+      platform_get_resource
+    - USB: cdc-acm: fix unprivileged TIOCCSERIAL
+    - USB: cdc-acm: fix TIOCGSERIAL implementation
+    - tty: fix return value for unsupported ioctls
+    - serial: core: return early on unsupported ioctls
+    - firmware: qcom-scm: Fix QCOM_SCM configuration
+    - node: fix device cleanups in error handling code
+    - usbip: vudc: fix missing unlock on error in usbip_sockfd_store()
+    - platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with
+      critclk_systems DMI table
+    - x86/platform/uv: Fix !KEXEC build failure
+    - usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
+    - usb: dwc2: Fix hibernation between host and device modes.
+    - ttyprintk: Add TTY hangup callback.
+    - xen-blkback: fix compatibility bug with single page rings
+    - soc: aspeed: fix a ternary sign expansion bug
+    - media: vivid: fix assignment of dev->fbuf_out_flags
+    - media: omap4iss: return error code when omap4iss_get() failed
+    - media: aspeed: fix clock handling logic
+    - media: platform: sunxi: sun6i-csi: fix error return code of
+      sun6i_video_start_streaming()
+    - media: m88rs6000t: avoid potential out-of-bounds reads on arrays
+    - drm/amdkfd: fix build error with AMD_IOMMU_V2=m
+    - x86/kprobes: Fix to check non boostable prefixes correctly
+    - pata_arasan_cf: fix IRQ check
+    - pata_ipx4xx_cf: fix IRQ check
+    - sata_mv: add IRQ checks
+    - ata: libahci_platform: fix IRQ check
+    - nvme-tcp: block BH in sk state_change sk callback
+    - nvmet-tcp: fix incorrect locking in state_change sk callback
+    - nvme: retrigger ANA log update if group descriptor isn't found
+    - media: v4l2-ctrls.c: fix race condition in hdl->requests list
+    - vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer
+    - clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback
+    - clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
+    - clk: uniphier: Fix potential infinite loop
+    - scsi: hisi_sas: Fix IRQ checks
+    - scsi: jazz_esp: Add IRQ check
+    - scsi: sun3x_esp: Add IRQ check
+    - scsi: sni_53c710: Add IRQ check
+    - scsi: ibmvfc: Fix invalid state machine BUG_ON()
+    - mfd: stm32-timers: Avoid clearing auto reload register
+    - nvme-pci: don't simple map sgl when sgls are disabled
+    - HSI: core: fix resource leaks in hsi_add_client_from_dt()
+    - x86/events/amd/iommu: Fix sysfs type mismatch
+    - sched/debug: Fix cgroup_path[] serialization
+    - drivers/block/null_blk/main: Fix a double free in null_init.
+    - HID: plantronics: Workaround for double volume key presses
+    - perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of
+      printed chars
+    - net: lapbether: Prevent racing when checking whether the netif is running
+    - powerpc/fadump: Mark fadump_calculate_reserve_size as __init
+    - powerpc/prom: Mark identical_pvr_fixup as __init
+    - inet: use bigger hash table for IP ID generation
+    - powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration
+    - ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
+    - bug: Remove redundant condition check in report_bug
+    - nfc: pn533: prevent potential memory corruption
+    - net: hns3: Limiting the scope of vector_ring_chain variable
+    - mips: bmips: fix syscon-reboot nodes
+    - ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
+    - ASoC: simple-card: fix possible uninitialized single_cpu local variable
+    - liquidio: Fix unintented sign extension of a left shift of a u16
+    - powerpc/64s: Fix pte update for kernel memory on radix
+    - powerpc/perf: Fix PMU constraint check for EBB events
+    - powerpc: iommu: fix build when neither PCI or IBMVIO is set
+    - mac80211: bail out if cipher schemes are invalid
+    - mt7601u: fix always true expression
+    - KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit
+    - RDMA/qedr: Fix error return code in qedr_iw_connect()
+    - IB/hfi1: Fix error return code in parse_platform_config()
+    - cxgb4: Fix unintentional sign extension issues
+    - net: thunderx: Fix unintentional sign extension issue
+    - RDMA/srpt: Fix error return code in srpt_cm_req_recv()
+    - i2c: img-scb: fix reference leak when pm_runtime_get_sync fails
+    - i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails
+    - i2c: omap: fix reference leak when pm_runtime_get_sync fails
+    - i2c: sprd: fix reference leak when pm_runtime_get_sync fails
+    - i2c: cadence: add IRQ check
+    - i2c: emev2: add IRQ check
+    - i2c: jz4780: add IRQ check
+    - i2c: sh7760: add IRQ check
+    - powerpc/xive: Fix xmon command "dxi"
+    - ASoC: ak5558: correct reset polarity
+    - drm/i915/gvt: Fix error code in intel_gvt_init_device()
+    - perf beauty: Fix fsconfig generator
+    - MIPS: pci-legacy: stop using of_pci_range_to_resource
+    - powerpc/pseries: extract host bridge from pci_bus prior to bus removal
+    - rtlwifi: 8821ae: upgrade PHY and RF parameters
+    - i2c: sh7760: fix IRQ error path
+    - mwl8k: Fix a double Free in mwl8k_probe_hw
+    - vsock/vmci: log once the failed queue pair allocation
+    - gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check
+    - RDMA/cxgb4: add missing qpid increment
+    - RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
+    - ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
+    - net: davinci_emac: Fix incorrect masking of tx and rx error channel
+    - net: renesas: ravb: Fix a stuck issue when a lot of frames are received
+    - net: phy: intel-xway: enable integrated led functions
+    - ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
+    - ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock
+    - powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
+    - bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
+    - ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for
+      RTL8211E
+    - arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for
+      RTL8211E
+    - net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb
+    - selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static
+    - bnxt_en: Fix RX consumer index logic in the error path.
+    - net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
+    - RDMA/siw: Fix a use after free in siw_alloc_mr
+    - RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res
+    - net: bridge: mcast: fix broken length + header check for MRDv6 Adv.
+    - net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
+    - kfifo: fix ternary sign extension bugs
+    - mm/sparse: add the missing sparse_buffer_fini() in error branch
+    - mm/memory-failure: unnecessary amount of unmapping
+    - net: Only allow init netns to set default tcp cong to a restricted algo
+    - smp: Fix smp_call_function_single_async prototype
+    - Revert "net/sctp: fix race condition in sctp_destroy_sock"
+    - sctp: delay auto_asconf init until binding the first addr
+    - Revert "of/fdt: Make sure no-map does not remove already reserved regions"
+    - Revert "fdt: Properly handle "no-map" field in the memory region"
+    - Linux 5.4.119
+  * seccomp_bpf:syscall_faked from kselftests fail on s390x (LP: #1928522)
+    - selftests/seccomp: s390 shares the syscall and return value register
+  * Can't detect intel wifi 6235 (LP: #1920180)
+    - SAUCE: iwlwifi: add new pci id for 6235
+  * Mark kprobe_args_user.tc in kselftest/ftrace as unsupported (LP: #1929527)
+    - selftests/ftrace: Return unsupported for the unconfigured features
+  * pmtu.sh from net in ubuntu_kernel_selftests failed with no error message
+    (LP: #1887661)
+    - selftests: pmtu.sh: use $ksft_skip for skipped return code
+  * alsa/sof: make sof driver work in the case of without i915 (focal kernel)
+    (LP: #1927672)
+    - SAUCE: ASoC: SOF: Intel: hda: move the probe_bus ahead of creation of mach
+      device
+  * Fix kdump failures (LP: #1927518)
+    - video: hyperv_fb: Add ratelimit on error message
+    - Drivers: hv: vmbus: Increase wait time for VMbus unload
+    - Drivers: hv: vmbus: Initialize unload_event statically
+  * Ubuntu 20.04 - 'Support flow counters offset for bulk counters'
+    (LP: #1922494)
+    - IB/mlx5: Support flow counters offset for bulk counters
+  * Focal update: v5.4.118 upstream stable release (LP: #1928825)
+    - s390/disassembler: increase ebpf disasm buffer size
+    - ACPI: custom_method: fix potential use-after-free issue
+    - ACPI: custom_method: fix a possible memory leak
+    - ftrace: Handle commands when closing set_ftrace_filter file
+    - ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
+    - arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
+    - arm64: dts: mt8173: fix property typo of 'phys' in dsi node
+    - ecryptfs: fix kernel panic with null dev_name
+    - mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
+    - mtd: rawnand: atmel: Update ecc_stats.corrected counter
+    - erofs: add unsupported inode i_format check
+    - spi: spi-ti-qspi: Free DMA resources
+    - scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
+    - scsi: mpt3sas: Block PCI config access from userspace during reset
+    - mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe()
+    - mmc: uniphier-sd: Fix a resource leak in the remove function
+    - mmc: sdhci: Check for reset prior to DMA address unmap
+    - mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based
+      controllers
+    - mmc: block: Update ext_csd.cache_ctrl if it was written
+    - mmc: block: Issue a cache flush only when it's enabled
+    - mmc: core: Do a power cycle when the CMD11 fails
+    - mmc: core: Set read only for SD cards with permanent write protect bit
+    - mmc: core: Fix hanging on I/O during system suspend for removable cards
+    - modules: mark ref_module static
+    - modules: mark find_symbol static
+    - modules: mark each_symbol_section static
+    - modules: unexport __module_text_address
+    - modules: unexport __module_address
+    - modules: rename the licence field in struct symsearch to license
+    - modules: return licensing information from find_symbol
+    - modules: inherit TAINT_PROPRIETARY_MODULE
+    - irqchip/gic-v3: Do not enable irqs when handling spurious interrups
+    - cifs: Return correct error code from smb2_get_enc_key
+    - btrfs: fix metadata extent leak after failure to create subvolume
+    - intel_th: pci: Add Rocket Lake CPU support
+    - posix-timers: Preserve return value in clock_adjtime32()
+    - fbdev: zero-fill colormap in fbcmap.c
+    - bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
+    - staging: wimax/i2400m: fix byte-order issue
+    - spi: ath79: always call chipselect function
+    - spi: ath79: remove spi-master setup and cleanup assignment
+    - crypto: api - check for ERR pointers in crypto_destroy_tfm()
+    - crypto: qat - fix unmap invalid dma address
+    - usb: gadget: uvc: add bInterval checking for HS mode
+    - usb: webcam: Invalid size of Processing Unit Descriptor
+    - genirq/matrix: Prevent allocation counter corruption
+    - usb: gadget: f_uac2: validate input parameters
+    - usb: gadget: f_uac1: validate input parameters
+    - usb: dwc3: gadget: Ignore EP queue requests during bus reset
+    - usb: xhci: Fix port minor revision
+    - PCI: PM: Do not read power state in pci_enable_device_flags()
+    - x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
+    - tee: optee: do not check memref size on return from Secure World
+    - perf/arm_pmu_platform: Fix error handling
+    - usb: xhci-mtk: support quirk to disable usb2 lpm
+    - xhci: check control context is valid before dereferencing it.
+    - xhci: fix potential array out of bounds with several interrupters
+    - spi: dln2: Fix reference leak to master
+    - spi: omap-100k: Fix reference leak to master
+    - spi: qup: fix PM reference leak in spi_qup_remove()
+    - usb: musb: fix PM reference leak in musb_irq_work()
+    - usb: core: hub: Fix PM reference leak in usb_port_resume()
+    - tty: n_gsm: check error while registering tty devices
+    - intel_th: Consistency and off-by-one fix
+    - phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
+    - crypto: stm32/hash - Fix PM reference leak on stm32-hash.c
+    - crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c
+    - crypto: omap-aes - Fix PM reference leak on omap-aes.c
+    - platform/x86: intel_pmc_core: Don't use global pmcdev in quirks
+    - btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
+    - drm: Added orientation quirk for OneGX1 Pro
+    - drm/qxl: release shadow on shutdown
+    - drm/amd/display: Check for DSC support instead of ASIC revision
+    - drm/amd/display: Don't optimize bandwidth before disabling planes
+    - scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
+    - scsi: lpfc: Fix pt2pt connection does not recover after LOGO
+    - scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
+    - media: ite-cir: check for receive overflow
+    - media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB
+    - media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt()
+    - power: supply: bq27xxx: fix power_avg for newer ICs
+    - extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has
+      been unplugged
+    - extcon: arizona: Fix various races on driver unbind
+    - media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
+    - media: gspca/sq905.c: fix uninitialized variable
+    - power: supply: Use IRQF_ONESHOT
+    - drm/amdgpu: mask the xgmi number of hops reported from psp to kfd
+    - drm/amdkfd: Fix UBSAN shift-out-of-bounds warning
+    - drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
+    - drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool'
+    - drm/amd/display: fix dml prefetch validation
+    - scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
+    - drm/vkms: fix misuse of WARN_ON
+    - scsi: qla2xxx: Fix use after free in bsg
+    - mmc: sdhci-pci: Add PCI IDs for Intel LKF
+    - ata: ahci: Disable SXS for Hisilicon Kunpeng920
+    - scsi: smartpqi: Correct request leakage during reset operations
+    - scsi: smartpqi: Add new PCI IDs
+    - scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
+    - media: em28xx: fix memory leak
+    - media: vivid: update EDID
+    - clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
+    - power: supply: generic-adc-battery: fix possible use-after-free in
+      gab_remove()
+    - power: supply: s3c_adc_battery: fix possible use-after-free in
+      s3c_adc_bat_remove()
+    - media: tc358743: fix possible use-after-free in tc358743_remove()
+    - media: adv7604: fix possible use-after-free in adv76xx_remove()
+    - media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
+    - media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove()
+    - media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
+    - media: platform: sti: Fix runtime PM imbalance in regs_show
+    - media: dvb-usb: fix memory leak in dvb_usb_adapter_init
+    - media: gscpa/stv06xx: fix memory leak
+    - sched/fair: Ignore percpu threads for imbalance pulls
+    - drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
+    - drm/msm/mdp5: Do not multiply vclk line count by 100
+    - drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug
+    - amdgpu: avoid incorrect %hu format string
+    - drm/amdgpu: fix NULL pointer dereference
+    - scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO
+      response
+    - scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode
+    - scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
+    - mfd: arizona: Fix rumtime PM imbalance on error
+    - scsi: libfc: Fix a format specifier
+    - s390/archrandom: add parameter check for s390_arch_random_generate
+    - ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
+    - ALSA: hda/conexant: Re-order CX5066 quirk table entries
+    - ALSA: sb: Fix two use after free in snd_sb_qsound_build
+    - ALSA: usb-audio: Explicitly set up the clock selector
+    - ALSA: usb-audio: More constifications
+    - ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset
+      PC 8
+    - ALSA: hda/realtek: GA503 use same quirks as GA401
+    - ALSA: hda/realtek: fix mic boost on Intel NUC 8
+    - ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops
+    - ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
+    - btrfs: fix race when picking most recent mod log operation for an old root
+    - arm64/vdso: Discard .note.gnu.property sections in vDSO
+    - Makefile: Move -Wno-unused-but-set-variable out of GCC only block
+    - virtiofs: fix memory leak in virtio_fs_probe()
+    - ubifs: Only check replay with inode type to judge if inode linked
+    - f2fs: fix to avoid out-of-bounds memory access
+    - mlxsw: spectrum_mr: Update egress RIF list before route's action
+    - openvswitch: fix stack OOB read while fragmenting IPv4 packets
+    - ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
+    - NFS: Don't discard pNFS layout segments that are marked for return
+    - NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
+    - Input: ili210x - add missing negation for touch indication on ili210x
+    - jffs2: Fix kasan slab-out-of-bounds problem
+    - powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
+    - powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
+    - intel_th: pci: Add Alder Lake-M support
+    - tpm: efi: Use local variable for calculating final log size
+    - tpm: vtpm_proxy: Avoid reading host log when using a virtual device
+    - crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
+    - md/raid1: properly indicate failure when ending a failed write request
+    - dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload
+      sequences
+    - fuse: fix write deadlock
+    - security: commoncap: fix -Wstringop-overread warning
+    - Fix misc new gcc warnings
+    - jffs2: check the validity of dstlen in jffs2_zlib_compress()
+    - Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
+    - x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
+    - kbuild: update config_data.gz only when the content of .config is changed
+    - ext4: fix check to prevent false positive report of incorrect used inodes
+    - ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
+    - ext4: fix error code in ext4_commit_super
+    - media: dvbdev: Fix memory leak in dvb_media_device_free()
+    - media: dvb-usb: Fix use-after-free access
+    - media: dvb-usb: Fix memory leak at error in dvb_usb_device_init()
+    - media: staging/intel-ipu3: Fix memory leak in imu_fmt
+    - media: staging/intel-ipu3: Fix set_fmt error handling
+    - media: staging/intel-ipu3: Fix race condition during set_fmt
+    - usb: gadget: dummy_hcd: fix gpf in gadget_setup
+    - usb: gadget: Fix double free of device descriptor pointers
+    - usb: gadget/function/f_fs string table fix for multiple languages
+    - usb: dwc3: gadget: Fix START_TRANSFER link state check
+    - usb: dwc2: Fix session request interrupt handler
+    - tty: fix memory leak in vc_deallocate
+    - rsi: Use resume_noirq for SDIO
+    - tracing: Map all PIDs to command lines
+    - tracing: Restructure trace_clock_global() to never block
+    - dm persistent data: packed struct should have an aligned() attribute too
+    - dm space map common: fix division bug in sm_ll_find_free_block()
+    - dm integrity: fix missing goto in bitmap_flush_interval error handling
+    - dm rq: fix double free of blk_mq_tag_set in dev remove after table load
+      fails
+    - Linux 5.4.118
+  * Focal update: v5.4.117 upstream stable release (LP: #1928823)
+    - mips: Do not include hi and lo in clobber list for R6
+    - ACPI: tables: x86: Reserve memory occupied by ACPI tables
+    - ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
+    - net: usb: ax88179_178a: initialize local variables before use
+    - igb: Enable RSS for Intel I211 Ethernet Controller
+    - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
+    - bpf: Fix masking negation logic upon negative dst register
+    - bpf: Fix leakage of uninitialized bpf stack under speculation
+    - avoid __memcat_p link failure
+    - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
+    - perf data: Fix error return code in perf_data__create_dir()
+    - perf ftrace: Fix access to pid in array when setting a pid filter
+    - ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
+    - USB: Add reset-resume quirk for WD19's Realtek Hub
+    - platform/x86: thinkpad_acpi: Correct thermal sensor allocation
+    - scsi: ufs: Unlock on a couple error paths
+    - ovl: allow upperdir inside lowerdir
+    - perf/core: Fix unconditional security_locked_down() call
+    - vfio: Depend on MMU
+    - Linux 5.4.117
+  * r8152 tx status -71 (LP: #1922651) // Focal update: v5.4.117 upstream stable
+    release (LP: #1928823)
+    - USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
+  * Focal update: v5.4.116 upstream stable release (LP: #1928821)
+    - bpf: Move off_reg into sanitize_ptr_alu
+    - bpf: Ensure off_reg has no mixed signed bounds for all types
+    - bpf: Rework ptr_limit into alu_limit and add common error path
+    - bpf: Improve verifier error messages for users
+    - bpf: Refactor and streamline bounds check into helper
+    - bpf: Move sanitize_val_alu out of op switch
+    - bpf: Tighten speculative pointer arithmetic mask
+    - bpf: Update selftests to reflect new error states
+    - Linux 5.4.116
+  * Focal update: v5.4.115 upstream stable release (LP: #1927997)
+    - gpio: omap: Save and restore sysconfig
+    - pinctrl: lewisburg: Update number of pins in community
+    - arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS
+    - perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
+    - perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[]
+    - perf auxtrace: Fix potential NULL pointer dereference
+    - HID: google: add don USB id
+    - HID: alps: fix error return code in alps_input_configured()
+    - HID: wacom: Assign boolean values to a bool variable
+    - ARM: dts: Fix swapped mmc order for omap3
+    - net: geneve: check skb is large enough for IPv4/IPv6 header
+    - s390/entry: save the caller of psw_idle
+    - xen-netback: Check for hotplug-status existence before watching
+    - cavium/liquidio: Fix duplicate argument
+    - csky: change a Kconfig symbol name to fix e1000 build error
+    - ia64: fix discontig.c section mismatches
+    - ia64: tools: remove duplicate definition of ia64_mf() on ia64
+    - x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access
+    - net: hso: fix NULL-deref on disconnect regression
+    - USB: CDC-ACM: fix poison/unpoison imbalance
+    - Linux 5.4.115
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 17 May 2022 23:22:43 +0800
+
+linux-imx (5.4.0-1013.13) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_OPTEE=y by default on armhf too
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 22 Oct 2021 01:24:50 +0800
+
+linux-imx (5.4.0-1012.12) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix uart3 pinmux functions
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix pinconf for led shutdown & led
+      alarm clear gpios
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: configure uart1 dte mode for
+      RS485/touchflakes
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: add support for FRAM/SPI-NOR flash
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: add support for gpio-wdog
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: enable support for flexcan1
+    - [Config] CONFIG_ADIN_PHY=m
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: uart4 rs485 mode at boot by default
+    - SAUCE: mtd: spi-nor: add support for for Fujitsu MB85RQ4ML FRAM
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix pinmux conf for i2c4 bus
+    - [Config] updateconfigs for NXP/IMX controllers, MTD NOR support built-in
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: switch uart2 to rs485 port
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: stop passing uart2 as boot console
+      output
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: support push-button on led front board
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix bt & wifi power regulator
+      definitions
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add spi entries for common module p1/p2
+      & lte
+    - SAUCE: arm64: dts: imx8mm-venice-gw7902: set external rtc as default
+    - SAUCE: arm64: dts: imx8mn-venice-gw7902: set external rtc as default
+    - SAUCE: arm64: dts: imx8m*-venice-gw7902: add reserved memory areas for optee
+    - SAUCE: arm64: dts: imx8m*-venice-gw7902: add firmware entry for optee-tz
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: don't define gpio-hogs for uart-sel
+      pins
+
+  * Miscellaneous upstream changes
+    - can: dev: can_restart(): remove unused code
+    - can: rx-offload: fix long lines
+    - can: rx-offload: can_rx_offload_compare(): fix typo
+    - can: rx-offload: can_rx_offload_irq_offload_timestamp(): don't use
+      assignment in if condition
+    - can: rx-offload: can_rx_offload_reset(): remove no-op function
+    - can: rx-offload: Prepare for CAN FD support
+    - can: flexcan: use devm_platform_ioremap_resource() to simplify code
+    - can: flexcan: flexcan_irq_state(): only read timestamp if needed
+    - can: flexcan: rename macro FLEXCAN_IFLAG_MB() -> FLEXCAN_IFLAG2_MB()
+    - can: flexcan: flexcan_irq(): rename variable reg_iflag -> reg_iflag_rx
+    - can: flexcan: rename struct flexcan_priv::reg_imask{1,2}_default to
+      rx_mask{1,2}
+    - can: flexcan: remove TX mailbox bit from struct flexcan_priv::rx_mask{1,2}
+    - can: flexcan: convert struct flexcan_priv::rx_mask{1,2} to rx_mask
+    - can: flexcan: introduce struct flexcan_priv::tx_mask and make use of it
+    - can: flexcan: flexcan_read_reg_iflag_rx(): optimize reading
+    - can: flexcan: flexcan_irq(): add support for TX mailbox in iflag1
+    - can: flexcan: flexcan_mailbox_read() make use of flexcan_write64() to mark
+      the mailbox as read
+    - can: flexcan: fix spelling mistake "reserverd" -> "reserved"
+    - can: flexcan: sort include files alphabetically
+    - can: flexcan: flexcan_exit_stop_mode(): remove stray empty line
+    - can: flexcan: more register names
+    - can: flexcan: struct flexcan_regs: document registers not affected by soft
+      reset
+    - can: flexcan: quirks: get rid of long lines
+    - can: flexcan: Ack wakeup interrupt separately
+    - can: flexcan: flexcan_probe(): make regulator xceiver optional
+    - can: flexcan: Add check for transceiver maximum bitrate limitation
+    - can: flexcan: add correctable errors correction when HW supports ECC
+    - can: flexcan: add LPSR mode support
+    - can: flexcan: flexcan_set_bittiming(): move setup of CAN-2.0 bitiming into
+      separate function
+    - can: flexcan: use struct canfd_frame for CAN classic frame
+    - can: flexcan: add CAN-FD mode support
+    - can: flexcan: add ISO CAN FD feature support
+    - can: flexcan: add CAN FD BRS support
+    - can: flexcan: add Transceiver Delay Compensation support
+    - can: flexcan: add imx8qm support
+    - can: flexcan: add lx2160ar1 support
+    - can: flexcan: initialize all flexcan memory for ECC function
+    - can: flexcan: add flexcan driver for i.MX8MP
+    - can: flexcan: disable runtime PM if register flexcandev failed
+    - can: flexcan: remove ack_grp and ack_bit handling from driver
+    - can: flexcan: flexcan_setup_stop_mode(): add missing "req_bit" to stop mode
+      property comment
+    - serial: sc16is7xx: Replace zero-length array with flexible-array member
+    - sc16is7xx: Always use falling edge IRQ
+    - sc16is7xx: Use threaded IRQ
+    - sc16is7xx: Allow sharing the IRQ line
+    - sc16is7xx: Read the LSR register for basic device presence check
+    - sc16is7xx: Add flag to activate IrDA mode
+    - sc16is7xx: Set iobase to device index
+    - sc16is7xx: Defer probe if device read fails
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Thu, 21 Oct 2021 14:31:04 +0800
+
+linux-imx (5.4.0-1011.11) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: reserve memory for global dma usage
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: adjust ocram memory sections for optee-
+      lpm
+    - SAUCE: MLK-11488-1 driver: char: sema4: add sema4 support
+    - SAUCE: MLK-11488-2 arm: imx: add HAVE_IMX_AMP for imx6sx
+    - SAUCE: MLK-11488-4 arm: dts: imx6sx: add sema4 support
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add qspi restore node for
+      suspend/resume when M4 is enabled
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add mailbox support
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: Add spi-[tx/rx]-bus-width for the FSL
+      QSPI controller
+    - [Config] CONFIG_IMX_SEMA4=y
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix simple-audio-card widget names
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable pixel pipeline module
+    - [Config] FLEXSPI, QUADSPI drivers as modules
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: OV5640 camera module is on i2c4
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: use unique labels instead of colour-ids
+      for gpio-leds
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix gpio-keys pinconfig defs
+    - SAUCE: media: mipi csi: add mixel's mipi csi driver
+    - SAUCE: media: mipi csi: add samsung's mipi csi support
+    - SAUCE: media: mipi csi: accommodate the driver to framework's change
+    - SAUCE: mxc-jpeg: Add v4l2 driver for i.MX8 CAST IP JPEG Encoder/Decoder
+    - SAUCE: mxc-jpeg: Add support for multi power domain
+    - SAUCE: mxc-jpeg: Build mxc-jpeg as module, by default
+    - SAUCE: media: mxc-jpeg: jpeg: Replace stracpy with strscpy
+    - SAUCE: mxc-jpeg: Fix warning at build, for EXPORT_SYMBOL on static variable
+    - SAUCE: MLK-22835: mxc-jpeg: jpeg decoder stuck due to race condition
+    - SAUCE: media: IPU: add IPU csi and prp driver
+    - SAUCE: media: v4l2: add int device framework for backward support
+    - SAUCE: media: capture: add mxc v4l2 capture driver
+    - SAUCE: media: add Kconfig and Makefile for the capture driver
+    - SAUCE: media: add adv7180 video decoder driver
+    - SAUCE: media: v4l2 capture: add v4l2 capture driver based on csi
+    - SAUCE: media: mx6s_capture: accommodate the driver to framework's change
+    - SAUCE: media: v4l2: vadc: Enable vadc driver
+    - SAUCE: media: capture: add ov5640 mipi and parallel driver
+    - SAUCE: media: capture: add ov5640 mipi and parallel driver of subdev version
+    - SAUCE: media: ov5640: fix kernel warning when no camera is plugged in
+    - SAUCE: media: ov5640 mipi: fix kernel warning when no camera is plugged in
+    - SAUCE: media: ov5640 mipi v2: fix kernel warning when no camera is plugged
+      in
+    - SAUCE: media: ov5640 v2: fix kernel warning when no camera is plugged in
+    - SAUCE: media: platform: mxc: capture: ov5640: Disable regulators in
+      ov5640_remove()
+    - SAUCE: LF-237 media: ov5640_mipi: fix regulator dump when i2c access for
+      camera fail
+    - SAUCE: media: platform: mxc: output: Forward IPUv3 V4L2 output driver from
+      imx_4.19.y
+    - SAUCE: media: v4l2: add pxp_v4l2 driver
+    - SAUCE: LF-135 media: mx6s_capture: fix kernel dump when start two instances
+      of capture
+    - SAUCE: LF-300-1 media: mipi csi: make the csi clock usecount to 0 when it's
+      not used
+    - SAUCE: LF-300-2 media: mipi csi: make the csi clock usecount to 0 when it's
+      not used
+    - SAUCE: LF-482 media: mipi csi: fix build warning
+    - SAUCE: MLK-23712: media: capture: add get/set_register callback
+    - SAUCE: LF-1599 media: platform: mxc_vout: Do not check 's->r.width/height<0'
+      in ->vidioc_s_selection
+    - SAUCE: LF-1561 check return value of v4l2_async_notifier_add_subdev
+    - SAUCE: MLK-24261 media: mipi csi: fix kernel dump when do module removal
+    - SAUCE: MLK-24389 media: mx6s_capture: use vb2_fop_mmap instead
+    - SAUCE: LF-1564 media: capture: check return value of devm_kzalloc against
+      NULL
+    - SAUCE: LF-1711 media: mipi csi: check return value of
+      v4l2_async_notifier_add_subdev
+    - SAUCE: LF-1583: mxc-jpeg: Fix possible null pointer dereference
+    - SAUCE: LF-1571: mxc-jpeg: Fix result independent of operands
+    - SAUCE: media: staging: csi: add mipi csi driver support for IMX8
+    - SAUCE: staging: media: imx: add video ops for imx8 mipi csi subdev
+    - SAUCE: staging: media: imx: add V4L2 subdev driver for MIPI CSI2 of Samsung
+    - SAUCE: media: staging: imx: add isi driver support for imx8qm/qxp
+    - SAUCE: MLK-21985-8 media: isi: fix build for next 20190607 upgrade
+    - SAUCE: media: isi: fix boot warning by intialize device_caps
+    - SAUCE: media: staging: imx: add isi core driver support for imx8qm/qxp
+    - SAUCE: media: staging: imx: add isi capture driver support for imx8qm/qxp
+    - SAUCE: media: staging: imx: add V4L2 memory to memory driver for ISI of
+      imx8qxp/qm
+    - SAUCE: staging: media: imx: enable ISI for imx8mn platform
+    - SAUCE: staging: media: imx: add g_parm/s_parm for imx8 capture device
+    - SAUCE: media: staging: imx: add driver for GMSL MAX9286 device
+    - SAUCE: LF-116: staging: media: imx: fix no enum_frameinterval result issue
+    - SAUCE: media: staging: imx: add media device driver support for IMX8
+    - SAUCE: staging: media: imx: add parallel capture interface driver for
+      imx8qxp
+    - SAUCE: staging: media: imx: add video ops for imx8 parallel subdev
+    - SAUCE: LF-101: staging: media: imx: fix XR24 format R and B are opposite
+      issue
+    - SAUCE: LF-356: media: imx8 isi: fix buffer active bit change for QXP C0
+    - SAUCE: LF-364: media: isi: correct capabilities for ISI m2m video device
+    - SAUCE: LF-79: staging: media: imx: replace s_parm/g_parm with
+      s/g_frame_interval
+    - SAUCE: LF-433: staging: media: imx: refine mipi csi2 driver for Samsung
+    - SAUCE: LF-467: media: imx: isi: fix some typo issues
+    - SAUCE: LF-510: staging: media: imx: add s/g_frame_interval support for
+      max9286
+    - SAUCE: LF-486: staging: media: imx: fix uninitialized variable
+    - SAUCE: LF-221: staging: media: imx: fix potential memory out of bound
+    - SAUCE: LF-762: media: correct multi instance management for CSI camera
+    - SAUCE: MLK-23227-3: media: imx: add ISI IER register as platform data
+    - SAUCE: MLK-23227-4: media: imx: add input image source port selection as
+      platform data
+    - SAUCE: MLK-23227-5: media: imx: refine soc version match method for ISI
+    - SAUCE: MLK-23227-6: media: imx: add driver support for ISI of i.MX8MP
+    - SAUCE: MLK-23227-7: media: imx: add multi instance for MIPI CSI driver
+    - SAUCE: MLK-23227-8: media: imx: remove CSI PHY clock operation
+    - SAUCE: MLK-23227-9: media: imx: use no-reset-control property in ISI of
+      i.MX8MP
+    - SAUCE: MLK-23227-11: media: imx: set panic threshold in ISI
+    - SAUCE: MLK-23358-1: media: imx8: fix dereferencing null pointer issue
+    - SAUCE: MLK-23358-2: media: imx: fix variable uninitialized issue
+    - SAUCE: LF-1089: media: imx: fix 1024x768@15 camera issue for imx8qm and qxp
+    - SAUCE: MLK-23578-1: media: m2m: enable ISI m2m feature for i.MX865
+    - SAUCE: MLK-23750-2: media: csi: fix ISI_0, CSI_0 can't enter lp when suspend
+    - SAUCE: MLK-23750-3: media: pi: fix ISI_0, PI_0 can't enter lp when suspend
+    - SAUCE: MLK-23860: media: imx: improve calculation for csi RXHS_SETTLE
+      parameter
+    - SAUCE: MLK-24375-01: mixel: csi2: detach power domain when driver removed
+    - SAUCE: MLK-24375-02: imx: pi: detach power domain when pi drvier removed
+    - SAUCE: MLK-24376: isi: core: depopulate child device when parent driver
+      removed
+    - SAUCE: LF-1409-01: media: imx: isi: export functions in imx8-isi-hw.c file
+    - SAUCE: LF-1409-02: media: isi: cap: export mxc_isi_cap_frame_write_done
+    - SAUCE: LF-1409-03: media: isi: m2m: export mxc_isi_m2m_frame_write_done
+    - SAUCE: LF-1409-04: media: isi: move two methods in isi core driver to hw
+      driver
+    - SAUCE: LF-1409-05: media: isi: config ISI HW driver as a separate driver
+    - SAUCE: LF-1409-06: media: isi: cap: config capture driver as tristate
+    - SAUCE: LF-1409-07: media: isi: m2m: config mem2mem driver as tristate
+    - SAUCE: LF-1409-08: media: isi: core: config ISI core driver as tristate
+    - SAUCE: MLK-24494-1: staging: media: csi: reuse csi driver for isp
+    - SAUCE: MLK-24494-4: staging: media: imx8: work around to support isi + isp
+      dual camera
+    - SAUCE: MLK-24514-1: staging: media: samsung csi: print message when fail to
+      get gpr
+    - SAUCE: MLK-24696: media: csi: return error when no command support
+    - SAUCE: MLK-24745: media: isi: fix pyeiq can't detect camera device
+    - SAUCE: MLK-24746: media: imx8: return directly for independent entity
+    - SAUCE: MLK-24981: media: isi: correct ISI chain buffer mask value
+    - SAUCE: MLK-24982: media: isi: disable ISI channel clock after stream off
+    - SAUCE: MLK-24983-01: media: isi: remove redundant code for clean the list
+    - SAUCE: MLK-24983-02: isi: use list_del_init instead of list_del
+    - SAUCE: MLK-24984: isi: use spin_lock_irqsave in irq handler to disable
+      interrupt
+    - SAUCE: MLK-24986: media: isi: add 4K support for iMX8MN ISI
+    - SAUCE: MLK-24987: media: isi: align discard buffer size to page size
+    - SAUCE: MLK-25000-1: media: csi: Enable V4L2_SUBDEV_FL_HAS_DEVNODE flag
+    - SAUCE: MLK-25027-2: media: isi: add workaround for iMX865 ISI to support 4K
+    - SAUCE: MLK-25027-3: media: isi: remove "fsl,chain_buf" property parse
+    - SAUCE: MLK-25027-4: media: isi: remove 4K feature for ISI channel1
+    - SAUCE: MLK-25039-01: media: isi: m2m: use V4L2 RGBA32 format define in V4L2
+      framework
+    - SAUCE: MLK-25041: media: imx8: media-dev: return if media device has been
+      registered
+    - SAUCE: LF-2474: media: samsung csi: fix string overflow issue
+    - SAUCE: MLK-9662 [V4L2 Capture] Revert patch to re-add support for
+      _G_CHIP_IDENT
+    - SAUCE: MLK-21770: media: v4l: Add packed YUV444 24bpp pixel format
+    - SAUCE: MLK-24477-1:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: enable color
+      description in vui
+    - SAUCE: media: mx6s_capture: remove imx-busfreq support
+    - SAUCE: MMFMWK-7549 [media] videobuf: store field and timestamp when queue
+      USERPTR buffer
+    - SAUCE: media: v4l2: export video_usercopy function
+    - SAUCE: Revert "media: v4l2-ioctl: clear fields in s_parm"
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: switch to fslc mxc csi platform driver
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: switch to ov5640_v2 mxc csi platform
+      driver
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: use clk names that csi fslc driver
+      expects
+    - SAUCE: clk: imx6sx: keep OCRAM_S always ON
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add pxp_v4l2_out support
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: let sound card driver control codec clk
+    - [Config] updateconfigs, enable fslc camera drivers, disable upstream
+      versions
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add pinctrl hogs for board_id, run led
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: usb2 host mode for lte-cellular module
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: rs485 uarts are full-duplex with hw
+      flow control
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: update gpio hogs for common port 1,2
+      uart_sel & ttl/rs232 port
+    - SAUCE: clk: imx6sx: explicitly gate gpmi_io & qspi2 clks during init
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable adc support
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: cleanup wifi/bt regulators
+    - SAUCE: MLK-13793-6 regulator: anatop: fix min dropout for bypass mode
+    - SAUCE: MLK-23562: regulator: core: adjust supply voltage in bypass
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add power domain for csi
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: allow ldo-bypass for gpc power domain
+    - SAUCE: MLK-22986-1: soc: imx: gpc: add ldo-bypass
+
+  * Miscellaneous upstream changes
+    - Revert "drm/imx/dcss: allow using nearest neighbor interpolation scaling"
+    - Revert "drm/imx/dcss: fix coccinelle warning"
+    - Revert "drm/imx/dcss: fix rotations for Vivante tiled formats"
+    - Revert "drm/imx/dcss: fix unused but set variable warnings"
+    - Revert "drm/imx/dcss: fix compilation issue on 32bit"
+    - Revert "drm/imx/dcss: use drm_bridge_connector API"
+    - Revert "drm/imx: Add initial support for DCSS on iMX8MQ"
+    - Revert "UBUNTU: SAUCE: ARM: dts: imx6sx-x6med35-som: disable rpmsg, don't
+      reserve memory"
+    - Revert "media: v4l2-subdev.h: remove obsolete g/s_parm"
+    - Revert "UBUNTU: [Config] CONFIG_REGULATOR_ANATOP=y on imx6 based platforms"
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Tue, 21 Sep 2021 01:54:41 +0800
+
+linux-imx (5.4.0-1010.10) focal; urgency=medium
+
+  * Miscellaneous upstream changes
+    - rtc: m41t80: set range
+    - arm64: dts: imx8m*-venice-gw7902: fix M2_RST# gpio
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Mon, 06 Sep 2021 16:33:15 +0800
+
+linux-imx (5.4.0-1009.9) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: fix phandle node definition for bwm-
+      beeper
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: cleanup re-init of i2c2 properties
+    - SAUCE: arm64: dts: imx8mp: support x8high35 bms
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: only emmc, crypto & soc are on the SOM
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add rts-gpios for rs485 uarts
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add gpio-hogs for ttl/rs232 uart_sel,
+      rs485 common port sel
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: ensure P11,P12 are set in rs485 mode
+      from boot
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable s1, s2 push-buttons as wakeup-
+      source
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: support OV5640 camera sensor on csi0
+    - [Config] support OV5640 cmos camera sensors
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: reduce pwm-beeper freq
+    - [Config] disable unused audio codec drivers
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix audmux pinconf
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: support nau8822 audio with simple-
+      sound-card
+    - [Config] CONFIG_SND_SOC_NAU8822=m
+    - [Config] enable IMX PXP, CODA
+    - [Config] DM_CRYPT, SHA256/512, ARMv7/8 AES built-in
+    - SAUCE: arm64: dts: imx8mp: x8high-som: define 2G memory properly
+    - SAUCE: arm64: dts: imx8mp: x8high-som: rename 35som status led node
+    - SAUCE: arm64: dts: imx8mp: x8high-som: rename regulators as per the dt-
+      schema
+    - SAUCE: ARM: dts: imx8mp-x8high-bms: disable rts-gpio for uart2 to enable
+      serial console
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: ldo5 1v8 to power BM28 SDIO VIO
+    - [Config] CONFIG_OF_NUMA=y by default
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: reserve memory for global dma usage
+    - CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
+
+  * Miscellaneous upstream changes
+    - ASoC: fsl: Replace HTTP links with HTTPS ones
+    - arm64: dts: imx8mp: Add dsp node
+    - arm64: dts: imx8mp: remove fallback compatible string for FlexCAN
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Sun, 22 Aug 2021 22:35:14 +0800
+
+linux-imx (5.4.0-1008.8) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] add canonical-hwe-team ppa to get abis
+
+  * Miscellaneous upstream changes
+    - arm64: dts: imx8mn-venice-gw7901: update gpio for revision-B board
+    - i2c: imx: support slave mode for imx I2C driver
+    - arm64: dts: imx8m*-venice-gw7902: fix phy configuration
+    - arm64: dts: imx8m*-venice-gw7902: fix phy configuration for 5.4 kernel
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Wed, 04 Aug 2021 22:58:57 +0800
+
+linux-imx (5.4.0-1007.7) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: only pmic, emmc, crypto & soc are on
+      the SOM
+    - SAUCE: extcon: poll cable status using timer
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: remove optional vbus supply to get
+      usb working
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: read eqos eth mac addr from ocotp-
+      nvmem
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: read fec1/2 eth mac addrs from nvmem-
+      ocotp
+
+  * Miscellaneous upstream changes
+    - usb: dwc3: imx8mp: fix error return code in dwc3_imx8mp_probe()
+    - usb: dwc3: ep0: fix NULL pointer exception
+    - usb: dwc3: core: fix kernel panic when do reboot
+    - usb: dwc3: create debugfs directory under usb root
+    - usb: dwc3: Disable phy suspend after power-on reset
+    - usb: dwc3: debug: Remove newline printout
+    - usb: dwc3: of-simple: add a shutdown
+    - usb: dwc3: gadget: Don't send unintended link state change
+    - usb: dwc3: gadget: Set link state to RX_Detect on disconnect
+    - usb: dwc3: gadget: Clear DCTL.ULSTCHNGREQ before set
+    - usb: dwc3: gadget: Remove END_TRANSFER delay
+    - usb: dwc3: Registering a role switch in the DRD code.
+    - usb: dwc3: Add support for role-switch-default-mode binding
+    - usb: dwc3: Rework clock initialization to be more flexible
+    - usb: dwc3: Rework resets initialization to be more flexible
+    - usb: dwc3: core: don't do suspend for device mode if already suspended
+    - usb: dwc3: Fix GTXFIFOSIZ.TXFDEP macro name
+    - usb: dwc3: select USB_ROLE_SWITCH
+    - usb: dwc3: support continuous runtime PM with dual role
+    - usb: dwc3: gadget: Give back staled requests
+    - usb: dwc3: gadget: Remove unnecessary checks
+    - usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue
+    - usb: dwc3: drd: Don't free non-existing irq
+    - usb: dwc3: core: Use role-switch default dr_mode
+    - usb: dwc3: gadget: Store resource index of start cmd
+    - usb: dwc3: gadget: Issue END_TRANSFER to retry isoc transfer
+    - usb: dwc3: gadget: WARN on no-resource status
+    - usb: dwc3: use true,false for dwc->otg_restart_host
+    - usb: dwc3: gadget: make starting isoc transfers more robust
+    - usb: dwc3: gadget: add frame number mask
+    - usb: dwc3: gadget: Refactor ep command completion
+    - usb: dwc3: gadget: Introduce a DWC3 VBUS draw callback
+    - usb: dwc3: gadget: Preserve UDC max speed setting
+    - usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression
+    - cpufreq: imx: Select NVMEM_IMX_OCOTP
+    - cpufreq: Initialize the governors in core_initcall
+    - cpufreq: Make cpufreq_global_kobject static
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Sun, 11 Jul 2021 20:48:24 +0800
+
+linux-imx (5.4.0-1006.6) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: imx: Add i.mx8mn Gateworks gw7902 dts support
+    - SAUCE: arm64: dts: imx8mn: gw7902: disable gpc, gpu & mu nodes
+    - SAUCE: arm64: dts: imx8mn: gw7902: update usbotg1 clks, clk parents
+    - [Packaging] ignore bpfilter module during crossbuild
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Mon, 05 Jul 2021 21:01:45 +0800
+
+linux-imx (5.4.0-1005.5) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: x8high35-pdk: correct copyright in SPDX license ident
+    - [Packaging] Ignore if bpfilter module is missing
+    - SAUCE: ARM: dts: imx: add support for X6MED-35 PDK
+    - [Config] Disable iMX6SL/SLL iMX7D/ULP SoC's
+    - [Packaging] fix armhf imx flavour variables
+    - [Config] remoteproc, rpmsg drivers to be built-in
+    - [Config] disable lpae support for imx6(armhf) systems
+    - [Config] CONFIG_REMOTEPROC_CDEV=y
+    - [Config] cleanup power,cpugreq & clk related configs for armhf
+    - [Config] CONFIG_MMC_SDHCI_ESDHC_IMX=y, CONFIG_MMC_SDHCI_OF_ESDHC=y
+    - [Config] updateconfigs for earlyprintk on imx6sx uart1"
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: available memory to linux is ~511MiB
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add reserved memory for rpmsg
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add rpmsg node for imx6sx
+    - [Config] CONFIG_FEC=m
+    - [Config] CONFIG_REGULATOR_ANATOP=y on imx6 based platforms
+    - SAUCE: ARM: dts: imx6sx-x6med35: fix pinctrl for USB_CC interrupt
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add pinctrl defs for fec rmii support
+    - [Config] CONFIG_SPI_FSL_QUADSPI=y, CONFIG_SPI_FSL_LPSPI=y
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix dt config for usb_otg1
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: usbotg2 config for LTE expansion
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: disable rpmsg, don't reserve memory
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: disable qspi nand-flash for now
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: Assign corresponding power supply for
+      LDOs
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add 5v, 3v3 psu regulators
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable wdog1
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add aliases for watchdog devices
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: disable anatop-regulator
+
+  * Miscellaneous upstream changes
+    - ARM: dts: imx7: Unify temp-grade and speed-grade nodes
+    - ARM: dts: imx: Replace "simple-bus" with "simple-mfd" for anatop
+    - ARM: dts: imx: use generic name bus
+    - ARM: dts: imx: make gpt node name generic
+    - ARM: dts: imx: make kpp node name generic
+    - ARM: dts: imx: make clks node name generic
+    - ARM: dts: imx6sx: Improve UART pins macro defines
+    - ARM: dts: imx6sx: Add missing UART RTS/CTS pins mux
+    - ARM: dts: imx6sx-nitrogen6sx: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx6sx-sabreauto: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx6sx-sdb: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx6sx-softing-vining-2000: Use new pin names with DCE/DTE for
+      UART pins
+    - ARM: dts: imx6sx-udoo-neo: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx: make wdog node name generic
+    - ARM: dts: imx: Align ocotp node name
+    - ARM: dts: imx6sx-softing-vining-2000: Enable PCI support
+    - ARM: dts: imx: Make iomuxc node name generic
+    - ARM: dts: imx: add nvmem property for cpu0
+    - dt-bindings: fec: update the gpr property
+    - ARM: dts: imx: add ethernet stop mode property
+    - ARM: dts: imx6qdl: Use nvmem interface to get fuse data
+    - ARM: dts: imx6sl: Use nvmem interface to get fuse data
+    - ARM: dts: imx: Make tempmon node as child of anatop node
+    - ARM: dts: imx: change ocotp node name on i.MX6/7 SoCs
+    - ARM: dts: imx: change ocotp node name on MXS SoCs
+    - ARM: dts: imx: change iim node name on i.MX SoCs
+    - ARM: dts: imx6qdl: Remove invalid interrupt for GPC node
+    - ARM: dts: imx: Change sdhci node name on i.MX27/i.MX31 SoCs
+    - ARM: dts: imx: Change esdhc node name on i.MX2/i.MX3/i.MX5 SoCs
+    - ARM: dts: imx: Change usdhc node name on i.MX6/i.MX7 SoCs
+    - ARM: dts: imx6sll: Make ssi node name same as other platforms
+    - ARM: dts: imx6sx: Enable ASRC device
+    - ARM: dts: imx6sx-sdb: Add SPDIF support
+    - ARM: dts: imx6sx-sabreauto: Add SPDIF support
+    - ARM: dts: imx6sx-sabreauto: Add cs42888 sound card support
+    - ARM: dts: imx6sx-sdb: Add MQS support
+    - ARM: dts: imx: Align L2 cache-controller nodename with dtschema
+    - ARM: dts: imx6ul: Add ASRC device node
+    - ARM: dts: imx: default to #pwm-cells = <3> in the SoC dtsi files
+    - ASoC: bindings: fsl-asoc-card: Add compatible string for MQS
+    - ASoC: fsl-asoc-card: Add MQS support
+    - ASoC: bindings: fsl_spdif: Add new compatible string for imx6sx
+    - ASoC: fsl_spdif: Add support for imx6sx platform
+    - ASoC: fsl_spdif: Add pm runtime function
+    - ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3
+    - ARM: dts: imx6sx-sdb: Add headphone detection for sound card
+    - ARM: dts: imx6/7: sync fsl,stop-mode with current flexcan driver
+    - ARM: dts: imx: add usb alias
+    - ARM: dts: imx: Change gpmi nand node name to nand-controller
+    - ARM: dts: imx: make src node name generic
+    - ARM: dts: imx: align name for crypto node and child nodes
+    - remoteproc: use struct_size() helper
+    - remoteproc: Use size_t type for len in da_to_va
+    - remoteproc: Use size_t instead of int for rproc_mem_entry len
+    - remoteproc: Use u64 type for boot_addr
+    - remoteproc: Add elf helpers to access elf64 and elf32 fields
+    - remoteproc: Rename rproc_elf_sanity_check for elf32
+    - remoteproc: Add elf64 support in elf loader
+    - remoteproc: Allow overriding only sanity_check
+    - remoteproc: Adapt coredump to generate correct elf type
+    - remoteproc: re-check state in rproc_trigger_recovery()
+    - remoteproc: remoteproc debugfs file fixes
+    - remoteproc: return error for bad "recovery" debugfs input
+    - remoteproc: Traverse rproc_list under RCU read lock
+    - remoteproc: Introduce "panic" callback in ops
+    - remoteproc: qcom: q6v5: Add common panic handler
+    - remoteproc: qcom: Introduce panic handler for PAS and ADSP
+    - remoteproc: core: Remove casting to rproc_handle_resource_t
+    - remoteproc: introduce is_iomem to rproc_mem_entry
+    - remoteproc: convert to DEFINE_SHOW_ATTRIBUTE
+    - remoteproc: Split firmware name allocation from rproc_alloc()
+    - remoteproc: Simplify default name allocation
+    - remoteproc: add rproc_coredump_set_elf_info
+    - remoteproc: sysmon: Add ability to send type of notification
+    - remoteproc: Use kstrdup_const() rather than kstrdup()
+    - remoteproc: Restructure firmware name allocation
+    - remoteproc: Split rproc_ops allocation from rproc_alloc()
+    - remoteproc: Get rid of tedious error path
+    - remoteproc: Use a local copy for the name field
+    - remoteproc: Add device-managed variants of rproc_alloc/rproc_add
+    - remoteproc: remove rproc_elf32_sanity_check
+    - remoteproc: Add prepare and unprepare ops
+    - remoteproc: Add missing '\n' in log messages
+    - remoteproc: Fix an error code in devm_rproc_alloc()
+    - remoteproc: remoteproc_core: Use 'gnu_printf' format notation
+    - remoteproc: Add new RPROC_DETACHED state
+    - remoteproc: Add new attach() remoteproc operation
+    - remoteproc: Introducing function rproc_attach()
+    - remoteproc: Introducing function rproc_actuate()
+    - remoteproc: Introducing function rproc_validate()
+    - remoteproc: Refactor function rproc_boot()
+    - remoteproc: Refactor function rproc_trigger_auto_boot()
+    - remoteproc: Refactor function rproc_free_vring()
+    - remoteproc: Properly handle firmware name when attaching
+    - remoteproc: Make function rproc_resource_cleanup() public
+    - remoteproc: Move coredump functionality to a new file
+    - remoteproc: Pass size and offset as arguments to segment dump function
+    - remoteproc: Add inline coredump functionality
+    - remoteproc: Add coredump debugfs entry
+    - remoteproc: Introduce rproc_of_parse_firmware() helper
+    - remoteproc: Add remoteproc character device interface
+    - remoteproc: core: Register the character device interface
+    - remoteproc: Change default dump configuration to "disabled"
+    - remoteproc: coredump: Add minidump functionality
+    - remoteproc: add is_iomem to da_to_va
+    - remoteproc: imx_rproc: correct err message
+    - remoteproc: imx_rproc: use devm_ioremap
+    - remoteproc: imx_rproc: add i.MX specific parse fw hook
+    - remoteproc: imx_rproc: support i.MX8MQ/M
+    - remoteproc: imx_rproc: ignore mapping vdev regions
+    - remoteproc: imx_proc: enable virtio/mailbox
+    - remoteproc: imx_rproc: fix return value check in imx_rproc_addr_init()
+    - remoteproc: Remove useless check in rproc_del()
+    - remoteproc: Rename function rproc_actuate()
+    - remoteproc: Add new RPROC_ATTACHED state
+    - remoteproc: Properly represent the attached state
+    - remoteproc: Add new get_loaded_rsc_table() to rproc_ops
+    - remoteproc: imx_rproc: fix build error without CONFIG_MAILBOX
+    - remoteproc: imx_rproc: add missing of_node_put
+    - remoteproc: imx_rproc: enlarge IMX7D_RPROC_MEM_MAX
+    - remoteproc: imx_rproc: move memory parsing to rproc_ops
+    - remoteproc: imx_rproc: support remote cores booted before Linux Kernel
+    - spi: spi-fsl-qspi: Reduce devm_ioremap size to 4 times AHB buffer size
+    - spi: spi-fsl-qspi: Fix return value check of devm_ioremap() in probe
+    - regulator: anatop: Lower error message level for -EPROBE_DEFER
+    - regulator: anatop: Constify anatop_core_rops
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 02 Jul 2021 09:32:58 +0800
+
+linux-imx (5.4.0-1004.4) focal; urgency=medium
+
+  * Bump ABI: 5.4.0-1004.4
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 18 Jun 2021 18:15:48 +0800
+
+linux-imx (5.4.0-1003.3) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_CRYPTO_DEV_FSL_CAAM=m
+    - [Config] CONFIG_IMX8MM_THERMAL=m, CONFIG_IMX_SC_THERMAL=m
+    - [Config] CONFIG_NVMEM_IMX_OCOTP_SCU=y, CONFIG_NVMEM_SNVS_LPGPR=y
+    - SAUCE: arm64: dts: fix brcm sdio wifi compatible string
+    - SAUCE: arm64: dts: imx8mp: specify dma-ranges
+    - SAUCE: usb: dwc3: imx8mp: detect dwc3 child nodes with name "usb*"
+    - SAUCE: arm64: dts: imx8mp: A53 cpufreq opp table
+    - SAUCE: arm64: dts: imx8mp: add nvmem entries for A53 speed-grade
+    - SAUCE: arm64: dts: imx8mp: Enable cpu-idle driver
+    - SAUCE: cpufreq: Use imx-cpufreq-dt for i.MX8MP's speed grading
+    - SAUCE: arm64: dts: x8high35-pdk: fix node for wifi sdio card
+    - [Config] select ondemand gov as default
+    - SAUCE: arm64: dts: imx8mp: configure gpio1_01 for ecspi1-cs
+    - SAUCE: arm64: dts: x8high35-pdk: fix cs-pins for uart_exp ports
+    - SAUCE: arm64: dts: x8high35-pdk: enable uart3
+    - SAUCE: arm64: dts: imx8mp: update i2c addr for crypto chip as per HW
+      recommendation
+    - SAUCE: arm64: dts: imx8mm: add gpc iomux compatible
+    - SAUCE: arm64: dts: imx: Add i.mx8mm Gateworks gw7902 dts support
+    - SAUCE: arm64: dts: imx8mm-venice-gw7902: add PCI support
+    - [Config] CONFIG_LAN743X=m
+    - SAUCE: regmap: irq: fix ack-invert
+    - [Config] CONFIG_GPIO_PCA953X=y, CONFIG_GPIO_PCA953X_IRQ=y
+    - [Config] updateconfigs for watchdog support
+    - SAUCE: MLK-22404-02 soc: imx: Add power domain driver support for i.mx8m
+      family
+    - SAUCE: MLK-22404-03 arm64: dts: freescale: Add power domain nodes for
+      i.mx8mm
+    - SAUCE: arm64: dts: imx8mm-venice-gw7902: add power-domain configs for USB
+      controllers
+    - [Config] CONFIG_IMX8M_PM_DOMAINS=y
+    - SAUCE: clk: imx: imx8mm: set the parent clks of pcie
+    - SAUCE: PCI: imx: set the according disable signal
+    - SAUCE: PCI: imx: enable imx8qm/qxp pcie support
+    - SAUCE: pci: imx: fix build failure due to 5.1 RC7 upgrade
+    - SAUCE: PCI: imx: msi enable bit of rc should be set in resume
+    - SAUCE: PCI: imx: set up the hsio regmap itself
+    - SAUCE: PCI: imx: enable imx8mm pcie support
+    - [Config] CONFIG_PCIE_DW_*=y
+
+  * Miscellaneous upstream changes
+    - thermal: of-thermal: add API for getting sensor ID from DT
+    - thermal: imx_sc: add i.MX system controller thermal support
+    - thermal: imx8mm: Add support for i.MX8MM thermal monitoring unit
+    - thermal: imx_sc_thermal: Align imx sc thermal msg structs to 4
+    - thermal: imx_sc_thermal: Fix incorrect data type
+    - thermal: imx8mm: Add i.MX8MP support
+    - thermal: imx8mm: Fix build warning of incorrect argument type
+    - dt-bindings: firmware: imx: Move system control into dt-binding headfile
+    - thermal: imx_sc_thermal: Add hwmon support
+    - thermal: imx8mm: Replace zero-length array with flexible-array
+    - thermal: imx8mm: Support module autoloading
+    - thermal: imx8mm: Print the correct error code
+    - thermal: imx8mm: Disable the clock on probe failure
+    - arm64: dts: imx8m: add NVMEM provider and consumer to read soc unique ID
+    - nvmem: imx: scu: support hole region check
+    - nvmem: imx: scu: support write
+    - nvmem: imx: scu: fix dependency in Kconfig
+    - nvmem: imx: scu: fix write SIP
+    - nvmem: imx: scu: correct the fuse word index
+    - nvmem: imx: ocotp: introduce ocotp_ctrl_reg
+    - nvmem: imx: ocotp: add i.MX8MP support
+    - nvmem: imx-ocotp: Drop unnecessary initializations
+    - nvmem: imx-ocotp: Improve logic to save many code lines
+    - nvmem: imx-ocotp: add support for the unaliged word count
+    - arm64: dts: imx8mp: Use the correct name for child node "snps, dwc3"
+    - Revert "soc: imx8m: change to use platform driver"
+    - arm64: dts: imx8mp: add flexspi node
+    - arm64: dts: imx8mp: Remove the reference to audio ipg clock on imx8mp
+    - spi: nxp-fspi: Use devm API to fix missed unregistration of controller
+    - spi: fspi: enable fspi on imx8qxp and imx8mm
+    - spi: fspi: dynamically alloc AHB memory
+    - spi: spi-nxp-fspi: Enable the Octal Mode in MCR0
+    - spi: spi-nxp-fspi: Add support for imx8mm, imx8qxp
+    - spi: spi-nxp-fspi: Fix a NULL vs IS_ERR() check in probe
+    - spi: spi-nxp-fspi: Add ACPI support
+    - spi: spi-nxp-fspi: Add support for IP read only
+    - spi: spi-nxp-fspi: Add imx8dxl driver support
+    - spi: spi-nxp-fspi: Implement errata workaround for LS1028A
+    - spi: spi-nxp-fspi: Add imx8dxl support
+    - spi: fspi: enable fspi driver for on imx8mp
+    - dt-bindings: spi: add compatible entry for imx8mp in FlexSPI controller
+    - soc: imx: gpcv2: move to more ideomatic error handling in probe
+    - soc: imx: gpcv2: move domain mapping to domain driver probe
+    - soc: imx: gpcv2: switch to clk_bulk_* API
+    - soc: imx: gpcv2: split power up and power down sequence control
+    - soc: imx: gpcv2: wait for ADB400 handshake
+    - soc: imx: gpcv2: add runtime PM support for power-domains
+    - soc: imx: gpcv2: allow domains without power-sequence control
+    - soc: imx: gpcv2: add support for optional resets
+    - dt-bindings: power: add defines for i.MX8MM power domains
+    - soc: imx: gpcv2: add support for i.MX8MM power domains
+    - soc: imx: gpcv2: Add support for missing i.MX8MM VPU/DISPMIX power domains
+    - soc: imx: gpcv2: move reset assert after requesting domain power up
+    - dt-bindings: add defines for i.MX8MN power domains
+    - soc: imx: gpcv2: add support for i.MX8MN power domains
+    - arm64: dts: imx8mn: add GPC node and power domains
+    - arm64: dts: imx8mn: Add power-domain reference in USB controller
+    - arm64: dts: imx8mn: Add GPU node
+    - dt-bindings: reset: imx7: Add support for i.MX8MN
+    - dt-bindings: reset: imx7: Document usage on i.MX8MP SoC
+    - reset: imx7: Add support for i.MX8MP SoC
+    - reset: imx7: Support module build
+    - dt-bindings: reset: imx8mq: add m4 reset
+    - reset: imx7: add the cm4 reset for i.MX8MQ
+    - arm64: dts: imx8mm: specify dma-ranges
+    - arm64: dts: imx8mn: specify dma-ranges
+    - regmap: provide helpers for simple bit operations
+    - cpufreq: Initialize cpufreq-dt driver earlier
+    - cpufreq: Add i.MX7ULP to cpufreq-dt-platdev blacklist
+    - spi: imx: use true,false for bool variable
+    - spi: imx: fallback to PIO if dma setup failure
+    - spi: introduce fallback to pio
+    - spi: imx: add fallback feature
+    - spi: imx: enable runtime pm support
+    - spi: imx: Fix freeing of DMA channels if spi_bitbang_start() fails
+    - spi: imx: Do not print an error when PIO is used
+    - spi: imx: Remove unneeded probe message
+    - spi: imx: fix runtime pm support for !CONFIG_PM
+    - spi: imx: fix reference leak in two imx operations
+    - spi: imx: fix the unbalanced spi runtime pm management
+    - spi: imx: Improve driver description
+    - spi: imx: add a check for speed_hz before calculating the clock
+    - UBUTNU: SAUCE: arm64: dts: imx8mm-venice-gw7902: add PCIe nodes
+    - dt-bindings: mfd: Add Gateworks System Controller bindings
+    - mfd: Add Gateworks System Controller core driver
+    - hwmon: Add Gateworks System Controller support
+    - lan743x: add MODULE_DEVICE_TABLE for module loading alias
+    - hwmon: (gsc-hwmon) Scale temperature to millidegrees
+    - hwmon: (gsc) add 16bit pre-scaled voltage mode
+    - lan743x: allow mac address to come from dt
+    - dt-bindings: mfd: gateworks-gsc: Add 16bit pre-scaled voltage mode
+    - hwmon: (gsc-hwmon) add fan sensor
+    - dt-bindings: vendor-prefixes: favor "gateworks" over "gw"
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 18 Jun 2021 13:38:42 +0800
+
+linux-imx (5.4.0-1002.2) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] add hwe iot-build ppa to get abis
+    - [Packaging] add abi files for imx armhf
+    - [Config] disable drm configs for imx armhf
+    - [Config] CONFIG_MICREL_PHY=y
+    - [Config] CONFIG_CRYPTO_DEV_FSL_CAAM=y, CONFIG_CRYPTO_DEV_ATMEL_ECC=y
+
+  * Miscellaneous upstream changes
+    - media: v4l2-subdev: Introduce [get|set]_mbus_config pad ops
+    - net: phy: micrel.c: add rgmii interface delay possibility to ksz9131
+    - net: phy: micrel: add phy-mode support for the KSZ9031 PHY
+    - net: phy: mchp: Add support for LAN8814 QUAD PHY
+    - Revert "UBUNTU: SAUCE: arm64: dts: remove phy-reset-gpios from ethernet
+      nodes"
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Wed, 02 Jun 2021 13:20:33 +0800
+
+linux-imx (5.4.0-1001.1) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Initial focal/imx packaging
+    - [Packaging] updateconfigs and annotations
+    - SAUCE: regulator: pca9450: fix build errors on backported 5.4 based kernel
+    - [Config] update configs for i.MX8 processors
+    - [Config] CONFIG_DWMAC_IMX8=m on i.MX8
+    - [Config] drm: updateconfigs, disable iMX8MP DCSS for now
+    - [Packaging] fix annotatoins for focal updates
+    - SAUCE: arm64: dts: imx8mp: support x8high35 pdk
+    - [Packaging] fix modules-check-imx
+    - [Packaging] arm64: imx: switch kernel format to Image
+    - [Config] CONFIG_SERIAL_IMX_CONSOLE=y
+    - SAUCE: arm64: dts: imx8mp: add optee fw node
+    - [Config] remove layerscape soc suooprt, cleanup configs
+    - SAUCE: arm64: dts: imx8mp: don't advertise broken eee modes for network phys
+    - [Config] CONFIG_USB_DWC3_IMX8MP=m
+    - SAUCE: arm64: dts: imx8mp: fix phy-reset-gpio assignments
+    - SAUCE: arm64: dts: imx8mp: correct wrong addr on i2c gpio expansion
+    - SAUCE: arm64: dts: imx8mp: setup pmic INT_B gpio
+    - SAUCE: regulator: pca9450: only warn if pmic irq allocation fails
+    - SAUCE: arm64: dts: imx8mp: fix uart-exp (ecspi1) SS0 pinconfig
+    - SAUCE: extcon: ptn5150: dont fail if interrupt cannot be configured
+    - SAUCE: arm64: dts: add a53 cpu supplies
+    - SAUCE: arm64: dts: fix usb-vbus pins, cc i2c addresses & add wifi regulator
+      supply
+    - SAUCE: arm64: dts: remove phy-reset-gpios from ethernet nodes
+    - SAUCE: MLK-23173-06 net: stmmac: enable dwmac5 34Bits address width
+    - SAUCE: MLK-23222 net: stmmac: add clocks management for gmac driver
+    - SAUCE: MLK-23251-01: net: stmac: tsn: add tc mqprio support
+    - SAUCE: MGS-5511 net: stmmac: start phylink instance before stmmac_hw_setup()
+    - SAUCE: MLK-23409 net: stmmac: correctly handle mdio bus reset error path
+    - SAUCE: MLK-23784 net: stmmac: disable bus/pclk clocks when probe failed
+    - SAUCE: net: fec: add imx8mq and imx8qm new versions support
+    - SAUCE: MLK-24911-1: soc: imx: Add support to get iMX8mp LDO trim fuse value
+    - [Packaging] build fail - remove bpfilter
+
+  * Miscellaneous upstream changes
+    - arm64: dts: imx8mn-ddr4-evk: Enable GPIO LED
+    - arm64: dts: imx8mn: Add "fsl,imx8mq-src" as src's fallback compatible
+    - arm64: dts: imx8mn: Add system counter node
+    - arm64: dts: imx8mn: Enable cpu-idle driver
+    - arm64: dts: imx8mm: Remove incorrect fallback compatible for ocotp
+    - arm64: dts: imx8mn: add ddr pmu node
+    - arm64: dts: imx8mm-evk: Adjust i2c nodes following alphabetical sort
+    - arm64: dts: imx8mm-evk: Add i2c3 support
+    - arm64: dts: imx8mm-evk: Enable pca6416 on i2c3 bus
+    - arm64: dts: imx8mq-evk: Adjust nodes following alphabetical sort
+    - arm64: dts: imx8mn-ddr4-evk: Move iomuxc node to end of file
+    - arm64: dts: imx8mq-evk: VDD_ARM power rail is always ON
+    - arm64: dts: imx8mq: Move usdhc clocks assignment to board DT
+    - arm64: dts: imx8mm: Move usdhc clocks assignment to board DT
+    - arm64: dts: imx8mn: Move usdhc clocks assignment to board DT
+    - arm64: dts: imx8mn: Create EVK dtsi file for common use
+    - arm64: dts: imx8mq-evk: Add remote control
+    - arm64: dts: imx8mm: Remove duplicated machine compatible
+    - arm64: dts: imx8mn: Remove duplicated machine compatible
+    - arm64: dts: imx8mn-evk: Remove invalid Atheros properties
+    - arm64: dts: imx8mm: remove "simple-bus" for anatop
+    - arm64: dts: imx8mn: remove "simple-bus" for anatop
+    - arm64: dts: imx8m: Add ddr controller nodes
+    - arm64: dts: imx8mq: increase NOC clock to 800 MHz
+    - arm64: dts: imx8mq: Add eLCDIF controller
+    - arm64: dts: imx8mq: add missing SAI nodes
+    - arm64: dts: imx8mn: Remove setting for IMX8MN_CLK_USB_CORE_REF
+    - arm64: dts: imx8mn-evk: enable usb1 and typec support
+    - arm64: dts: imx8mm: Add missing mux options for UART1 and UART2 signals
+    - arm64: dts: imx8m: drop "fsl,aips-bus" and "fsl,imx8mq-aips-bus"
+    - dt-bindings: arm: Add Google Coral Edge TPU entry
+    - arm64: dts: freescale: add initial support for Google i.MX 8MQ Phanbell
+    - arm64: dts: imx8mm: Add Crypto CAAM support
+    - arm64: dts: imx8mn: add crypto node
+    - arm64: dts: imx8mm: Memory node should be in board DT
+    - arm64: dts: imx8mn: Memory node should be in board DT
+    - arm64: dts: imx8mn: add clock for snvs rtc node
+    - arm64: dts: imx8mn: Init rates and parents configs for clocks
+    - arm64: dts: imx8mm: drop redundant interrupt-parent
+    - arm64: dts: freescale: Add i.MX8MP dtsi support
+    - arm64: dts: freescale: Add i.MX8MP EVK board support
+    - arm64: dts: imx8mq-phanbell: Add support for ethernet
+    - arm64: dts: imx8mm-evk: add phy-reset-gpios for fec1
+    - arm64: dts: imx8mq-evk: add phy-reset-gpios for fec1
+    - arm64: dts: imx8mp-evk: Add GPIO LED support
+    - arm64: dts: imx8mp: Add system counter timer node
+    - arm64: dts: imx8mn: Adjust 1.2GHz OPP voltage to OD mode
+    - arm64: dts: imx: add i.MX8QXP thermal support
+    - arm64: dts: imx8mp: add crypto node
+    - arm64: dts: imx8mm: add snvs clock to pwrkey
+    - arm64: dts: imx8mq: add snvs clock to pwrkey
+    - arm64: dts: imx8mq: Align iomuxc node name
+    - arm64: dts: imx8mp: Add src node
+    - arm64: dts: imx8mn-evk: Add i2c3 support
+    - arm64: dts: imx8mn-evk: Enable pca6416 on i2c3 bus
+    - arm64: dts: imx8mp-evk: Add i2c3 support
+    - arm64: dts: imx8mp-evk: Enable pca6416 on i2c3 bus
+    - arm64: dts: imx8mq-phanbell: Add gpio-fan/thermal support
+    - arm64: dts: imx8mn: align name for crypto child nodes
+    - arm64: dts: enable fspi in imx8mm dts
+    - arm64: dts: imx8mq-phanbell: Fix Ethernet PHY post-reset duration
+    - arm64: dts: imx8mm: Add thermal zone support
+    - arm64: dts: imx8mn: Add CPU thermal zone support
+    - arm64: dts: imx8m: fix aips dts node
+    - arm64: dts: imx8mn: Add snvs clock to powerkey
+    - arm64: dts: imx8mp: Add snvs clock to powerkey
+    - arm64: dts: imx8mm-evk: Add secondary cpus supply
+    - arm64: dts: imx8m: Fix AIPS reg properties
+    - arm64: dts: imx8mp: Add thermal zones support
+    - arm64: dts: imx8mm: specify #sound-dai-cells for SAI nodes
+    - arm64: dts: freescale: imx8mp: update input_val for AUDIOMIX_BIT_STREAM
+    - arm64: dts: imx8mn: Update VDD_ARM 1.2GHz setpoint voltage
+    - arm64: dts: imx8mp: add "fsl,imx6sx-fec" compatible string
+    - arm64: dts: imx8m: assign clocks for A53
+    - arm64: dts: imx8mq: Add src node interrupts
+    - arm64: dts: imx8mp: Add src node interrupts
+    - arm64: dts: imx8mq: enable Hantro G1/G2 VPU
+    - arm64: dts: imx8mq: Add mmc aliases
+    - arm64: dts: imx8mq: Add ethernet alias
+    - arm64: dts: imx8mm: sort the aliases
+    - arm64: dts: imx8mp: add i2c aliases
+    - arm64: dts: imx8m: change ocotp node name on i.MX8M SoCs
+    - arm64: dts: imx8m: add mu node
+    - arm64: dts: imx8mp: Add fallback compatible to ocotp node
+    - arm64: dts: imx8mp: add ddr pmu device node
+    - arm64: dts: imx8mm-evk: add two parameters for samsung picophy tuning
+    - arm64: dts: imx8mn-evk: add two parameters for samsung picophy tuning
+    - arm64: dts: imx8m: Add the ENET PPS interrupt
+    - arm64: dts: imx8mq: Add NWL MIPI DSI controller
+    - arm64: dts: imx8mp: Update pinfunc header file
+    - arm64: dts: imx8mm-evk: Add flexspi support
+    - arm64: dts: imx8mm-evk: remove orphaned pinctrl-names property
+    - arm64: dts: imx8mn-evk: remove orphaned pinctrl-names property
+    - arm64: dts: imx8mp-evk: remove orphaned pinctrl-names property
+    - arm64: dts: imx8mm-evk: Replace deprecated phy reset properties
+    - arm64: dts: imx8mq-evk: Replace deprecated phy reset properties
+    - arm64: dts: imx8mq-phanbell: Replace deprecated phy reset properties
+    - arm64: dts: imx8mm-evk: Align regulator names with schema
+    - arm64: dts: imx8mq-evk: Add hog suffix to wl-reg-on
+    - arm64: dts: imx8mm: Split the imx8mm evk board dts to a common dtsi
+    - arm64: dts: imx8mm: Add imx8mm ddr4 evk board support
+    - arm64: dts: imx8mm-evk: Add 32.768 kHz clock to PMIC
+    - arm64: dts: imx8mm-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mm-ddr4-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mn-ddr4-evk: Align regulator names with schema
+    - arm64: dts: imx8mq-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mq-phanbell: Align pin configuration group names with schema
+    - arm64: dts: imx8mp: correct sdma1 clk setting
+    - arm64: dts: imx8mp-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mn-ddr4-evk: fix missing PMIC's interrupt line pull-up
+    - arm64: dts: imx8mm: adjust GIC CPU mask to match number of CPUs
+    - arm64: dts: imx8mn: adjust GIC CPU mask to match number of CPUs
+    - arm64: dts: imx8mp: adjust GIC CPU mask to match number of CPUs
+    - arm64: dts: freescale: Add pmu support on imx8mp
+    - arm64: dts: freescale: Add pmu support on imx8mn
+    - arm64: dts: imx8mp-evk: Correct WDOG_B pin configuration
+    - arm64: dts: imx8mm: Add support for micfil
+    - arm64: dts: imx8mm: Add node for SPDIF
+    - arm64: dts: imx8mq: Configure clock rate for audio plls
+    - arm64: dts: imx8mq-evk: Add spdif sound card support
+    - arm64: dts: imx8mp-evk: add CAN support
+    - arm64: dts: imx8mq-evk: add linux,autosuspend-period property for IR
+    - arm64: dts: imx8mm-evk: add IR support
+    - arm64: dts: imx8mn-evk: add IR support
+    - arm64: dts: imx8mn: Enable Asynchronous Sample Rate Converter
+    - arm64: dts: imx8mn: Add SAI nodes
+    - arm64: dts: imx8mn: Add support for micfil
+    - arm64: dts: imx8mn: Add node for SPDIF
+    - arm64: dtsi: imx8mp: add usb nodes
+    - arm64: dts: imx8mp-evk: enable usb1 as host mode
+    - arm64: dts: imx8mn: Fix duplicate node name
+    - arm64: dts: imx8mn: Configure clock rate for audio plls
+    - arm64: dts: imx8mn-evk: Add sound-wm8524 card nodes
+    - arm64: dts: imx8mn-evk: Add sound-spdif card nodes
+    - arm64: dts: imx8mq: Add clock parents for mipi dphy
+    - arm64: dts: imx8m: add SoC ID compatible
+    - arm64: dts: imx8m: correct assigned clocks for FEC
+    - arm64: dts: imx8mq: assign clock parents for FEC
+    - arm64: dts: imx8m: add mac address for FEC
+    - arm64: dts: imx8m: add fsl,stop-mode property for FEC
+    - arm64: dts: imx8mq: use_dt_domains for pci node
+    - arm64: dts: imx8mn: Add fspi node
+    - pinctrl: core: Add pinctrl_select_default_state() and export it
+    - pinctrl: freescale: Add i.MX8MP pinctrl driver support
+    - pinctrl: freescale: drop the dependency on ARM64 for i.MX8M
+    - pinctrl: imx: Support i.MX8 SoCs pinctrl driver built as module
+    - pinctrl: imx: scu: Support i.MX8 SCU SoCs pinctrl driver built as module
+    - pinctrl: imx8mm: Support building as module
+    - pinctrl: imx8mn: Support building as module
+    - pinctrl: imx8mq: Support building as module
+    - pinctrl: imx8mp: Support building as module
+    - pinctrl: imx8qm: Support building as module
+    - pinctrl: imx: Support building i.MX pinctrl core driver as module
+    - clk: imx8mm: Move 1443X/1416X PLL clock structure to common place
+    - clk: imx8mn: Use common 1443X/1416X PLL clock structure
+    - clk: imx8mq: Add VIDEO2_PLL clock
+    - clk: imx: clk-pll14xx: Make two variables static
+    - clk: imx8mq: Define gates for pll1/2 fixed dividers
+    - clk: imx8mm: Define gates for pll1/2 fixed dividers
+    - clk: imx8mn: Define gates for pll1/2 fixed dividers
+    - clk: imx: imx8mm: mark sys_pll1/2 as fixed clock
+    - clk: imx: imx8mn: mark sys_pll1/2 as fixed clock
+    - clk: imx: imx8mq: mark sys1/2_pll as fixed clock
+    - clk: imx: imx7d: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx6sll: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx6sx: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx6ul: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx8mq: fix sys3_pll_out_sels
+    - clk: imx: imx8mn: drop unused pll enum
+    - clk: imx: clk-divider-gate: fix a typo in comment
+    - clk: imx: clk-divider-gate: drop redundant initialization
+    - clk: imx8m: Set CLK_GET_RATE_NOCACHE on dram clocks
+    - clk: imx: Mark dram pll on 8mm and 8mn with CLK_GET_RATE_NOCACHE
+    - clk: imx6q: disable non functional divider
+    - clk: imx7ulp: Fix watchdog2 clock name typo
+    - clk: imx8m: Suppress bind attrs
+    - clk: imx8mn: correct the usb1_ctrl parent to be usb_bus
+    - clk: imx8qxp-lpcg: Warn against devm_platform_ioremap_resource
+    - clk: imx: Rename the SCCG to SSCG
+    - clk: imx: Replace all the clk based helpers with macros
+    - clk: imx: pllv1: Switch to clk_hw based API
+    - clk: imx: pllv2: Switch to clk_hw based API
+    - clk: imx: imx7ulp composite: Rename to show is clk_hw based
+    - clk: imx: Rename sccg and frac pll register to suggest clk_hw
+    - clk: imx: Rename the imx_clk_pllv4 to imply it's clk_hw based
+    - clk: imx: Rename the imx_clk_pfdv2 to imply it's clk_hw based
+    - clk: imx: Rename the imx_clk_divider_gate to imply it's clk_hw based
+    - clk: imx7up: Rename the clks to hws
+    - clk: imx: clk-pll14xx: Switch to clk_hw based API
+    - clk: imx: clk-composite-8m: Switch to clk_hw based API
+    - clk: imx: add imx_unregister_hw_clocks
+    - clk: imx: add hw API imx_clk_hw_mux2_flags
+    - clk: imx: gate3: Switch to clk_hw based API
+    - clk: imx: Remove __init for imx_obtain_fixed_clk_hw() API
+    - clk: imx: imx8mn: Switch to clk_hw based API
+    - clk: imx: imx8mm: Switch to clk_hw based API
+    - clk: imx: imx8mq: Switch to clk_hw based API
+    - clk: imx: gate4: Switch imx_clk_gate4_flags() to clk_hw based API
+    - clk: imx: Add support for i.MX8MP clock driver
+    - clk: imx8mp: Correct IMX8MP_CLK_HDMI_AXI clock parent
+    - clk: imx8mp: Correct the enet_qos parent clock
+    - clk: imx8mn: add SNVS clock to clock tree
+    - clk: imx: pll14xx: Add new frequency entries for pll1443x table
+    - clk: imx: imx8mp: add ocotp root clk
+    - clk: imx: composite-8m: add imx8m_clk_hw_composite_core
+    - clk: imx: imx8mq: use imx8m_clk_hw_composite_core
+    - clk: imx: imx8mm: use imx8m_clk_hw_composite_core
+    - dt-bindings: clock: imx8mn: add SNVS clock
+    - clk: imx: imx8mn: use imx8m_clk_hw_composite_core
+    - clk: imx8mm: Fix the CLKO1 source select list
+    - clk: imx8mm: Add CLKO2 support
+    - clk: imx: Include clk-provider.h instead of clk.h for i.MX8M SoCs clock
+      driver
+    - clk: imx: drop redundant initialization
+    - clk: imx7ulp: Include clk-provider.h instead of clk.h
+    - clk: imx6sl: Add missing of_node_put()
+    - clk: imx8mq: Add missing of_node_put()
+    - clk: imx8mm: Add missing of_node_put()
+    - clk: imx8mn: Add missing of_node_put()
+    - clk: imx8mp: Add missing of_node_put()
+    - clk: imx8mp: Include slab.h instead of clkdev.h
+    - clk: imx8mm: Remove unused includes
+    - clk: imx8mn: Remove unused includes
+    - dt-bindings: imx: Add clock binding doc for i.MX8MP
+    - clk: imx8mp: Rename the IMX8MP_CLK_HDMI_27M clock
+    - clk: imx: imx8mq: fix a53 cpu clock
+    - clk: imx: imx8mm: fix a53 cpu clock
+    - clk: imx: imx8mn: fix a53 cpu clock
+    - clk: imx: imx8mp: fix a53 cpu clock
+    - dt-bindings: clocks: imx8mp: Add ids for audiomix clocks
+    - clk: imx: pll14xx: Return error if pll type is invalid
+    - clk: imx: clk-sscg-pll: Drop unnecessary initialization
+    - clk: imx: pfdv2: switch to use determine_rate
+    - clk: imx: pfdv2: determine best parent rate
+    - clk: imx: pllv4: use prepare/unprepare
+    - clk: imx8mn: A53 core clock no need to be critical
+    - clk: imx8mm: A53 core clock no need to be critical
+    - clk: imx8mp: A53 core clock no need to be critical
+    - clk: imx8mq: A53 core clock no need to be critical
+    - clk: imx7d: Add PXP clock
+    - clk: imx: clk-gate2: Pass the device to the register function
+    - clk: imx: imx6ul: change flexcan clock to support CiA bitrates
+    - clk: imx: drop the dependency on ARM64 for i.MX8M
+    - clk: imx: clk-sscg-pll: Remove unnecessary blank lines
+    - clk: imx: clk-pllv3: Use readl_relaxed_poll_timeout() for PLL lock wait
+    - clk: imx: gate2: Allow single bit gating clock
+    - clk: imx: pll14xx: Add the device as argument when registering
+    - clk: imx: Add helpers for passing the device as argument
+    - clk: imx8m: drop clk_hw_set_parent for A53
+    - clk: imx: imx8mp: fix pll mux bit
+    - clk: imx8mp: Define gates for pll1/2 fixed dividers
+    - clk: imx8mp: use imx8m_clk_hw_composite_core to simplify code
+    - clk: imx8m: migrate A53 clk root to use composite core
+    - clk: imx: add mux ops for i.MX8M composite clk
+    - clk: imx: add imx8m_clk_hw_composite_bus
+    - clk: imx: use imx8m_clk_hw_composite_bus for i.MX8M bus clk slice
+    - clk: imx8mp: add mu root clk
+    - clk: imx: vf610: add CAAM clock
+    - clk: imx: Use fallthrough pseudo-keyword
+    - clk: imx6sl: Use BIT(x) to avoid shifting signed 32-bit value by 31 bits
+    - clk: imx: Support building i.MX common clock driver as module
+    - clk: imx: Add clock configuration for ARMv7 platforms
+    - clk: imx8m: Support module build
+    - clk: imx8qxp: Support building i.MX8QXP clock driver as module
+    - clk: imx: Explicitly include bits.h
+    - clk: imx: vf610: Add CRC clock
+    - clk: imx: Correct the root clk of media ldb on imx8mp
+    - clk: imx: Correct the memrepair clock on imx8mp
+    - clk: imx: fix composite peripheral flags
+    - clk: imx: fix i.MX7D peripheral clk mux flags
+    - clk: imx: Fix and update kerneldoc
+    - clk: imx: gate2: Fix a few typos
+    - clk: imx8m: fix bus critical clk registration
+    - clk: imx: scu: fix MXC_CLK_SCU module build break
+    - clk: imx: scu: add two cells binding support
+    - clk: imx: scu: bypass cpu power domains
+    - clk: imx: scu: allow scu clk to take device pointer
+    - clk: imx: scu: add runtime pm support
+    - clk: imx: scu: add suspend/resume support
+    - clk: imx: imx8qxp-lpcg: add parsing clocks from device tree
+    - clk: imx: lpcg: allow lpcg clk to take device pointer
+    - clk: imx: clk-imx8qxp-lpcg: add runtime pm support
+    - clk: imx: lpcg: add suspend/resume support
+    - clk: imx: remove unneeded semicolon
+    - clk: imx: remove redundant assignment to pointer np
+    - clk: imx: scu: fix build break when compiled as modules
+    - clk: imx: gate2: Remove the IMX_CLK_GATE2_SINGLE_BIT special case
+    - clk: imx: gate2: Keep the register writing in on place
+    - clk: imx: gate2: Check if clock is enabled against cgr_val
+    - clk: imx: gate2: Add cgr_mask for more flexible number of control bits
+    - clk: imx: gate2: Add locking in is_enabled op
+    - clk: imx: gate2: Remove unused variable ret
+    - clk: imx8mm: drop of_match_ptr from of_device_id table
+    - clk: imx8mn: drop of_match_ptr from of_device_id table
+    - clk: imx8mp: drop of_match_ptr from of_device_id table
+    - clk: imx8mq: drop of_match_ptr from of_device_id table
+    - clk: imx: scu: Make pd_np with static keyword
+    - clk: imx: scu: remove the calling of device_is_bound
+    - clk: imx: fix Kconfig warning for i.MX SCU clk
+    - clk: imx: clk-imx8qxp: Add SCU clocks support for DC0 PLL clocks
+    - clk: imx: clk-imx8qxp: Add SCU clocks support for DC0 bypass clocks
+    - clk: imx: clk-imx8qxp: Register DC0 display clocks with imx_clk_scu2()
+    - clk: imx: clk-imx8qxp: Add some SCU clocks support for MIPI-LVDS subsystems
+    - clk: imx6q: demote warning about pre-boot ldb_di_clk reparenting
+    - clk: imx: clk-imx31: Remove unused static const table 'uart_clks'
+    - clk: imx8mq: add PLL monitor output
+    - clk: imx8mm: add clkout1/2 support
+    - clk: imx8mn: add clkout1/2 support
+    - clk: imx: Move 'imx6sl_set_wait_clk()'s prototype out to accessible header
+    - cpufreq: imx-cpufreq-dt: Add i.MX8MP support
+    - cpufreq: imx-cpufreq-dt: Add "cpu-supply" property check
+    - cpufreq: imx6q: read OCOTP through nvmem for imx6q
+    - cpufreq: imx-cpufreq-dt: Correct i.MX8MP's market segment fuse location
+    - cpufreq: dt: Allow platform specific intermediate callbacks
+    - cpufreq: imx6q-cpufreq: Improve the logic of -EPROBE_DEFER handling
+    - cpufreq: imx-cpufreq-dt: support i.MX7ULP
+    - cpufreq: imx6q: Unconditionally call dev_pm_opp_of_remove_table()
+    - watchdog: imx2_wdt: Remove unnecessary blank line
+    - watchdog: imx2_wdt: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
+    - watchdog: imx2_wdt: Use 'dev' instead of dereferencing it repeatedly
+    - watchdog: imx_sc_wdt: Remove unused includes
+    - watchdog: imx2_wdt: Drop .remove callback
+    - watchdog: imx2_wdt: update contact email
+    - gpio: mxc: Support module build
+    - rtc: imx-sc: Align imx sc msg structs to 4
+    - iopoll: introduce read_poll_timeout macro
+    - iopoll: redefined readx_poll_timeout macro to simplify the code
+    - iopoll: Introduce read_poll_timeout_atomic macro
+    - iopoll: update kerneldoc of read_poll_timeout_atomic()
+    - mmc: sdhci-esdhc-imx: Convert to pinctrl_select_default_state()
+    - mmc: sdhci-esdhc-imx: no fail when no pinctrl available
+    - mmc: sdhci-esdhci-imx: retune needed for Mega/Mix enabled SoCs
+    - mmc: sdhci-esdhc-imx: restore the per_clk rate in PM_RUNTIME
+    - mmc: sdhci-esdhc-imx: add strobe-dll-delay-target support
+    - mmc: sdhci-esdhc-imx: optimize the clock setting
+    - mmc: sdhci-esdhc-imx: optimize the strobe dll setting
+    - mmc: sdhci-esdhc-imx: add flag ESDHC_FLAG_BROKEN_AUTO_CMD23
+    - mmc: sdhci-esdhc-imx: Add an new esdhc_soc_data for i.MX8MM
+    - mmc: sdhci-esdhc-imx: clear pending interrupt and halt cqhci
+    - mmc: sdhci-esdhc-imx: clear DMA_SEL when disable DMA mode
+    - mmc: sdhci-esdhc-imx: restore pin state when resume back
+    - mmc: sdhci: use FIELD_GET for preset value bit masks
+    - mmc: sdhci: use FIELD_GET/PREP for capabilities bit masks
+    - mmc: sdhci: use FIELD_GET/PREP for current capabilities bit masks
+    - mmc: sdhci-esdhc: update contact email
+    - mmc: sdhci-esdhc-imx: Add HS400 support for i.MX6SLL
+    - mmc: host: sdhci-esdhc-imx: add wakeup feature for GPIO CD pin
+    - mmc: sdhci-esdhc-imx: disable the CMD CRC check for standard tuning
+    - mmc: sdhci-msm: Introduce new ops to dump vendor specific registers
+    - mmc: sdhci-esdhc-imx: dump internal IC debug status during error
+    - mmc: sdhci-esdhc-imx: Reset before sending tuning command for manual tuning
+    - mmc: sdhci-esdhc-imx: remove unused code
+    - mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
+    - mmc: sdhci-of-esdhc: make sure delay chain locked for HS400
+    - nvmem: core: add nvmem_cell_read_common
+    - nvmem: core: add nvmem_cell_read_u64
+    - soc: imx8: Using existing serial_number instead of UID
+    - soc: imx-scu: Using existing serial_number instead of UID
+    - soc: imx8mq: Read SOC revision from TF-A
+    - soc: imx8: print SoC type and revision
+    - soc: imx: Add i.MX8MP SoC driver support
+    - soc: imx: Enable compile testing of IMX_SCU_SOC
+    - soc: imx: gpcv2: include linux/sizes.h
+    - soc: imx: increase build coverage for imx8m soc driver
+    - soc: imx: drop COMPILE_TEST for IMX_SCU_SOC
+    - soc: imx8: select SOC_BUS
+    - soc: imx8m: Correct i.MX8MP UID fuse offset
+    - soc: imx8m: fix build warning
+    - soc: imx: scu: use devm_kasprintf
+    - cpuidle: Consolidate disabled state checks
+    - cpuidle: Introduce cpuidle_driver_state_disabled() for driver quirks
+    - ARM: imx: Drop imx_anatop_usb_chrg_detect_disable()
+    - ARM: imx: Add serial number support for i.MX6/7 SoCs
+    - ARM: imx: use generic function to exit coherency
+    - ARM: imx: Correct ocotp id for serial number support of i.MX6ULL/ULZ SoCs
+    - ARM: imx: Fix boot crash if ocotp is not found
+    - ARM: imx: Add i.MX7ULP SoC serial number support
+    - ARM: imx: limit errata selection to Cortex-A9 based designs
+    - ARM: imx: Remove unused include of linux/irqchip/arm-gic.h
+    - ARM: imx: Remove unused includes on mach-imx6q.c
+    - ARM: imx: Remove unused include of linux/of.h on mach-imx6sl.c
+    - ARM: imx: Add missing of_node_put()
+    - ARM: imx: Remove unnecessary blank lines
+    - ARM: imx: Drop unnecessary src_base check
+    - ARM: vf610: report soc info via soc device
+    - ARM: imx: use device_initcall for imx_soc_device_init
+    - ARM: imx: move cpu definitions into a header
+    - soc: imx: move cpu code to drivers/soc/imx
+    - ARM: imx: Provide correct number of resources when registering gpio devices
+    - ARM: imx: Place "Cortex-A/Cortex-M" comment in the correct location
+    - ARM: imx: Use correct SRC base address
+    - ARM: imx: Add revision support for i.MX7ULP revision 2.2
+    - ARM: imx: imx7ulp: Add a comment explaining the B2 silicon version
+    - ARM: imx: mach-imx6q: correctly identify i.MX6QP SoCs
+    - ARM: mach-imx: imx6ul: Print SOC revision on boot
+    - soc: imx: select ARM_GIC_V3 for i.MX8M
+    - ARM: imx: fix imx8m dependencies
+    - soc: imx8m: change to use platform driver
+    - pwm: imx27: Cache duty cycle register value
+    - pwm: imx27: Unconditionally write state to hardware
+    - pwm: imx27: Eliminate error message for defer probe
+    - pwm: imx27: Fix clock handling in pwm_imx27_apply()
+    - pwm: imx27: Simplify helper function to enable and disable clocks
+    - pwm: imx27: Don't disable clocks at device remove time
+    - pwm: imx27: Ensure clocks being on iff the PWM is on
+    - pwm: imx-tpm: Remove unused includes
+    - pwm: imx27: Remove unused include of of_device.h
+    - pwm: imx27: Fix rounding behavior
+    - pwm: imx-tpm: Use 64-bit division macro
+    - pwm: imx27: Use 64-bit division macro
+    - pwm: imx27: Fix overflow for bigger periods
+    - arm64: defconfig: add pca9450 pmic driver
+    - dt-bindings: regulator: add pca9450 regulator yaml
+    - regulator: pca9450: Add sd-vsel GPIO
+    - regulator: pca9450: add pca9450 pmic driver
+    - regulator: pca9450: Convert to use module_i2c_driver
+    - regulator: pca9450: Constify static regulator_ops
+    - regulator: pca9450: Add SD_VSEL GPIO for LDO5
+    - regulator: pca9450: Enable system reset on WDOG_B assertion
+    - phy: freescale: imx8mq-usb: add support for imx8mp usb phy
+    - dt-bindings: phy-imx8mq-usb: add compatible string for imx8mp usb phy
+    - phy: fsl-imx8mq-usb: Constify imx8mq_usb_phy_ops
+    - phy: fsl-imx8mq-usb: Constify imx8mp_usb_phy_ops
+    - phy: freescale: convert to devm_platform_ioremap_resource
+    - dt-bindings: imx: Add pinctrl binding doc for i.MX8MP
+    - dt-bindings: pinctrl: imx8mp: Replace the uint32-array with uint32-matrix
+    - usb: chipidea: debug: create debugfs directory under usb root
+    - usb: chipidea: udc: add new API ci_hdrc_gadget_connect
+    - usb: chipidea: udc: protect usb interrupt enable
+    - usb: chipidea: imx: enable vbus and id wakeup only for OTG events
+    - usb: chipidea: core: change vbus-regulator as optional
+    - usb: chipidea: imx: check data->usbmisc_data against NULL before access
+    - usb: chipidea: imx: change hsic power regulator as optional
+    - usb: chipidea: imx: refine the error handling for hsic
+    - usb: chipidea: imx: pinctrl for HSIC is optional
+    - usb: chipidea: ci_hdrc_imx: restore pinctrl
+    - usb: chipidea: usbmisc_imx: Use of_device_get_match_data()
+    - usb: chipidea: ci_hdrc_imx: Use of_device_get_match_data()
+    - USB: host: Use the correct style for SPDX License Identifier
+    - usb: host: ehci-fsl: Fix incorrectly named function argument
+    - crypto: caam - use mapped_{src,dst}_nents for descriptor
+    - crypto: caam - use devres to unmap memory
+    - crypto: caam - use devres to remove debugfs
+    - crypto: caam - use devres to de-initialize the RNG
+    - crypto: caam - use devres to de-initialize QI
+    - crypto: caam - use devres to populate platform devices
+    - crypto: caam - populate platform devices last
+    - crypto: caam - remove double buffering for ahash
+    - crypto: caam/qi2 - remove double buffering for ahash
+    - crypto: caam - Add support for i.MX8M Mini
+    - crypto: caam - add support for i.MX8M Nano
+    - crypto: caam - add support for i.MX8M Plus
+    - crypto: caam/qi - optimize frame queue cleanup
+    - drm/fsl-dcu: Use simple encoder
+    - drm/etnaviv: avoid deprecated timespec
+    - drm/etnaviv: Use dma_resv locking wrappers
+    - drm/etnaviv: update hardware headers from rnndb
+    - drm/etnaviv: determine product, customer and eco id
+    - drm/etnaviv: show identity information in debugfs
+    - drm/etnaviv: update gc7000 chip identity entry
+    - drm/etnaviv: update hwdb selection logic
+    - drm/etnaviv: add hwdb entry for gc400 found in STM32
+    - drm/etnaviv: Fix typo in comment
+    - drm/etnaviv: Update idle bits
+    - drm/etnaviv: Consider all kwnown idle bits in debugfs
+    - drm/etnaviv: Ignore MC when checking runtime suspend idleness
+    - drm/etnaviv: Warn when GPU doesn't idle fast enough
+    - drm/etnaviv: Replace zero-length array with flexible-array member
+    - drm/etnaviv: request pages from DMA32 zone when needed
+    - drm/etnaviv: remove check for return value of drm_debugfs_create_files()
+    - drm/etnaviv: remove _unlocked suffix in drm_gem_object_put_unlocked
+    - drm/etnaviv: Don't ignore errors on getting clocks
+    - drm/etnaviv: Make the "core" clock mandatory
+    - drm/etnaviv: Simplify clock enable/disable
+    - drm/etnaviv: fix external abort seen on GC600 rev 0x19
+    - drm/etnaviv: always start/stop scheduler in timeout processing
+    - drm/imx: plane_state->fb iff plane_state->crtc
+    - drm/imx: pd: Use bus format/flags provided by the bridge when available
+    - drm/imx: Remove the bogus possible_clones setup
+    - drm/imx: Use simple encoder
+    - drm/imx: Use __drm_atomic_helper_crtc_reset
+    - drm/imx: parallel-display: Adjust bus_flags handling
+    - drm/imx: drop useless best_encoder callback
+    - drm/imx: imx-ldb: remove useless enum
+    - drm/imx: parallel-display: move panel/bridge detection to fail early
+    - drm/imx: imx-tve: Delete an error message in imx_tve_bind()
+    - drm/imx: compile imx directory by default
+    - drm/imx: Add initial support for DCSS on iMX8MQ
+    - drm/imx/dcss: use drm_bridge_connector API
+    - MAINTAINERS: Add entry for i.MX 8MQ DCSS driver
+    - dt-bindings: display: imx: add bindings for DCSS
+    - drm/imx/dcss: fix compilation issue on 32bit
+    - drm/imx/dcss: fix unused but set variable warnings
+    - drm/imx: dw_hdmi-imx: use imx_drm_encoder_parse_of
+    - drm/imx: imx-ldb: reduce scope of edid_len
+    - drm/imx/dcss: fix rotations for Vivante tiled formats
+    - drm/imx/dcss: fix coccinelle warning
+    - drm/imx/dcss: allow using nearest neighbor interpolation scaling
+    - drm/imx: depend on COMMON_CLK to fix compile tests
+    - gpu: drm: imx: convert comma to semicolon
+    - media: imx: enable V4L2_PIX_FMT_XBGR32, _BGRX32, and _RGBX32
+    - media: staging: media: imx: Fix alignment to match open parenthesis
+    - media: staging: media: imx: Use devm_platform_ioremap_resource().
+    - media: imx: Move capture device init to registered
+    - media: imx: Move pads init to probe
+    - media: imx7-mipi-csis: make array 'registers' static const, makes object
+      smaller
+    - media: imx7-mipi-csis: remove subdev_notifier
+    - media: imx: Propagate quantization and encoding in CSI
+    - media: imx: imx7_mipi_csis: Print the RESOL_CH0 register
+    - media: imx: imx7_mipi_csis: Add greyscale formats support
+    - media: imx: imx7-mipi-csis: Filter on CSI-2 data type
+    - media: imx: imx7-media-csi: Remove unneeded register read
+    - media: imx: imx6-media-csi: Replace Y16 with Y10 and Y12
+    - media: imx: imx6-media-csi: Support clamping Y10 and Y12 to Y8
+    - media: imx: imx7-media-csi: Add Y10 and Y12 formats support
+    - media: imx: imx7-media-csi: Support clamping Y10 and Y12 to Y8
+    - staging: media: imx: remove temporary variable
+    - staging: media: imx: remove parentheses
+    - media: imx: imx7-mipi-csis: Centralize initialization of pad formats
+    - media: imx: imx7-mipi-csis: Add missing RAW formats
+    - media: imx: imx7-mipi-csis: Expose correct YUV formats
+    - media: imx: imx7-mipi-csis: Fix MEDIA_BUS_FMT_UYVY8_2X8 data alignment
+    - media: imx: imx7-mipi-csis: Add MEDIA_BUS_FMT_UYVY10_2X10 support
+    - media: imx: imx7-mipi-csis: Rename data_alignment field to width
+    - media: imx: imx7-mipi-csis: Align image width based on format
+    - media: imx: imx7-mipi-csis: Never set MIPI_CSIS_ISPCFG_ALIGN_32BIT
+    - media: imx: imx7-mipi-csis: Align macro definitions
+    - media: imx: imx7-mipi-csis: Remove link setup on source pad
+    - media: imx: imx7-mipi-csis: Cleanup includes
+    - media: imx: imx7-mipi-csis: Don't use imx-media-utils helpers
+    - media: imx: imx7-mipi-csis: Implement the .enum_mbus_code() operation
+    - media: imx: utils: fix and simplify pixel format enumeration
+    - media: imx: utils: fix media bus format enumeration
+    - media: imx: utils: Inline init_mbus_colorimetry() in its caller
+    - media: imx: utils: Handle Bayer format lookup through a selection flag
+    - media: imx: Fix some pixel format selections
+    - media: imx: utils: Rename pixel format selection enumeration
+    - media: imx: utils: Introduce PIXFMT_SEL_IPU
+    - media: imx: utils: Make imx_media_pixfmt handle variable number of codes
+    - media: imx: utils: Split find|enum_format into fourcc and mbus functions
+    - media: imx: utils: Rename format lookup and enumeration functions
+    - media: imx: utils: Constify some mbus and ipu_image arguments
+    - media: imx-media-csc-scaler: Use a shorter name for driver
+    - media: imx: utils: Default colorspace to SRGB
+    - media: staging: media: imx: no need to check return value of debugfs_create
+      functions
+    - media: imx: Parse information from firmware without using callbacks
+    - media: v4l2-mc: add v4l2_create_fwnode_links helpers
+    - media: v4l2: Correct kernel-doc inconsistency
+    - media: entity: Pass entity to get_fwnode_pad operation
+    - media: v4l2-subdev: add v4l2_subdev_get_fwnode_pad_1_to_1
+    - media: video-mux: Parse information from firmware without using callbacks
+    - media: video-mux: Implement get_fwnode_pad op
+    - media: video-mux: Create media links in bound notifier
+    - media: imx: csi: Implement get_fwnode_pad op
+    - media: imx: mipi csi-2: Implement get_fwnode_pad op
+    - media: imx: imx7-mipi-csis: Implement get_fwnode_pad op
+    - media: imx: imx7-media-csi: Implement get_fwnode_pad op
+    - media: imx: mipi csi-2: Create media links in bound notifier
+    - media: imx7: mipi csis: Create media links in bound notifier
+    - media: imx7: csi: Create media links in bound notifier
+    - media: imx: csi: Create media links in bound notifier
+    - media: imx7: csi: Remove imx7_csi_get_upstream_endpoint()
+    - media: imx5/6/7: csi: Mark a bound video mux as a CSI mux
+    - media: imx: csi: Lookup upstream endpoint with imx_media_get_pad_fwnode
+    - media: imx: Create missing links from CSI-2 receiver
+    - media: imx: silence a couple debug messages
+    - media: imx: TODO: Remove media link creation todos
+    - staging/media: Remove unneeded geometry restrictions from i.MX CSI driver
+    - media: staging: media: imx: Update TODO entry
+    - media: staging: media: imx: remove commented code
+    - media: staging: media: imx: remove unnecessary variable use
+    - media: staging/imx: Increase IMX_MEDIA_EOF_TIMEOUT
+    - media: staging: media: imx: Kconfig: support VIDEO_IMX7_CSI for imx8m
+    - media: imx: Clean capture unregister
+    - media: imx7: csi: Fix regression for parallel cameras on i.MX6UL
+    - media: imx7: csi: Fix pad link validation
+    - media: imx6-mipi-csi2: Call remote subdev get_mbus_config to get active
+      lanes
+    - thermal: imx_thermal: Use __maybe_unused instead of CONFIG_PM_SLEEP
+    - thermal: imx: Remove unused includes
+    - thermal: imx: Calling imx_thermal_unregister_legacy_cooling() in .remove
+    - stmmac: platform: add "snps, dwmac-5.10a" IP compatible string
+    - net: ethernet: dwmac: add ethernet glue logic for NXP imx8 chip
+    - net: ethernet: dwmac: Fix an error code in imx_dwmac_probe()
+    - arm64: dts: imx8mp: Correct the gpio ranges of gpio3
+    - clk: imx8mp: Remove the none exist pcie clocks
+    - clk: imx8mq: Correct the pcie1 sels
+    - arm64: dts: imx8mp: add eqos node and alias
+    - arm64: dts: imx8mp: add wdog2/3 nodes
+    - net: fec: remove redundant assignment to pointer bdp
+    - net: fec: Prevent unbind operation
+    - net: ethernet: fec: Replace interrupt driven MDIO with polled IO
+    - net: ethernet: fec: Allow configuration of MDIO bus speed
+    - net: ethernet: fec: Allow the MDIO preamble to be disabled
+    - net: ethernet: fec: Prevent MII event after MII_SPEED write
+    - Revert "net: ethernet: fec: Prevent MII event after MII_SPEED write"
+    - net: ethernet: fec: Revert "net: ethernet: fec: Replace interrupt driven
+      MDIO with polled IO"
+    - net: ethernet: fec: Replace interrupt driven MDIO with polled IO
+    - net: ethernet: fec: move GPR register offset and bit into DT
+    - net: fec: disable correct clk in the err path of fec_enet_clk_enable
+    - net: ethernet: fec: prevent tx starvation under high rx load
+    - net: fec: Set max MTU size to allow the MTU to be changed
+    - net: fec: enable to use PPS feature without time stamping
+    - net: fec: initialize clock with 0 rather than current kernel time
+    - net: fec: get rid of redundant code in fec_ptp_set()
+    - net: fec: replace snprintf() with strlcpy() in fec_ptp_init()
+    - net: ethernet: fec: remove redundant null check before
+      clk_disable_unprepare()
+    - net: fec: ptp: remove unused variable 'ns' in fec_time_keep()
+    - net: fec_mpc52xx: Replace in_interrupt() usage
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: fix MDIO probing for some FEC hardware blocks
+    - net: fec: Fix reference count leak in fec series ops
+    - net: fec: put child node on error path
+    - net: fec: Fix temporary RMII clock reset on link up
+    - net: fec: Silence M5272 build warnings
+    - net: stmmac: dwc-qos: use generic device api
+    - net: stmmac: dwc-qos: avoid clk and reset for acpi device
+    - net: stmmac: Print more information in DebugFS DMA Capabilities file
+    - net: stmmac: Let TX and RX interrupts be independently enabled/disabled
+    - net: stmmac: Always use TX coalesce timer value when rescheduling
+    - net: stmmac: Add basic EST support for GMAC5+
+    - net: stmmac: Add basic EST support for XGMAC
+    - net: stmmac: Integrate EST with TAPRIO scheduler API
+    - net: stmmac: Add Frame Preemption support using TAPRIO API
+    - net: stmmac: gmac5+: Add support for Frame Preemption
+    - net: stmmac: xgmac3+: Add support for Frame Preemption
+    - net: stmmac: mmc: Add Frame Preemption counters on GMAC5+ cores
+    - net: stmmac: tc: Fix TAPRIO division operation
+    - net: stmmac: Do not accept invalid MTU values
+    - stmmac: debugfs entry name is not be changed when udev rename device name.
+    - net: stmmac: xgmac: Fix missing return
+    - net: stmmac: gmac5+: Fix missing return
+    - net: stmmac: modified pcs mode support for RGMII
+    - net: stmmac: fix incorrect GMAC_VLAN_TAG register writting in GMAC4+
+    - net: ethernet: stmmac: don't warn about missing optional wakeup IRQ
+    - net: stmmac: fix notifier registration
+    - net: stmmac: use readl_poll_timeout() function in init_systime()
+    - net: stmmac: use readl_poll_timeout() function in dwmac4_dma_reset()
+    - net: stmmac: dwmac_lib: remove unnecessary checks in dwmac_dma_reset()
+    - net: stmmac: Remove WAKE_MAGIC if HW shows no pmt_magic_frame
+    - net: stmmac: Move device_can_wakeup() check earlier in set_wol
+    - net: stmmac: only call pmt() during suspend/resume if HW enables PMT
+    - net: stmmac: Support WOL with phy
+    - net: stmmac: fix failed to suspend if phy based WOL is enabled
+    - net: stmmac: increase the timeout for dma reset
+    - net: stmmac: overwrite the dma_cap.addr64 according to HW design
+    - net: stmmac: fix taprio schedule configuration
+    - net: stmmac: fix taprio configuration when base_time is in the past
+    - extcon: ptn5150: Use generic "interrupts" property
+    - extcon: ptn5150: Simplify getting vbus-gpios with flags
+    - extcon: ptn5150: Lower the noisiness of probe
+    - extcon: ptn5150: Check current USB mode when probing
+    - extcon: ptn5150: Make 'vbus-gpios' optional
+    - extcon: ptn5150: Convert to module_i2c_driver
+    - extcon: ptn5150: Set the VBUS and POLARITY property capability
+    - extcon: ptn5150: Use defines for registers
+    - usb: dwc3: debugfs: do not queue work if try to change mode on non-drd
+    - usb: dwc3: add imx8mp dwc3 glue layer driver
+    - net: fec: add eee mode tx lpi support
+    - net: fec: change the default rx copybreak value to maximum
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Mon, 31 May 2021 18:02:41 +0800
+
+linux-imx (5.4.0-1000.1) focal; urgency=medium
+
+  * Initial focal/imx packaging
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 16 Apr 2021 00:50:22 +0800
--- linux-ein-5.4.0.orig/debian.ein/config/annotations
+++ linux-ein-5.4.0/debian.ein/config/annotations
@@ -0,0 +1,4920 @@
+# Menu: HEADER
+# FORMAT: 4
+# ARCH: arm64 armhf
+# FLAVOUR: arm64-ein armhf-ein
+
+include "../../debian.master/config/annotations"
+
+CONFIG_ARCH_ROCKCHIP                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_ROCKCHIP                            note<'LP:1566283 / LP:1825222'>
+
+CONFIG_ARM_HIGHBANK_CPUIDLE                     policy<{'armhf': 'n'}>
+CONFIG_ARM_HIGHBANK_CPUIDLE                     note<'broken on ecx-1000'>
+
+CONFIG_ATA_PIIX                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATA_PIIX                                 note<'LP:1627324'>
+
+CONFIG_CMA_SIZE_MBYTES                          policy<{'arm64': '320', 'armhf': '32'}>
+CONFIG_CMA_SIZE_MBYTES                          note<'LP:1823753'>
+
+CONFIG_CPUFREQ_DT                               policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_CPUFREQ_DT                               note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE         note<'for bootspeed'>
+
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE                note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_GOV_POWERSAVE                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CPU_FREQ_GOV_POWERSAVE                   note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_GOV_USERSPACE                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CPU_FREQ_GOV_USERSPACE                   note<'not autoloadable'>
+
+CONFIG_DRM_AMDGPU_CIK                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_AMDGPU_CIK                           note<'LP:1661887 for zesty'>
+
+CONFIG_DRM_BOCHS                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_BOCHS                                note<'LP#1916290'>
+
+CONFIG_DRM_HISI_HIBMC                           policy<{'arm64': 'n'}>
+CONFIG_DRM_HISI_HIBMC                           note<'LP:1762940'>
+
+CONFIG_DRM_MGAG200                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MGAG200                              note<'LP#1693337'>
+
+CONFIG_DVB_DUMMY_FE                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_DUMMY_FE                             note<'expert use only'>
+
+CONFIG_EFIVAR_FS                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_EFIVAR_FS                                note<'needed for variable EFI update'>
+
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK           note<'LP#1398458'>
+
+CONFIG_GPIO_EM                                  policy<{'armhf': '-'}>
+CONFIG_GPIO_EM                                  note<'h/w not encounted'>
+
+CONFIG_GPIO_TWL4030                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_TWL4030                             note<'LP:#921934'>
+
+CONFIG_HOTPLUG_PCI_SHPC                         policy<{'arm64': 'n'}>
+CONFIG_HOTPLUG_PCI_SHPC                         note<'LP#1374440'>
+
+CONFIG_IPMMU_VMSA                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPMMU_VMSA                               note<'LP:1718734'>
+
+CONFIG_IP_PNP                                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IP_PNP                                   note<'LP:1259861'>
+
+CONFIG_MFD_SM501                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_SM501                                note<'boot essential on OMAP4'>
+
+CONFIG_MFD_TPS65217                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_TPS65217                             note<'boot essential on AM335x'>
+
+CONFIG_MMC_OMAP_HS                              policy<{'armhf': '-'}>
+CONFIG_MMC_OMAP_HS                              note<'boot essential on arm'>
+
+CONFIG_MMC_SDHCI                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_SDHCI                                note<'installation essential on omap/highbank'>
+
+CONFIG_MMC_SDHCI_PLTFM                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_SDHCI_PLTFM                          note<'boot essential on highbank'>
+
+CONFIG_MTD                                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTD                                      note<'boot essential on arm'>
+
+CONFIG_MTD_BLOCK                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_BLOCK                                note<'boot essential on arm'>
+
+CONFIG_MTD_DOCG3                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_DOCG3                                note<'LP:1792205'>
+
+CONFIG_MTD_NAND_OMAP2                           policy<{'armhf': '-'}>
+CONFIG_MTD_NAND_OMAP2                           note<'boot essential on arm'>
+
+CONFIG_MTD_NAND_OMAP_BCH                        policy<{'armhf': '-'}>
+CONFIG_MTD_NAND_OMAP_BCH                        note<'boot essential on arm'>
+
+CONFIG_MTD_OF_PARTS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_OF_PARTS                             note<'boot essential on arm'>
+
+CONFIG_MTD_RAW_NAND                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_RAW_NAND                             note<'boot essential on arm'>
+
+CONFIG_NET_VENDOR_EMULEX                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_EMULEX                        note<'LP:1543165'>
+
+CONFIG_NOP_USB_XCEIV                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NOP_USB_XCEIV                            note<'boot essential on omap/highbank'>
+
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT               note<'Selects CONFIG_DRM_LEGACY which is not wanted'>
+
+CONFIG_NR_CPUS                                  policy<{'arm64': '4', 'armhf': '4'}>
+CONFIG_NR_CPUS                                  note<'LP:1864198'>
+
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED           policy<{'arm64': '-'}>
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED           note<'LP:1557690'>
+
+CONFIG_PATA_HPT3X3_DMA                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PATA_HPT3X3_DMA                          note<'DMA mode is documented problematic'>
+
+CONFIG_REGULATOR_FIXED_VOLTAGE                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_REGULATOR_FIXED_VOLTAGE                  note<'boot essential on arm'>
+
+CONFIG_REGULATOR_TPS65217                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_TPS65217                       note<'boot essential on AM335x'>
+
+CONFIG_REGULATOR_TWL4030                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_TWL4030                        note<'boot requisite for omap4'>
+
+CONFIG_RTC_DRV_CMOS                             policy<{'armhf': 'y'}>
+CONFIG_RTC_DRV_CMOS                             note<'boot essential on i386/amd64'>
+
+CONFIG_RTC_DRV_EFI                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_EFI                              note<'LP:#1583738'>
+
+CONFIG_RTC_DRV_TWL4030                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_TWL4030                          note<'boot essential on OMAP3/OMAP4'>
+
+CONFIG_SAMPLE_TRACE_PRINTK                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_TRACE_PRINTK                      note<'Required for ftrace selftests'>
+
+CONFIG_SATA_AHCI_PLATFORM                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SATA_AHCI_PLATFORM                       note<'boot essential on highbank'>
+
+CONFIG_SATA_HIGHBANK                            policy<{'armhf': '-'}>
+CONFIG_SATA_HIGHBANK                            note<'LP:1703430'>
+
+CONFIG_SCSI_IPR_DUMP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_IPR_DUMP                            note<'LP:1343109'>
+
+CONFIG_SCSI_IPR_TRACE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_IPR_TRACE                           note<'LP:1343109'>
+
+CONFIG_SERIAL_SH_SCI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_SH_SCI                            note<'LP: #2022361'>
+
+CONFIG_SERIAL_SH_SCI_CONSOLE                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_SH_SCI_CONSOLE                    note<'LP: #2022361'>
+
+CONFIG_SERIAL_SH_SCI_EARLYCON                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_SH_SCI_EARLYCON                   note<'LP: #2022361'>
+
+CONFIG_SND                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND                                      note<'not autoloadable on omap'>
+
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT               note<'LP:1804265'>
+
+CONFIG_SND_HDA_RECONFIG                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_RECONFIG                         note<'allows fixes to be tested live'>
+
+CONFIG_SND_PCM_OSS                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_PCM_OSS                              note<'deprecated in favour of pulseaudio emulation'>
+
+CONFIG_SND_SOC                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC                                  note<'not autoloadable on omap'>
+
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              note<'LP:1848490'>
+
+CONFIG_SOUND                                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SOUND                                    note<'not autoloadable on omap'>
+
+CONFIG_TEST_BLACKHOLE_DEV                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TEST_BLACKHOLE_DEV                       note<'Used by net selftests'>
+
+CONFIG_USB_EHCI_HCD_PLATFORM                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_EHCI_HCD_PLATFORM                    note<'Dont use the generic ehci/ohci code on omap, it doesnt work'>
+
+CONFIG_USB_HCD_BCMA                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_HCD_BCMA                             note<'USB_{O,E}HCI_HCD_PLATFORM must be off on omap'>
+
+CONFIG_USB_HCD_SSB                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_HCD_SSB                              note<'USB_{O,E}HCI_HCD_PLATFORM must be off on omap'>
+
+CONFIG_USB_MUSB_HDRC                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_MUSB_HDRC                            note<'not autoloadable on omap'>
+
+CONFIG_USB_XHCI_DBGCAP                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_XHCI_DBGCAP                          note<'LP:1730832'>
+
+CONFIG_XEN_BLKDEV_FRONTEND                      policy<{'arm64': '-'}>
+CONFIG_XEN_BLKDEV_FRONTEND                      note<'not autoloadable -- XEN paravirt support'>
+
+CONFIG_XEN_NETDEV_FRONTEND                      policy<{'arm64': '-'}>
+CONFIG_XEN_NETDEV_FRONTEND                      note<'not autoloadable -- XEN paravirt support'>
+
+
+# ---- Annotations without notes ----
+
+CONFIG_8139CP                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_8139TOO                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_8139TOO_8129                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_8139TOO_PIO                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_8139TOO_TUNE_TWISTER                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_8139_OLD_RX_RESET                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AC97_BUS                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ACENIC                                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ACENIC_OMIT_TIGON_I                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ACPI_ALS                                 policy<{'arm64': 'n'}>
+CONFIG_ACPI_APEI                                policy<{'arm64': 'n'}>
+CONFIG_ACPI_APEI_EINJ                           policy<{'arm64': '-'}>
+CONFIG_ACPI_APEI_ERST_DEBUG                     policy<{'arm64': '-'}>
+CONFIG_ACPI_APEI_GHES                           policy<{'arm64': '-'}>
+CONFIG_ACPI_APEI_MEMORY_FAILURE                 policy<{'arm64': '-'}>
+CONFIG_ACPI_APEI_PCIEAER                        policy<{'arm64': '-'}>
+CONFIG_ACPI_APEI_SEA                            policy<{'arm64': '-'}>
+CONFIG_ACPI_BGRT                                policy<{'arm64': 'n'}>
+CONFIG_ACPI_CONFIGFS                            policy<{'arm64': 'n'}>
+CONFIG_ACPI_CPPC_CPUFREQ                        policy<{'arm64': 'n'}>
+CONFIG_ACPI_CPPC_LIB                            policy<{'arm64': '-'}>
+CONFIG_ACPI_DOCK                                policy<{'arm64': 'n'}>
+CONFIG_ACPI_EC_DEBUGFS                          policy<{'arm64': 'n'}>
+CONFIG_ACPI_HED                                 policy<{'arm64': 'n'}>
+CONFIG_ACPI_HMAT                                policy<{'arm64': 'n'}>
+CONFIG_ACPI_HOTPLUG_MEMORY                      policy<{'arm64': 'n'}>
+CONFIG_ACPI_IPMI                                policy<{'arm64': 'n'}>
+CONFIG_ACPI_NFIT                                policy<{'arm64': 'n'}>
+CONFIG_ACPI_PCI_SLOT                            policy<{'arm64': 'n'}>
+CONFIG_ACPI_TAD                                 policy<{'arm64': 'n'}>
+CONFIG_ACPI_WATCHDOG                            policy<{'arm64': '-'}>
+CONFIG_AD525X_DPOT_I2C                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_AD8366                                   policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_ADAPTEC_STARFIRE                         policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ADF4371                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ADIS16460                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ADM8211                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_AHCI_BRCM                                policy<{'arm64': '-'}>
+CONFIG_AHCI_DM816                               policy<{'armhf': '-'}>
+CONFIG_AHCI_IMX                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_AHCI_MTK                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AHCI_MVEBU                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AHCI_SUNXI                               policy<{'arm64': '-'}>
+CONFIG_AHCI_TEGRA                               policy<{'armhf': '-'}>
+CONFIG_AHCI_XGENE                               policy<{'arm64': '-'}>
+CONFIG_AIC79XX_CMDS_PER_DEVICE                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC79XX_DEBUG_ENABLE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC79XX_DEBUG_MASK                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC79XX_REG_PRETTY_PRINT                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC79XX_RESET_DELAY_MS                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC7XXX_CMDS_PER_DEVICE                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC7XXX_DEBUG_ENABLE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC7XXX_DEBUG_MASK                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC7XXX_REG_PRETTY_PRINT                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC7XXX_RESET_DELAY_MS                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIC94XX_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AIRO_CS                                  policy<{'armhf': 'n'}>
+CONFIG_ALIM7101_WDT                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ALPINE_MSI                               policy<{'armhf': '-'}>
+CONFIG_ALTERA_FREEZE_BRIDGE                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_ALTERA_MBOX                              policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_ALTERA_MSGDMA                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_ALTERA_PR_IP_CORE                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_ALTERA_PR_IP_CORE_PLAT                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ALTERA_TSE                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_ALX                                      policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_AL_FIC                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_AMBA_PL08X                               policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_AMD8111_ETH                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_AMD_XGBE                                 policy<{'arm64': '-'}>
+CONFIG_AMD_XGBE_DCB                             policy<{'arm64': '-'}>
+CONFIG_ANDROID_BINDERFS                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ANDROID_BINDER_DEVICES                   policy<{'arm64': '"binder,hwbinder,vndbinder"', 'armhf': '"binder,hwbinder,vndbinder"'}>
+CONFIG_APPLICOM                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_APQ_GCC_8084                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_APQ_MMCC_8084                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_AQTION                                   policy<{'arm64': 'n'}>
+CONFIG_ARCH_ACTIONS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_AGILEX                              policy<{'arm64': 'n'}>
+CONFIG_ARCH_ALPINE                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_ARTPEC                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_ASPEED                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_BCM2835                             policy<{'arm64': 'n'}>
+CONFIG_ARCH_BCM_IPROC                           policy<{'arm64': 'n'}>
+CONFIG_ARCH_BERLIN                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_BITMAIN                             policy<{'arm64': 'n'}>
+CONFIG_ARCH_BRCMSTB                             policy<{'arm64': 'n'}>
+CONFIG_ARCH_EMEV2                               policy<{'armhf': '-'}>
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION           policy<{'arm64': '-'}>
+CONFIG_ARCH_EXYNOS                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_EXYNOS3                             policy<{'armhf': '-'}>
+CONFIG_ARCH_EXYNOS4                             policy<{'armhf': '-'}>
+CONFIG_ARCH_EXYNOS5                             policy<{'armhf': '-'}>
+CONFIG_ARCH_HAS_BANDGAP                         policy<{'armhf': '-'}>
+CONFIG_ARCH_HAS_RESET_CONTROLLER                policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_ARCH_HI3xxx                              policy<{'armhf': '-'}>
+CONFIG_ARCH_HIGHBANK                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_HIP01                               policy<{'armhf': '-'}>
+CONFIG_ARCH_HIP04                               policy<{'armhf': '-'}>
+CONFIG_ARCH_HISI                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_HIX5HD2                             policy<{'armhf': '-'}>
+CONFIG_ARCH_INLINE_READ_LOCK                    policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_LOCK_BH                 policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_LOCK_IRQ                policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE            policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK                  policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK_BH               policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ              policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE       policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK                    policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK_BH                 policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ                policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE            policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK                 policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH              policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK                  policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH               policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ              policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE       policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK                   policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK_BH                policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ               policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE           policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK                 policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH              policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ             policy<{'arm64': '-'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE      policy<{'arm64': '-'}>
+CONFIG_ARCH_K3                                  policy<{'arm64': 'n'}>
+CONFIG_ARCH_K3_AM6_SOC                          policy<{'arm64': '-'}>
+CONFIG_ARCH_K3_J721E_SOC                        policy<{'arm64': '-'}>
+CONFIG_ARCH_LAYERSCAPE                          policy<{'arm64': 'n'}>
+CONFIG_ARCH_LG1K                                policy<{'arm64': 'n'}>
+CONFIG_ARCH_MDM9615                             policy<{'armhf': '-'}>
+CONFIG_ARCH_MEDIATEK                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_MESON                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_MILBEAUT                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_MILBEAUT_M10V                       policy<{'armhf': '-'}>
+CONFIG_ARCH_MSM8960                             policy<{'armhf': '-'}>
+CONFIG_ARCH_MSM8974                             policy<{'armhf': '-'}>
+CONFIG_ARCH_MSM8X60                             policy<{'armhf': '-'}>
+CONFIG_ARCH_MVEBU                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_MXC                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED              policy<{'armhf': '-'}>
+CONFIG_ARCH_NPCM                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_NPCM7XX                             policy<{'armhf': '-'}>
+CONFIG_ARCH_NR_GPIO                             policy<{'armhf': '0'}>
+CONFIG_ARCH_OMAP                                policy<{'armhf': '-'}>
+CONFIG_ARCH_OMAP2PLUS                           policy<{'armhf': '-'}>
+CONFIG_ARCH_OMAP2PLUS_TYPICAL                   policy<{'armhf': '-'}>
+CONFIG_ARCH_OMAP3                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_OMAP4                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_QCOM                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_R7S72100                            policy<{'armhf': '-'}>
+CONFIG_ARCH_R7S9210                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A73A4                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7740                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7743                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7744                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7745                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A77470                            policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A774A1                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A774C0                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A7778                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7779                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7790                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7791                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7792                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7793                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7794                             policy<{'armhf': '-'}>
+CONFIG_ARCH_R8A7795                             policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A7796                             policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A77965                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A77970                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A77980                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A77990                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R8A77995                            policy<{'arm64': '-'}>
+CONFIG_ARCH_R9A06G032                           policy<{'armhf': '-'}>
+CONFIG_ARCH_RCAR_GEN1                           policy<{'armhf': '-'}>
+CONFIG_ARCH_RCAR_GEN2                           policy<{'armhf': '-'}>
+CONFIG_ARCH_RCAR_GEN3                           policy<{'arm64': '-'}>
+CONFIG_ARCH_RDA                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_REALTEK                             policy<{'arm64': 'n'}>
+CONFIG_ARCH_RENESAS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_RMOBILE                             policy<{'armhf': '-'}>
+CONFIG_ARCH_RZN1                                policy<{'armhf': '-'}>
+CONFIG_ARCH_SEATTLE                             policy<{'arm64': 'n'}>
+CONFIG_ARCH_SH73A0                              policy<{'armhf': '-'}>
+CONFIG_ARCH_SPRD                                policy<{'arm64': 'n'}>
+CONFIG_ARCH_STRATIX10                           policy<{'arm64': 'n'}>
+CONFIG_ARCH_SUNXI                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_SYNQUACER                           policy<{'arm64': 'n'}>
+CONFIG_ARCH_TEGRA                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_TEGRA_114_SOC                       policy<{'armhf': '-'}>
+CONFIG_ARCH_TEGRA_124_SOC                       policy<{'armhf': '-'}>
+CONFIG_ARCH_TEGRA_2x_SOC                        policy<{'armhf': '-'}>
+CONFIG_ARCH_TEGRA_3x_SOC                        policy<{'armhf': '-'}>
+CONFIG_ARCH_THUNDER                             policy<{'arm64': 'n'}>
+CONFIG_ARCH_THUNDER2                            policy<{'arm64': 'n'}>
+CONFIG_ARCH_UNIPHIER                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_VEXPRESS                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA        policy<{'armhf': '-'}>
+CONFIG_ARCH_VEXPRESS_DCSCB                      policy<{'armhf': '-'}>
+CONFIG_ARCH_VEXPRESS_SPC                        policy<{'armhf': '-'}>
+CONFIG_ARCH_VEXPRESS_TC2_PM                     policy<{'armhf': '-'}>
+CONFIG_ARCH_VIRT                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_XGENE                               policy<{'arm64': 'n'}>
+CONFIG_ARCH_ZYNQMP                              policy<{'arm64': 'n'}>
+CONFIG_ARCNET                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCNET_1051                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_1201                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_CAP                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_COM20020                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_COM20020_PCI                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_COM90xx                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_COM90xxIO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_RAW                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARCNET_RIM_I                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARC_EMAC_CORE                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM64_ERRATUM_834220                     policy<{'arm64': 'n'}>
+CONFIG_ARM64_RAS_EXTN                           policy<{'arm64': 'n'}>
+CONFIG_ARM64_RELOC_TEST                         policy<{'arm64': 'm'}>
+CONFIG_ARMADA375_USBCLUSTER_PHY                 policy<{'armhf': '-'}>
+CONFIG_ARMADA_370_CLK                           policy<{'armhf': '-'}>
+CONFIG_ARMADA_370_XP_IRQ                        policy<{'armhf': '-'}>
+CONFIG_ARMADA_370_XP_TIMER                      policy<{'armhf': '-'}>
+CONFIG_ARMADA_375_CLK                           policy<{'armhf': '-'}>
+CONFIG_ARMADA_37XX_CLK                          policy<{'arm64': '-'}>
+CONFIG_ARMADA_37XX_RWTM_MBOX                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARMADA_37XX_WATCHDOG                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARMADA_38X_CLK                           policy<{'armhf': '-'}>
+CONFIG_ARMADA_39X_CLK                           policy<{'armhf': '-'}>
+CONFIG_ARMADA_AP806_SYSCON                      policy<{'arm64': '-'}>
+CONFIG_ARMADA_AP_CPU_CLK                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARMADA_AP_CP_HELPER                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARMADA_CP110_SYSCON                      policy<{'arm64': '-'}>
+CONFIG_ARMADA_THERMAL                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARMADA_XP_CLK                            policy<{'armhf': '-'}>
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM       policy<{'arm64': '-'}>
+CONFIG_ARM_AMBA                                 policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_ARM_ARMADA_37XX_CPUFREQ                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_ARMADA_8K_CPUFREQ                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_ATAG_DTB_COMPAT                      policy<{'armhf': 'y'}>
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND       policy<{'armhf': 'y'}>
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER policy<{'armhf': 'n'}>
+CONFIG_ARM_BIG_LITTLE_CPUIDLE                   policy<{'armhf': '-'}>
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ                  policy<{'arm64': '-'}>
+CONFIG_ARM_CCI400_PORT_CTRL                     policy<{'armhf': '-'}>
+CONFIG_ARM_CHARLCD                              policy<{'armhf': '-'}>
+CONFIG_ARM_DMA_IOMMU_ALIGNMENT                  policy<{'armhf': '-'}>
+CONFIG_ARM_DMA_USE_IOMMU                        policy<{'armhf': '-'}>
+CONFIG_ARM_DSU_PMU                              policy<{'arm64': 'n'}>
+CONFIG_ARM_ERRATA_430973                        policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_720789                        policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_754327                        policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_818325_852422                 policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_821420                        policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_825619                        policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_852421                        policy<{'armhf': 'n'}>
+CONFIG_ARM_ERRATA_852423                        policy<{'armhf': 'n'}>
+CONFIG_ARM_EXYNOS_BUS_DEVFREQ                   policy<{'armhf': '-'}>
+CONFIG_ARM_EXYNOS_CPUIDLE                       policy<{'armhf': '-'}>
+CONFIG_ARM_GIC_V2M                              policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_ARM_GIC_V3                               policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_ARM_GIC_V3_ITS                           policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_ARM_GIC_V3_ITS_FSL_MC                    policy<{'arm64': '-'}>
+CONFIG_ARM_GIC_V3_ITS_PCI                       policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_ARM_GLOBAL_TIMER                         policy<{'armhf': '-'}>
+CONFIG_ARM_HIGHBANK_CPUFREQ                     policy<{'armhf': '-'}>
+CONFIG_ARM_IMX6Q_CPUFREQ                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_IMX_CPUFREQ_DT                       policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_ARM_L1_CACHE_SHIFT                       policy<{'armhf': '6'}>
+CONFIG_ARM_L1_CACHE_SHIFT_7                     policy<{'armhf': '-'}>
+CONFIG_ARM_LPAE                                 policy<{'armhf': 'n'}>
+CONFIG_ARM_MEDIATEK_CPUFREQ                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_MHU                                  policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_ARM_MVEBU_V7_CPUIDLE                     policy<{'armhf': '-'}>
+CONFIG_ARM_OMAP2PLUS_CPUFREQ                    policy<{'armhf': '-'}>
+CONFIG_ARM_PL172_MPMC                           policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_ARM_QCOM_CPUFREQ_HW                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM                   policy<{'arm64': '-'}>
+CONFIG_ARM_RASPBERRYPI_CPUFREQ                  policy<{'arm64': '-'}>
+CONFIG_ARM_RK3399_DMC_DEVFREQ                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_SBSA_WATCHDOG                        policy<{'arm64': 'n'}>
+CONFIG_ARM_SCMI_CPUFREQ                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_SCMI_POWER_DOMAIN                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_SCMI_PROTOCOL                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARM_SDE_INTERFACE                        policy<{'arm64': 'n'}>
+CONFIG_ARM_SMMU_V3_PMU                          policy<{'arm64': 'n'}>
+CONFIG_ARM_SP805_WATCHDOG                       policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_ARM_TEGRA124_CPUFREQ                     policy<{'armhf': '-'}>
+CONFIG_ARM_TEGRA186_CPUFREQ                     policy<{'armhf': '-'}>
+CONFIG_ARM_TEGRA20_CPUFREQ                      policy<{'armhf': '-'}>
+CONFIG_ARM_TEGRA20_DEVFREQ                      policy<{'armhf': '-'}>
+CONFIG_ARM_TEGRA_DEVFREQ                        policy<{'armhf': '-'}>
+CONFIG_ARM_TIMER_SP804                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ARM_TI_CPUFREQ                           policy<{'armhf': '-'}>
+CONFIG_ARM_VEXPRESS_SPC_CPUFREQ                 policy<{'armhf': '-'}>
+CONFIG_ASPEED_ADC                               policy<{'armhf': '-'}>
+CONFIG_ASPEED_BT_IPMI_BMC                       policy<{'armhf': '-'}>
+CONFIG_ASPEED_KCS_IPMI_BMC                      policy<{'armhf': '-'}>
+CONFIG_ASPEED_LPC_CTRL                          policy<{'armhf': '-'}>
+CONFIG_ASPEED_LPC_SNOOP                         policy<{'armhf': '-'}>
+CONFIG_ASPEED_P2A_CTRL                          policy<{'armhf': '-'}>
+CONFIG_ASPEED_WATCHDOG                          policy<{'armhf': '-'}>
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH           policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_AT76C50X_USB                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_ATA_GENERIC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATH10K_AHB                               policy<{'arm64': 'n', 'armhf': '-'}>
+CONFIG_ATH10K_PCI                               policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_ATH10K_SNOC                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATH5K                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATH5K_DEBUG                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATH5K_PCI                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATH5K_TRACER                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATH9K_PCI                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATH9K_PCI_NO_EEPROM                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATL1                                     policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ATL1C                                    policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ATL1E                                    policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ATL2                                     policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ATMEL                                    policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ATM_ENI                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_ENI_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_ENI_TUNE_BURST                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_FORE200E                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_FORE200E_DEBUG                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_FORE200E_TX_RETRY                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_FORE200E_USE_TASKLET                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_HE                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_HE_USE_SUNI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_IA                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_IA_DEBUG                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_IDT77252                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_IDT77252_DEBUG                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_IDT77252_RCV_ALL                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_IDT77252_USE_SUNI                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_LANAI                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_NICSTAR                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ATM_NICSTAR_USE_IDT77105                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_NICSTAR_USE_SUNI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ATM_SOLOS                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_AURORA_NB8800                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_AXI_DMAC                                 policy<{'arm64': '-'}>
+CONFIG_B43_SDIO                                 policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_BACKLIGHT_PANDORA                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BACKLIGHT_RAVE_SP                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BACKLIGHT_WM831X                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_BATTERY_RX51                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BATTERY_TWL4030_MADC                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BCH                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_BCH_CONST_M                              policy<{'arm64': '14', 'armhf': '14'}>
+CONFIG_BCH_CONST_T                              policy<{'arm64': '4', 'armhf': '4'}>
+CONFIG_BCM2835_MBOX                             policy<{'arm64': '-'}>
+CONFIG_BCM2835_POWER                            policy<{'arm64': '-'}>
+CONFIG_BCM2835_THERMAL                          policy<{'arm64': '-'}>
+CONFIG_BCM2835_VCHIQ                            policy<{'arm64': '-'}>
+CONFIG_BCM2835_WDT                              policy<{'arm64': '-'}>
+CONFIG_BCM7038_L1_IRQ                           policy<{'arm64': '-'}>
+CONFIG_BCM7038_WDT                              policy<{'arm64': '-'}>
+CONFIG_BCM7XXX_PHY                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BCMA_DRIVER_GMAC_CMN                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BCMA_DRIVER_GPIO                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BCMA_DRIVER_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BCMA_HOST_PCI                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BCMA_HOST_SOC                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BCMA_SFLASH                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BCMGENET                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BCM_FLEXRM_MBOX                          policy<{'arm64': '-'}>
+CONFIG_BCM_IPROC_ADC                            policy<{'arm64': '-'}>
+CONFIG_BCM_KONA_USB2_PHY                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BCM_NET_PHYLIB                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BCM_NS_THERMAL                           policy<{'arm64': '-'}>
+CONFIG_BCM_PDC_MBOX                             policy<{'arm64': '-'}>
+CONFIG_BCM_SR_THERMAL                           policy<{'arm64': '-'}>
+CONFIG_BCM_VIDEOCORE                            policy<{'arm64': '-'}>
+CONFIG_BE2ISCSI                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BE2NET                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BE2NET_BE2                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BE2NET_BE3                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BE2NET_HWMON                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BE2NET_LANCER                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BE2NET_SKYHAWK                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BERLIN2_ADC                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BGMAC                                    policy<{'arm64': '-'}>
+CONFIG_BGMAC_PLATFORM                           policy<{'arm64': '-'}>
+CONFIG_BIG_LITTLE                               policy<{'armhf': 'n'}>
+CONFIG_BINFMT_ELF_FDPIC                         policy<{'armhf': 'n'}>
+CONFIG_BLK_CGROUP_IOCOST                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BLK_DEV_3W_XXXX_RAID                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BLK_RQ_ALLOC_TIME                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BL_SWITCHER                              policy<{'armhf': '-'}>
+CONFIG_BL_SWITCHER_DUMMY_IF                     policy<{'armhf': '-'}>
+CONFIG_BNA                                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BNX2                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BNX2X                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BNX2X_SRIOV                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BNXT                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BNXT_DCB                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BNXT_FLOWER_OFFLOAD                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BNXT_HWMON                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BNXT_SRIOV                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BOARD_TPCI200                            policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_BPF_KPROBE_OVERRIDE                      policy<{'arm64': 'n'}>
+CONFIG_BPF_LIRC_MODE2                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BRCMDBG                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BRCMSTB_L2_IRQ                           policy<{'arm64': '-'}>
+CONFIG_BRCMSTB_PM                               policy<{'arm64': '-'}>
+CONFIG_BRCMSTB_THERMAL                          policy<{'arm64': '-'}>
+CONFIG_BRCM_TRACING                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BROADCOM_PHY                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BTREE                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_BT_HCIBLUECARD                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BT_HCIBT3C                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BT_HCIDTL1                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_BT_HCIRSI                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_BT_HCIUART_IBS                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BT_HCIUART_RTL                           policy<{'arm64': 'n'}>
+CONFIG_BT_QCOMSMD                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CACHE_FEROCEON_L2                        policy<{'armhf': '-'}>
+CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH           policy<{'armhf': '-'}>
+CONFIG_CACHE_L2X0_PMU                           policy<{'armhf': 'n'}>
+CONFIG_CACHE_TAUROS2                            policy<{'armhf': '-'}>
+CONFIG_CACHE_UNIPHIER                           policy<{'armhf': '-'}>
+CONFIG_CAN_DEBUG_DEVICES                        policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_CAN_EMS_PCMCIA                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_F81601                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_J1939                                policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_CAN_JANZ_ICAN3                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CAN_KVASER_PCIEFD                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_M_CAN_PLATFORM                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_M_CAN_TCAN4X5X                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_PEAK_PCMCIA                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_RCAR                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_CAN_RCAR_CANFD                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_CAN_SOFTING_CS                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CAN_XILINXCAN                            policy<{'arm64': 'n'}>
+CONFIG_CAPI_AVM                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CARDBUS                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CARDMAN_4000                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CARDMAN_4040                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CARMINE_DRAM_CUSTOM                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CASSINI                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CAVIUM_CPT                               policy<{'arm64': '-'}>
+CONFIG_CAVIUM_ERRATUM_22375                     policy<{'arm64': 'n'}>
+CONFIG_CAVIUM_ERRATUM_23154                     policy<{'arm64': 'n'}>
+CONFIG_CAVIUM_ERRATUM_27456                     policy<{'arm64': 'n'}>
+CONFIG_CAVIUM_ERRATUM_30115                     policy<{'arm64': 'n'}>
+CONFIG_CAVIUM_PTP                               policy<{'arm64': '-'}>
+CONFIG_CAVIUM_TX2_ERRATUM_219                   policy<{'arm64': 'n'}>
+CONFIG_CDNS_I3C_MASTER                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CEC_GPIO                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CEC_PIN                                  policy<{'arm64': '-'}>
+CONFIG_CEC_PIN_ERROR_INJ                        policy<{'arm64': '-'}>
+CONFIG_CEPH_FS_SECURITY_LABEL                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CFG80211_WEXT_EXPORT                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CGROUP_HUGETLB                           policy<{'arm64': '-'}>
+CONFIG_CHARGER_BD70528                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CHARGER_CPCAP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHARGER_CROS_USBPD                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHARGER_LT3651                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CHARGER_MAX77650                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHARGER_QCOM_SMBB                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHARGER_SC2731                           policy<{'arm64': '-'}>
+CONFIG_CHARGER_TWL4030                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHARGER_UCS1002                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CHECK_SIGNATURE                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_IPSEC_INLINE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_LIB                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T1                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T1_1G                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T3                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T4                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T4VF                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T4_DCB                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHELSIO_T4_FCOE                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CHROMEOS_TBMC                            policy<{'arm64': '-'}>
+CONFIG_CHROME_PLATFORMS                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK      policy<{'armhf': '-'}>
+CONFIG_CLKSRC_EXYNOS_MCT                        policy<{'armhf': '-'}>
+CONFIG_CLKSRC_IMX_GPT                           policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_IMX_TPM                           policy<{'armhf': '-'}>
+CONFIG_CLKSRC_MMIO                              policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_CLKSRC_QCOM                              policy<{'armhf': '-'}>
+CONFIG_CLKSRC_TI_32K                            policy<{'armhf': '-'}>
+CONFIG_CLKSRC_VERSATILE                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_ACTIONS                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_CLK_BCM_NS2                              policy<{'arm64': '-'}>
+CONFIG_CLK_BCM_SR                               policy<{'arm64': '-'}>
+CONFIG_CLK_EMEV2                                policy<{'armhf': '-'}>
+CONFIG_CLK_HSDK                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CLK_IMX6Q                                policy<{'armhf': 'y'}>
+CONFIG_CLK_IMX6SX                               policy<{'armhf': 'y'}>
+CONFIG_CLK_IMX6UL                               policy<{'armhf': 'y'}>
+CONFIG_CLK_IMX7D                                policy<{'armhf': 'y'}>
+CONFIG_CLK_IMX8MM                               policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_CLK_IMX8MN                               policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_CLK_IMX8MP                               policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_CLK_IMX8MQ                               policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_CLK_IMX8QXP                              policy<{'arm64': 'n'}>
+CONFIG_CLK_OWL_S500                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_OWL_S700                             policy<{'arm64': '-'}>
+CONFIG_CLK_OWL_S900                             policy<{'arm64': '-'}>
+CONFIG_CLK_QORIQ                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CLK_R7S9210                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7740                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7743                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7745                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A77470                             policy<{'armhf': '-'}>
+CONFIG_CLK_R8A774A1                             policy<{'arm64': '-'}>
+CONFIG_CLK_R8A774C0                             policy<{'arm64': '-'}>
+CONFIG_CLK_R8A7778                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7779                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7790                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7791                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7792                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7794                              policy<{'armhf': '-'}>
+CONFIG_CLK_R8A7795                              policy<{'arm64': '-'}>
+CONFIG_CLK_R8A7796                              policy<{'arm64': '-'}>
+CONFIG_CLK_R8A77965                             policy<{'arm64': '-'}>
+CONFIG_CLK_R8A77970                             policy<{'arm64': '-'}>
+CONFIG_CLK_R8A77980                             policy<{'arm64': '-'}>
+CONFIG_CLK_R8A77990                             policy<{'arm64': '-'}>
+CONFIG_CLK_R8A77995                             policy<{'arm64': '-'}>
+CONFIG_CLK_R9A06G032                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_RASPBERRYPI                          policy<{'arm64': '-'}>
+CONFIG_CLK_RCAR_GEN2                            policy<{'armhf': '-'}>
+CONFIG_CLK_RCAR_GEN2_CPG                        policy<{'armhf': '-'}>
+CONFIG_CLK_RCAR_GEN3_CPG                        policy<{'arm64': '-'}>
+CONFIG_CLK_RCAR_USB2_CLOCK_SEL                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_RENESAS                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_RENESAS_CPG_MSSR                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_RENESAS_CPG_MSTP                     policy<{'armhf': '-'}>
+CONFIG_CLK_RENESAS_DIV6                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_RENESAS_LEGACY                       policy<{'armhf': '-'}>
+CONFIG_CLK_RZA1                                 policy<{'armhf': '-'}>
+CONFIG_CLK_SH73A0                               policy<{'armhf': '-'}>
+CONFIG_CLK_SP810                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_SUNXI                                policy<{'arm64': '-'}>
+CONFIG_CLK_SUNXI_CLOCKS                         policy<{'arm64': '-'}>
+CONFIG_CLK_SUNXI_PRCM_SUN6I                     policy<{'arm64': '-'}>
+CONFIG_CLK_SUNXI_PRCM_SUN8I                     policy<{'arm64': '-'}>
+CONFIG_CLK_SUNXI_PRCM_SUN9I                     policy<{'arm64': '-'}>
+CONFIG_CLK_TEGRA_BPMP                           policy<{'armhf': '-'}>
+CONFIG_CLK_TWL6040                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CLK_UNIPHIER                             policy<{'armhf': '-'}>
+CONFIG_CLK_VEXPRESS_OSC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CMDLINE                                  policy<{'arm64': '"cons"', 'armhf': '"console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"'}>
+CONFIG_CMDLINE_EXTEND                           policy<{'armhf': 'n'}>
+CONFIG_CMDLINE_FORCE                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CMDLINE_FROM_BOOTLOADER                  policy<{'armhf': 'y'}>
+CONFIG_CMT_SPEECH                               policy<{'armhf': '-'}>
+CONFIG_CNIC                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMEDI_8254                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_8255_PCI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_1032                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_1500                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_1516                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_1564                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_16XX                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_2032                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_2200                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_3120                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_3501                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_APCI_3XXX                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADDI_WATCHDOG                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADL_PCI6208                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADL_PCI7X3X                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADL_PCI8164                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADL_PCI9111                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADL_PCI9118                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADQ12B                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADV_PCI1710                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADV_PCI1720                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADV_PCI1723                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADV_PCI1724                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADV_PCI1760                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ADV_PCI_DIO                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AIO_AIO12_8                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AIO_IIRO_16                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_DIO200                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_DIO200_ISA                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_DIO200_PCI                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PC236                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PC236_ISA                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PC236_PCI                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PC263_ISA                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PC263_PCI                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PCI224                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_AMPLC_PCI230                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_C6XDIGIO                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_CB_PCIDAS                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_CB_PCIDAS64                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_CB_PCIDDA                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_CB_PCIMDAS                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_CB_PCIMDDA                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_CONTEC_PCI_DIO                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAC02                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAQBOARD2000                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS08                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS08_ISA                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS08_PCI                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS16                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS16M1                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS1800                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS6402                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DAS800                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DMM32AT                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT2801                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT2811                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT2814                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT2815                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT2817                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT282X                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DT3000                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_DYNA_PCI10XX                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_FL512                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_GSC_HPDI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ICP_MULTI                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_II_PCI20KC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ISA_DRIVERS                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMEDI_JR3_PCI                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_KE_COUNTER                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ME4000                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_ME_DAQ                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_MF6X4                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_MITE                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_MPC624                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_MULTIQ3                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_6527                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_65XX                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_660X                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_670X                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_ATMIO                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_ATMIO16D                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_AT_A2150                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_AT_AO                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_LABPC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_LABPC_ISA                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_LABPC_PCI                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_PCIDIO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_PCIMIO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_ROUTING                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_TIO                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_NI_TIOCMD                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCI_DRIVERS                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMEDI_PCL711                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCL724                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCL726                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCL730                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCL812                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCL816                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCL818                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCM3724                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCMAD                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCMCIA_DRIVERS                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMEDI_PCMDA12                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCMMIO                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_PCMUIO                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_RTD520                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_RTI800                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_RTI802                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_S526                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMEDI_S626                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_ASPEED                        policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_AXG                           policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_AXG_AUDIO                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_BD718XX                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMMON_CLK_CDCE706                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_CDCE925                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_CS2000_CP                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_G12A                          policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_GXBB                          policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_HI3516CV300                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_HI3519                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_HI3660                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_HI3670                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_HI3798CV200                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_HI6220                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_HI655X                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_IPROC                         policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_LOCHNAGAR                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MEDIATEK                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON8B                       policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON_AO_CLKC                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MESON_CPU_DYNDIV              policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MESON_DUALDIV                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MESON_EE_CLKC                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MESON_MPLL                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON_PHASE                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON_PLL                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON_REGMAP                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON_SCLK_DIV                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MESON_VID_PLL_DIV             policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2701                        policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_MT2712                        policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_BDPSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_IMGSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_JPGDECSYS              policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_MFGCFG                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_MMSYS                  policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_VDECSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT2712_VENCSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779                        policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_AUDSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_CAMSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_IMGSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_IPESYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_MFGCFG                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_MMSYS                  policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_VDECSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6779_VENCSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6797                        policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6797_IMGSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6797_MMSYS                  policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6797_VDECSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT6797_VENCSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT7622                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MT7622_AUDSYS                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MT7622_ETHSYS                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MT7622_HIFSYS                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MT7629                        policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_MT7629_ETHSYS                 policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_MT7629_HIFSYS                 policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_MT8135                        policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_MT8173                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MT8183                        policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_AUDIOSYS               policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_CAMSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_IMGSYS                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_IPU_ADL                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CONN               policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CORE0              policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CORE1              policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_MFGCFG                 policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_MMSYS                  policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_VDECSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8183_VENCSYS                policy<{'arm64': '-'}>
+CONFIG_COMMON_CLK_MT8516                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_MT8516_AUDSYS                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_PALMAS                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_QCOM                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_S2MPS11                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SAMSUNG                       policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_SCMI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_CLK_SI514                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SI5341                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMMON_CLK_SI5351                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SI544                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SI570                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_TI_ADPLL                      policy<{'armhf': '-'}>
+CONFIG_COMMON_CLK_VC5                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_VERSATILE                     policy<{'arm64': 'n', 'armhf': '-'}>
+CONFIG_COMMON_CLK_WM831X                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_XGENE                         policy<{'arm64': 'n'}>
+CONFIG_COMMON_CLK_ZYNQMP                        policy<{'arm64': '-'}>
+CONFIG_COMMON_RESET_HI3660                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_COMMON_RESET_HI6220                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CPU_PJ4                                  policy<{'armhf': '-'}>
+CONFIG_CPU_PJ4B                                 policy<{'armhf': '-'}>
+CONFIG_CPU_SW_DOMAIN_PAN                        policy<{'armhf': 'y'}>
+CONFIG_CROS_EC                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_CHARDEV                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_DEBUGFS                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_I2C                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_LIGHTBAR                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_PROTO                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_RPMSG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_SPI                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_SYSFS                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_EC_VBC                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CROS_KBD_LED_BACKLIGHT                   policy<{'arm64': '-'}>
+CONFIG_CROS_USBPD_LOGGER                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_AES_ARM                           policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_AES_ARM64                         policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_AES_ARM64_BS                      policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_AES_ARM64_CE                      policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_AES_ARM64_CE_BLK                  policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_AES_ARM64_CE_CCM                  policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK                policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_AES_ARM_BS                        policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_AES_ARM_CE                        policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_AUTHENC                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_CRC32                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_CRYPTD                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_ARTPEC6                       policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_ATMEL_ECC                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_ATMEL_I2C                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_BCM_SPU                       policy<{'arm64': '-'}>
+CONFIG_CRYPTO_DEV_CAVIUM_ZIP                    policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_DEV_CHELSIO                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_CHELSIO_TLS                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_CPT                           policy<{'arm64': '-'}>
+CONFIG_CRYPTO_DEV_EXYNOS_RNG                    policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI        policy<{'arm64': '-'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_JR                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_KEYBLOB_API_DESC     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE             policy<{'arm64': '9', 'armhf': '9'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_SLOTSIZE          policy<{'arm64': '7', 'armhf': '7'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API_TEST          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM                policy<{'arm64': '-'}>
+CONFIG_CRYPTO_DEV_HIFN_795X                     policy<{'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG                 policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_HISI_HPRE                     policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_DEV_HISI_SEC                      policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_DEV_HISI_SEC2                     policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_DEV_MARVELL_CESA                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_MEDIATEK                      policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_MXS_DCP                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_NITROX                        policy<{'arm64': '-'}>
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX                policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_DEV_OMAP                          policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_OMAP_AES                      policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_OMAP_DES                      policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_OMAP_SHAM                     policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_QCE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_QCOM_RNG                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_ROCKCHIP                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_CRYPTO_DEV_S5P                           policy<{'armhf': '-'}>
+CONFIG_CRYPTO_DEV_SAFEXCEL                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_DEV_SAHARA                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_ECC                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_ECDH                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_ESSIV                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_GHASH_ARM64_CE                    policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_LIB_DES                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_NHPOLY1305_NEON                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CRYPTO_SHA256_ARM                        policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_SHA256_ARM64                      policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_SHA2_ARM64_CE                     policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_SHA2_ARM_CE                       policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_SHA3_ARM64                        policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_SHA512_ARM                        policy<{'armhf': 'y'}>
+CONFIG_CRYPTO_SHA512_ARM64                      policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_SHA512_ARM64_CE                   policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_SIMD                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_SM3_ARM64_CE                      policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_SM4_ARM64_CE                      policy<{'arm64': 'n'}>
+CONFIG_CRYPTO_XXHASH                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CXD2880_SPI_DRV                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_CYCLADES                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CYZ_INTR                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DDR                                      policy<{'armhf': '-'}>
+CONFIG_DE2104X                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DE2104X_DSL                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DEBUG_ALIGN_RODATA                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DEBUG_ICEDCC                             policy<{'armhf': 'n'}>
+CONFIG_DEBUG_IMX6Q_UART                         policy<{'armhf': 'n'}>
+CONFIG_DEBUG_IMX6SX_UART                        policy<{'armhf': 'y'}>
+CONFIG_DEBUG_IMX6UL_UART                        policy<{'armhf': 'n'}>
+CONFIG_DEBUG_IMX7D_UART                         policy<{'armhf': 'n'}>
+CONFIG_DEBUG_IMX_UART_PORT                      policy<{'armhf': '1'}>
+CONFIG_DEBUG_KERNEL_DC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DEBUG_LL                                 policy<{'armhf': 'y'}>
+CONFIG_DEBUG_LL_INCLUDE                         policy<{'armhf': '"debug/imx.S"'}>
+CONFIG_DEBUG_LL_UART_8250                       policy<{'armhf': 'n'}>
+CONFIG_DEBUG_LL_UART_PL01X                      policy<{'armhf': 'n'}>
+CONFIG_DEBUG_MEMORY_INIT                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DEBUG_PREEMPT                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DEBUG_SEMIHOSTING                        policy<{'armhf': 'n'}>
+CONFIG_DEBUG_UNCOMPRESS                         policy<{'armhf': 'n'}>
+CONFIG_DEBUG_VF_UART_PORT                       policy<{'armhf': '-'}>
+CONFIG_DEFXX                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DEFXX_MMIO                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP                policy<{'armhf': '-'}>
+CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU                policy<{'armhf': '-'}>
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DEV_DAX                                  policy<{'arm64': '-'}>
+CONFIG_DEV_DAX_KMEM                             policy<{'arm64': '-'}>
+CONFIG_DL2K                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DM9102                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DMA_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_DMA_OMAP                                 policy<{'armhf': '-'}>
+CONFIG_DMA_SUN6I                                policy<{'arm64': '-'}>
+CONFIG_DMA_VIRT_OPS                             policy<{'arm64': '-'}>
+CONFIG_DM_CLONE                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DM_CRYPT                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DNET                                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_DOVE_CLK                                 policy<{'armhf': '-'}>
+CONFIG_DOVE_THERMAL                             policy<{'armhf': '-'}>
+CONFIG_DPAA2_CONSOLE                            policy<{'arm64': '-'}>
+CONFIG_DPAA_ERRATUM_A050385                     policy<{'arm64': '-'}>
+CONFIG_DPS310                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRA752_THERMAL                           policy<{'armhf': '-'}>
+CONFIG_DRM                                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_AMDGPU                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_AMDGPU_GART_DEBUGFS                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_AMDGPU_SI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_AMDGPU_USERPTR                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_AMD_ACP                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_AMD_DC                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_ANALOGIX_DP                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_ARCPGU                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_ARMADA                               policy<{'armhf': 'n'}>
+CONFIG_DRM_ASPEED_GFX                           policy<{'armhf': '-'}>
+CONFIG_DRM_AST                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_ATMEL_HLCDC                          policy<{'armhf': 'n'}>
+CONFIG_DRM_CDNS_AUDIO                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_CDNS_DP                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_CDNS_DSI                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_CDNS_HDMI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_CDNS_HDMI_CEC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_CDNS_MHDP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_CIRRUS_QEMU                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_DEBUG_MM                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_DW_HDMI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_DW_HDMI_GP_AUDIO                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_DW_MIPI_DSI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_EXYNOS                               policy<{'armhf': 'n'}>
+CONFIG_DRM_EXYNOS5433_DECON                     policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS7_DECON                        policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_DSI                           policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_FIMC                          policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_FIMD                          policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_HDMI                          policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_IPP                           policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_MIC                           policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_MIXER                         policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_ROTATOR                       policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_SCALER                        policy<{'armhf': '-'}>
+CONFIG_DRM_EXYNOS_VIDI                          policy<{'armhf': '-'}>
+CONFIG_DRM_FSL_DCU                              policy<{'armhf': 'n'}>
+CONFIG_DRM_FSL_IMX_LVDS_BRIDGE                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_GEM_SHMEM_HELPER                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_GM12U320                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_HISI_KIRIN                           policy<{'arm64': 'n'}>
+CONFIG_DRM_IMX                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_IMX8MP_LDB                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_CDNS_MHDP                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_DCSS                             policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_DRM_IMX_DPU                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_HDMI                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_IMX_IPUV3                            policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_LCDIF                            policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_DRM_IMX_LCDIFV3                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_LCDIF_MUX_DISPLAY                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_LDB                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_PARALLEL_DISPLAY                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_IMX_SEC_DSIM                         policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_DRM_IMX_TVE                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_ITE_IT6263                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_KMS_HELPER                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_KOMEDA                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_LIMA                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MALI_DISPLAY                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MCDE                                 policy<{'armhf': 'n'}>
+CONFIG_DRM_MEDIATEK                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MEDIATEK_HDMI                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MESON                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MESON_DW_HDMI                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI_10NM_PHY                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI_14NM_PHY                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI_20NM_PHY                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI_28NM_8960_PHY                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI_28NM_PHY                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_DSI_PLL                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_GPU_STATE                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_GPU_SUDO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_HDMI_HDCP                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MSM_REGISTER_LOGGING                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_MXS                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MXSFB                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_NOUVEAU                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_NOUVEAU_BACKLIGHT                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_NWL_MIPI_DSI                         policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_DRM_NXP_SEIKO_43WVFIG                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_PANEL_ARM_VERSATILE                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_AVD_TT101WX_CN                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_PANEL_ILITEK_IL9322                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_ILITEK_ILI9881C                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_LG_LB035Q02                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_NEC_NL8048HL11                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_NOVATEK_NT39016                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_RAYDIUM_RM67191                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_RAYDIUM_RM68200                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6D16D0                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6E63M0                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_SHARP_LS037V7DW01              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_SONY_ACX565AKM                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_TPO_TD028TTEC1                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_TPO_TD043MTEA1                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_PANFROST                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_QXL                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_RADEON                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_RADEON_USERPTR                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_RCAR_DU                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_RCAR_DW_HDMI                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_RCAR_LVDS                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_RCAR_VSP                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_ROCKCHIP                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_SEC_MIPI_DSIM                        policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_DRM_STM                                  policy<{'armhf': 'n'}>
+CONFIG_DRM_STM_DSI                              policy<{'armhf': '-'}>
+CONFIG_DRM_SUN4I                                policy<{'arm64': '-'}>
+CONFIG_DRM_SUN4I_BACKEND                        policy<{'arm64': '-'}>
+CONFIG_DRM_SUN4I_HDMI                           policy<{'arm64': '-'}>
+CONFIG_DRM_SUN4I_HDMI_CEC                       policy<{'arm64': '-'}>
+CONFIG_DRM_SUN6I_DSI                            policy<{'arm64': '-'}>
+CONFIG_DRM_SUN8I_DW_HDMI                        policy<{'arm64': '-'}>
+CONFIG_DRM_SUN8I_MIXER                          policy<{'arm64': '-'}>
+CONFIG_DRM_SUN8I_TCON_TOP                       policy<{'arm64': '-'}>
+CONFIG_DRM_TEGRA                                policy<{'armhf': '-'}>
+CONFIG_DRM_TEGRA_DEBUG                          policy<{'armhf': '-'}>
+CONFIG_DRM_TEGRA_STAGING                        policy<{'armhf': '-'}>
+CONFIG_DRM_THINE_THC63LVD1024                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_TI_SN65DSI86                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_TOSHIBA_TC358764                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_VC4                                  policy<{'arm64': '-'}>
+CONFIG_DRM_VC4_HDMI_CEC                         policy<{'arm64': '-'}>
+CONFIG_DRM_VRAM_HELPER                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DRM_XEN                                  policy<{'arm64': '-'}>
+CONFIG_DRM_XEN_FRONTEND                         policy<{'arm64': '-'}>
+CONFIG_DVB_A8293                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AF9013                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AF9033                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AS102                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AS102_FE                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_ASCOT2E                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_ATBM8830                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AU8522                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AU8522_DTV                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AU8522_V4L                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_AV7110                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_AV7110_IR                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_AV7110_OSD                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_B2C2_FLEXCOP                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_B2C2_FLEXCOP_PCI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_B2C2_FLEXCOP_USB                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_BCM3510                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_BT8XX                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_BUDGET                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_BUDGET_AV                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_BUDGET_CI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_BUDGET_CORE                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_BUDGET_PATCH                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_CORE                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CX22700                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_CX22702                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CX24110                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_CX24116                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CX24117                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_CX24120                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CX24123                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CXD2099                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_CXD2820R                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CXD2841ER                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_CXD2880                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DDBRIDGE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_DDBRIDGE_MSIENABLE                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_DEMUX_SECTION_LOSS_LOG               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_DIB3000MB                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DIB3000MC                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DIB7000M                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DIB7000P                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DIB8000                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DIB9000                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_DM1105                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_DRX39XYJ                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DRXD                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DRXK                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DS3000                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_DYNAMIC_MINORS                       policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_DVB_EC100                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_FIREDTV                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_FIREDTV_INPUT                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_GP8PSK_FE                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_HELENE                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_HOPPER                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_HORUS3A                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_ISL6405                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_ISL6421                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_ISL6423                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_IX2505V                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_L64781                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_LG2160                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_LGDT3305                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_LGDT3306A                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_LGDT330X                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_LGS8GL5                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_LGS8GXX                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_LNBH25                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_LNBH29                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_LNBP21                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_LNBP22                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_M88DS3103                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_M88RS2000                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_MANTIS                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_MAX_ADAPTERS                         policy<{'arm64': '-', 'armhf': '8'}>
+CONFIG_DVB_MB86A16                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_MB86A20S                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_MMAP                                 policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_MN88443X                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_MN88472                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_MN88473                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_MT312                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_MT352                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_MXL5XX                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_NET                                  policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_DVB_NETUP_UNIDVB                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_NGENE                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_NXT200X                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_NXT6000                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_OR51132                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_OR51211                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_PLATFORM_DRIVERS                     policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_DVB_PLL                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_PLUTO2                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_PT1                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_PT3                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_RTL2830                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_RTL2832                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_RTL2832_SDR                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_S5H1409                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_S5H1411                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_S5H1420                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_S5H1432                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_S921                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_SI2165                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_SI2168                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_SI21XX                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_SMIPCIE                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DVB_SP2                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_SP8870                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_SP887X                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_STB0899                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STB6000                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STB6100                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV0288                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV0297                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV0299                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV0367                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_STV0900                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV090x                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV0910                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_STV6110                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV6110x                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_STV6111                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TC90522                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA10021                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TDA10023                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA10048                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA1004X                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA10071                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA10086                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA18271C2DD                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TDA665x                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TDA8083                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TDA8261                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TDA826X                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TS2020                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TTUSB_BUDGET                         policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TTUSB_DEC                            policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TUA6100                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_TUNER_CX24113                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TUNER_DIB0070                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TUNER_DIB0090                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_TUNER_ITD1000                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_ULE_DEBUG                            policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_USB                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_A800                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AF9005                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AF9005_REMOTE                    policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AF9015                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AF9035                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_ANYSEE                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AU6610                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AZ6007                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_AZ6027                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_CE6230                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_CINERGY_T2                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_CXUSB                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_CXUSB_ANALOG                     policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_DVB_USB_DEBUG                            policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_USB_DIB0700                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DIB3000MC                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DIBUSB_MB                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY                 policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_DVB_USB_DIBUSB_MC                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DIGITV                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DTT200U                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DTV5100                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DVBSKY                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_DW2102                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_EC168                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_GL861                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_GP8PSK                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_LME2510                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_M920X                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_MXL111SF                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_NOVA_T_USB2                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_OPERA1                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_PCTV452E                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_RTL28XXU                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_TECHNISAT_USB2                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_TTUSB2                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_UMT_010                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_V2                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_VP702X                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_VP7045                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_USB_ZD1301                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_VES1820                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_VES1X93                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_ZD1301_DEMOD                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_ZL10036                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_DVB_ZL10039                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DVB_ZL10353                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_DWC_XLGMAC_PCI                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DWMAC_IMX8                               policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_DWMAC_IPQ806X                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DWMAC_MEDIATEK                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DWMAC_MESON                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DWMAC_QCOM_ETHQOS                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DWMAC_ROCKCHIP                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DWMAC_SOCFPGA                            policy<{'arm64': '-'}>
+CONFIG_DWMAC_SUN8I                              policy<{'arm64': '-'}>
+CONFIG_DWMAC_SUNXI                              policy<{'arm64': '-'}>
+CONFIG_DW_APB_ICTL                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DW_APB_TIMER                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DW_APB_TIMER_OF                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_DW_AXI_DMAC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DW_DMAC_PCI                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DW_EDMA                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DW_EDMA_PCIE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DW_I3C_MASTER                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_E100                                     policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_E1000                                    policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_E1000E                                   policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_EARLY_PRINTK                             policy<{'armhf': 'y'}>
+CONFIG_EDAC_ALTERA                              policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_ETHERNET                     policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_NAND                         policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_OCRAM                        policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_QSPI                         policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_SDMMC                        policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_SDRAM                        policy<{'arm64': '-'}>
+CONFIG_EDAC_ALTERA_USB                          policy<{'arm64': '-'}>
+CONFIG_EDAC_ARMADA_XP                           policy<{'armhf': '-'}>
+CONFIG_EDAC_BLUEFIELD                           policy<{'arm64': '-'}>
+CONFIG_EDAC_GHES                                policy<{'arm64': '-'}>
+CONFIG_EDAC_HIGHBANK_L2                         policy<{'armhf': '-'}>
+CONFIG_EDAC_HIGHBANK_MC                         policy<{'armhf': '-'}>
+CONFIG_EDAC_LAYERSCAPE                          policy<{'arm64': '-'}>
+CONFIG_EDAC_LEGACY_SYSFS                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EDAC_QCOM                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EDAC_SYNOPSYS                            policy<{'arm64': '-'}>
+CONFIG_EDAC_THUNDERX                            policy<{'arm64': 'n'}>
+CONFIG_EDAC_TI                                  policy<{'armhf': '-'}>
+CONFIG_EDAC_XGENE                               policy<{'arm64': 'n'}>
+CONFIG_EFI_ARMSTUB_DTB_LOADER                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EFI_BOOTLOADER_CONTROL                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EFI_CAPSULE_LOADER                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EFI_TEST                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EFI_VARS_PSTORE                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EINT_MTK                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EMAC_ROCKCHIP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EMBEDDED                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EM_TIMER_STI                             policy<{'armhf': '-'}>
+CONFIG_ENABLE_MUST_CHECK                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ENA_ETHERNET                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ENIC                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EPIC100                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EROFS_FS_SECURITY                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EROFS_FS_ZIP                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ET131X                                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_EXTCON_FSA9480                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EXTCON_IT5201                            policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_EXTCON_QCOM_SPMI_MISC                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EXTCON_USBC_CROS_EC                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_EXYNOS_ADC                               policy<{'armhf': '-'}>
+CONFIG_EXYNOS_AUDSS_CLK_CON                     policy<{'armhf': '-'}>
+CONFIG_EXYNOS_CHIPID                            policy<{'armhf': '-'}>
+CONFIG_EXYNOS_CPU_SUSPEND                       policy<{'armhf': '-'}>
+CONFIG_EXYNOS_IOMMU                             policy<{'armhf': '-'}>
+CONFIG_EXYNOS_IOMMU_DEBUG                       policy<{'armhf': '-'}>
+CONFIG_EXYNOS_MCPM                              policy<{'armhf': '-'}>
+CONFIG_EXYNOS_PMU                               policy<{'armhf': '-'}>
+CONFIG_EXYNOS_PMU_ARM_DRIVERS                   policy<{'armhf': '-'}>
+CONFIG_EXYNOS_PM_DOMAINS                        policy<{'armhf': '-'}>
+CONFIG_EXYNOS_SROM                              policy<{'armhf': '-'}>
+CONFIG_EXYNOS_THERMAL                           policy<{'armhf': '-'}>
+CONFIG_EZCHIP_NPS_MANAGEMENT_ENET               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_EZX_PCAP                                 policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_FARSYNC                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FAT_DEFAULT_IOCHARSET                    policy<{'arm64': '"ascii"', 'armhf': '"ascii"'}>
+CONFIG_FB_3DFX                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_3DFX_ACCEL                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_3DFX_I2C                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_ARK                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_ARMCLCD                               policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_FB_ASILIANT                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_ATY                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_ATY128                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_ATY128_BACKLIGHT                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_ATY_BACKLIGHT                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_ATY_CT                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_ATY_GENERIC_LCD                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_ATY_GX                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_CARMINE                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_CARMINE_DRAM_EVAL                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_CFB_REV_PIXELS_IN_BYTE                policy<{'armhf': '-'}>
+CONFIG_FB_CIRRUS                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_CYBER2000                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_CYBER2000_DDC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_DA8XX                                 policy<{'armhf': '-'}>
+CONFIG_FB_DDC                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_EFI                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_I740                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_IMSTT                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_IMX                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FB_KYRO                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_MATROX                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_MATROX_G                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MATROX_I2C                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MATROX_MAVEN                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MATROX_MILLENIUM                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MATROX_MYSTIQUE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MB862XX                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_MB862XX_I2C                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MB862XX_PCI_GDC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_MX3                                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_NEOMAGIC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_NVIDIA                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_NVIDIA_BACKLIGHT                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_NVIDIA_DEBUG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_NVIDIA_I2C                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_OMAP2                                 policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV             policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_CONNECTOR_DVI                   policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_CONNECTOR_HDMI                  policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DEBUG_SUPPORT                   policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS                             policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_DEBUG                       policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_DEBUGFS                     policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_DPI                         policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_DSI                         policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_HDMI_COMMON                 policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_INIT                        policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_MIN_FCK_PER_PCK             policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_SDI                         policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_SLEEP_AFTER_VENC_RESET      policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_DSS_VENC                        policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_ENCODER_OPA362                  policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_ENCODER_TFP410                  policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_ENCODER_TPD12S015               policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_NUM_FBS                         policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_PANEL_DPI                       policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_PANEL_DSI_CM                    policy<{'armhf': '-'}>
+CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02        policy<{'armhf': '-'}>
+CONFIG_FB_OMAP4_DSS_HDMI                        policy<{'armhf': '-'}>
+CONFIG_FB_OMAP5_DSS_HDMI                        policy<{'armhf': '-'}>
+CONFIG_FB_PM2                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_PM2_FIFO_DISCONNECT                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_PM3                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA          policy<{'armhf': '-'}>
+CONFIG_FB_RADEON                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_RADEON_BACKLIGHT                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_RADEON_DEBUG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_RADEON_I2C                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_RIVA                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_RIVA_BACKLIGHT                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_RIVA_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_RIVA_I2C                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_S3                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_S3_DDC                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SAVAGE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_SAVAGE_ACCEL                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SAVAGE_I2C                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SH_MOBILE_LCDC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SIS                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_SIS_300                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SIS_315                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SM712                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_SM750                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_SVGALIB                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FB_SYS_COPYAREA                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_SYS_FILLRECT                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_SYS_FOPS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_SYS_IMAGEBLIT                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_TRIDENT                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_VOODOO1                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_VT8623                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FB_XILINX                                policy<{'arm64': '-'}>
+CONFIG_FCOE                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FDDI                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FEALNX                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FEC                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FIQ                                      policy<{'armhf': '-'}>
+CONFIG_FIREWIRE                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FIREWIRE_NET                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FIREWIRE_NOSY                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FIREWIRE_OHCI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FIREWIRE_SBP2                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FIREWIRE_SERIAL                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FM10K                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FONT_TER16x32                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FORCEDETH                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FORCE_MAX_ZONEORDER                      policy<{'arm64': '11', 'armhf': '11'}>
+CONFIG_FORCE_PCI                                policy<{'armhf': '-'}>
+CONFIG_FPGA                                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_FPGA_BRIDGE                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FPGA_DFL                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FPGA_DFL_AFU                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_FPGA_DFL_FME                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_FPGA_DFL_FME_BRIDGE                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FPGA_DFL_FME_MGR                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FPGA_DFL_FME_REGION                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FPGA_DFL_PCI                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_FPGA_MGR_ALTERA_CVP                      policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_FPGA_MGR_ALTERA_PS_SPI                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FPGA_MGR_ICE40_SPI                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FPGA_MGR_MACHXO2_SPI                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FPGA_MGR_STRATIX10_SOC                   policy<{'arm64': '-'}>
+CONFIG_FPGA_MGR_XILINX_SPI                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FPGA_MGR_ZYNQMP_FPGA                     policy<{'arm64': '-'}>
+CONFIG_FPGA_REGION                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FSCACHE_HISTOGRAM                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FSI                                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_FSI_MASTER_AST_CF                        policy<{'armhf': '-'}>
+CONFIG_FSI_MASTER_GPIO                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FSI_MASTER_HUB                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FSI_NEW_DEV_NODE                         policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_FSI_OCC                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FSI_SBEFIFO                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_FSI_SCOM                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_FSL_BMAN_TEST                            policy<{'arm64': '-'}>
+CONFIG_FSL_BMAN_TEST_API                        policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA                                 policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA2                                policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA2_ETH                            policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA2_ETHSW                          policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA2_PTP_CLOCK                      policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA_CHECKING                        policy<{'arm64': '-'}>
+CONFIG_FSL_DPAA_ETH                             policy<{'arm64': '-'}>
+CONFIG_FSL_EDMA                                 policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_FSL_ENETC                                policy<{'arm64': '-'}>
+CONFIG_FSL_ENETC_HW_TIMESTAMPING                policy<{'arm64': '-'}>
+CONFIG_FSL_ENETC_MDIO                           policy<{'arm64': '-'}>
+CONFIG_FSL_ENETC_PTP_CLOCK                      policy<{'arm64': '-'}>
+CONFIG_FSL_ENETC_VF                             policy<{'arm64': '-'}>
+CONFIG_FSL_FMAN                                 policy<{'arm64': '-'}>
+CONFIG_FSL_GUTS                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FSL_IFC                                  policy<{'arm64': '-'}>
+CONFIG_FSL_IMX8_DDR_PMU                         policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_FSL_MC_BUS                               policy<{'arm64': '-'}>
+CONFIG_FSL_MC_DPIO                              policy<{'arm64': '-'}>
+CONFIG_FSL_PQ_MDIO                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FSL_QDMA                                 policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_FSL_QMAN_TEST                            policy<{'arm64': '-'}>
+CONFIG_FSL_XGMAC_MDIO                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FS_VERITY                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FS_VERITY_DEBUG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FTWDT010_WATCHDOG                        policy<{'armhf': 'n'}>
+CONFIG_FUEL_GAUGE_SC27XX                        policy<{'arm64': '-'}>
+CONFIG_FUJITSU_ES                               policy<{'arm64': 'n'}>
+CONFIG_FUSION                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FUSION_CTL                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FUSION_FC                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FUSION_LAN                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FUSION_LOGGING                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FUSION_MAX_SGE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FUSION_SAS                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FUSION_SPI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FWTTY_MAX_CARD_PORTS                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FWTTY_MAX_TOTAL_PORTS                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_FW_CFG_SYSFS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FW_CFG_SYSFS_CMDLINE                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_FW_LOADER_USER_HELPER                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GADGET_UAC1                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GADGET_UAC1_LEGACY                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GAMEPORT_EMU10K1                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GAMEPORT_FM801                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GEMINI_ETHERNET                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GENERIC_IRQ_DEBUGFS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GENERIC_PHY_MIPI_DPHY                    policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_GIANFAR                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GIGASET_CAPI                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GMSL_MAX9286                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_GPIO_AMDPT                               policy<{'arm64': 'n'}>
+CONFIG_GPIO_AMD_FCH                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_ASPEED                              policy<{'armhf': '-'}>
+CONFIG_GPIO_BRCMSTB                             policy<{'arm64': '-'}>
+CONFIG_GPIO_BT8XX                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_CADENCE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_DAVINCI                             policy<{'arm64': '-'}>
+CONFIG_GPIO_EIC_SPRD                            policy<{'arm64': '-'}>
+CONFIG_GPIO_EXAR                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_FTGPIO010                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_GENERIC_PLATFORM                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_GPIO_HLWD                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_JANZ_TTL                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_LP87565                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_MADERA                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_MAX77650                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_MENZ127                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_GPIO_MLXBF                               policy<{'arm64': '-'}>
+CONFIG_GPIO_MOCKUP                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_GPIO_MOXTET                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_MPC8XXX                             policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_GPIO_MVEBU                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_MXC                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_OMAP                                policy<{'armhf': '-'}>
+CONFIG_GPIO_PCA953X                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_PCA953X_IRQ                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_PCIE_IDIO_24                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_PCI_IDIO_16                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_PL061                               policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_GPIO_PMIC_EIC_SPRD                       policy<{'arm64': '-'}>
+CONFIG_GPIO_RASPBERRYPI_EXP                     policy<{'arm64': '-'}>
+CONFIG_GPIO_RCAR                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_RDC321X                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_SAMA5D2_PIOBU                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_SIOX                                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_GPIO_SPRD                                policy<{'arm64': '-'}>
+CONFIG_GPIO_TC3589X                             policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_GPIO_TEGRA                               policy<{'armhf': '-'}>
+CONFIG_GPIO_THUNDERX                            policy<{'arm64': '-'}>
+CONFIG_GPIO_TPS68470                            policy<{'arm64': '-'}>
+CONFIG_GPIO_TQMX86                              policy<{'arm64': '-'}>
+CONFIG_GPIO_TS4800                              policy<{'armhf': '-'}>
+CONFIG_GPIO_TS4900                              policy<{'armhf': 'n'}>
+CONFIG_GPIO_TWL6040                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_GPIO_UNIPHIER                            policy<{'armhf': '-'}>
+CONFIG_GPIO_VF610                               policy<{'armhf': '-'}>
+CONFIG_GPIO_WM831X                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_GPIO_WM8350                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_GPIO_WM8994                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_GPIO_XGENE                               policy<{'arm64': 'n'}>
+CONFIG_GPIO_XGENE_SB                            policy<{'arm64': '-'}>
+CONFIG_GPIO_XILINX                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_GPIO_XLP                                 policy<{'arm64': '-'}>
+CONFIG_GPIO_ZYNQ                                policy<{'arm64': '-'}>
+CONFIG_HAMACHI                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HAPPYMEAL                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HAS_IOPORT_MAP                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HAVE_IMX_AMP                             policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_ANATOP                          policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_BUSFREQ                         policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_DDRC                            policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_GPC                             policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_GPCV2                           policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_MMDC                            policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_MU                              policy<{'armhf': 'y'}>
+CONFIG_HAVE_IMX_RPMSG                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HAVE_IMX_SRC                             policy<{'armhf': 'y'}>
+CONFIG_HAVE_PATA_PLATFORM                       policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_HAVE_S3C2410_I2C                         policy<{'armhf': '-'}>
+CONFIG_HAVE_S3C2410_WATCHDOG                    policy<{'armhf': '-'}>
+CONFIG_HAVE_S3C_RTC                             policy<{'armhf': '-'}>
+CONFIG_HBMC_AM654                               policy<{'arm64': '-'}>
+CONFIG_HDQ_MASTER_OMAP                          policy<{'armhf': '-'}>
+CONFIG_HERMES                                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_HERMES_CACHE_FW_ON_INIT                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HERMES_PRISM                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HI13X1_GMAC                              policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_HI3660_MBOX                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HI6220_MBOX                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HID                                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HID_CREATIVE_SB0540                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_HID_GOOGLE_HAMMER                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HINIC                                    policy<{'arm64': '-'}>
+CONFIG_HIP04_ETH                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HISILICON_ERRATUM_161010101              policy<{'arm64': 'n'}>
+CONFIG_HISILICON_IRQ_MBIGEN                     policy<{'arm64': '-'}>
+CONFIG_HISILICON_LPC                            policy<{'arm64': '-'}>
+CONFIG_HISI_FEMAC                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HISI_PMU                                 policy<{'arm64': 'n'}>
+CONFIG_HISI_THERMAL                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HIX5HD2_GMAC                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HMEM_REPORTING                           policy<{'arm64': '-'}>
+CONFIG_HMM_MIRROR                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HNS                                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HNS3                                     policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_HNS3_DCB                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HNS3_ENET                                policy<{'arm64': '-'}>
+CONFIG_HNS3_HCLGE                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HNS3_HCLGEVF                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HNS_DSAF                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HNS_ENET                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HNS_MDIO                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HOSTAP                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_HOSTAP_CS                                policy<{'armhf': 'n'}>
+CONFIG_HOSTAP_FIRMWARE                          policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_HOSTAP_FIRMWARE_NVRAM                    policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_HOSTAP_PCI                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_HOSTAP_PLX                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_HOTPLUG_PCI_ACPI                         policy<{'arm64': 'n'}>
+CONFIG_HOTPLUG_PCI_ACPI_IBM                     policy<{'arm64': '-'}>
+CONFIG_HOTPLUG_PCI_CPCI                         policy<{'arm64': 'n'}>
+CONFIG_HP100                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HSA_AMD                                  policy<{'arm64': '-'}>
+CONFIG_HUGETLBFS                                policy<{'arm64': 'n'}>
+CONFIG_HUGETLB_PAGE                             policy<{'arm64': '-'}>
+CONFIG_HVC_IRQ                                  policy<{'arm64': '-'}>
+CONFIG_HVC_XEN                                  policy<{'arm64': '-'}>
+CONFIG_HVC_XEN_FRONTEND                         policy<{'arm64': '-'}>
+CONFIG_HWPOISON_INJECT                          policy<{'arm64': '-'}>
+CONFIG_HWSPINLOCK_OMAP                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HWSPINLOCK_QCOM                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HWSPINLOCK_SPRD                          policy<{'arm64': '-'}>
+CONFIG_HW_RANDOM_BCM2835                        policy<{'arm64': '-'}>
+CONFIG_HW_RANDOM_CAVIUM                         policy<{'arm64': 'n'}>
+CONFIG_HW_RANDOM_EXYNOS                         policy<{'armhf': '-'}>
+CONFIG_HW_RANDOM_HISI                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HW_RANDOM_HISI_V2                        policy<{'arm64': 'y'}>
+CONFIG_HW_RANDOM_IMX_RNGC                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HW_RANDOM_IPROC_RNG200                   policy<{'arm64': '-'}>
+CONFIG_HW_RANDOM_MESON                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HW_RANDOM_MTK                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HW_RANDOM_OMAP                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_HW_RANDOM_OMAP3_ROM                      policy<{'armhf': '-'}>
+CONFIG_HW_RANDOM_OPTEE                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HW_RANDOM_XGENE                          policy<{'arm64': '-'}>
+CONFIG_HYSDN                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_HYSDN_CAPI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_ALGOBIT                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_ALI1535                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_ALI1563                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_ALI15X3                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_AMD756                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_AMD8111                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_ASPEED                               policy<{'armhf': '-'}>
+CONFIG_I2C_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_I2C_BCM_IPROC                            policy<{'arm64': '-'}>
+CONFIG_I2C_BRCMSTB                              policy<{'arm64': '-'}>
+CONFIG_I2C_CBUS_GPIO                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_CROS_EC_TUNNEL                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_DESIGNWARE_PCI                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_EXYNOS5                              policy<{'armhf': '-'}>
+CONFIG_I2C_FSI                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_I2C_HIX5HD2                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_I801                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_IMX                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_IMX_LPI2C                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_ISCH                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_KEMPLD                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_MESON                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_MT65XX                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_MUX_MLXCPLD                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_MV64XXX                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_NFORCE2                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_NOMADIK                              policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_I2C_NVIDIA_GPU                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_OCORES                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_OMAP                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_OWL                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_PIIX4                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_PXA                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_PXA_SLAVE                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_QCOM_GENI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_QUP                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_RCAR                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_RIIC                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_RK3X                                 policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_S3C2410                              policy<{'armhf': '-'}>
+CONFIG_I2C_SCMI                                 policy<{'arm64': 'n'}>
+CONFIG_I2C_SH_MOBILE                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_SI470X                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_I2C_SI4713                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_I2C_SIMTEC                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_SIS5595                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_SIS630                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_SIS96X                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_SPRD                                 policy<{'arm64': '-'}>
+CONFIG_I2C_SYNQUACER                            policy<{'arm64': '-'}>
+CONFIG_I2C_TEGRA                                policy<{'armhf': '-'}>
+CONFIG_I2C_TEGRA_BPMP                           policy<{'armhf': '-'}>
+CONFIG_I2C_THUNDERX                             policy<{'arm64': 'n'}>
+CONFIG_I2C_UNIPHIER                             policy<{'armhf': '-'}>
+CONFIG_I2C_UNIPHIER_F                           policy<{'armhf': '-'}>
+CONFIG_I2C_VERSATILE                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I2C_VIA                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_VIAPRO                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I2C_XGENE_SLIMPRO                        policy<{'arm64': '-'}>
+CONFIG_I2C_XILINX                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_I2C_XLP9XX                               policy<{'arm64': '-'}>
+CONFIG_I40E                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I40EVF                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I40E_DCB                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_I6300ESB_WDT                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_I82092                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IAVF                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ICE                                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ICST                                     policy<{'armhf': '-'}>
+CONFIG_IGB                                      policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_IGBVF                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IGB_HWMON                                policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_IGC                                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IIO_CROS_EC_BARO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IIO_CROS_EC_LIGHT_PROX                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IIO_CROS_EC_SENSORS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IIO_CROS_EC_SENSORS_CORE                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IIO_RESCALE                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IKCONFIG                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IKCONFIG_PROC                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IKHEADERS                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IMA_APPRAISE_MODSIG                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IMX2_WDT                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX7D_ADC                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX7ULP_WDT                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8MM_THERMAL                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8MP_HDMI_PAVI                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX8M_PM_DOMAINS                         policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_IMX8_DPRC                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX8_ISI_CAPTURE                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_ISI_CORE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_ISI_HW                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_ISI_M2M                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_JPEG                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_MEDIA_DEVICE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_MIPI_CSI2                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_MIPI_CSI2_SAM                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_MIPI_CSI2_YAV                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IMX8_PARALLEL_CSI                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX8_PC                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX8_PRG                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_DMA                                  policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_IMX_DPU_BLIT                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_DPU_CORE                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_DSP                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_GPCV2                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_GPCV2_PM_DOMAINS                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_IRQSTEER                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_LCDIFV3_CORE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_LCDIF_CORE                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_MBOX                                 policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_IMX_REMOTEPROC                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_RPMSG_PINGPONG                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX_SCU                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_SCU_PD                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_SCU_SOC                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_SC_THERMAL                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX_SC_WDT                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX_SDMA                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IMX_SEMA4                                policy<{'armhf': 'y'}>
+CONFIG_IMX_THERMAL                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IMX_WEIM                                 policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_INDIRECT_PIO                             policy<{'arm64': 'n'}>
+CONFIG_INFINIBAND_BNXT_RE                       policy<{'arm64': 'n'}>
+CONFIG_INFINIBAND_CXGB3                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INFINIBAND_CXGB4                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INFINIBAND_EFA                           policy<{'arm64': 'n'}>
+CONFIG_INFINIBAND_HNS                           policy<{'arm64': '-'}>
+CONFIG_INFINIBAND_HNS_HIP06                     policy<{'arm64': '-'}>
+CONFIG_INFINIBAND_HNS_HIP08                     policy<{'arm64': '-'}>
+CONFIG_INFINIBAND_I40IW                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INFINIBAND_IPOIB                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INFINIBAND_IPOIB_CM                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INFINIBAND_IPOIB_DEBUG                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INFINIBAND_ISER                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INFINIBAND_ISERT                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INFINIBAND_MTHCA                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INFINIBAND_MTHCA_DEBUG                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INFINIBAND_OCRDMA                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INFINIBAND_QEDR                          policy<{'arm64': '-'}>
+CONFIG_INFINIBAND_VMWARE_PVRDMA                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INLINE_READ_LOCK                         policy<{'arm64': '-'}>
+CONFIG_INLINE_READ_LOCK_BH                      policy<{'arm64': '-'}>
+CONFIG_INLINE_READ_LOCK_IRQ                     policy<{'arm64': '-'}>
+CONFIG_INLINE_READ_LOCK_IRQSAVE                 policy<{'arm64': '-'}>
+CONFIG_INLINE_READ_UNLOCK                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INLINE_READ_UNLOCK_BH                    policy<{'arm64': '-'}>
+CONFIG_INLINE_READ_UNLOCK_IRQ                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INLINE_READ_UNLOCK_IRQRESTORE            policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_LOCK                         policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_LOCK_BH                      policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_LOCK_IRQ                     policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_LOCK_IRQSAVE                 policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_TRYLOCK                      policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_TRYLOCK_BH                   policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_UNLOCK_BH                    policy<{'arm64': '-'}>
+CONFIG_INLINE_SPIN_UNLOCK_IRQ                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE            policy<{'arm64': '-'}>
+CONFIG_INLINE_WRITE_LOCK                        policy<{'arm64': '-'}>
+CONFIG_INLINE_WRITE_LOCK_BH                     policy<{'arm64': '-'}>
+CONFIG_INLINE_WRITE_LOCK_IRQ                    policy<{'arm64': '-'}>
+CONFIG_INLINE_WRITE_LOCK_IRQSAVE                policy<{'arm64': '-'}>
+CONFIG_INLINE_WRITE_UNLOCK                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INLINE_WRITE_UNLOCK_BH                   policy<{'arm64': '-'}>
+CONFIG_INLINE_WRITE_UNLOCK_IRQ                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE           policy<{'arm64': '-'}>
+CONFIG_INPUT_HISI_POWERKEY                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_MAX77650_ONKEY                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_PCAP                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_INPUT_PM8941_PWRKEY                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_PM8XXX_VIBRATOR                    policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_INPUT_RAVE_SP_PWRBUTTON                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INPUT_SC27XX_VIBRA                       policy<{'arm64': '-'}>
+CONFIG_INPUT_SOC_BUTTON_ARRAY                   policy<{'arm64': 'n'}>
+CONFIG_INPUT_STPMIC1_ONKEY                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_TWL4030_PWRBUTTON                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_TWL4030_VIBRA                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_TWL6040_VIBRA                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INPUT_WM831X_ON                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND                policy<{'arm64': '-'}>
+CONFIG_INTEL_IDMA64                             policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_INTEL_STRATIX10_RSU                      policy<{'arm64': '-'}>
+CONFIG_INTEL_STRATIX10_SERVICE                  policy<{'arm64': '-'}>
+CONFIG_INTEL_TH_ACPI                            policy<{'arm64': 'n'}>
+CONFIG_INTEL_TH_PCI                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_INTERCONNECT                             policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_INTERCONNECT_QCOM                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INTERCONNECT_QCOM_QCS404                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_INTERCONNECT_QCOM_SDM845                 policy<{'arm64': '-'}>
+CONFIG_INTERCONNECT_QCOM_SMD_RPM                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IOMMU_IOVA                               policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_ION                                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IONIC                                    policy<{'arm64': 'n'}>
+CONFIG_ION_CMA_HEAP                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ION_SYSTEM_HEAP                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IPACK_BUS                                policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_IPMI_KCS_BMC                             policy<{'armhf': '-'}>
+CONFIG_IPQ_GCC_4019                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPQ_GCC_806X                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPQ_GCC_8074                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPQ_LCC_806X                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2100                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_IPW2100_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2100_MONITOR                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2200                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_IPW2200_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2200_MONITOR                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2200_PROMISCUOUS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2200_QOS                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPW2200_RADIOTAP                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IPWIRELESS                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IP_PNP_BOOTP                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IP_PNP_DHCP                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IP_PNP_RARP                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IRQ_BYPASS_MANAGER                       policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_IRQ_CROSSBAR                             policy<{'armhf': '-'}>
+CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS           policy<{'arm64': '-'}>
+CONFIG_IRQ_SIM                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IRQ_UNIPHIER_AIDET                       policy<{'armhf': '-'}>
+CONFIG_IR_ENE                                   policy<{'arm64': 'n'}>
+CONFIG_IR_FINTEK                                policy<{'arm64': 'n'}>
+CONFIG_IR_ITE_CIR                               policy<{'arm64': 'n'}>
+CONFIG_IR_MESON                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IR_MTK                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IR_NUVOTON                               policy<{'arm64': 'n'}>
+CONFIG_IR_RCMM_DECODER                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IR_RX51                                  policy<{'armhf': '-'}>
+CONFIG_IR_SPI                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IR_SUNXI                                 policy<{'arm64': '-'}>
+CONFIG_ISCSI_IBFT                               policy<{'arm64': 'n'}>
+CONFIG_ISCSI_TARGET_CXGB4                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ISDN_CAPI_MIDDLEWARE                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ISDN_DRV_AVMB1_C4                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ISDN_DRV_AVMB1_T1PCI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ISI                                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IWL3945                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_IWL4965                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_IWLDVM                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLEGACY                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLEGACY_DEBUG                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLEGACY_DEBUGFS                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLMVM                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLWIFI                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_IWLWIFI_BCAST_FILTERING                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLWIFI_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLWIFI_DEBUGFS                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLWIFI_DEVICE_TRACING                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLWIFI_LEDS                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWLWIFI_OPMODE_MODULAR                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IWMMXT                                   policy<{'armhf': '-'}>
+CONFIG_IXGB                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IXGBE                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IXGBEVF                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IXGBEVF_IPSEC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IXGBE_DCB                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IXGBE_HWMON                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_IXGBE_IPSEC                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_JFFS2_SUMMARY                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_JME                                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_JOYSTICK_FSIA6B                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_JUMP_LABEL                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_K3_DMA                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KEXEC_IMAGE_VERIFY_SIG                   policy<{'arm64': 'y'}>
+CONFIG_KEYBOARD_CROS_EC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KEYBOARD_IMX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_KEYBOARD_MTK_PMIC                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_KEYBOARD_NVEC                            policy<{'armhf': '-'}>
+CONFIG_KEYBOARD_SNVS_PWRKEY                     policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_KEYBOARD_SUN4I_LRADC                     policy<{'arm64': '-'}>
+CONFIG_KEYBOARD_TC3589X                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_KEYBOARD_TEGRA                           policy<{'armhf': '-'}>
+CONFIG_KEYBOARD_TWL4030                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KEYS_REQUEST_CACHE                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_KPC2000                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_KPC2000_CORE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KPC2000_DMA                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KPC2000_I2C                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KPC2000_SPI                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KPSS_XCC                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_KRAITCC                                  policy<{'armhf': '-'}>
+CONFIG_KRAIT_CLOCKS                             policy<{'armhf': '-'}>
+CONFIG_KRAIT_L2_ACCESSORS                       policy<{'armhf': '-'}>
+CONFIG_KSZ884X_PCI                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LEDS_AN30259A                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LEDS_CR0014114                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LEDS_GPIO                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_LM36274                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_LEDS_LM3692X                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LEDS_LM3697                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_LEDS_MAX77650                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_LEDS_MT6323                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LEDS_NS2                                 policy<{'armhf': '-'}>
+CONFIG_LEDS_SC27XX_BLTC                         policy<{'arm64': '-'}>
+CONFIG_LEDS_SPI_BYTE                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LEDS_TI_LMU_COMMON                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LEDS_TRIGGER_BACKLIGHT                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_TRIGGER_DEFAULT_ON                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_TRIGGER_GPIO                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_TRIGGER_HEARTBEAT                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_TRIGGER_ONESHOT                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_TRIGGER_TIMER                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LEDS_WM831X_STATUS                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LEDS_WM8350                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LEGACY_PTY_COUNT                         policy<{'arm64': '256', 'armhf': '256'}>
+CONFIG_LIB80211_CRYPT_TKIP                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBERTAS                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBERTAS_CS                              policy<{'armhf': 'n'}>
+CONFIG_LIBERTAS_DEBUG                           policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_LIBERTAS_MESH                            policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_LIBERTAS_SDIO                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBERTAS_SPI                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBERTAS_THINFIRM                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBERTAS_THINFIRM_DEBUG                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_LIBERTAS_THINFIRM_USB                    policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBERTAS_USB                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_LIBIPW                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_LIBIPW_DEBUG                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_LIQUIDIO                                 policy<{'arm64': '-'}>
+CONFIG_LIQUIDIO_VF                              policy<{'arm64': '-'}>
+CONFIG_LOGO                                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LOGO_LINUX_CLUT224                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_LOGO_LINUX_MONO                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LOGO_LINUX_VGA16                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LOG_BUF_SHIFT                            policy<{'arm64': '17', 'armhf': '17'}>
+CONFIG_LPC_ICH                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LPC_SCH                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_LS_SCFG_MSI                              policy<{'arm64': '-'}>
+CONFIG_MACB_PCI                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MACH_ARMADA_370                          policy<{'armhf': '-'}>
+CONFIG_MACH_ARMADA_375                          policy<{'armhf': '-'}>
+CONFIG_MACH_ARMADA_38X                          policy<{'armhf': '-'}>
+CONFIG_MACH_ARMADA_39X                          policy<{'armhf': '-'}>
+CONFIG_MACH_ARMADA_XP                           policy<{'armhf': '-'}>
+CONFIG_MACH_ARTPEC6                             policy<{'armhf': '-'}>
+CONFIG_MACH_ASPEED_G6                           policy<{'armhf': '-'}>
+CONFIG_MACH_BERLIN_BG2                          policy<{'armhf': '-'}>
+CONFIG_MACH_BERLIN_BG2CD                        policy<{'armhf': '-'}>
+CONFIG_MACH_BERLIN_BG2Q                         policy<{'armhf': '-'}>
+CONFIG_MACH_DOVE                                policy<{'armhf': '-'}>
+CONFIG_MACH_MESON6                              policy<{'armhf': '-'}>
+CONFIG_MACH_MESON8                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT2701                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT6589                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT6592                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT7623                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT7629                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT8127                              policy<{'armhf': '-'}>
+CONFIG_MACH_MT8135                              policy<{'armhf': '-'}>
+CONFIG_MACH_MVEBU_ANY                           policy<{'armhf': '-'}>
+CONFIG_MACH_MVEBU_V7                            policy<{'armhf': '-'}>
+CONFIG_MACH_OMAP3517EVM                         policy<{'armhf': '-'}>
+CONFIG_MACH_OMAP3_PANDORA                       policy<{'armhf': '-'}>
+CONFIG_MACH_OMAP_GENERIC                        policy<{'armhf': '-'}>
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE               policy<{'arm64': '0x1', 'armhf': '0x01b6'}>
+CONFIG_MANTIS_CORE                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MAX5432                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MCB                                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MCB_LPC                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MCB_PCI                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MCPM_QUAD_CLUSTER                        policy<{'armhf': '-'}>
+CONFIG_MDIO                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MDIO_ASPEED                              policy<{'armhf': '-'}>
+CONFIG_MDIO_BCM_IPROC                           policy<{'arm64': '-'}>
+CONFIG_MDIO_BCM_UNIMAC                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MDIO_BUS_MUX                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MDIO_BUS_MUX_BCM_IPROC                   policy<{'arm64': '-'}>
+CONFIG_MDIO_BUS_MUX_MESON_G12A                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MDIO_SUN4I                               policy<{'arm64': '-'}>
+CONFIG_MDIO_THUNDER                             policy<{'arm64': 'n'}>
+CONFIG_MDIO_XGENE                               policy<{'arm64': '-'}>
+CONFIG_MDM_GCC_9615                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MDM_LCC_9615                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MEDIATEK_MT6577_AUXADC                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MEDIATEK_WATCHDOG                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MEDIA_ALTERA_CI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MEDIA_ANALOG_TV_SUPPORT                  policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MEDIA_ATTACH                             policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MEDIA_CEC_RC                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEDIA_COMMON_OPTIONS                     policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MEDIA_CONTROLLER_DVB                     policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MEDIA_CONTROLLER_REQUEST_API             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT                 policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MEDIA_PCI_SUPPORT                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEDIA_RADIO_SUPPORT                      policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MEDIA_SDR_SUPPORT                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MEDIA_TUNER                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_E4000                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_FC0011                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_FC0012                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_FC0013                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_FC2580                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_IT913X                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_M88RS6000T                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MEDIA_TUNER_MAX2165                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MC44S803                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MSI001                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MT2060                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MT2063                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MT20XX                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MT2131                       policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MEDIA_TUNER_MT2266                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MXL301RF                     policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MEDIA_TUNER_MXL5005S                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_MXL5007T                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_QM1D1B0004                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MEDIA_TUNER_QM1D1C0042                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_QT1010                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_R820T                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_SI2157                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_SIMPLE                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18212                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18218                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18250                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18271                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA827X                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA8290                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TDA9887                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TEA5761                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TEA5767                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_TUA9001                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_XC2028                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_XC4000                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEDIA_TUNER_XC5000                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEGARAID_LEGACY                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEGARAID_MAILBOX                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MEGARAID_MM                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MEGARAID_NEWGEN                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEGARAID_SAS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MELLANOX_PLATFORM                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEMORY_FAILURE                           policy<{'arm64': 'n'}>
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT             policy<{'arm64': 'n'}>
+CONFIG_MEMSTICK_JMICRON_38X                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEMSTICK_R592                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEMSTICK_REALTEK_PCI                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MEMSTICK_TIFM_MS                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MENZ069_WATCHDOG                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MEN_Z188_ADC                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MESON6_TIMER                             policy<{'armhf': '-'}>
+CONFIG_MESON_CANVAS                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_CLK_MEASURE                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_EE_PM_DOMAINS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_EFUSE                              policy<{'arm64': '-'}>
+CONFIG_MESON_GXBB_WATCHDOG                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_GXL_PHY                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_GX_PM_DOMAINS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_GX_SOCINFO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_IRQ_GPIO                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_MX_EFUSE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_MX_SOCINFO                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_SARADC                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MESON_SM                                 policy<{'arm64': '-'}>
+CONFIG_MESON_WATCHDOG                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_AC100                                policy<{'arm64': '-'}>
+CONFIG_MFD_ALTERA_SYSMGR                        policy<{'arm64': '-'}>
+CONFIG_MFD_AXP20X_RSB                           policy<{'arm64': '-'}>
+CONFIG_MFD_CROS_EC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_CROS_EC_DEV                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_CS47L24                              policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_CS47L35                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_CS47L85                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_CS47L90                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_EXYNOS_LPASS                         policy<{'armhf': '-'}>
+CONFIG_MFD_GATEWORKS_GSC                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MFD_HI655X_PMIC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_IMX_AUDIOMIX                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MFD_JANZ_CMODIO                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_LOCHNAGAR                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_MADERA_I2C                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_MAX77650                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_MT6397                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MFD_NVEC                                 policy<{'armhf': '-'}>
+CONFIG_MFD_OMAP_USB_HOST                        policy<{'armhf': '-'}>
+CONFIG_MFD_QCOM_RPM                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_RDC321X                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_ROHM_BD718XX                         policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_MFD_SC27XX_PMIC                          policy<{'arm64': '-'}>
+CONFIG_MFD_SPMI_PMIC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_STMFX                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_STPMIC1                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_SUN4I_GPADC                          policy<{'arm64': '-'}>
+CONFIG_MFD_SUN6I_PRCM                           policy<{'arm64': '-'}>
+CONFIG_MFD_TC3589X                              policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_TPS68470                             policy<{'arm64': 'n'}>
+CONFIG_MFD_TQMX86                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_TWL4030_AUDIO                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_VEXPRESS_SYSREG                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MFD_VX855                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MFD_WM5102                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM5110                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM831X                               policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MFD_WM831X_I2C                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM831X_SPI                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM8350                               policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MFD_WM8350_I2C                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM8400                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM8994                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MFD_WM8997                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MFD_WM8998                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_MICREL_PHY                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MICROCHIP_PHY                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MII                                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MILBEAUT_TIMER                           policy<{'armhf': '-'}>
+CONFIG_MISDN_AVMFRITZ                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MISDN_HDLC                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MISDN_HFCMULTI                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MISDN_HFCPCI                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MISDN_INFINEON                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MISDN_IPAC                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MISDN_ISAR                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MISDN_NETJET                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MISDN_SPEEDFAX                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MISDN_W6692                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MLX4_CORE                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX4_CORE_GEN2                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX4_DEBUG                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX4_EN                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MLX4_EN_DCB                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX4_INFINIBAND                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MLX5_ACCEL                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_CORE                                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MLX5_CORE_EN                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_CORE_EN_DCB                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_CORE_IPOIB                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_EN_ARFS                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_EN_IPSEC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_EN_RXNFC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_EN_TLS                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_ESWITCH                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_FPGA                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_FPGA_IPSEC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_FPGA_TLS                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_INFINIBAND                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_MPFS                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_SW_STEERING                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX5_TLS                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLXBF_TMFIFO                             policy<{'arm64': '-'}>
+CONFIG_MLXFW                                    policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MLXREG_HOTPLUG                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLXREG_IO                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLXSW_CORE                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MLXSW_CORE_HWMON                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MLXSW_CORE_THERMAL                       policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MLXSW_I2C                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MLXSW_MINIMAL                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MLXSW_PCI                                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MLXSW_SPECTRUM                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLXSW_SPECTRUM_DCB                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLXSW_SWITCHIB                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLXSW_SWITCHX2                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MLX_WDT                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_ALCOR                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_ARMMMCI                              policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_MMC_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_MMC_BLOCK_MINORS                         policy<{'arm64': '32', 'armhf': '32'}>
+CONFIG_MMC_CAVIUM_THUNDERX                      policy<{'arm64': '-'}>
+CONFIG_MMC_CB710                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_CQHCI                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_DW                                   policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MMC_DW_BLUEFIELD                         policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MMC_DW_EXYNOS                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MMC_DW_HI3798CV200                       policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MMC_DW_K3                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MMC_DW_PCI                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MMC_DW_PLTFM                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MMC_DW_ROCKCHIP                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_MESON_GX                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_MESON_MX_SDIO                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_MTK                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_MVSDIO                               policy<{'armhf': '-'}>
+CONFIG_MMC_MXC                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_OMAP                                 policy<{'armhf': '-'}>
+CONFIG_MMC_QCOM_DML                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_REALTEK_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_REALTEK_USB                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_RICOH_MMC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SDHCI_ACPI                           policy<{'arm64': 'n'}>
+CONFIG_MMC_SDHCI_AM654                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHCI_BRCMSTB                        policy<{'arm64': '-'}>
+CONFIG_MMC_SDHCI_CADENCE                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_DOVE                           policy<{'armhf': '-'}>
+CONFIG_MMC_SDHCI_ESDHC_IMX                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_SDHCI_F_SDH30                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_IPROC                          policy<{'arm64': '-'}>
+CONFIG_MMC_SDHCI_MSM                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SDHCI_OF_ARASAN                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHCI_OF_ASPEED                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHCI_OF_AT91                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHCI_OF_DWCMSHC                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_OF_ESDHC                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_SDHCI_OMAP                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHCI_PCI                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHCI_PXAV3                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SDHCI_S3C                            policy<{'armhf': '-'}>
+CONFIG_MMC_SDHCI_S3C_DMA                        policy<{'armhf': '-'}>
+CONFIG_MMC_SDHCI_SPRD                           policy<{'arm64': '-'}>
+CONFIG_MMC_SDHCI_TEGRA                          policy<{'armhf': '-'}>
+CONFIG_MMC_SDHCI_XENON                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SDHI                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SDHI_INTERNAL_DMAC                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SDHI_SYS_DMAC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SDRICOH_CS                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_SH_MMCIF                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MMC_SPI                                  policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MMC_STM32_SDMMC                          policy<{'arm64': 'n', 'armhf': '-'}>
+CONFIG_MMC_SUNXI                                policy<{'arm64': '-'}>
+CONFIG_MMC_TIFM_SD                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_TMIO_CORE                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MMC_TOSHIBA_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_UNIPHIER                             policy<{'armhf': '-'}>
+CONFIG_MMC_USDHI6ROL0                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_VIA_SDMMC                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MMC_VUB300                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_MODULE_SIG_FORCE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MOST_DIM2                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MOXA_INTELLIO                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MOXA_SMARTIO                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MOXTET                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MSCC_OCELOT_SWITCH                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MSCC_OCELOT_SWITCH_OCELOT                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MSM_GCC_8660                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_GCC_8916                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_GCC_8960                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_GCC_8974                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_GCC_8994                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_GCC_8996                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_GCC_8998                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_IOMMU                                policy<{'armhf': '-'}>
+CONFIG_MSM_LCC_8960                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_MMCC_8960                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_MMCC_8974                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MSM_MMCC_8996                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MT7601U                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT7603E                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MT7615E                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MT76_CORE                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76_LEDS                                policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_MT76_USB                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76x02_LIB                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76x02_USB                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76x0E                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MT76x0U                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76x0_COMMON                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76x2E                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MT76x2U                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MT76x2_COMMON                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MTD_BCM47XXSFLASH                        policy<{'armhf': '-'}>
+CONFIG_MTD_BLKDEVS                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_BLOCK_RO                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_CMDLINE_PARTS                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_HYPERBUS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_NAND_CAFE                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_NAND_CORE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_ECC_SW_HAMMING                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_FSL_IFC                         policy<{'arm64': '-'}>
+CONFIG_MTD_NAND_GPMI_NAND                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_NAND_HISI504                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_NAND_MARVELL                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_NAND_MESON                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_NAND_MTK                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_NAND_MXC                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_NAND_MXIC                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_NAND_OMAP_BCH_BUILD                  policy<{'armhf': '-'}>
+CONFIG_MTD_NAND_ORION                           policy<{'armhf': '-'}>
+CONFIG_MTD_NAND_QCOM                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_NAND_SUNXI                           policy<{'arm64': '-'}>
+CONFIG_MTD_NAND_TEGRA                           policy<{'armhf': '-'}>
+CONFIG_MTD_NAND_VF610_NFC                       policy<{'armhf': '-'}>
+CONFIG_MTD_ONENAND_OMAP2                        policy<{'armhf': '-'}>
+CONFIG_MTD_PCMCIA                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_PHYSMAP_GEMINI                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_PHYSMAP_OF                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTD_PHYSMAP_VERSATILE                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTD_SPI_NOR                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTK_CMDQ                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_CMDQ_MBOX                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_CQDMA                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_EFUSE                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_HSDMA                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_INFRACFG                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_IOMMU                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_IOMMU_V1                             policy<{'armhf': '-'}>
+CONFIG_MTK_PMIC_WRAP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_SCPSYS                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_SMI                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_THERMAL                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_TIMER                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MTK_UART_APDMA                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MUX_ADG792A                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MUX_ADGS1408                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MUX_GPIO                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MUX_MMIO                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MV643XX_ETH                              policy<{'armhf': '-'}>
+CONFIG_MVEBU_CLK_COMMON                         policy<{'armhf': '-'}>
+CONFIG_MVEBU_CLK_COREDIV                        policy<{'armhf': '-'}>
+CONFIG_MVEBU_CLK_CPU                            policy<{'armhf': '-'}>
+CONFIG_MVEBU_DEVBUS                             policy<{'armhf': '-'}>
+CONFIG_MVEBU_GICP                               policy<{'arm64': '-'}>
+CONFIG_MVEBU_ICU                                policy<{'arm64': '-'}>
+CONFIG_MVEBU_MBUS                               policy<{'armhf': '-'}>
+CONFIG_MVEBU_ODMI                               policy<{'arm64': '-'}>
+CONFIG_MVEBU_PIC                                policy<{'arm64': '-'}>
+CONFIG_MVEBU_SEI                                policy<{'arm64': '-'}>
+CONFIG_MVMDIO                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MVNETA                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MVNETA_BM_ENABLE                         policy<{'armhf': '-'}>
+CONFIG_MVPP2                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MV_XOR                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_MV_XOR_V2                                policy<{'arm64': 'n'}>
+CONFIG_MWIFIEX                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MWIFIEX_PCIE                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MWIFIEX_SDIO                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MWIFIEX_USB                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_MWL8K                                    policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_MX3_IPU                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MX3_IPU_IRQS                             policy<{'arm64': '4', 'armhf': '4'}>
+CONFIG_MXC_CAMERA_OV5640_MIPI_V2                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_CAMERA_OV5640_V2                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_CAMERA_OV5647_MIPI                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MXC_CAMERA_OV9281_MIPI_V2                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_CLK                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MXC_CLK_SCU                              policy<{'arm64': '-'}>
+CONFIG_MXC_GPU_VIV                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_HANTRO                               policy<{'arm64': 'm'}>
+CONFIG_MXC_HANTRO_845                           policy<{'arm64': 'm'}>
+CONFIG_MXC_HANTRO_845_H1                        policy<{'arm64': 'm'}>
+CONFIG_MXC_HANTRO_VC8000E                       policy<{'arm64': 'm'}>
+CONFIG_MXC_IMX_DMX_HW                           policy<{'arm64': 'n'}>
+CONFIG_MXC_IPU                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MXC_MIPI_CSI                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_MIPI_CSI2                            policy<{'armhf': 'n'}>
+CONFIG_MXC_MLB                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MXC_MLB150                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_SIM                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MXC_TZIC                                 policy<{'armhf': '-'}>
+CONFIG_MXC_VADC                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MXC_VPU                                  policy<{'armhf': 'n'}>
+CONFIG_MXC_VPU_MALONE                           policy<{'arm64': 'n'}>
+CONFIG_MXC_VPU_WINDSOR                          policy<{'arm64': 'n'}>
+CONFIG_MXS_DMA                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MYRI10GE                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NATSEMI                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_NCSI_OEM_CMD_GET_MAC                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NE2K_PCI                                 policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_NEED_SG_DMA_LENGTH                       policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_NETFILTER_XT_TARGET_NOTRACK              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NETXEN_NIC                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NET_9P_XEN                               policy<{'arm64': '-'}>
+CONFIG_NET_CALXEDA_XGMAC                        policy<{'armhf': '-'}>
+CONFIG_NET_DSA_LOOP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ8795                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NET_DSA_SJA1105_TAS                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_FC                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_SB1000                               policy<{'arm64': 'n'}>
+CONFIG_NET_TC_SKB_EXT                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_TULIP                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NET_VENDOR_3COM                          policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_8390                          policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_ADAPTEC                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_AGERE                         policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_ALACRITECH                    policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_ALLWINNER                     policy<{'arm64': '-'}>
+CONFIG_NET_VENDOR_ALTEON                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_AMAZON                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_AMD                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_ARC                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_ATHEROS                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_AURORA                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_BROCADE                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_CAVIUM                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_CHELSIO                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_CISCO                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_DEC                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_DLINK                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_EZCHIP                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_FREESCALE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_FUJITSU                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_HISILICON                     policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_HP                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_HUAWEI                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_MARVELL                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_MEDIATEK                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NET_VENDOR_MELLANOX                      policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_MICROSEMI                     policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_MYRI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_NATSEMI                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_NETERION                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_NETRONOME                     policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_NI                            policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_NVIDIA                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_OKI                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_PACKET_ENGINES                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_QLOGIC                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_QUALCOMM                      policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_RDC                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_REALTEK                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_RENESAS                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_ROCKER                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_SAMSUNG                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_SILAN                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_SIS                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_SMSC                          policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_SOLARFLARE                    policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_SUN                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_TEHUTI                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_TI                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_VIA                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_WIZNET                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_XILINX                        policy<{'armhf': 'n'}>
+CONFIG_NET_VENDOR_XIRCOM                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_NET_XGENE                                policy<{'arm64': '-'}>
+CONFIG_NET_XGENE_V2                             policy<{'arm64': '-'}>
+CONFIG_NFIT_SECURITY_DEBUG                      policy<{'arm64': '-'}>
+CONFIG_NFP                                      policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_NFP_APP_ABM_NIC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NFP_APP_FLOWER                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NFP_DEBUG                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NFT_FIB_INET                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NF_FLOW_TABLE_INET                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NF_FLOW_TABLE_IPV4                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NF_FLOW_TABLE_IPV6                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NIU                                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NI_XGE_MANAGEMENT_ENET                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_NLS_ASCII                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_NOA1305                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NODES_SHIFT                              policy<{'arm64': '2'}>
+CONFIG_NOKIA_MODEM                              policy<{'armhf': '-'}>
+CONFIG_NORTEL_HERMES                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NOUVEAU_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NOUVEAU_DEBUG_DEFAULT                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NOUVEAU_DEBUG_MMU                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NOUVEAU_PLATFORM_DRIVER                  policy<{'armhf': '-'}>
+CONFIG_NOZOMI                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NO_IOPORT_MAP                            policy<{'armhf': '-'}>
+CONFIG_NPCM7XX_KCS_IPMI_BMC                     policy<{'armhf': '-'}>
+CONFIG_NPCM7XX_TIMER                            policy<{'armhf': '-'}>
+CONFIG_NPCM7XX_WATCHDOG                         policy<{'armhf': '-'}>
+CONFIG_NPCM_ADC                                 policy<{'armhf': '-'}>
+CONFIG_NS83820                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_NTB                                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NTB_IDT                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_MSI                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_MSI_TEST                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_NETDEV                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_PERF                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_PINGPONG                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_SWITCHTEC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_TOOL                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTB_TRANSPORT                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_NTFS_RW                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_NUMA_BALANCING                           policy<{'arm64': 'n'}>
+CONFIG_NVEC_PAZ00                               policy<{'armhf': '-'}>
+CONFIG_NVEC_POWER                               policy<{'armhf': '-'}>
+CONFIG_NVMEM_BCM_OCOTP                          policy<{'arm64': '-'}>
+CONFIG_NVMEM_IMX_IIM                            policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_NVMEM_IMX_OCOTP                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_NVMEM_IMX_OCOTP_SCU                      policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_NVMEM_SNVS_LPGPR                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_NVMEM_SUNXI_SID                          policy<{'arm64': '-'}>
+CONFIG_NVMEM_VF610_OCOTP                        policy<{'armhf': '-'}>
+CONFIG_NVMEM_ZYNQMP                             policy<{'arm64': '-'}>
+CONFIG_NVME_MULTIPATH                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_OBJAGG                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OCTEONTX2_AF                             policy<{'arm64': '-'}>
+CONFIG_OCTEONTX2_MBOX                           policy<{'arm64': '-'}>
+CONFIG_OF_FPGA_REGION                           policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_OF_PMEM                                  policy<{'arm64': 'y'}>
+CONFIG_OMAP2PLUS_MBOX                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OMAP2_VRFB                               policy<{'armhf': '-'}>
+CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE         policy<{'armhf': '-'}>
+CONFIG_OMAP3_SDRC_AC_TIMING                     policy<{'armhf': '-'}>
+CONFIG_OMAP3_THERMAL                            policy<{'armhf': '-'}>
+CONFIG_OMAP4_THERMAL                            policy<{'armhf': '-'}>
+CONFIG_OMAP5_ERRATA_801819                      policy<{'armhf': '-'}>
+CONFIG_OMAP_32K_TIMER                           policy<{'armhf': '-'}>
+CONFIG_OMAP_CONTROL_PHY                         policy<{'armhf': '-'}>
+CONFIG_OMAP_DM_TIMER                            policy<{'armhf': '-'}>
+CONFIG_OMAP_GPMC                                policy<{'armhf': '-'}>
+CONFIG_OMAP_GPMC_DEBUG                          policy<{'armhf': '-'}>
+CONFIG_OMAP_INTERCONNECT                        policy<{'armhf': '-'}>
+CONFIG_OMAP_INTERCONNECT_BARRIER                policy<{'armhf': '-'}>
+CONFIG_OMAP_IOMMU                               policy<{'armhf': '-'}>
+CONFIG_OMAP_IOMMU_DEBUG                         policy<{'armhf': '-'}>
+CONFIG_OMAP_IRQCHIP                             policy<{'armhf': '-'}>
+CONFIG_OMAP_MBOX_KFIFO_SIZE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OMAP_OCP2SCP                             policy<{'armhf': '-'}>
+CONFIG_OMAP_PACKAGE_CBB                         policy<{'armhf': '-'}>
+CONFIG_OMAP_REMOTEPROC                          policy<{'armhf': '-'}>
+CONFIG_OMAP_RESET_CLOCKS                        policy<{'armhf': '-'}>
+CONFIG_OMAP_SSI                                 policy<{'armhf': '-'}>
+CONFIG_OMAP_USB2                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OMAP_WATCHDOG                            policy<{'armhf': '-'}>
+CONFIG_OPTEE                                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ORINOCO_USB                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ORION_IRQCHIP                            policy<{'armhf': '-'}>
+CONFIG_ORION_TIMER                              policy<{'armhf': '-'}>
+CONFIG_ORION_WATCHDOG                           policy<{'armhf': '-'}>
+CONFIG_OWL_DMA                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OWL_PM_DOMAINS                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OWL_PM_DOMAINS_HELPER                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_OWL_TIMER                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_P54_COMMON                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_P54_LEDS                                 policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_P54_PCI                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_P54_SPI                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_P54_SPI_DEFAULT_EEPROM                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_P54_USB                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_PARAVIRT                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PARMAN                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PARPORT_1284                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PARPORT_PC_FIFO                          policy<{'armhf': 'n'}>
+CONFIG_PARPORT_PC_PCMCIA                        policy<{'armhf': 'n'}>
+CONFIG_PARPORT_SERIAL                           policy<{'armhf': '-'}>
+CONFIG_PARTITION_PERCPU                         policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_PATA_ACPI                                policy<{'arm64': 'n'}>
+CONFIG_PATA_ALI                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_AMD                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_ARTOP                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_ATIIXP                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_ATP867X                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_CMD640_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_CMD64X                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_CYPRESS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_EFAR                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_HPT366                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_HPT37X                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_HPT3X2N                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_HPT3X3                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_IMX                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_IT8213                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_IT821X                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_JMICRON                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_LEGACY                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_MARVELL                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_MPIIX                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_NETCELL                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_NINJA32                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_NS87410                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_NS87415                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_OLDPIIX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_OPTI                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_OPTIDMA                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_PCMCIA                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_PDC2027X                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_PDC_OLD                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_RADISYS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_RDC                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_RZ1000                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_SCH                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_SERVERWORKS                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_SIL680                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_SIS                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_TOSHIBA                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_TRIFLEX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_VIA                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PATA_WINBOND                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PC104                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PC300TOO                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCCARD                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCI200SYN                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCIE_AL                                  policy<{'arm64': 'n'}>
+CONFIG_PCIE_ALTERA                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCIE_ALTERA_MSI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_ARMADA_8K                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_CADENCE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_CADENCE_EP                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCIE_CADENCE_HOST                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCIE_DW_EP                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_DW_PLAT_EP                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCIE_HISI_STB                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_IPROC                               policy<{'arm64': '-'}>
+CONFIG_PCIE_IPROC_MSI                           policy<{'arm64': '-'}>
+CONFIG_PCIE_IPROC_PLATFORM                      policy<{'arm64': '-'}>
+CONFIG_PCIE_KIRIN                               policy<{'arm64': 'n'}>
+CONFIG_PCIE_MEDIATEK                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_MOBIVEIL                            policy<{'arm64': '-'}>
+CONFIG_PCIE_QCOM                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_RCAR                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_ROCKCHIP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_ROCKCHIP_EP                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_ROCKCHIP_HOST                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCIE_UNIPHIER                            policy<{'armhf': '-'}>
+CONFIG_PCIE_XILINX                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCIE_XILINX_NWL                          policy<{'arm64': '-'}>
+CONFIG_PCIPCWATCHDOG                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCI_AARDVARK                             policy<{'arm64': '-'}>
+CONFIG_PCI_ATMEL                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCI_BRIDGE_EMUL                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PCI_DRA7XX                               policy<{'armhf': '-'}>
+CONFIG_PCI_DRA7XX_EP                            policy<{'armhf': '-'}>
+CONFIG_PCI_DRA7XX_HOST                          policy<{'armhf': '-'}>
+CONFIG_PCI_FTPCI100                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCI_HISI                                 policy<{'arm64': 'n'}>
+CONFIG_PCI_HOST_THUNDER_ECAM                    policy<{'arm64': 'n'}>
+CONFIG_PCI_HOST_THUNDER_PEM                     policy<{'arm64': 'n'}>
+CONFIG_PCI_IMX6                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_KEYSTONE                             policy<{'arm64': '-'}>
+CONFIG_PCI_KEYSTONE_EP                          policy<{'arm64': '-'}>
+CONFIG_PCI_KEYSTONE_HOST                        policy<{'arm64': '-'}>
+CONFIG_PCI_LAYERSCAPE                           policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_PCI_LAYERSCAPE_EP                        policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_PCI_MVEBU                                policy<{'armhf': '-'}>
+CONFIG_PCI_RCAR_GEN2                            policy<{'armhf': '-'}>
+CONFIG_PCI_SW_SWITCHTEC                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PCI_TEGRA                                policy<{'armhf': '-'}>
+CONFIG_PCI_V3_SEMI                              policy<{'armhf': 'n'}>
+CONFIG_PCI_XGENE                                policy<{'arm64': 'n'}>
+CONFIG_PCI_XGENE_MSI                            policy<{'arm64': '-'}>
+CONFIG_PCMCIA                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCMCIA_3C574                             policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_3C589                             policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_AXNET                             policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_FMVJ18X                           policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_LOAD_CIS                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCMCIA_NMCLAN                            policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_PCNET                             policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_RAYCS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCMCIA_SMC91C92                          policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_WL3501                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCMCIA_XIRC2PS                           policy<{'armhf': 'm'}>
+CONFIG_PCMCIA_XIRCOM                            policy<{'arm64': '-'}>
+CONFIG_PCNET32                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_PD6729                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PDC_ADMA                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PGTABLE_LEVELS                           policy<{'arm64': '4', 'armhf': '2'}>
+CONFIG_PHY_AM654_SERDES                         policy<{'arm64': '-'}>
+CONFIG_PHY_BCM_NS_USB2                          policy<{'arm64': '-'}>
+CONFIG_PHY_BCM_NS_USB3                          policy<{'arm64': '-'}>
+CONFIG_PHY_BCM_SR_PCIE                          policy<{'arm64': '-'}>
+CONFIG_PHY_BCM_SR_USB                           policy<{'arm64': '-'}>
+CONFIG_PHY_BERLIN_SATA                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_BERLIN_USB                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_BRCM_SATA                            policy<{'arm64': '-'}>
+CONFIG_PHY_BRCM_USB                             policy<{'arm64': '-'}>
+CONFIG_PHY_CADENCE_DP                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_CADENCE_DPHY                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_CADENCE_SIERRA                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_CPCAP_USB                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_PHY_DM816X_USB                           policy<{'armhf': '-'}>
+CONFIG_PHY_EXYNOS5250_SATA                      policy<{'armhf': '-'}>
+CONFIG_PHY_EXYNOS5250_USB2                      policy<{'armhf': '-'}>
+CONFIG_PHY_EXYNOS5_USBDRD                       policy<{'armhf': '-'}>
+CONFIG_PHY_EXYNOS_DP_VIDEO                      policy<{'armhf': '-'}>
+CONFIG_PHY_EXYNOS_MIPI_VIDEO                    policy<{'armhf': '-'}>
+CONFIG_PHY_EXYNOS_PCIE                          policy<{'armhf': '-'}>
+CONFIG_PHY_FSL_IMX8MP_LVDS                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_HI3660_USB                           policy<{'arm64': '-'}>
+CONFIG_PHY_HI6220_USB                           policy<{'arm64': '-'}>
+CONFIG_PHY_HISI_INNO_USB2                       policy<{'arm64': '-'}>
+CONFIG_PHY_HISTB_COMBPHY                        policy<{'arm64': '-'}>
+CONFIG_PHY_HIX5HD2_SATA                         policy<{'armhf': '-'}>
+CONFIG_PHY_MAPPHONE_MDM6600                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_MESON8B_USB2                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MESON_G12A_USB2                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MESON_G12A_USB3_PCIE                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MESON_GXL_USB2                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MESON_GXL_USB3                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MIXEL_MIPI_DPHY                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_MTK_TPHY                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MTK_UFS                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MTK_XSPHY                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MVEBU_A3700_COMPHY                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MVEBU_A3700_UTMI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MVEBU_A38X_COMPHY                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MVEBU_CP110_COMPHY                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_MVEBU_SATA                           policy<{'armhf': '-'}>
+CONFIG_PHY_NS2_PCIE                             policy<{'arm64': '-'}>
+CONFIG_PHY_NS2_USB_DRD                          policy<{'arm64': '-'}>
+CONFIG_PHY_OCELOT_SERDES                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_PXA_28NM_HSIC                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_PXA_28NM_USB2                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_QCOM_APQ8064_SATA                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_IPQ806X_SATA                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_PCIE2                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_QMP                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_QUSB2                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_UFS                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_UFS_14NM                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_QCOM_USB_HS                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_QCOM_USB_HSIC                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_RCAR_GEN2                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_RCAR_GEN3_PCIE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_RCAR_GEN3_USB2                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_RCAR_GEN3_USB3                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_DP                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_EMMC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_INNO_HDMI                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_INNO_USB2                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_PCIE                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_TYPEC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_ROCKCHIP_USB                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PHY_SAMSUNG_HDMI_PHY                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_SAMSUNG_USB2                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_SUN4I_USB                            policy<{'arm64': '-'}>
+CONFIG_PHY_SUN6I_MIPI_DPHY                      policy<{'arm64': '-'}>
+CONFIG_PHY_SUN9I_USB                            policy<{'arm64': '-'}>
+CONFIG_PHY_TEGRA_XUSB                           policy<{'armhf': '-'}>
+CONFIG_PHY_TI_GMII_SEL                          policy<{'armhf': '-'}>
+CONFIG_PHY_TUSB1210                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PHY_UNIPHIER_PCIE                        policy<{'armhf': '-'}>
+CONFIG_PHY_UNIPHIER_USB2                        policy<{'armhf': '-'}>
+CONFIG_PHY_UNIPHIER_USB3                        policy<{'armhf': '-'}>
+CONFIG_PHY_XGENE                                policy<{'arm64': 'n'}>
+CONFIG_PINCTRL_AMD                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PINCTRL_APQ8064                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_APQ8084                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_ARMADA_370                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_ARMADA_375                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_ARMADA_37XX                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_ARMADA_38X                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_ARMADA_39X                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_ARMADA_AP806                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_ARMADA_CP110                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_ARMADA_XP                        policy<{'armhf': '-'}>
+CONFIG_PINCTRL_AS370                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_AS3722                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_PINCTRL_ASPEED                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_ASPEED_G6                        policy<{'armhf': '-'}>
+CONFIG_PINCTRL_AXP209                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PINCTRL_BCM2835                          policy<{'arm64': '-'}>
+CONFIG_PINCTRL_BERLIN                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_BERLIN_BG2                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_BERLIN_BG2CD                     policy<{'armhf': '-'}>
+CONFIG_PINCTRL_BERLIN_BG2Q                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_BERLIN_BG4CT                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_BM1880                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_CS47L35                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_CS47L85                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_CS47L90                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_DOVE                             policy<{'armhf': '-'}>
+CONFIG_PINCTRL_EXYNOS                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_EXYNOS_ARM                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_IMX                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_IMX50                            policy<{'armhf': '-'}>
+CONFIG_PINCTRL_IMX51                            policy<{'armhf': '-'}>
+CONFIG_PINCTRL_IMX6Q                            policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_IMX6SL                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_IMX6SLL                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_IMX6SX                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_IMX6UL                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_IMX7D                            policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_IMX7ULP                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_IMX8MM                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_IMX8MN                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_IMX8MP                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_IMX8MQ                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_IPQ4019                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_IPQ8064                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_IPQ8074                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_IPROC_GPIO                       policy<{'arm64': '-'}>
+CONFIG_PINCTRL_LOCHNAGAR                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MDM9615                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MESON                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MESON8                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MESON8B                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MESON8_PMX                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MESON_AXG                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MESON_AXG_PMX                    policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MESON_G12A                       policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MESON_GXBB                       policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MESON_GXL                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MSM                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8660                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8916                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8960                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8994                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8996                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8998                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MSM8X74                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MT2701                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MT2712                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MT6397                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MT6765                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MT6797                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MT7622                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MT7623                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MT7629                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MT8127                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MT8135                           policy<{'armhf': '-'}>
+CONFIG_PINCTRL_MT8173                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MT8183                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MT8516                           policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MTK                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MTK_MOORE                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_MTK_PARIS                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_MVEBU                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_NPCM7XX                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_NS2_MUX                          policy<{'arm64': '-'}>
+CONFIG_PINCTRL_OCELOT                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PINCTRL_OWL                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_PFC_EMEV2                        policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7740                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7743                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7744                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7745                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A77470                     policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A774A1                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A774C0                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A7778                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7779                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7790                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7791                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7792                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7793                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7794                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_PFC_R8A7795                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A7796                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A77965                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A77970                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A77980                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A77990                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_R8A77995                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_PFC_SH73A0                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_QCOM_SPMI_PMIC                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_QCOM_SSBI_PMIC                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_QCS404                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_QDF2XXX                          policy<{'arm64': '-'}>
+CONFIG_PINCTRL_RK805                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_PINCTRL_ROCKCHIP                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_RZA1                             policy<{'armhf': '-'}>
+CONFIG_PINCTRL_RZA2                             policy<{'armhf': '-'}>
+CONFIG_PINCTRL_RZN1                             policy<{'armhf': '-'}>
+CONFIG_PINCTRL_S700                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_S900                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_SAMSUNG                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_SC7180                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_SDM660                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_SDM845                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_SH_PFC                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_SH_PFC_GPIO                      policy<{'armhf': '-'}>
+CONFIG_PINCTRL_SINGLE                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PINCTRL_SM8150                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PINCTRL_SPRD                             policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SPRD_SC9860                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_STMFX                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PINCTRL_SUN4I_A10                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN50I_A64                       policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN50I_A64_R                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN50I_H5                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN50I_H6                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN50I_H6_R                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN5I                            policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN6I_A31                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN6I_A31_R                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_A23                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_A23_R                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_A33                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_A83T                       policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_A83T_R                     policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_H3                         policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_H3_R                       policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN8I_V3S                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN9I_A80                        policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUN9I_A80_R                      policy<{'arm64': '-'}>
+CONFIG_PINCTRL_SUNXI                            policy<{'arm64': '-'}>
+CONFIG_PINCTRL_TEGRA                            policy<{'armhf': '-'}>
+CONFIG_PINCTRL_TEGRA114                         policy<{'armhf': '-'}>
+CONFIG_PINCTRL_TEGRA124                         policy<{'armhf': '-'}>
+CONFIG_PINCTRL_TEGRA20                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_TEGRA30                          policy<{'armhf': '-'}>
+CONFIG_PINCTRL_TEGRA_XUSB                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_TI_IODELAY                       policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER                         policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_LD11                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_LD20                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_LD4                     policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_LD6B                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_PRO4                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_PRO5                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_PXS2                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_PXS3                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_UNIPHIER_SLD8                    policy<{'armhf': '-'}>
+CONFIG_PINCTRL_VF610                            policy<{'armhf': '-'}>
+CONFIG_PJ4B_ERRATA_4742                         policy<{'armhf': '-'}>
+CONFIG_PL310_ERRATA_588369                      policy<{'armhf': 'n'}>
+CONFIG_PL310_ERRATA_727915                      policy<{'armhf': 'n'}>
+CONFIG_PL310_ERRATA_753970                      policy<{'armhf': 'n'}>
+CONFIG_PL320_MBOX                               policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_PL330_DMA                                policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_PL353_SMC                                policy<{'armhf': '-'}>
+CONFIG_PLATFORM_SI4713                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_PLAT_ORION                               policy<{'armhf': '-'}>
+CONFIG_PLAT_SAMSUNG                             policy<{'armhf': '-'}>
+CONFIG_PLAT_VERSATILE                           policy<{'armhf': '-'}>
+CONFIG_PLX_HERMES                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PM8916_WATCHDOG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PNP_DEBUG_MESSAGES                       policy<{'arm64': 'y'}>
+CONFIG_POWER_AVS_OMAP                           policy<{'armhf': '-'}>
+CONFIG_POWER_AVS_OMAP_CLASS3                    policy<{'armhf': '-'}>
+CONFIG_POWER_RESET_HISI                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_POWER_RESET_MSM                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_POWER_RESET_QCOM_PON                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_POWER_RESET_QNAP                         policy<{'armhf': '-'}>
+CONFIG_POWER_RESET_RMOBILE                      policy<{'armhf': '-'}>
+CONFIG_POWER_RESET_SC27XX                       policy<{'arm64': '-'}>
+CONFIG_POWER_RESET_VEXPRESS                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PREEMPT                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PREEMPTION                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PREEMPT_COUNT                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PREEMPT_RCU                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PREEMPT_TRACER                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PREEMPT_VOLUNTARY                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PRINT_QUOTA_WARNING                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PRISM54                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_PSTORE_CONSOLE                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PSTORE_RAM                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PTP_1588_CLOCK_DTE                       policy<{'arm64': '-'}>
+CONFIG_PTP_1588_CLOCK_QORIQ                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_PWM_BCM_IPROC                            policy<{'arm64': '-'}>
+CONFIG_PWM_BERLIN                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_BRCMSTB                              policy<{'arm64': '-'}>
+CONFIG_PWM_CROS_EC                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_HIBVT                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_IMX1                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_IMX27                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_IMX_TPM                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_MEDIATEK                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_MESON                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_MTK_DISP                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_OMAP_DMTIMER                         policy<{'armhf': '-'}>
+CONFIG_PWM_RCAR                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_RENESAS_TPU                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_ROCKCHIP                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_SAMSUNG                              policy<{'armhf': '-'}>
+CONFIG_PWM_SPRD                                 policy<{'arm64': '-'}>
+CONFIG_PWM_STMPE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PWM_SUN4I                                policy<{'arm64': '-'}>
+CONFIG_PWM_TEGRA                                policy<{'armhf': '-'}>
+CONFIG_PWM_TIECAP                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_TIEHRPWM                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_TIPWMSS                              policy<{'armhf': '-'}>
+CONFIG_PWM_TWL                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWM_TWL_LED                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_PWRSEQ_EMMC                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PWRSEQ_SIMPLE                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PXA168_ETH                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCA7000                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_QCA7000_SPI                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_QCA7000_UART                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_QCOM_A53PLL                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_AOSS_QMP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_APCS_IPC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_APR                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_BAM_DMA                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_CLK_APCS_MSM8916                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_CLK_RPM                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_CLK_RPMH                            policy<{'arm64': '-'}>
+CONFIG_QCOM_CLK_SMD_RPM                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_COINCELL                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_COMMAND_DB                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_EBI2                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_EMAC                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_QCOM_FASTRPC                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_GDSC                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_GENI_SE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_GLINK_SSR                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_GSBI                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_HFPLL                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_HIDMA                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QCOM_HIDMA_MGMT                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QCOM_IOMMU                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_IRQ_COMBINER                        policy<{'arm64': '-'}>
+CONFIG_QCOM_L2_PMU                              policy<{'arm64': '-'}>
+CONFIG_QCOM_L3_PMU                              policy<{'arm64': '-'}>
+CONFIG_QCOM_LLCC                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_MDT_LOADER                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_PDC                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_PM                                  policy<{'armhf': '-'}>
+CONFIG_QCOM_Q6V5_ADSP                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_Q6V5_COMMON                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_Q6V5_MSS                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_Q6V5_PAS                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_Q6V5_WCSS                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_QFPROM                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_QMI_HELPERS                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_RMTFS_MEM                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_RPMCC                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_RPMH                                policy<{'arm64': '-'}>
+CONFIG_QCOM_RPMHPD                              policy<{'arm64': '-'}>
+CONFIG_QCOM_RPROC_COMMON                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SCM                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SCM_32                              policy<{'armhf': '-'}>
+CONFIG_QCOM_SCM_64                              policy<{'arm64': '-'}>
+CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SDM845_LLCC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SMD_RPM                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SMEM                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SMEM_STATE                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SMP2P                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SMSM                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SOCINFO                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SPMI_TEMP_ALARM                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_SYSMON                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_TSENS                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_WCNSS_CTRL                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_WCNSS_PIL                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCOM_WDT                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCS_GCC_404                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QCS_TURING_404                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QED                                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QEDE                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QEDF                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QEDI                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QED_FCOE                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QED_ISCSI                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QED_LL2                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QED_OOO                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QED_RDMA                                 policy<{'arm64': '-'}>
+CONFIG_QED_SRIOV                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QLA3XXX                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QLCNIC                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QLCNIC_DCB                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QLCNIC_HWMON                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QLCNIC_SRIOV                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QLGE                                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QORIQ_CPUFREQ                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QRTR                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QRTR_SMD                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QRTR_TUN                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QTNFMAC                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_QTNFMAC_PCIE                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_R6040                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_R8169                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RADIO_ADAPTERS                           policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RADIO_MAXIRADIO                          policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RADIO_SAA7706H                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_SHARK                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_SHARK2                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_SI470X                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_SI4713                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_SI476X                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_TEA575X                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_TEA5764                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_TEF6862                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_WL1273                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RADIO_WL128X                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RANDOM_TRUST_BOOTLOADER                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RAPIDIO                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RAPIDIO_CHMAN                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_CPS_GEN2                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_CPS_XX                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_DEBUG                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_DISC_TIMEOUT                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_DMA_ENGINE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_ENUM_BASIC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_MPORT_CDEV                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_RXS_GEN3                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_TSI568                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_TSI57X                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAPIDIO_TSI721                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RASPBERRYPI_FIRMWARE                     policy<{'arm64': '-'}>
+CONFIG_RASPBERRYPI_POWER                        policy<{'arm64': '-'}>
+CONFIG_RAVB                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RAVE_SP_EEPROM                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_RCAR_DMAC                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RCAR_GEN3_THERMAL                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RCAR_GYRO_ADC                            policy<{'armhf': '-'}>
+CONFIG_RCAR_THERMAL                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RCU_CPU_STALL_TIMEOUT                    policy<{'arm64': '21', 'armhf': '21'}>
+CONFIG_RC_CORE                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RDA_INTC                                 policy<{'armhf': '-'}>
+CONFIG_RDA_TIMER                                policy<{'armhf': '-'}>
+CONFIG_RDMA_RXE                                 policy<{'arm64': 'n'}>
+CONFIG_RDMA_SIW                                 policy<{'arm64': 'n'}>
+CONFIG_READ_ONLY_THP_FOR_FS                     policy<{'arm64': '-'}>
+CONFIG_REED_SOLOMON                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGMAP_AC97                              policy<{'armhf': '-'}>
+CONFIG_REGMAP_SCCB                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGMAP_SLIMBUS                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_ANATOP                         policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_REGULATOR_BD718XX                        policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_REGULATOR_GPIO                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_REGULATOR_HI655X                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_LOCHNAGAR                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_LP87565                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_REGULATOR_MAX77650                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_MCP16502                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_REGULATOR_MT6311                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_REGULATOR_MT6323                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REGULATOR_MT6380                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_MT6397                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REGULATOR_PBIAS                          policy<{'armhf': '-'}>
+CONFIG_REGULATOR_PCA9450                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_PCAP                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REGULATOR_QCOM_RPM                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_QCOM_RPMH                      policy<{'arm64': '-'}>
+CONFIG_REGULATOR_QCOM_SMD_RPM                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_QCOM_SPMI                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_REGULATOR_RK808                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_REGULATOR_S2MPA01                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_REGULATOR_S2MPS11                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_REGULATOR_S5M8767                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_REGULATOR_SC2731                         policy<{'arm64': '-'}>
+CONFIG_REGULATOR_STPMIC1                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_SY8106A                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_REGULATOR_SY8824X                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_REGULATOR_TI_ABB                         policy<{'armhf': '-'}>
+CONFIG_REGULATOR_UNIPHIER                       policy<{'armhf': '-'}>
+CONFIG_REGULATOR_VEXPRESS                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_REGULATOR_WM831X                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REGULATOR_WM8350                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REGULATOR_WM8400                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REGULATOR_WM8994                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_REMOTEPROC_CDEV                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RENESAS_DMA                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RENESAS_INTC_IRQPIN                      policy<{'armhf': '-'}>
+CONFIG_RENESAS_IRQC                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RENESAS_OSTM                             policy<{'armhf': '-'}>
+CONFIG_RENESAS_RZA1_IRQC                        policy<{'armhf': '-'}>
+CONFIG_RENESAS_RZAWDT                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RENESAS_USB_DMAC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RENESAS_WDT                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_ASUS_PE100A                        policy<{'arm64': 'm'}>
+CONFIG_RESET_ATTACK_MITIGATION                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RESET_BERLIN                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_BRCMSTB                            policy<{'arm64': '-'}>
+CONFIG_RESET_DISPMIX                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_HISI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_IMX7                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_IMX_AUDIOMIX                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_IMX_HDMIMIX                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_MESON                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_MESON_AUDIO_ARB                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_QCOM_AOSS                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_QCOM_PDC                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_SCMI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_SIMPLE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RESET_SUNXI                              policy<{'arm64': '-'}>
+CONFIG_RESET_TEGRA_BPMP                         policy<{'armhf': '-'}>
+CONFIG_RESET_TI_SCI                             policy<{'arm64': '-'}>
+CONFIG_RESET_TI_SYSCON                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RESET_UNIPHIER                           policy<{'armhf': '-'}>
+CONFIG_RESET_UNIPHIER_GLUE                      policy<{'armhf': '-'}>
+CONFIG_RING_BUFFER_ALLOW_SWAP                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RIONET                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RIONET_RX_SIZE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RIONET_TX_SIZE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RMNET                                    policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_ANALOGIX_DP                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_CDN_DP                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_DW_HDMI                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_DW_MIPI_DSI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_EFUSE                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_GRF                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_INNO_HDMI                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_IODOMAIN                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_IOMMU                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_LVDS                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_MBOX                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_PM_DOMAINS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_RGB                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_RK3066_HDMI                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_SARADC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_THERMAL                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKCHIP_TIMER                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_ROCKER                                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ROCKETPORT                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RPMSG                                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RPMSG_AMGIS_M4_DEVICES                   policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_RPMSG_CHAR                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RPMSG_QCOM_GLINK_NATIVE                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RPMSG_QCOM_GLINK_RPM                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RPMSG_QCOM_GLINK_SMEM                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RPMSG_QCOM_SMD                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RPMSG_VIRTIO                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RSI_91X                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RSI_COEX                                 policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RSI_DEBUGFS                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RSI_SDIO                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RSI_USB                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RST_RCAR                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2400PCI                                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RT2500PCI                                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RT2500USB                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RT2800PCI                                policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RT2800PCI_RT3290                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2800PCI_RT33XX                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2800PCI_RT35XX                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2800PCI_RT53XX                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2800USB                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RT2800USB_RT33XX                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2800USB_RT3573                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2800USB_RT35XX                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2800USB_RT53XX                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2800USB_RT55XX                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2800USB_UNKNOWN                        policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2800_LIB                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RT2800_LIB_MMIO                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2X00                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RT2X00_DEBUG                             policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RT2X00_LIB                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RT2X00_LIB_CRYPTO                        policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2X00_LIB_DEBUGFS                       policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RT2X00_LIB_FIRMWARE                      policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2X00_LIB_LEDS                          policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_RT2X00_LIB_MMIO                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2X00_LIB_PCI                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RT2X00_LIB_USB                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RT61PCI                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RT73USB                                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RTC_DRV_AM1805                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTC_DRV_ARMADA38X                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_ASPEED                           policy<{'armhf': '-'}>
+CONFIG_RTC_DRV_BD70528                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTC_DRV_BRCMSTB                          policy<{'arm64': '-'}>
+CONFIG_RTC_DRV_CROS_EC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_FSL_FTM_ALARM                    policy<{'arm64': '-'}>
+CONFIG_RTC_DRV_IMXDI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_IMX_SC                           policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_RTC_DRV_ISL12026                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTC_DRV_MESON                            policy<{'armhf': '-'}>
+CONFIG_RTC_DRV_MESON_VRTC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_MT6397                           policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_RTC_DRV_MT7622                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_MV                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_MXC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_MXC_V2                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTC_DRV_OMAP                             policy<{'armhf': '-'}>
+CONFIG_RTC_DRV_PCAP                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RTC_DRV_PCF8523                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_PL030                            policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_RTC_DRV_PL031                            policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_RTC_DRV_PM8XXX                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RTC_DRV_RTD119X                          policy<{'arm64': '-'}>
+CONFIG_RTC_DRV_S3C                              policy<{'armhf': '-'}>
+CONFIG_RTC_DRV_SC27XX                           policy<{'arm64': '-'}>
+CONFIG_RTC_DRV_SH                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTC_DRV_SUN6I                            policy<{'arm64': '-'}>
+CONFIG_RTC_DRV_TEGRA                            policy<{'armhf': '-'}>
+CONFIG_RTC_DRV_WM831X                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RTC_DRV_WM8350                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_RTC_DRV_XGENE                            policy<{'arm64': '-'}>
+CONFIG_RTD119X_WATCHDOG                         policy<{'arm64': '-'}>
+CONFIG_RTL8180                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8188EE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8192CE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8192DE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8192E                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8192EE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8192SE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8192U                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8723AE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8723BE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTL8723_COMMON                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTL8821AE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTLBTCOEXIST                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTLWIFI_PCI                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_RTS5208                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTW88_8723DE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_RTW88_8822BE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_S2IO                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_S3C2410_WATCHDOG                         policy<{'armhf': '-'}>
+CONFIG_S5P_DEV_MFC                              policy<{'armhf': '-'}>
+CONFIG_SAMPLES                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SAMPLE_CONFIGFS                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_HW_BREAKPOINT                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_KDB                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_KFIFO                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_KOBJECT                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_KPROBES                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_QMI_CLIENT                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_RPMSG_CLIENT                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_TRACE_EVENTS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_VFIO_MDEV_MBOCHS                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_VFIO_MDEV_MDPY                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMPLE_VFIO_MDEV_MTTY                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SAMSUNG_MC                               policy<{'armhf': '-'}>
+CONFIG_SATA_ACARD_AHCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_AHCI                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_AHCI_SEATTLE                        policy<{'arm64': '-'}>
+CONFIG_SATA_INIC162X                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_MOBILE_LPM_POLICY                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SATA_MV                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_NV                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_PROMISE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_QSTOR                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_RCAR                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SATA_SIL                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_SIL24                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_SIS                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_SVW                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_SX4                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_ULI                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_VIA                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_VITESSE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SATA_ZPODD                               policy<{'arm64': 'n'}>
+CONFIG_SBP_TARGET                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SC27XX_ADC                               policy<{'arm64': '-'}>
+CONFIG_SC27XX_EFUSE                             policy<{'arm64': '-'}>
+CONFIG_SC92031                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCHED_SMT                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCR24X                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SCSI_3W_9XXX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_3W_SAS                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_AACRAID                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_ACARD                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_ADVANSYS                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_AIC79XX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_AIC7XXX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_AIC94XX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_AM53C974                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_ARCMSR                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_BFA_FC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_BNX2X_FCOE                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_BNX2_ISCSI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_CHELSIO_FCOE                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_CXGB3_ISCSI                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_CXGB4_ISCSI                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_DC395x                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_DMX3191D                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_DPT_I2O                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_ESAS2R                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_GDTH                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_HISI_SAS_PCI                        policy<{'arm64': 'n'}>
+CONFIG_SCSI_HPSA                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_HPTIOP                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_INIA100                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_INITIO                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_IPR                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_IPS                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_LOWLEVEL_PCMCIA                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_LPFC                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_LPFC_DEBUG_FS                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_MPT2SAS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_MPT2SAS_MAX_SGE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_MPT3SAS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_MPT3SAS_MAX_SGE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_MVSAS                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_MVSAS_DEBUG                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_MVSAS_TASKLET                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_MVUMI                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_MYRB                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_MYRS                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_NSP32                               policy<{'armhf': 'n'}>
+CONFIG_SCSI_PM8001                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_PMCRAID                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_QLA_FC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_QLA_ISCSI                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_QLOGIC_1280                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_SMARTPQI                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_SNIC                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_SNIC_DEBUG_FS                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_STEX                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_SYM53C8XX_2                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_SYM53C8XX_MMIO                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_UFSHCD_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SCSI_UFS_DWC_TC_PCI                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_UFS_HISI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_UFS_MEDIATEK                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_UFS_QCOM                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SCSI_WD719X                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SDM_CAMCC_845                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDM_DISPCC_845                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDM_GCC_660                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDM_GCC_845                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDM_GPUCC_845                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDM_LPASSCC_845                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDM_VIDEOCC_845                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SDR_MAX2175                              policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SDR_PLATFORM_DRIVERS                     policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_SD_ADC_MODULATOR                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SECURITY_INFINIBAND                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE      policy<{'arm64': '0', 'armhf': '0'}>
+CONFIG_SECURITY_SMACK_BRINGUP                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SENSORS_ACPI_POWER                       policy<{'arm64': 'n'}>
+CONFIG_SENSORS_ARM_SCMI                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SENSORS_AS370                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_GSC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_I5K_AMB                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_INSPUR_IPSPS                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_IR38064                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_ISL68137                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_LOCHNAGAR                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SENSORS_MLXREG_FAN                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SENSORS_OCC_P9_SBE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SENSORS_RASPBERRYPI_HWMON                policy<{'arm64': '-'}>
+CONFIG_SENSORS_SIS5595                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_VEXPRESS                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SENSORS_VIA686A                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_VT8231                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_WM831X                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SENSORS_WM8350                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SENSORS_XGENE                            policy<{'arm64': 'n'}>
+CONFIG_SERIAL_8250_BCM2835AUX                   policy<{'arm64': '-'}>
+CONFIG_SERIAL_8250_CS                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_8250_DW                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_8250_EXAR                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_8250_FINTEK                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_8250_MEN_MCB                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SERIAL_8250_MT6577                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_8250_NR_UARTS                     policy<{'arm64': '1', 'armhf': '1'}>
+CONFIG_SERIAL_8250_OMAP                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_8250_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SERIAL_8250_RT288X                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_SERIAL_8250_RUNTIME_UARTS                policy<{'arm64': '0', 'armhf': '0'}>
+CONFIG_SERIAL_8250_UNIPHIER                     policy<{'armhf': '-'}>
+CONFIG_SERIAL_ALTERA_JTAGUART                   policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SERIAL_ALTERA_UART                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE              policy<{'arm64': '-', 'armhf': '115200'}>
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS              policy<{'arm64': '-', 'armhf': '4'}>
+CONFIG_SERIAL_AMBA_PL010                        policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_SERIAL_AMBA_PL011                        policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_SERIAL_AMBA_PL011_CONSOLE                policy<{'arm64': 'y', 'armhf': '-'}>
+CONFIG_SERIAL_ARC                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SERIAL_ARC_NR_PORTS                      policy<{'arm64': '-', 'armhf': '1'}>
+CONFIG_SERIAL_FSL_LINFLEXUART                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SERIAL_IMX                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_IMX_CONSOLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_IPOCTAL                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SERIAL_JSM                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SERIAL_MEN_Z135                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SERIAL_MESON                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_MESON_CONSOLE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_MILBEAUT_USIO                     policy<{'armhf': '-'}>
+CONFIG_SERIAL_MILBEAUT_USIO_PORTS               policy<{'armhf': '-'}>
+CONFIG_SERIAL_MSM                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_MSM_CONSOLE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_MVEBU_CONSOLE                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_MVEBU_UART                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_OMAP                              policy<{'armhf': '-'}>
+CONFIG_SERIAL_OMAP_CONSOLE                      policy<{'armhf': '-'}>
+CONFIG_SERIAL_OWL                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_OWL_CONSOLE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_QCOM_GENI                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_RDA                               policy<{'armhf': '-'}>
+CONFIG_SERIAL_RDA_CONSOLE                       policy<{'armhf': '-'}>
+CONFIG_SERIAL_RP2                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SERIAL_RP2_NR_UARTS                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_SAMSUNG                           policy<{'armhf': '-'}>
+CONFIG_SERIAL_SAMSUNG_UARTS                     policy<{'armhf': '-'}>
+CONFIG_SERIAL_SAMSUNG_UARTS_4                   policy<{'armhf': '-'}>
+CONFIG_SERIAL_SH_SCI_DMA                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_SH_SCI_NR_UARTS                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SERIAL_SIFIVE                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SERIAL_SPRD                              policy<{'arm64': '-'}>
+CONFIG_SERIAL_TEGRA                             policy<{'armhf': '-'}>
+CONFIG_SERIAL_TEGRA_TCU                         policy<{'armhf': '-'}>
+CONFIG_SERIAL_XILINX_PS_UART                    policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SERIO_AMBAKMI                            policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_SERIO_NVEC_PS2                           policy<{'armhf': '-'}>
+CONFIG_SERIO_PCIPS2                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SERIO_SUN4I_PS2                          policy<{'arm64': '-'}>
+CONFIG_SFC                                      policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SFC_FALCON                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SFC_FALCON_MTD                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SFC_MCDI_LOGGING                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SFC_MCDI_MON                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SFC_MTD                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SFC_SRIOV                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SG_SPLIT                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SHUFFLE_PAGE_ALLOCATOR                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SH_ETH                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SH_TIMER_CMT                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SH_TIMER_MTU2                            policy<{'armhf': '-'}>
+CONFIG_SH_TIMER_TMU                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SIMPLE_PM_BUS                            policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_SIOX                                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SIOX_BUS_GPIO                            policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SIS190                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SIS900                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SKFP                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SKGE                                     policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SKGE_DEBUG                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SKGE_GENESIS                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SKY2                                     policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SKY2_DEBUG                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SLICOSS                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SLIC_DS26522                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SLIMBUS                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SLIM_QCOM_CTRL                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SLIM_QCOM_NGD_CTRL                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SMC91X                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SMSC911X                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SMSC9420                                 policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SMS_SDIO_DRV                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SMS_SIANO_DEBUGFS                        policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_SMS_SIANO_MDTV                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SMS_SIANO_RC                             policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_SMS_USB_DRV                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SM_GCC_8150                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_AD1889                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_ARMAACI                              policy<{'armhf': '-'}>
+CONFIG_SND_ATIIXP                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_ATIIXP_MODEM                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_ATMEL_SOC                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_AU8810                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_AU8820                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_AU8830                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_AW2                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_SND_BCM2835_SOC_I2S                      policy<{'arm64': '-'}>
+CONFIG_SND_BEBOB                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_BT87X                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_BT87X_OVERCLOCK                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_CA0106                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_CMIPCI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_COMPRESS_OFFLOAD                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_CS4281                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_CS46XX                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_CS46XX_NEW_DSP                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_CTXFI                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_DARLA20                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_DARLA24                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_DICE                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_DMAENGINE_PCM                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_ECHO3G                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_ENS1370                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_ENS1371                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREFACE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREWIRE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREWIRE_DIGI00X                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREWIRE_LIB                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREWIRE_MOTU                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREWIRE_TASCAM                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FIREWORKS                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FM801                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_FM801_TEA575X_BOOL                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_GINA20                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_GINA24                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_ALIGNED_MMIO                     policy<{'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_ANALOG                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_CA0110                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_CA0132                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_CA0132_DSP                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_CIRRUS                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_CMEDIA                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_CONEXANT                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_HDMI                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_REALTEK                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_SI3054                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_SIGMATEL                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CODEC_VIA                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_COMPONENT                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_CORE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_DSP_LOADER                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_GENERIC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_HWDEP                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_INPUT_BEEP                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_INPUT_BEEP_MODE                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_INTEL                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_PATCH_LOADER                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDA_TEGRA                            policy<{'armhf': '-'}>
+CONFIG_SND_HDSP                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_HDSPM                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_I2S_HI6210_I2S                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_ICE1724                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_IMX_SOC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_INDIGO                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INDIGODJ                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INDIGODJX                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INDIGOIO                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INDIGOIOX                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INTEL8X0                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INTEL8X0M                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INTEL_DSP_CONFIG                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_INTEL_NHLT                           policy<{'arm64': '-'}>
+CONFIG_SND_ISIGHT                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_KIRKWOOD_SOC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_KORG1212                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_LAYLA20                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_LAYLA24                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_LOLA                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_LX6464ES                             policy<{'arm64': '-'}>
+CONFIG_SND_MESON_AXG_FIFO                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_FRDDR                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_PDM                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_SOUND_CARD                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_SPDIFIN                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_SPDIFOUT                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_TDMIN                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_TDMOUT                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_TDM_FORMATTER              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_TDM_INTERFACE              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_AXG_TODDR                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MESON_G12A_TOHDMITX                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MIA                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MIXART                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_MONA                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_NM256                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_OPL3_LIB                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_OPL3_LIB_SEQ                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_OXFW                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_OXYGEN                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_OXYGEN_LIB                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_PCI                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_PCM                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_PCMCIA                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_SND_PCM_OSS_PLUGINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SND_PCXHR                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_PDAUDIOCF                            policy<{'armhf': 'm'}>
+CONFIG_SND_RIPTIDE                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_RME32                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_RME96                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_RME9652                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SAMSUNG_I2S                          policy<{'armhf': '-'}>
+CONFIG_SND_SAMSUNG_PCM                          policy<{'armhf': '-'}>
+CONFIG_SND_SAMSUNG_SPDIF                        policy<{'armhf': '-'}>
+CONFIG_SND_SEQUENCER_OSS                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SEQ_MIDI_EMUL                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ACPI                             policy<{'arm64': '-'}>
+CONFIG_SND_SOC_ADAU1701                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ADAU1761                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_ADAU1761_I2C                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ADAU1761_SPI                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ADAU17X1                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_ADAU_UTILS                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK4104                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK4118                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK4458                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK4554                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK4613                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK4642                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK5386                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AK5558                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ALC5623                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ALC5632                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_AMD_ACP                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_APQ8016_SBC                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ARIZONA                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_BD28623                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_COMPRESS                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_CPCAP                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_CROS_EC_CODEC                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_CS35L32                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS35L33                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS35L34                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS35L35                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS35L36                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4265                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4270                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4271                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4271_I2C                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4271_SPI                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42L42                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42L51                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42L51_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42L52                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42L56                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42L73                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42XX8                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS42XX8_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS43130                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4341                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS4349                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CS53L30                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_CX2072X                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_DA7219                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_DAVINCI_MCASP                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_ES7134                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ES7241                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_ES8316                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_EUKREA_TLV320                    policy<{'armhf': 'n'}>
+CONFIG_SND_SOC_FSL_ASOC_CARD                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_FSL_AUD2HTX                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_FSL_SSI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_FSL_UTILS                        policy<{'armhf': '-'}>
+CONFIG_SND_SOC_GTM601                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_I2C_AND_SPI                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMG                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_IMG_I2S_IN                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_IMG_I2S_OUT                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_IMG_PARALLEL_OUT                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_IMG_SPDIF_IN                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_IMG_SPDIF_OUT                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_IMX_AUDMIX                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMX_AUDMUX                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMX_CDNHDMI                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMX_ES8328                       policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_SND_SOC_IMX_MC13783                      policy<{'armhf': 'n'}>
+CONFIG_SND_SOC_IMX_PCM_DMA                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMX_PCM_FIQ                      policy<{'armhf': '-'}>
+CONFIG_SND_SOC_IMX_SGTL5000                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMX_SPDIF                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_IMX_SSI                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_INNO_RK3036                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_LOCHNAGAR_SC                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_LPASS_APQ8016                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_LPASS_CPU                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_LPASS_IPQ806X                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_LPASS_PLATFORM                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MAX9759                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX98088                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX98090                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MAX98095                         policy<{'armhf': '-'}>
+CONFIG_SND_SOC_MAX98373                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX98504                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX9860                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX9867                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX98927                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MC13783                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_MEDIATEK                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MIKROE_PROTO                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL              policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MSM8996                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT2701                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT6351                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT6358                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT6797                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT6797_MT6351                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT8173                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT8183                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT8183_DA7219_MAX98357A          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_NAU8540                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_NAU8810                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_NAU8824                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_NOKIA_RX51                       policy<{'armhf': '-'}>
+CONFIG_SND_SOC_ODROID                           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_OMAP3_PANDORA                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_OMAP3_TWL4030                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_OMAP_ABE_TWL6040                 policy<{'armhf': '-'}>
+CONFIG_SND_SOC_OMAP_DMIC                        policy<{'armhf': '-'}>
+CONFIG_SND_SOC_OMAP_MCBSP                       policy<{'armhf': '-'}>
+CONFIG_SND_SOC_OMAP_MCPDM                       policy<{'armhf': '-'}>
+CONFIG_SND_SOC_PCM1681                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM1789                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM1789_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM179X                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM179X_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM179X_SPI                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM186X                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM186X_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM186X_SPI                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM3060                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM3060_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM3060_SPI                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM3168A                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM3168A_I2C                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM3168A_SPI                     policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM512x                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM512x_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_PCM512x_SPI                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_QCOM                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QCOM_COMMON                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_ADM                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_AFE                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_AFE_DAI                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_ASM                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_ASM_DAI                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_COMMON                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_CORE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_QDSP6_ROUTING                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RCAR                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RK3288_HDMI_ANALOG               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RK3328                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_RK3399_GRU_SOUND                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RL6231                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ROCKCHIP_I2S                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ROCKCHIP_MAX98090                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ROCKCHIP_PDM                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ROCKCHIP_RT5645                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_ROCKCHIP_SPDIF                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RT5514                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RT5514_SPI                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RT5616                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_RT5631                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_RT5640                           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_RT5645                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_RT5663                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_RT5677                           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_RT5677_SPI                       policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SAMSUNG                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF               policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994              policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SAMSUNG_TM2_WM5110               policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SDM845                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_SGTL5000                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_SH4_FSI                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_SI476X                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_SIGMADSP                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_SIGMADSP_I2C                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_SIGMADSP_REGMAP                  policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC                 policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_SMDK_WM8994_PCM                  policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SNOW                             policy<{'armhf': '-'}>
+CONFIG_SND_SOC_SOF_ACPI                         policy<{'arm64': 'n'}>
+CONFIG_SND_SOC_SOF_NOCODEC                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_SOF_PCI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_SPRD                             policy<{'arm64': '-'}>
+CONFIG_SND_SOC_SPRD_MCDT                        policy<{'arm64': '-'}>
+CONFIG_SND_SOC_SSM2305                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_SSM2602                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_SSM2602_I2C                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_SSM2602_SPI                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_SSM4567                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_STA32X                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_STA350                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_STI_SAS                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_STORM                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_TAS2552                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TAS2562                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TAS5086                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TAS571X                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TAS5720                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TAS6424                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TDA7419                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TEGRA                            policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA20_AC97                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA20_DAS                      policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA20_I2S                      policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA20_SPDIF                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA30_AHUB                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA30_I2S                      policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_ALC5632                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_MAX98090                   policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_RT5640                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_RT5677                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_SGTL5000                   policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_TRIMSLICE                  policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_WM8753                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_WM8903                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TEGRA_WM9712                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TFA9879                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TI_EDMA_PCM                      policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TI_SDMA_PCM                      policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TLV320AIC23                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC23_I2C                  policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC23_SPI                  policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC31XX                    policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC32X4                    policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC32X4_I2C                policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC32X4_SPI                policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC3X                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TPA6130A2                        policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TS3A227E                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TSCS42XX                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TSCS454                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_TWL4030                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_TWL6040                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_UDA1334                          policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER                         policy<{'armhf': '-'}>
+CONFIG_SND_SOC_UNIPHIER_AIO                     policy<{'armhf': '-'}>
+CONFIG_SND_SOC_UNIPHIER_EVEA_CODEC              policy<{'armhf': '-'}>
+CONFIG_SND_SOC_UNIPHIER_LD11                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_UNIPHIER_PXS2                    policy<{'armhf': '-'}>
+CONFIG_SND_SOC_WCD9335                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_SOC_WM5110                           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_WM8510                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8523                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8524                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8580                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8711                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8728                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8731                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8737                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8741                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8750                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8753                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8770                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8776                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8782                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8804                           policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8804_I2C                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8804_SPI                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8903                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8904                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8960                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8962                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8974                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8978                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8985                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SOC_WM8994                           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_WM9712                           policy<{'armhf': '-'}>
+CONFIG_SND_SOC_WM_ADSP                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_WM_HUBS                          policy<{'armhf': '-'}>
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_XILINX_I2S                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_XILINX_SPDIF                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_XTFPGA_I2S                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_ZX_AUD96P22                      policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SND_SUN4I_CODEC                          policy<{'arm64': '-'}>
+CONFIG_SND_SUN4I_I2S                            policy<{'arm64': '-'}>
+CONFIG_SND_SUN4I_SPDIF                          policy<{'arm64': '-'}>
+CONFIG_SND_SUN50I_CODEC_ANALOG                  policy<{'arm64': '-'}>
+CONFIG_SND_SUN8I_ADDA_PR_REGMAP                 policy<{'arm64': '-'}>
+CONFIG_SND_SUN8I_CODEC                          policy<{'arm64': '-'}>
+CONFIG_SND_SUN8I_CODEC_ANALOG                   policy<{'arm64': '-'}>
+CONFIG_SND_TIMER                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_VIA82XX                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_VIA82XX_MODEM                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_VIRTUOSO                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_VX222                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SND_VXPOCKET                             policy<{'armhf': 'm'}>
+CONFIG_SND_VX_LIB                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SND_XEN_FRONTEND                         policy<{'arm64': '-'}>
+CONFIG_SND_YMFPCI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SNI_AVE                                  policy<{'armhf': '-'}>
+CONFIG_SNI_NETSEC                               policy<{'arm64': '-'}>
+CONFIG_SOC_AM33XX                               policy<{'armhf': 'n'}>
+CONFIG_SOC_ASPEED                               policy<{'armhf': '-'}>
+CONFIG_SOC_BRCMSTB                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SOC_DRA7XX                               policy<{'armhf': 'n'}>
+CONFIG_SOC_EXYNOS5250                           policy<{'armhf': '-'}>
+CONFIG_SOC_EXYNOS5260                           policy<{'armhf': '-'}>
+CONFIG_SOC_EXYNOS5410                           policy<{'armhf': '-'}>
+CONFIG_SOC_EXYNOS5420                           policy<{'armhf': '-'}>
+CONFIG_SOC_EXYNOS5800                           policy<{'armhf': '-'}>
+CONFIG_SOC_HAS_OMAP2_SDRC                       policy<{'armhf': '-'}>
+CONFIG_SOC_HAS_REALTIME_COUNTER                 policy<{'armhf': '-'}>
+CONFIG_SOC_IMX5                                 policy<{'armhf': '-'}>
+CONFIG_SOC_IMX50                                policy<{'armhf': 'n'}>
+CONFIG_SOC_IMX51                                policy<{'armhf': 'n'}>
+CONFIG_SOC_IMX53                                policy<{'armhf': 'n'}>
+CONFIG_SOC_IMX6                                 policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX6Q                                policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX6SL                               policy<{'armhf': 'n'}>
+CONFIG_SOC_IMX6SLL                              policy<{'armhf': 'n'}>
+CONFIG_SOC_IMX6SX                               policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX6UL                               policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX7D                                policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX7D_CA7                            policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX7ULP                              policy<{'armhf': 'n'}>
+CONFIG_SOC_IMX8M                                policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_SOC_LS1021A                              policy<{'armhf': 'n'}>
+CONFIG_SOC_OMAP3430                             policy<{'armhf': '-'}>
+CONFIG_SOC_RENESAS                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SOC_SAMSUNG                              policy<{'armhf': '-'}>
+CONFIG_SOC_TEGRA_FLOWCTRL                       policy<{'armhf': '-'}>
+CONFIG_SOC_TEGRA_FUSE                           policy<{'armhf': '-'}>
+CONFIG_SOC_TEGRA_PMC                            policy<{'armhf': '-'}>
+CONFIG_SOC_TEGRA_POWERGATE_BPMP                 policy<{'armhf': '-'}>
+CONFIG_SOC_TI                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SOC_TI81XX                               policy<{'armhf': '-'}>
+CONFIG_SOC_VF610                                policy<{'armhf': 'n'}>
+CONFIG_SPI_ALTERA                               policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_ARMADA_3700                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_ASPEED_SMC                           policy<{'armhf': '-'}>
+CONFIG_SPI_AXI_SPI_ENGINE                       policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_BCM2835                              policy<{'arm64': '-'}>
+CONFIG_SPI_BCM2835AUX                           policy<{'arm64': '-'}>
+CONFIG_SPI_BCM_QSPI                             policy<{'arm64': '-'}>
+CONFIG_SPI_BITBANG                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_BUTTERFLY                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_CADENCE                              policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_DESIGNWARE                           policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_DW_MID_DMA                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_DW_MMIO                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SPI_DW_PCI                               policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_SPI_FSL_DSPI                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_FSL_LPSPI                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_FSL_QUADSPI                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_HISI_SFC                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_HISI_SFC_V3XX                        policy<{'arm64': 'n'}>
+CONFIG_SPI_IMX                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_MESON_SPICC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_MESON_SPIFC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_MT65XX                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_NPCM_FIU                             policy<{'armhf': '-'}>
+CONFIG_SPI_NPCM_PSPI                            policy<{'armhf': '-'}>
+CONFIG_SPI_NXP_FLEXSPI                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_OC_TINY                              policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_OMAP24XX                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_ORION                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_PL022                                policy<{'arm64': 'm', 'armhf': '-'}>
+CONFIG_SPI_PXA2XX                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SPI_PXA2XX_PCI                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_QCOM_GENI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_QCOM_QSPI                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_QUP                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_ROCKCHIP                             policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_RSPI                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_S3C64XX                              policy<{'armhf': '-'}>
+CONFIG_SPI_SH_HSPI                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_SH_MSIOF                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_SIFIVE                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SPI_SLAVE_MT27XX                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPI_SPRD                                 policy<{'arm64': '-'}>
+CONFIG_SPI_SPRD_ADI                             policy<{'arm64': '-'}>
+CONFIG_SPI_SUN4I                                policy<{'arm64': '-'}>
+CONFIG_SPI_SUN6I                                policy<{'arm64': '-'}>
+CONFIG_SPI_SYNQUACER                            policy<{'arm64': '-'}>
+CONFIG_SPI_TEGRA114                             policy<{'armhf': '-'}>
+CONFIG_SPI_TEGRA20_SFLASH                       policy<{'armhf': '-'}>
+CONFIG_SPI_TEGRA20_SLINK                        policy<{'armhf': '-'}>
+CONFIG_SPI_THUNDERX                             policy<{'arm64': 'n'}>
+CONFIG_SPI_TI_QSPI                              policy<{'armhf': '-'}>
+CONFIG_SPI_TLE62X0                              policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPI_UNIPHIER                             policy<{'armhf': '-'}>
+CONFIG_SPI_XLP                                  policy<{'arm64': '-'}>
+CONFIG_SPI_ZYNQMP_GQSPI                         policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_SPMI_MSM_PMIC_ARB                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPMI_PMIC_CLKDIV                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SPRD_COMMON_CLK                          policy<{'arm64': '-'}>
+CONFIG_SPRD_DMA                                 policy<{'arm64': '-'}>
+CONFIG_SPRD_SC9860_CLK                          policy<{'arm64': '-'}>
+CONFIG_SPRD_TIMER                               policy<{'arm64': '-'}>
+CONFIG_SPRD_WATCHDOG                            policy<{'arm64': '-'}>
+CONFIG_SSB_PCMCIAHOST                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SSB_PCMCIAHOST_POSSIBLE                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SSI_PROTOCOL                             policy<{'armhf': '-'}>
+CONFIG_STAGING_APEX_DRIVER                      policy<{'arm64': '-'}>
+CONFIG_STAGING_GASKET_FRAMEWORK                 policy<{'arm64': 'n'}>
+CONFIG_STATIC_KEYS_SELFTEST                     policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_STMMAC_PCI                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_STMP_DEVICE                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_STPMIC1_WATCHDOG                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_STUB_CLK_HI3660                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_STUB_CLK_HI6220                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SUN4I_EMAC                               policy<{'arm64': '-'}>
+CONFIG_SUN4I_GPADC                              policy<{'arm64': '-'}>
+CONFIG_SUN50I_A64_CCU                           policy<{'arm64': '-'}>
+CONFIG_SUN50I_DE2_BUS                           policy<{'arm64': '-'}>
+CONFIG_SUN50I_ERRATUM_UNKNOWN1                  policy<{'arm64': '-'}>
+CONFIG_SUN50I_H6_CCU                            policy<{'arm64': '-'}>
+CONFIG_SUN50I_H6_R_CCU                          policy<{'arm64': '-'}>
+CONFIG_SUN8I_A83T_CCU                           policy<{'arm64': '-'}>
+CONFIG_SUN8I_DE2_CCU                            policy<{'arm64': '-'}>
+CONFIG_SUN8I_H3_CCU                             policy<{'arm64': '-'}>
+CONFIG_SUN8I_R_CCU                              policy<{'arm64': '-'}>
+CONFIG_SUNDANCE                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SUNDANCE_MMIO                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SUNGEM                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SUNGEM_PHY                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SUNXI_CCU                                policy<{'arm64': '-'}>
+CONFIG_SUNXI_RSB                                policy<{'arm64': '-'}>
+CONFIG_SUNXI_SRAM                               policy<{'arm64': '-'}>
+CONFIG_SUNXI_WATCHDOG                           policy<{'arm64': '-'}>
+CONFIG_SWIOTLB_XEN                              policy<{'arm64': '-'}>
+CONFIG_SXGBE_ETH                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_SYNCLINKMP                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SYNCLINK_CS                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SYNCLINK_GT                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SYSCTL_SYSCALL                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SYSC_R8A7743                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A7745                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A77470                            policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A774A1                            policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A774C0                            policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A7779                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A7790                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A7791                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A7792                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A7794                             policy<{'armhf': '-'}>
+CONFIG_SYSC_R8A7795                             policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A7796                             policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A77965                            policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A77970                            policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A77980                            policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A77990                            policy<{'arm64': '-'}>
+CONFIG_SYSC_R8A77995                            policy<{'arm64': '-'}>
+CONFIG_SYSC_RCAR                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SYSC_RMOBILE                             policy<{'armhf': '-'}>
+CONFIG_SYS_HYPERVISOR                           policy<{'arm64': '-'}>
+CONFIG_SYS_SUPPORTS_EM_STI                      policy<{'armhf': '-'}>
+CONFIG_SYS_SUPPORTS_SH_CMT                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_SYS_SUPPORTS_SH_MTU2                     policy<{'armhf': '-'}>
+CONFIG_SYS_SUPPORTS_SH_TMU                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TCG_ATMEL                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TCG_FTPM_TEE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TCG_INFINEON                             policy<{'arm64': 'n'}>
+CONFIG_TCG_XEN                                  policy<{'arm64': '-'}>
+CONFIG_TCM_QLA2XXX                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TCM_QLA2XXX_DEBUG                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TEE                                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_TEGRA124_EMC                             policy<{'armhf': '-'}>
+CONFIG_TEGRA20_APB_DMA                          policy<{'armhf': '-'}>
+CONFIG_TEGRA20_EMC                              policy<{'armhf': '-'}>
+CONFIG_TEGRA_AHB                                policy<{'armhf': '-'}>
+CONFIG_TEGRA_BPMP                               policy<{'armhf': '-'}>
+CONFIG_TEGRA_BPMP_THERMAL                       policy<{'armhf': '-'}>
+CONFIG_TEGRA_CLK_DFLL                           policy<{'armhf': '-'}>
+CONFIG_TEGRA_CLK_EMC                            policy<{'armhf': '-'}>
+CONFIG_TEGRA_GMI                                policy<{'armhf': '-'}>
+CONFIG_TEGRA_HOST1X                             policy<{'armhf': '-'}>
+CONFIG_TEGRA_HOST1X_FIREWALL                    policy<{'armhf': '-'}>
+CONFIG_TEGRA_HSP_MBOX                           policy<{'armhf': '-'}>
+CONFIG_TEGRA_IOMMU_GART                         policy<{'armhf': '-'}>
+CONFIG_TEGRA_IOMMU_SMMU                         policy<{'armhf': '-'}>
+CONFIG_TEGRA_IVC                                policy<{'armhf': '-'}>
+CONFIG_TEGRA_MC                                 policy<{'armhf': '-'}>
+CONFIG_TEGRA_SOCTHERM                           policy<{'armhf': '-'}>
+CONFIG_TEGRA_TIMER                              policy<{'armhf': '-'}>
+CONFIG_TEGRA_VDE                                policy<{'armhf': '-'}>
+CONFIG_TEGRA_WATCHDOG                           policy<{'armhf': '-'}>
+CONFIG_TEHUTI                                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TEST_FIRMWARE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEST_KMOD                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEST_LKM                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEST_OBJAGG                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TEST_PARMAN                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TEST_STATIC_KEYS                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEST_SYSCTL                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEST_UDELAY                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEST_USER_COPY                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_THERMAL_MMIO                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_THUNDERX2_PMU                            policy<{'arm64': '-'}>
+CONFIG_THUNDER_NIC_BGX                          policy<{'arm64': '-'}>
+CONFIG_THUNDER_NIC_PF                           policy<{'arm64': '-'}>
+CONFIG_THUNDER_NIC_RGX                          policy<{'arm64': '-'}>
+CONFIG_THUNDER_NIC_VF                           policy<{'arm64': '-'}>
+CONFIG_TIGON3                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TIGON3_HWMON                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TIPC_MEDIA_IB                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TI_CPPI41                                policy<{'armhf': '-'}>
+CONFIG_TI_CPSW                                  policy<{'armhf': '-'}>
+CONFIG_TI_CPSW_PHY_SEL                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TI_CPTS                                  policy<{'armhf': '-'}>
+CONFIG_TI_CPTS_MOD                              policy<{'armhf': '-'}>
+CONFIG_TI_DAVINCI_EMAC                          policy<{'armhf': '-'}>
+CONFIG_TI_DAVINCI_MDIO                          policy<{'armhf': '-'}>
+CONFIG_TI_DMA_CROSSBAR                          policy<{'armhf': '-'}>
+CONFIG_TI_EDMA                                  policy<{'armhf': '-'}>
+CONFIG_TI_EMIF                                  policy<{'armhf': '-'}>
+CONFIG_TI_EMIF_SRAM                             policy<{'armhf': '-'}>
+CONFIG_TI_MESSAGE_MANAGER                       policy<{'arm64': '-'}>
+CONFIG_TI_PIPE3                                 policy<{'armhf': '-'}>
+CONFIG_TI_SCI_CLK                               policy<{'arm64': '-'}>
+CONFIG_TI_SCI_CLK_PROBE_FROM_FW                 policy<{'arm64': '-'}>
+CONFIG_TI_SCI_INTA_IRQCHIP                      policy<{'arm64': '-'}>
+CONFIG_TI_SCI_INTA_MSI_DOMAIN                   policy<{'arm64': '-'}>
+CONFIG_TI_SCI_INTR_IRQCHIP                      policy<{'arm64': '-'}>
+CONFIG_TI_SCI_PM_DOMAINS                        policy<{'arm64': '-'}>
+CONFIG_TI_SCI_PROTOCOL                          policy<{'arm64': '-'}>
+CONFIG_TI_SOC_THERMAL                           policy<{'armhf': '-'}>
+CONFIG_TI_SYSC                                  policy<{'armhf': '-'}>
+CONFIG_TI_THERMAL                               policy<{'armhf': '-'}>
+CONFIG_TLAN                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TMD_HERMES                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505              policy<{'arm64': 'n'}>
+CONFIG_TOUCHSCREEN_FTS                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TOUCHSCREEN_IPROC                        policy<{'arm64': '-'}>
+CONFIG_TOUCHSCREEN_PCAP                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW               policy<{'arm64': '-'}>
+CONFIG_TOUCHSCREEN_SUN4I                        policy<{'arm64': '-'}>
+CONFIG_TOUCHSCREEN_TS4800                       policy<{'armhf': '-'}>
+CONFIG_TOUCHSCREEN_WM831X                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_TPS68470_PMIC_OPREGION                   policy<{'arm64': '-'}>
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_TRANSPARENT_HUGEPAGE                     policy<{'arm64': 'n'}>
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS              policy<{'arm64': '-'}>
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE             policy<{'arm64': '-'}>
+CONFIG_TRANSPARENT_HUGE_PAGECACHE               policy<{'arm64': '-'}>
+CONFIG_TREE_RCU                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TS4800_IRQ                               policy<{'armhf': '-'}>
+CONFIG_TS4800_WATCHDOG                          policy<{'armhf': '-'}>
+CONFIG_TTPCI_EEPROM                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_TULIP                                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TULIP_MMIO                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TULIP_MWI                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TULIP_NAPI                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TURRIS_MOX_RWTM                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TWL4030_CORE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TWL4030_MADC                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TWL4030_POWER                            policy<{'armhf': '-'}>
+CONFIG_TWL4030_USB                              policy<{'armhf': '-'}>
+CONFIG_TWL4030_WATCHDOG                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TWL6030_GPADC                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_TWL6030_USB                              policy<{'armhf': '-'}>
+CONFIG_TWL6040_CORE                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TYPEC_RT1711H                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_TYPHOON                                  policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_UACCESS_WITH_MEMCPY                      policy<{'armhf': 'y'}>
+CONFIG_UCLAMP_TASK_GROUP                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_UCSI_ACPI                                policy<{'arm64': 'n'}>
+CONFIG_UEFI_CPER                                policy<{'arm64': '-'}>
+CONFIG_UEFI_CPER_ARM                            policy<{'arm64': '-'}>
+CONFIG_UIO_AEC                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_UIO_CIF                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_UIO_MF624                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_UIO_NETX                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_UIO_PCI_GENERIC                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_UIO_SERCOS3                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ULI526X                                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_UNINLINE_SPIN_UNLOCK                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_UNIPHIER_EFUSE                           policy<{'armhf': '-'}>
+CONFIG_UNIPHIER_MDMAC                           policy<{'armhf': '-'}>
+CONFIG_UNIPHIER_SYSTEM_BUS                      policy<{'armhf': '-'}>
+CONFIG_UNIPHIER_THERMAL                         policy<{'armhf': '-'}>
+CONFIG_UNIPHIER_WATCHDOG                        policy<{'armhf': '-'}>
+CONFIG_USB_AIRSPY                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_AMD5536UDC                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_ASPEED_VHUB                          policy<{'armhf': '-'}>
+CONFIG_USB_BDC_UDC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_CDNS3                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_CDNS3_GADGET                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CDNS3_HOST                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CDNS3_PCI_WRAP                       policy<{'arm64': '-'}>
+CONFIG_USB_CONFIGFS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_CONFIGFS_ACM                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_ECM                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_ECM_SUBSET                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_EEM                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_FS                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_HID                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_LB_SS                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_MIDI                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_PRINTER                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_TCM                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_UAC1                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_UAC2                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_F_UVC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_MASS_STORAGE                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_NCM                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_OBEX                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_PHONET                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_RNDIS                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONFIGFS_SERIAL                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_CONN_GPIO                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_DSBR                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_DWC2                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_DWC2_DUAL_ROLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_DWC2_HOST                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_DWC2_PCI                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_DWC2_PERIPHERAL                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_DWC3_DUAL_ROLE                       policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_USB_DWC3_EXYNOS                          policy<{'armhf': '-'}>
+CONFIG_USB_DWC3_HOST                            policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_USB_DWC3_IMX8MP                          policy<{'arm64': 'm'}>
+CONFIG_USB_DWC3_KEYSTONE                        policy<{'arm64': '-'}>
+CONFIG_USB_DWC3_MESON_G12A                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_DWC3_OMAP                            policy<{'armhf': '-'}>
+CONFIG_USB_DWC3_QCOM                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_EG20T                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_EHCI_EXYNOS                          policy<{'armhf': '-'}>
+CONFIG_USB_EHCI_HCD_NPCM7XX                     policy<{'armhf': '-'}>
+CONFIG_USB_EHCI_HCD_OMAP                        policy<{'armhf': '-'}>
+CONFIG_USB_EHCI_HCD_ORION                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_EHCI_MXC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_EHCI_TEGRA                           policy<{'armhf': '-'}>
+CONFIG_USB_EMXX                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_ETH_EEM                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_FOTG210_UDC                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_FSL_USB2                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_FUNCTIONFS                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_FUNCTIONFS_ETH                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_FUNCTIONFS_GENERIC                   policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_FUNCTIONFS_RNDIS                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_FUSB300                              policy<{'armhf': 'n'}>
+CONFIG_USB_F_EEM                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_F_FS                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_F_UAC1                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_F_UAC1_LEGACY                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_GADGET                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_GADGET_XILINX                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_GOKU                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_G_MULTI                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_G_MULTI_CDC                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_G_MULTI_RNDIS                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_HACKRF                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_IMX21_HCD                            policy<{'armhf': 'n'}>
+CONFIG_USB_ISP1760_DUAL_ROLE                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_ISP1760_HOST_ROLE                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_ISP1761_UDC                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_KEENE                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_LAN78XX                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_MA901                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_MR800                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_MSI2500                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_MTU3                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_MTU3_DEBUG                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_MTU3_DUAL_ROLE                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_MTU3_GADGET                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_MTU3_HOST                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_MUSB_AM335X_CHILD                    policy<{'armhf': '-'}>
+CONFIG_USB_MUSB_AM35X                           policy<{'armhf': '-'}>
+CONFIG_USB_MUSB_DSPS                            policy<{'armhf': '-'}>
+CONFIG_USB_MUSB_DUAL_ROLE                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_MUSB_HOST                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_MUSB_OMAP2PLUS                       policy<{'armhf': '-'}>
+CONFIG_USB_MUSB_SUNXI                           policy<{'arm64': '-'}>
+CONFIG_USB_MUSB_TUSB6010                        policy<{'armhf': '-'}>
+CONFIG_USB_MXS_PHY                              policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_USB_NET2272_DMA                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_NET2280                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_NET_DRIVERS                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_NET_SMSC95XX                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_OHCI_EXYNOS                          policy<{'armhf': '-'}>
+CONFIG_USB_OHCI_HCD_OMAP3                       policy<{'armhf': '-'}>
+CONFIG_USB_OHCI_HCD_PLATFORM                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_RAREMONO                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_RENESAS_USB3                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_RENESAS_USBHS                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_RENESAS_USBHS_HCD                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_RENESAS_USBHS_UDC                    policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_ROLE_SWITCH                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_SI470X                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_SI4713                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_USB_SL811_CS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_SNP_CORE                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_SNP_UDC_PLAT                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_TEGRA_PHY                            policy<{'armhf': '-'}>
+CONFIG_USB_UHCI_ASPEED                          policy<{'armhf': '-'}>
+CONFIG_USB_UHCI_PLATFORM                        policy<{'armhf': '-'}>
+CONFIG_USB_UHCI_SUPPORT_NON_PCI_HC              policy<{'armhf': '-'}>
+CONFIG_USB_USBNET                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_WHCI_HCD                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_XHCI_HISTB                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_XHCI_MTK                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_XHCI_MVEBU                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_XHCI_RCAR                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_USB_XHCI_TEGRA                           policy<{'armhf': '-'}>
+CONFIG_USB_ZD1201                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_UWB_WHCI                                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_U_SERIAL_CONSOLE                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VESTA_OVERLAY_MGR                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VEXPRESS_CONFIG                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VEXPRESS_SYSCFG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VFIO_AMBA                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VFIO_MDEV_DEVICE                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VFIO_NOIOMMU                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VFIO_PLATFORM                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VFIO_PLATFORM_AMDXGBE_RESET              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VFIO_PLATFORM_BCMFLEXRM_RESET            policy<{'arm64': '-'}>
+CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VF_USE_ARM_GLOBAL_TIMER                  policy<{'armhf': '-'}>
+CONFIG_VF_USE_PIT_TIMER                         policy<{'armhf': '-'}>
+CONFIG_VGASTATE                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VGA_ARB                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VGA_ARB_MAX_GPUS                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIA_RHINE                                policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIA_RHINE_MMIO                           policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_VIA_VELOCITY                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEOBUF2_DVB                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEOBUF_DMA_CONTIG                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEOBUF_DMA_SG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_AD5820                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_AD9389B                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADP1653                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7170                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7175                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7180                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7183                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7343                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7393                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV748X                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7604                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7604_CEC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_ADV7842                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ADV7842_CEC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_AK7375                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_AK881X                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ALLEGRO_DVT                        policy<{'arm64': '-'}>
+CONFIG_VIDEO_APTINA_PLL                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_ASPEED                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_AU0828                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_AU0828_RC                          policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_VIDEO_AU0828_V4L2                        policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_VIDEO_BCM2835                            policy<{'arm64': '-'}>
+CONFIG_VIDEO_BT819                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_BT848                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_BT856                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_BT866                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_CAFE_CCIC                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_CODA                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_CROS_EC_CEC                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX18                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX18_ALSA                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX231XX                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_CX231XX_ALSA                       policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_CX231XX_DVB                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_CX231XX_RC                         policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_VIDEO_CX2341X                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_CX23885                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX25821                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX25821_ALSA                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88_ALSA                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88_BLACKBIRD                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88_DVB                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88_ENABLE_VP3054                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88_MPEG                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_CX88_VP3054                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_DT3155                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_DW9714                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_DW9807_VCM                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_EM28XX_DVB                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_ET8EK8                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_FB_IVTV                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_GO7007                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_GO7007_LOADER                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_GO7007_USB                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_GS1662                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_HDPVR                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_HEXIUM_GEMINI                      policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_HEXIUM_ORION                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_I2C                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX214                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX258                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX274                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX319                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX355                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX7_CSI                           policy<{'armhf': '-'}>
+CONFIG_VIDEO_IMX_CAPTURE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_IMX_CSI                            policy<{'armhf': '-'}>
+CONFIG_VIDEO_IMX_MEDIA                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_IMX_PXP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_IMX_VDOA                           policy<{'armhf': 'm'}>
+CONFIG_VIDEO_IVTV                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_IVTV_ALSA                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_KS0127                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_LM3560                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_LM3646                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_M52790                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_M5MOLS                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MEDIATEK_VPU                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_MESON_AO_CEC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_MESON_G12A_AO_CEC                  policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_MESON_VDEC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_ML86V7667                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9M001                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9M032                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9M111                            policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_VIDEO_MT9P031                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9T001                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9T112                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9V032                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MT9V111                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_MX8_CAPTURE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MXB                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_MXC_CAPTURE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MXC_CSI_CAMERA                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MXC_PXP_V4L2                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_NOON010PC30                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OMAP2_VOUT                         policy<{'armhf': '-'}>
+CONFIG_VIDEO_OMAP2_VOUT_VRFB                    policy<{'armhf': '-'}>
+CONFIG_VIDEO_OMAP3                              policy<{'armhf': '-'}>
+CONFIG_VIDEO_OMAP3_DEBUG                        policy<{'armhf': '-'}>
+CONFIG_VIDEO_OMAP4                              policy<{'armhf': '-'}>
+CONFIG_VIDEO_OV13858                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV2659                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV2680                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV2685                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV5640                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV5645                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV5647                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV5670                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV5675                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV5695                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV6650                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV7251                             policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_VIDEO_OV7640                             policy<{'arm64': 'n', 'armhf': 'm'}>
+CONFIG_VIDEO_OV7670                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV772X                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV7740                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV8856                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV9640                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_OV9650                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_PCI_SKELETON                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_PVRUSB2                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_PVRUSB2_DEBUGIFC                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_VIDEO_PVRUSB2_DVB                        policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_VIDEO_PVRUSB2_SYSFS                      policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_VIDEO_QCOM_CAMSS                         policy<{'arm64': '-'}>
+CONFIG_VIDEO_QCOM_VENUS                         policy<{'arm64': '-'}>
+CONFIG_VIDEO_RCAR_CSI2                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RCAR_DRIF                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RCAR_VIN                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RENESAS_CEU                        policy<{'armhf': '-'}>
+CONFIG_VIDEO_RENESAS_FCP                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RENESAS_FDP1                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RENESAS_JPU                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RENESAS_VSP1                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_RJ54N1                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_ROCKCHIP_RGA                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_S5C73M3                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_S5K4ECGX                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_S5K5BAF                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_S5K6A3                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_S5K6AA                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAA6588                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAA6752HS                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAA7110                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAA7127                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAA7134                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7134_ALSA                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7134_DVB                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7134_GO7007                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7134_RC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7146                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7146_VV                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA7164                            policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SAA717X                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAA7185                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS                 policy<{'armhf': '-'}>
+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC                 policy<{'armhf': '-'}>
+CONFIG_VIDEO_SAMSUNG_S5P_CEC                    policy<{'armhf': '-'}>
+CONFIG_VIDEO_SAMSUNG_S5P_G2D                    policy<{'armhf': '-'}>
+CONFIG_VIDEO_SAMSUNG_S5P_JPEG                   policy<{'armhf': '-'}>
+CONFIG_VIDEO_SAMSUNG_S5P_MFC                    policy<{'armhf': '-'}>
+CONFIG_VIDEO_SMIAPP                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SMIAPP_PLL                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SOLO6X10                           policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_SR030PC30                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_STK1160                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_STK1160_COMMON                     policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_ST_MIPID02                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_SUN4I_CSI                          policy<{'arm64': '-'}>
+CONFIG_VIDEO_SUN6I_CSI                          policy<{'arm64': '-'}>
+CONFIG_VIDEO_SUNXI                              policy<{'arm64': '-'}>
+CONFIG_VIDEO_TC358743                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_TC358743_CEC                       policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_TEGRA_HDMI_CEC                     policy<{'armhf': '-'}>
+CONFIG_VIDEO_THS7303                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_THS8200                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_TI_CAL                             policy<{'armhf': '-'}>
+CONFIG_VIDEO_TI_CSC                             policy<{'armhf': '-'}>
+CONFIG_VIDEO_TI_SC                              policy<{'armhf': '-'}>
+CONFIG_VIDEO_TI_VPDMA                           policy<{'armhf': '-'}>
+CONFIG_VIDEO_TI_VPE                             policy<{'armhf': '-'}>
+CONFIG_VIDEO_TI_VPE_DEBUG                       policy<{'armhf': '-'}>
+CONFIG_VIDEO_TM6000                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_TM6000_ALSA                        policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_TM6000_DVB                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_TVP514X                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_TVP7002                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_TW5864                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_TW68                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_TW686X                             policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_TW9910                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_UPD64031A                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_UPD64083                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_USBVISION                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_VIDEO_VPX3220                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_VS6624                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_XILINX                             policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIDEO_XILINX_TPG                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIDEO_XILINX_VTC                         policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIRTIO_BALLOON                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIRTIO_BLK_SCSI                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIRTIO_CONSOLE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIRTIO_FS                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIRTIO_IOMMU                             policy<{'arm64': 'n'}>
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIRTIO_PCI                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VIRTIO_PCI_LEGACY                        policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VIRTIO_PMEM                              policy<{'arm64': 'n'}>
+CONFIG_VME_BUS                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VME_FAKE                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VME_TSI148                               policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VME_USER                                 policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VMIVME_7805                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VMSPLIT_3G_OPT                           policy<{'armhf': 'n'}>
+CONFIG_VMXNET3                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VORTEX                                   policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_VT6655                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_VXGE                                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_VXGE_DEBUG_TRACE_ALL                     policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_W1_MASTER_MATROX                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_W1_MASTER_MXC                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_W1_MASTER_SGI                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_W1_SLAVE_DS250X                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_WANXL                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_WDAT_WDT                                 policy<{'arm64': 'n'}>
+CONFIG_WDTPCI                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_WIL6210                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_WIL6210_DEBUGFS                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_WIL6210_ISR_COR                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_WIL6210_TRACING                          policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_WILINK_PLATFORM_DATA                     policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_WINBOND_840                              policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_WIZNET_BUS_ANY                           policy<{'arm64': '-', 'armhf': 'y'}>
+CONFIG_WIZNET_BUS_DIRECT                        policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_WIZNET_BUS_INDIRECT                      policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_WIZNET_W5100                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WIZNET_W5100_SPI                         policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WIZNET_W5300                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WKUP_M3_IPC                              policy<{'armhf': '-'}>
+CONFIG_WKUP_M3_RPROC                            policy<{'armhf': '-'}>
+CONFIG_WL1251                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WL1251_SDIO                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WL1251_SPI                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WL12XX                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WL18XX                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WLAN_VENDOR_ADMTEK                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_ATMEL                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_CISCO                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_INTEL                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_INTERSIL                     policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_MARVELL                      policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_MEDIATEK                     policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_QUANTENNA                    policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_RALINK                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_RSI                          policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_TI                           policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLAN_VENDOR_ZYDAS                        policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_WLCORE                                   policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WLCORE_SDIO                              policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WLCORE_SPI                               policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WM831X_BACKUP                            policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WM831X_POWER                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WM831X_WATCHDOG                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WM8350_POWER                             policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_WM8350_WATCHDOG                          policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_XARRAY_MULTI                             policy<{'arm64': '-'}>
+CONFIG_XEN                                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_XENFS                                    policy<{'arm64': '-'}>
+CONFIG_XEN_AUTO_XLATE                           policy<{'arm64': '-'}>
+CONFIG_XEN_BACKEND                              policy<{'arm64': '-'}>
+CONFIG_XEN_BALLOON                              policy<{'arm64': '-'}>
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG               policy<{'arm64': '-'}>
+CONFIG_XEN_BLKDEV_BACKEND                       policy<{'arm64': '-'}>
+CONFIG_XEN_COMPAT_XENFS                         policy<{'arm64': '-'}>
+CONFIG_XEN_DEV_EVTCHN                           policy<{'arm64': '-'}>
+CONFIG_XEN_DOM0                                 policy<{'arm64': '-'}>
+CONFIG_XEN_EFI                                  policy<{'arm64': '-'}>
+CONFIG_XEN_FBDEV_FRONTEND                       policy<{'arm64': '-'}>
+CONFIG_XEN_FRONT_PGDIR_SHBUF                    policy<{'arm64': '-'}>
+CONFIG_XEN_GNTDEV                               policy<{'arm64': '-'}>
+CONFIG_XEN_GNTDEV_DMABUF                        policy<{'arm64': '-'}>
+CONFIG_XEN_GRANT_DEV_ALLOC                      policy<{'arm64': '-'}>
+CONFIG_XEN_GRANT_DMA_ALLOC                      policy<{'arm64': '-'}>
+CONFIG_XEN_NETDEV_BACKEND                       policy<{'arm64': '-'}>
+CONFIG_XEN_PRIVCMD                              policy<{'arm64': '-'}>
+CONFIG_XEN_PVCALLS_BACKEND                      policy<{'arm64': '-'}>
+CONFIG_XEN_PVCALLS_FRONTEND                     policy<{'arm64': '-'}>
+CONFIG_XEN_SCRUB_PAGES_DEFAULT                  policy<{'arm64': '-'}>
+CONFIG_XEN_SCSI_BACKEND                         policy<{'arm64': '-'}>
+CONFIG_XEN_SCSI_FRONTEND                        policy<{'arm64': '-'}>
+CONFIG_XEN_SYS_HYPERVISOR                       policy<{'arm64': '-'}>
+CONFIG_XEN_WDT                                  policy<{'arm64': '-'}>
+CONFIG_XEN_XENBUS_FRONTEND                      policy<{'arm64': '-'}>
+CONFIG_XGENE_DMA                                policy<{'arm64': '-'}>
+CONFIG_XGENE_PMU                                policy<{'arm64': '-'}>
+CONFIG_XGENE_SLIMPRO_MBOX                       policy<{'arm64': '-'}>
+CONFIG_XILINX_AXI_EMAC                          policy<{'armhf': '-'}>
+CONFIG_XILINX_DMA                               policy<{'arm64': 'n'}>
+CONFIG_XILINX_PR_DECOUPLER                      policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_XILINX_VCU                               policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_XILINX_XADC                              policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_XILINX_ZYNQMP_DMA                        policy<{'arm64': 'n'}>
+CONFIG_XILLYBUS_PCIE                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_YELLOWFIN                                policy<{'arm64': '-', 'armhf': '-'}>
+CONFIG_YENTA                                    policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_YENTA_ENE_TUNE                           policy<{'arm64': '-'}>
+CONFIG_YENTA_O2                                 policy<{'arm64': '-'}>
+CONFIG_YENTA_RICOH                              policy<{'arm64': '-'}>
+CONFIG_YENTA_TI                                 policy<{'arm64': '-'}>
+CONFIG_YENTA_TOSHIBA                            policy<{'arm64': '-'}>
+CONFIG_ZD1211RW                                 policy<{'arm64': '-', 'armhf': 'm'}>
+CONFIG_ZD1211RW_DEBUG                           policy<{'arm64': '-', 'armhf': 'n'}>
+CONFIG_ZX_TDM                                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ZYNQMP_FIRMWARE                          policy<{'arm64': '-'}>
+CONFIG_ZYNQMP_FIRMWARE_DEBUG                    policy<{'arm64': '-'}>
+CONFIG_ZYNQMP_IPI_MBOX                          policy<{'arm64': '-'}>
+CONFIG_ZYNQMP_PM_DOMAINS                        policy<{'arm64': '-'}>
+CONFIG_ZYNQMP_POWER                             policy<{'arm64': '-'}>
--- linux-ein-5.4.0.orig/debian.ein/control.d/flavour-control.stub
+++ linux-ein-5.4.0/debian.ein/control.d/flavour-control.stub
@@ -0,0 +1,108 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Provides: linux-image, fuse-module, aufs-dkms, =PROVIDES=${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-PKGVER-ABINUM-FLAVOUR
+Recommends: BOOTLOADER, initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image=SIGN-PEER-PKG=-PKGVER-ABINUM-FLAVOUR
+Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the=SIGN-ME-TXT= Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, crda
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version PKGVER on DESC
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details.
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR-dbgsym
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides the=SIGN-ME-TXT= kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
--- linux-ein-5.4.0.orig/debian.ein/control.d/vars.ein
+++ linux-ein-5.4.0/debian.ein/control.d/vars.ein
@@ -0,0 +1,6 @@
+arch="armhf arm64"
+supported="Generic"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [amd64 x32] | grub [amd64 x32] | lilo (>= 19.1) [amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules"
--- linux-ein-5.4.0.orig/debian.ein/control.stub.in
+++ linux-ein-5.4.0/debian.ein/control.stub.in
@@ -0,0 +1,80 @@
+Source: SRCPKGNAME
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ libcap-dev <!stage1>,
+ makedumpfile [amd64] <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf ppc64el] <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ device-tree-compiler [powerpc] <!stage1>,
+ u-boot-tools [powerpc] <!stage1>,
+ libc6-dev-ppc64 [powerpc] <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+ dwarves <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python3-sphinx <!stage1>,
+ python3-sphinx-rtd-theme <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~canonical-hwe-imx/ubuntu/+source/linux-imx/+git/=SERIES=
+Vcs-Browser: https://git.launchpad.net/~canonical-hwe-imx/ubuntu/+source/linux-imx/+git/=SERIES=/log/
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: SRCPKGNAME-headers-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-tools-PKGVER-ABINUM-<flavour>.
+
--- linux-ein-5.4.0.orig/debian.ein/copyright
+++ linux-ein-5.4.0/debian.ein/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-ein-5.4.0.orig/debian.ein/d-i/firmware/README.txt
+++ linux-ein-5.4.0/debian.ein/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.ein/d-i/firmware/arm64/README.txt
+++ linux-ein-5.4.0/debian.ein/d-i/firmware/arm64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.ein/d-i/firmware/armhf/README.txt
+++ linux-ein-5.4.0/debian.ein/d-i/firmware/armhf/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.ein/d-i/firmware/nic-modules
+++ linux-ein-5.4.0/debian.ein/d-i/firmware/nic-modules
@@ -0,0 +1,14 @@
+e100/d101m_ucode.bin ?
+e100/d101s_ucode.bin ?
+e100/d102e_ucode.bin ?
+bnx2/bnx2-mips-09-6.2.1b.fw ?
+bnx2/bnx2-rv2p-06-6.0.15.fw ?
+bnx2/bnx2-mips-06-6.2.3.fw ?
+bnx2/bnx2-rv2p-09-6.0.17.fw ?
+bnx2/bnx2-rv2p-09ax-6.0.17.fw ?
+bnx2x/bnx2x-e1h-7.12.30.0.fw ?
+bnx2x/bnx2x-e1-7.12.30.0.fw ?
+bnx2x/bnx2x-e2-7.12.30.0.fw ?
+tigon/tg3_tso5.bin ?
+tigon/tg3_tso.bin ?
+tigon/tg3.bin ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/firmware/scsi-modules
+++ linux-ein-5.4.0/debian.ein/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin ?
+qlogic/12160.bin ?
+qlogic/1280.bin ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/kernel-versions
+++ linux-ein-5.4.0/debian.ein/d-i/kernel-versions
@@ -0,0 +1 @@
+# arch	version		flavour		installedname			suffix	bdep
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/block-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/block-modules
@@ -0,0 +1,34 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+hpsa ?
+kbic ?
+ktti ?
+nbd ?
+nvme ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sdhci-tegra ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
+mtip32xx ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/crypto-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/crypto-modules
@@ -0,0 +1,70 @@
+aesni-intel ?
+aes-x86_64 ?
+af_alg ?
+algif_hash ?
+algif_skcipher ?
+ansi_cprng ?
+anubis ?
+arc4 ?
+async_memcpy ?
+async_pq ?
+async_raid6_recov ?
+async_tx ?
+async_xor ?
+authenc ?
+authencesn ?
+blowfish_common ?
+blowfish_generic ?
+blowfish-x86_64 ?
+camellia ?
+cast5 ?
+cast6 ?
+ccm ?
+cryptd ?
+cryptoloop ?
+crypto_null ?
+crypto_user ?
+ctr ?
+cts ?
+deflate ?
+des_generic ?
+fcrypt ?
+gcm ?
+gf128mul ?
+ghash-clmulni-intel ?
+ghash-generic ?
+khazad ?
+lrw ?
+lzo ?
+md4 ?
+michael_mic ?
+padlock-aes ?
+padlock-sha ?
+pcbc ?
+pcrypt ?
+raid6test ?
+rmd128 ?
+rmd160 ?
+rmd256 ?
+rmd320 ?
+salsa20_generic ?
+salsa20-x86_64 ?
+seed ?
+seqiv ?
+serpent_generic ?
+serpent-sse2-x86_64 ?
+sha1-ssse3 ?
+sha512_generic ?
+tcrypt ?
+tea ?
+tgr192 ?
+twofish_common ?
+twofish_generic ?
+twofish-x86_64 ?
+twofish-x86_64-3way ?
+vmac ?
+wp512 ?
+xcbc ?
+xor ?
+xts ?
+zlib ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/fat-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/fb-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/firewire-core-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+firewire-core ?
+firewire-ohci ?
+firewire-sbp2 ?
+firewire-net ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/floppy-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/fs-core-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/fs-core-modules
@@ -0,0 +1,4 @@
+ext2 ?
+jfs ?
+reiserfs ?
+xfs ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/fs-secondary-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/input-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/input-modules
@@ -0,0 +1,23 @@
+hid-a4tech ?
+hid-apple ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-cypress ?
+hid-dell ?
+hid-ezkey ?
+hid-generic ?
+hid-gyration ?
+hid-logitech ?
+hid-logitech-dj ?
+hid-microsoft ?
+hid-monterey ?
+hid-petalynx ?
+hid-pl ?
+hid-samsung ?
+hid-sony ?
+hid-sunplus ?
+hid-tmff ?
+hid-zpff ?
+usbhid ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/ipmi-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/ipmi-modules
@@ -0,0 +1,5 @@
+ipmi_devintf ?
+ipmi_msghandler ?
+ipmi_poweroff ?
+ipmi_si ?
+ipmi_watchdog ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/irda-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/irda-modules
@@ -0,0 +1,30 @@
+act200l-sir ?
+actisys-sir ?
+ali-ircc ?
+donauboe ?
+esi-sir ?
+girbil-sir ?
+ircomm ?
+ircomm-tty ?
+irda ?
+irda-usb ?
+irlan ?
+irnet ?
+irport ?
+irtty-sir ?
+kingsun-sir ?
+ks959-sir ?
+ksdazzle-sir ?
+litelink-sir ?
+ma600-sir ?
+mcp2120-sir ?
+mcs7780 ?
+nsc-ircc ?
+old_belkin-sir ?
+sir-dev ?
+smsc-ircc2 ?
+stir4200 ?
+tekram-sir ?
+via-ircc ?
+vlsi_ir ?
+w83977af_ir ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/kernel-image
+++ linux-ein-5.4.0/debian.ein/d-i/modules/kernel-image
@@ -0,0 +1,29 @@
+gpio-pca953x ?
+gpio-regulator ?
+i2c-mux ?
+i2c-mux-pinctrl ?
+i2c-tegra ?
+max8907 ?
+max8907-regulator ?
+nvec ?
+nvec_kbd ?
+nvec_paz00 ?
+nvec_power ?
+nvec_ps2 ?
+palmas-regulator ?
+rtc-em3027 ?
+rtc-max8907 ?
+rtc-palmas ?
+rtc-tps6586x ?
+rtc-tps65910 ?
+tps51632-regulator ?
+tps62360-regulator ?
+tps65090-charger ?
+tps65090-regulator ?
+tps6586x-regulator ?
+tps65910-regulator ?
+host1x ?
+tegra-drm ?
+pwm_bl ?
+pwm-tegra ?
+panel-simple ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/md-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/md-modules
@@ -0,0 +1,16 @@
+dm-crypt ?
+dm-mirror ?
+dm-raid ?
+dm-snapshot ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid45 ?
+dm-loop ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/message-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/message-modules
@@ -0,0 +1,9 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mpt3sas ?
+mptscsih ?
+mptspi ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/mouse-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/multipath-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/multipath-modules
@@ -0,0 +1,3 @@
+dm-multipath ?
+dm-round-robin ?
+dm-service-time ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/nfs-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/nfs-modules
@@ -0,0 +1,6 @@
+nfs ?
+nfs_acl ?
+nfsv3 ?
+lockd ?
+sunrpc ?
+cifs ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/nic-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/nic-modules
@@ -0,0 +1,180 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+alx ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+ath5k ?
+ath9k ?
+ath9k_htc ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+be2net ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+brcmfmac ?
+brcmsmac ?
+xgmac ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+enic ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+i40e ?
+i40evf ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+iwl3945 ?
+iwl4965 ?
+iwl-legacy ?
+iwldvm ?
+iwlwifi ?
+ixgb ?
+ixgbe ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mlx4_core ?
+mlx4_en ?
+mlx5_core ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+nicpf ?
+nicvf ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+qlcnic ?
+r815x ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2400pci ?
+rt2500 ?
+rt2500pci ?
+rt2800pci ?
+rt61pci ?
+s2io ?
+sfc ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
+xgene-enet ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/nic-pcmcia-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/nic-shared-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/nic-shared-modules
@@ -0,0 +1,26 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+rt2800lib ?
+
+# Atheros library (since drivers are split across nic-modules/nic-usb-modules)
+ath ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/nic-usb-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/nic-usb-modules
@@ -0,0 +1,32 @@
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+rt2800usb ?
+rt2x00usb ?
+cdc_ether ?
+asix ?
+cdc_eem ?
+cdc_ether ?
+cdc-phonet ?
+cdc_subset ?
+dm9601 ?
+gl620a ?
+hso ?
+int51x1 ?
+mcs7830 ?
+net1080 ?
+plusb ?
+rndis_host ?
+smsc95xx ?
+zaurus ?
+carl9170 ?
+smsc75xx ?
+smsc95xx ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/parport-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/pata-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/pata-modules
@@ -0,0 +1,47 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_macio.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/pcmcia-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/pcmcia-storage-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/plip-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/ppp-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/sata-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/sata-modules
@@ -0,0 +1,18 @@
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
+ahci_platform ?
+ahci ?
+acard-ahci ?
+libahci ?
+ahci_xgene ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/scsi-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/scsi-modules
@@ -0,0 +1,129 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+fnic ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+ibmvfc ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
+ums-cypress ?
+be2iscsi ?
+3w-sas ?
+isci ?
+mlx4_ib ?
+mlx5_ib ?
+
+# device handlers
+scsi_dh_alua ?
+scsi_dh_emc ?
+scsi_dh_rdac ?
+scsi_dh_hp_sw ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/serial-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/serial-modules
@@ -0,0 +1,4 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
+hyperv-keyboard ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/speakup-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/speakup-modules
@@ -0,0 +1,16 @@
+speakup ?
+speakup_acntpc ?
+speakup_acntsa ?
+speakup_apollo ?
+speakup_audptr ?
+speakup_bns ?
+speakup_decext ?
+speakup_dectlk ?
+speakup_dtlk ?
+speakup_dummy ?
+speakup_keypc ?
+speakup_ltlk ?
+speakup_soft ?
+speakup_spkout ?
+speakup_txprt ?
+speakup_decpc ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/storage-core-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/storage-core-modules
@@ -0,0 +1,10 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/usb-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/usb-modules
@@ -0,0 +1,11 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
+xhci-hcd ?
+ehci-tegra ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/virtio-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/virtio-modules
@@ -0,0 +1,11 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
+virtio_scsi ?
+hv_vmbus ?
+hv_utils ?
+hv_netvsc ?
+hv_mouse ?
+hv_storvsc ?
+hv_balloon ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/modules/vlan-modules
+++ linux-ein-5.4.0/debian.ein/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
--- linux-ein-5.4.0.orig/debian.ein/d-i/package-list
+++ linux-ein-5.4.0/debian.ein/d-i/package-list
@@ -0,0 +1,193 @@
+Package: kernel-image
+Provides: ext3-modules, ext4-modules, squashfs-modules
+Provides_amd64: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_i386: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_ppc64el: ext3-modules, ext4-modules, fat-modules, squashfs-modules
+Provides_s390x: ext3-modules, ext4-modules, ppp-modules, squashfs-modules
+Description: kernel image and system map
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: ext2-modules, jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: btrfs-modules, ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Provides: crypto-dm-modules
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Provides: nbd-modules
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
+Package: ipmi-modules
+Depends: kernel-image
+Priority: standard
+Description: ipmi modules
+
+Package: multipath-modules
+Depends: kernel-image
+Priority: extra
+Description: DM-Multipath support
+  This package contains modules for device-mapper multipath support.
+
--- linux-ein-5.4.0.orig/debian.ein/etc/getabis
+++ linux-ein-5.4.0/debian.ein/etc/getabis
@@ -0,0 +1,25 @@
+getabis_ppa="${HOME}/.getabis.focal-imx"
+
+if ! [ -e "${getabis_ppa}" ] ; then
+	cat <<EOF >&2
+Error: No private PPA URL(s) found, unable to fetch ABI information.
+
+This kernel is built and delivered using private PPA(s). You need to add the
+PPA repo URL(s) (including the username and password) to the file
+${getabis_ppa}.
+
+One URL per line, like:
+
+https://<user>:<pass>@private-ppa.launchpad.net/<ppa-team>/<ppa-name>/ubuntu
+
+EOF
+	exit 1
+fi
+
+readarray -t repo_list < <(sed "s,\s*$,/pool/main/l/linux-ein," \
+		"${getabis_ppa}")
+
+package_prefixes linux-buildinfo
+
+getall armhf ein
+getall arm64 ein
--- linux-ein-5.4.0.orig/debian.ein/etc/kernelconfig
+++ linux-ein-5.4.0/debian.ein/etc/kernelconfig
@@ -0,0 +1,7 @@
+if [ "$variant" = "ports" ]; then
+	archs=""
+	family='ports'
+else
+	archs="armhf arm64"
+	family='ubuntu'
+fi
--- linux-ein-5.4.0.orig/debian.ein/etc/update.conf
+++ linux-ein-5.4.0/debian.ein/etc/update.conf
@@ -0,0 +1,7 @@
+# WARNING: we do not create update.conf when we are not a
+# derivative. Various cranky components make use of this.
+# If we start unconditionally creating update.conf we need
+# to fix at least cranky close and cranky rebase.
+RELEASE_REPO=git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
+SOURCE_RELEASE_BRANCH=master-next
+DEBIAN_MASTER=debian.master
--- linux-ein-5.4.0.orig/debian.ein/reconstruct
+++ linux-ein-5.4.0/debian.ein/reconstruct
@@ -0,0 +1,131 @@
+# Recreate any symlinks created since the orig.
+chmod +x 'debian/cloud-tools/hv_get_dhcp_info'
+chmod +x 'debian/cloud-tools/hv_get_dns_info'
+chmod +x 'debian/cloud-tools/hv_set_ifconfig'
+chmod +x 'debian/rules'
+chmod +x 'debian/scripts/abi-check'
+chmod +x 'debian/scripts/config-check'
+chmod +x 'debian/scripts/control-create'
+chmod +x 'debian/scripts/dkms-build'
+chmod +x 'debian/scripts/dkms-build--nvidia-N'
+chmod +x 'debian/scripts/dkms-build--virtualbox-guest'
+chmod +x 'debian/scripts/dkms-build-configure--zfs'
+chmod +x 'debian/scripts/file-downloader'
+chmod +x 'debian/scripts/link-headers'
+chmod +x 'debian/scripts/misc/annotations'
+chmod +x 'debian/scripts/misc/arch-has-odm-enabled.sh'
+chmod +x 'debian/scripts/misc/final-checks'
+chmod +x 'debian/scripts/misc/find-missing-sauce.sh'
+chmod +x 'debian/scripts/misc/find-obsolete-firmware'
+chmod +x 'debian/scripts/misc/fips-checks'
+chmod +x 'debian/scripts/misc/fw-to-ihex.sh'
+chmod +x 'debian/scripts/misc/gen-auto-reconstruct'
+chmod +x 'debian/scripts/misc/get-firmware'
+chmod +x 'debian/scripts/misc/getabis'
+chmod +x 'debian/scripts/misc/git-ubuntu-log'
+chmod +x 'debian/scripts/misc/insert-changes.pl'
+chmod +x 'debian/scripts/misc/insert-mainline-changes'
+chmod +x 'debian/scripts/misc/insert-ubuntu-changes'
+chmod +x 'debian/scripts/misc/kernel-wedge-arch.pl'
+chmod +x 'debian/scripts/misc/kernelconfig'
+chmod +x 'debian/scripts/misc/migrate-annotations'
+chmod +x 'debian/scripts/misc/retag'
+chmod +x 'debian/scripts/misc/splitconfig.pl'
+chmod +x 'debian/scripts/misc/tristate.sh'
+chmod +x 'debian/scripts/misc/update-aufs.sh'
+chmod +x 'debian/scripts/module-check'
+chmod +x 'debian/scripts/module-inclusion'
+chmod +x 'debian/scripts/retpoline-check'
+chmod +x 'debian/scripts/retpoline-extract'
+chmod +x 'debian/scripts/retpoline-extract-one'
+chmod +x 'debian/templates/extra.postinst.in'
+chmod +x 'debian/templates/extra.postrm.in'
+chmod +x 'debian/templates/headers.postinst.in'
+chmod +x 'debian/templates/image.postinst.in'
+chmod +x 'debian/templates/image.postrm.in'
+chmod +x 'debian/templates/image.preinst.in'
+chmod +x 'debian/templates/image.prerm.in'
+chmod +x 'debian/tests-build/check-aliases'
+chmod +x 'debian/tests/rebuild'
+chmod +x 'debian/tests/ubuntu-regression-suite'
+chmod +x 'samples/bpf/lwt_len_hist.sh'
+chmod +x 'samples/bpf/test_lwt_bpf.sh'
+chmod +x 'scripts/kmsg-doc'
+chmod +x 'scripts/parse-maintainers.pl'
+chmod +x 'snap/local/medina.yaml'
+chmod +x 'snap/local/reading.yaml'
+chmod +x 'tools/testing/selftests/net/fib_nexthop_nongw.sh'
+chmod +x 'tools/testing/selftests/netfilter/conntrack_vrf.sh'
+chmod +x 'update-dkms-versions'
+chmod +x 'update-version-dkms'
+# Remove any files deleted from the orig.
+rm -f 'Documentation/devicetree/bindings/phy/amlogic,meson-g12a-usb3-pcie-phy.yaml'
+rm -f 'Documentation/networking/decnet.txt'
+rm -f 'arch/alpha/include/asm/bugs.h'
+rm -f 'arch/ia64/include/asm/bugs.h'
+rm -f 'arch/m68k/include/asm/bugs.h'
+rm -f 'arch/parisc/include/asm/bugs.h'
+rm -f 'arch/parisc/kernel/module.lds'
+rm -f 'arch/parisc/lib/string.S'
+rm -f 'arch/powerpc/include/asm/bugs.h'
+rm -f 'arch/powerpc/include/uapi/asm/bpf_perf_event.h'
+rm -f 'arch/sh/include/asm/bugs.h'
+rm -f 'arch/sparc/include/asm/bugs.h'
+rm -f 'arch/um/include/asm/bugs.h'
+rm -f 'arch/um/kernel/gmon_syms.c'
+rm -f 'arch/x86/events/intel/rapl.c'
+rm -f 'arch/x86/include/asm/refcount.h'
+rm -f 'arch/xtensa/include/asm/bugs.h'
+rm -f 'drivers/clk/imx/clk-sccg-pll.c'
+rm -f 'drivers/crypto/hisilicon/sgl.h'
+rm -f 'drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h'
+rm -f 'drivers/gpu/drm/imx/ipuv3-crtc.c'
+rm -f 'drivers/gpu/drm/imx/ipuv3-plane.c'
+rm -f 'drivers/gpu/drm/imx/ipuv3-plane.h'
+rm -f 'drivers/iio/adc/stx104.c'
+rm -f 'drivers/input/serio/i8042-ppcio.h'
+rm -f 'drivers/net/can/dev.c'
+rm -f 'drivers/net/can/rx-offload.c'
+rm -f 'drivers/net/phy/mdio-i2c.h'
+rm -f 'drivers/net/phy/mdio-xgene.h'
+rm -f 'drivers/soc/imx/soc-imx8.c'
+rm -f 'drivers/staging/mt7621-dma/mtk-hsdma.c'
+rm -f 'include/Kbuild'
+rm -f 'include/asm-generic/bugs.h'
+rm -f 'include/linux/firmware/imx/types.h'
+rm -f 'include/linux/kd.h'
+rm -f 'include/net/dn.h'
+rm -f 'include/net/dn_dev.h'
+rm -f 'include/net/dn_fib.h'
+rm -f 'include/net/dn_neigh.h'
+rm -f 'include/net/dn_nsp.h'
+rm -f 'include/net/dn_route.h'
+rm -f 'include/trace/events/random.h'
+rm -f 'include/uapi/linux/dn.h'
+rm -f 'include/uapi/linux/netfilter_decnet.h'
+rm -f 'include/uapi/rdma/nes-abi.h'
+rm -f 'kernel/elfcore.c'
+rm -f 'net/decnet/Kconfig'
+rm -f 'net/decnet/Makefile'
+rm -f 'net/decnet/README'
+rm -f 'net/decnet/af_decnet.c'
+rm -f 'net/decnet/dn_dev.c'
+rm -f 'net/decnet/dn_fib.c'
+rm -f 'net/decnet/dn_neigh.c'
+rm -f 'net/decnet/dn_nsp_in.c'
+rm -f 'net/decnet/dn_nsp_out.c'
+rm -f 'net/decnet/dn_route.c'
+rm -f 'net/decnet/dn_rules.c'
+rm -f 'net/decnet/dn_table.c'
+rm -f 'net/decnet/dn_timer.c'
+rm -f 'net/decnet/netfilter/Kconfig'
+rm -f 'net/decnet/netfilter/Makefile'
+rm -f 'net/decnet/netfilter/dn_rtmsg.c'
+rm -f 'net/decnet/sysctl_net_decnet.c'
+rm -f 'net/sched/cls_rsvp.c'
+rm -f 'net/sched/cls_rsvp.h'
+rm -f 'net/sched/cls_rsvp6.c'
+rm -f 'net/sched/cls_tcindex.c'
+rm -f 'net/xfrm/xfrm_interface.c'
+rm -f 'tools/build/feature/test-libpython-version.c'
+exit 0
--- linux-ein-5.4.0.orig/debian.ein/rules.d/arm64.mk
+++ linux-ein-5.4.0/debian.ein/rules.d/arm64.mk
@@ -0,0 +1,27 @@
+human_arch	= ARMv8
+build_arch	= arm64
+header_arch	= arm64
+defconfig	= defconfig
+flavours	= ein
+build_image	= Image
+kernel_file	= arch/$(build_arch)/boot/Image
+install_file	= vmlinuz
+no_dumpfile	= true
+
+loader		= grub
+
+do_linux_tools	= true
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf	= true
+do_tools_bpftool = true
+
+do_common_headers_indep=false
+
+do_dtbs		= true
+disable_d_i = true
+do_libc_dev_package=false
+do_doc_package	= false
+do_source_package= false
+do_dkms_wireguard = true
+do_zfs = true
--- linux-ein-5.4.0.orig/debian.ein/rules.d/armhf.mk
+++ linux-ein-5.4.0/debian.ein/rules.d/armhf.mk
@@ -0,0 +1,27 @@
+human_arch	= ARM (hard float)
+build_arch	= arm
+header_arch	= arm
+defconfig	= defconfig
+flavours	= ein
+build_image	= zImage
+kernel_file	= arch/$(build_arch)/boot/zImage
+install_file	= vmlinuz
+no_dumpfile	= true
+
+loader		= grub
+
+do_linux_tools	= true
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf	= true
+do_tools_bpftool = true
+
+do_common_headers_indep=false
+
+do_dtbs		= true
+disable_d_i = true
+do_libc_dev_package=false
+do_doc_package	= false
+do_source_package= false
+do_dkms_wireguard = true
+do_zfs = true
--- linux-ein-5.4.0.orig/debian.ein/tracking-bug
+++ linux-ein-5.4.0/debian.ein/tracking-bug
@@ -0,0 +1 @@
+2048256 2024.01.08-1
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/abiname
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/abiname
@@ -0,0 +1 @@
+169
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/generic
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/generic
@@ -0,0 +1,23876 @@
+EXPORT_SYMBOL	 arch/x86/kvm/kvm 0xcc89e8a1	kvm_cpu_has_pending_timer
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x5de6b2a2	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x769f0e4f	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xd1e1f217	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xe8b5614c	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xef2f45d5	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfd09ab0f	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x5598b385	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x8e43eb4d	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0xdfe4bb12	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sm3_generic 0xdf24fb1c	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xed3476f5	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/acpi/video 0x6de7f7ff	acpi_video_get_backlight_type
+EXPORT_SYMBOL	 drivers/acpi/video 0x7a45377b	acpi_video_unregister
+EXPORT_SYMBOL	 drivers/acpi/video 0x7cc484a5	acpi_video_handles_brightness_key_presses
+EXPORT_SYMBOL	 drivers/acpi/video 0x8826c13b	acpi_video_register
+EXPORT_SYMBOL	 drivers/acpi/video 0x96758abe	acpi_video_get_levels
+EXPORT_SYMBOL	 drivers/acpi/video 0xcdb0754b	acpi_video_get_edid
+EXPORT_SYMBOL	 drivers/acpi/video 0xe92ca535	acpi_video_set_dmi_backlight_type
+EXPORT_SYMBOL	 drivers/atm/suni 0x9bab6e16	suni_init
+EXPORT_SYMBOL	 drivers/atm/uPD98402 0x2ba74044	uPD98402_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x8e5e218b	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xa5e75d9c	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0285d0d8	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0bf57df6	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x104f03fd	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x18488410	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x2b46a37c	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x6306e2e5	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x69fad2dc	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x7ecaad92	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x99fb6970	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x9bba6942	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb611778e	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xc4b18a02	pi_init
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xb0da1e05	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xf0aad19c	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x1e5b2a9c	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x22c500b9	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x445087e5	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xcf2f9282	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/nvram 0x3ef38dc9	arch_nvram_ops
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x2303a905	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x5b1b97a1	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x78c641cf	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x99884ac3	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x5dadb7e8	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xde31f7b9	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xf45383e7	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xa568dc9a	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xbb440bac	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xd3e241f3	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x04754b71	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x060ddb65	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1028d0c0	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1b9272e9	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x29b71dec	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2b53bb72	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3d029894	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x53dfa199	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x57fe3b10	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5f7c3eb2	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x668f928a	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x773e1da1	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x79d3f3cf	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x826b1a54	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x93988c18	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x94852d95	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9c7e05b1	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaf93f089	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb3af5fe4	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb4e05af1	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xbd4b3b2e	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcf1f49ea	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd454d0a0	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd49a84da	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd86df70e	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe8c6200d	fw_card_initialize
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x000cadbb	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x00e2d430	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x011f871e	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x01fdbed4	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02d2c44f	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x039ba9f3	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x058b8cff	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05919a6e	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0777b3a1	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07f4dde3	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08d204a0	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0925c42a	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09466636	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0af6eccc	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b6ad682	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d33d264	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d4c6517	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e3921e6	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ece3138	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ef5f958	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f28748c	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f61e2d5	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fe05fb5	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1002771a	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x109c7857	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1142ef8b	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x119034e1	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11afc8c4	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11d53b47	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x130b49ce	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13208d94	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x132710cd	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1344f991	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x139eab2c	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14a9618d	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14acee67	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x150ccb2d	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15462535	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1550c810	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x158e1e2f	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15b6d245	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16144620	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x162afe26	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1676913d	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x167a60d6	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x174f6523	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1782ba4f	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b5a7117	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c11df6d	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ca5b8c4	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ced74af	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d545e11	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dc1c16d	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dfb8d3f	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e24ebbc	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e329235	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ea16c22	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fafc74b	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fb28d21	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x201ab13e	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21030c4a	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21ce73f8	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x238a6768	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x248345f5	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24e4f445	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25061db1	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2596208b	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28e0c3cc	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28f0f64f	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2935de22	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b63e45e	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b94d8b0	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2bce1af6	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e1d397e	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3093dcb5	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x309a3a96	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3153c359	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3285ea25	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33cbc017	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33e76d21	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x340ac4b0	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x348e0a93	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34f117a6	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3532017b	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36f8d143	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3789b538	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3862f2d5	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x38772fd8	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x399a8e64	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a14a376	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a41138d	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a97cb93	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ab3ca6c	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b05d73f	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b16e92b	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b620fa0	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c71aa78	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d62fbd8	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ec4bf5a	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f8582a9	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fae80e7	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4005e2d5	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40aaf0ea	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x415d03e2	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41b6809f	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44d8b68e	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x451e2c11	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x476331d7	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48ed9311	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48fe1d29	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49014036	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x495b52a3	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x496fa222	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49831ddb	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x498ce964	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4aae57fb	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b74d497	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b948472	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c158c2f	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c3c5792	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4cd8b2fe	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d2ab34d	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d5247da	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d752c5e	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e711001	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4eb7e6f9	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f2ce4eb	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50eb3f1e	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x535dfa66	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53633ff0	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55afca35	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5709031b	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58a2e838	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58eb071e	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a0d7b1e	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a520568	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a566491	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a5bbb5f	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a61f671	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b682875	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c2aae88	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5c5a984e	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cbb54cc	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e004347	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fcf03b9	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60bb64fa	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62175a1f	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63ef9f27	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65039d68	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65cfc281	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66726958	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x669b539b	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66b3c8e9	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6771a99f	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x678f97a2	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x693ffeb5	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a5ef6db	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a9a5d80	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b2f8b12	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b53e0ac	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c25a7c5	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c286ae4	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c7b07f0	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6cccbb38	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6cd1790c	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d449691	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dd9bf43	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e223198	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f2af12c	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fb90ebb	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70e9b43c	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x711322e8	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7274b311	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7335e418	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x745ece84	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x748fa56d	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74e30815	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x763f1fea	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x772a48bd	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77a690be	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78d77112	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a235192	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a6aca4f	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ad14ee5	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c465036	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d1f8556	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d9d1612	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7db36cc2	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7def81d5	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f49f4e2	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fee19c5	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81897ba1	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81e058a7	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83519ee7	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83b81edd	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8488fee8	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85126732	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x868e2518	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x879a53b0	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89c3959b	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8aacc1d4	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ab2e8ee	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b929876	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bb384e5	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8daf52dd	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e8ee0e7	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f445695	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f5239d0	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f7fecef	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f86162e	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98dcf3e2	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9973220f	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99eeb8e6	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd9a22	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ae5f63f	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ae69072	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6ffe9b	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c7a5efe	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d0ed065	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d1e9c49	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d28fd37	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f43f17a	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f6d85e1	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9fca75cc	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0ce4641	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa18b39dc	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa22ae3f0	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3504d4f	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5dce6a9	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6b8074c	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7078250	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa754a3bf	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9da287c	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabf001f2	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac027033	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac15bae7	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac619b2d	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaccc4959	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xace05323	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xacfc60ac	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad0e3276	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae95993a	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1cb9cfb	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2784ace	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb376df99	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb469b495	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4744a41	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb51b58cf	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5f92bb8	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7cfb39c	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8b99a81	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9b7c705	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba484332	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba801260	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbaf22a45	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb59c4a2	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb905531	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd4764d7	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd6517b2	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdcc47fb	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdf43b0a	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe259c46	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbeec8b1f	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf9150db	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbffe71eb	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc059e096	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0920d5d	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1e8e466	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc239217b	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3108ffe	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc39e6ad3	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc45475d6	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4dc6a55	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4f0e583	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc8351276	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc8d63de6	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca0ba12c	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca72425d	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca933465	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb41e245	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb76c63d	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcbe65fa4	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd495237	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce358e47	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce39ad5d	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce6d5aee	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf55654d	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf611e14	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf95ff6c	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0854059	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0b9abf2	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1059d84	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd116be7e	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1aa4d96	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd238715c	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3193b92	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3933ed2	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3f7ad12	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd43ac364	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4d89062	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5a97cfb	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd86352a7	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9614875	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9743ec3	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9f04541	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda10eca1	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda3b4121	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb6bd17a	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd29b58e	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd5de235	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf116ea4	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfdd3521	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe0140bbb	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe139aeba	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1a33d89	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2a10dab	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2bb5c31	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe36c3066	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe39ff335	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3b8b79b	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4049c21	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe43804cd	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe465867a	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe47aa6d8	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4c045f5	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe57c7226	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5cb539b	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe66e1eb6	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe90585b5	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe93e3722	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe93f0177	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea3047d9	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea3a116b	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebccda03	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec06ec36	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee4bc424	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee7e4831	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf108f38c	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf150b73f	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1e64f79	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf249beca	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2b7eb83	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf571ef31	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8b8ba58	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8d94c35	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf92e9c54	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf97eb31b	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9e1f0af	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa85396c	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfab6d6af	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb07d2a9	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb1615ef	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbea2df0	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc2c3c28	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd635091	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x01f180c3	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x031c4cf5	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x04c8b8fb	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x05fc864a	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06a02c34	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06b5e2ab	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x08c32a54	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0902a92a	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0b19bb78	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0c262bb2	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0df4fad8	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e0aaa18	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f33328b	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x108278da	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x117fb14a	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x118a2282	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x12c6d4ac	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x14aa2cb1	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x14baaaf9	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x15571c63	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x15f93cd4	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16682c2c	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16900dc6	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17588de2	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17d81de9	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17fadf83	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x19c88ce7	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b4e6287	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c3a2e67	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c6cebb0	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f0f9f90	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x205fb322	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21663485	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x229bbcc4	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23a2f4b1	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27d4d6e2	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x292fa11e	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b559151	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b60c2ee	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c3b333e	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f21ae13	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34bf6aa6	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x35710df4	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x370a06cc	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x37c8bdee	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ae998c5	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3c66bff2	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ceb0639	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3d52edaa	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x41bbcb30	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x42b14428	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4436e3eb	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44909ccc	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44f2bbd1	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x47a51c9a	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x488d6419	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x489cf2aa	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4924b2f8	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c1643bc	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c8cddf6	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x509c96dd	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50bdf99f	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53094610	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x533c0762	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53bcbce9	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5421d691	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57971f7b	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57c54e35	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b308c55	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b5617e4	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5bb1c178	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x62452851	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65048a0f	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x659acb0d	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66585462	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66679df2	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66a133b1	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x67e1c06c	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x67ea5693	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x68086a40	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6883cf01	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a8fa80d	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b53aecd	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ca13d42	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e1a68fb	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e8213c7	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f33caf9	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f7eb687	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70204ac7	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71ab7395	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71f55e1e	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x726879e4	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x730fbac9	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74765fba	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74d1813e	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x78ff6fa5	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x79607e99	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x79f9e132	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d23f68e	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d667cf4	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7fcdf1c6	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x805ed8f0	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82272717	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x822d5e51	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8237204c	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8459f183	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x848b7091	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85519d47	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85c41242	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88876509	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x88b1c5e8	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89339f54	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b1a8026	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8bacd456	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d4b6206	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9135ff26	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92c2095d	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x932c638e	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94d18ef5	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x97fd77fd	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98084615	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9925065f	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x993dcdde	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x99914d96	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d66b978	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ea8d8f4	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f9f0431	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa0c86c70	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa20ec6fb	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2edabc9	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3835276	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4ef3b71	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5302ef7	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ee5c3d	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa7fc5889	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaa9a35bb	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab124c58	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadb13872	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaf66d790	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0dbb006	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb3802255	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5170176	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb91a9f18	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb946ca0c	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb96db8b1	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9b8a167	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb9be70c4	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbba59102	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbc13d625	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd211255	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd62e6ca	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf160934	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbff2f53f	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc0c6a06f	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc28b5b69	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc48ccbc9	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4e59895	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5375fa4	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7e67f37	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca5fc4ed	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcad0cd3c	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xccfc4f03	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcd563c11	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcda79fbf	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xce930756	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd38e9d7c	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd4ee4647	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd55b252a	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5d12471	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdaa4c79e	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb7ccfd6	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdc80a2b9	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdcee269a	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdda41c25	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdee3e929	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe30b6839	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe30ca3ed	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3dc2f86	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe4ea975d	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe59ebb3a	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe606fc63	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe610a1bd	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe91a2f78	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0058ce0	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0238072	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf198dea7	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf277d478	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5c011b5	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf61ec8a1	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf6755c56	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7564b9c	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf77f765f	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfa0141b7	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfa85589d	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfda53d34	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x109d3a30	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x112a6dd6	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x285a02bc	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x29cca531	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2ce9559e	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3dcdd017	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4a7fb1a1	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6817ac99	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x69b2376c	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x706f4626	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x7e2bf4ba	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa413a8f7	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xaa92d9a7	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xbfc494ad	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd72f0692	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe47d68a8	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfaa82f98	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xff11dd22	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0229a214	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x06b2f88e	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x08046f12	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0fa22861	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x231a59bf	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x37d1bc4c	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x447a0774	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x543233ab	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x569866cf	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x76b6e088	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7e59b804	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8d59fa6e	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x98edd0d9	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xaf5a7f69	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbf44b291	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xcd2b97e6	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xcef67fe7	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdead13d2	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xefd07934	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf06da44e	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0302c1ad	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1605fa6a	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2649d25d	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x289c5c01	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2c923a77	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4c382bfe	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5e2961f6	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x76045f17	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x81926dd3	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa80126c0	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc662e6ee	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd11f7d87	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd43e068b	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd578722b	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xddf722e0	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe4d3ed39	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe7c23746	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf00ba6c1	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfad5b598	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x019fc144	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x06d62ad1	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0a63d1ab	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0d32507f	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0fd72f54	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x11fe57d8	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x129e6b10	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x16160490	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1866d31f	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1a153193	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c1b0585	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1cb893e8	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1e0ef487	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1e54c84c	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x27660511	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f5c4ccc	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x313616d6	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x338d35ef	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x37c69426	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3a34f42c	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3a9dcf09	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3d76cf92	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3ec8a3b5	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3fd80afd	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3feeae90	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4bd84c69	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x50be1f0b	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5235634d	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5eb64bb8	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x772fc9a8	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7c387e4e	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8248e8f9	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x85b043e5	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87d8ea92	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x896bfaa3	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x89d25e54	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9034369e	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x92ee97d0	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9569b0b9	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x97606376	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x999c96d0	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa4c4d99d	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa8a5c7a8	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac807fad	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaca5fde2	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb01eabee	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb0b10cd7	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb1efe1e8	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb6a8cfdb	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbbbab2ae	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbc4a9dce	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbd64b058	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc194de54	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc53428c9	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc8e6f565	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc954f033	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc9bc0aca	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xcfdf060b	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd600157d	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xda81e485	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdefc5100	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe71b4f9a	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe7ec71db	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xec846de9	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf97010c0	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf9a308bb	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/vmwgfx/vmwgfx 0x446c961c	ttm_base_object_noref_lookup
+EXPORT_SYMBOL	 drivers/hid/hid 0x67e3a6c4	hid_bus_type
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x08891b88	ishtp_dev_to_cl_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0abb1fa1	ishtp_set_rx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0ffa709a	ishtp_cl_disconnect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x19a980a0	ishtp_reset_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x1ed444b0	ishtp_cl_tx_empty
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x25b854a9	ishtp_cl_send
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x2747e528	ishtp_cl_link
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x294771f9	ishtp_cl_connect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x2f6ef3d9	ishtp_get_ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x349300e9	ishtp_get_pci_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x3ee94db3	ishtp_bus_remove_all_clients
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x42363651	ish_hw_reset
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4b8ecc0a	ishtp_cl_driver_register
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501	ishtp_get_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x650fe89f	ishtp_cl_set_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7335d374	ishtp_fw_cl_get_client
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7750343e	ishtp_register_event_cb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x777c55e1	ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x779f047a	ishtp_set_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x79714ee1	ishtp_device_init
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x831aead5	ishtp_reset_compl_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x8e54fb60	ishtp_cl_free
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9403470b	ishtp_get_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x964ede8a	ishtp_cl_rx_get_rb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9d02ef1a	ishtp_cl_flush_queues
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xa51286ec	ishtp_send_resume
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xad8342ae	ishtp_cl_get_tx_free_buffer_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb258c60d	ishtp_start
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb60ac5e4	ishtp_get_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xbe2204ab	ishtp_cl_unlink
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc1c42227	ishtp_send_suspend
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc3dd65d9	ishtp_cl_get_tx_free_rings
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc9d4b5fe	ishtp_cl_allocate
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xcc63cedc	ishtp_set_tx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xcfb6ccc7	ishtp_set_connection_state
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd182c521	ishtp_trace_callback
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd32afe1c	ishtp_cl_driver_unregister
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd7c3058c	ishtp_set_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xda4f3858	ishtp_put_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xdeb54ae7	ishtp_cl_io_rb_recycle
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf014a3cd	ishtp_recv
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfb660649	ishtp_fw_cl_by_uuid
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xfddfcc98	ishtp_get_client_data
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x58e02a7d	vmbus_sendpacket
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0xc3624c24	vmbus_recvpacket
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xf861026c	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x9383bcea	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xe512dc40	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xfc942109	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x0ea37190	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x0f79fbec	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x9a8739fb	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xa0dfe18e	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xbc0c0919	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xbc778db7	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0a14942a	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x27706d15	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x2b2eefba	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x2e479ef9	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3730b268	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x46703f88	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x66bea695	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8296cf86	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8539c5f2	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x91eefca4	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa0079dea	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xaccbf563	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbeea8287	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xdb174eaa	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe17bc2b9	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf74c67fe	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x8e62f1d5	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xb6f91a27	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xd27cab54	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x654ffd29	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xf58bc8ff	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x5c0543eb	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x7cea41c3	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xde0448f1	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xe5d56f6a	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xe8bdd5a2	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x05b76566	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1887d3c9	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x62aa6281	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7275535f	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x81d7575f	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x87c02e2c	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x92b4eb93	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa378454f	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc30b3c67	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xcd7b3382	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x06d1b722	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x6379c09a	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x7d7a648f	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd45bbefa	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x4d8a5ff7	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x4f2a01c5	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x6800132c	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x95f2b94d	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xce9b7477	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xd00ae840	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xeac1bcc0	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf3ce2612	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xf3de8019	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x0458e193	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xb2fd5fc0	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xc4d8371e	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xd0b923bc	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xeb70253a	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x0d46203c	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe039355a	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xff882f7f	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x041af44a	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0d1387d3	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1454f764	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2904fe33	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x38740e1e	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x48932979	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x518d0e76	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x668e3350	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x699b6022	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x80417c96	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xb52e9568	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc283f844	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xc7f92df8	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcbc975a1	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe988e79f	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xeb1ef2a9	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xed81e5a4	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x432799ba	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xe3d9d175	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0xb6fc8aa3	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x4873802b	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x645f2d16	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xb3486753	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x395fc920	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x7596244e	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xb4fb2b88	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x919e7966	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xe7a95779	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x36f6d0e9	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x9ec18eb8	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x86de24bc	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x50f2c17b	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xeb56e65c	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x0cc91b9c	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x17eb4bc2	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1bf9d757	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1fcea65d	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x30554581	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3e0b86c7	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x46a8c018	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x4f9cf859	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x60109acc	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6e8a0dd3	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8e4e1991	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x90bc86ec	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9ae790a8	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xaecb826d	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xaf6f3b3b	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb06296a6	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb31db44d	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xca6c9cbd	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd74d0606	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd8ea201e	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdde7b0bf	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe073ab99	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf38b9049	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x03765351	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x7d545ba3	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x8bdc68e3	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xb06c6d3f	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xc9394588	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xe1360b9c	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xf56033cb	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xf9801705	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xfe41046e	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x4251becd	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x8545b77f	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x9ac20a04	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xf337e9b2	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x018c28dc	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x32be41cf	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x3927003b	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xc902c83d	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x126edca5	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x558a8cf6	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x85d1e7fd	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xb8b727a9	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x250fe029	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x69807e9f	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xaf50a73e	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x1cd6f426	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xb481bec1	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xc76ecca2	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xda8f9eba	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xf6502944	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x26940779	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x5d189a4c	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x5442430e	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xcc32d2e0	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xd418811a	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2ecaa18d	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x31eb441a	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3ed3ec23	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x4ee370a9	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x50b46f37	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5bf3f640	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6a7f1bf9	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x70b1ec05	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x77d4076f	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x79ba2bb7	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9ed549c7	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xbd3b28d5	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc2f5dd26	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdb33ba81	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdf33d938	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe70fe166	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe770bbce	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xfd5b3740	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x000dcd0a	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00cf7d85	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00e29837	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x011bba43	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x02a459e3	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0332fad3	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0483497f	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x04d97127	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x096d4f40	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09c0910d	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a165712	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a4819a2	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0dbcd120	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ec02490	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0eea2311	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10b15059	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10d07c70	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x117d6235	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13133434	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13ebde5e	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x14d9b542	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x171cd691	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1750b944	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1767eb5b	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18a482f7	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18d75229	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19442313	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1ac56cdd	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1bf6320e	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d0a1868	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e2c5cb4	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1ec8eb29	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2028115d	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21564bec	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21ce6da6	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x23506194	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x27dd09bf	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28ff1c2c	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a66f67d	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b0f0e1d	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b5f90c8	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b8c9e09	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2bf64754	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2bfd66d9	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c4051cf	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c563c96	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2d18aeb7	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2d7f5554	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e4a0811	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e94706a	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30a159bb	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31838395	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36b326f5	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x37a821a3	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x386a7935	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38e8ca21	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39754377	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39f1b36f	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b235b5f	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b722fdc	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3db4439f	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4265af1c	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42dfc2c8	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x439dad5e	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43b006ed	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x44e9cd76	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46547707	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47ae4f93	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4a96a8da	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4b14c64a	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4d97b0ba	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4fb375a1	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x51005637	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x53301fff	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5554dc42	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58781648	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58b6c5d4	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a82b5c8	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b616c5c	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c208d73	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c4f6597	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5cedb349	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5d98449f	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f588b32	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x607ca067	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60c9857e	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x63541bff	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6687c0d3	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6699ad1c	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x66d1ec41	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a6383e9	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b8f1aac	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f6e951e	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71090e85	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71ae7804	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x779048c8	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7be475f2	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7da56ef7	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x806872e1	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80bec780	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x832f1325	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x839d0f20	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x852a73a5	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x85a3b804	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8619c7fb	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8727ed2e	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8bb6f324	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c2cd22d	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8ce25592	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e3408fd	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f9cde83	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9171b783	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93a8b3a2	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93d8426f	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97d74eb0	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9925a355	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9962edf0	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a3af561	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d30e240	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e2ba22c	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa26b8016	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2a5cb97	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2b68d29	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa36bb8e8	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa709b502	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7b27366	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa84362ca	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa84f705f	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa9326f5a	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa93ba27	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaab444d1	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab43b525	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab671257	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab84b432	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab87bdaf	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2a4b396	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4a04d0f	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5a63d35	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb60b9087	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7108f6a	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb92431d1	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbdadf7fb	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc15f2a3b	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc21522ae	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc45f1649	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc718d96f	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcba65909	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd076dd1	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xce1bc31d	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcea614bf	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd17d8499	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd38d5f45	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd64d555b	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6c21bb8	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd976ce2f	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd9d23321	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd9ffe2fa	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc718c80	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde870dc7	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdf4cc796	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe069c3fc	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1f5e3dc	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8f70389	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeaa44bc3	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeac148b4	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb044e60	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xec719b1a	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf249bd66	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf27816f0	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3297ada	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3aa5068	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf58edeae	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6609700	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf875e373	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf89054a7	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfab1eaef	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb6b77bb	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfbc8e717	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfcbef960	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfd13d9fe	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfda05619	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff15d044	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffa55299	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0adc5736	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0e873ec8	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1c03f109	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1c35c94f	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1d3054e6	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2c9cfdc7	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x37fecf13	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x47e14881	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x50b89699	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5399baae	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x58f0ccd7	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x645bb980	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6b171e92	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6cf22520	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8248ffc1	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8c77f8ed	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x918ad094	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x967ab8dc	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9ff62093	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa76339d5	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xae85fbe7	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb696292f	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc62fa7cb	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcace0456	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd6a17f88	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd7ea9680	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe0612c9d	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe72778a1	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf1582c4d	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfebc06d9	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x648bf29d	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x76a9083e	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x8805d68e	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x8b9523c7	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xae82b4d7	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xbdcad39d	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xc685a364	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xcca3d17c	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x03fbc85e	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0cdcfd14	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x138dc9f9	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x16578634	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x25a8061f	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x27961ed7	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2a1c15e4	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x379027de	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x39af4187	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x43dbf396	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x44b44953	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x53d722f1	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5cb5d8d2	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x66dd6c3d	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x72f86049	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7e05977d	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x86f64b24	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x89e4ee79	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8e46abf1	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8f618bdb	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9f48f7e5	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa6d1ac5c	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbf7dc2e6	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xcbfd6294	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd1b14835	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe04a45a8	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe9d4f0ff	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xebea77cd	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xef5c19d8	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf0cc0ba0	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x05e7864b	rvt_del_timers_sync
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x09559c75	rvt_invalidate_rkey
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842	ib_rvt_state_ops
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x1354c5bf	rvt_mcast_find
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x22bd6ed8	rvt_rc_error
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x298651ae	rvt_cq_enter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x2e3a6b0b	rvt_comm_est
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x38a05cc9	rvt_send_complete
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x3926e288	rvt_ruc_loopback
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x39e571ed	rvt_fast_reg_mr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x41c9d618	rvt_add_retry_timer_ext
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x434579a2	rvt_qp_iter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x480c4c94	rvt_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4824297c	rvt_rc_rnr_retry
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4c2864da	rvt_get_credit
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4ca7cd3e	rvt_register_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5da6b925	rvt_init_port
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x612d308b	rvt_stop_rc_timers
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x63776e50	rvt_copy_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x6ac9b4a5	rvt_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x6edfc787	rvt_get_rwqe
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x784173d3	rvt_compute_aeth
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8457b058	rvt_lkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x931a08a0	rvt_qp_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xa9b22f58	rvt_add_rnr_timer
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb665d0ac	rvt_qp_iter_init
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc2f96e1d	rvt_error_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc4f2374b	rvt_rkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xd93b91ef	rvt_check_ah
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe28e1e60	rvt_restart_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43	rvt_rnr_tbl_to_usec
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf55bc8e9	rvt_dealloc_device
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x075ba463	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1e586a76	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x467806c4	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x48b080e5	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x562d9beb	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xdc551886	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xe71fc87c	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xef3b7b26	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xf9c84457	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x679715b5	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xad03c3ed	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xbf8cc354	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe8a2f608	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xff7b282f	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x2d1380df	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x573844ee	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xed662674	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xdfa6dcab	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x4c24ba0e	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x9cf5db94	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xbfe72894	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xdb05e5a6	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x36165fb6	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x2a79efb3	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x92e93a99	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x95b7e6f0	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x9640766a	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xe667b4a1	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x319399d5	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xd58d4e2f	ad7879_probe
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x08f4d7d7	amd_iommu_unbind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x25c7f144	amd_iommu_set_invalidate_ctx_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x4069c735	amd_iommu_init_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x54f6b3e3	amd_iommu_set_invalid_ppr_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x882f871c	amd_iommu_bind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x971fda1e	amd_iommu_free_device
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2499511d	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2bc94f2f	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2cd1a538	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x34ec8eb7	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x39af2b02	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xae99c82b	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb4a75d42	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xebd450e9	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf23bc1ca	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd3cf7ea	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5	isdnhdlc_decode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5	isdnhdlc_out_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58	isdnhdlc_rcv_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223	isdnhdlc_encode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x05ee1833	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x088161c6	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x6b7599ac	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x7e4fc400	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x6e757e39	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xd1858861	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03d4e00a	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x061a78b3	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x09dd3056	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0d34985c	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0ded8338	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x158e33ca	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1859d74d	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1f4c58e7	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3796f8f9	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3b8087f4	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4c0309cf	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x531b2ba1	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x609657d8	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6c5d02bd	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6fdc5c8e	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x96f6f089	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa5b7841b	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xab0832d0	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xade50bf9	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xbd4f1c01	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xed9d8e96	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf5ae53a0	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf7b45e6d	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x1980c806	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x41209dfe	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x1e36de59	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0xb015dd5e	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xc2612f56	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0xea16fd83	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1d5cda8f	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x3c9c5682	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x4f8403a5	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x6415be0a	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xc287db08	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xd1b3c5a0	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/raid456 0x75c8feff	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0x93b93245	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x1596311a	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x280844e6	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x41fdb0bd	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x5e75091d	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6a5b3d0e	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x83f6a390	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xb035cf40	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xbab10b82	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xbffd1ff8	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xc619b7c7	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe80a27e0	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf15c3a83	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xfec0b85f	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x28450f77	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x975ae478	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xafb427ff	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb13930e1	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x2b6b096c	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xc6d1fc83	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x16096f4d	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xb5ffa4b7	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x1e06a35d	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x702f27f6	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x7285bafb	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x8cbd87ca	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xb7e2b182	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xbd4df3e8	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x786f3e4b	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0f006c32	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x27f64e2f	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x291838da	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f6a5890	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3464093b	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3fe25d82	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4347dfbc	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5782fdf8	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x73799ca2	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7f0bdc2c	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8ca57dc3	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x907469c2	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x93fc1407	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa75d8230	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa92bf4ff	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xafe70033	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc7c10168	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xce3724e5	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd18789af	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd4a3f677	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd698cf3c	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe793bedf	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xecde31b9	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf29339a4	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x32621d74	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x35e7e7d5	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7da107ab	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x950e195e	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x9a0a63d2	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xab9b699a	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc63d6193	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xcb2bfddb	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xce8a3795	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xd36f74e6	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xe62eec9f	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x0ccdc4fb	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x27212e7e	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x4d11a911	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xc1866726	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x0eb9e00d	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x12e276be	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1a54289b	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1a679c4c	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x22cf8209	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x4b4d78cc	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x6fa276c1	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7deff0a0	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x86a35e9c	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x86fece2a	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x9db521d7	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xac1b8164	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xb8489d2e	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x2af68d3a	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x571f89ec	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x9bfa6b79	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xacfbd093	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xb5dd1b82	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x27127c76	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x44f8f721	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x902dffd5	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x1f35dccb	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x2d4f5276	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x352f6a17	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x4310f74f	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x451d09b9	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x75f394c7	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x8117f630	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x965e6a75	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9f27cc7f	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa46f9ba7	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xbc5e4b30	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc32b94d3	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x0ba96e4f	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x306c66c1	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x5626cf23	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x61762b62	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x9874d459	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x2f6add09	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x50796384	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x84a4f961	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xace0199f	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0xffc2d08a	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x51a769c4	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0xacd41be2	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0xc09da9ba	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x5483bf48	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xd870115a	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0e831e54	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3b952de1	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6df63e12	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x760edea3	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7f84302d	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x82311d79	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa14ebd6e	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x3bc05c67	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x529429ea	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xc20beb49	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xcb886ee9	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xac16df3b	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xb781a8f0	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xc4157398	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x12bd7b98	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x17da6bc2	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x1b7872db	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x2d646db1	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x46e93a6b	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x4c7ace8f	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x54c00191	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x70172a65	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x88671a5d	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xa49bb717	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xcf7e3347	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xde0b9764	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xfe729420	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xdb3faf38	altera_ci_release
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xe66b9812	altera_ci_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x1317e74d	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x2da6ca27	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x7633e0b1	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x84e5dfd2	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x9c85a36f	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xace70190	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xecb6d746	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x183bb419	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x839e41f2	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x46d4b5e3	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x8c1df5d2	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xbc508411	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xe67f5069	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x04c2f2de	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x090e2057	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x2543150a	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x411f3dab	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x5095ae78	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x83a8b5c2	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x8ecf446b	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x09599546	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x2ce355fa	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x30b00c83	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3c826e16	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x51d4196b	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5eebe034	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x64fa1ee4	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x65f6db4f	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6675405a	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x69adb610	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x77ca3d2d	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8197981e	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d810570	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x93807c34	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x94ceb07a	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xbb7df80c	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xbfa1ce5e	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xdc384340	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe1223345	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe22ff9a0	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x1276deac	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x29e907c0	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2ef65407	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x46a8333d	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x58ab0f4f	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x65721777	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x98de759f	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9c7e7d42	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa3b77b48	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa849ff4b	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xad8134ee	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc39b5c47	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd38b18f5	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe5511f76	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xeadb5f5f	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xefda58d4	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfdbc029e	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x01b3fa62	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0527c9a8	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x156dab88	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1664f6ac	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x21c836b4	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x33b6513b	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5b98b46f	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7ef6b08b	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x86a561d7	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc7581268	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xfb766bdd	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x626434a7	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x0249abf9	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x0338ddaa	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x2051fdd6	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x43bf2f6b	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x516e3697	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x6fecd34e	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xbe75486f	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x483096cd	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xadf74d1b	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x5bb4f0a0	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x983d5623	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x83aac34e	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x27ca51c3	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xacfb43fa	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3181a373	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3e872929	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5adf0ac6	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xaad7cf60	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb6d7ead8	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xce56de20	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd24fe4d9	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xda621a2c	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xdc3b3f5a	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x13905d92	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x20c3bd9f	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x2602cd4f	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x54b594f2	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xd750d23b	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf11b3229	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf1542aa1	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x4115e746	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1c1241eb	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3b70cc2f	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x72f8addf	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x73b3a7a7	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x74c5ba61	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xba805545	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdbb61ecb	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe0aad7d6	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xeb8dc09e	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x49d294ea	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x6724df6d	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x6a4a5a38	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xa7035fc9	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x0510791b	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3adac6f6	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x4106a024	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x46f979b8	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x49696af0	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x65cbed25	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x90755615	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xdf17af00	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xfd55f676	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x0d0dee40	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x44d84aa9	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x66502c1b	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x6f049399	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x751ed90b	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x89b2af8a	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe913e6a9	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xfe8062b6	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x87abdb65	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xd090ee71	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xee296a6e	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x50cca50b	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x7b0ba4c1	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0d00e953	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9879a091	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfcebf72d	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0328c1f6	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0697023d	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0a7a8d53	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x196d2d8f	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b13ec01	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1cc14204	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1fd9e14b	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2054a9a1	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x211a5801	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x22d626c7	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x25f3b246	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3293d373	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x38e2c02c	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3afd6f8b	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x495dc8f2	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4a0bc58d	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4c04099a	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4d313b3a	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4db1e8ea	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5074af2d	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5f4873d6	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5f853cbc	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6317be0a	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x63e2496e	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6760e7ba	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6881639c	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6973a9a1	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6d69f387	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7153dc00	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78a60794	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78e79719	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7aa572a0	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7fcbb262	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8b26d496	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8ee80d4a	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8f9de727	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x94b0145b	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x95b078e8	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x97a83849	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x98b632f6	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9a5216d9	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9d418fa7	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xab1461f7	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xabcb10a5	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xabf1436d	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb6623713	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb9ffd9ca	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc3e9d872	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcca8713a	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcf34f571	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd0d4500b	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd2449a49	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd95d3e46	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdadfb8b2	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe08a0edc	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe1c5ac74	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe1cd9e7a	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf1f4db4d	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf4174945	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf48851ba	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf59861ea	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf5e6d053	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf6473bc6	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf9858e7a	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x0c93b163	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x272e0d0a	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x27b85919	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x323482a5	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x380dc0e4	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x50715718	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x666ed2d1	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x96fc6cd2	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa07b5167	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe0eb0388	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xee4c9ce8	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf8d7d103	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0012766b	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x054b9b56	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x06d802a2	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1553b7ea	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x16e57f4b	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1799a9fd	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x19a90c07	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x23cd4716	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x29af27c0	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2a0158a9	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2af6cd40	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x460781d8	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x470c5b8f	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5007b318	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5fcee9e5	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x602d11b2	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74ccfc3d	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74e28d65	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x89658d1f	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x90ecac48	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x92af4a9f	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa1bfb36e	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa546fad5	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa5f1b1b1	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xae4a7157	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb507393b	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbd1ec559	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcd3aeb3b	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xddad281c	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x121e165e	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x13f0efa2	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x149b8dcc	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1feb4864	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2048f657	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x325d2e86	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x339bed75	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x415f1782	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5763d374	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5fb01be1	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x650b5b1a	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6594d29e	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x84d3145b	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x85f51a19	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x931c6ce4	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa10d236f	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa505898d	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc9600048	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcf197adc	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd8429027	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdf277aec	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdfb8240c	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe2904728	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe762a2cc	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xecf633fc	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf7be922e	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfc0c5891	mptscsih_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x1fe0b2c4	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x2d134ea6	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xf2192010	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x57e6c456	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xa67b2b96	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xa9d5b8a0	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x8b413b9a	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xb3cd62a6	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x21210cf1	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x2614e7b7	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3419d836	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x3752eee4	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x554386cc	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x5e030af8	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7f4b5774	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8267a1e2	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xbd2abf9d	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xcca62b46	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xf3fba625	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x5656fbad	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x646c4034	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xc1b28aab	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xc934f980	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd5676f9d	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe9347e1c	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x8428aa35	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x9f931d29	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0xb9f0fe98	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x30807932	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xc731028b	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0x1545cfd0	__tracepoint_mei_reg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xa5bff49d	__tracepoint_mei_pci_cfg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xb93bb2a0	__tracepoint_mei_reg_write
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x02e39d96	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2131d96c	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2f907583	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x35e9e456	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3867cd8f	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3f26e24a	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x408bbb37	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x9cb3094e	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb6933fb3	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xbe1dcea3	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xc01d9f73	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xcf1d5cb5	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x385854a3	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x3c0a4967	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x72903d8f	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x9351d9b8	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xbf9db7fb	cqhci_resume
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x3ae04ac3	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x4a854185	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x6efb3db3	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xaa748ee7	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xb2a49a16	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xba0c2c1a	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xbea7816e	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x2b08fca8	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x2f6faf56	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x379935b2	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x9d24f11f	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x364d77ff	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0xba464912	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x1f81dec6	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x0cf32a18	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xb2e46403	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x54b98025	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x929d9c85	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x55d6b9ec	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xa49181b0	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x311d7a56	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x35ec3605	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x57af3fe8	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x62e2f30c	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x79991b52	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x7a5e1520	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xb8fa2942	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xbbe9c147	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xcdeb66f4	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xea4aab76	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x738be958	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xdcf7b97b	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x0ef1c437	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x3f2df0cc	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6bd4efaa	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6c8aaf7a	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x7d3376e9	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xa796d291	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xa8d057e9	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xc0f7e1a2	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd4cbc4b9	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xf5a82041	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x2713d7a7	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x638d18dd	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xd4bd0660	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0549e318	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0d2c28bc	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x172bce92	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1d896e7d	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2f66eaa4	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x36b27f78	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x382c1c93	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3a4f459c	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x420d25e7	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x49bcfa26	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5c666d43	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5f402352	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x65e45f81	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x67646176	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6ab759b4	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7da42d90	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x82285c7c	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x93cf74e3	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x99eb7714	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xab92281a	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb2e151be	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb4af27bf	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb5777605	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb693addc	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbaff27b8	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbde4a7f3	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc57cbec4	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc6676b89	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc86d827f	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcb847920	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcca1e2ba	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xddf07f73	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xde94fab9	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xed3a402e	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf5a63c3d	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf5bc8802	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf959aaf0	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfb0ad545	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x309bb3ed	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x35cd9724	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x3c28dd9a	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x48de4550	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x62ab80ca	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x839aeb03	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x54aeb811	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x7d2c9448	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x26dc459f	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x1a882783	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x54799a80	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x6324b76a	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xbd7f99c2	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x5fca1a0b	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x6b1e6098	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x727209d8	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x7d21baff	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x97b36308	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x9f6ded67	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xaa1700c6	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xc5b1f620	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xea04f0bd	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xeeb278ef	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x83fbc9a1	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x5eb8dad6	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0xed807eb9	cavium_ptp_get
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x0d8be5fd	bgx_lmac_rx_tx_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x34eeb48a	bgx_set_dmac_cam_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x42264715	bgx_get_lmac_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xff987a02	bgx_set_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x13912e4b	xcv_init_hw
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x4f739dc0	xcv_setup_link
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x074ae349	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x099b3733	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x16591458	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2cf6faca	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x49e5663e	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4c6bf56b	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5cc2c28d	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7ee47958	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9705b03c	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaba9cbf5	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb0fe8760	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe4816d30	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe50f3e99	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe8c4a015	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeb1df451	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfb2cc9f5	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x08db4723	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09bebc91	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0e956a23	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0fa9cb7e	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0fb71f65	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x10375770	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x113234ec	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x213ae193	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x235ebd5f	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2f3c2a2a	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3866324e	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x46f473cf	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4bedbf6d	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x52096e55	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6359476c	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68217b14	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6bf34905	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6f44e0b0	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7169b3f6	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7749e00e	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7b8cbc18	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8078cc78	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x81e34849	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x841e5789	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8b804c47	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8c962c9f	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8f449761	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x907dc305	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x96e9e139	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa19fa2fc	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1e60b07	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa71ef8c0	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xab2bb9d1	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xac28147a	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb1fd3823	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb72682dc	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xba930f84	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc29aa128	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc3064071	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc43cea5a	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd02ac612	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd548f4c2	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdac9f595	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe97ccd25	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x08fa8fa6	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x497a8a59	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x54ef90c7	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x84a1d95f	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xb2321f36	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xb762ca75	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc9a110e6	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x1682e7f2	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x53a0cb17	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x7ae8a939	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x95dc9922	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xd6a8901a	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xe89771ab	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x2026aae4	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x3509fd81	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x7be37c5d	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xe63c56cf	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x3a6f0a94	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x68d0c54c	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0338366f	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d669fd7	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11519ef9	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18a17802	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e38cc3d	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23316141	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e6a7d7e	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ee453c7	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4748d470	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47e2e4cb	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48823400	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51096f96	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52dd48ef	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bfbb3ac	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fa762f9	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x656851eb	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x66d2b15d	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67bbf714	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70596a6a	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72ed1c50	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77a8bb52	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78eeed32	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7949ab8c	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79c87cfd	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x811eb012	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8424ff75	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x905e55d8	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92a2d7e2	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9504b9e3	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a23bfb2	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb04f3d5a	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3b20183	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4c10285	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5e617cc	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc16ed668	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc391bbdb	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7ec5e77	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc747f04	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd66265eb	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8582bbc	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0ac1228	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf488f9d6	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6a14b86	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff9cfc17	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01d2bb45	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x069452dc	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a5d7d07	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0afe400c	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b009e88	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b66249c	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b99b2bc	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c233530	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c294d3d	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x110c2ab1	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x120177bb	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13a8ba77	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14748384	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x152a5ee4	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15ce81ed	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17594d12	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ebb5529	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x207b95e6	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2208ade7	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x236aef7b	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24b9af13	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25a785a6	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26b78bf4	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bc23305	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d7e5ac2	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fc2baf2	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3137414d	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x319df9b5	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39630cd4	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a0055f4	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d63630e	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f434143	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45c4ac98	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4852fcbd	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ace18b5	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ce22f06	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5352c46f	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56be4607	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c65cec0	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60887c38	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60cf7cf8	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61bd5c1b	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6339dbb5	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6819e3e2	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69c1fa80	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b6cfabc	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c62fabe	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6cb31c43	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d916159	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e4cabab	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6fb88eb7	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x715a4f4e	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71a482db	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7502430d	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a308467	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7e80d388	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81f5854f	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9072a147	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x908e2e3e	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90b779b0	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90fb7d37	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x921b1bcf	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x925e1ff7	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x936ddbe5	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93bd5e4f	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x961e704f	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99af5105	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1799f2a	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6b6a44e	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7daf25d	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa84fb8f0	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad077f6e	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0667387	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0a046be	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3d401ef	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7ab6e77	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9d9df27	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9e9e3dd	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbab87269	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc1293a0	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc40488b	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd2d51cd	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc23a860a	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc574e36e	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca5dc781	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb5dd88a	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd00d007	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcdaa57ee	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce216053	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf64674c	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcfa496ce	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd299ce6a	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6bba1ce	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbd16b63	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbfaa4c4	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcb958f1	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd567d03	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe27de592	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3b05452	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7babfcb	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4000f6c	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf60f2a93	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7d724d3	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb866e1e	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc6c7cef	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe2fc210	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff1d9014	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff579d8f	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x78f76e45	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x037ce884	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1862b2d7	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2ef52712	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x42be33e7	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a7ae99	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4dbaa797	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6344b260	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x680d15b9	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6c0f61ea	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7c570456	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83f40c14	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8e40f9f9	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x994b7ceb	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc35c4bb9	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xea589149	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf6d939ab	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x810b9378	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xfe687e1f	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x454ca463	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xf5e3912f	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x017a53c7	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x3785439f	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4d2ebc5b	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x6b5217df	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x6be8b9ed	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x75af31b6	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa39d52bf	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa7c04531	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc02ca3d3	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc458808f	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe1beb3b6	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf2f8920a	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf5c5b0e5	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x3096e677	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x34d24eeb	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xd844db27	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xdf1d7dbd	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x6efeae0f	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xad756c51	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x12fc5577	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x1dbaa0a4	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x6292f671	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x8f0373d4	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x9837f6e2	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xb79a54ee	mdio45_nway_restart
+EXPORT_SYMBOL	 drivers/net/mdio 0xcdbdeca7	mdio45_ethtool_gset_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xdaceb7a6	mdio_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x2034340c	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x27b16f5e	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x5d702a21	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x795e11cc	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x8b0f4ea8	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0x908c47f8	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x951d14d7	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xc6488926	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xc83f15ea	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/mii 0xea46ffe2	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x485fcc0a	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x7b7cef62	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xe24748d2	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x31c8f76d	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xedf07162	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x35606c5b	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x7bf97fda	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x8e1eecaa	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xecd24e49	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x039a8666	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x10a03e77	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x40607d8a	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x571368c7	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x77b1f1b7	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xb3846d1c	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xb90f1ef5	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xc389bd11	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xcd8d1b66	team_mode_register
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x0cdc07ea	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x293ffbd5	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xfd51c849	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x15d229f4	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x57539f21	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x5e5d8073	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x64bc828c	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x72490f85	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x73c3995c	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xacc3f08b	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xc1778466	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xc52ee304	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xcc168cdb	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x977e7f17	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x05999d2a	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x22c0faaa	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x29d93106	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x35714f25	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x421d363c	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x52d38837	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x887324b5	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd07b27b6	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd53a704d	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe2b027ce	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xed32bf15	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf720827f	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xfc957037	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0b72904a	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0bc40c72	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0bf8b246	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1a2fc22b	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x23af0057	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x23da4762	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x27a04707	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2821c86b	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x28a5a2f1	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2b1519ed	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2d23e560	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2f66653c	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x302460b5	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x367b809b	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3777fbb5	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3a4ed22d	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3d5eb620	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4617bf47	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x472ad7c5	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x48971cef	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x57fe26ac	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x59392679	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5c41390d	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x634eb112	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6d4db034	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6ee99a7d	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x70bb7977	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x767836b4	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x81b2db8b	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x83a0aa3b	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x912faa2d	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9d60c884	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9de25151	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa5c6dcb3	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb01eaf76	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb7382e65	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb74eef8d	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb91b389b	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd13b5bc2	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdefffc90	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe4c94c5f	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xec1fcf81	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeceb7b53	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xededae40	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xee1d9e05	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf3157556	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xff82fddf	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4f637e64	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x551030af	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6b0c0af4	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6b6fa714	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x81391f30	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x82562cf1	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa0b23c9f	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb1d63c3c	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdea33e97	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xeca2c4cd	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfdb00c47	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x133c717a	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x14bfd83d	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4185550a	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x448416a2	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x471eaefe	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x54f92f51	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6447e849	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x682492df	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6997ed52	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x699cf29d	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6d220fa6	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7e3a24c9	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x85503204	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x94793264	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9c0c0e85	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa48bd856	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa88fe855	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb56378f0	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xbe80b9a8	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdb07dcb5	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfa75b4c8	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfb5da490	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfd5c73bc	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x00e951be	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x01f70f4c	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x02f58962	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x048473c7	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x04d973a2	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0810e806	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0840789d	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x09576bfc	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x096eb8b6	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1234c884	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x16698520	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b127a64	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c7511e1	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fb990f2	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2603ef1c	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x26d529d4	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x277a29ec	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c24c7bf	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dd96986	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fd192fd	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3014f020	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x306cf8cd	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x307b3b00	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36b27fd4	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3771e1fe	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x394f33ed	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a279019	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3aef62a7	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e700eb0	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e8a9f97	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x46f29f18	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a7cb230	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ed95bb5	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fd8e3f1	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x50713633	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x52e1a934	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x534dc17a	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x54dd414c	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x58318e1e	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x583c8f3c	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x585be1d9	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x58efb8e1	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x58ffe2c9	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a434a81	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b289d41	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5d6fd1f7	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x60a34922	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x61aa6f48	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6976805a	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6bf0a33b	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6eca3058	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x71792b47	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74b07018	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74da6ace	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x776226fd	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7952f86a	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x79f77655	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d600bb0	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8160919b	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x81d6fc88	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x81db196e	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x85909d41	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dd98d1d	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f3dc5a7	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f68f837	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x902a99e5	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9249a691	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x93761123	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9557371c	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a54519c	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa36110e7	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa480d0fc	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa62767ab	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8b9d0f4	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8e88fd9	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xab4bdd74	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0b3aa87	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0b7c26a	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1cc1e99	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5a2bb55	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe81c250	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe8863e6	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc15c96e4	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc55d9f1c	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc941c0aa	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0a9a7fa	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1425f58	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2fdff8e	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7872b0b	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd87b0e7c	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb691c4a	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0741c2b	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe130815e	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1aa54ac	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4f4c7e4	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe79e5413	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xece98146	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed2eab65	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf089d2d5	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5429cb1	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf670b20b	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7c011ac	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf88e0389	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa8aed9a	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb13e5fa	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfef3736e	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xffd6c9f1	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x17867cfc	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x5e17eb44	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x79023eb0	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0b1ab15d	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1b95788c	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x268cbe45	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3b82e0da	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x633bfe65	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x669ba072	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x708b997d	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x886a5e10	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8ad82597	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa9091718	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xaad54b2c	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xbb27b0fe	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc1a9af87	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x4ff528ab	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x6ea0a46f	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0xed278b91	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1287628a	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2755f5f7	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x510687d6	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5ac5ddbb	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x63ab108f	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6a938e42	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6aec799f	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6d9a4213	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x78b50881	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x7a79eb04	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x87b6f537	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9fca7a50	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xaadcdbcd	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xca2240f5	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xcbaa07c0	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd3a067c3	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdabf3b66	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf08f571f	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf37408c2	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf632d9ba	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0085a3d1	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x061ad18f	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a733297	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a7f9ed0	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12aeeb11	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12eb8184	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x153b4ffb	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1cebdb94	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1de75f2f	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1ec90fac	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2396bb3c	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x276e4048	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a1498bc	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ac695db	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2d50f425	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ef4c1b7	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x30205876	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x30c2e6e1	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3302fc35	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x34348625	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x35e7e1ad	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x402228dc	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x42b3299d	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4838d20f	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x487a7f8c	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4b1e5b0c	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c5257fe	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f8494d5	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4fe68b6f	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x50bd369e	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51dc5e93	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x55b0bb14	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x594ef1b2	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b8e67d2	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x676b15d5	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x67d9e619	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x68db1d07	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ad32054	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c318073	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6cd6b54a	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x70215f04	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73a3a7e2	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x788c0f1c	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7937cb98	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7a36bf59	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f718b33	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x83100689	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x85c14590	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8a7d8b66	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8f994489	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8fa485c9	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9142b6a0	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x935f68ec	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x991960f7	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9b688de8	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9bffa806	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9fe8da6a	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa1058362	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa354937d	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa3656948	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa5486e88	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa874d9e9	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaec67e94	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb08ea7cc	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb39d1383	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb643d1ba	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb659e1f2	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb8f29297	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbe1be0de	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc0cb8b8c	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc1d863fc	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc4e4849c	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc61fb640	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xccb4e0b3	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcec38f59	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xceeb16c2	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd02394bb	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd153533e	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd31334a5	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd3b30895	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd52632a1	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd5c9e7b9	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda9a6421	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdd747ae7	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe087143b	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe1050e9e	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe2056c85	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe35c561e	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe465b4f5	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe50ea2fc	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe5fea9c1	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe744625f	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7d66ed6	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xec16f192	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf1155d52	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf17ad600	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf406b531	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfcabd76d	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x00a60f39	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x016f9968	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0c399eaf	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ea2df53	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x12e59577	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x31561e32	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x3e957d4a	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4051c571	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x42d8776c	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x4d6a389d	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5a4cd05c	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6ebc9698	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x77a776c3	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x787b810d	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x79ef657d	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7c8b68cd	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x80006cc9	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9456cbe5	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb00029f0	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcb20e10e	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xce92debf	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd1e56f1b	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe2e0da2f	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xefc8789d	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf40105e0	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x27dce4bc	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x35fef72a	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x380194bc	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x3f09e888	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x54a1d07a	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x831771c1	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x86c11a96	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xa66020fc	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xb97df227	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbcf5151a	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbdd224ed	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcc22f5f8	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcc646a63	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xea3c722e	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xee9d14c2	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xccf55bd6	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xd88be1f8	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x007f60d6	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x03c5b162	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x11cc1c41	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x122f6243	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x18e226ee	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1a7e6fb8	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1ba2df6d	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2684c166	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x29f9ad37	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3e4ae828	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x48c4f378	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4aa63eff	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4f9b1899	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x54c7946a	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x594c7c3d	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x63e1a8de	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x68684fe7	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6912be80	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6fe69046	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7cb3a710	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7d06c952	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7d88818c	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c578f7e	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x951d2cca	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x970b2036	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x97580010	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9d10c67d	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9d8cc486	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa5152c05	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xabc8d162	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbb973dd1	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbdbeac57	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbe6accb7	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd386b50c	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd5bf4124	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe8cc7623	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xed7cae98	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf82a8ef6	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfb1d508e	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfdf28d34	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfffff41f	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x02bdc00b	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x5db28685	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x9f779ff5	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xffbc32e6	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x4d9fa527	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x58e39486	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x6feed32d	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xc0d5bb35	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x004263e7	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x01a6d3e5	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x07535914	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x202b6ce8	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2714ad2e	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2dc6d96c	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f29200b	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x453250d7	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5768bcb0	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5e8a3570	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x61c80694	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x62a45aa9	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x68720911	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6a5cc004	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6e0d4ee8	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x715b5189	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7d56dfac	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x805aa9df	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8358e09d	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xabdd230d	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb26dd8db	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbd56b76c	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbda47603	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc01bc383	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcd4599aa	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd2e9c020	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd607bef9	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd85bff78	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe4b85302	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeb3ddd01	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfa23a62c	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfc115062	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0ac2d685	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2ab7e507	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2bedd229	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x30930e26	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x4388e95d	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5d743677	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9ae9506f	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9f523454	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa02081d2	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb2b65d49	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb6944cc5	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbb3f4851	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbb3ffcbb	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbe092150	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc0fac073	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc13d1aea	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xfd063471	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x0692dd84	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x3d505e0a	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x542ae21d	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xd583655a	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xf924e9ec	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x1747b4ec	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x3d5da5aa	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xded8019d	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x124f4760	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xea437d52	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x47ed8fde	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x9eed7008	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xc13e07c2	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x6533cf77	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x7c27cd53	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xe4a6c0c4	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x7c8bc9c4	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x926df407	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xba7b405c	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x1480788f	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x172db6d4	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x20b37bc3	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x2b1d0f89	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x4a8709e4	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x56256773	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7579e8c6	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x9e596450	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xc394ab68	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xdadfc2df	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x077f8532	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1edaf01c	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2e606a09	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x3893a11f	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4efd5541	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4f34faa8	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x749621b6	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7623b9a8	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7bd624b0	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9fec0917	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa0319908	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb86c840f	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xea37aacf	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf230e5c8	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf2bd3f3b	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf4e8b733	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xfbed2f9f	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xfe95bdab	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x032aaf7a	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x055ef648	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x0c0adbb4	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x182bd20f	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1c20a5de	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x36402e14	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x415e4331	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x4a113f57	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x4b0ab46a	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x60723f36	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x835be6a5	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x94c173b2	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x969826cc	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa728602a	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xad2f6919	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xae79b4db	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb258cb76	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb8cef6be	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd45a9aed	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdb3d2190	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x04621a3a	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xa9666cad	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x053af02b	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x0565b9bd	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x0e564ad7	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x110399f6	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x133f24a9	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x1559b33f	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x27899d1b	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x2bb5b660	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x2c9bb4fc	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x31d2ff57	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x33e96c0b	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x4069f457	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x4423ab3f	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x448024cc	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x50dda52f	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x583fe325	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x61c05788	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x81ca98fc	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x8618d1ab	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x86672777	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x8b55ac5c	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x99f983ea	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0x9ebbb390	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0xa503a350	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xa56a90a4	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xb2b3ac9e	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xc6f819bc	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xc9826b41	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xcf100eed	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0xd0c74bd6	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0xe6281c7b	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0xedd18d5b	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xf260400b	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xf8d2091b	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1294045a	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x24b56d87	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x2cdf71b0	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x45545b3a	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x4e46514c	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x7ff12184	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x84f63a65	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x8b6b757a	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x92b16853	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x96687691	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xb16c6610	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xc6da7efe	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xd6587f55	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xd9099db3	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xdd17c931	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xe4d1b57b	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xeaca048d	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xf08fdc98	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x698e5c62	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x90a11cda	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x928dab36	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb3f3398b	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xc0c04ab6	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xc613a941	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcd008974	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xd45f0e2a	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xe5a297ce	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xfde13108	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x827e1b8a	pccard_static_ops
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0xc6a2fec9	pccard_nonstatic_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x395aa66b	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x87833731	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xa3332eea	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xc4abaab7	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xaa1c36de	cros_ec_lpc_io_bytes_mec
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xc4ebc6b3	cros_ec_lpc_mec_init
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xf5c87c59	cros_ec_lpc_mec_destroy
+EXPORT_SYMBOL	 drivers/platform/x86/dcdbas 0xa75079d6	dcdbas_smi_request
+EXPORT_SYMBOL	 drivers/platform/x86/intel_punit_ipc 0x3a0b563a	intel_punit_ipc_simple_command
+EXPORT_SYMBOL	 drivers/platform/x86/sony-laptop 0xd857cac7	sony_pic_camera_command
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x3cb58d1e	__wmi_driver_register
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0xf70c2228	wmi_driver_unregister
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x001f4b5f	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x21525281	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3de4cc1e	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3ee13dc9	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x624477bd	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x8de55196	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa1145781	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa6abd24c	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xae59d149	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc3a8b9c7	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc4b283dc	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xcbe4af46	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd2008844	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xdcb24f52	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x00e21c6c	NCR_700_detect
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x3d9cece0	NCR_700_intr
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xb7d99adf	NCR_700_release
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x42a64f15	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x588d7421	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x7bb429dd	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xf5001fd7	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x07d58a90	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x14de2a71	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x27bb5f3f	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x2d52454a	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6ef7d625	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x73265f00	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9b840c25	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa7666691	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xd6ec82a3	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xdd0be41c	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfdc461af	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0682c594	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x07d96a3a	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0845dd4b	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0da64e36	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x10bac9af	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1be25480	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1c161eee	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1e5227a1	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2a1b5db6	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2dbf952c	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3000e9c9	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x333ee52e	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x349b9ffb	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3b51bbc3	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3dfc549e	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3ecc2596	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3fd67266	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x450a624a	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x50dc8648	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x55b59132	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x57b043d4	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x693a4606	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6fcf5fbe	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x713c0746	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x721b19de	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8375c15d	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x85e65966	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8a0231e0	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8da0fc24	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ef2ee75	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x926712fd	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x93a7f069	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa91af9a3	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xadd6eb0f	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb40d8c58	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc49c251a	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5a25360	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc93552b3	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcb9fce44	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcbb5b774	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd18af4f9	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd73b07c4	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xde4d5589	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0c2731b	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0c9812b	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe15b3708	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe19b1f3a	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b341c4	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe8ab87e1	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xec11df45	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xec45ecde	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xed2239e6	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf22cac6a	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf7c0720b	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf84d20c9	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb62246a	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfc0f190d	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfeeb245b	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x1dc1034d	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xa50b108b	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xf6434bd9	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xa21fafb9	mraid_mm_adapter_app_handle
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01	mraid_mm_unregister_adp
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xfc97ad9f	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x1a54635e	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x1c538a5c	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2ed04b4f	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2f6f6f87	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x303ddd7c	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x452ed5f0	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x4c5bd271	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x619a95f3	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x61eb766e	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc5d9ba09	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe80ccc9f	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xed5d53b9	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x0765c9eb	qlogicfas408_abort
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1f55cd70	qlogicfas408_ihandl
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x23ae02af	qlogicfas408_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x3fd8cd71	qlogicfas408_detect
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x6f62c2a9	qlogicfas408_disable_ints
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x9ae5d9bf	qlogicfas408_host_reset
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xc926efee	qlogicfas408_info
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xde7623aa	qlogicfas408_biosparam
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe76b3b20	qlogicfas408_get_chip_type
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xf2b95199	qlogicfas408_setup
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x9be988a5	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xda3659a9	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1b91462b	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1db214ab	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2b58229a	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x41e11262	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x624033dd	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6a9b5336	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x876f37b5	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x89887b1f	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x95a530c6	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9769ccda	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa3e2e043	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa90c4384	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xacb55068	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc37fea8f	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcdd5d0f7	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf4d0d092	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x00258eab	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x012eafc5	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x01414589	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0559e71e	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x15f87dce	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1a43d735	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x29d4c301	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3e2feb54	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4f23cc4a	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5bf9bda2	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5f929e0b	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x603ccf1c	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x72cc2221	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x75c9ad0d	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8cc448bf	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8f1e83dc	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb786c232	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbdb12102	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc1ba66d1	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc8b5a39f	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd585fff1	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd5baf856	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd80269ab	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdcbb3571	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xddd3bccc	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe1715dda	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xec1093e5	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xef8f9680	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xefdd9e57	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x04c8fdfe	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x490f9954	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x9813a78e	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xb720067e	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xc020a99c	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x0eed62c1	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x1589e50e	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x614b2728	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x83c6875c	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xbeb786bc	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x35506689	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x940ceceb	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x0ba5573d	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x21353396	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x3c1377c6	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x4ed90943	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x6db242fe	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x7b7785b5	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xc226ea56	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xc5fbb012	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xfb48bcfe	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x02e89a6a	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x5b999a03	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2c050d8c	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3b52d2e3	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4e65689d	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x50924f0d	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x50e59f43	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x5c678988	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9ddea16d	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbf5edc8e	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc197936a	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd137d860	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xf258b939	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xfa4beecb	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xfec687c5	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x2ac61a05	cdns_reset_page_addr
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x34712074	sdw_cdns_irq
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x3bd0f15b	sdw_cdns_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x45fe5971	cdns_bus_conf
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x473a3da1	sdw_cdns_probe
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x7a4991f2	sdw_cdns_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x7a5fdeb8	sdw_cdns_pdi_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x861b8e46	cdns_xfer_msg_defer
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa76a6fcb	sdw_cdns_thread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xae28e766	cdns_xfer_msg
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xc205ad00	cdns_set_sdw_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xca7d4653	sdw_cdns_exit_reset
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xdbf43c60	sdw_cdns_config_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xf1593a85	sdw_cdns_enable_interrupt
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xff28fead	sdw_cdns_get_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x5e07cd60	sdw_intel_exit
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0xdd869f30	sdw_intel_init
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1a0c0541	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x311cb6b4	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3145a41e	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3db68475	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x47a2c8b8	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5234e530	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5cc33cc3	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x610dae60	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6918c49b	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x823c1555	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x87627bde	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x88cdc8b9	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x973f08b3	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xaa0dbe56	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xacda9aa4	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xbb2a2256	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcc9c69ab	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xd45dfd4a	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xe859dfaa	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf629d8c1	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x0526a070	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x07054114	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x11263474	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x223e5624	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x233a6f9d	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x2a0f42ab	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x36cfc466	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x41364751	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x5ed411be	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x6ff7190d	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x793db05e	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x9af0bb19	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xaa657e40	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc2923c7a	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc8fb4d5a	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xdac8424f	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xe55d9c94	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x7ee0111a	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x8ae7d594	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x02a7e375	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x12317b92	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x29b189b9	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x44e55322	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x492ec694	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x99deb66e	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb067d9a9	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc3c72d4a	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc7e35bea	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd5dd4f7e	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd88564f0	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd9658144	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdb5a218a	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf0b45eeb	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf97bac7f	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x19949846	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x7deda3c0	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x7f0b6895	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x914552e6	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xb31ab316	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xc743d19f	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd05c639b	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xed7df7af	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xf30eb392	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0x29562993	b1pcmcia_delcard
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xaec3240e	b1pcmcia_addcard_m1
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xea620116	b1pcmcia_addcard_m2
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xf14bf8b1	b1pcmcia_addcard_b1
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x00398f3e	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x029334f9	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x02d728c5	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x09607a53	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1078fa21	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x142aab0c	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1e607e75	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x23b60060	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x25d5b0ea	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x280152f6	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x28f4efae	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x298538a7	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3840d6fe	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3c080e95	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3c9ce3c8	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3cb231c9	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3e9c524f	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x48faa52f	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5810aa0f	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5e98195b	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x641e3bfd	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x64b5d981	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6b959d3f	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6f02a337	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x72f21c1c	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x76652214	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7a8ec4eb	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7d79bade	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x85f6ebb1	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9131201e	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x926e08d5	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x92bc4deb	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x98821c05	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9ce244bc	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa2406f14	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa3d00f97	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb8fe9d67	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbc1e6886	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbc87875a	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc666cc9a	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc8f51d1a	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf5c40c7	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe7407a1b	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xea2c91f1	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xecc7c1ed	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xed050b05	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf4841427	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf89ee81e	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfa691646	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0b20b626	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0caf5314	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x142956ba	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1632ccc7	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2298d2cd	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x29043df3	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2b69cba0	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2c3f4df1	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3926c99d	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3d11b475	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x44fd1a2b	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4942e298	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5520c8ab	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x58c2816c	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5a3cdfed	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5ff9bf69	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6a619e9d	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6e556f44	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6efdd25d	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x756f02a8	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x76a23035	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x78b8484d	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8491cf72	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x864c1cbe	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x88d40b47	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8c54e3dd	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x90e0f63f	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x920ba8a5	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9668d161	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9a9f6552	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9e9eda50	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaac85a66	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xac3b86c7	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaf2de68c	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb1c78348	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb4109e37	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc49ab101	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc5ebce55	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc7e6dc83	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcac06cbf	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcb038ae7	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcd9030b3	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd01e9af3	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd270a831	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdd7bf532	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe0bb427c	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xea8891a1	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xeb4af761	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc51253	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xeee327d8	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf6eabb92	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf7918368	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf99ffe81	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x05378559	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0f7fb1f6	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x17d17067	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x19e267b9	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1a02b02c	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1fc9a5a8	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x219d477f	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x28abf8fb	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2f11f8aa	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2fcbfb1b	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x32f81dfa	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x338f6c37	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x44035822	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4c827f45	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x530aeb7a	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5a797370	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5b5e0407	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x627e6da7	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x640ffc18	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6b7ec066	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7b95e132	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x834aff46	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x89b35a40	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8ec6516c	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8fa82776	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x935bac50	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x947e1130	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9c5cae31	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa0a7a750	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa8314b14	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xab10878a	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xabdc4c37	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xaeaa8328	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb4def82e	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xba0c140b	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc6a85907	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc9c38e1b	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcf88d915	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd568dfb3	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xda570d18	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdb6846ef	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe4368b89	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xec0dd8da	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xedc73081	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x03c0739a	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x04fb6f3c	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x06d53c1e	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0893e897	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x09963c51	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x09b4e588	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0ea0bcf1	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0ef20ce7	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x12e1a41b	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1a477eae	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x21b93eda	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x223ae462	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x27a78502	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a75fda6	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b2b3b0d	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2f830580	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3157d9d9	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x31a2d8b1	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x34d85949	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x35d1f2f5	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b2a65cd	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b4abd2e	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b6efc2c	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x41e74349	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x48bfba96	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4c9ca8e9	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4fbed864	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x506f61f4	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x51008d6a	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x530cec1e	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x540a7ee1	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x659ec51d	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6a6b0c70	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6f339b22	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a570f5c	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7c73c072	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7e31a030	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7e58ce4f	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x81703db3	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x864dedb0	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8709dc6f	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8745043e	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x89554caa	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8a301f84	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b69f0b6	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9914733c	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9c0e7068	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9ea00fe7	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa2d74ba9	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xad76b156	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaf937bf3	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb23b0ff7	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb2f394ba	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb61aa8db	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb820cd2e	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbf4e27ad	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbfa63ddf	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc125d46f	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc130efac	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc8654b73	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce674a24	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd8a9f7c6	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xde8dc0da	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe3e2a8f4	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe7b377df	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf00b7470	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf15666c2	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf434d8f3	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf70a21e0	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfb0231a8	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfe2169e1	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x111eefed	acpi_parse_art
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x1887763e	acpi_thermal_rel_misc_device_add
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x86c998e6	acpi_thermal_rel_misc_device_remove
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d	acpi_parse_trt
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xa17af183	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x6f9afb78	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x10b63b1b	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x1dc514b0	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3a31b4f2	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x45913c4f	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5cedb619	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x6b7c9603	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x851063ed	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb2b6f19d	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xbf4436ad	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xed49d570	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xf3039641	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xf7dc42f3	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xfbf06aea	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xfc38a95d	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x833a6c20	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x9ddbaabd	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x022f8339	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0ad479ee	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0b856fef	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x170f356a	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x390016a2	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x5c8398b0	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x6b3e358c	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x86118b74	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa667547c	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xafb9007b	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd0347a55	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe7688693	mdev_register_device
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x15d04962	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xf48cc8eb	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x0912659c	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x1b71e6cc	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x4e9134f9	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x8dccc57b	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x192f1cf7	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x277b5a62	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x2813b25f	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x3bab7598	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x6c85e84e	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c337c2	svga_wcrt_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c97d2a	svga_match_format
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xa554c51e	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd88591ae	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x090cfde8	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x92694abb	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0xf2059cda	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xab4bfdfa	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x83f1e86b	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x0904b86f	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x14be8d9e	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x214c780e	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3f3ffba6	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x7eba6e79	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xce0f8dde	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xe55e1c5e	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x63e5e78a	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x154f8661	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x0f4b1624	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x62a1ce7a	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x7060be8a	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x9ca1d488	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x15861a44	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x238401da	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x1c2be096	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x3068081c	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x47411304	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x603849b0	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xe514c1ff	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x0e025964	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0x3037658e	sis_malloc
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0xfe963115	sis_free
+EXPORT_SYMBOL	 drivers/video/vgastate 0x686de290	restore_vga
+EXPORT_SYMBOL	 drivers/video/vgastate 0xe7a2620e	save_vga
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x72ed93c1	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xc00d5adf	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x14498c41	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xe02d4d3d	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/wire 0x30fffb2b	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xe1056a57	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xecb8cf3b	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xfecf2b3f	w1_unregister_family
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x04e133fc	iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x75bec08d	iTCO_vendor_pre_stop
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xc8930f32	iTCO_vendor_pre_start
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xed2a3373	iTCO_vendorsupport
+EXPORT_SYMBOL	 fs/fscache/fscache 0x05951b40	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x19211914	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2390788d	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x24e350ac	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2569f468	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2603ecfb	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x295f2ee1	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x296d72fc	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x307fa8ca	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x322d352c	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x326219fc	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x385c5ede	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x496861be	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5432461d	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x54a3c89e	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x56e789bc	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5b357c45	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5d66186f	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6a67e266	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6ab6895c	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x83236b57	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x94a91050	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa2e48075	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa6980240	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaa43f685	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb1368549	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb189edb4	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbe5400e5	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbf025197	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc4b30161	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0xca4159f5	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd08c6be8	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe17d7302	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf050d594	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf3c24f46	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf46c1fba	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf676ed9a	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf681819e	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xfb895f33	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x4702e570	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x5d1b3964	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xbd470762	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xc4a039cd	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xd6099fd8	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xdc8f1e41	qtree_write_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x524d1b46	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x8f5b8233	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x05ab5370	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x5da8f88c	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x8ebe03a0	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x92e13c44	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xcbbb8c2b	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe0b7912c	lowpan_nhc_del
+EXPORT_SYMBOL	 net/802/p8022 0x25ca3829	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xbe30c38f	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x1e1dfe51	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xf97d6d4b	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0fedcfdb	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x1c3bd03c	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x1f1ff243	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x2bf3ad6d	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x31704935	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x334584a0	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x38a1fb09	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x43b740c5	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x470a9978	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x49dfad9f	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x4fa3a31a	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x5e15f80d	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x5efd82c1	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x656ca72a	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x66042825	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x6ad80ce0	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x6b983cd6	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x6e646cb3	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x7107bd7a	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x783427d1	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x7a885b01	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x8b164715	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9d2042e5	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0xb5d461cd	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xbad307f2	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0xbe233dda	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xc0af8134	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xc10143ad	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xc30c77ce	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xc5febf2d	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xcc9796c2	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd710a98c	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xd9e9b94f	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xddb8e2b6	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xe463ad95	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe67ed5c7	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xeea780ea	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xf1b8d1c5	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xf781499d	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xfd71870c	p9_client_write
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x07f4b6ef	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x3d1aeec9	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x46c34a48	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xc3b881ab	atrtr_get_dev
+EXPORT_SYMBOL	 net/atm/atm 0x12dc1095	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x2d4f4829	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x3712a261	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x50829f5b	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x53083328	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x8b153fe6	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xab56125e	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xc439b2fd	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xccfa88dc	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xd7448c17	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0xe0a876cf	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xec7a5581	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xf70086e0	atm_init_aal5
+EXPORT_SYMBOL	 net/ax25/ax25 0x0a279d5b	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x6e774ad5	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x71f40325	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0x76df430e	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x88f99b2b	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x8b23a4ce	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd1e53e46	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xf28fd882	ax25_listen_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x035b58b5	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x03d9eb80	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0615bb4c	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x08dfd3b2	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x10362917	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x120b458f	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x129792ba	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x13d8d26f	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x175ae217	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1ea25d5a	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1eae3421	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x20a34bd3	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x22272586	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x222ce1de	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x32095a3d	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x360a2fc5	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3a1c5d5d	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3bffd25c	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3d1a7b63	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x47dd782d	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4986ea1a	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4af6cf45	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4b4ecac5	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4ff33716	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x65f97d2d	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6b73f627	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6c10279e	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8212b33c	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x877bb54c	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8b3823e0	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x937fe883	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9ba7424c	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9f72fb7a	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9fcbc024	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc002d91a	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc33da912	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc50745b4	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc50a0329	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdb377de1	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe342d687	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe3a29272	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe5629cfd	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xebbfa1ba	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe2b871d	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x1858d691	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x1bc18ae3	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x1d89faa4	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xb59cb963	ebt_register_table
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x19683611	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x3116f995	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xbb14ea3d	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0xd6827e15	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0xeb2e78f9	caif_enroll_dev
+EXPORT_SYMBOL	 net/can/can 0x00fa6d41	can_send
+EXPORT_SYMBOL	 net/can/can 0x41c6aeae	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x6bcfee63	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0x73d5e0a4	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0xae16f4ba	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0xcc45de19	can_sock_destruct
+EXPORT_SYMBOL	 net/ceph/libceph 0x024aa454	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x02d0d589	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x0380df6f	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x0574c744	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x08bf1af8	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x09734e9f	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x12c5920b	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x131fd1b0	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x149e6240	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x157aa4d8	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x1684714e	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x169a7768	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x1ea02ed2	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x1ece5e0b	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x22e3dba5	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x281ce293	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2abb1807	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x30a8a8f8	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x3125fd96	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x3684101a	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x386a624e	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3927b537	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b59d3cf	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3dd5723a	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x3ea5f487	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f0860b8	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f3e9e0e	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f87131d	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x403f39ad	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x41e9591a	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x4310263e	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x43f10127	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x441dc1bd	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x48f6b733	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x52e3d6cb	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x58a228c3	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x58e61669	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5fd36831	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x64e69a61	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x67ff5a06	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x69c42226	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d15fdcb	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d1aa41b	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x76fe2d9e	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7922d2de	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x7cfc11ff	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7fd44e77	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x87160cd8	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x88218508	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e976a01	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x8fc813a6	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x900a3e75	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x906a9ca4	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x9143d8ef	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9212dcc1	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x96b94588	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bc6b539	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bf18373	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9e172db3	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fbba67f	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa2b50a49	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa6b243c5	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xa97ec4c0	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb0b921da	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xb0dcf70d	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb3b4a77	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc3847f28	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xc613e2d1	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xc75fef38	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xc77c063b	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xc8b9b6b6	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xc8c08161	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xc8ec1583	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0xc9b2ff88	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xccbdd25c	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0xccef0da8	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xcd94acaa	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xcf13fc9e	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xcf5e5eca	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd1f78646	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7b3b7ce	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7f08a5f	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xdc38334f	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xdc50bbdd	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf87d5b1	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2d11bdc	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xe350e83f	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xe52c7f7e	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xe99cfa0c	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xefa08a6c	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce3c3b	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce991c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf0d36d8a	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xf279c71f	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xf3f6fb73	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf467edb3	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xf52eb789	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xf7e983a2	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8a8ffa9	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8a98adf	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb1483dc	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xfbe67e88	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0xffc6c255	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x8fe592ef	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xc12cc762	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x65e5b862	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xe680fd25	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x68c3c485	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xafd2b118	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xc77145c9	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xd50e6e77	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xd95f2a94	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xfa07189d	wpan_phy_free
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xe455a457	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xff5b59db	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/gre 0xa4b71d51	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x31179614	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xd8494c3f	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xe062909a	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xe3f96e3d	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x36ebdef5	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x5777b564	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x91309d3f	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xca8acc0e	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x09cf2d1e	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x7bbcc80a	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xe9febaf3	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x5a1da8e7	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xd05aac03	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x5ed8118d	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x22ae4916	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x2dbb69c1	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x3a347e81	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x47941884	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x65e5c340	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xaed6d9be	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd3c4805b	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdd3e8195	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xfd8a1af1	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x08cf3b6d	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x378fca7a	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xfe5da52a	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x2ef781d8	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xa6101de3	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xa38c93f6	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xef03d9f2	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x4c265798	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xdec83d45	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x8a862722	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x02f90b76	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x054d9eae	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x0f61de69	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x4a3f9725	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0xa1c2d058	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xba4df104	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0xc0663914	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xe5e22594	lapb_disconnect_request
+EXPORT_SYMBOL	 net/llc/llc 0x2564dac1	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x5d7c15d9	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x87ae555e	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0xbf91b258	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xcabb9b25	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0xd5e1ccec	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xf3dec37f	llc_set_station_handler
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x002d56f7	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x025af57d	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x04346abf	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0510e07e	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x08d29ccd	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0c7fd658	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0f1fc975	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x12c571e6	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x13e6c35d	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14bc6852	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x17d55fef	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x18514b5a	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1a258953	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1dd2f874	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x229df4c4	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x25063140	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x262d7a30	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2cfc814b	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x30899eda	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x30ec2df6	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x34279e79	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x356526e6	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3d43383f	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3ef4e64a	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f01f40b	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3f805810	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x46f42b4e	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x48d2edf2	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4947be54	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4a706adf	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4da0ddfa	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x53e4bd5e	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x565e16f8	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x580608c4	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5bae5834	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5c045c5e	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x641cc83a	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x68f0a2db	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x690ab95c	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6c6848dc	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x71fa3d5d	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x79ea94d4	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7bab9e2a	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8327e54c	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x83c39a02	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x89e4d5a2	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8c95219d	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8f68bd46	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x91604b81	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x92dd1ddf	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x97b9e5f5	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x99bb50d2	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9d061406	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9ee192b2	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9f3c4470	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa1a679b4	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa313d473	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa966e47f	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xad9bdf95	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xae2ff7d3	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xafc1ef8e	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb30b1e3c	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3c143a0	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb5695992	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc068085a	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc0b17a71	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc2106753	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc2505e67	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc572ff80	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcb14128d	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xccb9cf4a	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcd2f16c0	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf4cba46	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd1f30fb2	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd2ebc7d8	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd4fad737	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd698c9bb	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd6cf5fd9	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd7f9f13a	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe3e43c2f	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe7314e24	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xea17edea	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeaadae70	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xed27b465	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xedc65976	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf0e338be	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf32c9ab7	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf3626cd9	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf779da7b	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfd8fdfa4	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfec96921	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xffa9ab84	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x3325ab72	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x463ee52e	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x49a15b21	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x4bd42cab	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x77030518	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb0d8e311	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xe5a0a84b	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf4c90e8d	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x02bce60f	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x08c5ab8b	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x148bc165	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x473600be	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x596d9aea	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x66e60a5a	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x6c637d47	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x76134884	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x7f681226	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c77dc98	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xab7e922a	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc999b552	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xce1273b0	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xcf62cc26	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf16d0618	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x19b40974	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xa678bed1	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x53483a28	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x6fdaf269	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xccc9b21b	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xccf633fc	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xe79e754f	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x02dcd390	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x16119099	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3a546aab	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x439edfb6	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5551bf4f	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x62f7ce6d	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7d597b03	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xbaf49703	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd24697c4	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0cc6feec	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x22b2703f	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x34289491	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x39ef6221	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x40540f38	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x4f6563c7	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6244118c	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6869a081	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7c86b82d	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8a0b5497	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x91a2e964	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9cccff60	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9ebd51f3	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb1a335b5	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb8434f2f	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xcb0ab884	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xda56775f	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xeb273c25	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf2d1efd8	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf7b41118	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xfb89b84e	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x035d310c	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x07253bdb	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x08e2012b	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1fd41b0c	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2f7bdeee	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3086f202	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x369bba2c	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3b56f70f	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x401a8ead	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x57360bd8	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x62ee4e35	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6ae6181d	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7aa2457d	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7d98035f	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x80932b88	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x821321da	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8627d88f	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x873d204a	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8e425cba	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x96e1e208	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9b64b9c0	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xaaba7259	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc7924864	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf3cdbe7d	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf458b7f9	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf7a655ea	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf859c4b9	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf9fd9ddc	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfa3a8bc8	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nfc 0x133b0474	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x1f8f75f3	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0x240eeb53	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x30782b47	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x318dff2a	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x4295bd05	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x4ef5ba1f	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x4f722e99	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x7240fdfb	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x85eba559	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x8fb9ea7e	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x95d07370	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x98157c54	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0xa3601ca1	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0xa93dbdc3	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xad3e97bd	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xafb7a021	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xb63c4ea7	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xbdf5f74d	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xc45ed3f1	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xeb18bbde	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0xec351e08	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xf0cd5b11	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xf43d630e	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xf806d07f	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x1a169a5a	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x8432555d	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xb3fd2cae	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xce996596	nfc_digital_free_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x00aaf61a	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0x043a0bd8	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x67c87ba6	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x729244bc	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x92d38165	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x9720753f	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xa7629dca	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xf5e29b25	phonet_proto_unregister
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x05ee0a04	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x15fec9a4	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1aa88eee	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1d75c22b	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x20d73b74	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2a641ff8	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2da5f726	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3a9b22ab	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3ae8e087	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3cf15fc6	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x49a8a53f	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x80288dde	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x902476e3	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x9090e2b4	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xaf51ceac	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xcd0c91b1	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd88150f9	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/sctp/sctp 0x54956010	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x85ee42a2	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xabef9c8e	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xf4f93b9b	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x2396c2f5	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x98dcc514	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xdd8b66fe	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x214f5a11	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0x3351d4f5	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0x3cf93d00	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xb1b877bb	tipc_dump_done
+EXPORT_SYMBOL	 net/tls/tls 0x20daaafc	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0x736f2f95	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0xefb3b701	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x6df02894	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0xe062c989	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0538a9f2	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x06e58a21	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x06ebdc02	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x08f7efc7	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0c3fd773	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x110498f9	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1130319c	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1208042e	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x16cec70b	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x24cfa70b	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2b1662a5	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c43f86b	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2f52ad5b	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x358d4c0c	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x35f66754	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x37daa2d5	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3832267a	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3988e4a7	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x39a930a8	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3a16e337	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3d29a40d	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x40b7976d	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x452ca4d6	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4a2a9fc3	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5554b28b	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5f419eb1	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5fc181cd	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x603ef9ec	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x60f428b8	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63207d34	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63d5bdc4	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63f4b612	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x68025e0e	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x68e3a10e	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69214cf5	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6b2b7ce6	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72588907	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7264fe4d	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72adec76	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72e9a598	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x73883f4e	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x76204703	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7b290863	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7e6f48f0	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x81b9cef8	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x830788a2	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x83788ace	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x862006ec	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x86d5fd90	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x892890e3	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b9e8e97	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9089961b	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9187b700	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93213204	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x979c2366	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9951d0f2	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9a4f95b2	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9bcbaa0c	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f37f08e	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa229aad0	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa331049d	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa470ea44	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa794f4be	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa89b756d	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xace2b537	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xad4ee239	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1af6a9f	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1cf0dda	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb46e2cf3	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4cecb07	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb6ce522e	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xba8c0350	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbaa9769e	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbc3e8445	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbf43dcee	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc76beefa	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8a1c229	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xca93c3ba	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdb452bd3	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdd470a78	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xde6377a0	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdfd39223	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe6369d50	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeaae4e4c	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xec3e85ef	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf422571a	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf56cbc50	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5b0ea72	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf76dd4fa	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf7ceec11	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf95b022f	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfe26b8b5	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/lib80211 0x018105a2	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x0cea9444	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x12029e1a	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0x5858ed48	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x5bb71f2c	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xd2fed53b	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 sound/ac97_bus 0x625e0470	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0xd42e4afb	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x53b0c442	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x760704d1	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x89541f63	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xc1b24a72	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0xa5487bb8	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x09c25fc3	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x0f49fbaf	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0x161908ca	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x1674f45d	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1c61fb20	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x27d53a86	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x32b4af9f	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x33d17fcc	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3a4f80df	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4c6c5652	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x4e606f34	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x533e6986	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0x54e2d325	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0x5bd455b5	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x5f5033be	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0x6078a0f3	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x631456d8	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0x65f9a3d8	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x6835ea61	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0x686c6ad7	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0x68ec4fe8	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x7600bc4b	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x785f7d8e	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0x7c05055c	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0x7cd36b22	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x7d0562a5	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x8112aaf4	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x8995de84	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x9b49ae5b	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa243e6e2	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0xa9a4ca79	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0xacf335cd	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0xb02b9796	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0xb2483214	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xc2b13eea	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0xc4bc55fd	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xcb7a850c	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0xd1616fe0	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xd616b7c9	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xd8e78c09	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0xe46a3a8d	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0xe7f2ea71	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0xe91bf9fa	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0xf733ded7	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xf79ec920	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0xfc6ff2a7	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xfe4c0e7e	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x2b1d1b9d	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x06999e64	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0aee942a	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x17ab439b	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1dd7a697	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1ea7cc5e	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x251c33dd	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2997aa9f	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2a4b6b94	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3725a238	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3bd512a3	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x473e8fb7	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4aa550fa	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x59023c7c	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6071becc	snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68297e38	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6a52d34a	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6c97e23f	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6d1ee959	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6d44df96	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x724e42c3	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x74333db2	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x75870b9a	snd_sgbuf_get_chunk_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7aad77a7	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7b0fe0be	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x803b4d7a	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8bec1563	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94f8fd6d	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x95e4e79d	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9840ee1e	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa46908dc	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa5e1ed62	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb65f8dd1	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbaf6e2e2	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xbcb7dadf	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc249fa83	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcd7dbf9f	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcee3ab0a	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xdacd8d36	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xde7c6105	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe13114e1	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe2155fbe	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf11feb0a	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf1e3ba3f	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfea527fe	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff3a105d	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0e373b50	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x2075415d	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x26df05ce	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x307a7725	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x395b4fc4	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x3ee30cfb	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4bd52286	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4e1cfb6c	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x7d4e4fd3	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x841a203c	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x85da48b8	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x89f6b016	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x8e8860b2	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x95462451	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x96575c0b	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa2bc3f15	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa33d2d95	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xb0e0a51a	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xccf70061	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xda9e530b	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0xe85be970	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x13618e9a	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x15e4b588	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x2625631b	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0x434f47e0	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x562c7299	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x57e10364	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x61ced233	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0x6d473960	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0x7525502b	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x80303b52	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x9767829e	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xb3a11f69	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0xd626f15f	snd_timer_resolution
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x2d8d9f98	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x11c4d811	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x161c9b23	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x515711ad	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x632ff02a	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8a9a4506	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x943f5497	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xa5e7c7c1	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xade158b1	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xedcfacca	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x437ecd06	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x5aa04df0	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x716b1988	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x8e396705	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x99fbc762	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xac9b0ffd	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xcf80532d	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf9ba3bef	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xfb20c1b0	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08dee731	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x21cba64e	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2df91ad9	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x31602347	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x438a8ea2	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x59ef88a1	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5cb51b6a	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x68e146f0	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x71fd5b86	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x73c89644	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7dfd1af2	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x86c9c68a	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x89318232	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8a0e2097	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa178fc0c	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa19e0e60	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa4e7afe5	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa5b33dfd	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xab662e55	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb22e5719	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xba1b41a4	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbbff7d24	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc5cb04f2	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc8524a90	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc8cbe848	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd0e1825b	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd2536b27	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe03ee007	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeabff3c7	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf1dbf2b5	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf8c2af41	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xfea9e660	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x48a8e4cc	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x8134aa46	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x197e001f	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x1f7981f5	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x45d9ebd9	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x4d739b72	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x90d87d9e	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xbb00a9f2	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xd40c2ba5	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xfd874987	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x29ca3927	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x7709e03a	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xb4a395a8	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xb4bf0af3	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xee79dcf8	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf2677d57	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x7c274ad0	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x9f4b6c35	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xac691d54	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xb155bb2c	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x1c756d8f	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x98f783f5	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x2e0194bc	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x33be9175	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x35f5e51d	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x5437e6a5	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xf8f4127b	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xfaa1757e	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x1dbf365a	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x4148ba02	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x6c840577	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x9c6f8620	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xbb5677d3	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xf1816a3f	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x1947892e	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x554c76eb	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x67c049bd	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x9759354b	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x9bce586a	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xac75ef6b	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xb4b33c1f	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xbbb83cae	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xcb097360	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xe4512008	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x0af69b3d	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3c3be56b	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3db6e013	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3fa7f16c	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x4a3f348f	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x63fb2eb6	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x69f5d52b	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x88fd8fd3	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x8df3c5d1	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x8fcfc2c9	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x96ef4575	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb3e11049	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xbbbacf40	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc04b3df6	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc8cfa3dc	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd2cb0b4b	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xeb48981e	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/asihpi/snd-asihpi 0x4bef4b5b	hpi_send_recv
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x3a47879f	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x4dcd8289	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x778d0881	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x81bc85e6	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x84a0422a	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xa0aeb389	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xa465dfa8	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xb76d6915	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xf643a93b	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x21a6e27f	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6b2c9704	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb0925f1a	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x030295a7	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x03472cec	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0b7967fd	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x160e4c81	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x351b7b5b	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x35e4e190	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f95978d	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x49a468ac	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x60c46c40	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8f60c8a7	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x91eccde9	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x96dd0a24	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x983d91ec	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb42e763f	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb80f6a99	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbc1b8888	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xc63ab40b	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xcbdfb7ca	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xcc2c76ee	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdc6793bf	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xfbc4d2ae	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x06cb6980	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x30091351	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x7379e47e	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x99cdb76c	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xaa883a9d	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x1861ed5d	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xbfb94f44	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x13740b3c	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x45bd4628	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x05c70b13	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x9cf07363	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xe585bc14	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0xd851b470	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x26129be3	sof_tng_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x5e25cf8d	cht_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8639b9f0	tng_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xaabb51a4	byt_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xb6fee6de	sof_cht_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xbbfd713a	sof_byt_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x26daf71a	hda_codec_i915_exit
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x51b25a84	hda_codec_jack_check
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x5a0abfb2	hda_codec_i915_init
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x65aeb405	hda_codec_jack_wake_enable
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x90ed207c	hda_codec_i915_put
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x966be806	hda_codec_probe_bus
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x9915fe0f	hda_codec_i915_get
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x3aab5312	sof_cnl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x4f6fb3fc	sof_apl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x5b5be595	apl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x61cf31b7	icl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x703e1716	tgl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xacf31f39	ehl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xf4d48b52	cnl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x1d56a1fc	intel_ipc_msg_data
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xae96dca6	intel_pcm_close
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xcfee4168	intel_ipc_pcm_params
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xf86607e9	intel_pcm_open
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x04548e90	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0b8fc1f6	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0f213de8	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x283226bf	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2a0bbf4a	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2f519196	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x300cd45e	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x321270ec	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3989a1e9	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3b63b73d	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x422b65e6	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x424f638f	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4315dfc9	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x43e0f5eb	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x45b5a4e2	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4b363f53	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4b3c5a04	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4e3a4a6f	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x52ee2bb0	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5d5068c5	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a30a143	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6c46953a	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x75d143e9	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7f430f82	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8183d1a5	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8a611170	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x925d2155	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x96cacb4d	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9a7fe49e	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9de47b42	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9df3486d	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa331ba72	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa9faf8b5	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb17935b5	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb21b2ee1	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb5562e8e	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb7646b6d	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb86f6659	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbb343d2f	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbbd01d36	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbe5cfa12	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc114516c	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc7e28918	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd3f7131f	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd6f25e15	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfe7e6c95	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/xtensa/snd-sof-xtensa-dsp 0x7146c344	sof_xtensa_arch_ops
+EXPORT_SYMBOL	 sound/soundcore 0x6ec074a6	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x73c879fe	sound_class
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xe4ceae5b	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xf9f927b2	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0xfadc6cd6	register_sound_special_device
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x35dcabaf	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x360679e9	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x5c4c4ef4	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x92c98834	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xcfcf40be	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xe424674d	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x293ac667	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x34ac95ae	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x48f920c4	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x7d95566f	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x85659341	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97bb24f2	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9db98086	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xe2935f8c	snd_util_memhdr_free
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbd590e28	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x0664c80f	ssd_get_temperature
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x14c773fa	ssd_bm_status
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x2a1af18c	ssd_set_otprotect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x3b75eb26	ssd_set_wmode
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x52d141c4	ssd_register_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x5cbf0191	ssd_get_label
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x7d84f9d4	ssd_get_pciaddr
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x7e982a67	ssd_submit_pbio
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xc7b5a91f	ssd_reset
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xdcb987d6	ssd_unregister_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xf4349aa0	ssd_get_version
+EXPORT_SYMBOL	 vmlinux 0x000adab0	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x0029ad06	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x002cc505	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x0051254e	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x00791039	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x009d23ed	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x00a4b044	amd_iommu_deactivate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0x00b9ed7c	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x00c382c4	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00f37d34	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x00fee253	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01021828	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x01084b84	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x011d435f	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x0136fee8	nla_append
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x0153f3a4	vga_switcheroo_register_audio_client
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01637657	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x01753b25	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x01786c81	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01a0e71e	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x01a2ede0	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x01aeedc1	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01d010fb	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x01f6e643	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020bcd11	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0214d731	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x0220540f	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x0220e68f	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x022ec59e	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x023d1b90	wrmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0259a5bc	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x02695369	send_sig
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x027af222	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x027ff92f	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02ab1991	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02b9f953	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x02c656b6	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL	 vmlinux 0x02ceace6	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f602d0	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x0302dcfc	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x031feaaf	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0331d367	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x034dcd11	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x034fba9d	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x03581f94	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x035c26e0	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037ebdc0	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x039f3131	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x03a6e085	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x03bae0ba	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x03c85331	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x03db0b9d	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x0403ef04	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x042233bf	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x043128e7	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x0436c11b	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x043cff82	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x04670423	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x04739925	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x048dcb6c	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x04bbff05	sock_register
+EXPORT_SYMBOL	 vmlinux 0x04c62fd7	__memset
+EXPORT_SYMBOL	 vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0x04df2f9f	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04eada1b	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x0504e895	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x0524c6d5	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x052df16f	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x053eb078	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x0540ee6f	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x05427941	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x05494c61	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x055cc18a	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x0572b4d6	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x0578c3d4	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x0578f063	skb_append
+EXPORT_SYMBOL	 vmlinux 0x05826f1e	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05b8d241	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x05bd8c33	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x05ccd5c4	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x05d63fd6	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x05ee7494	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x05fab892	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x06052f8d	__memmove
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0631494b	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x064e7bd2	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x067125cc	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x067bfe69	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x068d7738	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x06a56dfc	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06a9fc78	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x06aa853a	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x06ac79a2	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x06bc2dd1	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06d05062	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x06dab57b	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x06fb5ac3	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x071c2092	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x07307c0d	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x073a85b1	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x07472d1d	build_skb
+EXPORT_SYMBOL	 vmlinux 0x074dbc9c	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x07577d92	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x07579c36	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x07a5eb37	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07b99918	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x07c41816	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x07c8577c	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x07ca9fa8	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07cd6007	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07d7c7b3	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x07f04d67	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0803eca6	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x0811afbe	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x081a3199	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08303ac5	x86_match_cpu
+EXPORT_SYMBOL	 vmlinux 0x083c5457	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0858aa26	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x085b98f9	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x086ed32d	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x089adcbd	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x08a5428a	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x08b418c6	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x08bce791	dqput
+EXPORT_SYMBOL	 vmlinux 0x08c15a48	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x08c76b99	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x08f4ab6b	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x08f73e44	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x08fa6ab4	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x090ba3ff	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x09182b2d	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x09182c84	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x09210396	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x09397b87	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x093a219c	ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x09414fa5	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x094442d4	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x0944c43f	node_states
+EXPORT_SYMBOL	 vmlinux 0x09459f79	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x094f97ab	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x0957c0ce	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x09591325	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x096ec0be	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x09801ed0	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x098580da	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09a87df3	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09e2b87a	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x09e44788	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x09ed5232	d_add
+EXPORT_SYMBOL	 vmlinux 0x09f5af94	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a04e7c0	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x0a0afe91	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x0a0dff93	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2d1619	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x0a410fdc	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x0a58a765	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x0a60f97e	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a82b1f0	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x0a95fc5b	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0aad2ca5	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0add2785	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0afd2045	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x0b053cec	native_write_cr4
+EXPORT_SYMBOL	 vmlinux 0x0b05ba0a	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x0b102ba1	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b1ddf96	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x0b241933	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b2d919a	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x0b4f7289	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x0b670697	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b9372a2	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x0b96fcbf	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x0bae40fd	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bc94bd0	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x0bd92d18	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x0bdefd48	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x0c026b43	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x0c088c4c	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c1f4378	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c276871	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x0c4b56a7	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0c5714a1	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x0c68ba18	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c81022d	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x0c842c94	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x0c8e603d	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x0cafa476	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cbf20fe	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cc7de6b	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0cdac446	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x0ce866ce	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x0cef3036	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x0cfb3ef7	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d2e9667	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x0d4a88cf	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d71bff2	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x0d76b9bb	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x0da3a98e	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x0dad5e06	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x0dc0e7c4	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x0ddbbaca	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x0de31e25	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x0dff3f48	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x0e016ebb	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x0e05f336	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e23b37f	alloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x0e2fbd87	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x0e36d0db	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0e396e54	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x0e4262c6	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x0e43185c	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e7af1b4	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x0e8317a9	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x0e84bac1	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x0e9e21f8	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x0eb0c04f	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ee00289	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x0f05c7b8	__x86_indirect_thunk_r15
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f09ea49	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f52f801	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x0f53bc3b	register_netdev
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fd23e09	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0fd3176e	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd5ed97	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0ff80f59	zalloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x0ff9dc11	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x101b9776	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x102204f1	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x10291d37	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x102b741f	serio_close
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x1053b1ca	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x105cfbd9	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1068d5a4	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x10754480	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1080e755	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x10b58780	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x10c337b6	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c578c5	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x10d3b2fe	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x1113c55d	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x111c4afe	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x111d6633	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x115bab94	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x11615b67	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117039a1	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x117b8290	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x11a21641	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x11a7f8d7	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x11adac0f	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x11d650ac	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f3b2ac	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x120e46c7	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x1236cafe	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x12580cb6	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x125d3734	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x1286d8cf	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x12874135	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x1291a0d0	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x129cc3f4	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x129ea810	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12d01816	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x12d8df1d	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x12eecfc7	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12f92b95	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x13092843	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x131e97e2	mntget
+EXPORT_SYMBOL	 vmlinux 0x1322d974	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x133a4d24	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x13439be2	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x1344d7e6	acpi_enable_gpe
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134ce9ff	ex_handler_clear_fs
+EXPORT_SYMBOL	 vmlinux 0x135b7788	bio_split
+EXPORT_SYMBOL	 vmlinux 0x13629d64	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x136d296a	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x1389619c	__max_die_per_package
+EXPORT_SYMBOL	 vmlinux 0x1389a4c7	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13ba8857	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13d8dce8	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x13daed88	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x13e3031a	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x13e414fc	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x13ead9c8	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x13f08e86	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x14159918	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x141c0ac8	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x142f6639	path_put
+EXPORT_SYMBOL	 vmlinux 0x14314f43	skb_put
+EXPORT_SYMBOL	 vmlinux 0x14403f8b	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x144f46bc	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x14681eab	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x1474ee94	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x1481bfce	kset_register
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x149a39b1	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x149a634e	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x14a139a9	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x14bf34cc	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14e51256	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x14eb94c6	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x14f97187	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x1504983b	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150cdb56	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1525f164	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x1526af73	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x15432dc4	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x155453a3	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x15759e76	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x157c1a94	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x157e84b2	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x1598cbb3	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x159d2fb9	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x15a3d9df	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bd4c95	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c009cd	igrab
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15d3574e	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x15d7f502	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x15e2e26d	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x15e9fc66	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x1600a803	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1616bde1	bio_put
+EXPORT_SYMBOL	 vmlinux 0x16217728	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16301b34	wrmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x164f5fa4	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x1680c663	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x169dee28	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x16a4dd40	arp_create
+EXPORT_SYMBOL	 vmlinux 0x16a7d1d6	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x17082fc4	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x170985a2	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1717581d	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x17295a22	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x172d1924	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x173a1fd1	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x175e33fb	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x1774c5d3	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x1778904f	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x1779ffe3	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x179739ad	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x17a47bd7	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x17b518ad	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x17be497b	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x17be68ca	acpi_clear_event
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x17f62d09	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x180329d2	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x1821e4ed	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x182c9597	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x183bfca6	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x18463dca	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x184d2151	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x184fe7f3	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x185862ad	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x1858cab1	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x1872c1ba	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x187384b5	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x187a4ecd	__tracepoint_read_msr
+EXPORT_SYMBOL	 vmlinux 0x187eec99	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x18845111	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188b9d43	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189f0599	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x18b179be	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x18b469eb	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x18ccaff6	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x190365a9	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x1904ee10	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x19242e38	efi
+EXPORT_SYMBOL	 vmlinux 0x192e2062	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x19478ac6	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x196805b9	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x196a211a	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x196d7e7f	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x1982569f	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19a7484f	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c4830e	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x19c5c05f	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x19ce76b0	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x19d19231	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x19d7fa9c	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x19df99b9	acpi_finish_gpe
+EXPORT_SYMBOL	 vmlinux 0x19e90115	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x19fca9f1	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x19fd88b7	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x1a01400a	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x1a0f708f	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a1ddad2	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x1a29a383	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a4b0aa1	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x1a5c3918	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL	 vmlinux 0x1a7986ac	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x1a7adcd3	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1a9cb2ea	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1ad7433d	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x1ae5e0b4	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b05c1f7	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x1b08704f	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x1b0e6af8	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x1b1958d8	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x1b332fcf	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1b97e7d2	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bb9ad07	dev_load
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bd80400	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x1bddf5a6	mntput
+EXPORT_SYMBOL	 vmlinux 0x1be3ab62	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x1be63b22	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x1bed917f	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x1bf14cf9	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x1bf92f0a	release_sock
+EXPORT_SYMBOL	 vmlinux 0x1c012f1b	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0x1c094fb2	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x1c14666b	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c1c8b5a	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c42ddc1	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x1c44a681	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x1c4f502a	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c5e56fa	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x1c97bdcd	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x1cada2fc	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb5fcc4	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x1cbf9a3b	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x1cc5303c	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x1ccc248c	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d19f77b	physical_mask
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d21573b	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d4a2a33	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x1d68dfc6	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x1d8f45ba	single_open
+EXPORT_SYMBOL	 vmlinux 0x1db05e60	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL	 vmlinux 0x1dcbd687	__pte2cachemode_tbl
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1dea3d26	padata_start
+EXPORT_SYMBOL	 vmlinux 0x1dee25bd	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0b2612	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e1d74db	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e716972	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x1e8c2045	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x1e9b7b1b	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea24fb8	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x1ea59304	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb7a814	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x1eb850f9	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x1eb922a3	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x1ebb206b	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x1ec52f13	dput
+EXPORT_SYMBOL	 vmlinux 0x1ed8b599	__x86_indirect_thunk_r8
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ef56342	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x1ef9abeb	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x1efc84c1	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x1f118951	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x1f1e5c87	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x1f4f11a5	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x1f53448c	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x1f6e26a4	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x1fa3397f	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x1fb90930	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc0cc7c	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL	 vmlinux 0x1fc59335	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd1fa89	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x1fe5a221	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff1e10a	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x2030f515	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x203958b2	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x20421938	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x2045aa6a	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2057f45f	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x2064fa56	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x206d9225	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x208f46cd	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20a82458	vga_switcheroo_fini_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x20aa2a27	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x20ba4f3e	rdmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x20c0e85e	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20d8bf1e	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x211130c1	alloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x21296645	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x213db833	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x214b2812	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x2169f0a5	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x216dbf7b	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x2170c4b2	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x2177bd71	acpi_disable_event
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21906448	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x2191bf98	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x2192c787	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x21af8a23	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21d9a24f	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21f9e6db	vga_switcheroo_lock_ddc
+EXPORT_SYMBOL	 vmlinux 0x21f9f72f	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x2207bd00	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x22381b74	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x223f1c65	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x224b20b0	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x22646bb9	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x227b1718	tboot
+EXPORT_SYMBOL	 vmlinux 0x228eecdc	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x229484cd	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22b90774	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x22bb8281	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x22bdc9f2	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x22de4931	amd_iommu_register_ga_log_notifier
+EXPORT_SYMBOL	 vmlinux 0x22e4d87b	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x22f1eaed	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x2307b803	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x2340860e	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x2342a8e8	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x235c144f	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x2361cade	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x237751e9	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x2381ea84	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x2385d356	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x2389b3a8	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x239c564b	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x239d43a9	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x23b90faa	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x23b9c335	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c31dd5	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23da7192	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23e3ba3f	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x2408007e	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x24108b1e	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x242339e5	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x242714a4	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x243cf650	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2446292e	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246f82cd	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x247087bf	__brelse
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x247a1869	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x247fd755	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x2483361b	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x2492e41d	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x24afb74b	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x24b2eaa9	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x24c8508b	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24eacb00	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x24f40b09	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x24f98bb1	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x24fa4a41	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x24fdbb2b	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x24ff48a4	proc_create
+EXPORT_SYMBOL	 vmlinux 0x25013163	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x2504ffab	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x25075cba	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x250f5087	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x25173163	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x2529776f	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x2538cb9a	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x255a246f	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x2571cbc1	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x2576b077	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258c80e8	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x259a860c	amd_iommu_device_info
+EXPORT_SYMBOL	 vmlinux 0x25a4ad4e	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x25a573e4	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x25db1577	do_trace_write_msr
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x260d565c	dev_close
+EXPORT_SYMBOL	 vmlinux 0x2616330c	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x261e97b8	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x26382180	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263ed23b	__x86_indirect_thunk_r12
+EXPORT_SYMBOL	 vmlinux 0x26448e84	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x2647f5a4	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x2653e8ea	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x2659b9e8	update_region
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x26792e0e	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x267d6a31	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x26948d96	copy_user_enhanced_fast_string
+EXPORT_SYMBOL	 vmlinux 0x26ca7b59	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x26d24cb8	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26e7dc03	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x2704b221	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x271280fd	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x271c9d9b	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x2723df86	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x2724256b	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273bf59c	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x2753789a	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x27543262	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x27588be7	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x2765ddcf	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x276af716	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277b427d	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27830f12	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x278f7c88	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x279bcb68	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x279e2a4b	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27bea9b3	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27ce682d	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x27efc362	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x27f3a78a	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281d3c39	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x28241654	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x282f5e32	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x2843947f	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x285ec96d	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x288a668a	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x288bce26	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x289184bc	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x28c04e33	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x28c643dc	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x28d85f79	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x28dd4386	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x28e09af1	iosf_mbi_available
+EXPORT_SYMBOL	 vmlinux 0x28e7ead1	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x28e8c99a	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x28eb0ca9	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2911e7e7	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x29211e6f	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x29426445	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x296a5d19	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x29849a69	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x2986476b	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x29a4656c	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x29ad8e33	x86_hyper_type
+EXPORT_SYMBOL	 vmlinux 0x29b43def	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x29b8a409	km_report
+EXPORT_SYMBOL	 vmlinux 0x29b98b3b	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29e3a146	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x29e9db1b	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x29f32f93	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x29f64399	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x2a0a4bf3	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x2a26efa3	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x2a2ab3c2	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0x2a2d42cd	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a5a0c15	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x2a675897	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x2a6e3e1d	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x2a859ee9	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x2a97bf4b	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2ab1f273	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2ace1bc0	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x2ae04755	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x2af2af42	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x2b0f65de	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x2b31ab92	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b695141	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x2b87b7e8	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x2b8b27f6	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x2b8d452b	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x2b8fed01	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x2b9a1cbb	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba3d565	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x2ba62d15	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bc9668d	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2bdb455a	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x2be42ec5	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x2bed20f2	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x2bef37cb	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x2c0a5a68	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x2c0b8b8a	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c4aa300	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c7015e8	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x2c744cc9	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x2c74e8e3	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x2c80ce56	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x2c8255f4	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c86bf6e	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x2c9ad9e9	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x2ca9bc1d	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x2cab70de	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x2caf63d1	topology_phys_to_logical_die
+EXPORT_SYMBOL	 vmlinux 0x2cb3901e	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x2cc3b12b	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0x2cc41e11	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x2ccbafcc	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x2ccc30b3	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cde327b	current_time
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2cec6c42	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x2cedc4c5	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2d075e95	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3e0a81	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d66bd5e	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x2d757b58	intel_gmch_probe
+EXPORT_SYMBOL	 vmlinux 0x2d766acf	seq_open
+EXPORT_SYMBOL	 vmlinux 0x2d7b68a5	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x2d8ab44a	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x2d8d9a82	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d95967f	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da1f7a2	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dc0bccb	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x2dc85ea0	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0x2de2db5d	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0x2dece9c4	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e10525f	console_stop
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e25e38f	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x2e270da7	find_vma
+EXPORT_SYMBOL	 vmlinux 0x2e2ae6f2	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e31c712	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x2e3440a9	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x2e3c65bf	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e4e4f32	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x2e4f19fe	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x2e56d9c7	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x2e7091b6	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x2e70c429	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x2e775f97	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x2e9448f0	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x2ea148b3	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x2ea2c95c	__x86_indirect_thunk_rax
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2ee9a636	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f0c6dfb	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f4a6e04	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x2f4e81fe	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f81164b	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x2f8189c5	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x2f92bb1f	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x2fa620dd	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x2fcae852	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x2fe15694	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fe48235	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0x2fe8010a	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x2ff57096	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x3004ae1f	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x30133ce4	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x30194bbb	bdevname
+EXPORT_SYMBOL	 vmlinux 0x3019ace1	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x301e8a27	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x30249391	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x30469600	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x304e874b	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x305a979a	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x3064e773	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x307f8850	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x3092bd9a	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x309d0c42	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x30a2db7d	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b66356	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x30bba6af	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x30c60d88	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x30cd9fc7	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x30dc9d88	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x30de4228	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x30e628a0	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30e9ff0c	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x30f473df	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x30f8d978	inet_accept
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x312cdac2	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x312eb8d3	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x3136a74e	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x3157d817	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x3161c790	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x316e833a	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x318c912a	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x31934747	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31ae6c56	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31bc4851	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x31c5a388	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x31d14096	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x31d42ac4	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0x31e2d6ad	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x31f0fad5	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x32011465	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3218fb31	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x321b5fca	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0x32227b63	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x323148e0	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x323281bb	iput
+EXPORT_SYMBOL	 vmlinux 0x323b6c60	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x325eb4e2	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL	 vmlinux 0x326cda08	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x32724ae7	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x32881cf3	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32ce03ba	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d0b8a4	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x32fa5af8	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x32fec9ee	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x3303a22b	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x33050e01	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x3324ef3b	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL	 vmlinux 0x33294def	kern_path
+EXPORT_SYMBOL	 vmlinux 0x3355057f	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x337b5a1e	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x337bc2cd	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0x3393fdf2	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x33a3072f	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x33a8e1d6	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x33b34999	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33ba9655	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x33c3f09d	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x33d2fe20	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x33de78f0	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x33e4297f	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x33ecb55a	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x33fd9da4	acpi_get_gpe_device
+EXPORT_SYMBOL	 vmlinux 0x34094da7	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x34258b6d	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x34339698	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x34400838	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x3441445f	msrs_free
+EXPORT_SYMBOL	 vmlinux 0x344ceb51	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x347f7814	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x3489859f	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34a7a858	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x34a7acc4	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x34b6a984	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x34c2726d	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x34e55b96	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f89363	acpi_terminate_debugger
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3531afb1	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354b4a1e	acpi_ut_trace
+EXPORT_SYMBOL	 vmlinux 0x355a5e37	__module_get
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x3568dad9	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x35729825	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x358ae266	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35bf3087	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x35c3ceb8	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x35dd38f4	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x35e976f3	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x36005694	bmap
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x362586da	current_task
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x3632dd5a	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x3639371f	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3665a573	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x3698b576	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x369b9f01	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x369f619c	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x36cd4633	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x36d4b6ba	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x36dd9cfe	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x36e736c1	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x36f599ff	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x37060d66	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x370784fc	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x3722acdc	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x375cb97e	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x375da25b	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x37669270	single_release
+EXPORT_SYMBOL	 vmlinux 0x376e179c	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x37879d4d	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x378ce01c	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37a9aa42	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37ba7893	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x37badaf1	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x37be13e5	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x380c4e87	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x380f8e08	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x380faf4b	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381612e4	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x384c703e	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x388bd6e5	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x3894febc	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x389a7161	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38acb136	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x38b762c5	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x38f9b9d8	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x39081193	__max_logical_packages
+EXPORT_SYMBOL	 vmlinux 0x391053cc	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x391693a7	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x39572686	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39aa37eb	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39b5bf86	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x39c81a2f	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x39cb19fb	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x39e3c030	do_trace_read_msr
+EXPORT_SYMBOL	 vmlinux 0x39f378c3	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x39fbb488	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL	 vmlinux 0x3a12f0bd	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2d1dfa	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a6f4619	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0x3a8b201e	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x3a995935	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3abd8206	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x3ad06193	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3ae94678	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x3af675a5	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b029f48	acpi_install_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x3b0daf7a	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x3b171205	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b4bedef	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b6a2ee0	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x3b753881	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b83610f	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3bb39d50	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x3bc58d32	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x3bdb9b7b	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c14a596	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3c1845f0	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c1b1bbe	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x3c1f79d1	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x3c3ca38b	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x3c3cc08a	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c427f67	cpu_die_map
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c737a34	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c872bc6	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x3c9225db	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x3caa56d4	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x3cab1ec1	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x3cb6867b	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x3cc693be	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x3cd7243d	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce8e844	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3cf3d538	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d0eae28	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d635b7f	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x3d646b23	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x3d6abf9f	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x3d6ed6f6	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x3d760970	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0x3d7fbf14	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x3d9058a5	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x3da171f9	pci_mem_start
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3db8ad54	fd_install
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddc6c04	x86_bios_cpu_apicid
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e0cda7a	simple_link
+EXPORT_SYMBOL	 vmlinux 0x3e1686f9	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x3e1a71bf	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x3e28b575	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e38f908	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0x3e3ec43a	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x3e8794e4	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x3e8b9d3e	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e92ef69	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x3e93d83a	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x3ebc66cc	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x3ebd287e	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x3ed8d8b0	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0x3ee9c02e	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x3ee9c175	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3efeb010	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f18e3cf	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x3f1d0133	pci_map_biosrom
+EXPORT_SYMBOL	 vmlinux 0x3f2087a7	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x3f2ea713	amd_iommu_complete_ppr
+EXPORT_SYMBOL	 vmlinux 0x3f32edeb	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f58b4f5	skb_push
+EXPORT_SYMBOL	 vmlinux 0x3f5d1334	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3fad02d3	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x3fba0379	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fca0b66	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x3fd6ecc2	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x3fd74a6f	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fdaaa7e	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3ff2edea	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x400eccd1	amd_iommu_flush_page
+EXPORT_SYMBOL	 vmlinux 0x4012dbff	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x401c664a	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x402173e9	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x40229d71	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x402ed848	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x403a9bf3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x4055a920	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x4065e971	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x406c3cb5	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0x40859fee	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x408c8f64	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x408ccc45	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x40970142	seq_read
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x409cece1	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b01a76	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x40b7f14d	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x40bd81c3	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x40c2a79d	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x4101a74d	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x412ac9c3	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0x4146808e	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x41a239c3	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x41aa06ae	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x41ab24d2	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x41b537ed	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x41e58207	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x41e5bf03	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x41ed3709	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x41f6bd7f	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x41f6d90f	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0x42059c64	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x4206f8ce	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x422d1e05	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x425a5270	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x42658e75	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x427c1306	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x42839c16	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x42900a8c	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x42a6f7ba	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x42a9406c	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x42a98d95	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x42aa92b6	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42dd50ef	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x42dd84da	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x42e900a5	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43040dd2	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x4317386f	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x431c24d1	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x431d38ec	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x43310aeb	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x43478725	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x4351069c	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x4360ddaa	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x43617210	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x43778628	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x439a2550	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x43b5b544	skb_split
+EXPORT_SYMBOL	 vmlinux 0x43b9e78e	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x43c05435	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x43e9184f	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x43ebda8d	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x43eea0f6	translation_pre_enabled
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43fbea52	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x4415c83c	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x441b1009	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0x443cf772	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x44414ff2	iosf_mbi_unblock_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x444ec7b9	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x445134bb	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x447f23f5	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x448aa7ad	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x448f5714	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x44902cff	acpi_enable_event
+EXPORT_SYMBOL	 vmlinux 0x44969165	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44a60617	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x44a62cd6	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x44a96025	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL	 vmlinux 0x44bf6717	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x4507fa62	vga_switcheroo_register_handler
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x451d114c	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x45357a90	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x453d3703	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x455107e9	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x456c3bc7	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x45718f9d	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x4582f4f3	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x4594e5ec	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x45a5216c	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x45bbb860	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x45d246da	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x45dbf360	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x45e59446	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x45e8d7b5	native_write_cr0
+EXPORT_SYMBOL	 vmlinux 0x45ea7914	follow_up
+EXPORT_SYMBOL	 vmlinux 0x45f8a877	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x4603c945	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x46057dfb	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x461f4a36	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x4629334c	__preempt_count
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x4645ec39	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x46584f61	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x4675becc	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x468ab167	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46bae62d	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x46bb0f09	clk_get
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46d8b64b	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x46dac086	console_start
+EXPORT_SYMBOL	 vmlinux 0x4719f511	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x472b44df	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x4738c9b7	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x4739ab24	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x4739cb4b	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x4739fb8e	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x473ca766	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x4740b3bc	xen_arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x4742c919	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0x4750a639	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x4767d3a3	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x478a6ced	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x478b2361	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x478c6105	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x4791121d	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x479f3b7c	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x47bf4127	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x47c16982	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x47c42a22	cpu_tss_rw
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47cbe101	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x47dd6f47	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x48072120	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x480cd4af	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x480ef5ce	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x481f5b7f	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x482a3432	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x482cabd3	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x48349307	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x484761b2	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x48476bcb	intel_gtt_insert_page
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x48571b62	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x486402cd	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x48667f44	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x486f0174	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x487b5b1a	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x4880c4fd	finish_open
+EXPORT_SYMBOL	 vmlinux 0x488a4a1b	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x48912f22	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a77076	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48ab0b95	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x48b043ce	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x48b21fe4	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48beb3fb	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x48c06b58	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48d50e79	amd_iommu_register_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x48f06a8d	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0x48f4400a	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490fa7b8	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x491858da	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x4933c586	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493bb8e8	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x494d835c	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x495269ad	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x495e378d	__pv_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x49871a23	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b2de0e	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49eae1d6	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x49eb6310	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x4a10b2c0	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x4a376a58	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a478ee6	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x4a56690b	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x4a66d65b	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x4a7d49b8	iunique
+EXPORT_SYMBOL	 vmlinux 0x4a8a358a	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x4a8f0146	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9c17cb	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abd7a6c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x4aca2fca	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4af327be	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4af5499e	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b0c76f1	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x4b18b068	acpi_register_debugger
+EXPORT_SYMBOL	 vmlinux 0x4b270ec0	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x4b2e1f44	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b617ccd	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x4b6c318b	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x4b98addf	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bc0be9c	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x4bc1b91a	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4be5de25	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4c060b8d	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c388792	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x4c388ffa	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c454b5c	start_tty
+EXPORT_SYMBOL	 vmlinux 0x4c46e451	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x4c471122	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x4c586ec1	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x4c85426a	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x4c85bbd8	set_pages_uc
+EXPORT_SYMBOL	 vmlinux 0x4c87c5cc	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x4c9d28b0	phys_base
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cd5bc5e	rdmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0x4cd71c51	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x4cd7e40a	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x4ce5be2a	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x4d199ae6	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d339ae7	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x4d3c5a65	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x4d5f354e	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x4d5f9ad1	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d760048	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4d7738b4	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x4d7c8c0e	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x4d7dd8dd	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d926349	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x4d93f4d8	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x4d94843f	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da8084d	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x4da8c7c4	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x4db69bb6	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4ddb27b7	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e018765	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x4e03be9c	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x4e11e7a9	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e4a77b5	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x4e4ea3b5	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e58432e	pv_ops
+EXPORT_SYMBOL	 vmlinux 0x4e606d8c	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e69c281	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e6f90b2	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x4e74262c	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x4e9ea227	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ec5da13	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x4ee1d31a	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x4ef53cab	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x4efcbf80	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x4f083d2a	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x4f0f2d68	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f641aad	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x4f6b8890	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x4f7e095c	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x4f952040	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fcc8ad2	ex_handler_uaccess
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x4fee49d9	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x502392a3	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x50250be2	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x50472da3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x5048935d	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x50534872	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x50583dc5	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x505caeca	read_code
+EXPORT_SYMBOL	 vmlinux 0x505cd9c0	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50855976	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x50876b9c	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x508a0834	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x509187ff	dns_query
+EXPORT_SYMBOL	 vmlinux 0x509ab8d4	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x50a0d214	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c95d8f	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50cdc962	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x50d68377	arch_phys_wc_del
+EXPORT_SYMBOL	 vmlinux 0x50e8a75e	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x50f44d54	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x51047e3f	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x51054264	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x512ea752	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x513881b9	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x513a2630	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x518ebad0	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0x519674cc	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x5197f1eb	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51c69e2a	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0x51d08013	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51e159c8	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x51e9a083	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x51eeeb22	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x51f1e3d6	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x51fb4433	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x51ff6110	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x520b9bd8	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x522d37d0	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x524afd9b	amd_iommu_domain_direct_map
+EXPORT_SYMBOL	 vmlinux 0x526b8c49	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52c4e5bf	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x52caf5ff	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0x52cb9703	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x52cf22ca	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x52d29ef5	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x52d5372c	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52de689e	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL	 vmlinux 0x532ba3e8	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x532c81bc	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x5346990a	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x53569707	this_cpu_off
+EXPORT_SYMBOL	 vmlinux 0x535eefd6	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x53640930	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x537535e4	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x53774886	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x5392cf7b	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x53a9be6c	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53d25848	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x53d2cd44	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x53e879f0	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x53fdb18a	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x5416a4cd	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x54175c5f	acpi_read_bit_register
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x54290d67	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x54299b61	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0x54315c55	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x5445090e	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x544bde3b	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x545ab355	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x5462000a	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x546210c1	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x54796eaf	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x547e3344	acpi_disable
+EXPORT_SYMBOL	 vmlinux 0x549c71f4	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x54a84c90	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54aa1aed	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x54abcbdd	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54d80079	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x54d86025	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x54da6f8d	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x54ee4630	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x5503c250	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x551a19f3	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x554eab00	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x5561a29d	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x55636e8f	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x556422b3	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556cca46	x86_apple_machine
+EXPORT_SYMBOL	 vmlinux 0x557c0486	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x557f89de	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55b6abfb	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x55ccb600	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x55d94794	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55f03d7b	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x55f95e07	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x561b2411	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x56361f48	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x563b2f35	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x564039ec	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x56602271	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x567ab92c	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x5680d627	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x5683f2b9	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x56ac8770	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x56ae13f3	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x56bf804e	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x56bfa88c	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d2c5a1	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x56fefa92	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x57048a36	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x57095c2a	vga_switcheroo_get_client_state
+EXPORT_SYMBOL	 vmlinux 0x571468f1	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x572cd25b	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x57346a79	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x57358011	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x574b2c54	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x57600878	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x577b0240	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x57885773	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x57a83d62	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57d0c32d	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x57d6377e	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x57de78de	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x57e2cf05	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x57f87cc7	d_delete
+EXPORT_SYMBOL	 vmlinux 0x57fe87c7	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x580acfea	pid_task
+EXPORT_SYMBOL	 vmlinux 0x58115c7d	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582b806b	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x582bda30	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x5837d7e7	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x58385b93	md_error
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x5841d508	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x584337f7	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x587f22d7	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58a122e7	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58af8b64	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b5e025	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58be47ff	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x58c0092d	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x58cd12ed	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58e7c661	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x58edb766	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x58f3f607	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x590a1ee8	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x5919d0c7	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x593c1bac	__x86_indirect_thunk_rbx
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x596deef4	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x597f54c0	native_restore_fl
+EXPORT_SYMBOL	 vmlinux 0x598ef8ec	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x59960ada	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0x59969dd7	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x599f9906	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59a8c072	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59b639ec	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x59d4f5aa	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x59f13115	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x5a007362	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x5a07f1e0	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a217c3c	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a24c7c2	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x5a338341	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a46472f	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0x5a4c891d	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5a2271	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5a6ea4fe	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x5a89311e	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a91987d	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5aa9fffe	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x5ae9a994	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x5afb7489	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x5b01d915	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x5b12c49a	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x5b1cdeed	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x5b2b91df	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b5299e4	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b67bdf2	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x5b767736	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x5b805bba	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x5b8d670b	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b9e80c7	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x5ba39721	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x5bb57919	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x5bbe0107	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x5bca61c9	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c42f00a	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x5c59cf01	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x5c8312f5	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x5cc3594c	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x5cd3338f	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x5ce618e9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5cfb7a03	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x5d02d869	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x5d21bd98	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x5d30643d	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x5d3c8853	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x5d3e2885	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d55aef0	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x5d584dd6	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x5d6d0beb	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x5d6fab07	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x5d83f28c	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x5d95ea5f	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x5d96a893	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x5d9d5578	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x5d9d60cd	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x5dbc45b2	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x5dbe71a0	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x5ddd47e8	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x5ddf0924	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x5df81653	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e27443d	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x5e2ea444	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e41ba26	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5e543751	processors
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e70adcc	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e852ac1	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea99c92	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5eb34fea	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x5ec4ca05	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x5ecde7ad	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x5ece3615	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed0fd90	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5edb57ed	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x5edbe9e3	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x5efbed35	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f128edf	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x5f323d0e	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x5f38aad6	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x5f39c686	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5f47151d	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x5f56663b	rdmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x5f665f7b	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f8ba0d4	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x5f8dc18a	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f959646	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x5f9809cc	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x5f98bdb6	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x5fc2daa0	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fd60c90	tso_start
+EXPORT_SYMBOL	 vmlinux 0x5fd61c75	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x5ffa2a3f	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x5ffe5f7b	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x60040cd1	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x6013550b	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60218787	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x603ac37e	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x607a8683	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x6085601b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609893f1	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609c3d0a	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60d4b831	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60da799f	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x60df4d72	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x60e32878	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x6105ad82	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x6108a34e	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x611994fb	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x612478b1	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x613ebddf	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x6154226f	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6180c69a	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x6193f2de	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61b15663	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c5b82c	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x61d3a1fd	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x61d77f0e	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61fec2bc	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x62251c22	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x6226b9fa	machine_to_phys_mapping
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x626520d6	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x626b4826	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627a6034	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x628495d6	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x62b7a0a5	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x62b98ae9	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c9e6f1	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x62dff923	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x62f0ff67	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x62f7bcae	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x62fd0331	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x63037b03	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x6308ab3a	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x631efa32	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x63249ebb	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x63480be4	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x63517ba7	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x63599084	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x636257f7	get_ibs_caps
+EXPORT_SYMBOL	 vmlinux 0x636c1dbf	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x63783efd	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x637ada56	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x637dce4f	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x639af4d4	amd_iommu_rlookup_table
+EXPORT_SYMBOL	 vmlinux 0x63a3d596	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63c0e9f2	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63d94aa5	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x63e855f9	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x640ba97e	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x641a8df4	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x641cf176	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x64229141	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6442691a	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x6451a400	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x645721f2	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x64599cec	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0x64650c15	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64979799	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a52d0f	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x64a70d86	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64d6678e	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x64dc6dc1	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x650d7df3	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x65142635	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x65243ae5	vga_switcheroo_client_probe_defer
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x6536bf79	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x6538a9f4	vmap
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x65715ec7	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x6590d5b2	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a2b149	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x65a54cb6	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x65b33c70	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x65b91a2a	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x65b992ac	xen_alloc_p2m_entry
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d27068	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x65e4e22b	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0x65ec4a6a	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x65f509a7	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x65faec3e	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x6605883c	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x66074dfa	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x662cdb2a	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x663182c9	acpi_get_gpe_status
+EXPORT_SYMBOL	 vmlinux 0x6632bb37	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x6643fe68	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x664e563c	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x664ff747	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x665796ce	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6663bd03	arp_send
+EXPORT_SYMBOL	 vmlinux 0x666d7f62	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x6680dfb8	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x66861796	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x66862728	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x668ff3fc	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x6691afc6	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x66a6aa42	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66dcc694	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x670d8e09	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x670f9048	eisa_driver_register
+EXPORT_SYMBOL	 vmlinux 0x67198478	dst_release
+EXPORT_SYMBOL	 vmlinux 0x67215d2d	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x6722fe90	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6759303f	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x677a3a3e	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x679c94e0	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b39987	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67c61cd9	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x67c95861	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x67d0bbb5	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x67e6123f	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x67fe8046	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x68023ea8	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x682401bc	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x68254c41	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x682fa2bf	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x68324875	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x684fee15	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x6851664e	wrmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x688d16a9	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x68999813	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a7d681	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68b48d1b	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x68c4bbe0	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x68c8965c	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x68d0e6d4	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x68f5ce23	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x68ff934a	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x691096d8	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x6913a1cb	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x69194634	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x69378178	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x69393288	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x694328d7	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x69748bf5	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x697f1bf8	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL	 vmlinux 0x69acdf38	memcpy
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69f1d22f	bdget
+EXPORT_SYMBOL	 vmlinux 0x69f6f337	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a261b78	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x6a3f40c7	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x6a584528	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x6a58ae5e	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a63766b	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x6a70db51	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x6a76dfbf	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x6a7cbf1b	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6abbf481	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6ae0714c	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x6ae9065f	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b17d336	filp_open
+EXPORT_SYMBOL	 vmlinux 0x6b233cc2	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b3cead8	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x6b3f8006	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b6ed589	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x6b8283be	convert_art_to_tsc
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b929a49	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x6b9dd34f	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x6ba854a9	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x6baa8506	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bd019ed	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6be51f86	follow_down
+EXPORT_SYMBOL	 vmlinux 0x6beb847b	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x6bf9fcea	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6c0587ba	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c2f2575	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x6c32d411	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x6c360166	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x6c46a0a5	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x6c46cd54	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x6c4bd59c	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x6c50291c	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c670469	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x6c6a94d7	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x6c8ce9f2	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6c9e885c	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x6ca10134	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x6ca3c3ce	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cd320ec	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d03ef41	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x6d0439e4	fget
+EXPORT_SYMBOL	 vmlinux 0x6d1144e3	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d3224d9	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d359525	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x6d3a77ca	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x6d5578e6	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d649be2	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x6d700a39	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x6d71b817	get_acl
+EXPORT_SYMBOL	 vmlinux 0x6d72ef12	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x6d76aff4	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x6da72d3c	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x6db0b409	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x6dbb6231	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dc58273	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6dd55502	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6deb974d	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e052ac6	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x6e079609	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x6e1fcad9	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e3239d7	tty_name
+EXPORT_SYMBOL	 vmlinux 0x6e376902	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x6e3ce23f	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e5e9410	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x6e66b5e2	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea1f36d	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x6ea7575d	acpi_dispatch_gpe
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ec2c370	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x6ecfa705	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee31a4d	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x6f0442ec	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x6f1cf945	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x6f325af6	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f5140ad	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x6f5214a0	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x6f62ecf2	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f8ce885	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f925a9a	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x6fa5fccf	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x6fadb242	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x6fb42bef	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbafe07	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fc99ec8	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0x6fc9aa11	input_event
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x700113a0	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0x7012093f	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x701265e1	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x7025eae2	padata_free
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x70294902	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x7040fff9	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x70575ee8	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x705fc459	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x707105cb	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x70817869	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x7083948b	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x7091bdbb	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x709cd1b6	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x70aaab4f	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70be1467	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0x70cafa1a	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x70dab774	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x70e19ff8	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x70f1f838	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x710014ad	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x71186d99	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x712cadb0	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x7134a9a0	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x714ab276	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x714ad35c	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x714bdba1	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x716b7103	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x7172567c	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x718d1323	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x718f6598	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x719ed976	pci_biosrom_size
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71c336a1	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x71cad977	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x71cda482	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x71d97959	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x71e58371	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x72147ec7	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x724052fa	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x7240594e	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72524658	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x726b4010	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x726c4910	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x727d0b02	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x727d110d	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72eb05cc	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x73201bc3	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x733ac77a	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x733d07ec	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL	 vmlinux 0x735b19d7	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73a3494f	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x73c19ee0	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x73c6db30	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x73db9ce7	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x73dd54eb	irq_fpu_usable
+EXPORT_SYMBOL	 vmlinux 0x73e3924d	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x73e6a83c	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x73e7c59d	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x73f961f3	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL	 vmlinux 0x74197ccc	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x74420f35	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x7456001a	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x745904e7	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x745bf01c	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x749ff2b3	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x74a1a4b3	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74c7cc8d	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x74c9b7b5	dma_ops
+EXPORT_SYMBOL	 vmlinux 0x74cc31ab	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x74ccc89a	sock_release
+EXPORT_SYMBOL	 vmlinux 0x74ce7c10	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fcb8f1	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x7504e26c	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x750df496	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x75136132	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x751bccf5	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x7532c9a5	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x75462b38	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x754d539c	strlen
+EXPORT_SYMBOL	 vmlinux 0x7555f248	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x755f4ba3	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x75784cc8	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x75861a96	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x75943e25	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0x75b4c88a	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x75bd9146	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75c0d46e	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x75c6269a	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x75ce49b3	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75defb60	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x760c6a0b	has_capability
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x7648fc8a	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x767164b8	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x767dce4b	acpi_disable_all_gpes
+EXPORT_SYMBOL	 vmlinux 0x767ddb02	set_memory_wc
+EXPORT_SYMBOL	 vmlinux 0x767ece86	simple_open
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76a037ee	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x76b00a10	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76dc1c83	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x76e1ed5f	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x76fb08a7	amd_iommu_unregister_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x7706c920	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x770a6c2e	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x770ce4c1	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x7712cdf9	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x7721f1d9	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773dec48	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x774a987b	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x7751e90f	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x7759ee98	module_put
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x7776bbe4	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x777f5b6f	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x7787bde2	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779d25fa	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c87c26	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x77d453f0	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x77e700a1	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f773bc	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780b11ce	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x780fdfd1	intel_enable_gtt
+EXPORT_SYMBOL	 vmlinux 0x7812c047	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x78360eb4	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x784c7a64	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x785052dc	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x7853ab46	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x785bcb46	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x7878a8e2	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788c3c0e	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x78904266	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a03f3e	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78ed5811	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x79032782	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x791c46b1	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x7921f66c	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x793b3f36	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x79409517	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x79592802	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x796969c7	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x79775cd3	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79a890a2	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x79b900f1	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x79d2e8e8	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x79d82936	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x79df9633	ioremap_encrypted
+EXPORT_SYMBOL	 vmlinux 0x79e84e8d	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x79ead786	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x79ef028f	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a1e616d	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x7a28a648	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a4c668a	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0x7a75c8da	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x7a7b9a91	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x7a88da87	iosf_mbi_write
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7a9ef469	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa7c931	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x7aab6aa4	set_pages_array_uc
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7acca390	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x7acfc3ab	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7aec9089	clear_user
+EXPORT_SYMBOL	 vmlinux 0x7aff77a3	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b01dc5d	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x7b031252	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b78a255	get_super
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7b8add44	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x7b8dcc18	eisa_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x7b9198dc	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x7b91cb48	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x7b922cd2	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bba2642	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd2476	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x7bc74814	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7bcf6268	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x7bdbf44c	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x7bddf09b	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x7c08dce3	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7c15703a	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c30627a	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x7c330e4d	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c52fedf	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x7c8e2dda	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7c9fff07	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x7cab52c8	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x7cadac12	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cbc3ba6	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x7cd8d75e	page_offset_base
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce8ad25	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x7cf2bf23	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d20959c	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d628444	memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x7d7108c7	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x7da23ba1	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x7daa9907	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7dfa9125	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0a5c30	ex_handler_ext
+EXPORT_SYMBOL	 vmlinux 0x7e268aa6	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e38daa7	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0x7e40d71d	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x7e526bfa	__x86_indirect_thunk_r10
+EXPORT_SYMBOL	 vmlinux 0x7e5909b8	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x7e5a6e5c	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x7e6c14ba	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0x7e7692ef	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x7e7bcf26	acpi_map_cpu
+EXPORT_SYMBOL	 vmlinux 0x7e9df1a8	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ecf7610	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x7ed81da5	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x7ee6dab9	proto_register
+EXPORT_SYMBOL	 vmlinux 0x7eefd40c	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x7efa5bd3	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f17af6d	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f337850	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x7f37b49e	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x7f46c544	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f6a420f	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f85e741	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x7f94dae7	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x7fad483d	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x7fde991b	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe44cce	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x7ff18a83	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x8010886a	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x8018c872	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x802f012e	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x802f5f9e	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x803e0e71	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x80437b5d	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x804af87c	wrmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x8051f05c	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0x8054f0a5	amd_iommu_flush_tlb
+EXPORT_SYMBOL	 vmlinux 0x805946c2	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x806fc1fd	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x80926aa6	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x80956993	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x809b7c26	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80acd3fd	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x80b52ebc	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80dc17e6	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x80e7356f	put_disk
+EXPORT_SYMBOL	 vmlinux 0x80f042a9	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x80fd2331	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x811a5667	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x814c40a7	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815a6f16	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x816fd4df	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x81744a2f	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x81750e7c	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81846442	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81b49719	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x81ce584e	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81dc3268	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x820107a9	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x8218b588	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x821f1b10	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x822e136d	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x823c19ea	iosf_mbi_unregister_pmic_bus_access_notifier_unlocked
+EXPORT_SYMBOL	 vmlinux 0x824129c1	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x8247e97a	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x824b3475	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x82537801	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x826d566b	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x827c41ea	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x82a063c4	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0x82b4e5d5	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x82b8d77e	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x82b9deb7	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x82be5604	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82eb64b5	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x82f36010	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x82f4635d	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x833ae1cb	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x8350186a	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83a229d3	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0x83af8430	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x83bd94dd	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x83c12eb8	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x83d29a42	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x83dc3d3b	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x83e36f9f	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x840d959a	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x842109ba	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8426a4f2	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x8430b4b2	path_get
+EXPORT_SYMBOL	 vmlinux 0x843ce4ec	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x84401c0c	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x844de9c3	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x845de6da	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x846f1d75	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x848299ba	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x848b3c4e	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x848c3586	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x84c06961	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84f2eb35	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x84fb7b65	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x8503789a	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x852645a4	vga_switcheroo_register_client
+EXPORT_SYMBOL	 vmlinux 0x85393d60	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x853d3669	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x853d6159	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x8542411e	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x85af738d	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x85b21f62	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c18288	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x85cbd3d8	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fe951a	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x8621b2b9	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x862320c9	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863a96b6	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x863e75d6	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x866d3660	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x869ac8fe	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x86b5ad3d	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x86bf451d	register_console
+EXPORT_SYMBOL	 vmlinux 0x86c0c324	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x86c4f55f	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x86c7272b	iosf_mbi_read
+EXPORT_SYMBOL	 vmlinux 0x86f27420	iosf_mbi_block_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x873b7536	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x8745b62a	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x87641d15	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x877e0cb3	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x87a94193	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x87aa5ab7	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x87ac5c14	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87d2dbce	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x87dbb012	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x87e06e40	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x87efa092	logfc
+EXPORT_SYMBOL	 vmlinux 0x88047652	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x8806b38a	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x8812978b	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x881daedd	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x884eaa2b	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x886dbc58	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8882c6f9	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88afecd3	fb_is_primary_device
+EXPORT_SYMBOL	 vmlinux 0x88b4a214	get_amd_iommu
+EXPORT_SYMBOL	 vmlinux 0x88c3f12e	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88ef432a	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0x88f7ac04	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x890c0891	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x89122461	fb_class
+EXPORT_SYMBOL	 vmlinux 0x891b3cc9	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x891e22ef	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x8923cd92	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x896754c4	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x8978e611	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x8990a98f	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x89923e44	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x899d6f4e	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x89acaed9	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x89b219c5	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89efd47b	open_exec
+EXPORT_SYMBOL	 vmlinux 0x8a1016f3	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1c4416	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x8a23101b	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x8a24b9cb	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x8a35b432	sme_me_mask
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a63c3c5	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x8a67378c	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c7139	acpi_mask_gpe
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a9935cd	legacy_pic
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8a9bbaef	serio_open
+EXPORT_SYMBOL	 vmlinux 0x8aa13b41	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x8aa9bc81	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x8ab6208b	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8add4ce6	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x8af9fc1a	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b04f223	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x8b468539	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x8b53be38	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b7196ed	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b80685c	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b958147	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x8b966b63	sn_rtc_cycles_per_second
+EXPORT_SYMBOL	 vmlinux 0x8b9780f0	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bd577d0	acpi_ut_exit
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8bee0d24	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x8bf977ae	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x8bfcf828	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x8c209fb4	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x8c2362f9	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c35cb21	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x8c3c6834	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cd76f8d	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8cf56abc	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x8d294dc3	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x8d36a74e	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x8d3a42fe	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x8d47c194	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x8d489303	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5cee74	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d76a93e	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8db22efe	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0x8dc38c56	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x8dd1682b	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x8dda2325	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de914f9	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x8df7e8d6	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e1cb949	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x8e1ff83e	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e2977d1	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x8e2d1236	ex_handler_wrmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0x8e300e9d	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x8e4494d9	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x8e565add	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e663d0f	zalloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x8e727f7e	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x8e8df0b6	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x8ea14d77	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x8ec1aa3a	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x8ec9230c	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x8ed20ccc	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x8edeea4c	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f2560a2	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL	 vmlinux 0x8f3334dc	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x8f38d383	ex_handler_default
+EXPORT_SYMBOL	 vmlinux 0x8f41f2fd	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x8f43a0f7	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x8f492e16	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x8f596b91	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x8f62d8f1	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x8f66eed9	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x8f746257	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x8f80bf11	acpi_install_gpe_raw_handler
+EXPORT_SYMBOL	 vmlinux 0x8f929b2f	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fa471c3	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x8fa77172	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8fb83d48	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fc8593d	file_path
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x902557f1	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x902f97bc	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x9036160d	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x9065e416	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x907ba9d0	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x9082dafd	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x90863c22	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x9095f60c	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x90afdb21	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x90bd1322	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x90c05e02	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x90c6dff1	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x90c715b4	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x90cac696	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x90cd4ddc	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x90ce5f0b	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x90f3aa62	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x911a4017	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x913516ca	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x914d8e05	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x914fbb98	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x9153d5eb	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x915a32d7	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x916d3a81	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x916f508e	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x9176145b	acpi_install_global_event_handler
+EXPORT_SYMBOL	 vmlinux 0x917f2e7c	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a0fcf4	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x91a765db	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b65420	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x91be58ed	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x91beddd4	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x91d4f34f	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x91e469f1	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x91f090fd	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x9207a83a	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x9208825f	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x921ce2e7	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x921de12e	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x9248500b	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x92531644	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x92609f36	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x9262be61	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x926453b7	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x92711720	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x927674fd	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x92888a65	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL	 vmlinux 0x92910541	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92a51e56	acpi_debug_print_raw
+EXPORT_SYMBOL	 vmlinux 0x92a6447f	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92e2d16a	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x93069780	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x9312e043	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x935708c3	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x935db90e	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93acb4ac	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93c118ed	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0x93cbf269	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x93ebc18d	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x93f57f06	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x9417e66d	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x942e3b84	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x942ff169	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x9440f08d	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x94526148	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x9483eb20	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x948ed22b	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x949ea572	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94ca7b24	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x94f1b628	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x950bb2d8	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x951910a2	seq_path
+EXPORT_SYMBOL	 vmlinux 0x952c1b26	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x953b49e5	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955a7594	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x956eefc6	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x9585547d	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x9595b33e	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95ae0888	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x95ae97fc	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x95b7091e	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x95bbd822	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0x95dbb01f	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95e374ac	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x95e4d482	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x95f7aff6	sock_create
+EXPORT_SYMBOL	 vmlinux 0x95fcff23	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0x96050dc8	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x9612e7da	set_trace_device
+EXPORT_SYMBOL	 vmlinux 0x9613b5ad	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x961cd5b5	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x9625695d	acpi_install_gpe_block
+EXPORT_SYMBOL	 vmlinux 0x963af6f2	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x9680abaa	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x9684c8f6	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x96906c79	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96b521f4	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x96b843cc	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96daf61d	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96eab78b	iosf_mbi_modify
+EXPORT_SYMBOL	 vmlinux 0x96eed4ff	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x96f34b82	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x9718657e	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x971bfdc9	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x97357255	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x97651e6c	vmemmap_base
+EXPORT_SYMBOL	 vmlinux 0x976b5b37	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x978f9593	misc_register
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97a77d3a	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x97a7f3fc	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b0748e	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c5d016	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x97ca4528	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x97d417fa	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x97e0b9d1	amd_iommu_domain_set_gcr3
+EXPORT_SYMBOL	 vmlinux 0x9800b1d7	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x98097ebe	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x981ee31c	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x98343469	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x983c8d39	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x986fb133	vga_get
+EXPORT_SYMBOL	 vmlinux 0x9888c6b1	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x9889383c	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x988e86fd	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x9894e41f	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x98b3088f	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x98b5549b	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x98b81d60	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98ca0116	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x98d0d99f	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x98dfcc18	key_move
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98f74141	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x991392c2	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x9914c6e3	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x99289ae1	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9961f101	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x9977409c	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x997b846f	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x99838a45	notify_change
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x999f7911	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x99a12200	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x99ad5bd7	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x99bd89a6	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x99cefac0	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x99d30413	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99e0625d	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL	 vmlinux 0x9a05cdef	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a19ed29	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a403553	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a62cdbb	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x9a71b80e	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a839952	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x9a8f0513	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x9a8f3f1b	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x9aa5019c	dqget
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab30193	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x9ac8e65b	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x9ad7a582	iosf_mbi_assert_punit_acquired
+EXPORT_SYMBOL	 vmlinux 0x9adc6517	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x9b046fbd	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x9b04cfff	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x9b08faae	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b30e22e	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b47dcfa	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x9b55a186	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x9b666799	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b7d7180	seq_write
+EXPORT_SYMBOL	 vmlinux 0x9b9475b7	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x9b95ac56	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x9ba9527c	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x9bbf0d01	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x9bc18c43	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x9bd74d9a	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x9bea868f	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x9c04d211	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c2cd3d8	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x9c350c81	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x9c86a805	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x9c925bc1	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9ca112a1	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb986f2	vmalloc_base
+EXPORT_SYMBOL	 vmlinux 0x9cc606bf	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x9cc9aa97	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9cfebac4	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x9d00ab8b	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x9d01d15e	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x9d099a39	acpi_remove_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d3b8c2c	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x9d3c98d2	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x9d615cfd	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d70541a	native_save_fl
+EXPORT_SYMBOL	 vmlinux 0x9d7b081a	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x9d7e6db6	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x9d86b4d2	node_data
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9db0d044	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9ddb6c35	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x9df3026d	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x9dfd6071	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x9e0a967d	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e106974	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9e10be1a	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e1abf15	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x9e23e880	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e2855de	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x9e4987cb	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e584c49	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e64fbfe	rtc_cmos_read
+EXPORT_SYMBOL	 vmlinux 0x9e660055	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x9e683f75	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ececc2f	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x9ed2cff1	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x9ed6dbd9	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9ee306fe	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x9ee3dfc1	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x9eeb71d4	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9f11a390	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x9f2190c0	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x9f3af3fa	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f510e3e	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f67c8b7	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x9f77932e	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe3cded	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa0181a43	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xa019d476	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa0575684	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa06dc449	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa084f79f	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xa08f558e	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0a4c585	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xa0acafab	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b751a7	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xa0be6183	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0xa0c60078	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0xa0d2dfd3	__put_page
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0dd8e6b	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa1050f45	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa11930c7	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa12f65de	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xa147f77d	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xa15aff62	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa179dc7f	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xa18ae3ca	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xa18b2cbf	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xa18cfefa	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0xa192b514	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xa19a4993	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0xa1bedd72	amd_iommu_pc_get_max_counters
+EXPORT_SYMBOL	 vmlinux 0xa1bfa2ff	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1f9a134	__x86_indirect_thunk_rsi
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa20fc24d	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0xa2165e6d	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xa221682f	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xa22ab006	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xa230c720	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa249e58a	__sock_create
+EXPORT_SYMBOL	 vmlinux 0xa24f1004	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa271fc97	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xa2746aeb	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0xa277aa8e	dump_align
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2ace9fe	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa2b50ecb	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xa2b85c19	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xa2d18f4f	migrate_page
+EXPORT_SYMBOL	 vmlinux 0xa2dbd13f	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xa2f71819	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xa30c7fa3	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa340ee0a	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0xa3470f2c	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0xa36c70d1	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xa3807bef	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0xa3885f65	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0xa38f21b9	amd_iommu_update_ga
+EXPORT_SYMBOL	 vmlinux 0xa399cb1f	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xa3a29017	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xa3a4b34d	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xa3c5456f	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xa3cae315	skb_trim
+EXPORT_SYMBOL	 vmlinux 0xa3cefaa0	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0xa3e4e44c	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xa3e4f871	acpi_initialize_debugger
+EXPORT_SYMBOL	 vmlinux 0xa3e8bec6	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xa3eb5629	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4191c0b	memset_io
+EXPORT_SYMBOL	 vmlinux 0xa41feb93	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0xa42d60ad	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xa430c8c1	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xa44e16f5	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xa44ecae3	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xa47a6800	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xa48bdd1c	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xa4b71a20	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4cc969c	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4d6de68	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xa4dabbc7	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0xa4faf62a	acpi_disable_gpe
+EXPORT_SYMBOL	 vmlinux 0xa507125e	acpi_clear_gpe
+EXPORT_SYMBOL	 vmlinux 0xa50bcff0	x86_cpu_to_apicid
+EXPORT_SYMBOL	 vmlinux 0xa511166f	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0xa5133d53	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0xa518f576	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0xa524dbda	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa54264f0	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xa54f19d1	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa59522c4	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa5a88b6c	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xa5ac2565	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5aff504	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xa5c0fcaf	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0xa5c1176c	mount_single
+EXPORT_SYMBOL	 vmlinux 0xa5d31354	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xa5d70c1b	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0xa5d854d8	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa5dc2b90	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0xa5e55057	rdmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa6054679	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa62cca0f	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0xa6301f24	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0xa634afce	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0xa662c318	amd_iommu_domain_clear_gcr3
+EXPORT_SYMBOL	 vmlinux 0xa67a71d8	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa689370e	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xa68aa814	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0xa6aaefc1	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xa6df0211	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xa6e89e6a	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xa6ec915b	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0xa6fd4941	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0xa715195e	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xa72035f9	xa_get_order
+EXPORT_SYMBOL	 vmlinux 0xa72cfb7d	ioremap_wt
+EXPORT_SYMBOL	 vmlinux 0xa746e8c7	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa768dcfc	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa78720eb	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7e9bb2a	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7eeebe8	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xa805ecfc	acpi_release_global_lock
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa836ba02	wrmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa8489d79	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xa8499e00	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa85c05ed	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa87d92e8	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xa88a52c1	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xa8917f21	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa898c090	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xa8a398df	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xa8b455b5	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xa8c1c006	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xa8c3bf05	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8d0edbd	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0xa8d53a18	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8fdc8fc	keyring_search
+EXPORT_SYMBOL	 vmlinux 0xa90aeb58	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xa90c433e	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa911fc2a	f_setown
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa92b0d0b	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xa94a09bb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xa964b4e3	ihold
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa9785b49	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9a01bbb	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xa9a8e17f	arch_phys_wc_add
+EXPORT_SYMBOL	 vmlinux 0xa9c72303	amd_iommu_pc_get_max_banks
+EXPORT_SYMBOL	 vmlinux 0xa9cd0377	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xa9ef86de	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0xa9fef9e5	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa0e1a69	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xaa0ec392	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa3a5e11	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0xaa651a0a	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa91557f	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xaac6bd8e	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xaad01ca4	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad355c9	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaadf09cb	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xaae32b6b	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaafc041c	cad_pid
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab33fd9b	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab65ed80	set_memory_uc
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab6eb819	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab7ca795	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xab9f0d69	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xaba444fb	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabb61e5f	amd_iommu_enable_device_erratum
+EXPORT_SYMBOL	 vmlinux 0xabb73ec9	__bforget
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabd7f2a6	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac127529	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xac18b039	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac230ef4	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0xac2e4be8	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac354121	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0xac412dff	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xac44eeb3	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0xac48d6f5	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac54c429	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xac5d2703	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac67a876	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xac92bc0c	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac968259	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xaca4b757	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacab49d5	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xacb0be4d	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xacb63d6f	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xacc11194	init_task
+EXPORT_SYMBOL	 vmlinux 0xacc835cd	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacea8173	acpi_debug_print
+EXPORT_SYMBOL	 vmlinux 0xacf2544b	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacfd9c36	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0e90d8	inet_release
+EXPORT_SYMBOL	 vmlinux 0xad1036a2	amd_iommu_activate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0xad120718	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xad1aaa7c	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xad1fb624	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xad2951a9	ex_handler_rdmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0xad319120	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xad536c91	x86_cpu_to_acpiid
+EXPORT_SYMBOL	 vmlinux 0xad56913a	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad804dcf	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad986d98	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad9ad133	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xada0fd14	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadba509e	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xade0e255	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae0e7ff7	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xae18b871	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0xae1a495e	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xae1da548	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xae1df1a0	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae62c35b	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xaeb2f322	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0xaebcf9ae	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaebe43f9	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xaeff32fd	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xaf17c6c0	drop_super
+EXPORT_SYMBOL	 vmlinux 0xaf27f530	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0xaf284484	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xaf3289e4	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xaf3581db	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xaf36eb2b	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xafacf0e2	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL	 vmlinux 0xafd5ff2c	amd_iommu_v2_supported
+EXPORT_SYMBOL	 vmlinux 0xafe19730	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0xb00566d6	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb057a24f	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb0718c3f	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xb07f6da5	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0xb0867dda	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xb099df7a	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e602eb	memmove
+EXPORT_SYMBOL	 vmlinux 0xb0f33966	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0fc8afa	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb11612cf	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xb116a956	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0xb1170dca	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb135998d	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xb144a900	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb14c2bcc	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xb150f275	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb169bb79	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0xb16b9ca5	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xb17fd9c0	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0xb181e600	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xb19a5453	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0xb19d7d5e	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb1e81185	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0xb1ffb8bd	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb22d4f9f	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb231641f	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xb23201f3	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xb24a6cbd	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xb252f3dd	_dev_err
+EXPORT_SYMBOL	 vmlinux 0xb26c5a54	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xb272a5f7	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0xb27dd734	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xb282227f	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0xb28ac62b	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0xb2a4a3ce	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b642a6	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2c6c01a	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0xb2dd69e2	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0xb2e1ca5c	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f74fb6	intel_gmch_remove
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb30f5fd0	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xb31f4435	get_dev_data
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32415a8	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xb32a5973	acpi_ut_status_exit
+EXPORT_SYMBOL	 vmlinux 0xb33bae5a	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb3532aa8	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xb355f4e1	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xb3571901	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xb35e6cb8	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xb36299e0	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb383dee8	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xb38411cf	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb3863a67	acpi_set_gpe_wake_mask
+EXPORT_SYMBOL	 vmlinux 0xb38d9b16	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xb3a2dfdf	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb3a35205	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb3bd4618	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3d42893	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xb3ea5712	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb4119d6f	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb43e4945	load_nls
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb478a6dc	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0xb47cca30	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0xb47f7035	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49890b8	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a3e313	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0xb4ae18ea	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xb4ded9b3	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0xb4ef98ca	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb51bc9e5	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xb5242cd2	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL	 vmlinux 0xb5336ac7	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb541795d	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xb55444bd	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb57886a9	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0xb57c4400	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb591c655	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa6e04	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab892d	uv_undefined
+EXPORT_SYMBOL	 vmlinux 0xb5bae31e	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xb5bede8b	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0xb5c3f750	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xb5dc11e1	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0xb5e07a37	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0xb5e36d2b	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5f3bcdd	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0xb5fe1ead	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xb601be4c	__x86_indirect_thunk_rdx
+EXPORT_SYMBOL	 vmlinux 0xb60349af	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xb608b30a	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0xb60b1f7b	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xb624a01c	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb6566428	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xb665f56d	__cachemode2pte_tbl
+EXPORT_SYMBOL	 vmlinux 0xb674a534	acpi_unmap_cpu
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb689fffb	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6941066	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xb69651b1	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xb6a4579d	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6a994f0	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0xb6b2aa5b	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xb6b614b4	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xb6c68df5	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0xb6cc53db	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xb6cf434e	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6f47d45	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xb6fa5d21	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xb7168cee	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb742445e	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0xb74fb709	set_pages_wb
+EXPORT_SYMBOL	 vmlinux 0xb7593ddc	iosf_mbi_unregister_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xb75edb3d	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xb773c2ee	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xb777565d	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xb77e6cd4	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7a660c1	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xb7c35c68	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d7da8a	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0xb7e2c0e6	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xb7f285c2	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xb80ebe37	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xb8104b15	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb814e18a	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xb8183eff	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0xb8208991	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb86f74c5	free_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0xb8747b1f	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xb8769db2	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xb890e884	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a1da00	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8e05398	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xb8e3f169	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb907def0	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0xb9105829	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xb9105f3b	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb9134c6c	cpu_tlbstate
+EXPORT_SYMBOL	 vmlinux 0xb923bb36	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xb9298d07	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xb93a5365	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb95f5cd0	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xb9651d0e	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0xb97f7045	acpi_install_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0xb982443e	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xb985afcc	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0xb9950a98	convert_art_ns_to_tsc
+EXPORT_SYMBOL	 vmlinux 0xb99dda20	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9c0939b	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb9c901d1	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0xb9e276cf	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb9e7429c	memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9ea277f	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0xb9ea3355	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0xb9f699a3	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0xb9f98f96	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xba0587c0	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xba0bec61	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xba0ebe04	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba12d3a5	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xba1a0fb8	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0xba2a97aa	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0xba2e24cb	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xba2e3616	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0xba38640e	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba5833f4	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xba75db7e	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0xbaaa6051	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xbab1ef32	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xbab7c34b	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xbac48fb5	done_path_create
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbae885f7	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0xbaf604f7	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xbaf68a1b	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb13595e	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xbb1bac24	acpi_unregister_debugger
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb25e68c	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb4ec735	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb51a75c	amd_iommu_pc_set_reg
+EXPORT_SYMBOL	 vmlinux 0xbb7dfc3d	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xbb8e169a	vga_switcheroo_handler_flags
+EXPORT_SYMBOL	 vmlinux 0xbb9fae84	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xbbd0afee	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xbbd8d322	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbc0ce12e	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0xbc0e7364	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc20d30d	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xbc235aa1	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0xbc390aff	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xbc3a5d7d	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xbc47cbcd	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xbc547b75	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0xbc5ab836	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xbc602300	amd_iommu_pc_get_reg
+EXPORT_SYMBOL	 vmlinux 0xbc89ccd5	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xbca63c7f	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0xbca6d08e	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb18740	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xbcb1ae91	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcf54cb1	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0xbd12a66c	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0xbd1ab374	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xbd27cb31	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xbd29cbc2	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xbd412ba0	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0xbd429ad4	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0xbd43e14b	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd5c6ab8	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xbd627aaf	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd7f6e6c	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0xbd886d10	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xbd988147	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbdb1d35a	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xbdb1e080	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0xbdec6803	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xbdfb6dbb	__fentry__
+EXPORT_SYMBOL	 vmlinux 0xbe0110e7	acpi_set_gpe
+EXPORT_SYMBOL	 vmlinux 0xbe08bbcb	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xbe27f758	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xbe28b77e	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xbe29df6d	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe51828e	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe57f4f4	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xbe599fb9	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5bd6bc	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe659781	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe772c80	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xbe777478	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe937f29	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xbe9a7fe5	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xbe9fa81e	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0xbeb98c0b	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xbecf233e	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xbee0ffe0	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xbee1b16a	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef2b0a8	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbf181505	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0xbf2e3ef2	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0xbf3193ec	acpi_unregister_ioapic
+EXPORT_SYMBOL	 vmlinux 0xbf52d12e	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xbf576f66	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xbf73cb2f	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xbf7d1462	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xbf9ab100	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbf9fb163	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0xbfa9ae5d	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xbfad37d9	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xbfb8f982	can_nice
+EXPORT_SYMBOL	 vmlinux 0xbfb9ec46	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfd2dd09	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xbfdcb43a	__x86_indirect_thunk_r11
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff0a7bb	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xc0195ec0	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xc01e3ded	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc05a499f	ilookup
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc08594b8	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0xc085a394	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xc08777e1	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc09d8e4e	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0beb622	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0xc0d608de	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xc0d98456	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0xc0df14ac	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xc0e1f8f8	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xc0f1b79f	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc111ae64	intel_gtt_get
+EXPORT_SYMBOL	 vmlinux 0xc11380c1	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc1354c82	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0xc1365323	acpi_enable_all_wakeup_gpes
+EXPORT_SYMBOL	 vmlinux 0xc13949f9	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xc1432851	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc15ae4bc	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xc15e23dd	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc1672a4c	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc173738f	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0xc17a501a	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xc195d607	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc2043c72	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xc20baa10	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc21b038b	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc25d41d8	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xc262e9ac	phy_resume
+EXPORT_SYMBOL	 vmlinux 0xc2666775	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc278c965	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xc2835a95	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xc28fffbb	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xc29957c3	__x86_indirect_thunk_rcx
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2b78c96	module_layout
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2eca746	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xc2f32a84	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3114bd7	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xc314c26a	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc33f9472	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xc346f3db	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xc34f40c7	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xc3569d13	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xc35e6d82	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0xc36725a3	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xc368d98e	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc376d352	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc390117c	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xc398d21e	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3bf405b	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xc3c89947	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0xc3d062de	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0xc3d75803	d_drop
+EXPORT_SYMBOL	 vmlinux 0xc3fd2f92	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc41a443f	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc41ee461	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42afd38	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0xc42b3e98	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc45f38f0	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xc46793f1	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc485366d	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xc4952f09	cdev_add
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4f4a44b	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0xc4ff0dbd	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc55cca4a	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58c2d75	eisa_bus_type
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc59cb817	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5d191b3	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5de435d	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xc5e4a5d1	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5ebc3ef	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc622556f	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xc62cfdec	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63b3c54	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc668e237	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0xc6692a59	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xc669c6f2	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc675233f	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0xc6910aa0	do_trace_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xc69f0309	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6ee9486	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0xc6f43a4e	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc715d49c	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc732589e	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xc7329346	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xc75b13bb	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7fa86bc	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc80d9343	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc8334eba	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xc8371310	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0xc83b4482	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84b4ac3	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0xc86be2cc	vga_switcheroo_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xc8703ae3	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xc8706c91	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc876ec69	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc894406c	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xc89a2025	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b8615b	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xc8c51171	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0xc8c8e5f8	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xc8d61dba	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xc8da6f4c	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xc8da7cae	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0xc8e74b9f	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8f14079	simple_rename
+EXPORT_SYMBOL	 vmlinux 0xc90a5290	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xc9216a82	recalibrate_cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xc931076b	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0xc9360e13	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xc93aa190	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc9451189	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xc95ba48f	d_path
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc975d973	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc98f9199	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xc9953de3	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9a50bf1	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0xc9a84235	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xc9ce4b13	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e370a9	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9eadb84	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0xc9eb07fa	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc9eb9ba5	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0xc9f34c1d	acpi_acquire_global_lock
+EXPORT_SYMBOL	 vmlinux 0xc9fd9757	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xca001208	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0xca0b17b2	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca4039f4	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca5ddeb8	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0xca642c1a	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca79f0b0	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xca7a3159	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca939c03	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xca972b38	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xca9bf8e8	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xcab541c1	boot_cpu_data
+EXPORT_SYMBOL	 vmlinux 0xcaba27a4	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xcabab41e	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xcacc7318	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf7252b	release_pages
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb09503d	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xcb2c2cec	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb612bee	submit_bh
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb8cc98e	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xcb97372d	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd61d7a	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xcbd860ae	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xcbeb4cb9	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xcbf11946	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xcbf3a89f	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc0be4a9	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc25de62	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xcc2696cb	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0xcc2a52d5	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc32911e	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0xcc3b3edb	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0xcc408c41	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xcc40cbe6	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xcc441aa8	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc4cef65	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc67a834	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0xcc8793d8	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xcc91d5aa	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0xcc97f667	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xccb5b46a	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc3ced8	cpu_info
+EXPORT_SYMBOL	 vmlinux 0xccd2be67	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xccd3eea5	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccdac9e9	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd01b8e6	acpi_attach_data
+EXPORT_SYMBOL	 vmlinux 0xcd0884fd	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0xcd0b0634	init_net
+EXPORT_SYMBOL	 vmlinux 0xcd0f747b	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd401d8b	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xcd4b6121	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xcd4fa548	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0xcd5d755f	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0xcd64b769	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xcd7692c8	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xcd78a722	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd9d05d0	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xcda22701	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd0499c	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcdf7411d	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xcdfb43a5	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xce124b8a	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xce185718	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2ef7c5	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xce384097	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0xce4254e7	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce656e99	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce8a5f56	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xce8b1878	__x86_indirect_thunk_r14
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb4040d	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xcecec833	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xcef07980	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf20eeec	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf4b04db	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf50a80a	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf83e7c6	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xcf882802	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xcf8e6e25	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0xcf927c3c	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfa57ab5	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xcfb0715c	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xcfbd1bdd	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xcfc73a2d	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xcfd0862d	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xcfd884a8	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0xcfdf563f	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0xcfe35121	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xcff0be12	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xd0162fff	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xd0325477	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xd035ac65	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd08361d5	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a43c79	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b4942a	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0dca490	get_cpu_entry_area
+EXPORT_SYMBOL	 vmlinux 0xd0f284b8	mmiotrace_printk
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fc9b81	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd10dfdef	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xd12f5253	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd143eda9	audit_log
+EXPORT_SYMBOL	 vmlinux 0xd1551f41	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd192b36f	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19aa73c	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xd19bd2e1	__tracepoint_write_msr
+EXPORT_SYMBOL	 vmlinux 0xd19ebccc	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xd1a1af38	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xd1b34da5	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xd1d15f1b	uv_hub_info_version
+EXPORT_SYMBOL	 vmlinux 0xd1d2e348	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1e6c0d4	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xd1f60a89	arch_io_free_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL	 vmlinux 0xd2126b86	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd21f5295	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd243c2df	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd25ee51f	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd296a5f8	seq_release
+EXPORT_SYMBOL	 vmlinux 0xd29ed240	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xd2ad81ad	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xd2c3ee24	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2da9f3b	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xd2dd040e	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd2f6ada3	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xd3004fc7	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xd32a199b	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xd333e6b7	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0xd3411d04	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xd34bdcc0	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd377f48e	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0xd389af9f	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xd38cd261	__default_kernel_pte_mask
+EXPORT_SYMBOL	 vmlinux 0xd3a806c6	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xd3ba12ba	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xd3e5ae7c	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0xd3e8a856	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3eaf541	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0xd40291c5	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0xd4045e4c	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40b8561	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xd427d2c9	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xd4327562	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xd4571448	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd469f220	amd_iommu_domain_enable_v2
+EXPORT_SYMBOL	 vmlinux 0xd4719692	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0xd48358a8	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4b69196	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4c45e72	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0xd4cb0c59	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4e3fc00	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0xd4ed4e63	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52ffccf	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd57fd881	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xd5849a2f	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xd58ace4a	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xd58ce176	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd59d222d	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5b3d82c	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xd5b53800	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xd5e2cb44	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0xd5e913f1	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd6079b70	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xd6229881	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xd6269716	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xd62e90ce	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0xd6386158	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd652cb2b	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xd66c8184	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0xd66f4303	may_umount
+EXPORT_SYMBOL	 vmlinux 0xd67ddf43	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0xd67e4466	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xd686ab04	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6913866	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xd6993475	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6b2ed5f	generate_pm_trace
+EXPORT_SYMBOL	 vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xd6b7dc99	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xd6c17203	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xd6cf195f	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6d11fa3	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xd6d780aa	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0xd6e59bbf	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ec8707	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd7072f3f	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd713515f	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xd72c5636	dst_init
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd73deab7	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xd74820d8	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xd7520ecf	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xd76ff312	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xd784fe52	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xd79e7429	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0xd7b7840f	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7efa7e5	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0xd7fb4025	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xd8097a59	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xd846c315	acpi_write_bit_register
+EXPORT_SYMBOL	 vmlinux 0xd84a102a	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xd84ab1b9	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd87af866	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0xd890b057	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xd890f6b1	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a1395d	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0xd8a545aa	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8b98604	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xd8bf6707	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xd8c020dc	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xd8ccec2b	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd8f3e589	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0xd92071c6	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xd921c9a5	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd9482925	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd971c6c4	xen_arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0xd974c31f	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xd9768ec3	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0xd979a547	__x86_indirect_thunk_rdi
+EXPORT_SYMBOL	 vmlinux 0xd97a9475	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9883d71	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xd98d5312	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xd98fb9f2	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xd994239c	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xd9a34606	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9b56417	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9ba92bc	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xd9d0d590	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e057ab	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xd9f28dbb	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0xd9f67de6	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xda133193	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xda1ddef1	acpi_mark_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0xda38dd33	phy_attach
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda93873e	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0xda9e23b4	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaa02a1f	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xdab2e36c	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xdabf55c8	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0xdac1bb29	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdafa21f8	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xdafb3205	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xdb0c4998	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xdb13f21f	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xdb16b170	topology_phys_to_logical_pkg
+EXPORT_SYMBOL	 vmlinux 0xdb190040	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0xdb2b9d95	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb3dff32	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb70ee9a	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdb4576	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbf9222c	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0xdbfac338	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc176bd6	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0xdc1ad749	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0xdc21da8d	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0xdc262858	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xdc2a0e9b	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0xdc35f028	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5736d5	acpi_register_ioapic
+EXPORT_SYMBOL	 vmlinux 0xdc5bafec	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xdc652132	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0xdc96730f	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0xdca3de07	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xdcc3ceb6	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0xdd02ac5a	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd37f950	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0xdd3c8b3e	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0xdd3fe510	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xdd43e232	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xdd516e43	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd6d8632	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd77788b	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xdd799ad8	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xdd816214	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd874be5	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xdd87a4dd	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xdd87fd69	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xdda05fe6	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xdda572e3	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddcbe1f3	acpi_ut_value_exit
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde2ddeb0	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xde4eeab5	__register_nmi_handler
+EXPORT_SYMBOL	 vmlinux 0xde6434fe	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0xde873d02	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xde93853c	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xde9d673d	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xde9e58de	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xdeb18d2a	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdede662b	lease_modify
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdee9827b	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xdef7c04a	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf00b7f0	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xdf070956	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xdf07f3a5	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xdf27d907	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf39f8b7	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0xdf43ba92	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0xdf51c29c	path_is_under
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf566a59	__x86_indirect_thunk_r9
+EXPORT_SYMBOL	 vmlinux 0xdf5f3a17	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0xdf626aa2	udp_prot
+EXPORT_SYMBOL	 vmlinux 0xdf69db2e	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf7f135d	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xdf8448ec	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf8d781f	acpi_update_all_gpes
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf938e47	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfc6c82c	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff15025	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0xdff60aaa	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe005f481	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe033cb29	native_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe045ecd6	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0xe0507f31	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xe0557537	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xe0560d22	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xe064059b	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xe06481f3	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe08c8e13	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b1eb6e	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xe0ba1776	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xe0ba8485	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xe0c7aab0	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0xe0def39a	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe10ee19f	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe135dbb6	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0xe1362aac	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe159db9c	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0xe16780f6	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xe171bd40	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0xe183bfc2	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0xe19cdf3a	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0xe1a95251	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe1fc3d6f	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xe1ff8a63	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0xe1ffe374	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0xe20d3993	first_ec
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2267a00	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0xe230bc01	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xe24a50a4	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe2ac80fa	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0xe2aee00d	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0xe2bc7581	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xe2c47d3e	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2cf4ac7	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e2cd95	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe31ec055	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe33d9235	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xe345e5ed	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xe3567898	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xe35b6f5a	free_task
+EXPORT_SYMBOL	 vmlinux 0xe364b172	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xe36dc778	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xe3846b27	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xe38b2556	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xe3954c7d	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3a5eead	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe3ac71ad	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xe3c51f25	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xe3c68d09	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0xe3d7696f	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0xe3d857ea	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe3de31a9	pps_event
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe3fffae9	__x86_indirect_thunk_rbp
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe4182e35	seq_escape
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe41da0d1	new_inode
+EXPORT_SYMBOL	 vmlinux 0xe42c5681	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0xe431f5a0	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe45b324a	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0xe480b2b2	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe49dd997	inet_getname
+EXPORT_SYMBOL	 vmlinux 0xe4b7ce89	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0xe4c37a82	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d80bf4	acpi_enable
+EXPORT_SYMBOL	 vmlinux 0xe4df1294	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xe4ede841	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0xe4f09c4b	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xe4f0b251	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0xe50b7af9	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0xe519a214	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe53aa469	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xe543f7c6	sget
+EXPORT_SYMBOL	 vmlinux 0xe55598c5	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xe55a5496	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xe55f9ba7	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe5795b7e	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe589247c	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe59df9ab	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5bfce37	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0xe5c329fb	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5d7f3f1	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xe5fa9fac	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xe5febb8f	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe603b92f	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xe60c9d82	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe62f4374	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0xe64d2fad	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0xe64e480e	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xe65c5682	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xe665c9e1	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe665e251	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xe66787c4	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0xe68101fc	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xe6867db2	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6c9ca88	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xe6fab5db	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0xe70877d4	acpi_remove_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xe7100bff	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0xe711cb5f	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0xe7143264	default_llseek
+EXPORT_SYMBOL	 vmlinux 0xe7165b3b	vfs_link
+EXPORT_SYMBOL	 vmlinux 0xe71a878a	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe72ba5a3	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0xe73247b2	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe73a6329	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xe74230e6	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xe7673961	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xe77285ab	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xe781456f	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0xe787698f	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7b00dfb	__x86_indirect_thunk_r13
+EXPORT_SYMBOL	 vmlinux 0xe7b13f4a	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xe7bee7b4	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xe7cb414f	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7d5e0ac	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0xe7d6e6e1	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xe7e56142	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xe7e5d824	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xe7eced1f	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0xe7fa5086	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xe811408c	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xe81ac0e0	file_modified
+EXPORT_SYMBOL	 vmlinux 0xe81ad6e3	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0xe81cf001	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xe823040a	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xe82742f0	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xe85742d2	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe87af1d6	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0xe890dd54	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xe8a01719	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xe8a15c7c	vga_switcheroo_init_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xe8ab6b6b	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe8affe32	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0xe8d1b485	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe8d6dcad	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xe8d74af4	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe90d2e63	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe9246163	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xe926e846	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe9274600	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0xe93bd0d9	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0xe94a9e97	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xe94b5ca3	phy_start
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe95c0127	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xe983a594	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xe99950dd	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xe999921d	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xe99acd0e	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0xe99e970f	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0xe9a185cb	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xe9a5e67f	intel_graphics_stolen_res
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9d2c369	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xe9e12467	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0xe9e787b1	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9eb449e	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea0698ff	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0xea118eb7	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xea1932c6	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xea1a5ae3	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea3df4a2	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0xea589930	fc_mount
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea7e2b9f	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea85ed6f	free_netdev
+EXPORT_SYMBOL	 vmlinux 0xeab447ec	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL	 vmlinux 0xeace6148	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeae82d7a	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeafe77a4	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xeb1f5a3a	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb31aee8	acpi_trace_point
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3e291b	set_pages_array_wb
+EXPORT_SYMBOL	 vmlinux 0xeb3f388d	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb4874e7	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0xeb59e8c3	native_load_gs_index
+EXPORT_SYMBOL	 vmlinux 0xeb5fba4f	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xeb607d9e	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0xeb670d78	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xeb707f22	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xebd1d410	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xebd8a98b	stream_open
+EXPORT_SYMBOL	 vmlinux 0xebdd1a5c	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebf25668	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec0d3a97	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xec146210	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0xec1739e6	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec45149b	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec554e18	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xec63786a	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xec7ae1a1	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xec8c5a9e	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xeca49e26	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xeca4e5da	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xecac8407	__memcpy
+EXPORT_SYMBOL	 vmlinux 0xecaf758a	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xecc73992	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xece2d330	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0xece660c6	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf73f91	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed086891	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0xed0a07b7	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0xed1051e3	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0xed204645	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xed22cedc	vga_put
+EXPORT_SYMBOL	 vmlinux 0xed338d5f	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0xed34ebbc	acpi_any_gpe_status_set
+EXPORT_SYMBOL	 vmlinux 0xed50e83d	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed610bb3	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed71e7d0	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xed80e3d3	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0xed92a916	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xed9f4bcb	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xeda05fe0	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0xedb5d320	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedcd7745	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xede88164	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xedecc761	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xedf41f4c	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xedfb2269	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee19babe	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xee2cac78	filp_close
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee32f3c7	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0xee35a604	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xee3c22cb	dm_io
+EXPORT_SYMBOL	 vmlinux 0xee528ec5	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee597214	release_firmware
+EXPORT_SYMBOL	 vmlinux 0xee5ea0b9	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xee620bf9	vga_switcheroo_unlock_ddc
+EXPORT_SYMBOL	 vmlinux 0xee638722	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xee768c80	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7de2f2	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee966560	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xeeafdde0	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xeeb8134b	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xeebf0a74	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xeee0b994	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0xeef2c842	key_link
+EXPORT_SYMBOL	 vmlinux 0xeef4acce	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xeef859f6	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xeefb660d	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xef0b041e	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0xef4e6352	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0xef57811c	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xef5be87f	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0xef675c33	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0xef8e5550	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL	 vmlinux 0xefa01c83	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xefab3b31	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefc1eea5	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf001988a	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xf00a8f3b	vga_con
+EXPORT_SYMBOL	 vmlinux 0xf00ee553	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf012a109	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xf0149522	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xf02810de	dump_page
+EXPORT_SYMBOL	 vmlinux 0xf031f4d1	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xf0549ba7	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xf05c32ad	rdmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf09f2262	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0xf09ff592	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xf0a8698e	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0xf0b41d41	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xf0ba8c67	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xf0d5f31d	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xf0f2b1a2	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf11b66e7	fput
+EXPORT_SYMBOL	 vmlinux 0xf11c5601	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0xf1848ee2	acpi_install_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a2d524	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0xf1a68107	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf1c15199	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xf1c66a8e	eth_header
+EXPORT_SYMBOL	 vmlinux 0xf1d10e61	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e60ce1	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf20b4b76	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0xf20c398d	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf21dc0f4	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xf2203980	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22a81f8	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xf22b7cca	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf2708fdd	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xf27450cd	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28b7467	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0xf28e994b	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf2950b09	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2aa830b	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0xf2aec701	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0xf2b80a77	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0xf2b81b64	arch_io_reserve_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2cc6e97	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0xf2de06ab	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e65f68	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0xf2e6f100	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0xf2e79221	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xf2f26717	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xf2fd28ce	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf301cb1c	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xf30965ac	iosf_mbi_register_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xf30c25ec	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xf313c566	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf319b3ae	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf341d696	would_dump
+EXPORT_SYMBOL	 vmlinux 0xf3447554	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf35a23de	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xf35e8bfa	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xf35fa0d3	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3ad7769	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xf3aefc79	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3ba1a25	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xf3c9b3ad	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3f69aab	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xf402b7c7	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf42034cd	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf424ecd9	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xf427a9fb	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf442644e	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xf443dcb4	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf464ed3f	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf47da960	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xf47ed01e	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xf4874066	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xf4a565fd	wrmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4d053de	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0xf4d07174	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xf4d190fd	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4eb1a3d	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf50771fa	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xf50c9703	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xf51f542c	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0xf53189c6	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf53ec16a	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xf54f2843	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xf58353d7	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xf58d2296	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xf59090c6	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a5c84c	msrs_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5c4fd8e	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5e914b4	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0xf5eaa609	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0xf5ef1077	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xf5fd3043	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xf60ab926	acpi_get_event_status
+EXPORT_SYMBOL	 vmlinux 0xf60e6fc7	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf656dff5	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0xf664554f	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf6ac7c4e	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xf6c2fa7a	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0xf6d3dcf0	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fa467a	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf70be3c6	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xf714f8df	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0xf71700a8	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xf7245f12	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0xf7270a09	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf74a4b50	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xf7564ab5	sk_free
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf766ed94	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0xf76caadb	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xf76d21b5	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf776a5a7	bdput
+EXPORT_SYMBOL	 vmlinux 0xf7997fa2	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xf79ca3bb	acpi_remove_gpe_block
+EXPORT_SYMBOL	 vmlinux 0xf7b73004	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xf7cf9118	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xf7d63845	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xf7dc2d51	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xf7e01500	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xf7e1d8db	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xf7ef9a79	iosf_mbi_punit_release
+EXPORT_SYMBOL	 vmlinux 0xf7f92f6e	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xf806d105	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xf80be44e	rdmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf8205c46	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xf821aa41	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf8386d97	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0xf83f216c	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf87a4a7f	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf88dc3ff	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xf8917dfc	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0xf891ccf9	km_query
+EXPORT_SYMBOL	 vmlinux 0xf894165d	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xf896cece	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf906b261	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf91a60ba	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xf920bb69	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf95bef43	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf95e192f	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97b4841	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf98b608f	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xf993f9e2	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9ad1cbe	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xf9afc660	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9dbe27d	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xf9fc42f8	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa18993a	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xfa27c5f1	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa2b461b	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xfa35e014	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa42c8b6	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xfa4c6072	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa73d81e	ether_setup
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa9fbe17	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0xfaa1fdf7	__tracepoint_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xfaa56e98	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0xfab10495	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xfac7a87b	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfae2d7ec	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xfaed9e5d	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xfaff152b	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xfb1cd7ac	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0xfb251b8d	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xfb321593	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb45cb35	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb4f3e80	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xfb578fc5	memset
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6f797f	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfb75ffb0	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbe57b9a	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfbf5be96	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xfbfaddd4	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xfc00982a	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0xfc08ddb3	bio_init
+EXPORT_SYMBOL	 vmlinux 0xfc1bf953	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0xfc222974	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc51dcb5	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xfc5668f3	set_pages_array_wc
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc7030a8	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0xfc733be4	amd_iommu_get_v2_domain
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc97229f	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xfc9867e4	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0xfc9cdfda	nla_put
+EXPORT_SYMBOL	 vmlinux 0xfc9d166d	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0xfc9dcde1	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xfca959f4	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xfcb788bb	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd6bc2e	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcdca2cc	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd14e224	dev_open
+EXPORT_SYMBOL	 vmlinux 0xfd154113	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xfd23612d	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xfd23b08c	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0xfd247646	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfd25da59	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xfd2977ab	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0xfd41800c	d_move
+EXPORT_SYMBOL	 vmlinux 0xfd863283	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xfd93ee35	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfd9e94e9	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xfda79f02	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdb34043	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xfdb499a8	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xfdb6576f	acpi_set_debugger_thread_id
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdc72d52	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdfb792f	amd_iommu_pc_supported
+EXPORT_SYMBOL	 vmlinux 0xfdfd8b3e	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe0916b9	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfe0f8862	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xfe17bcde	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe282dda	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xfe29ef23	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xfe36ff14	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0xfe453a70	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5b2df8	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe686c08	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xfe8e2040	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfea46a6b	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0xfea8a177	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfeea8268	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff00231a	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xff072696	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xff133a9a	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff32dfbe	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff82eaaf	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff925483	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xffa0ffae	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffb96380	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xffc30c3a	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL	 vmlinux 0xffcd7f49	iosf_mbi_punit_acquire
+EXPORT_SYMBOL	 vmlinux 0xffcf733e	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x19711697	camellia_xts_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x2c8b5dbf	camellia_ecb_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x339c33c5	camellia_cbc_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x60eec6c6	xts_camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x6f3a8de5	camellia_xts_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x8b44ee75	camellia_ecb_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x9056f10d	camellia_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xc00f725a	camellia_ctr_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xfea2b457	camellia_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x0b901549	camellia_dec_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x315d28f7	camellia_crypt_ctr_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x69f4ff25	__camellia_enc_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x8d9b761c	camellia_decrypt_cbc_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xc5e3cec8	__camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xee61eb71	camellia_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xfe729ed6	__camellia_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xff09bd65	camellia_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x06a93415	glue_cbc_encrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x3a33f235	glue_ctr_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x47c4e08f	glue_xts_crypt_128bit_one
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x508d358d	glue_ecb_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x67fbe169	glue_xts_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x6a19afcd	glue_cbc_decrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x194b2841	serpent_ecb_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x38800636	serpent_cbc_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x4140192a	serpent_ecb_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x5cea0c9c	serpent_ctr_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x99341b41	serpent_xts_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xa0100109	serpent_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xb75988d7	__serpent_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xbdfa6cc0	serpent_xts_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xcee44453	serpent_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xf7fb50d7	xts_serpent_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x1f491d36	twofish_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x7c7bf6e0	twofish_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x2c7b3458	twofish_enc_blk_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x31ddef7a	twofish_enc_blk_ctr_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x92a51c43	twofish_dec_blk_cbc_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xb4e98a46	twofish_dec_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xe4ae7508	__twofish_enc_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00cf391b	kvm_set_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x04d32834	kvm_set_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0534d1a0	kvm_write_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x05cb9d5b	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0816b8ad	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x095f4331	kvm_get_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d014c17	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d8f4740	kvm_mce_cap_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1235000a	kvm_tsc_scaling_ratio_frac_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1272b16e	kvm_vector_hashing_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15f5cf6a	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x16472484	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x17dbf86f	kvm_hv_assist_page_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x17f4967a	kvm_arch_unregister_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1a2129fe	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1a782973	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1ba86d8b	kvm_get_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cf65ffc	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d013832	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db1c372	enable_vmware_backdoor
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db5be6b	kvm_arch_no_poll
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1f174dac	kvm_mmu_slot_largepage_remove_write_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1f417b8b	kvm_arch_has_assigned_device
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2388f87b	kvm_hv_get_assist_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x23d42e0c	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x24a1bea0	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x271d68fe	__kvm_request_immediate_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x272add3f	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x273ecc94	kvm_init_shadow_ept_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27baea9c	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28411ed7	kvm_max_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28e8f846	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x29f158c5	kvm_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2ba46184	kvm_mmu_slot_set_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2bdb9b1b	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2c4b6424	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2d82cc24	kvm_spec_ctrl_test_value
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2dccba24	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2e272b28	kvm_apic_write_nodecode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2f948aea	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x302b8f19	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x30c30fac	reprogram_gp_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3388a050	kvm_vcpu_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x340ee7a8	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x34a0249e	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x361c8007	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x37b46aaa	kvm_handle_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39150949	kvm_mmu_invpcid_gva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39733120	kvm_lapic_find_highest_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a3026d4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b4babdb	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cb813bf	kvm_set_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc82f45	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e5a39de	kvm_lapic_reg_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3f21bc16	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3ffc048d	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x40d6b55a	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x41492f48	kvm_lapic_switch_to_sw_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x420350fe	kvm_arch_register_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x453f3225	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x470561dd	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x49c5e0f6	load_pdptrs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4a13ea3e	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4c579b33	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4c94290b	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4d5f1235	kvm_scale_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e17736c	kvm_require_cpl
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e4d51a8	kvm_set_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4fc87e82	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4fcae5ed	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5085b171	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5389edf6	kvm_set_cr4
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x545ae119	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x56942732	kvm_load_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x570ebd9b	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5934e9eb	kvm_set_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x598e8a17	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5a03de15	kvm_mmu_clear_dirty_pt_masked
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5a9bca03	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5b1237da	kvm_mmu_unprotect_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5bf3a2ff	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5ccb428b	x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5d76550e	reprogram_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5e30b209	kvm_get_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5e58981d	kvm_queue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x602f85e2	kvm_mmu_slot_leaf_clear_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6115a07f	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6243ac82	__kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x629cfeba	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63106036	kvm_deliver_exception_payload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63270977	kvm_default_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x637e3d47	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65ece2a2	__tracepoint_kvm_fast_mmio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66c4423a	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66ecdf2d	kvm_lapic_hv_timer_in_use
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68f54e0f	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x69caf5c6	__x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6abe7c80	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ada8f59	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6cb1f7c2	kvm_can_post_timer_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ce64a80	kvm_emulate_rdmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6f4fe52b	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x72d7fe7d	kvm_arch_end_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x73a5705c	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x76cb7535	kvm_apic_match_dest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7763a671	__tracepoint_kvm_nested_vmenter_failed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x77759f2e	kvm_mtrr_get_guest_memory_type
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7a6252e2	kvm_set_xcr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7b1ccb62	kvm_skip_emulated_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7df922b3	kvm_get_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x80658137	kvm_page_track_unregister_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x839f73d6	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x849344cc	__tracepoint_kvm_pml_full
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8574fd1c	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x867690a7	__tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86931b5d	__tracepoint_kvm_avic_incomplete_ipi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86f1f94a	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x87bdcd3d	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x886fd2fe	kvm_vcpu_is_reset_bsp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888d979f	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x88a52892	kvm_apic_update_ppr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8a9f9e79	kvm_init_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8c71ba80	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8c9e07f2	kvm_wait_lapic_expire
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x91d4d992	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x928e29a9	kvm_arch_has_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94361f42	kvm_fast_pio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94abbd88	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x954fd3c6	pdptrs_changed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9572f68e	kvm_rdpmc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96966979	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96dbe382	kvm_mpx_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x971af405	kvm_emulate_instruction_from_buffer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x983e71ee	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x989f8754	kvm_page_track_register_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x99249927	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa0268183	kvm_mmu_new_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa36c567b	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa485383f	kvm_lapic_expired_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa891e05c	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa8cc040f	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa975020d	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa9e15b24	kvm_arch_start_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaae2a133	kvm_get_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xab690790	kvm_mmu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xac41af1c	kvm_lapic_switch_to_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xad785218	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xadb72ae1	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaeea0ef5	reprogram_fixed_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaf1e4d39	kvm_mmu_unload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaf8289da	kvm_emulate_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb097e540	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb11edc30	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb14b69b9	kvm_read_l1_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb1f29d1a	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb3f72ee4	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb59673f0	kvm_get_apic_mode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb7ab4df4	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb89249e6	kvm_inject_nmi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb8a81fea	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb9ac04d2	kvm_mmu_free_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xba68b601	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbb4175ee	reset_shadow_zero_bits_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbc09b996	kvm_set_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbfc61ecf	__tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbffd41aa	kvm_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1a60a78	current_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1d769b7	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc33e468e	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc3727bf8	kvm_x86_ops
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc89f0eb7	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca2ceb81	kvm_apic_set_eoi_accelerated
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca3ab5ad	__tracepoint_kvm_ple_window_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcab0c0a4	__tracepoint_kvm_write_tsc_offset
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcbb29959	kvm_emulate_wrmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcd88e734	kvm_emulate_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcf0756bf	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcfb07560	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd082e0e4	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0a868c2	kvm_get_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd1f471a9	kvm_require_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd31dc09e	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd4bb2a48	kvm_set_msi_irq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd6965997	kvm_set_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd6e97eba	kvm_mmu_sync_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd7112d77	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd72fc1f5	handle_ud
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd7630203	kvm_put_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd8ae2ac3	__tracepoint_kvm_pi_irte_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd923cf29	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdbd87e24	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdcefe0df	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd9e7aeb	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xde48b7cc	kvm_task_switch
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe0ee1655	kvm_get_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe25fb14e	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3ccde2b	x86_fpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe45a6b73	cpuid_query_maxphyaddr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe5f6be88	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe66c9807	kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe70d2a35	kvm_vcpu_reload_apic_access_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe9727ca8	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe9a300e7	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe9c02f0e	kvm_slot_page_track_remove_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xeb739f3e	kvm_intr_is_single_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xebb3a470	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec06defc	__tracepoint_kvm_avic_unaccelerated_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec54f7f9	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec759757	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xed772236	kvm_mtrr_valid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xedf75017	kvm_lapic_reg_read
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xee1a8403	kvm_set_cr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xef7ba61e	kvm_slot_page_track_add_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf2a813d9	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf3051961	kvm_lmsw
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf376ed42	kvm_requeue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf4146297	kvm_valid_efer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf47e3dba	kvm_no_apic_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf6506c4e	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf74f4777	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf920c878	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf9c59bae	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfa541ffc	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfe95af4c	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x06985c6b	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1826bc8a	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x22c3d3bd	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3b0c7d2a	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4ccdaeb1	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6f6069ff	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7291f357	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x77eab4a0	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7bbb0bbb	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x84c5c643	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x90b90090	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbc7585fb	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd2c9e6c1	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd7b18583	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xebae18ef	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xeef81294	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xef7eb836	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf9c68def	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xe50d7fba	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x33bda32f	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x3efdd14c	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x90d920da	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xab78446e	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xe4723790	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x4a3b8479	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x4fd02428	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xc9a51ac8	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xee2939b3	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x2981c6aa	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x7e7f9ec6	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x693676a3	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x1e7af01d	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xf98d3e21	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x1c33f991	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x32a64a1a	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x98132ed7	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x9a412488	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x02172866	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x02fac67c	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x0f13b651	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2882f477	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2f89556e	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x53867f90	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x85eb8af3	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x894536f0	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb09ab192	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb2cd786a	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb7ace5e9	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xdc6cfbcc	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe63fb502	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1a7ba57d	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x24e3755e	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x26b2af17	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x396e2bc8	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x65060ae4	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x69ef1a45	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x76125bb5	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8ede7f8e	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x95a6f33a	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xa1704dbf	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xa19478f8	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc9a0ba09	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xccb3aeab	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf5a9fe29	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x037c3635	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x0751b4fd	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xdb13e758	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xe1987e69	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x70741e69	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x900d108b	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xefd6d97e	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xe718f676	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x3021a00e	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x5ee1d4b5	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xd364d127	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x57127f9a	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x1ed74192	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x445efbbe	__acpi_nfit_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x4639bcda	acpi_nfit_shutdown
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x499bbf57	nfit_get_smbios_id
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x92b43858	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0xd3e722e7	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0xfe44cdd3	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x1c8984c7	acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x4f6c2360	acpi_smbus_read
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x87bd07bd	acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x96eb492d	acpi_smbus_write
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x0542cd90	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x064973e2	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x0ff51c94	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x341e1c3f	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x38acc11c	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x45f677c0	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x48d893b3	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x491fdbe1	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x5827e841	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x5ab396d7	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x64892373	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x68570e04	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7873db6f	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7d762ee6	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x8e8f2798	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xa180cb2c	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb48f9c18	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc8e7d9d0	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xcf646d5f	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd5994337	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe4de0b9e	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe920db97	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xeb6181d8	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xf9351509	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1e758b02	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x290590ea	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x3a12a939	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x3c13d138	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x3c640f40	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x41a0008f	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x4cc4686d	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x4fcc3ed8	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x6067bd26	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7869a8d4	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x791ddcf4	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x798b0aa0	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x80b462b2	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x850b4b74	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8d3aad20	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x99ce0360	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x3f98b089	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x02ff9464	cfag12864b_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x0ecb2e5d	cfag12864b_disable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x305dc3c6	cfag12864b_isenabled
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x3389f926	cfag12864b_enable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x9522a342	cfag12864b_getrate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0xc48e9d95	cfag12864b_buffer
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xbf4774db	ks0108_writecontrol
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xedde6df2	ks0108_page
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xfee8ef7b	ks0108_address
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0x9e9b369d	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x85731118	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xcf1884e6	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x08a16dea	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x5991e3d8	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x8f4c43a4	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xb43a4873	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xb8c2490b	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xe20b1798	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x366f92b0	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x89bdc83e	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x030d61a0	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0731a57b	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x09e12e84	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x12ad35b1	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x17d538b1	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x37dac230	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x57539d01	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x671d5375	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6c8d2b6e	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x767b61d2	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8794f776	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8cc255d7	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8cdfc040	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9ec000f6	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa2d831dd	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xad41aecb	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xaeef3888	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd1be4de3	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd3620aa9	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd6523bd8	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdc94a096	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe26e98df	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf48220ab	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf591cfce	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3a6d52bd	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x40bb01a0	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7268012c	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xc7ba20fb	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xe3596189	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xfb6ab4e0	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0f21c7bd	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1219c2f6	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x42b458b0	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4412b7fa	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x449a962d	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x451c6728	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x452a6eb7	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x641773f9	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x67289630	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8975abd8	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8b1cb09d	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x911f5246	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x93ba8230	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa3116dae	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xc7a2deea	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd7b58fcf	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xec180cff	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0be1a2e2	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x343ee3b6	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x4afbf513	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x4bd1c65a	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6a558d95	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb3af56bd	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb71de81a	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc12c75c0	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xda0b5087	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xdf669305	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf661e2c8	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x1c976413	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x22390521	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x6b09144e	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xe60a15d6	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xeeee3c84	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x1ca095d0	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x29d56997	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x6a9dfb11	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x7b71de79	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xde25f8a4	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x26862e02	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x296947cc	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x72c89d06	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x86529913	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x5c8b28c2	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x5d57e6ae	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x6069aae3	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x6e871166	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7fc95068	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x8aad5c3d	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x96ba3c1a	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa35418e5	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xae188f5b	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xbae14608	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdf8a349d	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xec39523a	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf506363c	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x2b67f096	speedstep_get_frequency
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0xd7ab2c0c	speedstep_detect_processor
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x1b3b9fed	sev_issue_cmd_external_user
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x2e6a6147	psp_copy_user_blob
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3e059f28	sev_guest_activate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x4073e924	sev_guest_deactivate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x843d6541	sev_guest_decommission
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8fac14a2	sev_guest_df_flush
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x91722dce	sev_platform_status
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xd02e197f	sev_platform_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xfa9b7325	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x02085472	adf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x06cde428	adf_cleanup_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0d2950e7	adf_devmgr_in_reset
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x11ceca26	adf_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x1607559c	adf_devmgr_pci_to_accel_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x2192939e	adf_send_admin_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x24386bc6	adf_reset_sbr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x248e2356	adf_disable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x48a4d4ef	adf_cfg_dev_remove
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x5134a09c	adf_dev_started
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x58db3203	qat_crypto_dev_config
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x5ecde09e	adf_vf2pf_notify_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x5f394d8a	adf_devmgr_rm_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x64f519a7	adf_devmgr_update_class_index
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x679afdb1	adf_init_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x68ccb975	adf_vf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x69e206e6	adf_reset_flr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6cc7c352	adf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x73ac9a03	adf_init_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x753d9058	adf_dev_put
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7562f27a	adf_cfg_section_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x886f5379	adf_disable_sriov
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8a727518	adf_enable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8b632f76	adf_exit_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x9df3fea8	adf_dev_in_use
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xa791b8f9	adf_cfg_dev_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xab9be854	adf_init_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc1daa063	adf_cfg_add_key_value_param
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc243f820	adf_sriov_configure
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc660f81c	adf_dev_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcbf0010d	adf_vf2pf_notify_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcc3b167a	adf_clean_vf_map
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcd4891b8	adf_vf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe5237d7e	adf_dev_get
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xea733411	adf_dev_start
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xea9a933c	adf_devmgr_add_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xefd5d7d1	adf_exit_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xfb4fa611	adf_enable_vf2pf_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xfdf85cdd	adf_dev_shutdown
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0xcbd2bdd2	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0x91bdc79f	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x01a33ab9	dca_unregister_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x3a7d6f9f	unregister_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x5f916fe3	free_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x5feafddc	dca3_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x784b0e04	dca_add_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x94a63a81	register_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x991c7386	alloc_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xaa634427	dca_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xac34ecec	dca_register_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xfa1ac364	dca_remove_requester
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x1234c8aa	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x87127b38	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4cba7326	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x54135315	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x575ae310	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x9f7b4118	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xba27f3c3	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xe5b580b7	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xe84f7c7a	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x6a3786d4	hsu_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x776c14b4	hsu_dma_get_status
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xbfc20add	hsu_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xef62e775	hsu_dma_do_irq
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x62e0d09f	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xcd3006e4	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x3d56382d	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x81748a3e	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xa12c9a20	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xcdb4b262	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xd3231a1c	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/edac/amd64_edac_mod 0xaf071a7a	amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x14878009	amd_report_gart_errors
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x1d34e996	pp_msgs
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x830c469f	amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0xaf761418	amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xe6459aff	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xeb3b6298	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x11dafe0b	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x173fde45	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3ca7898c	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x43740677	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x47371e94	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x5077698b	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x710b25d9	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7e751f13	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x94991b35	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x9f6ca34c	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xab01e330	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xad73d694	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb425ea5b	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc91976cf	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdc952d3d	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe369f677	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe8bb7a15	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xef5f9fb3	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf338f6b5	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x1e964326	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x3eaa5124	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x49116f8f	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x4980c3d6	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x50725ed9	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x5d75614d	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x74e94fa0	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc0fde167	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd4457699	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf216075f	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf61ca831	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf7314a0e	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x438fd6ef	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x55d85594	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x8c57765f	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x950e94a0	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9cd98f4b	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xb3cc30bf	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xbabb5f0d	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc0ef6277	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc20be0af	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xe77b5a48	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xec8dd553	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf896a615	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xfa702abb	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x099dfc11	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x0fbc7441	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x19fb4ba9	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x1fb72d35	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3f6beaf5	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x833c965a	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x8d6aab91	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x3c609bae	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x739518ac	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x7ae2ad14	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xb982df21	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xff24602e	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x38284a37	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x4b90b09c	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x8e586461	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xe9d93622	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xfe198818	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0xcf75fe96	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xca5f6fc2	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xda59514e	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0bb22002	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x35714797	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3b5d7e84	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3f5cbf34	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5ee44b2b	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x65448096	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6876e2fa	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x75ea84c4	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7878dbb5	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x817ec566	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x81887a6f	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8326f1c0	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x876f7c3d	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x89556f92	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x970f40bd	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x988c9f9e	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa5ad3297	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa8c08674	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc1c30f61	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc36c2d57	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc59a6e19	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xcc158883	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd6cb7083	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe9bc88e3	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf998670e	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x11ab1007	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x13de78b6	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x32646bbb	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x5e4a7a76	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x8f7b0877	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xb4dab821	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xb530aa15	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x05876c69	i915_gpu_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x08a7896d	i915_gpu_raise
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x402468e9	i915_gpu_lower
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x500858b9	i915_read_mch_val
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x6fbc5503	intel_gvt_unregister_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe627425f	intel_gvt_register_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe7237b0b	i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x04a6fa1a	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xc18b8e89	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xd38e7632	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1058ab88	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x26e88b3b	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x27560e75	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2d12ccaa	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x306bd6b2	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x30df4266	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4839502c	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x495a4315	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4b5130a2	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4dcd1007	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4eed5b6b	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x52d73eb6	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56a696c4	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7302e959	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x859be37f	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x86fd2a8f	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8ac3ee6d	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x981f2ffc	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9edda56a	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xaf9449a2	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb0d4361d	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb2be8a87	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbb1cfe2a	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc375f98c	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc3fabc61	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc72845f6	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc869e9b6	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc9dd7183	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcbbd38e5	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcde9164e	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd41e8d0f	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd70c908e	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe28a19ee	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xef351709	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf9a2ff11	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfd06a78f	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xff718f16	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1217b9a5	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x17d89c4c	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x24604769	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2ae75ba1	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2becc861	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x307071e1	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x363ca9f9	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x384999ad	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x393b860a	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3ade567a	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6399a392	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x675b8a30	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x74f75760	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7557f26e	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7b29aa58	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8571b4db	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x857ba754	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8637cacf	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x910cf93f	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9293132c	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x93138df5	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9f369f34	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9f57c5d4	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa747b3e3	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xaced5e49	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb2882437	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb8412107	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbc06efa8	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc29c193a	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc7db82f2	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd257a34f	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd2586a6a	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd299953a	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd7e8b11a	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc78f30b	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdd5aac31	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe6a82699	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe7d0adbf	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe80ef11c	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe9b6bbb4	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xeca38afd	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf4262e90	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf4a2aeae	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf8eea7a0	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x77741247	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x30c90d1b	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x5580adc4	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x60698388	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x6feef16a	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x932d68d7	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xda01438c	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x14f6f63c	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x344138ce	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x42ff9441	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x9c26bb48	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xb1c163e4	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xc19e1d85	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xc4aab06c	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xcbeae5e0	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf4c577a8	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x6a408d9b	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x89cbd611	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x33731a77	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x8dd1ae52	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x061b1f35	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0df72c8b	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x121cae44	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x16501c1a	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x18ef1faf	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x32c692f5	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x3d6667d2	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x4c5a4b4e	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x55c02e13	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x55e66e1b	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x80b0c920	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8f0ef6bc	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xafda5ffe	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb357f1e7	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd9d38fbe	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xee5eabf8	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf75894b1	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x2234fe51	vmbus_recvpacket_raw
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x26f73308	vmbus_free_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x2f3f3481	vmbus_set_chn_rescind_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x314c8007	vmbus_sendpacket_pagebuffer
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x31e2e77f	vmbus_free_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x35a944e7	hv_ringbuffer_get_debuginfo
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x46a417ca	vmbus_proto_version
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b2210b8	vmbus_send_tl_connect_request
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4c1472ae	vmbus_teardown_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x543adcdb	vmbus_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x5a26c957	vmbus_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x771170c4	vmbus_disconnect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x789d580a	vmbus_set_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x80df2a6f	vmbus_allocate_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8d3b9984	vmbus_hvsock_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8fc8ce2b	vmbus_prep_negotiate_resp
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x94346abc	vmbus_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x943b5a30	__hv_pkt_iter_next
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x94f2929f	vmbus_sendpacket_mpb_desc
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa2c786a5	vmbus_connection
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa5187875	vmbus_connect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xb76b98e5	hv_pkt_iter_first
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xb8f85153	hv_pkt_iter_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xb99012d2	vmbus_are_subchannels_present
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xbf9a27d5	vmbus_set_sc_create_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xd1d4174d	vmbus_setevent
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xde03b4f9	vmbus_open
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xe083506c	vmbus_establish_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xf85f113f	__vmbus_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x3571cbf9	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xbc2e76fb	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xd59d0fad	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0232b219	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0c4592a5	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x116533f1	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x18ec7ae0	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1f7aa895	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x20e5848b	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x23a19bbf	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x291919ce	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x353a470c	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3fdb9cf1	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x42006d99	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x64f4e2ab	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xad3eb620	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe0455a73	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xed859e96	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xeeb6cfd4	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf0d14e10	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf57e0c53	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf774af3c	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x050acb80	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x200e53e9	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2ae855c6	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x6ebd464c	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x706d16ef	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x7d1f32eb	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x8f592431	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa3bb20fc	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd78a8df2	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x3401270b	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x3be7bfed	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xeab5fc77	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x1846a923	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x56382f35	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6809a339	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x68d0c33b	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x77251e6c	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb238e2d8	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xd7f325b0	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xdb2395ce	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xdbce037b	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x72b3967c	amd_mp2_unregister_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x97cd53f5	amd_mp2_process_event
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xad173cb2	amd_mp2_bus_enable_set
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xb60385cf	amd_mp2_rw_timeout
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xb834bcdb	amd_mp2_rw
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xc2edb18b	amd_mp2_register_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xcdf2be19	amd_mp2_find_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-nforce2 0x725b6062	nforce2_smbus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x31b2c965	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x4afe1972	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x8364afd4	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x9bd3058b	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x54003c6a	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0e0be639	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1c9b4ef7	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x28dd3ee6	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3136293c	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3228177b	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x35dbf34a	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x398b45fc	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x42c1ef9d	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x44fbf0b0	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5974459f	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x59fcc34c	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x73e32677	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7d5d3edf	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa0b1d7ba	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa4b02f1e	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb16bfa47	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc0d619b3	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xcb52b0c7	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xcc2f57ab	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xce51c02b	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd6e28079	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xde555e36	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe80158d0	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf560f225	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfdd37cf9	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xa0a4c9f9	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xcc0a3df7	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x291d6c86	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xcdafb649	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xd2b0e096	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xf0a1d49e	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x305f180f	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x84974379	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xe42ce903	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x49f72ea9	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x77b26ed8	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x2d0d2bc3	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x430d4f4f	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x5a36a3dc	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x65006a2e	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x8506d27e	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9f974e80	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc492a365	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe17c1529	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe20347d3	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xfa922f2e	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x5781e2e9	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x5aea69e4	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xba3b84a2	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x2f801315	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x8193ad84	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xc4259db1	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x6d7869a3	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x8e1d45b1	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x0e66f251	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x135706be	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x52dcf138	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x614c6b05	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6c352e3c	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7d8f8dba	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xc15599f4	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xd0bd1804	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xd6b9d593	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xed8b4f75	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x85a9b1ef	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xcae481fd	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x12c88aca	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x30e021b0	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xc6164607	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xd95a653b	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xf03742b8	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x53d46edb	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x5f06a427	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xb8d78968	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0b7ad5dc	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x33a8e6af	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x513e25a8	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x539ac139	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x8dc612fc	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x9049dfd2	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x986996a7	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xae7d5a9d	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb47a2471	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc28fa379	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc60569fb	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xdb9d77e4	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x20e0b52c	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x026bc91a	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x0b77be79	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x7bc765ff	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0a181cd5	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0c211e79	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0c25b8b2	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1162dd92	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x11d4b7be	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x192bfba3	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x22372bc2	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2572258a	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x258232f5	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2651db27	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35cd3d3c	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x405a9974	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x43999134	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x44cdcf94	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x48d7a50c	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4c45cca4	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5bc64566	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5c3e40f9	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x615a5e57	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6b767e2b	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x70ad2276	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x741232a3	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7aac6df1	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7d232362	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x86093b00	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x87f4162a	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8c203446	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8fdb105c	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9379abf4	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x958a07b3	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x981c3dea	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaa57a97e	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb2218093	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb8f0317a	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xba92c537	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbac321f4	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc50cdefb	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc5648f62	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc5a3627d	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc85d0ab3	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd049e9d0	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd47a953c	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd9e396c6	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdab4344b	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe575de85	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe5bcd2ce	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xee214a24	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf49e3284	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf4a52c92	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xff22d355	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x86c6b6da	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0xe0fbe593	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x267b8786	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x38cf312a	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x3c61ef65	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x4106d355	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xb4a2986a	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xbcba7f2b	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x504ba35a	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x873bf34b	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x944d94ce	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x18fe3ca3	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x2a155b67	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x3daa2172	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x455fd1ee	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4ce8773d	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x59d51ae1	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x748ae45e	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8326e31f	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9b6b2a28	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb1e1fa64	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb85b4e2a	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbd20e0dc	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe9587065	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x2ea0f7c2	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xb6a8db9f	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xdc6abd98	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x5d196772	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xc902ff2b	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x68db5874	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xfb452b44	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x546cf751	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x7560d463	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x8a3ce575	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xfe505958	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x034f0756	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0a68df5b	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x118f2bb7	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x17d6c201	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x196941fd	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x481be4e2	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x541fdffa	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x9db1fa14	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc7a60457	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xdb7cc29f	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf3384956	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf9bdc9c0	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x0040106e	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x28c9ed67	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2b91f02f	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x307dcf07	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x3f66647d	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x49b55b7f	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7ed841c1	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x835d0727	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x8dbb6210	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xac763759	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc54b4db8	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc56893c0	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xda3cc9a4	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe52b7021	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xfe4d3fbd	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0f756ae1	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x1fd5f688	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x38b27633	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x601e807d	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x7ccabb86	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x858234b2	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x900014f9	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x97931fa4	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xea795eef	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x38ba2db1	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x71085e93	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x8813648f	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x8d2437fa	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x9982d1d9	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x9f998673	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x1101c544	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x25555ba8	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x2e7d505b	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x3aa7d3ba	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x4bce951c	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x73466376	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x95bef5b4	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xdfe08984	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe15b55c6	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf4a8f9bd	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xffeedae1	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x07bc5ce2	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1403b538	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x21460850	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x330d9ecd	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3ff9623d	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x75f120b7	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x880178e3	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x8ae499be	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbee3c2cf	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd888519a	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd9f429f5	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xdf6f58c2	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe3f6e054	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xfdb2c925	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x23d73a59	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2c67a391	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x419b7d0d	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x495f71a4	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x5050156c	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x57255285	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6039757f	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8683d429	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x925680b7	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x956e3006	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa0343f82	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa586390d	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xab555849	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xac742a87	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb5480a18	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe6690075	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf85bfde7	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2cd72688	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x6c53e3bd	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcb06bde2	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x63233a0a	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xd8f6bd0d	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x1109797f	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x4ca4557a	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x602ecc14	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x9a3551a7	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xcd05ed70	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xded12f0f	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x12191ca3	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x02f3d9ab	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x15462e90	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x19785564	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x2dce7e93	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x7182e147	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x71b68e8f	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa799404a	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xb19f36c5	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc46e472b	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe9680605	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x1dbd7a13	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x35398c9d	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x4d0e2e9c	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x5a13ced6	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x60afa666	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x7b58e7e4	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xc34377d0	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x01a2a40a	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x13e8c3a8	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x408057ff	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x414e1cf6	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x43c45953	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x47d34351	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x5928e5c9	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x73efccd1	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x97310070	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9924ef97	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9dbf1051	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9de5d3a8	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xb1443373	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbedf9f45	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xd52a1c08	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xee00d315	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf401fd4a	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x06e84c32	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0f05fca0	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2722e261	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2de0eb68	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3619a55b	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x36ca7003	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3b4ab059	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x55458272	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x61972aa4	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6d872896	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x75642a33	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8e45d17b	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9494c440	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9afdb48e	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa873c63d	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xabb3a285	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcefb67cd	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd032c9a2	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd1c0e84e	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd83b09bd	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xdd097929	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xeb10889a	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xebf106e4	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf5423e8b	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xfa13a63b	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x406d7e5e	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x5a83cc9b	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x7368679a	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x9afd53ab	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xde530209	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x014ef860	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0b68457d	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0f192ba4	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x11efcddd	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x17973aa1	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1d6cbca3	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x21253735	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x21a777be	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x41dd00ad	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x43367331	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4b264b20	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4c29527c	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4f04a465	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5410579c	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5a3e5175	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5fc0d3e9	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x62698158	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x68cde9fa	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6da2ffb7	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x788a9a66	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x84d58d0e	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8a4e4707	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x904114ea	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x91ba0219	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb0c9a884	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb9cc8974	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc2c3c5e2	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe29d055e	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xeafb3ffb	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xee240e27	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfce3da23	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x3843fd0e	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x4fa32bac	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x66288293	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xa8e448e1	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0xe5e91c11	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ascot2e 0x0cb99c59	ascot2e_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0x83479d5c	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0x3feaa084	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0x6285dd31	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22700 0x318b9523	cx22700_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0x7aaec356	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24110 0x08c694d6	cx24110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x7778f85f	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0x4950c6ed	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0xdd7d1b92	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0x6bdfc4c6	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0x55da5413	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0x1afc6e79	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x1c39d473	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x79a42cf6	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0xc8771329	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0xce4ffa67	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x0a9bac3d	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0xc6626903	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0x7c931387	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0x364883bf	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0x6584758b	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0x0f0a241d	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0x1cd066d6	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib9000 0x13b57c55	dib9000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x9c7f2c2a	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0xcb381458	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0x864dc1a7	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0x37f7227e	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0x2debbe1c	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0xe2f4a8d8	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x6ec78443	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x1ead8235	helene_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x60476f59	helene_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/horus3a 0x32160362	horus3a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6405 0x1a06ef3d	isl6405_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0xe4c494d1	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0x521114c4	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0x85007e4b	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0xfe9ddace	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/l64781 0xa802821a	l64781_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0x6101d235	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0xf8984248	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0x70f80786	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0x58586baf	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0xbc7a14b2	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbh25 0x41f2814a	lnbh25_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x744b6fa7	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x98579524	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0xad1c7783	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0xe443d660	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0x877993a0	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a16 0x40c7e800	mb86a16_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0xdd5833e5	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0xa969eccc	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0x0ca998d5	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0xf17a729f	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x25bd927b	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0xd7bce87d	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51132 0xa99a703c	or51132_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51211 0xd91fd59d	or51211_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0xefdad8b2	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0xf86a57f3	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0x22eb18e7	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1432 0x62d255b7	s5h1432_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0xf32eb5a1	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0x9dd079f6	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/sp887x 0x4273a1ed	sp887x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0x1fed8bd8	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0x542ec879	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0xfc81ad94	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0xbb821d17	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0x6ba90a45	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0x3c7c2dfa	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x3c127525	stv0367ter_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x4c8c0ac4	stv0367ddb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x89b173cd	stv0367cab_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0xb74eaf6a	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0xd01d61a4	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0xab1fb18a	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0xa8a78d55	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0x8fc18df0	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x378ed6e0	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10021 0xe01ee8a8	tda10021_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0xde6dbe5c	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0x15c2abc3	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0xe168475a	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0xf788f8f3	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0xfbaaf468	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0x78c059fa	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda665x 0x2629f691	tda665x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8083 0x466c2443	tda8083_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8261 0x277c4c89	tda8261_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0x65f23a18	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0x1e116a7d	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tua6100 0x3c346730	tua6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1820 0x64396c44	ves1820_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1x93 0x21a7122c	ves1x93_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10036 0x5539fcd6	zl10036_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0x24ed01e5	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0x6d9e7ddd	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x52ee0d2b	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x51d0b5d1	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0567991d	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x07838b79	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x08c6e7ba	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x13c0fa59	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1b406073	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1fc663e4	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x231867e3	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2663760a	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x27495b54	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x274afb79	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2b4a356d	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2da66265	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x34c88a09	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x353574f6	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x486f012c	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x48c12e5a	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5743a5ce	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6689437c	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x668faf67	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6e2599de	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x73e9c53d	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x77754629	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x854f8910	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9014c4a7	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x93384e8c	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9cbe76b1	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa1ded24f	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa7a7ff3a	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbd245fde	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc0b3404d	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc4c3f8d4	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc56e918a	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc9fc6573	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xca0361b4	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd47d278e	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc3a8774	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe7371bab	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe870159e	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xea7101d7	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xecdd14de	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xed3fc1a0	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf1eb7726	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf2d344b8	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf2dadb91	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf3cfbc7c	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfce44c54	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst 0x6ac0525d	dst_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst_ca 0xf0886804	dst_ca_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x793bd522	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x06a8f2d0	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x352bdff6	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x4dfcf8fc	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5acbe659	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5c4facfb	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x76d3336f	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x81b9e460	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x86e302d5	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xa1f84728	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xbefa5250	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc12ddce4	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc8d9557b	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc8e939fb	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdb3cef6c	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xdcbede9a	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xddc2b885	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe4c1804d	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf1da6db3	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf4c13396	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x07b9af72	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x21b77e12	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x285dc1e1	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2d68a2fa	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x36a6b5f0	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3a70f9f9	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x59fba3cb	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x5ae2354b	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x70c2cd2e	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x748afc4b	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x82ec61da	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa139033a	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa5045d9e	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb03aa9f0	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbfb8d505	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc45c2a1a	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd85c9f3e	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe1637b9b	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xfe175e5a	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x20772793	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x46baee4a	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x9af58f99	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xc8fc06de	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xcd382c25	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xea6ff8cd	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xf507ea7f	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x4f2a0ed8	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x5f755e4b	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x86b48f04	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xc3443089	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xc48c211f	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x145a2c10	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x45cb782b	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x6f879652	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x7c303d8e	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x924b19e9	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xc05d0a23	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x900ea0aa	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xf9161792	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x080fac87	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x5ed124e5	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x87a7fe97	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x8998e345	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xaa1ada44	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0fdecf3d	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1acbb54e	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x28a0b790	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4791cabb	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x522a06f2	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x561a0a0d	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x657bad55	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6f7301fd	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7905f1e8	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7b43a0f1	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7c0ee841	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa35c3c8d	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xaf687db7	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc99a7a17	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdc3bc424	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe3309705	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe79bc7a0	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe8eef56a	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0x10be4e52	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0x5ad535fc	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0x9e616b24	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0xc8d9fbef	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0x509066e9	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0x8ae1a4ec	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0xac322357	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x3d110b1a	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2131 0xc11ab410	mt2131_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0x80915b01	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0x8ba5eb9f	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0xec8bc9e5	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0xa760bdd3	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x0916e471	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0x96cd1a86	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0xfbd7bd9d	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x39aa9108	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x4a9ac3d1	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xecf62540	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x814cd71e	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x39bbfd66	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x79a5d28a	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x780fc402	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xdf77071f	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x4f082495	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0xe9cbb114	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0xbe2f0cad	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0dfa83ed	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x11f1240c	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x18a29f66	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2020b7b6	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x25cd4348	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2c75afdf	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x303b1cb5	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x519c64f1	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5c5b8c42	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6bef6117	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x8d2ff2a9	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xabc7defa	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaee3a195	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb69d92f5	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb990122f	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xbe0cc7d4	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc34e3a9b	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd66875ff	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe4be524e	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xedf3d6c7	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xf5952c49	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xbd69b9a2	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x02cbe083	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x0bb6a3b5	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3f6d0d94	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4d856238	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x61ed58a9	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x661b191a	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x760b5f62	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7ad2e85e	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x98ebaf08	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbeff519c	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbf0802d4	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xdd2f7c8e	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe99482d3	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xea54c7b7	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf0974104	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf0ee0879	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf49d071c	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf6c5ef7d	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x703ba77b	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x7d9287cc	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdf31b9a2	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xec3bbcdd	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xef15cc44	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x00790af1	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x26f213e2	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x5c0cee79	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0531774d	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0ad797e8	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1d0804b1	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x2a17ed59	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x2b594ec7	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x55ee4eba	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x69fe03cd	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x9eec5b21	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd6c84c60	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xecc46ced	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x082793f7	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0afe5388	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0ed7a91c	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1114161e	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1caa85de	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1d1979c5	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2eeefdc6	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x32f16d72	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x37aea8db	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4d84da0d	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5374d022	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x634b5e91	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x67c8956b	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6fee213e	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x73386fc5	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7a29c606	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7b83aee9	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8e397796	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x96993145	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa55f301b	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa6b7e41c	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb12a2846	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb80bffa4	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbb866c5f	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbce48b46	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbee99109	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbfabfb47	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd61e8f45	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd7bc6e90	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe62cb952	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xedae62ab	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf4b18de6	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf78b8140	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf7a9f774	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf8f88e35	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x020437dc	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x19de4248	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1d735e1f	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x370f196d	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x373f4807	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4e93136d	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5768f728	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x578f1791	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x63606833	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6609ce82	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6ff6a251	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbaa8badf	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc28c2562	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc4af9ec1	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc741325b	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc7992cc1	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc95840d5	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xce3b7e56	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xced5792d	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd5b630da	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe467e508	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe664be05	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xec1072ee	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf40d8ce1	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x234ace93	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x34a2301c	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x39cf9eac	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x60878553	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x462f5d09	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xdac276e2	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xecdcf9df	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x010c4a0d	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0248c6b4	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x07f0fd10	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x080a76c8	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x13fff1dd	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x184ecfcd	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x24a8dad2	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3054eb89	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x34a83786	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x354eab5d	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x37510fbb	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3a9e4ffe	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3fb78737	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x453183d2	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5431c1aa	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x57c479a3	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5886a9b1	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5bdf57f0	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5c295e36	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x64075fb3	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x681aabdc	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6f7c7aab	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x74a16197	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x787872b1	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x79d3ca73	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7a0c869f	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7c0ac1e9	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7c3e7c2f	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7da63011	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7fd06b89	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x85e253e8	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8772d647	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8a2993f6	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8bc2e649	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9412b174	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa1d66556	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaf0a8084	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaf7d3eeb	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb699224c	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xba69a840	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbd93b7dc	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc03b22f5	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc76531a2	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcdac098b	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcdd2ecd2	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcf053f3c	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcffe4c69	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd513d62e	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd517546a	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xde8ed47c	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe42430cf	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf40124cb	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfa2bee70	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfe188190	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x0b07cca6	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x0cb44229	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x6ab9e2b7	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x4cf09276	write_hw_ram
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xab853040	read_ad_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xb147d16b	write_hwram_command
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xc61e5014	read_acpi_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x1395aeee	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x7c890fd2	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x8c1f260c	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xacda5311	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xc8656db0	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xdbfe82f3	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xf00b3f29	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x22fdb5d6	intel_lpss_suspend
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x25b6be81	intel_lpss_resume
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x384f6ae9	intel_lpss_prepare
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x570ea157	intel_lpss_remove
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x79570c95	intel_lpss_probe
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x0b024ffb	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x0f8b1faf	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x1846f64d	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x52b51d70	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x5f0eeea7	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x90e7273a	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xee06e904	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xf96ac258	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x169e6b9f	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x2832a8dd	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x771444dd	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x004c08db	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x2cc5bc3d	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x32c1a483	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x811b4e55	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x8ce19396	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xba9d29bb	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xe4094e2a	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x110cc1d1	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x86ab54dd	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x953a4cb4	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f873501	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2a276dff	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2a2ab1bf	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2d1b0027	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x68aeda38	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x691270f3	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x691facb3	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7ee2679c	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x897636f7	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x897beab7	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x91a34147	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x91ae9d07	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x958746e4	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x987048cc	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa3d1da3f	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa3dc067f	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaf1fe8ac	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbef72d0a	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbefaf14a	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xca432bfb	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xca4ef7bb	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd2965c4b	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd29b800b	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe0e4c733	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe0e91b73	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xfc1ab0b7	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xfdc23006	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xfdcfec46	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x0396ac11	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x432ce731	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x51231259	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x6da2a670	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x9e9586a7	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xba0cc2c2	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x0feed7c7	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x16fdfa8b	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x42fd240c	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x45d48113	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x534139ff	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x740ccba8	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x8a3792e2	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x8f87b486	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x9d30e67f	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xc9659df3	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xee43e515	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x18343f70	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x653966dc	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x109ba975	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x31e6fb13	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x6668a5db	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xb9e15abc	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xd644b4b1	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xcce0174c	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x08d88c55	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0c9be08d	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x17587541	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3361c711	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3f398f48	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x47b41b52	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4e1bc5f9	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4e3a801e	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x59be9ff9	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6f25e67f	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7e6aab18	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x82b8bec3	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x82bb011d	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8937604a	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8e04add6	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9840466b	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x99800e12	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9ab7ae89	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9dff4729	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb2e50a61	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbc00d406	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbd6f01d8	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc8fd2986	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd38f717d	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd731978c	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdd9e9aa5	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xddb1e673	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdfabe1ee	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe32fe1cd	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xed947dc9	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xedba3ded	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xee1c4f07	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xfc1a4996	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xfd48245b	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x2bdd8c14	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x95ab6466	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xa5f30f83	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xe3d5e42d	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xeb3ad1ce	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x5654d0ce	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x5d9b1ba0	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x6d186506	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xf5ef954c	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x6e016a68	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x079aa50e	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x31e0fa91	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x9dcd0d43	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xbee9135a	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xd722aca1	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xe78ca11c	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xeb8c53c5	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x114892b4	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x195357b2	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1d152ccc	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x27d7a088	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3f093f8d	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x64b968a1	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x82f017ba	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9070dc03	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x90f27aff	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa27cbfba	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa34c92c0	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xaa259159	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xacce536f	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xad5085e1	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc7235e98	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcb1255ee	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcceeacee	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe5434519	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe62043df	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe98f7586	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xea6a1116	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xeff24fe9	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf62a0520	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf737b345	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0788f1df	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x299f3bc9	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x2aaf2570	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x2ed4b093	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x4408d2f8	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x4dbfc220	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x5a463e4f	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x97da1a88	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xacdf8e3f	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xcf5a1096	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xeac2cb4d	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xebef0d23	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xed03b50d	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x23616685	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x561d9f09	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x58a4e4e4	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xbba09b4d	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x075373f5	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x28e90b4b	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x372f830b	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3f5cb635	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x776cb1b8	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x83278377	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x8cde22bb	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xe5d1cade	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x1d656100	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x2ceed419	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x30bf49ac	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x5acb12fa	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x67ee8759	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x98c692e9	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa86617ff	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xf561031d	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x02b21e06	mei_cldev_register_rx_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x055e905b	mei_cldev_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x1263a149	mei_cldev_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x179cb492	mei_irq_read_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x1d618787	mei_cldev_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x24559d84	mei_deregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x2ddb5793	mei_device_init
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x2e39b447	mei_restart
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x40ca28b4	mei_cldev_enabled
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x41bb4b9d	mei_hbm_pg
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x452e9fb2	mei_write_is_idle
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x4e09e092	mei_stop
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x5360e356	mei_cldev_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x5bbeced0	__mei_cldev_driver_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6066c47b	mei_irq_compl_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x65de8dbc	mei_cldev_register_notif_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6aa47f4c	mei_hbm_pg_resume
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x6ad90ce8	mei_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x71065465	mei_cldev_ver
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7828e4ed	mei_cldev_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7a84dce9	mei_cldev_uuid
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x90a24af4	mei_fw_status2str
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x9298eb9a	mei_start
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x9e008bcb	mei_cldev_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xa0787e55	mei_irq_write_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xc7fe790d	mei_cldev_recv_nonblock
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xcf32ea8b	mei_cldev_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd8f6a3e0	mei_cancel_work
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe5ec61f4	mei_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x108adc12	cosm_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x3e99bb06	cosm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x5d8d584c	cosm_find_cdev_by_id
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x8cabb5f0	cosm_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xfe9a288d	cosm_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x5f377cc7	mbus_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xbc7fced3	mbus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xc36e5850	mbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xca5d5b82	mbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x1a75adaf	scif_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x47b3c086	scif_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xb0b42555	scif_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xdc370d23	scif_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x50adca6b	vop_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x6481b8ec	vop_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xb599f04d	vop_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xcdf479e9	vop_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x071312b0	scif_bind
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x0ee68969	scif_client_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x14283635	scif_listen
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x1da6bd77	scif_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x2f330496	scif_writeto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x36de0bc9	scif_pin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3f9d5615	scif_put_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x5501699c	scif_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x5be83669	scif_readfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x60335bf0	scif_accept
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x629f06c3	scif_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x6862ee84	scif_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x69a73140	scif_client_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x6f21fa08	scif_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x86a72f38	scif_vreadfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8ace658c	scif_register_pinned_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8f2fed3f	scif_get_node_ids
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x970f0d91	scif_fence_signal
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x9d7eed23	scif_get_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xb05012ec	scif_open
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xbbb55679	scif_unpin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xc08eadc8	scif_vwriteto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd428f025	scif_fence_mark
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xdefe1a63	scif_close
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xf3810396	scif_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xfde35f13	scif_fence_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x5b8bb699	gru_get_next_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x8dc51bdd	gru_create_message_queue
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x9c7283a1	gru_copy_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xd3d2bf04	gru_free_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xde08c325	gru_read_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xeed7d505	gru_send_message_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x1018eee0	xp_restrict_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x12333991	xpc_set_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x345c9217	xpc_disconnect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x39046c7a	xpc_clear_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x48e62c9f	xp_region_size
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x6285dfe8	xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x64ba5017	xp_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68d27065	xp_expand_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68fa7d28	xp_remote_memcpy
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x7d5ba9a9	xpc_registrations
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xc04c7267	xpc_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xe68acd6c	xpc_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xead4f7fe	xp_max_npartitions
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xed1d3813	xp_socket_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xf3b47f67	xp_partition_id
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8481635a	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x9724c6bf	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x024d14bc	vmci_qpair_produce_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x046dd187	vmci_datagram_create_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x056837fb	vmci_get_context_id
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x1fd4782d	vmci_qpair_get_produce_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x2449459d	vmci_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a22fa8a	vmci_datagram_destroy_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b	vmci_qpair_peek
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5591b58e	vmci_context_get_priv_flags
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5e949e0a	vmci_doorbell_destroy
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae	vmci_qpair_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x676bd843	vmci_qpair_consume_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x75fe065a	vmci_send_datagram
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7c74d7a6	vmci_qpair_consume_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x8042ebde	vmci_qpair_dequev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef	vmci_qpair_dequeue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xb572e830	vmci_doorbell_create
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbcb85f62	vmci_doorbell_notify
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc04c7e84	vmci_qpair_get_consume_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc403cafe	vmci_is_context_owner
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xde3abc2e	vmci_datagram_create_handle_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe0cc9c92	vmci_qpair_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe11895c1	vmci_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1	vmci_qpair_enqueue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea143610	vmci_datagram_send
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea61eefe	vmci_qpair_produce_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xf6fae598	vmci_qpair_peekv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xf8222142	vmci_qpair_enquev
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x03a1fbfb	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x08fbdda0	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x12d4e491	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x15d43b7a	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x17a4a474	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x22c83bf0	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x28228391	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2ac297da	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2cfda869	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x36243ab9	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3a2a20ae	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3d2111b5	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4078405f	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x407aa1a0	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x49113716	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4dd61c61	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x53fc4b5b	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5f0a7f6f	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x612ac65e	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x67c5acce	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6ad7443a	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x70254d4f	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7903d91f	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x935fa4eb	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9930ec5f	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9b7f5518	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9cca62a1	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9d726395	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9f377b85	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa2d3bd9a	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xad919936	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd0ab07d6	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xda4263d2	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xdd7e41c1	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xde344faf	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe6f6f11e	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf313b40b	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfd65624e	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xfe67260e	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x14e5b438	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x1cb42725	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x1d7977fe	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x3847f4d4	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x6d9a525b	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x762dd84f	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xa4910534	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xc927b0bc	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf0e34bb2	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x79e7250b	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x84f9009d	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xbbd02575	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x68945def	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x9b6d9269	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xe53fd9b9	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x0aaaf4ee	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x624f5f7d	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xa8266b9d	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xc07d9014	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x9d2e8f45	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xf015b534	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0238a359	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x11ab0b5b	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x129ced28	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x16d609b6	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1a5e1e25	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1d8e2f5f	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1ea11002	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1f0a9f49	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2349029a	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2655e531	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2a1a470b	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x31928c94	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x36851f11	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3eeb7a53	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x485a1854	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4def40e0	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x55a6da7d	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x57ee38ce	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x602c637b	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6c38d649	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x72b03eb5	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7326c934	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x73c2125e	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7c08801e	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7ce4c0b9	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x80b4cc0f	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x94f72a76	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9c3d7fd8	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9c899060	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa417d5d1	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa68e36f5	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xabc6e35a	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb0960394	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb26724eb	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbcfe24f5	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbd553588	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc479ded0	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc4f8cb74	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc8d6ba79	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc9b576f3	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xca19ec06	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xca801e7d	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcd7b11f6	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcf7d3332	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd7385d64	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe87565e1	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xeb479cfc	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xed0f08d1	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf23a34a9	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf2690166	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf2fa9d4f	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf46528ab	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf858369e	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x17e1273e	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x5216f4be	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x8fdaa9c4	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xb53f876a	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xc13e9a10	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x09a52a82	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x0edbec64	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x17b46c87	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x19fd6dae	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x2fa72f8f	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x37383420	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x42763f76	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x4df7537f	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x6f139a15	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd2dae701	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xe132933f	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf252b28d	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf514d2cf	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x11daef2a	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x3e10cefa	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0xbf5f5a5b	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x005b75db	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x04656ea9	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0759c58c	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1613726a	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1973da98	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1a151710	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x26319e4d	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x274ffeab	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x34294632	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x345f8414	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x35956cb5	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x425ed2fc	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x53db013c	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5e05b955	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8d8ac575	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x91c30bce	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x9c842868	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb34dc939	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xba7b032b	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbbefa6ed	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd3c83edb	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd62677ad	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe5387277	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe79e99e0	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe82169cd	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xefb5ea53	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x82554a60	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x356ac361	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x357d8657	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x03b25e5d	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1b143f12	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x1bd984dd	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2078b1d8	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2b7ab597	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x2e34a321	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3f0f9696	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x52e64468	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x59a5ee84	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x5c7eb646	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6ca39655	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x721110e9	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xccdc0cbb	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xdc54ba80	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x64e84a8f	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x8eb27ac7	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x25aff003	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x29a3789f	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x313e6458	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x491c6105	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x5690fea4	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x7342c8a7	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x0e556b2f	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x3c7765b3	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xd1788aa4	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xebc6e7d3	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x036a5b97	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x12558c56	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2a16def9	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x48e6349c	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4b839749	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4cb8ce91	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4f98dee7	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4fa05096	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x7edc5a81	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x7ef4e4ca	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8e33eb3e	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x999ea44f	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x9a3c9b39	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa4870416	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa4a2cd00	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb6ed0705	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xba2cf270	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xbfcb2896	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc0894cbe	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xd21bfc1f	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe2f18d25	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe4c5243f	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe57b6cca	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xea44c5d3	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf52f3094	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf563f1ae	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x0647b0d3	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x482b4eb2	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x5d18e1ba	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x64812e6a	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x72013754	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x820a092a	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x99fa363d	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xa29a1022	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x08a8a13f	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x32e47b0c	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x3d9e374f	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xa575fa0b	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xe47e5f08	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1d6904fd	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x27a5f1a0	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x2d12b48e	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6e417ecd	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x71f48bb4	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x918e206a	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x957ae206	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa33bafc6	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xaa68b0c5	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xb260039a	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xb629f100	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbc0283ee	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc8e2dfc9	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xca30fda1	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xcc61084e	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xee8808d1	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xffc523e0	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0bf88395	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x24eb3223	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x353e08d2	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x374c1528	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4082022f	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x463d197a	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4c06183f	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4e323e4b	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa1b49b0b	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xaa459cef	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xbb8af863	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xbddbc630	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xc636e013	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xc816021d	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd122ba23	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe0972197	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00de844b	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0314bd14	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05dc0eeb	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06a25a35	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b4d1729	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bfec621	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c858bbe	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x119d647d	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15723072	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17d23145	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17ea94c1	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x199080b4	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1cb0ae93	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e4e6558	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e877fb0	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21361adc	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21ae1d42	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21d1cb3a	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2499f3a4	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26629f2c	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27308faa	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x277c6c58	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29509c18	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x299805f0	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2acc8ce1	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32ff9112	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38de717c	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39370fba	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a420d4b	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c16ba3c	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c254ddc	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cf2d592	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e1a66f6	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fac07db	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fb4e19b	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41ff92a6	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x460d1e3b	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x500e9e79	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x503c8dea	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5463c274	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54d10f36	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56f41c59	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x576ab5d7	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5872d7c0	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5959f15c	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5afa16c7	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d70bd12	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f1eff65	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60274097	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67c39800	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6999d270	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69e51264	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b675d6a	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d0d403d	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6df4031b	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74302dbc	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76d0bac7	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79b5e948	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b037124	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b52a758	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d4f5a04	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fcbc078	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fd656c5	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80372c59	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x833f3ce9	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84bd19f1	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86c21cb6	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x870f52d9	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87d3f23e	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a9de19f	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d5a6958	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9020f9ae	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93714bca	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x938ee747	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ac00625	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b82f6b4	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e38b076	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f31a437	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1574656	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1fee234	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4198616	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa69fa66e	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7fb46ec	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9e2d9f8	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab0b4100	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae7d7d34	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaefb191c	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4ad1411	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb82254c5	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9bc023b	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba651703	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbaf7293c	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbba18609	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc2e7e73	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbccea448	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd323919	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe422a29	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc03b35ed	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4c82c7c	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5cff9b4	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc76a0287	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8a2097d	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd79df44	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce294191	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf7a65b7	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0be0053	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1279675	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd13d8ee7	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2d5691d	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4f9f18c	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdaf6d72e	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbc42ecc	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd4556d2	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf40711e	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2731d24	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9f5b79e	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee71526e	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeea8cdc3	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0eac81e	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf61023a5	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7d2860a	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9315fdd	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9b3285c	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa61751f	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff03faa4	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff32288f	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x067b6042	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08e3c2a4	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0bfea5eb	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f7581f6	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14e5aedd	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x171c3945	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18a926d6	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1cccfd45	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20c2e1dd	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c70726f	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cb5bed0	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d51db69	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e11df49	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ee68b0d	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34afd164	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x375f56cf	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39a627fe	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e90df36	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3fe4edb5	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4030135b	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43e44064	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44585f54	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46357bfa	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ae86fd9	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x501d6b92	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52236067	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5605e5ac	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x573427cc	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x582e7fbb	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f68e0f9	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5fd01ad7	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65dbcfd3	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c4134a3	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6eef154f	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72536470	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7362f570	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b7aa2b3	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7e9f39a9	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x808304a2	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x808639f3	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x810d287a	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81d64f4d	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x838613df	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x858afeae	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88b683ef	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d8c1106	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8fde027f	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x911ab7f6	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96bbd8ef	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9899e48b	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a8bcd17	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ebe6aa4	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f442561	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0b9d186	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa296b126	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa3c86f10	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabc77d40	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac674734	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf50e0bc	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0a6bd00	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc295c60c	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8af3f15	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9a43780	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca14cb41	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb97cf6e	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd245163d	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd43654af	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda88d399	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb775c18	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdda79a35	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf462e67	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0e67707	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe22c780f	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe43c3f51	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4c6a9f9	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe70511ca	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe724a038	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7467065	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf0bca6da	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf40d5958	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9053474	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc5803e3	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd70bd00	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe4d511d	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff8b268b	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x6bafe80c	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x22a2e224	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x2c93ee06	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x31c81ac7	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xc22e08df	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2f664b4b	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x4db55db2	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x537563ef	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x82dcda5c	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x95ecb2d3	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x7d8947d4	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xd0fca75e	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xe5ecd871	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xf7f772ca	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x96237cff	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x1d3b927b	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x21cf6325	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x55ba0721	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xcfcca183	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xe1aa7333	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x05beec5b	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x1877acba	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xa02248cf	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xdc8f8c0c	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xb5f68a3b	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xbf8ce192	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x1adf894d	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x294a113d	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2c7b6e55	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3099bb0c	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4ca50ddb	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5aeaab63	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6e32f852	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x80924beb	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x80f9d063	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x9ba3cdc8	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb48ba567	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xbfbd1173	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc93c9578	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd3e3a289	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe8f524be	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe9eec653	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xeb5b4f72	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xfeb1da92	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x306c6aa4	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x204bc2f0	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x743e6768	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xe9f107ca	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf7e1826c	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x0aede04d	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x4480da7f	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x5248413f	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x555fe8a3	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x6c817ea5	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x6d00d7af	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x83796b4f	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xb3aaf6f9	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xd8d6e6ff	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x0376648b	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x26d5b073	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x43de4554	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x506660a1	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x56d0520d	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x14733a05	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x488bfe2a	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x680cf416	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x88e7e1af	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x892c3df9	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x96b1eea8	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xabfe8e1a	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd97c1765	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xe06c328b	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xea6b5365	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf2710908	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x5417592d	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x5925e67e	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xb90eccb6	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xc980fd30	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xd7b4081c	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xfe48c69c	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0828ebb9	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0c3693e8	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0fae5687	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x15209b14	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x24ad9614	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x28905d37	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x28ea9e34	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x295ccae7	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2d3ad1df	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x36fdc1ed	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4444246b	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5254045f	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5ff19e61	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x61c865ac	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x61cbb699	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x657e1fe8	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7a136443	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x93159edc	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9d5748d4	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xada1cf63	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb2f08d74	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb433e729	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb76c86d5	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xba0bd10b	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbcd785d5	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbded3755	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc04c295c	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc5389301	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc6d81697	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdac1deec	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe39c0576	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xea25e2bf	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfb5793da	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x04db9f48	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x2687f719	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xa2e95d68	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xf5716a07	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0c07be91	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1eb333da	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x35626c22	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4f5e8d8b	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x78a1fa4a	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x948a695d	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x964a4303	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xa2c5f916	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb2cbdd25	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb6b874ab	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc041477b	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc478a6a5	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xdfc45e55	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe47f85f4	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe74c6d1e	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xfefbb0df	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc18c8d62	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x130e39c9	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x172545e4	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93e1f4e8	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe8b1b0aa	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf66e5c08	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02438e47	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x059d9839	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0983b11e	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0a1a040c	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0b27f40b	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1348ac54	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1614b986	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ada32a2	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1b8e3b7d	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1e5ff22a	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x250af312	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x25ae4abc	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x270b027e	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x271206f9	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2d867e14	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x334d92bc	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x361924ea	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3894b279	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3927ce8f	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3a173434	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3b9a09fd	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3da80a49	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x42da5844	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x44012ae3	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x49d2ab08	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x52f6c0b6	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x57deba3c	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x63624e09	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x66fd75c3	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6b956739	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x70a7a41f	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71d03be5	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8aca9d9d	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8c5c6fe6	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa0498b4e	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaaa1212f	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xadb97592	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xadd68366	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb4adc0f8	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb772bc44	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb7ba0c7a	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xba8e28da	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbd44b534	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc0dcffcf	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc5765d77	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc7b33781	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcaadb9f5	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd17a6aa8	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd345edc8	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd3ce4033	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd83a2484	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe6b1a3b5	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe7c3b89c	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xeb4df4e2	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xeddd2f3d	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf14c5676	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf6242529	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfa03cb93	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfa520097	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1bd32645	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1c9e6224	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x26768146	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x28f9c185	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x2ed055b6	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x36cf79c8	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x837e6b9c	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xc0023645	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xfdf2c08e	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x17c2c57a	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x2d58dab1	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x48a83c5c	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fc334e3	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x76711080	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8a2aa4d1	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb0e62ccc	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb76c3297	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb8a2d8ca	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xbf2ece76	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd3c56002	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd616042f	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xed4b2481	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xed4dbc79	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf13e7470	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfcf02e04	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x126d4001	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x28ccd735	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x91578951	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x917905b8	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xb6b7999e	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc226c315	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xcbd9336a	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xddbd8973	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x00d6c48b	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x01fcd7ba	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x04aa371c	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x18ad2611	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1ef135a5	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2144fbf2	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x30c6f0dd	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x37c7e425	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x45956ca9	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5bd2f294	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x67a7c282	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7104c570	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x742752a3	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7f438a56	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9079c34c	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa650ede5	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xaf0df115	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcc639e40	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcd52a4b1	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd17cd200	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd36190ec	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe66f9ac4	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf0c9ae0f	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xfcb25d69	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x00f23b27	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x09f441c4	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0b513c68	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0e03efeb	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x12308ece	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x140ff3a7	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x14530f6b	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x15a0bbf9	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1b10fea5	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x21a3f568	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2238cc3d	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x22cc008f	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x35c6e7d0	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x35d1da33	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3ba24b60	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x404de041	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x409162b4	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x40b15ad0	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x450d2f38	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x49fca1a8	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4b3c2eb2	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4c3f2616	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4f8e5452	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5b584d70	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x70bf05ac	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x77a0ce50	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x77ff0339	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x816eacbb	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x85e8e019	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x87923cfc	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x97e6525b	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9e4dc993	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa51064b8	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa690d157	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb6073f2c	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc2be544d	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc8c997d5	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcd3b06ee	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd95a7062	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdc855404	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdcccda87	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe097d355	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe5cab97e	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe6e0f871	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe8b6c84b	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe8fdf078	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe96eaf49	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xeeaf383c	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf1612403	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf232c52e	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfd37ddd3	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfec4783e	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xffa3a09a	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x0964c490	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x50884e0c	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7755d6f2	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7f53a16e	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa054c7fd	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xb1098349	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbac5bc71	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xf1e35929	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x1c56ff2c	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x5ca097ad	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x76914446	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x834e7864	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa70c150d	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb23519c4	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xddc1f2a8	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x031f1996	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x04e1f50d	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x09fa60fb	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0ab027a2	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0e244692	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0e91f6d0	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x12c6805c	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a65086d	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a918692	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x259890d4	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2966af9d	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2bfc8a81	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2c11d232	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2d7db384	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3664fd76	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x367c6ce6	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x395983d3	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x396a3268	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b0ab2f4	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b5303f0	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x54818d3e	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a5f7ddd	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d7edc36	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5daa07c3	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5e339040	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x61a1bb35	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x62b49298	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x643d253b	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c41247a	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6dbe6b8c	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x70f0c080	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x772e6e48	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7785ed03	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x784eb775	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x862ec3b2	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x86d1aeed	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8bf55b40	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8ddffe69	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x92002635	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x938dc2f3	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x947af083	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x959a678c	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9f298f11	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa487f6d0	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xafba3370	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb15e842d	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbc57ed70	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbccf844e	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc0b7e4a6	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc3ce763c	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc4062e3e	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc495b7da	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd0be2dce	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd553cefe	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd70a5381	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd9cbcfe6	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xda76c32d	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xddf3f120	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdf10ba12	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdfafd221	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe05d6039	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe64fc58c	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfd119fb8	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x0fb983fd	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3122460e	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x53c0e2e3	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x81ed726a	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xba1f3179	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc138a92e	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xf2727034	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x09e2eb7c	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x184c8f39	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1b00f833	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1c6b988f	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1c7d0ab9	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x29744dcb	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x38147659	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4b8aeec2	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5973a2cb	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x674ddbea	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x74106ffe	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8b7a4bb2	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9b0c085e	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb7533b88	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xbd646ec7	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc0936bd2	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd9511575	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe3568a30	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf90b126f	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x14d5403f	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x14e16c69	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1d48b51c	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2faf136e	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x4eca7e09	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x617a0187	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x841bd55c	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x8ee1deef	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xfb868194	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x05f00966	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0d7ae970	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1b237934	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x235a78c4	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x27cf4951	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2a7aedd9	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x36a9c8c0	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3ed4368e	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x44c44a7a	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4814a792	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4bde5d4c	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4bfa44ac	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x54de4d92	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x56b73499	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5bebeeec	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5d11ccb9	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6170e8db	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x66a3d56e	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6ea42e88	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x722edcc5	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x732def09	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x75e50b7c	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7ec34aaa	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8349a3b5	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x846c1f10	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x898537b1	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8b865965	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x93237e5f	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x93a42d4f	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9681e829	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9a5006f3	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa329ff20	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbd7d37e0	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbfaa68c1	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcefec6a3	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcffae8a6	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd46734af	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdc70f9ae	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe73abd30	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xeb7f6a83	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xeba12734	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf8c4840c	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfab646db	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfd27cb12	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0aaee77f	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x24c89527	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x278a1a6d	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2d96dd4a	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3f3598c8	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4e9671a9	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4f8e4ec7	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x56779d91	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5f026eb5	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x68a2b927	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x93e6fccd	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbdb711c0	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc411c4f6	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcd9a4585	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xeab75a9d	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf732675c	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x01a94ec1	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0ffd7351	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10f65ca9	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x126ed1e5	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1943e49e	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1acf18f8	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x237cb685	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x23e1c17c	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2880515f	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2aeb7768	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2b135f56	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3010e2e6	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x302b39a2	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x35b2e763	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b6acef2	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3c6c598c	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x456ae4d9	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x48af98d0	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4a9618b2	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4af390af	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x539bab90	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x54cfda36	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x685afbd7	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6b2d0ecb	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7517d04a	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7e602ef4	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x913f99fc	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa12f6087	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa4b93a74	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa6ce1842	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb04e51ae	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb213bcfb	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb5c9511a	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb5e8fb5f	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb7e23c94	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xccd5e618	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd0838956	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd104f5e9	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd585df53	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdeb9a16f	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe0617a16	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe77a322a	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf57660c2	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf87f7463	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfd0e8aba	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfd3b4532	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x0222decf	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x53834ac6	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x6443ca0e	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x8c23ef1c	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x96971dcf	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x08f3d21d	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x322c96da	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x80527e99	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xc64e55ce	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x054f05c5	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0bf48150	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x30e5e32b	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5bbda0ce	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x65dcd12a	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x757bf0a3	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7aca9c7b	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7b798877	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x81aaa96d	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x832fbfdc	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9145390e	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa6c598ba	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb38fcbf3	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb6bfb16c	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc684e8a5	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd9c304ef	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9974d0f3	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa2f70067	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcca3aa6e	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe67dc566	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x06632a95	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1134662a	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2bf19b58	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x33294be5	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x341eaaee	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0	rtl8723_phy_calculate_bit_shift
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x401f916d	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6727cc9a	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6bcad3dc	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7062bf65	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x857cc936	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913	rtl8723_phy_set_sw_chnl_cmdarray
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x966f0212	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9bd454d3	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa04e69d5	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa7eb3455	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb29ee6da	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb70089a7	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc06d719e	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd2a39344	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd686596f	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdf15cd10	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe59e6d86	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe670349d	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xed796588	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf0354cc0	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf0acafdc	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x13aa0e53	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d32cdfc	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3026da87	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3538504d	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3f566796	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4128183f	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x47d61b65	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4eb36f90	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x50fc1426	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x52ef6ef4	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54b216f6	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5a2a7059	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5d415eb0	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6929a619	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x952c32db	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x99377e60	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9e6ddb89	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa2a0ee1c	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb422d9bd	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb647564f	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb9805b36	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd7c6bd40	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xddbc5668	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9fc92fd	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed5598b8	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf5ebf225	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x1391df57	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x62381ff6	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xb14a9d4b	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xbd38fdab	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xd98e6b3e	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x38104ea0	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x8c8b132f	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xb6671177	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xfc3bf5a7	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x2dd25472	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x8c83a89e	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xeec320d3	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0a3c8e50	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0bb4104e	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x18420119	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1851f992	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x19d05bba	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2c3e3676	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2f00f833	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4214f568	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x42a74175	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x490d932b	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x49103eaf	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4e5edb53	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x50193a5d	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x536ff300	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x551d0448	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x55c3a108	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5ab79a4c	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5f4547c4	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6365b5f0	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x63acf709	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6b8b79e1	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x720e8512	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7891c4d0	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x789e9481	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7ae4bb3e	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x80c73040	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x89002592	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x89ace52f	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8a063a56	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x90c36e87	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x92744ef3	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x99b6b48d	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa109ad97	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa3d3246a	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xaa5eb6e2	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xad984d14	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb107990d	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbdbed5e4	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc33fd239	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc54828d9	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd40a91e8	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe0d1a710	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfa71de56	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0xacd923d0	mei_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0xda662bac	nfc_mei_phy_free
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0xfbc65c54	nfc_mei_phy_alloc
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x649f03b8	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x86776949	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x8f9f9147	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xc492fcc7	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x06b543db	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x2895f431	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x771063fc	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x7c07216d	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x081ce20a	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x1ba4845a	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x1e7f48e3	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x26dee4dd	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x48049d53	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x87efc214	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x904506ef	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb3fd0d3d	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x7f656846	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xb7ab35a1	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xcb41934d	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x30934216	ntb_transport_max_size
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x32537aca	ntb_transport_link_query
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x3d54dbfc	ntb_transport_tx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9566a272	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9c992c8f	ntb_transport_link_up
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc270dc24	ntb_transport_free_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc37d9036	ntb_transport_rx_remove
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc72a70ae	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xd40e7a02	ntb_transport_rx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xe372fd2c	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x541766ac	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xfda35d14	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x06670b5d	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0d1d45c8	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0ef038cd	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1542ed8a	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1e5c3676	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2aa5c3f6	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x34a05b35	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x44110e83	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49c5b32f	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49f43819	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4b7329e8	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x583d0004	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x63a8ea26	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x63ce556c	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x69625086	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6f5ded49	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x750e0c2e	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x76ab644d	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7d0819c3	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x844e654a	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9a1a045e	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9be2fb9b	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa9836219	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaf678194	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb1a0499b	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb53b733f	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb977edb3	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc28f777d	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc336fe57	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcc0f7494	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd3d032fd	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdb0deeda	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe2402534	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe4a420ff	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe9e70bc8	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf1a30aa5	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf9f9495f	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfa0990c9	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0131e8c9	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1bdafa7e	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x20045ed2	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x235c120e	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x35b20a28	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3606a073	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x5059a72d	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x5d301bdb	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x63798509	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xbb3c9c58	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe45436fc	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf867f229	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x9fb1882c	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x0a6017de	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x0f284f56	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x275faa01	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x30595c8f	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x48829a14	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6c419a2a	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x8b33bc6f	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb77f1c74	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xbea0bec6	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xede35b8f	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf0fbc763	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xe18aa9a5	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x1591b2c6	hyperv_read_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x221394ae	hyperv_reg_block_invalidate
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xe5f73406	hyperv_write_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xfb921e00	hvpci_block_ops
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x4a28fb37	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x476f11b2	intel_pinctrl_resume_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x556bca04	intel_pinctrl_probe_by_hid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xc479dae7	intel_pinctrl_probe_by_uid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xca630c48	intel_pinctrl_suspend_noirq
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x0d971665	wilco_ec_get_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x1084affb	wilco_ec_get_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x4baa2191	wilco_ec_set_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x561da2cc	wilco_ec_set_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xcff569fa	wilco_ec_mailbox
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x31f61574	asus_wmi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x38a4272d	asus_wmi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x57c46ceb	asus_wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0x51552fca	dell_rbtn_notifier_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0xa060fe7d	dell_rbtn_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x1b0b3141	dell_laptop_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x26bed403	dell_smbios_register_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x45170471	dell_smbios_call
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x79c0fdf0	dell_smbios_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x7fd2ce06	dell_smbios_find_token
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb9400dbf	dell_laptop_call_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc2871e79	dell_smbios_error
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xd6c6b12d	dell_laptop_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xf5d2df77	dell_smbios_call_filter
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x8eef8246	dell_wmi_get_hotfix
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x9559234e	dell_wmi_get_interface_version
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa167d064	dell_wmi_get_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa3dcfa65	dell_wmi_get_descriptor_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_ips 0x46809fa9	ips_link_to_i915_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x659f040f	intel_pmc_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x9bd9354b	intel_pmc_gcr_read64
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xa7f53967	intel_pmc_gcr_write
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xad38eacf	intel_pmc_gcr_update
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc49eaee5	intel_pmc_s0ix_counter_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc845c71a	intel_pmc_ipc_raw_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xd2a5d365	intel_pmc_gcr_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xdea07053	intel_pmc_ipc_simple_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_punit_ipc 0x8ee9455e	intel_punit_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x06f7821f	isst_if_mbox_cmd_set_req
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x50ff1872	isst_if_cdev_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x58a8261f	isst_if_mbox_cmd_invalid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x861369f8	isst_resume_common
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x9a5c38f2	isst_store_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xe18f42a5	isst_if_cdev_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xf1ffb8cf	isst_if_get_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x1c7565c2	telemetry_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x35db93a6	telemetry_get_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x3d2a8587	telemetry_set_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x4cb51f18	telemetry_pltconfig_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5847f501	telemetry_clear_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5bb8e91a	telemetry_raw_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x665cd407	telemetry_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x6b892524	telemetry_set_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x82bb2dbe	telemetry_get_evtname
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x90551504	telemetry_add_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xb75bd1e6	telemetry_raw_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xbb9a2726	telemetry_reset_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xd14ffffc	telemetry_update_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe1eb4be1	telemetry_set_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe8847f53	telemetry_get_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xf00771b0	telemetry_get_eventconfig
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x232b5238	mxm_wmi_supported
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x61cdf799	mxm_wmi_call_mxds
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0xe26032eb	mxm_wmi_call_mxmx
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x065b4695	wmi_get_acpi_device_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x17b0f8ca	wmi_get_event_data
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x200c2517	wmidev_block_query
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x31d635a8	set_required_buffer_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6068bedf	wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6c4fff4c	wmidev_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x76ae31fd	wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xaba842fe	wmi_query_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xc9d4d6d1	wmi_has_guid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xd7752b86	wmi_set_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xf18bdd75	wmi_install_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x1fede300	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x3d284923	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xa0319cc6	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x2700610b	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x878cb424	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xf1fc44f6	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x21698744	rapl_remove_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x94324351	rapl_find_package_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x9dc7091e	rapl_add_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xbca39d03	rapl_add_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xd7d4f191	rapl_remove_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x1eeffd82	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x376cb8ca	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xe8696815	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x32c84240	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x419256eb	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x4edbffe5	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x846bf5b6	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xcbfdf148	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xffd81511	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x55741e9d	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x9a8cf4f0	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0xd7ab8825	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x01c1366c	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x05d38ab5	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x088901a8	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0890592e	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0c61b989	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0f3efb8c	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x150d80fd	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x161fb0d5	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1f3a2730	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3f7c7729	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4a4ab954	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4a7de548	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4aad946c	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4b37b29d	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4b8062be	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4c909bb2	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x550c277a	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x56b98edc	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x64431e24	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6a7a0d08	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6c41fde3	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6d4df9e6	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x72319508	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x88924fd4	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9344c5e3	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9ac6670f	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa45f5486	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa8caf176	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb5ef4020	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc13fbfbb	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc61b0f93	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcf19d655	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd34eff97	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd8faf0b0	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdd510929	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xec649e3f	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xedcc8baf	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef544e23	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf33c30b9	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf4099cbd	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf41f35d9	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf46d2718	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf707ea04	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfc1d2dc2	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1623fce6	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3a5ec61b	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4a4031df	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x51cd2fdd	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x72112dd1	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x8142e7ce	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xad5c3119	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xadfe9559	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb94bc8d4	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc107a054	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc12a7a8b	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdcd723ca	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdd299da5	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe2ee5f09	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf695ab9c	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfe56c6ed	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x5f2c0c8f	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xce820b11	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c7c6002	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cf9e29e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61eabfa8	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7ff195b0	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc6125854	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd93b63bd	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe13e6489	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0xc34ea0a4	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x07d1c108	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1e97f870	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1f4dde7c	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x339753f0	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x35125f41	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x35697df8	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x358e3ca8	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3aca4134	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3cadfae8	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3cf5eb95	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3deaa190	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4494002a	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x474dd6ae	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x490d7d6f	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4be1ff15	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x642baa2b	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6b3708dd	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7430a76c	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x796cdc9c	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7f2f8f20	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x825e201c	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x844022cd	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8a58f8e9	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9049178c	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x93c5395e	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x998741df	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e06f6ab	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa3fb8292	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb3e28afe	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xba3474fc	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc351364b	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcdb34ceb	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd007bb84	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd1446c89	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd2454dae	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd5003521	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd86bd546	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xec0891a0	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xef81a1bb	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf6269004	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf815b712	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfaf3a669	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x243c8338	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x25b63aa5	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3c195556	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x3e765661	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x52d3560e	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6501eafa	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6b038b7f	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7b7b6b6c	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x858c2697	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x87d8219b	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x8ca261a5	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9db5dd0e	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa457b478	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xaf883355	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb25e1e43	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc0c3d75b	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd7789531	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x01153bfc	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x02626705	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2390e06c	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x28c1c376	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x301890a9	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x332b25dc	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x380fc782	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x38ba9df6	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x52115371	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5a4d383e	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6abf68ed	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x75a6e8a9	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x772a039b	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8fbdc3ae	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x93c205a2	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x949f2969	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x99bcb875	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9f9009ac	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa018fc1d	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa7ef0110	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xae70293c	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb050ba1b	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd69bcdc2	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xee04ab24	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfb02f4b5	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x02a6c2d8	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x08b2b1eb	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0c58dd4a	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0eab0478	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x13b0bfd8	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1f2ab437	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2a795229	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2ab556f3	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2b3b39df	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x32786777	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4ac459bb	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4bd3584c	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x515cb361	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5c39f723	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5c6da31d	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x675c269c	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x68bd71f6	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x68c57452	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x75227903	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x77552b65	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7770a3ba	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7cd2dc0f	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8373856c	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85d5ec1f	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85f4f631	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8cdcf414	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8e7bcd3f	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x91287377	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x939de59c	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa7d97d80	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb13d6431	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcff20df0	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd44d1ada	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd6d3be9a	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd9b3940e	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdb41dd22	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdc21066d	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe8573a72	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xee4de4e0	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf1666b91	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfbe7d769	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x58ec1d09	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x85c86a01	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xaa2f50d8	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xfa12c1e6	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x42b89b5d	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x2d6bfd5b	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x2de5b1f8	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x7ef042f0	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xcf9fb56e	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xe53231c8	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xfd64e742	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x2fa2d952	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x38cc8c30	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x4c35d9dc	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x895199f3	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xa57682f8	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xcc636c7c	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xd5d41faf	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xf01218db	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xf5603b6c	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2bed18b3	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x3111efd3	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x49edef05	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x55c98f44	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xaad73286	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd430f713	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xe77faf29	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x22255e04	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x45ea2501	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x56598109	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x5d79a5cc	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x6b57e68c	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x70c76c01	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x013fa507	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1f07a26a	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1f673326	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x270c8f6b	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3cea2ca0	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x408e6243	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x57f1db6f	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x68923885	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6a71d0eb	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6ce94d44	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x828366f0	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x91e726bd	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x95807633	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x97a2c753	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9a067b1d	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa16545e0	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa70e6a1b	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa7473d5b	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xab2f5de3	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb9895a83	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcf2271ee	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcff96294	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd0666162	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd9d4f161	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xec68e19a	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf8a1ef3b	slim_read
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x2f7c6f67	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x8d202ff3	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xdb650aae	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-cadence 0x3f56391a	sdw_cdns_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x0a7fa16f	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x0ecea47b	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x2d19d4d8	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x5e619cd4	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x83b8a141	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x8a4676b2	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x01d71385	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x0bf7d5f4	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x144fa868	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xcd8ad9a9	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xea92b481	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x00f96c78	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x0bb32a77	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x3c001aa9	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2aad53b9	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3038a24c	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x34721a73	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x47a09493	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x5facc694	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x62bf6ed2	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6cadda63	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x724fe177	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7edb8d6f	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8a6928ae	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9a4d01fc	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x9eafb062	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xab68e0e1	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb1dc55ab	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc042eb2c	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc265f79e	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xdb3ae356	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xecca1438	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x8c912486	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x06371e5f	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0c1ed9db	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x10addb24	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1f829baa	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x24087766	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3d26e2e1	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4acada1f	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4bca8cd5	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5786b886	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5a9de277	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5c9e2684	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6759fd6b	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x68549a5c	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6aed671e	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x76f19484	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x78494b61	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7f83d3f9	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x84f6bf60	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8c660318	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8f15f72f	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x97b52611	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9ab7ba87	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9ff5b866	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa0da9ae4	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa7c2727f	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xba04825f	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbcbe6792	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc6ec202e	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xce5fc80b	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd1432f01	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe1b1f29b	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe319fcaf	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe7c13dea	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xed02a4e1	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xed2c8e69	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf9d3f3ae	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x00c254a5	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x2c776f7f	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x74240ba9	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x8e05e4be	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x8e5f502a	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x916f05ec	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x97fc42e3	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xdd53ec50	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x06e831cf	comedi_pcmcia_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x1041c714	comedi_pcmcia_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x398bf7c1	comedi_pcmcia_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x5966f90b	comedi_pcmcia_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x825f7761	comedi_pcmcia_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x95f07ece	comedi_pcmcia_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xde7e5ec3	comedi_to_pcmcia_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x15721502	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x1e771cfc	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x2659bfa6	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4a901eea	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x56d2551c	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xd13078b3	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x165b0713	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xd3d85c3f	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xd4c37705	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0xd1d79b79	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0f998db3	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x19df1f76	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x2221c150	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x28ab6a51	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x64fc1952	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6f4e2b6f	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x74db3387	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x768c3644	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9af068db	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xdc8dcbc4	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe18e969c	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf9c50c42	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xfa7d06d0	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x1aa72df5	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x7c7ea2b4	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x9d748bf2	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x2f13a663	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xf169b510	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xfedaa854	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0x62fa5164	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0732eef2	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x18343a7e	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x22859386	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4dd50817	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4ecc2b1d	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x77999a6e	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7f3ace3b	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x832ac089	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x95485670	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x9b589deb	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb2a9c473	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb91915e7	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xcd253612	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xd25ae5c7	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xd2d2a906	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xe70a2be4	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x1d6a6d04	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xafcdbd7f	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x412aa0b0	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x42dc7409	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x7ee4cb5c	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xcf12b9ac	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xe795b270	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x19162a42	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1fff49c7	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x2655c761	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x284e96b6	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x440d44bf	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x80f73870	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x8c2ca06e	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x8e680546	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xa64a18d4	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xbca623ee	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc3074eae	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xcb48b685	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xd9d0f2cc	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xdbce0c11	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfab2955f	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfe9c4540	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x038077df	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x38f206c2	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x6497ae97	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x66beb1b6	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x69d1784a	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xdc3b786d	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x0ba9a012	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x0bb5877d	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x4202c251	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5f2e4f64	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x61ed968e	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xbc2101e1	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xdbf27fe8	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x063e17b2	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x285b2480	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x5d8cac51	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x984c312b	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x0a4a45a5	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x17080391	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1f1b6a4e	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4f3da566	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x6f3bd681	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x70028564	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x72a77e82	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x7e8941ca	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x96de1ade	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9fc7efed	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdab00f2e	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdd0eba3d	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfab67cc9	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x111161b9	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x20e1d7cb	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x47be2cba	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x558bac79	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x82c6eeb1	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x940d1254	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x998ec04f	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xce650004	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xdbde6cda	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xde903b5a	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe1b5f87b	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe37847f6	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf6c32b28	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x944132ea	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xe88d2704	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x5a9ec032	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x8739f026	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x2c4dda3c	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x372415e0	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x111ca89b	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x050dea27	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x101505c5	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3c5eb5c2	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3f752c02	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4d114d66	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7d216872	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7f335381	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x85eba838	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8aa0f499	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x964e5cd4	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb92da02f	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcf80719a	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd62f15c4	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xdd850371	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe35ef299	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf2700c31	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf4cbffef	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1220d64a	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1951479c	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x24aa2ece	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x295488b7	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2accbde1	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4389fbbd	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4fa2abd9	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x68da1d27	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6b754175	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7595d3a9	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb22416df	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb76684de	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc30699ca	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xdc03e28f	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x17de2132	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x19800527	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x19f3a2a3	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1dab6241	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e9a14c0	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x3ebb4b8a	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41ecbda8	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x71231c2a	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8f9b0fa6	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x905f5cac	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x99f6d035	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa1c872c4	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbab4a1a	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xcba9ed14	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe402048b	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe9f9a199	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf7450ce8	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x1d061af8	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xc4b5b22c	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xe68917a4	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x04d97193	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x14c33a08	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x275041ad	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x45c9dd22	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x62d6b5e1	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb07aa5bf	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb9e4f849	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xfa0bfb4b	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0a608bae	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0aaa4bef	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0f450c32	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x116bd731	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x118f70c7	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x16bfabe3	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x19fee2e2	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1a2a11b5	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1c199ab0	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2b768bf1	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x305ec8e4	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x464e88c2	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4ed668a2	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x511c8251	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7052b7bc	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7a1cb95d	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7e2fcf91	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x86de9a07	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8c6365ce	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8c694034	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x90d3dee7	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9226231c	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x95fbda0c	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x96ff7ff7	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa86e37df	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbe86544c	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc067ee99	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc783fde8	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc79d6bd0	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcd85e127	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xda13b480	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xdc2d2f73	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe85d3ee2	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf3aca03e	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf3b09074	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf51d7b18	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfa7838e3	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0xd32526c8	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x60d08c6d	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x6532de2d	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x91498b62	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xa2d50821	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xa34cafdf	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xa5e75853	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xe70f6985	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x00ea95b5	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x129ba4f3	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x3bdd99a9	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc0362950	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xd26bc37f	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xdb9001e3	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xea3ac927	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x446963cd	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x4472f56d	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x483f52fa	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5027c060	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b207859	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x719e052c	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7f4b2892	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8e06c49f	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x91cd3b83	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x93b6f029	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa122401b	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa84506c6	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xc65c757c	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd5df27f2	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x1f307c57	int340x_thermal_zone_remove
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x3be16418	int340x_thermal_zone_add
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x496b174e	int340x_thermal_read_trips
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x1428f032	intel_soc_dts_iosf_interrupt_handler
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x2afb4ef9	intel_soc_dts_iosf_add_read_only_critical_trip
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x310cae02	intel_soc_dts_iosf_exit
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x37364d88	intel_soc_dts_iosf_init
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x01d23ee1	tb_property_create_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x0f5591d3	tb_ring_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x2060c249	tb_xdomain_find_by_route
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x20ca0262	tb_xdomain_request
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x309831b1	tb_xdomain_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x393b4f2f	tb_property_free_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x4e5064a7	tb_property_find
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x4e64bdfd	tb_register_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x5bc6d34f	tb_ring_start
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x603249ed	tb_unregister_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x658e3d97	tb_property_add_immediate
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x73ad2acb	tb_property_get_next
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x785eb82c	tb_property_remove
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x82d8007a	tb_ring_alloc_tx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x86f4e9b9	tb_ring_stop
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x8b62f95e	tb_property_add_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x9e66c0a4	tb_xdomain_enable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa3d2b403	tb_property_add_data
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa7987809	tb_xdomain_find_by_uuid
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb363e0c9	tb_xdomain_disable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb4746787	tb_ring_poll
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb7c7cdce	tb_property_add_text
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xc4f108e0	tb_unregister_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcf244d1c	__tb_ring_enqueue
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd18a0f81	tb_register_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xd2febd95	tb_xdomain_response
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xdec7db84	tb_service_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xdf3db22b	tb_ring_free
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf1cfd1ff	tb_register_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf76028c7	tb_unregister_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf7f0131a	tb_ring_alloc_rx
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x0079de5b	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x4fae5a6a	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x5d5ed0c2	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x602d4ad2	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x664fb05d	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x7389122c	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x75b6881e	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xfa0d7b47	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x0e8d9466	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x365da5b4	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x42696a63	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x54b9644e	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x582e984b	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x8e0c2ee9	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x076346f6	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x1eea8647	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x40a21345	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x6d704aa9	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xaea333cf	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xf25181b6	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0597ed5e	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x23c3c9e0	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3b120ce4	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x477ab518	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x5227ab5e	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x78f2ce51	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x7e6c9d89	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x83dfe26d	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x899e3490	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8cd10890	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x93e0188c	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9d8034b0	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa32bb826	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa46d96aa	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc5adec1b	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x09e5dfb5	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xf682320e	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x1729eb0e	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xcf0ad1c5	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0a519875	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x21771d3d	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x43b950ed	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x54488513	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x5a486c8e	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x64f0be8e	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x75cea038	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x81852f8f	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x86c4da3c	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x8d931fff	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb1ec3f2b	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xbb0f1644	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcfed7afc	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd40829c3	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe16f96e6	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe55d6676	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xeda58c80	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x0595d3bf	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x166f2322	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2a69faa7	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x35de8450	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x38677763	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x4e48738f	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6af6cd4e	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x89564236	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9192a268	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xb1a34e09	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd674f217	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdce5bd82	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf0b5ebb4	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf4aaaa8a	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf98a1816	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0cee4b24	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0cf6fa34	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x138e0691	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1f5fb0cb	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x21b6a03d	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x26bfffe6	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x27015fdf	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2916a611	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3fa893b4	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x57ca1867	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5c3e48a9	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5cfa5c94	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dadd0b9	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6fed2f09	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x73b3ac37	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x74b1381e	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7e8d3293	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7ebc9934	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x81a712fd	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x81c70c21	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x86e71f50	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9e180a13	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa0394269	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa0511e73	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb3115ece	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb7909e4d	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbdf6dfd4	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbffbde17	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc70801a1	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcece72a3	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xee010a8d	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x29d59ca6	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x2af93040	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x36646649	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x69114f5d	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x7a188ff8	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x7c68d6e2	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa3cb75b8	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xb7fcea8d	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xed6abf8a	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0152b466	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x052276b4	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0852d644	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0aee1ae7	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x25ce8de3	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3dac5530	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4090e0cb	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40dd4203	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x41b05cbc	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x52981852	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5de8fd5a	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x698e5fc6	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6c43dc9b	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6e5caaab	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x780c738c	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x85898aa3	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8a44a14d	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8cc49f62	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x95c0bb2a	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa40c98c8	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa5f5ea49	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb508129c	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb6fbc197	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xdad91efc	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xe22c999b	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x4f3ba589	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xfc189c77	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x58a30da4	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x5f4550fe	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x66b2307c	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x69b01c98	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x84c059e6	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x9b02cd75	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xbe8a207a	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd8d0069a	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe64036ab	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x63d492e7	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xa15133ba	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xbaf31625	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xbd4ae14a	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x01b9fbcb	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x68a118df	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x731ded49	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xc076a56a	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xcd593b4e	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x5db0b17c	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x476d400c	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xafa2a4df	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd041fd26	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0xb2720366	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0b350f01	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0d35fa99	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x104f56c1	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x12f739e8	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1e8e4c9a	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x279214a6	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2e2eae46	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x343761ab	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3e5e0119	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x425e2a68	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x49cf83c2	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x526acac1	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5510936a	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x613eb233	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6ff04efe	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x76923ef0	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xcfc4760f	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd508104f	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe41b3e8b	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xef4f462f	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf7a5acc9	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x3c7e5989	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xa1437365	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xef5ceeb3	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x2da53927	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03af0c92	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0ade3a40	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0b25bf83	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0d023305	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x16646f54	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x259b084a	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x26cbca77	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d3b17e2	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2fbba49d	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x31b8a6d2	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33d1b9cd	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3ef77d45	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x455cff5b	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4998ecd6	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4ca305d0	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4e7f066c	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6c31dca5	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6f494061	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x72a2fb19	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x79d0c745	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x85661aca	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8c16e1f7	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x93a82e43	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa1b05ca4	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb3ccf4fe	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc271e1fc	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd35a5f78	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdf4b12c7	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe1bf8d28	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe9179278	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf843ced9	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf9004a66	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x0e6b7c4d	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x270a0ab3	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x4ac00b82	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xa5a9489a	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xc69b99b5	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x15a4e35f	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1888e20f	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2b664040	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x42102ea7	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x49a55a74	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4d436aeb	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5a25f503	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5d740035	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x67dad157	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x854479c3	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xcdd20ce9	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd58ad19d	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe038bda5	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x8b7f2bba	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0e7b57af	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1ea6d531	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2a222b70	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x329f2aba	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3cdc0cfe	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3fa43c83	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4dc83a79	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x51341c3e	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x556097bc	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5c84f2a8	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5df96558	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x72a39fe8	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x73e603e8	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x74d326cb	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x75466263	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7caa0734	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x886023d4	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8ef89444	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x91cc6618	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9206a846	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9bae43e4	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9be36f7b	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa63f9b5d	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb679841a	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbf3022e9	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc72461b9	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xcf0d80a8	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd15aaf2c	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd1e357cc	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xda1eb3b5	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdce10732	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe9e467fb	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xea24eb0f	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xeb912d9b	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf55badc1	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf60d4c1d	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf84a9066	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfec54e9c	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0x2c63e051	apple_bl_register
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0xdab0f892	apple_bl_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x1714e6b2	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x20f8b1e8	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x48f7841f	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x53ac953a	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x614b4d47	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x997cfa65	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xe7b79964	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x3f76ab96	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x1be26a26	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x6652062a	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x2c1782b9	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xaaf09a62	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x016e6c20	vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x90c018c6	vmlfb_register_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0e1cee08	viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x30cc9311	viafb_request_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x31469540	viafb_pm_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x7b8e637e	viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4606f8d	viafb_irq_disable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4f863e6	viafb_pm_register
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcaefb732	viafb_release_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcd538333	viafb_irq_enable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xfff2dfd2	viafb_gpio_lookup
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x014d5d77	visorbus_enable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x0e338292	visorchannel_signalempty
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x14c1e0a2	visorbus_register_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x230a5e2f	visorbus_write_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x4de03230	visorchannel_signalinsert
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x56401853	visorchannel_signalremove
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x6aadaa4d	visorbus_disable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x9a486dbf	visorbus_unregister_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xc455c651	visorchannel_get_guid
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xf85183eb	visorbus_read_channel
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x0f609c0e	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x23eaa42b	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x392bd85b	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x39bcf366	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x42d219bd	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x68e7b2bf	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x6f20a5a5	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7828bb7e	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc089aa6b	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd12baabd	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xea6c2149	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x025fae1a	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x2f2ae98e	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x5a9568f7	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xa4ad73c3	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xbc3b92a6	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x4354de35	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x4870dc8c	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4342a9c6	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x6fc44d85	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xe15f5456	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x2235f509	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x33ca20d2	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x575346a6	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x577136f4	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x69de1dc9	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xd8507bc3	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xef4d9af2	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x00439905	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x02ccb8ec	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x02ea3066	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0afa548c	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b0e846d	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0cb276e3	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0dd27d26	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0e412124	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ec5aee0	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x11c97722	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1bc2f6c8	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1cdbfdae	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e187344	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e40df0a	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e5f5a87	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1febaabb	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24236388	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24244400	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x249cfdf5	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x24f15e45	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26d1d8ba	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2b795d19	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2bf6915c	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f4fb3dc	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3076491b	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x31ed6741	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33c5863c	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3743ef76	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x37a42fb0	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4334d86e	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a4d9675	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a7b5ecf	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4b10027d	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c63c388	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c8917f8	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e354d4a	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51ce368d	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x53c05c0b	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56d34cae	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x58c94a11	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x590ed490	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5bb618c8	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5d5cc1ef	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x645db61e	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64b62597	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x676c7d29	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x690461cd	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6958da86	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6fae83f5	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x76b21a37	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x78ab29ab	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79a35802	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79e4f804	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c458ce8	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f096f48	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f1d4518	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x803bfd08	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x84065079	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x85c07d09	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x87c0d2f5	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8c923adb	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90c17b80	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91c58e1d	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x927d20e3	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9457960f	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9853c929	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa140ed59	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa1a4b38e	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa4bf8131	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa71193f7	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa7a6aebf	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa587d6a	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaad0a834	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xad14846c	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xada3f842	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xadb7630f	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xadc48e76	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xae54b14a	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaea2bcdd	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaf0132ce	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaf7d2076	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb33708f0	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb4afd60a	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5d0c23d	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb6d1c831	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb9324aec	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb939b022	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbcf729f8	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbdb01d22	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbdbfaebc	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbee78d82	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc070ab96	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc116c652	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc2bcdc70	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3626520	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc4df49e7	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5c1cb3c	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7946918	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc82f367c	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9e6eabd	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcbae7ddc	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc8be08a	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcdfc46b2	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd02e37b1	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd105b827	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2fdcb14	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd34cf408	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd42f20e2	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd7cda621	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd9859f1c	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdab23329	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdba96a9f	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdcb5d925	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe12c942f	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1ccf512	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe21df62a	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe4490a17	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe57c011d	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5c95a57	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5dab265	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb543bdb	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb94bb64	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xebe3f5dc	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec69db89	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee060b0a	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf1bdd25a	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf469aed3	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc00b744	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfdf8327a	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xff329dba	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x266ba5f3	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0159a9b1	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x03b2553d	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x06d60f45	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x06ec9836	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x08492a2e	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x08c2ef4a	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0f14240a	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x199b2d13	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1f6050b6	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x264efac9	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x28b5ad4a	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36eae40b	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3af8b553	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3b890b95	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x416bfd01	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x444f7c11	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x448ba375	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x54c51299	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5ed1a883	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5f828e6f	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x627ca5d7	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x64835b5c	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69cb0d0e	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6ccd01f0	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x782d0058	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7a404a3d	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x83ffd48c	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x881b14c0	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x88380f48	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8f977c6a	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x90464444	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x90a03458	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x90cb56c7	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x95c8e6d1	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9b43a011	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9b8e7fc1	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9bdf1eb7	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa1214dcf	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa6435f2a	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa813a432	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc3e1b2a4	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc7b12ccc	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xca2c407b	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xca90871d	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xca9d5f45	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcd972e4a	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcf75c601	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd2574182	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd3b3de0c	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd80d8974	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xda740e6c	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe0e20512	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe56bcf99	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe8e90e97	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xea64fa72	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf06c103f	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf394acee	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfa422768	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc40906b	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x002704c4	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x961a4b1a	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xfd2cc046	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x02fc355e	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x25a0e7f0	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x128a2964	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x19d3380c	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b5aca39	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58718d67	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc19c9002	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc29fce3f	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe32c5444	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x0b049766	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x143974dd	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x50eb8df4	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd6c542f4	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xf29465f4	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xffffefb7	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x113ad791	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9fa038f1	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xa73e3f57	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xca78a297	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x06ce425f	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xa1b99f9a	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf1a967da	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x152502da	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x844d6369	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x475b0fe4	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xc82c9ab0	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x1de56cf1	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x3baeaf46	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0x44828357	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x98a8de02	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe4cc4480	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xf2f3f95b	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x45e1fbc8	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4b8ed46f	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x501c8c62	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x82e74b1f	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xaca35a8e	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xbd47c23b	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x52064982	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0x564bb44d	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x2e91be00	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xd0380819	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0x5a4204f6	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x0e338183	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x23394c62	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x29b3a192	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x42dddf79	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x98b70bfa	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb19c96e9	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xd2d72bbc	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xfd24c5fe	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x5557fc6c	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x13531f0d	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x29aa1f39	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3906dad1	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x42eb70b2	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4385b6dc	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4aa6ec7e	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7089e0c9	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x795dece6	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x80fbe696	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x81e24402	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x884b355e	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8ba58f2c	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8d52a1e0	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x98d84f9b	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xa3569841	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd3de8d9a	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe039ceed	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf999c13c	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/core/failover 0x003b1e08	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x562b8019	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x58c01fb7	failover_register
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x09cb07cb	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0a9f4e98	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0f713713	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x10200da6	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x10a18f49	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x121672be	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x156b85b1	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1d273976	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2596889b	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x26130d56	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x436ff49d	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4a797f32	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x53269c6b	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5497fe10	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x56614e55	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5e440a9e	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x805381c2	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x85602fae	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x91593473	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9491f14d	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa7c25df4	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xab74a228	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xae6a4aff	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbc62ddbb	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcc8408f2	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd607116f	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe2f13a37	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe304ac73	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf457f850	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf7b8d284	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf9fe702d	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfddd7bfa	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfe07cdcd	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xff3e97fc	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x6b2b7b91	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x79e8ebdb	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x8558550a	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x86b88718	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x9166cd9d	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb232a8a3	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x04d7239d	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0a935347	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2967c919	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x347591ef	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x564fc7a6	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x66a1d499	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6ae470cc	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7481d297	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x79fc5167	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7bf374e4	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7e2254f1	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7ff59c25	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xad6a6242	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbed8fbb1	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xcd7e92fd	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd1d3f510	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd5ed7d3c	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd71a6351	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd8d1ca36	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xdc35663e	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf52af5ec	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x2817c208	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x37dd31b6	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xe0078c47	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xfd9a16d8	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x3673bd58	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x8002de2e	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xa9eaa5ab	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xecfa3eff	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x841ae952	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x95ab29b4	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x60aa5a6f	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x7d1468fb	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xacd41cb8	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x66d66eee	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x864ed7fa	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x0a036673	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x75c706ce	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x7b533f3f	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x93fb11a5	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x9831160c	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xc0a16785	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd5122bf0	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xe370432f	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xfd76a78c	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x8dd6d126	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x0866027d	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x10b4e0df	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x183a30b2	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x19688166	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1ccbdad6	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x37b56975	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x457838a3	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4c44b284	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4f9708eb	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x55d8463c	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5851e930	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6d3fff78	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6e79f7f6	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x867875bc	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd83916b9	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe728348d	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x5b09cb86	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x337e70a6	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xf2ee6c05	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x40a448ea	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x077686d2	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x453dfdc1	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x459261c4	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x604d92f2	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x66735246	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x749deed9	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x7732f37f	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x7756fc67	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xb3762c94	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x04665c02	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x5ad11965	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x45694108	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x7725fb98	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x97260891	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xdd418fcc	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf1bb275c	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x094864b2	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x0f35c19f	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1c6c105c	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x497b42fd	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x74399449	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xde7e41f4	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe3b180c3	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe8f5dc6d	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x1480e600	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x2f4d1c69	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x8454515a	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x36a74075	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xe169ee95	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xfd907b1e	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x70afc407	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x75ac1e59	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x48b4ff41	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x732849f5	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xeba4eee6	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x29934176	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x3a0aa018	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x603e2ceb	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x68796ba8	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x85d8c3ef	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xe70a661c	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0xf3fa4fb0	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x0169f809	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x6b02e2cd	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xe8eff170	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x0af617c7	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x2964e889	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0d90e0e0	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1115c9ef	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x22722768	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x2ca42156	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x341c383c	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3da53d17	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x5b2076a8	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8514ed69	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9879a966	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa56f810b	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb0ee91c6	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbb3599fc	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbdbcea61	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcfc8b9c7	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe275f2a5	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xeac64fad	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xef62ca3d	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xc692f34a	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x02f9f501	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0fcabf48	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x295c24e7	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x2dc27b1f	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x4bf0fbfe	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x525e78f9	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x600e2be1	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6348e434	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6af1df4c	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x86b1aaab	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xb8c17f3d	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xbf57d390	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc0c9f74a	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc2b08acf	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd85cca1c	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe33351ce	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x34a75acb	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x588726fb	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xd42f67eb	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xd536d6fc	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xdf830a80	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x08856443	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x10d80c1c	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1c3b9ec1	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1e9719cf	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2997bc8b	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x363030e2	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x959e67c3	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x99797969	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9d631626	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaa6e49ff	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb3a779b4	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb8f2a75f	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc0826297	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcc9b47d4	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe38b7a7d	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe3cc1718	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe4d5197d	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf9c22790	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x2131c257	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xad8b3a80	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xc277909b	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xf6a685ca	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3e15d53c	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x42d39e7c	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x4619394c	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xb8f84c19	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xc996c036	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00fa4b81	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0154319d	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x02a655f2	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x03ffffaf	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0665bd22	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x10bf1b9a	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x115bcc53	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x153ee1f8	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1cf56f2f	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x22e0edb7	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x24bb802d	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x26e5f694	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2879080e	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2c7cde08	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2e860c15	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x307c2037	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x345d8c18	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x39979903	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x420cfd7f	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x44634c86	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x44d3edc1	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x50ccf1c2	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6078c87b	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x619b2d32	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x649655a0	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6597d0fb	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x67735cb6	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x696dbea8	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6f39cc27	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x70917e88	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x75242cd8	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77ca0074	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x77d7769d	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7a1aa11a	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7a85165b	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8015cc03	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x80a19ce2	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x81143cd3	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x84328fdd	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x846fb1c4	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x86f723c3	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8921c2f4	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8b139072	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c9555ed	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e7a4de7	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8fe947b1	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9002654e	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x90bcd8ed	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x916ba8e7	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9649fd4d	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x982d5f47	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9aefe604	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9bfb343c	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa1765be4	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa66adee1	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xac270fca	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb17437ea	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb336d5f3	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb502a3fa	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb64bce35	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb9e6f560	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbaadf0c3	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc19a6aa3	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcb87c45e	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcc53f0f0	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcfe49dc6	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3009968	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xde4bc6e7	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe50f8fb3	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe670aca8	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe775c8a2	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb290801	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeba9a8ce	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeece66be	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf0ec753c	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf1bb4bf1	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6ff5d8b	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf7db99c0	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf960235b	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfd138539	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe49f19c	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x4da057a6	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x148e2a3c	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0xb479e4f4	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0cc13cdd	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x195e969e	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x6966a0a5	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x8444876b	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xaa67ae7e	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xb384c7b1	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd767aabe	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xdf71cb94	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe86e3c45	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xebc83472	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x807f9e7f	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x20cc1115	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x498579cf	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x4f118f7a	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xcb8c741f	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x3f7782dc	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x45cdb69f	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x4d6951e0	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6c6289d4	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x883b3264	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xa0c012d0	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xbc429c97	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x5e294d0a	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xe5e50284	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x468c8be6	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x5c11d846	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xea5f2d37	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x061e4f02	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0b7b01c9	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x2a8b7bfe	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x53164c48	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x58785e81	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5d14084e	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x753623ee	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8e23487d	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa2e5007a	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xad526cfe	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xca964afc	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf07954fd	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x36edb2a1	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x3e89919e	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x5fc17fff	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbfa12fa7	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc5f35f52	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xcaaf9b55	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x10287c25	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x12ce87b1	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1979005d	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x269161ee	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2856c8f3	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x290b6bc7	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x83a1d6fa	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa62d4e79	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb47b78f3	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb65dfede	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb6a0d9ad	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd347785f	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe451b920	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe76b18de	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf1854c6c	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xffb69215	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x088ffa5c	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0ec63eea	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x17271e43	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x43003785	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x575d55d9	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x7070ba41	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x737fc021	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x7783a067	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa344d8a1	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa4b7c287	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xd5a7c5f8	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x07163c81	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0e655c42	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x10e82c81	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x117802ae	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x19053f68	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1d6397cd	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2699dd46	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x285dd7f3	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x29b4d7a7	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x361e9eea	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5614394a	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5787909d	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x580d3ad5	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x596d38aa	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5a159e32	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5b2ce369	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5d6386f6	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6194d8e1	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6fdb0af6	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7b61e455	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x82d257d8	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9234dffc	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9cea30bf	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa4727c40	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa8b77974	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xad6e76c5	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbc0cb771	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbcadfdfd	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc0da3cb4	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc3a25d06	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc5459bda	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc8c96ef6	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcfa3ba99	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xefaf73a3	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfa7324b6	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfbf2df76	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x36fadb93	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x39530d9e	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x54b9bb40	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xa7d67640	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xd93ddf1b	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf6c9f825	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x21c4af2e	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x3ba664d1	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xf0fb42ad	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x1e3d5591	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x69a76848	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x1065df68	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x10d993c0	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x46fbb6ba	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x49ca967a	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x49c97842	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x5fe69b4c	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x75522d62	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x147265a0	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x170be2d8	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x241126fb	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x26276b90	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2f4c15dd	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4868737e	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4d06723b	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5b5bf0ef	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5c5315c1	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5fb45832	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x672d5787	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x79d035e4	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9d03f8ad	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9f1a2b03	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa15f59b8	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb68bb622	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb8f5255b	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbab518af	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc2bb4b6b	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xcabb5bb8	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xef4005dc	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x6b72114c	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xdb2c40fe	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xd59b5113	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xdaafacee	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xf1ef586d	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x15468379	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x2599089f	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x6388639f	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x2ea7d87e	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xf5e95759	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x076e12b5	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x2333fdc4	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x47663c32	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x804d80b8	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x94b5ef48	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xae623da3	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x9b6b6573	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xc52f8fdc	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xd8e83012	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xf72c0da4	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0856bd60	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0e4732a8	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x193d694d	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x20c5e653	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2dcefbc6	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2e1dcd4a	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3ac935c8	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3bf668cc	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x43bf355d	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45198078	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4a20e8d0	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4e1e161c	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x51256bad	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x517b716b	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5c25fea8	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6393da4b	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6e5bfa28	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x75bdd481	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7ca5e2e3	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7ea7d43b	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x87ff241d	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa783d2dd	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb828e866	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbd2ffb21	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc4be7e4f	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc611abc0	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd803696e	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xee8a8c2a	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd8a6481	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x62477bd5	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xbd072025	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xc514a20e	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xcd37f609	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x27801a00	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x5bf2df2a	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x7f1c7f9f	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x95f4cddd	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x98b7b005	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x994f3bfb	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb80e2082	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd35e6ed4	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xdf021e3d	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xf714cfdb	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x664ec414	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x6da88921	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x946c104d	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x9e2aa9bd	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0021c537	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0167b116	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0276d9cb	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x03c30c0e	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x066f5ff2	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x069ae21c	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x078901fc	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07c82cda	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0833412c	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a5c30a4	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0d41bd96	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e3fba9e	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ead7a9b	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x103c09b8	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10a844f0	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1106d145	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11b02e02	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x128cac22	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13b071ec	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1404e1e5	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x158cb5c3	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x195af94a	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19ed671f	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a70e210	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d76cc31	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x20d65964	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27598004	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27d9a5c9	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x283f9154	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29df55af	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2acad51d	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2b08e28e	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cad0264	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d1b3a3b	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e8178f3	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f936a34	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31f054cc	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x320695b3	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3322f54a	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34f730c6	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3527bf6a	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35e096ca	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x372442b4	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39150754	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x397453e0	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39eda918	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a3ffbcc	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c4eb23d	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c5356a4	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e35b1c2	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40d0f941	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41ac2e15	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x427a8af5	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43048b6c	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43dcf48a	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x46409a19	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x477f4157	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4809735a	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4823e3c0	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a2e5721	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b7b69af	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ba19d50	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d831f1f	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4eccbaa7	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4fabf1c5	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x504a5a25	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51fb6754	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55826eae	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x566ae221	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56aff0be	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x571a1163	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x586df468	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b99565d	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ba91791	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5bde0bab	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c10a614	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c8efe18	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ea34dc2	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62269421	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6274fc79	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6287f09d	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x628c54ad	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x637d370b	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x63cc8d4f	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x656cf6e0	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65e25de6	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x661e84d3	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x669424f1	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67a14c3a	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67b41f45	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a419341	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b080559	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e852a2e	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fce96d7	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73947c4f	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73f28e20	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75ce2e00	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75df3de7	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x774319bf	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79014a1f	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c4fbe7a	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7cf97176	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d257589	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d5f3e1b	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d620b8c	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ddac6f2	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e39aa9f	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e7a52f9	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f541329	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ff28b9f	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ffb594f	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8150aaf8	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x84780079	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8780daa1	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x879c26e3	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87b18aa8	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a6bfa00	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a6eb32d	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ad852fd	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8af338da	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bf53ef8	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c36f97e	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cbbdd26	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cc3d4aa	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f154b67	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90ddd96e	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91216694	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x914a81e6	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91f2ff0d	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9325c940	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x93a4b9e2	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9556bb25	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95657971	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97066108	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9939804b	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99c289a6	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bb07626	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bf0a44f	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d26dbee	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d96f520	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9df0824c	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa051e9a5	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa25d731a	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa26fe478	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa27f0633	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2c0b64e	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2cca147	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2ee5d3a	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4b422d7	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5f0f881	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa63e87b	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad14fcf4	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad729de2	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadd0b658	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaee4969e	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xafdd085a	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb0fe526b	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1a616f3	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb7bd40af	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb7c08dae	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9f26368	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbad54c74	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc38c042	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbccc3891	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd70631a	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf1f795f	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbfeb5671	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc08cbdbc	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc403c2b0	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5fa1de3	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6bb1617	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc763b281	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7830de4	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc81e88ab	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e794ee	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca4f90d4	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca630a04	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbe026ad	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccd1faa6	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xceb80e6c	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0b02f27	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd10fea09	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd140080a	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1970c95	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1adcca2	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd26ab790	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4da9d99	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd649b3a0	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd96dbf50	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda3f9e00	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda460958	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda860728	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb232f5d	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdd52f629	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdd6bbf09	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdda51dec	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf03a587	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe15b7cd3	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4942e9a	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4b29aad	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe64bee33	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6c333b0	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe74faa19	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe7b2e74c	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8b32918	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea20d032	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeacc9d6c	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeee0e51a	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeebdcb6	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2b5d0ca	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf382e5b2	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7bceb25	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9bd3241	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa0924f3	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfad3e04e	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb1499f9	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb336148	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb3f029d	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfcedcb32	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfeddca55	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff90378c	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x77e63cfa	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xa5f974fe	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x08669eaf	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0fe2501f	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x13548800	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x16000175	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1f50a896	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x230aaf5b	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x29bd1e88	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2b25ebe6	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2eb117bb	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x309ddc38	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x33ffe8e6	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x38e27929	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x394b6471	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3f436473	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4048e227	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4232b7b6	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x43214505	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4c2fc13b	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x689aa80a	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7c486313	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x92c09da8	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x98f0d8a3	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9a6da52e	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaed77ce7	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb0a4a1a9	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbe2adb1f	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc6e5e924	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc6f2281f	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xca381bd4	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd7194c06	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde60a09c	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde7e3d70	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe19bdba8	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf4d84b94	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf6c1fd69	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf751b72a	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x085c26d6	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x44356ad2	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x483ea0cf	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x68c93a58	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7d37eb49	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8528b549	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x99599ff5	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xace6e04c	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xaf5e96c8	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb0492a75	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb92da366	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbce8cfa4	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcddf74d7	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe3775741	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xeb471385	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf3b9dff4	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf99353d6	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xff498be1	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x1a70437c	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x2bd19ef9	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x2cd3379e	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5f0a03fd	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x6a3311ff	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x6ad7fec3	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa1cda33e	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xacbf1fe7	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xcd1baf71	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd9cbd992	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd9dea625	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd9ef9fc2	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xfd598e1d	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x02a3ea58	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x09f32f61	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x227cb775	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x56a7cdc5	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x663b375a	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8d0af896	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa8084ce8	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xace7ac7b	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xbfac3845	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd12230e8	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd2deba76	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xdf925d64	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe15cb2bc	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xeb50eed7	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xece2a6c5	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf6885130	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x073a5b2d	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x43f7cd4a	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x9ca665e3	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xc173188a	ipcomp_output
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x81dbfdd3	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x14a890d3	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x3c3d9574	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4ab005db	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4abcdf56	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x83bcc86a	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x86f72f28	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8922e503	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x94eec1f3	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xa2867860	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xbae035ee	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc576a1cc	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xdd5bb380	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x426c9f3b	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x4547b14d	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x699abe6b	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xfb9f57a7	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x03fd30ee	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x0adf9c6e	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x187190f9	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x1e26cb37	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x2660cd6d	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x50c9cb35	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x80854b56	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x88a422ea	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xc65f891f	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xc7e5205a	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x0dc52a9a	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x5cb5db3e	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x67c78f50	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x70467348	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x752f4f39	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8ab557c6	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8f3daa9d	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x9da4e3a6	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa285fbf2	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xb2c3ecf9	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xb71b0b51	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x7b129158	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x85858a26	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x42c56ae7	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x5849eef5	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x628d9713	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x6c1f39fa	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x7a6c435c	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x82f853ec	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xef66a10d	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x07190c7c	snd_hdac_ext_bus_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0f646426	snd_hdac_ext_link_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x15a02c19	snd_hdac_ext_stream_set_spib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x18651c2c	snd_hdac_ext_link_clear_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x1c9f8835	snd_hdac_ext_link_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x26ce121b	snd_hdac_ext_stream_get_spbmaxfifo
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x2883c398	snd_hdac_ext_stream_spbcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x365760a3	snd_hdac_ext_bus_ppcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x366868c3	snd_hdac_ext_stream_set_dpibr
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x38280fd2	snd_hdac_ext_bus_link_put
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3f6a6248	snd_hdac_ext_bus_link_power_up_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x41f6c722	snd_hdac_ext_stream_drsm_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x4373b4ed	snd_hdac_ext_stream_set_lpib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x43e3033a	snd_hda_ext_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x47136877	snd_hdac_ext_bus_get_link
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x50225098	snd_hdac_ext_link_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5e8fbcec	snd_hdac_ext_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x5fe36565	snd_hdac_ext_bus_device_remove
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x6809649d	snd_hdac_ext_bus_ppcap_int_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x68bfb70b	snd_hdac_ext_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x8802a7c7	snd_hdac_ext_bus_link_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x8cdb4089	snd_hdac_ext_stream_decouple
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x92503ed1	snd_hdac_ext_bus_get_ml_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9529cdca	snd_hdac_ext_bus_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x960b9860	snd_hdac_ext_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x97aca685	snd_hdac_ext_stream_init_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9ac2a834	snd_hdac_ext_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xafdad7fa	snd_hdac_ext_link_set_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb246582b	snd_hdac_ext_stream_decouple_locked
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xc1a1a0b4	snd_hdac_ext_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xc9d518c5	snd_hda_ext_driver_register
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xcbed9db9	snd_hdac_ext_bus_link_get
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xdaabf44e	snd_hdac_ext_link_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xeba0b14d	snd_hdac_link_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf19ed673	snd_hdac_ext_bus_link_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf4ad6ee5	snd_hdac_stream_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xff1c66d4	snd_hdac_ext_bus_link_power_down_all
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x00d66884	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x04cc477b	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0ac6b303	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0ae0d6a5	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0b9a060f	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x11b5e1b2	snd_hdac_i915_set_bclk
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x140431b2	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1b250a8b	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1d61c3c7	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x20d669de	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x22884204	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x26b26ce4	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2c317398	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x319f4763	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x367ab950	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3c0a65e6	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x43f7f704	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x45274e33	snd_hdac_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x46c7aa7e	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x486c5a82	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x517e3a21	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x533f5f41	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x568c562d	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x586d063b	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5a90a4cd	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5a9aa5b1	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5ad4c7e8	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5f3c7f25	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x610e8a1b	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x619a59b2	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x648838e5	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x64f7d6db	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6d981b3a	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x749df003	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7534a214	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x76ec21f1	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7c1b85c8	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x86fbf297	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x883f313b	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x89cef92c	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8a764632	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8b3626ac	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8bf1cec3	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8eacbe05	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8fed62c9	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x90ec8f8f	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9739ccb1	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x974f5a1a	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9bde4e78	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa2a7b662	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa2b36ca8	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa575a931	snd_hdac_stop_streams_and_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa8696296	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa977cd15	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xab3ed073	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xadf40958	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xafa418ca	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb4b67484	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb7d871ea	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb84a3abc	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbdda7556	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc08b4252	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc5194ff9	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcf51fb94	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd1dc647f	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd29e312b	snd_hdac_i915_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd823c889	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd950184f	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd99585ad	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdac98039	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdbe2ad11	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdec20f1d	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xded61128	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe0bfa289	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe3a0f64d	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xed8d6dd9	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf2dcdf74	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf32304a0	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf69f96fa	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf7eada31	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf81f0f98	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf9598d58	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfa80457f	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfad23bb1	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb7e774c	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfbfc8487	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x054bbcce	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x479793ea	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xa8a6c184	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x0b8156e7	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x1c466e6c	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x56378d96	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x7b05cf19	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xef90bae3	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xf12a3948	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03db3c76	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x044eff9a	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x048bb08a	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x04c918f2	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x06395540	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0676f5ac	snd_hda_get_input_pin_attr
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x08b15586	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x08de397c	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ada572f	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0cf7ec6f	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0d8fb1fd	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x10e930ad	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x11795771	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x11d437c2	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x13a9f117	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x14e9c0a8	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1df29aea	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1fb315b0	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1ffeda4b	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x230dd977	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x23f06cfa	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2438fb40	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2abbae52	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2cedaabd	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2d038793	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2e85cf48	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2ea25053	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x309603b9	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x30e16532	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x31663eb8	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x345eca99	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x37d0289b	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x37dee62c	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3f32bfa1	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3fe06d98	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x469ef6aa	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x46a0878b	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x489bed8a	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4922c86e	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x49d478f1	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e069e66	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x514b5500	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x53be1d06	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x54b49e9e	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x55ce8fac	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5c12206d	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5f37e729	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6435ef8f	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x64e8c839	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6550e60e	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x68165bc9	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6c2bb534	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6cadf7e8	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7052efe1	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x74fb194b	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x75b1fe41	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x76b549b0	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x775eddd5	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x78832d15	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x78c7ae8e	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7dbcfdf9	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7eff2b1f	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7f62f085	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x82cdb20b	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x848d7b7c	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x861183d1	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x87afec6e	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x88419565	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x890aaedb	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8947355f	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8bc60ea7	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8cacb093	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e3168c2	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92523457	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92b2c35e	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x92ca5bff	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x947a2aa8	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x958de06e	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x97dd663b	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x993bc636	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x99597504	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9aaaec74	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e7ecdc3	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa0c69b8c	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa127a115	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2d83b83	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa4577e4e	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa4e79498	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa59274c3	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa75f25c3	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa8d6dec9	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae3418a0	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb2802b1f	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb31da6e1	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5ce7cbb	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbbc8cb71	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbcf87b5f	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1bd13fd	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc22e22ba	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2d9277a	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc4df102c	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc60e2228	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc6f597e4	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc7eca54b	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc8a542e9	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc9e27e81	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb7398a4	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcebf6994	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcf007434	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd3f974b6	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd45898cc	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd6ece453	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb247cab	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdd4b1b2c	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe24f68f0	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe660f326	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe7983a27	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xea157230	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeaba24e7	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xebc72655	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf594b763	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfc2b011d	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x02ac5290	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0cbce0eb	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0da4b732	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0f3fde6f	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x248cedc4	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2514bdd7	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x56f2666c	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6111623f	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7338efdd	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76dc6871	hda_main_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x79576006	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7f7a3bd8	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x814db2dd	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x871a6e44	hda_extra_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9a3c53d5	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa5f20dd5	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xcc62b7d1	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe3446c7d	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeb015aff	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xebd4fe94	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf48d8cbf	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf907eecb	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfb0974e3	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfba6d317	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x901a700f	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xa0961ada	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x2fabd0ce	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x371bc634	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x4ace800f	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x67b9cc3f	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x860e04aa	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x9ca1ac54	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xb9fba0e3	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xeef25be5	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xfe42c576	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xfe7491ad	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x1f994816	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x233f11f8	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x1746174b	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x3596bd18	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x3c914f4a	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x49a6e669	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x95f06e4d	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x07215628	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x30516908	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xdd702b3c	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x3c563f3d	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x50e9108b	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xf04ecf25	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x0b642756	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x2b6c2cd9	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hda 0xbd81d56d	snd_soc_hdac_hda_get_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x36fc647f	hdac_hdmi_jack_port_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x8aed1c31	hdac_hdmi_jack_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0xaa99ecb6	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x2d409088	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x046413f5	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x1413a55e	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xcc3eb70b	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xfa7e8615	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x83c51ec1	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8825 0xaf89834c	nau8825_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x41f60971	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x6088de01	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xda32dce6	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x51c09b88	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xdd8270ce	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x528e9c9c	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x8c0b9181	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x82f44cb0	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xaddddf41	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xb348dc5e	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xdc18a39e	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x3893ba35	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xab9c01da	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xb8f3958c	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xfdab3401	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xa7aa810f	rl6347a_hw_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xade4bf4c	rl6347a_hw_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt286 0xf7b934ed	rt286_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt298 0xad9f9963	rt298_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x824ce53b	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0xec6bcf39	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x2fd90826	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xb16fc3e4	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x6605c6f9	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x52313d0d	rt5670_jack_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x76ade819	rt5670_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x8359416e	rt5670_jack_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x93f57377	rt5670_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0xda26df83	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x67956035	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x855e3bb7	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5682 0xf937abb9	rt5682_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x11068d8c	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x2ab178ef	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x6ae272bb	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x8e76832f	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x94e3caea	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x9f1d1f71	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0xb6d3c92c	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x58613721	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xec89c30c	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x6f15de9b	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0xbaea5790	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x0c98e753	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x1baf52f9	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xd74cd506	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xf3bbef6b	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x8ca6750f	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x2b375650	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x793cc151	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x8f1f3da0	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x019cd1d1	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x0263709c	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x0c4971dd	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2d19bbbb	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x5519197d	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x5d91e333	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x631eb18b	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x777038c9	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7c2032a2	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x84d5377a	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9c2650da	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xaef3d6a2	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc6475fa0	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xcccb3d32	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xddf52fa9	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe75f5ca7	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf6330962	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xfdd5fefb	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0xe1f3c929	sst_unregister_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0xeaacb37b	sst_register_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x390245a6	intel_sst_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x3cc21f04	sst_context_cleanup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x709cd25f	relocate_imr_addr_mrfld
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x73f4ba34	sst_alloc_drv_context
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x9c65ebed	sst_configure_runtime_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xb2376e22	sst_context_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x00899c7d	snd_soc_acpi_intel_baytrail_legacy_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x08c27da9	snd_soc_acpi_intel_cml_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a6c545b	snd_soc_acpi_intel_icl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x210ac95b	snd_soc_acpi_intel_cnl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4c028d30	snd_soc_acpi_intel_skl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4ea3c4ed	snd_soc_acpi_intel_glk_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x52195614	snd_soc_acpi_intel_cfl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x59a53c32	snd_soc_acpi_intel_haswell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a93176c	snd_soc_acpi_intel_cherrytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x6038550d	snd_soc_acpi_intel_kbl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x8b43f2f0	snd_soc_acpi_intel_baytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x98f106aa	snd_soc_acpi_intel_bxt_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x9c3d1561	snd_soc_acpi_intel_hda_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xcbb222b3	snd_soc_acpi_intel_tgl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xd5af17b7	snd_soc_acpi_intel_ehl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xe7826509	snd_soc_acpi_intel_broadwell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x01fddd47	sst_dsp_shim_update_bits_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x05f9b1c3	sst_dsp_register_poll
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0e918801	sst_dsp_ipc_msg_rx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x0f256484	sst_dsp_shim_update_bits_forced
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x14d48e5d	sst_dsp_boot
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16e86983	sst_shim32_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16ebcfad	sst_dsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x1e710d10	sst_dsp_shim_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x2b294623	sst_dsp_shim_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x33fae1c3	sst_dsp_inbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x38c2fb0c	sst_memcpy_toio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x40b6ee96	sst_dsp_outbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x41cd783f	sst_dsp_shim_update_bits64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x4630697f	sst_dsp_shim_update_bits_forced_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x52b93a9f	sst_dsp_shim_read64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x5b86224a	sst_memcpy_fromio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x69e817e4	sst_dsp_inbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x718481c6	sst_dsp_shim_read_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x73ecd4ba	sst_dsp_shim_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x839b4836	sst_dsp_ipc_msg_tx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x87cdf7d2	sst_shim32_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x89ca53dd	sst_dsp_shim_write64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x8a123d45	sst_dsp_wake
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xa1daf622	sst_dsp_shim_update_bits64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xa292349a	sst_dsp_mailbox_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xad47637c	sst_dsp_dump
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xada718ad	sst_dsp_shim_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xb2e82de0	sst_dsp_shim_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd72a34c2	sst_shim32_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe2343e56	sst_dsp_shim_write_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe7f27172	sst_dsp_stall
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9c6de99	sst_shim32_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xeb543f47	sst_dsp_sleep
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xf9f1c163	sst_dsp_outbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x02624099	sst_dsp_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x08845295	sst_dsp_dma_get_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x0b05daa8	sst_mem_block_unregister_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x1c970977	sst_module_runtime_save
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x22986393	sst_module_runtime_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x3ba4cc60	sst_module_runtime_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x4c5f937a	sst_fw_reload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x55f020e0	sst_module_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x5ae8b49f	sst_dsp_dma_copyto
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x690be056	sst_dsp_dma_put_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x71e3d806	sst_module_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7bbe9bf6	sst_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x8efb5001	sst_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x960ae20d	sst_module_runtime_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x9f2f1732	sst_mem_block_register
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xacf13191	sst_block_alloc_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xad72cb0a	sst_module_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xb70a4da8	sst_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xb7816b04	sst_fw_free_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xb817c234	sst_module_runtime_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xb89ba8aa	sst_dsp_dma_copyfrom
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xbd43a911	sst_module_runtime_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xc4b94ea6	sst_module_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd0750581	sst_module_runtime_restore
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xdbbd35b5	sst_block_free_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xdc814950	sst_dsp_get_offset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xec97acb4	sst_fw_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf5f00314	sst_module_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xfa4fd8a5	sst_fw_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xff676c7e	sst_fw_unload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x01abfbf1	sst_ipc_reply_find_msg
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x173f21e3	sst_ipc_drop_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x37831ae1	sst_ipc_fini
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x4d0527b1	sst_ipc_tx_message_nopm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x62f11b2a	sst_ipc_tx_message_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x96b860c4	sst_ipc_tx_msg_reply_complete
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x9ab31d5d	sst_ipc_tx_message_wait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xf6fd53a3	sst_ipc_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x66627a99	sst_hsw_dsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xb40ff91f	sst_hsw_device_set_config
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xdebc344f	sst_hsw_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0043c253	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x05942149	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0780c0e7	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x078a5c36	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b52611d	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b740f90	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c531466	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c5e8373	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c6f58d0	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e9ca1d1	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0ef67f23	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f44060d	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11f212ff	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x13318416	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x167b333c	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x16bc8a80	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x182d0988	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x194f89a8	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1bd9a958	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1c35bdcb	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1cc93bc9	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1e3d310d	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x20167639	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2102a44e	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22322055	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x223f772b	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x228dd107	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2352f999	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x248827aa	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2664c618	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x290f5c65	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x295edc6a	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x29886165	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2c826334	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2d0f7229	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ff51d2d	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32d6af1e	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x332e138e	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x33483c7c	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x340471f0	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3454f8c3	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x34f0d43b	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x35656705	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x37811a71	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3875b174	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x39148017	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x398e961f	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3ce141d3	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3e03ec50	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4171b90d	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x422ad1f4	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x42570596	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x42e476ae	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43421d07	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x43fb34ec	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4810c8e8	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x494da3b8	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4e129075	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f5d8bcb	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x506ab6e7	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x559df753	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x58e3b425	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x58fc4911	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5aadffb6	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5bb4459b	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5d6624c4	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e3aa9fa	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5fce1ace	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x613f8d99	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6146bc33	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x616f990d	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x628e0d14	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x65cfb88f	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6a2f1d44	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6afdd444	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6affd6fe	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6b491215	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6be1c8d1	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6e06ca2e	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6eab407e	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f3c0a07	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7613519e	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x76539b48	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7693b79c	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x76c28679	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7709cb01	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7760ac0d	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x777dcc09	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78389c0e	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78667179	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7868a0f9	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x800dee05	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8059b322	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x82623dca	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x834f8272	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x899c64fd	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8a2582e0	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8b3c8d2c	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8c6010a5	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8eb4039e	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x90b9b62f	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98419244	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99050ef1	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99b8e67d	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99c94422	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99dfc6d8	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9bffea9d	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9de08961	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9ef6328e	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9fbf0b26	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa165445d	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa179547d	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa846b6d0	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa8655304	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa9a632c1	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xab006a2a	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaba1cb75	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xadbf4c94	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xafff5395	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb271bda8	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb2e48d0e	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb8e367d5	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbb2e2049	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbfe2e3f7	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc05d5b91	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc0b31882	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc23c6322	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc27a7ff1	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc354afa8	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc45174c0	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc5793691	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc887980e	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xca52196a	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcadeaf32	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb92ea7d	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcbdc6970	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcf9ab8b4	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd0b96201	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd1ec898c	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd2a431cd	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd683244c	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd6948b48	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd69c0e55	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd779825c	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xda2cfd2e	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdbac69fa	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdcc457bb	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdcf6241d	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdd2d8021	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xde033ae6	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xde75541c	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe0359540	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe04e7666	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe0df1d8f	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe19c9d4a	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2c4ded9	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xea718263	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeaa96678	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xece19947	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee5181d3	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xef10d065	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf0773b2d	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf7057b48	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf8e3a974	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfa542868	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfdcb815c	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfe12d777	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfe3c4f35	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x1be2d696	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x2653924e	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x54220975	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x8f0e3c01	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x006aee83	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x08ef7889	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x0e3c5653	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x0f7fe8f0	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x288edd38	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x3b1265de	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5e660884	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9b343966	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9f153b50	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa7d94734	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xac76a872	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc19eee80	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xed7cb55a	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf9bf4e0a	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xff1df42a	line6_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0000d11b	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x00170156	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x001ae2f7	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x0034f3b6	xen_has_pv_nic_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x0049eefc	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x005a5294	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x005b59c1	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x006c3aab	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0086af13	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x009abe92	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x009bdaf0	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x009f360e	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a773ae	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b5f9b4	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c2da37	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d3ff23	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e4a347	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e53289	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x00fd5106	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0108a2ec	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0115587f	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0123c01a	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x012de7fa	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0132ace0	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0139878e	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0148b80c	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x014e53fc	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0161409a	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x016fa296	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01848a8e	local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x018b3d1e	intel_pt_validate_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x018f4ced	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b10fca	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b3a3f4	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c12c32	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c8bae7	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cfc949	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d56937	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee5532	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0256db2f	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x026981d1	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0274cab0	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x0279f7da	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x028b3985	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x028df430	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x028e197b	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x028eccb5	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x029ff0a9	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a3b371	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ae6fb4	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b02a97	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x02bd1ee7	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c7cd6b	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x03016386	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x030d8b5c	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x035089ae	pwm_lpss_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x036ba9aa	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x036e9f01	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b3611e	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b6c63e	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c63b65	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fb9631	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x0401fe4b	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x040d6c89	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x04126bb1	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0430ff99	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x043103d2	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x04400d9f	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0446a19d	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0460a805	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x0479e457	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x048f14d9	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x049929c0	hv_stimer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x049e5156	gnttab_try_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b4a79a	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c17523	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d1d219	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x04dd9aa3	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ece560	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0518be21	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05363524	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x053b6e42	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x054d10d2	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0569ea34	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x056b61a7	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b1958	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b95eab	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bb649e	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bc4262	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c77d44	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x06025a7c	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x060ab9bb	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x060c91ea	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x06115d4d	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x0611ff28	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0620ed57	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0632a0db	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0637c438	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x063f77db	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x064f9036	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x0661a21e	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x066b46b1	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x0684a354	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x06a8a7c8	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x06af9a2e	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ccce12	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d66956	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d8d029	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06daf201	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x06df5f30	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x06eb0de9	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x070257cb	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x0702eedd	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x072dbaa7	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0739133d	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x0754ba12	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x075d9c80	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076ae398	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x076b59f2	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x076e0891	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0773abac	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0779527d	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a3ed0d	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a5184c	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a904e7	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b091fb	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b64d81	hyperv_stop_tsc_emulation
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07edeba7	hv_free_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f4e9d0	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f5b33c	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f5b753	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082c872b	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x0833b34f	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x08404d32	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x089039f8	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0893054c	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x08949cf7	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x089b499f	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b4ad2b	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08fb3bc0	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x08fe2b6a	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x090944b8	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x090f8f19	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x091c5c7e	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0925493f	clear_page_orig
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x094e7f28	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0955e1a4	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x0961affb	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0968ea56	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x096a7e6f	x86_spec_ctrl_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0971c6ff	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x097370d2	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x09854989	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x09973d4f	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0999f6a5	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x09aa9338	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b921aa	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x09bd3510	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x09be4514	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c16769	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d213cc	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d41a10	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e0f74b	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e24297	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a017450	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a274726	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3476eb	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a410d5e	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a432fff	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a4d93ef	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a502c98	dmar_platform_optin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a553abb	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a755f45	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a7c54a4	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8026c4	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9b3cd7	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9d0ed3	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa6e4a8	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aae8cc7	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aca5905	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad137d3	lpit_read_residency_count_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad8f1e6	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aded196	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af34434	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af62d72	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0affc924	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b044dc6	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b098817	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0daf90	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3b6915	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b791702	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8a3c00	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8f71af	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be7df20	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf15d8d	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c12f7a6	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1eba40	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c538f91	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5dfc31	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c70d21d	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c724be6	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c8bcea5	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c90fdef	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c97e376	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9df24f	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cdfc40b	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf68439	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d03dd14	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d059e80	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1a3a9e	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1b1488	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1c802c	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2007c8	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d237487	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d63f47a	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8a32ba	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8b68ad	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8c4330	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db98a33	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd32e5a	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddaa0a1	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddd06b0	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de869b1	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de91be7	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df2e964	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df368b7	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfb61ac	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfc4f54	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0126c3	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0c8f59	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e384cd8	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e507395	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e5b4474	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e63bde2	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b3775	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7a2b8a	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8e67e5	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9e7ee5	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea33172	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec280eb	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef5da25	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f083334	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0b21fe	pm_trace_rtc_abused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2368cd	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2d7d87	mce_unregister_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f36a6e3	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3e80af	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f4645aa	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6b7cd8	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7c1575	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7d5a50	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f8a6ff9	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9be018	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faa3cda	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fb336b7	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc37562	amd_smn_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc1969	copy_from_user_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd31964	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x1025a5d9	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x1029596f	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x102ff065	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1038b96f	adxl_get_component_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x105f6a65	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x10614ccf	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x1064d4c6	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x1064d85f	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1073bcdb	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x10796a15	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1088b7e8	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a36e5a	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ec7313	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ef0e17	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f63cfc	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1109dcd5	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x110f7802	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x112a660e	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x112a8583	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x112b8691	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x115210e4	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1159a8a0	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x117037a0	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1176ff9d	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x118013a4	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b7d199	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x11bb7c57	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c43e46	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c7a323	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c7b0bb	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d14d5f	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d781f5	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e31a70	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ef5f64	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x120bb501	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x12272ece	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x1228b2c3	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x124ab845	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x126181ea	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1280022b	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12aabb08	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ad23a5	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b3f3b7	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b583b8	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b78107	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x12bae5b3	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c58538	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e285ec	is_uv_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x12eae2d7	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f81145	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x12fb0f6f	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x12fdec59	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x133dc823	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x1347bd51	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x1361146f	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13745294	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x1375a86f	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x137f0e46	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b12bcd	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13cf754b	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e3aa9a	smca_banks
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eeb542	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x141fe86d	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x14243447	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x1435cc28	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x1443a86d	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x14466e50	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x1462560b	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x14640cc9	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x14683b95	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x146f092b	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x14708f3b	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x14737ee4	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1481408d	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x14827d8c	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x14adb953	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x14b077c0	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x14b33c47	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x14bcf347	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e04d97	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e7ac48	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f0d550	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f43f6c	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fcb9bb	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fcbd85	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x150cece0	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1510486f	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1523b9fa	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x154cda66	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15535cfb	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x155a9f78	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x156497c0	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1570b285	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1577a82e	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x157a1bef	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x1582d55f	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x158789b0	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x1594bcab	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x159f2772	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x15aafc88	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b25b1a	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b5e862	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15de92b7	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9d841	cpuidle_poll_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9e5b7	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x162ef304	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x16316d58	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1640e833	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x165d8271	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x166db1b5	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1672a59b	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x167534d0	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1686d4e0	pwm_lpss_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x16892b27	uv_bios_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x1698ee92	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a20b53	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b9031c	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16be1b57	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c484c2	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c9c3b2	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x16fb7cb8	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16fd6780	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1712090b	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1728b9be	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x172bf44c	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x172e0cc1	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ef6c2	mce_usable_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x176adf76	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x177089a8	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x178591f3	pwm_lpss_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x17919234	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x17939c5d	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x179b75b4	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17add64b	gdt_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ba34a9	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c12cec	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c294af	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c8bdd0	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ccc30b	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d3e261	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x181cbf36	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x18582826	amd_pmu_disable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1875b5a8	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1875cc0f	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877ca13	mce_is_memory_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a766db	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a8407a	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x18aa55fb	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ab41ec	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c631cb	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d5849b	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f366ad	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x18facedc	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1906a8fe	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x19374eea	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x1937d1df	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1949daa5	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x195f5261	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x197df4ce	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x197f31ae	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x198bc5c9	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x19906231	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x199420ae	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x19994ad2	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b58825	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x19bb492d	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f02a62	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f6d560	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fb6bd5	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a08aa59	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0a54a7	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a4eaa3c	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a51c9b8	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a85de81	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a93f8fb	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a94765a	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa46994	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa4d33c	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa60f54	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aab3185	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aea2c55	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aebf667	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aecfcf7	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afc91d9	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff3d55	mce_register_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b09fcfe	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b14a429	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1fc316	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b2c6766	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3ae502	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b49e809	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b61cfc2	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b87199e	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8a0cbe	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba237b0	default_cpu_present_to_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc59eed	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bcb12fa	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdde990	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf4bd21	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c01bdf2	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0ff216	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c1896cc	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c24fd15	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c2df099	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3ae1f8	xen_pci_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c534aa1	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5a36b4	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c61e779	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7d65ec	__memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c859560	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c85d396	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8fdca1	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c977ac3	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca8b89e	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb885b3	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc321ab	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc4b6b0	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cda2f38	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce9d974	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfab204	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfc0773	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d05672b	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0ef468	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1cc8a7	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4f763d	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d55f1c8	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d67ff14	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d681ae6	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8d3a05	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8edf86	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8fb7d5	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9032d2	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d997ef3	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da1821d	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd217c9	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd6c08e	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ddd494f	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1defc38a	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e130b68	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e13bf2b	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1a2e08	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2a3fca	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e47168f	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e4e7cc8	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e563c94	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e58a4d0	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a5f22	sn_partition_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7af817	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e815c3a	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8a9452	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8cbd61	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e90e7bb	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea16ea1	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea75303	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaa3d26	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec16ee5	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed2147b	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f05331e	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2b556b	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f504f07	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5d9621	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f6b047e	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f709614	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8bdafc	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9157f6	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb9555a	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fce6117	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdf0ea1	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe62a3f	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1feab434	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff21361	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ffdfcfa	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x2010e69b	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x20329611	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2056f58f	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2063dfad	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x20787441	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x207aa521	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20899467	hv_stimer0_isr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a70c78	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d3f820	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e947c2	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2107a4f6	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x213b4d24	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x2148e432	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21873ae2	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x21928565	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a59a9e	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21af2ce6	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b5be94	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ca89be	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd58a2	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d06c1e	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x21dc2492	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ea23a9	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ed4439	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x21eed65a	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x220467dd	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221773fc	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2243bec9	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x225a0a24	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x226e9b01	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x227b5bb6	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x2284dd08	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2286af7f	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2288932d	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x228a5d7e	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x2292fff1	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x229d6ac8	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x22baf392	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x22bb6979	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x22bd02b0	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d3617a	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d9716c	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e5456c	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f31abb	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x230a0c02	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x231ec584	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x23320797	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x23370d2f	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x233c9d6b	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23479bad	uv_bios_get_sn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2350c51c	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x235778a9	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23a7301a	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x23af12b9	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b1a6fd	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b4e0d7	clear_page_rep
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c5cd5a	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c8fc16	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e30710	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e83177	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410c338	x86_virt_spec_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2415de39	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x24166181	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x24247209	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24473b79	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x2455bbed	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x246df185	hyperv_fill_flush_guest_mapping_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x247def73	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2485eb23	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x24934dcd	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x249ab8ce	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x249dd83e	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a4b41b	__xenmem_reservation_va_mapping_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ae93f2	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ccb2be	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f715e5	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f9d282	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x25054b64	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x25087cab	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2512a408	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x2522e060	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2552b5fd	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x25566006	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x25595552	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x25601cc8	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2593a1c2	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x25dd3087	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e3bcfa	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x25eaa7fd	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f02c87	xen_p2m_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x260eed47	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x262604b2	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x2628989a	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a7063	xen_start_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2634ee2b	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x263aaf6f	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x263b6dfd	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x263cc259	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x263dc298	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x264750a8	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x2667cc78	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x266c0735	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x266c9752	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x267042b3	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x2670a227	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x268af0f4	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x268b5291	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x26933a26	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a5f002	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26aa5b64	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab03d7	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab8c21	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6900d	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x26dfbeec	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed7d96	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x26efa55a	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2706153b	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x27106509	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2711e561	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x272cf02a	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x273aab74	xen_have_vector_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x277f634e	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x27861358	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x278b50bf	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x278fcb1d	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2796612d	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x279f1c31	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b24d7d	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b3773f	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d25d44	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ff9835	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x28101124	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x28174539	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x28180594	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x2819c126	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x281d8804	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x281e050c	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x281ec7ba	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x282f14af	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x28349ca2	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x285c17c9	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286b9ce3	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2871e975	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x288bdf7d	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a42bfa	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b6c5bb	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x28bc4085	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ca25b8	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e64c64	xen_has_pv_and_legacy_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x28fe54b7	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2916f3b8	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x291de3e5	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x2941bcf3	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x294bf773	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951a872	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x29583bd3	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x29649545	xen_pcpu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2973f9a3	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2979fc60	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x29842a6a	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2992edeb	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c04d03	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ceabef	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d579b7	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e1cce5	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e7bf4f	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29fc4bc6	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a005e29	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a08c175	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a13fa3f	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a15aa23	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1af7d1	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1beb26	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a233db8	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a36c2bf	devm_clk_get_optional_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4381b5	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a50ad09	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a58ae55	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a5c7432	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a660abe	del_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a6a7516	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a771649	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7ae436	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a849b67	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abb513f	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x2acb1764	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aebf3f2	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aff68f9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b08b860	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1def8e	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1f2282	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2a0562	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2a3a8a	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b3ebde6	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b45f14d	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b525f42	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6389c4	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b67b6b7	mds_idle_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8b7397	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9845e6	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9ec5e6	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba0dd6c	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba43424	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb7fda7	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bda81ea	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bed1cf1	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf07e6f	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf3cff4	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf8e4b0	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0524c8	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c227b8b	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2f5a09	x86_family
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c34c685	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7c6995	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c80eec1	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8eecfb	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8fe67b	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb22bd6	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb9bbf3	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce2c63f	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d183320	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d237595	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d28416e	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d3235d1	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d323af0	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d4691fe	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d48781e	smp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d5efb65	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8d65c5	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db4213c	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dbf7fbf	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc8a7b6	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2de6945b	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df756dc	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dff40d4	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e21c5fd	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2df7f4	irq_remapping_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e37489c	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7ca5d2	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e829250	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec445b4	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee58a3d	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef4ffac	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f016f5d	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f06d7a9	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f11c9ab	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1ba3ac	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2ab8a7	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3e48e4	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4e1d05	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f593e70	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f6d5d6d	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f807d4b	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f8fd89d	xas_split_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f96230a	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f9ffb80	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdcfd28	smca_get_long_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x300f550b	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x30308282	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x303271b9	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x3040b186	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x30449d89	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3045010a	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3059a610	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x306b8f86	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x309449c2	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cad39c	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cf804f	slow_virt_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x30d29969	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x30d68f6d	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f74569	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x30fd709a	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x31128b8e	hv_remove_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x311a784c	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x311dc548	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x31382122	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165daa3	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x31758d5a	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3178c2a4	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x317b3099	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x3193dffb	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ce3c5f	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e02709	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e6f437	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e785e3	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e9603b	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ef62ed	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x31fd17bd	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3202724e	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x320e2295	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x321a504d	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x321a70d8	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x323314d3	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x32434c70	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x32527160	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x326a2872	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x326ac78b	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x3275b1ac	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x3276b6c6	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x327deff0	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x3287a144	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x328c1fbe	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e3354	__memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32af61ba	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b7d700	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x32baf94e	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32cb27f0	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d43e95	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3b076	mxcsr_feature_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ec42d3	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f85015	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3300a525	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x33124a3e	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3325a266	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x332cb003	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x3333e466	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x33410444	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x334d9391	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x335838dd	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3362b03c	xen_p2m_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x33655159	xen_pcpu_hotplug_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a03453	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a74ab9	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b10849	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b16b34	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c73350	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x33dd9940	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x33df68e5	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f48d5b	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f58087	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fc313f	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fede33	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x340d8c80	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x34115d8c	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3446e248	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x345f6879	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x34640401	irqd_cfg
+EXPORT_SYMBOL_GPL	 vmlinux 0x346c10be	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x346f748e	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x3493c2d0	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x34957ab5	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x34af32c7	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b2a205	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cd266f	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f63474	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352cf542	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x353c8d03	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x35617436	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x35619b39	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3577e859	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3579ba4d	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x358b7b8b	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x35928791	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a3b495	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x35abed66	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b34f54	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b3dbf6	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x35bab5aa	set_pages_array_wt
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c44ec4	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c8970b	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d140f2	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d5514f	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x35ddec14	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e08429	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f18bfd	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3607e25a	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x360de7ec	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x3623321b	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x36253c46	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x363ea538	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x36597577	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x3659b3c0	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x365fcbb2	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x3660e366	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3672deaf	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3676d8b1	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x367da7f8	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3681a7b9	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x36888137	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x369a62fb	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5497e	intel_iommu_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x3711a953	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3723f0a9	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x372a514a	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x375390e9	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x376b910a	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x376e0fdc	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x379693fb	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a3fb9b	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a67d8f	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bffbab	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c0d75c	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c16654	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x37cfaf1e	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d04f80	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f292c4	pmc_atom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f475b8	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x381370fe	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x381a1528	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x382a376a	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384fc0c2	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x3866105f	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x38701de5	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x38722f80	kernel_fpu_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x388264ea	amd_clear_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x38853ffd	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a86b14	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38bea8b7	events_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c135cb	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c1669a	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cdcd64	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d80d1a	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e0e665	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x390e0e34	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3925f73c	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x392e751e	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x394b9842	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e2fd7	ms_hyperv
+EXPORT_SYMBOL_GPL	 vmlinux 0x398ff55b	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a60e3b	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b1e1c5	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c436f6	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c977a7	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x39cab21d	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e4da7d	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd0f21	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1d7108	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2c1268	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2f6bc4	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a420713	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a497868	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4ff17f	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a62c6b9	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a688ac7	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7d80f9	xen_max_p2m_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8231fb	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8bbb8e	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9b07e2	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad93ab1	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae5a2e2	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aebda8c	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af578f5	hyperv_report_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0e9367	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b236e9c	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b3c46f5	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4063b8	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b91db5b	intel_pt_handle_vmx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba0caa2	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb029d2	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bcedaa4	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd0e3bd	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd66cc9	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd686c3	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bddeb70	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bde516c	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdfb3ac	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf83e4f	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0ba3c8	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e8050	hyperv_pcpu_input_arg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c23993f	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c53c359	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c61a851	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9b2228	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9ead6a	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cad7431	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb5a646	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb8b011	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cbd5f82	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd048a9	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd18991	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cdc68ae	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf77d23	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d133168	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2b9fd6	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2e472e	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2e8d01	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d302836	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d67e8e1	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6f0e33	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7cb7b1	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d812d04	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d92d613	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da50bc3	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcd1787	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd2cda9	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3415a4	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e44b378	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e461edf	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e74ab23	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec18c98	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3edddabf	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef97ad9	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efb9210	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f07d70a	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2f53dd	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b6caf	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f52973d	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5bbc02	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f6e24d5	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9a6459	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9d2d29	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae6ab0	hv_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb6cc26	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc87044	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd547d2	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4001b842	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x40031659	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x400e96f0	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x4015faf8	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x401946bf	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x40332f19	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x40364e00	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4055e4a3	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x405fe1d2	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x4064f6ba	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406835db	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x40703b3f	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x40915bed	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b47ad0	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x40c6ff17	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x40dfeec3	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ea50bb	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4126caba	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x41278214	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4127ed88	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129f5ee	kernel_fpu_begin_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x41462908	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x414a8103	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414de7df	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x415bb28b	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x41872823	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x418ba8b7	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x4191e60c	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x419afa44	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x419c2e07	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a6f234	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41bc7561	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c9f1bb	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d07cd3	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d61337	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed2ad8	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f1b9f7	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4210b815	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4222d346	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42313219	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL	 vmlinux 0x4235acad	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x423ee777	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426b91a3	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4287867f	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x428a183a	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x42948813	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a17bce	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b6c880	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c40239	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ceadf4	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x42de6ec5	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x4315c951	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4321719b	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x432cfb70	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x432f212d	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4330f8a3	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x43497164	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x435dc5f0	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x436792aa	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x43733f63	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x43758db5	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x43797bf9	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x437fd137	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a7f69e	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b274a4	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b5162f	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b9b3d8	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b9b7d9	pwm_lpss_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c33d4d	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c56e89	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x43eec0af	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43faee21	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x44096346	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x441084ff	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x44226d8d	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x4424e2ee	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4433f6f5	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x445a8682	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x44683639	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4468f372	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a10fac	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b04525	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44cbdcc2	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e52ebd	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e9e2b9	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f747d7	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x450110e8	perf_assign_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4513c561	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4541fe0d	mtrr_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4545183c	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x454e6fc1	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x455d9f8a	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x456246f0	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x457c3dc3	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4580c022	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x45978321	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ac54ba	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x45af2724	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b35b57	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c33774	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c49bdb	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x45cf8f9b	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d14bdf	hypercall_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d68e75	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x45db2494	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x45dc3a1c	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e0b061	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x460625bc	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x460bb04f	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x460d996f	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x461a9f2b	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4622226e	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4627047c	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x463d8290	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4665138e	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x467be215	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46983218	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x469de004	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x46b11548	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bbcf3e	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c6d30b	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d22cc3	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d2aa8c	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x47120687	intel_svm_unbind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x472604a0	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x475ee987	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4762ce9f	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4770fd86	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a3ae5a	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a4a5c2	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47afc991	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47edfc8d	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f21452	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x480480bc	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x4815cd6e	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x481e337c	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x4832f2dd	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4836a53a	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x484647be	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4863fa46	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x489855cd	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x4899e3ad	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c06b08	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e05b8c	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e1f2ff	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48fd533f	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x4900e36a	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x49208c05	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x492f3b83	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4932a5c8	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x493c5bd0	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x494cb8d1	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x496d4240	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x49717500	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x498be515	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x499123e6	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x49951708	sev_enable_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a651e4	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x49adcebf	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c14a61	ex_handler_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cfecfe	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d41185	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dc1759	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x49dc6ddf	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0dcbac	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a171106	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a1bbffc	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a1cb561	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2a7aa3	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5180bf	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a543fc9	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5b1a3f	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6cf0ea	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7972e7	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7f342d	uv_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8e8b39	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9126f1	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9eaa52	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4abac1f4	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad1f545	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad6a037	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae457fa	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af16ede	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b091fd7	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0d7fa5	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1d94aa	mce_is_correctable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b22f49e	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b350c6b	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b37df4e	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4d8409	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56ce05	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5a23ec	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b705657	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b762828	start_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7b1e7e	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b894cfe	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b94232f	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9a1780	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4baa5e4f	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb6427e	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc94c3b	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc9e920	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf6514d	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf8cfe4	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c02edb7	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c081d91	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c201622	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c22c447	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c30cb7f	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c32d833	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c47426e	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c49f1de	hv_clock_per_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5944e9	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5987ea	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c654e6a	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6d9bd0	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c762b5c	x86_stepping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c8576a9	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c88d2e5	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c8fed50	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c959d27	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca2d289	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cac1038	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfce41b	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d277bbb	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d351a86	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d6b00c4	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d83e77f	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d894215	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a3030	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da80270	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db62edb	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc8ec37	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd2808e	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de7df3d	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x4deb2d2a	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e00ee92	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e22a7df	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e35dce7	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3a18ad	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e481167	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e69b3e5	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea8134c	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed53f3c	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x4edcb788	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4edf5f2e	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f021841	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0ed2a9	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1df71d	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3f49b9	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f405cf8	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4d63c5	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f57c27f	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f57ce6c	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6c1ab6	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f70c03d	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f87ec9f	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f94ddf9	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac98a7	machine_check_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb207ee	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb46ff6	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbb4757	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc5ebeb	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc83e1d	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd9633e	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff27d04	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x500a5244	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5031dd5e	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x503584a6	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5040f0e4	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x50445b3c	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x50706459	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5076d7da	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091612b	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a567ce	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ac4975	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b03f5d	l1tf_vmx_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ba50ce	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x50bd18e2	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1f870	pgprot_writecombine
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e3a7d8	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ecf813	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5101db89	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x5128cd2a	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x51323828	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5139e83f	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x51535698	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x51735cf9	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x518037d2	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x51818985	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x51853583	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x519b6b64	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x51a56d46	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b66ada	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d27007	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x51dc159b	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x51dc6367	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ea9590	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5229ca0b	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x52390f48	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5241a74e	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5246595f	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5247589f	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52554945	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5268a208	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x528d25f7	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x52953544	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0x5298789a	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x52a2f1ee	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ac021e	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b6a2c0	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b72141	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x52bf8231	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e98099	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x530d5531	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x532168b6	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5337ffd2	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x533afc5e	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x534592bf	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x53528604	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x53580835	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x535fc7ee	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x537609b3	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5388ea42	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x538b1a14	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x539f157b	pci_xen_swiotlb_init_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c47c53	apic
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c69826	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x53da94d4	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x53dc73a2	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x53de81f8	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x53e5951a	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f2199a	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x54092439	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x542cbb11	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5438ec87	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5439a0a4	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x54433959	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x54476bfa	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x54571d46	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x547ebac3	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x54907797	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x54bec3d2	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e0dc6c	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e991e3	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54eb7e65	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fb7083	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x55073861	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x550cb6c9	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x550ce709	pat_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x551cf6de	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5520462b	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5525d4a6	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x55547ecd	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x5555cf28	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x55625cf8	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x55692d57	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55acc30d	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d3069c	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e07baa	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e840e1	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ee0d33	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f11af9	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x55fb7d63	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x5609ada3	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x560fc31a	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56294f22	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x562b2db2	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56398615	mark_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x56447b12	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5651a6fb	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x56565b6f	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c8b0a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x566a3645	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x566acc54	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x566b38a8	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x56749d5d	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x56948896	spec_ctrl_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x56960a06	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a0d01b	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x56af8ada	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c7334f	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c795f4	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cc8260	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d2c515	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f126a9	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f615ce	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5706367e	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x570ce747	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5713797f	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x572e264d	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x574fc58c	system_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x57626a4a	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x576b94f5	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x5780dfb9	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x57861a5c	gds_ucode_mitigated
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x57994f37	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d537e0	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x57dec76e	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f2ef32	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5803b5d8	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276586	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x584bae8c	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5859a7f5	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x585ed1bb	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5865df3f	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x58814d47	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5881d147	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b08bb5	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x58bbc88d	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d4e84c	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d6311d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58dca0fc	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e8d8cb	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f03b99	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f75f94	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x58fd2f87	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x59076d04	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x590a0e31	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x590fb79d	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5912942a	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5914d6b9	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x59319d6e	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5931e326	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5933ae70	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x595487c7	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x59640bd8	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x59671913	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x597e0946	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ac6036	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59bb7d3d	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c6aff4	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d4805f	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e0d812	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e43ead	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e86179	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a20d0d6	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2c67a7	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a2daec0	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a329935	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a504bd1	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a679074	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a723e24	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a90052b	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a95dde1	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa494f1	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aac2f1b	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abb8d41	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abcc189	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad723c7	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae34a64	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae7b1f1	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b089c50	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b28ee75	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b3ecd95	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b42218f	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4b0fe8	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7bdffb	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b82f723	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b884364	hyperv_report_panic_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8856f3	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b98c2d0	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb289ac	__tracepoint_extlog_mem_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbd2735	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc20aea	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5be27dae	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x5be7c791	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0bad11	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2128f4	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c31d89d	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3f2899	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c43b966	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4f0b1d	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c54879a	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6ba652	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c7c3bd6	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c88cc5f	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c94e24c	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb27150	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb3b677	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb66d81	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb8c90c	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cda8fd1	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cde5b7a	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf22dc4	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d1423c1	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2e567a	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d389658	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d44ee2f	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d59b55b	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d71f895	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d78fe45	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8674cf	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9317d7	uv_teardown_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d96941a	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db2347a	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbcfa4f	boot_cpu_physical_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc3b974	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc74943	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dd05488	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dff0cc5	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e042e41	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e07e363	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0bf32c	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0ff527	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e188a5d	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e256157	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e451f3b	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4857f7	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4ce5e5	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e648cc4	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e89ce44	xen_remap_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e94ad10	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e969b38	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9b3177	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ea47f74	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb6e752	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ebca0a0	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ebe4568	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eddac41	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eedc963	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0ecd39	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f1a5e94	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f26b8d8	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f27d0ca	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2ec9d7	efi_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2fcc83	ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3feb51	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f435050	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4f40ef	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f52cb84	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f5e8b35	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa2b7d0	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fae6406	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb067bb	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc6ebef	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdfa2c1	amd_pmu_enable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5feae047	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fed8ed8	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x603a48b0	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x60434919	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x6087a78d	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x60905849	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60929988	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a00ea8	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a1bf6f	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60bbb931	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ed268b	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f19fe9	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f71bf9	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fbf479	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x61101821	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6123b178	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x61290fe4	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61669e5d	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6182b7b5	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x618bf51d	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6190a8dd	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x61931607	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b14da	fpstate_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x619f4f1d	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b443f8	x86_spec_ctrl_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ba1c7c	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ca9561	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x61cae689	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d8b2dc	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x61da99ad	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x61db6a01	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x61e3395c	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ef65c8	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x62020bbb	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x621181ef	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x621cb1e5	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259be62	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a5db09	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x62aeebe0	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b03619	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b12a1c	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b1b0cc	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c174cd	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c7d895	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cae61a	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cda3b0	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d32c51	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x62ff3a85	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631cfb3f	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x6340434e	x86_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x634091a0	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x63522a16	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x635a0034	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x636a56c8	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x636f137b	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x637fe2d1	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a9653	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x63a235d2	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x63a89344	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x63bf585d	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c8fd2b	hv_setup_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63cdcceb	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fe11a7	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6451c9cc	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0x64921e87	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a62e11	acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bdcaa8	hv_get_tsc_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d006ad	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d08db2	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f2b3b0	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f4ab03	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ff1b32	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x65087d6b	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x651ec83a	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x65218f22	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x65230ebf	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6527a231	dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x653e7ea7	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x65741e39	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x6575bc88	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x657a9e8f	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x65808fb5	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x659b95a9	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c94f1a	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6625f41f	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6626c907	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x6631adf5	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x66557142	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x665c9f97	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x665cabd7	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x66613a88	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x666170ac	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6668f10b	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x667ac28e	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6680f147	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x668a09c9	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x668d03cd	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x669a0705	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b12919	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b8ac19	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66cd3fb2	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x672418dd	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6736569b	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x6744fa38	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x675537ec	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x676bcf64	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x677f7039	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x678020f7	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x6783c5a5	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6785885e	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x678646bf	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a970ce	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x67ab8c81	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c82c26	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x67d12b8e	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcd76b	uv_setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e341e3	uv_bios_freq_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x67edf952	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6816762f	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6829f8dc	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x683d0874	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x684b1001	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x686d9132	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6872afce	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x687ef181	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x688e12a6	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68c130fb	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x68c6322c	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d48ab5	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695d36d5	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6960553e	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696c13cb	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x696d7e0b	l1tf_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x6971f6ce	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x6972d896	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x697742fb	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6982e9a0	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x6983d17a	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x6988b2d7	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b054f8	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x69bdb89e	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x69cce85c	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e4e74d	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e7bced	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f99ac2	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a065de1	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a219da0	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3060d0	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a35e7f8	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a39cae6	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a436859	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4cb859	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a50fff5	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a520796	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a63c632	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a64c671	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a75ac75	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8016a6	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a86a107	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aafa8a6	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab5bd86	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af194de	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b214675	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b402355	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b420c72	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5213f5	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b5759d6	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7a4335	hyperv_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8d6d35	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b9bbf8d	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b9f8329	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b9fd2d6	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc34cb0	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bcc960f	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf6fe33	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfc2fe8	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0b9dff	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0c6278	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c29e7ae	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c333937	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3ed5a0	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c46329f	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c78c6f3	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c9c2d59	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca561fe	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd36e41	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdbad9f	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce4c24a	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d18f33e	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3453ed	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5577da	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5a5b4d	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d65b1b4	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6a43fb	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d70b161	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d735993	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7c4fe7	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d852209	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8664da	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d89198e	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d926522	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9bce18	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9f3ba3	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da3ec31	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da63a2b	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbb447a	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbb7327	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc43474	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd40d1d	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de1c843	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df3f7a6	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dff6fef	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e099a19	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1aca2c	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2e9986	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2efdbe	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6d0343	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e85b00b	local_touch_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e912dd1	x86_vector_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e9919d8	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eabfbf1	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb71761	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebc313f	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec55481	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8f355	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef75977	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef7a4dd	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f308efc	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f35f1c8	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3e760d	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f50c05b	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f638b55	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f76e882	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7d4d57	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7f85f4	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f8286d6	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f86f26d	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa45ad4	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fce95ec	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe7ac35	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fea6087	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffbe930	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffce680	x86_cpu_has_min_microcode_rev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7011fd49	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x701714af	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x703157eb	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x703866a2	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x70531677	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x70576fee	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x705e1dc2	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x70628c40	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x707e2b4b	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7082a20d	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7092cc2d	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x709687f1	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x709cd686	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x70a1f9c7	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70be16db	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c5a234	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cfe277	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d8ec92	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f2da3d	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f5332f	sfi_table_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f899f7	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f93332	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f9f372	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x710184d6	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71124a43	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7112f814	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x71203c17	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x7151df63	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x716516c5	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x71689a5a	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x716f3385	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a8b36c	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b590ab	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x71c67d8b	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e7a4a6	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ef443f	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x71efd148	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f4b665	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f7ff1c	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x720276e8	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7210c123	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x7219e38e	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7235aadc	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x72399229	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x72510142	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x72603456	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x72641cf4	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x72656b64	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7281e85a	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x729a6927	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a5c58e	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x72bab0a8	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c9474c	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e2c5fd	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e46af9	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ec6105	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f0a269	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f258fd	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x730b10ad	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x73210236	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x735d8b48	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7366700a	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x737b418a	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x738461ab	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fe32b	amd_get_nodes_per_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a08a32	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ba520a	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bda1d4	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d9698a	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e93b78	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f109f3	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x73fa03fa	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7400d42d	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x740359ed	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7415f1d9	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x74395ed4	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x74471e4e	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x74484492	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452adff	user_return_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74532483	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x746bfaae	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x74721f09	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x749609da	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x74afd474	xen_find_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d7228a	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x74dbfc17	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ece7c5	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f4bb94	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fcd475	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x75018014	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x750303ba	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7510e850	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7514fe6e	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x7515b50d	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521afb6	leave_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x75521969	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x75644103	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x75792186	get_xsave_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x758da96b	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7593e4ed	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ade056	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b5218f	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bb694c	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dfeb88	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e75cd2	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ed4eca	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x76008286	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x760e63eb	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x761e2ccc	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7630678c	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x764ed165	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x76594816	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x765a5ba6	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x765a5ea4	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7669242c	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x766db263	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x768c732f	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x76945fb4	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x7694964e	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x76b284b9	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c94ee5	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d951cd	mce_inject_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f92663	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x76fb1fb7	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x7700af7a	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x77115042	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x772520f4	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b0f64	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x773681d3	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x773caac0	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x77491ec7	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x774bfae7	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x776064a7	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x7770c602	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x7775fdc7	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7795e839	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x77a8a3be	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c1c781	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c526b2	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca23d8	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d82dac	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d85d20	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x77df55dd	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ef2719	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f4e2dc	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x781651e4	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x782adb74	hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x78505f6a	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x78543d82	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785cf894	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x785fe0ca	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x786a0be5	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x78812411	hv_stimer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a4e8af	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c270ac	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d9f5ec	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x78decffd	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e13746	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e88633	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fbb88c	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7900f487	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7903bb35	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7913ceb7	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x79150267	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x791748c8	adxl_decode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x79328e5a	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x79334a93	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x79495346	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a43b4	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7958a0d9	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x797c0c25	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x798a3788	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991eca2	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991fd8d	crash_vmclear_loaded_vmcss
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a5c87f	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x79acf680	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c0327b	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cbf134	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf1043	fpu_kernel_xstate_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0638ec	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a51117a	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5d49a7	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a74c5f1	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7a51d3	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9a16b4	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abf6ffa	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac1ad9c	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7acb58e4	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b162830	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b262fbe	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b29ce1c	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b377826	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ef438	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b66b3f0	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb42216	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb7b7f5	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc6b495	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcfd6c1	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bef960c	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c15f747	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1fc695	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c20b6a0	load_direct_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2c2734	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3cae27	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6ff454	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7ac3f9	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8238e0	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c87b7a6	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca70faf	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caeeaaf	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc25805	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc9d61e	node_to_amd_nb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cceaf92	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf16988	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e1d95	hv_setup_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0f76e5	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1960ed	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d288c26	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d4fa3a9	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d568808	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d5abf92	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d5d088b	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6084eb	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d79bf95	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7ac8f8	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d838180	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da4a958	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db50598	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db8fa5a	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db99dce	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc22dfa	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc9d573	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de65a03	acpi_lpat_free_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de6cc23	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df49b86	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dfda52c	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e091565	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0d5e7c	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e202239	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e556c6a	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e561d5e	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6c219d	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e79a662	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e842757	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e897c70	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9c4e58	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea1a2bc	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebc25d0	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebcb88f	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec06590	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec3faaa	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eccbebf	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7edf8a57	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eed505c	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f01559e	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f08d098	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f329754	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f5c5928	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f5f5e1c	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6b4188	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6db153	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f756cc3	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9dd99c	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb06ca5	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb74966	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc0a16b	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc561a6	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fc84ded	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe8f121	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff3a05f	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x8000ed79	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x801ac897	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8021dcb8	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x803067a2	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x80505c0a	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a34ae6	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b98818	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bf05d3	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e094f9	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e26d71	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e2ed9b	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e89a4c	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x810e850f	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x81221cad	amd_nb_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x81307c53	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x8133e879	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8139884c	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x813b8406	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x813e2da7	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x81499982	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8157f973	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8186eec3	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a7209b	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d6a881	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81dcb714	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f00661	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f337ee	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f41ed4	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x8210d95f	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x824e6b9a	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8253e54b	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x826ead35	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8271597d	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x827501f4	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x827d21b9	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x828af8ba	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x828d8044	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x8291ca49	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x829d2d93	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ac47fb	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b1e6c3	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c06bdd	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d4c787	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d7f0a9	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x82de4333	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e08326	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e6c261	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x830f0c74	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x831f0c7b	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x83254b99	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833f2c86	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8344201d	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x83450c20	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x83513c05	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x8382e4d0	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8398de84	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x839a6497	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a736f1	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a77811	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b587a6	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d3aaa2	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e89168	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f10eda	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f4946b	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x841387ef	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x8418154b	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8426757a	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x84282a3a	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x842a0f5f	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x84482848	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8495669a	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x849fc299	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b268cf	sn_coherency_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b8137f	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x84baadc8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x84cf3536	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f12e30	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f45bca	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8508e17f	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x850936bf	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x853bbff4	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x854aa07b	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8552e598	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855a00b5	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x855ba565	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x856c88cb	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b41f4d	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b9b39e	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb2c45	xen_has_pv_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d97abd	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ed2dfa	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f0b863	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f28431	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x85fe26e8	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x86042bc4	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x86166a70	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x86169f3e	amd_smn_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x861e6082	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86335437	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8633be48	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8635e3d4	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x8642b2a0	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8654be58	hv_remove_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86639ff0	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677f369	pvclock_get_pvti_cpu0_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x867847b8	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8698b084	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x869a69f3	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a9f3f8	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x86af0586	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86bf571e	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e775df	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f169d8	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f2a0e5	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8704f31d	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x871fc8be	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8733e0fa	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x8735ed3d	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x87416e46	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x87438379	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x87570cf5	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x8762bd16	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8770a431	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8778f3c3	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x8795d551	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x8796c058	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x8796ed30	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x87aabbed	uv_apicid_hibits
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b159d3	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x87bc2476	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c7a9d1	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x87cab09a	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d40916	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e01fe6	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e35609	hv_stimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e64181	amd_nb_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x8806cd36	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x88096963	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x88131f09	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x881d25c5	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x882984bc	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x882fbb34	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x88373252	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x887552a0	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x887d3df6	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c68522	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c69452	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c84e21	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x88cbdad1	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a9f6e	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x89293b70	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8967eb6a	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x896961cb	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x897c91a8	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x89864ad1	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x898f7007	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x89935941	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x899eb897	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b4626c	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b69ba2	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b9bfcd	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89c70358	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x89dc38e8	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x89dfc3c0	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f21106	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f55f8d	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x89fccf85	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0662ce	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a07b2b9	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a07d443	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0e318b	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a10011e	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3bf693	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ca7be	hyperv_flush_guest_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5b8834	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a724e15	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a77e146	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7cb9c4	platform_thermal_package_rate_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a86fde1	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a88de32	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a95ba51	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa6d948	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab38393	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab7dab5	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abed27d	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad5ceb1	__uv_hub_info_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af6309b	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0cba00	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0d303f	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1b27a1	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1f847c	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b21f3b0	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b34ac5e	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3c983d	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3e193c	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b66a6a1	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6706d9	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7accbd	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9200fd	lookup_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbe3797	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc203c9	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bce79cd	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdcc287	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be736bd	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03c27e	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c173558	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c4f5b4c	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5ca132	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c752837	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7af5b3	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7fe69f	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9c93f6	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9d1661	arch_phys_wc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd6bd2	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd5e28c	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd8cb2a	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf09184	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf1e6b1	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d405a47	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d468e77	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d53bd61	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d574624	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d58d201	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6ee065	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d74563e	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8d1844	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8ffc9b	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9ab976	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dab2d2c	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbe6ef7	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc3e1cf	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd4eac1	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dddd4c5	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e041602	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e15a99e	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e1cca08	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e25bb03	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e47bb8f	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e52995f	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e55b332	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e897331	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bd4a3	hv_alloc_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea8f011	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebc4d31	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec85515	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec9e437	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eccb09f	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edcb4b0	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee53e31	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0a9c8e	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2eb429	kvm_arch_para_hints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f32779d	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4edbc6	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f526df5	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f68eb32	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7470be	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f84dceb	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f85dee1	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8bebc1	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8c19b2	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fae1038	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe584cd	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe68ed3	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff6d1ed	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffafc2b	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ffe704b	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x9001fc00	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x9016151a	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9024f443	mds_user_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x9029c1a9	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x90320995	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x903637ba	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x903ad915	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677de8	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9084b044	clear_page_erms
+EXPORT_SYMBOL_GPL	 vmlinux 0x9086dd6d	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x908f1bae	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d8cc	hv_is_hyperv_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ab013d	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b83bc5	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c91f37	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de0452	platform_thermal_package_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e433a8	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ff7bdd	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ff8721	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x911374b8	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x911c7651	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9126583f	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x913297fb	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9132ce89	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x9147d72f	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x914aa0b7	hyperv_cs
+EXPORT_SYMBOL_GPL	 vmlinux 0x914bd63f	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x91594445	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9172b722	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9185933b	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x919d6ba2	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ad21c2	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x91be1ccf	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c7a884	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cdc260	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e44861	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f58376	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x9205cfc0	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cef5e	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x92141343	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x9223001d	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x922d1d6b	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x92553ae7	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x9258937a	e820__mapped_raw_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x927a1e17	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x927a674a	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x9288b470	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a8c6d3	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c8569e	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x92cb9337	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9309b1ad	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x93118e08	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93144fa1	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x932a7cb8	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x932e60f8	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9344802f	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x935b9872	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x937f18d1	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x93850c53	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x938b21d0	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x938d14d9	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d7f42e	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc2586	pgprot_writethrough
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x940c794e	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x940d634e	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424058f	arch_haltpoll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x942e8077	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943bb668	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x946cc619	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x94761ac9	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x947b40c6	cpu_smt_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x948280db	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x9489276f	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x948b1a87	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9492c272	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a5dc27	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b531ac	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c284e7	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x94de7fd2	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ffaf60	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x9503fd84	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x9510238f	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x951ed558	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x95356b28	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x954ccfe8	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x959018d8	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x9594bf14	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9595ea8b	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ef53f	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a3df43	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bba90f	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c15e03	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c88e86	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d46159	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x95dbcd78	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e8a752	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x960778e0	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x960b14de	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x96382def	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9647cc79	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9655694d	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x96564ab8	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x96594077	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x965f17ea	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x966b348f	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x966b8199	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x966be3ac	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x967b4522	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9688b217	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x969d01fc	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a3f226	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a43d4e	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b0d609	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b3d3bf	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c40cec	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c68785	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c6c1f0	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d42064	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d42122	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x970867cf	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c230b	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x97123777	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9719bcfd	pmc_atom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x971c5f9e	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x97270bc1	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x976f70fb	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x977c24e6	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9786eac1	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x978bff47	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x97925bf8	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x979d1604	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a6c47c	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b16cda	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b8d39d	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12355	hv_remove_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97dab7f0	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e2decb	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e4435c	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ebba32	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ede117	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x98058f17	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x98243bc6	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x98263147	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x982ab3ae	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9832b2d5	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x98330cc0	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983e2cec	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98409fff	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ab0a5	amd_get_nb_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x987e553d	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x988a1a00	sn_region_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9890ffb2	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x98928272	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x9894a439	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9894b1d4	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x98973a68	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bfdaa3	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f4d306	hyperv_flush_guest_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fcd568	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9901e6be	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x9916d97a	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x991e6d9d	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930f8a3	uv_bios_change_memprotect
+EXPORT_SYMBOL_GPL	 vmlinux 0x99430ba2	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x99470a38	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x99599b17	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x996e6781	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x997a10d0	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998503fe	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x9988f9f1	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x99891c22	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9991476c	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ae7a29	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b73115	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x99baf9ff	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x99bf6f47	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c011d8	mcsafe_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c5e016	isa_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c942c2	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ce790d	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x99eb555e	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99fb24f1	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a28ee4a	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4cbf7a	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a50375e	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a509541	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a55f0aa	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a570428	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a701a2e	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7b4383	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8ec48d	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa71c2a	efi_query_variable_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaac699	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abf42cb	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac28867	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac50b2c	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae8ef26	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af8d8bc	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1f1ab8	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b32daf6	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b687ea2	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b68b2a9	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b70a1b1	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b790b46	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9869f2	isa_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9f3648	pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba1698b	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bad141d	hv_hypercall_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb93db0	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bceaab6	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf226c3	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf24a5d	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bf2cdbb	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bfa55f3	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c03a2fa	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c141941	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c28d411	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3418f7	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7259f6	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c755d98	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8951da	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c91ab46	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca43364	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cbdcb1a	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cccfc3c	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf82067	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d0765f4	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d118f19	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d179d04	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1c99f2	pci_msi_set_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1cba2b	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1ee545	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d3e1c0d	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d44da85	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d4d5f9e	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d69740f	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d73291c	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d7afcfe	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d92a532	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db15ef8	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db62c36	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbe5432	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc56d3b	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df8a777	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e12b824	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e328488	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4204ad	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e423bbc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4476f4	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4dd646	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5e4648	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5e8eac	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e77a712	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7a89f7	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7dd428	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e854bdf	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e859596	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8f5486	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea4625d	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea843f2	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea8707e	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eaf7348	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb8cf2c	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ecf290d	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f079876	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f0b797d	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f170bd7	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f275a6f	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f2e2dd6	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3ca61a	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4f1ee5	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f71bc72	uv_bios_set_legacy_vga_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9a4a9c	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa16b3a	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa5b9b5	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fab32df	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fade2c6	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcdf2da	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd29e58	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe37f14	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff05c9e	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa00e56c3	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0182d24	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01f1eb6	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02eea58	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa046707e	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0549e31	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0671e7e	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07ffe10	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0811089	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c8c35a	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ca44bd	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0cce1d1	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f8df09	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa12fbacc	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa13581a6	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa135e776	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15a6e06	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15ab92c	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1619868	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16c0597	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1816641	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18d3f0f	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19c1af3	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b3cc8c	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b70fa4	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1dcc91c	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f15515	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1fe4602	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2046720	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2109925	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2311ba3	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa258934d	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26b51b2	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa280c9fe	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a7040e	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bdb359	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d0b59d	mmio_stale_data_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e3d5fb	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e9563b	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30e9196	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa332332b	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33722db	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa340fa5a	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34e8929	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3876af3	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38b6f9f	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7ce4f	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b1fddb	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b66313	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d53d08	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3da9490	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4072a5c	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa416e83b	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa428f1fd	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43a2f63	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43cee61	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452c297	hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48ddb58	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49f25af	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4eebe03	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f2860a	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f71496	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f866cd	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5072d17	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50d3dcc	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5209f97	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52a841a	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5313d57	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5321e94	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53de76b	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xa55608d0	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5604268	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa564431d	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xa56af676	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xa577fb6a	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586fcdb	uv_min_hub_revision_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58ceb08	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5948916	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a1df67	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a6699f	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bdc978	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c1c031	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5dd26ef	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5f867b3	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa614bcd4	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6165489	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa635771f	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa645c0c3	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6628905	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0xa674b75d	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6755063	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa67ecf5a	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6814579	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6830581	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa687662e	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xa687a58e	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68c7403	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68ffab0	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69b3ac3	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a1aa2e	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a533e0	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ccbe33	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6db1a2e	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa705f461	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa708b9d1	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7127da7	mce_unregister_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa722f381	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa727f4ba	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa754f53a	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xa75f3024	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76aefcb	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78ce400	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79fb2fb	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b0d9c2	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c16dab	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d00203	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d15fc3	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d9a8f6	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ec1780	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7f8c21c	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80e53c7	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8104dbd	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa810ed24	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8152907	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8233340	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xa836f2c6	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83e554a	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851dc35	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa888c4de	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8891e22	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a0a6f4	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bdb324	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8dba5fd	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f27297	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fc8458	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9016402	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9108f58	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9139348	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95af48e	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95fb8e4	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9778c4a	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98049c6	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854364	umc_normaddr_to_sysaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9945a67	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a15221	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b32843	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c00430	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c527ce	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c669a2	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c7b681	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9cc7f9f	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9db84b8	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9f1ee0c	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9fb9f16	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa19492a	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2a8b37	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e2b59	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2f54bc	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3a5597	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa47fe51	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa566382	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5aee1c	uv_bios_mq_watchlist_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6741d3	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa86cfb5	uv_possible_blades
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa956eb5	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9dadd1	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa378a6	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab29a55	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac4940c	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac6f3fd	vmf_insert_pfn_pud
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf35e06	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1e0e93	hv_setup_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab234a08	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2bafa8	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3255da	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xab39ce49	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4c4244	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0xab574f7e	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6a7ddd	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7d8051	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xab94b49a	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xab981ade	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabae3904	pci_msi_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb379b0	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xabba2581	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xabbe01d6	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabce3113	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xabce6005	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd45a77	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xac272a60	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3c1f94	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xac4b45db	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xac4c6267	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xac67e5d1	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7e25cf	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xac99dc79	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9a1c99	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca1969c	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca1c518	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca27fff	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca32027	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb93815	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xacbab2bc	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xacbb1bd6	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc5f721	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xaccbc05d	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd214d3	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfc5cd5	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfcba9f	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xad023471	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1e4966	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1e61c0	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2654dd	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xad266121	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3d1930	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xad530d2d	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad546492	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5b6311	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f0017	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad680b2a	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xad93e585	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xad970114	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xada1ea9b	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb8f873	do_machine_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc671fb	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xadec5f1d	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae03a9d7	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae068a74	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae15553c	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1b85b0	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2a041a	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae45b87b	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xae52a513	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69c40b	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xae710b8c	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xae78f582	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7b495a	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae95df32	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb3a5f6	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb92d0b	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaedd7f68	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf010f53	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf142f45	add_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf20e0a9	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf28141a	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf342027	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf40f43b	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf52ee0c	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf58540e	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5fd63a	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf99142d	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9a2874	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa1d764	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa4e582	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb8c79c	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc12838	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd7baa8	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe85dba	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xafee06ff	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xafeef549	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0065b11	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02b029e	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ca974	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03671b8	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04549c6	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xb058ddea	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06681b5	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08c1492	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08ecad1	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a2be66	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a8b8b4	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b3cd9e	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b999dc	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0cca7d8	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0cf21a5	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0dd40c3	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e07c01	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f297dd	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f3401c	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10184d8	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11ffd0f	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xb127121c	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12ffc2c	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb13bc17b	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14386eb	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15282b3	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18a7645	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19531d9	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb199657f	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a1dd76	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ef0548	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fead97	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2117736	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26db244	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27a8cf9	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27f4ece	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb283b726	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb285b8f8	xen_in_preemptible_hcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28e6cfb	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb294805c	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29a221d	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2adb430	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bd5e9d	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d5cbfd	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e30bd6	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fd777b	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fe5290	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3042d6e	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb325f10b	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xb333d7cf	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb342d565	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb347ccd7	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb368db03	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38dbc4d	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb38f6b40	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39a1a1c	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b25c5d	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b2cd7d	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c4eb02	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c965ad	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3cef522	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d8ab5e	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3db45c7	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3df8f53	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ec040d	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42b86ba	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f5858	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45d9b28	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb48b6c2a	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb48eb1d8	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49327ec	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4984f88	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a87d40	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4aecd34	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d57dc5	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e16443	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4f04886	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e1f27	__uv_cpu_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e76de	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5150bed	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5237a7f	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xb528087f	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52d594a	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53625f4	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xb536cbe2	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb536e905	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54b3901	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb579355c	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb588061a	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb595b471	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5aed8f2	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b1ae97	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5bd02df	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e4cef3	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb601557f	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6157c2c	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb62505d3	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb62d9587	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64efad7	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65353b4	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xb655ba8c	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65e5a32	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68dfac4	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6afc95d	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c8e66d	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f31777	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70624e2	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb717086d	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71ed5f7	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb738f29f	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73e8188	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74d8374	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74e432f	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb759d7a6	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb761318b	sev_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb767c709	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78773c1	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7a84981	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c7cf14	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7ca2d15	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d7c12e	hpet_set_alarm_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7e36cf6	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7febf18	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81d3fa7	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb832bcad	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb833377b	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83d78bc	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xb845d724	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84d67c4	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8678bf5	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87131f7	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8728195	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ab92bf	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2b1f7	mce_register_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b8ad33	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8baeb24	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ec2b12	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb907854b	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91a0723	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92cf0fd	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9377cf4	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb938f451	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96ba8e3	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97a450a	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98ccf20	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b5b313	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c16f51	hv_max_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e273d8	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e48295	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9fbec83	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba01ec83	hv_stimer_global_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba15cd89	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2dc5db	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba31baa1	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xba403d90	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xba46c6be	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xba47d44c	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xba566e3e	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba586a3a	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xba590feb	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xba714cc5	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xba807bbd	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8107c7	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8ddb39	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9df1e1	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9e6dd0	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacb5dca	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbace318f	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadd07bd	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaefddd8	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf9d785	__tss_limit_invalid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb200206	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb22a3ca	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb49531b	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb589a0f	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb71ff42	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb797fb8	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8823e5	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9660c2	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba302b1	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb2d55b	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbcc8e6a	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbde139a	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbf5df3e	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc04bd46	x86_platform
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc06ecb4	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc19ccdc	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3e9815	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc525fe8	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc60dc37	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc62a980	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc69f754	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7e3e86	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc856b5e	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc932055	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca09450	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca93f63	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca9f0f4	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce7b113	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcfb2815	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3dab96	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd616aa7	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd8114f1	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd8fb88d	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd9b4703	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd9cb3ec	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb2dfd5	uv_bios_reserved_page_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc316eb	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcb7ed3	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcf7c7b	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcfd186	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd77d53	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdda52d5	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde924c7	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdeefcbc	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf318f0	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe088e48	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0a5415	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1c6d35	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1f6880	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe34a60c	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe371d28	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe411ae0	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe50563f	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe592b34	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6001b6	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe7620c4	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe8565ef	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9e9aef	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea1f82f	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec34fc5	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbecde8c7	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbedaa2e6	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef9a337	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf051552	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf061b28	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1aee73	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1e62eb	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3d02c2	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf42307d	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf43f54d	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf49f3eb	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf726612	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7dc65d	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7e9f67	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb1be70	hv_setup_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbfd8c7	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfda224d	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfffbe6c	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc013b5ac	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02f8470	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc03fcc93	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04529d2	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0680535	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06f2775	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07896ab	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc082f4c5	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc089dc7a	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bbce6	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bfc2d	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0b613d5	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c892e7	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0de49f2	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e0dd71	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e1c731	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f10ad6	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ff9b76	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc119da2b	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13c67a9	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1548b12	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xc154fdf9	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xc167f5dc	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16b1897	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1878a84	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18cdf36	amd_df_indirect_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19b236e	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19b6cb6	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19ee66c	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a5de04	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b8e604	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1bddbd4	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d02946	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20336f6	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc203cf56	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc205c976	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2142f39	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc248788d	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24ff8f9	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2512937	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc257fae4	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b8971	hv_remove_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc262db93	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2807b72	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28620cc	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc287d96a	kvm_set_posted_intr_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2884622	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a32565	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b862ef	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fd0875	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3190e93	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc31d9862	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33b6c82	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33d9374	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3717534	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3729362	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc386d2bf	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38839f5	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39710fe	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3985a1f	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c838eb	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e84c5f	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3edf6aa	save_fsgs_for_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f2756e	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f556fd	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f73e8e	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40bb71c	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40c4d03	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41d7366	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4385cba	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43c30a9	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc443f634	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44ce116	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc470106f	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc480cca3	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc484f601	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48fe6dc	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49097b6	is_uv_hubless
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49a07c6	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49ba537	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a6eac1	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4aedd5a	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b5bf01	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b7d2f1	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4d5be44	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc508e4db	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc512626a	__supported_pte_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52bb84c	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52eb4f7	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52fac3b	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5369efe	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc548c912	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc550502f	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5514f59	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5708f59	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5748856	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58ea6aa	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc598307e	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc59b9426	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a6bf05	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ad1b58	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5bbacf2	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c4c80e	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5de8523	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e3f896	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5fbb679	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc601b357	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6105e3e	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6198528	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62a7901	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6313832	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63dab2a	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d61c	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc668d471	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6796c20	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6807f3d	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc683da81	set_memory_decrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc686ff32	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68b8117	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc697afd5	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc697c686	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69cc895	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b10427	ex_handler_fprestore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c5367f	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6cc8a6e	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d5dbaa	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d810cf	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6dfd8ab	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc701225a	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc709aa10	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc711cdff	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7174ea7	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7462f7f	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74cce10	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75d329a	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7740738	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7751cef	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78114ad	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc785301a	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a79aaa	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bed050	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d0972a	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1cc1c	injectm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f21f4b	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fcb979	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc81ed563	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc823ddb1	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85b066d	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e487a	sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8801d51	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88bd55c	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a2615c	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c33dc3	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c6ebe8	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f162c9	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f63d86	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f891d1	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9128fd5	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9239123	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9275004	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ba875	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9461627	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9706e9f	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc975c84d	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9840c8a	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d14c05	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e98b5a	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9eb3b40	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ffda49	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xca0f62bf	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1c81c8	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3de11f	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4183c5	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca78687a	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7a4fb3	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa68533	cpu_has_xfeatures
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaae77aa	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabbf157	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac8a5c5	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaddbdcb	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae2e98c	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaea3a83	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf04549	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb336020	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3851ab	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb43c122	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb474854	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb47e9b0	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb60f199	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb67743d	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb75e4ce	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb83ebf1	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb96e6aa	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970751	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9b6d52	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba48470	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb25d76	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc847d1	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe24393	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf13fba	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf6be9d	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf7053e	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbfc9efb	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0a9b54	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc167fbd	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1c0a69	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1eb2f5	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc646805	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc89dd22	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc914e3e	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdd1a5c	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce207a3	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea4e34	perf_get_x86_pmu_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xccefd91e	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf684d8	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf74e11	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd03efcc	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd15a2d1	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd1b7396	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd1de8c1	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd29ba42	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd31210c	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4f3f09	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd503661	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd73b66d	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd81a945	switch_fpu_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd85cffe	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd900ba2	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd90e28d	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd915214	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd95524a	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd981771	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda403f3	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb15677	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc114b4	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1a4fa	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf4a768	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf6a63a	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce18887d	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1d6d9d	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xce219a54	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xce263fc3	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xce296edf	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5b33d1	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6a9fe3	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7ebf8a	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8a27e5	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb66bec	sched_clock_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb945f1	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecd63cd	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xced57771	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xceda058a	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee22413	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xceeab0a3	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xceeb33db	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xceeb9d45	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8318	ibft_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef2cb5b	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf1825f6	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf384108	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf684152	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6b095a	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6d8e24	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8838cd	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe7ec99	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd01f554b	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02376f7	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0519de0	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd061739e	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0658fab	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0743121	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0797838	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0868f00	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09a8555	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09d94c2	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a1dbb6	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a863c4	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a9787a	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c9f461	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ca50fe	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d0c5c5	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e611c4	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0e95bbf	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1002627	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd10ec811	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd128f604	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd136044b	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1482f46	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15fd9fb	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16266c2	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1665301	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16bd98e	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17476f0	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17c4acc	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ffe19	e820__mapped_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd18fe280	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xd190c461	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b92beb	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1ccde01	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d3c92d	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1dba2ff	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e96b18	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f6c98b	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbc889	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd209de52	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2284c25	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd231b580	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25c67d4	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2725483	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28d45e6	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xd29d67e8	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bb6462	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c5d1f2	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8a1d6	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d1c166	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2dd8fe3	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2eaf97d	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31d9d7e	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3216989	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32913d9	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32f2127	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3338573	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3417f54	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd342e2a1	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd352c52a	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3629f1e	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38046e9	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38d041a	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd396ebba	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39d1175	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ba9c05	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c78dd3	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d65358	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d7e34b	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f4c3bf	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ffbaac	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4005633	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd409dfd0	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xd412317b	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41945a2	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41ae9b8	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41b74a1	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4246b00	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45e2a15	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46b0ca0	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xd475b56b	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4810c98	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48835e6	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b0fb26	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c5a2ea	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e08784	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e1982e	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e1c53e	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ef2a28	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fee27b	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50589f0	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xd505bf49	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5094b35	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50d74b6	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd516ab61	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd516dc4f	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54966dd	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54e4507	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5548156	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55897c8	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57b24ee	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57eb1d7	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd58d49bb	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5d37e88	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5dd8ce6	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e17af0	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f3bb7b	set_memory_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61c5d01	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61edd34	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61fcb9f	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd626b322	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd630a7e1	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63932d8	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd651657b	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67caded	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd697a39b	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6aad8c0	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6aea902	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b806d2	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c5bcf5	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d2c0f7	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f7fc8d	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7040821	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70ccb4a	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7152039	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7388833	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7402ed0	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74f5089	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd765dec2	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76b703f	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7723de0	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd780b734	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd79e8558	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd79f1efc	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b5dfee	xas_split
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cee0e9	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cfc198	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7dd2e24	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7dd40a6	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e54f96	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ea1f3d	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81ba597	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd822ec6a	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd82e0212	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd850dc71	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd85d567b	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8659913	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xd877b738	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88ffe0a	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd893bf59	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd896789c	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd897c05b	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8983494	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b361c0	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b394cd	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8cde541	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ea362c	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8efa6df	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f62133	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90aca7a	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd949886a	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95b1e80	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96049c0	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96bf2a2	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96d82a2	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd987f25b	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xd995b693	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd998b96b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99e447a	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a1bb92	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a2d8e7	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a5ad46	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c019f0	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ddc3a2	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ee00de	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda124eb0	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f78ee	clear_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2cf5df	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xda542fa4	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xda792634	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xda93c3d9	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaaa542b	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdabb2e31	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad37841	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad7dd0b	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaeb8888	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1cc477	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb28911f	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb4ddb4d	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7a574f	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb977c93	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb9cc0f3	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbca233a	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdf252f	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbff2833	usb_acpi_port_lpm_incapable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0b6f75	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1ef91f	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1efc5b	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2826b9	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc320702	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc395c70	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc527212	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc66f777	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6d0959	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8927b3	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc91646b	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9ac43f	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9b6cb1	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd233	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbfb5e2	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcdb3015	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcdc563b	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcddade6	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce5b0b2	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcec9f2e	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf423bf	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcfa1f85	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0014c8	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd10322e	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd1795da	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd1bc3a2	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd277806	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd67d1cb	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd69c5e6	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd759562	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9f9429	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda3e494	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda6a14c	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xddad35f0	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdddb0f47	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdddcad5f	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdddedca5	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde7fb24	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xddec3212	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xddfeaf3f	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xde03d60c	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xde060e2b	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde30b4e6	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3c437e	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xde51fb39	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xde521351	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6376d9	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde719610	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xde83630f	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea31293	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdead631b	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebb2f59	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec9a742	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xded1574f	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2f8de	perf_msr_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee6552b	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef34d7d	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf074135	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf16cc53	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf175df4	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1882af	dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf27594d	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf317144	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf44d748	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6bb584	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf748f82	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf77b9b8	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf793d7d	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf81924d	uv_bios_mq_watchlist_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9e4977	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9eb7a4	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb3e528	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb859a0	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbc560d	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbd9e7f	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfce4c47	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00c711c	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00ed966	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05c2230	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f53ff	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f5cf8	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0bcd188	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c90d30	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d84c5d	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1287d3d	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe130defe	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1319b7a	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe152f963	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe171b006	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe179a62e	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1985227	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1aa2d62	set_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bfb621	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e49ca7	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e6bd91	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ff3078	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2020462	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20ad2db	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xe215cc68	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe227a5e0	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe239f8bf	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xe25474d1	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2659aa5	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2675d32	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe295c0ff	is_hpet_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b8577c	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3058e43	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3178faa	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe368a34f	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xe37b3302	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ad5862	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b45619	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bae7f3	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c1149e	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ef8539	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f8dcdb	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40235df	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe407cf15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4194978	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe438387f	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe438dedf	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xe452c250	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45c7b1a	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45df013	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe467b1bb	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0xe479fbe9	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47cbadb	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48611ac	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a48d62	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b1bf72	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c14366	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d50dac	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d7549e	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50983b1	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50ec98a	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe516074b	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52aabec	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5303de7	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53600b8	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe556e739	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5572c39	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5617ed7	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58ad29b	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5990dbf	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a15f4c	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d25ada	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e25a85	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ec1916	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f027f7	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fb4399	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe614f839	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe626f8ae	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe63c39ea	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6498233	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ad8ea	unregister_nmi_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe657ae28	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65e30d9	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6902952	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a1e879	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b83f06	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b96fd3	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ba3503	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bc0436	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bc336b	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d75b22	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6daea18	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e9242e	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f91f36	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xe709e960	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe721b794	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72523a3	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xe740b58a	hv_vp_assist_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe744655b	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747a24b	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74d8cf2	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74f5a97	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75dda09	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe772f46c	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7744892	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0xe775924e	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a5b48b	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7aee51a	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b40b85	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7c47096	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7c5cdce	intel_svm_bind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d3c8f2	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e190be	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e439e9	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e843ff	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ee0a6e	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f6fbc6	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f75fb9	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fc9a87	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fe288f	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80497e6	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818f15e	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8389637	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83eba32	itlb_multihit_kvm_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84fbc59	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8540c36	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8581f91	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88f88e2	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a0c8d8	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ab12d8	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8bbb8d8	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c683d9	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c9c0b4	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ca3cf3	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8fa26c0	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xe90287f0	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe905048a	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9118bdc	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe933efbc	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93a9aaa	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9489f33	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97a73eb	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b23174	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9bc49a8	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9bd3820	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c00222	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c288b8	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c297d3	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c596d6	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce931a	kvm_para_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d154f2	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e21d93	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ec0d07	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ec5a79	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ee1a14	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f0c0b2	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f86bbb	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xea016553	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea24bc18	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4a58cd	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xea570bfe	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5720c9	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6ef83d	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7157c4	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xea78ab39	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0xea95bfcb	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9a11dd	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaacc589	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad6da9	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac89f4e	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadc8d9a	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae20d3a	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae79b70	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafb9df8	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb055c6a	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0d5599	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1232e0	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb385760	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb526caf	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb62881f	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb833c22	xen_has_pv_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8a7902	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb94df8d	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb98fe76	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9f328c	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xebaeee0f	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd07c78	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf4f64e	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0xebfd0ef2	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xebfef1bd	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xec119ad1	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1628e6	pv_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec23a8ca	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3e674a	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xec43f885	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xec444df6	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xec49e16d	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xec560b0e	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec788566	acpi_target_system_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec898452	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc292b9	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd62ff8	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecdf7ba4	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xecefad1a	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf1e4e9	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf27912	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2725bc	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2d4e3e	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40c481	kvm_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4a0f50	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xed79e6e7	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7d738c	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xed806727	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed83a6d3	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xed995d52	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda0c2d6	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd0344d	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xeddae5a4	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xeddc0850	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xede214f3	intel_svm_is_pasid_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xede29a56	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xede98ec5	intel_pt_validate_hw_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xee098649	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0dea09	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xee128eae	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xee13e697	set_personality_ia32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1c496d	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xee2cec75	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xee2f6fc3	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3c2596	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xee60f31d	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c633a	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7852da	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7a4a67	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xee810d82	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fcda6	apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea8862e	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb09c11	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xeebf2b12	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec5a6c3	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec689c6	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xeecc4a17	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed8bc88	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee667d3	fpregs_assert_state_consistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeee250f	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeffa29a	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1c9b96	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef35a454	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xef35e914	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef60f7cf	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef79804f	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xef85b279	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xef8e99ee	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xef90f829	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xef96b3ff	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9c5f7b	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa13ac7	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaf812a	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd1efbe	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff1e3da	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff602af	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffc0236	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf001b033	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0144e4b	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02296c3	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf032b3c5	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf043cf08	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04d9bc0	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06500ce	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0692658	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf073ae28	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf087d2b7	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c0dc46	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ca7e1c	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f100d4	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1085caf	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf122fdc0	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf127d94f	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12e0969	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1450230	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1627d41	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16beabb	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf176c01a	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17d0c3a	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf199779f	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19d8bf4	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1dc755f	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e41e05	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e44d4a	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fba690	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2127abc	hv_stimer_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22148a1	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf243b463	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf269d2e9	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf28d7f7b	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf295267d	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29a1fb5	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a69b9e	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a9b4ea	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c87098	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c8896f	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c8c998	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d5bf36	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e15edf	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf314bb05	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf315ccca	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31aa02b	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3267673	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33ee989	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf354226a	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xf358e106	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0xf362e285	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3635761	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xf371d5ad	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3954f31	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf39b386a	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c8386f	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ccc3f2	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xf40dd200	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43ec7d5	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xf44611f4	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf446b105	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4570a19	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45ae5b0	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45ee7b8	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4693a66	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf46e5cfb	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf46f3e9c	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4783326	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e020f	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4828019	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf486a91e	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48d9ae6	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xf491c807	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a20b98	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b539c0	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c25f8b	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4cc14d6	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4db61e1	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4de522a	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2166	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ff7a23	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50b66ca	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50caf21	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51d478d	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54016f4	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5451b6d	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54f552c	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5594a97	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56cb145	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56f51ab	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5919e74	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a51e7f	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b06793	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b63738	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b8840d	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c737fa	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cdfc2a	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d72b20	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5dae83b	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5ea1578	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f6dfa6	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0xf620d052	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6230e49	fpregs_mark_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62a13e1	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62f9e5d	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf632f2d7	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64050dd	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6407321	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6630c07	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6748d7a	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xf681db03	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6906df7	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a32c52	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b4a7c9	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e69581	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f6bb7e	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70845f3	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72e2123	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf736b328	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf739c8b0	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7421d00	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf75819e1	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767ca35	fixed_percpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7741b4c	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7820fde	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7845244	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a48ae5	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ab1a89	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ae749c	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b8f0d9	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cce839	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d3faea	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ec37ef	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ec5ebd	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f33b52	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f4933d	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf819a9a7	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81e840f	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82b9cbc	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf85d88df	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf86739cf	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf877cd52	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf881cecd	load_fixmap_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf888bd5f	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b358b6	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d9cbac	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8de3ef4	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e70372	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fe3986	pat_pfn_immune_to_uc_mtrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf900b4c8	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf912de2a	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91c9b6a	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf951098d	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf954a771	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf962a41b	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96b72b3	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf973c393	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97b816e	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9952b08	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a65524	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c0aad1	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c7dc7c	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cfa34f	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d055e6	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9de629f	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e5816d	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e7a488	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f830f0	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fc304f	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fd3f7b	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa35044a	alternatives_patched
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4d9b95	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa54b498	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa5e6aa7	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6f7900	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa70e13d	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa796714	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7c4e08	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa8a3b7e	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9ad052	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaaef7cc	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab5c89f	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae64608	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae90349	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfafda125	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0decca	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0ff6dd	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13dd2e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2732b3	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2b425b	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb557ade	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb575bc0	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb58b730	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60ca09	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6195ba	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7fd468	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8049ba	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8a9dc0	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd265ba	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd30941	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdd6f5f	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe68e20	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc08d915	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc261828	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc475939	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc63141d	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6cfad2	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7ec874	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8560f1	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca9ccc7	__xenmem_reservation_va_mapping_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc8e271	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd1e962	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd30a9d	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0accbb	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd26f96c	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd3f3f7a	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4184e1	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4f9cdc	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd74d9f6	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd80395d	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd94fdc6	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda1a025	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdaf51c7	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb71c20	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc12981	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc53644	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc70e7f	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd7e5a3	ptdump_walk_pgd_level_debugfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde032bf	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf25325	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0b5f49	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0cf588	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e98c5	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe136b45	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe4a575f	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5c89c3	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe67bb8f	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe727411	get_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe7ef2f5	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8b2108	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeab0d4f	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedb2143	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeec48d8	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff07aa61	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xff08086a	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1c6c58	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1e67b9	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff225165	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xff24c55d	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xff26baa7	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2ba1a1	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xff33fe6e	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xff4e4e6b	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5c1f02	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xff72a08e	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xff7a01fd	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8a2845	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e74e2	arch_haltpoll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb9222e	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc4cedb	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffa7b27	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffefcb4	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffff8fa	inet_hash
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0bacd85b	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1367cc1a	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1ab1adb0	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x40a11acd	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x417f77db	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5cd9eaa0	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6a826fa6	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7f59db4d	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8a419fac	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8d6d6f58	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8ddc5386	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9fdaa04b	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa2e524fb	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa383a3cc	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaffcea0f	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb3570748	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb63069ff	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xbf9db457	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd2b6a482	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe70534e8	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe9d9d72a	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xeb4cf051	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfb64c8a2	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfedafb91	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/generic.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/generic.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/generic.modules
@@ -0,0 +1,5500 @@
+104-quad-8
+3c509
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_dw
+8250_exar
+8250_lpss
+8250_men_mcb
+8250_mid
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+BusLogic
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acer-wireless
+acer-wmi
+acerhdf
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_extlog
+acpi_ipmi
+acpi_pad
+acpi_power_meter
+acpi_tad
+acpi_thermal_rel
+acpiphp_ibm
+acquirewdt
+act8865-regulator
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv7511-v4l2
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+advantechwdt
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aegis128-aesni
+aes_ti
+aesni-intel
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+aha152x_cs
+aha1740
+ahc1ec0
+ahc1ec0-hwmon
+ahc1ec0-wdt
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+airspy
+ak7375
+ak881x
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alienware-wmi
+alim1535_wdt
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+ambassador
+amc6821
+amd
+amd-rng
+amd-xgbe
+amd5536udc_pci
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd_freq_sensitivity
+amd_iommu_v2
+amdgpu
+amilo-rfkill
+amplc_dio200
+amplc_dio200_common
+amplc_dio200_pci
+amplc_pc236
+amplc_pc236_common
+amplc_pc263
+amplc_pci224
+amplc_pci230
+amplc_pci236
+amplc_pci263
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+aoe
+apanel
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+apple-gmux
+apple_bl
+appledisplay
+applesmc
+applespi
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcfb
+arcmsr
+arcnet
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3935
+as5011
+asb100
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asus-laptop
+asus-nb-wmi
+asus-wireless
+asus-wmi
+asus_atk0110
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atlas_btns
+atm
+atmel
+atmel-ecc
+atmel-i2c
+atmel-sha204a
+atmel_cs
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avm_cs
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_charger
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish-x86_64
+blowfish_common
+blowfish_generic
+bluecard_cs
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia-aesni-avx-x86_64
+camellia-aesni-avx2
+camellia-x86_64
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5-avx-x86_64
+cast5_generic
+cast6-avx-x86_64
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+ceph
+cfag12864b
+cfag12864bfb
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-x86_64
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_laptop
+chromeos_pstore
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cio-dac
+cirrus
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+clk-cdce706
+clk-cs2000-cp
+clk-max9485
+clk-palmas
+clk-pwm
+clk-s2mps11
+clk-si5341
+clk-si5351
+clk-si544
+clk-twl6040
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm36651
+cm4000_cs
+cm4040_cs
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobalt
+cobra
+coda
+com20020
+com20020-pci
+com20020_cs
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_pcmcia
+comedi_test
+comedi_usb
+comm
+compal-laptop
+contec_pci_dio
+cops
+cordic
+core
+coretemp
+cortina
+cosm_bus
+cosm_client
+counter
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia2
+cpu5wdt
+cpuid
+cpuidle-haltpoll
+cqhci
+cr_bllcd
+cramfs
+crc-itu-t
+crc32-pclmul
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-pclmul
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_ishtp
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_lpcs
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+crvml
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+ct82c710
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062_wdt
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_cs
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcdbas
+ddbridge
+de2104x
+de4x5
+defxx
+dell-laptop
+dell-rbtn
+dell-smbios
+dell-smm-hwmon
+dell-smo8800
+dell-uart-backlight
+dell-wmi
+dell-wmi-aio
+dell-wmi-descriptor
+dell-wmi-led
+dell_rbu
+denali
+denali_pci
+des3_ede-x86_64
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dps310
+dpt_i2o
+dptf_power
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dtl1_cs
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-edma
+dw-edma-pcie
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-pci
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+e752x_edac
+earth-pt1
+earth-pt3
+ebc-c384_wdt
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_bhf
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edac_mce_amd
+edt-ft5x06
+ee1004
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts_serial
+ehci-fsl
+ehset
+einj
+ektf2127
+elan_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_pcmcia
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esb2rom
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+eurotechwdt
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-axp288
+extcon-fsa9480
+extcon-gpio
+extcon-intel-cht-wc
+extcon-intel-int3496
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71808e_wdt
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fam15h_power
+fan53555
+farsync
+faulty
+fb_ddc
+fb_sys_fops
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fjes
+fl512
+floppy
+fm10k
+fm801-gp
+fm_drv
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fschmd
+fsia6b
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftsteutates
+fujitsu-laptop
+fujitsu-tablet
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-clmulni-intel
+gigaset
+gl518sm
+gl520sm
+gl620a
+glue_helper
+gluebi
+gm12u320
+gma500_gfx
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpd-pocket-fan
+gpio
+gpio-104-dio-48e
+gpio-104-idi-48
+gpio-104-idio-16
+gpio-adp5520
+gpio-adp5588
+gpio-amd-fch
+gpio-amd8111
+gpio-amdpt
+gpio-arizona
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-crystalcove
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-f7188x
+gpio-generic
+gpio-gpio-mm
+gpio-ich
+gpio-it87
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-ml-ioh
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sch
+gpio-sch311x
+gpio-siox
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-vx855
+gpio-wcove
+gpio-winbond
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-ws16c48
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpu-sched
+gr_udc
+grace
+gre
+greybus
+grip
+grip_mp
+gru
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdaps
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+hecubafb
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfi1
+hfs
+hfsplus
+hgafb
+hi311x
+hi6210-i2s
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-hyperv
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hio
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hopper
+horizon
+horus3a
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp-wireless
+hp-wmi
+hp03
+hp100
+hp206c
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hpwdt
+hsi
+hsi_char
+hso
+hsr
+hsu_dma
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei-wmi
+huawei_cdc_ncm
+hv_balloon
+hv_netvsc
+hv_sock
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hyperv-keyboard
+hyperv_fb
+hysdn
+i10nm_edac
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd-mp2-pci
+i2c-amd-mp2-plat
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-cbus-gpio
+i2c-cht-wc
+i2c-cros-ec-tunnel
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-ismt
+i2c-kempld
+i2c-matroxfb
+i2c-mlxcpld
+i2c-multi-instantiate
+i2c-mux
+i2c-mux-gpio
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-reg
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3000_edac
+i3200_edac
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5000_edac
+i5100_edac
+i5400_edac
+i5500_temp
+i5k_amb
+i6300esb
+i7300_edac
+i740fb
+i7core_edac
+i82092
+i82975x_edac
+i915
+iTCO_vendor_support
+iTCO_wdt
+iavf
+ib700wdt
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_qib
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibm_rtl
+ibmaem
+ibmasm
+ibmasr
+ibmpex
+icc-core
+ice
+ichxrom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad-laptop
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ie31200_edac
+ie6xx_wdt
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int3400_thermal
+int3402_thermal
+int3403_thermal
+int3406_thermal
+int340x_thermal_zone
+int51x1
+intel-cstate
+intel-hid
+intel-ish-ipc
+intel-ishtp
+intel-ishtp-hid
+intel-ishtp-loader
+intel-lpss
+intel-lpss-acpi
+intel-lpss-pci
+intel-rng
+intel-rst
+intel-smartconnect
+intel-vbtn
+intel-wmi-thunderbolt
+intel-xhci-usb-role-switch
+intel-xway
+intel_atomisp2_pm
+intel_bxt_pmic_thermal
+intel_bxtwc_tmu
+intel_cht_int33fe
+intel_chtdc_ti_pwrbtn
+intel_int0002_vgpio
+intel_ips
+intel_menlow
+intel_oaktrail
+intel_pch_thermal
+intel_pmc_ipc
+intel_powerclamp
+intel_punit_ipc
+intel_qat
+intel_quark_i2c_gpio
+intel_rapl_common
+intel_rapl_msr
+intel_soc_dts_iosf
+intel_soc_dts_thermal
+intel_soc_pmic_bxtwc
+intel_soc_pmic_chtdc_ti
+intel_telemetry_core
+intel_telemetry_debugfs
+intel_telemetry_pltdrv
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+intelfb
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ioatdma
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipu3-cio2
+ipu3-imgu
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+ipwireless
+iqs5xx
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+isci
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+isst_if_common
+isst_if_mbox_msr
+isst_if_mbox_pci
+isst_if_mmio
+it87
+it8712f_wdt
+it87_wdt
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k10temp
+k8temp
+kafs
+kalmia
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-amd
+kvm-intel
+kvmgt
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-adp5520
+leds-apu
+leds-as3645a
+leds-bd2802
+leds-blinkm
+leds-clevo-mail
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxcpld
+leds-mlxreg
+leds-mt6323
+leds-nic78bx
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-ss4200
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+legousbtower
+lg-laptop
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmc
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp8755
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltpc
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+macb
+macb_pci
+machxo2-spi
+machzwd
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77693-haptic
+max77693-regulator
+max77693_charger
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mce-inject
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-i2c
+mdio-mscc-miim
+mdio-thunder
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mei
+mei-me
+mei-txe
+mei_hdcp
+mei_phy
+mei_wdt
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+meye
+mf6x4
+mgag200
+mi0283qt
+mic_bus
+mic_card
+mic_cosm
+mic_host
+mic_x100_dma
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microread_mei
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx-platform
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+moxa
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi-laptop
+msi-wmi
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+msr
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwave
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxm-wmi
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n411
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+nettel
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-avx2
+nhpoly1305-sse2
+ni903x_wdt
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_common
+ni_labpc_cs
+ni_labpc_isadma
+ni_labpc_pci
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nic7018_wdt
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_intel
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nv_tco
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nvram
+nxp-nci
+nxp-nci_i2c
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of_xilinx_wdt
+ofb
+omfs
+omninet
+on20
+on26
+onenand
+opa_vnic
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+padlock-aes
+padlock-sha
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panasonic-laptop
+pandora_bl
+panel
+panel-raspberrypi-touchscreen
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pc300too
+pc87360
+pc87413_wdt
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcengines-apuv2
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-hyperv
+pci-hyperv-intf
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcmciamtd
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_pcmcia
+peak_usb
+peaq-wmi
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cpcap-usb
+phy-exynos-usb2
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-broxton
+pinctrl-cannonlake
+pinctrl-cedarfork
+pinctrl-denverton
+pinctrl-geminilake
+pinctrl-icelake
+pinctrl-intel
+pinctrl-lewisburg
+pinctrl-madera
+pinctrl-mcp23s08
+pinctrl-sunrisepoint
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn544_mei
+pn_pep
+pnd2_edac
+poly1305-x86_64
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+processor_thermal_device
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp_kvm
+pulse8-cec
+pulsedlight-lidar-lite-v2
+punit_atom_debug
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-cros-ec
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pxa27x_udc
+pxe1610
+pxrc
+qat_c3xxx
+qat_c3xxxvf
+qat_c62x
+qat_c62xvf
+qat_dh895xcc
+qat_dh895xccvf
+qca8k
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quatech_daqp_cs
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rapl
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rdmavt
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-bq32k
+rtc-bq4802
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rc5t583
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wilco-ec
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-laptop
+samsung-q10
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sb_edac
+sbc60xxwdt
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp_target
+sbs
+sbs-battery
+sbs-charger
+sbs-manager
+sbshc
+sc1200wdt
+sc16is7xx
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scif
+scif_bus
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci
+sdhci-acpi
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_f_sdh30
+sdio_uart
+sdricoh_cs
+seco-cec
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent-avx-x86_64
+serpent-avx2
+serpent-sse2-x86_64
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-ssse3
+sha256-ssse3
+sha3_generic
+sha512-ssse3
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sil164
+silead
+sim710
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis-agp
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+skx_edac
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc91c92_cs
+smc_diag
+smiapp
+smiapp-pll
+smipcie
+smm665
+smsc
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-acp3x-pcm-dma
+snd-acp3x-pdm-dma
+snd-acp3x-rn
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-ext-core
+snd-hda-intel
+snd-hdmi-lpe-audio
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel-sst-acpi
+snd-intel-sst-core
+snd-intel-sst-pci
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pci-acp3x
+snd-pcm
+snd-pcm-dmaengine
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-rn-pci-acp3x
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-skl_nau88l25_max98357a
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-acpi-intel-match
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7213
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdac-hda
+snd-soc-hdac-hdmi
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kbl_da7219_max98357a
+snd-soc-kbl_da7219_max98927
+snd-soc-kbl_rt5660
+snd-soc-kbl_rt5663_max98927
+snd-soc-kbl_rt5663_rt5514_max98927
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-nau8825
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rl6347a
+snd-soc-rt286
+snd-soc-rt298
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5651
+snd-soc-rt5660
+snd-soc-rt5663
+snd-soc-rt5670
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rt5682
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-skl_hda_dsp
+snd-soc-skl_nau88l25_ssm4567
+snd-soc-skl_rt286
+snd-soc-sof_rt5682
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sst-acpi
+snd-soc-sst-atom-hifi2-platform
+snd-soc-sst-bdw-rt5677-mach
+snd-soc-sst-broadwell
+snd-soc-sst-bxt-da7219_max98357a
+snd-soc-sst-bxt-rt298
+snd-soc-sst-byt-cht-cx2072x
+snd-soc-sst-byt-cht-da7213
+snd-soc-sst-byt-cht-es8316
+snd-soc-sst-bytcr-rt5640
+snd-soc-sst-bytcr-rt5651
+snd-soc-sst-cht-bsw-max98090_ti
+snd-soc-sst-cht-bsw-nau8824
+snd-soc-sst-cht-bsw-rt5645
+snd-soc-sst-cht-bsw-rt5672
+snd-soc-sst-dsp
+snd-soc-sst-firmware
+snd-soc-sst-glk-rt5682_max98357a
+snd-soc-sst-haswell
+snd-soc-sst-haswell-pcm
+snd-soc-sst-ipc
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-intel-byt
+snd-sof-intel-hda
+snd-sof-intel-hda-common
+snd-sof-intel-ipc
+snd-sof-pci
+snd-sof-xtensa-dsp
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-us122l
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-vxpocket
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+soc_button_array
+softdog
+softing
+softing_cs
+solo6x10
+solos-pci
+sony-btf-mpx
+sony-laptop
+soundcore
+soundwire-bus
+soundwire-cadence
+soundwire-intel
+soundwire-intel-init
+sp2
+sp5100_tco
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-pci
+stmmac-platform
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+stx104
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3-wmi
+surface3_button
+surface3_spi
+surfacepro3_button
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thermal-generic-adc
+thinkpad_acpi
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderbolt
+thunderbolt-net
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads7950
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tlclk
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+topstar-laptop
+torture
+toshiba_acpi
+toshiba_bluetooth
+toshiba_haps
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_nsc
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+tqmx86_wdt
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish-avx-x86_64
+twofish-x86_64
+twofish-x86_64-3way
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+uPD98402
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_hv_generic
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+usnic_verbs
+uss720
+uv_mmtimer
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vboxguest
+vboxsf
+vboxvideo
+vcan
+vcnl4000
+vcnl4035
+veml6070
+ves1820
+ves1x93
+veth
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-camera
+via-cputemp
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+via686a
+via_wdt
+viafb
+vicodec
+video
+video-i2c
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+visorbus
+visorhba
+visorinput
+visornic
+vitesse
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmd
+vme_ca91cx42
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmw_balloon
+vmw_pvrdma
+vmw_pvscsi
+vmw_vmci
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmw_vsock_vmci_transport
+vmwgfx
+vmxnet3
+vop
+vop_bus
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83877f_wdt
+w83977f_wdt
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wilco-charger
+wilco_ec
+wilco_ec_debugfs
+wilco_ec_events
+wilco_ec_telem
+wimax
+winbond-840
+winbond-cir
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wmi
+wmi-bmof
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x38_edac
+x86_pkg_temp_thermal
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-pciback
+xen-pcifront
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-hwmon
+xhci-plat-hcd
+xiaomi-wmi
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_pcie
+xirc2ps_cs
+xircom_cb
+xlnx_vcu
+xor
+xp
+xpad
+xpc
+xpnet
+xr_usb_serial_common
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zatm
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/generic.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/generic.retpoline
@@ -0,0 +1 @@
+# retpoline v1.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/lowlatency
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/lowlatency
@@ -0,0 +1,23887 @@
+EXPORT_SYMBOL	 arch/x86/kvm/kvm 0x138e7c5b	kvm_cpu_has_pending_timer
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x1aabad2e	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x2930acff	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x5288fb41	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x52b9ca09	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x74d0ee21	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x8508750c	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x8fd45541	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xa50b1771	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0xe8d81fd5	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sm3_generic 0x49517dbe	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x6026ad29	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/acpi/video 0x0cc6064a	acpi_video_get_edid
+EXPORT_SYMBOL	 drivers/acpi/video 0x6de7f7ff	acpi_video_get_backlight_type
+EXPORT_SYMBOL	 drivers/acpi/video 0x7a45377b	acpi_video_unregister
+EXPORT_SYMBOL	 drivers/acpi/video 0x7cc484a5	acpi_video_handles_brightness_key_presses
+EXPORT_SYMBOL	 drivers/acpi/video 0x8826c13b	acpi_video_register
+EXPORT_SYMBOL	 drivers/acpi/video 0xb26b2d16	acpi_video_get_levels
+EXPORT_SYMBOL	 drivers/acpi/video 0xe92ca535	acpi_video_set_dmi_backlight_type
+EXPORT_SYMBOL	 drivers/atm/suni 0xe70fc2b1	suni_init
+EXPORT_SYMBOL	 drivers/atm/uPD98402 0xd5eb4a0a	uPD98402_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x11c00baa	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x50695e8e	bcma_core_irq
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x23918c84	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x3313e65f	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5a0ca219	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x76e1c4e9	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x8a75ab9f	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa3c8c935	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xc7b4fe7a	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xcd3041da	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xd9db4458	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xdca977ca	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf2184302	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xf535837d	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x9ce9148e	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x3e52fc3a	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x6867e4ef	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x7a26e870	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xb311313b	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf71ab112	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/nvram 0x3ef38dc9	arch_nvram_ops
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x36439f07	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x9d62323a	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xd3478bca	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xeb6c9008	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x23090fe3	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x40849853	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x9db4f436	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x0894a7af	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x1d237bb8	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x2e8f582a	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x01906bd9	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x08c23b99	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x1f81410e	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2dcde373	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x38790956	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3adc92ad	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3d20c9f7	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x574f6435	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x5c994428	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x71d67026	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x90a889fa	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x92c28664	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x97cc003a	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9cab8c38	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa3d0b98b	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa873887b	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xae42cb2e	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaeda1849	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb0717cdf	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcbef5573	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd07e299a	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd9736018	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xdc667b40	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe88aa078	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xeadea28a	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf506d1e8	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x004f7115	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0090cf6d	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02cc4a11	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x039657d6	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x047f8f6d	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x055f2853	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b5b9a	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x090ebcca	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09291591	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a426277	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b418732	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b662815	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b9fb7f5	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ca69292	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ca8f3f5	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d7454d6	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f21cc48	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fa595ed	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10597403	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10f07c49	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1165401a	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12a8eb4d	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12ba7db9	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1440e4ce	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16b79870	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16f4d292	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1856ce97	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18816cfa	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x189a5a6c	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x193933e7	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a022359	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a1064d6	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ac2e346	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b2c4d23	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d8d88cf	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f085362	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20a3fbbf	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x213dd79c	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x213ffcec	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23b5b2a3	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24e6ccd2	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25002b1f	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25bc9835	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2698fb8a	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27a780e0	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28b2ec9c	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28d23bb6	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29013a44	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x292cf0eb	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29339114	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a723fd9	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2af70d36	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2cca9503	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e5f1c34	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ed736b8	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ed9c6a5	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3104d44a	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3113223c	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x313bfeb9	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3164900e	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x317d948e	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3207d596	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3272b2b5	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x329ba11b	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32dc5092	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x361d6b37	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x364c7752	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3698e7c4	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3726f014	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x375f78cd	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x383ef960	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x388a50a8	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39efe6be	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b16d6d2	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b7de6b9	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c5d5941	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c85f9e9	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3dd38fc1	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e117065	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e3f6cb4	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e7395bc	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e95c418	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x414a1243	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4458c98a	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45442d18	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45bc9640	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4655d4c2	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47a6ba4e	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47c498ed	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x489d2e96	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48b8fc14	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x491385b0	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49b20788	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b5388b1	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c883643	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d4fc109	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e276795	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ec1054b	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f5ae9d0	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x547fcf43	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5534c70d	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56c70d37	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5743c596	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b641b4	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5811b539	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58179fd3	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5862c819	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59af79df	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a0fce3f	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a9cf7be	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b6dda6c	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d3f6e96	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5db48507	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e3a1614	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e64441b	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ebd02e9	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f149dc6	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fcb1101	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61702d96	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6170e496	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61c17acd	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62fea3ce	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x639927e7	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64831cb9	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64f9c2c6	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66414847	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x668c1e37	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66ce9787	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x67c1cf49	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c0a9b8a	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c2c7609	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c91bc24	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6da373e0	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dc8cc4f	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dee3250	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fba1a31	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70af3458	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x71e53cdb	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72340051	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x723a2a86	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x724d8767	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72c3ed5d	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72cc9c79	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72e4ce93	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7456ec7c	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7583f11e	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75d5818b	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75dd010c	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x764adec1	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x768697c8	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76b9d1c6	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76ff0d49	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7712bab4	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x771addf5	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7873e1d6	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79f68724	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79fc8dd5	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a308c30	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b3f81a9	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7bc2ae5c	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c1a0cb1	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7cb908aa	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7cefd94e	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7cf2f580	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e87b9c7	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ee62d3f	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f09e012	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x803a440f	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80cfc06d	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81d6eb79	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8339ea3e	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83e869a7	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84714662	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85e303c5	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x860c99ca	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x861437df	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x86524c6e	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x88b9af0f	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89b73f13	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a849e41	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b16406f	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b220208	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b243d86	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b304c06	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8beb8ec6	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e69d68d	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ecab8e4	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ed6d347	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f0b710b	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f68386f	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ffb3c86	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90526bb4	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9397d863	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dd3f84	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98bb2b2f	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98ce328b	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99744e4b	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99a31f8e	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b67c5e3	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b873a5f	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bc664c5	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bcf8820	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bf47537	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c6b76b2	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8f6217	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ccde776	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9cf6faef	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa056b647	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa12dcdb0	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa198af00	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3611cc6	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa404b192	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa489d09b	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4be6d56	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa507d833	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa53b35af	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa656c6b3	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6bcb7dc	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa76d105d	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8651ce4	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa86a1783	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa999c52d	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac572146	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad3e664f	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae23bc10	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaee698f0	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafd0a39e	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb023b63a	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0e559d5	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb179d08b	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb30bbb8c	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3171925	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3b8d3ca	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4df3fa8	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb648ef67	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb68370e5	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb70ab414	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7819f7c	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb81ae09f	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb99f799f	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbbfe5d8b	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc0f9267	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc33f083	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc475ba0	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcb53708	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdd64455	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdf1052f	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe2a4ee4	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbeaea4b8	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbeefc9ae	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf834f42	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfdea327	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc197f7fd	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1ab822b	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc201f4dd	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc230f7fe	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2d45f1a	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2f4c0b3	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc384699a	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3e31e6c	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3eeb7b3	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc40179ec	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5158ba9	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc52555f3	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc56056b7	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc57bc199	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5b257b0	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7ea40f5	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc81d7580	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc820ee57	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc8a38e5b	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc97336be	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc973a78e	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca492035	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcad8bd63	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaf44ca4	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcbaa2da4	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcca1c60d	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcca9134d	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcdc48f81	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf8bbf6e	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0839b4d	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0adcd74	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1b41e26	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1d8d3ba	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd2eb6989	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3a84363	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3aa9775	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3f9d998	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd445943a	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4594e7a	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4910171	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4d13ec4	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4f8c959	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd526167c	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd615ccda	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6ee033f	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd838f59d	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd83af12d	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8c9a1d2	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbab87d8	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc5e9f91	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd561838	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdddc3c84	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xddf9d96b	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde64af1f	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdec441ae	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe0786780	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe17c768d	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3323098	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe36d1f74	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5384c8f	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe595e1f0	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe59d40b8	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe6d23246	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7199b8d	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7acbbfe	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe820fa01	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8d78d64	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe91dcf33	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe93f0d90	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9fc00f1	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea2b905f	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb3a329b	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb62568d	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebb65177	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebbe1fcd	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec30ce4e	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec6c3f09	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed751a2c	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedb1e7bc	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf112e534	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1341bc1	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf162852c	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf31ce93b	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf34ebfc0	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3ec96bd	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf536fa70	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5b8309e	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5bc1705	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6323763	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf69e2b2c	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf73e74f9	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7ae8c51	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf90aadc9	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf98b2403	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa1cb802	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa7394bf	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfccbe51b	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd798f6f	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd8c6b9d	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd910d4f	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd95ec3d	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffb8b390	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffed17d4	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0150cb1e	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02f4a280	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x030243ff	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x03b3ccdd	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x045c5003	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x056b0446	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06844047	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0906e19a	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0aacfd48	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0bc8745f	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0be32c4d	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0be99351	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0d29acea	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0d468dd5	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e7d1d79	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0ecf1fbf	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1352bafe	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161d54b2	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x166a927a	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16c440d1	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x180e6df7	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1a97f2ad	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1aa373d1	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c280773	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c2c8092	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ce86c52	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1dc2304b	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1e3ed051	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ea572ec	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x209f6cb3	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21f697b6	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x225c7d71	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2261d836	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x257781b7	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2692965f	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28a50ac0	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28aa6d42	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2a0f5678	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b0ed766	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2cb34266	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2df72b5e	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f0d20b6	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f66bb4d	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ff609e5	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3026e9c0	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x311536c5	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31394695	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x320a96fb	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x334762be	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x355ee514	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x364aa85d	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x37eca132	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x394855ee	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3c726ad8	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ce90085	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e3ce19e	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e954342	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x407a247a	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x40efdc7b	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48f7294a	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49a2537a	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49c67fcf	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c4560e2	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e033f3c	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e6a3a89	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4fcc1035	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50455a15	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x52cba260	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53691aab	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x542c7d1f	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x554d0426	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x55dfb39e	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5763f5f3	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x59906efd	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a29f517	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ce1905e	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e20c5e6	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5fa009bd	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x601131e5	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61325539	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61b93763	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x62351cd0	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x632d2b79	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x646689a3	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x66e5235c	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6dce413a	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x708868ca	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70a69929	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x72af2a2b	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74bd9823	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75576117	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x76333fb8	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x766ccbed	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7772d223	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x781d6d1f	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b44bd57	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ba44559	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7cbddec1	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d2d1a32	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d75547c	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f766970	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x80440473	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x80803b23	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x80d00c57	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8145d7f6	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x83146cab	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x868f22a5	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x878078f6	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8de79c3e	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f1c8ade	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f3b5c0f	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f6514c7	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90e44df2	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91a2fa30	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92ca5586	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x944715af	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x95068ec7	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9607bd3f	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96314cce	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96523efd	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96f93fad	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x974cd5e0	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9789a6e8	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9c50d18d	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9eefbaaa	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa22df3e6	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4605f98	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4b03121	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5ce0cfe	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa5d2b220	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6889718	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa68b2245	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa8a3a768	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaed6e87b	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb15c0b34	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb17f326e	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb31edbc4	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb4a2b75c	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5a3f00c	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6ebe921	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7a0cc15	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb7d6ed0d	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb8ae63a3	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb96e16fe	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd64653b	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbed65bbc	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3c0811c	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc510004a	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc58f4f8b	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7cbbbe0	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7f97658	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc8cb9034	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca95b462	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcafc090b	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd18d7df7	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd229205b	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd28f7672	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd3f50695	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd45c45ab	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd61101ac	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd7725248	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd84fad19	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9364af1	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd96e66b0	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9ecfdb7	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdc356622	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdcccd90f	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xddac1602	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe45dd756	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5cad9a8	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe68a3537	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe793a2af	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe80a7853	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe830d5b8	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea821ad7	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeb6d311a	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee602266	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeff9a890	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf181d87e	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf1c457ac	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2cf0548	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2e0b122	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2ff6f01	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf319589d	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf59afe7b	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5c270c9	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7431adb	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8618362	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8ce5852	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc9395c7	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfed2372a	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfee456e7	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfef982c7	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffac267b	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffcaac49	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x049c62a3	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3096448a	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x34d1aea8	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x3770557e	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x37f5e15a	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4416312f	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4a276485	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5165799f	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x51d55ebc	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5f19aef2	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6ec4e80e	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x73d3213b	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x981b07c4	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa37c331a	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb70f9ab5	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb7735c52	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xdd2e9a34	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfb9f705f	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0ecb95c5	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x15eb185a	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1af05ca2	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x332e976c	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3a976426	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x421eaf5c	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x517f5872	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x651a53c5	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x685b327a	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x79639d04	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9c3680d0	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9d46de54	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xaff609cf	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb5eb03db	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbb51642a	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc51a093f	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xccd3d81c	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xebf54494	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xed43eef3	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf1937b81	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x11dcebf4	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1ab5f06a	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x20798e5b	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x32ceb2d8	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4085ddff	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x44ec04da	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5173e5de	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x56f4d062	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x6b4086e2	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x753e5ca7	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x76f7c226	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x7718a32e	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9a922608	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb32e3e2b	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xba9a9c35	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc9f6e6b4	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xdfdde70d	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf47dcbaa	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfcc9216d	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x07e7f2a8	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c3e6cf4	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c915de6	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0de2ea4e	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x14b6712a	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x16459448	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c12ce07	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c1b0585	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x27c2acc7	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2b6a5e18	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2ce81e41	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f5c4ccc	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x30531b31	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x33970d5d	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x33a63c2e	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x340b5bf2	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x373aa0a2	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4232c143	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x431614f4	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4736be88	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4a9eb923	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x57aa5c87	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x59fa5faa	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x64872f1a	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x67a05dda	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6d72e438	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x790c81b1	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7b151b3d	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7eaa7477	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8221fcd6	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8361f658	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x89213843	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x899fd309	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8dee7928	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8fdc1480	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x932c38c5	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x959def6d	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96c6c11a	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x979048e4	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x98a8397c	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9e4b585a	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa1606171	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa52284e3	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaf5c4056	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaf7078fc	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xafafc7db	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb6bb2b57	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbb81ab8e	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbd7db03d	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc1b3f852	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd7b1eff5	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd9492a9b	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xddf4085b	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdf855c1e	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe2a1b034	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe553f546	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe900ba78	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xea1ed44e	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xec079289	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xedfa1f5b	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xee1ddb9c	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf505cf67	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf8febced	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfb0c3903	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfba83181	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfd77a6c4	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/vmwgfx/vmwgfx 0x446c961c	ttm_base_object_noref_lookup
+EXPORT_SYMBOL	 drivers/hid/hid 0xd128053a	hid_bus_type
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x02bcfb1b	ishtp_trace_callback
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x0ffe37bd	ishtp_set_rx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x17fb6e12	ishtp_cl_disconnect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x204b8f25	ishtp_cl_driver_unregister
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x210d9cf8	ishtp_cl_connect
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x240e17d4	ishtp_fw_cl_by_uuid
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x2e297a60	ishtp_cl_flush_queues
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x433a334a	ishtp_cl_get_tx_free_rings
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4b08ed29	ishtp_cl_send
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4dfb580e	ishtp_cl_link
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x4f5fed2a	ishtp_set_connection_state
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x549d7022	ishtp_put_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x564233cb	ishtp_dev_to_cl_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x596103d5	ish_hw_reset
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501	ishtp_get_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x62a0e9df	ishtp_get_pci_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x68e0a2dc	ishtp_cl_driver_register
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x73d5fa9e	ishtp_device_init
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7a7bbd8b	ishtp_set_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x7a874339	ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9161e207	ishtp_register_event_cb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x948e5791	ishtp_send_resume
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9affc0ff	ishtp_set_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0x9e208564	ishtp_cl_unlink
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xa1e55454	ishtp_reset_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xa495979d	ishtp_cl_free
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xa9e7fb4f	ishtp_cl_allocate
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xaa4c1742	ishtp_get_ishtp_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xad5d09e5	ishtp_cl_get_tx_free_buffer_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb374d173	ishtp_send_suspend
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xb929ee9a	ishtp_cl_set_fw_client_id
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xc290db9f	ishtp_get_drvdata
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xcf8654c8	ishtp_get_device
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xcff04a34	ishtp_set_tx_ring_size
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd4228ed5	ishtp_start
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd434559b	ishtp_recv
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xd442e5b4	ishtp_bus_remove_all_clients
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe16130f9	ishtp_reset_compl_handler
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe39865a7	ishtp_fw_cl_get_client
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe590b2a3	ishtp_cl_rx_get_rb
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe6db3392	ishtp_cl_tx_empty
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xe9973a29	ishtp_get_client_data
+EXPORT_SYMBOL	 drivers/hid/intel-ish-hid/intel-ishtp 0xf31b0186	ishtp_cl_io_rb_recycle
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x46a20b26	vmbus_recvpacket
+EXPORT_SYMBOL	 drivers/hv/hv_vmbus 0x520b5d3c	vmbus_sendpacket
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xbce3ea22	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x021ea261	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x14edf619	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xc9c11307	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x07c5591e	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xe596d7f4	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0xb31b26e9	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x093ae535	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x65057a48	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xb62d37c7	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x1b02a3eb	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x2bb5c98e	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x31206d18	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5496bf79	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x768d959f	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7d22785a	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9e229a3a	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa01f3836	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xab7e7cb9	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xaf9f06c6	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb260564b	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbb8766b8	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xccc802b0	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe5a0f49e	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xedf4b6c7	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf5348869	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x0bdf67f8	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x0e07d4de	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x8586da60	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x89f220b7	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xdbc1d6d9	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x425bcae2	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x8c1ec652	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xa6abdd65	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xd20ce5f4	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x0c6f4371	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1a09775e	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x41eb22d7	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x42be873b	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x50df5049	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9849aae7	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x98790264	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa30574e8	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb42f4104	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe40dcbd5	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe7c763ac	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x71202216	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x86338f4d	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc88299bc	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xcd0983a4	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x3cdaef6a	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x6dd453ed	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x8149e515	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x9f12c638	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb8abadae	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xd36d3011	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xd7086677	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xda95cae8	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xfdf58889	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x40885186	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xb1f13d2b	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xc7e40117	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xe35ef095	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xf85b4f8c	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x3700454e	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xa4bbfa89	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xb56d8d34	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2839bc51	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3308d733	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3b86725c	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x45877572	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x474700ad	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x4d1a002c	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x4ddd4536	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x51eccda3	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x52df2ac6	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5547540c	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x674896dd	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x71b902a5	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x761dcad6	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x87f7b4ea	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8886c489	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xadd01474	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbe711582	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x111d06be	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x303624da	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0xb4734a85	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x62d8abc0	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xc4653c39	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xf3654fa3	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x19896ea6	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x1e0cd3d2	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x985a2840	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xd7ee6e33	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xfa554510	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x0b497d0c	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x31b117e7	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x8d74bccb	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x69d5eba3	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x8d25a5d6	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x060781e4	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x27160cbd	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2b505833	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x34187c82	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3f91e4b3	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x49baa3a2	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x58cd3b53	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5ed49666	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x786d5c7e	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x83887d19	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9c2902ac	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa7cd1dbf	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xac6ce528	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xafd860bc	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb7e879fc	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbdc7291b	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc35026fb	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc59dfc45	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd362b527	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd8447b52	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdb23dff2	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf330089	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe0bb13a7	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x49ee8a13	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x399646d1	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x481e7b97	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x9f150d20	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xda71920c	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x0323e0c9	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x4caf38c4	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x52c537a9	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x9e943bb0	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x138b1727	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x20e384b2	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x04b34244	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x5f1891c2	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x3d3af4d2	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x8b5d1952	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xb3fed5f5	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xcf854eeb	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x2a5261f1	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x3f8d3ac4	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x71ceddbd	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xfbd05ed6	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x83b62651	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x887da507	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xec76402f	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x0a73a140	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x0d6bfcbc	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xa84d23a4	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xe0f57c22	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xe7581ddf	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x63264771	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xa413f626	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x0863fe90	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x498c6924	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x7aa2e8c2	st_press_common_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x059cad1f	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x21414b8f	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x34924fbc	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x42ca3f71	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5fc04d51	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x61b96fde	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x689c6f94	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x748a436c	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x80020449	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8184be8a	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8783b5d5	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa61afcf9	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xad441b62	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc2516d28	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xcbcc7c4f	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd0087e37	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd8f813af	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xecb1945d	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x00e56383	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x034dfdc0	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0359da65	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x051b5dfe	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x07df6ce7	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x088be9cd	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0930ece3	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a4135ef	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0aa17a16	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e0f28a9	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f49f101	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f904dfb	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x131fd84b	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x141a6ae4	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x166d5c7f	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1bb37064	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d511d3d	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x20daeebb	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21088eda	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21bdf8ac	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x225cb3f4	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24365473	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26ed69af	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x27d65e3f	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2815eeed	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2871568c	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x292a38b5	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a7d34f4	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ab43903	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c47f3a0	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c603456	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30c1b42f	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3269197c	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x348bbb1e	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x35537794	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3565d1d2	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36449b3c	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x378a6471	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3893a9b9	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e4cfca5	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3eb690ab	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc719c9	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x41773f94	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x425faea9	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x44c4d748	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46519e76	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4735f696	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47e280e1	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x499ce69f	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49f6756d	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4b71bfb9	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4c313ff6	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4da85d24	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4db2bf1f	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4eec40a7	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f5770de	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54908727	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5511a8a6	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5720e622	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x57b4bcab	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5838604d	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a99b5d2	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c632e2c	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e23fb79	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60447fa0	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613c7969	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6241f4d8	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x633a61be	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x644f4424	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x655303d5	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65e99623	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6606525c	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x69ea9cb2	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a196638	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a40df44	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6af90485	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b8f9649	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b9ffc20	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6d7faff1	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f4a9907	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x70bcddec	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71784fd3	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x73589caa	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7530a03d	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75fd7938	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x763c8b94	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x767827f4	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x770b042e	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x793a01bd	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b05a971	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bada4dd	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7be102f8	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c64255a	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c74a02a	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7cb3c8c3	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e82041e	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7eb7aae1	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x805f576b	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81bc33e3	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x859aa5d9	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86a2c0d7	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86c34cd1	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86dfe0ad	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88ee4933	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a6d46f6	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8aded0a1	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b5cba43	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90a9c99f	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x998a2950	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99f340a4	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a0b6115	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a263ef8	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9bb3f455	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9bfc5d2b	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ca3cdc5	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e214803	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f510e42	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa085df98	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa382bed9	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa616f664	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7278154	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7cd9d09	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaddd9d63	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf57748e	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb00b467f	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb18aae14	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2521b83	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2e24080	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb38604b1	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb38c4a86	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5e10d00	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb82e3de2	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbafe7160	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc7a6bbf	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbfe551bc	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc0d20b3c	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc3f104d4	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc71507ef	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc732fec6	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7aa6d33	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8c2060e	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb771e2c	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcbcd2266	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xccf12a2f	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xce35eeaf	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd084cde9	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0a97efb	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0c7d4df	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0d2f8de	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd0e5f5a8	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd4689f76	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd4779212	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd76dfb2a	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7a4052c	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdb59affd	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc24d669	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde6dee2c	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde7e7f9f	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdf17e606	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdfc79d5f	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe14da4e0	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1554763	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe158be5a	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1d2e600	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe3116353	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5055129	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeaa8c731	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xebd10816	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xec857859	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xede53901	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee46fed7	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee8edff5	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef061e52	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef6ff054	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf13ea1f4	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf2476728	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3cd7037	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf72fedbf	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf783f394	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb84865b	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfd8f0d6a	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff0115e7	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffc54a0c	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x09bbb6b4	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1dbea463	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x381439fa	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3bfd9c52	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3e7de08d	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4408de16	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x49385138	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4b0d18a7	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x554912e1	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5c7e28a1	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5df39186	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x637db268	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x68cdbbd1	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7051ff11	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x70d28d42	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x86f370e7	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x876cb9d1	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8cac91f6	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8f6e5499	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x90238eee	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x91d72709	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9f2b03ce	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa04b0458	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb29e7077	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbe006f99	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc819cef7	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xda127645	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe01fdc60	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xef161d5f	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfa7ffa32	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x512a76a8	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x5c67ec51	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x74674a36	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x8010502b	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb8ff0fda	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xc7211d7f	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xdb35481c	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe1b9a958	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0236ce19	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0455dc22	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0ee723c6	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2259d5c5	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x26b77888	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x43698944	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x446326a5	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4fe1530e	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x552b9e52	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x583a4ec8	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5cdac4de	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x669dde8e	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6cdff336	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x70bf980c	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x75461caa	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x773c1655	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7c3d294f	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x80910d57	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x842b7002	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x986d3207	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x98e6d191	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb711263f	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbf379eb6	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd36070fa	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd8950288	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdf79dff0	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe784cd67	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe91c2f26	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfacf4c4c	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfcce8635	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x062094f2	rvt_comm_est
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0cd163b9	rvt_init_port
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842	ib_rvt_state_ops
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x13e42c17	rvt_fast_reg_mr
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x15d8d08c	rvt_add_rnr_timer
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x286e21e7	rvt_get_rwqe
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x4824297c	rvt_rc_rnr_retry
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x52359899	rvt_stop_rc_timers
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5acb1638	rvt_del_timers_sync
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x5defe639	rvt_qp_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x6908a433	rvt_restart_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x6ce6a82e	rvt_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7a738f36	rvt_check_ah
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x7b3f71c9	rvt_invalidate_rkey
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8310a818	rvt_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x84263b4c	rvt_error_qp
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x8b4fd2f0	rvt_lkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x94b833fa	rvt_qp_iter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0x95f08ec7	rvt_rc_error
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xac37b776	rvt_add_retry_timer_ext
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xb3151441	rvt_copy_sge
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xbe91fa3a	rvt_compute_aeth
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc05de464	rvt_cq_enter
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc0e18c77	rvt_send_complete
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xc603f6c2	rvt_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xccf60de6	rvt_mcast_find
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xcd88457e	rvt_register_device
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xdcc28b1c	rvt_qp_iter_init
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xdded33bb	rvt_get_credit
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43	rvt_rnr_tbl_to_usec
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xf6413ea3	rvt_rkey_ok
+EXPORT_SYMBOL	 drivers/infiniband/sw/rdmavt/rdmavt 0xff7d4800	rvt_ruc_loopback
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2d10a7ab	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x33462f4a	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x34c45224	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x4d430d1f	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x4d519ab3	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x7b7ee391	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xaf263207	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xaf901cc5	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xd200ddb8	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x17c461f0	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x26083b1f	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x5167076d	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x6167691f	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x93e0de68	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x175dadbf	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x801289bd	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xe815f999	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x8a4d3a24	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x39f54d08	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x70813e5b	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x85f32301	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xd99d643f	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x3e1f8873	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x0fc94d44	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x2bbabde5	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x4a275dca	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x59167286	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x698626f9	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xb9d4d653	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xbd0f9d44	ad7879_probe
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x4701899d	amd_iommu_set_invalid_ppr_cb
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0x9c6ef36d	amd_iommu_free_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xcc13b79e	amd_iommu_bind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xd0a20934	amd_iommu_init_device
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xdef2f2a6	amd_iommu_unbind_pasid
+EXPORT_SYMBOL	 drivers/iommu/amd_iommu_v2 0xf1c9a6b6	amd_iommu_set_invalidate_ctx_cb
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2499511d	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2db4fa9a	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x39af2b02	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x950f215c	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb82a66d4	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbc76bfed	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc525b99e	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xdbdae205	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe2a746c8	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xebd450e9	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5	isdnhdlc_decode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5	isdnhdlc_out_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58	isdnhdlc_rcv_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223	isdnhdlc_encode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x5d420f84	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xaab54c35	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xde723284	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xf3be9bc0	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x5aba761b	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xc9a7a098	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0b5e2a90	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0bdbe0d2	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x167aa667	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x199dba00	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2a96509d	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x322fa419	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3e2a661c	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x42cd3f91	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5c4f655f	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6e241ae7	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x7420fda8	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x7f9c51c8	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8b791126	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xaa1c6a37	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb2d8ed7f	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc1831856	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc78a6ec9	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xcdbaf28b	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd8ebceda	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe55a9e58	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf6076aac	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf65d5922	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf95d654a	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x78cdf27f	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x92340005	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x2134794a	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x22951d2e	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0xbf72b0e1	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xfdc53956	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2615eb95	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x2a8e7eff	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x923cf10e	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x96f33e44	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xb848655c	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xc669c7ed	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/raid456 0x0586d727	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0xc4058364	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x097ce2a1	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x5735d1ef	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x5cfa02bc	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x5f4e245d	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6eb8267d	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x70e71336	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x7d3b608a	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x965a28d2	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa05f061f	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xb05a3799	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xcf21b6b4	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd4434921	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xffcf30db	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x0e38913a	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x226cdd88	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x715cc38e	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xd8835d09	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x4872aee1	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x61269fad	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xbe6ad94b	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xf6c8debc	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x0087ed5c	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xa70ff8a1	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xab0fa64b	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xb33f101c	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xc3e6c470	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xf9078864	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc997ff15	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x087c2cf0	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1488925b	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x16856314	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1c4e6002	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x32c9b6ed	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3a92d727	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3bb367bb	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4d4e0171	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5629af87	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5c30369a	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x794e430b	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x796fc6f4	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b3e3448	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7defef8c	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8621ec68	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8e9fa67f	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x96f87251	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9ef06951	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xaaffee5b	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xccf837df	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd5117bf0	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe393ae6c	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe63f784f	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfa39f7ec	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x051fdf9f	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x28821e20	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x642384e8	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x6d78bfcc	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x824cb57d	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa642a3a0	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa9badf40	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc30fbe6d	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xc66b5d3a	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xec920563	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xc3368428	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x56395604	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x5b048bd7	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xa52bcafa	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xe5897ace	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x03c8633c	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x0b8f4d18	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1e1b275a	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x328c2982	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x3912da50	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x6376bed9	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x7b2779d3	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x95b9fc47	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc7545666	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd845c5b5	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xdab40407	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xdc4298f5	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe7a9d6a2	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x54f6338d	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x5df3142f	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xa053416e	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xeac8eba5	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xfe018701	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x240435b7	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x2bfe9549	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xe037c179	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x03dcf7eb	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x0cf35962	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x13c800b0	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x2200e87e	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x301719b8	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x32ff605d	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x37027fe6	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x39710e5f	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x46b61375	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x4add20aa	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x842a73b7	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xdc545fe2	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x0e1b55ef	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x1c19ec6c	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x3acec49b	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x5b34e738	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x66ffa56e	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x04cb9b95	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x458e4f03	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xee406b6b	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0x7f91d427	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x4876748f	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0xc96e8a43	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x89cc7355	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0xa35e03bd	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x6d8237cb	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xff2bf9a3	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3da00fa5	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x45c5c4df	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x51633409	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x5d53f1e5	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x71bf139a	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb97a6482	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd0af3176	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x43cb6d29	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xbb33b665	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xc876f810	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd75368d6	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x158bcdf3	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x16acac7b	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x20349435	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x1f4ad39b	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x567f4177	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x94d07eae	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x970b0948	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xa29b2e76	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xa7ec8650	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xceea01aa	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd3e24716	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x0c2ed61d	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2a2a2927	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x57d167ce	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x98b4f7c5	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xe1452ebb	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xdb3faf38	altera_ci_release
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xe66b9812	altera_ci_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x000144cf	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x0df8be14	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x3644ce23	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x556693fd	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x76951965	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x8347d133	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x96a10b2f	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x16e93fca	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x2b37ef30	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x40333bb6	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x6903e7f9	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x9daf171b	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xf1e16b09	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x2f235955	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x61bbb766	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x82a8a70e	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x900ae92c	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xcfaa5120	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xe94b0930	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xf2a662dd	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x167b27fa	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x19c8aa60	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x211e21df	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x2b28f54c	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3cbf06e8	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x4ff9a22c	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x7bfd00a3	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x844f94b6	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8a8d40e0	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9c58a5ce	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa2410525	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa2a23706	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd63e5607	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xdc51787a	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe0741d12	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe1111678	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf467149a	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf7da43a0	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xfb682020	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xfcd29845	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x002970c0	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0823fa23	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x39fe9a94	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x513d36a2	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x571502e1	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5f5e2093	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x648eacf8	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x6cd2f941	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x78afe871	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x7b94a432	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x7e7b110b	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x99743ddd	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xaac11502	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xae8cd197	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd277e512	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xebb8e4b9	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfbf5ef58	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x0ba50a8b	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x2fde5d3e	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x587b8f4b	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x618feddd	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xad107ade	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc004122e	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xd76e22ad	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xee1297e9	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xf4523018	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xf8507057	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xff6b11aa	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x78a9d612	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x318a9a3a	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x3d850c11	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4d051f45	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x85ba23f3	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa361e574	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xcd28130d	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xdc749f65	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xacaef42b	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xe49694ae	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x1dd7fc55	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xf633cbdd	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x32e03781	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x343c40dc	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xc84f8c77	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x150c6343	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x172abcda	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6d89457d	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7e773ad9	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9fad0eb9	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbd333e7d	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcae8758f	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe5c75bfa	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xec60891d	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x6a0f11af	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x7c7285fe	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x80f52e00	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x83cad587	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xa0ef5e95	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xb2fdfb58	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xe21552f3	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xe40979cb	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x290f956d	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x29b5143b	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2b209985	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4f597905	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x630d89a4	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7eed6378	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x99487899	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd448cd7d	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe7a676be	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x5d102a3e	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xb7a4004b	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xa12d929a	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xae2d9cc0	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x0e1350a9	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1cbddc89	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x6e45f0a6	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x72f4ddb0	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x77d1a40b	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x8204a473	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x8214e030	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xb89ebb3c	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe34c0a14	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x08d4089b	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x4e9fb87f	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x50e027e4	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x61671b3d	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xcd267aee	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xd4d5aae1	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xdc9e9ed5	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xfae254f6	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x34556745	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x47017c6b	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xdafc324f	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xd7e1198f	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xfc261845	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x63796ca4	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc3523eb1	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdef1cfd5	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x011b68dd	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x042e5f50	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x054e6009	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x06d5db50	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x07c338b1	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0fcfbe4f	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x122e9208	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x14064905	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x19517b00	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1efbfa96	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2296f3c7	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x23ec1c82	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28f3cb46	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2cdd1393	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x31e940b0	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x329a6b73	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3755624a	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x38dd5955	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3a42f788	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3cca3f4b	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3f582652	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4318bf09	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x43f751ec	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4405dc29	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x49d9578f	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x57fdbb05	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5a051ddc	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x60d25518	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x62fb8099	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6823f5da	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6f3f563a	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x73598be4	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x75dbbd21	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x79f86a48	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x801d1310	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8a685b85	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x975156af	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9777ea9f	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9b664d11	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9dc6bb0f	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa3171a31	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaba04812	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb15b057c	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb23d964b	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb6ea97e2	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb75d5f7c	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb7fb01da	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbbfda156	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbcd5c282	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcbc16d01	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcde18f92	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd1de4502	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd3e4e54e	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd707db48	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdcb344b3	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdcfc6d38	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdd482edc	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xde6b2f0f	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2047830	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe64cb81b	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe69bca3c	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe724de7c	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xeaeb4ac3	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xef571a63	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x1a167025	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x28f3fa1e	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x38473c78	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x519fc18e	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x57803eb2	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x8fad6ce3	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x9c272cac	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa0412ce9	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xb3a4bae1	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc2e61137	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xcb1b851e	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe02c237a	memstick_register_driver
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x092a267a	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x12e8507e	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x177b66a0	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1fcc540e	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x25434c55	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2d031f55	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2e884cb4	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x35360845	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3800a441	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4e687efe	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x526e0852	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x58a69b10	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5e4a7265	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x63bd18a5	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7acb3d52	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7b1b2de4	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7e917538	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7f09369b	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x85b0aeae	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9aecb67f	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa02f4869	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbd86cc40	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc6c204fa	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd77a82e4	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd8558d43	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe8e6339d	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xebf868ce	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xebfebbef	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xeefef5d7	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x16afba85	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3dcba894	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x42a60a9f	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4eb71758	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4ff2658c	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x584a100e	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x67c78225	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x804ff4d3	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x85eef773	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x87114fe0	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8cb36a3e	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x9886b5db	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xab3f4afc	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xab5fa0e3	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb3118c2c	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb82fdfc0	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbc5a13e8	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc4be4368	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd4c6a6fd	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdb485c86	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe13e2f89	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe14541e8	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe8e120b1	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xeae8a99d	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf45e1de2	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfc6df515	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xff3e7103	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x36e9c4f0	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xe74219f6	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xf332bbea	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x33071c0e	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x46236561	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xf3490bb2	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x1dfd83de	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xcb472335	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x5555a295	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x601a8144	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6ba31850	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa753535b	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xaab10c4d	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xc325867b	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd6f2d836	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe739516c	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xee258c34	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xf80ef02f	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xfb8d49e7	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x2ae68f7c	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x4a6ec8ec	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x78fd6bc6	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7ecce145	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xd5a5d272	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe79f69eb	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xb1533930	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xcf86597e	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0xb9f0fe98	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x8c406e3b	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xc108e671	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0x1545cfd0	__tracepoint_mei_reg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xa5bff49d	__tracepoint_mei_pci_cfg_read
+EXPORT_SYMBOL	 drivers/misc/mei/mei 0xb93bb2a0	__tracepoint_mei_reg_write
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x069ac8d0	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3a42f6a7	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x47c3b594	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x5a9bce03	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x73ed0e6c	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x91dcab51	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa7ec5787	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xadc5d9c1	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xc038a7e2	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xcc2ffe6a	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xecad18a3	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf98376ef	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x8497c545	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xaa1cc6ec	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xd5afadf1	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xee7327e5	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xfc4c6914	cqhci_irq
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x03675b3e	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x18e40984	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x475b15d9	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x64057c9f	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x6e6abb92	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x78514efb	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xe954ab05	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x00227cd1	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x03d084dd	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x222826fd	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x75a74af1	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xe1a315b5	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x1d5d198e	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x1f81dec6	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x01786acb	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xf8a255db	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xaceb05eb	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xfcdb28d2	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x6149887e	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xfe58d560	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x027c898c	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x12c7d7db	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x163857f1	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x1d60b136	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x315f12ff	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x4646ba80	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x734c642d	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x87eda1c2	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ac9ba5c	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xbe267c90	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x2e236034	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0x5fa5e2b5	nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x06093119	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x0e1dc4ac	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x31f57e34	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4956ab68	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x5c043d25	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xa1c35a11	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xc3fd543c	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcdf5597c	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd8fd1faa	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe6d7adac	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x1891651e	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x66945b62	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x6f060d81	com20020_found
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x00d03b4f	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x01d9b7b8	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0263200e	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0ad5ecc1	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0af2ed99	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1d7aa5fa	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x270e4373	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2a76f023	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2b4f432e	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2d862b26	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x30df0807	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x34ebd2cb	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x44489fe0	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x47bfaf5e	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4901837b	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x57a9b86d	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5ca25205	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x62888ac4	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x62da3e5a	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x68403fa1	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7b147c92	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7bb5ceea	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x842fca36	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x852e31c0	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x89c40cbe	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8d4a29db	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8f68eae0	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x988d9336	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa1a81ded	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbea7526a	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcffa96fb	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd1b8b149	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd400b3d0	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd402d30b	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd5d6430f	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe1cdf3de	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf6f37c3c	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xfa16bb01	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x364b6707	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x7b3cdc46	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x7baa4b4c	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8c1f37a0	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xf1cc6dda	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xfb9cb186	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x61b41abe	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x81d37088	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x38e22fa7	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x7a380d60	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x08a775c3	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x113aca60	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x5a9cd86f	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0462f88f	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x092a1aaf	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x110318a2	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x126f1c3f	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x24d420be	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x44e3466a	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xac81fba8	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xb084a35c	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xc639b24b	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xde6251e1	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x28560148	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x1006a3ab	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x83c368fb	cavium_ptp_get
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x0d8be5fd	bgx_lmac_rx_tx_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x34eeb48a	bgx_set_dmac_cam_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x42264715	bgx_get_lmac_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xff987a02	bgx_set_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x13912e4b	xcv_init_hw
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x4f739dc0	xcv_setup_link
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x086dee5a	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0964e908	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0a091d7a	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x15d32efa	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2a4cc79c	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2ecd0ef8	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x34e5e766	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3ea559ff	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x553a97c7	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6a13107d	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9b82e15f	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9be67ba3	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcad9f7f7	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdcd39ca9	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe095a73e	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfbe9db7d	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x05776254	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x07e74a70	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x091a2ada	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1642c0e2	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1f52a7ee	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1f863c0b	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x209b8fed	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x285efd9c	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2e65f2e1	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x327c7436	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x346968db	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3ef7aaae	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x473c32f6	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4fd54eaa	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x503521d5	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58b38b88	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5972b38b	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x67270984	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7bde00c3	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x81998fb6	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x82478e13	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8388417b	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8b538837	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8de06090	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x98f5925c	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9c644d7c	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9e02c5a9	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa626e88c	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb2cbd439	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc66c8e3d	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd7f6489	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcfe36569	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd27326d8	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd3c49f62	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd839992c	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd84d4328	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdfff676c	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe87bc24a	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xedfa88b9	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeecc7dca	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeeec3997	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf1d7b3b2	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf81388d9	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff507dc7	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x32b6c824	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x46be4c09	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x47f675b2	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xb07baa22	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc280cd84	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xe1df84a4	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xf81028a9	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x060157ad	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x4a7e9b6b	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x6e510d00	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x88735f5e	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xa5aff80f	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xc5f32507	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x598d5266	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xff6cf8ef	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x7d17f1a9	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xd263a65b	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x3a7ac501	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xbee52f96	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00199ed2	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01689704	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04837eac	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04b7d46d	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10684bef	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c1d8356	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2aa35e11	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c111b7d	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39753ce7	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42cba75e	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x439d2f09	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44d0efd0	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x486083ab	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ff8d749	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57567cc9	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b22af9a	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b8ca5ed	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x743a6402	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77a4365a	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x801bab74	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x844ab8ca	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86e24e47	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9009020b	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x913dd3a2	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x927833ca	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99472958	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b80258e	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ca04b59	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9efb6424	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa55434be	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5f948b8	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6601839	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb19c7e25	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb38c4c8f	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb435332d	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9e4d37c	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc315aebd	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc686a68f	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdfbfb788	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe60e22e3	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecdbba4d	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf541419a	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa524c8d	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff3cfeb7	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x029f08c4	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x049ede76	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x04f5a757	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0516289f	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x082c6808	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c792a88	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15f80b7f	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1975cbfc	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b61bf4c	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d0f5f01	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1dba2c84	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21cee7ce	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2398498a	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28e60422	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fa36861	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3095edf4	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31c4ee3c	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31ce604e	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33241a43	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3602c5bc	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3bf51bde	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ea84799	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40c7a7cc	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44fb806f	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45bc0ddb	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x485aeee5	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f0ac1a0	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x509bd3f6	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53233a56	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x539517d0	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55585144	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x558efc99	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57207a19	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57c6f7a1	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5dc64a7c	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5dcbe6aa	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62041b9e	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66255a20	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66ba64e0	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67c0b8ea	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x683cc7a5	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x694166a3	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a015bd0	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a0b7761	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ba25183	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6dec8b0c	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ecf3996	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x709eda83	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72a6acf8	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bed98fa	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fa804a4	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83ab458d	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83d139ac	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x844f3d32	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x85f8887e	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86cd9fc9	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a435a42	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b9f7c9b	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9124e8f1	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92699f21	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95f382dc	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c1b7cf4	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cf2e3dd	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9dc10a9d	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9df51831	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e957891	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2bc9ce7	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4209e4f	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa59f938b	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa60cf026	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7a3eb20	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa64f24b	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabf61d33	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb01d3c87	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0fb0951	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb38239b6	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb44d9e2b	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9052754	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbfe27339	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1fb0026	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2221cda	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5c6eeb9	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc74854d4	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc82f6650	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb0fa11f	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc03769c	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0ee6875	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1f7b48a	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3024de3	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd460581c	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda404281	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd721a3d	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfd851d9	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe04ec919	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe30eadbc	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7515cf9	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe820480f	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef8adf43	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefa0ac52	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1826c45	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1a64875	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3e9670c	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6e71b48	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6f427e4	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8fbdf6f	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf95f5966	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb3e964c	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb984c8e	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x3ff9ce07	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x05e6968d	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x167a5582	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1b80fe3a	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2bf40dbe	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c8a7260	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x468bbe06	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5388b177	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x557d58e7	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8c361584	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x94f6b160	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9a610a11	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb37db31d	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc2f0fc07	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdf02e724	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe66675a9	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ce653f	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x67744a03	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xcb7bcea3	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x01a1695b	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x3b19cb4d	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x13e65b44	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x14704be0	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x224fd528	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x2de7bd98	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x4668d539	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x5772a13e	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x71134148	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x94aa174f	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa36d149f	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd27e22ba	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd288780f	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe894530e	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf3c6247a	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x198e5e03	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x1aa2df37	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x491654b9	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x82a5c88f	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xd390a011	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xf9ab90c7	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x06377b70	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x5a6ec5e5	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x5ae3a241	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x80038afb	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xc4797a6c	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xb79a54ee	mdio45_nway_restart
+EXPORT_SYMBOL	 drivers/net/mdio 0xcdbdeca7	mdio45_ethtool_gset_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xdaceb7a6	mdio_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x0aa9291c	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x4bf078f2	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x617c733a	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x71416e9c	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x81639076	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0xad94599c	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xb6f5627a	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xf9827201	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xfba8d8f1	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0xfd5ef529	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xde657078	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xa849a724	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xccff99e3	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x9eb1fcae	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xcc17aeda	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x20a87609	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x24586aa6	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x6460bf5e	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf9bd2857	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x7c28d382	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x455eaf09	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x5ba0856d	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x632e3875	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x65e6538a	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x9c6d357e	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xb7d7272f	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xc8ac06ef	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xf4f11c5e	team_mode_register
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x4aad6a61	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xce76ae90	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xdd0e6bad	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x0ab5faaf	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x219267c8	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x5a23c9a2	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x6e549103	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x8930b610	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xdd4929d3	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xe845c2ed	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf05a07f3	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf5e1c10b	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xfcf861ee	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x30ef5640	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x2fc67c26	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x58e2623f	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5a13baf0	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x62308a54	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x733077f1	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x7e2aa566	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8478fced	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x8b3eac04	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x96f74a3e	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf32e9128	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf3b200c6	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf96e01b3	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf9ca4613	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x03fd2d9e	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x09b35c32	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0c68f77a	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x26cf4813	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2f2f2b49	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x37a92344	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3f0fb16e	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3faf72ab	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x47a8a57b	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x489c469f	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4c7c57dd	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x57609f18	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5bf675e3	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6030dfa1	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x60b2202f	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x678ec118	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x709e7769	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x72b83496	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x73687dd0	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x767a7373	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7b6b0428	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8364cac7	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8835cde6	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x95d0e3fe	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x95e51115	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9aeb3077	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9b64e627	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa194ad5e	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa8f20d07	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb157951f	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb5e9a8cb	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb6be649e	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb856a960	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbc81e9fc	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc4f24feb	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6be14cd	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcb04255d	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xce2f402c	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd91bfc01	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdf9ac0c7	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe29eea3c	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe3389837	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe72e54e6	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeee73178	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf057c9f6	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf0698853	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfba09572	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1ffeaedc	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x37607493	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3909ac74	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4a35ba16	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6b999e55	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7014809d	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7d08a3a7	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf44fab8c	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfb2bc6d9	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfb59e027	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfd46b5cb	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x08a15e4a	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x12142cce	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x22c430f9	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x26409164	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x32e1ee52	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x421809a4	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4fca1088	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6c181049	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6ed864c4	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x74fe8fa3	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7d433be2	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x861a6777	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x86a36f74	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x86e68a4f	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x89941864	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8bf55234	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x950f6917	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb200b99b	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb2983e8f	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd783881b	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdb2b03c1	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf2f8c3e0	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf5ebfe84	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x005dee58	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x00cfcb05	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0261f676	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x07fedfb0	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0813388c	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x08e2a30a	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d1b862	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0aa1c5d1	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d2769ec	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x101ca2e1	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x10e1cfbc	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x14b6f903	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c569c1a	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x211c7cb9	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2388996d	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24ae2dae	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a40da82	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x335f6577	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x34c9392f	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3aa60c8d	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d4f4dee	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f597897	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x420957e8	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4279e3ce	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x44d524e9	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4adcd18f	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d1026e4	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4dd45506	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5018515c	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x556cccef	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55a162a9	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x55e87afe	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x56bd3c6e	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ad0f833	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e449623	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x614bab0c	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x616ff405	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62b613ae	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62b8506c	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62bc7698	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x69775d99	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c460ee4	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d417ee9	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x725bbdf1	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x750486d6	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7628d663	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c82ec9d	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7dfbcdab	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ee9ce5f	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f4ec6a7	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f89cf98	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x808732f5	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8234d5cd	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x82d8c0f8	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x87199ed5	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x87becbce	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x87e69b12	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x88c9b24d	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8966aff0	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d29aea0	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d613c2c	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e177f4b	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9158d7f4	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x951d590d	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x95c65f69	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9620b6e4	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x981ee862	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa51816ca	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6ad1502	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa985d768	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xab6ccf97	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xad90607d	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0dc5b87	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2213324	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5b29da5	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6e46788	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8983d76	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9510bde	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd204fee	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbdd7ee1d	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0d859d5	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc36bfef4	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc81665af	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd8afd95	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce8d74f8	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcec0ddfa	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd06dc395	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2007bab	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3df5d26	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8c6527f	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9a5072f	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda3a3579	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xda5c74c6	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xde1d883c	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe19c6f5f	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1f5b504	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe23ecf74	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3562be5	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe469366c	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe75f4795	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7728f52	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea16ce8b	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xec8a6016	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf00f6504	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf02cb286	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf192b734	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9cba225	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x0e4a968a	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xb0f9f308	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xfeb1bdd5	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0d9dc38f	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1149a80f	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x2a59cd16	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x30a6dfee	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x36a13f40	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x530767c5	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x585d1ed6	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6a38bde4	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6da31f28	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x957f4ad7	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcf7b431b	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd4ff4cd3	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xec2ba56c	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x475659a1	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x5a562f7b	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0xde4cd476	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x050baea8	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x18366bc1	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2af42276	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x58c248c8	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x76e10096	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x792db608	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x79fb6837	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x81ea6a54	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8eb44ac5	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9dcf9f3e	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa7cd96b4	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xafe78987	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb2f45b4c	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc880c228	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd828fb39	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd9365bd7	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdfb0e6c7	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdfe23350	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xef1cf394	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfd183856	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x039fd651	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x05520cf8	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x08706f12	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0c80073a	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f93004d	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x115adb4d	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x13467477	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x159a403f	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x16914a7f	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x18a40229	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x19c8f763	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1f09af36	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x21dd8001	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2322e03e	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x29e74485	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ac64d49	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2d330a3f	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ecbbb72	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32c673d6	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3956f41e	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a0efaf2	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4033282c	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x44a7c0cf	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45163fa0	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x46a88082	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c042a7b	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4fcaaf6c	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x537ea652	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x588e1cdc	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x597261a8	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5a90e4d1	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x617a2780	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6204eb14	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x624f0c08	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6a48ad1e	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6a4918ba	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6e024454	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ecdee84	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x752380a5	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x76c95886	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b06caba	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7da576a2	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7efa1071	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x80dc4b20	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x80e670b0	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8106437e	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8305f59c	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x84f44d68	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8bd4eb6a	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8d0cdeb9	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x903592b9	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90811bc8	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x91363924	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93c7f412	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x958d752c	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x95c73b4a	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9756a60d	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x98510ec1	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9963c539	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9a9c92a3	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9ce43f6a	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e705882	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa25447d5	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa3bbddaf	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa47abd1a	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb4410006	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb5a025c3	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbd57460a	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc2945cec	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc468e19e	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5068acb	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca4338f1	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca9a8f57	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcf9b5c0d	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd1dbe90a	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd4fbe5a2	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7a98268	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd8a9ee22	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdb80334a	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe05bc460	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe3967e9a	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe5709c70	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe71a73ce	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7f07ffe	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe8c1d501	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe9072488	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xecac17ae	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xedc6bd22	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf21a0a05	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf6be9a12	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf727e0e3	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf81907c1	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf913f69e	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf941bec6	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9d6606e	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb09d3db	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfe01d1de	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfe2424ec	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x07e6ba3f	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x080095cc	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0e30b74e	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x1fb3691e	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x27f52844	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x31e2a77d	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x42e7abac	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x60977f3b	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x749bef5d	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7e666631	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x875fe63b	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8a094bd5	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8a7149cc	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x92d455cf	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9bd3d13b	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa88fc147	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa8ee38eb	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xab3b9bc1	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb27e764b	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd0a62a37	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd2f0b69f	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xeac7ca6f	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf4b9f5b8	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xfc068f5e	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xfe4375f7	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x15f19460	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x23ad83e0	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x23b936e4	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x34e8309b	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x35ec3054	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4041bdb6	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4340e4fa	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6d754ee2	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9e0b5892	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xac24ebd0	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xb772be25	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xc617d9f9	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xd864c96c	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xdeaaa21e	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe47b6cbb	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x341df374	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xb4d77e3f	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x10f18d20	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x15e22d73	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2783f245	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x28c541a1	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3742e3cf	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x37f85db0	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x45a07140	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4b9653eb	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x53861e8f	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5eaf6818	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x620a05cf	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x62bd2ccb	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6ba1feef	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6dc96db0	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x742719e1	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x797185b7	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x80b580ae	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x83fb827d	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x941a33ac	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x96def02a	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9ed59c14	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa11d3f12	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb4bc4d8d	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb67bad01	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb7a86e27	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc2d81a51	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc4a58596	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd3408425	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd743dc79	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd7835e70	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd9fd1324	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xda1a1fc7	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdcca268f	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdf82806b	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe100554c	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe199320c	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe24a1aa1	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe36c202d	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe3d48a8f	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xec2320b0	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfd5e6af4	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x193dde20	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x46cf43ba	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x6638e36a	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xc85bfbb3	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x127e6a3e	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x6959eb11	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xbea835f7	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xdb927fbc	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x05e052e9	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x16027bac	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x21fdd131	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f7ca802	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x32a8bdab	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x385551bc	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3a8a66a3	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4232c9e2	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x43f0bb75	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e48c701	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x53593ade	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5afc0d1d	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x66175f5a	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x772e342e	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7a91f617	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7c0d2576	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x885c0106	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8c8725a1	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90439370	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x95ee0e37	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaaac6c18	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xad543939	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb30976c5	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba51dd87	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc2b976ce	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc8b72fdd	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf7db576	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd4b07fb9	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xde10ac71	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdfc69449	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf007a635	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfbd21116	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0186cc9d	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x12012f73	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1a4a14b1	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x248f58e5	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x304bcf8d	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3f0396df	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x5160689c	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x578e8a17	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x60500304	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x77fd31f7	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x7e228dbd	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8434efb3	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8e11595f	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa118b448	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xbab5497b	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcb4d33db	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcf6f2257	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x796fdf46	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x1523a924	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x5f971efd	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xadab1e25	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xf9640839	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x6c503a70	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x730d27dd	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x7318dbf1	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x3dc84e99	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x59e0e721	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x180499df	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xb2cac906	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xe0c12582	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0xc88e06fc	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x4271aba4	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xbb422cc9	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x24703b56	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x4a345982	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x6023c6a4	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x2012a2f7	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x35eb5d6d	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x43aab1f1	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x4826d9a4	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x51f2fd3f	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x5b2c29a5	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xa4c98c00	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd623bf24	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xe8124282	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xfe72e9e0	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x09a2db0d	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0c1bb9a5	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2329677f	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2efcff06	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x3099e092	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x53a50d33	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x53dc85c1	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5ae79f4c	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x619447c0	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x70a01247	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x85c5a8c3	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9756aa19	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa9eae6a8	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb86824a5	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xbf548b5f	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc2f80e73	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc966175e	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd6f4d93e	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x14e8ad05	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x29c71e09	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x360809bf	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x3e94fad8	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x4ebec007	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x50934ae6	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x6bff66c1	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x71d55f68	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x85d4ad45	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x89a0572f	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8cb6c2fd	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb1e4425b	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xcad15634	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xcc21cd33	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd4a7fb6f	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe06a1196	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xeb382040	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf044d52b	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf5561932	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfd03da49	ntb_db_event
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x60ed425a	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0xb7be7acc	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x083022f9	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x0f18988e	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x11e7d094	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x16935e92	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x180c51f3	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x1fdf551b	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x27bc55cb	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x374c519d	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x394cf12d	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x40ff7e5f	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0x43227ca2	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x48d18585	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x4f81b3fc	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x53f1a044	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x5807ad48	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x613c6f2d	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x6248bb85	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x71f5e485	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x7f93a471	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0x8078065f	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x94b3eddb	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x9b1ffffd	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x9d316fe2	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xa7c5949b	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xafaba2b0	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xba2d5384	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xc7c9975a	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xd1acf811	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xd639bf7a	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0xe3733671	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xe47c0773	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xeb33beaa	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x2d84eee7	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x828ee19e	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x0d774ebf	pcmcia_loop_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x1addca29	pcmcia_request_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x49666dc8	pcmcia_release_window
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x6f33cf81	pcmcia_map_mem_page
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x72f89e87	pcmcia_read_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x742f5665	pcmcia_parse_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x7a930eab	pcmcia_dev_present
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x801c0c32	pcmcia_register_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9a9f0567	pcmcia_request_irq
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0x9c051952	pcmcia_request_io
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xa2543024	pcmcia_enable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xacfed14f	pcmcia_get_tuple
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xb164bac6	pcmcia_fixup_vpp
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xbb2c12d7	pcmcia_unregister_driver
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xbcee6ae7	pcmcia_disable_device
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xdb355b18	pcmcia_get_mac_from_cis
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xdf73fc92	pcmcia_fixup_iowidth
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xee69f6c2	pcmcia_loop_config
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia 0xfde8f026	pcmcia_write_config_byte
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x09af5da6	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x322298c0	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x5bdc22dd	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x6b58166a	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x75d2521b	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x95709421	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x97e5bb98	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xb2d5e8c6	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xe15621c9	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf5ae8bb1	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x6638de52	pccard_static_ops
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0x6c0a5d0b	pccard_nonstatic_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x0a36750d	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x85d39108	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xc977df61	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xf3c2a057	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xaa1c36de	cros_ec_lpc_io_bytes_mec
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xc4ebc6b3	cros_ec_lpc_mec_init
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec_lpcs 0xf5c87c59	cros_ec_lpc_mec_destroy
+EXPORT_SYMBOL	 drivers/platform/x86/dcdbas 0xa75079d6	dcdbas_smi_request
+EXPORT_SYMBOL	 drivers/platform/x86/intel_punit_ipc 0x3a0b563a	intel_punit_ipc_simple_command
+EXPORT_SYMBOL	 drivers/platform/x86/sony-laptop 0xd857cac7	sony_pic_camera_command
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0x097a726d	wmi_driver_unregister
+EXPORT_SYMBOL	 drivers/platform/x86/wmi 0xfccf0b8e	__wmi_driver_register
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x03befd28	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x27d0bc74	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x2938b25c	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x2c80ffee	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x55d58c98	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x55f02a71	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x56e83c52	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x6823663c	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x8cc82623	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9702da5b	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa5f80c45	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa6ca5775	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc66331cd	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xf266903b	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x2640006c	NCR_700_detect
+EXPORT_SYMBOL	 drivers/scsi/53c700 0x3d9cece0	NCR_700_intr
+EXPORT_SYMBOL	 drivers/scsi/53c700 0xd3e2c80d	NCR_700_release
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x2ab25882	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4cba9f72	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x88ae67da	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x9d9f61da	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x10af2679	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x1638e590	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x201227e6	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x23353784	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x34812ecf	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x410e2d12	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4504306d	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x68b85c41	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x79716a16	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x89c3ca4d	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xac6c73ba	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x01615c30	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0682c594	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x080411ba	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0e520315	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x16f21150	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x198d975e	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1af31b46	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2041ea52	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x21b0d669	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x34e0592a	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3b51bbc3	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3fd67266	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4060b5e6	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4249007c	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x486a931a	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x541f9a75	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x57965836	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x58bf7c6c	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5d8f63da	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x65bab7f8	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x72c84a65	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x78ef4573	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x79f47980	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ef2ee75	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9ac75022	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9b5d134f	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9f6ea2f2	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa0500d78	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa51d9b4d	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa9e6a4f8	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xac81f1e3	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xaedf020f	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0949bfc	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb70a04d5	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb920623f	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbc9dae1b	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbdc59510	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbf108f21	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc0f470e7	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5a25360	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc7b1348c	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc7e25021	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcbb5b774	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd2d0b7ba	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd3746441	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd8d90597	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdd43c40f	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b316f6	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b341c4	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe6d28d5d	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xea4cd66d	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xeaab71b0	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf64a380e	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf6881aa5	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf95fc1da	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfd3eeeb6	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfeeb245b	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xff056b76	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x7388c5d5	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x7c14f1d9	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xab177a1d	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x0573fd2a	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xa21fafb9	mraid_mm_adapter_app_handle
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01	mraid_mm_unregister_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x03a58a5a	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x06a9f35e	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x090c1dcc	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x4b6ade47	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x726ca316	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x87321b51	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x888ba3a6	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xa4b4aa81	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xb7b5581c	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc3c1dd40	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe64052bc	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf01037f0	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1db81ce3	qlogicfas408_host_reset
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x1f55cd70	qlogicfas408_ihandl
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x30a949a8	qlogicfas408_info
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x3fd8cd71	qlogicfas408_detect
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x5916b435	qlogicfas408_abort
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0x9bbfa81e	qlogicfas408_disable_ints
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xa77569f3	qlogicfas408_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xbf81801c	qlogicfas408_biosparam
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xe76b3b20	qlogicfas408_get_chip_type
+EXPORT_SYMBOL	 drivers/scsi/qlogicfas408 0xf2b95199	qlogicfas408_setup
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x1741c497	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xc26f56b1	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x04e9817d	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x10363a9a	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1a6c61f1	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x26326988	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x62104a69	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6a9a9ac0	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x827e9a76	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x911cae00	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x91bab3a9	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9d304ac8	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc12564a4	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc41040e2	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc42f69a9	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd56be059	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xe9dd633e	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xeb5c783f	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0405daa6	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x31621554	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x334f84bc	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x42b3b40c	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x500dd2bd	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x52687d86	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x52c51d60	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5785a069	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5addc3c4	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5ae7f3ab	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5f7d4778	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x60819bf2	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x784fe982	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7e6324e4	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8fe8af84	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x937d5dd7	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9f882770	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xad300491	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb37a1e20	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb72e8604	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc313a08d	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc7fe8223	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcec1831e	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdb1b59b3	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdcea1bca	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe282f843	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xedfd43cb	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf8dcd2f9	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfa07abeb	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x74f024c4	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa15788be	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xaec5e6e7	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xebb485f7	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xfd72cc83	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x97fe90b8	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x9f74e736	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xa86a5909	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb5c9e42a	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xd1ef5fe0	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x09640212	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xe2260e87	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x148dad87	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x2fdfa900	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x3156ec48	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x9f68416e	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xadb2bb05	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xb10d21b5	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xb479214a	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xbe9d9099	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf9dc4943	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x95685c87	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xd5cb90fe	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x22da77bb	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x307c7e7a	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x33a89097	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x368c3a74	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x40326697	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x7b994760	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8afa898c	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8dfb1eb2	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa903eee5	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xb3ac89db	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xcbeff3e3	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd0ac3091	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xdc6bc30d	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x00279b8f	sdw_cdns_enable_interrupt
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x34712074	sdw_cdns_irq
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x3be0f0c2	sdw_cdns_config_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x409bf77b	sdw_cdns_pdi_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x4652cae5	sdw_cdns_exit_reset
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x479cc7d1	cdns_bus_conf
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0x9821c382	cdns_reset_page_addr
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa23e4c62	sdw_cdns_init
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa4d7f4db	sdw_cdns_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xa76a6fcb	sdw_cdns_thread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xaa1b4327	cdns_xfer_msg_defer
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xd808ac25	cdns_xfer_msg
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xe4ede085	sdw_cdns_probe
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xe5d1e75e	cdns_set_sdw_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-cadence 0xf38f6338	sdw_cdns_get_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x5e07cd60	sdw_intel_exit
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-intel-init 0x6709b070	sdw_intel_init
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x063d4e74	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x065c9485	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x135d3c77	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1b1beefe	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2350b46c	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x33586a25	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x35b99540	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x35c19aa2	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3c4d10fb	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x42579688	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4e1c47f4	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x55a0f21e	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6d414fd5	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x73ce38a3	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x86f25d8a	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x946decad	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9631ee96	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x99a222e2	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xbb139774	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf1f85e2e	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x2780007f	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x2ad03540	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x359ee501	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x44643c55	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4ea2ab9d	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x64470a65	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x699a3645	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x76530475	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x79f5b4d0	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xb4cabe5d	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xb717ec28	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc5c7d312	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd304665f	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd6abd70f	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xd7470f12	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xf3348e53	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xf4699412	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xfdd9879f	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x472389e0	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x001ce730	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0cf05982	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0d223295	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x160da0b7	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x1f66df82	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x37934a45	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x397982f8	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x7ac4196f	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x8f3c6a53	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xa11202e5	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc226197b	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc7b1d5d4	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd07e8c81	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xef2335ac	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf5460894	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x89588567	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x8a43eff3	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x9da817b6	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xb212de82	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xcb04adb5	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xcdf80163	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd098b61e	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd3b6ab71	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xe762db6f	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0x29562993	b1pcmcia_delcard
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xaec3240e	b1pcmcia_addcard_m1
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xea620116	b1pcmcia_addcard_m2
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1pcmcia 0xf14bf8b1	b1pcmcia_addcard_b1
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x02cb4e09	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x04dcdcee	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x05978f8b	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x080fa196	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0b815056	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x14101e2e	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x16859d29	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x257ae249	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x25d7179f	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2e827ded	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2ec15e16	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3659e016	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x433b3785	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x435d0845	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x451e94ad	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4b1717ef	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4f4a7846	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x58d901ea	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x60405b0a	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6292ce4f	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x65e46184	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6cf520cb	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x78a2a58c	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x790de352	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x795f2523	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7c22bbc6	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7fb0f2e7	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x85a2ecfa	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x86d54b95	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x894412a2	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8f540373	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x919cea4d	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9390a11e	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9742b6af	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x977d4c9e	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9d5caabb	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa2fb2173	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa306a1dc	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa85bc16c	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xae4163f5	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb3d7aeb9	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xba19dff5	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe6d0b50b	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee30ebc5	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf0b572b0	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf4597d9b	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf4dbf912	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf8792960	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfd2c18a9	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x00cd3c71	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x044b40cf	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x06d184f4	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x072772fa	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0c85dcfc	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0cb81078	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0d588a80	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0d6d4772	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0dac0b8e	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0dcbca06	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x11fdbdc7	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x13269e76	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x22784fc4	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2323450e	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2527b44c	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3080decb	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x32803368	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x413af4c5	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x41a882e3	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4754c3f7	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x490dfed7	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x491ef3c8	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4b8437f3	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x50ffd25d	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x53ef0609	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x54fe7e88	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x60fa4524	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x68747007	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6b65652e	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6c341ee8	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6cec3232	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6e883113	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x70c7ae50	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7be00b8d	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8923c7ed	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x89c1a32d	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8c26dadc	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8dc12f16	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9ca3b47f	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa65511e8	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xab16b49a	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb86da713	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbaeb84d5	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc2ee2d42	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc37231c0	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc3e283f8	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc7c4e57a	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcfdaa703	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd9a086fe	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdbfe2e5b	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe5aa0948	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf49f2c78	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf7a2d02f	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0402db0f	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x04bc6d08	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x052117a0	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x074d1fd9	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x081ef459	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0b8617ff	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x196f25b1	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x224c79f9	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x245854d0	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x252627bd	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3c6d6237	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3c73e538	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4eff4a6b	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4f3b61f2	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x572346ac	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x696696c8	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x69b6fb49	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x70e3102e	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x789b843e	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x79623ece	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7ee8d63d	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8501f507	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x85dee9ad	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x87ae8526	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x88cd7724	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8ab30aee	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9094fd6e	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x965a3ffc	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x98e6fa5d	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa030b5ce	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa353854b	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb23db355	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xba01a458	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc1f21b92	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc5b9337c	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc6f9e1d2	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc7420319	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xccc91adf	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd4e41091	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdd62fa8a	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xde49ef69	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xeab7ddea	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf1472e06	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf189bd21	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x021d8eb6	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x05ae3f50	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x14867375	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x15a5a01f	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2205b403	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26f0f04d	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2847a343	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b2b3b0d	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3134a3b0	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x36a144bf	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c51f632	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x403a6c59	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x43d10ce7	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4bd47965	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4e43715d	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4f8b82de	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5335dcf6	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x543750b1	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x55ad3770	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5b472f9f	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x634aed3f	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638b3e7d	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x64f43af5	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x66071b55	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x69a9e1ee	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6b38f852	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6b626004	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6dad22ae	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x70a82908	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7115d5f2	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x73007b87	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x766a9def	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x77b7b1d5	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7851402c	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7ac6c345	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7b3c1635	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7f50a87a	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7f71515c	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x838dbe8b	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x83cd904e	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x85068716	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x86346e39	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8664c907	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8991a668	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9071ba33	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x97ebf77b	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9d30e232	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9d607441	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9f411ad7	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa1925fe9	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa3ee2e08	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa929d698	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9e5412a	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xade1cbd5	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaeacd03a	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb7b8b8bb	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb9f29058	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xba935142	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbc2064f5	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc21164f7	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc6178b39	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc72baf46	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc8bd7eb3	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xccc6dbdc	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd36ee40b	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd3aa0a49	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd7569dab	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd7da2948	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf1f77272	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfcef2f72	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfe2c6e39	core_tpg_register
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x111eefed	acpi_parse_art
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x1887763e	acpi_thermal_rel_misc_device_add
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x86c998e6	acpi_thermal_rel_misc_device_remove
+EXPORT_SYMBOL	 drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d	acpi_parse_trt
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0xbf3d7cf4	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xd2f72c18	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x8391e59d	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x1df8c084	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x393c8757	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x40a7df92	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8f3af8c7	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x91c47ec4	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9910f925	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9b2450ac	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9d0d2f02	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb04dda6e	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb8000b8e	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xc5f93f09	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdbb2a577	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe81ae901	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x055d56d5	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x999f9007	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x1760ff09	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x27ea5fb2	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x4e7b4a77	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x7de2a107	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x851d677a	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8d7194f0	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9631e043	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9b4b4d8f	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xc8d09d1e	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcbb7533d	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe93fbfca	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xecca9f4d	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x6f901433	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xd4d54105	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x0fdf447e	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x5b3dad7b	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xbb2247dd	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xd5b57a2e	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x0e1d9738	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x2e55d8c2	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x700b0e36	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x772f5946	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c337c2	svga_wcrt_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c97d2a	svga_match_format
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xc261d9b7	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xcdf09075	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xec575b8d	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x21874e0d	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0xd6c67be2	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x873e5601	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x423cac17	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x504bf37a	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x9abf0457	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xcfd56846	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xe3839f35	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x1de4dcf7	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x87701193	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xa0f0697c	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xe591d40a	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x6300501a	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0xbe679202	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x0b07430b	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x6f0921c1	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xbe3e5d49	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xbf5d3a0f	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x97310f8c	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xcbc7b275	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x1a6c654b	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x1fe86042	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x35aadfaa	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x7b7231ea	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xfb0f1b05	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x8860f8d7	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0x3037658e	sis_malloc
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0xfe963115	sis_free
+EXPORT_SYMBOL	 drivers/video/vgastate 0x686de290	restore_vga
+EXPORT_SYMBOL	 drivers/video/vgastate 0xe7a2620e	save_vga
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x42d0a873	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xb2cc4303	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x81d0e6d3	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x946a7cfb	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/wire 0x3c94f713	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x4153757d	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x6a19af41	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xcd6186d2	w1_add_master_device
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x04e133fc	iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0x75bec08d	iTCO_vendor_pre_stop
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xc8930f32	iTCO_vendor_pre_start
+EXPORT_SYMBOL	 drivers/watchdog/iTCO_vendor_support 0xed2a3373	iTCO_vendorsupport
+EXPORT_SYMBOL	 fs/fscache/fscache 0x05bd210d	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x06817980	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1e7ec533	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x22c95c52	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x27e3cbed	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2e33e9e1	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2ebf891a	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2fea3067	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3d9adeb1	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x42270b8d	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x437391a1	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4a49b7e7	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4b67ac8c	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4bbe9c74	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x51f8aa5a	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5e8eb688	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6a89c5f6	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7de763e0	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7e825949	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x818cd75d	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x92a5a941	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9affb9f7	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9be92a21	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9c5fdabe	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9c616cb2	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9f62d206	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9f9d2ccb	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa9926335	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xab87f967	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xafd2f1fa	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb1c7e8be	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb677a56f	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbe0de373	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc1af30f7	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd29c34ba	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd2e058c4	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd90d9d67	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe94862ed	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xeefc61e5	fscache_add_cache
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x01ca805f	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x022ed09d	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x3fb36d13	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x5e778102	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x830bbf46	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xaba67c27	qtree_release_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x418626d1	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xdf80b371	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x027b244e	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x05eaa9de	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x57a53183	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x7810aba1	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x7b912037	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xeee48da7	lowpan_nhc_del
+EXPORT_SYMBOL	 net/802/p8022 0x02cc4e4f	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0x9f057443	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x7ed04dad	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xe98fa6b5	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0925f472	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x09ba8b6c	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0x0a908009	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x0b02b813	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x0bdab52a	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x17ae27fe	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x21782f5e	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x302da8ea	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x31adb3cb	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x3a2d5d9a	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x3b883b36	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3ddf4e88	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x45b4a3aa	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x4de0b992	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x604e67a1	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c7e0771	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x714f8201	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x75521e86	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x8445f0fa	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x91e8dbbb	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x945bae4a	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x96b7d97d	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x985b239b	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xac94b8ca	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xbc6f551a	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xc5136ca9	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xca97320c	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xccf12781	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xd1bdff2e	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd3ab8e37	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd40fb2f8	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xd55fdd98	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xd89cc2bb	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xd9c2c7aa	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xdb5e4ee4	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xdc35d31e	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0xe081be1c	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe76bb153	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xf4c711fc	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xfe9e5d05	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x295990e6	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x37c47578	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x9b4eeb77	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xab4c6e3a	alloc_ltalkdev
+EXPORT_SYMBOL	 net/atm/atm 0x03690f3e	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x0b3bed74	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x0f10a1a3	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x188dd641	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x2085e913	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x31c599b8	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x353a04f3	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x41225664	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa96e7426	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa28c2e8	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xca1e5fb7	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xd73cd90c	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0xdbb6496e	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x09b765f9	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x2f8b4ae7	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x421b65a4	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x7f70358c	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x84c04e3a	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xad2b1732	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xd9f9b9eb	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xf4144039	ax25_linkfail_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x00f2b7cb	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x01aac01a	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0a0d5e62	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x142009bd	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1730ceec	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1d19b903	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x42de4f6b	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x45a904b6	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4be688b3	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4c85fed6	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x517d581e	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x591b462b	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x617dd187	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x65532764	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6756d28f	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x737ffb74	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7c3c1c60	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x80b37d70	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8225626d	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8632436b	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x96163dcc	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9d9a1637	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa04e0aff	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa06a58bc	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa31f86f4	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa507da57	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xaf2dd107	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb287ad56	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbf041d7f	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc2854325	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd1326709	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd2a58f96	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd2b150e0	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd6086a2e	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdbb777b8	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe8930e5a	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe96371ff	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xeed9b175	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf1c4cdb5	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf32127dc	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf326fde1	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfcfd70ab	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfd144215	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe680c99	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x430c78a4	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x5a87533c	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x5fe8e930	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xf0dbac04	ebt_register_table
+EXPORT_SYMBOL	 net/caif/caif 0x0a259b62	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x2ae21d71	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xbffe9e66	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0xd7902954	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xda30fba3	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/can/can 0x141fb846	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x47a5ce22	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x69e151e3	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xea228d9f	can_send
+EXPORT_SYMBOL	 net/can/can 0xeea423a0	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0xf9433e6b	can_rx_unregister
+EXPORT_SYMBOL	 net/ceph/libceph 0x0180d958	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x0473fb13	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x063eb845	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0x08a30db6	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x08b7d745	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x09c552ed	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a61dd46	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x0b90cd1d	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x0d88cf7a	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ea44bb5	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x10393073	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x11578843	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x13d534a2	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x1a1c4ac6	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x1d4f0b28	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x1e4fdf87	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x22869072	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x22889427	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x22c1a294	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x278563ea	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x27989f65	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a4c3980	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2ce9c8af	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x3548cb6b	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b6f7272	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b8e8efb	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d140df5	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x3e2d7661	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x453de213	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x475d425f	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x4c36bd22	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x571b0ac3	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x574605f3	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x57b41751	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5f62c466	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x60554d90	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x65c03871	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a31ff11	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6c8eaaf7	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d939458	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e175041	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e953d84	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x6ea7bca7	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f9df4ee	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x71e372f5	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x73a3475c	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x75c4ca7f	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x79e252c4	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x7d71c458	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x7d77e2ad	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7fc776ea	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x82c2759a	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x84975472	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x8cea6cba	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x9034f28e	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x90f58f5b	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x98f43353	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x99c0d4a0	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x99d503a8	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x99d78ec8	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bc6b539	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9eb6f2ef	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fbba67f	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ff81a19	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xa16ff9aa	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xa51880b6	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa6df8bec	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xa7508f53	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xa7e1badf	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xa9a898e9	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xac916b01	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad331b06	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb4176519	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xb44a591c	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe382bc0	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbeec5416	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc7beb67d	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcbc2639c	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xcd68aa9e	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xcde16277	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfe932fb	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0xd0648521	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xd21bf484	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2d4decd	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd760343b	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd900f119	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xd93d3ed5	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd956be8f	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xd9e53173	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0xdee5e53c	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe3f8fd2a	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe6963f5f	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xea5be9e6	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xed971f30	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeec7323c	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce3c3b	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce991c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf0731c22	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf44155a5	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xf45c0d37	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8cfc7e4	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa709c3a	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0xfea4127f	ceph_client_gid
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x77f37a68	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xc63ae647	dccp_req_err
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x2100a8bb	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xed91acc0	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x0b6f3967	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x4d839e1d	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7462c6cf	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xbb90bd11	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xc008a408	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xfcfbae7b	wpan_phy_new
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x29dde8d8	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xf1703fc9	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/gre 0xf83d4794	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x38b1bbe4	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x63c5c818	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xc8dd5edd	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xcfc2837b	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x1b8b46a5	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x221c595d	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x64c6128b	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xc46875f3	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x09b98140	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x40673416	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xc55cbcc9	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x26dab595	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xebbffa45	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x22eb41ac	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x1f5d0b69	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x618b7b31	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7f6e6e22	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa3679996	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xab57150c	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xb65e017f	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xd1f37ce8	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf5497ae4	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xff5033b3	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x1b0e3762	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x69476c9f	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x9cc2887b	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x604af55e	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xc7893111	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xde7142f9	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xe4c4ad2d	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xd6abeddf	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xfa544461	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0xc614b4b9	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x009153db	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x046b7a30	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0x47b47942	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x60d5af34	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xa395f03a	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0xa6d357c7	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xbe0ab298	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xd248d5b0	lapb_getparms
+EXPORT_SYMBOL	 net/llc/llc 0x0935f64f	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x16a4d058	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x43e16bef	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x8cd2be25	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0xba1f8d96	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0xc283dd1c	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xf2bb5102	llc_sap_open
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x01dd7ec0	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0575b73b	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0c5be6c2	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1351070b	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14038d09	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14887beb	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1581e235	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19959074	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1d2bc4dc	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1e9db038	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x243a0b82	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x27f374c2	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2df42fc6	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ecff689	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f321624	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x342d2da8	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x34d52254	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3aad8a5c	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3d6c11f8	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3d719e85	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3dfba9b8	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x428fc019	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4340bc72	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x43516eea	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4489a590	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x45e69ab5	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x463e47d5	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x53181322	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5483686d	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x56764ee1	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5825fcc6	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5d45448c	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5fa709f4	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6125b154	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x62a68613	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x65fd041d	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x69dd6ff2	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d11824d	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6ebc5d9a	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x726ff0f0	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7391edf8	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7a6a7ad1	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7b5e739f	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7e3362cd	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x82972804	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x82bd8e33	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x83f658fe	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x87e16fae	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8b5db2f9	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8dc26646	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8ffabc46	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9174e3fc	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9179158b	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x91ec1a61	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x96e2940b	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x98836fd5	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x992b3fda	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9a73e66a	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9d18cbe2	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9e3729de	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa0e0e11b	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa1af7686	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa306db85	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa8ce60c3	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaa7f1866	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xadad95c7	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaf1a2cec	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb00d230b	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb0bd5914	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb2837a50	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbd4b7a69	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc09ee0b4	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc15bad7f	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc6896beb	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc7ce23ed	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca19f460	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd0caeb0e	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd2b3fd4b	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd35aaa01	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd388e571	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd4ac957d	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xddab3041	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe0c15c25	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe2fb766c	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf2450a12	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf2fbc463	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf613fdac	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf687d3a2	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf7be1526	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf7c15a06	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf93d338c	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfb64acf2	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x1ddce911	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x1ea0862b	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x2d87e8c7	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9265efbd	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xe11cd574	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xee8870d1	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xee8de4f6	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf6e6a852	ieee802154_free_hw
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0f6b2322	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x10a750bc	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x14347387	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3305fd72	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x42d0e548	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x512f61ee	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x536eee3a	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x549fd21d	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x556d16ad	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5c5e3391	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x62d74628	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x63bdb671	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x788db380	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xba2c9ffe	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xcb999fe3	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x0656d625	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x811d025a	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x21c89a51	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x280f6ece	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x8c6425b7	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xeb36506d	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xfd9bf414	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0610965a	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x4aa23796	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x4f2257d8	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x889864ee	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x88d7ddea	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8b280d27	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa37d6eb6	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc468b7a7	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xdd336058	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x14034847	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1a00bb96	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x1fcb2362	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x301a3eaf	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3a2022c8	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x46f6a5aa	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5bc49801	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5f90fee8	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x64f142f3	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x689a8a95	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x68b7285c	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x79d48616	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x862aa1c5	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa283c5a3	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbd012a49	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc3f15f2f	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdfc901f4	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xef22a2cd	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xef9165bd	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xfab04d18	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xfbe2856e	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x00011ad5	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x08df6bea	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x14f73642	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1509d9ea	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x187efdbe	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1c6e4a84	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x218f1b37	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x2748a00e	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x35401c37	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x39c083aa	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3aa4b8e1	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x47520331	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x47c18d77	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4e80f19f	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5b21d3a6	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5d5cf270	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x69c43593	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7034d6cc	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x72b5c817	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7df11a5a	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xac2d88b5	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc07fe4fe	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc3367b1a	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xce46cc7e	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xd5382b51	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xd711d395	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe8f19fda	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xec2d1bcd	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf6d1cae9	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x0c2577c2	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x220673b6	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x2bb935ed	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x2e05c7d2	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x2fefe4d8	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x3ae5a513	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x4667a0ed	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x4f56bfea	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x51bf90a8	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x5c47bb72	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x63d5266a	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x7098d17b	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x792ecd52	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x941f8bf2	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0xa5500424	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xb80cc349	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xc1b56d32	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0xc4afa77b	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xcb322a6f	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xde97104c	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xe993fcc5	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0xea693fae	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xeb925a12	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xed993576	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xf2277e5f	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x1dccbcb8	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x668b3622	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xc36438f5	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xfb6ace41	nfc_digital_free_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x26bd999e	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x30e80782	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x585f3991	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x7c226a1b	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x94f166aa	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xb7221268	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0xdb03c7ec	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xf6e97f7b	phonet_proto_register
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0c5f53cb	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x19764b49	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1b87926a	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2db4c2d4	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2f3a01f7	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3ad7f904	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5586ed31	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x5be08277	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x636225d6	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x92215ad2	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x96199faa	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x989f584d	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb09334da	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb8ce099e	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xce723788	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xea63bcea	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xff689eb0	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/sctp/sctp 0x10d90701	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x6f048488	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x76f500a9	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xfa786bbb	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x78cc22e1	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xc0c895a3	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xcd171495	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x1ef16046	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x6864d4e9	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xf12d642e	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xfaa93834	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x31015c69	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x610cef3d	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xe1a7fb25	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x43644ad3	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0xfefb7f0b	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x038cec99	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x03941a82	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x073cd34b	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x076d90a4	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0af49674	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0b5f1d7d	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0f667f60	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x10d28302	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14396459	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x14bcd9e8	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b4ead3d	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b796c60	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1dd966ca	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1f211945	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1f231fd3	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2963f5dc	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2ccda7ba	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x30daf829	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x323317d7	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x34eef83d	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x35a93239	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x363081c4	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3911912f	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3ab7b65c	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x41660196	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x44128163	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x442b39c2	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4a1d64b5	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4a88ca2e	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4dbfdcee	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4eaf10ad	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x50561882	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x591955de	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5939f6ce	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5a2ee3f7	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x604cc13b	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6391c5d7	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63fc8c9c	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x654f76bd	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69106d02	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6b242045	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6b32f18e	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6fd1e83b	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7119fda6	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x768f177c	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x799919e5	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7b342359	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7c0af7ce	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8095c596	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x81d8cd64	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x82cc5a72	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8769f61c	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8831970a	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b7de347	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fb8d459	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9161e2d2	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93cf06df	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x99cc6901	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9a454370	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa03ff6ee	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa22c0f67	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa26eeb52	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa3f58b53	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa4534107	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa863905b	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa9012ef8	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaf2acdce	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb06298d3	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb2a61be3	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb78dbb8a	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbea73c1f	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbed7f98b	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbfdf7fd4	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc767046b	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc82b2626	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc9493a8a	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd241c722	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd4b0cd99	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd574f303	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd62e5a2a	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdb37a77b	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdbef8da9	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdc1d5878	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdc960c3e	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe131b8c0	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe67fd832	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeb47436b	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf25ca85e	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf3264198	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf94ba88b	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfb2af536	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xff92c4b1	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/lib80211 0x4530a713	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x71dbbbbd	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xbade9f3a	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0xc2eb52dc	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xda3c867b	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xe1cdcf56	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 sound/ac97_bus 0xdf8b1f7c	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0xb654d884	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x582d063d	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x5b207f84	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xa3cc84d3	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe1e12bc4	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x4fb18497	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x0274e1b4	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x0313829b	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x045cee54	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x04630c18	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x06a135fb	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0x07cf9dbf	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0x0b73576c	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x0eefcdb9	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x21e8e43e	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x2df348ef	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x30e0f746	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x34e954a2	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x370e5611	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0x38d29c66	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3a09c5bf	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x3a5975ca	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x3bd860b5	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x3cf9116c	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x3eeb8ae8	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x41e18583	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x461fc68f	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x46e93a13	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0x481ba53c	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4dfe9c09	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0x4ea71d7b	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x52a1166d	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x57d9ad9c	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x5ae45dec	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0x5e221964	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0x6e84f2e4	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x77787566	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x7c7d2784	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x8ccf308b	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa585ff7b	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xae46cdf5	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0xb2d52139	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xbe455bc2	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xc86be2f5	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0xca92b903	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0xcac12364	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xcd5cbaa7	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0xcf46c415	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0xda4ed6fc	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xe3f657b7	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0xe4f0f570	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xed60c3a5	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0xfa842cbe	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0xd739a69d	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x035fabf8	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x080c47ec	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0d0bef83	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1271352c	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x153d9d32	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x15414551	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x164fb9d4	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x19947bb8	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x19af007e	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1c51da39	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1ca086f2	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x243286dd	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2bb47e5b	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2f174580	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39a2c7e0	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3e2133a0	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4149d524	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x47addb80	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4d894735	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4e8ee60a	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52111515	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x597fe308	snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x618d0695	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ede4232	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x73c7a2dc	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x75870b9a	snd_sgbuf_get_chunk_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x87066090	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x8bd94e74	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94b1df21	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa45789d5	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc0023d09	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc0b642a7	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc0f7af9a	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc122a87e	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc94f4ad0	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd7a357d1	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe6eef2ac	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf03f7e7c	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf64e479b	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf6940a07	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf7677b4a	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfa851402	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfc07dc41	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfd71970a	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfd89f98e	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x069a1cef	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0b32cfb4	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x3f1d1815	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x46fe4aa8	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4d05e5c7	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x52c5ae23	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5c619b7b	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6e02a23e	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x739f8f85	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x773b700b	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x87de32c0	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x9eba8b10	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa5729437	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xba64e004	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xbd2243be	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xddc4aa0d	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xefd1c76f	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf0097a84	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf78f5975	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xff8f696f	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x08e6176d	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-timer 0x102322fa	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x36cf1859	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x3a2fa0a7	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0x5b7a9b35	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x60bf4e82	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x7f83813f	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0x8d9f500b	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xad5a189c	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0xb2509175	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc14e5b1e	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0xc18ce879	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0xd108e3ac	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0xfb9f822a	snd_timer_resolution
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xe0f1c8da	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x2bfa1277	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x337c5bab	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5d0b124d	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x82e4f3a6	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8334e14f	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x97730def	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xac12cb8b	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xacb25f45	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xed4d8262	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1ce7af54	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x4cccde76	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x601b0f68	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x71927f3b	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x792eaa21	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x9536176c	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xc5ed19a0	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd474bda8	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xdcae1066	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x06483794	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0ccd78a9	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1cb26504	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1fc8ec58	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2039a3e8	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x33aaf678	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3495789e	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x35ba8296	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4511dcbf	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x491868e1	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5717ef63	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5c0acd14	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x63d63bff	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6768597d	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6d980984	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x72299b17	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7cdf2184	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7fe05c3a	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8be5fcb2	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x91f77c6c	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x96364619	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x97c93827	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x98a64080	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9a37bc7f	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa4316630	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb09d061e	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb8cfb47d	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbcd70aa4	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xcfee0173	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xef532905	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xfb58a73f	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xfbee2ba3	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xb99af9bc	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xeb8d4947	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x00703ee7	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x08177fee	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x421fb603	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x477b69aa	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x6f201ed0	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xb5d77702	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcc73ad70	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcdea6a8d	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x41124df3	snd_ak4117_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0x4375dd6e	snd_ak4117_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xe3a626c5	snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xe8dfa451	snd_ak4117_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf62f0b03	snd_ak4117_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4117 0xf7172868	snd_ak4117_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x292d27b5	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x7b995b6b	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xca447adc	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xfdcf176c	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x612538cf	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xbc27f828	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x272dc6d1	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x301c884d	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x6bd9672e	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x83a8c70d	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xb007c2b6	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xcd19fa1a	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x0b2829df	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x270927c3	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x2f4d4a3d	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x3b34e08d	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x3c0f4390	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xe63a0fff	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x20e04762	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x4aa360f5	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x6bad05e0	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x9535e39d	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x988b66ee	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x997849df	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xad655abd	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xc484c866	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xd10c5d1a	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xf78f619f	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x0e075ed4	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x33f621ca	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3a911fe1	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x44e1b250	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x574eed80	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5d66aaaf	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x72219d98	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x91338b74	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc192e5c6	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc4fd1109	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe00241d6	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe10b624c	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xebdfb867	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xec67dd39	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf4222eaa	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfce3f64b	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xffa70687	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/asihpi/snd-asihpi 0xf4a9ca93	hpi_send_recv
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x0ec2fda1	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x3310ae14	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x59a38a12	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x5a9d3962	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x72a3d56a	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x7c00f93f	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xa37001cd	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xbb87afd7	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xc5de2c01	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4e11dbe6	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xda887cb0	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xf0da810c	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x050c791b	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1c0b8093	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x2956e565	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x36549bf0	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3d8bfbbc	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x4f073c6f	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x59054820	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6c2a737e	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x79d30a97	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x7eb7ffac	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x86ae0773	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x91010684	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x9d42a475	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa4de3391	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xabb7bfca	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb5b42779	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xc8cef583	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd7fc428c	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xda7c8a55	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xddaaabcf	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf7589640	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x1766fd4f	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x1f50bc75	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x684d0eeb	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xab096eae	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xbcef71e8	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x083807b0	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xe764c12f	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x45ad9485	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x6ebb892e	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x3951dacd	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x864aa2c0	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xd8d94405	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x157da348	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x2b4623bd	sof_tng_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x5e25cf8d	cht_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0x8639b9f0	tng_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xaabb51a4	byt_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xb6a9c964	sof_byt_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-byt 0xbbaa5e80	sof_cht_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x25c1d224	hda_codec_i915_exit
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x49630e8d	hda_codec_i915_get
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x62f8c37e	hda_codec_probe_bus
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x6a6b27f3	hda_codec_i915_init
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x86e460b9	hda_codec_jack_check
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0x9367e54f	hda_codec_jack_wake_enable
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda 0xf0d22ec5	hda_codec_i915_put
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x37ffeb4c	sof_cnl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x423b0ba2	sof_apl_ops
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x5b5be595	apl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x61cf31b7	icl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0x703e1716	tgl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xacf31f39	ehl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-hda-common 0xf4d48b52	cnl_chip_info
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x036fc70c	intel_pcm_close
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0x80b87b8f	intel_ipc_msg_data
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xa80acd16	intel_pcm_open
+EXPORT_SYMBOL	 sound/soc/sof/intel/snd-sof-intel-ipc 0xf626f6e5	intel_ipc_pcm_params
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0096228b	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x06abdffc	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0ba99c9c	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0e102d37	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0f30cf9a	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0f54f11f	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1378ae06	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x190cdc40	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1a3d18f1	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1fb08232	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x273f34e1	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2e306539	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3328dc9f	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x391ffdf9	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x44fe8c52	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4541ee41	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5b7b0fcd	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5d207d7b	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x611bb482	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6419717b	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x67f0dc6e	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x73dd9227	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x74d2f98c	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x791ecc17	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7c7fb5d8	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7d59cb4c	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x81716906	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x866a1f34	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x87e899e6	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x92a1c9b2	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x93e7c15d	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa3af6ef5	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa755cec6	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa862d2dd	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc5fd1ce9	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc8030087	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcc8baf3c	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd129d264	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd2f0339f	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd93677bc	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe14ddf45	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe471bdaa	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xea3f6bb1	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf1814b1c	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf3675391	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf55103f0	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/xtensa/snd-sof-xtensa-dsp 0xab624e88	sof_xtensa_arch_ops
+EXPORT_SYMBOL	 sound/soundcore 0x066250a5	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0x43f58b3c	sound_class
+EXPORT_SYMBOL	 sound/soundcore 0x64a8dfa3	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc9750459	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xd07616b5	register_sound_special
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x39e4cd67	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x505234fa	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x573b80e2	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x92da9bb7	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xae8ef5da	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xf1c30777	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x293ac667	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x34ac95ae	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x48f920c4	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x7d95566f	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x85659341	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97bb24f2	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9db98086	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xe2935f8c	snd_util_memhdr_free
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x8e133e98	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x0f78a577	ssd_set_wmode
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x27bc41d3	ssd_set_otprotect
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x280ec48c	ssd_get_temperature
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x304d5d57	ssd_get_label
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x477aed37	ssd_get_pciaddr
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x7a083c0d	ssd_register_event_notifier
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x85a08e93	ssd_reset
+EXPORT_SYMBOL	 ubuntu/hio/hio 0x9d74ce49	ssd_bm_status
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xc60cfdf7	ssd_get_version
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xd45c0215	ssd_submit_pbio
+EXPORT_SYMBOL	 ubuntu/hio/hio 0xe4902906	ssd_unregister_event_notifier
+EXPORT_SYMBOL	 vmlinux 0x0003cf81	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x0012ca91	audit_log
+EXPORT_SYMBOL	 vmlinux 0x001e835e	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x004a6b87	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x00575a22	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x005e2db3	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x006ae898	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x00799f4d	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x00875c82	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x0092b59d	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x00a0d6ba	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x00a4b044	amd_iommu_deactivate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0x00be3898	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x00c4bc49	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x00d65d07	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00e618da	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x00fa69da	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x00fe4844	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01079db3	clk_get
+EXPORT_SYMBOL	 vmlinux 0x01162091	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x0122eeb9	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x0136fee8	nla_append
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x014c58ce	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0x0151648d	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x0168cb29	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017c7748	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x018d80f2	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0199844d	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01be918b	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01f3aca5	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x01fc212e	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x020e6780	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x023d1b90	wrmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x024c6ad3	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x02582dff	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x026abcbd	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x026b183e	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x028062a9	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x0283e368	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a7fdd9	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02c656b6	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL	 vmlinux 0x02e10a21	vga_switcheroo_register_client
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f454af	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x031bc3ff	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x033ade3b	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x0349c702	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x03501f46	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x0355dec5	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x0362046f	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x03684cb9	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x036f6925	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x0374165b	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037d7b69	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x03824b83	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x038dc633	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x03945527	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03ad6b93	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x03bfc219	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x03c2110d	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x03e265f1	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x03e732ff	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x03e99903	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x03eb073a	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x03f29a9d	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x0405f1f3	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x040e0fbd	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x041b36e1	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x041beddc	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x0454021c	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x045fffe5	eth_header
+EXPORT_SYMBOL	 vmlinux 0x04779f27	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x047b2f7e	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x047e94de	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x0488eb39	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x0494b856	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x04963a03	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x04b0f812	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x04c62fd7	__memset
+EXPORT_SYMBOL	 vmlinux 0x04ce6777	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0x04e457b6	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x051b381b	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05229103	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x053585dc	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x05382b5c	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x054617c4	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x056ae9c3	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x0575c8bd	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x0577253a	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x057ba76d	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x057ef1e6	put_disk
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05bd7ccf	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x05c10314	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x05d84424	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x05e95e5d	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x06052f8d	__memmove
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x060cb986	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0633b52f	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x0635f438	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x0639f1b5	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x06535567	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x069aac90	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06af750d	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06ee8280	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x072beba3	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x07371c51	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x07409aa2	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x0769b6ae	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x0777e852	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x07806601	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x078628df	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x07949853	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x079ccaec	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x07a54d40	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07a898d2	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x07a9ff68	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x07aa1171	would_dump
+EXPORT_SYMBOL	 vmlinux 0x07ad457a	vga_switcheroo_get_client_state
+EXPORT_SYMBOL	 vmlinux 0x07c32dc1	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07cd37d8	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07d27a0a	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x07ee5698	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x07f010e8	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082a3f35	__module_get
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08303ac5	x86_match_cpu
+EXPORT_SYMBOL	 vmlinux 0x08376678	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x083abb43	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x084fca70	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x08544e4d	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x0858aa26	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x0864a565	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x08991534	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x08a62909	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x08aaf5e3	node_data
+EXPORT_SYMBOL	 vmlinux 0x08c04fea	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x08d2e720	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x09029ab8	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x0919cc0a	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x0928752b	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x093a219c	ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x0944c43f	node_states
+EXPORT_SYMBOL	 vmlinux 0x09557248	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x0970fa02	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x0982edea	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09af091d	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x09b26d78	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x09bd6c1b	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d07ea1	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09d83474	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09f53e59	file_modified
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a013b9e	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x0a01a3d7	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x0a0d4a73	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x0a0eb477	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1817c8	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x0a1d348d	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a245eed	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a41d56f	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x0a706e5b	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x0a760593	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a8dab14	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x0a9c20e7	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0aadff90	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x0acbb590	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad10eb8	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x0adba32c	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0x0aeeb10a	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0affcf8c	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x0b053cec	native_write_cr4
+EXPORT_SYMBOL	 vmlinux 0x0b1a81b6	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b320cfd	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x0b425574	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x0b54d29f	eisa_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x0b5cb4e3	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b812a2d	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x0b86ba5f	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x0b8b951c	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x0b948d1d	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x0bb84a55	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x0bbe997b	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bcb6026	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x0bdbb196	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x0c015c27	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x0c0d39d0	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c1b9f06	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c492d7e	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x0c4d151c	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x0c5b88b0	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x0c68067e	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c7a5a2f	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x0c88956a	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x0c8e18b8	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x0c990daf	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x0cb7678e	proto_register
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cbdccd8	cpu_tlbstate
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cd3b1dd	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0cd9de48	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x0cec4cb1	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x0ceddf9b	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x0cfc86e4	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x0cfd0874	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x0cfe1ea2	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x0d022ffb	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d100c7d	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x0d26b849	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x0d398b78	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x0d462dba	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d6bc364	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x0d888f49	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x0d93858b	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x0d94c1b5	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x0d9bfe4c	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x0d9fd923	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x0dbcb3f1	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x0ddbdb19	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x0de8c58c	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x0dec7920	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e23b37f	alloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x0e2f105b	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x0e3c3691	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x0e4262c6	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e7e5d4e	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x0e889258	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x0ea98432	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ecea026	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x0ef1f42a	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x0f05c7b8	__x86_indirect_thunk_r15
+EXPORT_SYMBOL	 vmlinux 0x0f076121	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f117c16	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x0f15b659	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f5c6bb1	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x0f68edd8	drop_super
+EXPORT_SYMBOL	 vmlinux 0x0f8076bf	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f9d866b	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faba3c6	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x0fadde3a	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x0fae92ea	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fbf85ca	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x0fc09d46	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x0fccc89b	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x0fcf51a1	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fd907a5	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x0fe36fd5	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x0ff80f59	zalloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x1027d2bd	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x102a59e7	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x102e9a67	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x103da7e3	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x10538f9a	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106826b0	open_exec
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x1075440b	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x107aa408	register_console
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x10888b41	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x109abb17	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c73b50	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x10d188ee	build_skb
+EXPORT_SYMBOL	 vmlinux 0x10d4e61e	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x1108c21e	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0x112525a8	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x11399904	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x114c0d9e	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x119e1279	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x11a8c090	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x11b4a6bb	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x11be491a	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x11c325d9	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x11c72311	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x11c89259	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x11cc1444	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x11cc8258	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x11d317e1	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11fbb14a	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x121ebf77	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x123088b1	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x123e42e8	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x124fbec5	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x12613cf9	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x1291e167	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12b1dbe4	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x12c14dfa	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12cd20ce	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x12d01dbb	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x1316bb72	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x1344d7e6	acpi_enable_gpe
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134ce9ff	ex_handler_clear_fs
+EXPORT_SYMBOL	 vmlinux 0x135850e1	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x135fe41b	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x1368850e	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x137064ea	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x137e9534	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x13811419	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x1389619c	__max_die_per_package
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13cf4982	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13dc2628	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x13e50110	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x14094e97	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x1415394c	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x142b094a	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x14436558	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x144fd203	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x14523394	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x146a0a1d	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x14714020	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x1481bfce	kset_register
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14a71c84	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x14bf34cc	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14e94dfc	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15014035	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150e3657	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x150edb9d	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x151db93f	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x153e1550	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x154fbb84	finish_open
+EXPORT_SYMBOL	 vmlinux 0x15561012	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x1573ee9c	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x15a2dd26	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x15af3dd4	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x15b24003	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x15b67279	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15d47b74	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x16000eb4	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x1604383e	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x1605984d	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x1607c0a5	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL	 vmlinux 0x161e8e12	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16301b34	wrmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x163c758f	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x164b1d95	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x1659122c	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x165e4374	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x16702277	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x16816ff0	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x169b02ac	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x16b1eddd	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0x16bd9d7a	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x16c4ccf6	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16d34f93	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16f4018c	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x17084635	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x172b27bf	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x173ea903	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x1743c4df	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x1749eaca	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x175e33fb	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x17909153	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x1791eacd	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x179ff1a4	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x17a9e48e	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x17ad1ae7	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x17be68ca	acpi_clear_event
+EXPORT_SYMBOL	 vmlinux 0x17c07a2d	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x17dac164	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x17ed3b3c	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x182a4dc4	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x182fc689	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x184ba428	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x1850fc60	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x18691909	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x187a4ecd	__tracepoint_read_msr
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x18ae1e43	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x18b29d36	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x18e41d91	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18eeed22	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x18eefabd	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x1917a0ba	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x19242e38	efi
+EXPORT_SYMBOL	 vmlinux 0x19263ded	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x192937b6	fput
+EXPORT_SYMBOL	 vmlinux 0x1945b919	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x19719ca5	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x197809e8	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x197cf542	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x19831979	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19becdad	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x19c2574f	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x19c50687	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x19d6cfe9	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x19df99b9	acpi_finish_gpe
+EXPORT_SYMBOL	 vmlinux 0x19f4883a	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x1a0f3b68	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a23962d	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1a36ef7c	vga_put
+EXPORT_SYMBOL	 vmlinux 0x1a3fcc21	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a53174b	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x1a56ba71	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x1a5e0a59	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL	 vmlinux 0x1a77da73	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a81e8b4	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x1a90e8e2	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1ac01bd5	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1ad672b3	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x1ae7e33a	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x1aeef91e	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b18e95a	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0x1b4398c8	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1ba2c051	amd_iommu_pc_get_reg
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1baf0ee7	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bce04be	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1bdf0b33	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x1bf6e832	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x1bff851b	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x1c144393	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1c1b9f8e	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x1c2071ae	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x1c260c28	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x1c2c3ffc	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x1c30b588	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c37d0c1	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x1c3d3b9a	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x1c4263d2	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x1c580014	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c5e3897	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1c648c5e	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x1c6c1e59	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x1c870318	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0x1cb26067	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cee3f49	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x1cf5d048	vmap
+EXPORT_SYMBOL	 vmlinux 0x1cf67602	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d19f77b	physical_mask
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d1f6f72	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d33db79	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d52a957	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0x1d53700b	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x1d69f5f7	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x1d91675a	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x1d96bf36	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x1da0ae57	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x1daf1bdc	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL	 vmlinux 0x1dc93ce8	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x1dcbd687	__pte2cachemode_tbl
+EXPORT_SYMBOL	 vmlinux 0x1dd21fd3	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1dd5fe5e	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x1debf472	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x1dfd6b55	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x1dffe4d2	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x1e059469	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x1e080d73	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0a4552	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e1a5fa8	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e39b585	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x1e40bec6	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x1e41727e	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x1e5f40f1	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x1e625171	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e663a3d	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e949b7e	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1eaaca70	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb922a3	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x1ed8b599	__x86_indirect_thunk_r8
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1f03fe56	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x1f09e439	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x1f0bd366	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x1f0c1911	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x1f156e85	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x1f1e8bc4	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x1f1ff18d	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x1f23ab64	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x1f2f4c5c	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x1f31f46c	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x1f3bbf01	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x1f71c214	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x1f7a2f44	mntput
+EXPORT_SYMBOL	 vmlinux 0x1f888941	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x1f9350b4	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x1f95d6f1	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x1f9da3b2	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x1fa23edc	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x1fa3ce89	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x1fa8756a	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc0cc7c	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL	 vmlinux 0x1fc247e7	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd1fa89	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x1fe6df6f	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1fef128b	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200095b1	vga_con
+EXPORT_SYMBOL	 vmlinux 0x20082a60	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x200ca34d	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x2014b27d	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x2021187d	pv_ops
+EXPORT_SYMBOL	 vmlinux 0x2030368c	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x20402a6b	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2051b6a5	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x2059e0e3	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x2063180d	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x2076bd85	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x207cb8ad	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x209162a2	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20a8545a	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x20ba4f3e	rdmsr_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x210ad230	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x211130c1	alloc_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x2146ffd3	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x2171f8b8	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x2177bd71	acpi_disable_event
+EXPORT_SYMBOL	 vmlinux 0x2189a194	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x218bf726	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21ab7d31	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c05bc4	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x21c29325	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x21d00833	sock_create
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21f0b16f	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x21f157c6	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x22300267	dst_init
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x22415798	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x2242483c	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x22444432	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x2248c233	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x2257dc6d	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x227b1718	tboot
+EXPORT_SYMBOL	 vmlinux 0x227b2be3	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0x229484cd	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x2298d66e	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x22a6a68e	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x22af1ed0	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22b68c5a	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x22de4931	amd_iommu_register_ga_log_notifier
+EXPORT_SYMBOL	 vmlinux 0x22e0b324	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x2314f88f	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x231b538d	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x231e99ab	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x233e1df9	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x2340eea6	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x234190d6	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x2393610f	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23d0b2f7	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23fc3737	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x244edad7	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x2455ec4b	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x2469025d	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2470b92f	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x247b0cd9	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x249124ad	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x24a0b85c	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x24c42da0	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24f82a47	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x2501311c	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x25057306	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x250a2ceb	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x2523c2df	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x2540a529	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x2597a68c	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x25b074d8	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x25db1577	do_trace_write_msr
+EXPORT_SYMBOL	 vmlinux 0x25e55ac9	single_release
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25ff9c98	vga_switcheroo_register_handler
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x2614ced7	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x26209b51	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x26301a6d	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263ed23b	__x86_indirect_thunk_r12
+EXPORT_SYMBOL	 vmlinux 0x265b9595	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x2678ac67	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x26818485	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x26948d96	copy_user_enhanced_fast_string
+EXPORT_SYMBOL	 vmlinux 0x269be5eb	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x26aed17f	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x26c11248	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x26d24cb8	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x26db8c5d	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x270704a6	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x271c825e	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x271f153a	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x27206b1b	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0x27228de4	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x2741c9c8	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x2769bda5	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27dbc546	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x27fdc2e0	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x280431d6	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x28170c33	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x2846cc3b	dma_ops
+EXPORT_SYMBOL	 vmlinux 0x285c2a87	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x285dfa45	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x2862a6db	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x289c97cd	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x289d0a1f	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x28aea15c	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x28b0fbdf	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x28c2ae1c	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x28ce472c	serio_close
+EXPORT_SYMBOL	 vmlinux 0x28e09af1	iosf_mbi_available
+EXPORT_SYMBOL	 vmlinux 0x28e53121	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29143d14	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x291540c9	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x291e91ae	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x2935613e	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x295ef768	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x29612c80	get_amd_iommu
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x298a1e4e	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x299696dd	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x299b5d69	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x29ad8e33	x86_hyper_type
+EXPORT_SYMBOL	 vmlinux 0x29d77c75	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29e65e20	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x29f8b98c	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x2a04cf1a	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x2a051199	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a42b9d3	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x2a44eddb	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x2a56d5f5	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x2a6634a9	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x2a6e4e67	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x2a7583c8	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x2a80cd19	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x2a8a5302	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa03462	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2aac44d4	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x2ab72214	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2abed8f6	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x2ad1c2cb	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x2ad2d14b	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x2b0cb276	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x2b405eec	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x2b46c2e9	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x2b57f102	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b69c51a	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x2b731873	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x2b8b6f74	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba6bee5	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x2bb16a92	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x2bb1e215	pps_event
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb89025	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bbbc8f4	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x2bc09e4d	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x2bce27ce	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2bd7b25b	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x2bdf8873	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x2c136fa9	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0x2c24529d	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c40f6d5	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c544d87	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x2c6d2c5e	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c92b5cd	console_stop
+EXPORT_SYMBOL	 vmlinux 0x2c93ae17	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x2caf63d1	topology_phys_to_logical_die
+EXPORT_SYMBOL	 vmlinux 0x2cc26a54	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cfa485c	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x2d0502f5	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x2d099cd2	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d285139	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d43be36	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d66bd5e	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x2d756cea	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x2d834f7e	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x2d86b816	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2d9d73aa	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dbd4265	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0x2ddc9464	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL	 vmlinux 0x2e0ae66f	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e113d64	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e2bd075	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x2e2f394f	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e43a34e	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x2e59b005	simple_open
+EXPORT_SYMBOL	 vmlinux 0x2e6091c7	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x2e66eb1c	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x2e9774d3	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x2ea0a30c	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x2ea2c95c	__x86_indirect_thunk_rax
+EXPORT_SYMBOL	 vmlinux 0x2ec4450b	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ec8d1ed	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x2ec93b17	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2f028261	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f239063	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x2f243e82	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x2f278ac5	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f75c59e	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f8dcf8f	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x2f9957eb	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x2fa21e4b	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x2fa4b670	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x2fc7a72d	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x2fd02b20	inet_accept
+EXPORT_SYMBOL	 vmlinux 0x2fd29dfb	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2feecdbd	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x2ff4a580	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x301b80cc	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x301fa007	_raw_spin_unlock
+EXPORT_SYMBOL	 vmlinux 0x30304aa2	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x305a0b60	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x307a7d76	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x3082cc98	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30971ad6	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b44217	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x30b60987	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x30c494e9	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x30dc72c0	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30f61db4	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x30fefcc5	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x3108049c	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3134cf50	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x3142e5a0	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x316c0c80	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x316faf79	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x3182b070	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31a206c4	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x31a39e88	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x31af3e17	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31ba0a9d	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x31c5a388	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x31cb1880	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x31d57ae4	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x320caf03	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0x322747dc	d_drop
+EXPORT_SYMBOL	 vmlinux 0x3230215a	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x323369e1	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x323c128e	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x32422e6b	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x324683fe	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x3249b5f2	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x324c472e	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x32571d07	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL	 vmlinux 0x3267777c	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x32728a62	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x3299aab7	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x329a61bc	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x32a0a7ae	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x32a692ee	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x32ae5741	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x32ca6a0a	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x32cab4bd	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x33094eac	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x3312f559	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x331f426e	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x3324ef3b	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL	 vmlinux 0x3334da53	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x33402ee2	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x3362a800	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33f05618	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f36627	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x33fd9da4	acpi_get_gpe_device
+EXPORT_SYMBOL	 vmlinux 0x33feb731	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x3441445f	msrs_free
+EXPORT_SYMBOL	 vmlinux 0x3465fb1d	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x347dedaf	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x34802cc8	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x3489859f	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL	 vmlinux 0x3494ff72	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x34982f28	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x349a3d3a	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34ae0166	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x34af9537	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x34b8337c	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x34d12ae1	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x34dc8641	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x34e2dba4	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x34e5791b	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x34f03604	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f89363	acpi_terminate_debugger
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x35128c4f	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3520a877	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x353900f2	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x354b4a1e	acpi_ut_trace
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x358fe07d	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x35906b37	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35acc71e	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x35f2d11c	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x361160ef	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x36119067	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x361b5e95	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x3629b7a6	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x363273ef	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x363796d1	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x363d894b	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x364c526d	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x364e9557	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x365a2306	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3675bf18	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x3687452c	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x36acd8aa	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x36b63e0c	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x36cf7df7	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x36ddf99a	current_time
+EXPORT_SYMBOL	 vmlinux 0x36df6535	amd_iommu_rlookup_table
+EXPORT_SYMBOL	 vmlinux 0x36ea6098	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x36f436de	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x370d12f7	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x371089e2	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x372977d8	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x373f7c5b	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x373fdbd5	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3752af07	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x37766eae	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x3779fb4f	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37a650a8	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37bef29a	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c62dcb	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37d680a4	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37ec17d7	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x37fe1062	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3812050a	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x381c3704	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x38300387	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x383d0a07	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x383e2753	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x3844c292	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x38450650	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x385d0079	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x3866cf4c	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x386ef04b	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x3886ff27	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b15a87	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x38dc4d21	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x38e14dfa	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38e9c6df	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x38f6ed4d	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x39081193	__max_logical_packages
+EXPORT_SYMBOL	 vmlinux 0x39157084	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x39174ab5	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x39180372	pci_map_biosrom
+EXPORT_SYMBOL	 vmlinux 0x392c92d2	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x3944fb92	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x3959cf9b	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x39648ca0	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x396dd5fb	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x39864080	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x39905bd7	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39a58046	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39bd99c4	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x39be43f2	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x39e061ef	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x39e3c030	do_trace_read_msr
+EXPORT_SYMBOL	 vmlinux 0x39f759ff	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a16fd9a	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x3a2b3b4f	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x3a2d1dfa	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a2faf25	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a731b1d	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x3a777883	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x3a858184	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x3a89c38e	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x3a9a84e1	amd_iommu_pc_set_reg
+EXPORT_SYMBOL	 vmlinux 0x3aa2fd22	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3acf5e2e	amd_iommu_domain_enable_v2
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3affe462	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x3b029f48	acpi_install_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b382607	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x3b382a36	filp_close
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b4d8b73	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x3b59c76a	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b6e1740	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x3b7927a6	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x3b7c69ec	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x3b823ca2	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b83610f	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3b9790b4	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x3ba27de1	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x3bb0177f	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x3bc6a7ab	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0x3be43000	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bf3ff28	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x3c03ecfe	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x3c14a596	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c323ba2	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c427f67	cpu_die_map
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c4e4d18	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0x3c6ffdc4	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c998897	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x3ca6bc1d	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x3cb14706	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x3cd1aee1	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x3cd5c9a7	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce6e8e1	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d6187e7	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x3da171f9	pci_mem_start
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dbb84f7	get_dev_data
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dcd493c	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3ddc6c04	x86_bios_cpu_apicid
+EXPORT_SYMBOL	 vmlinux 0x3de5e598	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e0d4c49	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x3e145cc7	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e43c7f1	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x3e745267	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x3e77727a	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x3e7efd00	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3eb868f6	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x3ebaac9e	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x3edf0747	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x3ee1c8fc	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3ef834d0	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f017d23	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f096c48	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x3f09bef6	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f70f7a4	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x3f8285c1	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f8c6622	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x3f960fee	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x3fbc7258	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fcac0ba	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x3fcf8874	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fd95b64	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x3fe2cb14	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3feda3e6	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x4008a92b	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x4011b9a2	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x4016e6b9	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x401a7297	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x40279df2	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0x40375b4e	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x403a9bf3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x40546f27	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x4055a920	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL	 vmlinux 0x40599a26	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x4088ae40	skb_push
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x409be107	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x409d7375	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b8f723	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x40bd0e3f	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d26e94	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40f02e74	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x40f09144	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x40f5ddc2	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x410abad4	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x41118d30	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414ed07c	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x415c77b3	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x41705485	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x4182ac22	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x41849459	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x41987454	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x419a9e8c	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x41a5a524	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x41c1950e	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x41c3427b	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x41c8f373	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x41ce54c0	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x41d700a4	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x41d883e1	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x41e1b98c	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x41ed3709	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x41f22568	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x41f2d067	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x420c511b	import_single_range
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x42215022	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x422d1e05	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4231623a	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x423a8c35	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x4255f9ac	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x4257a7f0	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x425e6532	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x427bf667	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x427d7639	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x4288103c	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x4299cdd7	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x42bab734	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x42bb9093	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42c41fc1	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x42caca77	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x42ddfe98	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x42ed1a42	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x42ee4c5c	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x43021d1c	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43158f75	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x437d12b1	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x437dacff	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x438c7a5d	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x439d91ad	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x43b0c9c3	preempt_schedule
+EXPORT_SYMBOL	 vmlinux 0x43cca925	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x43e5ac3b	amd_iommu_flush_page
+EXPORT_SYMBOL	 vmlinux 0x43f21b4d	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x43f8a8f1	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x44414ff2	iosf_mbi_unblock_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x445a1003	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x4462fb1d	translation_pre_enabled
+EXPORT_SYMBOL	 vmlinux 0x44902cff	acpi_enable_event
+EXPORT_SYMBOL	 vmlinux 0x44953d25	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL	 vmlinux 0x44e7cef5	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x45270e40	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0x452b5129	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x456f04bd	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x457d4868	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x459b4cc3	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x45c8892d	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x45d246da	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x45e2da5f	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x45e8d7b5	native_write_cr0
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x4614cc82	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x461a61cb	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x4629334c	__preempt_count
+EXPORT_SYMBOL	 vmlinux 0x4631ddc0	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x463fc258	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x468219b7	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x46957a3a	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46a98495	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46fee8f6	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x470575c8	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x470c189f	has_capability
+EXPORT_SYMBOL	 vmlinux 0x4719f511	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x47298b2a	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x4740b3bc	xen_arch_unregister_cpu
+EXPORT_SYMBOL	 vmlinux 0x474194d9	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x474ef620	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x475aca3d	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x476fb073	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47833207	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x478bf9bd	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47941711	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x47993046	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a6e8d1	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x47c42a22	cpu_tss_rw
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47c9eeaf	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x47e6c145	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x47fcd492	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x480ef5ce	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x4811816a	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x48175b6c	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x481c503e	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x4836942a	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x48476bcb	intel_gtt_insert_page
+EXPORT_SYMBOL	 vmlinux 0x484c37e1	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x484c8e39	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x4863813a	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x4871cfcf	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x487f704f	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x48966413	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x489ef187	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a0c073	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c090b0	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48c3d72f	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x48d2150c	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x48d50e79	amd_iommu_register_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x48e30637	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x48e5d91d	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x48eacdb8	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x48f37b09	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x48f78718	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x48fb2019	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x49022f5f	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490fa7b8	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x491809f2	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x491ac89e	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x49412692	dqget
+EXPORT_SYMBOL	 vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x4959b317	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x495e378d	__pv_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x4964ee13	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x497982fb	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x49817742	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x498cd744	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x49929dbf	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x499485b1	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x49959adf	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49a02f2b	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x49a2b6bb	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b37e51	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x49c41a57	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x49cf041f	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x49d5c347	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x49e78a1b	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x49e95ca4	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x49ee5e39	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x49efec21	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x49f5349c	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x49f857cb	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x49f9002a	dump_align
+EXPORT_SYMBOL	 vmlinux 0x49ff72ee	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x4a02016f	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x4a24c64e	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x4a451253	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a9dd28c	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x4aa62285	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x4aae5967	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x4aafa578	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abbe8b7	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0x4abd7a6c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x4ac09292	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x4ad0ecc7	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b0442aa	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b0e5482	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b5bcb1e	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b60d1c8	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x4b6c047c	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x4b77872c	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x4b807322	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x4b909c24	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x4ba61a93	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bb7ccb4	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x4bc4244e	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4bd86023	fb_class
+EXPORT_SYMBOL	 vmlinux 0x4becb9b5	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bff34be	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c1ff90d	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c3e2a0d	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x4c3fedf4	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x4c413366	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c54a801	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x4c7735a4	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x4c9d28b0	phys_base
+EXPORT_SYMBOL	 vmlinux 0x4ca87930	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x4cacc839	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x4cb068ab	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc40320	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x4ccd378a	_raw_write_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0x4cd3a9d8	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x4cd5bc5e	rdmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0x4cdc400e	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0x4ceda664	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x4cfe78ed	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x4d06a8a2	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x4d1c94d9	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d3a10ea	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x4d3c3a1f	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x4d6df13a	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d760048	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4d7d0f06	send_sig
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d946801	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x4d9747d5	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4daf334a	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x4dc66d8e	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x4dc98d2c	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4de976e9	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4deafe33	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x4ded7762	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df18463	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e0f5346	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e32caf1	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e4bc470	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e91bf2b	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x4e94d2bf	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x4e9ea227	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ea582e6	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4eca578d	dput
+EXPORT_SYMBOL	 vmlinux 0x4ecbabee	__brelse
+EXPORT_SYMBOL	 vmlinux 0x4ecbded0	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x4ed074fd	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x4ef2a41f	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2203de	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f2a93ab	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x4f4e9b35	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x4f54c567	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f55c711	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x4f780165	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x4f9d6053	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fcc8ad2	ex_handler_uaccess
+EXPORT_SYMBOL	 vmlinux 0x4fd1ce4c	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x4fe378c0	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0x4fe5b961	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x4ff6da16	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x5004bb4c	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x5005cb2e	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x502b7c81	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x50472da3	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x504e4a72	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x5057caed	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x508e72c2	tso_start
+EXPORT_SYMBOL	 vmlinux 0x509187ff	dns_query
+EXPORT_SYMBOL	 vmlinux 0x5098d595	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b1f5e3	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c44a20	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d68377	arch_phys_wc_del
+EXPORT_SYMBOL	 vmlinux 0x50ef5b2c	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x510051da	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x51123633	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x512557b7	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x51445f00	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51760917	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x51817afd	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x5196fa08	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x51b3d15b	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51dde2a3	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x51e8bf19	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x51f84e16	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x51ff57d9	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x52091b4b	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x52216caa	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x522d41f2	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x52492357	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5273e35c	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52ab1a0d	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x52d1f494	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52ebb34c	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52fae915	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x53036747	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL	 vmlinux 0x532f7673	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x53311d9b	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x53569707	this_cpu_off
+EXPORT_SYMBOL	 vmlinux 0x5391fd62	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x53953eaa	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x53a52b9c	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53bd3b11	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x53bf29d6	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x53c400ed	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x53d40c06	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x53deefc3	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x53e16ca9	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x53e45ad8	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x53e7e6ea	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x53eefde9	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x53f4527f	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x53f688ba	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x54088c3b	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x541488c2	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x54175c5f	acpi_read_bit_register
+EXPORT_SYMBOL	 vmlinux 0x541abc8a	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x542618b0	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x54397763	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x543bf9dc	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x5456d56b	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x5458b893	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x545a91f3	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x5462788c	dev_close
+EXPORT_SYMBOL	 vmlinux 0x546c2cb2	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x547e3344	acpi_disable
+EXPORT_SYMBOL	 vmlinux 0x54a24b6f	md_error
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54b0ea71	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54db17b7	misc_register
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54e78820	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x5500616b	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x55069d9d	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551caa0c	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x554adb2d	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55570569	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x5557c099	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x556422b3	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x5564430e	amd_iommu_complete_ppr
+EXPORT_SYMBOL	 vmlinux 0x5567a507	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556cca46	x86_apple_machine
+EXPORT_SYMBOL	 vmlinux 0x556e6691	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x5576d570	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5578f3f3	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x557dc4e8	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55d241e8	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x55d7dcb5	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55f95e07	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x56243d39	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x56382403	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564a8d9c	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x56870e2d	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x568d401a	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x5697921f	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x569ce12e	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x56a8810c	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x56c6566f	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56ce6107	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x56e26e70	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x57041e38	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x570de20e	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x5730b8d9	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x573f910a	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x5763cd73	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x579ccfa5	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x57a83d62	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x57bb4c1b	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57ded28f	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x57ff10f4	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x581595a3	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x58176e39	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x581de194	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x58308893	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x5838958e	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x584a265e	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x584a5faf	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x5870f99a	km_report
+EXPORT_SYMBOL	 vmlinux 0x5873b51e	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x587f22d7	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0x588b1c80	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58920cd1	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x5893c23c	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b16c4f	seq_release
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58b8c6b9	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x58bbffc0	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x58c1e121	bdevname
+EXPORT_SYMBOL	 vmlinux 0x58c971ef	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x58e03777	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58e6b48e	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x59061760	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x59150161	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x591bf4bd	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x592264c0	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x5933c165	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x593c1bac	__x86_indirect_thunk_rbx
+EXPORT_SYMBOL	 vmlinux 0x593f5dd4	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x5947b088	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x595e7786	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x59707dc1	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x597f54c0	native_restore_fl
+EXPORT_SYMBOL	 vmlinux 0x59928eeb	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x59995d2b	set_pages_wb
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59b1f050	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59bec317	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x59c39414	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x59c4298a	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x59d70430	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x59e70cea	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x59f475ce	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a245f6d	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x5a258cea	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x5a2b48e6	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x5a2d232e	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x5a350e63	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x5a3580ef	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x5a3d1ccc	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x5a4247fa	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5a2271	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5a5af629	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x5a6278f8	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x5a7c018a	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a9c6165	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x5aa0f0d0	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x5aad5c66	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x5aca1c8b	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x5ae1d300	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x5b10ebc5	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x5b1f20da	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b2fe8ee	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b599d9d	filp_open
+EXPORT_SYMBOL	 vmlinux 0x5b59c604	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x5b64e75b	km_query
+EXPORT_SYMBOL	 vmlinux 0x5b6595f2	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x5b70392d	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x5b713a39	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5b857ea9	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x5b858b5a	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x5b883886	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x5b97dfee	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x5bd8aee4	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x5be1b965	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bea24b3	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x5bf440f9	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x5bf998a8	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x5bfc81e5	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x5c21ceba	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x5c22ab02	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x5c248bed	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x5c2a67ff	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x5c30662a	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x5c35100f	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c55e7a5	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x5c626518	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x5c72c438	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x5c8af682	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x5c9ce9b1	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x5ca12f28	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x5ca92a46	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x5ccf0309	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x5ce618e9	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5ce86678	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5cfeccbc	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x5d114419	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0x5d1740c4	amd_iommu_get_v2_domain
+EXPORT_SYMBOL	 vmlinux 0x5d3421b6	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x5d462d40	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d4b5621	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x5d5630be	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0x5d67a245	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x5d70cf09	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0x5d764777	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x5d8f15d5	phy_start
+EXPORT_SYMBOL	 vmlinux 0x5d94b800	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x5dacc895	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x5dae2ef8	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x5dc24ee0	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0x5dea7717	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x5dfb3410	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e0e0d27	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e3abf14	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x5e3beb34	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x5e4a0f23	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e6206cc	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x5e6465fa	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x5e677989	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e7dbba9	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x5e81b9b1	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea07f12	get_acl
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ebdcfc2	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5eeb1448	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f208f4f	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x5f3c2dbb	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x5f56663b	rdmsrl_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f6e9270	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x5f729c48	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x5f83b629	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f98bdb6	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x5f9b63df	__bforget
+EXPORT_SYMBOL	 vmlinux 0x5f9ecbb8	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x5fad5061	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x5fba61ad	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x5fc0b225	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x5fc72721	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fee9c71	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x6006e53b	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x600b8788	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x600d3c09	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602b4fe8	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x6032ca4f	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x60339718	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x603db1ec	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6056a2a9	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x60595b27	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x605dcb0b	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x60607b2a	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x606700c6	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x6072de3d	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x607fef91	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0x6085601b	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x6085858a	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x60879f5d	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x60884f4e	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x609f51a2	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60aaff1b	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x60ac8487	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x60adac2f	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60b77d58	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x60c23a2c	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x60c34655	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x60c5dbfd	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x60ccc9ab	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60f1b4d7	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x60f56b14	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x60f800f8	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x60f94eb6	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x6108113c	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x61228809	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x61382fe4	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x614ba56a	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0x6150186f	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x616d67cf	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x616e32cc	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x619b9fad	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61ac4624	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x61b14ebb	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61bb7f18	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x61d43cbe	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0x61e920d9	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x62068586	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6218ef8e	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x6226b9fa	machine_to_phys_mapping
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6254332c	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x62600f0d	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x62675e65	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x626fa2df	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x6284feec	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x6291ffc6	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x62a2ecf5	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62e0ed7c	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x62fd0331	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x631631d3	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x63248749	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x63325953	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x6349ae63	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x6359d853	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x636257f7	get_ibs_caps
+EXPORT_SYMBOL	 vmlinux 0x6379fd04	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x63925f5f	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x63a45e51	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63afeaf2	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63cd1a6d	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6400c40f	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x642036e8	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x642347d2	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64467b41	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x6477edba	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64afd6d1	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x64b6f6f5	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64c2bfa8	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x64c718b1	bio_split
+EXPORT_SYMBOL	 vmlinux 0x64ced0b8	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x64d10efb	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x64e25074	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x64ec8b37	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x64f3d504	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x650cd376	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x6533de3a	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x654b1938	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6563bc62	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x65648b17	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x656a0373	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x6595b10b	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a32de7	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x65a4d64b	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x65abd517	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x65b992ac	xen_alloc_p2m_entry
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1a5af	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d7946a	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dbd6cd	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x6600df65	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x66011feb	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x66036d85	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x6609df2b	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x663182c9	acpi_get_gpe_status
+EXPORT_SYMBOL	 vmlinux 0x66371296	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x665796ce	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x66788eba	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x66a2a9b8	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66d10224	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x66dc1f0d	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66f86684	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x66fc154e	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x670b7197	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x67153dc6	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x672ec1a6	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x67428f3e	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6784d8ca	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x678b39c4	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x679bee95	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b5dff3	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67e22b28	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x67f0809a	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x68069563	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x681e0ecc	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x6851664e	wrmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x68618c13	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x687dd697	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x689979aa	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68b0f5f7	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x68dd56b0	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x69136674	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x693934c4	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x6952c729	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x6956f6a9	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x69856822	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL	 vmlinux 0x69931471	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x69acdf38	memcpy
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b2502e	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x69d1b4d6	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69faab47	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a147fca	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x6a261b78	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x6a2a6ced	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a6cc019	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6a759b0f	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x6a8b9128	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6aad04bb	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x6aba8c58	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0x6abd9148	vga_switcheroo_unlock_ddc
+EXPORT_SYMBOL	 vmlinux 0x6ac38d58	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x6ac96710	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6adf9d29	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b019aed	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b28efc0	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b3a89b2	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x6b3ae461	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x6b4756aa	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x6b4e5ebc	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x6b533015	processors
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b8283be	convert_art_to_tsc
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b8d1640	pci_biosrom_size
+EXPORT_SYMBOL	 vmlinux 0x6b96b909	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x6baebdad	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x6bb43e6c	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6be576c8	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x6c06f255	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x6c07ba32	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x6c08d03a	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x6c0e62ea	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c26123f	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c4d2763	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x6c59cdb6	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x6c5b0cf0	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c76d691	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x6c7ecaee	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x6c817ef6	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x6c8ce9f2	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6c8dbeca	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x6c929d93	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x6c9e885c	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbd7990	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x6ccd6b78	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x6ccfd99c	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x6cd79d7e	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d04db2d	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d13e5fd	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d3210f9	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d3bd14e	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x6d3d7fa1	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x6d40e2f6	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x6d431561	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x6d53a705	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d5d88b5	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d6544f3	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x6d8f3898	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x6da6aed5	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x6db92e4a	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6dd7c308	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6de1897c	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e11cfe4	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x6e258881	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e2ec079	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x6e327f1e	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x6e50a52b	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x6e55f713	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x6e5973a0	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e6f41ae	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e7ffe55	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x6e848c9d	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea7575d	acpi_dispatch_gpe
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ece6345	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x6ed408df	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x6ed7953b	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6edc4d0b	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x6eed5059	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x6f02c139	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x6f0442ec	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x6f0c3795	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x6f2e2385	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x6f34427a	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x6f3f8509	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f446636	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x6f6c6a28	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x6f709689	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f85389e	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6f98723b	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fc40ea1	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fd44435	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x6fd5ff1d	key_move
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fff5d18	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x7010087e	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x7022a4d1	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x702f0748	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x7040fff9	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x706c4b11	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x706c9beb	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70b11417	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x70ce9d46	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x70dfdb34	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0x70e67d01	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x7145218b	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7164a92b	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x7168539b	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717f6ecb	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x7184c539	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x71984c66	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71aab47e	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x71acdaec	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x71af0de4	d_move
+EXPORT_SYMBOL	 vmlinux 0x71cd840b	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x71eefb21	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x72078265	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x7227a8a7	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x722f1b6e	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x723d57b0	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x723dc3c9	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x7260e249	___preempt_schedule_notrace
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x727b872c	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x728b0c3a	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x729c148f	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL	 vmlinux 0x72aa659d	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72cc7bfe	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72ebac2b	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x72f2ef2a	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x731c91ae	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x733292d2	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x733ba9a8	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x73491cc8	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x7354def7	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x7360e36f	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x736b5662	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x736ea821	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x737268fa	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x737aee12	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x738ed8c4	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x73ab1129	set_pages_array_wc
+EXPORT_SYMBOL	 vmlinux 0x73ae1ff1	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x73dd54eb	irq_fpu_usable
+EXPORT_SYMBOL	 vmlinux 0x73e91263	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x73f1d37f	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x73f251c9	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x73f89e2d	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x73fdf855	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL	 vmlinux 0x7424cf2f	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x742d332a	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x744742d2	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x746e371c	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x748ccee5	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x74a95496	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x74a9ad50	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x74ae4eda	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74c8f219	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x74cfce4b	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x74d20d6e	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x74e0cf2b	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74ed9301	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x74f67d44	d_add
+EXPORT_SYMBOL	 vmlinux 0x74fc1199	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x7514cc0c	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x7538e87c	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x754617a6	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x75476edf	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x754d539c	strlen
+EXPORT_SYMBOL	 vmlinux 0x755f4ba3	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x7572aa16	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x7581733b	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x758d9d50	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x75943e25	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0x75af84ec	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x75b06ae1	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x75e66519	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x75fef3e7	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x76058a02	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x761e5ccf	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x76238dbe	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x763c551a	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x764572d5	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x766e22a7	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x767dce4b	acpi_disable_all_gpes
+EXPORT_SYMBOL	 vmlinux 0x767ddb02	set_memory_wc
+EXPORT_SYMBOL	 vmlinux 0x76812f6f	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76b006e3	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x76b398bd	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x76bd138d	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x76cbf93c	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76eb278d	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x76f79664	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x76fb08a7	amd_iommu_unregister_ppr_notifier
+EXPORT_SYMBOL	 vmlinux 0x770475d7	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x771699cc	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x771b27d5	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x772a7c77	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x772c3eec	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x772c5585	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x7745ddfd	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x7757aebe	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x776e7ba5	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x777c25e8	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x777d4a84	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x778f8d4c	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77b73f25	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77d196f7	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x77d22957	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x77d8e6ea	bio_put
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f5df35	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x78060d12	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780fdfd1	intel_enable_gtt
+EXPORT_SYMBOL	 vmlinux 0x7812c047	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x7815e8d6	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x78287d92	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x7841e953	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x7851a72e	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x785344ca	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x7868c108	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x78734b3b	acpi_register_debugger
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x788b2aa2	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x789c34db	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a4bbcb	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x78bd056d	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x78c38af2	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x79036412	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x790801be	file_path
+EXPORT_SYMBOL	 vmlinux 0x79229539	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x794658e6	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x7948d301	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7981af65	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79b4c15a	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x79b4ca29	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x79bbfe57	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x79cf687c	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x79df9633	ioremap_encrypted
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a151adb	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x7a1b13d1	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a261278	current_task
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a3ffa04	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a50932b	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x7a7febc9	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x7a88da87	iosf_mbi_write
+EXPORT_SYMBOL	 vmlinux 0x7a8a7275	fget
+EXPORT_SYMBOL	 vmlinux 0x7a8dba2f	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a99fb9f	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa907e8	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7acbf137	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad6bceb	bdput
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7aec9089	clear_user
+EXPORT_SYMBOL	 vmlinux 0x7afb2ddd	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x7afbd613	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x7aff77a3	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b022fda	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x7b0bd539	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x7b2438d4	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x7b24dbd4	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x7b2eb527	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x7b3b41b1	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b4f28ff	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x7b50421b	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0x7b790c98	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7ba0fdbe	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x7bb0bf23	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbd2476	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x7bc81a47	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x7beaab94	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x7bee4f01	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x7bfa781a	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x7bfd640c	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x7c048041	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c1a5c40	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x7c4251a4	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c628411	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x7c657449	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7c6875d5	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7ca64c71	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cd8d75e	page_offset_base
+EXPORT_SYMBOL	 vmlinux 0x7ce0299b	sock_efree
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cf0644c	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cf56970	sget
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d03c3f9	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x7d051b53	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d628444	memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x7d63a379	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x7d76f74b	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x7da1009a	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x7da3a9ca	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x7dad75f3	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7daef2b7	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x7dc3a78f	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x7dd0a954	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7dfc288d	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0a5c30	ex_handler_ext
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e514bfa	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x7e526bfa	__x86_indirect_thunk_r10
+EXPORT_SYMBOL	 vmlinux 0x7e61210a	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x7e7bcf26	acpi_map_cpu
+EXPORT_SYMBOL	 vmlinux 0x7e82c209	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x7e938c87	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x7ea07606	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x7ea5ad6b	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7ed148bd	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x7ee43263	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x7ef899c2	init_net
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f2ae6e5	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x7f3c3c3d	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f54723f	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f6cd1b8	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x7f788438	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f9c5049	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x7f9fde39	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x7fbac8dc	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x7fdc03f1	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe8a973	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x8021bc02	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x802d9bb2	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x803c4a8d	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x803d9b39	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x8044b775	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x80464199	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x804af87c	wrmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x80571af0	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x808cadeb	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x808d2714	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a46043	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80c41e33	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80ce2ddc	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x811c41a0	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x8124eb6d	console_start
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x813cb2b0	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x813e0b4c	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x813e8ece	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x815ff661	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x81606454	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81a30ea2	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x81a3fb7c	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x81ad8c99	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81f63cd2	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x821c2d28	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x8230cf9f	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x823c19ea	iosf_mbi_unregister_pmic_bus_access_notifier_unlocked
+EXPORT_SYMBOL	 vmlinux 0x82413e0b	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x826b55a3	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x8291d5a1	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x82a2efc5	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x82ad9a5b	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x82bae49d	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82f36010	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x830b3ad7	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x8332e63b	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x835646fc	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x8382f85c	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x8396002c	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x83b53b1c	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x83b7935d	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x83b825e5	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x83c5a67e	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x83c75d66	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x83d23910	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x83e2b02b	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x83e3baef	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x83f593e3	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x840e1bf8	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x846221df	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x846d839f	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x846fd076	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x8475b400	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x8477473f	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x847f5bea	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0x84861341	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x84af5124	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84c8a5a0	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x84c912a4	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x84c927e2	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x84d10699	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x84d2ec5e	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x84fd6587	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x8522150d	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x8525d2c3	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x8529bf7b	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x854d9cd7	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x855e4720	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x8598eac6	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x85a786e2	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x85a8a33b	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c18288	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x85c6719b	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x85d2b5cf	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85ec0ee9	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85f741dd	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x86172fc0	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x861de976	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x8624c873	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863bb0b3	bdget
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865efa5a	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x86646702	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x866b87ca	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x868797ff	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x8693f36b	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x86aaa598	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x86c7272b	iosf_mbi_read
+EXPORT_SYMBOL	 vmlinux 0x86ca9208	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x86dfa47d	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x86e0bd54	bmap
+EXPORT_SYMBOL	 vmlinux 0x86e83978	arp_send
+EXPORT_SYMBOL	 vmlinux 0x86ea031a	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x86f27420	iosf_mbi_block_punit_i2c_access
+EXPORT_SYMBOL	 vmlinux 0x86f2cbf4	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x87211c79	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x873859cf	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x874cde0c	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x87513d91	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8776f927	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x87b342a9	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87caf3fc	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x87dd86cb	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x87e96279	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x87f133c7	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x87fbbc9e	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x88013290	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x88097cb6	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x880ae728	can_nice
+EXPORT_SYMBOL	 vmlinux 0x881182d2	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x881ea74f	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x8844ba06	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x884dc688	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x8867b88f	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x886be1e3	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x8875d40d	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x887d3493	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8882cc9e	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x889d975f	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x88a91f8b	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88d9aa3c	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x88db5600	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88f03555	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x8903d171	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x890aa6b2	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x8915eff8	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x89167d38	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x891c202c	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x8921c1db	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x89364412	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x8972e5a0	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x89a21e5a	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x89a3205a	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x89aee946	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89d28bec	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x89e6357c	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x89f1d03d	amd_iommu_flush_tlb
+EXPORT_SYMBOL	 vmlinux 0x8a015417	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x8a05827d	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x8a14208f	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x8a14c558	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1ff4e9	vga_switcheroo_init_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x8a35b432	sme_me_mask
+EXPORT_SYMBOL	 vmlinux 0x8a369561	new_inode
+EXPORT_SYMBOL	 vmlinux 0x8a39f59f	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a6c7139	acpi_mask_gpe
+EXPORT_SYMBOL	 vmlinux 0x8a72359c	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x8a78657f	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a881339	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa4e42f	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x8aac5c99	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ad29bab	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8ae141ab	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x8af5c036	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b17ba76	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x8b3ee304	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x8b457983	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b7a04ce	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b8553c5	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x8b881d38	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x8b9099f4	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b966b63	sn_rtc_cycles_per_second
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba8b7a2	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x8bc0eae2	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x8bd1c87c	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x8bd577d0	acpi_ut_exit
+EXPORT_SYMBOL	 vmlinux 0x8bdb4b20	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8beadd35	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x8c114246	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c2e76d2	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x8c3253ec	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x8c332ad5	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x8c40ab18	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x8c46ec3b	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x8c6801e1	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x8c8e86de	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x8c9bd07c	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8caea3a7	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x8caf7bde	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cbcec8b	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x8cc637bf	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8cce6f93	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8d131b38	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x8d1ed720	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x8d2f0cbb	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x8d4385b8	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d805ec2	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x8d8ba998	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x8d9bc69c	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8db22efe	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0x8db404e3	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x8db46d21	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x8dc9cffb	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df7e8d6	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfbeab6	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x8e00c4ba	notify_change
+EXPORT_SYMBOL	 vmlinux 0x8e16fdde	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e1ba2af	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e2bd7c9	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x8e2d1236	ex_handler_wrmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0x8e4335c3	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x8e4f1845	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x8e50feaa	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x8e5d82ac	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x8e5df630	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e64c64b	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x8e663d0f	zalloc_cpumask_var_node
+EXPORT_SYMBOL	 vmlinux 0x8e8148b9	seq_read
+EXPORT_SYMBOL	 vmlinux 0x8e8a7917	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x8ea7a53f	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x8eaec400	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x8ec5e0f9	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x8ed9d821	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x8ee57310	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x8ee9d9e4	vga_switcheroo_client_probe_defer
+EXPORT_SYMBOL	 vmlinux 0x8eeac639	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x8eedfe4c	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x8ef911f7	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f066b34	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x8f09da41	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x8f1fb0b2	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL	 vmlinux 0x8f32bfad	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x8f356002	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x8f38d383	ex_handler_default
+EXPORT_SYMBOL	 vmlinux 0x8f3d70f8	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x8f579739	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x8f596b91	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x8f5e9771	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x8f6659b1	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x8f6f160c	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x8f746257	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x8f80bf11	acpi_install_gpe_raw_handler
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fed8c91	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x8fee4ecb	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x9001361e	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x900e3eef	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x9016286c	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x901fe6e0	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x903ec9ee	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x904ab29d	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x909569b9	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x90a1999e	find_vma
+EXPORT_SYMBOL	 vmlinux 0x90a68a42	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x90aff6ab	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0x90dbc3cf	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0x90e303c1	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x90fc0821	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x910e15d7	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x912bd342	amd_iommu_domain_set_gcr3
+EXPORT_SYMBOL	 vmlinux 0x914230c8	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x9154d156	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL	 vmlinux 0x916102e1	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x91737ebd	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x9176145b	acpi_install_global_event_handler
+EXPORT_SYMBOL	 vmlinux 0x917d09b5	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x918a414d	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x919e2a50	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91abb991	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x91b4b64f	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x91cf2c15	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x91d707da	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x91f1d218	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x9211e899	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x9216edb5	set_pages_array_uc
+EXPORT_SYMBOL	 vmlinux 0x922287bf	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x92269f8a	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923b156b	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x92439661	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL	 vmlinux 0x928c2b99	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x928d116e	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92a51e56	acpi_debug_print_raw
+EXPORT_SYMBOL	 vmlinux 0x92afd807	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c5fc3e	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x92c8f4ef	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9302e6cf	arp_create
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x9315665c	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x93230c68	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x9356bc97	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x935c9013	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x935fdb1c	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x936276d5	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x9365bc58	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x93738c06	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x93868ffe	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x93903c0f	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x93917746	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x93a2bf4b	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b18a9a	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93b408fb	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x93cc652a	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x93fd3461	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x940d90ee	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x943352b0	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x9437275f	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x9439d628	sk_free
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x94580a74	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94b37aff	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x94b4623b	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x94b79cc2	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94cbce8b	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x94cf06b6	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x950855ab	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x950bb2d8	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x951e4f25	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x9523fcd0	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x952c17f5	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x954fabd5	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x955a832f	___preempt_schedule
+EXPORT_SYMBOL	 vmlinux 0x957015f9	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x9573da80	module_layout
+EXPORT_SYMBOL	 vmlinux 0x959682b2	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95bf9515	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95e941a2	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x95fa4368	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0x96050dc8	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x961264cb	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x9625695d	acpi_install_gpe_block
+EXPORT_SYMBOL	 vmlinux 0x9635dcb8	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x963dcba1	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x9659f312	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x965aa986	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x966d0584	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x966fbfba	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x967cc731	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x9688cbf0	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x9695048a	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x96a1e946	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x96a4f4da	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96eab78b	iosf_mbi_modify
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x97212af8	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x9724de1b	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x97651e6c	vmemmap_base
+EXPORT_SYMBOL	 vmlinux 0x9765c7b4	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97964898	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x9797f993	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97ad474d	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b6f341	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c74d1c	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x97e9c5c5	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x97eb1b99	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x9807a594	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x984cea7a	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x9853d999	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x985bfd8b	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x985da9a2	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x98700771	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x98805a05	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0x98a0afbb	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x98a7e5a3	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x98c020e4	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cfad6b	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x98d914e7	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98fe9563	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x992423be	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x99259185	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x9949f0a2	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x994f2d4e	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x995cfb21	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x9973d6ab	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x9987d720	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x9998c0aa	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99a87e3d	ilookup
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99f047c5	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL	 vmlinux 0x99feadd8	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a3d31a7	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a6e6049	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a9cca21	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x9aa9250c	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab64cea	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x9ad7a582	iosf_mbi_assert_punit_acquired
+EXPORT_SYMBOL	 vmlinux 0x9ae74919	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x9afae45d	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b286817	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x9b30e22e	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b371a20	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b51e442	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x9b6adbe3	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x9b6ba502	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9b885391	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x9b892a95	follow_up
+EXPORT_SYMBOL	 vmlinux 0x9b962c0f	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x9ba10ccf	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x9bc4a04f	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x9bfbfe62	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x9c0c7ca0	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c1244d6	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c47c5fa	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x9c4842b1	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x9c4d7d22	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x9c699c0e	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x9c7f9606	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb986f2	vmalloc_base
+EXPORT_SYMBOL	 vmlinux 0x9cc5fd1a	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cdd11d6	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce9ea6d	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x9cf951ed	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x9d099a39	acpi_remove_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d17b396	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x9d17d88c	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x9d17de13	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x9d2907e4	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x9d2dfc0c	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x9d46e2ba	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x9d588d71	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x9d613bd7	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d70541a	native_save_fl
+EXPORT_SYMBOL	 vmlinux 0x9d74f070	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x9d79dbc6	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9d947117	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x9d9ffdb6	mount_single
+EXPORT_SYMBOL	 vmlinux 0x9da74661	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x9db5872b	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dd428c2	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e4d0c67	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e64fbfe	rtc_cmos_read
+EXPORT_SYMBOL	 vmlinux 0x9e683f75	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x9e70ada9	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e977831	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea0e290	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eab8d85	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec2f3b1	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed3f030	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9edc2ff9	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x9ef7bedf	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x9ef85209	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x9f0a187f	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x9f36fa6c	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f5ec09a	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x9f66296a	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x9f67c8b7	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x9f72d003	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x9f88050e	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9f9a6efb	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x9f9c2b5b	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x9fa25082	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x9fa28bbe	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fbc1e96	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x9fcb46ec	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x9fcfb1f3	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe461d2	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x9fe8198e	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff993d2	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa00d1e8f	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xa00db03d	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xa0292a47	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa037f43e	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa0465033	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xa047abfd	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xa04b5626	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa06cdd7a	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xa06f2d84	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa08348ad	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa084f79f	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0bb231c	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xa0cbf669	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa113c2f8	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xa11f0d74	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xa120a2b0	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1261b56	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0xa13f53aa	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0xa14432a8	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xa14c2782	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xa1628304	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xa16c8613	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xa1741937	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xa19167d2	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xa1b92e14	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL	 vmlinux 0xa1bedd72	amd_iommu_pc_get_max_counters
+EXPORT_SYMBOL	 vmlinux 0xa1c8d654	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1e08a33	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xa1e602be	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xa1ef6223	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0xa1f23387	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xa1f9a134	__x86_indirect_thunk_rsi
+EXPORT_SYMBOL	 vmlinux 0xa202c74b	padata_start
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa2604d86	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa273ef6e	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa28d4626	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xa2b0e20c	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xa2b4459b	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0xa2c928b4	bio_init
+EXPORT_SYMBOL	 vmlinux 0xa2dac3da	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa2db2039	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xa2ea76a5	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0xa2f69bed	legacy_pic
+EXPORT_SYMBOL	 vmlinux 0xa2fcbf8c	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xa3127813	dev_open
+EXPORT_SYMBOL	 vmlinux 0xa335ae4c	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xa33ab901	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa3561077	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0xa3707a35	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xa38f21b9	amd_iommu_update_ga
+EXPORT_SYMBOL	 vmlinux 0xa39bda09	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xa3a2b848	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xa3c5126c	proc_remove
+EXPORT_SYMBOL	 vmlinux 0xa3cefaa0	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0xa3dc60e2	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xa3df9952	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0xa3e4f871	acpi_initialize_debugger
+EXPORT_SYMBOL	 vmlinux 0xa40697bc	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xa40c1efe	path_get
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa4147053	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xa4162fa2	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0xa4191c0b	memset_io
+EXPORT_SYMBOL	 vmlinux 0xa42bc2fb	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xa43b4b8d	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0xa448196c	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xa449f1b2	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xa453066d	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xa466b3ae	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xa47dfdbb	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xa48d598e	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xa48f56f7	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0xa49eb582	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xa4a4725e	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4c7ac31	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4e86411	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xa4ec40ed	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xa4f2fd21	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xa4f5ea15	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0xa4faf62a	acpi_disable_gpe
+EXPORT_SYMBOL	 vmlinux 0xa4ff0015	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xa4ffbfce	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0xa507125e	acpi_clear_gpe
+EXPORT_SYMBOL	 vmlinux 0xa50bcff0	x86_cpu_to_apicid
+EXPORT_SYMBOL	 vmlinux 0xa51a154f	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xa51db8f8	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5607d85	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xa583bb2b	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa5a3a1a0	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xa5a7c9b4	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5ce11ff	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xa5e55057	rdmsrl_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xa5ece47c	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xa5f2d7aa	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa6045608	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0xa616b170	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61d1be7	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xa62d38c1	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xa62f1439	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xa644ce03	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xa6526687	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xa6534151	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa6550e2f	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa69fa65e	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xa6a8cac7	d_delete
+EXPORT_SYMBOL	 vmlinux 0xa6b16b91	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0xa6b3b039	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0xa6c9fbf1	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xa6d41a4a	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xa6da3716	skb_put
+EXPORT_SYMBOL	 vmlinux 0xa6df0211	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xa6e42a6b	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0xa6fd099b	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0xa6ff7bdb	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL	 vmlinux 0xa72035f9	xa_get_order
+EXPORT_SYMBOL	 vmlinux 0xa72cfb7d	ioremap_wt
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa75bd31d	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0xa75dc3a2	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0xa75ff8d4	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa780fedc	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xa78447c4	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7a2207f	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xa7cc79c6	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7da9a86	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xa7db40ae	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0xa7dc7f80	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xa7dcc0a6	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0xa7dff706	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7e5e890	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa805ecfc	acpi_release_global_lock
+EXPORT_SYMBOL	 vmlinux 0xa80f4f8f	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0xa8120023	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa836ba02	wrmsr_safe_regs
+EXPORT_SYMBOL	 vmlinux 0xa83b31e4	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xa8416efc	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa8701595	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa87131df	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0xa88f5d62	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa8a54b4b	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xa8b6a673	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0xa8bb4300	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xa8ca42d0	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8dca4d3	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8fbac1d	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xa8fd427e	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa9365cc6	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xa94a09bb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xa954e9c9	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0xa961a23a	dev_load
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa975801f	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xa9785b49	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa993a3b9	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9a41acf	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xa9a8e17f	arch_phys_wc_add
+EXPORT_SYMBOL	 vmlinux 0xa9a9fb75	seq_write
+EXPORT_SYMBOL	 vmlinux 0xa9c72303	amd_iommu_pc_get_max_banks
+EXPORT_SYMBOL	 vmlinux 0xa9e0a3d4	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xa9efcd29	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa22bb88	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0xaa29ba43	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa4419ed	make_kuid
+EXPORT_SYMBOL	 vmlinux 0xaa4c14f5	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa7a57e1	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xaa96d466	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0xaa992f70	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0xaaaad123	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0xaab4f53b	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0xaac6bd8e	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad1f55b	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaaecb9c9	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0xaaecf4a4	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab133945	module_put
+EXPORT_SYMBOL	 vmlinux 0xab15a79d	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xab2ab055	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab398104	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab411c39	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xab43f15f	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0xab4dbf4c	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab65ed80	set_memory_uc
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab6bc450	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xab6c93dc	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab6d7118	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0xab6db659	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xaba1889e	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xaba76866	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabb526bc	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xabc8ed91	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabd44d72	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xabdead68	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac13983c	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0xac13c1a2	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac1abcb7	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac690205	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xac71f577	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0xac75e6e0	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xac7fa9a9	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac95071a	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xac961781	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb9f9b6	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xacc47bb5	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacddde98	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xacea8173	acpi_debug_print
+EXPORT_SYMBOL	 vmlinux 0xacf298ec	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad1036a2	amd_iommu_activate_guest_mode
+EXPORT_SYMBOL	 vmlinux 0xad1b501d	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xad1dd296	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xad20ff61	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xad2951a9	ex_handler_rdmsr_unsafe
+EXPORT_SYMBOL	 vmlinux 0xad336bed	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xad536c91	x86_cpu_to_acpiid
+EXPORT_SYMBOL	 vmlinux 0xad596562	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xad6b2df6	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad8e60d8	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xad8f3b10	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xad8f9d42	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xad975cf9	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xad9e724b	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadcefc9d	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xadf1ae02	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xadf678ab	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xadfa2eaf	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xadfb5027	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae11442a	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0xae2254eb	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae5e7c16	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0xae70f916	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xae742fa0	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xae7d3d9b	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xae81de2e	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xae8d6eb8	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xae92af6d	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xae9db2b0	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0xaeba0b3f	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaec82753	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xaed1f762	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xaedb3375	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xaefaa189	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xaefb1d70	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0xaf13d89b	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf4ff708	seq_path
+EXPORT_SYMBOL	 vmlinux 0xaf5333a2	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xaf59cf37	eisa_bus_type
+EXPORT_SYMBOL	 vmlinux 0xaf6438ea	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf6ed2b5	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xaf7f68f0	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0xaf93d9f2	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xafa3581b	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL	 vmlinux 0xafbb978a	iget_failed
+EXPORT_SYMBOL	 vmlinux 0xafcc0d22	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0xafd5ff2c	amd_iommu_v2_supported
+EXPORT_SYMBOL	 vmlinux 0xafd7c9b1	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb0277386	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xb0303df1	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xb04862e4	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xb04c3297	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xb04e6b8a	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb076e86d	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0bb575e	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0cd7a00	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e602eb	memmove
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb0fd6e67	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb13047ba	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0xb13fe576	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xb1499ff2	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb157e22a	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb19a5453	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0xb19bda2f	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xb1ad3d53	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0xb1ae099b	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1c45e79	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb2015354	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xb217cca6	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb22220bb	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xb2275e3a	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb22f4b3d	logfc
+EXPORT_SYMBOL	 vmlinux 0xb231e618	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xb2331c36	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0xb23e3f67	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xb270526d	intel_gmch_probe
+EXPORT_SYMBOL	 vmlinux 0xb27851cf	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xb27a190e	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xb27d17a6	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xb29348a8	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2aaa643	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2cc0b4d	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xb2e3ce34	sock_release
+EXPORT_SYMBOL	 vmlinux 0xb2ea1793	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0xb2ef3cf2	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xb2f105f0	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f74fb6	intel_gmch_remove
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32a5973	acpi_ut_status_exit
+EXPORT_SYMBOL	 vmlinux 0xb32caa6e	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xb3393bd5	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0xb349206e	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb3635b01	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb3863a67	acpi_set_gpe_wake_mask
+EXPORT_SYMBOL	 vmlinux 0xb3962c6d	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xb3a2dfdf	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb3a61035	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xb3b89113	bio_devname
+EXPORT_SYMBOL	 vmlinux 0xb3bab8a6	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xb3bec0e6	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3e07012	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0xb3e5d420	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xb3ecb4eb	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb41bfdc9	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb4240d1d	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0xb43e4945	load_nls
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb4538c4d	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb46f913b	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0xb47cca30	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4b02e16	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xb4b0df42	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0xb4d64e8b	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f28bd1	__put_page
+EXPORT_SYMBOL	 vmlinux 0xb5245fad	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL	 vmlinux 0xb53d639b	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb546a0ca	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0xb56184d5	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xb566b632	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xb56a739c	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0xb5731984	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb5746cd5	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xb57c7b3e	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xb58309af	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb59d78c5	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ab892d	uv_undefined
+EXPORT_SYMBOL	 vmlinux 0xb5b9acda	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xb5d233c9	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xb5dc7ae5	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0xb5ded749	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xb5e6503d	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0xb5e65ba1	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5f9848e	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0xb601be4c	__x86_indirect_thunk_rdx
+EXPORT_SYMBOL	 vmlinux 0xb60804c6	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xb61ffd49	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xb627f317	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb63ac1e8	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb655751c	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb665f56d	__cachemode2pte_tbl
+EXPORT_SYMBOL	 vmlinux 0xb66d9aea	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xb67451fa	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xb674a534	acpi_unmap_cpu
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c3231	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fb1df	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb68aaf95	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xb68b6249	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb69d17c9	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xb6a071a7	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xb6a1f8ff	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6b6a7ac	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xb6c10138	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6f11e40	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0xb6f5702f	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xb70008b2	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xb7043204	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xb7141e5e	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xb721e681	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb7593ddc	iosf_mbi_unregister_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xb768bc0d	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb779c17f	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb79b8e92	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xb7c5b848	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7ca13ae	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xb7d0ab5d	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xb7d76e0b	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0xb7e63618	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xb814e18a	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xb81980c2	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xb81cc87a	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xb81d1068	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb8396ae6	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xb86570b0	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xb86bbe38	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0xb86ce950	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0xb86f74c5	free_cpumask_var
+EXPORT_SYMBOL	 vmlinux 0xb894047e	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb89c9eac	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0xb8f53825	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xb8f59703	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0xb8fad0e0	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xb8fda019	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb9084835	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb91b3daa	skb_append
+EXPORT_SYMBOL	 vmlinux 0xb941a9fa	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb9772e0e	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb97ece0b	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xb97f5873	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xb97f7045	acpi_install_gpe_handler
+EXPORT_SYMBOL	 vmlinux 0xb984ad42	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb993879f	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xb9950a98	convert_art_ns_to_tsc
+EXPORT_SYMBOL	 vmlinux 0xb9a5301f	seq_open
+EXPORT_SYMBOL	 vmlinux 0xb9a99b67	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9b119fb	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xb9b3f80f	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xb9c05c82	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0xb9c23cea	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0xb9d36b0a	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xb9dfbcb8	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xb9e276cf	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xb9e7429c	memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9e97739	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xb9faa10f	vfs_link
+EXPORT_SYMBOL	 vmlinux 0xba090a4f	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xba0a78a2	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba32e143	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba5164ec	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0xba5481da	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xba89ef51	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xba8d7bc5	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xba8ea31e	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xba919127	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xbaa842c6	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xbaabb3bf	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbae619ab	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xbae7eaec	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb13595e	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xbb1bac24	acpi_unregister_debugger
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb4bd811	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb518c6d	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xbb5ff912	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xbb7991a1	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0xbb8e169a	vga_switcheroo_handler_flags
+EXPORT_SYMBOL	 vmlinux 0xbb9d40d2	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0xbba623bb	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xbbac9aa2	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0xbbb3811e	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xbbd996ca	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0xbbe7490a	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbf18fd5	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0xbc0561ab	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xbc11e1d8	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xbc1a05db	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc442f9b	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xbc47d812	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xbc486671	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xbc528e97	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0xbc52dfc4	inet_bind
+EXPORT_SYMBOL	 vmlinux 0xbc60f556	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0xbc7dae11	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xbc98cdcc	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0xbca27ed2	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb18740	unload_nls
+EXPORT_SYMBOL	 vmlinux 0xbcbddd65	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc21c99	request_firmware
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcd5c808	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xbcda1049	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0xbce1bfbd	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0xbce53d9e	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xbd05c549	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0xbd05eea0	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xbd0d6c44	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0xbd14fa08	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xbd3265d5	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xbd3b9972	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0xbd40ff20	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd623178	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd893bf1	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xbd9579d9	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xbdb06376	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0xbdb897e3	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xbdc7ab94	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xbddbd38d	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xbded9390	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0xbdfb6dbb	__fentry__
+EXPORT_SYMBOL	 vmlinux 0xbdfee71e	get_super
+EXPORT_SYMBOL	 vmlinux 0xbe0110e7	acpi_set_gpe
+EXPORT_SYMBOL	 vmlinux 0xbe20c6d5	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xbe2492a6	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xbe2cc5b3	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5bd6bc	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe663b21	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe791f04	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbeb9832a	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0xbebad96f	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0xbecba4e5	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0xbecde27a	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef75cab	free_task
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbf11ab9b	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0xbf218c3b	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xbf3193ec	acpi_unregister_ioapic
+EXPORT_SYMBOL	 vmlinux 0xbf692a80	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xbf6a882c	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0xbf7d1462	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xbf805cf7	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xbf86bafe	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xbf968ac4	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfb87d5d	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfc7d3c6	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xbfdcb43a	__x86_indirect_thunk_r11
+EXPORT_SYMBOL	 vmlinux 0xbfe1bdf8	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xbfe8f03e	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xbfeb5ff4	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff39d8b	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0xbff3d16b	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xbfffad37	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xc01cb46c	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc02645c6	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0xc026dbdf	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0xc032b67b	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xc0372117	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xc049457b	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xc059ce27	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xc0647c2c	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc07fe525	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0xc08594b8	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0xc08769b3	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc09b1838	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b985cb	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0bf566f	vfs_create
+EXPORT_SYMBOL	 vmlinux 0xc0d8e687	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0xc0e62cfa	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xc0e994d8	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xc0fd49ee	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc111ae64	intel_gtt_get
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc12b7157	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xc12e8d8c	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xc1365323	acpi_enable_all_wakeup_gpes
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc165b8dd	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc18f66ea	dump_page
+EXPORT_SYMBOL	 vmlinux 0xc1ab642a	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0xc1b311ed	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xc1c9a599	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1d905e2	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xc1e61a93	tty_name
+EXPORT_SYMBOL	 vmlinux 0xc1eacabc	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xc1f6c9b3	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0xc1ffd595	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xc20dd9aa	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc2462512	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xc2587cbd	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xc2625adc	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc278c965	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xc281312c	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xc2842ee7	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0xc285394e	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xc29957c3	__x86_indirect_thunk_rcx
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2bf142b	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xc2cb2fbc	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xc2d6b061	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xc2e27903	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e97a3c	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xc30463b3	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3114bd7	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xc325aee3	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xc329f673	vga_switcheroo_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc33d7ccc	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0xc3662a93	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc38fca09	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xc3b29bb3	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3d0eef4	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xc3dbf392	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0xc3e150a9	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc406fcbf	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xc414ba90	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc443c2f6	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xc444348c	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xc457d0a3	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xc45e724a	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xc45e9989	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xc45fa230	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0xc461c5ed	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc48cc6c0	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xc4948bc5	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xc499511d	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xc49b91c5	release_pages
+EXPORT_SYMBOL	 vmlinux 0xc49bae72	simple_link
+EXPORT_SYMBOL	 vmlinux 0xc49cbe7a	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0xc4a4eca5	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4b6aea2	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xc4d21e11	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0xc4f48a85	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xc5090765	serio_open
+EXPORT_SYMBOL	 vmlinux 0xc5135166	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc52a7603	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0xc53e488f	ether_setup
+EXPORT_SYMBOL	 vmlinux 0xc552d625	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc5664491	_raw_spin_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58df508	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xc5949488	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0xc595d595	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xc5981a5f	sock_register
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc59eaf78	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xc5a1ce72	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xc5af2736	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xc5b352d0	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5c30ced	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5e4a5d1	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60f5e8b	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc622556f	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xc626a3dc	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633b8ab	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63ed7d8	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0xc65a3e6c	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc661c5ca	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc683810b	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc6910aa0	do_trace_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xc6afcdde	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xc6c25f83	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f8e37d	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc709c90a	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc74008df	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xc74d142d	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc78a34e5	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc79e1d5b	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xc7a1d02c	set_pages_array_wb
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b41043	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7dd03f6	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xc7ea2d4a	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xc7fd41ee	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc81e042c	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc8351d3a	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc8624bb0	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc874261b	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc889f710	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8a95ce6	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xc8b93e3f	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc8f375c1	_raw_read_unlock_irq
+EXPORT_SYMBOL	 vmlinux 0xc8f9098f	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xc8fcb198	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xc90a7287	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0xc917511e	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xc91d54ee	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xc9216a82	recalibrate_cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xc92a14c0	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0xc9363d1f	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc9443e09	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0xc9469917	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc963b7b8	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0xc96b3980	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9802be2	task_work_add
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc983d630	amd_iommu_domain_direct_map
+EXPORT_SYMBOL	 vmlinux 0xc99687e2	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9aab9f2	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xc9af736d	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xc9c10ea2	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xc9c7eea3	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e2d022	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xc9f34c1d	acpi_acquire_global_lock
+EXPORT_SYMBOL	 vmlinux 0xc9f38df2	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca24be72	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xca2f49ac	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xca3615aa	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0xca405237	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca6bf576	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xca802116	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xca87c349	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0xca888403	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9362a8	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xca9d673b	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xcaab15a4	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0xcaae036f	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xcaafbba1	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xcab33e75	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0xcab541c1	boot_cpu_data
+EXPORT_SYMBOL	 vmlinux 0xcad0f0d3	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcadb485d	eisa_driver_register
+EXPORT_SYMBOL	 vmlinux 0xcade0a71	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xcaf01f35	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xcaf0e695	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf32eb9	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb5235ed	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xcb5f9091	padata_free
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb7f69f6	user_revoke
+EXPORT_SYMBOL	 vmlinux 0xcb8541bb	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0xcb9a1740	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba41ae2	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd5487d	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xcbdb01f5	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xcbeb4cb9	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xcbfac83e	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc040ca2	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc2e0f2d	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0xcc2e0fb0	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc37c48f	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc51b832	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc7499a7	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0xcc93c5c5	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xccc1a27d	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc21fac	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0xccc3ced8	cpu_info
+EXPORT_SYMBOL	 vmlinux 0xccd4715a	start_tty
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xcce94fae	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccf629e3	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xccf92cfc	update_region
+EXPORT_SYMBOL	 vmlinux 0xccfad4ca	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd01b8e6	acpi_attach_data
+EXPORT_SYMBOL	 vmlinux 0xcd0be62f	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xcd143e21	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0xcd1d1b83	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd2fbe66	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xcd341d63	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xcd6199ac	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xcd65105b	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0xcd7bfeec	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcd8de06e	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xcd9bfec5	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xcd9e8684	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xcdabe5c0	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0xcdae51da	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xcdb488d7	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0xcdbf353e	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd0c0ab	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0xcdd8be7f	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcde7cfe7	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0xcde9051d	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xcded9252	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0xce18a726	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0xce1b4637	single_open
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2e88b3	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xce4158bd	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce59aab1	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce6bdcbf	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce83fccd	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xce8b1878	__x86_indirect_thunk_r14
+EXPORT_SYMBOL	 vmlinux 0xce8d76ce	rproc_add
+EXPORT_SYMBOL	 vmlinux 0xce9fb949	param_set_long
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb1c3a3	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0xcec689dd	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xced22525	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf10b2a8	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf24b1a5	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf4240f8	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xcf4ea7d5	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf54728c	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xcf82aa80	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf93de68	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0xcf9925ef	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfce03eb	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xcfd884a8	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0xcfe9876c	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0xcff1452e	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xd01865b1	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0xd01c6f4b	fd_install
+EXPORT_SYMBOL	 vmlinux 0xd025519c	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xd026d368	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xd03dadde	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd0429d37	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xd04aa141	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0940e7a	follow_down
+EXPORT_SYMBOL	 vmlinux 0xd09f101b	dqput
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0c16b85	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xd0dca490	get_cpu_entry_area
+EXPORT_SYMBOL	 vmlinux 0xd0f284b8	mmiotrace_printk
+EXPORT_SYMBOL	 vmlinux 0xd0f45447	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd1162c7d	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xd116cd7a	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd14b777b	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xd16bb643	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd18d6be3	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd19bd2e1	__tracepoint_write_msr
+EXPORT_SYMBOL	 vmlinux 0xd1adc6b2	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xd1bf0b24	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xd1ca473b	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xd1d15f1b	uv_hub_info_version
+EXPORT_SYMBOL	 vmlinux 0xd1d1b765	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1e13639	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0xd1eb78a0	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xd1f60a89	arch_io_free_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL	 vmlinux 0xd1fcbdd8	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xd2015dde	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xd201fc7b	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd22caa4a	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xd24d7cdd	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd26b5bf9	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0xd26e35e7	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27f2709	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0xd29f6aee	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd2a9df72	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xd2c28fd1	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xd2d1f211	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd3010c2b	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xd31cb0af	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xd3229de9	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0xd347c068	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xd348b269	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35b1e28	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xd361eacd	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xd368c2b1	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd38cd261	__default_kernel_pte_mask
+EXPORT_SYMBOL	 vmlinux 0xd3978ddc	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xd3d0cb1b	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40ec838	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xd41bae18	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xd42adf53	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xd4534779	pid_task
+EXPORT_SYMBOL	 vmlinux 0xd454adec	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd45d8e52	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xd4740467	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4b4ae53	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4d78ef4	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd5091015	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xd51c1996	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xd520d3ce	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52d1230	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd54d40a7	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0xd55bb7b7	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0xd56da8bd	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd5981b60	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd5a48161	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xd5b109e1	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5cdb952	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xd5cf7fdf	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xd5d82647	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xd5dc48b1	udp_poll
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd616f353	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd65263c2	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0xd6579451	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xd66c8184	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd69f26d6	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0xd6a65542	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6b2ed5f	generate_pm_trace
+EXPORT_SYMBOL	 vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL	 vmlinux 0xd6b71dff	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0xd6ba0166	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6d374cb	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xd6da73ab	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd743d387	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0xd763ea3c	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xd77817ae	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0xd786f110	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0xd792a028	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0xd7b1f870	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xd7bef774	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xd7c135e2	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0xd7cf5b11	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd811c683	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0xd81a75df	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xd81b6b6a	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xd829a401	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xd83814ca	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0xd840e360	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xd846c315	acpi_write_bit_register
+EXPORT_SYMBOL	 vmlinux 0xd857231a	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xd85ad556	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd862396a	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0xd873f186	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xd88a9179	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8b0588e	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xd8c318e2	_raw_write_unlock
+EXPORT_SYMBOL	 vmlinux 0xd8c5890b	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0xd8ce9a3e	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0xd8d52612	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd90438e1	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xd915583f	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0xd92adf75	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd934cffd	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0xd947845a	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd962092c	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0xd96d36fa	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0xd971c6c4	xen_arch_register_cpu
+EXPORT_SYMBOL	 vmlinux 0xd976fd75	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0xd978bf6b	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xd979a547	__x86_indirect_thunk_rdi
+EXPORT_SYMBOL	 vmlinux 0xd97b272f	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd987003c	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9ac2306	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0xd9b279e4	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9bbd88b	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0xd9d4bf65	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9db657a	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xd9e8a784	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xd9ed7043	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0xd9fe6bfc	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xda1ddef1	acpi_mark_gpe_for_wake
+EXPORT_SYMBOL	 vmlinux 0xda24c17a	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xda2a169b	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0xda34e529	vga_switcheroo_register_audio_client
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda4b248b	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xda61e027	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xda627676	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xda6554dd	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda9421f2	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaa99784	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xdab7a482	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0xdabfc128	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdae4265b	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xdae4510b	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdaed7cfc	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xdaf13857	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xdaf654b2	dm_io
+EXPORT_SYMBOL	 vmlinux 0xdafb08a8	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xdb068547	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xdb1426f7	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xdb16b170	topology_phys_to_logical_pkg
+EXPORT_SYMBOL	 vmlinux 0xdb2e5dd8	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb489885	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb6a73a0	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xdb740302	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb803832	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xdb91f8aa	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xdba96032	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0xdbac23c4	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xdbb22508	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xdbc85a4b	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbe17daa	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xdbf17652	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdc071b8a	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc1c98e9	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xdc2c0a04	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xdc34c33e	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xdc3edc5f	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xdc46b4f7	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5736d5	acpi_register_ioapic
+EXPORT_SYMBOL	 vmlinux 0xdc5a5b57	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0xdc5c5995	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0xdc65d4cf	proc_create
+EXPORT_SYMBOL	 vmlinux 0xdc6e0165	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xdc77cf87	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xdc7efc29	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xdc91f055	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xdca5b844	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xdcc112b3	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xdce87965	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xdcf726be	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd1dc89b	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd2db3d7	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd56fd6c	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xdd60e77f	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd72316d	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd7a42e2	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xdd7ab94e	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xdd7dc360	inet_release
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd8396a0	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd94bb7a	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xdd9f3b46	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xdda28089	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xddac9e53	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddc9162c	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0xddcbe1f3	acpi_ut_value_exit
+EXPORT_SYMBOL	 vmlinux 0xde26e802	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde304747	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xde4eeab5	__register_nmi_handler
+EXPORT_SYMBOL	 vmlinux 0xde840f43	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0xde867439	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0xde986cbc	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdebf2db4	igrab
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf0167cf	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xdf1cefe1	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xdf25d573	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xdf27e432	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf3b7281	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xdf3f3d93	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0xdf499291	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf56344b	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xdf566a59	__x86_indirect_thunk_r9
+EXPORT_SYMBOL	 vmlinux 0xdf58c15a	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0xdf5bae25	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xdf679cb2	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf7408ef	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xdf75c892	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0xdf89347a	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf8d781f	acpi_update_all_gpes
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfa96137	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfc5f2dc	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xdfca01d1	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe01448e9	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe033cb29	native_queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xe03a2887	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe045baea	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xe048a1da	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xe057b622	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xe058e05d	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xe0597b58	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0xe05dd747	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xe068cf44	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xe07c29e3	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe08cfdce	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe09fd5e5	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0xe0a2ac12	input_event
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0a66f43	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b457c6	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0xe0c80c8f	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0xe0c94b32	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0e58d8b	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0xe0e61f9b	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xe0ea0fb4	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xe0fa9d46	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12427fb	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe14f0a1e	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xe1517357	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xe15340d6	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe155d1b3	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe161008c	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0xe1676ed4	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0xe169cfdd	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xe18f0bc8	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xe1b327fc	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xe1c4d4e6	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1ed698d	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xe20d3993	first_ec
+EXPORT_SYMBOL	 vmlinux 0xe2173412	fb_is_primary_device
+EXPORT_SYMBOL	 vmlinux 0xe21d4edc	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2213be2	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0xe22483a3	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0xe25ee9d3	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xe27894cc	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xe27afa51	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0xe2a2efa2	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0xe2c2fedd	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xe2c5de49	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d30cf9	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2dc36a0	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0xe2f2301f	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0xe2f7284e	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe338cb78	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0xe35a0a36	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xe35d0957	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0xe368f34b	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0xe384c22e	dst_release
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3cea0c7	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xe3d857ea	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f479d1	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xe3fe3ec3	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe3fffae9	__x86_indirect_thunk_rbp
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40ba83c	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe4171815	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe42df03b	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0xe43e9954	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe44630a7	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0xe4817b09	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe4943780	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0xe49a2077	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xe4c65fed	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xe4ccdb25	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4d80bf4	acpi_enable
+EXPORT_SYMBOL	 vmlinux 0xe4f1107a	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xe5095887	try_module_get
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe534f3eb	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0xe566e561	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe57a89a1	amd_iommu_enable_device_erratum
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe58be0c1	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xe58e8cbf	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5a5033b	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe5a7a31a	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0xe5bbb6e8	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5dceba9	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xe5e94e71	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe621b53a	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xe62df114	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0xe63350a2	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0xe63dbda7	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0xe6531cb9	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xe6663cf1	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0xe679ed42	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xe68459ae	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xe68e3cc5	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe69d0874	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xe6a7aaee	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0xe6c6269b	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe6e270eb	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0xe7068ff9	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xe70877d4	acpi_remove_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe72bb37b	f_setown
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe734261b	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0xe74019f3	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0xe742edc6	kern_path
+EXPORT_SYMBOL	 vmlinux 0xe77d4d7b	release_sock
+EXPORT_SYMBOL	 vmlinux 0xe786d8b7	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0xe787698f	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xe79c310e	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xe79f1d18	amd_iommu_device_info
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7b00dfb	__x86_indirect_thunk_r13
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7d76473	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xe7db7135	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xe7e1530a	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0xe7e3f4e6	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0xe7fc8bd3	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xe808c2e3	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xe80ef864	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xe81d06c1	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xe81e6e51	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xe823e22a	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xe82ee13e	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xe84cd956	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xe84f0fe0	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0xe8508dca	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe86393c0	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xe86ccb39	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0xe896c126	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xe8a126f2	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0xe8a3cf94	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xe8a5535f	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0xe8b77547	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xe8ef6a88	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xe8efaade	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xe8efc294	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe93ee335	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xe951cc99	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe957479b	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xe9916b9e	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0xe9946ad0	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0xe996e5e4	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0xe999a94c	iput
+EXPORT_SYMBOL	 vmlinux 0xe9a5e67f	intel_graphics_stolen_res
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9b80a4e	skb_pull
+EXPORT_SYMBOL	 vmlinux 0xe9da2389	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f29f21	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xe9f90b92	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xea0291d4	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea5fb9ee	cad_pid
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea83d829	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xea85168b	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0xeaa275e2	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xeaa921c6	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeaea7870	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeaf45b79	vga_switcheroo_lock_ddc
+EXPORT_SYMBOL	 vmlinux 0xeafdf5c4	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0xeb17f344	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb274bc2	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xeb2b1a73	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xeb31aee8	acpi_trace_point
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb390662	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xeb390f95	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0xeb412a91	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xeb42b620	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb4d3ed5	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0xeb59e8c3	native_load_gs_index
+EXPORT_SYMBOL	 vmlinux 0xeb5f246a	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0xeb676e56	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0xeb73da00	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0xeb781266	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba3d743	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xebc1261c	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xebc386a7	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xebd287a5	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebf3128d	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec0b3a46	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec3af4c0	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0xec480e03	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec5917e3	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xec5d23ed	simple_rename
+EXPORT_SYMBOL	 vmlinux 0xec6f352d	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0xec74ac19	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xec801a88	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xec8b6c58	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xec8c5a9e	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xeca913b1	path_put
+EXPORT_SYMBOL	 vmlinux 0xeca9d876	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xeca9f7cb	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xecac8407	__memcpy
+EXPORT_SYMBOL	 vmlinux 0xecaf4dc8	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xecbf0b9d	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xecd983fa	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0xece42da8	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xece87acc	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xecef6bc5	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed05956c	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0xed213bb7	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xed2bf59d	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xed2f2bba	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xed34ebbc	acpi_any_gpe_status_set
+EXPORT_SYMBOL	 vmlinux 0xed3ea142	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0xed3f3e7d	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0xed4bf650	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xed55a0df	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed67c83b	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xed719d2c	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0xed84282d	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0xed854b9f	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0xed86d46f	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xed8adc5b	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0xed8b13f7	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xed9e016f	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedbba202	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xede81f14	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xedf41f4c	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xedf8749a	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xedfd91e7	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee140bb8	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xee2b882a	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee300cf7	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0xee39bbd4	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xee39cfe1	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xee44afdb	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee5b8d5c	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xee6c292b	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xee71f0e7	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xee78e4b6	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee86fbbc	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee92bd38	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xeead77cb	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0xeed01733	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0xeef2e8c2	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xef10d1b1	key_link
+EXPORT_SYMBOL	 vmlinux 0xef120e9f	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xef14c895	skb_split
+EXPORT_SYMBOL	 vmlinux 0xef2993f4	_raw_read_unlock
+EXPORT_SYMBOL	 vmlinux 0xef56691c	init_task
+EXPORT_SYMBOL	 vmlinux 0xef607bbf	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xef669487	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0xef850806	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0xef8de18e	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xef97834f	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL	 vmlinux 0xefa0bd24	bioset_init
+EXPORT_SYMBOL	 vmlinux 0xefae2d53	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefb829f2	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xefc33e5d	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xefc80ad8	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefd7c690	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf003ec42	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xf01184f7	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xf012dab9	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0xf02c84c5	iunique
+EXPORT_SYMBOL	 vmlinux 0xf039ab79	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xf043b59f	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0xf0503525	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0xf05c32ad	rdmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf061e096	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf073a8bb	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0xf075a54a	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf094d2c8	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a2f021	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xf0cdfa5f	vga_get
+EXPORT_SYMBOL	 vmlinux 0xf0d06d7d	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0xf0f90581	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0xf0fe0d17	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf1027905	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf12184d2	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xf1415127	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xf1516357	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0xf15ee213	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xf16dcdea	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xf171b000	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0xf1750968	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xf176ce6c	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0xf1848ee2	acpi_install_sci_handler
+EXPORT_SYMBOL	 vmlinux 0xf189634a	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xf1906a42	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0xf192791c	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1a68107	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf1a976b4	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xf1ac5877	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1f5d5fd	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf2186923	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf2288d1c	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xf23c891c	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf247e79d	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf253b8bf	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0xf26925b5	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2b50d36	mntget
+EXPORT_SYMBOL	 vmlinux 0xf2b81b64	arch_io_reserve_memtype_wc
+EXPORT_SYMBOL	 vmlinux 0xf2c1cf06	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xf2c3da33	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c51c37	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0xf2ce2d49	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xf2ce83c2	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf2d6b439	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0xf2e2ad45	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2f6e8ec	stream_open
+EXPORT_SYMBOL	 vmlinux 0xf2fd28ce	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xf305b587	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf30965ac	iosf_mbi_register_pmic_bus_access_notifier
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf3154f51	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0xf325e706	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xf33330a5	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf33b7d42	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf34703dd	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0xf34f296a	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf35659eb	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xf370fc79	param_get_string
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3ad2bf2	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xf3b2d915	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3d60761	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3f36231	read_code
+EXPORT_SYMBOL	 vmlinux 0xf3fe9bf9	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf40e09cd	__scm_send
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf40fe95f	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0xf413d837	vga_switcheroo_fini_domain_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xf4223fc8	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf44e053b	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xf466ca6c	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf47fc93b	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0xf4a565fd	wrmsr_on_cpus
+EXPORT_SYMBOL	 vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b4e896	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4b9aaa3	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4cc70f5	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xf4d6d9a8	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf5044fdf	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0xf50f3478	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0xf51d8fa9	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0xf5339c59	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xf5358aa1	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf53ff557	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xf54749fa	d_path
+EXPORT_SYMBOL	 vmlinux 0xf5617ca2	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a5c84c	msrs_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5a85176	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xf5ab31c6	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xf5cc6c42	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5e9d374	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0xf609ec03	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0xf60ab926	acpi_get_event_status
+EXPORT_SYMBOL	 vmlinux 0xf613bb9b	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xf62aece6	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0xf6391d2a	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf65bfa45	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xf662cb15	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf67a0340	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xf67eb6cb	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf684390b	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xf68b3d42	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xf6a34107	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0xf6a4cbcc	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xf6ac6f78	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xf6dbf26c	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f05077	napi_disable
+EXPORT_SYMBOL	 vmlinux 0xf6f8823d	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf707a841	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xf70fd611	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0xf7179cc5	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf75bbd7c	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf78ba84b	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xf7925b12	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xf798789b	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0xf79ca3bb	acpi_remove_gpe_block
+EXPORT_SYMBOL	 vmlinux 0xf7a848ac	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xf7b025cf	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xf7b09f44	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xf7b3c1af	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0xf7ef9a79	iosf_mbi_punit_release
+EXPORT_SYMBOL	 vmlinux 0xf805f99c	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xf80be44e	rdmsr_safe_on_cpu
+EXPORT_SYMBOL	 vmlinux 0xf80e221c	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf81612a5	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xf81ac6a9	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82b9137	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf8386d97	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0xf84ae7f9	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf8505c3b	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xf8595510	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xf87b5bca	may_umount
+EXPORT_SYMBOL	 vmlinux 0xf8854d8b	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf8b1ea03	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8e434d1	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8f983a0	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xf8fe4f66	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0xf906850c	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf926253d	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf944f0e0	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0xf94daf83	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xf960fd40	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xf96cf0ad	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97b5cfc	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf9867e8d	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0xf98961e0	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xf98abe27	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0xf99edee9	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xf99ee5de	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9d339c4	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xf9d3b429	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xf9f8c01f	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa2327f1	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xfa2682c9	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa40ce79	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfa41f65d	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0xfa42d468	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xfa4b8a7b	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0xfa4c7ce4	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa5f220f	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0xfa6f9346	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfaa1fdf7	__tracepoint_rdpmc
+EXPORT_SYMBOL	 vmlinux 0xfab518ee	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfae02093	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfaf3d7f7	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0xfb251b8d	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xfb2615b2	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xfb33cedc	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb578fc5	memset
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb87c7a	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbdd5bc8	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0xfbe08ef6	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfc00982a	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0xfc3212cc	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3e50e3	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc4a442b	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc8b71af	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc907686	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xfc9cdfda	nla_put
+EXPORT_SYMBOL	 vmlinux 0xfcade862	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xfcb5cae3	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcc22756	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcd8832a	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd0ccb0b	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xfd16ee21	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0xfd26a6ce	set_trace_device
+EXPORT_SYMBOL	 vmlinux 0xfd31a136	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xfd4212a9	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xfd6e2cbc	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xfd74966c	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xfd8034f8	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xfd896325	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0xfd8f9fde	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0xfd93ee35	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdaf83cb	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdb6576f	acpi_set_debugger_thread_id
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdc7fc25	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdcd1934	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdd7ded9	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xfdebe1ee	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xfdfb792f	amd_iommu_pc_supported
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe0b658d	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0xfe0e0119	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe173439	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xfe1c3b7a	ihold
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe430e99	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe69ce05	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xfe725fe4	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0xfe7562a1	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xfe771b22	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0xfe828fbe	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfec4bd79	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xfecae2ed	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfedf45fa	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef4d975	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff105708	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff22a788	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xff24c292	set_pages_uc
+EXPORT_SYMBOL	 vmlinux 0xff2d9d97	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xff4cbd48	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xff56079d	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff7676a2	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0xff7847c9	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff9bbeb8	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xffab5e09	amd_iommu_domain_clear_gcr3
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffc30c3a	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL	 vmlinux 0xffcd7f49	iosf_mbi_punit_acquire
+EXPORT_SYMBOL	 vmlinux 0xffed4e17	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff10424	generic_pipe_buf_release
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x19711697	camellia_xts_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x2c8b5dbf	camellia_ecb_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x339c33c5	camellia_cbc_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x6f3a8de5	camellia_xts_enc_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x8b44ee75	camellia_ecb_dec_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0x9056f10d	camellia_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xaae4a1b9	xts_camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xc00f725a	camellia_ctr_16way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-aesni-avx-x86_64 0xfea2b457	camellia_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x0b901549	camellia_dec_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x315d28f7	camellia_crypt_ctr_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x69f4ff25	__camellia_enc_blk_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0x8d9b761c	camellia_decrypt_cbc_2way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xc5e3cec8	__camellia_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xee61eb71	camellia_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xfe729ed6	__camellia_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/camellia-x86_64 0xff09bd65	camellia_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x2792b618	glue_cbc_encrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x298ebbf4	glue_ecb_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x47c4e08f	glue_xts_crypt_128bit_one
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0x4a7679ee	glue_ctr_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xb54e595c	glue_cbc_decrypt_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/glue_helper 0xdcb93105	glue_xts_req_128bit
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x03a48018	xts_serpent_setkey
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x194b2841	serpent_ecb_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x38800636	serpent_cbc_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x4140192a	serpent_ecb_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x5cea0c9c	serpent_ctr_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0x99341b41	serpent_xts_dec_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xa0100109	serpent_xts_dec
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xb75988d7	__serpent_crypt_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xbdfa6cc0	serpent_xts_enc_8way_avx
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/serpent-avx-x86_64 0xcee44453	serpent_xts_enc
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x1f491d36	twofish_dec_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64 0x7c7bf6e0	twofish_enc_blk
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x2c7b3458	twofish_enc_blk_ctr
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x31ddef7a	twofish_enc_blk_ctr_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0x92a51c43	twofish_dec_blk_cbc_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xb4e98a46	twofish_dec_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/crypto/twofish-x86_64-3way 0xe4ae7508	__twofish_enc_blk_3way
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x01e6478b	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0270c76b	kvm_mmu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x03434bd4	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x04004423	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x043a9cab	kvm_get_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x05f6626a	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x084bef39	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x08666f09	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x08beaec6	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0a131659	kvm_load_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0bdbffa2	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0bff4b05	kvm_get_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0d8f4740	kvm_mce_cap_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0dc54042	kvm_can_post_timer_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0e36bc79	kvm_slot_page_track_remove_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0e51027d	kvm_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0e9ad7bc	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x0ef13f26	kvm_lapic_switch_to_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x118598aa	kvm_arch_no_poll
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1235000a	kvm_tsc_scaling_ratio_frac_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1272b16e	kvm_vector_hashing_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15332150	kvm_apic_write_nodecode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x15f5cf6a	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x160ad7ec	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x166fc798	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x180978b4	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1a800c71	kvm_x86_ops
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1b5fa0bb	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1bbbf26c	kvm_get_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1c4159b6	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1cf65ffc	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d013832	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1d1e813d	kvm_emulate_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1db1c372	enable_vmware_backdoor
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1dcc3400	kvm_wait_lapic_expire
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1e08503b	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x1e503e0e	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2102312b	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x213f8681	kvm_arch_unregister_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x272f9827	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x28411ed7	kvm_max_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x296996e6	kvm_mmu_unprotect_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2a6ef76a	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2bdb9b1b	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2cb65364	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2d82cc24	kvm_spec_ctrl_test_value
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2ecbc07c	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2f0bf158	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x2fae4737	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x33ac0f43	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x347211a2	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x35c5ee10	kvm_get_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x380e492e	kvm_set_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3a3026d4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b119b73	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b347bab	kvm_lmsw
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3b4babdb	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3c4d45b0	kvm_emulate_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3caf5375	kvm_vcpu_reload_apic_access_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3cc82f45	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x421e369d	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x44300612	kvm_set_xcr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x44d2d8b8	kvm_rdpmc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4558199a	kvm_mmu_clear_dirty_pt_masked
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x45d9d360	kvm_slot_page_track_add_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x46a45c46	kvm_init_shadow_ept_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x478956ef	kvm_mtrr_valid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x48add9e7	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x49da00f1	kvm_lapic_switch_to_sw_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e005f63	kvm_page_track_unregister_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x4e861bbb	reset_shadow_zero_bits_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x55e2191d	kvm_set_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x598e8a17	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5d55a551	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5f8ec190	kvm_queue_exception
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6051fdb0	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x60ca5e5a	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x61406d26	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6243ac82	__kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x63270977	kvm_default_tsc_scaling_ratio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x632dba4e	kvm_set_msi_irq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x651b3030	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x65ece2a2	__tracepoint_kvm_fast_mmio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x66c4423a	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x67ec1918	__x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68e4db9f	kvm_read_l1_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x68f54e0f	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6a2f82ea	x86_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6ada8f59	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6c2cfd8d	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6da7eb23	kvm_lapic_hv_timer_in_use
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6f2830a2	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6f8a2184	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x6fe20735	kvm_set_rflags
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x71384f27	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x727a41f5	kvm_vcpu_halt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x74fce550	kvm_lapic_reg_write
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7763a671	__tracepoint_kvm_nested_vmenter_failed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x78f28089	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7957bdb2	kvm_set_cr8
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x796b043e	kvm_get_apic_mode
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7a1e11bb	kvm_valid_efer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7bb25b2e	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7bf8c5e6	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7ce233d6	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7db440d7	kvm_require_dr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7ec43557	current_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7f663d4d	kvm_set_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x7fcf70b3	kvm_task_switch
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x805d7005	kvm_lapic_expired_hv_timer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8280deed	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x82c495f7	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x83da8658	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8400794e	kvm_apic_update_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x849344cc	__tracepoint_kvm_pml_full
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x85783161	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86252545	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8635a208	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x867690a7	__tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x86931b5d	__tracepoint_kvm_avic_incomplete_ipi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x87b2d3f2	kvm_mmu_slot_largepage_remove_write_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x888d979f	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x88f4e2e5	kvm_set_cr4
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x89f91c39	kvm_arch_has_assigned_device
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8bb4c622	kvm_skip_emulated_instruction
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x8e76e5ec	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x90f5ddd5	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x91d4d992	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x92a3b1e7	kvm_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x92e29ff4	kvm_set_msr_common
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x930554c0	reprogram_fixed_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94abbd88	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x94db2225	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x963edd26	kvm_get_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x96dbe382	kvm_mpx_supported
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x974d2117	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x99c61357	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9e60b6ac	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9e7c6259	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1567bb5	kvm_inject_nmi
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1aac038	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa2039efa	kvm_fast_pio
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa26566bb	reprogram_gp_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa27d3cf6	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa39dc4cc	kvm_handle_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa4aee54e	kvm_vcpu_is_reset_bsp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa612aa6a	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xa975020d	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaba9d770	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xac818d87	kvm_page_track_register_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xacd54617	kvm_mmu_unload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xaf247e61	kvm_scale_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb097e540	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb1f29d1a	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb28635e3	kvm_emulate_instruction_from_buffer
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb529a593	kvm_mtrr_get_guest_memory_type
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb5871284	kvm_intr_is_single_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xb7750ea1	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xba0ae6e9	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xba556c8a	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbb62fab8	kvm_hv_get_assist_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbcdbd017	kvm_require_cpl
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbd905e20	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbdcc47a0	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbf6492fe	kvm_init_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xbfc61ecf	__tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1ce5eca	kvm_apic_set_eoi_accelerated
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1d769b7	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc1fd8620	kvm_arch_start_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc225dabc	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc58dc1ad	kvm_mmu_sync_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc6306a50	load_pdptrs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xc64fb66b	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca19abf8	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xca3ab5ad	__tracepoint_kvm_ple_window_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcab0c0a4	__tracepoint_kvm_write_tsc_offset
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcb765a07	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcc2ba3f9	kvm_lapic_find_highest_irr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xce84ca14	handle_ud
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcf203b47	cpuid_query_maxphyaddr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xcff43306	kvm_lapic_reg_read
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd0a6c5f6	kvm_emulate_wrmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd20a8adc	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2b2ea1c	kvm_mmu_slot_set_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd2ef61dd	kvm_arch_end_assignment
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd60b2ce3	kvm_emulate_rdmsr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd6716907	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd7ca7a1d	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd86a2828	kvm_set_cr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd86cd3d9	kvm_deliver_exception_payload
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xd8ae2ac3	__tracepoint_kvm_pi_irte_update
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdbcd0d81	kvm_apic_update_ppr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd1a422a	kvm_arch_has_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdd9e7aeb	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdea31317	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xdf6cc73b	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe33daa9d	kvm_mmu_free_roots
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe3ccde2b	x86_fpu_cache
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe5accd97	__kvm_request_immediate_exit
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe6513706	reprogram_counter
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe682dcce	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe6ec3ffd	pdptrs_changed
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe7209af4	kvm_mmu_invpcid_gva
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe7583fb1	kvm_put_guest_xcr0
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe76c8d8a	kvm_write_tsc
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe81f0114	kvm_get_apic_base
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xe9738f49	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xec06defc	__tracepoint_kvm_avic_unaccelerated_access
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xed3527bc	kvm_arch_register_noncoherent_dma
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xeeb733d5	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf0f65447	kvm_apic_match_dest
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf1027caf	kvm_mmu_new_cr3
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf12f3191	kvm_set_msr
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf4473849	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf47e3dba	kvm_no_apic_vcpu
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf58b00e7	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf710add3	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf851ac45	kvm_get_linear_rip
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf8e1a97b	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xf9877383	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfa541ffc	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xfedd9397	kvm_mmu_slot_leaf_clear_dirty
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xff1bd663	kvm_hv_assist_page_enabled
+EXPORT_SYMBOL_GPL	 arch/x86/kvm/kvm 0xff2f3b97	kvm_requeue_exception
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x00830eec	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1e76b7fb	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x32259a38	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x37beea97	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x421ef9a6	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4a9106f1	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x569b13a2	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x62f2c034	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x730b91a7	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x788fc773	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8d17dfb8	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc643423c	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc6513096	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc6aa6589	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xda528296	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdcaa5890	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf9bf70fb	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xff227ff7	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x1c54bf16	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x3c1b1a81	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x1c91e77e	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x411698bf	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x86c513a1	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x9be970cf	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x08e7ba6b	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x16cd163b	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x24e63c8a	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x9b065db7	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x1863d5fd	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x99154d1c	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x7bc12be9	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xcca2b8ee	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xe7d84730	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x3e7d1b88	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x427a353e	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x70b09b09	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xd5dff0c8	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x35a59ab4	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3bad6e36	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x44d61994	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4ae4a14b	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x9a4d842d	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa201005b	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa6e434fc	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xaccacabd	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb02f9c05	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc6bf9f2e	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd7661c5d	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe3d2a996	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf131069a	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0dec8097	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1051219b	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1ad72854	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2679045f	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3745d04c	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x600a544a	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x70357f3d	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x787cc7e6	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7e065de7	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8830a262	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8bb7c4f3	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8bdde142	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc4b4663a	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf9a71c13	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x16b8ab0b	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x7877faea	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x839468d3	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xe25ed404	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x43292745	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5b6b94a7	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x825932c5	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x1c69ec8a	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x5b594dae	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xb1df3633	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xe856b334	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x7e031faf	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x12f51643	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x1b1af218	__acpi_nfit_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x4639bcda	acpi_nfit_shutdown
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x499bbf57	nfit_get_smbios_id
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x5ecabf85	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0xa624cec8	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0xf5aa0f81	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x1c8984c7	acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x4f6c2360	acpi_smbus_read
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x87bd07bd	acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL	 drivers/acpi/sbshc 0x96eb492d	acpi_smbus_write
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x2405b876	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x2c87daf9	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x2d759219	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x32c8c4c5	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x349d3ec4	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x4918d6e2	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x49c2f56e	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x4c31e7c4	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x59009290	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x5f7df8d0	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6fc08706	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x7e375ed6	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xaab6ec0b	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xac1d78df	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb2ca13c9	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb381b56b	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xbd11fdfa	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc32b60c0	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xc9b8eb54	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd74b2546	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe172b37a	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe295fb26	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe666beeb	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe7245738	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x04feef96	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x05e74ae1	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x1ee30ac1	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x25487697	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x355b6924	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x372047c7	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x51fb9545	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x6bf715cd	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x6cf02e8f	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xb7683699	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xd1d3ecce	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xdb7f007c	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xe056cc65	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xe14f6912	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xe4d74aa6	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xeafca641	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0xca304836	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x02ff9464	cfag12864b_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x0ecb2e5d	cfag12864b_disable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x305dc3c6	cfag12864b_isenabled
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x3389f926	cfag12864b_enable
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0x9522a342	cfag12864b_getrate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/cfag12864b 0xc48e9d95	cfag12864b_buffer
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xbf4774db	ks0108_writecontrol
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xedde6df2	ks0108_page
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xfee8ef7b	ks0108_address
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0x66dc9f2d	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x7cf40ed2	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0xe11a5425	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x64cc84f6	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xdeb1eb31	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x145a2ca8	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x679a0346	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x6a5b07fe	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xd1edd612	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xa86b742f	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xc1346953	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x09ed6323	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x21f198fb	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x30943313	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x343f80e5	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x347a19f4	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x38766675	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x403524c5	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4e3bcb78	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5829340a	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x784cdc86	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7f158807	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x84c1c013	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x89d22a30	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8db60365	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x93459ef2	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x950cb79a	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb4a2b6fb	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xbf9b460c	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc273523c	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe4a9a9d1	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf2579a88	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf7e142b2	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf8a8821a	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xfc300127	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3c419f72	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x49d3a386	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x7239d45d	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xa94db3d6	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xbf4d069f	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd15c5d6e	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x20d756cf	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2ff61b98	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x3ae6a1c1	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x47474772	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4afcd343	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x58b79af8	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5f306ddf	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x821db8da	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x89b8fa17	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8bde3d57	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x98e1acba	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xab870aac	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xaf6c5dcc	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb2fcbe6a	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd0d8c131	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd4af030a	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe9b33a91	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x2144c936	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x53183b3e	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x70acaf37	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x70f9fe09	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x954f3621	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xa02b1615	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xaca080f4	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb70bb245	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xda377924	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xee1de9bd	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xee4d8cb9	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x2880e8fa	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x28e0b7b0	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x671d7ccf	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x6edce6a4	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xe38e48fa	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x242b05bd	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x45ccb823	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x7b16a4bd	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xbf878ade	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xc5ae4d9b	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x6c848959	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x8075460c	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xe5f2a0bc	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xf7e29136	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x05ab25ef	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0e9569b2	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x20a6eb29	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3b5566ec	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x46e481d8	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x5c7e3fce	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x641ffaf6	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x66f8faa8	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x74564af8	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7ee05ca7	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x97398ea8	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb8858a3a	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xddb406ed	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0x2b67f096	speedstep_get_frequency
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/speedstep-lib 0xd7ab2c0c	speedstep_detect_processor
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x0d7e39ea	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x2e6a6147	psp_copy_user_blob
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3e059f28	sev_guest_activate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x4073e924	sev_guest_deactivate
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x6e4ec8c6	sev_issue_cmd_external_user
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x843d6541	sev_guest_decommission
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8fac14a2	sev_guest_df_flush
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x91722dce	sev_platform_status
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0xd02e197f	sev_platform_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0563eebb	adf_dev_put
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0c2d54f3	adf_enable_vf2pf_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x0eb2ede9	adf_devmgr_pci_to_accel_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x18b86c30	adf_reset_flr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x235d4f30	adf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x3b0d502e	adf_cfg_add_key_value_param
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x407e539b	adf_exit_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x44601173	adf_dev_in_use
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x44b2da83	adf_vf2pf_notify_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x455339ef	adf_dev_start
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x50ef0fa5	adf_reset_sbr
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x535c6f7b	adf_init_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x543cf4ea	qat_crypto_dev_config
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x62b134cc	adf_init_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x6cd8ebb4	adf_dev_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x75cbb628	adf_exit_admin_comms
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x7ac642f8	adf_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x8023f055	adf_devmgr_in_reset
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x80fc7803	adf_cfg_dev_remove
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x83a340d1	adf_devmgr_add_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x898c511d	adf_send_admin_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0x981893ca	adf_dev_get
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb47e5280	adf_dev_started
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb69ed63f	adf_cleanup_etr_data
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xb819fad0	adf_disable_sriov
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc3f561b4	adf_devmgr_update_class_index
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xc5c953fe	adf_vf2pf_notify_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcc3b167a	adf_clean_vf_map
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcd50dad1	adf_cfg_section_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xcfabaac4	adf_enable_aer
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd10f99b0	adf_init_arb
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd6510b9a	adf_dev_shutdown
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xd6b5e0b0	adf_vf_isr_resource_free
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe4ef165b	adf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xe99129b5	adf_vf_isr_resource_alloc
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xec7ddd50	adf_devmgr_rm_dev
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xecad1cf8	adf_cfg_dev_add
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xfa381d16	adf_sriov_configure
+EXPORT_SYMBOL_GPL	 drivers/crypto/qat/qat_common/intel_qat 0xfeeb7cec	adf_disable_aer
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0xae63ad4c	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0xd47d1c19	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x01a33ab9	dca_unregister_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x38e80d42	free_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x4c255047	register_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x8f772f95	unregister_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x93d2dd5f	alloc_dca_provider
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x96d5c6a5	dca_remove_requester
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0x98ccd8db	dca3_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xaa634427	dca_get_tag
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xac34ecec	dca_register_notify
+EXPORT_SYMBOL_GPL	 drivers/dca/dca 0xd19ce3da	dca_add_requester
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x27cfa5f4	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xa3fb54b1	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x32671dce	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x42dc8252	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4c6f6672	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x4cbe6a62	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb6d0b0cd	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xdeba17f3	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xfbaaacb0	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x6a74b42f	hsu_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0x89e2352f	hsu_dma_get_status
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xa31ff9e9	hsu_dma_do_irq
+EXPORT_SYMBOL_GPL	 drivers/dma/hsu/hsu_dma 0xf3ab1b5d	hsu_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x17d1604a	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x50e0edf2	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x14511419	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x850ac0e7	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xbc2c3749	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xd8c09cfd	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xdf11c0e1	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/edac/amd64_edac_mod 0x4a7aef73	amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x14878009	amd_report_gart_errors
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x1d34e996	pp_msgs
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0x830c469f	amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/edac/edac_mce_amd 0xaf761418	amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x899f0ece	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xe9378b98	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x06304f08	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0770e2ef	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0b4912ea	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x10cc8f1e	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x24bfb490	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x2a45e322	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x35f06ac7	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x66dce05d	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x69ca261c	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8ab6b964	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8c73b3af	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x9ef49a00	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbaba01f5	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbdcc40b2	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd30c42bc	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdd45b5c7	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe6f2327a	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfa25f0b1	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xfaded7a1	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x61911981	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x79e399cc	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x83e12ae6	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x89b9b2b3	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb3ff986d	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xc67283e4	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xdd3984c3	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xde0eeed4	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xdec05aeb	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xdedaba2c	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xf5b1a089	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xff2c14b7	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x05e0c5ab	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0bb49c22	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x30db1ad4	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x45504942	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x66250a2a	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x897f4bd6	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x92374037	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x98678e85	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x9f68b883	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xb0e7a106	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xb9cd8a73	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc4602f22	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xcf22679e	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x14e7ccb5	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x3a72cc7a	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x492bc1e8	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x69e89fd8	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x6bbdba34	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xf6304602	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xf8667bc9	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x21999eda	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x75fa52f5	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x84f72297	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xf30f72d9	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xfa87b3ff	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x20b89db8	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x22c1a689	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x4511b555	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x52ba822e	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x68475367	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0x2ad1650e	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xc310831a	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xd3c765e2	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0b5829b3	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x1e186bf6	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x24821d58	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x37c15d41	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x39794272	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3bac9940	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x40fa8641	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d12a832	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x50616114	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5aa74907	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5c9bef49	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6cb74b87	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6d7e750b	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x74be159a	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8b69724f	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9153f912	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xabea9ba7	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbc9e6305	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd432b2a0	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe0a2f176	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe6081b16	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xecb8bbb4	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xecb94880	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfad2c362	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfbb799fb	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x1b132c41	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x267e5ff9	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x620fafbc	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x6ae89e28	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xa31922fa	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xccc56276	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xfaf6814c	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x05876c69	i915_gpu_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x08a7896d	i915_gpu_raise
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x363511a7	intel_gvt_register_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x402468e9	i915_gpu_lower
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x500858b9	i915_read_mch_val
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0x6fbc5503	intel_gvt_unregister_hypervisor
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/i915/i915 0xe7237b0b	i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x0f991bf9	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xc6cfd718	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xe3116323	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00418336	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x070a47cd	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x087559ef	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0b3cba6f	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1ad7d188	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1b990e55	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1eefc178	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x26ef664d	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d1dcd79	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3e83c36c	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4264be1e	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4607e18b	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4aff60b9	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x53578810	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x56f2dc44	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5e640739	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x691bf694	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6b93727e	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x75a510ac	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7c4287fa	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8a21db5c	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x93828571	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x97199d52	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9b11e192	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9cd2d1fe	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa77e4ed4	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xaac45fcb	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xad338679	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xae913644	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb6a75305	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcbcfd13a	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcc9d48c6	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd391e247	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd6b6adf1	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe53b4841	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf13b2eca	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfeea5a5c	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x059c86ec	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x08b62290	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x13ecad54	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19fba7dc	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x22c4ed99	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x26e4e049	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2b88c291	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x30288e99	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x32560114	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x34a3f7f9	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x37fed247	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3a3e360a	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4c0abfc3	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x511e661c	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x52fa0304	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x54706a6b	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x58496fc8	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x66ce1fa3	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6789d32e	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6b00966d	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6c5470f8	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6d200a1a	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x722bb9b2	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x72a932f0	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x77d83a00	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8008521e	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x81fb76b7	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x82341f05	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x878631f3	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8e9a11a6	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x902de0bd	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9543ed3b	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9628a257	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9f47b8b9	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa2764d66	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbfc9069e	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc5e7c74c	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcf50c098	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd5974525	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdd3c0805	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe8b9d482	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf0eb1237	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf41c553a	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa58a8cc	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2a92fc37	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0e5e7690	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x1d96d574	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x87245c15	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x9393a237	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xf3c6942b	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xffc39519	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x1ad2a7ae	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x29dbccb3	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x2d5d7dc1	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x648d6ee8	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa5ca75e5	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xd388d0b4	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xde654e89	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe1ca1847	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xef10ef91	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xf5fc09b6	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xd2340e63	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x1abcd5af	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x7b45d673	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x02812250	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0b6c2e11	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0c59c116	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x18cd6c83	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x29a37734	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x36cea2a1	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x3c08afff	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x417a6bfb	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x64726fc1	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6dc3bc02	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x927bc413	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x9a5bd4b9	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x9cc487ea	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x9cd97460	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc34dbcee	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xce65a86c	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xee6f7200	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x010d01f2	vmbus_teardown_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x030fd23d	vmbus_recvpacket_raw
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x159fdd95	vmbus_connect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x26ca0da1	vmbus_set_event
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x291aaf28	__vmbus_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x31e2e77f	vmbus_free_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x35a944e7	hv_ringbuffer_get_debuginfo
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x3cc682da	vmbus_set_chn_rescind_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x46a417ca	vmbus_proto_version
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b2210b8	vmbus_send_tl_connect_request
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b399b21	vmbus_sendpacket_pagebuffer
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4b84e6b6	vmbus_free_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x4bf10d88	vmbus_disconnect_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x514495a0	__hv_pkt_iter_next
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x56e9a324	hv_pkt_iter_first
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x6356b2b2	vmbus_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x72996bab	vmbus_setevent
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x80ed348f	vmbus_set_sc_create_callback
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x8fc8ce2b	vmbus_prep_negotiate_resp
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x98b23372	vmbus_hvsock_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x9a72cbf9	vmbus_allocate_mmio
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0x9f7dd9e1	vmbus_open
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xa2c786a5	vmbus_connection
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xd41f4fdb	vmbus_are_subchannels_present
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xf0a51188	vmbus_establish_gpadl
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xf6da92c8	hv_pkt_iter_close
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xf7a596dd	vmbus_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xfab2e6b7	vmbus_sendpacket_mpb_desc
+EXPORT_SYMBOL_GPL	 drivers/hv/hv_vmbus 0xfb20fd8e	vmbus_close
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x257e774c	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x648f3b1d	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x7a0fb06d	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2a5a2328	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2efff5c8	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3dffa5ff	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x4ebf3e15	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x585ce7cd	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x65b01244	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x75be7e79	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x775c876f	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x83b10f5d	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x94a79394	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa18c0ae8	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa1d8924d	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb28487c8	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb79cd95a	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc251dbff	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc83f056b	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd8e97ee5	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdc30ef93	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf5767944	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x10d18564	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x46fb1945	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x74328cc8	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x8c1bc25d	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9409007b	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa118f58d	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa4a5dc47	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa8e63564	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc6b05a26	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x15086181	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x44829534	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xe2d102f0	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x0ac8abc5	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x24ee9def	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x445747f7	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x7913e092	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x99d6874b	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa4716233	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb5aaa9e1	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xd387d418	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe217d1b2	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0x95c6bb26	amd_mp2_rw_timeout
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xa759d851	amd_mp2_register_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xa80a2fff	amd_mp2_process_event
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xb9ea1676	amd_mp2_rw
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xbce1fec9	amd_mp2_find_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xd639d123	amd_mp2_bus_enable_set
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-amd-mp2-pci 0xedcb4d79	amd_mp2_unregister_cb
+EXPORT_SYMBOL_GPL	 drivers/i2c/busses/i2c-nforce2 0x591ac6a4	nforce2_smbus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x29d1e502	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x43fb1c06	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x949f5ef8	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xd7ff9142	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0xb2dad198	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1e90b8fe	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x34b819d1	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3a5f284a	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5130ba3b	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x53ddab55	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x58e49508	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x69e69e0a	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x71170467	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x83d8d992	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8985ee10	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8b9bfcbe	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9947e80c	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9b81a810	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbe7c42e9	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc899ab84	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc9e49739	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xca2d1624	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xca9328c0	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd0a5b952	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd205dfc1	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd4dff780	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe3a83f23	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xea1f5b05	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xef8caa39	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xff68fab2	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x49393e75	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xdf64300f	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x1cfb14d0	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x2463a6d2	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x7f53991c	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xa219462e	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x47f95d04	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xad6d038b	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xdf5e46b2	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x65e0eb33	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xf4e2edff	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x0785ef4f	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x47cfe13a	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x5f3548c6	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7f8eff5b	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x8dc478dd	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9836a565	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xad77fd96	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd70f538d	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe3a03d32	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe417de5a	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x5b267aeb	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xa5ee6a95	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xc24df4bb	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x0e6c6c18	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xccb56272	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xfba91753	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x87c67c61	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xf7039a35	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x5b48ac48	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x26bdac26	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x54640a26	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6953336d	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6b2e024f	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x760dc981	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7de76ec0	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x904a5d21	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xb187b2b3	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe02ac051	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x0fcc182d	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xa8f898c4	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x6dccfa15	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xce319953	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x14df0a6a	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x51675cbc	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xadf5bfea	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x40626c2e	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x5a97e599	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x6de0d337	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x1d976db6	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x1f68ad7a	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x33af64da	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x42e801ed	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x64b7ba4f	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x6e0544c7	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x9bc2e916	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xa3247192	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb5d385e2	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xdfde1a0c	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xe17006c2	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xfb673797	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x3d5a1b5e	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x2bfb8c15	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x60944794	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xa9cb6b7c	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x03c2df53	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x06f268b5	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x07ecb8ef	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x08fe9d9c	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0ced57a1	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0fed22cb	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1ef49b60	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2556bd1d	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x27211815	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x32dc45ea	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35f87ee2	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3cb53637	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4592669a	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4a6e1512	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4aaad883	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4ce759bb	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4e8e4eee	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4f7d67d1	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x51fb6ad3	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5370c1f0	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x54d242e9	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x55c8d7f0	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5d971314	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x600737b3	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6ab2ebf7	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x73de629f	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x77189b5a	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7b056247	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x80faf771	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8aa9c3ad	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8ae16633	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8f0c819b	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x91898b6c	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa28efff8	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa6200cf8	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa99b9635	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab79544b	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb44f7dbe	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc3276758	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc43f581e	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc7a7b84b	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd29d7c70	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd6bc71e5	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd8506459	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe381420e	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xed1aff16	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf1b4fc74	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf9753487	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfa8f6b1b	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfd4be75e	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xe1e5a33f	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x0466fb00	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x255693ad	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2c9782fa	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x35ecad55	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x6014bd8c	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x844f9ff3	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xdf9aa2e0	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x4dac7c9a	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xd3d2388a	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x37ac3390	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x192693c7	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x192fc2b7	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x1ee339d3	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x27af3a4d	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x3cbb173c	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x926a99bd	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xa853d687	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xad72a7e3	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb50cdd4a	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc07db7aa	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc3fc6e5a	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc7ee8c7c	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xeaae9133	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x0641f1e3	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xc019ce2e	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd839dcc2	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x35340137	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xd55e28f4	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x1fc96871	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x3d7e3094	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0f709321	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x8e91be5f	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xb7df88ee	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xf42102cd	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x07919880	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0fcdc7a7	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x11cf04cf	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x26728c0e	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2728a71e	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x288011e5	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x353e0cbf	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x522f9fbb	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5db20d3b	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8bdb233d	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc14eeca9	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe42a117b	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x075ddab0	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x27acfbd6	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x47db3036	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x67be1b1f	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x781369fb	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7cde2123	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x86d08ad0	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x901e9e02	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x9336cd1f	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x97cb66d2	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xa9a8913a	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xbe3f57ed	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd3ddcff2	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xdd30e9b8	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf0c46ae4	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x0447a93a	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x28087d4f	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x44f8aa67	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x5c6ad758	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x635fdf79	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x67373925	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x85c7b7ae	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xaf534963	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xdc5079a6	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x1476058e	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x548cfa28	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x96a8fca6	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xa0ff6f5c	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xaa3f1cbb	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xef25b453	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x17b96d63	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x24ced12c	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x39eb0685	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x4a462acd	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x6881f5b4	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x78d1e8e5	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x84f701b9	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xbd2ac91a	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xd489b4ac	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe034fc25	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe35097a0	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x132e41ac	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x22fb9ddb	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x301fb594	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x58294e79	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x824e0ee3	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9e2fdaf6	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9eecb246	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc2e6379d	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xca4123f3	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xd35f6f5f	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe8adee26	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb4359ab	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeeb99a41	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xf275f01d	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x0150444d	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x368ce795	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3e87c76a	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x48d25105	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x549eb1dd	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x60584322	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7d47ce82	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x96263f60	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa038c273	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa279bb0e	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa55260ed	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xabfb6e45	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb40c8b5f	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc45cd894	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc49fdd13	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd11cacc0	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd30e902a	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa5c6f704	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xaf324d63	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xca10917f	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x48f7edb5	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xcc624edb	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x33e1d162	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x44344cc3	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x51eddbae	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa30f6d95	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xc17f0332	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd9b3fb66	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x52d037df	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x1385289e	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x16768c4a	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x46b5407d	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x4f741ef8	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x5bcedd82	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9a2b52ee	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xdd697a74	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe094b886	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf06fa37d	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xfc890eae	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x1e7cecc5	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2e4bf8a8	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x3ede6521	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x5039daff	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xa04e50da	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xd813a635	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xe73c59cf	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x03ce5441	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x099d1fbb	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0b84ceed	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0e080255	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x293e3448	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x48822ffd	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4b002e57	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6115a765	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7e8c52ed	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x810ee846	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x89f91237	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9a783a04	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9bc2e243	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbe581cea	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xdb81a978	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe36ca973	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xfece405a	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0bb2aae2	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x11443171	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1be02d1b	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1de02a91	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x302b163c	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x37e9d193	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3c3f7866	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5613366f	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5cef7e1c	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6954fb72	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x783f480a	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8cf04fc9	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90fc3d4e	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9d31f1f4	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9f47cb4a	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa16307b5	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa69c7951	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xac403915	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xacab26cc	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb718b17e	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb82210a9	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc27e4c66	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcc064bfd	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd07b1816	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe9abffbe	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x4a8734bf	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xbe949bff	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xe9f2ca2a	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0xd622f691	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x39583d2c	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1321724f	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x18d49a9f	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x21278241	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x25bff9f0	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x2710f6d0	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3ab0de6c	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3cdbb84d	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3f620178	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x496677b0	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x53b6376a	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x57986433	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5c9e1047	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7b80f08b	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7d3c121f	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8169cd28	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9295461d	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa03633bd	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa2892a6b	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa318671c	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa51afdaa	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb254be8e	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc93b7974	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd02bec68	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd1727df6	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdb8ad736	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xde621ffe	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe95ff65f	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf32eddf3	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf813f0a5	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfb0badf1	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfe5076fd	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0xfe03fb19	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x204a3a07	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xc7ef72f8	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xe28b3595	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x06f60406	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ascot2e 0x89d4da56	ascot2e_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0xffa23ee4	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0x3962aecd	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0x1bc762c3	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22700 0xe2fa589b	cx22700_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0x03b7b510	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24110 0xdbb7596e	cx24110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x77d4347b	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0xc592df9a	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x0e0cd62a	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0x8d5acc2e	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0x350c7bb3	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0x166231b7	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x2d9684f2	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x3057e5a7	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0xfaf13343	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0x6ea3d2be	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x05311ef5	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x720e67a8	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0x0ee2f8a9	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0x2abdd613	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0x795ea9fe	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0x8c8bac80	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0x2b38d230	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib9000 0xc9cc77cf	dib9000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x93e57427	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0x0243eaa2	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0xe98f40c4	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0xcc402cc5	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0xdd21fb0d	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0x1659d36d	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x38561534	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x10f78f66	helene_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x5b30aa8d	helene_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/horus3a 0xb77b456d	horus3a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6405 0x58f72b37	isl6405_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0x8e847e66	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0x8d1b2a6a	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0x40ce9c42	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0x5aaedbd8	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/l64781 0xf66784fe	l64781_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0x87553b7a	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0x9bbf5a78	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0xd39a8ba3	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0xff73a8e0	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0xcdd0a870	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbh25 0x312fc161	lnbh25_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0xdb0bf30d	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0xdc3473b7	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0x5a9c2dd1	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0xb9e2b69c	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0x9b5c010b	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a16 0xdbdab36a	mb86a16_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0xd4a00d9b	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0xd9b4ace7	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0xd481dfb7	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x92b9d898	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x9e465db7	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0x67ed17eb	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51132 0x1261bff0	or51132_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51211 0xdd7b7a46	or51211_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0xbebab807	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0xfb005f41	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0xffb596a5	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1432 0x61b85d05	s5h1432_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0xe17207a8	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0xe4c90fb0	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/sp887x 0x21b00bea	sp887x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0x1f10a8ad	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0xe72685fa	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0x2439d1ea	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0xf271d446	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0x9b21c5f0	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0x94272def	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x12ac28a7	stv0367cab_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xa70f2e4f	stv0367ter_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xd79151ae	stv0367ddb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0xb2b7e43f	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0xee6b0c75	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x8576b297	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0x2ffb7cc5	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0xa6920d03	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x59b97b18	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10021 0xff5bad3b	tda10021_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0xc2482cf7	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0xc1ad4fd3	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x2f92241e	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x39729bb7	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0x5f99f57e	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0x65df3682	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda665x 0x63152217	tda665x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8083 0x951de9fb	tda8083_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8261 0xf1ca394e	tda8261_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0x5f19a830	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0x71d3eb1e	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tua6100 0x8f3c2ab3	tua6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1820 0xb937f039	ves1820_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1x93 0x285f2c52	ves1x93_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10036 0x036f9f54	zl10036_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0x4adaac1d	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0x574ad990	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0xf587197f	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x4a1a3fa8	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0211fb2c	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1aaba45c	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1ef12970	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x32bdfd8b	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x32d59bc4	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x37353973	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x38813f95	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3d8db282	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x488a4a6d	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4f2a1f11	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4f2e6328	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x50548995	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x554900c6	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x57644752	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5cef1599	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x63c03924	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x65220372	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6f4b7d27	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7545d881	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7d1e2b0d	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7f4b0e6b	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x85c200b1	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8bbe11b4	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x93ec20e0	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x957c0e78	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x95801fba	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9960a01b	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9b29c5e2	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9ceea2ea	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9f8a2102	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa21ec9aa	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa3da7b14	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa62c5585	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa633e306	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa9c72237	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xad716666	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xbc07f458	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc4a6f1e5	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcec87563	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcfa9d5fa	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe33b0139	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe531035a	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe73425ed	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xea2fc9b0	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf247af7a	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4963d02	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst 0xd564c4e8	dst_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst_ca 0xc6ab9d53	dst_ca_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xad1c8403	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x035048dc	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0713aba9	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x15a38ea4	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x15c36ea6	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x29009b5b	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2c64c450	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x41104063	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x5c0475f7	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x78536a3e	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x80eb5a64	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x834b25f6	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x87b427f2	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x883eba08	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x94a91458	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x95e318b6	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x9b766ab8	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xabd5b0d1	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xacc3480b	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf8f4e665	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x07a3f707	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x11f9cbc5	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1c3be42c	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x433c8182	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x666430f6	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x70058c18	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x804e5345	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x84f38bbe	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x926fa77d	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x9a82cf3c	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa1716099	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa2576f2c	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xab9b81c0	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xabf325e5	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb599b6db	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbafcacff	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdc82b720	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xec528dbd	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf4560ee8	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x07d7fbc2	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x425ba97b	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x43dbea3c	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xccf1c5bb	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xcd478472	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xfbccd894	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xfda7b9eb	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x0f49270f	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x75812c0b	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xe0998c8a	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xe140c8d2	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xef3e9975	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x03b6e32b	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x905c136c	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x913db438	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xacfa0585	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xaf4b4713	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xef11fc12	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xb613b83f	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xe55ef7ca	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x099c7547	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x24b87baf	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x68cbb49a	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x69b8b73b	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xfd973b70	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x189d71c0	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x20fe9b57	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x53bff3a1	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x558bea18	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x60a6d4c1	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6a110fcd	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8099771c	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x92bf5c2c	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x936fc517	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9b99a012	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb49f1329	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbbdcff38	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xccb45b08	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd06b0ff5	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd16c58c4	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd1bb834b	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd74863f0	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xfa78e60a	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0x79a7c9e9	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0x091fe473	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0xf2f597bc	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0x86abaee3	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0xe724c2ec	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0xb6e2ecf1	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x1b868752	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x4913d1cd	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2131 0xfd19fc0d	mt2131_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0xe8f47982	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0xe4676afc	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x4b8391c8	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0xcf059f50	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0xe60a4075	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0x1191eb16	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x79510c9c	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0xefacb872	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x1cec8a25	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x37c971c7	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xd077a4b4	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x578c509e	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xa85a41da	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x66d33c38	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xb140aae7	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0xf10b139f	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0xeaa1b9a6	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0x637182ef	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1a99688b	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x296e5a8e	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2ea86d37	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x3fe785f8	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x480ee62a	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x4c16b6a2	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x61a49fc8	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x67e654ce	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x693f1973	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x69744eef	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x78393f09	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x88478d3a	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x907bf398	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x9c523670	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xbf1fc8e5	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc3c84aa5	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xdafdd3a4	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xdbfbb457	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe80f1cbf	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf8700183	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x22e896e4	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x1d854f1f	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x00290396	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x28e67857	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2e1ebd51	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x38b93d75	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4c56c923	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5cb2a9e8	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5eda3516	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7e51c7e3	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x959aa897	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa4f34c37	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xacc70b4d	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb88daa5c	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd25ec781	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd4f65ecd	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe5270cc2	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf3e2c0a8	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf7afbb22	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xfb5fb93b	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x1844b659	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2e590557	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x6143a0b1	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xe2c48da2	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xef15cc44	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x66c63b84	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x7fd16540	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xb0e28639	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0aa8a41b	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x16f05696	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x26e3540d	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3533ea0d	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3e6152ff	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x51c72c10	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x664b07e0	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x8c5e250c	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xe2908424	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xfe09ed58	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x01071dca	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x01d85caf	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0787f4c8	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0d58e4be	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x153460e9	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1a109047	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1f7a9a41	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4aaaa838	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4ef0b2e4	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x54431edc	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5b48a376	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6575a8f2	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6936ee49	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6a0a0ea8	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x72c12e75	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x751dee6f	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7cf1aa5c	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x853afe1b	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x880ab907	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x948a27bf	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x955979d9	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x97f9c689	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9a037c4a	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa2fadedc	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xaab5ddf4	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xadbcb4b4	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xae9fa277	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb627d904	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb6a7ea34	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb9645454	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc0488624	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xce745a5a	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd5837bb5	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd718e8b4	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xee04c9c1	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x04b3ae85	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x08563b8d	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1908be7e	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2281cc56	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x279cbab0	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x32c058ee	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3cdd9db0	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4c31197b	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4e025ebe	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x55189a99	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5a75651d	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5df3c75f	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x64a0b1f5	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6a6ea2b8	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x793eb0bb	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8dcda45d	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9675c194	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa999bb91	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xad974a56	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb63460ca	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbaab6bb4	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc3e704bb	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd37ef7a5	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xfb46cddc	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x231f2c71	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x3acd0644	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xb8d545bd	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xc394aeb9	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xa2821511	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xbccafead	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xdd7a1270	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x075c2049	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x078e478c	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0d1c3b4d	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0e97fa33	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11a9a02c	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x14bc2d97	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x14d2301d	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x16df6501	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x170d4ec7	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1c589a9a	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1cf9ffae	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2e6cb8ef	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x428cd432	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x499687d8	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4acd11a4	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4ca900d5	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4e80e053	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x517a9e85	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x52746b21	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x588622fd	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x58da6317	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5a514da9	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5f290d76	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x60999c73	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x67d4f9df	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x69fedb0d	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x74b20cf0	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x74fdb6d5	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x769c5a4a	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x797958b8	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7c08bac3	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x81d0e4b1	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8405cebe	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x876f4599	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x88443623	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8860946b	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x928c9502	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9af03271	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xab78df92	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb0f4d5dd	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb0fcc578	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb7085f11	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbb620025	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbddb53dc	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc01b13e4	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcd1ce867	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcffc294a	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd6617f52	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd70539d6	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xda91a6a0	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe5e62162	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe6a8eb6f	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf638a0b4	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf7d1b94e	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x2c6a42d7	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x4699d995	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x70365ce0	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x08a80460	write_hw_ram
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x1925be76	read_ad_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0x7fb907b3	write_hwram_command
+EXPORT_SYMBOL_GPL	 drivers/mfd/ahc1ec0 0xe6e5b54a	read_acpi_value
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x0147a71c	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x2e0a0b80	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x384b13ae	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x3c69d103	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x757b24f5	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb166ab15	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb6ccf670	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x1b89fd2d	intel_lpss_suspend
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0x3878dcc4	intel_lpss_remove
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xa8b22907	intel_lpss_prepare
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xcacb35bb	intel_lpss_resume
+EXPORT_SYMBOL_GPL	 drivers/mfd/intel-lpss 0xe76c6c67	intel_lpss_probe
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x1e6877c5	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x33b88776	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x518e3d6a	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x55d3a2b3	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x8317fbe1	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xe976e54a	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xfab0ff65	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xfccfcb11	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x4acc1be1	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xb7a906e3	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xccd603fb	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x1879514c	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x4c27b1d0	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x61c29e70	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x675781fb	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x7e2b8243	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xda86ae1b	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xea2a444e	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xb03c2816	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xc45d684e	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xd3de88df	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0e42e2f5	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x35670764	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3922a21d	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x392f7e5d	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4e268c6d	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x67f4c710	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7a17bf11	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7a1a6351	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x82a68ea5	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x82ab52e5	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x93fa7508	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9a73f915	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9a7e2555	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xadce4849	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xadf2e2e8	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xadff3ea8	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb0d415dd	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb0d9c99d	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc19393a9	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc19e4fe9	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd11db875	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd800db1e	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd946e419	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd94b3859	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xeec7ffe4	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xeeca23a4	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf3e108d1	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf3ecd491	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x2de8b047	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x39140604	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x7181e504	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xabe3636b	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xb9ec9603	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xeb59284b	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2d792323	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x36ca5410	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x3e8394d5	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x43769285	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5c87648f	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x83c413f1	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x91ca4d87	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa1e99968	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd3381968	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdb3f9eb8	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf6b72138	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x3f59b7b5	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x5eacd126	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x15ce6e68	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x5b9c23dd	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x6ae2913b	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xbbe8013f	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xc8d62c16	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xc2dfe249	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x000a7dc3	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x07ca4cb5	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0849df23	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0c0f45c9	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x0da364a0	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x15b0fde2	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1d3b8b6c	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1da89bcf	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x278bf367	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x30623e60	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3a28aa07	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3e46b8b9	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x46c6c9dd	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x49b0a2d1	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4afab4d6	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x53dab1ab	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x650b9aed	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x66b23cff	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x76cc8e67	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8852ed8a	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x92da9c71	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa2aba7dd	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa309541d	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa96c035c	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaf4a2aa5	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb43f2b14	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb6bb28f5	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc532b773	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc6aae7b4	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc99ac33b	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcb0c8441	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd0fd9ad8	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf2cabfc0	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xfe46356d	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x1f45861d	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x3ebe918f	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x403687bf	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x4802bb4e	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xd48895cf	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x31205871	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x64e25bb2	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x9361325c	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xfb37345c	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x8a09779e	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x23dd9a59	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x2dac0826	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x6a8c9559	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x6e4219d6	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xa32691a4	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xbc626bf5	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xe05c81ad	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x006caba3	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x007e3325	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x09843c21	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1725cfaa	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2fb21450	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x33e9309e	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x34031569	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3c3062e0	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3d67a0bf	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x42b66d47	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4d763789	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5866e24d	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5e625eda	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7441cb5c	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7f0df951	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x93407f81	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x951cff52	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa1f41c71	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb9352f0b	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbee3b7c5	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbf80b5b1	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcc9de975	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd3c1965c	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xdab4f859	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0adf1058	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0be8f3f0	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x1275c846	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x1b1e0dac	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x38133d7e	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x4b21bbec	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x4f0b3d17	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x673591d0	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x80175cb9	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x88c99e5a	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa6cf6d90	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb4d61f91	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc820ec2b	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x1d026811	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x51215d28	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x55f93806	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x81a06f6d	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x0bfcdf4f	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x4203990a	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x44f5f0e6	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x63227a15	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x6def2c5d	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x7fe023f2	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa6f9d1d5	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xcf888efe	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x072d86ca	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x140c6192	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x74b4137e	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa72e94e7	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xaa4ac920	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xc0a7031b	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xc6ad8fec	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xfc967a6f	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x1704c8e6	mei_cldev_enabled
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x28a5cf4a	mei_cancel_work
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x2fbb86b7	mei_cldev_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x576c263f	mei_stop
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x5fe12c52	mei_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x64bba5d8	mei_write_is_idle
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x671f9570	mei_cldev_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x77bab02b	mei_device_init
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7b2985d0	mei_cldev_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7d5e52a8	mei_cldev_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x7dc2c0c2	mei_deregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x87f9a23a	mei_cldev_recv_nonblock
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x886cf4b2	mei_cldev_ver
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x8e7331fd	mei_restart
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x90a24af4	mei_fw_status2str
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x9aa546b8	mei_cldev_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0x9e4af75b	mei_irq_read_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb4893e7b	mei_hbm_pg
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb70e0ea7	mei_irq_compl_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xb9e78078	mei_start
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xbb80b841	mei_irq_write_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xbf92824f	__mei_cldev_driver_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xca12dde2	mei_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd15a4cad	mei_cldev_register_notif_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd664849d	mei_cldev_uuid
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd8c83593	mei_cldev_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xd97ae452	mei_cldev_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xe577b338	mei_cldev_register_rx_cb
+EXPORT_SYMBOL_GPL	 drivers/misc/mei/mei 0xf0967393	mei_hbm_pg_resume
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x79af1860	cosm_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0x9197e565	cosm_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xc2963dfc	cosm_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xe5b9dc25	cosm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/cosm_bus 0xf53f4ddf	cosm_find_cdev_by_id
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0x1709f073	mbus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xac257762	mbus_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xc83686e2	mbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/mic_bus 0xe1228f65	mbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x419fa700	scif_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x6c00966f	scif_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0x8038fee2	scif_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/scif_bus 0xc26e0f94	scif_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x30b2313c	vop_register_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x720e3408	vop_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0x9a6dd6c7	vop_register_device
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/bus/vop_bus 0xb2633b95	vop_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x12f4f715	scif_vreadfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x179ee8b5	scif_writeto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x23c6e3ca	scif_get_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x24613781	scif_vwriteto
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x2abbd937	scif_readfrom
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x2b6a532b	scif_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x34cc056c	scif_send
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x3f9d5615	scif_put_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x4594a16f	scif_client_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x487ec5b4	scif_close
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x4d131718	scif_pin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x524e0b5f	scif_listen
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x642d410b	scif_unpin_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x7be9243f	scif_accept
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8635eba6	scif_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8ac7386a	scif_recv
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x8f2fed3f	scif_get_node_ids
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x928e238b	scif_fence_signal
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x94af9611	scif_open
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x9802042c	scif_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0x9f30a990	scif_client_register
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xa5ff5bcc	scif_fence_mark
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xd13ca88a	scif_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe2d417a0	scif_register_pinned_pages
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xe72251ac	scif_bind
+EXPORT_SYMBOL_GPL	 drivers/misc/mic/scif/scif 0xeac08d70	scif_fence_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x5b8bb699	gru_get_next_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x8dc51bdd	gru_create_message_queue
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0x9c7283a1	gru_copy_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xd3d2bf04	gru_free_message
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xde08c325	gru_read_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-gru/gru 0xeed7d505	gru_send_message_gpa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x1018eee0	xp_restrict_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x12333991	xpc_set_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x345c9217	xpc_disconnect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x39046c7a	xpc_clear_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x48e62c9f	xp_region_size
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x6285dfe8	xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x64ba5017	xp_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68d27065	xp_expand_memprotect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x68fa7d28	xp_remote_memcpy
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0x7d5ba9a9	xpc_registrations
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xc04c7267	xpc_connect
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xe68acd6c	xpc_interface
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xead4f7fe	xp_max_npartitions
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xed1d3813	xp_socket_pa
+EXPORT_SYMBOL_GPL	 drivers/misc/sgi-xp/xp 0xf3b47f67	xp_partition_id
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8481635a	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x9724c6bf	st_register
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x024d14bc	vmci_qpair_produce_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x046dd187	vmci_datagram_create_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x056837fb	vmci_get_context_id
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x1fd4782d	vmci_qpair_get_produce_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x207cc8b7	vmci_qpair_peekv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x2449459d	vmci_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x3a22fa8a	vmci_datagram_destroy_handle
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x49a46aa9	vmci_qpair_enquev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b	vmci_qpair_peek
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x4d928d70	vmci_qpair_dequev
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5591b58e	vmci_context_get_priv_flags
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x5e949e0a	vmci_doorbell_destroy
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae	vmci_qpair_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x676bd843	vmci_qpair_consume_free_space
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x75fe065a	vmci_send_datagram
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x7c74d7a6	vmci_qpair_consume_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef	vmci_qpair_dequeue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xb572e830	vmci_doorbell_create
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xbcb85f62	vmci_doorbell_notify
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc04c7e84	vmci_qpair_get_consume_indexes
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xc403cafe	vmci_is_context_owner
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xde3abc2e	vmci_datagram_create_handle_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe0cc9c92	vmci_qpair_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe11895c1	vmci_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1	vmci_qpair_enqueue
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea143610	vmci_datagram_send
+EXPORT_SYMBOL_GPL	 drivers/misc/vmw_vmci/vmw_vmci 0xea61eefe	vmci_qpair_produce_buf_ready
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x010b79a3	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x09e46e13	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x10c734d2	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x178bddbb	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x209d30c3	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x26a0dad4	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x354def7e	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x38138398	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3fe9d699	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4228e3e3	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x42649951	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4af2a13b	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4fa36ada	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x511b38ca	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5254a51b	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x564f5ab9	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x59f139ef	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x62e20d68	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x64348d8b	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x646976f0	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x648492bc	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6a259ff5	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x81923bc5	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x82020b14	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8958aecf	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8b3ef503	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9912ac0e	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa1379153	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xad8fb862	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb8f1fcc9	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbdc37f6e	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc49e3b52	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xdc8f7da3	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xdfd032e1	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe18d504a	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe2c2213e	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe7908d3f	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe8411f8e	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf9c6faed	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x44ff2c97	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x51f64658	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x542ee82e	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x72d68d92	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x7cd89868	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x84042d20	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xaee9c56b	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xd9d7befc	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf5253ebf	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x61a08e85	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x9cbeab13	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xa3978efb	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x70d3f661	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x832a39e7	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xfd787237	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x12ed5f60	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x52a82a6c	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xe69ec972	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xf470cd55	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x15ebb7ac	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x6e7f2d31	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x03a2ef7d	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x06fa9ec8	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x072bd2a9	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x081d49d7	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x08469bd8	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x13424bc7	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x20522ce7	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x23f7722e	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x29cde698	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2c038c9b	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2fb43a5f	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x306f93d3	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x315bf9d9	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3708786e	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x37dd03d5	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x388b6e1f	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3ed83a65	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3f6ed311	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x40e5420b	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4530e13c	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4ab041e0	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5d55c17f	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5e7fdc9b	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5eab5be5	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6b13aaba	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6d039619	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6f8a93ea	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x736bb362	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x76ff22ba	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7df5b3e8	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x83c40eb3	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x84e0425c	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8558e02c	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x87ec5ec6	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x88c0b699	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8b122c2d	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9c2a2cf5	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9d8040dd	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9dbd87d0	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa8e27e9c	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa94c33e2	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xae8da94f	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc9438fb1	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc9a1fa9f	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcda76542	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xda04b928	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe3313579	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe98cef8e	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf322af75	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf4f97e9d	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf80a95e1	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf8c52676	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfc1def94	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x0776be79	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x33271e8f	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x72923097	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xa051940d	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xebc6b493	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x039a9cba	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x1b4aae84	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x1ffba5b3	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x327a765e	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x40e986c1	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x4cd13db8	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x59debb1d	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x75c92ed4	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xb64d11b4	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xc03cff89	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xc770bd55	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xe929f2f4	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf15408b5	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x29013909	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xefdb3530	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x63ff1edc	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x15e85bf2	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x164d9c82	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x17dc71f7	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x255c44ad	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2d1683b2	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x3392dac1	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x35fc57ac	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x3832c89c	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x39a26be9	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x3e40c097	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x43e1344e	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x51897156	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5d1d6e31	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x626f063a	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x781eb6a9	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7e7d8a0d	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x80fbc529	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8aa42836	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xad26fb84	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc0af3c83	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc24e643c	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc52526e0	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd053a50d	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd713eeac	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe41326f0	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe9885a8e	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x322d49e7	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x410844ce	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x9057c3ff	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x0b557bef	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42e22983	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x4d56538b	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x61ed7bec	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6c19de82	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x73a227ee	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x883bc0be	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x8956b77b	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x9f8e8f97	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xa19f0321	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xa4dada88	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xc478f46a	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd20c2b39	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd7beb6f0	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x20fc75a0	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xdfa6beb6	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x03522cbe	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x198a7a13	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x702c4de9	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa4e4f668	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa9a4286c	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xf8fd5d47	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x1ac8d332	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xc0127701	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xc947e937	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xcd78ae8c	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x01b6c426	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x05ecb4f8	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x15c7c03d	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x1c9edbf1	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x1d422c5b	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x3e1eeafb	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x49d4890e	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4e8e87ab	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5792e84f	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x65d124a4	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x72869472	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x893542ec	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x9a6684c4	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x9f777fc1	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb0658777	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb167bde5	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb2396554	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb8c754b2	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb9a66144	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc00d157b	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc2a2aad0	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc376b50d	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc8f4e26e	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xd95987df	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf5dd6ec0	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf73ec9db	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x35eaf29e	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x43b0642f	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x49e0e827	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4d45c110	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x9560b49e	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xa11e5c03	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc3096d5e	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xf07e310f	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x129ef57c	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x466cac7b	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xa9e50b04	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xe674e506	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x35d595fd	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x04e6c491	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x05d89afe	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3b6f4407	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x584f6ca4	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x64c0d6e9	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8350a8ae	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x874aa8dc	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8fc181fd	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9238158f	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9a59556b	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa4fec1e3	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xb53f9818	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbc92dcce	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd8ad0e56	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdccf5b17	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xed364367	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf15cb92f	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x01922007	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0969aa3c	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3299c3bb	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x56c22f63	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x63f0f68d	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6b555127	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7048a062	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x77353bde	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7aeb202b	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8390589d	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x917025e4	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xc61a56f4	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xdce31000	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xdefd8bf8	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe677a442	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf14f7389	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01d49512	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x047f5417	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05255102	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06f6aba3	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08087920	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0952d13f	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a6b6b9b	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b54dbe1	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e44a36e	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fadb4d2	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12ed01bc	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13c999ea	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14710772	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14d8caab	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1638ba1f	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x163b51e2	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1654e7e7	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1790c5a1	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19025bfe	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ea936b9	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f547040	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22d780af	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2497cdf4	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x250a8c40	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x263f9d95	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29a85619	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a4b1bce	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3279e366	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x356d7440	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3623a9f5	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x375fa2f0	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39137937	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ca0dfd7	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f46d60b	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fdc6b09	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fde104d	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x459d9f71	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x495ab63c	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ac4caa1	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4dae7b7b	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f89fd2a	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5123ed63	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5937062b	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bceed08	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bd01607	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f48bc84	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65e2e48d	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d38d3ed	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ebcb017	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x702c1166	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76312c15	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7691c747	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77a52083	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77fbcf21	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c1631a2	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f5b2b46	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fbce755	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8104af89	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x824281aa	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8303022d	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84a02cdd	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8545d9e4	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86d137bd	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88dc4977	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b469b08	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cf04ec6	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e3a3ea8	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8eb7f0d7	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x903028c2	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x946df7d2	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x955adf9e	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95bc7ab6	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95f63b6a	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97b315c1	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9921ab96	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b0920b0	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9cbc3677	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9eaa43f3	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ed43ea2	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa609c017	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa71c19fc	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7a0dfea	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8ef560a	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa98e2351	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa115f73	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1de9147	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb21df13b	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2e397f2	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3d75c98	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4880560	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4fef155	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba5a1899	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbcf278c0	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc04a3baf	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1fe1733	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5128ebc	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8df2a61	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb03ac64	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb3abad8	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb8c1d8a	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcee8f255	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd17d2176	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2b2f349	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd31166c4	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5ee6960	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd61a4c43	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8eecf9c	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd7b53ae	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddb864ba	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdfb3c28c	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdffc989e	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe24bf099	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe39f0cc7	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4e249e2	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6fea19e	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9856ceb	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea663898	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea902678	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed02d9dc	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf32325f2	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf79c36c0	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9fe2263	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa06d05f	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc874776	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd628734	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff02db54	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03cd356a	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x048d878a	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x091e893a	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0bfcc8d6	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0d776131	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16c19f95	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x182d4383	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b64b014	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e0b63eb	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1eb32aed	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f656403	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21024910	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21aba28e	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2235f88f	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e1e1855	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f182bf6	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x360dec39	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3708d611	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39580106	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f2d34ac	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41dc7134	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4922a50b	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b7426e4	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c599ec6	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f34a8e8	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fd7d150	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b3dbd08	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ce1d0f5	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d6ca7bb	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d9711f9	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f791c30	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68a5583b	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d3f4279	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f331828	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x738d8619	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75fc1256	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78b45464	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82e7dabd	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b1e3b2e	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c9c6fa9	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8de75d0e	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e365e04	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90d0f43b	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x923d120b	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92f81eb7	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x976cb17e	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99650cf4	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a307300	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c631c39	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ea41095	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9eb6be1e	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9fbaeb35	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7739a4b	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa93ba7c9	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabba6f4d	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac42af7d	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xafb1fb90	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0ac5d76	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd8a1581	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbeddccab	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc008a40f	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc02f39cb	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3980763	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc56a05b4	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca560cb4	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc72a23c	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcda12acf	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0d20a6d	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd10931c3	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd35a9901	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4119ace	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9eb9afd	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda3062e4	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda6f64ad	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbc12c3d	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde22ba01	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe246df9e	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8ffd963	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea81ec0f	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf80c632a	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8628fa4	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9e4707f	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfcdcaf68	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe08c1f6	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe7edb59	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x6be169e8	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x057e61e5	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x1aae6f60	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x4e2cb2bf	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xe7d95381	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x13e1e080	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x45a0c1df	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x801c454b	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x82c6ffe9	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xaa1ed62b	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x0a559ef9	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x515f0007	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x6a3063f1	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xb5f0b8d0	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x56179588	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x11991c7c	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x33432b66	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x7b3a7304	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xac16c6f9	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xc522eb9a	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x29fac7b3	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x3e2a9b2c	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x72c5e346	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xe84f44e3	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x0a2d0d3d	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x9dc8d30b	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x0416238f	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x30355557	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x451efa8b	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4ef5c28e	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x58ea3c3b	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6f6c6be5	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7b232a9f	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7d9e4465	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x99b8e243	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb0c86073	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xbb423be0	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xbcc26fde	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc93d37ac	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xde257db8	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe250bfd9	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe5d8797e	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xea908a1f	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf86481e9	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0x64602ac0	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x33bce7a4	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x69821b8c	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xe013acd6	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xffd580fb	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x0487fd9a	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x264a2d2f	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x4562ff5f	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x56520945	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9853761a	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x9ad1f127	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xa185a549	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xe815b456	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xfb0a1da3	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x210077b7	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x46597801	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x79f40298	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x8044dfd6	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xec0c7822	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x1c68340f	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x4dc3dcb2	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x58e57101	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x59f249dc	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x70e24209	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x83789a77	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xaacf1ebc	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xb3aeae2e	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xbd87fe5a	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xe9a6a25d	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xff637907	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x03d895b2	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x13f6760a	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x427ccf6c	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x9651fe66	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xa8378eea	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xfb17ed50	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1a705972	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1e08af04	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x29df215d	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x308d058c	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x31824be9	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x32d8e8dc	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3e061c23	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4c39f4bf	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x518747ac	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x55dfbc25	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x602f4b39	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x67ff65cb	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6ee47ac4	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x75681c8c	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x75f15af6	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x760165ad	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7c8afa07	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x824be83f	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8a4fdd8a	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x93316761	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9746726f	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x99e88ec2	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9cc686d9	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa610415a	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb71b753c	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb8ad7704	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc74b8738	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd6361d64	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd8349bf7	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdc00d341	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe1c8c8f1	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe7eaac75	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xec64c967	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x0b13a463	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x25f43316	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xeeff56ad	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xf302a883	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0048f0ad	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x00e3fded	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0780e191	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3da023c1	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6e212817	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x7352f623	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x74dc43d0	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8a36ac6d	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xa8701361	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc314df62	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc8520ec1	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcd0142c9	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe03834c3	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf22e25a8	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf28aec4c	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf9e7ebe9	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xbd61198e	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x425a2940	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6bd48f6e	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb934c5ba	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcd75592f	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf30ad7b	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02b4a005	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x09bd7e12	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0c4a8995	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x14cd0810	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x150a38d9	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x16591656	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1922ea7a	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x227ab610	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x27d27b2d	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x28890acb	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x28a562ca	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x336c0994	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x34e592fe	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3746dac5	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x39237218	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3be606c7	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x44d7b2a8	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4a8aa4c5	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x550bbe9e	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5864f207	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5fc86bfc	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x60ab597b	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x68645ccf	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6a4e3f50	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6b315162	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6c74690c	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71b16e4d	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x73f80793	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x75ba0b63	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x78e73727	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7ceadb9b	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8bd30701	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8ca833ae	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x90f2a5dc	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9b1664e6	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa66de4bf	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xacff0d23	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb04ec546	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb5fee98e	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb7fab0c0	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbc1f6115	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbd09f0b5	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc3bc8295	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcc5d0a5a	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce7e8c01	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcf790034	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcfb33cb5	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcfc12a6f	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd012c8db	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd664ccc2	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdcba50b4	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xddb457d5	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdf5964ef	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe230e7d7	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe34100e9	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe411f6e0	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe4944f8e	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea3a5af3	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf318e90c	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x01e34078	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1ffc55df	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x3ddef53c	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x49902c72	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x53f6318e	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x851b8f88	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xa1c3d9b5	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xb91c6b17	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xfa7c0e7f	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1dd19907	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x2321c4c3	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x25dde760	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3067211b	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x47c462b1	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5bcf7675	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5c3550f6	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x759266a7	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x80329f49	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8ed08e50	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x99c0a844	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa373f725	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa45a23d8	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa807bc41	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xba01b7f8	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xdfdb6da7	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x074bf2f4	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x205eac8c	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x2a6b4095	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x3c7d5f4e	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x726c8143	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x89eb63b6	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf22c9828	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf48e2bc0	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x01dc031f	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0e25c56f	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2952cb34	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3cc3cd85	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x41ec4426	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x45d30ad6	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x54f38d2b	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x64239141	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x69b146d4	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7767afd0	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8ca412a1	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9ad469b9	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa324a17a	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb3014c57	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbb9ce1d6	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbc6bb494	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbeb72248	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbed237ca	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd68e006a	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdb399843	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xea915b1b	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf6fc4304	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf86900de	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf9f8559c	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x03ddfa75	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0768f9a9	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0c7db1d3	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x14eaa8dd	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x17680e54	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x177bac1b	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1c7099b4	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d6c13f4	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x21518f31	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x216c2fb9	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x229a8046	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2fe1a5c0	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x30a76c69	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3b616f30	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3d83210a	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x41ffa522	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4325cf4a	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x448cbd1d	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x474d1d6d	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x51ae0bb0	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x52fbe60e	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x54dee736	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5fedefd3	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6c4910f1	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6cdf185e	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6fb6e865	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x79dbc44b	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7f4d66d6	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x806423dd	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x873f0c25	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x947129f2	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x975a184c	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x97bdf352	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9a990921	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa2d25324	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa6c9536f	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa6e12a86	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbdf4bca4	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbf5156ae	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc3a45547	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc78e7cbf	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc7d43c72	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcfe6e490	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd090ad51	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd20200f7	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xda7444f7	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdafc1427	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe5fbdc49	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xec2535a0	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xee29dd61	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf5a84034	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf69ff12f	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfbad1298	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x0e68cbab	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x56a15b6f	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x756d21c3	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x84724c9e	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x8ee40eb6	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xa0ff1b9b	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc1083fac	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xf51248ab	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x0adfaaf5	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x481fa939	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x4f18f7c2	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x72e9d9c8	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x75dd286f	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x902c2b88	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xbd546c59	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x03c77d5b	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x09668110	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x120e4b28	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x137e06c3	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1849c86e	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x19be3023	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a2669cd	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1b585a36	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1d438452	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x204a9d7d	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2f3e83a6	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x31032108	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3d05ee87	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3f4d96de	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4054cb36	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4471f0c9	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x487b9b0c	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5145afc9	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x543aeb2d	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5b816be4	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5c64fc4c	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x61c98414	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x61e2cbc8	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x655e82ea	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x686da3b6	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c7c768e	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x70de8dec	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75b03f62	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75bfe879	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x771dd4f3	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x787b05bd	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ffc2932	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x803afdb5	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x860520b2	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e2c81f5	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9425c1bb	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x954c6e49	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9b877956	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa39e0261	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa63e1161	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa9bcb102	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaa02c222	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaa62d5cb	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaaf1c3a7	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xacbd43cd	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb1365c6e	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb1d278f4	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbe076f0b	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbea2b3cf	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc08acb0a	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc62f7289	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd369a19a	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd4d72c68	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd4f32cd4	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd54a8130	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd91cb153	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe076f3f0	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe2cce73d	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf0a124ff	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf2a75f8c	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf3cf6301	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf5bf0de5	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf5d5637e	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x14fdf4cf	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x35ad2083	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x4267a112	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x699f8142	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xa5b60d82	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe8863452	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xff7f15b0	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x000f51fd	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x11760d70	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x279535ad	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x29824a0d	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2bf03f44	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x38ae59d2	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x48c5dea3	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4b35e1c8	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5d69e2cd	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x652fcee8	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x65d78bdf	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7f45e6fd	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9008bee1	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9a343450	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa586c66e	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc3929397	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf27d7268	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfc752d2f	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xff5e10c5	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1876c11d	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x3036e2c7	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x4c7b54ab	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x5551c6c6	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x84a61470	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xbf866a96	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xe3e8aec0	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf382340b	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xfe40bfd4	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x011dfa04	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x07124e54	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0a18fdfe	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0d22b5e5	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0fdae9ba	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x108fabfd	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x130b2d83	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x168c5585	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1a58605f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1c36dcb0	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x21e79582	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x22fceda7	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2a8d9d1c	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2b92773b	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2f1165e7	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3d2bb2f5	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x471b35fc	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x474097e3	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4ceda453	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4e18940d	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x59f03d81	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5a8577fb	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5b946221	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6ca11acd	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6f79f972	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x721ae942	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x73d57132	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x81aeb6f5	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x88436801	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8d116610	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa71b7f41	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa76c6268	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xab2b2554	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xac401b5a	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb11b860e	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb613411f	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb851f312	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbd67e855	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbf840f3c	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc8f7aab5	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcc09c576	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xccd6afb7	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe6bda355	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf836c259	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x07b304bb	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x12a1fbf6	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3b32f46c	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x56e137a7	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x659b9415	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x77bd8d2b	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8680579c	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa5c73d07	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb68c21e1	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcaf925f7	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xcd73b01b	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdc9c5b2d	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe3c1da82	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe99d27b9	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xec7d91b9	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xfc5e0f18	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x015b8c1e	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1def1324	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x23ee25d8	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x24c1eaf2	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x269fda99	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2f8d5cf3	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x367a1f57	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x386429d6	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3c052560	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4418668a	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4b27e530	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x50bd6f9f	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x60d8b027	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6adb5ad0	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x814a89c8	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x838bc6c9	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8d3dfedf	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8f12ca91	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x92d187bb	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x957a5bcd	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9df26296	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0cb192a	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa1f1a3ca	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xae3c4a89	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xae86a6a5	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb1d49e47	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb38d2ba7	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb3e63ad1	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb69e8738	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb76531e6	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc26dc9a8	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc3a5705b	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc7bce27a	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc9c9131d	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcbb277fa	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd374e434	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd99ff272	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe0e742d4	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe2ce6bde	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe3cc41b8	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe46a3e2d	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xeb7471fb	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xebe1261a	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xecd1a5ff	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xff774259	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xff8b331d	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x031ab63f	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x0c8219ea	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x3c941e08	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xb89f8dac	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xfbed3c2d	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x63082d3d	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x76fc15b1	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xe5384286	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xef9101ca	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x080089ee	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x445038c3	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x49b0db0e	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x4bae6e5b	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x4dd76632	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x4f9d19af	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5808b509	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5fcd6df1	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x64d7007d	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8620a537	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa0f10693	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb4c3c930	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbc887dd6	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc64df99e	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xdf71f6f2	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf97fd029	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0d53085f	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x91f90744	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdff422e5	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf995d2cb	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0fdcd699	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0	rtl8723_phy_calculate_bit_shift
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4938507e	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6cbfd2da	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x73eadc39	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x75a7bd6e	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x832dd147	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913	rtl8723_phy_set_sw_chnl_cmdarray
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9aa12854	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa34a3a09	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa8a864f5	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa9672cd9	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaaee7dff	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb33e0197	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb92cfb8d	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbb3ea99e	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc29402b4	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc7ad2701	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd162d67f	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd899c97e	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdef37bf5	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe406cc1d	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeb84b4b0	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xecc39ccf	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf01cabcc	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf782d7ea	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfba1508c	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x07954118	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1a2177b2	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1ff3333f	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x22d67519	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x23bdbacb	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2be49020	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d32cdfc	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2eb2aecc	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4d2fd771	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4d5fd53f	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4ec066e1	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x50d99bdb	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x61625664	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6bea72bb	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x730b7aca	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x77195524	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7c6de812	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7db1f903	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7df82909	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7f3048e8	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9aab7908	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9aef1a99	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa805574c	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb331f1e3	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbf259be2	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed955713	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x1a6c544f	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x445b7a2c	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x9414688a	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcdc4fc88	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xf4bc6264	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x0a181598	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x4131c20f	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x51c56479	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xe23a9fd9	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x4de5aa9c	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x947305f9	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xbe8a0622	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x01d4bae7	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x03da7121	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x099f8ddd	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0ec70c93	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1b2b3263	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1b6580a6	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2fcc2545	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3f67afe6	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x403a564a	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x427c4fee	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x46b122e4	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4f485af2	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x54b9b47e	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5d49f4f9	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5e83e2c3	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7341d34d	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x763cb1f4	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7abd835f	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7af98b61	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7b6b5e4f	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85847602	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x86c3801e	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8d5a2a8c	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x916be715	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9691d90a	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x98ab8ad1	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9d5b53f3	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa29d9a6f	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xabf08067	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xadce4e3d	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbbb34581	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbcb76e8e	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbe401c11	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc0006a75	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc232e986	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc4fab15e	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd015e304	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd1c316cc	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe278a6dc	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe6fd2606	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xef93b58d	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xefcbc6a2	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfda4c592	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0x670fd9ca	nfc_mei_phy_free
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0xacd923d0	mei_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/nfc/mei_phy 0xef9db92c	nfc_mei_phy_alloc
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x47c4252d	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x8aea2e7d	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xf8a05062	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xfae9446f	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xc0678bc3	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xc6aa9685	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xca9befd8	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xfc9065b0	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x0eb5d323	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x1d322355	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x2bd6e9b8	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x61ddd7b2	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x67dc788f	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x7a801067	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x8dc65762	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xb7cfdd90	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x38775a65	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x786017fb	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xa2d645a9	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x30934216	ntb_transport_max_size
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x32537aca	ntb_transport_link_query
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x3d54dbfc	ntb_transport_tx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x97c1def7	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9c992c8f	ntb_transport_link_up
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xb6d64271	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc270dc24	ntb_transport_free_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc37d9036	ntb_transport_rx_remove
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xcd15b242	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xd40e7a02	ntb_transport_rx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x897abc46	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xb767a8e7	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x08c2365d	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0fd9fa03	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x15ad5fec	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x176a8f19	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x24339147	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x24f2d6c8	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x259fe059	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x27dc51b9	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x302ab9cc	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x39f24766	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3df52bad	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4f1d6d7d	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x56e6cc44	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5d04ec4b	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5d991e30	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6d1a942c	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x72240dd0	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x77c7efc8	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7c02243c	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x80bbb6c0	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8653fd72	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x86b7dc1e	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ab84de6	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8c340a1a	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8c5a35f8	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x914ebc4c	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9af75fd8	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9b9bd6b4	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9bca613e	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaeac843e	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xafad2451	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbb37aac1	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbf38b70f	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc74efb18	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd142f2d6	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd1ecdf0b	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdb80efa7	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf5933206	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x12c23f1c	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x13411de9	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x25c7d538	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x36ca3182	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x36fd2d76	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3d782272	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x449a8542	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6d5bed5a	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x91bde839	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa415646a	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa5ffc2f7	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe04faee8	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xeabf1213	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3892fa60	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x657dd372	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x7fe820dd	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x8291ef58	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x9d0de485	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb4a94552	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb7ce0ccc	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb7d23a9c	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xd25d102f	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe2db1b85	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xf6cd5988	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1ed91f84	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x1591b2c6	hyperv_read_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0x221394ae	hyperv_reg_block_invalidate
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xe5f73406	hyperv_write_cfg_blk
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pci-hyperv-intf 0xfb921e00	hvpci_block_ops
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x7bef1c62	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x2a3af5fd	intel_pinctrl_suspend_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0x55ce64c8	intel_pinctrl_probe_by_hid
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xd493a736	intel_pinctrl_resume_noirq
+EXPORT_SYMBOL_GPL	 drivers/pinctrl/intel/pinctrl-intel 0xf23a2d1e	intel_pinctrl_probe_by_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x721c99da	wilco_ec_set_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x90c71728	wilco_ec_set_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x9bc637f8	wilco_ec_mailbox
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0x9dd6f171	wilco_ec_get_byte_property
+EXPORT_SYMBOL_GPL	 drivers/platform/chrome/wilco_ec/wilco_ec 0xcadde5ec	wilco_ec_get_property
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x1e4860b6	asus_wmi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x57c46ceb	asus_wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/asus-wmi 0x6c2828a2	asus_wmi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0x51552fca	dell_rbtn_notifier_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-rbtn 0xa060fe7d	dell_rbtn_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x1b0b3141	dell_laptop_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x45170471	dell_smbios_call
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0x7fd2ce06	dell_smbios_find_token
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xa710a56b	dell_smbios_register_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xb9400dbf	dell_laptop_call_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xc2871e79	dell_smbios_error
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xd6c6b12d	dell_laptop_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xfcb18332	dell_smbios_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-smbios 0xfdecb2e0	dell_smbios_call_filter
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x8eef8246	dell_wmi_get_hotfix
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0x9559234e	dell_wmi_get_interface_version
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa167d064	dell_wmi_get_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/dell-wmi-descriptor 0xa3dcfa65	dell_wmi_get_descriptor_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_ips 0x46809fa9	ips_link_to_i915_driver
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x659f040f	intel_pmc_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0x9bd9354b	intel_pmc_gcr_read64
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xa7f53967	intel_pmc_gcr_write
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xad38eacf	intel_pmc_gcr_update
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc49eaee5	intel_pmc_s0ix_counter_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xc845c71a	intel_pmc_ipc_raw_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xd2a5d365	intel_pmc_gcr_read
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_pmc_ipc 0xdea07053	intel_pmc_ipc_simple_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_punit_ipc 0x8ee9455e	intel_punit_ipc_command
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x06f7821f	isst_if_mbox_cmd_set_req
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x58a8261f	isst_if_mbox_cmd_invalid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x705b79f0	isst_if_get_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x805a7b40	isst_if_cdev_register
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x861369f8	isst_resume_common
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0x9a5c38f2	isst_store_cmd
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_speed_select_if/isst_if_common 0xe18f42a5	isst_if_cdev_unregister
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x1c7565c2	telemetry_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x35db93a6	telemetry_get_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x3d2a8587	telemetry_set_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x4cb51f18	telemetry_pltconfig_valid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5847f501	telemetry_clear_pltdata
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x5bb8e91a	telemetry_raw_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x665cd407	telemetry_read_eventlog
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x6b892524	telemetry_set_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x82bb2dbe	telemetry_get_evtname
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0x90551504	telemetry_add_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xb75bd1e6	telemetry_raw_read_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xbb9a2726	telemetry_reset_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xd14ffffc	telemetry_update_events
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe1eb4be1	telemetry_set_trace_verbosity
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xe8847f53	telemetry_get_sampling_period
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/intel_telemetry_core 0xf00771b0	telemetry_get_eventconfig
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x232b5238	mxm_wmi_supported
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0x61cdf799	mxm_wmi_call_mxds
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/mxm-wmi 0xe26032eb	mxm_wmi_call_mxmx
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x065b4695	wmi_get_acpi_device_uid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x17b0f8ca	wmi_get_event_data
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x6068bedf	wmi_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x61ca31d9	wmidev_evaluate_method
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x649003c9	set_required_buffer_size
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0x76ae31fd	wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xaba842fe	wmi_query_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xc9d4d6d1	wmi_has_guid
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xd7752b86	wmi_set_block
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xf18bdd75	wmi_install_notify_handler
+EXPORT_SYMBOL_GPL	 drivers/platform/x86/wmi 0xfb541579	wmidev_block_query
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x0a88aba7	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x3d11e05a	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xa756fbe3	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x050d7347	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x94b545c8	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x9a8dc1ec	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x60d20f02	rapl_find_package_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x64aca22b	rapl_remove_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0x8fa344ad	rapl_add_package
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xe82c7bcd	rapl_remove_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/powercap/intel_rapl_common 0xf3d89102	rapl_add_platform_domain
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x1d0a1dc7	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x6ad2dca1	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x81e96841	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x86e4dbbb	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x8babddac	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x9e347feb	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xdc1a2e35	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xde3152b5	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xf7f473bb	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x22e2c094	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x7665abaf	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0x0121c9e0	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x04d6d7a1	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x12529734	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x218e1800	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x27085d04	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2750eafb	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3ae6b041	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3c12ed3e	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x44607748	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x459ce6e1	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x45e7a2cf	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x47ba161c	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x50c82931	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5387f56e	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x576ffae5	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5878b522	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x58c81ae7	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5b545ab0	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x68c96b4d	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6d20850d	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x73b3e43b	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x80e6c23a	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x81bd9b73	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8586155c	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x92a45fe1	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x99c31102	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9c87a949	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9fad0608	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa220378b	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa823d500	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa901b44c	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xaa0f7a34	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb1d625b2	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb223dff9	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbaebc5a4	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbd1d7c2e	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbd713c72	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcac512a0	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcb61c232	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd259de79	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd85e27ec	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe2694f4b	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe4559dbd	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf2af6d13	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfd2dd260	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x071197cd	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x078eb47d	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x1d9227aa	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x22892578	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x2b50e53c	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x2f9a9198	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x464f3787	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x55356ab0	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5942965d	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9f7d187a	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb07f749e	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbe42dd35	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc5c1350a	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc7bb14bf	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xecc62aad	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xeea008ed	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x37126e24	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x9482adce	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0c7c6002	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cf9e29e	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61eabfa8	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x7ff195b0	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc6125854	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd93b63bd	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe13e6489	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0xc34ea0a4	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0887abd3	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d04628a	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0f1f3125	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1103b199	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1604ac6d	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x184b677f	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1f2c2182	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1f6b9c8c	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x21670fad	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x287dc0f1	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2cb7ae3e	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2d2e3ed0	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2e860eee	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x31469d0d	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x428c0c97	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4bb74517	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4f72bacb	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5131ae58	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x55b790ff	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5c935860	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7c6764da	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x820c37d7	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x95218318	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9774e064	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x97a88a4a	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa4dccf3e	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbd2bfba4	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbeb2e089	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbf06c95d	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcdc108f6	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd420ee1e	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd6c246e8	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd7f10c83	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd9211d67	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdfd42988	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe022aab0	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe61fb2a5	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe6d46e73	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe7a820bb	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe8ff6b19	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf69a8373	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfa7bc103	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x08fb7dd2	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0a86a94b	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0c13e8d6	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1cae6717	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1f407a0a	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2b4ab714	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2f25ad35	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x431da46c	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x8b4c3e92	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa07c6bf9	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa4e5e6e3	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xabef79c2	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc7eabf82	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd16a4634	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xeb36971a	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xee01254c	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf1e5c467	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0776c72b	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1540f95a	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1ed09d97	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x30ba8eef	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4334b294	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4c70cd05	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x52f1debe	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x65d2b79a	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x787f0154	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7c5377a0	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x81b1bd09	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9d2254a1	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9e427a5c	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa2f1db31	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb0a10b15	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb34036da	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb3afb18c	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbffa9c84	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc3cf0591	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcb59a7bc	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcd9a0a50	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcdc51b99	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd302c064	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdf3916a5	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf3e2377f	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x07b69905	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0c3a824e	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0e11a261	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0e9d552a	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0fe6fe69	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1420e298	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1834effd	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1df36a62	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x21d7c518	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x22e50f02	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x23b8ce96	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x26b822ce	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3762cca8	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x38caa8c0	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3bbbb1cb	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3e2336ea	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x441f7dc5	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x49007e1d	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5b3d9107	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5e33d061	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x61ba7cf4	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x643d9813	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6d224bf3	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6dcae2d9	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9deb9b2c	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa029d867	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa59f4d4c	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa7b994c5	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xab5d0c48	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaf6df48c	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb15ff359	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb70dc4e7	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbb4f516d	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbbb32061	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbbef6247	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcd0b6da9	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe6ec1432	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe75faec2	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe7c3633e	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xed51f106	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xff91201b	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x449cf456	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x678dd408	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x69c12a9e	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x91317cf0	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x500f3201	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1e894152	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x2a781168	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5cdf6b57	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xaa8f4e75	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xae57df9d	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xcffa9996	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x0a5f6812	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x21771536	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x32e2206b	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x39f025ce	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x9bfa1025	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x9d9dad03	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xb62cf0a0	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xd1dcf3bf	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xde3119dc	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x1e1c4e57	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x1f2606f4	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2e79e0db	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x4fb5e55a	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x67bdb199	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x888edc27	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xe7939c49	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x0e803cb2	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x1daf6151	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x426ea121	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xaa855429	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xab5e1c95	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf823736a	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0377395f	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0d847ba5	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0e464ce0	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x120ffb98	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1945baa5	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x220f3df1	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2712a895	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x27c9397c	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2fdbc942	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x40b582fc	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x40c2c933	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4303aa98	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4cf3baa8	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4e200319	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x52440a1e	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6199a2e3	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x83028607	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x88359024	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8d2401b5	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc0a5dd42	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd2009b39	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe0d1d7cc	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf0326ccc	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf355c1af	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf61c22a3	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfd853d9a	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xa9773c5d	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xed3ecb6b	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xfa42c9da	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-cadence 0xc54bd07e	sdw_cdns_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x3d078f80	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x50952fda	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x7565b96c	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe1f18275	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe4473820	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe4e2f420	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x1f71c981	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x234abc8e	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x87b08844	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xbfea1f5a	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xe3213ff9	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x3de407ff	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x6f63111a	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xf5b3e15f	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0a9ae3bb	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0e6a5535	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x305736aa	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3e633111	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x4dcfa27a	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x62296594	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x671bc3f7	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6cfeb16d	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x780dc618	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc4846442	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd093e6f9	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd439c508	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd5101631	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd5eb001c	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd7ff653c	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd8147462	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xdba63810	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfd2a35eb	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0xc1d5b4be	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x03edfe8c	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1229d1e1	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x15d71631	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2849495e	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2e832cb6	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x35b7051c	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x39c02146	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x43fcc1fb	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x45e311ac	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x469688c1	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4723ebca	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x49f46cd3	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x541afa89	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x633fcb0e	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6526b658	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6ad6b66c	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7c016f56	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x82a27eaf	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x90686b69	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa2c76285	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa63f42e5	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa89d72dc	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xac134394	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb3603ace	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc086fe93	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc4e209db	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd0cdd9eb	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd47f32f3	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd97d8238	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xde5c681c	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe13cc933	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xea3188ec	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xec0671a2	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf6de1ba0	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf874d18e	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfae1522d	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x2bf07d6a	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x2c8fdc3a	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x37d4689b	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xc555b723	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xcd11f951	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xeb0c5a5f	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xfa2ac8b1	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xfc46f092	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x2c2a0aa6	comedi_pcmcia_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x69ab53b8	comedi_to_pcmcia_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0x69b5d772	comedi_pcmcia_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xa0dc9893	comedi_pcmcia_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xbda51c86	comedi_pcmcia_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xf3e1ee09	comedi_pcmcia_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pcmcia 0xf6e16d9c	comedi_pcmcia_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x071f4683	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x717f9ee2	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x767744c1	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x78859e86	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa2e233da	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xf9851504	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x5f8680ef	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x024cff63	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xddbfe902	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x1b2e2653	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x190a8cb1	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1db65d22	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x31a96726	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x42074435	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x430fbf89	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x516f102a	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x59c5a812	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x89ce85f2	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb397e22f	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb964d677	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xca308c7a	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xd991a45c	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf3dd677e	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x8517606b	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xa896a633	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xb7619b41	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x07854074	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x3336b53b	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xc127dede	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0x9e41eef6	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x317d7d7a	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x41576930	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4a082017	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x63352ad3	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x65289d95	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x659bcf82	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x83a61629	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x87e67e35	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8dd26884	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xb2b9688d	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc803a329	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xdcebbfb7	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf44decf5	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf48733ab	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xfc1a3d0d	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xfe6897ef	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xc5c42ef0	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xf918ff13	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x69c73540	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xb83d233e	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xbc21d880	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xc9b1c5b2	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xc9d73e15	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x09a0e4de	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x0e47283e	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x2326fa37	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x2ebcbdb7	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x3180c89d	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x3a1b21b1	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4093440e	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x4563941b	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x725cff5c	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x84c16d55	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x8acd072f	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x917944b0	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xa9d38ca2	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc73dfa18	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xef39b5d3	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xefe6e08e	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x07fde7c5	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x09e90aec	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0eab8419	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x2a1a68ba	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x3c7c84b5	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x4e39e04e	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5e910875	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x626064c4	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x7da298cb	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xa8a5c2b9	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb2b2b3e0	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xce90d4dd	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xdf0a3153	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x606e481f	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x77bf8619	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xb5d1a36b	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xe6514ca2	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x05a27028	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x15387b0d	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3e2a3d1b	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x4d428e9a	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x51ec2246	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x536edde1	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x64327acc	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x99c7c601	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa904f1d9	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xac199e8b	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xac9cdc47	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xedff2c8d	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf857cce5	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x15faa54f	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1d9a1697	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x25de05e4	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x56f52d4f	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x602b0539	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x78511950	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8af4849c	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa0d6040c	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xaeb1b3b4	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc5a8d4eb	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xdecdc0d1	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe5e9962d	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf7459732	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x944132ea	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xe88d2704	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x23c8d0f1	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x7e3e276d	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xa21bbb72	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xd6b8e9fc	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x5784d00b	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x40689a1e	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4f393f08	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x5eec497a	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x670452fd	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7e7374d0	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x872c86f7	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x878dfee4	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x952e8f30	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xae8f1137	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb3344ef7	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xc41b1508	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xca3cd72f	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcb1cc50b	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd26e3180	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe055eb26	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe341ede8	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf455fdfd	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x050319a1	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0567173f	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1ebc8881	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1fa5aeb6	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x474696f8	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x48c70ae7	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x5912d3c4	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6939034b	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x72878c8c	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x78768229	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc3f358b6	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xcebc474a	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xdb3a7013	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf9d37b7d	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x0d465199	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2474d3bd	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x7f1db5fc	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x87c8e487	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x903af808	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa3abdbf7	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa4a1130e	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaf5c0f7f	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb30b90af	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb3c31222	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb6e5f4f2	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbd32580c	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xcee26c88	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xcf11bce4	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd00e9b01	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe9ec5eef	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xfee6521b	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x860e1c1b	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xc50be9bd	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xd5f35ac1	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x0aa503be	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x0c38c963	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6df2ceeb	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6f5e5517	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x8736fcd0	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x96d48a1a	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xbaf42a95	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xe0c3a45e	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x011ffb76	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x056ab85f	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0dd3d436	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x159c26b3	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1abddeb7	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1b25a70a	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1e213fe4	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x244317f6	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x299ba181	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x309eed7a	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3752b6fa	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x386a221c	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x39a5a8fd	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x42518db8	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x47a7e838	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4ce00545	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x53c4fe7b	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5dadda94	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6b5039c7	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x77ab1976	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7c01e22e	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8b5abcbe	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9062da3a	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9e1bd939	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa12f6d89	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa4ef7532	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xaf8d36d8	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb6d24457	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb7f16ebc	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbd905a92	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc366178b	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc4602129	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc5e3435e	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcd9371ff	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf0226b4f	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf91e0b3c	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfb099618	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0xdebbac6c	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x1466be64	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x1944359d	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x316a1471	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x405a019d	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xd904687f	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xf4921cd6	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xffd36e1a	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x0261c629	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x9e631d5e	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xbfb6dd8f	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc7b74fa7	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xdbac6129	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xe6fe67fc	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xeed6d832	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x176ddcb6	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x2110bd5c	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x2c4bba8f	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3569715a	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x42f2d146	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x67d09bd6	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6a8666d5	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x70649220	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x84abb319	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9807cd13	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa8287ca9	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb6b9dd2a	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xfc270b1a	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xff11ee76	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x43d26df2	int340x_thermal_zone_add
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xf0a365fc	int340x_thermal_zone_remove
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xf1a34756	int340x_thermal_read_trips
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x0b2b223c	intel_soc_dts_iosf_init
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x4b611342	intel_soc_dts_iosf_interrupt_handler
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x9365ecd3	intel_soc_dts_iosf_add_read_only_critical_trip
+EXPORT_SYMBOL_GPL	 drivers/thermal/intel/intel_soc_dts_iosf 0x9f499190	intel_soc_dts_iosf_exit
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x01d23ee1	tb_property_create_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x0ad4dcd8	__tb_ring_enqueue
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x0bf0ff2c	tb_ring_alloc_rx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x148d1433	tb_unregister_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x23d54dc8	tb_service_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x393b4f2f	tb_property_free_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x4e5064a7	tb_property_find
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x4e64bdfd	tb_register_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x52f0a712	tb_xdomain_response
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x58522e5d	tb_xdomain_enable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x5e3a59b3	tb_xdomain_disable_paths
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x603249ed	tb_unregister_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x64dd9855	tb_xdomain_find_by_uuid
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x658e3d97	tb_property_add_immediate
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x68c76e03	tb_ring_poll
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x700c67ad	tb_ring_stop
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x73ad2acb	tb_property_get_next
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x785eb82c	tb_property_remove
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x84304872	tb_xdomain_request
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x8b62f95e	tb_property_add_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0x9bb1b10d	tb_ring_alloc_tx
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa3d2b403	tb_property_add_data
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xa3eab123	tb_ring_free
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb23c1e6b	tb_xdomain_find_by_route
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb7c7cdce	tb_property_add_text
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xb9b029e6	tb_register_service_driver
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xcd8aa7fd	tb_xdomain_type
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xdc4def6e	tb_ring_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf1cfd1ff	tb_register_property_dir
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xf76028c7	tb_unregister_protocol_handler
+EXPORT_SYMBOL_GPL	 drivers/thunderbolt/thunderbolt 0xffc97a9c	tb_ring_start
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x09b32b44	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x37fd8651	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xd9173da1	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x3e41ad2e	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xd702c8ad	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x3c343dfa	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xd7f9cad5	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xfea06ba7	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x3dfee455	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x48f1477c	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x555fdd43	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x79bfecf1	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xc702379d	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xf5b98b57	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0010ae1c	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x269cbf92	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xb22dbff3	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xd7b4cf33	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xf5d1f7ef	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xf9d38ffa	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x033e455c	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0e220b93	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x47932017	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x51a684af	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x77d70dab	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x81b69c25	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xaa0b16fd	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xbf0c498d	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc870e633	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xca4ca6a5	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd44e59cd	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xde753e57	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xdf51dc67	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xea089379	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf829cbb4	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x7377567e	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xa1532b70	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x8cc30bc5	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x968ec1f6	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x094af2b4	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0a484416	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0acd787f	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2569ee6d	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2cba6744	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x47ce82ee	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x64b918f3	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6ae0eed9	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x984ef6cd	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9c474236	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd163fc97	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd2186a77	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe0e76686	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf6a1b904	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xfe9a7ef7	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xff85a6c5	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xff9f357b	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x1a0a7d22	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x313acdb6	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x44a11cbd	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x46ad4873	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x556cc8fc	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x6e4b5329	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x83026350	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x8a022d54	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x95ebd777	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9c3f312e	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa21d302d	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xae700bdd	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc88909b9	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdebea3c5	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf5e8f8fc	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x02682337	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0fcfdce8	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x0ff28b05	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x21dfa920	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x25cf38dd	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4ac9017d	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4d07ee25	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x51d2af91	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x626cff6b	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6837f087	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6a9f20d1	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6b79fba6	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7e9352eb	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x884dfc59	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8cee3b15	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8d5bd872	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa219debb	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa3b092c2	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa3b154f6	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa6684c0e	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xacc97ac1	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xce55a317	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd1354575	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd6c4a63c	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe125e2ff	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe50cdb4a	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xeab355c0	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xed591e41	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf3195456	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf8c24c1e	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xfc1fb419	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x02d1eb01	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x0738ac9a	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x1ccc08f4	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5940a96e	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x8d2dc589	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xd0d86b39	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xd4aa5443	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xd4e01c64	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xd8766922	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0cb5e74c	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x116df96a	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x11fae2d1	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x194551a1	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28f44577	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x34dc345e	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x415b93b8	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x41cc2ef0	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x474be6d1	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5cec552d	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5f4231f3	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x606457fb	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x652d3051	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x93e40ade	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa727450b	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xabf30166	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb86d41c1	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbc273c4e	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbdf0ccbd	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xbf6b124d	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc718798f	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xeb336871	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0d75cbc	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0feccf9	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf17d8264	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x57531764	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xd6daa094	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x075f2e55	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x0ba3f069	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x0fe6beed	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x3c06e491	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x8ee713c8	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xab69e0c8	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xb7e76775	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xc698654e	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe11f35f2	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x2c67a737	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xcebf0d77	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xe302f6d0	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xe5cab630	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x4e6ef4cf	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x84fa05a5	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xa889f1b5	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xb33b4334	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xe9c30327	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x6ca67731	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x604052dd	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x86e75202	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xe13e4223	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0xce4993d2	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x04a391f7	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0b09d3c0	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x127defd1	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x14e8c104	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1817730f	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2403775c	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2b50961d	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x31213355	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5ad6190d	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5b85e8c9	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x61834c7e	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x789842b1	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8fa91b0f	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa03df3be	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa38d2507	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xaca70e30	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb9be0177	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbeee983c	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc46ee253	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe52a0c54	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe79a95b1	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x1a5b9bcf	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xc9093b15	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x5d945220	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x0524616c	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0ae85eb8	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x100cf8de	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x11ca482f	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x146e43ea	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x14ce6b55	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2124007a	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x26660a83	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3686f65a	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x40605b83	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x48a50603	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x582eff58	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x60ba2a08	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x646669db	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x69ed67d8	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x722afbac	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7b803902	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7c755440	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x80ab0bd6	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8c7f1217	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x930dc3af	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa6942ea7	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xaee00e04	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xba3342a9	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbca8431a	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbfe43ac0	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc42867d9	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd3dc3b7f	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda18f2f6	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe707dbe4	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe742cd1a	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeb0f1821	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeb83d972	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x2b347f8d	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x849633f3	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x906acd04	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x92a62aa4	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xef456b79	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x0823cf27	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x0d2f680e	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x16397c2f	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x220ed737	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2889471e	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x40b5b3da	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4cbc9e91	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x625029b9	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9917ed20	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xa6082eab	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xab880f2f	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb84db593	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd16bcaf1	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x264e97a5	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0740f2b3	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x095f3cc4	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x14a2320e	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1883b1f4	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1eb3ee56	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x287d4332	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x308f9f18	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x37828b6c	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x41c90c11	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x476026b1	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x49ddef9b	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4a13d2b5	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x51efc27c	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x54f5704c	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x68ed0187	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x68f835af	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6923352f	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6a9fe59e	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6c1b9c82	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6cadc000	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6fb45579	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x70f7e210	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x76944609	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8436ad38	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8c253f2f	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8cd33821	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9291c543	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9d146da4	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa4f4261c	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa9345145	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xab16aeef	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb808c2bf	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xba325b27	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbc9f2acb	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc42e3871	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc74156bc	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd439c6c0	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf0f6fa31	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0x2c63e051	apple_bl_register
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/apple_bl 0xdab0f892	apple_bl_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x479b0bed	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x62f40c74	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x6a6b26ab	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x9a4ab10d	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xa7540a39	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xcbcf6e98	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xf3072113	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x7d1b515e	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xac5d72b5	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xbb8fd4bd	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x91da3e5f	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xc2ff8352	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x016e6c20	vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/vermilion/vmlfb 0x90c018c6	vmlfb_register_subsys
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x0e1cee08	viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x30cc9311	viafb_request_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x31469540	viafb_pm_unregister
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0x5a0b529a	viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4606f8d	viafb_irq_disable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xb4f863e6	viafb_pm_register
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcaefb732	viafb_release_dma
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xcd538333	viafb_irq_enable
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/via/viafb 0xfff2dfd2	viafb_gpio_lookup
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x0e338292	visorchannel_signalempty
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x21436db5	visorbus_read_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x4de03230	visorchannel_signalinsert
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x533f2963	visorbus_enable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x56401853	visorchannel_signalremove
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x57cb6d26	visorbus_disable_channel_interrupts
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x7a70dc8f	visorbus_register_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0x80cc22ea	visorbus_unregister_visor_driver
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xac0d4fe5	visorbus_write_channel
+EXPORT_SYMBOL_GPL	 drivers/visorbus/visorbus 0xc455c651	visorchannel_get_guid
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x06d5b488	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x336fbdb3	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x75e4d6c0	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7c17dc02	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x8f85ff06	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x9b232a7f	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xae51855b	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb97f45fb	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xc5b2ca26	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xcaa94d85	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xf7b63213	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x14ce5306	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x49594c62	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x4eb088c6	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x99f498fa	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xc5a3a756	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x0aee9c76	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x2e9dc190	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x0273b11d	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x7e17fe7d	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xe55f38b3	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x2f630d81	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3313270c	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3dce8f0d	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x49ea9756	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x9d06998e	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xa7559850	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xe402f53e	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x01a514f7	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0271f7b0	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x05a00e51	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0970288b	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x09fa3fc7	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0e193331	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0e4fdc3e	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0f371664	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x13130efe	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x13e47b05	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x140d6688	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x18911e90	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x19dad910	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ba07351	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d34fbdd	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e48e883	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f7b19e7	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x23de16f2	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2a0a413c	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2c762139	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f3c01a7	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f66b139	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f91902d	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x36c6ace2	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38800586	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39da5677	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3e518042	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4436cb5a	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x454358fa	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x45e21c90	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x45e72fd3	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x473f93aa	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4767f38c	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4bce2167	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c8917f8	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cf102ac	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4d8ae648	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x55e7e11e	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b1c143c	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5f8b39ab	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60721800	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x61505adc	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64428fc2	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x675be871	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6780c29f	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x684fd352	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6959736a	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6e88be10	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x733e50d7	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73cf4903	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x74ebf0b4	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7643181e	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x787b5d08	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7a596b2e	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8538a1a1	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8990a1f2	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x89f04f07	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8a7ad029	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8b3c0046	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e98e5a3	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f6c018c	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90249f95	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9092a4eb	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1e10f	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x945d0ace	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9462dd4e	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x969e9382	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x975076b3	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9795d0d9	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x97c6d7dd	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x99c0171a	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9c3ccc83	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9edbd747	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ee063b3	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa218aee6	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2c84c82	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa35bc569	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa435848c	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa47f8e55	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa52d54c8	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa5eeae4e	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xab079113	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xae20c997	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xafc5e85b	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb3636c3c	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb3e08070	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5076424	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb26c152	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb72c30c	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbd783b3f	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbfeb904d	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc005b0dc	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc53234ec	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc55f0e6e	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc72f6237	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc80f72d1	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc84906ca	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc1bf36b	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcc88e9ef	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcdaebc3d	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xceded185	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd02385c2	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd216b6b7	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2dcb78a	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd529d514	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd59da970	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd61d6322	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae4d0d7	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb88a902	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdba34af1	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc30afc5	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdcc7ed6e	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde8109f5	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde8cd335	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe2d15e6f	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe79f1f8c	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec511705	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xef352761	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xefe111c9	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0a78fe8	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf377503e	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf3a66230	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf6453615	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf663043b	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf7e6f726	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfae4b250	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfb4ccc45	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd2ff738	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xff13f716	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xff70c8b4	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xb9d32ef9	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x03e9d436	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x06340ae1	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0a0714df	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0a4ee91c	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12579f40	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x16283311	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1c76a27d	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1e4fc394	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2e77178c	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2eec3244	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x305c76d8	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3368ee93	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x377ac126	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x38fe5c0f	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x40c73601	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x43fb8c21	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x51b7d13b	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x52fe8184	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5c485bb5	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5cd57b17	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5d2b5051	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5d4ff781	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x668cff3f	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6d8d96d1	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e3cbe82	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e965616	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x71629128	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x71bd80a8	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x80d4b7e9	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x844c563f	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8aaec80f	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8aecde81	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8b6d01f4	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa1b3cd73	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xac1afd50	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xac2a3f73	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xac43f4ea	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xad1d3739	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb17f7016	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb90d04aa	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcf211d85	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcfb54302	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcfd1bf0f	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6b14772	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd8e419eb	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd9e32318	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe2b5c8b1	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe6920cd8	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe6bf5f6b	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe7d970ee	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe968f7d3	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xec6c2598	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xecd0ee18	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeee40267	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeef8b12d	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf840aaf1	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfb58c6e6	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc3e1163	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfea609ae	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x002704c4	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x961a4b1a	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xfd2cc046	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x7edd010e	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xf46be677	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x02a06ce6	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x28015b88	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x582954b8	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x85779415	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x86772dd9	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xdfeaceea	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe65e8ce3	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x449c103f	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x649d6f53	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xb8f6df86	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xefbaf152	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xf4ae8203	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfec78633	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x6f698cb0	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x93ecfe4a	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x94e4f5b1	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xa25e7250	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x470b962c	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x85fd5328	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 kernel/torture 0xfc2e3e08	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x72969328	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x861250cb	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x9055096d	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x99c516ff	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x1a4800b1	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0x3a41dcf8	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x4e960233	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x5a2adfb8	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x8076614f	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xdd1821f6	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x40823eaa	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4b7e0a91	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x5782d49d	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x59452969	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x855935c0	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xdcdccc4d	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x2b1737da	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0x393e6364	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x9cef58b4	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xe619c69a	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0x699655b7	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x1dd3f301	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x39a8f397	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x3ea73040	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xa284c5aa	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xaf0feae8	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xcf8d5286	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xea984eb7	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xfd01c1c7	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0xedc0989a	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x224c2744	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x26f05490	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x313a97fa	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x31fb6c5b	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x325ba9e0	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4896bd64	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4a1879c3	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x5bcf883f	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6dccc066	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6f08062d	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7132bbc9	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x79954bda	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9cb7bebf	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xa255c342	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb3578ecc	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdee45714	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xebb68c4f	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfc282529	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/core/failover 0x5cd44fed	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x70db3a18	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x8e478e2b	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x032fce5a	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0f7353c9	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1026b4ee	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x15281078	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x16f31144	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x18a022bf	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1bf3fd7f	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1f1a0378	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2e9fadd8	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x30980357	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x30fc83b3	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x35b8eb43	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3fc5513a	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x435b0502	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x65a4aadc	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x668d19b2	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6886c0db	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x698272ec	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x741f4c54	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7911a1bb	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8cbab29f	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9127d8d0	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x99a3044b	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa1a87af0	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa6e503a3	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa89cb26c	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb05413c3	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb6380da3	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd9d15efb	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdcf2aa11	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdf5467de	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xe8259273	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf1461de1	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfc2282a4	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x60014e3b	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x69478de9	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x8128aeda	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x8a70ad6c	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x981720bd	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xbc77c015	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x191f2115	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x22b00a67	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x29059d8f	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3c80cba6	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x476d09b7	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x497024c6	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4a7c9e93	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x4f0baa6f	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5eed43ba	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x65c3fc70	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x74c878b8	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8732b0b7	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8bdd9ddf	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9925c404	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa8c68649	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbd771699	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc0e786a1	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xce964ae1	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd496864f	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xdde1be84	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xfd10caf3	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x33e20731	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x8aeeb099	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xa4332269	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xa5161a5b	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x2463f3e7	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x4c765dfb	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x516f0cf8	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xe7c5af6a	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x7c38d75c	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xdbadb564	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x4739b5a2	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x4de1e7f7	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x8704d72a	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x43bc5ced	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xf0334699	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2132107b	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2464a6bf	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x5420740f	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x548946af	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x5533abb4	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x80d41239	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xa5140efa	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb867a781	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xdf3d13bd	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x9a81fb9e	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x0813503a	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3d652f0d	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3eb8ba8e	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x54fbcdfc	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x616ee6df	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x762c055a	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x7998fc3c	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8c4573f4	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8e5dcf2a	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x92f1eb37	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x9808d17c	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa6a11ba6	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xafada73c	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xbb65cccb	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc2b01b86	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdccd6b22	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0xe916c0c0	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x8503f993	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x41d0e0e7	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x8bcd4697	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x48ae1bf5	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x647f98d0	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xe308bf5c	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xf038279e	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xf7b647c5	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x183e3a97	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x3bab9c81	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x4b18c219	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xa3f16f85	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xe09e574d	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xff28299d	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x261559bd	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x7fb8fd1e	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xc9121736	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xcdf5c427	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf7616bae	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x095b53eb	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x0b09ee44	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1f86766b	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x20f8b7e8	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x2d77972c	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x85d54d0d	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x8fbc57e9	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xd2efb7f1	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x086972b2	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x92b8961a	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xfad093c7	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x45eb8f70	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x6b03b71c	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x76073d44	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x73024ef9	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x91af105b	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xdb79461e	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x45086f41	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x6bbe3787	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x2fb650ff	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x0f4aa184	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x1d374aaf	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x57308fdd	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x66daa183	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xf5556d97	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x9f599bfe	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x0078e814	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x84891dd3	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xa65f3a2a	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xa9791b1b	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xc91a250f	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x121f4bbd	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x209db10e	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x2d909430	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4e27bb6a	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x63c0a28d	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x649a6770	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6db969a2	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6dbd0214	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8accbb7f	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8fb0aa82	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x9bbab3ca	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xaecf560d	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb3d84d47	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc365fe0a	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc58adb39	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd8fa09ce	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xdbe22700	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x41076df9	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1410793f	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x2f145e0c	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x350746a8	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x616cd756	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x66a8b094	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x81629117	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x82b6eacf	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa8a55702	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xaaba3ec2	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc3c4e47e	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc6ab4867	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd02f9de7	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xda4a7a32	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xda830b16	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe33ea271	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xeb66bb9d	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x5d4f8794	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x5da1dbae	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x855427c2	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x866c0b03	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x95922f12	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0165a7f2	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x185bdffe	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x226bfe6c	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2d0293ca	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x3d1d37d4	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x46faf998	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x63ddef4a	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x69eefda1	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7c6acb1c	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8db35401	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9ccc4238	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9cdeeb52	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaad0f41e	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd02447f6	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd6710dde	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe3cbfc9e	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe69fb190	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xfa458b98	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x39cd8734	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x5d4418cb	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x9bd09ad3	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xe0f1a012	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x09ff2990	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x57d3dd31	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x708fd2d5	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbdfda32c	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xcfe514aa	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00c2d59b	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x03cbd979	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0cb39d85	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x120fed37	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x198eb592	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1c59a6cc	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x233de900	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2644c2a4	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x269de40e	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x278d4471	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2e6eda79	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x315a72d0	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x318deb26	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x33b18484	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3bc80bc8	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c5ad8e7	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x40d606f6	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x477804c8	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48a78ab4	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x49f676d1	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4d929871	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x54e98355	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5cef27b6	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x658b4ed5	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x65da640f	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x66724196	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x69f40f03	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6a3a6cba	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6da6d31e	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6e7b557e	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6fbc800d	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x72bd538a	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x76016fef	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7718f212	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7720d847	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x78ad9e90	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x78f9e1a8	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x79f579d0	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7d84ad49	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8173b7f8	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x81b1df3a	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8520944a	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8698ebdd	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x89a500c2	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8aed0a44	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e9a0916	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x90f90128	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9350114b	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x93df78d9	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9663a7c3	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x982bef16	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x99a4f31f	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9dd0640c	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9e9be60a	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9ea5184e	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9fed5918	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa18339ca	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa24ed6d7	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa34791d5	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa5a6108f	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb2a192c9	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb2bbdeab	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb9e0a500	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xba3779b2	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbdcf9317	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b3e361	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc8d87507	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcb342a29	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd0a4f2f6	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3448225	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3e6aca4	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd64fcccb	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd8ac7ef7	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xda61711b	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdc631da2	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe8ca682a	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xedc9363e	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xef517102	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf52347bb	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf63abaf2	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf8fb417a	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xb935ad9a	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xace907ae	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x2211e8ea	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0e4eaa78	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x108aa07b	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x13e62bce	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x146674c8	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x3fd8c85c	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x4b6f0ca2	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x61c23e2c	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x87e0554a	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x8c2acc0c	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x97457dd3	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x71ade91a	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x03a03f54	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x96a45a75	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd88c6531	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd8bf7e0c	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x41474684	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x522d5fbf	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x56f4cfa4	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xaff74e10	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xba94fa12	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xc8f5fb97	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe8cbabe2	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x905bfcd2	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xed737a26	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x1a8ac261	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x251f802c	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xe7dae6f3	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1bb5a3c5	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x48b8bccb	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4deee27a	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5e8066e6	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6ca06afa	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6deb5801	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x83cc3a9d	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x842fb0d9	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x958dcad4	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcfe97d4f	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe228d015	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xef01585d	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x45996239	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x45d11d08	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x54960411	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc735ba86	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xd57f3334	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xdc68da37	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0493d396	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x06d9d179	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x10a90420	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x199dc361	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1eeadcfe	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x435b7a9d	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x585ad891	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x68ed7e4b	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x8074b654	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x865f67d4	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x895ef795	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb5622406	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xcbb3e857	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd375ea36	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xea13143d	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf5a1b75f	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0296883f	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x056a8a70	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x50e34914	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x5d791f88	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x641fbaec	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8650218a	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8bca7716	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x9ac86aa2	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc9a1d283	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xdfbae32e	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xf5934fcb	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0fe1703c	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x169756e3	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x21bc218a	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x22dc1a89	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x29c0b3d8	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x306c8283	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3083c4b0	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x310b6957	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x31f1970b	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3965cfef	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4a9e9d20	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x57961184	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x630b815e	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7021f91a	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7722d006	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x83e2284d	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x868a36da	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x86c9da15	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8857dcca	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8db3bf3b	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x92adcede	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x96ac2ab8	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x987aab50	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9a8dd269	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9bd599ff	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9fdb5317	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa4ec2e53	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb2649562	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb4b9e0d0	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf86cc8a	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc792f061	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xda75ee19	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xded0fc96	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe44219bb	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe773c461	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfa5b3538	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x34aa8f6e	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ea37830	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xb3a1c42f	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf28a6102	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf9ac6df8	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xff937873	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x17e58b3a	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x9cd29256	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xdf9f7faa	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x0d9b29d8	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x5a1f3974	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x0f0d96d7	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x461fbd41	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x7350c1a3	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xc29d8004	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x188c00d1	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x7bb56497	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xfdf7837f	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0179c888	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x133aa787	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1b854563	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x347162c3	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3b4e319d	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4a35917c	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4b918b00	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4ebe00f2	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x647d5c3f	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6804b07f	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x839f59f5	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9601e21e	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x98e6dbc8	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa6a87b4f	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb058b6a5	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbf25029f	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc378128a	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf0d9ef16	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf33ca261	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfbbad3d1	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xff2a5df6	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x921f918b	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xb7fc1527	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x5f5483ea	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x91dc13b7	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xc2f167f0	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x174b7fc0	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x3545fd0c	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x8295b286	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x3718f279	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x469061c5	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x04609290	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x19690c36	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x1e531063	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x38077feb	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xbe500431	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xfa93215f	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x392c751b	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x5cde75d7	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x77122a24	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x8d58ba08	psample_group_take
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0123e339	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x09b6e7a0	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1493d369	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1e7ff7ea	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x20c5e653	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3067565b	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4fe02ba4	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x509c90ef	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5b9f1910	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e77a1da	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6b57f104	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x701aaec4	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x70f742cd	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7edca9fb	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x803384bb	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85cbe9cc	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x88aa4ec2	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9014b649	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x92ae1826	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa8db6125	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb19cc095	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb237eb70	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb2c3dc33	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb4de78f1	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb8e97504	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd4460f48	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd885c87f	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xebf76edb	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xec40e083	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x1988b4c7	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x291f5300	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x947392f0	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x96a7a01e	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x1c590909	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x5304a732	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x702410ac	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x890c0940	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8c349b3f	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x944fc0ee	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb7758eb4	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb89993ce	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xbecfa3d1	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe4c45e4d	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x205cfb9e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x4cc61a89	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x7260d852	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x9364849a	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04c190cc	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04e3834b	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0635d2fd	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x069c87af	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x081ea125	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09873877	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x099e8abb	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09c8e888	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ba9003d	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c66a046	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0d86ef88	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e1c522b	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e74e205	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e7844e0	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10c149b2	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1227ee0a	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x122b1fc6	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x129c54ef	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13afd38c	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13d0e397	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14d15565	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x164cccf5	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x165e96b4	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x182fc913	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18a87d5a	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d319d15	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d9fb595	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e53246d	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1efa4dfa	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1fa893fe	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x201b319a	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21001204	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21887324	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22c811f1	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x230049c7	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25947e19	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25f4337d	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2750b139	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27604974	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x28762a17	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x287d801a	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x292e530a	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2bcd975f	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c931c45	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2eac333b	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30081d26	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x311f5be9	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3120d5d0	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31810c24	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x33c846a6	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x341751bf	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34b82ee7	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d1d522	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3545fa5c	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36c84018	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3861e90f	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a9a0978	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3aaa660d	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3c009d7e	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f7beaff	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41d74348	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x423c0e7d	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x441bba29	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45759189	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45ccc680	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45dd93ed	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4742f258	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47a8cefd	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47b58255	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49e24d41	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c8170a9	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c8d5ede	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ed8d778	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4f2a62b9	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52226ea6	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x524b6853	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54ece5ff	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55c10e63	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55ee88fa	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59c8a4f5	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a3c1b8c	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5af6075e	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b7306c7	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c45f6d0	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5dae2779	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ec54db7	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5f01d764	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5f1bf8b7	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5f80d2ef	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6335f9b3	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x637cc60d	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65ff2352	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x677edbe7	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x680e8919	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a837eae	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6af4d8c7	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b2bae53	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6b9a0d38	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c71fe5a	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c81df1b	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d3d3e93	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6dcbf359	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e1a9776	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f16d26a	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fd6b0ec	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x708716bc	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x717fb84b	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x739571de	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7510aa79	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x758835e6	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75df5f74	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7dedfa6e	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e3dbba5	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80ea5300	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x818ba647	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8585663d	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x86bfee14	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ab3683b	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b3cf661	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bdf9213	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d3c5720	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d404f23	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8df73114	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e885665	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f2c2d4a	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f98736e	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9000abec	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90fb3641	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9443a9fc	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95565b3f	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x969737a3	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x998bc3be	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ad048d0	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b00781c	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d93bcc9	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f5b49cb	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9f83de3e	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa17d1a8d	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1b0acb4	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa34e157e	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa646c314	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaac7f8d7	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab7578d3	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad59a5ed	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb0ab8855	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1629ff0	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb169277b	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb25e7768	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb3232ddb	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb328fbf3	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb68e8f0e	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb88b764e	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb8ac2e1a	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9a219c3	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba84d898	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbbbd0292	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbcdf6a57	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbd28e68c	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbeefa397	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf032c2b	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbff70d6a	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbff7fec9	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0f69dca	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3361944	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc4e2c9ba	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5cb5d6d	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7736fb0	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc83da8a7	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8465df1	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc95523e3	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc9591668	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcc719a07	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccab4796	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcdc1e8e8	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xceea9d74	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcfdc3653	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1bea5a8	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd219185a	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5a49b16	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd608616d	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd6e0d5e2	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd73b75f8	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7b4f28f	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7cbe562	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd8e39aef	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd92a7005	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9fde576	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xda35e64e	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdbe54bd3	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc6afb76	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf352f1a	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe025d7ac	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe475efa4	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe68ddb8c	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe743f82d	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe75c9ef7	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe789144d	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe88cacad	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8943b39	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe94b1470	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9d4f24f	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec2d48da	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec7f984a	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec86bc58	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee6101c2	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef0a213e	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf08966b5	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b4a615	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf10d6290	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf33f68ef	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf3cbb0ee	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4717438	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4ad2aff	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf588b25f	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6f82a9c	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf790660c	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf83f42eb	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf97adc22	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfcd1a5d9	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff73f371	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xffe7489d	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xce6859bc	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xda129567	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0658468e	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x09b3402b	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x09b6618f	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0de50285	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x12c28f16	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x13c910be	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1d86dda1	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x23b03bc6	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x41996cd3	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4f0b185a	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x540ae5bc	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x56941a9c	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5b5ca612	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6645181e	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x727bffc8	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7495d9c6	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7dcb27ed	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7e7cf745	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8168eacd	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x87b4a491	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8cfb78d3	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9461180b	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9fbf7c34	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb8e25aae	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb9184942	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xba58c1d9	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc736ccea	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc87e2587	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcfac848e	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd4b77dc6	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd923d697	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe22475ec	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe6fa3db4	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf11c692d	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfc82accd	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xffa49e1a	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x00315f64	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1a0e84ad	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x20254186	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4ce945ba	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x67e44a92	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6c0b26f2	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7bdea809	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x85e40cba	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x885c1132	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x941c393d	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9ff0da0a	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa80b06b3	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb9433fdc	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xeb83292e	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xebfcd19b	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf8a45303	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf9c425f3	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfc54636a	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x00284e05	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x085e1ca2	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x0995f596	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x0bb33b32	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x14aac5b7	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x17b0efc6	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x640205be	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x743a55e2	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa2cd9e65	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa9a43a71	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xca9158e3	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xcbee8f42	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xda120d32	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1c5f2b0d	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x40fab0d1	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x5725a5f5	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7cf4c043	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8258b1c7	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8cf3aacc	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x90d15961	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xae6a1cfb	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb0e79108	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb2e444a9	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb85e4f6d	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xcc87a0fa	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd11ad12c	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xd5bf1099	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf2d53a24	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xffbd617d	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x02cffe3c	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x39ff8a80	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x805de6f4	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xf5e78f57	ipcomp_input
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0xfec51e5c	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x436d2895	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5f752b55	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x7b191392	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x872f6460	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x8fea3a93	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x99ad6c54	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xa3103992	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xaebe0f72	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xb6368528	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xeeeb02cf	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xef30610d	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf7bef4f3	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x236ea891	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x6e034348	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x771d7ac2	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xec659ea6	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x020b45c5	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x1efbfba4	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x27ea89a4	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x55243a51	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8bc13b8b	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xbd53fcc4	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xdff5866f	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xe06e38ab	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xef39040f	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xfb66d3c1	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1db9c348	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x28679fbc	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x6fa5631e	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x858f2652	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xb4b542f1	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xcdae8005	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xe8784263	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xee5dad57	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf0630a61	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf3380fb7	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xfb87f320	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x6f9c8b62	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0xbc30d1f1	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x27f47b0f	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x88569cd3	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9c7754a4	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xbcafb237	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc9bd8640	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xd9bb182c	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xf43e0f42	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x003c11ab	snd_hdac_ext_link_clear_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x058bf450	snd_hdac_stream_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x07bae5fe	snd_hdac_ext_bus_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x0c79e00c	snd_hdac_ext_bus_get_link
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x128d87c6	snd_hdac_ext_link_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x1cf7d9fd	snd_hdac_ext_bus_link_power_up_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x203734ec	snd_hdac_ext_bus_link_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x21fb7559	snd_hdac_ext_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x25b13703	snd_hdac_ext_stream_set_spib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x2af462ac	snd_hdac_ext_bus_link_put
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x30588c0d	snd_hdac_ext_stream_set_lpib
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x3310f5d7	snd_hdac_ext_stream_init_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x60afe69c	snd_hdac_ext_bus_link_get
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x6bc5fe42	snd_hdac_ext_stream_decouple
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x6ed4813c	snd_hda_ext_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x71d1e585	snd_hdac_ext_stream_spbcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x801994ff	snd_hdac_ext_bus_device_remove
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x82e53e53	snd_hdac_ext_stream_get_spbmaxfifo
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x908bce35	snd_hdac_ext_link_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9cb7916a	snd_hdac_ext_stream_drsm_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0x9e2e279f	snd_hdac_link_free_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa405632f	snd_hdac_ext_link_set_stream_id
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa6bd730d	snd_hdac_ext_bus_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xa7c7a618	snd_hdac_ext_bus_ppcap_int_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xad3b5b53	snd_hdac_ext_bus_link_power_down_all
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb5f993e7	snd_hdac_ext_bus_link_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb6e3f6be	snd_hdac_ext_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xb970c2ca	snd_hdac_ext_stream_decouple_locked
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xba80afa4	snd_hdac_ext_bus_ppcap_enable
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xbc742b49	snd_hdac_ext_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xbe385eed	snd_hdac_ext_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xccd8f949	snd_hdac_ext_bus_get_ml_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xd8b3e5c1	snd_hdac_ext_link_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe3599aad	snd_hdac_ext_stream_set_dpibr
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe5e7bbfb	snd_hdac_ext_link_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xe8203346	snd_hdac_ext_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/ext/snd-hda-ext-core 0xf4c1e4ae	snd_hda_ext_driver_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x023c969f	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x11cdba78	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x13959fd7	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x144082e9	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1e7e171c	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2147625b	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x256902c7	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x28bb9416	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2b573111	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2bd71aaa	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2bf673be	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2cd57267	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x302e6e2d	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x35135361	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3aaa1a10	snd_hdac_stop_streams_and_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3ac2c472	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3c4bd5ae	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3e70ba46	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x418d3522	snd_hdac_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x45ecf61f	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c02fe24	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x52ff51e0	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5548498e	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x592b8888	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5ac01320	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5d73a4d7	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x65a7590d	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x65c0265b	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x664028ba	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67db0711	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6c7fe374	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x71395ba9	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x72519770	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7602808e	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x79ebefc3	snd_hdac_i915_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7c2dd9d2	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7fb8115d	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x81c9b226	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x824f9046	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x849906f6	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x850e5cb8	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x856e5158	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8593d865	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x887af47b	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x929893cb	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x96b3bea3	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9e24063b	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9ed2bb76	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f2d7484	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa004a88e	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa3726996	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa41f9219	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xab9258ad	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xac1de45d	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaf60d70f	snd_hdac_i915_set_bclk
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb0b8368c	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb447e1f2	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb7a0f587	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe038e82	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc2593b72	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc344b4e2	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc895156b	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd0c47977	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd1b84599	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd62b335a	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xda7a0470	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdbc3320d	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdce3c935	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdd864917	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdf36a80c	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe98781b3	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xebe5159f	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xecf46c2e	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xed6e6bee	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf0312d16	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf1406763	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf239b7f0	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf3341255	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf4d71235	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf52e461e	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf5d2ae96	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf7b8627c	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfa6f4e76	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfa999699	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfc1e2bc2	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xffe06030	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x4fb27709	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x872b7e63	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x9e1798dd	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x55d524b9	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x710bd564	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xa02e28ec	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xc3c70b4e	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xdf3e49de	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xe5323878	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x003338cf	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x016c86ac	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x016cd39e	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01ebc1e8	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03497e70	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x05f20776	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0676f5ac	snd_hda_get_input_pin_attr
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x081a9430	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x09c602ab	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x09d956b2	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0a9c6e3e	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0b54f2ab	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0de60bbb	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x10db1179	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x10f9d203	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x121762d8	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x170394c5	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x17a64bce	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c36f491	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1e53f7af	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f3bfbc8	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x22e5e498	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x23f96549	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2b868f9a	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2bde7323	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2ecd3eab	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x34416666	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x358fed4f	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3a60f02f	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3b473a35	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3e462d5a	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3e765600	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3fbd5d6e	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4089dc94	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x411fc917	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x46655da7	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x486a6677	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4aa942cc	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e99ddf4	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4f446c96	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x521f0122	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x52e4d5da	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5af467fc	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5c108390	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5cc9900b	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5e231d36	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x626eb0f1	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x647ac774	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6739bd60	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x67fa7932	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b5df2ac	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6d528478	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6e41d9d5	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6fde61b9	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x724226e1	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7242c2f0	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x75920af6	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x76dec963	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7763d274	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7769b734	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7f0072c8	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7fa99203	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8055ab36	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x80acba3e	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x83ee7cf2	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x847b8dda	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x84a2de44	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x863fb49a	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x883a109f	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x888cacf2	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8b0fd6e4	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x913f8707	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91e6d3cf	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x935080d3	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x96a55d8f	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9728e2f2	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x98e2a4ce	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e3aa47c	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9f31289f	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa0ed9272	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa64cb50d	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa6f083d8	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xad082624	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae2f14a0	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaf877c7a	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xafe7b6ee	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb1c532ee	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb815c178	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb98559c5	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbaa7de6c	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc09924e	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbc5c39e8	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbcd7410b	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1f96831	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2b7ffeb	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd016e74b	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd2524e39	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd88795e8	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdd975e21	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xddfd3cb6	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdeaa9eae	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdeedefda	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdfcc68bd	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe0164ba1	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe072cf15	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe1601353	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe5920f85	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe719ab6b	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe87c0a95	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9fbbeed	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeac06d1c	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xebaa90d1	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec116aed	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xed317e77	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf37902ff	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf6055342	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf6ff2eac	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf87b0aa5	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf9002ab4	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfc8b65ae	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd3b5d47	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfda7fd14	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x00696852	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x111abda9	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x26bbe086	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x38e1396a	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x3c8e7845	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x3feaecff	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5a35ff39	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x61bc38b3	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x68d85706	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6a5a6649	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x725dcadb	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76dc6871	hda_main_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x852ef0ba	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x871a6e44	hda_extra_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x8aac2444	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9def7d13	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa2a56c33	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa81197dd	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb40657a3	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc71c1928	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xca21a11d	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd7bb5cbf	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe2459c5d	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xf219143e	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x65523e57	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x7025c8f6	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x0a2c4ba5	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x354f3526	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x4d4bcfdf	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x664581b6	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x79b83b5b	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x87fd04f0	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x8d18cc87	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xb8dec97d	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd2ce4d31	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xdae53b18	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x30b2b528	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xd542dbdf	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x1ba8b0f3	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xa0c75fbf	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xbfa2f679	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xdd957f73	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xdfffbdcc	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x49b8c0ca	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x4f4810c2	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xc91cbf15	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x64014876	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x7f9e34bf	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xd79999f6	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x22a355ce	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x58185d95	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hda 0x0942ca3f	snd_soc_hdac_hda_get_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x59685faa	hdac_hdmi_jack_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdac-hdmi 0x81872ac5	hdac_hdmi_jack_port_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x3dc2ff1f	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x8f2f3384	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x72668e38	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xa2580734	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xcae03f77	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xe21681c3	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x78faa7ae	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8825 0xc339a407	nau8825_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x4b986df1	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x99ee5d44	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xa52ba52c	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x2d01895e	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xa29b0904	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x3b8ad975	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xda278ed3	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x21dd7dc1	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x297381da	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x667f14d3	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xce6fa792	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x1963cee7	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x4a2a7cf5	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xca68c614	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xcd1c6daf	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xa7aa810f	rl6347a_hw_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6347a 0xade4bf4c	rl6347a_hw_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt286 0xf87cdc11	rt286_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt298 0x00bdd909	rt298_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0xb358ae3c	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0xb700fed1	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x5d3a379e	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x94a29ebd	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x8b674033	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x398f41f0	rt5670_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0x3e434763	rt5670_jack_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xe3a4b75f	rt5670_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5670 0xe7e24b6f	rt5670_jack_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0x31985137	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x67956035	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xccb8c8c1	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5682 0x74dc5ef6	rt5682_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x2420bf7f	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x63fc8fe6	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x95fc48c4	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x9a7e9160	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xc01dfc3c	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0xa05c0140	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x880f48a6	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x27784eeb	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x6dd6c271	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xe5d743ba	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x1c5e3e70	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x7b9ca78f	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x80cf9e27	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xcb160901	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xf94d7691	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x84bd6876	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0xc1c6d290	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x42a3aa48	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0xb15e04f1	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x0948f262	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x0ce23f90	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x0d78dc47	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3dae16de	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x457240ce	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4836d441	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x518f0989	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x628554d8	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x6ca36487	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7e4beb9c	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x87ae590a	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x89c76b7e	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x932f19c2	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9769a7c0	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xc8cc01b1	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xce49a4fa	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd5b6a49f	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf16924f4	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x70455662	sst_unregister_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x815f5eb5	sst_register_dsp
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x46dbf9b2	sst_alloc_drv_context
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x503bcfae	sst_configure_runtime_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x6a48f2e0	intel_sst_pm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x709cd25f	relocate_imr_addr_mrfld
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0x73d81701	sst_context_cleanup
+EXPORT_SYMBOL_GPL	 sound/soc/intel/atom/sst/snd-intel-sst-core 0xf4bd178b	sst_context_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x00899c7d	snd_soc_acpi_intel_baytrail_legacy_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x08c27da9	snd_soc_acpi_intel_cml_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a6c545b	snd_soc_acpi_intel_icl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x210ac95b	snd_soc_acpi_intel_cnl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4c028d30	snd_soc_acpi_intel_skl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x4ea3c4ed	snd_soc_acpi_intel_glk_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x52195614	snd_soc_acpi_intel_cfl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x59a53c32	snd_soc_acpi_intel_haswell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a93176c	snd_soc_acpi_intel_cherrytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x6038550d	snd_soc_acpi_intel_kbl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x8b43f2f0	snd_soc_acpi_intel_baytrail_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x98f106aa	snd_soc_acpi_intel_bxt_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0x9c3d1561	snd_soc_acpi_intel_hda_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xcbb222b3	snd_soc_acpi_intel_tgl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xd5af17b7	snd_soc_acpi_intel_ehl_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-acpi-intel-match 0xe7826509	snd_soc_acpi_intel_broadwell_machines
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x003c2746	sst_dsp_ipc_msg_tx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x094c903d	sst_dsp_shim_update_bits_forced_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x12303439	sst_dsp_shim_update_bits_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x16e86983	sst_shim32_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x1a9b5cc7	sst_dsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x1bbee70b	sst_dsp_stall
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x28c8f6a7	sst_dsp_shim_write_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x2d8907d6	sst_dsp_ipc_msg_rx
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x33b6c852	sst_dsp_outbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3e611e5a	sst_dsp_shim_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x3eaaad5b	sst_dsp_shim_update_bits64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x4725b3c5	sst_dsp_mailbox_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x555e12e4	sst_dsp_shim_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x6b59d290	sst_dsp_sleep
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x765ad9ec	sst_dsp_inbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7b0fdc9a	sst_dsp_shim_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7b7c4290	sst_dsp_boot
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x7e78b2d6	sst_dsp_shim_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x829623e2	sst_dsp_outbox_read
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x87cdf7d2	sst_shim32_write64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0x8a896130	sst_dsp_shim_write64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xb5727a6c	sst_memcpy_toio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xb9c5babf	sst_dsp_shim_read_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xc94f4164	sst_dsp_wake
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xcce806d5	sst_dsp_shim_update_bits64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd4fa29af	sst_dsp_inbox_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd72a34c2	sst_shim32_read64
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xd96dd9fb	sst_memcpy_fromio_32
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe4cf7d82	sst_dsp_shim_read64_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9af8c63	sst_dsp_shim_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xe9c6de99	sst_shim32_write
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xf3e5c716	sst_dsp_register_poll
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xf499bf4f	sst_dsp_shim_update_bits_forced
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-dsp 0xfdc319a4	sst_dsp_dump
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x030ba891	sst_module_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x03849880	sst_module_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x06e4bb91	sst_module_runtime_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x16549962	sst_fw_free_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x26e729f2	sst_fw_unload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x2ace439e	sst_dsp_dma_get_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x32388f75	sst_block_alloc_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x381dff4d	sst_dsp_dma_put_channel
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x4964ece0	sst_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x4b9339ec	sst_module_runtime_save
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x6fef612e	sst_dsp_dma_copyfrom
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7459bb34	sst_block_free_scratch
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x7c9bd3e1	sst_module_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x8491faed	sst_fw_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x88e4f69e	sst_module_runtime_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x8bfdc87d	sst_mem_block_register
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0x9f2cc6ca	sst_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa2868fc3	sst_dsp_dma_copyto
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa32c1da6	sst_module_runtime_restore
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xa6851d0e	sst_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xb5da92cd	sst_module_runtime_free_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xbde1e139	sst_dsp_get_offset
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xcf731bd1	sst_module_runtime_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd004a195	sst_module_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xd0d3c80d	sst_dsp_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe0feac79	sst_module_alloc_blocks
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe529b656	sst_fw_free
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xe81fe16e	sst_module_runtime_new
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf335cd60	sst_fw_reload
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-firmware 0xf954d7a2	sst_mem_block_unregister_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x1a3d2f3a	sst_ipc_tx_message_wait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x266637ef	sst_ipc_tx_msg_reply_complete
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x39ad82a0	sst_ipc_reply_find_msg
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x66a615ff	sst_ipc_tx_message_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0x90c2ec07	sst_ipc_fini
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xa6899cc0	sst_ipc_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xb6fd0b4f	sst_ipc_tx_message_nopm
+EXPORT_SYMBOL_GPL	 sound/soc/intel/common/snd-soc-sst-ipc 0xe7240e98	sst_ipc_drop_all
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x2d017ff9	sst_hsw_dsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xb40ff91f	sst_hsw_device_set_config
+EXPORT_SYMBOL_GPL	 sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0xfc74cd27	sst_hsw_dsp_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0113a783	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x01505841	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x02a467d8	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x02f1ecbe	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0317f67c	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x06247bb5	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x06b0d1a1	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x08be23d1	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0d47c8fc	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f21c438	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f7ccec6	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11317861	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x132d2169	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1455e129	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x148c1e78	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x14d09dd3	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x158a8720	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x15b541d9	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x169734db	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1a2d3659	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1a8bcc13	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1c1c7c5b	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1e95e289	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ea207a2	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ea390aa	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1f30c391	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fe5b2bf	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x21c2cd78	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22cde99f	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2948bbcc	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2974202e	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2cf34a2d	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2d41848f	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ff06b0f	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3095b73a	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32339295	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32547993	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x32d3031c	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x342e062f	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x34b69d22	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x36bdce98	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x37a6f6ae	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x42106581	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4461d629	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x470f62e1	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4824bf52	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4c564515	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4d2f4ba6	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4fb0c3fb	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ff3cbe3	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x503e4fa4	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x50cf0086	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x55a8d4ab	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x587523eb	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x58d54cf6	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5a3a3020	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5afdc29a	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5cdc9156	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5da3700e	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6382c6ae	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6574bb32	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x661e88da	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x66988388	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x673f7430	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x692e616f	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6be8a217	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x704ecbf6	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x717b4f13	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73188bc1	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x740d140e	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79803378	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7a4c9754	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e1bb784	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e85afb7	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7ea1578f	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x80423c08	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x813df1db	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x835f61f7	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8366ff26	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84239488	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x844e7666	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84604e36	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8740add6	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8903e34c	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x890c2a4b	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x89ece56d	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8c7ab94f	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8f7dacbe	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8fea69c5	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x90f187ec	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x912d61b8	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x919a7d30	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x91a604a2	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9441c57a	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x968cd5c8	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97156edd	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x98cc3b04	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9bb0fe9e	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9c48d522	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9cc46ae6	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9e35bba8	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9eb2e216	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9f569bb0	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa033931d	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa2e4bf6b	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5835d11	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5aa6b6a	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa6e36779	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa823997d	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa85718c4	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa461c92	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xabeb8a9c	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xadd4b5ec	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xae26cd04	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xae3a1d8a	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb44689fc	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb99f66a6	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbb465e1e	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbbdac783	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbbf31de2	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbc65222f	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbd4df8e7	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbff17c1b	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc137672f	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc30e244e	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc3d7de4b	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc4ac90e7	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc704dc20	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc97fe245	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcb856629	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc4ce8cd	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc5fa78f	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xce157915	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcf6d019b	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd3285797	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd37682c2	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd5510f63	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd6098731	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd928560d	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9768d88	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdb130b18	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc60e10f	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdd65cc6e	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf44ef99	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe0f7da29	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe2d9915b	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe48bfb99	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe4f82e8e	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe57df480	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe696b02f	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xee847331	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeffebba8	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf3d15a41	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf4354c31	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf60777e0	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf69daad2	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf7234e9a	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf73b58bd	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf777e228	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf796089f	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf79a171e	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf943a042	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf984c0ea	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf9e7493c	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf9f5de94	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfaaabc17	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfb56657b	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfd62c92c	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x175f7fae	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x1dc049a9	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x87455112	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xf0ab9dd8	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x14a683d2	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x26ec5455	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5ac5fb5f	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x719d0b97	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7ab929e5	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9d389cd8	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb0f886cd	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb10d9fea	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb7b66c11	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc1988f1b	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xca6e0d24	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xcfc33053	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd589cc1d	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf42d5669	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfb06f57e	line6_init_midi
+EXPORT_SYMBOL_GPL	 vmlinux 0x00152a0e	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0034f3b6	xen_has_pv_nic_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x004edc6f	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x005ebae1	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x006a2301	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x006d1dfe	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x00720683	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x007ae3ec	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x009a4906	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a0990d	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00df54d3	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ef4ad3	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f4f862	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x01003ee4	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x010bfcfb	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x011b94da	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x01201625	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x012ec985	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0151867f	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x015891c8	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0162e6f3	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x016fed73	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x017bf593	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01848a8e	local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x018b3d1e	intel_pt_validate_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x019f3cac	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b10fca	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b994e8	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c12c32	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c169e3	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ca1792	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ce74af	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee5532	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f05e89	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f73b81	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x020505a1	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x020777c2	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x020dad80	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x021c2545	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x022308c4	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x02248672	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0224d22f	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x022dec0f	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x02395979	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x024e641a	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0257ec98	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x027ac611	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0287f131	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x028c3023	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0294a804	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x029a8645	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a28d77	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ac9d38	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x02af5085	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c54f74	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ca201e	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e20f87	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x02eac6af	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f67b85	xen_find_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x03094828	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0310c917	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0314c2cd	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x031dcab5	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x0324c853	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x033df712	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x034453e4	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0345e8ca	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0355e169	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0361cfff	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x039724ad	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a50e7b	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x03af28a6	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d323a2	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d8489b	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e1019f	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e9adb0	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fde3db	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0401ad34	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04346afe	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0436b85f	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x043e26d4	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x044361d8	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x04805c72	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04910c19	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0x049929c0	hv_stimer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x049e5156	gnttab_try_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x049ed708	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c57a47	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x04cc256c	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f25564	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x050c3f76	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x05171058	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x053cc78a	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x054303a1	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0545fc29	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0555a082	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x05612f84	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x056a33c9	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0574539f	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x057455db	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x0592d8b1	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05ad6006	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b19973	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c2c421	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f04443	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x06039961	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x062287fe	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0627e32c	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x06347c8d	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x0646829a	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0647982b	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x0650a184	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x06559282	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x06664233	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0668cccd	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0669e12e	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x06701dce	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ac7fc7	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b73be3	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x06c99f41	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cebd02	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d0ce4e	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ec5423	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x0700ef5c	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x07050fce	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x070a78d6	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x071af85a	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x07231ff2	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x072dbaa7	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x073a9460	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x07513903	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x075b82b8	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x078a8d8a	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x078c05fe	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b1e029	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b64d81	hyperv_stop_tsc_emulation
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b8ccfd	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c9d214	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d1d3c9	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e20925	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x07edeba7	hv_free_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f3d279	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f60ddc	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x07f6bab1	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0811013d	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x081381c5	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0829767e	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x083638cb	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x08389baf	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x083efbe9	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x0864c628	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x08707758	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0871904e	xen_remap_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f488a	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08937107	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ab93e9	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ad3b75	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b11571	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c8596d	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d39bcb	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e53215	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0906f682	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x091d7aed	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x09229ec1	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0925493f	clear_page_orig
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x093d43d4	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x094d5d8e	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x0950a706	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x09620674	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0968ff44	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x096a7e6f	x86_spec_ctrl_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x096da146	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a05350	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x09af2914	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09be93ce	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x09fa29b6	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a061bf6	usb_acpi_port_lpm_incapable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0d522c	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a13b529	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a28921c	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a502c98	dmar_platform_optin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a54b06b	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a5984fc	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a5d69a9	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a65890d	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa410eb	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab16917	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abb2d57	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac1a665	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad137d3	lpit_read_residency_count_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad5112d	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b03133f	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0706d9	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0f7c69	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b15a2d5	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b483a10	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4b706e	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e81d2	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5c9cbe	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b775e56	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b8cfe69	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b934244	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba9de01	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc3f878	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bd520fd	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c23dea4	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c241286	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c3f35dd	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c527aec	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c6a2455	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c6e1e8b	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c81de03	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb5040c	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc54c10	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cce15c2	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cd3d248	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce1c1c9	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce377cc	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cf82ea7	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d037bf5	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d055697	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1384dc	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d30deeb	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3e0882	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5f0798	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d66d49e	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6b925f	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d88a2fa	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x0daef46b	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db0084e	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db1fda5	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc0f239	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc3119e	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de1eb70	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de3f70c	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df70e6b	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df77824	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1b6157	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e3eeef5	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e78076d	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eac015d	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eaf2a4f	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec43633	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec6b0e4	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed40745	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0edbf066	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0b21fe	pm_trace_rtc_abused
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f176baf	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f269b34	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2d7d87	mce_unregister_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f302b1a	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3b277c	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3ec5ed	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f5c2376	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f732e32	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f73c80a	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7c09b7	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa4d108	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faee107	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fbf89b5	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc37562	amd_smn_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc1969	copy_from_user_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fcc3ff1	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd6383d	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe646d3	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0feaf91a	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff85cb8	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ffbb3e0	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101a3748	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x102e0a0f	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1038b96f	adxl_get_component_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x103b5ca0	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x105051b9	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x10587ea4	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x1058f80d	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x106422e8	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x10727068	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x109eb99b	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x109ed2f9	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a9c1f3	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c66e6d	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x10cacf21	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d49fe1	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e1f48e	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f94cdc	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x11084662	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1118b6e3	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x111c947a	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1128f634	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x113d086e	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x11417255	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x1144291c	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x115e8d7d	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x116ea790	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1177e676	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1177eb7f	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x11787cec	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x117c6ef6	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x118d8248	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a331d5	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a5c059	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a918b3	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x11bd8e49	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d0ea8e	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d2c447	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d94472	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x120cb228	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x1217f639	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x1219c5fe	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x12209654	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1248efd1	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x125679ca	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x125c419b	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x12892e9d	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x1297bdf2	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x129e1e16	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a36073	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b3fc88	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dc9be4	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e285ec	is_uv_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ec4a97	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f33ff9	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x1302705d	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x13048237	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x13301930	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1340f866	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13581394	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1358c9b3	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x1359d50a	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13686b6d	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x13831632	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1397348d	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e3aa9a	smca_banks
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13eeb542	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1408042f	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1434d94f	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x14502609	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x1452097b	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x145e0d09	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x146ef0e0	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x147c5cb0	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x14bb3616	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c9db0e	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d7678d	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x14da73d7	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x15048804	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x150c2327	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x150dbac6	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x151ba24d	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x152cbe6f	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x152f6632	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x15362cd4	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x153ebf0d	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15656163	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x156c89bc	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x15766796	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x15890450	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x158b5396	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x159e95c1	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a05c7c	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ba8495	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c7e65f	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d3269b	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x15de0fc2	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15efe413	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f9d841	cpuidle_poll_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x160720fc	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x1626c677	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1632540f	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1645c487	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x164a125b	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x166db1b5	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16892b27	uv_bios_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a83d73	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a9d80f	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x16afcfd2	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d644e9	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16e245f0	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x16edec3c	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x17044967	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x173668f8	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x173afc75	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x173ee2d3	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1749fd06	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x174e4ed1	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x174ef6c2	mce_usable_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x176adf76	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x176d053c	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x17833dd9	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x17899a4e	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17adcedf	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x17add64b	gdt_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ce1900	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x17cfb964	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d4a558	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d6eb8d	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e212ed	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x17edd74e	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x183b7904	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x183debd4	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x18459f24	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x18462c38	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x18582826	amd_pmu_disable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x186066d8	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x18666038	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18684a95	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877ca13	mce_is_memory_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x1888b08f	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x189ef930	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b824e0	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ba66c6	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x18cb1843	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x18db54bb	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e02f3a	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x190d7b09	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1914a657	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x192f5b75	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x194625a8	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x194fb350	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x195655aa	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x196b5555	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1975703f	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x19758136	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x198134ba	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x198c6e8a	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x19942d82	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b3d521	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c8c82a	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x19dc5a5b	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e5577b	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e8c944	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f08b3f	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f8f34c	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fbfcf6	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a01e3d7	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a021fa5	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0957f9	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0a4c32	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a14bfcf	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a38202f	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3ce5a0	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a479d29	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a539331	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a61a018	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a7d978f	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a83b77b	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8d29cf	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad2de43	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad5e029	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af912d6	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afc2476	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aff3d55	mce_register_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1affa116	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0a46f2	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b35d913	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3708a3	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b43caba	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b49f75e	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b51fb06	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b58d488	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b630426	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6a585f	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6ddde4	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6ef726	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6f5fee	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b9d65d2	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba237b0	default_cpu_present_to_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba931a1	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba99caf	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1baa58b1	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x1baad712	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc741ac	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bcdc8fb	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bec3434	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c02c2b0	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c033e5f	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c1601cd	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c18f2de	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c38b123	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c43c117	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c453a5e	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4781a7	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c4d59a7	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5eaf68	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7d65ec	__memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c806919	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c81129a	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca8665e	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbce74b	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdce46a	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce12314	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf38b99	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cf56599	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d025740	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d034ed1	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d06d8aa	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0c43ec	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d244dfb	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d32f795	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3393a8	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d35b2be	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d389f85	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4404ce	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d6784da	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7c8555	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d80184e	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e11c527	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e12b876	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e30dea5	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e4d1e3e	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a5f22	sn_partition_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e784dac	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e85b2f6	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eabc11d	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb4a1a5	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec4722a	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eed8bcc	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef1d9bf	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef53a02	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efae0cd	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efb2597	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0b759a	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f206c6a	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f27eeb8	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f31f1f4	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f456e93	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f45a6cf	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f611ccd	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f61ab03	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa932c6	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc68575	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fec4c64	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ff6ff4b	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x20117222	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x2020adc9	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x204a4882	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x20596c81	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2067f951	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x206e09a6	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x2074f54d	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20899467	hv_stimer0_isr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a43f7e	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x20bee424	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c69757	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c89dee	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d68fa9	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d8b50f	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x20efc5d3	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fbd3d4	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x211b1ff4	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x2128039d	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21539016	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x216ab3f7	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x217b9f86	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x218974dc	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x219ffe36	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a0d147	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ca264a	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21f3eb74	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221d9454	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x223bc809	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x223d1671	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x223e5570	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x223fb505	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x225a1cff	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x226842e9	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x22774f98	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x228bf738	pci_msi_set_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x22991f33	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x229a483c	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x229d86bc	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b763d8	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d14103	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e920bf	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f31abb	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f9d089	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fcdcee	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x231afc26	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x23206364	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x232770c9	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x23341321	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x23479bad	uv_bios_get_sn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x234f9349	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23734ec5	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x238625d2	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b4e0d7	clear_page_rep
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c2d308	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c4c12e	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d1feb3	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d221e7	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e5374e	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f2ac6a	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x2404b45d	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x24072e46	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x240ef1f0	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410c338	x86_virt_spec_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410f595	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2414f01e	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x244747c3	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x244a725e	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x245f1514	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2469810f	__rcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x246df185	hyperv_fill_flush_guest_mapping_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x24799469	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b78635	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x24bfdcde	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c2c33a	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x24da345b	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x24fe6f2c	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x25241b3f	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2528b007	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x252c2292	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2549a389	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2551a6e3	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x2555b530	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2596c8ef	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x25974d51	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x259d0e1c	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x25d81664	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x25de1238	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ef1321	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f02c87	xen_p2m_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2613f64f	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x2614d40d	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x261c0b32	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x261e8562	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x261f4788	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a7063	xen_start_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x263b3617	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x263eca01	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2653c1ad	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x26660eb0	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x26684a80	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x26742d6f	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x267f7ef5	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x269720e8	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b80821	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ba98cb	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6900d	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e61b3d	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f9b109	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x26fd34ee	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2713069a	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x271e0900	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x272aee3c	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x27306ebe	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x273a9c26	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x273aab74	xen_have_vector_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x2754f242	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x2772da3b	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2778971d	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a12b95	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a9f950	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x27aa2881	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b1d7e0	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d9c9cb	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ff9835	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2809a675	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x2816042f	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x281682f4	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x281ca4b7	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x282a954b	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x282c34ba	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2849442f	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x28539c1f	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x28723c9b	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2892ea2f	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x289399d6	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2895c630	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b292b6	x86_vector_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x28bce557	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c08a94	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c389b0	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c4cba0	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c838b6	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d368b0	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e64c64	xen_has_pv_and_legacy_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e9600e	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e9698f	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f0f8ff	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x28fef068	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x290b6707	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x291087d9	intel_svm_unbind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x291805cc	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2921123c	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x2927a923	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2944161d	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x29443f61	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x29471695	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x294ada51	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2951a872	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x29649545	xen_pcpu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2967458e	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2967e4b5	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x29adc238	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x29afde0d	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x29b5dbf8	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x29debaff	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e58332	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a087aa4	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2ff051	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a32b8bf	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a361a8b	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4c3832	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a56a0ac	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a58ae55	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a796d82	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7b3274	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7bbd0d	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a85b309	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8e08cf	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8e4e9c	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa90128	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadfc7d	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abb2aa7	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x2abd06aa	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2acc8048	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad49640	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2adb3fba	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae0ac8b	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aeb1061	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aff68f9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2afffc14	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b04472a	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b41bba6	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5071d4	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b67b6b7	mds_idle_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6a7df6	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b74f812	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b810d3e	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b814062	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb2c537	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb7fda7	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bba7c33	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bc7374a	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd35b7b	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be28f46	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf18c8c	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf34b04	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf52ad0	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bfd7b68	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c177e8e	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c18614e	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c1d8325	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2f5a09	x86_family
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c536b1a	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c668303	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca3587f	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbcdcf4	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc95d27	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd8f2a5	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d071dd8	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d07d2ef	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d0ba380	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d237595	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d262a7f	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d3a85ea	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d596eae	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d65e928	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6b596d	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6c99d8	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7462ca	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d99959d	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db47510	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db495fc	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc7491a	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd26508	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd55790	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd8305f	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dedf7ef	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df2a5d3	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfc48cd	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e06fbeb	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e0b599c	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e13cb1d	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e153bc8	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1ab02a	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2df7f4	irq_remapping_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e318565	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4d2709	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5e555e	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e71aae4	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e7916ab	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e98e596	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea457e9	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebd3855	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec74411	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed907fd	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edb6bec	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edefcca	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee2f62e	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef8759a	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f13db88	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1a63e0	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1a7316	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f355113	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4f3cee	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7a7ae5	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f8fd89d	xas_split_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f9082b1	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f9517db	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb5f117	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb70ae4	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc12187	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcfad47	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdcfd28	smca_get_long_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff808d9	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ffcd9d7	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3009bccd	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x301d9561	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x30298e98	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x302d3270	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x302e647a	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x30430426	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x306ab62b	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x306d4293	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3076bcfd	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x307a82f2	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x30997ada	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a2fc3f	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b5ad00	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b97623	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bf9897	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c6bb2f	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cf804f	slow_virt_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e0a6b3	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30eeabad	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f2b6be	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f30aa8	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f9889c	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x310061a7	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x310f8e79	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3111ccc7	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x31128b8e	hv_remove_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x311918ba	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x3125b19f	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x312da807	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3165daa3	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x31856211	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x3189fd28	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bea10c	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c5d33e	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d97e60	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e5108b	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ede3da	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3206b3c3	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x32073281	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x323027dd	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x323cb477	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3248fbb0	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x32820aeb	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x328677fb	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x32884520	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x328cdf65	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e3354	__memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x328e5afd	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x3295768a	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x329e10b6	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b2b6cb	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b5a4ad	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bb8edb	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c75e66	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d4df4c	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3b076	mxcsr_feature_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e691d2	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ffe4fd	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x33129671	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x33275b14	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x333cdd79	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x334506ee	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3352458d	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3362b03c	xen_p2m_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3363dd7f	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x33655159	xen_pcpu_hotplug_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x33920829	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a72c6b	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a75728	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b69b44	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c4f3aa	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c73d5b	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x33dd9940	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x33de96a4	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e76569	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f3c142	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x3402379a	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421fbc3	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x343b68c6	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x345f66db	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0x346c078b	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3472a2f8	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3472bef8	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x347ba9e3	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a449b8	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b32c02	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bd8ef9	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c53584	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d774a2	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x34deef37	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x34dfc9d2	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f12e5b	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f50649	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f510b6	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x351866c7	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x3525449c	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b2b38	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x35358567	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x353d7853	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x356839c7	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x35714082	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x357aba66	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x3581097f	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3594595f	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x359785ea	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x359bf7e9	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c44ec4	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x35cdccc8	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d8b42b	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e4961f	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f133ff	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x3631b1be	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x365b4efc	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x36608290	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3661ceb4	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3669394d	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x36735f50	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x367e2b8f	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x369c2346	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36abb456	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5497e	intel_iommu_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x36cb60c0	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e35324	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ef5c6a	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fa9ab8	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x37214b23	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x373eda3b	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x37440759	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x376cda53	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x37764710	vmf_insert_pfn_pud
+EXPORT_SYMBOL_GPL	 vmlinux 0x37781aae	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37918bda	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3799ba5b	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ac583f	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d5e0e4	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d6c1dc	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x37db7ba5	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ed7935	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f292c4	pmc_atom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f4ff21	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x37fc4a68	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384f4185	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x38558b12	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x385fe6a1	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x38722f80	kernel_fpu_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x388264ea	amd_clear_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x388a6766	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x388dc07c	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3896fa51	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a532d2	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a78cc7	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c41282	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d588ad	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f7050a	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fa9751	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x393a2f57	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x394722d3	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x395fc975	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x396189ee	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e2fd7	ms_hyperv
+EXPORT_SYMBOL_GPL	 vmlinux 0x39742c2a	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3993e3a9	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3998a42f	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x39993623	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a1cafd	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b6be8f	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e44917	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ea03fc	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a119975	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1694cd	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ccfb	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a27c508	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a414b9c	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a521091	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a59418c	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a662817	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6bd060	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a71b87c	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7d80f9	xen_max_p2m_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8bbb8e	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a930ebd	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa362c3	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aafd875	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3abd9445	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac17ea4	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac8a7e0	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3adf3b27	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae60721	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3af578f5	hyperv_report_panic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afb4037	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b034207	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b094738	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b41c406	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b62489f	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b65193f	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8b00fc	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8dda70	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b91db5b	intel_pt_handle_vmx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b920402	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b94f0a5	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba2b894	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb2242e	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb5d912	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bbf4b06	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc320f4	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc8afc8	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bccfb53	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd8a36d	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3beca418	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0e8050	hyperv_pcpu_input_arg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2dd52d	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3b226d	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3c90a3	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c46ff64	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c87c33a	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca50042	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf8819c	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cfa14e8	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d03974d	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d20e25d	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d24b372	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2554dd	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2c2227	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d3dc3a4	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7bf27c	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d82e22f	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d93abff	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9bfbbe	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ddbf82d	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df4eee5	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e07d363	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3496a1	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3b2852	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e432f5a	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e57b45b	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e880689	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e91780c	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9b6b1e	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb73303	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ebc151a	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee31d5b	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef2af7f	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef75aa1	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f095b08	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2206eb	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f275a33	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3338d1	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b6caf	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f79b6ef	add_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f7e687d	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f897e5a	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9a51fc	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa01044	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x3faa90f0	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fae6ab0	hv_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb1c0fa	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb223d8	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fcb2e69	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fcf9617	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fdaeb51	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe3c315	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fec2310	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3feddde6	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffb530a	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffe8d02	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x400dd5a7	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4013de92	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x401e2c52	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x403526f1	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40404805	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4053df87	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406951a0	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x406b5c02	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x406d93ad	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4084d9b3	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4092afd2	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b8433f	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x40bb263b	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d9b9db	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f13c74	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40fd68f4	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4113c325	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x4129f5ee	kernel_fpu_begin_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x412feb32	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x413220b5	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x414a8103	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x414bdddf	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x414cd667	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414ea7c7	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x4150b867	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4159602e	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4168eace	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4175001b	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x419f35cd	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a4ef39	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a58d6c	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a632ed	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a64b2b	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ac457f	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c501b3	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e3e3f5	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f028a6	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f1dd80	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420b8a69	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x421a1261	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x421e2c75	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42313219	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL	 vmlinux 0x423f2637	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426471f7	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a6f1f5	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ad137b	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c1cefc	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c5557d	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d82289	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x42dab624	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e94403	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x42eddd36	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x433cc4f4	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4345afbd	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x43493e6a	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x43496437	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x43527d85	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4374f89b	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x437aa552	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x437fb14e	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x4389b462	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43944dbe	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x439eb613	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a77be7	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad3337	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x43adbc60	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e1a1bc	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e24c5a	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ec075c	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x440607dc	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x442e3e32	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x44304772	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x44331d3b	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x44340f62	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x4434204e	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x44394834	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x443e5a54	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x443e86af	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x445fb9af	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a316dd	intel_svm_is_pasid_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ab8049	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c046c9	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c6a3b3	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ce9518	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x44cebe42	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d0c99f	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d6dec2	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x44da5e2b	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e2b3af	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e2e44c	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x44fc92fc	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x450110e8	perf_assign_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4509e7d9	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x4530fb4a	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x45311c85	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x453e58c8	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x4541fe0d	mtrr_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4543974b	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4552c07f	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561b970	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x45624106	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4562d6c0	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x4571a0b4	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x45739d5c	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4582329c	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x458df633	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4592e7d8	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4594b18c	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d14bdf	hypercall_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x45dfa81e	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ece6b8	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fa1b84	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x463d8290	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46662b21	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x466bd653	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x466c8b6b	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x467f1b6c	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x46824e71	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4696845a	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x46afc42b	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x46bd2f87	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c1cdc9	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c5ba13	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d7c56e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f175be	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46fbe4b7	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4705fb74	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x470b2330	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x47156ac4	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4730019d	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x474bb32c	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x476b668a	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47735ef3	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x477f57eb	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x47818c18	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4789b51b	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x47936465	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f663d	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b2c951	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c293c2	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ccf847	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x481d6618	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x482a7b43	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x482b652a	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x482ba9e9	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x482d6c46	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4833443a	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x48610ddd	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4870150a	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x48748792	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x489c510d	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b87cfe	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f0651a	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f52874	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x49062865	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x491ba3b7	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4922ec14	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x49796fbb	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x49857f02	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x498e9739	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49951708	sev_enable_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x499cbade	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a545e3	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c14a61	ex_handler_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c1dd37	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c2221c	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c47b1f	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49de42bd	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49ec24a8	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a37f4dc	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3e68fd	isa_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a488823	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5b7497	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5cec22	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a609cc2	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a739f39	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7beff1	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7f342d	uv_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8312c6	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9155e0	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a92819d	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9d0a06	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa13cdb	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa79026	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa9d9f3	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4acb9d07	xen_pci_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad4fa26	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aef870b	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af72758	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x4afa977d	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x4afd106a	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0e49a1	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b11287c	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1b555a	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1d94aa	mce_is_correctable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1e1774	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b28eece	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2a480e	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2d58f4	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b3c7286	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4ab8e3	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b537afa	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56ce05	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b57b768	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6be19c	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b762828	start_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7733d1	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7e97a6	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7ebd4f	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7f2e68	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b8c4e4b	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b90ea85	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b925c47	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba72ef1	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bab5635	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc0b9cf	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc3fef6	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd24cc7	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd6e192	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bdd5f12	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c01d8c2	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c0c37e4	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c1d4df7	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c225aeb	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2af5a8	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c367a20	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c37fba3	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c39d11c	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3e7d35	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c49f1de	hv_clock_per_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c6583	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c51e38f	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5f9c78	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c660e32	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c762b5c	x86_stepping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9d2e71	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9f46c8	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca40f35	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc33e06	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd1bb6e	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd26f2b	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdccfb8	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cee986d	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfff4c7	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0490de	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d21ea3f	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d2554cb	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d36e094	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4fff2e	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d59ed22	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc8d5cd	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd2b4a0	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de78148	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df4ba2e	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df7ecf0	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dff17b9	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e13aeef	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e14d968	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e19ead0	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e29a005	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e35676e	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e4ba021	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5bde92	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8d2b24	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea5e655	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec4d6cb	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee271f0	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef71742	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f1021d5	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f20bf47	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f41839b	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f54f06b	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f579e1c	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f585739	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f58f623	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f63341b	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7a8ae7	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f82d461	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8e9034	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa29967	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fac98a7	machine_check_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fae006a	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbb3222	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd8b116	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff5e511	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x500af1dd	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x50184ce9	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x5030dbe1	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5034f660	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5038413e	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x504dabea	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x504f87e3	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5061751f	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x506c2fda	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508b8061	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a1a973	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a92a2d	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b03f5d	l1tf_vmx_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b0b551	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ceaeef	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1f870	pgprot_writecombine
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d29881	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d8b47f	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f58fe2	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ff1f7e	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x512d473b	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x512feeb4	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5131b8ea	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x51373bcd	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x51387b44	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x51438c14	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x514c08ef	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x51516c7a	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x516dc5bf	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5170c2eb	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x5170f65e	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x51803cf5	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x519e6312	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d33b15	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d4a6c7	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e7fea2	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x520e6b2f	set_pages_array_wt
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5222085b	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5235710a	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0x523db931	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52650076	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x5293d1cd	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ac2099	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b98762	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x52c43b68	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e3e759	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ecf01a	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f0cbbf	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5300f8c1	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x53128608	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x533a08e6	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x535465e0	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x535d94b3	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x53612516	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x53616ad8	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x53617a55	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5365ddcd	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5369fc6f	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5378e881	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x53954030	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x539f157b	pci_xen_swiotlb_init_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x53af3098	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c47c53	apic
+EXPORT_SYMBOL_GPL	 vmlinux 0x53e13d09	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ef3573	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x5400eebf	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5407ad3d	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x541040ed	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x541415af	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x54334a12	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x544763ee	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5456d451	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x545f32c1	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5462ba68	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0x5462bfe7	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x547ad39e	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x547eb442	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x54803f26	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x548fcbf3	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x5499bd42	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x54eea782	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ff4838	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x55073861	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55082f88	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x550841f3	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x550ce709	pat_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x551d088d	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55405753	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5543719d	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x55448eb0	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x5554f74f	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557eb23c	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x55897c84	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x558c11ea	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x558cefc6	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a90eb9	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x55aadfdc	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x55af87fc	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b42fff	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b97adb	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d840bb	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e2ec0f	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ef017d	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x55fc7cfd	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5602fad0	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560c0672	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x560fe0e5	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5612958a	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x56149bd0	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561bd05c	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56398615	mark_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x564345a4	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x564d6de4	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x565c8b0a	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x56744e18	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5675c383	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x567f26e7	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x56948896	spec_ctrl_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x56ab044d	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c1c51f	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e50ef6	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x57025ee6	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x57150725	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x571e9ac0	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x5735316e	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x574fc58c	system_serial_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x5767f5dc	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x5772c2b9	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x57798f63	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x57861a5c	gds_ucode_mitigated
+EXPORT_SYMBOL_GPL	 vmlinux 0x5786df27	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x578dbdfb	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a389b7	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b94d7e	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c6613a	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x57cff561	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d4c860	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d9a0fb	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e82360	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5815fd53	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x581caffe	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x58254485	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58367531	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5865bc97	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x58714c3d	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5880fe72	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x588d3da1	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5893dbba	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a548ba	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b36d27	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b92c0e	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b99cde	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ba6973	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d6311d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d8ff7f	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e1319b	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f03b99	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f2978a	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x5905ed43	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x590627a5	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5910faae	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x591cfe2e	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x591da7fa	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5948bf36	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5959c403	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x597711cb	cec_pin_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x598a7e13	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x598cef48	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5991d286	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c6aff4	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d02528	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d1efeb	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ef6e58	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a09f0df	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a0e03aa	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1497ca	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1b4884	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4e7d3f	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6a0c5a	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8e1240	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9b9538	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a9c526e	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abea7f1	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac56bdd	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac6a73e	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad3819a	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ade72ae	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afb9890	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b105653	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2cf8fc	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b44e2e2	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b71c39b	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b884364	hyperv_report_panic_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b949f72	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ba8f459	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5baf4641	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb289ac	__tracepoint_extlog_mem_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb41cc4	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb733b4	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bcb9bf6	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd73b6b	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bddcee2	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5be0e3ff	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0b329c	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c251091	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2ba035	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4b3838	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c56fa93	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5fe78a	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c77f375	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c81b208	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c95131e	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c9e65bc	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca63b4b	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5caa1511	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb6280b	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17f72c	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d186e34	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d440f3c	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d5ac20d	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6bd815	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d74d123	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d773974	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7c2be4	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7ea438	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d803065	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d815643	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d845f21	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d90e16c	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9317d7	uv_teardown_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dbcfa4f	boot_cpu_physical_apicid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dd340cb	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dde4a2e	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de59450	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ded03a0	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ded3bbc	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df0ea8d	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df42823	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df4ca3e	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e031783	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e15196b	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3cb528	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6d63ab	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e77a8ce	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7be494	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8507e5	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9a3e07	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5efb972d	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2fcc83	ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f30aef4	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3ba04f	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6df68a	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f77f5d7	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f82ae70	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb4000c	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fbd3f00	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd70cfc	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdfa2c1	amd_pmu_enable_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe21beb	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x60138946	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x60188663	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x60254a5d	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6034da97	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x604a780f	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x607eb275	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608a836b	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b0566e	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d399c8	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f08a4e	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6107f4f6	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6121276c	irqd_cfg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6128f1d1	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x6135ee8c	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6136f461	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6155fc37	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x61641ad2	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x616507f8	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x617babdb	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6180cc46	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b14da	fpstate_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x619b8640	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a46187	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a87427	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61b443f8	x86_spec_ctrl_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d91c70	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6207faa9	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x62180ee3	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x622680ee	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x62299fe5	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x62533db5	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x62569918	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x62594fa0	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x625eb262	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x626745b1	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x62845b24	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a557fd	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b2c123	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b5d841	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cae61a	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cf1f9f	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e91cce	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x63290477	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x632efa32	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x632f1a9c	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6340434e	x86_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x6368e7f2	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x637fe2d1	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6384d28f	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6388133c	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a7a26	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a9653	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x6390ebb6	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c88ada	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c8fd2b	hv_setup_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c91eb0	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x63cb2601	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x63cf78d4	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63edaa39	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f914a6	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fecaa9	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x64184f69	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6434172a	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x644f5127	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6451ecbf	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x645d7503	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x646d98f0	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x6477bd1a	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x64790ff5	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x648971e3	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64a62e11	acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b700e7	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bdcaa8	hv_get_tsc_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64bedbf3	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c60596	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64dd8af3	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ddcf43	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x64e2d2b8	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x64eb6c9d	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x64edbd76	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x65045b40	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x650503cd	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x6527a231	dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x652ad79e	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6567f5ba	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x65714ab5	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6574fe11	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x65997639	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a66693	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x65bc3a54	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x65bea57a	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65dc01d1	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e1ea7a	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x65eb3075	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f58ea8	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x660cd8e6	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6612f00e	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6624fc7d	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6625b0e7	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x669381a7	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a59569	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a5d02d	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c57255	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ce01d7	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d40e6a	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f4f7ca	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ff44b7	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x67104286	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x67120aac	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x674d1a91	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x67533da0	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6756c5f2	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x6763254c	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x6786893b	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x679a66e1	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x679c74fe	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a74e91	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b25aff	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x67d29661	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67dcd76b	uv_setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e341e3	uv_bios_freq_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e4ff14	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e6b7a2	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f6682d	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x683a26b6	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x683f0522	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x684d8b56	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6851e0a2	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x68592473	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x686677b8	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x6868b331	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6873137d	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x68798470	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a920e6	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68c520ab	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d5fd6e	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d9187e	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e7be9b	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f36c5e	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x690af387	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x690fa97b	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69176561	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x691e1e84	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6942b2e2	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6954d15d	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696d7e0b	l1tf_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0x697128d8	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6976c38e	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x6979246b	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69880a0a	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6993c4d4	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a58e58	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b90cf2	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x69bc4f57	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c9707b	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ceb12a	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d07068	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d4ab6b	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e1467b	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f180d5	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f250eb	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f8e353	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fc666a	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fcc635	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a066747	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a29e9c0	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a454e4b	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4671e7	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a54b6ae	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a59cd98	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5aee6e	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5cfac5	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8b9f26	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8c5e5e	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a909492	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa1d47a	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa50615	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad5d8ea	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af28b4d	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af63610	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af6516e	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afa6be5	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0e12d8	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b11ff8f	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1f1719	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4f633b	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b51709e	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b718563	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b763d54	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7a4335	hyperv_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8e96bf	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba6aadc	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd2d094	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c021f18	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c52b8ef	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c565f3b	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c75b06e	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7ad392	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c87ef60	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca6d874	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbc7caa	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc88338	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ccb3b07	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cced744	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd001c9	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cdbf6d2	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ceb0af1	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ceb98d4	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf307e5	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf3d70d	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cff726a	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0241ec	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d069f5c	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1a5d54	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d561ee7	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d65b1b4	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6c776a	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6ea1bd	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d71c8a8	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7b1e0e	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d84280d	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d926522	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dac7afd	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dcfa010	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df2279d	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e23bbde	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e28d626	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e42ddb1	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e44f223	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e497dfd	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e498b14	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e528bfd	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6bd77e	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6d77d0	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e79e292	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e85b00b	local_touch_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e888c88	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea2b390	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eaa317c	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eaebed8	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed1ba73	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee71410	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efd4747	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f081ef4	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f18920f	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f33fcdb	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f5b69ec	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f6e241c	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f799dcf	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7dc8d9	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f835ff1	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f8a4ca4	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9a739f	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fbf752a	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc8e60c	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd0f84d	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe5f571	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff46dc7	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff5772c	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffac318	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffce680	x86_cpu_has_min_microcode_rev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006f365	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x700de8c5	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x700f9e47	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x7012c994	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x70188031	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x702edd50	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7045ab37	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x704f5aa9	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x70521522	__xenmem_reservation_va_mapping_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x70576fee	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x705ec00b	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x706550fa	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7066b238	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x70698381	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0x706aeadf	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x70844fed	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x7091a93a	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d3265a	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d89155	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f5332f	sfi_table_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x70fd4a3f	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x710aeadf	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7116e1e1	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x712ab1dd	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x713515f7	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x713ffa5a	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x714ad560	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71655746	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x71772b48	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7177dc22	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x717a105c	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x717aab41	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x71802c68	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71856777	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7188c562	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x7198e0dd	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a71643	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x71befb4f	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x71dbf546	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ef5c6b	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f225fe	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f9a5fc	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x71fbc33e	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ffec25	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x721598c3	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x7217b211	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x72188c6c	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7219c5f2	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x72305d8b	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x72473364	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x724b5824	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x726e86be	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7286ecf6	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x729882bb	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x729fde69	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ab2206	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72cef7e5	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d18fce	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d31098	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d798fd	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ebfdba	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f88728	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x73011652	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x7304257c	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x73096a92	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7312be00	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7324d629	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x73287738	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x73382239	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x735c11fd	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x73631bea	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7376c370	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x738fe32b	amd_get_nodes_per_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x739ceb1c	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ad0987	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73cd4e74	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d9d09f	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e2e10c	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f1d689	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x7400408b	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x741f2fe6	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x74209d3f	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x74252677	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x742fa016	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x74322597	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x744b6d77	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452adff	user_return_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x747b3614	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x747b4a27	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a312cc	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x74a88c18	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x74af446b	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74bb0471	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x74bc8382	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c87665	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d33618	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d8a78e	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x74dc3591	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x74def455	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e5aeb2	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74eef043	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f19ab4	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x751aaedc	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x7521afb6	leave_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752dc160	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x75462565	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7553de08	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x755496bc	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7554b4d1	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x75792186	get_xsave_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ada3ca	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b03fa4	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b61f17	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cb0be7	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dcf9fd	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e620a0	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f38532	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f7a5c6	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x76118d37	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x76180469	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x765ec756	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x76626936	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x76731f6e	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x76b6ba09	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bdc940	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c1d5ad	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d821e5	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d951cd	mce_inject_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f03673	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b0f64	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x77311f31	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x7732ac9f	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x773f3fdb	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77b22f18	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x77b5d3e7	intel_svm_bind_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x77bbd9a1	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c6aa75	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d026ac	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x782adb74	hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x783c9955	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x78687a1c	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x78764a5e	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x78766e21	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x78812411	hv_stimer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7890bde3	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x789975b2	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x78aa7485	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b1d0e2	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bc0cd3	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cab75f	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fbb78f	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x790c5d43	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x791748c8	adxl_decode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x793ab5ae	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7951f852	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x797030c9	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x797aa550	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991a569	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7991fd8d	crash_vmclear_loaded_vmcss
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x79aad028	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x79adb39b	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c41c34	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c66377	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf1043	fpu_kernel_xstate_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x79dcb661	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a078c9b	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a07c767	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0ad8e3	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a170ba2	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a24567b	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a551d6d	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a55a620	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6cd72c	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a828dae	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a883974	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8f5a6b	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8fa004	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a921c39	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a93f60c	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a944bea	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a97fb4e	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9f340d	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aaeb459	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7acfd87f	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad3d13c	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad6ad95	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adad6be	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae36673	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b281173	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3eb951	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b403025	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ef438	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5cdfd9	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6cd31b	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6de2fa	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b84f4ef	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9f4c4b	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba78c6a	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc80953	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcfd6c1	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bdb121f	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c0e4d8a	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1096ea	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c20b6a0	load_direct_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c266285	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c35c040	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6a6ea8	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7d99e5	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7ddc75	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8f1a20	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cac7101	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cbbe21c	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccaf366	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ccd76f3	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cceaf92	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf45fcb	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e1d95	hv_setup_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1b6260	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1efb9f	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d25ab4a	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d463614	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d676c96	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7cb8fa	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da72754	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de65a03	acpi_lpat_free_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de6cc23	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e03b75c	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e0c4379	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1a3f93	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e233f5b	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e60930a	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e71867b	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7ac523	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e96b3bb	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea1a2bc	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea54385	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea6489f	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea71293	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebfb9e4	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ecca19d	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed233df	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eed2aa9	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eeddbb6	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef951de	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x7efb0f32	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x7efe2d2e	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0b4d67	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f2d2bde	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3d7b7b	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f510b6d	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f57d362	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6ff5f7	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7c9777	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fe6b7b2	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff01222	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fff06dd	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x80031add	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x800bbb67	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x80192714	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x80302862	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x80555b13	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805f0ed6	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x806fa413	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x80741257	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8084d7a7	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ad561	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x8096bf81	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a66ef4	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e21fc8	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f3413d	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f50ef3	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8108a69a	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x81221cad	amd_nb_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x81248081	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816136ec	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b2af5c	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x81bcd288	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81ec8248	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x820abd05	__xenmem_reservation_va_mapping_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x820de623	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x8239dbbe	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x823d6277	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x824bf3cc	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x825c26ba	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x825f490a	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x82627dd8	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8266f421	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x826be330	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x82790184	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x8290c1c2	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8292fc74	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x829b9323	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a03942	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a0ceff	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b78f10	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d2b73e	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82dee634	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ef8f92	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f7e47c	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x830dc160	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8315a15b	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x832a7a57	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x832d4fc0	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339ab2b	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339d42d	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x83688374	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8392533e	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x83936be4	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x839cf6d0	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x83aa21f1	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x83aafeeb	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c1ef2d	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c4ffb9	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c53e58	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c57b92	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d0a968	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e84bd4	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f31240	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x840ab2a6	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x840e5e91	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x84477aa3	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462c83c	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x847be035	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ae61d7	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b1de7b	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b268cf	sn_coherency_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b99602	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x84baadc8	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c23732	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x84c83e50	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f36233	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8522b5c8	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x852a9b2a	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x854b7d72	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85622741	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x85631b9e	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8568e728	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x856aab3b	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x858dc725	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8595f6bc	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x859f9ba8	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b36010	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b5b7bb	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b6a682	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b77b91	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb2c45	xen_has_pv_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f41c15	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x85f9d87d	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x860aa96b	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x86169f3e	amd_smn_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x862b9118	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x863b5d1e	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x863c6ea2	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x864fe181	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x86518e0c	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8654be58	hv_remove_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8655b264	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x86731891	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677f369	pvclock_get_pvti_cpu0_va
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x868dabe1	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x86953bff	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x869e2497	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ac9348	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b929c5	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c53e76	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cb8ed8	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x86dd9edb	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86dda204	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x86edfa9a	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x870f011f	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x8727b45b	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x873378d2	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8735ed3d	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8737ae3b	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x87404808	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x87751dd7	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x878a12da	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x878c85a2	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x878d29b9	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8792bc03	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x87aabbed	uv_apicid_hibits
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b0da9b	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d007aa	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e35609	hv_stimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x87e64181	amd_nb_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x880a8c8b	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x882ca81e	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x883200e3	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x88385cbb	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8866dca5	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x886b6295	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x889f8a37	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x88a78b7a	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b7154d	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ea70ad	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x88edebf1	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8902becd	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x89163d6d	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x89173db5	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x892249d0	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8934fab4	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x893f768c	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8943979b	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89625bcf	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x896d624c	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x89704d99	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8979451b	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x8996fb8c	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a5333b	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b6ca86	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b734c7	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ce96af	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d16ac8	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e9b577	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x89eb6707	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f84c32	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a35b1ff	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a48cff2	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ca7be	hyperv_flush_guest_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a521c94	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a592b6d	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a77d116	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7cb9c4	platform_thermal_package_rate_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a884131	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9235af	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abc0ce1	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad5ceb1	__uv_hub_info_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad60355	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae2f8f6	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae80ec3	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b03d988	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b061791	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b0967f5	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1a3895	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b34c1a2	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3b6242	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b4a14d9	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b73fa5a	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9200fd	lookup_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b945cb7	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b9643ba	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba931a5	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd9a282	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdaa79b	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c30691c	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3c6080	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3f23f5	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c47f27f	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c57e104	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5bb45c	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6a13e9	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6e0a22	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c778387	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c810d41	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8183aa	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c92a99b	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9596aa	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c97e8bb	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c9d1661	arch_phys_wc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbd6bd2	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cdfbc46	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ce90334	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf3ad15	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf73e74	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0f556a	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d10619e	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1961d2	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1f859f	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d446833	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d522714	__rcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d664da8	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d84acbd	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da8045e	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da9bf5a	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dad0ef0	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbadab3	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbd3781	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc4ec37	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dce0627	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ddfb09d	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e05698f	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e074465	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e17aae1	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e27305d	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3af6c4	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e69d0c5	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6e57d6	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e76ad58	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e85ac38	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8cbb8f	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9bd4a3	hv_alloc_hyperv_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb42feb	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb69314	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed8bcbb	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee53e31	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee96d7a	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef2835c	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef3025f	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f02ce32	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1513c5	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f2eb429	kvm_arch_para_hints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f3a0d62	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f423fc4	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f66f3c2	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8aa3a1	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f94fbe0	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f96fc5c	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f9b906d	pwm_lpss_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa9679c	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8faa13f7	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbc32ef	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbda03f	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbed632	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fcd9fcc	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd49111	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x9017c811	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x9024f443	mds_user_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x902ab00a	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x902e9aa5	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x90362974	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x9060155e	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0x906664b5	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x906706fd	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906fca70	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9084b044	clear_page_erms
+EXPORT_SYMBOL_GPL	 vmlinux 0x9095feb4	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d8cc	hv_is_hyperv_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x90afecae	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90cb16c7	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de0452	platform_thermal_package_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dfc6f1	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f6afdc	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x910941d6	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x911d8e0b	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x913cd7cc	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x91459b44	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x914aa0b7	hyperv_cs
+EXPORT_SYMBOL_GPL	 vmlinux 0x914ca0fd	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9152e468	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x91594445	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x91676b0f	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9173bf60	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x9188b226	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a43487	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a84a00	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x91b8f0b1	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x91bd76ff	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cebbf6	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e1d0e9	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ee4dc8	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x92141343	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9258937a	e820__mapped_raw_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x92636348	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x927c34b0	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9292bc8a	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x92971427	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x929e42df	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c2d512	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c93501	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d05f47	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d6bc48	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x930b0f7d	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x93198a23	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x932334aa	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x932d251f	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f867d	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9340ffc5	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x9352e545	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x93756b7f	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9379f72d	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x937f413d	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x937fcbaf	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x9387a6ac	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x9398c366	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bb50ac	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc2586	pgprot_writethrough
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dc6111	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e46a41	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e6849b	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ea82d0	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x93eba103	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f12a0e	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f1787f	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fb9b1a	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x94041d97	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x940449a4	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x940b1192	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x940f82e6	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941a093e	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424058f	arch_haltpoll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9426e873	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x942bf816	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x94336d07	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x944c5b7a	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x94564a02	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x94593d06	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x945ab11e	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x945c91e7	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x94682e31	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x946c324a	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9478f7f7	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x947b40c6	cpu_smt_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x949c47c2	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x949caf6a	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b9bd9b	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f6912d	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x95265b03	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x952fc866	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x953379ba	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x95497d9e	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x954e2725	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9550d735	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x956fca84	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9572b43f	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x95785d6a	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9594cf10	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x959f2d18	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a57bc8	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a89a3f	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x95adafaf	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c78860	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ced701	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f819cb	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x95fa56d7	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9622d15e	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x96265eb3	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9626e5e7	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x96291009	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x96353d7d	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x964e3b0d	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9671c9e1	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9688b217	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9693fdf1	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a0b061	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a2fbd3	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b887b7	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x96eb65a0	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x97016c86	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9708d98b	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x970c230b	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9719bcfd	pmc_atom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9720d7a1	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9742e6c3	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x97493ec5	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x97512ad7	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x975de7ab	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x977b9848	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x978d83a4	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a08257	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ad8649	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b011fc	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ba2efe	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ceb72f	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x97cefef5	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d12355	hv_remove_stimer0_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97dbf008	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e4feda	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ed1d69	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f09b73	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f0d050	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x985c7d70	pwm_lpss_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987ab0a5	amd_get_nb_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9887527c	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x988a1a00	sn_region_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9892b0a2	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x98972d62	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x989eaed8	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x98acb0a8	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x98acba4a	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b0dafb	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bb3206	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bea984	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98d5eb33	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f4d306	hyperv_flush_guest_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f7b125	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9916bbfd	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x99200d9e	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x992365be	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930f8a3	uv_bios_change_memprotect
+EXPORT_SYMBOL_GPL	 vmlinux 0x993b22c7	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x99430ba2	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x99470a38	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x995478bd	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9965f82d	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x999acbfe	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x999dd9f4	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a0ef45	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b0347b	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c011d8	mcsafe_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c97242	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d84813	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f76e3e	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a007e91	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0c9bbc	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a25f16d	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a286ad1	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a524413	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a52f9a8	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a57f1cf	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5f8cb7	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a613383	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7040b5	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7f892d	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8572b0	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a857e4f	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9b3fbd	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa022cb	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa71c2a	efi_query_variable_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa8cfbc	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaac699	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ab2ddda	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeb87a8	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af33e4d	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b3e4003	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b690670	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6dea9a	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6deda6	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b788841	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b79d42a	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b8033dc	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b8bff4a	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9be852	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9f3648	pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba76587	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bad141d	hv_hypercall_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bae0d75	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bbe4c80	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bbfbde2	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c412548	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c45ab60	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c479b3e	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c4e1529	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c728cd0	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ccb5572	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd581d5	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd83a3d	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d00d54c	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d23e2e1	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d393bb7	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d3f6de2	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d672bbf	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d695f0c	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d96a72d	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9da3ce11	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbfdbf9	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc1f7e9	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd30399	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddadfbc	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de00c0d	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0caded	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e1c1f86	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2238c5	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e290b86	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3cc074	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3e5142	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e423bbc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4e83ba	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e55e353	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e603a30	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e6da576	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e883642	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea3c12f	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea71b49	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb5934e	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed0044c	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed1751a	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f05523b	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f1d8cbd	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f2788e4	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3a3304	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f474fac	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f47e05d	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f493d9a	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4b60f4	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f54bb28	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f71bc72	uv_bios_set_legacy_vga_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f79ff84	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f81b2e5	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f919512	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9c68bf	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fab32df	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb86aff	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc1487d	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc18d72	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fcd6818	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa024a4d5	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0548c22	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06fa211	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07a1dbd	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07ffe10	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08f3a31	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09e1fdc	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a9721e	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0b0e6e2	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d86c98	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e24741	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e36067	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ef9e29	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1007a65	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa106beaa	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa121a6de	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1457eb8	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15b419a	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16e615b	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa173feac	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18e58e3	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19054da	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b20c51	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b36463	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ce783f	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1dc8bd3	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20b7ca0	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2341096	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23eadc5	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa248ada7	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2728247	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2735ee1	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2772222	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xa277f8bc	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2811f3e	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b4ae27	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b8fe3b	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d0b59d	mmio_stale_data_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d21e55	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d72e31	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d737c5	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dbdafd	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2eebd7d	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2fd34df	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30524c8	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa30b691f	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32974a6	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34651f9	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35c5c22	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa363c672	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3823e9c	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa398a508	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39cac9a	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ac9400	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ae8630	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b236af	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b3f02e	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b6a876	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c3a44c	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fda037	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41a8ca3	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42bc567	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452c297	hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46351eb	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48c72cf	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4a547a7	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4bc39b7	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d46394	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d60ed2	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4de709b	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50aa33a	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531c949	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53622b0	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53929f8	cec_pin_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53c09cb	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54a5855	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54d4190	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5634fd2	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa56df9d9	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5807d55	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586fcdb	uv_min_hub_revision_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58aa75f	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b94517	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d08db6	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d160f1	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d8c776	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fdf9d3	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62b4738	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64a1092	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0xa661cd56	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xa672494e	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6734754	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6781b6d	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68747a3	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69353a3	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69baea6	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b8bbf1	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6caf19f	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6efa38a	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa700daca	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa708b9d1	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa711a816	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7127da7	mce_unregister_injector_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa713c4e6	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73a64b3	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7464faa	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74cb1f1	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74df259	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa75c3fcf	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xa75f0c83	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7729adb	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77c30c7	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a0e410	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a42ba6	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b29105	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b51dd4	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c09c8b	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c15894	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cda26e	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d03556	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d1785d	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7de8966	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e46b82	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e83fcd	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fce565	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fdd18c	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8295c3f	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa830fa59	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8390016	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8393c4c	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa847a009	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84b379c	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85729b9	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa862daaa	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8672ad7	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xa889369e	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a8336d	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8b21d6e	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e0dcdf	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9010790	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa914e4ed	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa91bd379	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b048b	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9308ff4	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa935c9c7	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95add95	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9789c6c	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xa97b06c7	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9854364	umc_normaddr_to_sysaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa994e7fd	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9dd806e	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2753cd	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e2b59	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa374ee3	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3f7755	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa503131	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa57ff94	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5aee1c	uv_bios_mq_watchlist_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7afa9b	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa7c3263	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa85b1e1	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa86cfb5	uv_possible_blades
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab311b7	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab5ae1c	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacc4f88	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab0ce9b1	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1034bd	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xab10b616	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xab1e0e93	hv_setup_kexec_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3c62be	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4c0af6	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5c7278	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab70d951	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7510ca	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9618fc	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabae2940	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xabae5bf5	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb694af	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xabbcffd8	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc014c7	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xac044977	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xac060e61	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0d737e	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xac104f86	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xac50b4dc	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xac52a88c	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xac573942	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5f7e1e	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xac8904c2	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xac8bd792	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca088c2	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb6e46a	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc64502	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xaccc8b67	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xacccf305	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd7e168	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xacdb25e4	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf3b464	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xacff42f6	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xad062fd9	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xad09db4a	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0c2921	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2679e0	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad58c131	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5f0017	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad671945	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7c6a3b	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xad7e27d2	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xad862493	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8c47e6	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xad908742	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9add78	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9d7bdb	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xada863af	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xadaa1338	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb1f193	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb8f873	do_machine_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xadcfc20b	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd94464	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xade04996	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xade32c25	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xade3e1a4	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xadecd143	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf2513c	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf47963	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xadfb09f8	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0658a1	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae08a2f0	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae334a0a	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3a47db	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3fe24c	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4f98e9	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xae624372	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xae66ff59	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8caeb0	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xae92dffc	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea6190b	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaefa243c	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf118499	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf22505c	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf238446	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf252674	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2c9f54	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2f0cfb	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf6aa3ab	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf88d411	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf962398	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9b4a00	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa18624	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa1bab0	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xafbec32d	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc58855	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc9e5af	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafdf8700	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0027159	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0144d5c	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03020b7	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0359aee	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0502bea	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0591fec	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb09ced86	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b3f775	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0be146a	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f548a2	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12820de	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xb137c14b	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb178ebab	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0xb181b6ad	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb194b730	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xb198d76b	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a36203	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1af885b	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1da1113	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1daf253	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ef0548	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f73a99	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2022572	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2118cd9	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb21e434c	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2368f98	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2482df6	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24fe26f	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26860c6	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26df0c3	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27142e8	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb289dcdf	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28adcc5	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28b83e5	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a172dc	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aa255e	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aee559	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bc933c	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c1a90e	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ca8d37	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d1806a	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d92da0	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fb94a6	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb300b6ce	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30159c3	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3092bf5	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb315edd4	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb31dc13d	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3281a61	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32dbffd	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb334b53e	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33b452a	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0xb369d663	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36ae1b7	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37620a8	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37776d6	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37cbcfa	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3859d90	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a38864	efi_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c0f783	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c61ec7	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d290e2	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3dc6a67	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e7c899	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f04663	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f7ee5f	node_to_amd_nb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb401d693	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4031cad	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4032d92	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407cb50	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40a464c	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40bad19	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41b635a	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43afb4c	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43fa2ee	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb447ed25	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb463cbc3	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4724f18	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47bc914	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb480f503	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0xb48666c5	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4989185	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49e2650	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b0e6a1	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b65ec5	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4c0ce99	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d32b88	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50e1f27	__uv_cpu_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5116d18	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5138248	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb531b7ad	events_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5397de3	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55ded6a	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5649d42	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb586e55a	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5995060	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a648c3	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a89d2a	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a98bac	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ae00a0	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b93f4c	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed7f6d	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ee4812	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ff8f54	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605fbe7	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb61d1efb	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6216577	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb632947e	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb666235e	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6691193	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb670b08e	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb681ec25	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68dfac4	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69af0ce	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b22c8f	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6eb5587	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f8d47b	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7455f3d	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75215c0	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7594383	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xb761318b	sev_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76f18cf	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77da664	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb77e7303	del_dma_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79d2370	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79f6633	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cd3ffb	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d7c12e	hpet_set_alarm_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f67038	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7fbe0b3	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8018579	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb811e6b0	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8202508	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb834b64e	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb845d724	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86ab52b	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb884aab2	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ae97ee	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2b1f7	mce_register_decode_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b48619	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8c17826	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cf5d54	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d3a9b8	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ec6676	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90683c3	pwm_lpss_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb909ceb8	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93d8ad1	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xb94003e3	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99d67eb	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c16f51	hv_max_vp_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e321e4	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9eaea24	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9fd1cc2	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xba01ec83	hv_stimer_global_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0eb05a	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xba211024	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba527225	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba93dd94	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xba948f7b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba99be4c	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadea075	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae313d3	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaef274d	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf59346	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf9d785	__tss_limit_invalid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb057c1f	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0eaafc	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb14ea1a	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb31fee9	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb388c4f	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4197bc	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb488d0f	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb50ce59	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb561da0	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6e3816	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb77bb16	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7c66fd	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7d6126	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7f169b	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9684bb	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9d6a96	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba32d41	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba5b906	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbad1533	isa_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb2ae57	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb5960c	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd02fc6	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd721c6	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe10807	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbeb376d	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbecd35e	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbed77d5	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc04bd46	x86_platform
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc111308	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc11dc03	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc148986	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1d941e	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1e1e31	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1e365a	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc27ca4b	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3eee08	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4b0c44	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc60dc37	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc644176	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7345a4	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8ccea4	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9ea1b0	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca9910a	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcaff339	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccc2e2b	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd7b806	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce3c614	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf4fcc2	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd091c3c	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd114641	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1672a9	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1acafd	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd588b75	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5a44ad	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7589a4	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd87f2f2	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd8bd0af	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd952363	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda336dd	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb1fc4f	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb2dfd5	uv_bios_reserved_page_pa
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbcb6a0	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbde317	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc6dc9f	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdca76a0	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbddbc6eb	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf059ea	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf86f6b	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf9416e	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe07da4c	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0d77d3	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1b3d69	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe262afd	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe2ff2cd	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3a9b68	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3fbe25	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe485c58	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe7fc75d	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe84bdaf	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe8d86f2	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9be7c7	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed1e750	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed3d78e	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xbedceec9	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee2508a	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf045938	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf135912	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1a8d71	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf210193	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3d02c2	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5eb376	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf61d410	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6cbc82	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf8cbd61	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfa18b98	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb1be70	hv_setup_vmbus_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc49636	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc9668f	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd5b417	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdb9b44	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0021cef	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xc003365d	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0119abb	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0315667	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05473ed	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0673cba	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc084c9d5	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08bbce6	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a4c67b	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a93408	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0bea029	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e0be44	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e75de0	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1076c8c	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11037e1	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1272e0b	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14d9646	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1521ef7	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15f1a5d	pci_msi_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xc162c389	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18cdf36	amd_df_indirect_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1cff9c5	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ea05ae	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ea7cd9	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f9c2e8	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20747f1	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20ac15b	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22f5aba	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b8971	hv_remove_crash_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26b80d5	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26dd802	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27d0a3b	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc286faae	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc287d96a	kvm_set_posted_intr_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2964e3e	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a2e0a3	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a57207	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a67061	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a7f040	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c67e76	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2cbbf3e	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2d50390	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2df3559	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ea87b3	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fa3775	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fe34ad	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xc30d78e0	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc318bda1	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33553d5	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc339c6d7	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc349528b	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xc37d7a99	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc395a8c5	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3bfc980	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c838eb	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cdbbd1	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d20c15	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ed2843	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3edf6aa	save_fsgs_for_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fbaf3c	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4167196	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43b7518	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc446db17	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46534aa	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46bcac4	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46cd63e	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc470eb70	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48ce3d8	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48e4459	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49097b6	is_uv_hubless
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc493120b	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a56b95	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4aa6b4d	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4aad08e	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e149b0	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ed4245	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f5b8fc	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xc50a05c3	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc512626a	__supported_pte_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52118ed	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc531196c	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xc533737b	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53eafb5	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc540265a	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54ade75	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc56ce81a	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5730733	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc585a9b7	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc585f186	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5892091	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58c0e60	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc58c93a6	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b1627c	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cb1a77	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6055b9c	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60d8785	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6165e0f	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61901f9	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc648ff81	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64fbd7e	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6740865	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6767717	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67ad9b2	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc683da81	set_memory_decrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a3f562	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b10427	ex_handler_fprestore
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b3e761	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d38d63	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d9fe3b	smp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ec35db	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6f3ddb4	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc729ba99	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc73a3257	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75f0b99	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79c80c4	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b637d5	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bc6a34	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c8872d	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d33ac6	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1cc1c	injectm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa275f	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8215f8a	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc826d906	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84df5e8	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85b066d	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87704c9	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87e487a	sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8868999	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc894f4f5	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a18efb	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a26f2b	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b9bc12	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c4d67e	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cc73cd	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f162c9	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc909db7b	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xc910d67f	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9113c35	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc912eea4	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9399c03	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94ad556	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc957055c	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9801fd5	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9821cd8	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99cfc72	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99d373f	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99e37c4	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9b1bb13	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9bc0c12	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9cdcb36	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca03c5cd	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xca04abad	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xca193cb8	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xca20dd7b	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2b85b7	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca58148e	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6fdc2e	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7bc9ff	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7cc5ba	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca8196ea	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xca885e4e	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa403f7	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa68533	cpu_has_xfeatures
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa74633	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabec311	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae968ce	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaed003d	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf6a3f2	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb066b4d	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb16015b	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1dfb32	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb27c29c	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb30d2ae	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb311cb7	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb35887e	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb613d66	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb75561a	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb8441bb	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb970751	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9b689d	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba4ddfa	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc32ea8	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc7bba6	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd1ebfc	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf54066	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc13276f	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc34cf7a	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc371b30	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4e532e	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7b2045	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb82062	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xccc9abe9	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd6b2a1	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd6ec96	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccde3e2f	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xccde85b4	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce0739c	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea4e34	perf_get_x86_pmu_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xccea9652	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd287a40	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd2a3f03	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd2e8ff8	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd40e7d5	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4a5b79	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6d6332	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6dae1d	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd75c6c6	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7ebd05	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd81a945	switch_fpu_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8ee810	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda053f0	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda69b3b	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc85ced	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcefade	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdcf8a6f	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd2c350	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd780e9	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde647ac	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf1a4fa	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xce00de0b	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce12cf61	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xce321f07	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xce431bb1	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xce508934	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce753091	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xce75bfdf	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0xce78cbc2	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7d34f8	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8f32d6	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea6a5a9	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea79a18	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb66bec	sched_clock_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec82852	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8318	ibft_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf00e672	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf05f61a	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf1912de	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf639c18	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf773f2e	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7bd499	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf88bcaf	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf91199d	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf97dbc1	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9fe559	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa07306	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb7a4bc	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc50fa0	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff4ed45	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xd007eb92	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00fe730	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd028ea53	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd05d2145	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0691b3c	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06d0b76	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06e38a7	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd074b47b	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd07d1f9e	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08bdc22	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08c9560	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a89416	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b14b4d	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b3cf93	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d0c5c5	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd107dd13	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1090477	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1134b09	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1155427	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1429e5e	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xd149196b	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15bc0ee	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16e4f23	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd176922a	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17ffe19	e820__mapped_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xd185b8f9	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd19bfff7	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a4626d	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a57655	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a622cf	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c53355	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1ca5c0a	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d94fb6	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fbc889	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd209afce	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd223cae3	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2286612	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xd239da3d	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2453484	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd261d24b	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd263ccd5	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd276f77c	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd28e6a96	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2af1817	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bbbba3	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2dc920d	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2eafa56	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f484dd	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd312565f	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3155dab	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3236121	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd325778b	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33205d4	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33b23ea	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34dd40b	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3686cbc	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xd372e30a	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37e46bc	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38dab67	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38eca03	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b304c1	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bbde31	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ca89a5	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3df8b27	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3dfb62c	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ffc754	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034645	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40d84bc	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44227f1	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4461d21	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd461d2c6	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd474feb3	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48253e2	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48600d6	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4955fd5	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49573ec	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd499380c	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a99252	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ab40fd	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b54887	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c3881e	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c8569c	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d7158c	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ed45ef	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f3badc	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f53545	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5060f03	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5130a6c	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51a1012	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd524df60	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd538229e	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5472425	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5728a28	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd579b3b5	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xd589e8c8	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5994ae3	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5aee2f4	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b221fd	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b38fb4	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5c35b05	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5cb043f	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5cea3f7	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e52eb3	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e6663d	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f3bb7b	set_memory_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60235a1	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xd603d8c7	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6076024	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6085a03	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60b800a	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62b8f97	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd657503a	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd65f910d	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xd661b682	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd66fc02f	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67ae83d	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0xd685d4ad	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c18b92	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c28c52	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d49f83	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ea3b5a	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6fd8293	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71420af	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71b5f4a	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd749daa1	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77dac3d	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77e80d2	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77f2bc3	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7816545	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd78f8f73	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd79bdf4e	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b2743d	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b5dfee	xas_split
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b9ae10	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c86cd3	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c9adeb	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d831ea	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e138f9	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e5d16e	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f37569	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8044f8c	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81a78e6	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83fe4ae	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd842d28e	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8508ca4	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8640718	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8848aaa	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88ecce8	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd89039d3	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a52ed6	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a9439e	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b8e337	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8bdcb9c	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8be9d29	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c6be38	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d78269	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f5ac16	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f5cf75	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91c4bc7	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92e08a7	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93461dd	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9397107	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd959cc65	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9705c55	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98df7cd	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9968e06	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd998b96b	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ac6592	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b380ce	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f1e0ef	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0bd8a8	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15b289	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f78ee	clear_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda22fcab	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xda278380	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xda29903f	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xda306dfa	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xda373b4c	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xda635ec1	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xda805eb6	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xda865bf8	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa15fa7	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab8fa6f	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac988ec	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf36bc0	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0d914f	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1f2d1c	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb24be42	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb4164da	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5fa708	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6127cd	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb71ea97	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb728cd4	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7a72a2	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7c9311	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbbc587c	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc1cae3	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd776a3	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd85dce	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbda1e72	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdcd4a6	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe372d9	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0014b7	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc032773	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc182289	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc40032a	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc60d409	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6566e6	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7af0fb	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc91c234	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcab0ed3	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbdd233	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcbf7501	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc8ee96	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce05f04	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdceebd71	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0a2b73	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd1ad782	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd23837a	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd3807b7	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd38a945	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd433310	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5a064a	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd71627d	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd80f02c	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9ee30c	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda3eb33	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbc66a2	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcd42b8	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcdcef1	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde8dc80	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf510e7	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde0cf082	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xde0d2596	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1fc3b9	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2f1794	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xde485069	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xde58b4f2	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xde67434f	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8f2075	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xde91aedb	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb4ffac	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec4e485	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2f8de	perf_msr_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdee4b987	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xdefaf50b	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf032d61	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0e364f	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1882af	dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf262046	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2ee351	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5bbb3b	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5d0ab2	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf68a00b	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6ae231	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7cf401	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf81924d	uv_bios_mq_watchlist_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9c5b22	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb3b7a3	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc69833	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff87474	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe032ee45	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe037b55b	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04fea14	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe057fa1f	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05994c3	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05c8be9	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05f53ff	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe076f561	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe078f3f1	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xe07f4559	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09eb4b9	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b35d47	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d87ff0	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e09572	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ef6ebe	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1222670	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14ef5b6	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15e65d9	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16ae39b	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe170a6c1	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17c86b1	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1aa2d62	set_hv_tscchange_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b358c5	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d0f820	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d7ad7b	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1dec033	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e0d23d	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f35849	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xe202082d	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2078c79	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21375f8	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe216debb	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2237767	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2302e47	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2317849	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2451c49	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24869ad	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2494b38	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe25afc1e	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2624eb1	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2698a82	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28e9ee6	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28fa33d	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xe295c0ff	is_hpet_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a08f66	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a99e50	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b94fab	ptdump_walk_pgd_level_debugfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2bcfd21	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e8e386	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ee1aa6	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fca77c	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32293b5	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3367324	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34fd38b	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3933af4	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39c9d5d	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ab113c	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cbe5ed	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3da3e8c	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40180d0	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe407cf15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe413f7ba	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe417e1ae	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe42a094c	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4310dbc	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4546c26	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45b9e2e	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45fd606	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47cb6d3	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47ed75e	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4816eef	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48611ac	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48774a9	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bdf8aa	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c3ca99	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c5d3d8	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d52919	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e40d69	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f986fa	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fd5204	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe519d301	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe584f435	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5892561	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a66415	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5bf7d39	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c1bde2	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d76d8c	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ff62dd	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe606a64d	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe61be517	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe62040d7	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6312290	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe639e1b0	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe63b6fed	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64669b7	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe64ad8ea	unregister_nmi_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6533a78	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe653a385	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xe66f32f0	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68949a2	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68a11a4	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6955dad	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b23a14	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c233ab	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e018ff	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ed220d	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52583	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f88d9b	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7033432	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xe708d410	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7306f56	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xe73b1955	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe740b58a	hv_vp_assist_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe749593d	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xe74fb57e	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe768ae34	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77437d7	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7988960	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79cf7eb	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b385ad	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7c79d1e	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ea3cca	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f87a36	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fa3135	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe805c908	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80ded2e	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82d9b27	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe835bdab	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83665df	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83eba32	itlb_multihit_kvm_mitigation
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85bd585	pwm_lpss_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85c18bd	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xe860d5c0	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8617907	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe87e7a59	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8887437	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88be5c1	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88dd53a	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe890083c	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe896c812	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a3d15c	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e08de8	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e1de6c	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe918fb94	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9191e68	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9250ff0	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe928245a	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe937415e	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe938879f	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94b0f4a	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe980c630	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9898ed2	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe992d11d	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe99e9c4f	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a3c1fc	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a64b15	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c663cf	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9cc396b	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce931a	kvm_para_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d4fcb9	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e0480b	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e1665b	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea17c6d0	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xea30e592	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5bcfef	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xea5da00b	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xea73973a	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xea7c446d	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa559e4	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa7dd8f	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab944f4	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xeabd6515	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac99767	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaced3fc	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xead31571	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xead4ec8e	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0b8222	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1b99b3	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb2a91e7	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4def2d	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb60efb6	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6882e5	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb7db308	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb833c22	xen_has_pv_disk_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8a082d	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8e09e4	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc5ce96	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd5eadb	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe76479	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe860d4	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xebfb4ba2	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xebfe523c	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec02fa35	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1628e6	pv_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2085b0	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xec364b6e	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec788566	acpi_target_system_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xec95f42d	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xec965042	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xec98b8ea	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecbf3aa3	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd05a15	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd3a739	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd72301	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xece993c7	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf27912	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0d3421	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0f1d66	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed27a563	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2b7878	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40c481	kvm_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xed40f284	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4346b6	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4cda77	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4d603d	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5855e4	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xed73fc30	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda1e064	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda5a1a5	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb13916	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb6a86e	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb88fbc	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xedbfb02e	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd0a27e	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd65423	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xeddd7627	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xede98ec5	intel_pt_validate_hw_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf96566	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xee13e697	set_personality_ia32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1b003b	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xee265e3b	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xee2716c9	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xee31b07b	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3b4d2e	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xee51aadf	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xee66b03e	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c633a	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7825a5	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7c74c4	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7e4131	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xee8d6f4e	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fcda6	apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeae8b14	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec587d4	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed03bbd	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed71794	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedc4d01	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee667d3	fpregs_assert_state_consistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeeaf3e6	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xef010fb5	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1867d3	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1a9155	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef328cd9	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xef35e914	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xef36b889	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef546230	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5d1da0	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6838f9	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef734ea2	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa75722	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc67b81	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc9a5a6	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcccb91	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe23b6e	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe23c72	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xefed5337	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01fa09f	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf035dfd7	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04e7598	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xf056e25b	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06d5a22	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07daa6e	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf085eb62	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a58025	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ae08fb	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b25fb0	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0bed4e5	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0cbe0f3	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d94d0f	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0db7b61	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10a3f7d	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf124e8f5	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf135b2b0	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1455540	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf151d57e	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15b9c52	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17b3cf0	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf183b418	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18bc766	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18e50f7	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18fa0c9	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1950803	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19611fe	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19dbcee	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1da5b2b	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1dc79b7	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e8cb73	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f4f9a5	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f86a89	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2127abc	hv_stimer_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22edb0b	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24a616d	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xf25ddc02	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2822805	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2844416	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xf28eb446	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29aa0a2	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a6f406	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a93860	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2badcc6	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c13a06	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d33ae3	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e36c7b	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f2080c	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf308fdca	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30bd1f7	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3138a99	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bda54	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3701e12	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3754183	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf377d7ef	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3886f78	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3954f31	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c08385	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cd9922	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d330bf	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3dff954	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e3d0b5	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3f9fa72	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0xf40d1c26	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41e861b	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43f960a	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45a9c8d	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4693a66	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47e020f	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf492bf1a	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49d700a	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a00de5	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a315dd	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c6995d	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4cb27e6	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d4f218	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e90169	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fa7eec	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fea098	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5004b37	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5282588	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xf528899b	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf528d5c8	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52b79bf	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5336c83	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5427878	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xf543e96a	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54ae8cf	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c874a5	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5caa487	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e4dd1c	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fec69d	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60301f9	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf609a0b5	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60addca	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6179d0b	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf618c6cd	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61a2a46	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6230e49	fpregs_mark_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62592de	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6418f28	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf646d816	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6503508	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6648334	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf68387ad	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ae748d	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b9a4ba	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bbc6d8	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6beb7d7	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c0863e	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6eb7937	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f37ce1	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f97042	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70e4a4d	preempt_schedule_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7140751	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf725bdb8	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72bbfa2	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72ce1f0	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7347d21	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf736bfcf	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767ca35	fixed_percpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7945ec7	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf799a29c	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79c3971	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a9d322	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bbcfe1	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cdd6e3	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d2fa99	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7da9e8b	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e10a73	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8110357	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf84d866a	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xf852e021	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf87097b4	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8709ca9	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf881cecd	load_fixmap_gdt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88cfc82	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a222c9	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8aa463a	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8bc4cdb	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c1b9f8	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c3521b	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8ce6b21	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d505d1	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8da2769	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f578d6	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8fe3986	pat_pfn_immune_to_uc_mtrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8ff11cf	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf912ccae	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf923cb0a	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9309226	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93fa972	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93ff62f	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf941bb66	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97216a1	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9748959	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf990ff33	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9933371	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9958458	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b634e3	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9bc8112	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e9e199	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fce28d	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa123f41	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa12444c	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa26d3ee	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa35044a	alternatives_patched
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa37beb9	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4d0bdd	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6b2b58	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaac4951	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab1ff26	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab7779f	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac0d26b	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac55f46	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae655ba	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae796f2	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13dd2e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb13e6ff	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb269097	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb475089	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4cff75	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb55f5fd	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb56d141	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60ca09	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8cddc8	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbcf90a1	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf73d40	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc02d028	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0ec052	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2844e1	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2868eb	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc4fa3d6	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6d5445	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc731b07	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9158ca	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb35010	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc7b46a	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd14750	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcddd685	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcea954f	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfd880e	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd05c667	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd38c007	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5e632f	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd61c21f	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd685e0f	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd787854	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7f4094	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd82f905	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdc2e026	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdcd3877	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf53f1b	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf8f8ae	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfc9e5d	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe159739	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe291dce	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2e66ef	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe381755	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe58615c	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5a5b40	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe727411	get_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe9633c9	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecd1498	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedc2f7e	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedc9093	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedce296	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfee65076	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef92265	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1e67b9	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2a92ef	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xff30507d	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xff31c62e	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xff488f03	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xff52312b	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xff54b14b	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff624fe7	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e74e2	arch_haltpoll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8f78b8	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xff92a8a0	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xff953d92	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc60c9a	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe27221	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xffeb39f6	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff0cc49	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff17b27	devm_clk_get_optional_enabled
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0d678b3d	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1ccf1ea6	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x29b662a2	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x31062a2a	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x32e1ab6c	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3ed3b3b0	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6e236600	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x79b12217	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x82e57088	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8992f23c	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8b1c3de3	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9562289a	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9a6f45b1	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9a7b2997	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa99773b0	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xaacee812	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xafd7b0ef	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc41a3073	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xcda0e97c	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xcf2099e8	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd58ed3a8	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf1b82a3f	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfc50ee11	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xff9e2841	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/lowlatency.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/lowlatency.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/lowlatency.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/lowlatency.modules
@@ -0,0 +1,5501 @@
+104-quad-8
+3c509
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_dw
+8250_exar
+8250_lpss
+8250_men_mcb
+8250_mid
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+BusLogic
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acer-wireless
+acer-wmi
+acerhdf
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_extlog
+acpi_ipmi
+acpi_pad
+acpi_power_meter
+acpi_tad
+acpi_thermal_rel
+acpiphp_ibm
+acquirewdt
+act8865-regulator
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv7511-v4l2
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+advantechwdt
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aegis128-aesni
+aes_ti
+aesni-intel
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+aha152x_cs
+aha1740
+ahc1ec0
+ahc1ec0-hwmon
+ahc1ec0-wdt
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+airspy
+ak7375
+ak881x
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alienware-wmi
+alim1535_wdt
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+ambassador
+amc6821
+amd
+amd-rng
+amd-xgbe
+amd5536udc_pci
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd_freq_sensitivity
+amd_iommu_v2
+amdgpu
+amilo-rfkill
+amplc_dio200
+amplc_dio200_common
+amplc_dio200_pci
+amplc_pc236
+amplc_pc236_common
+amplc_pc263
+amplc_pci224
+amplc_pci230
+amplc_pci236
+amplc_pci263
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+aoe
+apanel
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+apple-gmux
+apple_bl
+appledisplay
+applesmc
+applespi
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcfb
+arcmsr
+arcnet
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3935
+as5011
+asb100
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asus-laptop
+asus-nb-wmi
+asus-wireless
+asus-wmi
+asus_atk0110
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atlas_btns
+atm
+atmel
+atmel-ecc
+atmel-i2c
+atmel-sha204a
+atmel_cs
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avm_cs
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axnet_cs
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_charger
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish-x86_64
+blowfish_common
+blowfish_generic
+bluecard_cs
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia-aesni-avx-x86_64
+camellia-aesni-avx2
+camellia-x86_64
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5-avx-x86_64
+cast5_generic
+cast6-avx-x86_64
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+cec-gpio
+ceph
+cfag12864b
+cfag12864bfb
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-x86_64
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_laptop
+chromeos_pstore
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cio-dac
+cirrus
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+clk-cdce706
+clk-cs2000-cp
+clk-max9485
+clk-palmas
+clk-pwm
+clk-s2mps11
+clk-si5341
+clk-si5351
+clk-si544
+clk-twl6040
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm36651
+cm4000_cs
+cm4040_cs
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobalt
+cobra
+coda
+com20020
+com20020-pci
+com20020_cs
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_pcmcia
+comedi_test
+comedi_usb
+comm
+compal-laptop
+contec_pci_dio
+cops
+cordic
+core
+coretemp
+cortina
+cosm_bus
+cosm_client
+counter
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia2
+cpu5wdt
+cpuid
+cpuidle-haltpoll
+cqhci
+cr_bllcd
+cramfs
+crc-itu-t
+crc32-pclmul
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-pclmul
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_ishtp
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_lpcs
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+crvml
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+ct82c710
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062_wdt
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_cs
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcdbas
+ddbridge
+de2104x
+de4x5
+defxx
+dell-laptop
+dell-rbtn
+dell-smbios
+dell-smm-hwmon
+dell-smo8800
+dell-uart-backlight
+dell-wmi
+dell-wmi-aio
+dell-wmi-descriptor
+dell-wmi-led
+dell_rbu
+denali
+denali_pci
+des3_ede-x86_64
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dps310
+dpt_i2o
+dptf_power
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dtl1_cs
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-edma
+dw-edma-pcie
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-pci
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+e752x_edac
+earth-pt1
+earth-pt3
+ebc-c384_wdt
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_bhf
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edac_mce_amd
+edt-ft5x06
+ee1004
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts_serial
+ehci-fsl
+ehset
+einj
+ektf2127
+elan_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_pcmcia
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esb2rom
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+eurotechwdt
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-axp288
+extcon-fsa9480
+extcon-gpio
+extcon-intel-cht-wc
+extcon-intel-int3496
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71808e_wdt
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fam15h_power
+fan53555
+farsync
+faulty
+fb_ddc
+fb_sys_fops
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fjes
+fl512
+floppy
+fm10k
+fm801-gp
+fm_drv
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fschmd
+fsia6b
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftsteutates
+fujitsu-laptop
+fujitsu-tablet
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-clmulni-intel
+gigaset
+gl518sm
+gl520sm
+gl620a
+glue_helper
+gluebi
+gm12u320
+gma500_gfx
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpd-pocket-fan
+gpio
+gpio-104-dio-48e
+gpio-104-idi-48
+gpio-104-idio-16
+gpio-adp5520
+gpio-adp5588
+gpio-amd-fch
+gpio-amd8111
+gpio-amdpt
+gpio-arizona
+gpio-bd9571mwv
+gpio-beeper
+gpio-charger
+gpio-crystalcove
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-f7188x
+gpio-generic
+gpio-gpio-mm
+gpio-ich
+gpio-it87
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-ml-ioh
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sch
+gpio-sch311x
+gpio-siox
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-vx855
+gpio-wcove
+gpio-winbond
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-ws16c48
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpu-sched
+gr_udc
+grace
+gre
+greybus
+grip
+grip_mp
+gru
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdaps
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+hecubafb
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfi1
+hfs
+hfsplus
+hgafb
+hi311x
+hi6210-i2s
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-hyperv
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hio
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hopper
+horizon
+horus3a
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp-wireless
+hp-wmi
+hp03
+hp100
+hp206c
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hpwdt
+hsi
+hsi_char
+hso
+hsr
+hsu_dma
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei-wmi
+huawei_cdc_ncm
+hv_balloon
+hv_netvsc
+hv_sock
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hyperv-keyboard
+hyperv_fb
+hysdn
+i10nm_edac
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd-mp2-pci
+i2c-amd-mp2-plat
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-cbus-gpio
+i2c-cht-wc
+i2c-cros-ec-tunnel
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-ismt
+i2c-kempld
+i2c-matroxfb
+i2c-mlxcpld
+i2c-multi-instantiate
+i2c-mux
+i2c-mux-gpio
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-reg
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3000_edac
+i3200_edac
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5000_edac
+i5100_edac
+i5400_edac
+i5500_temp
+i5k_amb
+i6300esb
+i7300_edac
+i740fb
+i7core_edac
+i82092
+i82975x_edac
+i915
+iTCO_vendor_support
+iTCO_wdt
+iavf
+ib700wdt
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_qib
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibm_rtl
+ibmaem
+ibmasm
+ibmasr
+ibmpex
+icc-core
+ice
+ichxrom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad-laptop
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ie31200_edac
+ie6xx_wdt
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int3400_thermal
+int3402_thermal
+int3403_thermal
+int3406_thermal
+int340x_thermal_zone
+int51x1
+intel-cstate
+intel-hid
+intel-ish-ipc
+intel-ishtp
+intel-ishtp-hid
+intel-ishtp-loader
+intel-lpss
+intel-lpss-acpi
+intel-lpss-pci
+intel-rng
+intel-rst
+intel-smartconnect
+intel-vbtn
+intel-wmi-thunderbolt
+intel-xhci-usb-role-switch
+intel-xway
+intel_atomisp2_pm
+intel_bxt_pmic_thermal
+intel_bxtwc_tmu
+intel_cht_int33fe
+intel_chtdc_ti_pwrbtn
+intel_int0002_vgpio
+intel_ips
+intel_menlow
+intel_oaktrail
+intel_pch_thermal
+intel_pmc_ipc
+intel_powerclamp
+intel_punit_ipc
+intel_qat
+intel_quark_i2c_gpio
+intel_rapl_common
+intel_rapl_msr
+intel_soc_dts_iosf
+intel_soc_dts_thermal
+intel_soc_pmic_bxtwc
+intel_soc_pmic_chtdc_ti
+intel_telemetry_core
+intel_telemetry_debugfs
+intel_telemetry_pltdrv
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+intelfb
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ioatdma
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipu3-cio2
+ipu3-imgu
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+ipwireless
+iqs5xx
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+isci
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+isst_if_common
+isst_if_mbox_msr
+isst_if_mbox_pci
+isst_if_mmio
+it87
+it8712f_wdt
+it87_wdt
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k10temp
+k8temp
+kafs
+kalmia
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-amd
+kvm-intel
+kvmgt
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-adp5520
+leds-apu
+leds-as3645a
+leds-bd2802
+leds-blinkm
+leds-clevo-mail
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxcpld
+leds-mlxreg
+leds-mt6323
+leds-nic78bx
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-ss4200
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+legousbtower
+lg-laptop
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmc
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp8755
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltpc
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+macb
+macb_pci
+machxo2-spi
+machzwd
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77693-haptic
+max77693-regulator
+max77693_charger
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mce-inject
+mceusb
+mchp23k256
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-i2c
+mdio-mscc-miim
+mdio-thunder
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mei
+mei-me
+mei-txe
+mei_hdcp
+mei_phy
+mei_wdt
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+meye
+mf6x4
+mgag200
+mi0283qt
+mic_bus
+mic_card
+mic_cosm
+mic_host
+mic_x100_dma
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microread_mei
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx-platform
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+moxa
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi-laptop
+msi-wmi
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+msr
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwave
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxm-wmi
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n411
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+nettel
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-avx2
+nhpoly1305-sse2
+ni903x_wdt
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_common
+ni_labpc_cs
+ni_labpc_isadma
+ni_labpc_pci
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nic7018_wdt
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_intel
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nv_tco
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nvram
+nxp-nci
+nxp-nci_i2c
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of_xilinx_wdt
+ofb
+omfs
+omninet
+on20
+on26
+onenand
+opa_vnic
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+padlock-aes
+padlock-sha
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+panasonic-laptop
+pandora_bl
+panel
+panel-raspberrypi-touchscreen
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pc300too
+pc87360
+pc87413_wdt
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcengines-apuv2
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-hyperv
+pci-hyperv-intf
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia
+pcmcia_core
+pcmcia_rsrc
+pcmciamtd
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_pcmcia
+peak_usb
+peaq-wmi
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cpcap-usb
+phy-exynos-usb2
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-broxton
+pinctrl-cannonlake
+pinctrl-cedarfork
+pinctrl-denverton
+pinctrl-geminilake
+pinctrl-icelake
+pinctrl-intel
+pinctrl-lewisburg
+pinctrl-madera
+pinctrl-mcp23s08
+pinctrl-sunrisepoint
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn544_mei
+pn_pep
+pnd2_edac
+poly1305-x86_64
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+processor_thermal_device
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp_kvm
+pulse8-cec
+pulsedlight-lidar-lite-v2
+punit_atom_debug
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-cros-ec
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pxa27x_udc
+pxe1610
+pxrc
+qat_c3xxx
+qat_c3xxxvf
+qat_c62x
+qat_c62xvf
+qat_dh895xcc
+qat_dh895xccvf
+qca8k
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quatech_daqp_cs
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rapl
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+ray_cs
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rdmavt
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-bq32k
+rtc-bq4802
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-isl12022
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rc5t583
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wilco-ec
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-keypad
+samsung-laptop
+samsung-q10
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sb_edac
+sbc60xxwdt
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp_target
+sbs
+sbs-battery
+sbs-charger
+sbs-manager
+sbshc
+sc1200wdt
+sc16is7xx
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scif
+scif_bus
+scr24x_cs
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sdhci
+sdhci-acpi
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_f_sdh30
+sdio_uart
+sdricoh_cs
+seco-cec
+seed
+sensorhub
+ser_gigaset
+serial_cs
+serial_ir
+serio_raw
+sermouse
+serpent-avx-x86_64
+serpent-avx2
+serpent-sse2-x86_64
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-ssse3
+sha256-ssse3
+sha3_generic
+sha512-ssse3
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sil164
+silead
+sim710
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis-agp
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+skx_edac
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+sl811_cs
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc91c92_cs
+smc_diag
+smiapp
+smiapp-pll
+smipcie
+smm665
+smsc
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-acp3x-pcm-dma
+snd-acp3x-pdm-dma
+snd-acp3x-rn
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-ext-core
+snd-hda-intel
+snd-hdmi-lpe-audio
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel-sst-acpi
+snd-intel-sst-core
+snd-intel-sst-pci
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pci-acp3x
+snd-pcm
+snd-pcm-dmaengine
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-rn-pci-acp3x
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-skl_nau88l25_max98357a
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-acpi-intel-match
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7213
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdac-hda
+snd-soc-hdac-hdmi
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kbl_da7219_max98357a
+snd-soc-kbl_da7219_max98927
+snd-soc-kbl_rt5660
+snd-soc-kbl_rt5663_max98927
+snd-soc-kbl_rt5663_rt5514_max98927
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-nau8825
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rl6347a
+snd-soc-rt286
+snd-soc-rt298
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5651
+snd-soc-rt5660
+snd-soc-rt5663
+snd-soc-rt5670
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rt5682
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-skl_hda_dsp
+snd-soc-skl_nau88l25_ssm4567
+snd-soc-skl_rt286
+snd-soc-sof_rt5682
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sst-acpi
+snd-soc-sst-atom-hifi2-platform
+snd-soc-sst-bdw-rt5677-mach
+snd-soc-sst-broadwell
+snd-soc-sst-bxt-da7219_max98357a
+snd-soc-sst-bxt-rt298
+snd-soc-sst-byt-cht-cx2072x
+snd-soc-sst-byt-cht-da7213
+snd-soc-sst-byt-cht-es8316
+snd-soc-sst-bytcr-rt5640
+snd-soc-sst-bytcr-rt5651
+snd-soc-sst-cht-bsw-max98090_ti
+snd-soc-sst-cht-bsw-nau8824
+snd-soc-sst-cht-bsw-rt5645
+snd-soc-sst-cht-bsw-rt5672
+snd-soc-sst-dsp
+snd-soc-sst-firmware
+snd-soc-sst-glk-rt5682_max98357a
+snd-soc-sst-haswell
+snd-soc-sst-haswell-pcm
+snd-soc-sst-ipc
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-intel-byt
+snd-sof-intel-hda
+snd-sof-intel-hda-common
+snd-sof-intel-ipc
+snd-sof-pci
+snd-sof-xtensa-dsp
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-us122l
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-vxpocket
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+soc_button_array
+softdog
+softing
+softing_cs
+solo6x10
+solos-pci
+sony-btf-mpx
+sony-laptop
+soundcore
+soundwire-bus
+soundwire-cadence
+soundwire-intel
+soundwire-intel-init
+sp2
+sp5100_tco
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmmac
+stmmac-pci
+stmmac-platform
+stowaway
+stp
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+stx104
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3-wmi
+surface3_button
+surface3_spi
+surfacepro3_button
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thermal-generic-adc
+thinkpad_acpi
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderbolt
+thunderbolt-net
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads7950
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tlclk
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+topstar-laptop
+torture
+toshiba_acpi
+toshiba_bluetooth
+toshiba_haps
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_nsc
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+tqmx86_wdt
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish-avx-x86_64
+twofish-x86_64
+twofish-x86_64-3way
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+uPD98402
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_hv_generic
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+usnic_verbs
+uss720
+uv_mmtimer
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vboxguest
+vboxsf
+vboxvideo
+vcan
+vcnl4000
+vcnl4035
+veml6070
+ves1820
+ves1x93
+veth
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-camera
+via-cputemp
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+via686a
+via_wdt
+viafb
+vicodec
+video
+video-i2c
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+visorbus
+visorhba
+visorinput
+visornic
+vitesse
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vmd
+vme_ca91cx42
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmw_balloon
+vmw_pvrdma
+vmw_pvscsi
+vmw_vmci
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmw_vsock_vmci_transport
+vmwgfx
+vmxnet3
+vop
+vop_bus
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83877f_wdt
+w83977f_wdt
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wilco-charger
+wilco_ec
+wilco_ec_debugfs
+wilco_ec_events
+wilco_ec_telem
+wimax
+winbond-840
+winbond-cir
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wl3501_cs
+wlcore
+wlcore_sdio
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wmi
+wmi-bmof
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x38_edac
+x86_pkg_temp_thermal
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-pciback
+xen-pcifront
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-hwmon
+xhci-plat-hcd
+xiaomi-wmi
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xillybus_core
+xillybus_pcie
+xirc2ps_cs
+xircom_cb
+xlnx_vcu
+xor
+xp
+xpad
+xpc
+xpnet
+xr_usb_serial_common
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zatm
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/amd64/lowlatency.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/amd64/lowlatency.retpoline
@@ -0,0 +1 @@
+# retpoline v1.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/arm64/generic
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/arm64/generic
@@ -0,0 +1,23624 @@
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-ce-cipher 0x68f275ad	ce_aes_expandkey
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-ce-cipher 0x986e5304	ce_aes_setkey
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0x52d67a4e	neon_aes_cbc_encrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0xd5f41819	neon_aes_ecb_encrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0xea11590c	neon_aes_xts_encrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/aes-neon-blk 0xefc32a9b	neon_aes_xts_decrypt
+EXPORT_SYMBOL	 arch/arm64/crypto/sha256-arm64 0xb455924d	sha256_block_data_order
+EXPORT_SYMBOL	 arch/arm64/crypto/sha512-arm64 0xcdb6a418	sha512_block_data_order
+EXPORT_SYMBOL	 arch/arm64/lib/xor-neon 0xd4671463	xor_block_inner_neon
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x20a6e4d5	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x2973327e	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x307fbaf5	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x3e45e99c	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x85f28747	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfa3e0444	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x2a416ab1	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x3292c279	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xae018202	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x79072a7e	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x90b46a51	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/acpi/nfit/nfit 0xceec93be	to_nfit_uuid
+EXPORT_SYMBOL	 drivers/atm/suni 0xe21c19af	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0x48849443	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xb4d6392f	bcma_core_irq
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x354da247	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x869c89fd	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x17097b77	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x324b101e	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x8fec9eba	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe679701a	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x10f432f7	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x8d434fd3	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xc6b96557	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xcdedfe6c	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xca3b2a37	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xdcecc8d3	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xff1fa626	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x65b4050b	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x66ba1ef2	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xb0d15078	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x17572340	caam_congested
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x37734e06	caam_dpaa2
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x44ae4bc4	qi_cache_free
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x58a93391	caam_qi_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x6db9ba18	caam_drv_ctx_init
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0xc0eaa792	qi_cache_alloc
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0xcb8352f9	caam_drv_ctx_update
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0xf23143cf	caam_drv_ctx_rel
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x19560d17	split_key_done
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x3dbef79b	caam_jr_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x95298856	caam_jr_free
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x97c9b981	gen_split_key
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xffe08429	caam_jr_alloc
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x2e152bb7	cnstr_shdsc_xts_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x3b54a9ad	cnstr_shdsc_aead_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x76a68e3e	cnstr_shdsc_chachapoly
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x7b0c587f	cnstr_shdsc_rfc4543_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x7b7bcab8	cnstr_shdsc_rfc4543_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x86bcdec7	cnstr_shdsc_xts_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x88430d4c	cnstr_shdsc_aead_null_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x91ac0969	cnstr_shdsc_aead_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa3115081	cnstr_shdsc_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa340e264	cnstr_shdsc_aead_givencap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa99d7fa6	cnstr_shdsc_aead_null_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xebcdd349	cnstr_shdsc_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xf92c5da5	cnstr_shdsc_gcm_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xf95bcf62	cnstr_shdsc_gcm_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xfd807e48	cnstr_shdsc_rfc4106_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xfdf7ec8f	cnstr_shdsc_rfc4106_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0x30a1e372	cnstr_shdsc_sk_hash
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0xb5571dbf	cnstr_shdsc_ahash
+EXPORT_SYMBOL	 drivers/crypto/caam/dpaa2_caam 0x296069a1	dpaa2_caam_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x53d0fc97	caam_ptr_sz
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x7a3392b8	caam_strstatus
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xa51f16c7	caam_little_end
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xbd67c092	caam_imx
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xd25da602	caam_dump_sg
+EXPORT_SYMBOL	 drivers/dma/xilinx/xilinx_dma 0x9d515eba	xilinx_vdma_channel_set_config
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x063f37d6	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0c18c7dd	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0ec17a44	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x17eaba48	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x24022314	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x28961213	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x29f4ae00	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x36f305bd	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3d9ce9ec	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4b333a7b	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x59f2c1b9	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6f3f1062	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x857d56ed	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x91248f7e	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa273479a	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa2f61818	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xbe2e1204	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xca89b82e	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb94cb80	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcedc4165	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd12d207e	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd1b39c97	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xdd9052ee	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe102383c	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf3d19d50	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfd8db49d	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x021c5c26	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0299a54e	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03deb7fd	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04cdb532	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04f28926	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x057c824d	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x061d6534	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0634a843	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06fb7e10	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08ecd571	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0901c692	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x095f1376	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a16b42e	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a37295b	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b057a6a	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b703948	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c56465a	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c58de14	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c913062	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ccb12fa	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d10067a	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0eb3f3f6	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f07776d	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f3840ee	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f38e96d	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x110d757a	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x121171b9	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12462151	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x125b5b85	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x126da341	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x127a8c6b	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1291ee2e	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12f60a50	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14e85867	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1508cad8	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15405563	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d34334	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16288f51	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x168e7167	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1808bae0	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18fae8cf	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1987863c	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19b44b46	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a727d78	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c0b4af1	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c2902c1	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d1a508e	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1df589cb	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e378066	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x206b0585	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21ccb2f9	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d541eb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x222874da	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x229f66ef	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x22ffc06e	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x231fb34b	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24bd5666	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24d254e2	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x258d695b	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25d94064	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x26a36a31	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270805fc	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x280f59c7	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x285f6fb8	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x289747b8	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28b0d63d	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a754618	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c09a052	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c737bde	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d1df4b8	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2defebac	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f093366	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f15b9b5	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fc3e908	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fce28b8	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30004864	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x302912ed	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3077fe33	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30916267	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30a400de	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30bc0f05	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x319617f8	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x320a51c2	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32aef3a7	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3326232b	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x336476a6	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3386c466	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33a7a14f	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x340ec477	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37a97e0a	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37d8f0da	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x385a2dfd	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a6ccc85	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ae43f0e	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b0b7495	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b983204	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3bc292e4	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ce03ccf	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d4fccde	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3db08ed4	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e50b109	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ed1f164	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4038662a	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x40c0519a	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x415911e9	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42ebd1a2	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43a93682	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44b1db9d	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44b7bb03	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46245188	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46da3727	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47828eb6	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48075a6f	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48b69eb2	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48ba2da6	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48f8c632	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x490d0a50	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a62218f	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4be00515	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4bf112bc	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edb2427	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f4b8b80	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x522b560b	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5279ae74	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52c412d0	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52d6be72	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53c41c79	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54d715af	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54da002e	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x552fae85	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5542443b	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55aa4e61	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x572c8c22	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x574921f3	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57944031	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57d27eae	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58508cd2	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58ad752b	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58b2a978	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x590de1d8	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5aa6552b	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5aebc2dc	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cb62862	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cefe3af	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e491f19	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd2d06d	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fd43696	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61fe50f7	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x620d1dfc	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62851150	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x637915b8	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6419fd78	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6553ba2b	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x655725d6	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x665620b4	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66cf4a8c	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6774cc15	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6836f02c	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x687d1a53	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a108efc	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a933ea7	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aa3c338	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ad331ed	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b93bcf4	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c91f453	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d2f5fff	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d8027af	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dbf8065	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f3b03ec	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fcf1960	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fe52228	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ffe086b	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x708299f2	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x713ac976	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72b547ca	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72bb0054	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72c2e2bc	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72eb62c1	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75c357de	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x765b5aec	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76988a61	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76b4371e	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77532960	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78ca7938	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x796b551b	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a36c987	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ac17026	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b8581dc	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ca0833d	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ce0263a	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d1cbc7b	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d20d8e3	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d2db134	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d94a6f4	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e22becf	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fc8e65b	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x809d2779	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80d04c72	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81c2cde6	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81cec8ba	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x824a5250	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8368498d	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83d50ec2	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x842dd90c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85ed49ca	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x86e02b65	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8761b227	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8960efcb	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b65383d	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bd2b59c	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bf899a0	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c06514e	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c27642a	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c76635e	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d4d166f	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d52b195	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e68ba5a	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8eddf9ad	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f41067b	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90be5d5e	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91673f75	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91dc16f0	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92b43ad8	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92cfc851	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9363a5f4	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94075e5e	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x942979fd	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x945c792f	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x946d98d9	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94738753	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96d14b7d	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96ee78f3	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x972edfc3	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x978e2420	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x97d195be	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b7d27d9	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bc6e81e	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d2768ce	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e19492a	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e9f2aed	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ed0f206	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ed667b0	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f565bd6	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa32804f7	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3525693	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4820fd5	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6ea879b	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa80204f2	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8106fdb	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa888b193	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa93f2f2	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaba4f837	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xabdfe47c	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad00534b	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad1a92b7	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad87bdc2	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xada71568	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf770076	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0c0d4ca	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb24c8e00	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2e81353	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3a9acc1	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5c9cf92	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7fa5cb1	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb95713e8	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9be1a49	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb077874	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc60d3fe	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcabd81e	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcb6576d	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd305735	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd4c21bd	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe28cbed	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf2b1765	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc031c689	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0f7b718	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc14b7cb3	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc17d98e0	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc351f70b	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc376bfa9	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4294a24	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc42c9f12	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc51e03b6	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5c10336	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5f127f3	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5f85564	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6323239	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc64a02b2	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc68ac18e	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc73cda3c	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7cad96d	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc84b116a	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc97f220c	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9d93d1e	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca1fda14	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca8f025a	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcadef538	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc8c9a0e	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xccde9a99	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd13ae4a	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd17219b0	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1ceded6	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd27cf49d	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd2b7131f	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3195e1b	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd332a39c	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3f00234	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4e4f51c	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6b6c906	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8582927	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9663608	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd98e6e7a	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9a6bf00	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb029488	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbe312b7	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc922b7e	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd592615	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdec8dad4	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdeec7708	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf5711fa	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf8a892b	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfd1dac3	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe0cc834e	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe0fa9d1b	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1d0e19b	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe220c3cb	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe299ede1	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe315992d	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe66587a9	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe69821c4	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe705ad7d	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe7ec2f67	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe874ef8a	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9e09f02	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9ee69c9	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea05d1d6	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea38a5f0	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea3e1f58	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeacca795	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb4c78ef	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebda18b5	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec1fbe8b	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xecee63ec	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed514cd5	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee9bd772	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef1b2efd	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef6c08d1	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0a35df3	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0b68bdf	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1f6a887	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf21ee556	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf291bc5a	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3679566	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4de491f	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf50909b7	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf50992dd	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6d7855f	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7ea219e	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8e19708	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf91d572f	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa5126b7	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfaf6c28d	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbe77902	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfcbf7b1c	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd61e5d6	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff3f19e8	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffae2e16	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x002fe2e2	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x00aefcdf	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x03c1d572	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x04cd3e53	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x05d34af3	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0623fadc	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x087ed657	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x08cd24ba	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0cc5d136	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0db0354c	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0db50f4a	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e61deb2	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f0a3960	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10e41ed2	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1134f760	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11463e1a	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x15593d91	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16965483	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16cc7f54	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x199d8deb	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1bcb3b37	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c50ead7	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d3687b9	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d5b0c45	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1d7d23e2	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1de2c54b	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f6abe96	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f8eb686	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1fcdaea0	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x21791bdf	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2230f1b5	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x22bcd004	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23faacf7	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x25b9465f	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x25c33476	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x260324f3	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x261206fd	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2726b121	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x276a054d	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2d4e5f9d	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f56967c	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2f73197d	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31024f14	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3196a063	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x369af6e0	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x38fa29db	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3913c05a	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a9f3865	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3abb8e1c	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b778db9	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3d52ee5f	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f155308	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f2b2382	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4047e55f	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x41f87dc9	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x42a56af4	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4392f001	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x457a43c7	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x475b4e22	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b03cf7	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4a57f072	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4bdc43b8	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ce12533	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d58b821	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e145083	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e668e98	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e80df39	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e96312b	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x518204e6	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51e12812	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53144f7a	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54df2c47	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x559fbc8d	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5838e4aa	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x596050e8	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c11c2c4	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61333056	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61869bd7	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x64510c33	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6505ca29	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c030034	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6cb7586c	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6fc00db2	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6fc7ffa3	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x750a8711	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7666ea22	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x77ff7792	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7833275b	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x79b1323b	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b1d3d84	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7be999ce	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7c6ad4a1	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d8ba84c	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x800e410b	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81a02f3d	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81bf4c40	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81d7d3d8	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82c84815	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x840892c3	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x870c6f51	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8795c80c	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87d960b7	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x899ae1e1	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8a53a7dd	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c1933bd	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8e52d5b9	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90fb2af5	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91a0d26e	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92710767	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93a5bad8	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93adb6da	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93fd4319	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9661e0b3	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96c4e740	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96dcb7f4	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98828e0b	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9985f1a2	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b6ffe17	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9bfcd3ea	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9c13def9	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e48d521	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e6a6d32	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f0ed4e3	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa215fbd6	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa62ba94c	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6c4e22e	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa714a509	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa7a804ac	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa7f7de19	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa7fa3f34	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa83e9afa	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadb5a636	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafd50691	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb25700dc	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb25a9898	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb2f5442e	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb3cba930	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb407d526	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb5528716	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb61a7973	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb6f828f9	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb8030bc3	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbbb5c676	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf3715aa	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3423669	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3fbadb4	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc75bf202	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc941e717	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc95b62ab	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcae33126	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb4845e2	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb86c8b2	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcc19beac	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcc6438ff	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xccf70e48	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcf1e52ed	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcfad2b25	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd00488ff	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd051a3b4	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd1c2714a	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd51a8bda	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5874a91	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd7e1989c	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd809fa63	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd8ddce0a	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9febb59	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdae67660	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe11e831c	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe209156a	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe448d68a	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5b81d4c	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe6431f26	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeb65731f	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xec9fca63	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee42e432	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee7869b0	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xef46f7e9	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf265ba94	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2c7d97b	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf31da4d4	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf380ea84	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf4709ece	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5e4de5d	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf6aa9e10	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf6e5d553	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7254260	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7acdcb1	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf88becf2	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf921ef8b	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9b312fa	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9ec5d74	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf9f4fb70	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfb9e71c4	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd0ead67	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xff1b6cad	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x046d2a81	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0818e9be	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x133a9636	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2ef28e35	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x47fa8ce8	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4b20b454	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x504ba40d	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x5d1ab2fa	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6eb9d8a4	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x7fdc56d3	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa317dcab	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa3842b12	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb15ebdad	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc163b1ce	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xda3d27c8	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xdeb2c7f0	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe08779f7	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfc09697f	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x22d4f92a	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3862b744	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3a951830	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x45caa5be	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4bb8983e	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x52b557d0	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x72255b58	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x76fb0922	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7ea09b11	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x887e0bea	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x88823347	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8b36fa79	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9eaa8d8b	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa08853bf	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa4ac3205	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa8bff60d	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc3fc1d8b	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdb3c0769	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xdd7a375b	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe78d70ef	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/rockchip/rockchipdrm 0xcac472d6	rockchip_drm_wait_vact_end
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0263c312	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x092ec9b4	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0a62555a	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0dbe4886	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x24948d55	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x44375965	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x4feec0b0	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x50d1e3eb	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5b1ca782	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x74e124ec	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x78655257	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x7fd032f2	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x97874e0a	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x97c399d4	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xba0a19e0	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc4a51fef	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc5898ce2	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xdb7fd256	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfefcbce2	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x3373eab6	sun4i_frontend_update_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x5c9a8933	sun4i_frontend_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x7436e70e	sun4i_frontend_update_coord
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x82ee7955	sun4i_frontend_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0x96413fdb	sunxi_bt601_yuv2rgb_coef
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xa631b179	sun4i_frontend_format_is_supported
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xcbe58f02	sun4i_frontend_init
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xe13164ef	sun4i_frontend_of_table
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-frontend 0xed694e64	sun4i_frontend_update_buffer
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x07ba967c	sun4i_lvds_init
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x3ca4b859	sun4i_tcon_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x3e816390	sun4i_rgb_init
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x6c10c7a7	sun4i_tcon_of_table
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0x6c94fbf0	sun4i_tcon_enable_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0xea83fa8b	sun4i_dclk_free
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun4i-tcon 0xf681169a	sun4i_dclk_create
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun8i_tcon_top 0x11c711f0	sun8i_tcon_top_set_hdmi_src
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun8i_tcon_top 0x350e5dcd	sun8i_tcon_top_of_table
+EXPORT_SYMBOL	 drivers/gpu/drm/sun4i/sun8i_tcon_top 0x3d1f00e1	sun8i_tcon_top_de_config
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x03038487	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x03ceac56	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0917c191	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c724355	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x11d7bc50	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1760e3e5	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1af1b273	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1c04d091	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1cad8efc	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1dbc2488	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1e89003b	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2280640a	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x29d9734b	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f14125a	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x32c0f3c1	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3cac5b40	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3ccc77f0	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x43c92196	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x45acdca6	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x46214ab6	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x48d440fe	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x54fe9ec0	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x57d6f171	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x58a9cfa0	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5a0d1699	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5d4bba9f	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5e488318	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5ecd038e	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x60a25de4	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x62778295	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6f43ec5f	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x73015878	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x77245ff9	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7cdb95e6	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x81b453b5	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x852f6abe	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x86275eba	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87fabd30	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x93969f4d	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x93ac5d4c	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x991fd1eb	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9a1a9c4d	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa4298788	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xae581d38	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb5e87279	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb608e7fe	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb7aa9b67	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbeb77dde	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc203fd04	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc33464e3	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc94e722e	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd3f6ccd0	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd88c1270	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd93ba83c	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdacad15c	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdc5bb1a7	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xde0ed454	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdf699195	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe46f8619	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe66967d7	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf21251af	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf49de21d	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfa2971d0	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/hid/hid 0xebc4f716	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x08179f05	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x28e9f04f	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x8b980491	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xdaddb72b	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x88925a8c	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xcb75755b	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x6c0d35c8	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x5ed611c3	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x8d781257	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x8f31d0d6	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x07d25573	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x0fb0a082	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x25852fc7	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x56d0704a	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x599c161d	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5f6b49df	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6d02a33e	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7a700122	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x900dbb87	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9f6362e4	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbe47f47d	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xd0b1be89	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe0a913b1	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe3c5396d	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf992ffd2	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xfb16ba8c	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x5bf0c1e9	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xca492dcf	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xf29f5c8b	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x1c680ae1	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x7a4407d6	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x247e2f8c	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x7e25d9fc	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xb4346cef	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xeb95be9a	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xc8c0db0a	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3bf47b8d	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x478092b9	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x575d8063	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5c25a37b	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6f1cb0af	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x760e68ff	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x761b4e2d	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc14f660f	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xccd8c174	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf56536f8	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x2b4215fc	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x873b3545	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc37e5445	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xe88b04e0	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x079f345c	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x0ea8fee2	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x15dedf82	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x531cd695	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x83a7983a	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb343b0a1	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc0c9f2d7	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xc6521ec7	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xcfe14137	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x2b1321ff	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x32f2b3ae	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x52179513	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x7ff868c5	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x88b7481d	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x1868fe17	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x44668d93	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xe80250ab	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x047474ee	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x117c9978	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1a0049a2	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1ff7dd4d	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x282e5e73	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2de7134e	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3a5e864e	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5e99dd6b	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x785fa522	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8b99b1db	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x99a91890	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xd2df7cc5	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xde7da91e	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe4721240	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xef9721c4	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf4344da5	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xfb2c730e	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xfd400a7a	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x11eddc19	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x129b263a	st_sensors_match_acpi_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x4aceb85e	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x511fa361	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xa1fbeb9d	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xeb5d2a69	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x363ac75f	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xa8fd4637	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xb693c469	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x1a6db3fb	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x3dd55715	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x2cc1566b	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x3eac3db6	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x9bff0e1e	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x1e0ed1de	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x7f2aa3d7	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x04aeb9b7	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x147dd5f8	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1f7928a6	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x3d07f860	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x44a250b8	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x523bb4d9	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x5856144a	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x615f6015	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8a0956b7	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x97f726f6	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x98e23fe1	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9e30d480	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa8067c4d	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xaf0db013	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb89f15d4	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbc7aac21	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbd810876	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xce2d0442	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd15bbf89	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe00e75c0	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe7efba49	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf5077ec4	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xfabbf691	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x773b4288	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x7ad6cb38	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x7e496f5d	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x865637df	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xbe68351a	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x298d1164	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x435d085f	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x7c1e20a5	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xe84e6be0	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x35baf7ae	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xf7c61abb	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x209408a2	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x5c711308	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x0ca60eb6	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x3aacc35c	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x70aabae4	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xee63d434	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x1b21c198	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x3fea2bb2	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x83498e41	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xf296858e	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x7df8b474	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xa7ce0cfe	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xd320634b	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x3ccc627e	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x67194d73	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x95099ab3	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xd64abf1c	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xe580ce65	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x0e15da2a	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x7ca66753	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x6208c894	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x73794fe6	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xcc2d0781	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x12d7f79a	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x16843ba3	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x270f5de9	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3704e9ac	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x37d50c1d	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5e682d42	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6cd02620	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x82441c95	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x84ff4114	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x976d0d7f	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa4c29b48	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb4cf2a51	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xbc1d23de	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd9915b5f	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xddb6f05a	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe9df7548	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xedc495de	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xeebe26bc	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x01db5f91	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x02beb19b	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0373bf7e	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x05e42ea3	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06c12c26	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0781330a	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b9f96d3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0bd8427f	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0cb7c782	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e27f711	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13385318	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x136ccef3	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x173abe48	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x187fcc5d	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b87ff00	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1bf7ee09	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1c27ec2c	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d9cd804	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1ea54a68	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1ed68d93	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1f3e0c10	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1fbc3dca	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2084da71	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22d92ff0	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2595a60f	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x264c738c	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26f1206d	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ae98c9f	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2b1b889f	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2bb7e6ac	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c7eeba8	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2d43e5d6	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x304a5ae8	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x314f5ec2	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31c3d773	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31db9c08	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x323b6ddb	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33dc1aff	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x347c7a42	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x353aad6d	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x387bb2b2	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x390570b5	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3929455b	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x396f1fc9	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ada2ec4	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3affd0ba	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b528ca9	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3bde2389	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ccd01e9	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3eb569ec	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4021fed9	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x40bfb3d4	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42b07e58	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x433a880c	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x43aa7551	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45672077	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x469c9590	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x469ecd63	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47a94b92	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4804e3d9	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48aadf7c	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48dd971a	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x490039a5	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x493bc0e4	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4941eb85	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49bd485d	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4be01dd7	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4ce543c5	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4dddfa70	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x510ccd26	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x51dc324c	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5359c8d0	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5aed048b	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5efa6669	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62b42d6c	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x63b7d69b	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6609599f	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c79c36c	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c80e8b6	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6d5dfa9b	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x707aba6d	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x74c6476e	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7859202c	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x790b9722	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bcbd4ed	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ca6dc3a	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7d7e6776	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7dd63055	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f627231	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8045c3a4	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80c6ba6c	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80d834f7	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x835e8a6f	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8537ffee	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x88e2ae07	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89150696	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89cf7e5d	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89d4d427	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a918482	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8adff432	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8afa10d8	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8cd85df9	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d0091be	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d4e6cd1	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e31032e	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f296ffb	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8fd9ce08	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x903264e9	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90c53429	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9399f469	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9491bbc8	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95786ce5	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95788096	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9614d7ee	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x976a7188	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99a99947	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a249a06	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b76d3a0	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9c55e597	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9cae5c9f	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9cc5c562	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d46bd03	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9dab77ef	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f259687	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9fc46c2b	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2543179	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa307830c	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa8e9138a	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa9c81777	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xacdcafdf	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb058902d	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb06d2f5d	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2540768	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb536e040	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5f414d1	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb72c4a2d	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb88fc580	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb9a2fc1f	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbd40ad98	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbdf95924	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbef96ac6	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbfe03aaf	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc5dc0a9d	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc5fddc25	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc7e0a529	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8eb0ff2	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc92a58d3	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc94d72cb	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xca8aeb97	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf6986aa	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd067636c	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd1a06355	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd3ae88f8	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5b672f4	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd619b8e3	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7f2d649	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd9b32a96	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdcfbd09a	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdf3d18bd	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdfcc8c31	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe15db6b9	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe2dac6d2	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe39aaa12	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4bcbdac	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4bdce9e	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe55270d0	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe6854692	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe6d0cda3	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7691b14	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe84e8f5e	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8f43678	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xecb319e5	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xedbde1ce	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee5d365b	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef044a06	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf0be935f	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf12ab37f	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf58a1815	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf7c40f1a	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfa9671ed	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb710211	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfbb003ef	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe656e76	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfecbc549	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xffbc017e	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x022f202c	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x08d2b6ab	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0f5664d2	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1fa7d7c9	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3220bdf3	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x45c62005	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4f18ad33	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x54f55465	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x710f9369	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x72c5f337	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7550934f	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x770d0450	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7953cf21	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x81bd1e7b	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8cfc995c	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x967569ef	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9986b858	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9ec60819	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa5807b9e	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xadca9ee6	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xaf09ac7b	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb06fd62a	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb1ae14f7	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb9322e82	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbe678e01	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbfea5ef2	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xedafbfd2	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf548f5a3	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfc6aa1cb	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfdb281b8	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x01476d4b	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x13f0b530	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x24df188d	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x6359d927	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x94265f39	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xa7b25ac9	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb23caa54	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb474a381	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x05ec5f7f	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x10e7235b	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x17e0ce87	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1b0ea502	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x28cfa20e	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3f07da22	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x509bd10e	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x57ae0c08	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5d59e63c	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x63dafc9f	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6a256612	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x75854c6a	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x810db0a4	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x856a9457	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x86a5f5e6	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8c8c5512	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9283ba6d	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9383d38c	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x97eed110	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa215d59e	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa4e82382	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa6f05dab	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa87f6eb1	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa8a0f6b8	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xad7471e8	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbd312b89	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd85b68f2	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe76bb7d4	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xef7ab152	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfe8a2623	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2449547a	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x28360af7	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x82468d52	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x91e17130	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x9f8f4f50	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xb776cd71	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xc500a4ae	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xd2dff5be	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xe22257f2	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x045e14fe	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x76c3902e	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x8f8680b8	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xc3be1c79	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xc58e03bd	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x0b39d6bf	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x36c1e827	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xbe7f28e1	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x84a9cc2c	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x0c6ace6c	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x5584a5e3	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x6c92b94f	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xf27a94ba	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x0af705af	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x3df7e34d	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x40852848	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x65b77d35	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xd103f0bd	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xd2016446	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xb5838513	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xf6b8b710	ad7879_probe
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2499511d	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x39af2b02	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x46644d98	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x48845cfa	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x51537baa	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8506d9fe	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8bfc7006	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8e7e1538	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xebd450e9	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf34c4144	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5	isdnhdlc_decode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5	isdnhdlc_out_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58	isdnhdlc_rcv_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223	isdnhdlc_encode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x6aaf0a14	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xe6645e30	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xe85ad7f5	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xefea2ea9	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x0c792729	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x7451c2b9	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x291ebe71	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3417cf0e	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x37121cd2	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3963f072	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x45dc3cc5	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5a9b35c4	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5b264c09	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x64a31484	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x80d7f15b	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8a70337e	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x93fc43a6	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x97ce5423	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa7c5a36e	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc19635d7	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5819fc2	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd9ade69e	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdb27737a	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xddc64314	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe48ff260	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xeacff58c	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xede13fa4	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xeea36433	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfc4ed869	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xa97047c4	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xda987a5b	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x7b5b8349	omap_mbox_disable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x883b1fbd	omap_mbox_request_channel
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xa46e320f	omap_mbox_enable_irq
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7c1e7807	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xa8a5afa3	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdef248f2	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x0915fd7c	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x5f36d8b7	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa3ec7ad9	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0xec0d1c46	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x4e2395d6	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x811e670e	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x8a5939ed	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x9ea82719	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xcdda1958	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf42eacca	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/raid456 0x494c4543	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0xa27d445c	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x042422bb	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x2171e265	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x2f07eb86	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x49ad47a3	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x4bc81102	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x583fef40	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x70077f68	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x8e5e9894	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x938612ca	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xcbfd3fbf	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd6b7e4ed	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf650654e	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf91283da	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x06239188	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8681679f	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8794759f	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc1276002	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x4bb54b8a	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x5daa8b99	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x88ad02b2	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xc4d40deb	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x1aff70a2	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x589f81e5	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x90fbb30f	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xa6543f2a	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xac891663	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xc6f139ad	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x37dece92	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x01b4206d	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0479bae4	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0c73a3de	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0f8da88e	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x20e8cd97	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f5cdf80	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3244fdf0	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3ba99dab	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3feecaf6	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x596eff7a	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6181aec0	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x67480317	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x71ea7202	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7264e1f1	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x727cdda1	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7751ad77	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b0d51ce	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7c6bb766	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x804c50d5	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x80985cc4	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x876174ba	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91a6794b	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x98bd7aa5	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa0095567	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb3352dd2	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xbeb5dcf7	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc3f679f9	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdcf60586	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdd99a0b2	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe138ce6b	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe79c440b	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xea01f363	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xebbc2d9b	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xeea24413	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xeee98c40	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb09f39a	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfb9a826f	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfc6380e5	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfda809f8	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xff1a30d5	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x08c3c49c	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x20e0eaaf	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x390a71b1	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x5c85c7cd	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x64b26bd6	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7be14fb8	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x9e4643ac	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x9fea7166	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xbd3b571c	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x65fefb12	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xce5cb97b	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x186360d7	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xad5bef1d	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xaf3a76a2	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xe9d9685f	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x0917277e	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x15d52afc	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x304776ed	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x69ef1100	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x89c50fbc	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x99c7b84f	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa0b87b4d	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xab06d1d2	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc3797e76	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc44b1120	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xd312e4e6	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xeb8da249	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf14f1e3e	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x0ead4bc1	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x1cb56053	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x314c27df	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x4587fe32	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xd6c24447	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x08686bae	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x4eff976b	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x9ca292cd	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x06996488	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x18a97b7a	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x1d925d94	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x22a0c9e8	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x373a3f71	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x52c04c21	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x789b2711	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9bdad0e6	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa5397042	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc95e912f	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf03cc9d1	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xfa51f0b5	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x0cc690c5	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x3bd40a19	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x7f21869d	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xd439789c	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xf9186d7e	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x1555b9d0	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xbe9b9db8	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xc55545ca	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0x8853dbb7	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0xdf2560ba	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x8c5b2d09	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x84a64e06	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x04d5739a	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x1236352d	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x4f52c927	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x22f86b3b	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x57927307	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x664a3f92	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9264d541	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xbb146977	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xbc2f509f	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xcede087d	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x4b793e76	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x96bad5ce	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xb7b6a540	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xc296f9ec	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x29ede685	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x571bd1bb	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x5c0fb2ce	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x04351717	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x263f46cd	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x26e0ec5b	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x8de26b3c	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9b755b61	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9f8665b5	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xc4da2ba6	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd31b243d	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x30391323	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x3c7647bc	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xa3844639	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xb2727344	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xd0af8ce6	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x55e9d0ec	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xdb3faf38	altera_ci_release
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xe66b9812	altera_ci_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x354b535d	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x36da543a	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x49062e81	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x5131a102	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x8a9b7b0f	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xa1e6fdab	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xc04fe2b3	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x352f3128	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x8f492112	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x3d5964bb	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x4fb6d157	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x80aa16a0	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x97169cfc	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x0424cbfc	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x3db1d4c8	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x5fa8ebeb	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x74dbe157	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x85f03684	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xa94b3249	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xe3aa08ee	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x08b3dab3	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x08ecc0bc	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x29d40e63	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x2e32008a	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x65a92ca4	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x66eb040a	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x684e891c	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x769e6da1	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x77a05988	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x78c4138b	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x86a4df7f	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8f00211f	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x90e17c2b	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x97a49f8c	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc06b50d5	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xc8f0c6b2	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xccfdd03e	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xdb8086f7	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe4ee0bc3	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe7486896	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x00f212bf	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x103c7e34	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x22a36ec5	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x4b238bd9	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x64b5f8b5	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x8aa0a4d2	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x951d42ff	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9c1e4bcd	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9e822567	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb16e4713	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb5aa5c52	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb94004a7	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xce19049c	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd993a69a	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xed3d7a8d	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xef5b6370	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfb8ae7cb	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x21f52c70	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x46275ef1	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x54f42cb6	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x581824fa	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x87d39602	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x8839366b	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9a0e9bc7	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa4d7ad5b	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa6cbffcd	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xb53b5af1	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc10fd381	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xf2c0cb3a	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x1a0b9ba4	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x28e299bb	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x609f820b	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x7bd84a0c	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xbe29b172	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xcd33ee5e	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xda4d8b09	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xdf39ad44	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x106cc8a3	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7f71ef2d	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x08129460	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x95927601	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x17ce22cd	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x54130516	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xf02af9df	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x30478b85	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x56715ac5	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x57234477	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x60353a6b	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x95929384	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9ded9c18	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd06f5d53	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfa1d2fa5	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xff1eb1d5	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x2eeb14c6	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x3a4f1895	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x8324c69d	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x9da98238	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xb3e18673	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xcd9863aa	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf5391a43	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xec1b2075	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x059b74c6	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2104e24d	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3ffcb98a	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x977d4020	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xac3590f0	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbcaf322c	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbef074ab	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xced1d53a	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd62b5f4f	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x273e48af	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x74930df9	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x6f1d3b45	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xdd0bc9a1	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x0dbe2b31	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x17ebccc5	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x351174f2	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x498fb495	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x524d485e	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xb2652cf3	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xdf415c47	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xf96344f0	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xfecb2aa6	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x0d278f37	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x25d3084f	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x57f90a6f	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x78c8d0f8	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x8088ab97	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xc2857212	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xd12c21bc	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xd45fcf0b	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x0f025f3c	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x9ff9a5ac	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xc2d62e5f	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x4e041c36	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x65c31dfc	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x10068326	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x37cc236a	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc78db7ce	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x03328ebd	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x05fee70b	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0940a9d8	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0a2610b7	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0b120f9e	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x15d4871d	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1a925b09	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1e55c979	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x27d7ff87	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28428d25	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2b2b6b04	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2dc1a20f	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2df5b103	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3398515a	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x415800d7	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4bb4907c	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x50a20ade	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x51ce8b24	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x59a18e35	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5bc3513c	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5da73230	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6049f624	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x68a0cb64	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6ac959ce	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x725824f4	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7a9ae5db	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7eb420a3	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7f9d782b	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8491aaa9	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x84bff291	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x85a2e2bb	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x876880de	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x884ac988	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e0490a0	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x93767a76	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x94b1e972	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x956a9e3d	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9759e181	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9a581b1a	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9c192790	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9e487172	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa41b0953	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa4c633a2	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa88f86f0	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xac466243	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaf8a98e5	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb44c871d	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc021d9ae	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc116642e	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc7e60204	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd48acd31	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd49ebe4f	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdb7c21f5	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdc24d684	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2255ace	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe286f6e1	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xeaf0ffe1	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xec806fcc	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf335b8fb	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf35c872e	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf9653b49	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf9b7f54e	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfd5a6eb8	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xff510db2	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x02e5f124	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x167a82f4	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x3404cb53	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x38664db9	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x74794af8	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x8da14239	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x96d38270	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa1d22dfa	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xaba7dd01	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xcee2787a	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xd4302a4a	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xed85e9f6	memstick_new_req
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0580ee41	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x070c05f1	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0f6167de	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x10096f1c	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x14146ff4	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3602b7de	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x47983559	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5a00b785	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5ca857fa	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5d243f90	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x785db399	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8abb3033	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8c15fd3b	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9abecfc0	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9adaa4cb	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9cba0c2a	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb4dcd0fb	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb617b94b	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb61e8540	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb949a188	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbe3a5a60	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc0eb315e	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc9dc736d	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcc408e31	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd2551ef2	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd4b50b00	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdf302603	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe1aabc95	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xed2fa38f	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x0773187e	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x11e98777	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1a794487	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2afddd71	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2c4472cc	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x30946eb8	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4d4dd11e	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x61641946	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x712d7052	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x7985f720	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x924a3103	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x9a174bf7	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa64ec5cf	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xad6bf9b7	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb1c79b7d	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbeea28a9	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbf9b6e4b	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc03f85b3	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcc7cb9a2	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xccf880b9	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcf1f9f8b	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd4229938	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xde816a32	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdf389ea1	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe91332f5	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe94de0bb	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfc088919	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x93503378	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xdbc396a9	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xf2797f2b	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x21571a68	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x3827bb10	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x5d63a05a	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x1485b46c	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xf98a6fb0	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x73bbe308	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x83b3bb13	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8bcfa8f3	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8e7779e0	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x8ea99585	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd6f59dd9	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd7c20ce1	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xd96d51b5	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe5186345	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe688b359	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xefe8234f	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/qcom_rpm 0xd520f912	qcom_rpm_write
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x14717d18	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x28bec7d8	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x3d8eb7ea	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x780c052a	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x8b137f35	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xb929c4ac	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x6bc852c1	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x7749e221	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x97d84ebe	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x73a437ec	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x8cfc7f44	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x21973567	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x35307ad1	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x485e06c7	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x66167d76	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x70ef7f49	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x72768915	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x763c8aaf	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x7e55ea0a	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x9c3c1819	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x9fe4d9d7	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb66d8e67	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xc343c368	tifm_eject
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x1deca5c5	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x2beb2f63	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x926dd0e0	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xa5f33204	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xf2becea1	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x10e48b42	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x1b007f42	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x2c3d9f0d	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x467e736c	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x1565635b	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x8c1a1c08	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x02b8311f	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x07998c30	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x0e980934	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x298aead5	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x2adfae7e	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x88164ff7	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xc1fa96bf	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x9e4920e6	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xa8cd30a4	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xb9dff036	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xe1e47dc9	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0xdb57184b	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x89d45850	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0xa2f1ed81	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xb39dbbbf	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xe7fa2621	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x22107ae5	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xad1420a0	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x8d782e80	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xf574b742	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x102603bc	mtk_ecc_get_parity_bits
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5437e775	mtk_ecc_disable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5de55d81	mtk_ecc_get_stats
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6df58afb	mtk_ecc_release
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x76e53683	mtk_ecc_wait_done
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x8dcc87d2	mtk_ecc_enable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xda64ef4a	mtk_ecc_adjust_strength
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xe2fe536b	of_mtk_ecc_get
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xec8b9207	mtk_ecc_encode
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x1a9807ec	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3d788009	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3fa15589	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x42d03b69	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x4fb08865	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8e71084e	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xbb65de08	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xd2caa387	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xe10f318f	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xf0f9e150	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xc1c16358	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xf2418b60	nand_correct_data
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x0e877349	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x473eff27	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x48746f50	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x53ca4a5d	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x5631de13	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xac7111b1	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xaf50eca1	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xb35e924c	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd930194e	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xf0a33ce3	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x19b59dfd	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xad5dc961	com20020_found
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xb1e5c38c	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0b81c1f8	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0d442dd9	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1a2083b7	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x249f3d8e	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x302c1114	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x373da27d	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x39430972	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3e22a0fa	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x442db020	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4489732a	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5937f298	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6442f5cc	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x646b8d86	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x65fdcc1a	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6ccc6515	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6fd91cab	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x77a057a8	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x814908a8	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x84ba88d9	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x86260aed	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8c923702	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9287fb05	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x959ea1ce	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa0aa0008	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaa6a4b79	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xab1235f4	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xae2c26be	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb4be2231	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc11f7dfa	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc898b8e2	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcc48b505	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe303c3cd	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe46102f5	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe5030a10	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe631bd78	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe8431d3c	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xeac517e3	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf54652fb	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x1af994e4	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x2f316042	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x3eb6eaf4	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x8614f1b7	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xc6aafcff	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd3aaffe2	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x1194d8e7	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xb5a76a21	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x8eef4585	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x595c8684	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x2dd903d6	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x4e27d3e1	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xa49fc666	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xc24fe0fb	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xe48dbcb4	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0b364fbd	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x34e5d9ae	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x6db8e6a2	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x79d03ac9	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x7ab2dba0	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x9d658d92	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xc789bd1d	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd0139fe1	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xedd8f5e8	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf6522b04	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0xfe475401	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x36b11673	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x56814177	cavium_ptp_get
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x0d8be5fd	bgx_lmac_rx_tx_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x34eeb48a	bgx_set_dmac_cam_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x42264715	bgx_get_lmac_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xff987a02	bgx_set_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x13912e4b	xcv_init_hw
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x4f739dc0	xcv_setup_link
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x06c5868e	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0c47b994	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0f869c5f	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2a24c126	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3538b603	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x454dd314	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x61ab6605	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x62ab0582	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x82807b60	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9611cdf9	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa4e27739	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6b98eda	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xca1fd4c0	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcba55318	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd5a8947b	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd92c72f2	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1476ecdd	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x15382a6d	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1634e309	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x19d5b89b	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1dbeef3d	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3001ad93	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3135b283	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x32a1463c	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3724861f	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x386d4fa4	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3b91fb4c	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x447a201f	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x51ece61b	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x59e8a37f	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5eeef80f	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x63fb1249	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x651b9e80	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6abbe016	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x780fa26d	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x80e3e435	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8226bd85	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x92350c64	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x929cecaa	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9eb37331	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xade5fc34	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xae73d651	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb0690b95	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb0b4a3df	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb5916d27	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb67e8c9a	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc48fc479	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc75cf11f	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc799c24a	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc7d73c20	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd350424b	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd4648b86	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xda3bfa3a	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdc686d0c	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xddeb963b	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe351dcef	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe3e665c6	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe65b7fab	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf941c625	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf9b92ffc	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x10b52370	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x72a90dec	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xa2660f04	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xb1bde3ed	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc600e537	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xdd16939f	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xe0657570	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x600ea1ff	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x86cdbe60	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xc54f72ec	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xcd49b931	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xdedb3be5	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xe3a47340	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x0b6a0536	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xdeb01234	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth 0x4412391e	dpaa2_phc_index
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xbd904d5a	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdb247b15	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdb6d3059	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdbdbb83b	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xef82c65d	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x922973e7	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x0b454cdf	hnae3_register_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x26a06ff9	hnae3_set_client_init_flag
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x41ed1501	hnae3_unregister_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x69da35f8	hnae3_register_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x7b8d4818	hnae3_unregister_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x924a7e2f	hnae3_unregister_ae_algo_prepare
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x99987291	hnae3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xe9507656	hnae3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x2f4c7032	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x96968bed	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xa0a2883b	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xf6cb1b16	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x0cee09c5	cgx_lmac_linkup_start
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x0ff59a9a	cgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x27c65569	cgx_get_lmac_cnt
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x380cb7a1	cgx_lmac_evh_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x399852d2	cgx_get_cgxcnt_max
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x3e6f11a1	cgx_get_pdata
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x45a34f51	cgx_get_mkex_prfl_info
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x54d178c8	cgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x68dff5d5	cgx_lmac_evh_register
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0x93295045	cgx_lmac_addr_get
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xa90238f3	cgx_lmac_promisc_config
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xce7b3103	cgx_set_pkind
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xdaec7b61	cgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xdbeffa32	cgx_get_link_info
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xf66092a2	cgx_lmac_rx_tx_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_af 0xfbd0b5b6	cgx_lmac_addr_set
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x053f12e2	otx2_mbox_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x07041f17	otx2_mbox_alloc_msg_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x3e7e9d44	otx2_mbox_get_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x501fc986	otx2_mbox_wait_for_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x5c0916aa	otx2_reply_invalid_msg
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x64c90f8f	otx2_mbox_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x655172ec	otx2_mbox_msg_send
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x6646d2f7	otx2_mbox_busy_poll_for_rsp
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0x8f772a3f	otx2_mbox_id2name
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0xa4b7a362	otx2_mbox_init
+EXPORT_SYMBOL	 drivers/net/ethernet/marvell/octeontx2/af/octeontx2_mbox 0xaeb89805	otx2_mbox_nonempty
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x006e7ab8	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0808fb35	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b6a4c4a	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c3d7456	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18ef7b45	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ec9fd32	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21e944b9	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22e3c841	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x259143bc	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a198380	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b408125	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f08e5c3	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x361e8d86	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f9292f8	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f99cdf1	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x478c50e3	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48b641c4	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f0c8aee	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4fc8aede	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x547eed46	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x558f6a7f	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x582c426b	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5cf8af8d	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69ed8d79	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71dd0ccc	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80111417	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80479e77	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8151197a	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88e4b295	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89a2ad05	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a85b521	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa527defc	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb093d681	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb37efc39	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb98a08b5	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc13148af	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4a3df91	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9aaf68a	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0f5c51e	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7d84e7a	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9fef98d	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef5a4674	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef78e2b3	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4442678	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x030d3328	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ae741c2	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c424171	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c5cfd84	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0d35ab43	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e45d33a	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x106e5209	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x187fba7d	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x197566db	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a00b136	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a3f1d56	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x258b8d46	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25d5dddc	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ac6c6b8	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b80629c	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f78add3	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f7d2907	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fb00c15	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31cecd58	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32452603	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33e9c8ec	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35a49e61	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36977af0	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x399c7872	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b7a3701	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f9677f7	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40c91677	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x422ea501	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49c44000	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49ecf3c9	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dde8cb2	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x528aeae1	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a1f8cd2	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b25980f	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ba2481b	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cf163e5	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d338a0a	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d5004de	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f3f2b66	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6074f09d	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6121830b	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6490f8f2	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66d053d3	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67419bb8	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6bc66b37	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ca60165	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d83f2d4	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73d52c8f	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75b8bc26	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79a623ff	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a181315	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7aa2f78b	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bd14953	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7db39ca7	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f17c171	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80d9f16e	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x817ac6be	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82057c5c	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x827ed003	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x835091bc	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87245d77	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x874d1234	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8976c980	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92d4e1dd	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x944f6d25	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x98addfb5	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c9b05b1	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f465233	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0e5d170	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4be67eb	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58f9a45	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa8c3c042	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9455110	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab2c44f4	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb127f7c5	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1bdb289	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1d043b9	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb744d41e	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7883624	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9f043dc	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb2d9ac8	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc44c4eef	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc450d079	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc490771f	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7a6190f	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcadfcb53	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc046a58	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc172f48	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcecd73e5	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0f06675	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0f29a44	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd2cdd5f6	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4b3e57d	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7a15b07	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd842535a	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xddd722da	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfaa4318	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1e8bef5	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe76a28f2	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecb0cce4	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf066465e	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf12fd5f2	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf14afef8	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1d2fa00	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf26d2706	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf344d509	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf38355db	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4907dde	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6e695e4	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb4c4e2b	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb676ced	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfcdd99a3	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xe15859f6	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2107b6fb	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x27533086	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x29f160d3	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x398fdbea	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3b934720	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x62268e00	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6f638819	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8265b2c6	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x88aa42b0	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8e554eba	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x91c9b4c2	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9b302320	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdcd08373	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdee18b66	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe69bd9c9	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf5e12f54	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x760a6b87	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x778ba293	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xa8306ffc	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xb303e4fd	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x1657586d	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x35c2f53a	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x54937574	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x6191dcf1	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x776d08bb	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x896d2c80	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xb8d0bc7d	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xcdb19464	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xcfee1f32	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd5c8b0bd	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd748b1d8	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe50b1aa2	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf0f5f4dd	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x57fc48b6	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x5b6d82dd	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x6f113be1	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x97127e03	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x6a6229f1	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0xed932f5e	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x2b6c5242	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x635574b5	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x6a602f31	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xaa9796d0	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xfd3579ef	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xb79a54ee	mdio45_nway_restart
+EXPORT_SYMBOL	 drivers/net/mdio 0xcdbdeca7	mdio45_ethtool_gset_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xdaceb7a6	mdio_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xaa4abc60	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x4118d8fb	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xb195ebc1	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x3d0fc6db	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x60c07ea2	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-octeon 0x8a1d5c26	octeon_mdiobus_force_mod_depencency
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0x11ba7462	xgene_mdio_rd_mac
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0x3bcd2d21	xgene_enet_phy_register
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0xabe73cb6	xgene_mdio_wr_mac
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0xadd6a069	xgene_mdio_rgmii_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-xgene 0xb53f5711	xgene_mdio_rgmii_read
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x06ab9f88	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x0e41aa5a	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x3d49a57e	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x880d47b7	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x6f56aaf2	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x2ec4723f	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x2f106261	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0x35c09a1b	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x493ab073	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x4e5ff5f0	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x78b4939c	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0xc2ebc6fe	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xf6aaaba8	team_mode_register
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x44326107	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x5e5ae5e3	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0xa72dd60a	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x167a0482	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x2a43a9b7	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x31b75daa	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x3d931a74	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x4c32d3c1	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x4c68dfd4	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x53e010fc	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x55e25e28	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xaa30fcde	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf872112a	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x82522b6a	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x0d86e7a3	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x2e3ac8a2	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x307935eb	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x475a8714	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x5c71d128	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6091bb6a	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6210daaf	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9be6470a	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9e5ea812	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa98ced5e	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xcb4ede49	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe768ab3c	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xeebc9953	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x040626f4	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0442bb85	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x08e12c37	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x14f04a1c	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1cef6856	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x20f2da53	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2f28fb67	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x32033a5b	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x374a84e0	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3ea9b3da	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4d631d79	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5047a9ad	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50dd77c4	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x52108e52	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5939d1a4	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x640fe2f6	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x647c03cd	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6536133e	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x66264afb	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x69fae4ce	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6da5cf5f	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6e9bf59a	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6f9c0b6d	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x70124ca7	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x71906498	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x764d2d02	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x790ddfc7	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7d940407	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7f3e1963	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8044b04b	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x856aeae2	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x878c2d4d	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x96b85745	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x972f2dcc	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9d6c5859	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9f3b6ff9	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa87679a7	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xaa1565d9	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xaabea81a	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb713b39e	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbc8ff0f0	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xca41b55d	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd7f4fa6c	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeab34dd6	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeceaa569	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xef3b511a	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf375b324	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xff7fadba	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x288d84d2	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4144b38d	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x565279cb	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7c5330a6	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbf6a5098	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc834aecc	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xcbf142df	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdb134513	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe57607f7	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf36442fd	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf6d5393c	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x05a91787	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x164bb6d9	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x24b1654b	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x383f2d72	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x50270ea7	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x553b4a78	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x58d2f669	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5c98eb88	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x61b6af0d	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6c412a98	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6e42532d	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8383d7c8	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x87abc1a0	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8e1b9f24	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x90cd1103	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa63ff35d	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb3057c4c	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xbc9908f3	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcd2c73c7	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd32b332a	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd9485275	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd9675296	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfeccdcc6	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x03abab45	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x07aed7e4	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x08dc836d	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x09c23721	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x09dd7bae	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x102a5cc3	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b8ea351	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e74106a	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f15d780	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x20ac99af	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x28087f1a	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bf94d9d	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x32b7a265	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3416918f	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x34c00002	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3576c2b4	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x36be674d	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3cb8ffb0	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ce7d793	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eec1f3b	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x405b273a	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x408df1a4	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x41bd5cbb	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43e22ca1	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x44c53eab	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4539785b	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4781bf68	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c2bc941	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cbf25ea	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x557bd3b0	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x59470eb7	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a298e51	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a431db1	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a9b6026	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cd30193	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5d945b9a	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x623375ee	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62aad97a	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x635e24b9	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x668bed09	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6862781e	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b68ece2	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c6601b3	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f4d8101	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x722f8a60	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x742a61ef	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74df85d3	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75cb3721	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75cd9d87	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x78c21cb2	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a986c9e	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7bf27489	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7dfd92f8	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f082cc1	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x886a6210	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8aa627fd	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8af2181b	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b44dc75	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8baa691a	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x916f66e1	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9424f88b	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x95aeaa7c	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x97146be2	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x98b42b87	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x99ce6e77	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bbd2d9c	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9dd109ab	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ef87759	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa191f89d	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa39b19f9	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa55006ef	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa59099a4	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb15ed692	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2b3c9a8	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4251090	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4a4cd90	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb61b4e11	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb63ab0e8	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6b9c4a0	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9dd853d	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xba64ce4e	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf7ed414	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5dcd5a9	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5f3b94b	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6615eb7	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6e5710d	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7d0d560	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc96ac6b	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd78b111	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfae66c0	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0a78120	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd76d3471	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdebb1e6a	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0b0bd8c	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1f27c77	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe223b218	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3ff155a	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9a9619d	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xea65cc25	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xef149485	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1db7e12	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3790251	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf55b71e5	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5f540b6	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6b45e2f	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf77a69f8	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb08f296	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x144bde88	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x24782a38	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xa0c10536	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x027ad30c	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0982f263	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x22b74aae	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x24ef0b0a	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x80394f6d	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9747d4b1	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa5a1c188	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa79ce2b6	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc5ec87f6	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc9dc230d	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd45eb94c	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd500ef4d	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xf2ceebb6	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x0f0c0f83	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2019412b	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2bda29ba	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x361f7b15	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x3875342b	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x49e10bfc	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x536249a9	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5407bfc0	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x5da6d8a8	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6a560e1b	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x84932d6a	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x92234702	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa196680b	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa4b96f4f	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xcd20d85a	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd02e7adf	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdf7d1031	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe4aeeef4	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe8900c36	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xeec2416a	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x01cdb2ff	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ab8bd91	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d14ecf2	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0edbd68a	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ff7ce33	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x109db08a	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x111a6887	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x11434b8c	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x165e7ab7	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e2427e6	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e7dc770	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22c0458e	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x23617b26	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x23ef0ecb	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2486f37b	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x24bd300e	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a36c9f1	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b4dfca5	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2c92ad50	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2eb12d52	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2faf4a8f	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3134eadf	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x333742e2	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3388b0ca	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x35a731e2	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x36183c3c	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x376ad057	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3e872831	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x460a4f1a	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x464ee3a4	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4d6fdd0f	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e17eadf	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e296da5	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5160b2a9	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x537cab1a	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x591ceb08	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5bf9aa1b	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f0e31ff	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x632bc9c7	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x63d9f782	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6781533d	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x68a1c779	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x705c703b	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7134038d	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73a55e27	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x744a2d29	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x788ac382	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7db8e044	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x82a2f240	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x85683da9	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x857adbcd	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86fa2df7	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8730ef9f	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8906c2e4	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8a4514a0	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8b1858b7	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8eb44a5d	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9b65f3f9	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e0780c9	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa50db168	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa537a691	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa56ce70b	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa72633a6	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8128172	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xabe84e7e	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb03e94d6	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb2ce31cd	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb8a971ac	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb93c77a6	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba1d0751	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbb1b2a10	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbd02d19a	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbd466b56	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbe637657	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbead20a3	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbedaa1df	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbff5d617	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc02b23fe	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc68d2313	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc79731ad	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc7ddae59	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc9fa6c70	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca4ab736	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd2013c83	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd291b94b	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd3fccccb	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd559d664	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdaeb490b	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdb1adac3	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf7fedeb	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe1687733	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe32cdbae	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe4b7d0bc	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe4c3c048	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xef665faa	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf2195674	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9a6a9b9	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfa11b40d	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ee9c199	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x20a6a247	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb72ade7d	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x006e6831	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x02e4eb41	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x15ad4109	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x17bddc3a	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x1b806987	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2c9a9b6f	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x49162c97	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x532a517d	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x66f210ee	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x715ea6f0	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x77c1133c	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7d5fbef4	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x81b15741	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x84dd6a81	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x88aea3cc	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x99b84ea0	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa5c4fc3b	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xabb7c33f	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xaebcaf5f	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb6ece5c4	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb718297b	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcf1e4089	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xdd257ccd	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf54f8612	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf9e34a56	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x20b542b4	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2463fd1e	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x36d3a97a	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x510e6ab4	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x5bd8145c	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x702ba37c	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7cdedc1a	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x8c3081ca	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x904c4e9e	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x97d9553d	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x98a7de20	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9abf989c	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xc1f9447c	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xd7fbdb14	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf4661206	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xfa28fd3f	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0x3763a0c9	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x7623d974	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x09b8eec7	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0d3b47c8	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0ec9d855	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x113124be	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x12b85c44	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x19c6c7ec	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x21310a15	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x228ec956	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x248f98ee	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2a5ba6eb	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x37007d6f	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3fe055c0	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x596eeb65	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5f04b8ac	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x73211155	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x77da098c	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x78fc6e08	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7c417c7b	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7d8c8055	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8093ea2c	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x82921455	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x85741da7	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8d4ed240	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x961e0afe	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x984a0a26	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9c08b867	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa10dc541	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa3b1abac	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa5cb03e2	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xaa799713	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb0bb456c	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb1b580c8	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbbdcf35b	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc60c7408	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xca6ae62a	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd7614ae0	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdeeb5a57	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe54946e8	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xea3d9a75	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xeeb01ac6	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xeffc88f8	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7be31d29	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x908ca199	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xafaf4701	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xe4847526	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x38e5c7c0	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x659250ae	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7b72dd9f	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xd5d522dc	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ee4fa30	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0f791f79	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x106077ef	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x10af401f	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1fb4e30b	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x335fb2dc	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3384d7fd	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3a2f819b	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x59f2ea96	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x61a169ae	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x63c29bf7	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6c56fbdc	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6db9db9f	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x70f47f20	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x79f56ac2	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7e57448f	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x80d8d7b7	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8683f4f8	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x870da114	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9cb6c1c2	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa0f1968d	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa2eb3fc3	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaef943e9	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb128835c	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb25336e6	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbde8d4e5	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc5faa3c9	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcbc74aed	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd43887b4	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe13e5f80	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf4b3116e	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfae4beee	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0bdb0078	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x12c6baf3	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1ace52a7	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3e003db5	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x43f2d57a	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x54f9ca84	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x6409c2b4	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x823a96a7	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x935f3122	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x940a6ee4	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa651adc8	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc0e19ff9	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xca4090fd	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd1c2568b	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd5e04707	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe42d192d	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe951c842	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x6461e21b	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x09c0ce35	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x1643ef8e	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x6bc89643	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xa7ca3aac	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x4503f09d	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xc92b6a89	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xe0c50e09	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x745dcd55	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0xaade5970	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x37056bf9	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xb178b817	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xd1c36bc4	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x432fd428	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x1606a010	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x327523fa	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x1a3c41e8	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x644dd001	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x9b154669	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x0b234e63	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x0cf78a91	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x544e0fdd	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x622ae300	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x67556102	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x686d1e4d	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x699c7f9c	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7168c2ca	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xa47c44e4	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd0f7908a	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x07b2e4b4	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0a569d24	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1569a8ec	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x294893c9	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x3fb4cf8b	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4917d873	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6239ce4a	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x775f6b1a	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7de76d8d	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x94a00657	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9e57e2a5	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xae331a98	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xbdf671cb	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xbf270d0f	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc7cbb5d1	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc869b63a	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xce3e8a23	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xec64f2c7	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x060664f0	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1624bc34	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x18577446	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1b2b4300	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x21068382	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x23cae875	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x39dcd99f	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x42021ac5	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x4e8158c7	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x654c615c	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x661341ee	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x71d30df7	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7cd8d53a	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8401fcb3	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x878aebd0	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9fd9b7db	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa43aba54	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xaa344e63	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xc3c1ec30	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd2dedbea	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x32d6f806	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x821e9a20	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x09738830	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x163de8ac	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x19274015	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x262a78b1	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x2736ba3d	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x2a46bbeb	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x2dff5eac	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x31fb062d	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x411f9f08	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x4243f5b5	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x47a7e93b	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x4bd67b99	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x4dc6c840	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x5c264a86	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x5d14083c	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x67389abc	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x7c2253c3	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x7c2ae460	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x7e3fb0d0	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x81112dc9	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x8fc7fda8	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xa563a07b	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xaf3e84ee	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0xb0d563cf	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xbecef5f9	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xc889ebde	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xce3bb4de	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xe8ff3e0e	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xeff291bf	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xf9d473f1	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xfd322e11	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xfeb12141	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/pci/controller/pcie-iproc 0x0288b2de	iproc_pcie_setup
+EXPORT_SYMBOL	 drivers/pci/controller/pcie-iproc 0xac7eec7a	iproc_pcie_remove
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x021bae9a	pcmcia_unregister_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x212db8d2	pcmcia_socket_list
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x437382ed	pcmcia_register_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x4b51f35d	pcmcia_parse_uevents
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x581d6bf4	pcmcia_get_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x7e64f398	pcmcia_put_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x964e75ee	pcmcia_get_socket_by_nr
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0x9e799145	pcmcia_reset_card
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xa3fe4057	pcmcia_parse_events
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xcf97f3bd	dead_socket
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xdcf15c7e	pcmcia_socket_class
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xefcf4a0c	pccard_register_pcmcia
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_core 0xf942709b	pcmcia_socket_list_rwsem
+EXPORT_SYMBOL	 drivers/pcmcia/pcmcia_rsrc 0xf37151ae	pccard_static_ops
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x1e506bad	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x3088a243	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x377480c1	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xcd3dc3a1	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x3330a1c8	qcom_smd_unregister_edge
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0xfa1855aa	qcom_smd_register_edge
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x01d62d10	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x132ddc3d	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x15353f2a	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x1f894990	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x324e05dd	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x325091cd	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3f113546	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x69e19f9b	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x811f9db8	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa9af3c9f	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xcaff68ed	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd25298c4	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xeae1201b	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xeb342be7	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x6842bf75	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x86a72482	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xc9c3cc1b	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xde329ceb	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x0869ac8a	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x2384058d	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x2dcfc530	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x37b4d58c	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4ec7c3ab	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7099d02e	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xa0a37fc0	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xbd86dc74	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xe7326ca2	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf0289277	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfdfa0f52	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x02a3532d	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0682c594	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0d1d33ce	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x117b2ecd	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11e375f5	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x149a7be3	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x17301e70	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x19a08147	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1d7ff2ab	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x278fb94b	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2bf7fc6d	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2d823fa8	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2eec963d	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x33226308	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3affed01	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3b51bbc3	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3fd67266	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x465783f3	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4680d19b	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4abbf27f	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4d6a02ac	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f51db38	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x50d14b81	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x58aa6c4e	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5e26d1ce	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x66cadefe	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x68377c17	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x69ebb4d0	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6baa5700	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7575b47a	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7fcad7f0	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x800f9f0d	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8022f235	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ef2ee75	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x96086c03	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9914f62d	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9a039d8e	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9a23aa1f	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9aaa3883	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9f7d0d26	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1c3844f	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa77da23f	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbb3a1043	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbe358808	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5a25360	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc9d6371e	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcbb5b774	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd1295f47	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdd37e184	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe117e86d	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe31c6a54	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b341c4	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe480f65c	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe5cf06b5	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe8295e71	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xea9ad88e	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfc34bae6	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfeeb245b	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xff4f7ba7	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x6d3234db	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xbdff84ab	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xf0babd7a	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x711370c3	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xa21fafb9	mraid_mm_adapter_app_handle
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01	mraid_mm_unregister_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x04f354c9	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x0d6aac60	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2aaf661b	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x364027c5	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x4f42cdaa	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x53bfb6d6	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x543125be	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x7165b38b	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x89e0f432	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xbb608ff4	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xd42e3c29	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xf63c6eed	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x14aae7a9	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x5e409e01	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0c5891c4	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1ba5f668	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x408a63cd	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x4db7b559	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x53f0e675	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x695beb62	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7d4a98bb	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x887d1517	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9ae343d3	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9c444b7e	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa8ce01bb	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb2f3e786	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc2540617	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd94a2f6e	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf1bd975f	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xfc15d3d8	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1e4e5cab	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2bb6fd4f	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2d28fa0a	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x409ac16c	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x40b3ec42	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x42b5369a	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x53c3eb13	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5e9f345c	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x622c8e06	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x69364576	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6eef6292	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7734848c	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x776cbaac	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x871121b0	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x90353ef8	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x92854183	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9ad24afd	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9b6b994a	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa3ed8557	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xac7f7c82	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb0ee1df0	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb56afa0b	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xbd94ec1c	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcbcd119e	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xccf49ddd	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcfe417a5	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd0eb766f	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd74a9294	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe06efee8	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x8533bb00	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x8c703be7	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x8de98b50	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x9fcc17ee	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xe0707da3	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x36b433bd	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x6c7ec24c	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xe016ff2c	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xe2363689	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xf7f3d478	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x2eaf909a	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x84b4b1e1	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x0a7ef5b7	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x315bc2df	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x5e082336	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x6cc143d0	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x82fd2ff3	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x8ffa9cf4	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xa695a843	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd7ba8a5e	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xee78146d	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x649a3d4c	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x9aba61c9	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x030f2d6c	dpaa2_io_service_enqueue_fq
+EXPORT_SYMBOL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x3d01f417	dpaa2_io_service_pull_fq
+EXPORT_SYMBOL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xc4ccef03	dpaa2_io_get_cpu
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x0348ce8f	cmdq_pkt_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x23d0b9f2	cmdq_pkt_clear_event
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x34f6582d	cmdq_pkt_wfe
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x50396152	cmdq_pkt_write_mask
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x5989f124	cmdq_mbox_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x7201d27d	cmdq_mbox_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xa066b5c3	cmdq_pkt_write
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xa9dc86da	cmdq_pkt_flush_async
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xede9ce4c	cmdq_pkt_flush
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xf93dc078	cmdq_pkt_create
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x06346e97	geni_se_resources_off
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x218c506e	geni_se_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2225dd2d	geni_se_get_qup_hw_version
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x4364ffe6	geni_se_tx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x62c4e758	geni_se_rx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x9ae5e924	geni_se_tx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xac844b4c	geni_se_clk_tbl_get
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xba31b6b9	geni_se_select_mode
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xd0727449	geni_se_rx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xdce03756	geni_se_config_packing
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xe5c8ba1e	geni_se_clk_freq_match
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xf87bab1c	geni_se_resources_on
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x0ef12cc9	qmi_encode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x16829494	qmi_send_request
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x21ce5888	qmi_response_type_v01_ei
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x408bbee8	qmi_add_lookup
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x635877ea	qmi_txn_wait
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x68772745	qmi_decode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x767484bd	qmi_txn_cancel
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x7df355cc	qmi_add_server
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x9dc68ef5	qmi_handle_release
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x9f3f571c	qmi_handle_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xae487cf3	qmi_txn_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xb8a525fa	qmi_send_indication
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xd71e8c37	qmi_send_response
+EXPORT_SYMBOL	 drivers/soc/qcom/smd-rpm 0x3abef80b	qcom_rpm_smd_write
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x34b57571	qcom_smem_alloc
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x5a710273	qcom_smem_get_free_space
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x9979b76e	qcom_smem_virt_to_phys
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0xeeffa750	qcom_smem_get
+EXPORT_SYMBOL	 drivers/soc/qcom/wcnss_ctrl 0x1241de8d	qcom_wcnss_open_channel
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x03a399f0	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x046fc1a7	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x102c7710	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x41422354	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x441b9385	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8a3e1ec3	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8ad5a55f	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa7766000	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xb966c91f	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xcb4101eb	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xd7b974bb	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe039a376	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe9c52980	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0b0d6729	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0c769760	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0d7fb115	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0f8b8af0	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2bfc3984	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3388d06f	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3e3f28fd	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x441d05dc	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x4fa07fc6	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x65f7bc8c	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6862a62f	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x78f29978	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x82b08ae8	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x83fe82b0	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x8dd2caeb	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x92d8f714	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xaea76dfa	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xba8b2418	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc601956c	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xd3b311c0	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x08e21a04	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x12477610	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x207ede29	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2a4d2470	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4bd5d531	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x50d5172b	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x54a69833	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6425fecf	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6a7efcc4	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x7649c83d	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x7d0f42b3	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x80168495	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x8397d4d9	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x916fc135	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9640614d	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9d81492b	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9e2c1927	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa861cd4b	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xad5945df	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xae669275	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb24b2e17	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb65aabaf	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb92924c2	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd2c4c8e2	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xff386839	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x065f9c9d	gasket_page_table_max_size
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x06f02105	gasket_pci_remove_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x19b4914f	gasket_disable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x339c2b95	gasket_page_table_map
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x372973e0	gasket_page_table_are_addrs_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x38c3d415	gasket_page_table_num_active_pages
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x3ca03ae6	gasket_register_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4109757c	gasket_page_table_partition
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4292ff96	gasket_page_table_is_dev_addr_bad
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x448b39ff	gasket_get_ioctl_permissions_cb
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x4ea236c0	gasket_mm_unmap_region
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x69142ff1	gasket_reset
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x6d449a18	gasket_sysfs_put_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x73816c04	gasket_sysfs_put_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x77311f6a	gasket_page_table_unmap_all
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x8c92da47	gasket_page_table_num_simple_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0x9c589e47	gasket_reset_nolock
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xba4b8cb9	gasket_sysfs_get_device_data
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaa2668a	gasket_num_name_lookup
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xbaf2f8cd	gasket_page_table_unmap
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc0da6e09	gasket_unregister_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc225208c	gasket_page_table_num_entries
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xc75437be	gasket_sysfs_register_store
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xcddaa14e	gasket_wait_with_reschedule
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xdbe7405d	gasket_sysfs_get_attr
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xea586391	gasket_pci_add_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xf332c743	gasket_enable_device
+EXPORT_SYMBOL	 drivers/staging/gasket/gasket 0xfe1c5fe2	gasket_sysfs_create_entries
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x22270d96	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x0cc056db	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x1ebd47e4	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x387c6508	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x50d6edc1	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6b629605	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x77f4a75e	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x7acf3f7f	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x9f1bb135	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xb6bfb0c7	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xcccc684f	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd7b74267	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdb4d205c	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xea0cd2c0	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf01aef44	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa24fab5	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfd07d772	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x25b0025a	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x26033315	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x2bb0451d	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x2e28aad4	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x44ae2b91	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x91c8437e	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xa7937cc0	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xaedd3af5	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xf32b87fc	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x019a4538	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0cb56249	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x153cb134	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1f67a32f	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x20c0308d	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x21b22e31	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2b7cd3a3	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2c85fc38	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2e0f0ebf	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x34b3e034	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x40284d98	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x418bbdd4	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4cd1d598	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4f14b4b0	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x546e5e6c	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x56004817	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x59561ce7	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x61b3b804	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x66c5d65d	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x684e91c8	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6a25fe8f	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6be0fc18	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6c36cc7c	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6c816394	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6e7cf2a7	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6e922bd8	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x720f50fb	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7b33268f	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8044fa07	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9779b5a4	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xaf55d6a0	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb00085f8	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb450e714	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb8e2704f	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbae48cbb	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbf713975	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc0ad3439	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc3685511	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc795dc77	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xcc02efd3	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd0ab1495	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd13ccb7e	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd6ef9c6e	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdbd7dee5	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xea15dd1a	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xecfbaeb3	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf2cf5e14	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf3946336	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfa9770a3	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x00149a03	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0284436f	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x04d41598	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x180f534b	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1bf7dcd3	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1ff231cb	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x22e749fb	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x23ffa7b3	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x259e47d9	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x26f630b5	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2ca54849	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2ce82f4b	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x30aa17be	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x35d76891	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3cb13b1b	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3f67a0d3	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x49828aba	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x498c4847	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4be037fc	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4c99ac55	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4dc083c6	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4fe41265	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x53dfe572	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x56c4c39d	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x60c9e44d	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x65e8db3d	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x68ba4f3f	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x76e80f5e	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x77fc0618	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7a4893ba	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7e44d136	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x82557866	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8376d497	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x918d1d1f	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x95bfe49c	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9bf4bd2f	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xadafdbe6	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbee22ff1	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc6143f50	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8b5332f	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd64aa619	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdd5d9fe6	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdfb6ec94	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe0123c86	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe661cd1a	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe682da69	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xea22468d	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xedffc3ec	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf87bb329	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf927843d	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfa98c95f	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfb3196a9	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfb6f28d1	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x03ec8e32	vchi_connect
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x04390690	vchi_service_use
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x18bb8ba7	vchi_get_peer_version
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x3317ac58	vchiq_initialise
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x347e59c9	vchi_initialise
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x36331e4f	vchi_held_msg_release
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x45a172d0	vchi_queue_kernel_message
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x4784c007	vchi_service_close
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x49a7510f	vchi_disconnect
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x6216493d	vchi_msg_peek
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x6ae198f8	vchi_service_release
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x7b2177c7	vchiq_open_service
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x8561e970	vchi_bulk_queue_receive
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x940e4bdd	vchi_queue_user_message
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0x94535fd6	vchiq_bulk_transmit
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xa22e9df3	vchiq_add_connected_callback
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xa7fc046a	vchi_msg_dequeue
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xa90297a8	vchiq_connect
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xbbb12b82	vchi_msg_hold
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xc8b507b7	vchiq_shutdown
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xda468542	vchi_bulk_queue_transmit
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xdaf25f60	vchi_service_open
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xdfae4319	vchiq_add_service
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xe03ce8ca	vchi_service_destroy
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xe928e745	vchi_service_set_option
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xfc90ea41	vchi_msg_remove
+EXPORT_SYMBOL	 drivers/staging/vc04_services/vchiq 0xfe69bc62	vchiq_bulk_receive
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x080952df	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0a8a9d63	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0b2d56b8	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x16ad39e6	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1e8e74f2	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x29097df1	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x44240245	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x44f6e18a	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4520e9a8	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x462075a1	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4a5b0b30	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4fef1dc3	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5529e3b9	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x58bd5dcd	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5d679a1b	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x638484c6	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6a9acdad	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7891a367	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7f8e4801	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x80732f62	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x80879b56	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x81d9bbe1	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8aa710ed	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x915acc02	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x989ab686	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9dc390cc	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa1a047c8	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb26dfd97	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb47d24f6	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb5dc2e3c	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xba92107c	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbafbf19c	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc0adf0fc	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc1e28c0e	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd69b9b2c	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd69cd42d	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd6b42dfa	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd942be35	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe2a2fdb2	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf25c2c75	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf3fb2c57	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf94cd356	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfa796b8e	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfb3b6ed6	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x02d9dfc6	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x042015d2	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x05d1d246	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0a79b278	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x11af0ed7	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x153122a8	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1d7c959c	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1ea6f005	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x22240411	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x226e8ecb	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x25469efc	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b2b3b0d	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2bf1ce33	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2cc7a9d8	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3302d710	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3fa8c3a5	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x41fdd5ff	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x44d3d3a7	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4e750716	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x54badddc	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x61ec6dae	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6352e3c2	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x65feb886	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6ea6b77b	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x72166371	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x72fa1193	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x77a714c5	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7816cc87	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7efa5ead	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x823a57e7	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8e047002	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x92ead68a	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x93937b0f	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x953761ba	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9c503bfa	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9dc4a756	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9e35aa3c	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9ec4a041	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa0a69a6c	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa2d3c7e1	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa88ed638	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaa467047	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xad4e0571	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb185be86	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb2a66d31	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb42ccda3	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb42ff76f	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb4ec3adb	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbbd34c4c	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbcfa674b	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbdfeff0e	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc0190e9e	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc072ec36	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc2a9b878	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc5d2f1b5	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc5d31f5c	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcbb8c6ba	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xce2cf81a	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd1cf85ec	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd6f7b35a	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd793d9d4	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xda6b6278	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xde8970ba	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe391cf6f	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe6ee79c8	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe95071a2	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf45512d8	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf52beffa	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf724b781	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfc8fc245	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfe74ff0a	transport_backend_register
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x12e7c580	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xfe3f3aef	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x8c6bf8f7	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x0ca78cd0	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x1b058419	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x257eaa1d	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x4beb017a	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x836fbe9e	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x85bf9e56	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x97c2e73b	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xc91e5b83	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xd6a660d0	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe7d14bca	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xef1d339b	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xfa4a981a	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xfba37531	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x99c8f32d	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xd68c14fd	usb_serial_resume
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x03464e09	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x15d2f123	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x6e4eb36e	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x744679bb	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x75f0355f	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8d43dcc0	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8fc87d4d	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa6f21cab	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xb0821057	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xb6011060	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf8b13674	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xfaf7a3dc	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x47a33621	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x567b7d4c	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x8e1236cc	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xc04047a2	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x536c2eb6	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x6ffd0308	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x40fbaab6	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x4c6ff70a	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xa427d9d1	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xc02886d7	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x03e413fe	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x463a26ee	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x5eef1714	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x8064806b	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c337c2	svga_wcrt_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c97d2a	svga_match_format
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x8c149e5a	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xad5662a6	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xbdc5bfa3	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x8602efb2	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x4ff519bb	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x0924c599	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xfb40ecf4	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xa883e3e4	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x903d2ae3	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xca82675b	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xd809b081	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3f2fa152	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x59451408	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x9832a3e7	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xf39093d1	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x81df2971	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x08f328a4	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x51b1cf12	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xaf754265	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xb631be5b	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xcbcc0535	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x0646f264	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x4daec22a	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x12fe8d51	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x39fc060d	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x3bf51925	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x622e902d	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x82a66662	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0xea7faf94	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0x3037658e	sis_malloc
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0xfe963115	sis_free
+EXPORT_SYMBOL	 drivers/video/vgastate 0x686de290	restore_vga
+EXPORT_SYMBOL	 drivers/video/vgastate 0xe7a2620e	save_vga
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x1ee4557a	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x28768603	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x89cbfaaa	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xa53682d4	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/wire 0x0892641a	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x3c6a857a	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x9a5d61e9	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xb43161eb	w1_register_family
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x6ef336d0	bd70528_wdt_set
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x97fc32be	bd70528_wdt_unlock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x99308f5a	bd70528_wdt_lock
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0c4397c4	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0dc042f4	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1183357c	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1c080873	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2352bc8a	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x24aa0a51	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x28f519cb	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x35dcabe6	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x36e00c0b	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x45ad9051	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4beec111	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4bfce4ca	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4d37e6ab	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x51468cb3	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x55bba613	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5809598c	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x58811cb4	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x66813b77	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6acefa42	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6b5adb34	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6d72df8b	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6d9dbdbb	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x717d0f6b	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x76493e05	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7e702b0a	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x84837cd5	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9678cf99	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x995c0720	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9de60646	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa2f25c5b	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xae796aa0	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb8a7092f	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbe00e607	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc47537a6	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc5f98d34	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcc8cf305	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd2835625	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd6bb3d14	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdfe12517	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe3a0a655	__fscache_invalidate
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x0e27bf4d	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2cd00d5d	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x82ae1724	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x832491bf	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x9025527c	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xbf92a7b2	qtree_entry_unused
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0393de0b	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x3ea00ab8	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x5ae195bb	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x7f768395	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xb86a883b	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xd5f181c7	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xd7a9e8ba	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xe4c012c1	lowpan_nhc_add
+EXPORT_SYMBOL	 net/802/p8022 0x3eea32aa	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xe5b13868	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x6fc12cd5	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x99810dd3	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x04319547	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x07792dba	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x1d5f0864	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x1ea3f257	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x32bbbd25	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x337c6e69	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x412a1c47	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x41ce9823	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x452d73fc	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x45303c54	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x46333cce	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x479ad22d	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x575acb61	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x621ad33d	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x633aa53a	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x654548a3	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x65e1b19f	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x681035bf	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x695d421b	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6baa3b40	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36e95b	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x7575a064	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x7aea0ab5	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x83126ed0	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x934d8d41	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x949f83c8	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x95bd8f96	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x9642bef0	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x983158a4	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x998d01ff	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x9dbffdec	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0xa14fa240	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xa3016dd9	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0xad52dae2	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0xaec6141b	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0xb3a8006f	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xb8431f34	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xbc25e5b7	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xd07f5e60	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xda12e592	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe795be41	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xea9d7e74	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xff510f5e	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x3fcbd2f6	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x5fcb9ba8	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x88a95c75	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xd3afcb47	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/atm/atm 0x0a07eaed	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x1b74badc	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x2366723f	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x31f907df	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44c6e633	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x513172f0	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x53b6a726	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa71fb7de	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xa8eeeb60	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xb0ae8404	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0xb8b4a3f7	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xd7598eda	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0xefbd3f7e	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xf0504083	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x16284d13	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x2b75e6b0	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x55981643	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x5bd98d6b	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x64cf9226	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xcb30d3b0	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xcf0d1dfa	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xfb39ed57	ax25_listen_release
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x17119147	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x175e7d99	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1c6d4216	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1e62cd4e	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2dfd147a	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x30c0d62d	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x314f9ac3	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x35c9cac5	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3af824d8	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4019062e	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x43a42884	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4d51eb9d	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x505f0607	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5257fd80	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x550b036e	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5922ef9b	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5c350397	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x600f9eea	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x611a7224	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x63b38c93	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x687198e3	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x748cd35c	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x751b9a92	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7f286fa5	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8130c615	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x862ef015	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x88b2d169	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9215c3e6	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9b7dd6cd	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa1182087	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa25bc3e5	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa7b65f62	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xaf65a500	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbd2af48e	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc3ee9e97	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdb2f574c	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdb915385	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe09b4f46	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xeaa04206	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xeb6c7a73	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xeb7df75c	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfcd89af3	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfee31457	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xff6cc687	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x3d358153	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x7e387ab8	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xdc7faef9	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xe164b265	ebt_do_table
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x2ab93fc1	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x35b9ca81	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x65a11653	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb1ac6352	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xc5a724b2	caif_enroll_dev
+EXPORT_SYMBOL	 net/can/can 0x76b9940b	can_send
+EXPORT_SYMBOL	 net/can/can 0x7bcee583	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x97dbc5f0	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x9b135325	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xccef29df	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0xd2804ce1	can_sock_destruct
+EXPORT_SYMBOL	 net/ceph/libceph 0x02750409	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x0951422f	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ed0de6d	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x10fb5e5e	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x11cbba3d	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x1795b3d6	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x22b21679	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x23efde18	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x245cf209	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x26ffacf5	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x275ddb2d	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2ad248f5	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x2c33b8bb	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2d3ddb1d	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x3258112e	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x32820301	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x35298639	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x3561209a	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x359e0343	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x377b91c4	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x37de977a	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c4d296f	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3db15c5d	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x41ebbc1b	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x45103437	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x496d4ace	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x499ff912	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x4de7a0d6	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x4e48c6df	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x4f7ec75b	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x510f1763	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x558f8fca	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x572a4995	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x593a6b78	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5e94f408	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x5ec1a260	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x640ac503	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x66fbf39f	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x692280d7	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6934efa7	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x6946e985	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6c651179	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x6c771054	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d249528	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x7174a2fe	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x73dd8e8a	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0x76e3e9eb	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x7c0385b1	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8a4cac	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x828b1a41	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x841e80b7	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x84679643	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fc24d3	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x8d729893	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x8e0c47a8	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x8f03bac4	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ff09f8a	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x9203ece8	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x99b94a60	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bc6b539	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fbba67f	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa0dc0e61	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1168e40	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1e435b7	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xa5b191fa	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xace81187	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xadc7a919	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb1379cff	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xb2ae167e	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xb95e07f5	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xba8ca82a	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb1f5bbb	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb2d9cb8	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb3b7191	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xbcc90243	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbf7f18ef	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xc04e434a	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc521b788	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xc89a8381	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80eb72	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0xcbd45117	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xcc18bdf3	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfeac732	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0xd0dd2aa3	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd39daa39	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0xd3be9884	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xd455e98d	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5a5c524	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7beec0d	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xdbcdecc3	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xddf8c040	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe1fb511a	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xe20b29b8	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xe3ac643e	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe4cb5d0d	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe66b5e17	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xec6bf5fd	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xec8f5a80	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xed5f129d	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xed64ef7b	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xedfe232a	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce3c3b	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce991c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf29084a1	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xf3332914	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xf40701ab	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xf942ab4c	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xfd8177c2	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x916690c6	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xd6687b38	dccp_req_err
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x568be2e6	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xcfcbd187	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x079de570	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x1ba4e9f5	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x5aa3f05f	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x77130c26	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7cbee87b	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x9fb8feeb	wpan_phy_new
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x19e7eaaf	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x303c5905	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0x8b69874e	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x0f0e2151	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x4271af11	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x8f0f30af	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xd1f1db1b	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x29bbcfbc	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x32a80d6a	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x539eacf5	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xc56514be	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x15545611	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x8d7b3365	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xf873d22a	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x466f6ab6	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xac68468d	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x61c0a9c5	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x05ee78c0	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x26fa624e	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x44c1d040	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x83eccfee	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x87a33843	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa0071153	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xaad20657	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xdb19c934	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf9ade195	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x1af20da0	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x73cca727	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xa8ba931e	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x20086980	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x82573d78	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x4ccd8bf1	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xef8d1d71	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x26b24b26	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x42c8a057	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x3982647a	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x249de546	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x2de95fa4	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x407633b5	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x4ac03666	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x4e50c6d1	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x5e0d5846	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x64d4d7ad	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0xe12d7e05	lapb_connect_request
+EXPORT_SYMBOL	 net/llc/llc 0x226e4352	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x5130a70c	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x553d90fa	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x5db8c20a	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x87831238	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xcc5f5c85	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0xddf7e1eb	llc_add_pack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x04542fb8	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0553a722	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x07fd6edf	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x08bcc4c6	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x09febc54	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0c60706d	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x11c99bf6	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x148856bb	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x187a539f	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x194b660f	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19d97841	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1cac8528	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1fc2b5f3	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x24657fd4	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x24c87e56	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x27b44e53	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x29efb77b	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ae802e5	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2aebd6d0	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2e9dabe1	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f0f6896	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f9231ad	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x34d69d58	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x350c8a6e	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x378f0489	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3791defa	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3855e60d	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3ac0fb49	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3e9af94e	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x402d3a63	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x41fb09ac	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x46c8f408	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x472d98b3	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x482a9636	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4ad6cbf5	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b869ddd	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c7fc0ec	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5b6f739d	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5b9d72f7	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5dce0b3b	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x617ac222	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x618819c3	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x630ef703	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x68d8f16a	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d2edc40	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d8e3a09	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6da88dae	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7163e1da	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x74ca59dc	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x76cef131	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7c896f98	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7dc20058	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x812d64f5	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8b1a1c8b	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8c0e98d0	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x90e22390	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x910cd52b	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa3140488	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa4e8768a	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa7443085	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa986b69a	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaa76cff4	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac746ea5	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xacb39874	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xae004234	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb00f4109	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xba893fee	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbb7eec0c	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbc119e01	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc00ec4cb	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc5a05b36	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc7cbdb3c	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcd1251ab	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xce3fa693	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd0dc80be	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd3574af2	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd8f71456	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd92e80c0	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdcb10f75	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe7c8ba23	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeb482946	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xebaab7b9	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xed508d4e	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xed939313	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xefa78d1f	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf3a41848	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf5ded46d	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf9c1c296	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfaf7d200	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfd06165e	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xff243139	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xffb562ea	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x0e3d6aa0	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x13cbf330	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x39a7948d	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x5e926a72	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9a3848cc	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb540ee63	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xe321cc65	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xfd4862dd	ieee802154_free_hw
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x06a19b0a	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1cfb03d1	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3a2eeade	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x532be573	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x53b6c2f1	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x65d8cd5e	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x69bc8418	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x6a4365cd	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x80c1f4a1	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8db0cff5	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9cf59f0a	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa9c063a9	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc4417765	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xea212fb0	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xea4fb882	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x9c2c63e7	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xa663eba3	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x01b695e0	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x5eb6b97a	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x8ef7bbb3	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xb03d6110	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xe4977455	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x21d9ecd2	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x34416a32	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x464feb3e	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x66db4efc	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xab8abd08	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xbaa4bebd	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xdcfc725e	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe0c79d93	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe1596ef2	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0363423f	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x15ee925f	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2940f049	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3cf67e62	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x652de77e	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x6a5585cb	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7004d8bf	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x72330f2d	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x756c7d26	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa3c9358a	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa6ce4653	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa83d79fb	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa9f35316	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb414bcd7	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbec39e6c	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xc81b26f1	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xcc6b76a6	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd60bf4b0	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xddbf613b	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdf36cf9d	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe8695b82	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x05c2397a	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x092b81f1	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0a5ab066	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x15df0ce8	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1abb185e	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x237ad5af	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x244ece2f	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x318ced21	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3276ae57	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3d5b0eaa	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4263d0dc	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4a6c029e	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6529e808	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x66713961	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6de5917f	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x743d99b0	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x77d0364a	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x78c0b8f2	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x87718255	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9b72ca8f	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9e27cb46	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb0aa0441	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb9d5327e	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc3960587	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc68b072a	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc90ff209	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xcbad7008	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf9bd543e	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfe8f59e8	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nfc 0x036141ae	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x09e4e1c2	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x0b7c6627	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x11f471c1	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x161306c8	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x1c3a0c59	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x20cb6116	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x2e88e9b0	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x2faa71aa	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x3790083e	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x3954c180	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x52e83e72	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0x74856346	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0x7c3d7718	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x84cb4ae9	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x87cd1854	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x93829a05	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xa1021066	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0xa2dc7e9c	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0xbc70be78	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xc8024ddc	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0xd3cab414	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xdf839a7e	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xf12aca09	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xf133901a	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x78003def	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x873c78e5	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xea52d327	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xf5923891	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x0dbf94d9	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x1de80819	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x2bf8757c	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0x58b14c65	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x6e59e0a4	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xba802e93	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0xd74ff099	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xee1f29d8	pn_sock_unhash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0e683997	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x12e687a0	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x142eef0e	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x17d2547c	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3c525b22	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x440fcf6a	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x46bd7b22	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4960f0d7	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4fcddafe	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6b97399f	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xaa79b1b5	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd840ac99	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xda566df8	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xdd2f52da	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe6af0150	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xeea4b703	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf62ddd69	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/sctp/sctp 0xa1786688	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x6e946878	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xa64a4450	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xcd8914f1	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x3ca076d3	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xc1f9516f	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xf0816bca	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x2f2aa4f6	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0x425db7a1	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0xb997cc4c	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xd72b783c	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x08efa27c	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0x77ac3d4a	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x9c287fb8	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x83d3f066	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0xdc4b3213	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x06fb0597	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0750f272	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0980e018	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0a23250d	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0da0aa14	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1308d1a1	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15482ce6	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x19d53199	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x19f8bd3c	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b0c62c7	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b23eaa8	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x21829c2d	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2360e3f3	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x23d55f6a	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x267804ca	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x35eb8595	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x364ce587	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x36ef2acb	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x39ae84bd	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3a86c06d	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3ffbfe63	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4101401b	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43090961	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4712f19c	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x49cbf2a6	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x53e2fbd4	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5aeabdd1	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x620b491d	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x625bb421	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63203503	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63475d9e	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6735034c	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69261a19	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6e582bba	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x72e11c46	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x73a50e93	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78149cb6	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78e12059	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7aafa314	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7d043186	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7f86182d	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7fd70480	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7fe2ff40	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x83223c49	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85777c2c	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8883f95a	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x89fa415d	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a608360	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8ac96f9a	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x904068ee	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x965e773f	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x98b6c59d	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9c657fe9	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9cc462fd	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa11770f5	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa13b934b	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa6c6c6cf	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa73c88de	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaa1e1f70	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xabc61434	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaf507249	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb7aed439	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb887111b	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb8de7c8f	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbaf5ceea	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc0b72240	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc0c93d8e	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc3bf7f9b	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc96775b5	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xca0a0580	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xca77e79e	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc3dce35	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xccbbfdf7	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce081231	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xda1456e0	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xddc0c183	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe1332d45	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe2396afe	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe25d58eb	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe2fd6088	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe5ec08e3	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe724c5f8	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe9a8e722	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeaf273fa	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xebff908c	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xef437a51	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf167fde3	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf20fd179	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf4d37d43	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf95b11b9	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfc751792	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xffb532fd	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xffe9aa38	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/lib80211 0x2413a6f4	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x71c5989a	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x885e5b22	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x9569d012	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xa5998156	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0xcaac4f85	lib80211_crypt_info_free
+EXPORT_SYMBOL	 sound/ac97_bus 0x7c0d2b70	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x14d90b00	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x046fa077	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x28b71eea	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x2abcf9f5	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xec70b7e5	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x734e4fba	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x7a3e0db5	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x8150b379	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xb8620ad8	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd70dbf6	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdd935c83	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe9e6c50c	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0x199827e9	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x0c5b34c0	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x0c60b9b0	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x0d186878	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x0d956781	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x0f8bf6d2	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0x13465c30	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x2042cf1e	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x32bdb28e	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x359c23e5	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x35f9d6a6	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3ee5cbd5	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0x402600f4	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x469116d6	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x4bc7aa17	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x4c5875ad	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x4ec53d14	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0x522b6846	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x523ca410	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0x5534cad3	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0x55462e9c	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0x644670da	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x6ba325a2	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x6c294a43	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0x7095ec18	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x7d71066f	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x82975de5	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0x886eab3f	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0x8aad40a8	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x8ffe6b0c	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x92ffcea7	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0x93763e78	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0x9b08c51d	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa168991e	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0xa511bd85	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb7404902	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xc3031f8c	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0xc459cf65	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xcbfd87e9	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0xd07bbe91	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xd69a29cb	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0xd7d13fd1	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0xdc65a15e	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0xe248e733	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xe44f7d2b	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0xe69dd1cd	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0xedc9fe62	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0xf702dfc0	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x17754b63	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x01a83227	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x02dee397	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0380c02f	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04ab4e6e	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0ad17739	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0b978527	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x102b55ea	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11dd3923	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x137871fb	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1589bc5c	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2f78ee04	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2fb0e60b	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x482467cf	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4a03ffae	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5343cab5	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5a07dc8c	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5b6a3dc3	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5ff878f6	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6028aace	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6c23a782	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7a6753e0	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7af32834	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7b06c57e	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x80564144	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x849d00b1	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x88672aa3	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x93258f8c	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9d5f316c	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa9d9f1c3	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xaccf7f02	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb1c5eebd	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb7c340f5	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb860c8eb	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc51378a0	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd4c9c177	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd69cedf1	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd6ae8b45	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xde898742	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe26b350a	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe44bd77e	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xecb0c974	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfb40d34e	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x08c79718	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1a6dab6f	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1f9a4d0b	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x23d514c1	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x30b1752d	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x41924aa5	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x43ddb6b4	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5abad813	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5c390dfc	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5e15c0c3	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6f254a2d	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x73f13cdd	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x78c84304	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa8375d07	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc0997847	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xce086a73	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd44d555a	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd9cd8133	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xedbb6846	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfadec2ef	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0xe3ed281f	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x1fcf350d	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x2a7e3d56	snd_timer_close
+EXPORT_SYMBOL	 sound/core/snd-timer 0x4d17391a	snd_timer_resolution
+EXPORT_SYMBOL	 sound/core/snd-timer 0x54a9b717	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x6c477e03	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x8284a622	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x8d793b32	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0x98827a37	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0x9ae37eac	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0xad23771a	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0xb4ed880e	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0xcf7cbb91	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0xd5da178a	snd_timer_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x84b824ef	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x231d7cc5	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xabbdcc25	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xceadbfbc	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd18679d6	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd4247cb8	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xdaed68fc	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe6b6bd14	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xfa49f690	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xff9de6aa	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1df960aa	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x447c94df	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x52660c88	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x5934cf39	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x67cd4213	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xa89d428b	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd812dc3a	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xe010de4b	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xe7fe618c	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1272214c	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x12879b90	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x128a5fc9	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x137f76d4	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1b0be3fa	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1bc57bc5	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x21a2770d	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x26c208ed	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2a9db925	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2beeca26	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2c6f4fe6	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3018dfbc	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x311a94cc	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x49b617a9	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4e1c2d76	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5ffd70bf	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x75d8490a	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x903b8251	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x917f0390	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9e65563b	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa0b249bd	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb201c991	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbe414a88	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc1b1b7f3	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd13e6e64	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd6219ce9	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xda352405	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xdaa150cc	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xdf84013d	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe3a7e9db	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe630c424	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xef03bd5f	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x06112d23	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x39e8cb7f	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x1b22a1e1	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x21372554	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x305066bc	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x3bcca3f3	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x6ff1da81	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x70b8f9ab	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xf3c116d6	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xfb680e6d	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x0a18a9b7	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x1b9aa8b5	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xac225c35	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xef433795	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x8a77ce95	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x9e30d23f	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x00e04373	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x8bec1f56	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x95e9650b	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xfe61076a	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xfe852ef6	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xff5e85c7	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x12bc9528	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1837af5f	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x218dea94	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x27f8338e	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2f95ade3	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x456eabe3	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x54f8a0eb	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x5d40f08e	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6b17455e	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6db21fc3	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa2e5e190	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xaa9575a7	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd66acee8	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe077c9f4	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf1383bb4	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfd1c437d	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xff20e873	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x295ebe6f	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8573dcbe	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xf492dd77	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x021b3797	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x279bd689	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x314d945d	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3f3dc688	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x605a5538	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6b802aa5	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6ccb041f	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6cdc5cb4	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x751c2b75	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x855489e5	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x99edd297	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x9c232cf0	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa46c6967	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb0c9cfcc	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbd946c88	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xe64da199	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xe66053ec	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xe8f7ea86	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xec126172	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf5edc0dc	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xfbcb297e	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x8f6d6fd1	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xeba6668d	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x34e321e9	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xa1f71245	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x41755e9c	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x7c8e3cbf	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x7dee6796	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/qcom/snd-soc-qcom-common 0xc36e408b	qcom_snd_parse_of
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0xdb688b27	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/imx/snd-sof-imx8 0xd748a4dc	sof_imx8_ops
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x01772c72	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x045be32d	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0b002c93	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2090f132	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x22d797c0	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x23566bd1	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x34c8230f	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x400c2d52	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x41248ee0	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x42b9a3e3	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x433a1f4a	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4d2b47e1	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4f22e8f7	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5c873a9e	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5cddf0c6	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x60402529	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x65877b84	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6677fafc	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6924a5b2	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6cd046f0	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x71a56edd	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x765a8aed	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x76b7ca7e	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x76df755d	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x78629c3d	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7c74be11	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x802f9e28	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8777357a	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8a12c9bf	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8e7dfec4	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x91e33d05	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x96584c64	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9dd33c17	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa6b9142c	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xac273126	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb59fd4d2	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb5fb62bf	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc7eff651	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcd42f6b4	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd2e83798	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xddb6f149	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe985d654	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe98e696c	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xed14dde9	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xee2adc69	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf35897ab	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soundcore 0x2fef019c	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x967cca68	sound_class
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x9f910155	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0xafe50ae0	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xd919c8c0	register_sound_special
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x472ff066	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x001d31a3	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x00349437	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x004ab20c	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x004bf7f1	ihold
+EXPORT_SYMBOL	 vmlinux 0x005a33f3	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x00602d5f	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x0076d78f	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x00bf9df2	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x00d3e4cb	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x00d72990	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00db4fca	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x00e2d1e4	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x00efbf93	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x00fc9243	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x0129edb7	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x0136fee8	nla_append
+EXPORT_SYMBOL	 vmlinux 0x013de3a4	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x013f26ae	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x0140b89f	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01505d85	imx_scu_call_rpc
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x016116fb	iproc_msi_init
+EXPORT_SYMBOL	 vmlinux 0x01752845	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x01790e94	csum_partial_copy
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x01833da2	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x018f2481	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x01b6865c	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01cf3e10	skb_split
+EXPORT_SYMBOL	 vmlinux 0x01e0ae6f	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02277421	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x02293ac3	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x022dcd5f	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x02354f9b	acpi_bus_get_device
+EXPORT_SYMBOL	 vmlinux 0x023b03da	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x023e8e64	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x02542188	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x025a1e15	msm_pinctrl_probe
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x027edb16	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a44e35	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x02aba511	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x02abb519	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02cd7ac4	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x02e3e8b2	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x02e89923	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f58f19	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0x02fb9449	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x03031bdf	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x0317ffbb	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x031cbf77	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x032e5951	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x032ed7fd	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x033fe618	pnp_possible_config
+EXPORT_SYMBOL	 vmlinux 0x0357dcb4	meson_sm_call_write
+EXPORT_SYMBOL	 vmlinux 0x0358e49a	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x03613672	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036e9a87	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x036fdbb8	qman_get_qm_portal_config
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037facda	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x03839c3c	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x039069b0	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x0390f4ac	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03b42501	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x03bb6e78	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x03d5245d	rpmh_write
+EXPORT_SYMBOL	 vmlinux 0x03f9d337	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x03fc9bf1	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x03feea40	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0x040027fe	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x04257e2d	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x042abb8f	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x042e3164	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x042e6a08	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044b2800	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x04673adb	qman_ip_rev
+EXPORT_SYMBOL	 vmlinux 0x04687076	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x046e1d83	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x0484c6c4	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x048a0919	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x04a4c061	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x04c298d1	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x04d455be	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x04d6b786	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x04e9876f	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x04ea4fca	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04f55cf8	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x05026c6f	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x0511eda9	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x051d58e8	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x0544787f	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0548b993	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x054f7dec	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x055e77e8	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x056bfc63	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x056f53dc	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x0590d3c4	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05d57a70	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x05e5fe9c	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x05f74aa4	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x060ba97c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x060f90c1	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x0614cb40	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0630cc1e	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x0632e2f6	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x06507ae2	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x066c2217	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x06a6780b	of_root
+EXPORT_SYMBOL	 vmlinux 0x06bd88b5	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06dbe093	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x06e2b092	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x06e5c288	filp_close
+EXPORT_SYMBOL	 vmlinux 0x06edd1c6	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x0700f2f7	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x072eaef0	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x07325720	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x07393b48	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x0744bd5e	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x0745a981	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x0751b95d	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x0757e380	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x0763026f	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x0781ec97	logic_insl
+EXPORT_SYMBOL	 vmlinux 0x07a1cd64	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07ae6338	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ceeac9	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x07ddbf06	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0x07df46ab	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x07e4f6e8	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x07ffe7e4	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x080bcc6d	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08162c74	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x0822bdd2	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082a627c	console_start
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x082e4b6a	skb_push
+EXPORT_SYMBOL	 vmlinux 0x0830899a	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x08356f32	fman_sp_set_buf_pools_in_asc_order_of_buf_sizes
+EXPORT_SYMBOL	 vmlinux 0x083ca8d2	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x08424061	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x0863e325	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x086454a1	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x086e9c25	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x0879ce94	console_stop
+EXPORT_SYMBOL	 vmlinux 0x0880fcfc	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x0883d7ab	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x08b38c64	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x08c76d05	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x08d37464	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x08dbe47d	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x08e39398	cmd_db_read_addr
+EXPORT_SYMBOL	 vmlinux 0x08f72fb2	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x08f7bccc	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x08fb1c5f	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x09070cfb	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x09150f0f	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x0917490b	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x0919e4b9	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x09200409	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x09252708	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x092e26bf	acpi_remove_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0x092f50ec	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x093712e5	acpi_purge_cached_objects
+EXPORT_SYMBOL	 vmlinux 0x093b6583	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x093ce673	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x093ee58a	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x094b61e1	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x09682235	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x0972ae0b	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x097af021	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x09824da5	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x0993b9e1	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x09ad3a35	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09d46633	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x09da0ba4	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x09e1b246	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0x09f093de	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x09f159d4	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x09f8223f	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a0cffae	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x0a0ebc08	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x0a1c6eca	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2d7f01	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x0a313922	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x0a4f7940	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a85a1d9	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x0a90c481	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x0a96bead	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0ab30841	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x0ab91b64	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ae1ae97	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x0af20eae	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0b0b71c6	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x0b0f9f63	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x0b14866c	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b2580f5	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x0b26b8c8	acpi_run_osc
+EXPORT_SYMBOL	 vmlinux 0x0b27f694	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x0b290ada	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x0b30e1fb	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x0b49231c	mount_single
+EXPORT_SYMBOL	 vmlinux 0x0b4c9bb8	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x0b5f9fe9	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x0b697df0	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b8f3cdb	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c132079	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0x0c14a4a2	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x0c17c328	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x0c1baf7f	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x0c209778	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x0c2239ea	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c46da66	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c71355e	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c737cfa	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x0c9d47d3	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x0cbc7d67	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0cd1aafa	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0cd7b1e2	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x0cecaa1a	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d14cca2	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x0d3f5c1a	fman_get_max_frm
+EXPORT_SYMBOL	 vmlinux 0x0d51b8a0	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d66fb5e	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d754ed5	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x0dad76c2	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x0dae7a45	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x0db1eb5c	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x0dc489e8	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x0dcbaebd	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x0dfb72a0	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e38af24	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x0e41b2b2	logfc
+EXPORT_SYMBOL	 vmlinux 0x0e4262c6	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x0e482d96	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x0e52740f	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x0e5ac538	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x0e6b1a0f	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x0e6c582d	may_umount
+EXPORT_SYMBOL	 vmlinux 0x0e6ced2f	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e8672b8	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x0ea8be3d	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ec84e5d	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x0ecae24a	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x0ee2323a	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x0ef68e5e	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x0efc01e3	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f16ed9e	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x0f37ca89	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x0f387734	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x0f430d13	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x0f54458f	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x0f628e68	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x0f6a54d8	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x0f83e6bc	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f9e8602	pnp_stop_dev
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fb56cf3	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x0fd377bd	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0x0fd3e880	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fda51eb	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x0ffe9293	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100c933c	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x103c7481	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x105cf8a3	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x105f167a	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x1068b4e7	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x10982fbe	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10d00712	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10e2d436	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0x10e61daa	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x110a9c90	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x111ac289	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x113b6c54	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x114601c0	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x115d6426	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x116c519f	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x116e74ee	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x116ef39f	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x117360eb	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x11908ae5	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x119de725	fput
+EXPORT_SYMBOL	 vmlinux 0x11a3ac90	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x11b7b969	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x11baafb3	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11e24287	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x11e37d88	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x1213bb93	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x121539c0	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x12532d28	fman_set_mac_max_frame
+EXPORT_SYMBOL	 vmlinux 0x12592e16	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x125a832f	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x125b1e43	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x126dde66	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0x127fc051	stream_open
+EXPORT_SYMBOL	 vmlinux 0x12863094	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x12871f0e	fman_get_bmi_max_fifo_size
+EXPORT_SYMBOL	 vmlinux 0x128e8f80	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x129b0c3b	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12adb3c7	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12e0acbd	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x12e2d343	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x12ef7b71	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x130ae15e	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x130afd75	acpi_get_sleep_type_data
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131a6146	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x13238c73	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x132b7508	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x13312827	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x133c32cd	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x1341b533	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x1348705f	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x13493c94	iput
+EXPORT_SYMBOL	 vmlinux 0x134a2e2c	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x1354e1f9	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x135877d7	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x136bb331	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x139cee21	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b5a9b3	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x13b7ab93	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x13c2e01e	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13ebaa28	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x13fb75dd	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x1403220c	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x140d2037	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x141271bf	acpi_dev_found
+EXPORT_SYMBOL	 vmlinux 0x1416f082	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x142171da	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x143b5da8	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x143ea895	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x1448bc7d	drop_super
+EXPORT_SYMBOL	 vmlinux 0x1451efe0	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x145dedab	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x145f81f9	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x14667059	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x146eedb1	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x1472a60e	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x1491dbfe	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x14a08b4d	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x14b89635	arm64_const_caps_ready
+EXPORT_SYMBOL	 vmlinux 0x14bf34cc	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14c9ee38	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x14d2be2c	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x14da5a7a	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x14ef52bc	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x14f45fcc	bman_free_pool
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15042e23	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150ecac3	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x151c74a8	current_time
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x15331173	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x153ce17e	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x15451c82	sunxi_sram_claim
+EXPORT_SYMBOL	 vmlinux 0x1547e7c9	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x154b9944	igrab
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x15628ca2	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x15ba50a6	jiffies
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c7eac4	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x15c85de3	mempool_init
+EXPORT_SYMBOL	 vmlinux 0x15d28996	pcibus_to_node
+EXPORT_SYMBOL	 vmlinux 0x15d7a733	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x15e3278a	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x15e4ec83	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x15ea4898	qman_oos_fq
+EXPORT_SYMBOL	 vmlinux 0x15f055ef	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x15f1649d	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x15f1c33d	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x15fb0c83	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x15fd2957	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0x160aeeaf	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x161f393f	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x1620470a	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x163ed291	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x164030e1	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x165af9bd	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x165bc2ec	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x165ed1cf	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x167874d5	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x167d1a31	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x168699f1	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x169e1547	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x16be5262	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x16c5bcdd	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x16cdc340	acpi_get_table
+EXPORT_SYMBOL	 vmlinux 0x16dee44d	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e7e2cb	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x16f3490c	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x1708dcad	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x170ddf79	acpi_install_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x17297a89	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x172a616f	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x173a17ad	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x1741f261	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x1758dbcf	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x1765ea1f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x1776fb10	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x177d92e4	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x177f69a8	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x1785ab70	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x178efd75	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x179be536	seq_open
+EXPORT_SYMBOL	 vmlinux 0x17b0e8f0	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x17c3dbf7	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x17c66cde	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x17df6e98	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x17f75cc6	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x17fd4400	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x17ff1547	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x181c618d	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x1837041c	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x18502e1d	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x186de90f	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x18888d00	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1894d46e	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x18b48e28	__memset_io
+EXPORT_SYMBOL	 vmlinux 0x18bf74ae	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x18c05790	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x18d1c1cc	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x18d355cf	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x18dfe742	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18f2e14a	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x1906b05a	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x19242e38	efi
+EXPORT_SYMBOL	 vmlinux 0x192b8c9f	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x192f351a	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x1934b569	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x19393b4d	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0x194b02a9	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x194d0e79	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x194f590d	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x1953c958	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x1966d716	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x196afaa0	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x1971a1a9	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x19736e61	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19ba2dbf	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x19bd30ad	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c85be0	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x19e837fa	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x19ecb0fa	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x19fb0f5a	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x19fd05e7	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x1a1003d9	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a1ef9d9	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x1a24ce4b	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x1a2b8c69	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x1a31ac9a	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a8e94c8	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1a9c7c5e	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x1ab076c2	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1aca8eaa	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x1af03b4e	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x1af423c2	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x1afad1c1	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b1064f1	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x1b109b78	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x1b243660	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x1b3c770a	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x1b4fed20	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1b5775ea	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x1b597b7a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b73c244	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b954406	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1b978e83	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x1b9e3676	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x1b9ee18d	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x1ba363ae	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1ba5e35b	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x1bb1e62e	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bb86b9a	xen_start_info
+EXPORT_SYMBOL	 vmlinux 0x1bb8f6c4	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x1bbbf2c7	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x1bc51f06	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x1bd405c8	sdei_event_register
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1be27d11	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x1be66819	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x1bf2efb2	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x1bf795fd	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x1bfb9bcf	ilookup
+EXPORT_SYMBOL	 vmlinux 0x1c014c9f	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0x1c1c8289	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x1c26d0fb	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x1c2c5ab7	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x1c30f7fa	sget
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c3e5151	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x1c49b0da	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x1c4e4de5	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0x1c569eee	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x1c58427f	acpi_remove_notify_handler
+EXPORT_SYMBOL	 vmlinux 0x1c7c31a9	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x1c8d75b9	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x1ca1c251	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x1cae3fad	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb61bb2	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1cd62c85	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0x1cdd39ba	logic_outsl
+EXPORT_SYMBOL	 vmlinux 0x1cfc6570	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1cff09d8	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d0dc60e	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0x1d1abdf0	acpi_get_physical_device_location
+EXPORT_SYMBOL	 vmlinux 0x1d24c881	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x1d25136e	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d304851	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x1d40b6f3	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x1d4cf797	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x1d853777	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x1d93c9fb	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x1d9cdb75	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de4883f	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x1de67f9b	qcom_scm_io_writel
+EXPORT_SYMBOL	 vmlinux 0x1dee8fd7	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x1def92b5	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x1e0373fc	imx_scu_irq_group_enable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0cd7fe	acpi_detach_data
+EXPORT_SYMBOL	 vmlinux 0x1e170ae5	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x1e17b631	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e36f7a2	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e82034c	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x1e92552e	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea32686	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1ec8afce	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x1ecce07e	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x1ecd08c4	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1f061b3f	dump_page
+EXPORT_SYMBOL	 vmlinux 0x1f1524df	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x1f3eaa71	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x1f4c6348	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x1f546b95	d_add
+EXPORT_SYMBOL	 vmlinux 0x1f55a093	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x1f602d39	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x1f602f9a	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x1f652bb2	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x1f8059dd	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x1fa52aa1	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x1faba3af	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fc8ef97	free_task
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fdc7df2	_mcount
+EXPORT_SYMBOL	 vmlinux 0x1fdcb1a1	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x1ff97430	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x1ffff635	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x20066132	msm_pinctrl_dev_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x20313096	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x2042e7ff	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2058034f	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x208076df	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x209603bb	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x20a01a0b	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x20a1b519	acpi_resource_to_address64
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20c0c244	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x20cbb30a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x20cd09d6	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x20d4e6e4	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20d8d33d	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x2108bc9c	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x210c2307	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x210d6edb	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x21224df7	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x215bcaf0	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x217fd15c	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21a4dc4b	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21dac47c	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21fc2bd9	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x220d1303	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x220e55d0	mem_section
+EXPORT_SYMBOL	 vmlinux 0x222dc013	fman_set_mac_active_pause
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x22315d5d	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x2234ca51	acpi_match_platform_list
+EXPORT_SYMBOL	 vmlinux 0x22521253	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x2262b228	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x226cc07e	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x227e4fb4	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x22926e51	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x229484cd	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x229634de	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x22af3388	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x22b176d7	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22d299cb	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x22d51138	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x22d90802	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x22e6d1e3	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x22f0ad8e	misc_register
+EXPORT_SYMBOL	 vmlinux 0x22f4981f	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x230a0586	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x230ead11	filp_open
+EXPORT_SYMBOL	 vmlinux 0x2315bad5	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x2318a9a8	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x2337fffe	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x2355e712	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x2364da19	key_validate
+EXPORT_SYMBOL	 vmlinux 0x2376f2dc	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x2390957f	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x23926e69	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x23b022fb	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x23b1f762	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23d1133d	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23e73bda	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x2408a8f1	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x240f2032	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246feee9	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x2491523d	fman_set_port_params
+EXPORT_SYMBOL	 vmlinux 0x249e7861	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x249ea0bd	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x24b075c7	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0x24c057ba	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24fb293f	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x252c8141	phy_detach
+EXPORT_SYMBOL	 vmlinux 0x2530532d	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x254407e2	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x255fd184	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x25682aef	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x256b7692	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257e3489	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x25832c58	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x25854553	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x25a65511	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x25bd7a04	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x25d0a25b	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0x25d172aa	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x25d366f2	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x25d46a37	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x25e52c54	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x25e65314	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x260e965b	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x260ff7a7	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x262e823a	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2638440a	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x263959a6	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x263d19a0	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x263f0d1f	qman_portal_set_iperiod
+EXPORT_SYMBOL	 vmlinux 0x264b478c	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x264ea3b0	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x265328d6	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x265cc942	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x2665db8c	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x2670def0	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x269379ca	pnp_release_card_device
+EXPORT_SYMBOL	 vmlinux 0x269542e0	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x26a6e5fd	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x26bf74a4	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x26d39007	imx_scu_enable_general_irq_channel
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26e40565	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x26fe586d	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x27040848	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL	 vmlinux 0x27273416	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x272865a7	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x27316f47	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273613cc	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x273a21cc	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x273ae068	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275145d5	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x275e4d78	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27632d99	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x2766c0fc	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277bfc5d	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x277fc28d	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x27810361	acpi_os_wait_events_complete
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x2794afcb	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x27a9d040	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x27b173dd	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c3c728	qman_release_fqid
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27d9bae9	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x27ded1f9	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x27df3ec2	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x27e0befb	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x27e72068	iommu_dma_get_resv_regions
+EXPORT_SYMBOL	 vmlinux 0x27f22325	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x27fdf9d7	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x2801b614	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x280bbcc2	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x281aad13	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x284214df	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x285e0dfd	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x285f8693	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x288b2917	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x289c5a7c	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x28bf16a2	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x28dfdd21	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x28ee0e16	acpi_pm_device_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x28efc9cf	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x290cc3bc	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x290f4beb	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29205d79	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x29361773	complete
+EXPORT_SYMBOL	 vmlinux 0x293c5113	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x29587c15	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x296cb509	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x2989940d	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x29a65969	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x29a86702	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x29b1ca11	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x29cc8161	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29f47419	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x2a09e98e	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x2a0ee820	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x2a2597b9	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x2a2a5890	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a60c2d7	node_states
+EXPORT_SYMBOL	 vmlinux 0x2a653444	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x2a7135e5	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x2a722bb8	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x2a904ce3	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0843e	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x2ab2ee91	brcmstb_get_product_id
+EXPORT_SYMBOL	 vmlinux 0x2ab3ad43	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2ab7989d	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x2ac5364f	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x2acbf090	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x2ae1f869	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x2ae7c68c	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x2af0c597	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x2b031c10	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x2b031f23	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0x2b1abce3	fman_has_errata_a050385
+EXPORT_SYMBOL	 vmlinux 0x2b593aa8	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b6d3944	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x2b8035f5	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2b9a509b	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x2b9b16a1	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x2b9ce231	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb3d482	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x2bb6099e	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb88722	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x2bb94af6	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x2bb9af28	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x2bd60ab9	acpi_reset
+EXPORT_SYMBOL	 vmlinux 0x2bfbab10	__memmove
+EXPORT_SYMBOL	 vmlinux 0x2c0a6559	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x2c156298	imx_dsp_ring_doorbell
+EXPORT_SYMBOL	 vmlinux 0x2c1bb425	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c44d1b4	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x2c477036	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x2c541e7b	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x2c80622c	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c8af358	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x2c91e17c	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x2c94e969	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x2c9870c8	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x2c9c798c	fman_unregister_intr
+EXPORT_SYMBOL	 vmlinux 0x2c9cee98	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x2cbbf8b4	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x2cbc5675	follow_up
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cd7d86a	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x2cdf87a1	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2d110a48	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d1729dd	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d2b1be0	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x2d2d51c3	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d38bc2e	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d66bd5e	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x2d7284d0	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0x2d76d470	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x2d7b4097	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2db3d320	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x2dce2f1c	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2de0cad4	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x2e0b1deb	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e297e4b	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e2c4ddc	logic_inw
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e46d57b	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x2e5f87ec	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x2e89fbaf	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0x2e970e8d	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x2eaa156c	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x2eab1780	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x2ec3453b	qman_schedule_fq
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee0bcd3	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2efef7fb	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f04feae	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x2f20d946	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x2f266786	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f333aab	imx_scu_get_handle
+EXPORT_SYMBOL	 vmlinux 0x2f34b0de	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x2f384db3	acpi_is_video_device
+EXPORT_SYMBOL	 vmlinux 0x2f3b0674	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x2f3e4ff2	sock_register
+EXPORT_SYMBOL	 vmlinux 0x2f46ce65	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f607933	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x2f76488a	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2fb8ca53	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x2fbd1ca6	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x2fc2ece4	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fe353cb	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x2fe5b535	qcom_scm_assign_mem
+EXPORT_SYMBOL	 vmlinux 0x3002399e	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x30398588	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x30714976	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x3075f1d0	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x308edb47	release_sock
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b845e6	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x30bd5ee0	qman_destroy_fq
+EXPORT_SYMBOL	 vmlinux 0x30e0cdfa	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30edbd8e	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x30f39597	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x3100cff9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x31164eed	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x311d2733	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x31411ef3	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314a35f3	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x314dc3d7	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x317c3073	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x318d6fec	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x319d493d	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x31a4767f	qcom_scm_hdcp_available
+EXPORT_SYMBOL	 vmlinux 0x31b6774e	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x31bcff45	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x31c17846	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x31c5a388	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x31dc13ad	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x31e156d1	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x3209f1de	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x3231bc4d	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x3239df4e	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x323bdc9e	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x32524c77	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x326993af	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x3270fc33	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x32779087	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328ea1d6	file_path
+EXPORT_SYMBOL	 vmlinux 0x3294452f	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x32aa8661	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x32ac0253	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x32aecf03	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d2732e	alloc_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0x32e6f1a0	acpi_video_backlight_string
+EXPORT_SYMBOL	 vmlinux 0x32eab47c	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x32ec89e4	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x32f7c985	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0x33037fd8	logic_outl
+EXPORT_SYMBOL	 vmlinux 0x33123887	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x332ab6df	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x336e255e	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x3375fca5	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x33972d3e	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x339a08b7	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x33d27d0e	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f33a88	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x33f7b8d3	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x3404a4c6	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x342418b1	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x34252617	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x343f2a1a	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x344ca9d4	qman_init_fq
+EXPORT_SYMBOL	 vmlinux 0x3463e192	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x3467d17e	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x347ec623	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x3483544f	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x3492470f	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x34926fbc	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x34931db6	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a1f7e3	acpi_processor_get_psd
+EXPORT_SYMBOL	 vmlinux 0x34ae1f87	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x34b16334	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x34ce0b85	is_acpi_device_node
+EXPORT_SYMBOL	 vmlinux 0x34e673d6	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x350ea558	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x35163f84	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3517f922	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x35465e15	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x356c6f6b	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x357fa650	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x35843735	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x3593a2c8	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0x359ec42f	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35adacca	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x35bd6065	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x35c181dd	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x35e07474	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x3602a41f	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3609129e	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x3618b064	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x362d49b8	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x36331aec	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3633c600	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0x3637a42f	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x364568fb	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x364bf4a3	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x364d8082	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x3671c06b	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x367e736a	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x367fbcac	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x369c49e3	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x36a4c621	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x36c25022	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x36d422c4	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x36e8e27d	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x36f09b3b	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x36f873c9	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x3704e6dd	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x37110088	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x374af487	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x377d8004	acpi_error
+EXPORT_SYMBOL	 vmlinux 0x3789da32	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x37919581	fb_class
+EXPORT_SYMBOL	 vmlinux 0x37a1909f	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x37a190b2	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x37a37c51	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x37a81b01	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c0393b	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37e85962	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x37f09e81	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x37f196eb	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x37f8bc12	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x383b6497	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x3840d787	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x38444480	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x3847241f	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x385f362c	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x386ca0ee	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388aa3c9	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38d1f4a4	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x38dba1a2	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x38dd3cdd	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x38e46431	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x38eb65c8	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x391164ee	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x3928efe9	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x3984083a	tty_name
+EXPORT_SYMBOL	 vmlinux 0x398c6d16	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x39a82cc4	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39f9769f	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x3a0dba8c	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x3a0fb996	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a3fd57b	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x3a41a84f	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x3a433919	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a518042	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x3a559f27	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x3a60543d	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x3a82d5a4	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x3a93b1d9	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x3a93de29	arp_create
+EXPORT_SYMBOL	 vmlinux 0x3a945e91	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x3aada6fc	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ac129bc	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x3ac687b3	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0x3ac959a8	new_inode
+EXPORT_SYMBOL	 vmlinux 0x3acbb1fc	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x3ad5cda3	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x3ad7a5d5	acpi_evaluate_reference
+EXPORT_SYMBOL	 vmlinux 0x3ada9e06	acpi_check_region
+EXPORT_SYMBOL	 vmlinux 0x3aff3200	acpi_evaluate_object_typed
+EXPORT_SYMBOL	 vmlinux 0x3b0595e1	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x3b0b370c	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x3b128d73	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x3b1447cf	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x3b184711	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x3b20fb95	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x3b302168	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b6d10df	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x3b6e7bc1	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x3b825fc1	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x3b9144c9	acpi_get_current_resources
+EXPORT_SYMBOL	 vmlinux 0x3ba3f1f6	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x3ba5e6cd	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x3bbb9f74	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3bf83a05	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c1c5cf3	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x3c2979ff	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x3c3c00b0	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c56caba	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x3c5e3a04	path_put
+EXPORT_SYMBOL	 vmlinux 0x3c6f4394	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c9be47f	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x3c9c3639	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x3c9cef63	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x3c9f0164	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x3ca93b6d	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x3cabf47e	seq_path
+EXPORT_SYMBOL	 vmlinux 0x3cbb8cef	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x3cd512ce	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x3cd9ed83	logic_insw
+EXPORT_SYMBOL	 vmlinux 0x3cdaca1b	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x3cdc7a6f	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x3ce119b4	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce59273	mii_link_ok
+EXPORT_SYMBOL	 vmlinux 0x3ceaac44	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x3cf87c00	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x3d02cd70	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x3d081b37	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0x3d092b03	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x3d1a0c56	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x3d1fa08f	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x3d210724	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x3d2b73e8	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x3d2c6364	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x3d3a9477	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x3d438b7c	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x3d5547c9	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5bb3fd	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x3d6c1190	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3d87b882	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x3d9691c8	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x3d9ee9f0	clear_page
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3db36287	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x3dc2310b	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x3dc619d3	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dd46255	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x3dd9b230	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x3df1df02	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dfdb77f	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x3e025a37	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3e210442	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3e218b6e	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x3e25834b	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e2c4139	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x3e34c3d5	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x3e4b4113	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x3e59d1d6	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x3e78c55a	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x3e867210	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9ea153	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x3ea63783	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x3ea6af53	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x3ea80459	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x3eccc0ef	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x3ed7a358	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x3eeaa0c9	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x3eeb2322	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3eebf9d0	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x3ef4ccbd	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x3ef6a97e	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f0630a8	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f123c16	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x3f1a6976	simple_link
+EXPORT_SYMBOL	 vmlinux 0x3f1e2f5d	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x3f2a4944	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x3f388a56	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4bd846	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f518d52	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x3f770398	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x3f7887a2	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x3f823cc3	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f9a86ee	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x3f9e94f0	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fbfa89c	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3ff83d72	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x4005f38c	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x400a43af	bio_put
+EXPORT_SYMBOL	 vmlinux 0x40147c70	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x4016839b	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x401a6ed6	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x4026b857	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x40324397	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x40357bbc	pnp_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x403a9bf3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x40562b04	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x40658151	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x406cc835	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x407373b0	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x4076710d	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x407fec9c	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x4083f1cd	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x40907700	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x40964241	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x409bcb62	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b0f0e4	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x40becb38	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d1ed8c	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40dfeac5	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x40e5e54b	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x40e9a5ed	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x4107d097	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x4107efc8	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x410c79c6	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x413a2931	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x41492353	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x414c7054	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x41563e84	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x416741c7	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418bc9dd	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x41a921de	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x41bbf363	pnp_unregister_card_driver
+EXPORT_SYMBOL	 vmlinux 0x41c1b8f1	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x41d4e76f	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x41ed3709	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x41efdeaf	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x4215f8c0	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x4227477a	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x422ce162	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x422d1e05	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x42363e4d	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x4240e530	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424a346f	fman_register_intr
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x42578e80	acpi_get_type
+EXPORT_SYMBOL	 vmlinux 0x425b3c46	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x4268eb6f	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x42915f37	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x4296ac01	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x42a3e72f	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x42afeb36	seq_write
+EXPORT_SYMBOL	 vmlinux 0x42bed8d4	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x42ef9eaa	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x430cc13f	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x43179749	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x431d844b	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x4323c855	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x43354140	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x433cabfb	acpi_decode_pld_buffer
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x435ce4fd	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x438c542a	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x43aacff1	pnp_request_card_device
+EXPORT_SYMBOL	 vmlinux 0x43b421d8	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x43c290b3	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x43ea2ff5	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x43f04383	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x43f065fd	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x43f1ee2e	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x4403bbd0	imx_sc_misc_set_control
+EXPORT_SYMBOL	 vmlinux 0x44124be6	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x441d8f0f	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0x442bab7c	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x446379bd	dst_init
+EXPORT_SYMBOL	 vmlinux 0x4465c626	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x4470dfbe	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x4472501e	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x4490c431	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x44941410	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0x44986d47	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x449ad0a7	memcmp
+EXPORT_SYMBOL	 vmlinux 0x44b5db2f	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x44c3deca	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x44d612a9	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44f3f064	acpi_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0x44fbcf5c	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL	 vmlinux 0x450a30c8	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x450d9a35	cmd_db_read_slave_id
+EXPORT_SYMBOL	 vmlinux 0x452413a1	qman_alloc_pool_range
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x4534ae66	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x455d6a5c	release_pages
+EXPORT_SYMBOL	 vmlinux 0x4574afdf	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x458324e2	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x46015292	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x46015fe2	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x46082215	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x46093fe6	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x46112ff6	arp_send
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x463219fb	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x463a5ad8	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x4647be83	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x464b475a	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x464cc3af	dqget
+EXPORT_SYMBOL	 vmlinux 0x4655e271	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466c08e1	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x466e6c50	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x467a1837	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x468abd4c	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x46951148	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0x4697116a	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x4698fe8a	bman_release
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46c2492f	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46c52054	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x46d0b75d	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0x46ff7d12	qcom_scm_iommu_secure_ptbl_size
+EXPORT_SYMBOL	 vmlinux 0x470612dc	fman_port_get_qman_channel_id
+EXPORT_SYMBOL	 vmlinux 0x47075247	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x470d9923	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x471d05d3	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x471d2179	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x472138f6	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x4733d9c9	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x4739ca6e	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x475128af	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x47553ebb	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x475d7427	fman_get_rx_extra_headroom
+EXPORT_SYMBOL	 vmlinux 0x47684962	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47900c57	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x479137ca	imx_scu_irq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47960bc4	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x479b39fa	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x479c1659	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x479e1242	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x47b061a7	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x47bb352d	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x47c59ffc	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x47c64a3f	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47e3fb6e	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0x4802085e	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x480ca8b5	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0x480d5fcb	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL	 vmlinux 0x4829a47e	memcpy
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x482bbf20	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x4831eb71	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x4837bb10	logic_outsb
+EXPORT_SYMBOL	 vmlinux 0x483c5285	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x483c9528	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x484581a8	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484a2685	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x486075c8	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x48697288	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x487d69ae	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x4899ab58	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x489eda10	memset32
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a0c3f9	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x48a7fe83	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c093fb	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x48c2029f	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x48e1190a	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x48e607b1	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490fa7b8	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x4936e781	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x4937ff9a	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493eeb16	kobject_add
+EXPORT_SYMBOL	 vmlinux 0x4953aa27	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x496177bc	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x497ff3bb	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x49804a16	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x4994d7b0	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x4996694b	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x499a0e85	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x499db37d	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x499feb37	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x49b163b8	acpi_bus_scan
+EXPORT_SYMBOL	 vmlinux 0x49b30ad1	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x49b68853	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x49bf43a4	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x4a0ab517	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x4a36811a	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x4a4b806c	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x4a52eee5	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x4a66759e	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x4a82e800	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4ab208ba	acpi_walk_resource_buffer
+EXPORT_SYMBOL	 vmlinux 0x4abd061d	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x4ad17868	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0x4ad8122b	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4af4adcf	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x4af8c0e6	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4afb2238	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b37ee64	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b5172d0	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x4b52eb5a	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bc35b3f	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x4bcb6b76	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x4bcc2662	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4be35572	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x4bea0eb8	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf3ce6f	qman_release_cgrid
+EXPORT_SYMBOL	 vmlinux 0x4c067409	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x4c07a7e0	acpi_processor_unregister_performance
+EXPORT_SYMBOL	 vmlinux 0x4c1098a5	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x4c1bb57f	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x4c2e683b	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c468ef2	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x4c496f43	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x4c5432c2	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x4c599d21	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x4c64c919	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x4c6551f3	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x4c798645	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0x4c9acf17	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x4ca72b81	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x4cae02d6	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x4cb58b68	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc0755a	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x4ccbcb70	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x4cd3c9a1	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x4ced9a93	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x4cee1be8	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x4cf65a50	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x4cf97673	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x4cfad4a8	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x4d0040a0	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x4d02ffa8	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x4d04cc00	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x4d04f1ad	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x4d0be69a	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d1ff60a	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0x4d27fd95	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x4d2c7133	acpi_info
+EXPORT_SYMBOL	 vmlinux 0x4d4fe043	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x4d57bd0e	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x4d5c06d6	dev_load
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d6b73ff	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d760048	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4d895e3b	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d981510	register_console
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4da28c6c	dev_close
+EXPORT_SYMBOL	 vmlinux 0x4dc2098d	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x4dca08ee	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x4dd5d646	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x4dd7b709	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x4dd7e95a	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x4ddb2bc7	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x4de107f8	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x4de343f3	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x4de995ec	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df238db	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4dfc0e9a	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x4e20bcf8	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0x4e2e74c1	qcom_scm_io_readl
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e4f0f16	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e4b41	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e78137e	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x4ea25709	dql_reset
+EXPORT_SYMBOL	 vmlinux 0x4ea9ce8c	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x4eb5da14	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ee3744f	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x4ee65f0e	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x4f09363c	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0x4f1c6d5a	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f2c6b99	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x4f521937	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x4f55166f	acpi_set_current_resources
+EXPORT_SYMBOL	 vmlinux 0x4f69bb63	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0x4f78bf05	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x4f79bbe1	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x4fc3986e	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4fc87e8b	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x4fe5b351	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x4fe78627	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x4fec6dbd	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x4fee9bef	acpi_dev_get_first_match_dev
+EXPORT_SYMBOL	 vmlinux 0x4ff3dadc	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x4ff83bfb	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x50178fe6	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x5020312a	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x5027bde2	acpi_acquire_mutex
+EXPORT_SYMBOL	 vmlinux 0x5029402e	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x502f7e3b	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x50341bbd	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0x503973dc	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0x506a8f92	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50902c6a	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x509187ff	dns_query
+EXPORT_SYMBOL	 vmlinux 0x5094abfb	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x509b64ea	acpi_has_method
+EXPORT_SYMBOL	 vmlinux 0x50a18399	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a64710	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x50a90864	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50a9a1e1	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x50b193e7	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c1f770	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50cd5ab1	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x50cf2971	find_vma
+EXPORT_SYMBOL	 vmlinux 0x50d0a5c7	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x50d99ad6	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x50db9de0	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0x50e6ea4d	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5102a30b	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x51193d6b	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x513475ab	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x51387a0b	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x513a8790	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x514718f0	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0x515083bf	acpi_release_mutex
+EXPORT_SYMBOL	 vmlinux 0x515f520b	qman_portal_get_iperiod
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x5167b154	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x517b18d2	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x5180b4fe	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x51a84533	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x51aacb2a	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x51acfeab	fget
+EXPORT_SYMBOL	 vmlinux 0x51bc385e	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x51bd55b5	completion_done
+EXPORT_SYMBOL	 vmlinux 0x51bf544c	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x51f041a5	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x51faca95	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x51fd4169	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x5203d176	cmd_db_ready
+EXPORT_SYMBOL	 vmlinux 0x5213d26f	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x52185a00	bio_split
+EXPORT_SYMBOL	 vmlinux 0x5228022a	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x524983e8	notify_change
+EXPORT_SYMBOL	 vmlinux 0x525d43ec	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52e2fb40	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x52f06cd8	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0x52f2850a	imx_sc_pm_cpu_start
+EXPORT_SYMBOL	 vmlinux 0x52f35b63	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x530f11e7	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x53126ecc	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x531d27ec	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x534f52ae	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x535532c9	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x535cea4d	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x537505c1	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x537aa6d0	sdei_event_enable
+EXPORT_SYMBOL	 vmlinux 0x5397cb9b	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x539d4bef	__module_get
+EXPORT_SYMBOL	 vmlinux 0x53b954a2	up_read
+EXPORT_SYMBOL	 vmlinux 0x53bcb08a	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0x53c34b14	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x53dfe999	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x53fc4d32	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x541df902	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x542d64da	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0x543ba8f7	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x544b0c11	acpi_lid_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x5451e955	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x54571284	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x54613d0d	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x546c8c97	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x547838cc	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x54996b11	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x549b1f3b	dput
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54b6f8d7	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x54b96200	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x54bbe1ae	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x54cb86df	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54cfbe0a	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x54e37e0b	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54ea6dfe	xen_start_flags
+EXPORT_SYMBOL	 vmlinux 0x54f11d8e	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x54f6396c	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x5508f28d	bman_acquire
+EXPORT_SYMBOL	 vmlinux 0x550e42e4	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x5523c70c	mii_nway_restart
+EXPORT_SYMBOL	 vmlinux 0x552db3aa	qman_query_cgr_congested
+EXPORT_SYMBOL	 vmlinux 0x55408b1b	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x55431308	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x554543d6	processors
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x5554466f	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x556338d7	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0x55686530	__arch_clear_user
+EXPORT_SYMBOL	 vmlinux 0x55698598	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x557108b6	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x5577d5a5	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x5581c80a	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x5595ef7f	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x55b64366	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x55cd3d9f	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0x55d110e5	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x55d2740b	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x5614f48a	qman_dqrr_get_ithresh
+EXPORT_SYMBOL	 vmlinux 0x5623ef82	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x5635b909	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x56391e17	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x56396f38	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x5642deaf	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x564a0793	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x564f7608	acpi_reconfig_notifier_register
+EXPORT_SYMBOL	 vmlinux 0x56520c7b	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x56709d02	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x567c23c7	dev_open
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568ef987	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569abcca	acpi_walk_resources
+EXPORT_SYMBOL	 vmlinux 0x56a398c5	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56dfb4f3	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x56ea94c2	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x56fe7720	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x5752a3c5	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x576654e6	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x5780e584	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x57825528	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x57900416	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x579ca3b5	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x57a4ea7c	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x57bc19d2	down_write
+EXPORT_SYMBOL	 vmlinux 0x57d67c0f	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x57e009a6	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x57eefa61	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x57f3f08c	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x57fe4f2b	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x580178d3	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x580ac44b	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x5817f1d8	follow_down
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x5826b735	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x5826c9e1	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582c67d9	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x584a0449	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x586b0caa	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x587a93e6	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x587fea02	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5891cfb6	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x589898c6	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x589e4a1c	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0x58a94bbe	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58c08098	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x58d896a4	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58f7b296	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x591e0016	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x59301da2	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x595fc86b	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x596fc438	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x59773954	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x5988091e	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x598e73d6	d_path
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a22d09	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59ac2b13	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59c3f4f3	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x59c8ed96	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x59df9720	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x59ea99e6	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x59f41668	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a0c2eda	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x5a0c376b	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a60b950	qm_channel_pool1
+EXPORT_SYMBOL	 vmlinux 0x5a75151e	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a8fba54	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a9772ad	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x5a9f1d63	memmove
+EXPORT_SYMBOL	 vmlinux 0x5ab0acc2	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x5ac4263a	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x5adb306e	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x5ae88b27	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x5ae9320d	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0x5aebe8a7	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x5af8afcd	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x5b1b98fa	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x5b2f27fb	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x5b32f750	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3e282f	xa_store
+EXPORT_SYMBOL	 vmlinux 0x5b54903b	qcom_scm_pas_mem_setup
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b7b4367	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x5b9d1248	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x5b9eaf3f	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x5bbb5b26	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x5bbd65c0	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5bbec7b1	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x5bcb29cc	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x5bd52b47	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x5bdddffc	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x5be124fd	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c10cc39	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x5c13b1da	mntput
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c4b5f6e	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x5c52ee88	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x5c8a8620	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x5c8c87a9	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5c9930ab	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x5c99b719	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x5caf92bb	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x5ccd6b42	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x5ccdfd1a	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x5cd61568	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x5cde37dd	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x5ce80a06	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5cfb26a0	acpi_enter_sleep_state
+EXPORT_SYMBOL	 vmlinux 0x5cfecfc3	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x5d112304	__memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x5d12f4ad	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x5d168269	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x5d20b7e5	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d4b7196	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x5d58342f	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x5d596ebf	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x5d62d35b	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x5d664ce7	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x5d6dba7b	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x5d7d8e09	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x5d8bf045	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x5d9abd65	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x5dac4cd6	qman_dqrr_set_ithresh
+EXPORT_SYMBOL	 vmlinux 0x5dbb120b	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x5dc1c54b	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x5dddc082	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x5ddf74eb	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x5de84d65	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e3240a0	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x5e332b52	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e52e4f5	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x5e57db9e	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e5bae98	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e855e56	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5e989b31	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x5eb12f77	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5eb4841d	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x5eb4b9b6	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x5ec975d3	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x5eca0171	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed65528	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5efde8e6	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x5f000d5c	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x5f0862b4	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f3bc3bb	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x5f3d9a24	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x5f62af9d	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x5f6518b5	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f721181	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x5f7c4616	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x5f7db4f6	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x5f826f39	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0x5f8d5cd3	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x5f93525c	acpi_extract_package
+EXPORT_SYMBOL	 vmlinux 0x5f98bdb6	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x5f9a33d0	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fc9202b	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x5fd70e30	phy_start
+EXPORT_SYMBOL	 vmlinux 0x5ff9eb0e	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0x60016adc	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x60027d91	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601b35ad	bdput
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602b4c10	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x6041d3b9	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x6046fea6	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x604a8ae9	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x604e8bf0	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x6055e45f	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x60584c35	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x6063b7ca	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x608557e9	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x608741b5	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x608fa8cd	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a2316a	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x60aaeb4b	qman_p_irqsource_add
+EXPORT_SYMBOL	 vmlinux 0x60b3071f	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x60b60edd	fman_bind
+EXPORT_SYMBOL	 vmlinux 0x60b6cd67	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x60bcb302	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x60c13075	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x60c39414	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x60d2fa23	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x60d890b7	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60f81364	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x60f92a84	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x60fc4e5b	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x61072067	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x61077633	load_nls
+EXPORT_SYMBOL	 vmlinux 0x610bf1c2	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x611bf0f1	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x612707bd	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61304fc9	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x61456cd3	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x614cb4fc	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x617708db	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x617c452b	queued_read_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x6185b747	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x6185db20	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61af4f00	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x61b0ca78	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x61b1943f	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c1c122	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x61c38be6	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x61da5b16	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x61e3da42	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61eb22c1	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x61f6a5df	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x6252653f	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x625e37b3	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x62765831	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x6288fe0d	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x62890955	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x629bb7da	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x62a5381f	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62cc356b	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x62d56c40	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x62d96443	qman_dma_portal
+EXPORT_SYMBOL	 vmlinux 0x62db0143	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x62fc551f	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x631682cd	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x631e0ac6	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x6340ffe1	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x63451b66	module_put
+EXPORT_SYMBOL	 vmlinux 0x63a2ad9d	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x63a65eaa	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63a7c2c6	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63c8129d	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0x63c8bcc4	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63e81491	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63fd7a6f	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x640c13a6	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x64128225	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x6416926f	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x6418c6c8	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x641ea55d	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x642eb5c6	xen_poll_irq_timeout
+EXPORT_SYMBOL	 vmlinux 0x643c160d	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x64433800	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x6449238b	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x644a0db7	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x644be12c	qman_affine_cpus
+EXPORT_SYMBOL	 vmlinux 0x64564fb1	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x64688efd	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x64784897	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x647d643a	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648a7bcf	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x648de9c2	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64d947f9	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x64dfba7d	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x64fc81eb	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x650f78ac	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x651a67e9	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x652d259f	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x6530167c	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x6535ff45	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x654449c3	memset16
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6558e2cf	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x655c8812	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x657ef25f	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x6580e0a1	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x65938c07	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65aa5a7a	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x65b09b1f	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0x65c8936b	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d1bab2	acpi_bios_warning
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x6616b4e0	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x6622ee48	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x6626afca	down
+EXPORT_SYMBOL	 vmlinux 0x662b24f1	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x663f92de	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x6644ff03	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x66473111	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x664b1e29	qman_delete_cgr
+EXPORT_SYMBOL	 vmlinux 0x665c8d0c	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x665ed365	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x66665ac1	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x666ae254	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668b19a1	down_read
+EXPORT_SYMBOL	 vmlinux 0x66af1fd1	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66ee3d8c	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x66f3e001	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x66f7e40c	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x6702d5b8	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x671d951c	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x673de422	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6754af46	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x675cd18a	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x6760fa0e	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x679dedc3	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x67a1507c	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x67a6834b	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x67af1c20	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67bae2dd	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x67c13ea0	acpi_read
+EXPORT_SYMBOL	 vmlinux 0x67c3d232	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x67e00c31	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0x67e57c14	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x67f5a9f1	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x67f7f191	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x67f9ab1a	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x681f19a5	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x683afc86	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x684762e4	pnpacpi_protocol
+EXPORT_SYMBOL	 vmlinux 0x685c11d2	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x6872d11c	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68874622	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x688a8e46	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x688fa9d2	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68b10272	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x68c208eb	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x68cf2d58	serio_open
+EXPORT_SYMBOL	 vmlinux 0x68d0e767	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x68ee9b16	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x68f17b10	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x69049cd2	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0x690fb5ee	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x6920ed26	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x69246917	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x692aa3c5	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x69317181	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x695cb5cf	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x69630730	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x6983e279	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x698662e4	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x699c0328	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69c4dbea	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69e5525e	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x6a015dc3	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a079436	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6a1ba7e4	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x6a2507fe	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x6a310657	fman_get_qman_channel_id
+EXPORT_SYMBOL	 vmlinux 0x6a3766b2	qman_delete_cgr_safe
+EXPORT_SYMBOL	 vmlinux 0x6a489afb	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x6a583e33	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a99e2b2	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x6a9c1dd8	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6aa1ef82	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x6aa8609b	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x6aae2282	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x6ab657d5	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x6acdd5b5	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0x6adb3f56	key_link
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6af0c935	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x6b064915	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6b07201c	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x6b09f91b	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x6b138a8c	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x6b21a295	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x6b27729b	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x6b2941b2	__arch_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b3aaf3e	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x6b4024b4	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x6b4b2933	__ioremap
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b605bd3	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b669e86	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6bb23c37	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x6bba375b	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bc5926d	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x6bd7a578	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x6bd9e141	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x6be0d38b	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6be1c1f8	acpi_install_method
+EXPORT_SYMBOL	 vmlinux 0x6becc929	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x6bed2fb2	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x6bf73882	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x6c1933e5	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x6c1a26a8	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x6c224cda	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c50cc8b	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c79b4ba	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x6c7db764	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x6c8ce9f2	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6c8ec20f	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x6c9e885c	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cb75121	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x6cdbcbed	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x6ce5b597	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d01c3c7	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x6d043403	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x6d0d7f53	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x6d1c39d9	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d2b5b3d	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d3b56d2	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x6d50f272	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x6d53ff12	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x6d5980fd	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x6d5f5b91	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x6d6367cd	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x6d664a9e	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x6d73c95f	logic_outw
+EXPORT_SYMBOL	 vmlinux 0x6d845dab	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x6db20548	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x6dbf04d4	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x6dc35b25	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd17e7b	acpi_get_table_header
+EXPORT_SYMBOL	 vmlinux 0x6dd27921	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x6de13801	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x6ded9765	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6df2f2b9	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x6dff491c	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e2aeb26	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e5befac	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e819ea1	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x6e8dc834	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea93466	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6eb8b3c5	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x6eb990a0	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x6ec87d09	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ed96cae	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x6ef439a6	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x6f03934b	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x6f1ae0c1	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x6f1f2d54	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x6f321050	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0x6f34b958	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x6f389744	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x6f3b8148	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x6f41a428	acpi_get_vendor_resource
+EXPORT_SYMBOL	 vmlinux 0x6f45b089	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x6f6ce511	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f915a45	dqstats
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbc6a00	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc177e	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6ff2758e	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70183c62	vga_get
+EXPORT_SYMBOL	 vmlinux 0x7018424a	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x7023bea8	unregister_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x702a8bcf	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x702e20b1	rpmh_flush
+EXPORT_SYMBOL	 vmlinux 0x7039aa89	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7075cc6a	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x707a4ccb	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x7086943a	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x7093ff57	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x709af593	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x709e9167	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x70ad75fb	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x70d0224a	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x70d1a18e	qman_release_pool
+EXPORT_SYMBOL	 vmlinux 0x70d3f3ea	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x70e01d62	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x710dddf9	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x712e9d53	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x713c3450	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x7141b88a	logic_insb
+EXPORT_SYMBOL	 vmlinux 0x71458691	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x7163d407	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x7165d98d	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x716b1cf5	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717c95af	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71a84559	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x71c803ba	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x72073967	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x72080436	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x722dab61	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x724535fd	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x725577cf	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x726b7397	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x729a3ef9	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f7188e	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x7315b49a	sock_create
+EXPORT_SYMBOL	 vmlinux 0x73184387	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x731a372e	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x731c4a9c	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL	 vmlinux 0x732de01d	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x7330b62f	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x73330bd8	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x733a62e6	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x733ed24a	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x7352e8a7	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735e6a81	acpi_evaluate_integer
+EXPORT_SYMBOL	 vmlinux 0x7364ab9e	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x738b0d85	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x738cf4d2	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x739ac4f6	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x73bd2c0f	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x73c2d74a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x73cad0d2	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x73ed3adb	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x73f3500a	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x73f8402e	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x73f9aead	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x73fe88e0	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x7409dc42	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7411ab05	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x741b6cd3	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x743f4126	keygen_port_hashing_init
+EXPORT_SYMBOL	 vmlinux 0x744ca4b0	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x745b85e4	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x74610f02	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x74754435	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL	 vmlinux 0x748056da	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x748f1154	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x74bbe04d	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x74bbe68c	eth_header
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74d0d8f9	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74e92295	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x74ef165d	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0x74f0c85f	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x74ffc8e7	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x7504c8ca	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x752126ae	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x752c99ca	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x755f4ba3	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x756b81ee	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x7578b3be	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x7580943a	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x75871f5e	acpi_get_next_object
+EXPORT_SYMBOL	 vmlinux 0x7588e795	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x75a23507	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x75a7b487	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75e60613	key_put
+EXPORT_SYMBOL	 vmlinux 0x75f7283f	bdevname
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x7610dbf1	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x762a47b3	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x7638efdb	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x763908bb	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x764a0bd7	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x76844a1a	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x7692aa3d	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x769d0afc	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76bfce4f	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x76d36b18	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76ffb26f	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x77052224	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x77082592	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x77364e65	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x77429eaf	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x774425dc	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x77456e0a	acpi_root_dir
+EXPORT_SYMBOL	 vmlinux 0x776ae37d	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x7774fbb0	has_capability
+EXPORT_SYMBOL	 vmlinux 0x7776cbfd	meson_sm_call_read
+EXPORT_SYMBOL	 vmlinux 0x7785c670	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x7789d7b6	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779f8606	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x77aad8d5	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c655c2	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0x77d637e2	would_dump
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77eeb789	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x77fdcd0b	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x78107c54	seq_read
+EXPORT_SYMBOL	 vmlinux 0x782ca19e	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x7839aab0	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x78408636	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x7869be89	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x789ecd3d	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e33615	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x78e9d2ea	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x78f198d1	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x79031395	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x79128f6f	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x791ec1c0	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x79429a5f	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0x795a279b	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x796a2ad0	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x79782df8	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x79795a3d	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x79843e60	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x799d0bcc	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79c5e7b6	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x79ddb445	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x79e92a1a	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x7a00e54d	inet_release
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a2af7b4	cpu_number
+EXPORT_SYMBOL	 vmlinux 0x7a2f37c3	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x7a301d5c	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x7a4135d6	node_data
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a45f4c2	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x7a538bcd	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x7a7e6644	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7a82e69b	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x7a88f53d	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa01d0a	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aaf048f	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x7aaffa20	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7aea6ffb	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x7aef7c15	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b0bf307	iommu_get_dma_cookie
+EXPORT_SYMBOL	 vmlinux 0x7b3dba7a	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x7b4a65d4	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x7b4da6ff	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x7b5eed29	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x7b82b9a1	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x7b90785b	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x7b97557b	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x7bb50b88	acpi_write
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbe5503	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x7bf459f1	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x7bff8b14	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c1fe0a6	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x7c23f4bb	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x7c457113	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c77f436	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7cb0934d	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cb7bf85	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7ce609ca	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x7ce709fd	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x7cec987a	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0ba682	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d0efa44	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x7d12d76d	acpi_get_parent
+EXPORT_SYMBOL	 vmlinux 0x7d1edbe0	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x7d38be34	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x7d46510f	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d712f41	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x7d871441	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x7d9216d6	pnp_register_driver
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7db2edac	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x7db8b4b8	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x7dba1794	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x7dbb6430	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x7dc9f2e6	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x7ddbad2e	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x7defefd1	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df87c58	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x7e0826e2	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7e0ec3a9	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e34448f	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x7e46adc0	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x7e6acbc5	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x7e6fe8fa	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x7e892855	serio_close
+EXPORT_SYMBOL	 vmlinux 0x7e8b6edc	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x7e8ecff7	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x7e937d10	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x7eb29957	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x7ebf6c26	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x7ec724ba	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x7ec78bdd	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7eeee371	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x7efa575c	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f1f49a0	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f26d247	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x7f46c208	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f5ef625	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x7f5fe6db	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0x7f62d50a	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x7f7f5892	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7fc2a308	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x7fd0cf24	rpmh_write_async
+EXPORT_SYMBOL	 vmlinux 0x7fd27744	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7fe105d7	bman_ip_rev
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe59b1e	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x8007397a	read_code
+EXPORT_SYMBOL	 vmlinux 0x801a9f46	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x8088c819	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80a717a8	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x80ac2088	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x80c8a519	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80ce7953	dm_io
+EXPORT_SYMBOL	 vmlinux 0x80d3d71e	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80eb7812	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x80fb4f50	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x80fdd0dc	path_get
+EXPORT_SYMBOL	 vmlinux 0x810a37ac	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x8133c67d	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x8135ca47	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x814ce166	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815f2897	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x81648e6f	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x817cc8a7	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x8191b2aa	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x8193e822	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81b18dd7	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x81b395b3	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0x81d8a2ef	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82075811	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x82152a88	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x8255cfab	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x8261e051	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x8263a6d9	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x828eea4a	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x82910214	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x8291c4f0	set_groups
+EXPORT_SYMBOL	 vmlinux 0x829847d4	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x82a64037	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x82a6aeda	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x82af5db9	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0x82b8a105	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d07ae7	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x82d497f1	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x82f36010	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x82f4a085	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x82fde3c0	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x8304766d	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x832f49b1	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x8340a2fc	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x83530f1a	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x836fa7b8	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x837fc0cf	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x8384647a	acpi_map_pxm_to_online_node
+EXPORT_SYMBOL	 vmlinux 0x83877f09	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x838ffc91	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x839e6d9c	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x83a9d67c	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x83aa6ff2	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x83afc3b9	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x83b0675f	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x83b5eee8	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x83c534dc	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x83c6817d	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x83e8d08c	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x83f97e56	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x843d598c	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x844244ee	kobject_put
+EXPORT_SYMBOL	 vmlinux 0x8447b92f	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x847b673f	sk_free
+EXPORT_SYMBOL	 vmlinux 0x8481d623	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x8485b556	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x84a58036	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x84ab3ee0	dqput
+EXPORT_SYMBOL	 vmlinux 0x84b0d406	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x84b2d77f	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x84c1c552	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x84c1c605	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x84d04f3c	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x84fc10d8	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0x85069133	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x850e328c	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x85195b86	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x851e66b8	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x851fba8c	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0x8529957e	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x852ce292	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x8537d25e	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x854e4bf2	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85544e54	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x85554ee8	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x8564ad10	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x8567bdff	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x857adba6	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x85814e37	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 vmlinux 0x858dc306	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859508d8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85ba3e46	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c60ad9	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e313b1	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85f45a95	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0x85faba4d	pnp_activate_dev
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x860024a0	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x8603b9a6	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x86233520	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86b3a5b0	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x86b3d2a2	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x86dfab73	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x86edbb4f	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x87599d23	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x87618855	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x876a2d68	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x8780bdf7	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x87828880	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87c74447	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x87e78ccd	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x87f3f986	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x87fd451e	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881c4413	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x88694286	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x888095e6	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x888a8776	key_move
+EXPORT_SYMBOL	 vmlinux 0x889036cb	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x88a86745	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88afe59a	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88e8ffd0	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x88e9b4bf	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x88f3d652	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x8910745b	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x89434b4b	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x8946ea72	fpsimd_context_busy
+EXPORT_SYMBOL	 vmlinux 0x894ed320	override_creds
+EXPORT_SYMBOL	 vmlinux 0x895c730c	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x89667eb4	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x896c7480	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x896dd620	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x89813088	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x898a13af	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x8998edc7	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89feb5a6	f_setown
+EXPORT_SYMBOL	 vmlinux 0x8a0669df	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x8a06a5b8	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x8a07d2e5	__brelse
+EXPORT_SYMBOL	 vmlinux 0x8a12d9f1	d_move
+EXPORT_SYMBOL	 vmlinux 0x8a174553	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a26f410	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x8a3c96eb	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x8a45c5bd	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a5d6230	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a73e07f	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x8a7b168b	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a852369	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x8a8c6389	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a948248	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x8a97ed23	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8ab72bda	pnp_device_attach
+EXPORT_SYMBOL	 vmlinux 0x8ac136ae	imx_sc_misc_get_control
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8af36c92	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x8b001465	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b029817	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x8b1943c7	audit_log
+EXPORT_SYMBOL	 vmlinux 0x8b1e4506	acpi_bus_register_driver
+EXPORT_SYMBOL	 vmlinux 0x8b2ffd83	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x8b422efd	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x8b514b79	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b5b3289	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b7351a5	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b86e059	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba70ce0	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x8bcd7e70	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8be8df24	dst_release
+EXPORT_SYMBOL	 vmlinux 0x8bead82d	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x8bf417a7	sunxi_sram_release
+EXPORT_SYMBOL	 vmlinux 0x8c04eea8	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x8c1621e6	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x8c1db57d	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x8c1f689a	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x8c208396	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x8c26d495	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8c2dfd86	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x8c2f4f98	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x8c98ed93	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x8c9e338f	acpi_bios_error
+EXPORT_SYMBOL	 vmlinux 0x8cadbb3d	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x8cb3cdd2	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8cbc606d	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL	 vmlinux 0x8ceb54dd	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x8cfb5a5e	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x8d0d124c	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x8d4d2a9d	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d576d88	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d80710e	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x8d827d6d	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x8d9ca0e6	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x8d9d5490	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x8da6ace0	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfdf56a	sdei_event_disable
+EXPORT_SYMBOL	 vmlinux 0x8e083d87	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x8e145a4d	init_task
+EXPORT_SYMBOL	 vmlinux 0x8e17b3ae	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e196bef	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x8e21c9a1	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x8e22cf83	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x8e3e833a	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x8e4dc23f	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x8e64bc38	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x8e6e91e5	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x8e792632	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x8ea62bcc	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x8eb404c4	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x8ec1f76d	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x8eee9cb3	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x8f012f10	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x8f01ac42	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f0b3c33	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x8f110bee	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x8f375936	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x8f3b84ce	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x8f746257	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x8f7c8156	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x8f7cc0f2	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fa0b995	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x8fa25c24	xa_find
+EXPORT_SYMBOL	 vmlinux 0x8faf7b07	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fbe5b78	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x8fbf9f61	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x8fc51206	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x8fc9ea11	fman_port_cfg_buf_prefix_content
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fe3b69c	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x8ff13123	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x90172394	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0x90181772	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x9026c81b	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x90283614	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x902f5199	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x9033e3fb	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x9034a696	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x9036afd1	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x903901db	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x906ac0fe	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x90853257	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x90bc4b1f	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x90c99bb0	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x90fa6e50	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x91067834	of_node_get
+EXPORT_SYMBOL	 vmlinux 0x91098d94	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x9115d7a0	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x913f1b04	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x917c151d	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x9181be5e	update_region
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91c03b80	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x91cb5df5	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x91da0cae	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x91e5a80d	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x91f01166	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x91f44510	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x91fcbd7f	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x92034bb7	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x920ddf4b	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x92462c49	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x9250d90b	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x92540fbf	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x925f5b5b	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x92816787	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x92918576	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92b99a33	acpi_put_table
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c51681	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x92d2008d	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x92e17334	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x92e1d325	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x92ec287b	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92f247b0	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x930e6a5c	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x9360359d	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x93671761	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x9383b8d6	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93cb38b2	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x93ec2de8	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x941e9b2b	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x9422d032	padata_free
+EXPORT_SYMBOL	 vmlinux 0x94247ad0	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x943125ae	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x945497a3	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x945e6247	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x94600ef6	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x946c4b1d	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x9484f389	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x9490b10e	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94983e9f	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x94ad577d	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x94b2b0e7	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x94b5f17f	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x94bb7ec3	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94dc15f9	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x94e84949	rpmh_invalidate
+EXPORT_SYMBOL	 vmlinux 0x94ee21b3	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x94f33146	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x94f82e9b	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x94fc8d93	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x95086758	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x950b8108	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x950cac91	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x9519601b	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954df3b0	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x95695f28	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x957f1606	iommu_get_msi_cookie
+EXPORT_SYMBOL	 vmlinux 0x958029b0	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x9592dbfa	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x959d275b	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x95a67b07	udp_table
+EXPORT_SYMBOL	 vmlinux 0x95b67b78	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95ec3d8d	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0x96069b25	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x9611b1bd	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x96509812	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x96545c60	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x9660b4a5	cpu_hwcaps
+EXPORT_SYMBOL	 vmlinux 0x967d7f8f	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x9688de8b	memstart_addr
+EXPORT_SYMBOL	 vmlinux 0x968b4b6b	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x96b0942c	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cc60b6	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96d7fc1f	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x96e5d30f	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x96e81831	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x97099599	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x9716dace	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x971aeeb6	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x97295a45	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x973fa82e	register_acpi_notifier
+EXPORT_SYMBOL	 vmlinux 0x97431fc6	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x9749abda	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x97503cd0	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x977f511b	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x97891268	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x9794b19b	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97a91276	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bb857c	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97dc2073	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x97e722de	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x97ea4762	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x9801a667	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x98151b94	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x981908f0	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x981be892	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x98215716	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x982d2f46	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x983fffe5	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x984833da	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9852de2b	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x985d5463	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x9887826d	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x98956b32	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x989b2e10	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x98b407b1	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x98c039dc	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x98c4256d	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0x98c623de	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x98c88ac5	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98cab207	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x98cf60b3	strlen
+EXPORT_SYMBOL	 vmlinux 0x98e378db	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x98e4e8b5	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x99078b39	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x99094fb2	qcom_scm_is_available
+EXPORT_SYMBOL	 vmlinux 0x992689f6	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x9939f4ee	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x996d5835	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x9975dc22	acpi_get_handle
+EXPORT_SYMBOL	 vmlinux 0x998211f8	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x998e56e6	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99b1bfcf	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x99b26d35	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x99c0950a	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99d67df7	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x99e4f19e	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a0f713a	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a22391e	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x9a25b467	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x9a458107	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x9a48c7a2	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a5bc562	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x9a5be22f	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x9a663e3c	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9aa52f19	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ada725e	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x9ae4eb22	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x9ae66468	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x9af39581	iproc_msi_exit
+EXPORT_SYMBOL	 vmlinux 0x9b007955	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x9b08c6cf	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x9b128a66	qcom_scm_set_remote_state
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b2de66d	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b4f9c14	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x9b5d6bee	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x9b67c7fd	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x9b72478f	acpi_unload_parent_table
+EXPORT_SYMBOL	 vmlinux 0x9baa627c	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x9babde41	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x9bb12f6d	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x9bca868c	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x9bcd9a6f	acpi_bus_get_status
+EXPORT_SYMBOL	 vmlinux 0x9c122bcf	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x9c1e5bf5	queued_spin_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0x9c1eb28e	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x9c23d3bb	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x9c274a87	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x9c7bb756	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x9c7fd8b7	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x9c87985c	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x9c8fdd98	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9c972aba	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x9c9cf24d	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb8e4a4	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x9cbbea44	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce0d719	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x9ced4889	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x9cfde1a2	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x9d037383	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d175313	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x9d1a5e3a	__memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d237650	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x9d2b5f3f	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x9d61e994	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x9d92f3ad	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x9dabae65	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x9dac859d	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x9daeee65	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x9db5378a	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x9dbc9522	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dca00bc	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x9dcb63e9	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x9dd71b7d	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x9ddeb620	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x9df21d0e	qman_affine_channel
+EXPORT_SYMBOL	 vmlinux 0x9e08e678	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e16eca1	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x9e19a3ab	d_drop
+EXPORT_SYMBOL	 vmlinux 0x9e2737f0	acpi_install_interface_handler
+EXPORT_SYMBOL	 vmlinux 0x9e46200d	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e5e750d	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e6a1f0f	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x9e74a514	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL	 vmlinux 0x9e838aa6	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0x9e86e5d9	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x9e882db2	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x9e8c9e75	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x9e9e1ee9	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea06b3e	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9eaef168	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x9eb9c34e	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x9ebd45ba	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed7c847	brcmstb_get_family_id
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9ef59bbb	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0x9f3f8d11	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4f2aa3	acpi_gbl_FADT
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f5b472d	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x9f67c8b7	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x9f6d7209	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x9f6e7b07	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x9f7c0bb1	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x9f7d7dbb	logic_outsw
+EXPORT_SYMBOL	 vmlinux 0x9f7e2fbe	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x9f96504d	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa4bf5b	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fa87dcf	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x9faff7e8	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fb92d7c	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x9fc2bad7	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x9fc2cb1a	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0x9fd026d0	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x9fd763bf	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0x9ffea724	single_release
+EXPORT_SYMBOL	 vmlinux 0xa00aca2a	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xa00d8f91	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0xa02aa74a	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa0832e2c	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa09088f1	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa096b889	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0xa09877db	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xa09ccada	pnp_start_dev
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0cd1590	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xa0d89216	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0e47ec6	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0xa0e80f16	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10d7d0c	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xa11aedb4	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa12daa8d	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0xa1410eda	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xa14cb767	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0xa1599e06	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xa15a6415	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xa16df1cc	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0xa196f3dd	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xa1a29740	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xa1abb015	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xa1b280a0	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1dbe74f	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1e3c353	pnp_disable_dev
+EXPORT_SYMBOL	 vmlinux 0xa2035ac6	qcom_scm_set_warm_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa20a6e84	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xa220e948	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xa2326c49	acpi_remove_table_handler
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa2528cc9	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa27101da	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0xa28bd188	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2901713	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0xa2951a54	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xa2bf7c00	mr_dump
+EXPORT_SYMBOL	 vmlinux 0xa2e4bcff	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0xa30f3ee6	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xa3210bb9	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xa3347fd2	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xa33c0eac	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xa390a7a7	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0xa3948d9f	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0xa3963a84	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0xa397b5ff	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xa3adb3a1	rproc_add
+EXPORT_SYMBOL	 vmlinux 0xa3b8e8d0	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0xa3cefaa0	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0xa3da1a9a	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xa3dc32ee	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0xa3ecf6d2	__quota_error
+EXPORT_SYMBOL	 vmlinux 0xa3edf860	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xa3f85b19	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xa4017fec	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xa403d79c	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0xa40ff01b	acpi_dbg_layer
+EXPORT_SYMBOL	 vmlinux 0xa42487be	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xa43c4850	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xa43f4af1	rpmh_write_batch
+EXPORT_SYMBOL	 vmlinux 0xa463649a	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xa4881113	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xa488407b	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xa4967d6d	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0xa4b42c0f	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xa4d79149	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0xa4dc6306	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xa4ed73f5	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xa4ee8333	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xa4f8b283	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0xa4ffe3c2	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0xa510dd61	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xa52acc6b	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xa52bedf6	xenbus_dev_request_and_reply
+EXPORT_SYMBOL	 vmlinux 0xa5328c96	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa591b9b7	pnp_register_card_driver
+EXPORT_SYMBOL	 vmlinux 0xa5976e4f	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xa5a1ed87	_dev_err
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5b065d0	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xa5b67bc1	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xa5bf73f7	free_netdev
+EXPORT_SYMBOL	 vmlinux 0xa5bf756e	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xa5c007fc	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xa5d5b520	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xa5e1d455	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xa5f7cf37	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0xa5fb613e	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa60caca1	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa635595a	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xa639582d	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0xa64258e9	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xa648aa02	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xa6496b1c	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0xa65da54f	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xa6647ed9	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa685ff00	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xa68a99a4	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0xa68f0ce7	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xa693b649	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0xa6b3bd09	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xa6baaa9b	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xa6bc5fc5	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xa6beb4ee	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0xa71acc92	fman_port_config
+EXPORT_SYMBOL	 vmlinux 0xa72035f9	xa_get_order
+EXPORT_SYMBOL	 vmlinux 0xa734e7b1	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0xa74b44c4	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa755b896	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa75b6072	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0xa7662bfe	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xa76c0dcd	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa7835f1f	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0xa785c458	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7aebaa1	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0xa7d5f92e	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7fffc11	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0xa80a4dc4	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xa80ff3fc	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xa8181adf	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xa81a3222	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xa822dc1f	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa853396b	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xa8585b1f	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xa85a3e6d	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa877f8ef	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xa8869b85	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xa8920809	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xa896084b	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0xa897e3e7	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa89a5ac8	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8bab13c	iunique
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8d4671e	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0xa8e6933a	qdf2400_e44_present
+EXPORT_SYMBOL	 vmlinux 0xa8e8d540	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xa8f45fc9	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa906feab	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa91591ae	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa93c0cfe	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xa9534f5e	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa97ca8ca	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xa98516c0	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0xa9966f63	init_net
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9afc798	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xa9b61b25	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0xa9dca1c9	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xa9e9b4b9	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xaa00fdc0	ec_transaction
+EXPORT_SYMBOL	 vmlinux 0xaa0a976b	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0xaa0fd03b	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0xaa11a7a3	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xaa2bdffb	dump_align
+EXPORT_SYMBOL	 vmlinux 0xaa341905	acpi_bios_exception
+EXPORT_SYMBOL	 vmlinux 0xaa3d905f	meson_sm_call
+EXPORT_SYMBOL	 vmlinux 0xaa3ea8fa	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xaa57efbe	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa70068e	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xaa748aba	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0xaa74e78f	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xaa759781	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0xaa83013b	ether_setup
+EXPORT_SYMBOL	 vmlinux 0xaa85951d	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xaaa8af88	build_skb
+EXPORT_SYMBOL	 vmlinux 0xaab6f897	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0xaabd34d0	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xaac36b85	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaada8340	km_query
+EXPORT_SYMBOL	 vmlinux 0xaae33ca8	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL	 vmlinux 0xaaf6fd73	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab01ee26	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xab0775e0	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xab0cf162	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0xab16a474	iommu_put_dma_cookie
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab4ff6b6	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0xab580557	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab67a0ac	dql_init
+EXPORT_SYMBOL	 vmlinux 0xab699d66	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab71fcf9	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab95d041	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xab9c4fcd	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabc9a22d	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabd7333b	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac02b5f0	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0xac0427f6	md_error
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac4f33a8	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0xac537ac2	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xac5d70bd	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac65b64f	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0xac707754	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0xac714e3f	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0xac7a8b9b	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xac81cfcc	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0xac839f9a	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac9a5155	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0xacaa4c72	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacc1ff0d	qman_volatile_dequeue
+EXPORT_SYMBOL	 vmlinux 0xacc44e60	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xace5996f	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xaceab784	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0xacebd162	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad113da8	request_firmware
+EXPORT_SYMBOL	 vmlinux 0xad290c46	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xad2de9cf	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xad3ea04c	qman_p_irqsource_remove
+EXPORT_SYMBOL	 vmlinux 0xad6ba40e	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad975229	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0xad9901ae	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xada170a8	fman_get_pause_cfg
+EXPORT_SYMBOL	 vmlinux 0xada1d168	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0xada31e57	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc06872	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xadc6d6a0	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xade4c43a	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0xaded0dcf	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xadf11b48	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae019d7a	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xae17ceb8	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xae27585b	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae3281ec	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xae39d019	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xae5a04bb	acpi_evaluate_dsm
+EXPORT_SYMBOL	 vmlinux 0xae69eee7	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xae742bb5	qman_enqueue
+EXPORT_SYMBOL	 vmlinux 0xae7e3a35	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xaeb11b97	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xaebd12f0	acpi_get_name
+EXPORT_SYMBOL	 vmlinux 0xaebea323	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xaed77d4c	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0xaed940ee	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xaf20ee45	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xaf235850	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0xaf353959	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf507de1	__arch_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0xaf5f946c	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf825d76	bmap
+EXPORT_SYMBOL	 vmlinux 0xaf8b7a91	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xafbf7cbe	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xafc73f29	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0xafd0defe	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xaff384be	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xaffac5c2	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xb00d2416	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xb011d88a	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0xb014d2ad	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb03750fa	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0xb03b1f68	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05b58ed	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb061a98a	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xb0628488	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0xb0678c05	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xb0793cd1	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xb0874fca	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0bf2343	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0xb0c5e247	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xb0db7d3f	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0e1db67	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0xb0ebedba	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb116f18e	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb126636d	kern_path
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb133949f	udp_prot
+EXPORT_SYMBOL	 vmlinux 0xb1344bf1	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0xb146c2ba	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb15ab250	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb1765e2b	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xb18535de	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xb19e4880	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xb1a49a89	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xb1baa6c6	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1c425b4	inet_getname
+EXPORT_SYMBOL	 vmlinux 0xb1cb91b8	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xb1db9a69	fsl_ifc_find
+EXPORT_SYMBOL	 vmlinux 0xb1dd15f8	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb1ef3a72	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xb1fdf700	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0xb211758a	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0xb21f4a04	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb235bc8f	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xb2605f0e	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0xb28f2487	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xb290c578	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xb295e65e	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0xb29a26cf	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0xb2aa21a2	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2bcb088	acpi_current_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xb2d64f6f	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0xb2e762b9	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xb2ead97c	kimage_vaddr
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb304b705	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb308e4cc	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb3229319	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xb32728bb	qcom_scm_iommu_secure_ptbl_init
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb37410d6	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xb384ca2e	cpu_hwcap_keys
+EXPORT_SYMBOL	 vmlinux 0xb38589e3	kobject_del
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3e1042d	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb3f81523	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0xb4043948	acpi_execute_simple_method
+EXPORT_SYMBOL	 vmlinux 0xb404caeb	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0xb40e7a2b	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0xb4127026	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb42b519b	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0xb4333e84	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0xb45448bf	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0xb4577003	acpi_dev_present
+EXPORT_SYMBOL	 vmlinux 0xb477c1c6	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f7afc7	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0xb51ec3c1	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0xb52306bb	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0xb52cb0e3	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xb5355b34	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0xb53f2810	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xb55da1fe	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb57c00ff	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xb57cd17d	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xb57f1e27	fman_port_disable
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5a5f22f	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5ac91ba	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0xb5ae0f7c	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0xb5bf662d	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xb5c69cee	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5f794ec	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xb5f8e13e	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xb5ffd3a9	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xb6009fe8	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0xb61442b4	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0xb6335cbf	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb63d7f14	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0xb647f36c	dev_printk
+EXPORT_SYMBOL	 vmlinux 0xb6480e05	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0xb65118b4	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xb654ef65	acpi_os_read_port
+EXPORT_SYMBOL	 vmlinux 0xb65760cc	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xb6628417	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xb676ab66	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xb676cd0b	qman_create_fq
+EXPORT_SYMBOL	 vmlinux 0xb678226e	can_nice
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb68fcb47	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0xb68ff256	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb699eede	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0xb69f7d92	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6b8abc6	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xb6d728bd	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6fec7e4	dump_skip
+EXPORT_SYMBOL	 vmlinux 0xb715a226	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb72c10f5	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xb735a517	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0xb737b185	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb74f2a9a	seq_release
+EXPORT_SYMBOL	 vmlinux 0xb7657b2c	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7955e46	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0xb7ad63d7	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xb7b08dc2	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7cc601d	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xb7cecfde	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0xb7daa9b3	skb_put
+EXPORT_SYMBOL	 vmlinux 0xb7dc182e	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xb80d13f9	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xb8219a82	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0xb82c4a99	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb8332cfe	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xb842099e	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xb8453468	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xb8515c4d	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0xb8605d9c	qman_p_static_dequeue_add
+EXPORT_SYMBOL	 vmlinux 0xb861f5b9	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xb872d936	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0xb88b3a0e	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xb8994160	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb89e43f2	qman_query_fq_np
+EXPORT_SYMBOL	 vmlinux 0xb8ae73bc	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b418b1	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xb8b9300c	of_iomap
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8cc056a	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xb8cc9685	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xb8dc620b	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xb8e99265	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xb8f0bfe9	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xb8f6a756	rproc_free
+EXPORT_SYMBOL	 vmlinux 0xb903738e	sdei_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb92669d3	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb95f4a33	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xb975c70a	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0xb9ad66e4	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0xb9af1d0d	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xb9bf6c97	fman_port_bind
+EXPORT_SYMBOL	 vmlinux 0xb9d1c96e	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9f025b1	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xb9f73e5c	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0xb9f8bbb2	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xb9fc381a	qcom_scm_hdcp_req
+EXPORT_SYMBOL	 vmlinux 0xba0eb0cf	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba14be96	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0xba14cb3e	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0xba1d93a4	of_node_put
+EXPORT_SYMBOL	 vmlinux 0xba31b950	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0xba322572	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0xba346111	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba59cc27	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0xba5b73cf	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xba72184e	proto_register
+EXPORT_SYMBOL	 vmlinux 0xba9108da	file_modified
+EXPORT_SYMBOL	 vmlinux 0xbac06701	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0xbac58131	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xbadacc04	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0xbae01c36	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0xbae77bb8	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0xbaf258f2	acpi_processor_notify_smm
+EXPORT_SYMBOL	 vmlinux 0xbaf2ff5a	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xbaf4f4f7	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0xbafe7b9a	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb09a5f6	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0xbb21260e	convert_ifc_address
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb2e901b	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0xbb3107d9	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0xbb340ab9	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3d6efe	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb53bbf6	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0xbb67395d	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xbb687724	bman_new_pool
+EXPORT_SYMBOL	 vmlinux 0xbb71b681	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0xbb7c94cf	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xbb846983	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0xbb88bd77	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0xbb8a7a0f	is_acpi_data_node
+EXPORT_SYMBOL	 vmlinux 0xbb9c09ce	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xbb9daaba	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xbba1bc89	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbbcc6748	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xbbcf06ea	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xbbe079c3	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbbee2302	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0xbbfb3701	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xbc01193e	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL	 vmlinux 0xbc2a79f7	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xbc305191	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xbc3d0b13	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xbc55a435	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0xbc5f55c8	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xbc6c131f	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xbc92abbc	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xbc953cf9	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb1a833	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc30406	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcc7207d	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xbccc9621	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xbcce48c7	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xbcd1ffbb	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xbcd6fbe4	bio_init
+EXPORT_SYMBOL	 vmlinux 0xbce1c30a	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0xbcea2078	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0xbd07379c	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xbd085a33	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xbd20cf39	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xbd2a1d05	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0xbd3b215d	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd4ea7c7	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0xbd639098	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd7b0bd9	simple_open
+EXPORT_SYMBOL	 vmlinux 0xbd8ae2d2	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbdecdde5	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xbe3a5ffe	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0xbe41c7e8	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xbe49252c	acpi_os_write_port
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe596df0	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5bd6bc	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe5eac26	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xbe686d68	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xbe6a866f	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xbe7342b1	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0xbe7e05a8	acpi_tb_install_and_load_table
+EXPORT_SYMBOL	 vmlinux 0xbe824a1c	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0xbe82b973	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xbe877150	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xbe92db56	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xbeca2ed2	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xbecec82c	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0xbed4ee76	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xbed557c5	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0xbedd766a	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0xbedd8dfb	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbefa51a3	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xbefaa18c	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xbf12d595	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xbf3e0c4e	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0xbf6644a1	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0xbf749e25	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xbf7781dd	__put_page
+EXPORT_SYMBOL	 vmlinux 0xbf841ac1	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xbf8eb849	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbf9d3154	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0xbfa127a6	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xbfa89020	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xbfaba199	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xbfc051ce	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xbfcbc0d2	stmp_reset_block
+EXPORT_SYMBOL	 vmlinux 0xbfce905e	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbfee3db2	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xc0047cc5	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0xc012bce7	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0xc01346ad	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc02cd2a7	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0xc05aeaf5	phy_stop
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc081450a	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0xc084fe70	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xc0858c39	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0e56baa	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xc0f0f8a0	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xc0faf8b6	flush_signals
+EXPORT_SYMBOL	 vmlinux 0xc0fb8dca	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc1304315	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0xc1394660	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xc13fd31f	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xc148bfac	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xc14b2277	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xc14dc168	acpi_get_data
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc156c981	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc1579516	fman_port_enable
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc164a51c	keygen_init
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1866acf	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xc191d3d3	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0xc1ac3004	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0xc1acaf97	bdget
+EXPORT_SYMBOL	 vmlinux 0xc1d434bb	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xc1d6b85e	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1dd69d9	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0xc2050974	fman_port_get_tstamp
+EXPORT_SYMBOL	 vmlinux 0xc221d03a	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0xc223fbc1	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0xc228129e	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc2310cdc	logic_inl
+EXPORT_SYMBOL	 vmlinux 0xc23c8273	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xc24b67dc	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0xc2562d5f	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc277d7f1	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc295a0c2	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0xc29adf6e	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a17ebe	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xc2ab7d67	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xc2b347b7	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xc2d14a83	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e84e43	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0xc2ee4c11	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xc2f52274	__lshrti3
+EXPORT_SYMBOL	 vmlinux 0xc2ffaa0e	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc3090e8b	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3114bd7	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xc31cf72c	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc339e94b	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xc35f9b04	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0xc36818c5	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0xc36a3bd4	__acpi_handle_debug
+EXPORT_SYMBOL	 vmlinux 0xc36b060f	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xc36e2a99	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xc3762aec	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xc376ff69	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc386b82c	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc3914fc0	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0xc3aa1fd1	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0xc3afb16b	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xc3bc72ad	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xc3d0fc06	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0xc3ed76c2	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xc3efaf03	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xc3f3b7e4	d_delete
+EXPORT_SYMBOL	 vmlinux 0xc3ff38c2	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xc40b5dac	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc423d291	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xc42dcb99	acpi_evaluate_ost
+EXPORT_SYMBOL	 vmlinux 0xc438cac6	__bforget
+EXPORT_SYMBOL	 vmlinux 0xc44cbfbc	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xc45390eb	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xc45fadaa	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc491cf03	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xc4a6feb5	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xc4b21d2f	qman_get_affine_portal
+EXPORT_SYMBOL	 vmlinux 0xc4f9ae93	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xc5064aa0	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0xc50e35ec	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0xc51424de	mii_check_link
+EXPORT_SYMBOL	 vmlinux 0xc5165917	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0xc526280d	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xc528a49a	queued_write_lock_slowpath
+EXPORT_SYMBOL	 vmlinux 0xc52d2d11	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0xc536613c	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xc560bdf5	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0xc56a41e6	vabits_actual
+EXPORT_SYMBOL	 vmlinux 0xc572567d	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc5788595	pnp_is_active
+EXPORT_SYMBOL	 vmlinux 0xc57c48a3	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5aab8cd	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5be98c4	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xc5c5cad0	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0xc5c6e147	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xc5d74c14	get_super
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60e3cfa	pid_task
+EXPORT_SYMBOL	 vmlinux 0xc61cbcb6	finish_open
+EXPORT_SYMBOL	 vmlinux 0xc622556f	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc6382e80	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xc642d900	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xc64d9d19	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xc6505252	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66b48a6	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc68eb947	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0xc6904409	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xc690dda7	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0xc6bcfcfd	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc708f1fe	ec_write
+EXPORT_SYMBOL	 vmlinux 0xc70ec120	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc72ad71a	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xc73ab1a8	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0xc73b2ce6	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xc75bf1ca	tso_start
+EXPORT_SYMBOL	 vmlinux 0xc764680b	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xc779c4b8	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc7952957	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xc7986c6b	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc79d6900	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0xc7a3a2d6	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7ac21e0	of_match_device
+EXPORT_SYMBOL	 vmlinux 0xc7b0d98d	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0xc7b354f9	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7cd47c2	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xc7cf650f	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7d91beb	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0xc7e78a4b	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xc80ab559	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xc81b70e0	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc838c3f5	__ashrti3
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84d5c1f	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xc856d336	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xc85a27e9	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xc866a86a	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc889c83f	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc89c9f74	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8ae1738	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xc8c2dda2	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0xc8cffec1	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0xc8dd5df9	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xc8e7622c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0xc923edb9	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xc93e8461	acpi_get_event_resources
+EXPORT_SYMBOL	 vmlinux 0xc940dfee	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xc94137ef	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc96de8cf	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0xc96e5aa7	module_layout
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc992a461	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xc9957204	__arch_copy_in_user
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9b9fe33	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca22de5d	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xca332ce0	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca587c13	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca6cd651	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xca78a707	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca96fc2d	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xca9beaa4	__xa_store
+EXPORT_SYMBOL	 vmlinux 0xcaa474f7	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xcabd42d0	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xcad177a0	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xcad1aca8	acpi_exception
+EXPORT_SYMBOL	 vmlinux 0xcad69235	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0xcae552eb	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xcaf0bd38	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf8951d	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb0cb035	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xcb1346c6	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0xcb1c484a	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xcb26b588	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3f7511	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xcb43ac29	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xcb4bd897	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xcb534e0c	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xcb6c895d	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL	 vmlinux 0xcb7898cf	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0xcb80f4c7	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xcb9e1a22	acpi_os_map_generic_address
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbae6c7a	acpi_lid_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xcbb9ab36	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0xcbba5223	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xcbbea9ba	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd27337	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd90dcc	cdev_init
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcc1b882a	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5c2df4	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcca5839d	xen_vcpu_id
+EXPORT_SYMBOL	 vmlinux 0xccbf0ae5	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccd95600	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xccec2fc0	ps2_command
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccf96ec4	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd01b8e6	acpi_attach_data
+EXPORT_SYMBOL	 vmlinux 0xcd0de0af	fman_get_mem_region
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd32f197	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xcd44797b	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xcd8cde69	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xcd8ce890	acpi_format_exception
+EXPORT_SYMBOL	 vmlinux 0xcdad939c	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xcdafe241	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcddf45c2	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xce002f8a	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xce036f24	sg_split
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce349d10	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xce38eff1	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xce41b547	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce56fd73	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xce581c7c	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce6477b2	acpi_pci_osc_control_set
+EXPORT_SYMBOL	 vmlinux 0xce6e5708	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xce76c257	acpi_get_irq_routing_table
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce807a25	up_write
+EXPORT_SYMBOL	 vmlinux 0xce8b3b44	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0xce966ca4	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb65fd6	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xcecf8525	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0xced0f4d4	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xcef64a51	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xcefca885	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf15f248	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf2a6966	up
+EXPORT_SYMBOL	 vmlinux 0xcf364848	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xcf4fdd4d	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xcf5721ab	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0xcf7b56ab	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0xcf7ce901	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0xcf83d83a	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xcf9b177b	acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfad9e7d	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xcfd13658	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0xcfd884a8	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0xcfdfe4ad	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xcfe0d269	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0xcfeb98a8	acpi_processor_register_performance
+EXPORT_SYMBOL	 vmlinux 0xd03bf207	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0xd03cd9c8	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd052214f	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0762ba9	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xd07bae16	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0xd08454ff	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xd087e94a	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0xd0a06eb2	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a81e07	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b74705	acpi_install_interface
+EXPORT_SYMBOL	 vmlinux 0xd0bc4ab9	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0d46df8	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd101f5ec	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xd103feed	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xd10fbe8b	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xd119a359	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xd1233a81	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd13d1c59	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xd1518d7c	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xd16f71d0	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0xd177f38e	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd194ddf9	acpi_gpe_count
+EXPORT_SYMBOL	 vmlinux 0xd1b18d3e	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0xd1cb7f01	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd2051916	qcom_scm_cpu_power_down
+EXPORT_SYMBOL	 vmlinux 0xd209b0d6	acpi_device_set_power
+EXPORT_SYMBOL	 vmlinux 0xd20abeba	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0xd2237016	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xd25a4201	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xd25bc5d4	csum_tcpudp_nofold
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd2619036	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd2bca91d	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd2ea49b8	acpi_leave_sleep_state_prep
+EXPORT_SYMBOL	 vmlinux 0xd2f28e21	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xd3105799	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd3304668	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0xd33a3ebb	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0xd34abf35	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd3559ef4	__memset
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35cdc22	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd3782336	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xd378fe25	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0xd39a1400	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0xd39fbc4e	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0xd3ab5009	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0xd3d42ee4	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xd3daa1d1	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xd3e5641f	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xd3e81724	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd3e94c1d	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f30811	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xd3fba534	qcom_scm_set_cold_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd4152a78	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0xd4308a4d	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd4339de8	qcom_scm_pas_init_image
+EXPORT_SYMBOL	 vmlinux 0xd43740cf	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xd444996e	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0xd44f62ab	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xd44fcfa0	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd46f7eaa	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd4843e8e	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a69d20	qm_channel_caam
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4bb58a7	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0xd4c312ff	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0xd4ce8f0b	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0xd4d1983c	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xd4dc7b2c	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xd4dcb11b	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xd4f715f1	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xd4f8ad45	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fbca80	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xd5047b87	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd528b9a1	vmap
+EXPORT_SYMBOL	 vmlinux 0xd53275c1	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xd5346bfc	acpi_get_possible_resources
+EXPORT_SYMBOL	 vmlinux 0xd54d43c5	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0xd55fedef	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xd583ccb4	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xd58504d1	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xd58c2a76	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd597192b	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5ce2336	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xd5cfaf53	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xd5f2d6d6	get_acl
+EXPORT_SYMBOL	 vmlinux 0xd5fc7328	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xd5fd90f1	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0xd60146d7	unregister_console
+EXPORT_SYMBOL	 vmlinux 0xd605bfc2	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd60e777b	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xd6153a46	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xd617dd31	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xd61f4506	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xd62ab56f	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xd63dbeb3	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd643239a	acpi_leave_sleep_state
+EXPORT_SYMBOL	 vmlinux 0xd64b5d2c	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xd6663f46	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xd6670b1d	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xd66c8184	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0xd66ea334	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xd67a93f9	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd69eed17	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6c170ae	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6d373b5	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xd6d81493	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6f77de9	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd6fdfc83	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0xd70caa4e	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd70f62b6	acpi_os_execute
+EXPORT_SYMBOL	 vmlinux 0xd71a1fb6	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0xd72d5eaf	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xd734ae3f	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd73f27bf	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0xd73fc2fc	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xd746ac64	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xd75717a8	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xd77cf757	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xd77f0606	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0xd79e7e01	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0xd7c55de6	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xd7c73a70	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d93cb7	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7f0c452	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xd7ff1b8a	__ashlti3
+EXPORT_SYMBOL	 vmlinux 0xd8026028	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd8131274	qman_alloc_cgrid_range
+EXPORT_SYMBOL	 vmlinux 0xd82c8cc5	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xd83eff57	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd87cf822	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0xd89289ed	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a09127	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8ac9d37	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xd8c19322	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0xd8c58a05	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0xd8df08ac	acpi_handle_printk
+EXPORT_SYMBOL	 vmlinux 0xd90b55ec	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xd91b3fe7	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xd91ede97	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xd92deb6b	acpi_evaluate_object
+EXPORT_SYMBOL	 vmlinux 0xd939e054	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xd9491c14	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xd956933d	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9a5ea54	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xd9aac1e1	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xd9b5e5e8	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0xd9b85ef6	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd9ca04b1	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xd9ca3f33	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0xd9cd2f84	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xd9d47279	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9da7223	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0xd9e8aee7	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xd9f5e083	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0xd9f9cafa	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xd9ff4ffc	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0xda0a38a1	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xda254bc7	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0xda311a05	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0xda33b898	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda3d58e8	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xda41cba9	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xda5df0b6	skb_append
+EXPORT_SYMBOL	 vmlinux 0xda67c666	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0xda6e0497	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda82927b	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdab6785e	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdacaca2d	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xdae57554	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdaeb1731	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xdaf0f6f7	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0xdaf87a93	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xdaf9c62b	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xdb008f71	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0xdb118a7d	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xdb222aa0	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xdb3b9bb6	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0xdb3e7284	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xdb3ee784	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xdb44b93a	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xdb55c076	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xdb6582a3	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb8cc31d	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xdbb4d21d	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0xdbcf041a	acpi_install_address_space_handler
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf674f5	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc290adb	start_tty
+EXPORT_SYMBOL	 vmlinux 0xdc2c9155	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xdc34158f	fman_port_init
+EXPORT_SYMBOL	 vmlinux 0xdc34500a	kobject_init
+EXPORT_SYMBOL	 vmlinux 0xdc394eaf	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xdc3c9125	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc44b186	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xdc451061	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc501c67	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc6068f6	pnp_get_resource
+EXPORT_SYMBOL	 vmlinux 0xdc62a268	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0xdc73f043	sock_efree
+EXPORT_SYMBOL	 vmlinux 0xdca8c3d4	logic_outb
+EXPORT_SYMBOL	 vmlinux 0xdcb0829e	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xdcb31a45	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0xdcb764ad	memset
+EXPORT_SYMBOL	 vmlinux 0xdccd0d6b	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xdcd2651c	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xdceb8a4f	rproc_put
+EXPORT_SYMBOL	 vmlinux 0xdd18a993	acpi_check_dsm
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd2db011	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd3c3fa6	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xdd3e6c18	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xdd51a380	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0xdd57a6eb	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0xdd5b5fdf	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0xdd5cda3b	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xdd62d1f6	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd74da06	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xdd7d59a5	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0xdd7d8de0	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xdd7e3192	qcom_scm_pas_auth_and_reset
+EXPORT_SYMBOL	 vmlinux 0xdd8166a1	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd894baa	seq_escape
+EXPORT_SYMBOL	 vmlinux 0xdd90fcbe	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xdda06c0b	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xdda0e6c5	mii_check_media
+EXPORT_SYMBOL	 vmlinux 0xddad7952	acpi_dbg_level
+EXPORT_SYMBOL	 vmlinux 0xddc9e10e	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xdde8a656	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0xddfbcc92	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0xde293f9e	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xde4a70b3	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0xde4d76a7	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xde500fd1	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0xde7687e2	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xde90f75b	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xdea9cdaf	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0xdebc9044	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0xdec452d7	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xdeca03cd	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xded6a415	acpi_get_object_info
+EXPORT_SYMBOL	 vmlinux 0xdee365b0	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf05be4a	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf3084ed	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0xdf36914b	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xdf422b41	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xdf4925a3	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf6b082f	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf87ae96	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xdf8c695a	__ndelay
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf9fa103	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xdfab715e	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xdfadb299	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xdfb14029	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0xdfb3de54	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xdfc6a02b	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdfe14aac	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0xdfe427b3	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe02ba436	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xe02c9c92	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xe03a689d	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xe040cd57	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0xe044dc5a	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0xe045fed3	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xe0494072	fman_reset_mac
+EXPORT_SYMBOL	 vmlinux 0xe04b9103	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0xe07e5f44	acpi_reconfig_notifier_unregister
+EXPORT_SYMBOL	 vmlinux 0xe082e88d	acpi_check_address_range
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe0a06b8d	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0a665ea	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0xe0aac045	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0cbffca	write_one_page
+EXPORT_SYMBOL	 vmlinux 0xe0d7dbf3	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xe0e3cea6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe0e6f279	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xe0ee27da	fman_get_revision
+EXPORT_SYMBOL	 vmlinux 0xe0efd45d	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe125f8be	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe12fb0d3	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0xe138fb8c	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe1560f9f	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0xe159a0c7	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xe1670229	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xe1876822	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0xe18a4271	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0xe19b6a5d	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xe1c434e3	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0xe1c47273	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xe1d2ca11	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe20aecee	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xe20d3993	first_ec
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe22f3d85	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0xe2421f8d	netdev_err
+EXPORT_SYMBOL	 vmlinux 0xe25fe514	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xe276d338	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0xe2883419	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xe28ec2fd	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0xe29529cf	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe2adcf1a	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xe2c70279	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0xe2ca9235	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0xe2cda8a1	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e0c7c6	__flush_icache_range
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30ea4fd	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xe311cb19	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0xe3184cba	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xe31d1de1	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xe32a8d6b	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe33c6ce0	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xe33f8be9	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0xe34d0939	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0xe36008e8	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0xe3680774	iget_failed
+EXPORT_SYMBOL	 vmlinux 0xe373da45	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0xe37a83e1	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xe3887069	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0xe38b8ad9	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xe39c66dc	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3a858f8	acpi_bus_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe3a8ef37	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0xe3c24bd0	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0xe3de2532	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f22ee5	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe4080d96	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xe40976c0	pnp_range_reserved
+EXPORT_SYMBOL	 vmlinux 0xe40c37ea	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0xe429014d	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xe43010f2	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xe43aa14e	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xe43e2204	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe4454d24	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xe467abfd	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0xe472eddb	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xe4a2fa1e	mii_ethtool_gset
+EXPORT_SYMBOL	 vmlinux 0xe4a5ee79	to_ndd
+EXPORT_SYMBOL	 vmlinux 0xe4bbc1dd	kimage_voffset
+EXPORT_SYMBOL	 vmlinux 0xe4c6c951	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xe4cc17dd	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xe4d205c1	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4db8591	kset_register
+EXPORT_SYMBOL	 vmlinux 0xe4e65dc5	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0xe50fe4bb	acpi_device_hid
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe5408c3c	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0xe544b1d6	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0xe54eec7d	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xe559930f	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe574d85a	clk_get
+EXPORT_SYMBOL	 vmlinux 0xe5795861	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe591e639	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0xe5a27c39	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c60bd2	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5cab692	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xe607e171	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe6333770	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xe6490c56	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0xe671fa74	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0xe68cebc0	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6987edc	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xe69b5440	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xe6a6b8f8	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0xe6b24ab2	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xe6c0f1ba	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xe6cd7923	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xe6f7d5ea	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xe6fdb040	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xe7257ab8	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xe7296c70	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe732c727	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xe74aff2d	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0xe74c7d0b	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xe757fb53	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xe7698027	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0xe76e4fd2	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xe7a02573	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xe7a2321e	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xe7a6b713	pnp_device_detach
+EXPORT_SYMBOL	 vmlinux 0xe7b0353b	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xe7b0d05d	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xe7b777ed	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xe7cfddbc	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe82f9850	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xe843dc8a	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xe8467850	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xe855eb15	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xe856be9e	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xe85f2123	acpi_tb_unload_table
+EXPORT_SYMBOL	 vmlinux 0xe86e07fb	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xe89d07bd	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0xe89d2df5	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xe8aae82b	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xe8b81ac4	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0xe8ced791	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xe8cf666a	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xe8d70d40	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xe8fb28be	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xe8fbf4fa	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xe9054e1b	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe919800c	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xe93bcc2b	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xe946b162	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe968bb0d	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xe979ab17	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xe97bbd7b	mii_check_gmii_support
+EXPORT_SYMBOL	 vmlinux 0xe992be0a	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xe99bc77e	input_event
+EXPORT_SYMBOL	 vmlinux 0xe9a524a0	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xe9aa5b99	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xe9af7397	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe9cd2faa	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea14c1f8	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0xea231bdc	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea4e2970	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xea6dce97	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea8b5586	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0xea9154b7	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0xea921822	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0xea92b4ae	registered_fb
+EXPORT_SYMBOL	 vmlinux 0xeaa43d32	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xeab12f5e	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xeab6f4c4	acpi_check_resource_conflict
+EXPORT_SYMBOL	 vmlinux 0xead8c400	bman_get_bpid
+EXPORT_SYMBOL	 vmlinux 0xeadc6b39	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL	 vmlinux 0xeae5d787	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xeae89763	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeb03d627	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xeb04e6d5	km_report
+EXPORT_SYMBOL	 vmlinux 0xeb1fbd24	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb2838c0	vga_put
+EXPORT_SYMBOL	 vmlinux 0xeb3075d3	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3fb53f	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb4a5601	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0xeb52aa68	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xeb692434	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0xeb6d91d6	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0xeb7d6a70	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xeb7f6046	acpi_get_devices
+EXPORT_SYMBOL	 vmlinux 0xeb8bb58f	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xeb93b850	padata_start
+EXPORT_SYMBOL	 vmlinux 0xeb97ff4f	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0xeb9bc578	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba9f554	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xebbe4632	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebf17302	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0xebf52d47	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xec01448a	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xec1c1797	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec2b8a42	acpi_walk_namespace
+EXPORT_SYMBOL	 vmlinux 0xec2e1c8f	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xec41716a	qman_alloc_fqid_range
+EXPORT_SYMBOL	 vmlinux 0xec4a5aef	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec55bb31	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xec60c767	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0xec6a470a	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0xec7eb29b	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xec8c5a9e	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xec9d49cf	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xeca3e066	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xecc9ad80	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0xeccc9a95	param_get_int
+EXPORT_SYMBOL	 vmlinux 0xecd6bf11	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0xecdef30a	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xece277fe	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecfd68ef	acpi_get_node
+EXPORT_SYMBOL	 vmlinux 0xed00c4fb	acpi_os_printf
+EXPORT_SYMBOL	 vmlinux 0xed25c146	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xed43a9ea	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xed45faae	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0xed55f929	acpi_os_unmap_generic_address
+EXPORT_SYMBOL	 vmlinux 0xed5be55c	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed634864	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xed64fa1f	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed8a2d95	memset64
+EXPORT_SYMBOL	 vmlinux 0xedab60ee	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xedac06e2	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xedadd1ef	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0xedb965b9	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedccea15	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xede598da	of_get_address
+EXPORT_SYMBOL	 vmlinux 0xede8e89e	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xedf0b07a	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xedf36653	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xedf76ed2	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xedff4be5	acpi_load_table
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee10ea23	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xee24b74b	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xee27cafc	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee2d9e1e	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee744a15	fd_install
+EXPORT_SYMBOL	 vmlinux 0xee7d7deb	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL	 vmlinux 0xee85e637	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xeeb72254	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0xeec59d3a	acpi_match_device_ids
+EXPORT_SYMBOL	 vmlinux 0xeed289fb	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xeed6f82c	mii_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xeee1d5bd	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xeef38cea	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0xef024e5f	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xef2e321a	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xef327fef	bdgrab
+EXPORT_SYMBOL	 vmlinux 0xef475c38	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0xef7d99ad	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xef8ac53d	qcom_scm_restore_sec_cfg
+EXPORT_SYMBOL	 vmlinux 0xef90853d	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0xef92869c	put_disk
+EXPORT_SYMBOL	 vmlinux 0xef936814	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xef9ba059	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xefa70e8b	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefc09ae9	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xefcea2e7	acpi_warning
+EXPORT_SYMBOL	 vmlinux 0xefd0f3b5	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xefd4d060	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xefee932c	acpi_get_data_full
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf01243b6	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xf02b4ff5	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xf0641816	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf0708ceb	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xf07775a0	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xf07a8f35	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xf0825e4d	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xf0864655	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a1138f	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xf0a595d3	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0xf0b2419f	cmd_db_read_aux_data
+EXPORT_SYMBOL	 vmlinux 0xf0c49379	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xf0d7f33a	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf121991c	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xf159cc63	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0xf15d599e	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xf171c503	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xf1727e4b	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xf17306d6	free_xenballooned_pages
+EXPORT_SYMBOL	 vmlinux 0xf178d709	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xf18300ad	logic_inb
+EXPORT_SYMBOL	 vmlinux 0xf1946b64	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf19ca923	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xf19e67dc	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0xf1b097f2	keyring_search
+EXPORT_SYMBOL	 vmlinux 0xf1b5f962	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xf1b6c33b	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xf1bb5622	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xf1d90e4c	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf2058b6e	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xf21017d9	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xf214ad2b	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xf21e265b	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22a8d83	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xf22f34b3	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0xf2309d42	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf24bc9d7	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xf24f0f6f	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xf2514962	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0xf253eb45	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0xf25e5fa8	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xf261d443	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0xf2669a2c	imx_scu_irq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf26cce5c	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf29403e5	acpi_install_table_handler
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c7efd1	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0xf2cc7ea3	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xf2d8cfbf	send_sig
+EXPORT_SYMBOL	 vmlinux 0xf2e1a7d5	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2f70c25	qman_fq_fqid
+EXPORT_SYMBOL	 vmlinux 0xf306dd09	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xf30953c2	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf3170899	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0xf32e59ad	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf34c67ca	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf379e0cc	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0xf383beb2	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf38ba44d	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3918522	qman_retire_fq
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3958766	file_open_root
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3b02675	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b510a9	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xf3cb7e5e	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0xf3cd7e0a	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0xf3d9725c	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0xf3dff783	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf40e7a73	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xf430bce0	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xf4319833	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0xf439bca1	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xf43d2caa	acpi_remove_interface
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf4594967	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0xf461a708	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf478cc27	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xf4b0dfff	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4b30925	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL	 vmlinux 0xf4b7cb81	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xf4b9ec92	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xf4bcfcca	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c0beef	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xf4c60abb	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xf4c81917	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xf4d468d8	proc_create
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4deed22	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xf4dfa2a4	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f2c1b8	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xf4fdc339	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf547a716	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xf5494cfa	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xf58e6226	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xf5a0c263	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5bfc1a2	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xf5c060f4	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0xf5cd9f6c	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xf5cfe280	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xf5d8c573	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5f319e6	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0xf6065e85	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xf60c8954	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xf629ca49	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0xf6396561	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0xf6401536	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf647c630	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xf65aeb16	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf68b86f8	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xf68d5164	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xf6b72306	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0xf6e14b9c	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf704b3a3	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xf715ee0d	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xf723fe70	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0xf72ce7eb	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf739070a	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0xf746d2ed	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xf74f3629	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf75b81d3	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0xf76843b5	qcom_scm_pas_supported
+EXPORT_SYMBOL	 vmlinux 0xf76adf57	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf77555cd	__memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xf797f927	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0xf7bebe23	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xf7d255ef	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0xf7e2c674	generic_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf7ea6311	qman_p_poll_dqrr
+EXPORT_SYMBOL	 vmlinux 0xf7f05c17	fman_port_use_kg_hash
+EXPORT_SYMBOL	 vmlinux 0xf7f3b891	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0xf7f8168e	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf804388d	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0xf80ab24d	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0xf80f2c27	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812b716	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82d4cac	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf857e365	sock_release
+EXPORT_SYMBOL	 vmlinux 0xf860f673	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0xf8778d31	user_revoke
+EXPORT_SYMBOL	 vmlinux 0xf87af7a3	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf8897677	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xf8927e6b	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8d16038	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf91b89ab	fman_sp_build_buffer_struct
+EXPORT_SYMBOL	 vmlinux 0xf91ea6af	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xf92b4660	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93b68c3	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf953da23	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0xf957a895	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf95c619b	acpi_processor_preregister_performance
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf97d7de2	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf99017f0	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xf99a12fe	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xf99d150b	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9b82075	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9dc985d	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0xf9f109ee	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xf9f83113	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xfa02f3d8	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa15d552	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xfa297415	acpi_map_pxm_to_node
+EXPORT_SYMBOL	 vmlinux 0xfa374e5a	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xfa3767f5	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa3b10d8	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0xfa4a54cc	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0xfa50f120	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa674a32	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0xfa689a8b	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xfa6f839b	msm_pinctrl_remove
+EXPORT_SYMBOL	 vmlinux 0xfa7531a4	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xfa7e45f5	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0xfa7f0204	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa9a8519	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfa9e5357	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xfaa09ec1	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfad5d9b1	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xfaf315a4	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0xfb0176d4	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0xfb0d21d9	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0xfb1a47e1	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xfb1b1335	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0xfb36f0bc	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb3bb3a5	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb48961e	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb746cc9	down_killable
+EXPORT_SYMBOL	 vmlinux 0xfb96a7dc	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbae071d	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbb933f5	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0xfbc2c1e5	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbc720de	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xfbe4b175	qman_create_cgr
+EXPORT_SYMBOL	 vmlinux 0xfbe8ee28	acpi_get_table_by_index
+EXPORT_SYMBOL	 vmlinux 0xfc174b22	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xfc336d2e	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3e02ac	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0xfc3e5c01	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xfc4152fc	ec_read
+EXPORT_SYMBOL	 vmlinux 0xfc44a6ef	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xfc52abc7	qcom_scm_pas_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfc5c46e2	acpi_buffer_to_resource
+EXPORT_SYMBOL	 vmlinux 0xfc6d15fd	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xfc7085ea	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xfc7e2596	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xfc7fad60	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0xfc852f3b	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xfc881b89	fman_port_get_hash_result_offset
+EXPORT_SYMBOL	 vmlinux 0xfc8e3c98	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xfc9cdfda	nla_put
+EXPORT_SYMBOL	 vmlinux 0xfca1415b	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xfca8c227	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0xfcabcf99	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcec94ea	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0xfcff199d	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0xfcff7268	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xfd0a2303	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0xfd34f31b	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xfd5a1d8b	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xfd5e10cd	open_exec
+EXPORT_SYMBOL	 vmlinux 0xfd682269	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xfd716b37	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xfd74c081	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xfd8698ff	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xfd8afd1b	fsl_ifc_ctrl_dev
+EXPORT_SYMBOL	 vmlinux 0xfd94814e	complete_all
+EXPORT_SYMBOL	 vmlinux 0xfd98417f	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdaf373d	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdbd71e9	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0xfdcb4ed3	acpi_os_get_line
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfddadf60	mntget
+EXPORT_SYMBOL	 vmlinux 0xfde670bf	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0xfdfe7c29	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xfe016ca7	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xfe018ece	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe33d817	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe8a112a	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9c8e78	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xfe9ebbbb	acpi_osi_is_win8
+EXPORT_SYMBOL	 vmlinux 0xfea82340	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xfeab9690	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xfeb3e287	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfeb9d9c7	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xfeba1a6c	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xfec2cfd0	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfedd5a2e	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xfee36da8	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfeedf0ea	pps_event
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff090ae6	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0xff0a9394	single_open
+EXPORT_SYMBOL	 vmlinux 0xff0bdc13	done_path_create
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff35a648	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0xff5a0294	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0xff5bd915	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff87cd18	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffb7c514	ida_free
+EXPORT_SYMBOL	 vmlinux 0xffc49cad	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xffd220bf	serio_bus
+EXPORT_SYMBOL	 vmlinux 0xffd92437	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x003d0535	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x05ba79d5	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0c8c52e3	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0cfe9360	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1da0dbe1	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2a636e40	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x34857aa7	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x36b98190	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x42caba3d	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x56132701	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x59afa53b	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5b41e6f3	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6cc629a0	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x958a17c0	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa9b802be	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbb339e77	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdaf6eb6b	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe52ecbfa	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xc0ca2dc4	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xa6f3fc27	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x2f3891ea	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xcf91c1a0	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x44041986	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x732776f3	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x42f60c45	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xa84b3920	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xbfac7e0d	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xdc475f0a	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x392cd458	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x98fd1fce	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x539a96e9	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x3ed740d4	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xf4d22f41	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x1e9f5906	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x5c531118	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xb205757a	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe0d10792	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x0b19957f	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x0e8b2665	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1733504c	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x44210291	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x5e1aa412	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x6043d1c9	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa7ef0bad	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xadf527b0	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb877322d	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc3d42900	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc98456b4	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd3a475b5	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf47638b6	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x506d62d0	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6e2b8d7a	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x812c185f	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x82d68d4a	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8d19623b	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x90bf8302	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x94329cba	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x9718117a	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xab49f091	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xac06880d	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb4118ac5	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xbfb87986	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xdff944c9	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfbf64d70	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x4a8215cd	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x64edabb5	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xb383e7c9	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xdc3ed07e	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x2bbadc74	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x96062e31	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xe235a1f6	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x41749ce2	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x6255cf7d	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x63f2f3c3	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xa97c2a57	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x2a9c1834	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x15d88cdb	acpi_nfit_ctl
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x23ac8cfb	__acpi_nfit_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x2e479c55	acpi_nfit_desc_init
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x4639bcda	acpi_nfit_shutdown
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0x499bbf57	nfit_get_smbios_id
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0xa824cd46	__acpi_nvdimm_notify
+EXPORT_SYMBOL_GPL	 drivers/acpi/nfit/nfit 0xf6e09bcc	acpi_nfit_init
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x39d502f4	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0xccdb3add	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0x6265d4b5	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x07487738	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x4394eb32	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x20dd7c9e	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xbdd0aab3	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x0418ff45	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x44baf03c	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x56b3b35c	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x7f2ad8cb	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x1ef6edc9	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xe1bcd79f	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x03aac544	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x0d5b836d	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2213c470	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x3880569c	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x38e5ccfa	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x49a27874	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x4a7f8c75	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x68b2f034	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x73c6c988	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7e29eceb	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8af20687	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8c6c5c82	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9c1a1493	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa5dbb20c	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa8159c46	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb4406100	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xbb0f9713	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc5dd6cf8	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd7692811	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd96dd683	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xde34ff8d	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe712a45f	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf4a98088	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf991d75d	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd193c9ab	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd92e8ec2	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xe061be13	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xe5152d43	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xf6948dd9	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xfaac0632	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x1b847c24	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x20be6ec8	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x24ca4c93	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2a2ca67e	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x310b6026	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x51d23ea7	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x58a7cd29	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x6ca3c8ea	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x8259e29d	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xba34a512	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xbafdfa8e	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xbe7e1405	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xc2a1e61f	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xc64151fc	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd93e4b26	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xdc323397	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xdce1a66f	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x0a98532c	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x211c813e	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x38e50808	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x5576c93c	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7b62ea20	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x81808fd8	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x8783254e	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x98d83cdc	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x9b487afe	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc5d78fa3	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xf0366e3b	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x1550b759	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x2f6c8d43	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xbc434975	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xf1e4d69d	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xf2b085a2	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x2e5df4e9	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x702c85b1	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xbafbaa64	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xd50b0465	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xfb22a454	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x6535008f	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x707297a0	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xc22c6900	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xd60453e4	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x01461592	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x1341971a	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x4c8c10f1	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xc1fbc10f	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xed2ba934	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/sunxi-rsb 0x72ff973f	__devm_regmap_init_sunxi_rsb
+EXPORT_SYMBOL_GPL	 drivers/bus/sunxi-rsb 0x8e705cb4	sunxi_rsb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0x4c8aa0d8	meson_clk_triphase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0xa8c11bfe	meson_clk_phase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/sclk-div 0x9b54bd6e	meson_sclk_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x00d9e064	clk_edp_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x04bf3163	clk_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0650a0db	clk_regmap_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x065574e3	clk_rcg_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0ac38699	clk_trion_fixed_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0cabeb2a	clk_ops_hfpll
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0d678ab9	qcom_reset_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x12ac7e1e	clk_alpha_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x14c1e44d	qcom_cc_probe_by_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x1ed919be	clk_rcg_esc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x205a2ef5	clk_branch2_aon_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2d89517e	clk_branch2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x30dba69b	qcom_cc_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x33e55c5b	clk_alpha_pll_huayra_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x395868a1	qcom_find_freq_floor
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x40e5accd	clk_byte_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x428b605a	clk_pll_sr2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x46e37d43	clk_rcg2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ad24f3b	clk_alpha_pll_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x51fb21a3	clk_pll_configure_sr_hpm_lp
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x524628c8	clk_rcg2_floor_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x5d5f07eb	clk_regmap_mux_closest_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x64447760	clk_enable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x653458b6	qcom_cc_register_rcg_dfs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x65c927ab	qcom_cc_register_sleep_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x66489e5b	clk_rcg_lcc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6af41b8b	qcom_pll_set_fsm_mode
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6b6159e1	devm_clk_register_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6ca8a88d	clk_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x73f8eedb	clk_rcg2_shared_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7404b809	clk_rcg_bypass2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7708b673	clk_pll_vote_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x787e8234	qcom_find_freq
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x80d68926	qcom_cc_register_board_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x81ec30bf	clk_alpha_pll_postdiv_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8218c7e1	clk_byte2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x83811bbd	qcom_find_cfg_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8cb1c5b3	clk_fabia_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x911def65	clk_alpha_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x951258d4	clk_alpha_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x99f60998	clk_disable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9cb32992	clk_pll_configure_sr
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1839eaf	clk_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa821f919	clk_branch_simple_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xbbe74972	clk_alpha_pll_hwfsm_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc78100cd	clk_dyn_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xccc2b431	clk_trion_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcce7e449	mux_div_set_src_div
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd8fc3e8e	qcom_find_src_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda15b634	clk_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda35a32d	clk_gfx3d_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda967930	clk_alpha_pll_fixed_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdb687f64	clk_branch_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdf674942	clk_alpha_pll_postdiv_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe3b34b5b	clk_regmap_div_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe5bc1f18	clk_rcg_bypass_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xec84703a	qcom_cc_map
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xeeb17677	qcom_cc_really_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xef6a0edc	clk_alpha_pll_regs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf196beb5	clk_regmap_mux_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x03d3a7af	sprd_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x0a96f18f	sprd_clk_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x0b579624	sprd_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x20e969aa	sprd_sc_gate_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x3005c034	sprd_mux_helper_get_parent
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x32e68ffc	sprd_div_helper_set_rate
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x4d9bff88	sprd_gate_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x5be88ca4	sprd_div_helper_round_rate
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x67deac3a	sprd_mux_helper_set_parent
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0x86e82b4e	sprd_mux_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0xa4a0f683	sprd_comp_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0xc51bb55f	sprd_clk_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/clk/sprd/clk-sprd 0xfc3762c1	sprd_div_helper_recalc_rate
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x104ad532	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x370db055	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x40e55ea4	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x52fb4cd6	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x77e95116	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7a3915dc	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x891122e0	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xb5aebc77	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc0f0cbd0	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xca9cd0af	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xcab50e69	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xcc0bba81	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd9008dfd	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x04773b60	ccp_present
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x3a1a3979	ccp_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/ccp/ccp 0x8719f643	ccp_enqueue_cmd
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x004ab924	hisi_qm_dev_err_uninit
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x230d4615	hisi_qm_get_hw_version
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x40f5bac3	hisi_qm_dev_err_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x41a29cd6	hisi_qm_hw_error_handle
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x4f4ef9fe	hisi_qm_stop_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x519cc7bf	hisi_qm_release_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x5404d983	hisi_qm_debug_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x55b3db4d	hisi_qm_uninit
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x5e69dd98	hisi_acc_sg_buf_map_to_hw_sgl
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x69c439e8	hisi_qm_init
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x742db255	hisi_qm_get_vft
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x93dd5aba	hisi_acc_free_sgl_pool
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x94a7e266	hisi_qm_create_qp
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0x952db450	hisi_qm_debug_regs_clear
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xb0cb9804	hisi_qm_get_free_qp_num
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xb8beed41	hisi_acc_sg_buf_unmap
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xbf2421f6	hisi_qm_stop
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xc8a03574	hisi_qm_set_vft
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xda3a2fc5	hisi_acc_create_sgl_pool
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xe67404c1	hisi_qm_start
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xe9945e22	hisi_qp_send
+EXPORT_SYMBOL_GPL	 drivers/crypto/hisilicon/hisi_qm 0xea38285b	hisi_qm_start_qp
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x8c37810f	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x71ba0364	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xdabd05c8	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x37634b7e	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3ab99c7b	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3c28355a	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x7b542c7e	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x9069c21b	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xc5208d00	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xdc0643ec	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x031674e5	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x2258741e	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x23ddff95	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x2ad21ddb	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x33cbd351	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x48458d31	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x4d8a6719	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x8338849b	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x8fbc110e	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x92132a46	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x9281c517	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x99fec853	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x9e8649c1	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xab58be8e	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xcb8cd80d	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xf645ef25	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x15cf433f	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xabd98a99	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0x7fa65714	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x0e7b7015	stratix10_svc_done
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x41d5ad1c	stratix10_svc_allocate_memory
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x50f5368a	stratix10_svc_free_channel
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x595b630e	stratix10_svc_free_memory
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0x805ea418	stratix10_svc_request_channel_byname
+EXPORT_SYMBOL_GPL	 drivers/firmware/stratix10-svc 0xd3df684d	stratix10_svc_send
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x006fe386	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x1db8b75e	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0ab13ffe	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x23a9b528	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x3410459f	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x34d9a90f	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x424a8ee5	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x53c5cf1a	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x85d0c2ab	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa5d8673a	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa7676bc4	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa81b8ba4	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xab2040cd	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xac5c89e7	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb481c8f8	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb64f4b2f	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc23ac55e	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc517e6f2	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd5a49617	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xdeeab81a	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xed828b66	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x1e82f98d	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2f24776d	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x3400edb4	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x52d65811	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x821833c9	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xb54ef216	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xcb3c7486	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xda685af1	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xda7ac226	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xe80ddc4c	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xfced1ce7	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xfe0bfacc	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0010ffa8	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x012db508	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0477b169	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x055de668	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x07db9fd7	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0dc1ef99	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x13e5e336	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3fbb7b4c	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x51b75076	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x871d6b6e	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x931317e9	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xaa6aafb5	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xb8b8d1ef	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x2368f8ff	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x4fc83b8f	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x6e86c526	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x815b6423	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x8f0d59e8	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xa731b0b4	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xeac2e13e	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x0b76421c	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x225fbee7	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x2b67f6dc	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x39bfb4dc	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x42462788	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x78060f23	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xaad3bfe6	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xb4be6ce0	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc53b091f	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd942f235	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xddb335a3	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe65f857c	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x0f710804	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x6ea28e9c	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x8ef14a56	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x1860ced5	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x23312a7c	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x733282e4	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xcb38921d	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xcd888c6a	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x3ce236f2	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x525c2d55	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x5873de33	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x6cb0ae79	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x82550e04	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x246ca73a	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xccccd18e	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x214e5138	analogix_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x55a2f766	analogix_dp_start_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x6bf420b1	analogix_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x8a81da05	analogix_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xbc819478	analogix_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xc10a7716	analogix_dp_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xda98fea5	analogix_dp_stop_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xedca8f86	analogix_dp_suspend
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05	dw_hdmi_set_channel_count
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5	dw_hdmi_phy_i2c_set_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2d1c0e80	dw_hdmi_setup_rx_sense
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2fac9436	dw_hdmi_set_channel_allocation
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x316212a8	dw_hdmi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x42926f4a	dw_hdmi_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x4a9b174f	dw_hdmi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7	dw_hdmi_phy_gen2_txpwron
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee	dw_hdmi_phy_i2c_write
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43	dw_hdmi_set_sample_rate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9142c5f4	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd6968220	dw_hdmi_phy_setup_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd8fe547b	dw_hdmi_audio_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xdafa1790	dw_hdmi_phy_read_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xfc805f23	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204	dw_mipi_dsi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x41361ae4	dw_mipi_dsi_set_slave
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x42ac3b2e	dw_mipi_dsi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x9b230565	dw_mipi_dsi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0xa84efda9	dw_mipi_dsi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0d4d9deb	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x296f0438	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x363a5b62	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x37537688	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3bf32cc1	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3fcc4cb2	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x48aa9788	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4b5f7acb	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d4e2e9a	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4eee91da	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5bc7bde8	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6173d44e	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x6ac7c88b	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7039d686	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7a6275d0	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x82852105	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8ae8e614	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9fb5cbc7	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa2ad19b0	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa78c5701	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb11971e9	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xceab77cb	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdeff4061	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe03d259d	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe0669f6a	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe0de4de1	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe55c9c1b	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xef555857	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf053bc42	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x15b77895	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x21853b05	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x6484135e	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x663fa014	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x779badd8	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xaff2c066	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xc256b44c	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x0825074e	meson_vclk_dmt_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2b36798a	meson_venc_hdmi_supported_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2c73cfcf	meson_venc_hdmi_venc_repeat
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x4ffc9910	meson_vclk_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7da21708	meson_vclk_vic_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xab5bee2f	meson_venc_hdmi_supported_vic
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xfd6835d2	meson_venc_hdmi_mode_set
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0xf32657cf	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x147ca2b5	rcar_lvds_clk_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x27b5e3e8	rcar_lvds_dual_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xd3e5b2b6	rcar_lvds_clk_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x7cf701f3	rockchip_rgb_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xea654a4c	vop_component_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585	rockchip_rgb_fini
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x3e70d100	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x97090039	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xc21bebcf	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x00639cd8	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x02e8b22f	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0442541b	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0551b558	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0808670f	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x09b89a87	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x11752bc7	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x198f3ad1	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x337967dc	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3bd2b1e5	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3bfcfc5d	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3d52d107	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3df159a1	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ef75a08	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3fdfcadd	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x47638e26	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4c54587a	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4d1481b5	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6c472ae6	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7437177d	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x770933ae	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7765b836	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8bf98f05	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x92f52903	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x95ce450b	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x96c94714	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9c1a3686	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xae9627b5	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xaf32c9a1	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb9f9983a	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbedacf10	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbfdd7b7e	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc1a66ba1	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc397c10a	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb8c92cd	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd30c4c55	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd397823b	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd49e30d8	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf0032a7a	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf1d06ed5	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf31b3c3f	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf55dd82b	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfe6af298	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x01c22cb6	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0d4af722	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0e541a93	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x143eea5a	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1b5cd63a	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1cb8a16b	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1d6c4a67	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1ec1e78c	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2460c132	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2ef87688	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x31192d86	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4b7b54e9	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x55ca2f44	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5dd24fb2	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5dffe596	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x662c76f6	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x673a6178	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6c8134e2	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6df9e2eb	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7444c94d	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x77719386	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8a372780	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x90b4d490	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x997d4fd1	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9af474ac	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9c2ad59e	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9fbd1e5b	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xadfc9068	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb3a49362	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xba226747	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbcd3a603	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc7b16738	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xca991279	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcb0f3f84	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcd82c4e2	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd1685cb9	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc0f66b5	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdf46ceeb	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe159ba4f	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe1dc4935	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe374a24c	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xec14465f	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf4330fe9	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfb45d1d5	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xb7c5b170	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0240d45f	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x0b3bd9b1	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x631bb128	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xc404d5d9	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd56f1258	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xefa17bea	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x02d92227	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x0f6a661d	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x2d342a93	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x5f91c57a	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x94c44500	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xadcbb988	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xd79511de	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xda334308	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf8beab34	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0xa30dad6b	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x1bceb74b	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xe76afcc5	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xf5a71c07	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x03126d6b	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x05d91c05	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0b992a96	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1aa07555	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x239722e9	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x26ea2ce4	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x3dc15a49	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5e864ced	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5f601af2	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x67ae9068	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x79dad739	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x99dd178d	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xcbf89055	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xccd75e9f	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd6f4c85c	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf2003725	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xf620c746	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xfac05f33	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x0284aec8	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x5b62e53f	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xf8c75ac1	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1aa2b1cb	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1d6e6670	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2fefaae1	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x4a810049	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x5951704b	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6c512b4b	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7a6e5157	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x93217901	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x98284cbb	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa5d6333e	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xadc95baf	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xae831af8	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xbd742eb5	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc38fc99c	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe347a44d	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe35b6747	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xee61e763	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xee63b1b4	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf39ef34d	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x017e0f7d	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x0c5c9b5e	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2acd9f2f	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x5e9b07a8	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x8447582a	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9d7b6cce	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xa07b4506	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb6c098b9	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb86bce18	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x230c16a3	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x4c141c4e	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x70882532	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x4a024327	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x69f4354c	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6a8c54b6	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x7aa2ceb3	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa1fa4e45	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xaa3ebda0	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xcc5c50b2	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xe98351fd	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xff913aad	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x19136980	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x5beefe2c	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x67a69d03	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x7d7c01f6	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x17a728e4	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x080bfd14	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1cb82d6d	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x20254661	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2a9637eb	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3b9c14a0	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x58aa4a29	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x61f44f2d	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x66add0f3	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x66fc62c5	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6e6d5760	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x73bf3558	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x74af8d74	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7bcd9c29	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7e399efe	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8b2f9ca1	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9b29b1d1	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9cc2e240	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xad196ea9	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb474b565	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xca4ea5e5	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd0b297a8	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf32d0ecc	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf742842b	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xf8613658	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfde94fb4	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x2cfbc6a4	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x91a9f670	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x252dc99f	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x90ce6edb	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xb7004827	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xe1de7edc	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x3487b3e8	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x595dea4c	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xad93c505	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x80faf9a7	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xaed06db8	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x00196bb7	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x38f220e1	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x6abb0333	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7dc6cfe0	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x88b81480	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9288ef37	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9e02a2c0	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9f702e55	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9f8cfffd	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf3fdb0d1	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x376ae45c	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x4e4ec2c0	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x8958de25	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x22684d8f	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xc9ae321b	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xe0819244	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x09d1df7a	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x11af100f	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x1f3a140b	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x0c3546f6	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x3c4b6ca5	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7d1bc1d3	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x8054d96e	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x8064bb38	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xab62d7ad	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xc670195d	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xcace432b	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe33b30d7	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x8c0fed04	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x9506aa2f	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x6736b55c	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xe13a4579	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x37557e01	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x7727fda8	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xe86809c5	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x140cc66a	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x6d5f0160	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x72b8f415	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x01681372	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x255f24d3	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x468efdb0	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x551c9ad9	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x62334f2b	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x7447e87a	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x77a11fa4	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x800830d7	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x90fdaaa5	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc2f1e8cd	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xc873496d	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xe17b06df	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x830b139d	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xce8ed493	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xf6690b83	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xfa34867f	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x064ee5cb	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x090a2ea5	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x103fa81e	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x107769e3	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1e607249	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20295726	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x23666a46	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x256053a5	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2745ff92	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2c34cd7a	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2ca3c42a	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x330660d5	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x359683c7	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x36b841da	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3a84394b	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3bf67fac	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x41406020	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4411d4f9	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x47d5ec52	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x56aebfb3	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5969f452	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5acd797f	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6894411a	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6f2b4e5f	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7736d62f	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x78010979	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x79687e36	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x84fe28fc	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8da32661	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8efca4ca	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x905f92aa	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x94c6dbff	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x97cd02c9	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9d0b7521	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa416a327	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa5b7c7c5	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb206d664	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb33d86a8	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb39960ad	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb9977c03	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc3873a48	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc6d09d5b	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc7b40797	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcba36a39	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcd192959	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd227ac62	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe55125cc	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf1f7a9af	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfcff72f5	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfe9030ec	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xa61e5fc0	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0xf5666184	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x5890a271	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x6631f325	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x7b870fca	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x9b01476a	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xdb10cfb5	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xddc9baf1	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x8ca4adcf	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xdba512b1	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x121218c4	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x16a6b43b	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x34d83c99	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x381e86cd	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x439d28e9	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x47a852a9	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x56016325	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5d62733e	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9c2c232c	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xd0a8e3e1	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe37f2691	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe4c9af52	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xe9344f63	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xffbbb7aa	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x2f13f6ce	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x9a65fb68	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xaee9ca01	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xca8b13b1	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xd9097bb4	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x26f07b1e	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xc365618d	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0aef3729	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x4471ac8c	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x65e78e84	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x94bbb6ec	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x0bcec0c4	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1f61a487	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x283739a4	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x40ad366f	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5c6930a6	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5d132b35	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x5f04a3e7	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6fa6885f	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x8c0736f1	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x9668c6b4	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xdc18e0b6	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf6257bdf	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x472f4d5d	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6e948bd4	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x81a4e10b	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x89645fc6	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x994d3952	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb181be53	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb76442f9	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb8fd07da	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xba19d201	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc24ce93c	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd1294f54	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xda3535a3	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xdd345eae	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe4c44b22	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xf823cbfb	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0x81e513ad	qcom_icc_rpm_smd_available
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0xe8dbdc6c	qcom_icc_rpm_smd_send
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x07c57e64	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x2ac0e0bb	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x4b260223	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x799949a5	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa78d24eb	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xb3ebb45b	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xb705fb6f	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xf2c5e2e4	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xfcf6862e	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x03eb1c7b	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x36a96539	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x5d3558f4	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x6c58b363	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xb5109f6b	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xb75524e0	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x104abfe7	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x1f7cdf4a	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x42583b3d	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x59614fd8	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x654f849c	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x7e9f4498	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x89363294	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xbe2c0257	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xdb81d68e	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf0b26b9e	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xff2e4119	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x31453ea1	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x59ae0d14	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6321427e	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x67ec466f	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6810c386	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x7dd2530d	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xae9d94c4	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xb3d6c12e	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbcc0f3c8	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbf403e01	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc3b9c681	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe3b411f9	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xebab2087	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeeba703f	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x35444ba7	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x37f7c3e8	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x407b3a9f	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x455459f1	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4f3e6459	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x76594a69	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x81bc1d16	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8459deed	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x86e8457a	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x87e1e656	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8ec3fc01	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9641e5b9	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xce2d6580	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd35a4cbd	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xed847d6a	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xefe48051	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf896cc14	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x032e40b7	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x1e1642a0	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x3f220305	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x0f79476c	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x812cbba6	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x6db0348d	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7029236a	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa32c5b97	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa86811e2	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xc1b74b70	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xebded2b9	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x81b60909	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x287b1372	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x4ee4c384	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x6d5edc45	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x6f901d24	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x8234a9f8	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x96b5c301	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x9bd66663	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc47a362c	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe9a62a09	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf9c3870f	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x039ce8c1	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x1413998a	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2e3adf8b	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x447f0c0a	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x4a81bae5	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x6df5aa45	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x71824fe9	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x00471834	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x005f3580	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0449b80d	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x07db4eae	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x16747dd9	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x2c7d199d	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x34e813d6	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4793df5b	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x78fc7307	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x95d7dc5b	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xa41a555a	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbc5e1ce4	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbd6a994b	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc8fa2730	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xce59f2ae	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xeff24f69	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf8ef14c7	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0a066da1	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x16466b62	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1ad1e7f1	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1ce5e998	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2168e800	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x233f667c	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3224fdd5	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3bea3f33	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3d22a85c	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3f623848	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x51743c50	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5e569527	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6113fd6e	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6f9b7c01	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7469589a	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7cf3a573	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x836b83c1	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x875163ed	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8ddae992	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x90828029	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa3c69cf9	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xaeaa0545	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb631c5be	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xbfbe757a	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc88264fe	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcd2f9591	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xec50b01c	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xed7760f3	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xfc654d63	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xaf6e6d20	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xc953fc32	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xd1ee4438	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x530d9bda	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x8e311322	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x032b7b08	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x092ec871	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0c7d05d7	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x23529c3c	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x28af9cd0	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x366a9fb9	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x49de6719	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4f229dd2	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5709b26f	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6fcf5f12	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x716cc19f	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x725e0776	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x802e821e	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8611dc5c	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8fc38ca0	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x92f475cb	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x97aa14a8	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9b73ff9f	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa4e9a99e	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa55332c1	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa587a139	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb39e98a1	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb3e34d2b	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbd1c9c12	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc39cbd09	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc5c02fb8	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc60b2266	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe4f625de	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf04ad03f	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf05e6c89	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xfa53abad	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x1f884c6c	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x3ca50dc4	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x3fc0288f	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x714416e2	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x77d200cb	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ascot2e 0x44b84a76	ascot2e_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0x52f2556a	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0xe1a3f73b	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0xc9bda89e	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22700 0xf8d7744c	cx22700_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0xb663f7c2	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24110 0x64ee4218	cx24110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x5faea396	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0xeacf9087	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x0b200e99	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0x5d5fff2f	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0x76862648	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0xe5ed3d70	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0xe2292262	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0xedb17ac5	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x03f24d83	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0x958dc57f	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x60e5fed9	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x89343d92	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0xd2019733	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0xa86dadea	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0x3ac654da	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0x2ee3299b	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0x50737a92	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib9000 0x4d2d77ef	dib9000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0xc2e18225	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0xaa02b89f	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0x9f679dc6	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0x48f8bbcb	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0x059ad825	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0xa26f0bb0	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x456afb81	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x551cb4ca	helene_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x59875f2a	helene_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/horus3a 0xe3a848ba	horus3a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6405 0x5c58a408	isl6405_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0x6303f886	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0x29ef811f	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0x35f8af78	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0x766bf9ab	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/l64781 0x3bf39592	l64781_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0x2e859803	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0x8bd0b387	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0x15a8f50a	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0xa7d16dea	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0xbf0a7a4d	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbh25 0xc78ce587	lnbh25_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x6b49bd91	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x8351dcd0	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0x0f141c2c	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0x0ae30d05	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0x834b1fe7	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a16 0xda2ea5c3	mb86a16_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0xbfcaf110	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0xdcc1eb43	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0xf379c306	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x63bb25ce	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x881bc9b1	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0xcf240fe7	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51132 0x37fe8693	or51132_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51211 0x0712c13d	or51211_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0xb6c8843a	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0x343e8b80	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0xf54ee1d6	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1432 0x9c6fd119	s5h1432_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0xd9363629	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0x6e3848d9	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/sp887x 0x1e3021f7	sp887x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0xe448fdfb	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0xfff5c5e2	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0xe8ccfdf1	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0x92b1e6e8	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0xc9a2ef80	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0xb683f458	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x61922bc5	stv0367ter_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x8775f187	stv0367ddb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xb912da56	stv0367cab_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0x827b74f6	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0xbcbba6fa	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x2a7b2e0f	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0xb0404faf	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0x6addd63e	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x029d5db3	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10021 0xdf5a284d	tda10021_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0xa939abb7	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0xda7361dc	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x0e6101a3	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x2a15094c	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0xe956a81e	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xd2d765af	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda665x 0xe2bff2b0	tda665x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8083 0x56269841	tda8083_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8261 0x1410380b	tda8261_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0xc2666e99	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0x2cb5471c	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tua6100 0xc3341423	tua6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1820 0x4c1c274a	ves1820_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1x93 0xf4d16d89	ves1x93_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10036 0x09271640	zl10036_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0x5e51d81f	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0x9cd7c56f	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0xd3c07e7d	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x56d12291	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0981d98f	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0aa9d7c8	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0abd3461	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x10653b83	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x10e23821	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1241a070	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x12e49ace	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x148102b2	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x18758046	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x26072782	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2709d0d6	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3b163888	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4cfde2da	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6af73b71	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6c78d2f2	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x725ceb55	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7303c3f0	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x73c65ced	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7eccce5c	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x81fa3ed3	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8976e3c2	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8ac3dfd5	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x950100a0	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x99e55ebc	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9df57487	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9f5ab813	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9fb5edea	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa8af2ed0	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xaf356290	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xaff508a3	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb35ea878	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb6e16a74	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc81c4184	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd9d339cd	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xda50ab3c	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdf20641b	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdff9765f	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe35bd908	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe7c1dff8	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe9516b28	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xec546325	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xef7c4c2d	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf43c012f	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf4c7b0b2	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf5371729	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf85b663d	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst 0xcf9bd0cf	dst_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst_ca 0x1a13b771	dst_ca_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xedfc6850	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0017e933	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2106a5cf	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x352c0a1e	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3f113a4e	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x407654da	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x58088c0a	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x619fcb17	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6d236cbd	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8116c5c1	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x81c7b11a	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x84ef8269	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xafc14002	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb098334a	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb1c3584f	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xccd346d6	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe3f6342d	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe70d3a45	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf2389c4f	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xfde1abac	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x032a6e59	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x0d1c8c8d	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1ee531e3	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2b37435c	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3b96da24	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x543ffb75	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x64ef1864	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x7b62f33d	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8bc09f80	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x97a9f23b	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x9dad020f	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa262874d	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb3868d6b	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbd517ad7	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd6832c45	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe0465cbe	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe216a2aa	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe427c876	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe8ae4564	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x058d680f	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x31275660	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x4ae01575	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x83b824c0	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xdd4a6065	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xf30391c8	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xfa5bff14	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x289d9d29	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x3d882414	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x772ee026	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xb1e9db0f	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xfe3434e0	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x16101824	vpu_mapping_dm_addr
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x253f6d79	vpu_wdt_reg_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x33d2dc21	vpu_get_plat_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x34d8d702	vpu_get_venc_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x4fea84cb	vpu_get_vdec_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x7dd46e56	vpu_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x9c3931e8	vpu_ipi_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xa1b09a72	vpu_ipi_send
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x02d1b931	venus_helper_set_num_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x157d2811	venus_helper_set_work_mode
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x18da6233	hfi_session_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x1c6da58a	venus_helper_check_codec
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x1ee4cbc8	venus_helper_power_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x242a5d9e	venus_helper_vb2_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x262b503c	venus_helper_unregister_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x27b12c5f	venus_helper_m2m_device_run
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x2d693ecb	venus_helper_m2m_job_abort
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x31e14cbc	hfi_session_set_property
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x3b47b528	venus_helper_set_color_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x3fb7906d	venus_helper_get_bufreq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x41f777ad	hfi_session_abort
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x45abb7d7	venus_helper_find_buf
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x46b08e10	venus_helper_set_core_usage
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x4dc123d5	venus_helper_vb2_buf_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x50793ee5	venus_helper_process_initial_out_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x575bf155	venus_helper_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x6a60c08d	venus_helper_set_output_resolution
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x6e1b9055	venus_helper_load_scale_clocks
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x75e930b0	venus_helper_vb2_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x770030b6	venus_helper_release_buf_ref
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x77d6f137	hfi_session_destroy
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x79e418ac	hfi_session_get_property
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x7d11dadb	hfi_session_create
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x7d8ba08a	venus_helper_alloc_dpb_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x7f722eb5	venus_helper_process_initial_cap_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x815b7cd2	venus_helper_intbufs_free
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x84d1f440	venus_helper_set_dyn_bufmode
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x8b36ea5c	venus_helper_intbufs_realloc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x8c62167a	venus_helper_set_raw_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x8df2e877	hfi_session_stop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0x94c7fa98	venus_helper_get_out_fmts
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa167ec10	venus_helper_set_bufsize
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa484ae9a	venus_helper_set_input_resolution
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xa96ef216	venus_helper_get_opb_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xaebfb2fb	venus_helper_queue_dpb_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xb02ad1e7	hfi_session_unload_res
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xb5da1da9	venus_helper_get_framesz_raw
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xb630d8af	venus_helper_init_instance
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xbb7b1052	venus_helper_vb2_buf_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xbd87b1c9	venus_helper_free_dpb_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xcb185ce8	venus_helper_buffers_done
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xcd193cbe	hfi_session_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xd21da2e4	venus_helper_get_framesz
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xdde4f6e4	venus_helper_set_multistream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xe7c643c3	hfi_session_start
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xe9b4187d	hfi_session_process_buf
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xee526cfe	hfi_session_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xef23426f	venus_helper_acquire_buf_ref
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xf8416e4c	hfi_session_continue
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xff544ab6	venus_helper_get_ts_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/platform/qcom/venus/venus-core 0xffabaad3	venus_helper_intbufs_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x33499e43	rcar_fcp_get_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3d858696	rcar_fcp_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x4ad5d888	rcar_fcp_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x5fe6f6e8	rcar_fcp_disable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9877c29f	rcar_fcp_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x2a5e09d5	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x3afc9a5a	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x524b9ae7	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x58330040	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x7f200a70	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xad20564c	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x10d5d86b	vsp1_du_atomic_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x3af6b0fe	vsp1_du_atomic_begin
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x6b723e33	vsp1_du_map_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xaae0ef81	vsp1_du_setup_lif
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xca4d7aab	vsp1_du_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xdf467d4e	vsp1_du_atomic_update
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xe44b7b24	vsp1_du_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x30d8793c	xvip_cleanup_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x8492a619	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x89627c91	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xaca4c3f7	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xba01c4cd	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xc72820d7	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe578cb76	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x1303b465	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x3c16a6b1	xvtc_generator_stop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x47d7900b	xvtc_generator_start
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x1ef980e1	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x6d2ca01e	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x34ca200e	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x38f65b7c	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x56a64349	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xcb260804	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xec1dba16	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x0b6e332f	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1a393e79	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2732793d	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x292c5ac0	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x32fb4a48	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x366ac4a3	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x7c4b96cc	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8fa5ce77	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa4024971	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa5179330	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa98390ba	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xafe8ca11	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb79e3ea4	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xbf0fb030	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc385dee1	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xd24c1bee	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdc387106	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf24d2918	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf55e4fce	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf9e063a3	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xff2caf1d	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0xaf067cce	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0x7cc5930d	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0x58bb83e3	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0x27ca11ee	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0x8dfc3ffe	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0x5e728a2a	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x480d96d6	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xcf98afd9	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2131 0x137c6d1e	mt2131_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0xf9272ff6	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0x29b5599d	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0xdfb8c350	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0xb37a0cdf	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x9062fcd2	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0xbf9c5bb9	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x8cecc852	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x47f24c0e	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x3d3259b0	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x49675aad	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x27b8a1a3	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x96bbd6df	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xc9f524c2	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x31d40486	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x9f7a8219	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x8122d260	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0xb8bf7d92	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0x5cf14d0d	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1c70a37c	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2d861303	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x39b61ff2	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x3e698fb1	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x5b2aa2e8	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x62dcc8ce	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x8d74c6c9	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x9134389c	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x9e3f1484	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x9fe9b335	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa012ec0f	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcfb2b4d9	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd0ebb99a	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xeba3a209	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xebd4dada	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf426f5d0	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf4c63c2c	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf930cf0b	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfb423e06	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfbc9407e	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x867b2a18	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xd779f550	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1cd4c0af	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x25b4445e	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x300416ac	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x38c897ca	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x45eb0782	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x52f14e28	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x62a4869f	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x67e59b85	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6e3d7510	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x757c87a3	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7eb49fc7	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8be4ab4a	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x99065dcb	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa7c4faab	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc144ff12	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc666a414	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xda837bb1	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe79a4c04	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x655cae63	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x9de55db0	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xac9e0c3c	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xc30cea7d	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xef15cc44	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x4bc72ef7	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xbfa062e4	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xc789c895	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x15d1e3cd	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x20e7fc2c	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x27ff859d	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3f4d81d4	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x41ef5b94	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x57c17ebd	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x82e05f90	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xb7ac1b5b	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd31006e2	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xeb65c17b	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x01174bc2	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x06ae36de	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0c8c60d3	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x16a92379	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1806223f	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1b66f50b	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1d213bf0	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x21049710	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x22af3065	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x319ac8c8	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3b94c067	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3d5cf039	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x45a53990	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x60251e3a	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x60a42551	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6c0ddf20	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x742f272a	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x755b4d89	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x781d7ddd	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7b42e148	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x95cd0e74	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9df38ecd	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xaa680b00	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xadc83f4a	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xbb105851	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd150d5bd	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd32b8b73	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd4bff4a3	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd5ec8fe1	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdacb00ad	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe3bcd80b	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe99270d3	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xeb45cfb2	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf050e66b	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf918a6bb	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1147b410	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x135fd8c8	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x154a60d5	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1bc32336	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x28f033ed	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2aec92c2	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2d9c865b	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2fb5a90e	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3bd66dae	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x46df56b3	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4be5dc70	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5b6341f3	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5f05c708	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x630519e9	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x63133bc4	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7390acc3	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x88441e14	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8f8f9477	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9db3e533	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb3968442	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb50bcc32	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb9dffc5b	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc6ef342c	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdceb2f65	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x7de26991	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x86cb4279	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x90f43042	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xafd84bdc	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x33add727	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc097d63f	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xcbb949fa	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x01fa5b72	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x029f219d	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x044bbea9	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0ba45848	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x133529bc	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x280dd2b6	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2931acc1	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2a53ca39	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2e9a2b57	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x32431a1e	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3cb980df	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3e13d4fe	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x43996a8c	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5832de8e	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5b2798e3	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5f55613c	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x62dcfac3	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x68122016	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7e09458c	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8130501e	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x827cb2f3	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8998b131	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8b2fc8b8	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8cffaaf7	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x95a20845	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x97217cce	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x985e9593	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9984f78e	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9a85b09e	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ff32910	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa0d569d9	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa36ee826	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xaa0353c3	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb4d31006	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb795f071	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbb57f822	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbccbc001	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbe1114d2	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbf2ec642	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc1bd54b5	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc2d18895	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc40bb12d	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc5cf9711	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc97bb9a3	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcb5093d1	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xce1f86a9	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd33e52d5	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd36d9b2c	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdb78ad30	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdcdb3669	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdfa9b181	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdfc34be5	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe30dd3ac	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xed259cdd	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf01d4c21	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf3c04304	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfbe06a00	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfea5e80d	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x6b8c1b5c	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x758f6d74	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd2f105ba	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x19c89292	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x8f2a5cf5	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xa185ffe0	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb4e0f955	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xba6d4b54	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xdaf66f4b	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xe860bf10	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x0707f88b	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x16198198	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x294cfb0e	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x345c6203	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x42b56855	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x6f40f9a5	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x75953830	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xd571afca	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x369293a0	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xc553aa2c	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xd029d92a	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x0b99e78c	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x37c554cb	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x86e12af6	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x89c740b2	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x8c55ca6d	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xa6604bd4	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xc44fe7aa	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x23516813	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x30dd68fc	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xa49bb06a	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x07af2f1c	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0ce06c6c	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0cedb02c	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x14351bdc	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1438c79c	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x23b40021	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x23b9dc61	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3e92f714	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3e9f2b54	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4fd57160	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4fd8ad20	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x570006d0	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x570dda90	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x60811d2d	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x608cc16d	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x62b587c3	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x68085e34	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x6a994582	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7da7ea18	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7daa3658	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8dfd8299	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x93fef16b	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb76440d4	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb7699c94	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbec29178	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdf534fb0	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf4515dd8	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf45c8198	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x5ef5a655	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xae242d14	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xbb94a753	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xc0acc9ed	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xee9e6634	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xfc91935c	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x2b33f977	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x37305f4f	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4f54547b	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x6024b0a8	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x6ae48c74	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x74377e12	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x7911343a	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x7fe29c79	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x9cbc3fd7	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xb20ba896	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xee401069	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x6b91559d	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x9a08dfd9	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x63be29b4	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x67707556	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x96edbaf8	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xa229e4d3	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xbb41e35d	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x613a2c57	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x08cfe924	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x09451ffb	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1b0a3a1d	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x26066b4c	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x282f4938	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x35bfd57a	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x39c5bb60	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3da0edec	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3f60c585	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4ea37eb2	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5a1da014	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5cbe7ed4	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6214c215	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x66d6f871	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x66e4d83c	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6e43d4b0	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x6ec30ac6	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7110754f	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x82cc38fd	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x84edd95e	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x95d53a47	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9c9f3592	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9e82a08b	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa574f925	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xac192053	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xad733ecd	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc425efb4	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcba0d72d	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd14f6616	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd6556d79	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd87cade2	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xdd7481db	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf4bb80b5	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf94df60e	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x420f255a	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x49fdfde8	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x8100a3d7	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x907db0dd	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xaa0005db	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x16315e76	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xd2f680b2	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x0f7fe153	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x2bfcc380	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x3c151de9	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xd8666f32	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x2cf68b98	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x431f85ab	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x47b298dc	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65217 0x525c4097	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x5b32febe	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x80fadaad	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x9d8ee2f9	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x93bea843	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x3920d7b1	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x47db8282	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x896c1097	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x8fa92559	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xc7e14d2c	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xe4ed4f5f	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xfaf6b22f	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x020e1b4b	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0f45e671	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x20bd3ab3	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x348b1ed5	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x41dc302f	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x45c44845	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x49cd8db0	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8302f6dd	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8c538435	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9f5f9f49	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa993e901	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb46ee407	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb675fa9a	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbd1d23f5	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc30b47c7	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc67885a0	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcf3e6daf	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcf406ca6	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd4a8da49	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xda9e2173	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe1edce07	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf22bbce6	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf938dd74	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xfbea00e8	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x2055ed5f	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x20a4ed80	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x28449418	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x2b0c52eb	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x3ebc6538	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x515491f2	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6c0ebc51	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x7910d408	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x7d06be29	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x89db085d	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa594f2ac	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xad48f541	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xe527dd4d	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x0e478e32	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x53c232f1	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x83f3836c	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xd274260a	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x5ce217b8	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x683834c5	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x6ffc6cad	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa8b5daf7	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xabf9f06c	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xccad7a6d	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xd8d4241e	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xf8cf387f	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x0ce31ca6	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x1103005f	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x7ef0398c	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xad308bbb	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xba0a6e48	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xba8a2c27	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xce9771c6	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xdea2fd41	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8481635a	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x9724c6bf	st_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x0c9075c1	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x0e2f601c	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x23b20cd8	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0x78b0a163	renesas_sdhi_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0xcbc53208	renesas_sdhi_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x024126db	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x09492462	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0b4e00b1	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0edbb422	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x15bdc74a	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x166079e5	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1cb92d43	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2373520f	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x23b18147	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x25b4aaa6	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2ae250fa	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x34698002	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3b1b239a	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x463e5fbd	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x4deec874	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x54c6d005	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5757694f	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5f8cdd94	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6fac6966	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x73eeff12	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x75989cd4	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7608fcb6	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7682e9a0	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x76d75eb3	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x95c8bb58	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x9f279dd8	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa9d34bd3	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xac47dee2	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb7c96825	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbf7a6784	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc0028d90	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc494c62c	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xcb726a11	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd8461c21	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xd96ef380	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xddf41eac	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf2ec844a	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf69748ae	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf8d6c7d2	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x0f7a3a6f	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x39da8e08	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x7018f718	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x7154d58a	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xb61f7b04	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xbd0114d5	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xc8458cb1	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xdf972a97	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xec57b9b1	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x30fc64e4	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x49b62788	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x69d55be9	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x71636843	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x90932fd6	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x92e5a8ab	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xbcd2fe60	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xe722b85f	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xf36fcc82	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x011c2d57	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x3e3508bf	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xc32b2d29	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x21a19a4b	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x5ff3d19b	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xd25855cd	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xb066fccc	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x57deebac	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xbcddcabe	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xec16c225	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x9a2b7232	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xee2fba7c	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x00265bdf	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x02e81105	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0af73e78	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0f57b954	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x14d69f9e	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1bae6540	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x20d2e1a0	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x21f2928a	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2537354c	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x27c47c99	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3251da9b	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x32eba79d	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x36b95c34	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3702e0d6	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x37550ea9	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3b26939b	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x475ad238	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4cd29ce3	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4d766a83	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x50b0ac84	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x54e0fa99	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5b765397	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5f7b1462	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x61dcff8c	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x628e3c36	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x69da5e97	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7259996d	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x732873e1	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x736d88ec	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x81c4641a	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x81f9729b	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x82cd8ec5	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x8da02bed	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x98324f9a	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9c43ff6f	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xaaeb6fc2	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xacb3412c	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xaffe94ad	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb0fd71e1	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb7f909b5	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc06d0191	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc32eb408	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcbfeecc6	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xcc2af4c6	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd8ad1d0c	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe3632a25	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe57cf134	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe62c1ea0	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xebfd697e	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xed6a9bc9	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf305af05	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf6d1c0b4	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf6e29fb5	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfc44c27f	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x09372be5	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x0fb7c1fe	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x68be7918	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x80c4e172	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xa5e4d37d	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x11147723	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x53caaf3f	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x63c103af	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x74a37298	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x924d45d4	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa8520f02	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa89063e1	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xb158d468	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xb1a627cf	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xbfb855ce	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd1915308	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xd965ff6c	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf24489c0	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x4bd28ceb	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xa44afd63	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x467169e2	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x4bc360b4	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x8c36a487	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x182094d8	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0f906118	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1ab4cdbb	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x22bc263d	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2b13672e	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2d2795d5	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x4bb30571	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5abe60ac	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5c5641bd	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x64d07ea7	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x79960dc4	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7cf5a19e	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x991429ce	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa00e3abf	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa08417b7	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xae31b72d	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb5e1d222	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb61043b4	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbcb179f2	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbd7b069b	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xc9e59b74	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xde037141	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe5b14eb1	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xebbdd4cb	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf544df26	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xfbdbd436	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xfc951caa	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x49c50340	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x3b5816bf	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xe639a0ff	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x004f5a12	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x17b9ca1e	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x19b245d8	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x44334b17	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x5615d6b0	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x609f601e	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x77eb4ff4	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x79d0998a	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xaa91eaa6	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xaecfc77a	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb4ae807b	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xcdce08c6	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xd01ca7bc	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xee470c3e	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x0e141871	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x34b72f07	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x50b5dd42	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x5b7fd409	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x86215bad	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xa252ea1b	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xad2f63a3	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xc19aab79	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xc3d12ddd	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xd1218e98	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xe2e7ab68	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xe388793f	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xfa2cd341	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x1f12de12	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x40b011d0	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x145914cc	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x1757de4b	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x85c1a687	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x8ba47913	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xb191eacf	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xcdd05060	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x20edda39	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x6c03c8a3	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x98c551bb	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xe2a6b21e	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x0dd087c7	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x0ee3ddd1	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x14a6f134	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2b2ea609	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2f36107e	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x47edacb8	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4a6830c0	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x4d08d91b	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x52cf78da	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5848ea36	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5975fcaf	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x5cdea767	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x689103eb	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6bb01baa	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6e4bdf28	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x72352bc6	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x7ca5b2a3	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x7d4774e2	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8a50bc51	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8f0687af	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa3114024	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc74501ad	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc9bb3b73	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc9e3a163	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xdec50cd9	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf5af2beb	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf769b171	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x051924a5	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x5dd8cd0c	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x8f14296b	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x922fed92	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xc6da6363	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xca0a554c	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xd91601e2	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xeab169f7	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x219b3961	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x39ad97eb	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x4a728fa2	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xd3de16e6	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x0dc6edf2	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x2d730ff5	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x32e1d3ea	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3bd6fdad	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x4b1daabe	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x50e1ee03	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x51d348b8	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5ae8a6a1	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8bfd4304	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9c1535bd	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa8af547c	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xc869682f	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xcd9b5bec	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdabfa594	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xdf7cf30c	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xef2fb998	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf3095373	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xff9966cb	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x205365b6	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x2b19beb6	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x42145fb7	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x436529b2	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x65018131	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x77044127	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7cc9278d	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8a0442c4	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd0d155b3	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd68ce00e	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd9e1a4e9	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xde6181aa	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe124125f	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe500ae39	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf9c109e6	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xfa8cdb85	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x57b920b9	arc_emac_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x89d47361	arc_emac_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304	enetc_phc_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02c531c5	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02daa072	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a009024	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c90c0c0	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dc84bff	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e6a9032	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10af3e8b	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x118da6a2	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x129c493a	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14458390	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15791355	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15a56d12	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b88a43d	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c49d976	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c51dc3a	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d9033a6	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f536592	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2097c5b3	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24d78048	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26258e24	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x266fc44e	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26a6e754	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27678889	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a4f866f	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a591f2d	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a855b1f	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2be8ba07	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e057ca8	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e1ebeb1	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30017871	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30aed42f	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x356fbb51	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3726b4ee	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37575841	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37b4afb9	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a5528e9	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dccbb06	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4533a770	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4aab038a	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b951c63	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4fd042a6	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x536671c2	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53d463a4	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54731904	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5496045f	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56a13fff	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57000792	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57a883ac	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ae001d1	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62800e1e	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x641b3fb5	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68c4fa96	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6aa308f5	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6cc79816	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e09652c	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f392f0b	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fa96293	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x715d1007	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x734dbe24	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77bfc3de	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78feefbd	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x793341a4	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x798938fd	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8619a758	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8afa9b8e	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cc11331	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8db04f40	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8df06e98	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e407f9d	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90b13b32	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9170d5fa	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9215076a	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9324d52e	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93f87a29	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x972e5f3a	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f0e3914	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0669849	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4eb4b55	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5d43ee5	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6951dd4	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaad911b5	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac732b82	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0308557	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0fc0593	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb59be926	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5eb9f55	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb85f7e95	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb966442a	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbaa77bb9	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe3cc563	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc062533e	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3403d82	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc600952a	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc679032c	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc75a0b4e	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7c7af0e	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca898cd0	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd9cb2ca	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf5db5b1	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3123906	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd39fb481	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb9b5c3b	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde3816f1	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde9864b0	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf080cab	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0d53c24	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe105abdf	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3ff1dbf	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe407368b	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe496c46e	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6cb3acd	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7b43c1a	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea5735d8	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea7fbab6	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb707710	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed592be0	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee890417	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefc77cd2	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2918049	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3a8a00e	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf78b3f2e	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8a4d985	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff4735bd	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff890e67	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff93f1d8	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffb24064	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02735986	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11ea4c97	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12e29376	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x148e5d5f	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x150ac391	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17789a7a	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21aa1cde	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x244dbd3e	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2452647d	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24c25477	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25c5c47e	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x272522a9	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2873cfc8	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b257d97	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d14ad6f	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2da698c4	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2edd7c86	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x320f7a0f	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32799eff	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3280b2dd	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33446619	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34df8415	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x369630e7	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37fdb399	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x396f0f62	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39ef0ae5	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f4323bd	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42700abd	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bbfbde6	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c2a12ed	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d18debb	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x50e5d157	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x558dfe72	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5932364c	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cb3b2eb	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ebf8b8d	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60f38ff4	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65aa1e91	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67cb4cf4	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68021384	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x702df6bc	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c412592	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d15cbde	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7e1cd4d7	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ee5f728	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x823c9cad	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x861bbae6	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a64d19	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b4e71be	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ed4c88d	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8f63b435	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9179448a	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e349215	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2ff11a7	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa3aa78f6	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa5de5c1	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab26ddc3	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2ab8ec5	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb49a93c3	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb49e445b	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb618056e	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb62396f0	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbca3a35e	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc679b870	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc99fb88f	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcaff11c9	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb91f1a4	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd1cda49	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0269606	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd56cbca4	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd63140fc	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7fe4951	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8972b21	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb424537	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbf30a81	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd34393c	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe45d129c	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe896caf2	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe9237c28	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf0bdc197	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5326f26	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf97483e5	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf98434ee	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe171559	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe4218fe	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe86065d	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xfa8fd123	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x0b28a9ad	qcafrm_create_footer
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x2b6ddf3f	qcafrm_fsm_decode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x41da0375	qcafrm_create_header
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x1194a305	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x1222daad	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x7026546a	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xc1bcab8e	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x0f5508ef	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x1d565f34	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x6101dfc3	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x9faba39e	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xf71a9efb	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x31852c41	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x962003b2	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xc7d47540	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xfa770101	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xa7f832f0	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x17826707	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x5d6bcc6a	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xa615d67c	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xd574f5dc	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xe807acec	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x3ae185af	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x6b7b4e1b	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xd7416623	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xfc820963	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x86bb8333	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xba8da8e8	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x032a9544	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x06698c58	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x06833f27	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x12857ab9	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x20401906	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x231df047	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x35fa7016	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x3d6abb92	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6343e05c	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x71d740da	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x7f3ee207	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x801af46a	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x956ae19c	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa88d9f2c	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa8a5e61e	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc3d438dc	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xed765bf8	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf40ea6e7	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0xe4099bb6	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x19c7233c	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x95ee1861	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xaa14a4f7	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xcc2a262c	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x11c2cf83	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x4a091640	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x6484848e	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x7da4b42a	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x7f03b9ca	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x908c3660	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x965991e8	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xcf7afb3a	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xf56c4f66	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x09322dae	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x8cec498f	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xb172edd3	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xb5181539	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xd9a57839	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x070e28f0	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x41283e4f	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x77a28906	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x93b039e6	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x98d41cab	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xa9bb7888	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xde5e42b1	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf48c0909	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf8fcc632	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xfb6b4f92	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xffeb909e	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x0bf4e087	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x49f36da7	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x83a219d8	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xab405971	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xe2e5efa6	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xf0bfa950	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x0aa3bb59	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x10d25f91	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x165137cb	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x206ebea7	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x227e3efa	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x26d17914	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x29bca3d7	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x36c963a4	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x42eeb3c6	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x43cd04a4	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x55be563a	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x563258c7	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5b93d768	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x62fe26b2	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x67717008	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x718ad47f	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x72de7315	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7ab4595d	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x81d4a761	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8584a92d	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8730907c	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8deecc10	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x92eb79e3	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x93aa3871	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa0213b55	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa5646126	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc3e456c4	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdbfc73f8	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdedcde3c	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe02bdc09	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe936143d	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xef54b1fa	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf8c70b0c	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x0dfcf33f	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x168c4770	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x87679ea0	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xc7518691	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x12b47f1c	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x17990659	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x217decf8	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4e7204ed	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x5884000c	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x5890c87f	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x5aa7031f	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x86de0bc3	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x934cdc7b	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x947e9c1c	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xafde119a	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc1aa75ca	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcb9aa7eb	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd1af29a6	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd5cd0545	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xfb3faaae	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc33ed813	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a15a56c	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x48c89743	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5590bcb4	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x83f8d7ce	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99578e08	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x019bad15	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0ce448f2	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0fcd04a8	iwl_acpi_get_eckv
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0fe38cbb	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1332e4de	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22443b1d	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x22453c63	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x25a6aa4a	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x290185d2	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x310f4fa7	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x38bcba4b	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3c3fb568	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x412b657d	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x42ed6efe	iwl_acpi_get_pwr_limit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x460f9078	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x479d1b5a	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4d0c77b2	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x500b49e7	iwl_acpi_get_mcc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x53f64d05	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x56660d0b	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5988395c	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5a1428ed	iwl_acpi_get_object
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5e63182f	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6928337d	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6a246c24	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6bcb6be0	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x73863f02	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74ba6eb7	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7c0b4e49	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7e488d2d	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8472ec17	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x849e5dcf	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8ba00a12	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8db96785	iwl_acpi_get_wifi_pkg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x914cdcad	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9616eb24	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9832ab88	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x99cdd223	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9f9e8467	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa0a8cfed	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa15b1399	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa53fc75d	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa75dcb4d	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa862f44f	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xacd11f7c	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xafa5a18b	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb6ac2645	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb88ba705	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbb4bf021	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbe162a26	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd3858a8c	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd547c3bf	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd6945733	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd6f63ada	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdc4d62f7	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0eb5838	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe2dc6ebe	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe45f957c	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe75b7e77	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe863bc19	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xec73b08c	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf58633e5	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf7de8977	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf88964e4	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfd908dda	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1a2676e1	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x2b98d63b	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x412fd930	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x6f2d2638	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x7c1ac6a7	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x940dd63e	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xbe7239cd	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xd1d3b11e	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xf5c8cb66	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x121b46e7	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x2baf00a0	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x43c22799	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x48245dcf	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x4b34d668	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb2e845f7	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc2e7f2dd	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd0a8deb9	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd38cb7e6	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xe02985c7	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xea469710	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xef2694e1	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf36405d9	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf431210f	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfe4a7541	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xff3b7144	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x0ef376cc	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x28d78815	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x3ff86147	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x583ff97a	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x692691dd	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x75970118	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7a59b3dd	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7be95183	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1ab0ea11	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2ce65b8c	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x48ebc13d	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4e003d94	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x55b86063	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x71216d3e	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x72acc66e	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7e37c855	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8d8bd632	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x94c1c36c	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa12b5281	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa2578a38	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa8c2bfc9	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xa934d876	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xab972845	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xad52106f	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb2091769	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc23cf063	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc7aeeb86	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcf9fc2f3	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd9250fae	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdc442b00	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdcf090bb	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe4351dff	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x00c70aa2	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x00c7fa8f	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x04651602	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x08175270	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x09e18513	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0f1ab4fd	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x17741cdf	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1cf057c3	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d4f6117	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ff0a26b	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2f3cfc07	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3432a36c	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3ba2d6cc	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4a49b325	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4b3f0754	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4e655bad	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4f1bcc98	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x58a2dba3	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x61bc8d04	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6402e686	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x65bea114	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6b7d2919	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x82327e71	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x85aeb9e3	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x89be483b	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8a985abd	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8aafe2b2	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8d9a264d	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x90036fd6	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x90fc1e6c	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa0e9c543	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb2410aa8	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb6d3cc18	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb8b58e69	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc12087b5	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc432609e	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc5f8ade9	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd1a335f4	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd2393b86	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd4b7a8a6	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd6334d94	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdca1b549	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdd46f14c	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdf1b49dd	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdfa91638	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdfc23afd	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe32b2d0b	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xed3f0f3d	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xef60e2bd	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf1112e10	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf67e2235	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xff263d8c	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xff640dbc	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x4688b38c	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x46f35f64	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x68ee42eb	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x81d8e07d	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x83a7ba60	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xd76fe264	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xf6d9e78e	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xfc8ca676	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x0cfd03c0	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x42fe56ea	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7978d401	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x8ce2a98e	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe715a11b	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xfb77bc34	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xfe8eff4f	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x018322dc	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x021ec945	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x036840bc	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x046092e3	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x05dc06de	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0690f6bf	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0920c5a5	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x09e813df	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0c6fb901	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0c942310	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x12c25dfc	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x18bd9f38	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a7be29c	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2190299d	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2271c6ad	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x24bfe83f	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x290a72da	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2bed27e7	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e490911	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e84fdd1	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3a600b19	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3de0f35d	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3ea1f39e	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4792619c	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x488cb2dd	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4c59bd85	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x518a1d2d	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x54282330	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a42584b	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5ac3c0e7	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5b0bc2cb	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5b4dcaeb	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5b7cf03e	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6111ccd0	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x652256f1	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x685833e4	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6b271149	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x77b54eb0	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x81535a59	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x845c96d4	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84af0ea8	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8bcf2e9e	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8d44ae54	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8fa9cf16	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa38b9934	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xacd29830	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xada6c37a	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaf0cf638	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb183fe00	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbe0d4454	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc08e091e	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc7ebf34d	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcf79a578	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd00c9743	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd6cbaf34	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd70ef36c	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdcd9e6af	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xeae03395	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf2cfc20d	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf3acc630	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf97505e9	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfb051239	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfe44729f	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x2bfa2ce5	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x58dbda22	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x6664a8f9	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x72083ee8	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb2d57024	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb7c2ea85	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xf843c7cb	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1a302fc4	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x24cb7b67	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3f7d3dd5	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x49e842e0	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5626d32e	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x65345f9c	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6da0f92b	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7a1e6cc5	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7d9301c7	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8cfb37a2	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9caa6304	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa0854fc2	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa64a8aff	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xac9fef6c	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb5feb2d2	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc3c01792	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd25005b0	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd56391c8	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xeadb324a	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0e796b4f	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0ef92b1f	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x317a774a	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x3b4396cd	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x47f70498	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x53b64dc7	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x5cfd4e10	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb735eba1	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf47eb206	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x07b0e0b3	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b625036	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b9b1e51	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0dc5a7c0	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x118cbf89	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x14e979ce	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x166d445d	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x19645f95	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1d72bc59	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1e3bbc23	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1fc55a6e	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x20b18c7b	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x27b7060c	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2cab01ea	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x312cb9d5	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4589a376	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x529cbbe8	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5fb7dbef	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x618cba02	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6a20f509	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6c5a1a92	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x731b5e1d	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7e0b4f91	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x83893320	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x905b30e5	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9677e2a8	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x97f3e368	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x98ff71da	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x99bd4c6e	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9b8b1e01	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb224b93d	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb6feb8fc	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb74e1355	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbd9dc3e1	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc2a18d37	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc5d86f2b	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc6cc6d89	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcb9fbcc3	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcd1ca7cb	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd1e42c30	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdfae799f	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe9561fc5	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf38ed85f	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf71fed9b	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x05e48851	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0be79f4c	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1900a6bd	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2b42c122	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x33787f80	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x398c7f17	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3ce4085d	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x52c7a333	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x53accc8d	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x56cdbf07	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x601da5cd	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x91b9fcdb	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9555f9d5	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb045c88c	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe1e5f500	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xea46b014	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x09e3d0f7	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1759938a	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2578f8c1	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x292827f5	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2930aee7	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x29c81fe4	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2cc78068	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2ce97a68	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2d697153	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b810113	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3c55da67	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3e49d199	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x455b7ff8	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x485e4d17	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4de9dba7	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5ce13370	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5dff4179	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6156606c	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x706fdce8	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x78019cc7	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x792a1133	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7aa254cc	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x841dbf47	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x994e4339	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9bbe15a1	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9c0a5c53	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9e1439eb	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9e963b59	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa95fad9b	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaf69fb3c	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb1146da0	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb71c2fbb	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb8665f40	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb97931da	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb9e86ebe	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbad2255d	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbd74e8a0	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbd793b85	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xce3283cc	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd320f73f	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd9944416	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe445c8b1	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe4bc2396	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xece21174	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfaf61266	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfd0b2f79	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x0d1e9cd9	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x69aa4c8d	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x77290a9a	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x8893edfd	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xf7b663a3	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x0132af3b	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x17d1b71c	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x17e343f2	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xb1aa7123	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x179738a5	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x278cdcaa	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2f820bed	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x39470004	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x4a01162d	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x54660cf8	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5c3fa7cb	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6da9af44	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7ff63ef2	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x978ae14b	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa763d96b	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xae509f14	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbc3d41b1	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc92801a7	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd512e7ac	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe7b47181	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5a447734	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5ba39995	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc93f2448	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf723c343	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x05783758	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0c0300a6	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0c1db7a2	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0e68e214	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1b04a89a	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x21d45e6e	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x21d7dcbf	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2c7831f5	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x30e31d02	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0	rtl8723_phy_calculate_bit_shift
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4e04c384	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x534e25d7	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6cbe85a8	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6fcbc8c9	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x705181d9	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7287c847	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7ec8d312	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x81d055bc	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913	rtl8723_phy_set_sw_chnl_cmdarray
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x98ac5b95	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9fb1a838	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xab698221	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaf0c42f8	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc81076bc	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd9d14a06	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf7f8d05a	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfb0b4b31	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00a8b47e	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0425ffab	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x05900042	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1a94d5df	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2386ad4e	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x273faafc	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d32cdfc	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e18ed78	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x33e97aab	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3f3b1c18	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x447633e9	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4c1171ef	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6f6df11d	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x74d2614f	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7719c9d7	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7908164f	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8156432a	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8859d113	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa35f1821	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb507cc1d	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbdd5ee98	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc4af50fc	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd4d67718	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xedc1d16a	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf63b5baf	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfafb009b	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x39794bcf	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x503cdf90	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x6cbd90c2	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x9caa508e	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xf9475a2d	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x609b920e	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x9a16e604	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x9e3cb2fb	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xe85b1505	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x34d108ef	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x3ef9e917	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xa048fa04	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x00702833	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x05ae43a2	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0d61057a	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x11b9e367	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x194d7230	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1aa4555a	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x31a88aeb	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x391a23bf	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3b5cc302	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3d5f5812	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3e4caa6f	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4394e2bb	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x44686984	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4889d990	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x51192ffd	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x51ec193e	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5259e7f8	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x55ce8853	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x62083313	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x67453de1	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7616bf95	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x76caa158	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85ea12aa	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x89e9d2d4	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8d1124f1	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x90d2fbca	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9f150383	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa72e1ac0	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb7d29fa1	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb886b1d2	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb9e1590c	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc8e66939	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcb06d976	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcf955195	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdc8e0c62	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe182351f	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe4689832	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe5443f9b	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xedc4ac98	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf0de2eef	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf4774e0d	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf5044f34	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf579a8f6	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x63f43d73	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x69b48302	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xb41cf726	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xc642d629	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x194a7969	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1bbcf038	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x20ebd202	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x993f8c1b	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x2ce630da	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x40135a8a	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x70f820e8	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x7c660b2b	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x91564bcb	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xc3e2405d	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xd8a47902	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xef18dc99	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x0061ebe5	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xd9c235b3	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xfa6720ca	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x20f19476	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x30934216	ntb_transport_max_size
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x32537aca	ntb_transport_link_query
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x3d54dbfc	ntb_transport_tx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9c992c8f	ntb_transport_link_up
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xb6520f6a	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc270dc24	ntb_transport_free_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc37d9036	ntb_transport_rx_remove
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xd40e7a02	ntb_transport_rx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xe925bf14	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x7003504f	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x705450cd	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0d7ed6c6	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x13e1f62e	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x149bfed0	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x14fd787d	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1bee1c85	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x29605967	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x458b774d	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4b21cf93	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4fa95a1f	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x525596f4	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x58f653cb	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x59402a9f	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x668aa298	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6767886f	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7e22072a	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7fe308b4	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8b3492d5	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8b4aecc1	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8f1f6c08	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x91ea6e51	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9de4f1c5	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa7bbdc62	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa90cfb32	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb8de4b9e	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc41564db	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd39a75c8	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd3c8b9ce	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd659f4af	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdcbb5640	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe07f22be	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xeb4c64a9	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xed9e3bc0	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf31d708e	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf3d62613	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf41af961	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf49b73da	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf80afe35	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfe4b7b10	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0d4bce27	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3741be6f	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4164b264	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x715a1546	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x72ca7147	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x73d7b400	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8a4105c7	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xc7aaf995	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe5c04c0e	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xea3af64e	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf6324646	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf7ccfea3	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xf4596faf	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x337c68c2	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x377950fa	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x59a880fb	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x649ad2e7	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6a336ca6	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6e7d7703	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x73767952	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x8f9048fb	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xcb54d6d9	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xd89a405a	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xdf8908c0	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xf0c03715	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/controller/pcie-iproc 0x530f81b0	iproc_pcie_shutdown
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x05707f3f	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x02a94341	hisi_event_sysfs_show
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x082b8e89	hisi_uncore_pmu_del
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x16a0809c	hisi_uncore_pmu_read
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x18ad3c84	hisi_uncore_pmu_event_init
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x3015a38f	hisi_uncore_pmu_enable
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x3ec4fc27	hisi_uncore_pmu_online_cpu
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x4ceea23a	hisi_uncore_pmu_add
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x65c5d35f	hisi_uncore_pmu_event_update
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x678fb7e7	hisi_uncore_pmu_stop
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0x9b622dce	hisi_uncore_pmu_counter_valid
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xb6fdf9f7	hisi_cpumask_sysfs_show
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xbd00de43	hisi_format_sysfs_show
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xca854d5e	hisi_uncore_pmu_start
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xd7572e62	hisi_uncore_pmu_set_event_period
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xee1466c6	hisi_uncore_pmu_get_event_idx
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xf9a58d11	hisi_uncore_pmu_disable
+EXPORT_SYMBOL_GPL	 drivers/perf/hisilicon/hisi_uncore_pmu 0xfb6373d1	hisi_uncore_pmu_offline_cpu
+EXPORT_SYMBOL_GPL	 drivers/phy/allwinner/phy-sun4i-usb 0x295ebb8e	sun4i_usb_phy_set_squelch_detect
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x0a62db1f	ufs_qcom_phy_init_vregulators
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x1741330d	get_ufs_qcom_phy
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x1cb12d11	ufs_qcom_phy_power_off
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x5fcda1a9	ufs_qcom_phy_init_clks
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x61c0ebb0	ufs_qcom_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x87e64a61	ufs_qcom_phy_power_on
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x94f69ab4	ufs_qcom_phy_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xa74cfb2c	ufs_qcom_phy_set_tx_lane_enable
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xa8176ffa	ufs_qcom_phy_save_controller_version
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-usb2 0x00d48f33	omap_usb2_set_comparator
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x167a6fa8	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x6223986f	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x7f788cc1	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xd7b65547	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x11317ab9	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x14b06c8a	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xb163d55c	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x3b1e940c	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x8275d9fa	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xf6129ee5	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x21f01f28	ptp_qoriq_init
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x267353ef	ptp_qoriq_gettime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x2eae82b0	ptp_qoriq_isr
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x3766ac57	ptp_qoriq_adjfine
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x53bff078	ptp_qoriq_free
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xdcd58943	ptp_qoriq_settime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xea3a0f89	ptp_qoriq_enable
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xf1486b09	ptp_qoriq_adjtime
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x50b1d32b	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x9da8857a	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xca7adbf4	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xd1219c8f	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xe2bf4ded	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x1749ee30	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x746a204c	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x7e89ed5f	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x8f2c702a	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xb036247c	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xb6b1ff5e	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0xa3dcb899	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1c606f94	qcom_add_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x31bfd40e	qcom_unregister_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x4436514d	qcom_add_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x497460ff	qcom_remove_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x4d2847ce	qcom_register_dump_segments
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x86a84622	qcom_register_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x9b4daed6	qcom_remove_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xc980105f	qcom_remove_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xce6aa732	qcom_add_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x4a903993	qcom_q6v5_wait_for_start
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x88af39b2	qcom_q6v5_unprepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x95027369	qcom_q6v5_prepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x9aea8ac5	qcom_q6v5_init
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xb1025d91	qcom_q6v5_request_stop
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0x601e15d1	qcom_add_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0xa881c6fc	qcom_remove_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x005b63f7	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x72dd75d9	qcom_glink_smem_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0xa5a372a3	qcom_glink_smem_register
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0x198776a2	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x02c54cab	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x048bef1f	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x17d17a71	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1eb4285e	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x20ecfe12	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x32b8f193	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x34728939	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x34768e3a	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3b01cb03	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x45687c5d	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x510f34f1	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x527cd07c	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x56871590	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5aa77904	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5adf9a5b	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x63c15810	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6f10aebb	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x79cdbf7c	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8590c822	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8b78b5f2	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa06957a6	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa5246590	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa89b1b82	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xba1c38a5	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbb6d964b	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbc90ecc6	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbcebd512	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc242745b	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc38381db	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc4333eaa	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc527845c	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc7cefe93	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc8e9fa2b	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc9d4c7ed	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd08428d0	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdc0e57b4	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdcffa302	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xdf1ff6ae	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe6157175	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xebfecd8c	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xed20bcd1	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xed77956f	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfb6084bd	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfc2ae7ea	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x01bdc34a	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x09570fb5	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x177462a6	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x2a935989	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x32f98990	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x59376177	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x604481a2	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x6564b0fa	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x70f4ae4d	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x73b4ad3c	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7d304b19	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa5038d2e	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xab14c10a	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc0861534	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf2aeda05	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf5851021	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x6518c415	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x9f0b7a0e	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x01f383ef	hisi_sas_phy_down
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x079dfebf	hisi_sas_scan_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x10d7f651	hisi_sas_sata_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x14490125	hisi_sas_debugfs_exit
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x1d10ce6c	hisi_sas_phy_enable
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x1f7d4ea0	hisi_sas_slot_task_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x242b99ef	hisi_sas_debugfs_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x33bb04d6	hisi_sas_release_tasks
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x364d01e2	hisi_sas_probe
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x37e3f64e	hisi_sas_stop_phys
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4c10ad72	hisi_sas_get_fw_info
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x4fc22123	hisi_sas_stt
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x582e8133	hisi_sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x5e35124e	hisi_sas_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x6b8144b6	hisi_sas_host_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x79c3557d	to_hisi_sas_port
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x90abef4c	hisi_sas_notify_phy_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x9adb581b	hisi_sas_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0x9b807c91	hisi_sas_get_prog_phy_linkrate_mask
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xaaf97683	hisi_sas_sync_irqs
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xb03aa9c5	hisi_sas_rst_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xc03bf270	hisi_sas_init_mem
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xc3a41131	hisi_sas_debugfs_dump_count
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xdc5e4cfd	hisi_sas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe094f98e	hisi_sas_debugfs_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe201927d	hisi_sas_controller_reset_prepare
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe330cb74	hisi_sas_sync_rst_work_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xe987d9aa	hisi_sas_debugfs_enable
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xebfae55c	hisi_sas_get_ata_protocol
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xed1dfd94	hisi_sas_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xf9ad30b4	hisi_sas_phy_oob_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/hisi_sas/hisi_sas_main 0xfd44ddae	hisi_sas_controller_reset_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0dd15bd8	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5d86b9a2	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x61e3836d	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x74d7c428	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x971adf37	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xa976cc81	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xdd2bd186	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0xc34ea0a4	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0171b17d	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x02cbf9f5	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x07ba7abe	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12a44fb8	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x165f7f28	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x184e5d02	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1cfddf5f	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1faec4ac	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x20edf273	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2339f3bb	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2e9e984f	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3048fdf4	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x31b9350a	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4a1f8cce	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4d75df61	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x60286267	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x61bace84	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x61d95a34	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6f5349fa	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x71ac2209	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x725e30ef	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7367d866	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7bfcdd46	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7df30af4	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x81bc0b83	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x82ae2178	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9234866b	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9a42c5b1	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa16cf9f5	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa2da0315	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa38ab491	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xadaa9a7d	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xae1a7c19	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc0edff49	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc73c48ef	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc9efaa80	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xca07c220	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd08d18ed	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe394006e	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf7194249	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf906b547	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfb9914d9	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x00941f1a	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x00f348ec	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0592336f	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1d45eedb	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x262011dc	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x50bddf8b	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x59087f25	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6496044f	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x89ceb130	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x94473503	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x969514d9	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xaba4b87e	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc919c282	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xcc6108b0	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd98c7621	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe00faff5	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf6d95620	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x057cd9bc	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1000cd1f	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x24474e5b	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x24667089	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x263d2c31	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2bf8ed56	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2ce535e2	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x39131822	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x39d911af	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4082287b	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d34140b	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x50e619c6	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x561448da	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5ddffcb4	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x625b545c	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x69f01137	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6bbf80c6	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6f101b6e	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6fbffe4f	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x775334fe	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8cd3ec3f	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb23bfe6a	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb95c66a6	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbce271ff	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcc6d000b	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0492429c	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x067eb5f3	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0adb8a6e	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x13e5e467	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x22512055	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x30d8da2b	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3245fd67	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x343db723	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x36ff5ae7	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x458c94da	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4799e33a	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5058a58a	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x52520232	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x542dd40e	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5c6ffe53	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5e5bc0dd	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x62c8dc3c	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x632a05ab	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x663b2f44	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x77378c9a	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8344d010	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x867dfca5	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x948abf82	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x94c43201	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9a03bf20	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa0b782c2	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa8ef919c	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa9f46212	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xac54e565	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb425466d	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc311c640	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdaa9452d	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdafbe30b	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe1b0744c	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe35306e0	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xec07bd74	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xedafcc2d	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xee3039ef	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf0587175	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf1ae9192	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xff8792d9	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x363f45c4	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x9c1bdcc4	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xc4dc8588	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xedfe7ce3	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x77088344	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x12fe66ee	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x159c8082	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x6a12dbd1	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9f0c3ae0	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xaad55e21	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xe4205667	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x16047961	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x423c1ea9	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x771b17ac	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8b0ff885	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8f5666ea	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8fff3190	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x956e9519	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe8ce7bfd	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xea7a8eb0	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x06c5146a	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x39303cae	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x8b4395e0	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x9ca60d98	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xb0ab6ad2	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xbd4b866d	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xc7e5cda6	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x452d585d	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x6afd075b	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x82c6ab3a	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x890c12ae	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x9ff48221	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xcb25b03d	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x043d54b7	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0f83879c	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4f6d64c8	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5b00f052	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7d7131e7	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7edab676	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8ba4c9ce	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8d8dce37	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8f989669	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x960bbb3b	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9808fc39	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9b6d5fb0	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9ea3fdb8	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa5ddc52c	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa6b15a1d	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xae472770	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xbe0e5064	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc2b432c5	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc569b260	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc62d6961	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xca3196a4	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd0024ecc	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xdf19e7ee	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe5f1d2bf	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe7ed5f32	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xed57296b	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x494128eb	meson_canvas_alloc
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x673c5a86	meson_canvas_config
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xddcdee08	meson_canvas_get
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xfbd79150	meson_canvas_free
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x0261cd01	dpaa2_io_store_next
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x18026bd6	dpaa2_io_service_deregister
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x1b7c4023	dpaa2_io_service_rearm
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x2ea89927	dpaa2_io_service_pull_channel
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x2f10852c	dpaa2_io_service_select
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x3f8992eb	dpaa2_io_service_release
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x4994345c	dpaa2_io_store_destroy
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x6560c60d	dpaa2_io_service_acquire
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x79cf65a1	dpaa2_io_service_enqueue_qd
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x8edafa55	dpaa2_io_query_bp_count
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0x96e355bc	dpaa2_io_service_register
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xb9e81961	dpaa2_io_query_fq_count
+EXPORT_SYMBOL_GPL	 drivers/soc/fsl/dpio/fsl-mc-dpio 0xc7ac2138	dpaa2_io_store_create
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x41626202	apr_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x95462671	__apr_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xaf75d557	apr_send_pkt
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xb592dc92	aprbus
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x03c9a66d	llcc_get_slice_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x0679b34d	llcc_slice_getd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x5f15df29	qcom_llcc_remove
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x7e773088	llcc_get_slice_id
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xad3516c4	llcc_slice_activate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xb534ec76	llcc_slice_deactivate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xb68b1300	llcc_slice_putd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xcea41ad5	qcom_llcc_probe
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x37c098bd	qcom_mdt_load_no_init
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x3cdcd20f	qcom_mdt_get_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x9b2610ab	qcom_mdt_load
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xce86a1a1	qcom_mdt_read_metadata
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x2ea3133e	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xd38052af	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xd558d362	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bcm-qspi 0x48cd306f	bcm_qspi_remove
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bcm-qspi 0x83107da9	bcm_qspi_probe
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bcm-qspi 0xe3dffd96	bcm_qspi_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x4c0e28fd	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x6e7eb561	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x7365e77e	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xc21fb491	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xdc8058de	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xe9874fc0	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x4bfd288c	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x521e9286	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x7b6f7659	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x96a88421	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9aff66d6	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x633f7a98	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x991a5ee2	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xfb2414f8	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x04903f20	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x0e18235d	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x14b979e2	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2d4469e2	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x328dc8c7	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3aee89f1	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3dbbdbb9	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x40269ca0	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x60b8ec48	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x695657e4	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x74313bc1	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8c87a0ed	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb5bbfb90	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xca6e227f	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd7f2bcbc	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xde4f329b	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe3419789	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf1258b69	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0xc2bc94ec	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0c198629	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1241a0ee	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x131f43b3	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1e146839	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1e992db4	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x25d18ea7	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2c0c034b	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3c3735ae	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x47f06324	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4d8403b7	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x506a0134	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x57c48207	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5823780c	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5ad2385b	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x63bbfa96	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x64efeee3	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6c62f1e6	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x88fb5ac9	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x89048e20	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8c5c7b2f	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8c984121	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x91b7eb42	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x92adf12e	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x949fdc13	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x95b9c17d	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb309ea2b	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb37c7a1b	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb943446	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc216e6f5	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc596bfc7	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc97131ee	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd24266d9	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdbc9b3ea	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe0f89cd9	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf14030d5	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfd395286	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x1b2a46f5	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x52c48175	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x80518147	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x857d7ced	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x934a49d1	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xe3f1f368	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xe69006b8	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xf45f857f	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x2289497e	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x2a1fba98	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x3207c8ad	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x461d67db	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x89ca4185	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xf0a637df	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0xe41fcd49	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xa6daad02	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0xdf18e5e8	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0x4b14959f	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x2242d016	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x4c22e1a1	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x53660304	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x599626fc	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6270737c	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x72f80bfd	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x782a5271	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x78e37e47	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa1f349bd	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa7101d6d	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xba7f89e9	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xed974a12	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf420dddc	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x229a86f5	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x3df32958	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xe24e45d6	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0x7562852f	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x093ae37a	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1ac6c8e4	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x2138d055	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x475a8b8b	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4c31ce5a	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5abb8e10	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8036e55b	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x83785e13	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xaf24de56	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbac639fb	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc66c308c	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xcc21da8a	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xdcb9995e	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xe638bf93	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf402ea89	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xfd3f32d6	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x1e1d2704	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x8766f20a	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x3e979d77	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x44175296	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x469c2823	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x547b01d1	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x714a3dc8	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x78b5c4d5	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x91a16980	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x91d85d0c	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x95ab6398	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x968a89f4	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9cf22c5d	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9dba69bd	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xbb72c3e1	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xbff5e4fa	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc3df5c92	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfd6380c5	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x051264a3	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x0771ac57	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x12f17d05	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x385cb320	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x685ab6e0	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x6bc812f3	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x245e02b8	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x34a7dde0	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x4a6d5b5f	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x67a7a931	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x7c1f6d94	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xdf4cabcd	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xe539e2e5	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x15e8fa7b	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x295c3463	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x31b86124	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x38e4b03e	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x4cbfbc13	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5099de27	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x59941984	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x868863ce	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x93cf2184	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa5334e8c	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xe787a224	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xebf8eed3	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xf67ef4c0	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x216eeb21	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xa08794d9	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xec19014c	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xf10b24ac	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1932aaef	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3cbd4483	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x46b6d0bb	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x58988217	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5bf41b29	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5f32cadd	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x67206365	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x803c4a45	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x88378605	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x9e1218e9	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xad353a2b	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xb3a76db2	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdfb83011	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x15f46cae	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x18b09e1f	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2d68c977	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x30686254	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x4bbc7656	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x624acbfb	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x664d3ab9	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x71c65a81	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7ab382f4	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x7f31ef2a	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x805c795c	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x856a827e	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xdb229886	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x28a1c26a	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xf8c32108	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x0f091b06	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x18aae6fd	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x013059df	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x56e8fadb	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0xfcb4c430	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x20b148cf	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3474755a	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4b5e69da	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x5efafb50	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x61c2cf27	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x749eded2	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3078a8a	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xad4017cd	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xadc9d88e	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xbc2a67af	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd2363fb1	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xd64ec04c	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe4940659	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe93cc28e	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xef9b2af2	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfb2a66d0	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfc2450d0	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0x2e5fa911	nal_h264_read_filler
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0x71b7d154	nal_h264_write_sps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0x7c588c89	nal_h264_read_sps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0xb779bfe1	nal_h264_read_pps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0xb9e1e2eb	nal_h264_write_filler
+EXPORT_SYMBOL_GPL	 drivers/staging/media/allegro-dvt/allegro 0xd6c56cc1	nal_h264_write_pps
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0a473b00	amvdec_write_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0b5a419e	amvdec_dst_buf_done_idx
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0c1dc36f	amvdec_clear_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x1ec00811	amvdec_dst_buf_done_offset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x22c1560a	amvdec_src_change
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x3adbda2d	amvdec_read_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x41256837	amvdec_abort
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x490b3dd6	amvdec_remove_ts
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x5c355f6b	amvdec_set_par_from_dar
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x7c0a696e	amvdec_add_ts_reorder
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xa4287f3b	amvdec_dst_buf_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xabe7b2f9	amvdec_set_canvases
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb39828ce	amvdec_write_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb7c70ec6	amvdec_read_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xdef4ea9d	amvdec_write_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xfc18198a	amvdec_get_output_size
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2b9d4512	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3494ad80	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x41987531	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x4924462c	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x70166dc3	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x746e335a	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x82a3270b	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x97e48a91	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb40d94c0	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xbfd3e35a	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xcad0957b	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xcbe15c7c	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe4421a81	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf65f1413	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1b8f6142	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x22fee934	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x49dd0caa	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4da6e80a	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x58a76d12	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x79f02067	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x86f86324	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x94782c7f	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x9855d8ff	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x9ec0355f	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb0d8eb91	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb734cb9d	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb747b0f6	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc0869679	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd38f1951	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd93829dd	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xec32f4dd	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf6748808	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf7cbf201	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x611493e1	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x883cf9ea	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xdb769781	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x0048594f	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x0f95d97f	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x4a10950c	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x56e808c9	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x5a3f95a1	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xb8202245	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xdb2203c4	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xdcc04585	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x028c370d	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04dcc11a	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x05e97a85	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x19d21a59	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x19fd3ed7	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1be7893f	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x26344114	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2b544c3f	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3af51708	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x493a7fdb	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x49f0bf8b	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4ef03e4d	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x554ae450	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x574f377f	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5ada425e	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5ceafec5	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x61436b03	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x61ecd5fd	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x634c138f	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7407c3aa	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x77dbc0bf	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x85e4ed19	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x920693aa	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9385bb9b	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x97e4c621	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9bb5e10c	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa53f0dd8	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa82edd94	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb7c3cfb0	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbff24dde	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc7a100f4	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcc6f873f	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcebb11be	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xda267753	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xeb9449de	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf3b1474e	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf8effa31	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x731cb252	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x1c2e05e5	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x2f81c450	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x6346f2b9	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xae53c3eb	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xce2c9877	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xfcf3a2a4	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xfe1b68cd	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x010082e4	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5b322c43	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x929c5798	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xa35812ab	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xbe63f993	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xea3dcbf3	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xeb56472b	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x1f0652a7	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x4cfc4939	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x5f2a5cdf	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x62477296	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x76562ae7	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x770b2567	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8dbeb345	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8e76723b	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x93df31f2	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa5094768	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa709219f	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xaff8b6af	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe97fdb6f	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xed4f3a7c	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x15feffd5	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x26f7868e	tee_client_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x31bfba13	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x397111f2	tee_device_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x55690456	tee_client_get_version
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x58371d5b	teedev_open
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x628458b7	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x672c38c7	teedev_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x68e19975	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x6dfe6814	tee_client_open_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x7096c6e7	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x74691d42	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x7922ad6b	tee_client_close_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x7a75e846	tee_client_open_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x88eeabdb	tee_shm_put
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x9205cf5c	tee_shm_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x98f65f22	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x9f74180f	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb41eeda0	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbf763af2	tee_shm_alloc_kernel_buf
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc36c5da0	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc40d50f7	tee_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc6d586b8	tee_bus_type
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xcd0aa995	tee_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xcd620d7c	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd480036f	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xfc028ed7	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xfeb338b3	tee_shm_free
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x9c63fff0	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xdc9ebe2d	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xfb0f15b3	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xab349106	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0xc5a510a6	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x82686ea4	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xbb5871e7	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xc4d4961d	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x0af608bf	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x0f7eb72e	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x9b0cd5db	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xa1234245	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xeafb0028	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x0b9cb211	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x45817c72	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x56b620d5	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x6b90ddc8	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xb557af28	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xd593feda	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0baceaa8	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x331ffb23	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x50b85981	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x9ecf98ac	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xcd81300e	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xd801dba6	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x02b63eb2	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0d4e4a97	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x277a3097	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x327e2ee9	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x44b52774	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x46b810a7	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x5e3dbd5e	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x65b04f8b	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x788f5087	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xa17b56e4	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb26b4475	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb3d62528	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb96948e8	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xc63db676	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd6659880	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x4a877a08	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x76930744	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x57f469c5	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x5a39cbe0	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xa4fb800b	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x02b500da	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x38b43f03	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x440d22ab	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x46ec1a49	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x543cb2dc	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x57707f19	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x690a4f36	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6b98c080	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6e35c940	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7c53234c	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa41caaab	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa7de53f9	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb5543d85	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb9c83ad0	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xbb2d2ee2	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xcfdb3ab5	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1b61a77	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2f270878	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x43e29cfa	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x4477c67c	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x451b5365	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x4ab2246a	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5eff2d02	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x644ed744	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa0c2f2a6	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa2b17fa1	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc188d6bc	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd1cef59a	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd38b60df	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd3c30a87	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xde899d73	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf0642960	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x09321a85	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1007a708	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x138a32a9	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x18502994	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2325d5f7	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x300a04bd	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3775b5db	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3857a7d3	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x41b42ead	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x57ca9671	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x59c5cb20	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5a000631	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x61caa9dd	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6adc3359	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6bd806ce	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7c7dc1f5	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7e8e5625	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9cbb0e64	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb608695e	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb73d6ec0	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb78e5ec8	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe0ae7d22	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe2823565	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe5cd24bd	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe8d67195	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xee8c9572	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf2d76301	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf5e803fb	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf6367f27	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf750005a	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf79eb668	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x08217cb2	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x21f1be62	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x83e23c3c	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x97bb6c04	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xc7097250	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xe047b1c1	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xe701b1b5	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xee118cea	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xfbf39b57	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x158e1229	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x16207f6e	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x16b9308b	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x210f32ec	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x213d1dc3	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28d7b077	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3b08fe81	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4627e6cf	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x482d6f47	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4c2b1832	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4d56baaa	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5d79175c	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5df5455f	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x672218e0	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x72c3ca27	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7c96a87b	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7e58fb58	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x880d6321	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94c3d8ac	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x99cb3c0b	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa4426039	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa83bf898	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc39150e0	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xdd16f669	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xe4fc58ce	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x738005a0	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xd0bea9b9	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x181aad0f	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x1f35dc16	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x2169cb03	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x2b56d58b	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x4af13d01	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x937696b7	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xdfcfba67	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe27a755f	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe89ed1d2	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x667231b1	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x68ad2ea5	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x839d0375	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xff1d6fab	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x2bf00650	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x2d0c9c6b	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x5d8ec033	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xdf837d0d	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xe59c0c4c	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0xe2b8dc78	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x3a4b348c	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1b593b59	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2431da3c	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x487e2e43	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x50af110d	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x536e78eb	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x567e6cc9	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5c8fec5f	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5f605b6c	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x69bc861c	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x804f43e4	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x83c9a2d2	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x92b801dc	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb3885008	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb91cbaf1	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbcc66e14	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbd890d43	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc4e07498	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc7b736cf	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xcda3b03a	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf0fe1890	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xff16de34	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x70d3f843	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x92b938cd	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6eb8fe37	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x4aa53d80	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x06a73591	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0cd38e51	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x176e8c5b	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2aebf60f	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2b95e1c6	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2f5aef5e	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x314f6925	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3c821a41	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3ffaef38	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x41633912	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x45a82dbb	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x51843404	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x60b26018	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x664f935f	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6bcca436	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x81beb77b	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8bcbc5c9	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8cca6e29	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9286c9df	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa44690a8	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa62b3002	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa79a9b95	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa7d635a4	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xaee3d4fe	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb09bd906	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb6dc5619	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc5be74a3	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcce50c49	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xce8cecf5	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcfa94963	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf38353f5	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf43c7cc9	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x1095df07	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x220cccfa	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x34f4e53e	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xa2aa71d2	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xfecc3e77	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3879f6e4	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x41437ba1	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78d8bc4d	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x865d46e2	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x95e7fb9e	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x9fe1bd33	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xaf2a6de5	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xbc339e64	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xcc35d9c8	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd7fe6bf8	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xee207e50	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xee4ef2af	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf4d40dd2	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xf4ad436c	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x44f03e14	vfio_platform_remove_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x6ed5a454	__vfio_platform_register_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x96473882	vfio_platform_probe_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0xdaeb8b2e	vfio_platform_unregister_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x02e3056a	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x07339ac8	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x2ea14a0f	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x335607c5	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x6327b822	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x813a1e98	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x9c27d582	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc7c059bf	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xcb1ec6c0	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x4d376404	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xf33ca985	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x00c1958e	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x092e514f	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0ddb394f	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x11a00710	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x128dc37b	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x18dbcf23	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x194228df	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1f15a204	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x26afa981	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x299b2ea8	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3a0772bf	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x45778e26	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x50095570	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x52264917	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6632bf3b	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6e8dad78	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6f0dc877	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8a929914	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9690adbd	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9f90fd20	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9fbc0e77	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa016f3bd	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa230fac8	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa4e4e6ed	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa585a03c	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa5a54206	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa823539e	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa82740c5	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xaac5441d	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb3d78efa	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb6e39d1e	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb95787df	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc3e46a22	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc6eb0c40	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd0aff290	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdfa93ca8	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe11397d1	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe85887e3	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x762ab600	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x93ee7669	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x9a61dd22	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xa55a1d1f	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xb53b3e97	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfb192e10	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfb5172c1	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0xbaa7711f	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x39836cf9	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xc212a417	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x377d20fe	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x97b32cf1	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x16a2f047	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x241de157	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2d715fa4	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x306d1b57	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x34119c40	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x382fa336	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x4b387a63	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7c13dcb9	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa4786765	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa9df5a15	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xaed69873	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x1a94f63a	xen_front_pgdir_shbuf_map
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x665a8f52	xen_front_pgdir_shbuf_get_dir_start
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0x9785cfca	xen_front_pgdir_shbuf_unmap
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xbf7d08e2	xen_front_pgdir_shbuf_free
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-front-pgdir-shbuf 0xe425eff5	xen_front_pgdir_shbuf_alloc
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x024af9e8	xen_privcmd_fops
+EXPORT_SYMBOL_GPL	 drivers/xen/xen-privcmd 0x12edd725	xen_privcmdbuf_fops
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x39d57c2d	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x3da922d8	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x6602da30	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3c6a5eb5	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x532b8518	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x5e12e23a	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x5f650234	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x7cfadaf6	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xb405b5d2	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xf6bc843a	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x013f5f07	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x01fed8e3	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0257dbd1	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x030e7059	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x03821dec	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0494c585	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x064ed837	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x09bd8e78	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a8044bc	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a9d36db	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0e6ac538	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0ed14769	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1296356b	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x16723914	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x17ee06c6	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1901a2e9	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x19dd8902	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1dd5f2e2	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f20641e	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21ca78f8	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21f22a1f	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22648a76	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2c96ae5a	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3054b0ea	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x328cb829	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x36ef3960	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38e697bd	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3986e8ca	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3993eb96	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3a6a52c5	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c19fbee	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3cc747b0	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x411fea21	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x455eff35	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x45cd168c	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x47aaf66c	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4bdf39ce	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c8917f8	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51ead8cd	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x532cba22	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x533cc8d6	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x535d0c58	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x54c11f1f	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a10071b	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5d739c72	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ef678f1	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60d3fc7c	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x61ceb782	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x642a54e0	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x663e8767	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x688700d4	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6911ced6	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6d303ff1	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x70464f27	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7261f08a	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7496ae7e	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x76e79bd5	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7a29b509	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c05fd89	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7eb4b72f	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f59c4c2	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8016dfa8	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x801f2129	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x828e2e08	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x889d3403	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e5c42dd	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8eca6e8a	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fc68152	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8fdaa001	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9140f132	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x929040e5	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92a0ae23	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92f87b1d	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9614a5df	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x980967f2	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9958be0c	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2f40605	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2ff6100	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa36e4434	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa58ce221	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa7d3c3fb	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9d5dd83	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xabd83d04	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xacbcf3ce	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb07a7cbb	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb085fd83	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb08f6cdf	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb1836abf	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb3ccaae1	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb57233b0	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5e6a137	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb8f99c8e	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbf1d7a89	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc0db4a41	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc4b36fac	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9f6fefa	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca0b6d47	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcdaa75d9	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd3dc2204	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd52b2645	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd5fb8fc4	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd9f9d92e	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdad65d9d	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb6eccbd	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xddc850c2	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf11dd9e	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf81ea04	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe0db1ab8	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe188dd3d	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1cf7c1e	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe20da267	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe229fb45	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe22a5498	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe3045953	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe4a7aba2	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5b81917	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe7eef930	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe9910d25	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb10cadd	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xed4b04bf	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xee151e48	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeebfa99e	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf38f8984	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf46bfe30	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4a0e17b	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf508980e	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf516b116	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf8e84e91	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf9dffebc	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe53d7bc	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x3e4917c3	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0079c28d	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x008bb565	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x061b9d42	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x07f9d13c	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0df0cd16	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0f10d252	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x10af0b2a	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x151bf71d	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x16ff4d16	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x18d5c4dd	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1fc0f2ef	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x20049b05	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2abe56f0	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2d6297ae	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x384a1400	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3a02433d	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3f7ba872	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3fda437c	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x42aee7ac	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4e8a2010	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x51a381e1	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x539f584a	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5454d4a5	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x571ed861	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5d6d85c8	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5f3925df	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6563b413	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6ab080ea	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x71ec3dee	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7cb81947	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x83214ca1	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x83babfb4	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x86dd5456	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8952abd1	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8d7fad53	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8ff04cd5	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x92917d9f	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x92f5096d	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x940d5b63	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9c1ad046	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9d5e8be3	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9eb255d9	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb00699ea	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbb2f2a3b	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc53387c6	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc585c46e	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc6bc7063	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcf1451fe	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd2f14b81	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd4b49a99	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd4deb426	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd9fb2a1c	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe26e60dd	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed473d1d	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee1187ee	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xef8a1f4b	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf8e9bc27	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfb5bc8c7	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xff8296fc	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x002704c4	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x961a4b1a	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xfd2cc046	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xe0bce7fe	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xf4b57334	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x138592ab	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x32182db5	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x78119f56	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x78ef02c4	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x7b1bb59b	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa723ed22	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf0f61317	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x03c833b4	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x34e27f69	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x9559cbbb	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xad231327	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xb8fdd76b	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xe86ec984	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9abfd855	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcf1a8039	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd4014f20	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xf0795b33	ocfs2_plock
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x25a60249	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x951ff4cf	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x9d48649b	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x4362456f	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xb59f9854	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xb36119f7	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xee9e8a84	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x2059542c	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0x3089ee06	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xa3fc7848	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe461b62e	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe84301f5	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xf51d2977	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1da25f02	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x24bb69bf	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4aae67fa	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4ff3c0de	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x603d22d9	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x62c7995f	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x703f5902	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xf8f70fed	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x3cadc1ee	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xc32528b1	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0x71ba8214	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x1c22fb68	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x63b96f53	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x830ecfb4	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x84f946b5	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x85f56563	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x934fc4da	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xe10c6d82	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xf9f0c79f	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0x5f1441d4	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1bcdc385	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x204a35cb	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2125e21c	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2408c1c5	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x41c23ed4	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x5232815e	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x61fc3499	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7c5a0564	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8617ca54	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x95830094	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xa38f8215	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb05842b4	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb2a46275	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb4d3d7c7	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xbaf944bd	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xedf9e73c	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf692bbab	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf99de08a	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/core/failover 0x4dcc9da9	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x51985f0f	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xce68d008	failover_register
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0390c2a1	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0e6df573	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0e7126a3	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1e80d147	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1eabdc1d	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x250a0ae2	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2b55c84c	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3318353a	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x333e7ea1	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x34b53ea4	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3c012642	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3fae99bf	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x459651a8	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4717533b	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x497e3ab1	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x52f880da	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5df4eada	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5f903079	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6665c6c9	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x70fa6f74	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x722630de	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9097e705	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa2624a42	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa6d051aa	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xac302179	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xad893b24	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xae3ba318	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb4ff1554	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbcdcf711	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc3b6a26c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd1b05d2c	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdf4680ea	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdfef8d9e	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xee773188	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf230e84f	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfbb6a3df	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xffd780d5	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x02fc4102	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x248e9c77	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x81757b00	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb3e3aaeb	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb5f09f83	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xf72bcf0c	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x00bd6e50	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1160b85a	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x15e14d42	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1877822b	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3f454797	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x49055eb0	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x55923c25	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5ca33173	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6465011d	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6a496cb9	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x85b0f99c	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x8b3c8aa5	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x93068eb9	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbfcc2a37	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc4ef65bd	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xcbfb6496	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xcd6a4107	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe2fbf82b	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe47c0be6	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xfd827ce4	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xfdea2692	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x3fd27c57	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x44531145	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x6dce763e	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xe77606f2	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x07ab2f9c	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x91d8b454	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x9a17f20e	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xbcd2e0c4	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xc09ae0fe	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xcead1384	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x25bd9aac	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x486722ac	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x693f6054	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x059a027f	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x42cc004c	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x3e5ca518	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x43ae38fe	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x45ab942e	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x51c08208	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x9a5c98ad	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xc78c290a	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd4130c07	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd81a78e7	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xf1c03a7e	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xb0942c48	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x051b76ef	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x05db7d1f	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x121983ce	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x29117428	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x2c6c31e2	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x33d4f827	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3da7eed0	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4614a924	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x86deb08f	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8da10065	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xab9f3189	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc67f0f7c	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xdc8be91d	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xde974525	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe8dd4932	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf37ca52d	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x4b6b20dd	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x6d72b786	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x1ce17cda	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x4b6b7b97	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x3bbd908f	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x7009aca0	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x770f1ede	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xb77820b2	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xdcb0063f	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x02b28bfe	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x093b62b5	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x5295a809	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xc575bcd9	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x14472156	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xfce6b945	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x13c4dab9	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x4a8ca476	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x6abe3962	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x81f34097	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xfbbbe0a2	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x7742b6d1	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x7a27f8ed	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x7b0c9a0d	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x81c84dc9	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x8da38754	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x96e3bfe3	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x9d00e707	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xbc6b3c88	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x6c75a5db	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x7d1693a6	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x9016c845	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x6fc2e033	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xa597665f	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xb20107c3	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x6ba83638	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x76281308	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x65b1a11c	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x1f492878	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xeb23f36f	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x98cc4799	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x29739183	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x3af9815e	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x413350d2	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x6372264d	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xc0ba643f	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x85d52a97	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x0147dd21	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x3376b4c4	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xbd4aec40	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x3e268016	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xfbaf0dff	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0dc8cdad	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1a315acf	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1e12c603	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x260e971c	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6192d43f	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7b8e720c	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8c2ce199	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x97adf00b	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa29f7ddd	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb0446ded	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xbeb6b32d	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd0b547ed	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd0d3e5de	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd26c44c0	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe7c1b95b	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xed551f2f	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf39b5dee	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xdf9b5609	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x0ffbe893	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1042bd71	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x345d44d4	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3974d47b	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x464749c8	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x46505632	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x4c584ad8	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x54ae0903	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6b88fe08	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x995e5aea	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xba47e991	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xc33b217f	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xd8ea7031	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe717cb94	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf53f5af8	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf737a292	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x2efc9b26	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x75eab788	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xafe082fc	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xc6efd728	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xfa6d24ae	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x019a59da	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0262f13e	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x11184357	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x11fee6d2	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x19ed4cc1	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1b1992b4	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1bda45eb	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x261d3b62	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2db81be7	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x35f0aa7d	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x371029d3	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x44e1a99a	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x96f52177	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x98ddab5f	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb7478c89	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbf0103ad	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe6dde2c8	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xeacd0d94	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x346055d8	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x42a83d6f	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x55a6a589	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x8358b040	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x185a4ca6	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3ff55ad3	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x41d3f05d	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x6cec5e02	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x82955ccc	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x8c4cb9c3	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xe3eb241a	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x026a01e9	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0290a0bb	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x03f4ced2	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x09ba961d	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0d556561	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0f99788d	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0fd3b1c3	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x195823ce	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1a52bcaa	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x217ace0a	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x225f84f8	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x293bef2c	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2fc6446e	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x322eb92d	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x398f4e10	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c6006f0	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3e405827	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3f2521be	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x40c4837d	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x42957295	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x45fbd61b	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x49d2d4b5	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4f722da0	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4fa9e89a	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5555e05f	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x55ffb52a	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x594b1daa	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5a142800	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5f0e95b4	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5f8fb5f5	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x647dbdbc	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6add0350	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6cfe7bd9	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6db7c10b	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6fb12615	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x70813fa0	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x70a7a061	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x762acbe7	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7a45c691	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7df0d3a4	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x801ef4e3	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x881e72ad	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ea4278a	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8f96e7fb	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x905044df	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x93510954	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x96d63176	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x99ca208f	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb7399	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b08f181	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9d1b3ac5	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9de128fb	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9e70dc65	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa5b8db94	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa5ed4442	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa8210256	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xab6e473a	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaccd42a0	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf0847f0	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb45e9b12	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb486bcbc	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbcfd7023	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcbc337a2	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcdbda7c0	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcdfdfbcf	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xce5b00a3	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd9b3438b	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdba7326b	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdcb35670	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdf2a3253	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdfdd2d39	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe5357450	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe8a3f69e	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xef1e3315	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf289476a	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf5e1cf91	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6116938	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6ed53a6	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6f4ec8e	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf7436507	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf7f2b409	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf9d960b6	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfbac1bb6	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xff4b4035	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x6687947f	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xfb973d0b	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x0bf7c34b	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x23c7ccd0	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x32294ac7	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x44b8b8dd	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x55603828	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x6093860f	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x72f56638	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x7843e1f1	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xb44417ef	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xef9b86ac	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xf5949a40	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xb60857c8	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x78947086	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd9876b07	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xdf911fb5	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xf06c1235	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x0cc9ea07	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x230de059	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x357e5e4b	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x3d501a6c	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x601e4ffc	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x9ef7e80a	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe916dea4	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xd42cbbd5	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x3a07d5e6	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x3d52a4e5	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x68cf518e	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xd78d5fb1	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0bcb4771	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1b9a04e7	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x23ab7f0a	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4e8d7cb8	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x60da89a7	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7286f0cc	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x75993fb6	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x77bed4aa	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa3521c1e	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xac146f23	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb791413b	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xeb7a5ee3	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x0f2e7f7a	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x5c9bff59	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xb96f03e8	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbabe1def	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc663c73d	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xdead32ba	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1779a8e5	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2356cddf	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2895e816	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2e6d19fe	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3e8fba48	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x521bb8eb	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5ad9771f	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x623c6470	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x6c3d11a9	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa2e70558	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa77e3bbc	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xab2503d3	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb2554cb8	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbe7635d5	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc82b5ce7	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xdd36e0af	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x056bf701	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1466fd41	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x47ebd79e	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x4a0c834c	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x6a99fa45	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x745f58d2	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x81cbe792	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa0463cf1	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xac3d3726	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb2fb95b1	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb731b015	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04c26b4c	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x09769320	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1081f626	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x12a9dd0e	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x24784e5f	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x33cdb604	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x35bb1057	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3950b435	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3e040265	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4ea8d3e0	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x65275c68	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6b7e92a0	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6bf935d2	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7157774b	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7588fb6f	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7656e8f4	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7692821f	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x770f2593	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x77e84eb7	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7aefbb86	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7c6df9af	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7d1243cb	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x82f2cd54	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x846028d3	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x95904c7f	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x983bdf51	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa92af8a5	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa92b6d75	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xaa33b520	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xaea81056	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb6804659	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbdb259a1	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbe811175	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcef632d5	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd23fc9bd	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd38c4907	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd60a6077	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdebf802a	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xeb8d1839	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x3c871cbd	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x599a3309	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x6a7a36a5	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x86cca588	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x9cac9ead	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xe491de5b	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x89ea7a48	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x97ce630e	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xcf8813b4	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x1a196b6f	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xbeb059cd	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x77283ff3	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x94949051	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xd96cc95b	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xda7b9319	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x67468bcf	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x7028f55e	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x925a9006	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x0d126b0b	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1274fe58	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x16c6b5b6	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3027029f	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x354a585e	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x385c1ad5	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5ae731dd	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5c44ed09	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5cacb1fd	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x75e58f2d	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8625b09b	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x879b2ca9	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8c505018	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9cddbdf8	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xaf91b837	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb15ce2d2	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc715bd3f	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd5fd5c7b	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdfbb297a	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf0e2c695	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xffcc2db1	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x8cc074fa	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xad11d021	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x9c68071e	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x9cbe9fb5	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xfa1f6b30	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x12e33d23	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xa63c304a	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xb18b0045	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x42da5e21	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x61e907d1	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0739332e	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x25a42cd8	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x5b638e9e	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x60e40ce2	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x8b4d989a	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe24e5c37	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x3c909b74	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x64534666	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xa7e3db0f	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xafb43bda	psample_group_take
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x074252f0	qrtr_endpoint_post
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x82d822f8	qrtr_endpoint_unregister
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x8dca8531	qrtr_endpoint_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x047359f9	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0951591a	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x13809b41	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x15c20d5c	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1db52745	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x20c5e653	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x222883bd	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2380aecc	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x364598ab	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3bbcda0e	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3cff4b52	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5a77daf4	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x664fb670	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6a7fad09	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6aacbd21	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6fab6692	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7d50ee30	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8ddb1ae1	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x96278bb7	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9f99f2e4	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xace26734	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb162dec9	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbf2cc304	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc568ae1d	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd8ce517f	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdc59c7da	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe3108077	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf3092f31	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfd328583	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x19c75930	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x601d4d1d	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xadf27ce3	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xc340a83d	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x1be343d9	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x1d2bf0cd	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x3c25689d	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x675e6c47	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x76da7dfd	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x9217172e	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa81df542	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe2babace	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xf4638d88	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xf829396e	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x7f592b5b	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xc51177b2	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe4ee2fa1	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe8def95b	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x008198aa	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x011bbf0a	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x018d012d	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x046e1bf5	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0495a287	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x064c1a5f	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09b04a94	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0dab85cc	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0fd5f7f3	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12103331	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1273e1c4	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12da26ed	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12f1dde2	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x130bb1e2	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13169ca5	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1415d96c	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14ce43a8	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x152f83c8	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17193c4c	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18337718	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1881d573	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18d6a440	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19998b70	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c74986a	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f0be17e	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2131800f	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2210f7f5	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x25f36d93	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x28a5adbc	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x28c773bb	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2aebc5de	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2b6d7a71	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e8a6fab	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ef993c7	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x324fbd96	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x337c99d4	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x349bd84a	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34d184de	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x350ae795	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x351c8549	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x37998d17	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x37b6c1e1	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x37df212b	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38427270	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3883e27c	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38aea0b8	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b65d0dd	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3bb1cd47	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f365de5	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x409803ac	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4189f462	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42f432de	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4332be43	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x449c608a	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x451a1a01	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x458c6fd1	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x47c9c0f3	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a82fecc	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4aa5143d	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b8061d1	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c95c011	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d58b265	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4da50130	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4efc1d11	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5022fd14	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x50b3f395	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53137df7	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53ef8830	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53f74d20	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5434e793	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x552d0c9a	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59a36d78	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5af5b3c4	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5f31a1b6	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5fb1fd85	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x60befadd	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62b0cb13	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62da5003	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x647a734a	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66766d2f	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66b978fd	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66d87065	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66ed2439	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67dbc2b6	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x686a7ae9	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x687795a5	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x688b696d	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6bc1d46f	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d458733	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6dfa0069	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fee55cd	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71875142	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71bc40e3	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x72b6ab11	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7355451c	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7372bbac	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x73bfd250	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7481ef9d	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75bd63a9	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7728fcc3	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77c57dae	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77cf8875	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7882c95e	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7964817f	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79dc4a57	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b4912ab	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7be3d37a	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d6faa12	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7db8ec39	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f00dfea	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f21d3a8	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f2b359e	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80fc3f0e	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x823aab0d	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8294e7df	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x832f29ed	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x83abbad7	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x859b57ab	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x874e1773	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x881183e9	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8832e68f	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88af9b23	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89440c67	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x894dffc5	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b05a7e5	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c358eee	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c62c3c3	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8dff4979	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ea10aab	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8fdcd3b8	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9171852c	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x93b6d8ad	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x94d54c1f	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x959b39d1	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x961be762	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9670b5a1	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96c8f09c	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99aee353	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99b63dda	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a3e0af6	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b1a9796	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b6ac271	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9e6166f7	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1bb7f32	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2154c9f	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa309a317	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3705f4f	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa37e45ce	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3a29524	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3afdae3	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5116dbe	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa67d0cf8	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8038ae6	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa85e931b	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8d3e1a1	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaafff15f	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab75f5e3	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab7a5356	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xabb37ad7	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb0446fd2	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1190dd1	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb12db8ec	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb155e7fc	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb224a4f5	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb64847d5	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb6762b8f	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb71b9eb0	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb7f92317	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbdc1423b	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf1d02d0	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf1ec0a2	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc149c127	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc1fcd6af	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc293daf5	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2ac0bf0	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2ac9d03	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2ce1597	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3610954	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc36458fa	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc39351e0	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3def102	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc46e9fec	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc474e9c8	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5376746	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc93f4919	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca59533f	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbf54803	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0aabde0	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd13b96fd	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1b065b0	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1dd95e4	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd328c7c2	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5a6fbea	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9ad24c0	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xddaa3099	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf5782c8	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe00dced0	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe07d5f29	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe084f633	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe1bd3b75	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe51286b9	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5fd5778	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe62b6587	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6a910d8	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe7d059ed	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec5282f2	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xec59a97b	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed7ab323	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcbcb52	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee04b56e	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee3ad51b	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xefb0797e	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf025921a	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf02e7dde	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0b7775d	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1056051	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf11e5dee	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf142337b	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf53e9c26	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf54ebd02	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf78d0bb0	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf80004d4	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8085a0d	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf9288a75	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa87c037	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb7e551c	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfe5b1a2a	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfe9053b7	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x4465ef7b	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x60d3407b	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x02b8e322	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x07bdffb7	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0c549153	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x15e9bfae	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x21039025	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2298d652	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x242300eb	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x29f68714	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2e3edfb2	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x315c2098	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x393988c0	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3c5c8589	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x46e686a3	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4c1f2ade	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x564fa89a	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x579a9560	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x69219649	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6b61adc6	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6c578e78	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6f2e91f4	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7d394f7b	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x84d9af5c	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa48bcd7a	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa560f5c4	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaacae8e0	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaf1d5ad6	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xafb5d343	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xafd74f4f	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb615e9f3	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb82aa72e	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb985e754	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbcb1b825	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd1505dcb	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xeae22475	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf09715cd	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xff100c0c	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x15576151	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1e5beb18	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1fbe4d06	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2a72aa00	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x53cea0c3	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5d3c5ab7	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6471212e	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x733157ad	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73cebdaf	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8617389a	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x90c6c81d	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa2acbd3c	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa5302ac1	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc92f7f50	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcbd5217d	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd07a4d64	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xdb4b2930	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf0dd749a	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfd70d2a4	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x0b72b94b	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x1b908bf8	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x27f555ea	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x34e8bc1f	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x4bb98879	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x59233711	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5b2ba48b	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x672fb9ba	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x868531da	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xdb35dd10	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xdc069825	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe2c85c2f	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xf67a2c6b	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0fb50185	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1296ee8a	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x17ea79ab	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x19e5d883	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x20211183	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x24f62865	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x274b2821	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2f7386d0	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x3441be95	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x38a9fed9	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x5efd2fd9	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x697ee23d	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x782dd25c	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x84694777	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x8a57d120	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe06db4bd	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x0ca64f63	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x84cb344b	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xa2c549ee	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xea448747	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x03638463	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x0eff35a5	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x2172b2ac	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x35abc723	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4ea75467	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x68ca3054	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x70692770	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x7c843cf8	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x9112e917	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x98e2cff1	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xc0aebefd	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xd61c3ed9	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xfe044f3c	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x1c31bd1a	snd_compress_new
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x63cfd5f1	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0x6b14896d	snd_compress_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-compress 0xff3c991f	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x5baaf440	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x67ad3452	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x7217c5bb	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x7a52afd1	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8967f94b	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x96b733c4	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa44471e7	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xbdfc8584	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xdfcfd2dd	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xe4b05103	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1bbff358	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1c3cac1d	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x41b37bce	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x8f0d2577	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x9fda4f6c	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xa5856008	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xac2877da	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xaff56c15	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xda6b9940	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xdce7ee38	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xe913cfde	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x3bf0b62d	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x82fec1bd	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0c7e9d63	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x1c54e172	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x22b972dc	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x6de149ad	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x7b19663d	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x869a39f4	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xfeacff4c	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x00055633	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x00287d68	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x026d6feb	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x02cfe7ce	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0a85012d	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x13c2ba66	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x144ee207	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1572f13e	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x179fff2c	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x18fd39ba	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1eb45579	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1f5a3e39	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1fd96bb0	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2391e1c5	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x25343d64	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2820d0e8	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2c55af14	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2c6d4be3	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x30ea0f69	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3382b3c6	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x33eb9904	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3cb711b6	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3d49a621	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4060661e	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x48276dbe	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x49fefd30	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c1838ea	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x553f2ac6	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5e500bcb	snd_hdac_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5f02ae59	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5fa40f64	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x610394d4	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x616eb1de	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x62c7f902	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x66056002	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6a203872	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x715fd2a7	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x745489db	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x76f82c6e	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7af6f4bd	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7ec0769f	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7f1c764d	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x84abf6df	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x91400bec	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x91c0fe3d	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x92f1b939	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9321cfcf	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x948d3133	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x99225105	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9d0e1438	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa1a1d111	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa705c71f	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa94172b5	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xab7cd823	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xab8e5e4a	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xae97edc3	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaf5924a4	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaffa5c83	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb245300d	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb703b07a	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb8b0028c	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbcba8681	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc263e58d	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc4933b02	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc6670658	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc6a65a4c	snd_hdac_stop_streams_and_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc7e5fe31	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc8632a73	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc91f5c8f	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xca93e908	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcba45cc2	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcea42f1f	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd23c9559	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd526ef9c	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd6bcd9de	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe74f84a0	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe8fec772	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf09a4bf4	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf4d558d7	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf4fa3638	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf5255980	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfa80710c	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfa8f7a10	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfca8524a	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x3108745b	intel_nhlt_get_dmic_geo
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x43c7d81d	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x5ac23100	intel_nhlt_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x735604dd	intel_nhlt_free
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x3e534f4c	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x4d2e16fa	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x5be11e2e	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x5db35387	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x78be8322	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xa37e357e	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x00bab139	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0334ff84	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0676f5ac	snd_hda_get_input_pin_attr
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x07c8063f	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x08bdf16c	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x095bc236	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0a422417	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0a5c3eeb	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0bd6e622	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0c536cc6	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0dc62237	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0e9e294e	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1ecb7539	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x225641f0	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x24991f43	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x271d60f7	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x27c509c2	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x292bc11c	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x29306747	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2c46774f	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2eca27db	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f525772	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f6d1284	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2fc14ad3	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x313d0727	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x358a6e15	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x39ee5e1c	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3b3dcac9	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3b83bcd9	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c4ef935	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3e976172	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3fdd8222	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x41b15169	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4c4c7989	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4e23a4c8	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x500febdd	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x50b7e933	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5182170c	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5767ff09	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x591bd41a	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x593db28c	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x59587405	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5e24eba4	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5fac483a	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x60798126	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6344d18a	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x68272a49	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6dfc4f79	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6dfcb5cd	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7170acb3	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x71b5abf1	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x731ca26a	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x73bf7d59	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x752132d0	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x767f64df	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x76a28d12	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x77af2684	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x79b9a7b8	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7a7ad7dc	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7cd0c0b5	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7df24922	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7fdfddd8	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x812282b2	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x82759172	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x85547965	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x88766ea5	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x895f3c03	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8f58f902	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9158c87e	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x93b23148	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x944c61ca	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x94673d49	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x97c46826	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x97c9eb52	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9bcadad1	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9c436282	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9d6a20e0	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9fba9145	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa5d24d84	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa94d1612	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac66d403	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac891655	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xafea0d4e	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb3b58a74	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb93aa643	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbb708288	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbd0dee33	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbd2c7b3b	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbf72189b	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbfa66da0	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1b6334a	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc41b37e9	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc496b1d4	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcab53824	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcf9e3ad7	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd0edf1e4	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd2f63741	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd5f3589d	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd66eef78	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd8322ec7	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd926a919	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb246284	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdc66954c	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdd54fb95	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xde6f72b0	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdf44b2c3	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe1a074a4	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe284b4ea	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe5df92ea	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe8f1ea54	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe915b11c	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf06fc07b	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf214c2bc	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf3363b78	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5aac11d	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf62b394b	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf95cbafa	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf999cb6c	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf9c43d2e	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf9d97761	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfb8a87ce	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff5e4471	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x06647e73	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0ac235ed	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x27d3d794	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x33146d0b	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x3f35ba85	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x43d4ccb4	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x473aa315	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4d4f8a3e	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5292578f	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x52badd0b	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x584861dd	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x66bec5e9	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76dc6871	hda_main_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x83022b90	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x871a6e44	hda_extra_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9458906a	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x9a64f4bd	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa630525a	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb8e258ac	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbb44739e	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xdc2455c0	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xdd4791fc	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe460a39c	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xee82c995	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x254c648a	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x3f42225b	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x18be7657	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x295c2079	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x613db31e	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x67a907d7	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x6af5a860	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xbbe461df	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd2db1fba	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xd6347180	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xda5d2586	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe1da00ae	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x6b306591	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x841c4b4c	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x279237de	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x44c7b346	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x522b919e	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x81df1067	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe0d608cf	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0653149d	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x236d2817	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x4306ef22	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x90e52629	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x957f2f3c	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xe3c71c02	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x2a5b4f73	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xb26984bf	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x15e4fb0b	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0xacea9690	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x19ab1f81	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x556b9b13	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xb0b0994c	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xf81ebcd2	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x5649c72f	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x1b96b101	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x76c0a559	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xec30a173	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xd24e2530	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xeb800d5b	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x591ccaef	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0xbcdfb114	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x118ad5df	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x5c4d1075	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x7238be88	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xb891015b	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xc36aef13	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xcd7f1494	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xe88f9f54	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xfdd3b341	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x61ff58e3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xff87892f	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x68279316	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x8f1cc995	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0xfa068f70	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x075964d9	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x223b4e69	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x4cbe9b42	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xae922d71	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xebbbf412	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x5c842150	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x49ce3f8e	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x6e634ab4	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xe18b54d7	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xbd69bc10	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x47ee7d61	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x1e54889e	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x3b793855	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x676bc336	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xf28c8cc1	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0xefd8c2d9	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x8960c6dd	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/imx-pcm-dma 0xd61f4594	imx_pcm_dma_init
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x6f2fe307	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0xc11f8bd0	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x04d8aeaa	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x12a0feb0	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3f3cf2f9	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4ba2a9df	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7098cf74	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x73fa3456	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7a789f88	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7df6025b	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x7f226a5c	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x8e8f9eed	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xa64b3f84	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xb19ff294	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xcf3e433d	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xcf5f9ec9	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd38085d0	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xdb634cda	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf05a3805	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xfcff8e61	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x1813ebe3	mtk_afe_fe_startup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x233c017d	mtk_afe_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x4ae22928	mtk_afe_pcm_platform
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x55e17dd6	mtk_afe_pcm_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x5815615f	mtk_afe_fe_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x5de2f970	mtk_dynamic_irq_release
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x6bcaee0b	mtk_afe_fe_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x78cc32f5	mtk_afe_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x79c0ddaa	mtk_afe_combine_sub_dai
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x85837337	mtk_afe_fe_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x9213812e	mtk_afe_fe_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x96f76b98	mtk_afe_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xad9272fb	mtk_afe_fe_hw_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xaf96b039	mtk_dynamic_irq_acquire
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xd97507e4	mtk_afe_fe_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe8bc3962	mtk_afe_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe999b12e	mtk_afe_add_sub_dai_control
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x51a3976b	axg_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x5da581b5	g12a_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x89b99670	axg_fifo_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xc4ce1994	axg_fifo_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x216268ee	axg_tdm_stream_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x50aa52e6	axg_tdm_formatter_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x8d5af06b	axg_tdm_formatter_event
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x9258a990	axg_tdm_stream_stop
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xb0e9b620	axg_tdm_formatter_set_channel_masks
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xd6361dff	axg_tdm_stream_start
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xf2948bf2	axg_tdm_stream_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x310aff4d	axg_tdm_set_tdm_slots
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x18ee719d	q6adm_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x28421460	q6adm_get_copp_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x611a4759	q6adm_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0xa4d4b803	q6adm_matrix_map
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x369b6eeb	q6afe_port_put
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3997e13a	q6afe_is_rx_port
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3b16d6e7	q6afe_port_stop
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x498d993b	q6afe_get_port_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x5332304f	q6afe_slim_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x7df60063	q6afe_port_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xae809786	q6afe_hdmi_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd4523c59	q6afe_i2s_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xdbb190db	q6afe_port_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xe45246a8	q6afe_port_start
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xfaf22370	q6afe_tdm_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x151ae9d4	q6asm_cmd
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x33b7c94d	q6asm_audio_client_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x40299233	q6asm_run
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x5382edf1	q6asm_open_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x68db31e2	q6asm_unmap_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x6eb89e95	q6asm_media_format_block_multi_ch_pcm
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x7353d9dd	q6asm_cmd_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x857330c9	q6asm_write_async
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xc5a116a4	q6asm_get_session_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xcc4952e4	q6asm_audio_client_free
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xd599e50f	q6asm_enc_cfg_blk_pcm_format_support
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xdbedfcd9	q6asm_run_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xe060c0a1	q6asm_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xea75a5dd	q6asm_map_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xf37f832c	q6asm_open_write
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x7e52e977	q6core_is_adsp_ready
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x9b02ea0d	q6core_get_svc_api_info
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6dsp-common 0x17142e58	q6dsp_map_channels
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0x5b75f756	q6routing_stream_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0xa7a64259	q6routing_stream_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x0015f65e	asoc_qcom_lpass_cpu_platform_remove
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x228ef98c	asoc_qcom_lpass_cpu_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x56160186	asoc_qcom_lpass_cpu_platform_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x5988e04d	asoc_qcom_lpass_cpu_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-platform 0xe8ed2e10	asoc_qcom_lpass_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/rockchip/snd-soc-rockchip-pcm 0x64eadd17	rockchip_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6c5d2bcd	snd_soc_acpi_find_package_from_hid
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0x6db14d42	snd_soc_acpi_codec_list
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-acpi 0xe22074cc	snd_soc_acpi_find_machine
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x000c6efc	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x01d68bd3	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x022bc805	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x031a0924	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x04a9b24c	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x095f6506	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0a0054cb	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0bfcb392	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0c7d75d8	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x12c9b719	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1310e046	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x132b4331	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x13d9ec3f	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x17342507	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x184fa94e	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x18e13622	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1998748c	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1e3b5802	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1fca9c00	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2122369a	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2222e9f8	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x227e00f4	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2281c169	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x22ecc19d	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2496b954	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x24fa28b1	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x29530cca	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2b0561af	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2cd3a5d1	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ee427f6	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ffe53d1	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x330afa98	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x35a92470	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x37931e34	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x37a2a8db	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x385c2ab6	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3909c0f3	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3956eb6e	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3c708902	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3c90d201	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3e53a78b	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3f866c13	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3fb5beb1	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x416dfb53	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x42250ce0	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x426d380b	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x42e75f41	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x446e0e5e	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4842c928	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x491dd1cc	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ac9883b	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4d1fef94	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4ffb74a3	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x505551e2	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x51bb3da3	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x532d7a7d	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53711ee9	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53aef159	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53c9605c	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x55a40e2d	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x596d360b	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5c5fbc0c	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5dd635da	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e11215f	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5e3e3f0b	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x60ab1fb3	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x61154c17	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x647f4c07	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x66e01fea	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6803e863	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6843d39b	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f5e5155	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x70bf67a2	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x72eaa34f	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73210996	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73328ab8	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x753e0d75	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x76570d34	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x77098565	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78134b37	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79d67321	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7c0fdf38	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7c540fd8	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8109cdd2	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x857965ec	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8645817d	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x86db24ea	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x875be3fd	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8789bafe	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x880ad7f7	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8914d722	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8a6e77f1	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8dd59fd9	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8e014b9a	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8f7e22c3	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8fac157a	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8feb4ba6	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x92294f2a	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x92b68655	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x934fe950	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x960460e2	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x96e7d519	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x97ae2b41	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9825c132	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9834b4a6	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9d12de9a	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9da217cb	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9ebe0958	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa1707200	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa1f25cf3	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa5b48593	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa615d0a4	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa659217f	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa71e8353	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa21ccc9	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xaa920980	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad4fe697	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xae5c78fa	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb2a39586	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb67f754d	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb8c7bd92	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb92973db	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb972d066	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbba85251	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbc68ec0c	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbdc3c7b8	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbf06cad9	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc24e9490	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc2b8716a	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc3910af8	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc41fcfa5	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc43cbcb0	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc7f2225c	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc963ca44	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcc7b439b	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd0d5ecfe	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd0e54143	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd3315029	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd38e4862	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd4981baa	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd55ae2df	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd7d42951	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8f5001f	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdb46b42d	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdba89d22	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc1edae9	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdd2b1454	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdd42129e	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdecddf2f	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdfbc28e5	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe058b817	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe4c7421f	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe506a998	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xea5ff545	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xea70fa63	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeab8ded6	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeaee74d8	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xec29d16f	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xed5bbeab	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xef18a0e5	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xef66fefc	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xefd0aef5	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf2fe54d9	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf5f7909c	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf66b7b42	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf7c33c6d	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf9e61764	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xff5caf05	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x29cf9032	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x3e153bc9	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x6b2bc3f2	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xb55374b1	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sunxi/sun8i-adda-pr-regmap 0x37a3a5c2	sun8i_adda_pr_regmap_init
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x05943376	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x06826dc7	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x3665ac0b	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x3776a682	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5378f0aa	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x53dfa214	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x6227e214	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x6d3fc03a	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x827a5d7d	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x99eefdf7	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa002bb21	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xcd425dcf	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd861eb82	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xdc9b051b	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xfc61daea	line6_read_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x00025875	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0005bd47	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x000a71bd	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x001995ae	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x001c1c4b	rockchip_pcie_deinit_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x003d2b1c	acpi_create_platform_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x003f98e8	dpcon_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x004bc115	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x00565f18	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x008cd939	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x008d3ef6	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x009b5e8a	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00cb6fab	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d0e5ca	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d1075b	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d40e6a	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d97bc0	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x011f4679	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x012d36c6	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x012e730e	apei_exec_noop
+EXPORT_SYMBOL_GPL	 vmlinux 0x01409698	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x014458d0	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x015b9efb	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fb6c8	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01950b3d	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x019847cb	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x01a23dea	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0x01abeb2b	fsl_mc_object_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b06cad	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b7b8a0	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x01baee3d	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cf51d9	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d13bf0	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1e254	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e39e26	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee4589	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0220a3d8	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x02372317	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x02653085	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x02833f16	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x028b2cc8	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x028edfbb	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x029dd9d5	gnttab_batch_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b10d3d	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x02df7b3c	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e25263	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e9edd7	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x03028992	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0306a004	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d7205	clk_half_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x03237441	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x03347775	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x033a73d7	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x033be62c	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x03431f7f	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0356a038	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x0368e7eb	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x036d2552	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0380c2b0	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x03840089	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c8cb0d	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e82ed6	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fe288a	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fe6b6f	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x04423bef	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0449edf4	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0450d6db	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x045d9f08	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0474bf93	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x047ae0cd	xenbus_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x047eaf0a	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b01e6	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b4118	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04961475	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x049e5156	gnttab_try_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b4563c	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b8b907	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c0f72f	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04dc1c64	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ec2d2a	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fab447	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x04fbf49f	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x050e398b	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0515203b	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x052d5658	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x057b2f42	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x057cc26d	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0580200f	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x05847fe3	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0586a6f6	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x058f9366	apei_exec_collect_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x05974ccc	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05cfa126	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x05dc1761	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x06051594	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x0610f47d	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x06148283	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x063a861b	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x063e9296	rpi_firmware_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0644d974	altr_sysmgr_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06512ce2	ahci_check_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x065bd1db	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x0660fd02	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0677e4b7	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0688640a	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06a4166e	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b21c57	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e4433e	sunxi_ccu_set_mmc_timing_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x070332f6	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x071aed96	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x071ce140	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0721ceac	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x072ba97f	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x074a2317	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x07515e99	fsl_mc_populate_irq_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x075ae686	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x0769e4d7	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x076fbbca	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x07af6cb7	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b41876	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c23703	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x07cf2e29	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d5a66c	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fa055e	scmi_protocol_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0807743f	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x08110cca	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x082ad950	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x082e53e6	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x082fa174	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0834aa91	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x087a9505	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x087d8a2a	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08807fed	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x088209fa	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x08accc74	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bf13b0	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c24737	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dd4c10	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f721f8	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907d14d	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x09337cd0	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0945a0e3	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x095e9268	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0973b19d	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x09787304	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x097fb232	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x098efed2	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x098f2fdd	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a036fd	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ba2e02	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x09bd4025	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d292a5	acpi_subsys_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d61e63	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x09dfda0f	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e9a6a1	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a001689	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a092256	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c3bf9	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c9d45	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a377e0b	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3ec139	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a40419c	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a4f43f8	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a5db8a6	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6483fa	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6f7c5d	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a704ee0	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a865ba6	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8e0db2	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab1ff09	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abe56b6	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0acacc2d	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad62f9c	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ae8f924	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af0ef2b	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af6abe9	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4d8321	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4eda58	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b52e502	apei_resources_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b657914	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b91a710	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9ddfbd	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0baee0e1	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb028d4	hisi_clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb6b734	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bceb2fb	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bd107b9	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be85fd0	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0beed205	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c04af39	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c080692	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1b9fbb	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c270e25	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c35cd47	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c59ae8f	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c650871	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c82bf7f	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c8edd5d	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c97db90	dprc_get_obj_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca6dc1c	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb579c0	__free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cc3b29e	acpi_dev_filter_resource_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cde22c7	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce3dd73	bman_is_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d116ad0	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d11aa42	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d14e985	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d295210	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2b1b02	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d37612b	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d38bc3d	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d40d8be	ti_sci_get_num_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d48a902	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4cb93f	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d51fcfc	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d69b663	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d7a8700	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d85fd81	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d932bce	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da411f9	gnttab_pages_set_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db511ec	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de09e2a	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ded0498	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x0df0e6d2	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfe3c54	xenbus_frontend_closed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e007edf	xen_evtchn_nr_channels
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e11fd1f	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e154f54	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e209eec	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e4c9d88	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e68a1ac	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8bf242	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e930eeb	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9ee60a	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea5cbce	xen_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea6316a	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eaf24e1	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb5867a	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb9adc9	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec9f1f5	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ecd6acb	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eda03ce	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ee86ec4	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef21328	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef64ee9	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f173074	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f28bf3c	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f31d571	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6677dd	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6d2595	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f77e68c	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f8b55e5	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f8b6b7c	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa4f5b8	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe79274	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe87b91	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe9ce74	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fea42b4	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fefac8c	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fefbbdb	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff222d8	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff95ec4	acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ffc3029	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x100deb0d	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x10162bb7	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1029ba73	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x1032378e	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1037dacd	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x105829b3	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x105852bd	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x10661b5e	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1087b9ec	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x10933a66	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x109c9295	save_stack_trace_tsk
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ad69ea	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x10bf6444	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c4a5ab	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c8fe60	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c920e1	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x10cb21c0	acpi_initialize_hp_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d0735d	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x110106c1	cper_severity_to_aer
+EXPORT_SYMBOL_GPL	 vmlinux 0x11094ce6	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x1113e0e4	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x111cf3f1	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x112d515e	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1149de96	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x114f58f9	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x116186cb	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x1163286d	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1163ce67	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1172d487	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x117925b5	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x1185c249	arch_apei_report_mem_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x11914493	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1198792e	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1198f235	dpcon_set_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a72dce	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d177e4	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e06ee9	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x11e08f96	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0x11efb8b3	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1200e302	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x12155c24	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x122c6681	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234ffa1	cper_estatus_check_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x124271fa	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1257246e	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x12680dda	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x12700bcb	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x128c5ac4	rockchip_pcie_cfg_configuration_accesses
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12935be4	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a117fc	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab31f1	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c56521	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d69be6	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d96092	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12de1f2e	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e20386	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f7a0e5	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131bac21	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x132874d0	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x133dfd18	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1344da9d	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1351cdfa	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1375e466	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13864f28	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1391ce07	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a3462d	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x13afac17	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13c19ee7	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d30f62	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x13db421b	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f56414	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x143fcf44	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x144f52ce	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x14587f75	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x14758728	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1485a307	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x149ba279	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ae6f3d	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c682e1	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c68c8a	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e17fca	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x14ec85ba	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x156e52cf	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x157eb84c	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x157ee440	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a1f621	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c31d7d	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x15cc60bd	set_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ff62d3	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x16043cf7	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0x16139500	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x161d00eb	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x1633fffc	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x163e9887	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x163fe6e7	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x16516798	osc_pc_lpi_support_confirmed
+EXPORT_SYMBOL_GPL	 vmlinux 0x165555e4	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x165728f4	fsl_mc_resource_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1664ad24	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d7113	acpi_bus_register_early_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x169a441e	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b4d020	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b7bacc	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c8fa1c	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x16cd2cf9	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d726d4	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dc880c	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f15139	bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x17415106	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x1741ddee	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x17535649	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x1764353a	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x176c0b48	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x17753831	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1775f783	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x1780c945	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x17914d00	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x179230b3	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a6b4ca	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c1819d	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c9202b	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ca00dc	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x17cbfbbf	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d39fc5	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x17dcc80e	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x17de9a1a	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e01f11	erst_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ed12de	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f402e6	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1805ea0e	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0x182f0a60	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x18434025	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1845ba41	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x184b0b6e	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x1857aa35	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x18583a51	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x18783f04	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x187cf730	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x189d2c92	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a323db	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x18addffb	timer_unstable_counter_workaround
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b41fca	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x18b496c1	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bbcb94	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c0af07	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d074b2	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ef5a6a	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f3d0f3	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fa1ae5	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x19030ae2	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x190e6722	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x19151003	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1928d93f	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x192fa51f	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x193b6f52	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1953ce90	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x195c46b6	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x19967387	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19ace54e	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x19badb53	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c68dd5	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f69b35	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f73607	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a04119c	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a22ca48	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a64d816	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a878a91	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a879210	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a8e571b	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a94e90d	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa40e7a	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac953bb	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad02d66	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x1adc4979	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x1adca4e5	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae12679	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aed604a	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6c9aa	clk_regmap_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afb4b39	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b128da8	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1471f3	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b158683	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4b2943	reset_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5f4377	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6131b9	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b622c85	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6d8e37	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b7e926a	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8b32e5	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8c1884	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8de2d1	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b90788e	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b910771	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b922027	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba89251	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba8cf9f	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bda6a19	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf9f68b	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c08001f	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3c0e26	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c44b902	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c47a35e	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c966ac2	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9bbfb5	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9cf5af	fsl_mc_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca4a930	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cad3b84	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cad49ae	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cad7160	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb7c983	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cb9a1c8	xenbus_gather
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ccf317a	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d05d5ff	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d106360	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1d714b	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1f43a4	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d328d5f	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3f29ca	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d490ca2	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8c4b9b	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da76adb	meson_clk_mpll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dace3c0	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd69ba7	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e01af26	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e06432a	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e29335b	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e3041e1	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e338862	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e339537	scmi_protocol_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e40cee9	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e47f648	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5a93d8	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5dea8a	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e80a651	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e82ae16	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e83fee6	HYPERVISOR_physdev_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e98ff2a	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea8c10b	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eaec09e	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb4ead3	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecf60b6	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed0c107	acpi_subsys_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee2766d	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee4ee16	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee7d3cd	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef089b5	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef10c8f	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef12d2e	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef4bfcf	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef4cedf	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef77b74	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efc0428	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efdd196	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f30300f	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f37fe23	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f39179c	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f3b1a64	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4e1518	acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f507dc7	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f631ddf	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f696c44	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f80c5cc	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8fb045	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb70eb9	gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc3da33	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc836bd	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd1c310	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdbaf7f	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x201997f0	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x201ae8d7	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x203da316	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f2c5c	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2059aa57	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x205d6470	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x206c4fd5	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x208c3659	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093652a	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2093f4dd	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x20978fb9	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2098317e	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x20adf0b2	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c49a67	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x20d9022c	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e144a0	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f5fe34	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x214f4c6f	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x21523a42	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2155d2f5	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x215fc6e6	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x21696c46	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x216a346a	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2174fb2c	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21836c15	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x218c8ace	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b28609	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x21bc6cd4	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c34c8f	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c62c99	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c79164	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c9f0c6	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d2dafd	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x21dbac81	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e0c626	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x21f348d6	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fab4de	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fc0593	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x220a47d5	gnttab_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x22101fcc	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x222b087b	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2285ad07	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x22992ba3	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x229b00a2	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x229c851e	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f31abb	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f5e918	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f779c8	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f9c8e0	i2c_acpi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fa799f	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fc5cf4	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2301a17e	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2303cfe6	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x2317c413	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x231a2b88	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x2329813b	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x23325537	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x233372d9	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x233b57d5	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 vmlinux 0x233bd177	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2354a306	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2367a64e	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x23709b7a	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x238037c8	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2386324b	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23868d32	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x239242ed	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23cad925	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23ed41f2	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x23ff0b9d	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2401f4ea	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x240e07fa	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x2410b14b	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x241aaf58	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x2424baef	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2442adaf	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x245375fa	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2454afa6	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2464da17	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x246982fa	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x24709b2f	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2499665e	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a06cc6	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b38e9b	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b3c24b	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x24db25d0	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x24dc94ee	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x24dfd8a2	clk_register_hisi_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f33908	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2504a4cf	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x2507af37	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x253cb2a0	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x253e4a46	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x255ea86c	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x256a784c	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x256d8357	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x25760d2c	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x257e7fc0	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25a55936	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x25be5d11	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c93309	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x25da2add	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e01d5e	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ed59c2	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x260ae54c	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x262fb494	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x2631bfcf	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL	 vmlinux 0x263f039e	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2656f69f	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x2658e47e	ti_sci_inta_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x26682cbe	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x26789b53	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x26793324	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x267d1270	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x268977cc	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26caea7e	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x26dbf4f3	acpi_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26edbbf5	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f0a535	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x270d1081	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x271d62bd	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x272e9d77	hisi_reset_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x273c2072	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x273ebb73	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x274f7a45	acpi_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x276c28c0	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x27715e4a	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2773c485	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x27763d3a	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x27785fd5	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x2778c453	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a8cfdf	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x27aa94b0	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b0fa92	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x27bd5592	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c9d5f9	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f15caa	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fca340	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fedf7f	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x28022499	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x2812c9eb	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2817f7fd	cppc_get_desired_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x282d1dda	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x28413c64	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2854f88a	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x2855a4fb	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x28655ff2	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x287540b5	acpi_device_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x287e9ae2	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2880689c	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a718f4	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28de719a	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f26684	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0x28fb2606	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2908e8c9	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x290cb609	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x291510a0	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0x291cc8de	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x291d6c65	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x293126f6	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x29312e40	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x294be267	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x294f1238	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2950af68	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x295b982a	hisi_clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2976c191	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x297c4dc2	pci_pr3_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x297ff9d2	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x2998d270	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x299fead2	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a137a4	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ab0b4a	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x29bb12d3	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cdb736	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d5a0e6	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d8f599	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x29df2416	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e74953	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ed9115	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x29f901ba	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0864a0	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a11764a	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1c5213	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1ee46c	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1eefea	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1fa4e5	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2a9272	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a3de1a8	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a447332	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a44a47f	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a5e8048	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a6f88fb	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7ad764	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa0072b	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab66a4b	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac0cae0	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac19891	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac4db97	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac96157	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ae6231c	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af97343	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2afb1e53	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2afb3a77	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0765ca	xen_store_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b07d69d	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0fe000	gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b14909b	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2cd429	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2ce41c	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b313ebd	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b37d8d0	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4e8dc0	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b54bc35	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6399df	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b74f50c	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7cb0a4	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b88c391	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b960b66	qman_is_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9997fb	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb9470d	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd074a8	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd4959b	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd94658	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x2beb75d1	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf558f7	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c064f7b	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c100bc7	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c52ff4f	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66035b	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6ed88b	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c703efb	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7571c5	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c77c845	ti_sci_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c807ec7	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c836ca7	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c90cc85	xen_set_affinity_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c92b14a	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c945dfe	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9a1dd1	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cacacb0	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb48bad	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc3d58a	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc495c5	rpi_firmware_property_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cce9275	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd90144	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce0a5b7	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d14c923	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1aecd8	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d237595	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d3f213f	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d4e4708	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6aa0f0	arch_apei_enable_cmcff
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d73682f	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8070fa	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9005a2	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d934b6a	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db67d4a	owl_sps_set_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db72225	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e00af7f	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e011be7	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08226d	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e0f8880	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e11ffe0	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e183023	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e546930	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5a243c	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e678211	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e99e43a	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea3373b	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebdee8c	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec32aba	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec4b719	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec56440	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec5d3b4	fsl_mc_object_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7c52b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eee4a66	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f01e9f5	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f080c9a	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2a40ca	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3098d0	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f33df82	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3e73e8	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f457abb	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f64415f	unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f788aa2	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f803abf	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f895d0c	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f8fd89d	xas_split_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb72e9b	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fbb6d7e	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fce4ebb	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd2f569	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd5c833	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x30228cac	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x302affa6	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3041b20a	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x304210ac	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x30459302	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3055e1f0	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x306ca24d	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x30788054	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x30803a57	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x3090cb05	bind_interdomain_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x30964f29	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x30971c69	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a1ec3a	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a8a52d	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bc43cf	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bc5e25	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e15a2c	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e1ec25	apei_map_generic_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f5d38e	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x3108c6d5	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x310b9897	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x31156853	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x311924ba	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x311a132d	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x314ed5ba	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3170f21d	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3180d640	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3185f446	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x318983c2	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x318de77d	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b151e4	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b4b60a	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b86be3	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c5eb49	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d31bf0	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d4a897	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dca4d8	gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ef4c97	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f9673d	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x320980c3	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x320adeea	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x32271cd0	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x3229ef03	ahci_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x32388451	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x324ac520	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3253624e	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x327a2687	bind_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3280df7b	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3297edd8	acpi_device_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a26e06	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bb5ec7	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d86276	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e23936	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e3a28e	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x32e87b31	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x32edb6b7	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3343f2d8	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x337734ce	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x338d8d32	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x33afb29a	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d9717f	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f1721c	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f9a5ae	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fd0936	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x3403f7d4	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3406b4aa	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x341257a6	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3413725d	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x341b0f10	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34331f04	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x345904a1	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x348372ba	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x34858dc5	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x34af0b31	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x34afcd18	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b622f8	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b96bee	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c024d8	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c8478b	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cc1f41	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e6737d	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x34eab46d	bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ef7d55	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fb8af8	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x35153ad9	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3517b830	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x35187ace	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x351882af	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0x351991ce	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0x3529e217	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x35304b89	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x35499f1a	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x354a3c68	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x355bc89a	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x35749019	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x35888f49	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3592589f	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x35973c28	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x359ba7cf	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x359ca687	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x359d005a	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b2fcf4	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c44ec4	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d3dc46	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3612a2b7	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x361b08db	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x361c0332	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x3621cf42	dprc_get_obj_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x36261886	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x362f383e	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x363267a0	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x366326b4	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x366d0108	acpi_set_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x366ef3a8	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3675d7a9	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a1b0e2	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a6eaf3	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x36beb3aa	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c555f9	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e9ade2	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x36ef7923	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f332d4	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f86fba	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fb85fb	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37271b71	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x372c241b	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x372cfd6e	gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3733385c	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x3750d770	erst_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3760256e	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x377b03c1	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377ce7a5	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x377d160c	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3781f571	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x37892001	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x378e90b6	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0x37914025	xenbus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37927b03	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3797725d	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x3798b9d6	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a3a78a	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ae6c1b	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bc3020	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bce81e	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c63c81	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x37de0cb2	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x382983dc	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3846e5ca	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x384bc380	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x385e53bf	ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x38674075	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x388968dc	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x38910cc7	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3897f403	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x389c9be6	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a79fc1	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ae1486	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b65821	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cb13fc	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x38dc1c63	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ee4d3e	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x390adf5a	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x39101938	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x392834fa	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x392ed85b	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x395fb630	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3972b28a	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x398adbbc	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x399bb8c0	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b2ab14	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b334b9	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b55b73	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c56be4	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c7a87b	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f3fd0f	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fb7cea	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1380d3	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1460c7	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1c1dad	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a25726c	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2a4325	dpcon_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a2ed329	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a3460fa	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a3a4682	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a6a7c3f	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8cbed3	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a91d0d4	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a956bb3	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a99d4e7	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa5e8d3	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa7308f	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ab485b6	xenbus_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac0d9c3	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac3e037	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac9835e	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad2cc5b	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3adf7e2c	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b010bda	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0f8b14	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b11ad02	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b29ea6c	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b333e48	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b408ae7	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4d4dfc	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5a1a47	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b714a0a	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b78bf02	sunxi_ccu_get_mmc_timing_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b7e484e	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b884bf7	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8979ea	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95398c	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b97a021	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b9a4784	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b9f4bbd	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba4542a	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba84566	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd12103	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bd95d43	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c07a5c9	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0ec81d	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c19fcaf	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1b9f00	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1f734d	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c212744	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c281ca1	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2ed0ef	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c36fc9d	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c506ce5	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c796a70	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7e558c	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c85628c	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca23d75	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cae5e95	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd2567a	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd6dc53	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce12c50	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ce77caf	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ceeaa8d	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a9f13	clk_regmap_gate_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d20fe6f	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d3633c7	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d430012	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4bb282	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4d058a	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4e1688	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d54f6ae	xen_dbgp_external_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d58055e	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d91081e	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d91288b	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9e8755	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db04568	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db3b29e	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbce018	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbf2310	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd09380	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd394ce	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd8efd5	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9bc84	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3deb1f9d	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df61611	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df6675f	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0aabd0	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3d2774	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e45136a	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e498b88	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e605145	ti_sci_release_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e699f4c	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e82a513	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e839d5c	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8cd2ca	scmi_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8d577e	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9a3e05	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb43a77	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eeaa967	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef831ba	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0e988b	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f11dd82	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f1d1565	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2196f8	acpi_dev_resource_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f25603b	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f358134	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f6168fb	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f653d1e	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f767dc7	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbb1c6f	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbca419	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe9c614	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fea029c	hisi_clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fec4043	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x400a024b	acpi_scan_lock_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4019d8fb	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x40267068	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x403a2eb2	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x403a90b0	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x404561b0	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x405ac4b3	ti_sci_inta_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x405aef28	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x406ccbe5	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x407af304	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408487e9	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4097c512	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40a7495d	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b43bd0	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ca35a8	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d14d28	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d279cd	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f860e4	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100d92f	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x41067871	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x411609d0	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x41237f71	cpu_have_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x412a1699	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x4133ba39	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x413655b3	xen_xlate_remap_gfn_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x413a8ee2	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x413d026d	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x41428083	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4146b4ff	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x414a8103	acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x41531038	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x41631d8e	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4163bf3d	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x41739fda	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x417dc93d	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x4181d6c6	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x41962cfd	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a134ab	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c2af15	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c45d6b	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c66c02	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c7811c	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c81c4d	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cacc08	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cf6478	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e57711	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e65ae0	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f66ede	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230915	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42230a4c	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4240dba1	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4243f245	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x42518b6b	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x425603ec	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4256f7bc	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x42642ece	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4267d913	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4274f5d3	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x427b85e3	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4281d5c5	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4297d500	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a16f4f	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a999b9	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ba4194	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e07b48	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e8f443	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fba1c7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x430e9d89	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x431baac3	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x431c6f25	xenbus_switch_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x431f27c5	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x43551129	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x435a057a	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x435c1c32	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x435e497e	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x43606227	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4360eec0	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x437bb9e9	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4391f761	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a62a82	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a9c3fb	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b9a393	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c2a786	__cpu_clear_user_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x43cb077d	acpi_subsys_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d3c6e3	ata_acpi_gtm
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e8498e	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x44088cfc	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x4420cb6d	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x442ecba5	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44607cb7	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4469acc1	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x447385a4	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x4482d381	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x448b6bc4	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x448d42ed	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a1ef7e	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x44a793ab	HYPERVISOR_grant_table_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x44aac99d	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c5717c	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x44caabc9	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e1e9aa	balloon_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x451facf7	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x45219e18	bgmac_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x452626cb	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x4527af7e	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x45564aed	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x45583c4e	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561f990	qcom_smem_state_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x4586d246	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x459199ca	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a02ba5	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d42d3d	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ecf0ee	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46086add	acpi_register_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x4611f487	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x46394ee1	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x464b084b	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x466093fb	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4675f8be	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x467a1d05	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x467cb0f8	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x467fca87	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x468d1054	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x46dde8a2	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e31811	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e44952	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f6df2e	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x46faf7da	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x470a26ff	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4737ec60	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x475af26a	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x475e9c2a	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761b204	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47676602	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x477b1228	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x4782c9f6	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47956229	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4797d78e	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4799e37c	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47bed002	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x47d0eea2	acpi_lpat_temp_to_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dcd61e	acpi_dev_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f1b471	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f4e86d	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f63527	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4800950e	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x480c1677	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x48136482	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x4815aa79	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x481fe442	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4820d3a7	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x48211122	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4828e77b	acpi_scan_lock_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0x48342efa	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x483f8d09	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4843a748	qman_portals_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x484e433f	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x48654c4d	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x4868db20	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x487327e3	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a5373a	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x48de16f3	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e5cfa9	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f4296a	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f49400	apei_hest_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x492b468d	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x492e66be	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x493e2915	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x4948b76a	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x49582d25	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x49593c86	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x495be881	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x496b92f9	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x49745d04	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x49892da1	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x498f29c7	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x498f4ac6	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49acd801	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b854e0	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c7ff99	bgmac_phy_connect_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d99bb9	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db6bf8	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e0fd21	__cpu_copy_user_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49ea5a7f	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x49efd1be	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a25d080	gnttab_unmap_refs_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2cd0cc	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2f4075	ti_sci_inta_msi_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a420d09	acpi_bus_detach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a531bbd	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a5b9910	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7392c6	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7ad376	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8a59b0	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a908ea4	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa58bea	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac6d466	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4adb7580	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae030eb	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aeb1d16	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af9e33f	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b066300	acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0f1db1	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1473d2	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1a8d17	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1fc942	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b2a1601	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4189af	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4a6167	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4dcd13	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6bc85d	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b75285b	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7986ac	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b92110b	__acpi_node_get_property_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b931968	xen_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba49617	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bac3293	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb9252e	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bba456b	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc6e8ae	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc8727f	xen_balloon_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bcf8ef4	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd0fa5b	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd94c1a	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be201cf	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfdf102	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c01e9cd	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c09e2c5	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c1dc880	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3e7586	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c7a2e2d	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c7d54cd	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c7d6009	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c86925f	mdio_mux_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9be8f6	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb5097f	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd9f0b2	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce55e67	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0cf836	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d175e54	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d202b8c	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d259a11	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d349f2b	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d43a46f	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d9458	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d54ab3a	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d73ce6f	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d74a184	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8a96ab	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d95d6d1	memcpy_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d9ff22b	acpi_bus_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da34ae9	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db1d64c	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dbdb767	ti_sci_get_free_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc2c545	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ddbceb3	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ddfb965	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de567b1	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df0c5b8	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df339cc	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfa55a7	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfae7d5	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e07de1b	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1b021e	acpiphp_register_attention
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e2e4687	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e55a289	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e62da4e	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e685d67	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e693dee	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e78ad45	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e823041	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e865d14	dpcon_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8e3e31	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8e7d66	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea1c6ba	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ece3615	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed2db95	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f06ab75	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f06ea7c	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0b4e36	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0d5637	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f13cacd	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f14c1f7	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f15118c	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f2593f0	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f299a09	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f3eb127	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f422578	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f459c7a	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f46aa56	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f5c11a9	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f5c6f09	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6971f2	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f838252	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f94f690	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f9f1bfb	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb965d8	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc02643	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc55c99	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fce9a3f	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd0160a	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe615db	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe7c837	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4feac3ac	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff3003f	meson_clk_dualdiv_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5004fc13	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x500c768c	apei_exec_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x501410a0	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x50154435	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x5026585c	xen_irq_from_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x50282af2	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x50884fae	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x508a4afa	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x508bb865	acpi_cppc_processor_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a317e8	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b41006	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c2ae54	rpi_firmware_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c2c32d	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c47076	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x50cc8b8b	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d36fe8	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dbc9da	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dc0736	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x50df657c	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50efc19a	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5118396a	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x511f5bb3	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x51312229	xhci_mtk_add_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x51349f4e	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x513d6b6b	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x514cdf3b	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x515167b3	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x516a0042	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x519700c9	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c35514	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ce282b	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d066ec	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d07242	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x51dd8d5a	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x51dde90c	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f7b719	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fc9a6d	xenmem_reservation_decrease
+EXPORT_SYMBOL_GPL	 vmlinux 0x520587e7	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x520f06ee	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x520fc171	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x521fea06	handle_fasteoi_ack_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x523356e4	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x5233c5ca	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236f4ee	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x523b4da2	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x523eba8f	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x52431348	xenbus_transaction_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5253e1aa	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x525d0aa3	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x52654d7d	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5279208c	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x527a5f36	devm_ti_sci_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x527b0225	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x529eb8da	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x52aa45de	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e39f44	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x52fec8df	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x53152100	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x532bfb0a	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x53334961	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x533905c6	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5374c364	acpi_dev_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x537a303a	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x537f20db	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x53876ce6	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53916a28	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x5391f2c7	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5394c3b2	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x539e3827	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b28545	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b8e626	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x53dcf046	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5405621c	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x541a0a24	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5427c82e	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x54297d09	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x54434f95	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x54526f00	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5452fab7	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5464e1a8	xenbus_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x546cdcf4	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x546f714e	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x54760978	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x54767808	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x54774a45	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x547de3de	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x548c77b5	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x54915298	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54955855	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x5499a34f	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a25da2	qcom_smem_state_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54af6b04	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x54cdb94c	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x54dc6a08	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f0ed93	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fa5a99	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x55015179	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x55036f04	dpcon_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x55197dc8	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x5528be78	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x55382ce6	acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x553c23d6	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5559e747	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x555f9eca	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5568a132	rockchip_pcie_parse_dt
+EXPORT_SYMBOL_GPL	 vmlinux 0x556d2606	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x557a2632	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x5588e880	fsl_mc_cleanup_irq_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x55948b11	ti_sci_put_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x55954121	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x559c8c84	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c40e0c	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55cd46db	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e96a72	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f0f2c7	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x56112deb	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561f2251	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x563545f9	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x5635fdb2	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x563c7b00	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x56414fac	rpi_firmware_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x564b867b	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x565de378	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5664695a	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5674b3cb	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5679b15d	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x56821087	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x56946209	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x569b69df	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b11ec3	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c11841	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c5d637	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d9d9d7	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dabf09	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dcb448	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e09c7d	acpi_subsys_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fb5f12	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fcafab	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x570b832d	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x571c2a1f	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x572265e5	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x5728567e	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x57298676	dpbp_get_attributes
+EXPORT_SYMBOL_GPL	 vmlinux 0x572c7d58	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x5732c774	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x574609c5	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x575aeafc	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x576b60e3	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x57719632	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x57732438	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x577b5d4b	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x57829118	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x57869273	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x57983456	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b207fe	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x57bfae1e	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d128d7	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d33658	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f74876	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f9a23a	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x580333bd	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x58150088	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5826f8a0	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x58276f93	cper_next_record_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x584a9274	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x586ce895	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587f750a	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x588c6220	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x58985fae	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5899be86	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a76393	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x58cce2a7	rockchip_pcie_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d16d10	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d1f5bd	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d24a6b	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x58dbd060	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e14f15	HYPERVISOR_event_channel_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e33eee	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x58f8476f	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x59017c25	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5935b8dc	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x593d4032	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x594a76d2	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x59582784	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x59597376	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x597b31ec	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x5989dccc	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x59946a67	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x59963e45	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x599d5b3a	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b785ed	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c5b70d	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fc771a	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x59fe70a8	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a005f01	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a136c3b	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a143c95	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1b158d	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3f2616	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a50201c	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a5f311e	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a649b26	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a64f9a5	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a772388	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa5fd74	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa662f8	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abdf256	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x5acada6d	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae70c15	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af1e3b9	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afb54dd	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5afc7e37	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b00b425	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1f4568	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b42c05d	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b53b39e	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b5ebc5f	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6f39ed	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b79e338	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7c1cdf	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b9ead93	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf26f3f	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0f77ce	HYPERVISOR_platform_op_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c1d26c8	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c297a09	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2f6e5c	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c33cc69	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c48d1c8	acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4caba6	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c73b7cb	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c995baa	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca6d1d1	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cab9945	unregister_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cacf2d5	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdf1692	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce14f44	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cf0dc0b	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d04bc3c	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d091149	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d17148b	apei_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d25db57	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2ba0e3	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3a6617	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3da53d	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d601b67	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d637e9f	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d64b781	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6efa73	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d797414	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7c7d01	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9461da	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc1377c	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc7b05d	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de58bb4	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de7447d	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de9fa29	bgmac_enet_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df233de	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e052b44	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0fb666	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e137360	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e155684	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e365d34	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3de535	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e43631d	fsl_mc_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4b0c50	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e5b5d43	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e61a8e5	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6734a1	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6cabde	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6ce995	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e70dcc9	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e829e6e	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8548c1	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e89c765	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e907dd0	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ea700a9	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec410c9	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee141cc	register_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eef7918	devm_acpi_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f08de4a	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2007b8	rockchip_pcie_enable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f57d6c8	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7656b8	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f916542	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9d1954	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa12903	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa9dbc7	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fba4b7c	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc86625	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fda707f	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fdd3850	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe30a36	dprc_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe34c9f	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff1feca	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x60069ee1	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x60289498	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x60309f60	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6034c9a6	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x60367c91	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x603d0d51	acpi_os_map_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x60442822	phys_to_mach
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60527df3	fsl_mc_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x605d5bfa	cache_line_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x60623a88	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6062d6fc	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x60780c1e	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x60806523	i2c_acpi_get_i2c_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x608d2b23	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x609eaf25	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b67a62	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d7f086	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x60e7e6a4	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f99e1b	cppc_set_perf
+EXPORT_SYMBOL_GPL	 vmlinux 0x610767b5	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6110cd98	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x611cfa85	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x61257dbe	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x612e78e7	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x613227fa	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x613948bf	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6139be26	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x614a9bb3	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x614b5f9c	is_dock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x614ca899	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x615c634a	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x615cd725	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0x616b7e7f	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x61768425	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x617bf627	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x617e81ca	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181bc00	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6187c146	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a82259	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a9a9a5	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ae1d2d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c0dfcf	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x61cccd9a	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d6b264	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x61d8214a	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f1e772	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f8df27	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fea1e7	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x620d5e9d	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x620e3757	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x62217451	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x62225937	meson_vid_pll_div_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6242b74e	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6242eeba	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x624c42de	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x624c88b6	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x624df51f	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6251fa86	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257bb59	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x62632161	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x626f87ec	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6276021d	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x6277fbff	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x6279a9b8	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x62897bd3	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x6289f08f	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6296c894	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b41285	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bfc6f1	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c969bc	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d7aeae	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e1cd34	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6317b98e	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6322c148	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6325c0fd	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6326cc58	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6327b333	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x633a5319	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x63495b9a	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x634d1157	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x634f0455	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x6350c0e2	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x635315be	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6368648e	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x637ba5d3	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x638aff11	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63cc36d5	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e5040b	xenbus_dev_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ea80b3	cper_mem_err_type_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x63eaa4de	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ed7338	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x640714a2	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ccc08	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6418ed7c	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6424e9c9	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x64257a30	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x6451adb3	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6461e5d1	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x64638552	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x64829ba3	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x648760f1	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x649301af	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x649e3979	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x649e7f96	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ac35cf	xenbus_dev_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c92739	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d3cc4e	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64eed84b	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6502d9c2	xenbus_scanf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6509a0e4	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x650ad430	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6512d923	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x651307e7	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6524a410	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x652b2b21	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x6534b42a	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x653fcdd6	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6540c983	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x654f3b3e	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x655e4879	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6565d47d	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x6565e082	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x65703ac1	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x657f3680	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x658154e7	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65adca52	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ba7aae	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e01af9	__sync_icache_dcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x65edf826	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f131b6	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x66029639	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x6614c5c1	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x661a8384	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x661c33be	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x66305bbc	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663aebbf	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x665ee37e	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6662b326	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x6666e136	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6669c119	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x667e2bdc	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x668daf2f	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6d109	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a721df	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ab6f0f	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x66af2505	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b7bce0	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bd6b97	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x66cc5d9b	ahci_init_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x66cffa49	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d46397	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66dff89d	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e925e1	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x67000457	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x67047f70	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x6705df24	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x670a8b7a	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x67106326	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x671c8e5e	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x671d9b6e	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x672cb2b6	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x673408a4	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6736af1a	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6739a503	balloon_set_new_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x673b85cb	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x673ea2c6	gnttab_dma_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x673f1f10	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x674875c4	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x674b1229	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x67591d4f	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x67731a8c	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x677e901c	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a8fe36	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x67b91803	xen_remap_vma_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bb4d3a	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x67beb34c	dpbp_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e6c543	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e7026d	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f6d82a	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f92abf	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x682664fa	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x683374dc	xenbus_dev_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6834f10d	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x68384b51	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x684ba690	fsl_mc_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x68541781	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x685a93d2	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x685bb8d5	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6860d88c	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x6869c8eb	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x687220f6	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x6889628f	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x688d0e03	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a28c01	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a94ab0	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a9c199	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x68bc0af0	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x68e248d5	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x691eb510	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6920cde5	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x693f4edf	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x695513a5	hisi_reset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x696340a5	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x696df812	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2579	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6972d09c	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x69767099	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x698e5037	acpi_data_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x69976e41	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6999cd9d	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a54751	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x69bc0ab4	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d70709	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e91a83	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fc1f12	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x69fc3880	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1a6913	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a45ed04	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5796ce	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a81c9e1	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8a7a57	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8bc73b	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a968417	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa2a877	xenbus_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa02eb	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aac444f	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aad9152	xen_set_callback_via
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac3aea6	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x6adacf03	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aeda144	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0dc565	xen_set_irq_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1e31bd	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3ae022	acpi_os_unmap_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b42d338	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6ad412	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b834121	bman_portals_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b902209	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b99e2a1	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba1c1d8	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bac60a0	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bbc3c83	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdef35c	acpi_ec_mark_gpe_for_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bec9f89	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfd60e5	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bff5660	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c1b540f	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c32315d	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3a3c9c	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c655913	register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c66a6e3	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c77d0df	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7cb95f	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c922cdf	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb0509c	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cb0ce87	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbdfba6	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc32dab	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc84ad4	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc970aa	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd53da4	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce0d259	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cf60eed	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cfb19d0	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0c52df	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d177c52	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d352383	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d4fe53e	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d5a3ba6	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6328de	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7426ae	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d926522	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9b1045	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da76fb5	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da7a79b	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daecf2a	clk_regmap_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbfd4d8	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddbd1f0	devm_acpi_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddca84f	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfa375e	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0857e4	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0ee6f4	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e139b36	acpi_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e181039	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1c714f	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e238df9	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e329069	xen_xenbus_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e33934e	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e401432	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e45046f	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e49bcb9	gnttab_unmap_refs_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5fb599	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e797849	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e84618f	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e94b88f	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e9561ec	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea392d1	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ead3cc3	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb31447	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec9f53c	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eca0634	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed9297a	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee35197	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee3cda4	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eec9fb4	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3b990e	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3dd1d8	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f449b29	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f555471	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f74794c	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f959fe1	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9d540b	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6faae3fa	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fabc1fb	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc063bd	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc7afec	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7007e8a4	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7015c36c	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x7024449b	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7036c05f	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x7042cdc3	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x705c9ba5	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x707d0db0	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x707d53d2	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x70a65a98	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x70adb8ed	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7c07a	gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x70bcea4b	acpi_driver_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c49b0e	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d0c175	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d42d47	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x70de8ef9	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f0f74a	acpi_cppc_processor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x710080f2	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7107ae90	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x711528c9	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x712e59f6	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x714b010e	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7151cfe1	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x7160c794	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x7166f777	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x7179a170	usb_acpi_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x717aa88e	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x717b780e	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7181db30	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a64919	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b2de9e	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b83ebe	gnttab_dma_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x71c71b82	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d8da14	meson_clk_dualdiv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f9a603	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x71fdc3b4	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7207dd9d	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x720aa3f7	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x7214e2e7	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x722b7221	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x722d7910	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x723221fb	acpi_pm_wakeup_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x723df770	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7258ae01	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7298c357	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x729d699f	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x729ff45e	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a00713	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a35333	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ac6f76	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b2cc33	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c042ff	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72fb4b48	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7312029e	hisi_clk_register_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x73242dcd	cpu_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x732852fe	xenbus_transaction_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x732862a0	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x732d2f0f	acpi_dma_request_slave_chan_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7381287f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x738a38d2	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b40136	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b5c57b	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c0ceac	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c35fe2	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x73cc3b4f	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d419e3	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73dfbf05	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ebc4d1	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f4ef37	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x74025669	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x740e3bf4	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x741220f3	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x7416ff39	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x74178e74	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x743149aa	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x743863bc	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x743b99d8	xenmem_reservation_increase
+EXPORT_SYMBOL_GPL	 vmlinux 0x74457e56	apei_resources_fini
+EXPORT_SYMBOL_GPL	 vmlinux 0x744a3c79	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x745197cf	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7457de38	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x74685c34	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x748c9cfb	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x74910f4d	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x7494db2d	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x74af45b2	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74def5ef	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f0094d	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x75038e6b	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x750c403d	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x75174c53	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x75263d4d	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7530018a	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x75672a04	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x756b5d74	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7579e709	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x759bfe36	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x75af1a65	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cfa2c5	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e98baf	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x75f0e875	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ff3ac1	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x760cbd01	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x761b4e7b	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x762af041	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x763ffc74	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x76541d11	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665a95b	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x767e91cd	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7687c453	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x76890fb0	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x768f5f64	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x768fed1c	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x76ba849a	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cbb239	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d90f6a	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76dae1bd	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e66c75	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e79ab7	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e85b92	gnttab_request_free_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x771a1b96	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x771b1e7a	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x772345ef	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b0f64	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x772b8c15	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x77304765	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7732b3e7	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x774beccc	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x77532939	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7773689a	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x77762025	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x77804046	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x77815494	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x7783946e	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7785580e	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7786b544	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x778e2bcf	ahci_reset_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x779dd71c	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c81f4f	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d3811d	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d42bdb	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x77daf515	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x77eb2fe7	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f10a88	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x78023321	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x780aec96	dpbp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x781f9f42	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7828045e	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x782878f2	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x7828a6d1	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x783b20ca	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x78459fcb	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785f2125	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x786dceb9	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x787379df	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7898403d	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a960b7	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ba427b	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cf7d1b	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x78da0e88	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e8006a	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x78f1284d	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fb188c	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fcf8ae	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x790309af	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x790be0b9	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x79196653	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x792e03a6	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x79340b1d	meson_clk_pll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7939b0cf	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7943e141	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a0461	rockchip_pcie_disable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x794e2327	dprc_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x795da978	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x79683c21	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x797f9488	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b7682	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7998d321	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x799a194a	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x799aebb1	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x799d8147	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b2757f	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bc842c	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e5b66a	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x79ef293a	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a059e67	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a1a8a57	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a29b63d	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2d4412	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2d8ca7	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a36c553	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a4b1a08	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a67f808	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a687f28	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a87248b	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a921f38	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aa50142	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aa8e3d9	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ab625ec	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abc334f	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abfca43	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adfa991	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae20fd8	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aea72c2	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af81429	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b12ef91	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2163bd	HYPERVISOR_tmem_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2556b2	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4c9ba9	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5452b8	acpi_unregister_gsi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b632ea1	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6f9536	acpi_register_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b776bf7	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b7d1289	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba2387f	dprc_get_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba72579	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab6124	clk_regmap_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb3d996	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb64d03	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc353d8	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc7bc5e	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc92847	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcf45c2	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd57059	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be67381	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be9da88	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c034c31	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c47ea7c	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c681aba	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9c66a6	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb04869	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb47ef2	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb803de	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc4e28d	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc61863	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cceaf92	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd364d5	fsl_mc_portal_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ce1df5f	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf7a927	xenbus_probe_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d10a65f	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d16eed0	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1e1ea2	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2ff97e	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d4678a5	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d4ea0a4	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d5efad4	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6462dd	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d809afe	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d968620	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da46025	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da46f13	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da4d08a	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc2707a	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd5746e	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de1e556	bgmac_enet_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de65a03	acpi_lpat_free_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de6cc23	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df24c57	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e194e5d	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e3c1920	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e51d135	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5af5d5	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e649e82	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e723a8e	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8d8619	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e992f7a	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9c3234	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea229e3	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea75c24	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb75c46	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebec0cf	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec814de	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7edb9852	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee02760	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eeb1ecc	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f05e4e3	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f1c4bce	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f268dfa	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f2e7217	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f2ebcf7	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f36e228	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f38b969	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3bc504	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f45fe86	clear_foreign_p2m_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f5a5a12	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f5ed181	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f5ed8ca	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6e4301	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7b07e6	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f809856	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8f2345	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9a003c	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9a2352	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9c2614	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa1b6b3	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa96509	erst_get_record_id_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb4ba62	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fd0116b	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fed1595	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x8001d588	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8018e0af	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x8043654f	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f9061	meson_clk_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8053c814	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805e055c	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x8067845a	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8068cb17	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x806b17d2	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x807349bf	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x807766ea	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8081821e	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x808923bf	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x80993eca	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8099f994	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b0b474	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bf77e3	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80e92ff4	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x80eead58	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x81066d01	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81093491	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8112961d	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8123b2a6	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x813620d4	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x814d6fc7	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8189bf82	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x81906dda	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x819d72cb	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x819e7ce9	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x81a70964	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81db2953	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x81dc194b	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e1dc26	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x81edbab7	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x81fd4f79	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x82092899	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x820e482d	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x82148a38	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x8228cde2	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x8235090f	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8239f970	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x823eae06	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x82408af7	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8241893e	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x824f95a7	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x825ab103	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x827599e4	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e11c2	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x827e61f8	acpi_has_watchdog
+EXPORT_SYMBOL_GPL	 vmlinux 0x828d50c3	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x82938da6	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a8d85d	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82bb6450	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d5bf07	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e3ea53	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f41912	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f42b53	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x830cb83e	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x830fbda5	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8337bb8d	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833f5e9a	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x83497667	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x8353dfff	acpi_os_get_iomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x83611298	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x83667ede	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x836b2c3a	clk_regmap_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x83716d94	acpi_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x83888f8a	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x839bbe32	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a1a4c9	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x83bc114d	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x83cfaf5c	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d2d2aa	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f6e416	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x840e3223	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84259a3a	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f046d	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8431f271	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x84699294	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x84708d9f	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8470dac6	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8476e1b2	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8479a890	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x849cf4a2	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b2f6e0	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b73753	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ba38b5	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d25902	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x84da5c68	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x853455d4	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x85372db2	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x853c6dcf	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x85477a45	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x854f8557	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855cc20b	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x85769dc2	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x85935a61	acpi_dev_irq_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x859b4c2f	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x859c95ac	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a35a74	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a61fb0	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a96300	ata_acpi_stm
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c626	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b56086	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d6da20	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x85dd6438	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ec0063	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x85fcb94b	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8601c101	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86263c0c	bgmac_enet_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8629afb1	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x864c9ed1	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x864cae0a	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x8652fb04	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8659bb46	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x86623fd7	notify_remote_via_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x866c0239	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x86700220	acpi_get_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8670425f	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8674cbc0	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86866d37	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x868b2a68	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b10b9a	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b13d2a	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b5b4cb	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c43a8c	cper_estatus_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c70cdc	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cc8805	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ceda75	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d1327c	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x870e16b7	xen_test_irq_shared
+EXPORT_SYMBOL_GPL	 vmlinux 0x871e39ce	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8720874d	acpi_device_fix_up_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x8730bc08	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x874bcc43	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8753d762	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x876bc47c	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x87892457	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x878c262e	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8790050e	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x87957d44	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x879e8b1e	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87beb9ff	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x87bf57a6	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x87bf6982	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c6274d	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d93f4d	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d9870d	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x87db7f27	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f3f530	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x88066be2	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x880fc9ef	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x881f2f80	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8832d1aa	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x88338e1a	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x88690045	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x887bf7fe	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x888257bb	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88958f4a	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88d2f342	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e2aa2e	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e79dd1	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e8d2ad	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8905b357	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8908bd49	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8908d7b1	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x890e856a	acpi_subsys_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x890fa0fa	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89414bcf	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x894b767b	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8951d161	acpi_gpiochip_free_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0x89621dfe	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x89696218	reserve_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0x89721a61	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x8973d125	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x898602a8	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8988ee19	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x899eba8a	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a4476d	HYPERVISOR_multicall
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a49255	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a8ce54	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89aedf45	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d09a9b	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d1a657	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x89d7d733	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e340cf	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a17972b	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a240bff	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2d10ea	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a37c100	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a433ef7	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a45a555	acpi_unregister_wakeup_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a5ee12f	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a68577c	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6e1a91	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7416b6	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a766406	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a78989f	irq_from_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9550e8	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab23b22	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac68049	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac9c1b9	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad0c2f0	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b03fd68	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b111e90	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b39c711	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b4bb01e	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b535e76	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b702468	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7a0d9a	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7b305d	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b89fee5	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba5afe9	HYPERVISOR_memory_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba76a51	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb2fcc3	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbc27f4	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbee4cf	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbf1f20	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bcc08c8	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd24590	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd3064c	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8becef07	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bff21ce	devm_rpi_firmware_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c059700	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0869c2	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2ba491	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2eb9f8	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c377dcd	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3c2168	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3d7e36	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c4417de	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c44ca4a	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c484409	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5f8aa6	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7bd8f2	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c82381c	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc63507	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cce1ff9	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd06ba6	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cda5c03	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cebc22a	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0cfd95	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1f890a	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d21be91	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d221505	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d254fda	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d2e42f2	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3b0104	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d51da0f	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d837b54	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d845add	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8658a1	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8a1a3b	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8e573a	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d924b4c	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d931b91	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9edb19	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbf7aaa	privcmd_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd03d24	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ddca034	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ddee083	ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb69c7	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8deb6ada	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dec5389	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8def2a6a	dpbp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df30ee4	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df4c00c	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dfbc8a7	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e132723	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e31f5a2	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4b63a6	hisi_clk_register_gate_sep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e534ddc	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e598e3a	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e5da071	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e605c04	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e6fa8b5	apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e711bc6	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e719ee7	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7d97d6	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7f0a9c	acpi_get_phys_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8551cd	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e944571	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea812a6	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed07e14	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edcae5e	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eef7bc8	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f018b70	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0e694e	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f10ada9	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1305e9	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f19a389	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f215aef	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f265f6c	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f33c353	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f33c92f	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f38ad58	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4a2a3d	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6e6a1b	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f705468	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f764d55	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7bd0a6	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f801d8d	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f864348	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8c575b	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f9ac2e5	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa538d9	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc9f94b	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fdcc5d3	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8feac1a1	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fec7b65	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff762aa	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9007d972	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x90103770	acpi_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x901b0f78	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9039e2a8	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x9045a885	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x90485bad	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x904fb741	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x90646b96	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x90699178	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x906ae2eb	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9072b4f1	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9081b5db	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x90920f99	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b693c5	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b763f1	HYPERVISOR_console_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ba4932	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x90bfd9e9	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8498c	apei_exec_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d0aeb4	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f31710	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f3973a	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f9536a	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91076f92	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x911a9e84	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9131adb4	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x913b1706	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x91506c7f	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x91594445	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9159c31d	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x917d5105	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x919425fd	pv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9194e18f	xenbus_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91b02767	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c8b5b5	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d50003	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e30809	HYPERVISOR_vm_assist
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f02cde	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91fbd014	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x920e09f9	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9214b11a	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x921b0bc3	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x9226c895	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9226cbdc	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x92295424	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x923baa93	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9289799a	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x928eccf8	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a9f4c8	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x92aee333	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x92cc70e5	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d55b5c	save_stack_trace_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d8e56f	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92ed8d8f	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9309e0c2	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x930fb1c3	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x9312d80e	evtchn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x931580d7	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9318586c	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9326910e	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x9328610c	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x932f078d	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x933f75e0	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9346d9c1	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9353b24e	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x93595733	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a56bba	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x93cb2daf	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x93cfeff8	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d1d424	gnttab_free_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d23dd6	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93df306f	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x940f133d	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x942d8a5a	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x94480dd4	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9456e8ce	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9468681a	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x948590c6	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x949db907	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a7a937	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e60b1f	qcom_smem_state_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e62d2e	__set_phys_to_machine_multi
+EXPORT_SYMBOL_GPL	 vmlinux 0x94e8c1a8	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f0136c	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f460d7	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x950f8e12	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x9515885a	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x95245df0	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9554141e	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x957954f4	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x957b7bb7	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x9581bee1	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x958a9a35	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95949640	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x959bb45d	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x959d26b4	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95cbeb58	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d079f2	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f1825f	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f487f3	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x96244ddf	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9624b912	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x962ab862	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x962c8ae1	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x963d42aa	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x967b0493	pcc_mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x969230f1	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9698a3af	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c3273	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c460c	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b3f2be	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x96bf13a7	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d10030	meson_clk_pcie_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e4bc9f	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x97073c62	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x971014fa	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x97136b33	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971da5e7	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971db573	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x971f2a09	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x972fd241	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x973599ee	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9742830e	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9744638e	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x974bb06b	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x974d9aea	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x97623558	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x97676a2f	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x976bd672	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0x977631e9	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x977be5c7	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x978e1d8e	xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b62148	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c7ad97	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f322cd	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f3c3e7	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x9801b928	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x982e1446	mc_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x982fe418	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x9847ad08	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9859d10f	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9859d5cf	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98801c1c	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x989172f2	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x989a4cb6	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x989efa55	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b9bf2c	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x98c3425a	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb06d8	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cb8bcf	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e19288	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x98e31c67	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x99067f8b	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x990b4fcf	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x99133482	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x99237833	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x992637a1	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9929b87d	dpcon_get_attributes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9946f901	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x995acdf1	hisi_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9975a87d	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c7f81	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9994b7d2	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x99986ddb	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a7704f	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ac918f	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b7f454	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c30fa2	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c80f3a	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c8be6f	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d2e515	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d70ea9	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e0d4d9	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x99e793f2	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ec0b4a	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ecdee3	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ff3f25	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a1bb1dd	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a23531e	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2d29df	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2f3e4e	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a3de48c	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4ff752	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a58dd2d	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a715201	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a751940	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a796d07	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7bdfde	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa91df3	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aaad951	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abdc356	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9acbaa6a	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae4191f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9afa31ec	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9afc00ce	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b06d61b	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b10ff2b	ahci_print_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b129d10	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1461f4	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b184dd5	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1ba02e	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b25ec9d	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4cae90	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5064ec	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b57ba56	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b57e673	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b60ee57	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b63e1f1	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6e7a0b	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6f7991	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b735841	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b776e33	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b816885	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b89fd14	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b8d1fef	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb023c0	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb1390a	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb904db	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bbcfa88	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc5c579	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bce8201	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcf8121	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bd1c32f	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bea6d0e	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1e3fba	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1fec4b	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c808ef0	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c93c259	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca25a64	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x9caab9ef	acpi_gpio_get_irq_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce1c6dc	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf6bc41	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cfb4396	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1507ba	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1c77b2	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d21c94c	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d24f788	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d28aec7	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d2a088a	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d2fcee3	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6d904c	i2c_acpi_find_adapter_by_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d72788e	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dae7a73	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba2950	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbc843f	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc4b735	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc7ab7c	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddcc88c	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddd96f0	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddf820d	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df82dff	xenbus_map_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df9dc3f	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e005e6f	cppc_get_perf_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e01f2e4	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e13a187	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2729b2	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e366bc9	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3b5d00	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5b06b8	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e6171c3	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e68b3a9	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7c79bd	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7d809e	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e818e15	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9258cd	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e92d747	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e948eee	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec9f45e	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed54f47	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed776b5	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edbb977	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edd1aab	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee2a05e	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef0f42e	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f2c0bd4	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f47322f	devm_clk_get_optional_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4bd0c1	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4d4f68	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4f31a8	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f517986	HYPERVISOR_hvm_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f54d2bd	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f629d1a	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7182c9	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f72056d	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7c9414	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f7ca1b1	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f8976e0	usb_acpi_port_lpm_incapable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f8e6d62	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa2ca1a	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb42c43	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fbfebab	erst_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc4b356	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fea22b4	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff3f4b8	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff8d248	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02934cf	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa037a12e	gnttab_foreach_grant_in_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa053025d	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07ffe10	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08369cf	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08a084e	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0957b9b	acpi_dma_request_slave_chan_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09654ed	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a23772	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0a3db2f	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0aa633b	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0b4ddc6	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c6befa	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3f2d7	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10e8e2a	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11216be	xen_store_domain_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1336f7f	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14bae89	acpi_subsys_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1691b63	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18afbad	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1ab261a	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1cc059d	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1cce7fa	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1dca7f2	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1fb87f7	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20425af	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20c4cc1	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20ccaa3	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2217cb8	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xa24d7a90	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2606467	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2693e93	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26e7c89	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2702a32	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa28725f0	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xa287cf51	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xa294af91	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa29c992f	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2afca82	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c74331	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d66de1	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d94c77	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32bc91e	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32bf904	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33cdc6b	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xa35ded2b	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38c1436	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39ed96e	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3bc457e	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3bd762a	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c447aa	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c7eae3	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d38e4f	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d535c8	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d88111	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e6d187	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ff068f	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ffad5e	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4075245	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4131850	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa416ec1e	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4304a51	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4317f4a	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xa442b068	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa452f2a4	xen_pirq_from_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa494d3a8	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49719cc	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49e6a64	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4a01682	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4aea4b0	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c0342b	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c63c86	acpi_subsys_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4dbde04	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e472bc	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e701b0	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e816e2	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f2a2ed	acpi_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fe10be	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50335f4	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa524c137	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xa529d84e	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa56333b6	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa564b343	gnttab_pages_clear_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xa571e1e9	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xa599ccdf	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a55217	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b6196d	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b9d638	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bd23cd	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bda8a1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c3030c	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5da3ea8	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e6bdb3	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e9f9bf	acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5fd2519	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6191333	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa627cfc2	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62840dc	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62e9052	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa636d2d4	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6533fb1	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6840205	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa687b0fd	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68be598	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a5963b	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d2baba	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e18fdf	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e76085	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6efb95a	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa708b9d1	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa71053a9	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa731f387	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73e9b68	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7404b33	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xa745b053	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74e05b4	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7538a97	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76b8e6b	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xa772ea28	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7856098	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7903e00	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79257b8	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b89470	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7be333a	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c699d1	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d5047a	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d70c67	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ed7888	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ef6131	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fd748a	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8265dd1	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8269fb4	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82d0580	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82e08d7	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xa830ce15	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8358b49	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa838464d	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa839d311	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83db746	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8452b82	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84afbd4	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85aa943	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa860726c	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8675181	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86ad91e	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87824a1	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa87b1020	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8895c8c	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8aca4ef	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ae1065	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bce7c5	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bd92f7	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c5a26b	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e33a92	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e91d59	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90074d4	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9078c56	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b9b7e	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9470b48	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96010e0	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa968cfe3	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa972ec73	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa993e3a0	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9985bc5	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9aff541	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b3a980	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bc8b74	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9be4c86	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9beb7fd	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c0942d	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9df9259	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e417ac	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9f9be87	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9fd8c78	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa05f173	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa06bf34	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2549ea	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa28f959	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2c5bc1	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa334783	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa40878d	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa42998c	acpi_dev_get_dma_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5c2d11	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6ceef7	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa70b11c	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa915c97	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa968289	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9bddd8	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf8304a	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xab00d0e4	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xab06d2ef	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xab104f3f	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xab329f05	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xab335198	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xab37d1ee	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4ac5c9	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xab541808	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xab63f3a9	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xab69ba00	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6b5daa	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6c9d17	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xab78920e	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xab819cf9	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xab95539e	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xab98ea6e	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba8db82	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb09f3f	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc05caa	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd45848	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe481d0	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe69356	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0xabeda0fa	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0a02c2	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0b676a	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0ef386	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1a61a1	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xac21cb31	acpi_irq_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0xac52bf44	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6611d8	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xac68953c	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xac9cc42a	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca145b9	dprc_set_obj_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca53bae	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0xacabd0db	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc7fc27	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xaccb1929	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd71b0b	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xacdf1efe	xen_unmap_domain_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xacffe03c	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0de7a0	acpi_gpiochip_request_interrupts
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0f2b6c	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xad2642b9	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5ebb11	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad78c8b6	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0xad845687	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xad85c0f7	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8bdcd5	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xada31b38	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb3d9af	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xadb5e0d5	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd92bca	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0xaddd5746	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xade6b114	cec_pin_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xadeb03bc	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf6702c	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae03a125	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae08d367	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1ee357	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xae20bfbd	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae375020	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae407387	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4305d0	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4dc015	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae56ee5a	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xae586516	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xae66224d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xae66f0d3	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xae694604	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae88e9b4	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8a1f82	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae986ef3	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xae99b8c8	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb12315	find_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec04177	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec93624	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xaecdaf68	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xaedf96bf	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf057710	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf14321b	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2bccac	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2da999	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf48d630	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5c265e	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf92f99d	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf94c9b8	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xafabed0a	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb07262	__pfn_to_mfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafde4ef7	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xafeaa859	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xaffa3c58	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02ac411	register_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb031b49c	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0437cc3	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04c3b95	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb05ee033	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0725eee	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0756784	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb07a0dc2	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08a22a3	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0961772	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb097cb07	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a52ef8	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a94094	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a986ea	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b59f1b	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bde52a	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0cdf1c4	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0dd0472	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e8e671	xenbus_otherend_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ed0e6c	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f89226	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10bd556	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10c57d8	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11764c9	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1303c94	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb157f22b	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb15dd58a	acpi_pci_find_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16abee1	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb181a06c	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb186170a	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18701f5	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1badc18	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bdf307	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c6537a	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d245fd	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e1b6c7	xenbus_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2090d4f	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20ac112	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb225330e	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb225fc7e	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xb231270c	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2497cdf	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24d6d1b	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2557171	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2702458	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27383f2	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb285b8f8	xen_in_preemptible_hcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28af1bf	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28cd05e	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a32abb	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b62a7d	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c95066	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2d4a7d1	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e5d054	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e9229c	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff2c79	xenbus_grant_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3103d8c	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb312d745	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb31af565	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xb31fec24	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3237403	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3351c6c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb346728b	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb34a523e	mtk_smi_larb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3595944	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3709bb8	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a2428f	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c72e65	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e35230	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ee2bea	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3efabbe	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fe18b3	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3fefb2d	xhci_mtk_check_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb410a04e	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb429015f	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4404c1a	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44c816d	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4572b32	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4572ff3	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45a42ce	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45b71d5	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb482a415	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xb495045b	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a68ca0	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d6d1c5	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4dcb012	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e0a016	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4f21892	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ff6bb6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb505f792	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50c2bfd	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xb510c250	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb514fa03	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5197f2c	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb520eb79	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52447d6	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb536c222	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55cd791	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55de460	HYPERVISOR_dm_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56254f9	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57686d4	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57b69b8	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a83e35	gnttab_setup_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8c226	acpi_gsi_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b0fa08	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c079d0	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c65ab1	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e6e102	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ed48c8	bind_interdomain_evtchn_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5edc3f9	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb605aeff	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb612c716	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0xb615bc29	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6186c85	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb618acf7	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb630ec21	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xb633cffe	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb636ef0a	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb637b185	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6401e3f	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6481bdc	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65399be	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xb655fa0b	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65cf91d	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb661c04a	acpi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66222a0	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66882c1	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6756af7	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a23cff	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a6a81f	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6afd2b0	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b095b1	apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b638c7	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6c6ba04	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d68af5	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6db53b6	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f9cf8a	acpi_dev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb702838b	alloc_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xb707a872	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7188466	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7311d19	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7710c50	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7917f8f	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79ea67f	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7a0c23d	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69766	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7cf9f83	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d8ef6e	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f73ef8	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f990e9	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8038e44	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb805d366	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80a61c9	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80b6873	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8156935	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8287c73	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb831019d	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8436eef	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85d1958	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c364b	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86f1d75	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8763f10	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87e6367	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88749e7	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89dad8a	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b1af03	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8e5d9dd	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f11603	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f5c285	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8fc4773	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90570fe	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90c6a66	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xb910552c	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912d063	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91b2f45	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91d9ae0	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91f2387	acpi_subsys_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92ae837	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93b9d1a	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb975ec1b	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97be2f7	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98785dd	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9901c34	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b2ee37	devm_ti_sci_get_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9240a	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9bd2615	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c8f1e5	acpi_subsys_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d72a64	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f89246	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xba070235	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xba148697	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xba1f9337	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xba1fcd5a	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xba288112	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba404e4f	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4b5207	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xba56cc0b	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xba599484	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xba5babb8	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xba781938	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xba837b9e	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa61467	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbabda802	fsl_mc_resource_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac56dd1	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac7bcc2	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacd97ad	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadcb25c	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadd9b4f	zynqmp_pm_get_eemi_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae75722	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b25d2	register_xenbus_watch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1a6d72	xenbus_watch_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4308f0	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb452cdc	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5fd55b	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb66de9b	gnttab_alloc_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8d4adc	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb8d6fe5	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba699e9	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc30f47	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbcf07b1	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd70fd7	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbee3f56	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbf019b5	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc01ac4c	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc336cf5	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc34aa0c	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc36199d	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6a61de	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6dd069	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6ecf70	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc74c76a	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc898bac	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8cd27b	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8cf818	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9698b8	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9796e6	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9b8588	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb1bd7a	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcce998c	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdc5758	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcee9120	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd122f4f	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd27302a	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3c3a09	xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd43ec5d	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd49dae3	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5591d1	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd603446	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd6329e9	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd6400f0	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda3eafe	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda9415a	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdaa384e	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb77d4f	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbe18ea	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc000d2	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc38d83	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcf0497	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd50cf7	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdda4064	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbddec784	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde06bc7	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf7d70a	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfdb587	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe01512f	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe024a65	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe03ce1b	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe20a46a	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4527ea	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe5c888b	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe82962f	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9695e9	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeb6350b	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeb7bc75	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbebbfc97	mtk_smi_larb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec6606f	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec66c3a	__apei_exec_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbecdff09	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed7b619	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed8a063	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef1f4fc	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1249a9	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf176d4f	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf19e470	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf24fdf6	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf3613e3	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf415571	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf44ab17	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf47ca67	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4d39e5	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6ced4e	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6f6a21	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf70c783	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7b3e3e	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf7e4283	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf881369	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf915c9d	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9bc4fc	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb13a84	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb5e8b7	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb75aa1	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb89cb8	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfb8efb3	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfba0709	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfcbb588	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfcf8cc5	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd40606	fsl_mc_portal_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdb5790	gnttab_map_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe74eb3	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffc284c	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0009088	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0117417	bgmac_enet_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc02290f6	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc023ee70	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc025e5a7	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0358b2e	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0380375	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc03f8776	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04091b1	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05a7d15	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06fb82b	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xc071855b	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07856e6	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc086d255	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc098a822	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09cb5d7	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09d0783	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a32541	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a58a27	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ac4f4a	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0bf91c6	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d598af	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e9a476	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ecadfb	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc116c936	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12377b9	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xc124953a	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12e73b1	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12fcad3	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13e7582	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1416d80	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15f86aa	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1667fe4	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc167506e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16ae335	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17e9946	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18c7599	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19b99ca	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ae44c3	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c6a6d5	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ecca7e	ti_sci_get_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20e762b	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20fbf4f	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc228a402	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23e4a47	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2439bce	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24c0ada	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24cf12e	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25fbb58	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2751381	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27c0cbf	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2868030	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a32304	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a3e570	errata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2af98b9	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c958a0	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2d6e0e5	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2de27ca	hest_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e93213	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e9390d	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f6ae58	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc308a03d	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3142e7d	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32c5a36	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xc338ff5e	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3394e5d	xen_dbgp_reset_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34f3676	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3622f9d	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc36df418	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3aa334e	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3af8c60	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c838eb	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d0e398	dpcon_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3dfa30e	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e88b0d	scmi_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f3a638	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f6c6ae	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc42e6f65	ahci_start_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xc436c09d	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e92b9	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4515327	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46170da	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc481c316	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc497f475	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49a1d4e	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xc49eb67c	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a3c28f	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ac8eef	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b991be	xhci_mtk_sch_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ccdc53	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4de526a	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e64d2c	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e70a3f	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4eae733	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f66775	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xc514f6a6	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5156bf3	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc52f0388	acpi_dev_resource_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53bd90d	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53bde5b	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55c3f45	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc567e612	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57a14c8	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc57c6d80	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc583a480	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc590cc05	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc594d840	acpi_dev_resource_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc598a5f3	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc599e7e3	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b99c5d	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c4207e	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ca2455	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5cd66c3	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d1d457	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d789df	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5dfa1d9	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e7d27a	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f9e51f	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xc609ce67	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60b73b4	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6375dde	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc638db46	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63da6b4	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63e3905	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xc649d532	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xc653834b	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6572a90	xenbus_read_unsigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66019cc	xen_resume_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66dccb0	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6744eb0	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6758ffa	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6761f48	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67b79a8	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc692b0c4	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xc697a973	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a20a76	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d044f8	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6def34b	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ef8986	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7002ac4	evtchn_make_refcounted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7057e76	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70fb3ba	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7172f4b	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71c6b74	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc72e191c	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74f454e	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7548623	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7568bd4	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7586c9d	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xc76071ef	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xc77c69f2	acpi_is_pnp_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc77d4500	acpi_get_pci_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc788bf71	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7903334	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79413b2	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79f650c	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c23ff0	xenbus_exists
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7c54aab	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1676e	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7ee4290	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc804424f	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82a83ad	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc839c1ce	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83f4979	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8578f17	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85a8550	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc87fb025	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc888c40c	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc890559b	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a55d59	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8af12af	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8af40e7	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d1e985	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e679d4	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91b6d59	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91ef150	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ea3ec	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc956da42	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc957c7f9	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96cd094	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97a00c9	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc97d3bbb	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc983e101	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc984d18a	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0xc98a9cd4	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a246e4	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9b3f9c2	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d69600	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9def55e	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec0549	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9f1b25d	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xca250ee2	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3fe76b	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xca40fd51	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca42171d	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4b5b2e	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4b9034	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4be4b8	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4f3044	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5f64d9	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca9eb9be	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaaed40a	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaaf921f	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcab60ad5	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad17d33	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf031a9	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf7b7dc	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafbb70b	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafda091	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaff71db	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb035acb	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb097c1b	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0f1145	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3d2fa6	handle_fasteoi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb6d3348	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb71dd75	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7897ed	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb99fccb	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9d543b	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9e2108	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbcc066b	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe7820c	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf0b3db	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf8e9e4	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbffd40a	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc05a5d0	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0eeace	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc236f17	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc30c076	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc372d1d	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc39f745	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc46064c	acpi_get_psd_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc47356b	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc696b8e	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7b1323	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc7d09e3	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xccafa977	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb51cc0	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xccc39112	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd45582	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf061cc	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf58f7d	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0769ba	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd09bd67	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd2fb3c0	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3a2a4d	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3e5c7c	acpi_release_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd618a1d	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6492d7	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd676877	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6d603f	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7618a8	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7d3d5e	acpi_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7fd57c	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7fdb87	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdaf63d0	gnttab_unmap_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdaf86e1	cec_pin_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb8f4ec	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc2652b	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc7f2ae	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd8617f	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddd83d7	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde26600	cppc_get_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdef979d	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdfc12ae	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xce02db90	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a4020	xenbus_directory
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0a6ecb	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1ae2b7	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xce314962	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xce40c1fd	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0xce696ae6	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce9235f6	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea004b8	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb2e922	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xceba3107	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecbaa2d	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xceed8c16	__set_phys_to_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xceef8ae9	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef743e0	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xceff52f3	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0c4502	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf387ef5	acpi_subsys_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf4099f3	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5ad56c	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf631e57	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf66a0a1	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf71c36b	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf88e131	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9bb10a	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa73a31	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfaa761a	xenbus_probe_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfae6b7e	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbe2ca2	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc15f4b	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd30d71	acpi_os_map_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfdda2d1	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe5fb32	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfec906d	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffbd98c	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfffd818	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00ac733	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0158b3f	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd022de4e	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd026d518	HYPERVISOR_vcpu_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd029f461	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04213c3	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0458ccb	xenbus_strstate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd046781c	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0839dd7	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08da021	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09911a6	acpi_dev_get_irq_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a022b8	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bc3406	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0be7d8a	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d156e9	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d3f0a4	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d87ac2	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0eceaaf	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f6b904	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xd110d6c6	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11513a6	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12ce4e3	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1329fbc	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13949e0	unregister_acpi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd139799e	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1446399	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xd14868c6	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd166a200	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16c2a3d	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16fce8d	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd18779f8	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1878aac	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1889d57	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0xd19bd0b2	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1bdd539	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c3a921	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c5b562	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e4a814	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2130849	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2261116	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23b8b88	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23e0ad2	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23ea3ad	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2488db5	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd24e9e8c	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd276d80b	fsl_mc_portal_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27dfd21	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27f215d	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2a27a0a	bgmac_adjust_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2a7f222	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2afb5af	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b6db10	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d6aa47	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ea56d9	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2eb9022	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ef4dab	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f1000f	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3027406	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3108c45	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd31cd32a	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32694be	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd361fa21	acpi_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3752c27	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3791828	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd37f0cb7	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3844b1a	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38dca2c	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39811d2	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3997334	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ad6807	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bfa753	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c948bd	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e19e3f	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ea45ad	acpi_processor_get_performance_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3eaf372	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4020d78	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd408ca11	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40b229b	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4105f04	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd410e87c	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41177fa	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd426dbc4	erst_get_record_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd430b0e4	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xd430be0f	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd437f7a9	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xd449fbd1	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45465fa	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45fa5db	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd46af5ef	cppc_get_perf_ctrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd498df3f	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a5238d	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4addce9	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bb5001	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bdbd76	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ec9a76	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50041f5	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50dfd0e	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5198fd0	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51ea47d	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5274cdd	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd529ecc6	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xd52c943f	acpi_device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd53125b5	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54b518e	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5770c3a	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5965061	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b57ab3	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ca2a9e	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5da5715	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ef014d	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5f03a8e	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6013cf0	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60d9b07	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60dd2c0	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6342942	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6448c61	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64eef0a	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd65fbfc7	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd666921e	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6718a4a	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd68ba3db	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6908b60	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69151f9	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b3febf	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b5e302	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6bfed27	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c59ace	fsl_mc_allocate_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e6b285	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f2c4fc	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f51bb4	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70073a1	clk_regmap_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70f2491	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xd716f7a7	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72c19f5	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd746c137	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74cfdcf	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76294cf	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768d4ca	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7892e65	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7946ae6	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ab3264	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b5dfee	xas_split
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7bc2013	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c39fff	free_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c555af	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e7ce52	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ea9102	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd806bf5d	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80a923c	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80ed363	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd820a337	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8406f83	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd863f54b	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88b9a9f	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd89a6524	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a149a6	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c10e4b	devm_acpi_dev_remove_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c30cbb	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c497b5	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d24416	hisi_clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8dfddf0	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e4383e	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e47081	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90b7412	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90ce050	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91d749e	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91edd1e	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92f0791	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd933ea01	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9349ae0	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93a5cb1	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93acb58	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93f576a	rockchip_pcie_get_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94b93dc	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd966e7e7	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96bea10	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9717b84	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a43cf2	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9baad20	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9d5d879	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f92078	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda07c7d1	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xda15a15d	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xda57714e	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0xda5906ac	__fsl_mc_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda6da80f	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xda72585b	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7299f1	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7e71a4	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa06dc1	acpi_lpat_raw_to_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad3d06b	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae08977	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae4ddd2	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf1bd21	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf807b3	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafd032d	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb02fa60	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0377e6	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0e4b8b	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0ee65f	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb173702	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb17b0a6	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2b23f8	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2db295	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb39158e	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3d8e4e	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb440bc9	acpi_unbind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5d6a69	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb63a944	acpi_lpat_get_conversion_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6469d4	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb735885	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7807de	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb9ee7ca	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba0583f	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb60e1b	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbcab89a	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbcd9f98	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf3790e	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf8246b	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc1014d3	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc11505d	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc14a211	xen_hvm_evtchn_do_upcall
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc21e866	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc23debf	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2cf628	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2ea3b9	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc53fa87	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc57359c	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5ba871	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5d207d	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6699cb	acpi_dev_free_resource_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7df67f	apei_exec_ctx_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc829ff4	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8c685a	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc8cbc62	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc93eaed	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc94392a	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcb5a924	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc8cb1b	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcca711d	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccd03e5	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd18d2f	queue_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcda5010	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcdee973	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce23a83	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce38535	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce4a308	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce5c1d6	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce907f2	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcee2b47	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf4340a	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf4c982	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd06a412	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd082320	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd18d3c5	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2451e9	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2dd7f0	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd36e42d	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd411be5	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4c9d89	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd515a94	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd52dd00	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd6afd61	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7ad207	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7cd4b0	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f64f0	cpu_logical_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8a84d6	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9293c0	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd950863	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda5e678	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xddaedae6	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbd203b	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbf5c09	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf1216b	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf3feec	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf9fb3b	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xde09a94d	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1c1e58	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1f912b	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xde2d3af0	acpi_dev_resource_ext_address_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xde31e579	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xde430926	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5b7c94	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xde5c79fa	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xde65bb65	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde73842b	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xde7da71c	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8b5afd	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xde90bd93	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9ab8c7	xenbus_rm
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9c0b6e	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeaa02f4	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb04933	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb3e9b0	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec8610c	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xded4651c	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xded8763b	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedc6de8	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef00e36	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef77210	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef793ea	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf46a5c9	init_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf554593	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6c8b83	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6dd5cd	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6ede34	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9b6274	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfaea93d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbaa3dd	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc9c82c	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfccaa83	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffb1b6d	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00c2140	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00d37d3	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00e92d1	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe037666e	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0465f9a	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04b99fd	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0590bf4	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05a7ad3	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05b20df	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0746be3	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08e30cb	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe095f507	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a3b3e1	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c7e9c6	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d8f65f	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e3147c	HYPERVISOR_sched_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e97078	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0f3687d	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe122da90	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe13f1a85	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe141c4a8	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe147282a	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1599241	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15de4e8	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16b61fb	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17aa5f0	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17e5220	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe184a2af	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19ee3be	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a57705	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8d7c9	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ab53df	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cf92eb	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d3130c	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1eb4b04	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f4ec02	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f670a4	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f9ba6c	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1fd94a2	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20b281e	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20cfb01	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21e70bc	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2225eb6	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xe227e86e	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22e3044	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22e48ec	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22e5bcc	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xe232db35	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2360fe7	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe237b4ab	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xe23ebafa	hisi_clk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2556630	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2582a12	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2633676	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe267d8f6	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2776f03	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2788f04	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27b7eab	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27f3adb	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe280543b	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28abab9	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28b770c	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xe293fbb7	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2aacefd	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b69574	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c05239	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c5f01f	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d1fcfc	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2da231e	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e14b47	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ef2931	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f55c44	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fb018e	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fdbb5b	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30d9829	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xe315ee84	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31aa421	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31b2284	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3249e58	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe338c5ac	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0xe33bbca4	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe33e21d6	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xe342363c	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3461a55	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3533d6d	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3559b2c	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35da8f4	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38b85c4	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3948ff4	acpi_walk_dep_device_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a082c2	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a1669c	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a1ca71	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a9c672	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c67026	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cd5fae	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3da9919	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e7647d	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ebf9bd	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3f7333c	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe405aebf	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4085b37	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4248980	cper_estatus_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe431d3dd	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4380cfb	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4427205	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44535e4	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47cf982	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48282df	xhci_mtk_drop_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48b0daa	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe495926a	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c13f61	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f1f55c	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f4c9ef	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f7bf84	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fdfc18	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5045895	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51bc8c1	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51c8b78	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5325a5c	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe54c6d58	put_iova_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe553786f	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5538557	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe55578cb	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5606046	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56bc72c	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe588d97f	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58e719c	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59c7f74	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a8a825	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5afcd57	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb1943	hisi_clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d1e3f2	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f90008	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xe605489e	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60f20f8	battery_hook_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe62b9373	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe661874d	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6642002	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6825b51	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68336e2	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68d407f	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68e8202	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c4c9d7	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c5ee02	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6eef9bd	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f454ba	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f52443	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e6f5	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f83837	acpi_bus_attach_private_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72643f4	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72c0a8e	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72de6e6	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7364b2b	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7720072	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7732f74	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b4cec9	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b825ca	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d36418	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f34fd8	devm_acpi_dev_add_driver_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f9d51e	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7fc50de	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82957fe	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83c51f0	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85c0ff2	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe866d219	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86c7ace	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a16869	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ae0d33	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b5f085	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8bf6008	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8dc3d64	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e00e05	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xe90853a5	xenbus_dev_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe92545fc	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93769db	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe942f55b	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe954809c	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95a014a	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9759d4c	ti_sci_inta_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97980e4	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe98e7c25	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9afb870	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fb7722	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xea037a7e	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0aa79b	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2ce9ad	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3bacfa	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3f4a5b	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4deb9a	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 vmlinux 0xea643eea	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xea655bc0	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xea69e5f7	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xea73602f	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xea80f9e7	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xea91a5f5	battery_hook_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xea979403	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9c13de	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa1fb19	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaad96f9	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab6e2cf	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac698b8	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf28aab	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf2a9fb	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf34797	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf7fe0f	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafcaa60	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe91d9	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb01ec36	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb07418b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1c9f86	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb206c70	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb35a93b	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3f8466	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb43226b	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb67f009	acpi_pm_set_device_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb85dc3f	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba0e994	usb_acpi_power_manageable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba58a40	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd29a46	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe04981	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe11e5b	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xec06237e	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xec111429	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1fb26d	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xec465957	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5ad73b	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec69d619	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7c7822	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca2e081	i2c_acpi_find_bus_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5db92	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca9bc60	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca9fe40	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xecaa79e3	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb18a62	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xecba68e3	gnttab_batch_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xecbbbc82	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xecc1e107	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd8f23d	xenbus_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xece1ed50	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf0378b	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf32af0	devm_regmap_init_vexpress_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf81de8	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf8c2d5	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1bcb5d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed217e21	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3c22d3	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xed458496	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xed52d5aa	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5e1ac7	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xed75df91	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7b7407	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7c7b91	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed880f7e	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8ab006	xenbus_dev_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9cb956	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb636df	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc2f9f7	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xedc77e03	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd092d5	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd14f11	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xedd7bbf5	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xede2433d	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xede54ce3	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xede9a09a	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xee015108	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xee02719b	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xee100669	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xee16ab1f	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xee17aab7	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee47a133	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xee49fc3d	meson_clk_cpu_dyndiv_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xee57697d	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c633a	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6d97ee	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7295a7	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xee81c736	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xee964bb7	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec3e1c4	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec8c978	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeeb46d1	dpbp_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xef00041e	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xef181806	__xenbus_register_backend
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1af53e	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1f6e23	apei_resources_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3382e1	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xef35e914	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xef41d6df	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xef45aa70	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef4ea8ca	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5f5610	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7d2878	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xef803c0e	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xef84273a	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xef895f80	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xef8f19f9	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xef92ef33	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xef93adea	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefacd1dc	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffdecd1	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00ca635	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01c60b6	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf01fd5d3	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf024cf88	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0276750	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02ffc7b	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf03975a8	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xf03e7926	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xf043c923	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04429b4	acpi_bus_get_status_handle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04b7fa8	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0555a0c	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05d8ac4	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05dc4d5	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0660f38	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06834e1	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0696f04	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xf073b214	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08050c4	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0835541	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08ebaf1	xenbus_free_evtchn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a44943	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b136af	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0bf5469	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0bff3d8	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c7437e	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d47821	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0eebd33	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1207586	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1307b72	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1394a00	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf145fe32	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf146dcb6	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16d3fd0	dpbp_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16f63a3	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e1a6f	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17e6282	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17f133b	meson_clk_mpll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18b88d1	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19e8bcf	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a8847c	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1aba004	fsl_mc_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ac974b	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b005d4	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c0195a	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c344d5	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d05648	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e39f43	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fb823c	xhci_mtk_reset_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fbc041	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2111aa4	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf216d787	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0xf219414d	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf231f42e	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23a5df9	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23f7a7c	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2514e67	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2727c67	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf27d0a7b	gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf282f7b2	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2875bde	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a344dd	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b09229	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b82db1	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2be0eb6	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c9da28	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2eabde9	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f717b0	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf301e1bf	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31043b1	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3287399	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bcc4f	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32bdc5d	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33d631a	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3426c8d	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf355db38	xen_xlate_unmap_gfn_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3565bfa	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf35d03aa	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36413e0	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3682502	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf368ac49	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf377c0c4	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b95d79	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d37b6f	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e45705	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf402f1c4	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf411c490	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf418273a	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41fb794	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf421339f	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf42cb84e	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43d5ccc	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45dce83	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4601d01	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xf466f5a7	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4779776	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47c88eb	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48e8d25	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf493bffb	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4953d1e	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0xf499d43e	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c0f196	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c83f2c	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4caf1e8	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d14286	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d54a47	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e57141	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e6d1a5	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f97bc3	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fb999a	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50e911e	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51001dc	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf511ac9a	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf524e9f3	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52c1c3d	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52d329e	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xf535cd95	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53b9f7b	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54539a7	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5587a7c	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55f686a	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5678f10	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5785b42	evtchn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf584c603	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58d3b6d	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf590f330	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59b8017	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59e3a52	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59e6289	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a2a9ee	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cd4944	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5de6822	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60f41db	qcom_smem_state_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf63f4824	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65eb230	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66a9110	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf671a314	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf67736bb	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6819fe9	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xf69574aa	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6aaed2b	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b8dc4f	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bb4a4d	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c71a25	cper_severity_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c73490	ahci_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c9228c	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d29589	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6dbef07	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e31f9e	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ee13a4	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6febf9a	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6fed3a7	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf702638f	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf705377a	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71c116b	acpi_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71ec592	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72bbfb2	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730fb4a	qcom_smem_state_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7369c3d	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7514442	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xf767cb0c	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76d80f1	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77cdf93	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78439ab	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7866b4f	bind_evtchn_to_irqhandler_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b0cb33	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b69260	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b6b823	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b787e1	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b984f2	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c3f273	xen_resume_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7dd3eb3	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e074aa	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f36080	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fd044b	ahci_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf801f9d3	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80cc57c	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8163a97	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81a36c6	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf824296e	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf826919b	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8545795	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf854bc94	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf858f11c	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf85d09f1	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf872dffa	bind_interdomain_evtchn_to_irq_lateeoi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88328df	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b6e8db	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c7ea81	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e40e85	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e7faa4	xhci_mtk_sch_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f8ecce	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90433a3	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf911c9b2	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9229b16	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9304af7	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf967422b	HYPERVISOR_xen_version
+EXPORT_SYMBOL_GPL	 vmlinux 0xf968b7f0	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96cf46a	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf976e940	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9796c3b	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab59bb	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b729eb	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b7d7ff	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c3e4ce	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d81d25	acpi_dev_gpio_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9de3e6b	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e621c9	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ee8118	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f88ce9	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0a8896	acpi_dev_resource_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa14ba0d	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa182f67	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1fd7df	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa2baf91	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa32095b	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa349688	aer_recover_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa4635fa	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa566b8e	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa63878d	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6634c1	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7c82a1	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa811e00	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa91bca9	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa954855	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa55d01	pcc_mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaba15c6	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfacb0053	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfacee604	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad4f523	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae3e5cc	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb014a5f	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1a5757	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1aed8b	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb33a93f	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb3535d1	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb484120	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4cf99b	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb55de72	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7f15cc	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbc4036	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbe0514	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbcae576	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd31b9a	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbdfc558	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe5e406	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbebaa17	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc04e037	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc04f75b	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0797e4	free_iova_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc09713e	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0e3184	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc115259	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc254d15	gnttab_free_auto_xlat_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3b4246	acpi_bus_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8056a7	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc92d617	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaa1642	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb5c737	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd782e1	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd8778d	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfcdde0	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd13df32	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd237fc2	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd36f232	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6672e3	acpi_bind_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd667d15	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6bb316	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd782cfd	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd90b6e0	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda639b5	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb9c55f	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbdc9c7	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd6ae0b	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddb9428	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf4ae99	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0e7cd3	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe16d7d2	ahci_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe231db4	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3fa6d8	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe41fbbe	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe49db09	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5f5826	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe65f7e4	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe680cbf	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe6b2391	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe700cb5	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe80f7dd	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb0c535	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb38032	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec6e507	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeca2cfa	xenbus_dev_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecfbad0	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedd0710	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeeecd05	apei_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff105d8c	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xff13e87c	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff391f81	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5120a6	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6128c7	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6e60e8	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xff7774df	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xff938410	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffbf54d1	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd26db3	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd2f601	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe60384	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff15a72	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff9253e	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffc23b3	account_locked_vm
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0f18676a	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1fa4c730	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2cac5d90	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x450dc54c	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4c657c86	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4d8e4708	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x55aee602	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5679243d	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x62d5c39d	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x68f73372	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6ca8e775	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x714df963	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x8ed2bc0a	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9deded0a	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa04ac9c5	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb8e8cfcb	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xbcce6a09	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xbcf46952	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc4a7c9db	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc5344ca5	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xdb3dd0bc	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe24cfb69	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe5e3a22d	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf494cc0d	usb_stor_CB_reset	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/arm64/generic.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/arm64/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/arm64/generic.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/arm64/generic.modules
@@ -0,0 +1,5998 @@
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_exar
+8250_men_mcb
+8250_omap
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+9pnet_xen
+a100u2w
+a3d
+a53-pll
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+acpi-als
+acpi_configfs
+acpi_ipmi
+acpi_power_meter
+acpi_tad
+acpiphp_ibm
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes-arm64
+aes-ce-blk
+aes-ce-ccm
+aes-ce-cipher
+aes-neon-blk
+aes-neon-bs
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci
+ahci_brcm
+ahci_ceva
+ahci_mtk
+ahci_mvebu
+ahci_platform
+ahci_qoriq
+ahci_seattle
+ahci_xgene
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+allegro
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+amba-pl010
+ambakmi
+amc6821
+amd
+amd-xgbe
+amd5536udc_pci
+amd8111e
+amdgpu
+amplc_dio200
+amplc_dio200_common
+amplc_dio200_pci
+amplc_pc236
+amplc_pc236_common
+amplc_pc263
+amplc_pci224
+amplc_pci230
+amplc_pci236
+amplc_pci263
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+analogix_dp
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+ao-cec
+ao-cec-g12a
+aoe
+apbps2
+apcs-msm8916
+apds9300
+apds9802als
+apds990x
+apds9960
+apex
+appledisplay
+appletalk
+appletouch
+applicom
+apr
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_emac
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arm_dsu_pmu
+arm_mhu
+arm_scpi
+arm_smmuv3_pmu
+arm_spe_pmu
+armada-37xx-cpufreq
+armada-37xx-rwtm-mailbox
+armada-8k-cpufreq
+armada_37xx_wdt
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_snoc
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlantic
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axg-audio
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x-rsb
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bam_dma
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-flexrm-mailbox
+bcm-keypad
+bcm-pdc-mailbox
+bcm-phy-lib
+bcm-sba-raid
+bcm-sf2
+bcm203x
+bcm2835
+bcm2835-rng
+bcm2835-v4l2
+bcm2835_thermal
+bcm2835_wdt
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm7038_wdt
+bcm7xxx
+bcm87xx
+bcm_crypto_spu
+bcm_iproc_adc
+bcm_iproc_tsc
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+berlin2-adc
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluefield_edac
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bman-test
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb-avs-cpufreq
+brcmstb_nand
+brcmstb_thermal
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btqcomsmd
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+caam
+caam_jr
+caamalg_desc
+caamhash_desc
+cachefiles
+cadence-quadspi
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camcc-sdm845
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cavium-rng
+cavium-rng-vf
+cavium_ptp
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccp
+ccp-crypto
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+cdns3-pci-wrap
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chipone_icn8505
+chipreg
+chnl_net
+chromeos_tbmc
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+clk-bd718x7
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-hi3519
+clk-hi655x
+clk-lochnagar
+clk-max77686
+clk-max9485
+clk-palmas
+clk-phase
+clk-pwm
+clk-qcom
+clk-raspberrypi
+clk-rk808
+clk-rpm
+clk-rpmh
+clk-s2mps11
+clk-scmi
+clk-scpi
+clk-si514
+clk-si5341
+clk-si5351
+clk-si544
+clk-si570
+clk-smd-rpm
+clk-spmi-pmic-div
+clk-sprd
+clk-twl6040
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmtp
+cnic
+cobra
+coda
+coda-vpu
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-charger
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cppc_cpufreq
+cptpf
+cptvf
+cqhci
+cramfs
+crc-itu-t
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-ce
+crg-hi3516cv300
+crg-hi3798cv200
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_rpmsg
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_ec_vbc
+cros_kbd_led_backlight
+cros_usbpd-charger
+cros_usbpd_logger
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+defxx
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dispcc-sdm845
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dma-axi-dmac
+dmard06
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpaa2-console
+dpaa2-ethsw
+dpaa2_caam
+dpot-dac
+dps310
+dpt_i2o
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drm_xen_front
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw-mipi-dsi
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_drm_dsi
+dw_mmc
+dw_mmc-bluefield
+dw_mmc-exynos
+dw_mmc-hi3798cv200
+dw_mmc-k3
+dw_mmc-pci
+dw_mmc-pltfm
+dw_mmc-rockchip
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwc3-keystone
+dwc3-meson-g12a
+dwc3-of-simple
+dwc3-pci
+dwc3-qcom
+dwmac-altr-socfpga
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-ipq806x
+dwmac-mediatek
+dwmac-meson
+dwmac-meson8b
+dwmac-qcom-ethqos
+dwmac-rk
+dwmac-sun8i
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ec_sys
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-mxc
+ehci-platform
+ehset
+einj
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emac_rockchip
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+emxx_udc
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+ene_ir
+eni
+enic
+envelope-detector
+epic100
+eql
+erofs
+error
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-qcom-spmi-misc
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+fastrpc
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+fintek-cir
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fixed
+fjes
+fl512
+flexcan
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+fscache
+fsi-core
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-dpaa2-eth
+fsl-dpaa2-ptp
+fsl-edma
+fsl-edma-common
+fsl-enetc
+fsl-enetc-mdio
+fsl-enetc-ptp
+fsl-enetc-vf
+fsl-mc-dpio
+fsl-mph-dr-of
+fsl-qdma
+fsl_dpa
+fsl_ifc_nand
+fsl_imx8_ddr_perf
+fsl_linflexuart
+fsl_lpuart
+fsl_pq_mdio
+fsl_usb2_udc
+ftdi-elan
+ftdi_sio
+ftl
+ftm-quaddec
+ftsteutates
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gasket
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gcc-apq8084
+gcc-ipq4019
+gcc-ipq806x
+gcc-ipq8074
+gcc-mdm9615
+gcc-msm8660
+gcc-msm8916
+gcc-msm8960
+gcc-msm8974
+gcc-msm8994
+gcc-msm8996
+gcc-msm8998
+gcc-qcs404
+gcc-sdm660
+gcc-sdm845
+gcc-sm8150
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+ghash-ce
+gianfar_driver
+gigaset
+gl518sm
+gl520sm
+gl620a
+glink_ssr
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-amdpt
+gpio-arizona
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-brcmstb
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-eic-sprd
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-mlxbf
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-pmic-eic-sprd
+gpio-raspberrypi-exp
+gpio-rcar
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-sprd
+gpio-syscon
+gpio-thunderx
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xgene-sb
+gpio-xlp
+gpio-xra1403
+gpio-zynq
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpmi_nand
+gpu-sched
+gpucc-sdm845
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hanwang
+hbmc-am654
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hclge
+hclgevf
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfpll
+hfs
+hfsplus
+hi311x
+hi3660-mailbox
+hi6210-i2s
+hi6220-mailbox
+hi6220_reset
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi655x-pmic
+hi655x-regulator
+hi8435
+hibmc-drm
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hinic
+hip04_eth
+hisi-rng
+hisi-sfc
+hisi-trng-v2
+hisi504_nand
+hisi_femac
+hisi_hpre
+hisi_powerkey
+hisi_qm
+hisi_sas_main
+hisi_sas_v1_hw
+hisi_sas_v2_hw
+hisi_sas_v3_hw
+hisi_sec
+hisi_sec2
+hisi_thermal
+hisi_uncore_ddrc_pmu
+hisi_uncore_hha_pmu
+hisi_uncore_l3c_pmu
+hisi_uncore_pmu
+hisi_zip
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hnae3
+hns-roce-hw-v1
+hns-roce-hw-v2
+hns3
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hopper
+horus3a
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-bcm-iproc
+i2c-bcm2835
+i2c-brcmstb
+i2c-cbus-gpio
+i2c-cros-ec-tunnel
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-hix5hd2
+i2c-i801
+i2c-imx
+i2c-imx-lpi2c
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-meson
+i2c-mt65xx
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-mv64xxx
+i2c-nforce2
+i2c-nomadik
+i2c-nvidia-gpu
+i2c-ocores
+i2c-owl
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-pxa
+i2c-qcom-geni
+i2c-qup
+i2c-rcar
+i2c-riic
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-scmi
+i2c-sh_mobile
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-synquacer
+i2c-taos-evm
+i2c-thunderx
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xgene-slimpro
+i2c-xiic
+i2c-xlp9xx
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icc-smd-rpm
+ice
+ice40-spi
+icp
+icp_multi
+icplus
+ics932s401
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imon
+imon_raw
+ims-pcu
+imx-cpufreq-dt
+imx-dma
+imx-mailbox
+imx-pcm-dma
+imx-pxp
+imx-rngc
+imx-sdma
+imx214
+imx258
+imx274
+imx2_wdt
+imx319
+imx355
+imx6q-cpufreq
+imx6ul_tsc
+imx7d_adc
+imx7ulp_wdt
+imx_keypad
+imx_rproc
+imx_sc_wdt
+imx_thermal
+imxfb
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_acpi
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+iproc-rng200
+iproc_nand
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_ibft
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it87
+it913x
+itd1000
+ite-cir
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k3dma
+kafs
+kalmia
+kaweth
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kirin-drm
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+komeda
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+kpss-xcc
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+layerscape_edac_mod
+lcc-ipq806x
+lcc-mdm9615
+lcc-msm8960
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pwm
+leds-regulator
+leds-sc27xx-bltc
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lima
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lkkbd
+llc
+llc2
+llcc-sdm845
+llcc-slice
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpasscc-sdm845
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macb_pci
+machxo2-spi
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mailbox-xgene-slimpro
+mali-dp
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell-cesa
+marvell10g
+marvell_nand
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux-gpio
+mdio-mux-meson-g12a
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdio-octeon
+mdio-thunder
+mdio-xgene
+mdt_loader
+me4000
+me_daq
+mediatek-cpufreq
+mediatek-drm
+mediatek-drm-hdmi
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+meson-canvas
+meson-drm
+meson-gx-mmc
+meson-gxl
+meson-ir
+meson-mx-sdio
+meson-rng
+meson-vdec
+meson_dw_hdmi
+meson_gxbb_wdt
+meson_nand
+meson_saradc
+meson_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxbf-tmfifo
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mmcc-apq8084
+mmcc-msm8960
+mmcc-msm8974
+mmcc-msm8996
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6380-regulator
+mt6397
+mt6397-regulator
+mt6577_auxadc
+mt6797-mt6351
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt8183-da7219-max98357
+mt8183-mt6358-ts3a227-max98357
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-btcvsd
+mtk-cir
+mtk-cmdq-helper
+mtk-cmdq-mailbox
+mtk-cqdma
+mtk-hsdma
+mtk-pmic-keys
+mtk-pmic-wrap
+mtk-quadspi
+mtk-rng
+mtk-sd
+mtk-uart-apdma
+mtk-vpu
+mtk_ecc
+mtk_nand
+mtk_thermal
+mtk_wdt
+mtouch
+mtu3
+multipath
+multiq3
+musb_hdrc
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvneta
+mvpp2
+mvsas
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxc_nand
+mxc_w1
+mxcmmc
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxsfb
+mxuport
+myrb
+myri10ge
+myrs
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netsec
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfit
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-neon
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_labpc
+ni_labpc_common
+ni_labpc_pci
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+nps_enet
+ns-thermal
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nuvoton-cir
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-bcm-ocotp
+nvmem-imx-iim
+nvmem-imx-ocotp
+nvmem-imx-ocotp-scu
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmem-sc27xx-efuse
+nvmem_meson_efuse
+nvmem_meson_mx_efuse
+nvmem_qfprom
+nvmem_rockchip_efuse
+nvmem_snvs_lpgpr
+nvmem_sunxi_sid
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+octeontx2_af
+octeontx2_mbox
+of-fpga-region
+of_mmc_spi
+of_pmem
+of_xilinx_wdt
+ofb
+ofpart
+ohci-platform
+omap-mailbox
+omap-rng
+omap4-keypad
+omap_hwspinlock
+omfs
+omninet
+onenand
+opencores-kbd
+openvswitch
+opt3001
+optee
+optee-rng
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+owl-dma
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+panfrost
+parade-ps8622
+parkbd
+parman
+parport
+parport_ax88796
+pata_acpi
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_imx
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc300too
+pc87360
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcie-iproc
+pcie-iproc-platform
+pcie-rockchip-host
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmcia_core
+pcmcia_rsrc
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcwd_pci
+pcwd_usb
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pfuze100-regulator
+phantom
+phonet
+phram
+phy-am654-serdes
+phy-armada38x-comphy
+phy-bcm-kona-usb2
+phy-bcm-ns-usb2
+phy-bcm-ns-usb3
+phy-bcm-ns2-usbdrd
+phy-bcm-sr-pcie
+phy-bcm-sr-usb
+phy-berlin-sata
+phy-berlin-usb
+phy-brcm-usb-dvr
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-exynos-usb2
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-generic
+phy-gpio-vbus-usb
+phy-hi3660-usb3
+phy-hi6220-usb
+phy-hisi-inno-usb2
+phy-histb-combphy
+phy-isp1301
+phy-mapphone-mdm6600
+phy-meson-g12a-usb2
+phy-meson-g12a-usb3-pcie
+phy-meson-gxl-usb2
+phy-meson-gxl-usb3
+phy-meson8b-usb2
+phy-mtk-tphy
+phy-mtk-ufs
+phy-mtk-xsphy
+phy-mvebu-a3700-comphy
+phy-mvebu-a3700-utmi
+phy-mvebu-cp110-comphy
+phy-ocelot-serdes
+phy-omap-usb2
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-qcom-pcie2
+phy-qcom-qmp
+phy-qcom-qusb2
+phy-qcom-ufs
+phy-qcom-ufs-qmp-14nm
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-rcar-gen2
+phy-rcar-gen3-pcie
+phy-rcar-gen3-usb2
+phy-rcar-gen3-usb3
+phy-rockchip-dp
+phy-rockchip-emmc
+phy-rockchip-inno-hdmi
+phy-rockchip-inno-usb2
+phy-rockchip-pcie
+phy-rockchip-typec
+phy-rockchip-usb
+phy-sun4i-usb
+phy-sun6i-mipi-dphy
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-apq8064
+pinctrl-apq8084
+pinctrl-axp209
+pinctrl-ipq4019
+pinctrl-ipq8064
+pinctrl-ipq8074
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-mdm9615
+pinctrl-msm8660
+pinctrl-msm8916
+pinctrl-msm8960
+pinctrl-msm8994
+pinctrl-msm8996
+pinctrl-msm8998
+pinctrl-msm8x74
+pinctrl-qcs404
+pinctrl-qdf2xxx
+pinctrl-rk805
+pinctrl-sc7180
+pinctrl-sdm660
+pinctrl-sdm845
+pinctrl-sm8150
+pinctrl-spmi-gpio
+pinctrl-spmi-mpp
+pinctrl-ssbi-gpio
+pinctrl-ssbi-mpp
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8916_wdt
+pm8941-pwrkey
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+ptp-qoriq
+ptp_dte
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvcalls-front
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-bcm-iproc
+pwm-bcm2835
+pwm-beeper
+pwm-berlin
+pwm-brcmstb
+pwm-cros-ec
+pwm-fan
+pwm-fsl-ftm
+pwm-hibvt
+pwm-imx-tpm
+pwm-imx1
+pwm-imx27
+pwm-ir-tx
+pwm-lp3943
+pwm-mediatek
+pwm-meson
+pwm-mtk-disp
+pwm-pca9685
+pwm-rcar
+pwm-regulator
+pwm-renesas-tpu
+pwm-rockchip
+pwm-sprd
+pwm-sun4i
+pwm-tiecap
+pwm-tiehrpwm
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa168_eth
+pxa27x_udc
+pxe1610
+pxrc
+q6adm
+q6afe
+q6afe-dai
+q6asm
+q6asm-dai
+q6core
+q6dsp-common
+q6routing
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-apcs-ipc-mailbox
+qcom-camss
+qcom-coincell
+qcom-cpufreq-hw
+qcom-cpufreq-nvmem
+qcom-emac
+qcom-geni-se
+qcom-pon
+qcom-rng
+qcom-rpmh-regulator
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-pmic
+qcom-spmi-temp-alarm
+qcom-spmi-vadc
+qcom-vadc-common
+qcom-wdt
+qcom_aoss
+qcom_common
+qcom_edac
+qcom_geni_serial
+qcom_glink_native
+qcom_glink_rpm
+qcom_glink_smem
+qcom_gsbi
+qcom_hwspinlock
+qcom_nandc
+qcom_q6v5
+qcom_q6v5_adsp
+qcom_q6v5_mss
+qcom_q6v5_pas
+qcom_q6v5_wcss
+qcom_rpm
+qcom_rpm-regulator
+qcom_smbb
+qcom_smd
+qcom_smd-regulator
+qcom_spmi-regulator
+qcom_sysmon
+qcom_tsens
+qcrypto
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qemu_fw_cfg
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_helpers
+qmi_wwan
+qnoc-qcs404
+qnoc-sdm845
+qnx4
+qnx6
+qoriq-cpufreq
+qoriq_thermal
+qrtr
+qrtr-smd
+qrtr-tun
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+raspberrypi-cpufreq
+raspberrypi-hwmon
+raspberrypi-ts
+ravb
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar-csi2
+rcar-dmac
+rcar-du-drm
+rcar-fcp
+rcar-vin
+rcar_can
+rcar_canfd
+rcar_drif
+rcar_dw_hdmi
+rcar_fdp1
+rcar_gen3_thermal
+rcar_jpu
+rcar_lvds
+rcar_thermal
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+renesas_sdhi_core
+renesas_sdhi_internal_dmac
+renesas_sdhi_sys_dmac
+renesas_usb3
+renesas_usbhs
+renesas_wdt
+repaper
+reset-brcmstb
+reset-hi3660
+reset-meson-audio-arb
+reset-qcom-pdc
+reset-scmi
+reset-ti-sci
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk3399_dmc
+rk805-pwrkey
+rk808
+rk808-regulator
+rk_crypto
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rmtfs_mem
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rockchip-dfi
+rockchip-io-domain
+rockchip-rga
+rockchip_saradc
+rockchip_thermal
+rockchipdrm
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-armada38x
+rtc-as3722
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-brcmstb-waketimer
+rtc-cadence
+rtc-cpcap
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-fsl-ftm-alarm
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-imx-sc
+rtc-imxdi
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-meson-vrtc
+rtc-msm6242
+rtc-mt6397
+rtc-mt7622
+rtc-mxc
+rtc-mxc_v2
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pl031
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sc27xx
+rtc-sd3078
+rtc-sh
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+rza_wdt
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+sahara
+salsa20_generic
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_rcar
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sb1000
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sbsa_gwdt
+sc16is7xx
+sc2731-regulator
+sc2731_charger
+sc27xx-vibra
+sc27xx_adc
+sc27xx_fuel_gauge
+sc92031
+sc9860-clk
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+sci-clk
+sclk-div
+scmi-cpufreq
+scmi-hwmon
+scmi_pm_domain
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci
+sdhci-acpi
+sdhci-brcmstb
+sdhci-cadence
+sdhci-esdhc-imx
+sdhci-iproc
+sdhci-msm
+sdhci-of-arasan
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-dwcmshc
+sdhci-of-esdhc
+sdhci-omap
+sdhci-pci
+sdhci-pltfm
+sdhci-pxav3
+sdhci-sprd
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_eth
+sh_mmcif
+sh_mobile_lcdcfb
+sh_veu
+sha1-ce
+sha2-ce
+sha256-arm64
+sha3-ce
+sha3_generic
+sha512-arm64
+sha512-ce
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slic_ds26522
+slicoss
+slim-qcom-ctrl
+slim-qcom-ngd-ctrl
+slimbus
+slip
+slram
+sm3-ce
+sm3_generic
+sm4-ce
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc_diag
+smd-rpm
+smem
+smiapp
+smiapp-pll
+smipcie
+smm665
+smp2p
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsm
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-aloop
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-bcd2000
+snd-bcm2835
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-compress
+snd-cs4281
+snd-cs46xx
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-ens1370
+snd-ens1371
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcm
+snd-pcm-dmaengine
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-acpi
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-apq8016-sbc
+snd-soc-apq8096
+snd-soc-armada-370-db
+snd-soc-audio-graph-card
+snd-soc-bcm2835-i2s
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cpcap
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsi
+snd-soc-fsl-asoc-card
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-imx-audmix
+snd-soc-imx-audmux
+snd-soc-imx-es8328
+snd-soc-imx-sgtl5000
+snd-soc-imx-spdif
+snd-soc-inno-rk3036
+snd-soc-kirkwood
+snd-soc-lochnagar-sc
+snd-soc-lpass-apq8016
+snd-soc-lpass-cpu
+snd-soc-lpass-ipq806x
+snd-soc-lpass-platform
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-meson-axg-fifo
+snd-soc-meson-axg-frddr
+snd-soc-meson-axg-pdm
+snd-soc-meson-axg-sound-card
+snd-soc-meson-axg-spdifin
+snd-soc-meson-axg-spdifout
+snd-soc-meson-axg-tdm-formatter
+snd-soc-meson-axg-tdm-interface
+snd-soc-meson-axg-tdmin
+snd-soc-meson-axg-tdmout
+snd-soc-meson-axg-toddr
+snd-soc-meson-g12a-tohdmitx
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-mt6797-afe
+snd-soc-mt8183-afe
+snd-soc-mtk-common
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-qcom-common
+snd-soc-rcar
+snd-soc-rk3288-hdmi-analog
+snd-soc-rk3328
+snd-soc-rk3399-gru-sound
+snd-soc-rl6231
+snd-soc-rockchip-i2s
+snd-soc-rockchip-max98090
+snd-soc-rockchip-pcm
+snd-soc-rockchip-pdm
+snd-soc-rockchip-rt5645
+snd-soc-rockchip-spdif
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-rt5663
+snd-soc-sdm845
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-sprd-platform
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-storm
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-acpi
+snd-sof-imx8
+snd-sof-of
+snd-sof-pci
+snd-timer
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+snd_xen_front
+snic
+snps_udc_core
+snps_udc_plat
+snvs_pwrkey
+soc_button_array
+socinfo
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundcore
+soundwire-bus
+sp2
+sp805_wdt
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-armada-3700
+spi-axi-spi-engine
+spi-bcm-qspi
+spi-bcm2835
+spi-bcm2835aux
+spi-bitbang
+spi-brcmstb-qspi
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-fsl-dspi
+spi-fsl-lpspi
+spi-fsl-qspi
+spi-geni-qcom
+spi-gpio
+spi-hisi-sfc-v3xx
+spi-imx
+spi-iproc-qspi
+spi-lm70llp
+spi-loopback-test
+spi-meson-spicc
+spi-meson-spifc
+spi-mt65xx
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-orion
+spi-pl022
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-qcom-qspi
+spi-qup
+spi-rockchip
+spi-rspi
+spi-sc18is602
+spi-sh-hspi
+spi-sh-msiof
+spi-sifive
+spi-slave-mt27xx
+spi-slave-system-control
+spi-slave-time
+spi-sprd
+spi-sprd-adi
+spi-sun6i
+spi-synquacer
+spi-thunderx
+spi-tle62x0
+spi-xcomm
+spi-xlp
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+spmi-pmic-arb
+sprd-dma
+sprd-sc27xx-spi
+sprd_hwspinlock
+sprd_serial
+sprd_wdt
+sps30
+sr-thermal
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-pci
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+stratix10-rsu
+stratix10-soc
+stratix10-svc
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sun4i-backend
+sun4i-csi
+sun4i-drm
+sun4i-drm-hdmi
+sun4i-frontend
+sun4i-gpadc
+sun4i-tcon
+sun4i_tv
+sun50i-codec-analog
+sun50i-cpufreq-nvmem
+sun6i-csi
+sun6i-dma
+sun6i_drc
+sun6i_mipi_dsi
+sun8i-adda-pr-regmap
+sun8i-codec
+sun8i-codec-analog
+sun8i-drm-hdmi
+sun8i-mixer
+sun8i_tcon_top
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sunxi
+sunxi-cir
+sunxi-mmc
+sunxi-rsb
+sunxi_wdt
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_gt
+synclinkmp
+synopsys_edac
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tee
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+thunderx-mmc
+thunderx2_pmu
+thunderx_edac
+thunderx_zip
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-sn65dsi86
+ti-tfp410
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_sci_pm_domains
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc_core
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_ftpm_tee
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_infineon
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217
+tps65217-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+turingcc-qcs404
+turris-mox-rwtm
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_acpi
+ucsi_ccg
+uda1342
+udc-core
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufs-hisi
+ufs-mediatek
+ufs-qcom
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-dmac
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vc4
+vcan
+vchiq
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+venus-core
+venus-dec
+venus-enc
+ves1820
+ves1x93
+veth
+vexpress-hwmon
+vexpress-regulator
+vf610_adc
+vf610_dac
+vfio
+vfio-amba
+vfio-pci
+vfio-platform
+vfio-platform-amdxgbe
+vfio-platform-base
+vfio-platform-calxedaxgmac
+vfio_iommu_type1
+vfio_mdev
+vfio_platform_bcmflexrm
+vfio_virqfd
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videocc-sdm845
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_pvrdma
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmxnet3
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsp1
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wcn36xx
+wcnss_ctrl
+wd719x
+wdat_wdt
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xen-blkback
+xen-evtchn
+xen-fbfront
+xen-front-pgdir-shbuf
+xen-gntalloc
+xen-gntdev
+xen-kbdfront
+xen-netback
+xen-privcmd
+xen-scsiback
+xen-scsifront
+xen-tpmfront
+xen_wdt
+xenfs
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgene-dma
+xgene-enet
+xgene-enet-v2
+xgene-hwmon
+xgene-rng
+xgene_edac
+xhci-histb
+xhci-mtk
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_can
+xilinx_dma
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xilinxfb
+xillybus_core
+xillybus_of
+xillybus_pcie
+xircom_cb
+xlnx_vcu
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yenta_socket
+yurex
+z3fold
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
+zx-tdm
+zynqmp-fpga
+zynqmp_dma
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/arm64/generic.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/arm64/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic
@@ -0,0 +1,23108 @@
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0x45882973	crypto_sha256_arm_update
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0x9dacdad2	crypto_sha256_arm_finup
+EXPORT_SYMBOL	 arch/arm/lib/xor-neon 0x0f051164	xor_block_neon_inner
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x87458bab	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x8b8f0206	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xcaa434f3	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xce70aa5d	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xd7f67fd2	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xd9093883	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x5f700f1e	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x9a0cf465	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0xafc8a1df	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sm3_generic 0x316cbc1b	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0x62661b98	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/atm/suni 0x04babe56	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xc4291217	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xe5929c13	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0da81c3a	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x27f65003	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x30107d1f	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x327da940	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x382d5f73	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x49fb5fe9	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x69dd92f7	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x89fa4a36	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x8c7433c0	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x8e771a82	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa2ec09c5	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb4a9afd7	pi_write_regr
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x80b58aca	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xdd360f4d	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x029a7d8b	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x312f64b9	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x5c7fd0e0	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xffc132da	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/kcs_bmc 0xa5a1168d	kcs_bmc_alloc
+EXPORT_SYMBOL	 drivers/char/ipmi/kcs_bmc 0xc8e605b7	kcs_bmc_handle_event
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x0a29e4e0	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x346dc86c	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xa974f8e3	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xd46c04d1	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x336612cb	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x94728a9f	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xd22b67b8	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x25438bea	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x6b341658	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x6c28f9b1	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xd3b3f73f	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/caam/caam 0x37734e06	caam_dpaa2
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x027695e2	gen_split_key
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x621cd40f	caam_jr_enqueue
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0x840b5515	caam_jr_alloc
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xd49022bc	split_key_done
+EXPORT_SYMBOL	 drivers/crypto/caam/caam_jr 0xdbb21f2e	caam_jr_free
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x06717761	cnstr_shdsc_aead_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x09c41809	cnstr_shdsc_gcm_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x4099709e	cnstr_shdsc_aead_givencap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x46efe449	cnstr_shdsc_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x4b74fe69	cnstr_shdsc_rfc4106_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x4ead8e70	cnstr_shdsc_aead_null_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x6de99a64	cnstr_shdsc_rfc4543_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x756131a7	cnstr_shdsc_aead_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x86089940	cnstr_shdsc_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x893ab046	cnstr_shdsc_aead_null_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0x8a8c929e	cnstr_shdsc_xts_skcipher_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa2ea5326	cnstr_shdsc_gcm_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xa970bc2f	cnstr_shdsc_xts_skcipher_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xbef6ab16	cnstr_shdsc_chachapoly
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xc6c7d14b	cnstr_shdsc_rfc4543_decap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamalg_desc 0xe05ab546	cnstr_shdsc_rfc4106_encap
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0x686d05f8	cnstr_shdsc_ahash
+EXPORT_SYMBOL	 drivers/crypto/caam/caamhash_desc 0x9dc00876	cnstr_shdsc_sk_hash
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x2eed504a	caam_ptr_sz
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0x8db6e8c5	caam_dump_sg
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xa51f16c7	caam_little_end
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xbd67c092	caam_imx
+EXPORT_SYMBOL	 drivers/crypto/caam/error 0xf37c4533	caam_strstatus
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x04b597c1	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bbdbbfd	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x284efe32	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2ecab222	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x303d826b	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x38b0d78f	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3b7350cd	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x419df6c3	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x49e21f03	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x556601c3	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x69f08f72	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x760826f6	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x7828f752	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x854f5321	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8c3428cb	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8ec4e37e	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x970042be	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x9ed124b8	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa0cc719f	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xa206af62	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb8f7d282	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc21c94c2	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcf10d9c9	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd0d737e1	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xdea6b836	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xef7bdbe6	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf155ac99	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfe80de66	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xffd4c9f3	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x001e8a89	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0023510a	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0042ede7	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x01e9b6c9	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02a3ecc2	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02f809ac	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03eb629c	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03ef9c9f	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04378ca8	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x049f7977	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x05b2a589	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07af5d51	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a844c3d	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b695c51	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b814c07	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0bb4437e	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c13a52a	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0db831b8	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0dff86b7	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ed3ce06	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1043958b	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1167570b	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11b8f262	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x142e0215	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x148c5de7	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15c77836	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x163a3ef7	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16d6f9d6	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x177ffa84	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1812beba	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19a826dc	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19ef0f31	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b166f45	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ba6ca6a	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c94173f	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dd1dca0	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e29d599	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f63b4f7	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fb66102	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fbd9f6d	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x203f2d91	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2086fe98	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d39f63	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x225c3b60	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x225fa083	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2388e581	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23cf1d50	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23e28b71	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x242f808c	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x243e74ac	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24413ef8	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x246e2a6c	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2573fa80	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25df8b8f	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x26016f9d	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x270d4d6a	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2790e204	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27d23c3f	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28de63a2	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x28ffcd5e	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29781c53	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2af59995	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b1924a5	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c4e2862	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c606b31	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d6cd13c	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d88635c	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e293a28	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e612e2c	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30ebb38c	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33977c04	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34efa941	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x363d0ba9	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36e464df	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x375e9749	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x379225f0	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37b0de6f	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x380b5fbb	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x383ba76e	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x391df589	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b315ae1	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b618fcb	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3bc595b6	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3db31132	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e5295d6	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ed76718	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f2de5e6	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f4d1290	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ff786a4	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4042b7eb	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4125ad06	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x417e4e3d	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42686840	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x426abdcd	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4316766c	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43d58adc	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46a87efd	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46c43506	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x47001ee9	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x480d7941	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4834906a	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48b06570	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49b20ba8	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a283cdb	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4affe6ef	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ba73f38	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4bd0adc4	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c86b88a	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4cafe312	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d2bc73e	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4da50a30	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x502b121b	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50a9016b	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5354ad5b	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54b4379a	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54e2993b	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54f7d9ad	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x56448413	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57d70180	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5830cab4	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5861bead	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59250c08	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59e7995d	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a56dda8	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b0acc3b	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b521588	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5bc7ad1b	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5bd3e5d7	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5db012fd	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f4a5ea6	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fe36c9f	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60ad31ae	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x618b4978	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x66528afe	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6670a6f1	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6745e1dc	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6869c1a3	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aec1215	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b0b9550	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b1d9fe0	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c04a8f8	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c6bc41e	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c73599d	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d17ef48	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d3bce5f	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d6d1b60	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dc4f549	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6dd52f55	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f994c76	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x706e7fa0	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x717cc201	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x71bfb929	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x721d69bc	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7262a3f0	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73754ab5	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73a01324	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73c97ccd	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74696750	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x748455c1	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7641c369	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x774f4ca0	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7852d02b	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x787c6c27	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x788be184	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x791d5f8b	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7951ea67	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79530f7f	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7972cbd9	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79ef4e00	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a761658	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b068c1a	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c7ba839	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e016d38	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e2714de	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ef4327c	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fd39ab7	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80eb1459	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81a84474	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8225fb44	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85b27d60	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87143572	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8728709b	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8739eaa3	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x876117e2	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87f62506	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87fbc245	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8814e0d6	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8818d4df	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x882e0505	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89558085	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a42776b	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8aae8062	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8be399bf	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c05af3b	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cdb4fc8	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d44381c	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8da2c636	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ed2ce40	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f8ec631	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fa669de	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fc63013	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ff7ea47	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ffacc5c	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91396787	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91f69adf	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92024011	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x925077bb	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92768566	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92dd7614	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94a15b77	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94d16349	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x954264ba	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95e2d1d6	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96cd5d03	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98328d59	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x984d3855	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98ae1e9f	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98fcd4b4	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9adc391a	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c206f81	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d13077e	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d535091	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e8ecbb1	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ef2e3ec	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f00e93b	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f248930	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f4d6d12	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa213e9a7	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa365b157	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4492913	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4ba184f	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa553a691	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa654af37	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa673b1f2	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa67f81b8	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7eedf5a	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa80cbbe1	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9a9ec6d	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9abafc1	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaabb1e22	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaad811a9	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad37b17a	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xadd56976	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae83489d	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf4b8372	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb05c6f70	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0e44e09	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb168fcd9	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb17d249d	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1d96b45	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb29026f6	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3033498	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb359fde6	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6899ec0	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6a5c0bd	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6dda371	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb83fef13	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb874880b	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8ad23a1	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9f00b4d	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba53c35b	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb791eeb	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc039539	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc70e164	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd5988df	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd76cca1	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe54604c	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf4e6c14	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc00864e6	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc02db199	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1721c6e	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1988ba4	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2643edf	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc358d013	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3c01339	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3c969fe	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc49c3472	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4c6838d	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc4db416b	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5ce9af3	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5d34402	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5ed7afd	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc64876b3	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc649b80e	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc672d6de	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6d70792	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc702ad1a	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7307c3a	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7c42bcf	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc870bef0	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb3548e8	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb606086	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc2f8a24	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc3bd6c2	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc3fba4a	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc4c11dd	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd2ec2e8	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfc0bc9b	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfe33767	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1fc5f14	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd204c96e	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd33c024c	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd37a2317	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3d20e85	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4132cc6	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5730264	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd60dd1a6	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd64f8a57	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd745288d	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd81e4eba	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd883fb27	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8e5c5dc	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8f43e29	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9820234	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9fa8d0a	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdab5a31c	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc833fbb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde27fc11	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf16028d	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf724a47	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe0fa2d50	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1513798	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1bc33ca	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe244ef9e	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3178fb4	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3c44e4c	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe432e8a5	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe51d4bad	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe62c0228	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe66349ef	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe663ad50	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe6980fc3	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8c5be8c	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9312bd4	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea4ef938	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeab1adba	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xead1d9c5	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeae73cef	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaea4851	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeb4bdc3b	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedabdac4	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef0b1adb	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xefd57104	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf053408a	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf189a73d	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2476878	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf31b70ab	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3e191a1	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf4a0db2e	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf56aa994	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5ab2840	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6048a1d	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf670dfb2	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf6d90469	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf80790d5	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf96b016f	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf98436f4	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf98e086f	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9af9f06	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb83d96b	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbabba5c	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfbb86c7d	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc271b2c	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd8fd547	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe5583da	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfecafd6f	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff85adf9	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffb2c8b9	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x006b122b	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x00b9445a	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x00fbc5fc	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x028a3833	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x02e818d3	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x057108f2	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06bc35da	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a18ca55	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a93349b	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0b899067	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0c82f85d	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f48cc8f	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1016264e	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10b3700a	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10ce3b6e	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x123fd435	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1512fb3c	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x15f6070d	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x170d1cd6	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1878c257	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c9d0f0f	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ebc286c	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ed3a252	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f177d5e	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f9b18fe	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1fb2b413	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20c90851	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2329867f	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2587ca3b	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2705e708	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x275458e7	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28b05e3d	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29085836	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c33db7a	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2cb44153	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2d6680df	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2e0a92ba	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ee7e874	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x307ca4a3	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x30cd6cfa	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31462d76	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x31e05e09	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x32a35b45	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34927f9b	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36928352	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x370b3619	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3858df35	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a0f93f1	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b3734e0	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3b492a85	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ce98091	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3d6280a0	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e07e6f9	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f0a3fa7	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x424bc276	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x44daccb8	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4854105c	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ab1a0c3	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4be24895	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d923879	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e1fd2e0	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50b3babb	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50dc81ea	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x530863db	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x539e7051	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5921b7e4	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b697154	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5c6a21ea	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5da6b086	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5de69d6d	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5df96a62	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e5d4cc8	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5f011256	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x627b8e10	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63735fd4	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63852e9a	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6424d089	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x642bae45	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6638a3f4	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6701fe9b	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x67519764	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x67a27c74	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x69dcbd63	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x69f5cf81	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a10dd91	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6aace6f2	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6cbf3b16	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e607093	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f5ee400	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7005152b	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x702bb0b1	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7074bb59	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70dbd654	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71e000f7	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73a3350e	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7452138c	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74e7d32f	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75183227	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x76f16751	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x78cb3ce1	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7993617f	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ab3e5b9	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7bd52921	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7d62c69d	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7e87d3e9	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8065a5c2	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x814fa1eb	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x832a751e	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84a5bf7a	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85a0dd36	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x86078bda	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8642a6d9	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89b0b4c6	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x89f3b963	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b40d578	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b980da6	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8fdff8b8	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90c21536	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91c7a007	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x948a29b1	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9490c06e	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9873ad7a	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98af83d5	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98d95748	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9a237060	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9bb94dd6	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9c56bd48	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ca0409a	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9cca7c0b	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9d092b52	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f42268e	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9fbee473	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa040cb1b	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2d419b2	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3d3f8f4	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47a84c1	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa694c30c	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9c7ec15	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaa26dd44	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac3d493f	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xadf0fa43	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaed74738	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafd7a709	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0d119d5	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb1be2610	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb89dffb4	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbafce3c7	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd24926c	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd69e8c5	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbedf2994	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf46b866	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc1a6ee7e	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc1fa8f2e	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc40d7195	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc6c035fd	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc743e6b6	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc869e802	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc8d28162	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca47411e	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcaf574f4	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcd26d258	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcd34ee98	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcda8aba5	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd043e5d7	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd12cae06	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2759ec2	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2f4ddbd	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5fdb148	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd73331f7	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd9531a5b	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd99e04f0	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdd4ac379	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xddc9c911	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xded3f4d7	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdee4e530	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe2420825	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe73a690a	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe884b5ee	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe90fb0c6	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea42c45e	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeb1394e1	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xed222e3f	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xef94905c	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xefc14dc6	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0453277	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0755367	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0c876fa	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf29d0363	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf4135a34	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf462f617	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7bfadc7	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8bd5e2d	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf98f9a80	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc29e019	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffdd2c04	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x08a290e9	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x13bba2a8	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1a19c4fc	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1f054431	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x416c71c0	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x4476ca56	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x67be78fe	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x696d7887	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x90678bbe	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xaa769d2c	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xab468c2e	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb04e0b6f	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb4ff4428	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb980e37d	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc95ddec6	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe80b3299	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf059fb63	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf93aa698	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x04bf1a89	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0a9baeca	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x148c5566	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1dc9584e	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1eb4e530	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1f896a5c	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x211fe4d6	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x2ed4167a	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3b0e7d01	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x4a394f1e	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x507a276d	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5af6295d	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x711a1e5f	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x77c5ee3a	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb12aee55	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb9f8e533	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc1529b5f	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd3b32ea6	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe9cbe3f1	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xfbeebace	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/rockchip/rockchipdrm 0x6dbe6194	rockchip_drm_wait_vact_end
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x0e3394c3	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2191a428	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x21e356fa	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2bfa8b7e	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x37719153	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5a5112ad	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5be41aa1	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5e41d60b	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x68129a68	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x6d4546b2	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8c534484	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xad8590f9	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb02ac685	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb59935b1	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xccdbfa92	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd36b9846	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe500015b	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xef8fa7b9	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf481d713	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x034adc7c	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x09bc924f	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0b56484b	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x132b05be	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x18d2602c	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x191ed1b7	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1d96c73c	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x20a36491	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x21fc6e83	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x29b6730b	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x29e2b2cb	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2e7e16a3	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2fc4f6c3	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x305e309b	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3118c760	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x35292f21	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3b4d222d	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3b960ce6	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x42056528	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x495aec7a	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x49968f3c	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4a74a852	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x50beb078	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5581874e	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5f78d1e2	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6484f91a	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x657b5dfc	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6cb95631	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74114ed8	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74b67278	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74cb72c2	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7d3cec1b	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x808a9113	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x815c81ce	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x82f5323b	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x90f08af1	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96a88376	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x981249d7	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9d2ac227	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9ef77af7	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa17d38ea	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa422b9c1	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa8cb01d0	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac3b7503	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaebda39c	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xaf46726f	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba4bd39c	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba5a3dc8	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc32a6cb6	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc3a59c08	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd57e2afc	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd84cee35	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xda593ce7	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdc59df6e	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdf04428d	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe108a89d	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe14987b9	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe859252e	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xec74858b	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xef59154a	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf07c4f66	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf33cea41	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf8aaab81	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfaa90502	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfb706847	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x0043e07f	host1x_job_get
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x08d392a1	host1x_job_alloc
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x0cba19fc	host1x_job_submit
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x1604d6ba	host1x_client_register
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x25874db4	host1x_channel_get
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x36a14f49	host1x_channel_request
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x37fae9df	host1x_client_unregister
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x3f45f703	host1x_syncpt_request
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x43799a4e	tegra_mipi_calibrate
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x50c80337	host1x_driver_unregister
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x51de13ce	host1x_syncpt_base_id
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x564dede6	host1x_driver_register_full
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x5babf560	host1x_job_put
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x6b104e5c	host1x_job_add_gather
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x6f0f5ea4	host1x_syncpt_read_max
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x71fdf07b	host1x_device_exit
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x7b565af5	host1x_job_pin
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x808fdf8d	host1x_job_unpin
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x87871e53	host1x_syncpt_read_min
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0x9451a33e	tegra_mipi_free
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xa733ff60	tegra_mipi_disable
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xa8c387ca	host1x_syncpt_read
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xc52161f4	host1x_device_init
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xd27fc876	host1x_syncpt_id
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xd486372a	host1x_syncpt_incr_max
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xdbbbd249	tegra_mipi_request
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xe2e50468	host1x_syncpt_incr
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xe339a006	host1x_channel_put
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xe6f1fc3a	host1x_syncpt_get_base
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xf3ee16a3	host1x_syncpt_get
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xf820cec8	host1x_syncpt_wait
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xf8a79b19	tegra_mipi_enable
+EXPORT_SYMBOL	 drivers/gpu/host1x/host1x 0xfc0d93af	host1x_syncpt_free
+EXPORT_SYMBOL	 drivers/hid/hid 0xeb277d40	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x1fede531	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x12926407	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x27c0dbfb	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x34ae2a06	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x3c131100	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x8a0ad61c	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x9ff025e1	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x3576a91c	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x792a8f81	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x7c2f8618	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x1272d999	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x12864737	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x25d98c30	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x34d8422e	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3aa7bcce	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x4224319d	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x47de1a71	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x49b55c2a	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8a69d5c6	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x96f9ec83	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9e25e14d	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9f425a52	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa2da8657	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xc8015287	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xd7ec1c93	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xdad67ac9	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x97edd118	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xe61e287c	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xfcbf4b8a	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x0c3d4937	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x60101a30	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x6c579cec	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x7677858f	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x8121a360	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xee3d6944	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0xc0a1684e	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3e283ed8	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4f12c0e5	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6d20060a	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6de2be9e	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9a327a5a	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa14b83ee	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xdd10469e	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xea7caa59	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xefd12828	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf827dff3	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x06adea1d	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x683c4aa3	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xa4c767e9	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xea955137	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1907f680	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1e1585dd	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x266ca8a0	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x399c627e	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x59f39a97	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xa45097af	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xae1d4a0e	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xea2f6718	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xebdd05c2	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x132a45fe	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x2bec10de	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x3471c36b	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x50b41cad	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xc730a1ed	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x6d333909	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x85e20317	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0xdcb88663	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0c3e972e	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0d96e53b	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x1ef9eda4	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2a72c83d	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3b880fc8	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5652e109	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x57bb8fd7	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x59ac97f2	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x626a5fda	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x6581c9cb	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x76a141fe	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xac2e714a	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xada3a926	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbc77e9ac	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xd2fc690e	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xd4b3a6eb	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xdcef47d6	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf40d9716	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xf8edc0a4	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0x8f70424f	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x09d0ac76	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x4e1a37b3	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xa6aea88b	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x9bd72432	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x9c9a176e	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xfadd12a5	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xbc5be24a	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xd33f97a8	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xdec99ec9	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xebd7801a	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x0ad35e9a	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x106e86ab	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x7c6f93a1	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2b0421ad	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d3942fe	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x30bad0c5	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x34e6f662	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x36b86b78	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x51c03117	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x64f471b3	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x707e489d	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x766ad2c0	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x76cda597	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7fefd21c	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x80901b63	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x823b227f	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x85683c1d	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9cbe7989	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa13014d1	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb026a886	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd1fe84ec	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd5dbe537	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd7cb1de5	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe4842a79	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf98433ff	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xfe09b506	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0xbf5ff376	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x1abd3992	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x38313050	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xa29cabf7	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xac08de85	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x6622c296	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x78e6a116	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x9649a624	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xa696bb4b	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x913e0948	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x979d59bf	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x07142be8	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x4337640b	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x0bdbd14f	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x0bf34da0	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xe3bf8cd7	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xeccade73	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x299c7765	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x32e4116b	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x5fc79f56	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x78a781f6	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x1cf4cac4	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x6b29d904	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xb7d733ff	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x436f694f	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x4ae97645	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x4d4dfb31	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x8c03e63d	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xa7cb2653	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x898c29b1	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xe6018351	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x18d83200	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x9189fb56	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xeebe4112	st_press_common_probe
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1d747494	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x23e9de5e	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x30109146	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x334b3fab	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x35224714	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x3b8bc40f	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x906969e9	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x93e75943	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9d3cc90a	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xadb605b6	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xba2a6af0	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc4fc4fb4	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xc9ba1fcc	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xceb41056	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdb129517	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xddddd194	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe01f12a1	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xfeefe346	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03443304	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x03aa68c6	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08d9f906	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a2adee2	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d55a33b	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d67ae6d	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f5932dc	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0fe00372	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1049b658	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x10708102	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x12c87bf0	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13878e2d	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x14108ab9	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15176cf0	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1574b250	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x160e79b2	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1851376a	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1942b38b	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x19c3daf6	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a7b3ec7	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b20283b	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1bc1729e	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d376a7c	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1d92a5d5	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1de915ef	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1eab3d07	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x232cdc38	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x246ff7b7	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x26ae0beb	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2749570b	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x283ec6c3	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28b8f9da	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2c793d9b	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f1f05fe	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e92a1	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x382908f2	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38d114dd	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x390a422f	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d4bcd80	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e7face1	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4313bd3b	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x441f5492	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45cf43cd	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fdb200	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46112ff3	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4a98043a	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4aad625b	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4b57ed29	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4b73ba72	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f2cc322	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5164cdc2	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x520b2638	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x520c03fc	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ab405b	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ac06e3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ba4722	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54a45079	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x555f258b	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x58269c96	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5a4b0fc8	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5ba2c83c	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5d06376a	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e18ea74	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e2e487d	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f2f6bfe	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6051e0d7	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64e639fb	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64e902d4	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65ebfbd7	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6612023d	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6612e1d5	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x67d70973	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a19cc5d	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c0e092d	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6c429c35	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6db70e52	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e90ac2b	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6eec1a72	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7146581f	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71dad8d9	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7212a5f1	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7240a910	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x73a17f0d	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x73fa221a	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7492bbb7	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x76421997	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7681a1f9	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x76a74bfb	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x78bed04c	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79588371	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79de9c22	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7a57195c	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b6beaad	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ba53c40	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7d50c5c8	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7fe5533f	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82c241c4	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x83180b89	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8595b9f1	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x875e1cef	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8c5d862a	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d6beca1	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f0748a7	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x914960ec	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x91e5100f	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x922bc31a	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x942da494	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95a47840	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x960dce02	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x96ae6ef3	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x98f4b776	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99761c4a	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a7d0fa6	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b3f55da	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9d3d6ab7	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9eb15c5c	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ff8e9df	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa0b169d7	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2ca500f	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa38cb01b	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa3afc276	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa421533d	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa986b25a	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf9179c0	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xafc28ff2	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1a312e1	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb21673ab	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2c7cd38	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb327c4d1	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb3567296	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb6484c96	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7ade313	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7fbd08f	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7fc778f	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb94c4516	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbbb6ef02	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbdbc715b	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe3a2773	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbec938b5	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbf1e5b80	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc0738128	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc0ed5522	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc2878080	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc31bb8be	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc386f007	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc41e934c	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc486242e	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc48a5286	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc4ebe4ad	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc87eb700	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc915a4ef	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc920ffd4	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xca0d0a37	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcc5018d2	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcc94b15e	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xccf0e9de	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xceb468af	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcee426c6	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd2129e0d	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd2c26f2a	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd597da80	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdc1e6880	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdd158222	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xddd4f91b	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdecd5db9	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdf64613e	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1e3cfd2	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe2165fd4	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe58e00fe	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8036c69	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe80748ad	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8d4c6c1	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8e354ee	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9dfee03	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeba94e56	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeccd6292	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee06c0d7	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xefc0360d	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf04d9212	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf30ee825	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf3532e25	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf549c029	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf9e7254d	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfade506a	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfdef9c67	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfece3127	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff2b6134	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff5c02a9	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff7ea086	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x08c9747a	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0e7fc67f	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x15d7359c	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x182f7cfb	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x189c987f	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1af4e1aa	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b38b1c3	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2262e8f4	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2d31ea71	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x37f41be4	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3c2b5fcc	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3f93c77f	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4225f57e	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x46ef6c73	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x61e618b3	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6d8171fe	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x71d0e42e	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8074bd0a	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x92fdf484	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x952e262e	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa3964d0e	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xaad79183	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xabae7d90	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbcdb0cea	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbf35f51f	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcabb1542	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcb66a832	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd3a77674	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd99e9ac5	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe6d25f2e	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x307dc645	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x4486402e	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x479eaab5	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x96014ad3	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x9b2cb732	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd071a031	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd8f2b72a	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xebdf2f0a	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x04c8280e	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x08563f90	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0996e0b3	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x09ba9e91	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0dbe3c71	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x10d8460c	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1549e801	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1d77275d	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x50ea04b9	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x59e5e8e0	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5e4c9178	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x678a03bf	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6df8bf21	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7b56b564	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7e8ad991	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x83d11e27	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x891d1f9f	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x897de521	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9e3e0809	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbe64e11c	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbf891241	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xca197d44	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xcbc2e2d9	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xcf04be3e	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd3d53b59	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd74c09d8	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdcbf392a	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe8801a5a	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfacd3da5	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfbfeb238	rdma_listen
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2aed8823	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2e3083e2	gameport_close
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x4917ac25	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x74ed38c3	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x9159bc1c	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xbf7eb0cd	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xc064c6e2	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xddecb8f6	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xe0585d8c	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x2ef70867	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x5390c2b9	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x5950a9db	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xba26f2ec	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xe11840c4	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x4a402a2a	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x65859658	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xdd50c241	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xe21a3920	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x50fa1339	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xb039800c	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xfcc21c7d	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x0ce1baad	cma3000_init
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x2b38897c	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x5f16ec32	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x70762971	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x81c5ea81	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xc415a53f	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xe0e2d19a	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x13cc81c2	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xeb52b92a	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/iommu/iova 0x58604e4d	alloc_iova_mem
+EXPORT_SYMBOL	 drivers/iommu/iova 0x858b3fe3	free_iova_mem
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x0169f417	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x471ea8e2	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x5c943c8f	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7818bdfb	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x809b8ff8	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x93b674e3	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x95aa3459	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa7c4fd6c	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xca69d0ec	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe5a0c0d2	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe8ad9bd1	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf392fd26	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5	isdnhdlc_decode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5	isdnhdlc_out_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58	isdnhdlc_rcv_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223	isdnhdlc_encode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x1e2e30e4	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x7b68bfb5	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x82de77ca	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x9e20d5f7	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x0f67bd28	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xc875fc9f	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0067d120	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x14032f0b	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x151d9329	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1ca2a1ae	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2bcd1b66	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x3c63c68c	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x41362e6a	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4cb98f56	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x52d2dd8c	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x678cf265	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb71c4994	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xbada992e	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc182d4cd	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd1803fdc	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5ef9e74	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe2608079	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xec0acbed	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xed11cab9	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf35af79f	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf6ae5f14	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf8d1039d	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfdf55382	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfe3ec8e9	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x879995a3	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xe2a1ddc2	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x6e6e74f9	omap_mbox_enable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x83b8ceeb	omap_mbox_request_channel
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xa06a1912	omap_mbox_disable_irq
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x0d8904a0	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34c333b4	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x611da4ca	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7782e88f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7e23be52	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x8efff430	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9ac7c147	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xadb6b25e	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xaf788fbb	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc04554f7	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc140a4f7	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2e8205f	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc4022eb3	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc6a36e24	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd2381a89	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd47b1f8e	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd9e35cf8	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3e5dad3	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfa93de35	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/dm-log 0x21780ac7	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x2197f1a4	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0x66225cff	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0x8532378a	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x4973c244	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x582da63f	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x65d613fb	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x6f347da3	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xab1327bd	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xc7d692df	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/raid456 0x5eddbb78	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0xd1b7e1a0	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x26495a19	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x34d26aa5	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x3d75409d	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x6358ae47	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x651d5dc4	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x751219cc	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x9a2c039d	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xa7e9e75b	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xaa58e598	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xac12f704	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xc83c17c1	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe01c9fae	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xfaaa4b69	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x2f777b1e	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8a4e970b	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x9f160859	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc4e7d7ed	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0xc1180529	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xd43cca35	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x2f759330	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0xe834f927	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x06c86a46	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x65763078	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x821c1eca	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xd16bc071	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xefc14f4f	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xf18f5dcb	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0983d22e	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x006d6880	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x07c8ba73	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1609d70c	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1e7a8283	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1ec3996a	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x21381c3b	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x214d5b4e	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x222a4e46	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2c12c287	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2d5a31e3	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2f6c85f4	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3c51b246	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3fd96ba7	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x414a8a7d	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x42d15a1b	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4be5c646	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x58ee1d45	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5a5ab729	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x660d04fd	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7238697c	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x733be0af	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b334d3c	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8026ef3e	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x81339965	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82143c17	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8728f8ac	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x92959a1b	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9ad5c0e9	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9cbd7279	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xab68645f	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc0b93899	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc22a234b	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xce4abd64	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcefed380	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdafc31c5	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe09a092c	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe34accb5	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedda2b2f	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf8757091	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfe73d116	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x0c9e8457	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x16f93a1c	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x3d3a82f8	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x645d679d	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x9086720a	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x9f53dba8	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa42ab0a2	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xaf386696	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xed116225	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x0d62cc54	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xcbabb53b	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x12fdba19	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x138824f4	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xbe130f7d	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xeb2375d6	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x04af8d97	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x14120618	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x239cdc26	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x25ef818e	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x2f408c17	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x30af58f1	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x4b477383	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x59ddda4b	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x910bdc6a	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xb402d31e	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc709371c	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xcbc4c6a3	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe6ce495f	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x21bfa5e3	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x28c18d3a	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x64a374e3	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x8f3ff566	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf89587b4	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x2a5afc6d	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x6535a15e	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xc09ce4bf	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x1e8c9ab7	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x21ade1ee	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x537090d4	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x697a74bb	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x92415a9f	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x9f764ef5	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc7091ef2	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xd59f3c3a	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xdaa602d0	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe2fe3def	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf807f9a7	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf8b53c04	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x0c50ab38	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x554de4d8	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x721b456d	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xba707567	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xd4d46d8a	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x3625490f	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x73db1412	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x9deb6d67	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0x93182af6	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x3387a37a	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x0518b23d	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x81514246	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x62e7fb05	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x229f098d	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x804e2223	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1a4e39cc	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1ae9beae	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x420a77f4	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6b8207ba	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x72ea4e66	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa225a692	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xafc10fd7	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x1c1daf8e	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x738be0c0	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x7e3b6500	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xff632792	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x59d193ca	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x6c6eb8ca	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xe0c49e4c	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x067ce426	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x301ad6c4	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x5f2797d0	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xa55bf14c	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xc1350f38	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd1ec5b7e	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xd46cf39b	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xfaec6d16	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x19a7bbb5	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xa2a56332	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xbf07003a	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xc5157551	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xd31b7fa5	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x59a5ad6d	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xdb3faf38	altera_ci_release
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xe66b9812	altera_ci_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x057588c0	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x4fe48c66	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x61289243	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x95739191	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x983dea1e	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xada11d1e	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xec65b6a7	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x09ac06b2	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xaa5482b4	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x076d13e6	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x120e4a0e	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xa72ea0ba	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xa73a47af	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x00f98754	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x278c2ee1	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x44561215	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x7191c770	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xa05fd1a4	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xa131d9bd	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xc3ed874c	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x02459cc1	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x1ad017c4	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3ee69f5d	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x44df7e38	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x46c3d526	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x502e5daf	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x52f5e8e8	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x595a8632	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x68598037	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6b8d5a8d	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6d149c80	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8ae68593	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8e36ffe5	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x950f21f4	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x95fd1a23	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9f1c56ab	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xb6828e23	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xd3f540a6	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf3ce6350	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf78ba0c1	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x1f3f430b	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x2f060509	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x48ca2872	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x68a4d226	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x84a33363	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x867db1ac	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x92f27d43	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9623c5d7	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9980dd41	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xae96b457	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xaf41572c	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb36d0b2d	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb69cb503	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb9a5f21c	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe1ffdfac	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xf47571a8	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfd25e5ee	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x4979e745	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x4e6116f2	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x53fcaa59	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x745f9cbc	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7544c8b8	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7f0cdc50	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa0967b55	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xb3e227c8	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc150e00a	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc6e9fe4c	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xcac58393	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xe6e9f58f	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0xf221ee95	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x6671c6ea	vdoa_context_configure
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x787fe8a8	vdoa_device_run
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0x7fe3d6f9	vdoa_context_create
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0xd96c63ec	vdoa_wait_for_completion
+EXPORT_SYMBOL	 drivers/media/platform/coda/imx-vdoa 0xfc58eef7	vdoa_context_destroy
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x099f3e3f	csc_set_coeff_bypass
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x40c014aa	csc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0xb727ded7	csc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0xdbd89336	csc_set_coeff
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x2163ded0	sc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x2b9f15a1	sc_config_scaler
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x2e3f520e	sc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xd3600c8d	sc_set_hs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xf63ac41e	sc_set_vs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x08ea27f6	vpdma_map_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x0f031c9f	vpdma_set_bg_color
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x103db7e5	vpdma_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x163e1a86	vpdma_free_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x16f0b6e4	vpdma_add_cfd_adb
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1a76435f	vpdma_enable_list_complete_irq
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1d8a5dbd	vpdma_add_abort_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1e26321d	vpdma_misc_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x2969a32d	vpdma_unmap_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x326bb834	vpdma_set_max_size
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3bb6047d	vpdma_create_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3d462132	vpdma_set_frame_start_event
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x49293b26	vpdma_yuv_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x4e3961d8	vpdma_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x50ec40af	vpdma_rgb_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x5118bd7d	vpdma_add_sync_on_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x60708dc6	vpdma_raw_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x65d23377	vpdma_add_in_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x664dd09f	vpdma_alloc_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x6aa66e00	vpdma_list_busy
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x79b5f823	vpdma_get_list_mask
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x7ad092c4	vpdma_hwlist_get_priv
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x87c0415e	vpdma_free_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x8c32ef9b	vpdma_submit_descs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x8e69b879	vpdma_hwlist_alloc
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x97f232df	vpdma_list_cleanup
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x97f311f0	vpdma_add_cfd_block
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xa0973b76	vpdma_get_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xa633ace7	vpdma_update_dma_addr
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xac3bba66	vpdma_hwlist_release
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xdd7f11d3	vpdma_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xe5a27c4e	vpdma_set_line_mode
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xe7ef779f	vpdma_clear_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xf93ba9bf	vpdma_reset_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xfefbda83	vpdma_rawchan_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x1036c74b	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x4462ff02	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x7b5dbd31	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x977d3941	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x9b52bdde	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xac366702	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xf7ca5133	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x6866dbf5	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xdcf0a735	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x29b58181	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0xfbc5a91e	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0xc1006759	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x603498fe	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x7ffe7651	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x15f89668	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x30a03327	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x313b5f1a	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa859d6af	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb01f2704	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb0990380	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb21298d7	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc3318fb3	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd7a3ad97	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x02b4cb08	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x0609127d	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x5d5210b1	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xbd15d96e	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xd143c34d	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xd7d25a7c	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf59028dd	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xf46429e6	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x07681722	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x27e2f404	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x58121707	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x620737aa	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x68430cc4	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6fa6b374	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xabc73b99	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xaf9bc1b4	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb0c73c42	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x39c11741	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xa941703f	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x90a6e863	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xe66d7532	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x17e6e996	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x2e8d94b1	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3f98988c	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x40ee4444	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x450aab8c	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x60f459a2	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xb5fd1e22	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xbcefec29	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xf049fd1d	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x48b64b0f	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x79240de6	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xa4e13a11	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xb6247667	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xcf8451be	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xd422655c	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe5bfa020	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe824c447	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x51df8288	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x69e0f0c0	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x734d4c96	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x83b7bcd3	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xa870bd19	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x18f43d54	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x385071fa	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe3607e90	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x01577ca6	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x02f62b65	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0666bbd9	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x06d3ec72	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0ae38623	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1076cb53	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x154f7d0c	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x172d8d93	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1aa7cf13	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1f1787a2	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x20e7a75d	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x23af0086	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2463d4da	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x28df9ed1	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x29921bce	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x29a68c45	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2b7a6403	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x312f1a6f	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x31d49416	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3319fdab	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x350a4108	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3764a97c	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3eee2c4b	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4166b6e0	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x419d9d70	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x49fbc46a	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b9b4d01	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x54d6d86e	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x56573165	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6fb38be7	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6fc34790	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x75bb37f7	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7b22c268	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x85a76635	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x87af3328	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8cb129a4	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa0f6d0df	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa6672f68	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa768f9df	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb065a995	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb0d70487	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb71c6d49	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb8d28421	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbe58b64d	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc639cd1f	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcd5c64db	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcd62f979	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd162c78c	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd5a732e1	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd93e4660	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd9856a57	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd994afeb	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2490e01	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe308542f	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe569513f	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe67fa4b8	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe9f26642	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xeb5ceed9	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf298ec0c	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3b3ba07	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf712d718	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf96e5b55	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfc0b6f5d	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfde13d5a	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x04b178bc	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x15fc8d4e	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x2e05c38f	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x3833c361	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x3ab058a6	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x3bc719be	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x439534d3	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4ccd4d6a	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x5f9e170f	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6c5bf3ea	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xb187aa0c	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xc61094ab	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xdf4e8761	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe9d35d2c	memstick_next_req
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x05e260a9	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0d56a50a	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0ec0b343	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x11efa11e	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x17b0f9dc	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x268739f7	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x2f250bba	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3aeaf7ff	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x410a3607	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4174d694	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x492af975	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4d4a997f	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x53ff28d5	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5c7c1cca	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5dd29409	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5f822333	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x66ca3f30	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x71edbcca	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x752a8532	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x80c142c8	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x859713c2	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8a5699d2	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8f4600b1	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x96364ac2	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9f3c7a56	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa961d09d	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc15c2c1e	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdbb09f85	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf5680473	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x0211c62d	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x036e1e1e	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x2e4f0ba2	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x33e0bfad	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x37838066	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3fcf05c4	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4884240e	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x50ab685a	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x632cddd2	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x705f02d3	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x78f2eb8d	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x87de4d34	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8c3be608	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8dc48354	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa6846289	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xad0637fd	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xaddd4d74	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xafbcd885	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb29b07f0	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb87a5bc0	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb952eafc	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbbf33b30	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc4020547	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xd4188e83	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe9304b7b	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe957aa35	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xff45af93	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x0c9e6494	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x175bafff	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x2130a313	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x56ead43f	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xbd374dfb	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xd3a60a3e	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xafc47702	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xf211ed79	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x1ebb351a	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x5c74a6e9	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7474d863	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7ff6805f	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x864ad6b2	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa9d5d3bb	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb044a101	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb2f74469	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb5b48a85	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xc635c341	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xe5b65e32	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/qcom_rpm 0x832aed94	qcom_rpm_write
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x10b06eb9	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x228ad520	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x2f6fa294	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x6a1faf38	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7197cebd	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xbde8d70d	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x7d14fb03	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x94319d41	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0xe54686a0	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x74e106de	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0x7bf79705	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2ee7818f	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x34feac15	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x39f86aa1	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4c65c526	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x60aff09b	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x6293f4ad	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x763f3dd7	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x818e5b35	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x91d8ae3f	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x993bcb30	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa7ff8970	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa8a9565d	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb16306b6	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x0a6198a7	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x263d765a	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x2e8b45be	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0xf903ecc2	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x763938db	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x9bff0692	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x137548ad	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x1f2c57d2	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x592f5a6d	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xaf417604	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xcebf1b6d	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xde21ea8e	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xe208b75a	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x20dde65e	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0xbc0ac725	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x525cb730	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xbce8c0a4	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x940f7d85	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xc4eb3a3b	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x102603bc	mtk_ecc_get_parity_bits
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x24351100	mtk_ecc_enable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5437e775	mtk_ecc_disable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5de55d81	mtk_ecc_get_stats
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6df58afb	mtk_ecc_release
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x76e53683	mtk_ecc_wait_done
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x7eb47fa9	mtk_ecc_encode
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xa2f4591c	of_mtk_ecc_get
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xda64ef4a	mtk_ecc_adjust_strength
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x102f1100	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x1af7dcc8	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x1f9a1398	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x4d6b3351	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x69eca607	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xaeca7035	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xbf931949	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe25a229e	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe4b83b07	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xfcb35ad6	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x23d2d5b1	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x84bc124a	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xb6a4788d	com20020_found
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0c6f007e	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x218cd03b	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2d6aa1d1	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x34603cfa	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3d182e53	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3f163bc2	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x45701eba	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4573e51d	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x47f4be78	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4f2d08c0	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x58fa36c2	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5d94d465	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6d378368	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x6f86487f	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7b0da1fb	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7e865a99	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8608a135	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x88f5c033	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8f11584d	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x912d6f32	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x964ea704	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x97936901	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xae49e633	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xae8bfcdf	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb1c429e8	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb2abdea1	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb31dd72e	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb9ed7404	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbdf1ceb0	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc0a19410	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc0b2377f	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc93e632c	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd2bdfe3c	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd6ca8981	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdaa49384	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe3033d55	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xef8ed0af	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xf146546d	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x1d21ee6c	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x445af177	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x624e0110	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xac9fd7b9	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd5025ae0	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xd5e81189	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xabb66d67	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xc386fe1c	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x4a3eefd9	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x89de46e6	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x4a7306ac	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x81e0a268	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xf8dbe663	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x8b0beec3	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xee609d55	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0bc0474d	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0f70d65e	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x406dcc94	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x6333c8bf	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x7679ba72	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x982af892	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa8d371a5	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd6f06a43	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xdc15afae	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf3959543	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x784fac10	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x01259969	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x37198d5b	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3e46000e	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x56c482fd	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6f7ab0f1	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8c466741	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x962a2136	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb39b5562	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc8b9a65f	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd03f6d6d	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd801d2fd	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdbe7188c	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xea006769	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeb4eec22	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xed8b1981	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf4cb82f6	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x01014c48	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x02e1876e	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04af6e78	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x098fc6d3	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0ab6b3dd	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17b3d405	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1cb48701	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x22865fab	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2cb61367	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x31adaf88	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x43df2367	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x448eb66a	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4879911e	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4926f0e7	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x580d9eaf	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5e58d17d	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5f3cf14f	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x60ce4300	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x62ccf037	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6d60883b	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x707ce9de	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x71ce13d6	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x723a1d56	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x73d098f2	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74b0bd79	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77ab556b	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77b49b54	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x833983b6	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9660b698	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9ca2394a	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9efe738e	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa0c1ee29	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa14759c0	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa27b0a00	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb25747da	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb6ef547c	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc3967755	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcb0b7462	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce91bced	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xded2869b	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1c08465	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4a758d2	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea4d21a4	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xef0a7b80	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff77a09f	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x176c96d4	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x17a0f131	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x568a3ad9	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x9d2c470d	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xaf3e46aa	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xdae68cd3	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xf92d4c06	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x313313ce	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x5ab6412f	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x615045b8	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x8345267b	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x88d267ae	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf6a6b858	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x284f9ca3	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x68fae0ff	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x19fc9702	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x4b8e5424	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x6194d7aa	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x9c531640	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xa2a97050	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x26226ddb	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x068814f1	hnae3_register_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x17b774fd	hnae3_register_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x342dbd02	hnae3_unregister_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x41a84379	hnae3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x8b7bf232	hnae3_unregister_ae_algo_prepare
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x91aa74ce	hnae3_unregister_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xb6034faf	hnae3_set_client_init_flag
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xc7b5434a	hnae3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x31995350	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xbb30964b	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xad0fc0a6	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xde216bf8	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03f08b12	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04b753a3	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08adf480	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1279e03c	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ad33e94	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c871941	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f88ab12	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2135f114	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2788ab48	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ab7b878	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34fce982	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3625cd9d	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3715ed9f	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38b556de	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4362432a	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4abee0b7	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x544bee9a	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65167c26	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6567e70e	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6aedf2c7	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c6dfd02	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79130088	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x851cc843	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f24de76	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a582b9e	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ee0e993	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fa3bd98	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2bdd135	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa550f637	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9ed85a1	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf222408	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb01ce64b	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb29d0370	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5a566ab	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca066de2	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc93c822	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd37c36a0	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3eb3e6b	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd741803	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe08024f3	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe97dcaac	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9a569cc	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed4c163f	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7290a16	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0024b451	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x009b15a8	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x044bcbc5	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x062be6ac	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0804aa43	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c2fc676	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c3e8ce3	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0df6757e	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13c3143f	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14bd0ddf	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14db26d5	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a9a3354	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c9f63e3	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2240894c	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26becf2d	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2807856e	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a188689	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cd5e9fa	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31d83376	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32ea49fc	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35df9781	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39153c11	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cdf2f1c	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x444a7a95	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44c11dea	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ad7e9d4	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b1ba67a	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ca535f9	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x548548f3	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x552c126d	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5727cd12	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57666429	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58fa7d83	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59b3cc54	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b04486b	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e7e2c8c	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61982d00	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62860f1e	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x684b8acf	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6870b0d5	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d18164a	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6de1440d	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x707a7b2c	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73193ce9	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75244cd8	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75353f2f	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7584004f	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x770c41c7	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x771ce280	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79d51a6d	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7e166434	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81727557	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x824c765d	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86233459	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86ee360c	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x878e1bff	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c76956b	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90018bd2	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92becffe	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9572aa1a	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95d47eb2	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9733b2d1	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x998ee07b	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cb4e29d	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa17fea36	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1c00228	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa261ea91	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa28c8c90	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa3aa6825	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4ffd3e2	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5ad7ccf	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa620d150	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa680a7d6	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7e0cfad	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa936d6f	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabc93bc9	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac3929e4	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad48a001	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae0832a8	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf048b46	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb291248d	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb320fafd	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb341561e	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb405ad5c	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb40c0115	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb430b39f	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7a58f36	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7fbae49	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd133392	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc00b0268	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc13b65d2	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1fe92e3	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5902dc1	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5fa7256	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd942b5b4	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda97b815	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdabd21e6	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe12f7d62	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1be3885	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe46bcab5	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe486c1c1	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4e2ffe7	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4e3c173	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe58ea659	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5e5fd20	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe78dc9ed	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7f6b028	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea20e523	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebd57fb3	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xebeb3f62	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf012e55a	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1eeca40	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf23c95bb	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2a8d665	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf85dc551	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfbaa0612	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfda69776	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe068e1c	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff05e262	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff106248	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff2e450d	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x1f3a577c	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e8cae9d	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x13d8c8fd	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x27867cc9	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x44db7c72	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x49fc4c81	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a459528	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7d064bd0	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8455cf39	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x853910c6	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9617d9bc	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa600760	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6fcbadc	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbbd7a457	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbd7ac168	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc8ff8884	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd4ce611c	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeca0348c	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf8be071a	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfca74e44	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x1588f7cf	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x97ed4561	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x16acf231	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x71610f42	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x1c0d3f17	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x84199761	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x846131e3	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x94dcb966	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9806671c	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa6528490	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc1b8f4b9	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc4e16fca	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc50e6f7e	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe306c7ba	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xeddd2d56	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xf3950898	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfd26e8b8	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x92a2c036	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x980cb199	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x984c24ab	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x10ea857e	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x187812e0	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x58e792f2	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xa865bb2f	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xf2a97904	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xb79a54ee	mdio45_nway_restart
+EXPORT_SYMBOL	 drivers/net/mdio 0xcdbdeca7	mdio45_ethtool_gset_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xdaceb7a6	mdio_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x375cec4e	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x39545966	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x48ae0ef1	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x70fcbf3d	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0x9154c892	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0x95c47d85	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xab21de98	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xc01496f5	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xdb2c1a32	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0xfac83a5c	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0x8088a04b	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x49c2acaf	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x6244c11b	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x2043d8d6	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xc5eb064c	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xea9664e1	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x4ffecb81	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x3cc3fe11	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x45298db0	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x56afc77d	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x884a0276	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xaaddc240	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xcee11749	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0xd31e723a	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xf392ba18	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x3d90c844	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x637668de	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x868e1f1d	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x16b207a5	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x23aafeca	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x245d3c33	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x548f9f8b	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x9157d8f1	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x9eabb482	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xcc6cbb96	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xe174a1eb	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xe84075ff	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf0b35edb	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0xb78cda7b	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x31128a1a	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x39251ad6	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6f5db202	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x812b008e	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x820a4ac9	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9ce16bbc	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xaecc1551	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb2f1bac2	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb37c34d1	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xbf83ea2a	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xdf24636c	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xe51635b5	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf2598fe6	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x091ee7e6	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1d67ec29	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2a2781d5	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2b04675b	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3c0ac99e	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x40895499	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4431dfb1	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x46a30a8c	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4c2cc344	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x5a50ceb2	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6322b42a	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x64704e11	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x64d701c3	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x650aa015	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x67e5db69	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6ba5c3d2	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6cedcfa0	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x730b7305	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x76cc01d5	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x84170e4c	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x86c9f0e7	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8a9337e5	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8bc85744	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8cacf1eb	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8e3df303	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8f9be29e	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9316dd8e	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x952ecdfb	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9884ab64	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9e8d6ece	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa0bc6f53	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa70070b5	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb791835a	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb9806b5c	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6710298	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc9cd92cf	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcb0b00ce	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcdb152ec	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xce5a6203	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd80c4f17	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe3a0af4e	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe4dbe092	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe566a05f	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe799efef	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe7c1f9bf	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe8dbd437	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeb9fff12	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xeff9e053	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1738633d	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1e84244a	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3036ffba	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5430f5ae	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x57bb06be	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x66f858c8	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x959cdf64	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbb0c3848	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xcf288980	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xeb0a7257	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xec040f43	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x0591052e	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x05a72362	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1d6b4ba3	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x2aef5bcb	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x2ebca13c	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x30c7629a	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x33aba08f	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3784aa4f	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x54187d77	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6af7a4d0	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x74eb8742	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x85b75203	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8fd7c8ac	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9c6afc18	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb0e6e21f	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xbc1fb02d	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xbe7bdf6d	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcaba78c4	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xda09d05f	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdd4d9ea0	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe006d368	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe053f22f	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf1a815a3	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x023bb91c	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b11155f	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x12174418	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x15fb0c3c	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x19f3797f	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1abacedc	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c971ea5	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e52394d	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f5b4138	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x28ba39de	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cbf3899	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d021bc7	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e505c1e	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2faad89c	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x350890ce	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x35286105	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3db1e695	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ea57876	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x40c8d37e	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x438aff7f	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4416880e	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x44f51818	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x47d35bc6	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x47ebc826	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e58d0d6	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x50c40cd7	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x559082d6	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5670a573	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x56b0c9b0	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x57a2232e	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x57a8b1b6	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5855778f	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x594e8d17	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x59a4aed0	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b56f506	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e016be1	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x61fc3c4a	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6229bb76	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x63832997	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6498e7d2	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x669c4ca5	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f46f4c3	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7200dc90	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75da3b2a	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x77e69f19	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x78b44cd4	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c8680a1	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x80af9524	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8387ebc8	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x83cac5c8	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x84146829	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x89af05bb	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x89ec2b9f	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a1697ab	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x905e1c3a	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x906cfce6	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x94c6ddd8	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x98702a8a	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x989eb981	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ecabfa7	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3a279d7	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa50417c0	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa643faee	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa68cc758	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7da5392	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa85e72b4	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa94a1ad9	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaeb6eb23	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xafb23534	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb76aea49	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb83303e0	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb90745dd	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbd13890	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc313ec47	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4ceff6a	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc504c431	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9f0c33a	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcbec3369	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd222ecb	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd4c8a3a	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd80a857	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce80c4d3	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd021336e	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd21d153b	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2fbb119	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8452e1f	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd0245c3	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd982494	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xddff0c8a	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xde4707e4	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xde8843dc	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xded7557f	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf9e6c9d	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe737f271	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7773382	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb1bf8a2	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xebd8c183	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed73e198	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf03d9ac5	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf042554c	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3bef2a1	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4c91c45	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf705c15a	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf794e5fb	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc4a146b	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe430b39	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe60fe83	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x65f002b0	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xb19714d6	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xb20aa2b7	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00f9f986	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0c0351e1	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x216934c3	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4200c284	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x89d0efac	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa3c69c01	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xaff0dfc2	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcfcff606	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd5b4d5c1	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd94e3796	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe0a3ab0c	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe16e6a90	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe26a036d	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x0600bc57	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x0c1577b8	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x186e8876	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1ec5d463	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x21e33960	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x52d0b529	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x60d0c1cd	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x61bcf3f0	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6c11a008	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x7544d35b	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x84c98968	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x90be00d4	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x92fc0791	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa4a903ed	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa50a96ae	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb560e8fb	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc2889e38	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd834c55a	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xdd98c814	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xde6017b2	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x01d1a021	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x021308cc	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0457e39b	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x052a9e33	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0643a2e0	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x08c85768	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x09bee4c3	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0fbec23d	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1087607c	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x10a5f984	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12f418cd	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12f87922	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x15fd89b6	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1956d691	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1ad50016	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1b18cdb6	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1d8e6c6a	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e12e94b	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x208ee1d2	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2230fc9c	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2716b495	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2973f214	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2db70f3d	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x31473b3b	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x35d07758	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3c43d574	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416a491b	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x42c76c44	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x499f9659	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4a2e17a0	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4d30bb52	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5192db2e	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x53842d0a	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x54f6602b	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5813da79	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x587cdad2	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b71af52	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x608f04bb	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x60f6b0ae	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x641fc04c	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6fee22b6	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x72cfaf2f	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7325b2c8	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x77f94d90	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7a0a0221	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e7cfbd6	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e91c745	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fc382dc	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8233cc4d	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x842c0bf1	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x87c54e88	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x88580d5f	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x89f82f98	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8bf34cec	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8c81574b	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8cb7c608	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90795826	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x95cd9dd8	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x97b65874	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9ddea081	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa4c44f24	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa6b3555e	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa74b7038	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8e0ac95	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaabe24ce	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xab5277fa	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xabcdc91b	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb054c2c1	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb14f9424	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb16f8f34	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb1967b7d	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb5f39168	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7969d88	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7e8c3f1	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbbe308ba	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc022ece2	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc63edac2	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc755cc2d	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc78aec1b	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb991df4	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb9df137	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcd6efb5a	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcecf0e54	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0742e1f	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd27f6f03	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd5af3e79	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7f64790	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda6e3338	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe06e8961	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe457f353	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeb156603	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeba168cb	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee9f35c8	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf52b4f8d	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf59bce41	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf773a135	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf79f138e	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9e85cea	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9f159e4	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x33c2544a	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa44e2870	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xab9db4d3	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x01b86897	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x065f84dc	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0d4120ad	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0e849d83	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x265f9a21	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x32fccfce	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x40a91d60	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x618e257c	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x71c408c5	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x72cfe327	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x769d5c93	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x780ef2ac	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7d94ed1a	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9658a780	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xab28958c	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xab8b8a47	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xbb1c15a0	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc9c10013	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcbb654c3	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xccd59905	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd0d03fb2	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe2680791	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xeb8f06b4	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf880b674	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xfae5ff33	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x1c636946	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x1dbfa88f	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x1ee3eee6	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2a7be41d	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x3dd1e8fa	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x45a29834	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4c8109da	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x5bbd414f	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x73f1338f	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7fb32e1f	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbce5f748	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xcfcc3dbc	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe166d083	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xeb4c9831	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf2a865b9	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffd63b5e	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xde3e1152	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xcde992e6	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0571a750	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x08d20b2c	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0b44f137	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x101b0d39	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x104b4ff9	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1584aa88	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1822a67f	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1e94f82c	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2303e690	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2a1d84c7	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3439b267	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3802bf4c	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3fba58cb	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x43c6f51a	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x450e2e4a	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4588eefc	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x52782819	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5fd4f931	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x60f984b4	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6fe94cad	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x719beb19	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x797a5792	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x85c1d456	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x93e81236	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9536dde6	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x957eb56c	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x96cbf1e0	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x97ef80fb	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9c6370b9	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9cdc5664	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9e0cf229	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9e32fe4c	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9eb62d01	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa8627d32	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb58a0c1a	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc156f741	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcc1610ab	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd33f7f0b	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdda543e7	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdffcc3d9	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfdc155c8	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x44012fd8	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7d47d1ab	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xba6212b2	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xcccef350	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x3bee968c	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x75d27a2b	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7f4775a5	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xa8835ae2	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ad86fbd	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0dbbfce5	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0e42bfbf	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1469586d	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x157d4702	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x17667da9	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x215a9d45	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2cb4d803	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x370f5293	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3cf7b31c	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x48c3a684	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4ff82efa	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5368a8ef	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5acace52	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x773a8a07	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x80334d22	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x81317c0f	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x94568844	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa1b3041c	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa6301d69	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb4549e6a	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb6ef217e	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb8001bda	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb9ebe7a0	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xca85e832	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdeb94ff7	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe136af77	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe2a8ef13	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe3b26af3	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe56e7860	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed2fc6e4	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf04605fb	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x090f0590	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x0b4f7e0e	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x226411ee	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3a04a8ec	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x3b6e6dd8	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x602eb7ad	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x786705a2	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x7bfa3edc	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8bcecd1f	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x8fecdc93	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x990cdc80	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9c71976f	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xab0ef2fe	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc6341f0b	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xcc8ad198	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe7fc26ee	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf45a8f9d	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x3b83dd8d	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x48d7d13f	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x4bddfbfb	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xe6f75439	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xed81ab58	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x17f45fa5	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x2734b613	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xc7dccbe8	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x178e38d1	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x7bcba20a	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x3bb0eb69	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x4ed57994	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xb6a93c1f	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0xa99a2f42	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x4c636074	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x91ab68e3	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x02a00ef2	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x948aff9f	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x98522a91	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x4c746396	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x51639270	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x98d1d078	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb0a23658	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd80cb391	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd944a664	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xdfa310ac	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf4e10935	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xf9c0817b	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xfd67b873	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x049ba288	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0613d770	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x3ca9430f	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x44555f92	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x58b3ed28	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x59e4c60d	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6b61f85c	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7b8dc751	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x98527786	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa163d34f	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xad9496a8	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb9d86bdd	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd57f54d5	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd8ce5d26	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xdaf8ae55	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe993fb46	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf0cbc9bb	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xfa74a74c	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x02898395	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1c17f461	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x475f4335	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x50734d1e	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x60ba3696	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x60fa7be2	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x70882076	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7370a4ab	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x740979ff	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x76435099	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x86e357af	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x8ffbc97b	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x956dd8f0	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa5027c42	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb36c66c0	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xb976f494	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe27590dc	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf22193a9	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf9dee889	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xfdf7afda	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/parport/parport 0x0255ba27	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x0d63f2b7	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x0d8a70a0	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x0f74573c	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x105226a7	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x14cd98e7	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x16183808	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0x18b59a22	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x24650f54	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x2d587844	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0x3113360b	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x323167f3	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x407794e7	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x475e1e58	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x48335267	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x4aa7a41c	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x4ea37841	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x7750e83e	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x8e0ded3e	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x90f246df	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xa495d5bf	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xab7dd31e	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xacccae3a	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xc2bec1db	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xc497c7d3	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0xc7c4d278	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xcf2f7258	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xd58fbb33	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xd7719caf	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xd8b6582f	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xea036ee3	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0xfecaa161	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x654a34e9	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x963edd3b	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x2b696ea1	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x439f4883	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xd9194d73	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xf66ce3f0	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x2f1c2e23	qcom_smd_register_edge
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x3330a1c8	qcom_smd_unregister_edge
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x154d479f	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x192da9b6	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x245b1a22	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3333cf3f	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x3c4a9855	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4426b752	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x481105e0	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x58bab760	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x7a13c942	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa1658488	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xb09d1811	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xc4e5aa0e	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xcb759b0e	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xdfa2460d	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x085378fd	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x868d86c4	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x887e34ea	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xa206ae64	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x1f043c90	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4beb9d81	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6a77393c	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x71a052e0	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x75551109	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x8b1e29de	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xd27eb2d4	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xdc2d7cf8	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf5411700	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfa614f58	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfb9dcca8	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0b91bfc3	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1129d9ba	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x12b53b4a	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x153c70f1	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x16e0d03a	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x17d4b155	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x19e22610	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1e5def09	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x21b30da1	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2ca88d51	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2cd07476	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2f4318ca	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x328701f4	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x33ae8afb	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x379ce29d	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3e56f4c6	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x425a0fb7	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4b89f2e1	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4e5b6212	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f7fd392	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x56bb8c9c	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x59bbf34e	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5ab41f0c	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x633c180c	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x655b7087	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x691e84c1	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6a4c33c0	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6b4ef825	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6bc8f761	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6d0f8e6e	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7069a783	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x79a56749	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7e606415	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x860b6b33	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x865c03b3	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x886859fd	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8f46f60c	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9acc4cd8	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xafd4000e	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbb8862c3	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbe8028c5	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc1964047	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc250f970	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc2bf9768	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc309a4b9	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc6571b2d	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcefec502	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd14d4bf8	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd9da1148	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xda472cd5	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdb9f6c71	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdeb3fa8d	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe15bfec0	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3ef7f89	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe551502d	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf1bb844a	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf4bfbb30	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfd0364a8	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfdc635e5	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x04d583c0	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xcef3b8ca	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xefebbc9c	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xa21fafb9	mraid_mm_adapter_app_handle
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01	mraid_mm_unregister_adp
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xdb6bd5e6	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x126e3370	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x14079c41	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x170217ef	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2cdb3bc3	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x69151405	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x703ff836	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x7311ee1c	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x84b9faa9	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x89428cf1	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xb3bba564	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xdacb8985	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xfa42d7d8	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xdc215d6a	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xe3765da5	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x09ec7ae2	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0ea2b049	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x266caddf	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2a75d4e2	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2e293e1c	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3dcd2766	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x471bfd3e	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x754f9375	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x75704062	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x926e7b4f	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9c06584e	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xaaa49196	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xc89d7eb7	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd7be8d8a	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xe4fbf273	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xeb068560	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0099a9f6	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x08dd5add	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0c51f36a	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1058c3bf	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1f7aea76	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x217042a7	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x377ac3d3	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x46832f59	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x53a82830	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6705c80a	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x678c2f71	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6a292a3a	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x783d8e48	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7d360189	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7f22c315	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x824cb405	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8639884a	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8af0916c	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8d93bdb8	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8e6305da	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x917b1e5d	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa3f5beeb	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb5a24776	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb64dd837	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xb996143f	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcb38b35e	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xd191dee9	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xdb567445	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf8565d0f	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x12403743	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x33337152	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x65845314	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x6a0052b1	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x7859d292	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x29fe5db3	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x58aaf722	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x9e3e7206	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xdccd1954	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xe23ac28a	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x66496627	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0x8f89ed9d	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x2dbd7c87	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x2edbbb83	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x3d273c96	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x54df9f09	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x7d3ed5b1	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xc4e374de	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xc799807f	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xdef4ea06	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf009ddef	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x52aa1a6a	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xb04b1597	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x12b26a2f	cmdq_pkt_wfe
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x134db152	cmdq_pkt_write
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x2cd36d83	cmdq_mbox_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x35fef1cd	cmdq_pkt_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x52eb8e83	cmdq_pkt_flush_async
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x5ab2e662	cmdq_pkt_write_mask
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x5f2b37ce	cmdq_mbox_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x6d61d952	cmdq_pkt_flush
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x782df519	cmdq_pkt_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x91bd54f2	cmdq_pkt_clear_event
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x14746619	geni_se_rx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x21b5761f	geni_se_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2241e202	geni_se_rx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2acd4040	geni_se_tx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x34cc32ce	geni_se_resources_on
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x38bd7bf0	geni_se_get_qup_hw_version
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x48ccf116	geni_se_clk_freq_match
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x86d6f362	geni_se_config_packing
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xaaf97762	geni_se_clk_tbl_get
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xaf9daf82	geni_se_tx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xce3d2f84	geni_se_select_mode
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xe0d701b0	geni_se_resources_off
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x133168aa	qmi_encode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x15b388be	qmi_send_request
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x1808490f	qmi_add_lookup
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x21ce5888	qmi_response_type_v01_ei
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x23c6227a	qmi_handle_release
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x4ce082ab	qmi_txn_cancel
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x836484ec	qmi_add_server
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x9f9e69aa	qmi_txn_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa2ff1ede	qmi_decode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xc348c1e1	qmi_handle_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xd6e15a81	qmi_txn_wait
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xfc44407d	qmi_send_response
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xfdc4a7eb	qmi_send_indication
+EXPORT_SYMBOL	 drivers/soc/qcom/smd-rpm 0x46bb046c	qcom_rpm_smd_write
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x5a710273	qcom_smem_get_free_space
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x63ef36e3	qcom_smem_alloc
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x694c56fb	qcom_smem_virt_to_phys
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x932eb0e3	qcom_smem_get
+EXPORT_SYMBOL	 drivers/soc/qcom/wcnss_ctrl 0x8bf3ad3f	qcom_wcnss_open_channel
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x161317d6	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x2a8596e6	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3bc95792	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4463ffb6	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x53528b40	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x58e65264	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x5e32b253	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x862ca1d2	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa3811707	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xa519b493	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbe6c8102	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc0a8370b	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc22dd593	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x014c423a	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0e3f499a	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1736b142	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2b121721	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2c196997	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x39220872	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x39382169	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x44b30137	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x5de65a25	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x73f5f4e2	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x93c658a0	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb3118bad	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc09807e2	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcbeddf9d	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xecaa78a3	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xee0dfbef	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xee30d9f8	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xee4eba1c	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xefb756b5	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xfeb6fe64	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0209d21f	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x022a82af	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x170f1857	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x24b8cfe2	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2d3c903f	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3918603a	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x47303e4b	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4a2fe607	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4d32e04a	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4dcac4af	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x4ff5a9fd	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9041c2bf	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x98c5450a	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa3d2f96a	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa587f438	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xbb36f320	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc2274a0a	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcb69b95f	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcbb1c9a7	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcfe4b9a6	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd3531ebb	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xdeaec19c	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xedc9e225	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xef8f97ca	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf9bbd0a6	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0xd24977a9	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x1b1668b5	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0d928676	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0fb7fa7b	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x122db8d9	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x24f19f70	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x2805d148	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x5b2edccd	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x611f1364	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x77b4f826	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x87726f2f	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x936fb0a8	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xbdae904e	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd24b6df2	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd7d81140	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xe96ed1c0	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xed09b356	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x088a8651	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x0ef20047	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x2df918cb	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x48cf8726	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x4cbde8b5	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x63098e63	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x82df2781	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xbadd5d54	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xe0ceb702	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/nvec/nvec 0x89f6ae1b	nvec_write_async
+EXPORT_SYMBOL	 drivers/staging/nvec/nvec 0xe88b78a4	nvec_write_sync
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0a153810	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x117173e5	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x15a47513	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x16ff8dd8	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1f1b0fc5	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1f8c739a	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x24120ced	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x324f501f	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3276103f	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x38e9664e	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x39ad2e48	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3b1e7315	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3cbc8b34	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4213dc6c	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x45eae8d6	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4741a0b0	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x47f5f46d	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4a4cf787	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4b3d2944	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x52b083a1	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5c0418b8	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x605ed0f8	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62800913	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62b7a261	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x678fd402	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x67b69422	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x71e42bc6	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8b215cb8	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8e0c12ab	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8e9f1bf3	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9b2ef54f	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9ebac2e7	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa47f5b01	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa5fce24f	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb1ddaeaf	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb575222c	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc00fb7d7	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc72cf75c	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc807dbe1	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xcc5008fd	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd2035b8e	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdee1d8a5	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe4633ead	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe4b39ae1	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe6e271bc	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe8cd7540	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf3ceb39f	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf43d5d5a	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfd740ba5	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0630250c	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x065cbe72	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x13dc555c	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1e90322b	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x25ec0030	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3fec90b4	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4423a9fb	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4e29a523	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4f078c57	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x506ff698	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x516b3326	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5432d461	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5f46dbe5	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x630a4f45	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x643d7a7a	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x67ec2532	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6c982ab6	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6ff288d0	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x71b1c676	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x73f25ca2	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7573c094	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7817aa57	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7988804f	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x80231196	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x83e018c9	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8cc87059	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8da22c2b	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x93c5134e	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x971adfbb	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x97acae59	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x97bad560	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa89f76f9	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa9701eae	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaade8832	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb0b6cd25	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb1c67da8	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb35e0bcc	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb5361ee5	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb8ed4c50	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc986b08a	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcac8a64f	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcc962aa3	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcdbd4e0b	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd364a1f4	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd6545b75	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd955279c	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xddca0228	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe58aaa26	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe828423f	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe9951f25	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xee14f37b	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf038e26f	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf4229ebe	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xf506b68b	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfbbc68e3	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x03e1ccfd	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x118b4325	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x11e4aeda	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1426ba5c	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x15fa560d	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x18dce909	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2c4741fd	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x33dc44fb	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x37866965	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x38b4cbcf	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x46fcd8a9	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4f344213	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5cf21b23	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x68da90c0	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6fa89343	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x72776662	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x74081b81	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x75591fec	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x761b8857	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7f0571d3	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8392db8d	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x87c7e292	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x87cf2a3e	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x882c627b	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8fc20026	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x922ba260	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9900c09a	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa45e68cf	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xacd4d844	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbaf0ef6d	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc0bde9cf	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc468c5d0	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcab1510c	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcd7afb89	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xcfb5635c	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd87a9a72	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xda63c94d	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdb9029f0	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe3bda9dc	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xee285561	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf3d5d97e	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf44a2462	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfeb162f1	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfeeb05e4	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0589069b	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0b50ac47	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0b52cd0c	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0cc9e3ab	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x15034cc7	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1815d1fb	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1b7eea23	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1c361d8a	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1e0c2b6e	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1e8521c3	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1f437405	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2642c92f	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2826a962	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x289dbc3f	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2b93a9ef	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3109a623	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a915041	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3f237f0d	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x448ac8ea	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x452dacef	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x463c9f83	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x46a4390c	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4934302b	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4cbbb4bb	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5065243d	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x528016f9	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x57dc64bf	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5913c775	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x599e60d9	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5b697099	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5ebb9716	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x608068ce	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x696e4b46	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x69d9af88	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6c3f71d1	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6dd88a97	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6f2e8d04	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7ad3645f	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7b48aa1f	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7cb1519c	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7f15ca23	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x85a59358	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8aff227b	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9302bf4a	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x94bc5866	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x95b432f1	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x99cc5830	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9a6dc757	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9ed0cc9b	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa24f6c06	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa8a021d2	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xacf57eb7	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xae02dc8c	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaf9d837e	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb5eb9060	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb7e64cf5	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbb18dc2c	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc8130a6c	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xca7d0302	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd37d3894	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd3a288dc	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd8363658	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xda22cea9	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdc34140e	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe147fa28	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe1660cef	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe2c83a9e	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe81a48fb	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe8c286fa	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xeaeaeed4	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xec4d8466	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf2e570d5	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfa2b082b	target_backend_unregister
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x627425ec	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0x0574d9c9	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x2b8c70b5	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x03838800	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2b2421ec	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x39e158fe	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x4200c13a	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x42e4ed0a	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5b0f67ab	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x6cd8d819	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x861c2daf	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xbacf1a75	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xc2d7909b	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xd7fc5dc9	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xd8acf205	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xfb531559	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x105590b7	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0xe60e40a3	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x193d5e79	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x1a01ac1e	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x467d61a0	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x73aabd1a	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9191113c	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x9f70a368	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xbb27297c	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd196c553	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe6faffe0	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xeb170620	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xef67d05b	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf2571b72	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x05b8cfda	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x0f655355	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x16a0d07c	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x51f16cdb	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x85b6c929	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xb6e125d1	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xfdccebd4	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x04bc0b2e	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xe65ceaee	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e91ca97	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x367ce26a	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x7bda5e6d	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x821e9390	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xa75ff962	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc7f2440e	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x107bdcf5	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x183ba3ea	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xe5d5e0e2	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xfa1cca41	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x2d18a046	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4fec46b3	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c337c2	svga_wcrt_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c97d2a	svga_match_format
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x89dac7b2	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb3a0a1cb	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xc3af2c16	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xc706e92c	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd901b200	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x0bdaf580	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0xe8d09a96	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x1612677a	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x57abd44e	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x7f7d5453	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x630997fc	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x69aebe69	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xe3fed665	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x474cc569	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xbde34d8d	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xbf49f9af	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xd6333885	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0xbe227b96	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x05c365e5	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x1a5ebfe8	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x840efa6f	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xc139ba01	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xef99e4bf	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x249931fe	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x67ed9640	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x5f5cd539	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x6bb5ec48	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xa3ff45b0	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xaa899edf	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xbb6cb52f	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x488ba7ca	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x01ea132e	dispc_runtime_put
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x03005606	omapdss_get_version
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x05150d0f	omap_dss_find_output_by_port_node
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x05400ee9	dss_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x13c58263	omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x1570f5e1	omap_dss_get_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x1aac9a26	dss_mgr_register_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x1af0d7c0	omapdss_register_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x1af675fb	dss_mgr_unregister_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x23ef4522	dss_install_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2423d741	dispc_ovl_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x289a9e8e	omap_dss_find_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2d8343e3	omapdss_output_set_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3082a0b3	dss_feat_get_supported_color_modes
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d36d54d	dispc_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3f6b9a7f	omapdss_default_get_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x42912b0c	dispc_clear_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x45adda75	omap_dss_put_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x45d74ef6	dispc_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4bd67a8d	dispc_write_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4c33081d	omapdss_compat_uninit
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x52cff88c	dss_mgr_start_update
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x53bb59d2	omap_dss_get_overlay_manager
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x54f6830a	omapdss_get_default_display_name
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5689afe7	dispc_ovl_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5c3fc29f	dss_mgr_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5ebfa878	dss_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x636b3461	omap_dss_get_num_overlays
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x641f4ec4	dss_mgr_disconnect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x66cdd3c9	dispc_mgr_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6b1a3090	omap_dss_ntsc_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x70e39dae	dss_uninstall_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7473e6d9	omapdss_unregister_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x75db05ae	omap_dss_find_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7b25df49	omapdss_unregister_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8153550a	omapdss_default_get_resolution
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x827143a1	omap_dispc_unregister_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x87fdb051	dispc_mgr_go
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8bb905b7	omap_dss_get_next_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8c5a04b0	omapdss_find_mgr_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x9221fbd9	dss_mgr_disable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x93963a85	dss_feat_get_num_mgrs
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x967cb4e8	dispc_ovl_set_channel_out
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa13d27f5	dispc_read_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa39e1db3	omapdss_find_output_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa4aa4b58	omap_dss_get_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa4f6a175	dispc_mgr_get_sync_lost_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb3ed5aa9	dispc_mgr_is_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb7f94a15	dispc_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xba8ddcea	dispc_mgr_get_vsync_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbafeee36	dispc_runtime_get
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbe0d4752	omap_video_timings_to_videomode
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc004fc9e	omap_dss_get_overlay
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc45105c3	dispc_mgr_go_busy
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc83e77ab	dss_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xca84bc07	omapdss_register_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcc197296	omap_dispc_register_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xce466b8f	dispc_ovl_check
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd1067ba7	dispc_ovl_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd6540d7f	omapdss_output_unset_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd70adbc1	videomode_to_omap_video_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd8ed186b	omap_dss_pal_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdb93b838	dispc_free_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xee2bc2d0	omapdss_is_initialized
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xef3b2795	dispc_mgr_get_framedone_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4a7fc6d	omapdss_compat_init
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4f63234	dispc_read_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf9427374	dispc_request_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfe40bf95	dss_feat_get_num_ovls
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xffd2cf99	omap_dss_get_num_overlay_managers
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0x3037658e	sis_malloc
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0xfe963115	sis_free
+EXPORT_SYMBOL	 drivers/video/vgastate 0x686de290	restore_vga
+EXPORT_SYMBOL	 drivers/video/vgastate 0xe7a2620e	save_vga
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x67c54d8e	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xaa6f3a61	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x35c052b5	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xf179787f	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/wire 0x0c7f3995	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x583a7f58	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x6c0554e9	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x9ec9d912	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x32d52e6c	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xe1ac8610	bd70528_wdt_set
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xe3ec2515	bd70528_wdt_unlock
+EXPORT_SYMBOL	 fs/fscache/fscache 0x03bf6d16	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x059a00d2	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0b79c056	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0c2f97ea	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1f9efadf	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x28e5327a	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x338ba5af	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x370aa035	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x39810143	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3e049f87	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x41cafbdd	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4a90ad42	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4f9e60f5	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5390f6c1	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x55f79832	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5c5bd9cc	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x67a8c8c1	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x687e138f	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7125c17f	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x719625a5	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x735fc00a	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7faa50d7	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa825dc0d	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xabd11f6a	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xacf66a46	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb69db95e	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb91089ed	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbe9f6557	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbf0b3517	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc612d403	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc8d2212a	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcf055c3d	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd740aacf	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdeb4d4fa	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe1db8d88	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe88538ac	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xecf33a11	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xeefd59ff	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf0752c95	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf27080ad	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x0f7e4cdc	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x1f13508a	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x4a33e551	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x6ceaf048	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x87597a34	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xc5b29ee2	qtree_release_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0xa2048e95	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba95c5c0	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0x5a742e56	crc8
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x03f599c7	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0x107b40fa	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x4feade4b	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x56fc3ea0	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0x619ed575	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x84e0214b	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x995abb6d	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xbbe7c23c	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0xc48fa976	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xc6e4cd46	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xcb990a55	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcea6747e	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xd212c9f0	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xeb13128b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0xf460a486	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0xf5ea5f5c	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0xf6acec20	lc_find
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x4cc636f2	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x765fd165	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xd02774b1	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x067fa594	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x13d24f16	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1de3f19a	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2a0fd0d0	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2eacbe22	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3281fb74	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3545701d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35bdc817	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3b209a35	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x41e56a18	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x51022053	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x58f4c817	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x63230633	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6443babd	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66dbb4d2	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6cbcd95e	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x71432c37	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x78431876	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7aba5c0b	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7b51b66c	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x910096b6	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9e0ec162	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa9eb465f	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb7872388	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xba2ffeea	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc04b3f8c	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xcdfa135d	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd6205c02	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdac739f6	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf39e441c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf4cbffc3	ZSTD_flushStream
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x0c8e3c77	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x3c57d5bc	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x48ded1a1	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x7aaf1a2a	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x860713d2	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xffa30146	lowpan_nhc_add
+EXPORT_SYMBOL	 net/802/p8022 0x5ee1e1cf	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xf047ca50	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0xa55c0463	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xc6ecd614	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x02bd2dce	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x0b1b4407	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x0c8abb39	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x17859533	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x19bf5021	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x1c2003b7	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x1c8f13c2	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x1dd80dea	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x22a05bbe	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x29699eff	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x2b1d9da1	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x3269e98a	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x331d78ea	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x33dd6520	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x385de619	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x3974d270	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x3c82c91e	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d33a2cb	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d986cf9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x40406a23	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x417a85ca	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x4185dab8	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x554054ae	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x59e48ba7	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x5d7910dc	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x642f78da	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x751b0c83	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x7be9355a	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x80bbc6fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x82ae47df	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x8a71bcc8	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x8d2dc3d8	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x90196e7d	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x957431c2	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x95b89050	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0xb060b93c	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0xb6e61cab	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xbf8abf88	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xc3a4e3bc	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd6db333a	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0xdb77abf6	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xdb98217f	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6b1e55e	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xe732eea7	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xfb1d3205	p9_client_read
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x163be5da	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x5c91eeb7	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x60191b71	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x658141c4	aarp_send_ddp
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x44a8e1ba	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0x495a62fe	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x4a294d2e	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x569e51f0	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x6b9a3871	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x7066d16e	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x9e40e400	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa63c1bbb	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xc5aae3ca	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xd391e929	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0xe1ce6216	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0xe709a815	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0xedc796b0	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xfb249619	atm_charge
+EXPORT_SYMBOL	 net/ax25/ax25 0x09aa2047	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x5446b35c	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xbae28c9d	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xbaffa59d	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0xc07c7df1	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd06b6357	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xd22bdabf	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xec4ceaff	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0467e186	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2080d048	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x225b4015	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2342b345	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2543cf2e	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x26a6adf4	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x296c7fa5	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2c31d8bd	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2ec0251f	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x30ca5997	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x40569724	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x43ce4127	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x50284d34	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x584dae88	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5e5fb56e	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x60dbaa54	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x632c3374	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x659e1e87	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x67810132	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6c2bf9eb	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7177513f	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x77f2bfe0	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x794aca54	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7e571356	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x81accf98	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x87e79ef6	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x89459709	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x90054d08	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa1e1b933	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa2972863	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa3a1d719	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xaf89e9e9	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbd2495fa	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbdc8f69c	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc3885a3f	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcb07b7f8	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd13f6ac8	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd39ec461	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdaa83673	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdd77cafb	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xee207724	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf5ea82df	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfd09b22d	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfffdc582	bt_sock_link
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x32b9aff1	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x8905fc76	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xa8251ffa	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xc70f1d54	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x6854e044	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xa01273af	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xc52f975c	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0xdda10581	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0xe4c1d089	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/can/can 0x472c5dcc	can_send
+EXPORT_SYMBOL	 net/can/can 0x4a13825f	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x4e868dd5	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0x56fca595	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x8ce86504	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0xbac86d1e	can_proto_unregister
+EXPORT_SYMBOL	 net/ceph/libceph 0x016bd6b3	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x01a07784	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x05858140	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x063041c9	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x06a9d0fb	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x086fd3ec	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x090103e5	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x09877c38	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x099424ba	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x09f5be90	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a3c60e0	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a5f0879	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x0d06e1b8	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x0d4cf15e	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x0e67fae8	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x1035fa95	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x1690f8e7	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x181e3717	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cba3f20	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x1e174a8c	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x1f31d638	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x1f77e636	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x231de50b	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x265ec675	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x26e554a8	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x2e67f9e6	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x2e68f3fd	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2f4e1e57	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x317ac0ee	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3389ada6	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x33c85d27	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x3522979c	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x366dd68a	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x39073798	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d0f2a7c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3da258e7	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x3dfdfa0d	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x3fe61ade	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x44891910	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x45044d94	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x455c6d83	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x4572864b	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4cc8c7ed	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x521e7783	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x52d0724a	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x5540aa1e	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x563507dd	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x5677d3ff	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x589db4ed	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5ea709fe	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0x5f8c2926	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x61193a18	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x644b6e50	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x67d866fd	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6e2d92c3	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x6edb8cb7	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5c5f84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x717f658e	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x75644952	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x765ad2db	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e1c6f3d	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e66e62e	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7f380a1b	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x8117add8	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x83071685	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x892d1134	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8934e28d	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ab63ebb	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x8bd5050e	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x8c906cfa	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x8f7fe56c	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x92767610	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x92ae5ca3	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x94ae4ca4	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x95808d94	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x96271943	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x9684b555	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x97a31dc6	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x98751ee5	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bac1cff	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bfef24c	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa13771a6	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1f444ec	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xa3abbc4c	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xa46cf9ac	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa734bac6	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xa8447721	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0xa8989906	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0xa8d0ff7b	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xa9abe30f	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaf2e00e0	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xafbac5b4	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xb468f868	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xb544bdce	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb61de368	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xba463c54	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xbbb58938	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xbfcd5b37	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc20c8ca8	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xc2274c1e	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcea22144	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4e4e418	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd61338d7	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xda854f46	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb70c544	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd189aca	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xddb700b7	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xded4d1fe	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe1d2e53f	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5d95d7f	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe9f6e323	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xf4105210	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xf562aab7	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xfaf9418c	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xffffb86c	ceph_compare_options
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x5f7d7adb	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x79575398	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x3dcd0ab3	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0x479ec076	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x2dd851fb	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x3f94a4e5	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x95452a95	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x962d9d53	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xaf757bbe	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0xf6a13f95	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ipv4/fou 0x02cb1436	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x19741ae4	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x764eb6f2	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xff1adff3	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0x7c39f146	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x23167c85	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x8707973e	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xe3a12c8f	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xeb390fc7	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x17f9d345	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x59fe492a	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x66c14a4c	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xea358640	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x1e170cff	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x7526fd21	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xe8e36c11	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x08313160	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x478edb65	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x3383ac80	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x18f4dc44	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x2cc5a988	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x8250043a	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x8476920f	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x8cbb7f28	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa2e0a982	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa7624116	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf94676f6	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xff464416	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x4ca1f119	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xa534fa00	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xc2a42c3c	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x180cf9d0	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x1a126b8b	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x0cf5c819	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x52516e76	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x8758729b	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xe3c58f1a	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x95668d9e	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x0fcee29d	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x2849ff22	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x2cbf074d	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x32073d17	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x4a9732f2	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x5dc6dae9	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x8d79ca78	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0xa5aa0173	lapb_connect_request
+EXPORT_SYMBOL	 net/llc/llc 0x10a5f188	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x31f216dc	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x3c21b222	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x456045fb	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0x456ec14e	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x83d6ffeb	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xdc079c09	llc_sap_open
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x017c82bf	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x034aaf20	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0891be58	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x09cdc5b2	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0a7e0e43	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0ba192eb	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0c4b6e2d	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0f380f9d	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x100d25fc	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x10ecf2d2	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x11f452e8	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14de0176	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x17f3c06f	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1ccef65c	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x205a1f02	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x20b15331	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x225cf4d3	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x229d496a	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x238fa9c8	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2737af0e	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x28b085a9	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f1800e1	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2f7c4123	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x37ff1f12	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3a7bac58	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x431519ff	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4433f9e2	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x44b235e4	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x467ff6e6	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x47518f02	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x48b82f6a	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x49f2bf6c	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c3766b0	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4dd96049	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x52ef09c2	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x58982d33	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x589c49c3	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5cf7c68d	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5e46c545	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5fc3c13f	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6272d534	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x62ee4b15	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x68fbe049	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6be4c62a	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x76a99e94	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x77eda82a	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x79023d7c	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7fb0825e	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x836c1df0	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8abe1679	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x94ed6cce	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x966c521f	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9a27bd0a	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9a656a7d	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9baa0e28	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa649f119	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xab6a7db6	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xab87eb7e	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xacbbf410	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xad370343	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaffca91f	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb1bbbaf2	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb21932a1	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb2cb25cd	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3bdfb33	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb48b0a0c	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb7b644e3	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb9df69d0	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbaea11d7	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbbc3f6a5	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc4230a29	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc56302b5	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc6e9867e	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcab1ace9	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcc864fb1	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd6ef6513	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd7d7119d	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdb6be7aa	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe22ca312	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe60716bd	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe8dc78ff	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe9dec06e	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xed70a695	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xeda113c8	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xefa4b6fb	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf3acb548	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf42822ff	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf462217f	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf47736a9	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf4d2b6b8	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf4f7e6d5	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfc0d2365	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x03b6d0b8	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x0cebb11e	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x4fb5f598	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x6932c252	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x7d314fb1	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9043d46a	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xceb3d3fe	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf120b7a7	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x0d4bb3c4	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1066462a	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2ad4d800	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2bdb1069	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2d461968	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x2fb10809	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x3eb0d521	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x55290a0c	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x59591e36	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x622f3e8f	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x7a3247ba	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8dbf9c8a	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9f460026	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa472e360	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc0cefae7	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x9d8f9e3a	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0xe5261fed	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x3cc62905	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x4fb8b0c6	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xad26d9fb	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xe1ff741e	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xf1157cfc	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x2ea18a9c	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3d9d6d7b	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x51e295f1	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x58653e93	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa1bf5f06	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xb8aa170d	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xbd321e26	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc131eefa	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfc3e8c05	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x16e47f74	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2f6ca1d5	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x324e8ead	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3aeff34e	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x41e8d020	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x46329841	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x4b08924c	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x56b058ef	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5cc97c64	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x786253a3	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8512c982	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x87f175ac	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x8bc2364d	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x9dde2ff1	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xaddd5c1b	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb9f44564	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbc88e663	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xccd39621	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdf0fc5b1	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf268c5fd	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xfee04f0a	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x08080d8c	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0f9ff288	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x183cf996	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1b291d37	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1d17c407	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3484a8a5	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3711aa30	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x433d4b5f	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x467d3e71	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4737a11c	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x541c9bcd	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x58509f5f	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x63a35a07	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x676ef931	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x67f9e492	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7dd426e3	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x823ea4ed	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8ea08aa9	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9504165e	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x96ee45ad	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9b8ef376	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9bd1c229	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xaf2c7a9c	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb80c3fa1	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba8e1ba4	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xcdcd8f45	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe045a0a8	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf46f8d0b	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf995ba65	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nfc 0x01cd8ddf	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x04c14cb1	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0x23ff5338	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x2fceafc2	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x405a70ec	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x4b76168d	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0x4fe917f5	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x65751752	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x6be1eb0f	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x6f54b650	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x74d8162e	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x8035ac23	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x8a8a0764	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x8eb46604	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x90f9c962	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x94a1b6ac	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xa26bacff	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xa9f7781f	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0xbb67486b	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0xe18f5be9	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xe2b1d479	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0xecb85ac3	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0xecfdc538	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xefe283b9	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xf64907db	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x42312386	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xa8c9aeed	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xc780d429	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xc9f28039	nfc_digital_free_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x0915c5b1	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0x2d983dbd	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x4f08c24c	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x4f1ce715	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x8e3619f6	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xccb7b6c9	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xf5e0f240	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0xf5f7cc06	phonet_stream_ops
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0200323e	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x180560b2	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1b282109	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x307f492d	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3e2efe3a	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4ff3b928	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x62dccd9a	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x757cef50	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8a56a25b	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x949bcf7e	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x963821d0	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb0a2801d	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xbf3884de	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd154589c	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd7742e97	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xde0c9712	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe0af74c3	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/sctp/sctp 0xb63b1d2d	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x2836d125	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xf296bec4	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xf8501f8a	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x8bd866cf	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xa56a317c	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xda1d300d	svc_pool_stats_open
+EXPORT_SYMBOL	 net/tipc/tipc 0x0f2c8db9	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0x29a91ea7	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0x3f9a909f	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x86ecdd9d	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tls/tls 0x18bc6f90	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x4943756a	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xe200b7f9	tls_unregister_device
+EXPORT_SYMBOL	 net/wimax/wimax 0x7e83ee50	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0xfa99b239	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x019023aa	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x031e4296	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x047decba	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0689abcd	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x06c2ef5d	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0bf8388d	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0cb086b5	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x108a88b1	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1618c503	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1f437767	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c8773f9	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2de8034b	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x36abad2b	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x372686c9	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38536b36	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38cb594a	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3db01c39	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3de5fd4f	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x41e5228c	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4643a42a	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4842aa2c	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4d3986c5	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5167f853	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x545ad207	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5ed8cc8c	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5f1a1c76	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x632086e1	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63376692	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x64a73919	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x64fc64d4	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x68ef118c	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6a21163a	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x714fbe61	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x788ad8ad	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78c4a746	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7befd40e	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7f6ed106	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x805476a8	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x86492d6a	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x86deb43c	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b24e88f	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b704f08	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8bc7a891	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8bf277ac	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8e612dc3	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x910e86a4	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x91a1a7d7	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x922d096d	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x923c5e88	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x92856a2f	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93fa37ed	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x967063d1	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x96a53b4c	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x96f36697	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9ca448a8	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9da4a5e1	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9dcc64e0	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9e199225	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa3dddc43	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa5061f62	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaaa168ea	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaad56d6b	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaf0b8d42	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb0d6750d	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb102408b	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb1ea489d	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb8ea89e0	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbb801d0b	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc0b7e5e7	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc31156ab	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc4965ea2	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc61681ae	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8a3e561	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8fcf2ee	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc9814f59	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xca46f2d2	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd102efaf	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd5deb115	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd65db73d	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd6f4b301	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd755310f	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7f6f362	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd8e98b96	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xda5f1a43	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdc3d3585	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdced5cf2	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdfbe8c6b	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe074653a	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe14f3c76	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf1b65cc9	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf383872c	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf40a2b54	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfa4a9c67	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfcdf3515	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfcebb782	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xffa4718b	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/lib80211 0x1be18721	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 net/wireless/lib80211 0x5a7e8e71	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x76091e89	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x8cf07492	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xaa3876ec	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xb66cb59b	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x393a815c	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x61d34b7a	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xd90fdc42	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xde5fbd42	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xec4d3f33	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1724fb56	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x17fcf66b	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1cff6e14	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2f853c43	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5f7f98	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x56efbc6b	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdaf3383a	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0xf3feb38e	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x828acf8f	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0617b0f5	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x384d4bf7	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x3e7c6681	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x443461ac	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x58bd2558	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5965c894	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x75189f05	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x83eaa8c1	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x898d7380	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x99b791b7	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa5b3715b	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xac30d181	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xb66ad55f	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xb77f72a6	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc97c4fc8	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd953c18a	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xda0c121b	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe36b6e9e	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf00d714f	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfdb8b10a	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x3168ff91	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xdcf4c926	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x418cecaa	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x4a4ff4e7	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5c605a09	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x601effa3	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x61c95fa3	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x70a6d75f	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x85d06a1b	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd6617dc9	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xda60375e	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x50fa6e58	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x532e2578	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x5e7fe8e6	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xa5c47c1f	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xc820cfaa	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd09eb514	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xe628f406	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xed3fbdb6	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf4fe6db6	snd_vx_create
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0a8ef09c	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x11855b43	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1277b673	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1458baef	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1cb669fc	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x247c235b	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2a625a7c	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2b4d2991	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3773d556	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3c413d93	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x42b80989	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x49d72d6b	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4b9008bb	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca9775	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x55455167	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x643d2ab4	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6e80b4fe	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7a405b2a	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x827e0b9f	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x8ab2c85d	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x90a5adef	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa6c3a005	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa97aa077	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb21084cd	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbd0a6eda	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xce11dec9	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe9b75e91	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeac72d59	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xeef0f775	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xef13f3b9	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf053ff2f	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xf7251531	cmp_connection_update
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xb7f34475	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xbc274992	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x1f5bf459	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x2899b633	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x893d990b	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x8f3c3b27	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x9534d6ec	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xb4a9b62b	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcb6c398a	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xd33605e2	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x28b282ca	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x2a93b0c5	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x489817f8	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xa74ea7c0	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x5ad521d7	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x9252612d	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x043df08f	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x5d36e01f	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x85e2b4d8	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xa9fc6cf3	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xb0b4350e	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xd5fd66f6	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x02e9d6ad	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x05a9e623	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x083872d5	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1c915e05	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x25b7371f	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x287e0578	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x4b605179	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x66d81f92	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x6f0473b5	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7837b5f4	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7f187171	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x8441f0ce	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa5389c5f	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb3da833c	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xbf7722e9	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe865b577	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xfdf5be38	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x84a2d5c5	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb673d064	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xee708f09	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x19bf6a7c	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1e65dded	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3e597c93	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x46bf25e5	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x494daea3	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x4edc9696	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x5ae11258	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x66fc4db1	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6adf3275	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6e908251	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x705e8e92	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb2dc8f9a	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb875c39a	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb91ea458	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xc0a353b4	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xcac1f98a	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdb86111e	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdc24a44c	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xe44df8a7	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xecd6d025	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xf84bc9ce	oxygen_write_uart
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x4f220dfe	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x9018c481	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x55232dbc	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x6b6410b5	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x0d0fb9a1	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x6c713b88	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x9f3a0a1b	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/fsl/snd-soc-fsl-utils 0x5e07cfe2	fsl_asoc_get_dma_channel
+EXPORT_SYMBOL	 sound/soc/qcom/snd-soc-qcom-common 0x74430769	qcom_snd_parse_of
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x039143fd	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0a5ee119	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0f867ceb	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1ec73a37	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x255c5f77	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2a8a73cc	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3e93ba8f	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x407312b0	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4ae5cfb1	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x518bfea3	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x572c707e	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x58491280	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6b8dc3a3	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7821d685	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x83a8c433	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8617979a	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x870d0c3d	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x87e2b770	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x89b0f66b	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8bff62eb	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9103a144	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9906aa56	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9a92815b	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa001e8fc	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa0c9857e	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xa357850b	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xaaf0c046	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xabf4f61a	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xad055b2c	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb29f4fd4	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb2f08ff4	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb41ad164	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbd112f0a	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbec4d5ed	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc1c9a089	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc552015d	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc59a7a3f	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd0060b16	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd1baa62e	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe0579515	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe56db9f3	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe7896ccf	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe7dcea3e	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xead9f1ac	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xef468995	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf5a34e3b	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfc338b5c	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x255e0d31	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x00116f2d	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x001ee95a	imx_ssi_fiq_base
+EXPORT_SYMBOL	 vmlinux 0x002f93ba	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x004d52b9	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x006a4de5	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x00aee91f	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x00b62036	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x00bd8c6b	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x00d29a78	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x00d35954	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00fd57d0	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x00fec856	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01017769	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL	 vmlinux 0x0114ea81	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x011a9e53	elf_hwcap2
+EXPORT_SYMBOL	 vmlinux 0x01215b94	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x0137053d	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0x014e53a9	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x01505d85	imx_scu_call_rpc
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015c519d	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x016023d0	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x0169a788	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017633f9	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x01830813	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01841866	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x0184475d	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x018d7a33	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x019ec146	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x01a3d310	omap_set_dma_channel_mode
+EXPORT_SYMBOL	 vmlinux 0x01c72108	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x01cf913b	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x01e1f532	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x01f64b22	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x02079357	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL	 vmlinux 0x021a5d76	elm_decode_bch_error_page
+EXPORT_SYMBOL	 vmlinux 0x021eb5ef	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x02235ded	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x022569cd	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x0238c997	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x023e911e	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0x023fff9e	mtd_concat_destroy
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x025663e6	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02788b32	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x027cbccc	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x028152cb	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x02971ecf	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a6b886	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x02ba3f3d	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x02d275a1	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x02df2fe9	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x02df50b0	jiffies
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x0306db37	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x03278d84	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x0334795d	icst307_s2div
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x0344288e	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x03445367	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x03556d02	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x0356e04e	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x0358e353	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036e84c8	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x0378ebbf	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037f430a	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x0380fd76	tegra_ivc_read_get_next_frame
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x03888104	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x038ed8e6	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x038f79e2	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x03960421	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x039f2e3f	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x03a50c53	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x03ba39b0	v7_flush_user_cache_all
+EXPORT_SYMBOL	 vmlinux 0x03d874ff	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x03df8615	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x04198c1f	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x042685d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x0443e3d6	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044fb722	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x0456d022	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 vmlinux 0x04912486	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x04923579	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x04929236	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x0493996f	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x04ae0988	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x04bd5f3e	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0x04bdfb5f	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x04c6b4c3	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04fcbd9c	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x0500b630	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x0508088e	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x05620a3f	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x056d5407	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x0572aa0f	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x05859cb2	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x058895c1	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x058ab93d	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x058cb14c	nand_read_oob_std
+EXPORT_SYMBOL	 vmlinux 0x05ac6ed6	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x05b0caa0	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x05b25ae7	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05c36c7a	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x05ca18a2	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x05cb6b08	proto_register
+EXPORT_SYMBOL	 vmlinux 0x05e13eb9	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x05e68a6b	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x05e7806d	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x05f32b9e	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x05f4c61e	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061b94de	d_drop
+EXPORT_SYMBOL	 vmlinux 0x062d6a96	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x063ebb6c	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x065a92cf	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x0667bea6	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x06724b38	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x06795423	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x067ea780	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x069a8f85	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x069d7681	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x06a11191	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x06bc833d	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06d1bf7b	snd_timer_global_register
+EXPORT_SYMBOL	 vmlinux 0x06ddb646	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0x0705c149	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x0706353c	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0x0729771f	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x072a8f8d	__set_fiq_regs
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x075a2c33	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x075ac0b7	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0x075ffe66	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x076f3ebe	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x077af67c	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x07841f21	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07c197aa	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x07c75cd2	register_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07e2c085	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x07f13389	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x08035700	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08202d62	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x0825cc96	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x08262ccf	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x082b0b2a	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x08345d95	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x0839b255	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x083c9366	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x084d2b56	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x0856a1f7	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x086253a7	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x08690bbf	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x088330b7	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x08861fdc	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x08877bfb	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x08883515	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x0896845f	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x08c4fd32	omap_disable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x08c6f86e	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0x08d05b21	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x08e39398	cmd_db_read_addr
+EXPORT_SYMBOL	 vmlinux 0x08e7dc10	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x091b587e	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x09441758	filp_close
+EXPORT_SYMBOL	 vmlinux 0x09442a04	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x094eb4d9	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x0960385a	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x09628f07	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x099047f3	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x09a61d1f	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x09a91cdb	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x09ad85a1	sort_r
+EXPORT_SYMBOL	 vmlinux 0x09c4b0fc	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09cc1535	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09dca63a	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x09dcb131	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x09f07bfc	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x09f1b139	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a0e03f2	get_acl
+EXPORT_SYMBOL	 vmlinux 0x0a19ade5	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0x0a20d621	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2c3fb2	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL	 vmlinux 0x0a4133b8	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0x0a4acf2b	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0a4ef43c	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x0a59f01f	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x0a608515	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x0a677f36	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x0a974d82	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0a9908c0	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x0aa09d79	omap_vrfb_map_angle
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa51ae0	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x0aa92814	key_validate
+EXPORT_SYMBOL	 vmlinux 0x0ab4ab2d	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0x0abf8084	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x0accb324	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad27f02	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x0ad438ea	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x0ae547ed	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x0ae55fba	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x0ae95eab	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x0b1b939e	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b2b8b9e	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x0b40d7cf	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0x0b617520	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x0b709411	omap_vrfb_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b96f02a	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x0bad1a1a	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x0bb57dbd	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bd2e4f2	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x0be68138	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c2860af	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0x0c413096	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c747290	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x0c7b404d	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x0c8c3b52	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x0c942be0	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x0c95338b	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x0ca38a89	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x0ca54fee	_test_and_set_bit
+EXPORT_SYMBOL	 vmlinux 0x0cb5eae1	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0ccd4a3f	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x0ce62d0d	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x0cee3630	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0cf71818	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d223ad7	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d5b814f	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d638720	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x0d82bfcb	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x0d9222f7	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x0d95e030	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x0d9f6f01	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x0dba5e9a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x0dc1a78c	bin2hex
+EXPORT_SYMBOL	 vmlinux 0x0dda66df	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x0dddd645	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x0dde603d	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1c8804	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0e2fd007	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x0e4dd65b	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x0e52d6e5	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x0e5c75c3	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x0e5ea74e	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x0e6b49aa	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x0e79389c	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x0e833590	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x0e84977a	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x0e8aee6b	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x0eadddf6	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0edc2c3e	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x0ededcc2	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x0ee4bef3	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x0ee760df	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x0eea0399	strscpy
+EXPORT_SYMBOL	 vmlinux 0x0efbb6ae	proc_create
+EXPORT_SYMBOL	 vmlinux 0x0f06957f	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f0c5175	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0x0f0e065d	cpu_tlb
+EXPORT_SYMBOL	 vmlinux 0x0f0f4907	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x0f2b6130	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x0f5754e9	get_super
+EXPORT_SYMBOL	 vmlinux 0x0f5afc43	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x0f72bf5d	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x0f83633a	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f8dde4f	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0faf8e7d	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fb880f7	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x0fcb05fe	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0x0fccd16c	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fda2575	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x0fe584d0	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x0ff0ddda	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL	 vmlinux 0x0ff1bb4a	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x0ff68ad6	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x10009711	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x10018cb0	__pv_offset
+EXPORT_SYMBOL	 vmlinux 0x10060bdc	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x1010e3d6	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x10231046	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x1030b972	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x10314126	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x1038f879	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0x1061c741	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106f13ab	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x10709a12	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x1070b16a	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x10739f1e	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x10827c05	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x1085d5ee	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x109d0eca	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0x10aab51a	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10f8772b	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x110d94e7	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x11161fed	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x1117976e	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x113b1e13	km_report
+EXPORT_SYMBOL	 vmlinux 0x115054da	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x115ea4cf	__put_page
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x11678126	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x116b0724	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x11986241	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x119b50e7	elf_check_arch
+EXPORT_SYMBOL	 vmlinux 0x119eb468	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x11c0db3d	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x11c7f976	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11ec0f24	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x121680ed	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x1236ef06	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x126c385f	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x12701841	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x12903615	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12c3a441	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0x12c9f8d9	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12dd16c1	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x12eae94a	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x12ef07ab	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x12ef75d1	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x12f19edf	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x13093846	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x130b4e85	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x1310ea13	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x131b0973	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x1329e30d	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x132f82c2	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x132fdb8f	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x13320fc5	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x1339c1dc	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x13430d68	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x134be57e	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x137513cd	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x1397a5c3	sk_capable
+EXPORT_SYMBOL	 vmlinux 0x13a943aa	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b499de	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x13c04aee	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x13c4c87a	snd_register_oss_device
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13edd472	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x14011680	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0x1409222f	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x14124902	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x14284023	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x142f7298	single_open
+EXPORT_SYMBOL	 vmlinux 0x14437999	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0x14528c99	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x145c7d38	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x147ea897	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x1498004e	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x149a01bf	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x14aea2f6	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0x14d2ee8b	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL	 vmlinux 0x14dcf1e3	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x14e140ff	build_skb
+EXPORT_SYMBOL	 vmlinux 0x14e668ef	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x1504a60b	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x15119208	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x1531c752	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x153c4ce6	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x153dad4d	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x154a06b8	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x1553c0ac	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x15540255	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x155bfba1	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x156e058c	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x157dcd4f	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x15982731	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x15b40249	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x15b5201f	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 vmlinux 0x15b80804	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15bf9a55	user_path_create
+EXPORT_SYMBOL	 vmlinux 0x15c5d130	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x15d433c0	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x15e0fc7d	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x15f69f8f	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x160def3d	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x162a6b91	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x16372266	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x163d2417	tegra_io_rail_power_off
+EXPORT_SYMBOL	 vmlinux 0x16525cc4	xa_find
+EXPORT_SYMBOL	 vmlinux 0x166ac381	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0x1690dce4	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x16af45c0	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x16b30d84	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16e72c41	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x16ec962c	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x16ee9b2c	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x16f5464a	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x1703a1fe	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x17141fef	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x171e4512	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x172d060d	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x172dc528	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x1738c19e	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x17755394	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x178658b5	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x1786d1f3	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0x17993ce0	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0x179ee51d	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x17bd026e	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 vmlinux 0x17be8cdf	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x17d71080	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x17dc19f9	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x17ec05aa	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 vmlinux 0x18158bdc	snd_pcm_release_substream
+EXPORT_SYMBOL	 vmlinux 0x181d64d5	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x181f2923	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x1822ea6f	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x18270619	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x183d8041	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x183e9d8a	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x185c32cf	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x185dd4f2	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x18849637	bio_put
+EXPORT_SYMBOL	 vmlinux 0x188d753f	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189c5980	arm_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x189e6143	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x18a05e48	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x18c8f984	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x18ce3abc	snd_jack_new
+EXPORT_SYMBOL	 vmlinux 0x18cf6f45	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x18d751e9	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18f4dfaf	fput
+EXPORT_SYMBOL	 vmlinux 0x18fc76b3	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x190510fc	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x19060ec3	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x1927eafc	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x193c15a6	snd_pcm_mmap_data
+EXPORT_SYMBOL	 vmlinux 0x193f69a2	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x195d4ac9	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x196ca7f4	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x197dc3b3	omap_set_dma_src_burst_mode
+EXPORT_SYMBOL	 vmlinux 0x1982480e	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 vmlinux 0x198a4cd9	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x199ed2ba	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x19a6695b	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19cb8fe1	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x1a015c32	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x1a125b98	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x1a139a0e	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x1a14878d	snd_pcm_hw_refine
+EXPORT_SYMBOL	 vmlinux 0x1a172c4a	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x1a20c540	omap_vrfb_supported
+EXPORT_SYMBOL	 vmlinux 0x1a21d691	__ksize
+EXPORT_SYMBOL	 vmlinux 0x1a2e6883	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x1a41bd13	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x1a474b48	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x1a51c881	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x1a544976	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x1a6410eb	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL	 vmlinux 0x1a7119b4	__brelse
+EXPORT_SYMBOL	 vmlinux 0x1a7bc9ef	xxh32
+EXPORT_SYMBOL	 vmlinux 0x1a7ce821	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a95d6eb	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa78b6f	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x1aa79d59	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x1aa86d18	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x1ab6e4f8	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x1aca3752	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x1ad1f2e7	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x1ada745c	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x1aded990	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b17bd88	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x1b1a8d89	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x1b25f187	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x1b262fee	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x1b3ca2d1	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x1b4e9946	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x1b5326a2	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x1b5c0d11	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b7375a6	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b99efea	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x1bb560d0	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x1bc4c2a5	kobject_put
+EXPORT_SYMBOL	 vmlinux 0x1bcd3c55	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x1bd6ace5	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x1bde0c88	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x1c06f3b0	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x1c1c1337	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0x1c26cee9	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x1c2743d3	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x1c320d78	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x1c37ec39	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x1c3ba2c6	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x1c5b1ce6	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x1c5e3878	icst525_idx2s
+EXPORT_SYMBOL	 vmlinux 0x1c61a2cd	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x1c777c5c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x1c7854b3	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x1c7e5cee	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x1c969f81	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x1caf4c2b	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cbb3640	serio_close
+EXPORT_SYMBOL	 vmlinux 0x1ccd1cf8	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x1ccf88f6	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x1ce3810b	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x1ceda0a9	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 vmlinux 0x1d0b258f	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x1d104d7f	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0x1d1d35fd	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x1d217a00	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0x1d21cc7a	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x1d22c59a	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d380da2	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x1d3e70b5	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x1d43c5c7	sock_release
+EXPORT_SYMBOL	 vmlinux 0x1d6a6473	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x1d6b1407	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x1d6d8130	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x1da41523	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x1dabc548	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0x1db04e2d	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x1db53777	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x1dc498a9	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de0d17f	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x1de185e5	fget
+EXPORT_SYMBOL	 vmlinux 0x1de22862	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x1e0373fc	imx_scu_irq_group_enable
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e64820d	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x1e6c8db5	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e6dbe9b	snd_timer_resolution
+EXPORT_SYMBOL	 vmlinux 0x1e71beb1	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x1e8094d9	key_put
+EXPORT_SYMBOL	 vmlinux 0x1e96f43d	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x1e97a728	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea656a4	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb48173	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x1eb64646	div64_s64
+EXPORT_SYMBOL	 vmlinux 0x1ec9e7a3	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ee1a5e4	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x1ee1b32e	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x1ef12d57	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0x1efba651	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x1f0fdb5a	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x1f3bc3b2	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0x1f3c1a2e	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x1f525db4	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x1f6e4fde	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x1f7b484b	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x1f83f2cd	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0x1f90fd1e	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x1f91f392	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x1f9a176f	init_net
+EXPORT_SYMBOL	 vmlinux 0x1f9e84cb	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x1f9ec9b5	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x1facbc55	ihold
+EXPORT_SYMBOL	 vmlinux 0x1fbb6348	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fca7f61	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x1fce0fcd	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fe4f0d8	get_mem_type
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff1e9cf	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200036a3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x2002e6f0	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x20070ea2	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x20091136	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x200b11fb	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x200dc346	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x20341016	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x2081f1d3	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x20846110	down_killable
+EXPORT_SYMBOL	 vmlinux 0x20943ab2	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x20a03252	input_event
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20da0618	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x20f31831	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x21110dbf	mmioset
+EXPORT_SYMBOL	 vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL	 vmlinux 0x211ee9bc	qcom_scm_assign_mem
+EXPORT_SYMBOL	 vmlinux 0x212133db	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0x2127057d	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x212d3829	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x213f077d	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x21513675	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x215773ba	kmap_atomic
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x216b96a9	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x216d759a	mmiocpy
+EXPORT_SYMBOL	 vmlinux 0x217c2800	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x218247bc	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x218ab764	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x219d6ab6	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21c0ddb4	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21f7eb8f	claim_fiq
+EXPORT_SYMBOL	 vmlinux 0x221a7d7a	filp_open
+EXPORT_SYMBOL	 vmlinux 0x221f0f24	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x222f6088	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x2230cef0	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x223c9b1e	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x2257c71f	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x2275eb12	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x2277d558	mx53_revision
+EXPORT_SYMBOL	 vmlinux 0x2279bd54	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0x227d9dc8	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x229499b1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22b8756e	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x22e643a2	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x22eba74b	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x22eff230	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x22f2fd1c	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x23481eda	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x2353b4e4	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0x235d56f2	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x2360df54	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x23619cff	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x2363cc4f	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x23773344	console_start
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x239ee8e7	snd_pcm_suspend_all
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23bbdeed	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x23c17160	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x23d6cdaf	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x23eb6ebb	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x23eea787	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x23f9c5ce	xps_needed
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x240ba10e	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x241621d9	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x241cc032	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x242141f8	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x243c5ac3	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x246790df	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x246ea205	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x24830e1c	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x2485c091	kmap_high
+EXPORT_SYMBOL	 vmlinux 0x249315ca	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x24968f95	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 vmlinux 0x24b24f0a	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x24b97378	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24d60d22	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x24ebdb42	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x24f1638b	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 vmlinux 0x24f4093e	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x250113b4	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x2517f3b2	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x253919f3	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x2544f221	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x25543dab	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257662db	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x257aa9b1	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x257ae45c	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x257de011	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x25892cdc	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x2593fee6	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x2597bc79	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x25a574ae	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x25ba6f9d	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x25d3084d	snd_pcm_new_stream
+EXPORT_SYMBOL	 vmlinux 0x25d37e5a	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x25e61c62	snd_timer_new
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25f19559	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x25f50fc2	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x260e5957	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x2610aa9e	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x2614cc63	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x263b2c15	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x26439c65	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0x264477c3	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x2690e6c1	_find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0x269219b1	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x26a12d31	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x26a19943	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x26a4b24d	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x26af2774	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x26b31fc0	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x26b6a1f2	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0x26ec5128	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x27060cc0	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x270969db	snd_ctl_add
+EXPORT_SYMBOL	 vmlinux 0x270ac400	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x271122c3	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x2720c59f	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273cc280	snd_component_add
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x2762d638	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x276377d5	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x2776055e	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x277886bf	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x278da03a	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x279206d1	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x2797ee65	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0x279a83ca	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x27a0f5a6	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c68705	node_states
+EXPORT_SYMBOL	 vmlinux 0x27f2754c	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x27f86e01	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x27fa2eeb	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x2833821d	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x28448c7c	dst_release
+EXPORT_SYMBOL	 vmlinux 0x284d1f24	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x2870a755	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x2878e15a	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x28829811	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x288d8f8a	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x28abc46a	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x28af9e29	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x28b260e9	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x28c23ee7	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x28e5ca05	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x28e80c37	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x28f99c0f	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x28fd6a81	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2916a5c1	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x291e0a07	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x2985ecfe	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x29878724	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x298bd364	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x298be68f	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x299248d8	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x2992c173	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x29a47fe9	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x29b22fb2	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x29cf13c1	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x29d9f26e	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x2a0ae46d	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x2a16e9d7	mntget
+EXPORT_SYMBOL	 vmlinux 0x2a1e70ab	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a3aa678	_test_and_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x2a5f64c4	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x2a60f889	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x2a6cab5d	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x2a773897	nand_scan_with_ids
+EXPORT_SYMBOL	 vmlinux 0x2a796e83	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x2a83c1fd	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x2aa64051	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0x2aac142f	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x2acfa402	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2ad287ab	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x2b181e08	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x2b1b37c7	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x2b3dc86a	snd_card_register
+EXPORT_SYMBOL	 vmlinux 0x2b5ab97d	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b68cfa8	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x2b99722a	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x2b9c7db3	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2bb33077	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0x2bc8b96b	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0x2be2945a	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x2bf2c5b0	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x2bff5887	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x2c14323a	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x2c220709	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c329e54	tegra_powergate_sequence_power_up
+EXPORT_SYMBOL	 vmlinux 0x2c37555a	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x2c3a56c9	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x2c3c0303	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x2c506abb	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x2c51d70a	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x2c5b689a	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x2c6b6974	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x2c70894b	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x2c7c8e9a	pcibios_min_mem
+EXPORT_SYMBOL	 vmlinux 0x2c81ec75	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c945a33	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x2c9d3756	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x2caaac0a	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x2cb782bd	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x2cbf704b	snd_card_disconnect
+EXPORT_SYMBOL	 vmlinux 0x2cfde9a2	warn_slowpath_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d2014f7	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x2d2354af	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x2d2df7bb	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d49c1b8	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d58ef43	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x2d62d7f5	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x2d6eac5a	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x2d6fcc06	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2d8dc9ca	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d92c50c	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da1a358	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x2da81bff	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x2db15732	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0x2db35598	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x2dbb75c8	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x2dcb3eb2	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x2dcc810c	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0x2dcfc6ab	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x2dd0f823	pid_task
+EXPORT_SYMBOL	 vmlinux 0x2dec67cd	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x2df736e4	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x2dfe9fa4	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x2e090520	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e48261e	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x2e4ecd9d	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x2e54e5b7	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x2e5e4173	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x2e88da24	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x2e8bccbc	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x2e8c16a0	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x2ebba1ee	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x2ec0b309	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x2ec49c2c	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ec9e545	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0x2ecad5a2	dqput
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f07343b	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x2f1b0d62	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2f1cb80f	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f333aab	imx_scu_get_handle
+EXPORT_SYMBOL	 vmlinux 0x2f50cbf5	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f5b0fdb	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2f6ea6d2	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x2f7377a6	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x2f846400	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x2f854d12	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x2f89731c	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x2f956586	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0x2f97d372	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x2fa41ac0	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x2faac2a4	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x2fd81f74	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x3006add8	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x30275bfb	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x305a368f	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x30618658	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x306c3f72	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x307938d7	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x30897a6f	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x308d5aaa	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x30956cd7	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a4a233	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30bb2123	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x30bdc78c	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x30c36f75	seq_write
+EXPORT_SYMBOL	 vmlinux 0x30c852ff	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x30d51e2e	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0x30d9a471	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x30e11a72	release_and_free_resource
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30f25a4d	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310917fe	sort
+EXPORT_SYMBOL	 vmlinux 0x310d741a	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x3144fc5c	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314b20c8	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x3184f597	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x31867529	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0x31891e4c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x31a4767f	qcom_scm_hdcp_available
+EXPORT_SYMBOL	 vmlinux 0x31b06531	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31c34659	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x31da6bf0	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x31e06a6c	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x31e0e645	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x31e7f75f	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL	 vmlinux 0x31f62063	load_nls
+EXPORT_SYMBOL	 vmlinux 0x32001389	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x321fc401	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x32430023	_totalhigh_pages
+EXPORT_SYMBOL	 vmlinux 0x3248cbf4	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x3252d54d	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0x3262ff13	d_move
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283565c	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL	 vmlinux 0x329774e9	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x32a2006c	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x32b06cbf	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x32b18f9d	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x32b2091a	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x32b93d4d	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x32ba0d40	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x32c71c0d	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x32cc327f	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32f3a911	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x330accdb	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x33181b07	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x332f7929	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x33335d5e	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x33776350	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x33b14ec7	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x33cc8ca3	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x33d40b2a	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x3409872f	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x340ddebf	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x343e8d28	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x3442f461	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x3447f767	of_get_ddr_timings
+EXPORT_SYMBOL	 vmlinux 0x3455970e	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x345ab2e1	module_layout
+EXPORT_SYMBOL	 vmlinux 0x3463b555	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x346ea3d9	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x3471bf23	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x3479f9d0	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x347e6f9c	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x34832302	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x349b4277	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a04d71	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x34b6ad0a	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x34bb7154	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x3503cffe	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x350cbf0e	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x350d9b2c	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x351957a0	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x352c05d9	release_resource
+EXPORT_SYMBOL	 vmlinux 0x35305240	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x353e3fa5	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x355d09d2	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x3560e651	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x35696cb2	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35add8f4	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x35bc766f	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0x35c66df7	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x35d3a24f	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x35dac914	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x35ea78f5	atomic_io_modify_relaxed
+EXPORT_SYMBOL	 vmlinux 0x36003c37	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x3612c10f	tmio_core_mmc_enable
+EXPORT_SYMBOL	 vmlinux 0x361d5421	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x36268cbc	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x36486762	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x36588e6a	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x36722364	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x368a45d1	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x369a2bcb	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x36a2a9d4	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x36a3bf62	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x36ad1318	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x36d69557	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x36f9b49e	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x3714efb7	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x3719c69b	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x3721c860	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x37368be1	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3747c0ff	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x374b47eb	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x3760013f	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x376a629b	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x3781aa3b	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x3787e926	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37bd3f93	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x37bdb9c0	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c5971d	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x37cc0f3d	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37f614b7	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x380251e7	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 vmlinux 0x3815a4cd	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x38171d74	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x381d0306	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x381e67a9	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x3821ef72	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x3837479b	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0x3842b3a6	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x3852757a	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x385dd409	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x38624ca8	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x3869bc63	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x386d9ce9	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388f4134	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389acf0c	gpmc_configure
+EXPORT_SYMBOL	 vmlinux 0x389ecf9e	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38bc517a	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x38befaf5	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x38c22c55	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x38d363d9	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x38d698d0	tegra_ivc_reset
+EXPORT_SYMBOL	 vmlinux 0x38d8e220	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x38d98a10	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x38f75f17	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x39334f0a	release_pages
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39455117	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3966aa5e	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 vmlinux 0x3992bc63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399f8708	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x39a12ca7	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 vmlinux 0x39c602d7	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x39c717e3	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x39c88fd5	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x39d0cdff	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x39e1e781	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x39e35070	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x39e480b3	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x39e92cee	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x3a0dc5ef	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x3a11a4ba	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x3a1b6e07	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x3a2d058b	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x3a370f27	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a55ac57	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x3a7ad656	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x3a7b3832	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x3a7eaf1b	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3aca7e08	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x3ad6fd8e	krait_get_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0x3adbf7fc	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x3ae210e1	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0x3ae9fbc4	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x3b299067	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x3b34ab33	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b697738	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x3b6c50c4	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x3b71bda9	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x3b8dcc9d	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x3b917bbf	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x3ba9f070	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x3bb723ef	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL	 vmlinux 0x3bbf79f8	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x3bd485fd	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x3be0ca82	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c0be285	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x3c0c59f7	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c305749	from_kuid
+EXPORT_SYMBOL	 vmlinux 0x3c339358	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x3c3908b8	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c50262d	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x3c57a7fc	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c8c3d48	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x3cc5d628	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x3ccecdfe	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x3ccfb0e2	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x3cd75430	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x3cd8b4b7	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x3cd8c8af	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3cf32b57	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x3d0cc4e1	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x3d283265	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL	 vmlinux 0x3d3d377a	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x3d43e668	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x3d52fb7f	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d6b0a31	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x3daaa0be	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x3dbd05c0	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x3dc7bd1c	console_stop
+EXPORT_SYMBOL	 vmlinux 0x3dcb55b8	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dcf1ffa	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3dd878a0	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x3ddeae71	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x3df4e86b	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dfe74ab	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x3e00639f	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x3e0d625d	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x3e25b553	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e31f94f	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x3e5400f8	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x3e59f0ba	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x3e5ca783	update_region
+EXPORT_SYMBOL	 vmlinux 0x3e72094b	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x3e8297a3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x3e82f3e9	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x3e8f137d	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ea86f7a	logfc
+EXPORT_SYMBOL	 vmlinux 0x3ed104a5	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x3ee34588	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x3efaff12	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f109e1d	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x3f1bea29	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0x3f3bcd56	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x3f4345ce	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x3f44a471	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4af46f	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f4fb8d1	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x3f62d048	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x3f75554d	cpu_user
+EXPORT_SYMBOL	 vmlinux 0x3f79eca9	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x3f7ff273	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3f88c8ae	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f8e1539	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 vmlinux 0x3f922f2c	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x3fa07ccd	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x3faab257	snd_card_file_add
+EXPORT_SYMBOL	 vmlinux 0x3fbef051	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x3fc9598a	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fea538c	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3ffa7113	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x40227343	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x402e8bb7	audit_log
+EXPORT_SYMBOL	 vmlinux 0x40371d36	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x403a93e7	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x4044e1f2	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x40464977	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4052cb35	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x40576999	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x40661118	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0x407a3275	omap_start_dma
+EXPORT_SYMBOL	 vmlinux 0x408a6dd8	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b51c05	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x40c56913	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40cba0c8	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d402ad	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x40d522a5	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40dfce7b	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL	 vmlinux 0x40f3dc94	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x4105339f	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x410cfcd7	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x4120636f	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x412280a3	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x412905bb	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414975dd	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x415b5cb9	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418a5367	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x41b0a002	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x41ba6910	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x41bb84fc	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x41cf91ef	seq_release
+EXPORT_SYMBOL	 vmlinux 0x41f77965	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x4211b36b	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x421ca215	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x42383b13	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0x423ddef9	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x42411fc3	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x4242c309	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424c9295	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x4253aa7e	down_write
+EXPORT_SYMBOL	 vmlinux 0x42604384	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x426d66fa	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x4285f049	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x428f7097	arp_send
+EXPORT_SYMBOL	 vmlinux 0x4295c78b	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x4298b775	v7_flush_kern_cache_all
+EXPORT_SYMBOL	 vmlinux 0x42bae87d	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x42bd968b	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x42be718e	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x42c420cc	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x42da8d80	mem_map
+EXPORT_SYMBOL	 vmlinux 0x42e46a4f	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x42e5efd5	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x42f66028	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x42f73a38	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x42f76af8	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43089087	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x430a49d8	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x43207a34	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x432d52d1	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x43380e52	__close_fd
+EXPORT_SYMBOL	 vmlinux 0x433cb4c1	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x43401828	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x436c5c6e	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x437b890e	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x4384eb42	__release_region
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43ad2261	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x43db286c	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x43ea6076	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x4403bbd0	imx_sc_misc_set_control
+EXPORT_SYMBOL	 vmlinux 0x44098097	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x440ea539	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 vmlinux 0x44142d0d	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x441b1fdb	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x442495c9	tmio_core_mmc_resume
+EXPORT_SYMBOL	 vmlinux 0x442a587c	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x444cc8ed	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL	 vmlinux 0x4464a5ab	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x4474b865	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x447fb8e9	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x448ababb	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0x448be972	register_sound_special_device
+EXPORT_SYMBOL	 vmlinux 0x449d9a68	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x449feb66	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x44b91922	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x44c9dc6c	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0x44cd38c0	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x44dff0a5	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x45064d9e	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x450d9a35	cmd_db_read_slave_id
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x452c6423	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x455e5f7b	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x4562a134	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x4566d36c	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x457561cc	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x4576988b	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x457eee21	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x458db3d4	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x459eb4f6	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x45bda0d5	system_serial_low
+EXPORT_SYMBOL	 vmlinux 0x45daa413	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x45e0e4bc	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x4624a4a4	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x464c7b1b	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x468241ec	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x4690a4f0	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL	 vmlinux 0x46d4e81b	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x46da2d81	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x46e434b1	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x47193b4d	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x4719f057	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x472b5654	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x473641bb	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0x47382701	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x4756260d	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x475d84ef	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x4769f6fe	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x476e0849	lease_modify
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x4788fcc8	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x478d9b84	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0x479137ca	imx_scu_irq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x4799d59f	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x47b4e429	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x47c56f82	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47e2e6fd	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x47e70229	v7_flush_user_cache_range
+EXPORT_SYMBOL	 vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL	 vmlinux 0x4807b2b1	sk_free
+EXPORT_SYMBOL	 vmlinux 0x4808be54	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x48126f3b	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x481a81da	snd_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x481f80cc	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x48208267	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x4825bfee	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 vmlinux 0x483bf958	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x487e491e	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x4893e92f	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x48940f7d	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x48a35c3e	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x48a5b067	__machine_arch_type
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48a91854	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x48b1ae27	tegra_io_pad_power_enable
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48bb80db	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x48cb057c	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x48e3d09f	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x48f9982d	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x4903ed5d	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x4913aff3	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x492442c5	snd_pcm_stop
+EXPORT_SYMBOL	 vmlinux 0x4926de87	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x492b435d	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0x493a9cd2	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x4943afb9	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x4947d941	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x49534bf7	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x495d867a	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x497b3bfe	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x4981516d	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x498d59e8	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x49970de8	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x49c077ac	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x49d3457a	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x49f26466	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x4a1c1a1d	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x4a32a00d	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x4a37354c	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x4a38614a	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x4a39e5a1	omap_set_dma_src_params
+EXPORT_SYMBOL	 vmlinux 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 vmlinux 0x4a5ff051	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x4a767d96	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4aa74061	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x4ab0f4bc	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x4ab16fb8	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x4ab47580	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x4ad7bc84	snd_pcm_new
+EXPORT_SYMBOL	 vmlinux 0x4ade8b2e	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x4ae8ee66	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x4af6f97d	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b1a04cf	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x4b1dad57	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x4b1ec3e2	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x4b21d95d	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x4b300903	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x4b473ec6	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b567e2e	cqhci_init
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b6c3dcb	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x4b916f86	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x4b933f4d	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x4b935194	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0x4ba8183e	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bb61eaa	arp_create
+EXPORT_SYMBOL	 vmlinux 0x4bd12435	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x4be4d09b	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x4be85a03	memweight
+EXPORT_SYMBOL	 vmlinux 0x4bee51c7	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf55ba0	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x4bf819af	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x4bfdcefa	__memset32
+EXPORT_SYMBOL	 vmlinux 0x4c00f010	cqhci_pltfm_init
+EXPORT_SYMBOL	 vmlinux 0x4c1cca3b	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x4c2ae700	strnstr
+EXPORT_SYMBOL	 vmlinux 0x4c2c4b2d	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c57df61	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x4c8c39e4	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x4c97058f	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x4caada4c	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc2854d	tegra114_clock_assert_dfll_dvco_reset
+EXPORT_SYMBOL	 vmlinux 0x4cdbbe40	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x4cf97b14	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d1cf022	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x4d3548ce	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x4d514485	xa_store
+EXPORT_SYMBOL	 vmlinux 0x4d5ed0b6	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x4d612cab	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x4d633c89	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x4d634803	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x4d7201aa	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d8da154	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x4d948f89	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9b6d35	snd_pcm_format_size
+EXPORT_SYMBOL	 vmlinux 0x4dbd7d25	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x4dc9eeea	bio_init
+EXPORT_SYMBOL	 vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e041380	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x4e05bdec	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4e2877fe	snd_jack_set_parent
+EXPORT_SYMBOL	 vmlinux 0x4e3056a9	kunmap_high
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e36f455	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x4e3dc7f1	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x4e506013	omap_dma_link_lch
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e696dce	skb_put
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e96d0c2	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x4e9767e3	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x4ea9b447	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x4eaa460b	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x4eab8512	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x4eb6c656	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x4ec35ecf	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x4edaa53a	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x4ee0e846	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x4ee45c8b	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x4ee98ebd	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x4f119791	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x4f13b3ef	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f22d6f9	completion_done
+EXPORT_SYMBOL	 vmlinux 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 vmlinux 0x4f89c9de	gpmc_cs_free
+EXPORT_SYMBOL	 vmlinux 0x4f93e108	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x4fa417ce	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4fb9bae6	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x4fc13dae	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x4fd2edb1	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x4fd67dc4	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x4fdc332d	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5023bb6d	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x502b6647	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 vmlinux 0x5040d5dd	tty_name
+EXPORT_SYMBOL	 vmlinux 0x5057e6b3	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50ab16ba	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x50b3809b	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50ba2b52	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50c2bb8a	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d71bcf	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x50e4c342	tegra_ivc_read_advance
+EXPORT_SYMBOL	 vmlinux 0x50eab3dc	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x50ef00ab	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50fd6103	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x5112598d	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x5115e265	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x5119f82b	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x514a2bba	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x514a62ec	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x514cc273	arm_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x51538bfd	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x5164435e	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x517018a2	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0x5181ae72	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x51a698f0	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x51c92918	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x51cdf44e	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x51ce92da	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x51d680d7	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x51f3003b	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x51fd0e3a	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x51fd29cb	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x52021932	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x5203d176	cmd_db_ready
+EXPORT_SYMBOL	 vmlinux 0x521acacd	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x521ebd80	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x522a885a	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x522f4197	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x522fb0e4	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x523e57aa	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x5243e8f1	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x524a8b5d	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x5251c855	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x525403d0	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x525d9dc4	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x525f89dd	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0x5279dc99	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x5279e9e3	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x528c709d	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x52906488	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x529c99ae	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x529e5f91	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x52a87b71	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 vmlinux 0x52ee2b96	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x52f2850a	imx_sc_pm_cpu_start
+EXPORT_SYMBOL	 vmlinux 0x52f29232	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x52f7f324	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x534c0c97	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x536060af	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x53942bc5	set_groups
+EXPORT_SYMBOL	 vmlinux 0x539f3f3e	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x53a6abe5	snd_register_device
+EXPORT_SYMBOL	 vmlinux 0x53c29dbb	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x53c5f44d	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x53d02098	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x53eb2bdd	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x53f963a8	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x53fef174	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x54018e8a	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x540d70d9	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x5420a4a2	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0x5421fa36	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x542f5044	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x543c006d	km_query
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x545af4ae	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0x545b2170	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x54685ab8	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x5473c027	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x54a4fd1b	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54b3baff	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54d2a456	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x54debc2f	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x5511cd24	flush_kernel_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551cae45	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x552d492c	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x5548f28c	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x554ac97b	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x554cce78	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x554cda2d	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x5550080c	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x55523b4b	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x5562e403	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x5566cf7c	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x557f80a3	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x5587a212	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x558a6f58	inet_listen
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x5599f73e	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x55bf4099	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x5607414c	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x56082e98	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x562aac9b	padata_free
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563952a3	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0x5640396e	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x5641bb22	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x564655f0	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x56498087	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x564bfb35	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x564efc50	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x5655a6b5	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 vmlinux 0x565d5d39	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x5667a277	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x566998b8	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x567201bd	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x567aa58e	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x56821504	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x56836485	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x568a2176	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569a257c	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x56b3338b	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x56c77a56	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56c879f9	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x56e94e8e	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x56ed65e7	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x56fa1e60	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x570aacef	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x57191bf6	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x57270436	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x572fced0	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x57346eb7	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x573ded35	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x57458f39	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x577086c8	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x577e9244	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x579b1a66	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x57c11f8c	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x57ceedb1	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x57e387b3	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x57e5170c	qcom_scm_iommu_secure_ptbl_size
+EXPORT_SYMBOL	 vmlinux 0x57ebdaeb	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x57ff23f0	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x58018ac9	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0x5817ec4f	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x581cde4e	up
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x581fb881	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x5822e081	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x5837c580	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x58516557	omap_set_dma_src_data_pack
+EXPORT_SYMBOL	 vmlinux 0x5855b740	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0x586daaed	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5894f9d3	snd_info_create_module_entry
+EXPORT_SYMBOL	 vmlinux 0x5898474f	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b52fe0	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58b82d57	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x58c3a3ef	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x58e153dc	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58fad869	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x59217be6	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x592b5bd9	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x59602775	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x5963843e	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x597a8e25	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x597f96ca	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x59a17bfc	tegra114_clock_tune_cpu_trimmers_high
+EXPORT_SYMBOL	 vmlinux 0x59b1d17c	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x59b7cab6	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x59bed864	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x59d29dab	v7_flush_kern_dcache_area
+EXPORT_SYMBOL	 vmlinux 0x59e1786b	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL	 vmlinux 0x59fc8402	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a14de15	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x5a20338f	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x5a208e5c	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0x5a2c6a93	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x5a35f7b2	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x5a3d648f	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x5a40c2fe	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x5a44985c	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x5a44e149	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a58c0c8	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x5a591ead	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x5a658cac	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x5a6fcbeb	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x5a82975e	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x5aaea7cf	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x5ab47de8	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x5ab4ab34	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x5ad8e68e	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x5ae597cc	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x5b04be5a	disable_fiq
+EXPORT_SYMBOL	 vmlinux 0x5b062284	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b161378	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x5b1b9fec	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5b287a43	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x5b303a44	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b483387	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0x5b637040	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x5b8cb486	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x5bad67ad	snd_unregister_oss_device
+EXPORT_SYMBOL	 vmlinux 0x5badbb78	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5bbe49f4	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x5bc626bb	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x5bc7bf76	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c12dad4	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x5c1c3b86	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x5c1d0f7a	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x5c24fc26	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x5c3f3384	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x5c420842	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c716976	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5c7e13ba	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x5c7f1284	int_sqrt64
+EXPORT_SYMBOL	 vmlinux 0x5c86e2c4	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x5c89b7ad	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x5c8cb68b	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL	 vmlinux 0x5ca2b4b2	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x5ca51aa8	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x5cb4cf8c	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x5cbd8e69	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x5cc1073d	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x5cc28ae4	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x5cca8f41	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x5cd841b4	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x5ce8d328	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x5ce9a942	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5cf30a4a	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d0e4f1d	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x5d1442b1	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x5d249d9d	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5d367846	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5d37d658	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d54093d	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x5d6cddac	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x5d6e4905	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x5d7ab977	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x5d810f97	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0x5da324ef	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x5dba71d7	sg_last
+EXPORT_SYMBOL	 vmlinux 0x5dcf5bf5	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x5dcf6341	outer_cache
+EXPORT_SYMBOL	 vmlinux 0x5de5cca2	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x5dec31c4	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x5e13072c	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x5e20dfc5	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5e22893c	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e38c830	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0x5e485b4e	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x5e6f91f9	tegra_powergate_remove_clamping
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e72e921	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x5e72f758	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 vmlinux 0x5e866d85	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea1bfca	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ebc75b5	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x5ec29705	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x5eced5a8	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed05bf6	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ef79208	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f1cc404	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x5f2889c4	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x5f383996	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x5f545fa3	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL	 vmlinux 0x5f81370e	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x5f849a69	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5fa13b32	can_nice
+EXPORT_SYMBOL	 vmlinux 0x5faa3fc1	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x5fb01358	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fcf3abd	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x5fd63550	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x5fdfed41	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x5fe7cf11	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x5ff11cc3	pcibios_min_io
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601eda55	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL	 vmlinux 0x602d9511	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x603117e3	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x603249d0	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x603286b8	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x60431e66	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x606560b0	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x6069e718	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x606cc63c	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x606d3964	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x60733998	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0x60874227	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x608ef53c	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60a5a522	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x60a93633	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x60b42b14	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x60b97853	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x60bffe6d	div64_u64
+EXPORT_SYMBOL	 vmlinux 0x60c2cba7	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x60c6c0ba	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x60d12aa3	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60fb77ec	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x6121bd54	dql_init
+EXPORT_SYMBOL	 vmlinux 0x612639e7	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x612787bd	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x614552bb	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x614c09f1	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x6156c7f4	net_dim
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x616ccb6b	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0x616df358	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x618df8f8	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x61b76bb9	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c29c82	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x61c76b3a	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61f14eef	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0x61f74020	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x61faf87f	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x6214acc2	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6228bda0	of_match_device
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x62347f99	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x6239d3cd	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x624acfb9	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x6258450e	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x627d4340	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62ad2dfc	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x62aff8e5	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62ea221c	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x62f21719	misc_register
+EXPORT_SYMBOL	 vmlinux 0x62fd3ea3	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x63029b08	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x630f2cb8	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x63171008	dput
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x631ee28b	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x632188bc	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x63231d35	omap_get_dma_src_pos
+EXPORT_SYMBOL	 vmlinux 0x6323439b	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x6342f99f	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x63467da4	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x63508bee	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x6352a111	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x635c10cc	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x638a3016	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x638e2ad1	tegra_dfll_unregister
+EXPORT_SYMBOL	 vmlinux 0x638e2cbd	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x63931c8e	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0x63a31931	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63a91c67	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d26030	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x63e7abb8	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x640c81b5	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x641301c3	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x64349757	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6441a294	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x647561e8	snd_timer_close
+EXPORT_SYMBOL	 vmlinux 0x647af474	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x648189ea	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x64876a98	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x648c1ffa	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x6494347e	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a0c45a	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64bbde39	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x64bd5a78	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x64be23c4	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x64d3f218	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x64f07d3f	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x64fd0b88	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x6501b230	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 vmlinux 0x6510c586	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x65168ad7	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x651acdcd	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x651cb366	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x6520a55c	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x65249da9	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x6541047b	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x655327ef	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x655f69c4	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x6562201c	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x65717c33	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x6578533e	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x658b6beb	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659c3934	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a00212	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x65aa229b	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x65cc6578	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x65cd4256	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x65d2e2f2	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x65d411e9	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65f938db	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x661206bc	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x663789e6	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x66474aa4	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x664aa1cc	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x664fb08e	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x66557378	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x66657274	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0x66714441	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x6674bd14	omap_vrfb_request_ctx
+EXPORT_SYMBOL	 vmlinux 0x6698d6e5	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x66a45853	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x66a8ed7a	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x66b65509	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x66c99b6e	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x66d39644	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x66de448b	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66fd02d7	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x67092819	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x670d4857	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x6725394e	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x674dca75	dev_close
+EXPORT_SYMBOL	 vmlinux 0x675272d2	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x675b7412	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x6766ed7c	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL	 vmlinux 0x6782d34a	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x67953e9c	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x6799953d	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67d64ec3	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x67e0b8a1	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x67e0f047	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x67ed7653	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x67f45c21	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 vmlinux 0x67f63b53	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x6808c968	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x680ab293	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x681382e4	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0x6825009f	start_tty
+EXPORT_SYMBOL	 vmlinux 0x6828f0dd	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x6829991c	ilookup
+EXPORT_SYMBOL	 vmlinux 0x683c4626	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x6860e0e0	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x6867c75e	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x68741dbe	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x68786cbf	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x68819b1e	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 vmlinux 0x6893fb89	tegra_ahb_enable_smmu
+EXPORT_SYMBOL	 vmlinux 0x6894550e	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x689b1385	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x689b4497	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x689e56b5	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 vmlinux 0x68a7219f	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68bdc73c	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x68e4bc03	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x68fb581a	icst307_idx2s
+EXPORT_SYMBOL	 vmlinux 0x6912b211	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x6921f4d3	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x693768e0	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x6953ddda	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 vmlinux 0x6964cdd0	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x6976838a	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x69865976	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x6992da43	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b6f8d9	omap_set_dma_transfer_params
+EXPORT_SYMBOL	 vmlinux 0x69c0055b	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x69ca0762	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x69ca85a3	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x69d308a3	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69e51d08	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x69f699e8	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a06fe13	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6a5109cf	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a6a3617	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x6a82f0b9	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x6a8613c6	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x6a8ac1b2	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x6a91ce5d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x6a981264	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x6aae6a6d	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0x6acdf33c	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x6ad02a3d	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6add667f	snd_jack_set_key
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6af385d0	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x6af7b21a	packing
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b322fbd	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x6b3489e6	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b604710	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x6b69d9b6	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x6b74b305	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x6b7bf880	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x6b7c9d8e	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x6b7ea443	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b99b9f5	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x6bac0f4d	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bdb35c3	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x6c0b424a	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x6c194136	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c2d5e65	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x6c527a41	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c80323b	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x6c810e42	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x6c95812e	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cd88247	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6ce6111b	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL	 vmlinux 0x6d784a6f	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x6d86a5c8	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x6d89b199	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x6da6941c	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x6dca4a26	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd9b8b2	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x6de48f76	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6df92243	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0x6e18e00d	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x6e4e7714	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x6e525b80	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x6e5c2db5	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x6e5c7410	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x6e5d14dd	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x6e6110bb	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x6e6bec0b	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e83f93e	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x6e8c0ca1	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0x6e9767d3	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea14a8d	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x6ea5aaf9	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6eb72fdf	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x6ecdb792	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x6ed89c35	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6edbc0e6	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 vmlinux 0x6f01087f	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x6f013ecd	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x6f03b15a	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x6f078ed4	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x6f1739a5	single_release
+EXPORT_SYMBOL	 vmlinux 0x6f187259	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x6f2aa85a	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x6f3b925a	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x6f3d997e	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x6f3e3ddd	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x6f4b33e5	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x6f6e6d45	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x6f749938	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f929055	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0x6f9ddb81	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x6fbe4717	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x6fc3558e	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6feb1b18	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70037d5f	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 vmlinux 0x702383d4	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x702dc86c	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x703ec24a	open_exec
+EXPORT_SYMBOL	 vmlinux 0x70514b45	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x70703993	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7075ea1b	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x70780612	d_add
+EXPORT_SYMBOL	 vmlinux 0x70ae5ea7	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x70f519b3	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x70fda48f	has_capability
+EXPORT_SYMBOL	 vmlinux 0x711b8a9b	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x712110ab	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x712e06d9	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x71323fd5	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x71453dea	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x714ca6bb	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x715da569	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x71671e70	nand_bch_init
+EXPORT_SYMBOL	 vmlinux 0x716b58cb	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x7176236f	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x71a0483c	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL	 vmlinux 0x71d18344	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x71df2dc6	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x71ef52ac	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x71f7de4f	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x71fce2f5	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x7208fa9f	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0x721d45e7	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x722a8752	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x722fdf68	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x725fea20	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x72890020	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x729c55eb	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x72b595a9	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72fc605a	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x72fca2b2	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x72fe7b2f	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 vmlinux 0x73149fc0	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x7317790e	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x7318d0a7	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x734e4d07	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735f33b0	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x7367bef6	__bforget
+EXPORT_SYMBOL	 vmlinux 0x7377702c	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x738a8db2	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x73a251b5	padata_start
+EXPORT_SYMBOL	 vmlinux 0x73a437cc	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x73b1b4e8	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x73b6b5e0	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x73ba0a1a	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x73dc8b65	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x73ddf8da	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x73e61baa	snd_card_file_remove
+EXPORT_SYMBOL	 vmlinux 0x73f9754a	snd_timer_start
+EXPORT_SYMBOL	 vmlinux 0x7404e4df	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x74070f37	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0x740c1d74	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741bd099	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0x741d2d27	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x7425fe02	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x742ded0e	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x742e7f64	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x7433de70	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x74402363	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x744dfea5	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x7464b616	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x74792426	iunique
+EXPORT_SYMBOL	 vmlinux 0x747bb072	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x748de083	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x7499f34b	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x749b5850	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x74ae2728	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74d5d410	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x74d699c6	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x74d7e771	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x74e46dac	imx_ssi_fiq_tx_buffer
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fa9cc6	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x75192710	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0x75365730	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x753c3072	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x754f348a	complete_all
+EXPORT_SYMBOL	 vmlinux 0x75545ae2	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x7567d381	__get_fiq_regs
+EXPORT_SYMBOL	 vmlinux 0x758f1c77	msm_pinctrl_probe
+EXPORT_SYMBOL	 vmlinux 0x759d08fd	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x75a0f244	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0x75a154e4	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x75a3981a	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x75ab24ef	msm_pinctrl_dev_pm_ops
+EXPORT_SYMBOL	 vmlinux 0x75bcaace	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75be3170	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x75cd6f3e	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x75ce4392	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75f132f1	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x75f83437	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x7607c5b6	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x761402e3	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x762a98e2	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x76513b0c	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x7657f197	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x766e7885	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x7679d695	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76a043e5	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x76ad9183	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x76b20840	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76e66239	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x76ed49d6	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x77097d15	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x770ed5fe	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x77315049	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x77401999	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x775325b4	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x7755b704	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x776d431d	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x7778acc9	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x7787070d	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x778b5537	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x778c2258	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0x7791193f	icst525_s2div
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779e6f5f	serio_open
+EXPORT_SYMBOL	 vmlinux 0x779fa0bc	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77c1e115	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x77e0bfe3	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x77e21e97	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x77e7341f	follow_down
+EXPORT_SYMBOL	 vmlinux 0x77e99a83	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f61ec9	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x77f6c690	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x77f6f183	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x77f78fba	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x783b977a	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0x783ff170	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x7851ce99	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x785b50c6	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x78675efe	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x786fa515	read_code
+EXPORT_SYMBOL	 vmlinux 0x78779c0b	set_fiq_handler
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x7885ffd5	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a427cc	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x78b1070f	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x78c5b299	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x78d515a7	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e1b7a5	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x78edcb59	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x78f50629	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x791991f3	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x7933010f	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x79372c69	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x793e47f9	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x7942e64c	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x794765d1	mempool_free
+EXPORT_SYMBOL	 vmlinux 0x795f79dd	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x79818121	tegra_ivc_init
+EXPORT_SYMBOL	 vmlinux 0x799643bb	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x7998583b	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 vmlinux 0x799c9e1b	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x79a0d080	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x79db161c	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x79fa1deb	imx_ssi_fiq_rx_buffer
+EXPORT_SYMBOL	 vmlinux 0x79fc577f	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a29d523	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x7a378601	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x7a3e8a42	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a5ddb76	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x7a5f2138	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x7a682243	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x7a779efc	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x7a79b9f3	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7a81bfc9	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x7a89d038	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x7a922d27	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7a9ea1a2	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa46268	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x7aafe7a9	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7abca961	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x7ac089d9	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x7acfd577	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ad50e98	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7ade9187	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x7aded2f7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x7ae206bd	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0x7ae681e6	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b0cdc65	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x7b144dc3	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x7b20b2ec	bdget
+EXPORT_SYMBOL	 vmlinux 0x7b23c501	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x7b25272a	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x7b283ce3	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x7b2fb85d	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7b331993	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x7b34eb5e	snd_timer_interrupt
+EXPORT_SYMBOL	 vmlinux 0x7b481787	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x7b4f34ec	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x7b571a8f	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x7b5c8440	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x7b72f62f	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x7b7ba06a	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x7b7e49fe	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x7b900ed8	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x7b921a71	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x7ba5a3b4	tegra_powergate_power_off
+EXPORT_SYMBOL	 vmlinux 0x7ba67c73	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x7bb2a8bf	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x7bbff6f5	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x7be50fae	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x7be76ccb	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 vmlinux 0x7bf978b8	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x7c0e908f	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x7c10fb76	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c26fd51	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x7c34d756	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c631b7a	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x7c6d4e99	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0x7c7eae81	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x7c82d1b0	key_move
+EXPORT_SYMBOL	 vmlinux 0x7c8cea9e	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL	 vmlinux 0x7cc851e3	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x7ccb8bd1	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x7ccd812c	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x7cce61ca	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x7cdeeb4d	pgprot_user
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d09596b	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d0dd84f	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0x7d25679b	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x7d40c8b7	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x7d40f527	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x7d474d41	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7d4ac937	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d4b4ed7	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x7d5a3ecb	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x7d6c2636	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0x7d6d7f80	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x7d6f4c57	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x7d700c55	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x7d7accbb	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x7d812c08	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x7dadafba	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7db0d1eb	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x7dbfbcf1	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x7dd0442b	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 vmlinux 0x7dd356b6	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df64a45	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x7e0ce0c3	up_write
+EXPORT_SYMBOL	 vmlinux 0x7e172442	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x7e1f08aa	snd_info_free_entry
+EXPORT_SYMBOL	 vmlinux 0x7e2167a5	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x7e283ca3	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e32e7c7	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x7e452db7	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x7e54389e	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x7e5ba185	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x7e5cdc79	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x7e638230	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x7e84d20b	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x7eb7bd9e	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x7ebdf718	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x7ec66043	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x7ef0ef30	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f05c431	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x7f1ec9c5	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f304b27	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7f394192	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x7f42a320	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x7f4fe25c	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x7f514d28	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x7f535df1	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x7f5d3710	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f92f8da	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x7faf3bdb	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x7fb9f377	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x7fcb6b79	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x7fce778e	tegra_ivc_total_queue_size
+EXPORT_SYMBOL	 vmlinux 0x7fd22d43	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x7fde2edb	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe43db4	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x7fe52ab1	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x7ff3b187	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x800e4ffa	__muldi3
+EXPORT_SYMBOL	 vmlinux 0x800fe955	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x80328cbb	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x80335345	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x8039b3fd	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x805a7243	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0x8062263c	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x807a010d	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x80a0f4b3	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x80b2589a	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x80bb751d	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x80c4c319	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x80c9afe4	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80d9e454	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x80e6dc0d	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0x8108ac7a	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x810c0b43	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x813370c1	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x813a1be2	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0x814f8425	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x81620ce4	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x816b2771	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x816b7d7b	imx_dsp_ring_doorbell
+EXPORT_SYMBOL	 vmlinux 0x8174737e	page_address
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x818c8710	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x819862b7	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x819ce422	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 vmlinux 0x81ca70f9	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81efee1a	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x82043dc8	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x8204b14d	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82193a97	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x821d9094	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x822137e2	arm_heavy_mb
+EXPORT_SYMBOL	 vmlinux 0x8222e383	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x8224c646	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x8229b4ba	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x824a021d	snd_card_free_when_closed
+EXPORT_SYMBOL	 vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL	 vmlinux 0x8265b302	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0x826b5184	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x8275ae1e	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x828d71a3	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x82992f4c	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x82a1cd35	sound_class
+EXPORT_SYMBOL	 vmlinux 0x82b9e6b6	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x82d76a70	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x82dc68a1	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x82ec4cec	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x82efbea2	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x82f886a1	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x82fb6482	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x8320bea8	__umodsi3
+EXPORT_SYMBOL	 vmlinux 0x83289469	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x8329a803	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x832fdd79	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x833a05cd	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x833adbcc	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x833c9cdc	tegra_ivc_notified
+EXPORT_SYMBOL	 vmlinux 0x8351f2dc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x835a31ac	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x8362cbb5	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x83707efb	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x8377fc0d	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83988554	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x83a2e297	cqhci_resume
+EXPORT_SYMBOL	 vmlinux 0x83a60fc9	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x83aa3c37	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x83c029f8	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x83c3c809	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x83c46599	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x83cd0e6f	atomic_io_modify
+EXPORT_SYMBOL	 vmlinux 0x83e6b780	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x83ed8026	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x83f25a35	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x84083053	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x84115c2e	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x84152750	d_delete
+EXPORT_SYMBOL	 vmlinux 0x8417f54e	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x8441c8cb	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x8451fdfe	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0x8456e9a7	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x84629bbb	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x84659677	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x846934c5	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x846c7bbb	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x84818f57	tegra_powergate_power_on
+EXPORT_SYMBOL	 vmlinux 0x84823624	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x8489880c	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x849052dc	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x84921816	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x84aab959	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL	 vmlinux 0x84bd2d66	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x84c6b6d1	would_dump
+EXPORT_SYMBOL	 vmlinux 0x84d5403f	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x84d71731	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x84db7f2e	file_path
+EXPORT_SYMBOL	 vmlinux 0x85011743	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x8512e896	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x851a0dd8	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x85290a67	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x853102a6	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x853f8b51	dev_load
+EXPORT_SYMBOL	 vmlinux 0x85459d86	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x854fec83	tegra_sku_info
+EXPORT_SYMBOL	 vmlinux 0x85501ad2	ac97_bus_type
+EXPORT_SYMBOL	 vmlinux 0x855aa4e2	current_time
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x856e6442	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x8577c35c	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x857fe60a	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x8582ebff	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x858a906c	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x858dfecd	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x858e6e0b	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x85964577	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x859aed52	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x859d98ff	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x85a8179d	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bc0564	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x85ce38ed	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x85d633bf	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x86013a0c	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x8609839e	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x861d2952	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x86219911	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x862bc663	memset16
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863d571f	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865160b5	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x865b8af1	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x8666995b	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x866f0a71	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x866f46a5	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x867f32cd	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x868ab252	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x8699d1a7	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0x86c65384	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x86c94539	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x86dc270c	tegra_ivc_cleanup
+EXPORT_SYMBOL	 vmlinux 0x86eb0c08	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x86f0b8b2	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x870d5a1c	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x871aa833	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x87214f82	seq_open
+EXPORT_SYMBOL	 vmlinux 0x87354994	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x873acffc	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x874a2c57	vga_get
+EXPORT_SYMBOL	 vmlinux 0x874d757e	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x877816cb	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x879013fd	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x879717c3	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x87bb9e2e	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x87ecd7d9	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x8813979a	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x88142136	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x881a0fa6	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881e14a3	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0x88365782	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x8841d9b0	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x88545687	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x887fee5e	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88878e1b	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x888e17c8	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x88afe652	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x88b19f45	system_serial
+EXPORT_SYMBOL	 vmlinux 0x88b469f4	omap_set_dma_callback
+EXPORT_SYMBOL	 vmlinux 0x88b861de	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x88c2f0dc	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x88d0f4d5	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x88d5eccd	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x88d8156a	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88df4605	bio_split
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x890de126	omap_vrfb_setup
+EXPORT_SYMBOL	 vmlinux 0x89276c92	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x892b7125	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x892d6a34	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x8938ff92	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x893a6da0	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x893e789b	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x89552aba	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x8955f203	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x89721bb2	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x897c4d35	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x89943218	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89cc03d2	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x89f5104e	snd_ctl_notify
+EXPORT_SYMBOL	 vmlinux 0x89fdb7e6	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a3566b9	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x8a3784dc	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a3a72dd	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0x8a3b1285	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8a45234e	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a4c8a3e	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL	 vmlinux 0x8a569a94	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x8a783d36	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a99022b	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8a9b2608	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x8aa30959	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x8aaa4d3d	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x8aba6ff6	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x8ac136ae	imx_sc_misc_get_control
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8acea0c8	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x8ad8666d	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x8ae0b4ca	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b176bfd	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x8b1f1279	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x8b2a925c	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x8b4588bc	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x8b460122	nand_read_page_raw
+EXPORT_SYMBOL	 vmlinux 0x8b4bc210	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x8b52e9db	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b5e890d	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b81683d	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba234c8	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x8bac3cbe	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x8bb8a113	tegra_dfll_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x8bbf0712	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x8bcb98ee	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x8bce5489	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8beb6fb8	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x8bee75d7	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x8bfe461d	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8bffac6a	snd_card_new
+EXPORT_SYMBOL	 vmlinux 0x8c0f4b39	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x8c10147c	nand_bch_correct_data
+EXPORT_SYMBOL	 vmlinux 0x8c3eaa7c	may_umount
+EXPORT_SYMBOL	 vmlinux 0x8c42b9ed	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x8c465380	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x8c508281	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x8c5d254a	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x8c7e9a1b	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x8c8bdcc6	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x8ca10772	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x8cb086b1	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0x8cd8c339	omap_free_dma
+EXPORT_SYMBOL	 vmlinux 0x8cd8c76e	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0x8ce13cc5	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x8ce1c038	omap_enable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x8cef73d8	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x8cfa14d8	file_modified
+EXPORT_SYMBOL	 vmlinux 0x8cfcd545	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x8d16d79b	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x8d5410fc	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5847fc	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d76000c	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x8d770589	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0x8d7edc2e	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x8d8cee38	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x8d929f91	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x8dca072e	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x8dd0e802	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x8dd58a64	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x8dd8317d	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x8dda259f	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de61e80	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x8de65b92	fb_class
+EXPORT_SYMBOL	 vmlinux 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfefc0d	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x8e04267a	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x8e0d71e1	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0x8e116a88	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x8e32ef95	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x8e475560	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x8e4cc275	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x8e64e183	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x8e865d3c	arm_delay_ops
+EXPORT_SYMBOL	 vmlinux 0x8e876807	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8e8e5100	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x8ebc9dbd	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x8ec2bc98	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x8ec75188	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 vmlinux 0x8ecb8a01	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 vmlinux 0x8ecd125b	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x8edbfffb	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f089488	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x8f30b6ce	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x8f3335ab	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x8f338fed	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x8f341f0f	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x8f3625fe	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8f38db95	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x8f42514d	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x8f4b9d84	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x8f595b11	snd_major
+EXPORT_SYMBOL	 vmlinux 0x8f5a0f97	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x8f678b07	__stack_chk_guard
+EXPORT_SYMBOL	 vmlinux 0x8f7b8cb6	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x8f907a7a	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x8f92eaf4	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9db8d4	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x8fce1937	omap_rtc_power_off_program
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fd9e6da	d_path
+EXPORT_SYMBOL	 vmlinux 0x8fe2d970	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x8fe35457	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x8feb765e	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0x8fee6c77	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0x8fef6829	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x8ff30e74	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x9007e586	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x90279a19	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x902e8962	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x903d51c9	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x904a3416	override_creds
+EXPORT_SYMBOL	 vmlinux 0x90588f88	release_sock
+EXPORT_SYMBOL	 vmlinux 0x90609db6	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x9068a1ba	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x906c751d	snd_ctl_replace
+EXPORT_SYMBOL	 vmlinux 0x906f5252	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x90adbfed	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x90b397af	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x90c2b147	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x90cc63a4	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x90d42284	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x90e81aba	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0x90f04bf1	dev_open
+EXPORT_SYMBOL	 vmlinux 0x912fa8eb	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x913a9826	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x913b14eb	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x916c9ee4	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x916def62	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x917fad35	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x91822239	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x918fe269	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x919d2641	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91a9c232	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x91b2a8df	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x91c0980e	icst_hz
+EXPORT_SYMBOL	 vmlinux 0x91ce9dd5	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x91f030c3	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x91f61eb3	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x921b07b1	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x922949d3	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923ccb90	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x923ea194	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x9268c1b6	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x9271846e	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x928cb6ce	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x928fc5ff	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x92a8caa5	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x92aceee6	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92be5ef4	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x92c96bf2	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x92ce821e	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92f8f880	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x9331e743	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x93381a5a	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x934685e8	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x935d6b07	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0x936fc254	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x93713086	sg_split
+EXPORT_SYMBOL	 vmlinux 0x93753dc0	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x93860b85	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x93889e92	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x939cf9d2	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93bdaa1f	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x93c56d35	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x93d95b3a	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x93eac9d7	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0x93fd8429	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 vmlinux 0x941d931e	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x94203cde	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x94205154	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x9425caca	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x94318306	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x943dc8aa	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x94442699	register_console
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x945eb81c	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x946b2a68	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x9470623c	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x947ec5ea	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94b86dcd	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x94be91f8	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94d66bfe	efi
+EXPORT_SYMBOL	 vmlinux 0x94dab460	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x94ee56f8	snd_card_free
+EXPORT_SYMBOL	 vmlinux 0x94eff225	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x9503763f	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x95274777	snd_info_register
+EXPORT_SYMBOL	 vmlinux 0x95368d33	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955b35cc	tegra_dfll_register
+EXPORT_SYMBOL	 vmlinux 0x955cc2a8	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x957c2403	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x95b88b04	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x95d08196	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x95d3d918	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x95d8be83	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x95dbe078	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95e9f9b2	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x95edab57	nla_put
+EXPORT_SYMBOL	 vmlinux 0x95f4bca3	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x96050bb0	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x964b8646	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x96588f5f	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x9663df88	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x967ba236	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0x967c177f	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x969aebbb	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x969c5ca3	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0x96b52aec	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x96b720ee	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x96b8f719	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x96c019d4	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c5ea69	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96e84308	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x96ffc4b7	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x9700e831	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0x9702bf67	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x97086267	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x9709dbc5	current_work
+EXPORT_SYMBOL	 vmlinux 0x97106714	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL	 vmlinux 0x9726c007	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x972a17db	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x972e4f9b	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x9736908b	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x973c5636	register_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x9750d1bd	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x9768a48c	qcom_scm_get_version
+EXPORT_SYMBOL	 vmlinux 0x9771fa9b	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x97858d13	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97944be0	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97f7f3c7	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x97fe0135	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x97ff46a9	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x98130352	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x98135508	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x98157b00	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x981e25b5	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x983ac031	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x98491750	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x984af3f8	md_error
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9873004d	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0x987a4281	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x987af4ef	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x987c11c7	__pv_phys_pfn_offset
+EXPORT_SYMBOL	 vmlinux 0x987f104a	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x98832da8	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x98a21b5a	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x98bc6e8e	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x98c3f649	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98e76fd4	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x98e9e722	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x99090b37	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x99094fb2	qcom_scm_is_available
+EXPORT_SYMBOL	 vmlinux 0x992c7411	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x993245b8	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993b03df	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x996829ea	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x996e0d8e	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99b4111d	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x99bb8806	memmove
+EXPORT_SYMBOL	 vmlinux 0x99c212f6	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99d81e33	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x99e95ab8	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a12d07b	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a2ec43a	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x9a3b6a39	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0x9a3fe7d8	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a642c53	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0x9a691aa6	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x9a7099b2	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x9a785ca7	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x9a7aeff3	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x9a8318ef	v7_coherent_kern_range
+EXPORT_SYMBOL	 vmlinux 0x9a89a7a3	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x9aa9cea4	trace_print_flags_seq_u64
+EXPORT_SYMBOL	 vmlinux 0x9aaea285	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9abc5375	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x9acb8066	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x9acbb062	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x9ad20fab	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x9b0c18e3	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x9b128a66	qcom_scm_set_remote_state
+EXPORT_SYMBOL	 vmlinux 0x9b1b7306	xxh64
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b3250cd	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b3687bf	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b567d9c	tc6393xb_lcd_mode
+EXPORT_SYMBOL	 vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL	 vmlinux 0x9bb68ca9	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x9be81612	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x9c18ef80	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x9c221c9c	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x9c23d4bc	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x9c245f35	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x9c5626a8	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x9c5d1d67	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x9c6038bc	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x9c667a9b	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x9c71542b	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9c7419dc	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9c7f3d25	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x9ca0332f	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cb78881	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x9cbc4eee	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x9ccd4887	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x9ccfffb3	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9cfe5225	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x9d06ac33	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d0d7a5c	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x9d11d3f3	snd_timer_global_new
+EXPORT_SYMBOL	 vmlinux 0x9d242a7d	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x9d5cd559	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d9a8c76	processor
+EXPORT_SYMBOL	 vmlinux 0x9da77123	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x9dbcbebd	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x9dc08a71	pgprot_kernel
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9df40d30	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x9df829c2	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 vmlinux 0x9e94a3da	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x9e9976f5	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 vmlinux 0x9e9a9cb4	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed39a54	down_trylock
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9f0667d5	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x9f367dcb	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0x9f3c8245	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x9f3e4180	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x9f44da4d	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4eea1a	snd_pcm_open_substream
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f52092a	seq_path
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f5c7ee3	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x9f5fefc4	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0x9f763940	clk_get
+EXPORT_SYMBOL	 vmlinux 0x9f959e48	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fbdd9d5	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x9fc387f2	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x9fcf2d1b	nand_write_page_raw
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9fe21762	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa01cd508	snd_timer_pause
+EXPORT_SYMBOL	 vmlinux 0xa037ec41	snd_dma_free_pages
+EXPORT_SYMBOL	 vmlinux 0xa0427f5d	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0xa042d4be	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa04c6b9f	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa06df9e1	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0xa0747d4b	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa07d5c3f	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa08d0e18	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa0aae687	imx_ssi_fiq_end
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0aefe3e	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b17123	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0xa0c56fb1	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0xa0d666be	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f178b0	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xa0f8e098	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0fc470d	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0xa0fe026e	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10d12a4	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xa1128629	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1293798	module_put
+EXPORT_SYMBOL	 vmlinux 0xa1340305	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xa15a8959	register_sound_special
+EXPORT_SYMBOL	 vmlinux 0xa15d0131	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xa17bd3fc	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xa1839690	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xa183a947	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xa1a627bb	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0xa1add648	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xa1bacd91	qcom_scm_set_cold_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xa1be07d5	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xa1c55350	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d131ed	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1ea813e	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa2283fb5	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xa23cc6e4	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0xa24491bf	ida_free
+EXPORT_SYMBOL	 vmlinux 0xa24919c1	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25164f1	snd_timer_continue
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa2785906	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xa27f20d3	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa28f4878	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0xa29cce3e	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xa2bf8429	skb_append
+EXPORT_SYMBOL	 vmlinux 0xa2c782c1	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xa2f099f3	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xa328de78	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xa330b30a	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xa3542661	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 vmlinux 0xa35439c7	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0xa37b3486	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0xa38878f8	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0xa393d0ab	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0xa3978001	arm_coherent_dma_ops
+EXPORT_SYMBOL	 vmlinux 0xa3a54979	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xa3ac158f	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0xa3ac74c8	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xa3b6e1b7	omap_vrfb_max_height
+EXPORT_SYMBOL	 vmlinux 0xa3bc853c	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0xa3c00c06	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xa3df4a39	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xa3f9789c	snd_ctl_new1
+EXPORT_SYMBOL	 vmlinux 0xa3fdece2	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xa413fd31	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xa414da40	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0xa42ab497	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0xa42d1ff9	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xa43799a8	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xa4552208	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0xa4610bc6	omap_rev
+EXPORT_SYMBOL	 vmlinux 0xa4642cf8	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xa48689c2	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xa486f1f1	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xa48f5b09	omap_dma_set_global_params
+EXPORT_SYMBOL	 vmlinux 0xa4b42c55	omap_set_dma_priority
+EXPORT_SYMBOL	 vmlinux 0xa4b7f2cc	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xa4bc5d2c	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xa4ca1aa9	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xa4dccb61	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xa4e55760	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0xa4f86923	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0xa4fe72b8	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xa50119b0	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0xa51d82d6	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0xa52c9061	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0xa53ec9bb	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0xa5500733	dst_init
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa5684076	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xa5694d6f	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0xa56fde1c	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xa57c9f51	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa5927ff8	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xa5a9748f	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xa5a9eef8	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xa5abea2a	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xa5b4bdb3	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xa5bee35d	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xa5cbbe1d	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xa5ccc686	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0xa6049f97	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61e1601	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xa61ea3ff	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0xa6433d27	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xa65fba03	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0xa66cf859	cqhci_irq
+EXPORT_SYMBOL	 vmlinux 0xa66de63b	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6839913	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa68613dd	get_jiffies_64
+EXPORT_SYMBOL	 vmlinux 0xa692e758	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa6997cf5	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xa6a1122f	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xa6a7a2ad	div_s64_rem
+EXPORT_SYMBOL	 vmlinux 0xa6bddc0b	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 vmlinux 0xa6d3a5bf	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0xa6d5ed6b	iput
+EXPORT_SYMBOL	 vmlinux 0xa6e6cd6b	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xa6ea7de3	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xa6ef62bb	nla_append
+EXPORT_SYMBOL	 vmlinux 0xa6f29478	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xa70510b4	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xa7230bb7	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xa72957cc	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0xa72c5b95	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xa73ee62b	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xa740fa06	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xa74309a7	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa754516a	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa7b3181c	up_read
+EXPORT_SYMBOL	 vmlinux 0xa7c87577	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0xa7d4aca8	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xa7dd987b	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xa7e1ba06	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xa7e3598d	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa80acb56	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xa80c7e1e	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xa80fbce8	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84add4c	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa851c570	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0xa85b97c8	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xa8857ca6	skb_push
+EXPORT_SYMBOL	 vmlinux 0xa8905aca	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xa89ea059	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0xa8a08caf	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8bf9539	mmput_async
+EXPORT_SYMBOL	 vmlinux 0xa8c75b1e	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8d5175c	_snd_ctl_add_slave
+EXPORT_SYMBOL	 vmlinux 0xa8ec7d34	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0xa8ee65c1	omap_vrfb_adjust_size
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8f7f280	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xa90079c6	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xa9012377	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xa9241f84	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0xa92b8efa	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xa9443cf5	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xa947c342	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xa94f50d8	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0xa95c15c1	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xa96168c5	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xa964dd13	gpmc_cs_request
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa96b6f55	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xa97440f5	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xa977bde9	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xa9784970	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xa97ef476	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xa9a7432f	qcom_scm_pas_mem_setup
+EXPORT_SYMBOL	 vmlinux 0xa9b16088	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0xa9ca58f5	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xa9d11d02	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0xa9dd32cd	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xa9e0b5de	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xa9ed62d2	tegra_fuse_readl
+EXPORT_SYMBOL	 vmlinux 0xa9f08593	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xa9fd3bbb	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xaa537174	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0xaa5e12a9	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xaa664517	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0xaa6ce3ad	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa8497c7	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xaa9330d9	snd_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xaaa8df29	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0xaaa93af1	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0xaaca78d5	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae8f49a	init_task
+EXPORT_SYMBOL	 vmlinux 0xaafd9237	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab2e557d	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab45984d	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0xab4badfd	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xab4e8658	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab7603e7	imx_ssi_fiq_start
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab79cbc5	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xab80ab58	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xab89cb76	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0xaba07304	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xabb47c9e	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0xabc39d0d	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabde47e6	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xabe390c8	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xabee0ca4	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac0f9d5f	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xac10ccce	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac345fbe	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xac397dac	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 vmlinux 0xac4f26f0	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xac5da8b3	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac6841aa	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0xac79afd3	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0xac876942	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb31ecf	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0xacc2015b	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xace02e53	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0xace47183	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xacfccb7b	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0xacfe04d3	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0xad00700c	path_get
+EXPORT_SYMBOL	 vmlinux 0xad01189e	finish_open
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0882e7	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xad0e6bd4	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xad1101d7	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0xad2bcde1	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0xad31f3d6	key_link
+EXPORT_SYMBOL	 vmlinux 0xad60e126	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xad645ee2	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xad6a811f	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0xad6f7144	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad995a74	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xada6a968	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadb666f3	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadd22e70	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0xadd36a40	nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae0ad116	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0xae17975c	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae51f2bd	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xae589f28	snd_device_register
+EXPORT_SYMBOL	 vmlinux 0xae58a859	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0xae97b1c5	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xae9849dd	__request_region
+EXPORT_SYMBOL	 vmlinux 0xae9bfae0	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xae9eaf0c	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xaeb1321d	find_vma
+EXPORT_SYMBOL	 vmlinux 0xaec06c2b	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xaed8fbb8	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0xaed945f9	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xaee95991	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xaf033ae7	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xaf16f615	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xaf39e8a4	udp_poll
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf497dda	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0xaf50e76d	elf_set_personality
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf72e3fa	dns_query
+EXPORT_SYMBOL	 vmlinux 0xaf7fddb8	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0xaf84865e	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0xaf8aa518	system_rev
+EXPORT_SYMBOL	 vmlinux 0xaf9a0a2a	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0xafcebafd	f_setown
+EXPORT_SYMBOL	 vmlinux 0xaff17c78	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xaff90887	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0xb01a4f93	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb02c1e1d	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0xb0363ae1	bioset_init
+EXPORT_SYMBOL	 vmlinux 0xb03bcf21	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xb046d95f	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb08f87f0	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a3c5d2	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xb0c24491	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xb0d1b5e5	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0f8a1fb	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0xb0fc3bf6	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb120dbbd	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb1285d8a	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb13b465a	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xb147a855	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb16e4b84	snd_power_wait
+EXPORT_SYMBOL	 vmlinux 0xb179bea3	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0xb18f684b	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xb19a62cb	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0xb19c501d	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0xb19f6172	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0xb1a20ba5	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0xb1ad28e0	__gnu_mcount_nc
+EXPORT_SYMBOL	 vmlinux 0xb1b3fe63	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1cf6ea4	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xb1d15e22	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xb1d486da	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1deb0af	udp_prot
+EXPORT_SYMBOL	 vmlinux 0xb21445f9	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xb216d331	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0xb223d784	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0xb22660de	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xb2275944	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb2328ab4	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0xb2485c04	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0xb249a391	omap_request_dma
+EXPORT_SYMBOL	 vmlinux 0xb2568ffc	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb25e1d1a	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xb26c4ec6	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xb271d487	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xb271e159	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0xb286c477	qcom_scm_set_warm_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xb2894d28	kobject_init
+EXPORT_SYMBOL	 vmlinux 0xb2a010e7	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0xb2af197f	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b9530a	elm_config
+EXPORT_SYMBOL	 vmlinux 0xb2b9afd5	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xb2c2b403	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xb2c54d07	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0xb2d0053e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xb2d2a87e	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0xb2d48a2e	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 vmlinux 0xb2e83a7d	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb310b7ca	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xb317a745	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0xb3246e95	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xb3257d03	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xb325f64c	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xb32728bb	qcom_scm_iommu_secure_ptbl_init
+EXPORT_SYMBOL	 vmlinux 0xb35cae8e	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xb3667805	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb367c984	mxc_set_irq_fiq
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb368c3e3	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xb37471c9	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0xb384e71b	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xb396443c	unregister_console
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3e09a50	snd_timer_open
+EXPORT_SYMBOL	 vmlinux 0xb3e8af7c	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xb3eb2005	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0xb3ee5ca0	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb405986c	bdput
+EXPORT_SYMBOL	 vmlinux 0xb406badd	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xb4096892	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb43138aa	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0xb43ee266	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xb4519a8f	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0xb4556db9	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0xb456a8af	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0xb45fece6	snd_pcm_new_internal
+EXPORT_SYMBOL	 vmlinux 0xb4760489	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xb476c8f4	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb481719a	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a41a2b	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xb4afa419	param_get_long
+EXPORT_SYMBOL	 vmlinux 0xb4f0b4b8	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4f18259	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xb5017857	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xb50eaf05	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xb5139180	stream_open
+EXPORT_SYMBOL	 vmlinux 0xb5155ad8	mtd_concat_create
+EXPORT_SYMBOL	 vmlinux 0xb549ed6f	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0xb55081ad	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0xb556506b	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0xb55c265a	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xb55deb37	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0xb561ac5b	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xb570871e	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb576440d	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xb57ef2c5	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xb581e47d	vga_put
+EXPORT_SYMBOL	 vmlinux 0xb5863f01	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0xb58a0328	inet_release
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb58e2a05	of_get_address
+EXPORT_SYMBOL	 vmlinux 0xb59898c1	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xb59ac300	snd_card_set_id
+EXPORT_SYMBOL	 vmlinux 0xb5a2aca1	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5baf056	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xb5c1f08a	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xb5f66f37	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xb5fe58f8	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xb5ffc37f	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0xb62f451c	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xb6430cf2	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xb6480323	snd_ctl_remove
+EXPORT_SYMBOL	 vmlinux 0xb6564f70	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb65c5294	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xb6610a8e	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xb66af989	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67ce0a7	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xb68f3035	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb6982bac	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6b0c059	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xb6b56298	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xb6b6284e	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0xb6c1f14e	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xb6c69da9	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xb6c7f8e2	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xb6d5400d	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6e6119f	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xb7009b1f	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xb709006f	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xb71d54bc	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0xb7296d0d	of_iomap
+EXPORT_SYMBOL	 vmlinux 0xb7362c90	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xb73d6157	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0xb75d123e	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0xb76dec4e	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xb7733a3d	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0xb78cbb62	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb78e2050	qcom_scm_pas_init_image
+EXPORT_SYMBOL	 vmlinux 0xb7aff3e6	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7d0e46f	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0xb7d10e2e	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xb7df0e97	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xb831b4c0	pps_event
+EXPORT_SYMBOL	 vmlinux 0xb839a141	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xb83d27f7	save_stack_trace_tsk
+EXPORT_SYMBOL	 vmlinux 0xb864b84b	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0xb8749644	sget
+EXPORT_SYMBOL	 vmlinux 0xb87d790f	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0xb885b05d	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8a22c45	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8c66c45	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xb8d8e714	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0xb8e61019	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xb90308f7	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0xb909999b	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xb90cee51	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb9229809	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xb9413a94	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb94916fd	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0xb95f98d6	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 vmlinux 0xb98d1a10	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0xb99130bf	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0xb992fb2b	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0xb9a21d8e	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xb9a8f03b	omap_stop_dma
+EXPORT_SYMBOL	 vmlinux 0xb9acd3d9	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0xb9c34dca	of_match_node
+EXPORT_SYMBOL	 vmlinux 0xb9cc6619	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9f02ba2	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xb9fc381a	qcom_scm_hdcp_req
+EXPORT_SYMBOL	 vmlinux 0xb9ffc731	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0xba05d6a9	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0xba1320db	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xba1331a9	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0xba3fd63d	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba4a0e74	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0xba4ae097	enable_fiq
+EXPORT_SYMBOL	 vmlinux 0xba64f607	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xba8c609d	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0xba8feeff	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0xba9be771	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0xbaa41f7a	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xbaa7c8c5	krealloc
+EXPORT_SYMBOL	 vmlinux 0xbaae6ce4	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0xbab4c81f	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xbabd02b3	dqget
+EXPORT_SYMBOL	 vmlinux 0xbabf3992	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xbac02c5e	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0xbac4d85b	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xbae4608d	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0xbae513c0	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xbaef022e	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xbaf434c2	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xbb02231a	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb07217a	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xbb14eb31	bcmp
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb356cd4	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0xbb39287c	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xbb39d931	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0xbb425cde	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xbb43cbe2	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0xbb554dc1	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xbb59be54	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0xbb6c284d	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xbb6df778	sg_nents
+EXPORT_SYMBOL	 vmlinux 0xbb71157f	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xbb72d4fe	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xbb86b6c1	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0xbb8c063f	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0xbb8e28ff	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xbba5436b	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xbba9fa36	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0xbbb472f9	sock_create
+EXPORT_SYMBOL	 vmlinux 0xbbcf95ff	rproc_free
+EXPORT_SYMBOL	 vmlinux 0xbbcff9a4	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0xbbd7f975	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xbbddd845	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xbbe70eaa	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbc0006d4	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xbc10dd97	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xbc135230	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xbc44d86a	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xbc45ec94	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0xbc518c19	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0xbc6229f0	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xbc79c712	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xbc7a6136	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0xbc809db4	tcp_close
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcac9a50	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0xbcbbdc10	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbceb095e	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0xbd16a606	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0xbd2cc263	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xbd31f09b	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbd52b92b	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xbd6d4461	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0xbd7fe1af	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xbd81f426	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xbd820297	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0xbd8555f8	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xbd8a35ae	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0xbd99d92b	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xbdce5da1	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xbddfadf7	skb_split
+EXPORT_SYMBOL	 vmlinux 0xbde04022	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0xbde813b7	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0xbdee59c7	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xbe0e3cba	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0xbe1f6e9c	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0xbe3ef4f3	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xbe3f4da5	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe52781b	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe58206e	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe76f726	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xbe9ab4f6	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xbea46acd	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xbeaa26ae	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0xbeb104f2	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xbebe0bda	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xbec10b7b	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0xbec4a992	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0xbee187b7	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef74449	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xbf2da894	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xbf318758	flush_signals
+EXPORT_SYMBOL	 vmlinux 0xbf4d4539	udp_table
+EXPORT_SYMBOL	 vmlinux 0xbf550082	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0xbf59588e	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0xbf6e51bc	dquot_release
+EXPORT_SYMBOL	 vmlinux 0xbf7347b2	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xbf75ea6c	tegra114_clock_tune_cpu_trimmers_low
+EXPORT_SYMBOL	 vmlinux 0xbf768d54	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0xbf8099e6	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xbf894cbc	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xbf9252e1	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfb201b6	tegra_ivc_write_advance
+EXPORT_SYMBOL	 vmlinux 0xbfbb4e13	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xbfc8efe1	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0xbfcbc0d2	stmp_reset_block
+EXPORT_SYMBOL	 vmlinux 0xbfda8030	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xbfdf7bc3	mempool_create
+EXPORT_SYMBOL	 vmlinux 0xbfe57c11	snd_dma_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbff776b9	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xc0054889	simple_rename
+EXPORT_SYMBOL	 vmlinux 0xc007335c	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xc00a11b4	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xc00a8a6e	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xc010c69a	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc02f550e	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 vmlinux 0xc02fcc42	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xc0345eba	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xc040c5aa	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0xc04d2210	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xc05475b9	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xc05f3b08	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xc0708967	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc07d08e5	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a2131e	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xc0a6a8c5	omap_set_dma_dest_burst_mode
+EXPORT_SYMBOL	 vmlinux 0xc0a98385	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc0ac1f1d	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0da0e99	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0xc0f3198d	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xc0f34f9f	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xc0f7fa3f	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xc0fb357a	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xc0fd4412	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc104368b	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xc11530cb	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0xc13a7ba6	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xc146ea34	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc15f4ed8	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1b5b3ea	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0xc1bcb08b	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0xc1c1feef	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1df3df5	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xc1e2c742	tegra_io_rail_power_on
+EXPORT_SYMBOL	 vmlinux 0xc20239da	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0xc2026949	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xc2059c64	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0xc214e06a	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xc22d1133	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xc23d2813	rproc_del
+EXPORT_SYMBOL	 vmlinux 0xc23d6484	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc248c3e5	kmap
+EXPORT_SYMBOL	 vmlinux 0xc24c0f92	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0xc254c86f	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc271c3be	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc279969a	omap_get_dma_dst_pos
+EXPORT_SYMBOL	 vmlinux 0xc2801704	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0xc28953dc	snd_ctl_remove_id
+EXPORT_SYMBOL	 vmlinux 0xc299fc8c	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0xc29e485c	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xc2acc033	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xc2b1d4e1	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xc2cf2dde	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0xc2d5d5b9	kernel_write
+EXPORT_SYMBOL	 vmlinux 0xc2dab9aa	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2ede9c5	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xc2fe7575	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0xc3026f5a	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc329fb59	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc3340f9a	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc33ff5eb	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0xc358aaf8	snprintf
+EXPORT_SYMBOL	 vmlinux 0xc36551a4	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xc3675759	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xc3722472	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc39675c5	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xc3e4ca80	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0xc3e55548	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0xc3ee0c8d	snd_ctl_free_one
+EXPORT_SYMBOL	 vmlinux 0xc3f98a29	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0xc3fa6390	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0xc40072f8	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xc40a1986	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xc40b1245	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc427e066	omap_vrfb_min_phys_size
+EXPORT_SYMBOL	 vmlinux 0xc42872ac	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xc4574de1	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xc4657dc8	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xc4720d0e	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47d54ef	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xc483ee7c	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0xc486492b	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xc48f42f1	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xc494d3a3	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0xc4bc9ca0	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0xc4cd552f	igrab
+EXPORT_SYMBOL	 vmlinux 0xc4d781fc	eth_header
+EXPORT_SYMBOL	 vmlinux 0xc4eb5b32	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0xc4ecd562	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0xc500a2ff	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0xc505e288	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0xc5141344	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xc52da066	omap_set_dma_dest_params
+EXPORT_SYMBOL	 vmlinux 0xc52edef2	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0xc5665200	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0xc56f379b	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xc581500f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc5880de8	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xc5992914	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5d56bc4	snd_jack_report
+EXPORT_SYMBOL	 vmlinux 0xc5e1582c	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xc5ee6c48	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0xc600b9b4	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc609ef53	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc631252b	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63e7169	sock_register
+EXPORT_SYMBOL	 vmlinux 0xc64037ea	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc66d540b	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc66e5164	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6d74be1	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xc6d86145	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xc6e96201	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f5c36b	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xc7155924	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc72eaf43	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0xc73e4a07	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xc7571538	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0xc75997de	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0xc76356ef	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0xc7805a8e	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a1a977	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b18860	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xc7b80528	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xc7baa88a	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xc7bb2227	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc7bd94c6	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7cede24	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7d4d608	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0xc7e098ff	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xc7e2558f	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL	 vmlinux 0xc7edad2f	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc81f7263	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0xc8339e24	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84bf535	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0xc84c1aea	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xc851dff0	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc88c88a5	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xc88f3e51	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc8963ff9	mntput
+EXPORT_SYMBOL	 vmlinux 0xc89e3fae	tso_start
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b048f9	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xc8b58a25	__memset64
+EXPORT_SYMBOL	 vmlinux 0xc8e61909	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0xc905bba4	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0xc929c9b9	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0xc943b1ac	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0xc94d8e3b	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0xc951b367	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0xc958b593	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xc95fb815	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc986b4fb	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0xc986ca07	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0xc98e8870	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9abcce2	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0xc9c5fb4a	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e237b6	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0xca06da3b	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xca200e3c	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca23b09c	dm_io
+EXPORT_SYMBOL	 vmlinux 0xca429f7d	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca4a2a8f	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0xca5b86bd	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0xca5e4278	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca6c9745	vmap
+EXPORT_SYMBOL	 vmlinux 0xca77d306	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xca813ce6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xcab64bf0	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0xcac1b673	snd_ctl_find_numid
+EXPORT_SYMBOL	 vmlinux 0xcad4a410	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0xcaef8286	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xcaf2167a	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcaf4de92	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xcafe072b	qcom_scm_io_writel
+EXPORT_SYMBOL	 vmlinux 0xcb001901	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb13fa0e	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xcb1e8926	snd_ctl_find_id
+EXPORT_SYMBOL	 vmlinux 0xcb2d2234	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb428c41	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xcb44ca15	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0xcb606eb9	xa_load
+EXPORT_SYMBOL	 vmlinux 0xcb7c9616	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0xcb874722	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0xcb8bb547	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xcb8c753b	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xcb8f4f97	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbb90244	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd59405	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0xcbe83222	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0xcbeadc91	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0xcbefdf75	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0xcbf1dbd0	utf8len
+EXPORT_SYMBOL	 vmlinux 0xcc0efa47	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc30f0f1	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0xcc3b2cc9	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc3c66b5	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0xcc48e43f	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc57cab0	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc6cccdd	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xcc7bc17f	drop_super
+EXPORT_SYMBOL	 vmlinux 0xccb5a4d3	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xccbfb535	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xcceed1a4	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0xccf48d9a	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd00abbc	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcd12bfa0	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 vmlinux 0xcd2137f7	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xcd23161e	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd30b95a	tmio_core_mmc_clk_div
+EXPORT_SYMBOL	 vmlinux 0xcd363d8e	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0xcd37bb30	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xcd40fa57	notify_change
+EXPORT_SYMBOL	 vmlinux 0xcd45bd8f	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0xcd523e4f	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xcd550eaa	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL	 vmlinux 0xcd64acf5	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xcd68bf2b	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0xcd769935	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xcd7dbbe8	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xcd7dc838	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0xcd8445e9	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xcd891b39	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0xcda28dbf	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xcdb081e1	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdc9d07f	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0xcdd795fc	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xce0106b8	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0xce0fa0b2	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xce102d2c	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0xce2767d9	snd_device_free
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2eb217	kmap_to_page
+EXPORT_SYMBOL	 vmlinux 0xce3ca308	copy_from_user_toio
+EXPORT_SYMBOL	 vmlinux 0xce43aeae	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce67fb7d	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xce6fe0f5	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xce79c858	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceae709d	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xceb3e659	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xceb4a634	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0xceb5b3eb	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xceb81f21	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xcef1f1a7	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xcef7b828	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf01f610	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0xcf09d1ce	map_destroy
+EXPORT_SYMBOL	 vmlinux 0xcf0c757e	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xcf183b0a	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0xcf1bb976	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf286756	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 vmlinux 0xcf2b0f3d	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0xcf3fac84	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xcf496a66	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xcf6c7d0a	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xcf77b1f5	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0xcf7c7b21	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0xcf7e1d1d	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xcf84a45c	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0xcf86cdac	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xcf9106d2	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfb9e0e3	ioremap_page
+EXPORT_SYMBOL	 vmlinux 0xcfc0514b	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xcfc189c6	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xcfd9d200	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 vmlinux 0xcfe16194	register_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcff3ec26	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0xcff89023	snd_seq_root
+EXPORT_SYMBOL	 vmlinux 0xcff9c632	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xd00f5fb5	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xd017b578	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xd01d3b63	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xd02e0682	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04c7414	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0xd04febe9	arm_elf_read_implies_exec
+EXPORT_SYMBOL	 vmlinux 0xd058880f	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd09c9a03	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a3bfeb	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xd0a3ff84	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0c25b12	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0xd0d0050d	phy_start
+EXPORT_SYMBOL	 vmlinux 0xd0d19b73	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xd0d32e89	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xd0daaf77	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xd0e2f148	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd10b0ec7	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xd12a495a	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd13f11fd	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xd167bb3e	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xd1721325	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xd17256af	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xd17747ed	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd1abe064	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xd1d28018	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd2015329	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0xd2051916	qcom_scm_cpu_power_down
+EXPORT_SYMBOL	 vmlinux 0xd2076550	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0xd20dd4bc	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0xd213c26c	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd21637f8	nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xd216efd0	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xd217d7ae	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0xd22beb6e	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xd232ac93	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0xd2368ae4	proc_remove
+EXPORT_SYMBOL	 vmlinux 0xd23eb437	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0xd2448a5e	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0xd250cf5a	do_map_probe
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd2605444	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0xd26eab1e	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xd270dba4	imx_scu_enable_general_irq_channel
+EXPORT_SYMBOL	 vmlinux 0xd272df1c	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 vmlinux 0xd276d0af	kern_path
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27c447f	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xd285561f	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xd2a1fd42	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xd2b88972	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2eb32b9	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0xd2ef939c	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0xd303625e	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd31dfdc0	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xd320a8de	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xd32d6c08	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35edd4d	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0xd35f75a1	match_string
+EXPORT_SYMBOL	 vmlinux 0xd361cba4	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0xd3625607	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd37b44ba	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0xd38744bd	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0xd38bc913	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xd39fa6ab	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3bfb37d	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3ede7f2	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xd3ef852e	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd4152008	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0xd41b66f4	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xd426bec4	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xd469e7ff	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0xd46b54dd	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48e7069	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0xd48fdeef	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xd49c7e5a	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a44e4e	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0xd4a9b885	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0xd4b65e1b	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xd4b74d49	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0xd4ba77d8	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4bc1726	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xd4bdc800	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xd4c81353	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xd4d01088	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xd4e2f0e4	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0xd4e5b32c	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0xd4f4e478	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xd4fbbdb3	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xd501afd7	of_node_get
+EXPORT_SYMBOL	 vmlinux 0xd502f495	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xd50dce65	fd_install
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd529f905	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xd5413b4f	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xd559786d	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0xd55ea88f	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd5b2c980	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5bf5eb2	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0xd5cb8d01	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xd5ddd2df	new_inode
+EXPORT_SYMBOL	 vmlinux 0xd5e32e9c	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0xd5ecdb0e	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 vmlinux 0xd5ee2d32	snd_timer_global_free
+EXPORT_SYMBOL	 vmlinux 0xd5f52d4f	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xd5f8caa8	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xd5ffeff6	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd602fcae	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd609ce9e	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd6188191	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xd61d2022	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xd61e10cb	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xd627480b	strncat
+EXPORT_SYMBOL	 vmlinux 0xd634bdda	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xd639a872	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0xd63bf1a3	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xd63fafc2	div64_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xd6582ab0	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xd65f4516	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xd666e9f9	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xd674b3e9	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xd683ca65	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xd6844fa7	tc6393xb_lcd_set_power
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c32f9	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xd68f7590	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xd6a1e849	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xd6a6d8eb	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6bc04ff	cmd_db_read_aux_data
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6db0268	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xd6e02e0d	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6f83109	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd7012955	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd71017c5	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0xd7129377	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xd71f71a2	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xd724bb5a	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0xd72ce9f9	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd73bd54b	bmap
+EXPORT_SYMBOL	 vmlinux 0xd75626b4	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xd7629426	make_kuid
+EXPORT_SYMBOL	 vmlinux 0xd76795a0	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0xd76e8fb4	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xd7754ce5	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0xd77bad33	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd78ab3db	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xd797b9a5	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0xd797c527	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0xd7a4c1ab	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xd7d20c85	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7ec8f6a	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0xd7faccca	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xd7fae8cb	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xd815e0ff	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0xd81fb39c	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xd8367037	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xd83dc5e6	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xd8410611	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xd84ecae0	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd860755b	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xd86e1dae	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xd86e3f90	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0xd875584a	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xd8867da1	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xd88e6dfe	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd8901d3f	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89ee11f	krait_set_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0xd8a07711	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xd8a4595b	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8b5c825	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xd8c65806	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0xd8c6d04f	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xd8d80b30	snd_device_new
+EXPORT_SYMBOL	 vmlinux 0xd8ecd51d	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0xd8eecb15	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xd8f18b6c	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0xd8f430c3	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xd9217dc1	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xd92f6d44	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0xd93ba70a	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xd93f622f	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xd9428610	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd955d2b7	omap_set_dma_dest_data_pack
+EXPORT_SYMBOL	 vmlinux 0xd972bc3e	snd_timer_notify
+EXPORT_SYMBOL	 vmlinux 0xd974dc66	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd989c2e1	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0xd98e1590	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd9b9061f	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0xd9c304a6	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e9607d	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0xd9ec6cde	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xda076a9d	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda3e5705	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xda4bb371	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xda608af9	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xda6fc0b3	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda764eaa	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xda77e5c2	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xda7f21e9	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda92a30c	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xdaa7c50f	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xdab7e715	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdad97f94	__raw_writesw
+EXPORT_SYMBOL	 vmlinux 0xdaf8598b	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xdb03a2ab	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xdb39c2cb	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0xdb4292e4	omap_set_dma_params
+EXPORT_SYMBOL	 vmlinux 0xdb474823	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xdb4bc8c3	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xdb5f3d04	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xdb640d5b	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xdb644f47	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0xdb68aa5b	mr_dump
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb81e2fc	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xdb84b5f8	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xdb9ca3c5	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbaae4ad	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xdbaea360	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xdbb2984c	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0xdbb4be00	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0xdbc85e8d	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0xdbc97bbe	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xdbd7165d	tegra_ivc_write_get_next_frame
+EXPORT_SYMBOL	 vmlinux 0xdbe54aa8	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0xdc01e52a	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0xdc060f4c	fs_parse
+EXPORT_SYMBOL	 vmlinux 0xdc09d38a	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc279c77	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0xdc315dad	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xdc344fe3	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc430db2	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc4a948e	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc55d315	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xdc5c7961	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xdc5d3324	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0xdc5fcd8b	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xdc76a3b8	arm_dma_ops
+EXPORT_SYMBOL	 vmlinux 0xdc77d170	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0xdc87487a	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xdc8a660d	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xdc9a6580	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xdca9d9f4	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0xdcba5757	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xdcc94d08	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xdcf6d045	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL	 vmlinux 0xdd226fa9	__raw_readsw
+EXPORT_SYMBOL	 vmlinux 0xdd25e041	path_put
+EXPORT_SYMBOL	 vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd35c41a	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd3f5395	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0xdd4ffa9b	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xdd693b98	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0xdd7b1ffc	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0xdd7e3192	qcom_scm_pas_auth_and_reset
+EXPORT_SYMBOL	 vmlinux 0xdd7f55a5	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xdd81421f	trace_print_symbols_seq_u64
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xddad4da0	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xddca6d83	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0xddcb3d3e	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xddcf161c	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0xde03cd74	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xde19551c	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xde24caa6	__module_get
+EXPORT_SYMBOL	 vmlinux 0xde2c1700	sock_efree
+EXPORT_SYMBOL	 vmlinux 0xde33d8c4	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0xde3d132d	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0xde4bd720	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xde4f1513	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xde59092a	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xde5ae857	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0xde771d69	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xde845fb3	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0xde8b2c2e	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xdea8b637	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0xdeaab369	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xdebb5736	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xdec030e5	arm_clear_user
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xdecd80ef	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xdecfd0e2	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0xded290fb	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdeda392e	simple_link
+EXPORT_SYMBOL	 vmlinux 0xdee66c73	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0xdeea2b79	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xdef3180d	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf18a5f9	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0xdf20b939	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf301cac	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xdf3a693d	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0xdf52def1	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf5b1769	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xdf67a178	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xdf7cc518	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xdf7f7e7d	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xdf89269a	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf964fc9	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xdfa10f87	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xdfa1ee91	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0xdfd2aa6c	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xdfd91ce9	omap_type
+EXPORT_SYMBOL	 vmlinux 0xdfdd2619	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff7aa98	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffb60a6	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xdffc13ae	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe005ff6a	contig_page_data
+EXPORT_SYMBOL	 vmlinux 0xe01e4c68	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0xe028a6ca	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xe0360552	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xe054b782	snd_ctl_rename_id
+EXPORT_SYMBOL	 vmlinux 0xe06699b2	sg_next
+EXPORT_SYMBOL	 vmlinux 0xe06b73da	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xe07ce7b4	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0xe08527d4	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe08fa209	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0xe08fbd1b	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0xe0a2b2a1	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0a55b8e	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0xe0a6b585	request_resource
+EXPORT_SYMBOL	 vmlinux 0xe0a908e4	dump_align
+EXPORT_SYMBOL	 vmlinux 0xe0aa51c2	_dev_err
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0bef318	icst_hz_to_vco
+EXPORT_SYMBOL	 vmlinux 0xe0c99adb	msm_pinctrl_remove
+EXPORT_SYMBOL	 vmlinux 0xe0dd2e2e	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0xe0dd64f0	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0xe0fd2d8b	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xe1062be8	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe1151ec9	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0xe11b6e93	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe1292e14	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe147bb42	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe153f436	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0xe15a4891	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xe172d0d3	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xe188f4f2	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0xe19168fa	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe19575ab	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0xe1a9b2ff	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xe1b1d3b2	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xe1d5503e	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1e209ef	put_disk
+EXPORT_SYMBOL	 vmlinux 0xe1e8b8ed	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0xe1eb7584	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xe1f52df3	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xe203e373	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xe2143716	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xe2274a1c	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xe22d1116	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0xe25f101f	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0xe266f098	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0xe26bfd35	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0xe26e68ba	snd_pcm_set_sync
+EXPORT_SYMBOL	 vmlinux 0xe270d224	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0xe27dfb25	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xe28e4207	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0xe2a298f4	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xe2a65978	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0xe2ac51be	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xe2cd447f	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d47398	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xe2f80896	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xe2fabc67	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe3105ab3	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe346f67a	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0xe3482046	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xe36f1041	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0xe38c5dbd	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xe395eff4	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xe3a79e67	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0xe3a90dfa	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xe3ad2baa	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xe3c60e18	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xe3eb1e76	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ed25f6	of_get_min_tck
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe40994b6	simple_map_init
+EXPORT_SYMBOL	 vmlinux 0xe41ed6f9	fc_mount
+EXPORT_SYMBOL	 vmlinux 0xe428464e	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0xe42b05f7	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xe4357c97	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0xe4363afa	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe4470243	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0xe4587ca2	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xe45a5583	snd_info_create_card_entry
+EXPORT_SYMBOL	 vmlinux 0xe45cd0d2	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xe466c9f8	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0xe4702b3a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0xe477fc9b	memremap
+EXPORT_SYMBOL	 vmlinux 0xe48bfe31	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xe48d1cd9	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xe49d5960	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xe49e2659	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xe4a5c9a2	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0xe4b1c2f9	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xe4b22345	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0xe4c1ccee	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xe4c300d9	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xe4c573e6	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL	 vmlinux 0xe4d3ffba	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xe4ddcc6d	path_is_under
+EXPORT_SYMBOL	 vmlinux 0xe4e18025	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xe4effcd5	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xe4f5c3ed	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe5292329	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xe5292cf1	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xe52f5ec2	tegra_dfll_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xe5377d56	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xe541e791	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 vmlinux 0xe5725cd2	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0xe5807e62	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe58733fd	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5a1c02e	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xe5af1b41	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xe5b20116	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe620c21f	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xe6358fc4	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0xe63ccf68	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xe64231c3	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0xe66c7fd6	peernet2id
+EXPORT_SYMBOL	 vmlinux 0xe68c8836	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xe68f3b6e	tegra_io_pad_power_disable
+EXPORT_SYMBOL	 vmlinux 0xe693a6ce	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0xe6c12171	complete
+EXPORT_SYMBOL	 vmlinux 0xe6c23ec4	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0xe6db4276	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xe6eb9c2f	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xe6f1e974	vfs_link
+EXPORT_SYMBOL	 vmlinux 0xe6fba338	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL	 vmlinux 0xe7141165	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0xe71451e1	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xe7305873	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe734865a	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xe739fbd4	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xe73d1f0b	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0xe74fd68b	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0xe76093c8	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xe77255d7	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xe79b1e36	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0xe7d35231	kset_register
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7dad167	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xe7e5dc9d	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0xe8137772	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xe82b954a	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xe83cb08e	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0xe842dc8c	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0xe846d96a	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0xe856ceb7	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0xe86b1ca9	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xe87dc009	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xe8889f66	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xe88e26a9	bdevname
+EXPORT_SYMBOL	 vmlinux 0xe8a88c44	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0xe8b178dd	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0xe8b9a3d4	mx51_revision
+EXPORT_SYMBOL	 vmlinux 0xe8c994db	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xe8cd0a2c	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0xe8cfce09	tegra114_clock_deassert_dfll_dvco_reset
+EXPORT_SYMBOL	 vmlinux 0xe8e9bfb5	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe9325f03	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe96248b1	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xe976e5dc	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xe97c4103	ioremap
+EXPORT_SYMBOL	 vmlinux 0xe99b7111	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0xe9b00212	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xe9cbf734	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xe9cf07e6	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0xe9cfcc69	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe9d329ab	generic_permission
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9eaac32	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0xe9eb6dae	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0xe9f65da1	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea1c89bd	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0xea1f5b88	samsung_rev
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea457b6b	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0xea5c0899	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea768898	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL	 vmlinux 0xea7e66b6	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea978c46	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xeab11e2d	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0xeab9284b	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xeada64ae	cad_pid
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeb03b389	__raw_readsl
+EXPORT_SYMBOL	 vmlinux 0xeb0a69ef	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xeb0b9bf9	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0xeb1500ca	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xeb17aa08	d_genocide
+EXPORT_SYMBOL	 vmlinux 0xeb1a86b0	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xeb1b120e	omap_set_dma_write_mode
+EXPORT_SYMBOL	 vmlinux 0xeb266fc5	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb4dd927	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0xeb55a931	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xeb55f45c	send_sig
+EXPORT_SYMBOL	 vmlinux 0xeb9e0706	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xebac9542	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0xebbf9cda	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebec5f7c	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xebedf00d	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xebfdcbdf	system_serial_high
+EXPORT_SYMBOL	 vmlinux 0xec01a959	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xec097f07	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xec124050	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xec14369f	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xec26e39f	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xec2df61a	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0xec37a2e8	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xec400a49	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0xec451150	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec9b0ddc	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xeca970a9	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xecb59fa9	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xecb9477e	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0xece6bc3c	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf8a3b4	__raw_writesl
+EXPORT_SYMBOL	 vmlinux 0xecfd0ad6	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xecff18cd	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xed05f9d3	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0xed0a1d1f	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xed171bc8	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xed28fb16	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed704f86	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xed766800	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0xed7d9671	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xed821616	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xed93f29e	__kunmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xed9b25d4	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0xeda228cc	nand_create_bbt
+EXPORT_SYMBOL	 vmlinux 0xeda3fc79	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xeda688b8	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xedaa415c	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedd9106d	__ashrdi3
+EXPORT_SYMBOL	 vmlinux 0xedeb59d9	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee1c8a1a	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee30bca6	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xee36bd65	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xee3eb5c7	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xee43fd9b	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xee4f2cb0	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xee58c03b	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee5b1798	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0xee5c480a	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xee5d0659	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xee6af714	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xee757ab0	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0xee770cd3	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xeea0c354	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xeea360a4	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xeeabcfa7	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0xeeb5c6a9	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0xeec2403d	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xeefa2d40	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0xef0de17f	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xef2f3e4f	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0xef36bfa6	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0xef37f651	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xef4cad92	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0xef5a8a20	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0xef81beda	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xef8ac53d	qcom_scm_restore_sec_cfg
+EXPORT_SYMBOL	 vmlinux 0xefa165c9	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0xefb7bccf	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xefce4e7f	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xefd3d8c6	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xefec312f	omap_get_dma_active_status
+EXPORT_SYMBOL	 vmlinux 0xeff76d36	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf01528a4	dim_turn
+EXPORT_SYMBOL	 vmlinux 0xf0221898	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xf02a6977	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xf055b5b3	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0xf06cee2c	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xf07642a2	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xf07f56a7	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0xf08a6063	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09257a3	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a343ed	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf0c60ed8	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xf0d07506	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xf0dd82a4	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0xf0ed2ef4	__raw_writesb
+EXPORT_SYMBOL	 vmlinux 0xf0ef52e8	down
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf102732a	crc16
+EXPORT_SYMBOL	 vmlinux 0xf1063d62	seq_read
+EXPORT_SYMBOL	 vmlinux 0xf108715e	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xf10e8d28	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xf11a70b7	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xf123c975	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xf1389a1f	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 vmlinux 0xf13f91c0	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0xf14d9cc2	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xf14df659	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf14e0899	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0xf16c912e	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xf16dfc46	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xf1714d87	dump_page
+EXPORT_SYMBOL	 vmlinux 0xf1733126	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf19a3d75	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xf1aa3448	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xf1ad9c4b	tegra_ivc_align
+EXPORT_SYMBOL	 vmlinux 0xf1b08cb6	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xf1cf1da5	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xf1d36cde	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1dc00ce	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1ea6f1c	__bswapsi2
+EXPORT_SYMBOL	 vmlinux 0xf1f71bbd	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22f0271	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0xf236c75e	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf2669a2c	imx_scu_irq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xf2795db4	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0xf27f674e	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xf28320ba	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf2931d2d	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0xf2a0eb24	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0xf2ac5629	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xf2ad80d9	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 vmlinux 0xf2b070d9	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 vmlinux 0xf2b55444	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2d274bd	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xf2e48502	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e8d4c8	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xf2eb70ce	free_task
+EXPORT_SYMBOL	 vmlinux 0xf2f357f0	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xf2ff88cc	inet_getname
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf32cd651	simple_open
+EXPORT_SYMBOL	 vmlinux 0xf3397b31	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xf341a240	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3479c5a	of_root
+EXPORT_SYMBOL	 vmlinux 0xf348ff41	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf363372f	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3a11c35	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b515ad	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xf3b84783	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0xf3bcf167	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xf3d41f5f	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0xf3e18d5d	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf40019c0	tegra114_clock_tune_cpu_trimmers_init
+EXPORT_SYMBOL	 vmlinux 0xf44062d3	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44c3667	mount_single
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf455fb44	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xf4722e5a	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf47de693	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xf47ff748	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0xf4a04498	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xf4adcdf9	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xf4ba246e	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xf4baa334	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4eae9be	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f3a91b	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf5475645	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0xf5485496	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0xf5576353	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xf564412a	__aeabi_ulcmp
+EXPORT_SYMBOL	 vmlinux 0xf5683cab	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xf573da38	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0xf58e73ce	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0xf598a12c	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xf5b53161	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xf5b666ef	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf5c5f789	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xf5e26892	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5ee0c25	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0xf6034d34	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xf608503c	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xf608ad66	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0xf60ce35e	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf652d359	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf65740b4	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xf65b6859	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xf661a8bc	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xf664087e	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf67c99e1	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf68d16a6	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xf69413f5	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xf69663e2	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xf6a17612	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0xf6a5ee2e	qcom_scm_io_readl
+EXPORT_SYMBOL	 vmlinux 0xf6b972f8	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xf6bd5ca2	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0xf6df77b5	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0xf6e0a76c	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xf6e44c76	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xf6e71a46	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f7584a	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0xf6fb897a	ioremap_cached
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf704dc28	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0xf705fa49	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0xf710caac	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xf7163ec9	__raw_readsb
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf73e51c9	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0xf7436a34	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0xf7467763	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0xf7490ac9	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xf75007e4	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf76843b5	qcom_scm_pas_supported
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf77590d6	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL	 vmlinux 0xf79231fe	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0xf793f8ce	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0xf7af924f	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0xf7be47f7	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xf7bf5cd4	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0xf7d7e84d	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xf7dedcbf	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0xf8102354	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf8249086	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf838fd97	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0xf8445947	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xf84c3647	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0xf84e94e7	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0xf8505803	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0xf868464a	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xf86f27cd	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf88f1a51	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xf89ee49c	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xf8ac6c00	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0xf8b3c2bb	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xf8b4f0c4	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xf8b8592d	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8e7c565	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xf8ed2220	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf911aeb9	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xf9150d9e	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf94c9cd1	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf98051f5	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xf99822c8	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xf99df94e	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xf9a36b47	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9eb706b	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xf9fa9152	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0xf9fba046	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xfa021f90	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xfa0821c2	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xfa0ef7d0	md_write_start
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa5b1652	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0xfa86a9f7	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfab117cc	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0xfac2685e	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfae81b09	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xfaed7312	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xfaef38c0	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xfafc6f9b	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xfafd2624	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0xfb01b5b6	snd_pcm_set_ops
+EXPORT_SYMBOL	 vmlinux 0xfb03b84a	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0xfb08134e	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0xfb19971b	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0xfb1d7438	down_read
+EXPORT_SYMBOL	 vmlinux 0xfb21bc0f	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xfb29bc92	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xfb32f429	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0xfb336634	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb4cdeb6	cqhci_deactivate
+EXPORT_SYMBOL	 vmlinux 0xfb54ef63	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0xfb5e1b07	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xfb61a735	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6d05a8	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0xfb713af4	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL	 vmlinux 0xfba13845	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbaf1cf3	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xfbb5eb24	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xfbb7a3f3	kunmap
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbdda753	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xfc0ca250	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0xfc18e47d	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0xfc36579d	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f3589	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfc4365bc	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0xfc486a30	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0xfc4b8333	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xfc52abc7	qcom_scm_pas_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfc65459a	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xfc658873	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0xfc98dc29	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xfca50621	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xfcba517d	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcf15619	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xfcfe989e	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xfd08473d	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xfd15488b	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL	 vmlinux 0xfd5a07f9	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xfd6a16b8	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xfd6b219b	d_rehash
+EXPORT_SYMBOL	 vmlinux 0xfd7967ac	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0xfd8c5afc	release_fiq
+EXPORT_SYMBOL	 vmlinux 0xfd976dca	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0xfda30712	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdbd77ce	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdd90f36	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xfdda50f0	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0xfde4f7c3	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xfdf4cff0	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xfdfe2ed7	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0xfdff94e0	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xfe01af8a	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe101d6b	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xfe183545	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xfe34a02b	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5a5a5f	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe746f6a	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0xfe7c3e17	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xfe90c4a6	_find_first_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xfea2a7b3	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfeb80267	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0xfebed2dc	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfedd9191	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xfee9ae93	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff29e76e	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xff36c41a	follow_up
+EXPORT_SYMBOL	 vmlinux 0xff4f91b6	of_node_put
+EXPORT_SYMBOL	 vmlinux 0xff565f51	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff72ce1d	__sock_create
+EXPORT_SYMBOL	 vmlinux 0xff7df4ed	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0xff847622	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0xff8c2e5a	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xff8df18f	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xffa0fbfb	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xffab2e7f	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0xffb94ef0	_test_and_change_bit
+EXPORT_SYMBOL	 vmlinux 0xffc83cc4	nand_write_oob_std
+EXPORT_SYMBOL	 vmlinux 0xffd001ca	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xffd4f8bd	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xffe138da	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff3957c	tcp_v4_conn_request
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x64c00b35	sha1_update_arm
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x6778d924	sha1_finup_arm
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x08107a28	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x0e8948f8	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x196ea8fc	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2bd8e79a	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3cbabd41	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4928bfba	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x5b523026	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6088e3ce	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x75ca5cbd	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x84e70783	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x87f25b0a	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8b2a6c3c	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9037d1c8	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x93acd5d0	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9da7a561	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe92deb0c	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe97b5585	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xeb340989	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xd641987a	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x63fb963e	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x53d5371c	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xa67a4fb4	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x58aa335f	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x7bf2edc9	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x1b9a04e3	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x482bce05	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x521d5a71	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xd335520f	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x4815e2af	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xe59c3b4d	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0xf831812a	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x6519c77f	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xc751266b	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x23460ae2	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xa4d78180	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xad0481bc	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe32fc0ad	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x5dcf91b9	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x6ccba655	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x7a38c7da	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x7d33180d	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x827cdb7a	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa8a0ed91	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb05e7f7b	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb673f62b	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc8ebbe3b	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xdd6ca814	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xe7645162	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xedd3a28d	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf0ed3b6e	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0b568bd7	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x19d3c11c	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x228ad32b	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x2a67b9e6	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4127cf9d	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x42ac912d	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6d1af503	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7e01cf16	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb36e6dfd	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc689fd38	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xdc2db3f1	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf0a96766	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf6033612	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf8a85790	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x57a0d4eb	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x61779236	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x686ecf44	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x6b0713e5	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x09615b82	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x639ef638	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xc6251a6f	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xf15a758c	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x82732f36	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xafd18bbf	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xf5e6194e	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x5e7a1375	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0x0a812531	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0x36bda271	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xbf4774db	ks0108_writecontrol
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xedde6df2	ks0108_page
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xfee8ef7b	ks0108_address
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-ac97 0x47737780	regmap_ac97_default_volatile
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-ac97 0xb56fad97	__regmap_init_ac97
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-ac97 0xbe40d73e	__devm_regmap_init_ac97
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0xc74a11a9	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x2ef18c23	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x62761a91	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x9c328eec	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xa8e6e097	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x4db35469	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xa2efcf98	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xaa64dc0d	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xe8d7bd51	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x7fb1dea0	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x9e33544f	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x07c2bb1d	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x140d0faf	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x142586c2	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1a8dc7d8	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1dd429ab	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x1ffc2a7b	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2828302c	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x428860ed	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x45dfc121	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x5182e5a1	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x53d5ec19	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x64b7a46b	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x73910393	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x79628223	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7bd11df1	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8e75cb11	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xae980d6a	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb23abfd8	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xbb77f5be	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc30edb14	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcc1fd97b	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdd6ac3e6	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xe431fc38	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf9de628f	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x07268cf5	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x5667a7c2	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x84cbe854	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xb1c00df4	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xce52a989	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xd66f140d	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0207c6d6	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0474becd	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0cd6e6d9	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x160661a7	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x168e6941	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x26b2bf1b	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x450b4e39	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x54cc8a6b	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5848a0a5	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x5945608f	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x674122a2	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa3a9a347	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xb948f0c5	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xc858dd2b	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xd5126526	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf1cb6458	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xfeb00fc0	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x01c8e84e	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x26d5d851	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3a022430	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x3f4c8032	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x4945381d	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x560e691d	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x87a4a4fe	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xa1a0fbb4	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xb27c28d4	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xd2440c8f	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xd44f0a79	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x295df01b	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x2bcbe2fd	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x4e7320a1	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xb745602f	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xfe792887	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x25225d17	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x2547f652	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x4982ef4a	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xacb46284	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xfa7a19ca	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x3150d3da	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x3d756d6c	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x8d7f09c8	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xfd06b5c8	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x0c7f7895	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x1194a402	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x33fa39c1	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x76d87c06	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xd12aab8a	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0x4c8aa0d8	meson_clk_triphase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0xa8c11bfe	meson_clk_phase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/sclk-div 0x9b54bd6e	meson_sclk_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x00d9e064	clk_edp_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x03e13d6f	qcom_cc_register_rcg_dfs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x04bf3163	clk_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0650a0db	clk_regmap_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x065574e3	clk_rcg_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0ac38699	clk_trion_fixed_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0cabeb2a	clk_ops_hfpll
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0d678ab9	qcom_reset_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x12ac7e1e	clk_alpha_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x1ed919be	clk_rcg_esc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x205a2ef5	clk_branch2_aon_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2d89517e	clk_branch2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2df91853	clk_fabia_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x33e55c5b	clk_alpha_pll_huayra_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x395868a1	qcom_find_freq_floor
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x40e5accd	clk_byte_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x428b605a	clk_pll_sr2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x46e37d43	clk_rcg2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ad24f3b	clk_alpha_pll_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x512af5e1	krait_mux_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x51fb21a3	clk_pll_configure_sr_hpm_lp
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x524628c8	clk_rcg2_floor_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x5d5f07eb	clk_regmap_mux_closest_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x64447760	clk_enable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x66489e5b	clk_rcg_lcc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6af41b8b	qcom_pll_set_fsm_mode
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6ca8a88d	clk_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x73f8eedb	clk_rcg2_shared_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7404b809	clk_rcg_bypass2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x749eda9f	clk_alpha_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7708b673	clk_pll_vote_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x787e8234	qcom_find_freq
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x81ec30bf	clk_alpha_pll_postdiv_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8218c7e1	clk_byte2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x83811bbd	qcom_find_cfg_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x857cf9db	qcom_cc_map
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x911def65	clk_alpha_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x99f60998	clk_disable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9cb32992	clk_pll_configure_sr
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1143cdc	qcom_cc_probe_by_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1839eaf	clk_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa821f919	clk_branch_simple_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb0f971f7	qcom_cc_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb73a2cd3	krait_div2_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb94e69b7	qcom_cc_really_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xbbe74972	clk_alpha_pll_hwfsm_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc78100cd	clk_dyn_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xccc2b431	clk_trion_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcce7e449	mux_div_set_src_div
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd6345be4	devm_clk_register_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd8fc3e8e	qcom_find_src_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda15b634	clk_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda35a32d	clk_gfx3d_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda967930	clk_alpha_pll_fixed_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdb687f64	clk_branch_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdf674942	clk_alpha_pll_postdiv_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe3b34b5b	clk_regmap_div_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe5bc1f18	clk_rcg_bypass_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe87793a8	qcom_cc_register_sleep_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xecddec00	qcom_cc_register_board_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xef6a0edc	clk_alpha_pll_regs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf196beb5	clk_regmap_mux_div_ops
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x223a4ac7	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x25c2afa0	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x578f1fe5	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7470f5b4	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7c1f2a34	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x7d7712fb	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x84fa6169	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x85d77857	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xba9a481f	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc2974207	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xcf503c7b	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd784aa82	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xd7f9c04b	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdbf92101	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe2c1c828	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x29ccfd82	bL_cpufreq_unregister
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x7e2077f4	bL_cpufreq_register
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0x701db540	omap_crypto_align_sg
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0xd5328478	omap_crypto_cleanup
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x49078716	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xb3c067dc	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x3818b295	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x72b2c050	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x73220056	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x9663dc90	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xc829d535	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xe3b458f4	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xfc0c89a3	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x02c45d6f	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x135f19c9	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x1821557e	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x1e6b3338	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x2586d8ea	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x5faa6546	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x74c833a8	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x8ce00347	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x929b0f51	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x9ee86ec4	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xaaed47d8	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb69fef60	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xd78f21d6	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xe7cc7939	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xf34fc004	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xfc1bfd8b	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x2b945b46	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xf39c372a	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0x3fd21a66	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x9ecc1aa8	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0xd9fb3acb	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x00e37769	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x09bcc463	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x526ee10c	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x554d2175	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x55e35afd	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x60897795	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x69ec3140	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7385468d	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x80a0f6a3	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x88ae9224	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8c7e9e0f	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x9912a908	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x9a9073be	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x9d2b8c48	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa7c9e2ce	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb1c9eead	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc36a6aee	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe3b6a40b	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xeeffbf0c	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x08ff3afc	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0fc0be92	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x33ccea7b	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x37785d91	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x4abc6161	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x529130a1	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x53b11bb6	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x55fc58ab	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x75aaa7a3	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8595324e	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xd835549b	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xee36e532	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0af3074d	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x14764c73	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x1f3a38e2	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2dcfb66c	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x329b4b43	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x46b899e9	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x553d01cb	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x7df8e417	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x811d2420	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x881531c0	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xb3e9d15d	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc0a5030c	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf02f3b4b	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x002381c0	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x16744094	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x18227d5f	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x36618f48	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xa46cbf1e	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xaadef489	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xadc6e060	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x24fdef50	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3513907c	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x60a97912	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x65ad7205	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x8a3d49a6	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xb682a88e	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc4f279f1	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc74bc9ec	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xcc9a1bd7	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd2ccca01	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xdc868ce8	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe4ac7aa2	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0xee7ca389	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0xb0607373	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0xc569ad63	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x1df5f665	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x21d6a178	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x3b5515cd	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x7c19960b	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xc725a0b9	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x36481a39	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x445f4d01	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x53396898	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x6d994bc3	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0xff5ba185	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x5dcbe46c	aspeed_gpio_copro_set_ops
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0xd45ad727	aspeed_gpio_copro_release_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0xdc580b6d	aspeed_gpio_copro_grab_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x6adc14c2	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xcd8089b5	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x232be430	analogix_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x30ffd26f	analogix_dp_stop_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x4042ab13	analogix_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x6bfbf06f	analogix_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x8838d49d	analogix_dp_suspend
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xa776a496	analogix_dp_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xebb7feab	analogix_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xfced5992	analogix_dp_start_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x00facd84	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05	dw_hdmi_set_channel_count
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5	dw_hdmi_phy_i2c_set_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2d1c0e80	dw_hdmi_setup_rx_sense
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2fac9436	dw_hdmi_set_channel_allocation
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x316212a8	dw_hdmi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x42926f4a	dw_hdmi_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x4a9b174f	dw_hdmi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7	dw_hdmi_phy_gen2_txpwron
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee	dw_hdmi_phy_i2c_write
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43	dw_hdmi_set_sample_rate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x90625180	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd6968220	dw_hdmi_phy_setup_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd8fe547b	dw_hdmi_audio_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xdafa1790	dw_hdmi_phy_read_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204	dw_mipi_dsi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x18bdd1bc	dw_mipi_dsi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x41361ae4	dw_mipi_dsi_set_slave
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x42ac3b2e	dw_mipi_dsi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0xb80c6be3	dw_mipi_dsi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x169f1c9d	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x1a346451	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x22fa7977	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2ae2978c	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2cbb4cb6	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x45ffc5df	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4b800dc6	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x55244a2d	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x554519c5	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5f8d1f49	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x63bd4ae4	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x724c5cce	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x74b19eba	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x77755cee	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x79b26ced	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x82edcc37	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x8b3d0360	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb4bb993c	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb8248aea	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbbd3b13e	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbff91de0	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc5f75fa0	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xd99c7cb1	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xdebb8bd1	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe277235a	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe8c174c9	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf07ea935	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf6cb797e	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf7800bb4	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x12ba8450	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x1e5fa519	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x41cd7b33	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x5bf6a99d	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x85e963d0	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xb913574c	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xf9750298	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x6560cf38	imx_drm_encoder_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x6642071b	ipu_plane_disable_deferred
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x672eb453	ipu_planes_assign_pre
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x69abe3d2	imx_drm_encoder_parse_of
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x837653fd	imx_drm_connector_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/mcde/mcde_drm 0x67722f07	mcde_display_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2b36798a	meson_venc_hdmi_supported_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2c73cfcf	meson_venc_hdmi_venc_repeat
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7da21708	meson_vclk_vic_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x8428cff0	meson_vclk_dmt_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x8fa8b0cd	meson_vclk_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xab5bee2f	meson_venc_hdmi_supported_vic
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xae988497	meson_venc_hdmi_mode_set
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0x43d0b12c	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x508a9ca9	rcar_lvds_clk_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xa5a45eb2	rcar_lvds_dual_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xa9593933	rcar_lvds_clk_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x3365360f	vop_component_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x5f5044a0	rockchip_rgb_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585	rockchip_rgb_fini
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x01f4ee1f	ipu_image_convert_adjust
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x050f0d7b	ipu_di_adjust_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x07036df2	ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0728116a	ipu_csi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x07ff9414	ipu_cpmem_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0bd1e89d	ipu_fsu_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e42bd95	ipu_csi_set_dest
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x106ee927	ipu_idmac_wait_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x10da1ece	ipu_cpmem_set_format_rgb
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x118160e1	ipu_ic_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x13952dfe	ipu_dmfc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x13bfad0b	ipu_prg_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15dfd627	ipu_prg_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15ec2ba5	ipu_di_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18730251	ipu_rot_mode_to_degrees
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18aa0dcd	ipu_image_convert_abort
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18b9828e	ipu_cpmem_set_uv_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1b8cbeb8	ipu_module_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1e913d9f	ipu_csi_get_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1f01ade1	ipu_prg_format_supported
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x20e09f6f	ipu_csi_set_mipi_datatype
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2424c9a6	ipu_csi_is_interlaced
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2541d955	ipu_cpmem_set_rotation
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x258a4439	ipu_image_convert_queue
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x26de91bc	ipu_dmfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2cf7ed72	ipu_dc_init_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2e825a67	ipu_smfc_set_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2f92d651	ipu_ic_task_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3020d65c	ipu_prg_max_active_channels
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x306669a5	ipu_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3166aec7	ipu_dmfc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x31b0b1d6	ipu_idmac_enable_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x326040d9	ipu_prg_channel_configure
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3d8f18f6	__ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e86ea72	ipu_di_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x418a282f	ipu_drm_fourcc_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42aacb38	ipu_srm_dp_update
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42d3d500	ipu_image_convert_unprepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4917f47a	ipu_ic_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4986e52e	ipu_cpmem_set_high_priority
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x498b4c7b	ipu_image_convert_enum_format
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4ad441b5	ipu_cpmem_interlaced_scan
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4b0a0fe7	ipu_csi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4c179b49	ipu_dp_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4e4cada0	ipu_set_ic_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x51475e87	ipu_dmfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x521d5c3d	ipu_idmac_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x527f3b94	ipu_smfc_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5370560f	ipu_smfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5388517f	ipu_set_csi_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x53de277c	ipu_di_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x55767280	ipu_vdi_set_motion
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x580d2f81	ipu_vdi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5b15aea8	ipu_dp_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5b8b5ec1	ipu_vdi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5cae270a	ipu_vdi_unsetup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5d27fc13	ipu_dc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5d87c158	ipu_idmac_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5fd7df00	ipu_cpmem_skip_odd_chroma_rows
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x602c1c50	ipu_ic_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x60bdf2ec	ipu_csi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x623722e2	ipu_ic_task_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x63593ec7	ipu_csi_init_interface
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x658a606f	ipu_ic_task_idma_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x66e729d2	ipu_mbus_code_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x66f690a8	ipu_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x69850665	ipu_cpmem_set_format_passthrough
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939	ipu_dc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x72ff0823	ipu_idmac_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7367fc54	ipu_idmac_get_current_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x73f303bc	ipu_dc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x747eaf4e	ipu_image_convert_verify
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x78f05f2d	ipu_dp_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7cd246c7	ipu_dp_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7de6d95b	ipu_cpmem_set_image
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7efdc14d	ipu_cpmem_set_yuv_interleaved
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x80cf7026	ipu_prg_channel_configure_pending
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8497c7d4	ipu_degrees_to_rot_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x86da7eff	ipu_cpmem_set_axi_id
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x886c35aa	ipu_smfc_map_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8d8149cc	ipu_cpmem_get_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8eb22643	ipu_dp_set_global_alpha
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ece82bd	ipu_pixelformat_is_planar
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ff0e325	ipu_cpmem_set_block_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9058e289	ipu_smfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x91ce1a04	ipu_dp_set_window_pos
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x92ccff4c	ipu_idmac_lock_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x951a09d5	ipu_csi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x96e3a716	ipu_image_convert
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x97f08d2f	ipu_ic_task_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x987f6508	ipu_idmac_set_double_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9f38e177	ipu_dp_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa3752888	ipu_cpmem_zero
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa375b35c	ipu_idmac_select_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa4b0cabd	ipu_dc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa60b144b	ipu_csi_set_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa6a47bba	ipu_dc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa8adc101	ipu_pixelformat_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa96882d8	ipu_ic_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa9b15dfd	ipu_idmac_buffer_is_ready
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xad09ca7f	ipu_di_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xae28a11a	ipu_cpmem_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb0f712b2	ipu_idmac_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb369d1a1	ipu_image_convert_prepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xba458b8f	ipu_csi_set_test_generator
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbe293b07	ipu_cpmem_set_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbf983ba6	ipu_vdi_set_field_order
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc13ccf4e	ipu_map_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc3c2cdb0	ipu_smfc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4af2e81	ipu_dmfc_config_wait4eot
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4b15642	ipu_csi_set_skip_smfc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc6675aa9	ipu_csi_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc677177d	ipu_smfc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc75a9001	ipu_image_convert_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc75a9ff0	ipu_cpmem_set_resolution
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc97e7a0f	ipu_di_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcbea3eec	ipu_di_init_sync_panel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xccefb204	ipu_cpmem_set_yuv_planar_full
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcd7fbaa4	ipu_ic_task_graphics_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xce10db35	ipu_stride_to_bytes
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcf134908	ipu_prg_present
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd591003b	ipu_idmac_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd6392d56	ipu_cpmem_set_stride
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd85f4965	ipu_idmac_clear_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd8f285f0	ipu_vdi_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xdc80c4a6	ipu_idmac_channel_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xdc8b7d6a	ipu_dp_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe300a959	ipu_dp_setup_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe6243c52	ipu_dc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe66fb651	ipu_cpmem_set_fmt
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xec4875fc	ipu_module_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xeea12b31	ipu_vdi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xef5b61fa	ipu_idmac_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1440dc1	ipu_ic_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1abac7e	ipu_csi_set_downsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf22a031d	ipu_fsu_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf2881440	ipu_prg_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf541df2d	ipu_vdi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xfd53c3cb	ipu_idmac_channel_busy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x03492e34	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0676768b	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0677823f	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0fe136c3	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x16753104	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x29f7da7f	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x38b89571	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3da1df24	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x412c36d7	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x45aabdb9	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4ceea93e	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4f380021	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x50517685	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x52a0ed59	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5ea360ef	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x68702ef4	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x75c9730a	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x76d22623	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7d068b34	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x81b971aa	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x81dd1a4a	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x878584ac	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b0c6307	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8bd83848	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x92438c2b	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9abd2ed6	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa6998feb	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb4ddebc3	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb97a76c6	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xbebe6e9f	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc884c754	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcb0e51e3	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xce708347	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd1ab9ce6	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd510be1e	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xdb7d1f72	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xde0eb53e	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xed6be0aa	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xef598879	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf5deb4dc	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf9cf8635	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfcd391a8	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfff758f4	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x018e8ed6	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05c83228	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x08d76813	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0c829006	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0cef4b31	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x130fc39f	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1ac1f058	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1be9fb7c	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x33d7e042	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3d121506	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x414a6d85	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4280193d	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x42c1d744	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x49422d5e	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4f74f957	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5090faad	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x59eb288e	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5e071159	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6f69560e	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x733e3353	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x786045fe	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x98f68a5e	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x9a83900d	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa0854139	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa51bf190	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa5dfed76	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb0e710ce	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb66fadd2	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xba93dff1	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbbe78f84	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbc927509	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xbcea899c	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc26abd41	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcbc6d1c2	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcc6252a1	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xcf794248	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd394aa05	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc1e6d91	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc5d8bb0	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xddf616ed	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe0e57471	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xecab21d6	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf002a07c	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf00c29f3	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x62c916d4	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x09b35584	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x2052658a	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x6542ef4a	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x69351cac	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xa20039c5	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd9138793	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x28c2e641	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x44ee2e8d	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x765f49d3	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8bb2f151	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xa5058366	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xc9aec8f7	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xdcfea484	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xde906973	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf2704512	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x755f8257	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0xceb04fdc	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x26b25a1b	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xe00f8488	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0x0e0e3344	ssip_slave_running
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0x9dad7839	ssip_slave_get_master
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0xb2801ea9	ssip_slave_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0xbe0669db	ssip_reset_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/clients/ssi_protocol 0xc160e053	ssip_slave_start_tx
+EXPORT_SYMBOL_GPL	 drivers/hsi/controllers/omap_ssi 0x758acb25	ssi_waketest
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x01c60ef1	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0fc96275	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2381c22f	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x376e14e0	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x3eaa669b	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x44309d70	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5213daac	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x58f7fabc	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5adad746	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x61e2218d	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x6f6d463d	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x7ddbd86d	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x96893be6	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xa37b4137	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xc6ffaca3	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd6945870	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xdc8dcfdc	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe9428e54	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x1d9720f0	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x49dbb2b0	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xa13dd6df	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1176fdca	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x16faa63c	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x2d47210b	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x327f4aa3	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x434e5130	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x5153a6a7	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x5566828d	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6b0ee8f8	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x796657bc	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7a92ae4b	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7c82632e	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7f4d5787	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x90863fa7	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa896fd40	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb33ab317	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb725a65a	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd02dec5a	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xee46149e	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf1d08d3b	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2f596ba3	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x389630de	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x670b1edd	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9bbcf401	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9bc28927	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x9ef1f4e1	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb63ace78	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd30b573b	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xf24ab208	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x14f891fb	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x785a8aef	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xaace6d69	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x01b456a0	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x15adb851	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x275a4ebe	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x475147d7	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x4ac71f89	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x5d40be7c	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x8e913db5	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa1dca959	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xb078eaa8	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x1088e62b	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x228ae84a	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x5a103e4e	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x951947dd	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x70330470	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1cda8ed8	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1dd8bf61	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x21d4dd3b	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2804853b	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4267909d	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4950a8df	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x499a86ed	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4adc7154	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4ed56bdd	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6805695d	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x750338a9	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x750c8897	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x890f4ca5	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x89cbddce	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9f3d9d0a	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa1af3414	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa34151c0	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc49b1f29	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc8933848	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd2657883	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xddbddcdf	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xdfc12ce3	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe1a013b3	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe3823d3d	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xfc15d515	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0x19eb153a	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xdf0ec269	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x43d3a835	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x6ffb7b7b	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x973fb641	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xb927014e	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x37159375	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x73c7bc5c	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xb0ef917b	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x4522f929	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xb6e7713a	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x317bdb28	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x40e57869	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7db84d99	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x9c07d374	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xad88dd1d	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xbdb8becd	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd0e37c2e	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xd67bdc8c	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf0f6e046	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf7d8ab87	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x1b4c7dab	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x73fb88b2	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xfcae9a8b	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xfff2647d	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x21205b13	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x719f03b6	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xd5c0d07f	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xe7633263	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xf2b000a7	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x29324e3b	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x04da9747	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x0f0e63e0	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x26407aee	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x320d4640	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x71a49a66	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x75b88c4b	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x78294e10	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xbb6be3f8	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xfd27d0f5	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x82a33275	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x962ff026	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x6df0cddd	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0xd6ca6437	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x354abf5a	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x7308e947	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xa6de4e37	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x39c8a0b4	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x5e2f6fbd	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xabf5c9ce	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0993db16	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x0e04b49d	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x13c85f5f	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x13dfd182	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x33c2e5e7	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x400ba10e	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x70414e99	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x77670b8e	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x7cacc87f	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x9b77f485	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xde12aa29	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xfb900686	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x0ff334c9	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x283f026a	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x34d43b76	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xbe691139	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x03fa5a14	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x05fe48cd	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x08bafaac	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0a8871c3	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0f8d87bf	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0fccae24	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20ce344a	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2620f002	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x28801de5	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35990f22	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4245612f	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4902e8a4	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x51e6a3b2	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x533367a6	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x558b686e	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x587cffd9	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x59c0b45a	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5b436819	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x639b589f	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x66094b36	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x69f35351	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6a8f6ec5	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x756935fa	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x763784a6	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x78985831	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7c5615cb	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7eafe737	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x81afaed8	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x825eaf1e	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x853a1a1f	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x88d53908	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8a08d3a3	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x927d1c6f	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x972b4025	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9b9e519d	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa96a0761	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb0cddf4c	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb5550609	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb9d241dc	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbbd34b00	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc8a5be5c	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc9b7e646	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xce11277e	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xeb5bb1f1	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xed8db294	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf21deec5	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf59ad29a	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf75257e9	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfacfd7df	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfec5cea4	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xffd8d65f	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x661a352f	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x65094f58	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x0c616bc8	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xa217836c	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd1d5b992	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd20ca3c5	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xe36f4d27	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xf9f2c019	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xb1465701	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xeebb75d2	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xa145f47b	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x17272814	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x35cc4b4e	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4b872feb	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x4ddcaa08	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5b723888	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x711113ca	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x86ed1d6c	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xa5ea4654	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xa618ed11	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb0de1dde	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbf8ed860	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xda0d337b	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xff5ccf6e	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x06fc5f23	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x0aa796ec	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xf1b29335	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x432cec66	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x87d8478d	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x11b88b9d	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0xdafa9255	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x0fab818a	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x386b001d	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x6a10f4ae	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xf9213415	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x42a8b68f	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x502288f9	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6db6da92	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x6fed56eb	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x7008c7c8	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x7a4911ca	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x9fe3f932	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xa11cda0c	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xad331ab2	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb36377dc	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xbc899547	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xd010a4ef	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x1828b01c	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2cf66c38	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x407a4c08	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x40eed984	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x689b7c8a	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7e29dca1	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x80ba4222	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x8e19ceac	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xa1635da4	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xa353b0ac	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xb01b8909	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd674aa6d	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xdf62ab17	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xe4f08c06	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xee0acaef	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0x81e513ad	qcom_icc_rpm_smd_available
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0xe8dbdc6c	qcom_icc_rpm_smd_send
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x14450656	free_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x438d8df2	iova_cache_get
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x560ca013	copy_reserved_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x632be339	find_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x6591423e	alloc_iova_fast
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x7b03b40e	reserve_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x89032608	put_iova_domain
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0x99b29474	free_iova_fast
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xa4066476	init_iova_domain
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xb9939bcd	queue_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xc7061ef3	iova_cache_put
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xc76f53b7	alloc_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xdaa3dd25	__free_iova
+EXPORT_SYMBOL_GPL	 drivers/iommu/iova 0xf4901ce0	init_iova_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x08bb1b19	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x2d5ad92a	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x6e7a64bc	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x90cc47f2	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x9195fecf	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa2874117	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xbc1ef57e	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xcaaee248	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xf24fbf72	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x5f435ca0	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x65d4193f	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x83e08299	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x86749868	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x894b6ba8	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xb8a5c680	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x165392a6	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x17819e55	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x392a937b	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x54fcd37e	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x5d48110d	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x7e7b31e1	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x93aadaaa	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x97e32032	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xa042853b	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xae1d4647	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xbe9a00cc	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x0b61b259	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x12c49297	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3567ac10	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x35a996d4	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x65463887	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x73608fba	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x7a70811e	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x965d93e9	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9f5d2fe4	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xa0f5f8e2	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbaef107b	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xbcf52873	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xc8b5be17	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xcc070dec	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xf32cd2d1	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x00af95a1	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x06d94b0a	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x157aa73e	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19a50641	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19acd14e	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x1e382318	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x24935482	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x28991160	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x29ef0066	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2cd1be34	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x3ae1afd1	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4f0216b8	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x56bd5947	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5cb0a24a	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65835607	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x68b2f180	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7baca7fe	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x95286aa1	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x9cedcd57	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa60fcee9	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xafae4e81	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb4b03b2e	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb7500cb5	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc1fd1dbc	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd4cd3c1a	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe278bd6d	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe68d70a9	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee926d8f	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf30b9aa6	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf438022f	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfbd03183	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1626c74b	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x167195f7	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2af12c44	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3322afe3	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4d75a4e7	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x64525054	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x745ad764	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x75914673	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x89f868e8	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9804c3ee	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa43eac62	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa4a90d5d	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb365948e	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb77b38d2	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xbf4041c1	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xceed89e3	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xfa158582	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x25efb354	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x030308a4	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x03bb93e0	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x36ea0d11	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5730f8ae	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5b3dc349	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x8f647e48	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x90136207	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x6ea9ed69	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xc987914c	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x2b39e6b1	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x970764c2	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbd47f5e0	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xc8d376e1	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xdcc93cf3	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf61ccbe9	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x00ca2ff5	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x29c25d50	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x46af8087	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x55f98e63	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x64976f82	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x8a56150c	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa433adbc	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa7083b63	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb8dbd4e1	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6367ed7	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3e25192	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x1c2730eb	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x1e904bc9	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x254b2703	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x8515eb9b	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa8a140c5	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xbe314164	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc2402ffb	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe39505ca	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe53bdaad	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xf54bfa60	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x11235868	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x34d14338	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x34deb5a4	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x60427657	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x6a3f4cf1	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xdf444965	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xfa19ac36	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x02ffd15c	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x072ea86a	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0d809f40	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x23dfc46a	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x3e6667d1	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4088c5a7	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4ed84b3e	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63222b29	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6a5cd5db	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x96adbe01	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xa52ea62d	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbad3fa0	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbde22850	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc7ac3013	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xc867c530	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xcf222911	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xe5807918	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf303e636	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x04b35a39	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0aa6af5e	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0c35a7a9	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0e9506ae	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x10a98990	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x15466ba4	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x16f67eef	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x17a21c76	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2369f055	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x290619db	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x31d44104	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3b9fd1a8	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3de316e6	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4305428d	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4430cbff	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5ae92386	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x68a856e3	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6dd7c287	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7eeeee2e	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x80f3c348	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x840f9321	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x9e9f534a	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa03e6cc6	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa668fbb8	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xaf28311b	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc24a4535	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd8192224	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xdc94b39c	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xdd5424bf	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x3934e929	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x3d8d6048	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x98fb7f3e	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0x7d22271c	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0x212dab3a	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x004efcc5	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x083e9801	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0bf537fa	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x109d031d	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1f3900ab	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x23de5114	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x280204b3	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x34bf9b1c	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x40d5786e	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x47505e44	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5270be54	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x62844da3	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6ea0c026	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7029bf99	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x77067ede	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x79b4e852	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7ff9a9e1	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x83b6373d	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x89fa1826	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x96176caa	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x9ab04ea2	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa9084027	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb49ec8a3	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc1d53917	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc5ead1a9	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xcbb4720d	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd9afc3ec	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xdaaeb038	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xee13ec69	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf4baf572	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf945ec48	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x6da10455	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x5f1d1bd6	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xa699e27d	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xb2a89b56	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x416e0331	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ascot2e 0x2ca11760	ascot2e_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0x8f7e7303	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0x6b6c554b	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0xdc07536b	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22700 0xe39c850d	cx22700_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0x7cf54c0b	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24110 0x7fa5b359	cx24110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x160e7373	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0xe13abf37	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x106bffd8	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0xe47bce62	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0x71d9b77d	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0xd1967116	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x80b3960a	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x8c998e65	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0x3be1bdc2	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0x49263f85	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x764aa400	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0xb52dd6f0	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0x91a847e7	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0xccb2b0e9	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0xdf94001e	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0x9a6a24a3	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0x4a1d9fda	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib9000 0xa66b6a8b	dib9000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0xedf27788	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0x222ba4a6	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0x40a96b86	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0xe3883b0e	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0xf03cd7e0	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0xba15e484	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x0321c021	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x2bbf02d6	helene_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0xf8cf450a	helene_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/horus3a 0x8bb115ac	horus3a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6405 0x4feb5231	isl6405_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0x88f868b6	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0xf0f068f8	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0x1981ec89	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0xbbd9ef9e	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/l64781 0xb06c81f6	l64781_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0x6c60dc75	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0xa6270d5d	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0xf7152d03	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0xe38bb76c	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0xffccf678	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbh25 0x5c0485f4	lnbh25_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x5c3fb3c8	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0xabc16633	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0x87857896	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0x011b4872	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0x55fc94fb	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a16 0xa359a3f6	mb86a16_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0x7efb17d1	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0x47498b30	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0xa954320f	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x0589ad51	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x731c7a65	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0xe0254d85	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51132 0xccf93547	or51132_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51211 0x9d93c473	or51211_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0x5ab0215c	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0x1894ebb8	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0x6d00dcbb	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1432 0xb0c5b121	s5h1432_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0xa67372dc	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0xa4aef310	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/sp887x 0x7802a968	sp887x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0xad8d64f2	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0x2c1e0834	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0xd66fa5eb	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0xf3991248	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0x1a5d5edf	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0x1231b7a4	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x18e52df0	stv0367ter_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xc065dc63	stv0367cab_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xfe02f7b2	stv0367ddb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0xca951d31	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0xd3df7d0f	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0xdd65a1bd	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0x9905ebc8	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0x896fa686	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x3fa470d4	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10021 0x99d1e4d8	tda10021_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0x7f8e20ab	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0x7ed4a63e	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x05edab28	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x2199a3c7	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0x24e4be2b	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xeacf2fb0	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda665x 0xdc67006b	tda665x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8083 0x4d6d6900	tda8083_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8261 0x42a4a3b9	tda8261_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0x9935f091	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0xf37bb15c	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tua6100 0x10dfd9f5	tua6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1820 0x30c4c8de	ves1820_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1x93 0x35e08b48	ves1x93_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10036 0xd222cdc6	zl10036_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0x6368f578	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0xf4c30962	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0x2bcbff2c	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x404b0d7a	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x07b9b66e	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x18080b7b	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1dbacfdd	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1ea5b6aa	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x263cf268	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x37088264	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x420b5779	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x424686bd	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x44087284	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x636bd21b	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6908e0ac	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6f6047fd	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x76b2d039	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7959642f	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7d6ca714	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x83faf7a4	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x850a36fc	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8793ee68	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x890f0d1a	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8c3b1726	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8ffa5e29	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x97e5da1d	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9956ce3e	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9fc9c757	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa1b97986	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa3c08214	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa72b9fcb	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa97af843	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb937ddfd	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xba9357c2	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xca34f2fe	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcd57e35d	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcea38b1c	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcf4290ac	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcf48c379	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xcfc4ab28	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd6e8a5f9	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd96d2caa	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd9712631	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xde699ff8	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdf262f56	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xecfc8d0f	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee15aeaf	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf8ffaac6	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfadd7e89	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfccc09d2	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst 0xbe652a6d	dst_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst_ca 0xce35d21b	dst_ca_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0x5c455c3a	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x08e4c67a	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0be910e9	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2579677b	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2f50fb15	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3b4b4885	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x44f148a9	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x52588aeb	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x64c85d06	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x68c51ff3	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x78663f9b	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x867ae47d	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8f5269f1	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x99bb1b69	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xb3629555	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xbaa97dcf	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd3babfa1	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xef692613	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xf6c6cbb3	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xfaee6ea1	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x097d81a7	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x0a3e91d8	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1a0661e6	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1c05bdca	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x284ce38b	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3c395587	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x53ca3377	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6112138a	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x7cb36e91	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8b2a3ea2	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xa4f929bf	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb9e49ca2	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbf08c51c	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc57cafae	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xca8663eb	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xcc9e1663	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe1fccbe2	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe9ec1284	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf5f50211	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x3bc1ae66	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x4fa28674	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x683e0c02	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x73b23829	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7d1770f0	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xb0905f93	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xfc2a3a68	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x26dba072	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x45618c26	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x590d1c2a	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x941d1298	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0xbc42b3a5	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x0cdc1135	vpu_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x446e6c56	vpu_ipi_send
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x457b4ef4	vpu_get_plat_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x6c3578ef	vpu_ipi_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x90196259	vpu_get_venc_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xe1f4f4f2	vpu_wdt_reg_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xf339c242	vpu_get_vdec_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xf7bf8a04	vpu_mapping_dm_addr
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x085d8e48	omap_vout_try_window
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x0a59c11d	omap_vout_new_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x0d615dfe	omap_vout_default_crop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x3739df24	omap_vout_new_window
+EXPORT_SYMBOL_GPL	 drivers/media/platform/omap/omap-vout 0x6e8a3074	omap_vout_new_crop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3a734283	rcar_fcp_get_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3d858696	rcar_fcp_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x4ad5d888	rcar_fcp_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x5fe6f6e8	rcar_fcp_disable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9877c29f	rcar_fcp_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x39142c7a	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x767f82fe	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x7d1e6a0f	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x969f8fe2	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xe013ffaf	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf8ca7b25	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x04effa06	vsp1_du_atomic_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x13b62ec8	vsp1_du_setup_lif
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x580410f3	vsp1_du_map_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x5dce3ff7	vsp1_du_atomic_update
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x6091093d	vsp1_du_atomic_begin
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x9701a1b3	vsp1_du_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xa876657d	vsp1_du_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x0e294a58	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x403f4c2c	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x6a4e4f68	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x719beed6	xvip_cleanup_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xaecbbf99	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xcfe93c11	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xfdb1d31a	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x3c16a6b1	xvtc_generator_stop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x47d7900b	xvtc_generator_start
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa24221dc	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xdc030d9b	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xe369cbe4	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x59c11640	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x62958c94	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x78864df7	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x92cd8810	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xa05745ae	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x165d7b66	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1aaa6953	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x26485967	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x27a0e842	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2a19878e	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x38f4979a	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x3df34ef5	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x439b1d8f	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x62541547	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x772f613b	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x79437c62	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9ee01ae6	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa0770c91	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xa08cd706	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xba09216c	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc01326a5	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc41dd8c7	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xcbc41f03	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xcdff32df	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdea4ee32	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xeb59047f	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0x2f2590c9	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0xb1072f65	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0xef879ac9	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0x77317bd0	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0x615efc3e	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0x8e5b3c0d	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0xa4af5516	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0xa0fb33f5	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2131 0xc355db39	mt2131_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0x2ebfe916	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0xf67bafdd	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x97343054	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0x64e2ca3f	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x41de2d20	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0x96d9ffde	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x680ec019	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0xd3305171	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x6e584655	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x9de95e01	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0xfd875e91	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0x101c21e2	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xab82fbb8	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xa243af7e	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xeec1caed	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x57bb1812	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0x94151daa	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0xc4bf7060	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x0b211954	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x13b67f41	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x19a42b23	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x23fed051	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2bc5eb3c	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x32841bcc	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x3f0f1aa3	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x536db086	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x54271e45	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x59fa0d77	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6106fde6	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x760408af	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7f58dfb3	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x82a40de0	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xa25188d8	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb7389771	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xbdbbce79	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcb8a1fb2	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xdde5a528	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xf736fffe	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x5454d493	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x7b6fe738	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x159a2b87	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x3eb87a49	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x46495b13	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4b23aadf	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x636171e6	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6691f329	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6988b3de	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7ef5d68f	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8315cc1f	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x848a03f9	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8b211215	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9ff5a199	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa0a3839f	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xae1f1100	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc858a5a1	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xcd38dcce	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xcd41f973	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe87bf0c8	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x04256514	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x6ea5902c	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x85f48729	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x93b3b5a7	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xef15cc44	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x6481b146	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x8568551c	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xc6e8dc81	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x15c91fde	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x1a5a4a20	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x3e7352af	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xbd57f1fe	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xc227508a	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xca30511c	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xcdaa3f1d	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xd6ebab83	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xdd619c12	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xf3cac2b8	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x029d04b3	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x080eb3f7	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x08ced8ad	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x11bb111b	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x194bd0a9	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x300ff585	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4093feed	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x450cd2d7	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4c1e9ab3	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5620c76f	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x588972a6	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5c41a209	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x687ae99d	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6acc7fa0	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6b6a6b7a	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6efb3f7d	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7930e1c0	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7ab17d68	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7efacd54	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x86655919	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8c8086ea	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9188e761	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa86a5045	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xabbdd6f9	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xaeaa4df0	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb10963ba	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc22be28d	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc9442dc8	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe2af0eac	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe6ba3938	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe89efe15	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe90f3f3d	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe9a31722	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xee5e24f3	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfa7a6c95	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x060fe125	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x081bad28	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0894263c	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0b81656c	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x2f74ef68	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x424a21b7	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4865256e	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4a4f6fe3	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x4ea546e1	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5f2dfac7	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5ffe0e7b	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6a2bdc47	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x724ab352	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xa52c18db	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb232b2d9	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbbc7f538	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbd0e54fe	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xcac3262d	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xce5054a2	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd8006cca	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd99fbae4	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd9ad7ee0	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe8fac36b	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf2b59e61	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x080bee70	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xa59c4853	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xb56e2ab3	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xe546a253	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x1c37a64d	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xc8ac7616	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xec7b1053	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x05080aad	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0657aba5	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x082e851b	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x09a565cf	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x113b31d1	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x14afce37	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x163d86bf	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x178a4812	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x218504f4	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x25a0b77f	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28a128ee	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x348a2fa1	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x34ccb6d7	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3ebec859	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x48b004f5	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4e2dda70	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4f21172a	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x524a5763	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x52b0fe6a	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5dcd1873	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5de76c13	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x61817752	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x65d8d801	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x67ce935a	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6968e5da	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6a146972	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6ddf9758	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6f42041d	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x700ac7b8	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x72a51d16	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x7d5e70cc	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x84b834df	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8bd73613	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9165d513	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x938f70f9	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x95ff7832	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9804f7a8	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ce274bd	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9e01ead0	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa2e603d2	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa61c4903	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb3bb8c53	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb7ddb410	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbb48eb25	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbb6bf11a	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xbf56d98a	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc164af02	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc74dea0d	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcb3ba106	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcf842e4a	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd0697430	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xde9e7f92	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe29688af	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe8770199	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe9bf6f59	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xef86b33f	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf957b37b	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xff76573f	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x27ed2092	pl353_smc_set_ecc_mode
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x2eec2ab2	pl353_smc_ecc_is_busy
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x31112d75	pl353_smc_get_nand_int_status_raw
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x80ef3725	pl353_smc_set_ecc_pg_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x84eeb67e	pl353_smc_set_buswidth
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc00d163f	pl353_smc_set_cycles
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc37aa3c1	pl353_smc_clr_nand_int
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xe2603369	pl353_smc_get_ecc_val
+EXPORT_SYMBOL_GPL	 drivers/memory/ti-emif-sram 0x49a8a623	ti_emif_get_mem_type
+EXPORT_SYMBOL_GPL	 drivers/memory/ti-emif-sram 0xbcf322c5	ti_emif_copy_pm_function_table
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x02979aee	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xccf33d75	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xe8c4d83c	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x2290f0b9	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x32208607	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x9d669163	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb69db7e6	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xb736be2c	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xed637bb8	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xfc6acc90	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x1c76dc20	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x4f579dfc	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x5693a972	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x6eac469e	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xc008038a	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xc52bbb09	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xea1bb964	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xf54d2585	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xb8a8267e	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xe11e087c	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xf135f844	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x2a32179a	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x74c4582f	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x8165e5ea	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x8b71d9e5	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x94378b3c	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xdac0c92a	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xf10e98f0	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x56f1bbbb	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x8d6158bb	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x99d6a7f4	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x01736454	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x15a6d4e7	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1e577661	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1e5aaa21	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x237b9677	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x23a88685	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2db3151c	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5d626b6d	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5d6fb72d	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8a873694	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8a8aead4	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x97a1c1a1	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x97ac1de1	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9902df76	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa5d35ad9	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xa5de8699	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb2383d12	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbd062d69	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xbd0bf129	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc9b22b98	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xc9bff7d8	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd391c883	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd494dcad	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd49900ed	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe6e647d5	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xe6eb9b95	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xfe333065	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xfe3eec25	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xacf5ca0a	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xb4d58298	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xb597f7b6	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xe86a8c88	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xec4f812a	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xfe407442	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x11e613f8	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x39d446f1	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x3fa51160	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x4b304aa7	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa0466dc3	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xa19151e2	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xb7a242cc	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xd8e936fc	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdcbf9a18	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xe9d87801	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xefc56cbf	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x4f8bdf81	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xc458b4ee	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x18485f2c	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x18cd8cfb	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xa0a94fe1	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xace59f3e	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xed99cc5d	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x6a049032	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xeecaf484	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x07cc91e2	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x136479b4	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2688847d	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2ee1f70b	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x306d36f4	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x31246178	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3561361f	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x36c30a7c	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3f2a2ceb	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4492934f	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x51192ced	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x51c615db	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x51fd2cee	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x55815b79	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5703c4e5	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x622fcc22	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x774cfb33	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x82b53579	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x93a69bee	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9892439e	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa3d15510	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xae7ab872	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc6df4e9b	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc6e595f1	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc7044da0	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcf2c56ec	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd10e8255	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd2834f1c	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd7e69c14	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe7cad22a	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xeb40c55b	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf29c5b57	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf36514c8	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xff230f06	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0x6b091608	ssbi_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0xbc068d38	ssbi_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xe1a02109	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xf0d59621	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x58189c21	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x6246d4ae	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xc5e17840	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xda32552f	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x999337a9	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xbd5c95b9	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xcb8a7694	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0xae2e6aee	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x08f792b8	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x0ce454d2	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x135d12b0	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x5de0a10e	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x77f40056	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xb1b6e071	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xf621e423	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x06631893	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x0ed1e358	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x11968454	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x175df29b	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3cec6ce5	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4eb4fb72	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x65e56262	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6e0f4888	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x790eee7d	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8fa9b484	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9476ce3f	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa06b077c	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa282bb5a	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa3b525da	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbad53e48	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc1628cc4	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xc9ee8a97	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xcfd2eb26	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd00928a6	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xda07e668	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe5886c21	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe6e84188	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf8d364bb	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xfd854c10	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x25e9508c	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x29a380eb	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x316474d9	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x51991f8e	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x594deab3	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x5b35e5f2	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6a06dcb4	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x7dd3d9ad	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9f0b8524	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xa5cd0880	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xb5c061c1	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xde094631	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf57f0df6	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x1b6f0529	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x710b3fe3	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x86d7c10e	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xa76b8426	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x2b982abe	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x648b8821	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x99c8cd24	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa3b83b3a	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa68c81c1	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa9c16792	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xc42d1540	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xf813d558	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x1132fe8b	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3151e826	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x494f8a31	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x6167855a	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x7068f7aa	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x8495e7dc	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xe167c763	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xeaa92d6b	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x271a86a1	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0xfdff8b32	st_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x184c3802	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xae923a2d	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xdd9e3e6f	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0x6114cc64	renesas_sdhi_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0xd1d220c7	renesas_sdhi_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x2af0297d	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x35f5e974	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x543e0fbd	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x8cdfe73d	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x9c530110	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x9d445306	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xf1719d4a	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xf18069ab	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xfcb3b232	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x1fc9100a	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x20e035e2	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xddfe1074	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x3f74a716	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x4126ecc6	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xcc8d6890	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xaeb3c191	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x4443deaf	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xa76f6d3e	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xb66113ce	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x29dbb8c2	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xd304c39f	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x7e0f0237	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x8b1ba39c	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x0ab8a280	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xb811364e	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xb83462f3	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0xc44dcdd9	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x3747baee	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x58eb5ad3	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x850db0bd	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x05be40bc	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x08ce0c2d	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x279aa401	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3c54fe1b	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x441d7576	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6247ec8d	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6c816166	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x6e228c56	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x73ae74e4	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x7aebc886	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xcc651041	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe21e8b63	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe64b8a02	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf588de15	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x397d84d8	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x5019b0e1	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x635cef82	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x6b66f960	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x83098aed	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8a07ddf6	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8c77dd13	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xa566fe31	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb00ae4e7	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xd8349db5	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xdeaa47e6	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xef478e02	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xfcaa035a	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xd29ddcd5	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xd9bcf1a5	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x748d0eac	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xc3c6b522	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xc5fe7d23	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xe010e2a9	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xe13b7262	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xf779796b	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x57e6d05d	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x84dd4101	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x9604204e	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xc25d9304	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x102d3064	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16f536f5	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x26c4cb50	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2781dad4	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x32e2b927	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x357d8814	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x388b72dd	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x39f7b4fa	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x474acf80	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x59f17023	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x694e80c6	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6b7cbe75	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x75fbb742	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x84b16d24	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa1a35ecf	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xaa303b5b	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xad9bae92	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb03b6c0d	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb0d83c60	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb0f7519b	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb3f164ee	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc59534bf	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc7fd0a76	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcb77aeb4	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcd913537	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xd5f36fbc	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe40783d3	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x2cc53211	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x6bdb3c99	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x75434c31	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x7895c0f8	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x84b73fba	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x96855390	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xa9c27bd7	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xe1b33321	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xa2e5db84	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb74fdab9	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb8c856e1	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xefb1cb59	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x061c3aaf	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1b0589e4	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1f104352	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x33d9a5c4	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x34a4ede9	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3bc7d6d8	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5d217d34	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x5ec14ba5	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6c03e468	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x722475b8	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7d2fa3cf	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x855e1991	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9fc8b601	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xd86aa088	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xe24a8772	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xecfb2d02	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf812d0ea	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xfc5c94c5	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0c9dc4ba	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x10fe5399	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x450ae30e	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x54cf6ba2	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x56229a14	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8d482620	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x97e10652	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9b99c52c	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa89c5df5	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xbaa2f810	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xc88f31de	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xdc0b609a	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xde3308f5	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe56fc7c6	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf318a85a	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xfc75baba	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0x4e762210	arc_emac_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0xcbd395b5	arc_emac_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x008989a0	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02129ab7	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02b08d06	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04cccf27	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x086d12c6	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09e8cdff	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a0d6717	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ad4d430	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cf1631d	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d5bede0	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10798cf1	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17d4b721	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x186cf176	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18d9acea	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22c95744	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2440d38d	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26aa91d7	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29d33cf6	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b9eabe8	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c5510bc	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2cf7252e	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2d69fcee	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34434cb7	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37ba9c23	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38e333a5	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3971cabf	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4006c619	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4394458d	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45572cdf	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48fa8456	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a0aeb99	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ccd1d81	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4dad67cc	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4dfcc971	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f035f90	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50e736ec	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5180e1b4	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51dd9439	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x539d9330	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56241bb7	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57f7c824	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58fc5475	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e8b15dc	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e8b4ff0	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60eaba5c	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62a73c74	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65e48053	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67dda474	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68fc3c04	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a63573b	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70ee91f0	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x721c88e7	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7222308a	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x753329cf	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77a0ec87	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7954cb11	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79a21d2a	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7dc67516	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7dfb60eb	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f4edaaf	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x801d915e	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80944edc	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x841d6279	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86738c4d	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a8527e5	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b702c58	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cae9cd2	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8fdd30ae	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96e09a91	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9751be6c	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97c6a03d	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97cc465d	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a280409	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9bc22e16	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f388a21	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fd8a7f7	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1560b79	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa37aa2d1	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa57733ce	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5ba6b80	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5dae095	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa691280a	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab9af6e0	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xacfe6027	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaff2f5be	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5878606	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6ac1c5d	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc62ef6b	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe7bb463	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf8a3cf9	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc03eeaac	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc043609b	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc100ab94	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc278daa8	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2d18dd2	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2f5db49	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcae1601a	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcafd059f	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc15e606	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd712016	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce361256	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xceee8e97	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf75a06d	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd50cccdb	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd59f970f	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb425917	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc5fd6c1	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe02684e7	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0b943d2	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe414d867	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe550e8f1	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6126f57	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6b0e46e	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea2eae8c	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec40740e	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee413ef1	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeffa8963	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf166dee1	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1cc13f7	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2b0efef	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3b0e235	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf51f8eed	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5dac751	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf651f3fb	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf95b3341	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfff1f533	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00459e65	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x033a3cb7	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x039612ff	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0558565f	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x091a33c8	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x128f95cd	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12b13e2a	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x142277a6	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x187978cc	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a890e08	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b6f5cbf	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e557031	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x215995c1	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x231bb2e5	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x290b2cef	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c905d8a	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x314d433f	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32736520	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x335ea130	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34cde097	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e0cade0	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4118f862	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43d326c8	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43d4120c	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x469ef856	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x47133238	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e68feee	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ecd2a5a	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x550ab79c	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x550ee3a4	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5633e074	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e6893f9	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x612dff18	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6453d300	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6933d50f	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b009ce1	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7074bcfa	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7221baf4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73a60f4f	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7460c882	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74c4e370	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x761b572c	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77a65d65	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f10dbaf	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f733004	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80125e9a	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84970168	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x85bef6eb	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x89c9167b	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x89e82651	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d37a2f0	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8fd480a6	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x900c7a01	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9108542a	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x969f7892	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9846ac66	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x991ce965	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cb41c01	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e3f1ae5	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ffd62c2	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1daf26b	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa97edafe	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xada51ad6	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0736ea1	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2b42545	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb416a791	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb71d687e	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb747126b	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb79f719e	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9f272c9	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca264bd9	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcbf0da59	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xccb1a9f8	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf6523d2	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd98e0986	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9cc1405	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda1edd2a	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbab8a8a	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe14a2d29	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe293a69f	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2c26903	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb1db95e	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed046d37	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5930aa9	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf71df36c	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd01af13	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd87f7bb	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff07762f	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x2695f52f	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x4be2f862	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x84cfbeb1	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x0b28a9ad	qcafrm_create_footer
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x2b6ddf3f	qcafrm_fsm_decode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x41da0375	qcafrm_create_header
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x4c707f6e	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x762e81b8	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x76ef11d9	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xac6a8110	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x14caa31d	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x243da617	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x721ed87d	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x947e7b27	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb691950c	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x5836e014	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x8e030e0e	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xadbdfa26	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0xedc3f941	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x33282ac1	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x040a7f65	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x0f7bdf0b	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x1c88f428	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x9918871c	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xad55cbab	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x137eabac	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x29a23ed2	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x4aa5603c	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x5ae8d5a8	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x145f0266	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x9c12ac67	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x1ac3e8de	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x27d8ca28	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2946f743	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x36a78186	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x42672f50	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x4d944b57	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5293c52c	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x65f2606b	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6945da79	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x8fd6934e	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa0aded4e	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa33b8c4d	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa48058c4	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xaf297ef2	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb9be9aa0	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xba96aa1d	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xd54de25f	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf6c990a6	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0xadb932f5	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x1f9e8c54	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c625cd6	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x95e608f8	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xa5df03c5	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec813a4d	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x34264999	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x38b45cf0	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x8445949c	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x859e1d35	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x896b697c	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xaeee2492	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xb1576317	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xb6e28be1	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xc425ace2	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x60bd149c	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x769cb476	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x82a933ff	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x85cac5ca	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xb4d2a7f8	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x094e05e0	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x1e0126ee	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x2e0f9b1d	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x363e50c5	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x38fd8572	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x59b91524	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x6f43e0ab	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x9749fd14	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd292d70c	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xeccb8c04	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xf4e9990a	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x1ba13d6d	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x562caeb0	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x617a63cc	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xbddc3966	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xef98ae9e	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xf400046a	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x00ae3f5c	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x035f74ba	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x117ad18d	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x35a48ea8	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3b4fbaf5	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3bf31bf5	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x45517702	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x562a86d7	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x566df1cf	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5cdd2ffb	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5dafc7a9	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x61d3bf81	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7629ec9e	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x77333b58	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8f56e3d4	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x916f26c5	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa910c051	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaebfbb8d	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb7562228	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb8e8ca96	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xb917c9f4	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbb4068d7	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xcab6031c	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdd749cac	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe81f0fd7	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xecf27405	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xefbb5ade	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf1622f96	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf4e6fa3e	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf57c1826	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf7d0f428	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfb7ec5ce	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfe9644ab	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x1fef5e2e	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x571f0add	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x7041e76c	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xb15f84a0	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x138cc726	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x17967c68	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x28cedc48	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x296e2121	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3621317e	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x37ea7f28	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x65c13e76	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x67b6a2a7	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x821a2762	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8a9ab908	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc97e9b2b	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcc8d0b28	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd014e5ae	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xd57acd02	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe38b0c96	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xf38acc04	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xc30d8356	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58115bb2	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7a5cad08	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x82b7aee4	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa536981d	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0c0ae9e	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x004af9ba	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0189c36f	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0cd63912	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x15da8706	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x179be613	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c48129a	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1e8de0cd	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2479de0d	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2b1de277	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2c0f571f	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35d39686	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3699b30b	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x386610b4	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x391c0042	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3984855c	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3a358292	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3bbd4a5f	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3bff02d6	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x418f59fe	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4245f9ac	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x473e2497	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x523a425b	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5a6c7843	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5ed9bc9a	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5ef4a44d	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x63f20355	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6ebf504b	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7475614f	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7d5f2196	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7d9b17cf	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8c8656c8	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x90ba1151	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x913ee570	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x93160e9e	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x95c0f532	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa3ef2fd8	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xab6e11cf	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb064bfd9	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb1e39cb3	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb2c990a3	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbb3af438	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc0fe1f65	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc1949a58	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc61bb0f8	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcba0fb16	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcdc8bd00	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd6cc62c8	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd88c39f3	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd9bce2a0	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xda05afd4	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdd6c6bbe	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdec9e66d	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0d36215	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe6c673e1	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xeabba01e	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xed3e4e26	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf0d062b0	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf32b36d8	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf9dc816a	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xffd90d6d	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xffec0c29	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x14c3d558	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1fe6cac7	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x2b1b40dc	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x75b4eb17	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x7ce913b2	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x9b52626b	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xa1f6bf20	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xd44a68c7	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xdaa9efb7	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x26683511	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x4809f897	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x480ba794	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x4fa20559	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x51a1192e	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x52e6c89f	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5ac2e129	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x60e42906	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x6ce9a55a	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x77465578	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8b724fab	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x8ed23e27	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xcd59d147	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xe1687984	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xeabacaca	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfb552a27	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7a8fd98b	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7b18a2b6	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x88c07cb2	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xaf05b578	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xd7e1ad6a	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xde12b5af	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf032ff03	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf46fc5fb	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x02cc52a1	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0aacb17a	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1df7c1ae	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x267be122	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x26c4459d	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3a69f536	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x475b8474	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x47c03205	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4a2efa47	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4ae55414	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4dd9bdaa	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4e544ea6	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5ae46a85	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x697848dc	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6bc4caf7	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x6c811d1a	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x7d60d011	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x818e2ada	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xb6283319	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc6d4126e	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xccf57ddc	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd09f5c73	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe9658f6f	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf2b234f9	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x07a96b81	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0a5dd52e	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x108f2eb1	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1875b14d	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d4e4604	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ed6c0ef	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x25f6b7f6	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x268a35df	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3fd91859	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x43522919	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x48e35686	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x507fcb35	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5235726b	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x56dfe4fb	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5830907a	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x61323ad0	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x642c5328	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x665659ce	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6a661da8	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6dffe425	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x73d25d3a	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7488dd66	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x795710d2	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7da57dc1	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x84fb264e	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x85d792de	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8b36c2b8	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9c9b5cbc	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9e3ccce5	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa17de06b	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa3b032d0	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa997c6aa	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xaa5514ae	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xafabc043	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb1841e28	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb3e06512	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc0411f48	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc5bc7e3c	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6cdfbab	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcbf374cb	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xcceb1c09	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xce3a23e0	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd2e7c58c	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd3a22cc2	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd641d63e	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd8c1bf7d	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe4e015e9	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe78a03d6	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe820d5d3	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xef27e959	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf23e62b9	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf611080c	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf98d717d	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x15790cbe	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x31cf4e4c	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x6961ff03	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x75383403	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xafae21dc	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xb14a8edc	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xc59cd042	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xef66838a	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x17210491	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x8cc7fc6b	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa0237bbd	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa0ddd0b4	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xceb5dad8	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe0065b22	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xfe3a40db	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d562589	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x127a75da	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x143e3f85	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x156f8ea2	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x17bc1f92	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x194f1f38	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1d5843f8	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2326a7b8	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x29deba13	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2a84ac92	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2aebd360	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2dcfb01d	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b776175	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x41639f7f	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4373a2b5	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x488ade20	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x49b7dd39	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4ad93978	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4d2d7dad	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x54fedbc6	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5c8bbbce	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x675f9da9	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c972e61	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x733aaf91	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x73ad70d5	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x758f089f	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7818f97f	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ab5bdfb	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x846f54ed	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8860fb13	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x900b3bff	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x917c883f	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x96edd796	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9abdb4fe	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9f1ec0b4	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa25a91c3	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa2f6670e	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa65b26d2	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa97dbfcf	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xad2c8a74	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xad89b0a8	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xae72bb2e	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb97ee6fa	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbfda73de	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbfe77c52	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc32afe1b	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5494105	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc7549cba	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc839f0aa	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcc61136c	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd0d28305	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd0efe7d2	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd2399c62	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd910032a	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe0e9317a	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe1250abe	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe463f9f2	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe5cc15f3	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xeb4049ee	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf6c9c7ed	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfd511a78	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfe35ce1c	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xffe1b7fd	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x0682be38	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x11f7796c	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x242801ad	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x8a51c4df	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x957c21ca	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe1164f54	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xea9e4c7f	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x02e96bee	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x06bf2e51	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x07e8da20	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1ee391b1	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2ee83469	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3e7be8bf	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4b9cfd52	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x50ff0956	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x52d2f7f6	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x67f010e0	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6d5783c5	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7db4b397	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8e2f1c62	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa1bad005	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xad5e7a80	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd43087a6	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd529a977	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd5dd5a8f	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xeb2bb315	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2cbe7059	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2d92d683	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7152e583	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7d550dc0	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x8a3cbc07	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x8c4d2685	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xe2e48b43	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf7f6de27	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf8514c35	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x09be63c1	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b489b97	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x10df9bb9	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x11684757	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x216dfb9a	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2214c9e8	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x222771cf	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x30548b79	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3ad1108b	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x41835cef	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42078f70	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4ec28bce	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4f608bff	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5454373b	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x55c409b4	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5872263d	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5a36c6c2	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5bb4c93a	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5d88f261	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5f6a4bd5	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6c646dfb	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x78fd497c	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x823f95c7	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x846122f6	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x86a6399c	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8c376880	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9604f9aa	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x96d40d57	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9bbaa5ab	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9d9a6739	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa1b78031	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xaa481ac6	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb0a682c3	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb6cfe256	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc98b728b	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xca4af0d2	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcf05a27f	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd7ae1aa7	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe18bddc0	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe2be8e6e	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe93c105f	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xee5458f0	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf0051041	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf0fc64d4	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0837f776	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0b00c86a	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0ced3b18	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x14a04cd1	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x162efc75	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x20498c11	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x345436e5	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3f2dc652	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3fea9c9e	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7293cfdd	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x76523d1c	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x83884ed7	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xaf0fbbaf	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd23050f2	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd31216c2	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe6e2a53a	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00dfb38c	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x021aafe7	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x04a1a3fa	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x11c1605a	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x18617544	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x18bd1e83	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1c69bdf5	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1d390ef6	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1ed05285	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2643f154	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2b308680	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2d58dcc2	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3189e120	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b228b0a	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x47db3235	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x481a3fa2	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x48c45c0a	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4cadecc1	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4cdc0907	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4e969321	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x52aa9317	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x52c8d8e2	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x57e0ecac	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6c74a58b	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6cf9bcfb	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x760288a4	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x768ac7a0	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x780c91cf	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7be419b8	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x954c403a	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9d37149c	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa8d8c162	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaba932a4	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xabaedc19	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb01368c7	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb185bad7	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb7f3b916	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb885c638	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcc80b8e5	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdc85951d	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdecb04b4	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xeada38b5	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xee6c1198	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf4ac5fae	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfd8a09d8	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfe211b9d	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x5b41f70d	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x82ae3b6f	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x959ac332	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xc8f7f1ce	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xf88db1ec	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x0f94fa9a	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x43160e8f	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x7c081e48	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xa4b6205b	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0530df62	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1438be03	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2bed26e4	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x3ac208a2	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5ee1b647	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x889f024d	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8e943dbe	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9aabd441	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9bef2c86	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa8ea0efe	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaa08e5f3	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb91f17eb	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe5b39b0e	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xeaaa5991	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xed116a28	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf40543f2	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x39d54080	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xba90ead4	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcc58379e	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfe101e97	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x11d7ad48	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1cf5bd24	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1d4aee88	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x328882ee	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3ca47f8a	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0	rtl8723_phy_calculate_bit_shift
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x42869e1b	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x43b52d30	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5d5d62f3	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5dc4b7da	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6770b6a1	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x69e18992	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6d509ced	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7257e12d	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7405553f	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7768574d	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913	rtl8723_phy_set_sw_chnl_cmdarray
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x908d018c	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa1d391c9	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaf535927	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc972577c	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcd0f691a	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe724c1e8	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeb08a545	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf119788b	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf20b5c4e	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf8ffe243	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x02ba8916	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0631d4e8	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x35a53341	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37b993b4	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x39cba7cc	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4aa331e9	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e2d0b0b	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x690dedd9	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x82719928	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9d3c982f	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xabd58810	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb337ce6a	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb8146390	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc206de5f	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc788d0e8	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc8228aa5	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xce684aef	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd1215599	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd5bb0e14	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdf436c5d	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe627c49c	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe75725c1	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9a20b99	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeb5d30d4	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf1c24aad	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf598506c	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf8ff6add	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x418b8ded	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x459eb168	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x94371d59	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xa7e1422c	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xba5130a2	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x16949e0a	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x1a25f57d	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x5d2e1d11	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x6bc83b50	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x39192f3d	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x5bf106d8	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x98dbdf44	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1d13f3fc	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1e1dc2a4	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x21eef76e	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2225b110	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x282eca67	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x294bf99a	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2ab7aa7d	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2cd60d03	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2df1808c	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x30ee6b03	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3b85e405	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x42796798	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4e4c86e4	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5cc6844b	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5e92e3bb	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5ee285da	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x612ffec4	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x69e776eb	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6e8b7a38	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x71b70a83	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x725cb0e6	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7caf33dc	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7efe0a36	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8527768c	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x908a1fb4	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x94f3bd8d	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x993dcaa7	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb647e0d1	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc1db71fa	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc58570fb	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc69340fb	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd21a79cd	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd4a2df31	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd87a6ec3	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe0ba3882	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe149c49e	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe46d34a3	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe994f2a7	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xecc35125	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xee6ea83a	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf1525e58	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf2264189	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfbfd9b6c	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xffac83e4	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x12ab502c	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x38e45265	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x391dd3f3	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xeedde32d	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x1746fdc8	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xc179568a	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xfbbaa2d2	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xfd6990b9	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x245acf48	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x3c90acf5	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x56d8fbbc	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x5e4e4543	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xaca88a33	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xf10a44a5	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xf1845b3c	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xf8e2303b	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x2b4f1ae9	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x73469c31	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xeda0cc36	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x26f935d0	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x2f920ae0	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x30934216	ntb_transport_max_size
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x32537aca	ntb_transport_link_query
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x3d54dbfc	ntb_transport_tx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x512c928e	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9c992c8f	ntb_transport_link_up
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc270dc24	ntb_transport_free_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc37d9036	ntb_transport_rx_remove
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xd40e7a02	ntb_transport_rx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x019180aa	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0979702a	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1865b752	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x19876274	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1b452ef9	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1d010192	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3339b3dd	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x363ddce1	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x38a20c32	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3a595799	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x44669a28	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x44d1e275	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x45ef315f	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49b0fff0	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x51109ce3	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x550abe61	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x647cf52a	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x652a3ad9	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6786ef00	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x78b7a6ca	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7e6006c9	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x824a64c4	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x89f133ec	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ab19397	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x92b80972	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x92f63603	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa1d47342	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa37f6a93	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa3d4b2e7	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb4fc5594	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb6479d5e	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc149c284	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcd6dad75	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcde174b5	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xddd012b1	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe5a6460d	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe75809ed	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf4f48ea2	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfee3c5f8	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfff14b92	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x001211ae	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x04388861	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1e464d80	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1f1da7c8	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3eb9fe1c	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x6ae51464	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9973ee30	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x999b6ecf	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x9e1d8c86	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xcbb7a9a2	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xdfb37f9b	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe0e97cbd	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe1355541	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xdc02fbb0	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x03ed91ec	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x10bf733e	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x141f33dd	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2d87b77d	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x412fb130	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x79c7023b	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x9518ed45	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xae9dbb8a	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb23b76c3	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xd398986e	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xe65c0164	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x598d576a	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x87927681	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xddb93c97	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xfee33ec7	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x23e4ef4c	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x208b13bc	ufs_qcom_phy_set_tx_lane_enable
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x37ee2480	ufs_qcom_phy_init_vregulators
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x4fc54691	get_ufs_qcom_phy
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x77e2da7b	ufs_qcom_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x7e5faa68	ufs_qcom_phy_power_off
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xa914f9b0	ufs_qcom_phy_save_controller_version
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xbb0b9750	ufs_qcom_phy_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xc420dfc8	ufs_qcom_phy_power_on
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xec0e10b9	ufs_qcom_phy_init_clks
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x83e1bba2	tegra_xusb_padctl_usb3_set_lfps_detect
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x88fb6d76	tegra_xusb_padctl_usb3_save_context
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x9464aade	tegra_xusb_padctl_get
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0x9f00a234	tegra_xusb_padctl_hsic_set_idle
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0xc50d1437	tegra124_xusb_padctl_soc
+EXPORT_SYMBOL_GPL	 drivers/phy/tegra/phy-tegra-xusb 0xec14f656	tegra_xusb_padctl_put
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0x3a31c701	omap_control_usb_set_mode
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0x8cd9f409	omap_control_phy_power
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0xd0fbcbdf	omap_control_pcie_pcs
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-usb2 0x00d48f33	omap_usb2_set_comparator
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x14e30d01	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x62ee624c	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x867145b5	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xa2fc048b	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x11cf4c98	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x6f4da2f6	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xb70e6579	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x000844d7	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x30d3acfd	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x70e3a792	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x2eae82b0	ptp_qoriq_isr
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x36fc74e8	ptp_qoriq_settime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x4b00e471	ptp_qoriq_enable
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x61796ca0	ptp_qoriq_free
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0x6acbbfdb	ptp_qoriq_adjtime
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xa32e61c8	ptp_qoriq_init
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xc8b4e000	ptp_qoriq_adjfine
+EXPORT_SYMBOL_GPL	 drivers/ptp/ptp-qoriq 0xef3137f0	ptp_qoriq_gettime
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x0aa229cc	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x21c49c17	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x83c7e28c	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x8691eb55	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x86c81245	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x2f895505	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x3cd78eb9	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x56b864e4	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x83ef1bbc	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x907da1fa	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xe649514e	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x3c0ddcb4	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x31bfd40e	qcom_unregister_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x3f6a68c8	qcom_remove_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x5b02960b	qcom_add_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x6c29f2b1	qcom_remove_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x6f5d02da	qcom_add_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x76088270	qcom_add_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x86a84622	qcom_register_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x8fbc1758	qcom_remove_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xb28efb09	qcom_register_dump_segments
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x3651c402	qcom_q6v5_request_stop
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x3e54aaa3	qcom_q6v5_unprepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xb59bc38e	qcom_q6v5_init
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xe9f30646	qcom_q6v5_wait_for_start
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xf1ea511d	qcom_q6v5_prepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0x68a2f253	qcom_add_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0xa881c6fc	qcom_remove_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xa0a5466b	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x72dd75d9	qcom_glink_smem_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x94fc04a2	qcom_glink_smem_register
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0x428392f8	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x02787334	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x064094ac	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0893f559	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x216152fb	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x23bcd84f	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2d314613	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x336aea7f	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3a1c7481	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3d0e4b2c	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4c9854fe	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4d68f511	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x51b450d6	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x52cf1a56	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x605ba544	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x606cc5e4	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6d87d3d3	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x79d4fd07	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7d7d9391	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7eb4fd97	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x803d8ebc	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x86512969	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8939ff55	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x89975cc7	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x974ceb34	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x98dd5690	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x99f7da62	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x99fb8645	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9b115bb2	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9df68dec	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xac91acba	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb1ffb1ee	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb624f908	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xbf549fac	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc0853aa7	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd06aa7a9	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd6616cfb	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd684a84b	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xddc3dac8	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe2d0b794	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe2efa3cf	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe3edabda	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xeaffb1d8	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf4853005	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf702c9b4	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf76db0d0	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x004913c2	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x073234d1	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x217fc4b4	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x39e29b27	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x651d3aba	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x721af699	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7a65ea76	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x85fb0424	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa48396c1	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa5181a15	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xb132ab05	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc69c0ee9	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe9a09fda	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfbb81f31	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfe1c030c	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xff46b7a4	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x2a3eb0a5	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x46567f0b	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x1de01ddd	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x73b8c28a	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc0e9d25e	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xcd880311	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd596513d	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xea0b1f54	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xf5735439	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x3b641d18	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x03b94b68	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0413e7f3	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x04e638f6	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0a85dc3f	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0ee30973	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x10d55853	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x10fd6de7	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1dab8d66	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1f51fc91	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x216011d7	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2aa476ce	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x34a7cad6	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x41b85a2e	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x494657ed	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4ea58571	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x55b2c872	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5cebceea	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5de6f235	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x62105b50	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x70cbfa1a	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x7564c4ca	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x76699521	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x803f3643	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x82fcceba	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8b31dcb0	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8c251c02	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9220271d	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x96669937	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x970fbcfe	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9eb9ed59	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xafe82c1a	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb226ab49	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbaf0b160	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc4ea91a2	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc6525359	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xca4c0eef	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xcbcc78e5	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xceca0258	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe0178d5e	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xec7ac08a	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf25c3ae7	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfe0f852c	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x089b0176	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1846f208	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x301c5331	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4840bf34	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x5a66813e	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6854d8e7	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6ff80b85	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7b5e43ff	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x898f1b81	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x90770514	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb3bedb80	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc1fd8b7c	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc9a01f8d	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc9f4b8ce	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xcae0fdf1	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xdcdb8a36	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe7be2eba	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x06f6250d	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0ea115e7	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2e50eb53	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3a1c8dfb	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x48998bc2	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4c2d484c	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4e7b80e1	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4ecf7d81	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x554ed810	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5f6b1fa7	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6c8cb30d	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7e77ffac	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x862c57c9	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xa365f49a	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xaad15d52	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xab9b0eed	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xadb3f80c	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc8e573b8	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcabb75e1	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcf7c0903	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xcffda860	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd21400df	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe408334b	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf00724ae	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfb52ba54	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x03e99804	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0d5a96cb	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x191ccaad	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1b12974f	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x24c7a68d	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x27efea1b	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x281a0a3a	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2d4a0f22	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x34e27f25	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x37828afd	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3ee99d46	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5d9d2b2c	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6520fec2	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7252c1c2	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x73527dab	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x75316b6f	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7606e5be	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x79a07b92	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7cd7d6be	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85a2bcc2	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x898d975b	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8e628555	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x94586971	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x98da36b4	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x99185c70	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9d550934	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa61514db	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa7f71b55	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaab1613f	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaad0dcf9	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb2bdb5eb	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb70b911c	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb8147505	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbd008e91	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc73a3c7e	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc77cebe3	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcc74472d	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcdec3223	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd6eb3341	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdc6e9c71	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xea1f3562	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf2470147	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf570c244	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf72d1074	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf74dd6ed	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfaf2c369	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x70f58c70	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x8ed7293b	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xb2627813	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xc05c31cb	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x1679350c	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x2a325509	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x4a1e690a	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x4edc6dad	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x8ca98996	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xce53b387	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xe2143ff3	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x09b76ad1	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x19ab3ddd	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x4886ef3a	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x758991e7	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xa5706204	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xc4c83ec7	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xc8490f3d	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe0548faa	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xf6081df0	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x0c7623b3	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x17d02075	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x25ab33ec	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x497d6c76	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x580a83e9	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x9d5d46de	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xb40ed179	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x1c2ccf1b	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x811341a1	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x940b2494	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xafba2c46	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xc644e8f9	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xe8011739	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0ebb12b6	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0f1cf16d	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0fb496e1	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2822fd1b	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2fad3254	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3b920d6e	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4717daa9	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x478eb707	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x553b08e1	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x703a038a	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x741b1858	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x74e82a90	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x90956557	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa160c516	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa1d31087	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa24fd4ec	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa700b9d0	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xad619401	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb48415bd	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc2379e04	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc7b465d8	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe851dd10	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe9f3b286	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xec46b359	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xf94c17eb	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xffdfeb23	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x494128eb	meson_canvas_alloc
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x673c5a86	meson_canvas_config
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x791d72a1	meson_canvas_get
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xfbd79150	meson_canvas_free
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x192e6459	apr_send_pkt
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x78e0e76d	aprbus
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xa29f9c68	__apr_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xbfb0b886	apr_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x06285798	llcc_slice_deactivate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x09afc16e	llcc_slice_activate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x14f99b76	llcc_get_slice_id
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x2027e82d	llcc_slice_getd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x42d8049e	qcom_llcc_remove
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x617208bb	qcom_llcc_probe
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x62ff6e92	llcc_slice_putd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xdffee709	llcc_get_slice_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x000edb5b	qcom_mdt_load_no_init
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x83862d66	qcom_mdt_read_metadata
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xaab6091a	qcom_mdt_get_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xccec656f	qcom_mdt_load
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x0cf624d7	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xa0259d3d	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xce468045	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x06d7dcef	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x4598a044	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x74b62eb3	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xb9256e07	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xd821bfbb	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xfb6e3612	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x5f5614e6	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x67d8c9cc	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x67e46907	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x69925bda	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x7fcdd67b	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x588df49c	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xb31b5a20	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xbb2547a6	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x01a036ba	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x135c629f	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x17dd7798	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2c20026b	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x30b61a32	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x634be5b3	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x63f0826e	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x69a945f6	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6af28a62	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x86da1863	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x94848cbe	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x97466680	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa4cad338	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc22e97eb	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc55c56f1	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe0f92348	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe27e12a6	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf7401388	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x88c098a3	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x09a618e8	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x09e8af31	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0bc69903	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0ea890a1	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2d90ce2e	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3d201bf4	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3f4963ab	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x43ef65c2	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x54bf96c1	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x56d3269a	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x57188e08	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x588a578b	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x623238af	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6477fe61	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x64a7827b	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x800e89c6	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x82b282f1	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x88777c06	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8949f29e	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8956a53b	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x930a9d5d	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x94078ada	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x985db672	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9a764a09	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9c029c06	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xaaa1579e	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xadab3038	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb603edb9	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb7f53ac8	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc905e474	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xd1cfd3d2	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe28cb795	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe7c24d86	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xec7d67ca	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf3c6a1c8	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xf7cea394	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x23183530	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x381bf0cc	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x6f35d678	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x9d5b0e5f	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa2c183e2	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa4e113d4	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xb753b56d	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xe5397a56	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x086002e5	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4d17338f	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x6d896e18	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xcfd033a7	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xe3c8cfd1	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xf07b3719	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x9ed2ff55	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x4fdd7b9b	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x9e9421ba	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0xc36804fd	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x01432b4a	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x2a665922	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x69fa55ed	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6d5304bd	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x75d3b28f	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x8b7f012a	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9c9e459e	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa088505a	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xbcd17a0c	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xbf7a449b	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xd82b4eb0	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xea073a89	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xf9d8b0db	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x51af8c4e	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xebbdc743	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xee7e94b6	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0x58a54628	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1e6eeb52	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x21a17373	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x24b657ce	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x2cc49026	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x391fab12	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x41cfe100	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x51dfd772	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x57e31468	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x6d12f2cf	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8326f000	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x858b7b54	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x90d5fae5	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x913110fd	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc51c61f4	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xdf7e84c7	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf10807bf	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x02931d51	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x7c763e1b	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x12ccc778	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x1f2d3fec	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x2e57a1a3	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x2f5b58b2	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x3066463c	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x426e72cf	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x59e45c0e	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5c442d81	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5da338a2	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7954f169	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9588fd17	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x959c832e	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9a77e18f	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xab12fe92	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xc5bea87b	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xd67d825b	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x17dcc1b7	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x207767cd	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x870079d1	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xb95b4999	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xd1b1ca3f	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xe9857a51	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x05dc5c2f	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x7f8a5968	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x84dc5e14	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x9f97428e	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xad36c28e	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xb5cbaf6f	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xc6682674	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x55853f02	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5a0a1c10	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x66585c9c	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x6680d034	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x7b037429	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x7da5c3f7	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xbc25996f	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xd457f26a	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xdaf6f36e	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xdd833251	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xe9ea9609	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfaf74c22	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xff7ea98c	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x57184b06	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x863d0898	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xd483146d	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xf94d6fd5	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1674c675	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3807f10d	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x51505f0a	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5f86482e	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x7b390692	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa3a75736	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa657a765	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xa9d15082	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xbcdd834a	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc49c9065	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xc850136e	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xeef5c9fd	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfd5dd78c	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2f49d990	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x31a4019a	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x39944a92	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x39ec6b6c	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x460c2a98	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x63db4a47	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8beff700	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x98fcd33f	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa4aec4ae	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xace6ae58	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xb75b1885	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf7a4a97d	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf8a6793f	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x864e750a	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xee699c45	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x1040a5af	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x275c8835	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x4aadab64	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x4f6072a3	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x2b4c88a5	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x11af0252	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x278b177f	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x34a200ce	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x42457101	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x4bc368ae	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x63def2b9	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x70e58470	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7170caf2	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x72f968e3	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7952b96d	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x84de20f0	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8ec86136	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9564769c	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcfde5db0	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xdc526758	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xdead1eda	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xf1df705d	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x03c2b78b	imx_media_init_mbus_fmt
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x0450b746	imx_media_capture_device_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x0861cecd	imx_media_enum_ipu_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x09eee2ef	imx_media_pipeline_subdev
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x1a41bbd8	imx_media_find_subdev_by_fwnode
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x1c4175a8	imx_media_pipeline_video_device
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x27852dab	imx_media_find_mbus_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x2dea1896	imx_media_try_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x31053f1f	imx_media_alloc_dma_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x38f4c120	imx_media_of_add_csi
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x39c0f8ec	imx_media_capture_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x43a8df38	imx_media_enum_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x4cc73146	imx_media_pipeline_csi2_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x50d07773	imx_media_dev_init
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x6622f7b2	imx_media_dev_notifier_register
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x78cd1b03	imx_media_mbus_fmt_to_pix_fmt
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x8760f64c	imx_media_ipu_image_to_mbus_fmt
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x9327b384	imx_media_pipeline_pad
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x94671bae	imx_media_create_of_links
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x949c2f62	imx_media_init_cfg
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0x9ecbc324	imx_media_find_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xa10c1ad9	imx_media_add_of_subdevs
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xa1228ca6	imx_media_free_dma_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xa631199b	imx_media_grp_id_to_sd_name
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xa98ba391	imx_media_find_ipu_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xb5e5c99c	imx_media_capture_device_init
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xb816c87d	imx_media_mbus_fmt_to_ipu_image
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xb9717703	imx_media_capture_device_next_buf
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xc4a96f44	imx_media_capture_device_error
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xcb12480c	imx_media_probe_complete
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xd39776eb	imx_media_create_csi_of_links
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xd805b71f	imx_media_pipeline_set_stream
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xd8e74483	imx_media_find_subdev_by_devname
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xea69c6a2	imx_media_add_video_device
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xf6512074	imx_media_capture_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/media/imx/imx-media-common 0xf7918930	imx_media_enum_mbus_format
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x14aacc94	amvdec_dst_buf_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x408a955f	amvdec_write_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x4ba4287b	amvdec_set_par_from_dar
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x6bf4979d	amvdec_set_canvases
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x6efff65e	amvdec_write_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x6fcccca5	amvdec_abort
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x7dfa597a	amvdec_clear_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x986ea085	amvdec_dst_buf_done_offset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x9ff0de54	amvdec_read_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xa7c1f971	amvdec_src_change
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xb172cea3	amvdec_add_ts_reorder
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xc4a84c30	amvdec_dst_buf_done_idx
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xd688e610	amvdec_write_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xdde16aef	amvdec_read_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xdf7acabe	amvdec_get_output_size
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xe2ff9e72	amvdec_remove_ts
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x1b1e6dac	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2023477b	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x24845923	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2e904abe	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3293bdfa	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3fadef84	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7a246f75	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x8421842b	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb28f3506	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb76d91ef	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xd9408f55	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xe045ba2d	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xefd9e438	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xfe06897f	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/nvec/nvec 0x02753866	nvec_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/staging/nvec/nvec 0x19c31f50	nvec_msg_free
+EXPORT_SYMBOL_GPL	 drivers/staging/nvec/nvec 0x523a6f16	nvec_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x00eb1c1c	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1640c11f	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1ec6c753	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2e7e21d7	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x45d20ec0	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4c65374a	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4e306337	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x51a6a1e9	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x53dadda9	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x54cccd6f	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x5616842d	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8181ceec	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x933e17b2	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa47f58eb	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa6ae1a10	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb97ee8c2	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd79d40f3	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf25dbd31	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xfc747dc4	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x2caf200c	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xcb68825d	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xeee394c0	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x2c5746ec	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x93fb25f0	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x97b65166	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x9c464618	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xda9c1393	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xe37a8435	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xee0d975f	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xf14a4990	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04fb548c	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x14e6e61c	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1b6796ae	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x23934f1b	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x26c4a46f	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x29e19317	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x29e6872e	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3798978a	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x43d13cb5	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x551c2897	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5cc70929	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5de638e9	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e4bc088	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5fcb8fc8	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x629060ab	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x653be158	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x68bd1311	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x89c025eb	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8d2d6de6	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x97d26822	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x99f8e39b	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9a3c9288	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9ebac57c	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa14b820f	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa3e8c5e6	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xaef7e7a0	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb09b0a97	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc6666805	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc7d9ee98	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc84bfbca	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd26a5a7d	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd278726d	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd4945c73	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe206e3c4	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xeeb09fe0	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf20e86b3	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf2d0d060	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf441b701	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf6f1b9f9	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfb10074f	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xff057efa	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x8a504bb5	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x026e59c2	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x316f123d	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x460ad276	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xb1134fda	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xbe9a3236	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xd4124e8d	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xeb56fa46	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x042038e4	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x17260b07	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x4b24ac90	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x71951fbe	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x979578d2	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xbc29fb95	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc543b60e	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xcce5570d	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf4654c3f	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x069c6c04	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x1581a9b0	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x215332ad	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x2de9daff	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x364f3539	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3b676eb8	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x63a08ea8	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7060b900	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7142d76f	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8237c2d7	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x8bef9188	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xabe8084f	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xac69c3c2	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xbd8871fb	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x0197371f	tee_shm_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x156f0a53	tee_shm_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x161b5ee8	tee_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x2930ed0d	tee_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x3501ae14	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x3521d40a	tee_client_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x4274e69a	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x442c0bce	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x492c7f02	tee_device_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x701a3109	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x778f19fa	tee_client_open_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x81d161ad	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x8cb56555	tee_shm_alloc_kernel_buf
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x9913cc1d	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x9c04dab9	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xa929a639	tee_client_close_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb95fadff	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbba6c0a3	tee_client_get_version
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbfc73b6b	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc6cb8678	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xc99ed19f	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xcaee37c2	tee_shm_put
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd10d5f7a	teedev_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd60f6c10	tee_client_open_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd6e600d5	teedev_open
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xd878fee2	tee_bus_type
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xdcc7c4cd	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf51e598e	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x667dce77	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x7851c9e1	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xeeb2edac	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x7376b7a6	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x7a109af1	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x11e66c72	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x591beeac	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xf4ca0646	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x16537fe0	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x54e06af3	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xa511523d	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xb8f0d92d	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xe7ee7b31	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x4ff307cd	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x6de7435e	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x7560b7cc	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x81c42cac	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x9546fa7f	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xf69d7153	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x166810e5	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x360fb6ff	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x3be37744	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x55ec5fea	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x8a03c082	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xe8a9e86f	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0ccaa48b	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x171f481a	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x178c3db6	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x21515282	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x279d3d65	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x3e00b6ea	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x40e31e5b	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x4ae03ab1	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x638cf48a	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x98627fd3	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9e1131ea	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xb4ccf5a2	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xbfbdee83	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf7348711	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xff23ba72	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x35067ec4	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x8164436a	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x9435bd9d	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xf54dff38	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x3df5db03	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x4f4c783c	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xbf82fbae	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x139734f0	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x19de30bc	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1e5faf67	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x25bec2c9	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x45866849	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x61cecdd6	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6495f2de	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6beb4207	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6d90cc98	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7a9dbfcb	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x89bb34c9	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb8c87182	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xbeea0c9e	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc09452d7	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xe0750f2d	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4269327	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf5e718ae	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x05b1b756	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x16e79b76	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2cce392d	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x3a55179a	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x3c1f83f0	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x41f795a4	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x44513cb0	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x83ba0fe0	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9faad946	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa06d0cf8	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xaf5c1240	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xb3a316fe	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xc304bad8	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd1c5b0a2	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd5960973	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x02193964	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x03572186	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1400961f	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1737e396	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x186c499d	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x305fa27d	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x37cc5df3	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x392391eb	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3cac33c3	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x416666d1	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4234483c	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x520b35a4	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5d9db786	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x61b05fd9	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6e1fc310	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x77d91f73	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7c5916a6	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7fba83e6	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8cbe46e2	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x8ed6e188	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9427791a	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x975dc047	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa4fb66c6	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb3ec2ef7	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xbbfa82af	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc8d35961	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcf04bc14	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd9d3c45a	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe429226a	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xeaa57d5e	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf954f2fe	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xfc996fdb	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xfd42b60a	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x33858924	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x40709da0	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x85c1a948	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa8cb0bbd	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xb3d91dc8	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xd3447c36	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xea3473cb	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xee9709a7	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xf4e435c9	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xb80f0620	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xf55a3956	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x03001aed	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x04e1d91f	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x309e0bc8	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x4389c386	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x5316aa32	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x582e3935	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x89890d41	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xa08d8ce9	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd6c00a3b	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-am335x-control 0xbb96f31c	am335x_get_phy_control
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x25d490d0	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0x1eaed40f	tegra_usb_phy_postresume
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0x9def5a03	tegra_ehci_phy_restore_end
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0xaa09cf4e	tegra_ehci_phy_restore_start
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-tegra-usb 0xfa79330f	tegra_usb_phy_preresume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0x2b8a4554	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x0947b7c6	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1b5db879	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x22b642fd	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x527c45f0	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6a7cd8a7	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6c8ba45e	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x724386e4	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x75408f70	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x87ed63a2	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x93024f7b	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x95f47f2f	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x97df8f98	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xaabe758c	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xbfcb61b4	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc003b62d	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xc5b7cdf8	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd34f75e3	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd9cdeba8	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xdb7ef50c	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xee443568	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xfddcb32b	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x15c6f065	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xf215451f	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x44b4275e	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x167aed7b	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0c7c091e	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0dbdda93	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b6c2031	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x29378bc9	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33e5cf9e	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36970874	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36ab2a97	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3971ce57	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x397ada83	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x51cdc000	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5e15e86e	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f1b4674	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x63020b48	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x678d4942	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x69d2bb7c	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x75e299f7	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7ab78ba7	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8149c5c4	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x846d81ab	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x86cf116c	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8905d21c	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x8ee2d593	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x936ccadc	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x94ca347c	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xad18a04b	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xaef8631d	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbfa5b551	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc1aa6b3c	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc2ec2ef7	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc70e10d7	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe18de0bd	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf5972cef	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x1682da68	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x3978ee44	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x5fb2b423	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x961c1538	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xba6867bb	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x180d9d0a	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1ede93ca	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x233898c4	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x247544dd	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2b6bd4d1	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3249e776	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3b9a596f	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x4c801de5	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x7e22b370	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x89ae62d5	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x8e0c4cd9	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xbbb872a8	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xda2da35e	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xa3d2a97b	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x40081382	vfio_platform_unregister_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x610c354c	vfio_platform_probe_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x872f9525	vfio_platform_remove_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0xe73b1585	__vfio_platform_register_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x11f2eac1	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x13ba338a	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3c059797	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x44b83e00	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x900d29ea	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x9aa14d26	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x9eb11de7	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xa8cf125b	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xd46d703b	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xd964d7a8	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x2b8f224d	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xb2849b18	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x00604ac5	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x06deb2f5	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0bdb5b48	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x16d9d19b	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1c57079f	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1f311f6c	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1f81b6ad	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x27f69b4e	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2d29155b	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x304b70ad	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3326acf1	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x39278109	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3cab80d6	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4254d7dc	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x42e98a13	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5b198ccd	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x64e0d290	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8fc0602a	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9645402e	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9707a60d	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9d27d516	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9d30305e	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa273b5cb	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xabb6e9b3	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xabf3a611	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb43cc3f7	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb591bf31	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb9a19ba0	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbc0a414c	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbe35903c	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc0b532aa	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc5b4190e	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc69205f0	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd0d2bb28	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe49714e0	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe6b3aba6	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe8eb7d9f	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfd051601	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x4afb242f	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x67046b70	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x72d11dac	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x81f60ee0	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xb48817dc	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfb2afadb	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfe246d06	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x58074bd2	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x11ff5161	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xee65e3dc	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x15ee2ca6	omapdss_of_get_first_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4218022f	omapdss_of_get_next_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6d1f3793	omapdss_of_find_source_for_first_ep
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xadf89ca6	omapdss_of_get_next_port
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x779ebf10	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xcaf0a8bf	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x17ac1af5	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x66e9f357	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x78886c45	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa0532b1e	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa8ac97ae	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xace536b7	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb4f4f8e9	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd01f47e5	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd24ea4a8	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xd4869f2d	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xeca9c0b4	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x876ef5a1	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xedc7491c	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xee336582	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x14b4223c	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3f60c498	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x7b6a4f02	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x84497064	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xbe5b7c6c	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xc8e22a46	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xf50c3e36	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x00f88fc0	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x01c09bc6	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x026caa6d	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x07f1dd46	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a718942	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a781ad4	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x13910eed	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x16604b36	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x17a9e7d7	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1834ea0d	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1b65cb47	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1c1ce8c9	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ce32069	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d2bcb43	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1eda497d	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f5d52b1	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x20b84be9	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x272cb0ea	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2aa5f2ce	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2c97dcec	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2cb4dfe0	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2e73869a	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f41e476	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x30c1065b	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3178f70f	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3434563c	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3b3c3c89	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3b904ae1	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42163bee	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x464a761a	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x49842bec	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4a293caa	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4de40cba	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e5a12d9	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4eb59b79	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x510f161c	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x54887629	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5494817d	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56519121	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x59b5ba60	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x59e44b02	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a080074	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a0ebf30	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ed9d333	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62a65437	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63e14e3c	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64c81675	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x64cc3ccc	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6742fd43	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x67c76a47	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x68c08eb3	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6be3e82e	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6e18d1aa	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6f4bde21	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7126525d	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7150bdb5	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x715ed290	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7387f50f	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x742056b5	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x750536b2	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7aeebea1	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7bc9e332	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d7b2d86	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e3093b1	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7ebf4ace	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8102e016	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x81b9e2cf	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x81e56d97	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x831586cb	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x840ce8c8	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x898526da	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x89c3e62a	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8a9117f1	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8b32f842	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8b43faa1	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8bcd4ae3	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90f64cdf	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91929783	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91ff30fa	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94756ab1	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98c626ad	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98dbe30c	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e23d6d5	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9f388757	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9f55568c	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9fa1ee1d	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa1f66963	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa7a5b269	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa800a44a	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa826d17c	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa967e811	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa79d1d5	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaaa14361	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xad17a26a	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xada30d9f	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xadd3c3d8	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb2823004	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb65c514d	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb9e21168	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbace2a71	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbaf03e2e	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc2bd88e	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc984cb0	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc4746fc2	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5799171	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc90c5402	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc91ba9c5	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca388b6d	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xca53025a	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcad10482	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcf566567	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2d552d5	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd53d5b24	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd6077ca5	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd679ee43	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd6dc8598	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xda6a7ee5	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdafaa4c8	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdcebb99d	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdde6f05c	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde12dfd3	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdfb11728	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe09cae85	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1187a24	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe2890dea	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe2bdbba1	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe3d1509a	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe42b0b85	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe8010c8a	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf04a1bf3	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf430d809	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfdf8be9d	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfe4953f1	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xff991440	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x90327dff	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x000f9634	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x06b6dec6	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x088f8be6	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0be20c13	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0f6ec8ff	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x11048ce9	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x12c8a746	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1859ceff	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x231fc539	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x26ce10f3	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2959e3e1	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2aea9374	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2d3c6226	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2f17c6c8	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3399ab94	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36751a61	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e73f10c	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4c5bb07a	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5205f7ed	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x528ff3a7	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x54d7a5d6	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5c4654a4	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5da8cc5c	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x600efba9	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x648c79d1	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6a4ad914	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6b9ab8fa	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6c2f7e2f	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e16b52a	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x72f8ee9c	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7a1c037f	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x84600ca7	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x85202604	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x88f5a092	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8e09126e	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x90f00094	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9743915c	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9b180889	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9d4c1212	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa023b19b	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa02df320	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa67fea64	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xade4b89c	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb001c622	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb2672a08	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4895436	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb85de48c	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb8a50547	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb955d2b5	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb9a3a692	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc151e45f	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc2ab22ff	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc3fb7647	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcac9675a	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcb170bb8	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcfaa17c9	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd0bab75c	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd7ba3b3d	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd8bc0b4d	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdadeb27f	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdcb0d50f	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe1eca9bd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe3af363a	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5a7264c	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe723dfb4	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe9d2c6c9	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf45044fe	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf50b57a4	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf6f97b66	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfe401820	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x177065d3	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1d5b2b78	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xee047133	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xb79dc33f	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xe6edcbf9	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x10d05c84	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x212b6bc8	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x364f639b	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x3f1e8dae	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x974df258	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xabb4b690	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd2aa87c6	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xfe2312e6	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x0e050e1a	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x2246146f	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x24926ea8	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x2ca6a471	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x6423face	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfbf34fc2	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x07630ef0	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1e00a6f5	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x29fea95c	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x5f4122e8	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x0c2a8d83	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x0c61776c	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3f18589c	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x955ee96c	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x24f31c95	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xa7461a7d	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x021957e1	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x0f8a2742	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xd4cb6873	raid6_call
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x29df71bd	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xba899c1d	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x1dc8b0a3	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x25346d75	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x9b00f95d	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xa6b06a0b	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0xc2f12f1d	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xeb061581	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1faf65be	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x346765e4	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xaf254b0f	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xb736831e	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xc7f8f159	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xe8c2e1f0	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/stp 0x283a3c93	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0xf161a5ba	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x05d3d046	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x498d4d40	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xdfb095ab	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x216f55d1	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x24158aca	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x2ac03368	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x6041b913	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb92b628a	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb9ed6c15	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xe3b2a8e2	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xe4b436ca	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0xc8e5277d	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x00b00ec6	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x30ab2811	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x46577ee5	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7582c9f7	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x76ce1684	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x78574995	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x893bec06	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8e45d4fb	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8e5e2050	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x94af4515	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9c92974e	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9f3d68b2	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb0dc05eb	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb97f428a	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd2a5953c	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe0e79369	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfc85bd59	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xfe3825fe	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/core/failover 0x5e3a51cf	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x6bae2c79	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xb65dffbe	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0387a00e	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x095f3637	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0b9fc1ca	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x11d709f4	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x124b5e9d	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1e21afd7	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x24b62335	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2549c379	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x276d0c2e	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2d03e46e	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x375820b1	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3ab4d09a	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3b316d2c	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3c825833	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x45f8b27d	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4c03a5d1	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5161ec3e	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5c5c6165	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5cde5c96	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x66492232	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x67111e3c	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x680e34ad	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x72c4e392	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86373f3a	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8f9971ff	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x902fe7a9	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa3bac309	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa43e19f0	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xae5a0c84	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbb0011f2	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcaac490e	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xce257b6c	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xce39e087	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0784aa7	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf55ef99b	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x2ac45105	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb08dcc85	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc5f610c4	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xd73d97d1	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xe576c680	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xfd88b037	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x05cb4f2b	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x17e82a7d	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x2846c9ab	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x34333c8d	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x3f1014f7	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x43c3bd7e	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x49386d31	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c777de2	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5e898cb0	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x605687c3	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6b66c3f4	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x75a8984e	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xaaa7489f	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xac86b87a	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xba5389fe	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbc5ee3f2	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xbfe20118	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc07c5926	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd087b6df	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xd4672a42	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xe8c89ae9	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x12b9d62a	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x8543ecf1	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xbe27c016	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xcb8c7239	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x7c351411	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xd29617d3	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xe48fd7a4	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xfbb26323	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x8f0db837	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xb89cee61	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x2e577207	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x6892f2aa	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xfa1408bf	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x95f9da88	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xfa611ff5	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x0ee004d9	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2ede77f7	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x52bd329b	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x56959856	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8ab53e11	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb576b458	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd8c00a06	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xdc47e650	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xf4e39fad	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0xa904dc5d	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x309d10dd	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3881dbbe	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x38cde236	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3f119156	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x46bf7b3a	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5dcdea17	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6547a2ae	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x7b2f58a1	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x95374f2e	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa4fa5576	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xb7cb9805	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd9890d05	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe2b2fcac	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe80fa622	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf2603af0	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xf5543318	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0xad7db3d0	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xa58910e8	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xaf0aa6ec	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0xafab8bf5	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x6f03f126	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xb2f17b92	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xc73a2679	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xcaec2655	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xcfd11fc6	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x8c041748	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x58afec56	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x6f9a1402	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xb302caaa	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0x5ac1d06f	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xbd8ba087	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x17a1188c	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x69d55214	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x8327ff63	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x8eefa79e	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xf6e03880	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x12617f2e	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x1e37fe93	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x423e2ff3	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x4a2f5e77	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x60d0f8e1	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x7111d54e	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xbf81f1e8	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xf39edb25	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x5ae60e59	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xb628b7fe	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xc5571782	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x1b26a841	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xa4ac7e71	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xbb134323	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x0d0057f0	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xf91ccf30	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x871f0b62	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xd9df6d75	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xf572c4b4	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x534d02c1	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x1e7667df	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x4632ce3a	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x69175dac	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x777094c7	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x7ee04032	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x0b63b621	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x112ce4e0	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x7fa63b76	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xbd03a343	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x96b93d5d	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xbe4f59d6	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x0885973e	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x13cd5862	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1b896a21	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x20edb54c	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x28d5428d	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4d90d225	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x70619449	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x74ffaf38	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8223d1c8	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x82bb31d5	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x90021cc9	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa2a87e50	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xb1498d96	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc0cd914e	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcb8c1fed	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe122384f	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf11dac35	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x032e58fa	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x07ac7536	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x31840075	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3a4a0122	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3d36bd60	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x4d643d4f	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x64af2c9f	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7b1803db	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x855c1627	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8b680123	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa348ba35	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xa586823b	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xab099d85	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xbf64452c	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xdea1c6fc	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xedc91f3a	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xf4e79401	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x3f364be3	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x7d15f72b	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x89e794dc	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xc4b03dfb	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe8dc6b5e	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0d975e3f	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x49b4951f	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x54ab0425	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x56202daf	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7c0a0153	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7c48edb2	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x82d7ee34	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x83ada62b	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x97b1007a	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x98de2b2f	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa6141e88	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaa623ee4	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc48ebe19	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdb7ee3d2	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdbd90cf3	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdcaae068	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xea1772a3	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf889e5ef	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x065baced	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x2b475620	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xd0b597cf	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xfb446e14	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x23664edf	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x268a4802	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x6bb5fb70	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x794ba905	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbe03a217	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xcf80e1f1	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xd9527b39	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x009e5630	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x00b8ccd2	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0d7cd499	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0e9c7529	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x12079148	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1436fafe	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x146c2085	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x197ec256	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1c8c3352	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1d2c3b08	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2013ea53	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x215d1229	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x26d3fb75	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x272b8dc4	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2852aab1	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2b9e9c66	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x304f23f7	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x308fcd8c	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x30c65020	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x377328e4	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ac2f4a4	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3afe2bda	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3e740234	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3f8b2b13	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x41363f26	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x441ec94c	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x46627976	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x46d0e33d	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x473e385d	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x486ec7a8	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea258d2	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4f0e17e0	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x55092bca	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x55c02389	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x59726adb	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5c745d49	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e841aac	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x603cfbc3	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6498db35	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x66dff1aa	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6af98108	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x70b9d44c	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7113f64d	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x766a136f	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7cad9f2e	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x806a6ad0	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x80c3c649	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8116815a	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x83574d55	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x86018726	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c6e11f4	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8d9f820f	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x952b0c5d	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b2c5b2f	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa1d6823a	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa42facac	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa4caab51	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa4e2d671	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa56366cc	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa5a480fd	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa6140153	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa61d7012	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa88ea21e	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa8be70e7	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf500d55	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb1694437	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb1fb2f96	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb39245e2	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc2d71c3	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbe8f39fa	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc4c3810c	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc7e50778	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc9c18ee1	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcc1baeb1	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcfd3befe	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd05558a0	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3a962da	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd3c7ecba	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd80b76a1	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdce7e2ca	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe361ce56	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xea383a4a	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xed2284ac	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf4f255c7	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x85c85fc6	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x8bd04162	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x7251fa6e	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0004be47	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x0cc92538	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x176ddf9f	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x37288bd2	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x3eddcc39	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x425ef263	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc096af73	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc13e6891	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xd5a329c3	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xf4f247cb	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x7de4efbe	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x3a92bb8b	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x4f21a663	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x6921d334	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xe498a72b	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x600a2ac1	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x775ecd58	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x84bebe4f	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xa1416267	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xa897c066	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xbc8964e4	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xc39bb3c8	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x67f2f07e	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x7df79793	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x21126498	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x217e5aa7	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xfa78f280	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x114a931b	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x125fabf1	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4751510a	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x48bcba0a	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x52889444	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x54e6ce6d	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x6a55f098	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7877c681	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb1d406dc	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xc905b293	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf6b51726	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf853fbfe	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x1812bec3	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x37df3a18	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x7fe521a4	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x85c7498f	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xba3d89b9	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xffdb3653	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x136479c9	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1df6d093	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3513f0f1	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x494a4c5f	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5afe6582	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5d341c09	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x752161e8	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7f762912	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x99b86bfd	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb00e6f39	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb331b336	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc0f53a44	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xcec15753	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xdc5ecfab	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe7e42e1b	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xef75d35d	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x0968cb8c	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x2512a739	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x67f6706d	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x6d38cde5	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x895189af	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa83c2383	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xaf4fa63d	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xbe6b9280	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe016495f	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xe3089c76	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xf86d60a7	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1902f80d	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1c1a1531	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1c37c4ee	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x20f4c16d	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x23c90ed0	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x24ee160b	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2635400f	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2b6fdeae	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c2ee0f8	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2e84d51e	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x30fb4e8d	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3e5d2cd5	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51d63273	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6706df39	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x684f308a	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x729cb3f5	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x73e9b4cd	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x77c15342	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x82133a02	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8b124091	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9923fb79	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9b882706	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9be6cae9	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa0cf6d3e	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa0fbb433	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa408366a	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa462051c	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa519fc7d	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa9ffc821	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc2339309	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc7011238	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc9b713b5	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcae64610	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd16e1d5f	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd6cb06b6	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde22d3f2	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde6dfc42	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdeee1028	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf45b07ba	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf4cfcc83	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x2034c690	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x549b2293	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x567c3750	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x7354c60c	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xef955248	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xfd8646d1	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x3e17aa73	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x6c9faead	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xadd1bf63	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x4ed1a25f	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xf1f424fb	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x012e3d46	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x090be9c0	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x7a73c53f	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x87495a90	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x9fc5a000	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xf603d472	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xfdb10d5b	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x05b76f4b	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2ddb07e8	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x364219d1	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3f1ef70a	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6c2e9059	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7fc83bb6	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8fcebb73	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x96513e33	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa18d98f7	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xadb40591	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbf86eb0d	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe59009a7	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe637e7fc	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xea2c7370	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xefa3b221	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf00773f9	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xc7deb714	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xcce624fa	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x59ddea02	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x62dacb49	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x8ca15381	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x0d69305d	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x33e68b60	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x987261fb	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xaa96e0cf	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xae9a33fb	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0bd2107d	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x1e65356d	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x2a8e60a6	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x411415e5	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xaacec889	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xcd428019	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x515adc63	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x6d8f4bdf	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xd4cbfdcf	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xe6dd1f50	psample_group_get
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x041e9db9	qrtr_endpoint_unregister
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0x694039ba	qrtr_endpoint_register
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xd673c36c	qrtr_endpoint_post
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x04afd8a9	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x19d946e6	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1daa928f	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x28432bc0	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x28a0da74	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2ab58f00	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2be21291	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2d366fde	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x301ad5c1	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x394cd8b5	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3a6391f5	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x51cecee4	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e2628b9	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7452f762	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7aa50c2a	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8c9af5bd	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x95775ed0	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9834eb62	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9d6fc9fd	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa374a3cd	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc3f5bf03	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc6551e53	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc884e92e	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xca222854	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd141f3bb	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd2e9e558	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd91c3bf1	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xda5cc9c6	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdac5d588	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xed1de0df	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf4c257e8	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x62c024f0	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x9ee50e24	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x1ee0617b	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x28fa23ed	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x5842423b	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xf6b744d5	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x169d5b3a	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x3849e758	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x5458e2fc	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x7682f4ee	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x7f8b55f3	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa77b2da7	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xbde137f4	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xc76e17ab	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd6a7ad96	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xf35245a7	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x86cd389b	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe7b101cf	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xe82a143b	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xf69feb78	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02facfc8	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04170449	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x046bc1c1	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04ff6db4	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06ad3379	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x08900977	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0983e7a5	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0ab54d3d	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b394799	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b84fea0	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c28008b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c3f74bf	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c60f301	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0d8a47d2	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0fc37a05	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x112aebe4	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1392da2e	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1685dd77	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16b7ad9c	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17813ab4	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x178b952c	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1807e7d1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x189e2735	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18f324e8	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19154c09	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19c08657	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19c6eddb	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ae26e4e	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b951273	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c392cca	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c696c7d	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e047604	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f0cefe4	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f18195a	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f548732	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x212b18ab	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21a7fb9f	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x21d06a8f	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2217cb29	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x228eefeb	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22a1a591	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22b06b0a	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x231610db	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x23fb405c	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x24536871	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2724a809	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x275a41c4	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27b150b2	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2a155e2d	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ba78d3d	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e6b82ed	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ea5866f	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f6f8da2	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8ebbe0	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x328604c1	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x346b9100	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x370265e5	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x371890d0	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x377d2a76	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3794b578	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a7e313e	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3aff08ed	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3bd01e0c	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3fc5c7a4	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40880f0c	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x40c21185	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x41647cb8	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43f6e52a	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x44f0182d	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45d24107	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x46bcfc51	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4727359b	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x477ef28e	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4783dc98	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x483150fe	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48483935	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49b5c2b2	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c092b96	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4cad2712	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x522d9907	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5251274a	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53b1c0cc	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57623517	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x594faa3f	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59d247f9	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5acc1925	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b3029fe	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b9cb389	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5bb00809	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c1111b0	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c82421a	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e142f02	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e550421	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ea790ea	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6085c3ee	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x62bc4295	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6411783b	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65d2c699	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x65f74ae7	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66e03c13	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6abc237b	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c0173b7	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x706a6dd0	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70cac370	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x725d2f7d	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x727c8251	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74f6f3ec	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76701eb9	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x782f8eb8	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7933e4ee	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x79784f2b	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7978e50d	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a3027b2	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a536a9b	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b7fa0de	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c201c84	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c9a0fb0	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d21b58d	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e524e01	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e68fe98	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7fafcd8e	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7fdc41a9	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80ac2b1b	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8188a8de	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81efc10e	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x841a2c6f	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8532b275	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x85be925b	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88d59d94	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x890358d3	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x89c46bd6	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8ae501c9	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e6ded8a	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f74e38e	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8fa861c8	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9224516d	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x936b8b85	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x93aa95fe	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x94b862a3	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97048640	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98ec3169	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x99c50963	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9aca6c69	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ae53a8e	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9bbad6ae	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ecbc242	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa213f595	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa26ba8b8	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa39d32d6	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa3c5a09c	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5326e6d	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa739381f	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa73961e5	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa87ec5aa	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8ad8476	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xab49fb4c	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xabff1f8f	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac09f54f	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae7b34c3	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae8a30fe	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaea8c8e6	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb42c4034	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbbda51ed	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbee90969	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc169d947	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc27ca4f5	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3398acb	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc49a6d31	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc532fa27	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5532e4c	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5d56e8c	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7dd2651	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc99e566c	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbef43eb	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcd4d9ab8	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcdd7305f	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcead5daa	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcec5376a	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd03119eb	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd09e2815	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0c67f62	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd1fcc154	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd34ef903	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4e613f8	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd51fc124	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd66d0197	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd6877941	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7a088cb	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd8936b66	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb34a6ac	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdbd84279	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdcebf632	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdd5718d3	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdddb1951	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf326c72	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe17d71fc	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe1de0a69	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2c1fd11	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4cbaf69	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5d30ec9	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6868b8f	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe71da05a	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe75b4a9e	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe77b72d9	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8d23341	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe95144a1	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe95c348f	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9aadcaa	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9b6be24	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea919291	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaa23bc0	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeab1400b	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xebe578be	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed200b66	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee0db05e	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee155c21	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeecfbb1f	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeed4a4a6	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef192b92	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef296240	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef38df9e	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf47e277f	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf4cf766e	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf80f587b	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfd67a12d	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfdd2e985	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfeb5813d	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff1c8832	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff2000c4	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xa145aedc	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xa4328647	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x026bc762	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x04bc1c0e	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x079b6d25	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0aff795b	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x17898f41	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x271df2f5	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x289f9329	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x30db187a	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3f6ef0ac	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x41f62899	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x46f2f384	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4d1cd81d	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x52c92f44	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5552a2da	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x56632558	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x57a48bc9	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5ca60055	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x64f263f6	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x78eec7fe	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7ba186bd	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7effb251	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x80f7d4a0	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8964ab31	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8e574dd9	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9fcc1ded	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa3347047	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xadd4b2b5	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xafbec44d	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb9e167a3	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbf6088b1	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd2c96842	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdd916566	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe4b595d7	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xee661eeb	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf44f0776	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf7ca0a7d	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0897d23f	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x097c9708	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x10e03741	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1749200f	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2159bb6b	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2512152a	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2ed99ac7	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x387242c7	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x44420515	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x590c1ab6	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x74e91915	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x97a6fc9a	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa085106b	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa9f897f5	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb693f861	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb6c338ab	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbf9a56b8	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xebe647ed	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xef730ddf	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf22bd993	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x420ee613	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x4c967224	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5683c2d5	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5f22ecf0	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x61504dcf	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x75b86baf	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x8d81ccd9	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x96d7fd8e	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa5a0a5c8	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xad681d13	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb12e3333	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xcacc3719	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xfea7683e	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x0563150d	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2224eb60	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x26e368a1	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2d635104	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2f27fe7e	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x3e879cf5	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4c496336	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x85423203	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x90dfa44a	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xae3dad1c	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xb4372f34	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc8b28ad0	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xdab6e20f	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xebc6f8c1	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xef194077	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf365cf62	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x36e4068d	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x6c043b92	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xa82b7279	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xaddeba13	ipcomp_output
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x035ffeb9	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x189f8a27	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x4ea9dcaa	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x4f06fcec	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x5344f195	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x74fe3f05	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9ead9d26	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xba49c580	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xbc03d935	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x00d3befe	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x05636f93	snd_hdac_aligned_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0b8933ef	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0c29b9e2	snd_hdac_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0d0cca15	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0f2fe9b6	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0f861671	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1488641f	snd_hdac_aligned_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1629fcf6	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x194f351c	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1a148690	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1faf797d	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x26006ddd	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x294b4b39	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2a604770	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2cf7d4ce	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x30a2ee6c	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3287be9b	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x32f15cc8	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x33eafdd4	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x34ee6519	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x36290f1e	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x372cd32b	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bb26652	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x42577541	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x427a4553	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4494c748	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x482bb8e2	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4855956d	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x49c61539	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4bc4f82d	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x51132956	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x525b1f1c	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x54286768	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5b79aeea	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5d0375b0	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5e3c0f64	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5e40d3b3	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x61fc3f34	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x648846b0	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x673d9e98	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6e62557b	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6fd87032	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x72bb31bf	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7810069f	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x78219799	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7f34a317	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x801ec4de	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x811bb09a	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x81f36de8	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x861f7233	snd_hdac_stop_streams_and_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x87da08ad	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8930d404	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x907336bf	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93cd3140	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9b9a535f	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f10b6bc	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa1a1263a	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa4b5aea0	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa5913599	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa59ed146	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa6e34dcc	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa9e77e49	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xac874288	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb2509a8f	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb3c556e2	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb819be35	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbb453259	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbb996a5f	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbc9c9eee	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xca72eb9c	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcfd19501	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd62a5de2	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd83b887d	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd8b46207	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xde8afe27	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe11f97b6	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe48a6008	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xea2a0c44	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xefae420c	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf0eadbef	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf8f4df6d	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfb7bdb01	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfd16c194	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfd8439ba	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfdd7e697	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x4272a672	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x01c15b6a	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x2b3da95c	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x34bba8be	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x6f6306e5	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x9c59242c	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xcb16af4a	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03935ecb	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0494d0ca	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x050421f7	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0676f5ac	snd_hda_get_input_pin_attr
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x07316802	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0aa63e30	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ab033fb	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0afb29c5	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0b6ad2f1	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0c66f483	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0f9bbac5	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x10b051af	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1115a51c	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1211b10c	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x12c59aab	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1384fbcf	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15223e71	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x155fff6e	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1e30ebc2	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x222220ea	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x23850bca	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x23fb4cf3	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x25b763a6	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x25caf96c	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2de0f43f	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x316ba1af	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x319caddf	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x33931726	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x35069ca1	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36981a7d	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36caaee1	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3719021c	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3845fc63	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c4aa800	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3cfa1803	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3f33819e	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x418b4fc1	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x41aa1257	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x42cd3fb9	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x474dd67b	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4c0b1599	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4ec00d66	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4f14e078	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x500f2b1b	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5410ea04	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d89bf24	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5d94a591	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5ea55b38	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5efaa2e7	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5f044c73	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5febde37	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x609b6fd4	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6108203f	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6261fb80	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x62b1b47e	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x633bf6b4	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x650979c2	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6752bcb7	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6b1c7d4e	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6bdf0cfa	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6c7c2609	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f8467b6	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x703713fc	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x71a7623c	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x741ac9ba	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x764fad5f	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x76965775	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x774ecb46	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ce5db23	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7dd0dceb	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8f8bab27	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x91d02796	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9327e592	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x93980af7	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9afa9842	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa00b816a	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa0136980	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa17b216e	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa2b18bae	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa347be00	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa7f4a39b	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa88deafc	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaad7c94e	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xac2889d5	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb1ef9c5b	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb3237a8c	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb3bd3357	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb4f95889	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb57afdea	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb5f2d003	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbdf7b64e	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbece81cc	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbedbab11	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbf0edd07	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc22d6bfc	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc70c86a1	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc78bfaea	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc79c09bf	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc7bb6831	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc7e94a8c	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xceb5fa85	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcec00231	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcfdeb4a1	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd0727210	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd25b1aa9	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd3e9bb18	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdcfe640f	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdf525413	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdf82f18e	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdf8b54eb	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe67ab4a4	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe916bf64	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9dd149a	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeae6f5e3	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xef728d5f	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf0ec4dc2	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf5f0311c	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf94713bb	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf94b2983	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfa9e5103	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfe9f5d41	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfeb1128e	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x03f42804	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x040f53c9	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x05edbfc4	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x08d65e7f	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0b23e253	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0bddf4a4	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0e02397e	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x24fbe8fc	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x31ea1710	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5f4fd14c	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6d33550c	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76a4cd88	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76dc6871	hda_main_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x871a6e44	hda_extra_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa9e1b509	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xabd3f862	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb26a9275	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb6deefbc	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xbcc03d7b	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc2951728	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc9dfdb6e	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xdd6ef066	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xddd0eebc	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe4ed8761	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x2033d802	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x52e46950	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x0939b24b	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x16703458	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x24d7ff07	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x4a3b2d54	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x4c8c1e4f	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x63e133f0	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x64e0afdf	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x785ee5a3	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x97a67b01	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x98e59adc	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x020bfb54	arizona_lhpf2_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x1132177b	arizona_anc_ng_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x18d9869e	arizona_dvfs_sysclk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x20b88d77	arizona_in_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x25bf2d7e	arizona_in_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x283d89a8	arizona_out_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x33e3e1c9	arizona_lhpf1_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x44684cbe	arizona_in_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x46277216	arizona_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x49eae868	arizona_out_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x4f4bfacc	arizona_init_dai
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x501147f5	arizona_init_gpio
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x55a421ec	arizona_set_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x57d4ebf7	arizona_init_mono
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x61dbce6e	arizona_lhpf4_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x64a6e206	arizona_isrc_fsl
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x69102a20	arizona_sample_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x6d045650	arizona_init_spk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x729a5ef3	arizona_mixer_values
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x72e3ef26	arizona_set_fll_refclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x72ec2717	arizona_clk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7669274f	arizona_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7f26f273	arizona_mixer_texts
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7fcb929a	arizona_sample_rate_val_to_name
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x87b29465	arizona_ng_hold
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x8810f04c	arizona_simple_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x908c1f03	arizona_adsp2_rate_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x91512206	arizona_input_analog
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x9161a0a8	arizona_dvfs_down
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x92ea9654	arizona_init_dvfs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x9f64f660	arizona_init_vol_limit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa29db8eb	arizona_dvfs_up
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa3016366	arizona_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa47cf0e0	arizona_lhpf3_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xab4d845c	arizona_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xabef53d4	arizona_hp_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb0abb8d9	arizona_in_dmic_osr
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb32d98e3	arizona_out_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb769e6b4	arizona_free_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xbc691e9b	arizona_asrc_rate1
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xbdbe3478	arizona_init_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc69993cd	arizona_anc_input_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc9836ca3	arizona_init_common
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc9c29637	arizona_mixer_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcc5ba9ca	arizona_anc_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd7df6439	arizona_lhpf_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xdfe804b8	arizona_sample_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe0ad4801	arizona_in_hpf_cut_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe17adac6	arizona_output_anc_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe2e31547	arizona_of_get_audio_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xe3390bb2	arizona_init_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xea036195	arizona_eq_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf96be8da	arizona_voice_trigger_switch
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xfef442f7	arizona_set_output_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xff37a010	arizona_isrc_fsh
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x14994497	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xac515d25	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x28865255	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x6dbb7e40	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x83979f64	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xc0eb4ca8	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe7dd55f1	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x3e7fb7a0	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xa7730ef4	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xd674d227	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x226923f9	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x575a48f3	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x647c7448	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x6d8b0296	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xf8491519	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x89088c80	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0xe63e87a3	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98095 0x1ea3ef81	max98095_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x4947a123	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x4a576c90	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x8b636f0f	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xb266f3cb	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x4b2bb893	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x36b02c8d	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x3c1767c9	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xf94135e2	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x3ba7cbe1	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xd481d858	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x0c077fff	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x7c90d33b	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x1f9b3faf	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x9dd45128	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xdcf535e7	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xf75c624e	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x0d3076bb	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x31acb0c6	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x85970ab0	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xbe1c40e2	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x554467a3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xbb4583f6	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x4d98d232	rt5640_dmic_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5640 0x56344cee	rt5640_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xbc2e92ea	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xfd836bde	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x52831f4a	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677 0xec27ce3c	rt5677_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x3063f023	rt5677_spi_write_firmware
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0x425a794d	rt5677_spi_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5677-spi 0xa8c77592	rt5677_spi_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x4289aa4e	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x9cc55879	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xce7983e0	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xde6aafe5	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xfe3ab18d	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x60c156fb	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x49412b84	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x09abffd8	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xbe448c0e	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x8b01da70	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x565f0bde	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0x41686891	twl6040_get_trim_value
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0x4b3dc8e9	twl6040_get_clk_id
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0x9b50d5c4	twl6040_get_dl1_gain
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0xa75355a4	twl6040_hs_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-twl6040 0xffebef2a	twl6040_get_hs_step_size
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x3624276e	wm_halo_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x3df2ee18	wm_adsp1_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x4d121bb0	wm_adsp_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x52c16479	wm_halo_wdt_expire
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x616d8aba	wm_adsp2_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x62ca53f9	wm_adsp_compr_set_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x6974d37c	wm_adsp_compr_copy
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x6bc5e35b	wm_adsp_compr_pointer
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x6e7c2aa9	wm_adsp1_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x733b2931	wm_adsp_fw_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x7b283656	wm_adsp_early_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x83476ccc	wm_adsp_fw_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x885335f2	wm_adsp_compr_handle_irq
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x91537af3	wm_adsp_fw_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x97ca64e4	wm_adsp_compr_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x9bd3ef98	wm_adsp_compr_free
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xa1f9c32a	wm_adsp2_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb270aa7b	wm_adsp2_set_dspclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb5b1c8d4	wm_adsp2_component_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xca0d08b6	wm_adsp_compr_open
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xcdfb4adb	wm_adsp2_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xdd3c79ef	wm_adsp2_bus_error
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xe7aadd69	wm_adsp2_preloader_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xea38ee07	wm_halo_bus_error
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xf5becb56	wm_adsp2_preloader_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xff347b42	wm_adsp_compr_get_caps
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x11bb1e8f	wm_hubs_vmid_ena
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x13fb8e96	wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x1ae40778	wm_hubs_hpr_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x23386493	wm_hubs_hpl_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b	wm_hubs_dcs_done
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x61b3ec3e	wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x757206d5	wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xa99bafa0	wm_hubs_set_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xabbc7214	wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xe47a5933	wm_hubs_update_class_w
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x68b268ef	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xb55cc124	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xbbdb5b8e	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xd536c0c5	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x604daa5d	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x4e64811c	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0x6eb67402	wm8958_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0xb7d5ab9b	wm8994_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x08ef71f1	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x127ed8f9	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x1a99f3cc	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x32b90c6a	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3973da6a	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x4e18698a	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x53adc2d2	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x5b24ada3	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x8b71ea3c	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x94ec627e	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9613563f	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x9ae70878	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xb566f02f	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xbc3838b8	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xbc72cded	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xbf4623a6	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd7d98646	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xdda6fbea	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xdde68be2	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe3e1392b	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x0433c0b3	mtk_afe_fe_startup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x0cd5cde8	mtk_afe_fe_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x3751137b	mtk_afe_fe_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x620164fc	mtk_afe_combine_sub_dai
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x65ff00ad	mtk_afe_add_sub_dai_control
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x68312e50	mtk_afe_fe_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x6e2f1edf	mtk_afe_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x88ac9606	mtk_afe_fe_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xad5f8aaf	mtk_dynamic_irq_acquire
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xb4711472	mtk_afe_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xc82ec059	mtk_afe_pcm_platform
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xc884dbaa	mtk_afe_fe_hw_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xd6b9be20	mtk_afe_pcm_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe7c93f31	mtk_afe_fe_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe8e5ab3b	mtk_afe_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe9263d8f	mtk_afe_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xed10f9bd	mtk_dynamic_irq_release
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x48a6176e	axg_fifo_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x78382fbf	axg_fifo_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xe90398ed	g12a_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xfc04f897	axg_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x1aafbcb4	axg_tdm_formatter_event
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x2db27767	axg_tdm_stream_stop
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x679cd72f	axg_tdm_stream_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x9734c838	axg_tdm_stream_start
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xb711a93e	axg_tdm_stream_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xc9d5d721	axg_tdm_formatter_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xeaf1cae4	axg_tdm_formatter_set_channel_masks
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x45f91aac	axg_tdm_set_tdm_slots
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x28421460	q6adm_get_copp_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x9922fc96	q6adm_matrix_map
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0xa8b87f13	q6adm_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0xaff08af8	q6adm_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x369b6eeb	q6afe_port_put
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3997e13a	q6afe_is_rx_port
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3b16d6e7	q6afe_port_stop
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x498d993b	q6afe_get_port_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x5332304f	q6afe_slim_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x7df60063	q6afe_port_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xae809786	q6afe_hdmi_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xcf23e2b3	q6afe_port_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd4523c59	q6afe_i2s_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xe45246a8	q6afe_port_start
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xfaf22370	q6afe_tdm_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x151ae9d4	q6asm_cmd
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x40299233	q6asm_run
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x5382edf1	q6asm_open_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x56418ca6	q6asm_map_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x68db31e2	q6asm_unmap_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x6eb89e95	q6asm_media_format_block_multi_ch_pcm
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x7353d9dd	q6asm_cmd_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x762f944c	q6asm_audio_client_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x857330c9	q6asm_write_async
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xc5a116a4	q6asm_get_session_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xcc4952e4	q6asm_audio_client_free
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xd599e50f	q6asm_enc_cfg_blk_pcm_format_support
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xdbedfcd9	q6asm_run_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xe060c0a1	q6asm_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xf37f832c	q6asm_open_write
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x7e52e977	q6core_is_adsp_ready
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x9b02ea0d	q6core_get_svc_api_info
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6dsp-common 0x17142e58	q6dsp_map_channels
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0x5b75f756	q6routing_stream_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0xa7a64259	q6routing_stream_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x0ba255e6	asoc_qcom_lpass_cpu_platform_remove
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x880a1270	asoc_qcom_lpass_cpu_platform_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x98393422	asoc_qcom_lpass_cpu_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0xbd6a8488	asoc_qcom_lpass_cpu_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-platform 0xc58b61a6	asoc_qcom_lpass_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/rockchip/snd-soc-rockchip-pcm 0xc4d5a1c8	rockchip_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-idma 0x0340de96	idma_reg_addr_init
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-s3c-dma 0xb49a4c84	samsung_asoc_dma_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x6869e555	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xbd7d3d5a	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xe39369e6	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xf9604bb2	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-pcm 0x7ca9553c	tegra_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-pcm 0x89fed244	tegra_pcm_platform_register_with_chan_names
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-pcm 0xd4cb1ce4	tegra_pcm_platform_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0x6c98fabb	tegra_asoc_utils_set_ac97_rate
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0x738848d8	tegra_asoc_utils_init
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0x77d4dd55	tegra_asoc_utils_set_rate
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra-utils 0x836952d3	tegra_asoc_utils_fini
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra20-das 0x0d54c9b9	tegra20_das_connect_dap_to_dac
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra20-das 0xb52cfca4	tegra20_das_connect_dac_to_dap
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra20-das 0xbced7431	tegra20_das_connect_dap_to_dap
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x386bbc30	tegra30_ahub_allocate_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x55a40206	tegra30_ahub_disable_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x5d7237ff	tegra30_ahub_set_cif
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x6060e6f9	tegra30_ahub_allocate_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0x6fe20143	tegra30_ahub_set_rx_cif_source
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xb419329b	tegra30_ahub_disable_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xb4a9367d	tegra30_ahub_enable_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xb81bca9d	tegra30_ahub_free_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xc78c7125	tegra30_ahub_free_tx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xccb67e55	tegra124_ahub_set_cif
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xccc98372	tegra30_ahub_enable_rx_fifo
+EXPORT_SYMBOL_GPL	 sound/soc/tegra/snd-soc-tegra30-ahub 0xe549513a	tegra30_ahub_unset_rx_cif_source
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-omap-mcbsp 0x1e96d85b	omap_mcbsp_st_add_controls
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-omap-mcpdm 0xc0bd6d32	omap_mcpdm_configure_dn_offsets
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-edma 0x111882ac	edma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-sdma 0x9e1a703f	sdma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x10c6eb0d	uniphier_aio_spdif_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x165bcbc1	uniphier_aio_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x25855f00	uniphier_aio_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x558dce05	uniphier_aio_i2s_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x567f4f60	uniphier_aio_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xa2096370	uniphier_aio_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xafbbf869	uniphier_aiodma_soc_register_platform
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xc6845160	uniphier_aio_probe
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xe33a50ef	uniphier_aio_dai_remove
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x03f83295	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x0b65bdfe	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x127caa25	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x2b12d0a8	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x481c9937	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5122d07d	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5eea2821	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x67018ec0	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x8596c31b	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x975a65f7	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xbdab5f89	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xbf15f2be	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd7641bc9	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xd8c8ef06	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xeb77ba6a	line6_init_pcm
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x000d5d4d	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0014d011	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0021a219	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x0028f9f5	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0056321f	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x008cd82e	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x008d0585	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x008ee111	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x009831ba	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a44400	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x00c58e44	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d191e1	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d3e0a0	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00df1ab2	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e608cd	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x01032046	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x010ce9a9	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0113ede0	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x012037f3	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x01259c90	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x012a51de	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0132854f	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x013644a7	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x01490f31	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0150788a	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0153beff	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0170cb6c	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x017f4a83	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0195397d	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x01969edf	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x01aab494	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x01bb5959	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c7306d	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d2887c	hisi_reset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d3810e	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d4cc00	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d747f5	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01daf413	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e3b04b	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee6c67	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x02128b65	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x02220040	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0232416e	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x023c0996	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x024e1d1e	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x025421bd	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x0266cb78	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x026af7ea	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x026ca1d8	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x026f3380	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x02802728	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x0289e7f4	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a09f0a	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ac5911	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b24cd3	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02dd81ed	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e4ba8e	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ea61a6	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f1df11	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f98c28	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x03066397	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x030f2604	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d7205	clk_half_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x031ee3cc	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0323c477	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x032660af	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x03315f0c	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x033c6c0b	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x0348362a	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x034b55c2	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x034bdcda	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x0358c44f	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x03592fc1	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0360be1b	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x036d8e9b	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x0390c140	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03a5dd90	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b50464	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c2ba10	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ccdbd1	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d1d3d9	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x03dfbe0d	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x03e292cb	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ec80ba	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x03eef750	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ef6504	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f5c01f	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x040bdc59	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x040f8240	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x042ac4b8	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x045a89fe	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x045bfe92	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x0466766c	mtd_write_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x046cf717	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0478bd7c	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x047ea265	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x047f6c45	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x04899336	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0495f4c1	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x049a2bce	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x049bcafb	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x04a16e1f	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ae4635	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b35897	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b5e388	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bed4da	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d65dc0	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x04dcce4e	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e4a7e9	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f17570	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0503c886	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0504e056	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0518c781	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x05279927	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x052db8e9	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x055df17e	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0565d161	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0570d6f6	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x05776d30	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x0590b1d8	nand_write_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x0595accf	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x05970162	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a11e71	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b1fb57	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x05bac2e7	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c20865	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c463e7	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x05cc3e80	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x05e2fdcc	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x05f72912	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x06122337	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x061f0c56	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x06228b62	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0627a6b9	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x066ae8f5	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x06749cb5	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x068fa59f	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x06954c9d	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x06a624d0	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b53bd2	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b75028	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ce8d91	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e6bb28	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e92aea	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ebe794	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x06f0647d	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x06f20e0f	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x070a67f0	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x070d1352	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x071829f9	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0737598f	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x073a92af	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x073e898f	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x074496a1	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x075042b8	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x077a5047	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x077aa7bc	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x078854da	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x079ccf10	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a6c995	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07c24bb0	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e4ebc8	put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e75624	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x07eb8ed5	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fa055e	scmi_protocol_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0803c6e0	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x08073cf0	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x08227042	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x08268c3b	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0850f737	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0864347c	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08814d26	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0884388f	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x088b09ca	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x0890871e	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x089137eb	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x08970dc4	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x0897407b	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x08a7d201	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x08aeed7f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b3f98b	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c00e72	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c2a0d4	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c73234	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c92321	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x08ccbe59	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d07b7f	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08dbad5c	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e27737	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e94300	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0904675a	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0907b84f	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x093f88ff	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x0956b414	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x095fabdc	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x096028d1	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x096daf01	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x09932230	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x099b1274	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ca378f	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x09de2689	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e284e9	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e5abc3	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x09f941cb	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a039f0e	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a1377a0	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a142eb8	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22631c	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a30d74a	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a386f0c	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a427407	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a4b3cd7	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a4b9f9b	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a54989e	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a604ea2	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a683036	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a779f8a	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a8e92d9	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a939a6d	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a96ff44	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a97d0fd	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9a8ce0	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aaed044	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab96099	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abc1190	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abc3d93	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x0acd5f9f	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ace4be2	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad0539a	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad10d53	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad1ee11	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af4a070	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af72c5c	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b06dd20	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0e187e	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b293f3c	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2970fe	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2b6439	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2f5991	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b40f1bd	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b41d504	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b47e94c	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b47edfe	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b518fb3	mtd_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5bd4f5	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b6e583d	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b70a535	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7aa35d	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7b5117	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b803846	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b81d6b8	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9b3d58	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9d8d78	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba32697	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb028d4	hisi_clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb69764	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb70724	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be2d551	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bece05f	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bf495ed	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c01dd95	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c07cbcd	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0a5ff6	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2391e9	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2a1e7a	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c387ef5	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c47ef48	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5a26db	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5f5581	usb_ep_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c6b8f48	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c7268c3	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c8c2fec	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c9159fd	tegra_bpmp_request_mrq
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb1cd04	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cbc3f6e	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d070b3a	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d345507	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d50b311	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a45db	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a5939	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8e1863	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d8e69f0	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da37665	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0db0f53f	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc53841	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd64950	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de840f9	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0def3009	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dfc2be5	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e00a4a8	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0c1064	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e2ece80	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e65fbcb	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e66dd07	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e82661e	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8a574a	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e922a9c	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9afb22	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ece0a18	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed1ca16	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed8adda	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x0edc61f3	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ee33d75	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ee62358	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eef6ea7	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efc025d	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f09f240	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0a83c2	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0d4ca5	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1f6249	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f29223b	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2da3dc	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f49efac	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f4a147a	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7c3515	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9a1e3e	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9eabe1	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fa13479	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faf248b	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fb7def2	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc53aff	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd6363f	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fde3a0f	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ffde7c1	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x100359e4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x100ab093	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1043cac3	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x10831719	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1083cc8b	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x10862ae9	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x108bcef9	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x108c41cf	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1097d334	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0x1098b8ac	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x10af2a92	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c058be	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x10cf7294	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d38b64	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10fda904	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x11032449	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x1104c4d5	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x11163448	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1125de3b	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1139f74a	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x113d8188	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1147d7bf	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1156e02f	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1159171c	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x1163813d	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x116acd3d	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x11852f0c	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 vmlinux 0x11866fa6	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11aa60a7	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x11af719a	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d5c445	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ec64b6	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f2304d	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x12038d55	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x1211ef5b	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1218d1c7	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1223edff	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x1225eb06	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x1227cb04	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x123c3e6b	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x123e2cd1	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x12459131	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1275370a	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x127577c2	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1280730b	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x129f910b	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x12aac399	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b82ec9	ahci_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x12c6d9d2	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ddfb05	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e15b21	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e414a7	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1302aa76	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131da1e2	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x13261c6f	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x13311b90	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x133e104c	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x13433ac3	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1345593c	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x13483c47	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x135af744	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x135ccc74	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13627764	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1377b445	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x137e2312	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1381d4f3	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x13889036	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x138b0a7c	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x139ee662	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x139facb2	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b0415d	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b664cb	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x13bdd275	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ef337c	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x140cbf1a	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x140d042d	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x14147443	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x141d42ac	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1424abed	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1435110a	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x143bc090	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x144fccce	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x1484761d	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a98a21	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x14b9484b	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c2872d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d781dc	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x14de9ae0	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f1e6c3	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x14faeae5	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x14fc3507	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x15285ddf	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x152f0531	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x157e6809	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x15844ebb	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x158e6fee	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a51c61	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a7f9f1	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b06044	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b50929	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d0df5a	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d965a4	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x15deceb7	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e35536	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e8755f	dapm_clock_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e8beb5	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e97a62	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ed0f8b	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ff43f8	nand_reset_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x1631f358	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1639f1da	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1669040e	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x168121b2	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x16bc8f22	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c44528	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c4c0b3	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c4c23a	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c630fc	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d84e91	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da110e	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x17064153	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x171997cc	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1737e07d	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x173928e1	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x173f145d	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a0633	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x179cba96	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x17aac67d	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c9c2cb	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d3d638	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x17edada7	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f466ca	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f605bc	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x18084ed3	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x181a1c47	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1823ee8a	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1833d35e	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x183a472b	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x183e1f95	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x18451642	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x184fbcf3	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1862e891	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x186ad628	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x187579bb	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x187fd389	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x188217af	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x18850704	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 vmlinux 0x18862d3e	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1889e5ca	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x1899758d	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x189d8ccc	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x189e9b30	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ad8f15	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x18aeba92	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c4be46	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18dd86dd	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ddfa86	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x18dfe631	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x190a53e4	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x190a7209	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x19177b7a	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x19178bbf	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x192a152e	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1931f2e8	devm_regmap_init_vexpress_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x19370f18	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x194132fa	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x19528659	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x1953eceb	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x196c7e1e	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x196e58ca	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x197f2aa7	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x1988903d	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a39d87	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a68e80	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x19aa7fd4	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b863ee	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c0f0b0	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19ea89fe	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f3fa79	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a11d743	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1b93c5	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1c7661	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a24be13	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a52e08b	ahci_check_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a610a4a	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a612c46	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a66fe25	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6ea815	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a99f2c1	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa21742	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa351b6	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aaffa1b	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab1a445	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab7b303	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x1abbdc46	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1abd58ff	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd04fc	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad066cc	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad8b716	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae9b2e2	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af264a9	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af3fc47	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af477dc	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6c9aa	clk_regmap_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b014546	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b08ac31	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0ec823	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1b5233	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b21d92b	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b22df1b	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b24b24d	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b25d6e6	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b37674d	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b37cc65	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b38b79b	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4a0537	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b604523	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b621497	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b7e96c3	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb96634	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc40a8d	gpmc_omap_get_nand_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bce7d7e	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bcfe8c8	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd9916e	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bdaa365	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be2b1ba	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0a06a7	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c28857b	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c441859	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c516abd	sdhci_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c52ce3a	snd_card_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c790db0	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c798d9f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca14d38	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cae2376	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cba5b61	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d05195b	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1be94a	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2258c4	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d22858f	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2634b8	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d41ff95	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4368dc	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d5250db	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d61e7e1	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d83616f	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d94f0f0	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da76adb	meson_clk_mpll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1db98ae9	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dbab4b1	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dbc435a	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dbe9bbb	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc6b66e	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dea1388	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1deb89e1	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0364ba	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e084651	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e18315e	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1b8657	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1d4aa9	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e2406b7	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e36ee9c	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e652abd	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e6554b4	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e67df76	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e78e576	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7b2618	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7d6157	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7fe74f	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e859fcf	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9ae0ae	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea9b929	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebcaee8	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebe5a56	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec001f3	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec4f0c3	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec5ea22	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed75265	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed781b8	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed95b41	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ee144b3	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f54b3ee	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5e21e9	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f774f46	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f788628	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f7fb448	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f853d8c	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbf2c84	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbfc289	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc8111c	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fca0b38	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fce901f	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd44b55	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd82640	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdaa05d	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe0395e	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe8f10e	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x1feae78f	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ffa3f72	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x200064bf	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x20008dea	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x200756d1	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x200de76e	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x20131904	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x20279996	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f790a	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x205f2a62	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x206af4e6	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ca95c4	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x20cfb484	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f633f8	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x21176ed8	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2117ae7f	hisi_clk_register_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x211d7ee2	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x213ec654	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x21562a1d	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x215b4d85	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21726652	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x2181f40a	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a6a6c9	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21af5ece	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b0eb67	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b1f020	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b2ad28	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b37445	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x21bb1952	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c9bc38	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d8f1cb	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ead7e4	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fb775b	cpts_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x21fe1474	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x221e76e2	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x221f8a7c	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x225c1810	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x225dd088	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x22648c02	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x226aba68	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x227e7c2b	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x229556d7	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x229eca63	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a52ab9	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b6f391	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c39384	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c4fd9b	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d266b9	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e33e0e	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ec4a7a	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x2308de91	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x230f37a3	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x231ba695	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x231bfa5a	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x232d0947	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x23311b93	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x23373a93	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x234e408d	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x234ee28b	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23618bb2	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x239270da	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2394230d	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x23950433	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2398f03a	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x23a20df6	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b02899	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c5ce02	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23efc624	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f0b1fa	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f631d8	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2411a889	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2419d07e	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x241c4ca6	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x242ef313	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x242f2945	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x2431ee84	scmi_protocol_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x243a452e	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x243e39b8	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x245894ae	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x247269dc	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x247641ce	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2495195a	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2495aac5	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a273c6	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a5fdde	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x24aaa2f6	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x24bd9134	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c5ab05	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e81dde	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x250a113d	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2510c306	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x2511155c	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x25258d08	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x253d1425	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2567b54b	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0x2568ee68	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x256c4d51	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x25876024	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x259c73b8	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x259d10f7	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x25af3cfe	mtd_panic_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ba2b45	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c33997	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c8e60a	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f5651e	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 vmlinux 0x25fe5b6b	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2605d249	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x260ba678	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x261515b4	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x261cec16	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x26295d83	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x262a16cf	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2638586b	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x263b53b2	xhci_mtk_add_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265b8da8	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x2677f998	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x268d55d6	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x26946849	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x269bf113	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26b8d634	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c547c0	bL_switcher_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e55ebf	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e946b6	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x27295d6a	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x272e9d77	hisi_reset_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27408a64	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x274abe18	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2753b77d	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x279b33eb	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ac76eb	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c3882d	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x27c7a7b2	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x27cb1f35	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e0f615	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2800b7ca	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x28025dd8	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x28150fb6	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x282b7d57	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x283a304c	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x28531124	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x2855a630	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2873f4ec	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28876bf9	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x289c9f15	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c74c36	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x28c75542	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ce5bc0	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d22642	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d56e22	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f3e88a	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x28fe74ab	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x290d06cd	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x29257ee5	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x292b3bf6	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x29310264	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x29355523	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x293d0688	sdhci_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x2954c58c	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x295b982a	hisi_clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x296a9754	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x296d40b3	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x29737d4d	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x29746184	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x298fd859	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x29941eb1	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x29a0399a	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x29b8dac0	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x29bd8900	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cf2470	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d905d6	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d9ce0b	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e449dd	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e4b940	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a019bc8	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a17c484	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1f6d2c	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4ccde5	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a53bff4	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a54faff	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a66c70f	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a865862	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a866c7a	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a896384	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a95f097	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a99d20d	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac89694	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad3456c	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af5b2d6	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b07ff21	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1b549d	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1d53db	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b23b9e1	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b24d86d	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b33ff77	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b477873	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b53eb4e	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b541135	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b73ba56	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7a90f3	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8a650b	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b98fdae	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba5a447	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bae5fea	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb3a6b1	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bd946e6	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be1b3f3	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be4ee11	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bef1594	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf9179c	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0fb899	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c16b476	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c23dea7	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c37cd33	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3e0dde	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c4e28d7	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c4e2e88	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9477b3	nand_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9e0ad5	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cba598e	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cc9f5df	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1cadd8	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d3c06dd	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d46a445	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d473cf0	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d513943	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d6044c1	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d64b996	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d71a45e	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d753b3a	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d7cf136	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d835992	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d95e747	scmi_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9834c9	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9c10be	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9e2a78	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da1ab1c	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db13b4f	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db67d4a	owl_sps_set_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2deb01d7	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e13829c	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2bbc3d	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2e8f3a	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e30509c	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e375238	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4261f6	snmp_get_cpu_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4fa51b	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5031a4	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5159f2	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5b85a2	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e6d3cce	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8febf5	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e941bd3	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea247b8	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec844e1	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edd7a57	snd_device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee7e5b2	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef0dc74	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f01b48b	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0af2c8	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3f971a	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5c1223	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f63e634	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f752fcc	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f81d980	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f8458c5	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f895416	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f89f67a	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f95018e	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb42951	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb70184	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc7504b	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcebeb3	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdb1805	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fea414e	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fec8631	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x300887a7	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x30096d57	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x30163648	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3016c84f	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 vmlinux 0x301bdbe0	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x302b61a9	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x302d1845	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x302db494	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069809a	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069e46b	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x3081433c	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x309ac359	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a14981	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a2b5f5	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a7b901	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cb382d	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x30da8cbf	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e10422	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x30e5a18c	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f105b8	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3115e681	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x311dbf52	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x312a503b	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x3136d531	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x31414c15	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x314189b3	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x31472cb8	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x31563e15	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x316008b1	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x31641f68	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3169914b	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3179bf7a	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x31862e7e	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319cef91	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x319f9b15	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ab9e06	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b9f41d	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d69f93	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x31e084e5	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x31f0915e	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x3213ad88	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x32243ca2	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x3240bcc1	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x324a04e7	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x325b9dca	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x326e344d	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x327b6956	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a0ab86	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a43013	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x32a8c3a3	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32b71e8b	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bcb233	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c29e	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c74ca9	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d742a4	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x32dbdab5	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f3d3d7	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f40aeb	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x32fa857e	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x32fe5646	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3320eb0a	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3332b169	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3372721f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3398e8c0	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ae8fe4	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b3bc4e	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b46aa6	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0x33b9c33b	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e6b3b9	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e9e0a2	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33f18f7a	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x341bc2a2	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x3434b980	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3442fb18	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x345d386b	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3461ba36	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x34709c1c	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3471da8b	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x34908579	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a84df3	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ac50a4	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x34b54d79	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cca0ab	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ccb1ca	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ccc17d	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ced5e5	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d2fbbb	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e23e89	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f345f8	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f55a80	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x35266c5f	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x353344bb	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x3542c349	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x3549ac46	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x354e728d	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x35522238	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x35681a0c	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x356b3ddb	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x357f66dd	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3591208c	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x35919a4d	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a0302a	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a20670	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d4eeba	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d78938	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e789ef	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x35ee4181	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x360c0ef4	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x36116830	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x36134c28	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x36213ff1	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x36223ee6	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x362de961	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x363a44eb	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x363bd5bf	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x36420c0a	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x367e8357	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a1f1dc	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c3d929	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e09f9c	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x36eec116	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x37080e39	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x37188481	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x37197292	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x37560f76	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x375779b4	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x3759173e	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x378f1b7e	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x378f589f	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b59af9	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ce2dc6	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x37cf37f1	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d28719	rockchip_pcie_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e158e0	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e49afa	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f68706	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f9cfe8	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x37fa2f77	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3806ab28	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x381413a3	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x38365251	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x384c87f8	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x384f8013	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0x38535426	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3871047c	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x3875a2bb	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x3879fe91	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3881c230	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x38888339	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x388b142d	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x388fb8a5	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3895fa3c	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b38ed	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a9c2c7	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x38aa4657	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x38adc42e	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b56b42	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c0c9e4	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c17f0f	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d64028	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38efaf3b	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x39099a17	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x390d7dfc	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x39174654	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x391ca878	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x39380c7e	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x394a33c1	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x394a8314	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x399245d8	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x399ad092	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a78680	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b39690	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c7ce62	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d0642a	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x39da0f9e	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ee90ac	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f4f5ef	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a052217	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0acb4a	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0e1426	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a16cdff	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a328798	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a33a81d	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5c1d06	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a90ffe0	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a94031e	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a97baeb	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aabad88	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aacd6ce	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aeccc33	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x3afc2f1c	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0bac0f	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0f32ac	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b0fc2fc	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b1e77c4	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b24f423	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b284012	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b298c3a	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b32bf61	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4b2cb7	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5d5f14	cpts_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b635c48	arm_iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b725452	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b726cd9	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b94ba3b	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b989735	sm501_unit_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba26281	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba27c0a	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bbbb33a	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc5932b	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc6d378	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be19620	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf02f1b	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf807c8	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf820ff	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf9748b	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c064f2f	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c0df869	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1ccb45	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c36c1c2	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3fb212	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4a2f95	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c57582c	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c57d86d	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c6325c4	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c63e100	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c651f33	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c65bc87	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c72724e	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb904d1	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cbc10dd	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc43fe8	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cdd33dc	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d03b60e	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a9f13	clk_regmap_gate_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d16065e	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d1ecfd4	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d290095	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2be133	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d31dd78	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d341e62	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d3a8010	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d49fc73	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4cb63d	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4eb8ac	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4ed666	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5630cb	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5880ed	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d69ec2c	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6c6411	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d79f897	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8650d1	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d875364	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d91a5fd	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9d8138	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da44158	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db2039d	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbcc413	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd05567	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd0bcf6	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd78c49	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ddd4c93	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dfabba5	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e01b2e5	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e037a2f	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1c7e1b	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e294fb1	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e31d9c3	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e58588d	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5f5622	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6d4f60	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e70faf0	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e84832d	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8f10fa	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e90c55a	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e96c632	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb29b2f	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec5df9d	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec96e58	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee67bfb	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eea4e0f	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef8073e	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eff99f7	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f060887	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f2145a9	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f223b13	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f338c8f	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f34cca1	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f40a25d	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f42aa7e	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f46ac16	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5f9507	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f638b0d	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f83a527	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa359c0	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa7771b	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fac65d7	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb0808a	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb1fe71	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb57128	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb6f1ca	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd3fe06	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fea029c	hisi_clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x40003fbf	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x40019fc2	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x400fd38b	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4017f2c7	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x403ebeb9	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4044a899	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x404653e3	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x4052edc0	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x40592a2d	sdhci_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406ab224	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4075a3f7	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4094242e	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x409b93cc	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x40aa93c8	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e135ee	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x40fb9e85	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x40feff9a	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x411efdfd	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x41237c1a	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x412b4184	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x413d691e	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x415730f0	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x416c2f50	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x41851829	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x41887077	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a872b6	tegra_bpmp_free_mrq
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ace5b6	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b2a9d0	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c2b52e	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c30f3a	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ca92cb	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cdd35e	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d12c94	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d9c167	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e2003d	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f0533f	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f8080d	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41fab477	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205ad24	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x420a45a4	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4217e3d1	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x422760ec	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4228659c	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x424acdd8	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x424f7243	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4250d826	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x425510f8	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4264bc5a	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x42679297	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x426c7e83	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4281fda3	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x42887525	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x42991c26	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x4299ff7f	mtd_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x42aadcce	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x42acb07e	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x42afec80	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b980ba	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x42cffd38	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e7a297	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x42edc769	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x42efb127	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f88a64	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x42fc52bd	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x430f09b9	sm501_misc_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x4317d2d0	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x431a2613	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x431e8d7e	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x432e4a83	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x43369ce1	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x434229e4	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x434280ae	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x4346ecfe	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x435c26e7	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x435fa09f	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x43618b6d	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4366e694	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x4368fb8d	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4379b3b6	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438993ce	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x439344c1	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x439389e6	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x439ee220	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a8c353	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a97001	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b456a1	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c0f67f	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c14824	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c508ed	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x43cd29ad	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d0c85f	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d132c4	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x43e2e3e6	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f4625c	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f922a5	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x4411aed2	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4411d9a5	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x441448c3	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4427ac44	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x443029fc	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x44339406	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x44356b13	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44524725	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x44531e80	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4481bc8c	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ac7d9e	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ba1042	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c177c4	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e5dd36	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x44eb8e30	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f1f07d	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f2c2fe	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f83d4c	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4500ba05	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4510fe46	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4515c87c	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4515d27a	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x45231e14	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x452346c8	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x45235f93	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4529e673	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x454f2bde	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561f990	qcom_smem_state_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4574fdd2	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x457ced63	mtd_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4582fcb5	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x458dc8bb	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x45927289	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x45929825	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a2551b	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x45abe1e6	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b9eead	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x45e9693a	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f1bc79	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fea6c4	sdhci_free_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ff8535	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4601ec22	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x4602e4cd	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4605228a	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x46055de7	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x46234316	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x4623a42f	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x46410312	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x46495263	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x46592697	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x466e5342	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4671b196	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x46780f2a	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x468aed16	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x469845f1	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x469e6e67	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a14057	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c06c19	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x46d6d625	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ea4d8f	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x46eac049	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ecc6f4	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x470dbc92	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4712400a	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x471c99b4	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x47317949	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x47396b24	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x474ca6f0	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4760ff3e	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x476985c3	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x476a178a	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4773c4e5	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x47767ddc	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x477c4e8a	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x47863936	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4788ff91	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4789d69d	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x478d7133	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x478e3ea0	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x47925794	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a99b82	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47afaf81	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b7dc6c	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c0c3a0	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c34861	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c6ffd1	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x47db23ff	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e07ad2	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e3fd4f	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f77c65	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4800c32d	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4800cb18	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x48020c1c	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x4817f6cb	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4827338c	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x48316bcf	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x484548f4	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x484779ef	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x484f27c4	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x48542884	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x485945b7	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4861f621	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4864e9c5	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4882c70d	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a75368	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x48abbbde	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b5a990	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bbf799	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bc4b89	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bdc06e	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x48cb3259	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d349d0	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e8c50f	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x491cf04b	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4920c715	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x49239123	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x49271a27	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x492dc49b	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x492fcbeb	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x4930472d	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x49326ef6	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x493e6908	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x495d2b8f	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x49618591	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x49674dcd	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x496d2bed	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4978c71c	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4991885a	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x49940f6f	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x49a2b36f	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x49aec6fb	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x49aeec7b	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x49afab4a	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b6102e	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bada6a	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bfdeab	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cbbafe	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e90d0f	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a09e004	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a09e725	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2067d3	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a28c8a0	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2acaad	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a324c6b	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a34b471	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3d3baf	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6b2f8f	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7ce1da	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a83c34a	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a871382	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a8886d4	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab07f7f	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac2a7f9	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac5a8ee	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x4adc50c6	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae4081b	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ae7eafc	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aed4e2f	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af977c8	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b05d205	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b1b53fb	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b335cdf	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b361902	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b3bb211	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b46c634	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b4940e7	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b530927	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5353be	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b5d9581	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6b0936	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6fd0af	scmi_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7c372b	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b934e09	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba3df65	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb7ae3e	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd8d840	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be73da5	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3f7564	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c48ae81	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5ef01a	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c887555	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c889ea2	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c89246e	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c967e5d	ahci_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c9b63ea	arm_iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca03002	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca0f09e	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x4caa06f9	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4caa8375	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb1cf44	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf17d9a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf24332	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf864e1	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfb0787	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d059e07	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0a1f74	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d12b650	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d19ff88	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d2c74f0	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d326e40	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3687d9	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d38f1e0	bL_switcher_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3dcae2	omap_iommu_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d469cf1	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d490525	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d7549ba	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d87f43c	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d88806b	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d934902	nand_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x4da1266a	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc4fcea	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd44f67	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ddc5378	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de4a14c	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df0031a	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df265f1	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df391d4	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e07718f	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e38036d	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e413cb6	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e4141b1	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e48e755	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e6dc81e	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e8aaf1b	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e94401d	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ea97339	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eaede78	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb147fc	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eb91765	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec81c68	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ee082a4	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5807b	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef7a132	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0c84ca	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0d09e2	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f31b6e8	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f543ff9	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f56d44b	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f622d14	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f66b972	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a8810	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f772237	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f790482	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7b2423	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7cabce	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f81b817	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f998988	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f99e323	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa1e60b	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa95ae1	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fd4cc94	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fee0d94	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff42dc6	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fff5e41	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x50059332	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x500ce297	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x50150ff6	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x50329679	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x5060bb07	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5064fc9a	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x50795366	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x50825e93	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5086c2d9	mvebu_mbus_get_dram_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x50875807	sm501_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x508afef4	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50985c2d	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x509f3a21	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x509f9c20	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x509fbfe3	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a4b61b	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x50abc565	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b9fefc	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d1fb7e	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d8558a	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dec42b	sdhci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e0e457	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e32534	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e8af3a	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ff2d68	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5101b176	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x5108b2d4	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5108dec3	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x51166f10	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 vmlinux 0x51419eea	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x51433daf	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5152e1df	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x5157645c	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x51729622	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51754009	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x517b3a10	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x5181527e	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x519e9919	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b03197	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x51bed5d9	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c53f94	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c5795e	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c5ec97	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d0c028	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d692db	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x51dd5e54	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ef51f7	xhci_mtk_reset_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f3365b	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x51f6a5a1	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fba0b7	hisi_clk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x520edbac	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 vmlinux 0x5215c8d3	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x521df820	ahci_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x521e7744	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x523b6714	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 vmlinux 0x524cc600	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252263a	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x525c810f	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x5271dbf4	pci_ioremap_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x529f4c37	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ad8925	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b3e8a1	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x52c673d7	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d88392	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ec9a5f	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x52fde201	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x531b64a2	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x531d5deb	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x53202207	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5324f8a3	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5328ece0	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x532e7538	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5330e2f5	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5332e706	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x5340e2aa	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x534f759a	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x535416d0	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x536492bc	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x537acfa5	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x539098c9	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d95e75	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x53e916e0	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x54172702	cci_disable_port_by_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x542f3676	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x54304a57	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x5442c09d	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x5445a267	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x54484118	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x544f3232	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x5451fa84	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x545ef091	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5474850a	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x547e06db	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x54861d2e	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x54872d98	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a25da2	qcom_smem_state_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a614af	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a8bb33	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a9bb09	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ae9a9f	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x54ca7d46	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x54de526e	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x54df9e13	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e9052c	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x54eea9eb	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5501180a	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x55279e4e	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0x552a2c46	omap_iommu_restore_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x552db437	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55737fd6	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x55772359	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5578a2ed	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x557b1668	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x558601b0	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x558ad057	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x5596cd7b	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x559e7876	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b6c28c	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c43cbc	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c4bdb3	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d1b72f	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x55df353a	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e52408	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e5c6eb	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f62456	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ff2b04	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560baedf	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x56136708	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x56213815	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x562b8d8e	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x562be32e	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56343f80	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5636520e	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641e32e	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5645244a	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x564785f2	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x564a4863	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x564ea61f	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x56513996	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x56598a09	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0x566f950d	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x566fa786	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x567dd758	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x567e748a	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x56882c65	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x56898d1e	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x569e8c5a	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x569f2059	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a6a76c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x56aadc03	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x56abbee0	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c47a0c	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cb2af3	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56da7d0c	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e02aaf	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x571264e3	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x571d1542	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x5730e8f0	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x57314c1c	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x573a342b	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x57484034	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x574e72e3	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5752f1bb	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x576866b6	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x57737948	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x578336a4	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x57839953	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x579039f8	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x57915f0f	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a231cc	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a39308	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b01d2e	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x57b594e0	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d71ee9	nand_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e775cd	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e87661	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x57f0ff6d	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x580d2def	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x58101ef7	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x581316a3	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5826d078	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x58591348	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x5871a783	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x5875058d	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587ac04d	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5880a8da	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ad882c	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b35de9	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b39ecc	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b92541	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d988bf	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x58db9b5f	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e36011	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x58fec206	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ff6e1f	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5908f37f	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x590a4073	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x591c8fae	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x591e8fa8	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x592c690a	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x593c6685	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x594d16e4	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x594fcb20	sm501_find_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5950363a	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x595be440	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x596a5106	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x59747756	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0x597d0c48	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x59850da4	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x598ead57	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a1fab8	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ab3ddd	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x59acffaa	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b75ce9	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c74f77	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d13073	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x59d21774	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x59da462b	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0x59dcf171	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x59df6273	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e7feb3	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x59f305e8	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a098790	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1fd656	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a5c6ac9	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a76e56b	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a991b66	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa85b31	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac24451	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac9b634	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x5acca7c0	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aebbfeb	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af4ecff	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b075fb1	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b1768f2	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2259b5	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b404140	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7e9413	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b9cef54	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc0f5c4	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bebadb0	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf03f41	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bf1282e	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bfe985a	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c08356e	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0b60a1	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c17ac37	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c29dbf5	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3344e9	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c4938d8	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c70bbae	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c724709	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c792eb8	qcom_smem_state_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c80f1c1	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c85293f	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb0fb5a	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cbcde25	xhci_mtk_sch_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cbf5ab9	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd148a7	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce2505d	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ce5de59	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d004f2d	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d009ae3	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d14ce30	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d1581b1	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d1d9157	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d35aa31	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d407886	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d41f5d8	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d5721c1	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6142c6	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d708f99	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d76e179	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7cb4fe	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d86599f	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8a6aae	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d902bf0	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d99c8d5	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dab601d	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dcd7451	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dda6f87	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x5de33657	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ded4d14	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df778c5	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dff6fda	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0ac06d	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0ae2bc	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e12ecc1	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e25b551	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4c45ad	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e5d23ef	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e605a7d	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e67b71d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e701fd6	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e7101aa	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e76b4fd	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8da44d	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e9a8787	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ea2b6ef	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed26ad1	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed559fa	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed70df1	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee984a8	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f00dab5	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f29d7c7	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f2d8b6d	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3556cb	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4cf2e8	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f561056	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f716497	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f71de8e	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f7a2c81	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f86a756	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9e1a1a	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa28f2f	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fbc9392	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc2c660	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd3ffce	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe1365a	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ff0434c	tegra_bpmp_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ffd4440	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x600a62f4	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x601a9386	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x601df310	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ecd1e	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x602f5e60	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6038af26	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x603af8e5	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6044f154	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x606126bb	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6075d0c7	omap_tll_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60976d28	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x6098165a	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x609d9e3c	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60c9c20b	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ca405d	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ca6319	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cfa4a6	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60d8c84f	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x60dcbecc	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ea1c1d	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ee3173	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x60efccc2	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f4a130	mtd_writev
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fcce56	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fd2094	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x610c8e4b	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x611550ff	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x612072ff	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61368d18	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6140e751	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x614150ff	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x614782f1	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x61506270	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x61539c0a	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x6158cfe6	nand_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x6167a35e	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x616db5fb	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x617daad0	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x61e2b25c	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x61e884af	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f892ad	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f996af	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fd7d68	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6228cfac	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6232ad92	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x62358d51	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x623e1bdf	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6242dd1b	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x62583432	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x626bf671	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x626f15ed	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x62846c0b	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x628af880	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x628fc502	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a5fc9b	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b0981d	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62cd4b40	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d0e2a6	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d61a99	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d908c9	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x631089f8	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x6320fcae	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x632108a1	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x632821f2	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x632c50e4	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x633b3ee9	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x634d1056	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x6354a01f	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x6354b724	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6369671a	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6372a88b	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x637d6c6d	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a85b3	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x638e8403	hisi_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x639acf3b	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e2cf1c	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e52a53	cpts_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e5e8ef	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fb875b	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x640834ba	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6413336c	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6423c513	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x64256424	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0x643c3bd4	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x64417deb	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x644bfdcf	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x644cab62	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x644d7cb6	__mtd_next_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6457bd32	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x646d30d0	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6473244d	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6479bc35	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x64922f05	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x6493a2df	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x6499b0da	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x649de203	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c041f1	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c07d32	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c35f8b	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c753e2	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdf082	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d35f7e	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d8a0b9	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x64e5f5ef	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x6501d7bd	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x650afeaa	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x650d8bd9	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x65178b56	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x65284995	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x6538dddc	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x65396b3e	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x6540824e	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x6543a19f	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x654cf8d9	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x65537437	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6554a561	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x655a8f16	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x655fd0f2	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x65650017	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x657d83c1	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x657e9e06	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x6581cc97	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x65880db0	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6598f7c3	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a51893	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ae725f	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c1bd3e	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c7d3b7	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x65cc1a66	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65def01d	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x65e026e7	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f37e02	mtd_del_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663fa5a0	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6641b70d	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6647ab40	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x664cd30a	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6663e761	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x6666fcba	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x669797ba	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ac0af4	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b0bb32	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b4cd9d	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bc841e	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x66bcac13	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c04fbd	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d5543d	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e365ff	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e8ddd0	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f162d2	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f5fe89	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x67190605	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x67327213	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x673fe90f	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x676b9193	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x677b4bd7	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6781513c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x678505cc	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x679f8e12	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x67bb5eb8	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c0a4e4	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da2af5	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e9d565	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x68133108	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x6818f4e5	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6828347c	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x682dbd15	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x683314c1	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6840568b	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x686a5c27	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x686cb7e0	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x68758fda	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x687fca31	imx6q_cpuidle_fec_irqs_used
+EXPORT_SYMBOL_GPL	 vmlinux 0x68849cda	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6894835c	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x6897aebc	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a1eca3	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a763d0	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ad56c3	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ad6e73	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x68aee989	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b72734	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b88711	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ca03ac	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x68cd9ae4	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ed73f9	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f15bd8	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f37e9f	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x690311ab	ahci_start_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x690a228a	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x690afae4	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6910e97f	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x691c85b6	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692a4f08	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x692b63b0	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6945725e	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695a6588	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69865a90	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x6993d038	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b28600	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b4dc57	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d89a72	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x69dcc5e4	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69f51fd7	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a03206f	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a0c4218	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a24b438	nand_erase_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3ccf1e	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a432861	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a437b17	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4739bc	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a71f4ea	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7c0cae	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7e2d34	snd_compress_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a89fe96	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a96d387	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa5e412	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab1c8bb	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad2b63d	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6adc9ec5	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae641b6	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af8a8f8	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afdb3b2	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1133e1	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1990c3	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2c2770	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2eaef0	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2f5bc8	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b334acc	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3f3a66	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b59f470	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b71cc22	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b72e663	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7825d5	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b869621	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b899fe7	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8e8135	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b90b049	omap_iommu_save_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba381ea	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba62db7	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bbc146f	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bdb2013	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x6be070f7	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf4b1ea	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c02dc1e	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0e526c	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c226699	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c29b013	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2c89e1	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c39a514	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c430c52	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c43b737	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c43ed48	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c46350d	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c662297	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c6799f7	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c68bdaa	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c746300	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c87c14e	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c9233ea	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c95daaa	xhci_mtk_check_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca3a863	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cbcdd30	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc1b32a	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd17e49	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd1a90d	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd82296	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cde1866	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce297ac	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0b8c5e	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3cffac	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d49596c	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6f7116	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7ce111	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d84fe54	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d850fdc	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8747a0	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da27ff3	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x6da40548	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daecf2a	clk_regmap_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc43f43	imx6q_cpuidle_fec_irqs_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc5409a	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddb2ce4	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddc5519	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de56957	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfabed1	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e11e839	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1b165d	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e211337	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2bda65	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2d4556	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e40df92	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e60d663	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e75a0bb	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7694a1	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7ad674	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e9afd8c	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb12aab	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed42b12	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eeeded9	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efc9ab8	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efcd67a	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efe5b03	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f090dad	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0a7392	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f193fbc	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f20ef92	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f305860	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f34b541	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f3bfb19	nanddev_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f406c93	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fa2afa0	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb65b5d	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb7e313	asic3_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd070af	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd3a337	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd849d4	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x6feafb5e	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x6feb09f0	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff70dad	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x70062ec7	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x70087a10	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x701a3c56	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x70267a69	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x702da245	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x703e0f03	arm_iommu_create_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x704c18e7	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x70712002	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7083f067	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x708c3c92	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x708f993d	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b575e6	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7115db91	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x713666ba	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x715a4f37	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x71762c2f	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7187f60b	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x7189f587	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ba3027	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x71daefef	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ddd869	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x721b5191	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x7220868f	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x72216f3b	sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x722909f5	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x722d5a4a	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x724ec382	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7256023f	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x728655a2	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x72a075ae	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x72aee1ad	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b299e1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b3e141	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d01713	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d9dba8	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e6e6db	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x730e7db1	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x732965de	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x732a777a	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x73333f9c	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x73339a7b	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x733811de	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x7345594b	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x734e550a	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x735d40a9	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x735ea8ef	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x736ab86b	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x73840ab2	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ac8295	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b98231	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bb1f5c	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c35ec0	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e3e582	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f6df16	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x7403c6a1	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x74042e7c	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x740576a9	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x74413295	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7445a03d	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x744d0f24	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7456acc5	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x747bd817	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x7492f02b	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x749b9c88	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x74aa4c2f	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74cb6c02	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x74eb4a49	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f2f920	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f30052	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x75081993	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7513b5ec	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752c89f9	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x75484340	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x754a7d3b	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x754badd2	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7550b09f	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x755ae3c8	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x756cb23d	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x7570ec16	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x757e4274	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x7583b60b	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x758eda08	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x75914deb	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x759440c6	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bf6cc0	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cb26f0	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d3fdb2	tegra_bpmp_mrq_is_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e412f0	cpts_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x76038783	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x761227d3	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7623d058	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x763cd85b	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x7654b122	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x76617eda	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7678158f	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x76907634	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a7c24a	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x76af906e	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c1ea46	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cf82ba	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76fc878a	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x770266c9	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x771838b8	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772e2c26	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7740e651	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x775eeb1c	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7765fc8e	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x776757e4	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77731c39	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x77829ef5	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x77903c57	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x779a2d8c	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x77a8d34e	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77aea42f	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x77b1b293	ahci_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x77b7088c	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7823f5dc	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x782a78e0	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7834b70c	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x783613ac	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x78371d0b	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7864fa23	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d1c2c	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x787f0118	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x789368f0	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a7f6cf	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bc8815	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c774ed	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cb5b5e	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x791a8eb6	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x7926b653	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x79340b1d	meson_clk_pll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x79381aca	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x793a93dc	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x79433d08	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a0461	rockchip_pcie_disable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7954bf84	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x79691b0c	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7970c164	musb_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x797313c5	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x79763ed4	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x797d5c88	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x79860baa	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x7989fd87	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x798d7157	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x798f4445	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a0bbc1	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x79ada299	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x79aea1e2	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b581dd	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x79dbc479	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f0c408	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a016175	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a20cbfa	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a236820	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a309476	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a352edd	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7f1396	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a8171e4	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a86e4d4	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9b133e	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abca186	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abe9e7e	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac10ad8	icst_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7acb756a	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af749ab	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afa10f3	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b356586	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b75ddc6	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b792c2e	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b7deaae	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b87c8b4	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8ef84f	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8fdd90	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9399e5	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b944c5f	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba184e4	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba32342	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ba9d6eb	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab6124	clk_regmap_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb38528	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb8fa24	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbf93ed	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf8c976	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c179263	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c201ca8	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c32fb55	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c403969	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c755216	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c77d52d	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c78f8cb	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c816a00	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c83be5b	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c96b67f	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9f25fe	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca5adaa	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf72f6	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb48a80	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb8f704	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddd53a	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cea45b6	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cf99188	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0bfc02	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0cd490	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0e9dbf	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1206ae	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d215888	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2b3f3b	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d829c2b	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d834724	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d999029	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da595a0	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da7ccd4	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db0216a	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dcec451	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dcfe866	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dd87664	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df87e2b	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e08d3c8	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e17c7fb	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1c69e9	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1eece4	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e219cc7	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4db30f	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e706a91	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e79b13a	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7b3b75	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e83e3d3	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea73de6	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb0fdd6	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebda3b9	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebf5594	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed6476a	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee4eced	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0b4ea2	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0e008e	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f106130	mtk_smi_larb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f35a99e	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f5cf337	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f607b32	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f621b4f	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f67f502	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6a68c8	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f6cb13e	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8a42b3	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8dd2bb	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa14282	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa43faf	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa720a6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa76710	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7faf4a31	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fed7af0	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fee9dab	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x800819e9	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x80187a52	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x801b2d9b	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x801c80cc	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x801eb65d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x804dc3d2	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f9061	meson_clk_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x80581fd3	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x805df001	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x806fbaf2	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x80746ec6	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x807a8891	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x807c4fd7	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x808e89c2	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80a9e948	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b17b75	omap_get_plat_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b90018	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bb649b	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x80bd89b7	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c7e1e3	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c92c36	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80dc53a1	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x80eabae0	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x80eaf12d	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f7d128	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ff927d	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8112a7c4	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x811b167b	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x811ef15d	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8120d6a8	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8161785e	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8162041e	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x817dbfd4	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b440b3	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x81dc4f4f	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e0d48b	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e432fa	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x81ec71c3	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2b867	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x81fddc69	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x82036ac4	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x82071099	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8227624d	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x822d9c57	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0x823e8b0e	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x824aa794	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x825d54b3	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x82be3faa	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c57bd3	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82fa2e02	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x82fe6cf9	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x8317259d	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x831c0283	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x831e3944	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x83297f8b	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x83351b96	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833a7c41	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x83478f7b	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x834904b6	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x83502ef1	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x836b2c3a	clk_regmap_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x83700b59	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x83723c96	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x837af401	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8380bfea	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x83891a66	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8390e4f9	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8396674c	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x839aad72	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a09b87	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a0a4ea	nand_status_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b82344	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e168a6	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e1b2b8	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x83e2d110	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ebeb7a	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f6f503	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x83fe5d51	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x84038d70	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x840e553e	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842726bd	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8434d2e8	mtd_read_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x844712df	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x84473a93	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845aa3dc	lpddr2_jedec_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b2069	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8464293b	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x846e84f3	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x847bd2d4	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a0258a	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a93c54	musb_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x84aa3ce0	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x84abd46f	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b01fc8	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b30c99	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d671bb	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d9b05a	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x84e56720	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f0dab6	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851059f2	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x85153a44	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x85175f62	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8529ebb4	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8534fe99	kill_mtd_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x85388591	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x8546d120	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855ca201	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x85615f48	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x8561c1f8	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8570f468	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8574ca6c	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8579017d	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x859793c3	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a35cce	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85aca8ec	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x85acb812	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b3f3cf	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b4c220	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b922a8	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c17ef1	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e0e9df	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ee4794	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8635014a	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86408e1e	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0x864a20b4	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8657db3b	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x86600e25	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8665230b	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86789b45	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x867dd140	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x86806218	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x868ff874	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x869416cb	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8697879c	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8697dcd2	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x869fa4a9	reset_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x869ff212	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x86aedaa4	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b07376	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b2d4b9	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c16f47	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cfaa92	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d13bb1	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x86e841c9	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ea89e4	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f9f015	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x87013855	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x87030868	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 vmlinux 0x876684ba	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8773f995	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x877d3ac3	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8784d4e9	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x879cce8d	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b2b34e	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b41229	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c93b85	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8805a073	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x880a530d	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x880d0369	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x88123f43	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x882a1cac	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x8830317a	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x8835124e	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8839ec02	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x883ca9d7	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x88565ecd	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x885ebe16	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x885fde8a	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x886418fe	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x8868f131	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x886a7006	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x887d0446	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8891c8ee	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8893431d	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x889ee946	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e7f4ba	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8923d00f	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x893da75d	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x894a4fdc	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x895ddb24	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x896af192	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x89702dcb	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x89881c57	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x89939311	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8994939f	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ab26b9	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ad1569	mtd_add_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bfe270	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ca1a99	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0722b3	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a24da41	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3ae269	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3b17eb	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3e5f64	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4cd77b	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6058ce	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a69c435	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a77734b	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7b2961	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7b4d87	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7bb504	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8d9f8d	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9bc177	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa02161	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa8843f	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aaa102f	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aad89f7	exynos_get_pmu_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab06a50	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae177f5	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af1cd13	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8af8e459	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x8affb8c5	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b039d67	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1f632f	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b27f4f7	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b388175	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b449718	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b485133	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b4b5c04	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b50dbd4	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b529ce4	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b549ed0	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5e5ab2	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8a52d7	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8fa240	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b91f7a7	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b92558e	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b94cd83	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb86601	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bb890ba	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bbd9168	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bdc8a6f	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c07bca5	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c13a513	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c1cd97e	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c28fbfd	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2921e2	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2a7f5a	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c3be9ed	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c658bfe	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c673391	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6af804	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6fa77c	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7bd877	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7f1c93	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c846f14	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c8b7950	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c902e0a	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8caeeeaa	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cbeb675	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ccf1126	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd563c3	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cdf159e	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ced663b	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf06578	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cf10be5	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d045ce4	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d144935	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d19adec	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d215ab3	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d2e0741	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d2f86ce	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d42dbb7	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4d4fd0	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7d4b68	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d8292b3	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d971bad	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dad70e5	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dafe4a7	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbc5566	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc11669	lpddr2_jedec_addressing_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dcc2321	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dcda038	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd36a4c	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dddf92f	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df3a8f7	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e015aea	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e03c6cf	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e1f06a6	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e21e7bc	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3777bb	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4b63a6	hisi_clk_register_gate_sep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e51a3c7	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e77a84e	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e78a6c6	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e87891c	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e88e6cb	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e899bfc	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8e28e1	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eaaf6d0	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ead145b	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ec61f1a	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ecc0e86	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed116fe	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed23685	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edcd717	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eece948	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef47d8b	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efb7cc9	qcom_smem_state_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efcfa8f	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1a8cf9	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f280f88	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f49e11d	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4a4784	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4b8402	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f505ebc	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f56876a	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6d97ac	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f725e67	probes_decode_arm_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f98889d	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa4baf7	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd86790	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fda21a1	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe462db	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff2e25e	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x901c6c99	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x901d2d73	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x902719f1	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x90279f1a	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x90567bca	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9060659e	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906a28a2	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x906dd327	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9089b3ed	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x908f77bb	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a79153	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ba7a98	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c6adc1	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ccc92e	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x90de210d	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec0b50	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f6005a	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x90f7668f	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x912276e2	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x91335e76	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x9142caef	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x91453295	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9145c035	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x914e1eb5	imx_pcm_fiq_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x91519a16	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a0c494	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c02479	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c9c11f	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d1ebe5	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d7ac95	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e51a55	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e9a48e	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ea81ed	mtd_is_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9214bdca	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x921e488d	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0x9228d3f0	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x922bca4c	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x922d967a	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x923d74cd	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x9240341f	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9248bf0e	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x9252accd	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9259b455	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9276c840	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9282f433	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9285ceb2	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x928cdfe1	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b57248	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d72357	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9320d9d3	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x933b57ed	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x93426fa8	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x93468911	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x9346c5a7	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x934be225	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x9356eaf6	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x93577a0f	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x936c7137	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9373d697	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x9390a57c	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bbbabb	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bcccab	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x93cd893c	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93eb92b3	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93efa774	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f4bf70	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fa8dc9	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fb510b	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fd09b7	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fd0b48	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x93ff62e1	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9410670e	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9415974b	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941bdc38	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x94232750	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9424ef4f	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x945f5fb9	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x94676d3f	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9467cead	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9498fd8f	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a6a86a	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x94aa511e	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x94abb745	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94c31629	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cab676	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cc275f	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x95125773	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9513ccef	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9556c8d7	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x95608f9b	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x9566d157	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x9583b811	nanddev_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x958fdf7a	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x959b6ce1	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a0a88c	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a5a1ea	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b3bc05	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bd9427	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c5f1ca	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x95cfa288	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x95dfbe91	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f5f7ed	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x95fb786f	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x960f6094	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x9621e1ff	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x96394de4	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x964609af	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x96562cd1	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x965fd1d5	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x967d9003	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9685a864	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x9691f73e	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x969912aa	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c0db1e	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ca63f5	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d10030	meson_clk_pcie_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d61f0	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x971dd320	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x971f9980	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9731dc71	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x97463f30	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x975e29de	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x97659959	usb_ep_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x976c6f13	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x97770670	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x979085a6	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x979580f7	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x979e3f08	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a6bf1b	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b71dc9	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c0b50c	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x97c9e1a6	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x97cbce81	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d43366	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x97dbe0fe	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e22b7b	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f5a0a9	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x980153ba	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x980ab53b	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x98307e2c	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983cb182	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x98422240	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x984c38fa	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x984e2a7a	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9850a761	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98545cf3	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x986a9e58	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x98798ec9	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987fb2fe	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x987fd303	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x9886b558	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x988e5063	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x989965d4	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x989e9154	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a13a5e	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a70c5d	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b26c8f	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ba940b	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x98cfec07	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x98dbf57e	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x98ec06ea	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f2bdff	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x990283c8	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x990b7510	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9923358d	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x992af6af	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x99393f2b	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x996f7b93	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9974d78a	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x99798506	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998c8c95	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x999eac19	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0x99cb4ab4	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d81ff1	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f8a450	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x99fd984e	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a00ba96	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a048866	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a49b	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a13bb92	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a27324c	omap_iommu_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a288f61	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2e4e06	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2faa60	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a3f366f	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a48b45c	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5f88f2	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a631154	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a65262f	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a72792d	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a73ac63	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a81a380	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a8cd24b	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9d0be7	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa04102	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa5f5d7	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad56d2d	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae99f6a	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af35202	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af78471	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af92e91	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b16c72a	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b1b0990	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b299638	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b468b19	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b499d92	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b50340a	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b621afc	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b690ea7	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b908c87	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bab911d	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bb39e3e	mtd_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bdc8565	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be7ca89	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9be8b33e	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bfcebd0	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c24d720	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c28a681	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c48590e	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c552a11	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c55af7c	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c635cdd	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c73ff9a	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7db561	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8a65e9	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c8eddec	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c910a19	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c93bb97	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c9bd4f3	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca3f4df	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cadcdc0	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cb7abfc	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc722d1	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd2926f	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd80279	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cefb207	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cfacabd	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d063b18	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d0b1b1b	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d175c40	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1b1751	ti_cm_get_macid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d274284	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d5cc451	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d605e8f	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8bc7a5	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9cc611	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9f93fe	__get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9da41047	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9da43389	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db40266	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba64d7	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcd1fd5	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddbff03	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ddd349c	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de315cd	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfc6ca2	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfdf722	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dff10d1	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0a42eb	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e1354b6	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e24bdcc	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3ef74e	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e46d812	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e476637	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4dd913	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5e71e0	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e61c6d8	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e69fd0d	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e70aefa	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e741dc1	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7d0640	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8a812c	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eabe1f2	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee5e40a	__ktime_divns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef17443	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef76eeb	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eff2ea0	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f05196e	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f05ae9c	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f140889	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4a51ca	pci_remap_cfgspace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f53f1e1	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f5c554e	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6af515	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc392b4	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe2a45b	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9feee10e	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ff26de2	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0115679	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01d68d3	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa029b8f2	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02a733c	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0330098	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa061ccc4	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06403f5	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0849582	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08ea9be	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0995d7e	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ad3002	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0dfcea8	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f6ad11	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1015fbd	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10dcee8	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14870de	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15a4bc1	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16dff59	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17b8e76	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xa18a1ab2	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1991d5b	mtd_unpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a34749	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a42dbf	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a43af6	ahci_print_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4642d	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d6226e	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f0e6e6	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f1bd3a	arm_check_condition
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f549fb	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa208c03a	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20a0f9d	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20b9acc	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d541f	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa214ffc6	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa223ed34	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22f414b	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23250c2	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23f684b	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27d786b	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xa280ece9	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a948ef	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2af1c72	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2b69279	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bd25da	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bdab9d	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c31b2a	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c7d7c3	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ce4d88	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d7ae6a	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dd8f85	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dfeb50	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e34728	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e897dc	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2eda35a	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f744e3	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31cf608	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa322892c	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32a52ed	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xa332206d	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33744aa	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa346975c	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34b74b6	ahci_reset_em
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34d7e0a	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa359c134	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3611c06	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a861eb	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b88dea	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3df8562	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e21336	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ed5b78	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa40b0595	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42e39ca	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xa439a39c	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa43f0371	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa444c9d3	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4498fa0	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44fbefa	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44fd8ef	rockchip_pcie_get_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45dc275	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa46f6e35	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa473e795	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xa478284c	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa482bef2	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4baddac	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4bb788c	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c09229	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cc19b3	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e2508e	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4ed1c7f	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fab2ca	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fe1681	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa503afd4	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53313a8	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53f0dd7	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5429d87	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57ad52f	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xa586c52b	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59baf6e	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59d68d3	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59d8bbf	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59f32f4	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5aca564	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b4b48a	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b79e1f	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c170d4	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5dc855d	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e584e2	mvebu_mbus_get_io_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60069b2	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6015418	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60797ee	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62aded7	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62ffa2a	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64fa1bf	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68a9d07	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69b845a	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a076bd	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c5a449	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cf7f4c	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e12b2b	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f9ba2c	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6fcdcbf	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7007635	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70b3171	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xa71e2b49	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7301e08	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xa733de68	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xa735a82d	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7392b0a	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xa74028cc	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa748e172	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa759f73a	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7668c63	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa77003f1	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7802e2e	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78fc920	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79406b2	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7a0d6bf	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7aaafde	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7acd43f	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b49baa	tegra_bpmp_mrq_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c0d66c	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c5781e	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cf167c	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cf3843	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d1cbd7	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d60c7e	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7dda283	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e05bf9	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e2f367	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7e5484c	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ec4e6b	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fe5686	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8103732	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83252dc	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84324b8	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa857516b	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xa858cc13	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86c396d	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8953448	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa89a9349	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xa89ddd81	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8aecdd9	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d46271	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ec7ee8	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8f0cf82	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fee756	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90efbde	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xa918bc92	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9290660	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92addf5	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b7803	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa93c6d3b	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa93d08a8	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9405109	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa941c674	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa950d299	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9682323	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa990d413	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ac63a7	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bda1e0	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c5dffe	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c77896	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e05660	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e6c3b6	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9fdd0ae	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0732a3	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2a72bf	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2d216c	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2e95db	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa3167c9	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa44acff	omap_tll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa780f03	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa83c2e5	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa8d4c27	get_tree_mtd
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa97be20	rockchip_pcie_deinit_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa2de7d	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac24e62	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac87084	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac9ec45	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xaad37506	rockchip_pcie_enable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaad6a66c	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae91358	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaecf75d	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab0c66d9	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xab192871	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2d4749	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xab30002b	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0xab46770a	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4c9dac	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4f4b32	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4fb0a8	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xab55294c	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xab5b67b1	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7b39d1	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7d5824	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 vmlinux 0xab935a1a	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9d794c	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba313cd	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb91825	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xabbfeb93	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcda29e	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcf3be0	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcfa03b	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd29c81	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xabffa1a7	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xac20bc42	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xac2eca75	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 vmlinux 0xac47f897	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc828f3	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xacd13b27	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfa2aad	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfb0056	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xad18b44b	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xad551977	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad585ad9	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad6502cf	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8786b5	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xad97f536	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xad9b9c54	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd234bf	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd34451	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xadd6c700	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xaded28e9	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0a7260	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0bc7ad	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae196703	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3fa08f	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xae62348c	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae72c094	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7d9768	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xae83662b	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xae910862	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xae93f130	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9621b8	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9ce4c3	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea627f6	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec370c0	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec91a80	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xaecb3ef5	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaefcbe65	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf20b27c	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf211223	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf34190d	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf38c937	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf38fd5b	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf40571b	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf76ba4f	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7cfb08	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf812d80	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8d3459	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf8e1f96	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9b90be	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa32a9e	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xafacf7f8	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd42462	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xb017fce2	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01ee61c	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb020230b	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0232477	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb023ede5	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xb024308f	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb030e0e1	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03e0211	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ea3be	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ef9f0	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb041b1af	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04d1f7b	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb057ed77	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0590d75	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb05dc9b1	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb074cb68	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xb075a03b	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0772936	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0845caf	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0869207	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08773cf	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0984ebf	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0993a42	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ac6f19	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0dd562e	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f6a858	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0fcf1f7	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10ff5ee	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11625b9	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb135ba51	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16471db	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18057c7	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18110e0	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18cc502	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1a67cf2	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1cf9460	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e05366	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1eb5e49	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2051697	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2086f9e	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xb210fd83	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb219faa8	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb220c41b	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2224088	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb22d7671	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24a0ece	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24d2fa4	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24fda91	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb270c9df	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xb274e326	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27cc327	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2856455	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29943d4	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a472ff	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aaad83	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b7ffa3	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bf884f	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ea5721	null_dailink_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30aee99	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xb312e1c3	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb316635c	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb31e4742	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xb354fe60	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39c7cf9	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3bbae6a	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d475dc	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3e75724	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f0421f	mtd_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f9565f	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40562d0	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40a0e53	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40c6376	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41fb57a	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4273501	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xb435c50a	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43d231d	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44276f1	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47451ce	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb484d8b8	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb494afea	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49998d7	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49d5867	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49de221	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49f7b7b	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a0c093	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b26366	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4bb5de8	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4bb9d69	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4df99f6	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e568c8	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5190e6e	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51977ab	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5230ac4	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xb530a079	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53c4853	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53cfddd	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53eae6e	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54e71b0	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb557b5f2	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb589ae7d	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ba2c0f	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5bd2171	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c3cb0e	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5cb3135	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5db7121	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5dcd8a0	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e7b0fc	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6022cb9	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60fe7da	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6259e04	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb653917e	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65f4a8b	mtk_smi_larb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66c6cf1	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67040f9	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb672384a	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67dbc09	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb695f910	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69eab58	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a4250f	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b35da6	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6cdb213	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f3064d	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7091649	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70ea06e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xb722fc44	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb726fbe6	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb72b7595	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xb72c6678	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb732f031	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xb739029e	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7491c17	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74e8c26	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb757102e	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75faf91	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xb769b22a	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76e1d64	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xb76fcda2	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb771e6b7	bL_switch_request_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79226bb	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7acb429	tegra_bpmp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b81fa2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c13eba	sdhci_set_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7dd9150	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f725da	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7fba8d7	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7fe5c91	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xb801744a	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80d2e77	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8239dcd	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82566eb	omap_tll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8273624	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82a8ace	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85a2a40	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86b8821	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8752e4d	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8802ac4	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8959d00	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b1dfb2	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b4726a	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8bbd509	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8bde0e4	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ecff04	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f3cc33	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9046995	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90a1fcd	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90dcf31	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9138620	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9176155	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb921a5e9	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92993ef	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92e5fc4	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb94100cd	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb941f46e	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb942b5ea	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95815b2	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96a581f	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96a6616	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96edfae	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96f55fa	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9794cd2	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99a93f5	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99ec74e	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ae3135	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b467bc	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b8c38a	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9bd355f	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d26a7e	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d9f73b	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e87b94	bL_switcher_trace_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f9f98d	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xba011522	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0a0812	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xba1c9f0f	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba3a351d	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xba46baec	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4f78a8	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xba511a98	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0xba5c7960	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xba6a7fba	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba72a69c	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0xba7fe630	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xba836e2c	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xba858258	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8faa20	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xba9d2bcc	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac1be9f	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xbae4fa62	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf0f041	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf36f9d	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf420a4	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb09eae1	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb1523e0	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb3f4c89	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4122a8	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb45ee1e	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4c7570	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6c9606	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb902505	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba897eb	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc613e1	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc7876a	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd5ea17	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbd82308	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbddc24d	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbdfe934	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc03f81e	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc05fa21	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc06eb06	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc097061	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc162ccc	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1e08b3	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc355ca1	xhci_mtk_drop_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3bbdfa	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc3e80ab	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4383e0	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc453ca4	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc49059a	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc72be18	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7a1f0a	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbca21501	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb83d78	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc1456d	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd1362d	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd52274	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce39ab7	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf448df	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf8d982	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd028f01	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0c3707	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1e36bc	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2804ca	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3be8a4	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd58097b	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd6c8fc2	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd73d76c	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcdae4c	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd36203	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd472c7	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe0b06e5	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe524fd7	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6f30d7	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a3751	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9af246	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeac11c4	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xbebea6e4	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec51c54	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xbedd45f0	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee71669	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef8f42e	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefb53aa	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefc4982	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf06a4e6	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf10fd4e	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf368c6a	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf463373	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4701b7	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5ab541	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf67bd9d	devm_clk_get_optional_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf87158b	tegra_bpmp_transfer_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfa2d2eb	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfaa6e72	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfafc128	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfcf7dc8	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfde3f2d	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe08b86	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe6f9d6	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff083f3	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff302aa	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff9231a	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffce09b	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0010d6b	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00131cf	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0xc036956f	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0420b23	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0473aed	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc054cc00	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0583e20	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0627292	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06a7624	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06b77b3	__cci_control_port_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07e7d24	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xc081c246	bL_switcher_put_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09c318e	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09e4256	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a1691d	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0cbabd5	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0cc4745	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d55f30	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d7c067	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e75cec	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f2b5cc	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f39d45	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0fa8f7a	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc103fcb8	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10655da	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11252a3	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11bba5d	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11bfd98	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12ac600	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13b9778	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14c41f6	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15338f1	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1621439	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc162e9ea	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16595ff	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1683717	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18799d5	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19aae3a	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d6b1bf	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1e33d41	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f4a26d	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f89b7b	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccc5e	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21b3cca	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc222ead3	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc226e9f8	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22ba09e	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23ff402	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xc240eb9b	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2466959	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2583c3a	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25eb330	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xc275f4fa	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2815ab2	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28d97ea	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b71aa8	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2db7e18	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e24c47	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2f6f58c	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fa6a45	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3155f73	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc318cf03	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32490cc	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32bb0f8	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3343c72	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33b1ffc	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc33ed841	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3402624	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34af36f	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34c1cbd	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc356f46a	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3645683	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc366a801	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3779fbd	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3904249	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc39cd51a	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d5b07a	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3db0d99	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fe818d	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ff6e7a	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4022585	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4037f55	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41d4e57	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43202e1	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43381e6	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4461222	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc449d7fb	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc466c7eb	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc467c8b0	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46de05c	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46dfd90	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4736c53	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4786927	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4911567	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc493caa2	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc496980c	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a4cb3b	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4c50007	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5042bb7	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc50eb46b	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53016d7	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xc535c624	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xc53b177a	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xc542f72c	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54b1da1	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5abf2fe	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b8c963	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5bebcdf	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5caac6e	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d210a4	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5d24e62	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e0b153	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e31561	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f3da48	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60f4576	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6131a48	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc618b65e	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61a6865	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc620c77d	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6366ac7	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64962a9	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654972e	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc684e3bb	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6896548	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b0658	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6aa6624	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6adf6e2	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ae7529	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6b34283	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c3ed50	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d567a4	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e667f1	thread_notify_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e8edf2	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e91490	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6eb9dd5	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6fcc1bc	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7085860	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc709d2ff	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7174e94	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71d834d	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc72d2ba2	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc734d724	cpts_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7427153	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74531ab	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74cd163	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7627707	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc76f54fc	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc771f25d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7764de6	nand_readid_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78ae47b	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79144f5	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7968d50	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc798b531	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7ad646c	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b37c40	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7b73c61	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bba8f1	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bd127d	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7beab5d	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7ce509f	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7cff357	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e08b74	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e0fbb3	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e31965	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f77160	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc805dddc	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8083bef	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8125ea2	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82b2ef9	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc830e112	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8313308	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0xc838c3bd	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc83cf9c0	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc846a002	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc848f1db	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8563e64	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8568799	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc872ef46	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8789b73	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88403a8	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88933b8	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88a9f9d	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891136a	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89885be	nanddev_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c154f6	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8cb59d9	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d17498	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8db5eb4	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f61bb0	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f69ce1	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f6d9db	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f88b2c	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc905a365	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc917b57e	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc930aac8	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc934137f	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc965b523	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96eacdc	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc98500d4	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9945aac	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99d6af5	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c1f42f	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d393da	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9e65dab	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xca118d19	xhci_mtk_sch_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xca11b640	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1d08f5	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xca380d22	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xca39a51a	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3ab270	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca571734	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5dc1c4	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7047ca	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xca787a2c	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaaf7fac	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaaf9cd4	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad2cc76	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcade6d41	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf1b351	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf8e4c9	gpmc_omap_onenand_set_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0xcafbb1c7	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb059e5a	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15c8d3	imx_pcm_fiq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1657bc	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1b4a6f	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2346f5	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb4a5f1a	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb530a4a	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb573250	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5b2153	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb64fbe4	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb759444	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb930043	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9d62ad	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbad7bca	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb89671	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb8fc71	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc0ccb4	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe429ef	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbebbb69	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf8499c	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf8eae6	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc04f299	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc20ac52	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc3cfc34	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5529ed	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc603dc0	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc68b1c4	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8ec71c	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc92da78	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9f03d2	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca10d46	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca9cf72	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb08eff	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb1f0bc	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xccc8aad9	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd594aa	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce18367	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1cd57	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce964da	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52cc9	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf5ebdd	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf79fa6	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd01ac01	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd0d057c	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd1baab3	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd322f63	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd3710dc	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd63f0b4	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6e84bd	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7a3b8a	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8254ee	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8c89d6	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda18e91	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda380b5	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc8bca6	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddf3287	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde324bd	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdef4fcd	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf2511c	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf7a4a0	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2acad3	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2fb26a	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xce3f00d5	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4a52b3	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xce562fd1	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xce59da8e	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce708f53	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xce81afea	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb956ee	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec75648	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecdbed4	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xcedb19b9	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcedcef88	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee0f60c	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee230af	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef4d5b4	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcefb1a6c	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcefb29d5	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0758a2	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf25f900	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7e5f00	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf86654a	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf89216e	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfaf9feb	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb51998	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfba4a6e	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd66df0	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe381aa	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff00a67	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00dee88	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd01e26bb	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02acfc3	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd078767d	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0806a1b	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08974ef	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a149ed	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b34e1b	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d5a894	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f6f39e	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0fa338e	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xd102989c	cpts_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd11ecfbb	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12159a7	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13d3bd6	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd14da128	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15c5ea7	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15e6bf5	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15f03e1	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1613003	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17d6bdf	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a5ab13	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a8d46c	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1be6a1f	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1be7758	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c096fa	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fd4992	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd200d1ff	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20ecc0f	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21cb4fc	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2241e02	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd225689e	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22d629e	nand_select_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xd232dc27	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23877b9	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd243413a	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2472dd7	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd257debc	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xd257e158	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2664765	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd286b717	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2adafac	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b1ac6a	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bbf438	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c7a27d	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d5e806	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2fc36a6	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xd301b62b	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xd302b816	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd302cb65	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30a30b7	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xd337a3f3	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33a8aa8	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33cc042	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd34648ae	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd348fa42	snd_soc_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3586522	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3590cdc	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36fb7aa	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3701c98	register_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xd38910b2	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd389d3ed	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39071e6	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3977e37	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd399cc0d	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a3641c	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a3b6c6	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b1d3b0	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c11894	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c32196	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3cd862e	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d0840d	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3dd8dd7	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f4a0b7	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f9dd73	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4115667	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0xd428b15f	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42eb12f	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42f0ef9	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd443dddd	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd450f337	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xd452d7c2	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47ce9d6	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd47d90b7	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48a2384	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd494d579	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd494dde3	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49521b5	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4953f53	tegra_xusb_padctl_legacy_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd496d4fe	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4aa8872	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b452a6	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d52fda	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d58501	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4dcffd3	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd513a43b	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xd51cd14a	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57f14fc	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ac24e5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ca33e0	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e2423f	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60283bb	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd613b263	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6399dc5	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63ce82a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64e4e09	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6524a57	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd65e73a1	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6743ec1	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67cf337	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69510c4	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6af9438	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d64025	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e4ee0c	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e555b4	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ee0e5b	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f04cd5	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f8b41e	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6ff0ef7	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70073a1	clk_regmap_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd706c698	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71f4e67	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73a71e6	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7479be1	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74aa10a	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75f4a5a	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e8f2	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd795a0cd	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b0eb4a	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b411cb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b60a72	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e1c15a	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ed09cd	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f2a660	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7fb554c	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81bbe58	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83d32eb	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8476aa1	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd85e0f59	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xd866fabe	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8721e00	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8723f94	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd877bf45	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87bd714	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8955a8e	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a2a9a4	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c4ad51	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c65c94	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8cd71ba	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d24416	hisi_clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d70376	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8df1850	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ebe135	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f849d4	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9014e44	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9305ab0	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9408cf9	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9409733	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94753fd	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9644ac1	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd966fd9e	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd971baa7	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd984681c	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98febcb	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd993367f	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99aa05e	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99cf956	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b10b5b	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b71d36	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9bdf514	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ce745f	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e782dc	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f3e65f	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda004c47	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xda027e85	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0bd13d	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1129c8	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xda138638	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1c19a6	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1d04d3	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xda25256e	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xda346c08	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xda410add	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xda441bb7	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xda61800e	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0xda61a8d9	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xda710c6e	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xda79b71b	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8f54a2	clk_register_hisi_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xda938d6f	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9d0a88	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9ddb19	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa18b26	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa1c3af	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa9240b	__put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab6ceee	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac5ed87	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac657cd	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac9cac5	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdacbcaf6	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdacd6e49	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad98121	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1f75ec	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb225ea6	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb34f024	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb4eab36	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb515fb3	nand_read_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb84dff0	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8f69c2	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb972394	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb9adc13	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb9b4544	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba72a65	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb05024	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb393b5	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc87a2e	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf50555	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf860e7	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc214594	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc28c4fa	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc2a836d	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc47173d	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc4b1037	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc657e1a	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc68d9c6	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7b2808	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7ce353	mv_mbus_dram_info_nooverlap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc851e6f	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc891329	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc996fd8	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc99fac9	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9d9441	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca1e59b	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce1bfd4	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xdceecf12	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xdceee92e	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf61853	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0b6e1c	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0dc550	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd102d86	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd148ae6	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd1afd5d	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd21316c	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd249d67	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd4ee30f	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7401e5	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd85063c	lpddr2_jedec_min_tck
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd88ea09	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8bc58f	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8fd5f3	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd97830d	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda454cf	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xddaf5908	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc750bf	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xddcace46	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd6a7be	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde50453	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xde005250	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xde0dbe31	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xde15dcea	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xde25f88c	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde26d430	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xde4d8410	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde9844a7	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdebec804	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef36bec	imx_pcm_dma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef4a880	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf060c76	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0a393d	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf255dcf	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2d4c5e	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf384022	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf3d7e1c	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf58d7bb	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7fa33b	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8bcb82	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf92452c	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf959ca7	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa81beb	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa8ba23	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb15eb3	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc0711a	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfd55383	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfd9bc91	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfe36b42	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffd7a87	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffdf4f1	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0163c05	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02ffd3f	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xe036c358	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04e99d7	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0590ee9	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05efd9d	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe060bdc2	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0xe062586b	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0777495	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe092e656	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe094c6fa	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe096f245	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a83dab	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0af7740	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c0eaea	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0cb6537	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e45389	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ee4401	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1087d8e	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe11ec0b7	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12140b7	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe123f939	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe126553f	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12cba15	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1502545	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe15a79be	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1638c9b	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe163e7c9	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16401e7	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1640972	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16d4a7c	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xe16fef1c	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe172c422	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1751926	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe193ab14	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a0b51d	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1b06060	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c9d22c	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cb9242	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cfa261	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d2090c	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d6d3fc	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d87635	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2232d49	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d14ed	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2349dff	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24bae46	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24bcde2	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2586b52	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe25c65ac	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe271bc31	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28f0433	tegra_bpmp_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29ca294	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b36a47	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c188cf	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c83a41	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d07a02	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d425b6	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2dc673c	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e01cd8	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ef6390	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe307f6c5	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32324fa	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32392f5	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3570d0d	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3583f7d	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe37ab8fb	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3816501	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a39df5	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a68170	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a6e9e4	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b09683	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b22b58	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b639ec	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c05b0f	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c0daf7	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c65b1d	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d6890d	nand_read_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ffd270	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4014ca7	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40dc0d8	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4195279	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe429d91a	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe494148c	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4954950	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a6bd8f	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4af00fb	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b92eb9	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bc3f48	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bd734d	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c9f178	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4cc2e0c	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d824b2	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc8b26	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e6a3b5	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4eee88d	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe510f350	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5255aa2	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53014b6	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53da0c5	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xe550d6ed	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5583656	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe57b8ea9	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58591c0	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58c8af0	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59ee23f	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59f015d	cci_ace_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a22cb5	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a8f143	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ad7a2b	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b6e143	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c103ee	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb1943	hisi_clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d694bb	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d7409c	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d97c76	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e37bda	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f256f4	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f4c9c6	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f9dc55	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xe601747d	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60845d3	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe61867be	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe635e035	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65ad9e4	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65b5874	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6623ab8	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6634b1b	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xe671cb49	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68f00c4	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b43a03	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c126a4	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6cd714b	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d81d31	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e1eadd	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f05d03	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71bd263	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71ef3f5	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7268e10	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72d420e	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747297d	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75625fb	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7572b2f	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7630351	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76d91cb	ahci_init_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe772bdfb	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe775b60a	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe785b123	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78b062d	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7967721	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a4e639	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d1e221	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d33667	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7db9182	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7dbfb69	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7e41bfe	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f6ff71	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe801f422	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe804d094	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80fc133	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8142a4e	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82318f2	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe833e886	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83a0e0e	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe846a711	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84b3d15	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84b6c6e	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85cad37	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86d8a9f	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe87885e8	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe884e36d	nanddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ac8be9	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ba7d6a	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8cbeee4	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8cc9173	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e61fd1	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f415f5	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe90635a8	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9110d73	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9135535	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe944352e	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9444f99	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9547016	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9752d3f	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9822562	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a51f8b	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a7fe16	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b37d52	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d26bc5	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d4226f	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e3be36	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ec345d	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f53a81	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0910fc	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0xea114216	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1bb291	bL_switcher_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1fae14	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xea330fa9	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xea44737b	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4983c9	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xea49eaac	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4a09cb	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 vmlinux 0xea594225	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6a9b03	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xea98b4ce	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9cd4cf	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab5db52	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab798b6	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac6edf1	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xead39641	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaeb40fc	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaef03a5	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb07964c	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0fcac7	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb10ccd6	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb261f15	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb28fa74	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb5e714c	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8180aa	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8edc8c	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb95c478	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9abbee	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xebaa3d30	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb2192c	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbe1622	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd0c565	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebdaf636	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe341c1	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0c8906	mtd_is_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0f8740	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2e08b9	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xec358ffb	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3b0a36	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3c4773	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xec409d1f	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 vmlinux 0xec51ae8d	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5a877f	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec708493	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xec719819	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec82f218	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8406d9	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xec93f084	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xec9a59c1	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xecabaa65	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xecae07a6	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xecaef6dd	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd6cb92	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xece3e880	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf007f8	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf10ce6	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf21510	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0xecf8ab46	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0a1ac3	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xed1e65ec	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xed344146	mcpm_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xed38c848	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xed403af5	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xed466112	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xed523433	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xed555b2e	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5b3f1a	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0xed67b5f9	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xed6f889d	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xed75d407	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8bbe99	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9562ab	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xed982484	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xed98a556	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda6fa51	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda9e619	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xedab190c	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0xede3da8e	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xede504c4	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xede8eeb0	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0c7e8b	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xee20a1f4	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xee281699	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xee362677	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b4c12	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb19df1	snd_compress_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb3eb0b	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xeebced33	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec7307e	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed6e1c4	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedbfaa5	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefdee93	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xef213b33	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3eba95	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0xef447f42	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef51db20	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xef690adc	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef756913	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7dc20b	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xef83eed1	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef8a9b6e	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9fec45	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa5c5e2	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa816c4	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaace6e	mv_mbus_dram_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc4cb49	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc7806c	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd7d2eb	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe43e86	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff35785	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xeffb4115	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0079cb3	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00c04c1	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0202ae3	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0209525	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02448a6	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xf02753a8	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0327110	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf032a00a	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xf03f60bf	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf053e6ba	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xf062fa5c	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0643953	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf06ee302	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf07a8c93	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf082111a	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a331fb	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ad46af	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c13dc3	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0cf56da	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d45b60	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0d9927b	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0de1f53	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e8a643	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f2a971	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ff7709	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10dae28	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10dd2d1	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf127ca50	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12849be	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf13f08ed	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf143d740	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1481bef	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf151c3e2	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17c69cd	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17f133b	meson_clk_mpll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18106fb	get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19b701b	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1aa7967	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ae424c	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b04062	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c3a9d6	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d40047	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d5350b	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1dbdc36	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e2788c	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1eb0ba1	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f9ca4c	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fa4393	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fae6a3	asic3_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2002ce8	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf20d1cfe	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2282628	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 vmlinux 0xf232d28c	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf243b6ca	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf250d740	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf279d623	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29319b6	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a1defd	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a4edcd	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b12154	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2bc6ab1	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d6b0ff	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2dd8b54	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e6defa	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e8a8ae	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2ea362f	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fab320	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fc5469	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2fd3d92	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30bd2ee	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30fda27	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf32212f5	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33e85b8	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3428766	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3474108	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf371474a	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3743a7e	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37576d2	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3aaf87d	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b22c57	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3cdcd02	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d0ecb3	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3dd3ddb	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3e6d968	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3f09f3f	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3f1aafb	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf411749f	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4151ee3	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xf416f6a6	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41b5b75	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf445e73e	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf448ac7a	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf44e3ebe	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xf450c64e	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4764198	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47de486	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47f3e5c	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf482faf5	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48ceebd	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49291c2	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49bfcf5	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49c680a	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4a42677	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4bc4e28	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d096a7	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e824b8	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f2a6c1	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52196c7	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52e14e9	snmp_fold_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53c8ec7	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53fd2d3	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54c188f	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54c5e7d	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56408de	nand_deselect_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xf585272d	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58c1c14	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58e10b0	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58ebcaa	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59c480e	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b13670	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b6edc8	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c1b9e3	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d4b90c	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d52a8a	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fe79f1	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf604553a	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6074ebd	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61118f6	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6149fa9	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61baa65	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61e608b	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6283147	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62e89e3	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf64c3be5	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf658789b	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6686729	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66af105	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6813c14	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf688a643	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bae023	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bcad37	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bd4b7c	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dbd8	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ceea9b	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e07d14	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e25fa7	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f5cbde	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70376e2	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70850eb	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf71af777	mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730fb4a	qcom_smem_state_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf736cdb4	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73f5b83	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7405673	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf743906e	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf752040a	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76569fc	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76a2931	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76b0a59	read_current_timer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7804c0c	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7899bad	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c681e4	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xf813788e	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82121ee	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f16b3	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf83f6602	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8427e92	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf874e82c	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8797405	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8881caf	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89c1091	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89dc953	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a820fe	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b2997c	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c4c68b	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c67fb9	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c81181	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d48cb2	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e53837	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8e6f62f	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3f892	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f57995	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90732ee	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9078ed1	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xf907e02c	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xf915dde2	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92dbab9	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93bf06a	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93f200e	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9404ab7	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9622b8f	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xf967b209	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xf98f11f9	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9917746	rockchip_pcie_parse_dt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab6ce1	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b883cb	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cc3108	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9cdd7a2	tegra_xusb_padctl_legacy_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d129df	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d78cb1	rockchip_pcie_cfg_configuration_accesses
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f5c3de	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9fb6933	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa03858a	sram_exec_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0c950a	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa18d3b4	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa395681	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600fd4	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e6753	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa766cf4	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7b05dd	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa82f473	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9f408e	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaaa62cf	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaba248a	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfabba727	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaca341f	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xface4642	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad2ea4f	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad34629	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad59595	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfadf567d	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae464d4	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfae7c972	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaef0144	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf850df	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfafd3d61	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb124948	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb22a7e6	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb24d4ab	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2a6545	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb453336	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4550f8	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4c5e41	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb51f520	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6ca8e4	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb72ec1e	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb737848	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7a4a7f	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8866dd	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8cd4bc	__cci_control_port_by_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba42757	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb42503	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb4c54b	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb6701e	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd4adc	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbd216d9	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe2b6ba	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbfb512c	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc014cb6	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0249a5	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc17fa88	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2f6576	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3973d8	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc599a0e	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6278ef	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7c7a86	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8072e7	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc880970	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc904632	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9cf7cc	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc9e7a28	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccb33a9	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd22ec6	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcea2b03	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd040770	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0aa97b	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd0bb361	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd29df9d	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd29fec3	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd47f990	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd50e00b	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd738f63	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7815b9	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd7bb3eb	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd839204	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd946529	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9a18ac	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb0682c	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde13164	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf13f21	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfec954	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe02baf3	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe03ce5a	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0bbbd2	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1eb850	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe21e9b6	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe246ba5	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29b8e1	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29d810	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe370fc3	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3e01e2	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe44d37b	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe48eecb	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe4dab59	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe53b419	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe735d84	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe75b437	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe89e36d	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe957a6a	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe9667b8	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea662b1	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea7693d	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb7c472	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec84fc3	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xfecbccdb	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef67ace	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1ef746	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2eca5e	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xff4c5873	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xff57de20	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff7672fe	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9de053	arm_iommu_release_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffb31f51	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc51cd0	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffce10a0	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe4b569	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe5687d	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe89580	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xffea5901	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff1ee1c	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff385c6	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff3eb07	mpc8xxx_spi_probe
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0b045691	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x18eb0761	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1e965450	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x21c65b0c	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x24e62a47	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4618acf0	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x758501bf	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x75b9e71b	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x7a1b2991	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x82e74f15	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x83761330	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x89b47673	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x985ea209	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb5b2f223	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xbaf2a879	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xbf6ad06d	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc10ece6c	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xcdd1e976	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xceaeef5c	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd4ddda87	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xdce92580	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xdd12d5bd	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xe20344c2	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xedd8086f	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic-lpae
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic-lpae
@@ -0,0 +1,23054 @@
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0x2fbd8b3e	crypto_sha256_arm_update
+EXPORT_SYMBOL	 arch/arm/crypto/sha256-arm 0xe7602d49	crypto_sha256_arm_finup
+EXPORT_SYMBOL	 arch/arm/lib/xor-neon 0x0f051164	xor_block_neon_inner
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x5c917eea	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xa39ebc1a	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xb718564f	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xccf6730f	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xe05bb058	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xfb7396c5	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/sha3_generic 0x63d78133	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x914f5179	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0x9c06920a	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x95a5ff51	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0x97deb04c	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/atm/suni 0x9364a202	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xd15f24fd	bcma_core_irq
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xfaa6d6bc	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x0e673902	pi_release
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x372b5bd8	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4857914e	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x585c1bcf	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x5bb207f0	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x64fc5cec	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x6ed1602b	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa4d85abc	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xa65f6bb3	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xcab09ba1	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xe3e2c027	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xfb4ee468	pi_init
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0xb47c239b	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0xe8258731	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0e40e452	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x1ffee546	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x2c1fcd02	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe0352a41	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/kcs_bmc 0x7d1a0c99	kcs_bmc_handle_event
+EXPORT_SYMBOL	 drivers/char/ipmi/kcs_bmc 0xe264d1e7	kcs_bmc_alloc
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x06e109ef	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x57d4878b	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x5a1ba3c8	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x6e64ece1	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x27408444	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x8df8b190	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xe0442604	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x06cf36d4	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xac7a2341	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xd3548f80	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x04dec75e	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0984428c	fw_run_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x19851e0a	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x25ae3cfd	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2dd980b0	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x34d76c3c	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3dd20ec8	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x45aff400	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x556601c3	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x643ed2e5	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x69f08f72	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6bac7de4	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6c5cc4bd	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6d746102	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x819e2357	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8ec4e37e	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x94942607	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb4dbb557	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb9b64ba4	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc29f71fb	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xc8a479db	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcf0ffb20	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd062b245	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd43ba663	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd4e8ac47	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd95b8b2b	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe0f188e4	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf41babb7	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xff07024a	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x008a1a8c	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x009af579	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0120097b	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02a888eb	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x02e55b84	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x042b48c0	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x052c0435	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x069dc650	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07128294	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07450d5a	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0787e23c	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07cdc86c	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x080a5db6	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08b0b4ea	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08c75d8e	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b01eddf	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b73a32e	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0bd5473b	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c2b56e8	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c988cf1	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0cbe0269	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e3b9023	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e82db39	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f16d320	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f56c92d	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fb512fe	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1043958b	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11107b12	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12d2e234	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x143b9904	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15fa0568	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16873e8a	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16e76f1f	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1777f92a	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17f639fb	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1852fba0	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18d5984b	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b5f8efb	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c24f8d4	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d07e058	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d5a29da	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1de0f6bc	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e1a46b9	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1edb7efb	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f22d404	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f55ea98	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f63b9e0	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1fea1e25	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2119e394	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21d39f63	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x231dbb89	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2356757a	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23ac29e1	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2495490a	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x262b3645	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x266a1a48	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x278d89b0	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27d23c3f	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2803079a	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29979fbd	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29e5c500	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a1ee328	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a4fb812	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b460113	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2dbb46ab	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2dc29873	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2de26e8e	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2fce2229	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32b91b28	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32e3d664	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33da45c7	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x350b552d	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36143bf1	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36938a65	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37e84351	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x380b5fbb	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x38ed631b	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39fef58e	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b970961	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3caf2a46	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3cd891be	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ce12086	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3cea582d	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3de96327	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e3a96a4	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3eb32af9	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ee8b325	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f7d363c	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fc309e8	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x402cef7b	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41da7110	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42dc4055	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4347ce2f	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x448138f2	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44815dda	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45f3b8e3	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4834906a	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48a1cbed	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x491a64c1	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x491a6ea9	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4acab608	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b0f9a6d	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b731c8d	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4bcd2500	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c7cfdb5	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4cd466e0	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4cd791b7	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4cff1d7a	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4da50a30	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e01ba0f	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f9c505d	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50a9ffa6	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51708736	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51b99c8f	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51d60ad4	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52ad4918	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5363b852	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x537421c9	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54ca9261	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5539d3a2	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x554b2629	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55677621	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55884eab	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x55c7333e	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x560c0582	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x570a27df	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x572d7da5	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x574b67a8	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57ba2461	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5866a427	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a20d2d0	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a48f4e1	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a9ebb67	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b0acc3b	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b521588	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5cca2942	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5eb3f382	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fbc2586	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5ff96ec9	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61a97eb4	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62177508	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x622d5e07	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63101218	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x635c4a78	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x645b35e3	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6485efba	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65acc7a0	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x664d0433	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6650d079	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6714a0e8	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a705961	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a748eba	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6affe91f	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b0b9550	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6b803d0e	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c97f572	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d58be3d	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e07abc2	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e34a9b4	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e7f2f6b	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6faf7f39	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fd18459	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x702be7bb	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x716340b9	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x725ad39a	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73462dda	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73ca738e	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x786c20c0	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78720c85	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x797b7270	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7a42d92c	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ac90ab4	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d0c74f8	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e016d38	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e7e77ba	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7faeebc9	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7fec8402	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8087fb12	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80be4e6c	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82347f0f	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x826bc651	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x829066e9	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x847000e1	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84db16eb	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84ecdec7	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x850ecff7	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85625151	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85d1adf3	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85d6cb72	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85ff1e08	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x861f62dc	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87abcc71	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x87b78664	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x88c9072b	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89a0a3a4	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a273bff	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8aeb9920	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b14087f	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bb7d247	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c8e7a01	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d5783f2	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f2fcf31	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fa39a54	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9077b51f	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90c10489	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92d93d8e	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x937f2553	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9453acd0	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95b95281	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95fb1996	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x960fd8ab	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9692c7f1	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x986be27a	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x991ec065	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x996ed47d	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99cafdb6	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a41a3b9	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b4af3b2	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b612fbb	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6ab6f0	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9baed591	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9cc609c5	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9db74ede	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dc23f59	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e49b411	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ee6637a	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa037e5ff	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa1e3a11c	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa26b9144	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa571ba59	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5e23bb1	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa631c7ed	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8155812	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8491d2f	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8a05b9f	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8ba2888	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa91fd2bb	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa95a3d7b	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa96d6521	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9ba85cd	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa96eb89	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaabb1e22	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaabcd96e	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad0b6838	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad54b89d	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad7a3d9c	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf0cb096	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf4a08ee	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6a8808	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafb76c11	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb09f7bb9	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0c07900	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb2af7927	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb38c286b	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3cb7019	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb493e59b	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5caf8ae	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb63dbf98	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb644c078	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6670c46	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6d97f61	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb850c7d3	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb87ac3b1	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8c3b730	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8d17748	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9772e31	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb988b107	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb3734fd	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc5007af	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbcc74ff7	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd00034a	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd30db62	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbdf1135e	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc0175a87	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc08157c1	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc1aa17a3	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25faf38	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2648955	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc29682d5	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3bf4345	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc411325c	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc50534bb	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5bfc848	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc686169e	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7c42bcf	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7e1c52b	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc83c0c69	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc840a914	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc848e4c9	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc8706481	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc87fcd5a	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca656f85	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcad15133	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaee788c	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb87d307	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc2848cb	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcc8fa3d2	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xccbd440f	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcdeef14a	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce1faf81	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce524f1e	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce52ad64	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcef5c32b	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf1f0562	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf5e0890	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd07d7cdb	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0fdae8d	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd128b8ba	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd1fc5f14	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3c74065	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4132cc6	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4a84067	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5781153	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd736ecd6	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7a9f7b7	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd84ed33b	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd89d865c	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd9aa10a5	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda0083ec	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda7667eb	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbdcf46e	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc15f6c7	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc3615d8	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc4961f1	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc833fbb	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf40d720	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe25f9e04	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe42a657d	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe59245dd	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe5ea936d	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe891ead0	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe925863b	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe94e8ecb	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe985471c	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xea69bf44	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaa54f72	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeaec3e49	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec0cb43c	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec6a42b2	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xec750efe	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed289f15	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed4fae3e	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed5c6998	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedcd67ee	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xedee740a	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee34a151	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef000896	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf03cad81	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2b02417	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf32840c0	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3731a51	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf395fa6f	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3cabf6c	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5d2fc8b	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf866dd86	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8a7d9f1	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8da2975	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf94ea1c5	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf99a61c8	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfac4b85b	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfadba57c	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd7b6a03	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd9880f4	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe0451e7	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfe9e0f7f	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff421802	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff8eab67	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x001bc8bc	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x01028396	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0585b02f	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06c01e4a	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x074390dc	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a23de2d	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a59d56f	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a6373d4	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0d462225	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0de1b6ea	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0fab26e3	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0ff4af93	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x108ad18b	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11d4e7c3	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1287c28e	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13247ff6	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x139c4387	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16f198c7	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x177b1c3f	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x18cea674	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1942988a	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2040d9c0	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2120592e	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x22d1b255	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23a982a3	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x259f9fb0	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x267b18ce	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x27511584	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x279099d0	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x290f6b7a	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29b456b4	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ae6b4a4	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2bda4775	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c322264	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c4f5d76	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2e50eb06	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2fcb0cfb	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x300f22e6	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3142db03	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3203e73b	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x340f0f65	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34102965	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3629c531	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x36926571	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x379b0e35	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x38a7ac1e	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a97495d	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3bdeb3c9	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3f7807f1	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x418fd14d	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x42feb339	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x432b6fbd	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x441f51dc	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4449ff88	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x458c05ef	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48c3d18b	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49776a58	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4be410a8	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4c641d7e	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4dd7721d	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e730b87	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x51661c74	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x534367ca	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53fb5636	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x546f2377	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x55a5b915	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x55f461d6	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x561f9089	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56bfd3b3	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57706e35	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58f29c65	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x594dea84	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a603f46	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ac77458	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b7140dd	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b8d7d7a	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5cb9231b	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5d8e0996	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e199715	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e5ba375	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e6d9feb	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x672b65e6	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x699d75fe	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a0415de	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a5122b8	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ad20d64	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6cb54a96	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6d721a4d	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f950175	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x704a79dd	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x70a317e8	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71a77492	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x72955fa1	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x72ae9922	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73db570a	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7444ab62	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x749dda29	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x790d00a6	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7948445f	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b525ce9	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7ddfd7b6	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7e759eea	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7efb9ae9	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x80341878	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8056fcce	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x80da2fe7	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81926420	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8328c4a3	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x845a906f	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85d54b09	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8781f933	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x879067a4	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8917aa27	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b065cff	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8bda420c	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x900b7ef0	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9092a355	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x915a9b62	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9229ac87	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9314cd6c	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x942251ee	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98042242	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9b9d2ba5	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ef5760c	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f79f563	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9f9af9ff	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa0b0ac07	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1c4c28f	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa21b7fa9	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3602624	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa45334c2	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa4db2c02	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa53b972d	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa9e4d1c7	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xac0ac041	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaf50d0cf	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb03254e5	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0c13dc6	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb43fe379	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb499cb9c	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xba379774	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xba3b8d2c	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbb331aeb	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbc1aadfe	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd38729c	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd7edf45	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf14924d	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbf2a1d74	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc0044d2b	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc030a43e	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc3174d4f	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc42355fb	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4305f70	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc4ed2f08	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc6032b10	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7144d0e	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc7e23b3c	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xca494cdd	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb82858c	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcdaa6d0e	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcdd1acc2	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd208d44e	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd228e623	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6077896	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd7687fe7	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda8636dd	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda989f2b	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb8a744b	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xddd48718	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde810abb	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdf13392e	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe01a9e37	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe024bc3d	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe11a9d29	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe3c6d54d	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe4824047	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5f2633a	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea08a5ab	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeac2e2de	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xed84fe4d	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xee78a613	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf215b09a	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf22b7844	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf290052d	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf67e6602	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf72a19f0	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf7ca2dde	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8d16cc6	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf92a00eb	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf94a25f8	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfadfdd87	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbd21d2c	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfda76a66	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe72a61e	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfeb430cf	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0c590e56	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x0cda682c	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x112ad4fa	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x17a1b895	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x19704da2	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1e2c6b75	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x25f76a58	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x48b8e142	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x69003a7c	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x69a90ee2	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6c803423	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x91d23806	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x981d70ca	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xa17b8763	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xabcf4509	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xcc26bf86	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xf1732930	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xfdb23f55	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0208bc7d	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0d2204c8	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x21c45326	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x26df50ab	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x2b7a9179	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3a8fa786	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x3f92a31a	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x56680063	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x5c2988bf	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x6e9e8f23	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x78c9df93	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7b863846	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x89f05a48	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x91d18408	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9b426b58	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb78c1ebb	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb98a00d5	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xc26ef40d	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe8c145e6	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe9f64ddb	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/rockchip/rockchipdrm 0x829751a3	rockchip_drm_wait_vact_end
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x2582078d	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3566b6bb	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3af6d812	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x3d80e86d	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5dbc241d	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x6cda9c1f	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x78865970	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x8f71de8d	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x992adae5	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9a9a086e	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xa4c331cf	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb8ed9118	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb930ee03	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc53c72ed	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xcada5d79	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd78a1829	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xd8d35cc4	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe817c65e	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xfda146a7	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x00539d19	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x00a47922	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0347bdbc	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0535c7ca	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x08744d37	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0b627df1	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x132b05be	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1392fc5d	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x153c9df2	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1cf211ef	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2139c946	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x21e069dd	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2370e636	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x24524caf	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x253749e4	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3393def7	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3c46cb86	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3c80207a	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x40cba3c4	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x458e3951	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4c84ccce	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4d316605	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4f4bdfe3	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5dc932b7	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x689c4a41	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6c0e550f	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x730a167a	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7bd64808	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7d361f92	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x86ac2a50	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x86e1e6f4	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87599004	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8b116060	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8fa16ad1	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x91341aad	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9192a21b	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9acf27e5	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9e9edf70	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa0dae732	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa5999a4e	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac1b740e	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb35cee0c	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb985a159	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb9909489	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xba4b3312	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbdd3149a	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc67ebc31	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc7d1cbb7	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xce13c138	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd0f90d52	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd3b6f481	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd7982883	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd86cfdbc	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdd6c3366	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xdfb527d4	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe23c0e35	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe51ff319	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe8cc43c7	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf08bca71	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf275011b	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfc45970b	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfd5fbbfe	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfdffa381	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xffcfe4c8	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/hid/hid 0xcb1a8867	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x01568393	sch56xx_read_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x34257f35	sch56xx_watchdog_unregister
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0x96ec3b26	sch56xx_read_virtual_reg12
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xaa17a737	sch56xx_write_virtual_reg
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb2d3e751	sch56xx_watchdog_register
+EXPORT_SYMBOL	 drivers/hwmon/sch56xx-common 0xb37b9b81	sch56xx_read_virtual_reg16
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x0f9796e5	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x9eff70ed	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xc5e0aa57	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x31225c7a	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x77977a9d	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x9dec03bb	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x05588a15	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x25de4c6f	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xa2782b6e	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x13ce86e7	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x1e48498d	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x22c5363b	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x4d50629e	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x51ba8aa8	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6edfd6ca	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x7f2fb7b7	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8a694ea9	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x93971b2f	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x97ad4f34	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x9c034bad	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa4e2cfc4	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb4435378	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xd2266aa3	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe529974c	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf9bfe11f	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x5d545fb0	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xd5a80bd9	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0xe95c730c	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xd1121d43	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xd39afd95	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x43d55ef1	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x43f37690	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x5b8300e3	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xb813cc4f	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x1b465b81	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x02c174a0	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x2c46da33	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x351af93c	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5ad22c5d	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9ac9ce16	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9e65a299	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa2fd4374	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc1e476dc	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe11b36be	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe21bcceb	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x15a378ab	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xb9e5eb9b	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xe9aef3c2	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xfc98be73	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x27b9eb3f	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d65a869	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x3eae1bf2	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x6bdb9dc7	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x807b6099	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x8d8a8ac5	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x9170b54a	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xd6a258eb	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xdde73395	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x17b23521	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x78538ee1	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0x7863e2fd	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xc55ca85b	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xea8c565c	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x429eca2f	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x42af9171	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x42e24179	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x23b5fc15	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x361dd055	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x55d93a6d	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x567d90bf	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x67ccad2e	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8aba5ed2	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x988578b9	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x9dca6243	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa199f404	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa48b675f	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa99c2886	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xac189b3f	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xcd39ffb6	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xd2cb540d	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xdb53b979	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xe93e1459	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xf850c45a	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xfe0d9484	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0x18138204	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0xbc283251	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x15ddb8b5	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x8ce5e29b	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xe5f0cb40	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xd45f714e	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xd77921e3	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0xfa03bba8	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xb1af6fcf	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xfbccd642	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x2c856db0	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xd0a32d8b	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x636e0154	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x20002be6	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x3dcb53c5	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x1cc2efab	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2a9d3bbc	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2f9e327e	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x554427f9	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x63dbea72	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6941180e	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6dd24ac9	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x719b163b	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7cf8abcc	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7eb79fe7	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x8e64d6d5	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x9306d1c6	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa82c7cdb	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xbb72bdfb	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc0f30d14	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xcc222ba7	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd6f6f782	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xd8f9a9dc	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdd45a539	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xe03208c1	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xea282b52	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf593b238	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xf9729057	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x2b35cfe2	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x04f46725	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x215711b1	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x34f4c613	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xa49e49d9	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x02ea2fb1	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x67a6cf57	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x73e09fa7	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x7fe4d1a1	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x61b4ba28	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xae4717f0	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x9865c0e4	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xae2d2a17	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x48ad2e6b	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x50382a90	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xd8b20c48	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xdb57a9f8	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x34dff863	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x3979a5ae	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x79ecc8d1	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0xe0e1e10a	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x29500552	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x6bf77009	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xbaf447f9	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x3417dac6	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x7a87db08	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x8e831442	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xd7392139	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0xde9107a4	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xda757d50	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0xed93dfa7	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x34e47573	st_press_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xd7ac28f9	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xef385942	st_press_get_settings
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x13334280	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x167b8cdc	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2008c3e0	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2071d3cf	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x4532b446	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x4c7bbf66	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5066ec1f	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x78d156be	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8017306c	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x85dc6eb0	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8b44ed47	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x8d3e3f94	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xabcde542	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd7ef9809	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe8e8a0fb	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf3b9f6f0	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xfd003c55	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xff644336	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x006d6d1e	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x025e33e0	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x02ef6f4f	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x05256086	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06508601	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x080520b1	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0a567bcd	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ba9d509	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0bc5cb93	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c37c356	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d0d2714	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0d3b55aa	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0dc40d2a	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ee33bd3	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0f409e04	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1181dead	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13b7cd91	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x153243ea	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15db3bff	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x196a45bf	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b5139ca	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b523dae	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x203cef91	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x205aa85d	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x227a125d	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x247d8736	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2794afa6	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28119b12	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28df8926	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x28f2187a	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x294496d6	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x29f6dad4	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2d620cc6	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2d7e1a8f	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2db6c51d	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2e75d073	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ecfe311	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f093940	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30056fca	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x31fc957f	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x331a2a84	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33c97c24	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x359fc170	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36bb4dd7	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x37b2a223	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38503e0d	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x392913d0	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3a3f80ac	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3adcb200	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b5b731d	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3f0b1271	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3f9d6d45	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fb6e94f	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4350de93	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45b89d57	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x464c71a9	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x46cd3524	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x471e66fa	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x486237fb	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x488b950a	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4a82f90b	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4bbc437e	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4c26f2d2	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4ca24ea9	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4d7cad7b	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e437bd3	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4ede2473	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f50ddee	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f615af3	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4fa015e6	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50bf0857	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x520b2638	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5284f744	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52ac06e3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x52fa63c2	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x53bd2db1	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x55f88e17	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5748246c	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x592c6e93	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x59a6ed35	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b1bb7fa	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f32dded	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6011091c	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x60408ea5	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6086b9e7	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64359d3a	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65dc66a6	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x665f34db	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6731d13b	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x694c1cb7	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6a8840a7	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6acd8e34	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6cf8e5bc	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6fa4d826	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x71211248	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72dc8536	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x730817d1	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75f49dc0	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x79998501	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c4e9d46	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e3bfcf1	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e483a2b	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e60cf1a	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x817318bc	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x84127cf8	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x84e3865b	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x865c93c4	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86ab9c47	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8805341a	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x896be42b	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8a34174c	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8cdcf33c	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d853d0f	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f73d7b8	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x924f9ec9	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9697fc9e	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97387689	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x974122e6	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b56f97a	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9fe70423	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa035ac9a	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa550b6c7	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa5ba1a37	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa66adca1	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6a73eed	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa72b77ba	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa76a21ac	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa788b0e7	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa795bd42	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa06b0ab	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad20c613	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xad403fbb	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae3adf0f	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaea30d61	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf1576be	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1a312e1	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4083b94	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4e59c90	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb6411bc0	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7b4379b	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba6cba9a	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbf8158c9	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc084321a	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc08b0bf6	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc1bcaa1d	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32442ed	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc510f8f5	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc5917c9d	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc892d4b6	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc980405d	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcb4bf2e8	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd7a3872	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd9ef796	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcde1ced2	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf5ae007	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd1454bb7	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd463ed3a	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd489199c	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6c428de	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd9225c72	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdbfff83a	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdec8b585	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdf34e8a7	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdfebcd96	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe17fb15e	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe1d5906d	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe27525d9	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe2ae40a7	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4195794	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe46c2990	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5bfbf38	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8036c69	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe8e3d7b1	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeaa53144	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb62fce5	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xecc7da0e	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xed8c63fb	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xef79445b	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf0a236cb	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf203b66c	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8467d1e	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf910fc34	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf939644f	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf969298c	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc4c34f9	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe4b28ae	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff7880b2	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0bd079f9	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0c6ef2cf	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x132dc175	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x179129d2	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1f5b4d5d	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2aed8265	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x354eabac	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x37b230f8	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3b0f2331	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x40f4936a	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x57eb63fc	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x57f07d3c	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5e3b4ac1	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x73033804	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7c664ac3	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x8799b874	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9d925529	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa0795c4c	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa5c46cc4	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xab43bb39	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb357acc7	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb5a36770	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde44d14	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc3cd2c8a	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xccefedbd	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcdda3758	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xce374b1d	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd1a2e1e3	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe2404f16	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe6f4cfba	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x14bb1aa5	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x22978b57	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x2ab1a1ed	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x3307aeae	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x457a860e	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb49bf657	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb5b8657d	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xb88b8a24	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x051e36c9	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x05994737	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2b2e4f88	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x45c3dde0	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4ae605a6	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4ce96f84	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x53311352	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x58409d20	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6328054c	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6ab1a2ab	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x788c00f6	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x823ab69b	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x8d149c4f	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x95e7a985	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x967c2c2f	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9ee4df93	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9eef919b	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa58ceeaf	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb42d0460	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbdbeb893	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc1813777	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc2981a21	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc3d4fabb	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc7d70d42	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdbacdb5c	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xee1791df	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf340c065	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf3b8c422	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf8816c34	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xf8c2c8bb	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x08742c38	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x1aeac941	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x48a144bb	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x763821d8	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x7bf7e7b8	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x86b6e539	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x8e35397b	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x93f83d2e	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x9d1fbc24	gameport_close
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x69711911	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x7df58cae	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xa2e70598	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xba4e9a9d	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0xf9b0a6ca	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x18896f7c	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x23dd7540	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xa4cac332	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0xebac7af9	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x9586b6b2	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xa6277b31	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xcedf7d86	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xdc0dd8da	cma3000_init
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x4115989d	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x0a795763	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x14e796b4	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x7beb4eac	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x85c35412	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0xf56ded3d	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0x5ddff11b	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xd22edb17	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2a32481c	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x5b739dae	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x5c943c8f	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x60b44367	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x76015b94	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7818bdfb	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xa7c4fd6c	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb6002c12	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc7e42f95	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xe8ad9bd1	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf392fd26	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf7d1fcf4	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5	isdnhdlc_decode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5	isdnhdlc_out_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58	isdnhdlc_rcv_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223	isdnhdlc_encode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x2fabbffe	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x61511484	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xad4f2a1d	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xbe48655b	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x2a5722de	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x89765cc8	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0b9c043c	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x0f57965b	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2f800564	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4cf78c91	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x4e432773	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5d6fd7ac	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5ef7fa27	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x66cc4cf9	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x707f794e	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x76b9b40b	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x8281f670	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa2bc26f2	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xa5daced4	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xacbd611d	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xb4412b2f	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xbe0c4248	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc48ee155	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xcc90d001	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xda6e090a	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdbda9d91	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe05b4cbb	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf0ab8be4	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xfccdb51c	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x59086937	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x877375f0	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0x38284309	omap_mbox_request_channel
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xe0ec6e65	omap_mbox_enable_irq
+EXPORT_SYMBOL	 drivers/mailbox/omap-mailbox 0xee0bbde5	omap_mbox_disable_irq
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x0d8904a0	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34c333b4	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x611da4ca	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7782e88f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7e23be52	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x8efff430	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9ac7c147	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xadb6b25e	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xaf788fbb	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc04554f7	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc140a4f7	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2e8205f	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc4022eb3	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc6a36e24	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd2381a89	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd47b1f8e	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd9e35cf8	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3e5dad3	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfa93de35	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/dm-log 0x173675bb	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-log 0x1f471199	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x90859d3b	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0xcd7c61e6	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x1be4a333	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x5b017ca9	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x9d6f94c4	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xc860be48	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xd312fda2	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xed2f3993	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/raid456 0x2144aed2	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0x51ea323e	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x0f5941b3	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x465cab2e	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x62776f6f	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x97faeeba	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xae8d2593	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xb4c1f615	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xbd663c0c	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xcb4f1dfc	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xd49b0a25	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xdb1a6337	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xe649dfc2	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xed0cc9a2	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf8b9855d	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x035ac0e8	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x066824ad	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x29a34308	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x625aa6d1	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0x08eb87d1	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x91314bac	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x67e0f2e5	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x88b31b0d	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x11d8631b	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x2142ec07	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x5d8bc8a4	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x88437e7b	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x9f08c529	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xd6752af3	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8908de0d	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x006d6880	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08383282	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1609d70c	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1c1387e9	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x1e7a8283	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x20f9422d	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x21381c3b	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x214d5b4e	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2affd4ee	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2c12c287	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x2e348aea	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x354f7279	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3fd96ba7	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x42d15a1b	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4738b191	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4be5c646	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4f167ead	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x61022f98	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6a42d538	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7347236f	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x74c3441f	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x7b334d3c	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8026ef3e	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82143c17	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x8376c48a	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x895ce68e	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x91bdde7b	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xbfc5420c	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc0b93899	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc40c4a2b	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc6c7ab8f	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xca919972	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd369ee37	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd5f0f5db	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdafc31c5	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdc113c89	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe4638e75	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe8fa62cb	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedda2b2f	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xfe73d116	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x15106795	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x214823c4	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x3d908911	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x40e9d434	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x6cbaf2a7	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7c881887	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xa6d52869	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xbdeae7fb	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf8c649dc	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0xe3566022	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0xc8c4d1d0	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x5acf3fdc	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x6dd92f06	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xa2cedbef	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xcf863b78	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x024ce02a	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1f92254a	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x24b74664	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x32ba2fa6	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x52514a36	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x624868c5	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x835aaded	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x8be8546f	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xbcaab979	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe1275952	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe402e030	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xefd94070	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf6cdf1eb	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x13679b23	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x5b53f06b	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xb3d47de9	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf0343aad	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xf1884cca	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x02c9b869	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xab7fb68a	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0xb6db5fea	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x02371ef6	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x4c3c81a5	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x6fbef977	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x7110bf07	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x767ec071	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x8ab878ff	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xbf59410b	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xd9e6c79f	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe1361271	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe7e2e925	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf86b9c7e	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xfa6992d0	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x1d050f2b	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x2919be39	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x79f94de3	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xc31b37a8	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xc6c38790	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x039b9b7e	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x78a19f3a	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0xa855bf16	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0xc00178ba	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x5f3e721b	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x6ccef608	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x823e26ad	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0x4504f165	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0x48d72084	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xddce7387	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0be70b6c	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x35af175a	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x458a965b	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8b6273a8	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8f0e5e4b	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd799be34	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe5f0bfb5	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x3474d83d	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xb0b32e93	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xc622ae91	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xf780ac93	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x30f31179	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8a05d5cc	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xb72fa862	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x27a37a82	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x2df619bc	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x39af6e01	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x79ccbb59	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xc41cbb5c	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xc4276dc1	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xceddab87	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xe3771195	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x08ba5477	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x6cd62002	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x9714de3a	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xa7daba1c	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xd826d51b	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x59a5ad6d	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xdb3faf38	altera_ci_release
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xe66b9812	altera_ci_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x0222a443	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x3b9ebc46	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x4668d016	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x74a9ec81	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x7615fa8d	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xad831b7d	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xc7d95459	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xadd8bbfd	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xec6267ca	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x4d999131	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xc010ad3f	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xd31ee1dc	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xeb08f0cb	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x0eb98b7c	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x12048a56	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x41ea2102	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x9e76fc4e	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xc87f8418	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xcf1dc381	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xf1c24b81	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0a8a58a9	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x0d4b1b11	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x138d0a6b	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x2c816c2f	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3006cfc9	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x4014ad67	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x41e67cb0	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x43599776	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x62a33e9a	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x644f1825	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x67db277f	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x80ed8818	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8a2605fc	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x928a184c	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa3c2da50	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xa4e0b53a	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xbe67a5eb	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe0440f40	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xec7d9f68	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xf72a3ba1	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x092ad314	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0bd156dc	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0e74e90c	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x508c9556	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5351a809	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5fa455b7	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x68c100f2	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x92ef18d4	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa66d34e6	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb616d34b	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xd797aa55	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xe9428970	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xf09d01a5	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xf1ca5229	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfb0d1f9b	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfc06596e	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xfd4e6c79	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x01c85620	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x18a18c5e	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x238db666	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x3687d380	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x765da9a4	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x7f493b19	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x988e33d7	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa10bcb00	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xa702fb95	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc2c80aaf	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xc6e9fe4c	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xe5c75344	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x4a5990a9	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0x0ec44a90	csc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0xa94ed1be	csc_set_coeff_bypass
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0xaaa0ddaa	csc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-csc 0xd65b6335	csc_set_coeff
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x26941dc7	sc_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x36bb9ff1	sc_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x5b65793d	sc_set_hs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0x6bc064d1	sc_config_scaler
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-sc 0xb308c810	sc_set_vs_coeffs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x07464bcf	vpdma_add_cfd_block
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x0b913bf3	vpdma_hwlist_release
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x19163d91	vpdma_set_max_size
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1e26321d	vpdma_misc_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x1ee5d41c	vpdma_add_in_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3269c1e2	vpdma_add_sync_on_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x32a33201	vpdma_hwlist_alloc
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x35025c58	vpdma_enable_list_complete_irq
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x3b3f4afb	vpdma_create_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x414e92be	vpdma_list_cleanup
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x4392312e	vpdma_map_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x49293b26	vpdma_yuv_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x50ec40af	vpdma_rgb_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x519b5204	vpdma_clear_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x60708dc6	vpdma_raw_fmts
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x697fa947	vpdma_submit_descs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x6ea95e2f	vpdma_free_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x73ae3d42	vpdma_add_cfd_adb
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x752488ff	vpdma_create
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x7b000af6	vpdma_get_list_mask
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x98c3e90c	vpdma_list_busy
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x9de56bd8	vpdma_add_abort_channel_ctd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x9ece601a	vpdma_free_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0x9f175d7a	vpdma_hwlist_get_priv
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xb817ffe9	vpdma_get_list_stat
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xcc78bec4	vpdma_rawchan_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xd0aeae6a	vpdma_add_out_dtd
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xd1512474	vpdma_unmap_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xd68dc6d9	vpdma_set_bg_color
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xdb840242	vpdma_dump_regs
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xe116e92c	vpdma_set_line_mode
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xe1656460	vpdma_update_dma_addr
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xebbec4fb	vpdma_alloc_desc_buf
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xf82483c6	vpdma_reset_desc_list
+EXPORT_SYMBOL	 drivers/media/platform/ti-vpe/ti-vpdma 0xff1ef3fc	vpdma_set_frame_start_event
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x06f593d5	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x1d004375	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x61ee92bb	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x6f82f077	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xc53a1400	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xcd18c6d8	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xd80be5a1	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2da0f88f	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0xb90ce7bb	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x006d2e66	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x31daaa10	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0xe2d919f3	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xa6709031	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xcc0f4ff8	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0c1d2555	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3234e164	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6885cd23	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa827c237	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb0388d02	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc825edb9	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd28a0910	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe47ee3ae	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xedb865e4	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x16b366f4	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x52b4d192	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x74de60a7	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xbbb96535	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xbf4f14cd	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xd7a475af	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xfc8cae57	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x988a60d2	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0fd049cb	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x42051a73	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x581db845	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x66d92344	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6d2d879e	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9b978fd5	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcf409990	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xde5de301	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe67a46f6	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xcfd20290	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xd68c9c90	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x1e002085	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x857f0d92	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x0593adeb	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1c3e1814	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x36bc2087	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x57a086ab	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x996df525	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xc01ce64b	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xd266b566	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xf148df41	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xf37998e2	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x0504f824	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x0ecb71f4	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x15ee0abe	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x163dc7e6	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x166fa82b	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x5ee2a7be	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x99dd5798	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xbc2ac816	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x10b8f232	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x2d43459f	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0xf5a6c78a	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x94228d3f	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0xbfe58cf5	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x035aca99	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5bc024aa	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8fc890a4	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0139ad5d	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0350b42d	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x08d55b7d	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0a581270	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x12e49b80	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x15f9baf6	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x15fbc6e4	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x18ba81ce	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1c28204c	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2154f8a3	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2c1f3f90	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3114ccaa	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x33759ca4	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x40f04aab	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x46091a94	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4783987d	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4e7f4a65	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5583709b	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5b11b66b	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5fc41476	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x603830e9	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x647ef505	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6857a168	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x696bb9de	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x6bf730e2	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x70dc3d96	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7489025d	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x77e6db02	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7a6459c1	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7f972fcf	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8b67923e	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8bc14dbb	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8e672fa5	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9134aa45	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x992fffaa	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9c5777f6	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa31c382c	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa32db300	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa50c93f0	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa9270164	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa9d3fe53	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xadb98bea	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaedd8614	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaf4c2b5c	video_device_alloc
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb399cd9f	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb3dc1da4	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb498989b	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb57013fe	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbe2a7ef4	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbe6b424d	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc1489649	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc17a3c9f	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc1e8b7d1	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc2056bea	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc595b3e4	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdd0e5acf	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe29956ff	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe45e13b7	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe4d1b72a	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf1e7c90d	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf2992aab	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf64eeac3	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfb367e88	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xff80d6bc	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x37bf3382	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x46154492	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x50548072	memstick_register_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x51cb13f8	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6de3c759	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6fd0783b	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x8547a055	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x8f945aa6	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x945eb46d	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xa8d3b4f7	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xaae96869	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xb8d3b930	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xf615ffd0	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1702d0f4	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1eb9162f	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1fae39f0	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x356ccaed	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x378620b1	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x39206301	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x39abdef9	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3ea37271	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x46cc1b9b	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x49abef33	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4b66adbf	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4e048e83	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x50eab4b5	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x515805ff	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5d8ca540	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x7ef2b4f4	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x80e8f7b7	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x8f779ba8	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9a764b4f	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa027c4a4	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xaf1f881f	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb82c3459	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xba2c203c	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc419ad01	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xcd06b390	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd180e2c4	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd372e470	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xec83c493	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf4783f25	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x02804759	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x077ea87f	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x0aebd6ab	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x329e7f6e	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x463ca6ef	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5ad1d4af	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5cc75669	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5eb741ec	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x5ec7460b	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x63083b03	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x674a3540	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8138fd42	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x86822463	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x8b491afe	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xacb2daca	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xae5b5638	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbd877b95	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc025d8e9	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc45ee2d3	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xcd1602ce	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdd4ccead	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xdfc1bc17	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xe2fbdd59	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf6145a7d	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf8d62157	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf9e41076	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfaf2417d	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x0f71ae54	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x55525143	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xd2b801ab	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x0a2c5ed9	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x392b12af	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x93ae020f	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x8706d72f	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0xdb9981e7	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x0655ee6b	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x1771446e	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x2052498c	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x20f0fb2a	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x21e5345b	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x67b3b7ca	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x6ad6baef	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x71e39bbe	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xa7d8e8a7	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb22c773f	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xbf85bceb	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/qcom_rpm 0x832aed94	qcom_rpm_write
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x1e9ba650	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x81f9a47d	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xb3c31fe4	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xcde45e72	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe653bf86	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xeff25734	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x387b3c60	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0xf3e682ee	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0xfa435565	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xcec0cc05	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xdd63edda	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x3651bac0	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x39f86aa1	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4924a620	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4a9b63a3	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x53ffb614	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xa5622ae4	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xb9e96c90	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xbe92dca4	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xcdf62eb3	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd05c2648	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xd0abfca2	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xda39dff0	tifm_eject
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xf8c670bd	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x10f67043	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x3beea245	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x86eae9fd	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xb2281858	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xf559e05e	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x2d029520	dw_mci_remove
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x7574bee9	dw_mci_runtime_resume
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x7c9047d9	dw_mci_runtime_suspend
+EXPORT_SYMBOL	 drivers/mmc/host/dw_mmc 0x91d10e51	dw_mci_probe
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x6a3bc4a6	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0xc7c9a25c	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x3c6d22f4	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x76072605	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x9e74fe35	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xadbc0563	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xbfb25c78	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xd2a33ddf	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xda9cfa98	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x705336ee	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0xf687d69c	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x4943889c	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xcf1e58e4	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x4db7403b	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x7792f5a4	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x102603bc	mtk_ecc_get_parity_bits
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5437e775	mtk_ecc_disable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x5de55d81	mtk_ecc_get_stats
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x6df58afb	mtk_ecc_release
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x76e53683	mtk_ecc_wait_done
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x8dcc87d2	mtk_ecc_enable
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0x9da87903	of_mtk_ecc_get
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xda64ef4a	mtk_ecc_adjust_strength
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/mtk_ecc 0xec8b9207	mtk_ecc_encode
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x12fdfa3c	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x226175d1	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x311423b0	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x47b1a30b	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x89726a98	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x8ca860be	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xb0637165	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xb38fdc9e	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe9ad3894	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe9e0aef5	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x6c64a427	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xbff1aa9f	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xd6bae253	com20020_found
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x04ab6bbc	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x07153099	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0978bd41	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0dfa3642	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x11fe4964	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x12a2070e	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x19da6a0b	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x1bc5aae8	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x204eaa52	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x23caf3bd	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x262e3ad1	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x2a6ce4f1	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x32d5a5a5	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x35ea6f1d	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x49c5d99b	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4d17d427	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4d20f2e8	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x529bff25	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x64a74b44	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x66a0c990	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7a48b4a2	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7d3fd161	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x8c12783f	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x945037df	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9587c86b	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x99483908	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9f89cc92	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaa2c29a3	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb3ac70df	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb6ca0b24	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc8175511	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc8283529	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd29a3c40	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd2ea623c	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd6b5fb79	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xdf20f654	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe78cb847	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xff6c36a9	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x67f247eb	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x771b8404	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x7ec8c71e	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xc78ec8a4	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xcafdfaa2	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xfca93e2e	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x73ce5afd	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x8113b2c9	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0x083c653d	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0xdd6f1318	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x0ca4de36	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x7454e496	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0xd7b014a2	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x0023222a	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x1063bb33	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0446c008	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x281cf204	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x3ed9fd3d	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x64e54775	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x6feca18f	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x8a719363	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x97348c55	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xd245b2d0	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf093a058	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf29d28c3	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x09c2c4e7	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0dc96ec3	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2200431f	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x58a16fda	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5bf69fc2	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5ce0779a	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7f451850	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x884f62c2	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x93a1a7cf	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x97b179d7	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9fa313d5	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbaa20b7b	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc1a744d3	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc524f51b	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xca100432	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcc0b040d	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe03b3e87	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00b7ceed	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0aff1994	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x12749a12	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17323458	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1b51b15e	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x24501d8c	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3b5dd133	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3ecdf8f9	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x40fc6d3e	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x41418cc8	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x44cdcb27	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x48afecc1	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4a840e90	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5d88965e	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6126077d	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x64f7f3c2	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68b20a8e	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x76967868	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7b7d8145	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x85843f6d	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x86873c6a	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x87c8ab8e	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8c65e8d7	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d08e80d	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8f49bec6	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x912c5aa8	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9692bb03	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9792c951	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x97fa11ce	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9a8d9a5f	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa02b1182	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xaa010f5d	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xae18bc0a	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb1e21ac9	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb335d189	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb46ce048	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc683ff77	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcc45fea6	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xccdccf28	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdbbb4467	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xded2869b	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe70886bf	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf0c5bb18	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf73efa0a	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf850a197	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x016e51e1	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x2a6af9d4	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x54bd67f0	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x5df14926	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x5f020a9b	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x7475d3bf	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x9696f711	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x27a68100	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x46805c98	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x489d4ac6	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xc3346402	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xde07d242	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xea16792f	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x503c3034	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xada698d7	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x23221956	hnae_reinit_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x65edc71e	hnae_ae_register
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x696f1cf7	hnae_ae_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0x87326217	hnae_put_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xb1266858	hnae_register_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xdf24adef	hnae_unregister_notifier
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hnae 0xf53ce393	hnae_get_handle
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns/hns_dsaf 0xaea01ff0	hns_dsaf_roce_reset
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x56ea14d8	hnae3_unregister_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x66d82dd9	hnae3_register_ae_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x7d6df5f1	hnae3_register_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x98eea2c3	hnae3_set_client_init_flag
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x9e136cb5	hnae3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0x9e694832	hnae3_unregister_ae_algo_prepare
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xae2155b4	hnae3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/hisilicon/hns3/hnae3 0xfeeeef1c	hnae3_unregister_ae_algo
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x6f63e5e1	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0xb5f2ed49	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x3d68c97f	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0x64b7f3c3	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01592330	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04a9e983	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bac72ba	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bb9015c	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bdb5bdb	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x167e694c	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18692a5d	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19c4c5b3	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f33f4af	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x321a084f	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d8204b5	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62766574	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bcf996f	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79154e82	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x794467aa	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d9444f0	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82d43eb5	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x870291e6	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x899072d8	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x908f668d	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x983969ae	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a6eb60a	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a7ed5e6	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c94a9bd	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d930fc2	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ea80394	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3be38cc	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3d2cbbf	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5eb38dd	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb85ad845	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc8b0897	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf4c4faa	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7183a92	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5898f56	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8a8b9cb	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9fd6a61	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe149cac9	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7b8f5e1	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf442c692	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf665c804	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfb183930	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe3928db	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff3a92b7	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffd0fb48	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02edfccd	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03436570	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03937a56	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x044bcbc5	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05758246	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08209641	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08edeacd	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0922388a	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a7607d4	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0bb641b8	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c2fc676	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0d1db34f	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x113851fd	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12d9006e	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x195ee6a4	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e9ac7be	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23ecff98	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26591066	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27848fd1	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2807856e	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31c54a16	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x335b2a8f	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x379e0521	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39153c11	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a7cf780	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ae3e697	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e51c8bc	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ed0b2f7	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f33ad86	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x430a9320	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x451b53df	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ad7e9d4	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4db84975	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x506cf03e	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x571b95fc	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57cc7e06	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57e1dee4	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58fa7d83	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5adee971	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e423aec	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5fd2248d	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62dddcdb	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67f9898a	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x688362a9	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a3c3419	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70d644b7	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70f19958	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7262fe96	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73193ce9	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7394df2a	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73ae5ec9	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76192a39	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77a0e60f	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78892ab2	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b3eeb55	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7eaf0be9	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7eee30b2	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8166885d	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83db5d4a	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x845120dd	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84ae1b5d	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84b065df	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x862df67a	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88363b7f	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x886fe89c	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x896db0f8	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a4e09a3	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a9802f9	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c14bc21	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c6ee99e	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e5677ad	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ef16bd4	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90018bd2	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90fd974d	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x921a1499	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9572aa1a	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95d47eb2	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97aebdd9	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c9800e5	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1fe258a	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4413ea7	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7b8ce62	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7c09d94	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9e3a8e6	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb146779e	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb79ee2b1	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb8f415f9	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb92efb1d	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbbb2485d	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc0a78b5	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd46d529	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc00097dd	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc021be61	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2f17ea3	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7fec450	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca51126c	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca8b8cff	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xced73c76	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd23381f9	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5a7f9cb	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd834b45a	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdabd21e6	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbf49d36	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdec31aa6	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0da03a0	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe35c82cd	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe46c6f87	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe822da6c	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe899a682	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefbb9759	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefea0ee4	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf0a2462b	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1eeca40	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf31b4422	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf45aa14d	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf800788a	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfba4d3c0	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfcaa08c6	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe839e67	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff0107bd	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff05e262	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xc35978e5	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x11aee06f	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x24604d3d	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3b7e2a61	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x41706dbd	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47704407	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4d3375e4	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x52204616	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x53184e72	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff9a5db	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7517f86d	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa600760	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xacd7eff7	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xae3a1294	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbbd7a457	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcfe76515	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeca0348c	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf5b23255	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf96c62f9	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfa0caadc	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xbe412ca4	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xe7430861	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x2a7bca40	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x9b5882aa	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0691bac4	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x091d7f0f	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x1498aaab	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x164e66f4	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x2ef22f3d	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x33ce29ad	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x53269d13	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x70a6e88c	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9ad8bb1b	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x9c89d2af	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xa0d11a25	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc968c017	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xcc440a46	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x1b6f3a60	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x705d2a4a	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xad27bb7b	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x3b36e7e8	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x6915fa55	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x7f31a087	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x9b9eae68	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xc08ee2dc	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xb79a54ee	mdio45_nway_restart
+EXPORT_SYMBOL	 drivers/net/mdio 0xcdbdeca7	mdio45_ethtool_gset_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xdaceb7a6	mdio_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x13fc0744	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0x562efc1f	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0x63a85aad	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x7ca5820c	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x95027688	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x9c3ddf1a	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0xb6fb6e83	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0xc8e16c92	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0xcc6c8ae1	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0xf5a4c3b6	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xbb9b4b10	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x58327aa3	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xb3c4a06e	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x91e2397c	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe5bc048f	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf8c1ee54	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x4888265e	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x2d47b9b3	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x3becd955	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x3d0a1aae	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x4a2eac32	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x71173af3	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xb4319d13	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xc8aa9209	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0xe878b844	team_options_register
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x13ba9f8f	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x755b654b	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x98c9a213	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x093683e1	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x095c4231	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x0af8e896	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x52c5e28d	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x62a1bac7	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x6794edb4	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x83b95b31	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x894256f0	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd636c87a	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xf30c2440	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x4860bd85	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x1a1e137c	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x364aabf0	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x6b1e047f	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x7651124e	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x91750a0b	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x937a83ff	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9ab71845	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x9fb29d7e	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa0f6fffd	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6e4bbaf	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb81cd91c	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd3141917	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xeeac7ba9	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0752de60	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0f6f70d8	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1a3fc57b	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1eac950f	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x236fe28a	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x245c02db	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x245de479	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x297a298c	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3044c9e3	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x37d3ce41	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4163e4ce	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x4557bc4e	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x50def7ad	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x52f8457f	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x58c08221	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x65d8edd1	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x69c14cc3	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6e731701	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7579945b	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8362bb4c	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x845c6b49	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x86c9f0e7	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8c08267f	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9011be2b	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x90a644d2	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x926ca5c7	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9b6aba14	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9bff1d6b	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x9fcf7d39	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa5c5d7a6	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb04e3597	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb6d894b2	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xb8b8a4d9	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xbde0236a	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc2d9ba72	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc3db82a6	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc45ba3b6	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xcd92932a	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xce7a6e6b	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd242b26b	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd7705430	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd9783116	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdb8aa49c	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe7279de4	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xecee08c4	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfa1481ac	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfc18aa9a	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xfd2c87a5	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0525582d	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1fedfe9a	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3dc1c80c	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x46908bbd	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x777b437a	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x826ead36	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa00db61c	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbb30d1a6	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbbcd7092	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc400e86d	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe7eb0f33	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x088bab86	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x180f05e3	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x1bf403a2	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x202ed0a1	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x28be0b2b	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x39ec8492	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x405a9bee	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x49dd08ba	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4ab31aba	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6b69c972	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8c18adcb	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x93748730	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9414e584	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9a49e5ca	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa09b8862	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa9789fe1	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb989e112	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xcd6748af	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xdfaa8ca9	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xe902d740	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf4e3a35a	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfe50c777	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfeac35ff	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0085e6e3	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c81df80	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f9f2c40	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x12ae9338	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1553d68c	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x18d9115e	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x19095d5d	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x196ff849	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bb3bed7	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cd13e99	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1df761cf	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2025a9ca	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x23965085	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x23b27798	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2499434e	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24f21531	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x24fd03a7	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x25afef95	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ad61458	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c551ad0	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d49627c	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ddef493	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f1f9186	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x34b80461	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x37c1bcac	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x383d92c7	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x397acd12	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d4a3409	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4000b82d	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x43df2f8a	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x474baf51	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x49d92492	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d1bb762	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f2e32cc	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5313ac34	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x53665b10	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x576db025	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x58bd4896	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62552106	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x62d360bb	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x63774616	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x65320e52	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x660120ce	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x68f47417	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x69a607e2	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ba78dcd	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6df7ed1f	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6edc39fb	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74c5ce2c	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x74cd795e	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x75da8042	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a6410ab	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a923237	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b9e874f	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c355357	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f1ecd88	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f639142	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8072f002	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8af16488	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8bff6a8b	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cc35ca8	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cfeca27	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ef52156	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f3cac7e	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x913ce75d	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x93cc4cc7	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3abdeeb	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7936f2e	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8af24f9	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xac75b38b	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb06c4268	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb08d5b57	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3117725	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb50381f4	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1bfd6a	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbaaffd8	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc3c0b23	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe320a2c	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf8690ec	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1a11c65	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc20e069c	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc232b47d	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5f720a5	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb59f8b0	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc49f5af	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xce62ca74	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd17df90b	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2b0a8d8	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4cab0b4	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd61737c1	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd925f9a6	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb8921a8	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd1629b5	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xddba6afc	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe13f74dd	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1d83722	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7661ff4	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed34c633	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed4fc93c	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed8cc312	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf00d706f	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf14f8fe3	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5d0d5ea	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf792ba67	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb388b1e	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe531136	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe91c165	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x03df7108	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xa9bc41e1	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xb15f05ae	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x15548117	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x40baed7f	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x44d5dd37	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6d49429b	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x82312159	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x828d1d3c	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8814c4e4	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x8da82a1b	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9be9a2b4	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xaed4f124	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xb2a76307	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd4b13ef0	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd71b8d60	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x14aa5255	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2515d66c	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2b63dc52	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x307a2710	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x4b18b0a8	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x68c2995a	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6fc3796a	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8a284734	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xae9d6c5b	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xbb7bdb60	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd0a7750c	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xd913f38d	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe266db62	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe6989058	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe69b08ad	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe80d015b	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf7fda90c	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf8069e29	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfa59525c	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfff2d6b3	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00d7201a	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x024a88ed	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x030b7aa5	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x089d9364	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ad0da81	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0c380bc6	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d4dbcf1	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x112d155f	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x13c7aeb0	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x23d75bda	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x277cdee6	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2e52f129	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3061ef16	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x355d8686	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x35c7f96e	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x36963c7a	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x36f5c764	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38ac5177	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38c7471e	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x392171e3	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3925679d	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3be2e0fc	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3cd98322	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3e225375	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3f418c1e	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3f8c5d6b	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ff1b7f0	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x40dfdcfd	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4241d590	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x43f746ec	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4616f19f	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x481e613b	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x493c87ca	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x50d6a6b5	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x54630b0d	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5e07e519	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5e1577ad	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64a6b34b	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x666952d2	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x683103f2	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6843a72d	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6920b89a	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x75d39a5e	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b2aed69	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e8530d1	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x823dadf5	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86d46c67	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8ab10f7e	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8da97625	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8fcffba0	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x94275e08	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9477a073	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99f6d205	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9c1272d8	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e860ddb	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa18eaabc	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa3ab2fec	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa636310f	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa85acf36	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa87cd400	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa9eee65d	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xab16a58a	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac676dab	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb1758a9d	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb4af092a	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba11208b	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbbc3c877	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc1a9e97	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbd7bfd2f	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdba5162	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbebc7fdc	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbf4c515d	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbf5fef6c	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc0d4ca55	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc3240975	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc8c28bbc	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb80da10	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcc0973d9	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcd825817	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd4c0a4ab	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd5084895	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7e94a3c	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd8a98885	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe59cc88c	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe6bf5e64	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe79ef16a	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf046b526	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf21b4c20	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf2c48a51	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf4a09948	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf505d82d	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf602ff09	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf715d2de	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb7087a7	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbde73d9	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbe91482	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfc18e0d1	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd03683a	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x33c2544a	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa44e2870	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xab9db4d3	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0aa8e551	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x0c0f3917	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x24d37b95	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x252724bd	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x272babee	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x31f9db1d	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x5543ff13	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x65116020	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6eaed1f8	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x701d7293	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x757c3d08	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x757f0428	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x760b0639	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8da40d16	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8df32f95	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8edf3407	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8f05f60a	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x970be074	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb59c4279	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb6bd60cc	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc6480440	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe470f3ef	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe73cf99e	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xe9290bb1	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xeac3045a	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x2de1f7de	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x498892a6	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6da55504	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7e012611	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7e783086	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x81c533bb	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x889d2f34	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9983901d	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x9e62dee5	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xab980d7c	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xabe5a73c	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xb532e839	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbf874765	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xdc7e2deb	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xdef12e4e	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xeb4c9831	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xd9069ed3	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x32799620	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0ea65e0a	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x16671d8f	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1916c416	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1bdd8564	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1c44e4ae	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x218ba920	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x25e8e06c	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2e47df6c	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3571eeb2	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3e1e3f07	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3ee6da58	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x419dfeb6	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x43aeee45	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x46c94fd1	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x55252853	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x56f72a48	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6551d496	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x710f6dd8	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x726f4b36	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7347ea7a	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7842c85a	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7ff8da0e	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8ea6c70b	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x907f887e	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x940f039f	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x975260c8	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9b35bd0f	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa015b0b7	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa88d7ebc	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xabf4c4a5	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb1c322b6	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb81dec61	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xce251297	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd1fefbca	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd3366318	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdd654fe0	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe3fd7d89	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe4bbc3bd	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe78d127d	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xebd5328d	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf43ea5b7	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x0e67165d	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x120b2c29	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x6eee746c	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x8b47ff67	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x0864f1cf	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x0a217c6d	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xbdba57b3	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xd2532606	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x123eb9a8	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x177055db	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2465a83d	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x258771ab	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2bd26c41	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x329c77bc	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x34e58226	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x39288650	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x50102bdb	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x52f754c9	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x562a07c6	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x57bbbc22	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5a49c834	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x70996650	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x91b657e8	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x946c64af	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9dfb3a5b	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa7174143	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xab22d4c7	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xadcedb6b	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbbbb8bed	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc0fff783	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc30f73e7	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc5cd1517	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc99e0927	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcc142acb	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf22fe4a	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe10596fb	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xea58944a	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeb48db4b	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf7a4a5f1	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf944c866	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x04ebe994	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x13532669	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1aebb5b0	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x58283100	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x7b01741c	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x7b9677e0	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x7f03dd8d	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x891dfb61	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x90760d52	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x91001d56	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x94541cde	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x953e1934	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9c6b9e59	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xa41ea0fb	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb8754371	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd0f0a638	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xd62a3b47	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0xcd53527c	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x1526ac65	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x831db042	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x98f3ba6e	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xe954838e	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x02074d66	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x46e471ac	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x9c3f4cb8	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x8ff68531	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x94d0fb39	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x080ff77f	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x2f7a7cfd	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x4fc1d5cb	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x93e9e8dc	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xafb2e420	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xc2ea8adf	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x0b435321	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x932f9bcd	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x9b788481	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x2a3208e2	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x44f24b6e	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x557fd1a9	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x57fe23e1	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x75a4272d	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7afb1796	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x7ea14a87	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb390d4bf	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xd167d881	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xe1204d5b	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x0ac8df81	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1372acce	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x4707bfe0	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5e12a1bb	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6fc4e8bc	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x798c8650	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x7f1371c3	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x8b550157	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa1fb53ac	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xa3efa41d	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xab85db91	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb78f5860	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xb8ca9d49	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xbc72797c	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc5221815	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe608736f	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf5a767a7	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xff89e1ed	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x171f4590	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x193f167e	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x30a9a236	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x330b5634	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x6374f902	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x68f1abb8	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7faad5df	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x962c3f45	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9a1eb4bf	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x9abd7c92	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa7feffb7	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xceca46ad	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd2c3a3b3	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd67be36f	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdd9b60a8	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdfd3a3a5	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf0dc6bcf	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf1082f5f	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf6b8745e	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf6c6dce5	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x55701457	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x5bc06cb2	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x08c63091	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x0d3bb464	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x1ab825a4	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0x1ac6e3ce	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x2ddc6e1c	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0x31ada72d	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x3b537c49	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x3f3de4e6	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x410f0eca	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x42533544	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x4cc3768f	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x567db873	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x6aac7ae6	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x76b2bcfc	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x86075231	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x8aeab11c	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x8d2d5e05	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x90decc9a	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x951f835d	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport 0xa5ec9814	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xa9b9c915	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0xbd18138c	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xcad8bc3f	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0xccf58035	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xcf93646a	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xd1b35cdc	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0xd6187a41	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0xdc87d55e	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0xe014b754	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xe14d9000	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xf0557e8a	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0xf1e802ef	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0x19fe0381	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xce15e610	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x4a803a32	cros_ec_register
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x7c6e14f6	cros_ec_suspend
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0x834c3433	cros_ec_resume
+EXPORT_SYMBOL	 drivers/platform/chrome/cros_ec 0xf1c2f52e	cros_ec_unregister
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x3330a1c8	qcom_smd_unregister_edge
+EXPORT_SYMBOL	 drivers/rpmsg/qcom_smd 0x730c7324	qcom_smd_register_edge
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x12036f11	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x1d8fe6e1	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x4fc462a0	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5e039ef3	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x5e1f3415	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x64416ead	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x72b9e6aa	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x80968d79	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x93d8b99a	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x9b36497e	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa89df868	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xad0dc892	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xb9faae63	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xf712d834	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x437994e5	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xbe3396ed	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xca910274	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0xefe74721	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x167f18c3	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x3bef78bb	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x49ab72f1	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4ebde4a0	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5a0aba93	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x60cd8439	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x79bf548d	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x9480fa8b	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xce590eed	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xf7fdfc27	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfd1a8775	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x045cfbd4	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0611f477	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0bb44856	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1db371b9	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2237bbaf	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x24a5d20b	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x25ff6b55	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x277d54d4	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2aed3cfe	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2b596895	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2bfc35f1	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2ca5a8d6	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3f329753	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x40f55bf9	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4364e2f0	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x453dd2e7	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4a51d001	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4e5b6212	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4f7fd392	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5ab41f0c	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5c92d138	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x655b7087	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x67e8b980	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6c110205	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6f8f4f07	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x79a56749	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f7635fb	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x865c03b3	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8a2ca18c	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ad2e2f3	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x95eadaac	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x96aa135d	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x96dc9d69	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9acc4cd8	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa44bae83	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb61438e8	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xbf14d876	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc2278075	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc38d1017	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc43db657	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc6571b2d	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcb9e5f92	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcdfd1122	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd1412c89	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd2af3d66	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd4b82f14	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd6e95803	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd90140af	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd9cf9c34	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdd044651	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdd7b6184	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3ef7f89	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xea964510	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xebe2706c	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf3678f3d	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf3b4bba1	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf648ab83	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb405ad0	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb7c1867	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x6ac4d45b	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x8f0124be	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xcbb331b9	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0x8f5f94e6	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xa21fafb9	mraid_mm_adapter_app_handle
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01	mraid_mm_unregister_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x0328a0ad	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2ed050a2	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x6b0c1591	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x6b98b1f7	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x7ea571a9	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x838bf896	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x9eb5654c	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xb48077d2	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xbf4645f6	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xc7b1e053	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xfb3133cf	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xff5d6ce0	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x04d700ad	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xad63acae	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x01a1e4ba	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x07b4b8d7	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x30e8dbe2	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x69ba2595	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6a3bf19d	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x7390da92	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x814e08f7	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x892a94fc	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x9a4b4d30	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xa2f65b4a	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xac670937	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb225b4ed	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xbac1c854	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd4c3cb6b	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xec2febb5	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf56307f7	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x023574ae	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x18c39786	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1ab17b3e	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1d7eb667	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1fbf2024	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x223238db	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2ac739cf	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3ba4fa51	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4551d0a3	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x46662ee8	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4724e01c	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x49613820	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4b5bfb7f	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x5c327bb6	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x63ea2988	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x652ada66	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7938fa69	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8e59f10b	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8e8777bc	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x95a3e5e2	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9ba17893	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc9b3cf49	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xcac3fa65	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xeb6938bc	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf336867c	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf887d3ce	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf8c377ba	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfb6f8664	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfcf05806	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x7e34f752	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x94a35049	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xa5e5a2cb	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xadc19334	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xd8542089	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x1e34f98b	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x40474c64	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x83944e4b	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xb4f13ee3	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xf1d73048	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xb6a3cd0e	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xd2785bfa	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x16ab8ab3	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x1f229c5f	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x2c1d2ebc	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x386ece1a	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x9d720677	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x9ead32ce	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xd0f37c49	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xefceef6b	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf0bc3664	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x5b563f74	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0xa4317061	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x0f51b3ef	cmdq_pkt_write
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x1e6ce782	cmdq_pkt_create
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x3a99874e	cmdq_pkt_wfe
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x46bde78f	cmdq_mbox_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x59ab9e73	cmdq_pkt_destroy
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x8cd5a570	cmdq_pkt_clear_event
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0x94887ba0	cmdq_pkt_write_mask
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xd8b8fbcc	cmdq_pkt_flush_async
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xdde7bff5	cmdq_pkt_flush
+EXPORT_SYMBOL	 drivers/soc/mediatek/mtk-cmdq-helper 0xecb35570	cmdq_mbox_create
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x13d95ee5	geni_se_resources_on
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x2255b21b	geni_se_rx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x272f139a	geni_se_clk_freq_match
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x34e22e80	geni_se_config_packing
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x610c69e1	geni_se_resources_off
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0x6297ec0b	geni_se_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xa87650ee	geni_se_select_mode
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xa8e576f1	geni_se_get_qup_hw_version
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xd5baa3ac	geni_se_tx_dma_prep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xe6665ca0	geni_se_rx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xf88ee8b0	geni_se_tx_dma_unprep
+EXPORT_SYMBOL	 drivers/soc/qcom/qcom-geni-se 0xfced14db	geni_se_clk_tbl_get
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x129d3fb7	qmi_add_lookup
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x133168aa	qmi_encode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x21ce5888	qmi_response_type_v01_ei
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x343d64f7	qmi_send_indication
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x54a37de8	qmi_add_server
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x5a0245bb	qmi_txn_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x74b77ce7	qmi_txn_wait
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0x7c69fa26	qmi_handle_init
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xa2ff1ede	qmi_decode_message
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xaf9c4854	qmi_send_request
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xcbdd5dd1	qmi_send_response
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xf9a4248e	qmi_handle_release
+EXPORT_SYMBOL	 drivers/soc/qcom/qmi_helpers 0xfdf76504	qmi_txn_cancel
+EXPORT_SYMBOL	 drivers/soc/qcom/smd-rpm 0x46bb046c	qcom_rpm_smd_write
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x5a710273	qcom_smem_get_free_space
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x63ef36e3	qcom_smem_alloc
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x932eb0e3	qcom_smem_get
+EXPORT_SYMBOL	 drivers/soc/qcom/smem 0x9979b76e	qcom_smem_virt_to_phys
+EXPORT_SYMBOL	 drivers/soc/qcom/wcnss_ctrl 0xcc8f550c	qcom_wcnss_open_channel
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x43c36877	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4687501c	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x5a859b9d	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x6d597579	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x80407b51	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x97bd537c	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x991129bb	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xb3846920	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xb5caead1	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbaf2613e	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xccfd03be	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe306482a	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xef9ad8c5	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0c113cb6	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x156ba1c7	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x1595f65a	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x2064cf7f	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x52947f55	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6b8dda37	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x6c761af4	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7b05db96	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x7b9258f9	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9510f8f2	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x96d42da7	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x9f8b160a	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa0573655	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xa7aa22de	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb31a906f	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xba7e200e	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xba95a4bd	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc090f157	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xef6c2d5e	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf90c3bb8	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x06f081f9	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0744154e	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0ff3efac	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x164c6ecb	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2aeb3195	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x3837e490	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x52fac023	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6312e219	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x68790ba8	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x7081f571	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x7e10b447	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x96475af5	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9d54613f	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xa74fe593	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xabb97efc	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xac61c9cd	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xaddc446c	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xae1d7dea	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xbbf6379d	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xbd18f300	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc27ef5a8	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd4a588ae	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xd54e6cae	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xdf174ef7	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfe6f80cd	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x350b691f	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x8049680a	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0849153f	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x13a5e053	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x2655c476	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x33277a01	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x5feb13d7	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6b349d3f	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x81de0202	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x86d009fb	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x89b45ce1	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc0382533	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xcbb1a8e2	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdb54461e	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdccbb7b4	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xe37592ef	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf8598f67	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x04f68403	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x11f8a945	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x3e8b7c46	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x60c6e7ea	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x610c1fac	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x638f9524	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x73f36c9e	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x8b80b573	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xfad600ff	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1c74ba37	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2b65896f	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2f901a9c	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x307c6f3d	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3e645f25	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x43320d3c	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x448be1a6	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4652ea98	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x4e0b80b2	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x50d25b61	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x53b55936	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x559039bf	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5720ec4a	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x5d3b36f9	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6088354f	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62c21c0d	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x69070212	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x69373ea2	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x69db8266	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x72f4d8ce	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7bb4c4cd	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7f1db556	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x88edef33	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x89eed42d	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x92d71f5c	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9efde310	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa71d7d50	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xad708f50	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xae99418e	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb0fa2a0b	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb0fd9de2	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb446b1f7	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb4585aa0	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb950e792	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb9dd8900	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbcd88a4e	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc3d3b38a	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xc6306690	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xcea677c9	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe156e5aa	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe3a76f47	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe55aaa1b	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe9760a3a	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xec6a9495	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xee8a4ee5	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf6b1b2f1	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf850d551	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf9012f5a	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xfcee7747	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x03c97dc7	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x09406135	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1bb3bc09	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1e345d7b	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x23a36caf	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x28aee659	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x38f982bb	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x398a8d5d	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3b4c9539	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3c2afd5f	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3cc437c3	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4866eb56	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x49e8bfdd	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x51c53567	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x53980c3b	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x53acb001	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5564609d	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x599d0935	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x62f5260f	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6f8e6044	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x75832b8e	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x814ea5c0	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x826a68b4	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x829aea2e	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8e2585f8	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x981167fb	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9b66d4e1	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9d2aa4c4	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9e94eef7	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9fe83c88	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa27da13d	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa9b7fcec	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaa15a6f8	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xaac554d4	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xac02b77b	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb0b6cd25	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb3446c51	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb4dad00f	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbae1086d	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbb3eb6b7	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8d81552	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc8e63ccf	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcc1819c7	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcf72a0be	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcf9c6a22	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd7b8ce1e	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd87f02bf	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdce27649	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe10819ba	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe2c6c7ba	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe828423f	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe85e14d1	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe86cc827	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xfcf14668	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xff18f469	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x17ae0869	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x241e0366	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x2c922ab2	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x32fc8b19	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3c535ad2	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3f43148c	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4e659c50	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x523f1535	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x57cd689c	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x58d3b6f7	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5bcd755d	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5c0c8da0	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x605c9807	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x61f89a76	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x67277152	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x67be6753	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x69c2367c	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6e331f59	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6ea4d951	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x75039937	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8f11e55b	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x97b3661f	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9a10137b	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9ba253a2	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9f55752b	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa6a20b14	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa6ca7b85	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa717e32b	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xae46310f	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xaeccfa7d	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd2cfab45	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd34bb6ed	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd4848aba	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd8561593	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd98c31bd	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xda26fac1	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xda4d8e0a	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdc9af232	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdf241dbc	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe714b1ab	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xe933ff10	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf0f76f2e	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfb7feeff	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfbb624b5	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0343f892	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0ab6976e	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0b7b0878	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x10798b97	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x26209ce3	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x27af3dc3	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a8232dc	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x38f12545	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x38fe4e67	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3be52afd	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3c2628b6	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3d6ebe59	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3fb7e2a8	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x47b647cc	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4bb4d17c	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x50a309b3	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x519409a6	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x52b97e52	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5d9c354a	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5daa3795	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x62c9a3a4	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x63f445c4	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x63fc898d	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x64894b1e	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x65a6d263	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x690b2d72	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6c4dd1b2	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6cebf6b3	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6f2e8d04	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7408aa05	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x757b7b85	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x76ecb747	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a34f120	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7dea20f2	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x83e4bfc1	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x85b7a92a	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8a9e3607	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8ed2ad99	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x90ed6daa	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x957bf1ff	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9680e856	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x97a7eb29	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x97d90824	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa2cfeb3a	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa7864452	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9512a12	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb0455a7f	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb0bcea79	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb21913ae	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb41fb3f0	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xba4ebbaf	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbf762308	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbf7e37f6	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbf9080b8	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdae7ab70	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xddd8c1e9	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe2711e05	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe42ed5d4	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe5931a14	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe79dc399	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe80c72e6	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xec7a9e86	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xed02d9b9	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xed45f041	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xed4e69a7	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xedfef31c	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xee8bd429	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf00140b6	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf819f8cc	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf8404191	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfdde0c96	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x3449f7ab	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xae4e6081	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0xaf273de4	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x133b9a56	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x1d68ae80	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2d8a212f	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2e560272	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x5e3827ae	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x72527fb1	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7adb94c5	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x8e43b49d	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9a8b717f	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xad7e491b	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xbbaf55ee	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xc9502bab	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xe5f4479c	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x13724adb	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x258785c3	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x03795392	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x14da0fef	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x38924842	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x482023e5	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x580fa5fe	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x7ef13eb0	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8a9c1dba	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x92dbd86c	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xa5f206f9	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xbc223ca8	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd217c4fb	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xff924739	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x05b8cfda	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x0f655355	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x1742fbb5	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x48e7c76d	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x51f16cdb	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x5db187d0	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xabe36f8b	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x27e14228	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xd9b5c298	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e91ca97	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x367ce26a	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x7bda5e6d	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x821e9390	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xa75ff962	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc7f2440e	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x0e83ba66	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x46240bc1	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x5d621efd	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xba3cd4d1	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1064432a	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x78654af7	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x7b6e97d6	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c337c2	svga_wcrt_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c97d2a	svga_match_format
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x92faf7bf	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd72bd559	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdb856283	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xf4a3e87d	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x4095912f	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0xe0641e33	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x7952cc51	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x2aa2bb1f	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0x75dd54ef	mac_find_mode
+EXPORT_SYMBOL	 drivers/video/fbdev/macmodes 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x8ddad36d	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xa7f96c7b	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0xda3a6bd9	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x950ce106	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xd1363ec6	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xdf6ccbc0	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xfd58a975	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0x94903d5b	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0x118569e2	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x0d52634e	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x722b9378	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xb73c409e	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0xfe460212	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xad93579d	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xb835841b	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x3ff4ed9e	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x72082eed	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x727d94bb	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x9ce24e1a	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xddeea05c	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0xa6c0d014	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x01ea132e	dispc_runtime_put
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x03005606	omapdss_get_version
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x0439ff7f	omapdss_register_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x19445c23	dss_mgr_register_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x1b848f34	dss_mgr_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2538399f	omapdss_find_output_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3082a0b3	dss_feat_get_supported_color_modes
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3a50573f	dispc_ovl_check
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d36d54d	dispc_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4026bbf3	omap_dss_put_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x421ee7bb	dss_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x42912b0c	dispc_clear_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x45d74ef6	dispc_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4866da6a	dss_install_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x486b86d8	omapdss_register_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4bd67a8d	dispc_write_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4c33081d	omapdss_compat_uninit
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x51f87162	dss_mgr_disconnect
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x54f6830a	omapdss_get_default_display_name
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5689afe7	dispc_ovl_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x575f66cb	omap_dss_find_output_by_port_node
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x5f90028e	omap_dss_get_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x636b3461	omap_dss_get_num_overlays
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x66cdd3c9	dispc_mgr_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x6b1a3090	omap_dss_ntsc_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x70e39dae	dss_uninstall_mgr_ops
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8162c249	omapdss_find_mgr_from_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x827143a1	omap_dispc_unregister_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x87fdb051	dispc_mgr_go
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8d129809	omapdss_unregister_display
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8e9dda93	dss_mgr_enable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x8eb69a15	omap_dss_find_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x93148d6c	omap_dss_find_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x93963a85	dss_feat_get_num_mgrs
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x94c68a1a	omapdss_output_set_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x960a2c27	omap_dss_get_overlay
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x967cb4e8	dispc_ovl_set_channel_out
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x9eb4994c	dss_mgr_start_update
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa13d27f5	dispc_read_irqenable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xa4f6a175	dispc_mgr_get_sync_lost_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb0271041	omapdss_unregister_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb3ed5aa9	dispc_mgr_is_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb5a4c0c9	omap_dss_get_next_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb7f94a15	dispc_mgr_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xb826164a	dss_mgr_unregister_framedone_handler
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xba8ddcea	dispc_mgr_get_vsync_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbafeee36	dispc_runtime_get
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbd628983	omapdss_default_get_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xbe0d4752	omap_video_timings_to_videomode
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xc45105c3	dispc_mgr_go_busy
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xcc197296	omap_dispc_register_isr
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd1067ba7	dispc_ovl_enabled
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd70adbc1	videomode_to_omap_video_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xd8ed186b	omap_dss_pal_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdadcb87c	dss_mgr_disable
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xdb93b838	dispc_free_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xe0170b5a	dss_mgr_set_lcd_config
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xebe95099	omapdss_output_unset_device
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xee2bc2d0	omapdss_is_initialized
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xef3b2795	dispc_mgr_get_framedone_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf2c66595	omapdss_default_get_resolution
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4a7fc6d	omapdss_compat_init
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf4f63234	dispc_read_irqstatus
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf566d9c4	omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf74cbe95	omap_dss_get_overlay_manager
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xf9427374	dispc_request_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfa95d18f	dispc_ovl_setup
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfb7546be	omap_dss_get_output
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xfe40bf95	dss_feat_get_num_ovls
+EXPORT_SYMBOL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0xffd2cf99	omap_dss_get_num_overlay_managers
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0x3037658e	sis_malloc
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0xfe963115	sis_free
+EXPORT_SYMBOL	 drivers/video/vgastate 0x686de290	restore_vga
+EXPORT_SYMBOL	 drivers/video/vgastate 0xe7a2620e	save_vga
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x8ac0c98c	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0xef5542d2	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xb931e35f	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xe6e6d5be	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/wire 0x3a27a270	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0x81663ddb	w1_unregister_family
+EXPORT_SYMBOL	 drivers/w1/wire 0x85cc869c	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xda120803	w1_register_family
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x24a57459	bd70528_wdt_unlock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x72a089f9	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xd9b297c5	bd70528_wdt_set
+EXPORT_SYMBOL	 fs/fscache/fscache 0x02a2f697	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x053f00cb	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x059a00d2	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0x05b7dfbd	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0856bcfa	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0c67e1d2	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x13102247	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x16371ba3	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x170f3106	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x176eb12f	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x18cc0dbc	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x231072ad	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x29d07e1f	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2a810d3a	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2ec7ccbb	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3fdaee36	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x402fdddc	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x455d440e	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x564fe472	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5764f0be	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5c57ba1b	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7490b04d	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7fbd89c9	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x82bddfe5	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9217d033	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x92a2bcf1	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa23de6a6	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa90a6ca5	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xaa4cded6	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xad16f2c5	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb265b286	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb9071382	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd0436113	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd5a5a2e7	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe02176f0	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe5e2617a	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xef1b6dd7	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf8834700	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf8f156f7	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf9f87de9	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x3334ba71	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x6ede3744	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x742c2ee4	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x95569cca	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xd1286563	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xe81a3dc9	qtree_release_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0xa2048e95	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba95c5c0	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0x5a742e56	crc8
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x03f599c7	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0x4feade4b	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x56fc3ea0	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0x619ed575	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x7dca6389	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x84e0214b	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0xbbe7c23c	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0xc48fa976	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xc6e4cd46	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xca332dd9	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xcb990a55	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcea6747e	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xd212c9f0	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xeb13128b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0xf460a486	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0xf5ea5f5c	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0xf6acec20	lc_find
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x4cc636f2	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x765fd165	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xd02774b1	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x067fa594	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x13d24f16	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1de3f19a	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2a0fd0d0	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2eacbe22	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3281fb74	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3545701d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35bdc817	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x3b209a35	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x41e56a18	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x51022053	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x58f4c817	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x63230633	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6443babd	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66dbb4d2	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x6cbcd95e	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x71432c37	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x78431876	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7aba5c0b	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x7b51b66c	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x910096b6	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9e0ec162	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa9eb465f	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb7872388	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xba2ffeea	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc04b3f8c	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xcdfa135d	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd6205c02	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdac739f6	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf39e441c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf4cbffc3	ZSTD_flushStream
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x06907ec6	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x247bf741	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x640c4d71	lowpan_nhc_add
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x78aa6b0b	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x8d41947f	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xdac47988	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/802/p8022 0x1ee7fb7a	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xf759f6a5	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x0f684f88	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0xf6e86e90	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x00f80086	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x0cd84298	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0x0dbee9dd	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x179c7588	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x17ce70d5	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x1bb143a2	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x1cd0aa62	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x2145b058	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x22a05bbe	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x3a8aeb03	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d986cf9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x4560350f	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x47fac468	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x4dc3f02c	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x51df2b61	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x5f059d20	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x610dbcbf	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0x658326d4	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x71be42cd	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x7807c5d9	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x80bbc6fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x8dbd8f8a	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x94c3369e	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x95b89050	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x9b8d901c	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xa2322640	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xac2109a3	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0xaca915ca	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xad31a763	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xb0f82626	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xc0cc0397	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xc0ef20e0	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xc2a910d6	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xc68665a6	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xce88ac22	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd5daa7fb	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0xe37e3b44	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6470f78	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0xe6b1e55e	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xe8da9814	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xe8e5a6a4	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0xec8d11e1	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xf1ba7e34	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0xf2a95e0f	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0xf99104c1	p9_client_open
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x3b2540d2	alloc_ltalkdev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x66a5bfea	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x960873b1	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xfaf2d151	aarp_send_ddp
+EXPORT_SYMBOL	 net/atm/atm 0x0703977c	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x43cc29dd	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x4c8aec40	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x587b55b0	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x64f809d2	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0x6b9a3871	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0x6df68ac3	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x7f7f4c57	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x85fc83cb	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xc436b8f2	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0xc56aea01	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0xc9cb8964	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0xde523f51	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/atm/atm 0xf919173b	vcc_release_async
+EXPORT_SYMBOL	 net/ax25/ax25 0x12a38a5f	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x42c12377	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x46c03e51	ax25_ip_xmit
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x56d03c87	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xa4e4c2f8	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xa8eb2d3b	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd2f33077	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xdff60d2b	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x062ad362	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x06aaa787	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x080ed679	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1ae799c6	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x26b76fe2	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x2b1c7b5f	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x43a4e685	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x46a62549	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4b755908	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x57c284b2	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5c736434	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x60b67801	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6793bfa7	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x681aeee2	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x71814e45	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x783903cb	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7e428111	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7e8adbbf	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x83ab9f15	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8a6799c1	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8be26c05	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8e5bf8ae	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9638b2c4	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x965a97f6	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x994f5f31	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9dbacd9e	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xadac8025	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb599eaf3	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb6054b88	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb643ccb5	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb99ffcb1	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xc65ff66c	hci_register_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xce13837c	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd01df688	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd34aab79	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd78a2e60	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xded5cd78	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe236419a	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xedf31db9	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf3d6bb0e	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf70cd40d	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf875c896	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfbabe796	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfc1b7932	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x497bf5a9	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x7e98c3c5	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x9a93f488	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x9b3bf1dc	ebt_do_table
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x17f2e7ce	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x2f407d02	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x592152e3	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x8ba7879b	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xa961525a	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/can/can 0x06f494a1	can_proto_unregister
+EXPORT_SYMBOL	 net/can/can 0x1151794a	can_send
+EXPORT_SYMBOL	 net/can/can 0x40627dab	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0xb335f94c	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0xcf7b250a	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0xefd3fb7c	can_proto_register
+EXPORT_SYMBOL	 net/ceph/libceph 0x00243a5e	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x008a4be4	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x02930d3b	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x045e2020	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x057fdc2e	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x094cc64e	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a3c60e0	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0x10f84a28	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x125c4d4d	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x175cb49c	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x184206b5	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x18e20974	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x19242862	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0x1cba3f20	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x1d3a74dc	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x1e62c5f2	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x22f5b0ea	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0x273f2422	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x2759d100	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x27da4fb4	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x288fa113	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x28d8e2db	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x2f19bd42	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x3134623b	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x317ac0ee	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x31d4fac9	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x32ee018e	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x342d349f	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x3522979c	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x363dbd11	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x371679ab	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x373f5fbb	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x39073798	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d0f2a7c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d7b902b	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x41606f19	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x4230f9f6	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x45044d94	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x4649c138	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x47de1fd6	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x49a55125	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x4a320099	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x4ac4eba4	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x521027cd	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x55476da5	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x59392159	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5ca660e1	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d8ccea0	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5f87dbc1	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x5fb12913	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x6024fba8	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x6183be71	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x640f2557	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x644b6e50	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x67e680e9	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6edb8cb7	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5c5f84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f9946cd	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x711175a2	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x71d384c0	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x71e7a5fa	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x766355e6	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x776c0265	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x79416bfc	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x7afdcd27	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x80204ae1	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x8219e26f	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x83eb3184	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x843da88f	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ab63ebb	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x8b0329bc	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x8bd5050e	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x938b160b	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x95536f28	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x994c162f	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9d95a911	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fa24352	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa1f444ec	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xa28d0011	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xa2e6d7d8	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xa4498925	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xa4f47107	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xaaa8d565	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0xabe150b3	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xadcbd4a6	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb4748ab1	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xb9601447	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xba23e487	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb44173f	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xbdd8d184	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc20c8ca8	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xc6626ef7	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0xc9494f6c	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcdd10cac	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfb0d2dd	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0xd0739123	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd5de1433	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xd6a749b3	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xda0f95bf	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xda3653da	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xdb70c544	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd211f56	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2033250	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xe2da5dea	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xe3e2b138	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe620b37f	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xe79f0f3f	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe9bc1cc8	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xefc536ef	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xf166ddef	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xf562aab7	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xf5e78193	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa3bde63	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0xfa62d9cb	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xff8c5f0f	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x60ce0e5f	dccp_req_err
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0xd18bd270	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xaaef6b52	dsa_port_vid_del
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xea55a9c2	dsa_port_vid_add
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x047a4bd3	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x17088208	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x60725613	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7c7f58c7	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x84fde8ab	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x85548d00	wpan_phy_new
+EXPORT_SYMBOL	 net/ipv4/fou 0x19741ae4	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x5d9ea4e2	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xe3814464	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xff1adff3	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xe2e23bd0	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x5adbaa1c	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x895012fd	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xb27f77ac	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xbbe8a44d	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x6247abe7	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xa95a04bf	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xb9b16f02	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xc5d110ef	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x34968646	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xca009b80	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xde1fd879	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x038ce0a6	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x4e8e575f	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0x0af7927b	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x0257d12c	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x270dbacf	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x4df1d7aa	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x550a723f	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x6dd38707	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7b75cdf7	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x95e018e9	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x9cc495cf	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xfdc4bb6d	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x2ff78e7a	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x55077071	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x57ad8a53	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xb6a4af73	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xee5b7db4	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x77e87585	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xdb58b1d6	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x82eab477	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x83e91a17	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0x786c1d03	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x0845feb3	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x09183493	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x0a2554a6	lapb_setparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x21a3fe6a	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x55966c2a	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x6e5f9a7b	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0x8c48301d	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0x8d015540	lapb_unregister
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x4c039cd9	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x5a154737	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0x5d60e7a0	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x631add52	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x6a46285d	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0x99232886	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xcf61bcfc	llc_sap_open
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x00d97f33	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0162f785	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x02835fc1	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x02fc5fad	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x039eb76e	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x047f3796	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0814e66d	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x08e7f5d5	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0b0d5cb4	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0b67fa09	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0e6b0fdd	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x11e74b60	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x13f76389	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x14142999	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x16565bbf	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1749862e	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1786b46b	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1b873c23	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1d76d6dc	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2a5cac53	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2c9cae41	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x34b056c7	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x387b616b	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3c3d634b	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3c5e0619	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4196b533	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x44b6afc9	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4914cc0b	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b3b7598	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4c3c0463	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x50481b8e	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5468a115	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5a2fcf9d	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x65087866	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x658ee4e4	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x671385d5	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x674d4128	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x67d474a7	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x68bd7f75	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x69c0c23a	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6b6cfa85	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x70307d49	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x746f41c5	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x77e4d034	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x783dbdae	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7b1ebc99	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x80bc1839	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8c61e5ee	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8e444c35	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8fed6bb2	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x90b5be54	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9174537e	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9192ccd8	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9333363c	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9468dedd	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x94b9e07c	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x950f5e05	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x98c18711	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9b7b8e9e	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9fa57dad	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa07699f6	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa6d06259	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa94eb251	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa9a755b7	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa9e32102	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac109f7c	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xac90cba1	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xad6ab259	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb0c1e0cc	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb2e6bec1	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb3c9935c	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb7a71bd9	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb7e05725	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbdaa42e1	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbed6f9be	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc27f2946	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc72d0f39	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc87d399b	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc980e332	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcd33693a	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcf3e7e8f	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd09c1259	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd29ea6a3	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd780fc82	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdc975781	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe8d62ba9	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xef7c3466	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf0d7d3b1	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf2fb2717	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf486fd72	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf7f65b1f	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfbaf88fa	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x21a833c2	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x391cad8a	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x39bbb8ca	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x7abaefcb	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xa0781450	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xc48baa5e	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xeed637ad	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf4c3404f	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x17f60e77	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x1807d327	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x431f520e	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x587e2844	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5b016952	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8d2c1bfc	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9290e54d	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9593664a	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9e53e916	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xad992598	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbe0dedf6	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xcfffe04b	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd19f8c7c	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd4ec2a72	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xf9fda249	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x18f65776	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x5dc80116	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x29da4976	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x6b90c081	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xab7de05e	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xbfcc8eba	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xc785049a	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x53f47ef9	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x6244a44b	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7dd501f8	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x81d1af67	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa4734f89	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xb200e629	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc16620c6	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xce9308d8	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd3a6dcf4	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0d9344c4	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3506793d	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3d3e03c0	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x46efb7b9	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x520d1ece	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x59604b66	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5961b97b	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x734ec0c0	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x7ad0f462	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa595336f	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xadd43fcb	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xadf200ac	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb2f8576e	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb7404c0e	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xb949d5ca	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xd68662ba	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xec2a8f19	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf6d08ab0	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf7bdae55	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xf85f4cd1	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xfd55959c	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x011e018b	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0be1629d	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0cbebaf1	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x11b7dc99	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1c9ee4c4	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x27336d18	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x27c4ae78	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3189c0e8	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x37b8e934	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x48bb29af	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5059cc58	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x5febce68	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6752e7f7	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7564216d	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8aebd57b	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x917e043c	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x967de58b	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9e39841c	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9e8ca8a9	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa72ef87c	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xbc4fbd2f	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xbfb7f6e4	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xc3f3176b	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe31f385e	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf110e9e7	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xf1772cac	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfab47553	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfc2ab40b	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xfdaf9f4c	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x05154f73	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0x0986a63a	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x0a30e481	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x161936af	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x161e33cf	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x18e89231	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0x23f92e7c	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x334d67fd	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x40e15180	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x73b2919b	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x75ddc294	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc 0x843ad950	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0x86a6f74b	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0xa67a7163	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0xa859305d	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xaf3e59e7	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xbb44dcfd	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0xbb8b2c01	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xd2c5ea78	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0xd3e0c5dc	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xd6e3f9da	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0xd85f7314	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0xe82f0f53	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0xe975c03b	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0xf46da370	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x457c42d1	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x55a6c848	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x8ada84f6	nfc_digital_register_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xf219e6b1	nfc_digital_free_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x47a9d647	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0x56698588	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xaf453a00	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0xafc95442	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xb3626a54	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0xdf5db421	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xeb79ca53	phonet_proto_register
+EXPORT_SYMBOL	 net/phonet/phonet 0xf4fdd186	pn_sock_hash
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x006817e6	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x049f2522	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x16dd381b	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x1d112a10	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x39ffe8f6	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4ba77b51	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x4d75d6b7	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x638c7f6b	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x6f260920	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x726b7ba3	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8bbcc386	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x986df260	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xa58a379b	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd6e8a10e	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xeb311dff	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf3c2f239	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xf552aa0a	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/sctp/sctp 0x74bf0eb5	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x0f8f3958	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x4196e0b4	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xd0cc81f5	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x86246945	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xeca63d6e	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xf00c7265	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x0796b47c	tipc_dump_start
+EXPORT_SYMBOL	 net/tipc/tipc 0x2e920169	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0xdd7493e6	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0xff40a6e7	tipc_dump_done
+EXPORT_SYMBOL	 net/tls/tls 0x2cff060e	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0x85b0998c	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0xe384ae1f	tls_get_record
+EXPORT_SYMBOL	 net/wimax/wimax 0x3d1f94fe	wimax_rfkill
+EXPORT_SYMBOL	 net/wimax/wimax 0xb15f6e8f	wimax_reset
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0157607c	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x02af78c8	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0323d684	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x039f97da	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x06a72b2b	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09b2ac33	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x109b5a1d	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x115d20aa	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x12cef92b	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1588276e	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1b48af61	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x21e1f0df	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x23856783	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x23cf40de	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x23d70e8d	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x24dfee3c	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x278a2e5d	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x291c7990	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x29ed82d8	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2cbf904d	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x32c95f08	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x33f3409b	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38951246	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x38cb594a	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3e6cbec5	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3e73e232	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3eaf3316	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3f9c1969	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x50ed20bc	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5293047d	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x59e5ae42	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5da3fb96	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5f224017	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5fc33404	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5fcaba20	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x63434fe5	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x67655c2e	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6c779494	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7266d78f	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x75eb411f	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x76db3f54	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x76e269ad	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78e69396	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x82979258	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x83ad948f	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a353951	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8ad03488	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8b24e88f	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8d64dc7f	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8d8d9d89	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x910f2c11	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x92a7a7db	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x96fdf76a	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x989e1deb	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9c7e7984	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9ca3cf99	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f370a56	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa5cd92cb	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa728a1d4	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa73050fa	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaaab7603	wiphy_free
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xab9b5df7	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xae5a4510	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaedeae81	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb130685b	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb4e47ecc	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb7246a3e	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb9ef6ac5	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbae1b6c6	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbce9fdcc	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8a008e0	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc8ead852	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc97d6c99	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce2cd295	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce4f7c38	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcecce928	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcfd42377	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd198b431	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd26b5ddd	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd417eec8	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd637a753	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd7f6f362	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xde794ccc	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdf6d7f5e	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe135738e	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe15015ef	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe2be145f	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe61761bc	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe822adb1	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe8606fff	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xeed87524	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf1ddbce7	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf7035415	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfa0286f0	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfbcb2fd7	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd173e2b	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/lib80211 0x1c22850d	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x3a8f9e65	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x47bb2464	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0x7e100736	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x950f080b	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0xfe286041	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x04a9ff36	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x80ace315	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb2b9e7aa	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xd93bafc7	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xff187b1e	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1724fb56	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x17fcf66b	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x1cff6e14	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2f853c43	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5f7f98	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x56efbc6b	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xdaf3383a	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0xda4938dc	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x068471d9	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x0fd37b1b	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x32a14c36	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x4dc5e3e5	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x5342a0fb	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x63ae87e3	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x67037a4b	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x68c72107	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x6a08c56f	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x760fa915	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x83d4e585	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x863a70aa	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x8a056c9d	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa9290909	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xab9b4a0e	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xbe4758de	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc46dd2da	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc8e2489d	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd69b7e67	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xd7fc1988	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xe27997a0	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x490a4702	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6b273e7d	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x008cd65f	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x50cda0fa	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5921eea2	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x59e9a079	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x7ac164b1	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x8ffaea70	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xb7b3fdd3	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd2eb65d2	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xe613caa2	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x1f7f4677	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x2019e190	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x8b95f40c	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x9e02f5d8	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xa0c9ab37	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xb782dda8	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xc130a7a7	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xd2565349	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf7a310bc	snd_vx_create
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x036c1bb1	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08156621	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x0ae52796	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1a2e2857	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1fcd9c04	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x22d47033	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x3987deff	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53475e82	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5a7b4faf	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x6a38ce9d	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x792c5948	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x872372ae	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x92e6a35b	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x943c9697	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9e3b92cd	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa7b7b59e	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xa82b2a6e	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xac9a75c7	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb1c8b50a	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb3a84b0f	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb3edfdc7	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb652560b	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xba119bed	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xbd2650c8	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc069a670	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc19e7ce3	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc5c33646	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd203af8f	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd56521f2	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xdd55154d	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe14ee1ce	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xede63e5f	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x54163144	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xed8fcb05	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x434ec6fb	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x5e0f9f36	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x79e2b015	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x888ffd5a	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x94883fb0	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xaf812f3a	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xcc6d78b6	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xed76ccc4	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x1cb4293a	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x4fbde09f	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x88eef625	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xb2b032a3	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x97328a22	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xfa53bf07	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x0b2c6456	snd_cs8427_iec958_pcm
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0x9425b753	snd_cs8427_iec958_active
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xa371d007	snd_cs8427_iec958_build
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xb5e92e5f	snd_cs8427_reg_write
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xf61f86c5	snd_cs8427_create
+EXPORT_SYMBOL	 sound/i2c/snd-cs8427 0xfa886426	snd_cs8427_init
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x379953b1	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xb4642bb6	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xc4c923c5	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xddbe8fe0	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xeb8e16f2	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xfba716be	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x20394ea3	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2b85bf03	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3cf49a15	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x53dcc1bc	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7acd88af	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x7e54e45c	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x85fc16a7	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa5e78e2f	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xb1c6e8c2	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xbd7947ec	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc008ec41	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd02ae8ff	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd0f0c06e	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xda6dfdb7	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xea2b4e3f	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf6672548	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xff0e21f3	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x28502a2e	snd_emu10k1_synth_free
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x33e3a67f	snd_emu10k1_synth_bzero
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x47ef084c	snd_emu10k1_voice_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x88cee986	snd_emu10k1_ptr_read
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x8a08f5b6	snd_emu10k1_synth_alloc
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0x962f9a4c	snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xad865056	snd_emu10k1_memblk_map
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xb8ef817a	snd_emu10k1_ptr_write
+EXPORT_SYMBOL	 sound/pci/emu10k1/snd-emu10k1 0xd1a6a515	snd_emu10k1_voice_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4e842e27	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x69515771	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x919427ca	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1ed683e3	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x34c1ee3f	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3bb908a5	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x57abf21a	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x66014b5f	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6607d86f	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x6f084aef	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x861e02b6	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa4a5131b	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xa97e25ad	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb1283c2a	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb747de1a	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xbed5ae4d	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xc2fe93da	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xc8cbd32b	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xcecf050a	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xd9d6a1e6	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdf3054b7	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xed4b55d8	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xeee58bb3	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xefadc373	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x75c954f9	snd_trident_write_voice_regs
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x7b29a23f	snd_trident_start_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x83c30fae	snd_trident_free_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0x8b94307a	snd_trident_alloc_voice
+EXPORT_SYMBOL	 sound/pci/trident/snd-trident 0xe0fd0bd7	snd_trident_stop_voice
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x3997355d	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0xb21ca8d2	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xd38feb25	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xdcfa0a64	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x33d03cda	aic32x4_remove
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x3ccb4e33	aic32x4_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0xe69d2c1c	aic32x4_regmap_config
+EXPORT_SYMBOL	 sound/soc/qcom/snd-soc-qcom-common 0x4a3625cc	qcom_snd_parse_of
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x00ad1977	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x027b0727	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0591f0b5	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x09f7aa41	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x107c751c	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1339f6e4	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x18853ac1	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1c367bdd	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x1c3dee6e	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x2009b90b	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x23d16cfa	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x29264ac5	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x34fd3ddd	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x355fa66e	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3b086741	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4a3a0f4f	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x53be5a90	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5f395b8f	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x674692fe	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6a94e91a	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6d521a8b	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7371a891	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x76a70b06	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8220fc7a	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x82bade4c	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x867c850c	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x86f6e4e6	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8a4ba747	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8b57c0ec	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x98612356	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x99ecb571	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9d5f346a	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9dc93ff1	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xad055b2c	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb929977a	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbc167bd1	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbe976fc1	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xce6bacab	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd10c9697	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd25644ad	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd2964619	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xddf27479	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe5a2994c	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf7da4da1	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf92b63fc	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfe36d38d	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfe650561	sof_mailbox_write
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x32851ee5	snd_emux_free
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x4e834962	snd_emux_register
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x4ffb6a4b	snd_emux_terminate_all
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x5cd9f86b	snd_emux_new
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0x655cb202	snd_sf_linear_to_log
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xd5a50171	snd_emux_unlock_voice
+EXPORT_SYMBOL	 sound/synth/emux/snd-emux-synth 0xeb762f3d	snd_emux_lock_voice
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x44db6e41	snd_util_memhdr_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x801ce873	__snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x97b7ac12	snd_util_mem_alloc
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0x9f632a2c	snd_util_mem_avail
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xbc531e15	__snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xbe2c305c	__snd_util_memblk_new
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xc0f9c9ea	snd_util_mem_free
+EXPORT_SYMBOL	 sound/synth/snd-util-mem 0xd7295068	snd_util_memhdr_free
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xa69110e3	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0017e2bc	sget
+EXPORT_SYMBOL	 vmlinux 0x0037a798	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0x003d708a	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x003f81ac	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x005580dc	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x007e438b	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x00841954	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0x009d36da	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x009f7bee	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x00cd9a14	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00e6718a	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL	 vmlinux 0x0113ee3b	has_capability
+EXPORT_SYMBOL	 vmlinux 0x011a9e53	elf_hwcap2
+EXPORT_SYMBOL	 vmlinux 0x012c7bc6	of_get_min_tck
+EXPORT_SYMBOL	 vmlinux 0x014353ca	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x01569727	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017cd253	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x0180e635	iunique
+EXPORT_SYMBOL	 vmlinux 0x01830813	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188b017	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x0191a3ab	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x01934f7b	padata_start
+EXPORT_SYMBOL	 vmlinux 0x01a3d310	omap_set_dma_channel_mode
+EXPORT_SYMBOL	 vmlinux 0x01b71cdc	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01c72108	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x01c9d076	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x01cfed33	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x01d52ca4	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x01f792b6	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0x01f93169	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x01f97dfa	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020b954f	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL	 vmlinux 0x02404e50	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0x0240a8c8	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x025120ec	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x025fd6f4	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x026b04fc	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x026ebcd0	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0x0272b4e9	clkdev_drop
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x0275932d	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x0279cbf6	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02ad375b	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x02c2b4e5	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x02df50b0	jiffies
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x02fe3def	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x030049e7	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0x03042f89	logfc
+EXPORT_SYMBOL	 vmlinux 0x0334795d	icst307_s2div
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x03798b12	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0383d54e	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03b8ded8	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x03ba39b0	v7_flush_user_cache_all
+EXPORT_SYMBOL	 vmlinux 0x03c02ab4	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x03d1ad71	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x03d85675	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x03e2e136	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x03fb964c	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x042525bc	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044fb722	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x045d9d3e	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x04610e4e	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x04622804	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x046c7b97	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x047fd2f5	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x048c1529	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x04925f96	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x04a707dd	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x04b7fde8	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x04bb7a7a	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x04c6b4c3	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 vmlinux 0x04d69350	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x04de016a	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x0507fffb	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x0508088e	ucs2_strnlen
+EXPORT_SYMBOL	 vmlinux 0x050877b9	dmi_first_match
+EXPORT_SYMBOL	 vmlinux 0x05109cb7	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x0545b9d2	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0x056956be	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x058a420a	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x0594912f	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x05ab6caf	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x05b0caa0	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05ca18a2	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x05cd617e	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x05d92872	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x05e13eb9	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x05fdf785	fd_install
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x0620a028	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x06296152	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x065b550a	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0x06619a26	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x06706ec2	dump_align
+EXPORT_SYMBOL	 vmlinux 0x06724b38	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x06759580	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x067a38d7	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x067ea780	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x0696154c	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0x069eaa40	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0x06a53424	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x06b450ae	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x06b67126	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x06c0146f	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x06c427c0	can_nice
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06f4504e	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x072abc6f	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0x072befb7	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x073e23e1	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x075a2c33	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x0769adc5	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x077af67c	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x077d06f7	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x078300d3	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0x078d4093	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x0799992d	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0x079a19a7	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x079cca5d	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07bf4084	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07e0f1ed	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x07e2c085	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x07e4c861	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x07edcf4f	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x0814b2ef	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0x0815356f	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x08199197	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x081f8343	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c2f60	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x0835bb9b	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0x083cee1b	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x0851b2ef	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x08579ed9	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x0857a308	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x08690bbf	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x0884dc87	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x0886340b	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x08883515	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x089bbc09	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0x08c4fd32	omap_disable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x08e17da8	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x08e39398	cmd_db_read_addr
+EXPORT_SYMBOL	 vmlinux 0x08ea43ca	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x08fec415	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x091b587e	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x091ee8e3	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x09222396	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x09324607	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x093a246e	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x093a9ca7	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x09407801	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x09477b4a	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x0957b4f1	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x0957dc36	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0x09758911	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x0986d96e	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09938fb3	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x099c2da4	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x09a7534c	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x09ad85a1	sort_r
+EXPORT_SYMBOL	 vmlinux 0x09b4c976	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x09c416aa	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09cb6d21	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x09ce8da8	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09e69992	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x09ea28e3	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a0ad410	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x0a20d621	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2d8a46	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL	 vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0x0a492e5b	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x0a63dc87	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x0a6b62d8	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x0a6db712	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0x0a759a41	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x0a77ff31	seq_open
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aa92814	key_validate
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ae0f340	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x0ae547ed	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x0af9c3a5	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x0b0f5b9a	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x0b18d0ad	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x0b1b939e	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b1c7803	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x0b22e520	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0x0b26dbd3	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x0b40d7cf	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0x0b5752f9	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x0b617520	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x0b6ad89d	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b790123	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0x0b7b81d6	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x0b98e1b7	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0x0bab33a1	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x0bbefb29	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bc683c6	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x0bd45b17	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x0bd86c73	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x0c08573b	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x0c15514a	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x0c23f285	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c2bc151	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x0c36900e	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x0c47d689	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x0c5350b0	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c8e2a70	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x0c8f6a66	drop_super
+EXPORT_SYMBOL	 vmlinux 0x0ca54fee	_test_and_set_bit
+EXPORT_SYMBOL	 vmlinux 0x0ca7762d	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x0ca8fd95	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cd7e302	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 vmlinux 0x0cf58f60	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d144af0	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0x0d1f3640	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x0d2c4f46	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x0d359f8f	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x0d3b1a78	follow_down
+EXPORT_SYMBOL	 vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d594ea3	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d7b57c6	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x0da94ee1	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x0dba2f42	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x0dba5e9a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x0dbc0367	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x0dc1a78c	bin2hex
+EXPORT_SYMBOL	 vmlinux 0x0dd42595	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x0ddcc111	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0x0def3436	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x0e07d7e6	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1c8804	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0e4b363f	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x0e51dd84	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x0e686a90	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0ed3edec	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x0edcf2c0	seq_path
+EXPORT_SYMBOL	 vmlinux 0x0eea0399	strscpy
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f17f027	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x0f2708e3	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x0f29c528	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x0f3ef2e2	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0x0f578bb9	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x0f667d1e	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0fa108c8	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0fa2886c	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fbb15ec	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fdad32a	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x10018cb0	__pv_offset
+EXPORT_SYMBOL	 vmlinux 0x101e4b45	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x1021a41c	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x10559f94	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x1062fa22	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x106f13ab	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x10739f1e	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x1085d5ee	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x108bd96f	d_delete
+EXPORT_SYMBOL	 vmlinux 0x10962770	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x10aa8df4	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x10ade0c1	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x10b5b24b	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x10b6acd4	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c792aa	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x10cf23fb	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10f8772b	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x1125ecf8	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x1134c077	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x119b50e7	elf_check_arch
+EXPORT_SYMBOL	 vmlinux 0x11a82cd1	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x11c1298d	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x11c1cb23	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x11c25023	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x11c9d17f	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11ef680c	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x11fecbf6	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x12023ae3	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x121b86e3	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0x123ac0fa	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0x123f2d79	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x12591620	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x1263576a	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0x12827367	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x12830a65	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0x1291242a	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0x12a2a558	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12b19585	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12cb04a2	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x12cd7b71	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x12da3409	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x12f19edf	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12faab89	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x131dcdd0	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x1330f2a1	__sock_create
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x139ff218	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13d9a490	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL	 vmlinux 0x13f7bbfd	dqput
+EXPORT_SYMBOL	 vmlinux 0x1400d797	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0x14233c96	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x14353b0d	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x144c2515	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x145b4568	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x146d5236	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x1473c448	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x14799176	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x1486978a	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14b17659	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0x14ba06cc	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x14bc17f8	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0x14bffe1e	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x14c72e8a	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL	 vmlinux 0x14f0b14e	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x1516917e	pps_event
+EXPORT_SYMBOL	 vmlinux 0x151bc0bb	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x153670d3	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x15400ddd	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x155c5832	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x15b411bb	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x15b4e1dd	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15d433c0	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x15df0a2c	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x15fff040	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x162a1554	mtd_concat_destroy
+EXPORT_SYMBOL	 vmlinux 0x16317866	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x163becd7	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x16525cc4	xa_find
+EXPORT_SYMBOL	 vmlinux 0x1653499e	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x1665cb57	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x16673543	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0x169a2048	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x16c9f666	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x16ce2eaf	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16f74f23	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x172d060d	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x1738c19e	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x17485fe9	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x174c92ce	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x175f85d0	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x1773d1bc	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x17867914	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x178d9a9e	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x17a7aa1d	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x17b6b8cd	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x17f0b07e	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x17fceeeb	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x180067b2	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x18373295	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x183cfb49	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0x1854fd1e	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x1872d91a	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x188868a2	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x189c5980	arm_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18f88883	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x1902355c	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0x191054b1	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0x1912be44	clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x19242e38	efi
+EXPORT_SYMBOL	 vmlinux 0x19282374	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x193c56f8	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x194f5554	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x195ad943	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x195d4ac9	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x19666ad3	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x19702ce1	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x197dc3b3	omap_set_dma_src_burst_mode
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 vmlinux 0x1988f0b2	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c066bc	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0x19c4e974	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x19ca663a	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x19d25f35	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x19d26661	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x19e9a5af	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x19f98013	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0x1a19671c	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x1a1ec3ad	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x1a21d691	__ksize
+EXPORT_SYMBOL	 vmlinux 0x1a38d672	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL	 vmlinux 0x1a7590b4	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x1a7bc9ef	xxh32
+EXPORT_SYMBOL	 vmlinux 0x1a7fa459	tso_start
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a96bde6	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa86d18	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x1aca3689	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x1ad11a32	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x1ad1f2e7	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0x1aded990	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x1aea166f	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x1afd5ca8	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b0be3a8	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x1b12c86f	file_modified
+EXPORT_SYMBOL	 vmlinux 0x1b2502ac	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x1b25f187	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x1b2b4045	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x1b448f20	nand_scan_with_ids
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b791c07	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x1b7ef1a3	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x1b94d4e0	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x1bb667ae	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x1bbb8cb7	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x1bcd281b	inet6_release
+EXPORT_SYMBOL	 vmlinux 0x1bd700bc	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x1c3e475b	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x1c409d62	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x1c48cc75	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x1c498d57	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x1c4da433	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x1c52b816	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x1c5e3878	icst525_idx2s
+EXPORT_SYMBOL	 vmlinux 0x1c777c5c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x1c7fc438	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x1c881449	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0x1c9025eb	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x1c92cc7c	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0x1c95f095	amba_release_regions
+EXPORT_SYMBOL	 vmlinux 0x1c9c5b4d	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x1caf4c2b	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cb44055	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x1cc0d330	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x1cd7c99d	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x1cee7d21	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x1cf885bc	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 vmlinux 0x1d04bd30	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d37eeed	ioremap
+EXPORT_SYMBOL	 vmlinux 0x1d4804f0	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x1d4faf77	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x1d5c2ff0	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x1d78e7d2	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x1d7959b7	snd_pcm_hw_refine
+EXPORT_SYMBOL	 vmlinux 0x1d8a2c13	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x1d9e850b	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x1da717b0	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x1dc711fd	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1ddda84b	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x1de67f9b	qcom_scm_io_writel
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e137d1b	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x1e184705	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e1fc125	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x1e227e0e	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x1e5284e4	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e770270	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x1e8094d9	key_put
+EXPORT_SYMBOL	 vmlinux 0x1e832dd7	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x1e95f781	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x1e96f43d	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eb11e52	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x1eb64646	div64_s64
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1efab6d6	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x1f01a3b3	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x1f03fa65	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x1f0f0e3c	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x1f3da8e8	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x1f4f9b39	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x1f58b867	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x1f6ec9d9	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x1f90a85c	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x1f941d48	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0x1f96e22b	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x1f96ebb9	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc20381	may_umount
+EXPORT_SYMBOL	 vmlinux 0x1fc43d20	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd09848	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x1fddef46	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x1fff3a63	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200036a3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x20070ea2	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x200d4878	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x2018c2d5	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x205195ed	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x207d7cc8	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x20846110	down_killable
+EXPORT_SYMBOL	 vmlinux 0x20888701	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x2094d79f	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20a7b10c	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0x20b02448	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x20d45ab7	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20e2af51	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x20f30f9e	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x20f6dc00	arp_create
+EXPORT_SYMBOL	 vmlinux 0x21110dbf	mmioset
+EXPORT_SYMBOL	 vmlinux 0x21123780	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL	 vmlinux 0x2115261f	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x21159daf	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x212133db	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0x2128695a	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x212ef4bf	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x21453a7a	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x215adc81	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0x216d759a	mmiocpy
+EXPORT_SYMBOL	 vmlinux 0x2171d2ce	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2197aeb5	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x2198569a	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x219bd32b	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x21b1eee6	sk_free
+EXPORT_SYMBOL	 vmlinux 0x21b93c77	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x21bc8f5d	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e201b3	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x21f49bca	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x21f530f2	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x2211fc4c	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x222d8932	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x224bbdd4	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0x2250580d	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x225e17f9	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x226657c3	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0x226f7482	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x228cfe10	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x22921681	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0x229499b1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x229f243e	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x22a1a11e	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22c546c0	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0x22c9c8c2	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0x22ccbe55	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0x23054cdc	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x23200ac6	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0x23301058	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x2331c795	sock_register
+EXPORT_SYMBOL	 vmlinux 0x2343834f	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x2349af4c	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x234a6a3d	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x23619091	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x23619cff	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x236e513a	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x23b6af4e	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23bbdeed	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x23bfc754	kunmap_high
+EXPORT_SYMBOL	 vmlinux 0x23ebbdc4	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x23eea787	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x23f9c5ce	xps_needed
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x240df58f	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x243267b7	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x244ac63b	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x24541de4	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0x245589c7	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x245fd493	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x246790df	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x246ea205	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x247e06cc	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0x2487e0fa	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x248ebcc4	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 vmlinux 0x24b97378	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24e41315	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x24e7549e	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x24e9b811	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x24f7db9e	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x24f9df16	snd_info_create_card_entry
+EXPORT_SYMBOL	 vmlinux 0x250113b4	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x25029731	finish_swait
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x2529cef0	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x25411424	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x25453eee	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x25460c43	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x254d9c52	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0x254df6cf	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x257ae45c	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x257f58f7	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x2595177f	snd_card_free_when_closed
+EXPORT_SYMBOL	 vmlinux 0x259e020f	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x25a428c5	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x2600eb2e	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x260e5957	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x2632549b	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x263811e0	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263d9da8	clkdev_hw_alloc
+EXPORT_SYMBOL	 vmlinux 0x264bd851	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x268a1033	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x268c749e	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x2690e6c1	_find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0x2693c30e	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x26b089f0	msm_pinctrl_remove
+EXPORT_SYMBOL	 vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0x26c7c387	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x26cb434d	devm_clk_get
+EXPORT_SYMBOL	 vmlinux 0x26ee8eab	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x270b1412	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273968be	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x273b3363	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x273e866b	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275d1ace	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x278ae00a	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x278afb45	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x279401e3	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x279ccee4	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x279e356c	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0x27b69a2d	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c68705	node_states
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27e2fa1b	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x27f9000d	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x27f9d924	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x285496a2	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x285990e5	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x2873cf13	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x2878e15a	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x288940d0	register_mtd_chip_driver
+EXPORT_SYMBOL	 vmlinux 0x28aafa3e	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0x28da2a55	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0x28daf68c	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x28e80c37	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x28fd069e	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x2919c201	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0x291a844a	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x291f6be8	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x29291c85	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0x2936fab5	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x295d0710	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x2976ac3c	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x29819e07	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x29872e02	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x29878712	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0x2987f949	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x299e4856	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x29a47fe9	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x29ae4d0c	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x29cea76c	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x29d9f26e	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x29dc4a29	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x29e92740	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0x29f74928	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x2a05333e	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0x2a13d748	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a3aa678	_test_and_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x2a3d2d6e	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x2a99d312	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x2aa1505a	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0x2aaff321	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x2ac12fb8	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x2ac83a15	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x2acfa402	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2adc1ee0	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x2ae10c48	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x2af9a4db	snd_timer_global_register
+EXPORT_SYMBOL	 vmlinux 0x2b003245	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x2b066020	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x2b253581	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x2b3060fc	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x2b588d52	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x2b5ab97d	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b739398	cros_ec_check_result
+EXPORT_SYMBOL	 vmlinux 0x2b75bd5f	nand_read_page_raw
+EXPORT_SYMBOL	 vmlinux 0x2b9928fa	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x2b99722a	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x2b9c7db3	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba18feb	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x2baa1644	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x2bb33077	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0x2bbcbae6	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x2bbfb12f	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x2bc58b3d	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x2bed5fdc	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x2bff5887	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x2c02d2ff	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x2c07273f	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x2c14323a	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x2c18945c	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x2c1d1621	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c2c7bff	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x2c398b04	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x2c4e7d0f	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0x2c4fb69f	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x2c507158	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0x2c6b6974	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x2c72472a	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x2c7c72cb	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x2c7c8e9a	pcibios_min_mem
+EXPORT_SYMBOL	 vmlinux 0x2c7ff0c6	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x2c81ec75	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c8b7dc0	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x2c90a8f8	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x2c982634	snd_jack_new
+EXPORT_SYMBOL	 vmlinux 0x2c9d3756	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x2cb0336a	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x2cb04086	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x2cf81e13	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0x2cfde9a2	warn_slowpath_fmt
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d2337d9	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d38f060	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d3a3235	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x2d3b3c0a	skb_put
+EXPORT_SYMBOL	 vmlinux 0x2d3f815b	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d51a34e	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x2d561ba4	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x2d6fcc06	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x2d785797	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x2d912bca	dmi_get_bios_year
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2da81bff	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x2db15732	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0x2dcb3eb2	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x2ddbe3a1	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x2dec67cd	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x2df0c3c9	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x2e0881d1	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1bd509	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x2e1ca751	clk_put
+EXPORT_SYMBOL	 vmlinux 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 vmlinux 0x2e49c7f2	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x2e51f58a	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x2e670e1e	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x2e7a820f	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x2eb57b87	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2edf5af1	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x2ee7710a	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f11a963	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x2f1260b4	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x2f12eddc	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x2f1b0d62	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2f1cc499	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x2f2a1597	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f38a335	devm_clk_put
+EXPORT_SYMBOL	 vmlinux 0x2f4b97b0	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0x2f50cbf5	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f5b0fdb	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0x2f6769df	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0x2f6b87da	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x2f6ea6d2	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x2f70abd1	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f7c4917	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x2f89731c	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x2f91ce7f	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0x2f97d372	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x2f9e092f	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x2fac8047	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x2fc0bc61	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x2fc11002	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x2fcf019d	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x300cdcb4	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x3012a371	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x30275bfb	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x3031199c	input_close_device
+EXPORT_SYMBOL	 vmlinux 0x3037cc39	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x304afb67	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x307a34a3	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x308174b4	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a365f3	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30d9a471	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x30de7019	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x30e5d173	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30f5f6af	console_start
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310917fe	sort
+EXPORT_SYMBOL	 vmlinux 0x3120afa6	nand_read_oob_std
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x31371b34	__d_drop
+EXPORT_SYMBOL	 vmlinux 0x313f85f3	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314b20c8	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x314bfba1	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x315c9d83	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x315f5172	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3186cefe	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x31891e4c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x318f673a	_snd_ctl_add_slave
+EXPORT_SYMBOL	 vmlinux 0x319b254d	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x31a4767f	qcom_scm_hdcp_available
+EXPORT_SYMBOL	 vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL	 vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL	 vmlinux 0x31f76cf2	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x321c7dc5	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x3226b181	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x32406c33	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0x32430023	_totalhigh_pages
+EXPORT_SYMBOL	 vmlinux 0x324845ec	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x324ac5d3	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x324c70bd	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x325369b7	cros_ec_get_host_event
+EXPORT_SYMBOL	 vmlinux 0x32630dff	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x327085fb	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x3274b2f0	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3281ac48	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL	 vmlinux 0x32939186	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x3297113e	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0x329aafdf	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x329b03cb	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x329d2a50	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x329e71a4	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x32a7b754	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x32b91c41	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x32bcf0db	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x32bfb5cf	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0x32c26df3	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x32c722bc	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32d05d32	amba_find_device
+EXPORT_SYMBOL	 vmlinux 0x32d3343d	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x32f46624	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x33072371	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x33102be0	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x33121c01	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x33124d20	of_node_put
+EXPORT_SYMBOL	 vmlinux 0x334b81fa	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x335e3846	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0x3382258a	fget
+EXPORT_SYMBOL	 vmlinux 0x3396e877	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x339b596c	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x33ac7c71	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0x33b9bcb7	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x33ba732c	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x33c15888	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33f39d4f	of_node_get
+EXPORT_SYMBOL	 vmlinux 0x33f3dbb6	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0x340544d9	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x341000b1	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x3414ff4e	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x34312aed	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0x34594b49	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0x34693777	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x34745bcb	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x3474c524	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x34829826	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 vmlinux 0x349b4277	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34a04d71	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x34a0b5cf	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x34a829c1	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x34bdbd1a	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x34d398f6	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34fdf9b3	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x3503b31c	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x351d3409	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0x3533eff0	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0x353c9ccd	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x353e3fa5	__get_user_4
+EXPORT_SYMBOL	 vmlinux 0x3554872f	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x3560e651	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x3568d6d4	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x35696cb2	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x357f0215	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x35916fc6	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0x359bfbbb	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x359cf2f0	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b1984f	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x35d95353	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x35ea78f5	atomic_io_modify_relaxed
+EXPORT_SYMBOL	 vmlinux 0x35eeb29e	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x35fb6b7f	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x36053b38	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0x36081e23	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL	 vmlinux 0x3612c10f	tmio_core_mmc_enable
+EXPORT_SYMBOL	 vmlinux 0x362136ce	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x363b7633	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x3650f2ba	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x36588e6a	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0x3658d022	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e4747	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x366a87c9	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x366a8cd8	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x36709114	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x369a2bcb	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x369ada17	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x36a900cd	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x36ad3685	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x36d69557	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x36dc237b	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x36eac5da	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0x36faf745	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x3708ee5b	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x37273526	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x374a161b	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x374b47eb	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x3752e2e5	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x3760d6c6	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0x37687e73	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x378792ca	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 vmlinux 0x37a44e10	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x37a52c66	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b022f9	sg_split
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c5fe9b	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x37ca2217	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37d7d879	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL	 vmlinux 0x37e8853c	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x37e8d39d	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0x37f614b7	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x3820920d	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x382512c8	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x382e43ee	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x3842b3a6	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0x38450225	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0x384a4612	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x386d9ce9	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x387f16fb	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x3881de6e	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x3893d2d0	open_exec
+EXPORT_SYMBOL	 vmlinux 0x389acf0c	gpmc_configure
+EXPORT_SYMBOL	 vmlinux 0x389ecf9e	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b387f6	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x38b8f56e	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x38c984ce	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0x38ceeea1	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x38e85893	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x3914c862	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0x3937e35e	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x39463241	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x3959d92c	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x39669293	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0x396c73d5	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 vmlinux 0x39745772	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x3992bc63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x39a12ca7	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x39a13d6b	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x39a6bb9f	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x39a85b2d	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x39b259bf	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0x39b2da85	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 vmlinux 0x39c53988	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x39c88fd5	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x39d85871	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x3a03d1e4	cros_ec_query_all
+EXPORT_SYMBOL	 vmlinux 0x3a0f58ce	single_release
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a1876e0	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x3a1a3b99	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0x3a1f747d	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0x3a21c0d5	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x3a2347b1	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0x3a2ca27a	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a2f9996	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a52429d	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x3a568587	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x3a591479	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x3a6da300	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x3a7fcf00	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3a841a4f	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x3a9a258b	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x3aaa8137	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0x3ab715dc	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3abf6e96	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x3ad6fd8e	krait_get_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0x3ae3c1c6	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x3af21751	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x3af92fcf	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x3afdb5d9	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x3b05fd14	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x3b1090a2	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x3b13fe42	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x3b19e521	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x3b22fcd4	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0x3b28a315	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x3b299067	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x3b306ddc	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x3b3bf8ab	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b449641	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x3b4b8a58	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x3b4da6ed	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b697738	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x3b7fe432	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0x3b8c318d	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0x3b917bbf	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x3b998199	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x3b9c09ee	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x3b9dcdca	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x3bb95431	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c0a7473	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x3c1001bc	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c1b27fb	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x3c1d5364	bio_put
+EXPORT_SYMBOL	 vmlinux 0x3c2af315	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c4090f1	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x3c431c94	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x3c5cdd93	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x3c60315c	ioremap_cache
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3c9dee69	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x3caa5548	vmap
+EXPORT_SYMBOL	 vmlinux 0x3ce32263	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3d035681	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x3d0b0951	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x3d258e1f	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x3d316b6e	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0x3d342369	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL	 vmlinux 0x3d45be00	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x3d48b5d6	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x3d52fb7f	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d5de68d	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3d614a1a	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3d69960e	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x3d779f1c	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0x3d9d0e41	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3dcbb9b1	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x3dcf1ffa	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x3dd878a0	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x3de8de85	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x3de9bfa0	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0x3decb0c9	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e0cad49	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x3e0e899e	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x3e156d64	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e374afa	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x3e4831b6	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x3e5636a7	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x3e60ea24	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x3e610311	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x3e67009c	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x3e771fbd	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x3e7993a8	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x3e8297a3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x3e82f3e9	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ed104a5	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x3eecf017	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0x3ef56e75	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x3ef5d48d	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x3ef85832	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x3efb41d8	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f44467a	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f4af46f	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x3f51977c	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x3f62d048	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x3f690f26	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x3f6cd313	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x3f6ed025	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x3f7ab145	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x3f88c8ae	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3fab022e	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x3fadba99	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x3fb01823	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0x3fb291c4	page_mapping
+EXPORT_SYMBOL	 vmlinux 0x3fbd1f29	bio_init
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc3303a	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x3fd68086	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fddc50f	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x3fea538c	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3fefee15	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0x3fff657c	nand_bch_correct_data
+EXPORT_SYMBOL	 vmlinux 0x40368186	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x40376ea1	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x403a93e7	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x4042504c	devm_clk_get_optional
+EXPORT_SYMBOL	 vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL	 vmlinux 0x407a3275	omap_start_dma
+EXPORT_SYMBOL	 vmlinux 0x408f6425	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409751b3	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40a4c2c8	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b51c05	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40ca49af	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d402ad	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40dadfaf	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x40e2a9c8	ilookup
+EXPORT_SYMBOL	 vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL	 vmlinux 0x41076bc8	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x411276bc	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x411f3189	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x413f884e	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x414396fc	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414975dd	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x415168ed	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x4166019a	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x417d3d40	get_mem_type
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x418a5367	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x419e2868	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x41adb10f	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0x41bb84fc	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x41bba521	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x41bef48a	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0x41c0babf	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x41c44bad	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x41da0fb5	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x41e21522	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x41f90524	of_root
+EXPORT_SYMBOL	 vmlinux 0x42149d2d	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x421a667f	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x4253aa7e	down_write
+EXPORT_SYMBOL	 vmlinux 0x4254497d	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x42583fb8	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x425fde0b	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x42604384	ucs2_strncmp
+EXPORT_SYMBOL	 vmlinux 0x427691cd	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x4287bf01	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x4298b775	v7_flush_kern_cache_all
+EXPORT_SYMBOL	 vmlinux 0x42c44405	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x42e518fb	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x42e548bd	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x42ec8753	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x42ecc5f5	of_get_property
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43205987	inet_accept
+EXPORT_SYMBOL	 vmlinux 0x432ee840	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x4336fcca	ucs2_as_utf8
+EXPORT_SYMBOL	 vmlinux 0x434d555e	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x4380c0d9	proc_create
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43961403	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0x43bfbe6a	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0x43ceb80a	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x43db4c41	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0x43dc14d0	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x44003d68	md_error
+EXPORT_SYMBOL	 vmlinux 0x441cecc4	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x4421b79b	snd_unregister_oss_device
+EXPORT_SYMBOL	 vmlinux 0x442495c9	tmio_core_mmc_resume
+EXPORT_SYMBOL	 vmlinux 0x4433d628	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x4440caf7	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x4441cb27	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x444cc8ed	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0x445f8e87	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL	 vmlinux 0x4479224a	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0x447b3d9e	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x44a356fb	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x44a5825d	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x44c9dc6c	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0x44d3c7de	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x44d897d0	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44ed4d5a	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x44f28517	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450d9a35	cmd_db_read_slave_id
+EXPORT_SYMBOL	 vmlinux 0x4520e18f	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x4538cf4d	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x453edb6a	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x45411790	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x4549cbe5	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0x45505b03	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0x4562a134	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x458ba9f5	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x45a21e62	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0x45bd0fae	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x45bd2667	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x45bda0d5	system_serial_low
+EXPORT_SYMBOL	 vmlinux 0x45dfc42e	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0x45e11313	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x45feb455	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x461d1d3b	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x461fe0a4	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x46387d5e	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0x463c1015	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x463c9d75	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x464d5e25	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x465e24ff	ucs2_utf8size
+EXPORT_SYMBOL	 vmlinux 0x466438ba	snd_card_file_remove
+EXPORT_SYMBOL	 vmlinux 0x4673a8c7	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x468e6672	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x469055f5	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46bb72d6	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x46c327ff	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL	 vmlinux 0x46ebe248	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x46ee70a2	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x4703de3f	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x471e7497	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 vmlinux 0x47395ec0	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x4756260d	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x4769e9af	module_put
+EXPORT_SYMBOL	 vmlinux 0x476d9766	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47715b54	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x478d9b84	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47cf8630	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x47e70229	v7_flush_user_cache_range
+EXPORT_SYMBOL	 vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL	 vmlinux 0x48028673	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x4808f057	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x480995c7	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x480b8960	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x483d3f32	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x4862c411	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x488526b5	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x488c02f5	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x4896e524	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x48a5b067	__machine_arch_type
+EXPORT_SYMBOL	 vmlinux 0x48a67d99	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b3a8a0	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x48b3fc91	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48bb80db	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x48c68213	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x48cb057c	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x48cc74b0	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x48da2cb2	ac97_bus_type
+EXPORT_SYMBOL	 vmlinux 0x48e7d2d1	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x48e8e6da	clk_bulk_get
+EXPORT_SYMBOL	 vmlinux 0x48ee3f5e	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x48efff0b	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x4910c57a	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x49149a6f	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x4943afb9	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x4961b426	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x4972a7b9	ihold
+EXPORT_SYMBOL	 vmlinux 0x497c9b89	fput
+EXPORT_SYMBOL	 vmlinux 0x49970de8	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x49986c98	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49aaf7cb	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 vmlinux 0x49bcd5ab	kern_path
+EXPORT_SYMBOL	 vmlinux 0x49cc2f62	dm_io
+EXPORT_SYMBOL	 vmlinux 0x49d0ce8f	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x49d3457a	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x49dac695	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x49e57f02	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL	 vmlinux 0x49ed684e	f_setown
+EXPORT_SYMBOL	 vmlinux 0x49f0abb1	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x49f26466	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x49f3a641	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x4a0e86a2	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x4a0ea43f	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x4a39e5a1	omap_set_dma_src_params
+EXPORT_SYMBOL	 vmlinux 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 vmlinux 0x4a3ee189	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0x4a3f468d	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0x4a46b067	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0x4a77ad7a	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4ac7a34d	simple_link
+EXPORT_SYMBOL	 vmlinux 0x4acb3958	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x4acea941	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x4ad72686	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x4addae74	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x4ade8b2e	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x4ae15d25	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x4ae423df	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0x4af6da73	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b033967	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x4b1ec3e2	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x4b2cddd7	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x4b3b9aae	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x4b423187	d_path
+EXPORT_SYMBOL	 vmlinux 0x4b473ec6	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x4b4975de	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b5176ff	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x4b577396	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x4b5b9027	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b60efdd	phy_connect
+EXPORT_SYMBOL	 vmlinux 0x4b72cb81	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x4b7e4d72	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0x4b935194	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0x4b939809	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x4bae2805	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bb5874e	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0x4bb8750f	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x4be85a03	memweight
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bfdcefa	__memset32
+EXPORT_SYMBOL	 vmlinux 0x4c06ae2b	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x4c125940	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x4c133572	update_region
+EXPORT_SYMBOL	 vmlinux 0x4c1cca3b	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x4c1d3577	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x4c2ae700	strnstr
+EXPORT_SYMBOL	 vmlinux 0x4c2cd3ea	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c4db890	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x4c552966	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x4c7c6cd7	amba_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x4c816ddb	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x4c8440f5	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x4c953d34	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4cb4a2aa	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4ccfec06	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0x4cf235d4	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x4d062bf6	snd_card_free
+EXPORT_SYMBOL	 vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL	 vmlinux 0x4d1fa4ac	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x4d28e7cf	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0x4d338f63	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x4d489b48	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x4d4bdab5	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0x4d514485	xa_store
+EXPORT_SYMBOL	 vmlinux 0x4d633c89	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x4d634803	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d969252	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9b6d35	snd_pcm_format_size
+EXPORT_SYMBOL	 vmlinux 0x4d9c98c7	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x4da33044	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x4db5d08e	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0x4dc1e4a0	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x4dd3532f	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL	 vmlinux 0x4dee1646	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x4dee98af	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4df4276b	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0x4df647b5	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x4df72df5	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x4e05bdec	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x4e0c8eea	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x4e10bbec	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x4e22217d	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x4e2948d2	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0x4e2c1535	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x4e2e74c1	qcom_scm_io_readl
+EXPORT_SYMBOL	 vmlinux 0x4e30b1bf	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e3caa9c	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x4e420642	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x4e4f17f4	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x4e506013	omap_dma_link_lch
+EXPORT_SYMBOL	 vmlinux 0x4e511363	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x4e65bea2	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e7650bd	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x4e927ecc	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x4e92c9ed	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x4e95bb98	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0x4ed4213c	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0x4ee0e846	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x4ee98ebd	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x4eecde66	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x4f1233b0	snd_timer_new
+EXPORT_SYMBOL	 vmlinux 0x4f13b3ef	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4f1a375a	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f22d6f9	completion_done
+EXPORT_SYMBOL	 vmlinux 0x4f2af482	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x4f507cdb	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x4f600301	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x4f80c6f2	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 vmlinux 0x4f82b2d5	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x4f89c9de	gpmc_cs_free
+EXPORT_SYMBOL	 vmlinux 0x4fa417ce	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4fbda2e9	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x4fc43b58	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x4fe2e112	neigh_update
+EXPORT_SYMBOL	 vmlinux 0x4feba48c	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x4febb669	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x5003e2da	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x5005f589	sound_class
+EXPORT_SYMBOL	 vmlinux 0x5007c3e4	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x502b6647	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x50363bd0	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 vmlinux 0x505d307a	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x50658a44	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x5075e028	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x5078b201	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50b628ce	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50d71bcf	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x50f85302	__arm_smccc_hvc
+EXPORT_SYMBOL	 vmlinux 0x50fd6103	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x51145eac	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x513b6384	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x513fae76	register_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x514a62ec	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x514cc273	arm_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x51538bfd	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x515b41f2	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x517c841c	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x518a0435	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x519c7e58	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x51dd7d96	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x51e77c97	pfn_valid
+EXPORT_SYMBOL	 vmlinux 0x5203d176	cmd_db_ready
+EXPORT_SYMBOL	 vmlinux 0x5217808e	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x522cfdf4	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x522fb0e4	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x5230ff96	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x5238dbdf	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0x523e57aa	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x524a0c0d	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x526a0ef2	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x528a27b1	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x528c709d	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x529a2ebd	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0x52cb261d	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52ded6a5	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x52df11ab	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 vmlinux 0x52ea0c39	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x52ebde65	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0x52f26875	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x5309c05f	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x530b31b2	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x530bb593	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x53129300	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x531e1824	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x533d062f	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x5348a4c4	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x535c9dfa	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x536060af	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x5365cfe3	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x536b2dfb	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x537dbfb2	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x53942bc5	set_groups
+EXPORT_SYMBOL	 vmlinux 0x539c537e	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x53a2c43b	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x53a98467	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x53b37225	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x53c7f1c4	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x53d68bcb	snd_card_disconnect
+EXPORT_SYMBOL	 vmlinux 0x53febee8	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x5406598f	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 vmlinux 0x5410cf5c	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x5420a41d	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x5459f848	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x5467a2bf	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x5479bbd5	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x547c7b43	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0x54877d86	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54ad6f62	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x54b66da4	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0x54c25e0b	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x54c6f7e1	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54d1e8ed	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x54f339f4	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0x5501ba8d	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x554ac97b	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x5561d972	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x5562e403	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x55771aef	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x55797bf3	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x558523d6	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55a0821d	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x55a2f8a9	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x55d21691	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x55d69795	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x55e1fcbe	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x56225686	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x563952a3	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0x56488e60	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x564d280e	snd_info_create_module_entry
+EXPORT_SYMBOL	 vmlinux 0x56641812	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0x5667a277	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x5684eac0	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x5698ea2e	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0x569e2127	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x56beca1b	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56d357b1	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x56ddda34	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x56f9a385	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x570f26e9	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x57178773	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0x5737525a	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x5738e81a	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0x573f8cae	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x57433afd	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x574e4ebb	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x57540d59	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x57547059	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x57808801	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x57bd31d6	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x57c1de63	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x57c487c2	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x57c6a2fd	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x57ceedb1	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x57e5170c	qcom_scm_iommu_secure_ptbl_size
+EXPORT_SYMBOL	 vmlinux 0x57e91d5d	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x57ff23f0	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x5810114b	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x581cde4e	up
+EXPORT_SYMBOL	 vmlinux 0x581ceaee	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x583103a5	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x583107d1	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x58392b57	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x583bbe8a	page_mapped
+EXPORT_SYMBOL	 vmlinux 0x584c63f7	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0x58516557	omap_set_dma_src_data_pack
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x5898eb7a	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x589a3157	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58af7c8b	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58de87a3	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x58e26486	snd_timer_close
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58f4d618	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x58fad869	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x592b5bd9	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x5934a9db	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x594c5909	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL	 vmlinux 0x59518722	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x5977958c	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x5984ae34	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x5985c723	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x598d8068	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x5998d205	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0x59a553d5	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x59b4593d	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x59b7cab6	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0x59d29dab	v7_flush_kern_dcache_area
+EXPORT_SYMBOL	 vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL	 vmlinux 0x59ec1233	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x59fc035d	stream_open
+EXPORT_SYMBOL	 vmlinux 0x5a049d91	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a14de15	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x5a34389f	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x5a378639	devm_of_clk_del_provider
+EXPORT_SYMBOL	 vmlinux 0x5a3a7e8f	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a7f51e1	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x5ab73a34	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x5acf8c8f	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x5aebf1dd	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x5af8cf5f	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0x5b0338ac	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0x5b0444bc	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x5b050533	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x5b05820c	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x5b062284	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0x5b0b807c	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0x5b288c2b	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x5b303a44	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b54903b	qcom_scm_pas_mem_setup
+EXPORT_SYMBOL	 vmlinux 0x5b58b3f8	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x5b6703ac	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0x5b861167	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x5b8fe531	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x5b9f0e31	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x5badbb78	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5baf4bd9	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0x5bb6d838	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x5bb93e38	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x5bbe49f4	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x5bc15bca	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x5bd30cff	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x5bd90936	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x5bdb6767	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bef95f5	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x5bf117d6	finish_open
+EXPORT_SYMBOL	 vmlinux 0x5bf49f52	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x5c09c87c	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x5c1d6582	vga_put
+EXPORT_SYMBOL	 vmlinux 0x5c348d67	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x5c398360	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c566a18	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x5c716976	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5c752de0	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x5c7d04a0	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x5c7d771e	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x5c7f1284	int_sqrt64
+EXPORT_SYMBOL	 vmlinux 0x5c8c40ed	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL	 vmlinux 0x5caf4804	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0x5cb5217d	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x5cbd8e69	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x5cbf8fd7	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x5cc08a46	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x5cc4da6a	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x5cd841b4	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x5cda85f7	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0x5ce9a942	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d0d76a0	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x5d1442b1	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x5d2425cf	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x5d249d9d	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5d37d658	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x5d38b308	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d5abb99	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x5d5cbc86	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x5d635436	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x5d6b8fde	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x5d72f417	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x5d7d9d72	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x5d810f97	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0x5d9104ac	kset_register
+EXPORT_SYMBOL	 vmlinux 0x5da36e28	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x5dab54c0	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0x5db8bb15	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0x5db9d49f	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x5dc273d9	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0x5dc46a06	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x5dcf6341	outer_cache
+EXPORT_SYMBOL	 vmlinux 0x5dd6134e	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x5dd83587	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x5de5cca2	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x5de8d573	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x5ded9b0d	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0x5e0c86db	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x5e10a892	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x5e207691	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e3a1972	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x5e3b692f	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x5e483248	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x5e51fa71	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x5e5fc079	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x5e6de86c	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 vmlinux 0x5e81487f	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x5e866d85	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0x5e93f5a7	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5eab56b1	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ebacf3c	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x5ec8d600	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed05bf6	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5edf985d	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x5eeacc44	path_get
+EXPORT_SYMBOL	 vmlinux 0x5eee2d49	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f0d64c8	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x5f1ab863	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0x5f2e932e	snd_card_register
+EXPORT_SYMBOL	 vmlinux 0x5f4368f8	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x5f43b421	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0x5f465ecd	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x5f50a0cc	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x5f5d128c	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x5f62f617	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL	 vmlinux 0x5f794b7b	bmap
+EXPORT_SYMBOL	 vmlinux 0x5f8306ed	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x5f849a69	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5f8d0759	amba_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x5f98736b	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x5f9b8671	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x5fb01358	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fda278f	snd_timer_pause
+EXPORT_SYMBOL	 vmlinux 0x5ff11cc3	pcibios_min_io
+EXPORT_SYMBOL	 vmlinux 0x5ff1afed	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x5ff8c319	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x6001a1fc	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x60044733	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x600d850a	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x6010a28e	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x60133fa5	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x60138d71	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x601dae71	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL	 vmlinux 0x603286b8	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x60469128	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x60476446	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x60554046	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x605e69e5	snd_timer_notify
+EXPORT_SYMBOL	 vmlinux 0x60642392	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL	 vmlinux 0x60bffe6d	div64_u64
+EXPORT_SYMBOL	 vmlinux 0x60c6d490	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x60c7f15b	start_tty
+EXPORT_SYMBOL	 vmlinux 0x60d782b9	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x60dde6d6	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0x60e98a1a	km_query
+EXPORT_SYMBOL	 vmlinux 0x60ea1e26	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x60f3edce	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x60f5169a	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x60fb003f	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x611a2e16	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x611aebfa	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0x611c01bc	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0x6121bd54	dql_init
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61334733	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x6156c7f4	net_dim
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x61594fe6	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x6161bf2d	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0x619e811a	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x61a5d4ae	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x61ab5f5b	snd_card_new
+EXPORT_SYMBOL	 vmlinux 0x61adea8d	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x61b76bb9	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61c76b3a	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x61e6608d	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x61e7b6ff	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x61e9cd6b	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61ee0f4e	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0x62082807	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x62092880	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x620e2a98	dev_close
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x62416c8b	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x62791dfc	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x627d4340	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x6286fbcb	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0x62b686dc	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62c95da5	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x62e5437b	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0x62e66536	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x630f2cb8	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x6323c96f	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x632c5424	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x632d3ecc	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0x6342f99f	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x6369784a	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x636ab833	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6382a9c0	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x63a4cfff	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63ad6419	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x63ad811b	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x63ba5b5a	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0x63be95b4	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d60c0e	dev_load
+EXPORT_SYMBOL	 vmlinux 0x63e7ae7b	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63fbd382	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x64021085	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x640cfcee	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x643515d0	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x64382d56	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x644d5370	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x64530a16	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0x645e4661	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x645e4968	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 vmlinux 0x645ffd49	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x6477b0f1	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x647af474	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x648c1ffa	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x648cdb56	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64984771	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x649aeacb	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0x649ff9b1	irq_domain_set_info
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64f7f439	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x650f8009	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x65168ad7	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x6520a47f	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0x6536504e	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x65462aaa	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6578533e	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x658e1133	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x659254ca	load_nls
+EXPORT_SYMBOL	 vmlinux 0x6593f907	snd_pcm_set_ops
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65b0fe12	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x65cf3ecd	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0x65d411e9	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0x65d5c8ce	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65f5d9af	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x65fa7e34	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x66080d4b	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x6634d59a	mount_single
+EXPORT_SYMBOL	 vmlinux 0x66454667	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x66474aa4	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x664afa37	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x66657274	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0x666b04a3	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x666e5ece	km_report
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x669ebf1c	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0x66a4511c	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x66b67472	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x66c77d9d	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x66da2c93	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66f38f2d	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x670d4857	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x6714ec86	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x67156681	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x671b9af1	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x67221297	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0x672d2c11	kmap
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x674eadce	cros_ec_cmd_xfer
+EXPORT_SYMBOL	 vmlinux 0x6756a5a4	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x675a32f1	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x675d0034	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x676611b4	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL	 vmlinux 0x6782d34a	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x6796282f	nand_write_oob_std
+EXPORT_SYMBOL	 vmlinux 0x6798654e	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x679f1d2d	snd_card_set_id
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b38276	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67d96ab9	snd_register_oss_device
+EXPORT_SYMBOL	 vmlinux 0x67df6d5f	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x67dfaeaa	bdget
+EXPORT_SYMBOL	 vmlinux 0x67e42b55	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x6806edd7	get_super
+EXPORT_SYMBOL	 vmlinux 0x6808c968	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x6809dfff	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x6811f06a	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x6835ae58	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x68371167	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x685b855e	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x68749716	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x687c4817	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x687d1f8d	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x68978a83	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68e06d59	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0x68fb581a	icst307_idx2s
+EXPORT_SYMBOL	 vmlinux 0x69020e16	mntget
+EXPORT_SYMBOL	 vmlinux 0x690dbcbd	d_add
+EXPORT_SYMBOL	 vmlinux 0x691938f8	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x691ea813	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0x69293b02	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x692f7398	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x6982a319	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x69832956	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x698e3482	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x6994e08e	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0x69a2cc2f	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b6f8d9	omap_set_dma_transfer_params
+EXPORT_SYMBOL	 vmlinux 0x69b9f8aa	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x69bf424e	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x69bfbea4	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x69cbfc5d	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0x69cd679e	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x69dd7ec5	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69e51d08	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x6a0234bb	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a06fe13	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x6a0c9dc3	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x6a1b3bfc	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x6a2a71b9	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x6a2d0781	snd_ctl_find_id
+EXPORT_SYMBOL	 vmlinux 0x6a3f053e	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a673791	ioremap_cached
+EXPORT_SYMBOL	 vmlinux 0x6a91ce5d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x6a929b0f	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6ac93728	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x6adae780	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL	 vmlinux 0x6ae9fdc8	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0x6aea5a68	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0x6aed8f36	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6aef4478	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x6af367f1	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x6af7b21a	packing
+EXPORT_SYMBOL	 vmlinux 0x6b0775ae	bio_devname
+EXPORT_SYMBOL	 vmlinux 0x6b264450	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b322fbd	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x6b4713a1	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x6b4bf9b0	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b604710	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x6b7b0448	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b8da2f4	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x6ba7bb0f	snd_seq_root
+EXPORT_SYMBOL	 vmlinux 0x6bb93d9e	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bcba082	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x6bcebb45	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x6bf7d3c2	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x6c079e02	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c32c447	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x6c449bb5	release_sock
+EXPORT_SYMBOL	 vmlinux 0x6c5fea01	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c694c18	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x6c735028	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0x6c757595	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x6c79ca53	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x6c7c566f	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x6c810e42	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cd2ad0d	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6cdbd7ca	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6cdd5ea9	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x6ceab515	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d02675d	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x6d0479a9	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x6d04ad29	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0x6d04f027	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0x6d056e44	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0x6d1194c6	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL	 vmlinux 0x6d89b199	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x6d8b9216	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6d908cc7	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x6d985d6d	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x6da09c8c	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 vmlinux 0x6db83ba6	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0x6dc43a82	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6de96d8f	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6e32dfff	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x6e3b4050	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x6e407813	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 vmlinux 0x6e49ab2d	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x6e4e7714	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x6e66559a	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 vmlinux 0x6e69d24a	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x6e6f6bbf	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x6e7118d4	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e782488	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x6e7b30e6	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6e9e1910	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x6ea352b8	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ec46a09	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x6ecd806f	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0x6ecdb792	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x6ed0e136	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6eef97ec	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 vmlinux 0x6f013ecd	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x6f10c1bc	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x6f144f4c	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x6f1737a0	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x6f29bf68	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0x6f31dce8	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x6f4c46c1	eth_header
+EXPORT_SYMBOL	 vmlinux 0x6f564384	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x6f61cc88	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x6f77c1e0	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f8963e2	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x6fa42613	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x6fae09f4	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x6fb1322f	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x6fb73ea0	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x6fbe4717	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x6fc5aed1	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6ffe1504	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 vmlinux 0x7012c18e	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x7027010d	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x702946da	ucs2_strlen
+EXPORT_SYMBOL	 vmlinux 0x70298ac2	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x7035b11a	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0x704ad72e	snd_pcm_new
+EXPORT_SYMBOL	 vmlinux 0x70516309	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x7061d3eb	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x706aee84	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x70703993	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7076a584	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x70850464	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x70856f13	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x7092f112	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x7096b13e	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0x710b1005	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x710c1991	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x710e3782	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x711a01b6	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x711b8a9b	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x712110ab	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7126780e	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x712f0adf	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x716f9996	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x71772951	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x7194c292	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x719d4378	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL	 vmlinux 0x71e4ca48	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x71f7de4f	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x7228daa6	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x724d8622	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72532b1a	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x725a06e7	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x72758a5a	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x729f2c46	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x72a532e5	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x72a6f18b	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72ba6e17	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x72bd12c1	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x72c45bd6	nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0x72c81574	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x72ccc559	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x72d4c843	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x72da7a9c	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f0cbd6	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 vmlinux 0x72f4836b	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x72fedfea	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x73002281	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x73032f9e	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x7317790e	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0x7325b0f5	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0x7333848f	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x73451484	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x735f33b0	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x7379431c	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x737f0de5	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73961ec0	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x73a4377b	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x73a7366f	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x73d20fb3	omap_get_dma_src_pos
+EXPORT_SYMBOL	 vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x73f6c8b7	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x740c1d74	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741d2d27	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x74489a53	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0x744eff5d	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x747a843f	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x748c47d7	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x748f6972	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x7491f315	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x7492bd79	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0x7493fed9	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x749cdb46	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x74a80d4d	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x74a9dfb3	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x74ae2728	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x74aede25	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x74b60a9c	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0x74bccbb0	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74c99821	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0x74d54e47	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x74d5fccf	snd_register_device
+EXPORT_SYMBOL	 vmlinux 0x74e4c0c1	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74fa9cc6	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x74fcca8f	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x74ff4255	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x750a1c99	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x754f348a	complete_all
+EXPORT_SYMBOL	 vmlinux 0x75627d73	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0x75668b61	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x756fe96d	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x75862a36	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x759eb8cd	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x75a018c5	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x75a1b8fe	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0x75a6ec2a	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75be32a1	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d48cf0	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75f87fdf	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x75fde3b4	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x76158f64	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x766fd68d	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x7678caf2	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76ad9183	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x76b30be7	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x76bb046b	vc_cons
+EXPORT_SYMBOL	 vmlinux 0x76c0f66e	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x76c731eb	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76d72d29	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x76d9d861	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x76dec20a	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x76ebf3a9	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0x770d1ca1	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x77100334	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x772e72c5	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x7745b5bd	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0x77675f6b	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x77681eaa	import_single_range
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x77816f29	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x77852185	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x7791193f	icst525_s2div
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77ba822e	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77d002f9	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x77e2cf00	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f0172c	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x77f6c690	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x77f6f183	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x77fc5776	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x77fe6743	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x782076d1	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x78371388	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x783b977a	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0x784577b0	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x784d08ad	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x78594b41	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x78606b15	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x786560d3	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x7865f291	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x78691650	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0x7869e4bd	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0x7871a595	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x7877ea1d	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x787bc6e3	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78b1b6ea	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0x78d8fc93	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x78d94201	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x7911478f	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x79409b9d	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x7941152a	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0x794765d1	mempool_free
+EXPORT_SYMBOL	 vmlinux 0x79871153	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x79ea1bbe	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x79f9b283	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x79fc577f	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a0c94ce	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a2528b5	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x7a25e863	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0x7a374148	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x7a3e8a42	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a467af5	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x7a53b1ce	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x7a5a1f99	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0x7a5aaae4	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0x7a78379a	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x7a7beaeb	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x7a85a63c	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x7a901983	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa3b99f	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ac6d6c3	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x7acce62c	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7ada88c2	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7aded2f7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x7af34628	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x7afb233b	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b119cc5	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x7b283ce3	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x7b2fb85d	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7b35a545	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x7b35fc85	build_skb
+EXPORT_SYMBOL	 vmlinux 0x7b38054d	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x7b395418	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x7b5c8440	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x7b7abc6e	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x7ba5284d	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0x7bac1826	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x7be11e70	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x7bec113c	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x7bf4e62b	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c2f3588	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x7c437175	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c48dffc	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0x7c4af0f2	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0x7c4f5f8f	user_path_create
+EXPORT_SYMBOL	 vmlinux 0x7c521fa0	amba_driver_register
+EXPORT_SYMBOL	 vmlinux 0x7c6142fc	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x7c75407f	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x7c75bc30	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x7c7ca56d	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x7c835d61	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x7c8cea9e	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7cac3f91	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x7caf508c	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x7cb0d190	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL	 vmlinux 0x7cc1261e	proto_register
+EXPORT_SYMBOL	 vmlinux 0x7cd81751	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cf7085b	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d02fd01	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0x7d099661	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x7d0b0fb8	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d22f6a6	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x7d27600d	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x7d31a3c8	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x7d3611da	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x7d3afac5	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x7d474d41	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5523c8	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x7d5a3ecb	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x7d89d56c	register_console
+EXPORT_SYMBOL	 vmlinux 0x7d8dbe75	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x7d90f717	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x7da158a2	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x7da6b646	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x7da979c2	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dbfbcf1	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df912a9	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x7e0a6eb8	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x7e0ce0c3	up_write
+EXPORT_SYMBOL	 vmlinux 0x7e19f394	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0x7e235718	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x7e2fce91	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e32e7c7	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x7e78a978	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x7e7f9112	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0x7e8fdb5d	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0x7e90360a	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0x7ebe01ec	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x7edeecd7	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x7ef4f753	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f062f1d	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f276a19	send_sig
+EXPORT_SYMBOL	 vmlinux 0x7f2f595f	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x7f304b27	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7f32c6fc	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x7f3bf1b8	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x7f57e6cf	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0x7f63ca82	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f843c31	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x7fc99629	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x7fd4d0fb	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0x7fde2edb	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x7fe22773	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7ff2ab34	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x7ff3b187	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x800e4ffa	__muldi3
+EXPORT_SYMBOL	 vmlinux 0x800eb95b	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x80291f22	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x8039b3fd	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x8041b1a8	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x8058698d	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x8070c9db	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0x80720e2e	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x8074e70c	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0x807d0ee4	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x8088e163	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x8099501b	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0x80a5081a	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x80c45411	vga_get
+EXPORT_SYMBOL	 vmlinux 0x80c4c319	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80f7e6bf	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x80fe43d4	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x8107cde4	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x8108ac7a	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8116db36	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x8117bcc8	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x812426f4	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0x812f3c55	misc_register
+EXPORT_SYMBOL	 vmlinux 0x813a035e	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815fa903	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x816755d8	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x81788237	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0x817c24ed	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x818c09a6	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x81a0cbd7	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x81b60e4d	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 vmlinux 0x81b80440	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x81c5c865	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL	 vmlinux 0x81f3aed1	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82193a97	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x822137e2	arm_heavy_mb
+EXPORT_SYMBOL	 vmlinux 0x822d09a9	module_layout
+EXPORT_SYMBOL	 vmlinux 0x82347548	snd_pcm_new_internal
+EXPORT_SYMBOL	 vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL	 vmlinux 0x824e04d2	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x824fc576	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x82528b42	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x825f01ec	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x8265b302	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x828f0604	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x82903602	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0x82b30cbe	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x82b66b42	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0x82b7e291	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x82c94a7d	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x82d59c67	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x82dae22f	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0x82f148c0	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0x82f886a1	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x8320bea8	__umodsi3
+EXPORT_SYMBOL	 vmlinux 0x8325dba6	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x8329a803	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x832c673c	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x8351f2dc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x8354be8d	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x83708b54	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x8377fc0d	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x838abe94	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x838e6366	cros_ec_prepare_tx
+EXPORT_SYMBOL	 vmlinux 0x8394abf5	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x839e090d	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x83a6e16a	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0x83ad7895	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0x83b3228a	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x83b48218	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x83bfddee	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x83c171c2	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x83c2c71e	dev_open
+EXPORT_SYMBOL	 vmlinux 0x83cd0e6f	atomic_io_modify
+EXPORT_SYMBOL	 vmlinux 0x83dbad81	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x83e2ad14	nand_bch_init
+EXPORT_SYMBOL	 vmlinux 0x83f9321b	__module_get
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x84123086	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x841cf746	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x8420aaf7	find_vma
+EXPORT_SYMBOL	 vmlinux 0x8429e908	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x844ca2aa	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x8456e9a7	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x846a60ba	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x846bba2f	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x848bb23f	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x848db799	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL	 vmlinux 0x84bbfa36	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x84c0ab7f	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x84e991c6	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x85273692	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x853609d9	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x853c97a4	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x856b3dca	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x8582ebff	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x85847bb4	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x859f97dc	snd_ctl_replace
+EXPORT_SYMBOL	 vmlinux 0x85a36739	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85c33ca7	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85f219c7	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x85f4dfba	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fd1666	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x860420ed	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x8618cede	put_disk
+EXPORT_SYMBOL	 vmlinux 0x862b995b	ping_prot
+EXPORT_SYMBOL	 vmlinux 0x862bc663	memset16
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863bbb5c	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x86458700	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0x864b81f9	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x865b1205	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x86648801	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x866856b8	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x866f0a71	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x867711d2	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x868b1b98	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x868ca8e4	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x86a090c8	dump_page
+EXPORT_SYMBOL	 vmlinux 0x86aa4e0e	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x86ab37e9	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x86accf63	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x86ae957d	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x86c04e14	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x86dcf0a9	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x86eb0c08	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86ffc108	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x87090480	get_acl
+EXPORT_SYMBOL	 vmlinux 0x870918e5	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0x870d5a1c	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x872b054f	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x87453734	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x874cf1e7	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x8765a01f	page_address
+EXPORT_SYMBOL	 vmlinux 0x876c506a	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0x877c635f	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x877ed94a	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x87839af6	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x878b6a64	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x87a6370f	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x87a6ec26	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x87aae95a	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x87b744c9	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87c111c6	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x87c78192	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x87e817be	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x87eface6	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x87f6ab79	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x87fd561e	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x88014ad0	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x881354e7	register_sound_special_device
+EXPORT_SYMBOL	 vmlinux 0x8815e612	pid_task
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881cb352	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x882db243	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x883beac2	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x884ac18b	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x884c590a	snd_power_wait
+EXPORT_SYMBOL	 vmlinux 0x885cf513	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8887a5dc	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x888b00ce	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x88a1c8d3	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0x88a49749	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x88a6afa1	flush_kernel_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x88b19f45	system_serial
+EXPORT_SYMBOL	 vmlinux 0x88b469f4	omap_set_dma_callback
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88e339cf	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x88fc9315	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x890a6d48	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x890b97d9	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x8913300f	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x891d6636	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x893e2c01	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x893e789b	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x8953b0f1	snd_pcm_open_substream
+EXPORT_SYMBOL	 vmlinux 0x897a1c19	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0x89ac1ad7	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89c75afa	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x89c84016	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x89d15291	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x89eb852a	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x8a06b9cb	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x8a085bde	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x8a0bbf19	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1c1b7d	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0x8a1dfa09	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x8a29a16b	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x8a33a535	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0x8a3784dc	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a3b1285	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x8a3b757e	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x8a44ac7d	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a491444	d_move
+EXPORT_SYMBOL	 vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL	 vmlinux 0x8a501b67	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x8a5c86b5	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x8a67006a	msm_pinctrl_probe
+EXPORT_SYMBOL	 vmlinux 0x8a784cb4	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a7ebf96	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x8a851a19	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aa30959	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x8aae9800	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x8abb08db	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac530e2	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x8ada2c4a	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x8ae174a8	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x8aec42bb	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x8af5b824	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b086d39	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x8b0892e2	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x8b0e32e3	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x8b1fea23	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x8b26a68e	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x8b460367	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x8b4a7ff5	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 vmlinux 0x8b55edc6	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b6b8202	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b80db6d	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x8b8c6daa	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x8b8d4d4c	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b9ca18f	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8ba452b6	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0x8bb5af58	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x8bc8748d	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0x8bd0e7a8	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x8bd48d5e	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8bebdd43	snd_timer_global_new
+EXPORT_SYMBOL	 vmlinux 0x8bee75d7	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x8bee7ca8	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x8bfa4dae	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x8c069434	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x8c0d2869	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x8c4525e3	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x8c4f33fa	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x8c5d254a	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x8c8cff9d	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x8cb29d6a	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x8cd8c339	omap_free_dma
+EXPORT_SYMBOL	 vmlinux 0x8cda02e9	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x8cdb83c6	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x8cdd2eca	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x8ce13cc5	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x8ce1c038	omap_enable_dma_irq
+EXPORT_SYMBOL	 vmlinux 0x8ce4568b	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x8cebd34f	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x8ceecad3	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0x8d04bc53	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0x8d36e5ce	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x8d3b372d	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x8d44a121	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0x8d46d5d4	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d5bfea1	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x8d684909	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x8d6fa284	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x8d711bbc	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8db28cfd	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x8db30c41	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8df0ed4a	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x8df243fa	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8dfeb7a4	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x8dfefc0d	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x8e014eaa	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x8e116a88	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x8e126374	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x8e393543	notify_change
+EXPORT_SYMBOL	 vmlinux 0x8e519973	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x8e865d3c	arm_delay_ops
+EXPORT_SYMBOL	 vmlinux 0x8e876807	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x8e8c0e3c	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x8ebf9bcd	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 vmlinux 0x8ed819b9	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x8edbfffb	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8ef6662f	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x8ef84058	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x8f002005	simple_open
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f0b39f2	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x8f2b088c	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0x8f318d3f	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x8f3625fe	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x8f595b11	snd_major
+EXPORT_SYMBOL	 vmlinux 0x8f678b07	__stack_chk_guard
+EXPORT_SYMBOL	 vmlinux 0x8f6c8729	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x8f7de7da	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x8f907a7a	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x8f960981	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9ef64f	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0x8fb562ca	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x8fbaa0bf	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x8fbbb379	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0x8fd180e7	kernel_neon_begin
+EXPORT_SYMBOL	 vmlinux 0x8fddd41a	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x8fddd863	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0x8fe35457	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ffe1d7c	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x9001556e	processor
+EXPORT_SYMBOL	 vmlinux 0x90136b04	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0x90140384	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x902e8962	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x9034a885	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x9047169c	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x904a3416	override_creds
+EXPORT_SYMBOL	 vmlinux 0x905fb0ab	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x906f5252	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x9093b1a9	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x9094ab5d	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x9094ffe8	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x909bad41	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x90b6da5f	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x90c249a6	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x90cd70e8	arp_send
+EXPORT_SYMBOL	 vmlinux 0x90d71d50	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x90e6ded0	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x90ecac88	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x90f80336	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x910ba015	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x911bde31	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x912a3e64	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x9131a0fa	fb_class
+EXPORT_SYMBOL	 vmlinux 0x9138e2ae	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0x9141069c	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x914230e0	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x91433acb	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x916835a1	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x916bde77	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x9180cbdc	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x91871154	snd_info_free_entry
+EXPORT_SYMBOL	 vmlinux 0x918e48fb	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a5dba4	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91a914b6	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x91a9c232	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x91c0980e	icst_hz
+EXPORT_SYMBOL	 vmlinux 0x91ced6ea	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x91e937d2	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x921b07b1	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x92312267	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x923ea194	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x926bff1d	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0x92a1b6f6	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x92a91d5b	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0x92b08681	snd_device_new
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c017c0	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92f3d596	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x9330e304	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x93388935	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x934685e8	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x935862b7	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x93622240	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x9369d08b	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x937cc5c4	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x93a1e67c	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93af884b	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93df7c2b	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x93f057b4	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x93f1bd57	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x93fb5624	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 vmlinux 0x941116fb	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x9413c9dc	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0x9422e166	vfs_create
+EXPORT_SYMBOL	 vmlinux 0x9425caca	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0x943dc8aa	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x943f9b8e	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0x94451013	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x9445839d	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x945eb81c	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x949bb6ba	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x94b08106	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x94b4adca	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94e28d2e	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x94e6f941	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x95368d33	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x9549e591	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x955cc2a8	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x9564bdbc	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x9567cbb2	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0x95899e81	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x958cea0e	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0x958d0198	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x95b000f5	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x95b18d69	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x95d3d918	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x95d57c02	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x95dbe078	__get_user_2
+EXPORT_SYMBOL	 vmlinux 0x95dcb403	clkdev_add
+EXPORT_SYMBOL	 vmlinux 0x95e30388	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0x95edab57	nla_put
+EXPORT_SYMBOL	 vmlinux 0x95edfb5b	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x95f8c93f	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x96081f17	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x9630cd6b	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0x9645ed0b	pgprot_user
+EXPORT_SYMBOL	 vmlinux 0x96488f69	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x964be073	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x964e8621	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x96537761	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x9654c223	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x965a66a4	bio_split
+EXPORT_SYMBOL	 vmlinux 0x966ff839	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96e4ccbd	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x96f2c652	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x97076790	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x9709dbc5	current_work
+EXPORT_SYMBOL	 vmlinux 0x970ae07f	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x970e6d5a	padata_free
+EXPORT_SYMBOL	 vmlinux 0x97106714	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x97228043	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL	 vmlinux 0x972c4a5e	snd_ctl_new1
+EXPORT_SYMBOL	 vmlinux 0x97492dab	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x974d2ff1	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x97594005	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x9768a48c	qcom_scm_get_version
+EXPORT_SYMBOL	 vmlinux 0x97851429	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b4f450	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c30e07	devm_clk_hw_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0x97c4cfb2	save_stack_trace_tsk
+EXPORT_SYMBOL	 vmlinux 0x97d664ae	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x97d818f3	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x97ee251a	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x980fb9e4	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x98253d9d	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x9826cc64	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x983ac031	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x984011f7	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x9850daf8	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x9868a83c	file_path
+EXPORT_SYMBOL	 vmlinux 0x9872fbea	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x987c11c7	__pv_phys_pfn_offset
+EXPORT_SYMBOL	 vmlinux 0x98832da8	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x988d893b	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0x9899e3b5	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x989cc3f3	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x98a21b5a	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x98bb2725	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x98bf8b56	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98e58984	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x98e69949	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x98ffa629	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x99094fb2	qcom_scm_is_available
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x993b03df	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9956d048	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x9958d92a	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x996829ea	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0x9970bdc0	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x997261e8	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x999742ea	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99ad89db	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x99adce09	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x99bb8806	memmove
+EXPORT_SYMBOL	 vmlinux 0x99c38a2c	filp_close
+EXPORT_SYMBOL	 vmlinux 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 vmlinux 0x99d282d0	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x99d30cfe	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99dd4d61	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x99df1458	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x99f9c602	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x9a06ed70	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a3bf70f	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x9a4441f0	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x9a50b271	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0x9a56082f	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a5ee370	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0x9a6a4d5f	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x9a72aa9e	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x9a72b2ae	snd_card_file_add
+EXPORT_SYMBOL	 vmlinux 0x9a7d5ad2	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0x9a8318ef	v7_coherent_kern_range
+EXPORT_SYMBOL	 vmlinux 0x9a89a7a3	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x9a94f512	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x9aa1ac7c	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x9aa6a1e4	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x9aa86b66	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x9aa9cea4	trace_print_flags_seq_u64
+EXPORT_SYMBOL	 vmlinux 0x9aaab6bd	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab08aae	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0x9acb8066	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x9ae11f8f	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x9ae39d1b	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x9b051b15	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x9b0bfa98	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x9b128a66	qcom_scm_set_remote_state
+EXPORT_SYMBOL	 vmlinux 0x9b1b7306	xxh64
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b290559	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b38cc73	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL	 vmlinux 0x9b78216a	console_stop
+EXPORT_SYMBOL	 vmlinux 0x9ba9aa93	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x9bd12091	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x9bebb23e	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x9bee566c	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x9bf77cd0	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x9c089091	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x9c3c9934	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x9c3cb54d	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x9c3cfd31	read_code
+EXPORT_SYMBOL	 vmlinux 0x9c411ddc	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x9c597860	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x9c7419dc	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9c7c5dce	omap_rtc_power_off_program
+EXPORT_SYMBOL	 vmlinux 0x9c87078c	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x9c8c9d0b	seq_write
+EXPORT_SYMBOL	 vmlinux 0x9c953645	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9cc960aa	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cd74c2f	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ced331d	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x9cf88b64	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0x9cfe0b93	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x9d04ca30	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x9d06ac33	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d1d86cf	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x9d504802	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0x9d55f10a	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x9d5cd559	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0x9d627e20	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x9d65dc68	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL	 vmlinux 0x9d867cc0	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x9d8ac71d	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x9d983534	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x9daefe09	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dc803b4	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x9dedd9a9	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x9e062641	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e27cf04	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x9e2b1c14	d_lookup
+EXPORT_SYMBOL	 vmlinux 0x9e4c2d8c	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x9e4f4e9e	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e59785f	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e657acb	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x9e6b4388	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 vmlinux 0x9e7cb011	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x9e936a2c	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9e9a9cb4	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ec9e71a	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x9ed39a54	down_trylock
+EXPORT_SYMBOL	 vmlinux 0x9ed4e307	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9edf7190	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0x9eefef27	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x9f13d4ce	skb_split
+EXPORT_SYMBOL	 vmlinux 0x9f284f9c	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4877d6	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f699f9c	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x9f7106e2	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0x9f8ffe4b	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x9f90c453	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fd29ad3	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x9fdccfb8	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9fef8cf5	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x9ff15308	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa002a373	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xa0151f24	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0xa037b147	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa0448bdc	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0xa048ae4a	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0xa0490362	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa05d3d1c	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0xa061e09c	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xa06df9e1	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0xa071249b	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0xa07517ce	param_get_string
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0aefe3e	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0bd2010	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f40d16	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xa0f4d9b2	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa0fcd95e	would_dump
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1263fcd	arm_dma_ops
+EXPORT_SYMBOL	 vmlinux 0xa138de27	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xa147eb73	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xa14cf4ac	snd_device_free
+EXPORT_SYMBOL	 vmlinux 0xa1562e31	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xa15865fa	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0xa15d0131	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xa170f466	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0xa174b674	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xa17bd3fc	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xa1839690	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xa19768c5	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xa19b7575	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xa1a33b03	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xa1a61a63	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0xa1a73626	snd_timer_resolution
+EXPORT_SYMBOL	 vmlinux 0xa1b19713	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xa1bacd91	qcom_scm_set_cold_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xa1c05151	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d131ed	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa210b2fe	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xa21611ca	module_refcount
+EXPORT_SYMBOL	 vmlinux 0xa24491bf	ida_free
+EXPORT_SYMBOL	 vmlinux 0xa2453613	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0xa2492d3c	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0xa24efc38	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25256ab	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa263f2d6	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2a2e650	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa2bc8846	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xa2c5f603	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xa31c0f70	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0xa325c5c9	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xa32981d1	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0xa339631d	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xa34e2ced	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xa35d2c19	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xa36145e0	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xa36e8621	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xa3797ce9	release_pages
+EXPORT_SYMBOL	 vmlinux 0xa37dc09e	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0xa3817b46	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xa3878639	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0xa39d8ffd	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0xa3a54979	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xa3adc5c6	serio_open
+EXPORT_SYMBOL	 vmlinux 0xa3b9b785	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0xa3ba27bf	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0xa3c00c06	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xa3d9b0f2	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0xa3e19c8e	snd_pcm_suspend_all
+EXPORT_SYMBOL	 vmlinux 0xa3e70c2a	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0xa3f5a5b9	amba_device_register
+EXPORT_SYMBOL	 vmlinux 0xa3fb7b8c	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xa3fe143a	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0xa4097c7b	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 vmlinux 0xa40fca69	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xa41712ea	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0xa4350fc2	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xa43799a8	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xa439aad8	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0xa43ad3f8	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 vmlinux 0xa44530e1	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0xa4552208	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0xa4610bc6	omap_rev
+EXPORT_SYMBOL	 vmlinux 0xa46a8933	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0xa47209a9	snd_component_add
+EXPORT_SYMBOL	 vmlinux 0xa47cbea9	page_symlink
+EXPORT_SYMBOL	 vmlinux 0xa47db743	devm_get_clk_from_child
+EXPORT_SYMBOL	 vmlinux 0xa4815a41	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0xa48f5b09	omap_dma_set_global_params
+EXPORT_SYMBOL	 vmlinux 0xa493ce9d	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0xa4b42c55	omap_set_dma_priority
+EXPORT_SYMBOL	 vmlinux 0xa4b7f2cc	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xa4c3facc	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0xa4d0c3ca	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0xa4efe0c4	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xa50036db	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xa501daca	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xa50842ab	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 vmlinux 0xa5095d9f	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xa52d6316	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0xa5325606	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa55323f1	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0xa562f7f8	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xa5684076	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xa568a6b7	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xa56fde1c	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xa57c9f51	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xa58fb4c6	free_task
+EXPORT_SYMBOL	 vmlinux 0xa5a58d70	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0xa5b69c99	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xa5dead1a	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0xa5e0cea3	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0xa5e7af5e	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0xa5f11ecb	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0xa602ab77	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0xa616df50	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0xa61a4beb	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa61dbbf5	snd_timer_global_free
+EXPORT_SYMBOL	 vmlinux 0xa63602d3	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xa6525668	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0xa65ee216	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xa66a500a	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xa672b3d6	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xa675f597	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0xa67aac22	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa68613dd	get_jiffies_64
+EXPORT_SYMBOL	 vmlinux 0xa6949c33	skb_copy
+EXPORT_SYMBOL	 vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa6997cf5	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xa6a25bb6	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xa6a7a2ad	div_s64_rem
+EXPORT_SYMBOL	 vmlinux 0xa6a7b126	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0xa6d216a7	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xa6d8ee4e	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0xa6ef62bb	nla_append
+EXPORT_SYMBOL	 vmlinux 0xa6efbfbe	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0xa714758e	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0xa7150ac3	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xa72957cc	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0xa73eb168	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0xa73ee62b	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xa73f7c0b	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xa746c34a	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa7764a1a	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa7887020	skb_push
+EXPORT_SYMBOL	 vmlinux 0xa78c2f18	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0xa7ad85ba	init_task
+EXPORT_SYMBOL	 vmlinux 0xa7b3181c	up_read
+EXPORT_SYMBOL	 vmlinux 0xa7b5270a	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xa7bc594d	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xa7da819c	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xa7df2706	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xa7e31b8e	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eec859	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa807898e	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0xa80acb56	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xa80c6732	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xa82ac258	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xa833e68d	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa85ed67b	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0xa867f17b	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xa891045e	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xa892236c	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xa899caf4	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xa8a08caf	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0xa8a8110c	kernel_neon_end
+EXPORT_SYMBOL	 vmlinux 0xa8aae744	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0xa8b74602	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0xa8c4d4b0	cpu_tlb
+EXPORT_SYMBOL	 vmlinux 0xa8caa845	clk_bulk_put_all
+EXPORT_SYMBOL	 vmlinux 0xa8dad99f	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0xa8ec7d34	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8f7f280	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xa915d66f	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0xa92201dc	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0xa922da6e	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xa92f8dc9	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xa952e6a4	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0xa964dd13	gpmc_cs_request
+EXPORT_SYMBOL	 vmlinux 0xa965680c	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa973a8f6	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0xa985496b	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xa9925ee4	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0xa99b5c80	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xa9e18be6	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xa9e22e1b	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xa9eb316e	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0xaa016976	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0xaa19bca6	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xaa19e5c5	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xaa1edab4	touch_atime
+EXPORT_SYMBOL	 vmlinux 0xaa63f447	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa7327b7	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0xaa762adb	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xaa79dcb5	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xaa948b1f	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xaa9cd304	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0xaab12ead	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0xaab3a58c	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xaacb1be0	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xaad0a8e0	nand_write_page_raw
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad154c4	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaadd4b20	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0xaaea6cae	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0xaafd9237	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab0fdd2b	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xab20b34c	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab4c5b15	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xab5bf6bd	config_item_get
+EXPORT_SYMBOL	 vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab6809e2	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL	 vmlinux 0xab6975bd	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab732d01	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xab735372	ipmi_dmi_get_slave_addr
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab80ab58	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xab9d0ecb	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xab9dec43	elm_decode_bch_error_page
+EXPORT_SYMBOL	 vmlinux 0xab9e82ab	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xabb0c4e1	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xabb8c38e	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xabc845e8	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0xabc9ddbe	clkdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xabe205aa	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf3a49b	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xac198ab1	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2b7f67	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac6a1707	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0xac878aca	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xaca1f1a7	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb31ecf	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0xacb4db49	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacdb9ff3	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xacdf5daa	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xacdfed36	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xace841bf	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0xacea34d6	iget_locked
+EXPORT_SYMBOL	 vmlinux 0xacef389c	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad0f4003	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xad118030	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0xad35d161	skb_pull
+EXPORT_SYMBOL	 vmlinux 0xad467006	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0xad4948db	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xad6f7144	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7b6f58	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad9470ff	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0xada00e04	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xada2af2a	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0xada9e7b5	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadb767ca	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc7cd5a	kmap_to_page
+EXPORT_SYMBOL	 vmlinux 0xadcb9bcf	mntput
+EXPORT_SYMBOL	 vmlinux 0xadd22e70	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0xadd62369	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xade3e154	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xade703b4	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xadfb4e27	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae25c141	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0xae3028ba	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae48335b	sock_efree
+EXPORT_SYMBOL	 vmlinux 0xae829e4e	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xae9c8290	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0xaebc4ad0	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xaecbc860	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xaed945f9	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xaee95991	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xaf1438c0	snd_timer_stop
+EXPORT_SYMBOL	 vmlinux 0xaf16f615	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xaf1ae829	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0xaf22476e	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0xaf334ca1	audit_log
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf412b7c	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0xaf467266	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xaf4d162f	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xaf50e76d	elf_set_personality
+EXPORT_SYMBOL	 vmlinux 0xaf648a6b	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf72e3fa	dns_query
+EXPORT_SYMBOL	 vmlinux 0xaf748ee8	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xaf7fbde1	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0xaf84865e	__get_user_8
+EXPORT_SYMBOL	 vmlinux 0xaf86ba75	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xaf896b77	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0xaf8aa518	system_rev
+EXPORT_SYMBOL	 vmlinux 0xaf91ff38	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xaf92edfb	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xaf9a0a2a	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0xafb2a81d	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0xafcd1568	init_net
+EXPORT_SYMBOL	 vmlinux 0xafe7087c	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0xafe95594	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0xafeafd83	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xafec9a3f	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0xb0047336	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xb00992ca	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xb00a50db	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0xb01030a3	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xb01a2247	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb01da319	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xb0497a79	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb08419bc	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0xb08affbf	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a3c5d2	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xb0a6588f	d_drop
+EXPORT_SYMBOL	 vmlinux 0xb0b538a3	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0xb0ba498e	mmput_async
+EXPORT_SYMBOL	 vmlinux 0xb0bf7165	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xb0d1b5e5	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xb0e08ab2	tty_lock
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb10c255f	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL	 vmlinux 0xb12a8ac7	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xb12af551	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb12cbb02	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0xb132d14b	dput
+EXPORT_SYMBOL	 vmlinux 0xb147a855	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb1536e7b	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xb15d8226	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb16a7def	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0xb194dce9	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0xb1983107	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0xb19dcaa1	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0xb1ad28e0	__gnu_mcount_nc
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1ee6909	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0xb1eeadb1	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0xb1f2e271	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xb1f5684d	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xb1f572e5	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0xb1fab557	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xb2061533	cros_ec_cmd_xfer_status
+EXPORT_SYMBOL	 vmlinux 0xb20ded3c	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb240c89c	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xb249a391	omap_request_dma
+EXPORT_SYMBOL	 vmlinux 0xb2651731	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0xb26bbbe2	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xb2710924	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 vmlinux 0xb27f249f	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xb286c477	qcom_scm_set_warm_boot_addr
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2bc017c	__bforget
+EXPORT_SYMBOL	 vmlinux 0xb2c237ad	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xb2d0053e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xb2d48a2e	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 vmlinux 0xb2e8d08c	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xb2ed223c	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb32728bb	qcom_scm_iommu_secure_ptbl_init
+EXPORT_SYMBOL	 vmlinux 0xb3667805	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb3676e88	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb38ae7f4	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xb39a3028	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0xb3a064a6	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xb3a4f51c	cpu_user
+EXPORT_SYMBOL	 vmlinux 0xb3a63a73	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xb3c2c456	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0xb3c40fbf	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3e7a32f	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0xb3e92dd1	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0xb3ecd927	dst_init
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb400aad2	snd_ctl_remove_id
+EXPORT_SYMBOL	 vmlinux 0xb40848b7	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb4311954	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0xb441ccee	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xb4519a8f	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0xb46fd6a0	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xb476c8f4	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb484855a	of_find_property
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb4910192	arm_dma_zone_size
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4a127a0	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 vmlinux 0xb4a1ef1f	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0xb4ad95ca	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xb4b50709	seq_read
+EXPORT_SYMBOL	 vmlinux 0xb4b95611	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xb4c2a87d	snd_ctl_find_numid
+EXPORT_SYMBOL	 vmlinux 0xb4d38043	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0xb4ef037a	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb4fad224	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0xb511bac6	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0xb5320efb	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0xb533a34d	sock_release
+EXPORT_SYMBOL	 vmlinux 0xb53e6634	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xb53efbea	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0xb54003c4	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0xb550a5f0	give_up_console
+EXPORT_SYMBOL	 vmlinux 0xb561ac5b	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xb56e85ca	sock_create
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb5734e7e	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xb574491a	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0xb58007e0	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xb5827b8d	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5c1f08a	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xb5c5551b	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0xb5e077e1	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xb5fd42fd	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0xb5fe919c	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xb60c38dd	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xb60c7a12	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xb62f451c	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xb6542ce7	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0xb6654b5c	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb6783428	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb685b318	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb69a1cd1	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xb69fc630	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6b56298	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0xb6b6284e	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0xb6b667f3	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xb6bf8c10	kunmap
+EXPORT_SYMBOL	 vmlinux 0xb6c43467	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0xb6da24ee	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb714d774	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0xb72ce8be	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0xb733b5b5	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xb734edee	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0xb7362c90	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xb747c51b	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xb749491a	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xb7788409	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xb77f0806	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb78e2050	qcom_scm_pas_init_image
+EXPORT_SYMBOL	 vmlinux 0xb7aff3e6	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7dd5b5d	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0xb7df0e97	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xb80e8483	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 vmlinux 0xb81b8545	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xb8269b2c	lease_modify
+EXPORT_SYMBOL	 vmlinux 0xb835b6ad	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0xb8397899	register_sound_special
+EXPORT_SYMBOL	 vmlinux 0xb83b3be0	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0xb864b84b	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0xb86693ed	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb89b92af	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0xb8a6ffeb	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b566ce	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0xb8b9805e	make_kuid
+EXPORT_SYMBOL	 vmlinux 0xb8c406a9	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0xb8c66c45	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xb8efef9e	clk_get
+EXPORT_SYMBOL	 vmlinux 0xb8f16e0a	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0xb8fe4d77	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb906df0d	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb95f98d6	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 vmlinux 0xb9653fae	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0xb967ecc6	__f_setown
+EXPORT_SYMBOL	 vmlinux 0xb96819a8	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0xb98331fc	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0xb9a21d8e	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0xb9a8f03b	omap_stop_dma
+EXPORT_SYMBOL	 vmlinux 0xb9ab3eb2	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0xb9acd3d9	__put_user_2
+EXPORT_SYMBOL	 vmlinux 0xb9c231e2	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0xb9cd3c03	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xb9d1351f	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9f26cc7	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xb9fc381a	qcom_scm_hdcp_req
+EXPORT_SYMBOL	 vmlinux 0xba035a9a	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xba0795a0	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0xba1131b2	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0xba24c4b6	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0xba46853b	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xba4925ef	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba5e615e	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0xba79f163	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xba8a3580	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xba8c609d	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0xbaa7c8c5	krealloc
+EXPORT_SYMBOL	 vmlinux 0xbaae6ce4	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0xbab9ccf2	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0xbabccd2a	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xbac91c3c	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0xbaf434c2	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb0a29f1	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0xbb14eb31	bcmp
+EXPORT_SYMBOL	 vmlinux 0xbb1e80cc	path_put
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb34f2a6	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3a18fe	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0xbb479118	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xbb6eb6a9	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 vmlinux 0xbb72d4fe	__put_user_1
+EXPORT_SYMBOL	 vmlinux 0xbb7aa917	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb90c314	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xbb9fbe59	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0xbba84bfa	key_move
+EXPORT_SYMBOL	 vmlinux 0xbbb5d91c	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0xbbc4288d	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0xbbcff9a4	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0xbc10dd97	__put_user_4
+EXPORT_SYMBOL	 vmlinux 0xbc1373b0	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0xbc14a6a6	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xbc17ebc9	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xbc1fcee1	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xbc22513a	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0xbc2771c0	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xbc292f2e	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xbc61f012	of_clk_get
+EXPORT_SYMBOL	 vmlinux 0xbc6344c3	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0xbc6e212d	sync_inode
+EXPORT_SYMBOL	 vmlinux 0xbc755bd3	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xbc8c2a7a	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xbc9ed2d8	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc0bae9	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbcc658c2	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0xbcd4d539	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xbcde20ec	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xbceec805	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0xbd091ba2	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0xbd19d984	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0xbd1b621e	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xbd224983	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xbd24cc0f	genl_notify
+EXPORT_SYMBOL	 vmlinux 0xbd30bff6	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xbd373f20	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0xbd3db484	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0xbd612a9c	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xbd6d2233	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0xbd784317	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0xbd7a1801	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xbd820297	rtc_lock
+EXPORT_SYMBOL	 vmlinux 0xbd8555f8	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xbd917f69	snd_dma_free_pages
+EXPORT_SYMBOL	 vmlinux 0xbdb4bc7e	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xbdc05633	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xbdc535fc	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xbdcb7b72	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0xbdd20f85	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xbded85dc	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xbdef669b	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0xbdf4c7a1	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xbe0e3cba	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0xbe131eba	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xbe3adff7	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xbe3ff1c2	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe5665f5	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0xbe58206e	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe5df073	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xbe6492d2	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xbe697195	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0xbe71db4d	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0xbe8d98ff	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xbea6a31e	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0xbea93522	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0xbebbb98c	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xbebdc660	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0xbecdd082	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbee429c6	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xbeedb006	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef83ce5	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0xbf15cf11	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xbf17313b	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0xbf23cd34	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0xbf3a24bd	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xbf41f063	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xbf4d4539	udp_table
+EXPORT_SYMBOL	 vmlinux 0xbf7347b2	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xbf78b7b6	msm_pinctrl_dev_pm_ops
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfc36cd4	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0xbfc67245	key_link
+EXPORT_SYMBOL	 vmlinux 0xbfdf7bc3	mempool_create
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbffa827b	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xbffcbd8b	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xc014d861	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0xc01b01b6	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc0288d88	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xc055c8fe	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0xc0577ab2	nand_create_bbt
+EXPORT_SYMBOL	 vmlinux 0xc0612f5a	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc0927610	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc09b4284	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xc0a6a8c5	omap_set_dma_dest_burst_mode
+EXPORT_SYMBOL	 vmlinux 0xc0a98385	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b6c1a4	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xc0b71742	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0xc0b87b8b	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0xc0c53235	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xc0d6b234	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0xc0da0e99	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0xc0f6e903	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xc0f77735	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0xc0fb357a	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xc0fce7d7	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc104368b	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xc13a7ba6	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xc13d82da	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0xc1463042	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc15e92b6	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0xc15f4ed8	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc1642faf	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1841535	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1d9aa2f	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0xc1f12271	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xc2059c64	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0xc21d8324	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0xc229be1a	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xc24631c4	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xc247bfec	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xc24cf530	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xc25bf914	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc26c55f6	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xc271c3be	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xc289dacf	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0xc29b237d	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xc29c27b6	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xc2a599a5	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0xc2acc033	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xc2b0fceb	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0xc2b16df0	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xc2b1d4e1	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0xc2ca1b6f	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xc2cf2dde	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc2e6d601	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xc2ede9c5	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xc2f61f80	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xc2ffe3ca	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc30884bb	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc33110b3	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0xc34b341e	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0xc358aaf8	snprintf
+EXPORT_SYMBOL	 vmlinux 0xc3598cab	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xc36c6d3c	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc3a8ec55	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xc3cc0d28	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xc3d99ad0	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0xc3dbb911	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0xc3ea47d4	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0xc3f1e27b	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0xc40b0a1f	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc41e506e	snd_timer_open
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc45440d4	page_get_link
+EXPORT_SYMBOL	 vmlinux 0xc4654fe9	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xc4657dc8	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47fea32	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xc48cb86d	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xc49a8d51	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xc49f5077	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0xc4afa811	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xc4b6cf43	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xc4cb68c6	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xc4f78b82	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0xc504f678	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xc5062f9d	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xc52b9b85	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xc52da066	omap_set_dma_dest_params
+EXPORT_SYMBOL	 vmlinux 0xc52e7803	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0xc52fa954	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0xc5380243	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xc5459fb0	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0xc561a746	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xc581500f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc595eaae	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xc59858fa	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0xc5992914	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a1e042	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0xc5a5c1d8	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 vmlinux 0xc5ddb282	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5ee6c48	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc5fe26cd	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xc5feb767	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xc602a964	request_firmware
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60d4685	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0xc6172c64	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc63874c0	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc6a087d9	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xc6b4ded4	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6d1a473	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0xc6e7cd3e	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0xc6ec2767	snd_pcm_mmap_data
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f967ef	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc73271ba	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0xc734b4d4	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 vmlinux 0xc74b83de	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0xc74caa68	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc78bcd47	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7bdc281	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c31b3b	rproc_free
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7d8328f	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL	 vmlinux 0xc7ee7b11	flush_signals
+EXPORT_SYMBOL	 vmlinux 0xc7f54b7b	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0xc80735ad	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xc80e2e56	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xc814d305	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xc81e3d2a	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc823881a	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xc8339e24	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84f6af6	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xc852d275	tc6393xb_lcd_mode
+EXPORT_SYMBOL	 vmlinux 0xc854ad06	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xc863cc8e	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc874b193	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0xc8788dac	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0xc8789151	snd_dma_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc88b1df2	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc89d17b3	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b58a25	__memset64
+EXPORT_SYMBOL	 vmlinux 0xc8c0e9eb	map_destroy
+EXPORT_SYMBOL	 vmlinux 0xc8df9a9c	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xc9076a45	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0xc91f1faf	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0xc93b201d	dst_release
+EXPORT_SYMBOL	 vmlinux 0xc94798b1	d_alloc
+EXPORT_SYMBOL	 vmlinux 0xc94d65f2	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0xc95ac3a9	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9822234	clk_register_clkdev
+EXPORT_SYMBOL	 vmlinux 0xc999c37f	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0xc99cbb83	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9b2e2da	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xc9b86384	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xc9d117d5	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xc9d5642d	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e9d5f9	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0xca123433	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xca1eb249	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca301690	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0xca3f852e	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca48a4ec	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0xca5d0036	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0xca620c01	input_register_device
+EXPORT_SYMBOL	 vmlinux 0xca6566c5	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0xca667711	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca813ce6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xca931bb6	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca9bf5eb	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0xcaa267a3	snd_ctl_notify
+EXPORT_SYMBOL	 vmlinux 0xcababd18	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xcac39c10	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0xcacb7758	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0xcada5f5d	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0xcae1689b	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xcae23271	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0xcae6f731	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xcaef8286	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xcaf1ee93	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb287fdb	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xcb29ad6c	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xcb2af58e	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0xcb3589ee	snd_ctl_rename_id
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3b5e0b	bdi_put
+EXPORT_SYMBOL	 vmlinux 0xcb514ff5	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0xcb606eb9	xa_load
+EXPORT_SYMBOL	 vmlinux 0xcb67a0c9	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0xcb8481e2	cros_ec_get_next_event
+EXPORT_SYMBOL	 vmlinux 0xcb8c753b	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xcb8deb75	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0xcb991d7e	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0xcb9c9790	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xcb9d6f65	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbaa4054	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0xcbae2645	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xcbb01ca7	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbcaa076	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd61d24	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0xcbe28ab2	bdgrab
+EXPORT_SYMBOL	 vmlinux 0xcbe488f6	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xcbe6fbf0	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xcbf1dbd0	utf8len
+EXPORT_SYMBOL	 vmlinux 0xcbf938af	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0xcc1b0425	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc30f0f1	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0xcc3f8e3e	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc4c3837	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc5dc0b5	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0xcc623dc8	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 vmlinux 0xccb6d738	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xccbc1c7f	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0xccbe4672	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xccc2072e	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccde7eb7	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xccf7c919	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xccfa8445	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfcde03	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xccfd228b	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd00abbc	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcd0282ca	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0xcd05462b	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xcd19f4dd	phy_start
+EXPORT_SYMBOL	 vmlinux 0xcd1ad395	phy_attach
+EXPORT_SYMBOL	 vmlinux 0xcd237848	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd30b95a	tmio_core_mmc_clk_div
+EXPORT_SYMBOL	 vmlinux 0xcd431c51	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0xcd486f92	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL	 vmlinux 0xcd723832	of_clk_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xcd7dbbe8	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xcd950162	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0xcd982a93	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0xcd9e5a5a	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xcda8974f	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0xcdb65e44	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xcdbb6af6	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcdd27f6a	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0xcddd3050	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0xcde2b2d8	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcdf6a9be	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0xce043a53	amba_request_regions
+EXPORT_SYMBOL	 vmlinux 0xce0a2640	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce2f2c99	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0xce39b644	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xce3ca308	copy_from_user_toio
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce51ec53	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xce54e554	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce7d5be6	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xce9dcc9a	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceabff1a	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xcecd2ae0	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xceda72c9	param_get_int
+EXPORT_SYMBOL	 vmlinux 0xcede275c	memremap
+EXPORT_SYMBOL	 vmlinux 0xcee849f6	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xcef5deb7	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf01f610	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0xcf11b4f2	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf3fac84	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xcf42195c	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0xcf5412fc	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0xcf641065	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xcf69f4a4	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0xcf7e1d1d	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xcf86cdac	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xcf87e6d4	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xcf977583	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfac9ac6	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0xcfbed40d	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0xcfbfd19b	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0xcfc61855	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xcfd35f3a	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0xcfe922d7	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xd007fc70	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xd0113880	kmap_high
+EXPORT_SYMBOL	 vmlinux 0xd0254544	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xd038ddc3	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0xd03a6908	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd04c7414	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0xd04febe9	arm_elf_read_implies_exec
+EXPORT_SYMBOL	 vmlinux 0xd050c595	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0xd053293d	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xd0559d8f	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xd0608301	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0815394	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0xd0853b45	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0xd085e7a0	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xd097159d	register_sound_dsp
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a58ea4	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0b2913f	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0xd0be6497	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0xd0c2261d	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xd0c8c5c3	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xd0df5505	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0xd0dfc772	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xd0e29c95	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe4519	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xd0fee992	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xd108b575	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xd109778f	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0xd10997b7	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0xd1363cc1	ucs2_strsize
+EXPORT_SYMBOL	 vmlinux 0xd13718c7	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xd14a8a1d	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xd154e959	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xd169579e	follow_up
+EXPORT_SYMBOL	 vmlinux 0xd17e11f3	simple_map_init
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd1837d76	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0xd195cede	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0xd1b9bc43	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0xd1c97ace	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0xd1d02fc6	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1f19fdd	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0xd200c417	__brelse
+EXPORT_SYMBOL	 vmlinux 0xd2051916	qcom_scm_cpu_power_down
+EXPORT_SYMBOL	 vmlinux 0xd2449c9d	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0xd2522110	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0xd25532e4	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd25e62ce	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xd263e2a8	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xd26c4648	snd_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xd26f9619	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0xd27a891b	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd27c447f	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xd2802d5c	pgprot_kernel
+EXPORT_SYMBOL	 vmlinux 0xd280c421	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0xd283a023	clk_add_alias
+EXPORT_SYMBOL	 vmlinux 0xd288841c	omap_get_dma_dst_pos
+EXPORT_SYMBOL	 vmlinux 0xd28aeedd	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xd29f315d	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xd2b88436	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0xd2c6cbf0	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0xd2d5c660	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0xd2d881dc	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xd2d9a1ff	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e073f1	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xd2eb32b9	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0xd30c35a5	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0xd30cc566	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xd31091a1	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd32d6c08	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xd33aef62	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0xd340e650	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35f75a1	match_string
+EXPORT_SYMBOL	 vmlinux 0xd36be0bf	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd398747c	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0xd39b6d90	snd_jack_set_parent
+EXPORT_SYMBOL	 vmlinux 0xd39d5053	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0xd39fa6ab	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3a57350	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xd3c1e89c	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3f951d6	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0xd3f99803	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xd3fcd391	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd41465ba	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0xd449f862	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0xd451bdad	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd45cb680	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xd4675bdd	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xd46b54dd	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xd4743a92	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xd4835ef8	dmi_check_system
+EXPORT_SYMBOL	 vmlinux 0xd48778da	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xd48fdeef	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a6f59a	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xd4b22d01	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4cd77dd	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xd4e2f0e4	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0xd4e5003b	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xd4f4e478	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd51ff92c	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52e4543	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xd545545b	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0xd55a042a	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0xd563b2a9	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0xd564a78d	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd58f27b6	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0xd593f646	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xd5a8d099	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0xd5a975d2	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5bcf64c	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xd5c05ca6	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xd5c70e8e	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0xd5f52d4f	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xd5f70ca6	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd6204c0a	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xd627480b	strncat
+EXPORT_SYMBOL	 vmlinux 0xd62966f2	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0xd63fafc2	div64_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xd641e3e7	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xd64b06cc	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xd6582ab0	xa_extract
+EXPORT_SYMBOL	 vmlinux 0xd658598b	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xd65ec2af	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xd6808683	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd6a310a2	seq_release
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6bc04ff	cmd_db_read_aux_data
+EXPORT_SYMBOL	 vmlinux 0xd6cac30f	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xd6cb50d9	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6d470ec	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xd6e4013a	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6eeefb4	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd705f9d2	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd72f470b	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd759112a	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0xd76cb3c3	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xd77fcc5a	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xd787d56f	inet_release
+EXPORT_SYMBOL	 vmlinux 0xd78a4dd9	snd_pcm_stop
+EXPORT_SYMBOL	 vmlinux 0xd797b9a5	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7e003cb	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7f0399e	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xd7f6316a	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0xd7fcd2c8	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xd80eecc7	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xd8145cca	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xd8155431	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0xd83dc5e6	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xd8410611	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xd8567b82	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xd85acb7b	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0xd85dbfa1	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd860755b	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xd86449d9	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0xd875584a	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89ee11f	krait_set_l2_indirect_reg
+EXPORT_SYMBOL	 vmlinux 0xd8a10d6b	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xd8a7f00d	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8aac232	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0xd8c4c5ec	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0xd8d711c8	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0xd90d7622	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0xd90e0023	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0xd9183019	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xd93c2f4c	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0xd955d2b7	omap_set_dma_dest_data_pack
+EXPORT_SYMBOL	 vmlinux 0xd974a08f	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd98e1590	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd9914707	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0xd9a3655a	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xd9b58a05	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xd9c051a2	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xd9c1f92f	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0xd9c781a7	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xd9ce3507	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e2212f	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xd9f7bc67	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xda05d77d	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0xda0bcc5d	devm_clk_release_clkdev
+EXPORT_SYMBOL	 vmlinux 0xda2eafe7	__put_page
+EXPORT_SYMBOL	 vmlinux 0xda3544f7	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda516a04	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xda51ac04	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0xda57dbd6	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0xda5851e6	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xda59ab8f	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xda59abc3	seq_escape
+EXPORT_SYMBOL	 vmlinux 0xda5c8a63	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 vmlinux 0xda6fc0b3	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda7956d2	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda93692e	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdad97f94	__raw_writesw
+EXPORT_SYMBOL	 vmlinux 0xdaee2552	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0xdaf8598b	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xdb03a2ab	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xdb05b469	of_get_ddr_timings
+EXPORT_SYMBOL	 vmlinux 0xdb084d12	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xdb0d3e06	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xdb10d01f	of_match_device
+EXPORT_SYMBOL	 vmlinux 0xdb2008cf	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xdb2d384b	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xdb30f8a2	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0xdb371eae	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xdb380fb8	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xdb4292e4	omap_set_dma_params
+EXPORT_SYMBOL	 vmlinux 0xdb597862	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb6e4f00	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb81e2fc	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0xdb9ca3c5	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xdbaae4ad	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xdbb49764	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbf5aaa0	snd_device_register
+EXPORT_SYMBOL	 vmlinux 0xdc05ea3d	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc241e9c	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xdc299059	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xdc3ba09c	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0xdc3d7b53	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xdc3f9737	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc4e7843	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc5c7961	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xdc5e5ab6	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0xdc5f1ec6	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xdc7576dc	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0xdc77d170	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0xdc785b2d	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xdc8cb30b	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0xdc9c5708	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xdc9e600a	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0xdcc2e14a	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0xdcd41f50	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0xdcf6d045	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL	 vmlinux 0xdd109989	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0xdd226fa9	__raw_readsw
+EXPORT_SYMBOL	 vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd43bf04	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xdd4a0885	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0xdd4ffa9b	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0xdd5cf8e9	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd7e3192	qcom_scm_pas_auth_and_reset
+EXPORT_SYMBOL	 vmlinux 0xdd81421f	trace_print_symbols_seq_u64
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd8e6737	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xddb15ca0	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0xddb6608a	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xddcbf3dd	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0xddd59ab2	mtd_concat_create
+EXPORT_SYMBOL	 vmlinux 0xdde8507f	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xddefe99f	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0xddffbe48	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0xde051a6f	kernel_write
+EXPORT_SYMBOL	 vmlinux 0xde0a5bc4	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0xde1563a4	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xde258cd5	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0xde359b8a	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xde433c08	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0xde4b8472	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xde59092a	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xde79cddc	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0xdea60997	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xdebcf2b8	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0xdec030e5	arm_clear_user
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded290fb	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdee0ec81	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xdee3f9b7	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xdeedc498	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf07b802	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0xdf0ebbb3	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xdf211fe5	snd_timer_start
+EXPORT_SYMBOL	 vmlinux 0xdf28b0fb	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xdf2b907f	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf314485	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0xdf360d3f	seq_pad
+EXPORT_SYMBOL	 vmlinux 0xdf3a693d	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0xdf52def1	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf709b53	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0xdf76f21e	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xdf89f98d	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfbc94f8	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0xdfd1e7b0	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0xdfd91ce9	omap_type
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff57157	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xdffd2fe0	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xe01298e6	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0xe01d858a	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0xe028a6ca	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xe0405847	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0xe053eb65	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xe0549b5b	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0xe05fd9f9	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xe06f7ef5	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0xe08527d4	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe08b13b3	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0ad4ebd	do_map_probe
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0bd0090	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xe0bef318	icst_hz_to_vco
+EXPORT_SYMBOL	 vmlinux 0xe0cdb99d	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xe0e4d545	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0xe0ed7121	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xe0f461b4	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xe0fb8a2a	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL	 vmlinux 0xe11f5768	free_netdev
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe12d9595	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL	 vmlinux 0xe14f1044	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xe153f436	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0xe169f259	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xe18d5348	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe194729a	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0xe1a9b2ff	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0xe1d0b9f9	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xe1d312a3	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xe1d7cb9e	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1f8cf2c	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0xe1fd6f6b	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xe207d47f	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0xe2178692	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0xe2274a1c	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xe265ac11	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xe266f098	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0xe2784d77	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0xe27a16f0	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xe28693be	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 vmlinux 0xe28e4207	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0xe2a765a5	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0xe2ac51be	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xe2b567a3	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xe2b64de9	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0xe2c651be	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d47398	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2d983a0	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xe2f5adf0	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0xe2f91c84	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xe2fabc4a	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30be784	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe341df1a	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xe346f67a	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0xe3482046	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xe353167e	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe365db73	skb_append
+EXPORT_SYMBOL	 vmlinux 0xe3747c29	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xe38fca95	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0xe3a90dfa	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xe3ae0c1f	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xe3b0c40a	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0xe3b8d9ce	of_iomap
+EXPORT_SYMBOL	 vmlinux 0xe3e51585	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f07e95	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe418970e	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0xe428464e	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe452b910	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0xe454268d	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 vmlinux 0xe45e295a	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 vmlinux 0xe46602bd	new_inode
+EXPORT_SYMBOL	 vmlinux 0xe46d9ea2	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0xe49ec086	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0xe4b1c79d	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xe4b4df2e	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0xe4c43c7f	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL	 vmlinux 0xe4df8500	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0xe500777a	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0xe5048776	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0xe5119132	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0xe515e8fc	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe5241670	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xe53f1a0a	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xe5471906	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xe54e072b	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0xe55482bc	__breadahead
+EXPORT_SYMBOL	 vmlinux 0xe55a4ffc	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xe5656291	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56a3ca3	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 vmlinux 0xe57c49b1	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0xe57e5996	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0xe5807e62	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe585ea41	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5b85eed	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5be832f	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5d75187	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0xe5e3e5c9	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0xe5e9a325	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0xe5ed0822	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0xe6025927	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0xe6061bc0	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe6364516	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe63ac5d6	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0xe64cf674	kmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xe6562601	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xe669f735	snd_pcm_new_stream
+EXPORT_SYMBOL	 vmlinux 0xe66bbc9d	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0xe678868b	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0xe68ed60b	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0xe693a6ce	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0xe6c12171	complete
+EXPORT_SYMBOL	 vmlinux 0xe6e3f21e	snd_timer_continue
+EXPORT_SYMBOL	 vmlinux 0xe6f2e4ff	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0xe6f3ab15	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL	 vmlinux 0xe72ed981	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe732adef	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xe73ab169	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0xe7856592	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xe793491d	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xe7a9902b	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xe7af64b1	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe7baeecb	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7de1b77	inet_bind
+EXPORT_SYMBOL	 vmlinux 0xe7e2761c	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xe7f9f7c9	snd_ctl_free_one
+EXPORT_SYMBOL	 vmlinux 0xe82504d3	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0xe84252f6	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xe842dc8c	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0xe846de55	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xe84a12df	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0xe850a558	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0xe855a8e7	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0xe864d887	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0xe874eb3c	bdput
+EXPORT_SYMBOL	 vmlinux 0xe8887a0c	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xe8be74c7	md_write_end
+EXPORT_SYMBOL	 vmlinux 0xe8cd0a2c	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0xe8fe5024	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xe9099da9	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0xe91321fb	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe91876cb	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0xe9218b1b	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xe925c324	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xe92cded3	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xe92d6468	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xe9325f03	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0xe93a4dde	submit_bio
+EXPORT_SYMBOL	 vmlinux 0xe9408a1a	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0xe9508671	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe95e7382	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xe9680a02	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0xe9713f8c	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xe9885663	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 vmlinux 0xe99aa77c	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xe99b7111	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0xe9b2a627	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xe9cbf734	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xe9dce2ab	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0xe9e8faeb	efi_tpm_final_log_size
+EXPORT_SYMBOL	 vmlinux 0xe9f3734c	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0xe9f6d94d	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xea12741b	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0xea1969da	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xea1f5b88	samsung_rev
+EXPORT_SYMBOL	 vmlinux 0xea285d5f	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xea38a185	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea4732f4	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xea5b7b90	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0xea669f9a	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea8bab67	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xea93771c	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0xeaa03f47	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xeab55165	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeb03b389	__raw_readsl
+EXPORT_SYMBOL	 vmlinux 0xeb0b9bf9	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0xeb1b120e	omap_set_dma_write_mode
+EXPORT_SYMBOL	 vmlinux 0xeb1c3b93	__register_nls
+EXPORT_SYMBOL	 vmlinux 0xeb33088a	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb4e1b9b	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xeb4e8c99	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xeb55a931	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xeb586a0b	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xeb59b963	registered_fb
+EXPORT_SYMBOL	 vmlinux 0xeb5ac56c	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0xeb64673c	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xeb7e42d9	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0xeb95bd40	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xebcc5490	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebfa20b8	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0xebfdcbdf	system_serial_high
+EXPORT_SYMBOL	 vmlinux 0xec0af935	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0xec1a3501	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0xec37a2e8	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0xec4d9e3a	clk_get_sys
+EXPORT_SYMBOL	 vmlinux 0xec63250c	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0xec71948f	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xec92650c	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xec98300f	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xeca17ae9	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0xeca59102	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xecab1304	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xece2f4b8	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf8a3b4	__raw_writesl
+EXPORT_SYMBOL	 vmlinux 0xed1b9951	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0xed2ae226	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xed2ba999	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xed329c34	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0xed32c6d4	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0xed4b633b	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0xed6054e6	bioset_init
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed6e5b80	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xed905d21	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xed93d409	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xed93f29e	__kunmap_atomic
+EXPORT_SYMBOL	 vmlinux 0xeda1bfe3	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedbdd784	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedd9106d	__ashrdi3
+EXPORT_SYMBOL	 vmlinux 0xedeb59d9	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xedf8a145	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xedfecdac	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0xee09bb36	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee43fd9b	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee5d8ff0	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xee75e856	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0xee766843	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xee8906c8	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xee922b77	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0xee9e5ce7	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xeeb4da12	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0xeeb63006	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0xeec6a28b	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0xeee1c8ed	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xeee9aa2c	dentry_open
+EXPORT_SYMBOL	 vmlinux 0xeeebb246	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xef06d494	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0xef2477b6	clk_bulk_get_all
+EXPORT_SYMBOL	 vmlinux 0xef27881e	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0xef29f7e0	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0xef4cad92	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0xef58a414	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xef671c0b	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0xef7073e6	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xef73eeb3	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xef7a936d	tty_name
+EXPORT_SYMBOL	 vmlinux 0xef845e6e	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0xef8ac53d	qcom_scm_restore_sec_cfg
+EXPORT_SYMBOL	 vmlinux 0xefa02adb	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xefa38909	mem_map
+EXPORT_SYMBOL	 vmlinux 0xefb19349	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0xefb7bccf	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xefd00728	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xefd046a4	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0xefda5b51	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0xefde8c86	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xefec312f	omap_get_dma_active_status
+EXPORT_SYMBOL	 vmlinux 0xf00075eb	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf01528a4	dim_turn
+EXPORT_SYMBOL	 vmlinux 0xf01f8368	iput
+EXPORT_SYMBOL	 vmlinux 0xf0286f96	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xf02a6977	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xf0488e73	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0xf06cee2c	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xf0791372	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf0968e11	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xf0997a92	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a05551	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xf0a296c7	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xf0a343ed	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf0bd835f	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0xf0dad8d3	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xf0ed2ef4	__raw_writesb
+EXPORT_SYMBOL	 vmlinux 0xf0ef52e8	down
+EXPORT_SYMBOL	 vmlinux 0xf0f9e9bb	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0xf0fc36d4	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0xf0ff6e4b	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf102732a	crc16
+EXPORT_SYMBOL	 vmlinux 0xf108715e	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xf111fb21	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xf138cafa	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xf162a1f6	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0xf16a3f7f	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xf194c20c	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf19e526d	seq_printf
+EXPORT_SYMBOL	 vmlinux 0xf1b74f83	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0xf1ce8a5d	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xf1d10889	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xf1d58289	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1dda6c1	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1ea6f1c	__bswapsi2
+EXPORT_SYMBOL	 vmlinux 0xf1fdbb30	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xf20f5fe4	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22f5a40	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0xf2302035	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xf2316567	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xf236c75e	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf28380a5	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf2867cad	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xf28fe16e	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xf2ac0097	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xf2ad80d9	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 vmlinux 0xf2b5796e	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0xf2bdf2cc	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xf2c2361d	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c8465c	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0xf2c99241	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xf2d1307e	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2e971f0	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0xf2fd17ae	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf32ba07d	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xf344852c	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xf3452fea	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xf345ce31	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf348ff41	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf357affe	dqget
+EXPORT_SYMBOL	 vmlinux 0xf35cd65e	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xf35f3878	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xf37d9937	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf392e782	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3a11c35	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3c4dfcc	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0xf3d6001b	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0xf3d6dab6	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0xf3e09d3f	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3ee0673	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 vmlinux 0xf41a8d16	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0xf41ca60a	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0xf41fb7bf	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xf4313a3a	contig_page_data
+EXPORT_SYMBOL	 vmlinux 0xf43fae55	input_release_device
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf455fb44	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf4946022	snd_pcm_set_sync
+EXPORT_SYMBOL	 vmlinux 0xf4990d3d	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0xf4a04498	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xf4ab6c5b	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0xf4ba246e	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xf4baa334	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c57040	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xf4d2818d	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xf4d2b8d4	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf5052af8	snd_pcm_release_substream
+EXPORT_SYMBOL	 vmlinux 0xf50b1046	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf543f6c9	snd_info_register
+EXPORT_SYMBOL	 vmlinux 0xf564412a	__aeabi_ulcmp
+EXPORT_SYMBOL	 vmlinux 0xf572d5e8	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xf5940526	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0xf59c5ee9	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xf5b0826b	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xf5b666ef	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf5b75326	snd_jack_set_key
+EXPORT_SYMBOL	 vmlinux 0xf5c34103	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xf5d64db8	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xf5e5508d	arm_coherent_dma_ops
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5f9158d	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xf61b97ac	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xf61cd986	input_event
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf652a2d3	igrab
+EXPORT_SYMBOL	 vmlinux 0xf652d359	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf662da71	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf68369c0	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0xf6a0c20d	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xf6b00cdb	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0xf6c51abf	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0xf6dc9d21	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f311c0	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf705fa49	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0xf709b98d	single_open
+EXPORT_SYMBOL	 vmlinux 0xf7163ec9	__raw_readsb
+EXPORT_SYMBOL	 vmlinux 0xf720a811	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0xf721fdea	bdevname
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf746b31a	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf768246c	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xf76843b5	qcom_scm_pas_supported
+EXPORT_SYMBOL	 vmlinux 0xf7725fc0	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf776fe80	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL	 vmlinux 0xf7859bc0	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xf78745bc	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0xf7bd518d	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0xf7c1ec4b	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xf7c83cba	padata_stop
+EXPORT_SYMBOL	 vmlinux 0xf7daec6e	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xf805076d	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xf80fbf6f	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf820ad25	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf838fd97	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0xf83b2802	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0xf8596a77	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xf859b766	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0xf85e6e7b	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xf864f097	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0xf865ea52	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xf86f27cd	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf870da5a	snd_timer_interrupt
+EXPORT_SYMBOL	 vmlinux 0xf8725cff	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf88af845	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0xf89ea737	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0xf8afe8be	snd_ctl_remove
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8dad0cb	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xf8e2554f	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8f8caec	elm_config
+EXPORT_SYMBOL	 vmlinux 0xf90ad48c	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf91d9fa9	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0xf9231e53	snd_ctl_add
+EXPORT_SYMBOL	 vmlinux 0xf9240069	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0xf93aae46	__arm_smccc_smc
+EXPORT_SYMBOL	 vmlinux 0xf93e33d1	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf971b3df	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf9809c51	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf98a62fd	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0xf999bcd2	snd_jack_report
+EXPORT_SYMBOL	 vmlinux 0xf9a36b47	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9ac0619	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0xf9b4bc87	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0xf9bc65f1	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c3a33a	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0xf9c5a249	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xf9d194d1	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xf9efcb4c	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xfa021f90	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xfa098c94	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa3e487d	tcp_close
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa6a561d	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0xfa72be38	xa_get_order
+EXPORT_SYMBOL	 vmlinux 0xfa829633	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa91443c	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0xfa9f2c84	nand_calculate_ecc
+EXPORT_SYMBOL	 vmlinux 0xfaa566dc	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xfab4a91d	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0xfabbfcd9	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfae345c7	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xfaff4acc	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xfb02c360	serio_close
+EXPORT_SYMBOL	 vmlinux 0xfb14ae2b	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xfb1d7438	down_read
+EXPORT_SYMBOL	 vmlinux 0xfb1e8768	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xfb336634	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb42b3b0	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb49d46a	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0xfb58873b	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL	 vmlinux 0xfb923d27	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xfba75692	fb_blank
+EXPORT_SYMBOL	 vmlinux 0xfba7b7d3	udp_poll
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad0e6e	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbd6b147	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0xfbdfd3f1	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0xfbf2e9ab	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0xfc14e8c6	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xfc2f9d4e	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f3589	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfc52abc7	qcom_scm_pas_shutdown
+EXPORT_SYMBOL	 vmlinux 0xfc54e25d	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xfc5d97e1	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0xfc65459a	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xfc67843d	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xfc858afc	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xfc8d828a	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xfca01205	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xfcce163f	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd2402ff	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL	 vmlinux 0xfd539a38	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0xfd574257	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0xfd8836be	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0xfd88e6b1	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0xfd90b2ec	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdb7d799	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0xfdc0ebf5	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfde3ee15	cdev_add
+EXPORT_SYMBOL	 vmlinux 0xfdedbc82	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0xfdf4cff0	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xfdf87370	skb_trim
+EXPORT_SYMBOL	 vmlinux 0xfdff94e0	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe056e53	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0xfe171764	ioremap_page
+EXPORT_SYMBOL	 vmlinux 0xfe33bf84	filp_open
+EXPORT_SYMBOL	 vmlinux 0xfe41829c	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe604214	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0xfe7091a4	tc6393xb_lcd_set_power
+EXPORT_SYMBOL	 vmlinux 0xfe81402c	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xfe90c4a6	_find_first_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfecf8b84	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfef0867a	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff4db6c5	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0xff51d4c5	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0xff572313	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 vmlinux 0xff63a6fb	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff6b1c79	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0xff6c1168	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xff727c6d	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0xff8c2e5a	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff9610ee	qcom_scm_assign_mem
+EXPORT_SYMBOL	 vmlinux 0xff967ef3	ps2_init
+EXPORT_SYMBOL	 vmlinux 0xff996450	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0xffae6961	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0xffb94ef0	_test_and_change_bit
+EXPORT_SYMBOL	 vmlinux 0xffc148f5	current_time
+EXPORT_SYMBOL	 vmlinux 0xffdc6f7b	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0xffdf2e2d	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff2c912	jbd2_journal_errno
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0x5bf67b18	sha1_finup_arm
+EXPORT_SYMBOL_GPL	 arch/arm/crypto/sha1-arm 0xe3b2d6dd	sha1_update_arm
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2bedd632	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x424bad13	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x679e843c	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6c7cc4a3	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x76e7caa9	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x779e8cd3	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x934a69a4	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x957b9f1e	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x9e7e66c1	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa4cc2b92	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xaae49f9e	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xccdb514a	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xcd9c3fab	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xda28c941	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xe7c064dc	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xef7ffd04	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xfb9376be	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xfc221640	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xc32e1c2c	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xc4b1647a	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x1bbaaea7	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x5ebdb758	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x21073716	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xc7a20014	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x410b679e	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x555fdc89	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xa6206d3f	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xb0eedcfe	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x54393d19	async_xor
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x57f3ce7e	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x06ee931c	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x0e110722	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xca9c3358	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x128650df	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x725211b3	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xdc59833c	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xf4c0603e	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x18f1385e	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2a6c618a	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3a495066	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3dcc6e7a	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x532e36f0	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x90456173	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x994a890a	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xa2d32243	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb896895b	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd2cbe61d	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xeb41fe2a	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfd64ae15	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfe2703a8	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x0536c299	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x35875552	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x494a9302	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4e45b26a	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x5546c00e	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x5dec4010	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x6120858f	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7296851b	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7646e4a5	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x7b212ab1	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8ab6e67a	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb081a493	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xde70a2fa	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xe9d297b7	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x504cb053	simd_aead_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x5ac896e6	simd_register_aeads_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x66983e96	simd_skcipher_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x851c747c	simd_aead_create
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x88638552	simd_skcipher_create_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x93658995	simd_register_skciphers_compat
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0x9a226407	simd_unregister_skciphers
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xbfd26f15	simd_aead_free
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xd4dadaba	simd_unregister_aeads
+EXPORT_SYMBOL_GPL	 crypto/crypto_simd 0xefe73979	simd_skcipher_free
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x2aadc406	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xb50b4221	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xc2ff7d3a	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbfe4d257	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x00860f2e	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xebf1a35e	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xeebced64	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x354c0f68	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0xb98e7cd8	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0x911c6d5e	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xbf4774db	ks0108_writecontrol
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xedde6df2	ks0108_page
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xfee8ef7b	ks0108_address
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0xd4bbf5fe	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x69643267	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x891cb40d	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x71d36e4b	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0x954b93dc	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x039fdfcb	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x0aab9a0e	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x5f79fb99	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x6da10b4d	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x0a7d9bd5	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0xc9367168	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x347c0143	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x46ea17ec	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x72ef0b89	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x744a3b86	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7a6b6d9c	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x7be3fd6f	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8420f561	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x861516be	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8e0987fc	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9821f27e	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9ee6ddb9	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa5a65689	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa915baa9	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb6e8d488	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc1c7afb6	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc6b27df3	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc701fb07	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xca1fe98b	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xcc61404d	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd18a7250	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd6ea862e	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xde8618d3	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xdec358ce	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xfc7f530d	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x3bb61080	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x45a4b9be	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x53378408	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x984e9cec	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xf6c71d08	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xfbe85bf2	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x02f76cc5	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x03897f0b	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x05f6caed	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x07a1989e	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2c7ceb21	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x2cc263ad	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x3a283318	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4014c17d	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x46f736de	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x47c18646	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x51191639	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x6c566b3f	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x79c617fd	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x925bcb83	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xae03397d	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xcd2b6abc	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf168301e	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x05a43d64	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x31e9f2ec	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x37af4a45	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6f2c7eb5	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x83f4c39e	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x940e3083	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x9d3eafee	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xa51ef0e8	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xcd0a3099	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xdda177fd	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xec6a4339	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x17c95a0d	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x1ed8e4bf	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x85c63622	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xd5a2a603	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xd6485329	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x15bf0703	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x41d65ccc	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x9b694d2e	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xd5945023	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xde3b04d0	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x444a3e47	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x92bce7c1	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xc0765304	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xf0ccba89	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x13cbfa96	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x4c90f867	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x5ae10c06	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xadc554c2	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xdd822cbe	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0x4c8aa0d8	meson_clk_triphase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/clk-phase 0xa8c11bfe	meson_clk_phase_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/meson/sclk-div 0x9b54bd6e	meson_sclk_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x00d9e064	clk_edp_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x03e13d6f	qcom_cc_register_rcg_dfs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x04bf3163	clk_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0650a0db	clk_regmap_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x065574e3	clk_rcg_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0ac38699	clk_trion_fixed_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0cabeb2a	clk_ops_hfpll
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x0d678ab9	qcom_reset_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x12ac7e1e	clk_alpha_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x1ed919be	clk_rcg_esc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x205a2ef5	clk_branch2_aon_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2d89517e	clk_branch2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x2df91853	clk_fabia_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x33e55c5b	clk_alpha_pll_huayra_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x395868a1	qcom_find_freq_floor
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x40e5accd	clk_byte_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x428b605a	clk_pll_sr2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x46e37d43	clk_rcg2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ad24f3b	clk_alpha_pll_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x4ceda917	qcom_cc_register_board_clk
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x512af5e1	krait_mux_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x51fb21a3	clk_pll_configure_sr_hpm_lp
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x524628c8	clk_rcg2_floor_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x5d5f07eb	clk_regmap_mux_closest_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x616ac782	qcom_cc_probe_by_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x64447760	clk_enable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x66489e5b	clk_rcg_lcc_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6af41b8b	qcom_pll_set_fsm_mode
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x6ca8a88d	clk_pixel_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x73f8eedb	clk_rcg2_shared_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7404b809	clk_rcg_bypass2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x749eda9f	clk_alpha_pll_configure
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x7708b673	clk_pll_vote_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x787e8234	qcom_find_freq
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x81ec30bf	clk_alpha_pll_postdiv_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8218c7e1	clk_byte2_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x83811bbd	qcom_find_cfg_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8833f06d	qcom_cc_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x8ce1f21b	devm_clk_register_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x911def65	clk_alpha_pll_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x99f60998	clk_disable_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0x9cb32992	clk_pll_configure_sr
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa1839eaf	clk_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xa821f919	clk_branch_simple_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb3ff6a2a	qcom_cc_really_probe
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xb73a2cd3	krait_div2_clk_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xbbe74972	clk_alpha_pll_hwfsm_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xc78100cd	clk_dyn_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xccc2b431	clk_trion_pll_postdiv_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xcce7e449	mux_div_set_src_div
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xd8fc3e8e	qcom_find_src_index
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda15b634	clk_rcg_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda35a32d	clk_gfx3d_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xda967930	clk_alpha_pll_fixed_fabia_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdb687f64	clk_branch_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xdf674942	clk_alpha_pll_postdiv_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe1dd9f72	qcom_cc_map
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe3b34b5b	clk_regmap_div_ro_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xe5bc1f18	clk_rcg_bypass_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xef6a0edc	clk_alpha_pll_regs
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf196beb5	clk_regmap_mux_div_ops
+EXPORT_SYMBOL_GPL	 drivers/clk/qcom/clk-qcom 0xf8cb18c2	qcom_cc_register_sleep_clk
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0953562f	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0c2aed03	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3a5966ac	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x4c20ed85	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x52b68bfd	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x578f1fe5	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x6031c0bc	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x652207e3	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x75373b77	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa21cca44	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xa32d7e0a	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc2974207	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xdceee4d6	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf724210b	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xfca2a661	counter_register
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0x71564cdb	bL_cpufreq_unregister
+EXPORT_SYMBOL_GPL	 drivers/cpufreq/arm_big_little 0xc5ba4da3	bL_cpufreq_register
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0x5c2673e4	omap_crypto_cleanup
+EXPORT_SYMBOL_GPL	 drivers/crypto/omap-crypto 0xd9009a51	omap_crypto_align_sg
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x01cf486a	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x7044d413	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xeaf1b523	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x64f63678	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x6d392352	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x9e887acd	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xad2345eb	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xc25a2551	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xe45ff768	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xf7476d40	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x17cb8d21	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x19c9f52a	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x1a68ae89	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x2fc688e1	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x3af16388	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x4a74d3b9	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x5e786dc7	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x69e5402d	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x83e64838	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x8480d212	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x8607ef2c	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x92192d3e	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x95888ffb	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xadb812b5	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb5d514c0	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc17054a1	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xe4fc6516	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0xeb76c9cd	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/firmware/arm_scpi 0x4ff565e0	get_scpi_ops
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x35c00f54	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x7139312b	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x09500ad8	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x180f2a82	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x2b2609ed	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x59a3f5d7	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x70a9ff34	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x76ffb1b2	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x788b91cb	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x8ce702e8	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x97d9dcc7	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa7314ec8	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa797e620	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xad79f812	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xae47fe27	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xbdaeb935	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc8042f1f	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc94573eb	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd4773a68	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd733f3b7	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf9ef8a22	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x1ce42363	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x22794057	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x22fff902	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2cec7a95	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x334f988e	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x4af1ad2b	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x58f0f5ce	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x64ab6391	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x653b07b9	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x74223756	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x9297b4e3	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xcff37789	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x105882b6	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x198804c5	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x28c4fb3f	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x3d4ac5ec	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x463cf3ba	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x701b2796	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x844f5ff1	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xab06bc67	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xe99ed73c	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xee8d7bae	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf2814b13	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf5dfef88	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf94586d6	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x1db3fe9c	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x42054084	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xb22a3540	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xd4e23bb3	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xdab40678	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xec56711a	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xef6ef767	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x067ecd83	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x286cf602	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x2f5bc777	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x37b0e3b1	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5b230192	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x60a97912	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x6ddd5dc3	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xaf2dc979	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xc399b094	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd8b49c7c	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xe4ac7aa2	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xfc7ff965	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x60693e0e	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x3ba51445	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0xb4ff6f48	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x452b2a0f	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x5825dde1	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xa1a6dc74	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xde3a98eb	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xe983c985	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x4faaf82b	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x509c53ef	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x67180b19	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x93068d79	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x96407e35	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x4e3091bf	aspeed_gpio_copro_grab_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0x5dcbe46c	aspeed_gpio_copro_set_ops
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-aspeed 0xe942beab	aspeed_gpio_copro_release_gpio
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0x8ea40ae8	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xd277d8fe	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x4a4b6ab7	analogix_dp_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x4b02b21f	analogix_dp_start_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x6c14a7b3	analogix_dp_suspend
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x85362125	analogix_dp_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x9809455e	analogix_dp_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0x9b0eb399	analogix_dp_stop_crc
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xa56b236b	analogix_dp_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/analogix/analogix_dp 0xc901f8ca	analogix_dp_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05	dw_hdmi_set_channel_count
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5	dw_hdmi_phy_i2c_set_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2d1c0e80	dw_hdmi_setup_rx_sense
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2fac9436	dw_hdmi_set_channel_allocation
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x316212a8	dw_hdmi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x42926f4a	dw_hdmi_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x4a9b174f	dw_hdmi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7	dw_hdmi_phy_gen2_txpwron
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee	dw_hdmi_phy_i2c_write
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43	dw_hdmi_set_sample_rate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xc1e92a88	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd6968220	dw_hdmi_phy_setup_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd8fe547b	dw_hdmi_audio_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xdafa1790	dw_hdmi_phy_read_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xfcba0fe8	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204	dw_mipi_dsi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x41361ae4	dw_mipi_dsi_set_slave
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x42ac3b2e	dw_mipi_dsi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x504c315d	dw_mipi_dsi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x78dd02ab	dw_mipi_dsi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0079561b	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0380a842	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x06c041f1	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x0d49aca5	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2026c255	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x37a2e269	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3d29bbda	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x43d5c1f8	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4445fb47	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4664b7fa	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4b3ef599	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x53018c9c	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x54314466	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x54966ab5	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x58e29990	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x660256e0	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x69386ecc	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7a367329	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x7f2820a3	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x98eb91c6	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9b82ab63	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9c3be607	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xbcf4b166	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc56f9007	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc85590e5	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xcb6f8b18	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe34c0531	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe526789b	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xed2235c6	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x087d726c	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x3dd43132	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x59925fbf	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x747a7116	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x83b03d9d	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xb39f6a04	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xc2d7a08c	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x1f3705e0	imx_drm_encoder_parse_of
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0x2ba22380	imx_drm_encoder_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0xefe99e2d	ipu_plane_disable_deferred
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0xf9238cc6	ipu_planes_assign_pre
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/imx/imxdrm 0xfbb55ab9	imx_drm_connector_destroy
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/mcde/mcde_drm 0xf3b289c3	mcde_display_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x011518fa	meson_vclk_dmt_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x140389bd	meson_vclk_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2b36798a	meson_venc_hdmi_supported_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x2c73cfcf	meson_venc_hdmi_venc_repeat
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0x7da21708	meson_vclk_vic_supported_freq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xab5bee2f	meson_venc_hdmi_supported_vic
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/meson/meson-drm 0xddb7a6e6	meson_venc_hdmi_mode_set
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/pl111/pl111_drm 0x7263f177	pl111_versatile_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x168b05d5	rcar_lvds_dual_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0x78fb8f0b	rcar_lvds_clk_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rcar-du/rcar_lvds 0xc2c930a5	rcar_lvds_clk_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0x09a2085a	rockchip_rgb_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xc3927da2	vop_component_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585	rockchip_rgb_fini
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x279ab1ce	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x3944f1e3	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x3b08bc66	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x02beffca	ipu_cpmem_get_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x03d144f8	ipu_idmac_wait_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x044b5e33	ipu_prg_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x050f0d7b	ipu_di_adjust_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x07036df2	ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0728116a	ipu_csi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x08050d01	ipu_prg_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x08c87f44	ipu_cpmem_skip_odd_chroma_rows
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x0e42bd95	ipu_csi_set_dest
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x118160e1	ipu_ic_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x12508d46	ipu_cpmem_zero
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x13952dfe	ipu_dmfc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x15ec2ba5	ipu_di_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x16416fdc	ipu_prg_channel_configure_pending
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x16bd8f91	ipu_cpmem_set_format_passthrough
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18730251	ipu_rot_mode_to_degrees
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x18aa0dcd	ipu_image_convert_abort
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1bbf6ccc	ipu_dmfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x1e913d9f	ipu_csi_get_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x20e09f6f	ipu_csi_set_mipi_datatype
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x21110d9f	ipu_set_csi_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x230e3aef	ipu_idmac_channel_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2424c9a6	ipu_csi_is_interlaced
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2858b067	ipu_cpmem_interlaced_scan
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2c82ed46	ipu_cpmem_set_fmt
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2cf7ed72	ipu_dc_init_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2e825a67	ipu_smfc_set_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2f92d651	ipu_ic_task_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x2ff932d5	ipu_idmac_set_double_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3020d65c	ipu_prg_max_active_channels
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3166aec7	ipu_dmfc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x31b9220a	ipu_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3337e007	ipu_idmac_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x347037b9	ipu_ic_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3c679191	ipu_prg_channel_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3d8f18f6	__ipu_ic_calc_csc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e86ea72	ipu_di_get_num
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x3e999174	ipu_dc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x418a282f	ipu_drm_fourcc_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42d3d500	ipu_image_convert_unprepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x42d6175c	ipu_image_convert_sync
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x45302d8c	ipu_set_ic_src_mux
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x474c54dc	ipu_idmac_select_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x47891228	ipu_cpmem_set_format_rgb
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4828622c	ipu_idmac_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4917f47a	ipu_ic_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x498b4c7b	ipu_image_convert_enum_format
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4c179b49	ipu_dp_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4d6a7710	ipu_dp_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x4f3b74d5	ipu_dp_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x51475e87	ipu_dmfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x527f3b94	ipu_smfc_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x53de277c	ipu_di_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x54b55446	ipu_cpmem_set_resolution
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x55767280	ipu_vdi_set_motion
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x580d2f81	ipu_vdi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x589fbd72	ipu_idmac_enable_watermark
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x58a8dd1a	ipu_idmac_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5b15aea8	ipu_dp_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5cae270a	ipu_vdi_unsetup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x5e0ac26d	ipu_idmac_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x60bdf2ec	ipu_csi_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x623722e2	ipu_ic_task_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x63593ec7	ipu_csi_init_interface
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x66e729d2	ipu_mbus_code_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x67ca7cba	ipu_cpmem_set_yuv_interleaved
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6aef5993	ipu_cpmem_set_uv_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x6c2d9dc6	ipu_image_convert_prepare
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939	ipu_dc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x78c6b858	ipu_idmac_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7b3f7da1	ipu_cpmem_set_yuv_planar_full
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x7e3ebbc9	ipu_cpmem_set_axi_id
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x83dcae6f	ipu_idmac_buffer_is_ready
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8497c7d4	ipu_degrees_to_rot_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x871638f7	ipu_idmac_clear_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x886c35aa	ipu_smfc_map_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8a9458d2	ipu_image_convert_verify
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8bf95dbe	ipu_cpmem_set_image
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8eb22643	ipu_dp_set_global_alpha
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x8ece82bd	ipu_pixelformat_is_planar
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9058e289	ipu_smfc_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9158d26c	ipu_idmac_lock_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x91ce1a04	ipu_dp_set_window_pos
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x92e1a8d1	ipu_idmac_channel_busy
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x951a09d5	ipu_csi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x962fa072	ipu_cpmem_set_rotation
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9669c4ac	ipu_cpmem_set_block_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x97f08d2f	ipu_ic_task_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x985145a3	ipu_cpmem_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9e2b8e6a	ipu_cpmem_set_high_priority
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9ed6da01	ipu_idmac_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0x9f38e177	ipu_dp_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa0bad14c	ipu_map_irq
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa4b0cabd	ipu_dc_disable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa4f9234c	ipu_idmac_get_current_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa60b144b	ipu_csi_set_window
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa6daa1cb	ipu_image_convert_queue
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa8394b35	ipu_cpmem_set_burstsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa8adc101	ipu_pixelformat_to_colorspace
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xa96882d8	ipu_ic_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xafac6b98	ipu_dp_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb23c6f85	ipu_module_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xb58fbfbf	ipu_ic_task_idma_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xba458b8f	ipu_csi_set_test_generator
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbb8fe373	ipu_image_convert
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbc64c60e	ipu_cpmem_set_stride
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xbf983ba6	ipu_vdi_set_field_order
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc3c2cdb0	ipu_smfc_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4af2e81	ipu_dmfc_config_wait4eot
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc4b15642	ipu_csi_set_skip_smfc
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc603fac7	ipu_image_convert_adjust
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc6675aa9	ipu_csi_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc677177d	ipu_smfc_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc6e0f58a	ipu_prg_channel_configure
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xc97e7a0f	ipu_di_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcbea3eec	ipu_di_init_sync_panel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xcd7fbaa4	ipu_ic_task_graphics_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xce10db35	ipu_stride_to_bytes
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd214e860	ipu_module_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd8f285f0	ipu_vdi_setup
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xd992d26d	ipu_vdi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xdf408e52	ipu_di_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe1a28b54	ipu_dc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe300a959	ipu_dp_setup_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe3dd0c31	ipu_csi_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe6243c52	ipu_dc_enable_channel
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe69c33f3	ipu_fsu_link
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe9179bd1	ipu_dump
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xe992f2b1	ipu_smfc_get
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xeea12b31	ipu_vdi_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf014ebec	ipu_srm_dp_update
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf078ab05	ipu_prg_format_supported
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf0802751	ipu_cpmem_set_buffer
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1440dc1	ipu_ic_put
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf1abac7e	ipu_csi_set_downsize
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf541df2d	ipu_vdi_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xf73d67ad	ipu_fsu_unlink
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xff024f46	ipu_prg_present
+EXPORT_SYMBOL_GPL	 drivers/gpu/ipu-v3/imx-ipu-v3 0xffcf7b50	ipu_dc_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x18f8d17e	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x19ace3c0	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1d91b123	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x29f7da7f	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2a609e2a	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x32580843	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x38b89571	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3fc19fbe	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x41a737af	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x49d98a1b	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4d87585d	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4e561e68	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4e629192	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x502b668f	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x50517685	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5af556bd	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6491304c	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6b195235	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6f8b992f	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x75c9730a	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x841083ce	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x869a833a	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8b0c6307	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8c4c7e14	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8f515e63	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x90fc9178	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x971ecd88	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa5f180a0	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb4c7258e	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc1db64be	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc2cea8af	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc7e77a78	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcfa48674	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd09e4b84	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd35f0140	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd844f644	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd8d3308c	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe6cfe656	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xe8f3366c	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xf3ba86bd	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfaee8289	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfb882e55	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xfcd391a8	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x03e7c114	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0a361082	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0d508155	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0f8c3f78	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x124d5222	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x16edd4d6	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1dbf78b1	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x20f42e72	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x21e634e4	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x26b9fa31	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x27a1332f	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x33c8aa6c	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x35c2687f	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x35f88783	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3bcb4bd3	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3ea7e9dd	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x536c5efa	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5609aa48	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5e1af100	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x60a94257	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6200d532	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6d276012	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7b9a1777	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x82e7d7ac	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x83f62331	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x84602674	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x874c111e	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8e1dacd0	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8fe22b9d	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x92e3998a	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa4c6bfd3	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa5837455	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa90da210	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xb9d9f012	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc43d9544	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc4fa5aaa	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc5e2d0de	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xce779acd	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd28281e3	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd3fbb7be	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xda57c721	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdfe863f6	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe2cce25e	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf1eb476a	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x253732e3	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x045e7871	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x2b54187a	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xae42ca13	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xb6b5d1d0	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xc96202e1	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xcb45c7db	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x36357130	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x8fe66702	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x91d97e89	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xc6976c13	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xd9653f3f	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe86ab6ef	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xecdb8ee3	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xf2dc95cd	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xfbd3209e	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x2081bd01	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x753d563e	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x4b5cfbf9	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0xfe0ec16f	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0164fd41	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x0ef31fb1	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1778d00e	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1827b4fa	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x29b20383	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x33db191d	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x3656b915	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x3e840f2e	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x53646bc8	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x65796933	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x691895f1	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x79c577a7	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x85e43633	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8d983ed7	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xba81ef2f	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd693b7c6	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xd6fd1a61	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xee5d6350	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0x10ffc373	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xc33d9115	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xd046a5d4	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x3b306cb8	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x50746231	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x5e9b01a1	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x618e5836	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6edd5ce4	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x79e9f790	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x7d459d63	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x80347d6b	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x8cda0bc3	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x91b2bb9a	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x93913ba5	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x96544b44	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xb0abae89	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc9db738f	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xcb1bc35e	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd82a5156	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xdc77ce27	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe62c5ae4	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xf5cade88	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1794e9a2	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2b731ab5	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x35be1e7b	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x586ce286	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x85f3efa3	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb6818e18	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc29dc71b	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xddd64d79	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xee118098	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x8a1b7207	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x95404122	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xf99637d9	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x49c76a4f	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x58ea516b	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x5b519585	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x5dfa9238	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xbc8af393	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xbe684ccb	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xcc3c4ffe	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf352ca80	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf7b2e870	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x59c72846	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xac2d80c2	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xc91b127d	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xfa035ebf	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0xe7836886	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x081f545a	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x19d6be83	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x1b3c727e	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x236f1684	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x27800e4b	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2b407f2a	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x2c7b4ae6	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x428cf86e	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x492e4059	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4b974b0a	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x54e213fd	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x59a5d8b8	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x5e5a036e	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x67738990	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76dd5f72	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x779f0ac3	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x78be88ce	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x7924ce08	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x9783462d	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xa3f486cb	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd3873aaf	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd6a50317	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xd8a1d4cf	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xdd357570	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe24f5a2c	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xd1affcae	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xd9955150	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x4f26ed6e	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xa0d7d00f	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xa95caee2	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xf98cebce	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x04d6730d	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x9efdfe2a	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xf68be26a	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x02b5cd21	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x6bf28914	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x15f0178c	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x28b6085b	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x71b2a8f5	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7c666797	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x819554d2	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x995042c3	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xda8cb33d	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xe5447709	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xec6120fc	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf00f1921	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x5e2e94a9	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7f0687db	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9c361685	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0xfff2647d	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x08ca6942	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xcca68737	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xf3a7ea9c	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x4b862ccb	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xc20307d1	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x8dc73815	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x3f65543e	cros_ec_sensors_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x4367a6c2	cros_ec_sensors_core_init
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x9971dac4	cros_ec_sensors_capture
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xb060cbb9	cros_ec_sensors_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xbd6ff04d	cros_ec_sensors_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xc67de95b	cros_ec_sensors_core_write
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xcfac801d	cros_ec_motion_send_host_cmd
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe5af26f1	cros_ec_sensors_read_lpc
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xe8db63af	cros_ec_sensors_core_read_avail
+EXPORT_SYMBOL_GPL	 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xfb422271	cros_ec_sensors_core_read
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x240387db	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0xf689c882	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x5986f4c1	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x87ba7dd0	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x19b2cd90	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x5ae75f70	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xda751b5b	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x3af4acef	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x69a5ced5	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0xa0e4e79f	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x011d48a0	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x13e8eb59	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x3bb41f95	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x3fa91634	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x57c199f9	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x64c714d3	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x7038d788	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x8050d7d3	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb97846d6	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xcf903697	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xde67b8c3	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf1189706	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0xda7f45a2	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xada23d20	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xd4d335ee	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xe0ee3ce7	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0aa3efa9	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0cb519c5	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0ee93535	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0ffaf4cf	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1d0348dc	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1fcd3206	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20ce344a	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x20fad6d2	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x212e8e20	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x2d98cac0	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x32e853cd	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x35866cc1	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x3cdc4143	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x433b6e8a	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x46e08107	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x477e1656	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x481ad9e0	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6264f619	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6358120d	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x65db4094	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x68fa342e	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x7398c2e9	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x73a648b0	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x75bc9585	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x78337867	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x80a4a51d	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8458e511	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x84678d2e	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8639320b	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8cc0485f	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x94dc8132	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x984e894d	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x99e9257a	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x99ea2d52	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9f7a934e	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaaddae8a	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab9ace9c	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb5058c4e	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb7522fb0	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc4a03658	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc8b46507	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcd626bc3	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcfcd5fa5	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcff82aa5	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdb8fc6ac	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe9cc52ea	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf2b3e3e1	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf339cd86	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf6ca13bd	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf973ff22	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xfc1fb44f	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x711cb9d0	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0xbd431fe8	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2a31a8e9	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x43d1363b	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xaefbc2d5	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xafcfa601	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xd68b1875	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0xdf49a694	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0xdb069ca2	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0x96d8b602	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x244086bd	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x00bf6042	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x096f5457	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0b69006d	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0c34706b	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0e21e6b5	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x0e370ce0	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x3951cf45	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x6bc62009	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x818fdbb2	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc89c2781	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xd21d6468	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xd596bc1b	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xeb02985d	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x15077cba	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xa9e3a346	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xd363ae57	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x47b62f3e	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xbea425b0	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x458cc876	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x58c3aed2	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x947b9e3f	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xada36610	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xba4d5702	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xfb3ace7d	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2673331e	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x2f6a246e	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x32d43934	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x53225c2c	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x7279db63	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x77b66686	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xa13b0ae6	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xb7a270e9	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xc95a3de9	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xe80e09f3	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf073259a	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xfe7e39aa	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x019437b1	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x19a74ae4	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x2f18592b	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6aca3d88	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6c7cd171	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7888ffed	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x7d4e5ee8	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x8a960369	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x943b0f7d	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xbfcc8221	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc3a77443	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc4231778	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xd1d8ad6a	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xdf0c8ef0	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xea835542	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0x81e513ad	qcom_icc_rpm_smd_available
+EXPORT_SYMBOL_GPL	 drivers/interconnect/qcom/icc-smd-rpm 0xe8dbdc6c	qcom_icc_rpm_smd_send
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x176eb04f	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x23ae9ab5	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x90fa53b7	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa3b3803a	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa75eaee5	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xea241e03	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xedd525ff	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xf4aeb2b0	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xf80bce1b	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x2c9b1ef5	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x4af15618	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x56aaef52	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x764e0bc3	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xef095c13	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xfd6d07bb	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x24051cdd	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x4223dab4	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x5cea26a7	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x87ce93e0	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xa0c04470	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xbadf0437	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc7902bb7	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xd368cdc6	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xd78d3db0	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe2965a60	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xe7848e26	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1b34e8a8	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x1ca8d201	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x26ebb4be	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x2ecd4b89	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x4695248e	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6cba526f	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6f9e6545	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x6fed0357	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x7f0c62fd	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x8ee8612c	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x94c1c38a	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9a162159	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe7ff51b1	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xee30d127	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x00af95a1	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x06d94b0a	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x157aa73e	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19a50641	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19acd14e	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x1e382318	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x24935482	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x28991160	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x29ef0066	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2cd1be34	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x3ae1afd1	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4f0216b8	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x56bd5947	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5cb0a24a	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65835607	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x68b2f180	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7baca7fe	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x95286aa1	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x9cedcd57	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa60fcee9	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xafae4e81	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb4b03b2e	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb7500cb5	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc1fd1dbc	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd4cd3c1a	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe278bd6d	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe68d70a9	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee926d8f	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf30b9aa6	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf438022f	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xfbd03183	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x29069ebd	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x337983c2	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4b4aee39	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x55fbf991	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x63a89bcb	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6853cd34	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x714e6844	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x790d6f1f	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7c1916eb	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xa585b27e	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xadfc203b	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc7ad4076	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc8131fe2	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca41aba1	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xe1715e3b	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf3854730	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf618b429	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x10a85626	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x03bb93e0	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5730f8ae	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5b3dc349	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x8e094572	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x8f647e48	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x90136207	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xffda7d9b	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x17aeb1f2	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xd2d66bb7	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x379bedf9	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x660b78b2	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xb6ff04e3	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xe4cf0f15	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xe4db08f9	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xecf71ffa	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x29c25d50	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2c2c166c	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x46af8087	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x55f98e63	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x64976f82	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x8a56150c	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa433adbc	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa7083b63	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb8dbd4e1	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6367ed7	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3e25192	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x0a0a3adc	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x0e8e73d8	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x31a50b6c	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x3651d6d5	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x5e4d97d7	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x87c4c5a9	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xbdbb109c	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc843c6aa	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xcfefcf01	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xeb6e3d54	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x1202d659	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x27aed341	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x2c3afff6	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x699eaa53	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xc9d9a662	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xe4bc5c77	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xedc05c5f	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x0f667d6d	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x177bb916	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x228ae8ce	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x42daa497	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4d1781ff	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x4eb4e118	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x53b6386d	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x5cc020a8	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63222b29	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x6c530361	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x708d0261	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x83c52fb0	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x86f51789	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xad586650	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xcca883be	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xcd870da4	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xec5bd242	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf385d76e	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0aa6af5e	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x0ebd8e93	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1635481b	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x16f67eef	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1f977cdd	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x1fd62815	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2cb70d61	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3ad09e0a	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x46c5af64	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4c3eb121	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6e6d5349	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7431ad8b	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x7eeeee2e	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x8476462d	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x84ae7bb1	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x874ecc4e	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa3edbad8	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xa8979cf2	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xaa758415	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb3ce77c2	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xba92bcd6	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc37e9464	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc766cd46	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xcc584b19	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd6f74af9	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd8192224	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xeb94fd8c	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf807e776	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xffa99141	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x0b81e893	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x394d4903	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x5a3c6b98	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0xcf7d56e3	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xd5e45575	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x00c9aa49	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x19de07f3	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1c7150ad	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1fde8a6b	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3102625f	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3a38d8c2	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x3df5ab88	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4a7a121a	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x4d9f7ca8	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x517f6ea0	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x530bfacd	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x5b28ff02	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x61e90e7a	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x63520ed0	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6d928c27	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x760c5eb7	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8295d4f5	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa735f7d4	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa8ca2614	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xab7806aa	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xac6c0578	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xad9d2cea	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb6a9223b	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb74787d2	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc4f30915	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xcb22db87	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xcdd172ad	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xce8267c7	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd2534c7a	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe8eb23e5	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xeb5f88d2	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0x4011b4a9	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x0b17a786	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x54d55713	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x7540b103	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x1976e871	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ascot2e 0xe894d9bb	ascot2e_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0xca2c1a48	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0xecbe48a1	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0x592ff631	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22700 0xb085d741	cx22700_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0x9228cacf	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24110 0x2cbce115	cx24110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x75852d7e	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0x49f20527	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x4372ad94	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0x150359e5	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0x5876da75	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0x6eeb762b	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x49f84c45	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x9d7e2f2e	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0xe5328893	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0xf3b73064	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x5e0308ac	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0xd0819661	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0xf0b93f31	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0x82e4cb9d	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0xab5da098	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0xd0d32a66	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0xb6c5761a	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib9000 0xbb50feb5	dib9000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x8de05780	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0xb142d088	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0x2d7b20e1	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0x72338276	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0x7a2c107e	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0x7af76eb5	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0x53fe2488	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0xac798d0e	helene_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0xcc29136a	helene_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/horus3a 0x4f84db77	horus3a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6405 0x574f4311	isl6405_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0x9fc5c632	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0xa0f87ab4	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0xca66048b	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0xe66ccd4d	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/l64781 0x7b5c2c98	l64781_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0xc01519a4	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0x849d7804	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0x861192f3	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0xd10e7b8d	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0x00829c73	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbh25 0x66dd6deb	lnbh25_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x4f69e41f	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0xe7259688	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0xe88a3cdb	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0xc9bac2c1	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0xb4e3eb42	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a16 0x18e8c2a9	mb86a16_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0xc1bf9b85	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0x7d90632f	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0x984fa2f3	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x226aa731	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x771833c6	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0xcc4badcf	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51132 0xc8fd7ce4	or51132_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51211 0x4cc87afe	or51211_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0xd9f0d211	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0x6c24d97a	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0x82207109	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1432 0xc47583e3	s5h1432_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0x28a31ce1	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0x4a7375d4	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/sp887x 0x5fe1a308	sp887x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0xdd6b54e7	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0x7c1e2473	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0xa69dd5ce	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0xe27eb303	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0xc532e859	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0x16632d4b	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x45b396ed	stv0367ddb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x7bd4bd3c	stv0367cab_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xa3544caf	stv0367ter_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0xf959f2b4	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0x8cc91e93	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x4190d1f0	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0x965cae64	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0x33555018	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x3af90ba4	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10021 0x329c3e5a	tda10021_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0x9e915f12	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0xb566ae94	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0xd46d4309	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0xf0194be6	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0x79519cf8	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xb630a144	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda665x 0xaaed7296	tda665x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8083 0x1e743b4c	tda8083_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8261 0x4c5684e6	tda8261_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0xe3e526f0	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0x9ea9fa3b	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tua6100 0x40dff5b2	tua6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1820 0xccb22c1a	ves1820_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1x93 0x8aa4071c	ves1x93_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10036 0x040f0ff0	zl10036_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0x66358e08	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0x1142eb2e	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0xcac5e1f8	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/smiapp-pll 0x17c170f6	smiapp_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0aed2b68	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1fbba708	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x23804011	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x26efc25a	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x270a18a6	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2c046c36	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x306a43ed	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x38d92dcf	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3b82314f	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3ba5ad19	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x3c077db4	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x43999f4d	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4d03fae9	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4db921a1	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5744eaa3	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x58a0bd45	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x60377b7c	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6f172c44	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6fbd1b74	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7445dcd0	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x84ce86f9	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x854fd18b	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8634b13e	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x8a3c66f8	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x90655351	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x91d4c112	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x98fc0a4e	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x9e5243fa	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa4ef7267	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xa65e34d6	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xaadeed88	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xabc61a71	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xabd1b8ff	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xad69cf1f	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb6a1994d	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb9548c6e	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc9008b4d	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd1e6ef37	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd2823cfb	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd463351f	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd5a3bf5d	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdfacc1a4	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe78c1db5	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe9c64141	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xee1e63d8	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf339312b	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst 0x36986f8f	dst_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst_ca 0xf9187349	dst_ca_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xcbd50d04	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x08327d62	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x1fae497d	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x22abb620	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x24d3bf95	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3bad7508	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3dd57cbd	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x3f64447c	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x56242967	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x63518361	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x69f846b7	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x6e7da975	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x806f0d10	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x820340e9	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x892f7a24	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8deb5df3	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xcb5acd45	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xcd364afe	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xd25c0e6d	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xe741e6bd	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x0737bd9b	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x0cf2f200	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x168abd0d	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x1b26c667	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2611e1c4	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x2bfb9709	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x3606c678	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x5ae05870	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x5fec1469	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x7a2a5302	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x862614fa	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8921f10a	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8b5a1986	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xae0c3fd3	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xaea2c829	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xb62756de	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xbf7712fe	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xe377f214	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xea52aa6e	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x05a05cbb	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x1128370f	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x11b21381	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x1e1a0c90	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x5c34a855	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x72b35d74	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x8c0c146e	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x29dcf071	mccic_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x2ab4bd81	mccic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x45cf3bc6	mccic_resume
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x528643b7	mccic_irq
+EXPORT_SYMBOL_GPL	 drivers/media/platform/marvell-ccic/mcam-core 0x58e98598	mccic_suspend
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x0b5165b4	vpu_get_plat_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x50912954	vpu_mapping_dm_addr
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x80fca1d1	vpu_ipi_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x8a42d136	vpu_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x9575e35a	vpu_get_venc_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0x9e69101a	vpu_wdt_reg_handler
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xa8515873	vpu_ipi_send
+EXPORT_SYMBOL_GPL	 drivers/media/platform/mtk-vpu/mtk-vpu 0xccd2349b	vpu_get_vdec_hw_capa
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x07833ac4	rcar_fcp_get_device
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x3d858696	rcar_fcp_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x4ad5d888	rcar_fcp_enable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x5fe6f6e8	rcar_fcp_disable
+EXPORT_SYMBOL_GPL	 drivers/media/platform/rcar-fcp 0x9877c29f	rcar_fcp_get
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x019fa3e1	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x39368fc7	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x8964818f	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x9e18c9c6	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xb246cc63	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf24132fb	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x12d0c07d	vsp1_du_atomic_flush
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x247b5617	vsp1_du_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x24a0a3e5	vsp1_du_map_sg
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x2a4d1913	vsp1_du_atomic_begin
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0x99e5b28c	vsp1_du_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xd917df34	vsp1_du_setup_lif
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vsp1/vsp1 0xe4da62cc	vsp1_du_atomic_update
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x32dfa6e6	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3731f233	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x6daf04a4	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x6e62a55c	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xc5eb3813	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xdcf11009	xvip_cleanup_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe8f529b8	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x3c16a6b1	xvtc_generator_stop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x47d7900b	xvtc_generator_start
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xe73fb681	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x8c64c87e	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xe7850f0c	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x13d692f4	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x5693d1fe	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x7a37aca4	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x916d1d6e	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xb0a17aaa	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x167a11a7	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1aaa6953	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x1b6b6359	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x21f69647	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2b32c0b2	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x43936908	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x559457a3	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x5811ed15	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x62541547	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6abccbb0	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x78757703	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8b4e5e69	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x8b69ee77	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9c62b0b6	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xb75c2fb4	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xba09216c	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xdecee8d4	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe0b2962a	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf0f56cca	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf1ad6b03	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf648b827	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0x2c383f1f	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0x3a3cbf2a	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0x65ad88d3	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0xe3dc39e3	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0x0de72d5f	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0xf089cbee	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0xc8168477	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x4813e7ea	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2131 0xbd872cda	mt2131_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0x5cc861b8	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0x9ba9e4ba	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0x03ffbd18	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0x16954291	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x21a685c8	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0x9980ba72	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x662e59f0	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0x33cb6637	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x2436c59f	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0x29ddf094	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x1e93b940	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xaedf80c8	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xc6bdc823	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x3c4cac5b	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0xa71ed40e	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x8848ed10	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0xe0a52f68	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0x2b9fddd2	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x16076f0f	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x161eec81	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2203aa83	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2a52bbbd	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x429a374f	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x42ba374b	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x621aa723	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x62a676b0	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6d00f6f4	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x73a4ecde	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x7a6e1d36	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x9314155a	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x945c405d	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb3369565	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc1cb028c	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc35c86d9	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd32f5a20	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd8b1728c	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xdb9da6e3	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe3dca774	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x2c44ccd9	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xbe244f26	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x2b9ffe1a	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x33f1ae38	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x400af36c	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4c5ea0fe	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x67094f17	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x68d75a50	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x74ca1ad6	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8cbac6d5	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8f6f6549	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb3cfa41a	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc23585f8	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xc9501ec4	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd05086b8	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd774b3a3	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xe1e158be	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xea8ed430	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf253aa56	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xf5ddf7ea	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x12e5a161	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x82377348	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xb512c36b	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xec33c083	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xef15cc44	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x46a7c983	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xedd52ce7	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xfa00e578	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x0d120d0c	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x32a664aa	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7aaedacd	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x8dec5b14	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x933b9b6a	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xa1eeb6e5	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xaee17312	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xcf13b523	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xec3be69f	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xf16dda3e	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0332e056	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x0530c41a	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x1124c5d7	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x171a859f	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2082299b	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2e759f6a	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2fd7cee2	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x35234e39	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3f9ced22	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4e24923e	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5478cf2a	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x553c7315	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5fb425dd	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x712094a3	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x785dc8b2	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x7b619537	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x81a0b4eb	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8686aad2	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8af4bfe2	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x8f86db97	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x964ffb84	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa220b009	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb6d7d33e	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xb86b1b3e	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6afbcc5	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc874d1ed	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd79bb5e2	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdbc94356	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xdd957abf	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe213db7d	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe378be4e	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xedea1d35	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf0d2747a	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf5cd4dda	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfa7be87c	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x0690f2c7	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x17741ee5	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x37c2e167	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x543e419c	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5ef50370	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x6557b78d	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7b2b7dbd	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7b5e540b	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7e092644	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x833f990e	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x8e28c36f	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x920c8ea6	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x94312ade	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x9d8110bf	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xaf140671	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xaf74182f	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb423b994	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xba66a77a	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc2193839	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xcbd43b2a	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xdb499ebd	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe5baf7dd	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xed17cee3	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf5e137f3	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x19c17ace	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x38f39e68	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x58c6e911	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x683b7317	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x2414f08b	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xa0ff45b6	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0xdefff383	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x040214ad	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0acd1ac7	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0f36ae87	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x12aa00b1	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x178a4812	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x25a0b77f	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x28b624ec	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2eeba325	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x367c24a6	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x36d6c5c7	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x41b4ee5f	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4d94e6b2	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x53457a2d	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x54144558	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5b7985ab	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5c3929aa	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x5c694518	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x60f01074	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x61817752	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x63a7c466	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x666fbcdb	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x699de5c6	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6d231034	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6d546eb9	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x73885889	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x833413df	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8597d42a	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x98b871ae	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9a5c420c	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9ae2c450	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9af5067e	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9e8db516	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa78e6fc5	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xafa9d9da	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb11f591a	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb27297f2	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb2d63ff5	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb44a10c4	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb778d266	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xba70fe4e	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc2da5c07	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc5a42d0a	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc677e28	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcd8989da	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcdebd169	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcdffc489	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd7ad79fe	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd8fdd5ea	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe8770199	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xede5b84a	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf00ab256	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2208756	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf369ad35	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf631bf9a	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf98db683	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfc3a65bf	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfd50443c	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xff76573f	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x27ed2092	pl353_smc_set_ecc_mode
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x2eec2ab2	pl353_smc_ecc_is_busy
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x31112d75	pl353_smc_get_nand_int_status_raw
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x80ef3725	pl353_smc_set_ecc_pg_size
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0x84eeb67e	pl353_smc_set_buswidth
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc00d163f	pl353_smc_set_cycles
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xc37aa3c1	pl353_smc_clr_nand_int
+EXPORT_SYMBOL_GPL	 drivers/memory/pl353-smc 0xe2603369	pl353_smc_get_ecc_val
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xcfa2e44a	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xf82e9eb3	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xfc2cb721	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x0de83dea	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x40e31eb6	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x4f205080	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x9f39815a	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xcfbced52	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xd1f657ae	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xe3e53055	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x3cb34f1a	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x85851dce	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x934b5c88	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xbd7d1f89	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xd470facb	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xddc36829	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xde051471	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0xe9cf39df	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x2e5a354e	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x8a708ea2	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0xeb3f79a8	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x091aaa22	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x332b7c89	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xa746b4df	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xc7599122	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xddb9951c	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xea9bf50e	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xf0d40203	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x03de7f20	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x38b3de26	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x48f6ce48	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0fc0d10c	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0fcd0d4c	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1715a6bc	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x17187afc	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2094bd41	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x20996101	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2e4ccbe3	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x32715f75	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3db24a74	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3dbf9634	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4802d026	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4cf5cc00	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x4cf81040	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5420bbb0	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x542d67f0	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x63a1a04d	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x63ac7c0d	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7e875778	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7e8a8b38	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9075b535	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xaa4d501c	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb29a2c74	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb444fdb4	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xb44921f4	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xd855baef	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xdb0dc220	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf771e0b8	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xf77c3cf8	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x0f91c5da	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x227bfb39	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x30740e51	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x62c1b019	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xc4dbf2fd	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xf0412aa0	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x0de818ad	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x1059bd85	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x1889121c	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x20759228	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x27a38551	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x52a90926	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5805a5e6	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x5e63c7e8	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x8c2eb713	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xb203c683	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf73fc787	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x8fe645e7	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xb55cc33b	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x041995b4	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x5236f040	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x91e007d2	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xabc73a03	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xc795e4eb	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x7022fbae	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0xeecaf484	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x029ca870	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x123a2329	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x196f4bd0	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2a6b19d1	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2c625f47	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x31541a86	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x478d819a	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x4bf27768	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x53f761b8	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x57c59815	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5e02007d	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x613b211d	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x738eef32	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x7899b215	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x822d06a5	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8b460111	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x8d5604dd	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x91d9a077	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x92eeabb8	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x971555a8	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x99f90b2e	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9a0e1495	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9bd22ed0	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9f268a40	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa3b7ba28	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xae24ae75	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb7d00cd7	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbab60bfa	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbb83e69c	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcaac8275	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe7aad7af	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xec20afa7	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xee812493	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf04e0725	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0x58e5faf2	ssbi_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/ssbi 0xc2610aa0	ssbi_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x9ade924e	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0xd18a77ff	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x63ae8d89	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x6e73f239	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xa6445425	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xde534e37	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x312b4c31	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x7061f013	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0xeae9027e	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x6f8972d9	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x5bd1a2ec	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x6558a060	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x87ea8cbb	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x8f1e2afb	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x97aa959c	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xbe7722e5	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xf68cfe2a	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x076c28ad	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1190631c	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x1c676be3	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x25dd23ff	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2800814b	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2d430223	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x34864682	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x348a2ef6	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4c9c0b4f	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4f55e519	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x5f6e0ff8	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x6ff34021	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7baa8e7e	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8df517ad	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x986199b5	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x9c027210	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa13bb2b2	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb8dfcd10	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbcf289a6	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe027f8bd	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf4b55985	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf56233fc	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf7559e81	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf883d6fa	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x0293ed7a	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x1d007cb3	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x2784d235	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x5f8ab512	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x936dcac5	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9d511c13	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xba073450	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc15d37b5	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc4e32f28	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xde5f2a5d	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xe5a94a42	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xed08846c	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf00d92b1	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x13a0bb91	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x6d7b6557	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x7c3f38b7	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xc38839a8	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x5e7c05d2	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x6f26e6b2	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x8aeade3d	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x9603e81c	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x9c83e44d	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xb7f41803	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xd20d97a3	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xd3ba9049	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x4ce67385	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x70e8f140	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x7655e67a	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa18bfd1d	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xaab199f5	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xae1d8587	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xd4e8e5fa	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xeced46bc	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x271a86a1	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0xfdff8b32	st_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x23bd180e	dw_mci_pltfm_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0x9509e5fe	dw_mci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/dw_mmc-pltfm 0xa401c1c5	dw_mci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0x23c3a785	renesas_sdhi_remove
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/renesas_sdhi_core 0x75820cea	renesas_sdhi_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x027349e4	tmio_mmc_do_data_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x03f6e7ee	tmio_mmc_host_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x1fbb8e91	tmio_mmc_enable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x2a58027c	tmio_mmc_disable_mmc_irqs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x378f2335	tmio_mmc_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0x6d4acb74	tmio_mmc_host_probe
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xb28016bd	tmio_mmc_host_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xc276acae	tmio_mmc_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xdcfe1485	tmio_mmc_host_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/tmio_mmc_core 0xe8453402	tmio_mmc_host_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x0c1df541	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x3334d0a9	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xce2af53f	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x2ca0425d	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x52f2098d	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xdf598ddb	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0xbd6724da	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x62808d5a	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xaff02b74	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xbf9cb4b1	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x95c6e98f	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xb45f773b	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xb7898cf5	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0xbd6f891f	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0x576ea945	brcmnand_remove
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xdadeef1d	brcmnand_probe
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/brcmnand/brcmnand 0xe74d08eb	brcmnand_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0xb7e6bbca	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0xd647d0b1	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x25c3c8dc	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xff562543	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x23b33835	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x36b28005	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x4980acf7	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x506d4067	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x522e3ca0	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x65fc713b	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x71be1e8c	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xaac94949	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xb800f9a3	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xba9d226d	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe6d46a67	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe8b631f5	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xefa61596	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xfea43051	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x150c12e5	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x25bf22d4	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x30264568	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x4850cf36	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x50ba1cae	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x5c612831	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x676bff22	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xa1f09df7	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xa531203c	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xd0cdfc87	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xeb3e1c1e	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xf452621a	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xfbf6f70f	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x54f7c79f	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0xda96bd6e	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x06ff32f2	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x208afe6a	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x23a7bff0	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xa1b972fa	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xaed985ef	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xf40761e4	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x7fd65aee	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x8c90e596	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xd7650c83	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xe40b0af0	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x0c802243	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x15ce9ccc	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x19301cdd	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x200b8ad3	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2f13fe79	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x314c745e	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x3ec50c36	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x44886ca1	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x600a3d6a	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x62e7bfcb	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x63747953	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x683df3fc	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6aa1e952	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6afc731b	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x73d742ce	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x96704d96	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x968c01b7	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa09ebc24	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa1ac2064	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xad0a0d2a	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc2f5639d	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc507de45	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc8ed9530	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcbe04713	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcd3d0ce9	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcfaf5f2c	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf360c4d8	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x2b5ea6b5	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4e656f56	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x507e93e7	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x54a6689b	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x9cf65e46	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xaa11b534	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xdfb8c9d4	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xe99596a7	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x7495ed15	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x9af60a28	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xc5671c62	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xc8ad43b0	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0xcba21ebe	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x069a4ec1	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x07d1f8ee	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x17667160	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1e8a58ce	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3c0b04a2	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x3f4bceb5	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x43f0a6d2	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x45e6f81c	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x4915617a	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x51a357e6	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6e6dae87	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7eac9f43	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8cc49d54	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x919b9fab	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x9fcc7317	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xcc71c0dc	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xf28d020c	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x215a1cf6	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3245a34e	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x37c4a3cd	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x3bc2572f	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x4b8b3681	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x5b73db9e	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x6d3a8317	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x8c055335	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9651c89b	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xaa4d95a1	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb2cfe6c2	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xb3edad8c	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xd98cc04b	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe218d4da	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe9b55554	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf814d695	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0xf0cfc19e	arc_emac_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/arc/arc_emac 0xf8b2b9ae	arc_emac_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00de7fdb	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02db074b	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0489deec	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x054344a5	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x075d0614	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07e75b8c	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ae7d311	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b3f3209	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b84e502	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c465ddb	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cdd07f0	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d8f9c6e	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1019f31e	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x111accdc	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x158d9dc5	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16b41665	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17254556	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x196bf682	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b34cc3c	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c659b72	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c8269d0	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d4fb30a	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e760dc4	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f61234a	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x248a1df5	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27caa5e9	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b39c8c5	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c446919	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31b50016	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x349671f9	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35f9b58b	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x366ea6ae	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36c71a7b	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38ad4270	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39f33da6	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44266573	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x456ae793	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45b4c051	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45d03b6c	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46c99d0c	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c5ec3d6	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e5de665	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f2284c8	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50247c04	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50f7b50a	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51851a6f	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5828aee4	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5933b286	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c619230	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ed78c54	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5eef6e60	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f482428	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6076f869	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61887372	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x624717c6	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65cbe612	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69ecf014	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bc35716	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6dab329d	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f2449ac	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7967e402	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a7b4f73	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7bb36de8	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80ea95f1	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x857998f3	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85853666	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ad37bc3	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e2579b1	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f7a7154	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9053119e	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x907c8e6c	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x916d1277	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91bcd752	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x920e2858	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96c9c0f6	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97a6adab	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b0ed8d0	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b816a26	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c09c852	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d7618d8	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e70e1c2	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0bac1d2	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa39e0321	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5b31a23	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa75bf86a	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa91e4464	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3f02749	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba1d8b35	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba69bfa2	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb8ee754	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbca93d46	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc07ea240	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2e04482	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3b8c8c5	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4eccad6	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9b8a4f1	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9f32332	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb4a0f6a	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcdf900e7	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce0c2bd7	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd06b49c5	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1ac7d46	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd536af44	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd69ff979	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdab26003	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbdf18d3	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbf3b0f1	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0636cfd	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe32ca3de	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe552ad00	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7898217	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeaa9a715	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec17e436	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec388241	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec7b99ac	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeecd2899	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2aef733	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4eef9cf	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6c7d6d5	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8759286	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc6d4f62	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc9dc360	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcaa6d5f	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdcccefc	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff4967c8	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffacd61a	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x039612ff	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05ec2ec9	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0bc4196f	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0fa2c903	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10bc7ac5	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11bb6503	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17b3349e	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18528c06	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x193f7b3a	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1fe7c106	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24fbcbed	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b00a95b	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b5278eb	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bad37e1	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a26ea1c	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4228d28a	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4498e242	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44fe8696	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x47cf5eda	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48d5c439	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d6c6f40	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4eab2a2f	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5024b3d3	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x547809f7	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55e36910	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x564b9ad1	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57b490bc	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cdbce26	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e8af1a3	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ea7170d	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6028e7b1	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62ea367a	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x676b6c88	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6797175c	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c7a740b	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e1f1dd8	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ff0a82e	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71dfb398	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72b6e655	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73096f35	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74e87876	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77e868d3	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b415363	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b8eea53	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ccb563d	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f1eb0b1	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80c33f6a	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x879210b8	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87aaf6c4	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8bda5606	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8cf1b9ef	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x932f772b	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94ce5397	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x98657f6b	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ad84629	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c9b8c0d	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f321511	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ffeda0a	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa30cd80f	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa316aa1	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb87e0ad4	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb882cae1	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb4258e0	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbcad19ad	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf3f961f	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1e30f97	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc256fa47	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5adc79e	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf049d22	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1ab9721	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3f0088e	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd483a55b	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5d48abb	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd685ee44	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9981c1f	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb07c7b3	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfab2f99	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0a37ca0	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0adc7e5	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8d705ee	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea12f3f4	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea5bba89	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf04e9744	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3194d7d	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9b04ed7	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa939597	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x11421c08	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x2695f52f	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x4be2f862	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x0b28a9ad	qcafrm_create_footer
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x2b6ddf3f	qcafrm_fsm_decode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x41da0375	qcafrm_create_header
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x18ddef47	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x2df02842	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x3f2627a4	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x607dc4c0	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x0ec463b8	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x44275e9b	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x6cbab40a	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x84209cfe	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xca356237	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x03d1e86c	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x07342a77	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x27b77511	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x8d50bef8	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xa1c205db	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x156252cd	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x2c1654ad	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x3012e179	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x59929a77	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xd8f11f05	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x40174996	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x694ba14f	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xafbbcfc3	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xb9f21633	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x1f1d78fd	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0x8a43d8da	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x043f81d9	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2055b921	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x304a877d	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x35ef4c3e	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x63964df6	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x690747a6	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x74ae580c	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x8246cb23	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x827f8255	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x87bea07a	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x882d8944	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x891ad418	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x9b854ed3	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xaab0b253	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xee11d76c	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf0815d2f	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf68670c6	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf733dd22	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0xcdac2a8b	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x3782b169	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x1469ae5a	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x425a2a23	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x99d23016	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf9a3f595	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x1d2ed103	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x1f76d1fc	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x26ab9e69	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x40b5d025	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x55a19c13	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x940d34a0	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xa7c6b678	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xaa08774e	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xe1f70cc0	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x433a2f3f	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x88a1cf22	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x9cbbd025	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xfb2ba272	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xfd58f41e	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x0818c8d8	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x3e69864c	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x7445b89e	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x76222379	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x79ebd9b3	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x86f36315	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x901ed77c	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xa59d4b20	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xad35d99a	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xc158c2a8	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xdf0679ea	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x175962bb	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x77153f2b	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x8313c689	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x92f91e92	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xaacc72bd	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xba7f4d9c	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x003dca30	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x18ce56a4	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1c6158fb	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2d85461a	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2edf45f8	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4b35e75b	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4ce90aff	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x575e40a9	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x687aad59	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x74501a9a	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8265a3e2	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x931374a2	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x93ed2895	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x97608aac	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9b720e68	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9d4f40ed	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x9feb0613	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa7af0874	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa87a826f	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xaceab925	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xad4814af	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xbbc3c28e	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc04a9dd5	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc5512fce	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc834bcd4	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xca1cd0bb	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd269541b	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd82e2bf2	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xdba81a78	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe1beb20f	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe83bf2f6	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf2a0bffd	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf332c451	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x0ce3871c	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x0d076b6f	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x8eb2977f	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x9f7422d8	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4adf32ee	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4ae07433	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x61e9f7cc	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6e899f7c	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x787bb6e4	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x818daeb9	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8b6a39da	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8caa857d	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x92912dd0	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x9dae2c1e	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xa1905372	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xa594aa66	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb3eabba7	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc1be6504	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xc78a3e13	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xcf56a641	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0x875a1a2b	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1d348f2e	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3093b699	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x60a2f10f	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa7f1d826	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe5b250db	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0189c36f	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x029d7fcd	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x09bb534b	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x09c47890	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0c71501e	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0df2678a	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x194ccdaa	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c48129a	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1f0b9f85	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2b6ec89e	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2c0f571f	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x39ce670f	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3b12a88f	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3d19bab9	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3ea717ae	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3fdd4800	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x41b7439e	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4e6b129d	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4f3e3dea	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5347be55	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5ef4a44d	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x626eaed0	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6d76c854	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6e565000	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7315d9fe	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74eebaff	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x751592bd	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x75dae694	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x78585a5d	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x835cfc7f	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x854cf75a	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8aec467f	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8cd25691	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x91c32c3a	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x93160e9e	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x95107eb4	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x97dd835a	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9d4b51d4	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa1a51e15	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xafb43285	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb1e39cb3	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb2f39999	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb486cd7d	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb8329b7d	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbdbd4ed2	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbf85f9c4	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc42e454c	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc8a638a2	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xcd118778	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd01682f0	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdccc5e5b	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xde2cac7e	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdec9e66d	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe7e155c3	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xec1e4884	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xecb2619d	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xef42f935	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf19bbd94	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf19c2b08	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf99114ee	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xfdddcfd6	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1da74b9a	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1ddbcdf3	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x4ca05b65	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x8110ce8f	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x96137bd5	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xab1b13ab	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xb9b90e0f	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xc2a582f1	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xdbc7b322	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x083e39e4	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x1a247d14	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x2c9df076	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x2fe2514d	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x48875ef0	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x7eeae663	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x972fca0b	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x9c6b2f0b	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa186cd4f	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xb5a2c8ed	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc5ffef3a	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xd6d286ef	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xe64d89a0	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xeae64d0a	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf12d8098	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xfab553a5	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x465d8a0a	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x622b3b07	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x6331100b	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9be425bc	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xb7d0c37b	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xde944d26	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf98b34cc	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xff9dcc7e	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1e82affe	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2ac4ef34	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2efa80a3	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x2f5bdc22	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x373dde43	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x39143ebe	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x3e035878	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x4892710a	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x522ab7fd	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x56afd6dd	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x5db01381	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x75f7e769	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x77d5b601	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8751f11f	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x945dc70d	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9b779db5	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbb2d5812	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xbcb3d9ad	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc77967f9	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xce582382	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd78acb29	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xdfc06227	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xec7431fb	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf1975b37	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0246020f	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x043142b8	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x08ff116b	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x18c10151	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d8eb1b1	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1f853d2d	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x213fab67	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x24639236	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2d8d8c51	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2e5ebdc9	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x387febda	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3a2cf29b	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3a3f9982	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3d14f4e1	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x3da37122	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x40a856d3	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x44ab3c85	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x47795a8d	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4a40a822	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4dc9fc7e	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4f29e7e4	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x53a4a0d0	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x552ddc08	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x585356ff	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5b4ae6df	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x68293b21	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x69b921f4	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x6ee8b062	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x71c2bcaa	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x7673dbb3	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x799abac9	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8220965b	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x89782474	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x8da0dc08	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x91fd12b1	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9ab906e4	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa23e123f	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa40b0ad2	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb4185c82	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb4603a83	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb6d2162d	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb77024f6	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb892858d	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbdf81626	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc2f7a479	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc85cd7b3	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc8756403	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd0b74288	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xdc8508b8	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe13ffa3c	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe701130e	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xebcad68d	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf4d9b603	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x44a60e58	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x73f37ce3	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7a8546d9	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x7c27c10c	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x97508e0a	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xaa8fbd83	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xbb4cbd00	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xedc38f7f	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2147b961	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x668577d4	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x686f9896	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xbd35679d	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd5938e12	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xf2448dc5	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xf9e72c89	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x08ef87f8	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x119ac223	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x120c9136	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x142b2b34	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x157819fd	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x177e1bf1	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1d455c9c	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1e4c529b	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x208b8afd	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2333bfc6	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2ad731b9	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2ce0b326	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3082d48f	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x30d75f4e	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x32ddd199	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x38a4818b	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3e40117a	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3fbcc005	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x402c37a2	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x44976153	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x480b0287	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48a59115	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4eb194f5	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x53590a8d	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5601ef08	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6585ba4c	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x658b4c1d	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6685e98e	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6fbd1705	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x74ad26e0	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7d32f9e7	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7e36a584	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7f952b16	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84583519	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8cf09bd0	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d2f07a	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95394bfb	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x97c1dc85	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9b427f5f	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9d772276	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xabb391c0	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xac95d368	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaf1b4541	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb64c4e35	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xba72bb09	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbe6631ed	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc4a9b3df	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcb443158	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcc6b0900	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd1302a06	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdd76f4e7	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xddd3da8d	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdea92e4d	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdfe13971	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe13e83ed	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe66f79be	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe87e33f8	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe919aa83	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe936da44	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xee0d3660	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf0b2fafd	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf39d5788	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf6b08177	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x1062d85f	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x52ce1a15	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7dc911da	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x82f51b92	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x96d685d9	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc56479ae	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xdcbb225a	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x16c44426	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x18d7ead6	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1d32943f	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1d81a2c0	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x30c9002c	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x32d557c2	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x38ab823e	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5090af09	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5a7c135f	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5f066acb	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x841b4346	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x89ea2009	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8d4a6be5	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa0c183fa	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xaf5dcc1c	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb598d565	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc575dba8	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc83f6cc7	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xdfed0738	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1972ceed	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1cb17bba	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x294234fd	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x299417b3	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x59a91f6f	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xd2d7ba73	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xd5d7eda7	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xdf3960fb	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf19e54f4	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x058ef6b3	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0632b0fc	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0810e13f	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x10f5b9c4	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1b40b35c	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x217b9b9a	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x26f83088	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x29a145c0	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2e5566f3	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4705e95f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x490bc6ae	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4c08d869	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x53ba4d1f	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5841f46f	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5848d65e	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5a8c54a0	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5ae15224	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x61b3e77f	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x69b7f8ba	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6bae22ad	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6db3b2cf	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7baae883	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7d9105c3	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x83d975ab	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x84e3c627	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x85146c63	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9a7a953e	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa3e81725	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb0fed8ac	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbd39e5d8	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc3d54a8f	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc4338a95	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc4aa8462	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc83a0fd3	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcb532b37	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcc46464d	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcd699542	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd9114eae	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xda7490f3	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdc5076f3	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe4131344	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe8d75f96	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf6bc800d	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf9c74511	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1d6907b0	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x376a90e5	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x49209a71	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5f6bed52	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x673d2810	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7f6abc98	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x87645187	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9506f170	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x97659f81	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xad80dae6	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb48f9383	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb60be40e	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb9cb7839	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc5f3f2f0	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xea3c6ed3	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf397fcc2	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x01c64eb2	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x04beb5e7	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x080a65eb	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x19003e55	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1e168877	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1e9fea15	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2510dcc3	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2b81bd81	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2caafe10	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x335d5d36	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x35955288	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x35b2e264	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x38211615	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x41352f3b	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x45332e21	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x45f51283	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x49f40ad9	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x514425d7	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x52bd21bc	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x531effb6	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x567df644	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5c011f9b	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5ef9cd6c	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x61e7a63e	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x696f0efe	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6ac51925	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6d946938	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6e23b575	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6fdcb27f	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x70c9bf50	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7608081a	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7e22c3d5	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x817e4117	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8a422a85	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8d3ef6f2	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0b05141	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaa043bab	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb082e8d5	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbacb364b	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbf54286a	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcb0bb1b7	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdf705303	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe1809b7f	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe24d8f1a	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xeafc6dc1	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf56b1f79	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x1b83c957	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x47b168e2	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x89986689	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x990cfa0a	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xf00d0444	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x67ab8749	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x698108b2	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xcc369b56	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xd0573d7f	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x03026d6c	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1aba46ba	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1b493f6a	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2e4343f9	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x4e99bff0	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x52d7d6ee	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6e5821bc	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7f2f5745	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8bc726bc	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9119d652	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x921489e8	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa48fbd93	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa86ed22b	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xafdab9ec	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb095af55	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf10e8faa	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x675c8cd3	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8b1e407f	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xad90a515	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdc2152a9	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x067ea690	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x06d7baf0	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0cc4722c	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x182bf391	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x25dd0811	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x27372dfd	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0	rtl8723_phy_calculate_bit_shift
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x45a68b88	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x46a04268	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x489ef658	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4eb40cea	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x56b9e49a	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5d50b9d0	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6c7ff414	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7ff464b3	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8afd16ac	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913	rtl8723_phy_set_sw_chnl_cmdarray
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8dd72b25	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x97fbc442	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x98c41153	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa2070d71	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xabb6f1b5	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc36e5113	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xca4993ea	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdd26185a	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xea2316f5	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf305d4d3	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x08cf7275	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0f6af2f3	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1a308cf3	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37b993b4	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5e50d433	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x767c55b5	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x76e54d5c	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x83d07ee5	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x861fd784	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8a5af919	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ce6b70b	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8f4b996b	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x935ed62c	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa1bbf1de	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb160a284	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb349ef63	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb52343c2	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc06f87f6	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc2922ecc	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xca451685	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xceec3f9f	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe56dc66f	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe7e61f90	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf22e3525	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf7723b26	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf8ff6add	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfadc954e	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x323a18d1	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x83d38e62	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xac994005	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xbd427064	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcfffa8de	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x4ba84a6d	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x68d500dd	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x69ce39c7	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xa0d6966c	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x62e64641	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xd07e6608	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0xf39c2247	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x097d796c	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0c04fee1	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0c4348dd	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0f6f81af	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x13f715d7	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1659f99e	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x18a5bf61	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1d34b12b	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2b74c768	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2e28918a	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x30071584	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3cf526d5	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3dae7233	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3efa9327	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x40a03a7b	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5241c987	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5aa97caa	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x665004e4	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6c1f7d3d	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x84903ccd	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8bfd923e	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x91d09bf0	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x924e4447	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9aca8f28	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9e8325d1	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa12988fd	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa56ce016	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xadb83152	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb3bbd853	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb5939481	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xb79998f5	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbe6acaa1	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc1db71fa	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xceff3654	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xd67b16b1	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xde9f252d	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe0fed4d9	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe1d257b1	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xed733a87	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xeffeebe5	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf1ef3b2f	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfa7e894e	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfb3c6596	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfc210f30	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x8701d729	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x9d6837a3	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xabcb02c2	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xd06934ec	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x20345a0d	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x46ab35cc	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x757213ec	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x9b537f80	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x0659e409	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x0a0b50d0	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x367508e7	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x532df38e	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x7aef70a2	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xa5b7bdfe	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xc381e19e	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xcc46ef37	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x0060d062	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x1c809b03	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0xbed5bc64	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x13216be2	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x30934216	ntb_transport_max_size
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x32537aca	ntb_transport_link_query
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x3d54dbfc	ntb_transport_tx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x74b0b7e1	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9c992c8f	ntb_transport_link_up
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xa0f91ff1	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc270dc24	ntb_transport_free_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc37d9036	ntb_transport_rx_remove
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xd40e7a02	ntb_transport_rx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x0cbe2184	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xe7e4be14	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x043ffdab	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0ffbde16	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x14e72ffa	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x17243d4c	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x173d095d	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x17b18715	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x180e2e27	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x19876274	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1b9c5bf2	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1e1577b8	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x21943693	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x236f5420	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x25744287	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x258c2ad1	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2aa9230d	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3a937b9b	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4bdbd965	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4f395fd5	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x58491e16	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x5cc53ee7	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x73a638d5	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7acaf317	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7ff20e95	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8572c838	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x87de1467	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8ab19397	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9b979bb7	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9ebacff7	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb57e6640	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb69191ee	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb6cb6567	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbc4fee31	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbd24aef8	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc1cb23a5	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xce3d41ae	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd142db04	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd325ffbe	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe32c17e5	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe8b50bda	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf538134c	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x2a80da7b	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x34ce3e11	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x39e53635	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3a1f80bc	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x40c351b6	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x4e045ae7	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x62a5ae8f	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x999b6ecf	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xa0990dfb	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xd3fbf730	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf0db2b55	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf0e644e0	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf82a19db	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x11ac5072	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x29181328	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2dd7a9f2	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x5c88e7a4	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x76d5c110	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x76e09460	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x7890f136	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x99c09870	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xa19bad89	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb9386310	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xbd1d73fe	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xcda7b3e4	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0xf860403c	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0xd049d099	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x26db7d79	ufs_qcom_phy_init_clks
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x28b42719	ufs_qcom_phy_power_on
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0x2ccf6d23	get_ufs_qcom_phy
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xae7419de	ufs_qcom_phy_init_vregulators
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xca2242e2	ufs_qcom_phy_set_tx_lane_enable
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xd95b2ae6	ufs_qcom_phy_save_controller_version
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xd9d56ba0	ufs_qcom_phy_power_off
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xddd62c13	ufs_qcom_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/phy/qualcomm/phy-qcom-ufs 0xfee60eef	ufs_qcom_phy_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0x6796ae7e	omap_control_pcie_pcs
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0xb2f158ca	omap_control_usb_set_mode
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-control 0xd3af449a	omap_control_phy_power
+EXPORT_SYMBOL_GPL	 drivers/phy/ti/phy-omap-usb2 0x00d48f33	omap_usb2_set_comparator
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x2efd5125	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x47825eff	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xbe3b6bdb	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xede5794b	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x1d606a6a	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x5f04d755	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xcde7d49d	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x2a8f6991	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x94518802	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xcfa57c6f	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x14964f06	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x59cc0a80	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x80bd146e	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xbad646cd	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xe5a7944e	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x0d07dbf0	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x479a4bf5	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x53c970e6	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x6a09b172	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xbeb2f29d	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xc0235bbd	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x91a6beca	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1ca3406a	qcom_add_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x1f4ea253	qcom_remove_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x26e6c9ac	qcom_remove_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x31bfd40e	qcom_unregister_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x772c0eea	qcom_register_dump_segments
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0x86a84622	qcom_register_ssr_notifier
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xa630c403	qcom_add_ssr_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xad19ab3d	qcom_add_smd_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_common 0xcba2c0ee	qcom_remove_glink_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x477902c1	qcom_q6v5_init
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0x86fc2ecb	qcom_q6v5_request_stop
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xd62b8377	qcom_q6v5_unprepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xe27f89f9	qcom_q6v5_prepare
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_q6v5 0xeadcc3e7	qcom_q6v5_wait_for_start
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0x0eb4c0b8	qcom_add_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/remoteproc/qcom_sysmon 0xa881c6fc	qcom_remove_sysmon_subdev
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xc7c30f00	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x6dda267a	qcom_glink_smem_register
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_smem 0x72dd75d9	qcom_glink_smem_unregister
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0xdcbaad22	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x0123a5c1	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x10372029	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x14b83957	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x167487ab	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1e9deba2	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x256a3d02	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2a66c09f	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2ad3ecb4	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3d97fc2e	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3ea95213	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4b637d13	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4e0b10d8	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5ffb3750	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x61b5532d	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x62d8cd72	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6a4dfe54	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6dd73376	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x709cc83a	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x71d25d26	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x72d0d684	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x77aba78b	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7944cf8a	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7d8212ab	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8be8d4f6	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9438f6f7	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9474d5e7	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x94e0ff18	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x9f5af488	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa6de44f0	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa92b80d2	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xab8435a4	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb7b9a45a	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc1f9d69f	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc4861b32	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc5ec1c32	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc87edca9	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcfc17464	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe20c8607	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe3dea673	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe5c6d6f0	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe9594049	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf8b88cab	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfad3a528	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xffd2f2db	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x0d79a398	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3a60a0b2	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4d091f43	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x52aafbc0	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5ce47b52	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x721645b0	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7e3300c7	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9a3a6178	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa56adc84	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa9753b95	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbaa2c361	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc1c84d30	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd95f5602	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdab6e492	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe3e74788	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xe8fa2461	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x913dd4ec	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0xed785b48	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0d6030cb	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x9d48f3f4	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xb74164bb	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xbc2c80a3	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xcc453416	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe9ffcf68	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xfb8612bf	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0x3b641d18	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0335cf9a	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x04060df5	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x06afdb2a	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0c8d1ca7	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d3eb633	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x10142fb1	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x268e954e	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x2ce5f8da	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x35679839	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bfae6b3	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x410ed8f9	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4a545bf7	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4cc778f6	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4fa62219	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x53611544	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5768e6ca	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x578c9e76	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x580a3911	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5f0dce46	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6346e817	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6da29e8e	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x888533f1	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x89b29a3a	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8e51caf0	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9790a023	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x98bdfdd5	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x99d3d677	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9d060b3a	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9e206bf9	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa72f4c11	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xaa433f47	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb5f08d4b	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc433fbbf	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd1715c81	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd19d11a1	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdfb8c219	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe2c68ab3	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xea709aa7	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeae15e67	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xecf8c06b	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf42f3f04	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf88d9fb1	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x07ea6170	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x1d14a9de	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2c78b94d	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x412606c1	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x43b43b66	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x700bf945	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x74ab9396	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7597d246	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x796a543f	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x8983ee8f	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa36ca213	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xac65ffe1	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xacdaf713	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xae807c43	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb09526ff	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb9e39d42	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xecc65b7c	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0117d050	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0d4a649d	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x125b72f0	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x171eb367	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1d061cfc	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2af11c67	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2b1eef35	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2fe77ffc	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x304c73c8	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5b9e4f7f	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5f599fd7	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x68daf4cc	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6b617474	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6c2416a0	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7606848a	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8645dcbd	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x944438e3	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x998f07e7	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9f89601a	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb6c37005	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xbe90af83	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc48e0726	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd4366f3d	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xee854cc8	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf7c9dc06	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0021492f	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x051e14d2	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x077f794e	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x191ccaad	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1fe685c5	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2606dfef	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x347ee8da	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x34b84421	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x351da3d3	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3d8a0fc7	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3f961325	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x425d0fc4	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x46798066	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x50c5c3b0	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5159cd1c	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5860c136	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5d9d2b2c	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x647e689e	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6520fec2	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x687be3dd	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6ca1c81a	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7512f1d4	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x75b5a306	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x79913dc1	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7cd7d6be	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7d792bcf	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7d9ddbd2	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x85a2bcc2	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x86435ffb	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8cb89059	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9adfddf6	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa40b6832	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb2a6d139	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb44555cc	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb4661994	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbe251dec	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc7386622	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd5ac105c	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe124b8d6	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe2b2ef94	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe2ce4032	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe7df030d	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xed46678d	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf5e9d02a	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf8216162	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfef35ad8	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x73221950	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x99a7b688	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x9c380676	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xda9a1e28	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x39c7ec43	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1468b55a	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x2050f8c4	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x27494e63	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x2eee9a5f	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x9939d29e	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xce19f7bd	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x030b4fb2	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x1ae1e7b3	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x53dab506	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x567535cb	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x578d8d53	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xc62b36ba	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xd49bbfb5	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xdc16c290	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe5d3ebf1	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x040efc97	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x27a822a9	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x2ece157a	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x62969cd5	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xa03b2063	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xc67eda0c	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xd803a09f	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x30b6e954	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x51dfa92c	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x5df88a8b	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x5fa347d0	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xb45afc4e	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xcfa3f2e7	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x04349fe8	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x08244304	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x151f3ae0	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x215cdac9	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2160671c	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x24353fd6	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x268fa7b7	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5180d04a	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x69466100	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6c0540e6	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7b308a73	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7f434945	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8efd0b80	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9ad1770a	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa030d0fe	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xac09e2f9	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb8a365d8	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc42b5adf	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcb22839b	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xcc945ed3	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd6171b2a	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd7b8d582	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xddb441b1	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xeb23adf0	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xec449f4a	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xee1abfc7	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x494128eb	meson_canvas_alloc
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x673c5a86	meson_canvas_config
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0x70f73fc7	meson_canvas_get
+EXPORT_SYMBOL_GPL	 drivers/soc/amlogic/meson-canvas 0xfbd79150	meson_canvas_free
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x3a9a0447	__apr_driver_register
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x6c3360ec	aprbus
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0x9d9b2272	apr_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/apr 0xe65902dc	apr_send_pkt
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x06285798	llcc_slice_deactivate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x09afc16e	llcc_slice_activate
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x1024b876	qcom_llcc_probe
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x12219805	qcom_llcc_remove
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x14f99b76	llcc_get_slice_id
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x2027e82d	llcc_slice_getd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0x62ff6e92	llcc_slice_putd
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/llcc-slice 0xdffee709	llcc_get_slice_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x71e90472	qcom_mdt_load_no_init
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0x739b42cd	qcom_mdt_get_size
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xe7b09916	qcom_mdt_load
+EXPORT_SYMBOL_GPL	 drivers/soc/qcom/mdt_loader 0xf24c91a3	qcom_mdt_read_metadata
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x689e97cb	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x8285422f	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0xa6227ddb	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x11497da7	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x27703469	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x7d6e5d35	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xaf2391b1	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xeecf420c	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xff438f96	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x2feef33f	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x9ab8b865	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xc67f5ecf	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xdb4dc057	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xe58fc69b	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x327c8d15	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0x602a9b1a	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xca3b4580	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x03355bba	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x14b10ff1	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x1cceac37	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x28f41e55	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2bb0a0bb	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3e742ed0	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x45e75b12	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x48434905	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6025981d	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x6ba5815f	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x7212cd54	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x8099864a	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa0d782f7	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xbc8e1153	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc0eb9f86	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc412b23e	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xf32306df	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xfb0383f0	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x51e1037c	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x07ba6ad0	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1559592c	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1aee6cc3	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1b1c71a4	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1bc4354c	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21b2e91b	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2341b4ea	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x24a66fa3	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x306fb77b	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x30ed6632	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x36ed110c	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3af032e9	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x43caa015	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4d1467d3	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x52645017	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5d247c90	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x67b880e7	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6f436db4	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6fb08136	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x744f7c47	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x9e92955f	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa0e34dcc	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa1bf4cc5	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb6a9bbb7	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbcd29d40	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbd179dc7	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbe748ffb	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc581663b	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc7154269	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc90cb696	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xcde139fb	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xce1d24ef	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xda275c2f	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe495ab0c	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe819c3d0	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xfdda60ef	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x3387de78	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x7d35fc42	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x9028b2d7	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x9583cce6	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xae6c9d04	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xb4b118d4	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xcce1734d	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xdd85c8b2	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x2583fcb4	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x4554aee0	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x6a7b5693	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x8ee72ef6	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xda74f319	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xe9464dbb	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x30b72318	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x13ff59b7	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x8cc45bab	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0xd055360e	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x05f4c906	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0d717710	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x0ff56797	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x13e5c2cb	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x17aeef22	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x199229e1	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x28f4c1b5	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x6f45e9d5	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x7161aac8	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x7af796d7	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x8c2347d4	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x9369199b	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xc194fd7a	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x4862199f	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xd9d45eb3	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0xe894c2db	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0xf6f60e0e	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x0dd4bfa0	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1df74693	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x36397f4b	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x4ebe1cf9	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x6b9cfda1	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x74d7cd61	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7df9de8c	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7eb46173	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7f169d78	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x8c4f9093	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xaef01aca	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xbe22e3ca	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc3cd4295	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xc84a5a33	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xea09e95c	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xea6d4384	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xb0d34a69	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xff55e695	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x0c629f95	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x230c13b2	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x281c41f4	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x2bb0077b	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x342ee407	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x394df87b	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5771cd94	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x6b42542a	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7fedc96b	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x89ffe2b5	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x9ec5e3f7	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xa17d2562	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xaabd89bb	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb57e61bb	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb9f5bcdb	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xe3382fe3	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x35fc9942	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xb5dea8b0	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xbda858e7	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xc10836ae	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xe3c1b71c	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xf2f3c444	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x0ae89bc3	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x32485bf8	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x557de28c	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x69fb4acc	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x79a07413	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xa02a6470	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xfef39331	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x426fe029	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x72c936ca	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x787205d6	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x89f3cb2a	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x8c1cbfed	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x9cb80a99	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x9f4b1037	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xaabf1771	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xbbd52faa	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xbc7f69b7	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xd9f79af5	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xdfe257fd	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xe0df0e0d	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x20a91284	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x4c4daa2d	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x8c1e11e6	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xf1c0a88d	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x128dbb20	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x1b8fdbcf	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2483e2b9	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2d818256	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3fd032a3	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x43e7f9f3	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x482918d0	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5efc56ca	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xd5b79861	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xda559378	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xe874aec3	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xeabba117	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfb1be6a0	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x17b8a040	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1a5584c5	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x2ba8175a	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x354ea257	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5d9d8ed6	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8af7050f	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa2d72e37	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa62ee860	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa6de13f2	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xa943f875	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xb217f3c8	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xf03c5703	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xfba88141	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x34096190	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xcdba63a8	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x15902719	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x5db24095	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x34546e6c	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x6b1d0552	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x86715134	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x116bdc6e	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x128fc3d9	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x1d2f4460	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x1ffc1e85	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x28412130	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x329254c6	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x339b07f1	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x707c72f3	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x7cb4c034	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x80bb926a	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8a9e937a	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9b65e7b9	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9f6f4a0c	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xaf35148c	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xb26ba845	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xe4e268e0	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xef3a7076	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0699afb8	amvdec_dst_buf_done_idx
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x0c52ebfe	amvdec_clear_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x1190c8c2	amvdec_write_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x28afca1a	amvdec_abort
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x33b21343	amvdec_write_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x450cc311	amvdec_add_ts_reorder
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x473ad376	amvdec_read_parser
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x55b04989	amvdec_write_dos_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x66d638d2	amvdec_set_par_from_dar
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0x9fe12118	amvdec_get_output_size
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xab47fc44	amvdec_dst_buf_done_offset
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xbe28d20c	amvdec_remove_ts
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xc87cbc24	amvdec_src_change
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xd070b308	amvdec_read_dos
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xeba827dc	amvdec_dst_buf_done
+EXPORT_SYMBOL_GPL	 drivers/staging/media/meson/vdec/meson-vdec 0xfb6ceed9	amvdec_set_canvases
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x0141903d	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x14807ff9	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x2d42ff56	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3648b882	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3ea807bb	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x3f875dda	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x537c1864	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x558eef7a	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x62f8a42d	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x6b75aaad	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x92b952fd	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x9cbff9df	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xb50d990e	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xf0db469e	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x026da414	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2e7e21d7	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x340ba747	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x3d9ede50	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x405c43a4	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x50e0223c	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x5e087112	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x69250764	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x70da64f9	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x71befcac	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8181ceec	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x85a56b69	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc0406d06	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd548fca6	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd6080b43	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xddb133f1	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe8bce04c	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xf4919154	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xfc06e0fa	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x75d3df09	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x7b10fda9	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xfbc932ac	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x15dd99c8	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x5d49738e	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x6b1dc940	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x70315808	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x95c13cd9	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x9824fd84	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xa82210bc	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xd56726da	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x04fb548c	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x09e57fbc	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0c2117eb	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1002bf6b	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2018c601	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x24e709d4	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2649b781	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2e4f5922	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x34bfc11e	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x371002d2	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3798978a	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x3f599026	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4a101b62	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x58b68fc7	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5e4bc088	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5fc226ec	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5fcb8fc8	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x69610cb5	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7b174ada	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7b67789e	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x7cd1507d	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x880b8b57	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x89bd7e42	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x96bc83de	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9b57e692	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x9c547dcc	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb10cdfef	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xba25ddee	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xbf19fe4b	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc1b7fdae	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc2321078	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xc7cd639e	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xcc2542ab	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd15d58de	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd6777ee4	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd7af8957	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xdc316f6f	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xebcbb38d	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xef97e840	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf3f90d61	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf4d64f4c	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x22939699	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x35a068b0	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x387ae648	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x3a4f54b0	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x47eb77c4	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x499017a1	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xbe3ea10f	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xf63ce66f	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x4ea44e4d	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x4ee8439f	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x67c94503	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc36ef956	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xc543b60e	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xe64f61d5	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf4654c3f	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5f0b56b	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf99154b1	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x0e14aeb9	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x12d60585	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x156bc3c4	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x28cbb9f3	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x689d5902	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6ad62dd3	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7cea0088	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x893c75ae	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9b789c63	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa69ac72a	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xb8ed0077	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xd6f10580	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe17ca231	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe9cb4152	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x03fe8a9c	tee_shm_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x07199cd0	tee_shm_alloc_kernel_buf
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x0a1215e5	tee_shm_get_pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x17edc4d8	tee_shm_pool_free
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x1b8537d5	tee_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x282e5300	teedev_open
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x313714c9	tee_shm_pool_mgr_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x32c89175	tee_client_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x4a51e3d2	tee_shm_put
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x4a9415bc	tee_shm_get_va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x4fbf485d	tee_shm_va2pa
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x599865e3	tee_client_get_version
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x5c4c9bfd	tee_client_open_session
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x70b7457d	tee_client_invoke_func
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x8651c1a5	tee_shm_pool_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x8dea1945	tee_device_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x8ff6da1a	tee_shm_get_from_id
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x923a3ee3	tee_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x9296c945	tee_shm_pa2va
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0x993517c4	tee_shm_priv_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xae540cb0	tee_bus_type
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb270aea9	tee_shm_register
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xb29e2768	tee_shm_alloc
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xbc851e5b	teedev_close_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xdcc56593	tee_client_open_context
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe1eaf3e4	tee_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xe80657de	tee_shm_pool_alloc_res_mem
+EXPORT_SYMBOL_GPL	 drivers/tee/tee 0xf4330203	tee_client_close_session
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x4b9b8b6b	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x64a2ca1e	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xdc1cf4ce	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x25039706	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x56cbeff1	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x03ae946d	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x16f5976f	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x501b178b	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x28965ff0	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x2a760303	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x53f6c2b7	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x9e190efb	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x9e332fa4	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x023854c3	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x09da1518	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x171fc2f5	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x1c5eaedb	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x4710a206	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xb7fdd9d1	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x0348dd68	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x437dab25	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x5bd4e6b7	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x688699e5	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x69a8f90b	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x87283e2a	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x048c78e8	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x159996d4	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x33ca1750	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6f183a66	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x721b7ba2	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x7d95deb8	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x84769c0b	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8c2b2a66	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x9260ecda	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x992b3874	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xbf4acc78	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xd65440d4	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xdbc422cf	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xdea2b33b	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xf174f390	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x3d327a93	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xf1001615	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x2bf17760	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0x3df5db03	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xde1c1b8b	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x14b217b2	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x26efb946	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x28a2aba5	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2ca759a9	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2e0aedd5	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x48e275c2	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x4a9b6ea3	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x724d91b1	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x806a8916	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x957a235d	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x98b350e9	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9ba2e158	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9fc3196f	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd44210e6	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd7b5bf16	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xfb23e2fb	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xfc5228db	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x03dc3724	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x0c2bfb25	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x192fa176	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x1ad28415	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2b0f3f7d	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x447685a5	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x46865ea4	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x5cd7a5a6	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x68c33698	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x94376772	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x96ee3efe	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa4e27df0	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd171beac	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xd4b88b6e	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf7043193	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x039d6d40	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x06430a1c	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x17b887d9	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x1efddf00	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2235be36	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x38efa321	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x49d44174	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4b2575b6	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x64fde47f	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x68f6e1f8	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6e639040	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6ea4beb2	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x703a3873	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x71c8002e	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x935b7fad	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x95ac2dab	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x96710ea8	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9937a44e	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa69b5926	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa8493084	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb1a96e63	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb93cde7d	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xdf0c9807	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xeb21bb34	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xeb8a8902	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xec71ab30	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xecd73df8	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf058967a	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf463463a	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf759de08	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf7aae639	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xff4df935	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x0018d6f4	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x53dee6c9	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x68d093ea	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x883634be	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xbaafda9f	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xbeed4427	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xc49f5e8b	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xcf36e02c	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xf517410f	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xa48453ff	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xc70c9ca6	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x0e97e572	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x3a89e6a3	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x3c74fba1	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x566b3ca6	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x594c4b49	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x895f9438	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xc4dfac82	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xe94d676f	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xfc06cbd3	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-am335x-control 0x429593e0	am335x_get_phy_control
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0x1ecb816d	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0xc28d96ca	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x07c93f7f	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x150d3f9b	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1d52e5c8	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x280ce626	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x2c156505	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x4d480b43	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x530287d8	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x5e0e3731	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6958afaf	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6d288474	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8088ff0c	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8ab4b070	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8e13ba5e	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa355f326	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xa7400e69	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb33d8575	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xd88fea70	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe98f45ad	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf49f6d18	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xfb1077d9	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xfe425701	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x65a88b3e	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0x7277ae69	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x2c430d6a	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x859985ba	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0482a733	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0bb57009	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x12e6efda	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x19d68d70	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1ac2af3f	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2adb1f11	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2cb043c4	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2dd7ecc8	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3314bf6e	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x35382fdf	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x3d8d2b58	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4200d797	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4a32962e	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4b102c90	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x4bce04f9	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x51050a34	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x53445c80	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7077eb3c	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7d1af694	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x83ac536c	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x903c232d	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x91ea5b76	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa1e23264	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xac38bb04	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xb0a34e69	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc19484d4	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc4bd10fa	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcac03432	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdcbcf6d8	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xdffd0300	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe1005961	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe13a7a3f	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x086e6b76	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x09873477	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x0de6f086	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x2a02dff7	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xae232cd2	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1902db48	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1d122add	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x3f61b46c	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x440d581f	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x5b4bbd41	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x64f66939	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x7477ae8d	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x84fad067	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x8c701177	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb55ebf1f	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xcbbe2d71	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xf9750e0c	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xffa3fce7	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xa7bd22e9	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x1a079ff3	vfio_platform_remove_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x220625ec	vfio_platform_unregister_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x4b381caf	__vfio_platform_register_reset
+EXPORT_SYMBOL_GPL	 drivers/vfio/platform/vfio-platform-base 0x8747e7a2	vfio_platform_probe_common
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x039164a6	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x1593007e	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x21ac81c8	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x32944454	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x34764ac9	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x44b83e00	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x602f4e91	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x83bb510e	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xd4cc95d4	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xeebbe367	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x6cba7c38	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xe75b98f2	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x070a3194	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0e83e77d	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1b966f74	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1f017fb4	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x20f51814	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x27ce5c44	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2bb5e110	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2e1bbd30	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x31a04237	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x34728edc	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x50b885bb	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x52cf6e99	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5392362f	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5d698db1	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6c78f357	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x70cd3a56	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7bd61665	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x807c6d12	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x835d2b04	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x84aadcff	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x86313cf2	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8ce2d2af	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9587d205	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xab417c3a	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xacd1ae63	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xad0389da	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb6ac03d3	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbb3bc6df	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbc23e5d9	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbd77286b	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd2fe84a5	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd7a6a84b	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdb6bb7fd	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdea551f7	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe91f7079	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf3aec993	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfabeef8d	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfdc0b610	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x316c1694	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x36a83b7f	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x65df281a	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x82609bd3	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xc1edf9cb	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xd0406e22	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xf4eff5cc	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x11043a64	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x4ff754e8	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x65b5fc2a	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x06e15925	omapdss_of_get_next_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2b561c02	omapdss_of_find_source_for_first_ep
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x313bbe31	omapdss_of_get_first_endpoint
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x59bb4d72	omapdss_of_get_next_port
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x3fd07ba2	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xe61664fb	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x0a968b37	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x17056e92	w1_read_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x1742abad	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x22e0f967	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x2539c95a	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x77103555	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7abde457	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x7db42d6e	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x82a53e46	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x865d429d	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xea73d161	w1_reset_bus
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x96e81d3c	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x9e2c2670	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xf713b2aa	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x3ecdf8e9	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x7c25416f	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x859b05f9	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x96f40d2f	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xb9d05f94	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xca4f20df	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xdb707dcc	lockd_up
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x04072ed5	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x041d6b43	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x06c84c8b	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x07854d5d	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x07900e77	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x097168e0	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x09d16864	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a16bc0b	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b2e88e9	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b59784e	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0be72fac	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0e0867fb	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x11859253	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1508842a	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x184ec58c	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1b5fe321	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d1f15fb	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1d2cdbed	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ed97ade	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1eda497d	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f7dc7f6	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2755c272	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x287c4baa	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2a2e824f	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2bcead0a	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2c0b70dc	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x307f132e	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x34882957	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3556497e	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x37323faa	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c995ade	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3cbf8b57	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d7d50ad	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3db9c5c7	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x428bda44	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42ba5fe1	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x448bfe13	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x46ddc0b4	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x49753b92	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4e5616ca	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4fe9893d	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52dab51f	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x54d8de5d	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b57412c	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5c4548b7	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5cc06e2b	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5ddb0843	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62dfe621	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62efdff6	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63d5d516	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63e14e3c	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63fcd8cd	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66338113	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x67d21c76	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6a160c50	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6b25f6b0	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6dbe3029	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x701fc592	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x72c87073	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x731e428e	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x76d6d960	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x77d91e64	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x793e0d0b	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x79578c45	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d3ad015	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7ebf4ace	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8e938bdf	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x95f60e59	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x96e986c1	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x974b199b	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x977a42e7	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x990327b7	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d434065	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9ecc4a08	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa002973f	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2295d9f	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa417eaac	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa77969fa	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa7c03467	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9d8ea63	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaa82673a	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaaa14361	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaae30772	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xabbf46d8	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xad4b7d17	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xafe98d21	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb1156785	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb412f42e	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5c5a268	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb61b03b2	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb6de97b0	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb7bf8ae0	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb821b922	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbaeb0bbd	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc0b8326	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc722b57	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe48ab05	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe51626d	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3f837af	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc559c3e3	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5a0fad9	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5ba00c7	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc691ccfc	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc71f8dca	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc93a5012	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc948e548	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9acbd65	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcf011b1e	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2d552d5	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd480e711	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xda4a0f2a	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdb996f43	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde446e3f	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdeb2e7f0	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdefff759	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdfc66f51	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1151272	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe31cdcc7	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5fc7afe	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeaac7548	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec6d17dd	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xecd16081	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xefd5d1ce	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf0138a03	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf2bb5052	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf2d5fd6e	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf38e181b	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf47fe685	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4e853ea	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4eb4d73	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf728fa19	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf9c37270	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfa8b0ce7	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfb8065e8	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x8e8f1229	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x01a8fec3	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x01c7c717	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x02f0713e	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0a04674c	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x122628d2	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x139f28c0	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2976c8cf	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2da50e88	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3201280d	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36751a61	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x37c8dffb	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e6d008d	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3e73f10c	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4315dd46	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5205f7ed	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x544a0e98	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5cfe48bf	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5d522861	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5dca30e5	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x645c72fe	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x66d30861	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x68a1ccc8	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e16b52a	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e1e8cb4	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x77e7bfc5	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8be28ef5	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8eda1a42	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9e0ab1fa	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9fdbfef2	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa02df320	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa2847adf	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa38ce93d	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa520d06e	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa794bca7	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xaa834a44	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xafe861b3	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb08d2ab0	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1be17fe	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1ce83a7	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb4895436	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb5b09354	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb7b3190f	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb85de48c	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb99d303a	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xba8bb31b	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbbc253e3	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbd98cf13	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc151e45f	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc349c89a	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcac9675a	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xcbceaae9	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd0bfb5b4	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd350f699	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd7f8bf28	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd91310ee	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdbf1cac9	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xde01a417	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe07df861	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe0a3481e	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe1eca9bd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe34931e3	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe45ff9c2	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5a7264c	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5bdea9f	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe8b7e33c	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf33a0dcf	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf53e50e6	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf590d04f	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf5d5f087	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfc09b6fb	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x177065d3	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1d5b2b78	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xee047133	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x65ac15e4	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xd9f43fe3	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x3110568f	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x364f639b	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x583c4e92	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x86bc0e34	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x93fdd71c	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa37fbd1c	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd713e62	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xe62186aa	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x43d565d9	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x5187179c	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x691f452a	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x73cc505a	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xa0c123fe	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xa5d7c30f	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x40cd4694	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x514f30e3	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x87f86d48	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xb03a1fa9	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x7169f7da	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 kernel/torture 0xfb91d8fa	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xffc267d7	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x955ee96c	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x942bc333	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0xaac60b82	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x021957e1	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x0f8a2742	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xd4cb6873	raid6_call
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x329a2dd9	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0x882d61a9	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x2ad260e9	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x3fa936a5	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x4815b886	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xb3ef348d	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0xc519ff6d	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xe7c4510c	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4f033e94	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x5f138989	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x63c35365	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x93b7f0e6	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xbe0c68b9	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xd10dc0fe	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/stp 0x3a040bdf	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0xc8baed8e	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x1e8d633a	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xcb3eab96	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0x9710602e	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x07873649	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x3e54c0d5	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x7706b6ff	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x8e3e4dce	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x9570848e	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xa022db87	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xcc553fa3	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xf04c9e61	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0xd4bd825a	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x0718d7ab	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3b3c4a20	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x48805c46	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x493294b8	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x4a3ddbd7	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x579d8146	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x66fc4d3d	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6957185f	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6e246bc1	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7286d057	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x7c11d373	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9956713c	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc372b450	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xcbdc13e4	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd7bcf80c	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xde28f39f	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf030712e	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf6679bc3	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/core/failover 0x108c7f36	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xa171f066	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0xdb1fc3f2	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x02d8481b	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x065edd14	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x153bbeba	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x353b3217	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x42cfbede	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x44e0f0dc	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x487c949f	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4b48e398	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4e6a7f56	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5938d414	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5b2da698	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6620508d	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6ed86657	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7283d817	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7408b81d	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x760c4b5a	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x770f9287	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8b948c85	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x93107e1a	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x93c2d6ed	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa43e19f0	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xad798016	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xaeb90398	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb6c8c33b	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbba51602	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc0450c6b	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xce4d0d01	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd0f7a535	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdb304022	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdebcbde8	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdf1b1bb5	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf0784aa7	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf4dec90e	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf55ef99b	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xff836461	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x0396545e	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x2dc7a616	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x5248f4ba	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x6fa770bc	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x9c97210d	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xda9772ab	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x009f236a	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0279641d	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x07da4597	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0b94b5b2	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x0be31424	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x11aef2aa	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1e6e529f	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x477763f9	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5023a8d6	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x50d70a03	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x56fd5924	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5bd2876b	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x96780db4	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9a00c6ef	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa5be2c25	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa63c774b	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa7d992ff	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb5c984df	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xef5d79e6	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf96960a7	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf99688e0	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x3c59f523	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x754cf1dd	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xc5d34ca0	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xf919c87a	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xde41c8f0	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xe8877351	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xf990b548	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xfdc68f0f	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6be19798	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xb8ea5ace	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xb5d3f659	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xb8c4371a	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xd6eadceb	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x22991b9a	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xfbbecfb8	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2208c1ea	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x2725fad2	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x3360e00f	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x43bed037	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x4a2f5638	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x55718e8e	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x8bc9d7c0	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb5c24b2f	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb97239a4	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x88c13bf7	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x05b7fec7	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x0ee67507	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x12340e69	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1b46dad9	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x35597607	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3ff05e3f	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4f55fbf6	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x58984de1	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x7ddf4cce	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x82cd78ae	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x975eebbf	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa9bcf298	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcaf22deb	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xce6880e5	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd1dada59	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xeaa7db66	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x8b5e8eff	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x183c4478	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0x10b322bc	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x69ab1c85	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x2e68114a	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x449cac9c	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x4b2cd125	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xa2295a10	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xee4e589f	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0xc66b116a	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x397b2282	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x81f8474a	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x9e4d5378	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xb324f1ee	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xd7ed750e	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x10aa881c	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x4b32c55b	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x5392b361	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xcadf4aab	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xea902c08	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x42b6578c	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x5af1fda2	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6f3b4fc2	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x97bdb1db	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xa1253044	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb7fb44fe	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xddf47db3	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe9b10c69	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x22e5a531	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xdf98d2f4	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xfe241f6e	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x1810455f	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xacf7b672	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xe73d216b	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x25f6a16b	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xa69ae54d	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0xbcd050bd	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x3a1cb0ab	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x9c0158cc	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0xd1b39f14	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x48b395e2	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x915f2e22	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xba60ea7c	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xce67348d	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xe7a660bd	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x410cb003	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x73115075	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x8e16e2b2	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xd7a3d1c0	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x4af35832	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x68fd321b	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1a5d6954	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x35a8de18	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x38d1e5b6	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x59e14622	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x652d4def	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x667de91b	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x68844050	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x829f38d3	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x86d52064	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x97f831c6	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa097e3e8	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc3dd3dfc	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xcf00cd12	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd143ec76	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd311cddd	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xe48985fb	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xeaa92409	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0xb75ba468	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x13db65c7	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d2fe58a	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x23ec0fb5	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x2ab70969	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x35159b18	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x4d99338d	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x523a7fa5	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x6ccb3159	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x71e45fe5	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7668bc79	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7cf7053d	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x90e0d915	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x9bb73aa7	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xdabda19b	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xe00f5345	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xfc0f2a6a	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x0020bbd6	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x084ec6c5	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x78571219	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x8a3d99ff	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xde988808	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0a2e4bd9	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1f2c8f3b	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x29d7c442	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x392c3ffa	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x565a6dbe	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6492a116	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6c1eb88a	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6d1d9ac4	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8ed8ebfc	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaad4f495	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xad0c2f8c	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xb721677f	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc62f0987	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd7363395	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd993121c	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdee30aed	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xe6a298fc	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf1e8f90d	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x04e79afa	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x1279b977	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x5e31804e	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xdc2fc78e	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x00b96a46	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x268a4802	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x2d19559e	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x5de17db4	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xa2da26eb	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xbe03a217	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xf8989957	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x016008f9	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x042d9eba	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x04fc891d	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x05166972	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x07717cd3	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0ca84ae3	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0e9cbdfe	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0fb5795b	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0ff7cb2f	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x11341c86	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x13153103	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x156a7dec	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x190e1d6e	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x192c42b5	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1bbaef4a	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1de3f1ff	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x210abe55	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31283752	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x34c67ca6	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x38188389	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x38a40c74	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3a793268	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3ad87f74	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3e5de38d	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3f61f103	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x437b1e67	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x44d12645	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x473e385d	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x490e7598	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4b011569	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4d3f2322	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4ea258d2	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x500322d1	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x50e9ff6b	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x604be146	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6844247b	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x68f6c00f	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6a752e39	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6cf6f1b5	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6d0d5945	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6e10d702	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6ecc7237	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7335d1e9	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x76b4435c	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x79cda1ad	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7a000c3e	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x817a580f	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8349e9f0	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8507ab88	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x86d6404f	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x882f18b0	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x886c7a67	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8946460c	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a0a40ab	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a4e1909	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8bfd82a5	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8c6e11f4	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8e3d2a30	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x92bea7c5	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x98086714	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9b9e9469	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9eda7637	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9f644758	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb63bf62e	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb6f8c133	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc264809b	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6c22598	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc9777298	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcaaaf1ef	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xceaf9e8d	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcf1ecb3b	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcf3a817e	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd0f50a00	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd2b68f52	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd2ca7c9b	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd5977ba0	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdd04651c	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe10f7093	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe5dee594	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xedbd6267	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf3f00dca	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfa2c166a	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe909ade	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfedf967f	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0x7ab8b0f0	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xea5df430	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x61d458bb	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x17b93a43	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x49d14657	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5a6fb953	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x798dd8f9	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x8217e40b	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xa0dcde46	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xb683c985	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbaf42c26	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc752a5f8	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xede07aca	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0x9710aad2	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x19ea265b	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x4eb4deb5	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x9914b13d	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xdc17aceb	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x1da44a12	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x4d48243c	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x4f1b69a4	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6d3ede7d	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xbe9f4c02	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe1af0a41	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xe7ba2c4b	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xe2480c89	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0x2c0e09fc	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x22b39f27	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x3afc01e0	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xf88f9839	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x11cce422	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x2444dace	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x262d623a	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4b27f00f	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5193ed5b	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x7c812f65	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa670220f	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xc4aa4f7c	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe5fa7788	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf37ea894	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf4e723b0	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf8a60b42	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x1e0a13bd	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x40eecd4b	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x47f85b93	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x507cd31f	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x693e172d	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xd3ddcfd9	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x0c22adf5	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1972e037	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x52be1d14	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x59c27efb	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x636745fc	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x6fb5df4e	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7a13fbb9	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x9576e642	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa2bd0b69	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xa3315d2f	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbeeda67b	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbfd1d056	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xc3984e05	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd2456dd8	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd5f24892	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xde6d09a2	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x04b2d2db	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x29f312bb	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x2c2979ff	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x3905bb95	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x607bcea0	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x68a1357a	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x7a01f148	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa6541a87	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb4f4deb5	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xc7dd5713	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xfebc70e4	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x002a09cb	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x144bdf2f	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x196a59f8	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x19a0a3c3	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1c1a1531	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x249851ff	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x291f7c28	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2c2ee0f8	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x369aab6b	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4e1443b2	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51844e15	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x561b7130	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x583e569e	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5de39b91	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5fc12625	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x649ac47e	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x692d2c96	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x69e5c4d3	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x776e69a1	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x77c15342	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x850ccf52	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x861fb459	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f79e0c4	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x912e14ad	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x95855aee	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa0e3f5f1	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xa9ffc821	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xac715283	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xacbbab25	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb02244d9	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb4401266	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb62711d4	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdc2d0ff8	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdd0010ec	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2cb0503	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe30e639e	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe62291dc	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe8191d82	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf15eccb7	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xfa1336d9	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x03649e71	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x1dd8c832	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x306b148c	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x75eb86c0	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x8ff83fd1	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x9e1480cd	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x1f94dad3	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x9d68d88d	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xc9851f66	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xa1b43da4	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xfb1e427c	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x132a6249	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x61d7b325	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xc054e34d	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0xed4bfb7d	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x466c0715	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x4dcfe089	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x930b194e	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x01227b41	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x344adfaf	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3f1ef70a	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3f382393	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x569670c2	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x570c4e1e	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x57d2edae	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5fec046f	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8c683d74	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xaf68d35f	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb8800180	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb9a67bb9	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xded73cfb	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdf73a2c1	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xec6030db	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfd0427c6	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x0c0a8324	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x6cd4cddd	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xa65646b2	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xd3687796	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xf561abfe	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x53de21c8	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x694a2630	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xcde36457	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x621fb24e	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x98b89adf	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x414d9df0	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x73722f14	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x74a7996c	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x94edc014	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x9d7e75ac	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xb2b5e8d8	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x2e81e3df	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x330aa1d9	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x8806928a	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xedb20cf1	psample_group_put
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xb5f4bd52	qrtr_endpoint_register
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xbace6ccb	qrtr_endpoint_post
+EXPORT_SYMBOL_GPL	 net/qrtr/qrtr 0xe4b56e96	qrtr_endpoint_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x11ffc9ab	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1233d941	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x20552583	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x26a070c7	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2c2b0898	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2fd0af44	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3722bd39	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3ba9ec08	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4eef0e64	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5393e96d	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5e2628b9	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5f64b4d8	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x62ddf6d7	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x64310459	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x64a87be9	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x6a117402	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x79daeadb	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7de4c891	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9a33c038	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xaae525ee	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb3dc5f8e	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb8a7f01b	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc6311066	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd2608bb5	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xdd3964e8	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe68f6450	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf4c257e8	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf8795622	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfbe966d3	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xffbd2b57	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x62c024f0	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x9ee50e24	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xd46fba37	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xe4316487	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xfcf97988	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xffff7e44	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x02cfabd3	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x110be5a9	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x1b08f3c4	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x35f71eaf	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x9c870cc4	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb71eb4ef	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb9141bd5	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd02b3fa8	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xe63bf5ad	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xea2c3657	smc_proto6
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x14178422	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x17b999b7	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x4141317c	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x68613585	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x007da79d	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x026f24cd	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02b35447	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02dc893f	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x03cf8a97	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05a035c1	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x08735f2a	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x09b807c0	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b84fea0	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c28008b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e2b3826	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0fbfb2c9	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11e26fa9	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x12c1e02b	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1374b50b	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x137e7b20	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x138a49fe	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14b528dc	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16d093d7	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16ee02fc	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x178d4dde	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17950cb6	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x17e0ed87	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1807e7d1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x187a14ab	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19cd4586	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1afb8b30	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c171f56	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d2f032b	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d9e477b	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ee5a957	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x203b8f90	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x225ae7c4	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x228364fa	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22865bed	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22b85ed5	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x23ce2577	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x26dd814d	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x29912ed6	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2aa0795a	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2ad6035d	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2af15eeb	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2b0b62db	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2cbf9058	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d8bc041	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f478d39	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2f8ebbe0	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2fb8954d	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31adb735	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3200230f	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3255973e	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x331971e9	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x333b044a	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x33bc6e05	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x352d66ae	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x376c1c82	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38efe1ab	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x397b5b38	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a0628df	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3a216c97	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b209f11	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b7b7366	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b81082b	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3b9e46b6	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f966e48	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x406bb167	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x422d5f59	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4317d539	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x44933670	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4613a1e4	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x485170ed	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49df8be5	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4a224d8d	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c2bdc5c	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c729e87	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d67e62d	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4ef5219d	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x510617c6	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x513290ee	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x51db41c1	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x52a4d6f0	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5363e8f3	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53b1049c	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54918a44	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b055a86	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5b85cece	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5d41587c	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5de28def	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5fe074ca	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x61bc1e58	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6494c173	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x666fc7fe	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67f8d328	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e8da794	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71a68aae	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x72c5ab2c	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x732e0ff5	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7569551d	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7577b0f6	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x764ff199	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78b42127	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x78e4aa97	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7967536c	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a6c6580	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a6e6b2d	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ad13926	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ba9e3af	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c23fcce	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d4be653	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80445ac7	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80c53885	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x811a26d1	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81412a91	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x815f660f	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81d168a2	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82e1935e	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8355c7cb	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8485cb84	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x852ed1dc	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87cff127	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88b9912c	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a802e7b	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8aed4007	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8bb6a0ea	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8cac1338	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d6ca403	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8eee84de	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x909dfe7d	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90e52555	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x919307e7	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91b24073	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9224516d	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x92fa35d4	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9a855f85	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9adfddd9	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b02ea40	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d018667	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d3253be	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa045188d	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1d22f22	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa25e83e9	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa2ef965f	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa35faac1	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4da26f5	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5f55522	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8bea441	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9fa0659	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa47241c	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaad05627	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad03071f	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad0eb90d	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad3ed986	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xad733a41	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae982728	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaef77e87	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb0e43b0e	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb13427bf	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb15a7c19	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1d03992	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb1d32c3e	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb275f56a	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb288c252	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2a087c9	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2c85f0b	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb614b9dd	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb9fa9645	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbb64d132	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbcb1a2cb	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe1c705d	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbee17ad9	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc169d947	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc272d878	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc42d0f1c	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc4f6207f	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc541f30e	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6c4591a	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc722da35	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc726ca1d	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7aaf098	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7b90996	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc82887c0	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc9f9ecb8	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcaa68f0b	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcbacdcf8	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccbe9b57	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcd33e649	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce6face5	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce904464	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcea3d74c	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf8fd548	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2fb4763	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd50e688d	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd5565547	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd676406a	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd67c5d02	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd697c053	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd7e7d94f	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd9d666e4	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb9f77de	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc22496a	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc98e7e9	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde86c944	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdeab5c8d	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe03600dd	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0e2cfb2	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2c1fd11	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe47ac0d7	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5e6632e	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe8072d1e	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe95c348f	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9dbbfd6	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea1a2856	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xea3d1af2	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaa0b3d3	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeaa16beb	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xebb36444	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xecc3ed0a	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xecf40b50	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee960647	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0d5c88f	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf28a3038	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6181846	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf70066a9	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf704ca8e	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf74f1564	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf82cd3b8	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf90204b0	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb70e5ba	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfc839f17	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x48ac21a5	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x52e1fe61	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x13e033b7	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x168a3c5c	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x20acfce5	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x25335a4e	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x382a170e	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x40164fea	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x44fde1e5	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x463db5ac	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x47d4c0be	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x55058b7e	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5629ba57	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x634299c0	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x65baea87	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x67c00699	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6963ecd5	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x72bca4e2	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7b17e0d1	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7cf199e5	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7e10265a	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x867c3998	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa1a0a694	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa6f1e107	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xab5493c0	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xade56bb4	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaffa96d5	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb52a085a	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc49bdd62	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc757d6ab	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcdf462a5	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe233b58a	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xed8d8721	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xeee78c78	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf2d0a360	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfc20f960	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfcdf1a72	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xffac7d5d	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c73f9e5	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x112fb400	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x11f34352	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3db362fd	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3f11ff5c	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3fe52cb9	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4418ccd2	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x44420515	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x4734b07c	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x74e91915	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x83573b17	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8481ae7f	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x87fc40d2	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9852d841	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9e218e73	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb9d173d2	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd3b301a7	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xdaab6974	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xe25083e2	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf20b060f	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x0ddeb661	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x21411891	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x4db2f854	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x54205e83	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x5d13e7fd	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x62d573a6	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7733e60c	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7c9f0991	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x8c4b4533	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x8ee347de	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa3dcc9d7	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xad5c2905	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb6afea51	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x073030db	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x184e2d32	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x1e43f45a	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x31183ade	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x46980cce	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4a08a5e7	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x4de4d41f	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x5ae47391	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x73f37a1a	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x84094da2	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xac4cdcd6	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xc914e114	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xcbda32b3	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xde4cf82a	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe713c238	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf5b6a1b3	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x8f07df1b	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xb0a19b68	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xddcec770	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xe5de027e	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x4060ffca	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x9e533e38	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x206fe54d	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x4d762c7d	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x5141b15e	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x6ec8f5d3	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x8bb87ffc	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xdf208886	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xed31d581	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0570d758	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x061c1616	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x09a0a7d2	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0f46179c	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x10888c43	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x14b5aa8a	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x16da0b76	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x16e2b3f1	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x19fbdeca	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1bf91238	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1cae44d2	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x243c8e7e	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2447b616	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x328f4379	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x37ba4063	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3b98d88b	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3ba24bcd	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f75ecbb	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x408cd7f3	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x409d82fd	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x426b6bba	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x46302852	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4716075f	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x49709875	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4aa8f6d2	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4b7a94e3	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4e1c9fc2	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4f7d1a1c	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5145e404	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5173608c	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5299704f	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x531b09b6	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x538ffc14	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x61c6c47c	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x64865ea8	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x663ad071	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6b4b3e35	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x6f8b3ff5	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x70e02fd6	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x738de464	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x76cdbe95	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7ad2cd63	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x813affec	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8218cf03	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85be13ea	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x85fee0ed	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x86223d47	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8913df1a	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x99b27d1b	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9cea782e	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9f9db9ed	snd_hdac_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9fdcc45b	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa00ee3ed	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa3e9ecce	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa54aa242	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa92e5031	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaa9a0552	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xad7f2b29	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xad943a51	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xaec59831	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xba2c3280	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc10c9d90	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc12f2f6f	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc7c6dbb9	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc7f1f947	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc94ab2cc	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc9810504	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcc643d0e	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd0dc78aa	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd37fc608	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd68758d1	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe1aee865	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe1ddeb55	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xedfacbd8	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xefef1d57	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf10f994e	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf265e06b	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf26a741d	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf3a70259	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf4226532	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf4ea1bf9	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf6345982	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfefd97f3	snd_hdac_stop_streams_and_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xffbb2fdb	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0x2aad3d05	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x2ed8ddeb	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x3488d243	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x44f22d68	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x763b1c03	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xa86c954c	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xfb386ec5	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x02752dbc	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x04abdd92	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0676f5ac	snd_hda_get_input_pin_attr
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x090ffbd2	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x09ae5bbf	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0b5b77bf	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0ba9cb26	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0d047d5e	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x13f3231c	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x163b44b2	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x16dab971	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x17dd2901	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x18c8064f	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x19ce9ac5	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1acb718d	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1f5a4df3	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20d7019d	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x24631f4f	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x24a8f431	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x25bf709b	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2d38de4e	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f52d7fd	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f5e430f	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3050bab9	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x321ffd78	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x32284fce	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3412d2dd	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x351a2388	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x37e156da	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c209cbf	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3c320790	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3db4c1d9	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3ecb89e9	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x41d7666e	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x452347f0	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4bd0d09e	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x51b03004	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5257276c	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5412eac9	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5518dc35	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x55315d48	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x55369c27	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x556f136e	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5646760e	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x577d9c12	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x581d3001	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5a0f6445	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5ce1ee2c	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6072c471	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x633af041	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x64fd5339	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x698aac82	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6aff2f79	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6ca93fdd	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x70c81521	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x71db589c	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7dd7b2c4	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ee0217b	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7f240081	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x82244396	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x82ded3fc	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x830f1f24	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x83f80ac9	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x87e946bb	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x89bb9eeb	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8a3cb8d5	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x951cf419	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9a2a2bde	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9cdbfa04	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9de7a73d	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9f416914	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa01a7790	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa0b3e382	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa23c8bfb	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa4e7641c	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa6a38f88	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa8a5cb6b	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xab71ccd4	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xacdb9f32	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xace9c3aa	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xae284056	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xaefc4779	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb2f4a4bb	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb372aa1d	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb48d5920	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbb4b1acb	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbce89a09	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbdafd366	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1abc88c	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc27c66a1	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc5d3dab6	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc88df53d	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcab1d4b6	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcb7098d3	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcc34c90e	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd0544c68	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd2b6baad	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd4e885e5	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd53d30fb	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd9dd570c	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xda4d0a44	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb15a015	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdcfdc199	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe1e71bc5	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe32046b8	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe554f35a	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe60a0457	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe65a85f9	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe7584ec7	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe8e1c35a	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec0f9d06	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xedebee22	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xefa76162	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf21c0ad3	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf4e63e7a	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf6d0b50a	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf738d783	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf8bd2cc8	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfbf2e02c	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfcdf44a7	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff047d8b	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff2cf27a	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x01753c62	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x02bccacd	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0970dc6c	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x264a6473	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x2d9fe06e	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x37e85b62	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x420c6bda	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4a5ba657	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5d96db04	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x5e9b2d76	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x62e9ffc1	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76d43974	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76dc6871	hda_main_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x85be9166	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x871a6e44	hda_extra_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x8b1637a6	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa1f6e5d7	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xa68b828b	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xc40d7acd	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xceb1a5c3	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xddd3068b	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe5abe5a7	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xe5c1db58	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xfdba9e91	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x62cbc962	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0xe69170d5	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x331f13c9	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x654544cb	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x7ce5cf47	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x81f6a033	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x981b0642	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xa9d78b9e	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xbdfe1813	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xc1ac7c6a	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xf5c77001	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xf8650571	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x07673457	arizona_init_mono
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x0b3962f3	arizona_lhpf_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x1349f6d4	arizona_set_output_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x16c9f518	arizona_lhpf4_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x1762dde7	arizona_in_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x24cd2c36	arizona_output_anc_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x2aa795cc	arizona_voice_trigger_switch
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x305a3303	arizona_init_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x337a77c8	arizona_in_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x3759e056	arizona_isrc_fsh
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x4356f356	arizona_init_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x44f1dabf	arizona_lhpf1_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x46277216	arizona_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x4a84791f	arizona_set_fll
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x4b49138c	arizona_init_dvfs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x52ad1608	arizona_in_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x560d7537	arizona_clk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x5a33703e	arizona_init_spk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x5ae880c5	arizona_eq_coeff_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x5f2c3e06	arizona_set_fll_refclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x638b0151	arizona_hp_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x649bd41b	arizona_dvfs_down
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x69102a20	arizona_sample_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x6cbcf122	arizona_init_dai
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x729a5ef3	arizona_mixer_values
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7519c022	arizona_lhpf2_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7f26f273	arizona_mixer_texts
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x7fcb929a	arizona_sample_rate_val_to_name
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x82cd9d14	arizona_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x8a05f264	arizona_adsp2_rate_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x8bc22700	arizona_init_common
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x912c4f9a	arizona_out_vi_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x9e30c5b4	arizona_simple_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0x9ecf4a39	arizona_in_dmic_osr
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa174a203	arizona_dvfs_up
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa823d149	arizona_anc_ng_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xa89cc3da	arizona_out_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xaa3346e7	arizona_init_vol_limit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xab4d845c	arizona_rate_text
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xacc8a240	arizona_isrc_fsl
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb16db098	arizona_input_analog
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xb2f2b69f	arizona_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc690ecfa	arizona_of_get_audio_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xc9c29637	arizona_mixer_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcb54dd75	arizona_anc_input_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcb7b25ed	arizona_asrc_rate1
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcec9bae1	arizona_in_hpf_cut_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xcf76b86f	arizona_init_gpio
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xd36ecb96	arizona_lhpf3_mode
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xdfe804b8	arizona_sample_rate_val
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf0fb2e5a	arizona_out_vd_ramp
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf19d38c1	arizona_ng_hold
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf30d76a2	arizona_dvfs_sysclk_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf580a1e2	arizona_free_spk_irqs
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-arizona 0xf9081a64	arizona_anc_ev
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x37c85c32	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x4fb1f266	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x11058f5f	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x154bd450	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x1ae3f0dd	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x7f29e234	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xcc3097e2	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x583d8326	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x96f4d505	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xfda5c90f	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x0908487a	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0x9a04c0ad	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xbccf3977	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x08cab82c	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0xa2340499	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x2cb17770	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98090 0x47554d26	max98090_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-max98095 0x2bc9ad60	max98095_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x6bb869dd	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xa66e3cbd	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xcb969b7f	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xd952998d	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0x013043a9	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x17c67ce1	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x5fa965e5	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x87d59281	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x1076d0c9	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x5dbe8954	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x76d65ee3	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x81ae7617	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x1ecd80e4	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x884a0a97	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xc5793008	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xdf628f42	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x085947f1	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x10cc98f0	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x46049b2c	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xf00ed397	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0x554467a3	rt5514_spi_burst_read
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5514-spi 0xbb4583f6	rt5514_spi_burst_write
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x17992302	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x60c37571	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5663 0x7985828c	rt5663_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x0e75e3e2	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x36d3a91b	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x90351f29	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xcc1484d5	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xd71f2f73	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0xf07c028d	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0xbe23aa8a	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x95959726	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0xa0755b29	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-tlv320aic32x4 0x6478836d	aic32x4_register_clocks
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0x85f405dc	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x0bd5a195	wm_adsp_compr_set_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x109e74a0	wm_adsp2_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x1d94c76d	wm_adsp_fw_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x1ddc2982	wm_adsp_compr_pointer
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x27a654da	wm_adsp2_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x28e8d0d6	wm_adsp_compr_handle_irq
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x49aa1922	wm_adsp1_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x4e5e7c1c	wm_adsp_compr_open
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x52c16479	wm_halo_wdt_expire
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x5314ca66	wm_adsp_fw_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x5989e05d	wm_adsp_compr_copy
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x63d34ab5	wm_adsp_compr_get_caps
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x781aa64f	wm_adsp_fw_enum
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8a18cfa9	wm_adsp_compr_free
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8d95f569	wm_adsp2_set_dspclk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0x8eb2055d	wm_adsp2_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xa8b1de89	wm_adsp_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb045bcc3	wm_adsp2_component_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb0c8809d	wm_adsp2_preloader_get
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xb3fe0b78	wm_adsp_early_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xcef5b6d1	wm_adsp_compr_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xd3e13c9c	wm_halo_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xdd3c79ef	wm_adsp2_bus_error
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xea38ee07	wm_halo_bus_error
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xec03695d	wm_adsp1_event
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-adsp 0xfe488d96	wm_adsp2_preloader_put
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x06b71007	wm_hubs_hpr_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x0aaedcae	wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x2f6a62ca	wm_hubs_set_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x39dd009c	wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x3f6b73ec	wm_hubs_hpl_mux
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b	wm_hubs_dcs_done
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x757206d5	wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0x924a6c43	wm_hubs_vmid_ena
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xc0fd31b3	wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm-hubs 0xc609c2b9	wm_hubs_update_class_w
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x711e473f	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xc218ab80	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xd01d7b9e	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0xffd41754	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x6ed7ad58	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x68aa2863	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0x7a71dbc7	wm8958_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8994 0xcbf388ea	wm8994_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x16461eb1	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x38a33ff4	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x1fa5595a	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x1fa77cb6	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x23ded748	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2cce237b	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2e73b878	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x38236b18	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x484d0b11	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x6c762b20	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x75f1aee9	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x77bd05a9	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x92ce8046	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xbc2a67e4	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd39215f5	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd49d7495	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd9ce2ed2	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe61ea27e	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xeecdfae1	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xeff76e5e	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x06df0c2e	mtk_dynamic_irq_release
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x1df5704e	mtk_afe_combine_sub_dai
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x311a26a8	mtk_afe_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x35c7ab24	mtk_afe_fe_startup
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x4bea1cea	mtk_dynamic_irq_acquire
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x6af74ded	mtk_afe_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x85efc51f	mtk_afe_pcm_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x8837c683	mtk_afe_fe_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0x97c63527	mtk_afe_fe_ops
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xafd64260	mtk_afe_fe_hw_free
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xb1cacc6e	mtk_afe_fe_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xc622c5af	mtk_afe_pcm_platform
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xcd48a3d8	mtk_afe_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xcd6fdf32	mtk_afe_fe_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xde4dd5ed	mtk_afe_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xe5925404	mtk_afe_fe_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/mediatek/common/snd-soc-mtk-common 0xea4b17b4	mtk_afe_add_sub_dai_control
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x037944db	axg_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x1969302f	axg_fifo_pcm_new
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0x9696e8ea	g12a_fifo_pcm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-fifo 0xd37b052d	axg_fifo_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x2db27767	axg_tdm_stream_stop
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x613ca689	axg_tdm_formatter_probe
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x679cd72f	axg_tdm_stream_free
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x9734c838	axg_tdm_stream_start
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x99d7c433	axg_tdm_formatter_event
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xb711a93e	axg_tdm_stream_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xeaf1cae4	axg_tdm_formatter_set_channel_masks
+EXPORT_SYMBOL_GPL	 sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x5928b822	axg_tdm_set_tdm_slots
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x28421460	q6adm_get_copp_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x3e171a5c	q6adm_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0x6363fc20	q6adm_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6adm 0xd37487cc	q6adm_matrix_map
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x369b6eeb	q6afe_port_put
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3997e13a	q6afe_is_rx_port
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x3b16d6e7	q6afe_port_stop
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x498d993b	q6afe_get_port_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x5332304f	q6afe_slim_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0x7df60063	q6afe_port_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xae809786	q6afe_hdmi_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd1ea609f	q6afe_port_get_from_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xd4523c59	q6afe_i2s_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xe45246a8	q6afe_port_start
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6afe 0xfaf22370	q6afe_tdm_port_prepare
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x151ae9d4	q6asm_cmd
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x40299233	q6asm_run
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x4352d067	q6asm_audio_client_alloc
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x5382edf1	q6asm_open_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x68db31e2	q6asm_unmap_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x6eb89e95	q6asm_media_format_block_multi_ch_pcm
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x7353d9dd	q6asm_cmd_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0x857330c9	q6asm_write_async
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xb4f98cb3	q6asm_map_memory_regions
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xc5a116a4	q6asm_get_session_id
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xcc4952e4	q6asm_audio_client_free
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xd599e50f	q6asm_enc_cfg_blk_pcm_format_support
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xdbedfcd9	q6asm_run_nowait
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xe060c0a1	q6asm_read
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6asm 0xf37f832c	q6asm_open_write
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x7e52e977	q6core_is_adsp_ready
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6core 0x9b02ea0d	q6core_get_svc_api_info
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6dsp-common 0x17142e58	q6dsp_map_channels
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0x5b75f756	q6routing_stream_open
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/qdsp6/q6routing 0xa7a64259	q6routing_stream_close
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x056417d5	asoc_qcom_lpass_cpu_dai_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x260e64b0	asoc_qcom_lpass_cpu_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x336184bc	asoc_qcom_lpass_cpu_platform_probe
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-cpu 0x68e1de0f	asoc_qcom_lpass_cpu_platform_remove
+EXPORT_SYMBOL_GPL	 sound/soc/qcom/snd-soc-lpass-platform 0x077b9c2d	asoc_qcom_lpass_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/rockchip/snd-soc-rockchip-pcm 0x5b65e32a	rockchip_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-idma 0x14e9ba13	idma_reg_addr_init
+EXPORT_SYMBOL_GPL	 sound/soc/samsung/snd-soc-s3c-dma 0xcc037a55	samsung_asoc_dma_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x4e4475f5	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x7cdefc70	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x8e894cbd	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0xd9996a86	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-omap-mcbsp 0xa88ac4de	omap_mcbsp_st_add_controls
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-edma 0x1a1ac9ff	edma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/ti/snd-soc-ti-sdma 0x1dd6c026	sdma_pcm_platform_register
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x06e6def5	uniphier_aio_spdif_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x080cf966	uniphier_aiodma_soc_register_platform
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x19db38fc	uniphier_aio_probe
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x1e172523	uniphier_aio_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x3489f595	uniphier_aio_dai_remove
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0x739aecc7	uniphier_aio_dai_resume
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xbcacf912	uniphier_aio_dai_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xc6204f24	uniphier_aio_i2s_ops
+EXPORT_SYMBOL_GPL	 sound/soc/uniphier/snd-soc-uniphier-aio-cpu 0xf2a678c4	uniphier_aio_dai_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x02887188	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x2c152182	line6_pcm_release
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x4d055334	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5c045a0f	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7617ccbc	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7a1d732b	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x92fc2d58	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x942480c2	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9436c848	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x9695335e	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xa7dd82f0	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xc8b27938	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xdc05300c	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe3674933	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xe8289a50	line6_init_pcm
+EXPORT_SYMBOL_GPL	 vmlinux 0x00078b1a	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0007b47a	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x000e0f18	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0010b06e	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x00279ec2	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x002c4bc8	clk_hw_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x0048d15e	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x005457bc	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00684844	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x006b7170	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x007a3cc9	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x00828ce3	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x00862e33	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x009f1954	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a483ba	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ad21a7	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d03dde	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4a1e7	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x00d4dc7f	clk_fixed_rate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x00db5b87	irq_chip_set_affinity_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e6db6b	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e8dc04	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ea5d94	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f85e69	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x00fa469d	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0117bd91	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01347ff9	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x01546422	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0170cb6c	efivar_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0179851a	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x017b249c	of_clk_add_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01983578	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x01999ef3	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x019bbb8c	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b69c41	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x01b75e72	cpts_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c6cb0c	cpu_cluster_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ca86aa	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d747f5	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x01dfe696	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ec6c18	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x0204d784	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x020f26ca	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x021f2f95	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x022aab6c	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x022ef16c	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x0241f1c9	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x02424634	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0x02446509	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x024530b7	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x025d7c7a	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x02691222	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x026b6fa3	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x026c8ee0	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x026d73a5	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x026f3380	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0283d1e4	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b24cd3	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c26b32	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x02e469a9	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ea61a6	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ead429	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x030c3c87	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d6d45	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x031d7205	clk_half_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0329b9c2	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x032c4046	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x03315f0c	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x03329351	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x033d8287	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x036cc398	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x036d8e9b	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x0378a5ff	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x03790578	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0387923e	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0390fa28	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ae66f7	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b47a4d	clkdev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b664af	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x03b830d4	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d3812a	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x03d73a2b	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fe3f61	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0403ad28	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x040eb02d	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0446eb7d	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x044d05d0	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x044ff4e6	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x045245e7	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0453eaf0	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x045a28dc	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x04671f98	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x046bec7b	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04832bea	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x04889775	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x048ec198	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ae4635	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x04b03624	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e28aa6	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e8dd28	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ed3152	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f2a5b9	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f6081f	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x050174b0	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x0501e099	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x050a1abb	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0549b323	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 vmlinux 0x054bdda9	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x054f98cb	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x055735a2	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x055f7970	__clk_mux_determine_rate_closest
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0569eeac	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x056c0904	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x0579633b	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x05815577	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x059a010c	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x05b95286	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c750ae	rockchip_pcie_deinit_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x05ce8e47	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d00e80	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x05da076a	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x05dd539f	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x06122337	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x062615be	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x062b9e0f	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x064fd256	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x065423ba	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x0655aeab	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x06761bdd	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0x067e50f0	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x0691ebfe	clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x069b4f0d	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x06a0a35a	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x06abca56	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x06b53bd2	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cc6484	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x06cd4c86	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x06d88cd6	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e5070f	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e92aea	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ebe794	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0701ed16	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0709580a	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x0722eff1	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x07241994	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x07335b07	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0x07443fc5	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x0768d2bb	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0773700c	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x077b69fd	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x077cdb38	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0790348e	sdhci_free_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b7f323	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e71d1c	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x07e75624	clk_hw_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x07eb3503	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x07fa055e	scmi_protocol_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07faba18	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0816270a	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0816c905	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x08178827	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x082088f6	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x0821b245	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x08268187	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x0848622f	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x086b3e84	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x087dc3c0	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x08aeed7f	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x08afc823	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bb5fe9	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c73234	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c7d771	rockchip_pcie_get_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d44db6	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d9342d	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e5874e	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e94300	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x09032457	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x09033fd8	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x090d4d8d	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x0911840c	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x091609d8	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0919d629	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x092953b2	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x092f0318	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0x0937b511	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0944657a	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x094cd670	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x09541ca2	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0956b414	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x095f0d6a	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x096e5b12	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0974380a	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x0975004b	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x098cc8e5	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x099c131d	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x09a095ad	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09d22426	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e6be19	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e966e7	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x09e9b5ba	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x09f35cd0	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a06d575	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a07754e	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a140ec4	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a17e4ce	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a198a21	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a22631c	clk_hw_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a2ca33c	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a2ee543	clk_register_hisi_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a3c3cf8	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a504ede	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a532e57	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a5df58d	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6be0db	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a79ec53	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a90e54d	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ab0c48f	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abc2619	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abc3d93	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac48a7d	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac61054	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac9e1de	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad284c0	sm501_unit_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad7db34	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ad8aaca	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0add95d9	clk_hw_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af2094d	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07fd8f	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0d92bd	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b178523	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b19a04a	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1d3b36	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b25a4cd	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2970fe	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2d7975	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b32d7eb	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3b6a6f	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b3f0e69	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b50bca8	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b64ab7b	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b723a5b	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7aa848	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7b7b09	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb028d4	hisi_clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bba2671	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bce8960	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bde3a9f	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c132382	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1a9296	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c3f3e3e	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c47c5af	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c4b39d5	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5ba626	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c5e2a99	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c66ce39	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c6763a6	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c7f95fd	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c975cad	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb26ec2	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb3bdfc	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cd6569d	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce54bd4	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cea3251	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cfc3902	mtd_is_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d12a481	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1cdcc1	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d308f0e	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d362d79	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d36d607	efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3ede3c	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d417dbe	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d518115	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5a5939	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d66d902	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d9f088b	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da631e9	nand_deselect_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dbefffa	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc8870c	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de4885a	nand_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dffa677	put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0698dc	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e18faf5	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e89de2c	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e8a574a	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eac8082	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb4158a	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ebbee65	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ebc6919	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ece0a18	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed31de4	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed4e326	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ed6c7e5	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f07746d	ahci_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f0907a1	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f11b1ad	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1a7500	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f25ed96	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f2da3dc	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3454a3	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f34dfa6	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7363df	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ca236	dmi_memdev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f811b8a	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9155a4	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9929ab	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9ec88b	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faefb80	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x0faf278c	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fece695	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0feea6a8	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x100359e4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x1006d64a	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x100ab093	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x10199015	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x101ac869	clk_gate_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x102b9ab5	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x103bff10	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x103fd712	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1043cac3	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x10575cc0	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x105e3e6f	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x1072f4f1	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1074f33a	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x10822444	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1089ca5c	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x108c9475	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x1095dd8c	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x10a8e0fa	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d22fe7	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x10d539a5	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e99a69	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1104c4d5	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x1122e5a4	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x112fea7f	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x1144c641	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x11597585	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x118596d0	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1188076c	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x11892c79	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x119e1f89	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11adbb1b	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x11b300b5	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d44700	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x11da02c1	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f28e10	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x12124c29	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x12164c83	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x127bd435	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x12891e4a	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x128a7a1e	efivar_entry_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x128bdb6c	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x1294f101	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1296dcbd	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x12a67966	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x12ab0ec6	of_clk_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0x12cd68b0	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dd5b7e	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f0d50f	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x12fdce66	dw_pcie_write_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x130482c2	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x130a2485	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x131ee5c6	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x13200164	nand_read_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x1322cb71	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x132ad161	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x135b2fb1	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x135c72ef	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x13668b92	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x137e2312	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1380c3b1	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x1381d4f3	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x13889036	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x139cbf11	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a1d2da	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a5c8dd	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x13aca309	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x13bcd2df	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x13e8c84d	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ec0e85	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ee7368	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x13f90458	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1400f767	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1411f602	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x142844d4	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x142fe50a	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 vmlinux 0x14501051	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x146d5ecc	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x147c8d93	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x14856961	pm_clk_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x14a98a21	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x14aa8ef8	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x14b28709	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x14bcef79	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x14c2872d	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x14cc7d55	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d01690	clk_mux_index_to_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e17231	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e6e537	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x15097da9	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x15187b49	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x1527e2cb	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b6ad0	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0x15437cf9	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0x154b8a8b	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1558f7f1	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x155c387c	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x1561fe02	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x15700e41	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x157129e8	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x158e6fee	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x158f3b29	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x159e0eba	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b06044	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b1c929	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x15cb58fb	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f27ed3	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f2a127	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x160efbe5	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x16124d0d	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x164229f2	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x16464fc3	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1649b83b	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1652904f	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x165e9d4e	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d3fe7	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x166fbfa8	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x1675c1b7	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x16761052	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x1694e705	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x169772b9	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a505f1	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b930c0	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c80981	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c9c627	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d04722	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d39636	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d9f9ff	pci_remap_cfgspace
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f73794	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x17124909	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x171622a7	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x1723c7a7	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x172fd7cb	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x17470e85	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x174e4cb1	snd_compress_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x177a0633	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a14ed3	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a1d37b	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ad98f4	pm_clk_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ad9b45	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x17bbf661	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c3d377	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x17ccb4c1	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d3f405	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d82fcd	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d9f2c2	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x17e10bcb	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f3cca9	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f97668	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x18070753	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x18107e08	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1821008f	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0x184395d8	clk_hw_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x185b6aa6	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x185c8bbc	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0x18605494	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x186e7a34	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1882d532	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x18837635	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x189b0333	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x18bb9169	pl08x_filter_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x18da1520	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x18ddfa86	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e191d0	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e8c606	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e942fb	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x18f1309b	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fba931	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x19045262	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1939ee6c	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x194132fa	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x195b635f	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x197407c2	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x1976b30f	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x198646e8	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0x19944f29	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a94fb1	nand_write_data_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x19ac3c5e	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x19afba97	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b57670	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b5769c	mtk_smi_larb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19cc6c97	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e1cd4c	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f0e268	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f473d6	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1903c2	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3d290e	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3d8cc3	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf8e1	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a7a92d0	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a7aedab	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a85c200	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aa3211b	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab6909b	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1abd4eb4	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae6a805	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af6c9aa	clk_regmap_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afb2ebf	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afefd92	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b08cbe7	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1ceab6	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b30233a	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6807f9	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b76fa9a	irq_chip_set_type_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b7b71e8	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b848988	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8495c7	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b892f44	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b89f7a7	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bacd13e	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bb59fef	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bbe82bd	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc40a8d	gpmc_omap_get_nand_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bcd14fb	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be2656b	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be7de9e	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0b4678	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0e2744	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c1433ae	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c197970	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c1deb1f	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c53b7eb	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5ff742	clk_get_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c6775fd	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c6a0c04	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c790f1c	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c79691d	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c798d9f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87b81b	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c929a8a	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9b0745	xhci_mtk_add_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca149bd	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc04d0b	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ccc2000	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd80a3d	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce14441	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce88acf	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ceca252	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfcc311	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfdfb24	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d07f103	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d082812	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d0db44d	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d193e19	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d1f5d7f	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d27d18e	irq_domain_free_irqs_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d2c88db	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d318001	clk_fixed_factor_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d3f43e6	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d5f6b43	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d61e7e1	clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7e3cb3	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d825373	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d8f0d56	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9226ee	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9a27d3	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da76adb	meson_clk_mpll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1daaed97	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dafc3e0	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc155c3	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dce4a9a	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd96621	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x1de1ee32	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x1def5471	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df03d1a	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df6dae8	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dfed948	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e17951a	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1a2568	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1f3061	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e241f0b	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e38fcdf	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e46e33e	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e4b2afb	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e77fb0c	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7d6157	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8054fc	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e988b87	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ea94a33	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb470a1	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb47bec	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ec8a262	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed916d0	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef3270c	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef9a019	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1ac10f	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f4817a6	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f54b3ee	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5d71f4	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5efa3b	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f625cff	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f7112e9	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f76a31e	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f774f46	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fb91644	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fbc95e0	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc0aeb9	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc45d91	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fca0b38	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fd97762	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2007affc	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2013b427	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x20166e31	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x201a442e	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x201acbd2	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x20208a65	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2020d73a	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x202c27c7	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x20386041	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x203c535b	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x204564dd	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0x20471808	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x2049a397	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x20556b96	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x20912663	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x209afdbf	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x20aed6b6	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c3839a	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c5bc7e	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ca6790	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e158cc	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ea24d4	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f90705	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x20fcc054	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2107a3cb	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x210a399f	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x210e1b85	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2114d4db	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2123641c	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21400189	tps65217_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x21494650	mvebu_mbus_get_dram_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x215139e9	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2154e7d2	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x21562a1d	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x21580830	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x21609305	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x21640c95	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21723b68	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x21726652	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x217ba924	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a027c0	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a563da	clk_get_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b1f020	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b7fdbb	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d52e92	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x21eac665	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x22182abe	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2221cd21	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2227ba5a	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x222befee	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x222d4c02	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x2230843d	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x2256663f	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x22648c02	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x22729ffe	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2278db2c	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x2286d87e	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x228b0646	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x22901c92	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x22989f5a	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a52ab9	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x22ae46e0	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b14bdf	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b19783	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c278fa	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x22d2e85f	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x22dfdd99	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fa230f	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x23134dca	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x232abb53	dw_pcie_msi_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x23312439	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x234ae3a4	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x234f701a	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x23530d3e	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2384b943	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23866a91	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x238f1ab9	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0x23950433	efivar_variable_is_removable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2396c7f0	clk_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b20edc	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c04daa	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c4d866	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c637b6	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d6113e	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23e23381	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x23fd7975	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x24127f68	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x242c7b49	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x24302c15	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x246adb5d	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24778132	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2481bf18	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x24aacafb	snd_compr_stop_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b35dd9	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x24bbc494	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x24dc9232	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x250b69e8	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x25218ac3	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x252a2c43	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x25364e64	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x25379e73	clk_set_min_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x257a0072	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x257a61ad	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x257b683f	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2591f463	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x259b632e	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ac44fc	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b5f61d	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x25be03f6	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c572f8	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0x25da54fa	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x25fd80e5	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x26097d46	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x26329111	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x263548e8	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x2638586b	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x263ba25d	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2647c1d9	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x2661a8f0	mtd_write_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0x266ba99a	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x266c3281	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x267a1abb	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2682f235	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c53511	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c547c0	bL_switcher_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26cfbefa	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d47fde	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x26d6e49d	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27192a80	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x271e7770	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x27298cda	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x272dba29	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0x272e9d77	hisi_reset_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27379596	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2739f155	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x273d47e5	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x274cf5e1	__clk_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x2751ec14	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x275345be	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x276dba23	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x277162ee	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x27adb5cb	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b2f02e	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x27d15bdf	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e01195	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e42756	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f77edf	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f7a378	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fd24b4	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x280023ef	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x280a041f	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2813c77e	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x28218d60	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x282b7d57	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x283236a9	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x283312c1	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x283456b9	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x284c34fa	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x28552c6b	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x28638249	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x28691b56	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x2870bb94	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x28745a18	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x289827fb	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a7db63	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b9891f	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d8859b	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d8be9a	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x28dda205	gpiochip_populate_parent_fwspec_fourcell
+EXPORT_SYMBOL_GPL	 vmlinux 0x28de0295	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e05677	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e5a86d	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e7172f	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x28f5357b	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x28fe36ee	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x290d1605	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x29204b29	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x29379b93	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x293de8d1	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x295b982a	hisi_clk_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x298722e8	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x298753e3	dw_pcie_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x29879a19	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2989a464	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x29914a6b	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x29ad8bc0	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c9d85f	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cf2470	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d83ded	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d8ad2f	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a047fc9	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a272a01	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2b4939	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4bf989	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a555d07	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a5b9bd2	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8240fd	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a985389	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa1c7f6	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aa673a5	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aacfe33	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aadad1a	efi_capsule_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ac15a72	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad2b82c	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad77b63	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad844fd	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x2add121c	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2af9e268	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b11ebb8	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2a7f1e	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b2ffe75	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4993bc	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5e25cf	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6128bd	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b6dccc7	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b891689	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b952517	clk_has_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9f533e	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ba4f719	dapm_clock_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb10ec2	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb9e101	clk_mux_determine_rate_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bc4ddd8	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bca8068	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2be61f65	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2beebfc3	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf9edab	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0e8e4c	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c117712	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c1d607d	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3373cc	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3d1687	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c42f5d7	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c48d3c1	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6af85c	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6e40ad	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c728818	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c898921	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9b53f8	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbd66b4	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cceca7f	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce47131	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce810f5	omap_iommu_restore_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cf24242	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cfc8f55	pm_clk_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d160963	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1a8ee7	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d20c905	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d24d523	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2ced62	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d57cd8b	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d681a0f	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d80a542	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d8194ae	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d865b73	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d94352f	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d975048	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9ea0d2	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2da896e4	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db67d4a	owl_sps_set_pg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2db929ad	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dc645e4	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd0f9b1	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd5ec16	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dd6a706	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ddb9fb8	clk_hw_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df9f840	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e08a3fb	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1059b6	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e115359	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e276b45	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e30509c	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e4261f6	snmp_get_cpu_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e55a7e8	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e567399	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e597cfa	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e6e831d	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e75e627	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ea050cb	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb30cdd	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec7e415	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ec837bf	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ecb2b01	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed8c008	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x2edb21d4	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2b0d93	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f354455	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f532a32	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5c1223	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f63e634	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f81e51e	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f895416	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f89f67a	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f8e2c1d	__get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f968e4c	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 vmlinux 0x2faae291	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc7504b	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcd6d0f	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdafcbc	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fdeec8c	irq_domain_pop_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff04a9c	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3009ea20	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3013ef10	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x30229935	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x30239168	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x303dfacc	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3043edbe	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3046b825	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x30475938	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x305ab243	omap_iommu_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x306082aa	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3069809a	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x306eed5e	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x30831767	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x3088dbfa	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x3099a43e	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a2b5f5	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b193e2	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x30b38625	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ba0953	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bb300f	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bef0e8	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c0b4c6	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cdc47b	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dc733a	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x30dea7ef	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x310181c5	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x310226f2	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x311f0abc	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x3125a117	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x312a94c1	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x31361578	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x315e7660	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x31626ca1	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3166a0f0	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x31706aa0	amba_ahb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3177709b	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x31823803	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x3188dac9	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x31909551	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a376a9	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a5e019	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x31adcbef	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b8edd2	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bdf923	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c63063	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31cc8cfa	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d5eeaa	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0x31ee229e	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x3213acc6	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x321a5e48	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x322327ce	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3263c1af	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3269fe99	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x326d26a3	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3271fbb5	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x327763e1	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d2c462	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x32d73818	of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x32db09f4	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x32dc4579	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x32dea2a0	scmi_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32f6326c	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x33104e09	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x33186090	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x331aa2ae	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 vmlinux 0x331bf6f4	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x331d6d90	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x3323242f	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x333b5620	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x333d86dd	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x335010a3	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3371ee7b	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x33791401	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x338235ea	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x33830a38	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x3386ee51	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x339b03c8	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x33bd5634	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d4c140	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e5f2f5	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e9e0a2	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fc4e25	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x340901b3	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0x341f89a2	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x342e450b	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x344b6ec9	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x344d3ade	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3461ba36	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x34800412	pm_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x34908579	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x349b7ae0	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a1466e	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a42a8e	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a45c4b	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a638a0	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a84df3	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ac50a4	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x34d83821	devm_regmap_init_vexpress_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x34dcf6c1	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e43618	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x35007c59	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x356ad629	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x357e3c67	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x357ee410	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x357fc942	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0x35805e81	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a493ab	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b6482a	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b7daee	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x35da2166	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e37c86	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e3c3c2	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e713eb	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x360778e6	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x36096fda	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x360ec97b	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x362274cd	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x362baced	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x362de961	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x36379eaf	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x363db6e7	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3640d477	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x36489703	efivar_entry_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x364bffed	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x36541f84	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3656df7e	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x36658a99	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x3666725f	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x36668989	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x3686799d	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x3686852e	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36951a2d	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a0c793	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a94195	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b3613f	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b5c321	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x36cc41cd	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d9e9c0	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x3717405f	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3728885a	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x37332f9d	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x373fcca9	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x375386ba	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x37572fc4	__efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x375b7ea3	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377e3220	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x378b8fc9	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x37a3bb55	tps65217_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c84922	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x37da9bc0	snd_soc_new_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e2ed6a	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e8fc24	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f0b743	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f0dc63	irq_chip_eoi_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x37fa5585	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x380ce1f3	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3812fce1	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x381f4e75	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x381f8b62	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x38238f4b	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x38251672	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x382c4c73	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x3830efe6	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3839ccc0	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x38420202	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3848b2db	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x384a2bf2	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x3856c494	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a06480	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a2e384	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x38a9c2c7	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x38aa4657	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b02312	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c0c9e4	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c4c5a1	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c4f852	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d64028	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e5bc5a	clk_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e878f8	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x38eff3fc	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x38f06698	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x38fb16b6	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x38ffc0f1	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x39174654	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x393e96e7	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x3956ddab	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3967f2aa	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x396b2a5a	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x396e5489	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3970eade	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x39777aad	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b810fb	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c925ba	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0x39dc23bb	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x39dcfb60	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ebb954	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ed21fb	irq_domain_create_hierarchy
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd9fc5	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0b8651	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a14f79f	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1d199c	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a24fe3f	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a36e596	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a70f652	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a725157	mtd_del_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7eb4cc	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8f6e9d	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aa23952	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x3abca7e2	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acb5969	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ad444fd	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ae1acff	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3aee420f	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b19bacc	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b1d32f6	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4b8dff	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b566cee	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5b331a	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b60e2eb	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b6282ee	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b79c1ef	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b8af7c6	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba26281	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba27c0a	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba3887a	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb93c4d	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdcc6c3	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be54161	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bebae43	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf02f1b	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf4d951	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf9f06e	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c393d5c	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3eb9c4	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4460e7	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c5d5aaf	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c651f33	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c6a5de6	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c72724e	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c87b3e8	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c97902f	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb81e64	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb83c95	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc17173	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc4a853	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cee783a	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf2d34b	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf9bb3a	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0732d8	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0a9f13	clk_regmap_gate_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0aefb9	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d0c7068	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d158226	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d3140df	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d360a0a	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d46a593	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d49fc73	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5eaf6d	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d5f7bfd	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d638eb0	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d659b83	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d6bd751	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d743594	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d7751a4	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d81ebaf	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8ea058	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d92b851	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d9e762f	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dbc4dba	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc57a2b	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc6e534	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dcc009b	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de0efdd	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0ff6af	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e162dc6	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e31d9c3	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5d93c0	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5f5622	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5f7f54	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e634465	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e6efaf2	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8a5203	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e96282d	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9cbe4f	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e9f0fe3	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb43f21	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed38505	clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef28217	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef4672e	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef70ecc	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd7461	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efe6791	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f060887	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f183c30	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f253008	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f27657f	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f444a31	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4b8903	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4e746f	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f51c08f	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f642faa	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f662b91	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f6d7145	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f80b5ce	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa3bbcc	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fabd85d	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fb3935c	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbbc38c	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fbd8e26	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fcc2554	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd1a2f6	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe490d0	clk_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fea029c	hisi_clk_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fed8461	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ff0515b	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffa0dfa	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fff72a8	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x402d6aad	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4035687a	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40411c3c	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x404399a6	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x40473caf	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x405182b2	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x40632037	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406a2382	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4070d2fc	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x40915a09	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x40921908	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40a4fb4b	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b1db82	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b55836	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x40bfe03e	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x40d16d43	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e31870	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e5531e	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e902fd	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4100a662	clk_get_scaled_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x41119556	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x412eb0aa	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4132f8e5	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4133a2c6	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x413d238e	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x4155d326	of_pm_clk_add_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x415c802f	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x41628a87	divider_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x416a9089	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x416ba267	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x416c2f50	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x417729f0	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x419ae8af	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x419daea7	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x41aa390e	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b47d55	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b882e6	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c2437f	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c30f3a	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x41c716a0	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d1f8f3	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x41e89cbf	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4205ad24	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x420a0573	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42151f38	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x421b52ef	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4220056e	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x42205b3b	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4224a877	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4233034d	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x423c011d	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x425a6428	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426476ec	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4269bdd6	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x4273dbd0	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x427704bf	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x427916cb	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x4285a75c	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x428696cf	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42887525	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x42891245	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x429ed399	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a3efbc	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x42aadcce	clk_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ae3d52	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42b8d810	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c0982f	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x42cff05a	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d25156	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d3ef4d	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ece1f4	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x42efb127	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x42faa7a4	ahci_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x43023edb	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x431e8d7e	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x432074f0	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x432fc24f	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x43339d3f	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x433d3efb	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x43400f89	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x43471db5	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x434c4e04	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x434cda98	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x4354d60e	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0x435e7510	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4365d67d	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x436b7fe2	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x436dbdd1	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x438c976c	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a3a00b	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a815f6	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a92e57	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43abadf7	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ad1cb4	clk_hw_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x43bc19d4	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x43d9375f	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x43de3b06	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f81957	clk_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4411aed2	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4412c71c	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x441615d0	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4429ef17	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x44339406	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x44491811	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x444f1735	cpu_pm_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x44531e80	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x445b2970	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4463c5fe	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x44798265	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x447bcbd8	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x448137bb	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4482569b	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44911971	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ac75d3	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b7553a	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ba1042	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44c57d3f	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x44cc892e	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d38b5e	hisi_reset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x45058d20	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x45250b3a	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x452addce	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4534b9bf	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x45429825	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0x45558f56	clk_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x45596a42	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x45613db5	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561f990	qcom_smem_state_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4571913a	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a12b43	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a4948a	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x45b6e9e8	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d07221	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d9b430	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x45dfd2e4	dw_pcie_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f1bc79	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x45f582d3	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fb64bb	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ff8535	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x460261bf	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x460b5e57	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x4619b076	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x463b116e	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x4654b48d	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x465df742	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x46630b42	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x466ab49c	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x466e5342	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x467053bc	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x46742917	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a21eb5	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ad542a	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x46afd5ff	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c06c19	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c07ca9	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x46dfb077	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f14d58	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x471046b0	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x471629d0	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4717ec93	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x471f73aa	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4727a0cc	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0x47317949	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x4742b809	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x474677ab	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x4754fe22	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x475d3c30	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4773c532	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x477c829a	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x477f2ab4	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4782707b	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4782c5fd	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x4785b988	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47925794	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x479ac444	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x479f7d4b	clk_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a281fa	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b3b6b6	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x47bb41fd	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x47c44465	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x47cdd924	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x47de0dc7	clk_unregister_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e47835	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e4962a	mtd_unpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e5bfdf	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e5d7f7	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0x48020c1c	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x48039722	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x48075cb7	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x48094e29	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x480ac574	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x481300a7	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4819d639	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x482781e9	nanddev_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x484548f4	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x484779ef	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x484a46ff	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x484fa2b0	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x4855807b	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x486018a2	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x48620a55	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x48680217	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x48735c33	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x487ff6b3	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x488acc4d	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x48920a4f	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c0e0f0	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c1ff84	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x48cccfd7	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x48cfc8b1	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d0e539	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d740f5	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x4900c5b9	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x49047036	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x49123e33	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4918f9f5	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x491b542c	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x49326ef6	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4933f677	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x493a6f14	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x493acb59	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x494b4612	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x495b2312	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x495d9fab	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x49672317	mtd_writev
+EXPORT_SYMBOL_GPL	 vmlinux 0x497d6b3e	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x498021cd	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x498158b3	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49954832	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x49ad45d9	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x49aff2ee	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b3a31f	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b51260	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bada6a	clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bf72ce	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d1f96c	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0x49d2a809	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e3c0be	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e78964	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e90d0f	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49efa71a	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a043d04	of_clk_src_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a09e004	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0f2063	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2f0727	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a343d4b	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4a0be4	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a684def	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6f6829	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7591d2	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a872d4b	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a913214	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9ff2e6	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa4d452	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadc8e8	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad9406f	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af8bdfc	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x4afe27b2	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0798e1	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b407119	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b45dd32	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b469231	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b6b0936	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b89dc76	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b8e3171	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b942139	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9674f2	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9aeead	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9d4399	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba6a940	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb631c9	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb747ff	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bcf696f	__clk_mux_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd66858	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be73da5	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bf91c9e	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfc2136	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfeadc6	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c009120	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c13eb5a	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4d87fe	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5fc2ae	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6acda6	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca88544	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb1cf44	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc4b884	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce560f2	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf17d9a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf24332	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfbf2c0	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d1c8d6a	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d1e6a1b	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d1f3821	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d25c4c4	sm501_find_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d303744	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d33cc0e	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3687d9	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d38f1e0	bL_switcher_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3cf514	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4972af	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d5078a8	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d523691	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d547ace	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d5a1a5d	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d68d74a	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d77ca37	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d8e5be5	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d9bac00	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4daa871f	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4daaf5c7	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4db506e2	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dccfc58	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dcd6ce2	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd938ed	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9b5e6	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df391d4	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4df3e676	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e05ce0c	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1d2ce0	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e29d02e	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e40aa3f	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5317e4	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e612b31	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e762c10	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e88411a	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e899690	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eab8637	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ebac0d9	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed02e65	irq_chip_unmask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed0d30e	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x4edc35f1	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4edda0ee	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eefa82d	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef85cc9	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x4efc1b23	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0c4135	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f10c00a	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f13d815	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f19a16e	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4d6be5	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f543ff9	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f557c3a	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f67aeee	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f69cc4d	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f81b817	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8aa442	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f8cac9d	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f907a17	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f98d766	cpu_pm_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fa3ce4d	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbaec08	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fbe1596	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fed64f5	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ff3f4b5	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x500df8b3	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x50128222	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5018e8d1	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x501f9bec	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5038cd2d	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x506bd546	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x50879e60	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x508afef4	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b66c61	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x50d73187	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e18f2f	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e446cc	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fbb75a	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x51021247	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x51092fb0	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x512476b6	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x512cc645	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 vmlinux 0x51501fef	pm_clk_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x516affe0	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x51732ff1	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x51753e9b	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x51754009	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x517deeb8	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x51935a62	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x5199f29c	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x51a80be2	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ab29b6	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x51adf561	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x51af0f26	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ce1208	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d4e752	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e64938	sdhci_set_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x51ec1ed9	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fa9035	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5201b353	cpts_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x521fa9f8	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5220aa2e	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x52252316	clk_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5230199c	sm501_misc_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52374037	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5238f848	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x523a681e	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x524b3fab	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5254a03b	of_clk_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x525babe6	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x526aa92d	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x5276c10d	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x5277e250	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x5282bef0	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5299ed53	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x529b5b60	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x52aee8f9	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b3e8a1	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x52cbe342	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x52ce78b5	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d4a568	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x530194ef	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5316868c	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x531d2810	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x53206b4d	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5324756d	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x53251b16	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x532cafe5	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0x532e6853	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x5350ac60	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x535a45ce	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x535ec419	irq_domain_push_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5369812e	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x537622c2	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x537830e0	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x53847a5b	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b9fc3f	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cf12f4	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x53edf9e4	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f8f1b9	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x540a2205	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x540d01d0	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x54172702	cci_disable_port_by_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x54182ba7	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5418a285	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x5422c52c	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5424c391	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0x543022df	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x543afa4a	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x544757d7	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x545a8ceb	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x545d5afa	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x547353d2	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5478fc9a	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x5481314d	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x548f81d9	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a22961	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0x54a25da2	qcom_smem_state_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b9b306	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x54bc1afe	of_clk_get_from_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c2a2ec	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c6b82d	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d6e162	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x54d8656d	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e3ae05	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e761ce	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x54e9052c	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fc509a	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fdd218	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5521e466	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553429a8	scmi_protocol_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x554bb61f	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x554fd8ca	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x556b0d75	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x556e4390	clk_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5588f5ed	platform_msi_domain_free_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x55945a32	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a73155	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x55b7f2dc	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c43cbc	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55d4a153	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eaf1d1	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ed61a4	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f0ce5d	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f73a6a	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x560dc5f0	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x561d972e	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x562be32e	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x5640408c	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5653892e	free_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x56868f65	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a61122	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a6a76c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a7f988	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b0d109	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x56bb40da	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cafba0	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cbbc00	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x56cc02fa	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d85da1	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d9a07c	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e25200	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e59b0a	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e6e5f7	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e9103b	cpu_pm_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5707e1ef	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x570a2966	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x5741a77c	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x5747a63c	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x574edc6d	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x575f398c	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x57627a68	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x57637760	clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x577526c1	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5779962b	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x57801fca	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x578a888b	ahci_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x578b60b5	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5796f1e3	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a0db15	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a231cc	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a4a9c5	xas_split_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a9ac76	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d59d5e	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x57e3ffa5	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x57eb2a58	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x57faa1de	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x580b5a8e	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x580f8931	irq_chip_mask_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x5823aafa	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5834c00c	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5845a6f6	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5855371d	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5863b0b7	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x58649673	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x587ac04d	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5899af12	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b63333	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 vmlinux 0x58bb0034	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58cd92d6	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e1f92b	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e68b8b	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ec3705	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x58fce543	mtd_add_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x5906cbe0	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x590b600a	devm_clk_get_optional_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x59190954	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x59254274	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5939f8a4	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x593ad8e7	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5951139d	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5956cfc5	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x595862e3	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5983b168	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x598ac7f6	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x598aff07	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5990496c	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5993f4aa	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x59958c3d	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x59a1fab8	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x59af15d0	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b75ce9	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x59baed4d	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c53974	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c8a81d	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x59df6273	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ff6925	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a14fdd2	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a19c688	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1c31be	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1eaafb	hisi_clk_register_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a21f71b	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a233668	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a280ed6	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a32a2bb	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a358105	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3c372a	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a44104e	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a5c6ac9	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6ded97	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a76e56b	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a792eef	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7ba04d	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7e0e54	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa60ea1	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac24451	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac4def0	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac729bb	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ac7e015	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5acbc128	clk_hw_set_rate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5adbf82b	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae10043	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae57a08	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae7db12	clk_hw_get_parent_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aeafb62	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af7bf75	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b16707c	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b288d17	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2ec861	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b2f0901	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b3acd63	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b40f930	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b48c727	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4abd37	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4d5841	hisi_clk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b5de810	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b69880e	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6e2d89	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b77f68b	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7dc13d	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7e7cd3	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x5babb707	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb25d5c	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbd084d	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc16ae5	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc35032	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc50bab	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc642a4	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bfc0378	dw_pcie_host_deinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c08ab2a	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0bee12	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0c3e73	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c0dc6de	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c116a53	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c11d37d	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c1bed21	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c360f67	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3cd3a2	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a0208	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66e90c	efivar_run_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c66f12b	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6cd8d8	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c724709	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c84d1f6	mvebu_mbus_get_io_win_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c916138	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca2460a	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca98ec6	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb71a1d	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cba8316	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd04609	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd2588d	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cdb1c60	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d235723	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3b9109	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d3d58a0	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d47725b	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d490ed8	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d4d358d	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d54ab92	clk_hw_rate_is_protected
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d66a871	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6cac14	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d708f99	clk_register_mux_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d7745c2	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d89c684	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8a6055	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8acf75	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da0c9e5	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dd5a407	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ded5a69	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df11472	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5df778c5	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dff6fda	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e064fa6	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e12ecc1	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e139a0d	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e439afb	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e64e3bc	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e66d326	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e67b71d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6897db	kvm_clear_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e798ffb	divider_get_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e85b0b4	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e861a59	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e8ac88f	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e91ff3a	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e93c3d5	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e99ed17	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ebe27c1	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ecaf58e	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ee2922c	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0763f0	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f167418	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f24a849	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f50c9df	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f8449e2	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f96a7bb	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9c1c57	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f9e1a1a	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fbb141d	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc035bc	qcom_smem_state_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fc2c660	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd7dd62	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe2817b	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe6736c	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fe8486a	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6006e678	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x60091316	clk_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x60409114	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60607c2c	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x606d10c8	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x606d2ab4	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x6075d0c7	omap_tll_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a1b7d1	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60b256b1	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ba2b40	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x60f37a75	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x611e99e9	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x61252033	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612b584f	nanddev_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x612c7370	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x612f4604	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x613f2e18	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x614150ff	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6143a1b8	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x614782f1	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x614c3db7	arm_iommu_release_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x6161b659	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x616df0e2	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x61733229	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x617a48a4	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x61828677	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6184884a	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x61923ba1	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a7fb0e	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x61df34c8	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ef4122	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fb952d	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6220e8aa	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x622ebfbf	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6231e043	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x62355450	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x6240f047	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6257dda7	clk_rate_exclusive_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6259d291	clk_restore_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x6260a3f5	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x626f02c3	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x62897666	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x629a4ee9	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b192a1	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62d0e2a6	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x62e7b4db	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x62f06c55	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x63150e06	clk_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x631b6feb	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6328e185	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x63388123	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x634b1f89	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x63728179	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x638a85b3	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x63900e28	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 vmlinux 0x639acf3b	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b61fb1	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c08029	clk_bulk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x63d09016	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x63e1bc47	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fcfd43	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x63fe3cb7	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x640becc7	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ccd00	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x64159920	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x641d4f2c	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x64256424	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0x644bfdcf	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x645a9d02	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x647537f3	pl320_ipc_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x648a4dcb	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x648ec387	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x6493a2df	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x649e6586	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x64aeb32a	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c07d32	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c841f4	__mtd_next_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x64cdf082	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ea705f	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x651d1312	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x654d05f5	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x65537437	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6555c358	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x65808cbd	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x6585b8df	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a0f8d0	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a19768	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a3c55f	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x65bb79d5	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x65bcdb63	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x65be08c1	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c14adf	dw_pcie_read_dbi
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f4307f	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x65fcd527	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x65fdf82b	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x66090d2d	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6611813c	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x662f04d9	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x6632f2bb	clk_mux_val_to_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x66337790	clk_hw_get_num_parents
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x665d7f48	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x665e92a0	clk_set_duty_cycle
+EXPORT_SYMBOL_GPL	 vmlinux 0x666fb762	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x66772039	clk_hw_unregister_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x66774a1c	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6597b	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x66abf09a	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66c9d0a6	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66eb7ca9	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f5fe89	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fc2bc0	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x66ffdfc9	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x67053f34	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x670c56be	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x670ed74f	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x67115b1a	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x6733013c	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6743470c	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x674cdf0f	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x67613414	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6768fb1c	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x676b9193	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6774eb36	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6777fa01	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x677df085	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6781513c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67966a69	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a172ae	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x67a9f1e0	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x67c4c6f9	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67e08d16	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f7567a	clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6801a7fa	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x68352b3b	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x68423ccd	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x68478f51	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x684fb3f1	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x685607d8	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x685d7024	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x685db9cb	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x6862d1b9	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x68758fda	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x687a199e	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x687fafa9	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x688dfa8d	kvm_get_dirty_log_protect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6890072d	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68940f21	irq_domain_set_hwirq_and_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6894835c	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x68a01603	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b4b214	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b8cc93	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x68dcc179	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0x68de7c5e	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f37e9f	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x68f38941	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6904c9fd	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x6916f6c4	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x691c85b6	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x692a4f08	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x693629f2	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6945725e	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x69489ae8	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695fb974	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x69632a68	clk_hw_register_fixed_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x696be50f	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x69889b66	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x698d5e36	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x69a49b80	clk_hw_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ad3bb0	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b405e4	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x69be023f	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x69c9eb3d	irq_chip_enable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d6841b	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ddc78f	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a12c1ef	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a182751	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a27ae75	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5d65e2	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6bca64	sdhci_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6c394d	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a717a2d	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a720ea0	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a771b64	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7c0cae	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a81e367	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8b6bec	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a90027e	mtd_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a967525	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a9db1d6	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa5e412	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab001a5	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab099b4	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ab1c8bb	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x6acbc901	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad02eeb	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae1947d	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae641b6	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b0451d2	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b089a82	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b27d895	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b334acc	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3befb1	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b3e7ee3	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b42e52c	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b4f58f3	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b727a51	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b72e663	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b7fbce2	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b9ef0f5	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb2dca0	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb431d8	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb70a4b	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bc85a51	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd80451	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bed998b	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bf75522	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c01f7f5	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c030281	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2c00b6	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3b884a	clk_multiplier_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c43b737	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c467ff7	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c7b2bb8	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c831342	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c843c9a	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c996283	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ccaf282	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd17e49	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd31a36	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ce393fe	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d043b22	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ac341	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0b8c5e	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0f2f1b	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1566da	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d253dca	dmi_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2cde03	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3c6ff5	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d45bbae	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d4a7b23	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d521dff	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d61343d	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d92a203	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d99858f	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9c7509	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dae576e	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0x6daecf2a	clk_regmap_mux_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db0d8c0	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc390c5	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc8d835	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ddc5519	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ded29e8	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df5547e	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6df8636d	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dfabed1	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0fa8fd	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e10c7ec	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1bf77e	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e23fda0	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2d4556	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e2eeae1	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e5a7967	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e694010	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6d5b70	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e6dabe1	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e868b1b	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8a505e	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e8b9d06	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ea6693a	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb5b73b	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebbc090	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec2bb34	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec8073e	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec86cfb	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed067ae	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed4e192	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x6edf7058	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee65fce	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8509f	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0e2c66	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f14a253	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f4bd770	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f59ae9a	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f60e844	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7d0657	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7d8b01	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f858c35	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb79193	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fb7e313	asic3_write_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fbb2424	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc663f2	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fcb1839	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fd6678c	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fdab9cb	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fdce9f6	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe23b78	mtd_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7011bf1d	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x701e4d17	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x7025d978	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x703f0a56	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x70464d9f	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x70517a3c	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x705b9678	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x706cfbae	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7076bbbc	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x70893700	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x70a18028	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b575e6	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b7b0f8	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf6686	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70faab42	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71124c2e	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x7133e945	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x714991cc	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x715a4f37	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x716542d5	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x717218c7	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7177e059	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x71826d0f	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x719006a6	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e17ff	clk_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b29887	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b6f09f	of_clk_get_parent_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x71be05cb	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d41d11	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d994c6	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d99d5c	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x71dca659	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e125db	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e64e28	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ed5037	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f5d84f	efivars_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x7205997f	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7205f1fe	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x72093857	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x72173c60	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x722f74c8	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x7230c0ea	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x72346115	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x72482b68	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x725662fc	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x72654502	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x727cd41e	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x72aab7f6	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x72aee1ad	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b299e1	efi_capsule_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b67e95	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x72bd0f32	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x72da70f4	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e2be7c	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x72e68a4a	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x73023713	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x73069a47	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x73078cbe	ahci_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x731da6d4	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x733f5003	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x733f59ea	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7346309f	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x734bd1e3	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x734f2aa2	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x735d47ec	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x73672167	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x736cf1f7	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x736fa50b	irq_chip_disable_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x737acea2	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x738df99f	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x73989fcb	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x739b0664	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73acadf6	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b3bc55	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b504e3	of_clk_get_parent_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b98231	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x73be8fe4	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bf505e	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c27445	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e11d09	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e67109	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x73f5c0c8	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x7403e961	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x74042228	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x74066221	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x740766c8	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x740f9488	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7414dd77	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x74222d97	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x742df9ec	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x744b57b2	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7461eefc	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x746bd1e6	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x749cd72d	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74d752dc	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e697e4	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fab494	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7504839f	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x750bf958	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7513b5ec	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x751f81e9	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x75246df4	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x753c11a9	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x755ae3c8	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x755ffe89	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x7560b69e	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x75637714	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x756c1b43	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x758333f3	sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x758c553c	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a4edac	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x75bf6cc0	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cc8a91	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75e68d4c	snd_compress_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x75eba219	otg_ulpi_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ec370c	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ed125f	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x75fb9062	arch_timer_read_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x760379be	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7618988f	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 vmlinux 0x7628652d	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x762eee33	__efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x764f742d	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x76599695	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x766b7e4e	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x76774e1a	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x769d4fcf	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a0c82e	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x76a369ab	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x76abd3e5	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bc339e	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d9b876	clk_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x76db91f8	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e9a092	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f22546	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f67014	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x76fdfa8d	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x771838b8	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x771accf6	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x77275c1e	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x772e2c26	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x77446fe1	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x77469fe0	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x775078f3	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7752780c	nand_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7757b51a	clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x775eeb1c	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7791e066	dw_pcie_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77af162a	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x77b3c923	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x77c58ad3	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ce6248	mtd_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d523b5	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x77db5d4d	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x77f31fd0	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7807997b	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x781012e9	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x78163a2e	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x781b05bb	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x78207f50	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x78220f68	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7823f5dc	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x782437f0	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x78355a95	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7847f57a	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x784d57ab	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x786d1c2c	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x786f8868	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7881d0e0	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x788aa3e0	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x789ef0b3	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x78aa5b8e	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x78b288f6	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c05d24	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cab8a8	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x78cdeef3	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d96614	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e6cee2	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x78eafd28	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ecaa5d	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x79031a8f	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x790c5e14	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x79163448	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x79204c47	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x79290fa3	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x79340b1d	meson_clk_pll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x793a93dc	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x7940e543	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794a0461	rockchip_pcie_disable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7979846c	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x797b4007	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b08b3	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x79939cc2	get_tree_mtd
+EXPORT_SYMBOL_GPL	 vmlinux 0x799652a7	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a91d86	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0x79c19aa0	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x79cf7faf	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79e81ae4	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f4b259	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f84253	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f89745	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0eeb49	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a16ea0a	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a19f253	of_clk_hw_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2f1642	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3163a7	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3f84c2	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a58d895	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63693d	clk_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a63df7c	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7f1396	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a88c3b1	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a93026f	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a96afff	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abb0350	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac10ad8	icst_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ace444d	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad529e0	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0x7adb2081	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x7add58f1	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae3eb3f	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ae73bf2	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x7af0b87d	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afebab2	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0b0179	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b2686be	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b48b72b	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4f2f2e	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6e3493	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b6efd0a	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b7edb97	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8b698d	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b8e76ae	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b944c5f	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bab6124	clk_regmap_divider_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bbad364	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc701bd	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc9c348	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bcdf9bf	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be04c54	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bef7428	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf351d9	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c077eb6	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2a65c0	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2a8bad	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2d241e	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3bf223	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c403969	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c4c743a	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c607966	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6b97c3	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c6f04a7	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c983a5d	dmi_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9a7371	clk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c9dc545	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca0263d	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cc4b07f	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd5aabb	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd5c8e1	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cfd5ff4	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d049018	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d14ec63	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d178e17	nand_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d17ab3b	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2b2d48	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3001c5	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3ed810	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d62a865	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d63e8c5	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d64c9ac	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6bda93	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7f21a7	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d9e917f	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da595a0	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7da7ccd4	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc55b75	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dfed771	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e08d3c8	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e114b5b	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e260dc5	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e43aed2	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e590798	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e687330	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e697f6e	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6a8718	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e79b13a	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e8ad17e	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e9f4688	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea48b50	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eac995c	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb509fb	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb80fd9	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec7ca01	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed6476a	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ee1f3e2	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef029cd	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef2cac3	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef34f49	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f21127f	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f2f21b7	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f38d6d7	mtd_is_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f43450c	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4ae1a7	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f4b6018	cpts_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f664d61	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f69537e	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f752d00	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7a1a61	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8dd2bb	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f96dafd	musb_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f97be5d	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa2ec04	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa720a6	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb2a317	devm_clk_hw_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fee9dab	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x7feee61b	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff22510	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x800b3a12	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x80114660	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x80187a52	clk_hw_register_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x801eb65d	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8039667c	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x80477e8c	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x804dc3d2	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x804f9061	meson_clk_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x805cf1ec	pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8063d67a	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x8066f235	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x80678512	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x80746ec6	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x8076a0d6	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x807b74f6	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x80819a7b	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x80873e3a	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x808c59e6	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x808e5382	gpiochip_populate_parent_fwspec_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x809be37c	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b17b75	omap_get_plat_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c92c36	clk_hw_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80f7d128	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x80fb53cc	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x8108a457	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8134c9f7	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0x81547187	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x815588a6	clk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x815b0feb	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x815b3e42	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x817ebcf7	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x817ef843	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x818251b2	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x81842582	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x818a8a8c	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x81ad0c00	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0x81ae7466	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b03377	efivar_entry_set_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x81b440b3	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c4090d	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f2b867	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f64375	clk_hw_is_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0x8205bba4	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x82173ac1	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x8244a52a	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82452777	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x824f216d	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x8264cbda	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x8271c7ac	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x828547f6	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x82978a91	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x829a39f2	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b957bd	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x82bf853c	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c8f7f6	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c94ab8	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x82cd96c3	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x82cf574c	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82fc917a	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x83058640	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x83245774	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x8325b003	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x832a9ff4	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833a7c41	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x83541eca	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x835a6169	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x835ebc6a	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x836b2c3a	clk_regmap_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x836f2a51	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x839233b1	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x839a4014	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x839d398a	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a2ee4b	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a5b78b	irq_domain_reset_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x83aa9569	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b1887b	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0x83beb20b	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ec8c5b	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f723e4	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f8ba34	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x8401a253	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x840e6fc4	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8413f850	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x841e384f	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x842f3a05	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8431139b	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x84344b70	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x84357a4a	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x844712df	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x844f34fb	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845aa3dc	lpddr2_jedec_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b2069	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0x845b6301	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x846ba9b4	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x848098fd	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0x849a8a16	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x849ace0d	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a87cdd	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ad8968	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x84afa5fd	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b9b9f2	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x84cdd57f	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x84cffb3a	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d5d790	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x84eac56e	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f00300	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f3b95d	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ff5af2	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8502c4e2	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8506baa8	clk_unregister_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8513a724	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85206822	clk_hw_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0x852827c2	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8546a6b5	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8547dc5a	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x854f5e2d	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x855bb5a3	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x855f5c72	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x85638994	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8570f468	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8574ca6c	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x857aa3a3	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x857fe4c2	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8591e9dd	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x8593aa43	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8594d7fa	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x859a1530	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x859da982	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a5af1b	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a9b750	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x85aca8ec	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x85acb812	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b0aa1e	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b27863	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b3f3cf	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x85be8e36	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c365bf	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c4e792	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c54b61	efivar_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85c6faf5	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d963cd	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x85eb3415	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x861f68b7	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86260aba	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8655e16a	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x865fecb9	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x86626129	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8665230b	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8665ee66	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x86745a8a	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86806218	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x868fc9a6	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x8691d9af	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86945580	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x86999682	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b01ed3	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b3d4e5	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b5cf9e	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c82bf1	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cbc36c	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f7ce51	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f96bf9	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f9f015	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x87151cb1	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x87193fe6	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x87222fde	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8724022e	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x873b60dd	clk_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0x87551e70	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x87685207	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x877b3771	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x877d3ac3	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8781a4b9	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x878b16b3	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x878b9ce4	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x8792f21a	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a09d57	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a7247b	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b2b34e	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c12b1d	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x87c67d7b	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ce1b37	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x87d614f8	rockchip_pcie_enable_clocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f76662	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ff3038	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x8805a073	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8808df8a	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x880cd71b	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x8810055e	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x88367b53	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x883ca9d7	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x88549369	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x885499c6	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x88742baa	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x887981f6	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x88806ccc	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x8880f3d4	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88afa3a6	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x88bab34a	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x88d41573	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ea4017	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x88fdd4ea	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x89008c09	clk_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x89173b90	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89188862	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8939ab71	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89493930	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x89691252	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x896ddc25	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x89736b24	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x8974033b	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x897c2885	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x898697ac	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x898fbce1	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x899a24ea	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b405ad	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x89b7c165	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbc965	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bfe270	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89cec703	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x89e448d7	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x89eb971b	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f0997e	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x89f68c9b	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x89faeb07	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a098d2f	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a14d0d7	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a1c176a	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a381216	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3a22fc	clk_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a3c8c8d	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4ffc27	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a51dd4c	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a57b15f	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a6e97ce	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7704eb	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a7b4d87	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8c1dbd	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8df829	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a8eca32	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa02161	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aad89f7	exynos_get_pmu_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aadb3a6	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab22e6f	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ac1fad7	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8adf22bd	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae078f8	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b04a28f	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b149c36	clk_is_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b36a5d0	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b397617	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b3dfd2a	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b529ce4	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b58971f	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b613a5b	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b67f8ca	clk_gate_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7a5b2d	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b83231a	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8aa860	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b91f7a7	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc194c8	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc26f08	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd1af61	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bddc686	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be1ea8e	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bed2262	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf24325	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf8e8a4	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bfd1d2f	xhci_mtk_sch_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c06b551	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0716b2	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c19f545	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c1b2cf9	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2921e2	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c434c0d	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c4a598b	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5466e1	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c682d89	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6fe4f3	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c709ba5	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7bd877	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c7f957f	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c884790	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8caeeeaa	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cc61d9b	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd2d085	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd3c50c	dw_pcie_wait_for_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ce19808	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d139cbb	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d1dcfef	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d2ed158	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d420df1	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4c7b4a	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4d45ba	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d5deaea	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7170be	i2c_slave_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d74fe2e	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7d4b68	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e80cb	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9fa4c8	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da9d579	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db950df	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc11669	lpddr2_jedec_addressing_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd1f1ff	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd795ec	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dfffc37	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e2f63c6	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e30a559	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e370d70	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3811d4	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e4b63a6	hisi_clk_register_gate_sep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e51a3c7	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e594252	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e5d34fe	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e60c5ea	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e626e48	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e815f68	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e89a946	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e9cac10	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea2cc66	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea892a8	arm_iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ea8a821	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eabac6c	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb7ef19	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebe2de8	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ecc7576	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edbdcb0	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eeb725d	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef2298e	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x8efd85eb	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x8effbca8	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f06dd22	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1a8cf9	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f3434d5	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f352b37	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f4a56da	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f610777	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f66aacd	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f689a50	alloc_io_pgtable_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f725e67	probes_decode_arm_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f7685cc	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f77152a	clk_hw_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f8a7b89	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f9333b5	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa61293	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb6da05	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fba35e6	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fba4064	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fbc8087	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc3e465	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc432a1	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc98e4f	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd893ed	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fe9b310	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ff17f06	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x900bd122	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9010d7fd	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x90111829	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9011b4ad	snd_compress_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x901c6c99	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x902dc166	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x90310e25	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x9036f49b	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x903d7e9d	devm_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x904a2764	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x905d0cce	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x90637ca9	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906bd088	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x906bd319	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x906ccf4b	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x906dd327	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9075ab44	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x9083132e	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x90860805	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x90894808	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 vmlinux 0x908dd721	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x908f4641	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9098de19	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0x9098e8ae	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x90994722	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x909e7350	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ab371d	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b4ac40	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0x90b51b47	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c15958	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8068b	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c83002	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ce0831	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d31f4a	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d7727b	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e1bc2d	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x90e2fdc9	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x90eafe7e	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec0b50	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x910ee8cc	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x91144cd0	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x912c4ed0	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x914b20ed	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x91519a16	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x91568fa4	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x91569778	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x915b8703	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x917b659d	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0x917ca7d9	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9195ccbf	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x919a865f	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x919eb226	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c77201	irq_chip_set_wake_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d7ac95	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e46399	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x92001790	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 vmlinux 0x920325d6	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x920448c7	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x9205b911	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x920ed540	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x923f7ea4	snd_soc_set_dmi_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x92413685	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x924e1728	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x9254a9b5	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x92669ebb	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x926e6b41	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x927a5f2c	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x927adaff	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x927bdf34	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x927cdd4c	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x92818cd5	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9282f433	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9285ceb2	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x928a5b5c	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x928e77c2	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b57248	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d519fd	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d72357	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x92da0c91	dt_init_idle_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e2301c	pm_clk_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x92fa251d	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x92fe489c	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x930992ed	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9323edb8	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x93251090	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x93364d12	efivar_entry_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9337abbd	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9358222e	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x937130f9	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x937ad543	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x937b1fe7	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x937eb946	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x9395ab64	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x939ae623	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bcccab	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x93c62d7f	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x93cdf914	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e81214	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f9b521	efivar_entry_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x93fb510b	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x94220458	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x94235107	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x9423d86a	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x944b940b	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 vmlinux 0x9451f824	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x94586e0f	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x945d8656	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x945f5cc9	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9460733c	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9462b7ac	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9463a19a	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x946423a5	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x9465b67b	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x94798c65	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 vmlinux 0x9486eb54	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94872259	clk_register_gpio_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0x949d7651	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x94abb745	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b1629d	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b28d73	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cb57b3	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x94cc3440	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d5bcc5	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d756a7	xhci_mtk_sch_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f5e09e	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x951b9f12	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x9520cc31	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x95256210	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x95299a11	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x95683d15	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x957931bd	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9583ed37	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x958c5a44	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95900d23	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9598539e	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x959f79ab	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bef2ac	amba_apb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c1d432	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d1b0fa	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d70ce9	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d9c680	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ef1ccc	dmi_memdev_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f19012	devm_clk_bulk_get_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x9605c22d	efivars_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x963de67d	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x96609dda	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9662585a	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x96876dce	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x968eeac9	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x968f9a23	efivar_entry_iter_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x96949a00	nand_read_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x96c46604	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ca63f5	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d10030	meson_clk_pcie_pll_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x96dbe753	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e9d45f	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x96f5e7c9	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x97176634	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d61f0	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x97213bfa	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x973656ff	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x973ce132	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x976aee10	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x9770f3bc	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x97770670	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x977eabb6	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x97907f1f	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a5670e	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b71dc9	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d5121c	efivars_kobject
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e1380f	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97ed3758	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f07e31	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x982a13f4	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983740fc	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9858e144	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x985ebee7	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x98673df9	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9867a120	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x986e04e8	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a043e1	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a21a65	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x98b1fb34	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f0b397	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9930b682	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x994cacbc	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0x996affa5	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x99811814	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ae1d11	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x99af3aa7	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b26620	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b5f9c2	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b670d9	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x99bfd75a	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d02091	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x99d2e57a	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x99ea9cab	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a048866	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a211ec2	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a22cdc7	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a26cb05	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a3303bc	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a337b29	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a33d86d	register_mtd_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a354fa3	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a39b368	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4ab8a3	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4fe5e1	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a585e61	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5f88f2	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a674727	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6921e8	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aa9ce29	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aba6275	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad56d2d	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ade5ea9	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b3a4736	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b499d92	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b677db8	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b67e586	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6842ff	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b6ece4d	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7134ec	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7dd552	devm_clk_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b847e86	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc30a65	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc6e260	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcaf882	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1032da	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c10dc5a	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c3607a3	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c4fc445	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c67dccd	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c713d68	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca3ea3d	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cd4758a	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf46dc3	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d0465ac	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d180ba8	gpmc_omap_onenand_set_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d28b220	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d2d7057	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d324a16	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d40d62d	clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d456afd	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d56f4c7	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d583029	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d5c9eff	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6d8b5d	devm_clk_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6d9bc7	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d728c0b	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d81cc50	tps65217_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8e838a	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d949aee	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dba64d7	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dbeb041	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc27112	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcb7b4f	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dcc736e	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd44a6a	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df78c26	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x9df9fe4c	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfdf722	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dffc866	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e0f7b3f	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2aa82a	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e31f878	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e35df19	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e3dfd32	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4a24f7	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4b46ef	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e4ecc31	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5d10b1	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e62fc13	sdhci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e683be2	cpts_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e6e5b4d	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7142a3	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7307bf	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e78ae69	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e794dd3	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7d0640	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e9eda86	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea9302a	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ea9ae3b	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb6f890	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec45e97	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec950eb	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec9d466	devm_clk_bulk_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed704f5	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9edda58a	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee17f1f	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee558dc	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee5e40a	__ktime_divns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee98a0c	dmi_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef22a3a	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9efba357	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9efe3c04	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f03c083	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f140889	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f2310fa	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f37ec96	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3c9e98	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f5d49fe	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6697d4	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f66e3de	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f716b60	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f801803	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f8b9dd4	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f925f63	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f967565	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f96bb17	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa391b1	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fb1cb2d	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fd3668c	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa006592f	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa015315f	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01ee87b	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02ac49f	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xa031d49a	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04861f1	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04a5394	pm_clk_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0576858	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08e7835	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa090f86f	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09b87d0	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0b686cf	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c2845c	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c38bd2	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c5d0dc	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d409c8	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ea314c	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa10580bb	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1087f84	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1088815	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16f2c79	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17a3e49	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xa19a43b1	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c52cf0	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e9f29c	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1f1bd3a	arm_check_condition
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2037b8e	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa220e79f	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xa231c821	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23a794e	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23f684b	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2513dec	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa271a700	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27a6453	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa286471e	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2941199	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2985611	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a2c93d	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a46855	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bd25da	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c227f6	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c31b2a	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2ce4d88	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2cfae88	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d096c4	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d24846	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2dfc6ce	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f5ee1e	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3013a3c	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xa326c518	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33744aa	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33effbe	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa346975c	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3474c03	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa363c169	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa370ff4c	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3718f65	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3770222	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa37f0682	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3800c94	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38ce2f6	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3929624	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a3fcb7	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a7f566	clkdev_hw_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ab606b	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b79b06	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3bbe2a2	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c373b9	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d7f314	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3d91b1a	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e022ce	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3e3c6fa	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa404bb3c	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa429f24e	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42acfb5	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4449254	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa444a40e	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44fbefa	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45dc275	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48a5ea8	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4baddac	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4bb107a	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4cc19b3	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4efbe0c	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f97036	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4fab2ca	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa504c641	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa504e0c0	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5078c2e	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52cc31c	clk_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa531471e	clk_save_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xa53f0dd7	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5514568	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xa55cbee0	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58264a7	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa59047a5	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b4b48a	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5bf9df8	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5f269c3	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa604fcdb	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6081179	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60d1aa4	vchan_find_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60d2ea7	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62892c6	efivar_sysfs_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62f2b64	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xa62fd103	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6380e8a	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64f9adf	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65a82a8	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6629742	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6719932	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0xa67dc8bf	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xa67e7ffd	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa680b627	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68c0236	rockchip_pcie_cfg_configuration_accesses
+EXPORT_SYMBOL_GPL	 vmlinux 0xa697fe58	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa69a0d75	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a109b8	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b6fa7d	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6be2709	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e121ac	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7256d06	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa72d32e7	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7435dee	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7802e2e	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79e0ad9	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7aaafde	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b9dbb1	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c00241	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7c8984d	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7cd91f7	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7d1cbd7	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fc05c0	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7fd623f	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83ee1f5	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa843d47e	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa847b9f6	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa84ed7c8	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851b18e	ahci_start_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8573628	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85f3f8b	scmi_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86c396d	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa88386c1	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xa885fa57	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xa887af35	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8953448	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8acfe87	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ae933f	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8c3b2e7	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8e7188c	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fa05f6	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9031158	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa909811a	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0xa913353f	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa91ba400	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92128c5	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92b7803	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa94ccbd3	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95032de	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96ff056	pm_clk_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9725410	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xa991e47f	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9981f1e	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9baad60	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c7db6b	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9da55af	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e05660	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e9dfc9	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9f0ebe9	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9f15b7a	__clk_get_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa275e7e	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2a72bf	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2db613	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa40a14d	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa42d32b	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa44acff	omap_tll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa5d76fb	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6134be	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa708d2c	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa8f5733	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa9066f0	nand_status_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa908fc4	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaabe6c3f	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac61719	mtd_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac67035	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac8a79c	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac9d60c	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaec9624	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaecf75d	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab23dba5	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2c0604	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3c7529	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4c9dac	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4f4b32	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xab690400	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6a538f	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6d87ab	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8138b6	of_clk_parent_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0xab821205	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xab871961	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 vmlinux 0xab8ff36a	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0xab930651	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba46357	nand_readid_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xabad53bb	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 vmlinux 0xabb0dd6d	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcd2433	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcda29e	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabcfa03b	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe36b8f	cpts_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xabeb41de	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xac01049f	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xac08bb40	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xac12c832	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xac368280	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xac48f8d2	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xac504c97	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xac601cce	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xac648fdf	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xac690751	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6d9b2b	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca584a8	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xaca6edc1	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb4d88c	clk_rate_exclusive_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc1bd89	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xacdca6de	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xace9bc42	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xacf90577	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xad0a5c59	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1186aa	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1585bb	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3187fd	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5737fc	efivar_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5e18f2	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xad6278b6	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad6a7000	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xad93b436	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xad98485b	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadbc1751	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xadbdf827	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc284b4	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0xadce9432	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xade741ed	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xadfc01f3	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0f51bf	clk_hw_unregister_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xae105cd7	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xae16b427	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae476207	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xae570f38	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xae66d70f	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae71970c	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae890c00	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea32e6e	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb882b8	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec84d1b	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee08ab6	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf0c11f1	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf13d2d0	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf157034	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf348da7	cpu_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf54d774	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5677fe	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5e81d6	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf63a362	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf768bba	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf87a5cb	pm_clk_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf90980d	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf949553	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf9d253c	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa180c1	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0xafa87b05	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb0f224	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xafb84d21	nand_reset_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc8bae8	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xafcc36a8	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xafcfeaf9	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xafcffcd6	hisi_clk_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xafd930c5	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xafdc8196	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe12e1e	irq_domain_alloc_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xafe16af8	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0xafea5236	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff5dae7	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xb001ae22	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01dc5dd	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb01f6bdb	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0232477	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0292a21	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0351f00	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03ef9f0	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0425fa1	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0486fcb	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04a72db	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04d1f7b	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb050d2bd	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0613f4a	of_clk_hw_simple_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0647439	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb077e70a	clk_unprepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b35d5b	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b44b14	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b88162	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bbed78	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0db5896	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e3daa0	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ef1837	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f12349	devm_of_clk_add_hw_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f49f28	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0feaca9	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10c3072	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10ec075	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11625b9	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1162e7b	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xb118712b	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12e1086	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1519f4b	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb154b298	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xb156e769	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1655346	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb170d22c	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb172ffac	efivars_sysfs_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb17c0f32	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb17cc8f3	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18110e0	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19fd2a3	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1aace2f	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1caab25	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f1e7ca	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1f80926	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ff9c81	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20e77dc	xhci_mtk_reset_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20ef6dc	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2127a7d	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2150787	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2318064	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb256d8a2	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2714941	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xb278e9a0	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28014db	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb28754df	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xb287e5ad	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb299d8e7	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a40c00	platform_msi_domain_alloc_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a83287	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b44acd	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bcecdd	ahci_print_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e618e3	divider_recalc_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e6d0c2	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2f01d6d	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb320d511	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32e308a	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb32e8663	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36263f9	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36959e4	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb376cbdd	dw_pcie_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3938695	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3961b76	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39a1c4f	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39c7cf9	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3a61906	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3ad04f2	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c86619	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f4c956	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f4eec2	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f69bc6	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3f8ee12	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40b8cf5	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40c6376	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40d8acd	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4183cf9	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4317fee	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4353163	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xb435d35c	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43b11b9	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4628648	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47e005c	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb47e57c6	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49dd4d5	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb49de221	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b83b82	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e470a9	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ef4cec	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4fbb95b	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4fdaf15	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50ab25b	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53fb54a	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb53fc235	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb54bbc16	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55c82a8	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb564c422	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56bf33f	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57a1466	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57efd91	omap_iommu_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5bee834	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5bf21ae	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c27360	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c791be	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5db0d6c	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5dcd8a0	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e115ed	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60eb8ee	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6121f98	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb61bc9ac	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6256cdb	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64fa053	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6505f67	of_clk_hw_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65c3a65	cci_ace_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66752f7	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6683dab	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6721370	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb686f4f2	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3d88	clk_hw_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6a25dc6	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6be536d	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e3c136	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e6d99d	clk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f99e48	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb70ea06e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71617c2	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7205f04	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb731b39a	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7329c06	clk_set_phase
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7393ac8	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7491c17	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74bd023	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb757075c	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75cd24b	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75d2970	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb771e6b7	bL_switch_request_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7854a87	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb786880d	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78d713a	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0xb79a1abf	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7ad989a	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b20c92	clk_hw_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7b81fa2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c3f686	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80a6169	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81625c4	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8204a7e	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82566eb	omap_tll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb828fff0	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82c8334	qcom_smem_state_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb835d651	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb842064d	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84d5fa0	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84e883d	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eb605	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb85023ac	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb86c8dee	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8752e4d	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb877cd04	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87aedbd	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87ee676	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87f6f34	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xb883dd80	nand_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb889c144	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8a12ab1	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8aae5cd	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b0a29d	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd01b4	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8df0382	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9061d28	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb90a1fcd	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9138620	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9176155	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xb917b6d7	return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xb918c7a3	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91c1bc5	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9276298	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93494bf	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9387557	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93f9dd9	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96a6616	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96dca4a	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb971cafc	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9821c1e	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99a93f5	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9ae8c88	snd_soc_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c61177	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d0926f	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d236e0	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9dce18b	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9dd4e99	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e0b72f	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e5e8a1	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e87b94	bL_switcher_trace_trigger
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f03e9d	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f63350	sm501_set_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9fb38dd	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba5dc6b2	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0xba67bced	__cci_control_port_by_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xba8efe70	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa33c58	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaa430a9	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaabaa46	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab1b54f	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbacdde45	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xbadfb5f6	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb03e6c9	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb179d2d	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb279b25	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2b6a44	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2d0daa	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb31dc27	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb36fbdf	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb40fcac	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb43344f	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4c7570	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb58c6e5	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb637f25	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb902505	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb947410	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9e9456	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba0e192	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba61a39	arm_iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba7645d	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbab7d1b	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc4e5a4	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbdc6981	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbddc24d	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbfb092c	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0d4826	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0df550	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc24186f	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc397371	ahci_init_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc57926f	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc5a2a8d	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc5b0c3e	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6189d5	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc78a09c	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8b4aa4	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc8f90dd	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9f1fd6	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb0bca6	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccaae27	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce5f19c	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcfac182	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcfe6f73	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1e5f6f	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3571fb	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd360997	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3d9b96	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7507b6	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd9dfa25	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdaba884	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbd1258	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc0818b	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde38bba	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe3d8352	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe64ad6a	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe69b926	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe69be6d	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe7cd515	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe941cd0	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9a83d5	dw_pcie_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9af246	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9f1f03	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea0c7f8	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec00716	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed9008d	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeda7cf1	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee26aeb	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefb53aa	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbefbcab9	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1229ad	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1fd17d	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4594af	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5166bb	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf61071e	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf624259	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf728f2d	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf82e984	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf8b62ee	pm_clk_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9d6327	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfa199da	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbef3ce	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd1dc7d	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd716d7	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd927e5	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe1c473	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe8655c	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe9075c	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xbff3a4e6	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffce09b	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00131cf	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0108be6	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0119189	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01bb0ab	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0270305	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0270d3d	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc030d2cb	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0xc033f2fc	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc037c78c	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc039ee67	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc03bf694	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0420b23	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0442379	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc048e23d	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04981cf	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0583e20	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xc05b9268	irq_chip_release_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06b77b3	__cci_control_port_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xc06ec72c	clk_hw_get_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc081c246	bL_switcher_put_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc086ba6d	musb_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0888e88	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09bd2d0	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0af49d5	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0bf7f07	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c812b1	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0e75cec	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f1bf28	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f22016	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0fa45f3	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1058ea1	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10655da	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10b03b3	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10cd0e4	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10efd8c	efivar_entry_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10f2445	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10ffe78	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1159ede	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc11b221c	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc12a39a9	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc13db195	ti_cm_get_macid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14243c3	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xc159308e	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16a087b	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc187a724	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19f99e5	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a0e853	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a56df5	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a6ba14	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a8321a	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ad5134	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b8ce0e	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c82d63	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f94c12	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fbcac1	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fccc5e	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fd81bc	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21b3cca	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc21ca9e8	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc222ead3	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23f6752	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2561efc	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25b0e1d	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25e24d1	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc263b4bb	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26631dc	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc266b7dd	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26ebd9d	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc272e128	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2790b8b	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc28cd59c	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xc292e3ae	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29cca90	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2b86d30	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2cd679e	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2db6995	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2db7e18	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2e0f960	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xc30ceb32	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3147b1b	arm_iommu_create_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34f7b83	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc35e373d	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3783553	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xc38655ab	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b29d1e	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b766c9	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ceb8df	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e5125a	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f8abef	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fa92be	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fb6bc5	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4198e62	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43381e6	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4443a6e	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454cb09	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc45d146a	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc465dd34	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4891281	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a45b2f	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ace4e8	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4b7b9a6	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4bc41b7	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4d65310	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4fa7d98	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xc50d81d2	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xc50f7138	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5140997	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc518a4d5	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5604800	clk_set_rate_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5643fa3	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xc569d8ce	__clk_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc570e2c9	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5729f26	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a354a5	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a559df	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ac94cc	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5b3f80f	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c6451d	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c82f8a	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ca030e	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60414fc	devm_clk_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60e8316	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0xc60f063b	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc61a6865	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc62ec282	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63b0771	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6419f99	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6473fc1	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66c54fa	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xc671dae2	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6811790	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69993cd	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69e4121	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a4a872	__clk_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6c3ed50	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6ce61f6	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6e667f1	thread_notify_head
+EXPORT_SYMBOL_GPL	 vmlinux 0xc709209b	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71241d9	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc72dd3ae	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xc73293cb	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc73a0026	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7640556	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xc76b65ee	efivar_entry_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc771f25d	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78f10cd	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xc791136e	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79144f5	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc79ed03b	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7dfeab0	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e1b7a5	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc80361af	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xc81bbf6d	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc827c65e	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8282431	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82fc78a	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc848f1db	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85dea93	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8679616	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc867dbb2	devm_clk_get_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xc870fde7	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xc874edbb	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8789b73	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88a9f9d	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc88c5c85	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891136a	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc891c8f9	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a5377f	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a65d34	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c0a395	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8de17cd	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e1398a	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f5e545	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f6335a	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f6af9e	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8fcd100	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc905f60e	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9088422	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90bdbaa	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0xc90ce8ba	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc918e183	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91c2ad3	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc92c7953	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93b5515	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93fdb8c	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94d2a0c	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc963ca57	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc992c08e	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xc997ed3d	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ab56bb	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9bddab1	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c1f42f	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9d393da	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9efd2a3	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fb00f7	pl320_ipc_transmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xca071b01	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0xca0e47e4	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xca13d365	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xca3ab270	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xca439d15	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xca467318	hibernation_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4a5546	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4a6011	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xca59f6c2	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5a969b	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xca689039	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6ba70a	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6cb6e2	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6e0071	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca88d385	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0xca8b7548	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xca91c421	mtd_panic_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcab0b2aa	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac2c39a	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac7eefe	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad2cc76	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad52430	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad93e2f	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcade6d41	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae5e9e5	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb03e656	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb197100	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb299096	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb48d1bb	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a577f	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb71d64f	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7424d2	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb771512	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb7c4e2a	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9c706a	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb62cb7	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbc0ccb4	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd13e92	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd5ede3	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd99426	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbdfba24	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe769cf	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf7760b	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0a96c3	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1c989e	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc20ac52	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4b1e0a	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc4ffdef	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5198aa	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc595d01	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc6720a8	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc75e3ac	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc84f29e	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8a63d8	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc98a690	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9b34c3	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9d1bcb	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xcca1e26b	amba_apb_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb17d88	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb45714	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb7329e	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbb5dab	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd78992	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcce1cd57	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xccebee84	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfdde48	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd01ac01	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd03c98c	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd131885	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd242768	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4b5466	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd4e1016	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd52bd0b	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7b3cd7	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7de3d6	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7ed357	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd884c9f	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd93d909	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9a6c3d	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd2efd2	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xcddcd388	ulpi_viewport_access_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde438b2	mtk_smi_larb_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf910d1	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdff016f	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xce15b476	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xce26035d	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xce26a96f	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xce2b3c61	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xce562fd1	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xce5e6856	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6de458	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0xce87dc8e	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xce9059c1	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xce954978	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcea9d6c6	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb818f0	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb83f86	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb9e9de	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec02957	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec05535	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcecbb1c3	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xced8a197	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee0f60c	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee230af	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xcef4d5b4	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0871fd	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf1ed9bd	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf399cde	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3b2ced	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf3e5f89	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf588f62	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6831b3	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6a4386	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6b2425	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf71efb2	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf76ca1f	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8537ed	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9dc2e7	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa1ad3d	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa3f334	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfadd759	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfcaa571	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd44b50	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfdc8fe6	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffe61c6	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00d5aec	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0271b90	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd02afa98	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04647cb	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0509b32	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0559b58	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd08cab33	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0b571c2	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c1e5fb	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d95ca9	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db2961	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0efe848	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f8726b	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xd119e751	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12159a7	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13fd7e9	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16746c2	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1678938	clk_hw_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xd19f0fea	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a4eac8	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1bb8f82	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d35012	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1d706b6	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e2bfef	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e36de3	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21cb4fc	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23d8faf	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2514534	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xd265b215	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26f72af	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27c0530	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd27e091d	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd29bf574	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2a048ff	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ad7a55	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2adbaea	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bc3f7d	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2ebccc0	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f0cbfb	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3031cd4	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30ae733	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd30ef365	__put_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3159f91	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32f9417	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33a8aa8	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33ada8b	cci_probed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3447157	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd373ddde	null_dailink_component
+EXPORT_SYMBOL_GPL	 vmlinux 0xd392580c	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39587e7	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a418be	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3d1ce68	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3de6025	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3e97c21	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41e6f19	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42ac1c1	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xd43a63ed	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0xd43e2a69	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4558056	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45616c0	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45abf67	snd_card_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4750afc	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48be309	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4bbad74	kill_mtd_super
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c66550	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ca58fd	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d5c85c	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d6b906	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d97291	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4dd672b	dw_pcie_setup_rc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4e656e3	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fd7350	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5027af1	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 vmlinux 0xd504c938	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd50fb995	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5279f17	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xd54f5a4a	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd56636eb	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5687412	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5694f82	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xd56e64e9	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57d5dcc	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57f9fab	irq_chip_request_resources_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd581fe10	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xd582aca1	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0xd58b708e	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd594cc87	clk_register_fixed_rate_with_accuracy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a709f5	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ac24e5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b17f23	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5b363e9	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5d2efd0	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e19de7	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e2423f	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5e7c341	__clk_determine_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5fc5282	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60e2c90	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61170b4	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6173105	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xd61f569a	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63ce82a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6421d0f	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64422b1	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd65a3c50	xas_split
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6938441	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69587bc	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69f6ee4	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a26884	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6b843dd	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d65f0f	of_clk_src_onecell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f55b51	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd70073a1	clk_regmap_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7081e20	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7159f0f	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71e2d7c	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7310b9c	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73118e2	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7399d2a	efivar_entry_iter_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73a13c7	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xd73fee26	rockchip_pcie_parse_dt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd74bf099	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7515609	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7571b0d	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd766e8f2	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd76e7937	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77c28b7	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xd77f8b6e	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7889c5f	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b411cb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b94664	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c4be16	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7c61358	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e5f4e3	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ebf868	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f07d18	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd809cc76	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81581d5	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81bbe58	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8257201	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8514c58	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd86957f5	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8723f94	clk_hw_register_divider_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd885829d	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 vmlinux 0xd89191ff	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8927295	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xd893d81a	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8989bb8	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8ae5ddb	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b33fcc	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c20ec6	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c8baae	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8cce693	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d24416	hisi_clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e7d755	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8eaf2d1	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8f6cfca	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fb0e5b	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9185db8	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd922f727	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92d1f23	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93c0b4a	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd944b1e9	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94bd1a0	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94c74e6	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95547d2	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95e37fb	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9674c4d	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9698384	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96bb17a	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xd97c9c11	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd980ca83	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b4782b	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9be0346	omap_iommu_save_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c9995f	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ca980d	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9cbd94d	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9e2eb47	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f2122c	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f3e65f	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1129c8	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1281a4	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xda149ee9	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1d5f1b	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0xda29208d	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2e8306	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2efb1a	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xda340f1d	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xda37aa3c	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xda410add	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xda452ca7	mtd_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4d9272	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xda570e98	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xda938d6f	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa54677	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa92118	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab1f94c	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab26547	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab84688	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaefdde6	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb0d7ffa	i2c_detect_slave_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb1e44a4	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb673096	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb799e87	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7ffd1e	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb82b182	clk_gpio_mux_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba061c7	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbad64f4	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb15f9b	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb1d6a8	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe759ff	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe8cc55	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbeab151	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0061c6	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc04846a	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc19fed9	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5a4439	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5b3120	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc64f20c	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc661464	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6f1f13	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc7ce353	mv_mbus_dram_info_nooverlap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc89cb78	ahci_check_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9ff128	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdca53fb0	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcafd388	clk_fractional_divider_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce72170	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce8df16	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce98325	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf112fe	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf4d58b	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcfbb6e0	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd1d9690	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd21316c	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2b89ad	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd3ec646	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd734564	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd85063c	lpddr2_jedec_min_tck
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9d4a2e	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 vmlinux 0xddae35cf	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc1e2dd	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc9fd1a	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd21cfd	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd6a7be	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdddee411	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0xddf85118	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0xde0a105b	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xde1b9f57	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xde25f88c	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3420c3	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6e99ed	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde824f37	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8bfc77	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8f72b9	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0xde910470	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xde94abf4	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea3bdaa	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb8dc11	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec69760	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xded2bf28	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef5f994	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf035604	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf04ee28	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf11059b	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf141b89	clk_gpio_gate_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf255dcf	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf28abb2	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf503646	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf59e826	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5d4099	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf6277ec	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf74d073	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf76bdca	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7fa33b	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf86d03a	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb64248	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb79b17	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbeba93	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcab9bd	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfeed1df	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff31fed	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdffe49db	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0001a50	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02df6bb	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02ec902	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe03014b2	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04c26f1	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04e99d7	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe052bf01	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe052fe8d	nand_select_target
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05de23f	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe06fed5e	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08c1ed9	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe08d1187	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0902cf9	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a98f02	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0b1c103	clk_set_max_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d94ab4	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ed1365	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1188a64	clk_register_fixed_factor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe126553f	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe133e4c8	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe141047b	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1502545	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17ae3b7	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe19b2950	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a5e778	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ccd16b	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cd9207	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1cfa261	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d7d84e	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1dfa789	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ee1bfb	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f2f941	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f35661	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xe201ef31	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21993f0	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe22d14ed	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe248e433	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24d251a	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24d9a0e	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2599bc3	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26916b4	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27572e8	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe279ff94	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2876d91	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2934bb7	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2aba91b	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ba2f27	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2de9095	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e32510	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f15b64	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2f565d5	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2faf37b	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3005a40	tps65217_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3130fcf	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xe314400c	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31b9ac1	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32324fa	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32c1f20	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3548b71	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe355eaaf	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe373fa39	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe380ef9a	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38412ed	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a6edcf	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3aa4a08	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b923a9	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c6808c	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cc50fa	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3e6c166	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fe4863	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40fff56	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe42bf534	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4378ba9	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4425491	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4549af9	of_pm_clk_add_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe455c255	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4588c3b	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45c05d9	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46e657d	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4711d99	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47f724a	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4893ca9	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xe491b9aa	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4954950	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a5b487	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a75f4a	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4aa6337	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b24b43	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c99747	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c9f178	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4d53bae	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4da19fe	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4dc8b26	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e99a70	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4efa286	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4eff53f	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f12480	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f74e8b	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe503ee4e	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe511153a	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0xe520db5b	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe53868f7	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5420e64	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5552d38	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe557b490	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5738d34	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5752795	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xe582202d	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xe582bdc9	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe589e770	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe599807b	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59c76ab	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59da2ab	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59ee23f	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5a303e1	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5af266c	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b2f745	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b7eb92	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c4ab17	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5cb1943	hisi_clk_register_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ce84d1	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d64ab1	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5d7409c	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e43f69	xhci_mtk_drop_ep_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5f8c909	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5fb8e3a	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe610cc57	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe648e77d	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65fb100	ahci_reset_em
+EXPORT_SYMBOL_GPL	 vmlinux 0xe67432cc	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe67c2ba9	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe681531b	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xe689bec7	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68fe78e	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a30a42	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a820cc	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6ad2c61	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b860a8	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6c9783b	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d13062	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d81d31	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6d92057	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e76b63	edac_device_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6f5e41e	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7009c15	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7075837	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe70f71b5	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71a6a77	divider_ro_round_rate_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xe733ed6c	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7455351	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe747297d	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75625fb	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75e5aad	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe76980d3	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe775b60a	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78100e1	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe795aff9	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe797ef81	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b3f08c	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ba500f	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7bac40f	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7c12066	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d7cdeb	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81691b5	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe817280f	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe82318f2	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8371be4	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe83f742e	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8400886	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84637f4	sdhci_send_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe852c745	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe85d8659	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe860d61b	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe863d77a	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86c87f5	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8724b4a	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0xe87ef994	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe880e61d	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8896cc7	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88cd069	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8900c19	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8a96d13	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ddb147	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e9536f	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe904c2f5	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe904ec77	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xe910a3dd	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9132c79	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91ec8dd	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9233332	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe92b5b6b	snd_device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94248ba	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9547016	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe956a75c	pl320_ipc_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe95aedc0	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9617c69	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe963c269	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9709f90	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97818c5	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xe97e194f	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe98f6439	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 vmlinux 0xe992a8dc	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe99cb47f	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a3e1ef	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9a7fe16	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b5c36b	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d26bc5	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d6eeea	cpts_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9db9b12	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ef5d1c	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f5bfc8	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea141c72	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1bb291	bL_switcher_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1e6172	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xea1f6e0e	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xea208e94	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3223df	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xea322e83	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4a09cb	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 vmlinux 0xea59eae9	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0xea65644d	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6f92f9	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xeab89641	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaba72a9	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac0bbd8	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac3da89	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xead41daf	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeafe07b8	clk_bulk_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb054d9d	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb4affe5	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb558f16	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8e4ef4	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9abbee	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9cba40	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba52982	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba53bb6	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb1e8d0	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb5d86c	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbe1622	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebdaf79b	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe5c69d	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xebeadef3	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xec08dff8	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0aae75	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0f8740	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xec2b9293	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xec31145e	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xec358ffb	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xec4d7bf2	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xec5a213a	devm_clk_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xec63d718	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xec68ba70	clk_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xec6d1d6e	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec89aa06	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xecbe8f22	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xecefe516	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xed133aa7	clk_register_fractional_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xed137350	efivar_entry_set_get_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2ab36d	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2c53ad	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0xed344146	mcpm_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xed38c848	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xed4003d5	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0xed403be7	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xed7911da	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8b3f68	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8bbe99	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xed8cef08	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xed90725e	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0xed914873	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9562ab	clk_register_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9604cf	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xedab782c	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 vmlinux 0xedb2108f	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeddf3cc8	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf2ae3b	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf8ca3d	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xee084376	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0bba5f	devm_clk_get_optional_prepared
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1d9427	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3f03a5	pci_ioremap_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xee466941	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c1eec	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6f06a3	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xee730922	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xee803cd9	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xee9fe71e	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb6d302	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeef11773	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xeefd029d	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xef03c6a9	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0d47a6	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1717d7	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xef195a33	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef19ea78	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1d8816	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0xef213b33	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xef21c86b	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xef253886	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xef29fcdd	clk_bulk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xef3e1989	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef4ec6e4	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xef5449c2	mtd_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xef62f141	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0xef690018	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7d4b3b	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xef83eed1	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xef8e1395	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xef919827	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9199b1	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9abd89	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaace6e	mv_mbus_dram_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb9f484	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc25bbd	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcf9ea0	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd9ec77	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf004d3fa	nanddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00edb00	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xf037574e	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0394ef9	nand_erase_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0448706	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0455bb5	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0xf049673b	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0551537	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05b3090	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05ebc64	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0743ef6	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0812ed9	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0af9dd5	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b05bff	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0ba3ec1	efivar_entry_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0bad1c4	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0bf2964	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0e783e0	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f1014d	__efivar_entry_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f6598d	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f6e21a	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0fc0ac3	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0fdf445	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf10816a5	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1088603	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1352359	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1363ba3	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf13ae550	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1437a42	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1593a2e	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15fa185	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16a468d	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1738f21	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf17f133b	meson_clk_mpll_ro_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf182f1f4	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18ff278	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b04062	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d8e27d	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1dad7f5	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1ed71b6	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1fae6a3	asic3_read_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf20e29d6	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf212f780	vchan_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf220e22b	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf238e836	rockchip_pcie_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23fa04a	nanddev_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xf24b85be	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf257b3be	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf265e003	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2782dcb	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf289507a	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xf291327b	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf294b72b	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d6b0ff	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2dd4e85	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e6e248	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2e97388	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3037327	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30fda27	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31357cc	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31ffcf7	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf321abc8	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3229749	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3235873	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3249456	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf33901f5	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34a9752	i2c_slave_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf361fef4	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf36de5f6	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3701aac	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3764c16	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37902bf	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf37d41a1	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38a4523	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38e1a02	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3947cf2	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a3636e	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a84396	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c004bf	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c2528a	clk_hw_register_gpio_gate
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c95838	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ce9743	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d130d6	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3d98b3a	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ee076b	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4046b58	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf413ed11	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4152213	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41a19f4	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf421e1a1	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4342311	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4368282	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xf43e49ec	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4592a1e	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45ad034	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45c7f98	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45cce8c	reset_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45db6a9	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf461653c	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4653ddd	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4706ba6	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47244be	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47de486	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48ceebd	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf48dbec4	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49c680a	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c063e2	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c20455	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4cdfdbb	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf507c9eb	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xf50dfae2	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51a8462	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51a9f6e	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51d051e	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5292b10	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52e14e9	snmp_fold_field64
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53905cc	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54333a8	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf556bcaf	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56a1fd4	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56b986c	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5704151	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf573608a	irq_domain_free_irqs_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59d7dea	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f040cf	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf612e9a1	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61baa65	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62344ed	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf628001b	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62c2215	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xf630c22c	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6363c1f	amba_ahb_device_add_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf657897c	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6726918	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xf693b0ac	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf697b926	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ac9820	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6ae4e68	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c33ea1	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dbd8	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d22b88	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d9afcb	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6dec61f	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6df62fd	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6dfbe94	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e38faf	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7004ee5	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0xf709ed11	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf70c651b	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf72de2be	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf730fb4a	qcom_smem_state_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7364150	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf73db534	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7500b2b	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76b0a59	read_current_timer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77b27e9	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf77dd6ca	pci_msi_create_irq_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf789a0c2	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 vmlinux 0xf79b3ed7	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7b3a803	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c765af	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7c96d2c	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cd1295	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7cd6852	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7f6a328	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7fe38ea	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf803cf3b	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8117e76	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xf814190a	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8168a8a	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f16b3	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8322c24	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8435f9c	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf868e302	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8828162	irq_chip_mask_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88e4823	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89a45aa	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8b774dd	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d8e452	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8dea965	amba_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9052271	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xf905f0b3	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf90b9406	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xf924bfd2	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 vmlinux 0xf92ead78	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9300636	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf942dc43	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf94b9c6a	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96a2d60	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0xf978aade	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9837259	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9964266	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a3e5e5	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab7c36	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9acfa7b	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9b3f260	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c197dd	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c6a945	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9d129df	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e1ff59	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9eb8c1f	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa03858a	sram_exec_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa2d041a	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa33917c	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa3e49c1	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa55d669	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6e6753	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa723efe	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7c821f	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa82f473	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa8ed2b7	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa1d34c	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaae28b7	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab8879d	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaba248a	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfac01d9a	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad0ca80	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad82903	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaeed269	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaefdcf2	clk_hw_round_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb008c57	irq_chip_ack_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb089aba	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb14e307	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb24d4ab	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb288f27	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb2c9997	sdhci_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb3546f4	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb44842c	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb4550f8	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb48c572	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb51f520	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb596a63	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb69d978	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7a4a7f	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7dbfdf	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7ffa5b	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb8ffa31	amba_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba3bdc3	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfba527b7	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbb65416	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc5e2e3	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc94202	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe196ef	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf4ffc7	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbfb512c	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc014cb6	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc17a304	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc1f34d8	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc2f533f	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3973d8	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3a03cf	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc619400	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc6ae331	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc997bca	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcafaa46	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb68746	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcf56119	amba_bustype
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfa8b98	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd040770	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd4f38ab	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd544b19	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd648f73	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6e71d8	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6f3b78	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6f431d	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd6fd1a6	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd80d62c	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda981d6	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda9ba42	get_mtd_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb21b07	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdcd0ed1	clk_hw_get_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd50cfb	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde234a8	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdfc3e74	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe0bbbd2	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1a510c	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1b6448	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29b8e1	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe29d810	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2a072a	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe40096f	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe48eecb	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5ed37a	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe61d553	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe682bb8	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8b5773	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8e1d2a	pm_clk_remove_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8e8307	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8eaa4f	xhci_mtk_check_bandwidth
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe99849c	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea10369	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea58a82	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeab6f04	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec45e37	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfec554b4	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfef67ace	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfefc3c88	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xff04da4b	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff291ecf	clk_unregister_divider
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2a28b9	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0xff2c5a98	mtd_read_oob
+EXPORT_SYMBOL_GPL	 vmlinux 0xff379e83	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0xff3c6d93	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 vmlinux 0xff47a6d6	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff73240b	amba_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xff791853	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9731b5	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xffa5a334	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xffabecc9	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd930bd	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xffdce9c3	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xfff19ca1	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfffa34f3	crypto_unregister_shash
+USB_STORAGE EXPORT_SYMBOL_GPL 0x015456d5	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x021a57d8	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x0f8a9977	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1837cd0d	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x271ddccb	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2ebf8dc4	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x307f0c2d	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x325e5ce6	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x354b6e7b	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x4dbb3ea6	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x5244c952	usb_stor_clear_halt	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x57c189a2	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x654a48aa	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x68c824ad	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x73343f25	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9c10f324	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x9db70f2b	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb0cf6aae	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb7147334	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xc232b549	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd154be08	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd877973b	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xda6bcaf5	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xeb5c2268	usb_stor_CB_reset	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic-lpae.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic-lpae.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic-lpae.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic-lpae.modules
@@ -0,0 +1,5812 @@
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_dw
+8250_exar
+8250_men_mcb
+8250_omap
+8250_uniphier
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+a53-pll
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes-arm
+aes-arm-bs
+aes-arm-ce
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci
+ahci_ceva
+ahci_dm816
+ahci_mtk
+ahci_mvebu
+ahci_qoriq
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am35x
+am53c974
+amba-pl010
+ambakmi
+amc6821
+amd
+amd5536udc_pci
+amd8111e
+amdgpu
+amplc_dio200
+amplc_dio200_common
+amplc_dio200_pci
+amplc_pc236
+amplc_pc236_common
+amplc_pc263
+amplc_pci224
+amplc_pci230
+amplc_pci236
+amplc_pci263
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+analogix_dp
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+ao-cec
+ao-cec-g12a
+aoe
+apbps2
+apcs-msm8916
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+applicom
+apr
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_emac
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arm_big_little
+arm_mhu
+arm_scpi
+armada
+armada-37xx-cpufreq
+armada-37xx-rwtm-mailbox
+armada-8k-cpufreq
+armada_37xx_wdt
+arp_tables
+arpt_mangle
+arptable_filter
+artpec6_crypto
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-lpc-ctrl
+aspeed-lpc-snoop
+aspeed-p2a-ctrl
+aspeed-pwm-tacho
+aspeed-smc
+aspeed-vhub
+aspeed-video
+aspeed_adc
+aspeed_gfx
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_snoc
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-hlcdc-dc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796
+ax88796b
+axg-audio
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bL_switcher_dummy_if
+bam_dma
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bcm-keypad
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm47xxsflash
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm63xx_uart
+bcm7xxx
+bcm87xx
+bcma
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+berlin2-adc
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bochs-drm
+bonding
+bpa10x
+bpck
+bpck6
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb_nand
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt-bmc
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btqcomsmd
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+cachefiles
+cadence-quadspi
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camcc-sdm845
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chnl_net
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+clk-bd718x7
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-exynos-audss
+clk-hi3519
+clk-hi655x
+clk-lochnagar
+clk-max77686
+clk-max9485
+clk-palmas
+clk-phase
+clk-pwm
+clk-qcom
+clk-rk808
+clk-rpm
+clk-s2mps11
+clk-scmi
+clk-scpi
+clk-si514
+clk-si5341
+clk-si5351
+clk-si544
+clk-si570
+clk-smd-rpm
+clk-spmi-pmic-div
+clk-twl6040
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmtp
+cnic
+cobra
+coda
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+comm
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-charger
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cppi41
+cqhci
+cramfs
+crc-itu-t
+crc32-arm-ce
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-arm-ce
+crg-hi3516cv300
+crg-hi3798cv200
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_rpmsg
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_ec_vbc
+cros_usbpd-charger
+cros_usbpd_logger
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+defxx
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dispcc-sdm845
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9000
+dm9601
+dmard06
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dnet
+dove_thermal
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+dps310
+dpt_i2o
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw-mipi-dsi
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_hdmi-imx
+dw_mipi_dsi-stm
+dw_mmc
+dw_mmc-bluefield
+dw_mmc-exynos
+dw_mmc-hi3798cv200
+dw_mmc-k3
+dw_mmc-pci
+dw_mmc-pltfm
+dw_mmc-rockchip
+dw_wdt
+dwc-xlgmac
+dwc3
+dwc3-exynos
+dwc3-haps
+dwc3-meson-g12a
+dwc3-of-simple
+dwc3-omap
+dwc3-qcom
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-ipq806x
+dwmac-mediatek
+dwmac-meson
+dwmac-meson8b
+dwmac-qcom-ethqos
+dwmac-rk
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-npcm7xx
+ehci-omap
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emac_rockchip
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+emif
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+eni
+enic
+envelope-detector
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-qcom-spmi-misc
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+exynos-gsc
+exynos-lpass
+exynos-rng
+exynos-trng
+exynos_adc
+exynosdrm
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+fastrpc
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fl512
+flexcan
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-ast-cf
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-dcu-drm
+fsl-edma
+fsl-edma-common
+fsl-mph-dr-of
+fsl-qdma
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftgmac100
+ftl
+ftm-quaddec
+ftmac100
+ftsteutates
+ftwdt010_wdt
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_multi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gcc-apq8084
+gcc-ipq4019
+gcc-ipq806x
+gcc-ipq8074
+gcc-mdm9615
+gcc-msm8660
+gcc-msm8916
+gcc-msm8960
+gcc-msm8974
+gcc-msm8994
+gcc-msm8996
+gcc-msm8998
+gcc-qcs404
+gcc-sdm660
+gcc-sdm845
+gcc-sm8150
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+gf2k
+gfs2
+ghash-arm-ce
+gigaset
+gl518sm
+gl520sm
+gl620a
+glink_ssr
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-arizona
+gpio-aspeed
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rcar
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-ucb1400
+gpio-uniphier
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpu-sched
+gpucc-sdm845
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hclge
+hclgevf
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfpll
+hfs
+hfsplus
+hi311x
+hi3660-mailbox
+hi6210-i2s
+hi6220-mailbox
+hi6220_reset
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi655x-pmic
+hi655x-regulator
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+highbank-cpufreq
+highbank_l2_edac
+highbank_mc_edac
+hih6130
+hip04_eth
+hisi-rng
+hisi-sfc
+hisi504_nand
+hisi_femac
+hisi_powerkey
+hisi_thermal
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hnae3
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hopper
+horus3a
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-aspeed
+i2c-axxia
+i2c-cbus-gpio
+i2c-cros-ec-tunnel
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-emev2
+i2c-exynos5
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-hix5hd2
+i2c-i801
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-meson
+i2c-mt65xx
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-mv64xxx
+i2c-nforce2
+i2c-nomadik
+i2c-nvidia-gpu
+i2c-ocores
+i2c-owl
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-pxa
+i2c-qcom-geni
+i2c-qup
+i2c-rcar
+i2c-riic
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-sh_mobile
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icc-smd-rpm
+ice
+ice40-spi
+icp_multi
+icplus
+ics932s401
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+impa7
+ims-pcu
+imx-ipu-v3
+imx-ldb
+imx-tve
+imx214
+imx258
+imx274
+imx319
+imx355
+imx6ul_tsc
+imxdrm
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+iproc_nand
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-rx51
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it87
+it913x
+itd1000
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k3dma
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+kcs_bmc
+kcs_bmc_aspeed
+kcs_bmc_npcm7xx
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmx61
+kobil_sct
+komeda
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+kpss-xcc
+krait-cc
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcc-ipq806x
+lcc-mdm9615
+lcc-msm8960
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-ns2
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pm8058
+leds-pwm
+leds-regulator
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lima
+lineage-pem
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+llcc-sdm845
+llcc-slice
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpasscc-sdm845
+lpc_ich
+lpc_sch
+lpddr2_nvm
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macb_pci
+machxo2-spi
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mali-dp
+mantis
+mantis_core
+map_absent
+map_ram
+map_rom
+marvell
+marvell-cesa
+marvell10g
+marvell_nand
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mcde_drm
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-aspeed
+mdio-bcm-unimac
+mdio-bitbang
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-meson-g12a
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdt_loader
+me4000
+me_daq
+mediatek-cpufreq
+mediatek-drm
+mediatek-drm-hdmi
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+meson-canvas
+meson-drm
+meson-gx-mmc
+meson-gxl
+meson-ir
+meson-mx-sdio
+meson-rng
+meson-vdec
+meson_dw_hdmi
+meson_gxbb_wdt
+meson_nand
+meson_saradc
+meson_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+mii
+milbeaut_usio
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mmcc-apq8084
+mmcc-msm8960
+mmcc-msm8974
+mmcc-msm8996
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6380-regulator
+mt6397
+mt6397-regulator
+mt6577_auxadc
+mt6797-mt6351
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt8183-da7219-max98357
+mt8183-mt6358-ts3a227-max98357
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd_dataflash
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-btcvsd
+mtk-cir
+mtk-cmdq-helper
+mtk-cmdq-mailbox
+mtk-cqdma
+mtk-crypto
+mtk-hsdma
+mtk-pmic-keys
+mtk-pmic-wrap
+mtk-quadspi
+mtk-rng
+mtk-sd
+mtk-uart-apdma
+mtk-vpu
+mtk_ecc
+mtk_nand
+mtk_thermal
+mtk_wdt
+mtouch
+mtu3
+multipath
+multiq3
+musb_am335x
+musb_dsps
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv643xx_eth
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvneta
+mvpp2
+mvsas
+mvsdio
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nbpfaxi
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-neon
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_labpc
+ni_labpc_common
+ni_labpc_pci
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicstar
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+npcm_adc
+nps_enet
+ns558
+ns83820
+nsh
+nsp32
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmem-uniphier-efuse
+nvmem_meson_mx_efuse
+nvmem_qfprom
+nvmem_rockchip_efuse
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of-fpga-region
+of_mmc_spi
+of_pmem
+of_xilinx_wdt
+ofb
+omap
+omap-aes-driver
+omap-crypto
+omap-des
+omap-mailbox
+omap-ocp2scp
+omap-rng
+omap-sham
+omap2430
+omap2fb
+omap4-keypad
+omap_hdq
+omap_hwspinlock
+omap_wdt
+omapdss
+omfs
+omninet
+on20
+on26
+onenand
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+optee
+optee-rng
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+orion_nand
+orion_wdt
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+owl-dma
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+panfrost
+parade-ps8622
+parallel-display
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pbias-regulator
+pc300too
+pc87360
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcie-rockchip-host
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcwd_pci
+pcwd_usb
+pd
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-am335x
+phy-am335x-control
+phy-armada38x-comphy
+phy-bcm-kona-usb2
+phy-berlin-sata
+phy-berlin-usb
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-dm816x-usb
+phy-exynos-usb2
+phy-exynos5-usbdrd
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-gpio-vbus-usb
+phy-hix5hd2-sata
+phy-isp1301
+phy-mapphone-mdm6600
+phy-meson-g12a-usb2
+phy-meson-g12a-usb3-pcie
+phy-meson-gxl-usb2
+phy-meson-gxl-usb3
+phy-meson8b-usb2
+phy-mtk-tphy
+phy-mtk-ufs
+phy-mtk-xsphy
+phy-mvebu-a3700-comphy
+phy-mvebu-a3700-utmi
+phy-mvebu-cp110-comphy
+phy-ocelot-serdes
+phy-omap-control
+phy-omap-usb2
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-qcom-pcie2
+phy-qcom-qmp
+phy-qcom-qusb2
+phy-qcom-ufs
+phy-qcom-ufs-qmp-14nm
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-rcar-gen2
+phy-rcar-gen3-pcie
+phy-rcar-gen3-usb2
+phy-rcar-gen3-usb3
+phy-rockchip-dp
+phy-rockchip-emmc
+phy-rockchip-inno-hdmi
+phy-rockchip-inno-usb2
+phy-rockchip-pcie
+phy-rockchip-typec
+phy-rockchip-usb
+phy-tahvo
+phy-ti-pipe3
+phy-tusb1210
+phy-twl4030-usb
+phy-twl6030-usb
+phy-uniphier-pcie
+phy-uniphier-usb2
+phy-uniphier-usb3hs
+phy-uniphier-usb3ss
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-apq8064
+pinctrl-apq8084
+pinctrl-axp209
+pinctrl-ipq4019
+pinctrl-ipq8064
+pinctrl-ipq8074
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-mdm9615
+pinctrl-msm8660
+pinctrl-msm8916
+pinctrl-msm8960
+pinctrl-msm8994
+pinctrl-msm8996
+pinctrl-msm8998
+pinctrl-msm8x74
+pinctrl-qcs404
+pinctrl-rk805
+pinctrl-sc7180
+pinctrl-sdm660
+pinctrl-sdm845
+pinctrl-sm8150
+pinctrl-spmi-gpio
+pinctrl-spmi-mpp
+pinctrl-ssbi-gpio
+pinctrl-ssbi-mpp
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+pl353-smc
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8916_wdt
+pm8941-pwrkey
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pmic8xxx-keypad
+pmic8xxx-pwrkey
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-beeper
+pwm-berlin
+pwm-cros-ec
+pwm-fan
+pwm-fsl-ftm
+pwm-hibvt
+pwm-ir-tx
+pwm-lp3943
+pwm-mediatek
+pwm-meson
+pwm-mtk-disp
+pwm-omap-dmtimer
+pwm-pca9685
+pwm-rcar
+pwm-regulator
+pwm-renesas-tpu
+pwm-rockchip
+pwm-samsung
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa168_eth
+pxa27x_udc
+pxe1610
+pxrc
+q6adm
+q6afe
+q6afe-dai
+q6asm
+q6asm-dai
+q6core
+q6dsp-common
+q6routing
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-apcs-ipc-mailbox
+qcom-coincell
+qcom-cpufreq-hw
+qcom-emac
+qcom-geni-se
+qcom-pm8xxx
+qcom-pm8xxx-xoadc
+qcom-pon
+qcom-rng
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-pmic
+qcom-spmi-temp-alarm
+qcom-spmi-vadc
+qcom-vadc-common
+qcom-wdt
+qcom_aoss
+qcom_common
+qcom_edac
+qcom_geni_serial
+qcom_glink_native
+qcom_glink_rpm
+qcom_glink_smem
+qcom_gsbi
+qcom_hwspinlock
+qcom_nandc
+qcom_q6v5
+qcom_q6v5_adsp
+qcom_q6v5_mss
+qcom_q6v5_pas
+qcom_q6v5_wcss
+qcom_rpm
+qcom_rpm-regulator
+qcom_smbb
+qcom_smd
+qcom_smd-regulator
+qcom_spmi-regulator
+qcom_sysmon
+qcom_tsens
+qcrypto
+qcserial
+qed
+qede
+qedf
+qedi
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_helpers
+qmi_wwan
+qnoc-qcs404
+qnx4
+qnx6
+qoriq-cpufreq
+qoriq_thermal
+qrtr
+qrtr-smd
+qrtr-tun
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ravb
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar-csi2
+rcar-dmac
+rcar-du-drm
+rcar-fcp
+rcar-gyroadc
+rcar-vin
+rcar_can
+rcar_canfd
+rcar_drif
+rcar_dw_hdmi
+rcar_fdp1
+rcar_gen3_thermal
+rcar_jpu
+rcar_lvds
+rcar_thermal
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+renesas-ceu
+renesas_sdhi_core
+renesas_sdhi_internal_dmac
+renesas_sdhi_sys_dmac
+renesas_usb3
+renesas_usbhs
+renesas_wdt
+repaper
+reset-hi3660
+reset-meson-audio-arb
+reset-qcom-pdc
+reset-scmi
+reset-ti-syscon
+reset-uniphier
+reset-uniphier-glue
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk3399_dmc
+rk805-pwrkey
+rk808
+rk808-regulator
+rk_crypto
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rmobile-reset
+rmtfs_mem
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rockchip-dfi
+rockchip-io-domain
+rockchip-rga
+rockchip_saradc
+rockchip_thermal
+rockchipdrm
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-armada38x
+rtc-as3722
+rtc-aspeed
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cmos
+rtc-cpcap
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-meson
+rtc-meson-vrtc
+rtc-msm6242
+rtc-mt6397
+rtc-mt7622
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-sh
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+rza_wdt
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3c2410_wdt
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s5p-cec
+s5p-g2d
+s5p-jpeg
+s5p-mfc
+s5p-sss
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_rcar
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sc92031
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+sclk-div
+scmi-cpufreq
+scmi-hwmon
+scmi_pm_domain
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci-cadence
+sdhci-dove
+sdhci-msm
+sdhci-of-arasan
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-dwcmshc
+sdhci-omap
+sdhci-pci
+sdhci-pxav3
+sdhci-s3c
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_eth
+sh_mmcif
+sh_mobile_lcdcfb
+sh_veu
+sha1-arm
+sha1-arm-ce
+sha1-arm-neon
+sha2-arm-ce
+sha256-arm
+sha3_generic
+sha512-arm
+shark2
+sharpslpart
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slim-qcom-ngd-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc911x
+smc91x
+smc_diag
+smd-rpm
+smem
+smiapp
+smiapp-pll
+smipcie
+smm665
+smp2p
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsm
+smsmdtv
+smssdio
+smsusb
+snd-aaci
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-ali5451
+snd-aloop
+snd-als300
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-apq8016-sbc
+snd-soc-apq8096
+snd-soc-arizona
+snd-soc-armada-370-db
+snd-soc-arndale-rt5631
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-cpcap
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-davinci-mcasp
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-i2s
+snd-soc-idma
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-kirkwood
+snd-soc-lochnagar-sc
+snd-soc-lpass-apq8016
+snd-soc-lpass-cpu
+snd-soc-lpass-ipq806x
+snd-soc-lpass-platform
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98095
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-meson-axg-fifo
+snd-soc-meson-axg-frddr
+snd-soc-meson-axg-pdm
+snd-soc-meson-axg-sound-card
+snd-soc-meson-axg-spdifin
+snd-soc-meson-axg-spdifout
+snd-soc-meson-axg-tdm-formatter
+snd-soc-meson-axg-tdm-interface
+snd-soc-meson-axg-tdmin
+snd-soc-meson-axg-tdmout
+snd-soc-meson-axg-toddr
+snd-soc-meson-g12a-tohdmitx
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-mt6797-afe
+snd-soc-mt8183-afe
+snd-soc-mtk-common
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-odroid
+snd-soc-omap-mcbsp
+snd-soc-pcm
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-qcom-common
+snd-soc-rcar
+snd-soc-rk3288-hdmi-analog
+snd-soc-rk3328
+snd-soc-rk3399-gru-sound
+snd-soc-rl6231
+snd-soc-rockchip-i2s
+snd-soc-rockchip-max98090
+snd-soc-rockchip-pcm
+snd-soc-rockchip-pdm
+snd-soc-rockchip-rt5645
+snd-soc-rockchip-spdif
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-rt5663
+snd-soc-s3c-dma
+snd-soc-samsung-spdif
+snd-soc-sdm845
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-smdk-spdif
+snd-soc-smdk-wm8994
+snd-soc-smdk-wm8994pcm
+snd-soc-snow
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-storm
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-ti-edma
+snd-soc-ti-sdma
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tm2-wm5110
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-uniphier-aio-cpu
+snd-soc-uniphier-aio-ld11
+snd-soc-uniphier-aio-pxs2
+snd-soc-uniphier-evea
+snd-soc-wcd9335
+snd-soc-wm-adsp
+snd-soc-wm-hubs
+snd-soc-wm5110
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-wm8994
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-of
+snd-sof-pci
+snd-sonicvibes
+snd-trident
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+sni_ave
+snic
+snps_udc_core
+snps_udc_plat
+socinfo
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundwire-bus
+sp2
+sp805_wdt
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-armada-3700
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-geni-qcom
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-meson-spicc
+spi-meson-spifc
+spi-mt65xx
+spi-mxic
+spi-nor
+spi-npcm-fiu
+spi-npcm-pspi
+spi-nxp-fspi
+spi-oc-tiny
+spi-orion
+spi-pl022
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-qcom-qspi
+spi-qup
+spi-rockchip
+spi-rspi
+spi-s3c64xx
+spi-sc18is602
+spi-sh-hspi
+spi-sh-msiof
+spi-sifive
+spi-slave-mt27xx
+spi-slave-system-control
+spi-slave-time
+spi-ti-qspi
+spi-tle62x0
+spi-uniphier
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spmi
+spmi-pmic-arb
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssbi
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-asc
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm-drm
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-pci
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_gt
+synclinkmp
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tee
+tef6862
+tehuti
+teranetics
+test-kprobes
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-cal
+ti-csc
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-sc
+ti-sn65dsi86
+ti-soc-thermal
+ti-tfp410
+ti-tlc4541
+ti-vpdma
+ti-vpe
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_edac
+ti_hecc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+tilcdc
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc
+tmio_mmc_core
+tmio_nand
+tmiofb
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_ftpm_tee
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+turingcc-qcs404
+turris-mox-rwtm
+tusb6010
+tvaudio
+tve200_drm
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_ccg
+uda1342
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufs-hisi
+ufs-mediatek
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+uniphier-mdmac
+uniphier-regulator
+uniphier-sd
+uniphier_thermal
+uniphier_wdt
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-dmac
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+ves1820
+ves1x93
+veth
+vexpress-hwmon
+vexpress-regulator
+vexpress-spc-cpufreq
+vf610_adc
+vf610_dac
+vfio
+vfio-amba
+vfio-pci
+vfio-platform
+vfio-platform-amdxgbe
+vfio-platform-base
+vfio-platform-calxedaxgmac
+vfio_iommu_type1
+vfio_mdev
+vfio_virqfd
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videocc-sdm845
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_pvrdma
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmxnet3
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsp1
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wcn36xx
+wcnss_ctrl
+wd719x
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgmac
+xhci-histb
+xhci-mtk
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xillybus_pcie
+xlnx_vcu
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yurex
+z3fold
+zaurus
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zx-tdm
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic-lpae.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic-lpae.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic.modules
@@ -0,0 +1,5942 @@
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_dw
+8250_exar
+8250_men_mcb
+8250_omap
+8250_uniphier
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+a53-pll
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes-arm
+aes-arm-bs
+aes-arm-ce
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+afs
+ah4
+ah6
+ahci
+ahci_ceva
+ahci_dm816
+ahci_mtk
+ahci_mvebu
+ahci_qoriq
+ahci_tegra
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am35x
+am53c974
+amba-pl010
+ambakmi
+amc6821
+amd
+amd5536udc_pci
+amd8111e
+amdgpu
+amplc_dio200
+amplc_dio200_common
+amplc_dio200_pci
+amplc_pc236
+amplc_pc236_common
+amplc_pc263
+amplc_pci224
+amplc_pci230
+amplc_pci236
+amplc_pci263
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+analogix_dp
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+ao-cec
+ao-cec-g12a
+aoe
+apbps2
+apcs-msm8916
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+applicom
+apr
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_emac
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arm_big_little
+arm_mhu
+arm_scpi
+armada
+armada-37xx-cpufreq
+armada-37xx-rwtm-mailbox
+armada-8k-cpufreq
+armada_37xx_wdt
+arp_tables
+arpt_mangle
+arptable_filter
+artpec6_crypto
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-lpc-ctrl
+aspeed-lpc-snoop
+aspeed-p2a-ctrl
+aspeed-pwm-tacho
+aspeed-smc
+aspeed-vhub
+aspeed-video
+aspeed_adc
+aspeed_gfx
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_snoc
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-hlcdc-dc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796
+ax88796b
+axg-audio
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bL_switcher_dummy_if
+bam_dma
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bcm-keypad
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm47xxsflash
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm63138_nand
+bcm6368_nand
+bcm63xx_uart
+bcm7xxx
+bcm87xx
+bcma
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+berlin2-adc
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bochs-drm
+bonding
+bpa10x
+bpck
+bpck6
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmnand
+brcmsmac
+brcmstb_nand
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bt-bmc
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btqcomsmd
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+ca8210
+caam
+caam_jr
+caamalg_desc
+caamhash_desc
+cachefiles
+cadence-quadspi
+cadence_wdt
+cafe_ccic
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camcc-sdm845
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+capsule-loader
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc10001_adc
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha-neon
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chnl_net
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+clk-bd718x7
+clk-cdce706
+clk-cdce925
+clk-cs2000-cp
+clk-exynos-audss
+clk-hi3519
+clk-hi655x
+clk-lochnagar
+clk-max77686
+clk-max9485
+clk-palmas
+clk-phase
+clk-pwm
+clk-qcom
+clk-rk808
+clk-rpm
+clk-s2mps11
+clk-scmi
+clk-scpi
+clk-si514
+clk-si5341
+clk-si5351
+clk-si544
+clk-si570
+clk-smd-rpm
+clk-spmi-pmic-div
+clk-twl6040
+clk-versaclock5
+clk-wm831x
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmt_speech
+cmtp
+cnic
+cobra
+coda
+coda-vpu
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+comm
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpcap-adc
+cpcap-battery
+cpcap-charger
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cppi41
+cramfs
+crc-itu-t
+crc32-arm-ce
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+crct10dif-arm-ce
+crg-hi3516cv300
+crg-hi3798cv200
+cros-ec-cec
+cros_ec
+cros_ec_accel_legacy
+cros_ec_baro
+cros_ec_chardev
+cros_ec_debugfs
+cros_ec_dev
+cros_ec_i2c
+cros_ec_keyb
+cros_ec_lid_angle
+cros_ec_light_prox
+cros_ec_lightbar
+cros_ec_rpmsg
+cros_ec_sensors
+cros_ec_sensors_core
+cros_ec_spi
+cros_ec_sysfs
+cros_ec_vbc
+cros_usbpd-charger
+cros_usbpd_logger
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_simd
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+cs89x0
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da8xx-fb
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+defxx
+denali
+denali_dt
+denali_pci
+des_generic
+designware_i2s
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dispcc-sdm845
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9000
+dm9601
+dmard06
+dmard09
+dmard10
+dme1737
+dmfe
+dmi-sysfs
+dmm32at
+dmx3191d
+dnet
+dove_thermal
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+dps310
+dpt_i2o
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_vram_helper
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw-mipi-dsi
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_hdmi-imx
+dw_mipi_dsi-stm
+dw_mmc
+dw_mmc-bluefield
+dw_mmc-exynos
+dw_mmc-hi3798cv200
+dw_mmc-k3
+dw_mmc-pci
+dw_mmc-pltfm
+dw_mmc-rockchip
+dw_wdt
+dwc-xlgmac
+dwc3
+dwc3-exynos
+dwc3-haps
+dwc3-meson-g12a
+dwc3-of-simple
+dwc3-omap
+dwc3-qcom
+dwmac-dwc-qos-eth
+dwmac-generic
+dwmac-ipq806x
+dwmac-mediatek
+dwmac-meson
+dwmac-meson8b
+dwmac-qcom-ethqos
+dwmac-rk
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efi-pstore
+efi_test
+efibc
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-mxc
+ehci-npcm7xx
+ehci-omap
+ehci-tegra
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emac_rockchip
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+emif
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+eni
+enic
+envelope-detector
+epat
+epia
+epic100
+eql
+erofs
+error
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+etnaviv
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-qcom-spmi-misc
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+extcon-usbc-cros-ec
+exynos-gsc
+exynos-lpass
+exynos-rng
+exynos-trng
+exynos_adc
+exynosdrm
+ezusb
+f2fs
+f71805f
+f71882fg
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+fastrpc
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fl512
+flexcan
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-ast-cf
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-dcu-drm
+fsl-edma
+fsl-edma-common
+fsl-mph-dr-of
+fsl-qdma
+fsl_imx8_ddr_perf
+fsl_linflexuart
+fsl_lpuart
+fsl_pq_mdio
+fsl_usb2_udc
+ftdi-elan
+ftdi_sio
+ftgmac100
+ftl
+ftm-quaddec
+ftmac100
+ftsteutates
+ftwdt010_wdt
+fujitsu_ts
+fusb300_udc
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_multi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gcc-apq8084
+gcc-ipq4019
+gcc-ipq806x
+gcc-ipq8074
+gcc-mdm9615
+gcc-msm8660
+gcc-msm8916
+gcc-msm8960
+gcc-msm8974
+gcc-msm8994
+gcc-msm8996
+gcc-msm8998
+gcc-qcs404
+gcc-sdm660
+gcc-sdm845
+gcc-sm8150
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+gf2k
+gfs2
+ghash-arm-ce
+gianfar_driver
+gigaset
+gl518sm
+gl520sm
+gl620a
+glink_ssr
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-arizona
+gpio-aspeed
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rcar
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-ts4800
+gpio-ts4900
+gpio-ucb1400
+gpio-uniphier
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpmi_nand
+gpu-sched
+gpucc-sdm845
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hclge
+hclgevf
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcd
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfpll
+hfs
+hfsplus
+hi311x
+hi3660-mailbox
+hi6210-i2s
+hi6220-mailbox
+hi6220_reset
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi655x-pmic
+hi655x-regulator
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-google-hammer
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hifn_795x
+highbank-cpufreq
+highbank_l2_edac
+highbank_mc_edac
+hih6130
+hip04_eth
+hisi-rng
+hisi-sfc
+hisi504_nand
+hisi_femac
+hisi_powerkey
+hisi_thermal
+hix5hd2_gmac
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hnae
+hnae3
+hns_dsaf
+hns_enet_drv
+hns_mdio
+hopper
+horus3a
+host1x
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hwa-hc
+hwa-rc
+hwmon-vid
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-aspeed
+i2c-cbus-gpio
+i2c-cros-ec-tunnel
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-emev2
+i2c-exynos5
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-hix5hd2
+i2c-i801
+i2c-imx-lpi2c
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-meson
+i2c-mt65xx
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-mv64xxx
+i2c-nforce2
+i2c-nomadik
+i2c-nvidia-gpu
+i2c-ocores
+i2c-owl
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-pxa
+i2c-qcom-geni
+i2c-qup
+i2c-rcar
+i2c-riic
+i2c-rk3x
+i2c-robotfuzz-osif
+i2c-sh_mobile
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-slave-eeprom
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tegra
+i2c-tegra-bpmp
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+icc-core
+icc-smd-rpm
+ice
+ice40-spi
+icp_multi
+icplus
+ics932s401
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+impa7
+ims-pcu
+imx-cpufreq-dt
+imx-dma
+imx-ipu-v3
+imx-ldb
+imx-mailbox
+imx-media-common
+imx-pxp
+imx-rngc
+imx-sdma
+imx-tve
+imx-vdoa
+imx21-hcd
+imx214
+imx258
+imx274
+imx2_wdt
+imx319
+imx355
+imx6-media
+imx6-media-csi
+imx6-mipi-csi2
+imx6q-cpufreq
+imx6ul_tsc
+imx7-media-csi
+imx7-mipi-csis
+imx7d_adc
+imx7ulp_wdt
+imx_keypad
+imx_rproc
+imx_sc_wdt
+imx_thermal
+imxdrm
+imxfb
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+iova
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmb_dev_int
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+iproc_nand
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-rx51
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+irq-ts4800
+irqbypass
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it87
+it913x
+itd1000
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+k3dma
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+kcs_bmc
+kcs_bmc_aspeed
+kcs_bmc_npcm7xx
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmx61
+kobil_sct
+komeda
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+kpss-xcc
+krait-cc
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcc-ipq806x
+lcc-mdm9615
+lcc-msm8960
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-ns2
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-pm8058
+leds-pwm
+leds-regulator
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lima
+lineage-pem
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+llcc-sdm845
+llcc-slice
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpasscc-sdm845
+lpc_ich
+lpc_sch
+lpddr2_nvm
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+macb
+macb_pci
+machxo2-spi
+macmodes
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mali-dp
+mantis
+mantis_core
+map_absent
+map_ram
+map_rom
+marvell
+marvell-cesa
+marvell10g
+marvell_nand
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcam-core
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mcde_drm
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+mdc800
+mdev
+mdio
+mdio-aspeed
+mdio-bcm-unimac
+mdio-bitbang
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-meson-g12a
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdt_loader
+me4000
+me_daq
+mediatek-cpufreq
+mediatek-drm
+mediatek-drm-hdmi
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+meson-canvas
+meson-drm
+meson-gx-mmc
+meson-gxl
+meson-ir
+meson-mx-sdio
+meson-rng
+meson-vdec
+meson_dw_hdmi
+meson_gxbb_wdt
+meson_nand
+meson_saradc
+meson_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+mii
+milbeaut_usio
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlx_wdt
+mlxfw
+mlxreg-fan
+mlxreg-hotplug
+mlxreg-io
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_spi
+mmcc-apq8084
+mmcc-msm8960
+mmcc-msm8974
+mmcc-msm8996
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6380-regulator
+mt6397
+mt6397-regulator
+mt6577_auxadc
+mt6797-mt6351
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt8183-da7219-max98357
+mt8183-mt6358-ts3a227-max98357
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd_dataflash
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-btcvsd
+mtk-cir
+mtk-cmdq-helper
+mtk-cmdq-mailbox
+mtk-cqdma
+mtk-crypto
+mtk-hsdma
+mtk-pmic-keys
+mtk-pmic-wrap
+mtk-quadspi
+mtk-rng
+mtk-sd
+mtk-uart-apdma
+mtk-vpu
+mtk_ecc
+mtk_nand
+mtk_thermal
+mtk_wdt
+mtouch
+mtu3
+multipath
+multiq3
+musb_am335x
+musb_dsps
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv643xx_eth
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvneta
+mvpp2
+mvsas
+mvsdio
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxc_nand
+mxc_w1
+mxcmmc
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxsfb
+mxuport
+myrb
+myri10ge
+myrs
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nbpfaxi
+nci
+nci_spi
+nci_uart
+nct6683
+nct6775
+nct7802
+nct7904
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+nhpoly1305-neon
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_labpc
+ni_labpc_common
+ni_labpc_pci
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicstar
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+nokia-modem
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+npcm_adc
+nps_enet
+ns558
+ns83820
+nsh
+nsp32
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nvec
+nvec_kbd
+nvec_paz00
+nvec_power
+nvec_ps2
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-imx-iim
+nvmem-imx-ocotp
+nvmem-imx-ocotp-scu
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmem-uniphier-efuse
+nvmem_meson_mx_efuse
+nvmem_qfprom
+nvmem_rockchip_efuse
+nvmem_snvs_lpgpr
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+of-fpga-region
+of_mmc_spi
+of_xilinx_wdt
+ofb
+ohci-platform
+omap
+omap-aes-driver
+omap-crypto
+omap-des
+omap-mailbox
+omap-ocp2scp
+omap-rng
+omap-sham
+omap-vout
+omap2
+omap2430
+omap2fb
+omap3-isp
+omap3-rom-rng
+omap4-iss
+omap4-keypad
+omap_hdq
+omap_hwspinlock
+omap_remoteproc
+omap_ssi
+omap_wdt
+omapdss
+omfs
+omninet
+on20
+on26
+onenand
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+optee
+optee-rng
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+orion_nand
+orion_wdt
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+owl-dma
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+panfrost
+parade-ps8622
+parallel-display
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_imx
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pbias-regulator
+pc300too
+pc87360
+pc87427
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcie-rockchip-host
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcwd_pci
+pcwd_usb
+pd
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-am335x
+phy-am335x-control
+phy-armada38x-comphy
+phy-bcm-kona-usb2
+phy-berlin-sata
+phy-berlin-usb
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-dm816x-usb
+phy-exynos-usb2
+phy-exynos5-usbdrd
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-gpio-vbus-usb
+phy-hix5hd2-sata
+phy-isp1301
+phy-mapphone-mdm6600
+phy-meson-g12a-usb2
+phy-meson-g12a-usb3-pcie
+phy-meson-gxl-usb2
+phy-meson-gxl-usb3
+phy-meson8b-usb2
+phy-mtk-tphy
+phy-mtk-ufs
+phy-mtk-xsphy
+phy-mvebu-a3700-comphy
+phy-mvebu-a3700-utmi
+phy-mvebu-cp110-comphy
+phy-ocelot-serdes
+phy-omap-control
+phy-omap-usb2
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-apq8064-sata
+phy-qcom-ipq806x-sata
+phy-qcom-pcie2
+phy-qcom-qmp
+phy-qcom-qusb2
+phy-qcom-ufs
+phy-qcom-ufs-qmp-14nm
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-rcar-gen2
+phy-rcar-gen3-pcie
+phy-rcar-gen3-usb2
+phy-rcar-gen3-usb3
+phy-rockchip-dp
+phy-rockchip-emmc
+phy-rockchip-inno-hdmi
+phy-rockchip-inno-usb2
+phy-rockchip-pcie
+phy-rockchip-typec
+phy-rockchip-usb
+phy-tahvo
+phy-tegra-usb
+phy-tegra-xusb
+phy-ti-pipe3
+phy-tusb1210
+phy-twl4030-usb
+phy-twl6030-usb
+phy-uniphier-pcie
+phy-uniphier-usb2
+phy-uniphier-usb3hs
+phy-uniphier-usb3ss
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-apq8064
+pinctrl-apq8084
+pinctrl-axp209
+pinctrl-ipq4019
+pinctrl-ipq8064
+pinctrl-ipq8074
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-mdm9615
+pinctrl-msm8660
+pinctrl-msm8916
+pinctrl-msm8960
+pinctrl-msm8994
+pinctrl-msm8996
+pinctrl-msm8998
+pinctrl-msm8x74
+pinctrl-qcs404
+pinctrl-rk805
+pinctrl-sc7180
+pinctrl-sdm660
+pinctrl-sdm845
+pinctrl-sm8150
+pinctrl-spmi-gpio
+pinctrl-spmi-mpp
+pinctrl-ssbi-gpio
+pinctrl-ssbi-mpp
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl111_drm
+pl172
+pl2303
+pl330
+pl353-smc
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8916_wdt
+pm8941-pwrkey
+pm8941-wled
+pm8xxx-vibrator
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pmic8xxx-keypad
+pmic8xxx-pwrkey
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+poly1305_generic
+port100
+powermate
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+psmouse
+psnap
+psxpad-spi
+pt
+ptp-qoriq
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-atmel-hlcdc
+pwm-beeper
+pwm-berlin
+pwm-cros-ec
+pwm-fan
+pwm-fsl-ftm
+pwm-hibvt
+pwm-imx-tpm
+pwm-imx1
+pwm-imx27
+pwm-ir-tx
+pwm-lp3943
+pwm-mediatek
+pwm-meson
+pwm-mtk-disp
+pwm-omap-dmtimer
+pwm-pca9685
+pwm-rcar
+pwm-regulator
+pwm-renesas-tpu
+pwm-rockchip
+pwm-samsung
+pwm-tegra
+pwm-tiecap
+pwm-tiehrpwm
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa168_eth
+pxa27x_udc
+pxe1610
+pxrc
+q6adm
+q6afe
+q6afe-dai
+q6asm
+q6asm-dai
+q6core
+q6dsp-common
+q6routing
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-apcs-ipc-mailbox
+qcom-coincell
+qcom-cpufreq-hw
+qcom-emac
+qcom-geni-se
+qcom-pm8xxx
+qcom-pm8xxx-xoadc
+qcom-pon
+qcom-rng
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-pmic
+qcom-spmi-temp-alarm
+qcom-spmi-vadc
+qcom-vadc-common
+qcom-wdt
+qcom_aoss
+qcom_common
+qcom_edac
+qcom_geni_serial
+qcom_glink_native
+qcom_glink_rpm
+qcom_glink_smem
+qcom_gsbi
+qcom_hwspinlock
+qcom_nandc
+qcom_q6v5
+qcom_q6v5_adsp
+qcom_q6v5_mss
+qcom_q6v5_pas
+qcom_q6v5_wcss
+qcom_rpm
+qcom_rpm-regulator
+qcom_smbb
+qcom_smd
+qcom_smd-regulator
+qcom_spmi-regulator
+qcom_sysmon
+qcom_tsens
+qcrypto
+qcserial
+qed
+qede
+qedf
+qedi
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_helpers
+qmi_wwan
+qnoc-qcs404
+qnx4
+qnx6
+qoriq-cpufreq
+qoriq_thermal
+qrtr
+qrtr-smd
+qrtr-tun
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ravb
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar-csi2
+rcar-dmac
+rcar-du-drm
+rcar-fcp
+rcar-gyroadc
+rcar-vin
+rcar_can
+rcar_canfd
+rcar_drif
+rcar_dw_hdmi
+rcar_fdp1
+rcar_gen3_thermal
+rcar_jpu
+rcar_lvds
+rcar_thermal
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+regmap-ac97
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+renesas-ceu
+renesas_sdhi_core
+renesas_sdhi_internal_dmac
+renesas_sdhi_sys_dmac
+renesas_usb3
+renesas_usbhs
+renesas_wdt
+repaper
+reset-hi3660
+reset-meson-audio-arb
+reset-qcom-pdc
+reset-scmi
+reset-ti-syscon
+reset-uniphier
+reset-uniphier-glue
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk3399_dmc
+rk805-pwrkey
+rk808
+rk808-regulator
+rk_crypto
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rmobile-reset
+rmtfs_mem
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rockchip-dfi
+rockchip-io-domain
+rockchip-rga
+rockchip_saradc
+rockchip_thermal
+rockchipdrm
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+romfs
+rose
+rotary_encoder
+rp2
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-armada38x
+rtc-as3722
+rtc-aspeed
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cmos
+rtc-cpcap
+rtc-cros-ec
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-imx-sc
+rtc-imxdi
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-meson
+rtc-meson-vrtc
+rtc-msm6242
+rtc-mt6397
+rtc-mt7622
+rtc-mxc
+rtc-mxc_v2
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pm8xxx
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-sh
+rtc-snvs
+rtc-stk17ta8
+rtc-tegra
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+rza_wdt
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3c2410_wdt
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s5p-cec
+s5p-g2d
+s5p-jpeg
+s5p-mfc
+s5p-sss
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+sahara
+salsa20_generic
+samsung
+samsung-keypad
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_rcar
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sc92031
+sca3000
+sch5627
+sch5636
+sch56xx-common
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+sclk-div
+scmi-cpufreq
+scmi-hwmon
+scmi_pm_domain
+scpi-cpufreq
+scpi-hwmon
+scpi_pm_domain
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci-cadence
+sdhci-dove
+sdhci-msm
+sdhci-of-arasan
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-dwcmshc
+sdhci-of-esdhc
+sdhci-omap
+sdhci-pci
+sdhci-pxav3
+sdhci-s3c
+sdhci-tegra
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial-tegra
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_eth
+sh_mmcif
+sh_mobile_lcdcfb
+sh_veu
+sha1-arm
+sha1-arm-ce
+sha1-arm-neon
+sha2-arm-ce
+sha256-arm
+sha3_generic
+sha512-arm
+shark2
+sharpslpart
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slic_ds26522
+slicoss
+slim-qcom-ctrl
+slim-qcom-ngd-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc911x
+smc91x
+smc_diag
+smd-rpm
+smem
+smiapp
+smiapp-pll
+smipcie
+smm665
+smp2p
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsm
+smsmdtv
+smssdio
+smsusb
+snd-aaci
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-aloop
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-ens1370
+snd-ens1371
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hda-tegra
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-alc5632
+snd-soc-apq8016-sbc
+snd-soc-apq8096
+snd-soc-arizona
+snd-soc-armada-370-db
+snd-soc-arndale-rt5631
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-cpcap
+snd-soc-cros-ec-codec
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-davinci-mcasp
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-eukrea-tlv320
+snd-soc-fsi
+snd-soc-fsl-asoc-card
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-utils
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-i2s
+snd-soc-idma
+snd-soc-imx-audmix
+snd-soc-imx-es8328
+snd-soc-imx-mc13783
+snd-soc-imx-spdif
+snd-soc-imx-ssi
+snd-soc-inno-rk3036
+snd-soc-kirkwood
+snd-soc-lochnagar-sc
+snd-soc-lpass-apq8016
+snd-soc-lpass-cpu
+snd-soc-lpass-ipq806x
+snd-soc-lpass-platform
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98090
+snd-soc-max98095
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-mc13783
+snd-soc-meson-axg-fifo
+snd-soc-meson-axg-frddr
+snd-soc-meson-axg-pdm
+snd-soc-meson-axg-sound-card
+snd-soc-meson-axg-spdifin
+snd-soc-meson-axg-spdifout
+snd-soc-meson-axg-tdm-formatter
+snd-soc-meson-axg-tdm-interface
+snd-soc-meson-axg-tdmin
+snd-soc-meson-axg-tdmout
+snd-soc-meson-axg-toddr
+snd-soc-meson-g12a-tohdmitx
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-mt6797-afe
+snd-soc-mt8183-afe
+snd-soc-mtk-common
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-odroid
+snd-soc-omap-abe-twl6040
+snd-soc-omap-dmic
+snd-soc-omap-mcbsp
+snd-soc-omap-mcpdm
+snd-soc-omap-twl4030
+snd-soc-omap3pandora
+snd-soc-pcm
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-qcom-common
+snd-soc-rcar
+snd-soc-rk3288-hdmi-analog
+snd-soc-rk3328
+snd-soc-rk3399-gru-sound
+snd-soc-rl6231
+snd-soc-rockchip-i2s
+snd-soc-rockchip-max98090
+snd-soc-rockchip-pcm
+snd-soc-rockchip-pdm
+snd-soc-rockchip-rt5645
+snd-soc-rockchip-spdif
+snd-soc-rt5514
+snd-soc-rt5514-spi
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5640
+snd-soc-rt5645
+snd-soc-rt5663
+snd-soc-rt5677
+snd-soc-rt5677-spi
+snd-soc-rx51
+snd-soc-s3c-dma
+snd-soc-samsung-spdif
+snd-soc-sdm845
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-smdk-spdif
+snd-soc-smdk-wm8994
+snd-soc-smdk-wm8994pcm
+snd-soc-snow
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-storm
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tegra-alc5632
+snd-soc-tegra-max98090
+snd-soc-tegra-pcm
+snd-soc-tegra-rt5640
+snd-soc-tegra-rt5677
+snd-soc-tegra-sgtl5000
+snd-soc-tegra-trimslice
+snd-soc-tegra-utils
+snd-soc-tegra-wm8753
+snd-soc-tegra-wm8903
+snd-soc-tegra-wm9712
+snd-soc-tegra20-ac97
+snd-soc-tegra20-das
+snd-soc-tegra20-i2s
+snd-soc-tegra20-spdif
+snd-soc-tegra30-ahub
+snd-soc-tegra30-i2s
+snd-soc-tfa9879
+snd-soc-ti-edma
+snd-soc-ti-sdma
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic32x4
+snd-soc-tlv320aic32x4-i2c
+snd-soc-tlv320aic32x4-spi
+snd-soc-tlv320aic3x
+snd-soc-tm2-wm5110
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda1334
+snd-soc-uniphier-aio-cpu
+snd-soc-uniphier-aio-ld11
+snd-soc-uniphier-aio-pxs2
+snd-soc-uniphier-evea
+snd-soc-wcd9335
+snd-soc-wm-adsp
+snd-soc-wm-hubs
+snd-soc-wm5110
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-wm8994
+snd-soc-wm9712
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-of
+snd-sof-pci
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-variax
+snd-usbmidi-lib
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+sni_ave
+snic
+snps_udc_core
+snps_udc_plat
+snvs_pwrkey
+socinfo
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundwire-bus
+sp2
+sp805_wdt
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-armada-3700
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-fsl-dspi
+spi-fsl-lpspi
+spi-fsl-qspi
+spi-geni-qcom
+spi-gpio
+spi-imx
+spi-lm70llp
+spi-loopback-test
+spi-meson-spicc
+spi-meson-spifc
+spi-mt65xx
+spi-mxic
+spi-nor
+spi-npcm-fiu
+spi-npcm-pspi
+spi-nxp-fspi
+spi-oc-tiny
+spi-orion
+spi-pl022
+spi-pxa2xx-pci
+spi-pxa2xx-platform
+spi-qcom-qspi
+spi-qup
+spi-rockchip
+spi-rspi
+spi-s3c64xx
+spi-sc18is602
+spi-sh-hspi
+spi-sh-msiof
+spi-sifive
+spi-slave-mt27xx
+spi-slave-system-control
+spi-slave-time
+spi-tegra114
+spi-tegra20-sflash
+spi-tegra20-slink
+spi-ti-qspi
+spi-tle62x0
+spi-uniphier
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spmi
+spmi-pmic-arb
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssbi
+ssd1307fb
+ssfdc
+ssi_protocol
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-asc
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm-drm
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-pci
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink_gt
+synclinkmp
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tee
+tef6862
+tegra-bpmp-thermal
+tegra-drm
+tegra-gmi
+tegra-kbc
+tegra-tcu
+tegra-vde
+tegra186-cpufreq
+tegra20-devfreq
+tegra30-devfreq
+tegra_cec
+tegra_nand
+tegra_wdt
+tehuti
+teranetics
+test-kprobes
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-cal
+ti-csc
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-emif-sram
+ti-lmu
+ti-sc
+ti-sn65dsi86
+ti-soc-thermal
+ti-tfp410
+ti-tlc4541
+ti-vpdma
+ti-vpe
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_davinci_emac
+ti_edac
+ti_hecc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+tilcdc
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmio_mmc
+tmio_mmc_core
+tmio_nand
+tmiofb
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_ftpm_tee
+tpm_i2c_atmel
+tpm_i2c_infineon
+tpm_i2c_nuvoton
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65217_bl
+tps65217_charger
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts4800-ts
+ts4800_wdt
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsi721_mport
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+turingcc-qcs404
+turris-mox-rwtm
+tusb6010
+tvaudio
+tve200_drm
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_ccg
+uda1342
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufs-hisi
+ufs-mediatek
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+uniphier-mdmac
+uniphier-regulator
+uniphier-sd
+uniphier_thermal
+uniphier_wdt
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-dmac
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+ves1820
+ves1x93
+veth
+vexpress-hwmon
+vexpress-regulator
+vexpress-spc-cpufreq
+vf610_adc
+vf610_dac
+vfio
+vfio-amba
+vfio-pci
+vfio-platform
+vfio-platform-amdxgbe
+vfio-platform-base
+vfio-platform-calxedaxgmac
+vfio_iommu_type1
+vfio_mdev
+vfio_virqfd
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videocc-sdm845
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_pvrdma
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmxnet3
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsp1
+vsxxxaa
+vt1211
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83627ehf
+w83627hf
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wcn36xx
+wcnss_ctrl
+wd719x
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+wire
+wireguard
+wishbone-serial
+wkup_m3_rproc
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xgmac
+xhci-histb
+xhci-mtk
+xhci-plat-hcd
+xhci-tegra
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_emac
+xilinx_gmii2rgmii
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xillybus_pcie
+xlnx_vcu
+xor
+xor-neon
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yurex
+z3fold
+zaurus
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zx-tdm
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/armhf/generic.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/armhf/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/fwinfo
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/fwinfo
@@ -0,0 +1,1602 @@
+firmware:       3826.arm
+firmware:       3com/typhoon.bin
+firmware:       6fire/dmx6fireap.ihx
+firmware:       6fire/dmx6firecf.bin
+firmware:       6fire/dmx6firel2.ihx
+firmware:       BCM2033-FW.bin
+firmware:       BCM2033-MD.hex
+firmware:       BT3CPCC.bin
+firmware:       RTL8192E/boot.img
+firmware:       RTL8192E/data.img
+firmware:       RTL8192E/main.img
+firmware:       RTL8192U/boot.img
+firmware:       RTL8192U/data.img
+firmware:       RTL8192U/main.img
+firmware:       acenic/tg1.bin
+firmware:       acenic/tg2.bin
+firmware:       adaptec/starfire_rx.bin
+firmware:       adaptec/starfire_tx.bin
+firmware:       advansys/3550.bin
+firmware:       advansys/38C0800.bin
+firmware:       advansys/38C1600.bin
+firmware:       advansys/mcode.bin
+firmware:       agere_ap_fw.bin
+firmware:       agere_sta_fw.bin
+firmware:       aic94xx-seq.fw
+firmware:       amd/amd_sev_fam17h_model0xh.sbin
+firmware:       amd/amd_sev_fam17h_model3xh.sbin
+firmware:       amd/amd_sev_fam19h_model0xh.sbin
+firmware:       amdgpu/banks_k_2_smc.bin
+firmware:       amdgpu/bonaire_ce.bin
+firmware:       amdgpu/bonaire_k_smc.bin
+firmware:       amdgpu/bonaire_mc.bin
+firmware:       amdgpu/bonaire_me.bin
+firmware:       amdgpu/bonaire_mec.bin
+firmware:       amdgpu/bonaire_pfp.bin
+firmware:       amdgpu/bonaire_rlc.bin
+firmware:       amdgpu/bonaire_sdma.bin
+firmware:       amdgpu/bonaire_sdma1.bin
+firmware:       amdgpu/bonaire_smc.bin
+firmware:       amdgpu/bonaire_uvd.bin
+firmware:       amdgpu/bonaire_vce.bin
+firmware:       amdgpu/carrizo_ce.bin
+firmware:       amdgpu/carrizo_me.bin
+firmware:       amdgpu/carrizo_mec.bin
+firmware:       amdgpu/carrizo_mec2.bin
+firmware:       amdgpu/carrizo_pfp.bin
+firmware:       amdgpu/carrizo_rlc.bin
+firmware:       amdgpu/carrizo_sdma.bin
+firmware:       amdgpu/carrizo_sdma1.bin
+firmware:       amdgpu/carrizo_uvd.bin
+firmware:       amdgpu/carrizo_vce.bin
+firmware:       amdgpu/fiji_ce.bin
+firmware:       amdgpu/fiji_me.bin
+firmware:       amdgpu/fiji_mec.bin
+firmware:       amdgpu/fiji_mec2.bin
+firmware:       amdgpu/fiji_pfp.bin
+firmware:       amdgpu/fiji_rlc.bin
+firmware:       amdgpu/fiji_sdma.bin
+firmware:       amdgpu/fiji_sdma1.bin
+firmware:       amdgpu/fiji_smc.bin
+firmware:       amdgpu/fiji_uvd.bin
+firmware:       amdgpu/fiji_vce.bin
+firmware:       amdgpu/hainan_ce.bin
+firmware:       amdgpu/hainan_k_smc.bin
+firmware:       amdgpu/hainan_mc.bin
+firmware:       amdgpu/hainan_me.bin
+firmware:       amdgpu/hainan_pfp.bin
+firmware:       amdgpu/hainan_rlc.bin
+firmware:       amdgpu/hainan_smc.bin
+firmware:       amdgpu/hawaii_ce.bin
+firmware:       amdgpu/hawaii_k_smc.bin
+firmware:       amdgpu/hawaii_mc.bin
+firmware:       amdgpu/hawaii_me.bin
+firmware:       amdgpu/hawaii_mec.bin
+firmware:       amdgpu/hawaii_pfp.bin
+firmware:       amdgpu/hawaii_rlc.bin
+firmware:       amdgpu/hawaii_sdma.bin
+firmware:       amdgpu/hawaii_sdma1.bin
+firmware:       amdgpu/hawaii_smc.bin
+firmware:       amdgpu/hawaii_uvd.bin
+firmware:       amdgpu/hawaii_vce.bin
+firmware:       amdgpu/kabini_ce.bin
+firmware:       amdgpu/kabini_me.bin
+firmware:       amdgpu/kabini_mec.bin
+firmware:       amdgpu/kabini_pfp.bin
+firmware:       amdgpu/kabini_rlc.bin
+firmware:       amdgpu/kabini_sdma.bin
+firmware:       amdgpu/kabini_sdma1.bin
+firmware:       amdgpu/kabini_uvd.bin
+firmware:       amdgpu/kabini_vce.bin
+firmware:       amdgpu/kaveri_ce.bin
+firmware:       amdgpu/kaveri_me.bin
+firmware:       amdgpu/kaveri_mec.bin
+firmware:       amdgpu/kaveri_mec2.bin
+firmware:       amdgpu/kaveri_pfp.bin
+firmware:       amdgpu/kaveri_rlc.bin
+firmware:       amdgpu/kaveri_sdma.bin
+firmware:       amdgpu/kaveri_sdma1.bin
+firmware:       amdgpu/kaveri_uvd.bin
+firmware:       amdgpu/kaveri_vce.bin
+firmware:       amdgpu/mullins_ce.bin
+firmware:       amdgpu/mullins_me.bin
+firmware:       amdgpu/mullins_mec.bin
+firmware:       amdgpu/mullins_pfp.bin
+firmware:       amdgpu/mullins_rlc.bin
+firmware:       amdgpu/mullins_sdma.bin
+firmware:       amdgpu/mullins_sdma1.bin
+firmware:       amdgpu/mullins_uvd.bin
+firmware:       amdgpu/mullins_vce.bin
+firmware:       amdgpu/navi10_asd.bin
+firmware:       amdgpu/navi10_ce.bin
+firmware:       amdgpu/navi10_gpu_info.bin
+firmware:       amdgpu/navi10_me.bin
+firmware:       amdgpu/navi10_mec.bin
+firmware:       amdgpu/navi10_mec2.bin
+firmware:       amdgpu/navi10_pfp.bin
+firmware:       amdgpu/navi10_rlc.bin
+firmware:       amdgpu/navi10_sdma.bin
+firmware:       amdgpu/navi10_sdma1.bin
+firmware:       amdgpu/navi10_smc.bin
+firmware:       amdgpu/navi10_sos.bin
+firmware:       amdgpu/navi10_vcn.bin
+firmware:       amdgpu/navi14_asd.bin
+firmware:       amdgpu/navi14_ce.bin
+firmware:       amdgpu/navi14_ce_wks.bin
+firmware:       amdgpu/navi14_gpu_info.bin
+firmware:       amdgpu/navi14_me.bin
+firmware:       amdgpu/navi14_me_wks.bin
+firmware:       amdgpu/navi14_mec.bin
+firmware:       amdgpu/navi14_mec2.bin
+firmware:       amdgpu/navi14_mec2_wks.bin
+firmware:       amdgpu/navi14_mec_wks.bin
+firmware:       amdgpu/navi14_pfp.bin
+firmware:       amdgpu/navi14_pfp_wks.bin
+firmware:       amdgpu/navi14_rlc.bin
+firmware:       amdgpu/navi14_sdma.bin
+firmware:       amdgpu/navi14_sdma1.bin
+firmware:       amdgpu/navi14_smc.bin
+firmware:       amdgpu/navi14_sos.bin
+firmware:       amdgpu/navi14_vcn.bin
+firmware:       amdgpu/oland_ce.bin
+firmware:       amdgpu/oland_k_smc.bin
+firmware:       amdgpu/oland_mc.bin
+firmware:       amdgpu/oland_me.bin
+firmware:       amdgpu/oland_pfp.bin
+firmware:       amdgpu/oland_rlc.bin
+firmware:       amdgpu/oland_smc.bin
+firmware:       amdgpu/picasso_asd.bin
+firmware:       amdgpu/picasso_ce.bin
+firmware:       amdgpu/picasso_gpu_info.bin
+firmware:       amdgpu/picasso_me.bin
+firmware:       amdgpu/picasso_mec.bin
+firmware:       amdgpu/picasso_mec2.bin
+firmware:       amdgpu/picasso_pfp.bin
+firmware:       amdgpu/picasso_rlc.bin
+firmware:       amdgpu/picasso_rlc_am4.bin
+firmware:       amdgpu/picasso_sdma.bin
+firmware:       amdgpu/picasso_vcn.bin
+firmware:       amdgpu/pitcairn_ce.bin
+firmware:       amdgpu/pitcairn_k_smc.bin
+firmware:       amdgpu/pitcairn_mc.bin
+firmware:       amdgpu/pitcairn_me.bin
+firmware:       amdgpu/pitcairn_pfp.bin
+firmware:       amdgpu/pitcairn_rlc.bin
+firmware:       amdgpu/pitcairn_smc.bin
+firmware:       amdgpu/polaris10_ce.bin
+firmware:       amdgpu/polaris10_ce_2.bin
+firmware:       amdgpu/polaris10_k2_smc.bin
+firmware:       amdgpu/polaris10_k_mc.bin
+firmware:       amdgpu/polaris10_k_smc.bin
+firmware:       amdgpu/polaris10_mc.bin
+firmware:       amdgpu/polaris10_me.bin
+firmware:       amdgpu/polaris10_me_2.bin
+firmware:       amdgpu/polaris10_mec.bin
+firmware:       amdgpu/polaris10_mec2.bin
+firmware:       amdgpu/polaris10_mec2_2.bin
+firmware:       amdgpu/polaris10_mec_2.bin
+firmware:       amdgpu/polaris10_pfp.bin
+firmware:       amdgpu/polaris10_pfp_2.bin
+firmware:       amdgpu/polaris10_rlc.bin
+firmware:       amdgpu/polaris10_sdma.bin
+firmware:       amdgpu/polaris10_sdma1.bin
+firmware:       amdgpu/polaris10_smc.bin
+firmware:       amdgpu/polaris10_smc_sk.bin
+firmware:       amdgpu/polaris10_uvd.bin
+firmware:       amdgpu/polaris10_vce.bin
+firmware:       amdgpu/polaris11_ce.bin
+firmware:       amdgpu/polaris11_ce_2.bin
+firmware:       amdgpu/polaris11_k2_smc.bin
+firmware:       amdgpu/polaris11_k_mc.bin
+firmware:       amdgpu/polaris11_k_smc.bin
+firmware:       amdgpu/polaris11_mc.bin
+firmware:       amdgpu/polaris11_me.bin
+firmware:       amdgpu/polaris11_me_2.bin
+firmware:       amdgpu/polaris11_mec.bin
+firmware:       amdgpu/polaris11_mec2.bin
+firmware:       amdgpu/polaris11_mec2_2.bin
+firmware:       amdgpu/polaris11_mec_2.bin
+firmware:       amdgpu/polaris11_pfp.bin
+firmware:       amdgpu/polaris11_pfp_2.bin
+firmware:       amdgpu/polaris11_rlc.bin
+firmware:       amdgpu/polaris11_sdma.bin
+firmware:       amdgpu/polaris11_sdma1.bin
+firmware:       amdgpu/polaris11_smc.bin
+firmware:       amdgpu/polaris11_smc_sk.bin
+firmware:       amdgpu/polaris11_uvd.bin
+firmware:       amdgpu/polaris11_vce.bin
+firmware:       amdgpu/polaris12_ce.bin
+firmware:       amdgpu/polaris12_ce_2.bin
+firmware:       amdgpu/polaris12_k_mc.bin
+firmware:       amdgpu/polaris12_k_smc.bin
+firmware:       amdgpu/polaris12_mc.bin
+firmware:       amdgpu/polaris12_me.bin
+firmware:       amdgpu/polaris12_me_2.bin
+firmware:       amdgpu/polaris12_mec.bin
+firmware:       amdgpu/polaris12_mec2.bin
+firmware:       amdgpu/polaris12_mec2_2.bin
+firmware:       amdgpu/polaris12_mec_2.bin
+firmware:       amdgpu/polaris12_pfp.bin
+firmware:       amdgpu/polaris12_pfp_2.bin
+firmware:       amdgpu/polaris12_rlc.bin
+firmware:       amdgpu/polaris12_sdma.bin
+firmware:       amdgpu/polaris12_sdma1.bin
+firmware:       amdgpu/polaris12_smc.bin
+firmware:       amdgpu/polaris12_uvd.bin
+firmware:       amdgpu/polaris12_vce.bin
+firmware:       amdgpu/raven2_asd.bin
+firmware:       amdgpu/raven2_ce.bin
+firmware:       amdgpu/raven2_gpu_info.bin
+firmware:       amdgpu/raven2_me.bin
+firmware:       amdgpu/raven2_mec.bin
+firmware:       amdgpu/raven2_mec2.bin
+firmware:       amdgpu/raven2_pfp.bin
+firmware:       amdgpu/raven2_rlc.bin
+firmware:       amdgpu/raven2_sdma.bin
+firmware:       amdgpu/raven2_vcn.bin
+firmware:       amdgpu/raven_asd.bin
+firmware:       amdgpu/raven_ce.bin
+firmware:       amdgpu/raven_dmcu.bin
+firmware:       amdgpu/raven_gpu_info.bin
+firmware:       amdgpu/raven_kicker_rlc.bin
+firmware:       amdgpu/raven_me.bin
+firmware:       amdgpu/raven_mec.bin
+firmware:       amdgpu/raven_mec2.bin
+firmware:       amdgpu/raven_pfp.bin
+firmware:       amdgpu/raven_rlc.bin
+firmware:       amdgpu/raven_sdma.bin
+firmware:       amdgpu/raven_vcn.bin
+firmware:       amdgpu/renoir_asd.bin
+firmware:       amdgpu/renoir_ce.bin
+firmware:       amdgpu/renoir_gpu_info.bin
+firmware:       amdgpu/renoir_me.bin
+firmware:       amdgpu/renoir_mec.bin
+firmware:       amdgpu/renoir_mec2.bin
+firmware:       amdgpu/renoir_pfp.bin
+firmware:       amdgpu/renoir_rlc.bin
+firmware:       amdgpu/renoir_sdma.bin
+firmware:       amdgpu/renoir_vcn.bin
+firmware:       amdgpu/si58_mc.bin
+firmware:       amdgpu/stoney_ce.bin
+firmware:       amdgpu/stoney_me.bin
+firmware:       amdgpu/stoney_mec.bin
+firmware:       amdgpu/stoney_pfp.bin
+firmware:       amdgpu/stoney_rlc.bin
+firmware:       amdgpu/stoney_sdma.bin
+firmware:       amdgpu/stoney_uvd.bin
+firmware:       amdgpu/stoney_vce.bin
+firmware:       amdgpu/tahiti_ce.bin
+firmware:       amdgpu/tahiti_mc.bin
+firmware:       amdgpu/tahiti_me.bin
+firmware:       amdgpu/tahiti_pfp.bin
+firmware:       amdgpu/tahiti_rlc.bin
+firmware:       amdgpu/tahiti_smc.bin
+firmware:       amdgpu/tonga_ce.bin
+firmware:       amdgpu/tonga_k_smc.bin
+firmware:       amdgpu/tonga_mc.bin
+firmware:       amdgpu/tonga_me.bin
+firmware:       amdgpu/tonga_mec.bin
+firmware:       amdgpu/tonga_mec2.bin
+firmware:       amdgpu/tonga_pfp.bin
+firmware:       amdgpu/tonga_rlc.bin
+firmware:       amdgpu/tonga_sdma.bin
+firmware:       amdgpu/tonga_sdma1.bin
+firmware:       amdgpu/tonga_smc.bin
+firmware:       amdgpu/tonga_uvd.bin
+firmware:       amdgpu/tonga_vce.bin
+firmware:       amdgpu/topaz_ce.bin
+firmware:       amdgpu/topaz_k_smc.bin
+firmware:       amdgpu/topaz_mc.bin
+firmware:       amdgpu/topaz_me.bin
+firmware:       amdgpu/topaz_mec.bin
+firmware:       amdgpu/topaz_pfp.bin
+firmware:       amdgpu/topaz_rlc.bin
+firmware:       amdgpu/topaz_sdma.bin
+firmware:       amdgpu/topaz_sdma1.bin
+firmware:       amdgpu/topaz_smc.bin
+firmware:       amdgpu/vega10_acg_smc.bin
+firmware:       amdgpu/vega10_asd.bin
+firmware:       amdgpu/vega10_ce.bin
+firmware:       amdgpu/vega10_gpu_info.bin
+firmware:       amdgpu/vega10_me.bin
+firmware:       amdgpu/vega10_mec.bin
+firmware:       amdgpu/vega10_mec2.bin
+firmware:       amdgpu/vega10_pfp.bin
+firmware:       amdgpu/vega10_rlc.bin
+firmware:       amdgpu/vega10_sdma.bin
+firmware:       amdgpu/vega10_sdma1.bin
+firmware:       amdgpu/vega10_smc.bin
+firmware:       amdgpu/vega10_sos.bin
+firmware:       amdgpu/vega10_uvd.bin
+firmware:       amdgpu/vega10_vce.bin
+firmware:       amdgpu/vega12_asd.bin
+firmware:       amdgpu/vega12_ce.bin
+firmware:       amdgpu/vega12_gpu_info.bin
+firmware:       amdgpu/vega12_me.bin
+firmware:       amdgpu/vega12_mec.bin
+firmware:       amdgpu/vega12_mec2.bin
+firmware:       amdgpu/vega12_pfp.bin
+firmware:       amdgpu/vega12_rlc.bin
+firmware:       amdgpu/vega12_sdma.bin
+firmware:       amdgpu/vega12_sdma1.bin
+firmware:       amdgpu/vega12_smc.bin
+firmware:       amdgpu/vega12_sos.bin
+firmware:       amdgpu/vega12_uvd.bin
+firmware:       amdgpu/vega12_vce.bin
+firmware:       amdgpu/vega20_asd.bin
+firmware:       amdgpu/vega20_ce.bin
+firmware:       amdgpu/vega20_me.bin
+firmware:       amdgpu/vega20_mec.bin
+firmware:       amdgpu/vega20_mec2.bin
+firmware:       amdgpu/vega20_pfp.bin
+firmware:       amdgpu/vega20_rlc.bin
+firmware:       amdgpu/vega20_sdma.bin
+firmware:       amdgpu/vega20_sdma1.bin
+firmware:       amdgpu/vega20_smc.bin
+firmware:       amdgpu/vega20_sos.bin
+firmware:       amdgpu/vega20_uvd.bin
+firmware:       amdgpu/vega20_vce.bin
+firmware:       amdgpu/vegam_ce.bin
+firmware:       amdgpu/vegam_me.bin
+firmware:       amdgpu/vegam_mec.bin
+firmware:       amdgpu/vegam_mec2.bin
+firmware:       amdgpu/vegam_pfp.bin
+firmware:       amdgpu/vegam_rlc.bin
+firmware:       amdgpu/vegam_sdma.bin
+firmware:       amdgpu/vegam_sdma1.bin
+firmware:       amdgpu/vegam_smc.bin
+firmware:       amdgpu/vegam_uvd.bin
+firmware:       amdgpu/vegam_vce.bin
+firmware:       amdgpu/verde_ce.bin
+firmware:       amdgpu/verde_k_smc.bin
+firmware:       amdgpu/verde_mc.bin
+firmware:       amdgpu/verde_me.bin
+firmware:       amdgpu/verde_pfp.bin
+firmware:       amdgpu/verde_rlc.bin
+firmware:       amdgpu/verde_smc.bin
+firmware:       ar5523.bin
+firmware:       asihpi/dsp5000.bin
+firmware:       asihpi/dsp6200.bin
+firmware:       asihpi/dsp6205.bin
+firmware:       asihpi/dsp6400.bin
+firmware:       asihpi/dsp6600.bin
+firmware:       asihpi/dsp8700.bin
+firmware:       asihpi/dsp8900.bin
+firmware:       ast_dp501_fw.bin
+firmware:       ath10k/QCA6174/hw2.1/board-2.bin
+firmware:       ath10k/QCA6174/hw2.1/board.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-4.bin
+firmware:       ath10k/QCA6174/hw2.1/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/board-2.bin
+firmware:       ath10k/QCA6174/hw3.0/board.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-4.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-5.bin
+firmware:       ath10k/QCA6174/hw3.0/firmware-6.bin
+firmware:       ath10k/QCA9377/hw1.0/board.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA9377/hw1.0/firmware-6.bin
+firmware:       ath10k/QCA9887/hw1.0/board-2.bin
+firmware:       ath10k/QCA9887/hw1.0/board.bin
+firmware:       ath10k/QCA9887/hw1.0/firmware-5.bin
+firmware:       ath10k/QCA988X/hw2.0/board-2.bin
+firmware:       ath10k/QCA988X/hw2.0/board.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-2.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-3.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-4.bin
+firmware:       ath10k/QCA988X/hw2.0/firmware-5.bin
+firmware:       ath3k-1.fw
+firmware:       ath6k/AR6003/hw2.0/athwlan.bin.z77
+firmware:       ath6k/AR6003/hw2.0/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.0/bdata.bin
+firmware:       ath6k/AR6003/hw2.0/data.patch.bin
+firmware:       ath6k/AR6003/hw2.0/otp.bin.z77
+firmware:       ath6k/AR6003/hw2.1.1/athwlan.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.SD31.bin
+firmware:       ath6k/AR6003/hw2.1.1/bdata.bin
+firmware:       ath6k/AR6003/hw2.1.1/data.patch.bin
+firmware:       ath6k/AR6003/hw2.1.1/otp.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.0/bdata.bin
+firmware:       ath6k/AR6004/hw1.0/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.DB132.bin
+firmware:       ath6k/AR6004/hw1.1/bdata.bin
+firmware:       ath6k/AR6004/hw1.1/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.2/bdata.bin
+firmware:       ath6k/AR6004/hw1.2/fw.ram.bin
+firmware:       ath6k/AR6004/hw1.3/bdata.bin
+firmware:       ath6k/AR6004/hw1.3/fw.ram.bin
+firmware:       ath9k_htc/htc_7010-1.4.0.fw
+firmware:       ath9k_htc/htc_9271-1.4.0.fw
+firmware:       atmel_at76c502-wpa.bin
+firmware:       atmel_at76c502.bin
+firmware:       atmel_at76c502_3com-wpa.bin
+firmware:       atmel_at76c502_3com.bin
+firmware:       atmel_at76c502d-wpa.bin
+firmware:       atmel_at76c502d.bin
+firmware:       atmel_at76c502e-wpa.bin
+firmware:       atmel_at76c502e.bin
+firmware:       atmel_at76c503-i3861.bin
+firmware:       atmel_at76c503-i3863.bin
+firmware:       atmel_at76c503-rfmd-acc.bin
+firmware:       atmel_at76c503-rfmd.bin
+firmware:       atmel_at76c504-wpa.bin
+firmware:       atmel_at76c504.bin
+firmware:       atmel_at76c504_2958-wpa.bin
+firmware:       atmel_at76c504_2958.bin
+firmware:       atmel_at76c504a_2958-wpa.bin
+firmware:       atmel_at76c504a_2958.bin
+firmware:       atmel_at76c505-rfmd.bin
+firmware:       atmel_at76c505-rfmd2958.bin
+firmware:       atmel_at76c505a-rfmd2958.bin
+firmware:       atmel_at76c505amx-rfmd.bin
+firmware:       atmel_at76c506-wpa.bin
+firmware:       atmel_at76c506.bin
+firmware:       atmsar11.fw
+firmware:       atsc_denver.inp
+firmware:       av7110/bootcode.bin
+firmware:       b43/ucode11.fw
+firmware:       b43/ucode13.fw
+firmware:       b43/ucode14.fw
+firmware:       b43/ucode15.fw
+firmware:       b43/ucode16_lp.fw
+firmware:       b43/ucode16_mimo.fw
+firmware:       b43/ucode24_lcn.fw
+firmware:       b43/ucode25_lcn.fw
+firmware:       b43/ucode25_mimo.fw
+firmware:       b43/ucode26_mimo.fw
+firmware:       b43/ucode29_mimo.fw
+firmware:       b43/ucode30_mimo.fw
+firmware:       b43/ucode33_lcn40.fw
+firmware:       b43/ucode40.fw
+firmware:       b43/ucode42.fw
+firmware:       b43/ucode5.fw
+firmware:       b43/ucode9.fw
+firmware:       b43legacy/ucode2.fw
+firmware:       b43legacy/ucode4.fw
+firmware:       bfubase.frm
+firmware:       bnx2/bnx2-mips-06-6.2.3.fw
+firmware:       bnx2/bnx2-mips-09-6.2.1b.fw
+firmware:       bnx2/bnx2-rv2p-06-6.0.15.fw
+firmware:       bnx2/bnx2-rv2p-09-6.0.17.fw
+firmware:       bnx2/bnx2-rv2p-09ax-6.0.17.fw
+firmware:       bnx2x/bnx2x-e1-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e1h-7.13.11.0.fw
+firmware:       bnx2x/bnx2x-e2-7.13.11.0.fw
+firmware:       brcm/bcm43xx-0.fw
+firmware:       brcm/bcm43xx_hdr-0.fw
+firmware:       brcm/brcmfmac43012-sdio.bin
+firmware:       brcm/brcmfmac43143-sdio.bin
+firmware:       brcm/brcmfmac43143.bin
+firmware:       brcm/brcmfmac43236b.bin
+firmware:       brcm/brcmfmac43241b0-sdio.bin
+firmware:       brcm/brcmfmac43241b4-sdio.bin
+firmware:       brcm/brcmfmac43241b5-sdio.bin
+firmware:       brcm/brcmfmac43242a.bin
+firmware:       brcm/brcmfmac4329-sdio.bin
+firmware:       brcm/brcmfmac4330-sdio.bin
+firmware:       brcm/brcmfmac4334-sdio.bin
+firmware:       brcm/brcmfmac43340-sdio.bin
+firmware:       brcm/brcmfmac4335-sdio.bin
+firmware:       brcm/brcmfmac43362-sdio.bin
+firmware:       brcm/brcmfmac4339-sdio.bin
+firmware:       brcm/brcmfmac43430-sdio.bin
+firmware:       brcm/brcmfmac43430a0-sdio.bin
+firmware:       brcm/brcmfmac43455-sdio.bin
+firmware:       brcm/brcmfmac43456-sdio.bin
+firmware:       brcm/brcmfmac4350-pcie.bin
+firmware:       brcm/brcmfmac4350c2-pcie.bin
+firmware:       brcm/brcmfmac4354-sdio.bin
+firmware:       brcm/brcmfmac4356-pcie.bin
+firmware:       brcm/brcmfmac4356-sdio.bin
+firmware:       brcm/brcmfmac43569.bin
+firmware:       brcm/brcmfmac43570-pcie.bin
+firmware:       brcm/brcmfmac4358-pcie.bin
+firmware:       brcm/brcmfmac4359-pcie.bin
+firmware:       brcm/brcmfmac43602-pcie.bin
+firmware:       brcm/brcmfmac4365b-pcie.bin
+firmware:       brcm/brcmfmac4365c-pcie.bin
+firmware:       brcm/brcmfmac4366b-pcie.bin
+firmware:       brcm/brcmfmac4366c-pcie.bin
+firmware:       brcm/brcmfmac4371-pcie.bin
+firmware:       brcm/brcmfmac4373-sdio.bin
+firmware:       brcm/brcmfmac4373.bin
+firmware:       c218tunx.cod
+firmware:       c320tunx.cod
+firmware:       carl9170-1.fw
+firmware:       cavium/cnn55xx_se.fw
+firmware:       cbfw-3.2.5.1.bin
+firmware:       cf-fsi-fw.bin
+firmware:       cis/3CCFEM556.cis
+firmware:       cis/3CXEM556.cis
+firmware:       cis/COMpad2.cis
+firmware:       cis/COMpad4.cis
+firmware:       cis/DP83903.cis
+firmware:       cis/LA-PCM.cis
+firmware:       cis/MT5634ZLX.cis
+firmware:       cis/NE2K.cis
+firmware:       cis/PCMLM28.cis
+firmware:       cis/PE-200.cis
+firmware:       cis/PE520.cis
+firmware:       cis/RS-COM-2P.cis
+firmware:       cis/SW_555_SER.cis
+firmware:       cis/SW_7xx_SER.cis
+firmware:       cis/SW_8xx_SER.cis
+firmware:       cis/tamarack.cis
+firmware:       cmmb_ming_app.inp
+firmware:       cmmb_vega_12mhz.inp
+firmware:       cmmb_venice_12mhz.inp
+firmware:       comedi/jr3pci.idm
+firmware:       cp204unx.cod
+firmware:       cpia2/stv0672_vp4.bin
+firmware:       cs46xx/cwc4630
+firmware:       cs46xx/cwcasync
+firmware:       cs46xx/cwcbinhack
+firmware:       cs46xx/cwcdma
+firmware:       cs46xx/cwcsnoop
+firmware:       ct2fw-3.2.5.1.bin
+firmware:       ctefx-desktop.bin
+firmware:       ctefx-r3di.bin
+firmware:       ctefx.bin
+firmware:       ctfw-3.2.5.1.bin
+firmware:       cxgb3/ael2005_opt_edc.bin
+firmware:       cxgb3/ael2005_twx_edc.bin
+firmware:       cxgb3/ael2020_twx_edc.bin
+firmware:       cxgb3/t3b_psram-1.1.0.bin
+firmware:       cxgb3/t3c_psram-1.1.0.bin
+firmware:       cxgb3/t3fw-7.12.0.bin
+firmware:       cxgb4/t4fw.bin
+firmware:       cxgb4/t5fw.bin
+firmware:       cxgb4/t6fw.bin
+firmware:       cyzfirm.bin
+firmware:       daqboard2000_firmware.bin
+firmware:       digiface_firmware.bin
+firmware:       digiface_firmware_rev11.bin
+firmware:       dvb-cx18-mpc718-mt352.fw
+firmware:       dvb-demod-m88ds3103.fw
+firmware:       dvb-demod-m88rs6000.fw
+firmware:       dvb-demod-mn88472-02.fw
+firmware:       dvb-demod-mn88473-01.fw
+firmware:       dvb-demod-si2165.fw
+firmware:       dvb-demod-si2168-a20-01.fw
+firmware:       dvb-demod-si2168-a30-01.fw
+firmware:       dvb-demod-si2168-b40-01.fw
+firmware:       dvb-demod-si2168-d60-01.fw
+firmware:       dvb-fe-af9013.fw
+firmware:       dvb-fe-cx24117.fw
+firmware:       dvb-fe-drxj-mc-1.0.8.fw
+firmware:       dvb-fe-ds3000.fw
+firmware:       dvb-fe-tda10071.fw
+firmware:       dvb-fe-xc4000-1.4.1.fw
+firmware:       dvb-fe-xc4000-1.4.fw
+firmware:       dvb-fe-xc5000-1.6.114.fw
+firmware:       dvb-fe-xc5000c-4.1.30.7.fw
+firmware:       dvb-tuner-si2141-a10-01.fw
+firmware:       dvb-tuner-si2157-a30-01.fw
+firmware:       dvb-tuner-si2158-a20-01.fw
+firmware:       dvb-usb-af9015.fw
+firmware:       dvb-usb-af9035-02.fw
+firmware:       dvb-usb-dib0700-1.20.fw
+firmware:       dvb-usb-dw2101.fw
+firmware:       dvb-usb-dw2102.fw
+firmware:       dvb-usb-dw2104.fw
+firmware:       dvb-usb-dw3101.fw
+firmware:       dvb-usb-ec168.fw
+firmware:       dvb-usb-it9135-01.fw
+firmware:       dvb-usb-it9135-02.fw
+firmware:       dvb-usb-it9303-01.fw
+firmware:       dvb-usb-lme2510-lg.fw
+firmware:       dvb-usb-lme2510-s0194.fw
+firmware:       dvb-usb-lme2510c-lg.fw
+firmware:       dvb-usb-lme2510c-rs2000.fw
+firmware:       dvb-usb-lme2510c-s0194.fw
+firmware:       dvb-usb-lme2510c-s7395.fw
+firmware:       dvb-usb-p1100.fw
+firmware:       dvb-usb-p7500.fw
+firmware:       dvb-usb-s630.fw
+firmware:       dvb-usb-s660.fw
+firmware:       dvb-usb-terratec-h7-az6007.fw
+firmware:       dvb_nova_12mhz.inp
+firmware:       dvb_nova_12mhz_b0.inp
+firmware:       dvb_rio.inp
+firmware:       dvbh_rio.inp
+firmware:       e100/d101m_ucode.bin
+firmware:       e100/d101s_ucode.bin
+firmware:       e100/d102e_ucode.bin
+firmware:       ea/3g_asic.fw
+firmware:       ea/darla20_dsp.fw
+firmware:       ea/darla24_dsp.fw
+firmware:       ea/echo3g_dsp.fw
+firmware:       ea/gina20_dsp.fw
+firmware:       ea/gina24_301_asic.fw
+firmware:       ea/gina24_301_dsp.fw
+firmware:       ea/gina24_361_asic.fw
+firmware:       ea/gina24_361_dsp.fw
+firmware:       ea/indigo_dj_dsp.fw
+firmware:       ea/indigo_djx_dsp.fw
+firmware:       ea/indigo_dsp.fw
+firmware:       ea/indigo_io_dsp.fw
+firmware:       ea/indigo_iox_dsp.fw
+firmware:       ea/layla20_asic.fw
+firmware:       ea/layla20_dsp.fw
+firmware:       ea/layla24_1_asic.fw
+firmware:       ea/layla24_2A_asic.fw
+firmware:       ea/layla24_2S_asic.fw
+firmware:       ea/layla24_dsp.fw
+firmware:       ea/loader_dsp.fw
+firmware:       ea/mia_dsp.fw
+firmware:       ea/mona_2_asic.fw
+firmware:       ea/mona_301_1_asic_48.fw
+firmware:       ea/mona_301_1_asic_96.fw
+firmware:       ea/mona_301_dsp.fw
+firmware:       ea/mona_361_1_asic_48.fw
+firmware:       ea/mona_361_1_asic_96.fw
+firmware:       ea/mona_361_dsp.fw
+firmware:       edgeport/boot.fw
+firmware:       edgeport/boot2.fw
+firmware:       edgeport/down.fw
+firmware:       edgeport/down2.fw
+firmware:       edgeport/down3.bin
+firmware:       emi26/bitstream.fw
+firmware:       emi26/firmware.fw
+firmware:       emi26/loader.fw
+firmware:       emi62/bitstream.fw
+firmware:       emi62/loader.fw
+firmware:       emi62/spdif.fw
+firmware:       emu/audio_dock.fw
+firmware:       emu/emu0404.fw
+firmware:       emu/emu1010_notebook.fw
+firmware:       emu/emu1010b.fw
+firmware:       emu/hana.fw
+firmware:       emu/micro_dock.fw
+firmware:       ene-ub6250/ms_init.bin
+firmware:       ene-ub6250/ms_rdwr.bin
+firmware:       ene-ub6250/msp_rdwr.bin
+firmware:       ene-ub6250/sd_init1.bin
+firmware:       ene-ub6250/sd_init2.bin
+firmware:       ene-ub6250/sd_rdwr.bin
+firmware:       ess/maestro3_assp_kernel.fw
+firmware:       ess/maestro3_assp_minisrc.fw
+firmware:       f2255usb.bin
+firmware:       fm_radio.inp
+firmware:       fm_radio_rio.inp
+firmware:       fw.ram.bin
+firmware:       go7007/go7007fw.bin
+firmware:       go7007/go7007tv.bin
+firmware:       go7007/lr192.fw
+firmware:       go7007/px-m402u.fw
+firmware:       go7007/px-tv402u.fw
+firmware:       go7007/s2250-1.fw
+firmware:       go7007/s2250-2.fw
+firmware:       go7007/wis-startrek.fw
+firmware:       hfi1_dc8051.fw
+firmware:       hfi1_fabric.fw
+firmware:       hfi1_pcie.fw
+firmware:       hfi1_sbus.fw
+firmware:       i1480-phy-0.0.bin
+firmware:       i1480-pre-phy-0.0.bin
+firmware:       i1480-usb-0.0.bin
+firmware:       i2400m-fw-usb-1.5.sbcf
+firmware:       i6050-fw-usb-1.5.sbcf
+firmware:       i915/bxt_dmc_ver1_07.bin
+firmware:       i915/bxt_guc_33.0.0.bin
+firmware:       i915/bxt_huc_ver01_8_2893.bin
+firmware:       i915/cnl_dmc_ver1_07.bin
+firmware:       i915/glk_dmc_ver1_04.bin
+firmware:       i915/glk_guc_33.0.0.bin
+firmware:       i915/glk_huc_ver03_01_2893.bin
+firmware:       i915/icl_dmc_ver1_07.bin
+firmware:       i915/icl_guc_33.0.0.bin
+firmware:       i915/icl_huc_ver8_4_3238.bin
+firmware:       i915/kbl_dmc_ver1_04.bin
+firmware:       i915/kbl_guc_33.0.0.bin
+firmware:       i915/kbl_huc_ver02_00_1810.bin
+firmware:       i915/skl_dmc_ver1_27.bin
+firmware:       i915/skl_guc_33.0.0.bin
+firmware:       i915/skl_huc_ver01_07_1398.bin
+firmware:       i915/tgl_dmc_ver2_04.bin
+firmware:       icom_asc.bin
+firmware:       icom_call_setup.bin
+firmware:       icom_res_dce.bin
+firmware:       imx/sdma/sdma-imx6q.bin
+firmware:       imx/sdma/sdma-imx7d.bin
+firmware:       intel/ibt-11-5.ddc
+firmware:       intel/ibt-11-5.sfi
+firmware:       intel/ibt-12-16.ddc
+firmware:       intel/ibt-12-16.sfi
+firmware:       intel/ice/ddp/ice.pkg
+firmware:       ipw2100-1.3-i.fw
+firmware:       ipw2100-1.3-p.fw
+firmware:       ipw2100-1.3.fw
+firmware:       ipw2200-bss.fw
+firmware:       ipw2200-ibss.fw
+firmware:       ipw2200-sniffer.fw
+firmware:       isci/isci_firmware.bin
+firmware:       isdbt_nova_12mhz.inp
+firmware:       isdbt_nova_12mhz_b0.inp
+firmware:       isdbt_pele.inp
+firmware:       isdbt_rio.inp
+firmware:       isdn/ISAR.BIN
+firmware:       isi4608.bin
+firmware:       isi4616.bin
+firmware:       isi608.bin
+firmware:       isi608em.bin
+firmware:       isi616em.bin
+firmware:       isight.fw
+firmware:       isl3886pci
+firmware:       isl3886usb
+firmware:       isl3887usb
+firmware:       iwlwifi-100-5.ucode
+firmware:       iwlwifi-1000-5.ucode
+firmware:       iwlwifi-105-6.ucode
+firmware:       iwlwifi-135-6.ucode
+firmware:       iwlwifi-2000-6.ucode
+firmware:       iwlwifi-2030-6.ucode
+firmware:       iwlwifi-3160-17.ucode
+firmware:       iwlwifi-3168-29.ucode
+firmware:       iwlwifi-3945-2.ucode
+firmware:       iwlwifi-4965-2.ucode
+firmware:       iwlwifi-5000-5.ucode
+firmware:       iwlwifi-5150-2.ucode
+firmware:       iwlwifi-6000-6.ucode
+firmware:       iwlwifi-6000g2a-6.ucode
+firmware:       iwlwifi-6000g2b-6.ucode
+firmware:       iwlwifi-6050-5.ucode
+firmware:       iwlwifi-7260-17.ucode
+firmware:       iwlwifi-7265-17.ucode
+firmware:       iwlwifi-7265D-29.ucode
+firmware:       iwlwifi-8000C-36.ucode
+firmware:       iwlwifi-8265-36.ucode
+firmware:       iwlwifi-9000-pu-b0-jf-b0-46.ucode
+firmware:       iwlwifi-9260-th-b0-jf-b0-46.ucode
+firmware:       iwlwifi-Qu-a0-hr-a0-50.ucode
+firmware:       iwlwifi-Qu-a0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-b0-jf-b0-50.ucode
+firmware:       iwlwifi-Qu-c0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-a0-hr-a0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-hr-b0-50.ucode
+firmware:       iwlwifi-QuQnj-b0-jf-b0-50.ucode
+firmware:       iwlwifi-QuQnj-f0-hr-a0-50.ucode
+firmware:       iwlwifi-QuZ-a0-hr-b0-50.ucode
+firmware:       iwlwifi-QuZ-a0-jf-b0-50.ucode
+firmware:       iwlwifi-cc-a0-50.ucode
+firmware:       iwlwifi-so-a0-gf-a0-50.ucode
+firmware:       iwlwifi-so-a0-hr-b0-50.ucode
+firmware:       iwlwifi-so-a0-jf-b0-50.ucode
+firmware:       iwlwifi-ty-a0-gf-a0-50.ucode
+firmware:       kaweth/new_code.bin
+firmware:       kaweth/new_code_fix.bin
+firmware:       kaweth/trigger_code.bin
+firmware:       kaweth/trigger_code_fix.bin
+firmware:       keyspan/mpr.fw
+firmware:       keyspan/usa18x.fw
+firmware:       keyspan/usa19.fw
+firmware:       keyspan/usa19qi.fw
+firmware:       keyspan/usa19qw.fw
+firmware:       keyspan/usa19w.fw
+firmware:       keyspan/usa28.fw
+firmware:       keyspan/usa28x.fw
+firmware:       keyspan/usa28xa.fw
+firmware:       keyspan/usa28xb.fw
+firmware:       keyspan/usa49w.fw
+firmware:       keyspan/usa49wlc.fw
+firmware:       keyspan_pda/keyspan_pda.fw
+firmware:       keyspan_pda/xircom_pgs.fw
+firmware:       korg/k1212.dsp
+firmware:       ks7010sd.rom
+firmware:       lantiq/xrx200_phy11g_a14.bin
+firmware:       lantiq/xrx200_phy11g_a22.bin
+firmware:       lantiq/xrx200_phy22f_a14.bin
+firmware:       lantiq/xrx200_phy22f_a22.bin
+firmware:       lantiq/xrx300_phy11g_a21.bin
+firmware:       lantiq/xrx300_phy22f_a21.bin
+firmware:       lattice-ecp3.bit
+firmware:       lbtf_usb.bin
+firmware:       lgs8g75.fw
+firmware:       libertas/cf8305.bin
+firmware:       libertas/cf8381.bin
+firmware:       libertas/cf8381_helper.bin
+firmware:       libertas/cf8385.bin
+firmware:       libertas/cf8385_helper.bin
+firmware:       libertas/gspi8385.bin
+firmware:       libertas/gspi8385_helper.bin
+firmware:       libertas/gspi8385_hlp.bin
+firmware:       libertas/gspi8686.bin
+firmware:       libertas/gspi8686_hlp.bin
+firmware:       libertas/gspi8686_v9.bin
+firmware:       libertas/gspi8686_v9_helper.bin
+firmware:       libertas/gspi8688.bin
+firmware:       libertas/gspi8688_helper.bin
+firmware:       libertas/sd8385.bin
+firmware:       libertas/sd8385_helper.bin
+firmware:       libertas/sd8686_v8.bin
+firmware:       libertas/sd8686_v8_helper.bin
+firmware:       libertas/sd8686_v9.bin
+firmware:       libertas/sd8686_v9_helper.bin
+firmware:       libertas/sd8688.bin
+firmware:       libertas/sd8688_helper.bin
+firmware:       libertas/usb8388.bin
+firmware:       libertas/usb8388_v5.bin
+firmware:       libertas/usb8388_v9.bin
+firmware:       libertas/usb8682.bin
+firmware:       libertas_cs.fw
+firmware:       libertas_cs_helper.fw
+firmware:       liquidio/lio_210nv_nic.bin
+firmware:       liquidio/lio_210sv_nic.bin
+firmware:       liquidio/lio_23xx_nic.bin
+firmware:       liquidio/lio_410nv_nic.bin
+firmware:       me2600_firmware.bin
+firmware:       me4000_firmware.bin
+firmware:       mediatek/mt7610e.bin
+firmware:       mediatek/mt7610u.bin
+firmware:       mediatek/mt7615_cr4.bin
+firmware:       mediatek/mt7615_n9.bin
+firmware:       mediatek/mt7615_rom_patch.bin
+firmware:       mediatek/mt7622pr2h.bin
+firmware:       mediatek/mt7650e.bin
+firmware:       mediatek/mt7663pr2h.bin
+firmware:       mediatek/mt7668pr2h.bin
+firmware:       mellanox/mlxsw_spectrum-13.2000.1886.mfa2
+firmware:       mixart/miXart8.elf
+firmware:       mixart/miXart8.xlx
+firmware:       mixart/miXart8AES.xlx
+firmware:       moxa/moxa-1110.fw
+firmware:       moxa/moxa-1130.fw
+firmware:       moxa/moxa-1131.fw
+firmware:       moxa/moxa-1150.fw
+firmware:       moxa/moxa-1151.fw
+firmware:       mrvl/sd8688.bin
+firmware:       mrvl/sd8688_helper.bin
+firmware:       mrvl/sd8786_uapsta.bin
+firmware:       mrvl/sd8787_uapsta.bin
+firmware:       mrvl/sd8797_uapsta.bin
+firmware:       mrvl/sd8887_uapsta.bin
+firmware:       mrvl/sd8897_uapsta.bin
+firmware:       mrvl/sd8987_uapsta.bin
+firmware:       mrvl/sdsd8977_combo_v2.bin
+firmware:       mrvl/sdsd8997_combo_v4.bin
+firmware:       mrvl/usb8766_uapsta.bin
+firmware:       mrvl/usb8797_uapsta.bin
+firmware:       mrvl/usb8801_uapsta.bin
+firmware:       mrvl/usbusb8997_combo_v4.bin
+firmware:       mt7601u.bin
+firmware:       mt7603_e1.bin
+firmware:       mt7603_e2.bin
+firmware:       mt7628_e1.bin
+firmware:       mt7628_e2.bin
+firmware:       mt7662.bin
+firmware:       mt7662_rom_patch.bin
+firmware:       mts_cdma.fw
+firmware:       mts_edge.fw
+firmware:       mts_gsm.fw
+firmware:       mts_mt9234mu.fw
+firmware:       mts_mt9234zba.fw
+firmware:       multiface_firmware.bin
+firmware:       multiface_firmware_rev11.bin
+firmware:       mwl8k/fmimage_8363.fw
+firmware:       mwl8k/fmimage_8366.fw
+firmware:       mwl8k/fmimage_8366_ap-3.fw
+firmware:       mwl8k/fmimage_8687.fw
+firmware:       mwl8k/helper_8363.fw
+firmware:       mwl8k/helper_8366.fw
+firmware:       mwl8k/helper_8687.fw
+firmware:       myri10ge_eth_z8e.dat
+firmware:       myri10ge_ethp_z8e.dat
+firmware:       myri10ge_rss_eth_z8e.dat
+firmware:       myri10ge_rss_ethp_z8e.dat
+firmware:       netronome/nic_AMDA0058-0011_2x40.nffw
+firmware:       netronome/nic_AMDA0058-0012_2x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_1x40.nffw
+firmware:       netronome/nic_AMDA0081-0001_4x10.nffw
+firmware:       netronome/nic_AMDA0096-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0097-0001_2x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_4x10_1x40.nffw
+firmware:       netronome/nic_AMDA0097-0001_8x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_1x10_1x25.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x10.nffw
+firmware:       netronome/nic_AMDA0099-0001_2x25.nffw
+firmware:       ni6534a.bin
+firmware:       niscrb01.bin
+firmware:       niscrb02.bin
+firmware:       nvidia/gk20a/fecs_data.bin
+firmware:       nvidia/gk20a/fecs_inst.bin
+firmware:       nvidia/gk20a/gpccs_data.bin
+firmware:       nvidia/gk20a/gpccs_inst.bin
+firmware:       nvidia/gk20a/sw_bundle_init.bin
+firmware:       nvidia/gk20a/sw_ctx.bin
+firmware:       nvidia/gk20a/sw_method_init.bin
+firmware:       nvidia/gk20a/sw_nonctx.bin
+firmware:       nvidia/gm200/acr/bl.bin
+firmware:       nvidia/gm200/acr/ucode_load.bin
+firmware:       nvidia/gm200/acr/ucode_unload.bin
+firmware:       nvidia/gm200/gr/fecs_bl.bin
+firmware:       nvidia/gm200/gr/fecs_data.bin
+firmware:       nvidia/gm200/gr/fecs_inst.bin
+firmware:       nvidia/gm200/gr/fecs_sig.bin
+firmware:       nvidia/gm200/gr/gpccs_bl.bin
+firmware:       nvidia/gm200/gr/gpccs_data.bin
+firmware:       nvidia/gm200/gr/gpccs_inst.bin
+firmware:       nvidia/gm200/gr/gpccs_sig.bin
+firmware:       nvidia/gm200/gr/sw_bundle_init.bin
+firmware:       nvidia/gm200/gr/sw_ctx.bin
+firmware:       nvidia/gm200/gr/sw_method_init.bin
+firmware:       nvidia/gm200/gr/sw_nonctx.bin
+firmware:       nvidia/gm204/acr/bl.bin
+firmware:       nvidia/gm204/acr/ucode_load.bin
+firmware:       nvidia/gm204/acr/ucode_unload.bin
+firmware:       nvidia/gm204/gr/fecs_bl.bin
+firmware:       nvidia/gm204/gr/fecs_data.bin
+firmware:       nvidia/gm204/gr/fecs_inst.bin
+firmware:       nvidia/gm204/gr/fecs_sig.bin
+firmware:       nvidia/gm204/gr/gpccs_bl.bin
+firmware:       nvidia/gm204/gr/gpccs_data.bin
+firmware:       nvidia/gm204/gr/gpccs_inst.bin
+firmware:       nvidia/gm204/gr/gpccs_sig.bin
+firmware:       nvidia/gm204/gr/sw_bundle_init.bin
+firmware:       nvidia/gm204/gr/sw_ctx.bin
+firmware:       nvidia/gm204/gr/sw_method_init.bin
+firmware:       nvidia/gm204/gr/sw_nonctx.bin
+firmware:       nvidia/gm206/acr/bl.bin
+firmware:       nvidia/gm206/acr/ucode_load.bin
+firmware:       nvidia/gm206/acr/ucode_unload.bin
+firmware:       nvidia/gm206/gr/fecs_bl.bin
+firmware:       nvidia/gm206/gr/fecs_data.bin
+firmware:       nvidia/gm206/gr/fecs_inst.bin
+firmware:       nvidia/gm206/gr/fecs_sig.bin
+firmware:       nvidia/gm206/gr/gpccs_bl.bin
+firmware:       nvidia/gm206/gr/gpccs_data.bin
+firmware:       nvidia/gm206/gr/gpccs_inst.bin
+firmware:       nvidia/gm206/gr/gpccs_sig.bin
+firmware:       nvidia/gm206/gr/sw_bundle_init.bin
+firmware:       nvidia/gm206/gr/sw_ctx.bin
+firmware:       nvidia/gm206/gr/sw_method_init.bin
+firmware:       nvidia/gm206/gr/sw_nonctx.bin
+firmware:       nvidia/gp100/acr/bl.bin
+firmware:       nvidia/gp100/acr/ucode_load.bin
+firmware:       nvidia/gp100/acr/ucode_unload.bin
+firmware:       nvidia/gp100/gr/fecs_bl.bin
+firmware:       nvidia/gp100/gr/fecs_data.bin
+firmware:       nvidia/gp100/gr/fecs_inst.bin
+firmware:       nvidia/gp100/gr/fecs_sig.bin
+firmware:       nvidia/gp100/gr/gpccs_bl.bin
+firmware:       nvidia/gp100/gr/gpccs_data.bin
+firmware:       nvidia/gp100/gr/gpccs_inst.bin
+firmware:       nvidia/gp100/gr/gpccs_sig.bin
+firmware:       nvidia/gp100/gr/sw_bundle_init.bin
+firmware:       nvidia/gp100/gr/sw_ctx.bin
+firmware:       nvidia/gp100/gr/sw_method_init.bin
+firmware:       nvidia/gp100/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/acr/bl.bin
+firmware:       nvidia/gp102/acr/ucode_load.bin
+firmware:       nvidia/gp102/acr/ucode_unload.bin
+firmware:       nvidia/gp102/acr/unload_bl.bin
+firmware:       nvidia/gp102/gr/fecs_bl.bin
+firmware:       nvidia/gp102/gr/fecs_data.bin
+firmware:       nvidia/gp102/gr/fecs_inst.bin
+firmware:       nvidia/gp102/gr/fecs_sig.bin
+firmware:       nvidia/gp102/gr/gpccs_bl.bin
+firmware:       nvidia/gp102/gr/gpccs_data.bin
+firmware:       nvidia/gp102/gr/gpccs_inst.bin
+firmware:       nvidia/gp102/gr/gpccs_sig.bin
+firmware:       nvidia/gp102/gr/sw_bundle_init.bin
+firmware:       nvidia/gp102/gr/sw_ctx.bin
+firmware:       nvidia/gp102/gr/sw_method_init.bin
+firmware:       nvidia/gp102/gr/sw_nonctx.bin
+firmware:       nvidia/gp102/nvdec/scrubber.bin
+firmware:       nvidia/gp102/sec2/desc-1.bin
+firmware:       nvidia/gp102/sec2/desc.bin
+firmware:       nvidia/gp102/sec2/image-1.bin
+firmware:       nvidia/gp102/sec2/image.bin
+firmware:       nvidia/gp102/sec2/sig-1.bin
+firmware:       nvidia/gp102/sec2/sig.bin
+firmware:       nvidia/gp104/acr/bl.bin
+firmware:       nvidia/gp104/acr/ucode_load.bin
+firmware:       nvidia/gp104/acr/ucode_unload.bin
+firmware:       nvidia/gp104/acr/unload_bl.bin
+firmware:       nvidia/gp104/gr/fecs_bl.bin
+firmware:       nvidia/gp104/gr/fecs_data.bin
+firmware:       nvidia/gp104/gr/fecs_inst.bin
+firmware:       nvidia/gp104/gr/fecs_sig.bin
+firmware:       nvidia/gp104/gr/gpccs_bl.bin
+firmware:       nvidia/gp104/gr/gpccs_data.bin
+firmware:       nvidia/gp104/gr/gpccs_inst.bin
+firmware:       nvidia/gp104/gr/gpccs_sig.bin
+firmware:       nvidia/gp104/gr/sw_bundle_init.bin
+firmware:       nvidia/gp104/gr/sw_ctx.bin
+firmware:       nvidia/gp104/gr/sw_method_init.bin
+firmware:       nvidia/gp104/gr/sw_nonctx.bin
+firmware:       nvidia/gp104/nvdec/scrubber.bin
+firmware:       nvidia/gp104/sec2/desc-1.bin
+firmware:       nvidia/gp104/sec2/desc.bin
+firmware:       nvidia/gp104/sec2/image-1.bin
+firmware:       nvidia/gp104/sec2/image.bin
+firmware:       nvidia/gp104/sec2/sig-1.bin
+firmware:       nvidia/gp104/sec2/sig.bin
+firmware:       nvidia/gp106/acr/bl.bin
+firmware:       nvidia/gp106/acr/ucode_load.bin
+firmware:       nvidia/gp106/acr/ucode_unload.bin
+firmware:       nvidia/gp106/acr/unload_bl.bin
+firmware:       nvidia/gp106/gr/fecs_bl.bin
+firmware:       nvidia/gp106/gr/fecs_data.bin
+firmware:       nvidia/gp106/gr/fecs_inst.bin
+firmware:       nvidia/gp106/gr/fecs_sig.bin
+firmware:       nvidia/gp106/gr/gpccs_bl.bin
+firmware:       nvidia/gp106/gr/gpccs_data.bin
+firmware:       nvidia/gp106/gr/gpccs_inst.bin
+firmware:       nvidia/gp106/gr/gpccs_sig.bin
+firmware:       nvidia/gp106/gr/sw_bundle_init.bin
+firmware:       nvidia/gp106/gr/sw_ctx.bin
+firmware:       nvidia/gp106/gr/sw_method_init.bin
+firmware:       nvidia/gp106/gr/sw_nonctx.bin
+firmware:       nvidia/gp106/nvdec/scrubber.bin
+firmware:       nvidia/gp106/sec2/desc-1.bin
+firmware:       nvidia/gp106/sec2/desc.bin
+firmware:       nvidia/gp106/sec2/image-1.bin
+firmware:       nvidia/gp106/sec2/image.bin
+firmware:       nvidia/gp106/sec2/sig-1.bin
+firmware:       nvidia/gp106/sec2/sig.bin
+firmware:       nvidia/gp107/acr/bl.bin
+firmware:       nvidia/gp107/acr/ucode_load.bin
+firmware:       nvidia/gp107/acr/ucode_unload.bin
+firmware:       nvidia/gp107/acr/unload_bl.bin
+firmware:       nvidia/gp107/gr/fecs_bl.bin
+firmware:       nvidia/gp107/gr/fecs_data.bin
+firmware:       nvidia/gp107/gr/fecs_inst.bin
+firmware:       nvidia/gp107/gr/fecs_sig.bin
+firmware:       nvidia/gp107/gr/gpccs_bl.bin
+firmware:       nvidia/gp107/gr/gpccs_data.bin
+firmware:       nvidia/gp107/gr/gpccs_inst.bin
+firmware:       nvidia/gp107/gr/gpccs_sig.bin
+firmware:       nvidia/gp107/gr/sw_bundle_init.bin
+firmware:       nvidia/gp107/gr/sw_ctx.bin
+firmware:       nvidia/gp107/gr/sw_method_init.bin
+firmware:       nvidia/gp107/gr/sw_nonctx.bin
+firmware:       nvidia/gp107/nvdec/scrubber.bin
+firmware:       nvidia/gp107/sec2/desc-1.bin
+firmware:       nvidia/gp107/sec2/desc.bin
+firmware:       nvidia/gp107/sec2/image-1.bin
+firmware:       nvidia/gp107/sec2/image.bin
+firmware:       nvidia/gp107/sec2/sig-1.bin
+firmware:       nvidia/gp107/sec2/sig.bin
+firmware:       nvidia/gp108/acr/bl.bin
+firmware:       nvidia/gp108/acr/ucode_load.bin
+firmware:       nvidia/gp108/acr/ucode_unload.bin
+firmware:       nvidia/gp108/acr/unload_bl.bin
+firmware:       nvidia/gp108/gr/fecs_bl.bin
+firmware:       nvidia/gp108/gr/fecs_data.bin
+firmware:       nvidia/gp108/gr/fecs_inst.bin
+firmware:       nvidia/gp108/gr/fecs_sig.bin
+firmware:       nvidia/gp108/gr/gpccs_bl.bin
+firmware:       nvidia/gp108/gr/gpccs_data.bin
+firmware:       nvidia/gp108/gr/gpccs_inst.bin
+firmware:       nvidia/gp108/gr/gpccs_sig.bin
+firmware:       nvidia/gp108/gr/sw_bundle_init.bin
+firmware:       nvidia/gp108/gr/sw_ctx.bin
+firmware:       nvidia/gp108/gr/sw_method_init.bin
+firmware:       nvidia/gp108/gr/sw_nonctx.bin
+firmware:       nvidia/gp108/nvdec/scrubber.bin
+firmware:       nvidia/gp108/sec2/desc.bin
+firmware:       nvidia/gp108/sec2/image.bin
+firmware:       nvidia/gp108/sec2/sig.bin
+firmware:       nvidia/gv100/acr/bl.bin
+firmware:       nvidia/gv100/acr/ucode_load.bin
+firmware:       nvidia/gv100/acr/ucode_unload.bin
+firmware:       nvidia/gv100/acr/unload_bl.bin
+firmware:       nvidia/gv100/gr/fecs_bl.bin
+firmware:       nvidia/gv100/gr/fecs_data.bin
+firmware:       nvidia/gv100/gr/fecs_inst.bin
+firmware:       nvidia/gv100/gr/fecs_sig.bin
+firmware:       nvidia/gv100/gr/gpccs_bl.bin
+firmware:       nvidia/gv100/gr/gpccs_data.bin
+firmware:       nvidia/gv100/gr/gpccs_inst.bin
+firmware:       nvidia/gv100/gr/gpccs_sig.bin
+firmware:       nvidia/gv100/gr/sw_bundle_init.bin
+firmware:       nvidia/gv100/gr/sw_ctx.bin
+firmware:       nvidia/gv100/gr/sw_method_init.bin
+firmware:       nvidia/gv100/gr/sw_nonctx.bin
+firmware:       nvidia/gv100/nvdec/scrubber.bin
+firmware:       nvidia/gv100/sec2/desc.bin
+firmware:       nvidia/gv100/sec2/image.bin
+firmware:       nvidia/gv100/sec2/sig.bin
+firmware:       nvidia/tegra124/vic03_ucode.bin
+firmware:       nvidia/tegra124/xusb.bin
+firmware:       nvidia/tegra186/xusb.bin
+firmware:       nvidia/tegra210/xusb.bin
+firmware:       orinoco_ezusb_fw
+firmware:       ositech/Xilinx7OD.bin
+firmware:       pca200e.bin
+firmware:       pca200e_ecd.bin2
+firmware:       pcxhr/dspb1222e.b56
+firmware:       pcxhr/dspb1222hr.b56
+firmware:       pcxhr/dspb882e.b56
+firmware:       pcxhr/dspb882hr.b56
+firmware:       pcxhr/dspb924.b56
+firmware:       pcxhr/dspd1222.d56
+firmware:       pcxhr/dspd222.d56
+firmware:       pcxhr/dspd882.d56
+firmware:       pcxhr/dspe882.e56
+firmware:       pcxhr/dspe924.e56
+firmware:       pcxhr/xlxc1222e.dat
+firmware:       pcxhr/xlxc1222hr.dat
+firmware:       pcxhr/xlxc222.dat
+firmware:       pcxhr/xlxc882e.dat
+firmware:       pcxhr/xlxc882hr.dat
+firmware:       pcxhr/xlxc924.dat
+firmware:       pcxhr/xlxint.dat
+firmware:       phanfw.bin
+firmware:       prism2_ru.fw
+firmware:       prism_ap_fw.bin
+firmware:       prism_sta_fw.bin
+firmware:       qat_895xcc.bin
+firmware:       qat_895xcc_mmp.bin
+firmware:       qat_c3xxx.bin
+firmware:       qat_c3xxx_mmp.bin
+firmware:       qat_c62x.bin
+firmware:       qat_c62x_mmp.bin
+firmware:       qcom/a300_pfp.fw
+firmware:       qcom/a300_pm4.fw
+firmware:       qcom/a330_pfp.fw
+firmware:       qcom/a330_pm4.fw
+firmware:       qcom/a420_pfp.fw
+firmware:       qcom/a420_pm4.fw
+firmware:       qcom/a530_pfp.fw
+firmware:       qcom/a530_pm4.fw
+firmware:       qcom/a530_zap.b00
+firmware:       qcom/a530_zap.b01
+firmware:       qcom/a530_zap.b02
+firmware:       qcom/a530_zap.mdt
+firmware:       qcom/a530v3_gpmu.fw2
+firmware:       qcom/a630_gmu.bin
+firmware:       qcom/a630_sqe.fw
+firmware:       qcom/a630_zap.mbn
+firmware:       qed/qed_init_values_zipped-8.37.7.0.bin
+firmware:       ql2100_fw.bin
+firmware:       ql2200_fw.bin
+firmware:       ql2300_fw.bin
+firmware:       ql2322_fw.bin
+firmware:       ql2400_fw.bin
+firmware:       ql2500_fw.bin
+firmware:       qlogic/1040.bin
+firmware:       qlogic/12160.bin
+firmware:       qlogic/1280.bin
+firmware:       qlogic/sd7220.fw
+firmware:       r8a779x_usb3_v1.dlmem
+firmware:       r8a779x_usb3_v2.dlmem
+firmware:       r8a779x_usb3_v3.dlmem
+firmware:       radeon/ARUBA_me.bin
+firmware:       radeon/ARUBA_pfp.bin
+firmware:       radeon/ARUBA_rlc.bin
+firmware:       radeon/BARTS_mc.bin
+firmware:       radeon/BARTS_me.bin
+firmware:       radeon/BARTS_pfp.bin
+firmware:       radeon/BARTS_smc.bin
+firmware:       radeon/BONAIRE_ce.bin
+firmware:       radeon/BONAIRE_mc.bin
+firmware:       radeon/BONAIRE_mc2.bin
+firmware:       radeon/BONAIRE_me.bin
+firmware:       radeon/BONAIRE_mec.bin
+firmware:       radeon/BONAIRE_pfp.bin
+firmware:       radeon/BONAIRE_rlc.bin
+firmware:       radeon/BONAIRE_sdma.bin
+firmware:       radeon/BONAIRE_smc.bin
+firmware:       radeon/BONAIRE_uvd.bin
+firmware:       radeon/BONAIRE_vce.bin
+firmware:       radeon/BTC_rlc.bin
+firmware:       radeon/CAICOS_mc.bin
+firmware:       radeon/CAICOS_me.bin
+firmware:       radeon/CAICOS_pfp.bin
+firmware:       radeon/CAICOS_smc.bin
+firmware:       radeon/CAYMAN_mc.bin
+firmware:       radeon/CAYMAN_me.bin
+firmware:       radeon/CAYMAN_pfp.bin
+firmware:       radeon/CAYMAN_rlc.bin
+firmware:       radeon/CAYMAN_smc.bin
+firmware:       radeon/CEDAR_me.bin
+firmware:       radeon/CEDAR_pfp.bin
+firmware:       radeon/CEDAR_rlc.bin
+firmware:       radeon/CEDAR_smc.bin
+firmware:       radeon/CYPRESS_me.bin
+firmware:       radeon/CYPRESS_pfp.bin
+firmware:       radeon/CYPRESS_rlc.bin
+firmware:       radeon/CYPRESS_smc.bin
+firmware:       radeon/CYPRESS_uvd.bin
+firmware:       radeon/HAINAN_ce.bin
+firmware:       radeon/HAINAN_mc.bin
+firmware:       radeon/HAINAN_mc2.bin
+firmware:       radeon/HAINAN_me.bin
+firmware:       radeon/HAINAN_pfp.bin
+firmware:       radeon/HAINAN_rlc.bin
+firmware:       radeon/HAINAN_smc.bin
+firmware:       radeon/HAWAII_ce.bin
+firmware:       radeon/HAWAII_mc.bin
+firmware:       radeon/HAWAII_mc2.bin
+firmware:       radeon/HAWAII_me.bin
+firmware:       radeon/HAWAII_mec.bin
+firmware:       radeon/HAWAII_pfp.bin
+firmware:       radeon/HAWAII_rlc.bin
+firmware:       radeon/HAWAII_sdma.bin
+firmware:       radeon/HAWAII_smc.bin
+firmware:       radeon/JUNIPER_me.bin
+firmware:       radeon/JUNIPER_pfp.bin
+firmware:       radeon/JUNIPER_rlc.bin
+firmware:       radeon/JUNIPER_smc.bin
+firmware:       radeon/KABINI_ce.bin
+firmware:       radeon/KABINI_me.bin
+firmware:       radeon/KABINI_mec.bin
+firmware:       radeon/KABINI_pfp.bin
+firmware:       radeon/KABINI_rlc.bin
+firmware:       radeon/KABINI_sdma.bin
+firmware:       radeon/KAVERI_ce.bin
+firmware:       radeon/KAVERI_me.bin
+firmware:       radeon/KAVERI_mec.bin
+firmware:       radeon/KAVERI_pfp.bin
+firmware:       radeon/KAVERI_rlc.bin
+firmware:       radeon/KAVERI_sdma.bin
+firmware:       radeon/MULLINS_ce.bin
+firmware:       radeon/MULLINS_me.bin
+firmware:       radeon/MULLINS_mec.bin
+firmware:       radeon/MULLINS_pfp.bin
+firmware:       radeon/MULLINS_rlc.bin
+firmware:       radeon/MULLINS_sdma.bin
+firmware:       radeon/OLAND_ce.bin
+firmware:       radeon/OLAND_mc.bin
+firmware:       radeon/OLAND_mc2.bin
+firmware:       radeon/OLAND_me.bin
+firmware:       radeon/OLAND_pfp.bin
+firmware:       radeon/OLAND_rlc.bin
+firmware:       radeon/OLAND_smc.bin
+firmware:       radeon/PALM_me.bin
+firmware:       radeon/PALM_pfp.bin
+firmware:       radeon/PITCAIRN_ce.bin
+firmware:       radeon/PITCAIRN_mc.bin
+firmware:       radeon/PITCAIRN_mc2.bin
+firmware:       radeon/PITCAIRN_me.bin
+firmware:       radeon/PITCAIRN_pfp.bin
+firmware:       radeon/PITCAIRN_rlc.bin
+firmware:       radeon/PITCAIRN_smc.bin
+firmware:       radeon/R100_cp.bin
+firmware:       radeon/R200_cp.bin
+firmware:       radeon/R300_cp.bin
+firmware:       radeon/R420_cp.bin
+firmware:       radeon/R520_cp.bin
+firmware:       radeon/R600_me.bin
+firmware:       radeon/R600_pfp.bin
+firmware:       radeon/R600_rlc.bin
+firmware:       radeon/R600_uvd.bin
+firmware:       radeon/R700_rlc.bin
+firmware:       radeon/REDWOOD_me.bin
+firmware:       radeon/REDWOOD_pfp.bin
+firmware:       radeon/REDWOOD_rlc.bin
+firmware:       radeon/REDWOOD_smc.bin
+firmware:       radeon/RS600_cp.bin
+firmware:       radeon/RS690_cp.bin
+firmware:       radeon/RS780_me.bin
+firmware:       radeon/RS780_pfp.bin
+firmware:       radeon/RS780_uvd.bin
+firmware:       radeon/RV610_me.bin
+firmware:       radeon/RV610_pfp.bin
+firmware:       radeon/RV620_me.bin
+firmware:       radeon/RV620_pfp.bin
+firmware:       radeon/RV630_me.bin
+firmware:       radeon/RV630_pfp.bin
+firmware:       radeon/RV635_me.bin
+firmware:       radeon/RV635_pfp.bin
+firmware:       radeon/RV670_me.bin
+firmware:       radeon/RV670_pfp.bin
+firmware:       radeon/RV710_me.bin
+firmware:       radeon/RV710_pfp.bin
+firmware:       radeon/RV710_smc.bin
+firmware:       radeon/RV710_uvd.bin
+firmware:       radeon/RV730_me.bin
+firmware:       radeon/RV730_pfp.bin
+firmware:       radeon/RV730_smc.bin
+firmware:       radeon/RV740_smc.bin
+firmware:       radeon/RV770_me.bin
+firmware:       radeon/RV770_pfp.bin
+firmware:       radeon/RV770_smc.bin
+firmware:       radeon/RV770_uvd.bin
+firmware:       radeon/SUMO2_me.bin
+firmware:       radeon/SUMO2_pfp.bin
+firmware:       radeon/SUMO_me.bin
+firmware:       radeon/SUMO_pfp.bin
+firmware:       radeon/SUMO_rlc.bin
+firmware:       radeon/SUMO_uvd.bin
+firmware:       radeon/TAHITI_ce.bin
+firmware:       radeon/TAHITI_mc.bin
+firmware:       radeon/TAHITI_mc2.bin
+firmware:       radeon/TAHITI_me.bin
+firmware:       radeon/TAHITI_pfp.bin
+firmware:       radeon/TAHITI_rlc.bin
+firmware:       radeon/TAHITI_smc.bin
+firmware:       radeon/TAHITI_uvd.bin
+firmware:       radeon/TAHITI_vce.bin
+firmware:       radeon/TURKS_mc.bin
+firmware:       radeon/TURKS_me.bin
+firmware:       radeon/TURKS_pfp.bin
+firmware:       radeon/TURKS_smc.bin
+firmware:       radeon/VERDE_ce.bin
+firmware:       radeon/VERDE_mc.bin
+firmware:       radeon/VERDE_mc2.bin
+firmware:       radeon/VERDE_me.bin
+firmware:       radeon/VERDE_pfp.bin
+firmware:       radeon/VERDE_rlc.bin
+firmware:       radeon/VERDE_smc.bin
+firmware:       radeon/banks_k_2_smc.bin
+firmware:       radeon/bonaire_ce.bin
+firmware:       radeon/bonaire_k_smc.bin
+firmware:       radeon/bonaire_mc.bin
+firmware:       radeon/bonaire_me.bin
+firmware:       radeon/bonaire_mec.bin
+firmware:       radeon/bonaire_pfp.bin
+firmware:       radeon/bonaire_rlc.bin
+firmware:       radeon/bonaire_sdma.bin
+firmware:       radeon/bonaire_smc.bin
+firmware:       radeon/bonaire_uvd.bin
+firmware:       radeon/hainan_ce.bin
+firmware:       radeon/hainan_k_smc.bin
+firmware:       radeon/hainan_mc.bin
+firmware:       radeon/hainan_me.bin
+firmware:       radeon/hainan_pfp.bin
+firmware:       radeon/hainan_rlc.bin
+firmware:       radeon/hainan_smc.bin
+firmware:       radeon/hawaii_ce.bin
+firmware:       radeon/hawaii_k_smc.bin
+firmware:       radeon/hawaii_mc.bin
+firmware:       radeon/hawaii_me.bin
+firmware:       radeon/hawaii_mec.bin
+firmware:       radeon/hawaii_pfp.bin
+firmware:       radeon/hawaii_rlc.bin
+firmware:       radeon/hawaii_sdma.bin
+firmware:       radeon/hawaii_smc.bin
+firmware:       radeon/kabini_ce.bin
+firmware:       radeon/kabini_me.bin
+firmware:       radeon/kabini_mec.bin
+firmware:       radeon/kabini_pfp.bin
+firmware:       radeon/kabini_rlc.bin
+firmware:       radeon/kabini_sdma.bin
+firmware:       radeon/kaveri_ce.bin
+firmware:       radeon/kaveri_me.bin
+firmware:       radeon/kaveri_mec.bin
+firmware:       radeon/kaveri_mec2.bin
+firmware:       radeon/kaveri_pfp.bin
+firmware:       radeon/kaveri_rlc.bin
+firmware:       radeon/kaveri_sdma.bin
+firmware:       radeon/mullins_ce.bin
+firmware:       radeon/mullins_me.bin
+firmware:       radeon/mullins_mec.bin
+firmware:       radeon/mullins_pfp.bin
+firmware:       radeon/mullins_rlc.bin
+firmware:       radeon/mullins_sdma.bin
+firmware:       radeon/oland_ce.bin
+firmware:       radeon/oland_k_smc.bin
+firmware:       radeon/oland_mc.bin
+firmware:       radeon/oland_me.bin
+firmware:       radeon/oland_pfp.bin
+firmware:       radeon/oland_rlc.bin
+firmware:       radeon/oland_smc.bin
+firmware:       radeon/pitcairn_ce.bin
+firmware:       radeon/pitcairn_k_smc.bin
+firmware:       radeon/pitcairn_mc.bin
+firmware:       radeon/pitcairn_me.bin
+firmware:       radeon/pitcairn_pfp.bin
+firmware:       radeon/pitcairn_rlc.bin
+firmware:       radeon/pitcairn_smc.bin
+firmware:       radeon/si58_mc.bin
+firmware:       radeon/tahiti_ce.bin
+firmware:       radeon/tahiti_mc.bin
+firmware:       radeon/tahiti_me.bin
+firmware:       radeon/tahiti_pfp.bin
+firmware:       radeon/tahiti_rlc.bin
+firmware:       radeon/tahiti_smc.bin
+firmware:       radeon/verde_ce.bin
+firmware:       radeon/verde_k_smc.bin
+firmware:       radeon/verde_mc.bin
+firmware:       radeon/verde_me.bin
+firmware:       radeon/verde_pfp.bin
+firmware:       radeon/verde_rlc.bin
+firmware:       radeon/verde_smc.bin
+firmware:       riptide.hex
+firmware:       rp2.fw
+firmware:       rpm_firmware.bin
+firmware:       rs9113_wlan_qspi.rps
+firmware:       rt2561.bin
+firmware:       rt2561s.bin
+firmware:       rt2661.bin
+firmware:       rt2860.bin
+firmware:       rt2870.bin
+firmware:       rt73.bin
+firmware:       rtl_bt/rtl8723a_fw.bin
+firmware:       rtl_bt/rtl8723b_config.bin
+firmware:       rtl_bt/rtl8723b_fw.bin
+firmware:       rtl_bt/rtl8723bs_config.bin
+firmware:       rtl_bt/rtl8723bs_fw.bin
+firmware:       rtl_bt/rtl8723ds_config.bin
+firmware:       rtl_bt/rtl8723ds_fw.bin
+firmware:       rtl_bt/rtl8761a_config.bin
+firmware:       rtl_bt/rtl8761a_fw.bin
+firmware:       rtl_bt/rtl8821a_config.bin
+firmware:       rtl_bt/rtl8821a_fw.bin
+firmware:       rtl_bt/rtl8822b_config.bin
+firmware:       rtl_bt/rtl8822b_fw.bin
+firmware:       rtl_nic/rtl8105e-1.fw
+firmware:       rtl_nic/rtl8106e-1.fw
+firmware:       rtl_nic/rtl8106e-2.fw
+firmware:       rtl_nic/rtl8107e-1.fw
+firmware:       rtl_nic/rtl8107e-2.fw
+firmware:       rtl_nic/rtl8125a-3.fw
+firmware:       rtl_nic/rtl8168d-1.fw
+firmware:       rtl_nic/rtl8168d-2.fw
+firmware:       rtl_nic/rtl8168e-1.fw
+firmware:       rtl_nic/rtl8168e-2.fw
+firmware:       rtl_nic/rtl8168e-3.fw
+firmware:       rtl_nic/rtl8168f-1.fw
+firmware:       rtl_nic/rtl8168f-2.fw
+firmware:       rtl_nic/rtl8168fp-3.fw
+firmware:       rtl_nic/rtl8168g-2.fw
+firmware:       rtl_nic/rtl8168g-3.fw
+firmware:       rtl_nic/rtl8168h-1.fw
+firmware:       rtl_nic/rtl8168h-2.fw
+firmware:       rtl_nic/rtl8402-1.fw
+firmware:       rtl_nic/rtl8411-1.fw
+firmware:       rtl_nic/rtl8411-2.fw
+firmware:       rtlwifi/rtl8188efw.bin
+firmware:       rtlwifi/rtl8188eufw.bin
+firmware:       rtlwifi/rtl8192cfw.bin
+firmware:       rtlwifi/rtl8192cfwU.bin
+firmware:       rtlwifi/rtl8192cfwU_B.bin
+firmware:       rtlwifi/rtl8192cufw.bin
+firmware:       rtlwifi/rtl8192cufw_A.bin
+firmware:       rtlwifi/rtl8192cufw_B.bin
+firmware:       rtlwifi/rtl8192cufw_TMSC.bin
+firmware:       rtlwifi/rtl8192defw.bin
+firmware:       rtlwifi/rtl8192eefw.bin
+firmware:       rtlwifi/rtl8192eu_nic.bin
+firmware:       rtlwifi/rtl8192sefw.bin
+firmware:       rtlwifi/rtl8712u.bin
+firmware:       rtlwifi/rtl8723aufw_A.bin
+firmware:       rtlwifi/rtl8723aufw_B.bin
+firmware:       rtlwifi/rtl8723aufw_B_NoBT.bin
+firmware:       rtlwifi/rtl8723befw.bin
+firmware:       rtlwifi/rtl8723befw_36.bin
+firmware:       rtlwifi/rtl8723bu_bt.bin
+firmware:       rtlwifi/rtl8723bu_nic.bin
+firmware:       rtlwifi/rtl8723efw.bin
+firmware:       rtlwifi/rtl8821aefw.bin
+firmware:       rtlwifi/rtl8821aefw_29.bin
+firmware:       rtw88/rtw8723d_fw.bin
+firmware:       rtw88/rtw8822b_fw.bin
+firmware:       rtw88/rtw8822c_fw.bin
+firmware:       rtw88/rtw8822c_wow_fw.bin
+firmware:       s5k4ecgx.bin
+firmware:       sd8385.bin
+firmware:       sd8385_helper.bin
+firmware:       sd8686.bin
+firmware:       sd8686_helper.bin
+firmware:       sd8688.bin
+firmware:       sd8688_helper.bin
+firmware:       slicoss/gbdownload.sys
+firmware:       slicoss/gbrcvucode.sys
+firmware:       slicoss/oasisdownload.sys
+firmware:       slicoss/oasisrcvucode.sys
+firmware:       sms1xxx-hcw-55xxx-dvbt-02.fw
+firmware:       sms1xxx-hcw-55xxx-isdbt-02.fw
+firmware:       sms1xxx-nova-a-dvbt-01.fw
+firmware:       sms1xxx-nova-b-dvbt-01.fw
+firmware:       sms1xxx-stellar-dvbt-01.fw
+firmware:       softing-4.6/bcard.bin
+firmware:       softing-4.6/bcard2.bin
+firmware:       softing-4.6/cancard.bin
+firmware:       softing-4.6/cancrd2.bin
+firmware:       softing-4.6/cansja.bin
+firmware:       softing-4.6/ldcard.bin
+firmware:       softing-4.6/ldcard2.bin
+firmware:       solos-FPGA.bin
+firmware:       solos-Firmware.bin
+firmware:       solos-db-FPGA.bin
+firmware:       sun/cassini.bin
+firmware:       symbol_sp24t_prim_fw
+firmware:       symbol_sp24t_sec_fw
+firmware:       tdmb_denver.inp
+firmware:       tdmb_nova_12mhz.inp
+firmware:       tdmb_nova_12mhz_b0.inp
+firmware:       tehuti/bdx.bin
+firmware:       ti-connectivity/wl1251-fw.bin
+firmware:       ti-connectivity/wl1251-nvs.bin
+firmware:       ti-connectivity/wl127x-fw-5-mr.bin
+firmware:       ti-connectivity/wl127x-fw-5-plt.bin
+firmware:       ti-connectivity/wl127x-fw-5-sr.bin
+firmware:       ti-connectivity/wl128x-fw-5-mr.bin
+firmware:       ti-connectivity/wl128x-fw-5-plt.bin
+firmware:       ti-connectivity/wl128x-fw-5-sr.bin
+firmware:       ti-connectivity/wl18xx-fw-4.bin
+firmware:       ti_3410.fw
+firmware:       ti_5052.fw
+firmware:       tigon/tg3.bin
+firmware:       tigon/tg357766.bin
+firmware:       tigon/tg3_tso.bin
+firmware:       tigon/tg3_tso5.bin
+firmware:       ttusb-budget/dspbootcode.bin
+firmware:       ueagle-atm/930-fpga.bin
+firmware:       ueagle-atm/CMV4i.bin
+firmware:       ueagle-atm/CMV4i.bin.v2
+firmware:       ueagle-atm/CMV4p.bin
+firmware:       ueagle-atm/CMV4p.bin.v2
+firmware:       ueagle-atm/CMV9i.bin
+firmware:       ueagle-atm/CMV9i.bin.v2
+firmware:       ueagle-atm/CMV9p.bin
+firmware:       ueagle-atm/CMV9p.bin.v2
+firmware:       ueagle-atm/CMVei.bin
+firmware:       ueagle-atm/CMVei.bin.v2
+firmware:       ueagle-atm/CMVep.bin
+firmware:       ueagle-atm/CMVep.bin.v2
+firmware:       ueagle-atm/DSP4i.bin
+firmware:       ueagle-atm/DSP4p.bin
+firmware:       ueagle-atm/DSP9i.bin
+firmware:       ueagle-atm/DSP9p.bin
+firmware:       ueagle-atm/DSPei.bin
+firmware:       ueagle-atm/DSPep.bin
+firmware:       ueagle-atm/adi930.fw
+firmware:       ueagle-atm/eagle.fw
+firmware:       ueagle-atm/eagleI.fw
+firmware:       ueagle-atm/eagleII.fw
+firmware:       ueagle-atm/eagleIII.fw
+firmware:       ueagle-atm/eagleIV.fw
+firmware:       usb8388.bin
+firmware:       usbdux_firmware.bin
+firmware:       usbduxfast_firmware.bin
+firmware:       usbduxsigma_firmware.bin
+firmware:       v4l-cx231xx-avcore-01.fw
+firmware:       v4l-cx23418-apu.fw
+firmware:       v4l-cx23418-cpu.fw
+firmware:       v4l-cx23418-dig.fw
+firmware:       v4l-cx2341x-dec.fw
+firmware:       v4l-cx2341x-enc.fw
+firmware:       v4l-cx2341x-init.mpg
+firmware:       v4l-cx23885-avcore-01.fw
+firmware:       v4l-cx23885-enc.fw
+firmware:       v4l-cx25840.fw
+firmware:       v4l-pvrusb2-24xxx-01.fw
+firmware:       v4l-pvrusb2-29xxx-01.fw
+firmware:       v4l-pvrusb2-73xxx-01.fw
+firmware:       vicam/firmware.fw
+firmware:       vntwusb.fw
+firmware:       vpdma-1b8.bin
+firmware:       vx/bd56002.boot
+firmware:       vx/bd563s3.boot
+firmware:       vx/bd563v2.boot
+firmware:       vx/bx_1_vp4.b56
+firmware:       vx/bx_1_vxp.b56
+firmware:       vx/l_1_v22.d56
+firmware:       vx/l_1_vp4.d56
+firmware:       vx/l_1_vx2.d56
+firmware:       vx/l_1_vxp.d56
+firmware:       vx/x1_1_vp4.xlx
+firmware:       vx/x1_1_vx2.xlx
+firmware:       vx/x1_1_vxp.xlx
+firmware:       vx/x1_2_v22.xlx
+firmware:       vxge/X3fw-pxe.ncf
+firmware:       vxge/X3fw.ncf
+firmware:       wd719x-risc.bin
+firmware:       wd719x-wcs.bin
+firmware:       whiteheat.fw
+firmware:       whiteheat_loader.fw
+firmware:       wil6210.brd
+firmware:       wil6210.fw
+firmware:       wil6210_sparrow_plus.fw
+firmware:       wil6436.brd
+firmware:       wil6436.fw
+firmware:       wlan/prima/WCNSS_qcom_wlan_nv.bin
+firmware:       xc3028-v27.fw
+firmware:       xc3028L-v36.fw
+firmware:       yam/1200.bin
+firmware:       yam/9600.bin
+firmware:       yamaha/ds1_ctrl.fw
+firmware:       yamaha/ds1_dsp.fw
+firmware:       yamaha/ds1e_ctrl.fw
+firmware:       zd1201-ap.fw
+firmware:       zd1201.fw
+firmware:       zd1211/zd1211_ub
+firmware:       zd1211/zd1211_uphr
+firmware:       zd1211/zd1211_ur
+firmware:       zd1211/zd1211b_ub
+firmware:       zd1211/zd1211b_uphr
+firmware:       zd1211/zd1211b_ur
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/ppc64el/generic
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/ppc64el/generic
@@ -0,0 +1,22481 @@
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0x913f1e6d	hvcs_get_partner_info
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0xa73464c7	hvcs_register_connection
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0xbdf97f58	hvcs_free_connection
+EXPORT_SYMBOL	 arch/powerpc/platforms/pseries/hvcserver 0xc39c3704	hvcs_free_partner_info
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x30e4d62d	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x67c91346	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x86eb9ed7	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x9931c313	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xc117af2a	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/nhpoly1305 0xe6f2f96d	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0x2c68183c	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x547a4fd3	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sha3_generic 0xf3dd6b2f	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sm3_generic 0x27f66a7e	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xfcb64053	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/atm/suni 0x3a0ad1b7	suni_init
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xdb190159	bcma_core_dma_translation
+EXPORT_SYMBOL	 drivers/bcma/bcma 0xfce19940	bcma_core_irq
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x07436dd7	pi_disconnect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x111c6d6e	pi_do_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x1216b987	pi_init
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x271229d2	pi_read_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x4267110a	pi_register_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x484aa5f6	pi_schedule_claimed
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x71eadb94	paride_register
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x78dbbe62	pi_connect
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x883b0209	pi_write_regr
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x96525060	pi_write_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0x99e7190b	pi_read_block
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xad1fb1a3	paride_unregister
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xb21ba07d	pi_unregister_driver
+EXPORT_SYMBOL	 drivers/block/paride/paride 0xc239d565	pi_release
+EXPORT_SYMBOL	 drivers/bluetooth/btbcm 0x728e2b2c	btbcm_patchram
+EXPORT_SYMBOL	 drivers/bluetooth/btrsi 0x8e4a869f	rsi_bt_ops
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x03bc993e	ipmi_set_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0705dd14	ipmi_register_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x0b562f1e	ipmi_smi_watcher_register
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x12dd1e77	ipmi_set_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x230094ac	ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x31cab048	ipmi_smi_msg_received
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x40f2b10c	ipmi_alloc_smi_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x4c2054d7	ipmi_request_settime
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x50f65edf	ipmi_set_gets_events
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x67369b42	ipmi_addr_src_to_str
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x74778a80	ipmi_get_my_LUN
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x804f922a	ipmi_addr_length
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x80aa4656	ipmi_free_recv_msg
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x89a5279a	ipmi_get_version
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0x97049435	ipmi_smi_watcher_unregister
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xaca90ebd	ipmi_request_supply_msgs
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xae71627d	ipmi_create_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xcb5fe24a	ipmi_get_smi_info
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xcc10b72d	ipmi_add_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xd54a5050	ipmi_unregister_for_cmd
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4330a39	ipmi_unregister_smi
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xe4f4665b	ipmi_validate_addr
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xec1c2a90	ipmi_get_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf388b18b	ipmi_destroy_user
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xf5531bea	ipmi_poll_interface
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfaaa4831	ipmi_set_my_address
+EXPORT_SYMBOL	 drivers/char/ipmi/ipmi_msghandler 0xfe0f2369	ipmi_get_maintenance_mode
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x08a24e8c	st33zp24_pm_resume
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x331f3a2f	st33zp24_remove
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0x4a7d29f5	st33zp24_probe
+EXPORT_SYMBOL	 drivers/char/tpm/st33zp24/tpm_st33zp24 0xcb419d0a	st33zp24_pm_suspend
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0x25978d50	xillybus_isr
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xbca1bc00	xillybus_endpoint_discovery
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xbf03a327	xillybus_endpoint_remove
+EXPORT_SYMBOL	 drivers/char/xillybus/xillybus_core 0xdd283c7f	xillybus_init_endpoint
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x0222b017	atmel_i2c_enqueue
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x0f471d27	atmel_i2c_probe
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x80a11b1d	atmel_i2c_init_read_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0x87172728	atmel_i2c_send_receive
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xc71ed50c	atmel_i2c_init_genkey_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xf283e995	atmel_i2c_init_random_cmd
+EXPORT_SYMBOL	 drivers/crypto/atmel-i2c 0xfaab573f	atmel_i2c_init_ecdh_cmd
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x0bc6094c	fw_core_remove_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x12586b0a	fw_core_handle_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x127a9658	fw_card_add
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2695628b	fw_send_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x26a98053	fw_cancel_transaction
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2885fec5	fw_get_request_speed
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x2bef3e8b	fw_iso_resource_manage
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3a771e39	fw_core_add_descriptor
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x3c56ef91	fw_workqueue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4587ff87	fw_core_remove_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x49201d65	fw_iso_context_queue
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x4f04d8cd	fw_iso_context_create
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x51cc4f0a	fw_iso_context_flush_completions
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x56f0105c	fw_core_handle_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x57137d60	fw_schedule_bus_reset
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x60da8ab4	fw_card_initialize
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x672d8d29	fw_send_request
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6d242536	fw_iso_context_start
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6dc50487	fw_csr_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x6ea5f9a9	fw_iso_context_stop
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x796b95c1	fw_iso_context_queue_flush
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x86468d44	fw_rcode_string
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x8cb736c3	fw_iso_buffer_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0x941c6d77	fw_bus_type
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xaedf84ce	fw_high_memory_region
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xb80062ca	fw_iso_context_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xcb57ec5f	fw_core_add_address_handler
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xd7e9e90b	fw_core_handle_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe2c6ed06	fw_device_enable_phys_dma
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe3fde125	fw_csr_iterator_next
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe796768e	fw_fill_response
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xe80e5087	fw_csr_iterator_init
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xefc4e771	fw_iso_buffer_destroy
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xf985418d	fw_core_remove_card
+EXPORT_SYMBOL	 drivers/firewire/firewire-core 0xfe25dae8	fw_run_transaction
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x00832a21	drm_gem_shmem_madvise
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x008e31a5	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0247f5d6	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x034ff175	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x035d1145	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03be7b86	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03c63897	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03d314a1	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04e6f7d4	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06c619d7	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08090eb0	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x08265b53	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09881aa1	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x09f471a0	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0aeef264	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b59bcd4	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b7e8e68	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0c2062d0	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0d357392	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e4871a2	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e77bc04	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0eb8d250	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0ef8d2bb	drm_gem_shmem_create_with_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f1f6273	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0f7893ad	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fa46897	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd47ca6	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1104ced9	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1158f2da	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11cb8461	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x120e8e7e	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x122caa6f	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x12386653	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14f25cbf	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1503a654	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1914748e	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x19f7cc8a	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a20934d	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1accdcb4	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b17b9c6	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bcfa218	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1bfe0da9	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c36d5d8	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c5b8857	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1cc0c184	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ce5addb	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1cf4b47f	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1dc9d5f2	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1e62886a	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ecbf72f	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f813968	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20783c74	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x22b6526c	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x236c8269	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x241d3c6b	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24a922b5	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24c0360e	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x24d0a2ef	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x25bebbfe	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x26ea9607	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x284977e1	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2921d5eb	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2976a92d	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a392cc5	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2a852ba7	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b6f61d0	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c700c47	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2cb15bf9	drm_gem_shmem_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d1e1495	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3012e98c	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x30534234	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31600231	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32133d29	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x32cf21a8	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x357cab18	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35a63af3	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36bb4743	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36e3d29a	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x372f2abe	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x379250e7	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37a90a26	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x38e0ceac	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39daf191	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a19a2e3	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3bd4f12e	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c32b208	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d33b572	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e97a7bc	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3e9da245	drm_gem_shmem_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f685e29	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ff4bb74	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4073304e	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4081171f	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41234c18	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4237336e	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x427f1a2f	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4324c958	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x433bb7b2	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4370d5f2	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43c73f1e	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x451fd432	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x458173e9	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x467a3c53	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46bea6c4	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x482a55b9	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48a1d27f	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x49f344d0	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ab1ab94	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b600a14	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4bee1904	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4c918665	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ccb38d9	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d2309d3	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d3e9733	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d942743	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4f1a3eee	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4ff81618	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x509ed291	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50e69781	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x512bf452	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x528baff0	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53aa6d47	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5477d06d	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5493843a	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5514bf60	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5670b06e	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5895f5bd	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58a327d6	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x58fbcb4f	drm_gem_shmem_purge_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59cc5891	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x59f9fe41	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a276bbb	drm_agp_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a55703a	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5acc6f6e	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5b5e16c8	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d7cec81	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5deafff2	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e596acf	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e816267	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5e94d441	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x628444d0	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62ba1833	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x62dbac06	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63855832	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x63bfa305	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x643542e4	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x656aa6c4	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65764671	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x67943de9	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x697e83d9	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6984ade9	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69afc174	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69d23e88	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69f991e1	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a32e2a0	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a8c4262	drm_agp_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6aba2e94	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6cf1b032	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d195242	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d51386c	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d95495e	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e003709	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e77c6c5	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e8ba0ea	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e90a881	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ed74d31	drm_agp_unbind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f1376c3	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x70d16872	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x719220e0	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x71fa74b6	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72449e94	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x72569429	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x730d2fcf	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73463360	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x74ec5fa2	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x757d2b30	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77f5fbe1	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x788befcd	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x78f4d14b	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ac43575	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b6de4df	drm_gem_shmem_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7be4c4ea	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c26128e	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7c5c4924	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7d0d98b5	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7daa743d	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7daba7ce	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7e5e7ac3	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ece45d6	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f155d10	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7f317323	drm_of_crtc_port_mask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8037a53c	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x811dcf90	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x82672d55	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x855786ff	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85d213d2	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x85e3f6b8	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x875f0100	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8879a579	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x888ff056	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x88c62d67	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x88edac62	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8952ff9a	drm_agp_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x89d3bbf9	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8bd9d153	drm_gem_shmem_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c412970	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c7e97ab	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cf2915d	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8d49a91e	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ddf943a	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8eb2b3f9	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8fc7066d	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x900dd237	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x911b29b2	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91c5be80	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91cad313	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92909aa1	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x932fc514	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x937787c1	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94572fb4	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x94c9df55	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9524c5dc	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a60993	of_drm_find_panel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95ac12fb	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96b9063e	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x978a01e6	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x986ef934	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98a3f1c4	drm_gem_shmem_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b4b99f6	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9bc8c42a	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c695848	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c7ab9fc	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c9a9a84	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d38eb08	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dfe2fda	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e91677e	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9eb6f5b1	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9f153ac3	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0b2d55f	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0bf4a1f	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa246a84e	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa36a3e9f	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa47299fe	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4cdafe3	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa55b6e49	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5b33ea3	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa623d93d	drm_gem_cma_prime_import_sg_table_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa770a6c0	drm_agp_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7b8473f	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa7de7b46	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa83bf32c	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa907669a	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab0b35a6	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xac4667c9	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad09953f	of_drm_find_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xad6c2675	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae317617	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae9fe288	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf34776e	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaff600bf	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb04259f7	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0ad96a4	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1291816	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb13dfc86	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb194cb35	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3833803	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb387c752	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb387f53b	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb3e1e00c	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb42b1d29	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb459406a	drm_agp_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4b6fa49	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb4dcce1c	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb520c10d	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb65173cb	drm_gem_shmem_purge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb686663e	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6a2964d	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb71a759a	drm_of_find_possible_crtcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7af0dd8	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb85c67c4	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb929a47c	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba047d29	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb40bc58	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc0530bf	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc69e933	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbc6fea20	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe859240	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbef45d45	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfd26898	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbffd24fa	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc05039ae	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc15cb0cf	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc26b0d0a	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc338f6c0	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc37d0651	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc38b04f9	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5b00156	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc616f194	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6a56219	drm_agp_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6dfa02f	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc858c5bd	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc868478e	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc9e38280	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca3cdb88	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca7df287	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca967d4c	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb0d7ed3	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb10f7b9	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb254036	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd246fd2	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xce3eb0ca	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcee8d4d0	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf7e1788	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfa0a949	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfab8b22	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfd79c2e	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd0f1c78a	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd11c4722	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd2327c30	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3915da2	drm_gem_shmem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd3a61f29	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd55bd45b	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd584d1a3	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd64e6d95	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6a3fcdb	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd7238722	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8207079	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd8599c11	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd88d6b4d	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdae1554e	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb3e3c7e	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdb540ec9	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdbec3287	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdc231307	drm_agp_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd0a2c9c	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdde13214	drm_gem_shmem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde0f8edf	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdef98682	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe135a5b5	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1405158	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe19cf8a4	drm_of_component_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1fe6332	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4676d2f	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4730d0d	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe4ed2eb3	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe668b604	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe730fb6b	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe898618c	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8e2c5ba	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe9f24c09	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xecea50c2	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee68a6ce	drm_cma_gem_create_object_default_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee6956b9	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee951151	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xee97fe47	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeeae2334	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef3b3487	drm_gem_cma_print_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xef3b41e6	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xefeb0521	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0ae864a	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0ba8e56	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf0e34a93	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf24147a7	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2ae1e2f	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2c6f84a	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf49bcde7	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf7e84a0d	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf970a740	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa256204	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb97a5f9	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc8421d0	drm_agp_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfccc369b	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd331633	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfdeacba9	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfec9a408	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff09433b	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xffc8ecf7	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x051f5ff8	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x05741b3c	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x069cd0bd	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x07f2d8f5	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x096b0ca3	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x09f43692	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0bbf3557	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0cbae8af	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0d1aa8f1	drm_dp_cec_register_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0d7ddd8e	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e76de41	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f5f6430	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0f96e271	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x10d08d3a	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11f052bd	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x134ac0c4	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1375f659	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x13da1d98	drm_dp_cec_set_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x15db6ef9	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x16cc7339	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x171552cf	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x17c86cda	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x189f148c	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1e19354e	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ea9c1aa	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20c1fcb9	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x23bd5ae6	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x24b114f5	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x260b215c	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x28405550	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29d1a51e	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2b3a4f21	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2bf42ff5	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c1e1880	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c6d3745	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ce62a77	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2d059768	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2e13af16	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2efe3305	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3212dbde	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34f0163f	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x35438361	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3544fb70	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3907fb45	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a5ea950	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3c7a2281	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3db4f284	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e908c97	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e961c9c	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x41d7d742	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x42607194	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x42c0d759	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x43b5ffbe	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x43ecc61d	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x46177544	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x47c0d270	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48729888	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4932090c	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x49c89c67	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ae6885d	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4b03da47	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ccd65e5	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4cd0ae14	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e635292	drm_dp_cec_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e990be3	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4ec0ace1	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x508241ba	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50e4cc17	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5169f599	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x526e8ff5	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x52772cf4	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x53e55c3a	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x548d1247	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5492e1f2	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56c8fc78	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56e762e4	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a45e051	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a768cfc	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5b5ba605	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5ca0bab4	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e39f8dc	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5fb60f1b	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5fbfab99	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x601d6217	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61598810	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x625718c5	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63a40b4f	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6464e26e	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x69b67634	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6a0d79cf	drm_dp_cec_unset_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6afeda3d	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6d3bcf3a	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6d84f673	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6f1438b2	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71f3dd1e	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73daa2d9	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x74a3028b	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x750b9298	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75435adb	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75e2fa96	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x788861dd	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x798ab845	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7b02129f	drm_dp_cec_unregister_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7e613dc0	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7f5b9d8b	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8090fdcb	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81488792	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x814d649e	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x826b8aab	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8315bd5b	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8393831c	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x844480a5	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x84b574df	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8560033a	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x86490812	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8689245d	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87259a46	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x87ed04fe	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8ac381c5	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8aed2152	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b0a4e6b	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8b81021e	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8c1f4591	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d59d884	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8ff18fb5	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90095fbe	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91229b88	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91cd41b5	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x91f6febf	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x93a113cf	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x981895f9	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9997f8ce	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x99cdf744	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x99eec7f9	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9cfc8feb	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa043caa0	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa2cf3239	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3133ac5	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa492174c	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6c60a60	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa768b022	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa81dbebd	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab68f1a8	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaea0800d	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb13178c6	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb226b15b	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb395ce4c	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb52eb443	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb67885d8	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb883ca68	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb8bea038	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xba51e37a	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbb64161d	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbbb0dbb2	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbbf1ecbb	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbd27fc09	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc2309bb7	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc6e0be70	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc802f0d2	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc817291b	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb8e4979	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcc3e5f65	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcd44d804	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcd50901d	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcdd4c7f4	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd145ab67	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2694385	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2d51782	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd2fb08ce	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd37de108	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xdb37844b	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xde26171b	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe33f5ec5	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe4190ca9	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe42a2dbc	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5a75268	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7a9fd8a	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7fbd15c	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe8f0e3f8	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe9c3896d	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xea7300b5	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xec44144e	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xed148ea8	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xed5bf9fd	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedd856c2	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xef9514af	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xefd1e088	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf0162b73	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf5c962b2	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8a28db6	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfaba294b	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe65b272	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe87074c	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffe0baf5	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfff6b817	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x1f917a92	mipi_dbi_dev_init_with_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x25bcf958	mipi_dbi_enable_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2c0f36db	mipi_dbi_display_is_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x2e722b55	mipi_dbi_pipe_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x47c63e9e	mipi_dbi_hw_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x6a225aae	mipi_dbi_command_stackbuf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x80874757	mipi_dbi_poweron_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0x9ceff916	mipi_dbi_spi_cmd_max_speed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xaa431d27	mipi_dbi_debugfs_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xb568e372	mipi_dbi_command_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc29783dc	mipi_dbi_spi_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xc7441608	mipi_dbi_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd0fd9d20	mipi_dbi_command_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd2c0ed5d	mipi_dbi_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd47f31ec	mipi_dbi_pipe_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xd48eeb81	mipi_dbi_poweron_conditional_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe22b2664	mipi_dbi_spi_transfer
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_mipi_dbi 0xe77a663f	mipi_dbi_buf_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_panel_orientation_quirks 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0274b0cf	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x18fdefa2	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x196c66e1	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x1b93ce5f	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x331b5ce6	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x34bf50b3	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x54989c75	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x57996021	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x66c3df67	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x85ca77db	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x96aea9d3	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9838c44f	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9e7dc645	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa8e946b7	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xa910a383	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb6ced8c0	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xba97afd6	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd1e51211	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xd8413717	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe7d15376	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x05b1a55d	drm_sched_start
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x095efcfa	drm_sched_dependency_optimized
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1689364b	drm_sched_increase_karma
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x1e48476e	drm_sched_fault
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x26b5b2c9	to_drm_sched_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x367c6607	drm_sched_entity_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x5c03ad57	drm_sched_job_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x72d08de4	drm_sched_resubmit_jobs
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x896751d5	drm_sched_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9087a745	drm_sched_entity_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9799aba4	drm_sched_resume_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0x9877a055	drm_sched_suspend_timeout
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xb2bc9e8f	drm_sched_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xbd3f106d	drm_sched_entity_set_priority
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xc01c55eb	drm_sched_stop
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xca255d22	drm_sched_entity_init
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe7476b30	drm_sched_entity_flush
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xe8e4d666	drm_sched_job_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/scheduler/gpu-sched 0xf78a48c9	drm_sched_entity_push_job
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x057e5a25	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x078e8112	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0c2f0e6e	ttm_agp_tt_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0f2e4867	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x17c32860	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x19bd208c	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ea71e89	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x21888faa	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2965fc48	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2c0c216c	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x2f802d0a	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3168c5a6	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3250b61c	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x34d51b51	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x37d6cc4f	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x39debb91	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3d0817a4	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x412b01be	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x44d47373	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x44fb8930	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4582c3fd	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x46eb9e79	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x51de4eff	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x535b5d13	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5e47fbb4	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5eda3727	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6052860c	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x69d86090	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a3065eb	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6c291673	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x70a69c89	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7234269e	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7240712c	ttm_agp_tt_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x73e2b39b	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x74b107bc	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8337eb99	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87c401cb	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x88f2b8de	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96ab338b	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9f95e1e1	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa0cfd263	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa85a56f8	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xadff65bf	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb0629aca	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb1447b83	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb184c08d	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb6e8a849	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb7a2a78f	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc2fd6af2	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc541891a	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc8e848e3	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc933f719	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd0f8c6ef	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd1834636	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd60c5123	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd88d32cd	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe0596a75	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe10ee4d4	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe12181ba	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe1e04233	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe30a10e4	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe83386c1	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf05808b6	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf0fc22c2	ttm_agp_tt_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf367e2e6	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf3726414	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf83e770e	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/hid/hid 0x796b4f75	hid_bus_type
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x2f9e7f8e	vid_which_vrm
+EXPORT_SYMBOL	 drivers/hwmon/hwmon-vid 0x446615bd	vid_from_reg
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x188304c4	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x5ee18f69	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xfd5b7213	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0x9a163f26	i2c_pca_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-pca 0xc142abbc	i2c_pca_add_bus
+EXPORT_SYMBOL	 drivers/i2c/busses/i2c-amd756 0x0d35b15c	amd756_smbus
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x040de9a2	kxsd9_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0x9ccf64d7	kxsd9_common_probe
+EXPORT_SYMBOL	 drivers/iio/accel/kxsd9 0xe7037e7d	kxsd9_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x02b5cf2f	mma9551_set_device_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x16be6626	mma9551_read_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x233835f4	mma9551_gpio_config
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x3d2d6b0e	mma9551_read_status_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x41ef446c	mma9551_read_accel_scale
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x45f26935	mma9551_write_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x5c5f6c56	mma9551_update_config_bits
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x64d9a75e	mma9551_read_status_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x6d57def3	mma9551_set_power_state
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x8430c9ee	mma9551_app_reset
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0x885018fe	mma9551_write_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xa52dfa48	mma9551_read_accel_chan
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xb81971d9	mma9551_read_version
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xbcd7fe96	mma9551_sleep
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xc109f9a5	mma9551_read_status_word
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xc580b684	mma9551_read_config_words
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xe601a2fe	mma9551_write_config_byte
+EXPORT_SYMBOL	 drivers/iio/accel/mma9551_core 0xf497c252	mma9551_read_config_word
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x5ac1b547	st_accel_common_remove
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x866bc9c9	st_accel_get_settings
+EXPORT_SYMBOL	 drivers/iio/accel/st_accel 0x8b934c71	st_accel_common_probe
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0x70e6eca1	qcom_vadc_decimation_from_dt
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xcae36995	qcom_vadc_scale
+EXPORT_SYMBOL	 drivers/iio/adc/qcom-vadc-common 0xf253ae31	qcom_adc5_hw_scale
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0x46f4d23d	iio_triggered_buffer_setup
+EXPORT_SYMBOL	 drivers/iio/buffer/industrialio-triggered-buffer 0xc4bb5d9b	iio_triggered_buffer_cleanup
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0x61a63f2a	iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xb4e9751f	iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xb632f27a	devm_iio_kfifo_allocate
+EXPORT_SYMBOL	 drivers/iio/buffer/kfifo_buf 0xbe56b483	devm_iio_kfifo_free
+EXPORT_SYMBOL	 drivers/iio/chemical/bme680_core 0x5a5a20bd	bme680_regmap_config
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x03bd4e46	hid_sensor_convert_timestamp
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x2cfac805	hid_sensor_read_poll_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x40ac0de8	hid_sensor_read_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x44e53d2a	hid_sensor_write_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x64ea9c54	hid_sensor_write_samp_freq_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7f7621ec	hid_sensor_format_scale
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x8f3cc1d0	hid_sensor_get_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xda930705	hid_sensor_parse_common_attributes
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xee7c7b31	hid_sensor_batch_mode_supported
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xee8869d6	hid_sensor_set_report_latency
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xfe6e8398	hid_sensor_read_raw_hyst_value
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4b7c64ad	hid_sensor_pm_ops
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0x82a99268	hid_sensor_setup_trigger
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xca96c43a	hid_sensor_power_state
+EXPORT_SYMBOL	 drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd8bda561	hid_sensor_remove_trigger
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x045688dd	ms_sensors_read_prom_word
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1390e387	ms_sensors_show_battery_low
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x1f342961	ms_sensors_ht_read_humidity
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x2d2f5cd5	ms_sensors_reset
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x42b6a050	ms_sensors_convert_and_read
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5b12c920	ms_sensors_tp_read_prom
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5bcfc922	ms_sensors_write_resolution
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0x5d4a7371	ms_sensors_write_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xa8188419	ms_sensors_read_serial
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xb1c63bee	ms_sensors_show_heater
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xbde4c06d	ms_sensors_read_temp_and_pressure
+EXPORT_SYMBOL	 drivers/iio/common/ms_sensors/ms_sensors_i2c 0xeb761416	ms_sensors_ht_read_temperature
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xa00fe840	ssp_change_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xac982704	ssp_get_sensor_delay
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xc70d711f	ssp_disable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xd2c319a0	ssp_enable_sensor
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/sensorhub 0xf44b12d0	ssp_register_consumer
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x2224a5ae	ssp_common_buffer_postdisable
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x4405d06f	ssp_common_process_data
+EXPORT_SYMBOL	 drivers/iio/common/ssp_sensors/ssp_iio 0x954e8d89	ssp_common_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0713d308	st_sensors_validate_device
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x074d7047	st_sensors_trigger_handler
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0d4a0021	st_sensors_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x0f4653c1	st_sensors_sysfs_scale_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x2f40cd96	st_sensors_power_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x3cbb0439	st_sensors_get_settings_index
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x5b37dbf4	st_sensors_set_dataready_irq
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x672b5c87	st_sensors_read_info_raw
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x79b7371a	st_sensors_set_fullscale_by_gain
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x7c57ad01	st_sensors_deallocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x8ff41e5d	st_sensors_verify_id
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x92d2aaa8	st_sensors_set_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x96c4d75c	st_sensors_of_name_probe
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x981cacb9	st_sensors_set_axis_enable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x98634fc9	st_sensors_init_sensor
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x9b2a6adb	st_sensors_set_odr
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0x9f84e37d	st_sensors_allocate_trigger
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xa74af9a5	st_sensors_power_disable
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors 0xbbede26e	st_sensors_sysfs_sampling_frequency_avail
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_i2c 0xc0351b09	st_sensors_i2c_configure
+EXPORT_SYMBOL	 drivers/iio/common/st_sensors/st_sensors_spi 0xe3af5605	st_sensors_spi_configure
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x32a7894e	mpu3050_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0x88a750ca	mpu3050_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/gyro/mpu3050 0xb926c290	mpu3050_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x6a1845dd	st_gyro_common_remove
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x6aa1f546	st_gyro_common_probe
+EXPORT_SYMBOL	 drivers/iio/gyro/st_gyro 0x7dce9f7e	st_gyro_get_settings
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0x0c4b8666	hts221_pm_ops
+EXPORT_SYMBOL	 drivers/iio/humidity/hts221 0xa31d113d	hts221_probe
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0x32f2e500	adis_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/adis_lib 0xb03c559d	adis_debugfs_reg_access
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0x5c1fd75f	bmi160_regmap_config
+EXPORT_SYMBOL	 drivers/iio/imu/bmi160/bmi160_core 0xca19cfae	bmi160_enable_irq
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x275d8246	st_lsm6dsx_probe
+EXPORT_SYMBOL	 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x34f7540c	st_lsm6dsx_pm_ops
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2151f8ac	iio_read_const_attr
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x22525258	iio_trigger_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x23b9f5ef	iio_device_alloc
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x26561ab4	iio_trigger_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2c6ab493	iio_trigger_poll_chained
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x2d6bcdcb	iio_trigger_generic_data_rdy_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x49cfc3d1	iio_device_free
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x4abd6c0a	__iio_device_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x592df302	iio_trigger_using_own
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x60fdc956	__iio_trigger_register
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x6a2de502	iio_get_time_ns
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7408b5ae	iio_device_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x7b8900f7	iio_trigger_unregister
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x81d5d9ab	iio_triggered_buffer_predisable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x87716de0	iio_trigger_poll
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x90ec10a2	iio_buffer_init
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x90fe751d	iio_push_event
+EXPORT_SYMBOL	 drivers/iio/industrialio 0x99473ea5	iio_trigger_notify_done
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xa9218b6d	iio_get_time_res
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xabbf59cc	iio_triggered_buffer_postenable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xb784c20c	iio_bus_type
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xc619d080	iio_trigger_set_immutable
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdb655e4b	iio_trigger_validate_own_device
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf709178	iio_read_mount_matrix
+EXPORT_SYMBOL	 drivers/iio/industrialio 0xdf76bbeb	iio_pollfunc_store_time
+EXPORT_SYMBOL	 drivers/iio/industrialio-configfs 0x2083905a	iio_configfs_subsys
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0x87cd8760	iio_register_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xbc0ce75e	iio_sw_device_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xf1d7e438	iio_unregister_sw_device_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-device 0xf323c870	iio_sw_device_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x78a65a12	iio_unregister_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0x96d715da	iio_register_sw_trigger_type
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xe4c1a1bb	iio_sw_trigger_destroy
+EXPORT_SYMBOL	 drivers/iio/industrialio-sw-trigger 0xefafb080	iio_sw_trigger_create
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0x418907fc	iio_triggered_event_setup
+EXPORT_SYMBOL	 drivers/iio/industrialio-triggered-event 0xc8e9a13d	iio_triggered_event_cleanup
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0x82eab4b5	st_uvis25_probe
+EXPORT_SYMBOL	 drivers/iio/light/st_uvis25_core 0xdd1e95f7	st_uvis25_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x293ad59f	bmc150_magn_regmap_config
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x439f35c0	bmc150_magn_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0x851e76be	bmc150_magn_pm_ops
+EXPORT_SYMBOL	 drivers/iio/magnetometer/bmc150_magn 0xb0087628	bmc150_magn_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x600a52f1	hmc5843_common_suspend
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x7603bae1	hmc5843_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x9872bc57	hmc5843_common_resume
+EXPORT_SYMBOL	 drivers/iio/magnetometer/hmc5843_core 0x99c2d130	hmc5843_common_probe
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0x098611b3	st_magn_common_remove
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xec3a54df	st_magn_get_settings
+EXPORT_SYMBOL	 drivers/iio/magnetometer/st_magn 0xf299425b	st_magn_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x085cb2bc	bmp280_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x0b774661	bmp280_common_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x105dc663	bmp280_dev_pm_ops
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x79098a5a	bmp280_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/bmp280 0x938f5738	bmp180_regmap_config
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x3e2bd9e8	ms5611_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/ms5611_core 0x84923174	ms5611_probe
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x4565f9c2	st_press_common_remove
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0x800fe387	st_press_get_settings
+EXPORT_SYMBOL	 drivers/iio/pressure/st_pressure 0xf55ca7a2	st_press_common_probe
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x02a74d45	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1268ecca	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1b1e184a	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x22df244e	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2657424b	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2b36d76a	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x47920961	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x511a45ea	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x532fb9ce	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x5752756a	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x662e7b1e	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x719e55f7	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa0679791	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa68e43e4	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb43da4b6	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xd53c5caa	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xe4a375f6	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xf3e9b389	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x02fb6f2d	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x04954843	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x04ca7897	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x09260653	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0e880217	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x130b6dcb	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13722468	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x15a30475	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x16475416	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x17242032	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x184621a4	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1afc287c	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b3af290	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1da6d28b	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1dedd52f	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x20324e71	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21817221	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22a5ae34	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22f3cf93	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x245ef2eb	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x289995d8	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x29b25895	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2ba42d02	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2cb9b030	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2f4d707b	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x30a67a79	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x34140b51	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x341b7f7e	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3494f62e	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36a68efe	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3b2cf5a3	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d31a330	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3e2c9e0e	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3f57062f	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4006da5a	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x415e9535	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45f60196	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x47317e23	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48f2c206	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49bf2194	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49e86a0e	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4a2abf84	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4d9aa270	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f74b33c	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x505635fb	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54ae01c4	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x55113c9c	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x56c6e6cb	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x56cfd38f	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x57a13b17	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5878449b	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x588f347a	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x59b11eb7	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5b9dd649	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c0a9a48	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c377c06	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5c589600	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6195bcad	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6289a9ec	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x62ee4caf	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x63918a65	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6809f413	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x682a864c	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6987b117	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x699bcc43	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x69dbc35e	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6bc55ef2	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6ca7c4aa	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6ef62ad6	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f79e2dc	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x72fad6eb	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x731f30fb	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x74112e6b	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x750e4e8d	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7958809b	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b454605	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7bf96d8b	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7dee2cbf	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7fb56e8b	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7ff0f2bc	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80af9641	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8170414c	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8197296f	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81c80400	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8380860b	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x848e0a79	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x85151428	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b3629eb	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b63cfca	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8b97d868	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8d21701e	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e28271a	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x906a046f	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90c9eb30	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x933a3775	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93bd2002	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x93c4e78b	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x94ab0726	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x95595c93	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x964a80ec	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9656f2b4	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97a50aa6	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x993253b3	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x997da542	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9a67faa6	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b60006f	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9bd3aec9	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9c566fad	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9df8cca7	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9dfdb815	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9e433067	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa432baf6	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa48cb619	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa53f5014	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa64db94c	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6a87164	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa6d81e7f	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa70ac817	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7fa3eb2	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa8359858	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa89e2ef8	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa9d862b5	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaa3dd2c8	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xab605e87	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xabe7ec02	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaca73f83	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae59b9a9	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xaf140bcc	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xafc5c181	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb04fe7b1	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb2fd6fe6	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb4c42b87	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb55dafc9	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb563d898	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb5d34fe4	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb689cb43	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb6c0937a	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb768efcc	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb8454eed	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb8bdc017	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb90c5447	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xba365f6d	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbb361f8b	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbc27dbe3	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbf30f862	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc06aaeaf	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc266f141	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc6371ff0	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc6859782	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc87bc941	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd4c06f4	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcec71d8d	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd15411f8	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd16f2d9c	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd2951d4c	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd3e1d00f	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd5550e07	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd79b4c18	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd80222fa	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd8c3f6ad	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd964d89a	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda15fc5a	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda2fded2	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdb4f735c	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdd361f7c	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde0e81c5	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde881228	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde9ad89e	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe27049fa	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe336bbda	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe3f3cc59	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4816219	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4d9f71c	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe56de6ea	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xebd74e93	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xed6ff024	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xee601e1d	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeef90eb7	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf10ca0b6	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf19c8ac8	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1b17e42	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1fc77c2	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf2474193	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4912a11	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfbd8371b	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfdd8776d	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe7d6eb1	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfe80ef37	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xff5ec8f0	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x08d32009	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0cb4cf5c	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x0d198bf3	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x106995d7	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x180dba55	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x26bd0dad	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x2c202379	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x397e5a63	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x406daa51	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x412b8653	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x41a1cd04	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x435b8b8c	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4d96493e	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4f82944e	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x4fba05d5	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x50b1f199	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x54f775fc	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5c0b4da7	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6b61735a	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x945537f3	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x955e11fa	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x988ab568	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xb73eb704	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbe7a8227	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc3c5b5bc	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xcd9d04a2	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd50dc767	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xe12f6046	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xf001884a	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xfe2d24e5	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x0933e1cb	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x0ea39367	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x4c8303bc	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x574dbcc1	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x6885c93b	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x8b294a06	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xaab6f6a9	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xd8eac9a4	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x1033a6fb	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x22d7393b	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2518a50b	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2b60fe14	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2dbeb94a	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x3e5345df	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x41e60aae	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x46542403	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4ae80231	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x516467f5	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x527cd58b	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5804d1de	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5871553d	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x58ba87e6	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x5c525995	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6927f6a8	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6d246f6f	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6d88df3f	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x6efde21b	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x85c856f6	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x95797948	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9cd20d07	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa49b4e3b	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbc519d46	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc331a248	rdma_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc6615ff4	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd0379464	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd9a85f5e	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xebbcc06e	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xfcd7cec8	rdma_read_gids
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x2816fc94	__gameport_register_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x29479e21	gameport_open
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x369cc403	__gameport_register_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x538c1d5e	gameport_set_phys
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x833a0fb5	gameport_stop_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0x9aa724b1	gameport_unregister_driver
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xa0c35aa9	gameport_unregister_port
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xdfbc8284	gameport_start_polling
+EXPORT_SYMBOL	 drivers/input/gameport/gameport 0xed825092	gameport_close
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x0e7c457f	input_unregister_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x14f2c99b	input_free_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x5f663f6d	input_register_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x6b521020	devm_input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/input-polldev 0x93be6542	input_allocate_polled_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0x3a545f78	iforce_process_packet
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xbc7e2491	iforce_init_device
+EXPORT_SYMBOL	 drivers/input/joystick/iforce/iforce 0xf6b3b473	iforce_send_packet
+EXPORT_SYMBOL	 drivers/input/matrix-keymap 0x230d85a6	matrix_keypad_build_keymap
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0x5e847ae1	ad714x_disable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xaa9c07c5	ad714x_enable
+EXPORT_SYMBOL	 drivers/input/misc/ad714x 0xdf51eb3b	ad714x_probe
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x54e430b1	cma3000_init
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x892d76b2	cma3000_resume
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0x89d9444e	cma3000_exit
+EXPORT_SYMBOL	 drivers/input/misc/cma3000_d0x 0xca3f100a	cma3000_suspend
+EXPORT_SYMBOL	 drivers/input/rmi4/rmi_core 0x82b8b4af	rmi_unregister_transport_device
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x377db780	sparse_keymap_report_entry
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x42cfa4cb	sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x5080af81	sparse_keymap_setup
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x50d2115e	sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL	 drivers/input/sparse-keymap 0x8e9cd56f	sparse_keymap_report_event
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xd2b1e464	ad7879_probe
+EXPORT_SYMBOL	 drivers/input/touchscreen/ad7879 0xf758c652	ad7879_pm_ops
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x04c38a5d	detach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x0cd76ca1	capi_ctr_resume_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2780210e	capi20_register
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x2f4d6686	attach_capi_ctr
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x32aa05f2	capi20_isinstalled
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x3630300d	capi20_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x4bbf47d3	capi20_get_profile
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x594700a1	capi_ctr_down
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6057c6f3	capi_message2cmsg
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x69f47c96	capi_ctr_suspend_output
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6be7a92b	capi20_get_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x6fc65d87	capi20_get_version
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x7292ab34	cdebbuf_free
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x72a25a72	capi_cmsg2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x772ecce3	capi_ctr_handle_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x8f699913	capilib_release
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x904907ba	capi20_get_serial
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xada907a4	capilib_free_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb0ad34ee	capilib_new_ncci
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd178539	capilib_release_appl
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xbd8c5633	capi20_put_message
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xc42d9ec1	capi20_manufacturer
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcb6c7d4e	capi_ctr_ready
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xcde1026b	capilib_data_b3_conf
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xf5eee0a4	capilib_data_b3_req
+EXPORT_SYMBOL	 drivers/isdn/capi/kernelcapi 0xfd552f7a	capi_message2str
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5	isdnhdlc_decode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5	isdnhdlc_out_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58	isdnhdlc_rcv_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223	isdnhdlc_encode
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x13bf7c6d	mISDNipac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0x8491112c	mISDNisac_init
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xabfdb519	mISDNipac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNipac 0xf42fadfe	mISDNisac_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0x5e4eeea7	mISDNisar_irq
+EXPORT_SYMBOL	 drivers/isdn/hardware/mISDN/mISDNisar 0xfe2f397e	mISDNisar_init
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x00244566	mISDN_initbchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03107fc6	mISDNDevName4ch
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x03a68066	mISDN_FsmRestartTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1a2ab207	dchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1a374083	mISDN_freedchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1d2da9be	mISDN_register_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x1e4e876d	mISDN_ctrl_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26236de8	mISDN_clock_update
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x26bf70a3	mISDN_initdchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30d25b0d	mISDN_FsmDelTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x30fcf9dc	mISDN_unregister_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x313b1fde	mISDN_FsmAddTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x533f9725	recv_Echannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x558c5a7a	create_l1
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x5fa7b4c1	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6047df40	mISDN_FsmInitTimer
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x6292417b	recv_Bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x69de1b72	get_next_dframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x72321acb	bchannel_get_rxbuf
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x900e7458	mISDN_clear_bchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0x9c928457	mISDN_FsmNew
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xbd133fc8	get_next_bframe
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xc474102c	recv_Dchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xca8946a8	bchannel_senddata
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd06f9554	mISDN_register_device
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xdca3bd3e	queue_ch_frame
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe18f6f57	recv_Bchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xeb0cae0e	mISDN_freebchannel
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_core 0xf8411804	recv_Dchannel_skb
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x01087af0	mISDN_dsp_element_unregister
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b	dsp_audio_law_to_s32
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8	dsp_audio_s16_to_law
+EXPORT_SYMBOL	 drivers/isdn/mISDN/mISDN_dsp 0xb98308d8	mISDN_dsp_element_register
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0x54a12ec4	ti_lmu_common_set_ramp
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xa10876af	ti_lmu_common_get_brt_res
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xced72aae	ti_lmu_common_set_brightness
+EXPORT_SYMBOL	 drivers/leds/leds-ti-lmu-common 0xe786ce95	ti_lmu_common_get_ramp_params
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x05cf0f13	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x1d417ce9	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3c5d035b	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x440b4830	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5a7ad8fc	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6081c558	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x6e16e906	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x7fca83ba	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9b7c44b6	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb5c2723a	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc2797b61	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xc401d489	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xd3b45a8d	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xdad35e82	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf076bc57	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/dm-log 0x6a69fd73	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0x8cacbb8e	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0xa6e59abe	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0xfb22f47f	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x81009732	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xbc839ce3	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xcd5ff16b	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xdc4b7fff	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf630031e	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xf898f4b5	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/raid456 0x23cfcfae	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/md/raid456 0x4ecba79d	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x00ab14e7	flexcop_device_exit
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x2a3f4e3a	flexcop_wan_set_speed
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x2aec9f80	flexcop_sram_set_dest
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x3bae8f59	flexcop_pid_feed_control
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x45cda1c1	flexcop_device_initialize
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x836bc492	flexcop_dump_reg
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x91f22b00	flexcop_device_kfree
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0x9f37e349	flexcop_pass_dmx_packets
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xdd12399a	flexcop_sram_ctrl
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf06b35f6	flexcop_device_kmalloc
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xf549afc5	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xfa47c3da	flexcop_i2c_request
+EXPORT_SYMBOL	 drivers/media/common/b2c2/b2c2-flexcop 0xfe76fcf9	flexcop_pass_dmx_data
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x17e1ac35	cx2341x_handler_set_50hz
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x2ac9a0ff	cx2341x_handler_set_busy
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x332db307	cx2341x_handler_init
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x55aa7c5f	cx2341x_mpeg_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0x8d3a49fd	cx2341x_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb34d0b83	cx2341x_handler_setup
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xb9c8f3f1	cx2341x_update
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xc889377e	cx2341x_log_status
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xdaff62f9	cx2341x_fill_defaults
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xeb854f47	cx2341x_ctrl_query
+EXPORT_SYMBOL	 drivers/media/common/cx2341x 0xf4d81106	cx2341x_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/common/cypress_firmware 0xe2e15c81	cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0x0dbf0296	tveeprom_hauppauge_analog
+EXPORT_SYMBOL	 drivers/media/common/tveeprom 0xfdf53783	tveeprom_read
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x660517fc	vb2_buffer_in_use
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-common 0x9a105a03	vb2_verify_memory_type
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x0755588e	vb2_dvb_alloc_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x2b754d39	vb2_dvb_unregister_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x6d69384a	vb2_dvb_register_bus
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0x6dd91a7d	vb2_dvb_find_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xe3146bf9	vb2_dvb_dealloc_frontends
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-dvb 0xf419cc6c	vb2_dvb_get_frontend
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0x52e96379	vb2_destroy_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-memops 0xdc4d0092	vb2_create_framevec
+EXPORT_SYMBOL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x500c8ad6	vb2_querybuf
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x064fd246	dvb_ringbuffer_read_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x08733236	intlog10
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x0fb4e747	dvb_generic_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x26752be6	dvb_unregister_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x29d58443	dvb_ringbuffer_empty
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3214bb39	dvb_remove_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x333c7ffa	dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3b93d71a	dvb_frontend_sleep_until
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x3f2201f7	dvb_dmx_swfilter_204
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x4502c3be	dvb_ringbuffer_flush
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x470dcf45	dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x47d36a6e	dvb_dmx_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5830a49a	dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x5f2b1d95	intlog2
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x625ef4c0	dvb_frontend_reinitialise
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x647c9869	dvb_frontend_suspend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x66a68864	dvb_ringbuffer_avail
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x66bd7694	dvb_ringbuffer_free
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x68258eb5	dvb_generic_open
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x6ef5628b	dvb_ringbuffer_read
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x710a0cbb	dvb_unregister_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x82878c35	dvb_ringbuffer_write
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9163d0fa	dvb_net_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x962defd5	dvb_device_get
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0x9ccb4484	dvb_ca_en50221_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xa1608189	dvb_register_device
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb313211f	dvb_dmx_swfilter_raw
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xb5a3524f	dvb_ringbuffer_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xba1961e1	dvb_frontend_resume
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc365cff5	dvb_net_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xc8531cd2	dvb_dmx_swfilter_packets
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcb7c78da	dvb_register_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xce748c8d	dvb_ringbuffer_write_user
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xcf66912f	dvb_dmxdev_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd1acf475	dvb_register_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xd9c48ad1	dvb_ca_en50221_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xdf4f42b4	dvb_frontend_detach
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe0668b7b	dvb_dmx_init
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe45edcd8	dvb_unregister_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xe954982e	dvb_generic_ioctl
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xec25f0b6	dvb_dmx_swfilter
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xedcb954e	dvb_dmxdev_release
+EXPORT_SYMBOL	 drivers/media/dvb-core/dvb-core 0xf9a577c2	dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x53234888	au8522_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x7cd9e3f0	au8522_analog_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x894ac415	au8522_i2c_gate_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x8cabc396	au8522_writereg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0x9db8c231	au8522_readreg
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xec689534	au8522_get_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf1c0c4ea	au8522_sleep
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xf3f7fe08	au8522_led_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/au8522_common 0xfec1e981	au8522_release_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24113 0x700c42f7	cx24113_agc_callback
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/cx24123 0x538e958b	cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x34ca32a3	dib0070_get_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0x9646eb78	dib0070_ctrl_agc_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xa14b8887	dib0070_set_rf_output
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0070 0xaa062b18	dib0070_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x09925e1a	dib0090_update_rframp_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x1bd0f908	dib0090_gain_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x22141c66	dib0090_update_tuning_table_7090
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x3414f5c9	dib0090_set_dc_servo
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x442c0592	dib0090_get_wbd_offset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x513b1eac	dib0090_set_vga
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x72e74c44	dib0090_set_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0x905282fc	dib0090_set_switch
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xa1e41558	dib0090_dcc_freq
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xc5c3bd5a	dib0090_pwm_gain_reset
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe3a0947c	dib0090_get_current_gain
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xe4cfcdf9	dib0090_get_wbd_target
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib0090 0xf56abba2	dib0090_get_tune_state
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x318be534	dib3000mc_set_config
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x371e75e8	dib3000mc_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x3a7da15d	dib3000mc_pid_parse
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0x7ecdae93	dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib3000mc 0xe6092462	dib3000mc_pid_control
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x3192dcbc	dib7000m_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x3ab4351b	dib7000m_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib7000m 0x643264fd	dib7000m_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x43f6fe7a	dib9000_get_tuner_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x45333638	dib9000_set_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x6582a714	dib9000_fw_set_component_bus_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x7ca9713d	dib9000_get_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0x8376ad6b	dib9000_firmware_post_pll_init
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xa16b1082	dib9000_get_component_bus_interface
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xc3be6dc5	dib9000_fw_pid_filter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xce0b3b05	dib9000_i2c_enumeration
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xe5409cd3	dib9000_fw_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xeeb009ad	dib9000_get_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xf9a6749f	dib9000_set_slave_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dib9000 0xfd10abbd	dib9000_set_gpio
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x105bff41	dibx000_i2c_set_speed
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0x2e6fc069	dibx000_init_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xae0fb8f9	dibx000_reset_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xc1d6abf2	dibx000_exit_i2c_master
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dibx000_common 0xe7d7f9c3	dibx000_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x20acd82a	dvb_dummy_fe_qpsk_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x8b62fc42	dvb_dummy_fe_ofdm_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/dvb_dummy_fe 0x968574cd	dvb_dummy_fe_qam_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lgs8gl5 0x888e2e6e	lgs8gl5_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/lnbh29 0x184acdfa	lnbh29_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/m88ds3103 0x84d2e2d1	m88ds3103_get_agc_pwm
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/s5h1420 0x197462f6	s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/sp8870 0xab33ca6d	sp8870_attach
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xa52d97c8	zd1301_demod_get_dvb_frontend
+EXPORT_SYMBOL	 drivers/media/dvb-frontends/zd1301_demod 0xe4cc61d9	zd1301_demod_get_i2c_adapter
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x06764e1e	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3dffbcac	flexcop_dma_control_size_irq
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0x5296a1ad	flexcop_dma_config
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa08dff71	flexcop_dma_xfer_control
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb1961a1a	flexcop_dma_allocate
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb5023ac3	flexcop_dma_free
+EXPORT_SYMBOL	 drivers/media/pci/b2c2/b2c2-flexcop-pci 0xef552e0d	flexcop_dma_config_timer
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x136f6640	bt878_start
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x18884f9e	bt878
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x390b82e7	bt878_device_control
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0x9c1e139e	bt878_stop
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bt878 0xd5d0bdef	bt878_num
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x11dc4b6d	bttv_gpio_enable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0x8ecf4acc	bttv_write_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbbba6c53	bttv_get_pcidev
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xbcf2d2fb	bttv_read_gpio
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xd4afdc83	bttv_sub_register
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/bttv 0xebc233b1	bttv_sub_unregister
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x0074b6d9	dst_pio_disable
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x2058fb53	dst_comm_init
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x20aaf195	read_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x43a983fd	dst_check_sum
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x8fc6045b	dst_error_bailout
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0x9770f954	rdc_reset_state
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xaf8462e8	write_dst
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xb6bd7032	dst_wait_dst_ready
+EXPORT_SYMBOL	 drivers/media/pci/bt8xx/dst 0xf20b57ea	dst_error_recovery
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x4af84eca	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x6e2696ad	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x87637a15	cx18_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0x8d2c2393	cx18_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx18/cx18 0xb84b5502	cx18_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0x6ff7510d	altera_ci_tuner_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xd0fdb6b0	altera_ci_init
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xdb3faf38	altera_ci_release
+EXPORT_SYMBOL	 drivers/media/pci/cx23885/altera-ci 0xe66b9812	altera_ci_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x1ae44757	cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x44b517f5	cx25821_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x4c47ec4e	cx25821_riscmem_alloc
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x5f353840	cx25821_set_gpiopin_direction
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x6c4dbf81	cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x70a845b9	cx25821_risc_databuffer_audio
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0x9af66ea6	cx25821_dev_unregister
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xd8935e03	cx25821_dev_get
+EXPORT_SYMBOL	 drivers/media/pci/cx25821/cx25821 0xe9050411	cx25821_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0x4c655c4f	vp3054_i2c_remove
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88-vp3054-i2c 0xc3a5b1d3	vp3054_i2c_probe
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x5f8b59a9	cx88_enum_input
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x7390c602	cx88_set_freq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0x965fab6e	cx88_video_mux
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8800 0xecdd0feb	cx88_querycap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x1d985622	cx8802_get_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x3716590c	cx8802_buf_queue
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0x8297e419	cx8802_unregister_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xa3708ef7	cx8802_cancel_buffers
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xbfd1fc92	cx8802_start_dma
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xc41b51f0	cx8802_buf_prepare
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx8802 0xf9612502	cx8802_register_driver
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x13a7f8d3	cx88_core_put
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x2af81aa7	cx88_ir_start
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x3bec82a2	cx88_wakeup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x4164edeb	cx88_shutdown
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5cf0783d	cx88_core_get
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x5edb7ae5	cx88_print_irqbits
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6141c8c5	cx88_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x624ed6d5	cx88_ir_stop
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6359340d	cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x6477d093	cx88_reset
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x64d6c8fe	cx88_sram_channel_dump
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x655a40b6	cx88_vdev_init
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x70627c95	cx88_set_scale
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8b707a44	cx88_newstation
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x8d88137a	cx88_sram_channels
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x904b8696	cx88_audio_thread
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0x9640b027	cx88_risc_databuffer
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xb4ef6899	cx88_core_irq
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xb8d0325d	cx88_set_tvnorm
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xbf3ea3ac	cx88_get_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xdffdd863	cx88_set_tvaudio
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe75681e3	cx88_sram_channel_setup
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xe7c063f6	cx88_set_stereo
+EXPORT_SYMBOL	 drivers/media/pci/cx88/cx88xx 0xfabd9296	cx88_risc_buffer
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x0b9da153	ivtv_claim_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x14f67530	ivtv_debug
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x187b9c43	ivtv_start_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x36db52af	ivtv_vapi_result
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x36f92b06	ivtv_udma_prepare
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x3d03c242	ivtv_udma_unmap
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x4836b26b	ivtv_reset_ir_gpio
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5579e708	ivtv_api
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x59366b94	ivtv_clear_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5b374091	ivtv_set_irq_mask
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x5de3f120	ivtv_udma_alloc
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x83bbdcf8	ivtv_vapi
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x967ed215	ivtv_release_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0x9846e367	ivtv_stop_v4l2_encode_stream
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xa2397711	ivtv_firmware_check
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xad1f633c	ivtv_ext_init
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xb349722a	ivtv_udma_setup
+EXPORT_SYMBOL	 drivers/media/pci/ivtv/ivtv 0xc24c75bb	ivtv_init_on_first_open
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x04e83446	saa7134_tuner_callback
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1211df5d	saa7134_devlist
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x1f7104bb	saa7134_pgtable_free
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x44c3f053	saa7134_ts_unregister
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x53769f0d	saa7134_pgtable_alloc
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x5cfa23a4	saa7134_devlist_lock
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x67a1317d	saa7134_dmasound_init
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x730c4be3	saa7134_boards
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x75c00da8	saa7134_tvaudio_setmute
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x8e5d7367	saa7134_set_dmabits
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0x9f6bf299	saa_dsp_writel
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xb49b6561	saa7134_dmasound_exit
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xbc071ec7	saa7134_set_gpio
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xeef624f9	saa7134_ts_register
+EXPORT_SYMBOL	 drivers/media/pci/saa7134/saa7134 0xf4e6e8ed	saa7134_pgtable_build
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0x693e74ba	ttpci_eeprom_decode_mac
+EXPORT_SYMBOL	 drivers/media/pci/ttpci/ttpci-eeprom 0xfaa468a6	ttpci_eeprom_parse_mac
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x685cf324	snd_tea575x_hw_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x70cfd349	snd_tea575x_set_freq
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x737bd126	snd_tea575x_s_hw_freq_seek
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0x9e1fdfde	snd_tea575x_exit
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa7090cfd	snd_tea575x_g_tuner
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xa83562ee	snd_tea575x_init
+EXPORT_SYMBOL	 drivers/media/radio/tea575x 0xf557f5a2	snd_tea575x_enum_freq_bands
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x0bc53558	ir_raw_handler_unregister
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x2ad91f6e	ir_raw_gen_pl
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x30b802bd	ir_raw_handler_register
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x3131b773	ir_raw_encode_scancode
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x4725eda1	ir_raw_encode_carrier
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x7cf52901	ir_raw_gen_manchester
+EXPORT_SYMBOL	 drivers/media/rc/rc-core 0x9e12e343	ir_raw_gen_pd
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x40b4063c	fc0013_rc_cal_add
+EXPORT_SYMBOL	 drivers/media/tuners/fc0013 0x47f38b59	fc0013_rc_cal_reset
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0x4c48939e	tuners
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-types 0xc2821775	tuner_count
+EXPORT_SYMBOL	 drivers/media/tuners/tuner-xc2028 0x8d0785bd	xc2028_attach
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0x5f329a36	cx231xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/cx231xx/cx231xx 0xf6812c59	cx231xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0850c839	dvb_usbv2_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2b01cf4e	dvb_usbv2_suspend
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x45d9cd4b	dvb_usbv2_generic_rw_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9a6dcc71	dvb_usbv2_reset_resume
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa4a3a71f	dvb_usbv2_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc9c2910e	dvb_usbv2_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd2d16302	dvb_usbv2_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xdf712eb6	dvb_usbv2_probe
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe315c9c3	dvb_usbv2_generic_write_locked
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x4827e5da	dvb_usb_device_init
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x67022f1c	dvb_usb_get_hexline
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0x8cd8d7cf	usb_cypress_load_firmware
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xafd97bb0	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf25c4663	dvb_usb_device_exit
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xf7b26ff8	dvb_usb_generic_rw
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb 0xfd2c5c58	dvb_usb_generic_write
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x3e70e9f8	af9005_rc_decode
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x782cbc90	rc_map_af9005_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db	rc_map_af9005_table_size
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0c711165	dibusb_read_eeprom_byte
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0d2dc570	dibusb2_0_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x17256118	dibusb_pid_filter
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6b14d9c4	dibusb_rc_query
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb5957dce	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc915134a	dibusb_streaming_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdfbba290	rc_map_dibusb_table
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe9e304c2	dibusb_i2c_algo
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf48b66a7	dibusb_power_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf6d74cd2	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x26985337	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL	 drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xae296ac9	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0x3423b4b7	em28xx_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/em28xx/em28xx 0xf186c45a	em28xx_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x1564f465	go7007_snd_remove
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x19aec7a7	go7007_parse_video_stream
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x3eeece20	go7007_update_board
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x595120c2	go7007_boot_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x5c461507	go7007_alloc
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x81e9e0a2	go7007_read_interrupt
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0x8272c1b1	go7007_snd_init
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe17b23f9	go7007_register_encoder
+EXPORT_SYMBOL	 drivers/media/usb/go7007/go7007 0xe5f1ae11	go7007_read_addr
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x0586edfb	gspca_suspend
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x165e46f3	gspca_dev_probe
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x6a7e2273	gspca_coarse_grained_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9670af2c	gspca_debug
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0x9887c661	gspca_expo_autogain
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xbfc2f9c8	gspca_frame_add
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe4fa0334	gspca_disconnect
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xe5fc77ec	gspca_dev_probe2
+EXPORT_SYMBOL	 drivers/media/usb/gspca/gspca_main 0xf3abcf40	gspca_resume
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x0d99580a	tm6000_register_extension
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x42b81cd7	tm6000_init_digital_mode
+EXPORT_SYMBOL	 drivers/media/usb/tm6000/tm6000 0x49325abe	tm6000_unregister_extension
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x0e1989dc	ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL	 drivers/media/usb/ttusb-dec/ttusbdecfe 0x25de8816	ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x32087966	v4l2_m2m_mmap
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f	v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x71ebac87	v4l2_m2m_job_finish
+EXPORT_SYMBOL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9cace040	v4l2_m2m_get_vq
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x016022e4	v4l2_querymenu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x0614dd5a	v4l2_video_std_frame_period
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x08ef2ec8	v4l2_subdev_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x123959a1	v4l2_type_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x13172a04	__v4l2_ctrl_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x16244fe5	v4l2_prio_check
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x17c54a1d	v4l2_clk_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1919743c	v4l2_clk_put
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1b5c0864	v4l2_ctrl_merge
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x1db16c50	v4l2_ctrl_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2232fe5d	v4l2_ctrl_handler_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2342f1ae	v4l2_prio_open
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2753001d	v4l2_ctrl_handler_free
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2b6bcc78	v4l2_ctrl_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x2dd3fff9	v4l2_async_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x30be69e8	v4l2_format_info
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x315de2cf	v4l2_ctrl_get_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x31cbca75	__v4l2_ctrl_s_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32b17411	__v4l2_ctrl_grab
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32d43420	v4l2_ctrl_get_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x32ea23b0	v4l2_ctrl_handler_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x34d92465	v4l2_s_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x354addf2	v4l2_g_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3a010c34	v4l2_ctrl_sub_ev_ops
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3a8e5b06	v4l2_clk_enable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3adbd595	v4l2_field_names
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3b23ce0e	v4l2_ctrl_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x3bdd0f94	v4l2_prio_change
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4407869f	v4l2_ctrl_new_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x46ffc219	video_devdata
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x48d50727	v4l2_ctrl_subdev_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x4b77c88d	v4l2_ctrl_replace
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x53b92d55	v4l2_g_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5b22099d	v4l2_clk_set_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x5f9da91d	v4l2_async_notifier_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x616927ac	v4l2_ctrl_find
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x73154fd5	v4l2_ctrl_add_handler
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x78eb4c91	v4l2_ctrl_subdev_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x7fb60cc6	v4l2_clk_get_rate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8106095a	v4l2_prio_max
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x846dda04	v4l2_ctrl_notify
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x89e3897d	v4l2_ctrl_query_fill
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x8a34f820	v4l2_clk_get
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x90f24439	__v4l2_clk_register_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x93fd10c3	video_unregister_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x998bd69c	v4l2_ctrl_handler_init_class
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9ba64a65	video_device_release
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9cc9590a	video_device_release_empty
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0x9fd76595	v4l2_ctrl_poll
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa740bf45	v4l2_try_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xa7c6af87	v4l2_ctrl_new_custom
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xaf1b6175	video_ioctl2
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb172ef65	v4l2_ctrl_new_std_menu_items
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb2b1ec59	v4l2_ctrl_new_std_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb3f0b786	v4l2_subdev_call_wrappers
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb77b0159	v4l2_prio_init
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xb823ee21	v4l2_ctrl_log_status
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xba6186bd	v4l2_ctrl_new_std
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbb1e4ed4	v4l2_clk_unregister_fixed
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbc5671dc	v4l_printk_ioctl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xbcbdeb5a	v4l2_async_unregister_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc2529c5c	v4l2_ctrl_auto_cluster
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc4904c6a	v4l2_ctrl_subscribe_event
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc61fc81a	v4l2_ctrl_request_setup
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xc73c3192	v4l2_s_ext_ctrls
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcd1ea456	v4l2_async_register_subdev
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcd3be3cd	v4l2_query_ext_ctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xcda04a5b	v4l2_prio_close
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd16d9c01	v4l2_ctrl_get_int_menu
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd25adc93	v4l2_async_notifier_unregister
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd6db4b64	v4l2_clk_disable
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd816ab3f	__video_register_device
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xd86c76c8	v4l2_clk_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xdfe2a45f	v4l2_ctrl_radio_filter
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe2b92059	v4l2_video_std_construct
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe3660363	__v4l2_ctrl_modify_range
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe3a27193	v4l2_ctrl_g_ctrl_int64
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xe7e4eb46	__v4l2_ctrl_s_ctrl_string
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xef4276f0	v4l2_queryctrl
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf3251e7b	v4l2_norm_to_name
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf9155935	v4l2_async_subdev_notifier_register
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xf9a46f1c	v4l2_ctrl_request_complete
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfbb30f2b	v4l2_ctrl_activate
+EXPORT_SYMBOL	 drivers/media/v4l2-core/videodev 0xfc31a62f	video_device_alloc
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x0207032a	memstick_suspend_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x028a1228	memstick_resume_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x2d891cbd	memstick_remove_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x491d1d66	memstick_next_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x4a4e5778	memstick_init_req_sg
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6e99d3c6	memstick_unregister_driver
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x6f233118	memstick_new_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x905a92c2	memstick_detect_change
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0x96a6d959	memstick_add_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xae50437c	memstick_init_req
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xb298d376	memstick_set_rw_addr
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xbe440fdd	memstick_alloc_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xdbc3b7f3	memstick_free_host
+EXPORT_SYMBOL	 drivers/memstick/core/memstick 0xe121c679	memstick_register_driver
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x04dd9426	mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x0a7e3c56	mpt_reset_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x1287760e	mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x269963b9	mpt_attach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x32361fa2	mpt_GetIocState
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x37159400	mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x37d84336	mpt_findImVolumes
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x38b09fbb	mpt_event_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3a6a0a9e	mpt_free_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x3f3b5a7c	mpt_config
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x442a12c5	mpt_device_driver_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x4877869c	mpt_halt_firmware
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x502108d0	mpt_fwfault_debug
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x55419a79	mpt_register
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x5d9f8088	mpt_free_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x610b257e	mpt_reset_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x6591f2fc	mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x74a0134a	mpt_device_driver_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x86de62bc	mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x981efe92	mpt_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0x9eae11c1	mpt_send_handshake_request
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa0a75460	mpt_detach
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xa4259f11	mpt_verify_adapter
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xae245dbd	mpt_get_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xb14f6134	mpt_print_ioc_summary
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xbb082ed7	mpt_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xc4c29a4e	mpt_put_msg_frame
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xd27300ec	mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xdd805159	ioc_list
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe1c7c7d6	mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xe6c1e126	mpt_event_deregister
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xea959a1c	mpt_alloc_fw_memory
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xee6751de	mpt_HardResetHandler
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf4e50974	mpt_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptbase 0xf8f6b454	mptbase_sas_persist_operation
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x0076b239	mptscsih_abort
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x1bb7df1e	mptscsih_io_done
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x211f0ed6	mptscsih_change_queue_depth
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x27daa376	mptscsih_event_process
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x33ec89f9	mptscsih_resume
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3d3d1c58	mptscsih_host_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x3e3912a6	mptscsih_ioc_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x455d9462	mptscsih_is_phys_disk
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4bc0c188	mptscsih_scandv_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4cddaa33	mptscsih_raid_id_to_num
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x4d1dfc41	mptscsih_slave_destroy
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x6efa3c65	mptscsih_suspend
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x77a8bfbc	mptscsih_remove
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x86b15474	mptscsih_bios_param
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0x9bd21569	mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xa6728184	mptscsih_get_scsi_lookup
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xabb44529	mptscsih_flush_running_cmds
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb2774007	mptscsih_slave_configure
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb56b6a5b	mptscsih_dev_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xb590a184	mptscsih_show_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xba705807	mptscsih_info
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xbf97ae91	mptscsih_taskmgmt_complete
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xc2a8c37b	mptscsih_qcmd
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xda07fe6f	mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf48e5e75	mptscsih_bus_reset
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xf8b46216	mptscsih_host_attrs
+EXPORT_SYMBOL	 drivers/message/fusion/mptscsih 0xfac050ad	mptscsih_shutdown
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x0a6bd909	axp20x_match_device
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0x72346601	axp20x_device_probe
+EXPORT_SYMBOL	 drivers/mfd/axp20x 0xeca6abbf	axp20x_device_remove
+EXPORT_SYMBOL	 drivers/mfd/dln2 0x2a4062fd	dln2_unregister_event_cb
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xbbfa433a	dln2_transfer
+EXPORT_SYMBOL	 drivers/mfd/dln2 0xdf85dbba	dln2_register_event_cb
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x7e975de6	pasic3_write_register
+EXPORT_SYMBOL	 drivers/mfd/htc-pasic3 0x83090eef	pasic3_read_register
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x08dac32f	mc13xxx_unlock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x166755f7	mc13xxx_get_flags
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x1810f441	mc13xxx_irq_mask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x32dccd82	mc13xxx_reg_read
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x41f2ecee	mc13xxx_irq_request
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x59f3fb74	mc13xxx_irq_unmask
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0x7f9557c3	mc13xxx_lock
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xadf26a28	mc13xxx_irq_status
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb9623419	mc13xxx_irq_free
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xb9ae2b50	mc13xxx_reg_rmw
+EXPORT_SYMBOL	 drivers/mfd/mc13xxx-core 0xf5e6f79f	mc13xxx_reg_write
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x02d4ad0f	tps65013_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x0c6ad2cf	tps65010_config_vdcdc2
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x28485130	tps65010_config_vregs1
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x33739de7	tps65010_set_vib
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0x9fd44c69	tps65010_set_led
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xb14080cc	tps65010_set_low_pwr
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xd5bb106d	tps65010_set_vbus_draw
+EXPORT_SYMBOL	 drivers/mfd/tps65010 0xe99b3f36	tps65010_set_gpio_out_value
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x0edae84e	wm8994_base_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x48f348d8	wm8994_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x7ac9f341	wm8958_regmap_config
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0x85eaf970	wm8994_irq_init
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xbfeda2a0	wm8994_irq_exit
+EXPORT_SYMBOL	 drivers/mfd/wm8994 0xe5abf16c	wm1811_regmap_config
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x435aee38	ad_dpot_probe
+EXPORT_SYMBOL	 drivers/misc/ad525x_dpot 0x66fd907b	ad_dpot_remove
+EXPORT_SYMBOL	 drivers/misc/altera-stapl/altera-stapl 0x3faa9be5	altera_init
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xa21c5aa9	c2port_device_unregister
+EXPORT_SYMBOL	 drivers/misc/c2port/core 0xe0a4a19c	c2port_device_register
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x003c3e8e	tifm_unmap_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x0ffb277f	tifm_queue_work
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x10c922aa	tifm_add_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x17d3a27a	tifm_register_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x23f22d56	tifm_remove_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2c1c834d	tifm_free_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x2e6f49af	tifm_map_sg
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4228ce72	tifm_alloc_adapter
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x47410cf5	tifm_alloc_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0x4c32cce2	tifm_unregister_driver
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xe0c234e2	tifm_free_device
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xfc700b1d	tifm_has_ms_pif
+EXPORT_SYMBOL	 drivers/misc/tifm_core 0xfd4da94c	tifm_eject
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x0ea10372	cqhci_irq
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x30845fa9	cqhci_deactivate
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x34b8c4c3	cqhci_pltfm_init
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0x41a4f0ef	cqhci_resume
+EXPORT_SYMBOL	 drivers/mmc/host/cqhci 0xad83cbbe	cqhci_init
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x156f337c	mmc_spi_get_pdata
+EXPORT_SYMBOL	 drivers/mmc/host/of_mmc_spi 0x573468bb	mmc_spi_put_pdata
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x08163bc5	cfi_build_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x282c3dc2	cfi_varsize_frob
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x2c353602	cfi_read_pri
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x690272a3	cfi_fixup
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0x9e5a217b	cfi_send_gen_cmd
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xa031164a	cfi_build_cmd_addr
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xddc3c02d	cfi_merge_status
+EXPORT_SYMBOL	 drivers/mtd/chips/cfi_util 0xff9fa623	cfi_udelay
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x53ec6995	map_destroy
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x6c3e8bfb	do_map_probe
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0x858ece4b	unregister_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/chipreg 0xfdd4a6ac	register_mtd_chip_driver
+EXPORT_SYMBOL	 drivers/mtd/chips/gen_probe 0x11b21a0e	mtd_do_chip_probe
+EXPORT_SYMBOL	 drivers/mtd/lpddr/lpddr_cmds 0x25d25a0a	lpddr_cmdset
+EXPORT_SYMBOL	 drivers/mtd/maps/map_funcs 0x73edb9dd	simple_map_init
+EXPORT_SYMBOL	 drivers/mtd/mtd 0x4683b483	mtd_concat_destroy
+EXPORT_SYMBOL	 drivers/mtd/mtd 0xac359d0a	mtd_concat_create
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0x5c598364	onenand_addr
+EXPORT_SYMBOL	 drivers/mtd/nand/onenand/onenand 0xc62e6f76	flexonenand_region
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0x30db096f	denali_calc_ecc_bytes
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xa533d67c	denali_remove
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/denali 0xe2ef95d0	denali_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x16bde522	nand_write_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x2ced5248	nand_read_page_raw
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x3ad2414a	nand_bch_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x4fedcaa9	nand_scan_with_ids
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x6ad02941	nand_bch_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x70097aa0	nand_bch_free
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x786cb223	nand_get_set_features_notsupp
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0x8ecbb3b8	nand_check_erased_ecc_chunk
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xcffdb869	nand_bch_init
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xeaa25e14	nand_read_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xfb467ee2	nand_write_oob_std
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand 0xffd06213	nand_create_bbt
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xa43d1c72	__nand_correct_data
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xb636dd73	__nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xedb71db4	nand_calculate_ecc
+EXPORT_SYMBOL	 drivers/mtd/nand/raw/nand_ecc 0xf1680170	nand_correct_data
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x0f799f04	arc_proto_default
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x3f22bbf6	arc_proto_map
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x52b26918	arcnet_timeout
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x64f8d841	arcnet_unregister_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0x797f227c	arcnet_open
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xc7feaede	arcnet_send_packet
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xcdb09312	alloc_arcdev
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xd24166cf	arcnet_close
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xdc9cb556	arc_raw_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xe96c6513	arc_bcast_proto
+EXPORT_SYMBOL	 drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0x5248393b	com20020_netdev_ops
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xa4a55a58	com20020_check
+EXPORT_SYMBOL	 drivers/net/arcnet/com20020 0xb8168fe4	com20020_found
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x01279c63	b53_br_join
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x02d52ff2	b53_get_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x0cd0303f	b53_eee_enable_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x213fa9a8	b53_vlan_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x3c34d50e	b53_vlan_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4ddd5e1c	b53_br_set_stp_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x4ec2be03	b53_phylink_mac_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x5224ba48	b53_vlan_prepare
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x646d1a29	b53_eee_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x692fced2	b53_get_tag_protocol
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x70a530a2	b53_mirror_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x7364ad26	b53_fdb_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x78052622	b53_mirror_del
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x91cdba88	b53_vlan_filtering
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x92c6cedd	b53_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x97361ca4	b53_phylink_mac_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9a4b1a0b	b53_switch_detect
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0x9de2b9ea	b53_port_event
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa1ceb927	b53_get_ethtool_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa5c27548	b53_enable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xa98d466b	b53_br_fast_age
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaa6cf454	b53_get_ethtool_phy_stats
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xadac20c6	b53_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xae293b70	b53_configure_vlan
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xaea1abdf	b53_phylink_mac_link_down
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xb03e7d17	b53_phylink_mac_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbcc35762	b53_fdb_add
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xbebad4f1	b53_get_sset_count
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc015cf47	b53_brcm_hdr_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xc0f53487	b53_set_mac_eee
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcf1afe6d	b53_phylink_mac_link_up
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xcf68ace7	b53_fdb_dump
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd0297ba8	b53_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd1f1ad60	b53_imp_vlan_setup
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xd2814436	b53_get_strings
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe368b6b4	b53_br_egress_floods
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xe4705f90	b53_br_leave
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_common 0xec77fa9d	b53_disable_port
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x2f4f9c20	b53_serdes_an_restart
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x455ae34f	b53_serdes_init
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0x5e33e3ca	b53_serdes_link_set
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xbc8be4c8	b53_serdes_config
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xe7844ebf	b53_serdes_link_state
+EXPORT_SYMBOL	 drivers/net/dsa/b53/b53_serdes 0xee0209ec	b53_serdes_phylink_validate
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x2d6f5cb4	lan9303_probe
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0x41810f6e	lan9303_remove
+EXPORT_SYMBOL	 drivers/net/dsa/lan9303-core 0xada83f40	lan9303_register_set
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz8795 0xaced1a0a	ksz8795_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz9477 0x1752f76e	ksz9477_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x1fd9092a	ksz_switch_alloc
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x36fc539a	ksz_switch_register
+EXPORT_SYMBOL	 drivers/net/dsa/microchip/ksz_common 0x91999d6d	ksz_switch_remove
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe	vsc73xx_is_addr_valid
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xa659e4ea	vsc73xx_probe
+EXPORT_SYMBOL	 drivers/net/dsa/vitesse-vsc73xx-core 0xbdea780c	vsc73xx_remove
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x02afd981	ei_tx_timeout
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x05e4ac75	ei_open
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x0c364330	ei_get_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0x608cf0db	ei_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa15cc1a0	NS8390_init
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xa28c86a3	ei_close
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xab74a2a5	ei_start_xmit
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xc115a0e4	ei_poll
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xdfb0ce42	__alloc_ei_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/8390/8390 0xf733ae66	ei_netdev_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/broadcom/cnic 0xb765b7dc	cnic_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x0245ab4d	cavium_ptp_get
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/common/cavium_ptp 0x9b5320a2	cavium_ptp_put
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x0d8be5fd	bgx_lmac_rx_tx_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x34eeb48a	bgx_set_dmac_cam_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x42264715	bgx_get_lmac_count
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x46cdf933	bgx_config_timestamping
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x539ca253	bgx_get_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x60cd1f2f	bgx_lmac_get_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x6ca2152d	bgx_lmac_set_pfc
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x716fd7f0	bgx_reset_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0x72b238e4	bgx_get_rx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xbe654297	bgx_get_tx_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc397f585	bgx_lmac_internal_loopback
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xc82be691	bgx_get_map
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xd8ed0bcc	bgx_set_lmac_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xf101d1b2	bgx_get_lmac_link_state
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_bgx 0xff987a02	bgx_set_xcast_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x13912e4b	xcv_init_hw
+EXPORT_SYMBOL	 drivers/net/ethernet/cavium/thunder/thunder_xcv 0x4f739dc0	xcv_setup_link
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x02e5abed	cxgb3_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0e601e54	cxgb3_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3ec5ef7e	cxgb3_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x50bf9fd7	t3_register_cpl_handler
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x55ee9ca2	t3_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x56a1af39	cxgb3_insert_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5939bd1c	cxgb3_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5b092940	cxgb3_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5ce939ba	t3_l2e_free
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x62dca7a8	cxgb3_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6a1d9024	cxgb3_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9b6a40f9	cxgb3_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb07ca23c	cxgb3_queue_tid_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcb6a5bdd	t3_l2t_send_slow
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdf824b22	t3_l2t_send_event
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf264589f	dev2t3cdev
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06b828a6	cxgb4_l2t_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x095a99ad	cxgb4_write_sgl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0a71ff73	cxgb4_clip_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0b9a6033	cxgb4_read_sge_timestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x12fc5ae5	cxgb4_create_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x19f4bdcf	cxgb4_register_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1aaf5fda	cxgb4_clip_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1e3088a1	cxgb4_get_srq_entry
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x27f8d363	cxgb4_smt_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2a06f783	cxgb4_create_server6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2dc13d99	cxgb4_update_root_dev_clip
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x30f98580	cxgb4_immdata_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3260c347	cxgb4_l2t_get
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a82a736	cxgb4_bar2_sge_qregs
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3bbbebf4	cxgb4_alloc_sftid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4c483373	cxgb4_port_e2cchan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07	cxgb4_best_aligned_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x55fa6497	cxgb4_sync_txq_pidx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5673a2eb	cxgb4_port_viid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57900678	cxgb4_alloc_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x624cf9d9	t4_cleanup_clip_tbl
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x65bce587	cxgb4_iscsi_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6765ae48	cxgb4_l2t_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676a11a9	cxgb4_unregister_uld
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7efb43e7	cxgb4_free_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9130d787	cxgb4_dbfifo_count
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9477f913	cxgb4_create_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9d0565c0	cxgb4_get_tcp_stats
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa250b856	cxgb4_crypto_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa7017080	cxgb4_read_tpte
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa95f3e2d	cxgb4_map_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbbd19720	cxgb4_ring_tx_db
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbf7f7aba	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc1ff7246	cxgb4_flush_eq_cache
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcea9c378	cxgb4_remove_tid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd0a7b5be	cxgb4_port_idx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd0bc4c4e	cxgb4_ofld_send
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd0c09968	cxgb4_port_chan
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd27d9b19	cxgb4_select_ntuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294	cxgb4_best_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd9022ecf	cxgb4_remove_server_filter
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xebe6eb3e	cxgb4_reclaim_completed_tx
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xefb4516e	cxgb4_inline_tx_skb
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf0b07c72	cxgb4_remove_server
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf10d57dd	cxgb4_free_atid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf1fb0fde	cxgb4_smt_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfa438d20	cxgb4_alloc_stid
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xffdcde6c	cxgb4_l2t_alloc_switching
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1b767ecf	cxgbi_ppm_ppods_reserve
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1	cxgbi_tagmask_set
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f	cxgb_get_4tuple
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x6fe9a853	cxgb_find_route
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x8b7ac1cf	cxgbi_ppm_make_ppod_hdr
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xbe10eec1	cxgbi_ppm_init
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcfd57296	cxgbi_ppm_ppod_release
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xd7b43784	cxgb_find_route6
+EXPORT_SYMBOL	 drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xf15792f7	cxgbi_ppm_release
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x4c457aab	enic_api_devcmd_proxy_by_index
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x6e7bd2d9	vnic_dev_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x7bae75b5	vnic_dev_get_res
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0x802ef857	vnic_dev_register
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xb089abd2	vnic_dev_get_pdev
+EXPORT_SYMBOL	 drivers/net/ethernet/cisco/enic/enic 0xf5c7a1dc	vnic_dev_get_res_count
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2	be_roce_mcc_cmd
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xcaae0503	be_roce_unregister_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/emulex/benet/be2net 0xe4c8fcb9	be_roce_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x815d1e58	i40e_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/i40e/i40e 0x950a45eb	i40e_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xb2430e7d	iavf_register_client
+EXPORT_SYMBOL	 drivers/net/ethernet/intel/iavf/iavf 0xcd55f936	iavf_unregister_client
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0005ff1b	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0641244d	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cf7ae03	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f185cd1	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16a2eb72	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1af5b929	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b3f96fa	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c36d63b	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x308323e8	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30a132ce	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41aa6d8a	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4390a234	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x496fb260	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b819e26	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f7c83bc	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56507ecd	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59bea6a1	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6653011b	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b16d551	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b4a7208	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e0c0286	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78709413	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78b30b86	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d9552ec	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x814ea060	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a75ab85	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9363ab8e	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9bf346f3	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa104833b	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa61a83ea	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac23ff0f	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad578efd	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc326839a	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3cf78bc	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6013414	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd568007a	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb49ada8	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf1a8fdb	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe434687c	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8358242	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8a5bacc	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7316891	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd0f10cb	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe33348a	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00fb6c83	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x044fde89	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06e38df7	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07690b16	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08b23652	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x09f41f3e	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0d5e2656	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0dd263ed	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f252440	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10ec0d2a	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11f22dd7	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13059aee	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x196c39ca	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c122a5f	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f2aedbb	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2025c97e	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x216d35a6	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21cb4b4e	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21e92da3	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2291385c	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2468532b	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25d6a8ca	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bd2b498	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ce6269a	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f556de6	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x301fd0d4	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30a80905	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x319903b7	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34c6133d	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x362d0099	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38fd879f	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3990808a	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39e97775	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e298718	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e376c7e	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41827758	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ec26df5	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53c34e3b	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55853a5d	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x587cfcf6	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59ba84ff	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f0e7375	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6425c089	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x681b5eac	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a19021e	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c31972a	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e3e6803	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x728af0f4	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73adadc3	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75fcbb0c	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x791972c1	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7922dc6b	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a435b85	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bb524f3	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d2ef248	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83c5347a	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a58dcb3	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d44d3e8	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e063bc6	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x922caf48	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x939346d3	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96221e94	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a656e59	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9abf716d	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c1e208d	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c36079b	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d51a0cf	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e625d05	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f3b0455	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0e0a8fd	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7f9a025	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa34da4a	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae264898	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb184c11f	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1a0cf5c	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb20806ad	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3f84e93	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5c1e523	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb800685b	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba708a80	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb6a8098	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbbefa2eb	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0292d6f	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc10fe96f	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc51b72a6	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7daf926	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc806f205	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8b4e7f6	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb8c0974	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcba682ea	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc0d5a62	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf12f3e3	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcfbe7dbf	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd166eb19	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3423619	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd527e606	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5df2b67	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdaf4c9d8	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdba51959	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe090a654	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe21d3b62	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe29cc774	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe359af15	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5cf58fe	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7393b3c	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe92862d2	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea72f36f	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec016d1f	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec6b85d3	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed619a4a	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf05f283f	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1d4c3e5	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf30b7b1b	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf559677d	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5bf1353	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfafbc275	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb4d0e8f	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb82af7e	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfcc32192	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd17a7df	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff8a2028	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x538e86bd	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x088d69bf	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x09e79344	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0cd108c5	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1d025a8d	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38045cd4	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3c7f0d09	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x667f1ccb	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6c46d60d	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x93ec5de9	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x96fc83bc	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaacf9fd9	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb3dc211f	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb8ea0b82	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbd084158	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbd12ee7f	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc31781e	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf3081863	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x68ec5209	mlxsw_i2c_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x9b24c7a7	mlxsw_i2c_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x223a90f8	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x6c50aad7	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x05edb4ee	ocelot_get_hwtimestamp
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0b150222	ocelot_netdevice_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x0c68d246	ocelot_port_readl
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x787f477d	ocelot_regfields_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x7b51c674	ocelot_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x88425f61	__ocelot_read_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0x960a778f	__ocelot_rmw_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc11e8a68	ocelot_chip_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc5ec22f0	ocelot_io_platform_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xc8aa445b	__ocelot_write_ix
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xca8018b7	ocelot_probe_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd0348add	ocelot_switchdev_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xd279f61e	ocelot_port_writel
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xe54a91e8	ocelot_switchdev_blocking_nb
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xeac3d697	ocelot_ptp_gettime64
+EXPORT_SYMBOL	 drivers/net/ethernet/mscc/mscc_ocelot_common 0xfee6f730	ocelot_deinit
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x1dae7111	qed_get_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x4f264472	qed_put_iscsi_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x992e03d0	qed_put_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x99ad4ce4	qed_get_fcoe_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48	qed_put_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xb0ac258f	qed_get_eth_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qed/qed 0xf0596cd1	qed_get_rdma_ops
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x2cedfaac	qede_rdma_register_driver
+EXPORT_SYMBOL	 drivers/net/ethernet/qlogic/qede/qede 0x8e86b322	qede_rdma_unregister_driver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x05ec3455	hdlcdrv_unregister
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x529acf70	hdlcdrv_receiver
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x61032246	hdlcdrv_transmitter
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0x7bdabbb0	hdlcdrv_register
+EXPORT_SYMBOL	 drivers/net/hamradio/hdlcdrv 0xcaf3ad51	hdlcdrv_arbitrate
+EXPORT_SYMBOL	 drivers/net/mdio 0x3e17f466	mdio_set_flag
+EXPORT_SYMBOL	 drivers/net/mdio 0x60443957	mdio45_probe
+EXPORT_SYMBOL	 drivers/net/mdio 0x63e0fee5	mdio45_links_ok
+EXPORT_SYMBOL	 drivers/net/mdio 0x7db84a25	mdio45_ethtool_ksettings_get_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xb79a54ee	mdio45_nway_restart
+EXPORT_SYMBOL	 drivers/net/mdio 0xcdbdeca7	mdio45_ethtool_gset_npage
+EXPORT_SYMBOL	 drivers/net/mdio 0xdaceb7a6	mdio_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x15defedd	generic_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/mii 0x21ddfd80	mii_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/mii 0x3f14a4ad	mii_link_ok
+EXPORT_SYMBOL	 drivers/net/mii 0x71199a7e	mii_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x7eef889f	mii_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/mii 0x96cd28c6	mii_ethtool_gset
+EXPORT_SYMBOL	 drivers/net/mii 0xa7665afc	mii_check_gmii_support
+EXPORT_SYMBOL	 drivers/net/mii 0xb463a27c	mii_check_link
+EXPORT_SYMBOL	 drivers/net/mii 0xe3a93f94	mii_check_media
+EXPORT_SYMBOL	 drivers/net/mii 0xff7ee933	mii_nway_restart
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xd95e4ea3	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0x4f7e68ac	free_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-bitbang 0xb8a8d3e3	alloc_mdio_bitbang
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0x1a306707	cavium_mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/mdio-cavium 0xab35c2f6	cavium_mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/mdio-octeon 0x8a1d5c26	octeon_mdiobus_force_mod_depencency
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x0ac7ca7f	pppox_compat_ioctl
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x30401290	register_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0x57e7554d	pppox_unbind_sock
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL	 drivers/net/ppp/pppox 0xf3432089	pppox_ioctl
+EXPORT_SYMBOL	 drivers/net/sungem_phy 0x86c2f95f	sungem_phy_probe
+EXPORT_SYMBOL	 drivers/net/team/team 0x05de253e	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/net/team/team 0x832fbe91	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xa363249e	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xaef8dac8	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xb355a3e4	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xc62c32d3	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0xd2ef6e6d	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0xdb9b5d60	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x28590d3e	usbnet_link_change
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x4357e577	usbnet_device_suggests_idle
+EXPORT_SYMBOL	 drivers/net/usb/usbnet 0x8c455f2d	usbnet_manage_power
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x07ab47ea	attach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x09e5e755	unregister_hdlc_device
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x6b548eaa	hdlc_ioctl
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x7d5b8141	hdlc_start_xmit
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0x9f416783	register_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa7e665a9	hdlc_close
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xa903db20	hdlc_open
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xcb0a5b61	unregister_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd51abcae	detach_hdlc_protocol
+EXPORT_SYMBOL	 drivers/net/wan/hdlc 0xd89e782c	alloc_hdlcdev
+EXPORT_SYMBOL	 drivers/net/wimax/i2400m/i2400m 0x6f0e76dc	i2400m_unknown_barker
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x015ef360	ath_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x10467343	ath_hw_keysetmac
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x108b188f	ath_is_49ghz_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x3ffa0e95	ath_hw_setbssidmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x4571aea8	ath_is_world_regd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x684698c3	ath_hw_keyreset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x685f62b6	ath_hw_get_listen_time
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0x88e1004c	ath_rxbuf_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xa18f224e	ath_regd_find_country_by_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xac24adca	ath_regd_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb3633a6d	ath_is_mybeacon
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb6588ba6	ath_bus_type_strings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xb76df986	ath_reg_notifier_apply
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd299698d	ath_key_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xd6537adb	ath_hw_cycle_counters_update
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xdbd15e8a	ath_key_delete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf08b651e	ath_regd_get_band_ctl
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath 0xf523c7bf	dfs_pattern_detector_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2	ath10k_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x0243aefe	ath10k_htt_t2h_msg_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x03b40318	ath10k_ce_completed_recv_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x09b8cb3e	ath10k_core_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x12a75f05	ath10k_htt_rx_pktlog_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x12c61737	ath10k_ce_send_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x199d9903	ath10k_coredump_new
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1c1110ad	ath10k_ce_completed_send_next_nolock
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x1ff7d7bc	ath10k_htc_rx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x2ff1a392	ath10k_ce_free_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3b7b2515	ath10k_ce_alloc_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3beaac7e	ath10k_ce_rx_post_buf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3d7f543d	ath10k_ce_alloc_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3e5c84b4	ath10k_htt_txrx_compl_task
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x3f0fab93	ath10k_ce_rx_update_write_idx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x47301c4b	ath10k_htc_tx_completion_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x503634cf	ath10k_core_free_board_files
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x52e2aac0	__ath10k_ce_send_revert
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x614bcf2c	ath10k_ce_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x65e6b930	ath10k_ce_completed_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x665478fc	ath10k_ce_cancel_send_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x67c4f37c	ath10k_ce_per_engine_service
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x6e1ee41b	ath10k_core_fetch_board_file
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x713afbc0	ath10k_ce_completed_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x77c83bc7	ath10k_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x77ddf2e8	ath10k_ce_deinit_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x78b8e038	ath10k_coredump_get_mem_layout
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x7ed32599	__tracepoint_ath10k_log_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x82fe651d	ath10k_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x8eec072a	ath10k_ce_revoke_recv_next
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0x97d0f588	ath10k_htc_process_trailer
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa04eeaa7	ath10k_ce_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa5040b06	__ath10k_ce_rx_num_free_bufs
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa67aa46c	ath10k_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa6cb2bc9	ath10k_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xa73d571a	ath10k_htt_hif_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xad2c4b55	ath10k_ce_init_pipe
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xafd39ca0	ath10k_ce_free_rri
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc208404e	ath10k_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6423361	ath10k_ce_dump_registers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xc6dcbf73	ath10k_mac_tx_push_pending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd0945951	ath10k_htc_notify_tx_completion
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xd3d8a08e	ath10k_print_driver_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdb4fd7c8	ath10k_core_register
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xdc85b6be	ath10k_ce_per_engine_service_any
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xde90bd1a	ath10k_ce_send
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xe3d6b5c4	ath10k_core_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xf087b5d8	ath10k_ce_num_free_src_entries
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath10k/ath10k_core 0xff128b20	ath10k_core_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x088d0817	ath6kl_core_create
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d	ath6kl_warn
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1e085d50	ath6kl_cfg80211_resume
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x21638ac6	ath6kl_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2908e1f1	ath6kl_cfg80211_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef	ath6kl_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x352c31fc	ath6kl_core_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3db0273e	ath6kl_hif_intr_bh_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x453f4d6b	ath6kl_core_rx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x50209064	ath6kl_stop_txrx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a	ath6kl_hif_rw_comp_handler
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0x94289bb8	ath6kl_read_tgt_stats
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa440e7e4	ath6kl_core_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9	ath6kl_printk
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd	ath6kl_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf0db1129	ath6kl_core_destroy
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x007eb515	ath9k_cmn_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x39fa56a2	ath9k_cmn_setup_ht_cap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3f08b50a	ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x3f2642f1	ath9k_cmn_process_rate
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x40b7fed0	ath9k_cmn_spectral_scan_config
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x495c3202	ath9k_cmn_update_txpow
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4aa61e64	ath9k_cmn_init_channels_rates
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x4bb15f32	ath9k_cmn_rx_accept
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x5b72b770	ath9k_cmn_debug_base_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x6b207f6a	ath9k_cmn_reload_chainmask
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x7005501c	ath_cmn_process_fft
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x86bb0d9f	ath9k_cmn_debug_recv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x8a1819a2	ath9k_cmn_spectral_init_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0x9a31e1fe	ath9k_cmn_debug_modal_eeprom
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xa3eed9dc	ath9k_cmn_spectral_deinit_debug
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb280e712	ath9k_cmn_beacon_config_sta
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb36ac1e0	ath9k_cmn_spectral_scan_trigger
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xb76fccc7	ath9k_cmn_debug_stat_rx
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc18e744e	ath9k_cmn_init_crypto
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xc7187662	ath9k_cmn_process_rssi
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357	ath9k_cmn_count_streams
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xeea99aa7	ath9k_cmn_beacon_config_ap
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf1df50fb	ath9k_cmn_beacon_config_adhoc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xf8ddb945	ath9k_cmn_debug_phy_err
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_common 0xfcd165f8	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x05798437	ath9k_hw_startpcureceive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x05a35e11	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0647d8fa	ath9k_hw_resettxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x095d5da0	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ba68087	ath9k_hw_gpio_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0dc24c9e	ar9003_mci_get_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e720d70	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc	ath9k_hw_get_tsf_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x10c83496	ath9k_hw_getrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x11272f65	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1386f1c2	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x13a3e747	ath9k_hw_getnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x16a43c72	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1771c9a2	ath_gen_timer_isr
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1abc97e7	ath9k_hw_setopmode
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d407ed2	ath9k_hw_btcoex_init_scheme
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2109470a	ath9k_hw_init
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2168407e	ath9k_hw_wait
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x228a51c8	ath9k_hw_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x230609d2	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x23bf5551	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x26a0d706	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cbc8c77	ath9k_hw_kill_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cda0ee3	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e176631	ath9k_hw_txstart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ed119b4	ath9k_hw_btcoex_set_concur_txprio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x383b40fe	ath9k_hw_gettxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d971c57	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3da1f3df	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dcd59e1	ath9k_hw_set_tx_filter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f9015e3	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fd40586	ath9k_hw_gpio_request_out
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x418dd9b7	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x491f0544	ath9k_hw_setup_statusring
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x49f40943	ar9003_hw_bb_watchdog_check
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4de5f9ce	ath9k_hw_set_gpio
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e94b611	ath9k_hw_init_global_settings
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f406802	ar9003_mci_set_bt_version
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b9cb925	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b9ed90b	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bc3d96c	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x61ed4e2c	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6295b3a3	ath9k_hw_setantenna
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x64d9d9f8	ath9k_hw_ani_monitor
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x660c4a09	ar9003_mci_get_next_gpm_offset
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x68c35143	ath9k_hw_computetxtime
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x699adb3a	ath_gen_timer_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dc8079e	ath9k_hw_wow_wakeup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fce267c	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x72db4878	ath9k_hw_write_associd
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x78521288	ar9003_paprd_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a71c93f	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a8d34c9	ath9k_hw_setrxfilter
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ea0b5cb	ath9k_hw_get_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x85c3d7d0	ath9k_hw_resume_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x861fe667	ath9k_hw_putrxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x86cbc487	ath9k_hw_check_alive
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x89ce4e8b	ath9k_hw_phy_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8afa2442	ar9003_mci_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8eea1b62	ar9003_paprd_create_curve
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f2334f5	ath9k_hw_gpio_request_in
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fbf5115	ath9k_hw_gpio_get
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x974b47a3	ath9k_hw_getchan_noise
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x975a2cc9	ar9003_paprd_is_done
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a4067e9	ath9k_hw_set_interrupts
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0x9da0fdda	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa02f54d7	ath9k_hw_puttxbuf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa04b35fe	ath_gen_timer_free
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa25afe14	ath9k_hw_numtxpending
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4a87985	ath9k_hw_btcoex_init_mci
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4ef188f	ar9003_mci_send_wlan_channels
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa75e9dbd	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xa992b4b6	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xadab121b	ath9k_hw_btcoex_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf4cdf83	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xafb89657	ath9k_hw_wow_enable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb054aa6a	ath9k_hw_name
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1c55c00	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2eba0cf	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4c62c40	ath9k_hw_check_nav
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe725380	ath9k_hw_gettsf32
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbeab5e2c	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf20a206	ath9k_hw_setpower
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc12032a0	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc12a2664	ath9k_hw_disable
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3e92062	ath9k_hw_set_txq_props
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc59d51b2	ar9003_mci_cleanup
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xc94d3fe7	ath9k_hw_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb0ae46a	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcbcda6d4	ar9003_paprd_init_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf1aa24a	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4067d2f	ath9k_hw_gettsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd478f50e	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5c2a454	ath9k_hw_wow_apply_pattern
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd779de7f	ath9k_hw_loadnf
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xd79e1cba	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb046a40	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xdee93d11	ar9003_mci_state
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7c750f0	ar9003_mci_send_message
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe80cb861	ath9k_hw_beaconinit
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe88f829b	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xe96bbfff	ar9003_is_paprd_enabled
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb71f4bf	ath9k_hw_settsf64
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xed8444c1	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xee1daed8	ath9k_hw_intrpend
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4d7bc17	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xf698659c	ath9k_hw_setrxabort
+EXPORT_SYMBOL	 drivers/net/wireless/ath/ath9k/ath9k_hw 0xff917f52	ath9k_hw_reset
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0x075c972e	init_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xc4802573	atmel_open
+EXPORT_SYMBOL	 drivers/net/wireless/atmel/atmel 0xf09918ac	stop_atmel_card
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0418eb04	brcmu_pktq_peek_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e	brcmu_boardrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1f4aae2b	brcmu_pktq_penq_head
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x2ed642cf	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3702d490	brcmu_pktq_pdeq_match
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x5307b48d	brcmu_pktq_pdeq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x78f8a8a5	brcmu_pktq_init
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x88b17d44	brcmu_pktq_mlen
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x93644039	brcmu_pktq_penq
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf	brcmu_dotrev_str
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xab21f1e2	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xb960423a	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcb02ec19	brcmu_pktq_flush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91	brcmu_d11_attach
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xf0d39eff	brcmu_pktq_pflush
+EXPORT_SYMBOL	 drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xfd0b0b5b	brcmu_pktq_mdeq
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x28939787	init_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x4b484c69	stop_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/cisco/airo 0x5d816793	reset_airo_card
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x1340d77e	libipw_wx_get_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x2a208cdb	libipw_set_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x31dc251d	libipw_wx_get_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x42e0e2e7	libipw_get_geo
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x69af423d	alloc_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x6f27b878	free_libipw
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8107c0d9	libipw_get_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x8fdfdda3	libipw_txb_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x97a32b8a	libipw_channel_to_freq
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0x9af8a8ef	libipw_wx_set_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xa82ee553	libipw_networks_age
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xb40e0e23	libipw_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xbafcf8d2	libipw_get_channel_flags
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xcd60fcb8	libipw_wx_get_encodeext
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xde8d991f	libipw_wx_set_encode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe438ffe8	libipw_channel_to_index
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xe8c2813f	libipw_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf1b06c1b	libipw_rx_mgt
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xf3b44fa8	libipw_is_valid_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/ipw2x00/libipw 0xfcde5f83	libipw_freq_to_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0279f161	il_get_passive_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x02df6a40	il_get_channel_info
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x06fdec39	il_send_add_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x06ffaf1e	il_power_update_mode
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0937800b	il_scan_cancel_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a1385c0	il_add_beacon_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0d32ecfd	il_init_scan_params
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ed129d7	il_wr_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ff1c326	il_scan_cancel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x106c41a8	il_rd_prph
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x13453700	il_get_free_ucode_key_idx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1393fae8	il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x13a6aeef	il_hdl_spectrum_measurement
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x15faa4e7	il_hdl_pm_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1cc1c10a	il_dbgfs_register
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22a92645	il_tx_queue_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22d60f0a	il_rx_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2abe32f6	il_tx_queue_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b9d5d78	il_setup_rx_scan_handlers
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6	il_queue_space
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2dc20c56	il_clear_ucode_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2f363baf	il_cmd_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x314da467	_il_poll_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3373b2e6	il_setup_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3bd8fa88	il_hdl_csa
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3cb3dff6	il_send_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3d2acdeb	il_mac_change_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3e7e93a3	il_usecs_to_beacons
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x403cd684	il_send_stats_request
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a	il_debug_level
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x41f372f3	il_eeprom_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4273b192	il_set_flags_for_band
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x49b3da12	il_mac_sta_remove
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4b6f81bf	il_leds_exit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c025644	il_rx_queue_alloc
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e56873d	il_alloc_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f46dcc1	il_dbgfs_unregister
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x501ae050	il_chswitch_done
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5305f901	il_restore_stations
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x534643c2	il_free_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x53ddd70b	il_send_cmd_pdu_async
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x562024dc	il_cmd_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5868a9c6	il_connection_init_rx_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58c050b7	il_send_cmd_pdu
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x59226860	il_free_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x59ababf3	il_mac_hw_scan
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x60042545	il_mac_bss_info_changed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6a2d4118	il_power_initialize
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6c5c7af4	il_setup_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x707aef34	il_rx_queue_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x772bf825	il_mac_flush
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x79569af5	il_full_rxon_required
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7ab8aab0	il_clear_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7c8cbabb	il_free_txq_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x805f0751	il_send_lq_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x80749473	il_cancel_scan_deferred_work
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8261287d	il_set_decrypted_flag
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x82f0b87f	il_tx_queue_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x83970cb0	il_set_tx_power
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8645d98f	il_tx_cmd_complete
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86ec2b7e	il_send_bt_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x87abcea6	il_eeprom_free
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92638353	il_add_station_common
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92d7d3bb	il_set_rxon_ht
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99031a7c	il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99132907	il_mac_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af	il_bg_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e1c482e	il_hdl_pm_debug_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa280ed6c	il_is_ht40_tx_allowed
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa3774ce6	il_apm_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa701ae46	il_set_rxon_channel
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa911568d	il_mac_config
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xae19a46d	il_txq_update_write_ptr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaecede2b	il_set_rate
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaeeda722	il_send_cmd_sync
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaf6ec920	il_force_reset
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb18be80b	il_init_channel_map
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb20e304b	il_mac_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb399155f	il_tx_queue_unmap
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb5387419	il_set_rxon_hwcrypto
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3	il_get_cmd_string
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7b81bf3	il_hdl_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff	il_isr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb8a358c7	il_irq_handle_error
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba4ed4bc	il_mac_reset_tsf
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbcb8d1e5	il_set_bit
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdaa95a5	il_leds_init
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc18f94f8	il_get_single_channel_number
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5cd708f	il_eeprom_query_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc9984e63	il_write_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca19607a	il_init_geos
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xce0953df	il_pm_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd8b75b4e	_il_apm_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd9a6c612	il_eeprom_query16
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf6412a5	il_get_active_dwell_time
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe3c0c030	il_check_rxon_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe6479aec	il_mac_conf_tx
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe82d3708	il_tx_cmd_protection
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xed76d28e	il_fill_probe_req
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xef3e09e6	il_send_rxon_timing
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf20861c5	il_update_stats
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf50acebe	il_get_lowest_plcp
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b	il_bcast_addr
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfcdaa436	il_read_targ_mem
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x73d6904e	__tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe45aec74	__tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe76e8c18	__tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x096bc910	hostap_set_roaming
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x13abdd5a	hostap_dump_tx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2350119f	hostap_remove_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x2b1bc422	hostap_info_process
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x391eee0b	hostap_set_hostapd
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x39a8f876	hostap_80211_ops
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x68ad90de	hostap_set_word
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x6d4c8f21	hostap_remove_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7213647e	hostap_setup_dev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x75934c58	hostap_set_multicast_list_queue
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x78354ca6	hostap_check_sta_fw_version
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7a027e3e	prism2_update_comms_qual
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7c27a4ad	hostap_get_porttype
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x7fb75891	hostap_dump_rx_header
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8e2a5609	hostap_init_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x8f500b29	hostap_set_encryption
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9b165652	hostap_free_data
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0x9ff23f12	hostap_add_interface
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa78d29b5	hostap_init_ap_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xa84f9586	hostap_set_antsel
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xad36ee7d	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xc8dfa703	hostap_init_proc
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xca39620b	hostap_80211_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xcc85e170	hostap_set_hostapd_sta
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xd05e3afe	hostap_set_auth_algs
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xddbe339e	hostap_info_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xeb5e31b8	hostap_set_string
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/hostap/hostap 0xf5c19c13	hostap_master_start_xmit
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x1fcea0ba	orinoco_open
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x3d4122bf	orinoco_up
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x45aa2088	__orinoco_ev_rx
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x4a25f8e6	orinoco_stop
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x50c30f5f	alloc_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x5212135e	orinoco_down
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x6b80610a	orinoco_set_multicast_list
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x7647dec8	__orinoco_ev_info
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x819540b9	orinoco_change_mtu
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0x985ad798	orinoco_tx_timeout
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xbb8d6e50	orinoco_process_xmit_skb
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xdc4e20f6	orinoco_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe12b5f55	free_orinocodev
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xe8dc0aff	hermes_struct_init
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf06746b3	orinoco_if_del
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xf9c6eb25	orinoco_if_add
+EXPORT_SYMBOL	 drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL	 drivers/net/wireless/mediatek/mt76/mt76 0xd918c3d4	mt76_wcid_key_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x47b0a5c4	rtl_btc_get_ops_pointer
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x03b6baf4	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0a96c6a9	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0c2712c5	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x12f722be	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x13de167c	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x16cd7698	rtl92c_download_fw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1e2ba33c	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x22967e68	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x22f80f6e	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x257f7324	rtl92c_dm_watchdog
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x260b4401	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2920ed70	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2db19b29	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x31d9dac3	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3a516371	rtl92c_dm_write_dig
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x470a8b13	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4a07d639	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x548a35bc	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x54d43af9	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6e9cf801	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x71fadac7	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7333b8cc	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x78c99b53	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x792081b7	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7d2e16bd	rtl92c_phy_rf_config
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x80827f73	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8480a182	rtl92c_firmware_selfreset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8629dbab	rtl92c_phy_set_io
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x939ac089	rtl92c_dm_rf_saving
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9edb70cd	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb63484b7	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb6865ce8	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb8fd9085	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc154aaf2	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc582db6b	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc5dabc1c	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcda342f2	_rtl92c_store_pwrindex_diffrate_offset
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xde8e341b	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf78c3005	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf85676f2	rtl92c_dm_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xffaa9d1d	_rtl92c_phy_dbm_to_txpwr_idx
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x134afa30	rtl_pci_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x4773d3ef	rtl_pci_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xbda45413	rtl_pci_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xe441e746	rtl_pci_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x1cf5a3c5	rtl_usb_disconnect
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7c449ca9	rtl_usb_suspend
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x817f3fbf	rtl_usb_resume
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x8778267e	rtl_usb_probe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0041a564	rtl_rfreg_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x05e93298	rtl_send_smps_action
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24	channel5g_80m
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0dc2119f	rtl_process_phyinfo
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x179b54a0	rtl_cam_reset_all_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315	rtl_addr_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1d55d0c5	rtl_mrate_idx_to_arfr_id
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x22676afc	rtl_signal_scale_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x28cf39f2	rtl_get_tcb_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7	rtl_query_rxpwrpercentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x32b23344	rtl_cam_del_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x34d81373	rtl_rx_ampdu_apply
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3a36347e	rtl_dm_diginit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x42e906b5	rtl_cmd_send_packet
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58	channel5g
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x62fd4d25	rtl_hal_pwrseqcmdparsing
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7746e414	efuse_one_byte_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7945b6e3	rtl_init_rfkill
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fb459e6	efuse_power_switch
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x82352ba2	efuse_shadow_read
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x922d6167	rtl_ps_enable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9447cd4a	rtl_phy_scan_operation_backup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x96391a31	rtlwifi_rate_mapping
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa71e6e7c	efuse_read_1byte
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb97511ba	rtl_collect_scan_list
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba37aa71	rtl_wowlan_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbce79f7b	rtl_fw_cb
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbeecff9c	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc9ffb80a	rtl_cam_mark_invalid
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf7ef7e4	rtl_bb_delay
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf9870db	rtl_ps_disable_nic
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd266d1d5	rtl_c2hcmd_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdb093ee5	rtl_cam_add_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdbe1ca59	rtl_cam_delete_one_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xec8c4dc6	rtl_cam_get_free_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2	rtl_evm_db_to_percentage
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfe919b8c	rtl_cam_empty_entry
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x03cbce1f	rtw_tx_write_data_rsvd_page_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x087f1bd3	rtw_fw_c2h_cmd_rx_irqsafe
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x1fbb6063	rtw_core_deinit
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2a0a51eb	rtw8822c_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x2e284067	rtw8723d_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x33b3f3c0	rtw_debug_mask
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x42799a2e	rtw_register_hw
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x742fc94f	rtw_tx_fill_tx_desc
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x95bb895f	rtw_ops
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x97d97f25	rtw_power_mode_change
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0x9f00f347	rtw_tx_report_enqueue
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xb2cb1209	rtw_tx_write_data_h2c_get
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc5c83ad5	rtw8822b_hw_spec
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc71dbb7f	rtw_core_init
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xc88bf212	__rtw_dbg
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xde451f08	rtw_rx_stats
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xe5cb686e	rtw_chip_info_setup
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xf34249ad	rtw_fw_lps_deep_mode
+EXPORT_SYMBOL	 drivers/net/wireless/realtek/rtw88/rtw88 0xff8a8b82	rtw_unregister_hw
+EXPORT_SYMBOL	 drivers/net/wireless/rsi/rsi_91x 0x6e1f6728	rsi_config_wowlan
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0x9d0e85ab	wlcore_tx_complete
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xd51df19e	wl1271_free_tx_id
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xd5775446	wl12xx_is_dummy_packet
+EXPORT_SYMBOL	 drivers/net/wireless/ti/wlcore/wlcore 0xe5a300c0	wlcore_calc_packet_alignment
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x121d9bfe	fdp_nci_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0x51d92228	fdp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/fdp/fdp 0xbd404501	fdp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x1570cfb3	microread_probe
+EXPORT_SYMBOL	 drivers/nfc/microread/microread 0x298e69ae	microread_remove
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0x1efded22	nxp_nci_probe
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xbca2cbb7	nxp_nci_fw_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/nxp-nci/nxp-nci 0xf298ace5	nxp_nci_remove
+EXPORT_SYMBOL	 drivers/nfc/pn533/pn533 0x62b751a2	pn533_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0x649e6249	pn544_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/pn544/pn544 0xa88a423f	pn544_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0x91b6d51a	s3fwrn5_probe
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xdadd6774	s3fwrn5_remove
+EXPORT_SYMBOL	 drivers/nfc/s3fwrn5/s3fwrn5 0xe9f1449c	s3fwrn5_recv_frame
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x26fef6ee	ndlc_remove
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x307cc1af	st_nci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x30b87c33	ndlc_close
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x5e9381e9	st_nci_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x81cc22d0	ndlc_send
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0x89b0cc92	ndlc_recv
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb6936a42	ndlc_open
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xb6a8a720	st_nci_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xc1f284df	ndlc_probe
+EXPORT_SYMBOL	 drivers/nfc/st-nci/st-nci 0xe1f60d1e	st_nci_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x14355f8a	st21nfca_dep_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x1467caca	st21nfca_dep_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2499139a	st21nfca_hci_se_io
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x2a845f44	st21nfca_se_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x47a8f0eb	st21nfca_vendor_cmds_init
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x5ddb9e2a	st21nfca_hci_disable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x6c718b0b	st21nfca_hci_remove
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x71db810d	st21nfca_connectivity_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x72e82d87	st21nfca_hci_enable_se
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9499ccb6	st21nfca_se_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x97929d21	st21nfca_hci_loopback_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0x9817c2f2	st21nfca_im_send_atr_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc1e008c7	st21nfca_dep_deinit
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xc96abcec	st21nfca_apdu_reader_event_received
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd115ea4d	st21nfca_tm_send_dep_res
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xd57e5154	st21nfca_im_send_dep_req
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xe1951d03	st21nfca_hci_probe
+EXPORT_SYMBOL	 drivers/nfc/st21nfca/st21nfca_hci 0xf4c523eb	st21nfca_hci_discover_se
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x05624a4a	ntb_default_peer_port_idx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x16563fcc	ntb_default_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x1a062c9c	ntb_set_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x2362ecd9	ntb_msi_peer_addr
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x563f8c09	ntbm_msi_free_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x5c6270c1	ntb_register_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x60e4cda8	ntb_db_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x66d0f4a8	ntbm_msi_request_threaded_irq
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x743720a0	ntb_msi_setup_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7683051f	ntb_msg_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7a3132b6	ntb_msi_init
+EXPORT_SYMBOL	 drivers/ntb/ntb 0x7b4920a9	ntb_default_peer_port_number
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xa2161521	ntb_default_peer_port_count
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xaf217c68	ntb_unregister_device
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xd1bb699b	ntb_msi_peer_trigger
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xdd23b92d	ntb_msi_clear_mws
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xe02803ed	ntb_clear_ctx
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xee37e414	__ntb_register_client
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xf55dbd8d	ntb_link_event
+EXPORT_SYMBOL	 drivers/ntb/ntb 0xffecb455	ntb_unregister_client
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x0f066daa	nvdimm_namespace_detach_btt
+EXPORT_SYMBOL	 drivers/nvdimm/nd_btt 0x7eaa6094	nvdimm_namespace_attach_btt
+EXPORT_SYMBOL	 drivers/parport/parport 0x0362bf24	parport_del_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x05bd04b1	parport_unregister_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x06982254	parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x1775c412	parport_put_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x1ab91bfe	parport_unregister_device
+EXPORT_SYMBOL	 drivers/parport/parport 0x22808c41	parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x2ffeee19	parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0x3aa38677	parport_release
+EXPORT_SYMBOL	 drivers/parport/parport 0x4013c177	__parport_register_driver
+EXPORT_SYMBOL	 drivers/parport/parport 0x4b4ba9b0	parport_ieee1284_epp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0x4d2a941b	parport_ieee1284_interrupt
+EXPORT_SYMBOL	 drivers/parport/parport 0x5a566cb9	parport_claim
+EXPORT_SYMBOL	 drivers/parport/parport 0x5e3a3912	parport_irq_handler
+EXPORT_SYMBOL	 drivers/parport/parport 0x5f5dd972	parport_ieee1284_read_nibble
+EXPORT_SYMBOL	 drivers/parport/parport 0x6974dea4	parport_claim_or_block
+EXPORT_SYMBOL	 drivers/parport/parport 0x6b5d06f5	parport_announce_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x73e3018a	parport_write
+EXPORT_SYMBOL	 drivers/parport/parport 0x7884c4eb	parport_find_base
+EXPORT_SYMBOL	 drivers/parport/parport 0x7a0b860d	parport_remove_port
+EXPORT_SYMBOL	 drivers/parport/parport 0x84284ffa	parport_register_dev_model
+EXPORT_SYMBOL	 drivers/parport/parport 0x8ce6d83a	parport_find_number
+EXPORT_SYMBOL	 drivers/parport/parport 0x98c1eccf	parport_get_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xab4954bf	parport_ieee1284_epp_read_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xad2cbb97	parport_read
+EXPORT_SYMBOL	 drivers/parport/parport 0xb8e08e89	parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL	 drivers/parport/parport 0xbcb385bd	parport_wait_event
+EXPORT_SYMBOL	 drivers/parport/parport 0xc1d25105	parport_wait_peripheral
+EXPORT_SYMBOL	 drivers/parport/parport 0xcfe3c644	parport_register_port
+EXPORT_SYMBOL	 drivers/parport/parport 0xd80ee57a	parport_register_device
+EXPORT_SYMBOL	 drivers/parport/parport 0xdca5bd7c	parport_ieee1284_write_compat
+EXPORT_SYMBOL	 drivers/parport/parport 0xe0d1a3ed	parport_ieee1284_read_byte
+EXPORT_SYMBOL	 drivers/parport/parport 0xede4ff43	parport_set_timeout
+EXPORT_SYMBOL	 drivers/parport/parport 0xf533056d	parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL	 drivers/parport/parport 0xf6b72ebe	parport_negotiate
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xca6a1e04	parport_pc_unregister_port
+EXPORT_SYMBOL	 drivers/parport/parport_pc 0xd00b43e5	parport_pc_probe_port
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x21987086	rpmsg_destroy_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x2d86f388	rpmsg_trysend_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x41e556a4	rpmsg_trysendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x6abc14ac	rpmsg_poll
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x7b892e58	__register_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x8e1c915a	rpmsg_unregister_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x936bd371	rpmsg_find_device
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0x95fb18ef	rpmsg_sendto
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa2f02883	rpmsg_send_offchannel
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xa6f7b938	unregister_rpmsg_driver
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xb25480f8	rpmsg_create_ept
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xce5965b9	rpmsg_send
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xd70d79ba	rpmsg_trysend
+EXPORT_SYMBOL	 drivers/rpmsg/rpmsg_core 0xe8ca0c6c	rpmsg_register_device
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x0faab266	scsi_esp_register
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x2db8a67c	scsi_esp_cmd
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x2f3d9ff6	scsi_esp_unregister
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x4a29ab38	scsi_esp_intr
+EXPORT_SYMBOL	 drivers/scsi/esp_scsi 0x7713654a	scsi_esp_template
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x0664346f	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x245e109d	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4c93afbf	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x5b9a326f	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6548e46b	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x67b61e26	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7969d3f4	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7fc17f85	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x8b7006df	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xbe9c39d0	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xe852fb61	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0682c594	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x11cce885	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x126bd758	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1503348c	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x18d000fe	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1ed1f24b	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x23746010	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2440ba86	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x28c3358a	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3b51bbc3	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3d613cfa	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3fd67266	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x442b8175	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x494db061	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x503a4a13	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x51e13165	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5ad33cf8	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x5f703d2b	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x688c2432	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x72c33b2c	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x739073a9	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x77a5482a	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7a919e45	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7df88644	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f9a3e90	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x846c4086	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8abeda57	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8c1c3348	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8d1744d2	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ef2ee75	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x906f32fa	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x92e7367e	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9b7f1c5f	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9c8083e8	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9e246e3d	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1405ac0	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1eea5a5	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb7642fe0	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb9c352d9	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc52f65bf	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5a25360	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xcbb5b774	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xda410cb5	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xde6b777c	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xded095ab	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b341c4	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe79b26e3	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe82057f9	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe9b92946	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf4d4009e	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf4fa22b2	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf6249327	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf89238ef	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa3e88c2	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfb181ad2	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfc0437ef	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfca74825	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfd716736	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfeeb245b	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xb144a137	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xb217413f	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xcb9ece26	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xa21fafb9	mraid_mm_adapter_app_handle
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01	mraid_mm_unregister_adp
+EXPORT_SYMBOL	 drivers/scsi/megaraid/megaraid_mm 0xd33353fd	mraid_mm_register_adp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2230f9d3	qlt_stop_phase2
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x2333f6a7	qlt_free_mcmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x34ee8200	qlt_rdy_to_xfer
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x35144f28	qlt_free_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x64fe48e1	qlt_xmit_response
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x7cffc721	qlt_abort_cmd
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x8e9dcba9	qlt_lport_deregister
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0x9b75ca98	qlt_xmit_tm_rsp
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xa8513535	qlt_lport_register
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xbe67515e	qlt_enable_vha
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xe7eef17f	qlt_unreg_sess
+EXPORT_SYMBOL	 drivers/scsi/qla2xxx/qla2xxx 0xecd2c8a9	qlt_stop_phase1
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x23261787	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0xfaa2219a	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x03dd94ca	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0ceed20e	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0dcbb46c	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x17bfd9b0	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2cb6374e	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x30bbb0f1	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x3d8d564d	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x58416887	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x62c65dab	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x667ea48c	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xad5eb393	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xb630e328	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd04490f3	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xe7415051	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf1d2e44c	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf5fc7490	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x04059be2	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x05430f5a	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0559c8e6	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x07cd7346	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x24b4571b	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x26f59b94	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x308cf133	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x3901901f	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x39e5d5c6	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4244dcca	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4cd950ba	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x631e3678	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x64466be7	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x67122b24	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6b312116	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x75f962f2	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x78ecc451	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x7c8605e0	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x815bb150	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x82bf41e7	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x86b5332e	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8d0f59fb	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x955ade12	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x9c082af9	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xac70f721	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe56fecd4	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xeb8a168d	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xefd98361	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xfa0c1c8a	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x427983b8	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x9435bb7d	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x9aebc0e2	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xd92235bc	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xdda65534	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xede460bb	tc_dwc_g210_config_40_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/tc-dwc-g210 0xfd7e0c7c	tc_dwc_g210_config_20_bit
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x1970eeea	ufshcd_runtime_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x1e97e8f5	ufshcd_runtime_idle
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x30fa1a2f	ufshcd_alloc_host
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0x45a8f6ad	ufshcd_map_desc_id_to_length
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xa8d16f9e	ufshcd_system_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xb65a50e1	ufshcd_shutdown
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xdc065155	ufshcd_get_local_unipro_ver
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xeaaabf9a	ufshcd_system_resume
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-core 0xf827c4f3	ufshcd_runtime_suspend
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x626b2b2d	ufshcd_dwc_link_startup_notify
+EXPORT_SYMBOL	 drivers/scsi/ufs/ufshcd-dwc 0x8f29920c	ufshcd_dwc_dme_set_attrs
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x16d1706b	sdw_prepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x1deee061	sdw_find_row_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x201f2cee	sdw_nread
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x22d93179	sdw_slave_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x3298e978	sdw_master_read_prop
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x451f69fe	sdw_stream_remove_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4aa0c82d	sdw_write
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x4cde88bf	sdw_disable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x60e31fbb	sdw_find_col_index
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x69ebe035	sdw_stream_add_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x71891d59	sdw_deprepare_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x8a72418d	sdw_stream_add_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0x9e122d79	sdw_alloc_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xba1ab2e1	sdw_handle_slave_status
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xbbec2c2e	sdw_enable_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xc32e214d	sdw_stream_remove_slave
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xccb734f8	sdw_read
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xda5bce09	sdw_release_stream
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xe104592b	sdw_delete_bus_master
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xefdd433e	sdw_nwrite
+EXPORT_SYMBOL	 drivers/soundwire/soundwire-bus 0xfefdf2ca	sdw_add_bus_master
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x04a0625c	ssb_bus_sdiobus_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x0c9606db	ssb_bus_powerup
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x201d075b	ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x3e4b4328	ssb_commit_settings
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x41d2c0af	ssb_bus_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x42baadfd	ssb_bus_resume
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x49a1f63c	ssb_bus_suspend
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x528261a6	ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x62074060	ssb_pcihost_register
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x64ef638b	ssb_dma_translation
+EXPORT_SYMBOL	 drivers/ssb/ssb 0x80e27bd5	ssb_bus_may_powerdown
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb090da40	ssb_chipco_gpio_control
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb6f1db38	ssb_device_is_enabled
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xb70b3bf4	ssb_clockspeed
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xba222277	ssb_device_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc3b0833c	ssb_driver_unregister
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xc5c55fbe	ssb_set_devtypedata
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xcb17f1cb	ssb_admatch_base
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xdfc7c6ef	ssb_admatch_size
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf742f61a	ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf7895016	ssb_device_disable
+EXPORT_SYMBOL	 drivers/ssb/ssb 0xf7c039f6	__ssb_driver_register
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x0e630106	fbtft_write_buf_dc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x184140c5	fbtft_write_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x297e5672	fbtft_register_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x2c6172f4	fbtft_framebuffer_release
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x48cf03f3	fbtft_write_reg16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x55a7eb5d	fbtft_probe_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x690f2ec2	fbtft_write_reg16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x6e63dfef	fbtft_write_reg8_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x88656580	fbtft_write_vmem8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x896db995	fbtft_framebuffer_alloc
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0x9861de17	fbtft_register_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xaf1b71bc	fbtft_remove_common
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb7345cb4	fbtft_write_vmem16_bus16
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb745b699	fbtft_unregister_framebuffer
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xb74d2aa4	fbtft_unregister_backlight
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc020ef50	fbtft_write_vmem16_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc4c50010	fbtft_write_gpio16_wr_latched
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xc7bc8b4d	fbtft_write_spi_emulate_9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xcb1f60b7	fbtft_init_display
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xe94873c7	fbtft_dbg_hex
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xea2b4d6b	fbtft_read_spi
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf1eda01a	fbtft_write_gpio16_wr
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf21643cc	fbtft_write_vmem16_bus9
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xf9dbc392	fbtft_write_reg8_bus8
+EXPORT_SYMBOL	 drivers/staging/fbtft/fbtft 0xfda1f411	fbtft_write_gpio8_wr
+EXPORT_SYMBOL	 drivers/staging/iio/addac/adt7316 0x9e925286	adt7316_probe
+EXPORT_SYMBOL	 drivers/staging/iio/meter/ade7854 0x31ec4d5f	ade7854_probe
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x0d318ab3	b1_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x11d1c07c	b1_parse_version
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x3537718c	avmcard_dma_free
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x41e27fcd	b1_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x45f7a19e	b1_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x64948c5d	b1_loaded
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x69a899dc	b1_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6b6db568	b1_getrevision
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x6f622a7c	b1_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x79ae8d30	b1_free_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x7f82f921	b1_alloc_card
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xbd6407b9	b1_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xc22c387f	b1_load_config
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xd3a61416	b1_load_t4file
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xf1b2c55d	avmcard_dma_alloc
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x0ac07fc3	b1dma_release_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x1e15a526	t1pci_detect
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x2485c57a	b1dma_register_appl
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x6daf6b84	b1dma_reset_ctr
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0x9907f9f5	b1dma_send_message
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xc90f45fa	b1dma_proc_show
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xe9a0ce8e	b1dma_reset
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xead93dc4	b1dma_load_firmware
+EXPORT_SYMBOL	 drivers/staging/isdn/avm/b1dma 0xff74616e	b1pciv4_detect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x09237b4d	alloc_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0c2bb610	rtllib_act_scanning
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0f0c0966	free_rtllib
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0fea2855	rtllib_wx_get_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x0ffdd8aa	rtllib_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x12ef098d	rtllib_sta_ps_send_null_frame
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x17e9b393	rtllib_wx_set_gen_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x1dd6b970	rtllib_ps_tx_ack
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x20c87fe8	rtllib_softmac_start_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x22166084	rt_global_debug_component
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2b98cada	dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x2d86ec0f	rtllib_xmit
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3537639c	rtllib_wx_get_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3741ce38	rtllib_wx_set_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x38a7c02b	rtllib_wx_set_mlme
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x3d0a22e0	dot11d_channel_map
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x47783432	rtllib_stop_scan
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x56fb0b58	rtllib_wx_get_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x62973b55	rtllib_wx_set_rawtx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x648e5956	rtllib_wx_get_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x65cb40bd	rtllib_reset_queue
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x68173851	rtllib_wx_set_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6a6195f5	rtllib_wx_get_freq
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6d073489	rtllib_wx_get_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x6de68c9b	rtllib_wx_set_encode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x7fb0f795	rtllib_wx_set_wap
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x80d921d7	RemovePeerTS
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x84bd049a	rtllib_DisableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x85c1cb95	rtllib_stop_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x87421a04	rtllib_wx_set_essid
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x87469ae9	rtllib_wx_get_name
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x875ea092	rtllib_wx_get_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x880be1c9	rtllib_wx_set_encode_ext
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x8fa25a23	rtllib_get_beacon
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x979003d1	rtllib_softmac_stop_protocol
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0x9c600e51	rtllib_wx_set_rts
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xa9fd50ac	rtllib_MgntDisconnect
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xaf3a9768	rtllib_wx_set_auth
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xb3675e04	notify_wx_assoc_event
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbcbe25d5	rtllib_wx_set_power
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xbf42239b	rtllib_rx
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd550b238	rtllib_wx_get_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd7261f9c	rtllib_wx_set_rate
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xd8b10b56	rtllib_start_scan_syncro
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdab0255f	rtllib_stop_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdbed698c	HT_update_self_and_peer_setting
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xdf78f620	rtllib_wlan_frequencies
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xe9f564f5	rtllib_start_send_beacons
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf473227a	rtllib_wx_set_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf6058fde	rtllib_wx_get_mode
+EXPORT_SYMBOL	 drivers/staging/rtl8192e/rtllib 0xf8eabb6b	rtllib_EnableIntelPromiscuousMode
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x02c9bc97	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x04c193a7	is_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0daacffd	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x0f9a6a51	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x137a0f1c	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x14ce5264	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x15ed3350	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x192eec7f	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1c4a8ab1	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x208c62ae	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x231366a1	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x27915735	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2b51cbda	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2cd62d81	rtl8192u_dot11d_init
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x2dc6f796	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x3a211436	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x4a5c2c79	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x50029cea	dot11d_scan_complete
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x57d2b8b3	to_legal_channel
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5b433f15	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x5ed6306c	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x62f412b2	ieee80211_disassociate_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x63c1cbc4	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x677a8bf3	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x6815f1ca	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x70bc01e6	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x7583c9bd	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x8189a198	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x834b1533	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9083bf2e	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x963b9a1a	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0x9f741370	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xa3abcd67	dot11d_get_max_tx_pwr_in_dbm
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xad0702e6	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xae5449a9	ieee80211_rx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xae8bb9da	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb14e9a23	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xb394da67	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbc8e6a6e	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbd6135a1	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbdf7edb9	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xbf355912	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc04d64a5	ieee80211_txb_free_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xc5df3374	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xcec5db56	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd11c1668	dot11d_update_country_ie
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd39c3bfa	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xd71f9ffb	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xdecfed3c	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe2325f6c	SendDisassociation_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe24413fe	dot11d_reset
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xe2898b7d	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b	ieee80211_is_54g_rsl
+EXPORT_SYMBOL	 drivers/staging/rtl8192u/r8192u_usb 0xede47332	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0518b0a8	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0a9b39da	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0f061a2c	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x10dd75fe	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1d393e3e	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1f6796a0	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x36b41b58	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x3db6d888	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x40bd4ca0	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x47faaf9e	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4af251bf	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4e9b0681	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4fdb1175	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x50572155	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5e34e014	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5f23b963	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5f8940ca	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8a5d91cf	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8a7a6f6b	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8f4ae29d	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x9bcf563f	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa267ca35	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa908f788	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xae640754	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xae7f561b	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xaec9f0ba	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb14ba574	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb3019b2e	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb6790583	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb6cd9c6f	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb6d5c719	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xb6fdfef5	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbd108158	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc13de427	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc8460b26	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xca18a919	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd1843888	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd54885c0	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xd87e1942	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf27d24a0	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf56c056a	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf7782d0c	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfa20761c	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfaa24271	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0400c369	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x06343c99	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x094dc02e	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0bdf546d	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x121c15e2	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x15797f9d	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1a145cf0	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1b8f4825	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1f372cd4	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1fd3f351	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x267e59e1	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2781df06	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x289dba26	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a9661a2	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2fb8b2b2	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x39301482	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3cb12678	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x446e0a8b	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x482506cf	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4d0b6002	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4fbc2775	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4fc3f580	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x50012ed6	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x543adc74	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x55cd943f	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5dae2a68	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5fa2c086	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x602023ef	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x615836a3	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6705a7cd	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x71c0138a	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x75ce4905	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a460610	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x82e6eb1c	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8aa203e2	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8b319a94	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8e5c7dce	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x8f1f0c55	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9aab6ad3	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9af71765	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x9e5dc5bd	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xab3c6e85	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xaf5b8568	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb00dbd07	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb13ecbe7	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb6e11bb0	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb6ed1726	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xbba92489	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc0f378ed	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc4c73bb7	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc4fc7028	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc616e119	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcb7bee95	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcf22c228	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcf5b6977	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd25f9f24	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd2693bd3	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd7227acb	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdd7dd552	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe03e5edb	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe0c3197b	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe41ab1c6	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe44d8280	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe9dff07c	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xee8cfe65	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf404bcfc	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf4223cbf	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf67435e2	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfa0d7c69	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfa988cc6	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfc693580	target_undepend_item
+EXPORT_SYMBOL	 drivers/usb/class/cdc-wdm 0x18a5f189	usb_cdc_wdm_register
+EXPORT_SYMBOL	 drivers/usb/gadget/libcomposite 0xb5aa72a2	usb_os_desc_prepare_interf_dir
+EXPORT_SYMBOL	 drivers/usb/host/sl811-hcd 0x35fc51c9	sl811h_driver
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x18f6a4ca	usb_wwan_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x2f4eb96b	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3876e864	usb_wwan_suspend
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x3c5a427c	usb_wwan_write
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x4fcf8ea6	usb_wwan_open
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x65f4122f	usb_wwan_close
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x7c7e687b	usb_wwan_get_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9686e6d8	usb_wwan_tiocmset
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0x9b7f9523	usb_wwan_tiocmget
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xaa9443ee	usb_wwan_port_remove
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xad1b6a79	usb_wwan_dtr_rts
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xb11581f8	usb_wwan_set_serial_info
+EXPORT_SYMBOL	 drivers/usb/serial/usb_wwan 0xdaa216f7	usb_wwan_write_room
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x28b9bce8	usb_serial_resume
+EXPORT_SYMBOL	 drivers/usb/serial/usbserial 0x583f0ddd	usb_serial_suspend
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x056c2902	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x15e30906	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x166e641e	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x37855645	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x47e1fdba	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x7092a401	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xbd391677	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcdb0f177	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd33509cf	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xd340d8fd	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe96a2135	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xeeb7a555	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x043da8dd	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x16cb09aa	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x029cea78	vringh_complete_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x0765a1e4	vringh_init_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1537fdb8	vringh_need_notify_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1851abb6	vringh_notify_enable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x1ad4f052	vringh_notify_enable_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x2e0989c7	vringh_abandon_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x3b304ebb	vringh_iov_push_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4311cd91	vringh_iov_pull_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x4d7e3b8b	vringh_need_notify_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x6036936b	vringh_complete_multi_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x831227bb	vringh_complete_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0x97fa07e9	vringh_iov_push_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xbc66815e	vringh_notify_disable_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc520b616	vringh_init_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xc9b4a67b	vringh_abandon_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xd099974a	vringh_getdesc_user
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xdc2d9f94	vringh_getdesc_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xde804bb9	vringh_iov_pull_kern
+EXPORT_SYMBOL	 drivers/vhost/vringh 0xe42f476d	vringh_notify_disable_kern
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x32b47d09	lcd_device_register
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0x7136ebb9	devm_lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xcbe33ba3	lcd_device_unregister
+EXPORT_SYMBOL	 drivers/video/backlight/lcd 0xd574224c	devm_lcd_device_register
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x02f8659c	svga_tilecopy
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x17f3f471	svga_set_default_seq_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x1be6dc30	svga_set_textmode_vga_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x27a1ea01	svga_get_caps
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x4ab38ef2	svga_set_default_crt_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x57578fd2	svga_tilefill
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x5f7c57ad	svga_tileblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x83a41489	svga_set_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c337c2	svga_wcrt_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0x84c97d2a	svga_match_format
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb0ab2b2e	svga_check_timings
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xb8ab2695	svga_settile
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xbcf22d26	svga_get_tilemax
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd22ca511	svga_set_default_atc_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xd6ec2c44	svga_compute_pll
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xdcc5a013	svga_wseq_multi
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe276302b	svga_tilecursor
+EXPORT_SYMBOL	 drivers/video/fbdev/core/svgalib 0xe28d2a49	svga_set_default_gfx_regs
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0xdaf5c1dd	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0x1aa26b89	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0xe4af5cf9	sys_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x0cc3ede5	cyber2000fb_detach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0x534b6f18	cyber2000fb_disable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb12cca7e	cyber2000fb_attach
+EXPORT_SYMBOL	 drivers/video/fbdev/cyber2000fb 0xb39f68d1	cyber2000fb_enable_extregs
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x299330db	g450_mnp2f
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x594777ca	matroxfb_g450_setpll_cond
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/g450_pll 0x98c5cd94	matroxfb_g450_setclk
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0x6fe78247	DAC1064_global_restore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xa7963810	matrox_G100
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xae14962b	DAC1064_global_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_DAC1064 0xcfbf39d7	matrox_mystique
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_Ti3026 0xc2a03a2e	matrox_millennium
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_accel 0xbba35cf4	matrox_cfbX_init
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x10e09b33	matroxfb_unregister_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x5d7314cf	matroxfb_wait_for_sync
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x6bf6f485	matroxfb_enable_irq
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_base 0x95e3b2af	matroxfb_register_driver
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0x56d08643	matroxfb_g450_shutdown
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_g450 0xfcc8f53d	matroxfb_g450_connect
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049	matroxfb_PLL_calcclock
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x537ddd08	matroxfb_read_pins
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x5ae14d7c	matroxfb_vgaHWinit
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x8165424c	matroxfb_DAC_in
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0x8a7e3577	matroxfb_DAC_out
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xb2326f95	matroxfb_vgaHWrestore
+EXPORT_SYMBOL	 drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64	matroxfb_var2my
+EXPORT_SYMBOL	 drivers/video/fbdev/mb862xx/mb862xxfb 0x312b15be	mb862xxfb_init_accel
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0x3037658e	sis_malloc
+EXPORT_SYMBOL	 drivers/video/fbdev/sis/sisfb 0xfe963115	sis_free
+EXPORT_SYMBOL	 drivers/video/vgastate 0x686de290	restore_vga
+EXPORT_SYMBOL	 drivers/video/vgastate 0xe7a2620e	save_vga
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x1bb2abb8	w1_ds2780_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2780 0x9c03e7ed	w1_ds2780_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0x1af8ec19	w1_ds2781_io
+EXPORT_SYMBOL	 drivers/w1/slaves/w1_ds2781 0xb27aa126	w1_ds2781_eeprom_cmd
+EXPORT_SYMBOL	 drivers/w1/wire 0x6eb8d186	w1_add_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xb9013e6f	w1_register_family
+EXPORT_SYMBOL	 drivers/w1/wire 0xc33b9958	w1_remove_master_device
+EXPORT_SYMBOL	 drivers/w1/wire 0xe6bdb894	w1_unregister_family
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x225c2fb3	bd70528_wdt_set
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0x999efc14	bd70528_wdt_lock
+EXPORT_SYMBOL	 drivers/watchdog/bd70528_wdt 0xb2201ec1	bd70528_wdt_unlock
+EXPORT_SYMBOL	 fs/fscache/fscache 0x00a61112	fscache_op_complete
+EXPORT_SYMBOL	 fs/fscache/fscache 0x01641a6c	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0x03b29331	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0447ae2b	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x07066ebe	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0x08a500d9	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0edfee88	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1215956b	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x16df79e7	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x18e119b5	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x1b248081	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2bed62b6	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x3cefc884	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4331ac89	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4f08d32b	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x539e861c	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x54e0c819	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x565172c9	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0x60b50f44	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6cc1e5be	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7475b5ba	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x769f0fe3	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x79f18d57	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7b3d0e8d	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x8db23417	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0x928f02b6	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9433d845	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa1d99a7d	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa28f206a	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa3202501	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb2028e6c	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb5d85946	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbaced72a	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbe9ca713	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc22ddd1a	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcbdcf622	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0xea7e5a93	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf0a210d2	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf10da5be	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf55bf88d	fscache_obtained_object
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x10a3fb77	qtree_read_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x3a12daf4	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8dfd6b3a	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8e3662fc	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xa9123630	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xc6975869	qtree_release_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0x09a34a2b	crc_itu_t
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xba55d23e	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xe2aae5cc	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0641307b	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0x098d2ed9	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0x2d47ac83	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0x2f3dcecb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x4522d82a	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0x4cf5f5a8	lc_is_used
+EXPORT_SYMBOL	 lib/lru_cache 0x530c91de	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x5752f31b	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x7257beee	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x9134feb7	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0xb672aa97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0xbfbe53d5	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a98c1d	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0xcc979a91	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0xec79010f	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xefec290a	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xfd525ec7	lc_put
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x38f7b6e0	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x93ff008c	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x9cef495b	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0x679e8cc2	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xefc78e77	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0e27a2dd	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1278221d	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1a107de2	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1df63e88	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1f03912b	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2524ba17	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x279be432	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2833f577	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2914ea2d	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x30af45a1	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x371e7f3a	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x430ecc96	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x49ed86a0	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x56466e42	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x5c00d810	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x61577694	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x74725e69	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x94e481cf	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x9f65c857	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa155c071	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb0aed408	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xb4985beb	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xbaffff96	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce3864eb	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xce50e5de	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd90cb249	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe41476d9	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xefe4f679	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xfdf70093	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff9c4b56	ZSTD_compressBound
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x0cc2cfa0	lowpan_register_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x8813a3d6	lowpan_register_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0x9f0fddb2	lowpan_nhc_del
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xba83134f	lowpan_unregister_netdevice
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xc107802e	lowpan_unregister_netdev
+EXPORT_SYMBOL	 net/6lowpan/6lowpan 0xfa459f6a	lowpan_nhc_add
+EXPORT_SYMBOL	 net/802/p8022 0x1e6ced8f	register_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xb085d56f	unregister_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x601f3acb	unregister_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x8af4eb8a	register_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x04833960	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x19247338	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x1931365a	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x196602a9	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x1cdf35ed	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x2689d8a9	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x39a14d67	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d376180	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x408f3173	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x5095eef6	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x514a3bae	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0x53eb2f42	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0x5f272c5d	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x63901c9e	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x6396b4a9	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6c36a202	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x6d43d96e	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x6f8d746b	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x7231d507	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x73f10827	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x78290fa7	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x7ae25f22	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x7db14e71	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0x953894ec	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0x9587f3ce	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x96ce78e9	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x984c5e73	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0x9b2239fa	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0xb51873bc	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0xb79f25fd	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0xb9f3d22a	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xca5d5e95	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xcdae598e	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xce00d612	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xcef5edb8	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd8a697ef	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xd957e63d	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0xda1a1739	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0xda7177a7	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0xde7d61ed	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0xded36a6c	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe9bdf400	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xedeae4f7	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0xefac9e77	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xf06c6f35	p9_client_attach
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x587bc4d3	atalk_find_dev_addr
+EXPORT_SYMBOL	 net/appletalk/appletalk 0x5cbaa04a	atrtr_get_dev
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xa86e5429	aarp_send_ddp
+EXPORT_SYMBOL	 net/appletalk/appletalk 0xc480105c	alloc_ltalkdev
+EXPORT_SYMBOL	 net/atm/atm 0x0b35d89b	vcc_process_recv_queue
+EXPORT_SYMBOL	 net/atm/atm 0x1075b88d	atm_dev_register
+EXPORT_SYMBOL	 net/atm/atm 0x150b5f95	vcc_release_async
+EXPORT_SYMBOL	 net/atm/atm 0x170668b7	atm_dev_lookup
+EXPORT_SYMBOL	 net/atm/atm 0x1afdfbec	deregister_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL	 net/atm/atm 0x4443d399	atm_proc_root
+EXPORT_SYMBOL	 net/atm/atm 0x50167274	atm_alloc_charge
+EXPORT_SYMBOL	 net/atm/atm 0x625dabd7	register_atm_ioctl
+EXPORT_SYMBOL	 net/atm/atm 0x68fc24b3	atm_dev_deregister
+EXPORT_SYMBOL	 net/atm/atm 0x8a642faa	atm_charge
+EXPORT_SYMBOL	 net/atm/atm 0x8aada896	atm_dev_release_vccs
+EXPORT_SYMBOL	 net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL	 net/atm/atm 0xa6a83286	atm_dev_signal_change
+EXPORT_SYMBOL	 net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL	 net/atm/atm 0xca87b453	vcc_sklist_lock
+EXPORT_SYMBOL	 net/atm/atm 0xdaff92a5	vcc_insert_socket
+EXPORT_SYMBOL	 net/atm/atm 0xf2c8b1c6	atm_init_aal5
+EXPORT_SYMBOL	 net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL	 net/ax25/ax25 0x14cecd59	ax25_display_timer
+EXPORT_SYMBOL	 net/ax25/ax25 0x14e83856	ax25_find_cb
+EXPORT_SYMBOL	 net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL	 net/ax25/ax25 0x2f5543f7	ax25_listen_release
+EXPORT_SYMBOL	 net/ax25/ax25 0x3800af0e	ax25_listen_register
+EXPORT_SYMBOL	 net/ax25/ax25 0x401823fb	ax25_header_ops
+EXPORT_SYMBOL	 net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL	 net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL	 net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xa99ffab0	ax25_send_frame
+EXPORT_SYMBOL	 net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL	 net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL	 net/ax25/ax25 0xd474b749	ax25_linkfail_register
+EXPORT_SYMBOL	 net/ax25/ax25 0xedb9f790	ax25_linkfail_release
+EXPORT_SYMBOL	 net/ax25/ax25 0xee02e420	ax25_findbyuid
+EXPORT_SYMBOL	 net/ax25/ax25 0xee8c2e97	ax25_ip_xmit
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x03a432c9	bt_sock_wait_state
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0718b8b7	bt_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0832bd91	bt_sock_reclassify_lock
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x0956db1f	bt_sock_wait_ready
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1739901b	hci_recv_diag
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1b9a6e80	bt_sock_link
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x1c52e58e	hci_unregister_cb
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x214e4265	bt_warn
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x31525fa4	bt_sock_ioctl
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x32b65c7c	hci_suspend_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x3d92e298	bt_procfs_init
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x47992d50	hci_mgmt_chan_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x4b097f5e	bt_sock_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x56c3f6b0	l2cap_unregister_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x581b7e68	bt_procfs_cleanup
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5863d32b	bt_sock_stream_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x58c71e02	hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x5a643baf	hci_unregister_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x63a3daab	hci_free_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x66dbe99d	bt_sock_poll
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x6c089d87	__hci_cmd_sync_ev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7494e7d0	hci_conn_check_secure
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7aad008b	bt_to_errno
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b5ce5c3	baswap
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7b8c32f1	bt_err
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x7f07a1bf	hci_get_route
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8aee0107	hci_recv_frame
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8dde4c05	hci_register_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x8fea24bd	bt_sock_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9066eb73	__hci_cmd_sync
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x97dd4e72	l2cap_conn_put
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0x9dd9c350	hci_resume_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa1acfa14	bt_accept_enqueue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xa2d613f0	hci_conn_security
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb1265d99	hci_conn_switch_role
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xb7444fb4	bt_sock_recvmsg
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbe224c54	hci_alloc_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xbed0e809	hci_mgmt_chan_unregister
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcb8d73e6	l2cap_is_socket
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xcedd219f	bt_sock_register
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd190293b	__hci_cmd_send
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd376d483	l2cap_chan_close
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7613212	bt_err_ratelimited
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xd7f4698a	hci_set_fw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdae9f1f2	l2cap_conn_get
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xdca5b42e	hci_set_hw_info
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe626deb6	l2cap_register_user
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xe6937a6f	bt_accept_dequeue
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf229bb5c	hci_reset_dev
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xf63d56bc	bt_accept_unlink
+EXPORT_SYMBOL	 net/bluetooth/bluetooth 0xfe7f5de7	hci_register_cb
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x40e0b5b9	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x7db358d0	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x9a03fa13	ebt_unregister_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xa0af1497	ebt_do_table
+EXPORT_SYMBOL	 net/caif/caif 0x0b6a1a5a	get_cfcnfg
+EXPORT_SYMBOL	 net/caif/caif 0x1446b60a	caif_client_register_refcnt
+EXPORT_SYMBOL	 net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL	 net/caif/caif 0x329dbd06	cfpkt_info
+EXPORT_SYMBOL	 net/caif/caif 0x38701a7c	cfcnfg_del_phy_layer
+EXPORT_SYMBOL	 net/caif/caif 0x3fa84493	cfpkt_add_head
+EXPORT_SYMBOL	 net/caif/caif 0x40babbe0	cfpkt_extr_head
+EXPORT_SYMBOL	 net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL	 net/caif/caif 0x5984d6b7	caif_connect_client
+EXPORT_SYMBOL	 net/caif/caif 0x6690c957	caif_disconnect_client
+EXPORT_SYMBOL	 net/caif/caif 0x839ddb7b	cfcnfg_set_phy_state
+EXPORT_SYMBOL	 net/caif/caif 0x9e3e305d	cfpkt_set_prio
+EXPORT_SYMBOL	 net/caif/caif 0xb7b6874e	caif_free_client
+EXPORT_SYMBOL	 net/caif/caif 0xb90a98ee	caif_enroll_dev
+EXPORT_SYMBOL	 net/caif/caif 0xe1818ff7	cfcnfg_add_phy_layer
+EXPORT_SYMBOL	 net/can/can 0x5bdff56e	can_send
+EXPORT_SYMBOL	 net/can/can 0x69a0bdb9	can_rx_unregister
+EXPORT_SYMBOL	 net/can/can 0x7b88b4c8	can_sock_destruct
+EXPORT_SYMBOL	 net/can/can 0x9227ef1f	can_rx_register
+EXPORT_SYMBOL	 net/can/can 0x9399fce5	can_proto_register
+EXPORT_SYMBOL	 net/can/can 0xf7c40150	can_proto_unregister
+EXPORT_SYMBOL	 net/ceph/libceph 0x0387debe	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x051fc317	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x0737bdf1	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0x098162e1	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a329f46	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x0a82943f	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x1050f270	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x165b1948	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x16f3dcfb	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x17ba434d	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x1f6a5533	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x20b2d6bc	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x28866fe2	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x2a983d26	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x2dc7e29a	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x2ed5034f	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x343e0113	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f5eaa5	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x3abd69b7	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b8247b2	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x3b903126	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3e1ccb58	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x3f1884c9	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x404768e1	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x413039b6	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x414c18c3	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x417a9131	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x44cffad4	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x457186e5	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x47606c10	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x485d6c2e	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x4c06a92a	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x5360c761	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x55e817be	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5b6e088f	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d33c663	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d584573	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x60468035	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0x619239c4	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x61cbccef	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x63b076e8	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a796645	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6c39c6de	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f5b736a	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0x7056bd25	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x75e7287b	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x79e2df4b	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e45fe05	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e6ca102	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x7efb2fea	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x83376f56	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x8382e0d9	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x850d7ef7	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x859644cc	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x8ad49da9	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x8b3e5a76	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x8c1e22ae	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x8de176eb	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x90683ce9	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x949f43f7	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x9870bdcc	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x99b59c5d	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0x99f66118	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x9bc6b539	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9d6b3191	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x9f99442b	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fbba67f	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa20cfee0	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xa281c242	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xa3d91693	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xa471b6db	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xaa418226	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xaadb6782	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xaae8cabd	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0xab72340a	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb0e2ba88	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xb0f0e62c	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xb15d6dcc	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb64f8d75	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xb850972c	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xb98156ff	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xba5c584c	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0xbd2f79ae	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xc0617bd4	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc09c3a51	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xc2020631	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xc366bfa1	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0xc4cb8f3a	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0xc508e56f	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xc75f5cac	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xc9f767b9	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfe8e6b2	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd3854098	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd92333e1	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xdbab0190	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0xdd8fb765	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0xdeadfac4	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe566c72a	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5abd64c	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe76e7226	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xe9ec2ed3	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xef1e39ca	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce3c3b	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xefce991c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0xf00d89eb	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xf03fe862	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0xf09e821d	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8a2eab4	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9116025	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0xf9e43313	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0xfc944b6e	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0xfe612586	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0xfe72ba6f	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0xfe7b5a52	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0xfeb2e502	ceph_monc_init
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x0831c5db	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x4817307e	dccp_req_err
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xf0f296a2	dsa_port_vid_add
+EXPORT_SYMBOL	 net/dsa/dsa_core 0xf9a7aead	dsa_port_vid_del
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x37b02be5	wpan_phy_new
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x3d9201d2	wpan_phy_find
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x426d22ef	wpan_phy_register
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x5a1af24d	wpan_phy_free
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x7ec5543e	wpan_phy_for_each
+EXPORT_SYMBOL	 net/ieee802154/ieee802154 0x8d40a835	wpan_phy_unregister
+EXPORT_SYMBOL	 net/ipv4/fou 0x076fb9e8	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x0ddb538a	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0x1757d1a4	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0xf13914b3	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0x46d61594	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x53c24af9	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x5d272c42	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x68ca6c7e	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x6d9925f8	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x001e1ed4	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x0e33ecd3	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xcecf9474	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0xd86990b5	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x40218467	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x65c28a3c	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x7ead9b93	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x6e37baec	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0xc22c4d20	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xc7bd5317	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x01cd090a	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x1d24900a	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x2e3389f5	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x333eddb4	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x647e5037	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x76332e30	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa7d88ed0	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xc1c10eed	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xf02a432a	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x0ac5644b	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x533cd12e	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x966130f4	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x436034de	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x93c3af3a	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0x022fe16d	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xb22ff6d3	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xb89c56a8	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0xdd1942f5	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0xf749d435	l2tp_ioctl
+EXPORT_SYMBOL	 net/lapb/lapb 0x44295963	lapb_getparms
+EXPORT_SYMBOL	 net/lapb/lapb 0x4f8aa56e	lapb_connect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0x634660d9	lapb_unregister
+EXPORT_SYMBOL	 net/lapb/lapb 0x84cb5fbb	lapb_disconnect_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xae68efd7	lapb_data_request
+EXPORT_SYMBOL	 net/lapb/lapb 0xb158ea11	lapb_register
+EXPORT_SYMBOL	 net/lapb/lapb 0xd36c83ec	lapb_data_received
+EXPORT_SYMBOL	 net/lapb/lapb 0xf2170551	lapb_setparms
+EXPORT_SYMBOL	 net/llc/llc 0x063df51a	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x48676049	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x89d0d27f	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xb2cbc247	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0xba2c08be	llc_add_pack
+EXPORT_SYMBOL	 net/llc/llc 0xcbf3b77f	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xf72b05c9	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0624f0c5	ieee80211_free_txskb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x06d075e1	ieee80211_connection_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x095b53c9	ieee80211_sta_set_buffered
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0bcdbec3	ieee80211_send_bar
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x0c9609eb	ieee80211_csa_update_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x12618615	ieee80211_tx_status
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x12666598	ieee80211_wake_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1368b6a5	ieee80211_find_sta
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x150b1674	ieee80211_mark_rx_ba_filtered_frames
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x19f37f0d	ieee80211_update_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1b9e657a	ieee80211_restart_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1d0b10a9	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x1e4353b9	ieee80211_rate_control_register
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x21385601	ieee80211_radar_detected
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2205d2bb	ieee80211_generic_frame_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x23ac360d	__ieee80211_schedule_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x265d3470	ieee80211_register_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x28a8902c	ieee80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2ab3fa92	ieee80211_rts_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x2dc2230f	ieee80211_sta_block_awake
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x300a115e	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x31296e1b	ieee80211_csa_set_counter
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x330f29b6	ieee80211_tx_prepare_skb
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3451bc2f	ieee80211_unregister_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x346d5689	ieee80211_tx_status_ext
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x34b05f51	ieee80211_sta_uapsd_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x371dd6c9	ieee80211_csa_is_complete
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3caeab30	ieee80211_nullfunc_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x3feb252d	ieee80211_free_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4067b2d6	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x409efc9a	ieee80211_wake_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x42073eef	ieee80211_proberesp_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x47568890	ieee80211_rx_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4b668bbe	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4ed805ab	ieee80211_txq_schedule_start
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x4ef04acb	ieee80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x52584f9c	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x53bd7fb0	ieee80211_get_buffered_bc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x576ef8e7	ieee80211_reserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x580ef908	ieee80211_beacon_get_tim
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x5c24a5f4	ieee80211_alloc_hw_nm
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x63dc2216	ieee80211_txq_get_depth
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x65bddd92	ieee80211_get_tx_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x67016f89	ieee80211_next_txq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6981c718	ieee80211_rx_ba_timer_expired
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6c10badb	ieee80211_ctstoself_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x6d0d73fd	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x702a964e	ieee80211_sta_ps_transition
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7aa21f94	rate_control_set_rates
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x7bfbbf16	ieee80211_manage_rx_ba_offl
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x81febe76	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8235ec6d	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8ac628b2	ieee80211_unreserve_tid
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8f34b0cb	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x8fb81df4	ieee80211_ctstoself_duration
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x956ab669	ieee80211_queue_stopped
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x95e6fb6b	ieee80211_report_low_ack
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x96e05d06	ieee80211_queue_delayed_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x97dad069	ieee80211_nan_func_terminated
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9862e0fa	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x991a0ca0	ieee80211_parse_p2p_noa
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x99fa7a47	ieee80211_iter_keys
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9b10a30b	ieee80211_chswitch_done
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9c067374	ieee80211_send_eosp_nullfunc
+EXPORT_SYMBOL	 net/mac80211/mac80211 0x9e1ccc0f	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa629c8dd	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xa83f58fe	ieee80211_pspoll_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xaaa40e96	ieee80211_rts_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb0edcbce	ieee80211_rx_napi
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb12c92b8	ieee80211_sta_eosp
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xb41124d9	ieee80211_tx_dequeue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xba23bc8b	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe456228	ieee80211_ap_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xbe6e3447	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc55daacb	ieee80211_probereq_get
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xc7fd4c44	ieee80211_tdls_oper_request
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca33c238	ieee80211_queue_work
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca5f352e	ieee80211_rate_control_unregister
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xca627594	ieee80211_sched_scan_results
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xcc8d5141	ieee80211_scan_completed
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xccb7a8ca	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd016d3e5	ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd1c14b00	ieee80211_tx_rate_update
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd28c85b7	ieee80211_iter_keys_rcu
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xd5c27d33	ieee80211_beacon_loss
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xde0e8c73	ieee80211_txq_may_transmit
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdf0d0193	ieee80211_stop_queue
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xdff0000a	ieee80211_sta_register_airtime
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe345725f	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe6669fa7	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe6a01326	ieee80211_nan_func_match
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xe751ee74	ieee80211_stop_queues
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xef9264e9	ieee80211_sta_pspoll
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf19f3b9f	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf2d6a8c3	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xf61f3937	ieee80211_beacon_get_template
+EXPORT_SYMBOL	 net/mac80211/mac80211 0xfdff0fa3	ieee80211_csa_finish
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x1222d0ae	ieee802154_xmit_complete
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x3d6bd01e	ieee802154_rx_irqsafe
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x5d206b72	ieee802154_register_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x69c6f5ac	ieee802154_wake_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x6d789682	ieee802154_free_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0x9e07a127	ieee802154_alloc_hw
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xb30c764b	ieee802154_stop_queue
+EXPORT_SYMBOL	 net/mac802154/mac802154 0xf335f7f0	ieee802154_unregister_hw
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x11f62284	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x42d0c323	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x47dc2082	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x49a85916	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5a89ac68	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x5edca94e	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x6dc72514	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x879401dd	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9e604be7	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa2b3275b	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xa6e2e30e	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd19b3691	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd3888660	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe307fef5	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xef03cff0	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x1d3987f9	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x84e4ccaf	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x402da64e	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x480ccbdd	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x571a05dc	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xd848b34c	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xf1ac87e7	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0677db0c	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x300c1d4a	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x5265524f	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x60d132cc	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x6a7bbb20	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x7ad9ef70	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa5f29907	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xbf8e3d4d	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xe914f959	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x0de5c77f	nfc_hci_unregister_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x2a002f18	nfc_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x30eb1a0a	nfc_hci_get_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x317bd99d	nfc_hci_get_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3e3e3377	nfc_hci_register_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x3f2d38f2	nfc_llc_start
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x490b0857	nfc_hci_target_discovered
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x58944a32	nfc_hci_allocate_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5cb55915	nfc_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x5e988ab8	nfc_hci_reset_pipes
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x63b7bbb3	nfc_hci_set_param
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x74fe3670	nfc_hci_result_to_errno
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x76fc50d4	nfc_hci_recv_frame
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x77f526ca	nfc_hci_driver_failure
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x81e02c5a	nfc_hci_set_clientdata
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x82d73f39	nfc_hci_free_device
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x875858de	nfc_llc_stop
+EXPORT_SYMBOL	 net/nfc/hci/hci 0x99092083	nfc_hci_disconnect_gate
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xa5cc1e0a	nfc_hci_disconnect_all_gates
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xbcc6a99f	nfc_hci_send_cmd_async
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xce16e96a	nfc_hci_reset_pipes_per_host
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xdd231c55	nfc_hci_sak_to_protocol
+EXPORT_SYMBOL	 net/nfc/hci/hci 0xe7c10596	nfc_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x00ddfb38	nci_allocate_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x026d9947	nci_nfcee_mode_set
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x095a2444	nci_hci_dev_session_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x0d803899	nci_core_reset
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x1b4a2b43	nci_req_complete
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x37d6ea18	nci_unregister_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x3cba3836	nci_hci_get_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x41c403b7	nci_hci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x45284cc7	nci_hci_send_event
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x4ee8bf5e	nci_hci_set_param
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x6dc01cbd	nci_core_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x72fb1516	nci_core_conn_close
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7e84cece	nci_hci_open_pipe
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x7efbcc42	nci_hci_clear_all_pipes
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x8006f8fd	nci_register_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x90157172	nci_core_init
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x92e84a87	nci_send_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0x9ba4a735	nci_core_conn_create
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa03af946	nci_set_config
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xa6fce5a6	nci_hci_connect_gate
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xab00402c	nci_send_frame
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xad80e607	nci_free_device
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xafb645a2	nci_nfcee_discover
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb8b2e5ac	nci_get_conn_info_by_dest_type_params
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xb9d64044	nci_conn_max_data_pkt_payload_size
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xccb10edb	nci_prop_cmd
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xdb935b31	nci_send_data
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xe9ae561b	nci_nfcc_loopback
+EXPORT_SYMBOL	 net/nfc/nci/nci 0xeccd9215	nci_recv_frame
+EXPORT_SYMBOL	 net/nfc/nfc 0x1faa8e87	nfc_fw_download_done
+EXPORT_SYMBOL	 net/nfc/nfc 0x294f5da1	nfc_vendor_cmd_reply
+EXPORT_SYMBOL	 net/nfc/nfc 0x2bcfffa5	nfc_tm_deactivated
+EXPORT_SYMBOL	 net/nfc/nfc 0x3118157f	nfc_remove_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x3c131184	nfc_get_local_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x3fe4f1db	nfc_add_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x50b0dde2	nfc_register_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x5f0c9f2c	nfc_class
+EXPORT_SYMBOL	 net/nfc/nfc 0x651f642f	nfc_set_remote_general_bytes
+EXPORT_SYMBOL	 net/nfc/nfc 0x67ab7e60	nfc_tm_data_received
+EXPORT_SYMBOL	 net/nfc/nfc 0x67ae215e	nfc_find_se
+EXPORT_SYMBOL	 net/nfc/nfc 0x6d67f5a5	nfc_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc 0x8214dbe7	nfc_proto_unregister
+EXPORT_SYMBOL	 net/nfc/nfc 0x8b173ca4	nfc_driver_failure
+EXPORT_SYMBOL	 net/nfc/nfc 0x96a4d0c0	nfc_proto_register
+EXPORT_SYMBOL	 net/nfc/nfc 0x98350a74	nfc_se_connectivity
+EXPORT_SYMBOL	 net/nfc/nfc 0xa0618622	nfc_target_lost
+EXPORT_SYMBOL	 net/nfc/nfc 0xa3c1a929	__nfc_alloc_vendor_cmd_reply_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xb44fe46b	nfc_dep_link_is_up
+EXPORT_SYMBOL	 net/nfc/nfc 0xbfb841cd	nfc_se_transaction
+EXPORT_SYMBOL	 net/nfc/nfc 0xc7f0ce47	nfc_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc 0xc8ccbc97	nfc_tm_activated
+EXPORT_SYMBOL	 net/nfc/nfc 0xea2270db	nfc_send_to_raw_sock
+EXPORT_SYMBOL	 net/nfc/nfc 0xea8a433c	nfc_alloc_recv_skb
+EXPORT_SYMBOL	 net/nfc/nfc 0xf8b48f0b	nfc_targets_found
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x1c8c7652	nfc_digital_allocate_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x4efae3d9	nfc_digital_unregister_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0x79c215e6	nfc_digital_free_device
+EXPORT_SYMBOL	 net/nfc/nfc_digital 0xb4c96180	nfc_digital_register_device
+EXPORT_SYMBOL	 net/phonet/phonet 0x4a9ac01c	pn_skb_send
+EXPORT_SYMBOL	 net/phonet/phonet 0x64fa1a19	pn_sock_hash
+EXPORT_SYMBOL	 net/phonet/phonet 0x6d77b98f	phonet_header_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0x7040fb2d	phonet_stream_ops
+EXPORT_SYMBOL	 net/phonet/phonet 0xb04df8e4	pn_sock_get_port
+EXPORT_SYMBOL	 net/phonet/phonet 0xc0d4a365	phonet_proto_unregister
+EXPORT_SYMBOL	 net/phonet/phonet 0xe5dcf364	pn_sock_unhash
+EXPORT_SYMBOL	 net/phonet/phonet 0xf596c7e5	phonet_proto_register
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0b921f31	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x118dd615	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x26061bbe	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2d47b90f	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x385b9e03	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x412da1bd	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x51a85acc	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x65763b23	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7a39e886	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x82feaff8	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x8da027ed	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x91b74ed1	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x95b0e98d	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xa846a563	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xbc5657a1	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xeda93862	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xfc950276	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/sctp/sctp 0x93616a2a	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x38548446	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x801dc3a4	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0xffffb4b9	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x20f13e9d	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x7931e20b	xdr_truncate_encode
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x7ccf37b4	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/tipc/tipc 0x0fbc31a5	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0x1b71d841	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0x1b93d00b	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0xf0ba5800	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x752ca735	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0x7e3a1576	tls_unregister_device
+EXPORT_SYMBOL	 net/tls/tls 0xf7c82709	tls_get_record
+EXPORT_SYMBOL	 net/wimax/wimax 0x73b8258f	wimax_reset
+EXPORT_SYMBOL	 net/wimax/wimax 0xb6f04a0f	wimax_rfkill
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x034f66c0	freq_reg_info
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x05cf7f3d	ieee80211_get_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0c0792e2	cfg80211_crit_proto_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x0d349171	ieee80211_get_response_rate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x117aca91	cfg80211_merge_profile
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15217690	cfg80211_rx_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x15a37cf3	cfg80211_calculate_bitrate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1694e5cc	cfg80211_check_station_change
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1a4e311b	cfg80211_classify8021d
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x1ce2497f	reg_query_regdb_wmm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x236788fe	cfg80211_inform_bss_frame_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275269b3	ieee80211_ie_split_ric
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x275867e8	ieee80211_bss_get_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x282f0400	cfg80211_connect_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2879c5de	__cfg80211_alloc_reply_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2a73f6aa	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2c993053	cfg80211_send_layer2_update
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2eb143d3	wiphy_unregister
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x2fee4056	cfg80211_iter_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3362d988	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x33ad68d3	cfg80211_reg_can_beacon_relax
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x36dc183a	cfg80211_nan_func_terminated
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3bd8aaa1	ieee80211_operating_class_to_band
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3c753f9f	cfg80211_stop_iface
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3c984fe8	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3f614c63	cfg80211_put_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x3fbebfe1	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x435b6ef2	cfg80211_tx_mgmt_expired
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x43f5efcf	cfg80211_sinfo_alloc_tid_stats
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x45f6f32f	cfg80211_rx_assoc_resp
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x46312808	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x473c461d	cfg80211_unlink_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x4cea7bb6	ieee80211_data_to_8023_exthdr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x509f56a4	cfg80211_nan_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5666dfde	wiphy_rfkill_start_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x58e7b3fa	cfg80211_external_auth_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x594c1388	cfg80211_tx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5c4e75ad	cfg80211_chandef_usable
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x5d1bab5b	cfg80211_michael_mic_failure
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x60ac30b4	cfg80211_update_owe_info_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x6439af62	cfg80211_chandef_valid
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7003459a	cfg80211_sta_opmode_change_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x703e6071	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x74d1e899	cfg80211_unregister_wdev
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x74ef9856	cfg80211_abandon_assoc
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x769fd6fa	cfg80211_roamed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x77396c20	cfg80211_conn_failed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78422437	cfg80211_rx_unexpected_4addr_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x78f7d454	wiphy_register
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79381ffa	cfg80211_get_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x79b82a71	cfg80211_find_vendor_elem
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ae604bd	cfg80211_rx_control_port
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7de3bb11	cfg80211_radar_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7e0d7492	ieee80211_get_num_supported_channels
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7ef9f5e0	ieee80211_mandatory_rates
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x7f04ab15	cfg80211_get_drvinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8115181c	regulatory_set_wiphy_regd_sync_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x835cb8aa	cfg80211_sched_scan_results
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x838e1e7a	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x85f83d64	cfg80211_chandef_compatible
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x880fe207	cfg80211_auth_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8a7b0e40	cfg80211_probe_status
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8cb9cfe4	cfg80211_rx_spurious_frame
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x8fa02936	cfg80211_free_nan_func
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9169a3d2	cfg80211_tdls_oper_request
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x930cea4f	cfg80211_disconnected
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x93878691	ieee80211_get_vht_max_nss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x964d3606	cfg80211_chandef_dfs_required
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9791d2e6	ieee80211_channel_to_frequency
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9bcd76b8	cfg80211_cqm_beacon_loss_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9c0e02a0	cfg80211_report_obss_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d590404	cfg80211_get_station
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9d6cba30	cfg80211_find_elem_match
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9eae6235	ieee80211_chandef_to_operating_class
+EXPORT_SYMBOL	 net/wireless/cfg80211 0x9f5fdaef	cfg80211_cac_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa2eec245	cfg80211_del_sta_sinfo
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa3df4643	cfg80211_ibss_joined
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa509073b	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa57bae24	cfg80211_assoc_timeout
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xa6c68845	wiphy_new_nm
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaa5baf2b	regulatory_pre_cac_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xac97a207	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xae06f355	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xae5c5873	cfg80211_ref_bss
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xaf48d6f4	regulatory_set_wiphy_regd
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb17f047f	regulatory_hint
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb254f338	cfg80211_cqm_txe_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb2dc3257	cfg80211_iftype_allowed
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb6296283	cfg80211_bss_iter
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb7f67005	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xb9f8206c	cfg80211_inform_bss_data
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbbc59b07	cfg80211_rx_unprot_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xbc3dc561	cfg80211_ch_switch_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc16201d2	cfg80211_ch_switch_started_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc63ad954	__cfg80211_send_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc737f440	cfg80211_ready_on_channel
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xc7638070	wiphy_read_of_freq_limits
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcaac5422	cfg80211_chandef_create
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xcc1a7c48	cfg80211_is_element_inherited
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xce977288	cfg80211_port_authorized
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xd56d55f3	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdb0d3a1e	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xdba126c1	reg_initiator_name
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe01a80e0	cfg80211_ft_event
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe3d37774	__cfg80211_alloc_event_skb
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe4e295fa	cfg80211_sched_scan_stopped_rtnl
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe8212c9d	cfg80211_check_combinations
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xe8ae983e	cfg80211_new_sta
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xede21c9d	cfg80211_rx_mlme_mgmt
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf4f787d8	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf5596d89	cfg80211_get_p2p_attr
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf824e660	cfg80211_scan_done
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf8bb2ac6	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xf93f64c3	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfb61da7d	cfg80211_report_wowlan_wakeup
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfbc73494	cfg80211_reg_can_beacon
+EXPORT_SYMBOL	 net/wireless/cfg80211 0xfd8a3271	wiphy_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0x46d15300	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x591566f5	lib80211_register_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x5f3f23ff	lib80211_get_crypto_ops
+EXPORT_SYMBOL	 net/wireless/lib80211 0x7aa79800	lib80211_crypt_info_init
+EXPORT_SYMBOL	 net/wireless/lib80211 0x8d99480c	lib80211_crypt_info_free
+EXPORT_SYMBOL	 net/wireless/lib80211 0xf47b213e	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL	 sound/ac97_bus 0x774f1bcb	ac97_bus_type
+EXPORT_SYMBOL	 sound/core/oss/snd-mixer-oss 0x3a22ccab	snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x1a724fcc	snd_seq_kernel_client_ctl
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3061c52d	snd_use_lock_sync_helper
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x380b40d1	snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3b5d52eb	snd_seq_event_port_attach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x3fb4d161	snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x6bb71038	snd_seq_delete_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7ac2f329	snd_seq_expand_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0x7b8699eb	snd_seq_event_port_detach
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xb8e448a0	snd_seq_set_queue_tempo
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xcf541629	snd_seq_create_kernel_client
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xe934da1d	snd_seq_dump_var_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq 0xf4eed787	snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x6ea09972	snd_midi_channel_alloc_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0x833a3e07	snd_midi_channel_set_clear
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xb9948d2c	snd_midi_channel_free_set
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3	snd_midi_process_event
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x072d978b	snd_midi_event_new
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x13a17752	snd_midi_event_reset_encode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x2eed26bf	snd_midi_event_no_status
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x4d5ca523	snd_midi_event_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0x592f6e9b	snd_midi_event_free
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xddcf2191	snd_midi_event_encode_byte
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-midi-event 0xe60fb228	snd_midi_event_reset_decode
+EXPORT_SYMBOL	 sound/core/seq/snd-seq-virmidi 0xc49f6e24	snd_virmidi_new
+EXPORT_SYMBOL	 sound/core/snd 0x06627e25	snd_ctl_find_numid
+EXPORT_SYMBOL	 sound/core/snd 0x0e9bf958	snd_jack_add_new_kctl
+EXPORT_SYMBOL	 sound/core/snd 0x110f93c1	snd_device_free
+EXPORT_SYMBOL	 sound/core/snd 0x116343b4	snd_ctl_boolean_mono_info
+EXPORT_SYMBOL	 sound/core/snd 0x11d0dc01	snd_card_file_remove
+EXPORT_SYMBOL	 sound/core/snd 0x12c92e30	snd_card_new
+EXPORT_SYMBOL	 sound/core/snd 0x18e1683f	snd_dma_program
+EXPORT_SYMBOL	 sound/core/snd 0x191e88cf	snd_dma_pointer
+EXPORT_SYMBOL	 sound/core/snd 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0x1d9c6814	snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x20a79b3b	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL	 sound/core/snd 0x211119fb	snd_ctl_new1
+EXPORT_SYMBOL	 sound/core/snd 0x24a94b26	snd_info_get_line
+EXPORT_SYMBOL	 sound/core/snd 0x27b53166	snd_ctl_remove
+EXPORT_SYMBOL	 sound/core/snd 0x342a2354	copy_to_user_fromio
+EXPORT_SYMBOL	 sound/core/snd 0x396265f0	snd_ctl_replace
+EXPORT_SYMBOL	 sound/core/snd 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL	 sound/core/snd 0x3be42fa9	snd_device_new
+EXPORT_SYMBOL	 sound/core/snd 0x3d279217	snd_jack_set_parent
+EXPORT_SYMBOL	 sound/core/snd 0x3e3d0428	snd_jack_set_key
+EXPORT_SYMBOL	 sound/core/snd 0x3f8358da	_snd_ctl_add_slave
+EXPORT_SYMBOL	 sound/core/snd 0x43011e51	snd_ctl_register_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x448ef121	snd_seq_root
+EXPORT_SYMBOL	 sound/core/snd 0x4a3ea5c0	snd_request_card
+EXPORT_SYMBOL	 sound/core/snd 0x53c8379c	snd_power_wait
+EXPORT_SYMBOL	 sound/core/snd 0x5a225ff4	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL	 sound/core/snd 0x5edaa3ca	snd_info_free_entry
+EXPORT_SYMBOL	 sound/core/snd 0x65306651	snd_ctl_notify
+EXPORT_SYMBOL	 sound/core/snd 0x677b00d5	snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL	 sound/core/snd 0x685ba1bb	snd_card_free_when_closed
+EXPORT_SYMBOL	 sound/core/snd 0x6bb0f3b1	snd_card_file_add
+EXPORT_SYMBOL	 sound/core/snd 0x70c15ac1	snd_dma_disable
+EXPORT_SYMBOL	 sound/core/snd 0x71a44178	snd_ctl_remove_id
+EXPORT_SYMBOL	 sound/core/snd 0x73076315	snd_pci_quirk_lookup_id
+EXPORT_SYMBOL	 sound/core/snd 0x737cfa64	snd_ctl_find_id
+EXPORT_SYMBOL	 sound/core/snd 0x75cb03aa	snd_card_register
+EXPORT_SYMBOL	 sound/core/snd 0x78639849	snd_card_set_id
+EXPORT_SYMBOL	 sound/core/snd 0x7a53432c	snd_device_register
+EXPORT_SYMBOL	 sound/core/snd 0x81b69e41	snd_ctl_enum_info
+EXPORT_SYMBOL	 sound/core/snd 0x82bf1202	snd_info_create_module_entry
+EXPORT_SYMBOL	 sound/core/snd 0x88ddc6a2	snd_card_free
+EXPORT_SYMBOL	 sound/core/snd 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL	 sound/core/snd 0x8f595b11	snd_major
+EXPORT_SYMBOL	 sound/core/snd 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL	 sound/core/snd 0xa3f2234d	snd_pci_quirk_lookup
+EXPORT_SYMBOL	 sound/core/snd 0xa88fb9be	snd_card_disconnect
+EXPORT_SYMBOL	 sound/core/snd 0xb224b993	snd_jack_report
+EXPORT_SYMBOL	 sound/core/snd 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL	 sound/core/snd 0xb6a6462a	snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL	 sound/core/snd 0xb98a8466	snd_register_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xb9989ae3	snd_unregister_oss_device
+EXPORT_SYMBOL	 sound/core/snd 0xc5a6d10b	release_and_free_resource
+EXPORT_SYMBOL	 sound/core/snd 0xca7fe15f	snd_jack_new
+EXPORT_SYMBOL	 sound/core/snd 0xcc7f47cc	snd_register_device
+EXPORT_SYMBOL	 sound/core/snd 0xcfc120c2	snd_component_add
+EXPORT_SYMBOL	 sound/core/snd 0xd3684b15	snd_ctl_rename_id
+EXPORT_SYMBOL	 sound/core/snd 0xd43cf6f0	snd_info_register
+EXPORT_SYMBOL	 sound/core/snd 0xd5704776	snd_ctl_add
+EXPORT_SYMBOL	 sound/core/snd 0xe05b4901	snd_info_create_card_entry
+EXPORT_SYMBOL	 sound/core/snd 0xfb217319	snd_ctl_free_one
+EXPORT_SYMBOL	 sound/core/snd 0xfb22b265	snd_ctl_make_virtual_master
+EXPORT_SYMBOL	 sound/core/snd 0xff967cc4	snd_unregister_device
+EXPORT_SYMBOL	 sound/core/snd 0xfffd89db	copy_from_user_toio
+EXPORT_SYMBOL	 sound/core/snd-hwdep 0x9c332b15	snd_hwdep_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0283dfe3	_snd_pcm_hw_params_any
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x0659472e	snd_pcm_hw_constraint_mask64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x11eba48e	snd_pcm_create_iec958_consumer_hw_params
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1350933e	snd_pcm_hw_rule_add
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1421676f	snd_pcm_set_ops
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x14234fcf	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x18970bc0	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1c7ff7f4	snd_pcm_release_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x1d027e4b	snd_pcm_format_signed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x27599a9b	snd_pcm_lib_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x2cbb0e80	snd_pcm_hw_refine
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x30df1407	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x31853b04	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3796bdcc	snd_pcm_format_little_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x3d23f93c	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x406c48ca	snd_pcm_limit_hw_rates
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x45d14afb	snd_pcm_new_internal
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x4f816e9b	snd_pcm_format_big_endian
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x503bd137	snd_interval_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x52e3e4a5	snd_pcm_hw_param_value
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x57f2d522	snd_pcm_create_iec958_consumer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5b47bfb8	snd_pcm_hw_param_first
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x5eb1227c	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x602dc88f	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x650f8603	snd_pcm_format_silence_64
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6c1b0afc	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6d76c8dd	snd_pcm_stop
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x6ef8fcd8	snd_pcm_format_linear
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x7283bd7a	snd_pcm_new
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x735ff41f	snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x767b70fb	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x82eae266	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x834dc955	snd_pcm_format_size
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x877a74b1	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x87d6580f	snd_pcm_suspend_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x88ffeac2	snd_pcm_hw_param_last
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9100863e	snd_pcm_set_sync
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x93631251	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x94098ff8	snd_interval_list
+EXPORT_SYMBOL	 sound/core/snd-pcm 0x9a16d778	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa3b6a7d2	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa61aa028	snd_pcm_format_unsigned
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xa729ad75	snd_pcm_lib_ioctl
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xac437f7b	snd_interval_ratnum
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb289416e	snd_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb7215c70	snd_pcm_mmap_data
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xb9638db4	snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xc6b1f774	__snd_pcm_lib_xfer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xcad295ec	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xd406b9fc	snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xdf10e411	snd_pcm_open_substream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xdf9f4b39	snd_dma_free_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe3af64aa	snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xe56a9336	snd_pcm_format_width
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xea9aef17	snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xedab9fd6	snd_pcm_hw_constraint_ranges
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xf0184964	snd_pcm_new_stream
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xfd703e55	snd_dma_alloc_pages
+EXPORT_SYMBOL	 sound/core/snd-pcm 0xff6104d0	snd_pcm_rate_bit_to_rate
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1585dfa4	snd_rawmidi_kernel_open
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1a34be54	snd_rawmidi_kernel_read
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x1d508b3c	snd_rawmidi_kernel_write
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x25a99f6b	snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x271f4e19	__snd_rawmidi_transmit_ack
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x3117c8f8	snd_rawmidi_input_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x3141c963	snd_rawmidi_set_ops
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x54cbfff9	snd_rawmidi_output_params
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x74e48432	snd_rawmidi_new
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x8c70edf0	snd_rawmidi_transmit_empty
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x8d94a497	snd_rawmidi_drop_output
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x91cbaa41	snd_rawmidi_kernel_release
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0x97051ca1	snd_rawmidi_info_select
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xa82f6c72	snd_rawmidi_drain_input
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xae83a596	snd_rawmidi_proceed
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xbdd9e437	__snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xc75ecdec	snd_rawmidi_transmit_peek
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xf636fd64	snd_rawmidi_transmit
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xfacf0dfb	snd_rawmidi_receive
+EXPORT_SYMBOL	 sound/core/snd-rawmidi 0xffd7f789	snd_rawmidi_drain_output
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x091def1c	snd_seq_autoload_exit
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x370a0736	snd_seq_autoload_init
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0x6339b6d0	snd_seq_device_load_drivers
+EXPORT_SYMBOL	 sound/core/snd-seq-device 0xfdf06513	snd_seq_device_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x01906a5f	snd_timer_global_register
+EXPORT_SYMBOL	 sound/core/snd-timer 0x02a08417	snd_timer_resolution
+EXPORT_SYMBOL	 sound/core/snd-timer 0x115e2223	snd_timer_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x17ba0881	snd_timer_start
+EXPORT_SYMBOL	 sound/core/snd-timer 0x19d759f4	snd_timer_notify
+EXPORT_SYMBOL	 sound/core/snd-timer 0x309f82f2	snd_timer_stop
+EXPORT_SYMBOL	 sound/core/snd-timer 0x635f8446	snd_timer_global_new
+EXPORT_SYMBOL	 sound/core/snd-timer 0x836199d2	snd_timer_open
+EXPORT_SYMBOL	 sound/core/snd-timer 0x90265f0a	snd_timer_continue
+EXPORT_SYMBOL	 sound/core/snd-timer 0xab18c2c7	snd_timer_global_free
+EXPORT_SYMBOL	 sound/core/snd-timer 0xb21517ed	snd_timer_pause
+EXPORT_SYMBOL	 sound/core/snd-timer 0xcefab519	snd_timer_interrupt
+EXPORT_SYMBOL	 sound/core/snd-timer 0xda62182e	snd_timer_close
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59	snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xb0785a9f	snd_mpu401_uart_new
+EXPORT_SYMBOL	 sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227	snd_mpu401_uart_interrupt
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x05060a19	snd_opl3_regmap
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x1ecebb7e	snd_opl3_load_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x2010eb18	snd_opl3_timer_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5c62e7c3	snd_opl3_hwdep_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x5f8c9481	snd_opl3_new
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0x6ad20b7f	snd_opl3_find_patch
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd283acd2	snd_opl3_reset
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd61a193c	snd_opl3_init
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xd9b3fd02	snd_opl3_create
+EXPORT_SYMBOL	 sound/drivers/opl3/snd-opl3-lib 0xdc4e5964	snd_opl3_interrupt
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x226138b0	snd_vx_threaded_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x28549ca4	snd_vx_load_boot_image
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x28be91b0	snd_vx_create
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x36f3c16f	snd_vx_dsp_load
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x6263418c	snd_vx_setup_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0x9b48b48f	snd_vx_suspend
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xafc030b8	snd_vx_dsp_boot
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xb68f2ee2	snd_vx_resume
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xdc84e03d	snd_vx_free_firmware
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xf1f04d23	snd_vx_irq_handler
+EXPORT_SYMBOL	 sound/drivers/vx/snd-vx-lib 0xfb7b23f2	snd_vx_check_reg_bit
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x085f5fec	amdtp_stream_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x08f07dda	cmp_connection_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x1fe60bac	cmp_connection_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20254e45	amdtp_syt_intervals
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x20b4dbdd	amdtp_stream_add_pcm_hw_constraints
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x25021901	cmp_connection_release
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2971fc2d	amdtp_stream_set_parameters
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x2d5974cf	fcp_avc_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x337504aa	fw_iso_resources_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x33b82e13	snd_fw_schedule_registration
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x46e6a838	avc_general_get_plug_info
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x4d7fa2f6	fw_iso_resources_allocate
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x50a9382a	amdtp_stream_pcm_abort
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x53ca18e8	amdtp_rate_table
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x5a1aeaf6	amdtp_stream_pcm_ack
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x665e2b43	amdtp_stream_pcm_pointer
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x680c9936	fcp_bus_reset
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x694ab346	fw_iso_resources_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x7d90dbd0	fw_iso_resources_free
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9d551d50	cmp_connection_reserve
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0x9fa41fcd	snd_fw_transaction
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xaceb4bec	amdtp_stream_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xb9b87dfc	amdtp_stream_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc1bcf966	amdtp_stream_get_max_payload
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xc4881536	fw_iso_resources_init
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xcbc92ae0	cmp_connection_check_used
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xccdf5997	iso_packets_buffer_destroy
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd20ed95e	cmp_connection_establish
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd3a36f06	cmp_connection_break
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xd8a5d506	amdtp_stream_pcm_prepare
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xe6fee2a6	avc_general_get_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xfee25445	cmp_connection_update
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xffe24feb	avc_general_set_sig_fmt
+EXPORT_SYMBOL	 sound/firewire/snd-firewire-lib 0xfff4fb7b	iso_packets_buffer_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0x112d3052	snd_ak4113_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4113 0xe34ed6b6	snd_ak4113_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x02bb0cfa	snd_ak4114_suspend
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x04564041	snd_ak4114_create
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x0a2f9407	snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x7efe55c6	snd_ak4114_reg_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0x80262a27	snd_ak4114_reinit
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xa854ae90	snd_ak4114_external_rate
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xbba1046a	snd_ak4114_build
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4114 0xfacdc45e	snd_ak4114_resume
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x089498ab	snd_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x42b947f8	snd_akm4xxx_write
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0x66eea723	snd_akm4xxx_init
+EXPORT_SYMBOL	 sound/i2c/other/snd-ak4xxx-adda 0xa4ee8eab	snd_akm4xxx_reset
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0x90291780	snd_pt2258_build_controls
+EXPORT_SYMBOL	 sound/i2c/other/snd-pt2258 0xc57f6665	snd_pt2258_reset
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x00ceb763	snd_i2c_probeaddr
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x5b696577	snd_i2c_bus_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x7137f455	snd_i2c_device_free
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x87d0fac5	snd_i2c_readbytes
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0x89e67332	snd_i2c_device_create
+EXPORT_SYMBOL	 sound/i2c/snd-i2c 0xa23c94ea	snd_i2c_sendbytes
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x178c2a26	snd_sbdsp_command
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x59c3b4fd	snd_sbmixer_add_ctl
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x66bfb745	snd_sbmixer_write
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x6aedfe5a	snd_sbmixer_read
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x705343df	snd_sbdsp_get_byte
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x95578d0e	snd_sbmixer_resume
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0x9cdf1758	snd_sbmixer_suspend
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xde6c9bd2	snd_sbdsp_reset
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xe580586b	snd_sbmixer_new
+EXPORT_SYMBOL	 sound/isa/sb/snd-sb-common 0xf188c20a	snd_sbdsp_create
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x1cf29ef1	snd_ac97_update_bits
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x265f01cf	snd_ac97_get_short_name
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x2fde3539	snd_ac97_tune_hardware
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x31768b30	snd_ac97_resume
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x3685964d	snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x685dfb4e	snd_ac97_pcm_close
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x778e9fba	snd_ac97_mixer
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x85ec8d36	snd_ac97_set_rate
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0x93fb5ae3	snd_ac97_read
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xa5dac59f	snd_ac97_write_cache
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xba2ff0dc	snd_ac97_suspend
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc0f5c1e0	snd_ac97_update_power
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xc7844296	snd_ac97_update
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xd9902ba8	snd_ac97_pcm_assign
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xdb863f8b	snd_ac97_write
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xe95a589a	snd_ac97_pcm_open
+EXPORT_SYMBOL	 sound/pci/ac97/snd-ac97-codec 0xf40e02cb	snd_ac97_bus
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0x833e04b1	snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb6215a99	snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL	 sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbb7ac0f5	snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x0c9d436d	oxygen_write_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1cf5777e	oxygen_pci_shutdown
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x1cf64283	oxygen_write8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x24e5ce0a	oxygen_read32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x39b9c314	oxygen_read8
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x3c88e235	oxygen_write32_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x4f383554	oxygen_pci_remove
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x560cbb4d	oxygen_read16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x68d55416	oxygen_pci_pm
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x71f7bfde	oxygen_write_i2c
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x737a9d02	oxygen_write32
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x77cfdf64	oxygen_write_spi
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x86854239	oxygen_write16
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8a83deb2	oxygen_read_ac97
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x8de2f1e5	oxygen_write8_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0x99449a17	oxygen_write_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xad32a4c2	oxygen_reset_uart
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xb83cca37	oxygen_write_ac97_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xccb75f93	oxygen_write16_masked
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xdf4faabd	oxygen_pci_probe
+EXPORT_SYMBOL	 sound/pci/oxygen/snd-oxygen-lib 0xe38ff15a	oxygen_update_dac_routing
+EXPORT_SYMBOL	 sound/soc/amd/acp_audio_dma 0xea74f232	bt_uart_enable
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x39b983a8	pcm3060_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-pcm3060 0x5b3d3ac2	pcm3060_probe
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0x457af199	tlv320aic23_regmap
+EXPORT_SYMBOL	 sound/soc/codecs/snd-soc-tlv320aic23 0xbc0b33af	tlv320aic23_probe
+EXPORT_SYMBOL	 sound/soc/snd-soc-core 0x4d97aaf6	snd_soc_alloc_ac97_component
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x03616993	snd_sof_load_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0ba43711	snd_sof_device_probe
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0bdeb750	snd_sof_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x0cb8955a	snd_sof_run_firmware
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x27497be8	snd_sof_ipc_reply
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x34af4ce5	snd_sof_device_remove
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3651e1bb	snd_sof_load_firmware_raw
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x3a02f851	snd_sof_ipc_stream_posn
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x44814cf9	sof_io_write64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x44bc103f	snd_sof_pci_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x4c2b15f6	sof_mailbox_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5061988d	snd_sof_trace_notify_for_error
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5128a445	sof_block_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x580c5baf	snd_sof_load_firmware_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x5cc063b3	snd_sof_free_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x63699d9a	snd_sof_dsp_mailbox_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x63a9d039	snd_sof_get_status
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6429baf2	snd_sof_dsp_update_bits64_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x6d82244f	snd_sof_fw_unload
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x75367a57	snd_sof_dsp_update_bits
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x795784f8	sof_block_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7983a37f	snd_sof_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x7d381bbb	snd_sof_runtime_idle
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x837c3f53	snd_sof_runtime_resume
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8d1b3cd2	snd_sof_fw_parse_ext_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8ed2c369	snd_sof_release_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x8f81bae7	snd_sof_ipc_free
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x902b2dbf	snd_sof_load_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x97481ac6	snd_sof_dsp_update_bits_forced
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9e524f62	snd_sof_dsp_update_bits64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0x9ecfa602	snd_sof_ipc_msgs_rx
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xb6ba51bc	snd_sof_ipc_valid
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xbf91080e	snd_sof_init_topology
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc75fab91	sof_io_write
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xc93866c1	sof_mailbox_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcd0a87d4	snd_sof_dsp_update_bits_unlocked
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xcfdc5f98	sof_ipc_tx_message
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd237dddb	snd_sof_pcm_period_elapsed
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd46a7df3	sof_io_read
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd71280f7	snd_sof_init_trace
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xd97047fb	sof_io_read64
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xe002504d	snd_sof_runtime_suspend
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xefdf0ee0	snd_sof_ipc_set_get_comp_data
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf25a569c	sof_fw_ready
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf36641c7	snd_sof_ipc_init
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xf9765e1e	snd_sof_parse_module_memcpy
+EXPORT_SYMBOL	 sound/soc/sof/snd-sof 0xfb0f922d	snd_sof_dsp_panic
+EXPORT_SYMBOL	 sound/soundcore 0x23e23dfa	register_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0x44427f0c	register_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x53f60fd5	register_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL	 sound/soundcore 0x99c95fa5	unregister_sound_special
+EXPORT_SYMBOL	 sound/soundcore 0xc46bc883	register_sound_special_device
+EXPORT_SYMBOL	 sound/soundcore 0xcd083b10	unregister_sound_dsp
+EXPORT_SYMBOL	 sound/soundcore 0xf99051df	sound_class
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x16756dc0	snd_usbmidi_input_start
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x63343b1d	snd_usbmidi_input_stop
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0x89834568	__snd_usbmidi_create
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xb2af19e1	snd_usbmidi_resume
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xbed43a41	snd_usbmidi_suspend
+EXPORT_SYMBOL	 sound/usb/snd-usbmidi-lib 0xd9d2bb03	snd_usbmidi_disconnect
+EXPORT_SYMBOL	 vmlinux 0x0004bdcc	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x00099beb	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0x001d84ab	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0x003a7a96	h_ipi_redirect
+EXPORT_SYMBOL	 vmlinux 0x00401cb7	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x0043bc95	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0x00453f4c	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x00586f8b	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x009249fe	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x009f8c23	ata_std_end_eh
+EXPORT_SYMBOL	 vmlinux 0x00a190e2	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x00b22819	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0x00ba9d2c	iw_handler_get_thrspy
+EXPORT_SYMBOL	 vmlinux 0x00cee416	ppp_dev_name
+EXPORT_SYMBOL	 vmlinux 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL	 vmlinux 0x00e1e4be	twl6040_get_sysclk
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x0103c752	devfreq_remove_governor
+EXPORT_SYMBOL	 vmlinux 0x011686e2	rproc_add_carveout
+EXPORT_SYMBOL	 vmlinux 0x0116e258	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x01176dda	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0x012683fc	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0x012a97fc	xor_altivec_4
+EXPORT_SYMBOL	 vmlinux 0x012f66c2	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0x01305251	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0x0136fee8	nla_append
+EXPORT_SYMBOL	 vmlinux 0x013a9407	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x013d0949	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x0140c525	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017c00e7	machine_id
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x0188cd88	vme_alloc_consistent
+EXPORT_SYMBOL	 vmlinux 0x01982074	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x01b34b6a	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x01b80df6	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x01bb2ab9	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0x01be3996	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x01bf1b4a	genphy_read_lpa
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01cf73e8	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x01d3d849	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x01d8a7bf	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0x01fab06a	eth_header
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x0228925f	iowrite64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x02489d55	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x0248af83	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02944acb	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x0296bb79	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a3cf4f	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x02b8ab42	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02c41ac9	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 vmlinux 0x02c91dea	mipi_dsi_dcs_exit_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x02df50b0	jiffies
+EXPORT_SYMBOL	 vmlinux 0x02df7107	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x03037b1c	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x032051f1	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0x03219a49	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x0321bfd0	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x033105c4	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x0340d9f9	cpufreq_get_policy
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x037acf44	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0x03815f35	ledtrig_disk_activity
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x03988f1b	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x03b5a07f	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x03bb1ebb	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0x03bec439	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x03c035b6	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x03d42a98	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x03f1197f	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x040e8ea3	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x041935c3	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x041eb99e	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x04467de4	vme_new_dma_list
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044b091b	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x0457649d	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x046108c2	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x046b72c5	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x04863e28	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x0489e065	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x04ae64e6	mipi_dsi_device_register_full
+EXPORT_SYMBOL	 vmlinux 0x04e364d4	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04ea5d10	ksize
+EXPORT_SYMBOL	 vmlinux 0x04ebead5	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x04f158be	cpu_sibling_map
+EXPORT_SYMBOL	 vmlinux 0x05125455	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0x05186ca4	flush_icache_range
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x0530dede	_raw_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x053e5b0a	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x05406621	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0x05434c68	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x05519d30	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x055e94a1	radix__flush_tlb_page
+EXPORT_SYMBOL	 vmlinux 0x057a785a	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x057bc968	phy_attached_info
+EXPORT_SYMBOL	 vmlinux 0x0591c3c2	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0x05970def	phy_support_asym_pause
+EXPORT_SYMBOL	 vmlinux 0x05adae3b	of_find_compatible_node
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05c668ad	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x05cfa3b3	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x05e380b1	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x05ff60df	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x060d5fa0	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x063293ac	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x06460799	cfb_fillrect
+EXPORT_SYMBOL	 vmlinux 0x06537ba3	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0x065f3355	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0x066c14e6	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0x06759eff	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x0679d04e	genl_notify
+EXPORT_SYMBOL	 vmlinux 0x0687265e	i2c_clients_command
+EXPORT_SYMBOL	 vmlinux 0x069ffabc	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x06a6f3cf	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x06a86bc1	iowrite16
+EXPORT_SYMBOL	 vmlinux 0x06bea4c7	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x06c8f2de	slhc_compress
+EXPORT_SYMBOL	 vmlinux 0x06ccd967	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0x06d364e6	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0x06db766e	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0x06dfd0b4	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x071d3385	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL	 vmlinux 0x0736b183	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x074c0c64	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x074e9213	down_killable
+EXPORT_SYMBOL	 vmlinux 0x075f62e2	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x076479e7	__debugger_fault_handler
+EXPORT_SYMBOL	 vmlinux 0x078743d0	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0x07903106	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x07945b60	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07bd15ac	__debugger_sstep
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07d56a48	of_n_addr_cells
+EXPORT_SYMBOL	 vmlinux 0x07d5b6f8	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0x07d8d51a	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x08117f33	netif_rx
+EXPORT_SYMBOL	 vmlinux 0x08249512	iwe_stream_add_point
+EXPORT_SYMBOL	 vmlinux 0x082c1a17	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x0831263d	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL	 vmlinux 0x084350c3	sock_create
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x0887fa05	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x089dad61	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x08bd051a	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x08d0b30a	input_open_device
+EXPORT_SYMBOL	 vmlinux 0x08d39930	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0x08d538ae	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x08da8377	mdiobus_register_device
+EXPORT_SYMBOL	 vmlinux 0x08e307e1	dst_release
+EXPORT_SYMBOL	 vmlinux 0x09058496	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x090ea3b2	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x09184f7f	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x091fcfba	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x0929f462	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x0945a004	pm860x_page_reg_write
+EXPORT_SYMBOL	 vmlinux 0x095f09d5	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x095f5d53	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x09616c21	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x096dd6fe	mipi_dsi_dcs_get_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0x09724c68	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x09780ea0	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x09892a4e	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x098ab322	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x099e4804	max8998_read_reg
+EXPORT_SYMBOL	 vmlinux 0x09a77cfc	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x09c29dbe	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x09c5560e	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a048bf6	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0x0a0684cb	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x0a20ee8e	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0x0a278c22	thermal_cdev_update
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a2aea8e	__mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x0a471030	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a5bb1c7	no_llseek
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a7d1c47	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x0a7ee521	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x0a8d1d4a	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL	 vmlinux 0x0ad408d9	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x0ae09f19	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x0ae1e1a7	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x0b001392	agp_unbind_memory
+EXPORT_SYMBOL	 vmlinux 0x0b0d2632	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b2e1ec7	h_get_mpp
+EXPORT_SYMBOL	 vmlinux 0x0b3320a7	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x0b3e3f97	agp_collect_device_status
+EXPORT_SYMBOL	 vmlinux 0x0b3f3d69	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0x0b55326d	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x0b58005e	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x0b597114	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0x0b5e0b3f	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x0b72d4cd	uart_get_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b750d21	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x0b8a6338	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x0b8ab6a2	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x0bb2eee4	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0be878e6	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x0bf36885	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x0c0f79af	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c2e55b6	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x0c3dc5d1	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x0c61fbc7	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0x0c6bdc3f	vme_master_read
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c834b84	devm_devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x0cb0601a	node_states
+EXPORT_SYMBOL	 vmlinux 0x0cb12092	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0x0cb216ad	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc0031e	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x0cc4b4b6	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0x0ccbe6da	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x0cd5f33e	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x0ce2b5c5	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0x0ce5bf08	kobject_del
+EXPORT_SYMBOL	 vmlinux 0x0cf2d07b	mmc_cqe_start_req
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d3849cd	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x0d3a6525	vga_tryget
+EXPORT_SYMBOL	 vmlinux 0x0d49b93f	__debugger_ipi
+EXPORT_SYMBOL	 vmlinux 0x0d4a8ecc	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0x0d4dc99a	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0d633e54	of_device_get_match_data
+EXPORT_SYMBOL	 vmlinux 0x0d64bc40	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x0d9f561f	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x0da73b5c	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0x0da898f0	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x0daedb4e	mipi_dsi_generic_write
+EXPORT_SYMBOL	 vmlinux 0x0dd83ea6	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x0ddbb32f	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x0de223a0	mmc_erase_group_aligned
+EXPORT_SYMBOL	 vmlinux 0x0dfc0a50	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e2c43eb	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x0e4262c6	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x0e44fa61	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0x0e45db07	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0x0e5e6715	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x0e6da327	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x0e73b6ef	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x0e74ad2d	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x0e7aea54	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x0e8f30f6	_raw_write_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL	 vmlinux 0x0edef69d	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x0f08fe73	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f252074	devfreq_interval_update
+EXPORT_SYMBOL	 vmlinux 0x0f41bee1	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x0f4fd9b1	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x0f5ad093	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x0f684eea	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x0f6c95cc	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x0f7f71d0	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x0f808248	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f89ce1c	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0x0f8dbbf2	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x0f94fb0d	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0x0fa985f8	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0x0fab1ab0	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fb80a19	phy_start
+EXPORT_SYMBOL	 vmlinux 0x0fca6a3d	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x0fd845c8	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100de998	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x101ea203	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0x102057a9	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0x1021964d	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x102e2656	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0x10349b50	agp_copy_info
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x1042d6e3	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x10690e68	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x1074afbc	devm_extcon_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x107ad464	phy_modify_paged_changed
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x108b84b1	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x10afac40	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10c5caaf	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10e0f124	__pud_index_size
+EXPORT_SYMBOL	 vmlinux 0x110317d2	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0x11066d5e	follow_up
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11260219	of_find_node_by_type
+EXPORT_SYMBOL	 vmlinux 0x1130510a	seq_putc
+EXPORT_SYMBOL	 vmlinux 0x11366ddb	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x116627c9	ioremap_prot
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x117c465e	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x1182d83a	cpuidle_disable
+EXPORT_SYMBOL	 vmlinux 0x119d5ada	set_security_override
+EXPORT_SYMBOL	 vmlinux 0x11afa5aa	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x11b4b9a9	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0x11b51574	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x11b9f4d8	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x11c4e072	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x11c69c4d	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x11d21b5f	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x11db4786	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x11dc2e49	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x11de8dec	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f47d8c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x1201418b	ppp_channel_index
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x121c8f98	mdio_driver_register
+EXPORT_SYMBOL	 vmlinux 0x12272700	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x12371e29	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x123b7836	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x1264ce4d	skb_push
+EXPORT_SYMBOL	 vmlinux 0x129357de	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12e0d139	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x12e3c14e	freeze_super
+EXPORT_SYMBOL	 vmlinux 0x12efd458	phy_start_aneg
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x1302880c	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x1314a101	of_parse_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x131bbca6	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0x13243d4b	wl1251_get_platform_data
+EXPORT_SYMBOL	 vmlinux 0x132b5b38	i2c_release_client
+EXPORT_SYMBOL	 vmlinux 0x13340314	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x133b0db5	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x133eed38	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0x13418036	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x1343d20b	agp_generic_free_by_type
+EXPORT_SYMBOL	 vmlinux 0x134a2703	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x134e56cc	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0x1372e378	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x13747caa	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x13864c1a	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0x139f2189	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0x13b169cd	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x13c66f84	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13d46d7b	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x13f53da6	CMO_PageSize
+EXPORT_SYMBOL	 vmlinux 0x140dc616	serial8250_set_isa_configurator
+EXPORT_SYMBOL	 vmlinux 0x14239ea8	pps_lookup_dev
+EXPORT_SYMBOL	 vmlinux 0x1434c013	of_iomap
+EXPORT_SYMBOL	 vmlinux 0x14576c90	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x1466a3d4	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x146bcb8f	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x146f0af3	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x147e0857	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x148fa045	abx500_get_register_page_interruptible
+EXPORT_SYMBOL	 vmlinux 0x14962055	max8925_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x149cd278	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14a2b413	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0x14adf08a	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x14b9b654	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0x14bf34cc	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x150163c5	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x150de5c6	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x1527454e	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x155141eb	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0x156ba0f1	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0x15791257	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x15a0b6a4	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c2bc29	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0x15d784d1	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x15e639cf	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x15ece505	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x160830d6	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x160efca3	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x16134f04	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x161451eb	pnv_pci_get_gpu_dev
+EXPORT_SYMBOL	 vmlinux 0x1617bb4a	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x16286538	iowrite64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16316a10	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0x16530736	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0x16580dfe	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x167c5967	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x168a311c	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x169938c1	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0x16c140fe	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16f98230	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x17079192	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x17158f5e	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0x171e1de8	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x171ea8d0	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x172bd99c	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x1756bdcc	dev_pm_opp_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x17583582	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x176108a8	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x17648396	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0x1766180d	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0x17774b2f	nd_namespace_blk_validate
+EXPORT_SYMBOL	 vmlinux 0x1778897b	kset_register
+EXPORT_SYMBOL	 vmlinux 0x177a4cdb	pm860x_set_bits
+EXPORT_SYMBOL	 vmlinux 0x177a945b	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x1786941a	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x178a7c6d	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x17ae4681	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x17b73c49	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x17ca4a75	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0x17e6094a	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x17ec38aa	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x17ef3544	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL	 vmlinux 0x17f9bdbb	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x18255c0d	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x182e038a	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x1835719b	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0x1837a061	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x185a116c	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x1875b769	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0x18789423	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x18a4301d	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x18c606dd	pcibios_fixup_bus
+EXPORT_SYMBOL	 vmlinux 0x18d20442	phy_free_interrupt
+EXPORT_SYMBOL	 vmlinux 0x18d5a8c2	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x18f86c34	release_firmware
+EXPORT_SYMBOL	 vmlinux 0x19354401	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0x19567d06	vfio_info_cap_shift
+EXPORT_SYMBOL	 vmlinux 0x1960d223	mmc_run_bkops
+EXPORT_SYMBOL	 vmlinux 0x196a5a99	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0x196cfcb6	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x1970e85e	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x19896e4c	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x199bebf2	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19a94348	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x19b16b34	up_read
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19c093f6	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x19d68628	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x19e0f8c4	hmm_range_unregister
+EXPORT_SYMBOL	 vmlinux 0x19e9150f	get_acl
+EXPORT_SYMBOL	 vmlinux 0x19ebb3b4	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x1a091aa3	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x1a0cbcae	mmc_hw_reset
+EXPORT_SYMBOL	 vmlinux 0x1a0e06e4	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x1a16e704	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x1a1bac9c	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x1a292620	serio_bus
+EXPORT_SYMBOL	 vmlinux 0x1a326f4a	powerpc_debugfs_root
+EXPORT_SYMBOL	 vmlinux 0x1a41f09b	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x1a433669	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0x1a4ddb60	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x1a63cc21	phy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x1a788956	radix__flush_tlb_range
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a82f566	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x1a949779	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aa01a46	of_phy_find_device
+EXPORT_SYMBOL	 vmlinux 0x1aa2b3f1	tlbie_capable
+EXPORT_SYMBOL	 vmlinux 0x1aa437bb	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x1aadb6e7	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0x1ab14b29	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0x1ac2b22b	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x1ac4b1fc	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x1ac5d3cb	strcspn
+EXPORT_SYMBOL	 vmlinux 0x1af62a99	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x1af90a4d	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x1afd8883	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b0f0147	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0x1b100fd1	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x1b11b6b1	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x1b11e002	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0x1b132009	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x1b173b56	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x1b2b91a9	put_disk
+EXPORT_SYMBOL	 vmlinux 0x1b3621f2	ata_dev_printk
+EXPORT_SYMBOL	 vmlinux 0x1b455b31	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x1b625d33	enable_kernel_vsx
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b719699	uart_resume_port
+EXPORT_SYMBOL	 vmlinux 0x1b71e215	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL	 vmlinux 0x1ba59527	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x1baae9d6	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0x1baf0bfb	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0x1bd59dbe	vme_free_consistent
+EXPORT_SYMBOL	 vmlinux 0x1be5e4a8	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x1be92a40	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0x1bfec830	__iounmap_at
+EXPORT_SYMBOL	 vmlinux 0x1c227e23	of_match_node
+EXPORT_SYMBOL	 vmlinux 0x1c322a6a	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c36fa97	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x1c3e02e4	memcmp
+EXPORT_SYMBOL	 vmlinux 0x1c54916f	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0x1c593534	phy_init_hw
+EXPORT_SYMBOL	 vmlinux 0x1c6a4f2f	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0x1c72ea3e	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x1c7698cb	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x1c7cfdb1	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0x1c7dfc2f	set_nlink
+EXPORT_SYMBOL	 vmlinux 0x1c9a6a93	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0x1ca1b1be	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cc4fa08	mipi_dsi_host_register
+EXPORT_SYMBOL	 vmlinux 0x1cc6c72d	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x1cc9c937	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0x1ccdbd0b	of_node_name_eq
+EXPORT_SYMBOL	 vmlinux 0x1cdf5132	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0x1d07e365	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x1d07f591	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x1d251b23	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d31f21b	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x1d3bb06b	__ps2_command
+EXPORT_SYMBOL	 vmlinux 0x1d669a8b	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0x1d687332	vfio_pin_pages
+EXPORT_SYMBOL	 vmlinux 0x1d7dcdbd	of_parse_phandle_with_args_map
+EXPORT_SYMBOL	 vmlinux 0x1d8edd01	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x1d9f9abf	mntput
+EXPORT_SYMBOL	 vmlinux 0x1dc2e65e	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x1dc76ecc	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de9ed4c	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x1dfddab3	__bswapdi2
+EXPORT_SYMBOL	 vmlinux 0x1dffd20b	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e1992cc	__memset64
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e320674	mmc_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x1e59397b	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0x1e62643b	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e7a4474	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x1e82484d	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0x1e875885	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1eae2e74	of_cpu_node_to_id
+EXPORT_SYMBOL	 vmlinux 0x1ebf5bfe	serial8250_do_pm
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1eeb5e5b	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0x1eee59d4	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0x1efe5852	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0x1f1cc957	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0x1f218ce9	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x1f356ee4	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x1f3a1f66	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x1f758b31	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x1f758da8	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x1f78615b	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL	 vmlinux 0x1fd71d2f	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x1fdb4edd	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1feee096	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x20244d68	console_stop
+EXPORT_SYMBOL	 vmlinux 0x2047826c	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x204aa54b	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x2051fa6e	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x2061af5b	of_find_matching_node_and_match
+EXPORT_SYMBOL	 vmlinux 0x206e878e	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20b0b190	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x20c1db96	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0x20c5c14c	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x20cd3661	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20dd6c66	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0x20e3b205	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x20fa1ca4	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0x20fd3737	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0x20fff6ec	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x211fbdc3	serial8250_do_set_termios
+EXPORT_SYMBOL	 vmlinux 0x2128c869	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0x2132cdf8	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0x213e4965	ps2_is_keyboard_id
+EXPORT_SYMBOL	 vmlinux 0x21537694	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0x215a0dda	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x215a8ec8	slhc_init
+EXPORT_SYMBOL	 vmlinux 0x21714bca	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x217b4ffe	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x21a2f877	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x21b101ab	mmc_alloc_host
+EXPORT_SYMBOL	 vmlinux 0x21b4c2f2	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x21b60242	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21d3b201	twl6030_mmc_card_detect
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e7665f	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0x21eab1e4	pci_domain_nr
+EXPORT_SYMBOL	 vmlinux 0x22089658	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x221373a7	rproc_coredump_add_segment
+EXPORT_SYMBOL	 vmlinux 0x2225b478	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x22517ea9	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x2255db7a	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x2258d9af	f_setown
+EXPORT_SYMBOL	 vmlinux 0x2264b60f	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x2275a1e3	vme_unregister_bridge
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x229484cd	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x22aaa83e	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22b4b725	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x22b5a8c3	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x22d28fba	rproc_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x230aa905	is_nd_btt
+EXPORT_SYMBOL	 vmlinux 0x231a8697	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x232ce18a	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 vmlinux 0x233917d1	mac_vmode_to_var
+EXPORT_SYMBOL	 vmlinux 0x23428c5c	uart_write_wakeup
+EXPORT_SYMBOL	 vmlinux 0x2347617f	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x23495463	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0x23619cff	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x2364f531	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0x236b2637	i2c_smbus_write_byte
+EXPORT_SYMBOL	 vmlinux 0x2371df48	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x23841e00	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0x238b099f	mipi_dsi_packet_format_is_short
+EXPORT_SYMBOL	 vmlinux 0x23a13783	of_phy_deregister_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x23b5b617	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23c5c47b	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x23c9891c	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0x23daa989	mipi_dsi_create_packet
+EXPORT_SYMBOL	 vmlinux 0x23dfd088	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x23f62d36	vio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x2416e9a6	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x243e020b	agp_bind_memory
+EXPORT_SYMBOL	 vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0x24582253	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x248347dc	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x2483b5cb	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0x2484adc3	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0x24a51891	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x24b9b1b1	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0x24babb41	phy_resume
+EXPORT_SYMBOL	 vmlinux 0x24c31021	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x24c78722	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x24f8c423	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x24fca28a	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x250205d1	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL	 vmlinux 0x25301bc6	arch_wb_cache_pmem
+EXPORT_SYMBOL	 vmlinux 0x2532a53f	mdio_device_register
+EXPORT_SYMBOL	 vmlinux 0x254c9287	ioremap
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x2575fbc0	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x257bd272	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x2590a1b8	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x25bdd313	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0x25c074f4	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25ea44ff	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x25fa38c2	pm_vt_switch_required
+EXPORT_SYMBOL	 vmlinux 0x2600ad4c	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x261bfa4e	mmc_detect_change
+EXPORT_SYMBOL	 vmlinux 0x26247c8f	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x263a3c9c	mmc_calc_max_discard
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x263c3152	bcmp
+EXPORT_SYMBOL	 vmlinux 0x2667304f	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x2689fc0b	rproc_elf_load_segments
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26f8f0b8	iowrite16be
+EXPORT_SYMBOL	 vmlinux 0x2703ff4a	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x272c9fc0	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x273515ed	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x273b8bc0	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0x27477218	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x274fb244	i2c_verify_adapter
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27696e7d	mipi_dsi_dcs_set_display_on
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277ecee1	down_write
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x27872ffd	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x279bdeb2	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x27a9fb86	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0x27b3579d	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x27b4576d	is_nvdimm_bus_locked
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27c50117	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27ce2514	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x2802578d	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x283ef07f	__phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0x2858112c	twl6040_get_vibralr_status
+EXPORT_SYMBOL	 vmlinux 0x2860cea1	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x28855d28	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x28a4589c	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x28a67048	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x28ae7393	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 vmlinux 0x28dbf7ae	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x28e69440	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x28e8506a	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0x28edaf3d	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x28f56890	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x28fe0cbe	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x290383a1	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x29369964	backlight_device_set_brightness
+EXPORT_SYMBOL	 vmlinux 0x293990b1	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x293cfa52	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x294487ab	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x295bbe71	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x295d6128	pci_find_hose_for_OF_device
+EXPORT_SYMBOL	 vmlinux 0x29661624	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x297e52bb	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x297e93b3	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x2981431e	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0x299d53d4	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x29a2c1d5	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x29a3aad5	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x29a9d32b	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x29c420b8	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x29c7316b	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x29d4782e	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x29e1e204	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x29fa5f57	dev_open
+EXPORT_SYMBOL	 vmlinux 0x2a1f8e06	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL	 vmlinux 0x2a389fba	dput
+EXPORT_SYMBOL	 vmlinux 0x2a398a13	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x2a432351	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x2a446281	devm_extcon_unregister_notifier_all
+EXPORT_SYMBOL	 vmlinux 0x2a57c8b3	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0x2a6d93f1	is_subdir
+EXPORT_SYMBOL	 vmlinux 0x2a70b439	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0x2a714a84	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0x2a7216ba	genphy_suspend
+EXPORT_SYMBOL	 vmlinux 0x2a8d3a4b	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x2a9a3905	vme_master_get
+EXPORT_SYMBOL	 vmlinux 0x2aa26a16	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x2aa7295d	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x2aabe50f	dma_find_channel
+EXPORT_SYMBOL	 vmlinux 0x2aac56c5	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0x2ac3a036	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x2ad61fc6	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x2af88148	of_root
+EXPORT_SYMBOL	 vmlinux 0x2b1048fe	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x2b149242	__brelse
+EXPORT_SYMBOL	 vmlinux 0x2b3da1f9	giveup_all
+EXPORT_SYMBOL	 vmlinux 0x2b44729c	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x2b4a2089	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x2b59d68b	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b8606a3	rproc_add
+EXPORT_SYMBOL	 vmlinux 0x2b899247	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2ba54bcf	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0x2bafb521	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x2bbeff1c	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x2c01f24b	nvdimm_bus_lock
+EXPORT_SYMBOL	 vmlinux 0x2c0be7dd	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x2c10c94f	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c2d84e2	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x2c310432	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x2c4592b2	misc_register
+EXPORT_SYMBOL	 vmlinux 0x2c5fd5a0	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x2c635527	arch_invalidate_pmem
+EXPORT_SYMBOL	 vmlinux 0x2c6d1b40	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x2c7b1fca	down_timeout
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2ca3af16	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0x2ca9aa56	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x2caf8b02	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x2cb89412	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x2cc087b0	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x2cc875fd	xmon
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2cd3c043	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x2cf73cb7	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0x2cf7d6bb	agp_bridge
+EXPORT_SYMBOL	 vmlinux 0x2d05f439	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x2d0e2008	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d192c70	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d352d29	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x2d3669fe	devfreq_remove_device
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d641ed5	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0x2d65df36	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0x2d66bd5e	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x2d6db8b4	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0x2d7af81f	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2d9e97dc	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x2da4bec1	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 vmlinux 0x2dacb293	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x2db15732	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0x2db3bc61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x2dc44372	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0x2dc4e156	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x2dcdea36	chip_to_vas_id
+EXPORT_SYMBOL	 vmlinux 0x2dce19f1	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x2dd127d2	devm_backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0x2dfbf37d	mmc_can_trim
+EXPORT_SYMBOL	 vmlinux 0x2e0f1d04	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x2e104e12	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e1c3d8c	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x2e26ce76	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x2e2b40d2	strncat
+EXPORT_SYMBOL	 vmlinux 0x2e41776b	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x2e49853e	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x2e4e406c	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x2e5a3799	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0x2e606cf4	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x2e774f73	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x2e925730	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x2e99d4fb	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0x2ea441b9	mmc_gpiod_request_cd_irq
+EXPORT_SYMBOL	 vmlinux 0x2ebcb8b1	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x2ec3466e	to_ndd
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2edbeaf7	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x2ee4c2b1	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x2f000c44	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x2f03d604	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f08aa8f	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f30280b	bdget
+EXPORT_SYMBOL	 vmlinux 0x2f3e5b90	vme_dma_request
+EXPORT_SYMBOL	 vmlinux 0x2f3eb6c4	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x2f4086db	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f5d22cf	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x2f63c81f	iw_handler_set_spy
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f7bcb95	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0x2f97bad6	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x2fa57f94	pnv_cxl_release_hwirq_ranges
+EXPORT_SYMBOL	 vmlinux 0x2fa7e5fe	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x2fa9d10c	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0x2fb342fb	nvdimm_namespace_capacity
+EXPORT_SYMBOL	 vmlinux 0x2fc2c546	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x2fc39170	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x2fc43d4f	fb_class
+EXPORT_SYMBOL	 vmlinux 0x2fc78fcc	xa_erase
+EXPORT_SYMBOL	 vmlinux 0x2fd30cd8	phy_modify_paged
+EXPORT_SYMBOL	 vmlinux 0x2fdff5bc	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fe60ad3	flush_all_to_thread
+EXPORT_SYMBOL	 vmlinux 0x2fe77fef	mmc_can_sanitize
+EXPORT_SYMBOL	 vmlinux 0x30107cca	genphy_read_abilities
+EXPORT_SYMBOL	 vmlinux 0x3011571b	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0x3015bae6	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x301ba21a	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x30363109	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x303b5b94	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x30583e5b	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x307bb2fa	msi_bitmap_alloc_hwirqs
+EXPORT_SYMBOL	 vmlinux 0x308d1038	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b8b35c	cpu_to_chip_id
+EXPORT_SYMBOL	 vmlinux 0x30c62ee9	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x30c82e5b	pm_vt_switch_unregister
+EXPORT_SYMBOL	 vmlinux 0x30c850cd	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0x30cfe375	nd_btt_version
+EXPORT_SYMBOL	 vmlinux 0x30f1fb8b	simple_empty
+EXPORT_SYMBOL	 vmlinux 0x30f89b9b	i2c_smbus_read_byte
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310979da	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x31170805	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0x311beb0f	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0x311d92c8	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x312f6b0e	vme_bus_num
+EXPORT_SYMBOL	 vmlinux 0x31442de6	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314694be	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0x314a77c7	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x3151c765	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x3157bc93	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x316033af	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x316ca2cc	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x319141ef	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0x31a462a8	ilookup
+EXPORT_SYMBOL	 vmlinux 0x31aec811	ptp_clock_unregister
+EXPORT_SYMBOL	 vmlinux 0x31c5a388	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x31c8ddc7	dma_supported
+EXPORT_SYMBOL	 vmlinux 0x31dd9a30	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x31ee9e72	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x31f06703	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x3217c3a3	__memset32
+EXPORT_SYMBOL	 vmlinux 0x3246f929	pm860x_reg_write
+EXPORT_SYMBOL	 vmlinux 0x324dfde2	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x32555f1d	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x325bfee4	nvdimm_namespace_common_probe
+EXPORT_SYMBOL	 vmlinux 0x325fad9d	thaw_super
+EXPORT_SYMBOL	 vmlinux 0x326375bf	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0x327c84bf	vme_lm_attach
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x32b104ab	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x32b7d5b2	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32e344c0	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x33021e5f	mmc_erase
+EXPORT_SYMBOL	 vmlinux 0x33028ad5	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x3304be5b	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x33153b97	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0x331ebcb4	mipi_dsi_detach
+EXPORT_SYMBOL	 vmlinux 0x332d4310	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0x333a3e63	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x33599a40	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0x335c8245	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x33736a1d	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0x337b8d35	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x3383e3c3	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x33985404	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0x339f3a2f	rtc_add_groups
+EXPORT_SYMBOL	 vmlinux 0x33a47ed7	mipi_dsi_dcs_enter_sleep_mode
+EXPORT_SYMBOL	 vmlinux 0x33b0abd2	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL	 vmlinux 0x33c43a04	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x33dddc14	phy_suspend
+EXPORT_SYMBOL	 vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL	 vmlinux 0x33fcf44a	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x340475f5	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3421ebcf	mdio_device_reset
+EXPORT_SYMBOL	 vmlinux 0x3425d353	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x343658a7	pnv_cxl_alloc_hwirqs
+EXPORT_SYMBOL	 vmlinux 0x34555d87	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x345c8916	strict_msr_control
+EXPORT_SYMBOL	 vmlinux 0x3467c900	paca_ptrs
+EXPORT_SYMBOL	 vmlinux 0x34743a6f	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0x3476b3de	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x3488b002	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0x348a3198	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x34954581	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34fe3aff	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x35244ec2	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0x35257e6c	epapr_hypercall_start
+EXPORT_SYMBOL	 vmlinux 0x352bb201	xa_store
+EXPORT_SYMBOL	 vmlinux 0x3539f11b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x3541926c	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x35424e1c	cdev_add
+EXPORT_SYMBOL	 vmlinux 0x3563bd02	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x356461c8	rtc_time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x3567109c	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x3573e0d0	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b136ae	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x35b40439	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0x35bab0cd	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x35c32767	xor_altivec_2
+EXPORT_SYMBOL	 vmlinux 0x35dfaa17	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x35e4a5c1	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x35e5c986	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x35f0e3ed	mmc_cqe_request_done
+EXPORT_SYMBOL	 vmlinux 0x36055143	of_find_node_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x361f76dc	mmc_start_request
+EXPORT_SYMBOL	 vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x364e1cf3	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x3655d4d1	devfreq_recommended_opp
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365afb77	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x367d2feb	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x367f837b	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x36819352	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x36a6a04e	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x36b35777	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x36c7d2fe	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x36eaafe2	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0x370e641e	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0x371d2130	check_legacy_ioport
+EXPORT_SYMBOL	 vmlinux 0x3737d9a9	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x376e6b1e	mmc_get_card
+EXPORT_SYMBOL	 vmlinux 0x37742da1	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x37746fde	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0x3779cd96	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x37836570	of_parse_phandle_with_fixed_args
+EXPORT_SYMBOL	 vmlinux 0x378396ee	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0x378c693f	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x37a901a3	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x37aed495	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37b4ce05	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x37b8b39e	screen_info
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37c362d0	vga_set_legacy_decoding
+EXPORT_SYMBOL	 vmlinux 0x37c68a81	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x37c6a9ee	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x37d10588	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37e0a68e	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x3819eeaa	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x382bd38a	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x383785ab	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x384ab358	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x385afa41	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x386d94d6	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x3878e220	vga_get
+EXPORT_SYMBOL	 vmlinux 0x3886095f	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x3888c09b	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x389617b0	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9e936	vio_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38c96633	nd_btt_arena_is_valid
+EXPORT_SYMBOL	 vmlinux 0x38cac8d9	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x38db5a80	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x38dda716	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x38f0e991	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x38fb9933	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x3904ae5e	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x392a7cbb	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x3939f694	phy_register_fixup
+EXPORT_SYMBOL	 vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL	 vmlinux 0x3943256f	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3947e4e0	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x394d2e5d	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x394edfe4	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x3950ebdc	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0x3955d670	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0x3955fcf6	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0x39693464	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x398339c9	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0x3990e71b	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x399444ba	serio_unregister_port
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x399ad043	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x399e21ef	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0x39af8ed9	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0x39b1aedc	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39c84a28	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0x39ce54d2	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x39f9e18c	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0x3a0cb2e2	can_nice
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a21993a	agp_put_bridge
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a328c2a	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a5e0dca	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x3a875620	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ab8cef0	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x3ad849fc	ps2_command
+EXPORT_SYMBOL	 vmlinux 0x3adccfac	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x3add1414	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x3b13d266	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x3b321462	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b40dc77	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b66edc9	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x3b8c5e06	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0x3b9b3079	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0x3ba3191c	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x3ba393c8	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x3bae1efc	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x3bba0ee4	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x3bcfaa3d	mipi_dsi_dcs_write_buffer
+EXPORT_SYMBOL	 vmlinux 0x3bd55563	of_platform_device_create
+EXPORT_SYMBOL	 vmlinux 0x3bd99bed	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c1f6698	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c457453	ioread64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0x3c563831	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x3c5db9f5	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0x3c6b06b5	radix__flush_tlb_mm
+EXPORT_SYMBOL	 vmlinux 0x3c6cafe6	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x3c73bdfb	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3ca3d7be	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x3ca4c0a0	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3cb37157	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0x3cba6aec	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x3cc4cb8a	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3ce73ac2	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x3ceb5d5b	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0x3d294f4b	of_find_property
+EXPORT_SYMBOL	 vmlinux 0x3d2981e6	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x3d2bbb40	pci_fixup_device
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d81871f	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0x3d8af968	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0x3d8fd570	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3de8c65d	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x3dea918c	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0x3dfb86b9	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3e0de3b0	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x3e129a73	mmc_sw_reset
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e3051f6	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0x3e33e3a3	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x3e355492	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0x3e37a0ce	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x3e38c309	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x3e444c5c	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x3e4b5d8e	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x3e4d0817	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x3e820b95	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0x3e8e520c	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3ecdf472	stream_open
+EXPORT_SYMBOL	 vmlinux 0x3ee1509b	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x3f02f334	cpufreq_global_kobject
+EXPORT_SYMBOL	 vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL	 vmlinux 0x3f0eabd2	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x3f24a869	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x3f3568e3	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x3f385704	srp_reconnect_rport
+EXPORT_SYMBOL	 vmlinux 0x3f406a3b	enable_kernel_altivec
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f586b96	hmm_range_fault
+EXPORT_SYMBOL	 vmlinux 0x3f6be8f0	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0x3f75389a	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x3f77d4fd	drop_super
+EXPORT_SYMBOL	 vmlinux 0x3f797a84	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3f7d378c	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x3f7e617f	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f9635c2	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x3fa5cab5	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x3fb6416b	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x3fbf3c89	vme_slave_set
+EXPORT_SYMBOL	 vmlinux 0x3fc44e44	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x3fc6fa79	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fe03a17	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x3fe2ccbe	memweight
+EXPORT_SYMBOL	 vmlinux 0x3fe44635	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x3fee0b8c	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x4016b1c6	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x401d7a6f	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x4021df2e	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0x40222182	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x40229413	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x402dab10	of_device_is_available
+EXPORT_SYMBOL	 vmlinux 0x403a9bf3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x40488b30	uart_add_one_port
+EXPORT_SYMBOL	 vmlinux 0x404c0e05	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 vmlinux 0x40857673	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40be8eed	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x40c392bd	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d2cc93	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40d84a37	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x40d88321	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0x40ed1519	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0x40fba5aa	vme_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x40fe8c7e	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x41071a82	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x411b53f8	agp_generic_type_to_mask_type
+EXPORT_SYMBOL	 vmlinux 0x4133fc14	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x413990ae	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x414d65f8	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x41523fd7	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x41627a75	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x416f8f52	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0x417d3075	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x4186b665	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x41a00122	config_item_put
+EXPORT_SYMBOL	 vmlinux 0x41ae718a	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x41c82d9a	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x41ed3709	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x41fa31b9	genphy_config_eee_advert
+EXPORT_SYMBOL	 vmlinux 0x420e7d6e	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x42113610	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x422d1e05	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x422e1e7e	ps2_end_command
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4231181c	mmc_detect_card_removed
+EXPORT_SYMBOL	 vmlinux 0x42431394	rproc_elf_sanity_check
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424c309a	__i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x4252b3b5	twl6040_get_pll
+EXPORT_SYMBOL	 vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL	 vmlinux 0x4278c26c	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x428a3b50	unregister_console
+EXPORT_SYMBOL	 vmlinux 0x4293b85c	bdi_put
+EXPORT_SYMBOL	 vmlinux 0x42972b5f	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x42988f10	edac_mc_find
+EXPORT_SYMBOL	 vmlinux 0x42a71a82	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0x42cc42da	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x42f030bd	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x42f2a96f	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43313d35	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x43379eb0	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x43665734	fsl_lbc_ctrl_dev
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43a4938f	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x43a50b08	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x43ad7e24	ppp_input
+EXPORT_SYMBOL	 vmlinux 0x43c6ba80	of_graph_get_port_by_id
+EXPORT_SYMBOL	 vmlinux 0x43cba835	fd_install
+EXPORT_SYMBOL	 vmlinux 0x43d57a44	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0x43de8973	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x4404755d	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x440ae551	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x4421a7f0	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x44293654	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x4430f2d6	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x445eb453	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x44613587	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x446239fe	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0x446908e2	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x4479e2b1	key_link
+EXPORT_SYMBOL	 vmlinux 0x44851e2c	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x44871c7e	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x4488bc8a	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x44a97762	mmc_of_parse
+EXPORT_SYMBOL	 vmlinux 0x44ce8d45	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x44e03d3a	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x44e711b8	rproc_elf_find_loaded_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44eb87c2	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x44f32fac	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x44fdef59	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450200f9	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x450bd37e	__pmd_index_size
+EXPORT_SYMBOL	 vmlinux 0x450d640b	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x450fb80c	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x452287df	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x4543531b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x45535485	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x4579aa49	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x45a05320	ptp_clock_event
+EXPORT_SYMBOL	 vmlinux 0x45a8886d	blk_pm_runtime_init
+EXPORT_SYMBOL	 vmlinux 0x45abb2de	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x45adb7e3	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x45bc8257	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x45c5bc6d	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0x45ec4e3a	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0x46001d34	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x4608d199	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x4612c59d	down_trylock
+EXPORT_SYMBOL	 vmlinux 0x461ac773	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x461b6148	pmem_sector_size
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x461ebfa0	__copy_tofrom_user
+EXPORT_SYMBOL	 vmlinux 0x463540a6	abx500_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0x4657bfdc	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x465d9f2b	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x46700167	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x4674ec42	__pgd_val_bits
+EXPORT_SYMBOL	 vmlinux 0x46771bdd	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0x467df16d	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0x4688fc81	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x46918b94	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x469a6ec7	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x46b01a60	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL	 vmlinux 0x46cf0497	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x46d8fbaa	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x46d949fc	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x46f4e890	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x46f9f2b5	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0x46fdf15f	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x47062a45	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x470d4260	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x4713d8f7	of_graph_get_endpoint_count
+EXPORT_SYMBOL	 vmlinux 0x47248463	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0x472cd19b	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x47353b25	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x474082a9	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0x47415a80	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x4743c615	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x474595ef	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x474f4156	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x47736df3	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0x477a613d	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x477bdaae	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x477eedd7	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x478da1d3	vga_con
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x4797c099	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a99842	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x47babf3e	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x47c48af3	store_fp_state
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47cb6b17	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x47cc7ce8	dst_init
+EXPORT_SYMBOL	 vmlinux 0x47d95ef4	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x47e31fc6	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0x4804b80b	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x480adf6d	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x481912fd	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x482259ad	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x4829a47e	memcpy
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x48413a4b	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0x4841bdee	strnchr
+EXPORT_SYMBOL	 vmlinux 0x4848cfb1	phy_mipi_dphy_get_default_config
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x484f71e6	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x4852d6f3	agp_find_bridge
+EXPORT_SYMBOL	 vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL	 vmlinux 0x485cafa1	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0x48602da6	of_create_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x486c17db	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0x488844ee	max8998_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x489ae86c	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x489d25e7	proc_create
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL	 vmlinux 0x48c49ec1	release_sock
+EXPORT_SYMBOL	 vmlinux 0x48e5bf26	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x48f0d0ba	of_get_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x48fac0c0	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490fa7b8	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x4939bf6e	giveup_altivec
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x496bb3a7	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x498e9128	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x499bfc6d	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x499f0ecf	nd_sb_checksum
+EXPORT_SYMBOL	 vmlinux 0x49a51560	ps2_handle_response
+EXPORT_SYMBOL	 vmlinux 0x49e0fd06	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x49f18b21	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0x49ff9fde	mdiobus_alloc_size
+EXPORT_SYMBOL	 vmlinux 0x4a20894e	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x4a2f4578	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x4a453f53	iowrite32
+EXPORT_SYMBOL	 vmlinux 0x4a55c8ea	ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x4a71c442	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x4a8934f5	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0x4a908d99	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4a96c580	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0x4aabe532	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x4aad025e	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x4ab569ac	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x4ab6eea4	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0x4aba69d3	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x4abf8fbd	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x4ac932c9	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x4ad2a57a	opal_event_request
+EXPORT_SYMBOL	 vmlinux 0x4ae35399	serio_rescan
+EXPORT_SYMBOL	 vmlinux 0x4aea463f	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x4aedd7de	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL	 vmlinux 0x4b147a4a	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x4b2c9343	of_pci_range_to_resource
+EXPORT_SYMBOL	 vmlinux 0x4b3b73b0	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x4b3f2352	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x4b438596	padata_free
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b4c5962	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b66a69a	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x4b737576	mdio_device_free
+EXPORT_SYMBOL	 vmlinux 0x4b776603	phy_print_status
+EXPORT_SYMBOL	 vmlinux 0x4b8feb94	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x4ba1c48b	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4bc3fc4e	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x4bc6579f	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x4bc793cf	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0x4bcb2292	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x4bcd7037	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x4be7c444	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x4bef1c67	empty_name
+EXPORT_SYMBOL	 vmlinux 0x4bf426eb	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0x4c079991	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x4c11435a	_raw_read_lock_bh
+EXPORT_SYMBOL	 vmlinux 0x4c352bb7	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x4c38d4e0	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c449eea	mipi_dsi_host_unregister
+EXPORT_SYMBOL	 vmlinux 0x4c44c8b2	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0x4c5e0a23	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x4c7cd5c6	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0x4c92bca3	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x4c9ae676	ab3100_event_register
+EXPORT_SYMBOL	 vmlinux 0x4c9ca944	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0x4cba441d	iwe_stream_add_event
+EXPORT_SYMBOL	 vmlinux 0x4cc3bbbb	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0x4cc6534b	cpu_l2_cache_map
+EXPORT_SYMBOL	 vmlinux 0x4cd3d9e2	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0x4d036635	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x4d442b30	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x4d448628	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x4d4926bf	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x4d51e2aa	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x4d5715a8	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d6d96eb	rproc_alloc
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d760048	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4d885906	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x4d924f20	memremap
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9af7d0	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4d9b8649	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x4d9bb787	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x4dd330de	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x4df02057	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e074561	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e365e23	rproc_coredump_add_custom_segment
+EXPORT_SYMBOL	 vmlinux 0x4e3e6722	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x4e400851	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x4e44a19f	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e7154f2	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x4e73f9fa	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x4e7c41d8	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x4e892198	audit_log
+EXPORT_SYMBOL	 vmlinux 0x4ea5fb05	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x4eb07b55	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x4eb1810a	phy_find_first
+EXPORT_SYMBOL	 vmlinux 0x4eb7ae3d	hvc_get_chars
+EXPORT_SYMBOL	 vmlinux 0x4eb94396	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0x4ebd11a1	free_task
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4eca1499	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x4ed6671d	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x4edacae4	arp_send
+EXPORT_SYMBOL	 vmlinux 0x4ef21cfe	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x4ef75d45	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x4f0244a6	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2250ba	rtc_tm_to_time64
+EXPORT_SYMBOL	 vmlinux 0x4f2c8ebf	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0x4f2d044e	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x4f3d4da6	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL	 vmlinux 0x4f580fe3	mmc_add_host
+EXPORT_SYMBOL	 vmlinux 0x4f63f4b5	mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x4f7a69bf	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x4f964421	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x4f9eead6	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x4fa65563	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x4fb0915f	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x4fc30528	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4fca3096	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 vmlinux 0x4fcb40fe	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL	 vmlinux 0x4fdfff29	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x5011bf5d	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x502342d5	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0x5039b84d	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x5047e738	dqput
+EXPORT_SYMBOL	 vmlinux 0x505d3c14	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0x5064688c	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x5070357f	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0x5079c9d7	__pte_index_size
+EXPORT_SYMBOL	 vmlinux 0x508129f0	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x5085b0f4	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0x508e74c1	iw_handler_set_thrspy
+EXPORT_SYMBOL	 vmlinux 0x509ab465	consume_skb
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50a90e8d	bsearch
+EXPORT_SYMBOL	 vmlinux 0x50b73ce2	rfkill_find_type
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50cc65af	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0x50e8219a	skb_split
+EXPORT_SYMBOL	 vmlinux 0x50f91491	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0x5121579a	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x514f62f7	phy_device_remove
+EXPORT_SYMBOL	 vmlinux 0x5150be14	d_path
+EXPORT_SYMBOL	 vmlinux 0x51527038	mmc_set_data_timeout
+EXPORT_SYMBOL	 vmlinux 0x51530f05	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x5153c00e	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x51566f47	genphy_aneg_done
+EXPORT_SYMBOL	 vmlinux 0x5161c3fe	logfc
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x51a40e8d	filp_open
+EXPORT_SYMBOL	 vmlinux 0x51ac5df5	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x51ad47f9	padata_start
+EXPORT_SYMBOL	 vmlinux 0x51be175a	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0x51d460c5	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0x51fea1cd	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0x5212b1d7	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x52374286	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x52522563	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x525ac644	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x525b49db	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0x526a09b8	devm_ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0x526dd2f9	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0x526eef2c	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x5291a1f9	fput
+EXPORT_SYMBOL	 vmlinux 0x5291c702	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x52983a4f	vme_master_write
+EXPORT_SYMBOL	 vmlinux 0x52c3245e	rproc_of_resm_mem_entry_init
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52ecbc75	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x5308e350	__vmalloc_start
+EXPORT_SYMBOL	 vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL	 vmlinux 0x530e1d61	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x535a40a8	to_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0x536dae69	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x538b4738	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x53b3d58c	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0x53c42de7	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x53c9199c	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0x53cd2ad0	migrate_vma_setup
+EXPORT_SYMBOL	 vmlinux 0x53ce42a6	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x53e8e17a	nvdimm_bus_unlock
+EXPORT_SYMBOL	 vmlinux 0x53fa36d1	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x5406d722	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x540a6eab	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x5412c7c7	up
+EXPORT_SYMBOL	 vmlinux 0x5416c79b	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x54245b39	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x543f0b37	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0x54437a5b	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x544463c1	submit_bh
+EXPORT_SYMBOL	 vmlinux 0x5473cb82	mipi_dsi_turn_on_peripheral
+EXPORT_SYMBOL	 vmlinux 0x5477d070	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x548f5b66	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x549e9ae5	agp_generic_free_gatt_table
+EXPORT_SYMBOL	 vmlinux 0x54a0ed34	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54ab99fe	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x54ac1f4f	of_match_device
+EXPORT_SYMBOL	 vmlinux 0x54b98ee2	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54e3d5fd	__pmd_frag_nr
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550ad585	radix__local_flush_tlb_page
+EXPORT_SYMBOL	 vmlinux 0x5519924f	__mmc_claim_host
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x551bf32a	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x5525f9a3	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x553f06af	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0x5541f787	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x5549ef93	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x554daa7e	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x5551dc1e	arp_create
+EXPORT_SYMBOL	 vmlinux 0x555a84bd	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x55686530	__arch_clear_user
+EXPORT_SYMBOL	 vmlinux 0x556b5d62	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x556d47ad	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x557b0c2d	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x55baa066	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x55c80ae0	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0x55ce3e0e	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x55d62483	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55e5ee64	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0x55f097e8	ptp_schedule_worker
+EXPORT_SYMBOL	 vmlinux 0x55f63c68	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0x55fece21	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x560066eb	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x5600e309	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0x560695e7	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x5606ce47	vme_register_error_handler
+EXPORT_SYMBOL	 vmlinux 0x560fa9f7	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x5611e41b	phy_device_free
+EXPORT_SYMBOL	 vmlinux 0x562e9776	fsl_lbc_find
+EXPORT_SYMBOL	 vmlinux 0x5631b96f	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x56364a8c	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x563e6dff	sort_r
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x56519215	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x56618384	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0x566f3c78	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x567e742e	mmc_gpio_get_ro
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x5689914d	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0x568f2f3f	put_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x569e473a	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x56ac2a7c	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x56c54881	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56c9d396	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x56cc4e11	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x56ccba4b	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x56f6c7de	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x570869ab	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0x57122dd4	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x572ae748	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0x572e0eeb	devfreq_suspend_device
+EXPORT_SYMBOL	 vmlinux 0x573929a7	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x57498237	ppp_unregister_compressor
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x5754a545	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL	 vmlinux 0x57643df0	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x576bb842	phy_register_fixup_for_id
+EXPORT_SYMBOL	 vmlinux 0x576d4edf	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0x577a9c8d	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x5780c23a	single_open_size
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578a408b	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0x5792f848	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x57995798	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x57a14439	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0x57b90c38	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x57bedddc	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x57d220e1	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x57ef7fb4	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x580a8b26	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0x580b3389	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x58121958	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582f8be3	of_n_size_cells
+EXPORT_SYMBOL	 vmlinux 0x58303a7c	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL	 vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL	 vmlinux 0x585c67d7	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x58618006	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0x58698b57	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0x58762389	set_groups
+EXPORT_SYMBOL	 vmlinux 0x5876fd75	agp_free_memory
+EXPORT_SYMBOL	 vmlinux 0x5881926a	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0x5881f32f	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x58a339ab	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58cd7faa	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x58d67573	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58e6a689	bdevname
+EXPORT_SYMBOL	 vmlinux 0x5918fb15	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x592042ea	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x59418c70	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x594232e9	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x594a8553	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL	 vmlinux 0x5955f074	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x595d0946	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x59894fa7	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x599339ee	of_get_next_available_child
+EXPORT_SYMBOL	 vmlinux 0x599fb41c	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x59a2f0ee	packing
+EXPORT_SYMBOL	 vmlinux 0x59b3f0ce	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59b979d9	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x59bc1495	devfreq_monitor_resume
+EXPORT_SYMBOL	 vmlinux 0x59c0f147	phy_init_eee
+EXPORT_SYMBOL	 vmlinux 0x59c19762	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x59cc6cf7	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0x59dc9117	do_SAK
+EXPORT_SYMBOL	 vmlinux 0x59decae7	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x59f18552	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0x59f270e2	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x59f9e4f1	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0x59fed949	has_capability
+EXPORT_SYMBOL	 vmlinux 0x5a025f7b	arch_local_irq_restore
+EXPORT_SYMBOL	 vmlinux 0x5a088923	up_write
+EXPORT_SYMBOL	 vmlinux 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 vmlinux 0x5a0c0f3f	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x5a242817	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0x5a388c1d	dev_pm_opp_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x5a44f8cb	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5a4691fb	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a54c5ec	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0x5a6fdb30	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x5a736d56	single_open
+EXPORT_SYMBOL	 vmlinux 0x5a7f5afe	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x5a88158d	phy_ethtool_set_eee
+EXPORT_SYMBOL	 vmlinux 0x5a887ed5	rproc_elf_load_rsc_table
+EXPORT_SYMBOL	 vmlinux 0x5a8ae15a	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0x5a921311	strncmp
+EXPORT_SYMBOL	 vmlinux 0x5a9f1d63	memmove
+EXPORT_SYMBOL	 vmlinux 0x5ac3c067	param_set_long
+EXPORT_SYMBOL	 vmlinux 0x5ae9e417	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0x5af6b60c	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0x5b0e1578	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0x5b29d70c	uart_match_port
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b43f1f1	rtas_service_present
+EXPORT_SYMBOL	 vmlinux 0x5b44422a	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x5b56860c	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x5b760467	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x5b77ff7b	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x5b88a215	phy_ethtool_get_wol
+EXPORT_SYMBOL	 vmlinux 0x5b9828c5	dma_spin_lock
+EXPORT_SYMBOL	 vmlinux 0x5ba5a62c	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0x5bbb79e2	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0x5bbec161	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0x5bc67d5e	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5bfc3600	refresh_frequency_limits
+EXPORT_SYMBOL	 vmlinux 0x5bfcb6b7	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x5bfceb4d	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x5c37f319	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c42fc4c	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x5c4d5cc0	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x5c517ccf	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x5c52ac14	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0x5c54d21f	of_get_next_cpu_node
+EXPORT_SYMBOL	 vmlinux 0x5c57780c	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x5c77a1f3	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x5c95717d	of_find_backlight_by_node
+EXPORT_SYMBOL	 vmlinux 0x5caa0e63	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x5cc96215	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x5cd4627e	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x5cd6ccb0	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0x5cdcfaa6	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x5ce1ebd7	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0x5cef04b9	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d12b34f	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x5d14005e	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0x5d355d5f	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x5d363931	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x5d41b12c	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d4ae65d	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x5d4c39b9	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x5d538ad8	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0x5d66dad3	backlight_device_get_by_type
+EXPORT_SYMBOL	 vmlinux 0x5d763f2b	netdev_info
+EXPORT_SYMBOL	 vmlinux 0x5d9d0f19	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x5da54710	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x5dafa0cb	mmc_put_card
+EXPORT_SYMBOL	 vmlinux 0x5dd4a7ed	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x5de0fd44	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0x5df272d3	phy_driver_register
+EXPORT_SYMBOL	 vmlinux 0x5df49be6	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0x5df53f92	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0x5dffb495	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x5e03ac2b	pm860x_page_bulk_read
+EXPORT_SYMBOL	 vmlinux 0x5e2c17a6	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0x5e2cb7d9	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x5e3324c2	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e62c19b	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e9250b2	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea4e404	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x5eab9795	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ec471d4	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed2969e	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5eda8e99	mipi_dsi_dcs_set_page_address
+EXPORT_SYMBOL	 vmlinux 0x5eddb914	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0x5ee0a4e5	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0x5ee1f703	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0x5eec1ce7	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f24dd1a	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x5f2f32dc	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0x5f3b9631	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x5f4b398f	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x5f6b889c	rproc_va_to_pa
+EXPORT_SYMBOL	 vmlinux 0x5f731177	__quota_error
+EXPORT_SYMBOL	 vmlinux 0x5f79e2b3	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x5f8a2728	isa_io_base
+EXPORT_SYMBOL	 vmlinux 0x5f96cb59	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x5fac06f7	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x5fb516f8	xa_find
+EXPORT_SYMBOL	 vmlinux 0x5fb96f04	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0x5fc6e140	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x5fc72f0e	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x5fe8553b	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x5feb70d8	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x5fefc2c1	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x5ff95df5	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x6005456f	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x6016531a	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x6021cc2e	module_layout
+EXPORT_SYMBOL	 vmlinux 0x60300200	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x6081a020	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x6087f7da	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x6088c415	fddi_type_trans
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609b2853	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60a00047	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x60a0e115	mdio_device_create
+EXPORT_SYMBOL	 vmlinux 0x60c47add	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x60d24b9b	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x60d56e92	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x60d8ab30	vme_lm_get
+EXPORT_SYMBOL	 vmlinux 0x610814bd	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x6121bd54	dql_init
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61306517	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x613b279a	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 vmlinux 0x614195d8	ilookup5
+EXPORT_SYMBOL	 vmlinux 0x6149fa4b	rproc_add_subdev
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x615c4f9d	i2c_get_adapter
+EXPORT_SYMBOL	 vmlinux 0x615cd99f	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x6170f15c	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 vmlinux 0x6172abc9	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL	 vmlinux 0x61949a72	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0x619c52b5	vio_h_cop_sync
+EXPORT_SYMBOL	 vmlinux 0x619cb7dd	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x61b25443	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61b87da5	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0x61bbb200	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x61ccab0d	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x61df7ea9	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61ee4676	vmap
+EXPORT_SYMBOL	 vmlinux 0x61f44b87	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x61f6b3fb	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x61f9ae84	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x61fa4936	devfreq_monitor_suspend
+EXPORT_SYMBOL	 vmlinux 0x61fe3b26	vio_find_node
+EXPORT_SYMBOL	 vmlinux 0x620619ad	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x6214aef2	cpufreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x62408031	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0x6240d4b6	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x625425ec	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x62746ed8	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0x6280f5d8	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x6287a810	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x628bdbb0	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x62bbf1d5	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62e28e09	release_pages
+EXPORT_SYMBOL	 vmlinux 0x62eb9433	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x6303aa7b	file_update_time
+EXPORT_SYMBOL	 vmlinux 0x633e09ae	devm_backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x6344005d	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x6346ab47	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x638f11e2	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63bffd8e	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d55a9c	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x63e6caf0	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0x63e9fc1a	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x6405dcd3	slhc_toss
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x6415391f	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x64226c03	of_parse_phandle
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x6443bc09	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x6466a5bb	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x64831cb8	xa_extract
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x649d3175	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b8a85d	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x64bbc288	string_unescape
+EXPORT_SYMBOL	 vmlinux 0x64c8a6e0	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x64cc9db3	pm8606_osc_disable
+EXPORT_SYMBOL	 vmlinux 0x64d23467	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x64d35035	rproc_del
+EXPORT_SYMBOL	 vmlinux 0x64e3dc39	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0x64f78986	backlight_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x6513cb44	genphy_soft_reset
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x652ce9aa	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x652fc84b	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x653eddd7	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x654697fe	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x655178d0	mount_single
+EXPORT_SYMBOL	 vmlinux 0x6551c357	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x655611bf	get_vaddr_frames
+EXPORT_SYMBOL	 vmlinux 0x6557143a	inet_protos
+EXPORT_SYMBOL	 vmlinux 0x6559b887	__nd_driver_register
+EXPORT_SYMBOL	 vmlinux 0x655b992f	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0x65616d70	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x656c1a0e	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x656e4a6e	snprintf
+EXPORT_SYMBOL	 vmlinux 0x657b9994	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0x65819700	msi_bitmap_free_hwirqs
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x6596a232	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x65a8d9fc	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0x65ba541c	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x65bb58a2	_raw_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x65cf8831	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0x65d9e877	cpufreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65e0d6d7	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x65fb63dd	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x65fd4581	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0x65ff9230	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x660cc753	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0x6630cbc0	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x6651cd2a	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x66523248	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x665ef8cf	build_skb
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x667fe0c5	vme_init_bridge
+EXPORT_SYMBOL	 vmlinux 0x668e1178	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0x66b20b73	agp_generic_destroy_pages
+EXPORT_SYMBOL	 vmlinux 0x66b4cc41	kmemdup
+EXPORT_SYMBOL	 vmlinux 0x66b724cc	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66df5483	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x66e1e1a3	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x670a2e6a	devfreq_update_status
+EXPORT_SYMBOL	 vmlinux 0x6716ee2c	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x67307f3e	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL	 vmlinux 0x6744973d	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x674d881c	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x67500cd6	module_put
+EXPORT_SYMBOL	 vmlinux 0x676480d8	phy_ethtool_sset
+EXPORT_SYMBOL	 vmlinux 0x676e0585	ppp_unit_number
+EXPORT_SYMBOL	 vmlinux 0x6770c6fc	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0x677ca70c	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x6782bc0c	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x67853605	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x678d01e4	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x679fc122	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67dbfaa8	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x67dfd87d	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x67f468e7	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x67fc472c	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0x680b6930	phy_validate_pause
+EXPORT_SYMBOL	 vmlinux 0x681bb139	mdio_bus_type
+EXPORT_SYMBOL	 vmlinux 0x682bb42d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x682edc96	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0x682f80e6	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x68440f08	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0x685687b0	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x6863b2f9	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x686818bb	down_read
+EXPORT_SYMBOL	 vmlinux 0x686f5517	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL	 vmlinux 0x687ddc67	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x68951511	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x689f370d	frame_vector_to_pages
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68bed735	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x68c9cd1f	devm_mfd_add_devices
+EXPORT_SYMBOL	 vmlinux 0x68ce8b58	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0x68d813fd	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x6900b48e	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x6909440b	__pgd_table_size
+EXPORT_SYMBOL	 vmlinux 0x690de91b	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x691dbf31	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x6933411e	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 vmlinux 0x69370142	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x693dd5e2	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69554155	rproc_report_crash
+EXPORT_SYMBOL	 vmlinux 0x6956f467	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0x69585523	__ksize
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x696a1e51	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL	 vmlinux 0x6973f849	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69d8a649	__tracepoint_spi_transfer_stop
+EXPORT_SYMBOL	 vmlinux 0x69dd3b5b	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x69de8757	vme_check_window
+EXPORT_SYMBOL	 vmlinux 0x69f27773	single_release
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a4154ac	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x6a4aa52d	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a67471d	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0x6a6e6d95	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0x6a70fa95	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x6a8f30ef	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6ade6454	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0x6aead81c	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 vmlinux 0x6b2ca9ac	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b366c10	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x6b47b75d	netdev_err
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b59d607	devm_devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b640864	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b9fc06e	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0x6bbb746f	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bd6a9c3	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x6be4d1fc	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0x6be85e91	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0x6c10426e	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x6c1c8ce8	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0x6c28be5a	vfio_info_add_capability
+EXPORT_SYMBOL	 vmlinux 0x6c444563	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x6c5dae23	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x6c60c04a	sock_release
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c8ad3d4	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x6c8ce9f2	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6c8e5246	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x6c9e885c	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x6c9f9a57	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x6cb0efe6	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cca97eb	twl6040_set_pll
+EXPORT_SYMBOL	 vmlinux 0x6cdb4933	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x6ce6c322	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d0212d6	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0x6d17bae7	of_find_mipi_dsi_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x6d1eecc1	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d318b79	rproc_get_by_phandle
+EXPORT_SYMBOL	 vmlinux 0x6d58f69e	agp3_generic_sizes
+EXPORT_SYMBOL	 vmlinux 0x6d8a94f6	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x6d93a502	find_vma
+EXPORT_SYMBOL	 vmlinux 0x6d95b7e3	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x6db5b955	fc_mount
+EXPORT_SYMBOL	 vmlinux 0x6db7999c	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0x6dc79506	ps2_handle_ack
+EXPORT_SYMBOL	 vmlinux 0x6dc8ceb4	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd21b53	vio_register_device_node
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6dfacb6b	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x6dfc79d9	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x6e1154b7	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x6e1652e6	flush_dcache_page
+EXPORT_SYMBOL	 vmlinux 0x6e25a31e	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x6e286604	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x6e395d87	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x6e3db325	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x6e5528a4	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x6e5b8651	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e7dc4e9	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0x6e86384f	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0x6e9a448d	__pte_frag_nr
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ebb2955	dmaenginem_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x6ecc8f37	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ee882dd	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x6eee29a4	vio_get_attribute
+EXPORT_SYMBOL	 vmlinux 0x6ef17c6f	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x6effe7f5	devfreq_resume_device
+EXPORT_SYMBOL	 vmlinux 0x6f08b1c6	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0x6f1283ee	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x6f24e86c	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6f3524ca	phys_mem_access_prot
+EXPORT_SYMBOL	 vmlinux 0x6f50791a	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x6f5cb55e	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x6f628da9	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x6f6e13c0	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f7ca980	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x6f7ccef2	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x6f91e3d8	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x6f94f6c9	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x6f974a42	of_translate_dma_address
+EXPORT_SYMBOL	 vmlinux 0x6f9fc8a7	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fbf17c8	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fe74808	mipi_dsi_dcs_nop
+EXPORT_SYMBOL	 vmlinux 0x6fec8a93	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0x6ff56105	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x70148438	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x701bda6e	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x703118da	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0x7035f615	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0x7048ca4d	vme_irq_handler
+EXPORT_SYMBOL	 vmlinux 0x7049d462	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x704e8069	of_dev_get
+EXPORT_SYMBOL	 vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x707b5794	rproc_free
+EXPORT_SYMBOL	 vmlinux 0x70bd54af	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x70c43b09	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x70c5bcc0	mipi_dsi_dcs_set_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x70d8a0d1	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x70f92ae7	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x71160678	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x71190c70	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x711f27e4	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x7131bf58	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x71380ac8	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x716f8a91	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x71a1b501	of_get_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71c11938	console_start
+EXPORT_SYMBOL	 vmlinux 0x71c3a365	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0x71db5cf8	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x71ec5921	bio_split
+EXPORT_SYMBOL	 vmlinux 0x71edacc8	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0x720da727	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x721ba04d	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x722d84d1	iunique
+EXPORT_SYMBOL	 vmlinux 0x7241bbb1	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x72587cc7	of_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0x72608c0e	do_uaccess_flush
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x728cd8c4	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x72a04177	hmm_range_register
+EXPORT_SYMBOL	 vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72c98139	__arch_hweight64
+EXPORT_SYMBOL	 vmlinux 0x72cc88da	__genphy_config_aneg
+EXPORT_SYMBOL	 vmlinux 0x72d9c1db	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f3a974	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0x7307f457	dns_query
+EXPORT_SYMBOL	 vmlinux 0x73114d69	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL	 vmlinux 0x731a747a	pci_io_base
+EXPORT_SYMBOL	 vmlinux 0x7322fba0	file_path
+EXPORT_SYMBOL	 vmlinux 0x732d41ab	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x733bce55	phy_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x73724a8f	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x7381bbfa	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x738bb931	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x73946b9e	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x73f70fbb	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x73fa3acf	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x73fe9869	is_nd_dax
+EXPORT_SYMBOL	 vmlinux 0x740807ed	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x7412ed5b	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x7439fd86	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x743c6f9c	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x748058e8	phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0x74849317	hmm_range_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0x748842e0	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0x7494d0e0	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x74aecc19	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x74b79b5d	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x74b8ce8a	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f1cd69	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x74f401c7	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0x7505c775	__ioremap_at
+EXPORT_SYMBOL	 vmlinux 0x75140e50	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0x75172ce2	of_find_mipi_dsi_host_by_node
+EXPORT_SYMBOL	 vmlinux 0x751aa489	update_devfreq
+EXPORT_SYMBOL	 vmlinux 0x7525e421	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x752d91e9	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x75345969	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL	 vmlinux 0x753c11f8	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x755f4ba3	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0x7571b34f	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x758cf8a8	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x75951b5e	of_graph_get_endpoint_by_regs
+EXPORT_SYMBOL	 vmlinux 0x759e2b1d	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x75a5aa92	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0x75a904a4	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0x75aa6ca1	__kernel_virt_start
+EXPORT_SYMBOL	 vmlinux 0x75afb09f	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75c1064d	ata_link_printk
+EXPORT_SYMBOL	 vmlinux 0x75ce34c6	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75ee4ff8	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0x75f6e8e6	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x760cb755	twl6040_reg_read
+EXPORT_SYMBOL	 vmlinux 0x76128eb0	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x76136b32	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x761b1ee7	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x7624ec06	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x76286dcf	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x763ba3ad	ioread64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0x764365a0	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x764c11ad	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0x764eacbd	ps2_sendbyte
+EXPORT_SYMBOL	 vmlinux 0x765ff474	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x765ff99b	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x7676fa96	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x7692e2fc	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x76976fac	mdiobus_write_nested
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76a6aaec	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x76c2c893	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x76c70e85	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76fe3a7c	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0x77122e42	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0x7713ca8d	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x77215137	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x77234d37	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x772df7b5	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x773069dc	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773d7798	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x773fa409	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0x7749c45d	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x77527726	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x775fffc9	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x7763cb09	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x7764fba5	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x7775ec55	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x77789a27	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x777bf1b4	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0x77895049	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x77921158	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x77a355ce	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77f44ed3	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x77f97cc4	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x77fe26a4	of_node_to_nid
+EXPORT_SYMBOL	 vmlinux 0x7802a267	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x7813a85a	mmc_gpio_set_cd_isr
+EXPORT_SYMBOL	 vmlinux 0x781bf84d	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x781d808b	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x7824cd9b	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7846af3e	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x7857e60d	mmc_gpiod_request_ro
+EXPORT_SYMBOL	 vmlinux 0x785dd167	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x78851d2f	_outsb
+EXPORT_SYMBOL	 vmlinux 0x788928e2	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78a634b7	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x78a9e905	_numa_mem_
+EXPORT_SYMBOL	 vmlinux 0x78af8c9a	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0x78b96ff3	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x78cbb960	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x78d28fe1	wireless_send_event
+EXPORT_SYMBOL	 vmlinux 0x78d3d43d	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x78dd5795	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78e26a92	mdio_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x7901d234	mipi_dsi_generic_read
+EXPORT_SYMBOL	 vmlinux 0x79373a7f	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x794b43fc	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x7959f6f1	mipi_dsi_dcs_write
+EXPORT_SYMBOL	 vmlinux 0x795cca87	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x795d450f	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x7963c8d3	max8925_reg_read
+EXPORT_SYMBOL	 vmlinux 0x7966fecf	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x796a8873	agp_generic_alloc_user
+EXPORT_SYMBOL	 vmlinux 0x79739c3c	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x7979dd48	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x7984eefc	key_update
+EXPORT_SYMBOL	 vmlinux 0x798f66f9	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x7997b592	dup_iter
+EXPORT_SYMBOL	 vmlinux 0x79a33f85	vme_get_size
+EXPORT_SYMBOL	 vmlinux 0x79ae7342	mipi_dsi_dcs_read
+EXPORT_SYMBOL	 vmlinux 0x79b0eed4	ppc_md
+EXPORT_SYMBOL	 vmlinux 0x79c65d27	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x79e22fda	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0x79fbcdd1	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x79fe6f58	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a0f0f4d	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x7a0f8a29	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a4bac71	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x7a71741f	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x7a7d38f1	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0x7a7de0d6	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x7a83e70f	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a966dcd	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa1f9dd	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0x7ab5f8c3	_insw_ns
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7aba86db	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x7ace545e	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7aeb418d	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x7afb0ff4	__put_devmap_managed_page
+EXPORT_SYMBOL	 vmlinux 0x7b00b431	of_find_net_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b245993	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x7b2c7226	uaccess_flush_key
+EXPORT_SYMBOL	 vmlinux 0x7b4b28a5	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x7b4d3a5f	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x7b630901	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0x7b75cc09	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0x7b8a8d03	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0x7b8c238b	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x7b8edc0f	dquot_release
+EXPORT_SYMBOL	 vmlinux 0x7b988254	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x7bb6d753	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0x7bbc79fe	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bd8f50d	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x7bdb61d1	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0x7bdc6218	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x7be954b0	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x7c003aef	_raw_read_lock_irq
+EXPORT_SYMBOL	 vmlinux 0x7c10b9b0	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x7c14d981	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c3f9c44	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL	 vmlinux 0x7c63a098	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0x7c6536d9	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x7c783301	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0x7c7ed6b3	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x7c867b1c	vio_disable_interrupts
+EXPORT_SYMBOL	 vmlinux 0x7c9291d1	csum_partial_copy_generic
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7cc2b8c5	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x7cd46330	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x7cdadfef	rproc_put
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cf043b1	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x7cf35220	vme_master_free
+EXPORT_SYMBOL	 vmlinux 0x7cfbe397	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d0e321b	pps_event
+EXPORT_SYMBOL	 vmlinux 0x7d21282a	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x7d2ebe95	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d5caea8	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0x7d5e1008	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x7d7b8e97	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0x7daa1615	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7dc97879	rtas_get_error_log_max
+EXPORT_SYMBOL	 vmlinux 0x7dd01c0f	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x7dd2a20d	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x7ddcb794	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df577ac	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x7dfc8277	isa_mem_base
+EXPORT_SYMBOL	 vmlinux 0x7e0a340a	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x7e2d6436	ida_free
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e52ecfc	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x7e5fada4	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x7e81b4c7	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x7eacd840	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x7ebc9d15	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0x7ed441a4	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x7ee7e49c	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0x7ef30027	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0x7ef47e09	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f035d1c	sget
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f0471b7	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x7f146b35	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x7f15690f	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0x7f1af48e	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f3f23ff	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f5bfac4	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x7f66c81e	mach_pseries
+EXPORT_SYMBOL	 vmlinux 0x7f6c853a	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x7f71fb97	xa_load
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f943e50	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x7fcd3422	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe4364c	__module_get
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x80091397	phy_disconnect
+EXPORT_SYMBOL	 vmlinux 0x800eea63	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x801add85	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x802b88df	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x802f468f	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0x8039f953	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x80608b28	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0x806893ee	mmc_wait_for_cmd
+EXPORT_SYMBOL	 vmlinux 0x806ec9b5	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x8070a663	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x807e1e33	mmc_can_discard
+EXPORT_SYMBOL	 vmlinux 0x809038cd	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0x809712ff	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x80b206a5	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x80b6646d	ps2_init
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80e2f559	validate_sp
+EXPORT_SYMBOL	 vmlinux 0x80e825a4	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x80ef304f	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x80fdfcfa	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0x810858f5	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x810e3a45	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x81188c30	match_string
+EXPORT_SYMBOL	 vmlinux 0x81533963	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0x8153627a	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x8157b33f	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x816347c6	agp_device_command
+EXPORT_SYMBOL	 vmlinux 0x81840dad	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81a07f4e	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0x81aa45ef	iput
+EXPORT_SYMBOL	 vmlinux 0x81cf93be	new_inode
+EXPORT_SYMBOL	 vmlinux 0x81d82cb6	key_unlink
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e65306	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x81e665a4	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x820ecb71	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x821559d6	__vmalloc_end
+EXPORT_SYMBOL	 vmlinux 0x821daf5e	phy_advertise_supported
+EXPORT_SYMBOL	 vmlinux 0x8237fc7a	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x824613ad	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0x82543516	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x82592ef4	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x82618c92	ata_print_version
+EXPORT_SYMBOL	 vmlinux 0x8263e61a	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x827e1fef	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x829b9c5c	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x82aaa94c	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x82bb94ac	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82cfe96f	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0x82d7f915	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x82dbd3a8	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x82e844df	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x82f56e2b	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0x8315799d	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x83408153	phy_set_max_speed
+EXPORT_SYMBOL	 vmlinux 0x834ab1ce	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0x8353eed9	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x83557405	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x836c5ea6	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x8378990d	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x837f1c90	__phy_resume
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83923385	rproc_da_to_va
+EXPORT_SYMBOL	 vmlinux 0x83956c0a	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0x83adb257	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x83ae24bb	of_device_is_big_endian
+EXPORT_SYMBOL	 vmlinux 0x83be686b	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0x83c599d5	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x83f9521c	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x841706c6	vme_irq_request
+EXPORT_SYMBOL	 vmlinux 0x84265cbb	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x842c3cfa	of_find_i2c_device_by_node
+EXPORT_SYMBOL	 vmlinux 0x842cae38	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x84477efa	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x844be359	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0x8455bbd6	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x848d372e	iowrite8
+EXPORT_SYMBOL	 vmlinux 0x849fe807	csum_and_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0x84bd69bf	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0x84cb7b9a	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x84e86e75	mmc_is_req_done
+EXPORT_SYMBOL	 vmlinux 0x84f3c134	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x851df680	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x85250ccc	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0x852b04d9	mipi_dsi_dcs_set_column_address
+EXPORT_SYMBOL	 vmlinux 0x853bca84	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x855b3b67	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x85707d24	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0x858a52a7	rproc_get_by_child
+EXPORT_SYMBOL	 vmlinux 0x8591d7d5	ledtrig_mtd_activity
+EXPORT_SYMBOL	 vmlinux 0x8597eb47	plpar_hcall
+EXPORT_SYMBOL	 vmlinux 0x85a45b0f	agp_alloc_bridge
+EXPORT_SYMBOL	 vmlinux 0x85a4cc0f	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x85b4cf2f	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85ceb024	vme_irq_free
+EXPORT_SYMBOL	 vmlinux 0x85da827c	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85ee5007	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x85f23a5e	of_scan_pci_bridge
+EXPORT_SYMBOL	 vmlinux 0x85fbc931	slhc_uncompress
+EXPORT_SYMBOL	 vmlinux 0x85fcf6fe	dma_async_tx_descriptor_init
+EXPORT_SYMBOL	 vmlinux 0x86264cd2	ipmi_platform_add
+EXPORT_SYMBOL	 vmlinux 0x862a5d79	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x863c70fd	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x8645c657	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x86471c6f	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0x8647a5b3	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x86505219	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x86938f2f	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x86b1026f	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0x86b18094	complete
+EXPORT_SYMBOL	 vmlinux 0x86b25850	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x86bd00b2	agp_generic_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x86e2b555	pnv_cxl_release_hwirqs
+EXPORT_SYMBOL	 vmlinux 0x86e491ed	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0x86e63d65	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0x86f932c6	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fe0aef	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x8723660a	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x872a5283	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x87356ab8	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0x873a53ea	__arch_hweight8
+EXPORT_SYMBOL	 vmlinux 0x8756c914	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0x876c2949	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0x8776b29a	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0x878469bd	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x878b02be	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0x879a65db	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x879e2daa	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x87a031e1	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87c8f845	filp_close
+EXPORT_SYMBOL	 vmlinux 0x87cef12a	kobject_put
+EXPORT_SYMBOL	 vmlinux 0x87dfa009	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x87fe5707	vme_bus_type
+EXPORT_SYMBOL	 vmlinux 0x880aba65	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x881bad5e	phy_mipi_dphy_config_validate
+EXPORT_SYMBOL	 vmlinux 0x881f6004	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x882bdad7	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x88552fe8	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0x885944bd	vme_slot_num
+EXPORT_SYMBOL	 vmlinux 0x885ab4e6	rproc_shutdown
+EXPORT_SYMBOL	 vmlinux 0x885b1ea1	phy_connect_direct
+EXPORT_SYMBOL	 vmlinux 0x8873ade5	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x8883845a	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0x8888f1fe	xxh32
+EXPORT_SYMBOL	 vmlinux 0x88993295	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0x889acc51	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0x88abb78b	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x88b64a6d	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x88b88072	pnv_cxl_alloc_hwirq_ranges
+EXPORT_SYMBOL	 vmlinux 0x88bf96b9	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x88c02771	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88ff3cd0	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x8912f161	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0x89162368	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x891def26	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0x892a5888	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x89387440	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0x895577b0	numa_cpu_lookup_table
+EXPORT_SYMBOL	 vmlinux 0x89694853	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0x89797060	_raw_read_lock
+EXPORT_SYMBOL	 vmlinux 0x89898459	kvm_irq_bypass
+EXPORT_SYMBOL	 vmlinux 0x8989d947	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x89918b87	__free_pages
+EXPORT_SYMBOL	 vmlinux 0x899ad970	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0x89a01069	of_count_phandle_with_args
+EXPORT_SYMBOL	 vmlinux 0x89a72dc3	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x89a9ff22	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89cf66f7	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x89d6cbe0	__put_cred
+EXPORT_SYMBOL	 vmlinux 0x89e044fa	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x89fd9fe5	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x89feaf92	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a2b6353	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0x8a3b1f5d	mdiobus_scan
+EXPORT_SYMBOL	 vmlinux 0x8a3f70ea	tty_name
+EXPORT_SYMBOL	 vmlinux 0x8a47043d	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL	 vmlinux 0x8a54050b	__pud_cache_index
+EXPORT_SYMBOL	 vmlinux 0x8a635f39	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x8a668b28	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x8a6af65c	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x8a7c03cc	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a87d8f3	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x8a949af6	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0x8a975019	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8ab16f60	mdiobus_read
+EXPORT_SYMBOL	 vmlinux 0x8abc5baa	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ac3bb12	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x8ac743de	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x8ac792be	uart_get_divisor
+EXPORT_SYMBOL	 vmlinux 0x8ad39905	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x8afd636b	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b06c689	vfio_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x8b0a1014	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x8b17135d	iget_locked
+EXPORT_SYMBOL	 vmlinux 0x8b23ca53	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x8b46ab26	pnv_cxl_get_irq_count
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b68e337	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0x8b7e70f1	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b8d4287	devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b95ba41	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bc6551b	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0x8bc9807e	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x8bd77fb4	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0x8bded847	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8be1eae5	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x8c100f2a	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0x8c23fb89	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x8c531ee8	vme_master_mmap
+EXPORT_SYMBOL	 vmlinux 0x8c587f95	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x8c6e045a	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x8c8335c6	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0x8c8e5243	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x8cb2f983	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0x8cba4439	mmc_retune_timer_stop
+EXPORT_SYMBOL	 vmlinux 0x8cbd3d93	srp_rport_get
+EXPORT_SYMBOL	 vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL	 vmlinux 0x8ce3c11b	devfreq_monitor_start
+EXPORT_SYMBOL	 vmlinux 0x8cfa903e	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0x8cfe5db9	abx500_startup_irq_enabled
+EXPORT_SYMBOL	 vmlinux 0x8d0aef6d	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x8d0d11e5	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x8d15b018	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0x8d198c30	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x8d2753bc	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x8d2e00a3	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0x8d366670	srp_timed_out
+EXPORT_SYMBOL	 vmlinux 0x8d4f648e	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d58d2f8	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0x8d6381bf	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x8d63d8af	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x8d6a2b02	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x8d72be02	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d85234d	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x8d8a95e0	rproc_elf_get_boot_addr
+EXPORT_SYMBOL	 vmlinux 0x8d9164dc	bio_init
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de6d8d8	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x8df1bf74	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x8df7bf79	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0x8df92f66	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8e10a040	ppp_register_channel
+EXPORT_SYMBOL	 vmlinux 0x8e158149	send_sig
+EXPORT_SYMBOL	 vmlinux 0x8e1ced29	simple_link
+EXPORT_SYMBOL	 vmlinux 0x8e25732f	rtc_add_group
+EXPORT_SYMBOL	 vmlinux 0x8e6ddd89	i8042_remove_filter
+EXPORT_SYMBOL	 vmlinux 0x8e78f1f7	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x8e7dede8	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x8e7f09f1	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x8e860127	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0x8e945399	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x8e97cbda	irq_stat
+EXPORT_SYMBOL	 vmlinux 0x8eaf494f	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x8eb823d9	mdio_device_remove
+EXPORT_SYMBOL	 vmlinux 0x8eba8e4f	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x8ebff097	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x8ec04552	_raw_spin_trylock_bh
+EXPORT_SYMBOL	 vmlinux 0x8ec90cd2	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x8ecfba0e	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x8ed6f04d	devm_nvmem_cell_put
+EXPORT_SYMBOL	 vmlinux 0x8edd1fbc	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x8ee3f3e5	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x8eec5ace	nd_region_acquire_lane
+EXPORT_SYMBOL	 vmlinux 0x8eedaee8	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x8ef1d8eb	bdput
+EXPORT_SYMBOL	 vmlinux 0x8f01afd6	twl6030_interrupt_mask
+EXPORT_SYMBOL	 vmlinux 0x8f0e1292	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x8f20b75d	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0x8f28fb40	inet_release
+EXPORT_SYMBOL	 vmlinux 0x8f34223e	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x8f43d024	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x8f50044b	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x8f68da79	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x8f697fff	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x8f746257	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x8f977f37	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8fa9bbed	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fe903bb	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x9002ce51	vme_bus_error_handler
+EXPORT_SYMBOL	 vmlinux 0x900e2a7b	blk_post_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0x901edf8f	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x901f3b22	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0x9023361b	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x902c7456	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x902d8722	vme_slave_get
+EXPORT_SYMBOL	 vmlinux 0x903ac969	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x9040fb2a	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x9053bf33	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x905695ab	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x90576ec4	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x906f3bb7	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0x90705fb5	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x907729d0	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x9077f066	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x908a9ea4	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x909388bf	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0x90aad2bb	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x90af11eb	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0x90aff22d	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0x90b2c1c7	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x90c1bca3	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x90c5dc4a	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0x90d170f0	of_node_put
+EXPORT_SYMBOL	 vmlinux 0x90d2af78	phy_attach
+EXPORT_SYMBOL	 vmlinux 0x90d6de9d	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0x90e6fe47	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x90f6ce7d	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x911334f0	devm_devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x9124b38a	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x912ccdf8	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x9137d965	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0x913d716d	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x91446152	mmput_async
+EXPORT_SYMBOL	 vmlinux 0x914d03d3	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x915e1208	tb_ticks_per_usec
+EXPORT_SYMBOL	 vmlinux 0x9166fada	strncpy
+EXPORT_SYMBOL	 vmlinux 0x916b2066	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0x91799bd3	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x917d667d	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x917f8970	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9187fc5f	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x9196e76d	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0x919aacbc	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x919d1163	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x919f2595	register_console
+EXPORT_SYMBOL	 vmlinux 0x91a1f128	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b8bcbf	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x91bf14f7	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x91d3e100	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x91dc1888	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x91e1d5e3	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0x91f98199	of_get_ibm_chip_id
+EXPORT_SYMBOL	 vmlinux 0x91fe6ce4	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x9200c5c1	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0x9208d88b	config_group_init
+EXPORT_SYMBOL	 vmlinux 0x921083fc	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x921b2163	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0x9225a1df	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL	 vmlinux 0x92465b4c	bio_put
+EXPORT_SYMBOL	 vmlinux 0x924903e0	of_find_node_by_name
+EXPORT_SYMBOL	 vmlinux 0x9258c776	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x925ddeb9	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x927adcdc	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x92837aba	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0x9291cd3b	memdup_user
+EXPORT_SYMBOL	 vmlinux 0x92935083	bio_chain
+EXPORT_SYMBOL	 vmlinux 0x92b9b180	slash_name
+EXPORT_SYMBOL	 vmlinux 0x92c9c7d8	dma_async_device_register
+EXPORT_SYMBOL	 vmlinux 0x92cddc66	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x92e92a9c	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x92f270e7	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0x92fa5abb	vme_lm_detach
+EXPORT_SYMBOL	 vmlinux 0x93022ba6	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL	 vmlinux 0x93095812	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x93158a33	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0x9315a3f3	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x93399dd1	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0x934e72e9	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x9350d006	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x93512d60	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0x93532d87	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x937333d6	get_agp_version
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x93899bd1	ppp_register_compressor
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93b49b7c	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x93c660c9	rfkill_alloc
+EXPORT_SYMBOL	 vmlinux 0x93cd000d	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0x93d45921	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x93e3db22	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0x93f61651	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x93faee97	of_graph_get_next_endpoint
+EXPORT_SYMBOL	 vmlinux 0x9401ec0b	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x943a5be2	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x943dc80f	csum_and_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x945c6487	devm_extcon_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x94667988	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x94704367	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x9470658b	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x9485e972	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x949dbd40	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x94a5fd84	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x94ac5ab4	init_task
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94f2f7e3	phy_stop
+EXPORT_SYMBOL	 vmlinux 0x94feb22e	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x9514151a	_mcount
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x9545d4b8	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x9578cec1	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x9594ef8e	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x95b3bf59	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x95b7ffc3	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x95c2abb6	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x960975e8	mipi_dsi_dcs_set_display_off
+EXPORT_SYMBOL	 vmlinux 0x96400866	genphy_read_status
+EXPORT_SYMBOL	 vmlinux 0x96460917	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x966009eb	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x96636ecf	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x96659eeb	ptp_clock_index
+EXPORT_SYMBOL	 vmlinux 0x966ee8cb	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x96835445	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x96848186	scnprintf
+EXPORT_SYMBOL	 vmlinux 0x969987fc	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0x96a88d3e	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x96a9e480	mipi_dsi_dcs_set_pixel_format
+EXPORT_SYMBOL	 vmlinux 0x96af660b	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0x96b29254	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x96b3d578	dmaengine_get_unmap_data
+EXPORT_SYMBOL	 vmlinux 0x96bcdd38	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x96bf23aa	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96c8269c	pm860x_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96e7390d	mipi_dsi_dcs_set_tear_on
+EXPORT_SYMBOL	 vmlinux 0x96ed875f	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x970f8d78	bio_reset
+EXPORT_SYMBOL	 vmlinux 0x971a6172	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0x971ec27c	hvc_put_chars
+EXPORT_SYMBOL	 vmlinux 0x9720ab71	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x9729571f	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x973c09e5	__pgd_index_size
+EXPORT_SYMBOL	 vmlinux 0x973cf1d7	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0x9740b624	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x9746eb89	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x97788ed3	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x977c28ee	d_delete
+EXPORT_SYMBOL	 vmlinux 0x977e7487	mipi_dsi_dcs_get_display_brightness
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL	 vmlinux 0x97a57333	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97b44b64	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0x97b733a7	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97c157d2	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0x97f03d6f	vio_cmo_entitlement_update
+EXPORT_SYMBOL	 vmlinux 0x9810c02a	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x981bae92	of_find_all_nodes
+EXPORT_SYMBOL	 vmlinux 0x9829fc11	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0x98432578	ps2_drain
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x984d7ac4	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x985b14fd	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x9863b656	radix__flush_all_mm
+EXPORT_SYMBOL	 vmlinux 0x9864b1d4	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0x988022e5	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x988bdf66	mipi_dsi_device_unregister
+EXPORT_SYMBOL	 vmlinux 0x98b42ad0	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98ca8d8f	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x98cf60b3	strlen
+EXPORT_SYMBOL	 vmlinux 0x98e2f976	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x98ee957e	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x98f48f41	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x98f7be07	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x990c2561	mmc_can_erase
+EXPORT_SYMBOL	 vmlinux 0x99275f2b	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0x9939eba0	backlight_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x9943303b	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x9946b298	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x9947d196	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9957724e	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x995dd1ed	of_get_compatible_child
+EXPORT_SYMBOL	 vmlinux 0x9971dde2	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99a916a3	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x99afe916	_raw_write_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0x99c08846	tso_start
+EXPORT_SYMBOL	 vmlinux 0x99c13742	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x99c24cf3	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x99cab4ec	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x99cdeb9d	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99ed4f2f	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x9a0c3a18	vme_unregister_error_handler
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a253813	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0x9a30bc6a	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0x9a39ed88	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x9a4667f8	of_phy_is_fixed_link
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a618773	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0x9a73b032	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x9a78b907	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x9a976e52	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x9aa85f13	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x9aac7841	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9aafb826	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x9ab7a6ae	devm_ioport_map
+EXPORT_SYMBOL	 vmlinux 0x9abc634e	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0x9ac5580c	vme_master_request
+EXPORT_SYMBOL	 vmlinux 0x9ac9a4b6	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x9ace95a6	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0x9ad8a1c9	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x9ade72ff	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0x9ae57f22	mmc_flush_cache
+EXPORT_SYMBOL	 vmlinux 0x9aeda143	of_find_i2c_adapter_by_node
+EXPORT_SYMBOL	 vmlinux 0x9b0a94e1	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x9b1ed16e	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b3656e8	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x9b420478	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0x9b65ffed	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0x9b6885c7	of_get_address
+EXPORT_SYMBOL	 vmlinux 0x9b6f8868	dump_page
+EXPORT_SYMBOL	 vmlinux 0x9b726d61	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x9b94009b	of_io_request_and_map
+EXPORT_SYMBOL	 vmlinux 0x9bb19b7f	mipi_dsi_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x9bc6a716	mntget
+EXPORT_SYMBOL	 vmlinux 0x9bc8a832	__debugger_break_match
+EXPORT_SYMBOL	 vmlinux 0x9bf2a740	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x9c1b132c	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x9c269e69	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x9c3222d7	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0x9c65558f	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0x9c7755af	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x9c782fc2	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0x9c7ec377	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x9c8d2d26	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x9c942adc	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0x9cab34a6	rfkill_set_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0x9ccf7171	vme_dma_pci_attribute
+EXPORT_SYMBOL	 vmlinux 0x9cd8140e	devfreq_unregister_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce2be06	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0x9cf235d3	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x9d063038	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d14983a	ppc_enable_pmcs
+EXPORT_SYMBOL	 vmlinux 0x9d1e125e	max8998_bulk_write
+EXPORT_SYMBOL	 vmlinux 0x9d31247f	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0x9d335280	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0x9d3d7e78	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0x9d5a28ed	mmc_gpio_get_cd
+EXPORT_SYMBOL	 vmlinux 0x9d5ac74b	softnet_data
+EXPORT_SYMBOL	 vmlinux 0x9d7ce8dd	_raw_spin_trylock
+EXPORT_SYMBOL	 vmlinux 0x9d90a6e7	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x9d94648e	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x9d96a9b0	mmu_hash_ops
+EXPORT_SYMBOL	 vmlinux 0x9d97cb9c	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x9d9841a1	genphy_setup_forced
+EXPORT_SYMBOL	 vmlinux 0x9d99b817	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0x9da2d6bd	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dd8dd57	load_fp_state
+EXPORT_SYMBOL	 vmlinux 0x9dd93a44	touch_atime
+EXPORT_SYMBOL	 vmlinux 0x9de706b5	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x9dece329	vme_register_bridge
+EXPORT_SYMBOL	 vmlinux 0x9df8c46f	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x9e08e067	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0f7178	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e19c1e8	agp_allocate_memory
+EXPORT_SYMBOL	 vmlinux 0x9e1b6e34	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0x9e37f923	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x9e39d397	timer_interrupt
+EXPORT_SYMBOL	 vmlinux 0x9e3c314e	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e4661ec	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e97375d	rtas_busy_delay_time
+EXPORT_SYMBOL	 vmlinux 0x9e97ed55	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x9e9b8119	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ea53d7f	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9eacf8a5	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x9ec0e639	twl6030_interrupt_unmask
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9ed978de	vme_lm_set
+EXPORT_SYMBOL	 vmlinux 0x9edf56f9	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x9eff1204	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0x9f252029	agp_generic_insert_memory
+EXPORT_SYMBOL	 vmlinux 0x9f290350	kdb_current_task
+EXPORT_SYMBOL	 vmlinux 0x9f3ce762	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0x9f419948	nd_pfn_validate
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f4b29ff	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0x9f4f9c3e	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f534387	of_phy_get_and_connect
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f67c8b7	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x9f853434	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x9f92baae	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa4a68a	i8042_install_filter
+EXPORT_SYMBOL	 vmlinux 0x9fa55ff3	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fc4f9fa	kvmppc_hv_find_lock_hpte
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ff2f1be	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa0022a3e	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0xa01157b0	devm_devfreq_register_opp_notifier
+EXPORT_SYMBOL	 vmlinux 0xa0262284	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0xa03f89ee	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0xa041751a	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa057df8f	twl_set_regcache_bypass
+EXPORT_SYMBOL	 vmlinux 0xa06ee35a	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0xa073245b	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0xa07a37f0	memchr
+EXPORT_SYMBOL	 vmlinux 0xa07e5330	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa0929301	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0c6208f	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0dfa8e8	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0xa0e7b422	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa0ea087a	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa122850b	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa129176f	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0xa144a5a5	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0xa14b221d	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xa1506ee7	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0xa156f2fa	phy_write_paged
+EXPORT_SYMBOL	 vmlinux 0xa15f86e9	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0xa16393b5	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0xa172dc84	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0xa176baa1	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0xa17efe33	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0xa1be1aeb	of_translate_address
+EXPORT_SYMBOL	 vmlinux 0xa1c0bf96	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1dee5f1	frame_vector_create
+EXPORT_SYMBOL	 vmlinux 0xa1e1958b	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xa1eaa2cd	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xa1f6df5e	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0xa2014a60	mipi_dsi_dcs_get_pixel_format
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa21b3654	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0xa224b9a8	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa2742587	uart_remove_one_port
+EXPORT_SYMBOL	 vmlinux 0xa2813c1c	node_data
+EXPORT_SYMBOL	 vmlinux 0xa2843df4	seq_write
+EXPORT_SYMBOL	 vmlinux 0xa2892ea4	nvdimm_namespace_disk_name
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa28fb0da	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xa2b2411a	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0xa2bbed37	crash_shutdown_register
+EXPORT_SYMBOL	 vmlinux 0xa2c3832e	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0xa2e1af86	vfio_unpin_pages
+EXPORT_SYMBOL	 vmlinux 0xa2ee8a8a	seq_read
+EXPORT_SYMBOL	 vmlinux 0xa2f888cc	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xa310264b	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0xa320ab35	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xa337cba8	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0xa34dd4c1	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xa34ea576	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xa35058b4	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xa366ff8d	xa_get_order
+EXPORT_SYMBOL	 vmlinux 0xa379da3c	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0xa381a6b5	hmm_mirror_unregister
+EXPORT_SYMBOL	 vmlinux 0xa38e691a	ioremap_bot
+EXPORT_SYMBOL	 vmlinux 0xa3904412	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xa39b4cf2	udelay
+EXPORT_SYMBOL	 vmlinux 0xa3a0c1ec	of_phy_connect
+EXPORT_SYMBOL	 vmlinux 0xa3bcfaa1	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0xa3bff7b9	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xa3c5110a	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0xa3cefaa0	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0xa3d02275	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0xa3ddcec7	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0xa3df2606	i2c_verify_client
+EXPORT_SYMBOL	 vmlinux 0xa427f469	radix__local_flush_tlb_mm
+EXPORT_SYMBOL	 vmlinux 0xa446e267	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0xa4608726	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xa471c1df	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0xa48dd642	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xa497367c	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0xa498eb53	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0xa49a9b46	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL	 vmlinux 0xa4bb4a13	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL	 vmlinux 0xa4df3406	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0xa4faa287	of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xa4ff8b9a	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0xa500fa1b	da903x_query_status
+EXPORT_SYMBOL	 vmlinux 0xa5028967	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0xa515a377	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0xa5202e8b	seq_open
+EXPORT_SYMBOL	 vmlinux 0xa53d4f45	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xa5462545	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0xa5510204	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa557220e	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa55c950f	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xa57cfb5d	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xa5956abe	ioread64_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xa59c01ea	mmc_can_gpio_cd
+EXPORT_SYMBOL	 vmlinux 0xa5a107b5	page_mapping
+EXPORT_SYMBOL	 vmlinux 0xa5ac3e33	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa5ae26b4	mmc_card_is_blockaddr
+EXPORT_SYMBOL	 vmlinux 0xa5d9103b	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0xa5ee3edd	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xa5f3b683	mfd_cell_disable
+EXPORT_SYMBOL	 vmlinux 0xa5f5c38b	rio_query_mport
+EXPORT_SYMBOL	 vmlinux 0xa5f65b2e	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xa603182f	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0xa605be55	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xa60775fd	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0xa6087a5e	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0xa61998a2	migrate_vma_pages
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa6269d0f	of_phy_attach
+EXPORT_SYMBOL	 vmlinux 0xa633aa73	rproc_remove_subdev
+EXPORT_SYMBOL	 vmlinux 0xa6364b78	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xa636a5d9	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0xa637b8df	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0xa6579f21	__pud_val_bits
+EXPORT_SYMBOL	 vmlinux 0xa65972b8	_memcpy_toio
+EXPORT_SYMBOL	 vmlinux 0xa65f8102	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0xa66aec7f	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xa6710108	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa697d0d5	pnv_pci_get_phb_node
+EXPORT_SYMBOL	 vmlinux 0xa69e3d41	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0xa7008ff5	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xa702b9d6	clear_user_page
+EXPORT_SYMBOL	 vmlinux 0xa7091d53	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0xa72bb7f3	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0xa73a3cdb	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xa73c6b11	skb_dump
+EXPORT_SYMBOL	 vmlinux 0xa747d63c	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa75b3706	pseries_enable_reloc_on_exc
+EXPORT_SYMBOL	 vmlinux 0xa76271a3	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0xa770d758	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0xa77b1ed6	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa7851378	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa79bff2d	hpage_shift
+EXPORT_SYMBOL	 vmlinux 0xa7a56657	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xa7a8a1d0	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xa7c74467	sock_register
+EXPORT_SYMBOL	 vmlinux 0xa7caaddb	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0xa7d869f6	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xa7d98712	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7fd968e	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xa8099bb3	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0xa821c0a4	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0xa82b6a33	bio_endio
+EXPORT_SYMBOL	 vmlinux 0xa82beb02	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0xa83995ed	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0xa83debf8	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa864c525	nvdimm_revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa86bb763	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0xa8751e17	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0xa8896319	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xa88dd6dc	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0xa89ca6a5	import_iovec
+EXPORT_SYMBOL	 vmlinux 0xa8a7f129	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0xa8abaa94	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xa8ae8873	igrab
+EXPORT_SYMBOL	 vmlinux 0xa8dc117c	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xa8dd4fb4	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0xa8e32b59	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0xa8f5ec3d	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa9043f54	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xa909018c	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa90e85ed	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0xa916b694	strnlen
+EXPORT_SYMBOL	 vmlinux 0xa94640bb	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0xa955aaf5	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa9699339	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xa9734976	migrate_vma_finalize
+EXPORT_SYMBOL	 vmlinux 0xa99b39c2	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xa9a01156	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0xa9a83ca1	serio_unregister_child_port
+EXPORT_SYMBOL	 vmlinux 0xa9c01d9c	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0xa9d6922e	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xa9dffce5	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xa9f44bc2	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xaa0d4744	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xaa173779	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xaa3f6f04	radix__flush_tlb_kernel_range
+EXPORT_SYMBOL	 vmlinux 0xaa56540e	serio_interrupt
+EXPORT_SYMBOL	 vmlinux 0xaa56d661	current_time
+EXPORT_SYMBOL	 vmlinux 0xaa5dbc4f	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0xaa6e4df5	_raw_write_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xaa6f23ad	rfkill_get_led_trigger_name
+EXPORT_SYMBOL	 vmlinux 0xaa8d5a86	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xaa9179c4	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0xaaae129d	pm860x_reg_read
+EXPORT_SYMBOL	 vmlinux 0xaac604bd	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0xaac706bd	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaae01146	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xaae580c3	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0xaaed04fd	memcpy_page_flushcache
+EXPORT_SYMBOL	 vmlinux 0xaaf70d66	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab14e3f9	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0xab2fb920	__put_page
+EXPORT_SYMBOL	 vmlinux 0xab3059b3	update_region
+EXPORT_SYMBOL	 vmlinux 0xab345371	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0xab36743a	i2c_del_driver
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3b75ea	vme_dma_pattern_attribute
+EXPORT_SYMBOL	 vmlinux 0xab5a1742	seq_path
+EXPORT_SYMBOL	 vmlinux 0xab6056b9	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab6f70c3	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab7dd7a3	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xab856b76	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0xab86bf03	devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xab8ec1d7	phy_attached_print
+EXPORT_SYMBOL	 vmlinux 0xab949705	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac26b820	_raw_write_lock
+EXPORT_SYMBOL	 vmlinux 0xac28d708	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xac2d2b44	to_nd_dax
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac430423	__pmd_val_bits
+EXPORT_SYMBOL	 vmlinux 0xac4c32d7	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0xac5f5658	vc_resize
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac75d85d	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xac930a61	key_put
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac96ac8a	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb5a228	commit_creds
+EXPORT_SYMBOL	 vmlinux 0xacb61a44	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0xacb913ca	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0xacbb50f4	agp3_generic_tlbflush
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xacd4b216	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad017bc6	of_get_child_by_name
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad15c5db	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xad1868d7	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xad1a097f	dev_close
+EXPORT_SYMBOL	 vmlinux 0xad1c7c9b	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0xad1fed66	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xad201b5b	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0xad50cebb	i8253_lock
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad7beabe	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xad80cf2e	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad95495a	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0xada9ba3a	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadafbe64	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xadbeed61	mipi_dsi_packet_format_is_long
+EXPORT_SYMBOL	 vmlinux 0xadc044b7	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 vmlinux 0xadcba50b	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0xadcef378	blk_pre_runtime_suspend
+EXPORT_SYMBOL	 vmlinux 0xadd53bf9	mipi_dsi_set_maximum_return_packet_size
+EXPORT_SYMBOL	 vmlinux 0xadf84e79	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xadfb677b	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae1244c4	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xae13b6b5	blk_pre_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xae153719	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0xae1def0d	agp_generic_mask_memory
+EXPORT_SYMBOL	 vmlinux 0xae25c141	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0xae2a6451	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae3d7d4d	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0xae4c8439	__pte_table_size
+EXPORT_SYMBOL	 vmlinux 0xae51b9a9	mipi_dsi_dcs_set_tear_scanline
+EXPORT_SYMBOL	 vmlinux 0xae53ec12	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0xae545f06	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xae5fd402	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xae70e413	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xae72e71d	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0xae8535d8	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0xaeb2c6c4	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0xaec3cbef	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0xaeebb7e3	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0xaefc2e83	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xaefcf10e	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0xaeffe3f3	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0xaf01db3b	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0xaf063510	_raw_spin_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xaf277207	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xaf28664c	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0xaf31303f	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0xaf33524e	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xaf3d588b	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf6cd513	mfd_cell_enable
+EXPORT_SYMBOL	 vmlinux 0xafa51bd0	make_kuid
+EXPORT_SYMBOL	 vmlinux 0xafaa4068	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0xaff7f6c1	__debugger_bpt
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb01e4d41	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xb02ace14	mdiobus_free
+EXPORT_SYMBOL	 vmlinux 0xb02f034f	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0xb052ecf7	uart_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xb0573d57	skb_put
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb09648f7	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0xb09649aa	d_add
+EXPORT_SYMBOL	 vmlinux 0xb0a0d449	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0xb0a0da0c	rational_best_approximation
+EXPORT_SYMBOL	 vmlinux 0xb0a136bc	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0xb0ab9ff1	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0xb0b98685	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xb0c02832	agp_alloc_page_array
+EXPORT_SYMBOL	 vmlinux 0xb0ccb36a	kernel_read
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0eaff51	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0xb0f389ee	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb111b575	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0xb114fe9a	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0xb115ec37	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xb1169a10	mdiobus_is_registered_device
+EXPORT_SYMBOL	 vmlinux 0xb122a60e	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xb12316a6	of_get_parent
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb13f7a21	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xb147a855	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb14e97c8	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0xb15bd8fa	tb_ticks_per_sec
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb19d55df	fsl_upm_run_pattern
+EXPORT_SYMBOL	 vmlinux 0xb1a553d0	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0xb1a7b2c3	agp_create_memory
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1e12d81	krealloc
+EXPORT_SYMBOL	 vmlinux 0xb1f00004	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0xb2034d43	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xb21a9f51	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xb21f92f9	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xb22933b7	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb24d2165	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0xb283045d	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xb2a10c95	profile_pc
+EXPORT_SYMBOL	 vmlinux 0xb2acc4cd	__msr_check_and_clear
+EXPORT_SYMBOL	 vmlinux 0xb2acd9e5	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b1ce25	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0xb2b398c5	mipi_dsi_dcs_get_power_mode
+EXPORT_SYMBOL	 vmlinux 0xb2ca936a	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0xb2d33a59	page_readlink
+EXPORT_SYMBOL	 vmlinux 0xb2dc434c	shared_processor
+EXPORT_SYMBOL	 vmlinux 0xb2e9ed57	cpufreq_generic_suspend
+EXPORT_SYMBOL	 vmlinux 0xb2f35c6a	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb2f6098a	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30b9822	vme_master_set
+EXPORT_SYMBOL	 vmlinux 0xb30ee96c	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb350f6f2	dqstats
+EXPORT_SYMBOL	 vmlinux 0xb367ee7a	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb39d8539	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0xb3adde77	eeh_dev_release
+EXPORT_SYMBOL	 vmlinux 0xb3bbbb2f	cdc_parse_cdc_header
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3daabe9	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0xb3f548ad	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb400cd08	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xb40656c1	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xb40bb685	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xb40f4212	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0xb40fa97f	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xb417f082	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb42daf14	init_net
+EXPORT_SYMBOL	 vmlinux 0xb438ec68	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xb4424b2b	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0xb44ad4b3	_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0xb457a520	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xb4656eb4	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0xb46834cf	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xb473e2c2	lockref_get
+EXPORT_SYMBOL	 vmlinux 0xb47be20e	pseries_disable_reloc_on_exc
+EXPORT_SYMBOL	 vmlinux 0xb482f881	mdiobus_read_nested
+EXPORT_SYMBOL	 vmlinux 0xb48c9194	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb48fdc5d	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4d92883	pps_unregister_source
+EXPORT_SYMBOL	 vmlinux 0xb4d97537	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0xb4dcd529	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xb4e2adfa	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0xb4e42707	dma_sync_wait
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb50298b5	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0xb502c83d	agp_generic_enable
+EXPORT_SYMBOL	 vmlinux 0xb5127cc6	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xb52b77e1	mmc_cqe_post_req
+EXPORT_SYMBOL	 vmlinux 0xb538e51b	pnv_phb_to_cxl_mode
+EXPORT_SYMBOL	 vmlinux 0xb539b516	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0xb5499bd7	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0xb55d6b40	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xb565c12e	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xb568fa22	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb578cfcf	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0xb5794d19	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0xb57c175d	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5a62a11	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5b02089	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0xb5bb0043	max8925_set_bits
+EXPORT_SYMBOL	 vmlinux 0xb5ca1b85	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xb5e1577a	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5f2c49a	wireless_spy_update
+EXPORT_SYMBOL	 vmlinux 0xb5fb05b4	mmc_retune_pause
+EXPORT_SYMBOL	 vmlinux 0xb61ecfd8	mipi_dsi_attach
+EXPORT_SYMBOL	 vmlinux 0xb6218f5b	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb6446437	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xb646f606	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0xb6477213	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xb65408c9	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0xb66d0a0f	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb690d5b0	finish_open
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb69a49bd	vme_slave_request
+EXPORT_SYMBOL	 vmlinux 0xb6a1cd39	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6ba3353	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xb6c58599	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0xb6c6f194	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0xb6dca954	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xb6e18921	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb7043a39	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0xb720e1ab	mem_section
+EXPORT_SYMBOL	 vmlinux 0xb7344a4b	mmc_of_parse_voltage
+EXPORT_SYMBOL	 vmlinux 0xb76aa110	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0xb78990bb	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb79cd2d4	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xb7bb471d	dma_async_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xb7bc6adc	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0xb7bea090	arch_free_page
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7cc0c15	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0xb7d2ef3d	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0xb7d661f0	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0xb7fa6c4c	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0xb80b34db	of_read_drc_info_cell
+EXPORT_SYMBOL	 vmlinux 0xb80c6997	clear_inode
+EXPORT_SYMBOL	 vmlinux 0xb824d63c	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0xb83129db	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0xb832e127	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0xb833722b	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0xb8342e28	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0xb836b6a6	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0xb83b9a23	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0xb83e65c9	devfreq_monitor_stop
+EXPORT_SYMBOL	 vmlinux 0xb85c993f	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0xb86dede0	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xb872b098	serio_close
+EXPORT_SYMBOL	 vmlinux 0xb872c141	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xb87b8323	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xb895d69c	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8b9f817	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0xb8cedda2	of_node_name_prefix
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb92cadb7	ihold
+EXPORT_SYMBOL	 vmlinux 0xb93039d1	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xb939a77b	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb958f599	dump_align
+EXPORT_SYMBOL	 vmlinux 0xb98d87fc	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xb994214a	d_make_root
+EXPORT_SYMBOL	 vmlinux 0xb99c0e57	vme_dma_list_exec
+EXPORT_SYMBOL	 vmlinux 0xb9c74c43	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0xb9d247f4	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xb9dab2c0	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xb9e09d04	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xb9ee149b	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0xb9ffb203	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0xba031e8e	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xba1008c8	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0xba2563c1	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0xba2581fb	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xba3197ce	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba50bb91	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xba5b2afc	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0xba691c85	_insb
+EXPORT_SYMBOL	 vmlinux 0xba6df832	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0xba7c0f67	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xba966987	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0xba9c0365	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0xbaa29f40	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xbac240b0	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0xbac3ff0c	phy_set_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xbad812f4	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0xbae145bc	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0xbafc0261	vio_enable_interrupts
+EXPORT_SYMBOL	 vmlinux 0xbafe299d	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xbb04f989	backlight_force_update
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb18fb1e	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb3e9e90	__pmd_table_size
+EXPORT_SYMBOL	 vmlinux 0xbb4f4766	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xbb5662b0	is_nd_pfn
+EXPORT_SYMBOL	 vmlinux 0xbb5860a5	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xbb76f242	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xbb782d91	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xbb91b171	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0xbb95d754	__mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xbbc6d62a	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0xbbe80fdb	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xbc1a4e86	hmm_mirror_register
+EXPORT_SYMBOL	 vmlinux 0xbc26b587	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0xbc316de4	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0xbc982b06	eeh_subsystem_flags
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcb39f95	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0xbcbb85c0	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL	 vmlinux 0xbceb9aeb	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xbcf150f9	xor_altivec_5
+EXPORT_SYMBOL	 vmlinux 0xbcf5496c	mmc_retune_release
+EXPORT_SYMBOL	 vmlinux 0xbd007964	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xbd19262e	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xbd239332	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0xbd276c01	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xbd27fc9d	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0xbd342122	pid_task
+EXPORT_SYMBOL	 vmlinux 0xbd462b55	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xbd4ae979	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0xbd580f5a	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0xbd5b990b	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0xbd6841d4	crc16
+EXPORT_SYMBOL	 vmlinux 0xbd6deef1	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0xbd74779b	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0xbd821cc8	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0xbd8bbf22	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xbda02ddc	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xbda5585d	mipi_dsi_dcs_set_display_brightness_large
+EXPORT_SYMBOL	 vmlinux 0xbdaa215b	of_platform_bus_probe
+EXPORT_SYMBOL	 vmlinux 0xbdb4692a	flush_icache_user_range
+EXPORT_SYMBOL	 vmlinux 0xbe1cdbdb	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0xbe466772	param_get_short
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe69776a	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xbeaa0c2b	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0xbeb0e727	input_free_device
+EXPORT_SYMBOL	 vmlinux 0xbeb450eb	rc5t583_ext_power_req_config
+EXPORT_SYMBOL	 vmlinux 0xbeb49e39	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xbeb7c5b7	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0xbedede13	serio_open
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbeec19e7	of_mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbf12de65	inc_node_state
+EXPORT_SYMBOL	 vmlinux 0xbf1809e9	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0xbf1efe71	phy_loopback
+EXPORT_SYMBOL	 vmlinux 0xbf2408cd	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0xbf3824c4	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xbf596f45	_insl_ns
+EXPORT_SYMBOL	 vmlinux 0xbf5ff9d6	stop_tty
+EXPORT_SYMBOL	 vmlinux 0xbf7a7cb3	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xbf99ddae	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0xbf9a4d45	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xbf9a50f5	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfa134eb	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xbfb22041	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0xbfb8b0b7	_raw_read_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL	 vmlinux 0xbfd9f958	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0xbfdbf48e	rproc_boot
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbfef0500	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0xbff133b3	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0xbff8182c	plpar_hcall_norets
+EXPORT_SYMBOL	 vmlinux 0xbffa35b2	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0xc019de00	fbcon_set_tileops
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc040c3b7	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0xc042de03	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xc05de296	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xc06f6a71	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL	 vmlinux 0xc07833eb	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc07d56f4	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b346d8	opal_nx_coproc_init
+EXPORT_SYMBOL	 vmlinux 0xc0bca0f1	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xc0bf4b60	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xc0c6a625	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0xc0d6d78f	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xc0ef5200	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc1179daa	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0xc1230206	max8998_update_reg
+EXPORT_SYMBOL	 vmlinux 0xc124d16f	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0xc1328cee	start_thread
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc1703266	phy_drivers_unregister
+EXPORT_SYMBOL	 vmlinux 0xc170dfca	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0xc1a58223	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0xc1acf2c8	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xc1ce2bd1	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1e48b91	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0xc1f7b1ce	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xc20bd7ea	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xc2187750	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0xc22964b7	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0xc2320ba1	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL	 vmlinux 0xc249debf	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0xc24e0ab5	mfd_remove_devices
+EXPORT_SYMBOL	 vmlinux 0xc267960e	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xc27426dc	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0xc293771e	vme_dma_list_free
+EXPORT_SYMBOL	 vmlinux 0xc29bf8a6	may_umount
+EXPORT_SYMBOL	 vmlinux 0xc29bf967	strspn
+EXPORT_SYMBOL	 vmlinux 0xc2a31642	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xc2cb0111	of_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc310b981	strnstr
+EXPORT_SYMBOL	 vmlinux 0xc3114bd7	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xc320c253	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc338ef27	dump_emit
+EXPORT_SYMBOL	 vmlinux 0xc34629b4	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0xc34827de	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xc357fc90	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0xc37f9c6e	cpufreq_update_policy
+EXPORT_SYMBOL	 vmlinux 0xc385a49b	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc3c576f9	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xc3dbcc27	mdiobus_unregister
+EXPORT_SYMBOL	 vmlinux 0xc3e97af0	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0xc3e99834	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xc406569a	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0xc4183573	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0xc41bc980	iwe_stream_add_value
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc42785a1	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xc444c6e8	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0xc458407e	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xc46b768d	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xc46e29cb	simple_open
+EXPORT_SYMBOL	 vmlinux 0xc474c69b	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47cdf9c	_raw_write_lock_bh
+EXPORT_SYMBOL	 vmlinux 0xc4a0ff57	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0xc4acc04b	ptp_find_pin
+EXPORT_SYMBOL	 vmlinux 0xc4ae915e	arch_touch_nmi_watchdog
+EXPORT_SYMBOL	 vmlinux 0xc4b23906	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xc4d8af5f	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0xc4daa735	ab3100_event_unregister
+EXPORT_SYMBOL	 vmlinux 0xc4e81d37	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xc4f8c553	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xc4fd9329	ptp_clock_register
+EXPORT_SYMBOL	 vmlinux 0xc5075d95	abx500_get_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc50e103d	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xc514a472	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL	 vmlinux 0xc563068e	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xc5641ed1	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xc56f726b	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0xc5799a61	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xc57a34dc	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc5a0f7f5	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0xc5a1794d	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0xc5a396fd	udplite_table
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5b8d65d	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xc5d14526	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL	 vmlinux 0xc5da8c7d	vme_irq_generate
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5ed20f6	revert_creds
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc5fe8c92	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc60d3846	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xc611adcd	cfb_copyarea
+EXPORT_SYMBOL	 vmlinux 0xc61b8087	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0xc61ca65e	iowrite64be_hi_lo
+EXPORT_SYMBOL	 vmlinux 0xc623541a	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 vmlinux 0xc6369552	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0xc64ede7e	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc664b528	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0xc666a132	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc66ef740	vga_put
+EXPORT_SYMBOL	 vmlinux 0xc67ccd32	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xc67e2343	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xc699fd45	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0xc6aa1970	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0xc6aa2c04	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0xc6c75db6	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0xc6cb465a	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6d0a964	vfio_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xc6d6af46	ppc_pci_io
+EXPORT_SYMBOL	 vmlinux 0xc6de7a7d	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc6f97dc6	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0xc7066bc6	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0xc70df12b	bmap
+EXPORT_SYMBOL	 vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL	 vmlinux 0xc7390f4e	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xc751f5e9	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0xc753076f	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xc7537b5c	nd_pfn_probe
+EXPORT_SYMBOL	 vmlinux 0xc76c5035	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0xc7764737	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc794374d	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7b68aed	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7c348e6	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7e2c2bb	uart_update_timeout
+EXPORT_SYMBOL	 vmlinux 0xc7e6486a	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0xc7eb16b3	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0xc7ef7b7a	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0xc7f484b1	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0xc7fd2935	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 vmlinux 0xc80b4183	mmc_can_secure_erase_trim
+EXPORT_SYMBOL	 vmlinux 0xc8153cd7	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xc81876d0	__i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xc81b1ce3	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc8261adb	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0xc834a73a	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0xc838f687	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0xc83e4a90	nd_dev_to_uuid
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc84b2cb0	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xc8724742	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc87b2c49	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc88a832c	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0xc88baf5f	of_mdio_find_bus
+EXPORT_SYMBOL	 vmlinux 0xc88e535a	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 vmlinux 0xc89ec504	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0xc8a3208f	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8b09b4d	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0xc8b9bfc4	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0xc8d5feb5	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xc8dd19a8	migrate_page
+EXPORT_SYMBOL	 vmlinux 0xc8fda1f8	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0xc90c7a2e	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0xc913fd30	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xc9166346	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xc91e999a	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xc92f5963	phy_connect
+EXPORT_SYMBOL	 vmlinux 0xc94fca71	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc9719748	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc9844f3d	dev_printk
+EXPORT_SYMBOL	 vmlinux 0xc985acdb	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0xc9919a4e	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xc9989d6c	alloc_fddidev
+EXPORT_SYMBOL	 vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL	 vmlinux 0xc9bf06ca	nd_dax_probe
+EXPORT_SYMBOL	 vmlinux 0xc9c5e59f	devm_extcon_register_notifier_all
+EXPORT_SYMBOL	 vmlinux 0xc9c65081	get_thermal_instance
+EXPORT_SYMBOL	 vmlinux 0xc9c9a5ea	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0xc9d761f7	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0xc9da3dca	iw_handler_get_spy
+EXPORT_SYMBOL	 vmlinux 0xc9dc3d79	__pte_frag_size_shift
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9e2db3e	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0xc9f8e953	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0xc9fabe76	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0xca0947a5	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xca0b27f3	load_nls
+EXPORT_SYMBOL	 vmlinux 0xca0b4445	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xca15413f	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0xca1d42af	twl6040_power
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca26bba4	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0xca2f5d9c	phy_device_create
+EXPORT_SYMBOL	 vmlinux 0xca3a720a	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xca3b28c6	store_vr_state
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca5171f8	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0xca58ce24	serial8250_register_8250_port
+EXPORT_SYMBOL	 vmlinux 0xca5b74f4	nvdimm_namespace_locked
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca7616a4	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xca8c93a4	phy_attach_direct
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xca93719f	nd_device_register
+EXPORT_SYMBOL	 vmlinux 0xcaa8702e	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xcac884d9	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0xcadd9e14	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb0288ea	ledtrig_cpu
+EXPORT_SYMBOL	 vmlinux 0xcb2be8b8	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xcb2ea0b5	finish_wait
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb3c8a7d	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0xcb4274b1	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xcb5f51fd	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xcb6d29e2	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0xcb7e3b35	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0xcb7fef79	of_graph_get_remote_port
+EXPORT_SYMBOL	 vmlinux 0xcb907522	of_node_get
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcbac9779	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0xcbb3469b	phy_ethtool_get_eee
+EXPORT_SYMBOL	 vmlinux 0xcbb8ceb8	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbbf2ed2	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0xcbc3b94e	eeh_check_failure
+EXPORT_SYMBOL	 vmlinux 0xcbc88a23	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbcbd173	vme_lm_request
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbfb33e4	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xcbfeb91b	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0xcc12f99f	vga_client_register
+EXPORT_SYMBOL	 vmlinux 0xcc17504d	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL	 vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc502037	mmc_remove_host
+EXPORT_SYMBOL	 vmlinux 0xcc54346e	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc624fda	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0xcc6d15f3	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0xcc8859bc	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0xcc918c6f	key_move
+EXPORT_SYMBOL	 vmlinux 0xccb5980d	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0xccb6eac8	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccd72dda	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0xccef37e4	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd01b6d3	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0xcd0529c7	_raw_spin_lock_irq
+EXPORT_SYMBOL	 vmlinux 0xcd0ddeae	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0xcd2523cc	__bforget
+EXPORT_SYMBOL	 vmlinux 0xcd274303	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd2d0f03	agp_generic_alloc_page
+EXPORT_SYMBOL	 vmlinux 0xcd2e650c	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xcd4af5d4	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xcd5fd680	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0xcd86c87f	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xcda4ce92	kill_pid
+EXPORT_SYMBOL	 vmlinux 0xcdad549e	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0xcdaefc11	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0xcdc0349c	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xcdc16824	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xce0a0d78	srp_rport_put
+EXPORT_SYMBOL	 vmlinux 0xce145c3c	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0xce18bbe1	fsl_lbc_addr
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce290446	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0xce30430b	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xce406fd4	pps_register_source
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce4e47b6	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0xce54c938	complete_all
+EXPORT_SYMBOL	 vmlinux 0xce574653	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce61f984	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0xce65135c	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0xce6afe81	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce7c8125	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xce807151	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xce820a60	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xce8f9edd	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xceb838d8	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0xcec766f1	__memset16
+EXPORT_SYMBOL	 vmlinux 0xcecea830	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xcefcd99a	serial8250_unregister_port
+EXPORT_SYMBOL	 vmlinux 0xcefffc35	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf20c695	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0xcf263e49	start_tty
+EXPORT_SYMBOL	 vmlinux 0xcf4d3a84	get_super
+EXPORT_SYMBOL	 vmlinux 0xcf6b32d2	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xcf6b98eb	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0xcf6d81a9	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0xcf713f8d	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0xcf7a5002	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xcf944746	phy_mac_interrupt
+EXPORT_SYMBOL	 vmlinux 0xcf9b558d	touchscreen_set_mt_pos
+EXPORT_SYMBOL	 vmlinux 0xcfafd4bd	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0xcfb442a2	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xcfb79900	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0xcfcb328f	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcfcf0a54	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xcfd884a8	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0xcfddb2f7	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0xcfe03c27	mmc_set_blocklen
+EXPORT_SYMBOL	 vmlinux 0xcfe84944	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0xcfea261a	__sock_create
+EXPORT_SYMBOL	 vmlinux 0xcfed0183	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd001d4ea	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0xd02e2203	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0xd03c4eab	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0xd03da907	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0684125	max8925_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xd069f5d3	phy_remove_link_mode
+EXPORT_SYMBOL	 vmlinux 0xd0869d9e	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a68b42	proto_register
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0bd487b	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd0c044dd	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0xd0ce1c74	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xd0dc773f	get_tz_trend
+EXPORT_SYMBOL	 vmlinux 0xd0e1bc9d	devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xd0ec5759	read_code
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fe8d51	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL	 vmlinux 0xd1028e80	notify_change
+EXPORT_SYMBOL	 vmlinux 0xd11387ad	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL	 vmlinux 0xd12867bd	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0xd12c7933	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xd13ce22b	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0xd140251f	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0xd14de635	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0xd166a54b	of_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xd167f262	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xd174e61e	devm_of_find_backlight
+EXPORT_SYMBOL	 vmlinux 0xd17bc486	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd18c1f39	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0xd18fe5f6	completion_done
+EXPORT_SYMBOL	 vmlinux 0xd199fb20	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0xd1a44a77	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0xd1b10e0c	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1dfeee5	phy_queue_state_machine
+EXPORT_SYMBOL	 vmlinux 0xd1eddb8f	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xd1fdb97a	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xd202e833	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0xd21c5139	iowrite64_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xd21f0015	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0xd224450f	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0xd22dd824	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xd22eceb4	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0xd23652b2	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xd239d743	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0xd23ec31d	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd260752d	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0xd2608530	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0xd262dfcb	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd271ad31	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd286d4d9	abx500_get_chip_id
+EXPORT_SYMBOL	 vmlinux 0xd2954047	__bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0xd29d0c32	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0xd2c12197	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xd2c224d3	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xd2c346b2	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0xd2c6deb5	PageMovable
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2e2a9d0	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd33c32bd	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35eb3aa	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd36e3d59	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0xd376af6b	mmc_wait_for_req_done
+EXPORT_SYMBOL	 vmlinux 0xd3bbe51c	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xd3c0ed0f	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0xd3d158a3	vmemmap
+EXPORT_SYMBOL	 vmlinux 0xd3db2458	max8998_write_reg
+EXPORT_SYMBOL	 vmlinux 0xd3de33ed	rps_needed
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd432e4c1	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0xd445d23c	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0xd45cc6ca	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xd48fdeef	dql_completed
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4a4010f	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xd4abae19	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4c39014	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xd4cd5517	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 vmlinux 0xd4d02270	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0xd4d7c068	fsl_upm_find
+EXPORT_SYMBOL	 vmlinux 0xd4e5ad34	i2c_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd4e81098	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fd0ec2	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xd50862e2	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd52a15a1	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0xd54209a1	i2c_put_adapter
+EXPORT_SYMBOL	 vmlinux 0xd554b028	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xd56a0d60	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0xd574e710	of_device_is_compatible
+EXPORT_SYMBOL	 vmlinux 0xd57b06b1	simple_rename
+EXPORT_SYMBOL	 vmlinux 0xd5884972	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd5b12f7d	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5be130e	cpu_core_map
+EXPORT_SYMBOL	 vmlinux 0xd5d64e79	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xd5dae563	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0xd5e54994	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0xd5e9c106	of_graph_get_remote_endpoint
+EXPORT_SYMBOL	 vmlinux 0xd5f05fcc	key_validate
+EXPORT_SYMBOL	 vmlinux 0xd5f60508	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xd5fcac3f	mipi_dsi_driver_register_full
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd61bcded	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0xd6223e38	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0xd63fd8d1	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0xd648c1a0	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0xd658303d	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xd65fc5a6	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0xd66c8184	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0xd676a659	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd68f9829	genphy_restart_aneg
+EXPORT_SYMBOL	 vmlinux 0xd691f51f	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0xd69948fb	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xd6a4cb3e	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xd6a91f54	twl_i2c_read
+EXPORT_SYMBOL	 vmlinux 0xd6ab6005	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0xd6ad905d	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0xd6b732ba	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0xd6bfdf4a	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6d464df	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xd6da2888	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xd6e300d3	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fd4053	__arch_hweight32
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd7019d2b	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0xd709e164	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0xd70ba6d5	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd737842a	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 vmlinux 0xd73eebf6	i2c_transfer
+EXPORT_SYMBOL	 vmlinux 0xd76cfb67	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xd7761245	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xd776e376	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xd782df67	i2c_use_client
+EXPORT_SYMBOL	 vmlinux 0xd784a1c9	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0xd786c0ea	plpar_hcall9
+EXPORT_SYMBOL	 vmlinux 0xd7933d96	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xd7d0309c	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7d8ef6e	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0xd7e0ac08	of_device_register
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7e68c57	i2c_add_adapter
+EXPORT_SYMBOL	 vmlinux 0xd7eb5c3f	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0xd7ec6754	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 vmlinux 0xd817888f	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0xd81cce81	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xd83c1178	vme_dma_list_add
+EXPORT_SYMBOL	 vmlinux 0xd8548b30	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd8729ead	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0xd888e8d8	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8d04151	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0xd8de2499	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0xd8f27423	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0xd914781c	uart_register_driver
+EXPORT_SYMBOL	 vmlinux 0xd923e3bf	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0xd9249026	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0xd92f9b5d	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0xd931e142	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0xd93427b3	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xd940020e	phy_device_register
+EXPORT_SYMBOL	 vmlinux 0xd9410fac	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xd956b551	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xd9679441	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xd96f8572	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd9a446f2	decrementer_clockevent
+EXPORT_SYMBOL	 vmlinux 0xd9b67421	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0xd9b6cac4	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xd9bac924	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0xd9bf41cf	lock_rename
+EXPORT_SYMBOL	 vmlinux 0xd9cca143	serio_reconnect
+EXPORT_SYMBOL	 vmlinux 0xd9d59351	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9f7ff2a	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda3d20b6	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xda4a5bf5	pmem_should_map_pages
+EXPORT_SYMBOL	 vmlinux 0xda588cf1	pm860x_bulk_read
+EXPORT_SYMBOL	 vmlinux 0xda6d5827	i2c_del_adapter
+EXPORT_SYMBOL	 vmlinux 0xda70830f	rtas
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda777988	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xda7920b7	__break_lease
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda9c6846	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0xda9fc7ae	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xdaa22953	sock_efree
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdac545b9	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xdac7ccea	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xdaea6e0d	mfd_clone_cell
+EXPORT_SYMBOL	 vmlinux 0xdb06e0f6	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0xdb1d7773	nd_region_to_nstype
+EXPORT_SYMBOL	 vmlinux 0xdb38bcb2	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0xdb472e12	from_kgid
+EXPORT_SYMBOL	 vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL	 vmlinux 0xdb6cd235	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb789f9f	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0xdb89d5da	__tracepoint_spi_transfer_start
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdbe9440f	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xdbeb7a51	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xdbf3110e	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0xdbfa0017	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc16db59	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xdc34a848	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0xdc3822f2	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0xdc3e32b5	mmc_free_host
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc43ccf8	rproc_vq_interrupt
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc512134	backlight_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xdc68b402	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0xdc8bd94b	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xdc8f788c	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0xdc9498dd	down
+EXPORT_SYMBOL	 vmlinux 0xdca931d5	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0xdcb3bd04	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0xdcb764ad	memset
+EXPORT_SYMBOL	 vmlinux 0xdcbd6ab8	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xdccb2699	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0xdcd0e80e	agp_generic_remove_memory
+EXPORT_SYMBOL	 vmlinux 0xdcd7bdb1	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0xdcd8e95a	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0xdcd9de93	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0xdcdc998f	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0xdcf01237	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0xdd00415f	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0xdd2989e4	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd64e639	strscpy
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd8546fa	nd_region_release_lane
+EXPORT_SYMBOL	 vmlinux 0xdd9030af	current_stack_pointer
+EXPORT_SYMBOL	 vmlinux 0xddb3769b	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xddca6a14	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0xddd7e673	devfreq_add_governor
+EXPORT_SYMBOL	 vmlinux 0xde141750	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0xde25a646	of_get_next_child
+EXPORT_SYMBOL	 vmlinux 0xde2b6a78	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0xde3bee4b	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0xde48e9ca	_raw_spin_lock
+EXPORT_SYMBOL	 vmlinux 0xde4e649e	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0xde85372f	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xde91448c	load_vr_state
+EXPORT_SYMBOL	 vmlinux 0xde93966a	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL	 vmlinux 0xdea4c8fc	mmc_can_gpio_ro
+EXPORT_SYMBOL	 vmlinux 0xdebfae0c	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0xdecd0b29	__stack_chk_fail
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdef6187e	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf00b5d7	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xdf0cd931	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0xdf1ac053	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0xdf1eefec	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf329c75	mmc_release_host
+EXPORT_SYMBOL	 vmlinux 0xdf34ac4d	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0xdf35ccd0	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xdf3f5a17	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0xdf4e2f3a	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0xdf5180f8	fget
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf62f3c6	cdev_del
+EXPORT_SYMBOL	 vmlinux 0xdf6ca88c	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0xdf79e47f	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xdf88b6da	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0xdf8ba196	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdfbfc4b0	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xdfc6c027	mdiobus_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfd1b0b6	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdff905e5	vme_slave_free
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe0223372	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0xe022e639	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0xe0494f48	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xe0588866	__vio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe05c476a	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xe0698d0e	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xe06e6464	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0xe07b059b	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0903751	d_drop
+EXPORT_SYMBOL	 vmlinux 0xe0955f76	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xe095b13f	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0ab8046	of_find_device_by_node
+EXPORT_SYMBOL	 vmlinux 0xe0af1e1a	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0b2cd3e	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 vmlinux 0xe0b3bd35	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0xe0c87219	i2c_smbus_xfer
+EXPORT_SYMBOL	 vmlinux 0xe0e20999	sget_fc
+EXPORT_SYMBOL	 vmlinux 0xe0e5dc8a	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0xe0eedf42	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xe0fa4a2a	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0xe10cd552	param_set_short
+EXPORT_SYMBOL	 vmlinux 0xe1126554	dev_load
+EXPORT_SYMBOL	 vmlinux 0xe1191c90	agp_enable
+EXPORT_SYMBOL	 vmlinux 0xe11ca997	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe1249e04	lease_modify
+EXPORT_SYMBOL	 vmlinux 0xe12bda79	vme_dma_free_attribute
+EXPORT_SYMBOL	 vmlinux 0xe134348e	__serio_register_port
+EXPORT_SYMBOL	 vmlinux 0xe13d5d07	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xe147d479	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0xe16f3890	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0xe187eb21	cfb_imageblit
+EXPORT_SYMBOL	 vmlinux 0xe1b59ae9	__debugger
+EXPORT_SYMBOL	 vmlinux 0xe1bcfc12	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0xe1c9bd94	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0xe1d16ccb	make_kgid
+EXPORT_SYMBOL	 vmlinux 0xe1d9aa88	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0xe1da83b3	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1f4832f	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xe1f4e5e2	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xe1fe4bb3	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0xe2053c5d	abort_creds
+EXPORT_SYMBOL	 vmlinux 0xe210c161	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xe2164e90	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xe21f18ac	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0xe2304303	mac_map_monitor_sense
+EXPORT_SYMBOL	 vmlinux 0xe23b4a8b	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0xe24f494b	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0xe25166cc	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0xe26a2b8a	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xe276d6b8	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xe28df227	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0xe29f760e	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0xe2a13f12	empty_aops
+EXPORT_SYMBOL	 vmlinux 0xe2b3fe32	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0xe2c19578	hmm_range_dma_map
+EXPORT_SYMBOL	 vmlinux 0xe2c97709	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2d8ac21	ppp_input_error
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe3111776	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0xe3247966	nd_integrity_init
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe3330350	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xe33db461	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0xe354028a	mdiobus_get_phy
+EXPORT_SYMBOL	 vmlinux 0xe35649bb	bio_devname
+EXPORT_SYMBOL	 vmlinux 0xe3616e90	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0xe3716d1e	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xe387994e	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0xe3893d32	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0xe39a9066	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe39de770	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0xe3a53f4c	sort
+EXPORT_SYMBOL	 vmlinux 0xe3b83ac4	phy_ethtool_set_wol
+EXPORT_SYMBOL	 vmlinux 0xe3c463b4	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xe3d94cc5	phy_drivers_register
+EXPORT_SYMBOL	 vmlinux 0xe3db9faf	of_phy_register_fixed_link
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3f29f70	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe40031ae	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0xe401085e	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0xe419bc99	iowrite32be
+EXPORT_SYMBOL	 vmlinux 0xe42f40f2	dget_parent
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe444a193	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0xe45a09fd	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0xe465488b	ppp_register_net_channel
+EXPORT_SYMBOL	 vmlinux 0xe467b375	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0xe474d3e2	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0xe479bd6e	kobject_add
+EXPORT_SYMBOL	 vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL	 vmlinux 0xe4870fe0	__serio_register_driver
+EXPORT_SYMBOL	 vmlinux 0xe49d1be4	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0xe49fd530	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0xe4a1711f	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xe4a62c5e	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0xe4b15c08	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0xe4ca8a00	path_put
+EXPORT_SYMBOL	 vmlinux 0xe4d33fd6	follow_down
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4e7cff3	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0xe4fe8ca1	_raw_spin_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0xe4fed3b8	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xe501d426	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe539e0cb	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0xe543f4a1	agp_generic_create_gatt_table
+EXPORT_SYMBOL	 vmlinux 0xe550c14f	mipi_dsi_dcs_set_tear_off
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe574d2e4	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0xe57a9c61	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe582cc73	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe5a73bb4	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0xe5bc9a53	slhc_free
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5c9b80a	to_nd_btt
+EXPORT_SYMBOL	 vmlinux 0xe5d5814d	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xe5d71a61	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0xe5da6271	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0xe5f6e76b	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xe5f8ff3e	skb_append
+EXPORT_SYMBOL	 vmlinux 0xe60de698	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe61ec26e	abx500_remove_ops
+EXPORT_SYMBOL	 vmlinux 0xe632ff1a	flush_dcache_icache_page
+EXPORT_SYMBOL	 vmlinux 0xe6334e88	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xe634bb79	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0xe63abf02	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0xe63bc6f2	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0xe6589565	touchscreen_parse_properties
+EXPORT_SYMBOL	 vmlinux 0xe6861ca9	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0xe691ac7f	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0xe6927d92	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0xe69c5574	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0xe6b2758d	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xe6b39e76	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xe706ffb7	serio_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe720936c	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xe723cb69	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0xe72ec054	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe737244a	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xe73d4abd	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0xe74664d7	genphy_resume
+EXPORT_SYMBOL	 vmlinux 0xe74c3f7c	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0xe74d3ae1	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xe7541ae7	md_error
+EXPORT_SYMBOL	 vmlinux 0xe75bd104	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xe75cc9c7	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0xe78e3c60	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0xe7a5e03f	devfreq_add_device
+EXPORT_SYMBOL	 vmlinux 0xe7a83318	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xe7c94aac	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xe7ca5e18	ppp_output_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe7ce7439	_memcpy_fromio
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7e7e941	phy_get_eee_err
+EXPORT_SYMBOL	 vmlinux 0xe7e93316	of_graph_get_port_parent
+EXPORT_SYMBOL	 vmlinux 0xe7ed4cfa	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xe7f30668	mach_powernv
+EXPORT_SYMBOL	 vmlinux 0xe7f813cf	__mdiobus_register
+EXPORT_SYMBOL	 vmlinux 0xe818528c	pnv_pci_get_npu_dev
+EXPORT_SYMBOL	 vmlinux 0xe827ea71	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0xe84655cc	blk_set_runtime_active
+EXPORT_SYMBOL	 vmlinux 0xe878cc22	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0xe8869e6a	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xe8a96fe7	dev_activate
+EXPORT_SYMBOL	 vmlinux 0xe8ac14ac	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0xe8b2d646	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xe8ccacf7	radix__flush_pmd_tlb_range
+EXPORT_SYMBOL	 vmlinux 0xe8d0c92b	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xe8d54c77	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xe8deaf4b	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xe902a471	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe93764bd	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xe93b9a46	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xe93e4635	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe9645032	nd_btt_probe
+EXPORT_SYMBOL	 vmlinux 0xe990c666	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0xe9929352	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0xe992e465	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0xe99e1efd	mmc_command_done
+EXPORT_SYMBOL	 vmlinux 0xe9e8d21c	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xe9fc8b01	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xea21d142	key_alloc
+EXPORT_SYMBOL	 vmlinux 0xea318228	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea426e43	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0xea42bd92	mmc_register_driver
+EXPORT_SYMBOL	 vmlinux 0xea5be2d8	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xea5bfdf2	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 vmlinux 0xea6fdbc9	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0xea778fab	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea82706a	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xea9f0e1a	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0xeaacfb0a	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xeabcd05a	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xeac1a3e8	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xeac487c4	mipi_dsi_dcs_soft_reset
+EXPORT_SYMBOL	 vmlinux 0xeac65356	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0xeac6c386	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0xead33208	phy_request_interrupt
+EXPORT_SYMBOL	 vmlinux 0xeade5ca7	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeaf2c8dd	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0xeb03ac37	blk_post_runtime_resume
+EXPORT_SYMBOL	 vmlinux 0xeb049722	of_dev_put
+EXPORT_SYMBOL	 vmlinux 0xeb136241	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xeb1b2294	phy_set_asym_pause
+EXPORT_SYMBOL	 vmlinux 0xeb1f0311	twl6040_reg_write
+EXPORT_SYMBOL	 vmlinux 0xeb233a45	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0xeb28c3cc	phy_detach
+EXPORT_SYMBOL	 vmlinux 0xeb30807d	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xeb34b198	km_report
+EXPORT_SYMBOL	 vmlinux 0xeb366aa7	of_graph_get_remote_node
+EXPORT_SYMBOL	 vmlinux 0xeb3686ab	mmc_gpiod_request_cd
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb44339a	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xeb66832c	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0xeb6d0d7f	mmc_cqe_recovery
+EXPORT_SYMBOL	 vmlinux 0xeb7ad319	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0xeb7ae5e3	input_event
+EXPORT_SYMBOL	 vmlinux 0xeb7ffb1c	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0xeb8c7b7b	cxl_use_count
+EXPORT_SYMBOL	 vmlinux 0xeb8f2d4f	__pmd_frag_size_shift
+EXPORT_SYMBOL	 vmlinux 0xeb9e769f	vme_register_driver
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeba2a1f7	rtas_indicator_present
+EXPORT_SYMBOL	 vmlinux 0xebcd3d18	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0xebd29ae0	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0xebd32cdd	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0xebda8b44	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebff1a05	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 vmlinux 0xec06a8a3	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0xec299651	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xec35a533	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0xec40501a	radix__flush_tlb_pwc
+EXPORT_SYMBOL	 vmlinux 0xec4fb493	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xec51ce4c	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0xec567a72	mmc_gpio_set_cd_wake
+EXPORT_SYMBOL	 vmlinux 0xec81e4d2	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xec83ae82	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xec92de15	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xec97ead8	__kernel_io_start
+EXPORT_SYMBOL	 vmlinux 0xec9e98d3	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xeca07b22	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xeca9d000	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xecbb926f	xor_altivec_3
+EXPORT_SYMBOL	 vmlinux 0xecc39d90	devm_nvmem_unregister
+EXPORT_SYMBOL	 vmlinux 0xecc6a4d6	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xeccfad61	kobject_get
+EXPORT_SYMBOL	 vmlinux 0xecd364c0	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0xecd94de7	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xecdfb3a5	get_phy_device
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xecf9a451	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0xecfc06c7	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0xed002e67	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0xed0e9dc2	genphy_loopback
+EXPORT_SYMBOL	 vmlinux 0xed17d79e	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0xed18fede	of_get_pci_address
+EXPORT_SYMBOL	 vmlinux 0xed225ca9	devm_devfreq_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xed5f61d2	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed785a12	ppp_unregister_channel
+EXPORT_SYMBOL	 vmlinux 0xed94b3e8	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0xed9c0304	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0xeda92112	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xedb5b8f5	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedbb5817	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xedcb6c5b	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xedda830a	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0xede1dc15	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0xedf82f4f	mdiobus_write
+EXPORT_SYMBOL	 vmlinux 0xedfb64e5	file_modified
+EXPORT_SYMBOL	 vmlinux 0xee00ac33	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xee02f958	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee1b6149	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee7d9357	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xeea88814	pm8606_osc_enable
+EXPORT_SYMBOL	 vmlinux 0xeeb58a8e	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0xeed280ea	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xeed5bcca	__pud_table_size
+EXPORT_SYMBOL	 vmlinux 0xeee7c599	agp_generic_destroy_page
+EXPORT_SYMBOL	 vmlinux 0xeeedb391	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0xeefa7942	km_query
+EXPORT_SYMBOL	 vmlinux 0xeefc205c	mipi_dsi_shutdown_peripheral
+EXPORT_SYMBOL	 vmlinux 0xeeffa34b	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xef06e594	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0xef11208c	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0xef132304	agp_generic_alloc_by_type
+EXPORT_SYMBOL	 vmlinux 0xef235b8d	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0xef29ced1	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL	 vmlinux 0xef2d2aa3	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xef3034ad	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0xef32672c	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0xef3dddf4	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0xef3e5e9a	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xef5d3a59	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0xef89d185	of_get_next_parent
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefcb2eae	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0xefebbd40	ioread64be_lo_hi
+EXPORT_SYMBOL	 vmlinux 0xeff608e0	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf002131c	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0xf01520fd	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0xf017d46a	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xf0319851	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0xf0329ad1	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0xf0464d4d	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0xf04ff9fb	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf07350bd	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf07fe9a0	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0a1c688	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf0ac5e0f	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xf0c14829	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0xf0c9ccb2	pnv_cxl_ioda_msi_setup
+EXPORT_SYMBOL	 vmlinux 0xf0cc789f	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0xf102033e	slhc_remember
+EXPORT_SYMBOL	 vmlinux 0xf10bc586	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL	 vmlinux 0xf113d1e2	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xf11cd6ce	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xf11e0ef9	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xf11ed7ac	ps2_cmd_aborted
+EXPORT_SYMBOL	 vmlinux 0xf1349228	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0xf14677bc	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xf157eac2	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xf165f1ee	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xf167b997	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0xf1686671	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0xf16de609	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xf180d064	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0xf184b86e	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0xf18a6149	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf1b7f681	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xf1c9b3d2	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0xf1d18e90	_outsw_ns
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e63929	devmap_managed_key
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf1f93a44	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xf208e3fc	vga_remove_vgacon
+EXPORT_SYMBOL	 vmlinux 0xf20c6cb5	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0xf20e4acf	__phy_write_mmd
+EXPORT_SYMBOL	 vmlinux 0xf2137036	mmc_retune_unpause
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf227e7da	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xf22b9cfb	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0xf23c860a	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf25b8357	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xf25defc5	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xf26ff9c0	twl6040_clear_bits
+EXPORT_SYMBOL	 vmlinux 0xf2798d7f	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0xf27e6495	kern_path
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf288e7c5	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xf28d8acd	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0xf29f8515	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 vmlinux 0xf2c5541c	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0xf2cf86f9	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xf2d1c3a7	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0xf2e3d0f6	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2f0bcdf	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf32d5a80	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0xf33466cb	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf34f3bc3	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf376f2a2	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf399896e	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0xf39f8aa9	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0xf3a57892	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3c03488	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3e883fb	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0xf3f848b7	open_exec
+EXPORT_SYMBOL	 vmlinux 0xf4230d40	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0xf425c0c3	phy_read_paged
+EXPORT_SYMBOL	 vmlinux 0xf42d64ca	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL	 vmlinux 0xf44435d1	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf44dd5ae	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0xf44f5680	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0xf472017a	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0xf4746366	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf47707be	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0xf478c4f3	ps2_sliced_command
+EXPORT_SYMBOL	 vmlinux 0xf491817c	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0xf49244c5	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4c8cbc6	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0xf4cbd42d	vio_cmo_set_dev_desired
+EXPORT_SYMBOL	 vmlinux 0xf4d91d5c	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4dfecdf	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4fa2649	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf510aab6	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xf511fa26	unlock_page
+EXPORT_SYMBOL	 vmlinux 0xf5222143	_raw_spin_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf53f722e	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xf5488fd9	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xf54d97c0	write_one_page
+EXPORT_SYMBOL	 vmlinux 0xf5573349	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0xf55b3b3d	__arch_hweight16
+EXPORT_SYMBOL	 vmlinux 0xf56e8723	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 vmlinux 0xf58ebdb3	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xf5a20ed2	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0xf5a62ecc	_memset_io
+EXPORT_SYMBOL	 vmlinux 0xf5a828e5	d_move
+EXPORT_SYMBOL	 vmlinux 0xf5c4b444	memcpy_flushcache
+EXPORT_SYMBOL	 vmlinux 0xf5cc5d77	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0xf5d3b359	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0xf5d42973	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0xf5de553a	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0xf5e1558d	crash_shutdown_unregister
+EXPORT_SYMBOL	 vmlinux 0xf5e5290a	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xf5e5a87b	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf6150d63	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xf6270673	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0xf62e6e6b	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xf63ef029	phy_read_mmd
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf64a824a	abx500_register_ops
+EXPORT_SYMBOL	 vmlinux 0xf64c4fe2	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf681acfc	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf6951ee3	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xf6ac9fd2	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xf6ae3df4	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0xf6b6c8ff	would_dump
+EXPORT_SYMBOL	 vmlinux 0xf6cde142	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0xf6cf812a	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xf6dea4ac	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0xf6e87cdf	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0xf6ea273c	agp_backend_release
+EXPORT_SYMBOL	 vmlinux 0xf6eaac5e	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6fa42cc	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf6fcb5b4	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xf7140656	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0xf71e2a88	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0xf71efa9b	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0xf7202f60	dm_io
+EXPORT_SYMBOL	 vmlinux 0xf72f49f2	nd_device_unregister
+EXPORT_SYMBOL	 vmlinux 0xf737cb9e	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0xf737d62e	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf742df76	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0xf7482f30	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf75b77c0	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf778c586	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0xf77a1e5d	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xf79ab0c4	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0xf7ba121a	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0xf7c2df39	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xf7c871df	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0xf7d581d5	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0xf7daadef	phy_support_sym_pause
+EXPORT_SYMBOL	 vmlinux 0xf7e14658	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0xf7e4a3ea	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0xf7e61348	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xf7e740cf	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0xf7e7e33d	of_find_node_with_property
+EXPORT_SYMBOL	 vmlinux 0xf7f8cf89	max8925_reg_write
+EXPORT_SYMBOL	 vmlinux 0xf805bc2e	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0xf80a8c59	bio_advance
+EXPORT_SYMBOL	 vmlinux 0xf80ea10c	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf812217b	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0xf812cff6	memscan
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf8438863	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0xf84aff87	skb_clone
+EXPORT_SYMBOL	 vmlinux 0xf864a131	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xf87e27f0	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xf8831299	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xf88491e9	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0xf884d384	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf890a685	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xf897ae2f	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0xf8a5e3f5	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf8ac1615	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8badd3b	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xf8bf8e22	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8dcb19c	register_key_type
+EXPORT_SYMBOL	 vmlinux 0xf8e1115e	_outsl_ns
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf90d631d	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0xf90e8e3e	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0xf91277b2	sk_free
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf9227872	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0xf9381dba	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf957d56e	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0xf96d3236	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xf96ec242	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xf96ed262	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xf971cea8	utf8len
+EXPORT_SYMBOL	 vmlinux 0xf9722676	twl_i2c_write
+EXPORT_SYMBOL	 vmlinux 0xf9747291	path_get
+EXPORT_SYMBOL	 vmlinux 0xf9972b2e	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9aea36a	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0xf9b1cdcd	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xf9c0b663	strlcat
+EXPORT_SYMBOL	 vmlinux 0xf9c19f9e	giveup_fpu
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9c99793	of_device_alloc
+EXPORT_SYMBOL	 vmlinux 0xf9ca99d2	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0xf9d6c755	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0xf9d71851	of_get_property
+EXPORT_SYMBOL	 vmlinux 0xf9da076f	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xf9df6e5d	dqget
+EXPORT_SYMBOL	 vmlinux 0xf9ef1eec	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0xfa3780e8	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa596a22	seq_release
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa6feedf	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0xfa72e330	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfab22cd8	twl6040_set_bits
+EXPORT_SYMBOL	 vmlinux 0xfab67519	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfac8966e	vfs_create
+EXPORT_SYMBOL	 vmlinux 0xfaf1d49a	secpath_set
+EXPORT_SYMBOL	 vmlinux 0xfaf23095	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0xfb009ef5	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0xfb232c7e	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0xfb2b0f26	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0xfb2b3242	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xfb2e1b83	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb3faa95	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb65a270	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb6b0a79	__lock_page
+EXPORT_SYMBOL	 vmlinux 0xfb768899	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0xfb8d873a	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xfba588d9	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbb8a761	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbdad20d	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0xfbe07ad9	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0xfbe5bc01	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0xfc0b7e87	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0xfc225e7a	ata_port_printk
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc3f45b0	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0xfc54eb2a	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xfc5ca7b6	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0xfc607eb2	phy_mii_ioctl
+EXPORT_SYMBOL	 vmlinux 0xfc64b4d9	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xfc710423	mac_find_mode
+EXPORT_SYMBOL	 vmlinux 0xfc80b4d5	nd_device_notify
+EXPORT_SYMBOL	 vmlinux 0xfc9cdfda	nla_put
+EXPORT_SYMBOL	 vmlinux 0xfcaca2a3	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xfcb17335	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0xfcb926cd	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0xfcca5515	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfcdc14d6	frame_vector_to_pfns
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfcf98827	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0xfd14f36e	uart_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xfd1d31d7	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0xfd400114	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xfd41e80f	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0xfd44da8a	mmc_wait_for_req
+EXPORT_SYMBOL	 vmlinux 0xfd4f4716	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0xfd529253	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0xfd564ab9	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0xfd69f81c	genphy_update_link
+EXPORT_SYMBOL	 vmlinux 0xfd7efe17	ns_capable
+EXPORT_SYMBOL	 vmlinux 0xfd899b5a	param_set_int
+EXPORT_SYMBOL	 vmlinux 0xfd8df17e	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0xfda1a74a	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xfda23ef5	of_find_node_opts_by_path
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdb6cedc	_raw_read_unlock_bh
+EXPORT_SYMBOL	 vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfdcdd183	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0xfdd4216d	pcibios_align_resource
+EXPORT_SYMBOL	 vmlinux 0xfdd6a3f1	bdgrab
+EXPORT_SYMBOL	 vmlinux 0xfdd6bbad	__wake_up
+EXPORT_SYMBOL	 vmlinux 0xfded48ed	enable_kernel_fp
+EXPORT_SYMBOL	 vmlinux 0xfdfcdd5f	__csum_partial
+EXPORT_SYMBOL	 vmlinux 0xfdfcf183	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0xfdff71c1	__debugger_iabr_match
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe1d2e94	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0xfe2a4380	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0xfe4346eb	devm_devfreq_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe6f2723	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xfe7c68e6	mmc_request_done
+EXPORT_SYMBOL	 vmlinux 0xfe86dde7	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0xfe891e43	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0xfe8ad4c3	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xfe916dc6	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xfe9824f0	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xfea0b588	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfebf0863	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0xfec5b1a4	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0xfecf1619	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfee15d32	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0xfee8df94	of_graph_get_remote_port_parent
+EXPORT_SYMBOL	 vmlinux 0xfeebc7c4	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xfefcb98e	vme_dma_vme_attribute
+EXPORT_SYMBOL	 vmlinux 0xff119dfd	pcibus_to_node
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff21792b	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0xff3381d7	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0xff58686a	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0xff5af670	override_creds
+EXPORT_SYMBOL	 vmlinux 0xff5cda55	backlight_device_register
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xff6b44e2	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xff781cae	touchscreen_report_pos
+EXPORT_SYMBOL	 vmlinux 0xff82e797	ps2_begin_command
+EXPORT_SYMBOL	 vmlinux 0xff8bd3b0	cur_cpu_spec
+EXPORT_SYMBOL	 vmlinux 0xff903b43	frame_vector_destroy
+EXPORT_SYMBOL	 vmlinux 0xff9df835	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0xffa77d8a	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0xffac1cf1	agp_backend_acquire
+EXPORT_SYMBOL	 vmlinux 0xffe690fd	udp_table
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0357c572	kvmppc_xics_rm_complete
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x04df8d43	kvmppc_xics_clr_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0a985a7d	kvmppc_ld
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0af5a672	kvmppc_pr_ops
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0b450dcc	kvmppc_handle_load
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x0b8e34f0	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1a01e7bd	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1a3c8213	kvmppc_handle_store
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1ce15be5	gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x1d3d3da9	kvmppc_set_msr
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2169b455	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x21c89f5d	kvmppc_xics_set_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x24bb05ee	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2a6330f5	kvmppc_prepare_to_enter
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2c1b88e2	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2cc6a1e9	kvmppc_unfixup_split_real
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2cff03d0	kvmppc_core_prepare_to_enter
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2e3de385	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2ef45a9d	kvm_write_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x2feefe73	kvmppc_load_last_inst
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x316e27fc	__tracepoint_kvm_ppc_instr
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x346d2377	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x37ddff83	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3811e807	kvm_init
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3858edbf	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x38c82b2f	mark_page_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3e6a5dc4	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x3f0faa95	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x41873ca7	kvmppc_core_queue_machine_check
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4471bc51	kvmppc_core_dequeue_dec
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x48a8dfe6	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x490a2cb9	kvmppc_st
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4995800e	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x4f39679b	kvmppc_emulate_mmio
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x5053911f	kvmppc_core_queue_program
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x56b1ef01	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x58c24c26	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x5b9c3248	kvmppc_h_put_tce
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x609580d2	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x61df67d3	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x62e0570a	kvmppc_h_put_tce_indirect
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x63924646	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x643fe043	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6ec6725c	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x6f6653d8	gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x74c97dc7	kvmppc_h_logical_ci_store
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x74ca49d3	kvm_read_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x75f31e44	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x78b1b02d	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x798a17a0	kvmppc_core_queue_dec
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7b738f5d	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x7f21e0e1	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x8af62f9e	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x8b412417	kvmppc_xive_set_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x8d95e9cd	kvmppc_core_queue_inst_storage
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x91ceb6ee	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x947fa730	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x970d2623	vcpu_load
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x98dfe007	kvm_vcpu_kick
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9d8de8c9	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9def941a	kvmppc_xive_clr_mapped
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa10f49e1	kvmppc_core_queue_data_storage
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa39ae0bd	kvmppc_h_logical_ci_load
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa3e2d6bd	kvmppc_core_pending_dec
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa682ede6	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xa89e696a	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xab59d373	kvmppc_free_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xad65830d	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xadcae1ae	kvmppc_rtas_hcall
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xaf6e061e	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xb2f0fc2d	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xbc3257d4	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xbdfb63cf	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xbe3b0978	kvmppc_kvm_pv
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xbf6e764a	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc55536cd	kvmppc_hv_ops
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc70e4b59	kvmppc_claim_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc74c69c1	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xc874214f	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xcc44961f	kvmppc_alloc_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xd1c70e30	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xd4aecde9	vcpu_put
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xd66adf62	kvmppc_gpa_to_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xd9d61192	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdcda8b06	kvmppc_sanity_check
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xdd44d2c9	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe014a7fc	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe09f6f08	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe11e5176	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe28bad39	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe3029526	kvmppc_xics_hcall
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe3d7b783	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xe75375ef	kvmppc_book3s_queue_irqprio
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xed1a6600	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xed48ed09	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf4da3546	kvmppc_init_lpid
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf5937487	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xf8546a0c	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xfc2f7cc5	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xfd19aefa	kvmppc_xive_push_vcpu
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm 0xfdf46a88	kvmppc_h_stuff_tce
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-hv 0x2d88f1f3	kvmhv_copy_from_guest_radix
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-hv 0x9b4be060	kvmhv_copy_to_guest_radix
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-hv 0xf8aeb0ea	__kvmhv_copy_tofrom_guest_radix
+EXPORT_SYMBOL_GPL	 arch/powerpc/kvm/kvm-pr 0x4942dbf5	kvmppc_emulate_instruction
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3545243a	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3dfd157a	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x3e49919e	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x66f97a46	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6a15964f	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x6eb5df53	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x73422145	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x76fc1896	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x7801fb58	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xb25ee19b	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbc81760d	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc90c4d62	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xc9d6c52f	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xcb88a8d4	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd1f7e04e	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd8fe4d63	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdcb9af06	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdd014f9e	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xfdc00a0c	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0xcedd2046	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x38da20c6	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0xaa4a15ae	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x5b39471e	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x5b5909b5	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x13f93de3	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x1ea03f49	__async_tx_find_channel
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x51ca3eb0	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xd24fee73	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x2197b112	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0xa22170d4	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x977be610	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x36f216ce	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x991dcc67	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x2245e872	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x9bb4c4af	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xccbdc19a	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xfe581aaa	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x0481ff74	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x06bc8d83	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x115ea101	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3c1b1428	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x4f595a64	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x5b70b3c9	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x608a497a	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x960ae228	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xb331aa61	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xbe59a712	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd2b6b1f9	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xd8838f6a	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xff21ccd6	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1506782a	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1f525cfa	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3ef148dc	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x3f0175aa	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x50498fcf	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x52df6770	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x8a466253	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x90fbb69b	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x94bcb9f0	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x9d25d035	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xc4b7bbb2	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xd4f7e81b	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xdbe8580c	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf0ad3478	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6cc67a1c	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x6f6f5cf0	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x802ceeaa	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x0a2f3a68	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x6df5a542	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x75b18eb7	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0xff5e6a3d	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x288c0118	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x024fd6d0	ahci_save_initial_config
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x06dd8749	ahci_init_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x0fbf2f7e	ahci_reset_em
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x1ae2b756	ahci_port_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x2ac31995	ahci_stop_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x31d31dfa	ahci_check_ready
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x326c4cc0	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3ce58f3e	ahci_set_em_messages
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x3eb04d8e	ahci_print_info
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x49bea461	ahci_kick_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x523dce0d	ahci_reset_controller
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x575ad100	ahci_qc_issue
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x59414d92	ahci_host_activate
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x636a2884	ahci_error_handler
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x68d164d4	ahci_start_engine
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x6ea16b66	ahci_do_softreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x92d3d8d2	ahci_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0x94a769a0	ahci_do_hardreset
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xb47970ca	ahci_dev_classify
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xbad54090	ahci_start_fis_rx
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xd0cd9060	ahci_sdev_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe25d8430	ahci_shost_attrs
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xe7b946be	ahci_handle_port_intr
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci 0xfeb59503	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x0350ec8c	ahci_platform_enable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x07a74eeb	ahci_platform_shutdown
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x12c57107	ahci_platform_disable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x67557649	ahci_platform_enable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x7ad43aba	ahci_platform_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8156bafc	ahci_platform_disable_regulators
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8688b532	ahci_platform_enable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x882a0464	ahci_platform_disable_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x8be71061	ahci_platform_enable_clks
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0x9f03796c	ahci_platform_suspend
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xa8c9cec6	ahci_platform_init_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xcf1c3e50	ahci_platform_resume_host
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf1cd01b6	ahci_platform_ops
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xf7320f7f	ahci_platform_get_resources
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xfb96f072	ahci_platform_resume
+EXPORT_SYMBOL_GPL	 drivers/ata/libahci_platform 0xfe77172f	ahci_platform_disable_phys
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_platform 0xd778cc51	__pata_platform_probe
+EXPORT_SYMBOL_GPL	 drivers/ata/pata_sis 0x41b66ccb	sis_info133_for_sata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x727ea304	charlcd_poke
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0x9192a401	charlcd_register
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xa2a58bbe	charlcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xac53a91b	charlcd_unregister
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/charlcd 0xd0cc2e18	charlcd_free
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x14102f23	ks0108_displaystate
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x48a70518	ks0108_writedata
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x4f506333	ks0108_startline
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0x6edae968	ks0108_isinited
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xbf4774db	ks0108_writecontrol
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xedde6df2	ks0108_page
+EXPORT_SYMBOL_GPL	 drivers/auxdisplay/ks0108 0xfee8ef7b	ks0108_address
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-i3c 0x567e2746	__devm_regmap_init_i3c
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x08c6dadf	__devm_regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-sccb 0x4f4c4815	__regmap_init_sccb
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xa622fa7f	__regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-slimbus 0xb317a61b	__devm_regmap_init_slimbus
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x576cc419	__devm_regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x7d13ea2a	__devm_regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0x8245f619	__regmap_init_spmi_ext
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-spmi 0xe843f313	__regmap_init_spmi_base
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x3213f167	__devm_regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/base/regmap/regmap-w1 0x7f671796	__regmap_init_w1
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x058d1545	bcma_chipco_gpio_outen
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x222d6cf2	bcma_chipco_gpio_out
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x2b212229	bcma_host_pci_irq_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x318624b2	bcma_chipco_get_alp_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x6f9e9d62	bcma_chipco_regctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x70fc253e	bcma_core_enable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x72a3996f	bcma_core_disable
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x79b56abd	bcma_pmu_get_bus_clock
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x80e88142	bcma_core_pci_power_save
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x82ff2ce2	bcma_chipco_pll_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x8aa52fd6	bcma_core_pll_ctl
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x918a31bc	bcma_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0x9e8426d2	bcma_chipco_chipctl_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xa8734cff	bcma_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xac6ed2a3	bcma_core_set_clockmode
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb41e8af5	__bcma_driver_register
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xb8319019	bcma_chipco_pll_maskset
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xc3985348	bcma_host_pci_up
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd3fced3f	bcma_chipco_b_mii_write
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd5ec9bf2	bcma_core_is_enabled
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd7174fd8	bcma_chipco_pll_read
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xd7cf95c1	bcma_chipco_gpio_control
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xf9e4780e	bcma_host_pci_down
+EXPORT_SYMBOL_GPL	 drivers/bcma/bcma 0xfe03ac5b	bcma_find_core_unit
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x55b9b585	btbcm_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x6638afd5	btbcm_setup_apple
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x83b4f85b	btbcm_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0x9cffb7ef	btbcm_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xa88b5871	btbcm_setup_patchram
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btbcm 0xf1c6f890	btbcm_finalize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x0956185f	btintel_version_info
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x196e9cb2	btintel_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x21e451f4	btintel_load_ddc_config
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x4ca89209	btintel_set_diag
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x795e3b4c	btintel_set_event_mask_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x7e5250b2	btintel_regmap_init
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x905a3395	btintel_enter_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x90b207a3	btintel_set_event_mask
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x926f819b	btintel_send_intel_reset
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x9eb8594e	btintel_check_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0x9f18dc12	btintel_set_diag_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xa7c41dfd	btintel_read_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xc75122bf	btintel_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe6b86967	btintel_hw_error
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xe79ee9be	btintel_read_boot_params
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf3c7bf34	btintel_secure_send
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btintel 0xf5ee94ca	btintel_exit_mfg
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x00a8b164	btmrvl_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x1f4d47d0	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x25d21c0d	btmrvl_pscan_window_reporting
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x26d79d3e	btmrvl_remove_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x288ccd8e	btmrvl_send_hscfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x47748d8e	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x5b3acc63	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x6f3ca624	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x7b7ac3f1	btmrvl_interrupt
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0x8df79867	btmrvl_process_event
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btmrvl 0xc4c7deda	btmrvl_add_card
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x12e1dcbf	qca_set_bdaddr_rome
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x4192a97a	qca_send_pre_shutdown_cmd
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0x811ce11b	qca_set_bdaddr
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xe34c09fa	qca_uart_setup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btqca 0xefe8ca19	qca_read_soc_version
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x13588f34	btrtl_initialize
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x53c283b7	btrtl_get_uart_settings
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0x6797f99c	btrtl_setup_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xaf78f260	btrtl_free
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xbcd69cfa	btrtl_download_firmware
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/btrtl 0xfca1774d	btrtl_shutdown_realtek
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0x32835c24	hci_uart_tx_wakeup
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xa7c0e248	hci_uart_register_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xf4ee7f4a	hci_uart_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/bluetooth/hci_uart 0xfcdcbdf0	h4_recv_buf
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x21899c0f	__moxtet_register_driver
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x594ac705	moxtet_device_write
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x6cb4e8f2	moxtet_device_written
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0x8ad3979e	moxtet_device_read
+EXPORT_SYMBOL_GPL	 drivers/bus/moxtet 0xa4065daa	moxtet_bus_type
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0160da89	counter_count_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x01aab51b	counter_count_direction_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x0b4f0aea	counter_count_write_value_get
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x1318b866	counter_device_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x17c6414d	devm_counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x27420a29	counter_count_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x396461ba	counter_device_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x3feccbbf	counter_signal_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x48b46be4	counter_signal_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x5facadbb	counter_signal_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0x762c7599	counter_count_enum_write
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc5c7c6e5	counter_device_enum_read
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xc68e2cd0	counter_unregister
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xe9a67acd	devm_counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xee526d0f	counter_count_mode_str
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf7722cc7	counter_register
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xf79abbb2	counter_count_read_value_set
+EXPORT_SYMBOL_GPL	 drivers/counter/counter 0xfa5fd25a	counter_signal_enum_write
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0x17c571ed	nx842_crypto_compress
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0x56302466	nx842_crypto_decompress
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0x8eaa6f52	nx842_crypto_exit
+EXPORT_SYMBOL_GPL	 drivers/crypto/nx/nx-compress 0xc0609b25	nx842_crypto_init
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x50577f8e	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/dax/pmem/dax_pmem_core 0xe8d74f5c	__dax_pmem_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0x530a4707	dw_edma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw-edma/dw-edma 0xc6737564	dw_edma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x373f5e59	dw_dma_filter
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0x90156e52	idma32_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xa26b8030	dw_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb80c5792	dw_dma_remove
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xb9eade08	idma32_dma_probe
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xba5d67de	do_dw_dma_enable
+EXPORT_SYMBOL_GPL	 drivers/dma/dw/dw_dmac_core 0xf9f29893	do_dw_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x0326cdd3	fsl_edma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x079c098e	fsl_edma_setup_regs
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x0966161c	fsl_edma_cleanup_vchan
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x2056fd12	fsl_edma_xfer_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x33c52ba4	fsl_edma_issue_pending
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x3d6a6972	fsl_edma_tx_status
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x4185099c	fsl_edma_pause
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x79624164	fsl_edma_resume
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x862629f5	fsl_edma_prep_dma_cyclic
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x88e2f7da	fsl_edma_terminate_all
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x891eed75	fsl_edma_alloc_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0x92a8108b	fsl_edma_slave_config
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb294445e	fsl_edma_free_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xb9f68ee5	fsl_edma_disable_request
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xc03b1bae	fsl_edma_free_chan_resources
+EXPORT_SYMBOL_GPL	 drivers/dma/fsl-edma-common 0xf4c6eda7	fsl_edma_chan_mux
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x27371bed	hidma_mgmt_setup
+EXPORT_SYMBOL_GPL	 drivers/dma/qcom/hdma_mgmt 0x57970bc8	hidma_mgmt_init_sys
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x32d659b8	vchan_tx_submit
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x48fdae41	vchan_tx_desc_free
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0x8410fb23	vchan_find_desc
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xac7f0587	vchan_dma_desc_free_list
+EXPORT_SYMBOL_GPL	 drivers/dma/virt-dma 0xceb77c85	vchan_init
+EXPORT_SYMBOL_GPL	 drivers/firewire/firewire-core 0xe86fb5c7	fw_card_release
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x16da8e11	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x51fb0bc2	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x0f0d171c	dfl_fpga_enum_info_add_dfl
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x19783acc	dfl_fpga_port_ops_del
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x25897bd9	dfl_fpga_dev_feature_uinit
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x2a82cd25	dfl_fpga_enum_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x376c6bd8	__dfl_fpga_cdev_find_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x43eb26e6	dfl_fpga_dev_ops_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x45f68a7a	dfl_fpga_cdev_assign_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x52967b42	dfl_fpga_port_ops_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0x7b13e967	dfl_fpga_cdev_config_ports_vf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xa95d2e32	dfl_fpga_cdev_release_port
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb15b9c33	dfl_fpga_port_ops_add
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xb4deb10b	dfl_fpga_feature_devs_remove
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xc4fdfda4	dfl_fpga_check_port_id
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd2f55c6a	dfl_fpga_feature_devs_enumerate
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xd3fd50e1	dfl_fpga_port_ops_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xe97787a9	dfl_fpga_dev_feature_init
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf337fc7d	dfl_fpga_cdev_config_ports_pf
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf4384d11	dfl_fpga_dev_ops_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/dfl 0xf5441870	dfl_fpga_enum_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0633c4b9	fpga_bridges_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x0b2b884c	fpga_bridges_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x1cb8904f	fpga_bridge_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x228dc6b6	fpga_bridge_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x290dd01a	of_fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x2c8167cf	fpga_bridges_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x502856ce	fpga_bridge_enable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x6f1580b0	fpga_bridge_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x777736d4	of_fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x8733953c	devm_fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0x930145d8	fpga_bridge_disable
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xad0e6ba1	fpga_bridge_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xca04b6d7	fpga_bridge_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xe57acd28	fpga_bridge_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-bridge 0xfde1c4b7	fpga_bridge_get_to_list
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x07f57954	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x0813cec9	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x2efc9079	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x447b2ef2	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4686d181	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4c0966df	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x680c18f6	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x73cc3889	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x958a7589	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xc62f3214	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xd8fea58b	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xe32a53f9	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xec834e9b	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x0d065b66	fpga_region_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x1efb3796	fpga_region_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x237fda57	devm_fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x2d29e79c	fpga_region_class_find
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0x959b714c	fpga_region_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xd2b844f3	fpga_region_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-region 0xd9523e14	fpga_region_program_fpga
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x0f8ef568	fsi_device_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x1c0c6dc6	fsi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x1effad00	fsi_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x3a93847e	fsi_slave_claim_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x53cde23f	fsi_master_rescan
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x5a57d574	fsi_free_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x68b0db44	fsi_device_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x7746e482	fsi_bus_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x78060f23	fsi_slave_read
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0x7932a96f	fsi_master_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xbd88af0a	fsi_get_new_minor
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xcbde63bd	fsi_cdev_type
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xce22aee2	fsi_slave_release_range
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xd942f235	fsi_slave_write
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-core 0xf20119f8	fsi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-occ 0x46cd7937	fsi_occ_submit
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x56263b67	sbefifo_parse_status
+EXPORT_SYMBOL_GPL	 drivers/fsi/fsi-sbefifo 0x68ab7b6e	sbefifo_submit
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x288fd90d	gnss_register_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x5e27512e	gnss_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0x767f48e9	gnss_deregister_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xdc9699eb	gnss_insert_raw
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss 0xea63ffa9	gnss_put_device
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x28c4cc1a	gnss_serial_free
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x2df5c65d	gnss_serial_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x65bae367	gnss_serial_register
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x69fa23a0	gnss_serial_deregister
+EXPORT_SYMBOL_GPL	 drivers/gnss/gnss-serial 0x8a10e97c	gnss_serial_allocate
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xab732fc2	__max730x_probe
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-max730x 0xe747322c	__max730x_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05	dw_hdmi_set_channel_count
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5	dw_hdmi_phy_i2c_set_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x157e02b6	dw_hdmi_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2d1c0e80	dw_hdmi_setup_rx_sense
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2fac9436	dw_hdmi_set_channel_allocation
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x316212a8	dw_hdmi_unbind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x42926f4a	dw_hdmi_resume
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x4a9b174f	dw_hdmi_remove
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7	dw_hdmi_phy_gen2_txpwron
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee	dw_hdmi_phy_i2c_write
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x822671f9	dw_hdmi_set_high_tmds_clock_ratio
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43	dw_hdmi_set_sample_rate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b	dw_hdmi_phy_gen2_pddq
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xa37d2b25	dw_hdmi_bind
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xce27012a	dw_hdmi_audio_disable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd1e7e977	dw_hdmi_probe
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd6968220	dw_hdmi_phy_setup_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd8fe547b	dw_hdmi_audio_enable
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xdafa1790	dw_hdmi_phy_read_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xf5922009	dw_hdmi_phy_update_hpd
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x099230a8	drm_gem_cma_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2231eb85	drm_gem_cma_prime_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x2906e8b8	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x33a032ea	drm_gem_cma_dumb_create_internal
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x3457b435	drm_gem_cma_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x34eb7cb1	drm_gem_cma_prime_vunmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x393dc21b	drm_gem_shmem_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x39e72ed5	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x4d44d611	drm_display_mode_to_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x585514d2	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x5d07c4c2	drm_gem_cma_mmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x649118d2	drm_of_find_panel_or_bridge
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x80f6b7de	drm_of_encoder_active_endpoint
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x849f3742	drm_gem_cma_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x97cad817	drm_gem_cma_prime_vmap
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9ca7894d	drm_gem_cma_prime_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x9efa116e	drm_gem_cma_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa2020c5b	drm_gem_shmem_prime_import_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xa64119f8	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xac9ee27d	drm_gem_shmem_get_pages_sgt
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xad885165	drm_bus_flags_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xae9514d1	of_get_drm_display_mode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb3e2d898	drm_gem_shmem_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xba7fc668	drm_gem_shmem_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc0d11c2c	drm_of_component_match_add
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc5bef1d3	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xc62a50db	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe4250f88	drm_gem_shmem_dumb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xeb0e20e4	drm_gem_shmem_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xec55cbce	drm_display_mode_from_videomode
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xf1a82912	drm_gem_cma_free_object
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xfeb7969f	drm_gem_shmem_get_sg_table
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x1c60c4d7	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x2322fc0a	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x41ab456a	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x93c036c6	drm_fb_cma_get_gem_addr
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xa624bfb4	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xcb8ab918	drm_fb_cma_get_gem_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xdfd7d45a	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x38d281c5	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x8385192c	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x890f5e6a	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x06000c59	gb_connection_create_offloaded
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0f13fb07	__tracepoint_gb_message_submit
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x0faa4f7d	gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15354e20	gb_connection_destroy
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x15d1942f	greybus_disabled
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1c53bf01	gb_connection_enable_tx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1d06d48c	gb_hd_cport_reserve
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x1d0db78e	gb_operation_request_send
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x204def7b	gb_connection_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x212fbaa2	gb_operation_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x26ecc150	gb_connection_disable_forced
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x279ef184	gb_svc_intf_set_power_mode
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x2adf11be	gb_operation_request_send_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x32666e2f	greybus_register_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x3ffc74dc	gb_interface_request_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x4466ea39	__tracepoint_gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x52ba065d	gb_operation_result
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x596810be	gb_operation_unidirectional_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x5a4def72	gb_operation_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x66bae299	gb_hd_cport_release_reserved
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x6fbdeada	gb_operation_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x77dab40c	gb_hd_shutdown
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x7bf4ca10	__tracepoint_gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x84a88675	__tracepoint_gb_hd_release
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8531da1d	__tracepoint_gb_hd_del
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x88ab3e5a	gb_operation_sync_timeout
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8ad50f96	gb_hd_output
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x8d06f522	gb_hd_put
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x90c66ff6	gb_connection_latency_tag_disable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x979bc622	gb_debugfs_get
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x995ba1df	gb_operation_cancel
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0x9f8319b7	gb_connection_disable_rx
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa3e15d42	gb_operation_response_alloc
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xa5ef6c76	gb_connection_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xaff68cdc	greybus_message_sent
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb110c795	greybus_data_rcvd
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xb9647081	greybus_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc2a0cac5	gb_connection_create_flags
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xc4a850aa	gb_hd_add
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcd86dc0a	gb_connection_latency_tag_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xcfc6f277	__tracepoint_gb_hd_in
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd11ed8b3	gb_connection_enable
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xd6cc4b21	gb_hd_create
+EXPORT_SYMBOL_GPL	 drivers/greybus/greybus 0xea778e31	gb_operation_get_payload_size_max
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x05495392	hid_debug
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0972a683	hid_dump_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x0b09d451	__hid_register_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x118c04f4	hid_lookup_quirk
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x18e5d292	hidraw_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x19d52f1f	hid_quirks_exit
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1abbc517	hid_field_extract
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1f50c2c4	hidraw_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x1fa5227a	hidinput_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x2ddb229b	hid_parse_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x3ae8ce64	hid_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x41721c0f	hid_debug_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x45a067ce	hidraw_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x47abac5f	hid_alloc_report_buf
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x4999235b	__hid_request
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x51144646	hid_hw_stop
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x557a9b56	hid_ignore
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x564a8c68	hid_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x57e03d06	hid_hw_start
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x5b970025	hid_report_raw_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x65c5bae0	hid_input_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x6cfe5a92	hid_dump_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x78461b4c	hid_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x7a292043	hid_dump_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x86de967c	hid_destroy_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8b13a8b8	hid_snto32
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x8ed7aa6a	hid_validate_values
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x97633e2e	hid_setup_resolution_multiplier
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0x98af9e22	hid_compare_device_paths
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa02a55ac	hidinput_find_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa5115320	hidinput_count_leds
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xa7c13e49	hid_hw_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xadfcbe00	hidinput_calc_abs_res
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xba738ccd	hid_dump_input
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc1c378e9	hid_register_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc68f9288	hid_check_keys_pressed
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xc8ef845c	hid_set_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd369a4a1	hid_hw_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd41f66b5	hid_open_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xd9bbd638	hid_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdbcb4298	hid_output_report
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xdc6ad7c2	hid_add_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe2ed4976	hid_match_device
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe828bae4	hidinput_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xe926cfa9	hid_resolv_usage
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf752428d	hidinput_get_led_field
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xf9b74263	hidinput_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid 0xfa355613	hid_quirks_init
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x2f622ea1	roccat_disconnect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0x3e4427c8	roccat_report_event
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat 0xba7cf386	roccat_connect
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x58d7c57e	roccat_common2_send_with_status
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x82068ccc	roccat_common2_receive
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x97b37ba4	roccat_common2_sysfs_write
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0x98ee7045	roccat_common2_sysfs_read
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xb83c5b71	roccat_common2_device_init_struct
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-roccat-common 0xd9ac12b3	roccat_common2_send
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x11cda210	sensor_hub_register_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x43555479	hid_sensor_get_usage_index
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x4e5f1e82	sensor_hub_device_close
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x536ada59	sensor_hub_device_open
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x76ce98ce	sensor_hub_set_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x7c4c08d4	sensor_hub_input_attr_get_raw_value
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0x9f619799	sensor_hub_get_feature
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xcc3a6e34	sensor_hub_remove_callback
+EXPORT_SYMBOL_GPL	 drivers/hid/hid-sensor-hub 0xe4279b0e	sensor_hub_input_get_attribute_info
+EXPORT_SYMBOL_GPL	 drivers/hid/i2c-hid/i2c-hid 0x6304bc16	i2c_hid_ll_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/uhid 0x14e3631f	uhid_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x1e4a2733	hiddev_hid_event
+EXPORT_SYMBOL_GPL	 drivers/hid/usbhid/usbhid 0x51b6f852	usb_hid_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1939e946	hsi_register_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1d75b80c	hsi_unregister_port_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x1ea3ad1e	hsi_release_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x2c3b9cb1	hsi_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x51331b03	hsi_remove_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5210a5bf	hsi_board_list
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x57070e01	hsi_async
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5e3302c1	hsi_new_client
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x5f7e35a7	hsi_register_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x84d4bb46	hsi_claim_port
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x8ccf192b	hsi_put_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0x9a99e2c1	hsi_port_unregister_clients
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xb501155f	hsi_alloc_controller
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xccf9088f	hsi_event
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe181d512	hsi_get_channel_id_by_name
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe376f740	hsi_add_clients_from_dt
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xe5de57c1	hsi_alloc_msg
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xefdaebcf	hsi_register_client_driver
+EXPORT_SYMBOL_GPL	 drivers/hsi/hsi 0xfea151fb	hsi_free_msg
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xc8675b9a	adt7x10_dev_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xe48b3ccc	adt7x10_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/adt7x10 0xf3c43908	adt7x10_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x0e1264e7	pmbus_write_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1094568c	pmbus_update_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1b654809	pmbus_read_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x1c5dd2df	pmbus_get_driver_info
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x28361269	pmbus_set_page
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x62fdc363	pmbus_get_fan_rate_cached
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6966b37b	pmbus_get_fan_rate_device
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x6e07a169	pmbus_clear_faults
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x79793965	pmbus_write_byte
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0x8b6509c7	pmbus_check_byte_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xa45f65c3	pmbus_write_word_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc0909d3f	pmbus_do_remove
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xc398a5c9	pmbus_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xd813c1e4	pmbus_clear_cache
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe35b8e35	pmbus_check_word_register
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe585a155	pmbus_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe62a8a25	pmbus_do_probe
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe6607cee	pmbus_read_byte_data
+EXPORT_SYMBOL_GPL	 drivers/hwmon/pmbus/pmbus_core 0xe8f45435	pmbus_update_fan
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x099e265e	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x2288b402	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x26269d4b	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x66243c62	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x802e39cb	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x8b84268e	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x8fd0031e	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xc21321e2	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xf1c4fff8	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x5ac9546f	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x92df3bc0	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0xae92ec50	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x0525d739	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x1d75448a	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x4cdc8652	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x5aba200b	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6b5bf3d4	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x764a4915	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x7b9157eb	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xd8a3b3eb	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xfdb78c7a	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x542ce51d	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x548ce045	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x8e2d960d	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xa25eaa1f	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-smbus 0x34750a39	i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0a02ef78	i3c_master_queue_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x0ff68460	dev_to_i3cdev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3bfc563d	i3c_master_defslvs_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x3ce3d943	i3c_master_disec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4413be58	i3c_device_do_priv_xfers
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x4b43487f	i3c_master_add_i3c_dev_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6b65c379	i3c_device_free_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x6efdfce3	i3c_device_match_id
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x70038253	i3c_device_disable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x70b2427b	i3c_generic_ibi_get_free_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x71552849	i3c_device_enable_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x76fe3e05	i3c_generic_ibi_free_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x819a29c5	i3c_master_register
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8d947ec0	i3c_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x8e4577f1	i3c_generic_ibi_recycle_slot
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0x957f2a9a	i3c_device_request_ibi
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xaaf81ecd	i3c_master_entdaa_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xae6358b8	i3c_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb3c3f5c5	i3c_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb416e32b	i3c_master_enec_locked
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xb69ed67c	i3c_master_do_daa
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xbe20f7c9	i3cdev_to_dev
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xc828643d	i3c_device_get_info
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xda272e58	i3c_generic_ibi_alloc_pool
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xe9511c74	i3c_master_get_free_addr
+EXPORT_SYMBOL_GPL	 drivers/i3c/i3c 0xebfa4530	i3c_master_set_info
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xeb061fa3	adxl372_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/adxl372 0xfba41185	adxl372_readable_noinc_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x1dc8368d	bmc150_accel_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0x4810f537	bmc150_regmap_conf
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xac743845	bmc150_accel_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/bmc150-accel-core 0xb952786d	bmc150_accel_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0x07cdfffd	mma7455_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xa3522cbf	mma7455_core_regmap
+EXPORT_SYMBOL_GPL	 drivers/iio/accel/mma7455_core 0xd94644bb	mma7455_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0x8c6f74d6	ad7606_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad7606 0xadde7189	ad7606_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x137f9255	ad_sd_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x49ca2ebc	ad_sd_init
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x698b5167	ad_sd_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x7ab4a1fe	ad_sd_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0x8e7ac913	ad_sd_set_comm
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc2e10bda	ad_sd_calibrate_all
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xc5d14cd7	ad_sigma_delta_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xda4e2333	ad_sd_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xec6d6650	ad_sd_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/adc/ad_sigma_delta 0xf81ebafe	ad_sd_validate_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x15667431	iio_channel_cb_get_channels
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x22b85fee	iio_channel_get_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x267c0508	iio_channel_release_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c	iio_channel_stop_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x2f93e7c7	iio_channel_cb_get_iio_dev
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef	iio_channel_start_all_cb
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab	iio_channel_cb_set_buffer_watermark
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x3391543d	iio_hw_consumer_disable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x80da991a	devm_iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15	iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9	iio_hw_consumer_enable
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xd99ba6e2	devm_iio_hw_consumer_free
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-hw-consumer 0xf7bb9835	iio_hw_consumer_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0x1eaebdfb	devm_iio_triggered_buffer_cleanup
+EXPORT_SYMBOL_GPL	 drivers/iio/buffer/industrialio-triggered-buffer 0xce84cced	devm_iio_triggered_buffer_setup
+EXPORT_SYMBOL_GPL	 drivers/iio/chemical/bme680_core 0x0407ca56	bme680_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x26dfd488	ad5592r_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5592r-base 0x8c7e4d78	ad5592r_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x05b38e43	ad5686_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/dac/ad5686 0x20cb6209	ad5686_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x18d6991e	bmg160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0x3d6e18f8	bmg160_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/bmg160_core 0xdcf75090	bmg160_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x058bd4ef	fxas21002c_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x0dfb8820	fxas21002c_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/gyro/fxas21002c_core 0x4ed0d904	fxas21002c_core_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x084bda31	adis_check_status
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x21a32c67	adis_write_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x75112feb	adis_initial_startup
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x7d6daee3	adis_read_reg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0x9c84e0d0	adis_cleanup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb87e8839	adis_setup_buffer_and_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xb8869764	adis_probe_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xba957747	adis_init
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xbc69b5e7	adis_single_conversion
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xdd1c01b3	adis_reset
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xf5e91e96	adis_remove_trigger
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/adis_lib 0xffe7d8f9	adis_update_scan_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/bmi160/bmi160_core 0x5d3a1c62	bmi160_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x05b97088	inv_mpu6050_set_power_itg
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x842fd76c	inv_mpu_core_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xf00fe086	inv_mpu_pmops
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x03f544bc	iio_push_to_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0951ab12	devm_iio_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x0fd3dc33	iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x14d754b6	devm_iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x17facfc2	iio_enum_available_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x1a37d34b	iio_write_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x23a5770a	iio_read_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x23e12cce	iio_read_channel_offset
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x26f6b499	iio_str_to_fixpoint
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x41670cbf	iio_enum_write
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x42f7e7ad	devm_iio_device_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4ad4d18c	iio_map_array_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x4dce7dd4	iio_format_value
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x50319f11	devm_iio_trigger_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5099ef28	iio_read_max_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x542a1522	__devm_iio_trigger_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x5e3db2e8	iio_read_channel_scale
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x60c72cd7	iio_alloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x611baea6	iio_read_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x6bd169e1	__devm_iio_device_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x74bb6b40	iio_enum_read
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x768ae58a	iio_buffer_set_attrs
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8460996c	devm_iio_trigger_unregister
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x8581a1f1	iio_device_claim_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9e02a995	iio_buffer_put
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9e521b9b	iio_get_channel_ext_info_count
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0x9e830e87	devm_iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa0b77a50	devm_iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa1021ba3	devm_iio_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xa43aa240	iio_dealloc_pollfunc
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xaae42a55	iio_channel_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab137076	iio_read_avail_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xab6f0fa5	iio_read_channel_average_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb158693f	iio_device_attach_buffer
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb5a24a58	iio_buffer_get
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb77d8d40	iio_device_release_direct_mode
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xb9acf020	iio_convert_raw_to_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xbe77be3f	iio_write_channel_ext_info
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc1014042	iio_read_channel_processed
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc215a100	iio_write_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc4495ac6	devm_iio_channel_release_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc65ce8b1	devm_iio_device_match
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc85c12d4	iio_validate_scan_mask_onehot
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc8b52dad	iio_channel_get_all
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xc9a4a345	iio_channel_release
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xcf4e8bca	iio_map_array_register
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xd4db7511	iio_update_buffers
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xda25ead6	iio_read_avail_channel_attribute
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xdf4e70bf	iio_get_channel_type
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xe64f99f9	iio_show_mount_matrix
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xefeb5d1f	devm_iio_trigger_free
+EXPORT_SYMBOL_GPL	 drivers/iio/industrialio 0xf92a9521	iio_read_channel_raw
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x0a1424e0	rm3100_volatile_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0x2868af24	rm3100_common_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xaa911f08	rm3100_readable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/magnetometer/rm3100-core 0xcc7209be	rm3100_writable_table
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/mpl115 0x1a2b02fc	mpl115_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x07ebe6f2	zpa2326_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x2de25db1	zpa2326_isreg_readable
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x4635edaa	zpa2326_probe
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x4a56b1e6	zpa2326_isreg_precious
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x5fc8a677	zpa2326_remove
+EXPORT_SYMBOL_GPL	 drivers/iio/pressure/zpa2326 0x7a60ab19	zpa2326_isreg_writeable
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/input/ff-memless 0x3ca28ae8	input_ff_create_memless
+EXPORT_SYMBOL_GPL	 drivers/input/matrix-keymap 0xca3296cc	matrix_keypad_parse_properties
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x393c6dc3	adxl34x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x49a4fcbd	adxl34x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0x66535a18	adxl34x_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/misc/adxl34x 0xe4586827	adxl34x_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x2fbbce0f	rmi_2d_sensor_abs_process
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5aec436e	__rmi_register_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x5b82be39	rmi_set_attn_data
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x62feb95c	rmi_dbg
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x7fe04bda	rmi_register_transport_device
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8091581f	rmi_driver_suspend
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x80cd9b53	rmi_2d_sensor_of_probe
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x8aec9aa8	rmi_of_property_read_u32
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0x9417d713	rmi_unregister_function_handler
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xa1f235dc	rmi_2d_sensor_configure_input
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xb32e19b2	rmi_2d_sensor_abs_report
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xbced4162	rmi_driver_resume
+EXPORT_SYMBOL_GPL	 drivers/input/rmi4/rmi_core 0xc68992ee	rmi_2d_sensor_rel_report
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x0fa95936	cyttsp4_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0x3fa21fbb	cyttsp4_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp4_core 0xaf706044	cyttsp4_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0x9bd238f5	cyttsp_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_core 0xe8777b03	cyttsp_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x8298d2e4	cyttsp_i2c_write_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/cyttsp_i2c_common 0x9c5444bc	cyttsp_i2c_read_block_data
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x5a4e3469	tsc200x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x8434df30	tsc200x_probe
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0x926704bd	tsc200x_remove
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/tsc200x-core 0xc9f78b5c	tsc200x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x1b750742	wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x297b680a	wm9705_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x34c57550	wm9712_codec
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x507876e5	wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x65c98dc4	wm97xx_get_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x764b906c	wm97xx_set_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x7d3643f4	wm97xx_reg_read
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0x920304b6	wm97xx_config_gpio
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xbed2f147	wm97xx_reg_write
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xcf42161c	wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xece86350	wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL	 drivers/input/touchscreen/wm97xx-ts 0xf86f75ce	wm9713_codec
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x13edaa6e	icc_link_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x1652106e	icc_node_create
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x39664612	icc_node_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x3f8b369a	of_icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x5290c338	icc_disable
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x55054f8c	icc_provider_del
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x6f8fb1bb	of_icc_xlate_onecell
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x721dc554	icc_set_bw
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x9205ea10	icc_provider_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0x961d5626	icc_put
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xa607548b	icc_node_add
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xaa2a5b93	icc_get
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc58a3ee6	icc_node_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xc92d8b62	icc_link_destroy
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xde4dd97a	icc_set_tag
+EXPORT_SYMBOL_GPL	 drivers/interconnect/icc-core 0xffe17c4e	icc_enable
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x3da17f30	ipack_device_init
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x60ff76aa	ipack_driver_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x74bbd38d	ipack_device_add
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0x76bc4d19	ipack_bus_register
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xa4b907da	ipack_device_del
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xcb44b20b	ipack_bus_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xd54eae4c	ipack_put_device
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xe2e4c5c3	ipack_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/ipack/ipack 0xf4292fd3	ipack_get_device
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0x23359aff	unregister_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/isdn/capi/kernelcapi 0xce1414b2	register_capictr_notifier
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x218c5e51	led_set_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x562b6b69	led_get_flash_fault
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x5db0bcdc	led_classdev_flash_register_ext
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0x64050b10	led_classdev_flash_unregister
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xb5157d21	led_set_flash_timeout
+EXPORT_SYMBOL_GPL	 drivers/leds/led-class-flash 0xc4e582fc	led_update_flash_brightness
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x3077c3d9	lp55xx_unregister_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x46535080	lp55xx_register_leds
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x56c6fa05	lp55xx_of_populate_pdata
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x627259c4	lp55xx_update_bits
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x6e292b0a	lp55xx_write
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0x7b96e9d4	lp55xx_init_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xb90c8ad8	lp55xx_read
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc0cc3f70	lp55xx_deinit_device
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xc48d125d	lp55xx_is_extclk_used
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xd4c80a78	lp55xx_register_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/leds-lp55xx-common 0xf6169749	lp55xx_unregister_sysfs
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0x3bd45b0d	ledtrig_audio_set
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-audio 0xce593c22	ledtrig_audio_get
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x749e05f2	ledtrig_flash_ctrl
+EXPORT_SYMBOL_GPL	 drivers/leds/trigger/ledtrig-camera 0x7903e46e	ledtrig_torch_ctrl
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x0a0527be	wf_register_client
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x20383090	wf_unregister_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x4e3871cc	wf_register_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x608e2ee4	wf_register_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x75147afa	wf_set_overtemp
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0x97a47856	wf_unregister_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xa2ff28b0	wf_get_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xa5703fff	wf_get_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xb0fa2300	wf_put_sensor
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xbcace2a5	wf_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xde55a2ed	wf_put_control
+EXPORT_SYMBOL_GPL	 drivers/macintosh/windfarm_core 0xed82a14f	wf_clear_overtemp
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x078a1127	__mcb_register_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x2525168f	mcb_alloc_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x3b21ae03	mcb_request_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x44cebd6e	mcb_bus_put
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x56199e3d	mcb_alloc_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x602f7247	mcb_get_irq
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x77bb7a20	mcb_free_dev
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x8350f890	mcb_bus_get
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0x9c2257cc	mcb_device_register
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xad28f16d	mcb_release_bus
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xcff4eea2	chameleon_parse_cells
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xe7e01541	mcb_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xeb2c8905	mcb_release_mem
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xf398ec61	mcb_get_resource
+EXPORT_SYMBOL_GPL	 drivers/mcb/mcb 0xf9482168	mcb_bus_add_devices
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x10439a81	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19a02ba6	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x24ee2a7c	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2515e866	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2869bc82	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x40430b3f	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x4f0eec50	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x52cb1bd3	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5a47b147	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x61f8a4a2	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x666af686	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x77db9ce2	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x78c4e77b	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x83195c57	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x8d0e2577	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x90d77239	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x93c8b623	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x97890220	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x9a530fe1	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa49f3127	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb19c0de4	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb7599baf	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb8cb3ae4	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc3af40d5	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xca6ae723	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xceafa6da	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xcf2b1b68	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd89fb73f	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xed607240	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xefba8a85	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf307604e	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x12747f20	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x15ac9fde	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2963e6a5	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x443e0ae2	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x46cee769	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6027980f	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7596e6ff	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x76c5ce17	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x8d62d8b0	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x906d4f1f	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x939b8009	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x97101055	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x996dafa7	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9f9c1912	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xc6184f2f	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xf47658ae	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xfc11e556	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xbd1dfab1	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x7890d535	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x890723f7	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x9b4dd415	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xadbefda4	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xcf8c2590	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bdae47	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xfdc4b913	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x091d4a80	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x720d8cb1	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x2e4dd9ef	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa4c1c090	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbfd078b1	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xc93e1f82	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd12f3d47	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xeebcc343	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x24621ca3	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x30c37cc0	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48187be3	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4f477261	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5375ca71	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5cf0d0bb	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7551b46e	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b6b3af5	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9290e07a	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x932a6ffc	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd51c29f1	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a	b2c2_flexcop_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x15288160	saa7146_setgpio
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x152923ac	saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x37b7edca	saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x543f9a56	saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0x929c6030	saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xa4001329	saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xc08eca17	saa7146_unregister_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xd5aa59a2	saa7146_pgtable_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe10d1b11	saa7146_register_extension
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xe3cd9b5c	saa7146_debug
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146 0xfa560c05	saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0x65b676e8	saa7146_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xa4c036c1	saa7146_start_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xd8269828	saa7146_vv_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xe3324ab6	saa7146_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xe43458f3	saa7146_vv_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xea985cc3	saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL	 drivers/media/common/saa7146/saa7146_vv 0xf0ecd55f	saa7146_stop_preview
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x21e36bf2	smscore_registry_getmode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x22ae67f6	sms_board_lna_control
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x37d91069	smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x388b1da0	sms_board_power
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x45284ae9	smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x532c07e6	smscore_putbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x63832efc	smscore_register_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x73c4f65e	smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x74ee9098	sms_board_load_modules
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7b08790f	smscore_get_device_mode
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7c576277	smsendian_handle_message_header
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7db9dd29	smscore_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x7f8f5a63	smscore_register_hotplug
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x83128868	sms_board_event
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x83a23106	smscore_set_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x844539ae	sms_get_board
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x868a5376	sms_board_led_feedback
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x8f74b589	smscore_start_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x99a81ab3	smsclient_sendrequest
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0x9c2225ed	smscore_translate_msg
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xae1dbaf2	sms_board_setup
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xb7e1955a	smscore_getbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xbbdb5c42	smscore_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xca233ed7	smscore_onresponse
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xf7c8688e	smscore_get_board_id
+EXPORT_SYMBOL_GPL	 drivers/media/common/siano/smsmdtv 0xffe5775e	smscore_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x03005a48	tpg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd	tpg_aspect_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x4d1d285c	tpg_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x517e7ccd	tpg_fill_plane_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x579c6308	tpg_gen_text
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6026aaf0	tpg_log_status
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x6960e899	tpg_s_crop_compose
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x756516e7	tpg_s_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x7a5d8c0b	tpg_update_mv_step
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x86b4ddf7	tpg_reset_source
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0x975a1e29	tpg_g_interleaved_plane
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xaa5503d9	tpg_set_font
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6110b6e	tpg_free
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xc6808be7	tpg_calc_text_basep
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xce8159bb	tpg_pattern_strings
+EXPORT_SYMBOL_GPL	 drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46	tpg_fillbuffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x004a9541	vb2_core_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x02309166	__tracepoint_vb2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x2c8aa36c	vb2_core_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x33002b1e	vb2_discard_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x36985b97	vb2_core_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3d206e16	vb2_buffer_done
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x3dd263c0	vb2_core_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x4db1f6b6	vb2_wait_for_all_buffers
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x53818db9	vb2_core_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x590efb16	vb2_thread_start
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x5bf2172c	vb2_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6884f58b	vb2_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x6e140e6e	vb2_request_buffer_cnt
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x72ddb883	__tracepoint_vb2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x741c5c63	vb2_plane_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x76117af0	vb2_plane_cookie
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0x94dcc546	vb2_core_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xac939323	vb2_core_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xacfb130c	vb2_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xb92c4d79	vb2_core_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xba98720e	vb2_core_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xc883d04d	vb2_request_object_is_buffer
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd0506181	vb2_core_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xd6249b3e	__tracepoint_vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xe5a08ef1	vb2_thread_stop
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xee9c3077	vb2_core_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xf0c756e7	__tracepoint_vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xfcad4984	vb2_queue_error
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-common 0xfcdcf2a8	vb2_core_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x5069f894	vb2_dma_contig_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0x93a530b9	vb2_dma_contig_set_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-contig 0xc163a7c0	vb2_dma_contig_clear_max_seg_size
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-dma-sg 0xcc488663	vb2_dma_sg_memops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-memops 0xa5f9d0b3	vb2_common_vm_ops
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x02e2a13f	vb2_queue_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x0fb75445	vb2_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1643ca2b	vb2_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x193bbc50	vb2_ops_wait_finish
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1a6ca891	_vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x1d85f0cf	vb2_request_validate
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x317b2168	vb2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x36a853ef	vb2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x54231997	vb2_fop_release
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x54c2331a	vb2_queue_init
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x58acd242	vb2_fop_write
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x6f61152a	vb2_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7075611f	vb2_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7edc7834	vb2_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x7fd4a51f	vb2_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8ab7e069	vb2_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x8e265f08	vb2_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x918dd6a9	vb2_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x919c635e	vb2_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0x923a0651	vb2_find_timestamp
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xa7e7808d	vb2_ops_wait_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xacf3579e	vb2_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb62f47f7	vb2_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xb66fbe3b	vb2_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xbdaddea7	vb2_fop_read
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xc422d9f7	vb2_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xd8f0bd98	vb2_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xe3e81913	vb2_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xeb728ba1	vb2_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xed3fca4f	vb2_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-v4l2 0xf24f47f5	vb2_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/common/videobuf2/videobuf2-vmalloc 0xadaa0259	vb2_vmalloc_memops
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x5a986ffd	dvb_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0x87ed54fe	dvb_module_probe
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-core/dvb-core 0xbbcf7020	dvb_module_release
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/as102_fe 0x62b407b7	as102_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ascot2e 0x817806f2	ascot2e_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/atbm8830 0xd2a4449a	atbm8830_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/au8522_dig 0x37c84a06	au8522_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/bcm3510 0x82fe4f49	bcm3510_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22700 0x20397d15	cx22700_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx22702 0xc6ad5f57	cx22702_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24110 0xf764f22d	cx24110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24113 0x45afb320	cx24113_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24116 0xe50b330c	cx24116_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24117 0x3479fc3c	cx24117_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24120 0x204733c7	cx24120_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cx24123 0x4a5247f7	cx24123_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2820r 0x3897e293	cxd2820r_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x22692241	cxd2841er_attach_t_c
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2841er 0x74f7b4f9	cxd2841er_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/cxd2880/cxd2880 0xca881cde	cxd2880_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0070 0x46ce0625	dib0070_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0x969b06be	dib0090_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib0090 0xd1460d13	dib0090_fw_register
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mb 0xc354ed25	dib3000mb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib3000mc 0x744eec1f	dib3000mc_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000m 0x0c96dd36	dib7000m_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib7000p 0xa811631a	dib7000p_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib8000 0xfe7c48e3	dib8000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dib9000 0x6202527a	dib9000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x38d4542f	drx39xxj_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxd 0x5eb9d5fe	drxd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/drxk 0x431bd61c	drxk_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ds3000 0xd9e57122	ds3000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/dvb-pll 0x98ff28c0	dvb_pll_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ec100 0xf573c77e	ec100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/gp8psk-fe 0xacb783c7	gp8psk_fe_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x4a349b69	helene_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/helene 0x61a5dca0	helene_attach_s
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/horus3a 0x3b7b576f	horus3a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6405 0x579bfc35	isl6405_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6421 0x9559c246	isl6421_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/isl6423 0xb60a090d	isl6423_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/itd1000 0x2f332522	itd1000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ix2505v 0x0e060a94	ix2505v_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/l64781 0xb036f87c	l64781_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lg2160 0x9ff253b1	lg2160_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3305 0xc5fa7e31	lgdt3305_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt3306a 0xed6b4492	lgdt3306a_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgdt330x 0xcf19c78e	lgdt330x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lgs8gxx 0xc81384e2	lgs8gxx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbh25 0x98d3af92	lnbh25_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0x466f03ba	lnbh24_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp21 0xa1ad9bda	lnbp21_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/lnbp22 0x252ea204	lnbp22_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88ds3103 0x0661e957	m88ds3103_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/m88rs2000 0x113e5bf6	m88rs2000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a16 0x6c9555bb	mb86a16_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mb86a20s 0xe2ee9d98	mb86a20s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt312 0xcec9faa2	mt312_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mt352 0x14957208	mt352_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/mxl5xx 0x15219c12	mxl5xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt200x 0x8d7caf5e	nxt200x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/nxt6000 0xf7566b81	nxt6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51132 0x99230238	or51132_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/or51211 0x6f6b807c	or51211_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1409 0x8e2448ad	s5h1409_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1411 0xee4d98a1	s5h1411_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1420 0x8cf22cce	s5h1420_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s5h1432 0xbed1cc0e	s5h1432_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/s921 0x844f9a93	s921_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/si21xx 0x7761856d	si21xx_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/sp887x 0x064d4ae7	sp887x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb0899 0xb4cb45b5	stb0899_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6000 0x20d3e507	stb6000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stb6100 0x541455e7	stb6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0288 0x96c50975	stv0288_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0297 0x15d300a5	stv0297_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0299 0x2f007977	stv0299_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0x649c933d	stv0367ddb_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xbb6d9065	stv0367ter_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0367 0xc57cabc4	stv0367cab_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0900 0x2abb076d	stv0900_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv090x 0x64d6ad1a	stv090x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv0910 0x714cc02a	stv0910_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110 0x8d8eeefb	stv6110_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6110x 0x2f7daaa9	stv6110x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/stv6111 0x3863de7b	stv6111_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10021 0xc82ae0d9	tda10021_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10023 0xad174eb1	tda10023_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10048 0xb8266e0f	tda10048_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x1f539c3c	tda10045_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda1004x 0x3708c82d	tda10046_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda10086 0xc554cef8	tda10086_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda18271c2dd 0xbcf54972	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda665x 0x5f9d4bfc	tda665x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8083 0xa2adbd06	tda8083_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda8261 0xc6c3d20f	tda8261_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tda826x 0xc9568327	tda826x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ts2020 0x37621bab	ts2020_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/tua6100 0x4a361253	tua6100_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1820 0x7e15aae3	ves1820_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/ves1x93 0x02bdb023	ves1x93_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10036 0x06f357ce	zl10036_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10039 0x4af61271	zl10039_attach
+EXPORT_SYMBOL_GPL	 drivers/media/dvb-frontends/zl10353 0x34d45f4f	zl10353_attach
+EXPORT_SYMBOL_GPL	 drivers/media/i2c/aptina-pll 0xb71dacd9	aptina_pll_calculate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0267867d	media_request_object_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x05e12f0f	media_entity_get_fwnode_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x06886cf8	media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x076c2317	media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x07cd5d5b	media_device_unregister_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0da7b61e	media_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x0f7dfc6a	media_request_object_unbind
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1869e8fa	media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x1abb94cf	media_entity_remote_pad
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x23cca923	media_request_put
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x2ded6bb3	media_graph_walk_next
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x35e54f90	media_request_object_find
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x36ac2dc4	media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x4022c9ed	media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x467744e6	media_device_usb_allocate
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x46cce7f6	media_request_get_by_fd
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x560a2a2a	media_device_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x5616ca83	__media_entity_remove_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x614335be	media_graph_walk_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6884ee0d	__media_remove_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x6be6da0d	media_create_intf_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x723ee230	media_graph_walk_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x7b618516	__media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x863b742c	__media_pipeline_start
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x87530369	media_device_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0x896e3e3f	__media_entity_setup_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb064f19c	media_request_object_complete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb5e3b05e	media_create_pad_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb711e459	__media_remove_intf_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xb8652390	media_device_unregister_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xba096f32	media_graph_walk_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xc12fc6ff	media_entity_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd3080b03	media_device_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xd5dba049	media_device_register_entity
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc581289	__media_entity_enum_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdc75c2df	__media_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xdd4bf52d	media_devnode_remove
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xddb0bbda	media_entity_find_link
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe3c4b5d5	__media_device_usb_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe3c861fa	media_device_register_entity_notify
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ceecd6	media_entity_enum_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe5ecaac9	media_device_delete
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xe792f7c7	media_devnode_create
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf10269c5	media_get_pad_index
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf1f5ddf7	media_request_object_init
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xf557b56f	media_create_pad_links
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfc93fd13	media_pipeline_stop
+EXPORT_SYMBOL_GPL	 drivers/media/mc/mc 0xfe39a13e	media_request_object_bind
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst 0x8d3bcbbe	dst_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/bt8xx/dst_ca 0xfd7031dc	dst_ca_attach
+EXPORT_SYMBOL_GPL	 drivers/media/pci/cx88/cx88xx 0xb9109ccd	cx88_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x036d0670	mantis_ca_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x0374bcda	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x048184fc	mantis_uart_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x196941b3	mantis_stream_control
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x26a5f819	mantis_dvb_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x29f56c03	mantis_uart_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x2c77f031	mantis_pci_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x577ea4f9	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x596505e3	mantis_dvb_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x7fe4654a	mantis_input_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8707475e	mantis_input_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8e19fdbc	mantis_get_mac
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x8f403e78	mantis_pci_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0x92690ba3	mantis_dma_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xbc655c13	mantis_i2c_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc3a5a1e9	mantis_i2c_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xc8f41ea3	mantis_frontend_power
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xddd99b38	mantis_ca_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/mantis/mantis_core 0xeda9f659	mantis_dma_exit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x6849a1d5	saa7134_s_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x707137b9	saa7134_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x776106d9	saa7134_enum_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x7d019c12	saa7134_ts_stop_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x861c801f	saa7134_s_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x8b3e46e6	saa7134_g_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0x915df596	saa7134_ts_queue_setup
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xadb0a1b0	saa7134_g_tuner
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc4811709	saa7134_querycap
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xc81440e3	saa7134_vb2_buffer_queue
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xcf5da710	saa7134_s_input
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd039c95e	saa7134_ts_buffer_prepare
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd36f64db	saa7134_g_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xd5ee2b3b	saa7134_s_std
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xdf7f88dc	saa7134_querystd
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xecb32a80	saa7134_ts_buffer_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xefe41ff5	saa7134_ts_qops
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xf6be3d64	saa7134_g_frequency
+EXPORT_SYMBOL_GPL	 drivers/media/pci/saa7134/saa7134 0xfa507bde	saa7134_ts_start_streaming
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x1779be4c	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x381fcc9f	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x74a7c8d0	ttpci_budget_init
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0x8ed1f5a0	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xa4c247ac	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xb66ba122	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL	 drivers/media/pci/ttpci/budget-core 0xba653bf3	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x1f919ddf	vimc_pix_map_by_pixelformat
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0x8d7304a3	vimc_ent_sd_register
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xaf58b080	vimc_pipeline_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcb7daa50	vimc_streamer_s_stream
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xcfe2c150	vimc_pix_map_by_index
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xdcbac1cc	vimc_pads_init
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xe41cdc39	vimc_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf3132df1	vimc_ent_sd_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/platform/vimc/vimc 0xf541e79b	vimc_pix_map_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x3c7eb685	xvip_set_format_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x4243a409	xvip_enum_frame_size
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x6026c616	xvip_clr_and_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x70add5a3	xvip_enum_mbus_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0x7f223fe0	xvip_init_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xa930d5cb	xvip_clr_or_set
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xb67940fb	xvip_get_format_by_fourcc
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xd4a46ecd	xvip_of_get_format
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xe08e6063	xvip_get_format_by_code
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-video 0xff3cb8a4	xvip_cleanup_resources
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x3c16a6b1	xvtc_generator_stop
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0x47d7900b	xvtc_generator_start
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912	xvtc_put
+EXPORT_SYMBOL_GPL	 drivers/media/platform/xilinx/xilinx-vtc 0xc8379f89	xvtc_of_get
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0x9128e529	radio_tea5777_init
+EXPORT_SYMBOL_GPL	 drivers/media/radio/shark2 0xdedf8dca	radio_tea5777_exit
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x01836dea	si470x_viddev_template
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x3e475c8d	si470x_start
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0x85583371	si470x_set_freq
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xb7c4bf55	si470x_ctrl_ops
+EXPORT_SYMBOL_GPL	 drivers/media/radio/si470x/radio-si470x-common 0xc893413b	si470x_stop
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x102a053c	rc_keyup
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x13346dc5	rc_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x2f005bff	rc_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x34607b11	rc_g_keycode_from_table
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4efbd8be	rc_keydown_notimeout
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x4fd2d221	ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x5279615b	ir_lirc_scancode_event
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x5f3e9e83	rc_repeat
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x6a5fd9c1	devm_rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x800eae91	rc_keydown
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x95ac8d9c	ir_raw_event_store
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x99cb9897	rc_allocate_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9c19e749	rc_map_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0x9c7bd874	ir_raw_event_handle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc0307440	devm_rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc72b5082	ir_raw_event_store_with_filter
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xc93f02fe	rc_map_register
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xcbe75a50	ir_raw_event_set_idle
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xda3483b9	rc_register_device
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xe5f0f28a	rc_map_get
+EXPORT_SYMBOL_GPL	 drivers/media/rc/rc-core 0xf1d09eae	ir_raw_event_store_with_timeout
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0011 0x232fcca0	fc0011_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0012 0x75f3bd7f	fc0012_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/fc0013 0x976e2cc1	fc0013_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/max2165 0x42d66a87	max2165_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mc44s803 0xdd7eb2d4	mc44s803_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2060 0x04c10c0f	mt2060_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2063 0x4057fd31	mt2063_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt20xx 0x1034a8a6	microtune_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2131 0x536c8362	mt2131_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mt2266 0x366da30e	mt2266_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5005s 0xf07f3fed	mxl5005s_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/mxl5007t 0xd823862f	mxl5007t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/qt1010 0x451f1244	qt1010_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/r820t 0x18fe995e	r820t_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18218 0x8ece25a0	tda18218_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda18271 0x64dac33a	tda18271_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda827x 0xd03b3b29	tda827x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xcb46a297	tda829x_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda8290 0xe0737822	tda829x_probe
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tda9887 0x51e22595	tda9887_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xcd860cfa	tea5761_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5761 0xff1fea72	tea5761_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x6c4fadfa	tea5767_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tea5767 0x87e02bbb	tea5767_autodetection
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/tuner-simple 0x4a70d625	simple_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc4000 0xe642b115	xc4000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/tuners/xc5000 0xd3a6b3eb	xc5000_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x017ea7c7	cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x08eac284	cx231xx_demod_reset
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x173e90d7	cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x1897539b	cx231xx_enable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x2484de7e	cx231xx_capture_start
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x258165d0	cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x589f6c18	cx231xx_dev_init
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x641d79a8	cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x6d5b3c02	cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x73e2c7b0	cx231xx_get_i2c_adap
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0x78aa1f68	cx231xx_uninit_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaaf24716	is_fw_load
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaaf5ff38	cx231xx_disable656
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xadf9b4f7	cx231xx_init_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xaebe9e22	cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xb446e1f3	cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xc5acad0a	cx231xx_enable_i2c_port_3
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xcf9fc576	cx231xx_init_bulk
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xd14632ec	cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xe5ecb4fa	cx231xx_unmute_audio
+EXPORT_SYMBOL_GPL	 drivers/media/usb/cx231xx/cx231xx 0xfcd5916f	cx231xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x3a7b47c6	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xac1b03d3	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x018a4198	em28xx_write_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x0feaa7a2	em28xx_read_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x1b02ff69	em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x20246a61	em28xx_stop_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x386cd8c1	em28xx_alloc_urbs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x44e89a51	em28xx_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x4eeb04e3	em28xx_uninit_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x51f666e9	em28xx_read_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x5dfb7cc2	em28xx_set_mode
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x6c362063	em28xx_toggle_reg_bits
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x721f7cc7	em28xx_free_device
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x7fc8652c	em28xx_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x8982d143	em28xx_init_camera
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x921d7c65	em28xx_boards
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0x9522e5c4	em28xx_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xa13b5533	em28xx_find_led
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xb4c9b7c0	em28xx_write_ac97
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbbecfa80	em28xx_init_usb_xfer
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xbe80690e	em28xx_setup_xc3028
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xd008deaa	em28xx_write_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/em28xx/em28xx 0xfea2c059	em28xx_write_regs
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x015baf22	tm6000_get_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x06ef436f	tm6000_set_reg
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x2309a6d6	tm6000_xc5000_callback
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x5ef7dd15	tm6000_set_reg_mask
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x89b611dd	tm6000_debug
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0x8e874cb4	tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL	 drivers/media/usb/tm6000/tm6000 0xdff8e89d	tm6000_tuner_callback
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b	v4l2_detect_gtf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x08402862	v4l2_print_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b	v4l2_set_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x0af3d134	v4l2_valid_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x2bf67def	v4l2_calc_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x370cfe6e	v4l2_dv_timings_presets
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x3aa68d7a	v4l2_find_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x4839762f	v4l2_calc_timeperframe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x7b6ac78f	v4l2_phys_addr_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x8f8d4341	v4l2_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0x922ecd29	v4l2_enum_dv_timings_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xa97e00eb	v4l2_detect_cvt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xae575c8f	v4l2_phys_addr_for_input
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d	v4l2_match_dv_timings
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xef15cc44	v4l2_hdmi_rx_colorimetry
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4	v4l2_find_dv_timings_cea861_vic
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-dv-timings 0xff585440	v4l2_dv_timings_aspect_ratio
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x3bc38287	v4l2_flash_indicator_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0x5ec54926	v4l2_flash_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-flash-led-class 0xf124c7a4	v4l2_flash_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x27f854c3	v4l2_async_register_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x34a27601	v4l2_fwnode_endpoint_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x40be1ac2	v4l2_fwnode_endpoint_alloc_parse
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x452b330e	v4l2_async_notifier_parse_fwnode_endpoints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x485e6caf	v4l2_async_register_subdev_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x7e1c4472	v4l2_async_notifier_parse_fwnode_sensor_common
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x883c0629	v4l2_fwnode_put_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x97f12e74	v4l2_fwnode_parse_link
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0x9e36fc84	v4l2_async_notifier_parse_fwnode_endpoints_by_port
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-fwnode 0xfe9c8c54	v4l2_fwnode_endpoint_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x053e2814	v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x13fbd268	v4l2_m2m_ioctl_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x17a54f6c	v4l2_m2m_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x217cec31	v4l2_m2m_fop_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x28da0c60	v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2f5f705c	v4l2_m2m_ioctl_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x2fbf4dab	v4l2_m2m_poll
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x36a8c0e4	v4l2_m2m_ioctl_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x36eec921	v4l2_m2m_ioctl_try_decoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3b3b2ecd	v4l2_m2m_ioctl_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x3cb86358	v4l2_m2m_fop_mmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x44ff8985	v4l2_m2m_register_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x49179a92	v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x4f1b458c	v4l2_m2m_request_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x523abc28	v4l2_m2m_last_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x59b372c7	v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5d4d9bc1	v4l2_m2m_ioctl_create_bufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x5dcba645	v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x6e4a2be0	v4l2_m2m_buf_remove_by_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae	v4l2_m2m_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x75c1ce21	v4l2_m2m_ioctl_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x816da2bb	v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x829d3680	v4l2_m2m_buf_remove_by_idx
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x87bbd47c	v4l2_m2m_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9873935c	v4l2_m2m_ioctl_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x98cf5a81	v4l2_m2m_try_schedule
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0x9c46480e	v4l2_m2m_ioctl_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xa4f046d2	v4l2_m2m_ioctl_prepare_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc313e675	v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad	v4l2_m2m_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xcac76329	v4l2_m2m_expbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd36bf440	v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xd59d489c	v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xda355a87	v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xe1ba5b64	v4l2_m2m_ioctl_try_encoder_cmd
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d	v4l2_m2m_unregister_media_controller
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfd24725d	v4l2_m2m_buf_copy_metadata
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/v4l2-mem2mem 0xfe0df56b	v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x004fa288	videobuf_poll_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x1859dc2e	videobuf_read_start
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x29ee7d5b	videobuf_waiton
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x36ee1634	videobuf_next_field
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x381b20c7	videobuf_read_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x3a87b951	videobuf_queue_core_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x463f99da	videobuf_mmap_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x5aee64cd	__videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x71069705	videobuf_read_stream
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x73436f89	videobuf_alloc_vb
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7546d39b	videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x7fdaa6c3	videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x89ef3c51	videobuf_read_one
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0x91843ddc	videobuf_iolock
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xb8e27e8b	videobuf_streamoff
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xba6055ac	videobuf_streamon
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xbc91f3f4	videobuf_reqbufs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc1dd8a33	videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xc4397403	videobuf_stop
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xd7e8ede9	videobuf_mmap_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xe0476038	videobuf_queue_cancel
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf2d25d0d	videobuf_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xf784cefb	videobuf_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-core 0xfe859959	videobuf_querybuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0	videobuf_sg_alloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0x7855a945	videobuf_to_dma
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xbf62fca1	videobuf_dma_unmap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xee6f3ef8	videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-dma-sg 0xf17b9430	videobuf_dma_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x12579c4b	videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x3cbe4995	videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videobuf-vmalloc 0x5a76bf01	videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x01fbafc7	v4l2_async_notifier_add_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x061f6898	v4l2_device_register_subdev_nodes
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x08163fa7	v4l2_device_register
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x08875bcb	v4l2_device_put
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x0b5632a8	v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x11041094	v4l2_event_unsubscribe_all
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1166eaa6	v4l_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x12094aef	v4l2_device_disconnect
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x12939793	v4l2_src_change_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x15fade22	v4l_disable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1cade89b	v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x1f0ddcfd	v4l2_s_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x21351649	v4l2_async_notifier_add_i2c_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x21de3651	v4l2_subdev_alloc_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x264917fe	__tracepoint_vb2_v4l2_buf_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2ac3a7ac	v4l2_event_queue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x2ace8830	v4l2_async_notifier_add_fwnode_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x3c7c0a31	v4l2_fh_open
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x403a26f1	v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x42a40287	v4l2_async_notifier_cleanup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x436cf08c	v4l2_pipeline_pm_use
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x48c8c590	__tracepoint_vb2_v4l2_buf_done
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4a29c019	v4l2_pipeline_link_notify
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4c8cb619	v4l2_subdev_link_validate
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4cb4d596	v4l2_fh_exit
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x4e0a99f1	v4l2_device_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x50d65b11	v4l2_subdev_free_pad_config
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x564e1063	v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x568b42cb	v4l_vb2q_enable_media_source
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x58d94db9	v4l2_event_dequeue
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x666860d6	v4l2_fh_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x67dc387a	v4l2_i2c_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6aa22cf3	v4l2_mc_create_media_graph
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x6e9acc41	v4l2_fill_pixfmt_mp
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x75480cb2	v4l2_async_notifier_add_devname_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x86e334d2	v4l2_fh_add
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8813fd88	v4l2_event_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8a085966	v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x8a473b73	v4l2_event_subdev_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x900c1644	__tracepoint_vb2_v4l2_qbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x93108aeb	v4l2_fh_is_singular
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x999ba22c	__tracepoint_vb2_v4l2_dqbuf
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9e69d940	v4l2_subdev_notify_event
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0x9fef35ac	v4l2_apply_frmsize_constraints
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa0bee582	v4l2_g_parm_cap
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xa3dcaa67	v4l2_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xab439384	v4l2_fh_del
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xb23f1cc8	v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xc37270d3	v4l2_subdev_link_validate_default
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcafe8a8b	v4l2_event_queue_fh
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcb66f220	v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xcc501597	v4l2_fill_pixfmt
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd0dc31ab	__v4l2_ctrl_handler_setup
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xd1ffc4a6	v4l2_ctrl_request_hdl_ctrl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xdabc2780	v4l2_ctrl_request_hdl_find
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe0aa75f7	v4l2_src_change_event_subdev_subscribe
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xe2822320	__v4l2_find_nearest_size
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xecc97239	v4l2_fh_release
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xefbb7d0f	v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf070aafb	v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf2a353ac	v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf5ef842e	v4l_bound_align_image
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xf6d7428e	v4l2_async_notifier_add_fwnode_remote_subdev
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfab789a5	v4l2_i2c_subdev_set_name
+EXPORT_SYMBOL_GPL	 drivers/media/v4l2-core/videodev 0xfb25938a	v4l2_event_pending
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x21c60c89	pm80x_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x27708c2f	pm80x_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0x70b677d2	pm80x_regmap_config
+EXPORT_SYMBOL_GPL	 drivers/mfd/88pm80x 0xd99fd720	pm80x_deinit
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x19b87259	da9150_write_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x4c8b1603	da9150_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x52f60630	da9150_read_qif
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x91800cef	da9150_bulk_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0x9ae297c9	da9150_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xf17b3bf6	da9150_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/da9150-core 0xf3f0d84a	da9150_bulk_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x05481ca5	kempld_get_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x06885384	kempld_write16
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x08acbcbc	kempld_read8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x15840641	kempld_write32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x1c504907	kempld_release_mutex
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x24e7f427	kempld_read32
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x52f1b362	kempld_write8
+EXPORT_SYMBOL_GPL	 drivers/mfd/kempld-core 0x8f1678f6	kempld_read16
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x32431e7e	lm3533_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x4986ad3f	lm3533_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-core 0x8fe92653	lm3533_update
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x0e9a4385	lm3533_ctrlbank_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0x13461ace	lm3533_ctrlbank_set_max_current
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xa2002983	lm3533_ctrlbank_set_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xd45ca768	lm3533_ctrlbank_get_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xe439b4c5	lm3533_ctrlbank_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xe4d51f97	lm3533_ctrlbank_get_pwm
+EXPORT_SYMBOL_GPL	 drivers/mfd/lm3533-ctrlbank 0xfa1010b1	lm3533_ctrlbank_set_brightness
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x0229a108	lp3943_update_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0x4f126774	lp3943_read_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/lp3943 0xf7462129	lp3943_write_byte
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x01374328	cs47l35_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x013a9f68	cs47l35_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x0f379262	madera_of_match
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x166d23d0	madera_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1895b883	cs47l90_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1c11b41d	cs47l92_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x1c1c685d	cs47l92_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2b90afe0	cs47l90_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2b9d73a0	cs47l90_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x2d40d444	cs47l85_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x3345d850	cs47l85_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x33480410	cs47l85_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x42025e24	cs47l35_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x420f8264	cs47l35_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5c61468d	cs47l92_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5f24a911	cs47l92_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x5f297551	cs47l92_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x68a5b2ec	cs47l90_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x68a86eac	cs47l90_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7070c55c	cs47l85_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x707d191c	cs47l85_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x7deb8907	cs47l35_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x84a0dbfc	madera_dev_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x88c1f4e8	cs47l15_32bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x88cc28a8	cs47l15_16bit_i2c_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x8da81f3e	madera_dev_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0x9a1750fe	cs47l15_patch
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xcbf4e9e4	cs47l15_16bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xcbf935a4	cs47l15_32bit_spi_regmap
+EXPORT_SYMBOL_GPL	 drivers/mfd/madera 0xebe384cb	madera_name_from_type
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x4d06ee1c	mc13xxx_common_exit
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x851c2da5	mc13xxx_variant_mc13783
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x8ee527b6	mc13xxx_adc_do_conversion
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0x9713d8cd	mc13xxx_variant_mc34708
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xac4f8c0e	mc13xxx_common_init
+EXPORT_SYMBOL_GPL	 drivers/mfd/mc13xxx-core 0xc5a66685	mc13xxx_variant_mc13892
+EXPORT_SYMBOL_GPL	 drivers/mfd/motorola-cpcap 0xa226dbe8	cpcap_sense_virq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x572dd221	pcf50633_reg_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x59dd5e42	pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x6b7725a8	pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x7899cb59	pcf50633_write_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x8a582b55	pcf50633_register_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0x8f02da6d	pcf50633_read_block
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xc262e2db	pcf50633_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xc9d973b5	pcf50633_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xcafc2db3	pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xdf5a0504	pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633 0xf17a1a1c	pcf50633_free_irq
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0x2af68080	pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-adc 0xe114b207	pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x3e69ba4c	pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x5441fe62	pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x825697ac	pcf50633_gpio_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0x98088bd3	pcf50633_gpio_get
+EXPORT_SYMBOL_GPL	 drivers/mfd/pcf50633-gpio 0xb833cc61	pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x43e53ef9	rave_sp_exec
+EXPORT_SYMBOL_GPL	 drivers/mfd/rave-sp 0x4f4f2c80	devm_rave_sp_register_event_notifier
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0x56d1a8c5	retu_read
+EXPORT_SYMBOL_GPL	 drivers/mfd/retu-mfd 0xa074c8b6	retu_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x146f8f29	si476x_core_cmd_set_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x15106b5e	si476x_core_cmd_am_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1843330d	si476x_core_cmd_fm_rds_blockcount
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x1f1dc82d	si476x_core_cmd_power_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x26e5f5c0	si476x_core_has_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2ae65eae	si476x_core_has_am
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x2fa16442	si476x_core_cmd_ic_link_gpo_ctl_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x3344c86a	si476x_core_cmd_agc_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x530c2bf4	si476x_core_cmd_fm_phase_diversity
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5c8b6cbb	si476x_core_cmd_intb_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x5e430880	si476x_core_i2c_xfer
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x726e397e	si476x_core_cmd_fm_rsq_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x75f86d94	si476x_core_cmd_fm_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x811781f9	si476x_core_is_a_primary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x835682a1	si476x_core_is_a_secondary_tuner
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x96158b97	devm_regmap_init_si476x
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0x9e3209d2	si476x_core_cmd_power_down
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa225f7d7	si476x_core_cmd_dig_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa3d853a1	si476x_core_cmd_fm_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xa7b788a3	si476x_core_cmd_func_info
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xaa1c356a	si476x_core_is_in_am_receiver_mode
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xb68d2c8f	si476x_core_cmd_fm_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xbd36393a	si476x_core_cmd_fm_rds_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xc92fb817	si476x_core_cmd_am_acf_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xcfdb6675	si476x_core_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd99ea935	si476x_core_cmd_fm_phase_div_status
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xd9a82c89	si476x_core_stop
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe60806e5	si476x_core_set_power_state
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xe8a8b088	si476x_core_cmd_ana_audio_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xec0f2fa8	si476x_core_cmd_am_tune_freq
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xed845d8b	si476x_core_cmd_get_property
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xef0e597d	si476x_core_cmd_zif_pin_cfg
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xf08d9d9a	si476x_core_cmd_am_seek_start
+EXPORT_SYMBOL_GPL	 drivers/mfd/si476x-core 0xfead2039	si476x_core_is_powered_up
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x00bb6b5e	sm501_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x27bc9616	sm501_unit_power
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0x4e799fbf	sm501_find_clock
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xc4a492e5	sm501_modify_reg
+EXPORT_SYMBOL_GPL	 drivers/mfd/sm501 0xd8052b6d	sm501_misc_control
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x17b60fb2	stmfx_function_enable
+EXPORT_SYMBOL_GPL	 drivers/mfd/stmfx 0x342a484e	stmfx_function_disable
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x4f99a5e2	am335x_tsc_se_set_cache
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0x7178faa7	am335x_tsc_se_set_once
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xb23b94b6	am335x_tsc_se_adc_done
+EXPORT_SYMBOL_GPL	 drivers/mfd/ti_am335x_tscadc 0xbe1fa94d	am335x_tsc_se_clr
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x08b74adb	tps65218_reg_write
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x3cc2f0cd	tps65218_set_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/tps65218 0x57d95a64	tps65218_clear_bits
+EXPORT_SYMBOL_GPL	 drivers/mfd/ucb1400_core 0x9618fd38	ucb1400_adc_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x184f55bc	alcor_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x4628bdbe	alcor_read8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0x7794d94a	alcor_write16
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xbbbbc5be	alcor_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xd097150e	alcor_read32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xd98d8bdd	alcor_write8
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/alcor_pci 0xfe01fd7e	alcor_write32be
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x02c41822	rtsx_pci_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x11f0858e	rtsx_pci_complete_unfinished_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x2ee51f3e	rtsx_pci_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x37cea8f3	rtsx_pci_send_cmd_no_wait
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x3fe2d681	rtsx_pci_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4743a30d	rtsx_pci_dma_transfer
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x4adf4b41	rtsx_pci_switch_output_voltage
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x65587086	rtsx_pci_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x7ea78926	rtsx_pci_card_exist
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x806a6811	rtsx_pci_card_power_on
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x8f52d651	rtsx_pci_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0x910a2561	rtsx_pci_start_run
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa377d14e	rtsx_pci_card_pull_ctl_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa50ecc01	rtsx_pci_card_pull_ctl_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xa5d68fcc	rtsx_pci_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb0195d92	rtsx_pci_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xb167fc0d	rtsx_pci_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xbbc3d773	rtsx_pci_stop_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd02b22c6	rtsx_pci_dma_unmap_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd1fd24ae	rtsx_pci_read_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd24c3343	rtsx_pci_card_power_off
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xd4d32706	rtsx_pci_write_phy_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xe2939c21	rtsx_pci_dma_map_sg
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_pci 0xf159ad49	rtsx_pci_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x377db915	rtsx_usb_transfer_data
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x44af87d0	rtsx_usb_switch_clock
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x61a15636	rtsx_usb_ep0_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x648fb693	rtsx_usb_add_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6986fe39	rtsx_usb_get_card_status
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x6ed46709	rtsx_usb_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x7b6d8533	rtsx_usb_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9040cc61	rtsx_usb_write_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x999f6465	rtsx_usb_card_exclusive_check
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0x9a4e7593	rtsx_usb_get_rsp
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xc4e265fd	rtsx_usb_write_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xd9cd251f	rtsx_usb_ep0_read_register
+EXPORT_SYMBOL_GPL	 drivers/misc/cardreader/rtsx_usb 0xf70fc639	rtsx_usb_read_ppbuf
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x4bf8182c	cb710_set_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x6fe383cb	cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0x89321907	cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL	 drivers/misc/cb710/cb710 0xaedb397c	cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x0a357289	cxl_start_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x23c882ef	cxl_set_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x29d87575	cxl_fops_get_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x334a6b51	cxllib_handle_fault
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x37a57fcb	cxl_read_adapter_vpd
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x3f9e1364	cxl_map_afu_irq
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x44589d2b	cxl_get_fd
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x47b71cb3	cxllib_switch_phb_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x4b80d39d	cxl_fd_open
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x4ce0008a	cxl_get_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x4d14db47	cxl_dev_context_init
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x51f0b10b	cxl_fd_release
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x57a2c510	cxl_pci_to_cfg_record
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x58abba4c	cxl_allocate_afu_irqs
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x5d2aa982	cxllib_slot_is_supported
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x5f3130ab	cxl_start_work
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x6c74426a	cxl_set_master
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x7718ef99	cxl_perst_reloads_same_image
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x79d5ff44	cxl_get_priv
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x7d881bfc	cxl_stop_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x8740bc47	cxl_psa_unmap
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x89dc63c5	cxl_free_afu_irqs
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0x9f7b99ed	cxl_fd_mmap
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xa265f783	cxl_pci_to_afu
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xaea9f95d	cxl_context_events_pending
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xb36974a3	cxl_set_driver_ops
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xb4165a19	cxl_fd_read
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xbdc0123d	cxl_psa_map
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xc327c3a8	cxllib_set_device_dma
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xca4e2c3e	cxllib_get_PE_attributes
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xd672bbef	cxl_release_context
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xe5e6ddb8	cxllib_get_xsl_config
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xe6637c2a	cxl_afu_reset
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xed87e37e	cxl_unmap_afu_irq
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xef92eb4c	cxl_fd_ioctl
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xfb7f2b4b	cxl_fd_poll
+EXPORT_SYMBOL_GPL	 drivers/misc/cxl/cxl 0xfc5c5b5e	cxl_process_element
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x0b008db0	oslec_hpf_tx
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x296a8983	oslec_update
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x3115970d	oslec_create
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x4b711f77	oslec_adaption_mode
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x5909e701	oslec_snapshot
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x780d3f01	oslec_flush
+EXPORT_SYMBOL_GPL	 drivers/misc/echo/echo 0x84eba96d	oslec_free
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x3cb83d5b	eeprom_93cx6_multireadb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63	eeprom_93cx6_wren
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x870b53e9	eeprom_93cx6_write
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0x884deb9d	eeprom_93cx6_read
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25	eeprom_93cx6_readb
+EXPORT_SYMBOL_GPL	 drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf	eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x3f0a2839	enclosure_component_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x6f54329d	enclosure_find
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0x954230dc	enclosure_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xa6d98ad9	enclosure_add_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xaa2da80c	enclosure_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xb3b0d3eb	enclosure_remove_device
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xc3cd778a	enclosure_component_register
+EXPORT_SYMBOL_GPL	 drivers/misc/enclosure 0xefb49fe1	enclosure_for_each_device
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x16a4b5ed	lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x34b215f3	lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3ca640c1	lis3_dev
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x3d3d389a	lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0x4499ba30	lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xa8c9418b	lis3lv02d_poweron
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xc8c62a94	lis3lv02d_init_dt
+EXPORT_SYMBOL_GPL	 drivers/misc/lis3lv02d/lis3lv02d 0xfd365c3a	lis3lv02d_init_device
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x00cde5c6	ocxl_context_detach
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x0537394c	ocxl_afu_put
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x0a5d5b63	ocxl_function_fetch_afu
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x1dc98e0b	ocxl_config_set_TL
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x25152819	ocxl_function_open
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x253bb6e5	ocxl_config_terminate_pasid
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x298bbf7c	ocxl_config_set_afu_state
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x2d876dd2	ocxl_link_remove_pe
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x354c8ec6	ocxl_context_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x3e042e80	ocxl_config_read_afu
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x424474f3	ocxl_global_mmio_set64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x4a3501c3	ocxl_global_mmio_write64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x54ea3514	ocxl_context_attach
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x5738bce2	ocxl_context_free
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x598b45a3	ocxl_afu_irq_free
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x5d8814ea	ocxl_link_free_irq
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x6cf63b61	ocxl_global_mmio_clear64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x6e37a3ed	ocxl_config_get_actag_info
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x827448e2	ocxl_link_release
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x8351fa31	ocxl_function_afu_list
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x84d86d96	ocxl_link_setup
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x854fb44a	ocxl_function_close
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x89eba9e7	ocxl_config_set_afu_pasid
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x92627f0b	ocxl_config_set_actag
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x97863e86	ocxl_config_set_afu_actag
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x98d2b1f0	ocxl_afu_set_private
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0x9b6cb940	ocxl_afu_irq_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xa931aba5	ocxl_global_mmio_read32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xb23443b0	ocxl_global_mmio_read64
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xbaf502b4	ocxl_afu_config
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xbe49ddee	ocxl_function_config
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xc370f759	ocxl_irq_set_handler
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xd40c3475	ocxl_global_mmio_set32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xd463cfd7	ocxl_afu_get
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xd4fb4d00	ocxl_afu_get_private
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xd57c13d0	ocxl_link_add_pe
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xdc7d4145	ocxl_global_mmio_write32
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xebdc395f	ocxl_link_irq_alloc
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xec9e42bc	ocxl_afu_irq_get_addr
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xf830d1f2	ocxl_config_read_function
+EXPORT_SYMBOL_GPL	 drivers/misc/ocxl/ocxl 0xfabe7be7	ocxl_global_mmio_clear32
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8481635a	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x9724c6bf	st_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0118f86d	sdhci_set_uhs_signaling
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x03baecbe	sdhci_runtime_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x062eff3c	sdhci_cleanup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0b2f56cc	sdhci_set_ios
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0b9b223d	sdhci_execute_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x0bcae071	__sdhci_set_timeout
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x10c1c1e9	sdhci_send_command
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x11ff8d4b	sdhci_dumpregs
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1300a60a	sdhci_runtime_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x1d26b58a	sdhci_send_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x2a1c9b0f	sdhci_reset_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x3af48fda	sdhci_cqe_disable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x40402fb1	sdhci_start_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x478be2d2	sdhci_calc_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x50306578	sdhci_set_data_timeout_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x576f6121	sdhci_reset
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x5ede4ce1	sdhci_set_bus_width
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x6e2a1a6d	sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x729c747a	sdhci_start_signal_voltage_switch
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x743569a2	sdhci_remove_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x7821ced3	sdhci_set_clock
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8526b10d	__sdhci_read_caps
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x85bf81a6	sdhci_set_power
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8c5226b9	sdhci_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8f3330d5	sdhci_end_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0x8ffcca2f	sdhci_resume_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xa76a2f0a	__sdhci_add_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb6c4fd93	sdhci_enable_v4_mode
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb8666387	sdhci_cqe_enable
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xb892cd18	sdhci_set_power_noreg
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xba5a5160	sdhci_alloc_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xbf92091f	sdhci_enable_sdio_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc5d75ad4	sdhci_request
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xc739abc9	sdhci_abort_tuning
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe048a529	sdhci_setup_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe8e2e953	sdhci_free_host
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xe9712aee	sdhci_adma_write_desc
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xebdca812	sdhci_cqe_irq
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci 0xf0a65f34	sdhci_enable_clk
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x224aa452	sdhci_pltfm_free
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x5ee57df1	sdhci_get_property
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x71864f78	sdhci_pltfm_pmops
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0x868aff8f	sdhci_pltfm_register
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xa17d62fe	sdhci_pltfm_suspend
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xa5dbcf7e	sdhci_pltfm_init
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xe1875185	sdhci_pltfm_unregister
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xf102ff2e	sdhci_pltfm_resume
+EXPORT_SYMBOL_GPL	 drivers/mmc/host/sdhci-pltfm 0xff9150a6	sdhci_pltfm_clk_get_max_clock
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x6b7c0513	cfi_cmdset_0200
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0x96622085	cfi_cmdset_0003
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0001 0xa94b056d	cfi_cmdset_0001
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x7a0f7df7	cfi_cmdset_0701
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0x89f6b271	cfi_cmdset_0002
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0002 0xf7a4f9a1	cfi_cmdset_0006
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_cmdset_0020 0x1831d4f6	cfi_cmdset_0020
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x0d5bc0ca	cfi_qry_mode_on
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0x9559071a	cfi_qry_present
+EXPORT_SYMBOL_GPL	 drivers/mtd/chips/cfi_util 0xe4904005	cfi_qry_mode_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0x14e275c9	hyperbus_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/hyperbus/hyperbus-core 0xb053f868	hyperbus_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x00cf26ac	mtd_ooblayout_get_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x046f50ed	mtd_write_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x097278f1	mtd_wunit_to_pairing_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0d17ef4c	mtd_read_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x0dcd9bf0	mtd_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1041229e	mtd_ooblayout_set_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x10891d1f	mtd_pairing_groups
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x13102d79	mtd_ooblayout_count_freebytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1db93075	kill_mtd_super
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x1ec2a579	mtd_get_unmapped_area
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x239a274d	__put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x26019ae0	get_mtd_device_nm
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2a83fe1f	mtd_get_user_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2c92434d	mtd_ooblayout_set_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x2eadbed5	mtd_pairing_info_to_wunit
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x342ff0b9	mtd_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x3835978a	mtd_lock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x40b1195e	mtd_add_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x450a2144	mtd_is_locked
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x487cccd1	mtd_panic_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4c6538cf	mtd_read_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x4cd0654d	register_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x53108e26	mtd_read_fact_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x58fd87a4	mtd_block_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x5db4ab83	mtd_kmalloc_up_to
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x67da5f1e	mtd_ooblayout_find_eccregion
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x6a2cada5	mtd_del_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x77581de0	mtd_ooblayout_free
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x78dd7f9f	get_tree_mtd
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x78e33d30	__register_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x7e34f3b6	mtd_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x87ba7138	mtd_get_fact_prot_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9b83db8e	mtd_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9ea94492	deregister_mtd_parser
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0x9fac606c	mtd_lock_user_prot_reg
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa32de137	mtd_point
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa6e892d5	mtd_block_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xa8c781e7	mtd_writev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xb62f30dd	mtd_ooblayout_ecc
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xba8753f7	mtd_ooblayout_count_eccbytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbb974ba9	mtd_write_oob
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xbc2dc681	mtd_block_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xc2ccf34f	mtd_ooblayout_get_databytes
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xce294ec7	mtd_unpoint
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xd10ae111	unregister_mtd_user
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xe9e2025a	mtd_table_mutex
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xebdd0223	mtd_unlock
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xec5bc2ab	get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf045217d	mtd_device_parse_register
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf436ae40	__get_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf4ae9b5a	mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf74f6824	put_mtd_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xf84b0a5d	__mtd_next_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd 0xfd782b57	mtd_is_partition
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x3df8aa20	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x495356e5	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x4d09bd91	deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0x65c14257	mtd_blktrans_cease_background
+EXPORT_SYMBOL_GPL	 drivers/mtd/mtd_blkdevs 0xc5f5ce16	register_mtd_blktrans
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x15ca8952	nanddev_bbt_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x1e803b6f	nanddev_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x45d9d3d8	nanddev_mtd_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0x8332f6ad	nanddev_mtd_max_bad_blocks
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xa9917121	nanddev_bbt_set_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xab9635e0	nanddev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xae1ec2b6	nanddev_bbt_get_block_status
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xc3115862	nanddev_bbt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xc45f696b	nanddev_isreserved
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xdd0095e8	nanddev_isbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xe5908359	nanddev_markbad
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xf798a1f9	nanddev_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/nandcore 0xfab11216	nanddev_bbt_update
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x0efda267	onenand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/onenand/onenand 0x1ac028fe	onenand_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/denali 0x3dbb20b5	denali_chip_init
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x02425d52	nand_deselect_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x044a3e7a	nand_prog_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x0a9e8918	nand_read_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x14327b8f	nand_subop_get_num_addr_cyc
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x1cfe4e63	nand_subop_get_data_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x21a3e0bd	nand_subop_get_data_len
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x2b47a08c	nand_ooblayout_sp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x39dddefe	nand_change_read_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x42a62723	nand_change_write_column_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x474b5e89	nand_op_parser_exec_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x495b9a89	nand_decode_ext_id
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x4a701547	nand_cleanup
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x4f669a76	nand_read_page_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x5288d380	nand_prog_page_begin_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x718c4248	nand_read_oob_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x7b2a7576	nand_prog_page_end_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x899e2525	nand_write_data_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0x8a792df9	nand_gpio_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa6eb74dc	nand_release
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xa79f359f	nand_status_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xaa0f642a	nand_reset_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xae55e393	nand_select_target
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xb1e7d328	nand_subop_get_addr_start_off
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbad14cab	nand_ooblayout_lp_ops
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xbd6cbe78	nand_wait_ready
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xd18eb1c5	nand_erase_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe139b5f6	nand_reset
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xe3edec1c	nand_soft_waitrdy
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xf39d5bee	nand_readid_op
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/nand 0xfd52fe1b	nand_ecc_choose_conf
+EXPORT_SYMBOL_GPL	 drivers/mtd/nand/raw/sm_common 0x10cc9aa4	sm_register_device
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0x00ec964e	spi_nor_scan
+EXPORT_SYMBOL_GPL	 drivers/mtd/spi-nor/spi-nor 0xbc444c30	spi_nor_restore
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x13114bca	ubi_do_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x16638a20	ubi_leb_erase
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x24462c45	ubi_leb_read
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3126fddc	ubi_open_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x3535a07b	ubi_leb_read_sg
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x36416083	ubi_leb_map
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x38e10c1d	ubi_flush
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x42801d20	ubi_sync
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x43c53939	ubi_leb_change
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x66011ab6	ubi_get_device_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x85a8ee76	ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0x91f142ff	ubi_leb_write
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xcdcc479b	ubi_close_volume
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe549f48b	ubi_leb_unmap
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xe75486f4	ubi_open_volume_path
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xed90938d	ubi_is_mapped
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf54119bf	ubi_get_volume_info
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf5ee9ba8	ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL	 drivers/mtd/ubi/ubi 0xf96d2b29	ubi_open_volume_nm
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x018ede64	devm_mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x1cca5e32	mux_chip_unregister
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x2b71ecc3	mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x3d5e8397	mux_control_states
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x3e86c6c2	mux_chip_free
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x4430a64e	mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x8c94a2c8	mux_control_try_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0x94609736	mux_control_select
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xb93f7288	mux_control_deselect
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xd730cf6b	mux_control_put
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xdbb30fbb	devm_mux_chip_alloc
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xdcf41b70	mux_control_get
+EXPORT_SYMBOL_GPL	 drivers/mux/mux-core 0xdef8405f	devm_mux_chip_register
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x0e07c1d2	devm_arcnet_led_init
+EXPORT_SYMBOL_GPL	 drivers/net/arcnet/arcnet 0x46c26136	arcnet_led_event
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x58142295	unregister_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x6e34e6bc	register_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0x7466a708	c_can_power_down
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xb8bc3bc7	alloc_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xbb5806f4	free_c_can_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/c_can/c_can 0xe5c554a2	c_can_power_up
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x2869b65e	alloc_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x41394d1c	unregister_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0x45816852	free_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/cc770/cc770 0xcface378	register_cc770dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x0bb30404	alloc_can_err_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x16081ffb	can_dlc2len
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x1d91079b	close_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x254cd2de	alloc_can_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x2df8e19f	open_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x3fd5bea3	can_rx_offload_queue_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x42dc2e67	can_bus_off
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x53b08ced	unregister_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6298cd1c	alloc_candev_mqs
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6363f27e	can_put_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x6368ae45	can_rx_offload_del
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x734b5f0e	alloc_canfd_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x808f09d1	register_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x8762619a	can_len2dlc
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0x93f4b795	can_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa2184292	of_can_transceiver
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xa964d1c9	can_rx_offload_irq_offload_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xb023284c	can_rx_offload_irq_offload_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xbe3eca0e	can_free_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc166f8b3	can_rx_offload_enable
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xc94ce2f3	can_rx_offload_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcd3727be	can_change_state
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xcd9abd46	safe_candev_priv
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe232c19c	free_candev
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe28dd537	can_get_echo_skb
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe456ecb8	can_rx_offload_add_timestamp
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xe5b2e506	can_rx_offload_queue_tail
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf2e4f8fd	can_rx_offload_add_fifo
+EXPORT_SYMBOL_GPL	 drivers/net/can/dev/can-dev 0xf4c79fee	can_rx_offload_reset
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x0a359198	m_can_init_ram
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x1c78f069	m_can_class_allocate_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x42e2dfd1	m_can_class_resume
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x4b034a19	m_can_class_get_clocks
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x78fa1f47	m_can_class_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0x8360f024	m_can_class_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xbd13c86c	m_can_class_free_dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/m_can/m_can 0xcf2d9c99	m_can_class_register
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x3734bec0	alloc_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0x86a8a370	unregister_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xa3561104	free_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/can/sja1000/sja1000 0xb6570da9	register_sja1000dev
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/lan9303-core 0x3ee2a86a	lan9303_indirect_phy_ops
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1af6c00e	ksz_port_bridge_join
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x1de2a955	ksz_init_mib_timer
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x437eec51	ksz_port_fast_age
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x4c3e1b27	ksz_port_bridge_leave
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x61f93b49	ksz_port_mdb_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6562a938	ksz_port_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6bbc5f3d	ksz_adjust_link
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x6d251851	ksz_enable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7216dbbd	ksz_disable_port
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x7d81e501	ksz_port_mdb_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0x8189a942	ksz_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xa84c8620	ksz_port_mdb_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xad6f010f	ksz_update_port_member
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xaefbd4c0	ksz_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xb6d958f4	ksz_port_fdb_dump
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbb5ddcbb	ksz_phy_read16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/microchip/ksz_common 0xbdecf8c4	ksz_phy_write16
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x070447a7	rtl8366_vlan_del
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x072ead52	rtl8366_enable_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x0fdcc4c9	rtl8366rb_variant
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x1013ae2b	rtl8366_vlan_filtering
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x220627ab	rtl8366_mc_is_used
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x33a32be6	rtl8366_vlan_add
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x565fa080	rtl8366_set_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x7b616b23	rtl8366_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0x9de847d6	rtl8366_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xa6d9af50	rtl8366_init_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xab14b60f	rtl8366_vlan_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xcfbd2282	realtek_smi_write_reg_noack
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xe9a5ee70	rtl8366_set_pvid
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xea0f9395	rtl8366_reset_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xf8e83630	rtl8366_get_ethtool_stats
+EXPORT_SYMBOL_GPL	 drivers/net/dsa/realtek-smi 0xfb043e36	rtl8366_enable_vlan4k
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x016d3381	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x029c9f08	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x052871a4	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0604f298	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ca4eabd	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d44312f	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e1571ab	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0edd3103	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f51bdae	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x175d4c8c	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x182c7308	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x199bfe39	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c79fb03	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1cd7b2d5	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d77d406	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x271e4496	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28b34973	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a1f68f9	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ac66f70	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2bd40353	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30cece2c	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33e9e2c6	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36262508	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x385ab594	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3883d1e4	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39af9e63	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a98ffe3	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b4b2f21	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c104bdd	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cbcc854	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d989b4b	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42dad33e	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43c88919	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4673b8c8	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x484ef014	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b3333e9	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b886a17	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4efe1dca	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f3bc23f	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5189618d	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53e21539	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5649dce5	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b83ba0e	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d32cf0a	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d3c3a9e	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d9e3c01	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5dadedfa	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5df8068c	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e051270	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f0d84d4	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x605f42dc	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60a7da62	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x621c3fdb	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6273562a	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x631bfef3	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6439730b	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69574817	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a7f3fba	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ab19304	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c3b136d	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6deea59e	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e2087f5	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x719757f7	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7553b5e5	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x773d0ace	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78689dd4	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78a6c254	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b7f4f9c	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7be88c9d	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ea27d3b	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f62588a	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x808edbf6	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87674401	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a5ca774	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ad2e9f8	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9093d3f5	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9261d7c2	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9659b7e3	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9cda4a08	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1e3ce61	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa23de28c	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa27ef36f	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa47612e5	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa61e12fb	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6255d39	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa673dcde	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa85fc36d	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8a9ea39	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaaa8a854	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf2db0a4	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0157735	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb01ffb9b	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd403207	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe72ba55	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc05c292b	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0f0c5f6	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2d4731d	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc43a2823	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4916b2f	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5d00d3b	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6625025	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc3831b8	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf6ad9e0	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfa837f1	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd04ccfad	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1848f65	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd38748a1	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3a0b1ac	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd77be8c6	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7a7ddea	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd812fb02	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd97bd8a5	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc60a77e	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde0bf1aa	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf0528f7	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe15d2ddf	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe25da93d	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe92faf70	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea640ade	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef61836f	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf76f2850	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa84b662	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc0d58e6	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe54c7a2	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe5cc0ab	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfeadd778	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x020d5f97	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08de280e	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x09e8e866	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ba30a33	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x108372af	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1096d29a	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13ec7e10	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14541fcf	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x159961e5	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x177fa735	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18707740	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a144305	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a982932	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ca35a66	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d6381ba	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x201d2892	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20a9060a	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22040441	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ac9eaf9	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cbd01e0	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f404649	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fe6eb72	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30ade465	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x355a8f40	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36ad73eb	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x371a525e	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39ad250b	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x418e77cf	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4781bd21	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48bded74	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4988d94d	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d65e0fa	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4eb8ae97	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fd8cf16	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bd983ba	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x63a6ca74	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x671e16a3	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6876a238	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6fa82f38	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7138d254	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72e8c6bb	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74d14652	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a9ff532	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ab64aab	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f173a2d	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x807004c9	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81b38a8f	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84706813	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x880a9d1a	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e1e0387	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x944771e8	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94b41a2e	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x974efc10	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1c6b7f1	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4bece81	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa99a0152	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa7235b6	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae91970e	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb36a2864	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb8aa3bf8	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba5d00ba	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba6d9e42	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb19d1b7	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbcb9dcbd	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe042fbf	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe0d845f	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbededbde	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4bcc12c	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc944143b	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcbd1a3ed	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd07c6c56	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd22478a5	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd428d09b	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd73cc2f7	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7c1a497	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9f936a5	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf1bd5d5	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf28e1a9	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe01a4dbe	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1fdbb5d	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3c217e3	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5070225	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecbc8065	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf46a5c7e	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf55a9f2d	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6924a93	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0x286b4ec1	devm_regmap_init_encx24j600
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a	regmap_encx24j600_spi_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2	regmap_encx24j600_spi_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x0b28a9ad	qcafrm_create_footer
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x2b6ddf3f	qcafrm_fsm_decode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/qualcomm/qca_7k_common 0x41da0375	qcafrm_create_header
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x29ef2b19	stmmac_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x2ffe6be7	stmmac_resume
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x4711d853	stmmac_dvr_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb	stmmac_get_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xd1cc24db	stmmac_set_mac_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac 0xde127304	stmmac_dvr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x1d5be115	stmmac_remove_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x22eae418	stmmac_get_platform_resources
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2f9be993	stmmac_pltfr_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x8f5a7e4c	stmmac_pltfr_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xdf5d47af	stmmac_probe_config_dt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x10d15f1a	w5100_ops_priv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x6c4ee68c	w5100_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x884fa6c6	w5100_probe
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/wiznet/w5100 0x8b45c795	w5100_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0xbb3549e4	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x105226f1	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x5dd13fc5	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x862ede05	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x91dad76d	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xbd67c982	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x504b2e2f	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x75bfc26d	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x93d0df5a	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xcaf88fd4	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xb4fd8b5a	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xcc54227e	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x0a93b799	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x0fcca574	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x40f1887e	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x42484b54	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6316a7d1	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x643b519d	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x686bdbbb	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x6b08a4f1	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x938f15bd	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa65db91b	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xa91977fb	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb24fed0f	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb2774be8	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe380264b	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe4d386f1	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xe6c1d820	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf0aff39f	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf1aab025	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-i2c 0xe9b89272	mdio_i2c_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x338efe58	mdio_mux_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/mdio-mux 0x6318757f	mdio_mux_uninit
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x08213956	phylink_ethtool_get_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x09510557	phylink_of_phy_connect
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x12135396	phylink_mac_change
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x14b8ea9a	phylink_fixed_state_cb
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x15c4e3e2	phylink_ethtool_set_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x2c8e28ee	phylink_ethtool_get_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x3fa0e928	phylink_helper_basex_speed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x56be148a	phylink_mii_ioctl
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x57727285	phylink_ethtool_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x62104126	phylink_ethtool_set_wol
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x6fa426d2	phylink_ethtool_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x825c7340	phylink_get_eee_err
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x911fcd6c	phylink_start
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0x983276da	phylink_disconnect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xb18f9eec	phylink_ethtool_ksettings_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc1d15a4c	phylink_set_port_modes
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xc8c90f88	phylink_create
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdcb0a2c0	phylink_stop
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xdccfdecd	phylink_ethtool_ksettings_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xec02ebe0	phylink_init_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf3083a1d	phylink_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xf8fe5642	phylink_ethtool_get_pauseparam
+EXPORT_SYMBOL_GPL	 drivers/net/phy/phylink 0xfb8ac163	phylink_connect_phy
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x114dd93f	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x117118e4	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x3809983f	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x646208c5	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x76db77fb	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x8322c1a7	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x8ead64a6	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x90845dad	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xd4d5fb49	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x1f16461a	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x2493c6dd	usbnet_ether_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x45f02a62	usbnet_cdc_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0x72733682	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ether 0xe9d63196	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x1068ab25	cdc_ncm_rx_verify_ndp32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x150b281f	cdc_ncm_select_altsetting
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x56b50e36	cdc_ncm_bind_common
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x5995c288	cdc_ncm_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x71df98f5	cdc_ncm_rx_verify_nth32
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0x8c0d7079	cdc_ncm_rx_verify_nth16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xb5ae4a5e	cdc_ncm_rx_verify_ndp16
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xbaeb888e	cdc_ncm_fill_tx_frame
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xca94fc16	cdc_ncm_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xd959acf1	cdc_ncm_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/cdc_ncm 0xdc453085	cdc_ncm_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x012f10f2	rndis_tx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x046812a7	rndis_unbind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x54548332	generic_rndis_bind
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0x6ee6939f	rndis_status
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xcd4c39c6	rndis_command
+EXPORT_SYMBOL_GPL	 drivers/net/usb/rndis_host 0xd2eba5e1	rndis_rx_fixup
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x07662968	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x114a7f52	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x197420f9	usbnet_get_link
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x1c594872	usbnet_resume
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x28410771	usbnet_start_xmit
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2889a5f9	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x2913670f	usbnet_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x3e6a39e0	usbnet_skb_return
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x40758e1c	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4745190b	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4c14c78b	usbnet_get_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x4d282d9b	usbnet_nway_reset
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x587105ad	usbnet_status_start
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x5a0cab6f	usbnet_change_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6aa6fc34	usbnet_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x6d34d746	usbnet_write_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7376ef18	usbnet_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x7c83e2f5	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x8e70efec	usbnet_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x94b5b232	usbnet_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x96ada15b	usbnet_update_max_qlen
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0x984cef55	usbnet_pause_rx
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xa7d71a6a	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xab06ab53	usbnet_read_cmd_nopm
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc8625e91	usbnet_write_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xc99acb9c	usbnet_read_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xcb7de9ce	usbnet_status_stop
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xd18fe3e1	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe07a5dbf	usbnet_open
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xe1df708d	usbnet_write_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xea2eab3a	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xf6f2f06e	usbnet_set_link_ksettings
+EXPORT_SYMBOL_GPL	 drivers/net/usb/usbnet 0xfd0ef47a	usbnet_probe
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xb14c104b	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xc8d3a85f	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xd616d6b7	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xf4b0378c	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x0fb7d495	i2400m_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x162abb75	i2400m_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x1d3e01c8	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x377c3e75	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x3c79199a	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x4350dcf1	i2400m_release
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x52971d77	i2400m_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x6129d409	i2400m_error_recovery
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x65cc8eec	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x890765f2	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0x8b25e570	i2400m_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb1838ee4	i2400m_post_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb2d18757	i2400m_init
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xb9f0394c	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xe4c134a7	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL	 drivers/net/wimax/i2400m/i2400m 0xeb843295	i2400m_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/ipw2x00/libipw 0xca54016d	libipw_rx_any
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8ba68308	il_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa40b3d9c	_il_grab_nic_access
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa5ab44da	il_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xccd46021	il_prep_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe831d926	il_remove_station
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02bdcdab	iwl_read_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x03db8938	iwl_force_nmi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0b33b64a	iwl_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x189203d8	iwl_read_external_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x229d8b26	iwl_init_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x23347e52	iwl_fw_dbg_collect_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2710c362	iwl_dump_desc_assert
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x28e5b1f1	__iwl_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2ded3be7	iwl_set_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x30efe54d	iwl_get_nvm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3476148d	iwl_read_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35033c81	iwl_phy_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35307150	iwl_notification_wait
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x35440d7b	__iwl_err
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x358cae3b	iwl_read_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x39e2c832	iwl_phy_db_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3d4b7b99	iwl_write_prph_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3e79e9ba	iwl_wait_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4539ee28	iwl_parse_nvm_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4aaa5ec9	iwl_fw_start_dbg_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x4e7daaa2	iwl_poll_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x541b1707	iwl_fw_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c52e109	iwl_opmode_deregister
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5c58ad4e	iwl_read32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x603134d3	iwl_fw_runtime_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6262af71	iwl_fw_error_print_fseq_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x657296da	iwl_free_fw_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x67f126c3	iwl_parse_nvm_mcc_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6e4a86d9	iwl_notification_wait_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x70b70b97	iwl_write32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x724e8822	iwl_remove_notification
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7307e077	iwl_abort_notification_waits
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74047d7b	iwl_write8
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x772f602a	iwl_fw_dbg_stop_restart_recording
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x776221bf	iwl_send_phy_db_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7ab2e0c7	iwl_write_direct32
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7bf32ef3	iwl_clear_bits_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7dfe9527	iwl_dbg_tlv_del_timers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x8fbab0d2	iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x98f33236	_iwl_fw_dbg_ini_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9ac5c5af	iwl_fw_dbg_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xa4ba941c	iwl_fw_dbg_stop_sync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaa99ceb3	iwl_trans_send_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xae8ad1df	iwl_fw_dbg_collect_trig
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb543b93b	iwlwifi_mod_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb66b003c	__iwl_crit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb7d89b73	iwl_init_paging
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb97f0854	iwl_write_prph64_no_grab
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb9c099d5	iwl_finish_nic_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xbadb463f	iwl_opmode_register
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc0a6a6de	iwl_fw_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xce0c6460	iwl_phy_db_set_section
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd29db9f9	iwl_get_shared_mem_conf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd7573740	iwl_get_cmd_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdb8f40a5	iwl_poll_direct_bit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe0350a3e	iwl_cmd_groups_verify_sorted
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe1921828	iwl_fw_dbg_error_collect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe1e334a6	iwl_write_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe28d94a2	__iwl_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe3eddd70	iwl_write_direct64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe9e83620	iwl_write64
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xea1b26fc	iwl_nvm_fixups
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xebdd4010	iwl_dbg_tlv_time_point
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xeca5e698	iwl_set_bits_mask_prph
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf610cfcf	iwl_fw_dbg_read_d3_debug_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf81d34dc	__iwl_warn
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intel/iwlwifi/iwlwifi 0xff679f3b	iwl_parse_eeprom_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x1e12705e	p54_free_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x4f1134d1	p54_unregister_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x559437a6	p54_free_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x7016c3b9	p54_register_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x886455ff	p54_init_common
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0x8cb55fb4	p54_parse_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xacb32b8a	p54_read_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xbf8aacb2	p54_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/intersil/p54/p54common 0xe37f7f89	p54_parse_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x07f5cca5	lbs_stop_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0c937196	lbs_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x0df8b173	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x104386f0	lbs_queue_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x18453afa	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x3a69ea3a	lbs_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x55eb0d55	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x65d1c3cb	__lbs_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0x802c7857	lbs_get_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xa0f5dca6	lbs_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xaaab2a66	lbs_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc37b6013	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc75a1aeb	lbs_get_firmware_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xc7948a8b	lbs_start_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xcc61c719	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas/libertas 0xf645c0a9	lbs_notify_command_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x0004d259	__lbtf_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x6ca50018	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7ec83067	lbtf_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x82caa4fa	lbtf_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9684d530	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x98f86d56	lbtf_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc7805788	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xced38819	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x01395ef1	mwifiex_dnld_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x0d79a760	mwifiex_fw_dump_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x10975c0b	mwifiex_shutdown_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1e050954	mwifiex_process_hs_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x1f2b9a1d	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x27faa2eb	mwifiex_prepare_fw_dump_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x426c32db	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x47719e40	mwifiex_deauthenticate_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x53a96eae	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x72ecd065	mwifiex_queue_main_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x845730e0	mwifiex_multi_chan_resync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x8c2316cf	_mwifiex_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x99c568f8	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9c385179	mwifiex_upload_device_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0x9f9ed767	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xc75b116e	mwifiex_main_process
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcb6255c5	mwifiex_add_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xcc157daa	mwifiex_reinit_sw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd409b193	mwifiex_drv_info_dump
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3	mwifiex_alloc_dma_align_buf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xd7bf1473	mwifiex_remove_card
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xda1ab3f3	mwifiex_write_data_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xe4a5d10d	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf7b4825c	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/marvell/mwifiex/mwifiex 0xf8840c12	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x02a4c330	mt76_mmio_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0319bc36	mt76_csa_finish
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x03c14138	mt76_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x0434a5e1	mt76_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x14783eb8	mt76_dma_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1c5ad2d8	mt76_pci_disable_aspm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1d7f390f	mt76_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1ed6478b	mt76_set_irq_mask
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x1feae31c	mt76_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x22dee482	mt76_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x24d820d2	mt76_mcu_msg_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x25e43ea3	mt76_rx_aggr_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2e1b6f97	mt76_tx_status_skb_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x2fffd624	mt76_csa_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x37bd5e07	mt76_tx_status_skb_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4024895d	mt76_alloc_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4af8cb88	mt76_tx_status_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x4b6add2b	mt76_get_min_avg_rssi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5052653c	mt76_txq_schedule_all
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x53176760	mt76_insert_ccmp_hdr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x57d59a84	mt76_txq_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x5992b3e6	mt76_txq_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x61f93e86	mt76_has_tx_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x638cc5dc	mt76_stop_tx_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x666ab8d0	mt76_wcid_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x702b2698	mt76_tx_status_skb_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x74da27f4	mt76_get_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x80b18a18	mt76_rx_aggr_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x87c00089	mt76_tx_status_unlock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x92c89126	mt76_wake_tx_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9719b7b5	__mt76_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x997ec46c	mt76_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9c7dfadf	mt76_free_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0x9e66d747	mt76_mcu_rx_event
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa15ed530	mt76_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa207b271	mt76_tx_status_check
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa5adce8e	mt76_eeprom_override
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xa888909f	mt76_sw_scan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xaac4ec89	mt76_register_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xaaf8cdf7	mt76_sta_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xabf988b8	mt76_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb4029153	__mt76_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xb812831e	mt76_put_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xba076865	mt76_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbd19d223	mt76_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xbdfd5135	mt76_release_buffered_frames
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc585af4f	mt76_get_rate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6634315	mt76_ac_to_hwq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xc6cc29d1	mt76_txq_schedule
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd4f97a70	__mt76_poll_msec
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xd75929eb	mt76_seq_puts_array
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xe9568832	mt76_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xed034c0b	mt76_set_stream_caps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xf1a8d15c	mt76_mcu_get_response
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76 0xfa198f3b	mt76_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x2a88e7f9	mt76u_queues_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x2db42307	mt76u_alloc_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x3bbb2829	mt76u_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x588714f1	mt76u_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x682a5d30	mt76u_single_wr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0x85fa1d19	mt76u_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xccee8819	mt76u_resume_rx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76-usb 0xe1063c35	mt76u_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x137e85a3	mt76x0_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x1f7e59d3	mt76x0_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2a88a4f5	mt76x0_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x6d4770ad	mt76x0_init_hardware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7d8c3e4b	mt76x0_chip_onoff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x84e8ef83	mt76x0_register_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb3c8354c	mt76x0_phy_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0462ce68	mt76x02_add_rate_power_offset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x07b6c519	mt76x02_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0aebd264	mt76x02_dfs_init_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0b5828e2	mt76x02_mac_wcid_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0d4023ec	mt76x02_get_max_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0e8f2c6e	mt76x02_mcu_function_select
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x141b2408	mt76x02_remove_hdr_pad
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1484aef1	mt76x02_update_beacon_iter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x18d0c146	mt76x02_config_mac_addr_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1c45e367	mt76x02_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1d07b7e5	mt76x02_mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x20977122	mt76x02_mac_shared_key_setup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x27cd51b7	mt76x02_set_tx_ackto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2a5221b2	mt76x02_tx_status_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2b3227a0	mt76x02_dma_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x31338033	mt76x02_mac_set_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x35d2834d	mt76x02_limit_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x42144a91	mt76x02_edcca_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x42352dbc	mt76x02_phy_set_bw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x43f866ed	mt76x02_phy_set_txdac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x46ad7020	mt76x02_phy_set_rxpath
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4a156910	mt76x02_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4aaa7983	mt76x02_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4dbd6167	mt76x02_init_debugfs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4fe7b0fb	mt76x02_get_efuse_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x50c4635c	mt76x02_sta_ps
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x52065f94	mt76x02_rx_poll_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5	mt76x02_rates
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5e413760	mt76x02_eeprom_copy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x61e489dc	mt76x02_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x674ff470	mt76x02_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x71d6b90b	mt76x02_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75baa584	mt76x02_tx_set_txpwr_auto
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7b74f54a	mt76x02_set_ethtool_fwver
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x80c65ef2	mt76x02_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x87be49ba	mt76x02_mac_setaddr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x88fdebe6	mt76x02_update_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8aa1b243	mt76x02_get_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8aee0598	mt76x02_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8b24ff1f	mt76x02_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x90629e58	mt76x02_dma_disable
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee	mt76x02_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x946a7845	mt76x02_phy_set_band
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x99870ac7	mt76x02_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9b6e0ae1	mt76x02_phy_adjust_vga_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9c7ea4a5	mt76x02_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa142de7f	mt76x02_get_lna_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa28049ad	mt76x02_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa898653e	mt76x02_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa8d15c34	mt76x02_sta_rate_tbl_update
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xacab1ea0	mt76x02_queue_rx_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaeb8239d	mt76x02_enqueue_buffered_bc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb593030c	mt76x02_mcu_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb953c1f2	mt76x02_resync_beacon_timer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd6e5cbf8	mt76x02_ext_pa_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd7806e08	mt76x02_init_agc_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdc712049	mt76x02_mcu_msg_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdcd437c5	mt76x02_mcu_calibrate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdd9839d2	mt76x02_init_device
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xde7d0e82	mt76x02_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xea12288c	mt76x02_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xeac2d5ab	mt76x02_mcu_set_radio_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xee06b83b	mt76x02_set_coverage_class
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xee9b3c1b	mt76x02_dma_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf38718ca	mt76x02e_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf4023e1c	mt76x02_mac_write_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf6e63b53	mt76x02_phy_dfs_adjust_agc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfcae3775	mt76x02_eeprom_parse_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x145b9edb	mt76x02u_tx_complete_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x3587e2df	mt76x02u_exit_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x850accb3	mt76x02u_init_beacon_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x9a69b07e	mt76x02u_init_mcu
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb398579d	mt76x02u_tx_prepare_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc1c781b7	mt76x02u_mcu_fw_send_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc661244d	mt76x02u_mcu_fw_reset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2035d473	mt76x2_phy_update_channel_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x243a1f7f	mt76x2_get_temp_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3922b300	mt76x2_get_power_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3d92d270	mt76x2_reset_wlan
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5a26fe24	mt76x2_eeprom_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5fdfa388	mt76x2_read_rx_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x668fa321	mt76x2_phy_tssi_compensate
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x73cdb9b3	mt76x2_mcu_tssi_comp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x816258f9	mt76_write_mac_initvals
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa0d82d4f	mt76x2_init_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa427e16f	mt76x2_mcu_load_cr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa4e9622a	mt76x2_mcu_set_channel
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa84aa2d4	mt76x2_configure_tx_delay
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xaa8f06b8	mt76x2_mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb2a5af27	mt76x2_get_rate_power
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd7fa7d82	mt76x2_phy_set_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xdef2eae7	mt76x2_apply_gain_adj
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe0506a78	mt76x2_mcu_init_gain
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe7b4f952	mt76x2_phy_set_txpower_regs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x135eab2c	qtnf_trans_handle_rx_ctl_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x227571fc	qtnf_get_debugfs_dir
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c	qtnf_chipid_to_string
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x3ec6b86c	qtnf_core_attach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x5ff40763	qtnf_update_tx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7150f8c8	qtnf_classify_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x93e61a5c	qtnf_core_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xabe9471c	qtnf_packet_send_hi_pri
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf9be904a	qtnf_wake_all_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xfd665c0f	qtnf_update_rx_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0c42e475	rt2800_disable_wpdma
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0eed6148	rt2800_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x148fec04	rt2800_config_ant
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x19aba98d	rt2800_config_intf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x28cdb78a	rt2800_mcu_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x29367289	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x32200318	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3449bd89	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x34ffde7a	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3c429218	rt2800_config_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x400d667c	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x441f85ee	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4902aba0	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4f8500bb	rt2800_write_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x56ec82cd	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x63047753	rt2800_link_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6fd3320f	rt2800_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7679d75c	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x79a7adf9	rt2800_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7a7fa1f9	rt2800_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8048bb90	rt2800_link_tuner
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8b92d890	rt2800_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8d6e4cc1	rt2800_get_tsf
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9133a3e7	rt2800_txdone_nostatus
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x95e72894	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0x96218ba1	rt2800_pre_reset_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa8bdad6b	rt2800_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa8daa7fa	rt2800_get_txwi_rxwi_size
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xafa9d36a	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc06ca1e0	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc92105d4	rt2800_sta_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd1f4e422	rt2800_get_key_seq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd512e972	rt2800_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe0b196b5	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe444ad97	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe7938dc6	rt2800_check_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe8603d68	rt2800_sta_add
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe9f7acfa	rt2800_txstatus_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf25a27c5	rt2800_config_erp
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf9032ae4	rt2800_txstatus_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf97e5dfe	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfbd6c844	rt2800_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfc4b55a0	rt2800_get_survey
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfc6c8486	rt2800_vco_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x04def950	rt2800mmio_get_entry_state
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0fad1430	rt2800mmio_pretbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x10574ecc	rt2800mmio_probe_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x177fdb72	rt2800mmio_init_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2505789d	rt2800mmio_tbtt_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x2bd65477	rt2800mmio_init_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x45809be5	rt2800mmio_get_dma_done
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4c79a142	rt2800mmio_fill_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x52c3d5db	rt2800mmio_enable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x55922540	rt2800mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64	rt2800mmio_interrupt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x673359d9	rt2800mmio_write_tx_desc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6ce9c021	rt2800mmio_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8247f83d	rt2800mmio_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8bc605d5	rt2800mmio_get_txwi
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x92c0bcd1	rt2800mmio_rxdone_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9c3a086d	rt2800mmio_queue_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xaa3169ac	rt2800mmio_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb06e5afd	rt2800mmio_toggle_irq
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbd27e6d1	rt2800mmio_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xc6a1455e	rt2800mmio_autowake_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xe28f94c7	rt2800mmio_txstatus_tasklet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x001912de	rt2x00lib_set_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x004cc6ec	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0102cc23	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x013d1caa	rt2x00mac_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0265a0f1	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x028d46ce	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x02ab612b	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0ee96521	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x10885a59	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x11d1feef	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x13504106	rt2x00lib_txdone_nomatch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1dc5393a	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x20ff19d2	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x220e9cec	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3e35f048	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x479d1793	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4ba6e1f5	rt2x00lib_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4be2a450	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4d4ceafc	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x53d13686	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5d5bdb39	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x69a859df	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6c39e3eb	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x72479c36	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7a8f5311	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7d349632	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x83e4d10e	rt2x00mac_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x874544a9	rt2x00mac_tx
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x99fc6b93	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9da8fcaa	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa9decbde	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xafa11971	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc00ae364	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc4d44295	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xca1fd90e	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd3d6a5b6	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xde06987d	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe0099611	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe1bac04b	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe4beed9c	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe522f337	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe6d891ad	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe7c448be	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf0e18a8c	rt2x00mac_start
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfbe82e4b	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xff614bd3	rt2x00mac_stop
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7cb835b4	rt2x00mmio_rxdone
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x99d69247	rt2x00mmio_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xa753f8c3	rt2x00mmio_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xae9b8e7d	rt2x00mmio_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xe3b71e9f	rt2x00mmio_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x01848f57	rt2x00pci_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x9c873978	rt2x00pci_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xa3a61fa3	rt2x00pci_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xd789c292	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x074ba901	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x077399be	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1908baf7	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1bb50325	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x43f897ab	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x67f8f981	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x75cb3f96	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7e26c0d6	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8ada04fd	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9380e607	rt2x00usb_resume
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x981c6ed0	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa0a2642c	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc8c473f6	rt2x00usb_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xde5e96c6	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe20e471a	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xff0d53d7	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x09cb35c8	dm_restorepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4a5af8da	dm_writepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x59d4f848	rtl92c_set_p2p_ps_offload_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc1d694b1	dm_savepowerindex
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x01743b38	rtl8723_write_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0963d9d3	rtl8723_phy_rf_serial_read
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1f5e3cd2	rtl8723_phy_reload_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2080bdb1	rtl8723_cmd_send_packet
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2093c677	rtl8723_phy_save_mac_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0	rtl8723_phy_calculate_bit_shift
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f772d7b	rtl8723_phy_path_a_fill_iqk_matrix
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4a4e9ad2	rtl8723_save_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4dad13c9	rtl8723_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4fab9360	rtl8723_enable_fw_download
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x57681a45	rtl8723_phy_mac_setting_calibration
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6fb07268	rtl8723_phy_init_bb_rf_reg_def
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x789750ad	rtl8723be_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7d7b563f	rtl8723ae_firmware_selfreset
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7eaf36af	rtl8723_download_fw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x87434bf5	rtl8723_phy_query_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913	rtl8723_phy_set_sw_chnl_cmdarray
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x937d9ef1	rtl8723_phy_path_a_standby
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9963baf8	rtl8723_phy_set_bb_reg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x99e24596	rtl8723_phy_path_adda_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9ea17c13	rtl8723_fw_free_to_go
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa27be9dc	rtl8723_dm_init_dynamic_bb_powersaving
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa47a8d2f	rtl8723_dm_init_dynamic_txpower
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd4405446	rtl8723_phy_reload_adda_registers
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd80c7651	rtl8723_phy_pi_mode_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe1502ebb	rtl8723_dm_init_edca_turbo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe9f649e9	rtl8723_phy_rf_serial_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x08e4ee32	rtl_recognize_peer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0d0b6636	rtl_global_var
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0f5a1017	rtl_tx_report_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1bdff8ef	rtl_ips_nic_on
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1fa4b4cc	rtl_get_hwinfo
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x236c1b32	rtl_deinit_deferred_work
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4	rtl_btc_status_false
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2c46c220	rtl_swlps_beacon
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d32cdfc	rtl_lps_change_work_callback
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9	rtl_fill_dummy
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2f38f4fd	rtl_deinit_rfkill
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3eee1260	rtl_beacon_statistic
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5e467c9e	rtl_action_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7dd44808	rtl_tx_ackqueue
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x816ad1f8	rtl_lps_enter
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x85a26f1c	rtl_ops
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8dcca621	rtl_fw_block_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663	rtl_tid_to_ac
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9aac088f	rtl_fw_page_write
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa3a2f48c	rtl_init_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa436179f	rtl_get_hal_edca_param
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xab3b2d99	rtl_set_tx_report
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb1f62142	rtl_lps_leave
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb2201d15	rtl_is_special_data
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbb09a724	read_efuse_byte
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc72ebd43	rtl_efuse_ops_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc8deb712	rtl_tx_mgmt_proc
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd28c935f	rtl_p2p_info
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe0d119de	rtl_init_rx_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf469e91e	rtl_deinit_core
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9	rsi_zone_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x4f27e5f1	rsi_hal_device_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x72a3038d	rsi_91x_init
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x7ac1ffcf	rsi_read_pkt
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0x90c6ee43	rsi_91x_deinit
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xa8619d33	rsi_mac80211_detach
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/rsi/rsi_91x 0xcd173710	rsi_dbg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x1562b2bd	cw1200_can_suspend
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0x84f19bb7	cw1200_irq_handler
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xaf5ae296	cw1200_core_release
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/st/cw1200/cw1200_core 0xe2d577eb	cw1200_core_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x043f6a8e	wl1251_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x6242edfd	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wl1251/wl1251 0x92ec0464	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x03312f40	wlcore_boot_upload_nvs
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x05ccd240	wlcore_set_partition
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x0640c757	wl12xx_acx_mem_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e	wl12xx_debug_level
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x10e78870	wlcore_remove
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x12b8b7f0	wlcore_set_key
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1371ae75	wlcore_event_channel_switch
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x1d1d6bec	wl1271_cmd_configure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x20351125	wlcore_get_native_channel_type
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x291b1364	wlcore_event_roc_complete
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2935b32d	wlcore_event_fw_logger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x2b5952f8	wlcore_disable_interrupts_nosync
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3001dba3	wlcore_event_sched_scan_completed
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x302371f8	wlcore_cmd_generic_cfg
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x3dfd568b	wlcore_boot_run_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4306827f	wl1271_acx_init_mem_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x43dba4d4	wlcore_translate_addr
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x496bf8fe	wlcore_event_max_tx_failure
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x4e1d674a	wlcore_boot_upload_firmware
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5042c8dc	wlcore_enable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x53e24170	wlcore_alloc_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x55116306	wl1271_tx_min_rate_get
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x553a7c92	wlcore_event_rssi_trigger
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x5a6a1d23	wlcore_event_beacon_loss
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x6505e93b	wl1271_debugfs_update_stats
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x715d16e2	wlcore_disable_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x77fe4a21	wlcore_synchronize_interrupts
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x79659d2e	wl1271_cmd_data_path
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7dba8bf1	wl1271_tx_flush
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x7e1b18a3	wlcore_scan_sched_scan_ssid_list
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1	wl1271_format_buffer
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x89216d88	wlcore_cmd_wait_for_event_or_timeout
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8d747b4c	wlcore_free_hw
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x8dc462ca	wlcore_set_scan_chan_params
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0x9ddbd07d	wl1271_acx_set_ht_capabilities
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xa0b12366	wl12xx_cmd_build_probe_req
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xada9fe65	wl1271_cmd_send
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xafb68949	wlcore_event_ba_rx_constraint
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xbc195ba8	wl1271_acx_pm_config
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc190138c	wlcore_probe
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xc412fa74	wlcore_scan_sched_scan_results
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xcc937c39	wlcore_event_inactive_sta
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xdda1c66a	wl1271_acx_sleep_auth
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xe4613ba0	wlcore_event_soft_gemini_sense
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xf89c2701	wl1271_cmd_test
+EXPORT_SYMBOL_GPL	 drivers/net/wireless/ti/wlcore/wlcore 0xfe68fde0	wlcore_event_dummy_packet
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0x1c21581d	nfcmrvl_nci_register_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xb1b8fd9a	nfcmrvl_parse_dt
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xbe640b08	nfcmrvl_nci_recv_frame
+EXPORT_SYMBOL_GPL	 drivers/nfc/nfcmrvl/nfcmrvl 0xdd2ad4b9	nfcmrvl_nci_unregister_dev
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x608f77b2	pn533_finalize_setup
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x773d6be7	pn533_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0x9b68c926	pn533_rx_frame_is_cmd_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xdecfd339	pn533_rx_frame_is_ack
+EXPORT_SYMBOL_GPL	 drivers/nfc/pn533/pn533 0xf1175f04	pn533_register_device
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x09db6d81	st_nci_hci_cmd_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x0acb3642	st_nci_remove
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x0c446467	st_nci_enable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x55ba836f	st_nci_discover_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0x7aa731a3	st_nci_hci_load_session
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xceb2d657	st_nci_hci_event_received
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xd1d84b19	st_nci_disable_se
+EXPORT_SYMBOL_GPL	 drivers/nfc/st-nci/st-nci 0xfc115f57	st_nci_probe
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x3850e480	st95hf_spi_recv_response
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x543df503	st95hf_spi_recv_echo_res
+EXPORT_SYMBOL_GPL	 drivers/nfc/st95hf/st95hf 0x7e29a96d	st95hf_spi_send
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x0862001f	ntb_transport_tx_free_entry
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x30934216	ntb_transport_max_size
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x322c18c7	ntb_transport_unregister_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x32537aca	ntb_transport_link_query
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x3d54dbfc	ntb_transport_tx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x436098aa	ntb_transport_link_down
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x82e6c13d	ntb_transport_qp_num
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0x9c992c8f	ntb_transport_link_up
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xa8b17f70	ntb_transport_register_client
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc270dc24	ntb_transport_free_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc37d9036	ntb_transport_rx_remove
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xc5cb5019	ntb_transport_create_queue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xd40e7a02	ntb_transport_rx_enqueue
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf55d6313	ntb_transport_register_client_dev
+EXPORT_SYMBOL_GPL	 drivers/ntb/ntb_transport 0xf9eb813f	ntb_transport_unregister_client_dev
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0x65109045	virtio_pmem_host_ack
+EXPORT_SYMBOL_GPL	 drivers/nvdimm/nd_virtio 0xc5eaa54a	async_pmem_flush
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0c3d3ebb	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x12bc011e	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x16a68e2c	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2201610c	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x22ac52ad	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x34d5b84b	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x366f8654	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3a8dc3fe	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4bf36b3b	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x530257fc	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x587fd397	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x71a72959	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7c2e5113	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7eb88273	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7fa56325	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7fe11f66	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8045d978	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x852faf38	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8a9c70ed	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8b210bd4	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8e292c08	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x9a8b5e14	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa01e260c	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa9543383	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb16b666f	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb5fb7ef4	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xb9eecb0f	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbdf2a306	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbe443e04	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbff14d79	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc126a5f4	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc4c1d035	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc6c5ec73	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd19e3bf9	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd3a2404a	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd70b9d96	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd9dbd88a	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdb327b76	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xe355e1c2	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf532a973	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1ac0629c	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x1b049ce0	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x22db20c3	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3a1247a4	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x3e19c388	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x7258b53f	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x77697a2d	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x79df4564	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x7af89c8e	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x8edcd00c	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xce905f79	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xdef1ae0d	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xf2cec6a4	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8c30404b	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x3b6c4075	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x61f41982	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x7a449a1c	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x7da18ef6	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb45a841e	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb5a4c0a3	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xc0071614	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xce8490be	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xdb1c916d	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xea84d0e3	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xefe0a81c	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x47f84560	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/pnv-php 0x213f31a2	pnv_php_set_slot_power_state
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/pnv-php 0x8058028c	pnv_php_find_slot
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0x01cc7086	rpaphp_slot_head
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0x1acd90dd	rpaphp_deregister_slot
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0x794fd33b	rpaphp_add_slot
+EXPORT_SYMBOL_GPL	 drivers/pci/hotplug/rpaphp 0xc7440a02	rpaphp_check_drc_props
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0x53614e75	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0x0aa2e352	devm_reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xe1d69c29	reboot_mode_unregister
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xe450e5e1	reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/reset/reboot-mode 0xf5f128c5	devm_reboot_mode_register
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0x10ca7bfa	bq27xxx_battery_teardown
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xbb0da9f7	bq27xxx_battery_update
+EXPORT_SYMBOL_GPL	 drivers/power/supply/bq27xxx_battery 0xfddd6e4d	bq27xxx_battery_setup
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x6fcffab0	pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0x8826f2f4	pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL	 drivers/power/supply/pcf50633-charger 0xce24f813	pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x10e6f416	mc13xxx_parse_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x3ce35403	mc13xxx_get_num_regulators_dt
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x4baeb85e	mc13xxx_fixed_regulator_set_voltage
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0x7e8c1645	mc13xxx_fixed_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/mc13xxx-regulator-core 0xb74294ef	mc13xxx_regulator_ops
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x2b02f338	wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x4e84f0b7	wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x616c7490	wm8350_register_led
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0x93b6678a	wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xd3748ffe	wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8350-regulator 0xd6e689c5	wm8350_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/regulator/wm8400-regulator 0x69bd9c8b	wm8400_register_regulator
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x0f4dca1a	qcom_glink_native_probe
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0x149236da	qcom_glink_native_remove
+EXPORT_SYMBOL_GPL	 drivers/rpmsg/qcom_glink_native 0xfd2d5a1d	qcom_glink_native_unregister
+EXPORT_SYMBOL_GPL	 drivers/rtc/rtc-ds1685 0x14ad88e0	ds1685_rtc_poweroff
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x163528bd	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x17100af7	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x17e2a90a	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x19bbc442	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x1ad02062	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x2dd65389	cxgbi_device_find_by_netdev_rcu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x3171bd7e	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x39585ec8	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x43c81de8	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x440c8846	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x4ce50b0d	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5470ff93	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x58fa841b	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5df743c1	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x5f908e56	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x612c42e3	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x61bf436a	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x638f964f	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x67050cb8	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x67a5b1b1	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6a9ca2da	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6b84da5e	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6f149bad	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x6fe53bd5	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x71cfffae	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x79eebb08	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7c85193d	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x8468e16e	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x94c67717	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0x95830f26	cxgbi_ddp_ppm_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa54017b3	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xa7e8c5c6	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xb3178219	cxgbi_sock_established
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xba058135	cxgbi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc011af75	cxgbi_ddp_set_one_ppod
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xc13a1499	cxgbi_device_find_by_netdev
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xcf3165dd	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd1762e6f	cxgbi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xd967f07d	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe5679879	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xe5c33bfd	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xebc07853	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xef346615	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf1fe0d9a	cxgbi_device_register
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xf6d14300	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/cxgbi/libcxgbi 0xfeaeed88	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x045fa8a5	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x22b35922	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x2eb58a9c	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x336f70b9	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x39ff6dde	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3a006b45	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3b2c64c6	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x482674f0	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x4ed2d21b	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x61a9b31b	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x8d8f066f	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x9307918b	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xabc80c15	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xd0646a8b	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xdcca2cfb	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xed97c5d3	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x830c0e13	fdomain_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/fdomain 0x8d2d5c50	fdomain_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x03a57f3c	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x0adf4105	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x5cd1cc77	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x655b91c4	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xbe9f5104	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xc59bcfc6	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xed1038a5	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0xc34ea0a4	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0d17cc8a	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x0fb4b87f	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x161ee188	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1a65f2a9	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3a67f2c8	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3ae34b99	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3b9faf2b	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x42b09707	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x438b66b4	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x44645cf5	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x459490d6	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x49eddc0a	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4c8310fe	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x537cdd9d	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x5fd64360	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6767b492	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6a1e0853	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6a87e131	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6cd0de94	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x6e08d24d	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8404958b	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x88374fb8	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d207b2a	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8fe18778	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x967ae958	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x97b2ef02	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9fa3fa70	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa20ec702	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa87f8077	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb07a58db	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb27a30c8	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb5ed0e2b	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb7ab81f1	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc1fdea6e	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd13f56bf	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd9e2fb50	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xda9b9ad3	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe1cbb367	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xef6b1727	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf888303f	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfbfe094c	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xfdbf145d	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x0dc39082	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x13a1acc9	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2c76ac09	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x34b72162	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x45d5d0dd	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x97bced2e	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xaaa1237f	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xace63b60	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb4b0bdab	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xbc7b9dfd	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc128ed25	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xc72487b5	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xcfc22340	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xd8050d04	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xdfc95f81	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xeb77098a	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf9b5c60d	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x03ac08d5	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x0ffd7fdd	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1eeb8d96	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x2ab07475	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3319551e	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x36ec0c46	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x3c4ffddb	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x435a52e3	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x44e8dd1e	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x533e4767	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x5c5aa8f3	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x6405b501	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x841a493c	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9a2af9bd	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9eab7e98	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb5c150a7	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc53d856f	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd250567e	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd2abd4b2	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdf2751db	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xeb792f84	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf0f3a50d	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf286b727	sas_ata_schedule_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf385305e	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xfd423641	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x1a7226a7	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x21435464	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x28d09eee	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x32a31b9f	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x345f1a3c	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3a627340	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x42b38be6	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x492e42ba	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5c5e1d87	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5d738b16	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5e194094	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x5f6543fe	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x69611c5a	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6c7febaa	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6da3c22b	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x77ba8eb3	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x78e916bc	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84cd03c0	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x89dd36a5	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x935694ba	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9ac2e690	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9ff8171f	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa173a255	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa4eee2a2	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa622be7c	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb0af0c5e	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xba4906aa	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc0e0c0fd	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc2b0d84d	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc3e2e076	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc7abc21e	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcd837de0	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xce6087eb	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xcf5ffe98	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd12ff761	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd15fdf57	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd8e8ce9c	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xdc46ecc9	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe2b7779f	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe8a2d58c	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe95a4f39	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xeaa28fa2	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf55d0974	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf575a5e1	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf7b31a0d	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfdd9ab1f	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0x58c3f708	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xd60507f0	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xd81f743e	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xf917d3d0	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x3bfae627	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x200d882b	ufshcd_dme_set_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x34355d38	ufshcd_dealloc_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x48c54051	ufshcd_config_pwr_mode
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x700f827f	ufshcd_hold
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x7e5c7162	ufshcd_dump_regs
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0x8b9a6980	ufshcd_dme_get_attr
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xaf703095	ufshcd_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xca9c1252	ufshcd_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-core 0xe824069e	ufshcd_release
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x5ab16012	ufshcd_pltfrm_runtime_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x5cedfcf9	ufshcd_pltfrm_resume
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x89881e62	ufshcd_pltfrm_runtime_idle
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0x8e59c86f	ufshcd_pltfrm_runtime_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xb987af03	ufshcd_pltfrm_suspend
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xedb6b1f3	ufshcd_pltfrm_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xfda8f507	ufshcd_pltfrm_shutdown
+EXPORT_SYMBOL_GPL	 drivers/scsi/ufs/ufshcd-pltfrm 0xff85cd6b	ufshcd_get_pwr_dev_param
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x13e1f61a	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x24c1460d	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x9025b0e1	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xb5f174b7	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xc1289199	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xf2168b88	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x02bc3873	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0a16d21c	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1479398f	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x197daa99	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x21b3335f	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2b4f88bd	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3045c019	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x430e9899	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x57256f67	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x5bc5162c	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x61a0e96e	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x650d2e69	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x657726ca	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6a959d56	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6fcc3599	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x8bff6fcb	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9882f13a	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9d714f25	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xab539ca7	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xadcc4392	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb0b49518	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb11f2887	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xb1698eb7	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc9883a1a	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd4cf6c57	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xe5035450	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x088d3134	sdw_bus_type
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x24c9f2de	sdw_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/soundwire/soundwire-bus 0x4063fff8	__sdw_register_driver
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x006b17df	spi_bitbang_start
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x1a0334d6	spi_bitbang_setup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x99f0e415	spi_bitbang_stop
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0x9ab9c4a4	spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xb4ab0801	spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-bitbang 0xde7f1b28	spi_bitbang_init
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x2bf50437	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x42ffc9e2	dw_spi_add_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x69b7ce95	dw_spi_set_cs
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0x97638502	dw_spi_resume_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-dw 0xc35e3bcb	dw_spi_remove_host
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xb838bdd2	spi_test_run_test
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xc0c01e35	spi_test_run_tests
+EXPORT_SYMBOL_GPL	 drivers/spi/spi-loopback-test 0xd7759d7c	spi_test_execute_msg
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x17452f6c	spmi_command_reset
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x183cbb8c	spmi_device_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x223303b3	spmi_ext_register_readl
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2925a39b	spmi_ext_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x2ca2c7c9	spmi_command_wakeup
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3450ff3b	spmi_controller_alloc
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x362331e3	__spmi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x3b2067b2	spmi_register_write
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x40a56970	spmi_controller_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x44a682fa	spmi_ext_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x53fa00c1	spmi_command_sleep
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0x771281e4	spmi_register_read
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xa49df6e1	spmi_device_add
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xb88bed77	spmi_device_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xc1bd6128	spmi_command_shutdown
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd0854d25	spmi_controller_remove
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xd2e504bb	spmi_ext_register_writel
+EXPORT_SYMBOL_GPL	 drivers/spmi/spmi 0xe794afbc	spmi_register_zero_write
+EXPORT_SYMBOL_GPL	 drivers/ssb/ssb 0x557a802e	ssb_pmu_spuravoid_pllupdate
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x03496356	comedi_dev_put
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x07f11ac0	comedi_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0acef561	comedi_check_chanlist
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x0cd330f4	range_unknown
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x1c40eab0	comedi_readback_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x21102f87	range_0_32mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2652235c	comedi_timeout
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x29db891f	comedi_handle_events
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2d920581	comedi_alloc_subdev_readback
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f042a2d	comedi_alloc_subdevices
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x2f0ad9d3	range_bipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x3797addb	comedi_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x397a998c	comedi_set_hw_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4236eaaf	range_4_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x458be83e	__comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fbf860c	comedi_nsamples_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x4fe634f3	range_bipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x55e89618	comedi_bytes_per_scan_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x5f57d090	comedi_dio_update_state
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x62324e6a	comedi_event
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x629e9fac	comedi_buf_write_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x67015341	comedi_dio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6a0fcef2	comedi_legacy_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6c86ee52	comedi_buf_read_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6ec018b8	comedi_set_spriv_auto_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x6f04d26b	comedi_bytes_per_scan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x7faa8361	comedi_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8113872c	range_unipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x836e3be1	comedi_nscans_left
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x895ab9ff	comedi_buf_read_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x8efda2e5	comedi_dev_get_from_minor
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x91c8d9b8	comedi_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x91df925f	comedi_inc_scan_progress
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0x921852e1	comedi_is_subdevice_running
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xa77582e2	comedi_buf_read_samples
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb27d15b5	comedi_buf_write_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb2a69d55	comedi_alloc_devpriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xb679cebc	range_0_20mA
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbb52fc7f	range_bipolar10
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xbdbe75c6	range_unipolar2_5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc93f9b12	comedi_buf_write_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xc94ed492	comedi_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xda6b8cbb	comedi_buf_read_n_available
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xda89bf0d	comedi_alloc_spriv
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xdb2044b2	range_unipolar5
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi 0xe160ea2f	comedi_load_firmware
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x381b93ee	comedi_pci_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x7115a366	comedi_to_pci_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0x88f14191	comedi_pci_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xa118df75	comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xca1def69	comedi_pci_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xce2093ee	comedi_pci_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xd61f7e17	comedi_pci_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_pci 0xfaba7797	comedi_pci_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x3560f27c	comedi_usb_auto_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x69d9369e	comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x8b71f170	comedi_usb_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0x91932314	comedi_to_usb_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xa23cf30a	comedi_to_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/comedi_usb 0xe46a0815	comedi_usb_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x1decdb88	addi_watchdog_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf	addi_watchdog_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x213b7de4	amplc_dio200_set_enhance
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_dio200_common 0x273282b8	amplc_dio200_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/amplc_pc236_common 0xdc15f61a	amplc_pc236_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x109a65d0	comedi_8254_pacer_enable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x11d55d5a	comedi_8254_set_busy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x1b8c4329	comedi_8254_update_divisors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x222fa036	comedi_8254_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x34317a4c	comedi_8254_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x63fa54d9	comedi_8254_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0x718cd42d	comedi_8254_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xa6cb2964	comedi_8254_load
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xab341232	comedi_8254_cascade_ns_to_timer
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb05bb4ca	comedi_8254_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xb2f16757	comedi_8254_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xcd44a01d	comedi_8254_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8254 0xe06ba941	comedi_8254_subdevice_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x4a80eddf	subdev_8255_mm_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x747d3fd0	subdev_8255_init
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_8255 0x861f50fe	subdev_8255_regbase
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x12fba874	comedi_isadma_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x1ab99e66	comedi_isadma_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0x4a17474e	comedi_isadma_disable_on_sample
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xca784d4b	comedi_isadma_set_mode
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xdf893b5a	comedi_isadma_poll
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xea878430	comedi_isadma_program
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/comedi_isadma 0xeb96af0d	comedi_isadma_free
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/das08 0x6aa088e4	das08_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1e7fa076	mite_bytes_in_transit
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x1f5399fd	mite_alloc_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x286fe49b	mite_dma_disarm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x3bcb7e30	mite_request_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x5d2e5878	mite_done
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7945b0d9	mite_request_channel_in_range
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x7a5e0aca	mite_release_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0x89cd64e8	mite_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xa69b3c87	mite_buf_change
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xcb11ebfe	mite_ack_linkc
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xcece2d92	mite_init_ring_descriptors
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xd3b3af01	mite_prep_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xdf74685c	mite_dma_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xe1fae897	mite_sync_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xf86f029a	mite_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/mite 0xfc34e523	mite_free_ring
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0x2739c378	labpc_common_detach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_common 0xfcb806bf	labpc_common_attach
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x185e1793	labpc_init_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x1bee6fde	labpc_setup_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0x59e32013	labpc_handle_dma_status
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xb5d33d6e	labpc_free_dma_chan
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_labpc_isadma 0xb5d6abcc	labpc_drain_dma
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x076bc308	ni_find_route_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x0921123e	ni_lookup_route_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x1facf7f8	ni_is_cmd_dest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x64443d67	ni_get_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x6c18c54e	ni_count_valid_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x863a306d	ni_sort_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8ab47ba4	ni_route_set_has_source
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0x8f0f0901	ni_find_route_set
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xb3e302a3	ni_route_to_register
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_routing 0xf6399e4e	ni_assign_device_routes
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x13f314bd	ni_tio_set_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x444d02ff	ni_tio_arm
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x542d07a3	ni_tio_unset_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x5b300059	ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x68d43469	ni_tio_insn_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x70a4ad55	ni_tio_get_soft_copy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7137f890	ni_tio_init_counter
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x7c34563e	ni_tio_insn_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0x90eaa639	ni_tio_insn_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xb2ed92fc	ni_tio_read
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xd5f159e5	ni_gpct_device_construct
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xddea7136	ni_tio_set_bits
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xe105c2fc	ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xf579753e	ni_tio_write
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xf79f330b	ni_tio_set_gate_src_raw
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tio 0xfc18ab32	ni_tio_get_routing
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x20acf5dc	ni_tio_acknowledge
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x2c5ec70c	ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x35479e8f	ni_tio_cmdtest
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0x90ea1736	ni_tio_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xe7d26a8d	ni_tio_cancel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/drivers/ni_tiocmd 0xee4a4aa3	ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x1b1cae22	comedi_dio_bitfield2
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5a055785	comedi_dio_get_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0x5a26f780	comedi_get_n_channels
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xbf8f8633	comedi_find_subdevice_by_type
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xcd04058e	comedi_dio_config
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xd383b156	comedi_open
+EXPORT_SYMBOL_GPL	 drivers/staging/comedi/kcomedilib/kcomedilib 0xf952acd9	comedi_close
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x3d1fe6ad	anybuss_send_ext
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x4a62389e	anybuss_write_input
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x5f83e911	anybuss_read_output
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x60113621	anybuss_recv_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x60176131	devm_anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x74a9117e	anybuss_client_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x764decf8	anybuss_client_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x890ff1d1	anybuss_finish_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0x9c6e75f3	anybuss_start_init
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xa5c0dac6	anybuss_read_fbctrl
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xadc7326d	anybuss_set_power
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xc6df1910	anybuss_send_msg
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xf811500f	anybuss_host_common_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad	anybuss_host_common_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x1a9153c4	fieldbus_dev_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x4c63e901	fieldbus_dev_register
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0x600284fb	fieldbus_dev_area_updated
+EXPORT_SYMBOL_GPL	 drivers/staging/fieldbus/fieldbus_dev 0xbd2de8bb	fieldbus_dev_online_changed
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x067fe17f	gb_audio_apbridgea_stop_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2537c59d	gb_audio_apbridgea_prepare_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x2ead49ca	gb_audio_apbridgea_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x3db7eae8	gb_audio_apbridgea_set_config
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x469f6858	gb_audio_apbridgea_register_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x5462aa41	gb_audio_apbridgea_shutdown_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x7d8d099f	gb_audio_apbridgea_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0x890ef35d	gb_audio_apbridgea_unregister_cport
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xac63eff7	gb_audio_apbridgea_shutdown_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xcd95a6a4	gb_audio_apbridgea_start_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xdd36802b	gb_audio_apbridgea_prepare_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xf11914cc	gb_audio_apbridgea_start_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-apbridgea 0xfe7ea4c9	gb_audio_apbridgea_stop_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x1807e569	gb_audio_gb_get_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x3204e2c8	gb_audio_gb_deactivate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x37f8ea92	gb_audio_gb_set_control
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x3fa8cd0e	gb_audio_gb_activate_rx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x5757c37f	gb_audio_gb_set_tx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x871a0631	gb_audio_gb_disable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x8f37cb61	gb_audio_gb_set_rx_data_size
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0x9c0084bd	gb_audio_gb_get_topology
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xc5613616	gb_audio_gb_get_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xccadd952	gb_audio_gb_set_pcm
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xd21bc913	gb_audio_gb_activate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xdfb7e6d5	gb_audio_gb_deactivate_tx
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-gb 0xe85db9df	gb_audio_gb_enable_widget
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x19e9e6b1	gb_audio_manager_remove_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x311d450a	gb_audio_manager_put_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x32e6391e	gb_audio_manager_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x55bd409d	gb_audio_manager_get_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x5a108b0f	gb_audio_manager_add
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0x79eef2f8	gb_audio_manager_dump_all
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-audio-manager 0xaeac8ca2	gb_audio_manager_dump_module
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x03c0a2d1	gb_gbphy_deregister_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-gbphy 0x3f03827f	gb_gbphy_register_driver
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0x4fb33a06	gb_spilib_master_exit
+EXPORT_SYMBOL_GPL	 drivers/staging/greybus/gb-spilib 0xfa43644a	gb_spilib_master_init
+EXPORT_SYMBOL_GPL	 drivers/staging/iio/addac/adt7316 0x46f1d6fc	adt7316_pm_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x05e6c737	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x0c9e60ff	gigaset_m10x_input
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x0e82eb7c	gigaset_if_receive
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x28d994a9	gigaset_freecs
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x3098e15e	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x448373aa	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x45ab76d0	gigaset_blockdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x608632f8	gigaset_start
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x6183fea0	gigaset_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x62abfd53	gigaset_add_event
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x63f57e32	gigaset_skb_sent
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x713b2f0c	gigaset_initdriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x871abb65	gigaset_freedriver
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x8a302179	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0x9531d278	gigaset_shutdown
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xa3151853	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xcf699b36	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL	 drivers/staging/isdn/gigaset/gigaset 0xfa04f741	gigaset_initcs
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x20351a9e	most_register_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x36e36932	most_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x619cfb8d	most_submit_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x67d6c679	most_put_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7349ff83	most_stop_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7aab0400	most_get_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0x7acbbbc4	most_register_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xab496cc5	channel_has_mbo
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc7d29e42	most_deregister_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xc9bf3c9b	most_resume_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xcfd6faaf	most_register_interface
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xdb897433	most_deregister_component
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xec9d667e	most_start_channel
+EXPORT_SYMBOL_GPL	 drivers/staging/most/most_core 0xffd574d9	most_deregister_configfs_subsys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x08771a98	spk_ttyio_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x0ef1d765	speakup_info
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x1e39eb14	synth_putws
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x22ca50a1	spk_serial_io_ops
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x2b9df101	spk_synth_flush
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x3f633ef3	spk_var_store
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x41a160e5	synth_buffer_empty
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x426b9cbe	spk_ttyio_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x4449e1dd	synth_buffer_clear
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x466f5eb7	synth_putwc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x59325ff4	spk_synth_is_alive_nop
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x5dda8e9a	spk_serial_synth_immediate
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6361033e	spk_get_var
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6b0773df	synth_current
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x6d622b60	spk_do_catch_up_unicode
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x70095132	spk_synth_is_alive_restart
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x76d40046	synth_buffer_skip_nonlatin1
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x84dad068	synth_buffer_getc
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8be3ce20	synth_add
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8c82dfca	synth_request_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8e50055a	spk_stop_serial_interrupt
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x8fe0db01	synth_putwc_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0x91640226	spk_serial_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xa7687749	synth_remove
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xaadb0612	synth_buffer_peek
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xae7d6424	spk_ttyio_release
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xb72e27ca	spk_var_show
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xba0088e0	speakup_event
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbbd15a51	speakup_start_ttys
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xbf8a4020	spk_ttyio_synth_probe
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xc319c604	synth_putws_s
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd2dd0fb8	spk_synth_get_index
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xd8fd86cf	synth_release_region
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe194d0ef	synth_printf
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe28b7f2c	spk_do_catch_up
+EXPORT_SYMBOL_GPL	 drivers/staging/speakup/speakup 0xe7cd4558	spk_serial_release
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x6f0ee067	i1480_fw_upload
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x9f77699e	i1480_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0xb4b7510f	i1480_rceb_check
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x212c95c6	umc_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x3d9585ef	umc_device_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0x84f521ba	umc_controller_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xcf02aca0	__umc_driver_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xd196e29f	umc_device_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xdf8618e0	umc_bus_type
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xe29d6c28	umc_match_pci_id
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/umc 0xf71d1195	umc_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x02544167	uwb_rc_alloc
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0d78016e	__uwb_addr_print
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x0f3ed3a7	uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x17d98c69	uwb_rc_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x1dcc0264	uwb_est_find_size
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2048644f	uwb_rc_put
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x20735c2a	uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2566894d	uwb_pal_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x25d15823	uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x270d5ca5	uwb_rsv_terminate
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2e560cdb	uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x2eae9652	uwb_rc_neh_error
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x469737d6	uwb_radio_stop
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x49d17c14	uwb_dev_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4abe25c5	uwb_rsv_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4d57ae3c	uwb_rsv_type_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4e3b11aa	uwb_rsv_accept
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x4e488027	uwb_radio_start
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x5a5bcae2	uwb_est_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x60af912c	uwb_notifs_deregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6b494184	uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x6c68ca8f	uwb_rc_cmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x70ea70d3	uwb_rc_vcmd
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x72959328	uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x79c208bd	uwb_rsv_create
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x86561c77	uwb_pal_unregister
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8ce1d726	uwb_rc_init
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x8f3049b9	uwb_rc_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x951a7a15	uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0x98413234	uwb_rsv_state_str
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa024b07b	uwb_pal_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xa1f28cb0	uwb_rsv_modify
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xacd75988	uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xb1080cbd	uwb_rsv_establish
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xd42de7cc	uwb_dev_for_each
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe3daa90b	uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xe9ae5478	uwb_rc_post_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xeedacef4	uwb_notifs_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf088feab	__uwb_rc_try_get
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5b6747a	uwb_rc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf5fc2f2d	uwb_ie_next
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xf9e82859	uwb_est_register
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/uwb 0xfa4572a4	uwb_rc_ie_add
+EXPORT_SYMBOL_GPL	 drivers/staging/uwb/whci 0x90d64b47	whci_wait_for
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x16e02e25	host_wakeup_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x2b5cd623	wilc_cfg80211_init
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0x78d9e1fe	chip_wakeup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xd3074c1e	wilc_netdev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xd8131930	chip_allow_sleep
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xe51371d1	wilc_handle_isr
+EXPORT_SYMBOL_GPL	 drivers/staging/wilc1000/wilc1000 0xe7b8faaa	host_sleep_notify
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5a46f44f	wa_dti_start
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x5bc6d010	wa_urb_enqueue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x69fadfe3	wa_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x6fb9af23	wa_urb_dequeue
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x7490c654	wa_process_errored_transfers_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x8b595764	__wa_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x8b6840c0	rpipe_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0x99efe030	rpipe_clear_feature_stalled
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xad517188	wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusb-wa 0xf5548a34	rpipe_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x047fa71e	__wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x2c1c5d46	wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x2d35d485	wusbhc_rh_control
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x38348a4e	wusbhc_b_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3b7d185e	wusbhc_reset_all
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x3fc73cf6	wusb_cluster_id_get
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x45a7a29b	wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x6b9ef188	wusb_et_name
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7c0bdc93	wusbhc_create
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x7fb548bf	wusbhc_handle_dn
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x845ab80e	wusbhc_b_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0x9374618d	wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xa867abf0	wusb_cluster_id_put
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xbc3b99f0	wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xcd98eb75	wusbhc_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe19409e0	wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xe448ccfa	wusb_dev_destroy
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xea5438dd	wusbhc_chid_set
+EXPORT_SYMBOL_GPL	 drivers/staging/wusbcore/wusbcore 0xf770a6b4	wusbd
+EXPORT_SYMBOL_GPL	 drivers/tty/n_tracesink 0x8a422e5e	n_tracesink_datadrain
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x1e522474	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x5a8febe5	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0xbe46b737	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x61bdf2d0	usbatm_usb_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/atm/usbatm 0x8343dc21	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x56d48dc0	hw_phymode_configure
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0x64b64f93	ci_hdrc_remove_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/ci_hdrc 0xb097b3d7	ci_hdrc_add_device
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x18fdcecd	imx_usbmisc_set_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x24ecf90c	imx_usbmisc_init_post
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0x837cef42	imx_usbmisc_hsic_set_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xafebfcb5	imx_usbmisc_hsic_set_clk
+EXPORT_SYMBOL_GPL	 drivers/usb/chipidea/usbmisc_imx 0xbed444ec	imx_usbmisc_init
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x01bc4e0d	__ulpi_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0x7bc66f50	ulpi_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xa72d8791	ulpi_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xb514b901	ulpi_register_interface
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xbd2fde2e	ulpi_read
+EXPORT_SYMBOL_GPL	 drivers/usb/common/ulpi 0xebe229ed	ulpi_write
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x11c25b90	u_audio_start_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x209ae766	u_audio_start_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x528021c3	g_audio_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0x6bb0eefb	g_audio_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xb3695a71	u_audio_stop_playback
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_audio 0xeb80d11d	u_audio_stop_capture
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x0a612377	gether_setup_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x103c6cf6	gether_set_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x10e4c221	gether_setup_name_default
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x33e676ae	gether_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x569f9dad	gether_set_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x5fc7e35b	gether_get_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x66a4f17b	gether_register_netdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x6a192f8a	gether_get_host_addr_u8
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x780cb0f1	gether_get_host_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x87e40144	gether_get_host_addr_cdc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8878cfa6	gether_cleanup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x8b72dd4a	gether_set_dev_addr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x92214019	gether_get_qmult
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0x944c1721	gether_get_ifname
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xccb4de8d	gether_set_gadget
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_ether 0xe7e95c4e	gether_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x33bfdca2	gserial_alloc_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x40135c6a	gserial_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0x57133707	gs_free_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xaf4acc3d	gserial_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xb6652875	gserial_free_line
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/u_serial 0xbe9964ce	gs_alloc_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xa496e576	ffs_lock
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xabb19fe2	ffs_name_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_fs 0xeb766429	ffs_single_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x05bc392f	fsg_lun_open
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x0ee7d719	fsg_store_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a	fsg_common_remove_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x156aa84a	fsg_store_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539	fsg_fs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x19282324	fsg_show_nofua
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7	fsg_common_set_num_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x260e8e91	fsg_lun_fsync_sub
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d	fsg_ss_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x2f576955	fsg_show_removable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1	fsg_ss_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0	fsg_common_create_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x3df8b046	fsg_show_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4	fsg_ss_bulk_in_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x50f7c293	fsg_lun_close
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf	fsg_hs_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179	fsg_common_set_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5	fsg_common_set_sysfs
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2	fsg_hs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x87f22034	fsg_store_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9269d5f8	fsg_show_inquiry_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x93e3c7af	fsg_store_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e	fsg_hs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7	fsg_common_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f	fsg_ss_bulk_out_comp_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69	fsg_fs_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xa6f35114	fsg_store_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac	fsg_config_from_params
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb28dc553	fsg_store_cdrom
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d	store_cdrom_address
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb464d4ee	fsg_show_file
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a	fsg_intf_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95	fsg_fs_bulk_in_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xc3b30771	fsg_show_ro
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd15a4ea8	fsg_common_set_cdev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0	fsg_common_create_luns
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8	fsg_ss_bulk_out_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_mass_storage 0xf72b0f2e	fsg_common_remove_lun
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x23b745a2	rndis_signal_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x2d5bc8c5	rndis_uninit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x32e2f4d7	rndis_signal_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x3c11acb9	rndis_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x7df4a178	rndis_set_param_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x95fdf298	rndis_deregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0x9bba33ea	rndis_borrow_net
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xa20b59c6	rndis_free_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbc3472b0	rndis_set_param_vendor
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xbff9daec	rndis_msg_parser
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xdbe44918	rndis_set_host_mac
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xe62c557f	rndis_set_param_medium
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf3b1fdd8	rndis_get_next_response
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf4450cd2	rndis_rm_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/function/usb_f_rndis 0xf49808e4	rndis_add_hdr
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x063b961c	usb_add_config
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x08c4173c	usb_add_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x13a16a34	config_ep_by_speed_and_alt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x2e09263f	usb_copy_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x3232e5dc	usb_ep_autoconfig_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x492586b6	usb_string_ids_tab
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x497d5409	usb_assign_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4beb505d	usb_gadget_get_string
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x4e049ffd	usb_gstrings_attach
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x50c01f96	usb_composite_setup_continue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x5e5ce353	usb_put_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x608eb512	usb_add_config_only
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6b01a6bd	usb_ep_autoconfig
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6d2cbea5	unregister_gadget_item
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6dc11b4d	alloc_ep_req
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x6f436eaf	usb_string_ids_n
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x74ba0c2c	usb_string_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x7ec7271d	usb_composite_overwrite_options
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x86ffffe0	usb_otg_descriptor_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x87c1c80f	usb_composite_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x946c4dc2	usb_put_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0x9a415d4b	usb_free_all_descriptors
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xa44c0501	usb_ep_autoconfig_ss
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xab9f0ed9	usb_interface_id
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb57f8868	usb_remove_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xb5ab2709	usb_function_register
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xc65d363d	usb_function_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xcdf7935d	usb_function_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd2ea2134	usb_descriptor_fillbuf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd513eab1	usb_get_function
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd5fdbdc1	usb_ep_autoconfig_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xd8e2bf95	usb_get_function_instance
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xe5f75d88	usb_composite_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xed6ea5cc	usb_otg_descriptor_alloc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xf474a207	usb_gadget_config_buf
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xfb11444c	usb_function_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/libcomposite 0xffdd8248	config_ep_by_speed
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x033b28d6	empty_req_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5596e614	gadget_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x5d01d078	udc_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0x707786f7	free_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xa14e3da0	udc_basic_init
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xacd50290	udc_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xba890378	init_dma_pools
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xcc6d224b	udc_enable_dev_setup_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xe440ed48	udc_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/snps_udc_core 0xf6aa07d0	udc_mask_unused_interrupts
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x0ffaa944	usb_ep_queue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x13115982	usb_gadget_clear_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x1959219b	usb_gadget_set_state
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2241591b	usb_gadget_udc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x250716ef	usb_gadget_map_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x28cb7cef	usb_ep_fifo_status
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2a20aa99	usb_gadget_unmap_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x2ef742d1	usb_gadget_wakeup
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x3079994e	usb_gadget_unmap_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x40f79de7	usb_ep_set_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x47caa7c9	usb_gadget_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x4a2315f5	usb_ep_set_maxpacket_limit
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x50b88f41	usb_get_gadget_udc_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x5591473d	usb_ep_fifo_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x55d4bd6c	usb_udc_vbus_handler
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x59d96a51	usb_gadget_deactivate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x63e14d80	usb_ep_clear_halt
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x6bfad17f	usb_ep_enable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x712c27f9	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x73551c77	usb_del_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x7623e532	usb_gadget_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x870a88b3	usb_gadget_ep_match_desc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x8ae10d61	usb_add_gadget_udc
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x93a17dc2	usb_gadget_map_request_by_dev
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x94816c92	usb_ep_set_wedge
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0x972854c2	usb_add_gadget_udc_release
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa0e62d4b	usb_ep_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa36ea15e	usb_ep_free_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xa61497a3	usb_gadget_activate
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xace88766	gadget_find_ep_by_name
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xb09e1d01	usb_gadget_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc41263c7	usb_ep_disable
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc6bbd8c1	usb_gadget_vbus_draw
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc8ea074a	usb_ep_dequeue
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xc940d8c9	usb_gadget_frame_number
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xd2802cea	usb_gadget_set_selfpowered
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xec447355	usb_gadget_vbus_connect
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xf0979a46	usb_gadget_giveback_request
+EXPORT_SYMBOL_GPL	 drivers/usb/gadget/udc/udc-core 0xfe9fa391	usb_gadget_vbus_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0x1cd3b083	ezusb_fx1_ihex_firmware_download
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ezusb 0xccd5c4b8	ezusb_fx1_set_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x249e61a5	usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x506f66fe	usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x5459e6bf	usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x5c6490c2	usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0x7a332221	usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xbe934637	ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xcd71bc7c	usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xcf4238fe	usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL	 drivers/usb/misc/ftdi-elan 0xd068b5c0	usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x09492220	musb_mailbox
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x1f53e6d0	musb_interrupt
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x37f6df4e	musb_queue_resume_work
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x6b11b059	musb_writeb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0x7bd47bfe	musb_readb
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xaa2544c3	musb_root_disconnect
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xb517950a	musb_writel
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xc3ae8b2b	musb_readl
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xccbfd39d	musb_writew
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xce423b28	musb_readw
+EXPORT_SYMBOL_GPL	 drivers/usb/musb/musb_hdrc 0xffc415ab	musb_get_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x12071c52	usb_gen_phy_init
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x4c8a61e7	usb_phy_generic_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0x6db24b2f	usb_gen_phy_shutdown
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xa1fc2a12	usb_phy_gen_create_phy
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-generic 0xda0d2b9b	usb_phy_generic_register
+EXPORT_SYMBOL_GPL	 drivers/usb/phy/phy-isp1301 0xd8e33cc4	isp1301_get_client
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x05ab082b	usb_role_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x2882d40e	usb_role_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0x8785520b	fwnode_usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xc9fd634a	usb_role_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xce94d153	usb_role_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xd5474690	usb_role_switch_set_role
+EXPORT_SYMBOL_GPL	 drivers/usb/roles/roles 0xff42c374	usb_role_switch_get_role
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usb_wwan 0xdf91f242	usb_wwan_port_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x06049575	usb_serial_handle_break
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x07453457	usb_serial_generic_tiocmiwait
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x10a14b32	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x11b14029	usb_serial_register_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1c1758bc	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x1ea0cc23	usb_serial_generic_chars_in_buffer
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x3cdc9c15	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6983f115	usb_serial_generic_get_icount
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x6bbcb14b	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x7404989a	usb_serial_deregister_drivers
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x82fc8c2d	usb_serial_generic_open
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x8e806090	usb_serial_generic_close
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0x9e9e6ac5	usb_serial_generic_write_start
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xb37bff69	usb_serial_generic_wait_until_sent
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xba285a13	usb_serial_generic_submit_read_urbs
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe0010e9c	usb_serial_generic_write
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xe0e12707	usb_serial_port_softint
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xea18bd21	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xeb410350	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf7745caa	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL	 drivers/usb/serial/usbserial 0xf7d2c681	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xc1af053f	dp_altmode_probe
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/altmodes/typec_displayport 0xd82f1df4	dp_altmode_remove
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x1080f12c	tcpci_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0x6f497a3c	tcpci_irq
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpci 0xc529e32e	tcpci_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x3b84657b	tcpm_pd_transmit_complete
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x612be7ff	tcpm_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x76eeda4b	tcpm_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0x9e0bd753	tcpm_pd_hard_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xb655342c	tcpm_pd_receive
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xc37b9769	tcpm_cc_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xceb50012	tcpm_vbus_change
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/tcpm/tcpm 0xea220941	tcpm_tcpc_reset
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0119dd83	typec_mux_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x02b4e209	typec_altmode_get_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x03608f2a	typec_cable_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x05efeee1	typec_altmode_register_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x0cbde8b5	typec_port_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x1b90ac2b	typec_unregister_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x20063e66	typec_altmode_get_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x2d1e301d	typec_find_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x33fd62de	typec_set_pwr_opmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x36852716	typec_set_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x38c4cfb6	typec_switch_put
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x426285ea	typec_unregister_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x47ab328a	typec_altmode_exit
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x493159cc	typec_partner_set_identity
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x49e9c7d6	typec_altmode_unregister_notifier
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x54c93810	typec_set_mode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5869adb2	typec_get_orientation
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5ac3a632	typec_set_vconn_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5e7b4955	typec_plug_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x5f2c6469	typec_set_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x644bb868	typec_altmode_vdm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x646e5a02	typec_switch_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x6b19b838	typec_switch_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x762c549f	typec_match_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7751d771	typec_mux_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7a3e836b	typec_altmode_put_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7d876baf	typec_altmode_attention
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e17e4b3	typec_mux_unregister
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x7e2998e7	typec_set_pwr_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9049491e	typec_find_port_data_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x962b64f3	typec_unregister_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9a00a11c	typec_register_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9c245fd2	typec_register_cable
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0x9cad8da6	typec_unregister_partner
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xa8346872	typec_altmode_enter
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xad90c3c7	typec_partner_register_altmode
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xaec7d7fe	typec_altmode2port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xbeca0645	typec_switch_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xc7bbb962	typec_altmode_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xcc91ae8b	typec_altmode_update_active
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xd36a399a	typec_mux_get
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xda0a9c4c	typec_unregister_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe2c53b87	__typec_altmode_register_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xe747c6c4	typec_altmode_unregister_driver
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xeafc1eb8	typec_find_port_power_role
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xecc1fd55	typec_switch_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xed509c2e	typec_register_port
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xee19f4b1	typec_register_plug
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf1d81211	typec_switch_set_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf37c14d6	typec_mux_register
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/typec 0xf3edcae3	typec_mux_get_drvdata
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x3d08a04e	ucsi_send_command
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x7573194c	ucsi_notify
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0x895aaf37	ucsi_unregister_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xeaa242c5	ucsi_resume
+EXPORT_SYMBOL_GPL	 drivers/usb/typec/ucsi/typec_ucsi 0xf6887651	ucsi_register_ppm
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x0c76a70b	usbip_recv
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1b2dc41f	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1b91968a	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x1c862e90	usbip_recv_iso
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x2b059914	usbip_dump_urb
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x81ad95b3	usbip_in_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0x901797d2	usbip_pack_pdu
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xa89d4a9e	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xb3543890	usbip_stop_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xd660829f	usbip_event_happened
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xdf5a856e	usbip_event_add
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xe1ea0586	usbip_dump_header
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xec23f461	usbip_start_eh
+EXPORT_SYMBOL_GPL	 drivers/usb/usbip/usbip-core 0xfca1fb6f	usbip_pad_iso
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0x3df7eab1	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x0999a421	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1444d44f	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x17e7597f	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1ea8acf9	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x21360641	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2dfd169b	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b47c992	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4bf713b1	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4d2f6dea	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x541abb57	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x598d08e0	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5fd2940d	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x61b52ac3	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x685fe80e	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x6b9156b3	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x73b36dcb	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7acd34b4	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7b7471c3	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x8c5abdcb	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x91d7af0e	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x991360b4	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x9db368e1	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa8162160	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb10b81cc	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb3f7f1a6	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb4c7ae75	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xbe9ea420	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd64c7211	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd6a55d7e	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xd7113e5f	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdcf87fb0	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdfa21dbd	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xdfe38e61	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe9b31b4d	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xebcf42dc	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf12048ec	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf8fc53f9	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xfafafe7d	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x465b7eff	ili9320_shutdown
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x64065d6e	ili9320_suspend
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0x68307166	ili9320_remove
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xb9338b55	ili9320_write
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xe02676bf	ili9320_write_regs
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xef7a8afc	ili9320_probe_spi
+EXPORT_SYMBOL_GPL	 drivers/video/backlight/ili9320 0xfc44b27f	ili9320_resume
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_ddc 0x317302a9	fb_ddc_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x427e1361	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0x890ba2b0	fb_sys_read
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0x4f05c7a7	sis_malloc_new
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/sis/sisfb 0xa89f59b7	sis_free_new
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x05cea1e3	w1_touch_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x165a8841	w1_reset_bus
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x3698c96d	w1_read_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x501659d7	w1_reset_select_slave
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x563fbc8c	w1_triplet
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x5804b09e	w1_write_8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x63757e92	w1_calc_crc8
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0x97b0d0fb	w1_write_block
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa2be0ad6	w1_reset_resume_command
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa3d1ade5	w1_touch_bit
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xa9d8a307	w1_next_pullup
+EXPORT_SYMBOL_GPL	 drivers/w1/wire 0xb0f562d5	w1_read_block
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x83541f24	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x9dde43cb	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xaca534bf	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x312596f0	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x57f9d2c8	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x779f1048	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x7b2cf3cc	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x8ae17aa7	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x8f840fef	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xbeca658c	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x017805cf	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x05267305	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x058db7b2	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0a73571f	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0b410052	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c364177	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0feaff91	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x118a91c1	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x14bb8b7c	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1764d86d	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x190ffd55	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1e02e15c	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x21c63025	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x252143e4	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2667a999	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x282980f8	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x29d55c23	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2d1622d1	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2e6e8526	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2f468309	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x31d2b4be	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x33839d4a	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3474df61	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x37249cec	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3a7c9963	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3b51b5d0	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c606c46	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3c7d0518	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3e3e32e6	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3e85f37e	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40f1d3ca	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x41740e1d	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x45fae4e1	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x463c45e7	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x47625c3a	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4803d88e	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c2134ca	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4d913626	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x53c77459	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5439b59a	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56d88aa6	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x571ebb9a	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x588bfc92	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x59bc6ec7	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b9cace4	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5bfb9163	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5cf9822e	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5d4209a7	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60e78862	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6123f3b8	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62374b76	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62a6d46c	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x63523bff	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x642dc22f	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6487536f	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x654c9f96	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x68b91e71	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6d6d8a02	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6ebb005f	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6effc24f	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7002c750	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x70651511	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7380afb1	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73eec17e	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x761e9c8b	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7b41ebf2	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7c9722ba	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7cf4828d	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7dbd61aa	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7de548fa	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e403b6a	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7e60929f	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7f71182e	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x85c493a6	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x86a59fb0	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8a3d47f4	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8c66f1ba	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8ccc4523	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8f6e0055	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x94cb7e94	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x990dc832	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9bfb9b42	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9df13e7f	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9f64624b	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa0845f73	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa149584a	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa276c6ef	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2fe67e1	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa2ffbb8c	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa4abddaf	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa99f0f93	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9c90761	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa9fe2353	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xac29de62	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xacf4041c	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xadef40af	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb4b853c3	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb62c5731	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe63483b	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbe8cf098	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc010d295	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc09082a4	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc5ce6e81	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc6bede60	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7c33e4d	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc7da5bd1	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcaba4c7c	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcde29c65	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xce6070ef	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xceeee02c	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd193a852	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd196c3ab	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd2c46f80	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd5953945	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd5eab2bd	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd75239a2	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd861c352	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd9b2f8ab	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdbe7a444	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf7d3b14	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe418dd27	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe5218436	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe7698522	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe780b577	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb411a62	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xebfe9dc0	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xec1f455f	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xecb57741	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xed646435	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4275c89	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf63ceb0a	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf7e3ba28	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfa2395e4	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfcc356e3	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0xe7e80353	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x03cc12d8	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0901f135	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0ae8b563	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1205c9f5	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x121133e9	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1434d742	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x19fbd68d	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1ed192d9	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1edd8472	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x205d98ef	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x21137303	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2931e7b1	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2b120b1f	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2cb49145	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2e7d3a96	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x32d3b224	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x34ed74b8	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x354ef7aa	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x36526153	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3765278c	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3a4e656b	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x41d5fc26	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4282a57f	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x430d745f	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x450727d9	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x4888cc91	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6085edbd	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x665a04a3	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x68ce9316	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6b7f9629	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x73928666	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7e27e272	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7e3179c7	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7f1b7c5a	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x80e7db51	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x818c498f	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x843074ca	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8969f325	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x91bd493a	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x933dc4c6	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x952a77ba	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9895aaf3	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa5b4cbb6	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa6b1cf6e	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa9cfc97f	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae586642	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb5a7ce50	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb611df31	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc103c4f9	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc13dcf0e	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc48a7b2d	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc61672b5	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc65f7114	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xceb0674d	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd00a207a	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd15ec375	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd7636a8e	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc53db81	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xde2503cd	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe0feadeb	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe208d5a7	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5345648	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe5d73ac7	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeae48ccf	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xeae704f6	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf4cea04c	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf951e91e	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfe5ca28d	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfebb674e	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xffe415a0	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x7e07a68d	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xc988c01b	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0xcccc668f	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x2189e99c	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x4dd71353	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1a19c700	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x36431413	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x407ce983	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x9572af07	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xba6e2239	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf0a71e4a	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf5b4d125	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x1253efaf	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x20c63151	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x8d2e4fbb	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x9febb71b	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xb100b613	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfbe1b83f	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x359751bc	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x75bb5208	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xb46b59ba	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xf9010190	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x01ce8f8e	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a9c2310	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xde856fa8	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/bch 0x441f57ff	free_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0x995d31f0	encode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xa94ce654	decode_bch
+EXPORT_SYMBOL_GPL	 lib/bch 0xf17a44fd	init_bch
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0xeaf3cb23	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x2b414154	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x43a46118	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x1803a6ed	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x2b30f429	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xe4b051cf	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x38861500	init_rs_gfp
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x51410142	decode_rs16
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x65f24eea	decode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x6c23f4ef	free_rs
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0x74f14b6c	encode_rs8
+EXPORT_SYMBOL_GPL	 lib/reed_solomon/reed_solomon 0xe9fe18b0	init_rs_non_canonical
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xb88f115c	lowpan_header_compress
+EXPORT_SYMBOL_GPL	 net/6lowpan/6lowpan 0xed0e04a4	lowpan_header_decompress
+EXPORT_SYMBOL_GPL	 net/802/garp 0x032c9671	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x4bc7bf5e	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x5e43c256	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x6a3a4fd6	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x7e8f456b	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0x87b55ef2	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1455302d	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x1aa7c3ba	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x2f750a8a	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x4f1d1c1c	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x70ce225d	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x77cc10eb	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/stp 0x56c941a2	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/802/stp 0xfb3e715b	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xb3aba814	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0xcaa83108	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xb09faf79	register_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/atm/atm 0xcfb6a3da	unregister_atmdevice_notifier
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0x65e0d505	ax25_register_pid
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL	 net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x0af1dd6c	l2cap_chan_connect
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x1e4c2335	l2cap_chan_send
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0x6da67041	l2cap_chan_put
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xa2e70540	l2cap_chan_del
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xa772b426	l2cap_chan_set_defaults
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xb560adaa	l2cap_add_psm
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xe4c35849	l2cap_chan_create
+EXPORT_SYMBOL_GPL	 net/bluetooth/bluetooth 0xedfa50f7	bt_debugfs
+EXPORT_SYMBOL_GPL	 net/bluetooth/hidp/hidp 0xd7df93a9	hidp_hid_driver
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x00bfc4a6	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x1521d643	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x2c9b1b58	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3cda33b5	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x3de9053d	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x52b98d2c	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x56570649	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x568c8879	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x6c93a152	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x865f2edb	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x908da025	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x93a04760	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb4dac20b	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xca588e60	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd5fef648	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xda5924ae	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdd293e33	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xe5ffe78d	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/core/failover 0x11722e3d	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0x4171c758	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0xddaa9ba6	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x09edfdf6	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0a0ccd54	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0ce9c732	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x10b5eb95	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x14c37ff0	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1dcbe11e	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x1e05a704	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2466d835	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x27330ac8	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x2bc48fdf	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x50c2bbd5	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x58ab3d66	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x696a4c39	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7614a0ba	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x84716f0c	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x88545aaf	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x93ed393f	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x947b0496	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x960339f4	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x965d51af	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9f238da3	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xa6def5ec	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbd65b356	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbd9e1b23	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcb7bb85d	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xcb94f3dc	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd7d7b79d	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd7d96470	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd8aa1fcc	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xdbbc50ca	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xea16406e	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf787e6ca	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf9504e4f	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xf9561e80	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfc5d6dbc	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xfd4d19fe	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xff07dbf8	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x3f4df0bd	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x5f671730	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xa8b86c7a	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb5090fb2	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc1eb2781	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xc4d3f4d7	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x00e2a5ec	dsa_unregister_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x08713313	dsa_port_get_phy_strings
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x153f4246	dsa_port_get_ethtool_phy_stats
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x1fad4d03	dsa_switch_resume
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x33e0e94b	dsa_port_phylink_mac_change
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x41d05a45	dsa_tag_drivers_register
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5c5bb8ee	unregister_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x5d914067	dsa_dev_to_net_device
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x666a39d9	dsa_port_phylink_mac_link_state
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x6c343022	dsa_enqueue_skb
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x73e2baf4	dsa_switch_alloc
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x7af308fc	dsa_port_phylink_mac_link_down
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x88ac2480	dsa_switch_suspend
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0x9357b191	call_dsa_notifiers
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xa0b0bf6c	dsa_defer_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xb3ee33d5	dsa_port_phylink_mac_config
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xc272c557	dsa_port_phylink_validate
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xce021c8e	dsa_register_switch
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xded75352	dsa_port_phylink_mac_an_restart
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xea8c3a32	dsa_tag_drivers_unregister
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xec0c458b	dsa_port_get_phy_sset_count
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf86039e0	register_dsa_notifier
+EXPORT_SYMBOL_GPL	 net/dsa/dsa_core 0xf9951d56	dsa_port_phylink_mac_link_up
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x0e336b18	dsa_8021q_xmit
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x417d1fed	dsa_8021q_rx_switch_id
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x43eb6bc9	dsa_8021q_tx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0x9e59271d	dsa_8021q_rx_source_port
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xc1cd4bad	dsa_8021q_rx_vid
+EXPORT_SYMBOL_GPL	 net/dsa/tag_8021q 0xe6fc7330	dsa_port_setup_8021q_tagging
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x5a43b10f	ieee802154_hdr_pull
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x6190fc37	ieee802154_hdr_push
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0x87e2553b	ieee802154_max_payload
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xee1741a3	ieee802154_hdr_peek_addrs
+EXPORT_SYMBOL_GPL	 net/ieee802154/ieee802154 0xf09b36ff	ieee802154_hdr_peek
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x1d72b518	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x8f5a50aa	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x081245aa	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x73ebedea	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xb658a8ba	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x180df5e5	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x3ec15c84	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x062307c9	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x3ad8bf8b	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x3c86f878	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x4ab1598b	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x6a080d20	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x75e00fa4	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x94be8b87	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xb059c506	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xcaca2aa7	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x5678c9cc	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x03c7c533	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x0c44c685	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x0f60cab4	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1fd1505e	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x442b91e9	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x4a13df15	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5e043942	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x5fe20e59	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6f1898ec	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x6f61aa9c	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8fa7c330	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x9ce6252a	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xaa2b1c0e	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd5fada98	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe22afd56	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xe98e7127	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x210593b6	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0xfaa2443c	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xd9e776a5	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x95ce103a	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x1e83d7f8	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x39a38073	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x3fed7606	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xc0729612	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xfce66c0c	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x08de5787	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x36e5b67b	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x384c6359	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xdb15ab4b	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xc23656ef	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xfcb4601b	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x460a1607	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xc8cb447f	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xca8ccbd9	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xd453d809	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xdf109068	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x35cce71b	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x64755f54	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x9af82c59	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb1d465eb	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb661429a	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb9f2c976	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe11144b8	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xfc26baf8	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x18124858	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xc4ea4e67	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xe9cd2b0d	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x0d3828f3	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x76fc8ea3	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x7d8f1019	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x6183cc9b	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xfd0244e3	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x4485dbb3	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x29bf3f91	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xc14b914f	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0xc76f6fc4	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x06c47897	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x483ac551	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x69d05f2b	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xa84223c8	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0xd15dbc42	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x8fb9f6ee	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x3ef49d97	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x72435c3a	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xb5cf9952	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x7273f172	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xbc375ca0	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1bddc80c	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1e0b75d2	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1e8e4af3	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x3c982cf6	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x69f718a1	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6e58b3cf	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6f96a013	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7118e85d	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa77f8502	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xac9979be	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xacec352d	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc49c5d3f	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc5693386	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xc70c86a1	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xd41bc6ca	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xeb62a55a	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf3478073	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x2f31c9de	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x07a94e6d	ieee80211_ave_rssi
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1869ba08	ieee80211_request_smps
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x1d81afc9	ieee80211_tkip_add_iv
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x26669f98	ieee80211_update_mu_groups
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x2afe6749	ieee80211_gtk_rekey_add
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x3b953e99	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x46209bb1	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x48f2602a	ieee80211_vif_to_wdev
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5316cb29	ieee80211_remove_key
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x543756f2	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x5b6dde8d	ieee80211_iter_chan_contexts_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x73c02545	ieee80211_iterate_interfaces
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7b1c2563	wdev_to_ieee80211_vif
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7b734d1f	ieee80211_iterate_active_interfaces_rtnl
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x7ef775a3	ieee80211_set_key_rx_seq
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x830c5ba6	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0x8314cf60	ieee80211_iterate_stations_atomic
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xdd8ccbb2	ieee80211_resume_disconnect
+EXPORT_SYMBOL_GPL	 net/mac80211/mac80211 0xddf2c2b4	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x213fe0a4	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x62fcbc60	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x91b820d8	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xcc1dd1d7	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xd70e0c09	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x087f408d	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x1d5b2678	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x20edeff8	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x280e1d29	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2ecbf64b	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2f6c9ec1	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x34a3bb47	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x456a0c6c	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x493c3608	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x56a49fc7	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x58459c25	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6a96a2cd	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x936eb375	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xbbb9a828	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xc87b0af9	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xd4407382	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf3b4d4ae	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf7e70b92	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xfa8a7f52	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x163c7c3e	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x464c84ca	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x6f71f512	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x7e762d2e	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x162e96f1	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x1c18b714	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x205455f7	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x322f9329	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x9075e3ec	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xaecd3835	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xf2728e70	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x042e2bd1	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x05f6849f	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0997ea34	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0a4bad8d	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x13ae3ff4	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1cb17b22	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1d328f05	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1d6962d6	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x20451ee2	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x24c283eb	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x255c7ca8	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x275cc28f	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x27949933	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x29078782	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2a886362	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x2efaa21a	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3031696f	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31fd08b1	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3274bd51	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x347f0ffc	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3507118b	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x371c4d16	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3c5c6a83	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3f17f1e0	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3fc7d4c9	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x46b16abe	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x46fbab3d	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48b0079a	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x49a5cf40	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4c495927	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x51c89b3c	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53641cc0	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x54203616	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x555de151	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x59c9bb87	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5a82f112	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5c62d802	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5e9d8232	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x656fa0da	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6d10f34f	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x748dbf30	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x769ae589	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7a802170	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7d832887	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x843c77fc	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8630705e	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x87184868	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8a66c4fc	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x93bf52a4	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x94d0b035	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x977da9bf	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9a99fe4e	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9adb3aa7	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9ec36023	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xa2cc7c66	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaefd7de9	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xaf6db70c	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb40120af	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb5146e3a	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb886f982	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbee43c00	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbf2b7da2	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc1a12343	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc70baa6f	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd2c67957	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd2ea99b6	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd81effaa	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd94bc3f1	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd94ec63a	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xddc6dbbf	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xde5df56c	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdec5edd9	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe57bbb22	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe69b2855	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeab2a8c1	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeebad536	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xef0b2b8e	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xef4c65a4	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf0ceb773	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf6af9989	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf75279ee	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfc70c7e4	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xff40b965	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xffbe283a	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xb3294e51	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0x01949f67	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x5c23d984	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x06f2a4a4	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x3ee190e5	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x50d8f4a2	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5369629d	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x5e5c22ff	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x94d982bc	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xab1e5ea1	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xdacd542a	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xdf4fa8e2	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xe9c5c180	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xdf5a3db0	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x3c2e3400	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x3c301aab	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x7053086b	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xa7170dc1	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x07d3f7d3	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x3916054d	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x5802df02	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x59ebcb1c	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x7e4a3d9e	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x9544ba92	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xa1620c3b	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0x43ee5091	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xfdb8472b	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x15ed27d5	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x78ebb692	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xb5197011	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0399449c	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x46bd70f5	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4998a377	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x5946bbfc	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x86fb4a7e	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x91f90e1c	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xb6ae6250	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xc98bef33	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xdcaa902c	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xe74a5ae4	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xf20fe3bb	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xfdea6e75	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x3750397e	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x557ec58f	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x55b65a10	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x7a762c6f	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xbf21d670	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xd675e610	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x03f41675	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1d6bdd76	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x22a72b60	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x370bf23e	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x46c505a9	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5856072b	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x600a7f32	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x65347666	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x66057664	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x7040160e	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xb8c092a8	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbb354603	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd389b993	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xefad561e	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf164e5de	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xf36a6a27	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x047e11ff	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x2164c918	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x219d3db4	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x2d20b7ef	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x65c62974	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8873917b	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x8f07bb89	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x93d1ccff	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xa6591d99	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb4b40691	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb68134f0	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0e50e07b	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x0fdac5e4	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x189eb08e	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x18fbedde	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1e515eda	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x2de78589	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x32157e42	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x376c58bb	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3983b6cc	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x47600f16	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4f9e4836	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x51a284a3	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5ee6fc53	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x607a5566	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x63e30e44	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6402b389	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x66d3fc61	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x686ee1e8	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x71ba3e6d	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x743da2ff	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7edd21fc	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x805b3f71	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x82c5b5ac	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x847399cc	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8bb0ee9a	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x97b4f583	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9ba2f509	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb5992ea0	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbb0c6827	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbd94fb46	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc1f3159d	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc60d918b	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc6bb7d48	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xda1e7054	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe92b53fa	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe9621231	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe99cd010	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf2e307bb	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf567bf48	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xf97b2f97	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x099e733b	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x2bb2f1a2	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x984cec6e	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xa2a8dad2	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xd9cd8aea	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xf5f45306	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x2c44ceda	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x7694119c	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xa6e87307	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x21ce9f70	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x93e1061e	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x359ee68e	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x36fcc853	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x3dfb9dda	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x8d275229	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xc6870ed8	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe1ff3176	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xea9d0921	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x00235cd4	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x13d32f91	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x1a4c1f1a	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2f7ba5a2	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x46edfdd5	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4a759404	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5b92f319	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x5d0826ed	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x67a4457a	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x83a7251b	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x868bd7f1	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x87aca7eb	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x88929ca6	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x8f5a7d36	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa4e0df3d	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb0c4ad64	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb62ab76a	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc5892514	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe9ae6b91	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf06bdcc0	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf9c81c2c	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfa96467f	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0x8375db4a	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xfc8fd7a7	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0x04993e0c	nci_spi_send
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xd1057ec8	nci_spi_read
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_spi 0xfee02d62	nci_spi_allocate_spi
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0x32755c93	nci_uart_unregister
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xb605f5e2	nci_uart_set_config
+EXPORT_SYMBOL_GPL	 net/nfc/nci/nci_uart 0xd647ba89	nci_uart_register
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0x138b92bf	nsh_pop
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xdfd3d867	nsh_push
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x0de842bb	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x1f1c2937	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x4ff5054c	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc09f033f	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xe6726ad4	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xf1575dad	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x1573bd69	psample_group_take
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x31a556f8	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xb63cc133	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xc4f0de1c	psample_group_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x012dd6e9	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x106d52cb	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x115dda09	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x182fc52e	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x24bf9e8d	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x364cb0aa	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x390eb6cd	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x405519ec	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x414d4186	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x43cbeaf2	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x632a8744	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7a370845	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7df59249	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x84e3fba3	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x85e4e520	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x91c95acc	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa65956ac	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xaf66dd71	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb0612de0	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb09e19ce	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb3060e9a	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd4c12ba0	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd4f74391	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd97794c8	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xddce2466	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xe658b505	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xec91b14a	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf460d2bb	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf744a65a	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xfbfe95d5	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x21ee5d21	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0xfd0a71cd	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x0e36104f	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x4f167ed1	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xb46735ce	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xdc4fc091	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x080db1c0	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x40aa386e	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x43e18602	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4c491b2e	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x5093836a	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6307e0e2	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x73d1ad3f	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8f06aab9	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xbc34a12b	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xd246754d	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x34c27fec	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xbf28c3cc	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd8a1f37a	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xdb547065	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0099b533	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x019617f4	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0259cc16	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04a3ba6d	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04a5356e	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04cb0661	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x06f9df7b	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0738e8a4	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0908f0b0	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b4cf6c1	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0f30605b	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11c58f70	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x11d1ce12	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x121ba37b	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x13db332d	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16b37ca8	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x175ffbae	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19466ce6	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19553666	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19d39fe1	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c231c48	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c239391	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1c4a9385	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d7cb12c	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e3f68b6	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1f2a9970	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x215eac08	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x217ae8d7	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x23072589	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x23418315	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2632ad25	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x27882694	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x298ddb57	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d389bac	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2dd8d68d	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2e962395	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2eb16b3e	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a771dd	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x334445eb	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x33d3419b	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34476b58	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34ab378c	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x34c25cc9	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3502e7b1	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3527015b	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35a75263	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x39446129	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3ae7905f	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3af97c07	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d35ab7b	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x42433160	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x431cc17c	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43dc5638	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x447843b7	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x45d660ca	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x46f4968e	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48d05a0e	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x49397cae	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x494fe390	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4aa21167	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4bc95f83	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c30be87	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4f9cb83d	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x505f8512	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x525bf8c0	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x536df632	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53d34705	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54a4d75b	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54acc3f9	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x55057837	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5543dfb6	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x56c1c668	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x576de2e2	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5861b051	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59322e70	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x596f49d6	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a2d7e7c	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c1c9c1e	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c543c40	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5c5c4601	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ca7714d	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5eecf1a9	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6456ca39	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66991575	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69a88124	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x69cac1f9	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6bbac982	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6ce52b4b	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6d776cb5	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6dcfa20b	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6dd0b329	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fcbc2f4	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70e58991	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x717d6cd4	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74356636	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x74c71bfb	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76e2f6c3	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x77a355e5	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x782b383d	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a25ef74	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a61984e	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c63dbad	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ca568ce	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d0b0976	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7d7515af	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7e04dc53	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ebd0324	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7efb1634	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f45f535	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7fb40769	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80aa2de9	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80e16958	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x80f41fa4	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81b6e098	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82257360	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82699f80	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x84cee20f	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8620f368	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8978761d	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8a289aa1	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8b8f18cc	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c8035ce	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d00eb97	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8dbb4584	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8eca60ed	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f9c9370	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8f9ca5d5	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90feebec	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9111f396	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91545b75	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x917177d5	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x91db4f48	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9426d492	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x95db4f6d	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96280fcb	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96875c13	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x97747902	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9806aa3e	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x98d170b6	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9c11ae65	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9cf7c23d	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d134e6d	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d966bbb	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9eb9cae3	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa1f7c2c3	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa36d5026	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa43520d2	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa4ef76a8	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6085112	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa60d45d7	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa610aaa4	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa8b6c4fe	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa9a4e9bc	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac52358d	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae293794	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xae4692ea	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaea6bead	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaec8b535	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf2d6176	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf683841	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xafc9b239	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb0c7d7df	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2400f52	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2f62bce	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb588aa76	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb5fd7c57	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb87e6c66	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba9ce239	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbc307116	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbdea53e6	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbee21e48	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0befbee	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc1b651ce	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc3399afc	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc4d94c32	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc5f055d0	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6757428	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8122b68	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xca3523c3	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcb50cce8	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xccb0b0ee	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcd310e8f	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce5df09f	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf084d88	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcf8233fc	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd0de39f2	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd260f037	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2909a34	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd2a9ba8c	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd30c71f3	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd63fa428	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd68c3e02	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd8ab5947	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd976bf7b	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb9abb77	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc9c6f48	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdca46eef	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdda87365	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde135d45	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf42a878	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe08797fc	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe292b3de	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe2d5df64	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4494d86	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe56455f2	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe639d57e	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe6e6e628	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe76424eb	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe7e1a3af	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe911271b	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb1e04d9	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeb7b25d7	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xebd87ee7	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee70e92e	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xee808f33	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeed59b3c	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xef72a553	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf116931a	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf59f65e0	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6471e40	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf7026ec8	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf77bbf34	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf81a89ce	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf83718e8	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf8727c38	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb3a3864	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb804f49	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfe26476e	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xff057b3c	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x2eef1bb8	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x795e2c42	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x018d7c9e	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x01bcca28	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x022aa233	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x04bdd4e3	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x087ed566	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0db98af6	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x10149470	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x11edda8b	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1a180742	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1b8efc40	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1ed5bb0b	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2ec0f929	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x37e046e2	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3d34a6d8	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4ca0cb91	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5102f9f9	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x56f8e113	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x59436ca4	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6498dd11	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x69f7fe01	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7e35ce81	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x88262637	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9739425f	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xab01629e	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xabed3252	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xacb6b4d9	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb655bacd	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb84c1efc	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbf95805f	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc7d18fc5	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdb3d9d90	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdda3e232	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe3cc656a	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe65e4550	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xefd24bbd	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfa434552	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x061267e9	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1c41d8b4	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x1c888674	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x25c896a1	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x30917ea5	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x32220347	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x367540ed	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x3ceb1b99	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x40cc37ec	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x529ec934	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x59d943c8	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5bb70af2	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x8d736598	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa15c1240	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xcad849c5	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd2156bf7	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xdd589521	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xee73c1eb	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xf796603c	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xfb3decbd	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x11d2da5b	wimax_state_get
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x22e2b974	wimax_msg_data_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x58e14eaa	wimax_msg_send
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0x7fe8ccef	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xa9e12f56	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xaded6355	wimax_dev_add
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xb446d307	wimax_msg_alloc
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xbd95e008	wimax_state_change
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xbf17c163	wimax_msg_len
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xd9be4ad0	wimax_dev_rm
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xdae1708d	wimax_msg_data
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xe8f73941	wimax_dev_init
+EXPORT_SYMBOL_GPL	 net/wimax/wimax 0xf8a9e9b1	wimax_msg
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x018e7e88	cfg80211_shutdown_all_interfaces
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x24881752	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2535c707	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x2778f8a1	cfg80211_vendor_cmd_reply
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x3ceb9a81	cfg80211_vendor_cmd_get_sender
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x5e8d1ea6	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x6c6d9b10	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x6f5010e9	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0x7d9b5448	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xa36896ca	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xaf772251	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xbef8b405	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xe4c783c1	cfg80211_pmsr_report
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf27e30c8	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf41576ba	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL	 net/wireless/cfg80211 0xf88fa5e1	cfg80211_pmsr_complete
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x7347e6de	ipcomp_input
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x76373015	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x98f35a11	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xec2098c6	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 sound/ac97_bus 0x567a07b2	snd_ac97_reset
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xadb51cff	snd_seq_client_ioctl_unlock
+EXPORT_SYMBOL_GPL	 sound/core/seq/snd-seq 0xe50413d7	snd_seq_client_ioctl_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x01e94c20	snd_device_disconnect
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x038bf22b	snd_ctl_sync_vmaster
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x082abaa6	snd_fasync_helper
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x21a13b8e	snd_ctl_activate_id
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x48418f88	snd_card_rw_proc_new
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x4e55c029	snd_card_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x5af762f1	snd_fasync_free
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x69613d05	snd_ctl_apply_vmaster_slaves
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x6abe1d23	snd_device_initialize
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x7b4cf602	snd_ctl_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/core/snd 0x9135dfd1	snd_card_ref
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xaf0ec0b2	snd_ctl_get_preferred_subdevice
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xe4a49143	snd_card_add_dev_attr
+EXPORT_SYMBOL_GPL	 sound/core/snd 0xf8f2a4eb	snd_kill_fasync
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x04e1b99f	snd_pcm_std_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x09e913c1	snd_pcm_alt_chmaps
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x0f0c61f8	snd_pcm_stream_lock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x122703b1	snd_pcm_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x2a60c8df	snd_pcm_stream_lock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x53b99b83	snd_pcm_stop_xrun
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x63f5d61f	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8d864069	snd_pcm_rate_range_to_bits
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0x8ea0e544	snd_pcm_stream_unlock_irqrestore
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xa286a234	snd_pcm_format_name
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xab8bc1a2	snd_pcm_rate_mask_intersect
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xbc9ab170	_snd_pcm_stream_lock_irqsave
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xddb8b38e	snd_pcm_stream_unlock_irq
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xe33dd87a	snd_pcm_hw_constraint_eld
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm 0xe5778971	snd_pcm_stream_unlock
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x11f4a174	snd_dmaengine_pcm_open
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1a2097a0	snd_dmaengine_pcm_get_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x1f3f15d9	snd_dmaengine_pcm_close_release_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x28e1f96a	snd_hwparams_to_dma_slave_config
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x453b18b4	snd_dmaengine_pcm_close
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x5ef4c1a9	snd_dmaengine_pcm_open_request_chan
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0x7f725c54	snd_dmaengine_pcm_pointer_no_residue
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xb29f09e8	snd_dmaengine_pcm_set_config_from_dai_data
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xd6cb8bb6	snd_dmaengine_pcm_request_channel
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xe155f7d5	snd_dmaengine_pcm_pointer
+EXPORT_SYMBOL_GPL	 sound/core/snd-pcm-dmaengine 0xf560900c	snd_dmaengine_pcm_trigger
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x02bfcc73	snd_seq_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/core/snd-seq-device 0x3b2efdd7	__snd_seq_driver_register
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0605edf6	amdtp_domain_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x0f7a2302	amdtp_am824_midi_trigger
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x1a0554a8	amdtp_am824_set_parameters
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x23503cdf	amdtp_domain_add_stream
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x3e510a50	amdtp_am824_init
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x78468f38	amdtp_am824_set_pcm_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0x9f149630	amdtp_domain_stop
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xaf174d93	amdtp_am824_set_midi_position
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xb5d7eaa9	amdtp_domain_destroy
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xc33c7e69	amdtp_domain_start
+EXPORT_SYMBOL_GPL	 sound/firewire/snd-firewire-lib 0xd4fe2069	amdtp_am824_add_pcm_hw_constraints
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0102be98	snd_hdac_power_up
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x01ae3ed0	snd_hdac_regmap_update_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x021776de	snd_hdac_codec_write
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x04b4cb2b	snd_hdac_bus_enter_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x08973543	snd_hdac_bus_send_cmd
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x0d1e53d8	snd_hdac_stop_streams_and_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x15b8fe3f	snd_hdac_stream_assign
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x194613d0	snd_hdac_bus_queue_event
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1e598fa5	snd_hdac_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x1ff9d33d	snd_hdac_bus_exec_verb_unlocked
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x20c987b3	snd_hdac_regmap_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x26aadde7	snd_hdac_stream_stop
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2bd3a025	snd_hdac_display_power
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2c929bc8	snd_hdac_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2d86345b	snd_hdac_bus_reset_link
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x2eff2c75	snd_hdac_stream_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x317ea889	snd_hdac_device_unregister
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3947b473	snd_hdac_bus_parse_capabilities
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3bd544c2	snd_hdac_get_active_channels
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x3f161f1c	snd_hdac_refresh_widgets
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x420a7ea2	snd_hdac_regmap_update_raw_once
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x42ffb544	snd_hdac_bus_stop_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x440bd8a3	snd_hdac_bus_exec_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x446ea50a	snd_hdac_regmap_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4546e549	snd_hdac_get_sub_nodes
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4bced062	snd_hdac_device_register
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x4c7ec4b6	snd_hdac_get_ch_alloc_from_ca
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x52bb4f68	snd_hdac_bus_update_rirb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5333300b	snd_hdac_device_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x551b8773	snd_hdac_acomp_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x59eca5b2	snd_hdac_stream_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5c07cb49	snd_hdac_calc_stream_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x5e0f2b9a	snd_hdac_bus_stop_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x60ddce24	snd_hdac_codec_modalias
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x67bfe791	snd_hdac_spk_to_chmap
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x69ef6e94	snd_hdac_power_down
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x743ec8d7	snd_hdac_stream_timecounter_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x74aab1cb	hdac_get_device_id
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x768ea53f	snd_hdac_stream_clear
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x77c754a8	snd_hdac_chmap_to_spk_mask
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x78386b3b	snd_hdac_acomp_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x7b982647	snd_hdac_bus_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8159cf05	snd_hdac_setup_channel_mapping
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x83042a4b	_snd_hdac_read_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x83b75e51	snd_hdac_regmap_init
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x83bdb8c7	snd_hdac_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x84d21c9f	snd_hdac_stream_setup_periods
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x867a0670	snd_hdac_bus_exit_link_reset
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x868bc103	snd_hdac_stream_set_params
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8761e6bb	snd_hdac_sync_audio_rate
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x880d36aa	snd_hdac_add_chmap_ctls
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8a71a565	snd_hdac_stream_cleanup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x8db4f19f	snd_hdac_bus_handle_stream_irq
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x907a99f5	snd_hdac_codec_read
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x92d91834	snd_hdac_bus_alloc_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9371720e	snd_hdac_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x93f8c218	snd_hdac_bus_init_chip
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0x9b2739a4	snd_hdac_get_stream
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa833d2e5	snd_hdac_stream_setup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xa8bb4f0a	snd_hdac_power_up_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xac52b375	snd_hdac_regmap_write_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xad690dc2	snd_hdac_regmap_read_raw
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xada60c44	snd_hdac_check_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb007f64c	snd_hdac_override_parm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb1ccf60f	snd_hdac_read_parm_uncached
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xb66de827	snd_hdac_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xba47cb5c	snd_hdac_device_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbbf20014	snd_hdac_bus_free_stream_pages
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbc1a68a9	snd_hdac_bus_init_cmd_io
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xc459fca1	snd_hdac_stop_streams
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcee886ac	snd_hdac_stream_start
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcfa61f00	snd_hdac_is_supported_format
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xcfbea26a	snd_hdac_stream_release
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd0e2962b	snd_hdac_register_chmap_ops
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd15c35aa	snd_hdac_device_set_chip_name
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd19aaf15	snd_hdac_get_stream_stripe_ctl
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xd2849b93	snd_hdac_query_supported_pcm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xde1fbecd	snd_hdac_stream_sync
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdf54e120	snd_hdac_acomp_register_notifier
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xdfcad743	snd_hdac_acomp_get_eld
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe3ce283a	snd_hdac_get_connections
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe42f22a5	snd_hdac_sync_power_state
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe4e07754	snd_hdac_print_channel_allocation
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe79650fb	snd_hdac_set_codec_wakeup
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xe7aaaaea	snd_hda_bus_type
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xeb28d216	snd_hdac_stream_sync_trigger
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xedc2033b	snd_hdac_bus_get_response
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf2be24fe	snd_hdac_regmap_add_vendor_verb
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xf30c4b06	snd_hdac_bus_exit
+EXPORT_SYMBOL_GPL	 sound/hda/snd-hda-core 0xfe22eddc	snd_hdac_power_down_pm
+EXPORT_SYMBOL_GPL	 sound/hda/snd-intel-dspcfg 0xcd651278	snd_intel_dsp_driver_probe
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x21ab1f71	snd_ak4113_build
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x5fa48f28	snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x6112bd07	snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0x7d8aae1f	snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xab156a3f	snd_ak4113_reinit
+EXPORT_SYMBOL_GPL	 sound/i2c/other/snd-ak4113 0xaf3d4d62	snd_ak4113_create
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01452be5	hda_codec_driver_unregister
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x01a14bfa	azx_get_pos_posbuf
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x033bea40	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x03e0a18c	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0427a670	snd_hda_add_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x04f7327b	__snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x05a999e6	snd_hda_jack_add_kctl_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0676f5ac	snd_hda_get_input_pin_attr
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x084ecd6f	snd_hda_codec_pcm_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0985f8c6	snd_hda_unlock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0bacff1f	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x0fe7ea12	__hda_codec_driver_register
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1406f197	azx_init_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15b5ae88	snd_hda_create_dig_out_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x15ced0cf	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1b1f732b	snd_hda_codec_load_dsp_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x1c094973	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x20f187df	snd_hda_apply_verbs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x23e1025f	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x26d1172f	snd_hda_get_default_vref
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2af95dbc	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2bd520e9	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x2f24d835	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x36097061	snd_hda_codec_update_widgets
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x361db556	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38950e8a	snd_hda_jack_unsol_event
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x38ce402b	azx_interrupt
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x3f042767	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x40a5b510	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x40fe1197	snd_hda_get_num_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x434cb8a1	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4735d805	snd_hda_get_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4906e825	snd_hda_jack_pin_sense
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x495b628b	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x4b0cdd3a	snd_hda_get_int_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x531aa1ed	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x53a7ff69	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5445a553	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x56083c4f	azx_get_position
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5a221288	snd_hda_jack_detect_enable_callback_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5b171627	snd_hda_sync_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5df32cbe	snd_hda_codec_load_dsp_trigger
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x5ea546ce	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6419681c	snd_hda_codec_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x653aebda	_snd_hda_set_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x66e39670	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x694e8adc	snd_hda_enum_helper_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6f3d5d9c	snd_hda_pick_pin_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x6fcf74a9	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x700c21b2	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7362bb24	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7405e5b0	azx_stop_all_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x767f47bb	snd_hda_jack_set_gating_jack
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x775b6ce4	snd_hda_pick_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x7ea6c4e4	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x828c9c6e	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x88421e29	snd_hda_codec_set_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x89171b87	azx_init_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8a027cc1	snd_hda_codec_get_pin_target
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8b56c778	snd_hda_set_power_save
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8c61c241	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8e91b76f	snd_hda_apply_fixup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x8f1e4d24	azx_probe_codecs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x98c69bc8	snd_hda_codec_load_dsp_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9c106c03	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9c98505e	snd_hda_jack_tbl_get_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e8dfe0b	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0x9e94c816	snd_hda_get_hint
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa187704f	snd_hda_add_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa21ff5f3	snd_hda_codec_device_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa3a00511	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa6a977eb	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa8663e79	snd_hda_mixer_amp_switch_get_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xa91e68cb	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xabc009c7	is_jack_detectable
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xafe67ba3	query_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb0f4d6af	snd_hda_load_patch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb1a800fb	snd_hda_jack_set_dirty_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb724b042	snd_hda_get_connections
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xb761e6bd	snd_hda_codec_parse_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbaf8fcef	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbb3d6212	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xbbe0bfcb	azx_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc006dea8	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc0424943	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc0c81252	azx_get_pos_lpib
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc1e81699	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2e8c230	snd_hda_codec_amp_init_stereo
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc2fd93a4	snd_hda_jack_poll_all
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc6d88c2f	azx_bus_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xc85a8e0c	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcaf03397	snd_hda_set_dev_select
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcc143a0d	snd_hda_check_amp_caps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xce15048f	snd_hda_correct_pin_ctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xcf4eee94	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd110e6f8	snd_hda_codec_new
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd13b4d05	snd_hda_codec_eapd_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd5201113	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xd5263cca	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdb955f20	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdbd3f6dd	snd_hda_lock_devices
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdd1221b8	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xdfc30ee6	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe118de5d	snd_pcm_2_1_chmaps
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe3da11b1	snd_hda_add_vmaster_hook
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe5126905	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe75912cd	snd_hda_codec_pcm_put
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xe9f5c457	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec0a46e5	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xec5002c9	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xecd74b71	snd_hda_jack_detect_state_mst
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xee0e804d	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xef031848	azx_free_streams
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf1f6ebc0	snd_hda_apply_pincfgs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf1fa687b	snd_hda_codec_set_name
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf2eac416	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf77ee71c	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf7fc74cd	snd_hda_codec_amp_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xf98e3cc9	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfaa89f1d	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfcc93ff1	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xfd088dbc	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff44e1d4	azx_stop_chip
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec 0xff4b972c	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0235a661	snd_hda_gen_hp_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x0d057a98	snd_hda_gen_reboot_notify
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x24645194	snd_hda_activate_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x3732a377	snd_hda_gen_update_outputs
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x39745e07	snd_hda_gen_path_power_filter
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x3ba9c053	snd_hda_gen_parse_auto_config
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x4cbeb24e	snd_hda_gen_fix_pin_power
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x50435164	snd_hda_get_path_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x61d017e7	snd_hda_gen_free
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x6fbb6f52	snd_hda_gen_build_pcms
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x76dc6871	hda_main_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7927b75e	snd_hda_add_new_path
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x7fb4e2bd	snd_hda_get_path_from_idx
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x866efe07	snd_hda_gen_stream_pm
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x871a6e44	hda_extra_out_badness
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x87dd91fc	snd_hda_gen_add_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x8c4cccf0	snd_hda_gen_spec_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x8d634ee2	snd_hda_gen_add_kctl
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0x8fb7ff7d	snd_hda_gen_init
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xac561f14	snd_hda_gen_line_automute
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xb7890b77	snd_hda_gen_fixup_micmute_led
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xd6703e52	snd_hda_gen_build_controls
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeac63f95	snd_hda_gen_mic_autoswitch
+EXPORT_SYMBOL_GPL	 sound/pci/hda/snd-hda-codec-generic 0xeb935a03	snd_hda_gen_check_power_status
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau-utils 0xae620be9	adau_calc_pll_cfg
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x27552b24	adau1761_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau1761 0x4d0e2c39	adau1761_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x09bd5f85	adau17x1_volatile_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x3b029ed2	adau17x1_readable_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x423f6bae	adau17x1_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x6d9282f2	adau17x1_add_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x725f6b19	adau17x1_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x7a9f61fa	adau17x1_set_micbias_voltage
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0x9dfdbe49	adau17x1_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xc2d5b32d	adau17x1_precious_register
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xe2020e15	adau17x1_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-adau17x1 0xf55d18cf	adau17x1_dai_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0x7d05786f	cs4271_dt_ids
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xab3cc98a	cs4271_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs4271 0xff104a73	cs4271_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x30562c3a	cs42l51_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x6372f822	cs42l51_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0x9146dba7	cs42l51_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xe4e9c26e	cs42l51_resume
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42l51 0xf41c58af	cs42l51_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2	cs42xx8_of_match
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x08f26199	cs42xx8_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x5a499243	cs42xx8_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292	cs42888_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0x7e163e6d	cs42xx8_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9	cs42448_data
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xb28aad35	da7219_aad_jack_det
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xc59814a1	da7219_aad_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-da7219 0xe47d1b04	da7219_aad_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x2138898d	es8328_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-es8328 0x83b795c8	es8328_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-hdmi-codec 0x244ecf8d	hdmi_codec_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x0fb7a464	mt6358_mtkaif_calibration_disable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x299ac56f	mt6358_set_mtkaif_protocol
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0x680a18b9	mt6358_mtkaif_calibration_enable
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-mt6358 0xdb2fda6a	mt6358_set_mtkaif_calibration_phase
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-nau8824 0xd52fc822	nau8824_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0x62228497	pcm1789_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xa20ed287	pcm1789_common_exit
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm1789-codec 0xb02a27ad	pcm1789_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0x5e981dce	pcm179x_common_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm179x-codec 0xb79a8b85	pcm179x_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x0a0b5d6d	pcm186x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm186x 0x3c538725	pcm186x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x7243d20a	pcm3168a_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x75220d01	pcm3168a_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0x7bc8b4f1	pcm3168a_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm3168a 0xd0641abb	pcm3168a_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x7b3e016b	pcm512x_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0x7babf8ed	pcm512x_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xc0278786	pcm512x_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-pcm512x 0xed5f5f99	pcm512x_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x70617a04	rl6231_get_clk_info
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x7f68b24d	rl6231_pll_calc
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0x8d7fa148	rl6231_get_pre_div
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rl6231 0xdba4502f	rl6231_calc_dmic_clk
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0x9d971409	rt5645_set_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-rt5645 0xc28e8475	rt5645_sel_asrc_clk_src
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x59588c72	sigmadsp_setup
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0x91f938d6	sigmadsp_restrict_params
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xab5cc589	sigmadsp_reset
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xbaf0e613	devm_sigmadsp_init
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp 0xeb0dc4a1	sigmadsp_attach
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-i2c 0x91138093	devm_sigmadsp_init_i2c
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-sigmadsp-regmap 0x0a091166	devm_sigmadsp_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x3279cc6a	ssm2602_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ssm2602 0x42bb2f24	ssm2602_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-ts3a227e 0xb68aded6	ts3a227e_enable_jack_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x35479424	wm8804_pm
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x3ac8fc8b	wm8804_remove
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x5b60567a	wm8804_regmap_config
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8804 0x9468d091	wm8804_probe
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8903 0x83c51392	wm8903_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/codecs/snd-soc-wm8962 0x56af3b7d	wm8962_mic_detect
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x542b9ec4	fsl_asrc_component
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-fsl-asrc 0x9fb0e879	fsl_asrc_get_dma_channel
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7	imx_audmux_v1_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/fsl/snd-soc-imx-audmux 0x58631dab	imx_audmux_v2_configure_port
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x01730303	asoc_simple_dai_init
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x108bf08c	asoc_simple_startup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x20166bdc	asoc_simple_set_dailink_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x25e567a2	asoc_simple_init_priv
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x2e79fc1a	asoc_simple_parse_clk
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x345140cc	asoc_simple_canonicalize_platform
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x359a5419	asoc_simple_hw_params
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x38a16511	asoc_simple_parse_pin_switches
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3d58c37a	asoc_simple_init_jack
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x3f124a03	asoc_simple_parse_routing
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x5c6fa301	asoc_simple_shutdown
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x646b1d4b	asoc_simple_be_hw_params_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x70859396	asoc_simple_canonicalize_cpu
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x80c08a53	asoc_simple_parse_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0x948ba1cc	asoc_simple_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xabbbb805	asoc_simple_parse_convert
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xd5dedd28	asoc_simple_clean_reference
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xe4f8ecee	asoc_simple_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75	asoc_simple_convert_fixup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x021f5e51	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x02be5161	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x04e1c68e	snd_soc_dpcm_can_be_free_stop
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x06accc6e	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x07875a56	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x07f9d3f9	snd_soc_poweroff
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x09aa47c2	snd_soc_component_update_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0ab70f24	snd_soc_dai_get_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0b7249b4	snd_soc_of_parse_audio_simple_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0ba09f4b	snd_soc_runtime_set_dai_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0d738a88	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e870388	snd_soc_component_exit_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0e9922f4	snd_soc_dapm_sync_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x0f03f566	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x107fe374	snd_soc_component_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x117165dc	null_dailink_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x11935763	snd_soc_component_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x12c70004	dapm_mark_endpoints_dirty
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x141342c1	snd_soc_component_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x142153e4	snd_soc_component_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x15ca59c3	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1cd90cd6	devm_snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1e281e84	snd_soc_add_component_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x1ea0ab14	snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2038dbfb	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x21e538e1	snd_soc_get_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x28649bef	snd_soc_dapm_force_bias_level
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x29732e95	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2a0f6650	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2aeee842	snd_soc_of_parse_daifmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2bf7e665	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2d61c868	snd_soc_component_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2d7625dc	snd_soc_component_test_bits
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x2ee23303	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3352e5ea	snd_soc_dpcm_be_get_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x338a8e7a	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x33f126e6	snd_soc_remove_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3512d7d3	snd_soc_dapm_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3a26f7a3	snd_soc_bytes_put
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3bb3e1d5	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3d3b0268	snd_soc_add_card_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x3ef0cf6c	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x40a475d1	snd_soc_component_read
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x411d3d3a	snd_soc_component_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x41ef9dd6	snd_soc_of_put_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x44a3ccce	snd_soc_add_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46188e7b	snd_soc_bytes_info
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x46a70acc	snd_soc_dpcm_be_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4725a849	snd_soc_component_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x480eaa38	snd_soc_of_get_slot_mask
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4a6a25a4	snd_soc_put_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4d762b7a	snd_soc_dpcm_can_be_params
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4dd51899	snd_soc_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4e369f54	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x4f76b776	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x50326d76	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x51a02bcd	snd_soc_of_parse_node_prefix
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x53fad1ba	snd_soc_tplg_component_load
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x574ffe60	dapm_kcontrol_get_value
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x59a924c3	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5d51f4ec	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5ebf565f	snd_soc_resume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5f628034	snd_soc_get_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x5f6e90c7	snd_soc_component_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6092124e	snd_soc_tplg_widget_bind_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x62c8865c	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x63246ecc	snd_soc_register_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x64358d6d	soc_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x64fb3593	snd_soc_dai_set_bclk_ratio
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x659f93cd	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x68684e98	snd_soc_set_ac97_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x69762067	devm_snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6a096e06	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6a5d067e	snd_soc_of_get_dai_link_codecs
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6b33d3dd	snd_soc_cnew
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6dc92dff	snd_soc_get_pcm_runtime
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6f0e096f	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x6ffc17a3	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x70969886	snd_soc_add_dai_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x71583061	snd_soc_info_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x71e4007b	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x73a6ff88	snd_soc_component_set_jack
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x741e0cdd	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x75138129	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x78f4b935	snd_soc_tplg_widget_remove_all
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x790c9d84	snd_soc_tplg_widget_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x79318759	dapm_pinctrl_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7996f9b0	snd_soc_disconnect_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7bd0c19e	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7bdca6c3	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x7e689c19	snd_soc_new_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8150f6ff	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8190a10c	snd_soc_dapm_del_routes
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x81f3a3cf	snd_soc_get_dai_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x84220058	dapm_regulator_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8b5975d6	snd_soc_of_parse_card_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8c44a90b	snd_dmaengine_pcm_unregister
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8c79de3c	snd_soc_find_dai_link
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8e1c7ad3	snd_soc_free_ac97_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8e988b4e	snd_soc_tplg_component_remove
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x8fe33ac7	snd_soc_jack_report
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x903a461f	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x9307353b	snd_soc_component_async_complete
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x94438d83	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x99175639	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0x998df293	snd_soc_component_write
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa30926ea	snd_soc_lookup_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa4e90a82	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa68a1a80	snd_soc_dapm_update_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa7399f54	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa75f5eab	snd_soc_bytes_info_ext
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa819a638	snd_soc_unregister_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa872f775	dpcm_be_dai_trigger
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xa92e3dd4	snd_soc_find_dai
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xab1f403f	snd_soc_dpcm_get_substream
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xabc24461	snd_soc_component_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xad97288a	snd_soc_dapm_nc_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb098576f	snd_soc_jack_add_gpiods
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb1596c90	snd_soc_add_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb471d23f	snd_soc_of_get_dai_name
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb5de52ed	snd_soc_register_card
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xb8ef6c94	snd_soc_of_parse_tdm_slot
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbb9dcad8	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbd267b9c	snd_soc_dapm_mux_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbd703b47	snd_soc_dapm_kcontrol_widget
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbda35286	snd_soc_dapm_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xbeee926e	snd_soc_dpcm_be_set_state
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc0a04a01	snd_soc_info_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc2a0d3af	snd_soc_suspend
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc5295441	snd_soc_component_force_enable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc5c58c60	snd_soc_bytes_tlv_callback
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc67507f6	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc6afdcf6	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc767ce96	snd_soc_component_init_regmap
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xc87159ab	snd_soc_rtdcom_lookup
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xca03d83d	snd_soc_put_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xca91dee9	snd_soc_dpcm_fe_can_update
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcde81fcf	snd_soc_set_ac97_ops_of_reset
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcdfb7531	snd_soc_dapm_kcontrol_dapm
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xce7b0292	snd_soc_put_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcea7e5c1	snd_soc_dapm_init
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xcf699543	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd0ecf82b	snd_soc_put_strobe
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd236557c	snd_soc_get_dai_id
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd4fb994c	snd_soc_card_get_kcontrol
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd5f038bc	snd_soc_get_volsw_range
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd8c0db0e	snd_soc_card_jack_new
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xd9ee5dba	snd_soc_get_volsw_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdbb8c8c7	snd_soc_component_read32
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdc2317fe	snd_dmaengine_pcm_prepare_slave_config
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xddc97fef	snd_soc_component_update_bits_async
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xde5bdea6	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xded1fd8c	devm_snd_dmaengine_pcm_register
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdefbec40	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xdf3b1ebd	snd_soc_dapm_disable_pin_unlocked
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe21ae758	snd_soc_info_xr_sx
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe7b9fdcd	snd_soc_register_component
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xe8bcdfec	snd_soc_dapm_mixer_update_power
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xedb1a649	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xedd00e17	dapm_clock_event
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf1772168	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf1791dca	snd_soc_of_parse_audio_routing
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf277b1a3	snd_soc_component_force_enable_pin
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xf52ad405	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xfcf7ebc1	snd_soc_bytes_get
+EXPORT_SYMBOL_GPL	 sound/soc/snd-soc-core 0xff4324a4	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x0772c330	snd_sof_free_debug
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x197b13d3	snd_sof_dbg_init
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x418f78d9	snd_sof_debugfs_io_item
+EXPORT_SYMBOL_GPL	 sound/soc/sof/snd-sof 0x9294ff42	snd_sof_debugfs_buf_item
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x12fd33ec	line6_send_raw_message_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x188e40f6	line6_init_midi
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x1cb8f626	line6_version_request_async
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x202a1b1b	line6_midi_id
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x3a759b03	line6_read_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5d465a0a	line6_suspend
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x5dd7e264	line6_write_data
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x612dccbe	line6_send_sysex_message
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x736b0566	line6_init_pcm
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x7b1fa912	line6_pcm_acquire
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x882d982b	line6_read_serial_number
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x92d831c4	line6_disconnect
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0x99c29b8a	line6_probe
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xb9542300	line6_alloc_sysex_buffer
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xea739759	line6_resume
+EXPORT_SYMBOL_GPL	 sound/usb/line6/snd-usb-line6 0xf19dd9b9	line6_pcm_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0016e803	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x003c2c80	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0057488a	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x006ac064	pm_runtime_get_if_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x006b42b4	da9052_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x008539f0	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x00aab6d5	ata_sff_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x00b566c1	ata_sas_port_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e100ab	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x00ed4a0d	usb_disable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0104bd3c	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x010cda68	devm_hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x012eb400	pinctrl_generic_get_group_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x013b223b	regulator_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0149461f	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x014cdadf	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x014e89f8	governor_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x01586342	spi_get_next_queued_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x0159c819	usb_bus_idr
+EXPORT_SYMBOL_GPL	 vmlinux 0x015c0499	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x015f1593	extcon_register_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x01683ee1	devm_regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0179a261	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x0183f196	wm8997_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x018501e2	cec_allocate_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x01866a57	ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x01907648	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x019aa000	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x019aae1b	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c401da	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c4c31a	sysfs_add_device_to_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x01cecaad	phy_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x01d6cf2e	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x01dad451	tc3589x_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e09b42	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e86610	usb_find_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x01e9b617	devm_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x01eb35ec	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ee8ca2	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f4d4aa	nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x020432bb	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x0222f779	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x02491870	mm_iommu_new
+EXPORT_SYMBOL_GPL	 vmlinux 0x024d13dd	request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x026ed867	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x02916c86	devm_regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x02958f88	cec_notifier_cec_adap_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x02a80802	xhci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b77043	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x02c1a9ec	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f11080	pm_genpd_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0312b3b0	reset_controller_add_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x03165183	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x0321cdbf	of_alias_get_highest_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x03242a08	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0325fd65	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x0336e423	pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x03372453	force_irqthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x033832c7	usb_amd_hang_symptom_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x03523e33	nvdimm_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x035bc9f7	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x03635361	pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x03990150	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x03bbe866	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c7bdb6	wm831x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c9a837	usb_check_int_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x03fec81f	of_alias_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x040c71d5	phy_pm_runtime_put_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x0419e175	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x041e8b10	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x041ec506	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x04258796	opal_flash_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0425e2f1	hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x043462cf	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x043afc4e	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0442eeb5	spi_write_then_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0451b2e6	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x0461440a	thermal_remove_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0463337c	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0465a073	regmap_reg_in_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x046f359e	of_overlay_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x04706263	sdio_f0_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x047262a4	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x047491fd	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x047ca599	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0485d098	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL	 vmlinux 0x04949f9f	gpiochip_remove_pin_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bbc7f7	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c571a4	devm_spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d3becc	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0x04df8fbc	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e2c0af	pm_generic_freeze_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e3a6e6	rio_local_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x04eef5be	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f50a71	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x04f7955a	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x050e7ba6	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c6e0e	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x055b96aa	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x055c7f48	extcon_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x05610897	of_changeset_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x05947d62	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x05965cc9	usb_set_device_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x05c0a9b0	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d2e825	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d4f283	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x05fb26d4	powercap_unregister_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x0611fa87	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x061ae973	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0x0626da5f	od_unregister_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x06285d2a	leds_list_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0649b7f8	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x06622e52	sdio_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x06650e30	led_trigger_register_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x067b7dfe	sata_async_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x06830e78	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0698c918	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x06bb8985	pci_disable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x06bc9c95	regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ccf2f8	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x06eaf2d6	usb_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x072b5436	usb_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0731362b	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0739cbc2	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0757b64e	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x076138bd	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x07635f25	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x07646cee	ata_tf_to_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x076de290	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x07714b6b	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x07758f06	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a1b4cd	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b5727d	ohci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d0d5d9	phy_led_trigger_change_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x08114b4f	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x081de216	phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x08207f61	usb_hcd_unmap_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x0828d609	mc146818_get_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x082aa7d3	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x08385fed	led_set_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0x084d35af	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x08625fa0	__rio_local_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x08684bc3	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x0872ba92	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x08733f9a	__spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x087bd533	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x087f5dc5	wm831x_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x0890124c	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x08903e1d	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x08971896	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x089ee321	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b01122	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c575c5	da903x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d33d82	edac_device_handle_ce
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08e558c6	regulator_count_voltages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0901cdba	to_nd_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x0903ebb5	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x090643dc	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x091c824a	machine_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x09214d5a	mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x0934316f	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x093a30ff	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x094af376	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x09523911	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x09530abe	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x095c92a2	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x09704521	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x0995f27e	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x09af4c9a	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b62932	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0f89f7	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a1ba91f	cec_fill_conn_info_from_drm
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a43d074	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a51ae5b	virq_to_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a57cdfa	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a80c3b4	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a936085	cpuidle_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9c515c	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac3246f	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac6db94	wm831x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ae93ec9	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aeb2e43	power_supply_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aee9478	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0af4798b	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b09e040	__tracepoint_rpm_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b0b88e4	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b322e4b	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b4e2add	cec_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5f4791	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b600b84	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b694976	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b7820f8	devm_pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b85af94	devm_extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b93a595	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba442a0	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ba625a2	usb_phy_get_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc9136c	devm_phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0be8af54	rio_dev_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c031a7c	__devm_regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c08af45	regmap_reinit_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c12d25a	usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1f0a1b	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c32ff8a	edac_pci_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c402cac	replay_system_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c461e91	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c667c59	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c92fb0f	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca10857	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cabdc87	thermal_zone_get_zone_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cdf9937	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce3ee5a	mmu_kernel_ssize
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ce80d04	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cea8b45	usb_store_new_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d125ab6	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d24d306	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2a4761	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2deba9	ata_link_offline
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3657d3	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d3cf815	led_trigger_rename_static
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6bfcfa	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d80d465	mctrl_gpio_init_noauto
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d842e12	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d954f9e	cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc373ab	wm5110_aod
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dd3e9b3	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0de06988	cpu_first_thread_of_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dea1b7e	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e040c86	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e0ab80d	regulator_set_soft_start_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e26d11f	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e27a72d	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e2c57b9	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e4bed0f	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e521b82	btree_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e73836e	da9052_adc_manual_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e7d56ce	wm8350_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e98430a	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9a201d	usb_match_one_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea2a72b	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec95d20	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ee8e400	kvmppc_h_set_xdabr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef2314a	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ef77cd5	da903x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x0efa13f9	spi_res_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1a05dd	spi_alloc_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1b3248	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f3f48d5	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f405744	devm_regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f51028a	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f5ce5a7	of_genpd_parse_idle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f68aed5	regulator_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f6ead73	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7581a9	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f885b03	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f9be575	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc5e930	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fc7ac73	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd1e66f	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fd2c464	usb_add_phy_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fde8a2b	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff3197c	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x10186d44	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x1025e688	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x10395fe0	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x103d803e	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x1042aa26	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x1057dc88	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x1059e36f	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x10680be5	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x106d8987	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0x107c9e7f	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1088208d	pci_enable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x108a0acd	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x108be119	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x1097f96a	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c21dd3	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x10c83d8f	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e77a5a	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x10e8167b	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecc52c	usb_amd_quirk_pll_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x10ecd101	led_classdev_notify_brightness_hw_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x10f5659f	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x10fe219a	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x1114011d	threads_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x111e6dfc	pnv_get_supported_cpuidle_states
+EXPORT_SYMBOL_GPL	 vmlinux 0x113181df	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x11638a69	xive_native_alloc_vp_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x116632ea	pinctrl_generic_get_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1167ae0a	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x116cb8e5	dev_pm_opp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x116d54dc	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x117222da	mm_iommu_is_devmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x11815ae0	usb_get_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0x118d7379	led_trigger_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a71c8e	devm_hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x11abb4df	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11eedcdc	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1214b594	usb_sg_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x12200b90	regulator_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1231adaf	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x124f5a3c	dev_pm_opp_init_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1268f357	resume_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x126baf9b	wakeup_source_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x12768498	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x12877635	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x129334ae	sfp_parse_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x12b9f86e	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x12bb537c	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x12bfacf7	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x12d41fa3	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12e5ef0c	rtas_set_power_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x130a92f3	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x13188fdf	pm_generic_resume_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x131a5ed7	regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x131cb0f4	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x131fd52b	extcon_set_state_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x132ae1ce	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x1336494b	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1338d60a	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x13434146	hwmon_device_register_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x134f6e9c	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x13539266	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x135580d6	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0x1355e081	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x135a5183	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x136209db	power_supply_reg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x136e3405	edac_mc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1376982c	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a08fdd	tc3589x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b65f27	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x13bcb840	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ca899a	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x13cd8b22	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ce87e8	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d2ca0c	dev_pm_opp_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x13d34d8f	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1403ad09	cpufreq_add_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x140bea4f	wm831x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x1413a6ba	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x1414ea2b	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x14250736	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0x142d01d7	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x143c52a4	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x1444c92b	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x14457fb9	btree_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x144c975e	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x1451ca72	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x14615e7a	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1472e480	nd_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d0bd57	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d7c41e	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e0669d	sdio_claim_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x150c8476	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1525473b	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x152b9db8	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x153088fe	serial8250_rpm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1537c7f2	opal_ipmi_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1552c709	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1556d904	ata_port_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x157de8bf	regmap_mmio_attach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x158efa70	ata_base_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x15a58229	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b97848	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c056c4	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c21e5e	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x15cc9fe8	usb_free_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d7331d	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d90d72	rio_release_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x15e37504	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea2648	hwpoison_filter_flags_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x15ea58f0	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x15eb5fb1	regulator_map_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f3e5a0	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1604acc1	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x1609dfce	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x160bd45c	rtas_token
+EXPORT_SYMBOL_GPL	 vmlinux 0x160be918	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x16369a27	xive_native_sync_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x16397210	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x16437b26	edac_device_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x164ac026	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x165af40a	regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x1664abd4	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x1669297a	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x167d26dd	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x16ada7d1	pci_restore_pri_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c1c24d	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c3546e	cec_transmit_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x16c605a8	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d2855d	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da3b15	regcache_cache_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dd5b5a	regmap_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f0f80b	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0x1703d3e8	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1721e7e8	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x1742dc7a	cpufreq_driver_resolve_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x174c37b0	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x17528d89	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x176446cb	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x177b63d1	dev_pm_opp_of_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0x17814a33	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x1796ca8a	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b9c7e1	dev_pm_opp_unregister_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c034df	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c2cbfc	hash__alloc_context_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x17c2f6bb	pcibios_claim_one_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d3b9a2	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x17f7d452	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x17fc900d	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x180effde	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x181bda82	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x182f228c	of_usb_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x182fad76	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x1831db9f	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0x183294c0	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0x1839e0ef	eeh_pe_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x183ec833	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0x1843e540	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x18541816	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x1861af24	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x18654dea	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x18728552	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x1877c6e2	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x189f874d	powernv_get_random_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a4bef8	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x18aa72c6	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d73b97	dev_coredumpv
+EXPORT_SYMBOL_GPL	 vmlinux 0x18d849f2	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x18df6bb7	dev_pm_opp_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fc45ef	syscon_regmap_lookup_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x19025f8d	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x191727c4	cpufreq_enable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x193a4722	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0x194076d1	mbox_free_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x194936f6	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1957f050	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x19675461	tps6586x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x196907fe	pinctrl_utils_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x196c85eb	__pm_runtime_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x196f0c8b	badrange_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1987ff99	of_thermal_get_trip_points
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19a75b34	rdev_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x19b2ee23	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x19bbc0f9	sdio_retune_crc_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c20269	soc_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c63a5b	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c9a099	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x19d2b23c	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x19dde0f5	pm_generic_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x19deba62	regulator_bulk_force_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e2aae5	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e2dba4	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e3527d	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x19e81304	btree_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fcbc2c	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a085bd0	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a146ec3	usb_ep_type_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a5b5a1b	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a771212	wm5110_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a77903a	of_alias_get_alias_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a9c20b1	xive_cleanup_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ab0c271	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x1abff155	nvdimm_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad0f548	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad5ccfe	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x1adb6700	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1add6a1d	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x1aed98a8	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b09f66e	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b106da1	of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b158e03	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1c9043	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b2704b8	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b2b068b	dev_pm_put_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b320af7	pnv_pci_get_presence_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b37bcf9	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b430738	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b4db261	of_thermal_is_trip_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5059ce	ata_id_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b64aa68	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b670c87	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6c6da3	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b71f7f7	of_mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8822d8	pinctrl_gpio_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b8be809	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b9664d1	__destroy_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba05abf	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ba078b1	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bad8403	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bc5eebe	pinctrl_gpio_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be55ea4	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf04aa6	sdio_enable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf99d2f	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bfa52ed	devm_rtc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c00dd20	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c20af5e	regmap_field_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c22581e	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c35391b	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3c8eab	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3e3877	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c452991	pinconf_generic_dt_free_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5541bd	cpufreq_boost_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5a2978	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c62e34d	opal_get_sensor_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c672578	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c698026	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c719be9	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c74d956	wm8350_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c7df74c	kvm_hv_vm_activated
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c80d27d	btree_geo128
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c88f9ba	rio_request_inb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c8bca8d	emulate_vsx_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c988480	ata_host_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c992f16	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9ccd87	mbox_request_channel_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c9ffac3	nvdimm_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca366a2	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca9e7c9	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cae61cd	thermal_zone_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc389b6	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd6c19c	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cdd56ac	__devm_regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ce4b56a	pcibios_scan_phb
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cff4d42	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d02340d	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d05add2	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4295a5	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d4b826e	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d9174ca	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da02831	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1da43d88	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dc4f830	wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd91f34	of_property_count_elems_of_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dec6ed4	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df33284	opal_prd_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dff0179	devm_phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dff49af	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e002759	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e06418c	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0670c6	reset_control_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e0cf235	opal_get_sensor_data_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e17dc1c	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1f3331	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e1fcb2c	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e41fa87	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e446d59	init_phb_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5c9979	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5f9b98	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e639c78	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e6ace39	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8fac8e	wireless_nlevent_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e9561b4	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e98a292	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb11fe9	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebc3d87	pm_genpd_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eca68b8	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecd23c7	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed0f76b	ata_host_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ed273aa	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x1edac5c3	xive_native_enable_vp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1edeef54	usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ef8f9c7	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x1efc9904	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f050e36	pnv_pci_set_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1f8de8	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f26582b	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2a435a	dev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f2dcffa	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f3257b9	dbs_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f449588	mctrl_gpio_disable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f5edee2	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f662ee8	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f79b6f8	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f873c2c	dev_pm_qos_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8f9036	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f910d92	devm_usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9aec9f	power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fdb2659	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe2de1e	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe913b6	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe9ed7c	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ffb5db6	edac_device_handle_ue
+EXPORT_SYMBOL_GPL	 vmlinux 0x201ad1be	pnv_pci_set_tunnel_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x20222b18	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x202d4ed6	nvmem_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x20399c0e	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x20425c90	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x204c699e	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x204f441d	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x20552501	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x206081ef	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x206add95	devm_pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x206b706c	mmc_regulator_set_vqmmc
+EXPORT_SYMBOL_GPL	 vmlinux 0x207c18c1	pm_generic_thaw_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x2083b0bc	edac_pci_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x208aaee7	of_get_named_gpio_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x209cc003	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a25195	radix_kvm_prefetch_workaround
+EXPORT_SYMBOL_GPL	 vmlinux 0x20b1c04a	pm_genpd_opp_to_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x20bb5c37	spi_res_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c8c448	devm_of_platform_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x20f91e3a	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x211850f5	htab_hash_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x21200deb	cec_s_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x21303b42	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x21623fa5	regulator_disable_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x2176e42a	hwpoison_filter_memcg
+EXPORT_SYMBOL_GPL	 vmlinux 0x219a36b3	of_get_regulator_init_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a91472	edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b254b2	pinctrl_utils_reserve_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x21c04112	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21d78b12	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e93321	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x2217d110	wm8997_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x221eab6d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x222c0c5c	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x222f4f39	ehci_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x22313bab	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x223a06f6	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x2247b6f3	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0x22485419	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x2266450f	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x228de447	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x229b0eb9	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a48d73	pm_generic_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b37f71	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x22b7fd76	dev_pm_domain_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x22c1b10e	usb_asmedia_modifyflowcontrol
+EXPORT_SYMBOL_GPL	 vmlinux 0x22db3f60	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x22f31abb	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x23123e7d	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x23166e05	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x233a9748	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x23412816	rtc_tm_to_ktime
+EXPORT_SYMBOL_GPL	 vmlinux 0x2344ed55	rio_get_asm
+EXPORT_SYMBOL_GPL	 vmlinux 0x23495928	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2358af18	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23761965	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x2398895e	phy_select_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x23b9d4da	__tracepoint_vfio_pci_npu2_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bb75a0	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x23c76915	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x23d95205	edac_set_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x23da9ba9	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x240a22d2	devm_nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x240bfc68	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x2413e1d1	vas_tx_win_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x242a894d	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2431d863	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x2438ab0e	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x244b6e23	of_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x244ffea2	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x245536fa	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x245da47f	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x246b3cbf	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x24706147	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x247c2595	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2493b419	pinctrl_pm_select_idle_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x249b5c26	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x24a6b33e	stmpe_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b615b0	usb_of_has_combined_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x24b9f356	mmu_partition_table_set_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x24be66b5	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c0c2af	__device_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c4d74e	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x24d4915f	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e0e9b7	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e58b8c	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e818be	arizona_of_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f39c39	reset_control_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f63dcf	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x25014f62	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x2505c2a9	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0x25091643	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x250a2d9f	phy_set_mode_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x250d6035	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x254d0b3d	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2551bd2c	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x2559d24d	kvmppc_h_set_dabr
+EXPORT_SYMBOL_GPL	 vmlinux 0x255c991b	devm_irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x255dec2c	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x25633397	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x256f03fd	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x258b9937	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x2594250e	pinctrl_utils_add_map_configs
+EXPORT_SYMBOL_GPL	 vmlinux 0x259acd3a	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b25998	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x25c6b201	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x25cac17a	of_scan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e32095	led_set_brightness_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ea0849	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x25f43695	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x260325ae	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2610fc95	rio_map_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2611bb88	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x2612f044	flush_fp_to_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x261bdefa	devm_devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2621f24e	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x26260798	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x262816d5	ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x262f2d30	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x262f4bc2	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x2638912d	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x265c6ba4	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x265cf2e4	of_mm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x267bdfd8	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x269d2ab5	devfreq_event_disable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a2e869	devm_of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x26a84c58	power_supply_batinfo_ocv2cap
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26addcb0	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c849e4	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ccf186	pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x26db3ad8	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e73d92	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x26e9c711	led_classdev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ec0f18	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x26f83e44	fsl8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x270cd6e6	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x27122bf2	fb_bl_default_curve
+EXPORT_SYMBOL_GPL	 vmlinux 0x27185e0f	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x27290611	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x27479c01	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x27657645	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x27750da1	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x27894f5b	regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x278cf79a	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x279003ee	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2798d333	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x27a79eab	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x27aba67b	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x27acb4d4	devm_devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b24803	pm_runtime_force_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x27bb0122	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e1754d	regcache_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e79039	__rio_local_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x27ec2b5f	pinctrl_generic_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f518aa	to_nd_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f73396	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x280b251e	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x282cdabc	usb_led_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2839d7a7	regulator_get_hardware_vsel_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x28400048	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0x2849554c	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2851044a	regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x289d27c9	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8f935	usb_anchor_suspend_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28ab4fb9	pinctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b030d2	of_overlay_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x28b7314e	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d95f91	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e657a1	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x28e8b688	to_nvdimm_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x29065e86	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x2915ef20	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x292b8f30	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2940032d	pnv_pci_get_power_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2940c1a0	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x294fe256	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x295fe9fd	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x2960d844	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x29698088	palmas_ext_control_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x2978ca77	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x2986e853	iommu_tce_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x29aa48d0	radix__flush_tlb_lpid_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x29afe972	adp5520_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x29b2c01d	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x29bf13e2	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0x29c31058	eeh_add_device_tree_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d538f2	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d69ff6	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x29e9cbde	thermal_zone_get_slope
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a0303aa	usb_get_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a2249ac	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a336698	opal_rtc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4cf402	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a56bf8e	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a8a17bb	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9072f5	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x2aac7bd6	regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab00e54	devm_regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ab80a8d	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad8d14f	of_mm_gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2afcf645	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0ba223	rio_unlock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1bae0e	cpu_to_core_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1fba0f	xive_native_disable_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b24963c	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b3eb370	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4147ed	kvmppc_hcall_impl_hv_realmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b47598e	rio_request_outb_mbox
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b5c303b	smp_send_reschedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b76537e	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b77cd88	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7b7fa4	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7de5b8	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b94723e	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9ae1a2	nd_mapping_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b9e9945	__reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bac5142	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x2badaeb8	xhci_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x2baf371f	of_device_uevent_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb30e90	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb9095f	radix__flush_pwc_lpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb9c4fa	rio_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bc58f1e	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bcab8b7	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bda0901	flush_altivec_to_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bf3aef2	rio_enable_rx_tx_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bff081b	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c07d628	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0c16ea	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0c3ac5	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c1a8dc9	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c299e7b	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2aeb11	of_irq_parse_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2b5dbe	sdio_writeb_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2e4c73	pci_traverse_device_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c43aeab	dev_pm_opp_of_register_em
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c51853f	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c83034a	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c8dd6b8	edac_mem_types
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c97f8a2	of_reconfig_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c9b352b	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ca7ee83	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cb2ba77	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cbb4b70	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd1b2f4	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd5df3a	opal_ipmi_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cd88f51	kvm_hv_vm_deactivated
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce18ce1	phy_pm_runtime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ce6ca29	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d113dad	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d16e331	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d235af0	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d575bac	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d621172	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d717af6	sdio_f0_readb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9df220	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dcf560b	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfe0c5c	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e070a6e	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1cbf1b	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1da9fb	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2b6683	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e35ed46	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3afb59	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e3cfb4f	usb_ep0_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e5775cf	__regmap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e68650a	regulator_bulk_set_supply_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e73831c	mm_iommu_preregistered
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e77818b	rio_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e78702e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e859411	nd_cmd_out_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e8afb4f	vfio_spapr_pci_eeh_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e9166f6	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eabbc1c	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb07f98	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb3820c	nvdimm_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eb92d9b	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eba85b5	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebc159b	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ed0092a	devm_regulator_bulk_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ee780ec	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef653c9	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ef8b973	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0a6cae	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f0d9053	usb_otg_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f1431b2	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4931b0	ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f50c691	device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f50e8cb	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f5daac8	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f6f1e9b	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f706f34	devm_extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7c813b	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fae96de	rtas_data_buf_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb24527	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc15b5d	regmap_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fc895ed	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fd6e192	power_supply_property_is_writeable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fec7b48	extcon_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff7b4ab	da9052_disable_irq_nosync
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ffbd18c	opal_message_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fff552d	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x300170d2	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3003e42b	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x300882bb	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x301832fb	opal_async_get_token_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x3067e3c5	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x307a29dc	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x3080523a	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x30bcbc44	phy_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x30cba2e7	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x30db492d	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f97a10	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x30fa0d67	devm_regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x30fa53b6	cec_transmit_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x310785bf	dev_pm_opp_put_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x31217bc5	of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x312df456	sdio_writeb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3160194c	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x31653931	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3178e0d5	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x317a7c91	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3192d768	cpufreq_remove_update_util_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x319569d7	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x31983525	pnv_npu2_unmap_lpar_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x31a08e8e	nvmem_cell_read_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b230bc	usb_urb_ep_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bb6ebf	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x31bbcae8	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c12d6b	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c61f62	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c7970f	pciserial_suspend_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x31c87b1d	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d4045a	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0x31d5033e	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dd4394	nvdimm_bus_check_dimm_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dd70d9	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x320ca567	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x32114a58	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x32359ac3	led_trigger_blink_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x32387033	pinctrl_pm_select_default_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3267005b	mbox_chan_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0x326b1c77	phy_start_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x326b58fa	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x326cefe5	hwpoison_filter_dev_minor
+EXPORT_SYMBOL_GPL	 vmlinux 0x327b0c88	led_trigger_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x327d6564	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x327ff8e9	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x32804d31	dev_pm_opp_of_cpumask_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x3285864b	__hwspin_lock_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x329aff3f	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32afd075	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c1d4e0	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c4cbbe	devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3304b7c4	dev_pm_opp_free_cpufreq_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x330ea52c	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0x333ca141	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x337234f8	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x33744569	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x33837565	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c95417	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x33cc9569	pinctrl_pm_select_sleep_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x33d9a817	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e5ee5f	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x33e6729c	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fa9617	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x34047a4e	mmc_regulator_get_supply
+EXPORT_SYMBOL_GPL	 vmlinux 0x340e3eb6	usb_of_get_device_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3413a6b0	nvdimm_volatile_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x341d02d4	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x3443077e	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x344b6729	dev_pm_clear_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x34649868	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x34676d4e	dev_pm_opp_find_freq_ceil
+EXPORT_SYMBOL_GPL	 vmlinux 0x34684fc4	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x346e6a31	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x347b5d54	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x349a62b7	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a4b71b	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34ac4566	regulator_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x34bab869	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c1469c	of_dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x34c65f62	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x34e94428	extcon_dev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x34f670d5	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x350020bc	regulator_get_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x35045d74	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x351f267f	led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x352b3813	maxim_charger_calc_reg_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x353ae7fb	wm831x_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x354ba363	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x356f842a	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3578cf78	to_nd_blk_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x3589f4fd	devm_irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x358b0799	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x358c208a	cpufreq_driver_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x358ff60f	twl_get_hfclk_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3596d42b	wm5110_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x35990dae	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x359aebea	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x35a20617	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x35aa213e	sdio_release_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x35b6b862	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x35ba0cda	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c44ec4	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c56005	cxl_afu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c9f912	eeh_pe_inject_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d859e5	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x35da93f9	ohci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f2e0d2	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f31c54	arch_set_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x35f4beac	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x361e2bcc	save_stack_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x36361611	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0x364c0e71	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3671a72d	__devm_of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x36758e8d	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x368ae011	pinctrl_generic_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x368c0f62	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36a381ac	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x36b83ef3	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c0553e	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c4d26d	cpufreq_generic_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x36dad76e	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x36f2ee84	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x36fcb2fc	__cpufreq_driver_target
+EXPORT_SYMBOL_GPL	 vmlinux 0x37025dee	pci_disable_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0x370287cf	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x372e9b25	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0x3732047a	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x37383edd	rtas_get_power_level
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c2088	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x374c53e1	ata_get_cmd_descript
+EXPORT_SYMBOL_GPL	 vmlinux 0x375e66e2	nvmem_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3769569c	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3775c745	ata_sas_tport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x377bbcbc	pm_suspend_target_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x377dbb18	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x37877e8d	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x3797fd4a	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b297c6	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x37b77739	save_stack_trace_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x37bb5d4f	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x37cd9f93	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d3f236	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x37d5eaf0	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x37dc61e5	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x37e2bced	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37f3782f	dev_pm_opp_of_get_opp_desc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3801776b	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x3804ce0d	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x382ec4dc	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x3847c4f8	dma_request_chan
+EXPORT_SYMBOL_GPL	 vmlinux 0x3858318f	ata_bmdma_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x3868dd5a	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x38803ca2	regmap_get_raw_read_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x38af3d81	pinctrl_dev_get_devname
+EXPORT_SYMBOL_GPL	 vmlinux 0x38b882a6	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x38d23562	badrange_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x38dcfd7b	dev_pm_opp_put_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0x3906f316	tps65912_device_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3908e5bd	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3917388d	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x392a9d84	tps65912_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x392b1f95	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x39460ec1	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x397cf4df	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x39949bde	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x399a9169	kvmppc_h_get_tce
+EXPORT_SYMBOL_GPL	 vmlinux 0x399ff1e4	arizona_dev_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x39b4dc93	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x39bf73c3	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x39d4cb78	devm_hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e38cf6	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e99eb0	usb_get_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ebf43e	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a0e111f	rdev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a1a0bbd	mmc_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a43bd10	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4a0fc6	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4be3a4	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a4f6a32	ata_sff_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7f503b	devm_extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a85f42d	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a94d3ca	regmap_raw_write_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a982563	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac47348	pwm_capture
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ac8a3f9	dev_attr_ncq_prio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b073aac	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b08982c	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b1d7951	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b345e92	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b432a79	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b4c240a	display_timings_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b519e57	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b5beb52	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b61b0bb	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b6af540	pinctrl_count_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b7073a5	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b94a65a	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b9bb0ef	edac_mc_add_mc_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb252e3	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb6eb0e	devm_hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bc275d1	stmpe_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bca73db	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bceaa90	cm_notify_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bcfde9d	mpc8xxx_spi_rx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf443cb	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c18a007	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c27f4aa	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2b68f7	of_changeset_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c30ed06	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3338c7	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3821af	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3c43c3	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c4753c2	power_supply_get_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c527c37	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c5a9aea	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c6aa36d	led_sysfs_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c6f46b5	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7e3cee	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c7f942b	adp5520_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c8c27e9	devm_regmap_add_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c9633f2	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb7d43a	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb871f0	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cbb1de2	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc9baa4	nvdimm_blk_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd511ec	of_reconfig_get_state_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cf69baf	slice_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cfb796d	kvmppc_save_tm_hv
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d1e52d0	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d299dfb	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d2b2267	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d32be76	dev_pm_opp_of_add_table_indexed
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d34e8ba	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d49b1ec	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4a9e6b	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d4fb000	dev_pm_opp_get_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d612305	iommu_direction_to_tce_perm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d648114	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d82c277	devm_regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d867dd0	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d87053a	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8baf3b	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x3da67d02	ehci_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dad29d5	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db21b22	ata_host_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3db6835c	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc526a9	arizona_of_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc6d445	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd6037f	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd9457f	regulator_set_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ddc0301	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3df6ae5a	cec_notifier_get_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e088251	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e0deda0	of_pwm_xlate_with_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e26c907	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e2820ee	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e29553b	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4cb3a8	eeh_dev_check_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4e9191	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e557abe	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e5c889e	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e648244	srp_remove_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ea036dd	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec44a9d	copro_handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eca775f	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ecdaa2b	__find_linux_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0x3edec31f	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efdea84	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eff4e42	nvdimm_pmem_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f198f29	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f1aa653	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f1ad377	kvmppc_add_revmap_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f30cd67	regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f4972c2	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f5e23c5	phy_led_triggers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8c2f59	cec_register_cec_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f9944df	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa6a701	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fad1f36	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc872a8	da9055_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc8f24f	da903x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fc9d7cd	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fd74486	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4013b8ed	led_blink_set_oneshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x40222920	led_trigger_set_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x4049c28d	usb_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x404dd941	dev_pm_qos_update_user_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0x404e7815	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x40580566	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x4065d168	pm_print_active_wakeup_sources
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x40891752	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x408bd65a	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b1f2e1	save_stack_trace_tsk
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b5be99	xive_native_populate_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x40b68954	pinctrl_find_gpio_range_from_pin
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f0683e	reset_control_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f3cd1a	ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x4109c274	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x410bf42c	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x410cae95	cec_transmit_attempt_done_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0x4122d74e	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d119a	videomode_from_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x414d7aae	xive_native_get_queue_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x41508a4d	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x4152ce14	edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x41574014	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x41604c89	devm_of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x41656904	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x416dc766	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4174a505	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x417a2b93	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x41a63308	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41be63fb	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d4c0f1	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d6581a	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41f2947c	ata_cable_unknown
+EXPORT_SYMBOL_GPL	 vmlinux 0x420284fe	ata_wait_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x420f3d01	nvmem_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x42105b30	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x422022a3	pciserial_init_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x422bb234	rio_mport_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x4234bb4b	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x425b57b7	usb_hcd_amd_remote_wakeup_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0x42635d55	pm_suspend_global_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x426811b8	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x427baf93	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a8677d	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL	 vmlinux 0x42a9ca5e	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e1b7a3	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x42e1c677	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ef0bc4	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x42f728aa	mctrl_gpio_get_outputs
+EXPORT_SYMBOL_GPL	 vmlinux 0x430395b4	xhci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4309345b	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0x430bbff2	nvmem_device_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x432702e6	mm_iommu_mapped_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4332b93a	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x4334d7e3	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x433798c1	dev_pm_enable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x43389d03	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x433ae21c	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0x434dab99	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x4362b26d	regmap_mmio_detach_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0x437ca643	dev_pm_opp_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x4392b112	da9052_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x43a43d08	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aad3db	isa_bridge_pcidev
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b3e6c0	uhci_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b4c816	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ce0010	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ce784f	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x43eb902d	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x440224e5	usb_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x440de768	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x4425d860	srp_attach_transport
+EXPORT_SYMBOL_GPL	 vmlinux 0x4432e37d	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x4436273b	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x44440d85	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x4471b757	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0x44753042	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x44799494	pwm_request_from_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x447c928c	devm_fwnode_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x447f237f	pnv_ocxl_unmap_xsl_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0x44846e55	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4495916b	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x4499a29a	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x449fa45d	btree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x44b09de0	iommu_tce_check_ioba
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bea688	nd_blk_region_to_dimm
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d2e208	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d63b09	wakeup_source_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x44dad65c	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x44df9292	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e14b72	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e8a3ec	regulator_get_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x44ff830c	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x45030a7c	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x450316be	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4531624f	usb_decode_ctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x45475cb1	of_get_required_opp_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x4554b39f	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x455db7ff	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4561e896	cpufreq_dbs_governor_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x45853653	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x45a96d15	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c4682e	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c5c7f3	iommu_tce_xchg_no_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c688fb	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c9f37f	pwm_set_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ca4d64	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d1f452	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d65954	nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x45d81f8a	of_pci_get_devfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x45df5eb6	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x45df6302	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x45ed7151	dev_pm_opp_remove_all_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0x45fb7906	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x460b066b	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x46181cf8	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x461ddc2c	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x461e5aa1	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x4626518d	nvdimm_has_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x462e6843	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x463eef2c	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x464c9e1e	usb_kill_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x464cbccd	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x465233dd	devm_power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x468eb179	kvmppc_update_dirty_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x4694d1d0	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x46962324	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x46a0fa56	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x46c0935a	__mmc_send_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x46e465de	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x46eb0966	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f67fc7	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4705c76c	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x470a2d07	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4719218b	rio_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4721a25b	of_usb_get_dr_mode_by_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761b405	led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x47679d35	ata_eh_qc_retry
+EXPORT_SYMBOL_GPL	 vmlinux 0x477e8c15	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4793fb21	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x4798a52c	dma_run_dependencies
+EXPORT_SYMBOL_GPL	 vmlinux 0x47aad3b9	have_governor_per_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b00d93	led_compose_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x47b03862	cpu_add_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e34685	vas_win_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x47e4c998	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x47ea3433	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4804ba80	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x48185813	ata_sas_sync_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x48210c35	devm_led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x482805c9	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x482b6b55	regulator_set_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x483b2814	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x48538acd	sata_link_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x4855fb9d	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x48755f37	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x487ac245	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4893c467	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4894bd22	nvdimm_cmd_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a3d20b	mctrl_gpio_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a5a72f	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b2442f	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x48b44cc4	regmap_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d66d83	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d82587	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e0acb9	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x490118f8	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4903a52b	power_supply_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4910aa48	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x49383052	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x494c04f9	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x4970d406	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x4970ffd0	of_resolve_phandles
+EXPORT_SYMBOL_GPL	 vmlinux 0x497ba8a8	ata_bmdma_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x497c471c	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x498ad9cd	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x499b59b2	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x49c54ab2	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x49cfddbf	regmap_irq_get_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49f3b073	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a016487	devm_pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a026413	mm_iommu_mapped_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a0c968f	pm_generic_poweroff_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a1713eb	xhci_dbg_trace
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a29664c	sdio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a3f85b4	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a463c52	regulator_desc_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a4956a8	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a6c2f75	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7cac14	nvdimm_bus_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a803a18	kvmppc_find_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a85f62f	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a89b483	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a915513	tps65912_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a9f047a	tm_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aaa6cb7	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab7a570	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ad24cb7	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aec82a6	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af9d550	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0055cc	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b142707	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b166510	regmap_async_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b42cef9	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b460cad	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b51f74c	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b55f176	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b56fb6f	usb_driver_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b597757	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b72f712	hwmon_device_register_with_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b7bc550	cpuidle_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b80edbd	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b859440	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b91b606	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bb9bbc1	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bbe580d	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bc61487	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be1db7d	of_phy_provider_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4be52e5e	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bef0884	pgtable_cache_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bfba5f1	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c059743	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c2dd38e	power_supply_class
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c3f2898	dev_pm_opp_put_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c492093	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4c3d11	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6367bc	__hwspin_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c92de42	usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca5a49e	stmpe_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4caa4ebe	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbb2229	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cc1f2c4	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cd00345	irq_get_domain_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cdd3c2d	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cde85f3	agp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0dc808	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d10dd2e	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d286afd	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d37ed1e	__devm_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d3dba2e	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d43e82c	usb_hc_died
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4aab0d	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d0ffa	of_console_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d5cf25a	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d85b2c0	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d86f2c8	usb_unlink_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc4bb6c	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dc52c09	pnv_power9_force_smt4_catch
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de17ab3	usb_state_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x4de3a440	ehci_adjust_port_wakeup_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e0523b8	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e09aef5	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e17c613	ata_sff_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1c1e85	pwmchip_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e221bec	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e309ccf	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e36f697	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e396d0c	devm_rtc_allocate_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e39d30d	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e470159	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e5e6680	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e7e3c11	regulator_list_voltage_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e84e9f0	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e91a072	edac_get_report_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e99334b	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9a5946	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ecad6e6	usb_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef921f0	wakeup_source_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0b0246	edac_pci_handle_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f0ce98b	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f395ffc	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f425f60	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f491fb7	ata_std_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f4e6e16	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f52ef45	of_pci_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6b873c	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f70a9f3	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f72a987	uart_parse_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f73d79e	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f744a41	devm_of_pci_get_host_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f89b0bb	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fdc945d	sata_deb_timing_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ffd4f7f	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5008a7b6	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x5009da56	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x500cacf7	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0x5058ad3c	spi_mem_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508377eb	xive_native_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a58b6e	usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x50aca705	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c33f4a	of_reserved_mem_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x50c7dea1	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ccae09	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x50cf4ef6	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x50db2897	of_i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dc38f1	dev_pm_opp_register_set_opp_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dd1af5	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e1bcf9	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50ed6bc3	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x50f5fc64	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5100cf19	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x5103fc3d	power_supply_put_battery_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x51220e21	wm8350_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x512b93ce	sata_scr_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x512d806b	cs47l24_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x512db1be	ata_sff_dev_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x51371b31	pinctrl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x513973cc	usb_queue_reset_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x513f7e44	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x513fe6ef	ata_host_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5148a9f2	dev_pm_opp_put_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x51525525	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5171f049	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x5172b314	vas_paste_crb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5182c2e0	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b0dc1e	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b55986	sfp_register_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b65a26	rtc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x51bb1ccf	virtio_device_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x51c95dfa	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x51d326e0	nvdimm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x51dbaa6d	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e5d966	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x51e6efc8	arizona_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x51fc30be	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x520e345b	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x52186baa	rio_release_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x521b6f89	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x522a7fa9	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x522ce19f	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x524036f6	pinctrl_utils_add_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x524e2cc3	devm_nsio_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x524f0f77	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x5252d875	power_supply_find_ocv2cap_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x52610bc8	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x5281f1cf	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0x528c4a2f	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x529227b0	usb_register_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5294525e	regcache_mark_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x5294e1b3	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x52b74fde	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d94890	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x52e0bfbe	ehci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f1513a	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0x52f2365f	__of_reset_control_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x530299cd	rio_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x53291f6d	iommu_tce_table_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x533549b0	usb_alloc_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x5335dd11	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x533dd32d	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5349ee27	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0x535f7111	cpufreq_freq_transition_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0x536393cd	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x536822e3	sfp_module_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x5376527c	tps6586x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x537bd950	phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x53884839	kvmhv_load_host_pmu
+EXPORT_SYMBOL_GPL	 vmlinux 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cac1df	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d57545	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x53d9f73a	sensor_group_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x53eb8039	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f9b822	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL	 vmlinux 0x540069c6	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x540d4b41	device_wakeup_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x541c4ee4	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x54215db5	visitor64
+EXPORT_SYMBOL_GPL	 vmlinux 0x543e8552	usb_remove_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x544b3672	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x545025e5	nvmem_add_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x54537047	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54680b44	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x546c5565	ppc_tb_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5484d274	usb_driver_release_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x5494a780	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x549cd86c	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x549e0862	of_usb_host_tpl_support
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b6fc0a	spi_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x54eabc8f	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x550638c1	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x5509faf2	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x55122c90	dma_get_any_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5514ec53	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x55153f08	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x55241408	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x552c780d	sata_lpm_ignore_phy_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x553460fe	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x5539cb19	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x553b49a4	cpufreq_get_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x55531a02	extcon_dev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x556c4860	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x55784228	regmap_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5586a80b	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x5588879e	kvmppc_entry_trampoline
+EXPORT_SYMBOL_GPL	 vmlinux 0x558f9a2a	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x5592c8fe	dev_pm_opp_set_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x559f9cb5	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x55a9c17f	pinctrl_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x55ab6ef8	device_set_wakeup_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x55c76a23	ksys_sync_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x55dc1fcb	regmap_get_reg_stride
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e56d5f	led_set_brightness_nosleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e77841	wakeup_source_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f093a9	opal_write_oppanel_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x55fdf260	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x56162669	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x56173654	pcap_set_ts_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5620596f	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x56310925	regulator_mode_to_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x56388d3a	usb_submit_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x563b9b65	kvmppc_invalidate_hpte
+EXPORT_SYMBOL_GPL	 vmlinux 0x5654da42	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x56616d6e	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x566714bc	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x5670507e	cpufreq_dbs_governor_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x567d7fa1	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x56809050	spi_mem_default_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x56863a3b	spi_async_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x56893369	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a5bed3	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x56aec013	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b37396	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b4c544	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x56c2b95b	rtas_progress
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d73fe8	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dbce60	rio_unregister_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x56dddfb2	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x56e69f1c	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fa630e	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fe0cec	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x5701f1e9	rio_dma_prep_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0x570f3aaa	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0x571a3a0c	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x5723f838	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5736a330	mm_iommu_ua_to_hpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x574b2770	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x575ee1dd	pci_find_bus_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x5775c714	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x5777ec71	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579bfdd2	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x579f6ddf	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a790da	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x57a980dc	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x57ad4be0	opal_int_eoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c34476	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x57c39727	kdb_register_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x57d000cc	pinctrl_add_gpio_ranges
+EXPORT_SYMBOL_GPL	 vmlinux 0x57dd3d0c	serial8250_em485_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x581bb853	adp5520_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x581f37a2	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5835804d	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x58430100	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5846bf36	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f938f	wm5110_revd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x584f9e67	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x58541642	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x586106bb	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x586d378a	wm8350_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x586f3e4c	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5879a27d	sfp_get_module_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x5886c75a	extcon_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x5892f832	release_pmc_hardware
+EXPORT_SYMBOL_GPL	 vmlinux 0x58b5244d	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x58d13ea7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x58dccd83	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x58dedc43	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x58def6ca	sfp_module_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e13c99	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x58ff2e5d	rtc_class_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x5905dc61	irq_generic_chip_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5909fc18	opal_tpo_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5914efea	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x59165fad	phy_pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0x591696dc	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5921b1ad	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x5938e9af	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x5942d30d	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x594b3cee	stmpe811_adc_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x594fd35e	wm5110_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5963025b	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5986d190	kdb_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b2adbf	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x59be22bc	kvmhv_save_guest_pmu
+EXPORT_SYMBOL_GPL	 vmlinux 0x59c9c182	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e267e2	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ecdda0	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x59f04e2e	arizona_dev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x59ff87b2	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a152a28	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a1aed52	kvm_free_hpt_cma
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3236bd	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a640a0c	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a65cd08	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6c5f28	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7895d7	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8878fc	pinctrl_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8d1e0f	pm_generic_restore
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a8d7a88	lp8788_update_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa07609	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aa43c2a	dev_pm_opp_of_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ab09745	edac_get_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x5abd1bff	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad9df57	extcon_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x5aed9f42	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x5af912d1	power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b010e40	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b020437	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b11166c	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b19614a	pstore_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35b139	of_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6ef791	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b71503b	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b7253b7	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8099ef	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b83bdf5	usb_poison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8ef60c	ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb2d87b	ata_sff_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bc85310	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c169ae7	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c38c3a6	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5a1b16	tick_broadcast_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6842e5	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6c22ac	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c7ca388	devm_power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c7eaffd	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c98e312	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca77059	ata_pci_device_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cad8fc3	power_supply_ocv2cap_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cb99d97	kernstart_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cbf39a7	ata_std_bios_param
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cc2d305	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x5cd3c5e6	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d040a49	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0491f7	cpufreq_freq_transition_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d08f86d	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d09f8ac	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d2050d2	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d4debeb	wm831x_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d5c611c	usb_unlocked_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d6dbea7	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d92f1e0	pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9481f6	sdio_release_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d9bad85	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db4389f	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5db659b2	of_get_pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc3c8ef	gov_attr_set_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc4b8a3	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dc62374	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x5dd0f9dd	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e00aea4	ucall_norets
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e10bd93	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e1322a0	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e230c6a	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2e1ef5	usb_block_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e2f0466	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e305385	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e396c97	pm_genpd_syscore_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e3be831	tps6586x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e494954	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e53f786	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6880df	usb_free_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e693510	regulator_is_enabled_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6a6ac5	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e6d260a	powercap_register_zone
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e842eb2	spi_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ea6ce62	phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eab9af2	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb57c4c	lp8788_write_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eb873de	serial8250_rpm_get_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ebb521c	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec13ceb	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec62549	ata_dev_classify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ec98563	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed0cff6	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ed0da6c	tm_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f013db5	phy_pm_runtime_forbid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0f4771	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f103be3	pnv_ocxl_get_actag
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f14f0aa	tc3589x_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f1bc1eb	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f21b0dc	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f26a711	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3159be	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f391581	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3f02b5	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f419e79	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4dfc12	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f4ea6cb	dev_pm_domain_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f5a72d2	cpufreq_cpu_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f657dbb	__dma_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f693dc4	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f704c11	dev_pm_opp_get_max_clock_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f71198f	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f901039	uart_set_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa51bec	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd39453	mbox_send_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x6000187c	opal_check_token
+EXPORT_SYMBOL_GPL	 vmlinux 0x600cc455	mmu_slb_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x60173c67	regulator_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6027ce1b	regulator_get_voltage_rdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x60450102	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x605b3d1f	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x605c44ab	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x605f62a9	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x60644c9a	sdio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x6068efb6	regmap_field_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x606f1922	phy_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6075ece1	__hwspin_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x607b1a9d	nvdimm_security_setup_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6081884a	usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x60847a7b	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x60849400	regmap_get_max_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x608bab1f	sfp_select_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x60907ba5	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a11300	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a634c4	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x60c6ec39	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x60c7faf3	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ca9e40	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0x60fbf04a	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x61009321	pci_epc_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6109f093	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 vmlinux 0x61246330	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x6129fb93	sfp_remove_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61327faf	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x613d194f	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x614adcb7	of_overlay_remove_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x6169ec54	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x616a5155	regulator_get_current_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x617dfb34	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x618982de	usb_set_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0x619a8194	threads_core_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x619c526d	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a66ff5	ehci_hub_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a85ebd	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x61bf509b	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x61c26ef2	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x61cb5ea6	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ce081e	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x61df3314	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x61ee6b72	devm_regulator_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f197d8	regmap_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fada33	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x61fc742d	is_pnv_opal_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x620897c0	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6208c258	dev_pm_genpd_set_performance_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x62099f00	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x621f7651	rio_set_port_lockout
+EXPORT_SYMBOL_GPL	 vmlinux 0x622aa3c4	devm_of_phy_get_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x623b7520	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6258ce04	of_phandle_iterator_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x628148be	_kvmppc_restore_tm_pr
+EXPORT_SYMBOL_GPL	 vmlinux 0x628bb521	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x62913387	wm8350_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6295fbde	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x629cad24	regulator_get_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a1d825	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c379ea	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x62da4f56	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0x630562af	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x63099831	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x630c1098	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x630e23d2	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x630fecee	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x63197685	s2idle_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x633475c7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x635795f6	dev_pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x635aa49a	max8997_update_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x635ef28d	usb_put_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x63640fa3	regmap_can_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6366d5c2	rio_mport_read_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0x63712200	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x6376f666	nvdimm_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x638f7674	__pm_runtime_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x63929a08	rio_map_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x639746a5	ata_sas_port_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x639b4fca	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x63b19484	rio_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c2f839	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c5fcff	ata_dev_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x63f389b8	tps6586x_irq_get_virq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6406cd6c	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x640a3191	lp8788_read_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x640c6019	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x6426649f	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x642a0d37	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x64340b52	dev_pm_get_subsys_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x64391355	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x64405ecd	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x644d164f	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x64507969	dev_pm_set_dedicated_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x64527817	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x647fb2d6	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x648195d0	ata_port_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0x648e5ba1	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x6493a2df	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x6496088f	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x649fda73	of_changeset_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b844f1	wm8350_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c60ffa	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d7846b	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f36620	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x652b0673	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x652d89f9	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x653b8dd2	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x653bbb4a	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6542767b	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6544e1e3	cpuidle_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x654e9350	sata_scr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x655d8a1a	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x65701767	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x6571fe02	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x65809b35	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x65821bd2	da903x_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x658d702e	ata_cable_40wire
+EXPORT_SYMBOL_GPL	 vmlinux 0x6590cd9c	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x65a2144c	__rio_local_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb003	shake_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65d81beb	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x65eac411	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f131b6	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f79b7a	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x663e846e	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x663f3713	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x6642b2e3	usb_phy_roothub_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x664c857e	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x665cb918	generic_access_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x66690e8e	ata_sff_softreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66854bd9	dev_pm_qos_expose_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x6693bc90	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6699a75c	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x66aa1891	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x66afb53b	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b97421	sfp_link_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x66dc89ee	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e44173	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x66e5e611	of_get_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f6f3b7	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x66f8432f	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x66fee81d	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6703372e	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x67134c02	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x672366d7	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x673832ef	led_init_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x6738b5ad	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x67560a42	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x675ff942	max8997_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6760cf4c	ata_sff_check_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x676cae3b	spi_sync_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x6778f0bc	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x67822085	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67db871a	spi_controller_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6808b15d	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x680c67eb	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x68277916	edac_pci_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x682c6eb7	kvm_alloc_hpt_cma
+EXPORT_SYMBOL_GPL	 vmlinux 0x683830ce	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x6838ba26	mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x684bb45d	of_dma_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x684ea220	devm_regulator_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x68786f2e	xive_native_configure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x689a5e2d	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x68aa742b	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b3aedb	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x68b7df8f	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x68bd47c5	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x68ca22a7	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x6900c039	pnv_npu2_map_lpar_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6909a38b	opal_rtc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x690fb93a	serial8250_init_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x690ff69b	xhci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6910d536	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x6928269b	xive_native_disable_vp
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69476a41	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x694ea236	irq_gc_mask_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x69531ca1	device_init_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x695a76a3	usb_enable_ltm
+EXPORT_SYMBOL_GPL	 vmlinux 0x695e34b5	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x696f2b63	of_changeset_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6973dbb5	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x6978c045	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x697a199b	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x697cbbb4	threads_per_core
+EXPORT_SYMBOL_GPL	 vmlinux 0x697cf413	ata_bmdma_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x697cfea6	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x697d94e2	regulator_list_hardware_vsel
+EXPORT_SYMBOL_GPL	 vmlinux 0x698be62f	usb_control_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x698ff740	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x6991c999	spi_controller_dma_unmap_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x699fcf33	extcon_get_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x69aa30af	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x69b462f7	led_get_default_pattern
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d79a00	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d9d4a7	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e3eead	dev_pm_opp_find_level_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a05b65b	fb_videomode_from_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a32e11f	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a353f61	sata_link_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a3f6710	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a421062	memory_failure_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4ad61a	ata_sff_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a5e2bde	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a6cafd2	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7992c1	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a82ba95	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aa79b77	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aaa02eb	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aafdb70	usb_unanchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac5d028	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ac9855a	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x6add7339	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae90248	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6af8d7e5	lp8788_read_multi_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6afbf61f	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b31c28e	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b413c9b	sfp_link_down
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b50ccf1	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b600bc5	dev_pm_opp_set_regulators
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b701260	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b81c38b	power_supply_unreg_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8a15c5	regulator_list_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b8f7991	devm_thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b965275	rio_mport_get_efb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b970fab	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba0cd21	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba36c6a	hwpoison_filter_flags_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba7cd50	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bab8600	tpm_tis_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bacb78f	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb0446e	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb570c4	pm_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bb60e84	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c002ff8	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c0fe617	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2621bd	pm_runtime_set_memalloc_noio
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c272489	spi_set_cs_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c28a09d	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c2ca493	pcibios_free_controller_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c315cd9	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c4b6684	reset_control_assert
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c50483d	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c517594	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c817b2d	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c81c72b	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c911c22	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca450c8	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cc3e99d	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ccd3397	of_irq_get_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cde429f	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cea7987	of_reserved_mem_device_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d08e374	regulator_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d0ae550	pinctrl_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1458fc	power_supply_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d3480bf	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d39a674	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6dd655	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7db2b6	extcon_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d8e96ac	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d90924d	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d91eb2e	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db4777e	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db75513	phy_create_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc1d8d2	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dc5f48b	edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dccbe5b	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dce877a	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dd4f461	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x6debd98f	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dec7b0a	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e080ae6	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e1b2259	usb_phy_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e398afb	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e3ff83a	edac_device_alloc_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4bc056	spi_res_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e51506f	mmc_pwrseq_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e665fed	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e744d62	spi_statistics_add_transfer_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e89a560	regmap_irq_chip_get_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e9156c9	usb_unpoison_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb0471e	serial8250_request_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec66e11	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ec95694	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ed0e357	devm_regmap_del_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8a6d6	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ee8c94b	sfp_get_module_eeprom
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efb025f	thermal_notify_framework
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0088d9	xive_native_sync_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f0cc038	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f20117c	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f2874c6	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f358dc1	mmc_pwrseq_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f35c03f	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f36c2e3	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f37e011	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f45ed61	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f62b2d3	regulator_list_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f6414e3	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f643b23	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f6c5ba9	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f794995	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f871291	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f8bd232	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fce2e08	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fdf98fa	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe8669f	ata_host_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffcd94b	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x70056709	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7010aa00	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x70178bbf	serial8250_do_set_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7019552d	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x701ecec4	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0x70290113	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7034366c	get_slice_psize
+EXPORT_SYMBOL_GPL	 vmlinux 0x704f24ae	kvmppc_restore_tm_hv
+EXPORT_SYMBOL_GPL	 vmlinux 0x70549431	extcon_unregister_notifier_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x705ccd33	regulator_disable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7082190f	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0x709254dd	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x7094fbee	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x70aa73bf	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x70b20d51	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c3b31e	rio_request_mport_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c6d827	mc146818_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e78efa	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x70eaac67	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f72c3b	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x714c1c17	usb_put_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x71581e28	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x716db851	usb_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x71b38741	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ba9cce	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x71d5ff5d	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x71dca012	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x71e63990	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f4867f	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0x71f6670b	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ffeb63	__spi_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x72122228	serial8250_clear_and_reinit_fifos
+EXPORT_SYMBOL_GPL	 vmlinux 0x7217a481	regulator_set_voltage_sel_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x722adfbb	i2c_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x724f085d	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7256ad8f	cec_notifier_cec_adap_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x72589c50	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0x725da273	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x7289757a	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x728d3200	regulator_get_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x729d111c	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b466ad	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x72b8b18d	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c05a34	stmpe_reg_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c163e2	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c2f32d	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c74f6f	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x72d267dc	nvmem_del_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0x72dfc82b	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x72dff8ea	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x72eb9e46	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f23bc8	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f7ff40	spi_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7301a4da	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x73057218	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x73327dec	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7332e816	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL	 vmlinux 0x733a21e2	cpufreq_dbs_governor_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x734bd53c	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0x734f157a	sata_link_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x734f86be	devfreq_event_remove_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0x736d9f0d	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7378ca41	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7383cc83	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x7389503b	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x738eb491	mpc8xxx_spi_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x73900e40	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x739f0d1c	da9052_request_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a562ab	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x73a9b391	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x73b6dfba	pwmchip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x73bc24a0	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c0f48b	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c2554f	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c6e699	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ccdf23	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73de1629	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x73e3cb52	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x74015d40	pinmux_generic_get_function_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x740348bc	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x74061361	regmap_get_val_endian
+EXPORT_SYMBOL_GPL	 vmlinux 0x740711d7	devm_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x74134d01	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL	 vmlinux 0x74199b26	opal_leds_set_ind
+EXPORT_SYMBOL_GPL	 vmlinux 0x741f307f	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7420ba0e	arizona_set_irq_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x74258cb2	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x74339625	thermal_cooling_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7439ef4b	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x743a165e	ata_pack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0x744caf5a	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x7452e85a	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7453f68a	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7472be5d	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b33a15	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c7bffa	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x74f1d848	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x7505f1f5	rio_local_set_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x75133f6e	visitor128
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x752c1a05	stmpe_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x75318041	hwpoison_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x753ef49a	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0x7547e639	cpufreq_table_index_unsorted
+EXPORT_SYMBOL_GPL	 vmlinux 0x754ba823	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x756592f3	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7573b4ca	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7575b71a	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x757cfe35	xive_native_get_vp_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7581d0d7	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x758f6d83	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x759139cb	of_pci_check_probe_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x759b91b5	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0x75a0c208	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b5d8c4	__regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0x75c27e6f	ata_sff_irq_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x75c9cadb	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ca6a60	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cc2f27	regulator_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cda544	spi_mem_exec_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x75cfe3b0	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d10370	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dd4ebe	of_overlay_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x75ef0e88	sata_set_spd
+EXPORT_SYMBOL_GPL	 vmlinux 0x760d7b5d	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7614f8e3	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x76203755	__xive_vm_h_eoi
+EXPORT_SYMBOL_GPL	 vmlinux 0x7626b05a	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x76390cfd	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x76581890	of_regulator_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x766de61f	devm_memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681946c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7689bf68	spi_mem_driver_register_with_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x76adfe20	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL	 vmlinux 0x76b13d8c	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bc5182	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d157be	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f0e215	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x76f2abe0	btree_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x76fa225f	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x76faf738	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x7706cd5f	cpufreq_freq_attr_scaling_boost_freqs
+EXPORT_SYMBOL_GPL	 vmlinux 0x77083ce7	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x77228641	of_pci_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7745db6f	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x77500fa2	of_property_read_u64_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ae495d	usb_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x77aed8c5	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77cdcb3e	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x77dbc5c2	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x77dd75ee	pstore_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77fde2d3	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77feae64	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ff8434	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x78171361	srp_release_transport
+EXPORT_SYMBOL_GPL	 vmlinux 0x7817786f	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x782bdd7f	regmap_raw_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7833dd85	usb_enable_intel_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x783d4f90	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x785c05bd	of_property_read_variable_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7863b542	usb_free_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0x7873fe2b	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x787c882b	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x788b9937	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x788f7a68	dev_pm_opp_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x78a8037a	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x78bfca43	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c5d549	power_supply_external_power_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x78c5fabe	usb_wakeup_notification
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d8c116	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x78e58a4e	xive_native_has_single_escalation
+EXPORT_SYMBOL_GPL	 vmlinux 0x78fcf0b4	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x79035fb6	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x790b2cb3	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7913f566	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x79145a6d	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x7918d817	memory_failure
+EXPORT_SYMBOL_GPL	 vmlinux 0x7924caba	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x7941e458	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x79527ca2	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0x7975629d	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7976c178	usb_debug_root
+EXPORT_SYMBOL_GPL	 vmlinux 0x79894fa8	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x798b58a5	mm_iommu_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x798fbbfe	devm_usb_get_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a17bd6	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b44b3f	usb_hcd_end_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b67650	dma_request_chan_by_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0x79beacd6	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x79ca1d0a	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x79d359af	serial8250_do_set_divisor
+EXPORT_SYMBOL_GPL	 vmlinux 0x79d60baa	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x79de716d	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f697e4	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x79f88a75	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0bbc4b	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a0df37a	ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a1b732c	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a26ee6b	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2aaf3e	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a36a3c7	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a3d6694	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a594f12	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5ab0a4	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a5c2ee4	of_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a68f10b	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a6cda28	serial8250_read_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a73e605	wm831x_isinkv_values
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81b798	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a870f37	mm_iommu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a9cecaf	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7aabbb63	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abe0498	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0x7abf441b	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad1ded1	pinctrl_register_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ad900bc	usb_hub_release_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b0b0170	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b178afe	unlock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b1945e5	usb_interrupt_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b1df89f	pci_address_to_pio
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b3fb796	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b41529a	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4ff8f4	badrange_forget
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b783824	ppc_breakpoint_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bb36d9b	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bc68b66	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd37592	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bd62c46	genpd_dev_pm_attach_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x7be1d0a7	regmap_raw_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bec7f53	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf296b2	rdev_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf6a610	ohci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfbace8	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c0ad77b	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c1038e6	thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c3020f0	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c31f5c4	kvmppc_host_rm_ops_hv
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c326cb1	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c37bc89	pseries_ioei_notifier_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c37c11d	mbox_client_peek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c73a9e0	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c74c8b6	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7ad824	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cac99d1	cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7caf306c	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cba5b8d	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cceaf92	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd0a384	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd15afd	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd411f0	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd6f042	cpufreq_get_current_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cddbfe7	cs47l24_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ce4ed6b	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cfb4543	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d00c65b	nd_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d0a392b	usb_phy_roothub_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d1bb1d4	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d2100db	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d3b97cc	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6b1055	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d7fdab5	dev_coredumpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d83f839	__pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d87f719	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d8ae66d	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d8b4faf	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0x7db6f83a	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dc23ac9	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddd5fd4	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de48bc0	of_genpd_add_provider_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dfc4789	ata_dummy_port_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dff2a0c	kvmhv_load_guest_pmu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e015903	dev_pm_opp_set_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e1e1bd3	iommu_tce_check_gpa
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e54faae	devm_memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e585d0b	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e5db80b	pstore_name_to_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e68eb6e	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e86bc65	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eb2f411	pnv_ocxl_set_tl_conf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebb0e0c	of_genpd_remove_last
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ec3607e	nvdimm_bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ecc6ff2	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed0720c	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ed80ff7	rio_free_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea6b8b	pcap_adc_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eebb048	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef07114	nd_cmd_in_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f0e2e6b	cpu_add_dev_attr_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f159e2b	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f2a4c83	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f352697	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3767df	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f3799ef	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f792bf4	pm_runtime_autosuspend_expiration
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f81c82a	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f869b18	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f86bc22	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f8f459b	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f9d1c58	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa4362e	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fae0b68	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb976bf	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fcbadb3	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x80160f45	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x803b4952	mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x80469e47	devm_reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x80480488	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 vmlinux 0x80545eea	ata_do_set_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8058d144	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8073f8a6	of_property_read_variable_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x808e754b	of_dma_is_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c02c87	pci_max_pasids
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c30430	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80ccc63a	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d84b13	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x811be6c3	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x811dc334	usb_unregister_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x8143164c	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x814d2394	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x815d062c	usb_phy_set_charger_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x81674f78	btree_grim_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a41ca	cpufreq_update_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x81907a60	__of_phy_provider_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x81bd9c28	pm_stay_awake
+EXPORT_SYMBOL_GPL	 vmlinux 0x81c0a84f	rtas_set_indicator
+EXPORT_SYMBOL_GPL	 vmlinux 0x81cc8635	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81de5031	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e07a1e	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x81f17133	devm_of_phy_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8202c9b1	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8202e6ae	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8213e58e	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL	 vmlinux 0x821dea7b	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8228c1c4	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x82330005	edac_raw_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x82382951	rio_route_clr_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8249287f	uart_console_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x825fc2ad	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8281935a	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x829720bf	pinctrl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x82a9b130	pci_enable_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x82b2e64f	pm_runtime_irq_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c61683	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d04f09	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e6d13b	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x82ea7ce4	led_blink_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x82eef3e0	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f1be33	mmu_psize_defs
+EXPORT_SYMBOL_GPL	 vmlinux 0x83038a08	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x831beb3e	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x83289b0a	da903x_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x833b16be	pwmchip_add_with_polarity
+EXPORT_SYMBOL_GPL	 vmlinux 0x833e4f5d	usb_control_msg_recv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8342e8fd	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x835f3362	ohci_init_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8366e9c1	dev_pm_opp_find_freq_floor
+EXPORT_SYMBOL_GPL	 vmlinux 0x836d61d0	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x836ef3e7	devfreq_event_get_edev_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x83743837	hash__has_transparent_hugepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x838cda7b	spi_bus_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8394c889	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x83a86605	spi_bus_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x83b588e0	led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c35e0c	thermal_add_hwmon_sysfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d44b76	pm_runtime_suspended_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d655ef	extcon_find_edev_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x83ff67d5	mmu_feature_keys
+EXPORT_SYMBOL_GPL	 vmlinux 0x8401fb81	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x844939c7	usb_get_dr_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8449c462	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x844c2f3d	vfio_spapr_pci_eeh_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8462cb62	atapi_cmd_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8486be3b	pm_runtime_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x848c6be8	rio_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x848f56a0	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x84a8d0eb	of_changeset_revert
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d1d868	dev_pm_opp_get_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d9fe16	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x84dc3da0	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x84e56767	spi_busnum_to_master
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f86e78	cpu_remove_dev_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f87099	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x84f99298	ehci_handshake
+EXPORT_SYMBOL_GPL	 vmlinux 0x84fbced3	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x85034356	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x8508a5fe	of_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x851e6003	usb_phy_roothub_calibrate
+EXPORT_SYMBOL_GPL	 vmlinux 0x853b9110	__kvmhv_vcpu_entry_p9
+EXPORT_SYMBOL_GPL	 vmlinux 0x85504091	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x85540ebc	nvmem_cell_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x856869e8	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x85686be1	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x8578ac86	dev_pm_opp_set_supported_hw
+EXPORT_SYMBOL_GPL	 vmlinux 0x858cab3f	sdio_writew
+EXPORT_SYMBOL_GPL	 vmlinux 0x8590b49d	nd_numa_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a3eeb7	regulator_map_voltage_iterate
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b1c223	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b4f55e	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x85cb5336	ata_std_prereset
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e62e3e	devm_spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ef262a	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ff2e3d	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x86040ad3	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x860e335f	led_trigger_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x861d420a	thermal_zone_device_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x86350395	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x86368e0a	devm_hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8642d8fd	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x8651a1dc	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x866ff59f	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8670f59c	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86803bf4	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8689e783	nvmem_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x868c7291	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x86a692fb	i2c_of_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b5301b	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b900db	regulator_set_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ba72ca	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x86bec695	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86ce4950	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x86cfb18c	pci_restore_pasid_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d2f56b	of_find_spi_device_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x86db1cbb	rtas_flash_term_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x870d2915	pnv_ocxl_alloc_xive_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x87104dbb	__phy_modify
+EXPORT_SYMBOL_GPL	 vmlinux 0x872cc674	__tracepoint_xhci_dbg_quirks
+EXPORT_SYMBOL_GPL	 vmlinux 0x8747e6e7	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x874fa147	of_get_display_timings
+EXPORT_SYMBOL_GPL	 vmlinux 0x875582b7	nvmem_del_cell_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x87782fc2	usb_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x87a06dac	pm_wakeup_ws_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x87b99d9d	usb_sg_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ef3cd0	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f2dfc3	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x87f4614d	usb_init_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0x88047d47	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8805793d	nvdimm_bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x88088665	max8997_bulk_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x88089c04	devm_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x880d3e30	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x88254e03	adp5520_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8847c5cd	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x88677a6a	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x886ed46c	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ca0829	devm_pwm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x88d3166b	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x88fbfd1b	regmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8912c3b4	memcpy_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8918d4d6	spi_mem_supports_op
+EXPORT_SYMBOL_GPL	 vmlinux 0x891e0590	rio_register_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x891ee36f	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89589e6e	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x895abe9d	regmap_fields_update_bits_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x89725f10	early_find_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x897355da	__nvdimm_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x897ac058	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a97ce8	sata_sff_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae7aa0	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x89bbafc6	usb_register_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x89dc2fce	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x89de1b67	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x89fc820c	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ff283a	sdio_writel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0217a1	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a0f693e	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a27edc0	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2aa4e0	analyse_instr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a35e1c7	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a49bc35	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a502a2e	spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a554a36	mpc8xxx_spi_strmode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a62b81b	sfp_upstream_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a65d987	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9c8efe	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a9dbcad	opal_message_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aa2f44a	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ab24302	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aca99d8	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8acbd482	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ade7ca8	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x8adee82b	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8aff0406	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b120f62	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b40a631	cpufreq_policy_transition_delay_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b42c450	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b45eece	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b475e7b	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b4c5cf7	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b549275	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b6c761a	__xive_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7d4b2f	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b82dfdd	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b8de3f9	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b92fded	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b991d7f	ata_sas_async_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b993a02	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba1d6fc	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ba4c649	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bae65ee	powercap_unregister_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd333b8	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bd95f9c	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bda7fc4	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be19e58	serial8250_tx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be75b61	sdio_align_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf9a1ec	cxl_afu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bfa278c	of_platform_default_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0215f2	pm_system_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c0c3692	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2879c3	usb_mon_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c38f641	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c489e4f	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6d89c9	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c6dff00	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c743fb6	reset_control_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c77229f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c89e3b8	usb_phy_roothub_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cab351f	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cd94f86	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cfacab5	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d0aedf7	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d13575d	pm_generic_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3f764f	ata_host_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d486282	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4badaf	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4e50f4	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6dc201	ppc64_caches
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6eab1e	sata_std_hardreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d7e3373	hwpoison_filter_dev_major
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db2c04f	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db5c232	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbf5a20	kvmppc_hv_entry_trampoline
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc23134	__irq_alloc_domain_generic_chips
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc57e38	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dde29dd	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de28319	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x8df51555	cpufreq_show_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e2e2f74	xas_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3ad018	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3c1cb6	of_pci_find_child_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e3ecca8	tps6586x_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e48991a	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e54959b	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e5a9f94	flush_vsx_to_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e7064fa	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e85f6cb	nvdimm_setup_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8aca38	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e952b63	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e97b6c0	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eae8dfd	usb_find_common_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eaf31ef	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb85d58	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb9de2c	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ed8724d	usb_bus_idr_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8edb9656	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee3063a	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee32def	wakeup_source_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ee68366	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ef2421f	usb_put_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f040694	sdio_retune_crc_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1f8f05	of_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f276cf2	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f277cd8	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f30f918	pinctrl_force_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f342ae0	ata_bmdma_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f48354d	of_irq_to_resource_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f64437a	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f732e0b	mmc_send_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f738040	spi_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786e67	da903x_clr_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f89e97e	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f90a723	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb04d68	pnv_ocxl_spa_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb54a2f	ata_port_wait_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fc52b69	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fdd97fb	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fff8980	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9008ae45	eeh_iommu_group_to_pe
+EXPORT_SYMBOL_GPL	 vmlinux 0x90250425	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x903371ce	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x9059bd54	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x90677a7d	cec_notifier_set_phys_addr_from_edid
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x906c6c8e	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x90704964	devm_nsio_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9073bd8c	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a9d126	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x90bbdf44	dev_pm_opp_find_freq_exact
+EXPORT_SYMBOL_GPL	 vmlinux 0x90c8c20c	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d00fac	gov_update_cpu_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x90d531ce	agp_remove_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x90dd6a2a	vas_rx_win_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x90eced51	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x910a639c	usb_unlocked_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9115bd28	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x9117f9de	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x911d18ae	dev_pm_opp_of_cpumask_add_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9124b013	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0x912557ce	rtas_busy_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0x912a0bf8	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9130787b	sfp_unregister_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x9134738f	of_dma_controller_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x913fa289	cpu_remove_dev_attr_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x914ccbc0	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9158e04d	machine_check_print_event_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x91594445	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x91622b32	cpufreq_dbs_governor_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9168c033	rtas_get_sensor
+EXPORT_SYMBOL_GPL	 vmlinux 0x91718645	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x91816b05	of_irq_parse_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91c6e5b0	pcap_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cbc039	xhci_ext_cap_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d25502	tps6586x_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0x91d44fab	of_property_read_variable_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ec0c84	phy_optional_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x91f1a7cc	iommu_release_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x920606b0	gpiochip_add_pingroup_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x920cc389	visitorl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9218e9c1	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x92238bcb	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x92520e4a	devm_usb_get_phy_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9281a764	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x9292ddcf	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x929f140e	usb_put_intf
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a159ac	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a288aa	phy_remove_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x92a3e665	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x92aae10a	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x92b63718	regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0x92c925fb	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e539cd	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92f0aa28	opal_tpo_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x930e3bad	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x932ea401	ata_sff_postreset
+EXPORT_SYMBOL_GPL	 vmlinux 0x9334c284	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0x933ebcf4	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x93404736	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9343779b	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x934a0aee	kvmppc_subcore_exit_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x936a1386	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x936c4f66	ata_dev_pair
+EXPORT_SYMBOL_GPL	 vmlinux 0x93731aba	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x937a192d	hwspin_lock_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x937ad719	devm_pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384cd49	ata_tf_from_fis
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a2197c	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x93a71177	device_set_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x93b5c025	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e6dc8c	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x93e7cc42	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x94127b5b	pci_hp_remove_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941ad601	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x94467440	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x944e745c	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x94551956	ata_sas_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x946b6b09	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x949a16a4	pm_generic_suspend_late
+EXPORT_SYMBOL_GPL	 vmlinux 0x949f7342	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a0a0de	usb_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d5cfd7	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x94d6d299	of_platform_device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x94df8dc2	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f379e9	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9500beca	power_supply_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0x95037d8f	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x95093fd6	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0x951240fa	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x95184b70	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x951eff23	pm_runtime_force_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x9524a9d4	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9529bc12	ata_pci_shutdown_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x9542a15e	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x95497545	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x954d0f6d	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x95561cc0	thermal_zone_get_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x955fd5b8	pm_generic_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x957f9aca	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x958e6556	regmap_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x95958356	mmc_regulator_set_ocr
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a6411d	pci_remove_device_node_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x95a647c2	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x95aae9d0	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ac00f0	da903x_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x95b6fec4	xive_native_free_vp_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bc9078	btree_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x95bf81cc	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c56aff	pinctrl_force_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c8ea60	arizona_clk32k_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x95cc4c7b	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d091c0	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d8cc6a	spi_mem_dirmap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x95db8407	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e44df0	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ec4ec4	pm_runtime_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x95f8479f	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9601bb63	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x960c7044	ata_sff_dma_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0x964aca5f	rio_unregister_mport
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x966b4a0d	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x967d5c72	iommu_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x968013e5	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x969d385d	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x969dda48	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x96a057ba	cpu_feature_keys
+EXPORT_SYMBOL_GPL	 vmlinux 0x96aa5773	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b7cfb3	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x96ca63f5	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96cc48b9	xive_native_default_eq_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e248c6	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e58d03	nvdimm_badblocks_populate
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e5f0ac	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x97053efa	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x97145f29	__devm_regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x971baee1	regmap_parse_val
+EXPORT_SYMBOL_GPL	 vmlinux 0x971d7108	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x9723e2dc	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x97283a73	of_dma_get_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x97410696	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x974679d2	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x9760cae7	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9770f001	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x977d36bd	pinctrl_find_gpio_range_from_pin_nolock
+EXPORT_SYMBOL_GPL	 vmlinux 0x978e01f8	usb_of_get_interface_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x979fff0d	rio_lock_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a20098	usb_clear_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x97a9c433	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d04a0c	dev_pm_disable_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d46bfe	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d46df4	rtc_update_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d89df7	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97eb6f19	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97f164a4	edac_get_sysfs_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fe7817	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fe7e06	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0x98170559	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9818ecd4	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0x982aeb40	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833b437	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x98355a46	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x983f8e2e	btree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x98412f9a	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x984592e3	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x984b2c17	rtc_read_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9854fb2e	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x9855a697	opal_xscom_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x986a939d	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0x987520e2	usb_find_common_endpoints_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x9877bc03	rio_dma_prep_slave_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x987a0a90	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x989ae02a	thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x98a9945f	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bcf3eb	dmaengine_unmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9902dbae	sfp_register_upstream
+EXPORT_SYMBOL_GPL	 vmlinux 0x99124fc0	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x991a4da3	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x992a7f7f	tc3589x_block_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99359f29	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x99438edf	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x99688cd8	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998d79d6	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x99b0cda2	of_pwm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f018c4	nvmem_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x99faf720	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a000807	srp_rport_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0abdc4	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a28e691	irq_gc_ack_set_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2f2fe4	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a2ff92c	is_xive_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a4f40ab	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6560fb	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6811bf	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6b291e	powercap_register_control_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a6bac1b	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a7f5197	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a80f84a	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a9d3a7e	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ac30eb6	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ad20079	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9adf08c3	mmu_linear_psize
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae97c8b	cpufreq_frequency_table_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeba45b	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x9afcb0fc	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b080859	pci_iomap_wc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b290b06	da9052_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b35bc91	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4da2b1	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b53e421	led_stop_software_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b555c8c	pm_suspend_default_s2idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b5f9d67	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7b8a19	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b89d503	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b8d8ad3	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b912e8f	regmap_get_raw_write_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b92d16e	pinctrl_gpio_set_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b98234d	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9ae61a	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba2bb2b	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ba6163f	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bbcddba	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc82ae8	usb_amd_pt_check_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcd0cd4	dev_pm_domain_attach_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bde79bc	xive_tima_os
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c0369f9	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c1eebbc	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c23c94d	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c24d31d	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c267729	pinctrl_select_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2ac273	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c34a52c	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c39bbda	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c4f13e3	nvdimm_clear_poison
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c5b630d	__xive_vm_h_ipoll
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c803020	usb_phy_roothub_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca7f26a	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca9ea0f	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cb5a54e	devm_mbox_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cbcd5b7	pm_generic_restore_early
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cc4f70a	register_pm_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce26842	ata_cable_ignore
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ce6f9f0	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cebaf3d	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf286b4	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cf37c44	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9cfe5de5	serial8250_modem_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d10be27	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1cbc1c	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d1cd6ce	regulator_get_error_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d324e49	cec_register_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d6d0e22	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d77144b	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d8a4568	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dad4fc6	iommu_tce_table_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db1518f	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db2292d	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x9db64edd	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc530a3	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dc7c048	of_gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dd96534	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0x9de62a16	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dfdd621	usb_autopm_put_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e097d0b	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e17acc5	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e213baa	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2732aa	of_pci_dma_range_parser_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2ec382	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e2fe7d3	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e30a0cf	regulator_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e38081a	devfreq_event_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e538cef	regmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e605d4d	stmpe_block_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e7619f6	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb23c1e	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb328ec	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ebc04db	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec1f364	kvmppc_subcore_enter_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eed3ddb	cpuidle_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef1744f	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef58bc5	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ef9d485	mpc8xxx_spi_rx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f028347	regulator_is_supported_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f04b9d5	regulator_map_voltage_pickable_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f302564	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f307b26	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3d9a00	regulator_set_current_limit_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f3e2f36	kvmppc_check_need_tlb_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f40a2bf	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f61b3cf	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6e079c	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f74c22f	dev_pm_opp_get_max_transition_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f857883	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fa2e991	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fc9480f	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe899b7	get_cpu_idle_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fec780f	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa00e73fa	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01a8d9b	nd_cmd_bus_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa01fbb6b	cec_notifier_set_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa024e59e	eeh_add_sysfs_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0261d2a	tps80031_ext_power_req_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xa028db1e	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa02e7eb4	of_get_dma_window
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06f135f	cpuidle_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0786e8d	usb_check_bulk_endpoints
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07a31a3	adp5520_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xa07ffe10	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xa08b8f8a	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa098d4db	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0aa01c9	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0ba50cc	devm_hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0bd396c	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0c7a46f	regulator_map_voltage_ascend
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f597cb	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0f7c447	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1288848	__devm_regmap_init_spi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1338370	regulator_set_voltage_time_sel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1443f40	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1456292	spi_mem_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa15fc380	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa167c1e4	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xa16f9003	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa177e48e	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17b09b1	of_phy_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1811ae7	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xa188e4ec	nd_region_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1a25c96	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1b8e804	cpufreq_dbs_governor_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c7bfc6	of_modalias_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1cb7a2f	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1d8004a	videomode_from_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1dd6d28	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2376921	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23e90cf	bgpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa253c156	ata_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2547b40	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa270f5d2	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2839c96	syscon_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2972768	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa298272a	pcibios_unmap_io_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xa298af95	xive_native_get_queue_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a31bb6	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2aee1a1	regmap_noinc_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2bcc288	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2cd6e9c	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31b17cd	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3224af3	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32614f0	ata_cable_80wire
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32728cd	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xa32fefd2	pm_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa334e9c8	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa335d131	rdev_get_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33d91a8	btree_get_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34139c0	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa34430b8	spi_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3576169	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3637f8e	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa36f50fb	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3704b30	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa37ca657	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa395dd18	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a04602	btree_geo64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3a2d9af	walk_system_ram_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3af5f55	cec_notifier_conn_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b56555	hpte_page_sizes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3c52ea8	mm_iommu_newdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3edfdd7	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ef6611	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fbc25c	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4031b7f	sfp_parse_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xa40cde10	cpufreq_register_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41c8763	wm5102_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41d2e91	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa420426a	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xa42f79a4	__tracepoint_vfio_pci_nvgpu_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44790c1	of_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44ce93b	ata_sff_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44e184a	pcibios_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa47b3b02	of_reserved_mem_device_init_by_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa49ae918	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4c21bec	usb_alloc_streams
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d22181	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e111d5	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f1fd38	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4f2cb72	__xive_vm_h_xirr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa511fcd5	sdio_retune_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa52efbf1	sdio_readsb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa54575bc	of_irq_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa55d7464	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xa58c70e6	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5a2a962	pinctrl_find_and_add_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5b00659	ppc_proc_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c49cde	iommu_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c56aa8	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c88cbd	ata_slave_link_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5cba24d	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d7c388	pstore_type_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5d8fb2d	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5e06502	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5ea2cf6	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5f39a3e	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60839bf	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xa60dbab4	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6100821	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa610db36	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6163046	vga_default_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6255225	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0xa64b7cef	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xa65ff8da	__xive_vm_h_ipi
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66cbd22	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa671bcf0	mpc8xxx_spi_rx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xa675158c	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa68f18e6	iommu_take_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6a81b45	unregister_cxl_calls
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ae1b7f	usb_reset_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6ae7bf8	usb_enable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b06f65	ata_sff_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6b21ef2	dpm_suspend_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6bff93e	of_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6cf5680	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d1e06f	splpar_spin_yield
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e48d41	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f7ddd0	phy_save_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6fdef18	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709e4f0	rio_get_comptag
+EXPORT_SYMBOL_GPL	 vmlinux 0xa70f101a	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xa719b325	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7293b8a	spi_slave_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xa73fc3e4	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7562a79	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa760fbbc	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa76193ba	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xa763fed7	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa765097c	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0xa774e519	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xa78313e5	phy_speed_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xa79322ec	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b626fc	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7b92ae3	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bbd381	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7db4f5e	extcon_get_extcon_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7ffd4d9	of_usb_update_otg_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8034596	dev_pm_domain_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa80cc3b7	of_device_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xa81b9a74	devm_extcon_dev_allocate
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82b0a21	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa835fffc	led_classdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa836b0c7	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa853b593	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa85f37e6	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa860a30e	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86bad1a	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86d9298	ata_platform_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xa899f363	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa89e5733	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8ae8101	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bc1596	led_colors
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8d2d09e	pm_wakeup_dev_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8eff52c	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa90c10d4	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xa918d4c9	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa91a2d07	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9204ab5	regulator_bulk_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa92162eb	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xa928fa5c	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa93b0e63	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xa951d492	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xa955b489	pinctrl_generic_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa956de83	usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0xa979eec9	regmap_register_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9957aa7	usb_control_msg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99bc2ef	i2c_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99e2f97	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99f28f8	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a0ee26	pnv_pci_get_device_tree
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a37bad	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a7dbfa	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9bdd5c1	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ce341e	usb_show_dynids
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9de73a3	usb_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e77f26	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ebbfec	ata_msleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa089206	devm_regulator_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1758c5	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1c90e2	regulator_allow_bypass
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa1d9c73	spi_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2862b9	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa31c6fa	usb_find_alt_setting
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa46bc5b	phy_restore_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa471c2a	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6dca44	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa88742b	devfreq_get_devfreq_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa488b4	cpuidle_get_cpu_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaab0609c	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaf3709e	soc_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab27cb22	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2b6ddf	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4a7bed	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab59d5ff	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6218e5	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xab64f773	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab7c4dc6	devm_regulator_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xab82fa8e	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xab830de0	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xab85525a	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xab98930b	usb_ifnum_to_if
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaba8bf3f	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xabaf2ba1	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabdc2852	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0624b4	vfio_spapr_iommu_eeh_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xac06e908	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xac134928	of_get_display_timing
+EXPORT_SYMBOL_GPL	 vmlinux 0xac19a12a	da9052_adc_read_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1e6360	spi_new_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xac32d9d4	of_i2c_get_board_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xac52b11f	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5cdd35	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0xac7d0bdc	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb49c58	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xacc9efad	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xacca22e1	gov_attr_set_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xace4eabd	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xacea54b6	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xacfe997e	powerpc_firmware_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xad092196	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xad1296e8	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xad12bb7a	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xad35117d	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xad40fda2	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xad48fc0f	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xad5e1d51	regulator_list_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8abab6	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xad90ceb9	ata_host_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xada20bb7	dev_pm_opp_of_remove_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadc55f1f	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae011d8c	rio_pw_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0e5eb9	pinmux_generic_get_function_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1cfb31	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae332a06	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3e7e1f	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0xae42c859	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL	 vmlinux 0xae442152	dawr_force_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4578d7	mpc8xxx_spi_tx_buf_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xae47fff7	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4953e5	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xae4b7fb6	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xae5fcfae	genpd_dev_pm_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xae6855f5	spi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae715fc4	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xae738124	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae796f48	regulator_set_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c8971	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL	 vmlinux 0xae852529	mctrl_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xae85570a	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0xae87cad0	memstart_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8b882c	reset_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaea15760	pinctrl_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xaeb73b95	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xaebf9615	sdio_signal_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec40019	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec9921f	hash_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed543c8	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee13f2f	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0xaee236c6	cec_notifier_conn_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf076aec	nd_fletcher64
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1e10da	opal_int_set_mfrr
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf26a969	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2bce74	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf4014ff	usb_amd_quirk_pll_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf49eac7	__regmap_init_i2c
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf73f030	hwmon_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf76c979	nvdimm_has_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf793668	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf7a6514	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf86bd31	pinctrl_remove_gpio_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf975bc8	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xafaa4ccf	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0xafbe6c9e	kvmppc_hwrng_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xafddd545	ata_id_c_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xaff87ef4	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0036e12	devm_spi_mem_dirmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb02e08f2	vmalloc_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb046a9c4	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xb063af49	xas_split_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb06634ec	opal_xscom_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08b097d	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08d9e41	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb08dfea8	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0add7fb	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0bd14de	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d1656c	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d61674	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0e55be8	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0eb8075	spi_split_transfers_maxsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0ee7183	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0f00189	ata_pci_device_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1104051	ata_dev_set_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1168569	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1233cf1	edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12567ab	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xb12f1b68	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14614cb	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb152817d	led_trigger_blink
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16721ac	sata_pmp_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb16c2bc1	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb171fc27	devm_phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18b4b59	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0xb191304a	spi_mem_adjust_op_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xb192cc81	spi_mem_dirmap_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1b05317	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bed25d	dpm_resume_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1c73763	dev_pm_opp_set_clkname
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1ce2e48	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d974e8	rio_register_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d9f10b	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e2feb2	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1fdf67f	of_pci_parse_bus_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb210790d	register_cxl_calls
+EXPORT_SYMBOL_GPL	 vmlinux 0xb216e1cb	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2210d64	reset_control_deassert
+EXPORT_SYMBOL_GPL	 vmlinux 0xb23bd752	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb24687c5	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2538f39	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27279c0	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2754759	dev_pm_opp_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27a1fcc	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2928a06	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb29533ee	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a1c8bf	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2a653fc	confirm_error_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ba3de1	mpic_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2bfc425	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2e764e8	suspend_valid_only_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ed7cd4	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2fbec13	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30fa5f0	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xb31e4edd	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xb322e08d	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33aa4da	serial8250_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xb35542f5	regmap_field_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb379a044	dev_pm_opp_get_max_volt_latency
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37a9f1d	dev_pm_opp_set_sharing_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3820e9f	pwm_adjust_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3919e42	dev_pm_opp_attach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39aca9f	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb39ccd37	wm8350_device_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3af0760	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3b8a376	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c1f8c8	regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c32212	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3c5716b	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3cf1576	eeh_pe_state_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3d3b983	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0xb40382bc	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41a2557	pwm_get_chip_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb41c42c4	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xb42a3a0f	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44ee4aa	pnv_ocxl_free_xive_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb45935ef	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb488588e	tb_to_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb490f6c9	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4af9cfa	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4bf9cf3	pinmux_generic_add_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d54691	of_property_read_u32_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d76eef	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4d8941a	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e33dc6	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4e3e0a3	ata_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4ea7cf7	kgdb_connected
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4f380d1	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4fab1c0	pinconf_generic_dt_node_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xb501b2df	nd_cmd_dimm_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb50d5658	gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb51fbd64	edac_op_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5216113	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5224601	nd_region_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52b40d8	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5309432	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5318df8	cec_notifier_parse_hdmi_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5421b83	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xb551011e	sata_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb55cd4e5	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57024d9	of_phandle_iterator_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb57cc6c6	i2c_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58653b7	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59f3b4f	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5a8a0cf	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5aa10af	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5ac8d48	dev_pm_set_dedicated_wake_irq_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b7a9a3	rtc_set_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b84128	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5b85ad0	power_supply_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5c9ab39	regmap_attach_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d474d4	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5d66f00	devm_mbox_controller_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5fb3a7c	cs47l24_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6002ffc	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb60b5707	of_i8042_aux_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb619f917	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6305919	ata_pci_remove_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6393fc5	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xb63d48a7	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb640aa79	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb643c250	xics_wake_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6490b11	pnv_power9_force_smt4_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xb64f9964	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb65c37ad	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xb66d599e	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67143cd	cec_queue_pin_cec_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6787346	sfp_unregister_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6888188	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb68cd10a	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69bed68	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69c3914	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb69d8616	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ce752f	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d0ab81	of_property_read_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6d5f669	extcon_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6da710b	wm8350_gpio_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ec5002	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6ee459d	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6f5f14e	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6fe2a26	nd_blk_memremap_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71198cd	serial8250_do_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb71616a5	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb718c2ad	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xb720e3ae	sfp_add_phy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73713d7	nvmem_add_cell_lookups
+EXPORT_SYMBOL_GPL	 vmlinux 0xb739e818	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7410550	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7481715	pci_hp_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0xb74f3073	nd_device_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xb75be686	of_genpd_add_provider_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xb763c0d8	usb_of_get_companion_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb779a754	cec_queue_pin_hpd_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb78cc0d3	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7ca9768	cpuidle_get_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d0e0d4	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d17fa0	pgtable_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7da792f	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7eab3b9	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7efa2d1	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb818f8b0	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xb81f89df	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82c3816	devfreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb82ea6a7	thermal_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8319fc2	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xb831c306	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8353277	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb838751a	phy_speed_down
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8459316	phy_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb847585f	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8705115	edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8723c4c	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xb87e5518	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8897fcd	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88cd1b7	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88f854d	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb894b36d	dev_pm_set_wake_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b2e851	of_devfreq_cooling_register_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8b6c91b	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8d2ab0f	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ea4c1c	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9016b13	policy_has_boost_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb909bb78	cec_s_log_addrs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb910db70	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xb91437e3	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xb923fa45	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb924c6f4	led_classdev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93301e2	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xb964aa37	pcibios_free_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xb968151a	usb_alloc_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96b1325	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb96c4451	serial8250_do_startup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb976b0c5	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb97bb39f	of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xb982d002	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9879287	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9883ece	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xb99df747	xive_native_has_queue_state_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9abd43b	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9acc559	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b9df41	usb_amd_dev_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9bba8c4	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d95935	devm_led_trigger_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9df36f2	power_supply_get_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9e0daf6	regulator_is_equal
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9f9fbed	nvmem_cell_read_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0cf2d8	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xba158769	rtas_cancel_event_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0xba23affd	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xba27815b	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xba2b7f64	cpufreq_generic_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4efced	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xba7342da	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xba86599a	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaae5220	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaaf2255	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9757b	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab9a9f0	maxim_charger_currents
+EXPORT_SYMBOL_GPL	 vmlinux 0xbac8be07	tty_find_polling_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaccac4c	kvmppc_clear_ref_hpte
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf75895	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf8e14b	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafbdc0a	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb168191	to_nvdimm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb2da180	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4a164a	dev_pm_opp_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb4fc142	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb517fc7	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5f44a2	usb_phy_set_charger_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb601bd3	nvdimm_bus_add_badrange
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6c238e	fixed_phy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6f025a	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb916356	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb98fd3a	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9e9539	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb9ed0e9	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xbba62474	ata_scsi_simulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbaa1726	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbbfd74b	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbe18f19	get_governor_parent_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc26c86e	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4da671	sb800_prefetch
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc52e2ea	led_trigger_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7380ec	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7dc47a	regulator_suspend_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc81f179	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc84523e	xhci_gen_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc954220	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc9e5cfa	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcaa4219	devm_pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb0f64e	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb99e7f	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc1623e	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc57299	__pm_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf58ff0	of_genpd_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd027363	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0674b3	cpufreq_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd0ca58c	rio_unmap_outb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd127f2c	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd14998a	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd2d8f02	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3bfbe5	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3d3fd1	pnv_ocxl_spa_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3df362	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5b62bd	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd83e638	devfreq_event_get_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd854564	sata_scr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda6425d	xive_native_alloc_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdaf20f9	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb032ab	of_msi_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb0fe27	regmap_fields_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdb8a604	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdbf467a	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdca32e8	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdcc9663	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde1d03d	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdfb7d16	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe023055	mctrl_gpio_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe202ebb	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4a2962	rio_mport_get_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe4de675	cec_get_edid_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe547a06	spi_finalize_current_transfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6c90b4	ata_host_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe83041a	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe8fd858	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe93adf1	usb_hub_claim_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe96dfd8	of_reconfig_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe9fb267	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea00214	pci_prg_resp_pasid_required
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea63e77	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeb6744f	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeb98476	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0xbec35d8f	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbed33d92	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef279a5	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf03430b	store_sampling_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf173235	of_dma_router_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf177819	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf1cc04b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf281559	rio_mport_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf368da6	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf39bf09	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf44001c	of_irq_parse_and_map_pci
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6b9e79	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6d7b23	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf763458	dpm_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf911ea8	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf99159f	devm_power_supply_register_no_ws
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9a79bd	pinmux_generic_get_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf9e9961	dev_pm_qos_hide_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbc5434	pciserial_resume_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbca9fa	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc9d9d0	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd2e142	serial8250_em485_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfd4f9a4	iommu_flush_tce
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfdeb1b9	usb_phy_roothub_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00ac5bf	usb_pipe_type_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xc01b7d82	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0307f74	memremap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0322673	eeh_pe_set_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xc036b8cb	i2c_client_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc049914f	ohci_hub_status_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04e9281	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc04f893a	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc058195c	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xc065a455	cpu_core_index_of_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xc07d9e41	mm_iommu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08b74f4	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc09945a8	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0aadabd	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0ba7335	scsi_autopm_get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c3cd83	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0c41073	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d55776	nd_blk_region_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0d813be	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dcb59e	edac_layer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0df8027	of_dma_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f6039c	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0febea1	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0xc107cc41	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1080872	regulator_set_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10c8cd5	pm_generic_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc14ad3a1	extcon_get_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1542304	rio_route_add_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15a0ad0	regmap_bulk_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xc15fef02	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc162d6b0	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1704284	kgdb_register_io_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0xc19b8cd0	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a18017	regulator_list_voltage_linear_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1a79844	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1c78613	ata_sff_thaw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1f37de8	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1fb1253	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc204cd22	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20744fe	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xc20dd5a5	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22983ea	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2318add	da9052_regmap_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2374c37	rio_route_get_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23d14c6	devm_nvdimm_memremap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc23fdd32	dma_get_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2484acc	devm_nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc257e245	dev_pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc289e46d	cpufreq_generic_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc299c472	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a4acc3	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2aa338c	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c275ff	opal_poll_events
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c4fd3f	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2cc212b	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2ceef9e	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2df5234	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xc309b969	sata_scr_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3188689	soc_device_match
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xc32b9e4b	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc343e77d	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3452e0d	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0xc34a0976	regmap_noinc_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3537acf	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc353aecf	ohci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc376cc83	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3926fb8	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3944258	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3967179	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3b95508	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c17b5d	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c838eb	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d06bda	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3d9e151	devfreq_event_add_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3dadfe2	of_address_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3e8f2d0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3eef8f1	regmap_check_range_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3f4ccef	pinctrl_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3fc9a32	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0xc412fdf3	radix__flush_all_lpid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4228931	led_set_brightness_nopm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL	 vmlinux 0xc448be81	usb_wakeup_enabled_descendants
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44b65ec	serial8250_rx_dma_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc44eae24	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0xc454fc7b	twl_get_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46449b5	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc467c5d8	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc469b9b5	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xc46b5e00	btree_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471c67a	twl4030_audio_disable_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc47e68f5	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4820156	dw8250_setup_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48b7ccf	ata_mode_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a610d6	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a72936	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a8624d	ata_qc_get_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4bdb923	ehci_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4ca49df	ata_link_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4db48cd	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e0d77c	phy_pm_runtime_get_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4e7641b	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f69a77	da903x_reads
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5163ccc	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xc518b31a	hash_page_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc524e9fa	rio_add_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54478d1	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc54d52f2	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xc565a0a0	pm_genpd_remove_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5860492	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc59cb545	nvdimm_region_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a0987a	of_device_modalias
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a5c678	uart_parse_earlycon
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5ac23a7	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5c5457e	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e0a58e	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e3ada0	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e3d65f	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5f6d405	serial8250_rx_chars
+EXPORT_SYMBOL_GPL	 vmlinux 0xc606cd3c	boot_cpuid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc620a570	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63754dc	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0xc645400a	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6527891	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65f9515	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc67222d7	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc684f8c5	phy_configure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68aa252	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68d880b	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69a0da6	devm_led_classdev_register_ext
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d6542f	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7080e20	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xc70f6699	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71187c9	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71fe3c6	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xc723462a	mbox_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7325290	ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7343af9	edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7406fe4	devm_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc74170f2	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78a20a0	usb_phy_roothub_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc790cae3	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xc795ad6d	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a7549e	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7af53cc	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7af6cff	edac_mc_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d7e876	regulator_set_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7dbfffb	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e376d4	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fce315	eeh_dev_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xc81b48ce	dev_pm_opp_put_prop_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8281da6	pinconf_generic_dt_subnode_to_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82b85a9	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84e928f	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8594d3d	reset_control_acquire
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89fdce5	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b85f45	dma_request_slave_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b8723b	arizona_free_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8b88d9b	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c56263	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8c5f8f2	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d410f5	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8dbc2df	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f73450	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xc919dae0	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91dc3bc	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91e9bbc	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91f6fbb	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9301abc	of_pci_get_max_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9380cce	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0xc938a7e3	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93ee1e7	usb_phy_roothub_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94505de	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc94fa805	thermal_zone_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc953f75c	hwmon_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc957b688	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL	 vmlinux 0xc960c5c0	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9641b48	visitor32
+EXPORT_SYMBOL_GPL	 vmlinux 0xc981b718	ata_sff_port_intr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc98aaf54	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9928d2a	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc99f417d	mbox_request_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a3f71a	ata_sas_port_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9a8093d	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c022d7	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9c6a27a	xive_native_set_queue_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9fd3c2e	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xca05dcb4	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1b3dd6	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xca1cdb9a	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0xca30695f	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xca4b5c51	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xca570b50	extcon_set_property_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xca5f6949	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xca66605e	dev_pm_opp_get_opp_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xca6ab36d	devfreq_event_get_edev_by_phandle
+EXPORT_SYMBOL_GPL	 vmlinux 0xca705f72	rtc_class_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d7196	pinctrl_dev_get_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca8a2e35	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xca8d8714	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xca94bf41	btree_last
+EXPORT_SYMBOL_GPL	 vmlinux 0xca9e1a38	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaa304cd	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabc7259	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcac28a32	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb15eee9	sdhci_pci_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb194a17	kvmppc_do_h_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb26b423	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb2bfe2b	nvmem_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb418b85	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb482c74	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb64752f	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb89bbfa	pm_runtime_allow
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbb48422	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf366d8	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0f1009	power_supply_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc18a3cd	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2c6ce6	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2d5d29	devm_hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc308108	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc480570	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc49e311	spi_res_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc564e7b	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc5fcd2d	devfreq_event_reset_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc668d29	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc74c13f	__rio_local_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc90e3d7	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9268fc	hwpoison_filter_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc96f2e2	dev_pm_opp_is_turbo
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc97ab34	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb21f95	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbd64cd	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd86806	ata_id_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf52bc9	sfp_upstream_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xccfcf3e3	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd1e9836	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd27a487	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd5a67c3	rio_mport_get_physefb
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd72174c	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd80c6b7	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8c96fb	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd95df71	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda5ee5f	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb56a65	remove_phb_dynamic
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdbba17e	rtc_read_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdd1a841	xive_tima
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdedce43	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xce109274	dev_pm_opp_get_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xce195d00	_copy_to_iter_mcsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1b8546	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xce24565c	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xce250286	regcache_cache_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xce3ba696	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4d879c	usb_alloc_coherent
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6559a8	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xce66af08	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6a90ac	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7a2cf4	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xce898c06	spi_controller_dma_map_mem_op_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb1f126	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb4b99c	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb6ab68	sec_irq_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xceb765ca	dma_release_channel
+EXPORT_SYMBOL_GPL	 vmlinux 0xcebcadd9	ata_link_online
+EXPORT_SYMBOL_GPL	 vmlinux 0xcec1af42	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xced41fc9	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0xced9b502	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee1641c	kgdb_unregister_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xcee88e7a	of_overlay_fdt_apply
+EXPORT_SYMBOL_GPL	 vmlinux 0xceec563f	usb_hcd_start_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xcefe21d1	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf029433	thermal_of_cooling_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0792b3	led_trigger_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf0bd81a	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf15423e	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf194756	usb_disable_lpm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf1e6a25	pinmux_generic_remove_function
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf48684a	regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5ee11b	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf6feb0c	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf8937c5	usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf95b719	cec_s_phys_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9a5d61	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf9af5a0	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfbfe84c	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfca584e	cpufreq_disable_fast_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfcc715d	cec_delete_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd0786f	power_supply_get_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe4b366	max8997_read_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfe9e11e	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfef1cf2	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00d9fc4	of_map_rid
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0101fe9	ata_sff_exec_command
+EXPORT_SYMBOL_GPL	 vmlinux 0xd011046d	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd031585d	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0316a5d	ohci_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd04e7d5f	extcon_set_property
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0881bba	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0933c2b	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xd09a0d24	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a56256	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0a96d92	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0bea361	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0dd1e20	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0eded10	ata_sg_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f11eac	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f2be61	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f5aa80	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f6295f	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0fae503	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xd109995f	dev_pm_opp_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd119a446	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1262886	rtas_data_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13c94de	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13e5740	devfreq_event_set_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd14ec035	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1551686	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15e7376	rio_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd16603dc	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1696942	regcache_sync_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1781114	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd17b4847	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd18f0f23	pinctrl_get_group_pins
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1910240	edac_mc_handle_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1961556	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1a645ee	wm8997_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1af0092	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1bb73b9	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1c4f5c7	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1e25b08	pm_generic_freeze_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2008737	sdio_disable_func
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20d4097	reset_control_get_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b7bf6	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2213616	mmc_get_ext_csd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd236b10e	cec_queue_pin_5v_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd23fa4d7	serial8250_rpm_put_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd25887b1	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2689c0d	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26ea1dd	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd270fe0f	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2a07a5c	regmap_get_val_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2abe118	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b10a05	ata_timing_find_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2bf447b	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d04c63	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d2a9ee	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d475db	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2d567d9	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e4e23c	serial8250_rpm_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e9928a	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2f07e99	cpufreq_cpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd302a109	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3054094	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0xd314f5d0	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3169b06	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xd32d52b8	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd33a770b	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd341c831	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3493022	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd36760ef	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd377b2d5	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3860808	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a5e9f8	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3afc991	pnv_ocxl_get_xsl_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3b22dbd	vas_init_rx_win_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3bd281f	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c42ac7	devfreq_event_enable_edev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3c880d6	rio_alloc_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40c1e3e	devm_thermal_zone_of_sensor_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41d53cb	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4282976	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xd42ef75b	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4328dfd	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd44a5eac	kgdb_register_nmi_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xd45fde2e	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4682ee2	ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4816832	pwm_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4857fff	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xd487c09b	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49503f9	pinconf_generic_dump_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd49bc9b1	thermal_zone_set_trips
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b1ba52	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b2d40b	nvdimm_in_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b56d31	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b76b91	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c8ed8e	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4d03b39	phy_pm_runtime_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4ed1ef2	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4f29f83	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fc90b4	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4fdbcad	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd544b4d3	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xd553ca91	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5601154	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xd59230aa	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5afa49b	btree_visitor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60002b8	cpufreq_cooling_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd607360a	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd609144e	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60bca52	ata_sff_tf_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xd60ea619	mbox_chan_received_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd619b409	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6292882	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62b92a4	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xd634cb5f	scsi_autopm_put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xd638ac24	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd63b66e4	kvmppc_do_h_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6471786	devm_request_free_mem_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd66cbd55	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67b52bc	regulator_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd698dd2f	dev_attr_em_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69ae666	i2c_dw_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69bc8df	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a0ac9b	dev_pm_opp_get_suspend_opp_freq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6a43677	opal_async_release_token
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6bf625a	btree_init_mempool
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6e6f469	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f606bb	ata_sas_port_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f79e26	of_detach_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6f97476	dev_pm_opp_get_opp_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xd713038e	usb_deregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71bb484	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7200fbb	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7494e58	usb_get_maximum_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd75b20aa	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd794494b	ata_host_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7b0f393	pci_pasid_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ca05d9	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7cea889	edac_mod_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f2471d	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f3aeaf	mmc_app_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xd80c93dc	pm_genpd_syscore_poweron
+EXPORT_SYMBOL_GPL	 vmlinux 0xd810c788	of_get_fb_videomode
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81e9850	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xd825cb91	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xd831b81a	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd862943d	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8680e27	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd869287d	regulator_map_voltage_linear
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87b8e18	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xd87fc0a0	usb_amd_prefetch_quirk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8812039	ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL	 vmlinux 0xd88e6e0c	cec_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8a5b9fb	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8aad4b1	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b1fe02	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8bbb580	__xive_vm_h_cppr
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8dd3ab0	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e51e78	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9066be6	_copy_from_iter_flushcache
+EXPORT_SYMBOL_GPL	 vmlinux 0xd90c6392	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91648a1	hwspin_lock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd91a9677	__regmap_init_mmio_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92e86a8	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xd92e9141	spi_finalize_current_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xd94245c9	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd951bcdb	usb_set_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9580a91	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xd95f29a5	regulator_bulk_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9644cf8	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd972573a	usb_hcd_map_urb_for_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xd97a7f42	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd97dc8c2	pinctrl_register_and_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9940708	find_mci_by_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xd99fd0a4	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9a2d51f	usb_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9c66abd	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9de5eb1	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f5387d	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9f9709b	tc3589x_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ff2172	ezx_pcap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xda082bf9	regcache_drop_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xda0ace66	eeh_pe_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1c85a7	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0xda1f8ca4	to_nvdimm_bus_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xda261180	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xda2d4aa0	devm_of_platform_depopulate
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3d2ab7	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xda447f96	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xda49ab8e	pm_schedule_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8003df	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0xda8141b3	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xda9b1911	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa65286	cpufreq_generic_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa81597	pwm_apply_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaa85b39	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac3f8b4	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac49004	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad0afd6	phy_modify_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdad8df10	gov_attr_set_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdadf20d6	phy_validate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdae5bbef	usb_reset_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf5c16e	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2c6890	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb329ebd	devm_nvmem_device_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3622eb	cec_unregister_adapter
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3794ce	emulate_vsx_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3f25b5	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb512bb0	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb5486b6	device_wakeup_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb790b80	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb7aff2d	max8997_write_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb98f325	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba900ad	ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba99f51	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb43d0c	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbba1bd1	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbc7b2aa	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbd34007	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdcfc10	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdd0ab5	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe264ca	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbe9beaa	regulator_get_linear_step
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbfdf2aa	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc0b2b5b	opal_flash_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc34a927	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc447fd2	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc45a5db	edac_stop_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc61aadc	irq_gc_mask_clr_bit
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc621cac	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6596fa	irq_set_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc754c2f	rtc_set_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc825d6c	usb_amd_quirk_pll_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc97af2e	syscore_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc2ae8d	regmap_multi_reg_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc7007b	nvmem_cell_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcd7cc98	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce0d51d	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcf03b76	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd174a50	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd217419	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd218db5	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2e3a58	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd93b250	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd96fc70	devm_hwspin_lock_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xddb6feb0	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbe1419	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddc46da1	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd1bc4f	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd80b70	regulator_set_active_discharge_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdde6acee	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL	 vmlinux 0xde0bf911	phy_led_triggers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xde36ffd5	to_of_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xde495b27	rio_del_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xde69fab2	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde75ed73	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xde7ff9a7	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xde8469af	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea41a7f	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea4635d	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeacae24	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdecb2ad3	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xdedb8ef5	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeef104f	ata_link_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef1b73a	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdef62ed1	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1a69d7	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1e9cfa	btree_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2039fc	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf36b8f8	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf488d46	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf61aa65	of_reset_control_array_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf71f3c1	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf75d201	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf8abf07	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfa87b52	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfb7c9b8	rio_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfc3631e	mpc8xxx_spi_tx_buf_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfcb6c90	mctrl_gpio_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfd24400	sdio_set_block_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xdff568cb	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe00b3348	ata_scsi_port_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe01b0da0	rio_del_mport_pw_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0365b34	rio_add_net
+EXPORT_SYMBOL_GPL	 vmlinux 0xe037df89	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe04f63c3	devm_usb_get_phy_by_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e419f	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe061283c	memunmap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xe068c1f3	nvmem_device_cell_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe082d69f	dev_pm_domain_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe089cfcc	agp_memory_reserved
+EXPORT_SYMBOL_GPL	 vmlinux 0xe095f1e7	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a22305	cec_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0bb7c90	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0da4b28	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e04692	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e33a56	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0fa904a	rio_release_dma
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0fd0ea5	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe108d302	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe121d94b	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe12bba60	pm_genpd_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe130c850	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe132b174	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1433612	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe157ed8f	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xe161b07b	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe169e614	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe174e9a4	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe17c7f8f	eeh_add_device_tree_early
+EXPORT_SYMBOL_GPL	 vmlinux 0xe196d623	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1a8f319	power_supply_powers
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bd6c99	rio_init_mports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c08ec9	vas_init_tx_win_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c14123	devm_phy_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1c23a17	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ccc0b1	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e7e0ff	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e961eb	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1e9d01e	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1ea1f20	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1f83ac2	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20c633b	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2108845	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21a2b86	pnv_ocxl_get_tl_cap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe223d99b	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24155b6	od_register_powersave_bias_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24e5861	cec_s_conn_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24f7f26	phy_power_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xe27ec5ec	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe283daf3	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe283f425	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xe28b759b	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29cfa8a	usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe29f57e5	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a0a2ab	regmap_field_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b5c223	devm_thermal_zone_of_sensor_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c2e124	phy_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2c79dc1	tps6586x_get_version
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2ce2b4d	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d40df0	spi_mem_dirmap_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e44381	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2eb642a	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fa4c54	pinctrl_parse_index_with_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe30e580e	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe321996f	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32734ed	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0xe32ebb28	pinctrl_lookup_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe33aadab	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35955cd	ata_std_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35ab8d0	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe367495a	regulator_suspend_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3691b71	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe39d0794	usb_phy_roothub_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a104da	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c3dc4c	get_hwpoison_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c51b88	power_supply_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3c76144	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3cdc5f7	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d5471d	of_devfreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d79399	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ecee5b	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3fe48f2	__rtc_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4197ae8	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xe42011d4	__devm_spi_alloc_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe43b41e4	spi_controller_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4423ac7	dev_pm_qos_add_ancestor_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4428d3d	ata_cable_sata
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4438772	lochnagar_update_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xe44a7301	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xe453d5c9	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xe45e5806	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe46740ce	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xe474ebaf	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47a9f92	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47ef78c	usb_match_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48364db	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4acbeb7	regulator_get_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b9cc7e	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4bcf64c	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4c2c66c	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4cc7624	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4ce26b5	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e1f719	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e8d873	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4fe7d68	regulator_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5022d11	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe503fb67	__usb_create_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50b6462	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xe510eec7	regulator_set_pull_down_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe52194f7	ata_sas_tport_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5231028	stmpe_set_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5262c17	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe530e727	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5816ba1	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe59002e9	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b5f306	edac_mc_del_mc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5c04dce	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5ec503b	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60632a9	edac_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6179346	usb_anchor_urb
+EXPORT_SYMBOL_GPL	 vmlinux 0xe61c4b96	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xe627eb6b	pinmux_generic_get_function_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe635e664	usb_get_from_anchor
+EXPORT_SYMBOL_GPL	 vmlinux 0xe63d71bb	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe645e3d5	regulator_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xe658516d	ata_host_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0xe65c7624	of_property_read_string_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6658b50	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68166f1	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a13e7d	xive_native_configure_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a8f6c8	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6afb5c8	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b07d65	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e086af	pinctrl_generic_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e403f6	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7111b8b	rio_mport_read_config_16
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71fe38a	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7217983	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe724462f	wm5102_spi_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe737a3cf	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe75e9581	ata_sas_port_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7761b27	regulator_bulk_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77751e4	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe778e4d5	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77c0f4e	wm8997_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe77cb85b	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78800ad	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xe788bcb2	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78df36a	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe798269e	thermal_generate_netlink_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xe799e8f1	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79b9627	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79fc474	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b3bc8a	usb_add_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b780d1	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b8f9d0	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ba63e2	gpiochip_add_pin_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7c11c65	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d34db2	opal_async_wait_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d9f47c	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7eee3d5	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f0698e	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f18b3c	threads_per_subcore
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ff2e2e	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8050b12	regulator_enable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe80a1278	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe842fafb	usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84dbc28	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL	 vmlinux 0xe860bd74	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xe864603e	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86ec69f	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe87b8ab7	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe88f3bca	is_nvdimm_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8953698	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe89cee3b	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8ad6884	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b17f89	ata_std_sched_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8bba342	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8c52401	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8dc38f0	pnv_ocxl_map_xsl_regs
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e04a83	spi_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8e16787	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9053958	rio_mport_chk_dev_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xe909eee3	usb_anchor_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0xe90de808	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe91c0055	sdio_claim_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9279287	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0xe932cee1	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9346ba1	spi_replace_transfers
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93aff20	led_update_brightness
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe94f4785	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9506579	iommu_tce_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9513f7c	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0xe957bf9f	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9758271	of_property_read_variable_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xe992a06f	rtc_nvmem_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe99eba33	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b27820	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9b2b4b0	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9c211be	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ce229f	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d1b7cf	irq_to_pcap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e73ffe	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9ef15ef	edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f31052	devm_regulator_get_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f821fc	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xea017114	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xea0dba4b	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea19faf2	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0xea230558	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xea29e3c9	led_sysfs_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3a05f0	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xea3bcb44	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xea4e39ea	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0xea608464	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xea62f9df	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xea6e3228	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0xea71e2f4	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xea8daaa5	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xea99fc8f	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xea9c5b9c	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaa6711e	dev_pm_qos_hide_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac29596	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeac2980d	alarmtimer_get_rtcdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xead4694b	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xead486fd	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0xead54924	mctrl_gpio_to_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0xead8ecfe	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xeade4702	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadf029e	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xeadf72e1	tm_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae7236e	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xeaf9e3ee	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb091eb6	eeh_pe_mark_isolated
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb0bba92	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb1a4f29	opal_error_code
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb30b67e	reserve_pmc_hardware
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb38ebe6	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3c8d73	wm5110_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3fd180	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb437568	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb6f9e3e	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb78f053	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba51336	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0xeba5636b	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xebad98af	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xebb6693f	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbc7a18	dev_pm_opp_detach_genpd
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc9a09f	lock_system_sleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd4cc11	mctrl_gpio_enable_ms
+EXPORT_SYMBOL_GPL	 vmlinux 0xebde938b	dev_pm_qos_expose_latency_tolerance
+EXPORT_SYMBOL_GPL	 vmlinux 0xebdf8b5a	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe1059f	ata_timing_compute
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe263f2	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xebe48ba7	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xebed6812	of_genpd_add_subdomain
+EXPORT_SYMBOL_GPL	 vmlinux 0xebf1fe53	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xec03c2f4	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0a734c	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xec356c53	msr_check_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xec3dbfb8	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xec63d699	__tracepoint_vfio_pci_nvgpu_mmap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7109ba	reset_controller_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xec774acb	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7a4332	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xec7a9f38	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xec84bfb9	opal_leds_get_ind
+EXPORT_SYMBOL_GPL	 vmlinux 0xec850d86	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xec8d87cc	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xeca5d40d	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xecaefb6d	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb41313	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0xeccc7df4	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xece5c42b	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xecff438b	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xed08df5a	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xed15d47b	copro_calculate_slb
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2d101f	phy_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2eae2c	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL	 vmlinux 0xed302902	cec_received_msg_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3265f6	device_node_to_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xed3403dc	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xed95c4a8	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xed9ea0e7	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0xedcd03fd	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xee02589b	ata_sff_tf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xee0fb9e0	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1074b2	sdio_readw
+EXPORT_SYMBOL_GPL	 vmlinux 0xee14e44e	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0xee21eaf1	usb_hub_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xee244889	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3369f9	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee3ef067	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6b71c4	syscon_regmap_lookup_by_compatible
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7280ad	regmap_async_complete_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7c9dd1	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xee8a13b0	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeb1d590	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec07dd7	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedbba1b	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xeeddf2b9	usb_choose_configuration
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xef05e5a2	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xef070238	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xef0e49ad	pci_iomap_wc_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xef1beed2	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xef2e0d10	usb_bulk_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xef314ae1	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xef35e914	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xef38cf2e	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef489c56	pnv_ocxl_get_pasid_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xef55bd6c	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6d0376	opal_invalid_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7a3dda	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0xef7b910d	regulator_set_suspend_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xef895c93	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xef927621	of_dma_simple_xlate
+EXPORT_SYMBOL_GPL	 vmlinux 0xef9569ae	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb1334f	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc38f63	ata_dev_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcac4e5	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcb1f16	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xefcf8cfe	copro_flush_all_slbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd53003	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd8630f	of_cpufreq_cooling_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xefdbca65	pcibios_map_io_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xefde4a92	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xefeafcf1	edac_has_mcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xefee6835	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xeff5f1ce	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0132b70	ata_port_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xf028d5c7	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xf036b4f3	dev_pm_opp_find_freq_ceil_by_volt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf040a0e3	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0476454	regulator_bulk_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf04b57d9	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf05a4ead	hwspin_lock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf074b187	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf086dacc	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xf08f9362	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a9fe1f	edac_pci_handle_npe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b15982	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0xf108f776	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1159520	phy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf11acf40	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf12a657b	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf14a5b6a	mmc_cmdq_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf150bfb0	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xf15fb109	ata_do_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xf16f2590	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf174a622	regmap_multi_reg_write_bypassed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18177d6	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19b1b0d	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1a62b6f	of_i8042_kbd_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1d81cf7	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1f40e15	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1faf923	serial8250_set_defaults
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21dac50	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf226c102	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22a32fc	rio_unmap_inb_region
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22de445	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xf22f3d4d	xhci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xf23c4f7b	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2573e8b	wm8350_clear_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26675ab	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0xf26e6049	xhci_update_hub_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf278885a	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xf287ff36	of_hwspin_lock_get_id_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2932584	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2936b05	mbox_client_txdone
+EXPORT_SYMBOL_GPL	 vmlinux 0xf29cdf27	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2a1af59	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2abb314	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2afabdc	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2bc35d3	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c57bb3	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f08cee	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2f0b73a	xive_native_get_vp_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30a5502	cpufreq_enable_boost_support
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30b62d5	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30f0d07	of_prop_next_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31632e0	ezx_pcap_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf316db5d	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf319c605	vas_copy_crb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3304c01	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf331236f	btree_geo32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf344c201	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0xf34d915c	regulator_get_voltage_sel_pickable_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf35fd60a	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf383b7a8	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3867b60	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf38c2617	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3a9292d	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3b6e8dd	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3ba1469	of_dma_xlate_by_chan_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3c92b20	extcon_set_property_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3fa87c4	mmc_abort_tuning
+EXPORT_SYMBOL_GPL	 vmlinux 0xf41fc0ae	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf432090a	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4345464	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xf45b39c2	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0xf461f13e	usb_hcd_setup_local_mem
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4982149	set_thread_tidr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf49b2a4f	devm_regulator_unregister_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ac980c	extcon_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4c25c92	devm_regulator_bulk_register_supply_alias
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d02b90	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4d2e80a	of_genpd_del_provider
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e27a32	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4e3cfb8	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4f78498	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4ff5fd2	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5066c7a	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xf512b6fe	tps6586x_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf51d8097	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xf52cd9d0	pinctrl_utils_add_map_mux
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5358be9	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5387cca	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53c1a81	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf53d6531	pci_reset_pri
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54450e6	nd_blk_region_set_provider_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf553318d	cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf55439f4	devm_regulator_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf555548d	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5563045	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL	 vmlinux 0xf560b0f7	serial8250_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xf563e3bc	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xf56b282d	sdio_writesb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf57a0ceb	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58da205	regulator_sync_voltage
+EXPORT_SYMBOL_GPL	 vmlinux 0xf59bf81c	mmc_cmdq_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a12196	of_prop_next_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a41a64	usb_get_hcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a9123f	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5b433ed	pci_test_config_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5cd3243	pnv_ocxl_spa_remove_pe_from_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d55cf4	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d81235	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5de1e7d	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e2613f	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5e3405f	srp_rport_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fcadb4	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fe8e51	pci_add_device_node_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xf60f8b73	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xf61ffddb	of_irq_find_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62048c4	of_pci_range_parser_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf621dfb0	led_trigger_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xf635d978	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6395b7b	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf644e58e	eeh_pe_get_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf663ee2f	pcap_adc_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6858798	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a28554	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a961f1	ata_std_qc_defer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6b000b0	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6bc5dd5	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6d690db	wm8998_i2c_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f4299f	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7040653	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0xf704998f	sdio_retune_hold_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7137bb9	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7152cd5	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7183acd	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7469cfd	__pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf766b9cf	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xf772a4e6	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7789654	serial8250_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf78cda56	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a2687e	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7a4d8b1	ata_sff_port_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ba5365	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d5cb11	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7d71af6	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e0347e	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e3f372	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xf801fbd1	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81cbe6a	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf83a41d7	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8571518	arizona_pm_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xf85f3f85	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf879c1fb	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf87e386b	wakeup_source_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8828828	arizona_clk32k_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf88d7e25	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf893e885	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf895c307	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c77324	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d0bb1c	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8d21673	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8f3d42b	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9278298	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL	 vmlinux 0xf928c7a9	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93bce98	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xf93e5296	i2c_dw_read_comp_param
+EXPORT_SYMBOL_GPL	 vmlinux 0xf94856a2	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf955e9c5	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95a9871	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 vmlinux 0xf97471ef	opal_i2c_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9815866	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf99b3433	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c22a1b	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c7f91e	of_irq_to_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9e9685a	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9eee3f0	serial8250_do_get_mctrl
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f16e5d	pnv_pci_get_slot_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0412b8	of_thermal_get_ntrips
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa0dc414	dev_pm_qos_expose_latency_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa110a7c	of_hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa171edb	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1edb4d	i2c_dw_prepare_clk
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa22f838	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa6462e2	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa855e49	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa9ecbb4	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab53ed9	pinctrl_gpio_can_use_line
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab5d6dd	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfabb51a1	nvmem_device_cell_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfabb6aff	opal_flash_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad090c5	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaf0c059	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfafdc784	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0c8e1a	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb0f2935	sdio_readl
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb1dd23b	dev_coredumpsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb3e055e	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb48d622	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb64df53	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb666462	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb70f827	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb738290	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7f8928	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb878f83	hwspin_lock_get_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbdc95f	ehci_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbcd8660	tpm_tis_core_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbe65299	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbeb06bd	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbec581c	spi_get_device_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbf2d6df	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc0c059b	power_supply_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc201b66	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc234177	_kvmppc_save_tm_pr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc299723	dma_get_slave_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc31657e	tpm_tis_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc32413e	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc3f6d99	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc559b60	usb_get_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc619880	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc683b45	has_big_cores
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc776b83	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8793fa	uart_insert_char
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8b7839	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc937031	regulator_set_bypass_regmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc96d839	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca3a937	nvmem_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfca8b051	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcaf49b0	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb44a25	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc94b4b	hwspin_lock_request_specific
+EXPORT_SYMBOL_GPL	 vmlinux 0xfccf71c8	serial8250_do_shutdown
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcd3381c	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfa6b26	get_dev_pagemap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd098ad6	virtio_device_freeze
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd324b18	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd5bbeb3	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd71ba1c	power_supply_get_property_from_supplier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd9fef1b	nvmem_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfda220aa	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdab046c	sysfs_remove_device_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdab20a7	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdb9fdb5	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde11d4e	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde43519	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde78103	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde8d8d6	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf14a00	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1aa7cc	dev_pm_opp_get_level
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1e93eb	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2c0e0a	dev_pm_qos_hide_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2c3286	usb_anchor_resume_wakeups
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe2d36d1	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe334fa2	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe719ce1	cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe72af07	cxl_update_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe83fbf1	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe877fd5	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe8cd95f	thermal_zone_get_temp
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfea94243	ata_eh_thaw_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeaa1558	opal_async_wait_response_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeb4c783	pwm_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xfedb65f6	pm_relax
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1765c7	rtas_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xff1f82ab	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xff23157c	pinctrl_dev_get_drvdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xff393b32	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xff536033	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff7607c8	mpc8xxx_spi_tx_buf_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e5226	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xff8e9bd4	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xff962c66	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffd2f034	wm831x_reg_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xffeaea96	edac_device_del_device
+USB_STORAGE EXPORT_SYMBOL_GPL 0x07048c3c	usb_stor_suspend	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x070abd35	usb_stor_transparent_scsi_command	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2	usb_stor_sense_invalidCDB	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x21dc7018	usb_stor_Bulk_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x2c074427	usb_stor_adjust_quirks	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x304d2f2c	usb_stor_access_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x3498fbde	usb_stor_control_msg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x510ece6f	usb_stor_bulk_srb	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x6fe7dd4b	usb_stor_probe2	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x913da4de	usb_stor_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0x99d9df00	usb_stor_bulk_transfer_sg	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xa9c4b3f2	usb_stor_reset_resume	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xb63bacc8	usb_stor_CB_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xcae9548b	usb_stor_bulk_transfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd37e3e2b	usb_stor_CB_transport	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xd866c66c	usb_stor_set_xfer_buf	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xdb53be18	fill_inquiry_response	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xddbcbc2b	usb_stor_probe1	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xec622aa3	usb_stor_host_template_init	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf2933c92	usb_stor_Bulk_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf799e840	usb_stor_ctrl_transfer	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xf9380f5b	usb_stor_pre_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfa34626d	usb_stor_disconnect	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfa3946de	usb_stor_post_reset	drivers/usb/storage/usb-storage
+USB_STORAGE EXPORT_SYMBOL_GPL 0xfc9dbb11	usb_stor_clear_halt	drivers/usb/storage/usb-storage
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/ppc64el/generic.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/ppc64el/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/ppc64el/generic.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/ppc64el/generic.modules
@@ -0,0 +1,5187 @@
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6lowpan
+6pack
+8021q
+8139cp
+8139too
+8250_aspeed_vuart
+8250_dw
+8250_exar
+8250_men_mcb
+8255
+8255_pci
+8390
+842
+842_compress
+842_decompress
+88pg86x
+88pm800
+88pm800-regulator
+88pm805
+88pm80x
+88pm80x_onkey
+88pm8607
+88pm860x-ts
+88pm860x_battery
+88pm860x_bl
+88pm860x_charger
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+a8293
+aacraid
+aat2870-regulator
+aat2870_bl
+ab3100
+ab3100-otp
+abp060mg
+ac97_bus
+acard-ahci
+acecad
+acenic
+acp_audio_dma
+act8865-regulator
+act8945a
+act8945a-regulator
+act8945a_charger
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+ad2s1200
+ad2s1210
+ad2s90
+ad5064
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad5272
+ad5360
+ad5380
+ad5398
+ad5421
+ad5446
+ad5449
+ad5504
+ad5592r
+ad5592r-base
+ad5593r
+ad5624r_spi
+ad5686
+ad5686-spi
+ad5696-i2c
+ad5755
+ad5758
+ad5761
+ad5764
+ad5791
+ad5820
+ad5933
+ad7124
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7150
+ad7192
+ad7266
+ad7280a
+ad7291
+ad7298
+ad7303
+ad7314
+ad7414
+ad7418
+ad7476
+ad7606
+ad7606_par
+ad7606_spi
+ad7746
+ad7766
+ad7768-1
+ad7780
+ad7791
+ad7793
+ad7816
+ad7877
+ad7879
+ad7879-i2c
+ad7879-spi
+ad7887
+ad7923
+ad7949
+ad799x
+ad8366
+ad8801
+ad9389b
+ad9523
+ad9832
+ad9834
+ad_sigma_delta
+adc-keys
+adc128d818
+adcxx
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2032
+addi_apci_2200
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+addi_watchdog
+ade7854
+ade7854-i2c
+ade7854-spi
+adf4350
+adf4371
+adf7242
+adfs
+adi
+adiantum
+adin
+adis16080
+adis16130
+adis16136
+adis16201
+adis16203
+adis16209
+adis16240
+adis16260
+adis16400
+adis16460
+adis16480
+adis_lib
+adjd_s311
+adl_pci6208
+adl_pci7x3x
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm1275
+adm8211
+adm9240
+adp1653
+adp5061
+adp5520-keys
+adp5520_bl
+adp5588-keys
+adp5589-keys
+adp8860_bl
+adp8870_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7310
+adt7316
+adt7316-i2c
+adt7316-spi
+adt7410
+adt7411
+adt7462
+adt7470
+adt7475
+adt7x10
+adummy
+adutux
+adv7170
+adv7175
+adv7180
+adv7183
+adv7343
+adv7393
+adv748x
+adv7511_drm
+adv7604
+adv7842
+adv_pci1710
+adv_pci1720
+adv_pci1723
+adv_pci1724
+adv_pci1760
+adv_pci_dio
+advansys
+adxl34x
+adxl34x-i2c
+adxl34x-spi
+adxl372
+adxl372_i2c
+adxl372_spi
+adxrs450
+aegis128
+aes_ti
+af9013
+af9033
+af_alg
+af_key
+af_packet_diag
+afe4403
+afe4404
+affs
+ah4
+ah6
+ahci
+ahci_ceva
+ahci_platform
+ahci_qoriq
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airspy
+ak7375
+ak881x
+ak8974
+ak8975
+al3320a
+alcor
+alcor_pci
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+alim7101_wdt
+altera-ci
+altera-cvp
+altera-freeze-bridge
+altera-msgdma
+altera-pr-ip-core
+altera-pr-ip-core-plat
+altera-ps-spi
+altera-stapl
+altera_jtaguart
+altera_ps2
+altera_tse
+altera_uart
+alx
+am2315
+am53c974
+amc6821
+amd
+amd5536udc_pci
+amd8111e
+amdgpu
+amplc_dio200
+amplc_dio200_common
+amplc_dio200_pci
+amplc_pc236
+amplc_pc236_common
+amplc_pc263
+amplc_pci224
+amplc_pci230
+amplc_pci236
+amplc_pci263
+ams-iaq-core
+ams369fg06
+analog
+analogix-anx78xx
+anatop-regulator
+ansi_cprng
+anubis
+anybuss_core
+aoe
+apbps2
+apds9300
+apds9802als
+apds990x
+apds9960
+appledisplay
+appletalk
+appletouch
+applicom
+aptina-pll
+aqc111
+aquantia
+ar1021_i2c
+ar5523
+ar7part
+arc-rawmode
+arc-rimi
+arc4
+arc_ps2
+arc_uart
+arcmsr
+arcnet
+arcpgu
+arcx-anybus
+arcxcnn_bl
+arizona-haptics
+arizona-i2c
+arizona-ldo1
+arizona-micsupp
+arizona-spi
+ark3116
+arkfb
+arp_tables
+arpt_mangle
+arptable_filter
+as102_fe
+as370-hwmon
+as3711-regulator
+as3711_bl
+as3722-regulator
+as3935
+as5011
+asc7621
+ascot2e
+ashmem_linux
+asix
+aspeed-pwm-tacho
+aspeed-video
+ast
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+at803x
+at86rf230
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath10k_core
+ath10k_pci
+ath10k_sdio
+ath10k_usb
+ath3k
+ath5k
+ath6kl_core
+ath6kl_sdio
+ath6kl_usb
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ath9k_pci_owl_loader
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas-ph-sensor
+atm
+atmel
+atmel-ecc
+atmel-flexcom
+atmel-hlcdc
+atmel-i2c
+atmel-sha204a
+atmel_captouch
+atmel_mxt_ts
+atmel_pci
+atmtcp
+atp870u
+atusb
+atxp1
+aty128fb
+atyfb
+au0828
+au8522_common
+au8522_decoder
+au8522_dig
+aufs
+auo-pixcir-ts
+auth_rpcgss
+authenc
+authencesn
+autofs4
+avmfritz
+ax25
+ax88179_178a
+ax88796b
+axis-fifo
+axp20x
+axp20x-i2c
+axp20x-pek
+axp20x-regulator
+axp20x_ac_power
+axp20x_adc
+axp20x_battery
+axp20x_usb_power
+axp288_adc
+axp288_fuel_gauge
+b1
+b1dma
+b1pci
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+b53_common
+b53_mdio
+b53_mmap
+b53_serdes
+b53_spi
+b53_srab
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcache
+bch
+bcm-phy-lib
+bcm-sf2
+bcm203x
+bcm3510
+bcm590xx
+bcm590xx-regulator
+bcm5974
+bcm7xxx
+bcm87xx
+bcma
+bcma-hcd
+bcmsysport
+bd6107
+bd70528-charger
+bd70528-regulator
+bd70528_wdt
+bd718x7-regulator
+bd9571mwv
+bd9571mwv-regulator
+bdc
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfq
+bfs
+bfusb
+bh1750
+bh1770glc
+bh1780
+binder_linux
+binfmt_misc
+block2mtd
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bluetooth
+bluetooth_6lowpan
+bma150
+bma180
+bma220_spi
+bmc150-accel-core
+bmc150-accel-i2c
+bmc150-accel-spi
+bmc150_magn
+bmc150_magn_i2c
+bmc150_magn_spi
+bme680_core
+bme680_i2c
+bme680_spi
+bmg160_core
+bmg160_i2c
+bmg160_spi
+bmi160_core
+bmi160_i2c
+bmi160_spi
+bmp280
+bmp280-i2c
+bmp280-spi
+bna
+bnep
+bnx2
+bnx2fc
+bnx2i
+bnx2x
+bnxt_en
+bnxt_re
+bochs-drm
+bonding
+bpa10x
+bpck
+bpfilter
+bpqether
+bq2415x_charger
+bq24190_charger
+bq24257_charger
+bq24735-charger
+bq25890_charger
+bq27xxx_battery
+bq27xxx_battery_hdq
+bq27xxx_battery_i2c
+br2684
+br_netfilter
+brcmfmac
+brcmsmac
+brcmutil
+brd
+bridge
+broadcom
+bsd_comp
+bsr
+bt819
+bt856
+bt866
+bt878
+btbcm
+btcoexist
+btintel
+btmrvl
+btmrvl_sdio
+btmtksdio
+btmtkuart
+btqca
+btrfs
+btrsi
+btrtl
+btsdio
+bttv
+btusb
+btwilink
+bu21013_ts
+bu21029_ts
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+c4
+c67x00
+c6xdigio
+c_can
+c_can_pci
+c_can_platform
+cachefiles
+cadence_wdt
+cafe_nand
+caif
+caif_hsi
+caif_serial
+caif_socket
+caif_usb
+caif_virtio
+camellia_generic
+can
+can-bcm
+can-dev
+can-gw
+can-j1939
+can-raw
+cap11xx
+capi
+capmode
+carl9170
+carminefb
+cassini
+cast5_generic
+cast6_generic
+cast_common
+catc
+cavium_ptp
+cb710
+cb710-mmc
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcimdas
+cb_pcimdda
+cc2520
+cc770
+cc770_isa
+cc770_platform
+ccm
+ccree
+ccs811
+cdc-acm
+cdc-phonet
+cdc-wdm
+cdc_eem
+cdc_ether
+cdc_mbim
+cdc_ncm
+cdc_subset
+cdns-csi2rx
+cdns-csi2tx
+cdns-dphy
+cdns-dsi
+cdns-pltfrm
+cdns3
+ceph
+cfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+cfspi_slave
+ch
+ch341
+ch7006
+ch9200
+chacha20poly1305
+chacha_generic
+chaoskey
+charlcd
+chcr
+chipone_icn8318
+chipreg
+chnl_net
+chtls
+ci_hdrc
+ci_hdrc_imx
+ci_hdrc_msm
+ci_hdrc_pci
+ci_hdrc_tegra
+ci_hdrc_usb2
+ci_hdrc_zevio
+cicada
+cifs
+cirrus
+cirrusfb
+clip
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cm109
+cm32181
+cm3232
+cm3323
+cm3605
+cm36651
+cma3000_d0x
+cma3000_d0x_i2c
+cmac
+cmdlinepart
+cmm
+cmtp
+cnic
+cobra
+coda
+colibri-vf50-ts
+com20020
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_8254
+comedi_8255
+comedi_bond
+comedi_isadma
+comedi_parport
+comedi_pci
+comedi_test
+comedi_usb
+comm
+contec_pci_dio
+cordic
+core
+cortina
+counter
+cp210x
+cpc925_edac
+cpcap-adc
+cpcap-battery
+cpcap-pwrbutton
+cpcap-regulator
+cpia2
+cqhci
+cramfs
+crc-itu-t
+crc-vpmsum_test
+crc32_generic
+crc32c-vpmsum
+crc4
+crc64
+crc7
+crc8
+crct10dif-vpmsum
+cryptd
+crypto_engine
+crypto_safexcel
+crypto_user
+cryptoloop
+cs3308
+cs5345
+cs53l32a
+csiostor
+cuse
+cw1200_core
+cw1200_wlan_sdio
+cw1200_wlan_spi
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24117
+cx24120
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx82310_eth
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx8800
+cx8802
+cx88xx
+cxacru
+cxd2099
+cxd2820r
+cxd2841er
+cxd2880
+cxd2880-spi
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxgb4i
+cxgb4vf
+cxgbit
+cxl
+cxlflash
+cy8ctmg110_ts
+cyapatp
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_firmware
+cypress_m8
+cytherm
+cyttsp4_core
+cyttsp4_i2c
+cyttsp4_spi
+cyttsp_core
+cyttsp_i2c
+cyttsp_i2c_common
+cyttsp_spi
+da280
+da311
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+da9052-battery
+da9052-hwmon
+da9052-regulator
+da9052_bl
+da9052_onkey
+da9052_tsi
+da9052_wdt
+da9055-hwmon
+da9055-regulator
+da9055_onkey
+da9055_wdt
+da9062-core
+da9062-regulator
+da9062-thermal
+da9062_wdt
+da9063-regulator
+da9063_onkey
+da9063_wdt
+da9150-charger
+da9150-core
+da9150-fg
+da9150-gpadc
+da9210-regulator
+da9211-regulator
+dac02
+daqboard2000
+das08
+das08_isa
+das08_pci
+das16
+das16m1
+das1800
+das6402
+das800
+davicom
+dax_pmem
+dax_pmem_compat
+dax_pmem_core
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+ddbridge
+de2104x
+de4x5
+defxx
+denali
+denali_pci
+des_generic
+device_dax
+dfl
+dfl-afu
+dfl-fme
+dfl-fme-br
+dfl-fme-mgr
+dfl-fme-region
+dfl-pci
+dht11
+diag
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dib9000
+dibx000_common
+digi_acceleport
+digicolor-usart
+diskonchip
+dl2k
+dlci
+dlink-dir685-touchkeys
+dlm
+dln2
+dln2-adc
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dm1105
+dm9601
+dmard06
+dmard09
+dmard10
+dmfe
+dmm32at
+dmx3191d
+dnet
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpot-dac
+dps310
+dpt_i2o
+drbd
+drm
+drm_kms_helper
+drm_mipi_dbi
+drm_panel_orientation_quirks
+drm_vram_helper
+drv260x
+drv2665
+drv2667
+drx39xyj
+drxd
+drxk
+ds1621
+ds1682
+ds1803
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2780_battery
+ds2781_battery
+ds2782_battery
+ds3000
+ds4424
+ds620
+dsa_core
+dsbr100
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt9812
+dumb-vga-dac
+dummy
+dummy-irq
+dummy_stm
+dvb-as102
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-af9035
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6007
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-dibusb-mc-common
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dvbsky
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-lmedm04
+dvb-usb-m920x
+dvb-usb-mxl111sf
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-pctv452e
+dvb-usb-rtl28xxu
+dvb-usb-technisat-usb2
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dvb_dummy_fe
+dvb_usb_v2
+dw-axi-dmac-platform
+dw-edma
+dw-edma-pcie
+dw-hdmi
+dw-hdmi-ahb-audio
+dw-hdmi-cec
+dw-hdmi-i2s-audio
+dw-i3c-master
+dw9714
+dw9807-vcm
+dw_dmac
+dw_dmac_core
+dw_dmac_pci
+dw_wdt
+dwc-xlgmac
+dwc2_pci
+dwc3
+dwc3-haps
+dwmac-dwc-qos-eth
+dwmac-generic
+dyna_pci10xx
+dynapro
+e100
+e1000
+e1000e
+e3x0-button
+e4000
+earth-pt1
+earth-pt3
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ec100
+ecc
+ecdh_generic
+echainiv
+echo
+ecrdsa_generic
+edt-ft5x06
+ee1004
+eeprom
+eeprom_93cx6
+eeprom_93xx46
+eeti_ts
+efa
+efs
+egalax_ts
+egalax_ts_serial
+ehci-fsl
+ehci-platform
+ehset
+ektf2127
+elan_i2c
+elants_i2c
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+em28xx-rc
+em28xx-v4l
+em_canid
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+emc1403
+emc2103
+emc6w201
+emi26
+emi62
+empeg
+ems_pci
+ems_usb
+emu10k1-gp
+ena
+enc28j60
+enclosure
+encx24j600
+encx24j600-regmap
+eni
+enic
+envelope-detector
+epat
+epia
+epic100
+eql
+erofs
+esas2r
+esd_usb2
+esp4
+esp4_offload
+esp6
+esp6_offload
+esp_scsi
+essiv
+et1011c
+et131x
+et8ek8
+ethoc
+evbug
+exc3000
+exfat
+extcon-adc-jack
+extcon-arizona
+extcon-fsa9480
+extcon-gpio
+extcon-max14577
+extcon-max3355
+extcon-max77693
+extcon-max77843
+extcon-max8997
+extcon-palmas
+extcon-ptn5150
+extcon-rt8973a
+extcon-sm5502
+extcon-usb-gpio
+ezusb
+f2fs
+f75375s
+f81232
+f81534
+f81601
+failover
+fakelb
+fan53555
+farsync
+faulty
+fb_agm1264k-fl
+fb_bd663474
+fb_ddc
+fb_hx8340bn
+fb_hx8347d
+fb_hx8353d
+fb_hx8357d
+fb_ili9163
+fb_ili9320
+fb_ili9325
+fb_ili9340
+fb_ili9341
+fb_ili9481
+fb_ili9486
+fb_pcd8544
+fb_ra8875
+fb_s6d02a1
+fb_s6d1121
+fb_sh1106
+fb_ssd1289
+fb_ssd1305
+fb_ssd1306
+fb_ssd1325
+fb_ssd1331
+fb_ssd1351
+fb_st7735r
+fb_st7789v
+fb_sys_fops
+fb_tinylcd
+fb_tls8204
+fb_uc1611
+fb_uc1701
+fb_upd161704
+fb_watterott
+fbtft
+fc0011
+fc0012
+fc0013
+fc2580
+fcoe
+fcrypt
+fdomain
+fdomain_pci
+fdp
+fdp_i2c
+fealnx
+ff-memless
+fieldbus_dev
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+firewire-serial
+fit2
+fit3
+fixed
+fl512
+flexcan
+floppy
+fm10k
+fm801-gp
+fm_drv
+forcedeth
+fore_200e
+fotg210-hcd
+fotg210-udc
+fou
+fou6
+fpga-bridge
+fpga-mgr
+fpga-region
+freevxfs
+friq
+frpw
+fscache
+fsi-core
+fsi-master-gpio
+fsi-master-hub
+fsi-occ
+fsi-sbefifo
+fsi-scom
+fsia6b
+fsl-edma
+fsl-edma-common
+fsl-mph-dr-of
+fsl_linflexuart
+fsl_lpuart
+ftdi-elan
+ftdi_sio
+ftl
+ftm-quaddec
+ftsteutates
+fujitsu_ts
+fusb302
+fxas21002c_core
+fxas21002c_i2c
+fxas21002c_spi
+g450_pll
+g760a
+g762
+g_acm_ms
+g_audio
+g_cdc
+g_dbgp
+g_ether
+g_ffs
+g_hid
+g_mass_storage
+g_midi
+g_ncm
+g_nokia
+g_printer
+g_serial
+g_webcam
+g_zero
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+gb-audio-apbridgea
+gb-audio-gb
+gb-audio-manager
+gb-bootrom
+gb-es2
+gb-firmware
+gb-gbphy
+gb-gpio
+gb-hid
+gb-i2c
+gb-light
+gb-log
+gb-loopback
+gb-power-supply
+gb-pwm
+gb-raw
+gb-sdio
+gb-spi
+gb-spilib
+gb-uart
+gb-usb
+gb-vibrator
+gdmtty
+gdmulte
+gdth
+gemini
+gen_probe
+generic
+generic-adc-battery
+generic_bl
+genet
+geneve
+genwqe_card
+gf2k
+gfs2
+gigaset
+gl518sm
+gl520sm
+gl620a
+gluebi
+gm12u320
+gnss
+gnss-mtk
+gnss-serial
+gnss-sirf
+gnss-ubx
+go7007
+go7007-loader
+go7007-usb
+goku_udc
+goodix
+gp2ap002a00f
+gp2ap020a00f
+gp8psk-fe
+gpio
+gpio-74x164
+gpio-74xx-mmio
+gpio-adnp
+gpio-adp5520
+gpio-adp5588
+gpio-altera
+gpio-amd-fch
+gpio-arizona
+gpio-bd70528
+gpio-bd9571mwv
+gpio-beeper
+gpio-cadence
+gpio-charger
+gpio-da9052
+gpio-da9055
+gpio-dln2
+gpio-dwapb
+gpio-exar
+gpio-fan
+gpio-grgpio
+gpio-gw-pld
+gpio-hlwd
+gpio-ir-recv
+gpio-ir-tx
+gpio-janz-ttl
+gpio-kempld
+gpio-lp3943
+gpio-lp873x
+gpio-lp87565
+gpio-madera
+gpio-max3191x
+gpio-max7300
+gpio-max7301
+gpio-max730x
+gpio-max732x
+gpio-max77620
+gpio-max77650
+gpio-mb86s7x
+gpio-mc33880
+gpio-menz127
+gpio-moxtet
+gpio-pca953x
+gpio-pcf857x
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-pisosr
+gpio-rdc321x
+gpio-regulator
+gpio-sama5d2-piobu
+gpio-siox
+gpio-syscon
+gpio-tpic2810
+gpio-tps65086
+gpio-tps65218
+gpio-tps65912
+gpio-tqmx86
+gpio-twl4030
+gpio-twl6040
+gpio-ucb1400
+gpio-vibra
+gpio-viperboard
+gpio-wm831x
+gpio-wm8350
+gpio-wm8994
+gpio-xra1403
+gpio_backlight
+gpio_decoder
+gpio_keys
+gpio_keys_polled
+gpio_mouse
+gpio_wdt
+gpu-sched
+gr_udc
+grace
+grcan
+gre
+greybus
+grip
+grip_mp
+gs1662
+gs_fpga
+gs_usb
+gsc_hpdi
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_dtcs033
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_jl2005bcd
+gspca_kinect
+gspca_konica
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_nw80x
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_se401
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca1528
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_sq930x
+gspca_stk014
+gspca_stk1135
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_topro
+gspca_touptek
+gspca_tv8532
+gspca_vc032x
+gspca_vicam
+gspca_xirlink_cit
+gspca_zc3xx
+gtco
+gtp
+guillemot
+gunze
+gve
+habanalabs
+hackrf
+hamachi
+hampshire
+hangcheck-timer
+hanwang
+hci
+hci_nokia
+hci_uart
+hci_vhci
+hd44780
+hdc100x
+hdlc
+hdlc_cisco
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdlcdrv
+hdma
+hdma_mgmt
+hdpvr
+he
+helene
+hexium_gemini
+hexium_orion
+hfcmulti
+hfcpci
+hfcsusb
+hfs
+hfsplus
+hi311x
+hi6210-i2s
+hi6421-pmic-core
+hi6421-regulator
+hi6421v530-regulator
+hi8435
+hid
+hid-a4tech
+hid-accutouch
+hid-alps
+hid-apple
+hid-appleir
+hid-asus
+hid-aureal
+hid-axff
+hid-belkin
+hid-betopff
+hid-bigbenff
+hid-cherry
+hid-chicony
+hid-cmedia
+hid-corsair
+hid-cougar
+hid-cp2112
+hid-creative-sb0540
+hid-cypress
+hid-dr
+hid-elan
+hid-elecom
+hid-elo
+hid-emsff
+hid-ezkey
+hid-gaff
+hid-gembird
+hid-generic
+hid-gfrm
+hid-gt683r
+hid-gyration
+hid-holtek-kbd
+hid-holtek-mouse
+hid-holtekff
+hid-icade
+hid-ite
+hid-jabra
+hid-kensington
+hid-keytouch
+hid-kye
+hid-lcpower
+hid-led
+hid-lenovo
+hid-logitech
+hid-logitech-dj
+hid-logitech-hidpp
+hid-macally
+hid-magicmouse
+hid-maltron
+hid-mf
+hid-microsoft
+hid-monterey
+hid-multitouch
+hid-nti
+hid-ntrig
+hid-ortek
+hid-penmount
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-plantronics
+hid-primax
+hid-prodikeys
+hid-redragon
+hid-retrode
+hid-rmi
+hid-roccat
+hid-roccat-arvo
+hid-roccat-common
+hid-roccat-isku
+hid-roccat-kone
+hid-roccat-koneplus
+hid-roccat-konepure
+hid-roccat-kovaplus
+hid-roccat-lua
+hid-roccat-pyra
+hid-roccat-ryos
+hid-roccat-savu
+hid-saitek
+hid-samsung
+hid-sensor-accel-3d
+hid-sensor-als
+hid-sensor-custom
+hid-sensor-gyro-3d
+hid-sensor-hub
+hid-sensor-humidity
+hid-sensor-iio-common
+hid-sensor-incl-3d
+hid-sensor-magn-3d
+hid-sensor-press
+hid-sensor-prox
+hid-sensor-rotation
+hid-sensor-temperature
+hid-sensor-trigger
+hid-sjoy
+hid-sony
+hid-speedlink
+hid-steam
+hid-steelseries
+hid-sunplus
+hid-tivo
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-u2fzero
+hid-uclogic
+hid-udraw-ps3
+hid-viewsonic
+hid-waltop
+hid-wiimote
+hid-xinmo
+hid-zpff
+hid-zydacron
+hideep
+hidp
+hih6130
+hmc5843_core
+hmc5843_i2c
+hmc5843_spi
+hmc6352
+hms-profinet
+hopper
+horus3a
+hostap
+hostap_pci
+hostap_plx
+hp03
+hp100
+hp206c
+hpfs
+hpilo
+hpsa
+hptiop
+hsi
+hsi_char
+hso
+hsr
+ht16k33
+htc-pasic3
+hts221
+hts221_i2c
+hts221_spi
+htu21
+huawei_cdc_ncm
+hvcs
+hvcserver
+hwa-hc
+hwa-rc
+hwmon-vid
+hwpoison-inject
+hx711
+hx8357
+hx8357d
+hyperbus-core
+hysdn
+i1480-dfu-usb
+i1480-est
+i2400m
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-arb-gpio-challenge
+i2c-cbus-gpio
+i2c-demux-pinctrl
+i2c-designware-pci
+i2c-diolan-u2c
+i2c-dln2
+i2c-fsi
+i2c-gpio
+i2c-hid
+i2c-i801
+i2c-isch
+i2c-kempld
+i2c-matroxfb
+i2c-mpc
+i2c-mux
+i2c-mux-gpio
+i2c-mux-gpmux
+i2c-mux-ltc4306
+i2c-mux-mlxcpld
+i2c-mux-pca9541
+i2c-mux-pca954x
+i2c-mux-pinctrl
+i2c-mux-reg
+i2c-nforce2
+i2c-nvidia-gpu
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-robotfuzz-osif
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-viperboard
+i2c-xiic
+i3c
+i3c-master-cdns
+i40e
+i40iw
+i5k_amb
+i6300esb
+i740fb
+iavf
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+ibm-cffps
+ibmaem
+ibmpex
+ibmpowernv
+ibmveth
+ibmvfc
+ibmvmc
+ibmvnic
+ibmvscsi
+ibmvscsis
+icc-core
+ice
+ice40-spi
+icom
+icp
+icp_multi
+icplus
+ics932s401
+ideapad_slidebar
+idma64
+idmouse
+idt77252
+idt_89hpesx
+idt_gen2
+idt_gen3
+idtcps
+ieee802154
+ieee802154_6lowpan
+ieee802154_socket
+ifb
+ife
+ifi_canfd
+iforce
+iforce-serio
+iforce-usb
+igb
+igbvf
+igc
+igorplugusb
+iguanair
+ii_pci20kc
+iio-mux
+iio-rescale
+iio-trig-hrtimer
+iio-trig-interrupt
+iio-trig-loop
+iio-trig-sysfs
+iio_dummy
+iio_hwmon
+ila
+ili210x
+ili9225
+ili922x
+ili9320
+ili9341
+img-ascii-lcd
+img-i2s-in
+img-i2s-out
+img-parallel-out
+img-spdif-in
+img-spdif-out
+imm
+imon
+imon_raw
+ims-pcu
+imx214
+imx258
+imx274
+imx319
+imx355
+imx6ul_tsc
+ina209
+ina2xx
+ina2xx-adc
+ina3221
+industrialio
+industrialio-buffer-cb
+industrialio-configfs
+industrialio-hw-consumer
+industrialio-sw-device
+industrialio-sw-trigger
+industrialio-triggered-buffer
+industrialio-triggered-event
+inet_diag
+inexio
+inftl
+initio
+input-leds
+input-polldev
+inspur-ipsps
+int51x1
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+intel_vr_nor
+interact
+inv-mpu6050
+inv-mpu6050-i2c
+inv-mpu6050-spi
+io_edgeport
+io_ti
+ionic
+iowarrior
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipack
+ipaq
+ipcomp
+ipcomp6
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_powernv
+ipmi_poweroff
+ipmi_si
+ipmi_ssif
+ipmi_watchdog
+ipoctal
+ipr
+ips
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+ipw
+ipw2100
+ipw2200
+iqs5xx
+ir-hix5hd2
+ir-imon-decoder
+ir-jvc-decoder
+ir-kbd-i2c
+ir-mce_kbd-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-rcmm-decoder
+ir-sanyo-decoder
+ir-sharp-decoder
+ir-sony-decoder
+ir-spi
+ir-usb
+ir-xmp-decoder
+ir35221
+ir38064
+irps5401
+irq-madera
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+isdnhdlc
+isicom
+isight_firmware
+isl29003
+isl29018
+isl29020
+isl29028
+isl29125
+isl29501
+isl6271a-regulator
+isl6405
+isl6421
+isl6423
+isl68137
+isl9305
+isofs
+isp116x-hcd
+isp1704_charger
+isp1760
+it913x
+itd1000
+itg3200
+iuu_phoenix
+ivtv
+ivtv-alsa
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwl4965
+iwldvm
+iwlegacy
+iwlmvm
+iwlwifi
+ix2505v
+ixgb
+ixgbe
+ixgbevf
+janz-cmodio
+janz-ican3
+jc42
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsa1212
+jsm
+kafs
+kalmia
+kaweth
+kbic
+kbtab
+kcm
+kcomedilib
+ke_counter
+kempld-core
+kempld_wdt
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+keywrap
+kfifo_buf
+khazad
+kheaders
+kl5kusb105
+kmem
+kmx61
+kobil_sct
+kpc2000
+kpc2000_i2c
+kpc2000_spi
+kpc_dma
+ks0108
+ks0127
+ks7010
+ks8842
+ks8851
+ks8851_mll
+ksz8795
+ksz8795_spi
+ksz884x
+ksz9477
+ksz9477_i2c
+ksz9477_spi
+ksz_common
+ktti
+kvaser_pci
+kvaser_pciefd
+kvaser_usb
+kvm
+kvm-hv
+kvm-pr
+kxcjk-1013
+kxsd9
+kxsd9-i2c
+kxsd9-spi
+kxtj9
+kyber-iosched
+kyrofb
+l1oip
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+l2tp_ppp
+l4f00242t03
+l64781
+lan743x
+lan78xx
+lan9303-core
+lan9303_i2c
+lan9303_mdio
+lanai
+lantiq_gswip
+lapb
+lapbether
+lattice-ecp3-config
+lcd
+ldusb
+lec
+led-class-flash
+leds-88pm860x
+leds-aat1290
+leds-adp5520
+leds-an30259a
+leds-as3645a
+leds-bcm6328
+leds-bcm6358
+leds-bd2802
+leds-blinkm
+leds-cpcap
+leds-cr0014114
+leds-da903x
+leds-da9052
+leds-dac124s085
+leds-gpio
+leds-is31fl319x
+leds-is31fl32xx
+leds-ktd2692
+leds-lm3530
+leds-lm3532
+leds-lm3533
+leds-lm355x
+leds-lm3601x
+leds-lm36274
+leds-lm3642
+leds-lm3692x
+leds-lm3697
+leds-lp3944
+leds-lp3952
+leds-lp5521
+leds-lp5523
+leds-lp5562
+leds-lp55xx-common
+leds-lp8501
+leds-lp8788
+leds-lp8860
+leds-lt3593
+leds-max77650
+leds-max77693
+leds-max8997
+leds-mc13783
+leds-menf21bmc
+leds-mlxreg
+leds-mt6323
+leds-pca9532
+leds-pca955x
+leds-pca963x
+leds-powernv
+leds-pwm
+leds-regulator
+leds-spi-byte
+leds-tca6507
+leds-ti-lmu-common
+leds-tlc591xx
+leds-wm831x-status
+leds-wm8350
+ledtrig-activity
+ledtrig-audio
+ledtrig-backlight
+ledtrig-camera
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-netdev
+ledtrig-oneshot
+ledtrig-pattern
+ledtrig-timer
+ledtrig-transient
+ledtrig-usbport
+lego_ev3_battery
+legousbtower
+lg-vl600
+lg2160
+lgdt3305
+lgdt3306a
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libahci_platform
+libarc4
+libceph
+libcomposite
+libcrc32c
+libcxgb
+libcxgbi
+libdes
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+lineage-pem
+linear
+liquidio
+liquidio_vf
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+ll_temac
+llc
+llc2
+lm25066
+lm3533-als
+lm3533-core
+lm3533-ctrlbank
+lm3533_bl
+lm3560
+lm3630a_bl
+lm3639_bl
+lm363x-regulator
+lm3646
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm8333
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95234
+lm95241
+lm95245
+lmp91000
+lms283gf05
+lms501kf03
+lnbh25
+lnbh29
+lnbp21
+lnbp22
+lochnagar-hwmon
+lochnagar-regulator
+lockd
+lp
+lp3943
+lp3971
+lp3972
+lp855x_bl
+lp8727_charger
+lp872x
+lp873x
+lp873x-regulator
+lp8755
+lp87565
+lp87565-regulator
+lp8788-buck
+lp8788-charger
+lp8788-ldo
+lp8788_adc
+lp8788_bl
+lpc_ich
+lpc_sch
+lpddr_cmds
+lpfc
+lru_cache
+lrw
+lt3651-charger
+ltc1660
+ltc2471
+ltc2485
+ltc2497
+ltc2632
+ltc2941-battery-gauge
+ltc2945
+ltc2978
+ltc2990
+ltc3589
+ltc3676
+ltc3815
+ltc4151
+ltc4215
+ltc4222
+ltc4245
+ltc4260
+ltc4261
+ltr501
+ltv350qv
+lv0104cs
+lv5207lp
+lvds-encoder
+lvstest
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+m2m-deinterlace
+m52790
+m5mols
+m62332
+m88ds3103
+m88rs2000
+m88rs6000t
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+m_can
+m_can_platform
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+mac80211
+mac80211_hwsim
+mac802154
+mac802154_hwsim
+mac_hid
+machxo2-spi
+macsec
+macvlan
+macvtap
+madera
+madera-i2c
+madera-spi
+mag3110
+magellan
+mailbox-altera
+mailbox-test
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+marvell10g
+matrix-keymap
+matrix_keypad
+matrox_w1
+matroxfb_DAC1064
+matroxfb_Ti3026
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+max1027
+max11100
+max1111
+max1118
+max11801_ts
+max1363
+max14577-regulator
+max14577_charger
+max14656_charger_detector
+max1586
+max16064
+max16065
+max1619
+max1668
+max17040_battery
+max17042_battery
+max1721x_battery
+max197
+max20751
+max2165
+max2175
+max30100
+max30102
+max3100
+max31722
+max31785
+max31790
+max31856
+max3421-hcd
+max34440
+max44000
+max44009
+max517
+max5432
+max5481
+max5487
+max5821
+max63xx_wdt
+max6621
+max6639
+max6642
+max6650
+max6697
+max6875
+max7359_keypad
+max77620-regulator
+max77620_thermal
+max77620_wdt
+max77650
+max77650-charger
+max77650-onkey
+max77650-regulator
+max77686-regulator
+max77693-haptic
+max77693-regulator
+max77693_charger
+max77802-regulator
+max8649
+max8660
+max8688
+max8903_charger
+max8907
+max8907-regulator
+max8925-regulator
+max8925_bl
+max8925_onkey
+max8925_power
+max8952
+max8973-regulator
+max8997-regulator
+max8997_charger
+max8997_haptic
+max8998
+max8998_charger
+max9611
+maxim_thermocouple
+mb1232
+mb862xxfb
+mb86a16
+mb86a20s
+mc
+mc13783-adc
+mc13783-pwrbutton
+mc13783-regulator
+mc13783_ts
+mc13892-regulator
+mc13xxx-core
+mc13xxx-i2c
+mc13xxx-regulator-core
+mc13xxx-spi
+mc3230
+mc44s803
+mcb
+mcb-lpc
+mcb-pci
+mcba_usb
+mceusb
+mchp23k256
+mcp16502
+mcp251x
+mcp3021
+mcp320x
+mcp3422
+mcp3911
+mcp4018
+mcp41010
+mcp4131
+mcp4531
+mcp4725
+mcp4922
+mcr20a
+mcs5000_ts
+mcs7830
+mcs_touchkey
+mct_u232
+md-cluster
+md4
+md5-ppc
+mdc800
+mdev
+mdio
+mdio-bcm-unimac
+mdio-bitbang
+mdio-cavium
+mdio-gpio
+mdio-hisi-femac
+mdio-i2c
+mdio-mscc-miim
+mdio-mux
+mdio-mux-gpio
+mdio-mux-mmioreg
+mdio-mux-multiplexer
+mdio-octeon
+mdio-thunder
+me4000
+me_daq
+megachips-stdpxxxx-ge-b850v3-fw
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+melfas_mip4
+memory-notifier-error-inject
+memstick
+men_z135_uart
+men_z188_adc
+mena21_wdt
+menf21bmc
+menf21bmc_hwmon
+menf21bmc_wdt
+menz69_wdt
+metro-usb
+metronomefb
+mf6x4
+mgag200
+mi0283qt
+michael_mic
+micrel
+microchip
+microchip_t1
+microread
+microread_i2c
+microtek
+mii
+minix
+mip6
+mite
+mk712
+mkiss
+ml86v7667
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlx90614
+mlx90632
+mlxfw
+mlxsw_core
+mlxsw_i2c
+mlxsw_minimal
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+mma7455_core
+mma7455_i2c
+mma7455_spi
+mma7660
+mma8450
+mma8452
+mma9551
+mma9551_core
+mma9553
+mmc35240
+mmc_block
+mmc_spi
+mms114
+mn88443x
+mn88472
+mn88473
+mos7720
+mos7840
+most_cdev
+most_core
+most_dim2
+most_i2c
+most_net
+most_sound
+most_usb
+most_video
+motorola-cpcap
+moxa
+moxtet
+mpc624
+mpl115
+mpl115_i2c
+mpl115_spi
+mpl3115
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpoa
+mpr121_touchkey
+mpt3sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+mpu3050
+mrf24j40
+mrp
+ms5611_core
+ms5611_i2c
+ms5611_spi
+ms5637
+ms_block
+ms_sensors_i2c
+mscc
+mscc_ocelot_common
+msdos
+msi001
+msi2500
+msm-vibrator
+msp3400
+mspro_block
+mt2060
+mt2063
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt6311-regulator
+mt6323-regulator
+mt6397
+mt6397-regulator
+mt7530
+mt76
+mt76-usb
+mt7601u
+mt7603e
+mt7615e
+mt76x0-common
+mt76x02-lib
+mt76x02-usb
+mt76x0e
+mt76x0u
+mt76x2-common
+mt76x2e
+mt76x2u
+mt9m001
+mt9m032
+mt9m111
+mt9p031
+mt9t001
+mt9t112
+mt9v011
+mt9v032
+mt9v111
+mtd
+mtd_blkdevs
+mtd_dataflash
+mtdblock
+mtdblock_ro
+mtdoops
+mtdram
+mtdswap
+mtip32xx
+mtk-pmic-keys
+mtk-quadspi
+mtk-sd
+mtouch
+multipath
+multiq3
+musb_hdrc
+mux-adg792a
+mux-adgs1408
+mux-core
+mux-gpio
+mux-mmio
+mv88e6060
+mv88e6xxx
+mv_u3d_core
+mv_udc
+mvmdio
+mvsas
+mvumi
+mwifiex
+mwifiex_pcie
+mwifiex_sdio
+mwifiex_usb
+mwl8k
+mxb
+mxc4005
+mxc6255
+mxic_nand
+mxl111sf-demod
+mxl111sf-tuner
+mxl301rf
+mxl5005s
+mxl5007t
+mxl5xx
+mxser
+mxuport
+myrb
+myri10ge
+myrs
+n5pf
+n_gsm
+n_hdlc
+n_tracerouter
+n_tracesink
+nand
+nand_ecc
+nandcore
+nandsim
+national
+natsemi
+nau7802
+navman
+nb8800
+nbd
+nci
+nci_spi
+nci_uart
+nct7802
+nct7904
+nd_blk
+nd_btt
+nd_pmem
+nd_virtio
+ne2k-pci
+neofb
+net1080
+net2272
+net2280
+net_failover
+netconsole
+netdevsim
+netjet
+netlink_diag
+netrom
+netup-unidvb
+netxen_nic
+newtonkbd
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfc
+nfc_digital
+nfcmrvl
+nfcmrvl_i2c
+nfcmrvl_spi
+nfcmrvl_uart
+nfcmrvl_usb
+nfcsim
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfp
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nftl
+ngene
+nhc_dest
+nhc_fragment
+nhc_hop
+nhc_ipv6
+nhc_mobility
+nhc_routing
+nhc_udp
+nhpoly1305
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+ni_labpc
+ni_labpc_common
+ni_labpc_isadma
+ni_labpc_pci
+ni_pcidio
+ni_pcimio
+ni_routing
+ni_tio
+ni_tiocmd
+ni_usb6501
+nicpf
+nicstar
+nicvf
+nilfs2
+niu
+nixge
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+noa1305
+noon010pc30
+nosy
+notifier-error-inject
+nouveau
+nozomi
+npcm750-pwm-fan
+nps_enet
+ns558
+ns83820
+nsh
+ntb
+ntb_hw_idt
+ntb_hw_switchtec
+ntb_netdev
+ntb_perf
+ntb_pingpong
+ntb_tool
+ntb_transport
+ntc_thermistor
+ntfs
+null_blk
+nvidiafb
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmem-rave-sp-eeprom
+nvmem-reboot-mode
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+nx-compress
+nx-compress-powernv
+nx-compress-pseries
+nxp-nci
+nxp-nci_i2c
+nxp-ptn3460
+nxp-tja11xx
+nxt200x
+nxt6000
+objagg
+ocelot_board
+ocfb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ocrdma
+ocxl
+of-fpga-region
+of_mmc_spi
+of_pmem
+of_xilinx_wdt
+ofb
+ofpart
+ohci-platform
+omap4-keypad
+omfs
+omninet
+on20
+on26
+onenand
+opal-prd
+opencores-kbd
+openvswitch
+oprofile
+opt3001
+opticon
+option
+or51132
+or51211
+orangefs
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+oti6858
+otm3225a
+ov13858
+ov2640
+ov2659
+ov2680
+ov2685
+ov5640
+ov5645
+ov5647
+ov5670
+ov5675
+ov5695
+ov6650
+ov7251
+ov7640
+ov7670
+ov772x
+ov7740
+ov8856
+ov9640
+ov9650
+overlay
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+pa12203001
+palmas-pwrbutton
+palmas-regulator
+palmas_gpadc
+pandora_bl
+panel
+panel-arm-versatile
+panel-feiyang-fy07024di26a30d
+panel-ilitek-ili9322
+panel-ilitek-ili9881c
+panel-innolux-p079zca
+panel-jdi-lt070me05000
+panel-kingdisplay-kd097d04
+panel-lg-lb035q02
+panel-lg-lg4573
+panel-lvds
+panel-nec-nl8048hl11
+panel-novatek-nt39016
+panel-olimex-lcd-olinuxino
+panel-orisetech-otm8009a
+panel-osd-osd101t2587-53ts
+panel-panasonic-vvx10f034n00
+panel-raspberrypi-touchscreen
+panel-raydium-rm67191
+panel-raydium-rm68200
+panel-rocktech-jh057n00900
+panel-ronbo-rb070d30
+panel-samsung-ld9040
+panel-samsung-s6d16d0
+panel-samsung-s6e3ha2
+panel-samsung-s6e63j0x03
+panel-samsung-s6e63m0
+panel-samsung-s6e8aa0
+panel-seiko-43wvf1g
+panel-sharp-lq101r1sx01
+panel-sharp-ls037v7dw01
+panel-sharp-ls043t1le01
+panel-simple
+panel-sitronix-st7701
+panel-sitronix-st7789v
+panel-sony-acx565akm
+panel-tpo-td028ttec1
+panel-tpo-td043mtea1
+panel-tpo-tpg110
+panel-truly-nt35597
+papr_scm
+parade-ps8622
+paride
+parkbd
+parman
+parport
+parport_ax88796
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_of_platform
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_piccolo
+pata_platform
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc300too
+pcap-regulator
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pch_udc
+pci
+pci-pf-stub
+pci-stub
+pci200syn
+pcips2
+pcl711
+pcl724
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcmad
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pda_power
+pdc_adma
+peak_pci
+peak_pciefd
+peak_usb
+pegasus
+pegasus_notetaker
+penmount
+pf
+pfuze100-regulator
+pg
+phantom
+phonet
+phram
+phy-bcm-kona-usb2
+phy-cadence-dp
+phy-cadence-sierra
+phy-cpcap-usb
+phy-exynos-usb2
+phy-fsl-imx8-mipi-dphy
+phy-fsl-imx8mq-usb
+phy-generic
+phy-gpio-vbus-usb
+phy-isp1301
+phy-mapphone-mdm6600
+phy-ocelot-serdes
+phy-pxa-28nm-hsic
+phy-pxa-28nm-usb2
+phy-qcom-usb-hs
+phy-qcom-usb-hsic
+phy-tahvo
+phy-tusb1210
+phylink
+physmap
+pi3usb30532
+pi433
+pinctrl-axp209
+pinctrl-lochnagar
+pinctrl-madera
+pinctrl-max77620
+pinctrl-mcp23s08
+pinctrl-rk805
+pinctrl-stmfx
+pistachio-internal-dac
+pixcir_i2c_ts
+pkcs7_test_key
+pkcs8_key_parser
+pktcdvd
+pktgen
+pl2303
+plat-ram
+plat_nand
+platform_lcd
+platform_mhu
+plip
+plusb
+pluto2
+plx_pci
+pm-notifier-error-inject
+pm2fb
+pm3fb
+pm80xx
+pm8941-wled
+pmbus
+pmbus_core
+pmc551
+pmcraid
+pms7003
+pn533
+pn533_i2c
+pn533_usb
+pn544
+pn544_i2c
+pn_pep
+pnv-php
+poly1305_generic
+port100
+powermate
+powernv-op-panel
+powernv-rng
+powernv_flash
+powr1220
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+ppp_synctty
+pppoatm
+pppoe
+pppox
+pps-gpio
+pps-ldisc
+pps_parport
+pptp
+pretimeout_panic
+prism2_usb
+ps2-gpio
+ps2mult
+psample
+pseries-rng
+pseries_energy
+psmouse
+psnap
+psxpad-spi
+pt
+pulse8-cec
+pulsedlight-lidar-lite-v2
+pv88060-regulator
+pv88080-regulator
+pv88090-regulator
+pvpanic
+pvrusb2
+pwc
+pwm-beeper
+pwm-fan
+pwm-fsl-ftm
+pwm-ir-tx
+pwm-lp3943
+pwm-pca9685
+pwm-regulator
+pwm-twl
+pwm-twl-led
+pwm-vibra
+pwm_bl
+pwrseq_emmc
+pwrseq_sd8787
+pwrseq_simple
+pxa27x_udc
+pxe1610
+pxrc
+qca8k
+qca_7k_common
+qcaspi
+qcauart
+qcaux
+qcom-emac
+qcom-spmi-adc5
+qcom-spmi-iadc
+qcom-spmi-vadc
+qcom-vadc-common
+qcom_glink_native
+qcom_glink_rpm
+qcom_spmi-regulator
+qcserial
+qed
+qede
+qedf
+qedi
+qedr
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qm1d1b0004
+qm1d1c0042
+qmi_wwan
+qnx4
+qnx6
+qoriq_thermal
+qsemi
+qt1010
+qt1050
+qt1070
+qt2160
+qtnfmac
+qtnfmac_pcie
+quatech2
+quota_tree
+quota_v1
+quota_v2
+qxl
+r592
+r6040
+r8152
+r8169
+r8188eu
+r8192e_pci
+r8192u_usb
+r820t
+r852
+r8712u
+r8723bs
+r8a66597-hcd
+r8a66597-udc
+radeon
+radeonfb
+radio-keene
+radio-ma901
+radio-maxiradio
+radio-mr800
+radio-platform-si4713
+radio-raremono
+radio-shark
+radio-si470x-common
+radio-si470x-i2c
+radio-si470x-usb
+radio-si476x
+radio-tea5764
+radio-usb-si4713
+radio-wl1273
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+rainshadow-cec
+ramoops
+rave-sp
+rave-sp-backlight
+rave-sp-pwrbutton
+rave-sp-wdt
+raw
+raw_diag
+raydium_i2c_ts
+rbd
+rc-adstech-dvb-t-pci
+rc-alink-dtu-m
+rc-anysee
+rc-apac-viewcomp
+rc-astrometa-t2hybrid
+rc-asus-pc39
+rc-asus-ps3-100
+rc-ati-tv-wonder-hd-600
+rc-ati-x10
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avermedia-rm-ks
+rc-avertv-303
+rc-azurewave-ad-tu700
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-core
+rc-d680-dmb
+rc-delock-61959
+rc-dib0700-nec
+rc-dib0700-rc5
+rc-digitalnow-tinytwin
+rc-digittrade
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-dtt200u
+rc-dvbsky
+rc-dvico-mce
+rc-dvico-portable
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv-fm53
+rc-encore-enltv2
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-geekbox
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge
+rc-hisi-poplar
+rc-hisi-tv-demo
+rc-imon-mce
+rc-imon-pad
+rc-imon-rsc
+rc-iodata-bctv7e
+rc-it913x-v1
+rc-it913x-v2
+rc-kaiomy
+rc-khadas
+rc-kworld-315u
+rc-kworld-pc150u
+rc-kworld-plus-tv-analog
+rc-leadtek-y04g0051
+rc-lme2510
+rc-loopback
+rc-manli
+rc-medion-x10
+rc-medion-x10-digitainer
+rc-medion-x10-or2x
+rc-msi-digivox-ii
+rc-msi-digivox-iii
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-odroid
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-002t
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc6-mce
+rc-real-audio-220-32-keys
+rc-reddo
+rc-snapstream-firefly
+rc-streamzap
+rc-su3000
+rc-tango
+rc-tanix-tx3mini
+rc-tanix-tx5max
+rc-tbs-nec
+rc-technisat-ts35
+rc-technisat-usb2
+rc-terratec-cinergy-c-pci
+rc-terratec-cinergy-s2-hd
+rc-terratec-cinergy-xs
+rc-terratec-slim
+rc-terratec-slim-2
+rc-tevii-nec
+rc-tivo
+rc-total-media-in-hand
+rc-total-media-in-hand-02
+rc-trekstor
+rc-tt-1500
+rc-twinhan-dtv-cab-ci
+rc-twinhan1027
+rc-videomate-m1f
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-videostrong-kii-pro
+rc-wetek-hub
+rc-wetek-play2
+rc-winfast
+rc-winfast-usbii-deluxe
+rc-x96max
+rc-xbox-dvd
+rc-zx-irdec
+rc5t583-regulator
+rcar_dw_hdmi
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+realtek-smi
+reboot-mode
+redboot
+redrat3
+reed_solomon
+regmap-i3c
+regmap-sccb
+regmap-slimbus
+regmap-spmi
+regmap-w1
+regulator-haptic
+reiserfs
+repaper
+reset-ti-syscon
+resistive-adc-touch
+retu-mfd
+retu-pwrbutton
+retu_wdt
+rfc1051
+rfc1201
+rfcomm
+rfd77402
+rfd_ftl
+rfkill-gpio
+rio-scan
+rio_cm
+rio_mport_cdev
+rionet
+rivafb
+rj54n1cb0c
+rk805-pwrkey
+rk808
+rk808-regulator
+rm3100-core
+rm3100-i2c
+rm3100-spi
+rmd128
+rmd160
+rmd256
+rmd320
+rmi_core
+rmi_i2c
+rmi_smbus
+rmi_spi
+rmnet
+rn5t618
+rn5t618-regulator
+rn5t618_wdt
+rndis_host
+rndis_wlan
+rockchip
+rocker
+rocket
+rohm-bd70528
+rohm-bd718x7
+rohm_bu21023
+roles
+romfs
+rose
+rotary_encoder
+rp2
+rpadlpar_io
+rpaphp
+rpcrdma
+rpcsec_gss_krb5
+rpmsg_char
+rpmsg_core
+rpr0521
+rsi_91x
+rsi_sdio
+rsi_usb
+rsxx
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800mmio
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00mmio
+rt2x00pci
+rt2x00usb
+rt5033
+rt5033-regulator
+rt5033_battery
+rt61pci
+rt73usb
+rt9455_charger
+rtas_flash
+rtc-88pm80x
+rtc-88pm860x
+rtc-ab-b5ze-s3
+rtc-ab-eoz9
+rtc-ab3100
+rtc-abx80x
+rtc-am1805
+rtc-as3722
+rtc-bd70528
+rtc-bq32k
+rtc-bq4802
+rtc-cadence
+rtc-cmos
+rtc-cpcap
+rtc-da9052
+rtc-da9055
+rtc-da9063
+rtc-ds1286
+rtc-ds1302
+rtc-ds1305
+rtc-ds1307
+rtc-ds1343
+rtc-ds1347
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1685
+rtc-ds1742
+rtc-ds2404
+rtc-ds3232
+rtc-em3027
+rtc-fm3130
+rtc-ftrtc010
+rtc-hid-sensor-time
+rtc-hym8563
+rtc-isl12022
+rtc-isl12026
+rtc-isl1208
+rtc-lp8788
+rtc-m41t80
+rtc-m41t93
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max6916
+rtc-max77686
+rtc-max8907
+rtc-max8925
+rtc-max8997
+rtc-max8998
+rtc-mc13xxx
+rtc-mcp795
+rtc-msm6242
+rtc-mt6397
+rtc-palmas
+rtc-pcap
+rtc-pcf2123
+rtc-pcf2127
+rtc-pcf50633
+rtc-pcf85063
+rtc-pcf8523
+rtc-pcf85363
+rtc-pcf8563
+rtc-pcf8583
+rtc-r7301
+rtc-r9701
+rtc-rc5t583
+rtc-rk808
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rv3028
+rtc-rv3029c2
+rtc-rv8803
+rtc-rx4581
+rtc-rx6110
+rtc-rx8010
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-s5m
+rtc-sd3078
+rtc-snvs
+rtc-stk17ta8
+rtc-tps6586x
+rtc-tps65910
+rtc-tps80031
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtc-zynqmp
+rtc_cmos_setup
+rtd520
+rti800
+rti802
+rtl2830
+rtl2832
+rtl2832_sdr
+rtl8150
+rtl8187
+rtl8188ee
+rtl818x_pci
+rtl8192c-common
+rtl8192ce
+rtl8192cu
+rtl8192de
+rtl8192ee
+rtl8192se
+rtl8723-common
+rtl8723ae
+rtl8723be
+rtl8821ae
+rtl8xxxu
+rtl_pci
+rtl_usb
+rtllib
+rtllib_crypt_ccmp
+rtllib_crypt_tkip
+rtllib_crypt_wep
+rtlwifi
+rts5208
+rtsx_pci
+rtsx_pci_ms
+rtsx_pci_sdmmc
+rtsx_usb
+rtsx_usb_ms
+rtsx_usb_sdmmc
+rtw88
+rtwpci
+rx51_battery
+rxrpc
+s1d13xxxfb
+s2250
+s2255drv
+s2io
+s2mpa01
+s2mps11
+s3fb
+s3fwrn5
+s3fwrn5_i2c
+s526
+s5c73m3
+s5h1409
+s5h1411
+s5h1420
+s5h1432
+s5k4ecgx
+s5k5baf
+s5k6a3
+s5k6aa
+s5m8767
+s626
+s6sy761
+s921
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7134-go7007
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+samsung-sxgbe
+sata_dwc_460ex
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savagefb
+sbp_target
+sbs-battery
+sbs-charger
+sbs-manager
+sc16is7xx
+sc92031
+sca3000
+scanlog
+sch_atm
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+sctp
+sctp_diag
+sd_adc_modulator
+sdhci
+sdhci-cadence
+sdhci-of-aspeed
+sdhci-of-at91
+sdhci-of-esdhc
+sdhci-of-hlwd
+sdhci-omap
+sdhci-pci
+sdhci-pltfm
+sdhci-xenon-driver
+sdhci_am654
+sdhci_f_sdh30
+sdio_uart
+seed
+sensorhub
+ser_gigaset
+serial_ir
+serio_raw
+sermouse
+serpent_generic
+serport
+ses
+sfc
+sfc-falcon
+sfp
+sgi_w1
+sgp30
+sh_veu
+sha1-powerpc
+sha3_generic
+shark2
+shiftfs
+sht15
+sht21
+sht3x
+shtc1
+si1133
+si1145
+si2157
+si2165
+si2168
+si21xx
+si4713
+si476x-core
+si7005
+si7020
+sidewinder
+sierra
+sierra_net
+sifive
+sii902x
+sii9234
+sil-sii8620
+sil164
+silead
+siox-bus-gpio
+siox-core
+sir_ir
+sirf-audio-codec
+sis190
+sis5595
+sis900
+sis_i2c
+sisfb
+sisusbvga
+sit
+siw
+sja1000
+sja1000_isa
+sja1000_platform
+sja1105
+skd
+skfp
+skge
+sky2
+sky81452
+sky81452-backlight
+sky81452-regulator
+sl811-hcd
+slcan
+slg51000-regulator
+slicoss
+slim-qcom-ctrl
+slimbus
+slip
+slram
+sm3_generic
+sm4_generic
+sm501
+sm501fb
+sm712fb
+sm750fb
+sm_common
+sm_ftl
+smartpqi
+smb347-charger
+smc
+smc_diag
+smipcie
+smm665
+smsc
+smsc47m192
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smscufx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-aloop
+snd-als4000
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-bcd2000
+snd-bebob
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dice
+snd-dummy
+snd-echo3g
+snd-ens1370
+snd-ens1371
+snd-fireface
+snd-firewire-digi00x
+snd-firewire-lib
+snd-firewire-motu
+snd-firewire-tascam
+snd-fireworks
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-ca0110
+snd-hda-codec-ca0132
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-generic
+snd-hda-codec-hdmi
+snd-hda-codec-idt
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-core
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel-dspcfg
+snd-intel8x0
+snd-intel8x0m
+snd-isight
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lola
+snd-lx6464es
+snd-mia
+snd-mixart
+snd-mixer-oss
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxfw
+snd-oxygen
+snd-oxygen-lib
+snd-pcm
+snd-pcm-dmaengine
+snd-pcxhr
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ac97
+snd-soc-acp-da7219mx98357-mach
+snd-soc-acp-rt5645-mach
+snd-soc-adau-utils
+snd-soc-adau1701
+snd-soc-adau1761
+snd-soc-adau1761-i2c
+snd-soc-adau1761-spi
+snd-soc-adau17x1
+snd-soc-adau7002
+snd-soc-ak4104
+snd-soc-ak4118
+snd-soc-ak4458
+snd-soc-ak4554
+snd-soc-ak4613
+snd-soc-ak4642
+snd-soc-ak5386
+snd-soc-ak5558
+snd-soc-alc5623
+snd-soc-audio-graph-card
+snd-soc-bd28623
+snd-soc-bt-sco
+snd-soc-core
+snd-soc-cpcap
+snd-soc-cs35l32
+snd-soc-cs35l33
+snd-soc-cs35l34
+snd-soc-cs35l35
+snd-soc-cs35l36
+snd-soc-cs4265
+snd-soc-cs4270
+snd-soc-cs4271
+snd-soc-cs4271-i2c
+snd-soc-cs4271-spi
+snd-soc-cs42l42
+snd-soc-cs42l51
+snd-soc-cs42l51-i2c
+snd-soc-cs42l52
+snd-soc-cs42l56
+snd-soc-cs42l73
+snd-soc-cs42xx8
+snd-soc-cs42xx8-i2c
+snd-soc-cs43130
+snd-soc-cs4341
+snd-soc-cs4349
+snd-soc-cs53l30
+snd-soc-cx2072x
+snd-soc-da7219
+snd-soc-dmic
+snd-soc-es7134
+snd-soc-es7241
+snd-soc-es8316
+snd-soc-es8328
+snd-soc-es8328-i2c
+snd-soc-es8328-spi
+snd-soc-fsl-asrc
+snd-soc-fsl-audmix
+snd-soc-fsl-esai
+snd-soc-fsl-micfil
+snd-soc-fsl-sai
+snd-soc-fsl-spdif
+snd-soc-fsl-ssi
+snd-soc-gtm601
+snd-soc-hdmi-codec
+snd-soc-imx-audmux
+snd-soc-inno-rk3036
+snd-soc-lochnagar-sc
+snd-soc-max9759
+snd-soc-max98088
+snd-soc-max98357a
+snd-soc-max98373
+snd-soc-max98504
+snd-soc-max9860
+snd-soc-max9867
+snd-soc-max98927
+snd-soc-mikroe-proto
+snd-soc-msm8916-analog
+snd-soc-msm8916-digital
+snd-soc-mt6351
+snd-soc-mt6358
+snd-soc-nau8540
+snd-soc-nau8810
+snd-soc-nau8822
+snd-soc-nau8824
+snd-soc-pcm1681
+snd-soc-pcm1789-codec
+snd-soc-pcm1789-i2c
+snd-soc-pcm179x-codec
+snd-soc-pcm179x-i2c
+snd-soc-pcm179x-spi
+snd-soc-pcm186x
+snd-soc-pcm186x-i2c
+snd-soc-pcm186x-spi
+snd-soc-pcm3060
+snd-soc-pcm3060-i2c
+snd-soc-pcm3060-spi
+snd-soc-pcm3168a
+snd-soc-pcm3168a-i2c
+snd-soc-pcm3168a-spi
+snd-soc-pcm512x
+snd-soc-pcm512x-i2c
+snd-soc-pcm512x-spi
+snd-soc-rk3328
+snd-soc-rl6231
+snd-soc-rt5616
+snd-soc-rt5631
+snd-soc-rt5645
+snd-soc-sgtl5000
+snd-soc-si476x
+snd-soc-sigmadsp
+snd-soc-sigmadsp-i2c
+snd-soc-sigmadsp-regmap
+snd-soc-simple-amplifier
+snd-soc-simple-card
+snd-soc-simple-card-utils
+snd-soc-spdif-rx
+snd-soc-spdif-tx
+snd-soc-ssm2305
+snd-soc-ssm2602
+snd-soc-ssm2602-i2c
+snd-soc-ssm2602-spi
+snd-soc-ssm4567
+snd-soc-sta32x
+snd-soc-sta350
+snd-soc-sti-sas
+snd-soc-tas2552
+snd-soc-tas5086
+snd-soc-tas571x
+snd-soc-tas5720
+snd-soc-tas6424
+snd-soc-tda7419
+snd-soc-tfa9879
+snd-soc-tlv320aic23
+snd-soc-tlv320aic23-i2c
+snd-soc-tlv320aic23-spi
+snd-soc-tlv320aic31xx
+snd-soc-tlv320aic3x
+snd-soc-tpa6130a2
+snd-soc-ts3a227e
+snd-soc-tscs42xx
+snd-soc-tscs454
+snd-soc-uda1334
+snd-soc-wcd9335
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8524
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8737
+snd-soc-wm8741
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8770
+snd-soc-wm8776
+snd-soc-wm8782
+snd-soc-wm8804
+snd-soc-wm8804-i2c
+snd-soc-wm8804-spi
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8960
+snd-soc-wm8962
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8985
+snd-soc-xlnx-formatter-pcm
+snd-soc-xlnx-i2s
+snd-soc-xlnx-spdif
+snd-soc-xtfpga-i2s
+snd-soc-zx-aud96p22
+snd-sof
+snd-sof-of
+snd-sof-pci
+snd-timer
+snd-ua101
+snd-usb-6fire
+snd-usb-audio
+snd-usb-caiaq
+snd-usb-hiface
+snd-usb-line6
+snd-usb-pod
+snd-usb-podhd
+snd-usb-toneport
+snd-usb-usx2y
+snd-usb-variax
+snd-usbmidi-lib
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx-lib
+snd-vx222
+snd-ymfpci
+snic
+snps_udc_core
+snps_udc_plat
+softdog
+softing
+solo6x10
+solos-pci
+sony-btf-mpx
+soundcore
+soundwire-bus
+sp2
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+speakup
+speakup_acntsa
+speakup_apollo
+speakup_audptr
+speakup_bns
+speakup_decext
+speakup_dectlk
+speakup_dummy
+speakup_ltlk
+speakup_soft
+speakup_spkout
+speakup_txprt
+speedfax
+speedtch
+spi-altera
+spi-axi-spi-engine
+spi-bitbang
+spi-butterfly
+spi-cadence
+spi-dln2
+spi-dw
+spi-dw-midpci
+spi-dw-mmio
+spi-gpio
+spi-lm70llp
+spi-loopback-test
+spi-mxic
+spi-nor
+spi-nxp-fspi
+spi-oc-tiny
+spi-pxa2xx-platform
+spi-sc18is602
+spi-sifive
+spi-slave-system-control
+spi-slave-time
+spi-tle62x0
+spi-xcomm
+spi-zynqmp-gqspi
+spi_ks8995
+spidev
+spinand
+spl
+spmi
+sps30
+sr030pc30
+sr9700
+sr9800
+srf04
+srf08
+ssb
+ssb-hcd
+ssd1307fb
+ssfdc
+ssp_accel_sensor
+ssp_gyro_sensor
+ssp_iio
+sst25l
+sstfb
+ssu100
+st
+st-mipid02
+st-nci
+st-nci_i2c
+st-nci_spi
+st1232
+st21nfca_hci
+st21nfca_i2c
+st7586
+st7735r
+st95hf
+st_accel
+st_accel_i2c
+st_accel_spi
+st_drv
+st_gyro
+st_gyro_i2c
+st_gyro_spi
+st_lsm6dsx
+st_lsm6dsx_i2c
+st_lsm6dsx_i3c
+st_lsm6dsx_spi
+st_magn
+st_magn_i2c
+st_magn_spi
+st_pressure
+st_pressure_i2c
+st_pressure_spi
+st_sensors
+st_sensors_i2c
+st_sensors_spi
+st_uvis25_core
+st_uvis25_i2c
+st_uvis25_spi
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stk1160
+stk3310
+stk8312
+stk8ba50
+stkwebcam
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stmfts
+stmfx
+stmmac
+stmmac-platform
+stmpe-adc
+stmpe-keypad
+stmpe-ts
+stowaway
+stp
+stpmic1
+stpmic1_onkey
+stpmic1_regulator
+stpmic1_wdt
+streamzap
+streebog_generic
+stts751
+stv0288
+stv0297
+stv0299
+stv0367
+stv0900
+stv090x
+stv0910
+stv6110
+stv6110x
+stv6111
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+sur40
+surface3_spi
+svgalib
+switchtec
+sx8
+sx8654
+sx9500
+sy8106a-regulator
+sy8824x
+sym53c8xx
+symbolserial
+synaptics_i2c
+synaptics_usb
+synclink
+synclink_gt
+synclinkmp
+syscon-reboot-mode
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+t5403
+tag_8021q
+tag_brcm
+tag_dsa
+tag_edsa
+tag_gswip
+tag_ksz
+tag_lan9303
+tag_mtk
+tag_qca
+tag_sja1105
+tag_trailer
+tap
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tc-dwc-g210
+tc-dwc-g210-pci
+tc-dwc-g210-pltfrm
+tc358743
+tc358764
+tc358767
+tc3589x-keypad
+tc654
+tc74
+tc90522
+tca6416-keypad
+tca8418_keypad
+tcan4x5x
+tcm_fc
+tcm_loop
+tcm_qla2xxx
+tcm_usb_gadget
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcpci
+tcpci_rt1711h
+tcpm
+tcrypt
+tcs3414
+tcs3472
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10071
+tda10086
+tda18212
+tda18218
+tda18250
+tda18271
+tda18271c2dd
+tda1997x
+tda665x
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tda9950
+tda998x
+tdfxfb
+tdo24m
+tea
+tea575x
+tea5761
+tea5767
+tea6415c
+tea6420
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+tef6862
+tehuti
+teranetics
+test_blackhole_dev
+test_bpf
+test_power
+tg3
+tgr192
+thc63lvd1024
+thermal-generic-adc
+thermal_mmio
+thmc50
+ths7303
+ths8200
+thunder_bgx
+thunder_xcv
+ti-adc081c
+ti-adc0832
+ti-adc084s021
+ti-adc108s102
+ti-adc12138
+ti-adc128s052
+ti-adc161s626
+ti-ads1015
+ti-ads124s08
+ti-ads7950
+ti-ads8344
+ti-ads8688
+ti-dac082s085
+ti-dac5571
+ti-dac7311
+ti-dac7612
+ti-lmu
+ti-sn65dsi86
+ti-tfp410
+ti-tlc4541
+ti_am335x_adc
+ti_am335x_tsc
+ti_am335x_tscadc
+ti_usb_3410_5052
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timeriomem-rng
+tipc
+tlan
+tls
+tlv320aic23b
+tm2-touchkey
+tm6000
+tm6000-alsa
+tm6000-dvb
+tmdc
+tmp006
+tmp007
+tmp102
+tmp103
+tmp108
+tmp401
+tmp421
+torture
+toshsd
+touchit213
+touchright
+touchwin
+tpci200
+tpl0102
+tpm_atmel
+tpm_key_parser
+tpm_st33zp24
+tpm_st33zp24_i2c
+tpm_st33zp24_spi
+tpm_tis_spi
+tpm_vtpm_proxy
+tps40422
+tps51632-regulator
+tps53679
+tps6105x
+tps6105x-regulator
+tps62360-regulator
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+tps65086
+tps65086-regulator
+tps65090-charger
+tps65090-regulator
+tps65132-regulator
+tps65218
+tps65218-pwrbutton
+tps65218-regulator
+tps6524x-regulator
+tps6586x-regulator
+tps65910-regulator
+tps65912-regulator
+tps6598x
+tps80031-regulator
+tqmx86
+trace-printk
+trancevibrator
+trf7970a
+tridentfb
+ts2020
+ts_bm
+ts_fsm
+ts_kmp
+tsc2004
+tsc2005
+tsc2007
+tsc200x-core
+tsc40
+tsi568
+tsi57x
+tsl2550
+tsl2563
+tsl2583
+tsl2772
+tsl4531
+tsys01
+tsys02d
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+ttusbir
+ttynull
+tua6100
+tua9001
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw2804
+tw5864
+tw68
+tw686x
+tw9903
+tw9906
+tw9910
+twidjoy
+twl-regulator
+twl4030-madc
+twl4030-pwrbutton
+twl4030-vibra
+twl4030_charger
+twl4030_keypad
+twl4030_madc_battery
+twl4030_wdt
+twl6030-gpadc
+twl6030-regulator
+twl6040-vibra
+twofish_common
+twofish_generic
+typec
+typec_displayport
+typec_nvidia
+typec_ucsi
+typhoon
+u132-hcd
+uPD60620
+u_audio
+u_ether
+u_serial
+uartlite
+uas
+ubi
+ubifs
+ucan
+ucb1400_core
+ucb1400_ts
+ucd9000
+ucd9200
+ucs1002_power
+ucsi_ccg
+uda1342
+udc-core
+udc-xilinx
+udf
+udl
+udlfb
+udp_diag
+udp_tunnel
+ueagle-atm
+ufs
+ufshcd-core
+ufshcd-dwc
+ufshcd-pci
+ufshcd-pltfrm
+uhid
+uio
+uio_aec
+uio_cif
+uio_dmem_genirq
+uio_fsl_elbc_gpcm
+uio_mf624
+uio_netx
+uio_pci_generic
+uio_pdrv_genirq
+uio_pruss
+uio_sercos3
+uleds
+uli526x
+ulpi
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-eneub6250
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-realtek
+ums-sddr09
+ums-sddr55
+ums-usbat
+unix_diag
+upd64031a
+upd64083
+upd78f0730
+us5182d
+usb-conn-gpio
+usb-serial-simple
+usb-storage
+usb251xb
+usb3503
+usb4604
+usb8xxx
+usb_8dev
+usb_debug
+usb_f_acm
+usb_f_ecm
+usb_f_ecm_subset
+usb_f_eem
+usb_f_fs
+usb_f_hid
+usb_f_mass_storage
+usb_f_midi
+usb_f_ncm
+usb_f_obex
+usb_f_phonet
+usb_f_printer
+usb_f_rndis
+usb_f_serial
+usb_f_ss_lb
+usb_f_tcm
+usb_f_uac1
+usb_f_uac1_legacy
+usb_f_uac2
+usb_f_uvc
+usb_gigaset
+usb_wwan
+usbatm
+usbdux
+usbduxfast
+usbduxsigma
+usbhid
+usbip-core
+usbip-host
+usbip-vudc
+usbkbd
+usblcd
+usblp
+usbmisc_imx
+usbmon
+usbmouse
+usbnet
+usbserial
+usbsevseg
+usbtest
+usbtmc
+usbtouchscreen
+usbtv
+usbvision
+usdhi6rol0
+userio
+userspace-consumer
+ushc
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l2-dv-timings
+v4l2-flash-led-class
+v4l2-fwnode
+v4l2-mem2mem
+v4l2-tpg
+vcan
+vcnl4000
+vcnl4035
+vctrl-regulator
+veml6070
+ves1820
+ves1x93
+veth
+vf610_adc
+vf610_dac
+vfio_mdev
+vga16fb
+vgastate
+vgem
+vgg2432a4
+vhci-hcd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+via-rhine
+via-sdmmc
+via-velocity
+via686a
+vicodec
+video-i2c
+video-mux
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videobuf2-common
+videobuf2-dma-contig
+videobuf2-dma-sg
+videobuf2-dvb
+videobuf2-memops
+videobuf2-v4l2
+videobuf2-vmalloc
+videodev
+vim2m
+vimc
+vimc-capture
+vimc-debayer
+vimc-scaler
+vimc-sensor
+viperboard
+viperboard_adc
+virt-dma
+virt_wifi
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_pmem
+virtio_rpmsg_bus
+virtio_scsi
+virtiofs
+virtual
+visor
+vitesse
+vitesse-vsc73xx-core
+vitesse-vsc73xx-platform
+vitesse-vsc73xx-spi
+vivid
+vkms
+vl53l0x-i2c
+vl6180
+vmac
+vme_fake
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vmx-crypto
+vp27smpx
+vport-geneve
+vport-gre
+vport-vxlan
+vpx3220
+vrf
+vringh
+vs6624
+vsock
+vsock_diag
+vsockmon
+vsxxxaa
+vt6655_stage
+vt6656_stage
+vt8231
+vt8623fb
+vub300
+vx855
+vxcan
+vxge
+vxlan
+vz89x
+w1-gpio
+w1_ds2405
+w1_ds2406
+w1_ds2408
+w1_ds2413
+w1_ds2423
+w1_ds2431
+w1_ds2433
+w1_ds2438
+w1_ds250x
+w1_ds2780
+w1_ds2781
+w1_ds2805
+w1_ds28e04
+w1_ds28e17
+w1_smem
+w1_therm
+w5100
+w5100-spi
+w5300
+w6692
+w83773g
+w83781d
+w83791d
+w83792d
+w83793
+w83795
+w83l785ts
+w83l786ng
+wacom
+wacom_i2c
+wacom_serial4
+wacom_w8001
+walkera0701
+wanxl
+warrior
+wbsd
+wcn36xx
+wd719x
+wdrtas
+wdt87xx_i2c
+wdt_pci
+whc-rc
+whci
+whci-hcd
+whiteheat
+wil6210
+wilc1000
+wilc1000-sdio
+wilc1000-spi
+wimax
+winbond-840
+windfarm_core
+wire
+wireguard
+wishbone-serial
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1273-core
+wl12xx
+wl18xx
+wlcore
+wlcore_sdio
+wlcore_spi
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x-ts
+wm831x_backup
+wm831x_bl
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350-regulator
+wm8350_power
+wm8350_wdt
+wm8400-regulator
+wm8739
+wm8775
+wm8994
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusb-wa
+wusbcore
+x25
+x25_asy
+x_tables
+xbox_remote
+xc4000
+xc5000
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xhci-plat-hcd
+xilinx-pr-decoupler
+xilinx-spi
+xilinx-tpg
+xilinx-video
+xilinx-vtc
+xilinx-xadc
+xilinx_gmii2rgmii
+xilinx_ps2
+xilinx_sdfec
+xilinx_uartps
+xillybus_core
+xillybus_of
+xillybus_pcie
+xlnx_vcu
+xor
+xpad
+xsens_mt
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LED
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xtkbd
+xusbatm
+xxhash_generic
+xz_dec_test
+yam
+yealink
+yellowfin
+yurex
+z3fold
+zaurus
+zavl
+zcommon
+zd1201
+zd1211rw
+zd1301
+zd1301_demod
+zet6223
+zforce_ts
+zfs
+zhenhua
+ziirave_wdt
+zl10036
+zl10039
+zl10353
+zl6100
+zlua
+znvpair
+zopt2201
+zpa2326
+zpa2326_i2c
+zpa2326_spi
+zr364xx
+zram
+zstd
+zstd_compress
+zunicode
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/ppc64el/generic.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/ppc64el/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/s390x/generic
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/s390x/generic
@@ -0,0 +1,12707 @@
+EXPORT_SYMBOL	 crypto/ecc 0x16e410ff	vli_from_be64
+EXPORT_SYMBOL	 crypto/ecc 0x1a5faa3a	vli_mod_inv
+EXPORT_SYMBOL	 crypto/ecc 0x4c281912	vli_is_zero
+EXPORT_SYMBOL	 crypto/ecc 0x671f7aa5	ecc_is_key_valid
+EXPORT_SYMBOL	 crypto/ecc 0x7c0fbb00	vli_mod_mult_slow
+EXPORT_SYMBOL	 crypto/ecc 0x9263b417	ecc_point_mult_shamir
+EXPORT_SYMBOL	 crypto/ecc 0x92668805	vli_cmp
+EXPORT_SYMBOL	 crypto/ecc 0x9f6efabd	vli_sub
+EXPORT_SYMBOL	 crypto/ecc 0xa76b31a2	crypto_ecdh_shared_secret
+EXPORT_SYMBOL	 crypto/ecc 0xd6315f31	ecc_gen_privkey
+EXPORT_SYMBOL	 crypto/ecc 0xde867c29	ecc_is_pubkey_valid_partial
+EXPORT_SYMBOL	 crypto/ecc 0xeac9b99a	vli_from_le64
+EXPORT_SYMBOL	 crypto/ecc 0xed4ae15e	ecc_make_pub_key
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x1386c620	crypto_nhpoly1305_update_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x16920520	crypto_nhpoly1305_final
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x200fee34	crypto_nhpoly1305_update
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x33ec2600	crypto_nhpoly1305_final_helper
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x6f7990b3	crypto_nhpoly1305_setkey
+EXPORT_SYMBOL	 crypto/nhpoly1305 0x9133a92e	crypto_nhpoly1305_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x5db4c290	crypto_sha3_init
+EXPORT_SYMBOL	 crypto/sha3_generic 0x730ff810	crypto_sha3_final
+EXPORT_SYMBOL	 crypto/sha3_generic 0xdba8a5a1	crypto_sha3_update
+EXPORT_SYMBOL	 crypto/sm3_generic 0x8d7eef41	crypto_sm3_finup
+EXPORT_SYMBOL	 crypto/sm3_generic 0xe9e95284	crypto_sm3_update
+EXPORT_SYMBOL	 crypto/xor 0x5b6c00e6	xor_blocks
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x127a5901	drbd_set_st_err_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x35131b36	drbd_role_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0x7730f22d	drbd_conn_str
+EXPORT_SYMBOL	 drivers/block/drbd/drbd 0xaf27bebf	drbd_disk_str
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0063c0cf	drm_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0105c2e5	drm_plane_create_zpos_immutable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03156232	__drm_get_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03591cde	drm_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x03fa11c6	drm_mode_is_420_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04059e83	drm_syncobj_find_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04986405	drm_dev_printk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04bd1a77	drm_mode_parse_command_line_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x04ed4caa	drm_atomic_add_affected_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x06f81bad	drm_format_info_block_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x070b28aa	drm_ht_remove_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x07e3482e	drm_property_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x090b7f98	drm_gem_private_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x094cb84f	drm_crtc_arm_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a382ffb	drm_mode_plane_set_obj_prop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0a72f765	drm_clflush_virt_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0b1622d2	drm_pci_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0cbe6e07	drm_mode_create_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0e2d628d	drm_property_create_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0faa1fa9	drm_crtc_vblank_off
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x0fd60df2	drm_get_connector_status_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1061dd16	drm_mode_validate_driver
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x107742a9	drm_get_subpixel_order_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x10c62b61	__drm_printfn_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x114e9118	drm_send_event_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x11c5712e	drm_plane_create_zpos_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x13fe17f0	drm_dev_set_unique
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14340712	drm_object_attach_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x14932958	drm_hdmi_vendor_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1540f7bf	drm_hdcp_update_content_protection
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15d8aa41	__drm_printfn_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x15ee56e8	drm_gem_object_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16ac2597	drm_printf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x16c66718	drm_match_cea_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17000d8e	drm_legacy_ioremap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x17489695	drm_connector_list_iter_end
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1779e720	drm_writeback_prepare_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x183efc4f	drm_mode_object_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1896e15c	drm_writeback_queue_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x18fa22c0	drm_atomic_normalize_zpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a1be32d	drm_panel_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1a411479	drm_syncobj_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1b092aea	drm_atomic_get_new_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c21cade	drm_gem_dmabuf_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1c21cdb6	drm_atomic_get_old_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d12fd6e	drm_mm_insert_node_in_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1d89b66a	drm_crtc_enable_color_mgmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1f781d68	drm_default_rgb_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x1ff118fb	drm_set_preferred_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x20645642	drm_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x21e95796	drm_dev_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x23480541	drm_client_modeset_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2527164a	drm_gem_get_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2693e34f	drm_property_replace_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x269e3bfa	drm_dev_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x271985e0	drm_mode_equal_no_clocks_no_stereo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27359ec3	drm_invalid_op
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x27649aa3	__drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29a075c2	drm_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x29f078d1	drm_mode_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2b85eba3	drm_property_blob_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2ba312c8	drm_connector_init_with_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2c287154	drm_mm_remove_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d50570f	drm_rect_calc_hscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2d97f5ce	drm_client_modeset_commit_force
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2e5dd2b3	drm_mode_validate_ycbcr420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f819e73	drm_writeback_cleanup_job
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x2f81b85a	drm_panel_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3026be8d	drm_irq_install
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3032209f	drm_gem_prime_import_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31b8a5e3	__drm_set_edid_firmware_path
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x31ca8279	drm_i2c_encoder_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x324cc038	drm_panel_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x33db4988	drm_connector_attach_content_protection_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x34a4640a	drm_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x35afae24	__drm_puts_seq_file
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x366cc235	drm_debugfs_create_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36e53535	drm_i2c_encoder_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x36ffe904	drm_object_property_set_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x372ec208	drm_sysfs_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3795cf62	drm_legacy_pci_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x37fce058	drm_atomic_get_connector_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x388c6d21	drm_connector_attach_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x392f1424	drm_edid_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39620260	drm_plane_create_blend_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x39687b22	drm_connector_set_link_status_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x397f3ea7	drm_flip_work_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3a051f63	drm_dev_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b219122	drm_atomic_get_new_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3b920d4b	drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3ba17eab	drm_ht_insert_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c09767e	drm_atomic_get_old_connector_for_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c122d6c	drm_poll
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c2a463f	drm_panel_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c4f47ce	drm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3c7cf0fa	drm_add_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3d268b26	drm_atomic_state_default_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3dd18a08	drm_gem_map_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f4f9dee	__drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3f7bfe61	drm_any_plane_has_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x3fd986b3	drm_gem_unlock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x418d8ec2	drm_crtc_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x41c9018c	drm_i2c_encoder_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x42662fab	drm_property_add_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43d73d3a	drm_gem_object_put_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x43fa0310	drm_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x44c80683	drm_driver_legacy_fb_format
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4572876f	drm_gem_fence_array_add_implicit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x45954a9b	drm_client_buffer_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46a70602	drm_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x46d8b32c	drm_vma_offset_manager_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x48838d69	drm_gem_free_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4a9162b2	drm_encoder_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4b1411fe	drm_gem_dma_resv_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d03718c	drm_atomic_state_clear
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d22b807	drm_mode_equal_no_clocks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d4909c7	drm_calc_vbltimestamp_from_scanoutpos
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d8201bc	drm_writeback_connector_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d8a49f1	drm_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4d8d3193	drm_mode_create_tv_margin_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4db67a08	drm_modeset_unlock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4df61fab	drm_vblank_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e0280b6	drm_mode_hsync
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4e095f11	drm_get_format_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4edfe9b9	drm_mm_scan_color_evict
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x4fee1d95	drm_atomic_set_crtc_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50451958	drm_edid_to_speaker_allocation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x50674de7	drm_timeout_abs_to_jiffies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x51fc3803	drm_format_info_block_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x521c94e8	drm_mode_debug_printmodeline
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52334d92	drm_gem_handle_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x52658f21	drm_writeback_get_out_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x526c0452	drm_client_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x527e3205	drm_mode_match
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x530bd256	drm_panel_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x53e7578e	drm_gem_vm_close
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x54b4e93b	drm_client_dev_hotplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5710ae5c	drm_gem_dmabuf_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57b6efe3	drm_ioctl_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x57e816bd	drm_dev_dbg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a137b40	drm_atomic_get_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a4cd2c3	drm_property_replace_global_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5a998b8d	drm_legacy_ioremap_wc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5baebfb2	drm_get_pci_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d5062b9	drm_mode_create_aspect_ratio_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5d5fbe3a	drm_modeset_lock_all_ctx
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5df6edf0	drm_property_create_bitmask
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5f750ba3	drm_probe_ddc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x5fc3a33f	__drm_mm_interval_first
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x60373db5	drm_detect_monitor_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61a36021	drm_writeback_signal_completion
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61caa1a6	drm_property_create_bool
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x61ff558a	drm_atomic_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x64075359	drm_dev_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x642c4e76	drm_hdmi_avi_infoframe_colorspace
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6483aab9	drm_plane_force_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65078f59	drm_mode_create_from_cmdline_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x65127595	drm_property_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6661bd33	drm_mode_vrefresh
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x67117bc5	drm_vma_node_revoke
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6835dde9	drm_connector_list_iter_begin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x68fb6923	drm_modeset_acquire_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x69a5415a	drm_connector_has_possible_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a32d771	drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6a9d8de3	drm_connector_set_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c166aa9	drm_bridge_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6c92472a	drm_ioctl_kernel
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6d135b3a	drm_gem_prime_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e0bbabe	drm_mm_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e30ba8e	drm_rect_rotate_inv
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6e979c67	drm_connector_attach_vrr_capable_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6ebbe955	drm_bridge_chain_pre_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6edfc62e	drm_mode_config_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6f653be4	drm_gem_dmabuf_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fd24396	drm_event_cancel_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x6fd66821	drm_add_modes_noedid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7118b338	drm_crtc_vblank_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7317fa93	drm_framebuffer_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73b661cd	drm_atomic_private_obj_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x73d7b0bf	drm_syncobj_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x75623761	drm_dev_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x76182e4b	drm_detect_hdmi_monitor
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x761f902d	drm_crtc_set_max_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7621e59c	drm_connector_attach_scaling_mode_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x762a52e9	drm_gem_prime_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7736a8b7	drm_atomic_nonblocking_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77530e9b	drm_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x77fd6cfc	drm_client_framebuffer_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x787925b3	drm_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x789893ef	drm_gem_lock_reservations
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79aefd45	drm_framebuffer_plane_width
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79b98662	drm_gem_map_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x79ecdff5	drm_crtc_vblank_count_and_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7af56a99	drm_calc_timestamping_constants
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7b982195	drm_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7bc658f5	drm_crtc_vblank_waitqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7eb3e7f7	drm_syncobj_get_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x7ebf8b23	drm_crtc_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8003054a	drm_handle_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80112baa	drm_modeset_lock_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80935c79	drm_mm_scan_add_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x80a9eeeb	drm_modeset_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x813d4a3b	drm_gem_create_mmap_offset_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x815cadec	drm_edid_to_sad
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81992424	drm_edid_header_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x81a23c70	drm_property_blob_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x825217a2	drm_event_reserve_init_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x828b2217	drm_mode_probed_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x83061945	drm_modeset_acquire_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x84a4be81	drm_mode_config_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x853eada1	drm_get_cea_aspect_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8563a554	drm_ht_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8601974f	devm_drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x866d91c1	drm_connector_attach_encoder
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x86d85a24	drm_framebuffer_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ab41a	drm_rect_intersect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x871ffd42	drm_mm_replace_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8733cdcb	drm_plane_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a22c39c	drm_dev_has_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8a9f18c4	drm_atomic_set_crtc_for_connector
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8b1944fa	drm_mode_put_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c2a17d8	drm_mode_set_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c3864f0	drm_debugfs_remove_files
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8c6d6a89	drm_mode_create_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8cad4570	drm_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ccd391b	drm_mode_object_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8e65b5ad	drm_clflush_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8ee07835	drm_color_lut_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f02696e	drm_gem_prime_fd_to_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x8f42073a	drm_sysfs_connector_status_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9029495b	drm_connector_attach_max_bpc_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x90429884	drm_crtc_from_index
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x905af65f	drm_mode_set_config_internal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x91fec1cc	drm_rect_calc_vscale
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x92e90c6e	drm_connector_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9347a3e9	drm_syncobj_find
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x93ffc20f	drm_panel_unprepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x947ae5e4	drm_mode_create_tv_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95a9a186	drm_edid_get_monitor_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95dbc76d	drm_ht_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x95feb39f	drm_master_internal_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x96e54bf7	drm_vma_offset_lookup_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x970add8d	drm_bridge_chain_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x974146b7	drm_is_current_master
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x974b783f	drm_get_edid_switcheroo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x979df9c5	drm_plane_create_color_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x98cf5aa4	drm_mode_create_suggested_offset_properties
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9901b94a	drm_atomic_add_affected_connectors
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x99fd20aa	drm_rect_clip_scaled
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9a0ab703	drm_flip_work_queue_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9acb6c78	drm_mode_config_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b34a559	drm_client_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b36ec1d	drm_mode_validate_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b6d47ca	drm_mode_is_420
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9b8a53f5	drm_ht_just_insert_please
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c4246d1	drm_atomic_bridge_chain_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c73ab14	drm_framebuffer_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9c8d1457	drm_mode_equal
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d5291fd	drm_mode_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9d6f6835	drm_prime_sg_to_page_addr_arrays
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9dd26089	drm_mm_scan_init_with_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e56931a	drm_atomic_check_only
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9e7c8a66	drm_atomic_get_crtc_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ea8fa60	drm_flip_work_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0x9ed3738b	drm_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0067a27	drm_modeset_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa017203f	drm_get_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0496ffc	drm_add_override_edid_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa05e48a2	drm_atomic_bridge_chain_post_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0713087	drm_ht_find_item
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa09b276a	drm_state_dump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0b9262a	drm_atomic_state_default_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0fd06c4	drm_property_create_enum
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa0fe3e64	drm_gem_dumb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa13c642f	drm_legacy_pci_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa18da019	drm_legacy_ioremapfree
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2cce7cd	drm_vma_node_is_allowed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa2e4bf0c	drm_mm_reserve_node
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa319042f	drm_pci_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa33ab01d	drm_mode_copy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3604fad	drm_master_internal_acquire
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3a570e7	drm_dev_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa3e33916	drm_vma_offset_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa4194728	drm_connector_set_path_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa42b1b2e	drm_crtc_vblank_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa5c6151e	drm_hdmi_infoframe_set_hdr_metadata
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa6fff66c	drm_client_framebuffer_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8c08831	drm_gem_fence_array_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8dd1393	drm_atomic_state_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa8fb44bd	drm_i2c_encoder_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9d9cfd9	drm_i2c_encoder_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xa9f3fbec	drm_panel_get_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaa96eeaf	drm_dev_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaab3a1f8	drm_master_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaab89084	drm_property_create_object
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaac39ff3	__drm_printfn_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab270147	drm_syncobj_get_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xab623716	drm_atomic_set_fence_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xacf6dcd6	drm_gem_prime_import
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xae277372	__drm_crtc_commit_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaee71bba	drm_gem_dmabuf_export
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaee8564f	drm_connector_attach_content_type_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf6cea1d	drm_display_info_set_bus_formats
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf92a67b	drm_crtc_vblank_on
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xaf95ed9f	drm_atomic_set_mode_prop_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xafe51fea	drm_flip_work_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb053adda	drm_rect_rotate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb06e2136	drm_hdmi_avi_infoframe_quant_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb08a7fe6	drm_connector_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0a08828	drm_gtf_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b05ff5	drm_clflush_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb0b92697	drm_irq_uninstall
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb1e84875	drm_crtc_init_with_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb23bccbc	drm_gem_map_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb26bf25d	drm_mode_set_crtcinfo
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb30d18c8	drm_property_create_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb36291ca	drm_plane_create_alpha_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb418c255	drm_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5cee4eb	drm_mode_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb5ff143c	drm_av_sync_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb60f8917	drm_i2c_encoder_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6127243	drm_need_swiotlb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb643a35c	drm_property_lookup_blob
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb67f5598	drm_modeset_lock_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb6f5303d	drm_mode_get_tile_group
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb788b51d	drm_prime_pages_to_sg
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb7de7124	drm_format_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb877985d	drm_atomic_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8b3ab85	drm_universal_plane_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8bdb3f5	drm_puts
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb8f2a0a5	drm_object_property_get_value
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb92a0007	drm_gem_object_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xb9cad492	__drm_atomic_state_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba2f8c9b	drm_modeset_backoff
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xba4dfc21	drm_vma_offset_manager_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbaa684ec	drm_modeset_lock_single_interruptible
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbadbe7a2	drm_dev_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb311323	drm_mode_create_colorspace_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb50cf05	drm_warn_on_modeset_not_all_locked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbb548ad9	drm_connector_list_update
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd3810a8	drm_gem_object_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd413dff	drm_mode_find_dmt
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbd44bc15	drm_event_reserve_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbde3df38	drm_framebuffer_plane_height
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe12d006	drm_plane_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe24f545	drm_panel_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbe8d321e	drm_connector_init_panel_orientation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbf817f52	drm_send_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfabd9d9	drm_gem_object_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbfdb5544	drm_gtf_mode_complex
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xbff49e87	drm_connector_attach_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc098d0ed	drm_compat_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc19369c0	drm_framebuffer_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc25f3e50	drm_mm_scan_remove_block
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc2a1f8a2	drm_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc307a10c	drm_mm_takedown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc3b515dd	drm_crtc_accurate_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc5992401	__drm_puts_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc6211e8f	drm_framebuffer_unregister_private
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc7336e5f	drm_crtc_send_vblank_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc77f2d32	drm_property_create_signed_range
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xc782bd23	drm_vma_offset_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xca81f09b	drm_cvt_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcaa156f3	drm_client_modeset_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcb2340b8	drm_rect_debug_print
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcbf729ec	drm_crtc_vblank_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcca94dbc	drm_gem_handle_delete
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xccca1ec5	drm_client_modeset_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd02cbba	drm_hdmi_avi_infoframe_from_display_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcd8b879a	drm_err
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcf11a549	drm_flip_work_allocate_task
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xcfab20d9	drm_plane_create_rotation_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd13f9985	drm_edid_block_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd18dec6d	drm_crtc_check_viewport
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd2943c04	drm_noop
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd4e4e4a1	drm_i2c_encoder_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd5d9825f	drm_client_release
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd630da73	drm_connector_list_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd6714be7	drm_gem_put_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd680a377	drm_gem_object_free
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xd96b425a	__drm_printfn_coredump
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda10b301	drm_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xda282b25	drm_panel_detach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdac9bd76	drm_prime_gem_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdd0f278d	drm_dev_unplug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xde2b261c	drm_modeset_drop_locks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdf666902	drm_rotation_simplify
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfca8a40	drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xdfdaeaa1	drm_gem_mmap_obj
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe00bea84	drm_format_info_min_pitch
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe119f511	drm_panel_attach
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1823cf1	drm_gem_create_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe1e4c71a	drm_gem_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2543eba	drm_atomic_state_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe272edde	drm_vma_node_allow
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe280808a	drm_i2c_encoder_mode_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2aa53f3	drm_syncobj_add_point
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe2d85b62	drm_client_buffer_vmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe3bed1da	drm_print_regset32
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe467892c	drm_atomic_set_fb_for_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe61ddd9d	drm_connector_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe660765c	drm_atomic_get_private_obj_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe66cc693	drm_atomic_set_mode_for_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe714a5ff	drm_mode_duplicate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe81d8443	drm_atomic_private_obj_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe83159a2	drm_crtc_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8a034df	drm_dev_exit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xe8d6304a	drm_syncobj_replace_fence
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeadb96e5	drm_gem_objects_lookup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xebcbd82b	drm_wait_one_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeca143c5	drm_connector_set_tile_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed2dc4e0	drm_bridge_chain_mode_fixup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed3b6bc3	drm_mode_is_420_also
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xed8de0de	drm_crtc_vblank_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xede2149c	drm_color_lut_extract
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xeffecee5	drm_connector_update_edid_property
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf03f4e19	drm_gem_vm_open
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf1421d13	drm_mode_sort
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf18e1cc0	drm_mode_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf2b1ef38	drm_gem_unmap_dma_buf
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3dc9014	drm_atomic_bridge_chain_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf3e08048	drm_gem_dmabuf_vunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf440cfed	drm_edid_is_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf5dd797d	drm_hdmi_avi_infoframe_content_type
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf8252665	drm_put_dev
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf95e7574	drm_client_rotation
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf99c9765	drm_bridge_chain_mode_valid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xf9b34549	drm_ioctl_permit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa274fdd	drm_master_get
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa2d291c	drm_mode_get_hv_timing
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfa7f556f	drm_gem_prime_handle_to_fd
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfb22a684	drm_i2c_encoder_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfc0ccfe9	drm_mode_prune_invalid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfd0de52d	drm_flip_work_queue
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xfda66f84	drm_crtc_vblank_restore
+EXPORT_SYMBOL	 drivers/gpu/drm/drm 0xff726d6f	drm_i2c_encoder_save
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x014507f0	drm_atomic_helper_commit_duplicated_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x025f6bff	drm_atomic_helper_commit_cleanup_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x036d6937	drm_atomic_helper_commit_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06807780	drm_kms_helper_poll_disable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x06ef032a	drm_fb_helper_deferred_io
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0a0f329c	drm_dp_downstream_id
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0aa02462	drm_atomic_helper_swap_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0c49a46c	drm_dp_downstream_debug
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0cb934a6	drm_atomic_helper_dirtyfb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0e85450d	drm_fb_helper_debug_enter
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x0fb85a73	drm_dp_dual_mode_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x103beb92	drm_dp_mst_put_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11301ab8	drm_dp_aux_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x11c2e2b4	drm_dp_link_power_down
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x145317b2	drm_fb_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161c5d62	drm_fb_memcpy_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x161edf17	drm_dp_dpcd_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x178256fd	drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b3da4e8	drm_atomic_helper_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1b6ef28f	drm_fb_helper_defio_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1c3da2fd	drm_atomic_helper_commit_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1ca9bd6d	drm_kms_helper_poll_enable
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1dd08b1e	drm_fb_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x1f98903d	drm_helper_force_disable_all
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20041daf	drm_fb_helper_sys_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x20c21317	drm_fbdev_generic_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26815dbc	drm_dp_link_rate_to_bw_code
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2699911c	drm_atomic_helper_setup_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x26a2bc93	drm_fb_helper_sys_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x291982c7	drm_dp_link_power_up
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x29a09d42	drm_fb_helper_cfb_fillrect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ae0225e	drm_lspcon_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ba019fb	drm_helper_encoder_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2bd46502	drm_dp_mst_topology_mgr_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2c3304b6	drm_fb_helper_sys_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ccdc0c6	drm_helper_disable_unused_functions
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2de15d70	drm_fb_helper_unregister_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2e3ca9e7	drm_atomic_helper_update_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x2ead2b27	drm_dp_mst_allocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x335358cc	drm_fb_helper_blank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x338f30dd	drm_fb_helper_ioctl
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x34131df9	drm_fb_helper_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3499c262	drm_atomic_helper_page_flip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3503e680	__drm_atomic_helper_crtc_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3888224c	drm_dp_update_payload_part1
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x392872de	drm_fb_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3a388a51	drm_fb_helper_prepare
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3bffbd51	drm_dp_mst_port_has_audio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3d86cc72	drm_dp_dual_mode_set_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3e8738e5	drm_atomic_helper_cleanup_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x3ed6e0a8	__drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4120f220	drm_dp_atomic_release_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x43ff85c5	drm_dp_stop_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x441d8246	drm_atomic_helper_disable_plane
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x474a890c	drm_kms_helper_hotplug_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x48b62a57	drm_dp_link_train_channel_eq_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4bcfedeb	drm_dp_mst_connector_early_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d1e3083	drm_kms_helper_poll_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4d7c868d	drm_atomic_helper_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4e1b5a39	drm_fb_helper_fbdev_setup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x4edd6b67	drm_atomic_helper_commit_modeset_disables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x50b748e5	drm_dp_mst_atomic_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5407ae9e	drm_dp_get_dual_mode_type_name
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x54e5ba2e	drm_scdc_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5503b6a9	drm_self_refresh_helper_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x55b6c970	drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x56a663e9	drm_dp_dsc_sink_line_buf_depth
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x57a55edf	drm_atomic_helper_wait_for_dependencies
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x582f248e	drm_dp_get_adjust_request_pre_emphasis
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x58d8fcaa	drm_dsc_pps_payload_pack
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x593b20cc	drm_dp_link_configure
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a4734d1	drm_kms_helper_is_poll_worker
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5a74e526	drm_atomic_helper_legacy_gamma_set
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e239e2f	drm_primary_helper_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5e49bcfc	drm_dp_start_crc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5efb41b5	drm_atomic_helper_check_plane_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x5f4c9434	drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6022ecd8	__drm_atomic_helper_connector_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6154269c	drm_fb_swab16
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61574c4f	drm_primary_helper_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x61b4ca31	drm_fb_helper_fill_info
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x626632aa	drm_dp_get_edid_quirks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x62e90068	drm_atomic_helper_async_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x63106ada	drm_fb_xrgb8888_to_rgb565
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6482f047	drm_scdc_set_high_tmds_clock_ratio
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x648d953b	drm_dsc_dp_pps_header_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x65c46001	drm_atomic_helper_async_check
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6717d93e	drm_lspcon_get_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b220aea	drm_atomic_helper_wait_for_fences
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b5c2b06	drm_atomic_helper_damage_iter_next
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6b7da74a	drm_fb_helper_unlink_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6c44ecb5	drm_simple_display_pipe_attach_bridge
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e110be4	drm_dp_mst_detect_port
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6e271749	drm_dp_mst_connector_late_register
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x6ec029cd	drm_gem_fb_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7021f7e2	drm_atomic_helper_commit_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71870c76	drm_plane_enable_fb_damage_clips
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x71ec2d06	drm_gem_fb_create_handle
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x72ae3817	drm_helper_hpd_irq_event
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x73011db0	drm_dp_bw_code_to_link_rate
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x732fcf27	drm_dp_dpcd_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x75f09723	drm_fb_helper_cfb_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x76852b4d	drm_kms_helper_poll_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7a58db0d	drm_dp_check_act_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7c5417ce	drm_fb_helper_sys_copyarea
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7c92cb0f	drm_atomic_helper_check_plane_damage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eb0a437	drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7eea39e6	drm_atomic_helper_damage_merged
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x7fc1dcca	drm_dp_atomic_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x81d30886	drm_dp_mst_topology_mgr_set_mst
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x820e16da	drm_dp_aux_unregister
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x82400026	drm_atomic_helper_plane_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x829b6048	drm_dp_dsc_sink_max_slice_count
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x83d2d4c5	drm_atomic_helper_update_legacy_modeset_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x83e147cb	drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x85619391	drm_atomic_helper_prepare_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8633abb9	drm_atomic_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8bcb44c5	drm_fb_helper_debug_leave
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8d701329	drm_dp_clock_recovery_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8e670d29	drm_fb_helper_set_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x8f1df36f	drm_crtc_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x902f02f5	drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x90babc8b	drm_dp_dpcd_read_link_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x920a925b	drm_dp_dual_mode_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x920af104	drm_atomic_helper_disable_planes_on_crtc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x928444c1	drm_simple_display_pipe_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x92db99f5	drm_gem_fb_simple_display_pipe_prepare_fb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x936e41bd	drm_panel_bridge_remove
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94837e62	drm_atomic_helper_commit_tail_rpm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x94be683a	drm_helper_crtc_in_use
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x956953fe	drm_atomic_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x95a292d9	drm_fb_helper_restore_fbdev_mode_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9617aa4c	drm_dp_read_desc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x96c30b01	drm_dp_find_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x975c38d5	__drm_atomic_helper_crtc_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x98a78e86	drm_fb_helper_alloc_fbi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9be54acf	drm_dp_mst_dump_topology
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ccb9c9f	drm_dp_mst_get_port_malloc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9e94f695	drm_helper_connector_dpms
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0x9ededd1f	drm_fb_helper_set_suspend_unlocked
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa03787fb	drm_self_refresh_helper_update_avg_times
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa13428a5	drm_dp_mst_get_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1a82655	drm_atomic_helper_commit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa1fefe6a	drm_dp_psr_setup_time
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa27aca69	drm_scdc_read
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa3be7d6c	drm_dp_aux_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47125b7	drm_atomic_helper_damage_iter_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa47826e4	drm_dp_calc_pbn_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6f9158e	drm_dp_dual_mode_write
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6fededd	__drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa6ff9496	drm_dp_link_train_clock_recovery_delay
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xa843606e	drm_dp_dsc_sink_supported_input_bpcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xab2086e8	__drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaced22c0	__drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xad74751e	drm_fb_helper_setcmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xaeeb030e	drm_fb_helper_initial_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xafbc30e3	drm_atomic_helper_connector_tv_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb032c65b	drm_atomic_helper_commit_modeset_enables
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb0ffcded	drm_mode_config_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb2358ef4	drm_fb_helper_sys_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb308472e	drm_fb_helper_generic_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb4569cb6	drm_dp_mst_topology_state_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb4d38ec0	drm_dp_mst_topology_mgr_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb51a629d	drm_fb_xrgb8888_to_rgb888_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb88d650b	__drm_atomic_helper_connector_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb89e1b96	__drm_atomic_helper_private_obj_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xb93e2b91	drm_atomic_helper_page_flip_target
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbcd61a73	drm_atomic_helper_commit_hw_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbcf6f091	drm_dp_send_power_updown_phy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xbe6b0cd7	drm_atomic_helper_suspend
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc0c1cafe	drm_atomic_helper_wait_for_vblanks
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc537dce7	drm_dp_dual_mode_get_tmds_output
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc5c99a79	drm_dp_get_adjust_request_voltage
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc91ad2ad	drm_fb_helper_cfb_imageblit
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc9d143a1	drm_fb_helper_output_poll_changed
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xc9fb69ff	drm_fb_helper_fbdev_teardown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xcb53efaf	drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd00bd4bd	drm_atomic_helper_check_planes
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd32a2cb5	drm_helper_resume_force_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd3984ab4	drm_fb_helper_pan_display
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd3b83dbc	drm_dp_dual_mode_max_tmds_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd5b93b68	drm_fb_helper_set_par
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xd6b7d503	drm_helper_probe_detect
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xda83346d	drm_helper_move_panel_connectors_to_head
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe02abfbb	drm_dp_downstream_max_bpc
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe0c6e651	drm_atomic_helper_fake_vblank
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe1180bfa	drm_fb_helper_lastclose
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe4495cc2	drm_scdc_set_scrambling
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe57a6206	drm_mode_config_helper_resume
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5888b96	drm_crtc_helper_set_config
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe5ae789b	devm_drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe78e6000	drm_atomic_helper_wait_for_flip_done
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe7ec0202	drm_crtc_helper_set_mode
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe81153fc	drm_dp_mst_hpd_irq
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe83a35e7	drm_atomic_helper_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xe8c6a745	drm_dp_link_probe
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xeb139a54	drm_atomic_helper_plane_destroy_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xec373337	drm_dp_mst_topology_mgr_destroy
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xecb51915	drm_dp_mst_reset_vcpi_slots
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xedcf81ce	drm_dp_channel_eq_ok
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf005f773	drm_atomic_helper_connector_duplicate_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf048ac3e	drm_dp_mst_topology_mgr_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf1022623	drm_scdc_get_scrambling_status
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf14edce3	drm_self_refresh_helper_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf222794c	drm_fb_xrgb8888_to_gray8
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf2329e89	drm_dp_downstream_max_clock
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3ab6c51	drm_fb_xrgb8888_to_rgb565_dstclip
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf3c1a6e1	drm_atomic_get_mst_topology_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf6069161	drm_atomic_helper_shutdown
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf83ed819	drm_fb_helper_check_var
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8595449	drm_dp_mst_deallocate_vcpi
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xf8668190	__drm_atomic_helper_plane_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfbed6e4e	drm_dp_update_payload_part2
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfc7000af	drm_dp_mst_get_edid
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd11cd40	drm_panel_bridge_add
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfd27466c	drm_atomic_helper_crtc_reset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xfe12bcb9	drm_dsc_compute_rc_parameters
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffd5d578	drm_atomic_helper_check_modeset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_kms_helper 0xffe5a07f	drm_self_refresh_helper_alter_state
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_panel_orientation_quirks 0x2e439142	drm_get_panel_orientation_quirk
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x01eeb234	drm_vram_helper_release_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x0950737b	drm_gem_vram_driver_dumb_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x2205856f	drm_gem_vram_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x2e8e38ce	drm_gem_vram_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x33c42138	drm_vram_mm_file_operations_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x428fbf67	drm_gem_vram_create
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x525bbe42	drm_gem_vram_fill_create_dumb
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x63130cd6	drm_vram_mm_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7448447e	drm_gem_vram_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x7e1f84f2	drm_gem_vram_pin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x896499ac	drm_vram_mm_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x8d3cf0e2	drm_gem_vram_put
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0x9d470763	drm_gem_vram_unpin
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xb2c4b966	drm_gem_vram_driver_dumb_mmap_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbaa1336e	drm_gem_vram_bo_driver_verify_access
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xbeaba459	drm_vram_helper_alloc_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe4841436	drm_gem_vram_offset
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xe9aab4d6	drm_vram_mm_init
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xef56bc29	drm_gem_vram_bo_driver_evict_flags
+EXPORT_SYMBOL	 drivers/gpu/drm/drm_vram_helper 0xf5767bd7	drm_gem_vram_mm_funcs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x09665088	ttm_bo_kunmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x0f1f8bf6	ttm_bo_eviction_valuable
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x159fda80	ttm_mem_global_alloc
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x15df3116	ttm_mem_global_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x17530ac0	ttm_bo_synccpu_write_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1bb6545a	ttm_bo_mem_space
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x1ebb6174	ttm_bo_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x25b0735b	ttm_get_kernel_zone_memory_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x27af383d	ttm_bo_device_release
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x39e32ec4	ttm_mem_io_lock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3cc8a060	ttm_bo_bulk_move_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x3fcbdf6a	ttm_bo_del_sub_from_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x40fa59bb	ttm_fbdev_mmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4157c4cf	ttm_bo_mem_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x415a1e42	ttm_pool_unpopulate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x49d97cce	ttm_bo_evict_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4be10c66	ttm_unmap_and_unpopulate_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4c393d96	ttm_bo_move_to_lru_tail
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4d892592	ttm_mem_io_free
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4d92374f	ttm_page_alloc_debugfs
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x4e059e55	ttm_bo_swapout_all
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x50e51cdb	ttm_bo_wait
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x56c22d9d	ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x5b58eeb3	ttm_dma_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x62092892	ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6324b5e0	ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x67151a45	ttm_tt_set_placement_caching
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x6a89746f	ttm_bo_mem_compat
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x75a8f954	ttm_bo_pipeline_move
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7824fe80	ttm_bo_validate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x7a9c7976	ttm_bo_put
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x82dee490	ttm_bo_dma_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x87c401cb	ttm_kunmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8c123552	ttm_bo_init_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x8c7ef260	ttm_mem_glob
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x96ab338b	ttm_io_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0x9c4d8c39	ttm_bo_acc_size
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa00507c5	ttm_pool_populate
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa33ddd2b	ttm_bo_clean_mm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xa3f71dbe	ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xab3a2531	ttm_populate_and_map_pages
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac0e50d1	ttm_round_pot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xac60cdea	ttm_bo_move_memcpy
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xacb30149	ttm_dma_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xada7b83a	ttm_bo_manager_func
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb060a378	ttm_mem_io_reserve
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb3f24036	ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb550e50e	ttm_mem_io_unlock
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xb833a96a	ttm_bo_move_ttm
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xbb7a72a0	ttm_tt_fini
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc006b566	ttm_bo_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc04d8ce1	ttm_bo_unmap_virtual
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc0ca1bf1	ttm_bo_kmap
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc70dcfff	ttm_bo_device_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xc77f319d	ttm_bo_swapout
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd16d6f3b	ttm_kmap_atomic_prot
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xd17d858b	ttm_tt_bind
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xddddb1e7	ttm_check_under_lowerlimit
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe7aed48a	ttm_eu_reserve_buffers
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xe7e2b214	ttm_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xebaae211	ttm_bo_create
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf865a6cb	ttm_bo_add_to_lru
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xf8a214b5	ttm_bo_init_reserved
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfa6ca7ba	ttm_sg_tt_init
+EXPORT_SYMBOL	 drivers/gpu/drm/ttm/ttm 0xfe60359a	ttm_eu_backoff_reservation
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x442c972b	i2c_bit_add_bus
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0x97c44e72	i2c_bit_algo
+EXPORT_SYMBOL	 drivers/i2c/algos/i2c-algo-bit 0xc9588a41	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x0ae5896d	i2c_smbus_read_byte_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x13427d0d	i2c_verify_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x1e3f4e6f	i2c_del_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x208b958a	i2c_release_client
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x276c6400	i2c_del_driver
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x27b37d63	i2c_smbus_read_byte
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x39ce94b0	i2c_clients_command
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x4a5c472b	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x5a767db3	i2c_smbus_write_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x6113f9aa	i2c_smbus_write_byte
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x629485f7	i2c_transfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x73f60ae7	i2c_add_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x8651acf5	i2c_use_client
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x8d4256b2	i2c_smbus_write_byte_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x8dcf873c	i2c_smbus_read_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x8f778d34	__i2c_transfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x907011d9	__i2c_smbus_xfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x914c64a9	i2c_get_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0x93b2fdba	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xaeac8e37	i2c_verify_client
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xb4e03400	i2c_register_driver
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xbeb02b4f	i2c_transfer_buffer_flags
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xc06a09c7	i2c_smbus_read_i2c_block_data_or_emulated
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xc2c8ed52	i2c_put_adapter
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xcb598d5b	i2c_smbus_xfer
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xd531bfae	i2c_smbus_read_word_data
+EXPORT_SYMBOL	 drivers/i2c/i2c-core 0xfc01c8b8	i2c_smbus_write_word_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x078050e3	ib_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x0ca3443f	ib_send_cm_drep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x140213aa	ib_send_cm_mra
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x1db49af5	ib_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x28a02573	ib_send_cm_lap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x2afbfe02	ib_send_cm_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x42929579	ib_send_cm_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x43816172	ib_send_cm_sidr_rep
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x4793abe0	cm_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6179649d	ib_send_cm_dreq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x69824a14	ibcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x6a940416	ib_cm_notify
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0x9c833a9b	ib_send_cm_rtu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xa01c18f6	ib_cm_insert_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xaa053105	ib_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb2d2a892	ib_send_cm_apr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xb79d8275	ib_send_cm_sidr_req
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xbeb31833	ib_send_cm_rej
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_cm 0xdc454e04	ib_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x036a8207	ibdev_err
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x04aaf189	ib_find_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0601d214	rdma_hold_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x06830b9a	ib_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0750ee35	ib_dispatch_event
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x079c1e44	ib_drain_sq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x08506322	ib_alloc_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0ab5bb23	ib_modify_qp_with_udata
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0b47c8eb	rdma_nl_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0c704a7a	ib_get_cached_lmc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0cb32bc7	ib_get_cached_port_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x0dce3590	ib_mr_pool_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x100bb138	ib_set_client_data
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x121ede4c	ib_modify_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1395cb45	ib_unregister_device_and_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x13f93b2c	ib_get_cached_subnet_prefix
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x14984b6c	ib_get_rmpp_segment
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1678c2c5	rdma_modify_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x18e80788	rdma_resolve_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x193a572a	rdma_read_gid_l2_fields
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1a15b181	ib_map_mr_sg_pi
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1b037462	__rdma_block_iter_start
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e1d3601	rdma_user_mmap_entry_insert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x1e491a04	ib_unmap_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x21859146	rdma_rw_ctx_signature_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x22ceaf1f	ibdev_warn
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x24521b98	rdma_umap_priv_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a728155	rdma_link_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2a91bb33	ib_cache_gid_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x2acf4b07	ib_dealloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x305e5701	rdma_addr_size_kss
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x307d2b0e	rdma_restrack_get_byid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3101660d	rdma_user_mmap_entry_get_pgoff
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x320f0acd	ib_create_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x338680f0	ibnl_put_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x33dc4391	ib_get_vf_config
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36068569	ib_drain_rq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x36d75233	ib_destroy_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x370ebc5a	ib_dereg_mr_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x385407cb	rdma_rw_ctx_post
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x385cfcaa	ib_mr_pool_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x387c643d	rdma_nl_unicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x38e79943	ib_create_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x391fc3fd	ib_device_get_by_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39881710	ib_open_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39a014ed	ib_set_device_ops
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x39e8dbee	ib_rdmacg_uncharge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3d949e6f	ib_query_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3ea0545a	rdma_roce_rescan_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x3fc2387c	ib_ud_header_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x42a1062a	rdma_nl_put_driver_u64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x434c5d10	zgid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x442318a5	ib_mr_pool_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x446098b1	ib_sa_guid_info_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x45fb8985	rdma_nl_chk_listeners
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x472633b5	ib_sa_service_rec_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x48baaa84	ib_register_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49015ed8	ibdev_crit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4907ae42	ib_query_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x49943ab7	ib_set_vf_guid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4c4f681c	ib_init_ah_attr_from_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4cfce991	ib_dealloc_pd_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4d1bd28f	rdma_nl_put_driver_u32_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4dfc04e9	rdma_rw_ctx_destroy
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e155af0	ib_response_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e68c825	rdma_get_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4e90435c	ib_sa_free_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4f960754	ibdev_info
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x4fe5cb00	rdma_init_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x50dbc447	ib_flush_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x54e5e201	rdma_user_mmap_entry_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x55446b04	ib_rdmacg_try_charge
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x55eae885	rdma_rw_mr_factor
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5612ff79	ib_create_ah_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x56b9aa45	ib_device_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5907256d	ib_mad_kernel_rmpp_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x59139711	rdma_addr_cancel
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x59666da3	ib_get_vf_stats
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5e3eda4f	ib_alloc_mr_integrity
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x5f926ff9	ib_sa_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x613b1e2e	ib_is_mad_class_rmpp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x616cb61d	ibnl_put_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6175e3eb	ib_modify_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x61d24c52	ib_rate_to_mbps
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6232e45b	rdma_put_gid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x633ad1af	ibdev_printk
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x64f503ed	ib_init_ah_attr_from_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65265b94	ibdev_emerg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x65fc2a99	ib_map_mr_sg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x68337139	rdma_nl_put_driver_u32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x68b40655	ib_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b21f03e	ib_modify_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b6ce698	ib_sg_to_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6b958320	ib_ud_ip4_csum
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6dd38199	ib_sa_path_rec_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6e59bfbf	ib_dealloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f3614b6	rdma_is_zero_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x6f7a6621	rdma_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7093a5f1	ib_free_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x74936640	rdma_user_mmap_entry_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x74943591	__ib_create_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7546c3f5	rdma_user_mmap_entry_remove
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x75a729a0	rdma_nl_unregister
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x780f813f	ib_create_qp_security
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x787ccc4c	ib_get_mad_data_offset
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b56b034	ib_unregister_driver
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7b7b87be	ib_post_send_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7c8efb72	_ib_alloc_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7d981056	rdma_restrack_uadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7e424b9f	ib_find_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f0ea0fb	ib_fmr_pool_map_phys
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x7f76bc96	ib_get_net_dev_by_params
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x800a81d9	__ib_alloc_cq_any
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x80c870a4	ib_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x81d22c26	ib_find_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x823d3dce	rdma_set_cq_moderation
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82824955	ib_modify_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x82901a2e	ib_check_mr_status
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8399dba7	ib_alloc_fmr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86807989	__ib_alloc_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x86cef180	rdma_addr_size
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x89030225	ib_process_cq_direct
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8be615e5	ib_process_mad_wc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e61faf0	rdma_restrack_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8e7528da	__rdma_block_iter_next
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x8f5a7ab9	rdma_find_gid_by_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90bceab0	ib_drain_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x90e807c7	ib_cache_gid_parse_type_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x938e6459	rdma_nl_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9724a5bb	ib_device_set_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x97c92ae1	ib_unregister_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x98d3264d	ib_init_ah_from_mcmember
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99b23286	ib_modify_qp_is_ok
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x99dfd319	ib_register_mad_snoop
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9b072645	rdma_alloc_netdev
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9be01ddf	ib_register_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9cc4be6d	ib_sa_sendonly_fullmem_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9f4ff2b0	rdma_rw_ctx_destroy_signature
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0x9ff2f4c7	ib_query_port
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa100ce4a	rdma_restrack_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa1bbe9dc	rdma_copy_src_l2_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2a23ba4	ib_free_cq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa2cbfcbd	rdma_query_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa318ce5c	rdma_create_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa397013a	ib_close_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa7b6e901	rdma_nl_put_driver_u64_hex
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xa87bed05	ib_mr_pool_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xac8078c6	roce_gid_type_mask_support
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xadc492ca	ib_create_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xae956dce	ib_rate_to_mult
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb000d631	ib_get_gids_from_rdma_hdr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb00837c3	rdma_move_grh_sgid_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb1824b84	ib_device_get_by_name
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb36e4148	ib_sa_pack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb42677f2	ib_get_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb7852a05	ib_ud_header_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb81a305a	ib_resize_cq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb85fc69f	ib_free_recv_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xb8de3f84	rdma_destroy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbcefe25f	ibdev_alert
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe41d1fe	rdma_rw_ctx_wrs
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbe8fc8ad	ib_modify_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xbefa7852	ib_redirect_mad_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc32b59ff	ib_destroy_fmr_pool
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc771a953	rdma_create_user_ah
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8ab6daf	ib_create_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xc8fe5bc6	ib_attach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcaf759ed	ib_destroy_qp_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcaf7ac8e	rdma_restrack_kadd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xccb350f0	ib_detach_mcast
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcd45a602	rdma_query_gid
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcf45c41f	rdma_restrack_del
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xcfc1a237	ib_destroy_srq_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd15cdf8a	rdma_link_register
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd4399a47	rdma_user_mmap_io
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd4833b64	ib_create_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd6636ca6	rdma_addr_size_in6
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7298a2b	ib_get_eth_speed
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7dbeb3f	rdma_restrack_set_task
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7ee8814	ib_unregister_device_queued
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd7f83fcc	ib_destroy_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd891bcbe	ib_modify_srq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xd8d5b422	ib_cancel_mad
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xda0d50ec	ib_sa_cancel_query
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdca29af3	rdma_nl_unicast_wait
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xdd6c922f	rdma_destroy_ah_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xddea221e	rdma_dev_access_netns
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xde6cbacc	ib_sa_unregister_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe4d1d760	ib_set_vf_link_state
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5387eeb	ib_find_exact_cached_pkey
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5840ec6	ib_wc_status_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe5a78c1e	ib_sa_unpack_path
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe7b52e5f	mult_to_ib_rate
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9ceb556	ib_get_rdma_header_version
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xe9e799fc	ib_ud_header_pack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeade31d7	ibdev_notice
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeb852c32	rdma_port_get_link_layer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xedb5e5da	ib_query_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xeec6adf3	rdma_read_gid_attr_ndev_rcu
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf08e3892	rdma_restrack_put
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1b032f0	ib_port_unregister_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf1cdc308	rdma_move_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4274c83	rdma_copy_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf4662474	ib_unregister_device
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5a925ce	ib_port_register_module_stat
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf5dedb30	rdma_node_get_transport
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf66ec13b	rdma_translate_ip
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6dacc7c	ib_get_device_fw_str
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf6ed3334	ib_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf791abd5	ib_destroy_rwq_ind_table
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf7dedae5	ib_sa_get_mcmember_rec
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8119bdb	ib_create_wq
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8408502	ib_fmr_pool_unmap
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf8642fe5	ib_unregister_mad_agent
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf920e4b3	ib_sa_register_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xf96fc9de	ib_unpack
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfad064f6	rdma_replace_ah_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfb8c4a58	ib_register_event_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc044945	__ib_alloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfc417aa6	rdma_rw_ctx_init
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfea63395	__ib_alloc_pd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_core 0xfff16988	ib_dealloc_xrcd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x12f64d7d	ib_uverbs_get_ucontext_file
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x14e2c335	flow_resources_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x16158a97	ib_umem_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x16e0c0e6	uverbs_destroy_def_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1a20b4b6	uverbs_close_fd
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x1b54bd5d	ib_copy_path_rec_from_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x30b650d9	ib_umem_find_best_pgsz
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x3b10dfdf	_uverbs_get_const
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x46c28d91	uverbs_get_flags32
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x51488469	_uverbs_alloc
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x5aa304f8	uverbs_get_flags64
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x63057f4b	ib_copy_path_rec_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x67a2ff36	ib_umem_stop_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x698c1658	ib_umem_odp_alloc_implicit
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x6ac53c99	uverbs_copy_to
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x77420fb7	uverbs_idr_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x79da5589	ib_umem_odp_unmap_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x7f7f17ee	ib_umem_odp_map_dma_pages
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x926c1ecc	flow_resources_add
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x93afdd64	ib_umem_copy_from
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x97bcb2ea	ib_umem_release
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0x9f0f73fe	ib_umem_activate_invalidation_notifier
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa693d6f7	ib_umem_odp_get
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa7cc0423	ib_umem_odp_alloc_child
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa8ceb38a	ib_umem_page_count
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xa92110f8	ib_copy_qp_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xbde5c050	ib_unregister_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc6234f12	ib_umem_get_peer
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc7140ac3	ib_uverbs_flow_resources_free
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xc9b0332d	ib_copy_ah_attr_to_user
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xd5c43900	uverbs_fd_class
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xde183a71	ib_register_peer_memory_client
+EXPORT_SYMBOL	 drivers/infiniband/core/ib_uverbs 0xeb7f5ea5	ib_umem_odp_release
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x6eff69b6	iw_cm_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0x7cd836cb	iw_cm_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xbab4c585	iw_destroy_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xbd1821ce	iw_cm_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xdc446d2f	iw_cm_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xde874f89	iw_cm_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xe1db176b	iw_create_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf0594adb	iw_cm_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/iw_cm 0xf3df871f	iwcm_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0a8cc012	rdma_set_ack_timeout
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x0adab36a	__rdma_accept
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x12d89643	rdma_connect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x19dfba26	__rdma_create_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x227add5f	rdma_is_consumer_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2b21bd2d	rdma_iw_cm_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x2c2b611a	rdma_set_ib_path
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x33e478f1	rdma_leave_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x4c15ce74	rdma_read_gids
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x67462a36	rdma_disconnect
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7c1dc516	rdma_resolve_route
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7cafc92a	rdma_join_multicast
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x7e356fec	rdma_res_to_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x907df803	rdma_event_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x99f08610	rdma_consumer_reject_data
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9b793d2a	rdma_set_service_type
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0x9f3d613b	rdma_create_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xa8892141	rdma_listen
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xaea7874b	rdma_unlock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xb1ffca8a	rdma_bind_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbd7f9cb9	rdma_destroy_qp
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xbf21c185	rdma_init_qp_attr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xc7690a56	rdma_lock_handler
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd6414517	rdma_reject_msg
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xd76f4071	rdma_reject
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdc493a4d	rdma_get_service_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdd471adc	rdma_resolve_addr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdd7f20b9	rdma_set_reuseaddr
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xdfee297a	rdma_set_afonly
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xe0cd6199	rdma_destroy_id
+EXPORT_SYMBOL	 drivers/infiniband/core/rdma_cm 0xffcd9957	rdma_notify
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x298f22f9	bch_bset_sort_state_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x30cc56bf	bch_bset_init_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x3252bf55	__closure_sync
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x32691456	bch_bkey_try_merge
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x34f8e022	bch_btree_keys_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x407edad2	closure_wait
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x47eb1d6e	bch_bset_fix_invalidated_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x55b72831	closure_sub
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x5d27d8fa	bch_bset_build_written_tree
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x605f12f5	bch_btree_sort_partial
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x742923d8	closure_put
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x771ebf74	bch_btree_sort_lazy
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x79711460	bch_btree_iter_next
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0x9c79f12f	__bch_bset_search
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb61edea2	bch_btree_insert_key
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xb9cef37c	bch_btree_iter_init
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xced5fd02	bch_btree_keys_free
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xe3c17af1	__closure_wake_up
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xf5bdf528	bch_btree_keys_alloc
+EXPORT_SYMBOL	 drivers/md/bcache/bcache 0xfb8b580e	bch_bset_insert
+EXPORT_SYMBOL	 drivers/md/dm-log 0x1a768f66	dm_dirty_log_type_register
+EXPORT_SYMBOL	 drivers/md/dm-log 0x33733d88	dm_dirty_log_create
+EXPORT_SYMBOL	 drivers/md/dm-log 0x3e6e785f	dm_dirty_log_destroy
+EXPORT_SYMBOL	 drivers/md/dm-log 0x518baa4a	dm_dirty_log_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x04a81dc4	dm_snap_cow
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x3e78f491	dm_exception_store_destroy
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x5be52dae	dm_exception_store_create
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0x9ae62cc2	dm_exception_store_type_register
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xaa12fd7e	dm_exception_store_type_unregister
+EXPORT_SYMBOL	 drivers/md/dm-snapshot 0xb0c6b350	dm_snap_origin
+EXPORT_SYMBOL	 drivers/md/raid456 0x03a9c41d	r5c_journal_mode_set
+EXPORT_SYMBOL	 drivers/md/raid456 0xeccff295	raid5_set_cache_size
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0x06abb585	mfd_cell_enable
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0x9380dbdc	mfd_add_devices
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0x9917aa0f	mfd_cell_disable
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xd06a11ed	mfd_remove_devices
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xd9a5ec08	devm_mfd_add_devices
+EXPORT_SYMBOL	 drivers/mfd/mfd-core 0xfdf33486	mfd_clone_cell
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0370bd05	mlx4_SET_PORT_qpn_calc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c96fc39	mlx4_SET_VPORT_QOS_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dc33efd	mlx4_ALLOCATE_VPP_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14a27ae3	mlx4_get_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14f30b4a	mlx4_ALLOCATE_VPP_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17a3521f	mlx4_test_async
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20f44c2f	mlx4_get_slave_from_roce_gid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x237f3b35	mlx4_SET_PORT_fcs_check
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f4736aa	mlx4_is_eq_shared
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cabca82	mlx4_is_eq_vector_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3eea0db2	mlx4_get_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x437a10fa	mlx4_query_diag_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x451f737d	mlx4_get_cpu_rmap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4997fdaf	mlx4_is_slave_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ab6cb76	mlx4_eq_get_irq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x517b320e	mlx4_SET_PORT_PRIO2TC
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53f7f882	mlx4_release_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59ca18bd	get_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d2d8ea4	mlx4_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ac6bb4c	mlx4_get_slave_pkey_gid_tbl_len
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b3ac0bb	mlx4_gen_pkey_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72940eb1	mlx4_SET_PORT_VXLAN
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74552389	mlx4_gen_slaves_port_mgt_ev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75186983	mlx4_test_interrupt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4	mlx4_handle_eth_header_mcast_prio
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80619cf1	mlx4_max_tc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80d8cc72	mlx4_gen_guid_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x832c4cbd	mlx4_tunnel_steer_add
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85331c4a	mlx4_SET_PORT_user_mac
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c3f517b	mlx4_get_eqs_per_port
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cdabc11	set_and_calc_slave_port_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d3a18de	mlx4_assign_eq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93cbcd49	mlx4_SET_PORT_BEACON
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d67bb38	set_phv_bit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3c31a3d	mlx4_SET_PORT_SCHEDULER
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa0164c7	mlx4_get_is_vlan_offload_disabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4eee6c1	mlx4_SET_PORT_general
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd51839b	mlx4_get_roce_gid_from_slave
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6f01dfd	mlx4_get_parav_qkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcca34101	mlx4_SET_PORT_user_mtu
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd1bd9ea	mlx4_gen_port_state_change_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5c19892	mlx4_SET_MCAST_FLTR
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe98e2dea	mlx4_put_slave_node_guid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6b58cb2	mlx4_SET_VPORT_QOS_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9ebab12	mlx4_sync_pkey_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01c7379b	mlx5_core_detach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0752027a	mlx5_cmd_cleanup_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a5faf24	mlx5_rl_is_in_range
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c2ba31e	mlx5_core_query_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0cafec6f	mlx5_eswitch_register_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1172de1e	mlx5_eswitch_get_encap_mode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x136c4db8	mlx5_eswitch_vport_rep
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1452bf50	mlx5_core_destroy_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x156a49a4	mlx5_eq_disable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1699da48	mlx5_vector2eqn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x172e1a95	mlx5_cmd_exec_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x173198aa	mlx5_comp_vectors_count
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17c8a15c	mlx5_core_modify_cq_moderation
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18d4ae45	mlx5_packet_reformat_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1bfbbdc2	mlx5_core_dealloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f1717f0	mlx5_fs_add_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f6459f4	mlx5_packet_reformat_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x203e4f5c	mlx5_eq_enable
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2236b739	mlx5_eq_destroy_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2584ecc2	mlx5_unregister_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x264ccf3c	mlx5_fpga_sbu_conn_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27fa4d63	__tracepoint_mlx5_fs_del_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28972ec9	mlx5_core_query_vendor_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x293552d0	mlx5_fc_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a619c87	mlx5_eswitch_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ef411d2	mlx5_eswitch_get_total_vports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32705594	__tracepoint_mlx5_fs_del_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32b9d903	mlx5_core_destroy_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35e9c516	mlx5_eswitch_uplink_get_proto_dev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37651b47	__tracepoint_mlx5_fs_set_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cf16f25	mlx5_eswitch_unregister_vport_reps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d21af39	mlx5_core_create_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e960390	__tracepoint_mlx5_fw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42782c04	mlx5_fpga_sbu_conn_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x457638df	mlx5_cmd_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46150cf1	__tracepoint_mlx5_fs_del_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a048442	mlx5_core_query_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ca6bb80	mlx5_core_create_mkey
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d134190	mlx5_del_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51d0a344	mlx5_core_roce_gid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53a6f9fb	mlx5_add_flow_rules
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55492b32	mlx5_core_query_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56e6fb58	mlx5_destroy_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5993d2b3	mlx5_comp_irq_get_affinity_mask
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b33181f	mlx5_core_create_tir_out
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5dc2b7a7	mlx5_core_create_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x602d098b	mlx5_get_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7	mlx5_rl_are_equal
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x624df193	mlx5_create_lag_demux_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x628f067f	mlx5_lag_is_roce
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64c6b1a6	mlx5_core_destroy_tir
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x671f34a2	mlx5_fpga_mem_read
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b658e63	mlx5_fpga_mem_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c0fa561	mlx5_modify_header_dealloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ecb1bb7	mlx5_lag_is_sriov
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f7cb9ca	mlx5_eq_update_ci
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x741fc14b	mlx5_cmd_free_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a22926a	mlx5_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ec5d94b	mlx5_fc_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84fb3956	mlx5_alloc_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x874eeff2	mlx5_eq_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8759fd8d	mlx5_core_create_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a25e22	__tracepoint_mlx5_fs_add_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a56802f	mlx5_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c438459	mlx5_get_flow_namespace
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8cd9ba8f	mlx5_core_alloc_pd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8cf47f72	mlx5_notifier_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8eeefaa0	__tracepoint_mlx5_fs_add_fg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92280e61	mlx5_core_create_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x949982dd	mlx5_core_create_rqt
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9621ab20	mlx5_core_destroy_sq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99	mlx5_fc_id
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97747fdf	mlx5_cmd_create_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97b089b1	mlx5_core_destroy_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97d8fab7	mlx5_eq_get_eqe
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99956968	mlx5_lag_is_active
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d663a2b	mlx5_rl_add_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9efdff42	mlx5_query_port_ib_proto_oper
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f0e96b7	mlx5_core_modify_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9fae53f2	mlx5_modify_header_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa272ee38	mlx5_core_attach_mcg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa29d76d1	mlx5_register_interface
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa95c1ecf	mlx5_cmd_destroy_vport_lag
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab3bd875	mlx5_eq_notifier_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae9ea383	__tracepoint_mlx5_fs_del_fte
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xafde5022	mlx5_create_auto_grouped_flow_table
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1ec4be2	mlx5_rl_remove_rate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3779f04	mlx5_rdma_rn_get_params
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4042cbe	mlx5_cmd_cleanup
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5d5379c	mlx5_put_uars_page
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1beb846	mlx5_core_modify_sq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc204acef	mlx5_core_modify_rq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc393056d	mlx5_core_create_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3b8ea5e	mlx5_lag_query_cong_counters
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc46fba19	mlx5_lag_get_roce_netdev
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc502c72c	mlx5_core_dealloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5fb2f1e	mlx5_free_bfreg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc667885f	mlx5_fc_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9bcf0dc	mlx5_cmd_alloc_uar
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca803bcf	mlx5_eswitch_vport_match_metadata_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd61fec9	mlx5_fs_remove_rx_underlay_qpn
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce725c3a	mlx5_debugfs_root
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd18102d9	mlx5_eswitch_get_vport_metadata_for_match
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd256d49e	mlx5_eq_create_generic
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3864d11	mlx5_buf_alloc
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd64c538c	mlx5_core_destroy_rq_tracked
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd842ebf2	mlx5_cmd_init_async_ctx
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcf9b3c6	mlx5_core_destroy_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfd07754	mlx5_core_create_psv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0087a58	mlx5_cmd_set_state
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3ad1c46	mlx5_fpga_get_sbu_caps
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe952a3d4	mlx5_core_destroy_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea1afc18	mlx5_eswitch_add_send_to_vport_rule
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb6fa67e	mlx5_fpga_sbu_conn_sendmsg
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec213ab3	mlx5_core_destroy_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeea57d5a	mlx5_core_modify_tis
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef01bb32	__tracepoint_mlx5_fs_add_ft
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf04fe928	mlx5_core_query_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1c67472	mlx5_core_create_mkey_cb
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf54c4ef5	mlx5_cmd_exec_polling
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfce30528	mlx5_core_create_cq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd95781c	mlx5_core_alloc_transport_domain
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff345541	mlx5_get_fdb_sub_ns
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xd7b9d111	mlxfw_firmware_flash
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02998acf	mlxsw_afa_block_append_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0	mlxsw_afk_key_info_block_encoding_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c	mlxsw_afa_block_append_trap
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0bfc1956	mlxsw_core_res_valid
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf	mlxsw_core_max_ports
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0dd8caa3	mlxsw_reg_trans_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e2b5842	mlxsw_afa_block_append_vlan_modify
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c	mlxsw_afk_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382	mlxsw_afk_key_info_put
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852	mlxsw_core_flush_owq
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1ee13548	mlxsw_core_skb_receive
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1f93326b	mlxsw_core_event_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0	mlxsw_afa_block_cur_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68	mlxsw_core_cpu_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x264ec35f	mlxsw_env_get_module_eeprom
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x277110a7	mlxsw_core_port_devlink_port_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a50f22b	mlxsw_core_skb_transmit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3	mlxsw_core_read_frc_h
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2decde87	mlxsw_core_fw_flash_start
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x35ba2254	mlxsw_afk_values_add_u32
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f123442	mlxsw_core_kvd_sizes_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e	mlxsw_afa_block_terminate
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x456135a3	mlxsw_afa_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e	mlxsw_afk_key_info_blocks_count_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47fd6eee	mlxsw_core_fw_flash_end
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4818bd55	mlxsw_core_trap_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x49cfdcac	mlxsw_core_driver_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a6ed376	mlxsw_core_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e2424ee	mlxsw_reg_trans_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79	mlxsw_core_bus_device_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5e3bfe2d	mlxsw_core_trap_action_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c	mlxsw_afa_block_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab	mlxsw_afa_block_commit
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x632314f1	mlxsw_cmd_exec
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c	mlxsw_core_port_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4	mlxsw_afk_key_info_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6da41be8	mlxsw_afa_block_append_mirror
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6eae9705	mlxsw_core_port_eth_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71e1d813	mlxsw_core_port_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2	mlxsw_afk_key_info_subset
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x76a65e3b	mlxsw_core_port_init
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398	mlxsw_core_read_frc_l
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f	mlxsw_afa_block_jump
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851	mlxsw_afa_block_first_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0	mlxsw_afa_block_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198	mlxsw_reg_write
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ba5fa7e	mlxsw_core_lag_mapping_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533	mlxsw_core_schedule_dw
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d	mlxsw_reg_trans_bulk_wait
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d	mlxsw_afa_destroy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494	mlxsw_afk_encode
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa3d0d2b6	mlxsw_afa_block_append_fwd
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88	mlxsw_reg_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb0717797	mlxsw_afa_block_append_fid_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5e762fa	mlxsw_afk_values_add_buf
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e	mlxsw_afa_block_append_trap_and_forward
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d	mlxsw_afk_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc89995a	mlxsw_core_rx_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbe82d6cc	mlxsw_env_get_module_info
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbeac05cd	mlxsw_afk_create
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c	mlxsw_core_driver_priv
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfd01f33	mlxsw_core_port_ib_set
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc03fd6bb	mlxsw_core_res_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc1116418	mlxsw_core_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc9c2e4cc	mlxsw_core_lag_mapping_clear
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcd55d06d	mlxsw_core_trap_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1a82f0b	mlxsw_core_lag_mapping_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd252e62d	mlxsw_core_skb_transmit_busy
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf	mlxsw_afa_block_append_allocated_counter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9	mlxsw_core_schedule_work
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae	mlxsw_afa_block_append_mcrouter
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xda6ee447	mlxsw_core_rx_listener_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1	mlxsw_afa_block_continue
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e	mlxsw_afa_block_first_kvdl_index
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeff4950	mlxsw_core_event_listener_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd	mlxsw_afa_block_activity_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe23aa988	mlxsw_core_resources_query
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe65cb850	mlxsw_core_bus_device_register
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf10c680f	mlxsw_core_ptp_transmitted
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf2ca3bae	mlxsw_core_res_query_enabled
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf4909bea	mlxsw_core_port_type_get
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf76df3e2	mlxsw_afa_block_append_drop
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25	mlxsw_core_cpu_port_fini
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x3b394b7c	mlxsw_pci_driver_unregister
+EXPORT_SYMBOL	 drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xa51ed37e	mlxsw_pci_driver_register
+EXPORT_SYMBOL	 drivers/net/phy/bcm-phy-lib 0xd2575f17	bcm54xx_auxctl_write
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x004fec1b	phy_start_aneg
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x03ee032e	phy_validate_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x05e4cea0	__mdiobus_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0a0d1756	phy_write_paged
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0afdee3b	phy_device_remove
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0c881bce	genphy_restart_aneg
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0cc81298	mdiobus_alloc_size
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0dc41c4d	phy_start
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x0e2166d1	phy_init_hw
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x100a60cd	genphy_read_status
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x11fe3009	genphy_soft_reset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1419329c	genphy_config_eee_advert
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1437d278	phy_modify_paged
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x15fb7a5c	phy_write_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1b2f5367	phy_driver_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x1d4ba0b0	genphy_read_abilities
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x22f1d820	phy_advertise_supported
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x230d225f	phy_connect
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2ab39e31	phy_get_eee_err
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2c06abb0	phy_drivers_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2c0e3f9c	genphy_setup_forced
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x2c4f9a57	mdiobus_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3096a3ff	phy_resume
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x30d30490	phy_set_max_speed
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x32775f86	mdio_device_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x32c60402	phy_read_paged
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x35388bee	__mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x365347a1	mdio_driver_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3653d5e3	phy_find_first
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x376e9761	phy_register_fixup_for_uid
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3d670c02	phy_attached_print
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3efe1703	phy_unregister_fixup_for_id
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x3f0d9b4a	phy_reset_after_clk_enable
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x44634d45	phy_support_asym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x449cf064	phy_set_sym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x452d1c69	phy_ethtool_ksettings_set
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x4e584478	phy_ethtool_ksettings_get
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x4f941910	phy_attached_info
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5160c618	mdio_device_reset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x558d7a7f	genphy_aneg_done
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x57e0fc32	phy_aneg_done
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x57e20943	phy_register_fixup
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x588ca990	phy_mii_ioctl
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x58a205fa	phy_queue_state_machine
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5a68c620	phy_request_interrupt
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5b49022b	phy_device_free
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5c78c7be	mdio_driver_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5d9a713a	mdiobus_read
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5e275130	phy_ethtool_set_eee
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x5eec48d8	genphy_update_link
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6069f87d	get_phy_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6129cf42	phy_mac_interrupt
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x646c3a40	mdiobus_read_nested
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x67a4c69d	phy_ethtool_get_eee
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6b4d961f	phy_register_fixup_for_id
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x6edd488f	genphy_read_lpa
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x707d1f6c	phy_print_status
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x73d90822	phy_ethtool_sset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x75a0a08f	phy_device_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x75b8eccf	mdio_bus_type
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x7c4f8802	phy_driver_register
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x7f1f6855	phy_connect_direct
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x7fcb87a2	phy_detach
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x82af48e7	phy_remove_link_mode
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x82db615f	phy_read_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x84cd8849	__mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x85f1ba47	__phy_write_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x94972021	phy_stop
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x9550c96a	mdiobus_unregister_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x96ff81b6	phy_ethtool_set_wol
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x9b1b257e	__phy_resume
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0x9b3d867a	mdiobus_write
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa39d4060	mdiobus_get_phy
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xa64660ef	mdiobus_scan
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xad647c02	mdiobus_free
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xad78eaa2	genphy_resume
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xb334ca1e	phy_device_create
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xb517e70e	genphy_read_mmd_unsupported
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xb86d2f86	phy_loopback
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xbe246c0a	mdio_device_free
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc1f553e9	phy_set_asym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc5e757da	phy_attach
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc633d82d	phy_unregister_fixup
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xc8bbcb30	phy_support_sym_pause
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xcc148161	phy_init_eee
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xcc290326	phy_ethtool_get_wol
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xce2363f7	__phy_read_mmd
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xce74ff70	phy_ethtool_get_link_ksettings
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd25cbb44	__genphy_config_aneg
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd5b49b3d	phy_ethtool_set_link_ksettings
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd5d78522	mdio_device_create
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xd738ca1b	phy_unregister_fixup_for_uid
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xdca4fcd9	phy_ethtool_nway_reset
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xdf394853	mdio_device_remove
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe1babb13	mdiobus_write_nested
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe265b980	genphy_write_mmd_unsupported
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe2fb2432	mdiobus_is_registered_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe37da117	phy_drivers_unregister
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe3a17640	phy_free_interrupt
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe5d7807d	phy_suspend
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xe8f9c674	phy_disconnect
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xf090437d	genphy_suspend
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xf16d7a41	phy_modify_paged_changed
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xf7114305	phy_attach_direct
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xfc6d2572	mdiobus_register_device
+EXPORT_SYMBOL	 drivers/net/phy/libphy 0xffc588b6	genphy_loopback
+EXPORT_SYMBOL	 drivers/net/team/team 0x05ef9d4c	team_options_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x194e4946	team_mode_unregister
+EXPORT_SYMBOL	 drivers/net/team/team 0x3002bede	team_option_inst_set_change
+EXPORT_SYMBOL	 drivers/net/team/team 0x3df3c4f2	team_options_register
+EXPORT_SYMBOL	 drivers/net/team/team 0x88d5a220	team_options_change_check
+EXPORT_SYMBOL	 drivers/net/team/team 0x8acce7c0	team_mode_register
+EXPORT_SYMBOL	 drivers/net/team/team 0xdd9abd5f	team_modeop_port_change_dev_addr
+EXPORT_SYMBOL	 drivers/net/team/team 0xf9f00d81	team_modeop_port_enter
+EXPORT_SYMBOL	 drivers/pps/pps_core 0x1fe5a50c	pps_event
+EXPORT_SYMBOL	 drivers/pps/pps_core 0x309b70b1	pps_unregister_source
+EXPORT_SYMBOL	 drivers/pps/pps_core 0x69b45756	pps_register_source
+EXPORT_SYMBOL	 drivers/pps/pps_core 0xd22182b4	pps_lookup_dev
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x117f60f1	ptp_clock_event
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x40d7cbae	ptp_find_pin
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x6042bba0	ptp_schedule_worker
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x61407a47	scaled_ppm_to_ppb
+EXPORT_SYMBOL	 drivers/ptp/ptp 0x654131a8	ptp_clock_register
+EXPORT_SYMBOL	 drivers/ptp/ptp 0xa16c02dc	ptp_clock_unregister
+EXPORT_SYMBOL	 drivers/ptp/ptp 0xb631c5a7	ptp_clock_index
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x160bab08	dasd_sleep_on_immediatly
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x18c8a794	dasd_block_clear_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x308cd2fa	dasd_alloc_erp_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x33e4a6dd	dasd_device_clear_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x3a949f46	dasd_default_erp_postaction
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x49cbe02b	dasd_schedule_requeue
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x57675466	dasd_schedule_block_bh
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x6353e2ea	dasd_debug_area
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x6960bd12	dasd_diag_discipline_pointer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x6ad220e1	dasd_sfree_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x6c5937b2	dasd_fmalloc_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x6dffc585	dasd_schedule_device_bh
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x71c5a515	dasd_eer_write
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x80e8efa0	dasd_start_IO
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x81e32672	dasd_block_set_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x851c0036	dasd_log_sense_dbf
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x903b826b	dasd_smalloc_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x91fbd3b6	dasd_add_request_head
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x95bb0d7a	dasd_default_erp_action
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0x9948c625	dasd_set_target_state
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xa2f87a6f	dasd_enable_device
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xa3ba0841	dasd_sleep_on
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xaec2af47	dasd_int_handler
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xb4dcb5de	dasd_sleep_on_queue
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xb9ebd921	dasd_term_IO
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xc134caac	dasd_sleep_on_queue_interruptible
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xc55dbc07	dasd_set_feature
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xc854291d	dasd_ffree_request
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xca6e9209	dasd_add_request_tail
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xd257784b	dasd_kick_device
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xd49843b3	dasd_sleep_on_interruptible
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xe5be3dd5	dasd_log_sense
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xeae3875f	dasd_reload_device
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xf6d3d770	dasd_device_set_timer
+EXPORT_SYMBOL	 drivers/s390/block/dasd_mod 0xfdad0229	dasd_free_erp_request
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0x08e57a2c	hmcdrv_ftp_do
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0x3198b5cb	hmcdrv_ftp_startup
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0x83a6e87f	hmcdrv_ftp_probe
+EXPORT_SYMBOL	 drivers/s390/char/hmcdrv 0xba68949c	hmcdrv_ftp_shutdown
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x000ef0fb	tape_std_read_backward
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x01688b4e	tape_cancel_io
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x034b1956	tape_std_mtreset
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x04187cdb	tape_dump_sense_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x0b230bc1	tape_std_write_block
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x10f355cd	tape_std_unassign
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x13aec2e8	tape_std_assign
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x1bb12c1d	tape_std_mtload
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x1c450d3d	tape_generic_online
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x1e16a111	tape_mtop
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x2546c415	tape_state_verbose
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x257795d4	tape_std_mtfsr
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x2a9df5da	tape_generic_pm_suspend
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x2eaa3627	tape_get_device
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x324dd4ac	tape_std_mtreten
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x3d837f29	tape_std_mterase
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x46629250	tape_std_read_block_id
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x4674ab20	tape_std_mtbsf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x5fa5e022	tape_alloc_request
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x63e5453e	tape_state_set
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x6430231d	tape_std_mteom
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x665fda14	tape_generic_probe
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x66deb66c	tape_op_verbose
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x6957c4ab	tape_do_io_async
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x6e353ba3	tape_std_mtrew
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x747d4ceb	tape_std_read_block
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x7ffd8cdc	tape_free_request
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x8ea109c4	tape_med_state_set
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x8f364ca8	tape_generic_offline
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x99627c48	tape_std_mtbsfm
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x9a94f11d	tape_std_mtweof
+EXPORT_SYMBOL	 drivers/s390/char/tape 0x9ec90372	tape_std_mtoffl
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa0da3397	tape_std_mtnop
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa2f90ead	tape_generic_remove
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa4344fd5	tape_core_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xa99907d1	tape_std_mtbsr
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xae434ec3	tape_do_io_interruptible
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xc5ef0819	tape_std_mtcompression
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xca9a3925	tape_std_mtfsf
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xcff6a822	tape_put_device
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xd1403bb2	tape_std_mtsetblk
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xd3153f3d	tape_do_io
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xd62e0962	tape_std_display
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xda074bc4	tape_std_mtunload
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xe9846655	tape_std_mtfsfm
+EXPORT_SYMBOL	 drivers/s390/char/tape 0xecd0ac41	tape_std_process_eov
+EXPORT_SYMBOL	 drivers/s390/char/tape_34xx 0x0018e86c	tape_34xx_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape_3590 0xcdc51e3e	tape_3590_dbf
+EXPORT_SYMBOL	 drivers/s390/char/tape_class 0x39c406f4	register_tape_dev
+EXPORT_SYMBOL	 drivers/s390/char/tape_class 0x5f123d90	unregister_tape_dev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x42d9a807	ccwgroup_set_online
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x45ea3067	ccwgroup_probe_ccwdev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x49659d00	ccwgroup_create_dev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x721ee474	ccwgroup_remove_ccwdev
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x78cf56c9	ccwgroup_set_offline
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0x9e12b14d	ccwgroup_driver_unregister
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0xe86e1ce7	dev_is_ccwgroup
+EXPORT_SYMBOL	 drivers/s390/cio/ccwgroup 0xeca5d14d	ccwgroup_driver_register
+EXPORT_SYMBOL	 drivers/s390/cio/qdio 0x3197a9c0	qdio_get_next_buffers
+EXPORT_SYMBOL	 drivers/s390/cio/qdio 0x66cc9c05	qdio_start_irq
+EXPORT_SYMBOL	 drivers/s390/cio/qdio 0xd5708930	qdio_stop_irq
+EXPORT_SYMBOL	 drivers/s390/crypto/pkey 0xa2396123	pkey_keyblob2pkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x0327b454	zcrypt_send_cprb
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x0a6c9aa6	zcrypt_queue_alloc
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x0c5c6904	zcrypt_msgtype
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x0ff067e0	cca_check_secaescipherkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x1360e3df	cca_findcard2
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x170d6b33	cca_sec2protkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x1b7996ba	zcrypt_queue_put
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x20a6cee7	cca_get_info
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x274ee02a	ep11_findcard2
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2be1f6aa	ep11_key2protkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x2dc30fe9	cca_findcard
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x326ce0d1	zcrypt_card_alloc
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x35b003e7	zcrypt_card_unregister
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x3d0032e6	zcrypt_queue_free
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x42282502	zcrypt_queue_register
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x4aad03c0	cca_gencipherkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x4bb8a363	__tracepoint_s390_zcrypt_rep
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x52a39222	__tracepoint_s390_zcrypt_req
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x5ac1b821	ep11_check_aeskeyblob
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x5e050fdf	cca_genseckey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x67cedaeb	zcrypt_rescan_req
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x7dd52fc2	ep11_clr2keyblob
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x9032dd84	zcrypt_device_status_mask_ext
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x9992a66f	cca_clr2seckey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0x99db25d4	cca_check_secaeskeytoken
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xa3489692	zcrypt_queue_get
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xa54284be	zcrypt_device_status_ext
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xa84c5d04	zcrypt_card_register
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xad6e9564	zcrypt_queue_unregister
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc0c976b6	ep11_get_domain_info
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc20af440	cca_query_crypto_facility
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc23843b6	ep11_genaeskey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xc3ee9fa0	cca_cipher2protkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xd170a9b1	zcrypt_card_get
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xe1bd0134	zcrypt_card_put
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xea54d73e	cca_clr2cipherkey
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xeb90106a	zcrypt_card_free
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xee077284	ep11_get_card_info
+EXPORT_SYMBOL	 drivers/s390/crypto/zcrypt 0xfa128312	zcrypt_send_ep11_cprb
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0x40b3051a	ctc_mpc_dealloc_ch
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0x56f42138	ctc_mpc_alloc_channel
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0x812fa936	ctc_mpc_establish_connectivity
+EXPORT_SYMBOL	 drivers/s390/net/ctcm 0xf5440dc6	ctc_mpc_flow_control
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x28d3cbe9	fsm_settimer
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x30ab97c9	fsm_modtimer
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x39209ed5	kfree_fsm
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x4947f4b3	fsm_deltimer
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x5bbdc3d4	init_fsm
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0x75223679	fsm_getstate_str
+EXPORT_SYMBOL	 drivers/s390/net/fsm 0xe8ae8e7a	fsm_addtimer
+EXPORT_SYMBOL	 drivers/s390/net/qeth_l2 0x1fc70c43	qeth_osn_deregister
+EXPORT_SYMBOL	 drivers/s390/net/qeth_l2 0xae484ac5	qeth_osn_register
+EXPORT_SYMBOL	 drivers/s390/net/qeth_l2 0xdd57866d	qeth_osn_assist
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x4c5cca18	fcoe_transport_detach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6b0b3075	fcoe_ctlr_set_fip_mode
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x6fd3f17f	fcoe_transport_attach
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x72736adf	fcoe_ctlr_init
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7db7a8c5	fcoe_fcf_get_selected
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0x7fbee0ca	fcoe_ctlr_link_down
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xb5ef6a9e	fcoe_ctlr_els_send
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xd6fabcee	fcoe_ctlr_link_up
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xdd849575	fcoe_ctlr_recv
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xdffdbd44	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL	 drivers/scsi/fcoe/libfcoe 0xfde1bb2d	fcoe_ctlr_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0612c4e9	fc_lport_bsg_request
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0619d065	fc_rport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0682c594	fc_seq_set_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x080076f5	fc_rport_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0a4e41af	fc_lport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x0e1e9dfc	fc_fcp_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x1d0a3ea5	fc_get_host_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x24965f0a	fc_vport_id_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x27efd47c	fc_exch_mgr_free
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2a6065bc	fc_elsct_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x2f479c35	fc_eh_abort
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x38f125a2	fc_elsct_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x3fd67266	fc_lport_flogi_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x42409b7a	fc_fabric_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x456e4f56	fc_rport_terminate_io
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x497ba6a8	fc_exch_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4998c508	fc_exch_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4a025254	fc_exch_mgr_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x4ac96ff4	fc_eh_host_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x54588e14	fc_linkdown
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x580c167a	libfc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x63d8e25a	fc_fc4_register_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x64e1220a	fc_frame_alloc_fill
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x668d93c3	fc_exch_update_stats
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x68ea7513	fc_fcp_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6a599c81	fc_get_host_port_state
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x6b8b9f29	fc_lport_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x73b731ed	fc_get_host_speed
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7817023c	fc_lport_iterate
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7876a033	fc_slave_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7c1af8ea	fc_seq_assign
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x7f3407a7	fc_seq_start_next
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x811811e0	fc_exch_done
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8926167f	fc_lport_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x89b3e7fe	fc_disc_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8b400fe4	fc_linkup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8e37e54a	fc_fabric_login
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x8ef2ee75	fc_lport_logo_resp
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x97c86529	fc_exch_mgr_add
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x98d0a61a	fc_rport_recv_req
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9b223048	fc_exch_mgr_list_clone
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9d50ed7e	fc_rport_destroy
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0x9efb7cf9	fc_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa1bcd198	fc_cpu_mask
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xa72b8ffd	fc_set_rport_loss_tmo
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb0ddd5a1	fc_rport_flush_queue
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb151ab05	fc_queuecommand
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xb4744cb0	fc_rport_logoff
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc1dec69a	_fc_frame_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc51ca6ed	fc_lport_config
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc5a25360	fc_fill_hdr
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc6f90a0e	fc_disc_init
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc716f6fe	fc_eh_device_reset
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xc9cefd7f	fc_exch_mgr_alloc
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xd67fc9fe	fc_exch_seq_send
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xdb315f85	fc_lport_notifier_head
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe0599d3f	fc_rport_lookup
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xe3b341c4	fc_frame_crc_check
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xea2fa153	fc_lport_recv
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf1086d07	fc_lport_set_local_id
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xf2eb24aa	fc_vport_setlink
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfa4667d1	fc_seq_release
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfcfa4200	fc_set_mfs
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfd3e8b81	fc_fc4_deregister_provider
+EXPORT_SYMBOL	 drivers/scsi/libfc/libfc 0xfeeb245b	fc_fill_reply_hdr
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x16497089	sas_suspend_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0x4a8e3d34	try_test_sas_gpio_gp_bit
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xa1fcd534	sas_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/libsas/libsas 0xc09767eb	sas_prep_resume_ha
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x14a1021f	raid_class_attach
+EXPORT_SYMBOL	 drivers/scsi/raid_class 0x69540cb9	raid_class_release
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0aea2de2	fc_remote_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x0b39c078	fc_host_post_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1235a57c	fc_remote_port_rolechg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x1d4477fb	fc_host_fpin_rcv
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x2217fa4f	fc_vport_create
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x375f8bbd	fc_get_event_number
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x475cd53d	fc_eh_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x52746f78	fc_block_scsi_eh
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x6bec5b52	fc_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x89f12501	fc_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0x997cbe71	fc_vport_terminate
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xaa0710f5	fc_block_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xaa28354b	fc_host_post_vendor_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcc014367	fc_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xcdee2b5f	scsi_is_fc_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xd2482975	fc_host_post_fc_event
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_fc 0xf843243e	fc_remote_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x0694b5f0	sas_port_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x07e013bf	sas_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x115421d5	sas_rphy_unlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1466a229	sas_port_delete_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x18ace5b0	sas_expander_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x1cd57bca	sas_end_device_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x203bbe2d	sas_phy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x2a4d7fe8	sas_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x31e08d02	sas_rphy_remove
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x374653d6	sas_rphy_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x374d049f	sas_remove_host
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4a27b3a1	sas_get_address
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4b92b1a8	sas_phy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x4cc81eb8	sas_port_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x503d9ca5	sas_phy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x52fee305	sas_remove_children
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6b4c1c5e	sas_port_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x6f267cdb	sas_phy_alloc
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x74d04f11	sas_port_add_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0x8c5c00a7	sas_rphy_add
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa02fe6e3	sas_port_get_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xa80f4e8a	sas_port_alloc_num
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xaced669b	scsi_is_sas_phy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xc1b59c98	sas_rphy_free
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xddce5b8e	sas_read_port_mode_page
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe5d7cc6a	sas_port_delete
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xe9e94e99	sas_port_mark_backlink
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xef6d6dd3	scsi_is_sas_port
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_sas 0xf0f99afa	scsi_is_sas_rphy
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x0fac2808	spi_display_xfer_agreement
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x14041578	spi_release_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x2a8f76be	spi_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xb209b9be	spi_attach_transport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_spi 0xe81791e2	spi_schedule_dv_device
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x3e160071	srp_timed_out
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x405b6e05	srp_parse_tmo
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0x4d994c13	srp_rport_put
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xd4fa2bf9	srp_reconnect_rport
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xd7372a6f	srp_rport_get
+EXPORT_SYMBOL	 drivers/scsi/scsi_transport_srp 0xe1f13f92	srp_start_tl_fail_timers
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x02f7d030	iscsit_release_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x095a3632	iscsit_increment_maxcmdsn
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0a177463	iscsit_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x0f3cd4c9	iscsit_handle_logout_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x110cf527	iscsit_setup_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1b3d9264	iscsit_process_scsi_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x1e11b2ad	iscsit_check_dataout_payload
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x297c5715	iscsit_build_datain_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x46a8f9f1	iscsit_build_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4a40adef	iscsit_setup_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x4a748ce7	iscsit_sequence_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x5025b061	iscsit_cause_connection_reinstatement
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x51906957	iscsit_build_r2ts_for_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x52480d69	iscsit_logout_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x677fcd4e	iscsit_build_task_mgt_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6873d749	iscsi_target_check_login_request
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x6e24ad90	iscsit_build_logout_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x734c5fac	iscsit_reject_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x77108159	iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7a7b2d62	iscsit_aborted_task
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7b5749ad	__iscsit_check_dataout_hdr
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x7c1b10e7	iscsit_add_cmd_to_immediate_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x81631fb6	iscsit_process_text_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x869ff91d	iscsit_handle_snack
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8de20e1c	iscsit_build_rsp_pdu
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x8fd351a4	iscsit_queue_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0x90e31f05	iscsit_register_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa3dd7148	iscsit_build_nopin_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa4fd41be	iscsit_response_queue
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xa5d001e2	iscsit_process_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xaba5a012	iscsit_get_datain_values
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xadecfcd7	iscsi_change_param_sprintf
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xae3dfe21	iscsit_set_unsolicited_dataout
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xbacbe579	iscsit_tmr_post_handler
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xc1e2edc4	iscsit_find_cmd_from_itt
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xce850ace	iscsit_add_reject
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xdc832c0c	iscsit_unregister_transport
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xee018c2f	iscsit_handle_task_mgt_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf0916c88	iscsit_stop_dataout_timer
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf0fc6d34	iscsit_free_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf17d0d94	iscsit_build_text_rsp
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf34332f0	iscsi_find_param_from_key
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xf96e8f62	iscsit_allocate_cmd
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfac02768	iscsit_setup_nop_out
+EXPORT_SYMBOL	 drivers/target/iscsi/iscsi_target_mod 0xfcfad8bd	iscsit_find_cmd_from_itt_or_dump
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x00eb56db	transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0871ffd6	transport_set_vpd_ident
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x0d5960a7	target_lun_is_rdonly
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x12ffe8d4	transport_alloc_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x142072c0	transport_set_vpd_assoc
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1561010d	target_wait_for_sess_cmds
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1599cb41	sbc_dif_verify
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x17e05d41	sbc_get_device_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x17ec9bde	passthrough_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1badc448	transport_lookup_cmd_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1bb006ef	target_configure_unmap_from_queue
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x1db26883	transport_deregister_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2369039a	target_nacl_find_deve
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2475547f	core_tpg_deregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2a812a1a	target_submit_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x2bab3ae0	transport_generic_handle_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x30c23999	transport_init_se_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x33fbbb49	spc_emulate_evpd_83
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x36f8602b	transport_generic_new_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3a20a9d7	transport_set_vpd_ident_type
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3aa6a37a	target_submit_tmr
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b33362a	transport_lookup_tmr_lun
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3b8b5841	target_show_dynamic_sessions
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x3e055d27	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x40fddaf8	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x44b1b84e	sbc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4657c540	target_register_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4907c636	target_complete_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x4aca1384	sbc_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5596b18d	target_show_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x57f04194	target_undepend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5a9e13bc	transport_copy_sense_to_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x5fd5945d	transport_kmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x60a622de	transport_handle_cdb_direct
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x60c88867	core_tpg_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x638bffb7	target_free_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6a00424b	transport_alloc_session_tags
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x6f255aba	target_put_nacl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x745f6ce6	spc_emulate_inquiry_std
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x74eaee8c	transport_backend_register
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x76457956	transport_kunmap_data_sg
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x76fd78d3	transport_wait_for_tasks
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x79b6c810	core_tpg_get_initiator_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x7a1d0d3c	target_alloc_sgl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x89729b64	target_send_busy
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x91c2f585	spc_emulate_report_luns
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0x97bdae4b	target_submit_cmd_map_sgls
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa2990915	target_tpg_has_node_acl
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xa9e59550	passthrough_attrib_attrs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xace11593	transport_generic_request_failure
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb2600274	target_put_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb260be5a	target_to_linux_sector
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb2ccfcac	core_tpg_set_initiator_node_tag
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xb816a1ea	target_complete_cmd_with_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc10fb55a	target_setup_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc6b81631	transport_send_check_condition_and_sense
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc6ee8111	target_unregister_template
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xc9b46a64	target_get_sess_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xcd5e6e2a	__transport_register_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xced91e2f	transport_init_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd1769586	target_depend_item
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xd666b1de	transport_free_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdc6dd63a	core_allocate_nexus_loss_ua
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xdd81bbec	core_tmr_alloc_req
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe3379833	target_remove_session
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe45cc29f	target_execute_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xe8322476	core_alua_check_nonop_delay
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xec1684bf	target_backend_unregister
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xed0911d0	transport_deregister_session_configfs
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xee0d5a33	transport_generic_free_cmd
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf3c2dfe0	transport_set_vpd_proto_id
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf564867e	target_set_cmd_data_length
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xf5d942b3	spc_parse_cdb
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfcbf27b5	target_sess_cmd_list_set_waiting
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfebc98ec	sbc_dif_copy_prot
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfef3cb72	sbc_get_write_same_sectors
+EXPORT_SYMBOL	 drivers/target/target_core_mod 0xfffd96c5	target_setup_cmd_from_cdb
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x2a43e6de	uart_resume_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x35dc9465	uart_register_driver
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x78764c8f	uart_write_wakeup
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x78f0b2d9	uart_update_timeout
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0x80a9b3ea	uart_get_baud_rate
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xa2028698	uart_unregister_driver
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xa4080978	uart_remove_one_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xc9c50056	uart_suspend_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xceb5d60c	uart_get_divisor
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xdb3d98dd	uart_match_port
+EXPORT_SYMBOL	 drivers/tty/serial/serial_core 0xe4ec376f	uart_add_one_port
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x0cf149ad	mdev_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x13c93811	mdev_from_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x145d5a3b	mdev_unregister_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x5bb12238	mdev_unregister_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x6d47baa3	mdev_register_driver
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x8547bf66	mdev_get_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x878b2829	mdev_set_iommu_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0x91ab7d8f	mdev_get_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcb179298	mdev_register_device
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xcdf88f2c	mdev_set_drvdata
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xe19e5980	mdev_parent_dev
+EXPORT_SYMBOL	 drivers/vfio/mdev/mdev 0xf80330cb	mdev_uuid
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x314b5905	vfio_pin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x4232a0c3	vfio_info_cap_shift
+EXPORT_SYMBOL	 drivers/vfio/vfio 0x66884ce8	vfio_unpin_pages
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xaf8a4a7f	vfio_set_irqs_validate_and_prepare
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xf3411eb8	vfio_info_add_capability
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xf4ae1924	vfio_register_notifier
+EXPORT_SYMBOL	 drivers/vfio/vfio 0xf9fe0b8e	vfio_unregister_notifier
+EXPORT_SYMBOL	 drivers/vhost/vhost 0x2401b06d	vhost_chr_poll
+EXPORT_SYMBOL	 drivers/vhost/vhost 0xd436a824	vhost_chr_write_iter
+EXPORT_SYMBOL	 drivers/video/fbdev/core/cfbcopyarea 0x281ded92	cfb_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/cfbfillrect 0xdc2fcefd	cfb_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/cfbimgblt 0xc1e34559	cfb_imageblit
+EXPORT_SYMBOL	 drivers/video/fbdev/core/syscopyarea 0x58e267fc	sys_copyarea
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysfillrect 0xacd04493	sys_fillrect
+EXPORT_SYMBOL	 drivers/video/fbdev/core/sysimgblt 0x0048c291	sys_imageblit
+EXPORT_SYMBOL	 fs/fscache/fscache 0x00e86f16	__fscache_enable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x0954ddb2	__fscache_wait_on_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2be4b033	__fscache_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x2df10a53	__fscache_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x37bc3242	__fscache_wait_on_invalidate
+EXPORT_SYMBOL	 fs/fscache/fscache 0x42b1b99f	fscache_object_mark_killed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4b087424	fscache_object_destroy
+EXPORT_SYMBOL	 fs/fscache/fscache 0x4cfbbca3	fscache_mark_page_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x510f6c11	__fscache_acquire_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x5b68d919	fscache_init_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x61adb58e	fscache_object_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6446afe2	fscache_io_error
+EXPORT_SYMBOL	 fs/fscache/fscache 0x6aed80e9	__fscache_disable_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0x70667f79	fscache_withdraw_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x74530ecd	fscache_op_debug_id
+EXPORT_SYMBOL	 fs/fscache/fscache 0x77154e09	__fscache_uncache_all_inode_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0x7a770642	fscache_mark_pages_cached
+EXPORT_SYMBOL	 fs/fscache/fscache 0x866bf05f	__fscache_attr_changed
+EXPORT_SYMBOL	 fs/fscache/fscache 0x95f5893b	fscache_add_cache
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9b726f39	__fscache_maybe_release_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0x9fcca4a8	fscache_enqueue_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xa8485754	fscache_check_aux
+EXPORT_SYMBOL	 fs/fscache/fscache 0xade76c1a	__fscache_unregister_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb1c300ce	__fscache_readpages_cancel
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb217e500	__fscache_relinquish_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xb61eefd1	__fscache_read_or_alloc_pages
+EXPORT_SYMBOL	 fs/fscache/fscache 0xbf778bcb	__fscache_uncache_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc792832f	__fscache_check_consistency
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc8376b6d	fscache_operation_init
+EXPORT_SYMBOL	 fs/fscache/fscache 0xc9a12c07	__fscache_check_page_write
+EXPORT_SYMBOL	 fs/fscache/fscache 0xcf9eab26	fscache_fsdef_index
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd022f439	__fscache_update_cookie
+EXPORT_SYMBOL	 fs/fscache/fscache 0xd5348360	fscache_cache_cleared_wq
+EXPORT_SYMBOL	 fs/fscache/fscache 0xdcd5b211	fscache_object_retrying_stale
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe1bd54cb	fscache_object_lookup_negative
+EXPORT_SYMBOL	 fs/fscache/fscache 0xe433acac	fscache_put_operation
+EXPORT_SYMBOL	 fs/fscache/fscache 0xea5b3d16	__fscache_write_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xeb03f56d	fscache_obtained_object
+EXPORT_SYMBOL	 fs/fscache/fscache 0xed549ce6	__fscache_register_netfs
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf03990cd	__fscache_read_or_alloc_page
+EXPORT_SYMBOL	 fs/fscache/fscache 0xf53e219d	fscache_op_complete
+EXPORT_SYMBOL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2	o2hb_global_heartbeat_active
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x2217a65e	qtree_release_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x29ded403	qtree_get_next_id
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x6e1b9b6c	qtree_entry_unused
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x8b47bbb2	qtree_write_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0x9a279450	qtree_delete_dquot
+EXPORT_SYMBOL	 fs/quota/quota_tree 0xf9f9e3f7	qtree_read_dquot
+EXPORT_SYMBOL	 lib/crc-itu-t 0xd819a524	crc_itu_t_table
+EXPORT_SYMBOL	 lib/crc-itu-t 0xdf59602c	crc_itu_t
+EXPORT_SYMBOL	 lib/crc7 0x65aaf037	crc7_be_syndrome_table
+EXPORT_SYMBOL	 lib/crc7 0xc440541c	crc7_be
+EXPORT_SYMBOL	 lib/crc8 0xaa8106bc	crc8_populate_msb
+EXPORT_SYMBOL	 lib/crc8 0xc3cd034d	crc8_populate_lsb
+EXPORT_SYMBOL	 lib/crc8 0xfa0da958	crc8
+EXPORT_SYMBOL	 lib/crypto/libarc4 0x2bb32ad1	arc4_setkey
+EXPORT_SYMBOL	 lib/crypto/libarc4 0xcd47fcc4	arc4_crypt
+EXPORT_SYMBOL	 lib/libcrc32c 0x89a0cd52	crc32c_impl
+EXPORT_SYMBOL	 lib/libcrc32c 0xb15b4109	crc32c
+EXPORT_SYMBOL	 lib/lru_cache 0x0f6f0fdb	lc_index_of
+EXPORT_SYMBOL	 lib/lru_cache 0x17c6b1e1	lc_del
+EXPORT_SYMBOL	 lib/lru_cache 0x52857213	lc_element_by_index
+EXPORT_SYMBOL	 lib/lru_cache 0x6f1d0c3b	lc_try_lock
+EXPORT_SYMBOL	 lib/lru_cache 0x7869961b	lc_set
+EXPORT_SYMBOL	 lib/lru_cache 0x79c87149	lc_get
+EXPORT_SYMBOL	 lib/lru_cache 0x88713f97	lc_create
+EXPORT_SYMBOL	 lib/lru_cache 0x93021291	lc_seq_printf_stats
+EXPORT_SYMBOL	 lib/lru_cache 0x955d4873	lc_committed
+EXPORT_SYMBOL	 lib/lru_cache 0xbbc7a78d	lc_put
+EXPORT_SYMBOL	 lib/lru_cache 0xc1a43316	lc_get_cumulative
+EXPORT_SYMBOL	 lib/lru_cache 0xc3a4ca05	lc_destroy
+EXPORT_SYMBOL	 lib/lru_cache 0xd1a7210d	lc_seq_dump_details
+EXPORT_SYMBOL	 lib/lru_cache 0xe4a98afa	lc_try_get
+EXPORT_SYMBOL	 lib/lru_cache 0xebae3022	lc_reset
+EXPORT_SYMBOL	 lib/lru_cache 0xff3f1db8	lc_find
+EXPORT_SYMBOL	 lib/lru_cache 0xffb12208	lc_is_used
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x4f4d78c5	LZ4_compress_default
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x5bc92e85	LZ4_compress_destSize
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x6004858d	LZ4_compress_fast
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x635ff76d	LZ4_saveDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0x749849d8	LZ4_loadDict
+EXPORT_SYMBOL	 lib/lz4/lz4_compress 0xf9eced44	LZ4_compress_fast_continue
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x0f3dcf29	LZ4_loadDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0x7f7bbb7e	LZ4_saveDictHC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xddf86133	LZ4_compress_HC
+EXPORT_SYMBOL	 lib/lz4/lz4hc_compress 0xe06ae6d6	LZ4_compress_HC_continue
+EXPORT_SYMBOL	 lib/math/cordic 0x7e431c15	cordic_calc_iq
+EXPORT_SYMBOL	 lib/objagg 0x0363233d	objagg_obj_raw
+EXPORT_SYMBOL	 lib/objagg 0x23865923	objagg_destroy
+EXPORT_SYMBOL	 lib/objagg 0x24ca5ca9	objagg_obj_root_priv
+EXPORT_SYMBOL	 lib/objagg 0x342aefe2	objagg_obj_delta_priv
+EXPORT_SYMBOL	 lib/objagg 0x352633f4	objagg_hints_stats_get
+EXPORT_SYMBOL	 lib/objagg 0x38e157a7	objagg_create
+EXPORT_SYMBOL	 lib/objagg 0x3c58e78f	objagg_hints_put
+EXPORT_SYMBOL	 lib/objagg 0x6691f29d	objagg_obj_put
+EXPORT_SYMBOL	 lib/objagg 0xb17ab162	objagg_obj_get
+EXPORT_SYMBOL	 lib/objagg 0xdaa3ee68	objagg_stats_get
+EXPORT_SYMBOL	 lib/objagg 0xf5511527	objagg_stats_put
+EXPORT_SYMBOL	 lib/objagg 0xfaa9d1a8	objagg_hints_get
+EXPORT_SYMBOL	 lib/parman 0x0f518717	parman_prio_init
+EXPORT_SYMBOL	 lib/parman 0x7b03d378	parman_item_add
+EXPORT_SYMBOL	 lib/parman 0x8b7e26f5	parman_item_remove
+EXPORT_SYMBOL	 lib/parman 0xc3e2d892	parman_create
+EXPORT_SYMBOL	 lib/parman 0xc6a3d260	parman_prio_fini
+EXPORT_SYMBOL	 lib/parman 0xca39ae6a	parman_destroy
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x0b2c64a3	raid6_vgfmul
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x17f54263	raid6_gfexp
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0x59a2712d	raid6_gfinv
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xb0d904b7	raid6_empty_zero_page
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xc8e3332b	raid6_gflog
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xcc4ee841	raid6_gfexi
+EXPORT_SYMBOL	 lib/raid6/raid6_pq 0xd91319d6	raid6_gfmul
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0x5a0b73d0	zlib_deflateInit2
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0x6aeefac4	zlib_deflateReset
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xc890c008	zlib_deflateEnd
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xe9f7149c	zlib_deflate_workspacesize
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xea6f9a36	zlib_deflate_dfltcc_enabled
+EXPORT_SYMBOL	 lib/zlib_deflate/zlib_deflate 0xf2c43f3f	zlib_deflate
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x00441ef6	ZSTD_compressStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x040c92d1	ZSTD_CCtxWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x065b14f3	ZSTD_getBlockSizeMax
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x0b9a9379	ZSTD_initCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x17823f99	ZSTD_compress_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x1ffb27f1	ZSTD_initCStream_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x2411b496	ZSTD_CStreamOutSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x273a39e7	ZSTD_compressCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x35adbdc6	ZSTD_compress_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x48bfae8e	ZSTD_flushStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x50d289a3	ZSTD_resetCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x515ab572	ZSTD_compressBegin
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x57b1012f	ZSTD_compressBegin_usingDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x66a8b7ab	ZSTD_CStreamInSize
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x785d10c3	ZSTD_endStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x84e61bae	ZSTD_CDictWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x8f2f596d	ZSTD_compressBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0x97b3b7ca	ZSTD_compressEnd
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa4c8127c	ZSTD_maxCLevel
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xa88b0af5	ZSTD_compressBegin_usingCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc2d4374c	ZSTD_CStreamWorkspaceBound
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xc83660bd	ZSTD_getParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd1ad98e7	ZSTD_compressContinue
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xd967de6d	ZSTD_getCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdc157266	ZSTD_adjustCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xdfb596f8	ZSTD_copyCCtx
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe02d4179	ZSTD_initCStream
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xe14f9e35	ZSTD_compressBlock
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xebe6a8a6	ZSTD_checkCParams
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xf2068346	ZSTD_initCDict
+EXPORT_SYMBOL	 lib/zstd/zstd_compress 0xff471430	ZSTD_compressBegin_advanced
+EXPORT_SYMBOL	 net/802/p8022 0x165d1fbf	unregister_8022_client
+EXPORT_SYMBOL	 net/802/p8022 0xbf8c317e	register_8022_client
+EXPORT_SYMBOL	 net/802/psnap 0x8e553bcb	register_snap_client
+EXPORT_SYMBOL	 net/802/psnap 0x976ea56d	unregister_snap_client
+EXPORT_SYMBOL	 net/9p/9pnet 0x0b4bd494	p9_client_create
+EXPORT_SYMBOL	 net/9p/9pnet 0x11ff0ea6	p9_client_attach
+EXPORT_SYMBOL	 net/9p/9pnet 0x152f177b	p9_release_pages
+EXPORT_SYMBOL	 net/9p/9pnet 0x159063ea	v9fs_register_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x27f47701	p9_is_proto_dotu
+EXPORT_SYMBOL	 net/9p/9pnet 0x35b63e66	v9fs_get_default_trans
+EXPORT_SYMBOL	 net/9p/9pnet 0x3add7827	p9_client_symlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x3b2579bd	p9_client_fsync
+EXPORT_SYMBOL	 net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL	 net/9p/9pnet 0x3f49e15d	p9_client_getlock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x3f6eb934	p9_show_client_options
+EXPORT_SYMBOL	 net/9p/9pnet 0x40985ae8	p9_client_begin_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x43683d48	p9_client_fcreate
+EXPORT_SYMBOL	 net/9p/9pnet 0x48a37af2	p9_client_readlink
+EXPORT_SYMBOL	 net/9p/9pnet 0x50ccb2f9	p9dirent_read
+EXPORT_SYMBOL	 net/9p/9pnet 0x518f3d6a	p9_parse_header
+EXPORT_SYMBOL	 net/9p/9pnet 0x5b500484	p9_tag_lookup
+EXPORT_SYMBOL	 net/9p/9pnet 0x62e15b59	p9_req_put
+EXPORT_SYMBOL	 net/9p/9pnet 0x65d1d025	p9_client_unlinkat
+EXPORT_SYMBOL	 net/9p/9pnet 0x69c27f9d	p9_is_proto_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0x7bf64820	p9_client_disconnect
+EXPORT_SYMBOL	 net/9p/9pnet 0x811d5ea2	p9_client_renameat
+EXPORT_SYMBOL	 net/9p/9pnet 0x83815871	p9_client_write
+EXPORT_SYMBOL	 net/9p/9pnet 0x8d4d5381	p9_client_link
+EXPORT_SYMBOL	 net/9p/9pnet 0x8da307c7	p9_client_open
+EXPORT_SYMBOL	 net/9p/9pnet 0x9101025a	p9_client_setattr
+EXPORT_SYMBOL	 net/9p/9pnet 0x91e46ff0	p9_client_destroy
+EXPORT_SYMBOL	 net/9p/9pnet 0x997ab22b	p9_client_walk
+EXPORT_SYMBOL	 net/9p/9pnet 0x9eb70fa6	p9_client_clunk
+EXPORT_SYMBOL	 net/9p/9pnet 0xa492b8e6	v9fs_get_trans_by_name
+EXPORT_SYMBOL	 net/9p/9pnet 0xacfeff58	p9_client_statfs
+EXPORT_SYMBOL	 net/9p/9pnet 0xaee04107	p9_client_stat
+EXPORT_SYMBOL	 net/9p/9pnet 0xaf71f0d4	p9_fcall_fini
+EXPORT_SYMBOL	 net/9p/9pnet 0xb5f1e093	p9stat_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xbfa80ab8	p9_client_wstat
+EXPORT_SYMBOL	 net/9p/9pnet 0xc9e2e890	p9_client_create_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xcd428110	p9_client_mkdir_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xd384c683	p9stat_free
+EXPORT_SYMBOL	 net/9p/9pnet 0xd5b403fa	p9_client_lock_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xdbe3a033	p9_client_readdir
+EXPORT_SYMBOL	 net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL	 net/9p/9pnet 0xe7facc1b	p9_client_rename
+EXPORT_SYMBOL	 net/9p/9pnet 0xe856fbf6	p9_client_cb
+EXPORT_SYMBOL	 net/9p/9pnet 0xf082cb54	p9_client_mknod_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xf322dabe	p9_client_getattr_dotl
+EXPORT_SYMBOL	 net/9p/9pnet 0xf7fd80d4	p9_client_remove
+EXPORT_SYMBOL	 net/9p/9pnet 0xf92926f6	p9_client_read
+EXPORT_SYMBOL	 net/9p/9pnet 0xfac4f5f8	v9fs_unregister_trans
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x2c516a7f	ebt_register_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x32180305	ebt_do_table
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0x65e16ceb	ebt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/bridge/netfilter/ebtables 0xcd82d115	ebt_unregister_table
+EXPORT_SYMBOL	 net/ceph/libceph 0x00274951	ceph_osdc_unwatch
+EXPORT_SYMBOL	 net/ceph/libceph 0x005f135a	osd_req_op_cls_request_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x046f866b	ceph_alloc_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x08cd6c6e	ceph_osdc_alloc_messages
+EXPORT_SYMBOL	 net/ceph/libceph 0x098360e4	ceph_monc_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x099ab45b	ceph_messenger_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x0af15f13	osd_req_op_extent_osd_data
+EXPORT_SYMBOL	 net/ceph/libceph 0x0ce74839	ceph_pagelist_set_cursor
+EXPORT_SYMBOL	 net/ceph/libceph 0x1224c2b2	ceph_copy_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x12a2032e	ceph_cls_lock_info
+EXPORT_SYMBOL	 net/ceph/libceph 0x12aa6750	ceph_auth_is_authenticated
+EXPORT_SYMBOL	 net/ceph/libceph 0x14615036	ceph_check_fsid
+EXPORT_SYMBOL	 net/ceph/libceph 0x1a19a9f3	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x1a4d79b1	ceph_monc_got_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x2087719e	ceph_oid_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0x2101cbc9	ceph_oid_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x235852d4	ceph_auth_create_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x25f931de	ceph_monc_validate_auth
+EXPORT_SYMBOL	 net/ceph/libceph 0x29e2e9d7	ceph_cls_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0x2c9959c6	ceph_osdc_writepages
+EXPORT_SYMBOL	 net/ceph/libceph 0x2c9a810e	ceph_put_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x2dc355ef	ceph_cls_unlock
+EXPORT_SYMBOL	 net/ceph/libceph 0x31b960dc	ceph_osdc_sync
+EXPORT_SYMBOL	 net/ceph/libceph 0x348bb155	osd_req_op_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x3524c308	ceph_find_or_create_string
+EXPORT_SYMBOL	 net/ceph/libceph 0x3746c25c	ceph_oloc_destroy
+EXPORT_SYMBOL	 net/ceph/libceph 0x38f2d94e	ceph_file_to_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0x3932fa8a	osd_req_op_cls_response_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0x3c8d7111	ceph_get_num_objects
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d097bbb	osd_req_op_extent_osd_data_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x3d93aa4c	ceph_msg_data_add_bio
+EXPORT_SYMBOL	 net/ceph/libceph 0x3e33d6fa	ceph_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x412736cd	ceph_osdc_notify_ack
+EXPORT_SYMBOL	 net/ceph/libceph 0x419c2e93	osd_req_op_cls_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x45579610	ceph_auth_update_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0x466b85b8	libceph_compatible
+EXPORT_SYMBOL	 net/ceph/libceph 0x4782f525	ceph_monc_stop
+EXPORT_SYMBOL	 net/ceph/libceph 0x4b805dc2	ceph_osdc_call
+EXPORT_SYMBOL	 net/ceph/libceph 0x4ba479c0	ceph_zero_page_vector_range
+EXPORT_SYMBOL	 net/ceph/libceph 0x4c65762e	ceph_print_client_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x52e131f0	ceph_pagelist_release
+EXPORT_SYMBOL	 net/ceph/libceph 0x52eb7099	ceph_pg_pool_name_by_id
+EXPORT_SYMBOL	 net/ceph/libceph 0x52f5e4a0	ceph_destroy_client
+EXPORT_SYMBOL	 net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0x538d60d1	ceph_msg_data_add_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0x55b05aca	ceph_messenger_fini
+EXPORT_SYMBOL	 net/ceph/libceph 0x57175efc	ceph_con_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL	 net/ceph/libceph 0x57bf2a91	ceph_compare_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x5935e26e	ceph_release_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a7f8bb5	ceph_osdc_list_watchers
+EXPORT_SYMBOL	 net/ceph/libceph 0x5a9173ae	ceph_osdc_cancel_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x5aeeee62	ceph_oid_aprintf
+EXPORT_SYMBOL	 net/ceph/libceph 0x5d818b8f	ceph_osdc_notify
+EXPORT_SYMBOL	 net/ceph/libceph 0x5eededa0	ceph_osdc_flush_notifies
+EXPORT_SYMBOL	 net/ceph/libceph 0x61d3976d	ceph_monc_want_map
+EXPORT_SYMBOL	 net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL	 net/ceph/libceph 0x6385f315	ceph_osdc_watch
+EXPORT_SYMBOL	 net/ceph/libceph 0x691447d3	ceph_auth_add_authorizer_challenge
+EXPORT_SYMBOL	 net/ceph/libceph 0x6a7a38a0	ceph_pr_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x6bc8725e	ceph_client_gid
+EXPORT_SYMBOL	 net/ceph/libceph 0x6c72a8eb	ceph_wait_for_latest_osdmap
+EXPORT_SYMBOL	 net/ceph/libceph 0x6cd9f809	osd_req_op_xattr_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x6d9be358	ceph_con_send
+EXPORT_SYMBOL	 net/ceph/libceph 0x6f90a354	ceph_cls_assert_locked
+EXPORT_SYMBOL	 net/ceph/libceph 0x70cdc168	ceph_reset_client_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0x766a7d19	ceph_msg_data_add_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0x76b5a771	ceph_osdc_put_request
+EXPORT_SYMBOL	 net/ceph/libceph 0x7736bb5e	osd_req_op_extent_init
+EXPORT_SYMBOL	 net/ceph/libceph 0x7790a91c	ceph_pagelist_append
+EXPORT_SYMBOL	 net/ceph/libceph 0x78af74b2	ceph_monc_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0x7ae30794	ceph_osdc_abort_requests
+EXPORT_SYMBOL	 net/ceph/libceph 0x7d020305	ceph_con_close
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e73aa84	ceph_object_locator_to_pg
+EXPORT_SYMBOL	 net/ceph/libceph 0x7e8e4fad	ceph_destroy_options
+EXPORT_SYMBOL	 net/ceph/libceph 0x81d82bea	ceph_pagelist_truncate
+EXPORT_SYMBOL	 net/ceph/libceph 0x8375650f	ceph_pagelist_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0x86fca7e4	ceph_put_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x89a29ab9	osd_req_op_extent_osd_data_bvec_pos
+EXPORT_SYMBOL	 net/ceph/libceph 0x8df3fbbc	ceph_osdc_copy_from
+EXPORT_SYMBOL	 net/ceph/libceph 0x900a0610	ceph_monc_get_version_async
+EXPORT_SYMBOL	 net/ceph/libceph 0x90481d22	ceph_auth_verify_authorizer_reply
+EXPORT_SYMBOL	 net/ceph/libceph 0x91fcdabf	ceph_file_layout_from_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0x93844d0e	ceph_monc_get_version
+EXPORT_SYMBOL	 net/ceph/libceph 0x96fa78ab	ceph_msg_get
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ad27495	ceph_osdc_clear_abort_err
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ca95932	ceph_create_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0x9eebd891	ceph_monc_renew_subs
+EXPORT_SYMBOL	 net/ceph/libceph 0x9ef07a5c	ceph_osdc_update_epoch_barrier
+EXPORT_SYMBOL	 net/ceph/libceph 0x9fefa3cb	ceph_calc_file_object_mapping
+EXPORT_SYMBOL	 net/ceph/libceph 0xa0adf442	ceph_msg_put
+EXPORT_SYMBOL	 net/ceph/libceph 0xa376f5df	ceph_pagelist_alloc
+EXPORT_SYMBOL	 net/ceph/libceph 0xa4cb253e	osd_req_op_cls_request_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xa698f998	ceph_free_lockers
+EXPORT_SYMBOL	 net/ceph/libceph 0xa93ada2f	osd_req_op_extent_dup_last
+EXPORT_SYMBOL	 net/ceph/libceph 0xaa6c0c46	ceph_osdc_new_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xad703657	ceph_auth_destroy_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xafb8a407	ceph_msgr_flush
+EXPORT_SYMBOL	 net/ceph/libceph 0xb360dca6	osd_req_op_extent_osd_data_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xb3ea7980	ceph_osdc_start_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xb4200659	ceph_msg_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xb42e0eaa	ceph_auth_invalidate_authorizer
+EXPORT_SYMBOL	 net/ceph/libceph 0xb54676fa	ceph_msg_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xb57bece8	osd_req_op_extent_update
+EXPORT_SYMBOL	 net/ceph/libceph 0xb72c162e	ceph_buffer_release
+EXPORT_SYMBOL	 net/ceph/libceph 0xbb403162	ceph_monc_do_statfs
+EXPORT_SYMBOL	 net/ceph/libceph 0xbc98cee2	ceph_oloc_copy
+EXPORT_SYMBOL	 net/ceph/libceph 0xbe3879aa	ceph_get_snap_context
+EXPORT_SYMBOL	 net/ceph/libceph 0xc067732c	ceph_parse_ips
+EXPORT_SYMBOL	 net/ceph/libceph 0xc131ae54	ceph_con_keepalive
+EXPORT_SYMBOL	 net/ceph/libceph 0xc4cd6e26	ceph_create_client
+EXPORT_SYMBOL	 net/ceph/libceph 0xc7eb67f6	ceph_monc_blacklist_add
+EXPORT_SYMBOL	 net/ceph/libceph 0xca80437b	ceph_extent_to_file
+EXPORT_SYMBOL	 net/ceph/libceph 0xcb6c6a50	ceph_msg_data_add_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xcbdddb56	ceph_osdc_wait_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xccfd2430	osd_req_op_cls_request_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xcda9c657	ceph_copy_from_page_vector
+EXPORT_SYMBOL	 net/ceph/libceph 0xcfcf634b	ceph_msg_dump
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2a01e4a	ceph_osdc_get_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL	 net/ceph/libceph 0xd4eb7735	ceph_decode_entity_addr
+EXPORT_SYMBOL	 net/ceph/libceph 0xd57e13bc	ceph_msg_new2
+EXPORT_SYMBOL	 net/ceph/libceph 0xd7c06029	ceph_file_layout_to_legacy
+EXPORT_SYMBOL	 net/ceph/libceph 0xd8c2d435	osd_req_op_raw_data_in_pages
+EXPORT_SYMBOL	 net/ceph/libceph 0xdeddd368	ceph_pagelist_free_reserve
+EXPORT_SYMBOL	 net/ceph/libceph 0xdf6ef4a1	ceph_oid_printf
+EXPORT_SYMBOL	 net/ceph/libceph 0xdfc091f9	ceph_entity_type_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe21d60fe	ceph_osdc_alloc_request
+EXPORT_SYMBOL	 net/ceph/libceph 0xe303dfb1	ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xe3376bab	ceph_pg_poolid_by_name
+EXPORT_SYMBOL	 net/ceph/libceph 0xe5dc9245	ceph_parse_options
+EXPORT_SYMBOL	 net/ceph/libceph 0xe7b0c6d7	ceph_cls_set_cookie
+EXPORT_SYMBOL	 net/ceph/libceph 0xe85108a4	ceph_buffer_new
+EXPORT_SYMBOL	 net/ceph/libceph 0xebba5707	ceph_osdc_readpages
+EXPORT_SYMBOL	 net/ceph/libceph 0xee120c03	ceph_release_string
+EXPORT_SYMBOL	 net/ceph/libceph 0xeef6cfa3	ceph_iterate_extents
+EXPORT_SYMBOL	 net/ceph/libceph 0xf18e3ad0	ceph_osdc_maybe_request_map
+EXPORT_SYMBOL	 net/ceph/libceph 0xf3a00e72	ceph_con_open
+EXPORT_SYMBOL	 net/ceph/libceph 0xf3cc1de7	ceph_cls_break_lock
+EXPORT_SYMBOL	 net/ceph/libceph 0xf44ff143	osd_req_op_alloc_hint_init
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8cd2408	__ceph_open_session
+EXPORT_SYMBOL	 net/ceph/libceph 0xf8d8a519	osd_req_op_extent_osd_data_pagelist
+EXPORT_SYMBOL	 net/ceph/libceph 0xfab27e9e	ceph_pg_to_acting_primary
+EXPORT_SYMBOL	 net/ceph/libceph 0xfacb2528	osd_req_op_extent_osd_data_bvecs
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb27354c	ceph_pg_pool_flags
+EXPORT_SYMBOL	 net/ceph/libceph 0xfb31e1f2	ceph_monc_wait_osdmap
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x2864dd18	dccp_syn_ack_timeout
+EXPORT_SYMBOL	 net/dccp/dccp_ipv4 0x999a8794	dccp_req_err
+EXPORT_SYMBOL	 net/ipv4/fou 0x3899cd11	gue_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/fou 0x8a0a502e	__gue_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xdce8f224	__fou_build_header
+EXPORT_SYMBOL	 net/ipv4/fou 0xdef70806	fou_encap_hlen
+EXPORT_SYMBOL	 net/ipv4/gre 0xfc5470d0	gre_parse_header
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x255eb9da	ip_tunnel_encap_add_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0x50c26134	ip_tunnel_encap_del_ops
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xa614e969	ip_tunnel_get_iflink
+EXPORT_SYMBOL	 net/ipv4/ip_tunnel 0xec8b0092	ip_tunnel_get_link_net
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x32456473	arpt_register_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x32782ba9	arpt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x3edf850f	arpt_unregister_table_pre_exit
+EXPORT_SYMBOL	 net/ipv4/netfilter/arp_tables 0x6ee6ac49	arpt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0x0fe96e02	ipt_unregister_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xb8667b50	ipt_do_table
+EXPORT_SYMBOL	 net/ipv4/netfilter/ip_tables 0xeceb64c7	ipt_register_table
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x035b2ee8	xfrm4_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv4/tunnel4 0x1e7a705b	xfrm4_tunnel_register
+EXPORT_SYMBOL	 net/ipv4/udp_tunnel 0xc3d4afcd	udp_sock_create4
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x025390c9	ip6_tnl_get_iflink
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x4a5e2de9	ip6_tnl_encap_add_ops
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x59986cab	ip6_tnl_parse_tlv_enc_lim
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x6ae99c6a	ip6_tnl_xmit
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7893c05d	ip6_tnl_change_mtu
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0x7cfe4400	ip6_tnl_rcv
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xa7bf00aa	ip6_tnl_get_cap
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xb8f70675	ip6_tnl_get_link_net
+EXPORT_SYMBOL	 net/ipv6/ip6_tunnel 0xe998306c	ip6_tnl_encap_del_ops
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0x64187b27	ip6t_unregister_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xc4c170da	ip6t_register_table
+EXPORT_SYMBOL	 net/ipv6/netfilter/ip6_tables 0xd8f25990	ip6t_do_table
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0x6c4e62c5	xfrm6_tunnel_register
+EXPORT_SYMBOL	 net/ipv6/tunnel6 0xc1537461	xfrm6_tunnel_deregister
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xa0129472	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL	 net/ipv6/xfrm6_tunnel 0xe02393d3	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x1efa57a4	l2tp_tunnel_free
+EXPORT_SYMBOL	 net/l2tp/l2tp_core 0x511427db	l2tp_recv_common
+EXPORT_SYMBOL	 net/l2tp/l2tp_ip 0xf5244838	l2tp_ioctl
+EXPORT_SYMBOL	 net/llc/llc 0x0f2bebbe	llc_sap_open
+EXPORT_SYMBOL	 net/llc/llc 0x124087f9	llc_sap_find
+EXPORT_SYMBOL	 net/llc/llc 0x237084dd	llc_mac_hdr_init
+EXPORT_SYMBOL	 net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL	 net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL	 net/llc/llc 0x96972d9a	llc_set_station_handler
+EXPORT_SYMBOL	 net/llc/llc 0xa3505daa	llc_sap_close
+EXPORT_SYMBOL	 net/llc/llc 0xb2257a17	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL	 net/llc/llc 0xb7791d3d	llc_add_pack
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x07a528f4	unregister_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x173d5996	ip_vs_proto_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x22d2d385	ip_vs_conn_in_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x434b9f70	register_ip_vs_app_inc
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x444dce19	ip_vs_conn_new
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x4ee5914f	ip_vs_new_conn_out
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x63097737	unregister_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x8c02b73d	ip_vs_proto_data_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x95c18452	ip_vs_conn_put
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0x9772dc7d	ip_vs_nfct_expect_related
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbd5669b6	ip_vs_conn_out_get
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xbe24443e	register_ip_vs_app
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xc069a624	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xcc9b8af2	register_ip_vs_scheduler
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xd831a1a2	ip_vs_proto_name
+EXPORT_SYMBOL	 net/netfilter/ipvs/ip_vs 0xe9d7d080	ip_vs_scheduler_err
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x071ef61e	nf_ct_ext_destroy
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack 0x54082d26	nf_ct_ext_add
+EXPORT_SYMBOL	 net/netfilter/nf_conntrack_pptp 0xf2a36612	pptp_msg_name
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x08ff16a4	nf_nat_follow_master
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x1da14765	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x993fd4d6	nf_xfrm_me_harder
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0x9b8c56ca	nf_nat_setup_info
+EXPORT_SYMBOL	 net/netfilter/nf_nat 0xee59663a	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL	 net/netfilter/nft_fib 0x6d5bf833	nft_fib_policy
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0552b967	xt_check_table_hooks
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0ad3bff5	xt_unregister_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x0d7f5fcd	xt_alloc_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x2442f4d0	xt_register_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3dca998b	xt_register_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x3eaaad03	xt_unregister_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x48012e28	xt_check_proc_name
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x4e548a45	xt_register_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x50873741	xt_compat_init_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x80f4f8ef	xt_unregister_targets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x8568fcef	xt_unregister_target
+EXPORT_SYMBOL	 net/netfilter/x_tables 0x881df2ef	xt_free_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa25fc115	xt_compat_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xa666a90e	xt_find_match
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xc75d5ab2	xt_alloc_table_info
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb3e91cc	xt_counters_alloc
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xcb458a82	xt_register_matches
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xd87ae60d	xt_check_entry_offsets
+EXPORT_SYMBOL	 net/netfilter/x_tables 0xfef779fa	xt_find_jump_offset
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x03f31799	rxrpc_kernel_send_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x0b8e9388	rxrpc_kernel_check_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x11ee52c4	rxrpc_get_null_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x2b899045	rxrpc_kernel_new_call_notification
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x31bf3ca3	rxrpc_debug_id
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x3ab56bf7	rxrpc_kernel_abort_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x428a1102	rxrpc_kernel_begin_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x741ca363	rxrpc_kernel_set_tx_length
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7e05d2e9	key_type_rxrpc
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0x7fbcd24e	rxrpc_kernel_recv_data
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xb9c58be0	rxrpc_kernel_charge_accept
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xc6db0fca	rxrpc_kernel_end_call
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd3a855e3	rxrpc_get_server_data_key
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xd95fd4b0	rxrpc_kernel_get_reply_time
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe184213f	rxrpc_kernel_set_max_life
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xe534ca70	rxrpc_kernel_get_epoch
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xec0b9476	rxrpc_kernel_get_peer
+EXPORT_SYMBOL	 net/rxrpc/rxrpc 0xfd52c716	rxrpc_kernel_get_srtt
+EXPORT_SYMBOL	 net/sctp/sctp 0x2acb028f	sctp_do_peeloff
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x215c08b7	gss_mech_get
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x61300b34	gss_pseudoflavor_to_service
+EXPORT_SYMBOL	 net/sunrpc/auth_gss/auth_rpcgss 0x948716cf	gss_mech_put
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0x0e6480b6	svc_pool_stats_open
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xad7915a4	xdr_restrict_buflen
+EXPORT_SYMBOL	 net/sunrpc/sunrpc 0xe3b77f83	xdr_truncate_encode
+EXPORT_SYMBOL	 net/tipc/tipc 0x1e14a3e7	tipc_sk_fill_sock_diag
+EXPORT_SYMBOL	 net/tipc/tipc 0x4037d8ba	tipc_nl_sk_walk
+EXPORT_SYMBOL	 net/tipc/tipc 0x4ac42cf4	tipc_dump_done
+EXPORT_SYMBOL	 net/tipc/tipc 0x899b90c4	tipc_dump_start
+EXPORT_SYMBOL	 net/tls/tls 0x0af91e63	tls_register_device
+EXPORT_SYMBOL	 net/tls/tls 0xb44a991c	tls_get_record
+EXPORT_SYMBOL	 net/tls/tls 0xdd56e5a3	tls_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x000322b0	path_is_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x00116248	show_init_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x003e348a	inet_frag_kill
+EXPORT_SYMBOL	 vmlinux 0x0069d801	fscrypt_fname_alloc_buffer
+EXPORT_SYMBOL	 vmlinux 0x00729e79	pci_find_next_bus
+EXPORT_SYMBOL	 vmlinux 0x00780695	tty_kref_put
+EXPORT_SYMBOL	 vmlinux 0x009acb40	sock_no_ioctl
+EXPORT_SYMBOL	 vmlinux 0x009c0422	tcp_sendpage
+EXPORT_SYMBOL	 vmlinux 0x00dc9758	hdmi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x00de62b2	sdev_enable_disk_events
+EXPORT_SYMBOL	 vmlinux 0x00df9b54	make_kprojid
+EXPORT_SYMBOL	 vmlinux 0x00e43775	__wait_on_buffer
+EXPORT_SYMBOL	 vmlinux 0x00eb1c3a	radix_tree_delete
+EXPORT_SYMBOL	 vmlinux 0x00f4a223	_ebc_toupper
+EXPORT_SYMBOL	 vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL	 vmlinux 0x011d85c0	__sb_end_write
+EXPORT_SYMBOL	 vmlinux 0x011fae5f	bdi_register_owner
+EXPORT_SYMBOL	 vmlinux 0x01239796	input_set_min_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x0136fee8	nla_append
+EXPORT_SYMBOL	 vmlinux 0x014716eb	hdmi_vendor_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x0147812c	kblockd_mod_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0x01553371	vm_brk_flags
+EXPORT_SYMBOL	 vmlinux 0x015af7f4	system_state
+EXPORT_SYMBOL	 vmlinux 0x015fb509	__sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0x01757935	rdmacg_register_device
+EXPORT_SYMBOL	 vmlinux 0x017de3d5	nr_cpu_ids
+EXPORT_SYMBOL	 vmlinux 0x018574a1	mb_cache_entry_delete
+EXPORT_SYMBOL	 vmlinux 0x018c0896	blkdev_get
+EXPORT_SYMBOL	 vmlinux 0x018c6ae1	dcb_getapp
+EXPORT_SYMBOL	 vmlinux 0x019401de	sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x01980336	vlan_for_each
+EXPORT_SYMBOL	 vmlinux 0x01bf55fc	paddr_vmcoreinfo_note
+EXPORT_SYMBOL	 vmlinux 0x01d178f4	__wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0x01e1ec00	utf8_strncasecmp_folded
+EXPORT_SYMBOL	 vmlinux 0x0209f3a7	secure_ipv6_port_ephemeral
+EXPORT_SYMBOL	 vmlinux 0x020dbf27	bitmap_alloc
+EXPORT_SYMBOL	 vmlinux 0x02155357	bio_list_copy_data
+EXPORT_SYMBOL	 vmlinux 0x021fe091	security_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x0228b02f	raw3270_request_add_data
+EXPORT_SYMBOL	 vmlinux 0x023ea9d9	pagecache_isize_extended
+EXPORT_SYMBOL	 vmlinux 0x024e4a7d	d_instantiate_new
+EXPORT_SYMBOL	 vmlinux 0x024fa7ec	blk_rq_unmap_user
+EXPORT_SYMBOL	 vmlinux 0x025483b1	set_current_groups
+EXPORT_SYMBOL	 vmlinux 0x0257a9ae	down_read_trylock
+EXPORT_SYMBOL	 vmlinux 0x0274dc2b	netif_get_num_default_rss_queues
+EXPORT_SYMBOL	 vmlinux 0x02852422	kobject_add
+EXPORT_SYMBOL	 vmlinux 0x0286c20a	bit_waitqueue
+EXPORT_SYMBOL	 vmlinux 0x0296695f	refcount_warn_saturate
+EXPORT_SYMBOL	 vmlinux 0x029ddf57	scsi_report_bus_reset
+EXPORT_SYMBOL	 vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL	 vmlinux 0x02a38283	dquot_commit
+EXPORT_SYMBOL	 vmlinux 0x02aece30	padata_do_parallel
+EXPORT_SYMBOL	 vmlinux 0x02bc1fac	bd_finish_claiming
+EXPORT_SYMBOL	 vmlinux 0x02ca22a8	hex_dump_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x02db1be5	ip_cmsg_recv_offset
+EXPORT_SYMBOL	 vmlinux 0x02ea111e	scsi_driverbyte_string
+EXPORT_SYMBOL	 vmlinux 0x02f034a1	xz_dec_run
+EXPORT_SYMBOL	 vmlinux 0x03088c4c	xfrm_unregister_type
+EXPORT_SYMBOL	 vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL	 vmlinux 0x03378a9e	blk_queue_max_segments
+EXPORT_SYMBOL	 vmlinux 0x034446e2	submit_bio_wait
+EXPORT_SYMBOL	 vmlinux 0x0366307a	console_suspend_enabled
+EXPORT_SYMBOL	 vmlinux 0x036d3c34	param_set_ulong
+EXPORT_SYMBOL	 vmlinux 0x03706bb4	jbd2_journal_unlock_updates
+EXPORT_SYMBOL	 vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL	 vmlinux 0x038c30df	blk_mq_stop_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x0397edd5	fb_edid_to_monspecs
+EXPORT_SYMBOL	 vmlinux 0x039d2a9b	dev_get_stats
+EXPORT_SYMBOL	 vmlinux 0x03d2240c	add_virt_timer_periodic
+EXPORT_SYMBOL	 vmlinux 0x03e24664	dev_change_proto_down
+EXPORT_SYMBOL	 vmlinux 0x03f3cffe	jbd2_journal_wipe
+EXPORT_SYMBOL	 vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL	 vmlinux 0x03fe4120	posix_acl_update_mode
+EXPORT_SYMBOL	 vmlinux 0x0401b883	vlan_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0x043bd2b8	ccw_device_start_timeout
+EXPORT_SYMBOL	 vmlinux 0x04482cdb	__refrigerator
+EXPORT_SYMBOL	 vmlinux 0x044cdfdf	__xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x0455f488	__cleancache_invalidate_fs
+EXPORT_SYMBOL	 vmlinux 0x0456ae21	__tracepoint_s390_cio_xsch
+EXPORT_SYMBOL	 vmlinux 0x045e4138	jbd2_journal_start
+EXPORT_SYMBOL	 vmlinux 0x045fde98	__cgroup_bpf_run_filter_sysctl
+EXPORT_SYMBOL	 vmlinux 0x049e86ab	nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x04a13e1d	inode_dio_wait
+EXPORT_SYMBOL	 vmlinux 0x04c4ba6a	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0x04d31a66	netif_receive_skb
+EXPORT_SYMBOL	 vmlinux 0x04d4459e	ccw_device_set_offline
+EXPORT_SYMBOL	 vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL	 vmlinux 0x04f620ac	clear_page_dirty_for_io
+EXPORT_SYMBOL	 vmlinux 0x04f6cee4	devm_request_resource
+EXPORT_SYMBOL	 vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL	 vmlinux 0x05263391	zap_page_range
+EXPORT_SYMBOL	 vmlinux 0x05337714	xa_get_order
+EXPORT_SYMBOL	 vmlinux 0x054496b4	schedule_timeout_interruptible
+EXPORT_SYMBOL	 vmlinux 0x056f5cef	radix_tree_tagged
+EXPORT_SYMBOL	 vmlinux 0x0588e491	inet_addr_type
+EXPORT_SYMBOL	 vmlinux 0x05b27a8d	cpu_rmap_put
+EXPORT_SYMBOL	 vmlinux 0x05c4f01f	dev_mc_unsync
+EXPORT_SYMBOL	 vmlinux 0x05d29f4a	inet_frag_destroy
+EXPORT_SYMBOL	 vmlinux 0x05d30ec2	tcf_get_next_proto
+EXPORT_SYMBOL	 vmlinux 0x05dd47ae	skb_pull
+EXPORT_SYMBOL	 vmlinux 0x05ebcc64	vlan_dev_vlan_proto
+EXPORT_SYMBOL	 vmlinux 0x060491d5	pagecache_get_page
+EXPORT_SYMBOL	 vmlinux 0x06107505	skb_get_hash_perturb
+EXPORT_SYMBOL	 vmlinux 0x06159545	open_with_fake_path
+EXPORT_SYMBOL	 vmlinux 0x061651be	strcat
+EXPORT_SYMBOL	 vmlinux 0x061d2794	sock_no_listen
+EXPORT_SYMBOL	 vmlinux 0x062d203a	vfs_dedupe_file_range_one
+EXPORT_SYMBOL	 vmlinux 0x0632b517	request_firmware_nowait
+EXPORT_SYMBOL	 vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL	 vmlinux 0x0655fba3	skb_append
+EXPORT_SYMBOL	 vmlinux 0x0660261f	module_put
+EXPORT_SYMBOL	 vmlinux 0x0675cf47	bdi_register
+EXPORT_SYMBOL	 vmlinux 0x067d73b4	seqno_fence_ops
+EXPORT_SYMBOL	 vmlinux 0x068af9a1	netif_device_attach
+EXPORT_SYMBOL	 vmlinux 0x068ba4c5	d_add
+EXPORT_SYMBOL	 vmlinux 0x0691d8a6	remove_proc_entry
+EXPORT_SYMBOL	 vmlinux 0x069b6c85	deactivate_super
+EXPORT_SYMBOL	 vmlinux 0x06b51f7b	devm_register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x06f3092d	scsi_is_target_device
+EXPORT_SYMBOL	 vmlinux 0x06fdd7cc	__xa_store
+EXPORT_SYMBOL	 vmlinux 0x06ff9ace	follow_down
+EXPORT_SYMBOL	 vmlinux 0x071d6403	seq_hex_dump
+EXPORT_SYMBOL	 vmlinux 0x071ed271	tty_write_room
+EXPORT_SYMBOL	 vmlinux 0x07297511	crc_t10dif_update
+EXPORT_SYMBOL	 vmlinux 0x07376991	mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x075b450c	dev_get_by_napi_id
+EXPORT_SYMBOL	 vmlinux 0x07626f68	inet_rcv_saddr_equal
+EXPORT_SYMBOL	 vmlinux 0x076404fe	param_ops_uint
+EXPORT_SYMBOL	 vmlinux 0x0783f55c	gnet_stats_copy_app
+EXPORT_SYMBOL	 vmlinux 0x07972363	tcp_md5_do_del
+EXPORT_SYMBOL	 vmlinux 0x0799b207	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL	 vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x07ee34bf	bio_integrity_alloc
+EXPORT_SYMBOL	 vmlinux 0x07f57478	pci_unmap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0805f2c8	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL	 vmlinux 0x080d93b4	nf_reinject
+EXPORT_SYMBOL	 vmlinux 0x0810be09	free_irq_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL	 vmlinux 0x0832a905	skb_copy_and_csum_dev
+EXPORT_SYMBOL	 vmlinux 0x08456553	match_string
+EXPORT_SYMBOL	 vmlinux 0x085a8fe7	zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x08623150	tcp_rcv_state_process
+EXPORT_SYMBOL	 vmlinux 0x087f3106	flush_signals
+EXPORT_SYMBOL	 vmlinux 0x0882a449	security_xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x088c96f6	tcp_parse_md5sig_option
+EXPORT_SYMBOL	 vmlinux 0x08b0cd84	inet_addr_type_dev_table
+EXPORT_SYMBOL	 vmlinux 0x08b8f95d	input_register_device
+EXPORT_SYMBOL	 vmlinux 0x08c2f624	block_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0x08f5fa9e	netdev_set_tc_queue
+EXPORT_SYMBOL	 vmlinux 0x090e6d2b	jbd2_journal_check_available_features
+EXPORT_SYMBOL	 vmlinux 0x094effa5	__iucv_message_receive
+EXPORT_SYMBOL	 vmlinux 0x0951b3fb	scsi_register_driver
+EXPORT_SYMBOL	 vmlinux 0x0957f4c1	iov_iter_get_pages_alloc
+EXPORT_SYMBOL	 vmlinux 0x095dfba6	cdrom_mode_select
+EXPORT_SYMBOL	 vmlinux 0x095e8517	__destroy_inode
+EXPORT_SYMBOL	 vmlinux 0x096fe1eb	nf_register_sockopt
+EXPORT_SYMBOL	 vmlinux 0x09769037	dmt_modes
+EXPORT_SYMBOL	 vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL	 vmlinux 0x09a3bccb	ipv6_chk_custom_prefix
+EXPORT_SYMBOL	 vmlinux 0x09bf6fbe	ZSTD_decompressDCtx
+EXPORT_SYMBOL	 vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL	 vmlinux 0x09cfccdb	udp_lib_get_port
+EXPORT_SYMBOL	 vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL	 vmlinux 0x09f2044c	kstrtou8_from_user
+EXPORT_SYMBOL	 vmlinux 0x0a012f73	mb_cache_entry_touch
+EXPORT_SYMBOL	 vmlinux 0x0a01c60e	alloc_skb_with_frags
+EXPORT_SYMBOL	 vmlinux 0x0a0aca7e	kernel_sock_shutdown
+EXPORT_SYMBOL	 vmlinux 0x0a1dbc76	tcp_rx_skb_cache_key
+EXPORT_SYMBOL	 vmlinux 0x0a292872	reservation_seqcount_class
+EXPORT_SYMBOL	 vmlinux 0x0a3b7036	dma_fence_chain_find_seqno
+EXPORT_SYMBOL	 vmlinux 0x0a46ca7f	skb_queue_purge
+EXPORT_SYMBOL	 vmlinux 0x0a48729e	param_ops_ullong
+EXPORT_SYMBOL	 vmlinux 0x0a68b677	genl_register_family
+EXPORT_SYMBOL	 vmlinux 0x0a770832	register_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x0a97102f	__skb_try_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x0aa309cf	synchronize_hardirq
+EXPORT_SYMBOL	 vmlinux 0x0aac7c49	compat_mc_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x0aaccc92	pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0x0aacd352	__kfifo_len_r
+EXPORT_SYMBOL	 vmlinux 0x0add784e	dump_truncate
+EXPORT_SYMBOL	 vmlinux 0x0ae47c48	xfrm4_rcv_encap
+EXPORT_SYMBOL	 vmlinux 0x0ae60c27	utf8_normalize
+EXPORT_SYMBOL	 vmlinux 0x0affba07	make_kgid
+EXPORT_SYMBOL	 vmlinux 0x0b1785a3	tcf_action_set_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL	 vmlinux 0x0b2fc0b7	config_item_get
+EXPORT_SYMBOL	 vmlinux 0x0b5561e1	skb_flow_dissect_meta
+EXPORT_SYMBOL	 vmlinux 0x0b5c7e93	md_bitmap_startwrite
+EXPORT_SYMBOL	 vmlinux 0x0b6d6d4c	page_pool_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL	 vmlinux 0x0b8d11cf	swake_up_one
+EXPORT_SYMBOL	 vmlinux 0x0ba9bc91	dev_change_carrier
+EXPORT_SYMBOL	 vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL	 vmlinux 0x0bd4b6e4	mr_fill_mroute
+EXPORT_SYMBOL	 vmlinux 0x0bda92ea	__module_get
+EXPORT_SYMBOL	 vmlinux 0x0be83774	get_super_thawed
+EXPORT_SYMBOL	 vmlinux 0x0bf514c4	may_umount
+EXPORT_SYMBOL	 vmlinux 0x0c13a257	generic_file_mmap
+EXPORT_SYMBOL	 vmlinux 0x0c17a68e	zlib_dfltcc_support
+EXPORT_SYMBOL	 vmlinux 0x0c25ec48	secure_tcpv6_seq
+EXPORT_SYMBOL	 vmlinux 0x0c46da66	vm_event_states
+EXPORT_SYMBOL	 vmlinux 0x0c4c28d0	tcp_req_err
+EXPORT_SYMBOL	 vmlinux 0x0c6ccf20	s390_isolate_bp
+EXPORT_SYMBOL	 vmlinux 0x0c725fb8	posix_acl_equiv_mode
+EXPORT_SYMBOL	 vmlinux 0x0c763231	nobh_write_begin
+EXPORT_SYMBOL	 vmlinux 0x0c7cf7c6	zero_page_mask
+EXPORT_SYMBOL	 vmlinux 0x0c97a3d4	vfs_get_link
+EXPORT_SYMBOL	 vmlinux 0x0cabe69f	tcp_rcv_established
+EXPORT_SYMBOL	 vmlinux 0x0cb3e391	pci_stop_and_remove_bus_device
+EXPORT_SYMBOL	 vmlinux 0x0cbb4170	__cleancache_get_page
+EXPORT_SYMBOL	 vmlinux 0x0cbd2301	blk_limits_io_min
+EXPORT_SYMBOL	 vmlinux 0x0cc0f4c5	__genradix_prealloc
+EXPORT_SYMBOL	 vmlinux 0x0cd26d02	ccw_device_clear_options
+EXPORT_SYMBOL	 vmlinux 0x0cd5835b	ipv6_flowlabel_exclusive
+EXPORT_SYMBOL	 vmlinux 0x0cde9361	inet_proto_csum_replace4
+EXPORT_SYMBOL	 vmlinux 0x0cf828eb	bio_integrity_prep
+EXPORT_SYMBOL	 vmlinux 0x0d05e9ae	xa_extract
+EXPORT_SYMBOL	 vmlinux 0x0d07f543	get_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x0d22ca68	default_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x0d3e0e16	__xa_insert
+EXPORT_SYMBOL	 vmlinux 0x0d42fb39	kbd_keycode
+EXPORT_SYMBOL	 vmlinux 0x0d48f154	con_copy_unimap
+EXPORT_SYMBOL	 vmlinux 0x0d4944af	dev_close
+EXPORT_SYMBOL	 vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL	 vmlinux 0x0d61eeee	__bitmap_subset
+EXPORT_SYMBOL	 vmlinux 0x0da5a6b8	kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x0dae1dcb	buffer_migrate_page
+EXPORT_SYMBOL	 vmlinux 0x0daed1c4	__dst_destroy_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x0dd1735a	page_symlink
+EXPORT_SYMBOL	 vmlinux 0x0dd7c22b	dev_set_group
+EXPORT_SYMBOL	 vmlinux 0x0dd8372e	__sb_start_write
+EXPORT_SYMBOL	 vmlinux 0x0ddd9aad	blk_mq_start_stopped_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x0de1e3e8	netif_tx_wake_queue
+EXPORT_SYMBOL	 vmlinux 0x0e17678a	siphash_4u64
+EXPORT_SYMBOL	 vmlinux 0x0e1ecfb7	unregister_adapter_interrupt
+EXPORT_SYMBOL	 vmlinux 0x0e31a094	pci_scan_single_device
+EXPORT_SYMBOL	 vmlinux 0x0e4e15e2	__inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x0e79aac2	__skb_checksum_complete_head
+EXPORT_SYMBOL	 vmlinux 0x0e7dad07	mount_nodev
+EXPORT_SYMBOL	 vmlinux 0x0e82a3a6	cdrom_media_changed
+EXPORT_SYMBOL	 vmlinux 0x0ea763c3	sclp_sync_wait
+EXPORT_SYMBOL	 vmlinux 0x0eab56fa	__kfifo_max_r
+EXPORT_SYMBOL	 vmlinux 0x0eac8a4e	kfree_skb_partial
+EXPORT_SYMBOL	 vmlinux 0x0ead1d65	gen_pool_virt_to_phys
+EXPORT_SYMBOL	 vmlinux 0x0eb48b60	fwnode_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x0ec75a58	dentry_path_raw
+EXPORT_SYMBOL	 vmlinux 0x0ef8b993	input_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x0f09cc34	schedule_timeout_killable
+EXPORT_SYMBOL	 vmlinux 0x0f0f389e	security_sctp_sk_clone
+EXPORT_SYMBOL	 vmlinux 0x0f3048bb	blk_mq_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0x0f382f64	pci_bus_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0x0f43167d	simple_rmdir
+EXPORT_SYMBOL	 vmlinux 0x0f59acca	__kernel_fpu_end
+EXPORT_SYMBOL	 vmlinux 0x0f65ebd1	get_tree_keyed
+EXPORT_SYMBOL	 vmlinux 0x0f86f560	kthread_delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0x0f8ee51e	ZSTD_resetDStream
+EXPORT_SYMBOL	 vmlinux 0x0fa1f1b1	netdev_notice
+EXPORT_SYMBOL	 vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL	 vmlinux 0x0fafb21d	vfs_dedupe_file_range
+EXPORT_SYMBOL	 vmlinux 0x0fb2f8a4	mktime64
+EXPORT_SYMBOL	 vmlinux 0x0fbd63a4	mutex_is_locked
+EXPORT_SYMBOL	 vmlinux 0x0fd902db	mb_cache_entry_create
+EXPORT_SYMBOL	 vmlinux 0x0fe4d5e0	mntget
+EXPORT_SYMBOL	 vmlinux 0x0ff42f15	mr_mfc_find_any
+EXPORT_SYMBOL	 vmlinux 0x0ffc9609	ap_recv
+EXPORT_SYMBOL	 vmlinux 0x0fff5afc	time64_to_tm
+EXPORT_SYMBOL	 vmlinux 0x100fbe69	vm_zone_stat
+EXPORT_SYMBOL	 vmlinux 0x10112f05	ZSTD_DStreamInSize
+EXPORT_SYMBOL	 vmlinux 0x1018e4c2	kmem_cache_size
+EXPORT_SYMBOL	 vmlinux 0x1025c86a	dma_mmap_attrs
+EXPORT_SYMBOL	 vmlinux 0x1035c7c2	__release_region
+EXPORT_SYMBOL	 vmlinux 0x10497616	memweight
+EXPORT_SYMBOL	 vmlinux 0x104e47d4	idr_replace
+EXPORT_SYMBOL	 vmlinux 0x1050e6fd	pci_enable_device_mem
+EXPORT_SYMBOL	 vmlinux 0x10678052	blk_mq_tagset_busy_iter
+EXPORT_SYMBOL	 vmlinux 0x1068004b	gf128mul_bbe
+EXPORT_SYMBOL	 vmlinux 0x107e5878	zlib_inflateEnd
+EXPORT_SYMBOL	 vmlinux 0x108462d0	__netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0x10a12542	elv_rb_add
+EXPORT_SYMBOL	 vmlinux 0x10b13eca	clocksource_unregister
+EXPORT_SYMBOL	 vmlinux 0x10b98ec0	dev_uc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x10c3f57e	__gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x10ce11a4	__neigh_create
+EXPORT_SYMBOL	 vmlinux 0x10d3bee2	icmp_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x10d9f885	scsi_sense_desc_find
+EXPORT_SYMBOL	 vmlinux 0x10e5e793	reset_guest_reference_bit
+EXPORT_SYMBOL	 vmlinux 0x1106ecd3	netlbl_calipso_ops_register
+EXPORT_SYMBOL	 vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL	 vmlinux 0x11134e15	blk_queue_physical_block_size
+EXPORT_SYMBOL	 vmlinux 0x11182a33	cred_fscmp
+EXPORT_SYMBOL	 vmlinux 0x1118e5c3	netdev_lower_get_next_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x1126adb2	xfrm_input_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0x113a0a27	dquot_get_dqblk
+EXPORT_SYMBOL	 vmlinux 0x114aa51e	input_set_keycode
+EXPORT_SYMBOL	 vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL	 vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL	 vmlinux 0x1173ff51	configfs_register_default_group
+EXPORT_SYMBOL	 vmlinux 0x118a3801	generic_fillattr
+EXPORT_SYMBOL	 vmlinux 0x11933f8a	vm_map_ram
+EXPORT_SYMBOL	 vmlinux 0x1194bd99	pci_ep_cfs_add_epc_group
+EXPORT_SYMBOL	 vmlinux 0x1198d7bf	napi_schedule_prep
+EXPORT_SYMBOL	 vmlinux 0x119aae1c	ns_capable_setid
+EXPORT_SYMBOL	 vmlinux 0x11a746aa	netdev_master_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x11ac4458	__cancel_dirty_page
+EXPORT_SYMBOL	 vmlinux 0x11b6505b	blk_register_region
+EXPORT_SYMBOL	 vmlinux 0x11d3792e	setup_arg_pages
+EXPORT_SYMBOL	 vmlinux 0x11e0ec41	dm_read_arg
+EXPORT_SYMBOL	 vmlinux 0x11f0f083	kernel_cpumcf_avail
+EXPORT_SYMBOL	 vmlinux 0x11fb83cb	on_each_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x120b336a	__rb_insert_augmented
+EXPORT_SYMBOL	 vmlinux 0x120c139f	gen_pool_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0x120d67d4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0x120e8c99	add_to_page_cache_locked
+EXPORT_SYMBOL	 vmlinux 0x120edf2f	dev_direct_xmit
+EXPORT_SYMBOL	 vmlinux 0x1212fc80	kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x121402ce	iptun_encaps
+EXPORT_SYMBOL	 vmlinux 0x1239fc2d	sg_copy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x1251a12e	console_mode
+EXPORT_SYMBOL	 vmlinux 0x125b36e0	down_write_killable
+EXPORT_SYMBOL	 vmlinux 0x12641250	get_phys_clock
+EXPORT_SYMBOL	 vmlinux 0x1280519e	qdisc_offload_dump_helper
+EXPORT_SYMBOL	 vmlinux 0x12854d75	kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL	 vmlinux 0x12cabc89	siphash_2u64
+EXPORT_SYMBOL	 vmlinux 0x12cc5e5d	xa_find
+EXPORT_SYMBOL	 vmlinux 0x12f6f69c	fb_videomode_to_var
+EXPORT_SYMBOL	 vmlinux 0x12fa14a8	__wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x12fe638d	diag_stat_inc_norecursion
+EXPORT_SYMBOL	 vmlinux 0x13110126	request_resource
+EXPORT_SYMBOL	 vmlinux 0x1319b594	pci_release_resource
+EXPORT_SYMBOL	 vmlinux 0x133d14e0	tcf_idr_search
+EXPORT_SYMBOL	 vmlinux 0x134783bd	mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x134b9e60	nf_log_register
+EXPORT_SYMBOL	 vmlinux 0x134cdd34	inet_frag_rbtree_purge
+EXPORT_SYMBOL	 vmlinux 0x1357c9f2	jbd2_journal_init_inode
+EXPORT_SYMBOL	 vmlinux 0x13586499	iov_iter_init
+EXPORT_SYMBOL	 vmlinux 0x136608b2	__tracepoint_s390_cio_csch
+EXPORT_SYMBOL	 vmlinux 0x137aa0cf	invalidate_inode_buffers
+EXPORT_SYMBOL	 vmlinux 0x13a9c875	security_sctp_bind_connect
+EXPORT_SYMBOL	 vmlinux 0x13b7eb9e	__netif_schedule
+EXPORT_SYMBOL	 vmlinux 0x13c4dc58	pcie_port_service_register
+EXPORT_SYMBOL	 vmlinux 0x13ca27f3	dump_skip
+EXPORT_SYMBOL	 vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL	 vmlinux 0x13d328e9	tcp_ioctl
+EXPORT_SYMBOL	 vmlinux 0x13e97429	input_flush_device
+EXPORT_SYMBOL	 vmlinux 0x13ea817b	init_special_inode
+EXPORT_SYMBOL	 vmlinux 0x140468ae	unregister_service_level
+EXPORT_SYMBOL	 vmlinux 0x145c8b7e	kill_pgrp
+EXPORT_SYMBOL	 vmlinux 0x14605535	dma_fence_context_alloc
+EXPORT_SYMBOL	 vmlinux 0x146289b7	crc16_table
+EXPORT_SYMBOL	 vmlinux 0x146690da	kiocb_set_cancel_fn
+EXPORT_SYMBOL	 vmlinux 0x14684eb2	debug_hex_ascii_view
+EXPORT_SYMBOL	 vmlinux 0x1473cad5	gen_pool_dma_alloc
+EXPORT_SYMBOL	 vmlinux 0x148f46e3	hdmi_avi_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x14aec4ea	import_iovec
+EXPORT_SYMBOL	 vmlinux 0x14bf34cc	nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x14c5e5b3	segment_warning
+EXPORT_SYMBOL	 vmlinux 0x14c67e3e	tcp_tx_delay_enabled
+EXPORT_SYMBOL	 vmlinux 0x14c9cfc6	find_vma
+EXPORT_SYMBOL	 vmlinux 0x14dbd525	blk_mq_alloc_request
+EXPORT_SYMBOL	 vmlinux 0x14ea4a62	dev_addr_add
+EXPORT_SYMBOL	 vmlinux 0x14fb2365	cmdline_parts_set
+EXPORT_SYMBOL	 vmlinux 0x15049889	fb_center_logo
+EXPORT_SYMBOL	 vmlinux 0x1506c4cc	flow_block_cb_setup_simple
+EXPORT_SYMBOL	 vmlinux 0x150983e1	ZSTD_DStreamOutSize
+EXPORT_SYMBOL	 vmlinux 0x150d8d64	security_dentry_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x151b07bf	xfrm_register_type
+EXPORT_SYMBOL	 vmlinux 0x151f4898	schedule_timeout_uninterruptible
+EXPORT_SYMBOL	 vmlinux 0x151f8416	__sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0x15207390	pci_find_pcie_root_port
+EXPORT_SYMBOL	 vmlinux 0x152606d5	register_service_level
+EXPORT_SYMBOL	 vmlinux 0x1526b301	unix_tot_inflight
+EXPORT_SYMBOL	 vmlinux 0x1535b38a	skb_set_owner_w
+EXPORT_SYMBOL	 vmlinux 0x15374007	param_get_charp
+EXPORT_SYMBOL	 vmlinux 0x1539b56c	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL	 vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x15697e3d	seq_printf
+EXPORT_SYMBOL	 vmlinux 0x156f00f3	sg_pcopy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x15744cc9	dma_direct_unmap_page
+EXPORT_SYMBOL	 vmlinux 0x158bdd15	md_update_sb
+EXPORT_SYMBOL	 vmlinux 0x15921347	dev_set_mac_address
+EXPORT_SYMBOL	 vmlinux 0x15bafe29	unregister_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0x15bd359b	kthread_blkcg
+EXPORT_SYMBOL	 vmlinux 0x15bed7a5	LZ4_decompress_safe_partial
+EXPORT_SYMBOL	 vmlinux 0x15c85578	bio_split
+EXPORT_SYMBOL	 vmlinux 0x15eba639	blk_mq_stop_hw_queues
+EXPORT_SYMBOL	 vmlinux 0x16077b7c	tcf_generic_walker
+EXPORT_SYMBOL	 vmlinux 0x160f860e	register_netdevice
+EXPORT_SYMBOL	 vmlinux 0x16279450	dcache_dir_lseek
+EXPORT_SYMBOL	 vmlinux 0x162893fd	hashlen_string
+EXPORT_SYMBOL	 vmlinux 0x16337790	scsi_dma_map
+EXPORT_SYMBOL	 vmlinux 0x163a3cd2	cpumask_next_and
+EXPORT_SYMBOL	 vmlinux 0x1649ad67	inet6_del_offload
+EXPORT_SYMBOL	 vmlinux 0x164b6a1c	pci_request_irq
+EXPORT_SYMBOL	 vmlinux 0x166c95c2	tcp_sockets_allocated
+EXPORT_SYMBOL	 vmlinux 0x16785410	scsi_is_sdev_device
+EXPORT_SYMBOL	 vmlinux 0x1687df13	xfrm_input_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x169dfca7	neigh_app_ns
+EXPORT_SYMBOL	 vmlinux 0x16a91b92	jbd2_journal_clear_features
+EXPORT_SYMBOL	 vmlinux 0x16aa2eaa	dmam_free_coherent
+EXPORT_SYMBOL	 vmlinux 0x16aef3fe	__set_page_dirty_buffers
+EXPORT_SYMBOL	 vmlinux 0x16bb4a9e	tcf_chain_get_by_act
+EXPORT_SYMBOL	 vmlinux 0x16c3482b	tcf_action_dump_1
+EXPORT_SYMBOL	 vmlinux 0x16c74d94	fifo_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x16de7853	xfrm_policy_destroy
+EXPORT_SYMBOL	 vmlinux 0x16e297c3	bit_wait
+EXPORT_SYMBOL	 vmlinux 0x16f489d4	__skb_recv_udp
+EXPORT_SYMBOL	 vmlinux 0x16fc3d40	tcf_idr_check_alloc
+EXPORT_SYMBOL	 vmlinux 0x1729ea94	param_set_uint
+EXPORT_SYMBOL	 vmlinux 0x175c4ce5	pcie_capability_write_dword
+EXPORT_SYMBOL	 vmlinux 0x175f50ea	netif_device_detach
+EXPORT_SYMBOL	 vmlinux 0x17762d61	tcf_exts_dump
+EXPORT_SYMBOL	 vmlinux 0x17827cf6	tty_set_operations
+EXPORT_SYMBOL	 vmlinux 0x17839f95	invalidate_bdev
+EXPORT_SYMBOL	 vmlinux 0x17aa6c9c	debug_unregister_view
+EXPORT_SYMBOL	 vmlinux 0x17c7fc58	gro_cells_receive
+EXPORT_SYMBOL	 vmlinux 0x17d30898	__dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x17f20ee0	dev_mc_sync_multiple
+EXPORT_SYMBOL	 vmlinux 0x183ba0dd	vlan_dev_vlan_id
+EXPORT_SYMBOL	 vmlinux 0x1873240a	iov_iter_fault_in_readable
+EXPORT_SYMBOL	 vmlinux 0x187b43f4	block_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x188ea314	jiffies_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1897e8be	mempool_create
+EXPORT_SYMBOL	 vmlinux 0x189b6bac	memory_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x18b87cca	sclp_deactivate
+EXPORT_SYMBOL	 vmlinux 0x18b8a3fe	dev_get_flags
+EXPORT_SYMBOL	 vmlinux 0x18d124f2	pipe_lock
+EXPORT_SYMBOL	 vmlinux 0x18e53f53	__dynamic_dev_dbg
+EXPORT_SYMBOL	 vmlinux 0x18e60984	__do_once_start
+EXPORT_SYMBOL	 vmlinux 0x190194e4	ip_frag_next
+EXPORT_SYMBOL	 vmlinux 0x190ad815	__tracepoint_s390_cio_stsch
+EXPORT_SYMBOL	 vmlinux 0x19107d57	audit_log
+EXPORT_SYMBOL	 vmlinux 0x19132920	debug_dflt_header_fn
+EXPORT_SYMBOL	 vmlinux 0x19345c1e	seg6_hmac_validate_skb
+EXPORT_SYMBOL	 vmlinux 0x196b61ec	ip_options_rcv_srr
+EXPORT_SYMBOL	 vmlinux 0x1980e50a	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL	 vmlinux 0x1984d421	out_of_line_wait_on_bit
+EXPORT_SYMBOL	 vmlinux 0x198620d7	security_add_mnt_opt
+EXPORT_SYMBOL	 vmlinux 0x199a7176	sock_dequeue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x19b5585c	writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL	 vmlinux 0x19d9bac5	udp_set_csum
+EXPORT_SYMBOL	 vmlinux 0x19daee1a	__splice_from_pipe
+EXPORT_SYMBOL	 vmlinux 0x19dbf5e1	bio_integrity_trim
+EXPORT_SYMBOL	 vmlinux 0x19e98ad4	netdev_unbind_sb_channel
+EXPORT_SYMBOL	 vmlinux 0x1a1d3d2f	generic_write_end
+EXPORT_SYMBOL	 vmlinux 0x1a28add2	radix_tree_iter_delete
+EXPORT_SYMBOL	 vmlinux 0x1a395137	truncate_pagecache
+EXPORT_SYMBOL	 vmlinux 0x1a709224	locks_remove_posix
+EXPORT_SYMBOL	 vmlinux 0x1a7ab77e	sdev_prefix_printk
+EXPORT_SYMBOL	 vmlinux 0x1a7bb7f7	scsi_block_requests
+EXPORT_SYMBOL	 vmlinux 0x1a809853	posix_acl_from_mode
+EXPORT_SYMBOL	 vmlinux 0x1a9a433c	prandom_u32_state
+EXPORT_SYMBOL	 vmlinux 0x1aac5623	pci_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x1ac4bc3a	blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0x1ac8a31c	stop_tty
+EXPORT_SYMBOL	 vmlinux 0x1add2392	xfrm_dst_ifdown
+EXPORT_SYMBOL	 vmlinux 0x1adf9d33	security_tun_dev_attach
+EXPORT_SYMBOL	 vmlinux 0x1af0e9ea	complete_request_key
+EXPORT_SYMBOL	 vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL	 vmlinux 0x1b1918d1	reuseport_add_sock
+EXPORT_SYMBOL	 vmlinux 0x1b1f04b7	neigh_proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0x1b4c3e83	filemap_map_pages
+EXPORT_SYMBOL	 vmlinux 0x1b5455b9	inode_permission
+EXPORT_SYMBOL	 vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL	 vmlinux 0x1b72d102	neigh_connected_output
+EXPORT_SYMBOL	 vmlinux 0x1b777357	rdmacg_unregister_device
+EXPORT_SYMBOL	 vmlinux 0x1b851bd8	ww_mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x1b86a2db	dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x1ba04458	sg_pcopy_to_buffer
+EXPORT_SYMBOL	 vmlinux 0x1ba13495	__cpu_to_node
+EXPORT_SYMBOL	 vmlinux 0x1ba95488	eth_validate_addr
+EXPORT_SYMBOL	 vmlinux 0x1bb51249	tcp_have_smc
+EXPORT_SYMBOL	 vmlinux 0x1bc66869	fixed_size_llseek
+EXPORT_SYMBOL	 vmlinux 0x1bf29903	padata_start
+EXPORT_SYMBOL	 vmlinux 0x1bf301c3	__wake_up
+EXPORT_SYMBOL	 vmlinux 0x1bfac327	compat_ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x1c30419b	security_skb_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x1c338147	vm_numa_stat
+EXPORT_SYMBOL	 vmlinux 0x1c34941c	seq_vprintf
+EXPORT_SYMBOL	 vmlinux 0x1c45b75f	sk_stream_wait_memory
+EXPORT_SYMBOL	 vmlinux 0x1c541e1d	ip_do_fragment
+EXPORT_SYMBOL	 vmlinux 0x1c62db4f	dma_direct_map_sg
+EXPORT_SYMBOL	 vmlinux 0x1c658a63	unix_attach_fds
+EXPORT_SYMBOL	 vmlinux 0x1c80de9c	ip_send_check
+EXPORT_SYMBOL	 vmlinux 0x1c811c5e	kthread_destroy_worker
+EXPORT_SYMBOL	 vmlinux 0x1cb2c6d8	kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x1cbe6e7b	bio_alloc_bioset
+EXPORT_SYMBOL	 vmlinux 0x1cd10254	dquot_quota_on
+EXPORT_SYMBOL	 vmlinux 0x1ce1ca10	f_setown
+EXPORT_SYMBOL	 vmlinux 0x1cf6ed2a	__block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x1d00a775	scsi_host_get
+EXPORT_SYMBOL	 vmlinux 0x1d25dfac	jbd2_journal_stop
+EXPORT_SYMBOL	 vmlinux 0x1d29eb94	ip6_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0x1d2d6d15	wait_iff_congested
+EXPORT_SYMBOL	 vmlinux 0x1d3c8b16	nf_ip_checksum
+EXPORT_SYMBOL	 vmlinux 0x1d3da35e	vmf_insert_pfn_prot
+EXPORT_SYMBOL	 vmlinux 0x1d3e2765	iucv_path_quiesce
+EXPORT_SYMBOL	 vmlinux 0x1d5bca88	ioc_lookup_icq
+EXPORT_SYMBOL	 vmlinux 0x1d6c1119	crypto_sha1_finup
+EXPORT_SYMBOL	 vmlinux 0x1d967d27	netif_rx_ni
+EXPORT_SYMBOL	 vmlinux 0x1dadd920	__kmalloc
+EXPORT_SYMBOL	 vmlinux 0x1dbbd8db	wait_for_completion_killable_timeout
+EXPORT_SYMBOL	 vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL	 vmlinux 0x1de0ed08	netdev_lower_dev_get_private
+EXPORT_SYMBOL	 vmlinux 0x1ded166f	tcp_openreq_init_rwin
+EXPORT_SYMBOL	 vmlinux 0x1e023839	simple_fill_super
+EXPORT_SYMBOL	 vmlinux 0x1e09c5e7	ccw_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x1e0a0c24	mod_timer_pending
+EXPORT_SYMBOL	 vmlinux 0x1e0f202c	mr_mfc_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x1e1e140e	ns_to_timespec64
+EXPORT_SYMBOL	 vmlinux 0x1e43f2c8	__skb_ext_del
+EXPORT_SYMBOL	 vmlinux 0x1e497d9a	blk_queue_max_discard_sectors
+EXPORT_SYMBOL	 vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL	 vmlinux 0x1e705e20	downgrade_write
+EXPORT_SYMBOL	 vmlinux 0x1e848cac	pci_get_slot
+EXPORT_SYMBOL	 vmlinux 0x1e8a161a	crc_t10dif_generic
+EXPORT_SYMBOL	 vmlinux 0x1e906554	blkdev_put
+EXPORT_SYMBOL	 vmlinux 0x1e92c584	pci_bus_claim_resources
+EXPORT_SYMBOL	 vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL	 vmlinux 0x1ea93835	jbd2__journal_restart
+EXPORT_SYMBOL	 vmlinux 0x1eacd549	bioset_init_from_src
+EXPORT_SYMBOL	 vmlinux 0x1ead6fea	flow_block_cb_decref
+EXPORT_SYMBOL	 vmlinux 0x1ebeb0b6	netpoll_setup
+EXPORT_SYMBOL	 vmlinux 0x1ec787e2	xsk_clear_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x1edb69d6	ktime_get_raw_ts64
+EXPORT_SYMBOL	 vmlinux 0x1ede54f2	proc_do_large_bitmap
+EXPORT_SYMBOL	 vmlinux 0x1ee12980	inet_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x1ef6e3cc	tc_setup_flow_action
+EXPORT_SYMBOL	 vmlinux 0x1efaaf32	dev_get_valid_name
+EXPORT_SYMBOL	 vmlinux 0x1f1403e1	tcp_filter
+EXPORT_SYMBOL	 vmlinux 0x1f227f4a	netdev_port_same_parent_id
+EXPORT_SYMBOL	 vmlinux 0x1f2a65a5	tty_driver_flush_buffer
+EXPORT_SYMBOL	 vmlinux 0x1f3b096f	blk_sync_queue
+EXPORT_SYMBOL	 vmlinux 0x1f560f67	percpu_counter_set
+EXPORT_SYMBOL	 vmlinux 0x1f57822e	krealloc
+EXPORT_SYMBOL	 vmlinux 0x1f7bab43	udp_lib_unhash
+EXPORT_SYMBOL	 vmlinux 0x1f7bf628	sock_no_bind
+EXPORT_SYMBOL	 vmlinux 0x1f8a1a32	lockref_put_return
+EXPORT_SYMBOL	 vmlinux 0x1f949550	pci_restore_state
+EXPORT_SYMBOL	 vmlinux 0x1fb27078	tcw_get_tccb
+EXPORT_SYMBOL	 vmlinux 0x1fbd16da	ip_tos2prio
+EXPORT_SYMBOL	 vmlinux 0x1fc7a59b	__nla_validate
+EXPORT_SYMBOL	 vmlinux 0x1fda8755	__memset32
+EXPORT_SYMBOL	 vmlinux 0x1fddcc85	pagecache_write_end
+EXPORT_SYMBOL	 vmlinux 0x1fe912f1	netdev_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0x1ff74f95	rtnl_nla_parse_ifinfomsg
+EXPORT_SYMBOL	 vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL	 vmlinux 0x2008bf83	fbcon_set_bitops
+EXPORT_SYMBOL	 vmlinux 0x200b2041	in6addr_any
+EXPORT_SYMBOL	 vmlinux 0x2014a246	__siphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x201ee532	xsk_umem_peek_addr
+EXPORT_SYMBOL	 vmlinux 0x20297123	tcp_md5_do_add
+EXPORT_SYMBOL	 vmlinux 0x204c19f5	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x204c5067	scsi_dev_info_add_list
+EXPORT_SYMBOL	 vmlinux 0x20651114	submit_bio
+EXPORT_SYMBOL	 vmlinux 0x20687cd7	dma_fence_signal
+EXPORT_SYMBOL	 vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x209129be	netdev_class_create_file_ns
+EXPORT_SYMBOL	 vmlinux 0x20973b94	segment_unload
+EXPORT_SYMBOL	 vmlinux 0x209b5730	input_handler_for_each_handle
+EXPORT_SYMBOL	 vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL	 vmlinux 0x20bd57ba	blk_alloc_queue_node
+EXPORT_SYMBOL	 vmlinux 0x20c587cc	utf8nagemin
+EXPORT_SYMBOL	 vmlinux 0x20d65e40	fb_find_nearest_mode
+EXPORT_SYMBOL	 vmlinux 0x20e0545f	tty_port_carrier_raised
+EXPORT_SYMBOL	 vmlinux 0x20ee076e	itcw_add_tidaw
+EXPORT_SYMBOL	 vmlinux 0x20f18e51	udp_lib_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x210f96b3	netpoll_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x2112a495	blk_integrity_compare
+EXPORT_SYMBOL	 vmlinux 0x211a63fa	bprm_change_interp
+EXPORT_SYMBOL	 vmlinux 0x2127e811	fuse_dequeue_forget
+EXPORT_SYMBOL	 vmlinux 0x212acee3	xfrm_state_lookup
+EXPORT_SYMBOL	 vmlinux 0x212b9408	xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0x2145d51c	napi_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x21574a30	tcp_timewait_state_process
+EXPORT_SYMBOL	 vmlinux 0x215897da	d_exact_alias
+EXPORT_SYMBOL	 vmlinux 0x21640e9f	request_firmware_into_buf
+EXPORT_SYMBOL	 vmlinux 0x21664d3c	starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0x2175abc6	security_path_mknod
+EXPORT_SYMBOL	 vmlinux 0x2180fa49	register_console
+EXPORT_SYMBOL	 vmlinux 0x218e600b	pci_add_resource_offset
+EXPORT_SYMBOL	 vmlinux 0x2197bb0d	qdisc_put
+EXPORT_SYMBOL	 vmlinux 0x21bb5554	on_each_cpu_cond_mask
+EXPORT_SYMBOL	 vmlinux 0x21bdb523	errseq_check_and_advance
+EXPORT_SYMBOL	 vmlinux 0x21be37e1	hdmi_avi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x21bef897	vfs_iter_write
+EXPORT_SYMBOL	 vmlinux 0x21dc114b	d_alloc
+EXPORT_SYMBOL	 vmlinux 0x21e13cb3	inet_peer_xrlim_allow
+EXPORT_SYMBOL	 vmlinux 0x21e396b9	kobject_set_name
+EXPORT_SYMBOL	 vmlinux 0x21e8f788	__ethtool_get_link_ksettings
+EXPORT_SYMBOL	 vmlinux 0x220df7aa	netdev_has_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x2210642c	sclp_ap_deconfigure
+EXPORT_SYMBOL	 vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL	 vmlinux 0x22402533	load_nls_default
+EXPORT_SYMBOL	 vmlinux 0x2240c754	console_stop
+EXPORT_SYMBOL	 vmlinux 0x2247ceab	security_sock_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x22500e39	vfs_fadvise
+EXPORT_SYMBOL	 vmlinux 0x225ba87c	jbd2_journal_start_reserved
+EXPORT_SYMBOL	 vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL	 vmlinux 0x229484cd	netdev_stats_to_stats64
+EXPORT_SYMBOL	 vmlinux 0x229e42a6	iterate_fd
+EXPORT_SYMBOL	 vmlinux 0x22a6d318	get_user_pages
+EXPORT_SYMBOL	 vmlinux 0x22b090a3	param_get_uint
+EXPORT_SYMBOL	 vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL	 vmlinux 0x22b6d8a2	kill_litter_super
+EXPORT_SYMBOL	 vmlinux 0x22bc459e	xfrm_sad_getinfo
+EXPORT_SYMBOL	 vmlinux 0x22bc52b2	xfrm_lookup_with_ifid
+EXPORT_SYMBOL	 vmlinux 0x22dd6d51	tccb_init
+EXPORT_SYMBOL	 vmlinux 0x22f2ef85	pcie_get_speed_cap
+EXPORT_SYMBOL	 vmlinux 0x23037565	compat_ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x23068ac8	dev_uc_flush
+EXPORT_SYMBOL	 vmlinux 0x23138bb1	dev_getfirstbyhwtype
+EXPORT_SYMBOL	 vmlinux 0x232eef7d	dquot_quota_off
+EXPORT_SYMBOL	 vmlinux 0x236c8c64	memcpy
+EXPORT_SYMBOL	 vmlinux 0x238b8ab3	debug_event_common
+EXPORT_SYMBOL	 vmlinux 0x239a7674	dev_mc_del_global
+EXPORT_SYMBOL	 vmlinux 0x23b2a714	read_cache_pages
+EXPORT_SYMBOL	 vmlinux 0x23b9d6e2	mangle_path
+EXPORT_SYMBOL	 vmlinux 0x23d78f1f	vfs_getattr
+EXPORT_SYMBOL	 vmlinux 0x23e68d12	generic_permission
+EXPORT_SYMBOL	 vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x24160670	device_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x24212d86	__frontswap_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0x242de339	rtnl_link_get_net
+EXPORT_SYMBOL	 vmlinux 0x242f3562	irq_subclass_register
+EXPORT_SYMBOL	 vmlinux 0x243eb470	tcp_syn_ack_timeout
+EXPORT_SYMBOL	 vmlinux 0x2445510a	sock_no_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x244d4272	scsi_track_queue_full
+EXPORT_SYMBOL	 vmlinux 0x2458cf60	qdisc_reset
+EXPORT_SYMBOL	 vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL	 vmlinux 0x2473f47e	dm_table_get_size
+EXPORT_SYMBOL	 vmlinux 0x2476cb4b	param_get_short
+EXPORT_SYMBOL	 vmlinux 0x247a3fe4	LZ4_decompress_fast_continue
+EXPORT_SYMBOL	 vmlinux 0x2480d0be	raw3270_start_locked
+EXPORT_SYMBOL	 vmlinux 0x2481c7a5	hdmi_infoframe_log
+EXPORT_SYMBOL	 vmlinux 0x248887a8	start_tty
+EXPORT_SYMBOL	 vmlinux 0x24a669fa	file_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x24ce44bd	bdgrab
+EXPORT_SYMBOL	 vmlinux 0x24d273d1	add_timer
+EXPORT_SYMBOL	 vmlinux 0x25256e9f	dquot_free_inode
+EXPORT_SYMBOL	 vmlinux 0x252cf375	scsi_kmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x2548c032	__cpu_possible_mask
+EXPORT_SYMBOL	 vmlinux 0x25495545	dm_unregister_target
+EXPORT_SYMBOL	 vmlinux 0x2570a138	reservation_seqcount_string
+EXPORT_SYMBOL	 vmlinux 0x25724eb2	blk_queue_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x257c908a	raw3270_add_view
+EXPORT_SYMBOL	 vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL	 vmlinux 0x2585a6c3	blk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x258d2f76	net_dim_get_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x2598cd38	pci_release_region
+EXPORT_SYMBOL	 vmlinux 0x259ec111	ap_queue_message
+EXPORT_SYMBOL	 vmlinux 0x25b852b7	__cleancache_init_fs
+EXPORT_SYMBOL	 vmlinux 0x25c0229f	tcp_poll
+EXPORT_SYMBOL	 vmlinux 0x25e9d4bd	resource_list_free
+EXPORT_SYMBOL	 vmlinux 0x25ec1b28	strlen
+EXPORT_SYMBOL	 vmlinux 0x25f2e58e	page_cache_next_miss
+EXPORT_SYMBOL	 vmlinux 0x260a095a	__sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x26122eca	register_cdrom
+EXPORT_SYMBOL	 vmlinux 0x262e1fd5	qdisc_watchdog_init_clockid
+EXPORT_SYMBOL	 vmlinux 0x2630669c	gen_pool_free_owner
+EXPORT_SYMBOL	 vmlinux 0x263713d9	blk_alloc_queue
+EXPORT_SYMBOL	 vmlinux 0x263adb9a	vfs_path_lookup
+EXPORT_SYMBOL	 vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL	 vmlinux 0x2641a1c6	diag224
+EXPORT_SYMBOL	 vmlinux 0x264961d2	dquot_mark_dquot_dirty
+EXPORT_SYMBOL	 vmlinux 0x2688ec10	bitmap_zalloc
+EXPORT_SYMBOL	 vmlinux 0x26897b52	mb_cache_entry_get
+EXPORT_SYMBOL	 vmlinux 0x26a5b938	sclp_pci_configure
+EXPORT_SYMBOL	 vmlinux 0x26ba62ff	netdev_reset_tc
+EXPORT_SYMBOL	 vmlinux 0x26e21561	__put_user_ns
+EXPORT_SYMBOL	 vmlinux 0x26e298e0	unregister_memory_notifier
+EXPORT_SYMBOL	 vmlinux 0x26eb7414	security_sb_remount
+EXPORT_SYMBOL	 vmlinux 0x26ed3ae2	kernel_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x270dca8b	km_state_expired
+EXPORT_SYMBOL	 vmlinux 0x272a8933	udp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x272c7fc4	pci_bus_read_config_word
+EXPORT_SYMBOL	 vmlinux 0x2733eaf7	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL	 vmlinux 0x27418353	kstrtos16_from_user
+EXPORT_SYMBOL	 vmlinux 0x27479d14	param_free_charp
+EXPORT_SYMBOL	 vmlinux 0x275c24a7	kvfree_sensitive
+EXPORT_SYMBOL	 vmlinux 0x275f3d49	hdmi_vendor_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x27639220	blk_verify_command
+EXPORT_SYMBOL	 vmlinux 0x27669a71	read_dev_sector
+EXPORT_SYMBOL	 vmlinux 0x27756bc8	scsi_sanitize_inquiry_string
+EXPORT_SYMBOL	 vmlinux 0x277a9781	skb_clone
+EXPORT_SYMBOL	 vmlinux 0x2782b393	xfrm_state_walk_init
+EXPORT_SYMBOL	 vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL	 vmlinux 0x279da8ab	iucv_bus
+EXPORT_SYMBOL	 vmlinux 0x27b4cdf3	param_get_string
+EXPORT_SYMBOL	 vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL	 vmlinux 0x27cdca93	pci_add_resource
+EXPORT_SYMBOL	 vmlinux 0x27d2767a	dev_set_mac_address_user
+EXPORT_SYMBOL	 vmlinux 0x27d58670	compat_sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x27eb9cd1	tcw_set_intrg
+EXPORT_SYMBOL	 vmlinux 0x27f3917a	call_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x2801961f	fs_parse
+EXPORT_SYMBOL	 vmlinux 0x280f65ad	generic_parse_monolithic
+EXPORT_SYMBOL	 vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL	 vmlinux 0x2847c358	devm_ioremap_wc
+EXPORT_SYMBOL	 vmlinux 0x2853787c	crypto_sha1_update
+EXPORT_SYMBOL	 vmlinux 0x2859829b	pmdp_xchg_lazy
+EXPORT_SYMBOL	 vmlinux 0x2875a315	utf32_to_utf8
+EXPORT_SYMBOL	 vmlinux 0x288382ef	_atomic_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x2893ab11	param_get_bool
+EXPORT_SYMBOL	 vmlinux 0x28a47f1a	do_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x28ad4b98	get_tree_nodev
+EXPORT_SYMBOL	 vmlinux 0x28ce6ab5	ipv6_sock_mc_drop
+EXPORT_SYMBOL	 vmlinux 0x28eabda3	misc_deregister
+EXPORT_SYMBOL	 vmlinux 0x28fdd0a5	napi_complete_done
+EXPORT_SYMBOL	 vmlinux 0x2910f4cb	on_each_cpu_cond
+EXPORT_SYMBOL	 vmlinux 0x292683cd	sg_miter_stop
+EXPORT_SYMBOL	 vmlinux 0x292cd200	ip6_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0x29391e7d	vm_munmap
+EXPORT_SYMBOL	 vmlinux 0x294b9ea1	on_each_cpu
+EXPORT_SYMBOL	 vmlinux 0x29565d51	seq_path
+EXPORT_SYMBOL	 vmlinux 0x295681ca	vfs_ioc_setflags_prepare
+EXPORT_SYMBOL	 vmlinux 0x2956cf37	sclp_remove_processed
+EXPORT_SYMBOL	 vmlinux 0x29789394	empty_zero_page
+EXPORT_SYMBOL	 vmlinux 0x2990d447	fb_set_cmap
+EXPORT_SYMBOL	 vmlinux 0x29ca547b	param_set_bool
+EXPORT_SYMBOL	 vmlinux 0x2a2fa260	nla_policy_len
+EXPORT_SYMBOL	 vmlinux 0x2a41d203	dql_init
+EXPORT_SYMBOL	 vmlinux 0x2a4e83c0	__scm_send
+EXPORT_SYMBOL	 vmlinux 0x2a55dc2c	dma_fence_array_create
+EXPORT_SYMBOL	 vmlinux 0x2a6034eb	dget_parent
+EXPORT_SYMBOL	 vmlinux 0x2a72ca46	skb_ensure_writable
+EXPORT_SYMBOL	 vmlinux 0x2a805563	__kernel_cpumcf_end
+EXPORT_SYMBOL	 vmlinux 0x2a9f1a3f	dev_mc_flush
+EXPORT_SYMBOL	 vmlinux 0x2aaab381	dma_pool_create
+EXPORT_SYMBOL	 vmlinux 0x2ad35489	clear_nlink
+EXPORT_SYMBOL	 vmlinux 0x2ae171e5	d_drop
+EXPORT_SYMBOL	 vmlinux 0x2af3f454	ssch
+EXPORT_SYMBOL	 vmlinux 0x2b13c1db	__xa_cmpxchg
+EXPORT_SYMBOL	 vmlinux 0x2b16f959	ip_defrag
+EXPORT_SYMBOL	 vmlinux 0x2b3a22dd	inet_bind
+EXPORT_SYMBOL	 vmlinux 0x2b4e9988	ccw_device_start_timeout_key
+EXPORT_SYMBOL	 vmlinux 0x2b61f512	forget_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x2b68bd2f	del_timer
+EXPORT_SYMBOL	 vmlinux 0x2b6efe93	skb_copy_bits
+EXPORT_SYMBOL	 vmlinux 0x2b807f10	sock_create
+EXPORT_SYMBOL	 vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL	 vmlinux 0x2baf583b	eth_platform_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0x2bc338b7	dst_dev_put
+EXPORT_SYMBOL	 vmlinux 0x2bd4e4d0	dump_align
+EXPORT_SYMBOL	 vmlinux 0x2be6f104	end_buffer_read_sync
+EXPORT_SYMBOL	 vmlinux 0x2bfa405f	inet_offloads
+EXPORT_SYMBOL	 vmlinux 0x2c0d5ceb	gen_new_estimator
+EXPORT_SYMBOL	 vmlinux 0x2c0e211c	vlan_filter_push_vids
+EXPORT_SYMBOL	 vmlinux 0x2c0f1582	lockref_get
+EXPORT_SYMBOL	 vmlinux 0x2c0f2fb3	mempool_alloc
+EXPORT_SYMBOL	 vmlinux 0x2c1cf773	__init_rwsem
+EXPORT_SYMBOL	 vmlinux 0x2c252b48	ZSTD_insertBlock
+EXPORT_SYMBOL	 vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL	 vmlinux 0x2c288db9	get_fs_type
+EXPORT_SYMBOL	 vmlinux 0x2c29a995	__strnlen_user
+EXPORT_SYMBOL	 vmlinux 0x2c349dcd	sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x2c3e6004	skb_trim
+EXPORT_SYMBOL	 vmlinux 0x2c3f31d5	pcim_set_mwi
+EXPORT_SYMBOL	 vmlinux 0x2c73c562	tty_register_driver
+EXPORT_SYMBOL	 vmlinux 0x2c82c36a	security_secmark_relabel_packet
+EXPORT_SYMBOL	 vmlinux 0x2c997514	pci_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0x2cbdef7d	radix_tree_lookup
+EXPORT_SYMBOL	 vmlinux 0x2cc3a2f4	posix_acl_to_xattr
+EXPORT_SYMBOL	 vmlinux 0x2ccd059a	dim_on_top
+EXPORT_SYMBOL	 vmlinux 0x2ce2fef2	xfrm_trans_queue
+EXPORT_SYMBOL	 vmlinux 0x2ce4fee0	done_path_create
+EXPORT_SYMBOL	 vmlinux 0x2cf7b13d	dm_get_device
+EXPORT_SYMBOL	 vmlinux 0x2cfdfcf1	gen_replace_estimator
+EXPORT_SYMBOL	 vmlinux 0x2cfe1617	nobh_write_end
+EXPORT_SYMBOL	 vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL	 vmlinux 0x2d30596c	from_kqid_munged
+EXPORT_SYMBOL	 vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL	 vmlinux 0x2d39b0a7	kstrdup
+EXPORT_SYMBOL	 vmlinux 0x2d4c773a	hdmi_spd_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x2d50408d	register_qdisc
+EXPORT_SYMBOL	 vmlinux 0x2d5970bf	jbd2_journal_ack_err
+EXPORT_SYMBOL	 vmlinux 0x2d66bd5e	__nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x2d68fffd	scsi_ioctl
+EXPORT_SYMBOL	 vmlinux 0x2d80ab75	ip6_frag_init
+EXPORT_SYMBOL	 vmlinux 0x2d92beac	mpage_writepages
+EXPORT_SYMBOL	 vmlinux 0x2d994605	security_inode_copy_up_xattr
+EXPORT_SYMBOL	 vmlinux 0x2db08b2b	xfrm_state_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x2dc57621	seq_open_private
+EXPORT_SYMBOL	 vmlinux 0x2dd836e3	inet_sendpage
+EXPORT_SYMBOL	 vmlinux 0x2dfa58a6	tcf_exts_change
+EXPORT_SYMBOL	 vmlinux 0x2e0938e1	nf_log_packet
+EXPORT_SYMBOL	 vmlinux 0x2e10ef43	param_ops_long
+EXPORT_SYMBOL	 vmlinux 0x2e19e1fa	flow_get_u32_dst
+EXPORT_SYMBOL	 vmlinux 0x2e240bba	pcie_set_readrq
+EXPORT_SYMBOL	 vmlinux 0x2e33047a	netdev_state_change
+EXPORT_SYMBOL	 vmlinux 0x2e3a7b5e	dst_cow_metrics_generic
+EXPORT_SYMBOL	 vmlinux 0x2e41cf9a	raw_copy_in_user
+EXPORT_SYMBOL	 vmlinux 0x2ec6bba0	errseq_set
+EXPORT_SYMBOL	 vmlinux 0x2ec76a85	ll_rw_block
+EXPORT_SYMBOL	 vmlinux 0x2ec79d58	input_event
+EXPORT_SYMBOL	 vmlinux 0x2ed06b35	simple_transaction_set
+EXPORT_SYMBOL	 vmlinux 0x2edcab17	ZSTD_initDStream_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x2eea0983	blk_mq_rq_cpu
+EXPORT_SYMBOL	 vmlinux 0x2ef46fca	seq_escape
+EXPORT_SYMBOL	 vmlinux 0x2ef5661d	segment_modify_shared
+EXPORT_SYMBOL	 vmlinux 0x2efaf957	tcp_v4_md5_lookup
+EXPORT_SYMBOL	 vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL	 vmlinux 0x2f1c5daf	simple_rename
+EXPORT_SYMBOL	 vmlinux 0x2f2e91b2	security_ib_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x2f47be89	devm_kvasprintf
+EXPORT_SYMBOL	 vmlinux 0x2f48b06b	xfrm_state_insert
+EXPORT_SYMBOL	 vmlinux 0x2f4e1f95	dentry_open
+EXPORT_SYMBOL	 vmlinux 0x2f548802	ns_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x2f71ee48	fb_get_mode
+EXPORT_SYMBOL	 vmlinux 0x2f71f1b9	param_get_invbool
+EXPORT_SYMBOL	 vmlinux 0x2f7754a8	dma_pool_free
+EXPORT_SYMBOL	 vmlinux 0x2f913795	dquot_alloc
+EXPORT_SYMBOL	 vmlinux 0x2f9780b8	ipmr_rule_default
+EXPORT_SYMBOL	 vmlinux 0x2fa5a500	memcmp
+EXPORT_SYMBOL	 vmlinux 0x2fa6d164	pcim_iomap_table
+EXPORT_SYMBOL	 vmlinux 0x2fd09944	blake2s_update
+EXPORT_SYMBOL	 vmlinux 0x2fe252cc	unregister_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x2fecc791	arp_create
+EXPORT_SYMBOL	 vmlinux 0x2ffffb6f	_ebc_tolower
+EXPORT_SYMBOL	 vmlinux 0x3008d87e	inet_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x303bc501	padata_free
+EXPORT_SYMBOL	 vmlinux 0x303bd82c	kernel_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x305a9463	dcache_readdir
+EXPORT_SYMBOL	 vmlinux 0x3096be16	names_cachep
+EXPORT_SYMBOL	 vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL	 vmlinux 0x30acfde9	hsiphash_2u32
+EXPORT_SYMBOL	 vmlinux 0x30b84119	xfrm6_rcv_tnl
+EXPORT_SYMBOL	 vmlinux 0x30ccca96	generic_make_request
+EXPORT_SYMBOL	 vmlinux 0x30da2d05	dev_addr_del
+EXPORT_SYMBOL	 vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL	 vmlinux 0x30f1217c	dfltcc_deflate
+EXPORT_SYMBOL	 vmlinux 0x3102d70b	frontswap_curr_pages
+EXPORT_SYMBOL	 vmlinux 0x310bfd6c	kmem_cache_alloc_bulk
+EXPORT_SYMBOL	 vmlinux 0x311b4631	kmem_cache_alloc_trace
+EXPORT_SYMBOL	 vmlinux 0x31224314	jbd2_journal_load
+EXPORT_SYMBOL	 vmlinux 0x3126a9e8	siphash_1u64
+EXPORT_SYMBOL	 vmlinux 0x31390876	dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL	 vmlinux 0x314ce6a1	inet_del_offload
+EXPORT_SYMBOL	 vmlinux 0x31587e4e	pci_bus_write_config_word
+EXPORT_SYMBOL	 vmlinux 0x3164052e	pci_set_master
+EXPORT_SYMBOL	 vmlinux 0x316509b1	mark_info_dirty
+EXPORT_SYMBOL	 vmlinux 0x3178dcca	ccw_device_tm_start_key
+EXPORT_SYMBOL	 vmlinux 0x31a7e12f	migrate_page
+EXPORT_SYMBOL	 vmlinux 0x31b8310b	sk_send_sigurg
+EXPORT_SYMBOL	 vmlinux 0x31c5a388	nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x31d33694	ip6_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x31e7b349	key_create_or_update
+EXPORT_SYMBOL	 vmlinux 0x31eb2c96	lockref_put_not_zero
+EXPORT_SYMBOL	 vmlinux 0x32099a0d	fb_firmware_edid
+EXPORT_SYMBOL	 vmlinux 0x3218a6f1	truncate_inode_pages_range
+EXPORT_SYMBOL	 vmlinux 0x3225861a	xsk_set_tx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x3238bb46	jbd2_journal_forget
+EXPORT_SYMBOL	 vmlinux 0x323baba1	scsi_device_resume
+EXPORT_SYMBOL	 vmlinux 0x3262fecf	__register_binfmt
+EXPORT_SYMBOL	 vmlinux 0x326554bf	delete_from_page_cache
+EXPORT_SYMBOL	 vmlinux 0x3266f909	sock_rfree
+EXPORT_SYMBOL	 vmlinux 0x3275689f	smp_ctl_set_bit
+EXPORT_SYMBOL	 vmlinux 0x3275cd0b	qdisc_hash_del
+EXPORT_SYMBOL	 vmlinux 0x3283e6b0	prandom_seed_full_state
+EXPORT_SYMBOL	 vmlinux 0x328a2eca	ipv6_skip_exthdr
+EXPORT_SYMBOL	 vmlinux 0x3290e2e5	__skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x329ebc43	sync_filesystem
+EXPORT_SYMBOL	 vmlinux 0x32ae0796	do_wait_intr
+EXPORT_SYMBOL	 vmlinux 0x32bb5cc6	file_modified
+EXPORT_SYMBOL	 vmlinux 0x32c6a2d8	_ebcasc_500
+EXPORT_SYMBOL	 vmlinux 0x32ce3777	radix_tree_preload
+EXPORT_SYMBOL	 vmlinux 0x32eec574	pci_save_state
+EXPORT_SYMBOL	 vmlinux 0x3304913e	neigh_xmit
+EXPORT_SYMBOL	 vmlinux 0x3304f66b	nosteal_pipe_buf_ops
+EXPORT_SYMBOL	 vmlinux 0x3305fad7	generic_pipe_buf_get
+EXPORT_SYMBOL	 vmlinux 0x330bdd5d	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x331a8c35	sock_no_sendmsg_locked
+EXPORT_SYMBOL	 vmlinux 0x331cb3a8	textsearch_destroy
+EXPORT_SYMBOL	 vmlinux 0x331f2741	fs_lookup_param
+EXPORT_SYMBOL	 vmlinux 0x332741fb	security_cred_getsecid
+EXPORT_SYMBOL	 vmlinux 0x33283086	cont_write_begin
+EXPORT_SYMBOL	 vmlinux 0x3334a174	scsi_host_busy
+EXPORT_SYMBOL	 vmlinux 0x3335c6c1	sockfd_lookup
+EXPORT_SYMBOL	 vmlinux 0x3339afa7	inet_release
+EXPORT_SYMBOL	 vmlinux 0x335ecfae	proc_remove
+EXPORT_SYMBOL	 vmlinux 0x336621f0	ccw_device_clear
+EXPORT_SYMBOL	 vmlinux 0x338bbef8	__ndelay
+EXPORT_SYMBOL	 vmlinux 0x33a11450	dma_fence_get_stub
+EXPORT_SYMBOL	 vmlinux 0x33c5c124	blk_mq_init_allocated_queue
+EXPORT_SYMBOL	 vmlinux 0x33e639ce	idr_for_each
+EXPORT_SYMBOL	 vmlinux 0x33e685f8	read_cache_page
+EXPORT_SYMBOL	 vmlinux 0x33f74de3	_ascebc_500
+EXPORT_SYMBOL	 vmlinux 0x33fe9d07	block_read_full_page
+EXPORT_SYMBOL	 vmlinux 0x34044542	__pskb_copy_fclone
+EXPORT_SYMBOL	 vmlinux 0x34158523	tty_port_free_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x3431d7f9	pci_select_bars
+EXPORT_SYMBOL	 vmlinux 0x344c010b	lookup_bdev
+EXPORT_SYMBOL	 vmlinux 0x345d225b	ipv6_chk_addr
+EXPORT_SYMBOL	 vmlinux 0x3471d8a0	noop_qdisc
+EXPORT_SYMBOL	 vmlinux 0x348e0e62	param_set_charp
+EXPORT_SYMBOL	 vmlinux 0x349ac524	__tracepoint_dma_fence_emit
+EXPORT_SYMBOL	 vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL	 vmlinux 0x34bfbc55	inet_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x34f3484e	security_tun_dev_attach_queue
+EXPORT_SYMBOL	 vmlinux 0x34f497a7	ida_free
+EXPORT_SYMBOL	 vmlinux 0x34f7d930	clocksource_change_rating
+EXPORT_SYMBOL	 vmlinux 0x3517383e	register_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0x3532fb01	check_disk_change
+EXPORT_SYMBOL	 vmlinux 0x353fbdca	md_bitmap_end_sync
+EXPORT_SYMBOL	 vmlinux 0x35449c23	skb_dump
+EXPORT_SYMBOL	 vmlinux 0x356e10a9	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL	 vmlinux 0x357d8b45	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x357f992e	sk_filter_trim_cap
+EXPORT_SYMBOL	 vmlinux 0x3586e26a	pgste_perform_essa
+EXPORT_SYMBOL	 vmlinux 0x35962809	skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0x3597493f	netdev_master_upper_dev_get
+EXPORT_SYMBOL	 vmlinux 0x3597e70b	bio_free_pages
+EXPORT_SYMBOL	 vmlinux 0x359fd133	xfrm_user_policy
+EXPORT_SYMBOL	 vmlinux 0x35a71467	nobh_truncate_page
+EXPORT_SYMBOL	 vmlinux 0x35a88f28	zlib_inflateInit2
+EXPORT_SYMBOL	 vmlinux 0x35b3493a	inode_init_always
+EXPORT_SYMBOL	 vmlinux 0x35c4800f	fscrypt_ioctl_get_policy
+EXPORT_SYMBOL	 vmlinux 0x35df8fba	misc_register
+EXPORT_SYMBOL	 vmlinux 0x35e98608	ip_route_input_noref
+EXPORT_SYMBOL	 vmlinux 0x35f4df03	devm_free_irq
+EXPORT_SYMBOL	 vmlinux 0x35f56a9b	_dev_info_hash
+EXPORT_SYMBOL	 vmlinux 0x3602aba9	raw3270_register_notifier
+EXPORT_SYMBOL	 vmlinux 0x362ff24e	xfrm4_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x3654d96c	iov_iter_for_each_range
+EXPORT_SYMBOL	 vmlinux 0x3658a6cd	blk_queue_update_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x365acda7	set_normalized_timespec64
+EXPORT_SYMBOL	 vmlinux 0x365e7911	kstrdup_const
+EXPORT_SYMBOL	 vmlinux 0x36657eec	__alloc_disk_node
+EXPORT_SYMBOL	 vmlinux 0x3675badf	__ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0x3678fdfa	sk_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x36851c83	devm_pci_remap_cfg_resource
+EXPORT_SYMBOL	 vmlinux 0x3689b256	nf_log_unregister
+EXPORT_SYMBOL	 vmlinux 0x36a3100c	mr_vif_seq_idx
+EXPORT_SYMBOL	 vmlinux 0x36b0c208	eth_mac_addr
+EXPORT_SYMBOL	 vmlinux 0x36db9710	dma_fence_array_ops
+EXPORT_SYMBOL	 vmlinux 0x3719fba1	dma_fence_enable_sw_signaling
+EXPORT_SYMBOL	 vmlinux 0x3730936a	pci_find_parent_resource
+EXPORT_SYMBOL	 vmlinux 0x373e0bc7	__do_once_done
+EXPORT_SYMBOL	 vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL	 vmlinux 0x3755f990	gf128mul_init_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x37593735	bio_advance
+EXPORT_SYMBOL	 vmlinux 0x375af7dd	simple_release_fs
+EXPORT_SYMBOL	 vmlinux 0x3761ca53	d_obtain_root
+EXPORT_SYMBOL	 vmlinux 0x376a43da	vfs_clone_file_range
+EXPORT_SYMBOL	 vmlinux 0x37af3190	dm_table_run_md_queue_async
+EXPORT_SYMBOL	 vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x37d66152	__cpuhp_setup_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0x37dc6aca	proc_set_user
+EXPORT_SYMBOL	 vmlinux 0x37de05c1	input_mt_init_slots
+EXPORT_SYMBOL	 vmlinux 0x37ec5a7b	sg_miter_next
+EXPORT_SYMBOL	 vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL	 vmlinux 0x382a8a58	rtnl_notify
+EXPORT_SYMBOL	 vmlinux 0x382fcda8	_copy_to_user_key
+EXPORT_SYMBOL	 vmlinux 0x3832522f	__crc32c_le_shift
+EXPORT_SYMBOL	 vmlinux 0x3844388d	sg_miter_skip
+EXPORT_SYMBOL	 vmlinux 0x38520eba	simple_dir_operations
+EXPORT_SYMBOL	 vmlinux 0x38658198	fbcon_rotate_ccw
+EXPORT_SYMBOL	 vmlinux 0x38700702	setattr_prepare
+EXPORT_SYMBOL	 vmlinux 0x3873aa27	tcf_exts_validate
+EXPORT_SYMBOL	 vmlinux 0x387bef6c	nf_unregister_sockopt
+EXPORT_SYMBOL	 vmlinux 0x38869d88	kstat
+EXPORT_SYMBOL	 vmlinux 0x388bf92e	mr_mfc_find_parent
+EXPORT_SYMBOL	 vmlinux 0x3891ffc8	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL	 vmlinux 0x38a3c119	from_kgid_munged
+EXPORT_SYMBOL	 vmlinux 0x38a71b7e	pci_free_resource_list
+EXPORT_SYMBOL	 vmlinux 0x38a9f7c5	in6addr_loopback
+EXPORT_SYMBOL	 vmlinux 0x38b33f84	blk_execute_rq
+EXPORT_SYMBOL	 vmlinux 0x38dc9d69	crypto_sha256_finup
+EXPORT_SYMBOL	 vmlinux 0x38fb57a5	key_instantiate_and_link
+EXPORT_SYMBOL	 vmlinux 0x391e810c	unregister_netdev
+EXPORT_SYMBOL	 vmlinux 0x39354d19	__hw_addr_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x39461d6a	in_egroup_p
+EXPORT_SYMBOL	 vmlinux 0x3948ac43	iov_iter_gap_alignment
+EXPORT_SYMBOL	 vmlinux 0x3978b602	kobject_init
+EXPORT_SYMBOL	 vmlinux 0x397c7db9	pcim_pin_device
+EXPORT_SYMBOL	 vmlinux 0x39814a55	read_cache_page_gfp
+EXPORT_SYMBOL	 vmlinux 0x39991865	icmp_global_allow
+EXPORT_SYMBOL	 vmlinux 0x39ae8ec9	tty_do_resize
+EXPORT_SYMBOL	 vmlinux 0x39b52d19	__bitmap_and
+EXPORT_SYMBOL	 vmlinux 0x39c60ac5	ZSTD_decompressBegin
+EXPORT_SYMBOL	 vmlinux 0x39ccc24e	bio_copy_data
+EXPORT_SYMBOL	 vmlinux 0x39f2fdb3	__ip_mc_dec_group
+EXPORT_SYMBOL	 vmlinux 0x3a13f54a	sgl_alloc
+EXPORT_SYMBOL	 vmlinux 0x3a2f6702	sg_alloc_table
+EXPORT_SYMBOL	 vmlinux 0x3a30815b	pci_unmap_rom
+EXPORT_SYMBOL	 vmlinux 0x3a4dab60	d_rehash
+EXPORT_SYMBOL	 vmlinux 0x3a4f9d28	rng_is_initialized
+EXPORT_SYMBOL	 vmlinux 0x3a5d2930	md_done_sync
+EXPORT_SYMBOL	 vmlinux 0x3a6002d8	fb_class
+EXPORT_SYMBOL	 vmlinux 0x3ab13d70	param_ops_short
+EXPORT_SYMBOL	 vmlinux 0x3ab1db36	sock_no_connect
+EXPORT_SYMBOL	 vmlinux 0x3ab71a3c	compat_sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x3ab7b1cc	scsi_set_sense_field_pointer
+EXPORT_SYMBOL	 vmlinux 0x3ab91995	inode_owner_or_capable
+EXPORT_SYMBOL	 vmlinux 0x3ac052d7	flow_rule_match_enc_ip
+EXPORT_SYMBOL	 vmlinux 0x3ac8938b	enable_sacf_uaccess
+EXPORT_SYMBOL	 vmlinux 0x3aca249d	tcp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x3b176ce7	release_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0x3b2f6510	netlink_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0x3b3ec56c	make_flow_keys_digest
+EXPORT_SYMBOL	 vmlinux 0x3b4280ff	t10_pi_type3_crc
+EXPORT_SYMBOL	 vmlinux 0x3b48957f	insert_inode_locked4
+EXPORT_SYMBOL	 vmlinux 0x3b644591	__bitmap_shift_left
+EXPORT_SYMBOL	 vmlinux 0x3b6f30b8	datagram_poll
+EXPORT_SYMBOL	 vmlinux 0x3b756f6a	crc32_le
+EXPORT_SYMBOL	 vmlinux 0x3b7d0751	sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x3b8d260d	tcp_select_initial_window
+EXPORT_SYMBOL	 vmlinux 0x3b9ee570	tcp_parse_options
+EXPORT_SYMBOL	 vmlinux 0x3ba70fc9	tcf_block_get_ext
+EXPORT_SYMBOL	 vmlinux 0x3bbeaca9	ip_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x3bd0bd21	flow_rule_match_basic
+EXPORT_SYMBOL	 vmlinux 0x3be7643e	security_xfrm_policy_free
+EXPORT_SYMBOL	 vmlinux 0x3becf076	tty_port_block_til_ready
+EXPORT_SYMBOL	 vmlinux 0x3c0b4eee	__kfifo_skip_r
+EXPORT_SYMBOL	 vmlinux 0x3c185c61	page_put_link
+EXPORT_SYMBOL	 vmlinux 0x3c3fce39	__local_bh_enable_ip
+EXPORT_SYMBOL	 vmlinux 0x3c3ff9fd	sprintf
+EXPORT_SYMBOL	 vmlinux 0x3c559d49	configfs_unregister_group
+EXPORT_SYMBOL	 vmlinux 0x3c602f8a	set_disk_ro
+EXPORT_SYMBOL	 vmlinux 0x3c7c8bb3	md_error
+EXPORT_SYMBOL	 vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL	 vmlinux 0x3ca748b8	path_is_under
+EXPORT_SYMBOL	 vmlinux 0x3cbcde97	ndo_dflt_fdb_del
+EXPORT_SYMBOL	 vmlinux 0x3cc195d3	simple_getattr
+EXPORT_SYMBOL	 vmlinux 0x3ce0e9ab	pci_disable_device
+EXPORT_SYMBOL	 vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL	 vmlinux 0x3cf75078	input_mt_report_slot_state
+EXPORT_SYMBOL	 vmlinux 0x3d117a60	itcw_calc_size
+EXPORT_SYMBOL	 vmlinux 0x3d132481	param_get_long
+EXPORT_SYMBOL	 vmlinux 0x3d1903ab	skb_add_rx_frag
+EXPORT_SYMBOL	 vmlinux 0x3d1a36a5	dquot_set_dqblk
+EXPORT_SYMBOL	 vmlinux 0x3d2391c5	netdev_features_change
+EXPORT_SYMBOL	 vmlinux 0x3d2510e2	dma_fence_wait_timeout
+EXPORT_SYMBOL	 vmlinux 0x3d369ded	dev_uc_add_excl
+EXPORT_SYMBOL	 vmlinux 0x3d392abe	tcf_classify
+EXPORT_SYMBOL	 vmlinux 0x3d4258cc	con_is_visible
+EXPORT_SYMBOL	 vmlinux 0x3d4ebc92	nonseekable_open
+EXPORT_SYMBOL	 vmlinux 0x3d56e7b3	utf8_unload
+EXPORT_SYMBOL	 vmlinux 0x3d6b3755	empty_name
+EXPORT_SYMBOL	 vmlinux 0x3d7d5d84	__getblk_gfp
+EXPORT_SYMBOL	 vmlinux 0x3d8bda8e	param_set_byte
+EXPORT_SYMBOL	 vmlinux 0x3d8e54d2	key_revoke
+EXPORT_SYMBOL	 vmlinux 0x3d96b24b	mark_buffer_dirty_inode
+EXPORT_SYMBOL	 vmlinux 0x3dabf271	memcg_sockets_enabled_key
+EXPORT_SYMBOL	 vmlinux 0x3dad9978	cancel_delayed_work
+EXPORT_SYMBOL	 vmlinux 0x3db3b5a6	hdmi_avi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0x3dbb7fd2	pci_disable_link_state_locked
+EXPORT_SYMBOL	 vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL	 vmlinux 0x3ddf7cf0	iov_iter_single_seg_count
+EXPORT_SYMBOL	 vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL	 vmlinux 0x3dff68d2	finish_open
+EXPORT_SYMBOL	 vmlinux 0x3e1c9640	__dec_node_page_state
+EXPORT_SYMBOL	 vmlinux 0x3e1cac19	dcbnl_cee_notify
+EXPORT_SYMBOL	 vmlinux 0x3e26b057	__mod_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3e280bad	scsi_host_put
+EXPORT_SYMBOL	 vmlinux 0x3e2b0ba6	groups_alloc
+EXPORT_SYMBOL	 vmlinux 0x3e30986b	ccw_device_start
+EXPORT_SYMBOL	 vmlinux 0x3e3c3d73	dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x3e674573	dev_get_iflink
+EXPORT_SYMBOL	 vmlinux 0x3e7a40e9	dqput
+EXPORT_SYMBOL	 vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL	 vmlinux 0x3e9a02f8	xfrm_lookup_route
+EXPORT_SYMBOL	 vmlinux 0x3eb94250	itcw_add_dcw
+EXPORT_SYMBOL	 vmlinux 0x3ec09c8e	get_vm_area
+EXPORT_SYMBOL	 vmlinux 0x3edf4c4a	pid_task
+EXPORT_SYMBOL	 vmlinux 0x3ee42177	xfrm6_protocol_register
+EXPORT_SYMBOL	 vmlinux 0x3ee835d6	wait_for_key_construction
+EXPORT_SYMBOL	 vmlinux 0x3f071836	__tcf_em_tree_match
+EXPORT_SYMBOL	 vmlinux 0x3f08ff07	tc_setup_cb_destroy
+EXPORT_SYMBOL	 vmlinux 0x3f0ceeb3	__devm_release_region
+EXPORT_SYMBOL	 vmlinux 0x3f0e501a	flow_rule_match_control
+EXPORT_SYMBOL	 vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL	 vmlinux 0x3f53c507	xfrm_state_check_expire
+EXPORT_SYMBOL	 vmlinux 0x3f717872	generic_fadvise
+EXPORT_SYMBOL	 vmlinux 0x3f722345	pci_bus_set_ops
+EXPORT_SYMBOL	 vmlinux 0x3f72a4c2	module_refcount
+EXPORT_SYMBOL	 vmlinux 0x3f7b83a0	scsi_vpd_lun_id
+EXPORT_SYMBOL	 vmlinux 0x3f89071b	security_ib_pkey_access
+EXPORT_SYMBOL	 vmlinux 0x3f938d1d	dev_graft_qdisc
+EXPORT_SYMBOL	 vmlinux 0x3f99b19b	mpage_readpage
+EXPORT_SYMBOL	 vmlinux 0x3f9f65ba	tcf_idr_cleanup
+EXPORT_SYMBOL	 vmlinux 0x3fa7c7ab	xfrm_parse_spi
+EXPORT_SYMBOL	 vmlinux 0x3fa913da	strspn
+EXPORT_SYMBOL	 vmlinux 0x3fac07e1	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL	 vmlinux 0x3fadb213	ZSTD_getFrameParams
+EXPORT_SYMBOL	 vmlinux 0x3fb0b9e3	__udelay
+EXPORT_SYMBOL	 vmlinux 0x3fc1dfbf	_copy_from_user_key
+EXPORT_SYMBOL	 vmlinux 0x3fc62fd0	get_task_cred
+EXPORT_SYMBOL	 vmlinux 0x3fd78f3b	register_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x3fedc5b6	qdisc_offload_graft_helper
+EXPORT_SYMBOL	 vmlinux 0x3ffdc99a	inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0x40140117	skb_copy_and_hash_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x401a58e2	blk_queue_dma_alignment
+EXPORT_SYMBOL	 vmlinux 0x4024c1c3	__percpu_counter_init
+EXPORT_SYMBOL	 vmlinux 0x402a960a	jiffies_64
+EXPORT_SYMBOL	 vmlinux 0x403a9bf3	nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x406172e2	get_ipc_ns_exported
+EXPORT_SYMBOL	 vmlinux 0x406d9663	bdi_register_va
+EXPORT_SYMBOL	 vmlinux 0x407ccfd9	dst_release
+EXPORT_SYMBOL	 vmlinux 0x4092009d	netdev_bonding_info_change
+EXPORT_SYMBOL	 vmlinux 0x40973662	sysctl_udp_mem
+EXPORT_SYMBOL	 vmlinux 0x409873e3	tty_termios_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL	 vmlinux 0x40b0cb7a	seg6_hmac_net_exit
+EXPORT_SYMBOL	 vmlinux 0x40c7247c	si_meminfo
+EXPORT_SYMBOL	 vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL	 vmlinux 0x40d59096	unregister_restart_handler
+EXPORT_SYMBOL	 vmlinux 0x40ddd9e5	ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0x40ea0fea	send_sig_info
+EXPORT_SYMBOL	 vmlinux 0x40ef1dfb	xfrm_policy_walk_done
+EXPORT_SYMBOL	 vmlinux 0x41090cc9	rtnetlink_put_metrics
+EXPORT_SYMBOL	 vmlinux 0x410ca23f	input_reset_device
+EXPORT_SYMBOL	 vmlinux 0x4128820e	vmf_insert_mixed
+EXPORT_SYMBOL	 vmlinux 0x4135e13f	call_netdevice_notifiers
+EXPORT_SYMBOL	 vmlinux 0x413a0310	rps_may_expire_flow
+EXPORT_SYMBOL	 vmlinux 0x413d2937	set_page_dirty
+EXPORT_SYMBOL	 vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL	 vmlinux 0x4149b396	s390_isolate_bp_guest
+EXPORT_SYMBOL	 vmlinux 0x4154615a	pci_request_regions_exclusive
+EXPORT_SYMBOL	 vmlinux 0x4165ce2e	tcf_idr_create
+EXPORT_SYMBOL	 vmlinux 0x416c05b0	__icmp_send
+EXPORT_SYMBOL	 vmlinux 0x4186ceb1	dev_addr_flush
+EXPORT_SYMBOL	 vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL	 vmlinux 0x419057ff	fscrypt_free_bounce_page
+EXPORT_SYMBOL	 vmlinux 0x41a1274c	ccw_device_tm_start
+EXPORT_SYMBOL	 vmlinux 0x41e19f1f	lock_rename
+EXPORT_SYMBOL	 vmlinux 0x4205dd1a	__netdev_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x42160169	flush_workqueue
+EXPORT_SYMBOL	 vmlinux 0x4221517f	simple_readpage
+EXPORT_SYMBOL	 vmlinux 0x422d1e05	__nla_put
+EXPORT_SYMBOL	 vmlinux 0x4230a8d7	sg_nents_for_len
+EXPORT_SYMBOL	 vmlinux 0x4248ae3c	single_task_running
+EXPORT_SYMBOL	 vmlinux 0x424d3620	zlib_inflateIncomp
+EXPORT_SYMBOL	 vmlinux 0x424fdffa	redirty_page_for_writepage
+EXPORT_SYMBOL	 vmlinux 0x42659776	brioctl_set
+EXPORT_SYMBOL	 vmlinux 0x42728e62	generic_block_bmap
+EXPORT_SYMBOL	 vmlinux 0x429493d0	rtnl_create_link
+EXPORT_SYMBOL	 vmlinux 0x42950ef6	ipv6_push_frag_opts
+EXPORT_SYMBOL	 vmlinux 0x42a7131c	pcie_port_service_unregister
+EXPORT_SYMBOL	 vmlinux 0x42bca112	jbd2_journal_check_used_features
+EXPORT_SYMBOL	 vmlinux 0x42d33767	__generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0x42d9e8a5	dev_warn_hash
+EXPORT_SYMBOL	 vmlinux 0x42db3e22	netlink_broadcast
+EXPORT_SYMBOL	 vmlinux 0x42dd49d2	pci_set_vpd_size
+EXPORT_SYMBOL	 vmlinux 0x42f1b900	fb_pad_unaligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x4300d90f	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL	 vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL	 vmlinux 0x43175c06	__blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x4327b9bf	netdev_emerg
+EXPORT_SYMBOL	 vmlinux 0x4351577a	fb_parse_edid
+EXPORT_SYMBOL	 vmlinux 0x43668ef0	tty_port_open
+EXPORT_SYMBOL	 vmlinux 0x436ae251	mroute6_is_socket
+EXPORT_SYMBOL	 vmlinux 0x436b56d5	netdev_has_any_upper_dev
+EXPORT_SYMBOL	 vmlinux 0x437a0d6d	__sock_tx_timestamp
+EXPORT_SYMBOL	 vmlinux 0x438610bd	security_tun_dev_alloc_security
+EXPORT_SYMBOL	 vmlinux 0x43a4938f	vm_get_page_prot
+EXPORT_SYMBOL	 vmlinux 0x43bdfa20	console_irq
+EXPORT_SYMBOL	 vmlinux 0x43cf3bc3	dql_completed
+EXPORT_SYMBOL	 vmlinux 0x43db709b	blk_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x43dcdca3	skb_copy
+EXPORT_SYMBOL	 vmlinux 0x43f62bb6	lookup_user_key
+EXPORT_SYMBOL	 vmlinux 0x440076a0	kernel_bind
+EXPORT_SYMBOL	 vmlinux 0x4437c3de	pci_bus_size_bridges
+EXPORT_SYMBOL	 vmlinux 0x44469a76	crc_ccitt_false_table
+EXPORT_SYMBOL	 vmlinux 0x4473c522	invalidate_mapping_pages
+EXPORT_SYMBOL	 vmlinux 0x44741a49	security_sock_graft
+EXPORT_SYMBOL	 vmlinux 0x44795230	thaw_bdev
+EXPORT_SYMBOL	 vmlinux 0x448e6798	netlink_ack
+EXPORT_SYMBOL	 vmlinux 0x44a4e219	bio_endio
+EXPORT_SYMBOL	 vmlinux 0x44a5cd8c	file_check_and_advance_wb_err
+EXPORT_SYMBOL	 vmlinux 0x44a8d0c1	migrate_page_move_mapping
+EXPORT_SYMBOL	 vmlinux 0x44b04144	udp_prot
+EXPORT_SYMBOL	 vmlinux 0x44b30fb5	csch
+EXPORT_SYMBOL	 vmlinux 0x44b3f81b	__skb_warn_lro_forwarding
+EXPORT_SYMBOL	 vmlinux 0x44bc322f	input_free_device
+EXPORT_SYMBOL	 vmlinux 0x44c92dab	cdev_del
+EXPORT_SYMBOL	 vmlinux 0x44d582e6	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL	 vmlinux 0x44e62c90	scsi_host_lookup
+EXPORT_SYMBOL	 vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL	 vmlinux 0x44f001f8	give_up_console
+EXPORT_SYMBOL	 vmlinux 0x44fef01c	tcp_check_req
+EXPORT_SYMBOL	 vmlinux 0x45006cee	default_red
+EXPORT_SYMBOL	 vmlinux 0x450e7411	set_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x45142791	wait_for_completion_killable
+EXPORT_SYMBOL	 vmlinux 0x45204785	dev_trans_start
+EXPORT_SYMBOL	 vmlinux 0x452ba683	ipv6_ext_hdr
+EXPORT_SYMBOL	 vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL	 vmlinux 0x454fb519	ioremap
+EXPORT_SYMBOL	 vmlinux 0x4571a874	set_anon_super
+EXPORT_SYMBOL	 vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL	 vmlinux 0x45866459	param_set_invbool
+EXPORT_SYMBOL	 vmlinux 0x458a5c2c	blk_queue_split
+EXPORT_SYMBOL	 vmlinux 0x458c1f06	pci_clear_master
+EXPORT_SYMBOL	 vmlinux 0x4593624b	write_inode_now
+EXPORT_SYMBOL	 vmlinux 0x45a92679	dev_printk_emit
+EXPORT_SYMBOL	 vmlinux 0x45b5718d	kill_fasync
+EXPORT_SYMBOL	 vmlinux 0x45c92313	VMALLOC_END
+EXPORT_SYMBOL	 vmlinux 0x45caf360	pci_bus_type
+EXPORT_SYMBOL	 vmlinux 0x45cf0d3b	dcache_dir_open
+EXPORT_SYMBOL	 vmlinux 0x45d3c773	memdup_user_nul
+EXPORT_SYMBOL	 vmlinux 0x45e522b7	migrate_page_copy
+EXPORT_SYMBOL	 vmlinux 0x45f4a397	unregister_shrinker
+EXPORT_SYMBOL	 vmlinux 0x46045dd7	kstrtou8
+EXPORT_SYMBOL	 vmlinux 0x46066e5b	perf_pmu_name
+EXPORT_SYMBOL	 vmlinux 0x460813b2	fb_set_suspend
+EXPORT_SYMBOL	 vmlinux 0x461489d0	simple_dentry_operations
+EXPORT_SYMBOL	 vmlinux 0x461d16ca	sg_nents
+EXPORT_SYMBOL	 vmlinux 0x4625c1a0	inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x4627885a	ipv6_chk_addr_and_flags
+EXPORT_SYMBOL	 vmlinux 0x4649afdd	netpoll_poll_enable
+EXPORT_SYMBOL	 vmlinux 0x4660320f	key_move
+EXPORT_SYMBOL	 vmlinux 0x46607c18	bio_add_page
+EXPORT_SYMBOL	 vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL	 vmlinux 0x46852a8e	insert_inode_locked
+EXPORT_SYMBOL	 vmlinux 0x468edaf4	debug_register_mode
+EXPORT_SYMBOL	 vmlinux 0x46994236	__lock_page
+EXPORT_SYMBOL	 vmlinux 0x46b1cc90	security_inet_conn_established
+EXPORT_SYMBOL	 vmlinux 0x46cd8fce	iucv_message_send
+EXPORT_SYMBOL	 vmlinux 0x46d59f7d	smp_cpu_mt_shift
+EXPORT_SYMBOL	 vmlinux 0x46e319aa	tcw_set_data
+EXPORT_SYMBOL	 vmlinux 0x47115878	ap_get_qdev
+EXPORT_SYMBOL	 vmlinux 0x47385189	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0x47392e76	sclp_ocf_cpc_name_copy
+EXPORT_SYMBOL	 vmlinux 0x47588d51	shrink_dcache_parent
+EXPORT_SYMBOL	 vmlinux 0x475b3eec	__register_nls
+EXPORT_SYMBOL	 vmlinux 0x47709e42	free_anon_bdev
+EXPORT_SYMBOL	 vmlinux 0x477e323f	hdmi_drm_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL	 vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL	 vmlinux 0x47a2a2cc	udp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x47b5a554	dquot_resume
+EXPORT_SYMBOL	 vmlinux 0x47c65bfc	unregister_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0x47c967df	security_old_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0x480d673f	input_mt_get_slot_by_key
+EXPORT_SYMBOL	 vmlinux 0x481814c4	mb_cache_entry_find_next
+EXPORT_SYMBOL	 vmlinux 0x4823819e	raw3270_buffer_address
+EXPORT_SYMBOL	 vmlinux 0x4829cf6b	fscrypt_enqueue_decrypt_work
+EXPORT_SYMBOL	 vmlinux 0x4830c279	bio_clone_fast
+EXPORT_SYMBOL	 vmlinux 0x483b3235	ndisc_mc_map
+EXPORT_SYMBOL	 vmlinux 0x484f6edf	ktime_get_coarse_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x486c3922	cdev_init
+EXPORT_SYMBOL	 vmlinux 0x486d0c2e	xfrm_policy_register_afinfo
+EXPORT_SYMBOL	 vmlinux 0x48788796	dst_destroy
+EXPORT_SYMBOL	 vmlinux 0x489a6449	__tracepoint_s390_cio_tpi
+EXPORT_SYMBOL	 vmlinux 0x489f6e0b	rdma_dim
+EXPORT_SYMBOL	 vmlinux 0x48a91171	string_get_size
+EXPORT_SYMBOL	 vmlinux 0x48ada7be	set_fs
+EXPORT_SYMBOL	 vmlinux 0x48c7560a	pci_setup_cardbus
+EXPORT_SYMBOL	 vmlinux 0x48ca2a33	__filemap_set_wb_err
+EXPORT_SYMBOL	 vmlinux 0x48ccdb9c	dev_pre_changeaddr_notify
+EXPORT_SYMBOL	 vmlinux 0x48ddb07a	inet_stream_connect
+EXPORT_SYMBOL	 vmlinux 0x48ecd873	pcie_bandwidth_available
+EXPORT_SYMBOL	 vmlinux 0x49045426	icmp_err_convert
+EXPORT_SYMBOL	 vmlinux 0x490e98ef	netdev_notify_peers
+EXPORT_SYMBOL	 vmlinux 0x490fa7b8	__nla_reserve
+EXPORT_SYMBOL	 vmlinux 0x493af25f	ethtool_intersect_link_masks
+EXPORT_SYMBOL	 vmlinux 0x493e8eef	scsi_get_host_dev
+EXPORT_SYMBOL	 vmlinux 0x4944c9eb	generic_pipe_buf_release
+EXPORT_SYMBOL	 vmlinux 0x495497c9	netdev_upper_dev_link
+EXPORT_SYMBOL	 vmlinux 0x495990f3	hdmi_audio_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x496dbf6a	__skb_gro_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x49874512	qdisc_hash_add
+EXPORT_SYMBOL	 vmlinux 0x4993ba8a	__page_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x49960249	wait_on_page_bit
+EXPORT_SYMBOL	 vmlinux 0x499c2a4d	scsi_scan_host
+EXPORT_SYMBOL	 vmlinux 0x49a8cd90	config_item_set_name
+EXPORT_SYMBOL	 vmlinux 0x49ac0233	genl_family_attrbuf
+EXPORT_SYMBOL	 vmlinux 0x49ada0f8	filemap_flush
+EXPORT_SYMBOL	 vmlinux 0x49cab6b4	PDE_DATA
+EXPORT_SYMBOL	 vmlinux 0x49f90a87	mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x4a09aa89	dma_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x4a1cca85	compat_tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x4a213644	crypto_sha512_update
+EXPORT_SYMBOL	 vmlinux 0x4a344bb9	dev_loopback_xmit
+EXPORT_SYMBOL	 vmlinux 0x4a3e7dcd	vfs_symlink
+EXPORT_SYMBOL	 vmlinux 0x4a558be7	fib_notifier_ops_unregister
+EXPORT_SYMBOL	 vmlinux 0x4a5c1333	input_set_abs_params
+EXPORT_SYMBOL	 vmlinux 0x4a5fb793	module_layout
+EXPORT_SYMBOL	 vmlinux 0x4a713cf2	revert_creds
+EXPORT_SYMBOL	 vmlinux 0x4a894f8e	pci_add_new_bus
+EXPORT_SYMBOL	 vmlinux 0x4a8ae771	iput
+EXPORT_SYMBOL	 vmlinux 0x4a96a8eb	xxh32_digest
+EXPORT_SYMBOL	 vmlinux 0x4ab104e2	register_filesystem
+EXPORT_SYMBOL	 vmlinux 0x4ace7629	netdev_adjacent_change_abort
+EXPORT_SYMBOL	 vmlinux 0x4ad4912f	inet_csk_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0x4ad59f32	ap_flush_queue
+EXPORT_SYMBOL	 vmlinux 0x4ae44092	cookie_ecn_ok
+EXPORT_SYMBOL	 vmlinux 0x4aebef08	blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0x4aee66d0	vlan_vid_add
+EXPORT_SYMBOL	 vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL	 vmlinux 0x4b02b3bb	user_revoke
+EXPORT_SYMBOL	 vmlinux 0x4b08c492	pagevec_lookup_range_nr_tag
+EXPORT_SYMBOL	 vmlinux 0x4b0b019e	add_device_randomness
+EXPORT_SYMBOL	 vmlinux 0x4b199de1	scsi_device_get
+EXPORT_SYMBOL	 vmlinux 0x4b30f4b5	inet_register_protosw
+EXPORT_SYMBOL	 vmlinux 0x4b4ad68c	security_locked_down
+EXPORT_SYMBOL	 vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL	 vmlinux 0x4b8606f3	padata_stop
+EXPORT_SYMBOL	 vmlinux 0x4baf7e59	sha256_final
+EXPORT_SYMBOL	 vmlinux 0x4befb6f6	locks_free_lock
+EXPORT_SYMBOL	 vmlinux 0x4c0ab5d4	km_report
+EXPORT_SYMBOL	 vmlinux 0x4c1348a6	__inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0x4c416eb9	LZ4_decompress_fast
+EXPORT_SYMBOL	 vmlinux 0x4c4c956e	nla_memcmp
+EXPORT_SYMBOL	 vmlinux 0x4c4e64db	udp_lib_rehash
+EXPORT_SYMBOL	 vmlinux 0x4c6a3ac8	sk_stop_timer
+EXPORT_SYMBOL	 vmlinux 0x4c6da198	send_sig
+EXPORT_SYMBOL	 vmlinux 0x4c6e79e4	netdev_update_lockdep_key
+EXPORT_SYMBOL	 vmlinux 0x4c71a27b	fsync_bdev
+EXPORT_SYMBOL	 vmlinux 0x4c85d38e	sk_stream_wait_close
+EXPORT_SYMBOL	 vmlinux 0x4cb40b3c	tcp_splice_read
+EXPORT_SYMBOL	 vmlinux 0x4cb5467f	inet_proto_csum_replace_by_diff
+EXPORT_SYMBOL	 vmlinux 0x4cba1547	pcie_relaxed_ordering_enabled
+EXPORT_SYMBOL	 vmlinux 0x4cc3d8cc	devm_memunmap
+EXPORT_SYMBOL	 vmlinux 0x4cd555b5	sock_wake_async
+EXPORT_SYMBOL	 vmlinux 0x4cd8afcf	key_alloc
+EXPORT_SYMBOL	 vmlinux 0x4ce6ab72	jbd2_log_start_commit
+EXPORT_SYMBOL	 vmlinux 0x4cfd6b0f	seg6_hmac_info_add
+EXPORT_SYMBOL	 vmlinux 0x4d004c45	proc_doulongvec_minmax
+EXPORT_SYMBOL	 vmlinux 0x4d15b705	vfs_rename
+EXPORT_SYMBOL	 vmlinux 0x4d1c089b	jbd2_journal_get_undo_access
+EXPORT_SYMBOL	 vmlinux 0x4d3ce2ab	dev_mc_init
+EXPORT_SYMBOL	 vmlinux 0x4d65cbd5	csum_ipv6_magic
+EXPORT_SYMBOL	 vmlinux 0x4d725b1a	inet_ioctl
+EXPORT_SYMBOL	 vmlinux 0x4d72d3aa	chacha_block
+EXPORT_SYMBOL	 vmlinux 0x4d760048	__nla_reserve_nohdr
+EXPORT_SYMBOL	 vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0x4d9b652b	rb_erase
+EXPORT_SYMBOL	 vmlinux 0x4dc95bc3	udp_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x4dcb87a6	pci_iounmap
+EXPORT_SYMBOL	 vmlinux 0x4dda726b	match_strlcpy
+EXPORT_SYMBOL	 vmlinux 0x4dea1053	memchr
+EXPORT_SYMBOL	 vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL	 vmlinux 0x4df2ea84	gen_estimator_read
+EXPORT_SYMBOL	 vmlinux 0x4e019217	init_pseudo
+EXPORT_SYMBOL	 vmlinux 0x4e0e47ac	scsicam_bios_param
+EXPORT_SYMBOL	 vmlinux 0x4e1c30bd	get_user_pages_locked
+EXPORT_SYMBOL	 vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL	 vmlinux 0x4e36b368	compat_tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x4e3834a8	alloc_fcdev
+EXPORT_SYMBOL	 vmlinux 0x4e3849d9	try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0x4e44945b	tcf_block_put
+EXPORT_SYMBOL	 vmlinux 0x4e4924ea	init_virt_timer
+EXPORT_SYMBOL	 vmlinux 0x4e63099e	setattr_copy
+EXPORT_SYMBOL	 vmlinux 0x4e67c9ad	blk_integrity_unregister
+EXPORT_SYMBOL	 vmlinux 0x4e68e9be	rb_next_postorder
+EXPORT_SYMBOL	 vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL	 vmlinux 0x4e71d074	tcp_read_sock
+EXPORT_SYMBOL	 vmlinux 0x4e8f18ea	from_kprojid
+EXPORT_SYMBOL	 vmlinux 0x4e9b851a	gen_pool_set_algo
+EXPORT_SYMBOL	 vmlinux 0x4e9f89c5	dev_activate
+EXPORT_SYMBOL	 vmlinux 0x4ebd5899	pci_iomap
+EXPORT_SYMBOL	 vmlinux 0x4ec4bf90	dcb_ieee_getapp_prio_dscp_mask_map
+EXPORT_SYMBOL	 vmlinux 0x4ec54e78	bitmap_to_arr32
+EXPORT_SYMBOL	 vmlinux 0x4ed7b3b5	hex2bin
+EXPORT_SYMBOL	 vmlinux 0x4ee1133c	netlink_broadcast_filtered
+EXPORT_SYMBOL	 vmlinux 0x4ee6b680	__tracepoint_s390_cio_rsch
+EXPORT_SYMBOL	 vmlinux 0x4eec9dab	arch_spin_lock_wait
+EXPORT_SYMBOL	 vmlinux 0x4f0ad8e0	pci_free_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL	 vmlinux 0x4f2cd1b5	__cpcmd
+EXPORT_SYMBOL	 vmlinux 0x4f37803b	inet_sock_destruct
+EXPORT_SYMBOL	 vmlinux 0x4f4fcbef	search_binary_handler
+EXPORT_SYMBOL	 vmlinux 0x4f5e032a	tty_name
+EXPORT_SYMBOL	 vmlinux 0x4f8323d7	blkdev_issue_discard
+EXPORT_SYMBOL	 vmlinux 0x4f923fd4	soft_cursor
+EXPORT_SYMBOL	 vmlinux 0x4fa2676c	pci_ep_cfs_add_epf_group
+EXPORT_SYMBOL	 vmlinux 0x4faec757	inetpeer_invalidate_tree
+EXPORT_SYMBOL	 vmlinux 0x4fb02f33	dev_add_offload
+EXPORT_SYMBOL	 vmlinux 0x4fe29905	dma_fence_remove_callback
+EXPORT_SYMBOL	 vmlinux 0x50097088	security_tun_dev_free_security
+EXPORT_SYMBOL	 vmlinux 0x5009c71d	glob_match
+EXPORT_SYMBOL	 vmlinux 0x500e1bb6	md_wait_for_blocked_rdev
+EXPORT_SYMBOL	 vmlinux 0x502e50fc	__cgroup_bpf_run_filter_skb
+EXPORT_SYMBOL	 vmlinux 0x5035cbcf	xa_get_mark
+EXPORT_SYMBOL	 vmlinux 0x503fb063	fscrypt_decrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x5061b926	pci_enable_device_io
+EXPORT_SYMBOL	 vmlinux 0x5061ecaf	airq_iv_free
+EXPORT_SYMBOL	 vmlinux 0x506dff1a	__genradix_free
+EXPORT_SYMBOL	 vmlinux 0x507b25d0	kstrndup
+EXPORT_SYMBOL	 vmlinux 0x507d6239	lockref_get_not_dead
+EXPORT_SYMBOL	 vmlinux 0x50842748	input_unregister_handler
+EXPORT_SYMBOL	 vmlinux 0x5085024f	secure_tcpv6_ts_off
+EXPORT_SYMBOL	 vmlinux 0x50a4698c	fb_videomode_to_modelist
+EXPORT_SYMBOL	 vmlinux 0x50b80992	mb_cache_entry_find_first
+EXPORT_SYMBOL	 vmlinux 0x50b81542	node_to_cpumask_map
+EXPORT_SYMBOL	 vmlinux 0x50be748d	security_ib_free_security
+EXPORT_SYMBOL	 vmlinux 0x50cbf9c9	flow_block_cb_alloc
+EXPORT_SYMBOL	 vmlinux 0x50cc0834	get_super
+EXPORT_SYMBOL	 vmlinux 0x50cd595c	generic_ro_fops
+EXPORT_SYMBOL	 vmlinux 0x50ce32c6	zpool_register_driver
+EXPORT_SYMBOL	 vmlinux 0x50e0a893	lockref_get_not_zero
+EXPORT_SYMBOL	 vmlinux 0x50f6e7bb	iov_iter_revert
+EXPORT_SYMBOL	 vmlinux 0x5133437a	fb_set_var
+EXPORT_SYMBOL	 vmlinux 0x5140d858	simple_transaction_read
+EXPORT_SYMBOL	 vmlinux 0x51430817	udp_poll
+EXPORT_SYMBOL	 vmlinux 0x5143ce65	radix_tree_iter_resume
+EXPORT_SYMBOL	 vmlinux 0x51473316	__cpu_present_mask
+EXPORT_SYMBOL	 vmlinux 0x5163b708	scsi_eh_finish_cmd
+EXPORT_SYMBOL	 vmlinux 0x51641162	opal_unlock_from_suspend
+EXPORT_SYMBOL	 vmlinux 0x5181ff31	pagevec_lookup_range
+EXPORT_SYMBOL	 vmlinux 0x518bb9e6	diag204
+EXPORT_SYMBOL	 vmlinux 0x51ad2749	bdi_set_max_ratio
+EXPORT_SYMBOL	 vmlinux 0x51baa4ee	jbd2_journal_flush
+EXPORT_SYMBOL	 vmlinux 0x51c3ac73	block_write_full_page
+EXPORT_SYMBOL	 vmlinux 0x51d19c4b	kern_path_mountpoint
+EXPORT_SYMBOL	 vmlinux 0x51e76b0f	fifo_set_limit
+EXPORT_SYMBOL	 vmlinux 0x51ef75b6	__pagevec_release
+EXPORT_SYMBOL	 vmlinux 0x521f3c56	input_set_timestamp
+EXPORT_SYMBOL	 vmlinux 0x522fba1d	raw3270_reset
+EXPORT_SYMBOL	 vmlinux 0x5237edc2	inet_addr_type_table
+EXPORT_SYMBOL	 vmlinux 0x524db6d4	make_bad_inode
+EXPORT_SYMBOL	 vmlinux 0x52549d22	tcf_em_unregister
+EXPORT_SYMBOL	 vmlinux 0x5256350e	blk_get_request
+EXPORT_SYMBOL	 vmlinux 0x526b495d	watchdog_unregister_governor
+EXPORT_SYMBOL	 vmlinux 0x52758769	xfrm_stateonly_find
+EXPORT_SYMBOL	 vmlinux 0x52819990	kernel_cpumcf_alert
+EXPORT_SYMBOL	 vmlinux 0x52b0ae0e	block_is_partially_uptodate
+EXPORT_SYMBOL	 vmlinux 0x52c4474d	ap_cancel_message
+EXPORT_SYMBOL	 vmlinux 0x52d717da	xz_dec_init
+EXPORT_SYMBOL	 vmlinux 0x52dabc43	lease_get_mtime
+EXPORT_SYMBOL	 vmlinux 0x52fadabd	file_open_root
+EXPORT_SYMBOL	 vmlinux 0x530080d4	set_groups
+EXPORT_SYMBOL	 vmlinux 0x530594a0	netdev_upper_dev_unlink
+EXPORT_SYMBOL	 vmlinux 0x530bbc96	__hsiphash_unaligned
+EXPORT_SYMBOL	 vmlinux 0x531cda97	inet_frags_init
+EXPORT_SYMBOL	 vmlinux 0x5320be31	__SetPageMovable
+EXPORT_SYMBOL	 vmlinux 0x5339600a	__bforget
+EXPORT_SYMBOL	 vmlinux 0x534bddc8	__napi_schedule
+EXPORT_SYMBOL	 vmlinux 0x534de222	secpath_set
+EXPORT_SYMBOL	 vmlinux 0x535d37a7	page_zero_new_buffers
+EXPORT_SYMBOL	 vmlinux 0x5365d29d	kbd_ascebc
+EXPORT_SYMBOL	 vmlinux 0x536fb4d7	compat_nf_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5373f900	dmam_pool_create
+EXPORT_SYMBOL	 vmlinux 0x5379da09	__xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x53863b94	__check_sticky
+EXPORT_SYMBOL	 vmlinux 0x538c6acc	_dev_alert
+EXPORT_SYMBOL	 vmlinux 0x53919e18	sock_no_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x53c16dd1	scsi_print_command
+EXPORT_SYMBOL	 vmlinux 0x5407861d	flow_rule_alloc
+EXPORT_SYMBOL	 vmlinux 0x540862e2	diag14
+EXPORT_SYMBOL	 vmlinux 0x540b545f	pci_choose_state
+EXPORT_SYMBOL	 vmlinux 0x542f2eb4	sg_miter_start
+EXPORT_SYMBOL	 vmlinux 0x54363018	kill_block_super
+EXPORT_SYMBOL	 vmlinux 0x543d74fe	inet_frag_find
+EXPORT_SYMBOL	 vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL	 vmlinux 0x5445feab	__irq_regs
+EXPORT_SYMBOL	 vmlinux 0x54535975	scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0x5462a416	blk_queue_max_write_zeroes_sectors
+EXPORT_SYMBOL	 vmlinux 0x54960bfb	call_usermodehelper_setup
+EXPORT_SYMBOL	 vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL	 vmlinux 0x54ab914d	fs_context_for_mount
+EXPORT_SYMBOL	 vmlinux 0x54bbbfa5	sock_no_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x54ca0a51	dev_addr_init
+EXPORT_SYMBOL	 vmlinux 0x54cea01b	_dev_emerg
+EXPORT_SYMBOL	 vmlinux 0x54cfacd5	__ctzdi2
+EXPORT_SYMBOL	 vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL	 vmlinux 0x55021b4a	security_inode_listsecurity
+EXPORT_SYMBOL	 vmlinux 0x5506b8f7	netlbl_bitmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x550d7b2e	tty_hangup
+EXPORT_SYMBOL	 vmlinux 0x551b6102	genl_unregister_family
+EXPORT_SYMBOL	 vmlinux 0x551bd071	__rb_erase_color
+EXPORT_SYMBOL	 vmlinux 0x55353f12	key_payload_reserve
+EXPORT_SYMBOL	 vmlinux 0x55459dd9	sk_wait_data
+EXPORT_SYMBOL	 vmlinux 0x554ae3a4	irq_poll_sched
+EXPORT_SYMBOL	 vmlinux 0x55678b4b	bsearch
+EXPORT_SYMBOL	 vmlinux 0x55724ac1	xfrm6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x557bcac8	__sg_alloc_table_from_pages
+EXPORT_SYMBOL	 vmlinux 0x5584d411	unregister_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x5589a829	flow_rule_match_enc_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x558b281d	aes_expandkey
+EXPORT_SYMBOL	 vmlinux 0x558d7f2e	dev_printk
+EXPORT_SYMBOL	 vmlinux 0x55a3f3e0	sclp_add_request
+EXPORT_SYMBOL	 vmlinux 0x55d5448f	framebuffer_release
+EXPORT_SYMBOL	 vmlinux 0x55d5f611	from_kprojid_munged
+EXPORT_SYMBOL	 vmlinux 0x55e31703	ethtool_convert_link_mode_to_legacy_u32
+EXPORT_SYMBOL	 vmlinux 0x55eccdf5	mod_virt_timer
+EXPORT_SYMBOL	 vmlinux 0x55f85dd2	address_space_init_once
+EXPORT_SYMBOL	 vmlinux 0x55fa9af8	skb_mac_gso_segment
+EXPORT_SYMBOL	 vmlinux 0x55fbaf1d	smsg_unregister_callback
+EXPORT_SYMBOL	 vmlinux 0x561440b4	ndo_dflt_fdb_add
+EXPORT_SYMBOL	 vmlinux 0x561890c5	elv_rb_latter_request
+EXPORT_SYMBOL	 vmlinux 0x562b9be5	ap_test_config_ctrl_domain
+EXPORT_SYMBOL	 vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL	 vmlinux 0x564405cb	__cpu_online_mask
+EXPORT_SYMBOL	 vmlinux 0x56470118	__warn_printk
+EXPORT_SYMBOL	 vmlinux 0x565b6db9	input_mt_sync_frame
+EXPORT_SYMBOL	 vmlinux 0x56802ae8	rps_cpu_mask
+EXPORT_SYMBOL	 vmlinux 0x568275cd	bio_uninit
+EXPORT_SYMBOL	 vmlinux 0x568860de	tty_port_tty_get
+EXPORT_SYMBOL	 vmlinux 0x568dcca2	dquot_get_next_dqblk
+EXPORT_SYMBOL	 vmlinux 0x5699bd89	fb_deferred_io_mmap
+EXPORT_SYMBOL	 vmlinux 0x56b4f918	uv_info
+EXPORT_SYMBOL	 vmlinux 0x56c08971	dev_set_alias
+EXPORT_SYMBOL	 vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL	 vmlinux 0x56ca422a	raw3270_start
+EXPORT_SYMBOL	 vmlinux 0x56d78870	chsc
+EXPORT_SYMBOL	 vmlinux 0x56f8c371	__tracepoint_kfree
+EXPORT_SYMBOL	 vmlinux 0x5708790a	blk_queue_flag_set
+EXPORT_SYMBOL	 vmlinux 0x57089893	__scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0x57107a90	devm_request_threaded_irq
+EXPORT_SYMBOL	 vmlinux 0x573c66b5	netdev_bind_sb_channel_queue
+EXPORT_SYMBOL	 vmlinux 0x574c2e74	bitmap_release_region
+EXPORT_SYMBOL	 vmlinux 0x574ced27	page_readlink
+EXPORT_SYMBOL	 vmlinux 0x57541a3a	skb_push
+EXPORT_SYMBOL	 vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL	 vmlinux 0x576de57b	pci_bus_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0x578a1876	tun_xdp_to_ptr
+EXPORT_SYMBOL	 vmlinux 0x578d2ccd	pci_iomap_range
+EXPORT_SYMBOL	 vmlinux 0x58058eb6	netdev_alert
+EXPORT_SYMBOL	 vmlinux 0x581f98da	zlib_inflate
+EXPORT_SYMBOL	 vmlinux 0x582b6275	xfrm_if_unregister_cb
+EXPORT_SYMBOL	 vmlinux 0x582f1744	flow_rule_match_ipv4_addrs
+EXPORT_SYMBOL	 vmlinux 0x584632c2	proc_create_data
+EXPORT_SYMBOL	 vmlinux 0x5852ef8e	scsi_is_host_device
+EXPORT_SYMBOL	 vmlinux 0x588ea78a	hchacha_block
+EXPORT_SYMBOL	 vmlinux 0x589c150a	dev_err_hash
+EXPORT_SYMBOL	 vmlinux 0x58a9696f	scsi_cmd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x58acf24b	mdiobus_register_board_info
+EXPORT_SYMBOL	 vmlinux 0x58ae25a7	blk_rq_map_user_iov
+EXPORT_SYMBOL	 vmlinux 0x58b4645c	dev_close_many
+EXPORT_SYMBOL	 vmlinux 0x58b65b42	tcp_conn_request
+EXPORT_SYMBOL	 vmlinux 0x58b73bc7	match_wildcard
+EXPORT_SYMBOL	 vmlinux 0x58c95f24	__netlink_dump_start
+EXPORT_SYMBOL	 vmlinux 0x58cd1b54	string_escape_mem
+EXPORT_SYMBOL	 vmlinux 0x58d130c5	generic_shutdown_super
+EXPORT_SYMBOL	 vmlinux 0x58e3306d	bit_wait_io
+EXPORT_SYMBOL	 vmlinux 0x58edf52c	dcb_ieee_getapp_dscp_prio_mask_map
+EXPORT_SYMBOL	 vmlinux 0x58f657a0	scsi_device_set_state
+EXPORT_SYMBOL	 vmlinux 0x58fbc091	nf_ct_attach
+EXPORT_SYMBOL	 vmlinux 0x590688c5	ww_mutex_lock_interruptible
+EXPORT_SYMBOL	 vmlinux 0x591a1970	debugfs_create_automount
+EXPORT_SYMBOL	 vmlinux 0x5920d860	tcp_make_synack
+EXPORT_SYMBOL	 vmlinux 0x59588850	vsscanf
+EXPORT_SYMBOL	 vmlinux 0x59751bf5	default_llseek
+EXPORT_SYMBOL	 vmlinux 0x5994813a	pcibios_bus_to_resource
+EXPORT_SYMBOL	 vmlinux 0x5997adc5	invalidate_partition
+EXPORT_SYMBOL	 vmlinux 0x599db2fd	keyring_clear
+EXPORT_SYMBOL	 vmlinux 0x59a8c799	super_setup_bdi
+EXPORT_SYMBOL	 vmlinux 0x59ae4643	security_path_rename
+EXPORT_SYMBOL	 vmlinux 0x59b4ac3e	tcp_memory_allocated
+EXPORT_SYMBOL	 vmlinux 0x59d498d2	vfs_ioctl
+EXPORT_SYMBOL	 vmlinux 0x5a05613b	netdev_printk
+EXPORT_SYMBOL	 vmlinux 0x5a0e71fe	simple_write_end
+EXPORT_SYMBOL	 vmlinux 0x5a10f98e	del_virt_timer
+EXPORT_SYMBOL	 vmlinux 0x5a1f80fd	ccw_driver_register
+EXPORT_SYMBOL	 vmlinux 0x5a3915c8	cdrom_dummy_generic_packet
+EXPORT_SYMBOL	 vmlinux 0x5a4b4628	shrink_dcache_sb
+EXPORT_SYMBOL	 vmlinux 0x5a4d313e	gf128mul_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x5a5d2cfb	sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x5a5e7ea3	simple_read_from_buffer
+EXPORT_SYMBOL	 vmlinux 0x5a671c2b	component_match_add_release
+EXPORT_SYMBOL	 vmlinux 0x5a6d3131	configfs_register_group
+EXPORT_SYMBOL	 vmlinux 0x5a861438	security_sctp_assoc_request
+EXPORT_SYMBOL	 vmlinux 0x5a8e7583	ip_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x5aa45260	udp6_seq_ops
+EXPORT_SYMBOL	 vmlinux 0x5aac5399	nf_ct_get_tuple_skb
+EXPORT_SYMBOL	 vmlinux 0x5ab8db97	tcp_v4_conn_request
+EXPORT_SYMBOL	 vmlinux 0x5ac39d0d	proc_set_size
+EXPORT_SYMBOL	 vmlinux 0x5af92d2b	filemap_write_and_wait
+EXPORT_SYMBOL	 vmlinux 0x5b2b28ab	tcw_add_tidaw
+EXPORT_SYMBOL	 vmlinux 0x5b36d5dd	utf8agemax
+EXPORT_SYMBOL	 vmlinux 0x5b3b294e	blk_queue_bounce_limit
+EXPORT_SYMBOL	 vmlinux 0x5b488ab8	vfs_dup_fs_context
+EXPORT_SYMBOL	 vmlinux 0x5b4af516	inet_frag_queue_insert
+EXPORT_SYMBOL	 vmlinux 0x5b5d38ad	free_inode_nonrcu
+EXPORT_SYMBOL	 vmlinux 0x5b604bd1	segment_type
+EXPORT_SYMBOL	 vmlinux 0x5b8749f3	flow_rule_match_vlan
+EXPORT_SYMBOL	 vmlinux 0x5b892950	bio_copy_data_iter
+EXPORT_SYMBOL	 vmlinux 0x5b9a6d63	skb_page_frag_refill
+EXPORT_SYMBOL	 vmlinux 0x5ba04dd4	put_tty_driver
+EXPORT_SYMBOL	 vmlinux 0x5bcaa3a8	memory_read_from_io_buffer
+EXPORT_SYMBOL	 vmlinux 0x5bd801da	generic_write_checks
+EXPORT_SYMBOL	 vmlinux 0x5be63c5b	crc32c_csum_stub
+EXPORT_SYMBOL	 vmlinux 0x5c057bd5	fbcon_rotate_cw
+EXPORT_SYMBOL	 vmlinux 0x5c2d456c	utf8_strncmp
+EXPORT_SYMBOL	 vmlinux 0x5c316b22	blk_queue_alignment_offset
+EXPORT_SYMBOL	 vmlinux 0x5c3ff9fb	arp_send
+EXPORT_SYMBOL	 vmlinux 0x5c400302	__cgroup_bpf_run_filter_sock_addr
+EXPORT_SYMBOL	 vmlinux 0x5c4265f6	blk_unregister_region
+EXPORT_SYMBOL	 vmlinux 0x5c60f671	__dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x5c626d7f	d_alloc_anon
+EXPORT_SYMBOL	 vmlinux 0x5c923848	s390_epoch_delta_notifier
+EXPORT_SYMBOL	 vmlinux 0x5cc32bdc	bitmap_copy_le
+EXPORT_SYMBOL	 vmlinux 0x5cc65e5f	xfrm_replay_seqhi
+EXPORT_SYMBOL	 vmlinux 0x5cf53ce2	input_free_minor
+EXPORT_SYMBOL	 vmlinux 0x5d026b52	kfree_skb_list
+EXPORT_SYMBOL	 vmlinux 0x5d07e143	xsk_clear_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x5d21cebd	blk_rq_map_kern
+EXPORT_SYMBOL	 vmlinux 0x5d3d047d	dfltcc_can_deflate
+EXPORT_SYMBOL	 vmlinux 0x5d49aabc	init_wait_var_entry
+EXPORT_SYMBOL	 vmlinux 0x5d5cb7fe	netdev_next_lower_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0x5d762c93	tty_devnum
+EXPORT_SYMBOL	 vmlinux 0x5d7dee6b	strscpy_pad
+EXPORT_SYMBOL	 vmlinux 0x5d944bb9	mini_qdisc_pair_init
+EXPORT_SYMBOL	 vmlinux 0x5d9ad94b	xfrm_unregister_km
+EXPORT_SYMBOL	 vmlinux 0x5dac2d6e	dma_direct_sync_single_for_cpu
+EXPORT_SYMBOL	 vmlinux 0x5db178d8	sched_autogroup_create_attach
+EXPORT_SYMBOL	 vmlinux 0x5dcbf0ac	jbd2_journal_restart
+EXPORT_SYMBOL	 vmlinux 0x5dd3cedf	gen_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x5ddb77e9	vc_resize
+EXPORT_SYMBOL	 vmlinux 0x5de0033d	__frontswap_store
+EXPORT_SYMBOL	 vmlinux 0x5df756d7	__crypto_memneq
+EXPORT_SYMBOL	 vmlinux 0x5df7b983	kset_register
+EXPORT_SYMBOL	 vmlinux 0x5df940cd	from_kuid_munged
+EXPORT_SYMBOL	 vmlinux 0x5dfe83ff	inet_dgram_connect
+EXPORT_SYMBOL	 vmlinux 0x5e02b985	__cleancache_invalidate_inode
+EXPORT_SYMBOL	 vmlinux 0x5e2023be	inet_sk_set_state
+EXPORT_SYMBOL	 vmlinux 0x5e20d0e0	gen_pool_dma_alloc_align
+EXPORT_SYMBOL	 vmlinux 0x5e21cb82	ap_send
+EXPORT_SYMBOL	 vmlinux 0x5e373fb4	gf128mul_64k_bbe
+EXPORT_SYMBOL	 vmlinux 0x5e5b76f8	__tracepoint_kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x5e66518f	__lookup_constant
+EXPORT_SYMBOL	 vmlinux 0x5e68deda	tty_vhangup
+EXPORT_SYMBOL	 vmlinux 0x5e71d44b	timespec64_trunc
+EXPORT_SYMBOL	 vmlinux 0x5e722a5d	kthread_create_worker
+EXPORT_SYMBOL	 vmlinux 0x5e73df77	gro_find_complete_by_type
+EXPORT_SYMBOL	 vmlinux 0x5e78a27f	vfs_parse_fs_param
+EXPORT_SYMBOL	 vmlinux 0x5e78d1ad	fiemap_check_flags
+EXPORT_SYMBOL	 vmlinux 0x5e86171d	raw3270_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL	 vmlinux 0x5ea0483a	dquot_initialize_needed
+EXPORT_SYMBOL	 vmlinux 0x5ea5e591	sock_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x5ea94ec9	dcb_ieee_setapp
+EXPORT_SYMBOL	 vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL	 vmlinux 0x5ebd7a79	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL	 vmlinux 0x5ebfbca1	lock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0x5ec58feb	lock_sock_nested
+EXPORT_SYMBOL	 vmlinux 0x5ecd1530	idr_destroy
+EXPORT_SYMBOL	 vmlinux 0x5ecfeec6	__per_cpu_offset
+EXPORT_SYMBOL	 vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL	 vmlinux 0x5ed90adc	int_to_scsilun
+EXPORT_SYMBOL	 vmlinux 0x5ef93836	passthru_features_check
+EXPORT_SYMBOL	 vmlinux 0x5f045b12	udp6_csum_init
+EXPORT_SYMBOL	 vmlinux 0x5f098b2a	in6addr_interfacelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0x5f1b9db1	xfrm_find_acq_byseq
+EXPORT_SYMBOL	 vmlinux 0x5f27177d	fbcon_set_rotate
+EXPORT_SYMBOL	 vmlinux 0x5f529bef	fscrypt_encrypt_block_inplace
+EXPORT_SYMBOL	 vmlinux 0x5f725199	__napi_alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x5f758784	__insert_inode_hash
+EXPORT_SYMBOL	 vmlinux 0x5f7810f8	netlink_set_err
+EXPORT_SYMBOL	 vmlinux 0x5f7e6975	refcount_dec_and_lock_irqsave
+EXPORT_SYMBOL	 vmlinux 0x5f936dcd	inode_newsize_ok
+EXPORT_SYMBOL	 vmlinux 0x5f98bdb6	nf_hooks_needed
+EXPORT_SYMBOL	 vmlinux 0x5f9de54c	build_skb_around
+EXPORT_SYMBOL	 vmlinux 0x5fb1c8d7	radix_tree_lookup_slot
+EXPORT_SYMBOL	 vmlinux 0x5fb89053	proto_unregister
+EXPORT_SYMBOL	 vmlinux 0x5fd2298e	strnstr
+EXPORT_SYMBOL	 vmlinux 0x5fd56218	gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0x5fda0adb	ZSTD_DDictWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x5ffc9505	sk_stop_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x6005c351	zpool_has_pool
+EXPORT_SYMBOL	 vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL	 vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL	 vmlinux 0x60352082	register_inet6addr_notifier
+EXPORT_SYMBOL	 vmlinux 0x60394651	iucv_root
+EXPORT_SYMBOL	 vmlinux 0x603a123d	__page_symlink
+EXPORT_SYMBOL	 vmlinux 0x60496e01	set_bh_page
+EXPORT_SYMBOL	 vmlinux 0x604a5db8	input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x605790dc	fiemap_fill_next_extent
+EXPORT_SYMBOL	 vmlinux 0x6068f367	mr_mfc_seq_next
+EXPORT_SYMBOL	 vmlinux 0x608d249b	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL	 vmlinux 0x6091b333	unregister_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0x609bcd98	in6_pton
+EXPORT_SYMBOL	 vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL	 vmlinux 0x60b5c8dd	register_external_irq
+EXPORT_SYMBOL	 vmlinux 0x60d45544	sb_set_blocksize
+EXPORT_SYMBOL	 vmlinux 0x60ea67d5	vfs_getattr_nosec
+EXPORT_SYMBOL	 vmlinux 0x6101ed65	nmi_panic
+EXPORT_SYMBOL	 vmlinux 0x61044fcb	simple_nosetlease
+EXPORT_SYMBOL	 vmlinux 0x6112cffc	file_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL	 vmlinux 0x61347034	mb_cache_entry_delete_or_get
+EXPORT_SYMBOL	 vmlinux 0x6139c997	configfs_depend_item
+EXPORT_SYMBOL	 vmlinux 0x613ca369	padata_do_serial
+EXPORT_SYMBOL	 vmlinux 0x613ffd92	config_group_find_item
+EXPORT_SYMBOL	 vmlinux 0x6152aabe	kobject_get
+EXPORT_SYMBOL	 vmlinux 0x615911d7	__bitmap_set
+EXPORT_SYMBOL	 vmlinux 0x6161c6be	pci_alloc_irq_vectors_affinity
+EXPORT_SYMBOL	 vmlinux 0x61731c9d	xfrm_policy_delete
+EXPORT_SYMBOL	 vmlinux 0x61a733f2	get_guest_storage_key
+EXPORT_SYMBOL	 vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL	 vmlinux 0x61b8c319	__xfrm_state_destroy
+EXPORT_SYMBOL	 vmlinux 0x61bbff64	__dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0x61bf03a9	vm_iomap_memory
+EXPORT_SYMBOL	 vmlinux 0x61e056ea	__sock_i_ino
+EXPORT_SYMBOL	 vmlinux 0x61e1d059	request_firmware
+EXPORT_SYMBOL	 vmlinux 0x61ea189b	fb_pad_aligned_buffer
+EXPORT_SYMBOL	 vmlinux 0x61faa573	netif_stacked_transfer_operstate
+EXPORT_SYMBOL	 vmlinux 0x62077e1a	tty_port_hangup
+EXPORT_SYMBOL	 vmlinux 0x62159346	vfs_parse_fs_string
+EXPORT_SYMBOL	 vmlinux 0x621c35af	new_inode
+EXPORT_SYMBOL	 vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL	 vmlinux 0x622a54e7	inet_csk_complete_hashdance
+EXPORT_SYMBOL	 vmlinux 0x622ca0fe	neigh_table_init
+EXPORT_SYMBOL	 vmlinux 0x6234d79b	xfrm_register_km
+EXPORT_SYMBOL	 vmlinux 0x623cf071	registered_fb
+EXPORT_SYMBOL	 vmlinux 0x624b563a	PageMovable
+EXPORT_SYMBOL	 vmlinux 0x624c45c1	trace_print_array_seq
+EXPORT_SYMBOL	 vmlinux 0x625af3bb	md_integrity_add_rdev
+EXPORT_SYMBOL	 vmlinux 0x62730f4c	blk_mq_start_request
+EXPORT_SYMBOL	 vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL	 vmlinux 0x62849ac7	dev_valid_name
+EXPORT_SYMBOL	 vmlinux 0x62bf6edf	utf8agemin
+EXPORT_SYMBOL	 vmlinux 0x62d10d5a	blk_mq_queue_stopped
+EXPORT_SYMBOL	 vmlinux 0x62dfc95d	sock_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x62e03ea7	dev_uc_init
+EXPORT_SYMBOL	 vmlinux 0x62f0a681	jbd2_journal_destroy
+EXPORT_SYMBOL	 vmlinux 0x63046092	disk_stack_limits
+EXPORT_SYMBOL	 vmlinux 0x630bcfdf	inet6_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL	 vmlinux 0x634bf7e4	percpu_counter_add_batch
+EXPORT_SYMBOL	 vmlinux 0x6351a209	dev_queue_xmit_accel
+EXPORT_SYMBOL	 vmlinux 0x63541b70	task_work_add
+EXPORT_SYMBOL	 vmlinux 0x6361ec64	set_pgste_bits
+EXPORT_SYMBOL	 vmlinux 0x6371e098	cio_irb
+EXPORT_SYMBOL	 vmlinux 0x6375df98	dcb_setapp
+EXPORT_SYMBOL	 vmlinux 0x6376ca24	__sk_mem_reclaim
+EXPORT_SYMBOL	 vmlinux 0x6380a5c2	seq_dentry
+EXPORT_SYMBOL	 vmlinux 0x638290ac	key_type_keyring
+EXPORT_SYMBOL	 vmlinux 0x638a891b	skb_vlan_push
+EXPORT_SYMBOL	 vmlinux 0x639ef4e7	dput
+EXPORT_SYMBOL	 vmlinux 0x63a7c28c	bitmap_find_free_region
+EXPORT_SYMBOL	 vmlinux 0x63aa35ec	call_usermodehelper_exec
+EXPORT_SYMBOL	 vmlinux 0x63ae401c	sock_wmalloc
+EXPORT_SYMBOL	 vmlinux 0x63b68934	jbd2_journal_inode_ranged_wait
+EXPORT_SYMBOL	 vmlinux 0x63b8af1d	dst_release_immediate
+EXPORT_SYMBOL	 vmlinux 0x63c4d61f	__bitmap_weight
+EXPORT_SYMBOL	 vmlinux 0x63d6dbd9	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL	 vmlinux 0x63faf5cf	inet_reqsk_alloc
+EXPORT_SYMBOL	 vmlinux 0x63fe2a17	eth_commit_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x64127b67	bitmap_find_next_zero_area_off
+EXPORT_SYMBOL	 vmlinux 0x643432ec	dev_get_phys_port_name
+EXPORT_SYMBOL	 vmlinux 0x6435f2ea	vlan_filter_drop_vids
+EXPORT_SYMBOL	 vmlinux 0x643d9ba1	groups_free
+EXPORT_SYMBOL	 vmlinux 0x646e683d	kthread_stop
+EXPORT_SYMBOL	 vmlinux 0x64713dd5	eth_prepare_mac_addr_change
+EXPORT_SYMBOL	 vmlinux 0x6479ff46	dquot_get_next_id
+EXPORT_SYMBOL	 vmlinux 0x6481ffe0	hsiphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x6483ec6f	qdisc_class_hash_grow
+EXPORT_SYMBOL	 vmlinux 0x648eb59d	gc_inflight_list
+EXPORT_SYMBOL	 vmlinux 0x64908cd4	pci_prepare_to_sleep
+EXPORT_SYMBOL	 vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL	 vmlinux 0x64a0bd40	dquot_acquire
+EXPORT_SYMBOL	 vmlinux 0x64a9c928	default_blu
+EXPORT_SYMBOL	 vmlinux 0x64b639a3	__tracepoint_s390_cio_hsch
+EXPORT_SYMBOL	 vmlinux 0x64d6dbe4	pci_bus_assign_resources
+EXPORT_SYMBOL	 vmlinux 0x64ef83f7	vm_map_pages
+EXPORT_SYMBOL	 vmlinux 0x650dd197	flow_rule_match_cvlan
+EXPORT_SYMBOL	 vmlinux 0x6513a3fa	fb_get_color_depth
+EXPORT_SYMBOL	 vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL	 vmlinux 0x652032cb	mac_pton
+EXPORT_SYMBOL	 vmlinux 0x653cb639	__kfree_skb
+EXPORT_SYMBOL	 vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL	 vmlinux 0x6543531a	abort_creds
+EXPORT_SYMBOL	 vmlinux 0x65463698	netdev_lower_get_next
+EXPORT_SYMBOL	 vmlinux 0x654e6aca	mpage_writepage
+EXPORT_SYMBOL	 vmlinux 0x65617668	param_get_ullong
+EXPORT_SYMBOL	 vmlinux 0x65637e3d	neigh_resolve_output
+EXPORT_SYMBOL	 vmlinux 0x6577e577	pci_dev_get
+EXPORT_SYMBOL	 vmlinux 0x6579b5fa	sync_mapping_buffers
+EXPORT_SYMBOL	 vmlinux 0x6579d79a	udp_seq_start
+EXPORT_SYMBOL	 vmlinux 0x658ce1a8	xxh64_reset
+EXPORT_SYMBOL	 vmlinux 0x659ded26	xfrm_flush_gc
+EXPORT_SYMBOL	 vmlinux 0x659fb4eb	tcp_create_openreq_child
+EXPORT_SYMBOL	 vmlinux 0x65ad65c2	try_module_get
+EXPORT_SYMBOL	 vmlinux 0x65b37bcc	kthread_create_on_node
+EXPORT_SYMBOL	 vmlinux 0x65bc41d8	fs_context_for_reconfigure
+EXPORT_SYMBOL	 vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL	 vmlinux 0x65df6c96	pci_find_bus
+EXPORT_SYMBOL	 vmlinux 0x660f78f2	rtnl_kfree_skbs
+EXPORT_SYMBOL	 vmlinux 0x661a6df6	file_path
+EXPORT_SYMBOL	 vmlinux 0x661d3723	kthread_create_worker_on_cpu
+EXPORT_SYMBOL	 vmlinux 0x662cdabd	dquot_reclaim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x6642d348	complete
+EXPORT_SYMBOL	 vmlinux 0x664a756c	prepare_to_swait_event
+EXPORT_SYMBOL	 vmlinux 0x66616a6f	register_sysctl
+EXPORT_SYMBOL	 vmlinux 0x66628bf3	ip_tunnel_metadata_cnt
+EXPORT_SYMBOL	 vmlinux 0x6673f96d	xxh32_reset
+EXPORT_SYMBOL	 vmlinux 0x668cca74	rt_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x6691923f	iov_iter_get_pages
+EXPORT_SYMBOL	 vmlinux 0x66961ea5	tcf_get_next_chain
+EXPORT_SYMBOL	 vmlinux 0x669c862e	bio_integrity_clone
+EXPORT_SYMBOL	 vmlinux 0x66a06de2	path_has_submounts
+EXPORT_SYMBOL	 vmlinux 0x66b8db4b	__scsi_iterate_devices
+EXPORT_SYMBOL	 vmlinux 0x66b98575	__init_waitqueue_head
+EXPORT_SYMBOL	 vmlinux 0x66d555f9	pci_release_selected_regions
+EXPORT_SYMBOL	 vmlinux 0x66decfd5	ns_to_timespec
+EXPORT_SYMBOL	 vmlinux 0x66e0a341	ether_setup
+EXPORT_SYMBOL	 vmlinux 0x66e69897	prandom_bytes_state
+EXPORT_SYMBOL	 vmlinux 0x66f07ab1	dquot_quota_sync
+EXPORT_SYMBOL	 vmlinux 0x671fe135	kernel_read
+EXPORT_SYMBOL	 vmlinux 0x672144bd	strlcpy
+EXPORT_SYMBOL	 vmlinux 0x6721e5a4	down_killable
+EXPORT_SYMBOL	 vmlinux 0x6749d53f	hdmi_vendor_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0x6764da8a	raw3270_request_set_data
+EXPORT_SYMBOL	 vmlinux 0x6783ae79	__kernel_write
+EXPORT_SYMBOL	 vmlinux 0x6784c2d8	pcie_get_mps
+EXPORT_SYMBOL	 vmlinux 0x678b96ec	dma_pool_alloc
+EXPORT_SYMBOL	 vmlinux 0x678c62eb	cpu_all_bits
+EXPORT_SYMBOL	 vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL	 vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL	 vmlinux 0x67bd15c1	set_cached_acl
+EXPORT_SYMBOL	 vmlinux 0x67f7d8a9	__tcf_idr_release
+EXPORT_SYMBOL	 vmlinux 0x6804fab0	device_match_acpi_dev
+EXPORT_SYMBOL	 vmlinux 0x68163bb2	__test_set_page_writeback
+EXPORT_SYMBOL	 vmlinux 0x681afc98	security_unix_may_send
+EXPORT_SYMBOL	 vmlinux 0x6833b232	dev_change_flags
+EXPORT_SYMBOL	 vmlinux 0x6839e477	_dev_err
+EXPORT_SYMBOL	 vmlinux 0x683cde85	ipv6_dev_get_saddr
+EXPORT_SYMBOL	 vmlinux 0x685e31ca	groups_sort
+EXPORT_SYMBOL	 vmlinux 0x687173de	ZSTD_findDecompressedSize
+EXPORT_SYMBOL	 vmlinux 0x6893b4d6	ida_alloc_range
+EXPORT_SYMBOL	 vmlinux 0x68a0f296	alloc_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x68a90b51	get_default_font
+EXPORT_SYMBOL	 vmlinux 0x68aa3899	neigh_for_each
+EXPORT_SYMBOL	 vmlinux 0x68af43cb	dma_get_sgtable_attrs
+EXPORT_SYMBOL	 vmlinux 0x68b7cf2e	napi_get_frags
+EXPORT_SYMBOL	 vmlinux 0x68bbec57	set_anon_super_fc
+EXPORT_SYMBOL	 vmlinux 0x68e7fd2f	igrab
+EXPORT_SYMBOL	 vmlinux 0x68fe9e66	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x690662b6	eth_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x69097457	crc32_be
+EXPORT_SYMBOL	 vmlinux 0x69227401	dfltcc_reset
+EXPORT_SYMBOL	 vmlinux 0x6922b6b4	udp_pre_connect
+EXPORT_SYMBOL	 vmlinux 0x69387647	padata_alloc_possible
+EXPORT_SYMBOL	 vmlinux 0x69493b1a	kstrtos16
+EXPORT_SYMBOL	 vmlinux 0x69668826	netdev_increment_features
+EXPORT_SYMBOL	 vmlinux 0x6976daec	down_write
+EXPORT_SYMBOL	 vmlinux 0x697c59c9	tcp_init_sock
+EXPORT_SYMBOL	 vmlinux 0x69953fd3	lock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0x69aa59e9	dma_dummy_ops
+EXPORT_SYMBOL	 vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL	 vmlinux 0x69b50075	dquot_operations
+EXPORT_SYMBOL	 vmlinux 0x69cf77c8	ZSTD_getDictID_fromDict
+EXPORT_SYMBOL	 vmlinux 0x69d16bdd	unregister_nls
+EXPORT_SYMBOL	 vmlinux 0x69d85c34	gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0x69ec95ea	tcp_md5_hash_skb_data
+EXPORT_SYMBOL	 vmlinux 0x69ff8437	get_acl
+EXPORT_SYMBOL	 vmlinux 0x6a03751f	sgl_free_order
+EXPORT_SYMBOL	 vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL	 vmlinux 0x6a118ded	vfs_fsync_range
+EXPORT_SYMBOL	 vmlinux 0x6a2dc4cf	pci_scan_slot
+EXPORT_SYMBOL	 vmlinux 0x6a36ce9f	skb_abort_seq_read
+EXPORT_SYMBOL	 vmlinux 0x6a5cb5ee	__get_free_pages
+EXPORT_SYMBOL	 vmlinux 0x6a5ecb18	unregister_module_notifier
+EXPORT_SYMBOL	 vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL	 vmlinux 0x6a69c47e	tcp_mtup_init
+EXPORT_SYMBOL	 vmlinux 0x6a6f8481	ccw_device_start_key
+EXPORT_SYMBOL	 vmlinux 0x6aa11aa6	sgl_free_n_order
+EXPORT_SYMBOL	 vmlinux 0x6ad585b5	may_umount_tree
+EXPORT_SYMBOL	 vmlinux 0x6b13ce7a	flow_rule_match_ip
+EXPORT_SYMBOL	 vmlinux 0x6b1acf59	dns_query
+EXPORT_SYMBOL	 vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL	 vmlinux 0x6b3a3ec5	fib_notifier_ops_register
+EXPORT_SYMBOL	 vmlinux 0x6b3d6b1f	vfs_link
+EXPORT_SYMBOL	 vmlinux 0x6b42e3a6	xfrm_state_walk
+EXPORT_SYMBOL	 vmlinux 0x6b55acd0	rtnl_lock_killable
+EXPORT_SYMBOL	 vmlinux 0x6b5a83a0	blk_set_stacking_limits
+EXPORT_SYMBOL	 vmlinux 0x6b5b198b	ipv6_chk_prefix
+EXPORT_SYMBOL	 vmlinux 0x6b692713	md_write_start
+EXPORT_SYMBOL	 vmlinux 0x6b763516	nf_register_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x6b853d06	ns_to_kernel_old_timeval
+EXPORT_SYMBOL	 vmlinux 0x6b8bf149	netif_receive_skb_list
+EXPORT_SYMBOL	 vmlinux 0x6b99eec6	from_kgid
+EXPORT_SYMBOL	 vmlinux 0x6bac671b	__crc32c_le
+EXPORT_SYMBOL	 vmlinux 0x6baca297	__tracepoint_s390_cio_chsc
+EXPORT_SYMBOL	 vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL	 vmlinux 0x6bd2fc84	netif_set_xps_queue
+EXPORT_SYMBOL	 vmlinux 0x6bde48ec	put_user_pages
+EXPORT_SYMBOL	 vmlinux 0x6beea908	dma_set_mask
+EXPORT_SYMBOL	 vmlinux 0x6bfe1653	iucv_message_receive
+EXPORT_SYMBOL	 vmlinux 0x6c03c094	free_buffer_head
+EXPORT_SYMBOL	 vmlinux 0x6c257ac0	tty_termios_hw_change
+EXPORT_SYMBOL	 vmlinux 0x6c2a0c5f	noop_llseek
+EXPORT_SYMBOL	 vmlinux 0x6c2b7f84	xsk_umem_consume_tx_done
+EXPORT_SYMBOL	 vmlinux 0x6c3de98c	put_disk
+EXPORT_SYMBOL	 vmlinux 0x6c4c6ddc	drop_super
+EXPORT_SYMBOL	 vmlinux 0x6c4edd9c	truncate_setsize
+EXPORT_SYMBOL	 vmlinux 0x6c5b2037	device_add_disk_no_queue_reg
+EXPORT_SYMBOL	 vmlinux 0x6c60994e	remove_wait_queue
+EXPORT_SYMBOL	 vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL	 vmlinux 0x6c669394	flow_rule_match_enc_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0x6c70c2ea	gnet_stats_finish_copy
+EXPORT_SYMBOL	 vmlinux 0x6c8ce9f2	nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0x6c9e885c	nla_reserve_64bit
+EXPORT_SYMBOL	 vmlinux 0x6cb46525	netlbl_catmap_walk
+EXPORT_SYMBOL	 vmlinux 0x6cbaa604	elv_rb_former_request
+EXPORT_SYMBOL	 vmlinux 0x6cc710ff	gen_pool_first_fit
+EXPORT_SYMBOL	 vmlinux 0x6cd482c5	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL	 vmlinux 0x6cf62166	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL	 vmlinux 0x6cfc94bc	unlock_new_inode
+EXPORT_SYMBOL	 vmlinux 0x6cff3b90	register_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0x6d1ea6ec	strlcat
+EXPORT_SYMBOL	 vmlinux 0x6d22e472	sock_no_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x6d2b9754	inet_frag_reasm_prepare
+EXPORT_SYMBOL	 vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL	 vmlinux 0x6d3be6f1	__percpu_counter_compare
+EXPORT_SYMBOL	 vmlinux 0x6d45fdb1	devm_ioremap_resource
+EXPORT_SYMBOL	 vmlinux 0x6d6dcb12	pci_ep_cfs_remove_epf_group
+EXPORT_SYMBOL	 vmlinux 0x6dab0254	idr_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0x6daea280	crc32_le_shift
+EXPORT_SYMBOL	 vmlinux 0x6dbb632b	param_ops_ulong
+EXPORT_SYMBOL	 vmlinux 0x6dc61add	pci_dev_put
+EXPORT_SYMBOL	 vmlinux 0x6dcb4a70	skb_ext_add
+EXPORT_SYMBOL	 vmlinux 0x6dcf857f	uuid_null
+EXPORT_SYMBOL	 vmlinux 0x6dd64d86	param_set_int
+EXPORT_SYMBOL	 vmlinux 0x6de51f49	tso_build_data
+EXPORT_SYMBOL	 vmlinux 0x6df1aaf1	kernel_sigaction
+EXPORT_SYMBOL	 vmlinux 0x6df3f8f6	dev_uc_add
+EXPORT_SYMBOL	 vmlinux 0x6e00b8cb	_ebcasc
+EXPORT_SYMBOL	 vmlinux 0x6e019034	__tracepoint_module_get
+EXPORT_SYMBOL	 vmlinux 0x6e1371b2	sk_free
+EXPORT_SYMBOL	 vmlinux 0x6e20f14c	filemap_write_and_wait_range
+EXPORT_SYMBOL	 vmlinux 0x6e4744d5	dquot_claim_space_nodirty
+EXPORT_SYMBOL	 vmlinux 0x6e4d1a04	configfs_unregister_subsystem
+EXPORT_SYMBOL	 vmlinux 0x6e5b390b	iov_iter_bvec
+EXPORT_SYMBOL	 vmlinux 0x6e66e3d4	generic_start_io_acct
+EXPORT_SYMBOL	 vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL	 vmlinux 0x6e76a396	udp_gro_receive
+EXPORT_SYMBOL	 vmlinux 0x6e9ad290	cpu_have_feature
+EXPORT_SYMBOL	 vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL	 vmlinux 0x6ea1447d	vm_mmap
+EXPORT_SYMBOL	 vmlinux 0x6ea9363b	force_sig
+EXPORT_SYMBOL	 vmlinux 0x6ea98741	netdev_lower_get_first_private_rcu
+EXPORT_SYMBOL	 vmlinux 0x6eb50cb8	do_splice_direct
+EXPORT_SYMBOL	 vmlinux 0x6ebb7995	keyring_search
+EXPORT_SYMBOL	 vmlinux 0x6ec2d3f0	inet6_bind
+EXPORT_SYMBOL	 vmlinux 0x6ed8a5fc	hdmi_drm_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0x6ede3b0a	inet_stream_ops
+EXPORT_SYMBOL	 vmlinux 0x6ef84303	kvmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x6f2ac137	dma_resv_add_shared_fence
+EXPORT_SYMBOL	 vmlinux 0x6f33f321	clear_wb_congested
+EXPORT_SYMBOL	 vmlinux 0x6f365e44	ZSTD_decompressContinue
+EXPORT_SYMBOL	 vmlinux 0x6f3a63e3	proc_create_seq_private
+EXPORT_SYMBOL	 vmlinux 0x6f3b8b42	dump_emit
+EXPORT_SYMBOL	 vmlinux 0x6f3b97e9	proc_create_mount_point
+EXPORT_SYMBOL	 vmlinux 0x6f5ef93d	memchr_inv
+EXPORT_SYMBOL	 vmlinux 0x6f689943	ZSTD_decompressBegin_usingDict
+EXPORT_SYMBOL	 vmlinux 0x6f78b39c	tcp_close
+EXPORT_SYMBOL	 vmlinux 0x6f791233	alloc_cpu_rmap
+EXPORT_SYMBOL	 vmlinux 0x6f8420a3	ZSTD_findFrameCompressedSize
+EXPORT_SYMBOL	 vmlinux 0x6f926129	generic_update_time
+EXPORT_SYMBOL	 vmlinux 0x6f9a4189	inet6_ioctl
+EXPORT_SYMBOL	 vmlinux 0x6fb49676	queue_rcu_work
+EXPORT_SYMBOL	 vmlinux 0x6fc2745c	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL	 vmlinux 0x6fdc8fea	flow_block_cb_priv
+EXPORT_SYMBOL	 vmlinux 0x6fe0ae58	generic_setlease
+EXPORT_SYMBOL	 vmlinux 0x6ffe7e3f	pcim_iomap_regions_request_all
+EXPORT_SYMBOL	 vmlinux 0x70002fe8	siphash_1u32
+EXPORT_SYMBOL	 vmlinux 0x702f4acf	udp_table
+EXPORT_SYMBOL	 vmlinux 0x705804f1	fb_get_buffer_offset
+EXPORT_SYMBOL	 vmlinux 0x705f4122	pipe_unlock
+EXPORT_SYMBOL	 vmlinux 0x7063d6c8	security_inode_copy_up
+EXPORT_SYMBOL	 vmlinux 0x7071a4f2	cmdline_parts_free
+EXPORT_SYMBOL	 vmlinux 0x7074f52d	generic_writepages
+EXPORT_SYMBOL	 vmlinux 0x707c18b7	rawv6_mh_filter_register
+EXPORT_SYMBOL	 vmlinux 0x707ffc64	sock_gettstamp
+EXPORT_SYMBOL	 vmlinux 0x70808884	netdev_set_num_tc
+EXPORT_SYMBOL	 vmlinux 0x7088880f	commit_creds
+EXPORT_SYMBOL	 vmlinux 0x708a47ed	get_task_exe_file
+EXPORT_SYMBOL	 vmlinux 0x708eb946	keyring_alloc
+EXPORT_SYMBOL	 vmlinux 0x70aff854	mark_page_accessed
+EXPORT_SYMBOL	 vmlinux 0x70c871a1	iterate_supers_type
+EXPORT_SYMBOL	 vmlinux 0x70d5ed93	ida_destroy
+EXPORT_SYMBOL	 vmlinux 0x70f81b56	ap_max_msg_size
+EXPORT_SYMBOL	 vmlinux 0x7120f9bd	LZ4_setStreamDecode
+EXPORT_SYMBOL	 vmlinux 0x712135d6	proc_dostring
+EXPORT_SYMBOL	 vmlinux 0x71226956	sget_fc
+EXPORT_SYMBOL	 vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL	 vmlinux 0x71366e24	_dev_warn
+EXPORT_SYMBOL	 vmlinux 0x7145aef0	segment_load
+EXPORT_SYMBOL	 vmlinux 0x7149161c	unregister_filesystem
+EXPORT_SYMBOL	 vmlinux 0x714c5157	cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x715edd54	tty_unthrottle
+EXPORT_SYMBOL	 vmlinux 0x7167cbbd	gnet_stats_copy_queue
+EXPORT_SYMBOL	 vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL	 vmlinux 0x717da3b9	free_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0x7186cc9c	blk_queue_make_request
+EXPORT_SYMBOL	 vmlinux 0x718a130c	cdev_device_add
+EXPORT_SYMBOL	 vmlinux 0x71979618	input_release_device
+EXPORT_SYMBOL	 vmlinux 0x71a2f7e8	dev_open
+EXPORT_SYMBOL	 vmlinux 0x71a2f898	inet_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL	 vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71aefb46	io_uring_get_socket
+EXPORT_SYMBOL	 vmlinux 0x71b94b3b	truncate_inode_pages
+EXPORT_SYMBOL	 vmlinux 0x71bbca49	inode_insert5
+EXPORT_SYMBOL	 vmlinux 0x71bcf9d9	kset_unregister
+EXPORT_SYMBOL	 vmlinux 0x71d644cf	cdrom_number_of_slots
+EXPORT_SYMBOL	 vmlinux 0x71df609c	mempool_destroy
+EXPORT_SYMBOL	 vmlinux 0x71e05230	tty_driver_kref_put
+EXPORT_SYMBOL	 vmlinux 0x71e5e0bb	xsk_set_rx_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0x71f32bd0	page_pool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x72006ba2	__close_fd_get_file
+EXPORT_SYMBOL	 vmlinux 0x721b0967	put_fs_context
+EXPORT_SYMBOL	 vmlinux 0x72409daf	peernet2id
+EXPORT_SYMBOL	 vmlinux 0x7242e96d	strnchr
+EXPORT_SYMBOL	 vmlinux 0x7249a881	ccw_device_is_pathgroup
+EXPORT_SYMBOL	 vmlinux 0x724ddac7	utf8version_is_supported
+EXPORT_SYMBOL	 vmlinux 0x726a875f	sock_no_sendpage
+EXPORT_SYMBOL	 vmlinux 0x727242a9	sha256_update
+EXPORT_SYMBOL	 vmlinux 0x72b9d287	default_grn
+EXPORT_SYMBOL	 vmlinux 0x72bf9eba	netif_set_real_num_rx_queues
+EXPORT_SYMBOL	 vmlinux 0x72d0052d	release_pages
+EXPORT_SYMBOL	 vmlinux 0x72e449ea	__xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL	 vmlinux 0x72f02478	idr_get_next_ul
+EXPORT_SYMBOL	 vmlinux 0x730b096c	ap_apqn_in_matrix_owned_by_def_drv
+EXPORT_SYMBOL	 vmlinux 0x7316e2de	param_ops_bool
+EXPORT_SYMBOL	 vmlinux 0x731eac73	dma_resv_init
+EXPORT_SYMBOL	 vmlinux 0x73309b64	vlan_vids_add_by_dev
+EXPORT_SYMBOL	 vmlinux 0x7331c435	vfs_mkdir
+EXPORT_SYMBOL	 vmlinux 0x73552eb3	blk_limits_io_opt
+EXPORT_SYMBOL	 vmlinux 0x73566ea7	nf_ip6_checksum
+EXPORT_SYMBOL	 vmlinux 0x73567b03	md_bitmap_cond_end_sync
+EXPORT_SYMBOL	 vmlinux 0x736beef5	scsi_bios_ptable
+EXPORT_SYMBOL	 vmlinux 0x737dba87	udp_gro_complete
+EXPORT_SYMBOL	 vmlinux 0x7380dffa	argv_split
+EXPORT_SYMBOL	 vmlinux 0x73869f30	__tracepoint_s390_cio_ssch
+EXPORT_SYMBOL	 vmlinux 0x7389706a	__memset16
+EXPORT_SYMBOL	 vmlinux 0x738e0b27	ip_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x73a8c85b	pcie_capability_write_word
+EXPORT_SYMBOL	 vmlinux 0x73b1d246	debug_exception_common
+EXPORT_SYMBOL	 vmlinux 0x73b64e95	fscrypt_decrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0x73bf20c6	_ascebc
+EXPORT_SYMBOL	 vmlinux 0x73dc4e5c	neigh_direct_output
+EXPORT_SYMBOL	 vmlinux 0x73e18fe1	balance_dirty_pages_ratelimited
+EXPORT_SYMBOL	 vmlinux 0x73e6e2b5	flow_rule_match_enc_control
+EXPORT_SYMBOL	 vmlinux 0x7410aba2	strreplace
+EXPORT_SYMBOL	 vmlinux 0x741f70a9	debug_stop_all
+EXPORT_SYMBOL	 vmlinux 0x74240114	unregister_quota_format
+EXPORT_SYMBOL	 vmlinux 0x742578a5	wait_for_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x7470b01a	tsb_init
+EXPORT_SYMBOL	 vmlinux 0x7476b2d7	tcp_get_md5sig_pool
+EXPORT_SYMBOL	 vmlinux 0x748c7950	generic_end_io_acct
+EXPORT_SYMBOL	 vmlinux 0x74b960b5	scsi_change_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL	 vmlinux 0x74c39ed5	ap_driver_register
+EXPORT_SYMBOL	 vmlinux 0x74de8727	remove_proc_subtree
+EXPORT_SYMBOL	 vmlinux 0x74e5ff1a	udpv6_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x74f208a6	dquot_commit_info
+EXPORT_SYMBOL	 vmlinux 0x74f5ac78	simple_pin_fs
+EXPORT_SYMBOL	 vmlinux 0x7516c719	blkdev_issue_write_same
+EXPORT_SYMBOL	 vmlinux 0x752551ad	blk_queue_max_write_same_sectors
+EXPORT_SYMBOL	 vmlinux 0x7539c1ec	kernel_sendpage_locked
+EXPORT_SYMBOL	 vmlinux 0x757cc6f3	simple_lookup
+EXPORT_SYMBOL	 vmlinux 0x757e7d44	jbd2_journal_get_write_access
+EXPORT_SYMBOL	 vmlinux 0x75915ba8	d_find_any_alias
+EXPORT_SYMBOL	 vmlinux 0x75940125	lock_sock_fast
+EXPORT_SYMBOL	 vmlinux 0x759a0416	__memset64
+EXPORT_SYMBOL	 vmlinux 0x759a9f2d	refcount_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x75a099ee	sock_common_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x75ac0197	kstrtoul_from_user
+EXPORT_SYMBOL	 vmlinux 0x75b9cf29	hsch
+EXPORT_SYMBOL	 vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL	 vmlinux 0x75d0deb9	nsecs_to_jiffies64
+EXPORT_SYMBOL	 vmlinux 0x75d499dd	vmcore_add_device_dump
+EXPORT_SYMBOL	 vmlinux 0x75fb68e6	lookup_positive_unlocked
+EXPORT_SYMBOL	 vmlinux 0x75fcdd6f	panic_notifier_list
+EXPORT_SYMBOL	 vmlinux 0x76028ff0	revalidate_disk
+EXPORT_SYMBOL	 vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL	 vmlinux 0x760a3eca	ZSTD_decompressStream
+EXPORT_SYMBOL	 vmlinux 0x7624249e	dim_park_tired
+EXPORT_SYMBOL	 vmlinux 0x7631e02b	remove_conflicting_pci_framebuffers
+EXPORT_SYMBOL	 vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL	 vmlinux 0x76518f72	console_start
+EXPORT_SYMBOL	 vmlinux 0x765c7cb3	sclp
+EXPORT_SYMBOL	 vmlinux 0x76677ce4	unregister_binfmt
+EXPORT_SYMBOL	 vmlinux 0x76694f29	qdisc_watchdog_cancel
+EXPORT_SYMBOL	 vmlinux 0x766a0927	mempool_alloc_pages
+EXPORT_SYMBOL	 vmlinux 0x7671e001	xa_store_range
+EXPORT_SYMBOL	 vmlinux 0x7684c03e	kbd_ioctl
+EXPORT_SYMBOL	 vmlinux 0x768a21f4	t10_pi_type1_crc
+EXPORT_SYMBOL	 vmlinux 0x7696841b	inet_csk_accept
+EXPORT_SYMBOL	 vmlinux 0x769f6e64	errseq_check
+EXPORT_SYMBOL	 vmlinux 0x76b315c8	xattr_full_name
+EXPORT_SYMBOL	 vmlinux 0x76b53cd7	devm_of_iomap
+EXPORT_SYMBOL	 vmlinux 0x76cfe56e	filemap_fdatawrite_range
+EXPORT_SYMBOL	 vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL	 vmlinux 0x76d451c4	add_taint
+EXPORT_SYMBOL	 vmlinux 0x76f6b1c0	ccw_device_tm_start_timeout_key
+EXPORT_SYMBOL	 vmlinux 0x77099439	forget_all_cached_acls
+EXPORT_SYMBOL	 vmlinux 0x77247c5e	ap_bus_force_rescan
+EXPORT_SYMBOL	 vmlinux 0x77247e19	dev_get_port_parent_id
+EXPORT_SYMBOL	 vmlinux 0x772db6e6	pci_pme_capable
+EXPORT_SYMBOL	 vmlinux 0x77358855	iomem_resource
+EXPORT_SYMBOL	 vmlinux 0x773a428a	sock_edemux
+EXPORT_SYMBOL	 vmlinux 0x774bbdac	gnet_stats_start_copy_compat
+EXPORT_SYMBOL	 vmlinux 0x775367e0	jbd2_complete_transaction
+EXPORT_SYMBOL	 vmlinux 0x77552bd2	neigh_ifdown
+EXPORT_SYMBOL	 vmlinux 0x776ca93a	__clzdi2
+EXPORT_SYMBOL	 vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL	 vmlinux 0x779ef7d4	pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0x77a38e36	make_kuid
+EXPORT_SYMBOL	 vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL	 vmlinux 0x77d019fb	__mutex_init
+EXPORT_SYMBOL	 vmlinux 0x77e3466d	security_socket_socketpair
+EXPORT_SYMBOL	 vmlinux 0x77e9eb37	aes_encrypt
+EXPORT_SYMBOL	 vmlinux 0x77fc9d40	radix_tree_tag_clear
+EXPORT_SYMBOL	 vmlinux 0x7807f0f8	schedule_timeout_idle
+EXPORT_SYMBOL	 vmlinux 0x780bb96e	jbd2_journal_init_dev
+EXPORT_SYMBOL	 vmlinux 0x7811636c	skb_find_text
+EXPORT_SYMBOL	 vmlinux 0x781227fe	proc_symlink
+EXPORT_SYMBOL	 vmlinux 0x7817c595	raw3270_request_alloc
+EXPORT_SYMBOL	 vmlinux 0x7819aea9	__kmalloc_node
+EXPORT_SYMBOL	 vmlinux 0x782acba5	crc_t10dif
+EXPORT_SYMBOL	 vmlinux 0x783719fb	vfs_readlink
+EXPORT_SYMBOL	 vmlinux 0x784005ce	blk_mq_alloc_tag_set
+EXPORT_SYMBOL	 vmlinux 0x78418cde	mini_qdisc_pair_swap
+EXPORT_SYMBOL	 vmlinux 0x787e6853	dev_mc_add
+EXPORT_SYMBOL	 vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL	 vmlinux 0x789affb1	frontswap_tmem_exclusive_gets
+EXPORT_SYMBOL	 vmlinux 0x789c4c4e	xfrm_init_state
+EXPORT_SYMBOL	 vmlinux 0x78a0e487	udplite_table
+EXPORT_SYMBOL	 vmlinux 0x78a16f48	aes_decrypt
+EXPORT_SYMBOL	 vmlinux 0x78b1520e	__block_write_begin
+EXPORT_SYMBOL	 vmlinux 0x78c5e2fe	blk_set_queue_depth
+EXPORT_SYMBOL	 vmlinux 0x78daf761	tty_lock
+EXPORT_SYMBOL	 vmlinux 0x78deaa88	dma_fence_match_context
+EXPORT_SYMBOL	 vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL	 vmlinux 0x78ed7423	mempool_create_node
+EXPORT_SYMBOL	 vmlinux 0x78f5db1a	component_match_add_typed
+EXPORT_SYMBOL	 vmlinux 0x78facfb2	cad_pid
+EXPORT_SYMBOL	 vmlinux 0x792d4eaa	generic_error_remove_page
+EXPORT_SYMBOL	 vmlinux 0x792d7f0f	down
+EXPORT_SYMBOL	 vmlinux 0x793a8204	blkdev_get_by_dev
+EXPORT_SYMBOL	 vmlinux 0x793f668a	tcf_block_put_ext
+EXPORT_SYMBOL	 vmlinux 0x796b8d9e	pci_ep_cfs_remove_epc_group
+EXPORT_SYMBOL	 vmlinux 0x796d3e4d	set_page_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0x796e9145	inet_recvmsg
+EXPORT_SYMBOL	 vmlinux 0x796fae1b	lookup_one_len_unlocked
+EXPORT_SYMBOL	 vmlinux 0x7979b034	pci_free_irq_vectors
+EXPORT_SYMBOL	 vmlinux 0x79819dd5	fb_validate_mode
+EXPORT_SYMBOL	 vmlinux 0x799b7f96	param_ops_ushort
+EXPORT_SYMBOL	 vmlinux 0x79b9451a	__neigh_for_each_release
+EXPORT_SYMBOL	 vmlinux 0x79d57c48	__devm_request_region
+EXPORT_SYMBOL	 vmlinux 0x79e7d112	__lock_buffer
+EXPORT_SYMBOL	 vmlinux 0x79fb92c9	locks_lock_inode_wait
+EXPORT_SYMBOL	 vmlinux 0x7a044bb7	__ip_dev_find
+EXPORT_SYMBOL	 vmlinux 0x7a09a064	seg6_hmac_compute
+EXPORT_SYMBOL	 vmlinux 0x7a0fbcf3	blk_mq_free_tag_set
+EXPORT_SYMBOL	 vmlinux 0x7a1bcd59	gf128mul_x8_ble
+EXPORT_SYMBOL	 vmlinux 0x7a2334a8	tty_port_tty_set
+EXPORT_SYMBOL	 vmlinux 0x7a2b29ef	input_set_capability
+EXPORT_SYMBOL	 vmlinux 0x7a385335	bpf_prog_get_type_path
+EXPORT_SYMBOL	 vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL	 vmlinux 0x7a5d9a71	ZSTD_DStreamWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0x7a5eb5a6	iov_iter_pipe
+EXPORT_SYMBOL	 vmlinux 0x7a768008	pci_dev_driver
+EXPORT_SYMBOL	 vmlinux 0x7a7d60e6	iucv_register
+EXPORT_SYMBOL	 vmlinux 0x7a95e5ae	do_settimeofday64
+EXPORT_SYMBOL	 vmlinux 0x7a96729f	fscrypt_put_encryption_info
+EXPORT_SYMBOL	 vmlinux 0x7a967bac	fscrypt_enqueue_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0x7a9b37e8	blk_start_plug
+EXPORT_SYMBOL	 vmlinux 0x7aa1756e	kvfree
+EXPORT_SYMBOL	 vmlinux 0x7aa32ce8	truncate_inode_pages_final
+EXPORT_SYMBOL	 vmlinux 0x7aa34226	skb_store_bits
+EXPORT_SYMBOL	 vmlinux 0x7aa870a4	kernel_sock_ip_overhead
+EXPORT_SYMBOL	 vmlinux 0x7aad5638	input_set_max_poll_interval
+EXPORT_SYMBOL	 vmlinux 0x7ab88a45	system_freezing_cnt
+EXPORT_SYMBOL	 vmlinux 0x7ac4b8a5	hdmi_infoframe_unpack
+EXPORT_SYMBOL	 vmlinux 0x7ad050b9	qid_lt
+EXPORT_SYMBOL	 vmlinux 0x7adc0fbf	rb_replace_node_rcu
+EXPORT_SYMBOL	 vmlinux 0x7adc2b27	frontswap_register_ops
+EXPORT_SYMBOL	 vmlinux 0x7b0192da	kstrtou16
+EXPORT_SYMBOL	 vmlinux 0x7b1913a4	always_delete_dentry
+EXPORT_SYMBOL	 vmlinux 0x7b235221	seg6_push_hmac
+EXPORT_SYMBOL	 vmlinux 0x7b2ad925	__skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0x7b3e4027	dev_remove_offload
+EXPORT_SYMBOL	 vmlinux 0x7b4113a1	d_genocide
+EXPORT_SYMBOL	 vmlinux 0x7b4bd8bb	pci_lost_interrupt
+EXPORT_SYMBOL	 vmlinux 0x7b5854f5	drop_super_exclusive
+EXPORT_SYMBOL	 vmlinux 0x7b5a7137	strncat
+EXPORT_SYMBOL	 vmlinux 0x7b5ace4c	gen_pool_first_fit_align
+EXPORT_SYMBOL	 vmlinux 0x7b5e3dd2	pskb_extract
+EXPORT_SYMBOL	 vmlinux 0x7b661dca	neigh_table_clear
+EXPORT_SYMBOL	 vmlinux 0x7b66351d	__dev_kfree_skb_irq
+EXPORT_SYMBOL	 vmlinux 0x7b74924a	ethtool_rx_flow_rule_destroy
+EXPORT_SYMBOL	 vmlinux 0x7b8c6edc	read_code
+EXPORT_SYMBOL	 vmlinux 0x7b8d632c	tcp_set_rcvlowat
+EXPORT_SYMBOL	 vmlinux 0x7b98190b	string_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0x7bb40ca0	scsi_verify_blk_ioctl
+EXPORT_SYMBOL	 vmlinux 0x7bb74208	__scsi_execute
+EXPORT_SYMBOL	 vmlinux 0x7bbccd05	nr_node_ids
+EXPORT_SYMBOL	 vmlinux 0x7bbe7a13	__put_page
+EXPORT_SYMBOL	 vmlinux 0x7bd662ee	copy_strings_kernel
+EXPORT_SYMBOL	 vmlinux 0x7bd7dfd0	ap_test_config_usage_domain
+EXPORT_SYMBOL	 vmlinux 0x7bf564ea	jbd2_journal_set_features
+EXPORT_SYMBOL	 vmlinux 0x7c12c2c1	padata_register_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0x7c173634	__bitmap_complement
+EXPORT_SYMBOL	 vmlinux 0x7c331c90	jbd2__journal_start
+EXPORT_SYMBOL	 vmlinux 0x7c3fc307	tcp_mss_to_mtu
+EXPORT_SYMBOL	 vmlinux 0x7c5d4a3a	sclp_reactivate
+EXPORT_SYMBOL	 vmlinux 0x7c5f0950	kmalloc_caches
+EXPORT_SYMBOL	 vmlinux 0x7c6ed587	bioset_init
+EXPORT_SYMBOL	 vmlinux 0x7c9ca58f	__sg_page_iter_next
+EXPORT_SYMBOL	 vmlinux 0x7ca6b16d	param_ops_string
+EXPORT_SYMBOL	 vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL	 vmlinux 0x7cb1aea1	devlink_dpipe_header_ethernet
+EXPORT_SYMBOL	 vmlinux 0x7ccaada0	tso_start
+EXPORT_SYMBOL	 vmlinux 0x7cd9e9b9	ipv4_specific
+EXPORT_SYMBOL	 vmlinux 0x7ce18c9f	from_kqid
+EXPORT_SYMBOL	 vmlinux 0x7cfe368d	net_dim_get_def_tx_moderation
+EXPORT_SYMBOL	 vmlinux 0x7d0db45c	jiffies_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0x7d22bd21	register_tcf_proto_ops
+EXPORT_SYMBOL	 vmlinux 0x7d28dda1	tag_pages_for_writeback
+EXPORT_SYMBOL	 vmlinux 0x7d4b176a	netlbl_catmap_setbit
+EXPORT_SYMBOL	 vmlinux 0x7d588220	dev_alloc_name
+EXPORT_SYMBOL	 vmlinux 0x7d5a5812	ipv6_mc_check_mld
+EXPORT_SYMBOL	 vmlinux 0x7d98fce9	fqdir_init
+EXPORT_SYMBOL	 vmlinux 0x7d9e0c21	pci_get_class
+EXPORT_SYMBOL	 vmlinux 0x7da63fe0	skb_flow_dissect_ct
+EXPORT_SYMBOL	 vmlinux 0x7daece67	quota_send_warning
+EXPORT_SYMBOL	 vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL	 vmlinux 0x7df975f0	wait_for_completion_io_timeout
+EXPORT_SYMBOL	 vmlinux 0x7e06a3a6	d_set_fallthru
+EXPORT_SYMBOL	 vmlinux 0x7e153e63	eth_get_headlen
+EXPORT_SYMBOL	 vmlinux 0x7e1669bb	blk_queue_max_segment_size
+EXPORT_SYMBOL	 vmlinux 0x7e285f30	tso_count_descs
+EXPORT_SYMBOL	 vmlinux 0x7e3191f6	try_to_del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x7e3f70dd	dquot_quota_on_mount
+EXPORT_SYMBOL	 vmlinux 0x7e4175bd	sock_i_uid
+EXPORT_SYMBOL	 vmlinux 0x7e574c17	xfrm_init_replay
+EXPORT_SYMBOL	 vmlinux 0x7e5daef1	dm_io
+EXPORT_SYMBOL	 vmlinux 0x7e5e12b7	d_prune_aliases
+EXPORT_SYMBOL	 vmlinux 0x7e726c37	tty_port_close_start
+EXPORT_SYMBOL	 vmlinux 0x7e780456	netdev_lower_state_changed
+EXPORT_SYMBOL	 vmlinux 0x7e821ba1	crc_ccitt
+EXPORT_SYMBOL	 vmlinux 0x7e90a924	inet_frag_reasm_finish
+EXPORT_SYMBOL	 vmlinux 0x7e9176fd	blk_rq_init
+EXPORT_SYMBOL	 vmlinux 0x7e94bcdb	eth_change_mtu
+EXPORT_SYMBOL	 vmlinux 0x7eb9f4dc	free_netdev
+EXPORT_SYMBOL	 vmlinux 0x7eea41e9	kern_path_create
+EXPORT_SYMBOL	 vmlinux 0x7ef784f2	rename_lock
+EXPORT_SYMBOL	 vmlinux 0x7f02188f	__msecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x7f03b6a9	crc_ccitt_table
+EXPORT_SYMBOL	 vmlinux 0x7f13cc8b	finalize_exec
+EXPORT_SYMBOL	 vmlinux 0x7f1b8180	ccw_device_set_options
+EXPORT_SYMBOL	 vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL	 vmlinux 0x7f32c197	mr_table_alloc
+EXPORT_SYMBOL	 vmlinux 0x7f34aa92	vm_insert_page
+EXPORT_SYMBOL	 vmlinux 0x7f465aee	nf_unregister_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x7f52071a	net_dim
+EXPORT_SYMBOL	 vmlinux 0x7f543a10	sync_file_get_fence
+EXPORT_SYMBOL	 vmlinux 0x7f5b4fe4	sg_free_table
+EXPORT_SYMBOL	 vmlinux 0x7f7f7bb4	irq_poll_disable
+EXPORT_SYMBOL	 vmlinux 0x7f92f1e6	qdisc_warn_nonwc
+EXPORT_SYMBOL	 vmlinux 0x7f930768	inet6_unregister_protosw
+EXPORT_SYMBOL	 vmlinux 0x7fd3a269	request_key_tag
+EXPORT_SYMBOL	 vmlinux 0x7fe32873	rb_replace_node
+EXPORT_SYMBOL	 vmlinux 0x7fe4cef3	sock_alloc_file
+EXPORT_SYMBOL	 vmlinux 0x7fe85a61	ptep_xchg_direct
+EXPORT_SYMBOL	 vmlinux 0x7ff6f7f2	has_capability
+EXPORT_SYMBOL	 vmlinux 0x8005cf66	netlbl_audit_start
+EXPORT_SYMBOL	 vmlinux 0x800a9202	km_policy_expired
+EXPORT_SYMBOL	 vmlinux 0x8011752e	fb_prepare_logo
+EXPORT_SYMBOL	 vmlinux 0x80123dd8	pskb_expand_head
+EXPORT_SYMBOL	 vmlinux 0x80292be6	pfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0x80295668	tcp_connect
+EXPORT_SYMBOL	 vmlinux 0x802d3546	filemap_fault
+EXPORT_SYMBOL	 vmlinux 0x80318b30	sg_copy_buffer
+EXPORT_SYMBOL	 vmlinux 0x803caaf1	neigh_lookup
+EXPORT_SYMBOL	 vmlinux 0x8052c37c	inet_csk_reqsk_queue_drop_and_put
+EXPORT_SYMBOL	 vmlinux 0x805485ab	__kfifo_out_r
+EXPORT_SYMBOL	 vmlinux 0x805e9530	pci_back_from_sleep
+EXPORT_SYMBOL	 vmlinux 0x805ee41f	blk_mq_init_sq_queue
+EXPORT_SYMBOL	 vmlinux 0x8069dac1	posix_acl_from_xattr
+EXPORT_SYMBOL	 vmlinux 0x806f2c92	tcw_set_tccb
+EXPORT_SYMBOL	 vmlinux 0x808cd5ed	netif_napi_del
+EXPORT_SYMBOL	 vmlinux 0x808e1977	dm_register_target
+EXPORT_SYMBOL	 vmlinux 0x809b42fc	qdisc_tree_reduce_backlog
+EXPORT_SYMBOL	 vmlinux 0x80b9cb5c	iov_iter_npages
+EXPORT_SYMBOL	 vmlinux 0x80c14f13	__inode_add_bytes
+EXPORT_SYMBOL	 vmlinux 0x80ca5026	_bin2bcd
+EXPORT_SYMBOL	 vmlinux 0x80ca5046	current_time
+EXPORT_SYMBOL	 vmlinux 0x80d68d3e	fb_register_client
+EXPORT_SYMBOL	 vmlinux 0x80d7f717	sg_zero_buffer
+EXPORT_SYMBOL	 vmlinux 0x8101773a	should_remove_suid
+EXPORT_SYMBOL	 vmlinux 0x81052791	kernel_write
+EXPORT_SYMBOL	 vmlinux 0x810cf2e9	security_inode_setsecctx
+EXPORT_SYMBOL	 vmlinux 0x8112b3d2	scsi_build_sense_buffer
+EXPORT_SYMBOL	 vmlinux 0x8128c039	smsg_register_callback
+EXPORT_SYMBOL	 vmlinux 0x812f78eb	xxh64_update
+EXPORT_SYMBOL	 vmlinux 0x814d5d16	zpool_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0x81506897	tcp_shutdown
+EXPORT_SYMBOL	 vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL	 vmlinux 0x815fc7ac	vmf_insert_pfn
+EXPORT_SYMBOL	 vmlinux 0x817b8add	__skb_get_hash
+EXPORT_SYMBOL	 vmlinux 0x818416e1	scsi_set_sense_information
+EXPORT_SYMBOL	 vmlinux 0x81844c9d	vmemdup_user
+EXPORT_SYMBOL	 vmlinux 0x81848a6f	inet_del_protocol
+EXPORT_SYMBOL	 vmlinux 0x81957707	__page_frag_cache_drain
+EXPORT_SYMBOL	 vmlinux 0x81ab5a51	inet6_csk_route_req
+EXPORT_SYMBOL	 vmlinux 0x81dacad1	__dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL	 vmlinux 0x81e8603a	set_device_ro
+EXPORT_SYMBOL	 vmlinux 0x81f02135	dma_direct_unmap_sg
+EXPORT_SYMBOL	 vmlinux 0x82068e4d	try_to_release_page
+EXPORT_SYMBOL	 vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL	 vmlinux 0x82095ee9	netif_set_real_num_tx_queues
+EXPORT_SYMBOL	 vmlinux 0x821094ce	__sk_queue_drop_skb
+EXPORT_SYMBOL	 vmlinux 0x8217143c	dma_fence_add_callback
+EXPORT_SYMBOL	 vmlinux 0x821b51c6	flow_rule_match_tcp
+EXPORT_SYMBOL	 vmlinux 0x82318946	prepare_kernel_cred
+EXPORT_SYMBOL	 vmlinux 0x8239a7bc	vlan_vid_del
+EXPORT_SYMBOL	 vmlinux 0x82447132	page_pool_create
+EXPORT_SYMBOL	 vmlinux 0x82513b7c	blk_queue_io_opt
+EXPORT_SYMBOL	 vmlinux 0x8263958a	devm_input_allocate_device
+EXPORT_SYMBOL	 vmlinux 0x8265ee6e	wait_on_page_bit_killable
+EXPORT_SYMBOL	 vmlinux 0x826a218c	__break_lease
+EXPORT_SYMBOL	 vmlinux 0x827dc5b3	unix_destruct_scm
+EXPORT_SYMBOL	 vmlinux 0x828062b1	__frontswap_init
+EXPORT_SYMBOL	 vmlinux 0x8290dc89	rtnl_set_sk_err
+EXPORT_SYMBOL	 vmlinux 0x82a73295	prepare_creds
+EXPORT_SYMBOL	 vmlinux 0x82b1b610	ccw_device_get_id
+EXPORT_SYMBOL	 vmlinux 0x82c2f005	kmalloc_order_trace
+EXPORT_SYMBOL	 vmlinux 0x82c6b326	tty_port_destroy
+EXPORT_SYMBOL	 vmlinux 0x82c87ad5	nr_online_nodes
+EXPORT_SYMBOL	 vmlinux 0x82d10931	dev_set_promiscuity
+EXPORT_SYMBOL	 vmlinux 0x82d980c5	flow_rule_match_enc_opts
+EXPORT_SYMBOL	 vmlinux 0x830cc692	pfifo_fast_ops
+EXPORT_SYMBOL	 vmlinux 0x832832a0	inet6_offloads
+EXPORT_SYMBOL	 vmlinux 0x834af082	configfs_remove_default_groups
+EXPORT_SYMBOL	 vmlinux 0x83581089	gf128mul_init_4k_lle
+EXPORT_SYMBOL	 vmlinux 0x8358bff7	tcp_child_process
+EXPORT_SYMBOL	 vmlinux 0x837b7b09	__dynamic_pr_debug
+EXPORT_SYMBOL	 vmlinux 0x838d2bc8	siphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x83b92825	dm_mq_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0x83c57bef	xfrm_lookup
+EXPORT_SYMBOL	 vmlinux 0x83c8fcb5	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x83db91d5	__register_chrdev
+EXPORT_SYMBOL	 vmlinux 0x83e1438d	raw3270_request_reset
+EXPORT_SYMBOL	 vmlinux 0x83f531a2	icmpv6_ndo_send
+EXPORT_SYMBOL	 vmlinux 0x84012e4b	tcf_action_check_ctrlact
+EXPORT_SYMBOL	 vmlinux 0x840342c6	sgl_free
+EXPORT_SYMBOL	 vmlinux 0x84085752	security_binder_transfer_file
+EXPORT_SYMBOL	 vmlinux 0x84169b29	register_md_personality
+EXPORT_SYMBOL	 vmlinux 0x8419202a	block_commit_write
+EXPORT_SYMBOL	 vmlinux 0x841dcd7a	xfrm_unregister_type_offload
+EXPORT_SYMBOL	 vmlinux 0x84283f27	unload_nls
+EXPORT_SYMBOL	 vmlinux 0x842f74a6	set_create_files_as
+EXPORT_SYMBOL	 vmlinux 0x843c3b05	md_set_array_sectors
+EXPORT_SYMBOL	 vmlinux 0x843efed0	gen_pool_dma_zalloc_align
+EXPORT_SYMBOL	 vmlinux 0x8445052f	bh_submit_read
+EXPORT_SYMBOL	 vmlinux 0x8465e825	proc_create
+EXPORT_SYMBOL	 vmlinux 0x847bf357	ap_perms_mutex
+EXPORT_SYMBOL	 vmlinux 0x84855a6a	mr_dump
+EXPORT_SYMBOL	 vmlinux 0x848d22b6	finish_wait
+EXPORT_SYMBOL	 vmlinux 0x849e1194	input_enable_softrepeat
+EXPORT_SYMBOL	 vmlinux 0x84b0877d	simple_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0x84c18f4f	ZSTD_decompress_usingDDict
+EXPORT_SYMBOL	 vmlinux 0x84c66a4d	__tracepoint_s390_diagnose
+EXPORT_SYMBOL	 vmlinux 0x84cce0af	flow_rule_match_icmp
+EXPORT_SYMBOL	 vmlinux 0x84d4c8cc	crc16
+EXPORT_SYMBOL	 vmlinux 0x84ea4a24	inet_select_addr
+EXPORT_SYMBOL	 vmlinux 0x84ea69cb	gro_find_receive_by_type
+EXPORT_SYMBOL	 vmlinux 0x852e608a	cdev_set_parent
+EXPORT_SYMBOL	 vmlinux 0x8534f583	pci_bus_alloc_resource
+EXPORT_SYMBOL	 vmlinux 0x85532eb1	__tracepoint_dma_fence_enable_signal
+EXPORT_SYMBOL	 vmlinux 0x85535291	inet_getname
+EXPORT_SYMBOL	 vmlinux 0x855abfcb	flow_rule_match_ports
+EXPORT_SYMBOL	 vmlinux 0x855d198f	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL	 vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL	 vmlinux 0x856e6cb6	dma_fence_chain_walk
+EXPORT_SYMBOL	 vmlinux 0x857a24ca	pci_find_resource
+EXPORT_SYMBOL	 vmlinux 0x858009b5	find_get_pages_range_tag
+EXPORT_SYMBOL	 vmlinux 0x8581c062	__module_put_and_exit
+EXPORT_SYMBOL	 vmlinux 0x85a3026f	__wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0x85abc85f	strncmp
+EXPORT_SYMBOL	 vmlinux 0x85aea1a4	unlock_page
+EXPORT_SYMBOL	 vmlinux 0x85bd1608	__request_region
+EXPORT_SYMBOL	 vmlinux 0x85d14264	trace_print_flags_seq
+EXPORT_SYMBOL	 vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL	 vmlinux 0x85e7b8b6	__bread_gfp
+EXPORT_SYMBOL	 vmlinux 0x85efc7e0	zero_pfn
+EXPORT_SYMBOL	 vmlinux 0x86020b49	__dynamic_ibdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x86226495	config_group_init_type_name
+EXPORT_SYMBOL	 vmlinux 0x86237388	arch_read_lock_wait
+EXPORT_SYMBOL	 vmlinux 0x862410e3	ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x862704d5	fscrypt_has_permitted_context
+EXPORT_SYMBOL	 vmlinux 0x862d2841	__xfrm_decode_session
+EXPORT_SYMBOL	 vmlinux 0x863a276a	color_table
+EXPORT_SYMBOL	 vmlinux 0x864b3974	udp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL	 vmlinux 0x8660e5f6	skb_checksum
+EXPORT_SYMBOL	 vmlinux 0x8665225e	skb_seq_read
+EXPORT_SYMBOL	 vmlinux 0x8676db46	get_random_bytes
+EXPORT_SYMBOL	 vmlinux 0x8679f1ce	pci_release_regions
+EXPORT_SYMBOL	 vmlinux 0x86838a09	prepare_to_wait
+EXPORT_SYMBOL	 vmlinux 0x8689d3f6	ZSTD_decompressBlock
+EXPORT_SYMBOL	 vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL	 vmlinux 0x8698fed1	__neigh_event_send
+EXPORT_SYMBOL	 vmlinux 0x869b66ba	jbd2_journal_lock_updates
+EXPORT_SYMBOL	 vmlinux 0x86a91d18	gro_cells_init
+EXPORT_SYMBOL	 vmlinux 0x86b25ff7	raw3270_request_set_idal
+EXPORT_SYMBOL	 vmlinux 0x86b57c83	xfrm_state_add
+EXPORT_SYMBOL	 vmlinux 0x86c79dd7	filp_open
+EXPORT_SYMBOL	 vmlinux 0x86ccda63	pcim_iounmap_regions
+EXPORT_SYMBOL	 vmlinux 0x86cf6223	__cleancache_put_page
+EXPORT_SYMBOL	 vmlinux 0x86e1e8a6	vfs_llseek
+EXPORT_SYMBOL	 vmlinux 0x86f6a586	init_task
+EXPORT_SYMBOL	 vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL	 vmlinux 0x86fbce61	mutex_trylock
+EXPORT_SYMBOL	 vmlinux 0x870bab9e	utf8ncursor
+EXPORT_SYMBOL	 vmlinux 0x8716ffed	dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0x872124ca	debug_register
+EXPORT_SYMBOL	 vmlinux 0x873137f3	dcbnl_ieee_notify
+EXPORT_SYMBOL	 vmlinux 0x8741eb71	page_get_link
+EXPORT_SYMBOL	 vmlinux 0x874ca06e	clear_inode
+EXPORT_SYMBOL	 vmlinux 0x8761c87b	rps_needed
+EXPORT_SYMBOL	 vmlinux 0x878b4137	dev_driver_string
+EXPORT_SYMBOL	 vmlinux 0x878f249f	dcb_ieee_delapp
+EXPORT_SYMBOL	 vmlinux 0x8796e9cc	neigh_event_ns
+EXPORT_SYMBOL	 vmlinux 0x87b61938	pcie_capability_clear_and_set_dword
+EXPORT_SYMBOL	 vmlinux 0x87b8798d	sg_next
+EXPORT_SYMBOL	 vmlinux 0x87d8894a	locks_copy_lock
+EXPORT_SYMBOL	 vmlinux 0x87db93c0	__netlink_kernel_create
+EXPORT_SYMBOL	 vmlinux 0x87e21e7a	compat_ptr_ioctl
+EXPORT_SYMBOL	 vmlinux 0x87ec1313	neigh_carrier_down
+EXPORT_SYMBOL	 vmlinux 0x881b280b	gnet_stats_start_copy
+EXPORT_SYMBOL	 vmlinux 0x881d5ab7	__alloc_skb
+EXPORT_SYMBOL	 vmlinux 0x881fb103	xfrm_spd_getinfo
+EXPORT_SYMBOL	 vmlinux 0x8833bc7e	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL	 vmlinux 0x883f3bc1	bd_set_size
+EXPORT_SYMBOL	 vmlinux 0x8845041d	rt_dst_clone
+EXPORT_SYMBOL	 vmlinux 0x884f680f	__dynamic_netdev_dbg
+EXPORT_SYMBOL	 vmlinux 0x88611a76	reuseport_detach_prog
+EXPORT_SYMBOL	 vmlinux 0x886b1e51	kstrtos8_from_user
+EXPORT_SYMBOL	 vmlinux 0x88822d38	unregister_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0x88a45580	remap_pfn_range
+EXPORT_SYMBOL	 vmlinux 0x88adb57a	filemap_check_errors
+EXPORT_SYMBOL	 vmlinux 0x88b3a316	blk_queue_update_dma_pad
+EXPORT_SYMBOL	 vmlinux 0x88bfabd6	dquot_alloc_inode
+EXPORT_SYMBOL	 vmlinux 0x88c4d715	xfrm_state_flush
+EXPORT_SYMBOL	 vmlinux 0x88cf8b93	ip6_err_gen_icmpv6_unreach
+EXPORT_SYMBOL	 vmlinux 0x88d62314	jbd2_journal_inode_ranged_write
+EXPORT_SYMBOL	 vmlinux 0x88d6b1e6	set_guest_storage_key
+EXPORT_SYMBOL	 vmlinux 0x88db9f48	__check_object_size
+EXPORT_SYMBOL	 vmlinux 0x88e1d0f0	page_frag_free
+EXPORT_SYMBOL	 vmlinux 0x88e72fca	seq_pad
+EXPORT_SYMBOL	 vmlinux 0x88eb55b2	inet_shutdown
+EXPORT_SYMBOL	 vmlinux 0x88efce0c	d_obtain_alias
+EXPORT_SYMBOL	 vmlinux 0x891d391f	current_in_userns
+EXPORT_SYMBOL	 vmlinux 0x893160a2	_dev_info
+EXPORT_SYMBOL	 vmlinux 0x8940e784	skb_copy_datagram_iter
+EXPORT_SYMBOL	 vmlinux 0x8961c949	__do_once_slow_done
+EXPORT_SYMBOL	 vmlinux 0x89621b96	__genradix_iter_peek
+EXPORT_SYMBOL	 vmlinux 0x8978011b	sock_diag_put_filterinfo
+EXPORT_SYMBOL	 vmlinux 0x897ee338	t10_pi_type1_ip
+EXPORT_SYMBOL	 vmlinux 0x898eb096	md_wakeup_thread
+EXPORT_SYMBOL	 vmlinux 0x89b3ade2	sha224_final
+EXPORT_SYMBOL	 vmlinux 0x89d37be9	dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x89ead4e5	scsi_register_interface
+EXPORT_SYMBOL	 vmlinux 0x89ef08cc	tcp_mtu_to_mss
+EXPORT_SYMBOL	 vmlinux 0x89f88d9c	__vfs_setxattr
+EXPORT_SYMBOL	 vmlinux 0x8a1784fa	path_get
+EXPORT_SYMBOL	 vmlinux 0x8a1ab4ee	timeval_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0x8a1d70ef	write_one_page
+EXPORT_SYMBOL	 vmlinux 0x8a23b5b9	param_get_int
+EXPORT_SYMBOL	 vmlinux 0x8a35c8e0	filemap_fdatawait_range
+EXPORT_SYMBOL	 vmlinux 0x8a4aaf7d	fget_raw
+EXPORT_SYMBOL	 vmlinux 0x8a5ed695	ethtool_rx_flow_rule_create
+EXPORT_SYMBOL	 vmlinux 0x8a62512b	md_cluster_ops
+EXPORT_SYMBOL	 vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL	 vmlinux 0x8a8e1257	neigh_parms_alloc
+EXPORT_SYMBOL	 vmlinux 0x8a92910e	sock_create_kern
+EXPORT_SYMBOL	 vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL	 vmlinux 0x8aab0ae9	empty_aops
+EXPORT_SYMBOL	 vmlinux 0x8ac3334b	net_dim_get_def_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x8ace0478	pci_iomap_wc
+EXPORT_SYMBOL	 vmlinux 0x8ad2c67f	tcp_seq_next
+EXPORT_SYMBOL	 vmlinux 0x8ae9422a	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL	 vmlinux 0x8b0088d1	LZ4_decompress_safe_usingDict
+EXPORT_SYMBOL	 vmlinux 0x8b0e490e	md_bitmap_start_sync
+EXPORT_SYMBOL	 vmlinux 0x8b158d88	configfs_register_subsystem
+EXPORT_SYMBOL	 vmlinux 0x8b3483ae	kill_pid
+EXPORT_SYMBOL	 vmlinux 0x8b3b268d	put_ipc_ns
+EXPORT_SYMBOL	 vmlinux 0x8b4fcc1b	dm_table_get_md
+EXPORT_SYMBOL	 vmlinux 0x8b55fd4f	hdmi_spd_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8b5b25c8	irq_cpu_rmap_add
+EXPORT_SYMBOL	 vmlinux 0x8b5c5a4b	single_release
+EXPORT_SYMBOL	 vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL	 vmlinux 0x8b63a648	I_BDEV
+EXPORT_SYMBOL	 vmlinux 0x8b684bae	scsi_print_sense_hdr
+EXPORT_SYMBOL	 vmlinux 0x8b7da893	inode_set_bytes
+EXPORT_SYMBOL	 vmlinux 0x8b8059bd	in_group_p
+EXPORT_SYMBOL	 vmlinux 0x8b855f8e	iget_failed
+EXPORT_SYMBOL	 vmlinux 0x8b8e1db9	skb_csum_hwoffload_help
+EXPORT_SYMBOL	 vmlinux 0x8b910be2	errseq_sample
+EXPORT_SYMBOL	 vmlinux 0x8b9ea582	ZSTD_copyDCtx
+EXPORT_SYMBOL	 vmlinux 0x8bc1f10e	tty_throttle
+EXPORT_SYMBOL	 vmlinux 0x8bc9fb22	pci_alloc_dev
+EXPORT_SYMBOL	 vmlinux 0x8bdb7a0e	wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x8bdfc47c	__mb_cache_entry_free
+EXPORT_SYMBOL	 vmlinux 0x8bf2029b	key_reject_and_link
+EXPORT_SYMBOL	 vmlinux 0x8bf5a507	ethtool_op_get_ts_info
+EXPORT_SYMBOL	 vmlinux 0x8c1a395b	inet_dgram_ops
+EXPORT_SYMBOL	 vmlinux 0x8c23f509	param_set_short
+EXPORT_SYMBOL	 vmlinux 0x8c34e329	padata_alloc_shell
+EXPORT_SYMBOL	 vmlinux 0x8c429466	vfs_iter_read
+EXPORT_SYMBOL	 vmlinux 0x8c4d86bf	pcie_set_mps
+EXPORT_SYMBOL	 vmlinux 0x8c4e35fa	__generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0x8c4e6f5d	pci_disable_link_state
+EXPORT_SYMBOL	 vmlinux 0x8c5fb6e2	mempool_init_node
+EXPORT_SYMBOL	 vmlinux 0x8c6592fc	hdmi_avi_infoframe_pack_only
+EXPORT_SYMBOL	 vmlinux 0x8c831c0c	__skb_checksum_complete
+EXPORT_SYMBOL	 vmlinux 0x8c875be0	tcw_init
+EXPORT_SYMBOL	 vmlinux 0x8c909974	udp_skb_destructor
+EXPORT_SYMBOL	 vmlinux 0x8c964efb	vmf_insert_mixed_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x8c97c4c6	ccw_device_tm_start_timeout
+EXPORT_SYMBOL	 vmlinux 0x8c9c1c6b	rtnl_unicast
+EXPORT_SYMBOL	 vmlinux 0x8caa174e	tty_port_init
+EXPORT_SYMBOL	 vmlinux 0x8caa5cd9	inet6_add_offload
+EXPORT_SYMBOL	 vmlinux 0x8cad61d6	arp_xmit
+EXPORT_SYMBOL	 vmlinux 0x8cb062a8	iucv_message_reply
+EXPORT_SYMBOL	 vmlinux 0x8cb544df	__tracepoint_kmalloc
+EXPORT_SYMBOL	 vmlinux 0x8ce0d6a7	__f_setown
+EXPORT_SYMBOL	 vmlinux 0x8ce1a5ee	sock_release
+EXPORT_SYMBOL	 vmlinux 0x8cfdfc2c	raw_copy_to_user
+EXPORT_SYMBOL	 vmlinux 0x8d14e6dc	xfrm4_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0x8d1aa106	zpci_report_error
+EXPORT_SYMBOL	 vmlinux 0x8d1ce3d8	ap_driver_unregister
+EXPORT_SYMBOL	 vmlinux 0x8d2f89f3	gnet_stats_copy_rate_est
+EXPORT_SYMBOL	 vmlinux 0x8d3b61b6	vfs_get_fsid
+EXPORT_SYMBOL	 vmlinux 0x8d4b71f6	blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0x8d55bb8a	qid_eq
+EXPORT_SYMBOL	 vmlinux 0x8d575c3d	ioctl_by_bdev
+EXPORT_SYMBOL	 vmlinux 0x8d5aba95	request_key_rcu
+EXPORT_SYMBOL	 vmlinux 0x8d6634ed	fget
+EXPORT_SYMBOL	 vmlinux 0x8d73278e	hex_asc_upper
+EXPORT_SYMBOL	 vmlinux 0x8d7c4fa1	napi_disable
+EXPORT_SYMBOL	 vmlinux 0x8da5268b	generic_pipe_buf_confirm
+EXPORT_SYMBOL	 vmlinux 0x8db096a7	iov_iter_alignment
+EXPORT_SYMBOL	 vmlinux 0x8dd4c422	md_check_recovery
+EXPORT_SYMBOL	 vmlinux 0x8ddd8aad	schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0x8de02e45	__inet6_lookup_established
+EXPORT_SYMBOL	 vmlinux 0x8de09c6a	inet_frags_fini
+EXPORT_SYMBOL	 vmlinux 0x8deb8e96	fs_context_for_submount
+EXPORT_SYMBOL	 vmlinux 0x8df9dd10	guid_null
+EXPORT_SYMBOL	 vmlinux 0x8e0d93aa	d_move
+EXPORT_SYMBOL	 vmlinux 0x8e0e1951	__blockdev_direct_IO
+EXPORT_SYMBOL	 vmlinux 0x8e53148a	__hw_addr_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x8e8b11a2	init_net
+EXPORT_SYMBOL	 vmlinux 0x8e9eab61	check_zeroed_user
+EXPORT_SYMBOL	 vmlinux 0x8ec7f250	dma_fence_free
+EXPORT_SYMBOL	 vmlinux 0x8ed15215	seq_file_path
+EXPORT_SYMBOL	 vmlinux 0x8efdad3a	scsi_remove_host
+EXPORT_SYMBOL	 vmlinux 0x8f26c798	dm_kcopyd_copy
+EXPORT_SYMBOL	 vmlinux 0x8f54b7cf	padata_remove_cpu
+EXPORT_SYMBOL	 vmlinux 0x8f5e4e92	nf_unregister_queue_handler
+EXPORT_SYMBOL	 vmlinux 0x8f636d23	kstrtol_from_user
+EXPORT_SYMBOL	 vmlinux 0x8f746257	__nla_put_nohdr
+EXPORT_SYMBOL	 vmlinux 0x8f89145e	blk_rq_map_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0x8f96fdf4	prepare_to_wait_event
+EXPORT_SYMBOL	 vmlinux 0x8f996a30	ethtool_convert_legacy_u32_to_link_mode
+EXPORT_SYMBOL	 vmlinux 0x8f9a68b2	__tcp_md5_do_lookup
+EXPORT_SYMBOL	 vmlinux 0x8fb6632c	register_key_type
+EXPORT_SYMBOL	 vmlinux 0x8fb7ae5d	kmem_cache_free_bulk
+EXPORT_SYMBOL	 vmlinux 0x8fb7c9cd	input_setup_polling
+EXPORT_SYMBOL	 vmlinux 0x8fb8f016	fscrypt_get_ctx
+EXPORT_SYMBOL	 vmlinux 0x8fe609d4	ip_check_defrag
+EXPORT_SYMBOL	 vmlinux 0x8ff75f0d	dquot_disable
+EXPORT_SYMBOL	 vmlinux 0x8ff89ed0	seg6_hmac_exit
+EXPORT_SYMBOL	 vmlinux 0x8ffd47a3	jbd2_journal_submit_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0x90288593	end_buffer_write_sync
+EXPORT_SYMBOL	 vmlinux 0x90582995	gnet_stats_copy_basic_hw
+EXPORT_SYMBOL	 vmlinux 0x9060e0fb	__pskb_pull_tail
+EXPORT_SYMBOL	 vmlinux 0x907578e7	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL	 vmlinux 0x9081fcb2	__dev_get_by_flags
+EXPORT_SYMBOL	 vmlinux 0x90852552	jbd2_journal_abort
+EXPORT_SYMBOL	 vmlinux 0x90909058	dma_direct_map_page
+EXPORT_SYMBOL	 vmlinux 0x90e1c71d	remove_arg_zero
+EXPORT_SYMBOL	 vmlinux 0x90e23abc	tty_port_close
+EXPORT_SYMBOL	 vmlinux 0x90edfe31	pci_get_device
+EXPORT_SYMBOL	 vmlinux 0x90fac806	dma_resv_reserve_shared
+EXPORT_SYMBOL	 vmlinux 0x910c7a0c	alloc_pages_exact
+EXPORT_SYMBOL	 vmlinux 0x9112e704	blk_rq_map_sg
+EXPORT_SYMBOL	 vmlinux 0x9116b417	save_fpu_regs
+EXPORT_SYMBOL	 vmlinux 0x9126c8e3	seq_put_decimal_ll
+EXPORT_SYMBOL	 vmlinux 0x916812a7	put_cmsg_scm_timestamping
+EXPORT_SYMBOL	 vmlinux 0x917797e0	xsk_umem_complete_tx
+EXPORT_SYMBOL	 vmlinux 0x919ad89b	register_gifconf
+EXPORT_SYMBOL	 vmlinux 0x919c43c7	mutex_unlock
+EXPORT_SYMBOL	 vmlinux 0x919c58f3	__clzsi2
+EXPORT_SYMBOL	 vmlinux 0x91a7b1da	qdisc_class_hash_remove
+EXPORT_SYMBOL	 vmlinux 0x91b50222	input_mt_report_finger_count
+EXPORT_SYMBOL	 vmlinux 0x91c00dea	raw3270_del_view
+EXPORT_SYMBOL	 vmlinux 0x91cb7c75	kmem_cache_create
+EXPORT_SYMBOL	 vmlinux 0x91d14935	sk_alloc
+EXPORT_SYMBOL	 vmlinux 0x91d8bc65	fib_default_rule_add
+EXPORT_SYMBOL	 vmlinux 0x91e378d8	dev_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0x91f808e6	compat_ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x91fa5765	skb_udp_tunnel_segment
+EXPORT_SYMBOL	 vmlinux 0x9215acaa	md_bitmap_unplug
+EXPORT_SYMBOL	 vmlinux 0x92215f8a	udp_push_pending_frames
+EXPORT_SYMBOL	 vmlinux 0x922f45a6	__bitmap_clear
+EXPORT_SYMBOL	 vmlinux 0x9232280e	inet_sk_rx_dst_set
+EXPORT_SYMBOL	 vmlinux 0x92495e90	dev_pick_tx_cpu_id
+EXPORT_SYMBOL	 vmlinux 0x924ed522	netdev_refcnt_read
+EXPORT_SYMBOL	 vmlinux 0x926fd487	__nlmsg_put
+EXPORT_SYMBOL	 vmlinux 0x9287868c	inc_nlink
+EXPORT_SYMBOL	 vmlinux 0x9297458a	ip6_find_1stfragopt
+EXPORT_SYMBOL	 vmlinux 0x92b0471f	cdev_device_del
+EXPORT_SYMBOL	 vmlinux 0x92bcf752	tcp_time_wait
+EXPORT_SYMBOL	 vmlinux 0x92cea93b	skb_copy_header
+EXPORT_SYMBOL	 vmlinux 0x92d6ea76	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL	 vmlinux 0x92ec510d	jiffies64_to_msecs
+EXPORT_SYMBOL	 vmlinux 0x9305bf68	find_next_and_bit
+EXPORT_SYMBOL	 vmlinux 0x932c2539	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0x932f6fbd	pci_scan_bridge
+EXPORT_SYMBOL	 vmlinux 0x933d0597	bdev_read_only
+EXPORT_SYMBOL	 vmlinux 0x9358c593	__hw_addr_ref_unsync_dev
+EXPORT_SYMBOL	 vmlinux 0x9375b1c9	xfrm_policy_alloc
+EXPORT_SYMBOL	 vmlinux 0x937733e3	qid_valid
+EXPORT_SYMBOL	 vmlinux 0x9397295f	bioset_exit
+EXPORT_SYMBOL	 vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL	 vmlinux 0x93af4049	skb_dequeue_tail
+EXPORT_SYMBOL	 vmlinux 0x93b3fc74	register_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x93ba34e8	generic_pipe_buf_steal
+EXPORT_SYMBOL	 vmlinux 0x93bfb7bd	down_write_trylock
+EXPORT_SYMBOL	 vmlinux 0x93e3ad56	nf_register_net_hook
+EXPORT_SYMBOL	 vmlinux 0x93f19ce8	simple_open
+EXPORT_SYMBOL	 vmlinux 0x93f61741	security_task_getsecid
+EXPORT_SYMBOL	 vmlinux 0x940261e1	_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0x9404602d	locks_mandatory_area
+EXPORT_SYMBOL	 vmlinux 0x9409f231	tcf_em_register
+EXPORT_SYMBOL	 vmlinux 0x9428f816	dim_turn
+EXPORT_SYMBOL	 vmlinux 0x942f4c5c	iucv_message_reject
+EXPORT_SYMBOL	 vmlinux 0x943229be	seq_put_decimal_ull
+EXPORT_SYMBOL	 vmlinux 0x944375db	_totalram_pages
+EXPORT_SYMBOL	 vmlinux 0x9447362f	dquot_transfer
+EXPORT_SYMBOL	 vmlinux 0x944a1993	filemap_page_mkwrite
+EXPORT_SYMBOL	 vmlinux 0x944a564d	is_console_locked
+EXPORT_SYMBOL	 vmlinux 0x944db02f	kmem_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0x944f295c	__find_get_block
+EXPORT_SYMBOL	 vmlinux 0x945775a5	segment_save
+EXPORT_SYMBOL	 vmlinux 0x9470d357	dma_resv_fini
+EXPORT_SYMBOL	 vmlinux 0x9470eaff	d_invalidate
+EXPORT_SYMBOL	 vmlinux 0x94863c11	__udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL	 vmlinux 0x94bf03ca	utf8_to_utf32
+EXPORT_SYMBOL	 vmlinux 0x94c6c172	sock_init_data_uid
+EXPORT_SYMBOL	 vmlinux 0x94f31333	dump_fpu
+EXPORT_SYMBOL	 vmlinux 0x9514151a	_mcount
+EXPORT_SYMBOL	 vmlinux 0x951a2dfe	iucv_path_accept
+EXPORT_SYMBOL	 vmlinux 0x9530da8e	node_data
+EXPORT_SYMBOL	 vmlinux 0x953adc3b	dma_fence_get_status
+EXPORT_SYMBOL	 vmlinux 0x9542faf7	sclp_unregister
+EXPORT_SYMBOL	 vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL	 vmlinux 0x954cef6f	init_on_alloc
+EXPORT_SYMBOL	 vmlinux 0x954f099c	idr_preload
+EXPORT_SYMBOL	 vmlinux 0x956a7cfc	tcf_chain_put_by_act
+EXPORT_SYMBOL	 vmlinux 0x957fa548	skb_copy_datagram_from_iter
+EXPORT_SYMBOL	 vmlinux 0x9581ea62	kstrtouint_from_user
+EXPORT_SYMBOL	 vmlinux 0x95a06eb1	dma_fence_default_wait
+EXPORT_SYMBOL	 vmlinux 0x95ad0a6d	mark_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0x95b38ccc	resource_list_create_entry
+EXPORT_SYMBOL	 vmlinux 0x95cc7ce1	vfs_mkobj
+EXPORT_SYMBOL	 vmlinux 0x95ceb864	key_update
+EXPORT_SYMBOL	 vmlinux 0x95d7b4f4	sock_wfree
+EXPORT_SYMBOL	 vmlinux 0x95e63ced	prot_virt_host
+EXPORT_SYMBOL	 vmlinux 0x96404e39	itcw_set_data
+EXPORT_SYMBOL	 vmlinux 0x9643019a	netdev_rx_csum_fault
+EXPORT_SYMBOL	 vmlinux 0x964d94b2	generic_file_llseek_size
+EXPORT_SYMBOL	 vmlinux 0x966811aa	scsi_rescan_device
+EXPORT_SYMBOL	 vmlinux 0x9669ecc8	monotonic_clock
+EXPORT_SYMBOL	 vmlinux 0x966d36c1	kmem_cache_create_usercopy
+EXPORT_SYMBOL	 vmlinux 0x96749f20	down_read_killable
+EXPORT_SYMBOL	 vmlinux 0x96a396f3	blk_integrity_register
+EXPORT_SYMBOL	 vmlinux 0x96a4fbd2	framebuffer_alloc
+EXPORT_SYMBOL	 vmlinux 0x96c17136	fb_var_to_videomode
+EXPORT_SYMBOL	 vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL	 vmlinux 0x96dc9f44	fb_pan_display
+EXPORT_SYMBOL	 vmlinux 0x96e0d0f7	rdmacg_try_charge
+EXPORT_SYMBOL	 vmlinux 0x96e45d5b	sock_alloc_send_pskb
+EXPORT_SYMBOL	 vmlinux 0x96e7b1c6	md_bitmap_sync_with_cluster
+EXPORT_SYMBOL	 vmlinux 0x96f1a829	bdev_dax_pgoff
+EXPORT_SYMBOL	 vmlinux 0x96fab350	dim_park_on_top
+EXPORT_SYMBOL	 vmlinux 0x96fad3cb	mnt_drop_write_file
+EXPORT_SYMBOL	 vmlinux 0x9704a73d	d_make_root
+EXPORT_SYMBOL	 vmlinux 0x971162ff	pci_enable_ptm
+EXPORT_SYMBOL	 vmlinux 0x97159a1d	key_invalidate
+EXPORT_SYMBOL	 vmlinux 0x97159ed8	ns_capable_noaudit
+EXPORT_SYMBOL	 vmlinux 0x9717f9ed	get_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0x972ea389	dev_change_proto_down_generic
+EXPORT_SYMBOL	 vmlinux 0x974d0924	__kernel_cpumcf_begin
+EXPORT_SYMBOL	 vmlinux 0x97615228	tcp_v4_do_rcv
+EXPORT_SYMBOL	 vmlinux 0x97681235	fd_install
+EXPORT_SYMBOL	 vmlinux 0x976d1f08	handle_edge_irq
+EXPORT_SYMBOL	 vmlinux 0x97934ecf	del_timer_sync
+EXPORT_SYMBOL	 vmlinux 0x979677c0	__vfs_removexattr
+EXPORT_SYMBOL	 vmlinux 0x97ad8b2e	netdev_txq_to_tc
+EXPORT_SYMBOL	 vmlinux 0x97adb487	utf8s_to_utf16s
+EXPORT_SYMBOL	 vmlinux 0x97bdfa60	scsi_dev_info_remove_list
+EXPORT_SYMBOL	 vmlinux 0x97df0464	redraw_screen
+EXPORT_SYMBOL	 vmlinux 0x9814cd59	sock_from_file
+EXPORT_SYMBOL	 vmlinux 0x9820eae4	dmam_alloc_attrs
+EXPORT_SYMBOL	 vmlinux 0x9837f437	seq_puts
+EXPORT_SYMBOL	 vmlinux 0x984ce9bd	__nla_parse
+EXPORT_SYMBOL	 vmlinux 0x985b4928	km_policy_notify
+EXPORT_SYMBOL	 vmlinux 0x985d3f52	unregister_framebuffer
+EXPORT_SYMBOL	 vmlinux 0x9886f588	ip6_dst_alloc
+EXPORT_SYMBOL	 vmlinux 0x98a157e2	kernel_connect
+EXPORT_SYMBOL	 vmlinux 0x98baf39c	neigh_changeaddr
+EXPORT_SYMBOL	 vmlinux 0x98c88497	simple_unlink
+EXPORT_SYMBOL	 vmlinux 0x98c89ade	security_xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0x98de1c15	snprintf
+EXPORT_SYMBOL	 vmlinux 0x98e305a8	crypto_sha512_finup
+EXPORT_SYMBOL	 vmlinux 0x98e508ef	ignore_console_lock_warning
+EXPORT_SYMBOL	 vmlinux 0x9901d880	tty_register_device
+EXPORT_SYMBOL	 vmlinux 0x99030787	cdev_alloc
+EXPORT_SYMBOL	 vmlinux 0x9924d458	get_random_bytes_arch
+EXPORT_SYMBOL	 vmlinux 0x9942ec77	itcw_finalize
+EXPORT_SYMBOL	 vmlinux 0x99517682	udp_encap_enable
+EXPORT_SYMBOL	 vmlinux 0x9964fbfc	__pci_register_driver
+EXPORT_SYMBOL	 vmlinux 0x9993946f	tcp_getsockopt
+EXPORT_SYMBOL	 vmlinux 0x999d8f15	linkwatch_fire_event
+EXPORT_SYMBOL	 vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL	 vmlinux 0x99a00bad	d_find_alias
+EXPORT_SYMBOL	 vmlinux 0x99a6cbf4	_dev_crit
+EXPORT_SYMBOL	 vmlinux 0x99a7ccf9	block_write_end
+EXPORT_SYMBOL	 vmlinux 0x99c12575	pci_pme_active
+EXPORT_SYMBOL	 vmlinux 0x99d472b1	net_dim_get_rx_moderation
+EXPORT_SYMBOL	 vmlinux 0x99daa9bf	try_offline_node
+EXPORT_SYMBOL	 vmlinux 0x99e1e301	bdi_alloc_node
+EXPORT_SYMBOL	 vmlinux 0x99ed7a70	md_write_end
+EXPORT_SYMBOL	 vmlinux 0x99fd6d31	kernel_sendmsg
+EXPORT_SYMBOL	 vmlinux 0x9a09ec46	kbd_free
+EXPORT_SYMBOL	 vmlinux 0x9a0a0c04	__krealloc
+EXPORT_SYMBOL	 vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL	 vmlinux 0x9a1fc4b4	jiffies_to_timeval
+EXPORT_SYMBOL	 vmlinux 0x9a3d8ec3	cdrom_mode_sense
+EXPORT_SYMBOL	 vmlinux 0x9a4d89bb	neigh_proc_dointvec_ms_jiffies
+EXPORT_SYMBOL	 vmlinux 0x9a4e0bf3	scsi_set_medium_removal
+EXPORT_SYMBOL	 vmlinux 0x9a4e8140	alloc_pages_current
+EXPORT_SYMBOL	 vmlinux 0x9a525867	seq_release_private
+EXPORT_SYMBOL	 vmlinux 0x9a583306	netlbl_bitmap_walk
+EXPORT_SYMBOL	 vmlinux 0x9a60145d	md_reap_sync_thread
+EXPORT_SYMBOL	 vmlinux 0x9a78c86f	sched_autogroup_detach
+EXPORT_SYMBOL	 vmlinux 0x9a814b75	pcie_capability_clear_and_set_word
+EXPORT_SYMBOL	 vmlinux 0x9a8c638a	vfs_tmpfile
+EXPORT_SYMBOL	 vmlinux 0x9a906daf	memscan
+EXPORT_SYMBOL	 vmlinux 0x9aac010c	pci_clear_mwi
+EXPORT_SYMBOL	 vmlinux 0x9aaea71a	blk_queue_segment_boundary
+EXPORT_SYMBOL	 vmlinux 0x9aaeefce	sysctl_nf_log_all_netns
+EXPORT_SYMBOL	 vmlinux 0x9ab06e70	nf_register_net_hooks
+EXPORT_SYMBOL	 vmlinux 0x9ab6c6bb	skb_flow_dissector_init
+EXPORT_SYMBOL	 vmlinux 0x9ab6e565	locks_copy_conflock
+EXPORT_SYMBOL	 vmlinux 0x9ac193d7	tty_flip_buffer_push
+EXPORT_SYMBOL	 vmlinux 0x9ac8e0b2	dma_cache_sync
+EXPORT_SYMBOL	 vmlinux 0x9acce54c	vfs_setpos
+EXPORT_SYMBOL	 vmlinux 0x9ad02cbd	vm_map_pages_zero
+EXPORT_SYMBOL	 vmlinux 0x9b0f80a0	elv_rb_del
+EXPORT_SYMBOL	 vmlinux 0x9b1178dd	touch_buffer
+EXPORT_SYMBOL	 vmlinux 0x9b2560b9	gf128mul_init_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0x9b27af1c	__xfrm_dst_lookup
+EXPORT_SYMBOL	 vmlinux 0x9b33e0d7	unregister_dcbevent_notifier
+EXPORT_SYMBOL	 vmlinux 0x9b61f3bc	fb_show_logo
+EXPORT_SYMBOL	 vmlinux 0x9b7f26bc	jbd2_journal_force_commit
+EXPORT_SYMBOL	 vmlinux 0x9b8d07aa	strnlen
+EXPORT_SYMBOL	 vmlinux 0x9b8dc57e	pci_iomap_wc_range
+EXPORT_SYMBOL	 vmlinux 0x9b9547aa	qdisc_create_dflt
+EXPORT_SYMBOL	 vmlinux 0x9bc62df2	try_wait_for_completion
+EXPORT_SYMBOL	 vmlinux 0x9bcbf24c	set_security_override_from_ctx
+EXPORT_SYMBOL	 vmlinux 0x9bcd88b7	nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0x9beb049b	fscrypt_inherit_context
+EXPORT_SYMBOL	 vmlinux 0x9bf1873a	__cleancache_init_shared_fs
+EXPORT_SYMBOL	 vmlinux 0x9c0821ea	vsnprintf
+EXPORT_SYMBOL	 vmlinux 0x9c1905d5	csum_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0x9c2219eb	send_sig_mceerr
+EXPORT_SYMBOL	 vmlinux 0x9c280cea	blkdev_get_by_path
+EXPORT_SYMBOL	 vmlinux 0x9c31dd0e	mdiobus_setup_mdiodev_from_board_info
+EXPORT_SYMBOL	 vmlinux 0x9c4246bd	devm_memremap
+EXPORT_SYMBOL	 vmlinux 0x9c4654eb	prepare_binprm
+EXPORT_SYMBOL	 vmlinux 0x9c5f2e96	dst_init
+EXPORT_SYMBOL	 vmlinux 0x9c622901	sock_queue_err_skb
+EXPORT_SYMBOL	 vmlinux 0x9c8fabad	raw3270_request_free
+EXPORT_SYMBOL	 vmlinux 0x9ca95a0e	sort
+EXPORT_SYMBOL	 vmlinux 0x9ca9e35d	__breadahead
+EXPORT_SYMBOL	 vmlinux 0x9cbaed89	configfs_undepend_item
+EXPORT_SYMBOL	 vmlinux 0x9cdc7d85	update_region
+EXPORT_SYMBOL	 vmlinux 0x9cdfb3f7	sysctl_fb_tunnels_only_for_init_net
+EXPORT_SYMBOL	 vmlinux 0x9ce36eb0	nf_log_unbind_pf
+EXPORT_SYMBOL	 vmlinux 0x9cf00f7b	simple_setattr
+EXPORT_SYMBOL	 vmlinux 0x9cf680d0	d_delete
+EXPORT_SYMBOL	 vmlinux 0x9cffad53	ip_mc_check_igmp
+EXPORT_SYMBOL	 vmlinux 0x9d07efda	jbd2_journal_set_triggers
+EXPORT_SYMBOL	 vmlinux 0x9d0d6206	unregister_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0x9d509dca	init_opal_dev
+EXPORT_SYMBOL	 vmlinux 0x9d5304b5	xdp_get_umem_from_qid
+EXPORT_SYMBOL	 vmlinux 0x9d619eec	__zerocopy_sg_from_iter
+EXPORT_SYMBOL	 vmlinux 0x9d62f98f	write_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0x9d78f2bd	generic_file_readonly_mmap
+EXPORT_SYMBOL	 vmlinux 0x9da3a5ca	fb_blank
+EXPORT_SYMBOL	 vmlinux 0x9daab356	dev_remove_pack
+EXPORT_SYMBOL	 vmlinux 0x9dc5e8c2	__cgroup_bpf_check_dev_permission
+EXPORT_SYMBOL	 vmlinux 0x9dd9e88e	sync_inode
+EXPORT_SYMBOL	 vmlinux 0x9ddc88a2	grab_cache_page_write_begin
+EXPORT_SYMBOL	 vmlinux 0x9df49b9c	fscrypt_free_inode
+EXPORT_SYMBOL	 vmlinux 0x9df81db4	___ratelimit
+EXPORT_SYMBOL	 vmlinux 0x9df96622	ip_fraglist_prepare
+EXPORT_SYMBOL	 vmlinux 0x9dff5361	xfrm_policy_insert
+EXPORT_SYMBOL	 vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL	 vmlinux 0x9e0fa5ae	hsiphash_3u32
+EXPORT_SYMBOL	 vmlinux 0x9e13f6f6	gf128mul_lle
+EXPORT_SYMBOL	 vmlinux 0x9e154d9e	adjust_managed_page_count
+EXPORT_SYMBOL	 vmlinux 0x9e3566a6	ns_capable
+EXPORT_SYMBOL	 vmlinux 0x9e3f7be1	__xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0x9e3fb6a0	devm_request_any_context_irq
+EXPORT_SYMBOL	 vmlinux 0x9e3ff2d5	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL	 vmlinux 0x9e4de165	textsearch_find_continuous
+EXPORT_SYMBOL	 vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL	 vmlinux 0x9e61bb05	set_freezable
+EXPORT_SYMBOL	 vmlinux 0x9e79b515	jbd2_journal_errno
+EXPORT_SYMBOL	 vmlinux 0x9e92d3a7	blk_queue_chunk_sectors
+EXPORT_SYMBOL	 vmlinux 0x9e941ffd	blk_mq_init_queue
+EXPORT_SYMBOL	 vmlinux 0x9e9fb577	xfrm_state_delete_tunnel
+EXPORT_SYMBOL	 vmlinux 0x9e9fdd9d	memunmap
+EXPORT_SYMBOL	 vmlinux 0x9ec08598	eth_type_trans
+EXPORT_SYMBOL	 vmlinux 0x9ec6ca96	ktime_get_real_ts64
+EXPORT_SYMBOL	 vmlinux 0x9eebb528	ndo_dflt_fdb_dump
+EXPORT_SYMBOL	 vmlinux 0x9f081fc2	inet_confirm_addr
+EXPORT_SYMBOL	 vmlinux 0x9f1581d9	security_sk_classify_flow
+EXPORT_SYMBOL	 vmlinux 0x9f24646e	__debug_sprintf_exception
+EXPORT_SYMBOL	 vmlinux 0x9f32ac74	__hw_addr_ref_sync_dev
+EXPORT_SYMBOL	 vmlinux 0x9f409ae6	__ip4_datagram_connect
+EXPORT_SYMBOL	 vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL	 vmlinux 0x9f50b770	keyring_restrict
+EXPORT_SYMBOL	 vmlinux 0x9f54ead7	gro_cells_destroy
+EXPORT_SYMBOL	 vmlinux 0x9f5d9393	utf8nagemax
+EXPORT_SYMBOL	 vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL	 vmlinux 0x9fa7184a	cancel_delayed_work_sync
+EXPORT_SYMBOL	 vmlinux 0x9fb1d0ed	uuid_is_valid
+EXPORT_SYMBOL	 vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL	 vmlinux 0x9febb4fd	debug_sprintf_view
+EXPORT_SYMBOL	 vmlinux 0x9feed7ce	timer_reduce
+EXPORT_SYMBOL	 vmlinux 0x9ffa3a75	netdev_max_backlog
+EXPORT_SYMBOL	 vmlinux 0xa02c74bd	compat_ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xa0436e98	in6addr_linklocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xa054e8ed	iucv_unregister
+EXPORT_SYMBOL	 vmlinux 0xa084749a	__bitmap_or
+EXPORT_SYMBOL	 vmlinux 0xa095e02e	generic_check_addressable
+EXPORT_SYMBOL	 vmlinux 0xa0a1280b	path_nosuid
+EXPORT_SYMBOL	 vmlinux 0xa0a15b49	smp_call_function_many
+EXPORT_SYMBOL	 vmlinux 0xa0a45805	sk_capable
+EXPORT_SYMBOL	 vmlinux 0xa0aa1b34	tc_setup_cb_add
+EXPORT_SYMBOL	 vmlinux 0xa0ae1e73	siphash_3u64
+EXPORT_SYMBOL	 vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL	 vmlinux 0xa0b50596	vfs_get_super
+EXPORT_SYMBOL	 vmlinux 0xa0b911a5	netif_carrier_on
+EXPORT_SYMBOL	 vmlinux 0xa0d2643a	is_bad_inode
+EXPORT_SYMBOL	 vmlinux 0xa0d3d560	ksize
+EXPORT_SYMBOL	 vmlinux 0xa0dad88e	netdev_adjacent_get_private
+EXPORT_SYMBOL	 vmlinux 0xa0e86590	dev_add_pack
+EXPORT_SYMBOL	 vmlinux 0xa0eae826	smp_call_function
+EXPORT_SYMBOL	 vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL	 vmlinux 0xa0f24a11	register_sysctl_paths
+EXPORT_SYMBOL	 vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL	 vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL	 vmlinux 0xa10a0439	kmalloc_order
+EXPORT_SYMBOL	 vmlinux 0xa1189662	sk_reset_timer
+EXPORT_SYMBOL	 vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL	 vmlinux 0xa1237386	ccw_device_set_online
+EXPORT_SYMBOL	 vmlinux 0xa126c93f	__xa_alloc_cyclic
+EXPORT_SYMBOL	 vmlinux 0xa1345c55	pcie_get_readrq
+EXPORT_SYMBOL	 vmlinux 0xa13c9739	do_wait_intr_irq
+EXPORT_SYMBOL	 vmlinux 0xa146b02b	fscrypt_encrypt_pagecache_blocks
+EXPORT_SYMBOL	 vmlinux 0xa149140f	csum_and_copy_from_iter
+EXPORT_SYMBOL	 vmlinux 0xa168de30	ping_prot
+EXPORT_SYMBOL	 vmlinux 0xa16d2f99	pci_enable_atomic_ops_to_root
+EXPORT_SYMBOL	 vmlinux 0xa16f9b90	set_user_nice
+EXPORT_SYMBOL	 vmlinux 0xa177e81e	config_group_init
+EXPORT_SYMBOL	 vmlinux 0xa1a8cc6c	crc_ccitt_false
+EXPORT_SYMBOL	 vmlinux 0xa1b1130c	dev_mc_del
+EXPORT_SYMBOL	 vmlinux 0xa1c45449	pci_read_config_word
+EXPORT_SYMBOL	 vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL	 vmlinux 0xa1d5979b	find_first_bit_inv
+EXPORT_SYMBOL	 vmlinux 0xa1e63aad	get_bitmap_from_slot
+EXPORT_SYMBOL	 vmlinux 0xa1ec8f1c	__kfifo_to_user_r
+EXPORT_SYMBOL	 vmlinux 0xa1f0cf7b	register_md_cluster_operations
+EXPORT_SYMBOL	 vmlinux 0xa1f4e674	radix_tree_tag_set
+EXPORT_SYMBOL	 vmlinux 0xa1fee353	tcw_set_tsb
+EXPORT_SYMBOL	 vmlinux 0xa2060911	inet_current_timestamp
+EXPORT_SYMBOL	 vmlinux 0xa23bbedd	kobject_del
+EXPORT_SYMBOL	 vmlinux 0xa24f23d8	__request_module
+EXPORT_SYMBOL	 vmlinux 0xa2534ddb	netdev_warn
+EXPORT_SYMBOL	 vmlinux 0xa25b90ab	utf8byte
+EXPORT_SYMBOL	 vmlinux 0xa263892b	fscrypt_fname_free_buffer
+EXPORT_SYMBOL	 vmlinux 0xa26700d0	skb_split
+EXPORT_SYMBOL	 vmlinux 0xa273369d	ip6_frag_next
+EXPORT_SYMBOL	 vmlinux 0xa28cfcc0	gen_estimator_active
+EXPORT_SYMBOL	 vmlinux 0xa2c5dd32	truncate_pagecache_range
+EXPORT_SYMBOL	 vmlinux 0xa2cc9971	skb_put
+EXPORT_SYMBOL	 vmlinux 0xa2fc75e7	trace_print_hex_seq
+EXPORT_SYMBOL	 vmlinux 0xa2fd2a35	netdev_set_sb_channel
+EXPORT_SYMBOL	 vmlinux 0xa30f90e4	pci_request_selected_regions
+EXPORT_SYMBOL	 vmlinux 0xa31ca5f6	kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xa325f666	super_setup_bdi_name
+EXPORT_SYMBOL	 vmlinux 0xa32789ae	sk_stream_error
+EXPORT_SYMBOL	 vmlinux 0xa32f6405	sync_inode_metadata
+EXPORT_SYMBOL	 vmlinux 0xa3320a3a	dma_direct_map_resource
+EXPORT_SYMBOL	 vmlinux 0xa3356ef5	fscrypt_get_encryption_info
+EXPORT_SYMBOL	 vmlinux 0xa33e738e	dquot_quotactl_sysfile_ops
+EXPORT_SYMBOL	 vmlinux 0xa33f7c7c	nla_strlcpy
+EXPORT_SYMBOL	 vmlinux 0xa366fbd4	dev_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xa36d2ae8	dev_uc_unsync
+EXPORT_SYMBOL	 vmlinux 0xa388c3d9	dup_iter
+EXPORT_SYMBOL	 vmlinux 0xa38e7be5	netlink_unicast
+EXPORT_SYMBOL	 vmlinux 0xa39a4465	alloc_pages_vma
+EXPORT_SYMBOL	 vmlinux 0xa3a00095	sock_efree
+EXPORT_SYMBOL	 vmlinux 0xa3a5be95	memmove
+EXPORT_SYMBOL	 vmlinux 0xa3aa0409	tcp_md5_hash_key
+EXPORT_SYMBOL	 vmlinux 0xa3aa7ea6	tcp_add_backlog
+EXPORT_SYMBOL	 vmlinux 0xa3e0b88f	__brelse
+EXPORT_SYMBOL	 vmlinux 0xa3f6b41c	timestamp_truncate
+EXPORT_SYMBOL	 vmlinux 0xa4051bf6	LZ4_decompress_safe_continue
+EXPORT_SYMBOL	 vmlinux 0xa416c8e9	arch_write_lock_wait
+EXPORT_SYMBOL	 vmlinux 0xa420836f	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL	 vmlinux 0xa42af456	radix_tree_next_chunk
+EXPORT_SYMBOL	 vmlinux 0xa42c7632	padata_set_cpumask
+EXPORT_SYMBOL	 vmlinux 0xa43a3bf9	radix_tree_gang_lookup
+EXPORT_SYMBOL	 vmlinux 0xa44b520a	__scsi_format_command
+EXPORT_SYMBOL	 vmlinux 0xa48f43ff	pneigh_lookup
+EXPORT_SYMBOL	 vmlinux 0xa4a94d26	find_next_bit_le
+EXPORT_SYMBOL	 vmlinux 0xa4ad330b	dma_direct_sync_single_for_device
+EXPORT_SYMBOL	 vmlinux 0xa4c2f170	__seq_open_private
+EXPORT_SYMBOL	 vmlinux 0xa4e188e7	strscpy
+EXPORT_SYMBOL	 vmlinux 0xa4e1d99e	pci_scan_root_bus
+EXPORT_SYMBOL	 vmlinux 0xa4ed994b	dcache_dir_close
+EXPORT_SYMBOL	 vmlinux 0xa4f37dd6	pci_bus_read_config_byte
+EXPORT_SYMBOL	 vmlinux 0xa4f574a3	migrate_page_states
+EXPORT_SYMBOL	 vmlinux 0xa4faeb20	sb_min_blocksize
+EXPORT_SYMBOL	 vmlinux 0xa4ff1d05	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL	 vmlinux 0xa50483fe	__ksize
+EXPORT_SYMBOL	 vmlinux 0xa519c8e6	dm_kobject_release
+EXPORT_SYMBOL	 vmlinux 0xa5202020	kernel_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xa529134b	fscrypt_fname_disk_to_usr
+EXPORT_SYMBOL	 vmlinux 0xa52ae5a8	radix_tree_replace_slot
+EXPORT_SYMBOL	 vmlinux 0xa5346c9b	xfrm_state_lookup_byspi
+EXPORT_SYMBOL	 vmlinux 0xa5526619	rb_insert_color
+EXPORT_SYMBOL	 vmlinux 0xa56e549d	input_mt_drop_unused
+EXPORT_SYMBOL	 vmlinux 0xa5789b58	___pskb_trim
+EXPORT_SYMBOL	 vmlinux 0xa59158b0	xa_load
+EXPORT_SYMBOL	 vmlinux 0xa5b1b54a	inode_needs_sync
+EXPORT_SYMBOL	 vmlinux 0xa5d3695f	sync_blockdev
+EXPORT_SYMBOL	 vmlinux 0xa5e47e7b	input_unregister_handle
+EXPORT_SYMBOL	 vmlinux 0xa5f42f59	sk_stream_wait_connect
+EXPORT_SYMBOL	 vmlinux 0xa5fd68e5	gen_pool_for_each_chunk
+EXPORT_SYMBOL	 vmlinux 0xa6172e23	release_firmware
+EXPORT_SYMBOL	 vmlinux 0xa6180192	arp_tbl
+EXPORT_SYMBOL	 vmlinux 0xa61ced89	qdisc_put_rtab
+EXPORT_SYMBOL	 vmlinux 0xa639af88	filemap_range_has_page
+EXPORT_SYMBOL	 vmlinux 0xa6507b33	ap_queue_init_reply
+EXPORT_SYMBOL	 vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL	 vmlinux 0xa6841fb6	tun_ptr_to_xdp
+EXPORT_SYMBOL	 vmlinux 0xa69980d2	eth_gro_complete
+EXPORT_SYMBOL	 vmlinux 0xa6cce4a6	compat_mc_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xa6d582a2	radix_tree_tag_get
+EXPORT_SYMBOL	 vmlinux 0xa6e5df99	single_open_size
+EXPORT_SYMBOL	 vmlinux 0xa6e9c670	blake2s_compress_generic
+EXPORT_SYMBOL	 vmlinux 0xa6ebcc20	generic_remap_file_range_prep
+EXPORT_SYMBOL	 vmlinux 0xa70910f5	utf8len
+EXPORT_SYMBOL	 vmlinux 0xa70e8377	scsi_device_quiesce
+EXPORT_SYMBOL	 vmlinux 0xa70ea6d7	ZSTD_DCtxWorkspaceBound
+EXPORT_SYMBOL	 vmlinux 0xa73a3c56	skb_recv_datagram
+EXPORT_SYMBOL	 vmlinux 0xa74c9877	refcount_dec_and_rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xa74cd5e2	__page_pool_put_page
+EXPORT_SYMBOL	 vmlinux 0xa75192ef	__scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xa75d6c46	sync_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xa75fa771	fasync_helper
+EXPORT_SYMBOL	 vmlinux 0xa77494bd	ip6_xmit
+EXPORT_SYMBOL	 vmlinux 0xa77bfd29	register_inet6addr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xa77d41c3	inet_rtx_syn_ack
+EXPORT_SYMBOL	 vmlinux 0xa789dcf3	__invalidate_device
+EXPORT_SYMBOL	 vmlinux 0xa7904be1	__gnet_stats_copy_basic
+EXPORT_SYMBOL	 vmlinux 0xa7a9cfe0	iucv_message_send2way
+EXPORT_SYMBOL	 vmlinux 0xa7cdbdf2	down_read
+EXPORT_SYMBOL	 vmlinux 0xa7e38f12	flow_keys_basic_dissector
+EXPORT_SYMBOL	 vmlinux 0xa7eedcc4	call_usermodehelper
+EXPORT_SYMBOL	 vmlinux 0xa7fb9b31	dev_mc_add_global
+EXPORT_SYMBOL	 vmlinux 0xa81485cd	tty_insert_flip_string_flags
+EXPORT_SYMBOL	 vmlinux 0xa839804e	ccw_device_dma_zalloc
+EXPORT_SYMBOL	 vmlinux 0xa840668c	iget5_locked
+EXPORT_SYMBOL	 vmlinux 0xa843805a	get_unused_fd_flags
+EXPORT_SYMBOL	 vmlinux 0xa84ce9e0	crypto_aes_inv_sbox
+EXPORT_SYMBOL	 vmlinux 0xa85cc608	writeback_inodes_sb_nr
+EXPORT_SYMBOL	 vmlinux 0xa860afb8	alloc_netdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xa863d78c	tcf_em_tree_dump
+EXPORT_SYMBOL	 vmlinux 0xa8694ecd	kblockd_schedule_work
+EXPORT_SYMBOL	 vmlinux 0xa8a1ef1e	pcix_get_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xa8d08d23	skb_checksum_help
+EXPORT_SYMBOL	 vmlinux 0xa8ec906a	md_bitmap_close_sync
+EXPORT_SYMBOL	 vmlinux 0xa8edc259	sock_no_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xa8f6c843	ip_frag_ecn_table
+EXPORT_SYMBOL	 vmlinux 0xa8f87110	iov_iter_discard
+EXPORT_SYMBOL	 vmlinux 0xa90ca0de	flush_rcu_work
+EXPORT_SYMBOL	 vmlinux 0xa948dad3	blk_queue_max_hw_sectors
+EXPORT_SYMBOL	 vmlinux 0xa94f7dab	pci_write_config_byte
+EXPORT_SYMBOL	 vmlinux 0xa965ca81	reciprocal_value
+EXPORT_SYMBOL	 vmlinux 0xa9848591	dev_deactivate
+EXPORT_SYMBOL	 vmlinux 0xa9b1dc6c	down_timeout
+EXPORT_SYMBOL	 vmlinux 0xa9d88f38	key_validate
+EXPORT_SYMBOL	 vmlinux 0xa9fa2166	jbd2_transaction_committed
+EXPORT_SYMBOL	 vmlinux 0xaa0d9807	seq_putc
+EXPORT_SYMBOL	 vmlinux 0xaa1140f9	genlmsg_multicast_allns
+EXPORT_SYMBOL	 vmlinux 0xaa1d0461	inet_csk_reqsk_queue_add
+EXPORT_SYMBOL	 vmlinux 0xaa1e246a	xxh32_update
+EXPORT_SYMBOL	 vmlinux 0xaa221ef5	fscrypt_zeroout_range
+EXPORT_SYMBOL	 vmlinux 0xaa44057e	pci_irq_get_affinity
+EXPORT_SYMBOL	 vmlinux 0xaa8469dc	pci_match_id
+EXPORT_SYMBOL	 vmlinux 0xaac6826a	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL	 vmlinux 0xaad0ae78	__bitmap_shift_right
+EXPORT_SYMBOL	 vmlinux 0xaad8c7d6	default_wake_function
+EXPORT_SYMBOL	 vmlinux 0xaadc555f	generic_cont_expand_simple
+EXPORT_SYMBOL	 vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL	 vmlinux 0xab067939	set_security_override
+EXPORT_SYMBOL	 vmlinux 0xab21b263	simple_transaction_get
+EXPORT_SYMBOL	 vmlinux 0xab292a95	reuseport_alloc
+EXPORT_SYMBOL	 vmlinux 0xab29c7c1	vlan_uses_dev
+EXPORT_SYMBOL	 vmlinux 0xab3697e4	irq_poll_init
+EXPORT_SYMBOL	 vmlinux 0xab3bb343	dq_data_lock
+EXPORT_SYMBOL	 vmlinux 0xab4ac2d2	simple_transaction_release
+EXPORT_SYMBOL	 vmlinux 0xab4dd35f	arch_debugfs_dir
+EXPORT_SYMBOL	 vmlinux 0xab53a5fa	xa_find_after
+EXPORT_SYMBOL	 vmlinux 0xab5dab12	simple_link
+EXPORT_SYMBOL	 vmlinux 0xab63baa5	unregister_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xab6d5b3b	hex_to_bin
+EXPORT_SYMBOL	 vmlinux 0xab781570	fb_get_options
+EXPORT_SYMBOL	 vmlinux 0xab93c86f	down_read_interruptible
+EXPORT_SYMBOL	 vmlinux 0xab9820d1	softnet_data
+EXPORT_SYMBOL	 vmlinux 0xab99a6f1	d_hash_and_lookup
+EXPORT_SYMBOL	 vmlinux 0xab9ef034	dev_get_by_index_rcu
+EXPORT_SYMBOL	 vmlinux 0xaba81805	xps_rxqs_needed
+EXPORT_SYMBOL	 vmlinux 0xabaf171f	inet_add_offload
+EXPORT_SYMBOL	 vmlinux 0xabb7c329	pcibios_resource_to_bus
+EXPORT_SYMBOL	 vmlinux 0xabcc16e1	devm_pci_remap_iospace
+EXPORT_SYMBOL	 vmlinux 0xabcec8be	fscrypt_ioctl_set_policy
+EXPORT_SYMBOL	 vmlinux 0xabd9dd3d	file_update_time
+EXPORT_SYMBOL	 vmlinux 0xabdd58b6	kernel_listen
+EXPORT_SYMBOL	 vmlinux 0xabe1431b	trace_print_symbols_seq
+EXPORT_SYMBOL	 vmlinux 0xabe1fede	mr_vif_seq_next
+EXPORT_SYMBOL	 vmlinux 0xabe44294	udplite_prot
+EXPORT_SYMBOL	 vmlinux 0xabf32f29	utf16s_to_utf8s
+EXPORT_SYMBOL	 vmlinux 0xabf89c4f	blk_rq_count_integrity_sg
+EXPORT_SYMBOL	 vmlinux 0xabfcb848	path_put
+EXPORT_SYMBOL	 vmlinux 0xac06b6ae	__skb_flow_dissect
+EXPORT_SYMBOL	 vmlinux 0xac1a55be	unregister_reboot_notifier
+EXPORT_SYMBOL	 vmlinux 0xac2526a8	generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xac269ede	tcp_mmap
+EXPORT_SYMBOL	 vmlinux 0xac3201b0	udp_flow_hashrnd
+EXPORT_SYMBOL	 vmlinux 0xac393d28	override_creds
+EXPORT_SYMBOL	 vmlinux 0xac39ad13	xfrm_policy_hash_rebuild
+EXPORT_SYMBOL	 vmlinux 0xac56b6d3	__tracepoint_s390_cio_msch
+EXPORT_SYMBOL	 vmlinux 0xac5ee9bf	ap_queue_init_state
+EXPORT_SYMBOL	 vmlinux 0xac5fcec0	in4_pton
+EXPORT_SYMBOL	 vmlinux 0xac766574	__vlan_find_dev_deep_rcu
+EXPORT_SYMBOL	 vmlinux 0xac94e86b	vsprintf
+EXPORT_SYMBOL	 vmlinux 0xac96fe26	lockref_get_or_lock
+EXPORT_SYMBOL	 vmlinux 0xacab29b7	seq_hlist_start_percpu
+EXPORT_SYMBOL	 vmlinux 0xacb020ce	node_states
+EXPORT_SYMBOL	 vmlinux 0xacc8657c	fscrypt_release_ctx
+EXPORT_SYMBOL	 vmlinux 0xaccbab23	iov_iter_kvec
+EXPORT_SYMBOL	 vmlinux 0xacd81eb3	jbd2_inode_cache
+EXPORT_SYMBOL	 vmlinux 0xace62d8b	cookie_timestamp_decode
+EXPORT_SYMBOL	 vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL	 vmlinux 0xacf649bf	audit_log_task_info
+EXPORT_SYMBOL	 vmlinux 0xad00d176	xfrm6_protocol_deregister
+EXPORT_SYMBOL	 vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL	 vmlinux 0xad053b93	pcim_iounmap
+EXPORT_SYMBOL	 vmlinux 0xad151b71	xsk_umem_consume_tx
+EXPORT_SYMBOL	 vmlinux 0xad2104f1	tcf_register_action
+EXPORT_SYMBOL	 vmlinux 0xad4aee39	strncpy
+EXPORT_SYMBOL	 vmlinux 0xad54551b	udp6_set_csum
+EXPORT_SYMBOL	 vmlinux 0xad5b72bd	__percpu_counter_sum
+EXPORT_SYMBOL	 vmlinux 0xad5e4fc7	pci_reenable_device
+EXPORT_SYMBOL	 vmlinux 0xad67a795	inet_csk_prepare_forced_close
+EXPORT_SYMBOL	 vmlinux 0xad72112e	tcp_get_cookie_sock
+EXPORT_SYMBOL	 vmlinux 0xad73041f	autoremove_wake_function
+EXPORT_SYMBOL	 vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL	 vmlinux 0xad9182f2	nobh_writepage
+EXPORT_SYMBOL	 vmlinux 0xadae6df8	blake2s_final
+EXPORT_SYMBOL	 vmlinux 0xadc5d086	ipv6_find_hdr
+EXPORT_SYMBOL	 vmlinux 0xadcf4192	ihold
+EXPORT_SYMBOL	 vmlinux 0xadd139d4	rfs_needed
+EXPORT_SYMBOL	 vmlinux 0xadd64282	textsearch_prepare
+EXPORT_SYMBOL	 vmlinux 0xadfdfcef	__bitmap_andnot
+EXPORT_SYMBOL	 vmlinux 0xae0a6ccb	pci_msi_vec_count
+EXPORT_SYMBOL	 vmlinux 0xae1486c0	__dec_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xae198a50	simple_dir_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xae19a18d	blk_cleanup_queue
+EXPORT_SYMBOL	 vmlinux 0xae316c11	icmpv6_err_convert
+EXPORT_SYMBOL	 vmlinux 0xae319efc	radix_tree_insert
+EXPORT_SYMBOL	 vmlinux 0xae39b1c2	proc_dointvec_jiffies
+EXPORT_SYMBOL	 vmlinux 0xae7c9ae6	iterate_dir
+EXPORT_SYMBOL	 vmlinux 0xae873bc4	kernel_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xae9ef0b3	netif_tx_stop_all_queues
+EXPORT_SYMBOL	 vmlinux 0xaebf7583	flow_rule_match_enc_keyid
+EXPORT_SYMBOL	 vmlinux 0xaee3c90e	inet_protos
+EXPORT_SYMBOL	 vmlinux 0xaefd57f1	blk_mq_complete_request
+EXPORT_SYMBOL	 vmlinux 0xaf0cc45e	scsi_device_lookup_by_target
+EXPORT_SYMBOL	 vmlinux 0xaf155b28	wait_for_completion_io
+EXPORT_SYMBOL	 vmlinux 0xaf25a98a	bh_uptodate_or_lock
+EXPORT_SYMBOL	 vmlinux 0xaf26cb80	vfs_mknod
+EXPORT_SYMBOL	 vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL	 vmlinux 0xaf452d79	scsi_eh_restore_cmnd
+EXPORT_SYMBOL	 vmlinux 0xaf4af690	put_user_pages_dirty_lock
+EXPORT_SYMBOL	 vmlinux 0xaf6bc3d0	posix_acl_init
+EXPORT_SYMBOL	 vmlinux 0xaf7f9107	netlink_net_capable
+EXPORT_SYMBOL	 vmlinux 0xaf8208a1	inet_proto_csum_replace16
+EXPORT_SYMBOL	 vmlinux 0xaf82e86f	blk_get_queue
+EXPORT_SYMBOL	 vmlinux 0xaf85baf1	debug_register_view
+EXPORT_SYMBOL	 vmlinux 0xaf90c15f	config_item_init_type_name
+EXPORT_SYMBOL	 vmlinux 0xaf95d0bd	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL	 vmlinux 0xafa60a7c	netdev_info
+EXPORT_SYMBOL	 vmlinux 0xafadcb13	scsi_target_quiesce
+EXPORT_SYMBOL	 vmlinux 0xafcff028	tcp_sync_mss
+EXPORT_SYMBOL	 vmlinux 0xafd3b805	neigh_parms_release
+EXPORT_SYMBOL	 vmlinux 0xafd3ca2d	airq_iv_create
+EXPORT_SYMBOL	 vmlinux 0xafda95ff	tcf_block_netif_keep_dst
+EXPORT_SYMBOL	 vmlinux 0xafe82e10	strcspn
+EXPORT_SYMBOL	 vmlinux 0xafec09c0	disable_sacf_uaccess
+EXPORT_SYMBOL	 vmlinux 0xaff3a008	splice_direct_to_actor
+EXPORT_SYMBOL	 vmlinux 0xaff7eb94	con_is_bound
+EXPORT_SYMBOL	 vmlinux 0xb002ef7d	capable_wrt_inode_uidgid
+EXPORT_SYMBOL	 vmlinux 0xb00bf8c8	vfs_get_tree
+EXPORT_SYMBOL	 vmlinux 0xb00c1190	xfrm_register_type_offload
+EXPORT_SYMBOL	 vmlinux 0xb016493d	arch_spin_relax
+EXPORT_SYMBOL	 vmlinux 0xb01bebf9	xfrm_get_acqseq
+EXPORT_SYMBOL	 vmlinux 0xb03420b5	d_tmpfile
+EXPORT_SYMBOL	 vmlinux 0xb058ca07	dim_calc_stats
+EXPORT_SYMBOL	 vmlinux 0xb05f39e2	dev_emerg_hash
+EXPORT_SYMBOL	 vmlinux 0xb05fc310	sysctl_rmem_max
+EXPORT_SYMBOL	 vmlinux 0xb07e2728	finish_no_open
+EXPORT_SYMBOL	 vmlinux 0xb0a5e059	proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xb0dc5aaa	generic_delete_inode
+EXPORT_SYMBOL	 vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL	 vmlinux 0xb0eda7e7	iucv_path_sever
+EXPORT_SYMBOL	 vmlinux 0xb10e7df4	__kfifo_dma_in_prepare
+EXPORT_SYMBOL	 vmlinux 0xb10f8301	__cpuhp_remove_state_cpuslocked
+EXPORT_SYMBOL	 vmlinux 0xb1146c7b	dev_mc_sync
+EXPORT_SYMBOL	 vmlinux 0xb1203bb8	ap_perms
+EXPORT_SYMBOL	 vmlinux 0xb128ea21	cpumask_any_but
+EXPORT_SYMBOL	 vmlinux 0xb12cbacb	fb_unregister_client
+EXPORT_SYMBOL	 vmlinux 0xb12f1317	find_get_entry
+EXPORT_SYMBOL	 vmlinux 0xb14ab1ef	hdmi_audio_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xb16900ad	cmdline_parts_parse
+EXPORT_SYMBOL	 vmlinux 0xb1728508	inet_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xb1808db1	nf_log_bind_pf
+EXPORT_SYMBOL	 vmlinux 0xb1837790	ipv6_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb1a54771	inet_dev_addr_type
+EXPORT_SYMBOL	 vmlinux 0xb1b1fcc6	flow_rule_match_mpls
+EXPORT_SYMBOL	 vmlinux 0xb1b8f0bc	gen_pool_alloc_algo_owner
+EXPORT_SYMBOL	 vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL	 vmlinux 0xb1cc8d48	sock_common_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xb1ddf35b	no_llseek
+EXPORT_SYMBOL	 vmlinux 0xb1ddf995	jiffies_64_to_clock_t
+EXPORT_SYMBOL	 vmlinux 0xb1ea0268	__cgroup_bpf_run_filter_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xb2191ffb	notify_change
+EXPORT_SYMBOL	 vmlinux 0xb22107da	user_path_create
+EXPORT_SYMBOL	 vmlinux 0xb22e16d5	radix_tree_maybe_preload
+EXPORT_SYMBOL	 vmlinux 0xb25d601e	deactivate_locked_super
+EXPORT_SYMBOL	 vmlinux 0xb262fcae	flush_old_exec
+EXPORT_SYMBOL	 vmlinux 0xb2873e8f	inet_get_local_port_range
+EXPORT_SYMBOL	 vmlinux 0xb293c18f	gen_pool_best_fit
+EXPORT_SYMBOL	 vmlinux 0xb2af650c	blk_lookup_devt
+EXPORT_SYMBOL	 vmlinux 0xb2b0d772	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL	 vmlinux 0xb2cdd966	swake_up_locked
+EXPORT_SYMBOL	 vmlinux 0xb2d8d651	posix_lock_file
+EXPORT_SYMBOL	 vmlinux 0xb2f66c43	blk_put_queue
+EXPORT_SYMBOL	 vmlinux 0xb2fafd17	mempool_resize
+EXPORT_SYMBOL	 vmlinux 0xb2fcb56d	queue_delayed_work_on
+EXPORT_SYMBOL	 vmlinux 0xb2ffaa1e	xfrm_policy_walk
+EXPORT_SYMBOL	 vmlinux 0xb307d093	tcp_simple_retransmit
+EXPORT_SYMBOL	 vmlinux 0xb308c97d	wait_woken
+EXPORT_SYMBOL	 vmlinux 0xb30d83bb	__skb_gso_segment
+EXPORT_SYMBOL	 vmlinux 0xb311b83a	netlink_kernel_release
+EXPORT_SYMBOL	 vmlinux 0xb320cc0e	sg_init_one
+EXPORT_SYMBOL	 vmlinux 0xb346bb96	freeze_super
+EXPORT_SYMBOL	 vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL	 vmlinux 0xb356f02c	set_binfmt
+EXPORT_SYMBOL	 vmlinux 0xb3687850	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL	 vmlinux 0xb3781fd3	vfs_ioc_fssetxattr_check
+EXPORT_SYMBOL	 vmlinux 0xb3a0be99	unlock_rename
+EXPORT_SYMBOL	 vmlinux 0xb3a307de	md_bitmap_endwrite
+EXPORT_SYMBOL	 vmlinux 0xb3c54fd5	msi_desc_to_pci_dev
+EXPORT_SYMBOL	 vmlinux 0xb3c6beee	scmd_printk
+EXPORT_SYMBOL	 vmlinux 0xb3d2c76d	scsi_hostbyte_string
+EXPORT_SYMBOL	 vmlinux 0xb3e848a4	skb_checksum_trimmed
+EXPORT_SYMBOL	 vmlinux 0xb3f7646e	kthread_should_stop
+EXPORT_SYMBOL	 vmlinux 0xb3fcb25d	con_set_default_unimap
+EXPORT_SYMBOL	 vmlinux 0xb3ff1f69	free_pages_exact
+EXPORT_SYMBOL	 vmlinux 0xb3ff88a5	cond_set_guest_storage_key
+EXPORT_SYMBOL	 vmlinux 0xb4050107	simple_empty
+EXPORT_SYMBOL	 vmlinux 0xb408061b	complete_and_exit
+EXPORT_SYMBOL	 vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL	 vmlinux 0xb42b9037	bdget_disk
+EXPORT_SYMBOL	 vmlinux 0xb42e6fce	cdrom_open
+EXPORT_SYMBOL	 vmlinux 0xb43c83a9	dev_uc_del
+EXPORT_SYMBOL	 vmlinux 0xb43cd683	inet_listen
+EXPORT_SYMBOL	 vmlinux 0xb43eb1bc	import_single_range
+EXPORT_SYMBOL	 vmlinux 0xb475f650	tcf_em_tree_validate
+EXPORT_SYMBOL	 vmlinux 0xb47ff12e	ip_route_me_harder
+EXPORT_SYMBOL	 vmlinux 0xb48d4d22	security_sb_eat_lsm_opts
+EXPORT_SYMBOL	 vmlinux 0xb4955504	bioset_integrity_create
+EXPORT_SYMBOL	 vmlinux 0xb49fa9bc	flow_block_cb_free
+EXPORT_SYMBOL	 vmlinux 0xb4af8a32	dev_pick_tx_zero
+EXPORT_SYMBOL	 vmlinux 0xb4b33ca3	in_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xb4e278f7	crypto_sha256_update
+EXPORT_SYMBOL	 vmlinux 0xb4f13d2a	abort
+EXPORT_SYMBOL	 vmlinux 0xb502fb00	inet_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xb50cc9cb	ZSTD_isFrame
+EXPORT_SYMBOL	 vmlinux 0xb534f61f	__kfifo_alloc
+EXPORT_SYMBOL	 vmlinux 0xb5473abc	pci_disable_msix
+EXPORT_SYMBOL	 vmlinux 0xb55c0cbc	blk_mq_can_queue
+EXPORT_SYMBOL	 vmlinux 0xb55cb13c	xfrm_find_acq
+EXPORT_SYMBOL	 vmlinux 0xb56416f4	skb_orphan_partial
+EXPORT_SYMBOL	 vmlinux 0xb57343c2	frontswap_shrink
+EXPORT_SYMBOL	 vmlinux 0xb57602e4	pci_bus_read_dev_vendor_id
+EXPORT_SYMBOL	 vmlinux 0xb57d3feb	mntput
+EXPORT_SYMBOL	 vmlinux 0xb58aeaab	kernel_cpustat
+EXPORT_SYMBOL	 vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL	 vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xb5c17076	ip_mc_leave_group
+EXPORT_SYMBOL	 vmlinux 0xb5c4197c	ccw_device_get_mdc
+EXPORT_SYMBOL	 vmlinux 0xb5dc3e0d	dma_set_coherent_mask
+EXPORT_SYMBOL	 vmlinux 0xb5e2eded	ccw_device_dma_free
+EXPORT_SYMBOL	 vmlinux 0xb5e73116	flush_delayed_work
+EXPORT_SYMBOL	 vmlinux 0xb5fd0117	scsi_test_unit_ready
+EXPORT_SYMBOL	 vmlinux 0xb606dbb5	sock_alloc_send_skb
+EXPORT_SYMBOL	 vmlinux 0xb614075c	input_grab_device
+EXPORT_SYMBOL	 vmlinux 0xb6283aa8	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xb628f41b	xsk_umem_uses_need_wakeup
+EXPORT_SYMBOL	 vmlinux 0xb633f115	irq_poll_enable
+EXPORT_SYMBOL	 vmlinux 0xb658ee62	sock_no_socketpair
+EXPORT_SYMBOL	 vmlinux 0xb661b443	key_unlink
+EXPORT_SYMBOL	 vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL	 vmlinux 0xb67c9280	utf8cursor
+EXPORT_SYMBOL	 vmlinux 0xb67fec0e	uuid_parse
+EXPORT_SYMBOL	 vmlinux 0xb6936ffe	_bcd2bin
+EXPORT_SYMBOL	 vmlinux 0xb69601a8	devm_pci_alloc_host_bridge
+EXPORT_SYMBOL	 vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL	 vmlinux 0xb6e36ce2	psched_ratecfg_precompute
+EXPORT_SYMBOL	 vmlinux 0xb6fbeefe	xxh64
+EXPORT_SYMBOL	 vmlinux 0xb7178135	security_binder_set_context_mgr
+EXPORT_SYMBOL	 vmlinux 0xb71bde70	vfs_create
+EXPORT_SYMBOL	 vmlinux 0xb732997a	inode_set_flags
+EXPORT_SYMBOL	 vmlinux 0xb73586aa	unlock_buffer
+EXPORT_SYMBOL	 vmlinux 0xb73a9aca	dcb_ieee_getapp_default_prio_mask
+EXPORT_SYMBOL	 vmlinux 0xb74929a2	blk_queue_virt_boundary
+EXPORT_SYMBOL	 vmlinux 0xb78debe3	LZ4_decompress_fast_usingDict
+EXPORT_SYMBOL	 vmlinux 0xb7b16974	__set_page_dirty_nobuffers
+EXPORT_SYMBOL	 vmlinux 0xb7b507ea	utf8nlen
+EXPORT_SYMBOL	 vmlinux 0xb7b9afc7	sk_dst_check
+EXPORT_SYMBOL	 vmlinux 0xb7c6db70	sysctl_max_skb_frags
+EXPORT_SYMBOL	 vmlinux 0xb7cee090	netif_schedule_queue
+EXPORT_SYMBOL	 vmlinux 0xb7d5afe7	alloc_anon_inode
+EXPORT_SYMBOL	 vmlinux 0xb7dee153	pcim_iomap
+EXPORT_SYMBOL	 vmlinux 0xb7ee2a2c	diag26c
+EXPORT_SYMBOL	 vmlinux 0xb7f545f6	fb_find_mode
+EXPORT_SYMBOL	 vmlinux 0xb86312e8	dquot_load_quota_sb
+EXPORT_SYMBOL	 vmlinux 0xb8642737	seq_read
+EXPORT_SYMBOL	 vmlinux 0xb870cba2	input_register_handle
+EXPORT_SYMBOL	 vmlinux 0xb89b6e6b	guid_parse
+EXPORT_SYMBOL	 vmlinux 0xb89e059b	kernel_sendpage
+EXPORT_SYMBOL	 vmlinux 0xb8b043f2	kfree_link
+EXPORT_SYMBOL	 vmlinux 0xb8da819b	blk_queue_flag_clear
+EXPORT_SYMBOL	 vmlinux 0xb8f0d13d	netif_carrier_off
+EXPORT_SYMBOL	 vmlinux 0xb904e636	sock_create_lite
+EXPORT_SYMBOL	 vmlinux 0xb9056bb6	remove_conflicting_framebuffers
+EXPORT_SYMBOL	 vmlinux 0xb905f940	proto_register
+EXPORT_SYMBOL	 vmlinux 0xb911bb58	minmax_running_max
+EXPORT_SYMBOL	 vmlinux 0xb915ceca	itcw_init
+EXPORT_SYMBOL	 vmlinux 0xb928aa45	netdev_rss_key_fill
+EXPORT_SYMBOL	 vmlinux 0xb9401007	__cleancache_invalidate_page
+EXPORT_SYMBOL	 vmlinux 0xb94339c4	qdisc_put_stab
+EXPORT_SYMBOL	 vmlinux 0xb9449460	__cgroup_bpf_run_filter_sk
+EXPORT_SYMBOL	 vmlinux 0xb95b7822	unlock_two_nondirectories
+EXPORT_SYMBOL	 vmlinux 0xb99e8d2e	jbd2_journal_free_reserved
+EXPORT_SYMBOL	 vmlinux 0xb9ada345	kern_path
+EXPORT_SYMBOL	 vmlinux 0xb9df5c0d	ZSTD_nextSrcSizeToDecompress
+EXPORT_SYMBOL	 vmlinux 0xb9e8e2cc	in6addr_sitelocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xba0dccfe	netdev_lower_get_next_private
+EXPORT_SYMBOL	 vmlinux 0xba1ab55b	write_cache_pages
+EXPORT_SYMBOL	 vmlinux 0xba2eca9b	__vfs_getxattr
+EXPORT_SYMBOL	 vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL	 vmlinux 0xba4c53f1	register_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xba71dd0b	vfs_unlink
+EXPORT_SYMBOL	 vmlinux 0xba7d23e2	iov_iter_advance
+EXPORT_SYMBOL	 vmlinux 0xba93b83e	__sk_receive_skb
+EXPORT_SYMBOL	 vmlinux 0xbaa5b812	__var_waitqueue
+EXPORT_SYMBOL	 vmlinux 0xbadb9352	scsi_dma_unmap
+EXPORT_SYMBOL	 vmlinux 0xbaf47d73	kill_bdev
+EXPORT_SYMBOL	 vmlinux 0xbaf507c1	gen_pool_dma_alloc_algo
+EXPORT_SYMBOL	 vmlinux 0xbb0540aa	zlib_inflateReset
+EXPORT_SYMBOL	 vmlinux 0xbb07ee1c	dma_free_attrs
+EXPORT_SYMBOL	 vmlinux 0xbb24f607	init_cdrom_command
+EXPORT_SYMBOL	 vmlinux 0xbb3321d8	__d_lookup_done
+EXPORT_SYMBOL	 vmlinux 0xbb35675b	__bitmap_intersects
+EXPORT_SYMBOL	 vmlinux 0xbb4b963f	pcie_capability_read_dword
+EXPORT_SYMBOL	 vmlinux 0xbb750389	input_register_handler
+EXPORT_SYMBOL	 vmlinux 0xbb9d0dc5	bin2hex
+EXPORT_SYMBOL	 vmlinux 0xbbb10efb	cdrom_get_last_written
+EXPORT_SYMBOL	 vmlinux 0xbbd386cb	follow_up
+EXPORT_SYMBOL	 vmlinux 0xbbe0390c	blk_queue_io_min
+EXPORT_SYMBOL	 vmlinux 0xbbe6e86c	seq_escape_mem_ascii
+EXPORT_SYMBOL	 vmlinux 0xbc308f22	udp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xbc5b281e	from_kuid
+EXPORT_SYMBOL	 vmlinux 0xbc64fbf8	__ClearPageMovable
+EXPORT_SYMBOL	 vmlinux 0xbc65c96e	param_set_ushort
+EXPORT_SYMBOL	 vmlinux 0xbc7bede7	add_wait_queue_exclusive
+EXPORT_SYMBOL	 vmlinux 0xbc96a285	pskb_trim_rcsum_slow
+EXPORT_SYMBOL	 vmlinux 0xbc99541d	sync_file_create
+EXPORT_SYMBOL	 vmlinux 0xbcab6ee6	sscanf
+EXPORT_SYMBOL	 vmlinux 0xbcbdf60f	kstrtos8
+EXPORT_SYMBOL	 vmlinux 0xbcbff052	csum_and_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xbcc35f97	free_task
+EXPORT_SYMBOL	 vmlinux 0xbcdc5be1	param_set_copystring
+EXPORT_SYMBOL	 vmlinux 0xbce5b432	security_socket_getpeersec_dgram
+EXPORT_SYMBOL	 vmlinux 0xbcffba85	__cgroup_bpf_run_filter_sock_ops
+EXPORT_SYMBOL	 vmlinux 0xbd0c9227	xsk_umem_discard_addr
+EXPORT_SYMBOL	 vmlinux 0xbd0f1c89	__generic_block_fiemap
+EXPORT_SYMBOL	 vmlinux 0xbd4b15c7	d_alloc_parallel
+EXPORT_SYMBOL	 vmlinux 0xbd72118a	inet_frag_pull_head
+EXPORT_SYMBOL	 vmlinux 0xbd8d77b2	add_to_pipe
+EXPORT_SYMBOL	 vmlinux 0xbd935f38	mempool_init
+EXPORT_SYMBOL	 vmlinux 0xbd9a6acc	proc_dointvec_minmax
+EXPORT_SYMBOL	 vmlinux 0xbda6f5a3	tcp_v4_destroy_sock
+EXPORT_SYMBOL	 vmlinux 0xbdbce4bb	debug_set_level
+EXPORT_SYMBOL	 vmlinux 0xbdd48ddc	param_ops_charp
+EXPORT_SYMBOL	 vmlinux 0xbe11e23f	nlmsg_notify
+EXPORT_SYMBOL	 vmlinux 0xbe1d872b	copy_page_to_iter
+EXPORT_SYMBOL	 vmlinux 0xbe4eb6ed	secure_dccpv6_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xbe5481fd	flow_hash_from_keys
+EXPORT_SYMBOL	 vmlinux 0xbe57fe3b	tcp_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xbe5a24e9	xxh32_copy_state
+EXPORT_SYMBOL	 vmlinux 0xbe5d367e	vfs_statx_fd
+EXPORT_SYMBOL	 vmlinux 0xbe65ca21	eth_header_cache
+EXPORT_SYMBOL	 vmlinux 0xbe8a18d8	inode_init_once
+EXPORT_SYMBOL	 vmlinux 0xbe97f574	rtnl_configure_link
+EXPORT_SYMBOL	 vmlinux 0xbee380ba	posix_acl_alloc
+EXPORT_SYMBOL	 vmlinux 0xbef3bd9a	down_trylock
+EXPORT_SYMBOL	 vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL	 vmlinux 0xbef53f33	scnprintf
+EXPORT_SYMBOL	 vmlinux 0xbf07f835	set_posix_acl
+EXPORT_SYMBOL	 vmlinux 0xbf0f8203	kbd_alloc
+EXPORT_SYMBOL	 vmlinux 0xbf1338ec	padata_free_shell
+EXPORT_SYMBOL	 vmlinux 0xbf23972c	mount_bdev
+EXPORT_SYMBOL	 vmlinux 0xbf2b47f7	tcf_idrinfo_destroy
+EXPORT_SYMBOL	 vmlinux 0xbf33cc21	pcie_get_width_cap
+EXPORT_SYMBOL	 vmlinux 0xbf39e23e	security_inode_init_security
+EXPORT_SYMBOL	 vmlinux 0xbf3ba51a	mnt_set_expiry
+EXPORT_SYMBOL	 vmlinux 0xbf506050	get_mm_exe_file
+EXPORT_SYMBOL	 vmlinux 0xbf509803	__dquot_free_space
+EXPORT_SYMBOL	 vmlinux 0xbf5fac38	__skb_free_datagram_locked
+EXPORT_SYMBOL	 vmlinux 0xbf72d9a4	blk_dump_rq_flags
+EXPORT_SYMBOL	 vmlinux 0xbf766af5	ipv6_select_ident
+EXPORT_SYMBOL	 vmlinux 0xbf7ada6e	__sk_mem_schedule
+EXPORT_SYMBOL	 vmlinux 0xbf7c0a15	security_binder_transaction
+EXPORT_SYMBOL	 vmlinux 0xbf7da605	vmalloc_to_page
+EXPORT_SYMBOL	 vmlinux 0xbf8d47da	inode_init_owner
+EXPORT_SYMBOL	 vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL	 vmlinux 0xbfa57ea4	netdev_pick_tx
+EXPORT_SYMBOL	 vmlinux 0xbfbedca8	kernel_getpeername
+EXPORT_SYMBOL	 vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL	 vmlinux 0xbffe7219	xa_clear_mark
+EXPORT_SYMBOL	 vmlinux 0xc003c637	__strncpy_from_user
+EXPORT_SYMBOL	 vmlinux 0xc005dc74	tcp_initialize_rcv_mss
+EXPORT_SYMBOL	 vmlinux 0xc025016c	flow_keys_dissector
+EXPORT_SYMBOL	 vmlinux 0xc025c581	skb_coalesce_rx_frag
+EXPORT_SYMBOL	 vmlinux 0xc027fe8d	param_array_ops
+EXPORT_SYMBOL	 vmlinux 0xc034b555	raw3270_start_irq
+EXPORT_SYMBOL	 vmlinux 0xc042f685	get_pgste
+EXPORT_SYMBOL	 vmlinux 0xc06f0724	ZSTD_initDCtx
+EXPORT_SYMBOL	 vmlinux 0xc0793248	sk_stream_kill_queues
+EXPORT_SYMBOL	 vmlinux 0xc07b0863	fb_destroy_modedb
+EXPORT_SYMBOL	 vmlinux 0xc08d1a69	security_d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xc096e23d	hdmi_drm_infoframe_init
+EXPORT_SYMBOL	 vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL	 vmlinux 0xc0a4a0ce	inet_sk_rebuild_header
+EXPORT_SYMBOL	 vmlinux 0xc0b2664d	devlink_dpipe_header_ipv4
+EXPORT_SYMBOL	 vmlinux 0xc0b3798a	neigh_destroy
+EXPORT_SYMBOL	 vmlinux 0xc0b39dfb	d_set_d_op
+EXPORT_SYMBOL	 vmlinux 0xc0c522ac	blk_mq_requeue_request
+EXPORT_SYMBOL	 vmlinux 0xc0d14ba0	__mark_inode_dirty
+EXPORT_SYMBOL	 vmlinux 0xc0d94ede	param_get_ulong
+EXPORT_SYMBOL	 vmlinux 0xc0dde731	__fib6_flush_trees
+EXPORT_SYMBOL	 vmlinux 0xc0e5e4e6	itcw_get_tcw
+EXPORT_SYMBOL	 vmlinux 0xc0fd237c	xxh32
+EXPORT_SYMBOL	 vmlinux 0xc0ff12fb	nla_strdup
+EXPORT_SYMBOL	 vmlinux 0xc1127e37	skb_queue_head
+EXPORT_SYMBOL	 vmlinux 0xc120caa6	diag_stat_inc
+EXPORT_SYMBOL	 vmlinux 0xc1394dbd	mod_virt_timer_periodic
+EXPORT_SYMBOL	 vmlinux 0xc143d775	sk_mc_loop
+EXPORT_SYMBOL	 vmlinux 0xc1494d7c	sk_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xc1514a3b	free_irq
+EXPORT_SYMBOL	 vmlinux 0xc16410b9	ZSTD_getDictID_fromDDict
+EXPORT_SYMBOL	 vmlinux 0xc16be39d	iter_div_u64_rem
+EXPORT_SYMBOL	 vmlinux 0xc16fd44f	vlan_dev_real_dev
+EXPORT_SYMBOL	 vmlinux 0xc1a08355	blk_mq_tagset_wait_completed_request
+EXPORT_SYMBOL	 vmlinux 0xc1a64320	__tracepoint_s390_cio_tsch
+EXPORT_SYMBOL	 vmlinux 0xc1b6c3ea	bdput
+EXPORT_SYMBOL	 vmlinux 0xc1bced4b	netdev_master_upper_dev_get_rcu
+EXPORT_SYMBOL	 vmlinux 0xc1cabb37	netif_receive_skb_core
+EXPORT_SYMBOL	 vmlinux 0xc1cce7fa	freeze_bdev
+EXPORT_SYMBOL	 vmlinux 0xc1d557fb	logfc
+EXPORT_SYMBOL	 vmlinux 0xc1d65114	load_nls
+EXPORT_SYMBOL	 vmlinux 0xc1d8cfaf	__fdget
+EXPORT_SYMBOL	 vmlinux 0xc1f47fc7	blk_mq_unique_tag
+EXPORT_SYMBOL	 vmlinux 0xc1fe3c62	audit_log_start
+EXPORT_SYMBOL	 vmlinux 0xc212f2ab	prandom_bytes
+EXPORT_SYMBOL	 vmlinux 0xc2336209	unix_gc_lock
+EXPORT_SYMBOL	 vmlinux 0xc24aa4d0	scsi_device_put
+EXPORT_SYMBOL	 vmlinux 0xc25f370f	get_tree_single
+EXPORT_SYMBOL	 vmlinux 0xc279cf66	elv_rb_find
+EXPORT_SYMBOL	 vmlinux 0xc27ab0b4	irq_set_chip
+EXPORT_SYMBOL	 vmlinux 0xc281cbb2	tcp_v4_connect
+EXPORT_SYMBOL	 vmlinux 0xc28d89f2	netdev_update_features
+EXPORT_SYMBOL	 vmlinux 0xc292d0df	ccw_device_resume
+EXPORT_SYMBOL	 vmlinux 0xc2acf5a2	dev_disable_lro
+EXPORT_SYMBOL	 vmlinux 0xc2bc643c	pci_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xc2c771e0	param_set_ullong
+EXPORT_SYMBOL	 vmlinux 0xc2cf2ca6	sock_recvmsg
+EXPORT_SYMBOL	 vmlinux 0xc2d398f2	tcp_v4_send_check
+EXPORT_SYMBOL	 vmlinux 0xc2d90f13	bdget
+EXPORT_SYMBOL	 vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL	 vmlinux 0xc306c3a8	page_frag_alloc
+EXPORT_SYMBOL	 vmlinux 0xc30b03eb	__tty_insert_flip_char
+EXPORT_SYMBOL	 vmlinux 0xc3114bd7	__nla_put_64bit
+EXPORT_SYMBOL	 vmlinux 0xc328130a	__debug_sprintf_event
+EXPORT_SYMBOL	 vmlinux 0xc32c71af	register_inetaddr_validator_notifier
+EXPORT_SYMBOL	 vmlinux 0xc335f3e5	__napi_schedule_irqoff
+EXPORT_SYMBOL	 vmlinux 0xc336a985	dqstats
+EXPORT_SYMBOL	 vmlinux 0xc34cffe2	kstrtobool_from_user
+EXPORT_SYMBOL	 vmlinux 0xc3631c04	vif_device_init
+EXPORT_SYMBOL	 vmlinux 0xc3838322	kobject_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xc383f750	thaw_super
+EXPORT_SYMBOL	 vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL	 vmlinux 0xc388921b	blk_mq_delay_run_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xc38c83b8	mod_timer
+EXPORT_SYMBOL	 vmlinux 0xc39064f6	pci_request_regions
+EXPORT_SYMBOL	 vmlinux 0xc3a7fb4c	do_SAK
+EXPORT_SYMBOL	 vmlinux 0xc3e1abf1	sget
+EXPORT_SYMBOL	 vmlinux 0xc3e46311	security_binder_transfer_binder
+EXPORT_SYMBOL	 vmlinux 0xc3eeba15	xfrm_state_walk_done
+EXPORT_SYMBOL	 vmlinux 0xc41c9e1b	sock_register
+EXPORT_SYMBOL	 vmlinux 0xc420848e	put_cmsg_scm_timestamping64
+EXPORT_SYMBOL	 vmlinux 0xc4212ab9	qdisc_class_hash_insert
+EXPORT_SYMBOL	 vmlinux 0xc45755de	find_next_zero_bit_le
+EXPORT_SYMBOL	 vmlinux 0xc470c1c6	mutex_lock_killable
+EXPORT_SYMBOL	 vmlinux 0xc4777aa9	__ctzsi2
+EXPORT_SYMBOL	 vmlinux 0xc47a1404	netpoll_send_udp
+EXPORT_SYMBOL	 vmlinux 0xc4927a75	netdev_upper_get_next_dev_rcu
+EXPORT_SYMBOL	 vmlinux 0xc4952834	unregister_console
+EXPORT_SYMBOL	 vmlinux 0xc4cad218	ip6mr_rule_default
+EXPORT_SYMBOL	 vmlinux 0xc5010696	param_ops_int
+EXPORT_SYMBOL	 vmlinux 0xc504c10a	flow_rule_match_enc_ports
+EXPORT_SYMBOL	 vmlinux 0xc507dfb2	mark_buffer_dirty
+EXPORT_SYMBOL	 vmlinux 0xc52412ed	inet_twsk_deschedule_put
+EXPORT_SYMBOL	 vmlinux 0xc5521d50	sclp_register
+EXPORT_SYMBOL	 vmlinux 0xc566965d	key_task_permission
+EXPORT_SYMBOL	 vmlinux 0xc57b41f2	ZSTD_decompress_usingDict
+EXPORT_SYMBOL	 vmlinux 0xc57b8611	diag210
+EXPORT_SYMBOL	 vmlinux 0xc57cf8ef	tcp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xc5850110	printk
+EXPORT_SYMBOL	 vmlinux 0xc58e775d	netdev_adjacent_change_commit
+EXPORT_SYMBOL	 vmlinux 0xc599a772	security_xfrm_state_delete
+EXPORT_SYMBOL	 vmlinux 0xc599ad77	dma_fence_init
+EXPORT_SYMBOL	 vmlinux 0xc59a3a05	file_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xc59aefee	qdisc_put_unlocked
+EXPORT_SYMBOL	 vmlinux 0xc5ad93b8	sie_exit
+EXPORT_SYMBOL	 vmlinux 0xc5b6f236	queue_work_on
+EXPORT_SYMBOL	 vmlinux 0xc5c280d0	unix_get_socket
+EXPORT_SYMBOL	 vmlinux 0xc5d5ee51	generic_key_instantiate
+EXPORT_SYMBOL	 vmlinux 0xc5de7ccf	neigh_seq_start
+EXPORT_SYMBOL	 vmlinux 0xc5e74216	release_resource
+EXPORT_SYMBOL	 vmlinux 0xc5f4c834	generic_file_open
+EXPORT_SYMBOL	 vmlinux 0xc5f7e801	sg_last
+EXPORT_SYMBOL	 vmlinux 0xc5f9d9e6	__inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xc6055c9e	kvasprintf_const
+EXPORT_SYMBOL	 vmlinux 0xc60d0620	__num_online_cpus
+EXPORT_SYMBOL	 vmlinux 0xc622ea97	stsi
+EXPORT_SYMBOL	 vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL	 vmlinux 0xc65e4e97	secure_dccp_sequence_number
+EXPORT_SYMBOL	 vmlinux 0xc6646e8e	param_set_bint
+EXPORT_SYMBOL	 vmlinux 0xc66d919f	dm_table_get_mode
+EXPORT_SYMBOL	 vmlinux 0xc6879b6d	discard_new_inode
+EXPORT_SYMBOL	 vmlinux 0xc68aea65	dquot_scan_active
+EXPORT_SYMBOL	 vmlinux 0xc6903dbb	posix_test_lock
+EXPORT_SYMBOL	 vmlinux 0xc6909951	prepare_to_wait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xc6ae4bc6	mempool_exit
+EXPORT_SYMBOL	 vmlinux 0xc6b224ab	neigh_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xc6b443e8	up
+EXPORT_SYMBOL	 vmlinux 0xc6be742a	eth_header_parse
+EXPORT_SYMBOL	 vmlinux 0xc6c78b8a	dev_notice_hash
+EXPORT_SYMBOL	 vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL	 vmlinux 0xc6cc3157	devm_gen_pool_create
+EXPORT_SYMBOL	 vmlinux 0xc6d89446	tcf_unregister_action
+EXPORT_SYMBOL	 vmlinux 0xc6efb066	rdmacg_uncharge
+EXPORT_SYMBOL	 vmlinux 0xc6f46339	init_timer_key
+EXPORT_SYMBOL	 vmlinux 0xc7031cfc	tcf_em_tree_destroy
+EXPORT_SYMBOL	 vmlinux 0xc707b857	skb_vlan_untag
+EXPORT_SYMBOL	 vmlinux 0xc7152b4b	dquot_file_open
+EXPORT_SYMBOL	 vmlinux 0xc732fde6	pcix_set_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xc7551540	dma_supported
+EXPORT_SYMBOL	 vmlinux 0xc7661233	ilookup5_nowait
+EXPORT_SYMBOL	 vmlinux 0xc76901b5	__frontswap_load
+EXPORT_SYMBOL	 vmlinux 0xc7740602	pci_find_capability
+EXPORT_SYMBOL	 vmlinux 0xc7856a3d	inet6addr_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL	 vmlinux 0xc79da4de	skb_dequeue
+EXPORT_SYMBOL	 vmlinux 0xc7a24d76	sysfs_format_mac
+EXPORT_SYMBOL	 vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL	 vmlinux 0xc7af3a8f	udp_disconnect
+EXPORT_SYMBOL	 vmlinux 0xc7b0eecb	kernel_param_unlock
+EXPORT_SYMBOL	 vmlinux 0xc7c1107a	LZ4_decompress_safe
+EXPORT_SYMBOL	 vmlinux 0xc7ce3435	sock_recv_errqueue
+EXPORT_SYMBOL	 vmlinux 0xc7d094b5	dm_read_arg_group
+EXPORT_SYMBOL	 vmlinux 0xc7d4140d	reuseport_attach_prog
+EXPORT_SYMBOL	 vmlinux 0xc7d51d45	param_ops_byte
+EXPORT_SYMBOL	 vmlinux 0xc7e11c3a	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL	 vmlinux 0xc7e9c86e	__blkdev_issue_zeroout
+EXPORT_SYMBOL	 vmlinux 0xc7f77905	device_add_disk
+EXPORT_SYMBOL	 vmlinux 0xc7f93d50	tcp_seq_start
+EXPORT_SYMBOL	 vmlinux 0xc816526b	tso_build_hdr
+EXPORT_SYMBOL	 vmlinux 0xc81e91a8	napi_busy_loop
+EXPORT_SYMBOL	 vmlinux 0xc82eb39a	sock_no_shutdown
+EXPORT_SYMBOL	 vmlinux 0xc83301f0	mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL	 vmlinux 0xc8525779	generic_read_dir
+EXPORT_SYMBOL	 vmlinux 0xc85bc4a4	security_path_mkdir
+EXPORT_SYMBOL	 vmlinux 0xc86a6174	__kfifo_from_user_r
+EXPORT_SYMBOL	 vmlinux 0xc872fd85	in6addr_interfacelocal_allnodes
+EXPORT_SYMBOL	 vmlinux 0xc876c3dd	generic_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xc87b3b7e	tcf_exts_destroy
+EXPORT_SYMBOL	 vmlinux 0xc8827b75	sysctl_vals
+EXPORT_SYMBOL	 vmlinux 0xc88a8918	down_interruptible
+EXPORT_SYMBOL	 vmlinux 0xc88e7962	__ip_mc_inc_group
+EXPORT_SYMBOL	 vmlinux 0xc8a2e03a	unlock_page_memcg
+EXPORT_SYMBOL	 vmlinux 0xc8a3aa01	tty_chars_in_buffer
+EXPORT_SYMBOL	 vmlinux 0xc8a91f5b	cpumask_local_spread
+EXPORT_SYMBOL	 vmlinux 0xc8cbe269	__blk_mq_end_request
+EXPORT_SYMBOL	 vmlinux 0xc8d0118f	register_netdev
+EXPORT_SYMBOL	 vmlinux 0xc8dec60d	ccw_device_is_multipath
+EXPORT_SYMBOL	 vmlinux 0xc8e739d1	seq_write
+EXPORT_SYMBOL	 vmlinux 0xc8f8a5f4	kern_unmount
+EXPORT_SYMBOL	 vmlinux 0xc91d5d6d	fc_mount
+EXPORT_SYMBOL	 vmlinux 0xc921a53e	scsi_mode_sense
+EXPORT_SYMBOL	 vmlinux 0xc93145f6	devm_iounmap
+EXPORT_SYMBOL	 vmlinux 0xc937fd2d	__skb_vlan_pop
+EXPORT_SYMBOL	 vmlinux 0xc94fdebf	__genradix_ptr
+EXPORT_SYMBOL	 vmlinux 0xc95a0955	seq_open
+EXPORT_SYMBOL	 vmlinux 0xc9634df9	in6addr_linklocal_allrouters
+EXPORT_SYMBOL	 vmlinux 0xc972449f	mempool_alloc_slab
+EXPORT_SYMBOL	 vmlinux 0xc994bd2e	qdisc_watchdog_schedule_ns
+EXPORT_SYMBOL	 vmlinux 0xc99e685a	ccw_device_get_path_mask
+EXPORT_SYMBOL	 vmlinux 0xc9afe42d	netdev_boot_setup_check
+EXPORT_SYMBOL	 vmlinux 0xc9db0860	ip_fraglist_init
+EXPORT_SYMBOL	 vmlinux 0xc9df055a	xfrm_policy_walk_init
+EXPORT_SYMBOL	 vmlinux 0xc9f836f5	sort_r
+EXPORT_SYMBOL	 vmlinux 0xca0ec424	find_lock_entry
+EXPORT_SYMBOL	 vmlinux 0xca21ebd3	bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xca32f184	pci_bus_read_config_dword
+EXPORT_SYMBOL	 vmlinux 0xca431c05	wake_bit_function
+EXPORT_SYMBOL	 vmlinux 0xca4439d5	page_mapped
+EXPORT_SYMBOL	 vmlinux 0xca58bdb0	hash_and_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xca6984b1	flow_block_cb_lookup
+EXPORT_SYMBOL	 vmlinux 0xca730c8d	skb_realloc_headroom
+EXPORT_SYMBOL	 vmlinux 0xca8ac0aa	xfrm_input_resume
+EXPORT_SYMBOL	 vmlinux 0xca8d6cae	tcf_action_exec
+EXPORT_SYMBOL	 vmlinux 0xca9360b5	rb_next
+EXPORT_SYMBOL	 vmlinux 0xcaa49768	configfs_depend_item_unlocked
+EXPORT_SYMBOL	 vmlinux 0xcae3a07a	sg_copy_from_buffer
+EXPORT_SYMBOL	 vmlinux 0xcae6a9ef	cdrom_check_events
+EXPORT_SYMBOL	 vmlinux 0xcaeaddeb	dev_base_lock
+EXPORT_SYMBOL	 vmlinux 0xcaeeb13d	scsi_host_alloc
+EXPORT_SYMBOL	 vmlinux 0xcaf2c603	scsi_sd_pm_domain
+EXPORT_SYMBOL	 vmlinux 0xcb10f2b1	sock_no_mmap
+EXPORT_SYMBOL	 vmlinux 0xcb2765cb	touch_atime
+EXPORT_SYMBOL	 vmlinux 0xcb34a6e7	hdmi_spd_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xcb3ae215	call_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xcb44e3d2	__alloc_bucket_spinlocks
+EXPORT_SYMBOL	 vmlinux 0xcb494342	configfs_unregister_default_group
+EXPORT_SYMBOL	 vmlinux 0xcb56d1b6	xa_store
+EXPORT_SYMBOL	 vmlinux 0xcb610a7d	pci_map_rom
+EXPORT_SYMBOL	 vmlinux 0xcb61cba3	nf_log_set
+EXPORT_SYMBOL	 vmlinux 0xcb8f8b4c	seq_lseek
+EXPORT_SYMBOL	 vmlinux 0xcb9b8981	in6_dev_finish_destroy
+EXPORT_SYMBOL	 vmlinux 0xcba4abe3	list_sort
+EXPORT_SYMBOL	 vmlinux 0xcba60e2b	class3270
+EXPORT_SYMBOL	 vmlinux 0xcbb4749a	posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xcbbf0a6f	audit_log_task_context
+EXPORT_SYMBOL	 vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL	 vmlinux 0xcbd4898c	fortify_panic
+EXPORT_SYMBOL	 vmlinux 0xcbd5de96	scsi_block_when_processing_errors
+EXPORT_SYMBOL	 vmlinux 0xcbe8154b	generic_file_direct_write
+EXPORT_SYMBOL	 vmlinux 0xcbf3ede4	dquot_set_dqinfo
+EXPORT_SYMBOL	 vmlinux 0xcc04634b	__sock_queue_rcv_skb
+EXPORT_SYMBOL	 vmlinux 0xcc22d8c5	netlink_ns_capable
+EXPORT_SYMBOL	 vmlinux 0xcc328a5c	reservation_ww_class
+EXPORT_SYMBOL	 vmlinux 0xcc445ceb	__sg_page_iter_dma_next
+EXPORT_SYMBOL	 vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL	 vmlinux 0xcc5b8a15	watchdog_register_governor
+EXPORT_SYMBOL	 vmlinux 0xcc5d22d9	can_do_mlock
+EXPORT_SYMBOL	 vmlinux 0xcc65af97	tcp_enter_cwr
+EXPORT_SYMBOL	 vmlinux 0xcc6f9f7d	pagecache_write_begin
+EXPORT_SYMBOL	 vmlinux 0xcc7a4a11	dqget
+EXPORT_SYMBOL	 vmlinux 0xcc7ce8c1	km_query
+EXPORT_SYMBOL	 vmlinux 0xcc94ce05	stream_open
+EXPORT_SYMBOL	 vmlinux 0xcca94125	kstrtoint_from_user
+EXPORT_SYMBOL	 vmlinux 0xccb64f90	pci_enable_msix_range
+EXPORT_SYMBOL	 vmlinux 0xccc21f5e	input_get_new_minor
+EXPORT_SYMBOL	 vmlinux 0xccc4001d	gen_pool_fixed_alloc
+EXPORT_SYMBOL	 vmlinux 0xccd4c999	__sg_page_iter_start
+EXPORT_SYMBOL	 vmlinux 0xccdd825f	tcf_exts_dump_stats
+EXPORT_SYMBOL	 vmlinux 0xcced28f8	lockref_put_or_lock
+EXPORT_SYMBOL	 vmlinux 0xccf23404	tc_setup_cb_replace
+EXPORT_SYMBOL	 vmlinux 0xccfb9e07	dst_default_metrics
+EXPORT_SYMBOL	 vmlinux 0xccfd2ebc	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL	 vmlinux 0xcd0d2e89	blackhole_netdev
+EXPORT_SYMBOL	 vmlinux 0xcd256667	tcp_md5_needed
+EXPORT_SYMBOL	 vmlinux 0xcd26523f	buffer_check_dirty_writeback
+EXPORT_SYMBOL	 vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL	 vmlinux 0xcd30c7d6	netpoll_cleanup
+EXPORT_SYMBOL	 vmlinux 0xcd3fb729	page_pool_destroy
+EXPORT_SYMBOL	 vmlinux 0xcd583c0f	__ip_queue_xmit
+EXPORT_SYMBOL	 vmlinux 0xcd67066f	__free_pages
+EXPORT_SYMBOL	 vmlinux 0xcd9357df	xfrm_policy_flush
+EXPORT_SYMBOL	 vmlinux 0xcda285d3	pci_set_power_state
+EXPORT_SYMBOL	 vmlinux 0xcdc39c9e	security_ismaclabel
+EXPORT_SYMBOL	 vmlinux 0xcde77bcc	free_opal_dev
+EXPORT_SYMBOL	 vmlinux 0xce115496	devm_ioremap_nocache
+EXPORT_SYMBOL	 vmlinux 0xce1ffaee	pcie_print_link_status
+EXPORT_SYMBOL	 vmlinux 0xce20a53d	d_instantiate
+EXPORT_SYMBOL	 vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL	 vmlinux 0xce43de87	set_nlink
+EXPORT_SYMBOL	 vmlinux 0xce4cdb8e	fb_find_best_mode
+EXPORT_SYMBOL	 vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL	 vmlinux 0xce7bfe70	vm_brk
+EXPORT_SYMBOL	 vmlinux 0xce8b41eb	mem_section
+EXPORT_SYMBOL	 vmlinux 0xceab0311	strchrnul
+EXPORT_SYMBOL	 vmlinux 0xcec1e47a	dev_alert_hash
+EXPORT_SYMBOL	 vmlinux 0xcec98f1d	debug_raw_view
+EXPORT_SYMBOL	 vmlinux 0xcecd1c07	dquot_release
+EXPORT_SYMBOL	 vmlinux 0xced715a4	pci_enable_wake
+EXPORT_SYMBOL	 vmlinux 0xcee624a6	irq_to_desc
+EXPORT_SYMBOL	 vmlinux 0xcef42ec4	vfs_create_mount
+EXPORT_SYMBOL	 vmlinux 0xcf000c7e	hdmi_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xcf0303b7	dma_virt_ops
+EXPORT_SYMBOL	 vmlinux 0xcf0eeac5	pci_write_config_word
+EXPORT_SYMBOL	 vmlinux 0xcf1c6ca3	cmdline_parts_find
+EXPORT_SYMBOL	 vmlinux 0xcf3e11a2	__xfrm_route_forward
+EXPORT_SYMBOL	 vmlinux 0xcf4050b3	generic_file_write_iter
+EXPORT_SYMBOL	 vmlinux 0xcf4c293b	kthread_bind
+EXPORT_SYMBOL	 vmlinux 0xcf511334	__neigh_set_probe_once
+EXPORT_SYMBOL	 vmlinux 0xcf6012cc	inet6_add_protocol
+EXPORT_SYMBOL	 vmlinux 0xcf66fec7	fwnode_graph_parse_endpoint
+EXPORT_SYMBOL	 vmlinux 0xcf708af1	pudp_xchg_direct
+EXPORT_SYMBOL	 vmlinux 0xcf8bf0ce	dma_fence_wait_any_timeout
+EXPORT_SYMBOL	 vmlinux 0xcfb20994	lockref_mark_dead
+EXPORT_SYMBOL	 vmlinux 0xcfc0ce03	ccw_device_get_ciw
+EXPORT_SYMBOL	 vmlinux 0xd017da5e	scsi_report_opcode
+EXPORT_SYMBOL	 vmlinux 0xd042475c	qdisc_get_rtab
+EXPORT_SYMBOL	 vmlinux 0xd04c1a64	sysctl_devconf_inherit_init_net
+EXPORT_SYMBOL	 vmlinux 0xd05d9698	jbd2_journal_extend
+EXPORT_SYMBOL	 vmlinux 0xd0654aba	woken_wake_function
+EXPORT_SYMBOL	 vmlinux 0xd0661fb3	vscnprintf
+EXPORT_SYMBOL	 vmlinux 0xd06e4839	arch_spin_trylock_retry
+EXPORT_SYMBOL	 vmlinux 0xd082736b	ipv6_dev_mc_inc
+EXPORT_SYMBOL	 vmlinux 0xd08688e3	follow_pfn
+EXPORT_SYMBOL	 vmlinux 0xd094ddc5	pcim_iomap_regions
+EXPORT_SYMBOL	 vmlinux 0xd0a2847c	sha_init
+EXPORT_SYMBOL	 vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL	 vmlinux 0xd0c1319b	inode_nohighmem
+EXPORT_SYMBOL	 vmlinux 0xd0dc9099	simple_statfs
+EXPORT_SYMBOL	 vmlinux 0xd0e8530b	netdev_crit
+EXPORT_SYMBOL	 vmlinux 0xd0f06692	scsi_eh_prep_cmnd
+EXPORT_SYMBOL	 vmlinux 0xd0f82e5e	__skb_ext_put
+EXPORT_SYMBOL	 vmlinux 0xd0fd6e17	generic_listxattr
+EXPORT_SYMBOL	 vmlinux 0xd1041beb	devm_alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xd1470ff7	kstrtou16_from_user
+EXPORT_SYMBOL	 vmlinux 0xd155a672	d_add_ci
+EXPORT_SYMBOL	 vmlinux 0xd15cc634	eth_header_cache_update
+EXPORT_SYMBOL	 vmlinux 0xd17a4cc0	netif_rx
+EXPORT_SYMBOL	 vmlinux 0xd17de455	__kernel_fpu_begin
+EXPORT_SYMBOL	 vmlinux 0xd1816f32	frontswap_writethrough
+EXPORT_SYMBOL	 vmlinux 0xd18efc1f	_copy_to_iter
+EXPORT_SYMBOL	 vmlinux 0xd1aa60c6	fput
+EXPORT_SYMBOL	 vmlinux 0xd1b4b419	tcw_get_intrg
+EXPORT_SYMBOL	 vmlinux 0xd1bb2a60	lru_cache_add_file
+EXPORT_SYMBOL	 vmlinux 0xd1d87e92	scsi_mlreturn_string
+EXPORT_SYMBOL	 vmlinux 0xd1e0d31a	__frontswap_test
+EXPORT_SYMBOL	 vmlinux 0xd1f152ad	kstrtoll_from_user
+EXPORT_SYMBOL	 vmlinux 0xd20929ff	security_dentry_init_security
+EXPORT_SYMBOL	 vmlinux 0xd221d7b5	hdmi_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xd24cd859	km_state_notify
+EXPORT_SYMBOL	 vmlinux 0xd2535ea4	inet6_protos
+EXPORT_SYMBOL	 vmlinux 0xd25d4f74	console_blank_hook
+EXPORT_SYMBOL	 vmlinux 0xd2679057	__alloc_pages_nodemask
+EXPORT_SYMBOL	 vmlinux 0xd27b25dd	blk_check_plugged
+EXPORT_SYMBOL	 vmlinux 0xd2874345	d_lookup
+EXPORT_SYMBOL	 vmlinux 0xd28cf1ca	__close_fd
+EXPORT_SYMBOL	 vmlinux 0xd2da1048	register_netdevice_notifier
+EXPORT_SYMBOL	 vmlinux 0xd2da5c71	skb_prepare_seq_read
+EXPORT_SYMBOL	 vmlinux 0xd2e0e10f	__task_pid_nr_ns
+EXPORT_SYMBOL	 vmlinux 0xd347afb7	freezing_slow_path
+EXPORT_SYMBOL	 vmlinux 0xd34c18a7	no_seek_end_llseek_size
+EXPORT_SYMBOL	 vmlinux 0xd3543063	memcg_kmem_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xd3561352	swake_up_all
+EXPORT_SYMBOL	 vmlinux 0xd35a6d31	mempool_kmalloc
+EXPORT_SYMBOL	 vmlinux 0xd35dd7f3	vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xd36c1350	netdev_change_features
+EXPORT_SYMBOL	 vmlinux 0xd36dc10c	get_random_u32
+EXPORT_SYMBOL	 vmlinux 0xd37ba530	open_exec
+EXPORT_SYMBOL	 vmlinux 0xd3af979c	memdup_user
+EXPORT_SYMBOL	 vmlinux 0xd3b2548a	__dev_get_by_index
+EXPORT_SYMBOL	 vmlinux 0xd3da44e9	rps_sock_flow_table
+EXPORT_SYMBOL	 vmlinux 0xd3de7d08	input_match_device_id
+EXPORT_SYMBOL	 vmlinux 0xd3eaf1ed	devlink_dpipe_entry_clear
+EXPORT_SYMBOL	 vmlinux 0xd3fb12fc	icmp6_send
+EXPORT_SYMBOL	 vmlinux 0xd406d266	fb_mode_is_equal
+EXPORT_SYMBOL	 vmlinux 0xd40f6f36	__jhash_string
+EXPORT_SYMBOL	 vmlinux 0xd41f5402	cpumask_next
+EXPORT_SYMBOL	 vmlinux 0xd424d7e2	neigh_sysctl_unregister
+EXPORT_SYMBOL	 vmlinux 0xd42927c2	__mod_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xd446ea29	blk_rq_map_user
+EXPORT_SYMBOL	 vmlinux 0xd44e7533	param_get_byte
+EXPORT_SYMBOL	 vmlinux 0xd453f0c8	sock_kfree_s
+EXPORT_SYMBOL	 vmlinux 0xd4541df4	fwnode_irq_get
+EXPORT_SYMBOL	 vmlinux 0xd4560bdb	ww_mutex_lock
+EXPORT_SYMBOL	 vmlinux 0xd461445e	tty_unregister_device
+EXPORT_SYMBOL	 vmlinux 0xd46b4ee9	xfrm_if_register_cb
+EXPORT_SYMBOL	 vmlinux 0xd47d27d0	mr_rtm_dumproute
+EXPORT_SYMBOL	 vmlinux 0xd48f69c8	tcw_get_tsb
+EXPORT_SYMBOL	 vmlinux 0xd4952cc0	cpumask_next_wrap
+EXPORT_SYMBOL	 vmlinux 0xd4a2bf33	__posix_acl_create
+EXPORT_SYMBOL	 vmlinux 0xd4bb4a82	inet6addr_validator_notifier_call_chain
+EXPORT_SYMBOL	 vmlinux 0xd4c660cf	tty_port_put
+EXPORT_SYMBOL	 vmlinux 0xd4c8c54e	dma_fence_chain_ops
+EXPORT_SYMBOL	 vmlinux 0xd4e9d05d	register_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xd4f3833d	pci_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xd4fa5a87	__kfifo_dma_out_prepare
+EXPORT_SYMBOL	 vmlinux 0xd4fdbe44	udp_lib_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd5097984	simple_get_link
+EXPORT_SYMBOL	 vmlinux 0xd5263820	mb_cache_destroy
+EXPORT_SYMBOL	 vmlinux 0xd545810c	get_gendisk
+EXPORT_SYMBOL	 vmlinux 0xd5504f7a	dma_fence_chain_init
+EXPORT_SYMBOL	 vmlinux 0xd55d2451	__scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xd55fed0b	ip_generic_getfrag
+EXPORT_SYMBOL	 vmlinux 0xd58e70dd	net_rand_noise
+EXPORT_SYMBOL	 vmlinux 0xd5a0298b	bio_integrity_add_page
+EXPORT_SYMBOL	 vmlinux 0xd5a44f6c	param_ops_bint
+EXPORT_SYMBOL	 vmlinux 0xd5aa1fb6	tc_cleanup_flow_action
+EXPORT_SYMBOL	 vmlinux 0xd5b3d0d5	xxh64_copy_state
+EXPORT_SYMBOL	 vmlinux 0xd5c13408	security_sb_set_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xd5cd88c6	loop_register_transfer
+EXPORT_SYMBOL	 vmlinux 0xd5e90454	ap_domain_index
+EXPORT_SYMBOL	 vmlinux 0xd60736ec	gf128mul_free_64k
+EXPORT_SYMBOL	 vmlinux 0xd609d2a3	pci_remove_bus
+EXPORT_SYMBOL	 vmlinux 0xd6277a6b	n_tty_ioctl_helper
+EXPORT_SYMBOL	 vmlinux 0xd656058e	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL	 vmlinux 0xd666a588	smp_ctl_clear_bit
+EXPORT_SYMBOL	 vmlinux 0xd6785993	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xd6851a0b	lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xd688716b	dm_kcopyd_client_create
+EXPORT_SYMBOL	 vmlinux 0xd68a01b8	xa_erase
+EXPORT_SYMBOL	 vmlinux 0xd68c5a1f	adjust_resource
+EXPORT_SYMBOL	 vmlinux 0xd69b3c98	utf8_strncasecmp
+EXPORT_SYMBOL	 vmlinux 0xd6cd39f1	neigh_proc_dointvec
+EXPORT_SYMBOL	 vmlinux 0xd6d0ea88	__posix_acl_chmod
+EXPORT_SYMBOL	 vmlinux 0xd6eaaea1	full_name_hash
+EXPORT_SYMBOL	 vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL	 vmlinux 0xd6fb1066	jbd2_journal_get_create_access
+EXPORT_SYMBOL	 vmlinux 0xd6fde043	is_module_sig_enforced
+EXPORT_SYMBOL	 vmlinux 0xd70d35a1	gf128mul_4k_bbe
+EXPORT_SYMBOL	 vmlinux 0xd71c95d2	inet6_getname
+EXPORT_SYMBOL	 vmlinux 0xd72b5128	dma_direct_sync_sg_for_cpu
+EXPORT_SYMBOL	 vmlinux 0xd7735ce6	tcp_prot
+EXPORT_SYMBOL	 vmlinux 0xd7905dd3	pci_msix_vec_count
+EXPORT_SYMBOL	 vmlinux 0xd79a581e	pci_write_vpd
+EXPORT_SYMBOL	 vmlinux 0xd7bb0532	md_handle_request
+EXPORT_SYMBOL	 vmlinux 0xd7d280ad	irq_poll_complete
+EXPORT_SYMBOL	 vmlinux 0xd7dafc09	prepare_to_swait_exclusive
+EXPORT_SYMBOL	 vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL	 vmlinux 0xd7f61933	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL	 vmlinux 0xd7f97baf	__skb_pad
+EXPORT_SYMBOL	 vmlinux 0xd805bc2b	cdev_add
+EXPORT_SYMBOL	 vmlinux 0xd81621cf	raw3270_deactivate_view
+EXPORT_SYMBOL	 vmlinux 0xd81f3364	pci_irq_get_node
+EXPORT_SYMBOL	 vmlinux 0xd82621cc	blk_integrity_merge_rq
+EXPORT_SYMBOL	 vmlinux 0xd827fff3	memremap
+EXPORT_SYMBOL	 vmlinux 0xd8351282	tcp_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xd83849e2	ZSTD_getDictID_fromFrame
+EXPORT_SYMBOL	 vmlinux 0xd83b0985	blk_put_request
+EXPORT_SYMBOL	 vmlinux 0xd8482db1	reuseport_select_sock
+EXPORT_SYMBOL	 vmlinux 0xd85f543d	kill_anon_super
+EXPORT_SYMBOL	 vmlinux 0xd8602b6a	tun_is_xdp_frame
+EXPORT_SYMBOL	 vmlinux 0xd87cb5f2	dev_vprintk_emit
+EXPORT_SYMBOL	 vmlinux 0xd88139a1	md_write_inc
+EXPORT_SYMBOL	 vmlinux 0xd8917ff1	netdev_class_remove_file_ns
+EXPORT_SYMBOL	 vmlinux 0xd8959ae8	__cpuhp_setup_state
+EXPORT_SYMBOL	 vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL	 vmlinux 0xd8a837b2	end_buffer_async_write
+EXPORT_SYMBOL	 vmlinux 0xd8a994eb	scsi_extd_sense_format
+EXPORT_SYMBOL	 vmlinux 0xd8ae0bd8	sk_common_release
+EXPORT_SYMBOL	 vmlinux 0xd8f88d65	textsearch_register
+EXPORT_SYMBOL	 vmlinux 0xd8fcda72	cpcmd
+EXPORT_SYMBOL	 vmlinux 0xd906ac2a	tcp_v4_mtu_reduced
+EXPORT_SYMBOL	 vmlinux 0xd9083b7d	_copy_from_iter_nocache
+EXPORT_SYMBOL	 vmlinux 0xd926e599	__xa_erase
+EXPORT_SYMBOL	 vmlinux 0xd92795f3	get_user_pages_remote
+EXPORT_SYMBOL	 vmlinux 0xd92b86e2	sock_no_getname
+EXPORT_SYMBOL	 vmlinux 0xd933e9fa	posix_acl_valid
+EXPORT_SYMBOL	 vmlinux 0xd936455f	generic_file_read_iter
+EXPORT_SYMBOL	 vmlinux 0xd955f9fd	iget_locked
+EXPORT_SYMBOL	 vmlinux 0xd957ed4d	drop_nlink
+EXPORT_SYMBOL	 vmlinux 0xd95f3564	md_check_no_bitmap
+EXPORT_SYMBOL	 vmlinux 0xd9675836	kmem_cache_shrink
+EXPORT_SYMBOL	 vmlinux 0xd96de8cb	__sysfs_match_string
+EXPORT_SYMBOL	 vmlinux 0xd96fd4e9	d_path
+EXPORT_SYMBOL	 vmlinux 0xd971cb91	ccw_device_set_options_mask
+EXPORT_SYMBOL	 vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL	 vmlinux 0xd986b3ed	remap_vmalloc_range_partial
+EXPORT_SYMBOL	 vmlinux 0xd987d272	block_write_begin
+EXPORT_SYMBOL	 vmlinux 0xd9a74af4	flow_rule_match_ipv6_addrs
+EXPORT_SYMBOL	 vmlinux 0xd9ae583b	complete_all
+EXPORT_SYMBOL	 vmlinux 0xd9b029df	elevator_alloc
+EXPORT_SYMBOL	 vmlinux 0xd9b3f97d	console_devno
+EXPORT_SYMBOL	 vmlinux 0xd9b4dd64	get_tree_single_reconf
+EXPORT_SYMBOL	 vmlinux 0xd9cd2dd5	dquot_get_state
+EXPORT_SYMBOL	 vmlinux 0xd9d8fd16	register_restart_handler
+EXPORT_SYMBOL	 vmlinux 0xd9d952d1	crypto_aes_sbox
+EXPORT_SYMBOL	 vmlinux 0xd9e1782c	fqdir_exit
+EXPORT_SYMBOL	 vmlinux 0xd9ea0db1	tty_hung_up_p
+EXPORT_SYMBOL	 vmlinux 0xd9f7b726	tty_port_close_end
+EXPORT_SYMBOL	 vmlinux 0xd9faef17	nf_log_unset
+EXPORT_SYMBOL	 vmlinux 0xda042e3e	__dev_kfree_skb_any
+EXPORT_SYMBOL	 vmlinux 0xda0ca204	__scsi_add_device
+EXPORT_SYMBOL	 vmlinux 0xda39dab8	compat_nf_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xda3a4999	build_skb
+EXPORT_SYMBOL	 vmlinux 0xda3cce79	ccw_device_halt
+EXPORT_SYMBOL	 vmlinux 0xda3d10a8	security_tun_dev_open
+EXPORT_SYMBOL	 vmlinux 0xda3d56dc	dquot_initialize
+EXPORT_SYMBOL	 vmlinux 0xda5c098e	genlmsg_put
+EXPORT_SYMBOL	 vmlinux 0xda72a7ec	ZSTD_nextInputType
+EXPORT_SYMBOL	 vmlinux 0xda89ea3b	ip_idents_reserve
+EXPORT_SYMBOL	 vmlinux 0xda8edac5	ip_mc_join_group
+EXPORT_SYMBOL	 vmlinux 0xdab5b615	scsi_scan_target
+EXPORT_SYMBOL	 vmlinux 0xdac4913a	bitmap_allocate_region
+EXPORT_SYMBOL	 vmlinux 0xdac97957	_atomic_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xdae162cb	string_unescape
+EXPORT_SYMBOL	 vmlinux 0xdaf285e7	trace_raw_output_prep
+EXPORT_SYMBOL	 vmlinux 0xdafced47	kernel_accept
+EXPORT_SYMBOL	 vmlinux 0xdb0337bd	vfs_whiteout
+EXPORT_SYMBOL	 vmlinux 0xdb18140d	md_reload_sb
+EXPORT_SYMBOL	 vmlinux 0xdb1eca5b	filemap_fdatawrite
+EXPORT_SYMBOL	 vmlinux 0xdb42c068	ptep_xchg_lazy
+EXPORT_SYMBOL	 vmlinux 0xdb4f013a	setup_new_exec
+EXPORT_SYMBOL	 vmlinux 0xdb4f52cd	pci_wake_from_d3
+EXPORT_SYMBOL	 vmlinux 0xdb6bb537	vc_cons
+EXPORT_SYMBOL	 vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL	 vmlinux 0xdb9d6327	xfrm_state_free
+EXPORT_SYMBOL	 vmlinux 0xdbd19e00	scsi_init_io
+EXPORT_SYMBOL	 vmlinux 0xdbd83c84	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL	 vmlinux 0xdbdf6c92	ioport_resource
+EXPORT_SYMBOL	 vmlinux 0xdc14eda7	pci_pci_problems
+EXPORT_SYMBOL	 vmlinux 0xdc3bf315	inc_zone_page_state
+EXPORT_SYMBOL	 vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL	 vmlinux 0xdc49c198	reciprocal_value_adv
+EXPORT_SYMBOL	 vmlinux 0xdc523562	jbd2_journal_clear_err
+EXPORT_SYMBOL	 vmlinux 0xdc6f029d	scm_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xdc8835a4	ip6_dst_hoplimit
+EXPORT_SYMBOL	 vmlinux 0xdcb34e51	sock_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xdcbc75d4	__scm_destroy
+EXPORT_SYMBOL	 vmlinux 0xdcc78d2e	unregister_cdrom
+EXPORT_SYMBOL	 vmlinux 0xdcda0a61	dev_get_by_name_rcu
+EXPORT_SYMBOL	 vmlinux 0xdcdd797d	__skb_wait_for_more_packets
+EXPORT_SYMBOL	 vmlinux 0xdd1cdbcb	add_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xdd265023	udp_ioctl
+EXPORT_SYMBOL	 vmlinux 0xdd2c169b	mb_cache_create
+EXPORT_SYMBOL	 vmlinux 0xdd372dbb	flow_block_cb_incref
+EXPORT_SYMBOL	 vmlinux 0xdd4391c7	blk_mq_run_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xdd4bffbf	gen_pool_add_owner
+EXPORT_SYMBOL	 vmlinux 0xdd535b10	register_shrinker
+EXPORT_SYMBOL	 vmlinux 0xdd5e7ed9	iucv_if
+EXPORT_SYMBOL	 vmlinux 0xdd6a42cb	scsi_device_lookup
+EXPORT_SYMBOL	 vmlinux 0xdd722442	dm_kcopyd_zero
+EXPORT_SYMBOL	 vmlinux 0xdd742d72	__sg_free_table
+EXPORT_SYMBOL	 vmlinux 0xdd849d51	scsi_get_sense_info_fld
+EXPORT_SYMBOL	 vmlinux 0xdd9eef1f	pci_write_config_dword
+EXPORT_SYMBOL	 vmlinux 0xddbf0a65	pci_bus_add_devices
+EXPORT_SYMBOL	 vmlinux 0xddd3b6fe	__put_cred
+EXPORT_SYMBOL	 vmlinux 0xdde74f70	ip_options_compile
+EXPORT_SYMBOL	 vmlinux 0xddf0c053	km_new_mapping
+EXPORT_SYMBOL	 vmlinux 0xddf84b22	vlan_vids_del_by_dev
+EXPORT_SYMBOL	 vmlinux 0xde0bdcff	memset
+EXPORT_SYMBOL	 vmlinux 0xde0d177b	alloc_etherdev_mqs
+EXPORT_SYMBOL	 vmlinux 0xde0e351f	would_dump
+EXPORT_SYMBOL	 vmlinux 0xde10f536	proc_douintvec
+EXPORT_SYMBOL	 vmlinux 0xde18223a	__d_drop
+EXPORT_SYMBOL	 vmlinux 0xde1e6c19	proc_mkdir
+EXPORT_SYMBOL	 vmlinux 0xde39a101	napi_gro_frags
+EXPORT_SYMBOL	 vmlinux 0xde53976c	_dev_notice
+EXPORT_SYMBOL	 vmlinux 0xde6cb91a	eth_header_parse_protocol
+EXPORT_SYMBOL	 vmlinux 0xde70d778	dump_page
+EXPORT_SYMBOL	 vmlinux 0xde8a415c	xor_block_xc
+EXPORT_SYMBOL	 vmlinux 0xde9a5fac	elv_bio_merge_ok
+EXPORT_SYMBOL	 vmlinux 0xde9ac068	d_alloc_name
+EXPORT_SYMBOL	 vmlinux 0xdeab91b8	dev_load
+EXPORT_SYMBOL	 vmlinux 0xded39a6b	gen_kill_estimator
+EXPORT_SYMBOL	 vmlinux 0xdeda2ae2	tcw_get_data
+EXPORT_SYMBOL	 vmlinux 0xdef7c893	fb_match_mode
+EXPORT_SYMBOL	 vmlinux 0xdf2c2742	rb_last
+EXPORT_SYMBOL	 vmlinux 0xdf54a8f7	netlink_unregister_notifier
+EXPORT_SYMBOL	 vmlinux 0xdf5f4d44	param_get_ushort
+EXPORT_SYMBOL	 vmlinux 0xdf681889	unregister_md_personality
+EXPORT_SYMBOL	 vmlinux 0xdf84af5f	devm_pci_remap_cfgspace
+EXPORT_SYMBOL	 vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL	 vmlinux 0xdf93b9d8	timespec64_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xdf947c53	get_mem_cgroup_from_page
+EXPORT_SYMBOL	 vmlinux 0xdf98871d	airq_iv_release
+EXPORT_SYMBOL	 vmlinux 0xdf9ec50b	fscrypt_decrypt_bio
+EXPORT_SYMBOL	 vmlinux 0xdfa1a726	tcp_release_cb
+EXPORT_SYMBOL	 vmlinux 0xdfa9acca	smp_cpu_mtid
+EXPORT_SYMBOL	 vmlinux 0xdfaeef2b	netif_skb_features
+EXPORT_SYMBOL	 vmlinux 0xdfb0e4ed	neigh_sysctl_register
+EXPORT_SYMBOL	 vmlinux 0xdfcc992c	current_work
+EXPORT_SYMBOL	 vmlinux 0xdfd6db9a	follow_down_one
+EXPORT_SYMBOL	 vmlinux 0xdfdfa9e7	utf8nfdi
+EXPORT_SYMBOL	 vmlinux 0xdffc80fc	vesa_modes
+EXPORT_SYMBOL	 vmlinux 0xe00c671a	skb_copy_and_csum_bits
+EXPORT_SYMBOL	 vmlinux 0xe0125158	__remove_inode_hash
+EXPORT_SYMBOL	 vmlinux 0xe0241c04	raw3270_activate_view
+EXPORT_SYMBOL	 vmlinux 0xe050530e	jbd2_journal_finish_inode_data_buffers
+EXPORT_SYMBOL	 vmlinux 0xe05fa245	install_exec_creds
+EXPORT_SYMBOL	 vmlinux 0xe063a0e8	md_integrity_register
+EXPORT_SYMBOL	 vmlinux 0xe063ed7d	inc_node_page_state
+EXPORT_SYMBOL	 vmlinux 0xe06d8410	unregister_netdevice_queue
+EXPORT_SYMBOL	 vmlinux 0xe0736b6c	jbd2_journal_invalidatepage
+EXPORT_SYMBOL	 vmlinux 0xe073d7b0	scm_fp_dup
+EXPORT_SYMBOL	 vmlinux 0xe07c98c6	tty_port_lower_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xe0812348	security_path_unlink
+EXPORT_SYMBOL	 vmlinux 0xe0875eb1	kstrtobool
+EXPORT_SYMBOL	 vmlinux 0xe0a323f6	__do_once_slow_start
+EXPORT_SYMBOL	 vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL	 vmlinux 0xe0bc4fb2	simple_write_to_buffer
+EXPORT_SYMBOL	 vmlinux 0xe0db8304	no_seek_end_llseek
+EXPORT_SYMBOL	 vmlinux 0xe0e41a93	pci_fixup_cardbus
+EXPORT_SYMBOL	 vmlinux 0xe123f3d9	dma_fence_release
+EXPORT_SYMBOL	 vmlinux 0xe1247517	dm_put_device
+EXPORT_SYMBOL	 vmlinux 0xe13af26f	sclp_pci_deconfigure
+EXPORT_SYMBOL	 vmlinux 0xe13ef8f4	proc_create_single_data
+EXPORT_SYMBOL	 vmlinux 0xe15b1b23	sdev_disable_disk_events
+EXPORT_SYMBOL	 vmlinux 0xe1908478	scsi_get_device_flags_keyed
+EXPORT_SYMBOL	 vmlinux 0xe1919ce9	completion_done
+EXPORT_SYMBOL	 vmlinux 0xe1a51cb3	__dev_get_by_name
+EXPORT_SYMBOL	 vmlinux 0xe1ae301b	bfifo_qdisc_ops
+EXPORT_SYMBOL	 vmlinux 0xe1dcf64a	audit_log_format
+EXPORT_SYMBOL	 vmlinux 0xe1f1e5fa	scsi_print_sense
+EXPORT_SYMBOL	 vmlinux 0xe22241f9	can_nice
+EXPORT_SYMBOL	 vmlinux 0xe26352b2	jbd2_log_wait_commit
+EXPORT_SYMBOL	 vmlinux 0xe2740e56	ZSTD_getFrameContentSize
+EXPORT_SYMBOL	 vmlinux 0xe2821c08	udp_seq_ops
+EXPORT_SYMBOL	 vmlinux 0xe28da80b	tccb_add_dcw
+EXPORT_SYMBOL	 vmlinux 0xe29221f1	pci_irq_vector
+EXPORT_SYMBOL	 vmlinux 0xe292bb90	blkdev_issue_flush
+EXPORT_SYMBOL	 vmlinux 0xe29d2d02	__genradix_ptr_alloc
+EXPORT_SYMBOL	 vmlinux 0xe2b44301	page_mapping
+EXPORT_SYMBOL	 vmlinux 0xe2cecc56	flow_block_cb_is_busy
+EXPORT_SYMBOL	 vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL	 vmlinux 0xe2ec3089	__quota_error
+EXPORT_SYMBOL	 vmlinux 0xe2f69496	pci_scan_root_bus_bridge
+EXPORT_SYMBOL	 vmlinux 0xe2ffeef3	scsi_req_init
+EXPORT_SYMBOL	 vmlinux 0xe30be315	hdmi_vendor_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xe32a75da	remap_vmalloc_range
+EXPORT_SYMBOL	 vmlinux 0xe32ab4d8	xxh64_digest
+EXPORT_SYMBOL	 vmlinux 0xe32ce6da	scsi_target_resume
+EXPORT_SYMBOL	 vmlinux 0xe32e6640	pci_scan_bus
+EXPORT_SYMBOL	 vmlinux 0xe3436b0c	tcp_seq_stop
+EXPORT_SYMBOL	 vmlinux 0xe355a848	scsi_remove_device
+EXPORT_SYMBOL	 vmlinux 0xe35fb609	kmemdup
+EXPORT_SYMBOL	 vmlinux 0xe36c2810	pci_resize_resource
+EXPORT_SYMBOL	 vmlinux 0xe398491e	skb_tx_error
+EXPORT_SYMBOL	 vmlinux 0xe3cec617	fbcon_rotate_ud
+EXPORT_SYMBOL	 vmlinux 0xe3d70645	raw3270_request_set_cmd
+EXPORT_SYMBOL	 vmlinux 0xe3e4ea1b	tty_unlock
+EXPORT_SYMBOL	 vmlinux 0xe3e8b06b	lease_modify
+EXPORT_SYMBOL	 vmlinux 0xe3ec2f2b	alloc_chrdev_region
+EXPORT_SYMBOL	 vmlinux 0xe3ff2c41	get_random_u64
+EXPORT_SYMBOL	 vmlinux 0xe4059a10	sock_alloc
+EXPORT_SYMBOL	 vmlinux 0xe422cd37	create_empty_buffers
+EXPORT_SYMBOL	 vmlinux 0xe43a5470	take_dentry_name_snapshot
+EXPORT_SYMBOL	 vmlinux 0xe43c03b6	is_subdir
+EXPORT_SYMBOL	 vmlinux 0xe43d9ab2	slash_name
+EXPORT_SYMBOL	 vmlinux 0xe441e95a	refcount_dec_not_one
+EXPORT_SYMBOL	 vmlinux 0xe44b6a39	d_splice_alias
+EXPORT_SYMBOL	 vmlinux 0xe468dc4d	tcp_fastopen_defer_connect
+EXPORT_SYMBOL	 vmlinux 0xe468f819	scsi_command_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xe488ab2a	user_path_at_empty
+EXPORT_SYMBOL	 vmlinux 0xe49f9b39	sock_init_data
+EXPORT_SYMBOL	 vmlinux 0xe4a021c3	pci_get_subsys
+EXPORT_SYMBOL	 vmlinux 0xe4a250b6	radix_tree_delete_item
+EXPORT_SYMBOL	 vmlinux 0xe4a9be58	nf_hook_slow
+EXPORT_SYMBOL	 vmlinux 0xe4d4f9fe	kblockd_schedule_work_on
+EXPORT_SYMBOL	 vmlinux 0xe4e6c560	input_inject_event
+EXPORT_SYMBOL	 vmlinux 0xe4e743c1	tc_setup_cb_call
+EXPORT_SYMBOL	 vmlinux 0xe4eb612c	find_inode_nowait
+EXPORT_SYMBOL	 vmlinux 0xe4f8676a	skb_try_coalesce
+EXPORT_SYMBOL	 vmlinux 0xe5094832	page_table_allocate_pgste
+EXPORT_SYMBOL	 vmlinux 0xe50ae128	xa_set_mark
+EXPORT_SYMBOL	 vmlinux 0xe5212bf9	input_get_timestamp
+EXPORT_SYMBOL	 vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL	 vmlinux 0xe524e3e2	bcmp
+EXPORT_SYMBOL	 vmlinux 0xe531d508	iter_file_splice_write
+EXPORT_SYMBOL	 vmlinux 0xe55f5128	cdrom_release
+EXPORT_SYMBOL	 vmlinux 0xe5652e83	sie64a
+EXPORT_SYMBOL	 vmlinux 0xe569f4be	__bdevname
+EXPORT_SYMBOL	 vmlinux 0xe56b0d0f	stsch
+EXPORT_SYMBOL	 vmlinux 0xe57acef3	sk_net_capable
+EXPORT_SYMBOL	 vmlinux 0xe58090ca	security_ib_endport_manage_subnet
+EXPORT_SYMBOL	 vmlinux 0xe583c517	airq_iv_scan
+EXPORT_SYMBOL	 vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL	 vmlinux 0xe590dea3	sk_busy_loop_end
+EXPORT_SYMBOL	 vmlinux 0xe59daa02	pci_free_irq
+EXPORT_SYMBOL	 vmlinux 0xe5c4cf93	vm_node_stat
+EXPORT_SYMBOL	 vmlinux 0xe5c66a1c	tty_register_ldisc
+EXPORT_SYMBOL	 vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL	 vmlinux 0xe5c82a80	napi_gro_flush
+EXPORT_SYMBOL	 vmlinux 0xe5ea6124	ZSTD_initDStream
+EXPORT_SYMBOL	 vmlinux 0xe613a798	inet_addr_is_any
+EXPORT_SYMBOL	 vmlinux 0xe61b7f5f	register_adapter_interrupt
+EXPORT_SYMBOL	 vmlinux 0xe62a4f74	tc_setup_cb_reoffload
+EXPORT_SYMBOL	 vmlinux 0xe62c47f3	security_sb_clone_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xe6524bf5	finish_swait
+EXPORT_SYMBOL	 vmlinux 0xe6735aee	bdi_put
+EXPORT_SYMBOL	 vmlinux 0xe6754b8b	unmap_mapping_range
+EXPORT_SYMBOL	 vmlinux 0xe69e45ef	bio_chain
+EXPORT_SYMBOL	 vmlinux 0xe6a98026	dev_uc_sync
+EXPORT_SYMBOL	 vmlinux 0xe6d5aa51	input_mt_report_pointer_emulation
+EXPORT_SYMBOL	 vmlinux 0xe6e7fe8f	ccw_device_tm_intrg
+EXPORT_SYMBOL	 vmlinux 0xe6e90268	dev_mc_add_excl
+EXPORT_SYMBOL	 vmlinux 0xe6ea1ba3	tty_unregister_driver
+EXPORT_SYMBOL	 vmlinux 0xe6f1486d	dql_reset
+EXPORT_SYMBOL	 vmlinux 0xe70b5cbc	bd_abort_claiming
+EXPORT_SYMBOL	 vmlinux 0xe713a97a	irq_subclass_unregister
+EXPORT_SYMBOL	 vmlinux 0xe71f703c	get_unmapped_area
+EXPORT_SYMBOL	 vmlinux 0xe72d4083	unlink_framebuffer
+EXPORT_SYMBOL	 vmlinux 0xe7324b9a	utf8nfdicf
+EXPORT_SYMBOL	 vmlinux 0xe74f6abc	dma_resv_copy_fences
+EXPORT_SYMBOL	 vmlinux 0xe777e808	sclp_ap_configure
+EXPORT_SYMBOL	 vmlinux 0xe796f19a	hdmi_audio_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xe798236d	jiffies
+EXPORT_SYMBOL	 vmlinux 0xe7a740f2	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL	 vmlinux 0xe7b905cd	bmap
+EXPORT_SYMBOL	 vmlinux 0xe7d3c4c1	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL	 vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL	 vmlinux 0xe7eaf085	skb_unlink
+EXPORT_SYMBOL	 vmlinux 0xe8057564	__dquot_alloc_space
+EXPORT_SYMBOL	 vmlinux 0xe80fdb17	key_put
+EXPORT_SYMBOL	 vmlinux 0xe815f80d	register_quota_format
+EXPORT_SYMBOL	 vmlinux 0xe8232033	get_super_exclusive_thawed
+EXPORT_SYMBOL	 vmlinux 0xe840c769	__breadahead_gfp
+EXPORT_SYMBOL	 vmlinux 0xe85b11ac	scsi_vpd_tpg_id
+EXPORT_SYMBOL	 vmlinux 0xe85e16de	cpu_rmap_update
+EXPORT_SYMBOL	 vmlinux 0xe8b0eea3	rawv6_mh_filter_unregister
+EXPORT_SYMBOL	 vmlinux 0xe8b39d7d	config_item_put
+EXPORT_SYMBOL	 vmlinux 0xe8ba125d	kmemdup_nul
+EXPORT_SYMBOL	 vmlinux 0xe8c3bd43	blk_mq_start_hw_queue
+EXPORT_SYMBOL	 vmlinux 0xe8ccbfb1	genl_notify
+EXPORT_SYMBOL	 vmlinux 0xe8d1c023	inet_pton_with_scope
+EXPORT_SYMBOL	 vmlinux 0xe8de8a80	dma_fence_signal_locked
+EXPORT_SYMBOL	 vmlinux 0xe8e25c28	page_cache_prev_miss
+EXPORT_SYMBOL	 vmlinux 0xe8fc2651	pci_assign_resource
+EXPORT_SYMBOL	 vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL	 vmlinux 0xe9322f82	tcp_peek_len
+EXPORT_SYMBOL	 vmlinux 0xe93a05f7	cleancache_register_ops
+EXPORT_SYMBOL	 vmlinux 0xe9408b0d	kernel_param_lock
+EXPORT_SYMBOL	 vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL	 vmlinux 0xe957c6ae	vfs_copy_file_range
+EXPORT_SYMBOL	 vmlinux 0xe958dfda	kthread_associate_blkcg
+EXPORT_SYMBOL	 vmlinux 0xe989ad1c	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL	 vmlinux 0xe98b2736	mpage_readpages
+EXPORT_SYMBOL	 vmlinux 0xe9aedee5	inet_put_port
+EXPORT_SYMBOL	 vmlinux 0xe9b4e85a	unregister_qdisc
+EXPORT_SYMBOL	 vmlinux 0xe9c58a09	tcw_finalize
+EXPORT_SYMBOL	 vmlinux 0xe9e4e046	input_open_device
+EXPORT_SYMBOL	 vmlinux 0xe9ebb967	blk_integrity_merge_bio
+EXPORT_SYMBOL	 vmlinux 0xea1b7cf3	filp_close
+EXPORT_SYMBOL	 vmlinux 0xea3c8e4e	scsilun_to_int
+EXPORT_SYMBOL	 vmlinux 0xea4fecde	set_blocksize
+EXPORT_SYMBOL	 vmlinux 0xea54c1a7	filemap_fdatawait_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xea655f19	put_disk_and_module
+EXPORT_SYMBOL	 vmlinux 0xea6aa415	security_unix_stream_connect
+EXPORT_SYMBOL	 vmlinux 0xea80dfe1	security_req_classify_flow
+EXPORT_SYMBOL	 vmlinux 0xea857d39	__sk_mem_raise_allocated
+EXPORT_SYMBOL	 vmlinux 0xea872313	find_next_bit_inv
+EXPORT_SYMBOL	 vmlinux 0xead58fb9	print_hex_dump
+EXPORT_SYMBOL	 vmlinux 0xeaee256f	security_lock_kernel_down
+EXPORT_SYMBOL	 vmlinux 0xeafb4198	locks_init_lock
+EXPORT_SYMBOL	 vmlinux 0xeb0b9d45	end_page_writeback
+EXPORT_SYMBOL	 vmlinux 0xeb1256fe	account_page_redirty
+EXPORT_SYMBOL	 vmlinux 0xeb2204b3	block_truncate_page
+EXPORT_SYMBOL	 vmlinux 0xeb35a0d6	netpoll_send_skb_on_dev
+EXPORT_SYMBOL	 vmlinux 0xeb360086	mr_table_dump
+EXPORT_SYMBOL	 vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL	 vmlinux 0xeb3e13e5	mr_mfc_find_any_parent
+EXPORT_SYMBOL	 vmlinux 0xeb41cda9	vfs_rmdir
+EXPORT_SYMBOL	 vmlinux 0xeb428327	pagevec_lookup_range_tag
+EXPORT_SYMBOL	 vmlinux 0xeb4507ce	generic_file_splice_read
+EXPORT_SYMBOL	 vmlinux 0xeb6467a7	md_bitmap_free
+EXPORT_SYMBOL	 vmlinux 0xeb6beead	fbcon_update_vcs
+EXPORT_SYMBOL	 vmlinux 0xeb9dc55b	ap_owned_by_def_drv
+EXPORT_SYMBOL	 vmlinux 0xeb9e913d	sgl_alloc_order
+EXPORT_SYMBOL	 vmlinux 0xeb9f2193	neigh_update
+EXPORT_SYMBOL	 vmlinux 0xebbe0ebf	netdev_adjacent_change_prepare
+EXPORT_SYMBOL	 vmlinux 0xebbf1dba	strncasecmp
+EXPORT_SYMBOL	 vmlinux 0xebcb2554	raw3270_wait_queue
+EXPORT_SYMBOL	 vmlinux 0xebe0a0eb	__get_hash_from_flowi6
+EXPORT_SYMBOL	 vmlinux 0xebfb7207	ap_parse_mask_str
+EXPORT_SYMBOL	 vmlinux 0xec10c5f7	xfrm6_input_addr
+EXPORT_SYMBOL	 vmlinux 0xec122c83	gen_pool_first_fit_order_align
+EXPORT_SYMBOL	 vmlinux 0xec1be1df	free_cgroup_ns
+EXPORT_SYMBOL	 vmlinux 0xec1d2c37	ilookup
+EXPORT_SYMBOL	 vmlinux 0xec237e4f	xps_needed
+EXPORT_SYMBOL	 vmlinux 0xec248b83	vmap
+EXPORT_SYMBOL	 vmlinux 0xec27c4d1	kstrtoull_from_user
+EXPORT_SYMBOL	 vmlinux 0xec334a82	reuseport_detach_sock
+EXPORT_SYMBOL	 vmlinux 0xec37de9a	dquot_drop
+EXPORT_SYMBOL	 vmlinux 0xec563275	tty_check_change
+EXPORT_SYMBOL	 vmlinux 0xec6113f1	up_read
+EXPORT_SYMBOL	 vmlinux 0xec61c614	xa_destroy
+EXPORT_SYMBOL	 vmlinux 0xec6baa86	try_lookup_one_len
+EXPORT_SYMBOL	 vmlinux 0xec8c0fe9	skb_free_datagram
+EXPORT_SYMBOL	 vmlinux 0xec90030f	generic_splice_sendpage
+EXPORT_SYMBOL	 vmlinux 0xeca229ba	qdisc_watchdog_init
+EXPORT_SYMBOL	 vmlinux 0xecb70c0a	napi_consume_skb
+EXPORT_SYMBOL	 vmlinux 0xecb936db	blk_mq_start_hw_queues
+EXPORT_SYMBOL	 vmlinux 0xecd26648	pci_enable_device
+EXPORT_SYMBOL	 vmlinux 0xece0ccb8	input_alloc_absinfo
+EXPORT_SYMBOL	 vmlinux 0xece784c2	rb_first
+EXPORT_SYMBOL	 vmlinux 0xeceb4709	wake_up_process
+EXPORT_SYMBOL	 vmlinux 0xed2116a1	netdev_has_upper_dev_all_rcu
+EXPORT_SYMBOL	 vmlinux 0xed319951	mount_subtree
+EXPORT_SYMBOL	 vmlinux 0xed3e3c48	page_symlink_inode_operations
+EXPORT_SYMBOL	 vmlinux 0xed3ed156	neigh_seq_next
+EXPORT_SYMBOL	 vmlinux 0xed542234	xfrm_dev_state_flush
+EXPORT_SYMBOL	 vmlinux 0xed5b4483	pci_disable_msi
+EXPORT_SYMBOL	 vmlinux 0xed5d1d4d	find_get_pages_contig
+EXPORT_SYMBOL	 vmlinux 0xed61f6b3	security_release_secctx
+EXPORT_SYMBOL	 vmlinux 0xed64eed5	bio_devname
+EXPORT_SYMBOL	 vmlinux 0xed656e30	udp_encap_disable
+EXPORT_SYMBOL	 vmlinux 0xed7a3532	input_get_keycode
+EXPORT_SYMBOL	 vmlinux 0xed8e7037	pcie_capability_read_word
+EXPORT_SYMBOL	 vmlinux 0xed9d147b	blkdev_fsync
+EXPORT_SYMBOL	 vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL	 vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL	 vmlinux 0xede94561	unregister_key_type
+EXPORT_SYMBOL	 vmlinux 0xedea8e51	devm_ioremap
+EXPORT_SYMBOL	 vmlinux 0xedeb56a5	pci_request_region
+EXPORT_SYMBOL	 vmlinux 0xee08cada	iucv_message_purge
+EXPORT_SYMBOL	 vmlinux 0xee0c2fb3	__cpuhp_remove_state
+EXPORT_SYMBOL	 vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL	 vmlinux 0xee58e970	fb_add_videomode
+EXPORT_SYMBOL	 vmlinux 0xee6cd377	ip_frag_init
+EXPORT_SYMBOL	 vmlinux 0xee8d74d6	jiffies64_to_nsecs
+EXPORT_SYMBOL	 vmlinux 0xee91879b	rb_first_postorder
+EXPORT_SYMBOL	 vmlinux 0xef08cab0	_copy_from_iter_full_nocache
+EXPORT_SYMBOL	 vmlinux 0xef241d43	blk_rq_append_bio
+EXPORT_SYMBOL	 vmlinux 0xef45d32c	__kfifo_init
+EXPORT_SYMBOL	 vmlinux 0xef4f9562	ipv6_dev_mc_dec
+EXPORT_SYMBOL	 vmlinux 0xef65b1d0	blk_mq_delay_kick_requeue_list
+EXPORT_SYMBOL	 vmlinux 0xefa923a3	md_register_thread
+EXPORT_SYMBOL	 vmlinux 0xefad9ffb	security_inet_conn_request
+EXPORT_SYMBOL	 vmlinux 0xefaf2e4f	tcf_queue_work
+EXPORT_SYMBOL	 vmlinux 0xefafc970	pci_enable_msi
+EXPORT_SYMBOL	 vmlinux 0xefb26c89	netpoll_print_options
+EXPORT_SYMBOL	 vmlinux 0xefbd768f	fscrypt_setup_filename
+EXPORT_SYMBOL	 vmlinux 0xefc67050	__cpu_active_mask
+EXPORT_SYMBOL	 vmlinux 0xefcfe517	scsi_free_host_dev
+EXPORT_SYMBOL	 vmlinux 0xefe4e673	pci_bus_find_capability
+EXPORT_SYMBOL	 vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL	 vmlinux 0xf02ad1a8	vfs_statfs
+EXPORT_SYMBOL	 vmlinux 0xf03427f8	up_write
+EXPORT_SYMBOL	 vmlinux 0xf043c152	vfs_fsync
+EXPORT_SYMBOL	 vmlinux 0xf0498cf4	skb_queue_tail
+EXPORT_SYMBOL	 vmlinux 0xf05c64f8	iucv_path_connect
+EXPORT_SYMBOL	 vmlinux 0xf067257c	register_memory_isolate_notifier
+EXPORT_SYMBOL	 vmlinux 0xf070a97f	netdev_err
+EXPORT_SYMBOL	 vmlinux 0xf0844bcc	input_set_poll_interval
+EXPORT_SYMBOL	 vmlinux 0xf08c67de	napi_alloc_frag
+EXPORT_SYMBOL	 vmlinux 0xf09b5d9a	get_zeroed_page
+EXPORT_SYMBOL	 vmlinux 0xf0ad28d9	inet_accept
+EXPORT_SYMBOL	 vmlinux 0xf0aeb2db	param_set_long
+EXPORT_SYMBOL	 vmlinux 0xf0bebcc7	__ip_select_ident
+EXPORT_SYMBOL	 vmlinux 0xf0de60e7	d_instantiate_anon
+EXPORT_SYMBOL	 vmlinux 0xf0ecbd9c	simple_write_begin
+EXPORT_SYMBOL	 vmlinux 0xf0f3b45c	textsearch_unregister
+EXPORT_SYMBOL	 vmlinux 0xf0f8c9c4	skb_clone_sk
+EXPORT_SYMBOL	 vmlinux 0xf0fc9aa8	sclp_cpi_set_data
+EXPORT_SYMBOL	 vmlinux 0xf10fb67d	__sock_create
+EXPORT_SYMBOL	 vmlinux 0xf11543ff	find_first_zero_bit
+EXPORT_SYMBOL	 vmlinux 0xf11e0ef9	__vmalloc
+EXPORT_SYMBOL	 vmlinux 0xf1244288	pci_try_set_mwi
+EXPORT_SYMBOL	 vmlinux 0xf12cdb72	bdev_stack_limits
+EXPORT_SYMBOL	 vmlinux 0xf14e46ba	xfrm_alloc_spi
+EXPORT_SYMBOL	 vmlinux 0xf156962a	pmdp_xchg_direct
+EXPORT_SYMBOL	 vmlinux 0xf15f3b41	idr_get_next
+EXPORT_SYMBOL	 vmlinux 0xf161a605	bdevname
+EXPORT_SYMBOL	 vmlinux 0xf16fed7b	netpoll_parse_options
+EXPORT_SYMBOL	 vmlinux 0xf17fbb09	xfrm6_rcv_spi
+EXPORT_SYMBOL	 vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL	 vmlinux 0xf1969a8e	__usecs_to_jiffies
+EXPORT_SYMBOL	 vmlinux 0xf198f157	ip6tun_encaps
+EXPORT_SYMBOL	 vmlinux 0xf19e7338	unregister_external_irq
+EXPORT_SYMBOL	 vmlinux 0xf1a85251	xsk_umem_has_addrs
+EXPORT_SYMBOL	 vmlinux 0xf1b71a20	pci_wait_for_pending_transaction
+EXPORT_SYMBOL	 vmlinux 0xf1cd10ce	locks_delete_block
+EXPORT_SYMBOL	 vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL	 vmlinux 0xf1e046cc	panic
+EXPORT_SYMBOL	 vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL	 vmlinux 0xf2051087	generic_perform_write
+EXPORT_SYMBOL	 vmlinux 0xf20af3d9	refcount_dec_and_lock
+EXPORT_SYMBOL	 vmlinux 0xf2215f74	blk_finish_plug
+EXPORT_SYMBOL	 vmlinux 0xf22e77f8	__cgroup_bpf_run_filter_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xf23dd2db	dquot_writeback_dquots
+EXPORT_SYMBOL	 vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL	 vmlinux 0xf253ebab	nvmem_get_mac_address
+EXPORT_SYMBOL	 vmlinux 0xf266c2bf	xfrm6_rcv
+EXPORT_SYMBOL	 vmlinux 0xf26d2416	bio_add_pc_page
+EXPORT_SYMBOL	 vmlinux 0xf28404cf	devlink_dpipe_header_ipv6
+EXPORT_SYMBOL	 vmlinux 0xf2b506c1	copy_page_from_iter
+EXPORT_SYMBOL	 vmlinux 0xf2e4dfa1	param_ops_invbool
+EXPORT_SYMBOL	 vmlinux 0xf2e5bd87	security_free_mnt_opts
+EXPORT_SYMBOL	 vmlinux 0xf2ed9fb0	__blkdev_reread_part
+EXPORT_SYMBOL	 vmlinux 0xf2fcb3d2	__sk_mem_reduce_allocated
+EXPORT_SYMBOL	 vmlinux 0xf30b776d	pci_claim_resource
+EXPORT_SYMBOL	 vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL	 vmlinux 0xf3174896	get_ccwdev_by_busid
+EXPORT_SYMBOL	 vmlinux 0xf32056a9	flow_rule_match_eth_addrs
+EXPORT_SYMBOL	 vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL	 vmlinux 0xf3371c9b	put_cmsg
+EXPORT_SYMBOL	 vmlinux 0xf3402f21	xfrm4_rcv
+EXPORT_SYMBOL	 vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL	 vmlinux 0xf3476b6f	mount_single
+EXPORT_SYMBOL	 vmlinux 0xf353a698	register_module_notifier
+EXPORT_SYMBOL	 vmlinux 0xf3556036	__sync_dirty_buffer
+EXPORT_SYMBOL	 vmlinux 0xf36195e4	dev_set_allmulti
+EXPORT_SYMBOL	 vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL	 vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL	 vmlinux 0xf3932313	mb_cache_entry_wait_unused
+EXPORT_SYMBOL	 vmlinux 0xf3b30a06	utf8version_latest
+EXPORT_SYMBOL	 vmlinux 0xf3b74f79	__iucv_message_send
+EXPORT_SYMBOL	 vmlinux 0xf3b94517	__inet_hash
+EXPORT_SYMBOL	 vmlinux 0xf3beb058	t10_pi_type3_ip
+EXPORT_SYMBOL	 vmlinux 0xf3e0e1df	allocate_resource
+EXPORT_SYMBOL	 vmlinux 0xf3e6402e	__bitmap_equal
+EXPORT_SYMBOL	 vmlinux 0xf3f41aa1	seg6_hmac_info_del
+EXPORT_SYMBOL	 vmlinux 0xf3fad6b0	filemap_fdatawait_range_keep_errors
+EXPORT_SYMBOL	 vmlinux 0xf40e337a	__sk_backlog_rcv
+EXPORT_SYMBOL	 vmlinux 0xf4285d0b	mutex_trylock_recursive
+EXPORT_SYMBOL	 vmlinux 0xf43725fb	s390_arch_random_counter
+EXPORT_SYMBOL	 vmlinux 0xf4403af9	skb_copy_expand
+EXPORT_SYMBOL	 vmlinux 0xf44a904a	net_ns_barrier
+EXPORT_SYMBOL	 vmlinux 0xf44d53da	security_secid_to_secctx
+EXPORT_SYMBOL	 vmlinux 0xf44dde2f	netif_napi_add
+EXPORT_SYMBOL	 vmlinux 0xf46b99de	sock_kzfree_s
+EXPORT_SYMBOL	 vmlinux 0xf474c21c	bitmap_print_to_pagebuf
+EXPORT_SYMBOL	 vmlinux 0xf474fdcb	kfree_const
+EXPORT_SYMBOL	 vmlinux 0xf4781812	blk_queue_logical_block_size
+EXPORT_SYMBOL	 vmlinux 0xf4ae276d	proc_mkdir_mode
+EXPORT_SYMBOL	 vmlinux 0xf4b2b86e	cgroup_bpf_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf4bdbeb9	__frontswap_invalidate_area
+EXPORT_SYMBOL	 vmlinux 0xf4db35bc	stpcpy
+EXPORT_SYMBOL	 vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL	 vmlinux 0xf4f1d73f	__kfifo_out_peek_r
+EXPORT_SYMBOL	 vmlinux 0xf4f7ba05	call_fib_notifiers
+EXPORT_SYMBOL	 vmlinux 0xf4faa097	cdrom_get_media_event
+EXPORT_SYMBOL	 vmlinux 0xf5027a4f	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL	 vmlinux 0xf51a23cb	skb_headers_offset_update
+EXPORT_SYMBOL	 vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL	 vmlinux 0xf542f290	raw_copy_from_user
+EXPORT_SYMBOL	 vmlinux 0xf54b70bc	mmput_async
+EXPORT_SYMBOL	 vmlinux 0xf550909d	utf8_validate
+EXPORT_SYMBOL	 vmlinux 0xf565be0f	scsi_remove_target
+EXPORT_SYMBOL	 vmlinux 0xf589d075	blk_mq_tag_to_rq
+EXPORT_SYMBOL	 vmlinux 0xf5990e9a	scsi_add_host_with_dma
+EXPORT_SYMBOL	 vmlinux 0xf5a54b0b	raw3270_find_view
+EXPORT_SYMBOL	 vmlinux 0xf5aa7fc3	memory_cgrp_subsys
+EXPORT_SYMBOL	 vmlinux 0xf5aeec26	jbd2_journal_start_commit
+EXPORT_SYMBOL	 vmlinux 0xf5bf202c	tcp_sendmsg
+EXPORT_SYMBOL	 vmlinux 0xf5e7ea40	ktime_get_coarse_ts64
+EXPORT_SYMBOL	 vmlinux 0xf5f2c541	__cond_resched_lock
+EXPORT_SYMBOL	 vmlinux 0xf6090bc9	bd_start_claiming
+EXPORT_SYMBOL	 vmlinux 0xf622f48e	get_tree_bdev
+EXPORT_SYMBOL	 vmlinux 0xf641af61	md_finish_reshape
+EXPORT_SYMBOL	 vmlinux 0xf643d104	hsiphash_4u32
+EXPORT_SYMBOL	 vmlinux 0xf665f74f	sock_load_diag_module
+EXPORT_SYMBOL	 vmlinux 0xf68285c0	register_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xf683e9be	tcp_hashinfo
+EXPORT_SYMBOL	 vmlinux 0xf6888596	nf_unregister_net_hook
+EXPORT_SYMBOL	 vmlinux 0xf6964d3d	__tty_alloc_driver
+EXPORT_SYMBOL	 vmlinux 0xf6a03b80	get_user_pages_unlocked
+EXPORT_SYMBOL	 vmlinux 0xf6bdb5e5	key_link
+EXPORT_SYMBOL	 vmlinux 0xf6bfc262	md_unregister_thread
+EXPORT_SYMBOL	 vmlinux 0xf6da81f4	generic_file_fsync
+EXPORT_SYMBOL	 vmlinux 0xf6e03feb	pcix_get_max_mmrbc
+EXPORT_SYMBOL	 vmlinux 0xf6eb34c8	fs_bio_set
+EXPORT_SYMBOL	 vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL	 vmlinux 0xf6f9d58d	init_on_free
+EXPORT_SYMBOL	 vmlinux 0xf6fc8791	__bitmap_xor
+EXPORT_SYMBOL	 vmlinux 0xf7138e00	__pagevec_lru_add
+EXPORT_SYMBOL	 vmlinux 0xf738d1be	register_blocking_lsm_notifier
+EXPORT_SYMBOL	 vmlinux 0xf73bf27a	scsi_report_device_reset
+EXPORT_SYMBOL	 vmlinux 0xf74300d7	arch_vcpu_is_preempted
+EXPORT_SYMBOL	 vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL	 vmlinux 0xf767a379	udp_flush_pending_frames
+EXPORT_SYMBOL	 vmlinux 0xf77337a1	hdmi_audio_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xf77c2d2d	ilookup5
+EXPORT_SYMBOL	 vmlinux 0xf78f66cc	del_gendisk
+EXPORT_SYMBOL	 vmlinux 0xf79dd482	debug_unregister
+EXPORT_SYMBOL	 vmlinux 0xf7a40761	skb_copy_and_csum_datagram_msg
+EXPORT_SYMBOL	 vmlinux 0xf7a596de	ZSTD_initDDict
+EXPORT_SYMBOL	 vmlinux 0xf7b4a859	rt6_lookup
+EXPORT_SYMBOL	 vmlinux 0xf7b92217	utf8_casefold
+EXPORT_SYMBOL	 vmlinux 0xf7cd4cf6	get_cached_acl
+EXPORT_SYMBOL	 vmlinux 0xf7cfc286	dma_direct_sync_sg_for_device
+EXPORT_SYMBOL	 vmlinux 0xf7d71918	__kfifo_in_r
+EXPORT_SYMBOL	 vmlinux 0xf7f799ca	_copy_from_iter_full
+EXPORT_SYMBOL	 vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL	 vmlinux 0xf81373a8	seq_release
+EXPORT_SYMBOL	 vmlinux 0xf8167960	dquot_enable
+EXPORT_SYMBOL	 vmlinux 0xf81dbef0	kernel_getsockname
+EXPORT_SYMBOL	 vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL	 vmlinux 0xf82ec573	rb_prev
+EXPORT_SYMBOL	 vmlinux 0xf84bd6ee	bpf_stats_enabled_key
+EXPORT_SYMBOL	 vmlinux 0xf8626def	scsi_print_result
+EXPORT_SYMBOL	 vmlinux 0xf86e6516	unregister_sysctl_table
+EXPORT_SYMBOL	 vmlinux 0xf86fe059	inet6_register_protosw
+EXPORT_SYMBOL	 vmlinux 0xf873e358	iov_iter_zero
+EXPORT_SYMBOL	 vmlinux 0xf875606c	__next_node_in
+EXPORT_SYMBOL	 vmlinux 0xf87b14c5	dm_put_table_device
+EXPORT_SYMBOL	 vmlinux 0xf87fa67c	security_inode_getsecctx
+EXPORT_SYMBOL	 vmlinux 0xf888ca21	sg_init_table
+EXPORT_SYMBOL	 vmlinux 0xf89cfde7	VMALLOC_START
+EXPORT_SYMBOL	 vmlinux 0xf89dd25a	inetdev_by_index
+EXPORT_SYMBOL	 vmlinux 0xf8a066f9	dst_discard_out
+EXPORT_SYMBOL	 vmlinux 0xf8a7d3b6	request_key_with_auxdata
+EXPORT_SYMBOL	 vmlinux 0xf8b9d8a9	submit_bh
+EXPORT_SYMBOL	 vmlinux 0xf8ba1845	blk_set_default_limits
+EXPORT_SYMBOL	 vmlinux 0xf8bcbafd	tty_wait_until_sent
+EXPORT_SYMBOL	 vmlinux 0xf8d07858	bitmap_from_arr32
+EXPORT_SYMBOL	 vmlinux 0xf8e15586	noop_fsync
+EXPORT_SYMBOL	 vmlinux 0xf8f61ebc	wake_up_var
+EXPORT_SYMBOL	 vmlinux 0xf8fa4739	get_cached_acl_rcu
+EXPORT_SYMBOL	 vmlinux 0xf8fc3ff6	file_remove_privs
+EXPORT_SYMBOL	 vmlinux 0xf90cf971	dev_crit_hash
+EXPORT_SYMBOL	 vmlinux 0xf90d3630	bio_reset
+EXPORT_SYMBOL	 vmlinux 0xf915179e	refcount_dec_if_one
+EXPORT_SYMBOL	 vmlinux 0xf9194729	__inode_sub_bytes
+EXPORT_SYMBOL	 vmlinux 0xf923a576	xfrm_input
+EXPORT_SYMBOL	 vmlinux 0xf93fd09c	fb_find_mode_cvt
+EXPORT_SYMBOL	 vmlinux 0xf9427545	mark_buffer_write_io_error
+EXPORT_SYMBOL	 vmlinux 0xf9539221	input_close_device
+EXPORT_SYMBOL	 vmlinux 0xf95fe7d8	xfrm_state_alloc
+EXPORT_SYMBOL	 vmlinux 0xf9669939	bio_init
+EXPORT_SYMBOL	 vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL	 vmlinux 0xf9b9115e	tcf_block_get
+EXPORT_SYMBOL	 vmlinux 0xf9c1f9ab	security_secctx_to_secid
+EXPORT_SYMBOL	 vmlinux 0xf9cb3781	inet_csk_reqsk_queue_drop
+EXPORT_SYMBOL	 vmlinux 0xf9dcbcf5	netlink_capable
+EXPORT_SYMBOL	 vmlinux 0xf9f50b92	percpu_counter_destroy
+EXPORT_SYMBOL	 vmlinux 0xfa08f4b8	__tracepoint_dma_fence_signaled
+EXPORT_SYMBOL	 vmlinux 0xfa0a5e7a	consume_skb
+EXPORT_SYMBOL	 vmlinux 0xfa107cc8	__starget_for_each_device
+EXPORT_SYMBOL	 vmlinux 0xfa10f9aa	xfrm_state_update
+EXPORT_SYMBOL	 vmlinux 0xfa31b555	map_kernel_range_noflush
+EXPORT_SYMBOL	 vmlinux 0xfa39b4be	sha224_update
+EXPORT_SYMBOL	 vmlinux 0xfa46f7c2	dev_get_phys_port_id
+EXPORT_SYMBOL	 vmlinux 0xfa599bb2	netlink_register_notifier
+EXPORT_SYMBOL	 vmlinux 0xfa71e069	flow_rule_match_meta
+EXPORT_SYMBOL	 vmlinux 0xfa873ad0	prandom_seed
+EXPORT_SYMBOL	 vmlinux 0xfa949ca9	scsi_unblock_requests
+EXPORT_SYMBOL	 vmlinux 0xfac8865f	sysctl_wmem_max
+EXPORT_SYMBOL	 vmlinux 0xfadc5937	get_mem_cgroup_from_mm
+EXPORT_SYMBOL	 vmlinux 0xfae6e71a	unix_detach_fds
+EXPORT_SYMBOL	 vmlinux 0xfaf11ede	ipv6_sock_mc_join
+EXPORT_SYMBOL	 vmlinux 0xfb19499f	dcb_ieee_getapp_mask
+EXPORT_SYMBOL	 vmlinux 0xfb384d37	kasprintf
+EXPORT_SYMBOL	 vmlinux 0xfb4694b4	__init_swait_queue_head
+EXPORT_SYMBOL	 vmlinux 0xfb481954	vprintk
+EXPORT_SYMBOL	 vmlinux 0xfb63274a	md_bitmap_update_sb
+EXPORT_SYMBOL	 vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL	 vmlinux 0xfb8ed705	pcim_enable_device
+EXPORT_SYMBOL	 vmlinux 0xfb97e08d	sock_no_accept
+EXPORT_SYMBOL	 vmlinux 0xfba7ddd2	match_u64
+EXPORT_SYMBOL	 vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL	 vmlinux 0xfbad3cf0	scsi_normalize_sense
+EXPORT_SYMBOL	 vmlinux 0xfbc1846d	dev_printk_hash
+EXPORT_SYMBOL	 vmlinux 0xfbc4f89e	io_schedule_timeout
+EXPORT_SYMBOL	 vmlinux 0xfbc6b5ae	security_inode_invalidate_secctx
+EXPORT_SYMBOL	 vmlinux 0xfbd05058	ipv6_setsockopt
+EXPORT_SYMBOL	 vmlinux 0xfbfb2b94	security_inode_notifysecctx
+EXPORT_SYMBOL	 vmlinux 0xfc399557	utf8_load
+EXPORT_SYMBOL	 vmlinux 0xfc3bba0f	unregister_fib_notifier
+EXPORT_SYMBOL	 vmlinux 0xfc43602c	sock_common_getsockopt
+EXPORT_SYMBOL	 vmlinux 0xfc49cc87	dquot_destroy
+EXPORT_SYMBOL	 vmlinux 0xfc4e7bb2	xfrm_policy_byid
+EXPORT_SYMBOL	 vmlinux 0xfc7f26bd	inet_csk_init_xmit_timers
+EXPORT_SYMBOL	 vmlinux 0xfc9cdfda	nla_put
+EXPORT_SYMBOL	 vmlinux 0xfcd1819a	hdmi_spd_infoframe_check
+EXPORT_SYMBOL	 vmlinux 0xfce0025e	skb_checksum_setup
+EXPORT_SYMBOL	 vmlinux 0xfce28804	ethtool_op_get_link
+EXPORT_SYMBOL	 vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL	 vmlinux 0xfd021b31	try_to_writeback_inodes_sb
+EXPORT_SYMBOL	 vmlinux 0xfd121033	config_item_get_unless_zero
+EXPORT_SYMBOL	 vmlinux 0xfd3a1e31	gen_pool_dma_zalloc_algo
+EXPORT_SYMBOL	 vmlinux 0xfd3e8134	input_mt_destroy_slots
+EXPORT_SYMBOL	 vmlinux 0xfd51a6f7	hdmi_drm_infoframe_pack
+EXPORT_SYMBOL	 vmlinux 0xfd67ffdc	clean_bdev_aliases
+EXPORT_SYMBOL	 vmlinux 0xfd866940	skb_flow_dissect_tunnel_info
+EXPORT_SYMBOL	 vmlinux 0xfda9581f	prandom_u32
+EXPORT_SYMBOL	 vmlinux 0xfdb18336	flow_get_u32_src
+EXPORT_SYMBOL	 vmlinux 0xfdb4de2d	mempool_free
+EXPORT_SYMBOL	 vmlinux 0xfdca3d0f	eth_header
+EXPORT_SYMBOL	 vmlinux 0xfdcc8a0e	fb_find_best_display
+EXPORT_SYMBOL	 vmlinux 0xfddb3d68	devm_release_resource
+EXPORT_SYMBOL	 vmlinux 0xfddd6138	pneigh_enqueue
+EXPORT_SYMBOL	 vmlinux 0xfdf45996	lowcore_ptr
+EXPORT_SYMBOL	 vmlinux 0xfdf58bec	pci_read_vpd
+EXPORT_SYMBOL	 vmlinux 0xfdfe381a	skb_kill_datagram
+EXPORT_SYMBOL	 vmlinux 0xfe029963	unregister_inetaddr_notifier
+EXPORT_SYMBOL	 vmlinux 0xfe160f26	tty_port_raise_dtr_rts
+EXPORT_SYMBOL	 vmlinux 0xfe193e65	__xa_alloc
+EXPORT_SYMBOL	 vmlinux 0xfe2ba3fd	dma_resv_add_excl_fence
+EXPORT_SYMBOL	 vmlinux 0xfe305fc2	vmemmap
+EXPORT_SYMBOL	 vmlinux 0xfe487975	init_wait_entry
+EXPORT_SYMBOL	 vmlinux 0xfe582034	jbd2_journal_update_sb_errno
+EXPORT_SYMBOL	 vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL	 vmlinux 0xfe686c14	tcp_rtx_synack
+EXPORT_SYMBOL	 vmlinux 0xfe790bab	__skb_flow_get_ports
+EXPORT_SYMBOL	 vmlinux 0xfe89289a	release_sock
+EXPORT_SYMBOL	 vmlinux 0xfe8a22a2	seg6_hmac_info_lookup
+EXPORT_SYMBOL	 vmlinux 0xfe975eb7	jbd2_journal_revoke
+EXPORT_SYMBOL	 vmlinux 0xfeaaf8a6	input_mt_assign_slots
+EXPORT_SYMBOL	 vmlinux 0xfeb5d0aa	verify_spi_info
+EXPORT_SYMBOL	 vmlinux 0xfedcdb60	seq_hlist_next_percpu
+EXPORT_SYMBOL	 vmlinux 0xfeee6df6	inode_get_bytes
+EXPORT_SYMBOL	 vmlinux 0xfeef0adf	iunique
+EXPORT_SYMBOL	 vmlinux 0xfef8add4	wait_for_completion_timeout
+EXPORT_SYMBOL	 vmlinux 0xfef8cf74	vfs_statx
+EXPORT_SYMBOL	 vmlinux 0xff004d9b	poll_initwait
+EXPORT_SYMBOL	 vmlinux 0xff02a3bd	bio_put
+EXPORT_SYMBOL	 vmlinux 0xff10790c	dev_set_mtu
+EXPORT_SYMBOL	 vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL	 vmlinux 0xff1f0ae2	add_virt_timer
+EXPORT_SYMBOL	 vmlinux 0xff256184	cdrom_ioctl
+EXPORT_SYMBOL	 vmlinux 0xff31e963	poll_freewait
+EXPORT_SYMBOL	 vmlinux 0xff38c449	mem_cgroup_from_task
+EXPORT_SYMBOL	 vmlinux 0xff4cb477	single_open
+EXPORT_SYMBOL	 vmlinux 0xff5a37f5	airq_iv_alloc
+EXPORT_SYMBOL	 vmlinux 0xff5a8331	zero_fill_bio_iter
+EXPORT_SYMBOL	 vmlinux 0xff660930	kobject_put
+EXPORT_SYMBOL	 vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL	 vmlinux 0xffa0feed	sock_cmsg_send
+EXPORT_SYMBOL	 vmlinux 0xffa9bfdb	wait_for_completion_interruptible
+EXPORT_SYMBOL	 vmlinux 0xffaac6d4	generic_file_llseek
+EXPORT_SYMBOL	 vmlinux 0xffbb0313	alloc_file_pseudo
+EXPORT_SYMBOL	 vmlinux 0xffbea6a3	tcf_exts_num_actions
+EXPORT_SYMBOL	 vmlinux 0xffca7557	md_flush_request
+EXPORT_SYMBOL	 vmlinux 0xffd0ef87	netpoll_poll_dev
+EXPORT_SYMBOL	 vmlinux 0xffd163d2	inet6_release
+EXPORT_SYMBOL	 vmlinux 0xffe08ab7	nf_log_trace
+EXPORT_SYMBOL	 vmlinux 0xffe62045	__xfrm_policy_check
+EXPORT_SYMBOL	 vmlinux 0xffeedf6a	delayed_work_timer_fn
+EXPORT_SYMBOL	 vmlinux 0xfff5a7de	__bio_clone_fast
+EXPORT_SYMBOL_GPL	 arch/s390/crypto/sha_common 0x67ba4f07	s390_sha_final
+EXPORT_SYMBOL_GPL	 arch/s390/crypto/sha_common 0xd095a09a	s390_sha_update
+EXPORT_SYMBOL_GPL	 arch/s390/net/pnet 0x9e471066	pnet_id_by_dev_port
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x010f3845	af_alg_alloc_areq
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x1e258ddd	af_alg_sendpage
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x2a9075dd	af_alg_release
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x318049ed	af_alg_get_rsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x31caf5b2	af_alg_async_cb
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x33f2435a	af_alg_unregister_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x4268edbd	af_alg_accept
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x784c17f2	af_alg_register_type
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x87395a25	af_alg_make_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8dfa4af0	af_alg_free_sg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0x8fadbea9	af_alg_poll
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xa577c7a4	af_alg_count_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xbbff323e	af_alg_pull_tsgl
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xd71397db	af_alg_sendmsg
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xdb5cfc54	af_alg_release_parent
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf614dba3	af_alg_wait_for_data
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xf9ce4afe	af_alg_free_resources
+EXPORT_SYMBOL_GPL	 crypto/af_alg 0xff4abd3b	af_alg_wmem_wakeup
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0x7430f97c	tpm_key_create
+EXPORT_SYMBOL_GPL	 crypto/asymmetric_keys/asym_tpm 0xd5150366	asym_tpm_subtype
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_memcpy 0x6d93ed83	async_memcpy
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x4814b020	async_syndrome_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_pq 0x6f48ca3a	async_gen_syndrome
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0x58780247	async_raid6_2data_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_raid6_recov 0xd29da491	async_raid6_datap_recov
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0x5980701a	async_tx_quiesce
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xb1998bdf	async_trigger_callback
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_tx 0xba328d98	async_tx_submit
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x5121eec3	async_xor_val
+EXPORT_SYMBOL_GPL	 crypto/async_tx/async_xor 0x619c724d	async_xor
+EXPORT_SYMBOL_GPL	 crypto/authenc 0x2479193e	crypto_authenc_extractkeys
+EXPORT_SYMBOL_GPL	 crypto/blowfish_common 0x5dbfcd39	blowfish_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0x188d9d26	__cast5_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xdf55eff6	cast5_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast5_generic 0xef81a4af	__cast5_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x30b56bcd	__cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0x3dbae082	__cast6_decrypt
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xa0fbc5cd	cast6_setkey
+EXPORT_SYMBOL_GPL	 crypto/cast6_generic 0xcfce512f	__cast6_encrypt
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5609ce41	cast_s2
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0x5b17be06	cast_s4
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xb9cba57f	cast_s3
+EXPORT_SYMBOL_GPL	 crypto/cast_common 0xbd3e7542	cast_s1
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x2d43f68a	crypto_chacha12_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0x3564234e	crypto_xchacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xbd468fb4	crypto_chacha20_setkey
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xd0f7ea0b	crypto_chacha_crypt
+EXPORT_SYMBOL_GPL	 crypto/chacha_generic 0xe7436d31	crypto_chacha_init
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x1a1cb1ff	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x2879e884	cryptd_aead_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x3eb2fd16	cryptd_aead_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x491418ec	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x5829f1e5	cryptd_skcipher_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x6893599d	cryptd_free_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x6eb692e8	cryptd_alloc_skcipher
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0x945b41cc	cryptd_shash_desc
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xc6cddde5	cryptd_skcipher_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xdd5c4ef5	cryptd_ahash_child
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xf773d822	cryptd_ahash_queued
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfbfb711f	cryptd_free_aead
+EXPORT_SYMBOL_GPL	 crypto/cryptd 0xfe0e1a9b	cryptd_free_ahash
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x089ec507	crypto_transfer_aead_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x1460f87c	crypto_engine_exit
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x479c5f4a	crypto_engine_alloc_init
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x4953fb5f	crypto_engine_start
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x53ec4124	crypto_transfer_skcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x66c13e57	crypto_finalize_ablkcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x76ba9107	crypto_transfer_hash_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0x9200dcd0	crypto_finalize_skcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xb9bb0ab6	crypto_finalize_aead_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xbc4588cf	crypto_finalize_akcipher_request
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xcd0a2097	crypto_transfer_ablkcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xf0acfe20	crypto_engine_stop
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfa19900a	crypto_transfer_akcipher_request_to_engine
+EXPORT_SYMBOL_GPL	 crypto/crypto_engine 0xfb3bfdf2	crypto_finalize_hash_request
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x515ba532	crypto_ecdh_decode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0x7a395d76	crypto_ecdh_encode_key
+EXPORT_SYMBOL_GPL	 crypto/ecdh_generic 0xd5a29505	crypto_ecdh_key_len
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x1dfec3d3	crypto_poly1305_final
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x299fbb2e	poly1305_core_setkey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x30dbed6e	poly1305_core_blocks
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x53ebe95d	crypto_poly1305_init
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x5ef1870c	poly1305_core_emit
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0x65267047	crypto_poly1305_setdesckey
+EXPORT_SYMBOL_GPL	 crypto/poly1305_generic 0xdb167ab0	crypto_poly1305_update
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x0d609da9	serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0x4eb4c55e	__serpent_encrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xbcc074f3	__serpent_decrypt
+EXPORT_SYMBOL_GPL	 crypto/serpent_generic 0xd4c9681a	__serpent_setkey
+EXPORT_SYMBOL_GPL	 crypto/sm3_generic 0x0bddca87	sm3_zero_message_hash
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x09a89410	crypto_sm4_expand_key
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x2282ae62	crypto_sm4_encrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x56e5b970	crypto_sm4_decrypt
+EXPORT_SYMBOL_GPL	 crypto/sm4_generic 0x6e3ca5be	crypto_sm4_set_key
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0x397de249	twofish_setkey
+EXPORT_SYMBOL_GPL	 crypto/twofish_common 0xb1e70801	__twofish_setkey
+EXPORT_SYMBOL_GPL	 drivers/dax/device_dax 0x4cfd260d	dev_dax_probe
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x211885d5	alt_pr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/altera-pr-ip-core 0x702f001a	alt_pr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x1dbbf8f9	fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x44f281ce	fpga_image_info_alloc
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4c62216f	fpga_mgr_put
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x4f7f327d	fpga_mgr_unregister
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x52861c07	fpga_mgr_unlock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x673c3638	fpga_mgr_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x73e7cfad	of_fpga_mgr_get
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x77434b72	fpga_mgr_register
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x7ed8f685	devm_fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0x8f0b4364	fpga_mgr_lock
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xa23741cd	fpga_image_info_free
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xed9f4d87	fpga_mgr_create
+EXPORT_SYMBOL_GPL	 drivers/fpga/fpga-mgr 0xf0cc84bd	fpga_mgr_load
+EXPORT_SYMBOL_GPL	 drivers/gpio/gpio-generic 0x93ebf84c	bgpio_init
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x65348195	drm_gem_dumb_map_offset
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0x98740beb	drm_crtc_add_crc_entry
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xac4a1e21	drm_class_device_register
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xb2f37d9a	drm_class_device_unregister
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe2db02ce	drm_do_get_edid
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm 0xe4907abb	drm_hdcp_check_ksvs_revoked
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x21fc2575	drm_gem_fb_create_with_dirty
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x7a2ee999	drm_gem_fb_prepare_fb
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x9265b5d4	drm_gem_fb_get_obj
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0x9a515207	drm_gem_fb_create_with_funcs
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/drm_kms_helper 0xb848fc94	drm_gem_fb_create
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0x239b7bdd	ttm_dma_populate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xa1a92f8e	ttm_dma_unpopulate
+EXPORT_SYMBOL_GPL	 drivers/gpu/drm/ttm/ttm 0xa62d3303	ttm_dma_page_alloc_debugfs
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x00a97781	intel_th_free
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x01a01333	intel_th_trace_disable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x0da4d8f2	intel_th_driver_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x1bc62a2c	intel_th_alloc
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0x69217bab	intel_th_trace_switch
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xb4018eb6	intel_th_trace_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xd2f4f54d	intel_th_output_enable
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xe53debe4	intel_th_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th 0xeb036fa6	intel_th_set_output
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x04e5f423	intel_th_msu_buffer_unregister
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x0ebc3b6e	intel_th_msu_buffer_register
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/intel_th/intel_th_msu 0x86bf5b77	intel_th_msc_window_unlock
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x5c2c058b	stm_register_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x66a71d6b	to_pdrv_policy_node
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x6cac22a1	stm_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x76c824a3	stm_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0x88a64788	stm_unregister_protocol
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xa1c2a417	stm_data_write
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xca1fd8df	stm_source_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xdf640693	stm_source_register_device
+EXPORT_SYMBOL_GPL	 drivers/hwtracing/stm/stm_core 0xf545c86d	stm_source_write
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x0e40ea9a	i2c_new_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x18f7d78a	devm_i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x241c2a25	i2c_adapter_depth
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x248548b8	i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x370b7b2f	i2c_new_dummy
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x376a47e0	i2c_recover_bus
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x3c539d38	i2c_client_type
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x3cee5ce3	i2c_new_ancillary_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x42041512	i2c_get_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x44dfbdd8	i2c_parse_fw_timings
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x45192126	i2c_new_dummy_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x4dae16e4	i2c_put_dma_safe_msg_buf
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x5076e23a	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x50ff4b19	i2c_for_each_dev
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x6d365091	i2c_get_device_id
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x84c34909	i2c_adapter_type
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x8b224a2f	i2c_bus_type
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x8be32d5b	i2c_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0x95a5b61f	i2c_handle_smbus_host_notify
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xb1245dda	i2c_match_id
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xc2144e1d	i2c_new_probed_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xd6eca796	i2c_generic_scl_recovery
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xf6f28a4d	i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-core 0xf7121af3	i2c_new_client_device
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x6ec9f87b	i2c_root_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0x7e7cdf52	i2c_mux_add_adapter
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xad3521dc	i2c_mux_alloc
+EXPORT_SYMBOL_GPL	 drivers/i2c/i2c-mux 0xbd8c171d	i2c_mux_del_adapters
+EXPORT_SYMBOL_GPL	 drivers/infiniband/core/ib_core 0xdbd019c4	ib_wq
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x15b97715	__tracepoint_bcache_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x19b88bec	__tracepoint_bcache_writeback
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2307b422	__tracepoint_bcache_journal_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b46c4b6	__tracepoint_bcache_btree_node_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2b793afb	__tracepoint_bcache_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x2fbf8560	__tracepoint_bcache_btree_read
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x33554606	__tracepoint_bcache_journal_entry_full
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x414c7765	__tracepoint_bcache_btree_node_alloc
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x5f6a4a3e	__tracepoint_bcache_btree_node_free
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x65fb81f0	__tracepoint_bcache_btree_node_compact
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x6b1045c7	__tracepoint_bcache_btree_set_root
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7260fb66	__tracepoint_bcache_btree_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x748968f6	__tracepoint_bcache_btree_insert_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7574c715	__tracepoint_bcache_gc_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x7c8a33fe	__tracepoint_bcache_read_retry
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0x96bf5dba	__tracepoint_bcache_writeback_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa353964f	__tracepoint_bcache_request_end
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xa4682eff	__tracepoint_bcache_gc_start
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xab4c5652	__tracepoint_bcache_btree_node_split
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xb22f8879	__tracepoint_bcache_bypass_sequential
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xbf53dc9d	__tracepoint_bcache_btree_gc_coalesce
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc00185bc	__tracepoint_bcache_gc_copy_collision
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc13b483f	__tracepoint_bcache_invalidate
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc36e201d	__tracepoint_bcache_gc_copy
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xc8feefc9	__tracepoint_bcache_alloc_fail
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd8da0f0e	__tracepoint_bcache_cache_insert
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xd9f20dee	__tracepoint_bcache_journal_replay_key
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xe9c4d700	__tracepoint_bcache_bypass_congested
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xee603d81	__tracepoint_bcache_journal_write
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf5d8bf62	__tracepoint_bcache_btree_cache_cannibalize
+EXPORT_SYMBOL_GPL	 drivers/md/bcache/bcache 0xf8502c64	__tracepoint_bcache_request_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x17dd39d6	dm_deferred_set_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x1d53fb38	dm_get_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x25541990	dm_bio_prison_free_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x275b1897	dm_cell_lock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2a05fad0	dm_cell_release_no_holder
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2cb66de9	dm_cell_quiesce_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x2eb01e04	dm_deferred_set_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x34662a73	dm_bio_detain
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x3765c2a4	dm_cell_get_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x381f7607	dm_cell_error
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x4e2d2dde	dm_cell_unlock_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x61cb9d10	dm_cell_promote_or_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6791a44e	dm_deferred_entry_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x6e84f9b3	dm_cell_put_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x753e20b2	dm_bio_prison_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x7c1c2c98	dm_bio_prison_free_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x88fe0cad	dm_bio_prison_alloc_cell
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0x9b8f93f4	dm_cell_visit_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xab18d793	dm_cell_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xace9b57b	dm_bio_prison_destroy_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb373a269	dm_bio_prison_alloc_cell_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb6d5c65d	dm_deferred_set_add_work
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xb70b342a	dm_bio_prison_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xca2e3a88	dm_deferred_entry_inc
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xd99e003d	dm_bio_prison_create_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bio-prison 0xdf01541f	dm_cell_lock_promote_v2
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x0ad0dc4f	dm_bufio_mark_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x111ab12a	dm_bufio_mark_partial_buffer_dirty
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x24772bfe	dm_bufio_get
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x2e0774dc	dm_bufio_get_block_number
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x6d3f57bd	dm_bufio_get_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x72f07bf4	dm_bufio_set_minimum_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x74dcd98c	dm_bufio_get_aux_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x7c381a76	dm_bufio_get_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0x867e87eb	dm_bufio_get_dm_io_client
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xa82b2066	dm_bufio_write_dirty_buffers
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb04f56ab	dm_bufio_read
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xb2438d54	dm_bufio_release_move
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc0d7df85	dm_bufio_new
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc90df7e5	dm_bufio_prefetch
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xc9a3422d	dm_bufio_write_dirty_buffers_async
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xcd2ba798	dm_bufio_forget
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd4bddf5c	dm_bufio_issue_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xd991e3b9	dm_bufio_get_device_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xe6024e59	dm_bufio_release
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xebcc64a4	dm_bufio_get_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xeca7949e	dm_bufio_client_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xed3283a4	dm_bufio_set_sector_offset
+EXPORT_SYMBOL_GPL	 drivers/md/dm-bufio 0xf4df77e4	dm_bufio_client_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x0efbca4c	btracker_promotion_already_present
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5adc2807	btracker_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x5de611a9	btracker_nr_writebacks_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x796a703b	dm_cache_policy_get_version
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x87bee547	btracker_queue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0x9a7e660e	dm_cache_policy_register
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa2365f44	btracker_issue
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa4472485	dm_cache_policy_unregister
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xa7eadcb5	btracker_complete
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xbf1a2968	btracker_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xccfe6409	btracker_nr_demotions_queued
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xd638ed27	dm_cache_policy_get_name
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe1bb31c4	dm_cache_policy_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe756dac6	dm_cache_policy_get_hint_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-cache 0xe8c5320d	dm_cache_policy_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0x5298c59f	dm_register_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-multipath 0xb4b70bba	dm_unregister_path_selector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x01d2f9ac	dm_rh_recovery_start
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x20f2c422	dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38972f23	dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x38efaf5a	dm_region_hash_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3a18389a	dm_rh_update_states
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x3c8e2536	dm_rh_delay
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x57e16c3e	dm_rh_get_state
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x5f4a6e61	dm_rh_dec
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7774620f	dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d053fc5	dm_rh_start_recovery
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0x7d5e1815	dm_rh_get_region_key
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa53387c7	dm_rh_flush
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa83588eb	dm_rh_recovery_end
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xa8766ac8	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xba7a45a7	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xbe38a431	dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xd8aa4284	dm_rh_region_context
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf4791339	dm_region_hash_create
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf5c1f49f	dm_rh_inc_pending
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xf92b8a3d	dm_rh_get_region_size
+EXPORT_SYMBOL_GPL	 drivers/md/dm-region-hash 0xfd93482e	dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x00f5a3c8	dm_bm_write_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x09cc81fa	dm_btree_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0a7e77f3	dm_btree_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0ae4d696	dm_sm_disk_open
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b25f6bc	dm_array_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0b36102c	dm_array_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0be67537	dm_btree_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x0e198232	dm_btree_insert
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x10e6ccea	dm_bitset_clear_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x16af9071	dm_array_set_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x1e3f728d	dm_block_data
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x23ebd5fb	dm_bitset_set_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2417c5c4	dm_btree_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2adee13f	dm_btree_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x2f40da68	dm_bm_set_read_write
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x34d45c77	dm_btree_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3646e38f	dm_tm_issue_prefetches
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36a34e58	dm_array_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x36b84cda	dm_array_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3a797d19	dm_btree_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b	dm_bm_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x432b8178	dm_array_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4557b425	dm_bitset_test_bit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48d1c7dc	dm_btree_find_lowest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x48e323be	dm_bm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x49081644	dm_btree_remove
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x4a4cb558	dm_btree_insert_notify
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x5475ba9e	dm_block_location
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x63b0c22d	dm_bitset_flush
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x688d422d	dm_bm_block_size
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6af8a872	dm_array_info_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6bb4bf8f	dm_array_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6e1e3821	dm_array_walk
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x6f2fe3c4	dm_btree_remove_leaves
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x72289260	dm_block_manager_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7485935a	dm_btree_lookup
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x764567c8	dm_btree_find_highest_key
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7ade1071	dm_tm_destroy
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x7b047bd9	dm_tm_create_non_blocking_clone
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x87c934be	dm_tm_inc
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x88295b96	dm_tm_unlock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x885b0024	dm_array_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x89783bda	dm_array_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x95a52abd	dm_bm_is_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x97263968	dm_bitset_resize
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x98db2687	dm_bitset_cursor_end
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e798e22	dm_bm_set_read_only
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0x9e98460e	dm_bitset_empty
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa2ea5542	dm_bitset_del
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa3cc1157	dm_btree_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa51fbedc	dm_bitset_new
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa8d9df84	dm_tm_create_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xa9c4fc6b	dm_bm_write_lock_zero
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xaab0ef04	dm_bitset_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb11cd6c1	dm_bm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb500e95b	dm_tm_shadow_block
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xb6949944	dm_array_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbb461fb7	dm_bitset_cursor_begin
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xbbb5df05	dm_array_cursor_skip
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc248bde2	dm_disk_bitset_init
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xc7f91370	dm_block_manager_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcbba75fc	dm_tm_read_lock
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xcedfc878	dm_bitset_cursor_get_value
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd163cade	dm_tm_commit
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd6711a58	dm_bitset_cursor_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xd7016b22	dm_sm_disk_create
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xe781f874	dm_tm_dec
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf398644f	dm_btree_lookup_next
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf3b16444	dm_tm_open_with_sm
+EXPORT_SYMBOL_GPL	 drivers/md/persistent-data/dm-persistent-data 0xf551114d	dm_bm_checksum
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x8481635a	st_unregister
+EXPORT_SYMBOL_GPL	 drivers/misc/ti-st/st_drv 0x9724c6bf	st_register
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00d0247e	mlx4_get_vf_config
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01bc217b	mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04cb7d36	__mlx4_replace_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06e9ef25	mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0873953e	mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0df8e99a	mlx4_mr_hw_change_pd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e424179	mlx4_wol_read
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14e9ec2c	mlx4_set_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1502d1f4	mlx4_mtt_addr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1636ed82	mlx4_set_vf_link_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x163e8d41	mlx4_phys_to_slave_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17577f20	mlx4_uar_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17f96f9d	mlx4_get_admin_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ccd369b	mlx4_cq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x200e3084	mlx4_mtt_init
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x220133f4	mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x254f40a6	mlx4_multicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x272198ce	mlx4_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2830ba48	mlx4_unicast_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x287039c3	mlx4_config_roce_v2_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a74702b	mlx4_find_cached_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c7e77a0	mlx4_mr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34a36094	mlx4_qp_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x396911d4	mlx4_mr_rereg_mem_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b413ee7	mlx4_multicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40a8662d	mlx4_read_clock
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43944b8e	mlx4_get_internal_clock_params
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e2e2b98	mlx4_mr_hw_write_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x507ff3a4	mlx4_wol_write
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53213801	mlx4_set_vf_rate
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54641aba	mlx4_get_protocol_dev
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5508f73f	mlx4_set_vf_spoofchk
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55e19413	mlx4_bf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57904c10	mlx4_cq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c36af4c	mlx4_pd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c9bf57f	mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d2aa22d	mlx4_set_vf_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61cfbee5	mlx4_hw_rule_sz
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65b4e7de	mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x66534a03	mlx4_ACCESS_PTYS_REG
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6873eab4	mlx4_unbond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68ed9a13	mlx4_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x691300f9	mlx4_config_vxlan_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x697ed6e9	mlx4_fmr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b0cd49a	mlx4_get_counter_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72bb99e0	__mlx4_cmd
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73486d8d	mlx4_qp_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x738fd116	mlx4_unicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x752dde4d	mlx4_vf_get_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78021d7c	mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ee1ad96	mlx4_multicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8083397c	mlx4_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80c564b4	mlx4_bf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x839ceaaf	mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x852f58d7	mlx4_counter_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87dbe02e	mlx4_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x894c17a5	mlx4_xrcd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ea6e8e5	mlx4_vf_set_enable_smi_admin
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9102b942	mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x939ad802	mlx4_replace_zero_macs
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9980d72c	mlx4_mw_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c5ecce3	mlx4_pd_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e912d61	mlx4_srq_lookup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e956077	mlx4_srq_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1aeb45d	mlx4_get_active_ports
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6a1e38f	mlx4_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa75b082f	__mlx4_unregister_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8248c2e	mlx4_mr_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8a657c2	mlx4_slave_convert_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaac5e1fa	mlx4_phys_to_slaves_pport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xacd15004	mlx4_register_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf3245d2	__mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaface849	mlx4_write_mtt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4f646fe	mlx4_get_base_qpn
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb65dedc1	mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8ed559b	mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdf0f4f4	mlx4_update_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe0866ac	mlx4_get_base_gid_ix
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0750ff5	mlx4_flow_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0feeda2	mlx4_flow_steer_promisc_add
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2798587	mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc32fa91a	mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3d10de2	mlx4_srq_arm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc48649c4	mlx4_mr_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4bd17d4	mlx4_unicast_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5d1cda3	mlx4_fmr_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6241717	mlx4_mr_hw_get_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9d1d144	mlx4_phys_to_slaves_pport_actv
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9fa7d24	mlx4_mr_hw_change_access
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc46d6b4	mlx4_get_slave_default_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce44c89a	mlx4_vf_smi_enabled
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce8f5e20	mlx4_flow_steer_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfbd7e7e	mlx4_counter_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd23bcf4b	mlx4_FLOW_STEERING_IB_UC_QP_RANGE
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2df8a2a	mlx4_config_dev_retrieval
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3f3b4a7	mlx4_set_vf_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8924dce	mlx4_mw_enable
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9537348	mlx4_register_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda5deebd	mlx4_get_devlink_port
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb87f15d	mlx4_get_default_counter_index
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdba02996	mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddd8895f	mlx4_qp_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde93f5e0	mlx4_srq_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdea0de6b	mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdfcbe154	mlx4_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe00e8f75	mlx4_mr_rereg_mem_cleanup
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0ae58bc	mlx4_map_sw_to_hw_steering_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0b656a1	mlx4_find_cached_vlan
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2e74881	mlx4_flow_detach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6092931	mlx4_port_map_set
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9548fee	mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec6469f6	mlx4_srq_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed00a817	mlx4_mw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef123462	mlx4_buf_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef7f6629	mlx4_cq_resize
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf13e1a0c	mlx4_cq_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf20ea911	mlx4_register_mac
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf37435ab	mlx4_unicast_promisc_remove
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6b6ec07	mlx4_map_sw_to_hw_steering_id
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf76ac474	mlx4_uar_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7918792	mlx4_multicast_attach
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf84e40d9	mlx4_unregister_interface
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8b79f9e	mlx4_qp_release_range
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfaadacfb	mlx4_get_vf_stats
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc013adf	mlx4_bond
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcb8bf80	mlx4_mr_hw_put_mpt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02f704b9	mlx5_modify_nic_vport_vlans
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x058d2478	mlx5_query_port_max_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06c9ef9f	mlx5_set_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4	mlx5_fill_page_frag_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08a8b4c6	mlx5_query_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10face36	mlx5_core_res_put
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1581c35d	mlx5_core_query_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x187900c1	mlx5_set_port_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1cad6e57	mlx5_core_dct_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ebd005a	mlx5_query_port_link_width_oper
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20bde249	mlx5_core_create_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x238991ca	mlx5_query_nic_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x29bc819a	mlx5_core_access_reg
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x29c77038	mlx5_query_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2acb1158	mlx5_query_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d27e9a6	mlx5_accel_ipsec_device_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e2cb676	mlx5_query_hca_vport_gid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31ceb6e9	mlx5_core_qp_query
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3aa1891c	mlx5_core_reserved_gids_count
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ad5808a	mlx5_set_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e022cf7	mlx5_frag_buf_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ffe555f	mlx5_query_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40badb7a	mlx5_nic_vport_affiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45987aef	mlx5_query_nic_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bfde052	mlx5_core_alloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fe4e5fa	mlx5_query_nic_vport_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52e0304c	mlx5_query_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57356b0b	mlx5_set_port_prio_tc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a2f7245	mlx5_modify_nic_vport_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ed291f9	mlx5_toggle_port_link
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60ee965a	mlx5_query_port_vl_hw_cap
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62faded3	mlx5_set_port_tc_bw_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x637f51f0	mlx5_query_port_oper_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66b3cfcb	mlx5_db_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b5d3f1c	mlx5_accel_esp_create_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d20b7d6	mlx5_set_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d642fa6	mlx5_dm_sw_icm_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71a32c12	mlx5_query_port_admin_status
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x739b1e22	mlx5_nic_vport_unaffiliate_multiport
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73e02eae	mlx5_core_res_hold
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7485f0ae	mlx5_db_alloc_node
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7760e05a	mlx5_core_xrcd_dealloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b47a2de	mlx5_query_port_ptys
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7dbb8093	mlx5_nic_vport_enable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f695ea2	mlx5_nic_vport_update_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x809df59c	mlx5_set_port_caps
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x878d07cd	mlx5_query_hca_vport_node_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88751e37	mlx5_query_nic_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ce46ae9	mlx5_eswitch_mode
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x928bb7b4	mlx5_core_query_ib_ppcnt
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a770af8	mlx5_accel_esp_destroy_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9aa51ba7	mlx5_core_query_vport_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9bd2d32c	mlx5_query_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0ef1431	mlx5_query_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4f111e7	mlx5_modify_port_ets_rate_limit
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa75f49d6	mlx5_fill_page_array
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xacc98bf9	mlx5_core_qp_modify
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae167ade	mlx5_accel_esp_modify_xfrm
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4da9807	mlx5_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd0e6151	mlx5_dm_sw_icm_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf7645a9	mlx5_query_min_inline
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2a226dc	mlx5_nic_vport_query_local_lb
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3360ce9	mlx5_db_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4350fe8	mlx5_core_query_sq_state
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc51f7a10	mlx5_set_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6ae53f3	mlx5_query_port_pfc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7c89458	mlx5_core_create_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb833f7a	mlx5_frag_buf_free
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb8fc4f6	mlx5_query_module_eeprom
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd28eac3	mlx5_core_xrcd_alloc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1fca198	mlx5_query_port_tc_group
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd25bf5d1	mlx5_query_nic_vport_qkey_viol_cntr
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd374f074	mlx5_query_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5ab6d99	mlx5_query_hca_vport_system_image_guid
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd87d8532	mlx5_nic_vport_disable_roce
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda24107f	mlx5_modify_nic_vport_mac_list
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcdbba2b	mlx5_core_destroy_dct
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2de6f95	mlx5_query_port_wol
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8043046	mlx5_modify_nic_vport_promisc
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecfbec80	mlx5_query_mac_address
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed735958	mlx5_core_dealloc_q_counter
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4d94c87	mlx5_modify_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5d922f8	mlx5_set_port_pause
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7731fbf	mlx5_core_destroy_qp
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9a6313d	mlx5_query_hca_vport_pkey
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa02e927	mlx5_core_set_delay_drop
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc078c99	mlx5_core_modify_hca_vport_context
+EXPORT_SYMBOL_GPL	 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe96b236	mlx5_query_nic_vport_mtu
+EXPORT_SYMBOL_GPL	 drivers/net/geneve 0x24874c93	geneve_dev_create_fb
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x1e6da319	ipvlan_link_setup
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x4584e13a	ipvlan_count_rx
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x73db3ba4	ipvlan_link_new
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0x885fcdde	ipvlan_link_delete
+EXPORT_SYMBOL_GPL	 drivers/net/ipvlan/ipvlan 0xe131c5bb	ipvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0x92b44a10	macvlan_common_setup
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xacb0186d	macvlan_dellink
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xc977461f	macvlan_link_register
+EXPORT_SYMBOL_GPL	 drivers/net/macvlan 0xcfa8ce61	macvlan_common_newlink
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xbe201c97	net_failover_create
+EXPORT_SYMBOL_GPL	 drivers/net/net_failover 0xc0d3cecb	net_failover_destroy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x065f8f69	bcm_phy_get_sset_count
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x10512282	bcm_phy_config_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x1497e599	bcm_phy_r_rc_cal_reset
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x15668043	bcm_phy_read_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x20e7adf6	bcm_phy_get_stats
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x2dafd67a	bcm_phy_read_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x31efe7e2	bcm_phy_downshift_set
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x48975680	bcm_phy_downshift_get
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x5fa02a7a	bcm_phy_read_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x919686eb	bcm_phy_write_misc
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x9328e767	bcm_phy_write_exp
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0x9c7369ca	bcm_phy_enable_apd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xb862ae1c	bcm_phy_28nm_a0b0_afe_config_init
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc0d2096f	bcm_phy_write_shadow
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xc57e89e5	bcm_phy_set_eee
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xdfd6013c	bcm54xx_auxctl_read
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xf5c79d71	bcm_phy_get_strings
+EXPORT_SYMBOL_GPL	 drivers/net/phy/bcm-phy-lib 0xfb87c941	bcm_phy_ack_intr
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x3a92be8e	fixed_phy_change_carrier
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x5d3b9957	fixed_phy_register_with_gpiod
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x5eeaad05	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x7756419e	fixed_phy_unregister
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL	 drivers/net/phy/fixed_phy 0xa9ab05eb	fixed_phy_register
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x010a5b7c	devm_mdiobus_alloc_size
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x042db083	phy_gbit_all_ports_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x06209f49	phy_lookup_setting
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x09400391	phy_modify
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x0b5180d6	genphy_c45_an_disable_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x145632ba	genphy_c45_read_link
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x14c3e807	genphy_c45_read_mdix
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x18e4f8aa	swphy_read_reg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x1e3f06a1	phy_speed_down
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x2114801b	__phy_modify
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x227a407e	genphy_c45_an_config_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x2a102777	phy_restart_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x2ebe2b9d	phy_basic_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x3018710d	genphy_c45_read_lpa
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x3355d5bc	devm_mdiobus_free
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x4437de01	phy_basic_t1_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x4648b2aa	phy_gbit_fibre_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x4d4aa068	phy_driver_is_genphy
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x538d073d	phy_duplex_to_str
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x57583a21	genphy_c45_read_status
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x5c95e948	__phy_modify_mmd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x5f7b352b	genphy_c45_read_pma
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x61f67c92	phy_gbit_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x63350cfb	phy_driver_is_genphy_10g
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x690f585e	phy_basic_ports_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x7073c04f	phy_10_100_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x713cb4ba	phy_gbit_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x78d39986	genphy_c45_restart_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x7a8db398	genphy_c45_config_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x7ac722bd	phy_all_ports_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x8597186c	phy_resolve_aneg_pause
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x906f92a1	genphy_c45_pma_setup_forced
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0x9232581c	phy_select_page
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xa2f812f9	phy_10gbit_fec_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xa39f6999	phy_10gbit_full_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xa9cc90f8	__phy_modify_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xb467d7a1	phy_modify_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xb84eea4a	phy_10gbit_fec_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xc3255142	phy_10gbit_features
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xc55ff962	phy_basic_t1_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xc7c61bde	phy_speed_up
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xccd7a73b	genphy_c45_aneg_done
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xd762f1ca	genphy_c45_pma_read_abilities
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xdca61af6	phy_resolve_aneg_linkmode
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xdf54c6cd	phy_modify_mmd
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xdff34c79	phy_start_machine
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe2937bf9	__phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe4b818c3	phy_speed_to_str
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe4e48b12	swphy_validate_state
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xe628bb9f	phy_fibre_port_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xec4fbe61	phy_modify_mmd_changed
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xeedd987e	phy_10gbit_features_array
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xf1d4ee79	phy_save_page
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xf224d76b	genphy_c45_check_and_restart_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xf5ddd36f	gen10g_config_aneg
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xfa6772ec	phy_restore_page
+EXPORT_SYMBOL_GPL	 drivers/net/phy/libphy 0xfab30dc0	mdio_bus_exit
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x1a69fb39	tap_get_socket
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x35bf6dd1	tap_queue_resize
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x40c5f3b0	tap_create_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x6625f1a5	tap_del_queues
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x76b62250	tap_get_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0x7dfdc89c	tap_destroy_cdev
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xe4624e2c	tap_free_minor
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xe721df4f	tap_handle_frame
+EXPORT_SYMBOL_GPL	 drivers/net/tap 0xfea2b5cd	tap_get_ptr_ring
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x494bdeb6	vxlan_fdb_find_uc
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x4e02d342	vxlan_fdb_replay
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0x99c31766	vxlan_dev_create
+EXPORT_SYMBOL_GPL	 drivers/net/vxlan 0xdebe6a23	vxlan_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x01f4e69a	nvme_change_ctrl_state
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x042684f6	nvme_delete_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x04324ec7	nvme_set_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x05cc4d5b	nvme_init_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x094751dc	nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x0bd6fba1	nvme_setup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x14cf42e3	nvme_cancel_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1aaf2f59	nvme_stop_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x1d3fafd7	nvme_wait_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x2fa55ced	nvme_sec_submit
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x3abda01f	nvme_stop_keep_alive
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x49224181	nvme_reset_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4bb50308	nvme_complete_async_event
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4c21df0c	nvme_stop_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x4da2c3e2	nvme_try_sched_reset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54085d0d	__tracepoint_nvme_sq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x54862320	nvme_cancel_admin_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x614cc077	nvme_unfreeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x64b62862	nvme_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6a5815b2	nvme_kill_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x6c7accab	nvme_wait_freeze_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x7044364d	nvme_alloc_request
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x71f92600	nvme_uninit_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x813cf212	nvme_io_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x83df1b05	nvme_start_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8407863c	nvme_sync_io_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0x8960b00c	nvme_wait_freeze
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xa1675846	nvme_cancel_tagset
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xaee573cf	nvme_set_queue_count
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xbb02b2da	nvme_cleanup_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc325a565	nvme_complete_rq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc7136684	__nvme_submit_sync_cmd
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc8069ac7	nvme_sync_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xc8645992	nvme_init_identify
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xca7ca32d	nvme_start_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xcf8381f0	nvme_start_queues
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd1832026	nvme_enable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd45434ee	admin_timeout
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd58bbbcb	nvme_delete_wq
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd5f433e1	nvme_reset_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xd7e06af7	nvme_disable_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdcaa9a89	nvme_shutdown_ctrl
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xdd981977	nvme_get_features
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xf1b0a682	nvme_remove_namespaces
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-core 0xfbb2a268	nvme_reset_ctrl_sync
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x0d576c4d	nvmf_get_address
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x26632efb	nvmf_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x582800a7	nvmf_connect_io_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x5b22ce73	nvmf_reg_write32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0x91eabfc1	nvmf_ip_options_match
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xbaa1b14c	nvmf_connect_admin_queue
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xbc8156e5	nvmf_free_options
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xc2c991cc	nvmf_fail_nonready_command
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xc32648fd	__nvmf_check_ready
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xc68c2324	nvmf_reg_read32
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xc89630a8	nvmf_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xd7dbb4de	nvmf_reg_read64
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fabrics 0xe9fa39c3	nvmf_should_reconnect
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x06bd6cfa	nvme_fc_register_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x0d12e564	nvme_fc_register_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3884f8b8	nvme_fc_unregister_localport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x3e33ac54	nvme_fc_rescan_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0x8a9cf5a7	nvme_fc_set_remoteport_devloss
+EXPORT_SYMBOL_GPL	 drivers/nvme/host/nvme-fc 0xfca9dc99	nvme_fc_unregister_remoteport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x1bc9596f	nvmet_req_complete
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x1fc03c7b	nvmet_req_free_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2815266c	nvmet_req_execute
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x299fcb2d	nvmet_req_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x2c49ffa1	nvmet_sq_destroy
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x4fc9d3a1	nvmet_req_uninit
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0x6341eebf	nvmet_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xb2dcaf33	nvmet_register_transport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xba56abc9	nvmet_ctrl_fatal_error
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xfdc7494f	nvmet_req_alloc_sgl
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet 0xfe9ead55	nvmet_sq_init
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x1048b92a	nvmet_fc_rcv_fcp_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x3c47e125	nvmet_fc_register_targetport
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x51e67f3b	nvmet_fc_rcv_ls_req
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x7fa5302a	nvmet_fc_rcv_fcp_abort
+EXPORT_SYMBOL_GPL	 drivers/nvme/target/nvmet-fc 0x9ef76d99	nvmet_fc_unregister_targetport
+EXPORT_SYMBOL_GPL	 drivers/pci/switch/switchtec 0xa65b53d0	switchtec_class
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x0633dcd2	dasd_device_set_stop_bits
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x19227556	dasd_nopav
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x1ee11a9e	dasd_free_block
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x22bc4c73	dasd_generic_path_event
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x24440ab6	dasd_generic_read_dev_chars
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x295d2c60	dasd_put_device_wake
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x36dd2b47	dasd_generic_free_discipline
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x398c7d67	dasd_device_remove_stop_bits
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x3c42ce65	dasd_generic_space_avail
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x4654cf80	dasd_device_is_ro
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x47a493e7	dasd_generic_space_exhaust
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x5a95fab2	dasd_get_sense
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x758afc2c	dasd_generic_handle_state_change
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x7c6d49d7	dasd_generic_notify
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x7efe4e62	dasd_generic_uc_handler
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x915fb612	dasd_generic_path_operational
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0x9e618767	dasd_wakeup_cb
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xacceb752	dasd_generic_shutdown
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xb38fe028	dasd_page_cache
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xbc4753b0	dasd_alloc_block
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xbd2a50a3	dasd_generic_last_path_gone
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xc545daf5	dasd_flush_device_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xd0bebae6	dasd_generic_probe
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xec9bcc61	dasd_generic_restore_device
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xeec36b19	dasd_generic_remove
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xef139e0a	dasd_generic_set_offline
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xf15784f5	dasd_nofcx
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xf46d56ab	dasd_generic_verify_path
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xf5970c2b	dasd_generic_set_online
+EXPORT_SYMBOL_GPL	 drivers/s390/block/dasd_mod 0xfcaa7722	dasd_generic_pm_freeze
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/ccwgroup 0xfa6b7ef1	get_ccwgroupdev_by_busid
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/eadm_sch 0x85d9d140	eadm_start_aob
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x1a5b5f85	qdio_inspect_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x1fda2229	qdio_free
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x40809794	qdio_release_aob
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x4be4d8e3	qdio_pnso_brinfo
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x6524c63b	qdio_establish
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x86493db0	qdio_activate
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x86bfc120	qdio_free_buffers
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0x881629dd	qdio_allocate
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xa82bb4d7	qdio_alloc_buffers
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xadba96bc	qdio_reset_buffers
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xd39c518a	qdio_shutdown
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xdecba7d4	do_QDIO
+EXPORT_SYMBOL_GPL	 drivers/s390/cio/qdio 0xf570bf5b	qdio_get_ssqd_desc
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x030f4952	qeth_clear_working_pool_list
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x03ac7521	qeth_drain_output_queues
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x10ace7a3	qeth_do_ioctl
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x11ab8abe	qeth_do_run_thread
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x184f347f	qeth_xmit
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x1cd21ccd	qeth_clear_thread_start_bit
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x1dba54fd	qeth_init_qdio_queues
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x20e019cf	qeth_device_attr_group
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x2cd9e4cc	qeth_core_header_cache
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x3792e29d	qeth_trace_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x386d3af5	qeth_device_blkt_group
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x47a32b15	qeth_dbf_longtext
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x4b7d5ece	qeth_put_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x4fc43294	qeth_iqd_select_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x51fbea5d	qeth_schedule_recovery
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x539eb4d4	qeth_send_simple_setassparms_prot
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x54f1c5c2	qeth_print_status_message
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x6f1a5a98	qeth_tx_timeout
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x72494238	qeth_count_elements
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x746db777	qeth_get_stats64
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x7a1353cd	qeth_get_setassparms_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x7d970871	qeth_setadpparms_change_macaddr
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x80b59572	qeth_set_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x825b7556	qeth_hw_trap
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x847a2281	qeth_send_ipa_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x8d92d58f	qeth_prepare_ipa_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x9008bcd6	qeth_core_get_next_skb
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x9216de4f	qeth_open
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x953a583a	qeth_qdio_clear_card
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0x95edcdf8	qeth_features_check
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa51027d8	qeth_setassparms_cb
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xa52464d5	qeth_ipa_alloc_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xaea73f1a	qeth_get_card_by_busid
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb44ee0e8	qeth_get_priority_queue
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xb5fe04f7	qeth_clear_thread_running_bit
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xba573a74	qeth_set_access_ctrl_online
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xbfb9fa44	qeth_clear_ipacmd_list
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc4e562c3	qeth_stop
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc63d4186	qeth_dbf
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc6581158	qeth_threads_running
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc6c35cb9	qeth_stop_channel
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc700e4b1	qeth_enable_hw_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xc8b7d8f8	qeth_core_hardsetup_card
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xce04b1d0	qeth_notify_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xdb67c38e	qeth_fix_features
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xdef0948a	qeth_setadp_promisc_mode
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xe46d5d0b	qeth_vm_request_mac
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xe66bafcf	qeth_generic_devtype
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xe98a72f7	qeth_do_send_packet
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xe9fd2048	qeth_configure_cq
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xf1098c72	qeth_set_allowed_threads
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xf1d1a718	qeth_alloc_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xf2ea0c94	qeth_poll
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xf5516c32	qeth_get_diag_cmd
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth 0xf6d0f6c2	qeth_realloc_buffer_pool
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth_l2 0x4c680727	qeth_l2_discipline
+EXPORT_SYMBOL_GPL	 drivers/s390/net/qeth_l3 0x26ccf51f	qeth_l3_discipline
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x25db2076	fcoe_start_io
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x283bc657	fcoe_ctlr_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x3209b0ef	fcoe_fcf_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x438a61ee	fcoe_link_speed_update
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x5a823ad4	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7a1ea43b	fcoe_fc_crc
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x7a7d281b	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x811add03	fcoe_ctlr_device_delete
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0x95d03268	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xa7cc99eb	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xacda4892	fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xbac58840	fcoe_queue_timer
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc3f30cc0	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc58a2b40	fcoe_fcf_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xc856adac	fcoe_libfc_config
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xcd36035b	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xeed94e0a	fcoe_get_wwn
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xf167cb7a	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL	 drivers/scsi/fcoe/libfcoe 0xfd02231d	fcoe_ctlr_device_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x3a77a8bc	iscsi_boot_create_initiator
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x509a2f55	iscsi_boot_create_host_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0x696810ab	iscsi_boot_create_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xa23bb75e	iscsi_boot_destroy_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xa8370eff	iscsi_boot_create_kset
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xd09e9a8c	iscsi_boot_create_acpitbl
+EXPORT_SYMBOL_GPL	 drivers/scsi/iscsi_boot_sysfs 0xe9d24bdc	iscsi_boot_create_ethernet
+EXPORT_SYMBOL_GPL	 drivers/scsi/libfc/libfc 0xc34ea0a4	fc_seq_els_rsp_send
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x12b2ad06	iscsi_switch_str_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x133d28d9	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x139c1bb0	iscsi_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x1824237e	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x29061580	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x33fd727f	__iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3bef2f73	iscsi_pool_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3e25a2c7	iscsi_requeue_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x3f9b1277	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x482a7e31	iscsi_host_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x4e7ae291	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x65abb347	iscsi_session_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x70275900	iscsi_eh_cmd_timed_out
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x75029853	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8817ba2b	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x8d303b1b	iscsi_pool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x91ea062d	iscsi_eh_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x91eb1c36	iscsi_host_remove
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x99941aeb	iscsi_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0x9cf8f76f	iscsi_host_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xa3f14db3	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xaa489549	iscsi_host_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xab2af038	iscsi_session_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xac030b1a	iscsi_host_add
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xac4fc25d	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xaeeb896e	iscsi_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xafc2a3a6	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xafd2421b	iscsi_host_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb4e9b2ea	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb89c9fa5	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xb9d3645f	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbaa9778f	iscsi_set_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbaf34816	iscsi_session_get_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xbe7bc7b6	iscsi_conn_start
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xc8a8eee7	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd43c6a7b	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd73b46d1	iscsi_put_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xd7d944af	iscsi_conn_failure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xde698713	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xdf764344	iscsi_conn_stop
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe0cace87	iscsi_session_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe25dbc7d	iscsi_conn_bind
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xe30a6a56	__iscsi_get_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xea14d49e	iscsi_verify_itt
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xeab9cbd5	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi 0xf875ccdd	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x23259a29	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x2e5471e4	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x414f54b4	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4a572e0f	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x4cf9cdb2	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x64c74704	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x6705c9be	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7a7cba93	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x7d4e5bde	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x83c0ae0e	iscsi_tcp_set_max_r2t
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x88851fff	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9fc86fdc	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0x9fec3abe	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xa1bfab17	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xb94b917f	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xe18a6f50	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL	 drivers/scsi/libiscsi_tcp 0xf6cf3559	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x1340bd97	sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x4d16c5d8	sas_slave_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x51e02f9d	sas_bios_param
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x795f1128	sas_ioctl
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7b30c74d	sas_queuecommand
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x7d25f8f2	sas_register_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x817eefb7	sas_request_addr
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x8772f4cc	sas_ssp_task_response
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0x9d442ea3	sas_domain_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xaea61d27	sas_get_local_phy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xaece2491	sas_target_destroy
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb162788e	sas_alloc_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb4939c78	sas_unregister_ha
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xb5e5d39b	sas_change_queue_depth
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xc7aeafbb	sas_eh_target_reset_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xce644754	sas_eh_abort_handler
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xd8ef34b2	sas_free_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xdd5bd0db	sas_task_abort
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xddb25256	sas_alloc_slow_task
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xddc88d2d	sas_phy_reset
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe18076bd	sas_target_alloc
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe29fd8fe	sas_slave_configure
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xe501f105	sas_drain_work
+EXPORT_SYMBOL_GPL	 drivers/scsi/libsas/libsas 0xf150b366	dev_attr_phy_event_threshold
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x081707f9	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x0e4b2813	iscsi_dbg_trace
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x297b0186	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2a732365	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x2e383a55	iscsi_destroy_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3133dc5c	__tracepoint_iscsi_dbg_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x36723327	iscsi_add_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x3a901ef8	iscsi_get_port_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x4704081f	iscsi_create_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x47867762	__tracepoint_iscsi_dbg_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x48f1e8d1	iscsi_is_session_dev
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x53c44778	iscsi_create_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x57fd9c0a	iscsi_find_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x61994458	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x62174676	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6409e754	iscsi_is_session_online
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x68cb14a0	iscsi_get_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x699fe53e	iscsi_get_discovery_parent_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6b7606eb	iscsi_free_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6d1938f5	iscsi_ping_comp_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x6e441563	iscsi_scan_finished
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x7ee4b5e5	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x80760db1	iscsi_create_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8424a636	iscsi_get_port_speed_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x84a005f1	iscsi_get_router_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x8a64ef24	iscsi_block_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9595c95b	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9a915d0d	iscsi_session_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9de9d5e8	iscsi_remove_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0x9e19b3e8	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa42884c7	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xa786546d	iscsi_flashnode_bus_match
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaa0d8c7a	iscsi_register_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaac3519d	__tracepoint_iscsi_dbg_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xaea92c90	__tracepoint_iscsi_dbg_eh
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb06ff759	iscsi_create_iface
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xb97c42d8	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbc071179	iscsi_get_ipaddress_state_name
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xbd1c7780	iscsi_unblock_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xc39f8ba1	iscsi_post_host_event
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd1551df0	iscsi_create_flashnode_sess
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd4697d5b	__tracepoint_iscsi_dbg_sw_tcp
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xd9ab6ff7	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe181b516	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xe44c846d	iscsi_find_flashnode_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xed0efff4	iscsi_put_conn
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf04a2fb5	iscsi_destroy_all_flashnode
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xf28e1a92	iscsi_alloc_session
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_iscsi 0xfa6fd988	iscsi_session_chkready
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xad22607f	sas_enable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xc4440cd8	sas_disable_tlr
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xc5401da8	sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_sas 0xd5c96e7d	sas_tlr_supported
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xa0c71dac	spi_populate_sync_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_spi 0xd43f4a7d	spi_populate_tag_msg
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x096603f0	srp_attach_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x1902178a	srp_tmo_valid
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x24943b55	srp_release_transport
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x5e080423	srp_remove_host
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x60e297de	srp_stop_rport_timers
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0x7e9567a6	srp_rport_del
+EXPORT_SYMBOL_GPL	 drivers/scsi/scsi_transport_srp 0xf442a6e1	srp_rport_add
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x6053f342	siox_master_alloc
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x82420980	siox_device_synced
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x8a10f593	siox_master_unregister
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x8e1f64cd	__siox_driver_register
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0x96a7b216	siox_device_connected
+EXPORT_SYMBOL_GPL	 drivers/siox/siox-core 0xb65fc55c	siox_master_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x01547383	slim_device_report_present
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x0d4de7e4	slim_unregister_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1238d17c	slim_report_absent
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1321e0a9	slim_stream_allocate
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x19a29d12	slim_ctrl_clk_pause
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x1d1498e6	slim_free_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x2119630b	slim_stream_prepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x3490b11a	slim_xfer_msg
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x413563f9	slim_write
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x4a096ae5	slim_stream_unprepare
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6b626fb7	slim_stream_enable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x6d67b07b	slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x705cafac	slim_alloc_txn_tid
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x76f7f5df	slim_do_transfer
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x7cd9b3a4	slim_get_logical_addr
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x864276ad	slim_writeb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0x9e22444f	slim_stream_disable
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa11937fc	slim_readb
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xa5d5c909	slim_driver_unregister
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc10420fc	__slim_driver_register
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xc956c127	slim_register_controller
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xce9a3de4	slimbus_bus
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd079e7ae	slim_read
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xd1c14dc4	of_slim_get_device
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xee3d1e3d	slim_msg_response
+EXPORT_SYMBOL_GPL	 drivers/slimbus/slimbus 0xfd5b0e7a	slim_stream_free
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0x8a1f4b85	uart_insert_char
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0x8a950e49	uart_handle_dcd_change
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0xdb10675c	uart_handle_cts_change
+EXPORT_SYMBOL_GPL	 drivers/tty/serial/serial_core 0xee244ad3	uart_get_rs485_mode
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x0ab3b183	uio_event_notify
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x15139d22	uio_unregister_device
+EXPORT_SYMBOL_GPL	 drivers/uio/uio 0x2d14d006	__uio_register_device
+EXPORT_SYMBOL_GPL	 drivers/vfio/mdev/mdev 0xd6d09313	mdev_bus_type
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3000dcd8	vfio_register_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x3567743b	vfio_external_user_iommu_id
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x36c41211	vfio_external_group_match_file
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x46c14530	vfio_del_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x4d44db19	vfio_iommu_group_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x529db99e	vfio_info_cap_add
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x5b35c4f9	vfio_group_set_kvm
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x63f68a0e	vfio_iommu_group_get
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x89dd58f6	vfio_device_get_from_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x95258207	vfio_device_data
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0x969c73d9	vfio_device_put
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xb8697c12	vfio_group_get_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc1d989c5	vfio_external_check_extension
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xc4913442	vfio_group_put_external_user
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xca46168d	vfio_unregister_iommu_driver
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio 0xdabc71d1	vfio_add_group_dev
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0x7ad49ef8	vfio_virqfd_enable
+EXPORT_SYMBOL_GPL	 drivers/vfio/vfio_virqfd 0xbd08e7e2	vfio_virqfd_disable
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x138aab6c	vhost_poll_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x170fe5b4	vhost_dev_cleanup
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x1e41c551	vhost_dev_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x2411d0b3	vhost_chr_read_iter
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x333b5d82	vhost_dev_set_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x3f6c78d3	vhost_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x42bca87a	vhost_disable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x477262da	vhost_enable_notify
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4b54fc7f	vhost_dev_reset_owner_prepare
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x4e91f3fd	vhost_add_used_and_signal_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x56bd0131	vhost_poll_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x5cd4b228	vhost_vring_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x62fead81	vhost_exceeds_weight
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x672863d8	vhost_add_used_n
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x67426fd7	vhost_dev_has_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x68a1550e	vhost_has_work
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x70ade931	vhost_dev_check_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x76c74628	vhost_new_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x79c8b8c5	vhost_init_device_iotlb
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x7fd4cf7d	vhost_dev_ioctl
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x81c3f1da	vhost_vq_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x865d99b1	vhost_enqueue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x88b9e7f3	vhost_dev_reset_owner
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0x93ea2701	vhost_vq_init_access
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa8503705	vhost_add_used
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa88bc830	vhost_poll_start
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xa909cfc5	vhost_work_init
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xae80e68d	vhost_poll_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xb1fc5aac	vhost_discard_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc0aa4fc5	vhost_work_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xc501577d	vhost_log_write
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xccf8a066	vhost_poll_flush
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe3307fb6	vhost_dequeue_msg
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xe4dc23df	vhost_log_access_ok
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xed771379	vhost_work_queue
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xee946571	vhost_dev_stop
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xef1fdf90	vq_meta_prefetch
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf110b0e7	vhost_vq_avail_empty
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf53e0c6e	vhost_add_used_and_signal
+EXPORT_SYMBOL_GPL	 drivers/vhost/vhost 0xf95e7ad1	vhost_get_vq_desc
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xc80ecda6	fb_sys_write
+EXPORT_SYMBOL_GPL	 drivers/video/fbdev/core/fb_sys_fops 0xf7633181	fb_sys_read
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4b62826c	dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4da9064e	dlm_posix_get
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x4f6b07f0	dlm_posix_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0x647d6170	dlm_lock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcd224e1d	dlm_new_lockspace
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xce2ee8cb	dlm_posix_unlock
+EXPORT_SYMBOL_GPL	 fs/dlm/dlm 0xcf9f3328	dlm_release_lockspace
+EXPORT_SYMBOL_GPL	 fs/fscache/fscache 0x092cf98e	fscache_object_sleep_till_congested
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x003ee042	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x2d6c392d	nlmclnt_init
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x4d8c3ede	lockd_up
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x75b693fa	nlmclnt_done
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xa23c3245	nlmsvc_ops
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xb531cb31	lockd_down
+EXPORT_SYMBOL_GPL	 fs/lockd/lockd 0xc1281f11	nlmclnt_proc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0294c6a2	nfs_callback_nr_threads
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x06910a8f	nfs_post_op_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0772635a	nfs_show_options
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x09869404	nfs_show_devname
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x0c7b743d	nfs_fattr_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x10962bc2	nfs_auth_info_match
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1142c754	nfs_put_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x11536227	nfs_pgheader_init
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x119e3320	nfs_clone_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x15dea254	nfs_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x163a0607	nfs_fs_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ab4c7e9	nfs_try_mount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1c4a377a	nfs_dreq_bytes_left
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1ebbc08f	nfs_mkdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x1f3ce236	nfs_init_cinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2027c125	register_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x229ee306	nfs_free_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x22d795a8	_nfs_display_fhandle_hash
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2403226b	nfs_fill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x26884ff7	nfs_alloc_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2710761e	nfs_instantiate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2a768060	nfs_alloc_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2b5d6115	nfs_sb_active
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2ed8c68b	nfs_flock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x2ef68c11	nfs_inode_attach_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x313360a0	nfs_lookup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x38dea3d5	nfs4_label_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x39e05ac3	nfs_idmap_cache_timeout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3a7800e1	nfs_sync_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3bbcebd9	nfs_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3d6f79ee	nfs_request_add_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x3f2690f2	nfs_check_flags
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x40739385	nfs_wait_bit_killable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42250dba	nfs_scan_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x42f2c81f	nfs4_client_id_uniquifier
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4505ad97	nfs_initiate_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4b678d34	nfs_getattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4c9e5a3e	nfs_wait_client_init_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x4cb9e001	recover_lost_locks
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x511c7463	nfs_probe_fsinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x51892d61	nfs_callback_set_tcpport
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x52229d85	nfs_pageio_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x53c1d4ab	nfs_create_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x541383b0	nfs_kill_super
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x56485527	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x57842ea9	nfs_wait_on_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x584b8482	nfs_inc_attr_generation_counter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5a9a95ae	nfs_request_add_commit_list_locked
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5b0f8477	nfs_access_zap_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5cdaf77b	nfs_close_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x5e0214e5	nfs_writeback_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x60694ea5	nfs_lock
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x609b58b7	nfs_file_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x626afc5d	nfs_symlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x62ec92f4	nfs_permission
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6436245a	nfs_rmdir
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x66699d95	nfs_invalidate_atime
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x673c05e2	nfs_show_stats
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x68823623	nfs_force_lookup_revalidate
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6e6762e3	nfs_fscache_open_file
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6ea53779	nfs_show_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x6ff41cef	nfs_file_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x72bba06e	nfs_may_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x739b2e14	nfs_commit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x73d2259a	nfs_create
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x74f5e213	nfs_statfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7613e0ab	nfs_mknod
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x7d0476ad	nfs_pgio_header_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x805f1dee	nfs_unlink
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x82bb5d9c	nfs_generic_pgio
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x836c3678	nfs_initiate_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8551bfbe	nfs_access_set_mask
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x87342ce4	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8b76d351	nfs_fs_mount_common
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x8d5956fa	nfs_drop_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x90a5530f	nfsiod_workqueue
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x91d1fe52	max_session_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x92ee3552	nfs_file_mmap
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x981c88c8	nfs_pageio_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x98b0ece8	nfs_init_timeout_values
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9b680dd2	nfs_sops
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9c284427	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d224a9c	nfs_free_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d5aeb76	nfs_file_set_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9d8d4dbd	nfs_clone_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e231266	nfs4_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0x9e31780e	nfs_revalidate_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa3a780cf	get_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa3fadd47	nfs_get_lock_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa6e0f362	nfs_pageio_resend
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa876bd08	nfs_setsecurity
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8abcded	__tracepoint_nfs_xdr_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xa8e9e1ae	send_implementation_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xaafd4acc	max_session_cb_slots
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xab759986	nfs_do_submount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xace973f9	nfs_file_llseek
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xae6d078f	nfs_set_sb_security
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb0f796e3	nfs_server_copy_userdata
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb3f95f44	nfs_post_op_update_inode_force_wcc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xb5f5c91f	__tracepoint_nfs_fsync_exit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbb6ce9f7	nfs_wb_all
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbc6b2c88	__tracepoint_nfs_fsync_enter
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbeb75b4e	nfs_remount
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xbfd305b7	nfs_file_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc00406fd	unregister_nfs_version
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc09cf2ad	nfs_add_or_obtain
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc0a7eb88	put_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3a2be67	nfs_net_id
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc3cec0b3	nfs_pgio_header_alloc
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc437ca48	nfs_client_init_is_complete
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc4650ed0	nfs_init_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc503c77b	alloc_nfs_open_context
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xc9acd888	nfs_setattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcbaf1a79	nfs_dentry_operations
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xccc29eba	nfs_file_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xccc7e416	nfs_retry_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xcd0e6703	nfs_write_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd01b95c9	nfs_filemap_write_and_wait_range
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd32386d3	nfs_file_fsync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd325016a	nfs_release_request
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd75cae08	nfs_commit_free
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd8ab23b7	nfs_alloc_server
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd8e1cc57	nfs_init_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xd943211e	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdae9b5d7	nfs4_disable_idmapping
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdc8dd29d	nfs_atomic_open
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdcf40f9f	nfs_link
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xddaadade	nfs_put_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xde968def	nfs_init_server_rpcclient
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdef47185	nfs_setattr_update_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf6951c1	nfs_refresh_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xdf6f4a6d	nfs_path
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1b48b89	nfs_create_rpc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe1ccbcad	nfs_request_remove_commit_list
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe465c8f6	nfs_fhget
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe4e22bfd	nfs_get_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6a92fc1	nfs_client_init_status
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe6b1b4e6	nfs_rename
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe78e84dd	nfs_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xe8fccd88	nfs_access_add_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeb2f208b	nfs_pgio_current_mirror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xebde1c1c	nfs_sb_deactive
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xeda0fb1b	nfs_zap_acl_cache
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf01322fd	nfs_async_iocounter_wait
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf41a6b4a	nfs_free_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf4ae94c9	nfs_umount_begin
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xf92aae14	nfs4_fs_type
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfaa68b47	nfs_server_insert_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfb51904f	nfs_commitdata_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfc619abd	_nfs_display_fhandle
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfcaf1b64	nfs_clear_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfcec0baa	nfs_alloc_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfd7adc4f	nfs_alloc_fattr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xfede0be5	nfs_server_remove_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfs 0xff48f56e	nfs_mark_client_ready
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv3 0x7fe69b6b	nfs3_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x03b6cbfd	pnfs_generic_recover_commit_reqs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x054bef45	layoutstats_timer
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x094b8df0	nfs4_init_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x09b58503	nfs4_schedule_migration_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0ad1f648	nfs4_decode_mp_ds_addr
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0da267f3	nfs42_proc_layouterror
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x0e847d0d	pnfs_generic_prepare_to_resend_writes
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x13c652a7	pnfs_put_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x163831c3	__tracepoint_nfs4_pnfs_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1cdde079	__tracepoint_nfs4_pnfs_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x1f867e44	pnfs_layout_mark_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x208f5c30	__tracepoint_pnfs_mds_fallback_read_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x226a6a76	pnfs_update_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x22be7833	pnfs_generic_pg_writepages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x258025c5	pnfs_generic_pg_readpages
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x27cd7178	pnfs_ld_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x2bc05a18	nfs4_delete_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x32526e3d	nfs4_test_session_trunk
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x34a55a4f	pnfs_unregister_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c2421fa	pnfs_generic_scan_commit_lists
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x3c7d84cc	__tracepoint_pnfs_mds_fallback_write_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x503249b6	pnfs_error_mark_layout_for_return
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x50d604cd	nfs41_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x51d41713	pnfs_register_layoutdriver
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x565db8f5	pnfs_generic_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x5fed5874	nfs4_put_deviceid_node
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x60e19dc4	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6238729a	pnfs_destroy_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x69d3558d	pnfs_generic_rw_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6b97900c	nfs4_proc_getdeviceinfo
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6de69293	nfs4_schedule_stateid_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x6e39ef26	nfs4_schedule_session_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x73281fab	pnfs_generic_write_commit_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7648f0df	pnfs_generic_pg_cleanup
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x784d0505	pnfs_generic_pg_check_layout
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x78ecf37b	__tracepoint_pnfs_mds_fallback_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x7c088359	pnfs_layoutcommit_inode
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8b95ad41	nfs4_mark_deviceid_available
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8bb387b6	pnfs_generic_pg_test
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x8e9f4337	nfs4_schedule_lease_moved_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9381978d	pnfs_generic_commit_pagelist
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x96ff32e4	pnfs_ld_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0x9c319122	nfs4_init_ds_session
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa319bfee	__tracepoint_pnfs_mds_fallback_pg_init_read
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa5419fbd	pnfs_write_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xa77a26ab	nfs4_schedule_lease_recovery
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xae1d5104	nfs4_find_or_create_ds_client
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb1f7db67	nfs4_sequence_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb68bb2cd	nfs_remove_bad_delegation
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb81e70f9	nfs4_test_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xb96be7e4	pnfs_generic_clear_request_commit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbd8fc69b	nfs4_find_get_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xbebd6703	nfs4_pnfs_ds_put
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc04bce1c	nfs4_mark_deviceid_unavailable
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc31028e7	pnfs_nfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xc3331772	nfs_map_string_to_numeric
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xca905d6e	pnfs_set_lo_fail
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd0207a65	nfs4_set_rw_stateid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd6ed7dda	__tracepoint_pnfs_mds_fallback_write_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xd9f8d7e7	nfs4_pnfs_ds_connect
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc29230a	__tracepoint_pnfs_mds_fallback_pg_get_mirror_count
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdc6f53c4	pnfs_generic_pg_init_write
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdccd8613	pnfs_generic_sync
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf05942f	__tracepoint_nfs4_pnfs_commit_ds
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xdf32ade0	nfs4_setup_sequence
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe11c98be	pnfs_report_layoutstat
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xe6b296e7	pnfs_set_layoutcommit
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xed15fb41	nfs4_print_deviceid
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xee960d9f	__tracepoint_pnfs_mds_fallback_read_done
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xefe1fd36	nfs4_pnfs_ds_add
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf75a5c96	pnfs_read_resend_pnfs
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf7801360	nfs41_maxgetdevinfo_overhead
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xf999267e	pnfs_generic_commit_release
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfb0c35c9	pnfs_generic_layout_insert_lseg
+EXPORT_SYMBOL_GPL	 fs/nfs/nfsv4 0xfb6da3b6	pnfs_read_done_resend_to_mds
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x1fe1e1ad	locks_end_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x69086984	locks_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x7a28d39d	opens_in_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/grace 0x7eb05bdc	locks_start_grace
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0x3631f9f2	nfsacl_decode
+EXPORT_SYMBOL_GPL	 fs/nfs_common/nfs_acl 0xa584c55c	nfsacl_encode
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x0a7e0f10	o2hb_setup_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1646c35d	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee	o2hb_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x4c4d42a2	o2nm_node_put
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa	o2net_register_handler
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847	__mlog_printk
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x6c8e9fce	o2hb_register_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x89631ec9	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0x8bc9ea5d	o2nm_node_get
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7	o2nm_configured_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a	o2nm_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d	o2hb_check_node_heartbeating_no_sem
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852	o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db	o2net_send_message
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xfa83d357	o2net_send_message_vec
+EXPORT_SYMBOL_GPL	 fs/ocfs2/cluster/ocfs2_nodemanager 0xffc4bed8	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x0d0b813f	dlm_print_one_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x51898f63	dlm_register_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x65b2677c	dlm_unregister_domain
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x7c5fe4e9	dlmunlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x854bf995	dlmlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0x99d5c0eb	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0a726931	ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5	ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x1475f64b	ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x4d3af7fa	ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x6847ae1d	ocfs2_plock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x6e3b0dea	ocfs2_kset
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x75d4b216	ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x76f40744	ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x8760b049	ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0x9507547f	ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xaf969565	ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xbbc4ef97	ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc5196999	ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xc9fae756	ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xcafdd707	ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd344e4ee	ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL	 fs/ocfs2/ocfs2_stackglue 0xd806a273	ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1b2fca48	torture_must_stop_irq
+EXPORT_SYMBOL_GPL	 kernel/torture 0x1be7d8be	torture_onoff_failures
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3aa25a6b	_torture_stop_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3e9619f5	torture_onoff_stats
+EXPORT_SYMBOL_GPL	 kernel/torture 0x3ff9be11	torture_online
+EXPORT_SYMBOL_GPL	 kernel/torture 0x447d9c95	torture_offline
+EXPORT_SYMBOL_GPL	 kernel/torture 0x4c7529bd	torture_shutdown_absorb
+EXPORT_SYMBOL_GPL	 kernel/torture 0x52665f8b	torture_random
+EXPORT_SYMBOL_GPL	 kernel/torture 0x5a12a7da	torture_stutter_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0x679d9e50	torture_must_stop
+EXPORT_SYMBOL_GPL	 kernel/torture 0x688e6a64	torture_cleanup_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0x6c3ff11a	torture_init_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0x7596a2ed	_torture_create_kthread
+EXPORT_SYMBOL_GPL	 kernel/torture 0x8b0e1d2f	torture_shuffle_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc67a49d4	torture_cleanup_begin
+EXPORT_SYMBOL_GPL	 kernel/torture 0xc94a93e3	torture_onoff_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xdbc5277a	torture_shutdown_init
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2430307	stutter_wait
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe2c6cb14	torture_shuffle_task_register
+EXPORT_SYMBOL_GPL	 kernel/torture 0xe6989fd3	torture_init_end
+EXPORT_SYMBOL_GPL	 kernel/torture 0xf6d34fb5	torture_kthread_stopping
+EXPORT_SYMBOL_GPL	 lib/842/842_compress 0xcf048a91	sw842_compress
+EXPORT_SYMBOL_GPL	 lib/842/842_decompress 0xa4adedf1	sw842_decompress
+EXPORT_SYMBOL_GPL	 lib/crc4 0x696b3a5a	crc4
+EXPORT_SYMBOL_GPL	 lib/crc64 0x1b0f70f3	crc64_be
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x0105b595	des_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x574eda34	des3_ede_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0x856a5ef3	des3_ede_encrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa6aa9857	des_decrypt
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa77b3b62	des3_ede_expand_key
+EXPORT_SYMBOL_GPL	 lib/crypto/libdes 0xa8fb743d	des_expand_key
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x10305a46	notifier_err_inject_dir
+EXPORT_SYMBOL_GPL	 lib/notifier-error-inject 0x7495c7d0	notifier_err_inject_init
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x18efd32f	raid6_datap_recov
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0x391d9714	raid6_call
+EXPORT_SYMBOL_GPL	 lib/raid6/raid6_pq 0xa51bfd9f	raid6_2data_recov
+EXPORT_SYMBOL_GPL	 net/802/garp 0x10ff1648	garp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/garp 0x32458c9b	garp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/garp 0x5e93ca76	garp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0x70f98b37	garp_register_application
+EXPORT_SYMBOL_GPL	 net/802/garp 0xdf1aedd5	garp_request_join
+EXPORT_SYMBOL_GPL	 net/802/garp 0xf49bc341	garp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x030b3494	mrp_uninit_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x170c46c2	mrp_init_applicant
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x244eb386	mrp_request_leave
+EXPORT_SYMBOL_GPL	 net/802/mrp 0x5e00b574	mrp_unregister_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xb62bb939	mrp_register_application
+EXPORT_SYMBOL_GPL	 net/802/mrp 0xc0d402c3	mrp_request_join
+EXPORT_SYMBOL_GPL	 net/802/stp 0x0be00c70	stp_proto_register
+EXPORT_SYMBOL_GPL	 net/802/stp 0x572a2637	stp_proto_unregister
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x584a663c	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL	 net/9p/9pnet 0x78ba6c4d	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x346b8913	br_fdb_clear_offload
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x47e0820f	br_multicast_has_querier_anywhere
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x50b94956	br_vlan_get_proto
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x65a2d4f4	br_multicast_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x863a2b59	br_forward
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x8a8f826b	br_forward_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0x9a1cdf48	nf_br_ops
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xafdbce4d	br_vlan_get_info
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb6b9548d	br_vlan_get_pvid_rcu
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xb8a52e06	br_vlan_enabled
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc43e0782	br_fdb_find_port
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xc9319c4d	br_multicast_list_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xccaf7b66	br_handle_frame_finish
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd066cdad	br_dev_queue_push_xmit
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xd20a8945	br_multicast_router
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xdb39b6d4	br_multicast_has_querier_adjacent
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xefbba114	br_vlan_get_pvid
+EXPORT_SYMBOL_GPL	 net/bridge/bridge 0xf4e51c72	br_port_flag_is_set
+EXPORT_SYMBOL_GPL	 net/core/failover 0x02f044c0	failover_unregister
+EXPORT_SYMBOL_GPL	 net/core/failover 0x5077b3af	failover_register
+EXPORT_SYMBOL_GPL	 net/core/failover 0xb2f80c60	failover_slave_unregister
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x04b06448	dccp_parse_options
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x0756ff58	dccp_init_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x114d94fb	dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x11c80173	dccp_close
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x182ec2bf	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3101c1e9	dccp_sync_mss
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x344748d0	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x38f3916a	dccp_destroy_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3ba5f41a	dccp_reqsk_init
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x3cab50c1	inet_dccp_listen
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x44319811	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x507139d9	dccp_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x52b3dce7	dccp_poll
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x52dbe830	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x535c843c	dccp_orphan_count
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x548fd5ba	dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x549018d2	dccp_set_state
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x59814a84	dccp_statistics
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x5f1771d4	dccp_ioctl
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x6869b718	dccp_insert_option
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x7232f468	dccp_destruct_common
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x74203431	dccp_hashinfo
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x80993155	dccp_timestamp
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x8a2ac062	dccp_disconnect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x92639d2f	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0x9b54400c	dccp_done
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xab3dafd5	dccp_make_response
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xac112c20	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xad112b94	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb23b213b	dccp_send_sync
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xb78ee43e	dccp_death_row
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xba2a1abe	dccp_recvmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbadb174c	dccp_rcv_established
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xbe6f5f00	dccp_child_process
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xc20cab8b	dccp_check_req
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd3904e11	dccp_send_ack
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xd9ddeb1e	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xec1dc7cf	dccp_shutdown
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xee0bff44	dccp_sendmsg
+EXPORT_SYMBOL_GPL	 net/dccp/dccp 0xffb1d921	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x08683674	dccp_v4_connect
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x274af88c	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0x6b9aafdf	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xb273b01e	dccp_invalid_packet
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xcaa19fcb	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL	 net/dccp/dccp_ipv4 0xdb2bfd2b	dccp_v4_send_check
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x206eeeb8	ife_encode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x6210e871	ife_tlv_meta_next
+EXPORT_SYMBOL_GPL	 net/ife/ife 0x67db2029	ife_tlv_meta_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xb377f807	ife_decode
+EXPORT_SYMBOL_GPL	 net/ife/ife 0xe7888e98	ife_tlv_meta_encode
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0x58c792fe	esp_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xa729490a	esp_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv4/esp4 0xc541733e	esp_output_head
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0x7297daf6	gre_add_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/gre 0xf8cab3bb	gre_del_protocol
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x095b3383	inet_diag_bc_sk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x1a788583	inet_diag_msg_common_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x1d82baf4	inet_diag_find_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x3f7058cc	inet_diag_register
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x44c146ab	inet_diag_unregister
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0x90a7122e	inet_diag_msg_attrs_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xabdee716	inet_sk_diag_fill
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xbd9197c8	inet_diag_dump_one_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/inet_diag 0xd3dcd3cb	inet_diag_dump_icsk
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_gre 0x5494d3f2	gretap_fb_dev_create
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x10dbdbd3	ip_tunnel_init
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x1729760f	ip_tunnel_uninit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x3291b5a3	ip_tunnel_dellink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x50f3eef3	ip_tunnel_changelink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x515a3680	ip_tunnel_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x892e87af	ip_tunnel_init_net
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x8fe13513	ip_tunnel_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x912e6152	ip_tunnel_newlink
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0x9f140c86	__ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xa79ce9c2	ip_md_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xad641e0a	ip_tunnel_rcv
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc381a964	ip_tunnel_ioctl
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xc9d73fc1	ip_tunnel_change_mtu
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xcd068256	ip_tunnel_delete_nets
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xd2784697	ip_tunnel_xmit
+EXPORT_SYMBOL_GPL	 net/ipv4/ip_tunnel 0xfd5ced80	ip_tunnel_lookup
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/arp_tables 0x4505540f	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/ip_tables 0x9ebedaed	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_defrag_ipv4 0xb8fdde73	nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_dup_ipv4 0x5864f116	nf_dup_ipv4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x000f20a2	nf_send_reset
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x1222a361	nf_reject_ip_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x382396c4	nf_send_unreach
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0x3d533dbc	nf_reject_ip_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_reject_ipv4 0xeed9df91	nf_reject_iphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_socket_ipv4 0x8a65c891	nf_sk_lookup_slow_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x1d690322	nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0x78dffc0b	nf_tproxy_laddr4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nf_tproxy_ipv4 0xf00610fe	nf_tproxy_handle_time_wait4
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xe795d80e	nft_fib4_eval
+EXPORT_SYMBOL_GPL	 net/ipv4/netfilter/nft_fib_ipv4 0xe82b1460	nft_fib4_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x1c15d7e4	tcp_vegas_state
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x41a3b3f7	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0x8f395553	tcp_vegas_init
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xacb93808	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL	 net/ipv4/tcp_vegas 0xbf48728b	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x3c30e3c8	setup_udp_tunnel_sock
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x6fe667d2	udp_tunnel_notify_add_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0x9177a46e	udp_tunnel_drop_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xa67d5ade	udp_tunnel_sock_release
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xb19c9d09	udp_tun_rx_dst
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xc8c6bacf	udp_tunnel_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xdbda7187	udp_tunnel_push_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv4/udp_tunnel 0xe0f27787	udp_tunnel_notify_del_rx_port
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0x27c02232	esp6_output_tail
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xb10050dc	esp6_output_head
+EXPORT_SYMBOL_GPL	 net/ipv6/esp6 0xb9f6d1d8	esp6_input_done2
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0x62369dc0	ip6_tnl_rcv_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xd4bd7291	ip6_tnl_encap_setup
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_tunnel 0xdb1bd27d	ip6_tnl_xmit_ctl
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0x5ab33fda	udp_sock_create6
+EXPORT_SYMBOL_GPL	 net/ipv6/ip6_udp_tunnel 0xc7ee1de1	udp_tunnel6_xmit_skb
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/ip6_tables 0x1478b54b	ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0x657b07bb	nf_ct_frag6_gather
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_defrag_ipv6 0xe0e6a39c	nf_defrag_ipv6_enable
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_dup_ipv6 0x86f776be	nf_dup_ipv6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x518395b9	nf_reject_ip6_tcphdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x536a4e30	nf_reject_ip6hdr_put
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x6da90a1f	nf_send_unreach6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x7622cbfb	nf_send_reset6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_reject_ipv6 0x9953e3ca	nf_reject_ip6_tcphdr_get
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_socket_ipv6 0x0d0269f8	nf_sk_lookup_slow_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0x80d8b77c	nf_tproxy_laddr6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xcc667512	nf_tproxy_handle_time_wait6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nf_tproxy_ipv6 0xf602b105	nf_tproxy_get_sock_v6
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0x406458ab	nft_fib6_eval_type
+EXPORT_SYMBOL_GPL	 net/ipv6/netfilter/nft_fib_ipv6 0xa1096e44	nft_fib6_eval
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x116388d3	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x12ab093b	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1c03c6c2	l2tp_session_get_by_ifname
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x1e33b8c0	l2tp_session_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x24c95254	l2tp_tunnel_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x264ed344	l2tp_session_get_nth
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x280b2935	l2tp_session_create
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x367449a1	l2tp_session_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x39e0f8d0	l2tp_tunnel_get_session
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x4463d53b	l2tp_tunnel_register
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x6bd1234d	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7692ff52	l2tp_session_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x7f319cbd	__l2tp_session_unhash
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0x8b0993f0	l2tp_tunnel_get
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xa932e6ee	l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf5580f80	l2tp_session_free
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_core 0xf985e5f2	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x337f2432	l2tp_nl_unregister_ops
+EXPORT_SYMBOL_GPL	 net/l2tp/l2tp_netlink 0x7e901f91	l2tp_nl_register_ops
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x3408a540	mpls_stats_inc_outucastpkts
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x6440d4d7	mpls_dev_mtu
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x6a781719	mpls_pkt_too_big
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x80acb05a	nla_put_labels
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0x8b51dbfc	mpls_output_possible
+EXPORT_SYMBOL_GPL	 net/mpls/mpls_router 0xe413b0a4	nla_get_labels
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x0b2310aa	ip_set_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x22d966c6	ip_set_range_to_cidr
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x2effa02f	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x38cefdaf	ip_set_put_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x397f6231	ip_set_free
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x3ee8f32d	ip_set_get_byname
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x51cafc9f	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x539c45f1	ip_set_add
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x5ac15f64	ip_set_elem_len
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x60f5581d	ip_set_nfnl_put
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x6e1abef6	ip_set_del
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x88010b43	ip_set_type_register
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8b4a8a11	ip_set_name_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x8e512ab9	ip_set_put_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x967df2b6	ip_set_match_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0x9e98722b	ip_set_get_ipaddr6
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa0e5da43	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xa293f8a6	ip_set_get_ipaddr4
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xac5ecf49	ip_set_type_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xaf1a2b82	ip_set_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xcf16ba37	ip_set_test
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xdc159fca	ip_set_get_extensions
+EXPORT_SYMBOL_GPL	 net/netfilter/ipset/ip_set 0xf845dc44	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x21c05f7e	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0x8d97a2ba	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xb16a19ee	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL	 net/netfilter/ipvs/ip_vs 0xb8873724	register_ip_vs_pe
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x087d8890	nf_conncount_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x3f85489c	nf_conncount_list_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x4af54be0	nf_conncount_cache_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0x716d0983	nf_conncount_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xa73ff584	nf_conncount_count
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xaec6e23f	nf_conncount_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conncount 0xcb331ce8	nf_conncount_gc_list
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x07c3b860	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0943c2ba	nf_connlabels_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x0bc00f80	nf_nat_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x10098b66	nf_ct_get_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x184f5191	nf_ct_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x189ad5e8	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x1e380d99	nf_conntrack_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x20476528	nf_ct_tmpl_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x28eff409	nf_conntrack_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x293e8588	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x312a5c91	nf_ct_netns_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31413208	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x317c69c0	nf_ct_helper_expectfn_find_by_symbol
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x31913766	nf_conntrack_eventmask_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x36ea7eed	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3844b305	nf_conntrack_helpers_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3af7f574	nf_ct_iterate_cleanup_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x3baeeb8d	nf_ct_bridge_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x450b7bea	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x48865ede	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x4c013918	nf_ct_seq_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5107ddef	nf_ct_helper_expectfn_find_by_name
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x51f7a9bf	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x53776d45	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x54615570	nf_nat_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x56380a8f	nf_ct_unconfirmed_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x56761da2	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x57368264	nf_ct_expect_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5cbaee1a	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x5df8a867	nf_conntrack_helper_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x604b7e7d	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x63a9a0d4	nf_ct_extend_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x693c3961	nf_ct_helper_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6a18a70c	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6a4a06dc	nf_ct_destroy_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6d7bb44c	nf_ct_helper_expectfn_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x6f80b7dc	nf_conntrack_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x79172a42	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7a24b9bf	nf_ct_seqadj_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x7ca4de3f	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x81fe0b13	nf_ct_expect_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8289ef1e	nf_ct_kill_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x831257a6	nf_ct_helper_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x858fb0a0	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8634472a	nf_nat_helper_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x86b20cd2	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x895e3ece	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8cdde6b2	nf_ct_untimeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8cebcbae	nf_conntrack_helpers_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9042e362	nf_conntrack_expect_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9309362a	nf_ct_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x935632db	nf_ct_tmpl_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x94ab497b	nf_ct_tcp_seqadj_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x95a0b04a	nf_ct_timeout_find_get_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9d59aa4d	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9e0bbaa9	nf_ct_delete
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0x9ea27a73	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xafda00b6	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb010b71e	nf_ct_netns_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xb4c78eaa	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbc350dbc	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbdc45ef7	nf_ct_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xbe254d0a	nf_nat_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc00cc129	nf_ct_expect_iterate_net
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc40f284c	nf_ct_helper_hsize
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc6b23eef	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xc7ec7b95	nf_ct_set_timeout
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xcb501ae9	nf_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd19ec657	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd2e19525	nf_ct_helper_log
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd505c3e0	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd6951887	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd894c712	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd8b8066e	nf_conntrack_in
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd90f981f	nf_conntrack_hash_check_insert
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xd9b09484	nf_ct_helper_expectfn_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xda5f0d3f	nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xdcd7f52e	nf_ct_timeout_put_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe1777717	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe45e2f7b	nf_l4proto_log_invalid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe56e1fb6	nf_ct_bridge_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe7d8ccb0	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xe8fedbcc	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xeb0c1329	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xec8beba6	nf_ct_expect_hash
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xecd223e8	nf_connlabels_replace
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xee0b7a31	nf_conntrack_locks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xf4f43d6a	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfa8fde61	nf_ct_expect_iterate_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfabe4c1e	nf_ct_seq_adjust
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfd01bd80	nf_connlabels_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfdbeb8f6	nf_ct_remove_expect
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack 0xfe731af8	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_amanda 0xc94d4d5b	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_broadcast 0xf4f7bcc7	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_ftp 0x68e29495	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x081f9306	nat_t120_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x1f7fb009	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x300e94e9	set_sig_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x6cb1adff	set_ras_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x95dac406	nat_h245_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x988a252a	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0x9f3e79fa	nat_q931_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xac38b519	set_h225_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xbb5dd44d	set_h245_addr_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_h323 0xc0aa7068	get_h225_addr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_irc 0xf8e59ad2	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x4685db9e	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0x7a0170bd	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xc26fc57c	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_pptp 0xd65e282e	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x053f6fdd	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x3ab9af81	ct_sip_parse_request
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x49ac1cb5	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x6983d4e3	ct_sip_get_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x74d1fd73	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0x9f60eebc	nf_nat_sip_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_sip 0xc6b49417	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_snmp 0xbabf23ce	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_conntrack_tftp 0xd0ce0e81	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x2ed50181	nft_fwd_dup_netdev_offload
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0x85e831cd	nf_fwd_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_dup_netdev 0xf9ea2e06	nf_dup_netdev_egress
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x0e0b66c2	nf_flow_table_cleanup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1390b9e5	flow_offload_teardown
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x1bf74cea	nf_flow_offload_ipv6_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x3f79f5d1	nf_flow_snat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x4cd22b26	flow_offload_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x8dfa4637	flow_offload_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x92b71e38	nf_flow_offload_ip_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x93d322a9	flow_offload_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0x9dfc7f05	flow_offload_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa7b78e94	nf_flow_table_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xa9d81932	nf_flow_table_free
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_flow_table 0xcbec60c0	nf_flow_dnat_port
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x040f4a4f	nf_log_dump_vlan
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x292b0fdf	nf_log_dump_packet_common
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x71a5c510	nf_log_dump_sk_uid_gid
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0x98374328	nf_log_dump_tcp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xc1d0150c	nf_log_l2packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_log_common 0xf132815d	nf_log_dump_udp_header
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x12ea4516	nf_nat_packet
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x148708ce	nf_nat_inet_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x1fa6095e	nf_nat_alloc_null_binding
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x2ec38c1d	nf_nat_ipv6_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x3bc17c49	nf_nat_masquerade_inet_register_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x40468ac8	nf_nat_inet_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x41b9a919	nf_nat_ipv6_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x59bfa48f	nf_nat_ipv4_unregister_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x5bb91f2e	nf_nat_redirect_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x76492c9d	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x8369e269	nf_nat_icmpv6_reply_translation
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x89b0bcb5	nf_ct_nat_ext_add
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0x952b7a82	nf_nat_inet_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xba5c1158	nf_nat_redirect_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xbef3add8	nf_nat_masquerade_ipv4
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xd9c25654	nf_nat_masquerade_inet_unregister_notifiers
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xe89606d3	nf_nat_ipv4_register_fn
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_nat 0xff88fa1d	nf_nat_masquerade_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x157424ed	synproxy_recv_client_ack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x1f099794	synproxy_init_timestamp_cookie
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x22e61e1c	ipv6_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x30a3ea51	synproxy_parse_options
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x41cf076d	synproxy_recv_client_ack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x5f7561a6	nf_synproxy_ipv6_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x673a7192	synproxy_send_client_synack
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x6f054fb9	nf_synproxy_ipv6_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0x85df3776	nf_synproxy_ipv4_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb5af1969	nf_synproxy_ipv4_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xb671ce55	ipv4_synproxy_hook
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xca9fc082	synproxy_net_id
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_synproxy_core 0xcc9f2131	synproxy_send_client_synack_ipv6
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x04a0dd1b	nf_tables_activate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1add3341	nft_meta_set_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x1f2cd7d0	nft_data_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x3251d762	nf_tables_trans_destroy_flush_work
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x38a92be3	nft_meta_set_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41b71e65	nft_trace_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x41e5b409	nft_unregister_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x430b7841	nft_do_chain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x4986f358	nft_obj_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x49a83988	nf_tables_deactivate_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x50d05bc9	nft_register_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x513c4b69	nf_tables_destroy_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5170e7f3	nft_meta_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x56bb327c	nf_tables_bind_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5965d2e5	nft_chain_validate_hooks
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5e42bcb5	nft_chain_validate_dependency
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x5eca8882	nft_data_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6125944b	nft_set_gc_batch_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x63b60c8a	nft_unregister_expr
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x642a7849	nft_dump_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x67b4b5fe	nft_unregister_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x6ae8a855	nft_meta_get_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x75651686	nft_chain_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x7fcb51a9	nft_data_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x852439f4	nft_flowtable_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x86312b3c	nft_register_set
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8f64be30	nft_set_ext_types
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x8fd10e69	nft_obj_notify
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9592eeb7	nft_meta_get_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0x9ba1c59d	nft_unregister_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xab7db6be	nft_meta_get_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb3cac4c0	nft_meta_set_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xb908964e	nft_meta_set_eval
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xba028bf1	nft_meta_set_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xbf63bb61	nft_set_gc_batch_release
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xc98b058e	nft_register_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcd31ab53	nft_register_chain_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcdcd5386	nft_register_flowtable_type
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xce829a3b	nft_unregister_obj
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xcebf7e73	nft_set_lookup_global
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xd85330e2	nf_tables_deactivate_flowtable
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdcd649cd	__nft_release_basechain
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdcfb3eed	nft_set_elem_destroy
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xde57b5f5	nft_parse_u32_check
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xdf4f5f8c	nft_parse_register_store
+EXPORT_SYMBOL_GPL	 net/netfilter/nf_tables 0xe2b8cc13	nft_parse_register_load
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x16e22dea	nfnetlink_unicast
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x1a7f5adc	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x1c0ad5e5	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x28c35889	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x5ce3b588	nfnl_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0x9e256885	nfnetlink_set_err
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xb7bc7d30	nfnetlink_send
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink 0xdb065657	nfnl_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x4ae989e7	nfnl_acct_update
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0x9713786d	nfnl_acct_find_get
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xbecf5d14	nfnl_acct_put
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_acct 0xf08649bd	nfnl_acct_overquota
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x35eff5e0	nf_osf_fingers
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0x505c2562	nf_osf_find
+EXPORT_SYMBOL_GPL	 net/netfilter/nfnetlink_osf 0xc885469e	nf_osf_match
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x6aace36a	nft_fib_store_result
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x6ef818af	nft_fib_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x99854131	nft_fib_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_fib 0x9eb1e38d	nft_fib_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1de558c1	nft_reject_icmpv6_code
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x1ec95cfc	nft_reject_dump
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0x7690dcbb	nft_reject_validate
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xa5f71562	nft_reject_policy
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xb49ceb00	nft_reject_init
+EXPORT_SYMBOL_GPL	 net/netfilter/nft_reject 0xe2c84666	nft_reject_icmp_code
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x04e27719	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x24c8e482	xt_copy_counters_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x2f4a7ad0	xt_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3919bd67	xt_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x3d406774	xt_request_find_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x424e14f4	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x4feced1c	xt_proto_fini
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x516ff088	xt_check_target
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x58122afb	xt_replace_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x6094a7cf	xt_compat_match_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x631a3fd2	xt_hook_ops_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x67a2a16d	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x72d9d39f	xt_proto_init
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x7bce4603	xt_data_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x823edea5	xt_compat_add_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9bbfd3e9	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0x9c995c69	xt_percpu_counter_alloc
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa7c94f1d	xt_compat_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xa8d5de26	xt_request_find_match
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xb0173a10	xt_table_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbdfbd707	xt_request_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xbfacb837	xt_percpu_counter_free
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc598a50e	xt_find_table_lock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xc7fae024	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd1e246a2	xt_compat_unlock
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3658e5f	xt_compat_target_offset
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xd3fcc511	xt_tee_enabled
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xdd35a83d	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xddf68fc6	xt_find_revision
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xe61d6e35	xt_unregister_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xf92e1472	xt_register_table
+EXPORT_SYMBOL_GPL	 net/netfilter/x_tables 0xfb72cb3a	xt_check_match
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xbcff1432	xt_rateest_lookup
+EXPORT_SYMBOL_GPL	 net/netfilter/xt_RATEEST 0xe75133ec	xt_rateest_put
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xd01f1d9a	nsh_push
+EXPORT_SYMBOL_GPL	 net/nsh/nsh 0xf2fa82b8	nsh_pop
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x22378e20	ovs_netdev_tunnel_destroy
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x405f7b9d	__ovs_vport_ops_register
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0x674974fd	ovs_vport_free
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xbb4168fa	ovs_vport_alloc
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xc426352b	ovs_netdev_link
+EXPORT_SYMBOL_GPL	 net/openvswitch/openvswitch 0xd6dca9fc	ovs_vport_ops_unregister
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x1bdc70fa	psample_sample_packet
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x213aea85	psample_group_put
+EXPORT_SYMBOL_GPL	 net/psample/psample 0x2e648dfa	psample_group_get
+EXPORT_SYMBOL_GPL	 net/psample/psample 0xd62ab30c	psample_group_take
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x00a467af	rds_wq
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x0fde064e	rds_info_register_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x18464d1a	rds_conn_path_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x1d417d5e	rds_conn_destroy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x22220cb6	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2424403e	rds_send_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x24a14c12	rds_conn_path_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x2b0d543c	rds_message_add_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x31b7fe13	rds_conn_create
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x334825ac	rds_send_path_reset
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x36087aa4	rds_stats
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x3da09a0a	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45971638	rds_recv_incoming
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x45a4781e	rds_addr_cmp
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4d06e6a0	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x4faba37f	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x577b2f3e	rds_message_addref
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x582fe5cf	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x585f567b	rds_message_populate_header
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x5deaf3ae	rds_send_ping
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x63de378e	rds_send_path_drop_acked
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x75817ea8	rds_connect_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7741286e	rds_trans_register
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x7b399e66	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x80c6ddc1	rds_send_xmit
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x8809019a	rds_cong_map_updated
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9af84eda	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9e897d1a	rds_conn_drop
+EXPORT_SYMBOL_GPL	 net/rds/rds 0x9fbbf075	rds_info_deregister_func
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa50cdcf9	rds_message_unmapped
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xa591e925	rds_inc_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xb77eda71	rds_message_put
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xbb33dccc	rds_inc_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd5b0ca18	rds_connect_path_complete
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xd65300a8	rds_inc_path_init
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xf1bbab74	rds_stats_info_copy
+EXPORT_SYMBOL_GPL	 net/rds/rds 0xff675536	rds_trans_unregister
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x32301c2c	taprio_offload_get
+EXPORT_SYMBOL_GPL	 net/sched/sch_taprio 0x592b2140	taprio_offload_free
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0x5788e26d	sctp_get_sctp_info
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xb26dc18f	sctp_for_each_endpoint
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xdc4c4e5c	sctp_transport_traverse_process
+EXPORT_SYMBOL_GPL	 net/sctp/sctp 0xffa86590	sctp_transport_lookup_process
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4808400d	smc_hash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x4bc768e9	smcd_handle_irq
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x6d6dcc39	smc_unhash_sk
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x8338c125	smcd_handle_event
+EXPORT_SYMBOL_GPL	 net/smc/smc 0x9ade49c8	smcd_unregister_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xa72f2ea7	smc_proto6
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb3b603b3	smc_proto
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xb422cb59	smcd_free_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xdd444d61	smcd_alloc_dev
+EXPORT_SYMBOL_GPL	 net/smc/smc 0xff8ba75e	smcd_register_dev
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5	g_make_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x4253738a	gss_mech_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4	g_token_size
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x559e42fd	gss_mech_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0x5ccb97a4	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xd7673035	g_verify_token_header
+EXPORT_SYMBOL_GPL	 net/sunrpc/auth_gss/auth_rpcgss 0xef2b8192	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x007c3641	rpc_switch_client_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0080a2ab	cache_register_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x00b3a5ad	svc_destroy
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x02643684	svc_drop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0371c34b	sunrpc_cache_lookup_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x04ca96aa	svc_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x068565db	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x07d68d9a	xdr_stream_decode_string_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x086dd502	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a145801	rpcb_getport_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a3f8a72	svc_rpcbind_set_version
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0a96eb92	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0b0ae8da	rpc_init_pipe_dir_head
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0be4918c	rpc_sleep_on_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0c485db8	rpcauth_wrap_req_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0da66e40	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x0e54cf45	svc_bind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x103c7ea7	rpc_clnt_swap_activate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x10810f50	rpc_call_null
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1323766a	rpcauth_unwrap_resp_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x14c89c41	xdr_decode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x16f8ebd1	rpc_max_bc_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x176877dd	bc_svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18180546	rpc_malloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x18aa8d8b	svc_xprt_init
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x19e009a5	rpc_clnt_xprt_switch_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1a081dab	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1b1d73ff	svc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1ce8c20a	rpc_count_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1d787db3	rpc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e119a79	rpcauth_get_pseudoflavor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x1e93c5b6	svc_authenticate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x202dfe40	svc_age_temp_xprts_now
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x204fa450	gssd_running
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2054bf1c	rpc_release_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22517173	rpc_d_lookup_sb
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x22c40a27	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x236a3dd6	rpc_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x23fd9269	rpc_clnt_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x24f083e2	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x270d57e1	xdr_inline_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x272214f0	xprt_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x275430fa	xprt_unregister_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c21cde6	xprt_disconnect_done
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2c5a564c	cache_seq_start_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d5cb1fa	rpc_remove_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2d7b7aed	svc_find_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x2fba8770	rpc_shutdown_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x30f1f01e	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3118063c	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x32031649	xprt_wait_for_reply_request_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x32b2b7da	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3312ce67	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3485c5ac	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x35ea6c01	rpc_put_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x360b15cd	cache_create_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x36a9eb7b	xdr_reserve_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x371522f5	svc_create_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x387e1639	rpc_pipefs_notifier_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x38ca8f7e	cache_unregister_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3ac63c4b	rpc_wake_up_first
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3bc4c4b2	xprt_request_get_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d47b070	svc_recv
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3d578e0c	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e63b6d1	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3e751ffc	rpc_num_bc_slots
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3eeaaad5	rpc_clnt_swap_deactivate
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x3f9a2b0b	rpcauth_get_gssinfo
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4267ef64	rpc_clnt_xprt_switch_has_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x43892454	xdr_encode_array2
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453a0b0e	cache_check
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x453efa54	svc_pool_map
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48300c34	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x48d07926	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4af0e901	rpcauth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4afedab1	xprtiod_workqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4b6aeb6b	xprt_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4c29d914	rpc_sleep_on_priority_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4cdcc56c	xdr_stream_decode_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d6b4355	rpc_bind_new_program
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4d9d2e64	xdr_write_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4dac77f0	xdr_encode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e1a6723	svc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4e8f6ca7	sunrpc_net_id
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4f0dc7ad	rpc_get_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4fbfdadf	unix_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x4fcfc278	svc_xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5070c285	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x518e51a0	rpc_proc_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x54e74f6a	xdr_stream_pos
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x575d9895	svc_create_pooled
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x576359d6	xdr_shift_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x57d2dd73	svc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x59143655	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a45ba31	svc_auth_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5a4a310f	rpc_localaddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5df074a7	auth_domain_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e03eb12	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5e06916d	xprt_reconnect_backoff
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5ef2a082	xprt_register_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x5efedc3b	xprt_wait_for_reply_request_def
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x620921e9	sunrpc_destroy_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x63e336bf	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x66c62253	rpcauth_init_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x678717f7	xprt_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x67c7f938	xdr_buf_trim
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6887e986	xprt_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6a01266a	rpc_count_iostats_metrics
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6c32f29a	rpc_put_sb_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6e4d1bcd	rpc_destroy_pipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6edbf302	xprt_pin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6f41ff16	svc_encode_read_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x6fc8c65b	svc_fill_symlink_pathname
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x706968ac	cache_destroy_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x708f1d03	svc_print_addr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x70d4caa6	svc_fill_write_vector
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71819127	rpc_mkpipe_data
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x72028f85	rpcauth_stringify_acceptor
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x75a90b5e	rpc_add_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x76b810d8	xprt_write_space
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x783774e6	rpc_sleep_on_priority
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x787cd425	rpc_call_start
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7970e041	rpc_machine_cred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x798ef9a9	rpc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7a18e8d0	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7b43190a	xprt_free_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7bd37fd7	rpcauth_lookupcred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7c254a6e	xdr_read_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7daac5e9	svc_reserve
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7de605cd	rpcauth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ebb005e	xdr_buf_read_mic
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ed60189	xprt_force_disconnect
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7ee51973	svc_generic_rpcbind_set
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x7f4740e1	rpc_exit
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x81833e13	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8193cc24	rpcauth_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x82e6681e	rpc_find_or_alloc_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x84937ef3	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x865437a2	svc_seq_show
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x87b319f6	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x88a09c4b	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c5be9a0	rpc_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c8a9ecf	rpc_prepare_reply_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8c9ebb66	sunrpc_init_cache_detail
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8d434510	xdr_inline_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x8e9172b7	rpc_clnt_iterate_for_each_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x90b24da8	rpc_pton
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x92352111	sunrpc_cache_update
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9472e08a	rpc_ntop
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x951d71a8	xdr_init_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x96a48e95	auth_domain_find
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9b80e9d6	rpc_killall_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9ce38eb0	cache_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9d404e38	xprt_setup_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9eacdf41	svcauth_unix_purge
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9eb1fafb	xdr_decode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0x9fc5350b	rpc_clnt_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa03405ba	xprt_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa04efaaa	xdr_commit_encode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa13acdb8	svc_pool_map_put
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa5fce0bc	xdr_encode_word
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa6782fd9	rpc_run_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa73228d8	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa767b3e7	rpc_call_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa79110f8	svc_generic_init_request
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xa813321d	xprt_reconnect_delay
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaa5994aa	rpc_clnt_show_stats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaba28a37	rpc_free_iostats
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac32c097	sunrpc_cache_unhash
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xac9a0943	rpc_setbufsize
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadd6c228	xprt_release_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd2115	xdr_init_decode
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xadfd3f84	rpcauth_list_flavors
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf0ce5cd	svc_rqst_alloc
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xafbf7ac8	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb01d8932	svc_close_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb2a473d5	cache_seq_stop_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb312d0c4	svc_pool_map_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb4ac3e2f	rpc_force_rebind
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb51a3724	rpc_pipefs_notifier_unregister
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb58a8c40	svc_auth_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb5bf1619	svc_exit_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb7127462	svc_xprt_do_enqueue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xb814691c	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xba6d6cda	_copy_from_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe318352	rpc_wake_up_status
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbe3b536d	rpc_task_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbeb4f774	rpc_call_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbed17f9d	xdr_terminate_string
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xbfb71ecd	cache_seq_next_rcu
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc0e12e43	rpc_max_payload
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2563b54	svc_rpcb_setup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc26c971d	xprt_alloc_slot
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc2cbf57f	rpc_wake_up
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc61972de	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc6ac5a0f	rpc_task_release_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc70bc8b6	rpc_init_pipe_dir_object
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc71dfe08	svc_addsock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc7860bf0	put_rpccred
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8b619d7	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc906fca4	svc_return_autherr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xc96321ad	xprt_complete_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce5c855b	rpc_unlink
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xce678a59	xdr_decode_netobj
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd051688d	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd06082f2	auth_domain_lookup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd16c93ed	xdr_stream_decode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd4f2a289	svc_set_num_threads
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xd6a9910f	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdad4053b	svc_shutdown_net
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdb4e48a0	rpc_clone_client_set_auth
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdc4d0549	rpc_clnt_xprt_switch_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde0e1ca0	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xde3a9743	rpc_sleep_on
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdede56a4	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf7c750b	xdr_process_buf
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdf8e86cb	svc_prepare_thread
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xdfd3e569	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe06aaa16	rpc_net_ns
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe09aa54a	svc_proc_register
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0cfd376	xprt_destroy_backchannel
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe0e7f21b	rpc_peeraddr
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3057d36	svc_create
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe30736c3	svc_rqst_free
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe3a6eccd	svc_process
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe4c4de9d	xdr_stream_decode_opaque_dup
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe67fe58a	rpc_clone_client
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe71df731	rpc_put_task_async
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9b88cbe	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xe9d3e9ee	rpc_set_connect_timeout
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeab573f3	xdr_enter_page
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xed8db864	rpc_wake_up_next
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf0dcd9bb	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf1afe84b	svc_set_num_threads_sync
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2e44218	rpc_mkpipe_dentry
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf2e62ce1	svc_alien_sock
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf54f88ae	xprt_unpin_rqst
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf5da44c7	rpc_clnt_setup_test_and_add_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xf6f11064	rpc_restart_call
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfa873ff9	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfb497d39	rpc_queue_upcall
+EXPORT_SYMBOL_GPL	 net/sunrpc/sunrpc 0xfca77324	svc_xprt_names
+EXPORT_SYMBOL_GPL	 net/tls/tls 0x140f6ddd	tls_validate_xmit_skb
+EXPORT_SYMBOL_GPL	 net/tls/tls 0xdbdb7585	tls_encrypt_skb
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00d93ab9	virtio_transport_get_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69	virtio_transport_stream_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x112e0a30	virtio_transport_stream_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x11e1fa87	virtio_transport_do_socket_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1c43329b	virtio_transport_notify_recv_post_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1eaee894	virtio_transport_connect
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2d6a584f	virtio_transport_inc_tx_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2d80b2ca	virtio_transport_set_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2f4a3655	virtio_transport_deliver_tap_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3b4d6efd	virtio_transport_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3faa140e	virtio_transport_dgram_bind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x43c67daa	virtio_transport_stream_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54679a26	virtio_transport_notify_poll_in
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x61c935ea	virtio_transport_release
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x68275fa3	virtio_transport_dgram_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6926528d	virtio_transport_notify_recv_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x98ab7ae0	virtio_transport_shutdown
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9d1a26dc	virtio_transport_notify_send_pre_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9f16502f	virtio_transport_destruct
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa4574939	virtio_transport_free_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa5893cbe	virtio_transport_recv_pkt
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa8438610	virtio_transport_put_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaf9d7b06	virtio_transport_notify_poll_out
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb24fa250	virtio_transport_notify_recv_pre_dequeue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5	virtio_transport_dgram_allow
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbb5bb0fe	virtio_transport_get_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbcaab7b7	virtio_transport_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc21b92d8	virtio_transport_notify_send_pre_block
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc592a539	virtio_transport_set_max_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd463c488	virtio_transport_get_credit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdabfa561	virtio_transport_set_min_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdba4247a	virtio_transport_stream_is_active
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe92579d3	virtio_transport_notify_send_post_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xeffe1ae6	virtio_transport_notify_send_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf0f11318	virtio_transport_get_buffer_size
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfcacea5d	virtio_transport_dgram_enqueue
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfd541db8	virtio_transport_notify_recv_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfde92ec5	virtio_transport_stream_rcvhiwat
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0a3923f1	vsock_find_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x0c79d5ef	vm_sockets_get_local_cid
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x21494f2b	vsock_add_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x2663cb64	vsock_addr_equals_addr
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x284e07d8	vsock_bind_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x324a39bb	vsock_deliver_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x339e8abe	vsock_find_bound_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x359c66db	vsock_remove_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x372180b0	vsock_remove_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x5140c2e0	vsock_remove_pending
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x6a9ff5ba	__vsock_core_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x717b5eb2	vsock_stream_has_space
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x73879664	vsock_addr_init
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x751ff010	vsock_addr_unbind
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x766e082d	vsock_add_tap
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x7f730c80	vsock_core_exit
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9bb6fd09	vsock_connected_table
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0x9d9553ad	vsock_for_each_connected_socket
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xa0c178e5	vsock_addr_cast
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xac034394	vsock_remove_sock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb3e84145	vsock_enqueue_accept
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xb64d00f4	vsock_table_lock
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbd0f699d	vsock_addr_bound
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xbe3e8141	vsock_remove_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc446cd48	__vsock_create
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xc8922670	vsock_insert_connected
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xd95ac116	vsock_addr_validate
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xdaa857af	vsock_stream_has_data
+EXPORT_SYMBOL_GPL	 net/vmw_vsock/vsock 0xdb3d7f46	vsock_core_get_transport
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0049ca83	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x00c80741	xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x0a575945	xfrm_count_pfkey_auth_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x37a02412	xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x5c699441	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x72395dc1	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0x7a8ca627	xfrm_count_pfkey_enc_supported
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xaab23340	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xb73be794	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xc6b1fdbe	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_algo 0xd6f50cf7	xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x046048f5	ipcomp_output
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x35283aee	ipcomp_init_state
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0x8b630754	ipcomp_destroy
+EXPORT_SYMBOL_GPL	 net/xfrm/xfrm_ipcomp 0xb0eb3e0c	ipcomp_input
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x3fe35aea	irq_bypass_unregister_consumer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x418873cc	irq_bypass_register_producer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0x888c5be5	irq_bypass_register_consumer
+EXPORT_SYMBOL_GPL	 virt/lib/irqbypass 0xf6e772c3	irq_bypass_unregister_producer
+EXPORT_SYMBOL_GPL	 vmlinux 0x000566cf	ip6_route_output_flags
+EXPORT_SYMBOL_GPL	 vmlinux 0x003ff214	mm_account_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x00513f58	get_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x0064b823	crypto_unregister_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x006b7a42	crypto_hash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x008148ca	sched_trace_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0087a9b0	bus_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x008d16ec	blkcg_policy_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0092fdb2	net_dm_hw_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x00942f20	crypto_create_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x00a10b1c	handle_untracked_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x00af9f7f	__tcp_send_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x00be44b1	gmap_discard
+EXPORT_SYMBOL_GPL	 vmlinux 0x00e5860e	blk_mq_free_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x00eb5ea3	perf_pmu_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x00f51d42	devlink_port_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x01069da8	nf_nat_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0x01205818	gpiochip_irq_domain_deactivate
+EXPORT_SYMBOL_GPL	 vmlinux 0x013b959b	gmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x01413c5f	css_schedule_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0155fec9	gpiochip_generic_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x015fd5f0	__tracepoint_pelt_irq_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x01641a00	gpiochip_generic_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x016b73a5	find_vpid
+EXPORT_SYMBOL_GPL	 vmlinux 0x0170d081	s390_reset_acc
+EXPORT_SYMBOL_GPL	 vmlinux 0x017c93d2	inet6_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0x01c43ffa	bpf_prog_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x01ea10f3	locks_release_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x01f88377	sbitmap_queue_min_shallow_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x02191fde	__i2c_board_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x02282799	gmap_sync_dirty_log_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x022f34b0	bpf_trace_run5
+EXPORT_SYMBOL_GPL	 vmlinux 0x02553628	ipv4_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x02692ee6	skcipher_walk_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x026af299	serdev_device_wait_until_sent
+EXPORT_SYMBOL_GPL	 vmlinux 0x026ffc67	kvm_vcpu_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x0271fae1	perf_event_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x02740152	__nf_ip6_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x027a79d9	idr_alloc_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x027dbc15	blk_mq_freeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x02934efc	task_active_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x02aa9f50	dma_buf_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x02b970e5	platform_device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0x02ba82e3	blk_trace_startstop
+EXPORT_SYMBOL_GPL	 vmlinux 0x02f28f84	blk_queue_required_elevator_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x0305315d	dm_hold
+EXPORT_SYMBOL_GPL	 vmlinux 0x032d0c4c	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x036de383	perf_event_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x0370965b	__platform_create_bundle
+EXPORT_SYMBOL_GPL	 vmlinux 0x0378f612	fat_alloc_new_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x0385b497	disk_get_part
+EXPORT_SYMBOL_GPL	 vmlinux 0x0387735c	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x038d7cba	gmap_shadow_pgt
+EXPORT_SYMBOL_GPL	 vmlinux 0x03952887	ktime_add_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x039f85c9	srcu_init_notifier_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x03c12dfe	cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x03ce7234	sched_smt_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x03dcc834	l3mdev_fib_table_by_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f7e4c4	crypto_shash_alg_has_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x03f800c7	add_hwgenerator_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x04028827	blkg_conf_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x0402cbbf	preempt_notifier_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04071170	dm_bio_get_target_bio_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x04240cdc	__module_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x044f4882	__sock_recv_wifi_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x04582844	sk_set_peek_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x04bf0092	io_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x04c4f603	mpi_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x04d8b1ad	pci_ioremap_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e14088	tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e4c92e	dev_queue_xmit_nit
+EXPORT_SYMBOL_GPL	 vmlinux 0x04e86d6b	sock_zerocopy_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x04ea8706	__iowrite64_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0514bc90	ring_buffer_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x051b87fa	__fl6_sock_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0525c740	percpu_down_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x052c9aed	ktime_get_real_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05455ad9	virtqueue_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0553611a	kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x05673b87	chsc_sadc
+EXPORT_SYMBOL_GPL	 vmlinux 0x056fbfe8	tcp_enter_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x058b582a	vt_get_leds
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a5856b	__tracepoint_neigh_cleanup_and_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x05a80470	init_user_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x05af277a	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x05ca15fb	devlink_port_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x05d7895b	relay_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x05e8031f	gpiod_get_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x061604ea	class_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x061a6a17	rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL	 vmlinux 0x065f8b07	perf_event_release_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0x06821121	fs_dax_get_by_bdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x068d97a7	key_type_asymmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0x068f01d4	skcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x069cfc3d	debugfs_create_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x06e14c38	debugfs_create_x16
+EXPORT_SYMBOL_GPL	 vmlinux 0x06ea2805	device_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x06f5aeb9	__platform_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x0721fa1f	shmem_read_mapping_page_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x07242d92	put_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x0727a5fa	security_path_chown
+EXPORT_SYMBOL_GPL	 vmlinux 0x0745ebfe	platform_device_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x075402da	sysfs_groups_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x0757eede	stack_trace_snprint
+EXPORT_SYMBOL_GPL	 vmlinux 0x075f8817	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x076a944d	iommu_group_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0779be09	scsi_dh_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x07a86c54	l3mdev_fib_table_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x07be6905	net_inc_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x07bf29cd	get_cached_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0x07d0f810	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x08135613	dax_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x08179547	sk_setup_caps
+EXPORT_SYMBOL_GPL	 vmlinux 0x081f3d3a	key_type_encrypted
+EXPORT_SYMBOL_GPL	 vmlinux 0x082accf0	kstrdup_quotable_cmdline
+EXPORT_SYMBOL_GPL	 vmlinux 0x0837ac88	device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x08436119	klp_shadow_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0850daff	tpm_pm_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0x085b29fd	input_ff_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x086fbe5f	__wake_up_locked_key_bookmark
+EXPORT_SYMBOL_GPL	 vmlinux 0x08b3f17b	fat_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bc0870	compat_put_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0x08bd81b2	software_node_unregister_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c489ce	is_hash_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0x08c7cd74	locks_alloc_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x08d3bf02	trace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x08f2cda3	skb_mpls_pop
+EXPORT_SYMBOL_GPL	 vmlinux 0x091eb9b4	round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x0932b6d2	dax_layout_busy_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x09437748	ring_buffer_read_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0945dcde	class_compat_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x09498649	sbitmap_bitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x09501cb3	fsnotify_get_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x095b2d0c	devlink_resources_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x096b2418	__tracepoint_tcp_send_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x097f5f77	sysfs_update_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x09878cf4	devlink_dpipe_table_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x09885b48	__udp_enqueue_schedule_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0998b75c	gpiod_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x09ae442d	switchdev_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x09af774a	noop_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x09b53e14	interval_tree_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x09c48925	device_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x09f81d84	find_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x09fa4a36	blkcg_root_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x09fa588b	kvm_vcpu_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0b1844	crypto_req_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a0c5d42	blk_mq_start_stopped_hw_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a28aa56	scsi_target_unblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a5b713b	proc_create_net_data_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a630669	bpf_prog_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a644ce9	raw_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a6c4041	cn_netlink_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a7eb1c5	alarm_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x0a9d9224	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa13373	split_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x0aa8eac4	gpiod_set_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x0abe7646	pci_vfs_assigned
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac5f50d	proc_create_net_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ac71a20	xas_split_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0afcc43c	gmap_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b17e96f	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b1bb9f9	synchronize_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b2db2d5	remove_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b5124dc	tcp_ca_openreq_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b68d791	sbitmap_del_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0b9571e9	kvm_vcpu_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bb5479c	kernfs_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bbe009d	cn_add_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc25346	iommu_detach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc5481b	clock_comparator_max
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bc62b33	pci_epf_unbind
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bcd2a4a	pci_epc_unmap_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0bef8863	sched_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c17dfbf	component_unbind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c1d62de	iommu_group_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c28728b	virtqueue_get_desc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c2c5802	work_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c42a93e	device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x0c931f39	vfs_writef
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ca9c235	trace_array_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cad4570	security_kernel_load_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cb185fd	tpm_chip_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cdc6572	cio_commit_config
+EXPORT_SYMBOL_GPL	 vmlinux 0x0cfcae38	__scsi_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d1a34e7	blk_revalidate_disk_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d22d728	devlink_region_snapshot_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d2af62a	netlink_has_listeners
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d425908	register_net_sysctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d459213	work_on_cpu_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4961de	nf_log_buf_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4af8f2	hypervisor_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d4c6cd5	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5c5138	l3mdev_master_upper_ifindex_by_index_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d5f6bb8	unregister_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d67c35d	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x0d6c3f8b	fat_sync_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x0da14455	direct_make_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc33679	cio_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dc5efee	platform_device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ddb1cd7	llist_reverse_order
+EXPORT_SYMBOL_GPL	 vmlinux 0x0dec42fe	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e1a0551	__bdev_dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e24a752	kobject_get_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e4b0f34	register_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e541f71	__alloc_percpu_gfp
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e6b79af	static_key_disable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e795732	devres_close_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e91586a	skcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x0e9c333c	pci_bus_max_busnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ea7bb5f	virtqueue_add_sgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x0eb7ed5e	devlink_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ec0518f	fib_rules_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1e69ad	klist_add_head
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f1f21ce	fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f657325	tty_port_install
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f79fa3c	desc_to_gpio
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f7ad7bf	blk_mq_bio_list_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f812799	gen_pool_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f8377f7	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL	 vmlinux 0x0f866319	__blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fdd4e58	ncsi_start_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x0fe7617c	__tracepoint_suspend_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x0ff98dca	debugfs_create_x8
+EXPORT_SYMBOL_GPL	 vmlinux 0x10075f38	housekeeping_any_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x101f6bac	bsg_remove_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1032f256	pci_disable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x1033652c	scsi_ioctl_block_when_processing_errors
+EXPORT_SYMBOL_GPL	 vmlinux 0x1035ece5	__rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x104151fc	xsk_reuseq_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x107574ed	ipv6_recv_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x10b3457e	unwind_get_return_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x1105793f	tty_kopen
+EXPORT_SYMBOL_GPL	 vmlinux 0x11227d58	bsg_unregister_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x11411235	wbc_account_cgroup_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x118b188f	bpf_trace_run2
+EXPORT_SYMBOL_GPL	 vmlinux 0x1194b0e6	fat_remove_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x11a2e0ac	crypto_dh_key_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x11c23240	crypto_attr_u32
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ce927e	iomap_dio_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x11cf5e7c	crypto_register_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x11d49c6d	fib_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x11f4abbb	perf_aux_output_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x11ffd778	shmem_zero_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1200adb4	pci_dev_run_wake
+EXPORT_SYMBOL_GPL	 vmlinux 0x120eb8bb	devres_open_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x12198c9b	gpiod_set_debounce
+EXPORT_SYMBOL_GPL	 vmlinux 0x121d958a	unregister_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x122dbe82	crypto_shash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x1234e483	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x12561f16	lwtunnel_build_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x12630c8b	xfrm_output_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x12637be2	device_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0x12dbc8f6	percpu_ref_switch_to_atomic_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x12efeafe	wbc_attach_and_unlock_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x12f3f52a	dma_buf_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x130809bc	kvm_unmap_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x131db64a	system_long_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x13214d68	crypto_shash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1332f34c	pci_probe_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x133969d7	__trace_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x135d4fc6	sysfs_group_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x136543e6	iommu_unregister_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x136c4aba	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL	 vmlinux 0x138e0957	dax_write_cache_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x139d1bbd	subsys_find_device_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x13a9a38f	fscrypt_get_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x13b9168f	sk_msg_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0x13cad540	handle_fasteoi_nmi
+EXPORT_SYMBOL_GPL	 vmlinux 0x13de5d95	ping_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x13ed8784	sdev_evt_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1418238a	__tracepoint_cpu_frequency
+EXPORT_SYMBOL_GPL	 vmlinux 0x141f38bf	ktime_get_raw_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1437f5ba	class_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1449fff6	sbitmap_any_bit_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x144ff1b1	call_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x14867324	class_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x14878684	perf_event_read_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x14bc057d	xdp_return_frame_rx_napi
+EXPORT_SYMBOL_GPL	 vmlinux 0x14cb809f	devlink_params_publish
+EXPORT_SYMBOL_GPL	 vmlinux 0x14d8b541	debugfs_create_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x14df8a66	sdev_evt_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x14e36933	clone_private_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x14f9f668	device_match_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x15020913	dummy_irq_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1502db47	crypto_register_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x151e18f4	put_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1520d9a1	scsi_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x15256fb6	crypto_register_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1538cfd2	device_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x153b60a6	klist_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x15510a89	devlink_fmsg_binary_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x156cdac8	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x157bc422	s390_enable_skey
+EXPORT_SYMBOL_GPL	 vmlinux 0x158a82e9	trace_define_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x158bebfc	user_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x15b3d328	eventfd_fget
+EXPORT_SYMBOL_GPL	 vmlinux 0x15c98610	clean_acked_data_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x15d3a764	driver_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x15edeaa8	devlink_resource_occ_get_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x15f93e8f	pci_probe_reset_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x161e9a2c	devlink_dpipe_table_resource_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x1663270e	bpf_offload_dev_netdev_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x166d6443	__tracepoint_pelt_rt_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x16746353	unix_peer_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x1695dded	unregister_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x16a5ca08	bpf_offload_dev_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x16b69bc8	zpci_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x16d29986	pci_stop_and_remove_bus_device_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x16da1f88	devlink_fmsg_u32_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dc7b01	noop_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x16dfbf36	add_interrupt_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f100c9	udp4_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x16f46a50	tpm_chip_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x17063d5b	pci_num_vf
+EXPORT_SYMBOL_GPL	 vmlinux 0x170cc36c	put_timespec64
+EXPORT_SYMBOL_GPL	 vmlinux 0x17149987	trace_print_bitmask_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0x1740316a	pid_nr_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x17455b86	irq_domain_xlate_onecell
+EXPORT_SYMBOL_GPL	 vmlinux 0x1751dbb1	flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x176031a7	devlink_fmsg_string_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1770defa	fuse_get_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x17806ac2	pci_hp_deregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x17901dfb	tty_buffer_unlock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x1797548b	gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x17994d70	memhp_auto_online
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a3993f	__tracepoint_block_split
+EXPORT_SYMBOL_GPL	 vmlinux 0x17a5fbf7	crypto_stats_decompress
+EXPORT_SYMBOL_GPL	 vmlinux 0x17b85f25	register_pernet_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d400bb	pci_cfg_access_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x17d87078	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x1802bdc6	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL	 vmlinux 0x182927a3	elv_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x1832f984	sysfs_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x1845df75	relay_buf_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x1861d89c	subsys_virtual_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1866cec2	ring_buffer_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x186ef4fb	blk_mq_quiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x18879697	tcp_rate_check_app_limited
+EXPORT_SYMBOL_GPL	 vmlinux 0x1892052e	driver_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x1892dee8	bus_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x18a49c0a	platform_device_register_full
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c0aa94	report_iommu_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x18c0bdec	nexthop_find_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fb2caf	cpus_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x18fcbe40	pci_sriov_set_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0x19091ba4	devm_kasprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x19250fb2	inet6_destroy_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x193f9c14	zpci_disable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x19426a28	sock_diag_save_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x19461208	cio_halt
+EXPORT_SYMBOL_GPL	 vmlinux 0x195ccb70	iommu_map_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x1972b601	kobject_init_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x19746b51	__inet_lookup_established
+EXPORT_SYMBOL_GPL	 vmlinux 0x1975283f	verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1980a2dc	dm_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x1991e67c	device_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x19941441	rhashtable_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x19946fde	idr_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x19c1f6c1	pci_user_read_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f0152b	pci_host_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x19f462ab	kfree_call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x19fd0267	gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a0779f6	iommu_dev_enable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a10c32b	crypto_ft_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a1976c2	inet_ehash_locks_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a206bb3	iomap_file_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a38b34f	attribute_container_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a3bfe6a	platform_get_irq_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a551022	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a6bf28f	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x1a70afac	iomap_set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ac203fc	__fat_fs_error
+EXPORT_SYMBOL_GPL	 vmlinux 0x1acd18c8	cpuset_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ad94691	gpiochip_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae0a111	perf_aux_output_skip
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ae0e34a	netlink_add_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1af267f8	int_pow
+EXPORT_SYMBOL_GPL	 vmlinux 0x1afb2f29	devm_gpiod_get_from_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b052d1a	cgroup_get_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b0946d8	idr_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b1f5ad0	gpio_request_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b3d0eb4	gmap_unmap_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b5e7fd1	gmap_pmdp_csp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b6c5a67	chsc_error_from_response
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b92e41d	inet_putpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0x1b96ed48	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bbb4d1f	xdp_rxq_info_unreg
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bcd29c7	__account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bd18562	raw_seq_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1be93325	perf_event_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bee4974	sg_alloc_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf19aca	transport_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x1bf34dae	__irq_domain_alloc_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c065c1d	bpf_verifier_log_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c0e7b90	vring_create_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c3d87cf	kernfs_find_and_get_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c6d757f	unregister_trace_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ca41e72	hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cba4a66	alarm_start_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cbd92b0	cpu_mitigations_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cc60d00	udp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cca081b	pci_epc_write_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x1cd26331	sk_psock_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d03c8a2	seg6_do_srh_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d222ced	irq_get_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d370243	xas_find_marked
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d5ba6ac	gmap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d6375de	__udp_gso_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d77b0f8	unix_socket_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x1d7defbc	sysfs_remove_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x1dd74a84	crypto_unregister_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x1df4143a	crypto_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e33c3b0	fuse_dev_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e404016	debugfs_create_size_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e51dabb	__tracepoint_detach_device_from_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e560481	security_path_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b03dc	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e5b16ce	ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e7bbcb3	kernel_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8325c1	kvm_map_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e85bc28	kvm_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e886c34	kernfs_path_from_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x1e8a9475	__gmap_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0x1eb9516e	round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ebf6c2a	pci_power_names
+EXPORT_SYMBOL_GPL	 vmlinux 0x1ecb3a39	inet6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f0cb5bf	pm_power_off_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f1e862f	sched_trace_rd_span
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f21e69f	kobject_uevent_env
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f27d539	class_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f563160	bpf_offload_dev_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f7a5acb	tty_buffer_lock_exclusive
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x1f9e6b7b	__devcgroup_check_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fa1d95c	sha256_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fc56245	iomap_releasepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x1fe6e504	gpiod_add_hogs
+EXPORT_SYMBOL_GPL	 vmlinux 0x201aa9b1	list_lru_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x205d912a	__blk_req_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x20660b4f	fat_detach
+EXPORT_SYMBOL_GPL	 vmlinux 0x2074d1dc	fwnode_graph_get_next_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x207939c6	inet6_csk_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x20835a9f	__xdp_release_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x208a2971	rt_mutex_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x20940568	do_splice_from
+EXPORT_SYMBOL_GPL	 vmlinux 0x20a04d0f	is_current_mnt_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x20ba4597	sbitmap_queue_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x20c875a1	devm_gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL	 vmlinux 0x20e6f928	tnum_strn
+EXPORT_SYMBOL_GPL	 vmlinux 0x214f38a9	skcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x216651d4	devres_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x216de4e1	rcu_get_gp_kthreads_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x21831a91	cio_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x21977c62	pci_epc_get_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x219e2644	inet_csk_listen_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x21a9d793	__gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x21ac8b77	iommu_group_get_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x21b4fc13	find_extend_vma
+EXPORT_SYMBOL_GPL	 vmlinux 0x21cd536a	crypto_put_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x21e6e2ac	dma_resv_get_fences_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2201b9b7	skb_gro_receive
+EXPORT_SYMBOL_GPL	 vmlinux 0x220bff54	device_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x220f6228	rcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x22101b98	get_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2211a4c0	blk_op_str
+EXPORT_SYMBOL_GPL	 vmlinux 0x222086b5	flow_indr_del_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x2232ff48	devlink_dpipe_headers_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x2246b4dd	__tracepoint_block_bio_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x226aa9fb	kthread_cancel_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x22943f8f	kill_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2296e17a	l3mdev_master_ifindex_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x22a5a129	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0x22e20b10	chsc_siosl
+EXPORT_SYMBOL_GPL	 vmlinux 0x22fd08ba	cpuacct_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x231494e3	crypto_stats_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x231af20a	__tcp_bpf_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x23258830	handle_mm_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x2326717e	gfn_to_pfn_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x233f5316	sprint_oid
+EXPORT_SYMBOL_GPL	 vmlinux 0x234cf416	devlink_fmsg_string_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x235e5caa	oiap
+EXPORT_SYMBOL_GPL	 vmlinux 0x23684af9	gmap_get_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bbb813	devm_device_add_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x23bbfd9a	fsnotify_put_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x23dff83f	skb_complete_wifi_ack
+EXPORT_SYMBOL_GPL	 vmlinux 0x23edad9e	__mnt_is_readonly
+EXPORT_SYMBOL_GPL	 vmlinux 0x23f92ab7	ring_buffer_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x241add81	flow_indr_block_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x243f0b4b	crypto_check_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x24680cf8	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL	 vmlinux 0x247d7d27	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x248f0ea1	hrtimer_forward
+EXPORT_SYMBOL_GPL	 vmlinux 0x24964ffb	pci_user_read_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c6beee	nr_iowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x24c99780	platform_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x24ca1d2b	uprobe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x24e20af4	balloon_page_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x24f676ff	badblocks_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x250ec1ad	_proc_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x250ff774	irq_create_mapping_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x2515f4bf	__online_page_set_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x25175768	ipv6_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x251c75c3	crypto_find_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2535c66c	debugfs_create_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x25374db0	device_match_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x253b9a92	fib_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x25440707	kernfs_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x254a5a0f	fwnode_find_reference
+EXPORT_SYMBOL_GPL	 vmlinux 0x2582b83d	devlink_flash_update_begin_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2592fc6c	console_printk
+EXPORT_SYMBOL_GPL	 vmlinux 0x25abfd22	tpm_try_get_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x25b0d42b	vma_kernel_pagesize
+EXPORT_SYMBOL_GPL	 vmlinux 0x25e3ca8f	device_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x25ecae66	__clocksource_register_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0x260354a4	fuse_dev_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2617a6ff	ip6_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x26520970	vm_memory_committed
+EXPORT_SYMBOL_GPL	 vmlinux 0x265a6e05	ip6_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x265bbef9	kexec_crash_loaded
+EXPORT_SYMBOL_GPL	 vmlinux 0x26648c0c	dma_buf_map_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x267df662	smp_call_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2689f2b9	__netpoll_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x2693e81d	of_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x26955710	transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ab4755	put_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x26bb3439	device_link_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x26bd97df	fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c622ee	percpu_ref_switch_to_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x26ed2186	register_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x27108769	skb_clone_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x2714ad9e	shmem_file_setup_with_mnt
+EXPORT_SYMBOL_GPL	 vmlinux 0x27264532	trace_event_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x274d0ba0	ima_file_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x274dd1a3	sg_free_table_chained
+EXPORT_SYMBOL_GPL	 vmlinux 0x27545244	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x276be3b3	device_set_of_node_from_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x276fb814	tpm_seal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x276fd18c	debugfs_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x2771cc7a	bpf_map_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x27740700	percpu_up_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2778b259	iommu_domain_get_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x27b64afd	rht_bucket_nested_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0x27cf38d0	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x27e0833d	crypto_unregister_algs
+EXPORT_SYMBOL_GPL	 vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x27fa66e1	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x2805eb42	sysfs_create_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x283f660e	dm_disk
+EXPORT_SYMBOL_GPL	 vmlinux 0x284fe794	percpu_ref_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2864abc9	klist_node_attached
+EXPORT_SYMBOL_GPL	 vmlinux 0x286cc647	async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x28822898	clockevent_delta2ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x28a8c058	pm_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x28aa6a67	call_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x28d8b49a	chsc_scm_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x29137dd2	bpf_prog_sub
+EXPORT_SYMBOL_GPL	 vmlinux 0x29252e74	__tracepoint_block_unplug
+EXPORT_SYMBOL_GPL	 vmlinux 0x29830771	css_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x29cd2151	iommu_register_device_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x29d9fa76	blkcg_deactivate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0x29eba37f	current_is_async
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1289a7	sbitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a1538ca	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a468f4f	skb_append_pagefrags
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a4c6e29	fib_nh_common_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a603d6b	device_create_vargs
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a7e1ded	gfn_to_pfn_memslot_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9e1140	tcp_sendpage_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x2a9eca06	bpf_trace_run7
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ad87050	cio_tm_start_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b0e499f	component_add_typed
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b1cb437	software_node_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b260a74	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b4509dd	devlink_health_reporter_state_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b51bdb1	fscrypt_ioctl_get_policy_ex
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b57afb4	virtqueue_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b70ed41	xdp_rxq_info_unreg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b73bfeb	enable_cmf
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b7dbe46	ncsi_register_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x2b8a858a	tcp_slow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bb98280	irq_create_of_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bbcb50c	scsi_nl_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2bdda5cb	net_ns_get_ownership
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c0cc92f	badblocks_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c251946	disk_part_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c2c4532	pkcs7_parse_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c3054f9	net_inc_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c527c6d	xfrm_dev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c60aa37	device_bind_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c66ac85	devlink_info_serial_number_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c6b8a85	put_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c74f32f	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7d13e2	__ioread32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x2c986fb6	switchdev_handle_port_obj_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cad4b7d	__inet_twsk_schedule
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cda658c	simple_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ceaee09	pci_epf_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d18229f	sysfs_remove_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1b02d2	usermodehelper_read_lock_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d1e1887	unix_outq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d2dd36f	kobj_ns_grab_current
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d41e6f5	__trace_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d71e8be	inet_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d830651	kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x2d9a4d95	bus_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dbfe587	kthread_mod_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2df4ea0a	bpf_trace_run3
+EXPORT_SYMBOL_GPL	 vmlinux 0x2dfbcecc	gpiod_get_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e1d43cf	lzo1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2360b1	ftrace_set_global_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2e24eb	scsi_internal_device_unblock_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e364124	fsnotify
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e430894	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e681a89	crypto_stats_ablkcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x2e68a656	crypto_register_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x2eacd05a	register_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebb19fd	execute_in_process_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ebe3135	cpu_is_hotpluggable
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2c95c4	flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f2dbbf0	devres_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f380c23	tcp_twsk_unique
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f383cea	blockdev_superblock
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f3d88b6	devm_device_add_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4113a2	dcookie_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4769ef	map_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4880df	static_key_slow_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4f0ffa	fuse_conn_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f4f67c3	look_up_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f58667c	xas_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f66c85e	ring_buffer_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f77fa3e	scsi_check_sense
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f7fe6c7	vfs_fallocate
+EXPORT_SYMBOL_GPL	 vmlinux 0x2f82562a	aead_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb1fd29	bio_associate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fb455d4	pci_hp_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fcbcaa9	gpiod_get_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x2fe70630	sk_detach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x2ff5bb28	__dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3020886a	loop_backing_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x30348c35	md_submit_discard_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x3074442a	device_match_of_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x308227a6	badblocks_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x30960c7f	each_symbol_section
+EXPORT_SYMBOL_GPL	 vmlinux 0x30a6fe3f	iommu_dev_feature_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ba0180	do_unbind_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c053a4	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x30c22e8a	pci_epc_set_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ec8b4a	kill_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ecdd41	gmap_pmdp_invalidate
+EXPORT_SYMBOL_GPL	 vmlinux 0x30ee341a	hrtimer_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0x30f7f7a2	do_tcp_sendpages
+EXPORT_SYMBOL_GPL	 vmlinux 0x311c1764	__unwind_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL	 vmlinux 0x3131bcec	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x313eb85c	device_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x314487c4	show_class_attr_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x314f2401	anon_inode_getfd
+EXPORT_SYMBOL_GPL	 vmlinux 0x316208cb	blk_mq_unquiesce_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x316c27c5	pid_vnr
+EXPORT_SYMBOL_GPL	 vmlinux 0x31785f08	__tracepoint_br_fdb_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x319e9d6e	rtnl_register_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x31b0d981	irq_domain_associate_many
+EXPORT_SYMBOL_GPL	 vmlinux 0x31dd69b5	proc_create_net_single
+EXPORT_SYMBOL_GPL	 vmlinux 0x31feb76d	kvm_vcpu_write_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x320517bc	mddev_create_wb_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0x321bdbb1	compat_get_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x321d91cd	ping_queue_rcv_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x3224b2a9	mpi_read_raw_from_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0x322b124c	crypto_alloc_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x323b23c4	housekeeping_affine
+EXPORT_SYMBOL_GPL	 vmlinux 0x325ee476	firmware_request_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x327397e7	fib_add_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x328f2873	md_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x32ab06cc	irq_percpu_is_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x32bc0fcf	preempt_notifier_dec
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x32c6c604	__tracepoint_attach_device_to_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x330010b6	cpuset_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x33440af5	irq_set_chained_handler_and_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x335c570f	enable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3382ebfd	rtnl_link_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3384dd0e	serdev_controller_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x33a52a2b	debugfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x33bb7123	__page_file_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x33c2cf75	fwnode_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x33ce5deb	alarm_expires_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x33efc8c8	trace_clock_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x33fab693	crypto_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x34165c48	pci_hp_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x3421ca7c	__tracepoint_neigh_event_send_dead
+EXPORT_SYMBOL_GPL	 vmlinux 0x34275504	perf_event_sysfs_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x343e2e00	relay_switch_subbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x34407691	crypto_has_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0x344d40fa	devlink_resource_occ_get_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x3456329f	__blkg_prfill_u64
+EXPORT_SYMBOL_GPL	 vmlinux 0x345f6085	__udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x347d5fcc	dma_buf_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x348eaa10	cpu_device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x349843d1	scm_irq_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x3498b45b	tty_ldisc_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x34a5e980	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x34cb0938	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL	 vmlinux 0x34dea49e	__online_page_increment_counters
+EXPORT_SYMBOL_GPL	 vmlinux 0x34fbb4d9	debugfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x35098050	class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x35162771	sched_show_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x352ec68b	bpf_offload_dev_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x356617cc	inet6_sock_destruct
+EXPORT_SYMBOL_GPL	 vmlinux 0x356f62e7	firmware_request_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0x35c6f395	gpiochip_request_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x35d2b772	dev_fill_metadata_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x35e1f763	sk_msg_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x36042e91	pci_epc_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x36075bb5	iommu_group_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3607c5d7	sthyi_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x361b2225	lwtstate_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x36242943	switchdev_deferred_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x3632449b	devlink_port_type_ib_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3634ef71	gmap_pmdp_idte_local
+EXPORT_SYMBOL_GPL	 vmlinux 0x363d24a9	pci_epc_raise_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3641eda4	crypto_unregister_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x364e9088	devm_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x366c0f5d	pci_epc_mem_alloc_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x366fae5d	fwnode_get_next_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x367ab8c9	vfs_removexattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x367cd585	pktgen_xfrm_outer_mode_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x36984ff6	fuse_conn_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x369fcd70	tracing_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0x36c62e2a	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0x36d2078f	sock_diag_register_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e22bb3	noop_direct_IO
+EXPORT_SYMBOL_GPL	 vmlinux 0x36e46f12	blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x37018c35	security_file_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x37150386	fsnotify_put_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x372674d1	crypto_stats_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3735d001	iomap_fiemap
+EXPORT_SYMBOL_GPL	 vmlinux 0x3774fa31	blk_set_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x37831d55	iommu_map_sg_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x379539e0	gpiod_get_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c62d07	device_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x37c83ea8	devm_gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ea659f	add_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x37ee9faf	watchdog_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x381ee560	crypto_stats_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x38324d98	dma_buf_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x383640d5	add_disk_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x38374815	clear_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0x386d6b00	blkdev_reset_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x3873e4b8	raw_v6_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x388a6864	kvm_release_page_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x389b64a2	static_key_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x38c805a2	vtime_account_system
+EXPORT_SYMBOL_GPL	 vmlinux 0x38cc6339	bpf_trace_run11
+EXPORT_SYMBOL_GPL	 vmlinux 0x38e7eed1	blk_trace_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3906c0d6	device_for_each_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x392483a0	tty_ldisc_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x393ffa6f	asymmetric_key_generate_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x398e08cd	debugfs_create_atomic_t
+EXPORT_SYMBOL_GPL	 vmlinux 0x39a8b588	relay_file_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0x39c6c9bb	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x39ded098	rdma_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e61495	nf_logger_request_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x39e91a9b	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x39f2a380	netdev_is_rx_handler_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0x39fd83db	halt_poll_ns_shrink
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a19e011	securityfs_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a536bd7	ring_buffer_read_finish
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a55981a	static_key_enable_cpuslocked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a57d09d	crypto_alg_sem
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a5afabb	crypto_stats_ablkcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a7ae3e9	device_connection_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a8cdc5c	__hrtimer_get_remaining
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a959000	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9be019	asymmetric_key_id_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x3a9dba2d	get_net_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b2772cf	kstrdup_quotable_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b29e084	blk_mq_sched_try_insert_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b53f6fe	fat_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b813ca0	component_master_add_with_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b95f543	klp_shadow_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x3b9faaae	raw_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ba01b47	get_compat_sigset
+EXPORT_SYMBOL_GPL	 vmlinux 0x3babc9a0	gpiochip_generic_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb36d09	badblocks_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bb7722e	skb_consume_udp
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bbeb3fe	tcp_sendmsg_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bdb5d28	alg_test
+EXPORT_SYMBOL_GPL	 vmlinux 0x3be1686f	__netpoll_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0x3bf17755	mpi_read_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c1c3725	rcu_fwd_progress_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c2afe95	pci_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c3a0ae2	__list_lru_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c711a1d	raw_unhash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c79d583	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL	 vmlinux 0x3c91f44b	nf_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ca6f2dc	update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb4540b	irq_domain_add_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cb6b102	nf_hook_entries_insert_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc60807	evm_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cc909d5	pci_stop_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ccfe2c1	__wake_up_sync_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d105f03	hvc_instantiate
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d1e1300	srcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d23b64d	bpf_trace_run1
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d510a7b	rcu_jiffies_till_stall_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d600fc5	md_do_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d74dbbf	alarm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d894e70	pci_msi_unmask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3d8ff50e	fsverity_ioctl_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3daa179a	dst_cache_get_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dc52574	serdev_device_get_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd1f8a9	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x3dd875d3	bpf_offload_dev_netdev_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e00d9a7	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e1f72e0	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e25d128	alloc_page_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e3efaf2	ipl_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e43953d	iommu_dev_has_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e4e9e82	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7080cb	mpi_read_from_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e7fcef9	fbcon_modechange_possible
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e8d1317	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x3e934ee7	blk_trace_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x3eb3d400	gmap_map_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ec0ca99	remove_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ed260aa	rhashtable_walk_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ee09bfc	key_type_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ef051c8	crypto_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x3efd1889	dax_direct_access
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f0729f0	__platform_driver_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f39c6ae	virtqueue_kick_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f3bd24f	do_xdp_generic
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f409d8b	devlink_reload_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f83b99c	__sbitmap_queue_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84ae11	gpiochip_line_is_open_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f84bcd7	dax_alive
+EXPORT_SYMBOL_GPL	 vmlinux 0x3f8ab72e	devlink_fmsg_bool_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fa23a4e	sched_setscheduler_nocheck
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe35258	__set_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe3a1ed	dm_internal_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x3fe81964	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffda1d4	vcpu_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x3ffdacf3	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x4006307c	gmap_unregister_pte_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x400e51b2	rhashtable_free_and_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x40116da2	serdev_device_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4025383b	pci_bus_resource_n
+EXPORT_SYMBOL_GPL	 vmlinux 0x40278340	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0x403129b6	dst_cache_set_ip4
+EXPORT_SYMBOL_GPL	 vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x405fee62	skb_partial_csum_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x406c4cb1	hrtimer_resolution
+EXPORT_SYMBOL_GPL	 vmlinux 0x4071b517	out_of_line_wait_on_bit_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x408d2a04	play_idle
+EXPORT_SYMBOL_GPL	 vmlinux 0x4099f919	tun_ptr_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x409bb939	kthread_unpark
+EXPORT_SYMBOL_GPL	 vmlinux 0x40ae17c1	fscrypt_ioctl_remove_key_all_users
+EXPORT_SYMBOL_GPL	 vmlinux 0x40e64f36	blk_mq_quiesce_queue_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f582dd	sysfs_remove_mount_point
+EXPORT_SYMBOL_GPL	 vmlinux 0x40f8bd4e	klist_add_before
+EXPORT_SYMBOL_GPL	 vmlinux 0x41015669	skb_to_sgvec
+EXPORT_SYMBOL_GPL	 vmlinux 0x4103dd90	fat_flush_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x41063aa2	dev_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x410dbc57	clockevents_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x410f47ef	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL	 vmlinux 0x41128289	account_locked_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x41158f33	security_inode_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x41204122	__vfs_setxattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x4132b38b	gmap_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x41633058	alloc_dax_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x41814cb8	dirty_writeback_interval
+EXPORT_SYMBOL_GPL	 vmlinux 0x41984d83	xas_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x419d7055	crypto_unregister_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0x41b200f9	percpu_ref_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x41cb9eaa	device_match_devt
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d25d3b	bsg_scsi_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41d5c953	l3mdev_update_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed3cec	eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x41ed9392	blk_queue_flag_test_and_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x42046998	tpm_is_tpm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x420cc0f3	dummy_con
+EXPORT_SYMBOL_GPL	 vmlinux 0x42214614	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x424afc25	setfl
+EXPORT_SYMBOL_GPL	 vmlinux 0x427ad8f3	kvm_get_dirty_log
+EXPORT_SYMBOL_GPL	 vmlinux 0x4280e58e	fuse_do_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x42825ce2	rcu_scheduler_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x42948fd7	tun_get_tx_ring
+EXPORT_SYMBOL_GPL	 vmlinux 0x42c52ec4	subsys_interface_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x42d30750	addrconf_add_linklocal
+EXPORT_SYMBOL_GPL	 vmlinux 0x42db09da	skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x42ec6f2e	__netif_set_xps_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4302d846	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL	 vmlinux 0x436829a3	ping_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x437eb1df	ipv6_mod_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x43aa319e	lease_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x43b4e580	get_net_ns_by_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x43c33665	isc_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x43ccc250	xdp_rxq_info_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0x440be4b9	trace_seq_putmem
+EXPORT_SYMBOL_GPL	 vmlinux 0x441834d8	wait_for_stable_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4461940d	cmf_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4464a3be	skb_splice_bits
+EXPORT_SYMBOL_GPL	 vmlinux 0x44748abb	kvm_s390_gisc_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x44830c9a	device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x44bae227	bit_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d2c2f6	__put_net
+EXPORT_SYMBOL_GPL	 vmlinux 0x44d97fe4	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL	 vmlinux 0x44e58865	crypto_ahash_type
+EXPORT_SYMBOL_GPL	 vmlinux 0x44f6cf27	crypto_larval_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x4507f4a8	cpuhp_tasks_frozen
+EXPORT_SYMBOL_GPL	 vmlinux 0x4511a4ec	dev_err_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0x452742cf	disk_map_sector_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x457594fa	crypto_alg_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x459e4edb	device_for_each_child_reverse
+EXPORT_SYMBOL_GPL	 vmlinux 0x45acf71f	devm_init_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x45c4cdfc	irq_set_default_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x46013233	net_dec_ingress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4634f902	platform_get_resource_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0x4679282b	ping_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x46800faa	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x46881aae	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL	 vmlinux 0x4688d7ec	pvclock_gtod_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ab13de	nf_queue_entry_get_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0x46ce0dee	noop_backing_dev_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x46f42be0	devlink_fmsg_u8_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x4701a921	platform_device_add_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x473fc049	gpiochip_set_chained_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x476167c8	remove_memory
+EXPORT_SYMBOL_GPL	 vmlinux 0x4761f17c	register_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x4770126a	gmap_make_secure
+EXPORT_SYMBOL_GPL	 vmlinux 0x47884890	system_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a02998	__ndisc_fill_addr_option
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a3bd7a	sk_msg_memcopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x47a89953	__tracepoint_pelt_cfs_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x47dafc2f	balloon_page_list_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f391cc	gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x47f5c623	perf_trace_buf_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x480e69d3	ccw_device_get_chp_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0x481c99e2	gpiochip_set_nested_irqchip
+EXPORT_SYMBOL_GPL	 vmlinux 0x4826df34	pkcs7_get_content_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x485c7833	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL	 vmlinux 0x4860bd99	sk_msg_return_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x48910bd1	__vfs_removexattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0x48a13926	splice_to_pipe
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bb9cb2	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bbf525	klist_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x48bfa258	crypto_attr_alg2
+EXPORT_SYMBOL_GPL	 vmlinux 0x48c4c09c	crypto_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x48d19de7	exportfs_encode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x48da6a34	ncsi_vlan_rx_add_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x48e366ae	unregister_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x48f66839	device_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x49013266	console_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4921a60e	devm_gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x49242bc7	freezer_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x496c60c2	list_lru_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x498824c3	device_set_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x499043d3	crypto_init_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x49b5b0f3	add_swap_extent
+EXPORT_SYMBOL_GPL	 vmlinux 0x49baaa58	fwnode_property_get_reference_args
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bb9989	__raw_v6_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x49bc7928	hvc_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x49db5c64	__tracepoint_neigh_event_send_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x49e96999	cond_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x49fa7678	lwtunnel_get_encap_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a18f77c	devlink_resource_size_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2a528b	crypto_stats_rng_seed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a2e1dae	gfn_to_hva_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a65d001	__xas_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a7055b2	__strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0x4a843dbe	class_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aa805dd	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ab747a9	vring_del_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x4abf65d5	device_create_with_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac6301b	dma_get_merge_boundary
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ac86feb	driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4af17d0c	bus_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b0a329e	put_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b17e177	kernel_read_file_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b20a204	fs_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b23814e	pci_epc_remove_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b765a59	devlink_port_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b840dfd	probe_kernel_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b865e7a	dm_suspended
+EXPORT_SYMBOL_GPL	 vmlinux 0x4b9c9f28	mnt_clone_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ba88dcb	chsc_sgib
+EXPORT_SYMBOL_GPL	 vmlinux 0x4bd89c5a	css_chsc_characteristics
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c0ddf6a	devm_release_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c4fedcd	crypto_register_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5c57cb	kmsg_dump_get_buffer
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c5e636c	ip6_datagram_connect_v6_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6b95f6	virtio_config_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6f8e36	sysfs_file_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c6fbc82	fib_rules_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c75643b	kick_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x4c97b42e	devm_device_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ca7e714	devres_release
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cadccba	driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cae03ca	handle_bad_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cb39604	__dax_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cbefa8c	sk_msg_free_nocharge
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cce4050	md_find_rdev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ce32b51	relay_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ceb4813	gpiod_toggle_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf672d9	fork_usermode_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cf77a89	crypto_stats_kpp_generate_public_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x4cfeeae5	blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0015e2	cpu_hotplug_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d0e0a55	device_get_child_node_count
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d4d7b79	blk_mq_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d7c5fad	css_sch_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d9412f0	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x4d9ee90d	is_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dd9d14d	cn_netlink_send_mult
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dda12b9	screen_glyph
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dde2541	crypto_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfad239	inet6_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x4dfea05a	dma_can_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e016fae	__get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e04df1f	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e114d0c	mddev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1a2eff	tty_ldisc_deref
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e1fc669	crypto_unregister_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e3fd1b4	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e75eda6	skb_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x4e9305be	mmput
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eac5fc1	cpu_mitigations_auto_nosmt
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ec153c6	nr_running
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ed91717	pci_find_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eda64e8	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x4edf05e7	crypto_register_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eeef19f	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x4ef5bcf4	perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL	 vmlinux 0x4eff7799	blk_mq_sched_mark_restart_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f21812d	netdev_walk_all_lower_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f418f66	pci_destroy_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f6a07fe	show_rcu_gp_kthreads
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7465c7	bpfilter_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7c9957	blkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x4f7e911c	nf_hook_entries_delete_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fb8d025	set_task_ioprio
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fc78cfc	dm_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x4fe1eddf	unregister_netevent_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x50740fc9	unix_inq_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x507c0ecc	pci_user_write_config_dword
+EXPORT_SYMBOL_GPL	 vmlinux 0x507c8dba	firmware_config_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x507ebc7d	fl6_update_dst
+EXPORT_SYMBOL_GPL	 vmlinux 0x508ab889	device_store_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x50a63f93	__tracepoint_devlink_hwmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x50dd5427	blk_clear_pm_only
+EXPORT_SYMBOL_GPL	 vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL	 vmlinux 0x50fad434	round_jiffies_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5102e86e	devm_gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x5104c0fd	__page_file_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x511bea91	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x515d14ec	__wake_up_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x517a7975	rsa_parse_pub_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x51a4fffd	devlink_port_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x51b31f6c	fat_update_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x520e6750	gpiod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x52121118	__tracepoint_non_standard_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x5218d9f2	ftrace_ops_set_global_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x522a520a	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x52354a14	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0x5236497d	trace_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0x52604572	serdev_device_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x52cef987	crypto_alloc_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x52d54fce	devlink_info_version_stored_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x52fbf5e3	security_inode_permission
+EXPORT_SYMBOL_GPL	 vmlinux 0x5312e36d	vfs_readf
+EXPORT_SYMBOL_GPL	 vmlinux 0x53693617	crypto_unregister_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x53810f45	tracing_snapshot_cond
+EXPORT_SYMBOL_GPL	 vmlinux 0x53ae7d77	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL	 vmlinux 0x53b585e3	devm_gpiochip_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x53c5dfcb	crypto_alloc_base
+EXPORT_SYMBOL_GPL	 vmlinux 0x53cbefbd	devlink_dpipe_entry_ctx_append
+EXPORT_SYMBOL_GPL	 vmlinux 0x53f165aa	crypto_register_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5411e7f8	skb_gso_validate_mac_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bb299	strp_check_rcv
+EXPORT_SYMBOL_GPL	 vmlinux 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0x5422510a	check_move_unevictable_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x54279d92	serdev_device_write_room
+EXPORT_SYMBOL_GPL	 vmlinux 0x5429c1ed	inode_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0x5443c435	fwnode_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x5465f967	gpiochip_line_is_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x54b7ab05	__inode_attach_wb
+EXPORT_SYMBOL_GPL	 vmlinux 0x54baf2db	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL	 vmlinux 0x54c27fac	md_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x54f5a38e	ftrace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x54fc76ed	pci_d3cold_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x55052d58	security_path_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x55255efa	xdp_convert_zc_to_xdp_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x55339365	flush_delayed_fput
+EXPORT_SYMBOL_GPL	 vmlinux 0x55417264	unregister_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x554f4c02	kvm_irq_has_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x559b27f8	xdp_do_flush_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x55be0bf5	addrconf_prefix_rcv_add_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e7959f	tcp_set_keepalive
+EXPORT_SYMBOL_GPL	 vmlinux 0x55e94f30	irq_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x55eecff4	bit_wait_io_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f2580b	__alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x55f91924	trace_seq_puts
+EXPORT_SYMBOL_GPL	 vmlinux 0x55fbb03e	pci_assign_unassigned_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x56054c05	crypto_it_tab
+EXPORT_SYMBOL_GPL	 vmlinux 0x56256e8a	orderly_poweroff
+EXPORT_SYMBOL_GPL	 vmlinux 0x563c3bb6	security_inode_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x5641485b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0x565b18f6	get_ccwdev_by_dev_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x56783cfe	crypto_drop_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x569778bd	page_cache_async_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x56a2b41a	tty_port_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b6fed4	xfrm_dev_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x56b97e42	register_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x56bc8f70	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x56d697ce	cpu_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x56f07e59	cio_tm_intrg
+EXPORT_SYMBOL_GPL	 vmlinux 0x56fb1810	relay_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x571ff10f	input_ff_erase
+EXPORT_SYMBOL_GPL	 vmlinux 0x57231f45	ring_buffer_record_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x57274efd	dma_resv_wait_timeout_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x572f6349	devm_remove_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x573b5453	ipv6_fixup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x574eda80	kvm_vcpu_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x5777fa01	ipv4_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x578eeb4d	hugetlb_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5790e7a0	pci_unlock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL	 vmlinux 0x57cec71c	bus_set_iommu
+EXPORT_SYMBOL_GPL	 vmlinux 0x57dc1a05	bus_get_device_klist
+EXPORT_SYMBOL_GPL	 vmlinux 0x57fbd67e	blkdev_nr_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x58086421	device_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x5818876d	kvm_clear_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5831e062	cpus_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0x5852fbd8	__iptunnel_pull_header
+EXPORT_SYMBOL_GPL	 vmlinux 0x5857696f	pci_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x58700d30	gpiochip_disable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x5880142b	gpiochip_irq_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x5881c0d4	pci_enable_sriov
+EXPORT_SYMBOL_GPL	 vmlinux 0x58a730c0	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x58e87a58	debugfs_write_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x59128b9c	__percpu_down_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x59184bb0	nf_checksum_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0x592ff9ef	tty_put_char
+EXPORT_SYMBOL_GPL	 vmlinux 0x594a90a2	virtqueue_get_avail_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x596fe31a	public_key_verify_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x5973b323	devm_gpio_request_one
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b00753	pci_cfg_access_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x59b4ccd7	dma_max_mapping_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x59cc0e64	crypto_stats_akcipher_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x59e640c0	halt_poll_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a241868	crypto_register_template
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a3e737b	kvm_vcpu_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a49dbc9	timerqueue_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a4ff2f3	__bio_add_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6cdb52	nf_ct_zone_dflt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a6dba90	fib_rule_matchall
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a74cf66	crypto_shash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ad30371	trace_event_ignore_this_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x5addf4c6	tty_perform_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ae1ae0f	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b07f1e2	fl6_merge_options
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b13ba9f	css_sched_sch_todo
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b21ceff	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4033d3	gen_pool_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b407379	gpiochip_line_is_open_source
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b4804c6	virtqueue_get_vring
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b6b0329	swiotlb_max_segment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b8590ec	dma_buf_unmap_attachment
+EXPORT_SYMBOL_GPL	 vmlinux 0x5b924397	clockevents_config_and_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bb5d2b2	find_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bbdfa26	scatterwalk_ffwd
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bcdcc94	irq_find_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bd0748f	crypto_del_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x5bdbac4e	rcu_unexpedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c10cdc6	crypto_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2bcd37	bpf_warn_invalid_xdp_action
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2eb8fb	platform_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c2fd6b5	gpiod_set_consumer_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c31e7bb	fuse_abort_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c3be454	akcipher_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c538bf9	netdev_walk_all_lower_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c5eb4ca	crypto_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c6b8592	subsys_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c97383c	pci_try_reset_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x5c9c9817	virtqueue_is_broken
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ca4dc08	devm_watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d0090d7	devlink_fmsg_binary_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d14a151	flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d29755f	proc_mkdir_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d8d0255	__pci_epf_register_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x5d97052c	virtio_break_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x5da67adc	zs_compact
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e0b3f66	gpiod_add_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e173309	cpu_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e199219	vc_scrolldelta_helper
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e1b9f1f	debugfs_real_fops
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e41e398	iomap_migrate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e4c6f3f	fixup_user_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e515be6	ktime_get_ts64
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e51cd74	swiotlb_nr_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e66d1cd	__hvc_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x5e88b300	watchdog_notify_pretimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ea2c7c9	kthread_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x5ecdf803	gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x5eda697c	bdi_dev_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f0c206d	crypto_remove_spawns
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23addc	property_entries_dup
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f23e3fa	insert_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f3f17fa	fib_rules_seq_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f6f1e9e	dax_get_private
+EXPORT_SYMBOL_GPL	 vmlinux 0x5f8276ce	fat_fill_super
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fa43d82	debugfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fab0d26	ip6_flush_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x5faf6c38	dequeue_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fb8848b	halt_poll_ns_grow_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x5fd0e005	sched_trace_cfs_rq_avg
+EXPORT_SYMBOL_GPL	 vmlinux 0x600c7e7d	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba0cc	exportfs_decode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0x601ba3eb	__tracepoint_io_page_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x601f5d79	raw_v4_hashinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x60271fd0	enable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x6029efd5	dax_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x604722fd	devices_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x604d9fa1	component_master_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x604e03a3	input_ff_event
+EXPORT_SYMBOL_GPL	 vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x60601d5d	wb_writeout_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x607c4683	devlink_info_version_fixed_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x6091797f	synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a13e90	rcu_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x60c434a6	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x60cf328b	devlink_port_type_eth_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x60ebded8	devres_for_each_res
+EXPORT_SYMBOL_GPL	 vmlinux 0x612181db	dax_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x612bfd89	errno_to_blk_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x61300460	napi_hash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x61317076	thp_get_unmapped_area
+EXPORT_SYMBOL_GPL	 vmlinux 0x613c0646	debugfs_print_regs32
+EXPORT_SYMBOL_GPL	 vmlinux 0x613fa3ba	balloon_aops
+EXPORT_SYMBOL_GPL	 vmlinux 0x61806ef1	uprobe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6181e79f	timerqueue_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x61a05d96	skb_gso_validate_network_len
+EXPORT_SYMBOL_GPL	 vmlinux 0x61da1e88	tty_ldisc_ref
+EXPORT_SYMBOL_GPL	 vmlinux 0x61e3bb64	nf_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x620f36fb	__wake_up_pollfree
+EXPORT_SYMBOL_GPL	 vmlinux 0x622c7922	register_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6246e4b9	skcipher_alloc_instance_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x6249edb4	lwtunnel_encap_add_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x624da8eb	fscrypt_drop_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x62608794	vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6271dc2c	pci_bus_add_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x628821ec	crypto_type_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x62a486df	irq_domain_free_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0x62b2061f	__audit_inode_child
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bb09bf	clocks_calc_mult_shift
+EXPORT_SYMBOL_GPL	 vmlinux 0x62bfd940	__trace_note_message
+EXPORT_SYMBOL_GPL	 vmlinux 0x62c6963e	pci_epc_set_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fc61f9	fat_free_clusters
+EXPORT_SYMBOL_GPL	 vmlinux 0x62fd0204	xas_nomem
+EXPORT_SYMBOL_GPL	 vmlinux 0x630433de	ndo_dflt_bridge_getlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x63097316	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL	 vmlinux 0x631d4ab7	iomap_truncate_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x631dd3d5	devlink_port_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x63338d0d	strp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x63373a0b	bio_associate_blkg_from_css
+EXPORT_SYMBOL_GPL	 vmlinux 0x633b2654	iommu_dev_disable_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x634ef65f	fwnode_property_read_u8_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x635f37fd	event_triggers_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x63944c23	lwtunnel_cmp_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x63ae9459	sock_diag_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c22e35	perf_event_refresh
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c4b5bc	sysfs_unbreak_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x63c61aa3	devm_gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x640ab48f	for_each_kernel_tracepoint
+EXPORT_SYMBOL_GPL	 vmlinux 0x640dd092	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0x642fda9a	acomp_request_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x64369df2	skb_mpls_dec_ttl
+EXPORT_SYMBOL_GPL	 vmlinux 0x64642046	sysfs_break_active_protection
+EXPORT_SYMBOL_GPL	 vmlinux 0x64925270	__dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x64b384ab	blk_mq_sched_request_inserted
+EXPORT_SYMBOL_GPL	 vmlinux 0x64c7629f	tty_save_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ce3aa9	iommu_sva_bind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x64d869fe	access_process_vm
+EXPORT_SYMBOL_GPL	 vmlinux 0x64f435fb	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x64faf25c	vprintk_default
+EXPORT_SYMBOL_GPL	 vmlinux 0x64fc2ea1	get_pid_task
+EXPORT_SYMBOL_GPL	 vmlinux 0x64ffbba9	watchdog_init_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6506c60d	tracing_snapshot_cond_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x650c6a6d	bpf_prog_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x65493d4f	bus_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6567fa63	__pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x65768e65	tty_port_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x659388eb	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x659e63f8	tracepoint_probe_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ac3b7b	crypto_unregister_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c78a20	pci_load_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x65c7b7f6	security_kernel_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ca9630	tcp_get_syncookie_mss
+EXPORT_SYMBOL_GPL	 vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x65f6ec26	event_triggers_post_call
+EXPORT_SYMBOL_GPL	 vmlinux 0x660cbf82	gpiod_set_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0x66191d87	vfs_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0x6620c1b5	tpm_get_random
+EXPORT_SYMBOL_GPL	 vmlinux 0x66349807	scsi_device_from_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x6636c3c9	irq_set_vcpu_affinity
+EXPORT_SYMBOL_GPL	 vmlinux 0x663bb448	devlink_fmsg_obj_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0x66492521	file_ra_state_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x66573d76	fuse_kill_sb_anon
+EXPORT_SYMBOL_GPL	 vmlinux 0x666b755a	__tracepoint_xdp_exception
+EXPORT_SYMBOL_GPL	 vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x66a6c061	tracepoint_probe_register_prio
+EXPORT_SYMBOL_GPL	 vmlinux 0x66b2ca36	blkg_rwstat_recursive_sum
+EXPORT_SYMBOL_GPL	 vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6711979d	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6715e41e	xfrm_state_mtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x6735d56e	tcp_ca_get_name_by_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x67500efb	watchdog_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x67650980	sysfs_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x6768bb90	ipv6_bpf_stub
+EXPORT_SYMBOL_GPL	 vmlinux 0x6770511c	devlink_dpipe_entry_ctx_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x6780d7a7	devres_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x678391e4	iommu_group_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x6791f57b	xas_find_conflict
+EXPORT_SYMBOL_GPL	 vmlinux 0x6792e25a	__tracepoint_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL	 vmlinux 0x67981d54	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL	 vmlinux 0x67da9f7c	sha512_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x67f74d6d	inet6_hash_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x6807c7d5	skb_defer_rx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0x6830dc36	dax_iomap_rw
+EXPORT_SYMBOL_GPL	 vmlinux 0x6833dd4b	virtqueue_get_used_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x684d2c95	blkg_conf_prep
+EXPORT_SYMBOL_GPL	 vmlinux 0x68847277	iomap_seek_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6892e3c3	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL	 vmlinux 0x68952493	rcu_note_context_switch
+EXPORT_SYMBOL_GPL	 vmlinux 0x6899719b	devm_gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x68d82dcd	iommu_aux_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x68df74a9	devres_release_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x690d93bd	blk_stat_enable_accounting
+EXPORT_SYMBOL_GPL	 vmlinux 0x690e96ee	blk_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x6913865a	trace_clock_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0x6921aa34	compat_put_timeval
+EXPORT_SYMBOL_GPL	 vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x69511aaf	ip6_append_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6958ae23	dax_get_by_host
+EXPORT_SYMBOL_GPL	 vmlinux 0x6961f515	switchdev_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x696941ff	aead_geniv_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x697c5d0d	tracing_snapshot_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x698e7e26	sbitmap_queue_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x69966649	dma_buf_kunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x69bd0db6	key_type_logon
+EXPORT_SYMBOL_GPL	 vmlinux 0x69d88d99	tpm1_getcap
+EXPORT_SYMBOL_GPL	 vmlinux 0x69e683de	uuid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x69eadb1f	iommu_domain_set_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x69ecde41	__class_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a008077	hrtimer_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a1733eb	iommu_group_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a284439	fsverity_prepare_setattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a460dc5	schedule_hrtimeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a4f623b	mmu_notifier_synchronize
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a776d8e	acomp_request_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a7fbc06	devlink_sb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x6a884477	securityfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x6abc6814	xdp_rxq_info_unused
+EXPORT_SYMBOL_GPL	 vmlinux 0x6aca7237	klist_add_tail
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad0050d	ccw_device_force_console
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ad54d86	tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ae036b7	lwtunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b1c90d0	devlink_port_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2ae1f5	__lock_page_killable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2b69f7	static_key_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b2c0063	pernet_ops_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b59c7c4	scsi_mode_select
+EXPORT_SYMBOL_GPL	 vmlinux 0x6b6d12e3	device_connection_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ba2a3b8	platform_get_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bcff92d	pci_reset_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bd1aa56	stack_trace_save
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfc7748	crypto_inst_setname
+EXPORT_SYMBOL_GPL	 vmlinux 0x6bfe8331	request_firmware_direct
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c1da7e8	replace_page_cache_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c27e39d	iommu_sva_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c28c728	virtqueue_add_inbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3d9815	ip6_push_pending_frames
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c3f70e0	guid_gen
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c904906	vfs_setxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x6c9aba58	list_lru_count_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ca4bf88	async_synchronize_full_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x6cd69120	posix_clock_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d00c535	inet6_cleanup_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d160b3c	crypto_register_ahashes
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d1e9896	mm_unaccount_pinned_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d56ae36	debugfs_create_regset32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6d188d	device_property_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d6fec1f	ktime_mono_to_any
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d7e951e	rcu_exp_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d926522	tracepoint_probe_register_prio_may_exist
+EXPORT_SYMBOL_GPL	 vmlinux 0x6d9ee2a0	__request_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x6db19d81	idr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dbaafd3	put_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dcd39b2	dm_get_queue_limits
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dda4168	device_show_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x6de226c9	ip6_datagram_recv_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x6dee0227	kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e0843c1	skb_pull_rcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e39ac06	ptep_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e4c21d2	bpf_prog_get_type_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7943ec	iommu_group_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e7a2aa6	vfs_cancel_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x6e986c5b	debugfs_create_u8
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eac45a3	crypto_unregister_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eb9cd24	fsverity_verify_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ebe366f	ktime_get_mono_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6eeffe3f	xfrm_dev_offload_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ef6b54f	ktime_get_boot_fast_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x6efbafb0	srcutorture_get_gp_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f09493c	devlink_flash_update_end_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f12560a	get_old_timespec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f171bf1	fib_rules_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f22846b	gpiod_set_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f313477	fwnode_remove_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f369853	fat_search_long
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f421d01	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f542e40	disable_cmf
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f7d1bf4	gpiod_to_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0x6f9e763b	timecounter_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fc8ef43	ccw_device_get_schid
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe1eb63	bpf_offload_dev_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fe2f00f	crypto_init_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x6fee3945	dax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff0b66c	sbitmap_finish_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x6ffab783	serdev_device_set_tiocm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7006586e	iommu_get_group_resv_regions
+EXPORT_SYMBOL_GPL	 vmlinux 0x7028c591	simple_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x7028dd7a	ip_tunnel_get_stats64
+EXPORT_SYMBOL_GPL	 vmlinux 0x702938c3	dev_nit_active
+EXPORT_SYMBOL_GPL	 vmlinux 0x705f13a5	fwnode_get_next_available_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x706953e7	uprobe_register_refctr
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c0fd88	root_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c2c7ea	pids_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c52dc5	nf_skb_duplicated
+EXPORT_SYMBOL_GPL	 vmlinux 0x70c683a3	devlink_dpipe_entry_ctx_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x70d854f8	strp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e42aef	list_lru_walk_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x70e4efd4	sync_page_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x70ec7f38	pci_epf_unregister_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x70eec78f	pci_proc_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f89d53	rsa_parse_priv_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x70f9f364	apply_to_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x7104eab2	bpf_event_output
+EXPORT_SYMBOL_GPL	 vmlinux 0x710c73b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x71289d09	raw_hash_sk
+EXPORT_SYMBOL_GPL	 vmlinux 0x713e51d2	__wait_rcu_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x714ef42d	pci_domain_nr
+EXPORT_SYMBOL_GPL	 vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0x7179c31c	zpci_iomap_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x717f6c72	dma_buf_vunmap
+EXPORT_SYMBOL_GPL	 vmlinux 0x719e0e44	add_uevent_var
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a4ea39	blk_freeze_queue_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x71a9bddc	tpm_chip_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x71ba1f9c	ping_common_sendmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0x71bd5e59	kvm_vcpu_gfn_to_hva
+EXPORT_SYMBOL_GPL	 vmlinux 0x7222cda0	iommu_domain_window_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x72532b14	percpu_free_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x725e3967	fwnode_property_read_u16_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x726539a0	inet_hashinfo2_init_mod
+EXPORT_SYMBOL_GPL	 vmlinux 0x7273843f	device_reprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL	 vmlinux 0x72bab2d2	crypto_stats_akcipher_sign
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c1aeeb	__tracepoint_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x72c2d1a1	ping_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ebcf82	switchdev_handle_port_obj_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x72ee16c2	sk_msg_zerocopy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x72f98e63	mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x7318404e	clean_acked_data_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0x735b5e7c	sbitmap_queue_wake_up
+EXPORT_SYMBOL_GPL	 vmlinux 0x7368951b	xdp_attachment_query
+EXPORT_SYMBOL_GPL	 vmlinux 0x73798b8f	dst_cache_get_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x737c5286	sbitmap_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x7399aa23	tpm_get_timeouts
+EXPORT_SYMBOL_GPL	 vmlinux 0x739b7db4	tty_port_unregister_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x73c81ae6	kvm_arch_crypto_clear_masks
+EXPORT_SYMBOL_GPL	 vmlinux 0x73cab1d1	register_virtio_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x73cac18d	kthread_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d62343	simple_attr_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x73ecb2f6	sysfs_chmod_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x74314ebc	sysfs_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x743521f9	device_link_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x7445669e	xdp_attachment_flags_ok
+EXPORT_SYMBOL_GPL	 vmlinux 0x745929da	pci_slots_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0x7467c288	irq_create_strict_mappings
+EXPORT_SYMBOL_GPL	 vmlinux 0x746cbd5f	__kthread_init_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0x748b7dc4	kobject_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0x7496f5c8	fat_truncate_time
+EXPORT_SYMBOL_GPL	 vmlinux 0x749d6a56	dax_finish_sync_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x74ae5b95	crypto_alloc_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x74b5ea68	lcm_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x74c21a63	ref_module
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e65c35	driver_for_each_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x74e73871	housekeeping_overridden
+EXPORT_SYMBOL_GPL	 vmlinux 0x74fa62c7	ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0x7507ff6f	sk_free_unlock_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x7516207b	netdev_set_default_ethtool_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x751a5378	ccw_device_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0x751d1d72	probe_user_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7522f3ba	irq_modify_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x75254238	is_skb_forwardable
+EXPORT_SYMBOL_GPL	 vmlinux 0x7554b896	zs_huge_class_size
+EXPORT_SYMBOL_GPL	 vmlinux 0x756a42d7	debugfs_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x75b4df8f	vfs_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x75d25e7e	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x75dfbf41	__flow_indr_block_cb_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x75eabe85	sysfs_create_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x7607887f	bpf_prog_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x761e9523	crypto_mod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x763bfc38	fuse_send_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x7665ee72	crypto_dh_decode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7681d426	gpiod_get_index_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x768dbefe	crypto_stats_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x769c2e5c	blkdev_read_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0x76b68057	class_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x76bbb898	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL	 vmlinux 0x76c166b0	gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x76cc95e7	udp4_hwcsum
+EXPORT_SYMBOL_GPL	 vmlinux 0x76d95631	fuse_conn_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x76e1c901	shash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x76eeeb0f	sha384_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7708ca60	pci_epf_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0x7729cbdd	task_handoff_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x773fedd1	do_unregister_con_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x7777f2b6	device_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0x777a99f0	blk_abort_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x7785cd42	crypto_register_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x778bc2f5	device_show_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ca08a5	xsk_reuseq_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x77d8a091	alarm_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0x77dd2a1b	kthread_cancel_delayed_work_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ddfd3b	tcp_reno_undo_cwnd
+EXPORT_SYMBOL_GPL	 vmlinux 0x77ecf68d	memalloc_socks_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x78041b8f	byte_rev_table
+EXPORT_SYMBOL_GPL	 vmlinux 0x785a93b4	si_mem_available
+EXPORT_SYMBOL_GPL	 vmlinux 0x78636d3a	tty_port_register_device_attr_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0x786dc9b1	ptep_test_and_clear_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0x788eda7c	kobject_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ba10b3	sysfs_create_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x78ba3304	pcie_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0x78d043eb	pci_epf_match_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x790c3f33	devlink_port_attrs_pci_pf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x791a5fc0	virtqueue_get_buf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x7932834c	tracing_cond_snapshot_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x793f7943	skb_mpls_update_lse
+EXPORT_SYMBOL_GPL	 vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL	 vmlinux 0x79470a2c	TSS_authhmac
+EXPORT_SYMBOL_GPL	 vmlinux 0x794b7271	orderly_reboot
+EXPORT_SYMBOL_GPL	 vmlinux 0x7981376a	dma_resv_test_signaled_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x79a2c85e	sock_zerocopy_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x79b0b971	md_bitmap_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x79bca3d1	sysfs_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x79defbe1	kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a082381	mnt_want_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a23003b	register_pernet_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a2c466f	verify_pkcs7_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a40239c	blkcg_policy_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a68a451	dm_bio_from_per_bio_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a7dcd9f	xas_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a81541b	async_synchronize_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x7a95ac82	iomap_is_partially_uptodate
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ac86d24	fat_build_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afd75df	md_find_rdev_nr_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x7afe324e	halt_poll_ns_grow
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b133fb9	dm_internal_suspend_noflush
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b36255c	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b4f0631	pci_generic_config_read32
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b5a4926	sha1_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b66c300	devlink_port_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b7c0658	__put_task_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x7b9793a2	get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf2963e	device_change_owner
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bf3fa06	task_cgroup_path
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfaed9c	devlink_is_reload_failed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7bfdcd81	housekeeping_cpumask
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c16415b	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c2d392d	trace_seq_bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c35e60a	stop_machine
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c7f5094	pci_speed_string
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c8d4cc4	gpiochip_relres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c94c99a	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x7c988814	lwtunnel_encap_del_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ca57491	sbitmap_queue_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cb1a58d	irq_domain_xlate_onetwocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cceaf92	zs_pool_stats
+EXPORT_SYMBOL_GPL	 vmlinux 0x7cd3cabc	component_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d24966a	sched_trace_rq_avg_dl
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d595079	device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d6153cb	__cookie_v6_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d648652	class_compat_create_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x7d891403	iptunnel_xmit
+EXPORT_SYMBOL_GPL	 vmlinux 0x7dda30af	unregister_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ddb2718	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de00d91	inet_send_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0x7de6cc23	io_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x7df7c9ec	gmap_shadow_r3t
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e110853	crypto_alloc_sync_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e48036b	devres_alloc_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e4f3f31	init_srcu_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e511ee4	device_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e6e1539	unuse_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e75273b	perf_aux_output_flag
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7888d3	shash_ahash_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x7e7d934c	devlink_port_attrs_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ea19cc2	fscrypt_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ebb8cb5	fat_time_unix2fat
+EXPORT_SYMBOL_GPL	 vmlinux 0x7edfdb92	irq_set_affinity_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x7eea3ae7	devlink_traps_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ef927c0	vfs_setlease
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f45ee61	security_path_rmdir
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f73dbf7	vfs_listxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7cbc64	ip_tunnel_need_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0x7f7d575a	blk_mq_request_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa3e59d	sysfs_update_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fa46b82	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0x7fb9c2a5	__srcu_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x7ff10724	elv_rqhash_del
+EXPORT_SYMBOL_GPL	 vmlinux 0x80082b86	tcp_get_info
+EXPORT_SYMBOL_GPL	 vmlinux 0x800c8a5a	get_task_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0x805667cf	devlink_fmsg_u64_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x80572b2b	get_current_tty
+EXPORT_SYMBOL_GPL	 vmlinux 0x805a970b	__pneigh_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x80628d67	blk_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0x8073516d	security_path_chmod
+EXPORT_SYMBOL_GPL	 vmlinux 0x807b1c44	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL	 vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL	 vmlinux 0x8092e668	pci_epf_alloc_space
+EXPORT_SYMBOL_GPL	 vmlinux 0x809d4e33	x509_free_certificate
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b109d4	__tracepoint_pelt_se_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x80b5c3cf	sock_diag_check_cookie
+EXPORT_SYMBOL_GPL	 vmlinux 0x80c68137	nf_log_buf_close
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d0428c	attribute_container_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x80d5e57a	mpi_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8118882c	devlink_dpipe_action_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x811ff1b1	pci_epc_set_msix
+EXPORT_SYMBOL_GPL	 vmlinux 0x812ea476	trace_seq_bitmask
+EXPORT_SYMBOL_GPL	 vmlinux 0x81346c3c	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL	 vmlinux 0x813988b5	devm_gpiod_unhinge
+EXPORT_SYMBOL_GPL	 vmlinux 0x81555ed5	xas_init_marks
+EXPORT_SYMBOL_GPL	 vmlinux 0x81571d4e	nf_ipv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x815fda83	sed_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0x816a543f	pci_msi_mask_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0x8186072d	fib_nh_common_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x81cf4001	posix_acl_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d7c5b7	percpu_ref_kill_and_confirm
+EXPORT_SYMBOL_GPL	 vmlinux 0x81d86cce	cio_disable_subchannel
+EXPORT_SYMBOL_GPL	 vmlinux 0x81dde6bd	crypto_unregister_skciphers
+EXPORT_SYMBOL_GPL	 vmlinux 0x81e8f8ca	register_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0x823012b1	fwnode_handle_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x8237af1c	freq_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x8260ee36	gpiod_set_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x8282a57b	hrtimer_sleeper_start_expires
+EXPORT_SYMBOL_GPL	 vmlinux 0x829654bb	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x82c7d01d	pci_device_is_present
+EXPORT_SYMBOL_GPL	 vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e68f53	zap_vma_ptes
+EXPORT_SYMBOL_GPL	 vmlinux 0x82e9ec62	fwnode_get_named_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f1b717	inode_sb_list_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x82f28456	iomap_page_mkwrite
+EXPORT_SYMBOL_GPL	 vmlinux 0x8310d2e2	fib_info_nh_uses_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x83260e91	lwtunnel_fill_encap
+EXPORT_SYMBOL_GPL	 vmlinux 0x8339df73	klist_add_behind
+EXPORT_SYMBOL_GPL	 vmlinux 0x8348e4f0	__tracepoint_wbc_writepage
+EXPORT_SYMBOL_GPL	 vmlinux 0x834caf1e	devlink_params_unpublish
+EXPORT_SYMBOL_GPL	 vmlinux 0x8380c97d	dev_forward_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0x8387d520	blkcg_print_blkgs
+EXPORT_SYMBOL_GPL	 vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c08ff0	get_kernel_page
+EXPORT_SYMBOL_GPL	 vmlinux 0x83c2d6ab	alloc_empty_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x83d079f5	rhashtable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x83f3849c	pci_add_dynid
+EXPORT_SYMBOL_GPL	 vmlinux 0x84106f36	devlink_trap_ctx_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0x8423139d	tpm_pcr_extend
+EXPORT_SYMBOL_GPL	 vmlinux 0x84264ced	fs_umode_to_ftype
+EXPORT_SYMBOL_GPL	 vmlinux 0x84502a47	blk_status_to_errno
+EXPORT_SYMBOL_GPL	 vmlinux 0x84585202	platform_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x845dbf3b	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0x845e553e	__dax_zero_page_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x847bf942	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x847e7c77	virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL	 vmlinux 0x848d7457	devlink_param_driverinit_value_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b5ee66	pci_find_next_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0x84b79060	unregister_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x84d32e0f	__fscrypt_encrypt_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ea7fc3	decrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0x84ead769	gpiod_get_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x850bb6db	devlink_health_reporter_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x850ddfa8	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x85410840	crypto_unregister_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0x855786cc	unregister_ftrace_function
+EXPORT_SYMBOL_GPL	 vmlinux 0x857b02ac	pci_epc_get_first_free_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x85927262	pci_d3cold_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0x859a5dbf	gmap_mprotect_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a3a00f	__module_text_address
+EXPORT_SYMBOL_GPL	 vmlinux 0x85a49dc7	pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL	 vmlinux 0x85b38978	percpu_ref_reinit
+EXPORT_SYMBOL_GPL	 vmlinux 0x85bb3c0d	br_ip6_fragment
+EXPORT_SYMBOL_GPL	 vmlinux 0x85bcf9a7	__sbitmap_queue_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d0bccc	iommu_unmap_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0x85d3da45	klp_enable_patch
+EXPORT_SYMBOL_GPL	 vmlinux 0x85e48f59	fat_scan
+EXPORT_SYMBOL_GPL	 vmlinux 0x85ea9b11	crypto_register_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0x862258db	timecounter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8633d1fc	validate_xmit_skb_list
+EXPORT_SYMBOL_GPL	 vmlinux 0x863bbe7b	blkdev_report_zones
+EXPORT_SYMBOL_GPL	 vmlinux 0x86585a33	devlink_fmsg_obj_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x8677245d	unregister_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL	 vmlinux 0x8692b65a	devlink_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x8698a503	page_mkclean
+EXPORT_SYMBOL_GPL	 vmlinux 0x869fd2e0	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b075fe	ncsi_stop_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x86b0b6ba	zpci_barrier
+EXPORT_SYMBOL_GPL	 vmlinux 0x86c961b3	__set_dax_synchronous
+EXPORT_SYMBOL_GPL	 vmlinux 0x86d15b6f	linear_hugepage_index
+EXPORT_SYMBOL_GPL	 vmlinux 0x86dc2a4c	pci_generic_config_write32
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0x86f85114	net_dec_egress_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8703a18a	hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x870a986b	nf_queue_nf_hook_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0x870d756f	gmap_pmdp_idte_global
+EXPORT_SYMBOL_GPL	 vmlinux 0x8711b43f	gpiochip_irq_domain_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0x872d6b97	md_bitmap_copy_from_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0x87424e1a	rtnl_af_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x875992e4	sbitmap_get_shallow
+EXPORT_SYMBOL_GPL	 vmlinux 0x875bb531	devlink_port_attrs_pci_vf_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x876e0bfb	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0x878ce415	screen_pos
+EXPORT_SYMBOL_GPL	 vmlinux 0x87ada725	iommu_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x88742e7d	debugfs_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0x887f177c	list_lru_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x88b5cf82	sk_clear_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x88c111e2	pingv6_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0x88e85feb	crypto_shash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0x88ec4aad	sysfs_merge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x89037219	fwnode_get_named_gpiod
+EXPORT_SYMBOL_GPL	 vmlinux 0x8924eb1e	rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x893abbdd	devlink_fmsg_u32_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89485687	iommu_group_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x89530dda	platform_add_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x895770df	bsg_job_done
+EXPORT_SYMBOL_GPL	 vmlinux 0x895b40ac	vmf_insert_pfn_pmd
+EXPORT_SYMBOL_GPL	 vmlinux 0x896c9063	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x898f8bf5	gpiochip_line_is_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x89a6320d	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL	 vmlinux 0x89ae5c59	input_ff_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0x89da9c37	find_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a16d44a	rhashtable_walk_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a2333ee	netlink_strict_get_check
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a4e3e7e	devlink_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a63bf7a	gpio_free_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8a88961d	perf_trace_run_bpf_submit
+EXPORT_SYMBOL_GPL	 vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad713a9	crypto_alloc_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ad9969e	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae57396	__blk_req_zone_write_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae57ce4	inet_csk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ae8334e	tty_port_tty_hangup
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b1641fd	xas_create_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b2b5116	pci_restore_msi_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b4428d5	bpf_trace_run8
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b4d28da	appldata_register_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b5119a3	scsi_dh_attached_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b717896	PageHuge
+EXPORT_SYMBOL_GPL	 vmlinux 0x8b7d5e98	fat_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0x8baa6df5	fuse_free_conn
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bc8379a	subsys_system_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bded20f	zpci_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8be81c29	unwind_next_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0x8bf3516f	strp_process
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c2119ef	screen_glyph_unicode
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c4690db	devm_gpiod_put_array
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c5a112c	register_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0x8c71a8b3	sysfs_create_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ca2693d	sbitmap_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8cdf6767	anon_inode_getfile
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d211c90	tpm_chip_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d22bb58	iommu_group_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3330b6	cpuacct_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d3991f3	pci_store_saved_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d4a55a6	blkg_print_stat_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d6950e0	pci_bridge_secondary_bus_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d79d69c	pci_check_and_unmask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d918dd8	call_switchdev_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0x8d9a9265	class_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8da78033	__ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0x8daafadf	fwnode_graph_get_remote_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8db293db	class_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dbbdcfb	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dc27043	security_kernel_post_read_file
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd7afe5	disk_part_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x8dd7f01d	badblocks_store
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de5cdbe	n_tty_inherit_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0x8de7c0f8	blk_mq_freeze_queue_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e0e1767	__fscrypt_prepare_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e5c9fe8	crypto_unregister_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e673eeb	irq_domain_associate
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e8f8d8c	crypto_register_rngs
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e910ccd	gmap_create
+EXPORT_SYMBOL_GPL	 vmlinux 0x8e92f7c4	static_key_slow_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eb6980b	generic_xdp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x8ebcad20	crypto_alloc_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eee3399	dax_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0x8eeec0d4	metadata_dst_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f0748af	rcu_expedite_gp
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f1b4353	crypto_has_skcipher2
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f3fb50d	to_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f44e710	fwnode_graph_get_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f5bf523	__zpci_load
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f786bee	fs_umode_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0x8f964f79	platform_find_device_by_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fa96371	__kthread_should_park
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fb31171	pci_user_read_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0x8fd62fa5	debugfs_create_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0x8feb3621	metadata_dst_free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9039897d	dev_change_net_namespace
+EXPORT_SYMBOL_GPL	 vmlinux 0x903b627c	list_lru_isolate_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x904899fc	bus_rescan_devices
+EXPORT_SYMBOL_GPL	 vmlinux 0x90688bcd	devlink_info_driver_name_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x9089822e	sk_attach_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9095f42f	net_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0x9096c914	vring_transport_features
+EXPORT_SYMBOL_GPL	 vmlinux 0x90a1c2bc	proc_douintvec_minmax
+EXPORT_SYMBOL_GPL	 vmlinux 0x90ec8d67	shmem_truncate_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x90fc6053	metadata_dst_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x9109c793	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x912b240e	kmsg_dump_get_line
+EXPORT_SYMBOL_GPL	 vmlinux 0x91320455	sbitmap_any_bit_set
+EXPORT_SYMBOL_GPL	 vmlinux 0x913e1a39	pci_debug_err_id
+EXPORT_SYMBOL_GPL	 vmlinux 0x91457c6e	gpiod_get_array_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0x915f9ff3	unregister_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0x91991c61	iommu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0x91a55068	public_key_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x91b8cc3d	platform_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x91ce25cd	md_rdev_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0x91cef189	tty_get_pgrp
+EXPORT_SYMBOL_GPL	 vmlinux 0x91e26bbc	irq_domain_translate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0x91eb518d	klist_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x92316dd4	ncsi_unregister_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x92352981	virtqueue_add_inbuf_ctx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9241b358	__static_key_slow_dec_deferred
+EXPORT_SYMBOL_GPL	 vmlinux 0x92452fc2	pcie_aspm_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0x924c46f8	zs_unmap_object
+EXPORT_SYMBOL_GPL	 vmlinux 0x926018aa	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0x9262cd09	seg6_do_srh_inline
+EXPORT_SYMBOL_GPL	 vmlinux 0x92784dcf	sched_trace_rq_avg_rt
+EXPORT_SYMBOL_GPL	 vmlinux 0x9282b0a0	crypto_alloc_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x92af16bc	task_cls_state
+EXPORT_SYMBOL_GPL	 vmlinux 0x92db8f68	do_trace_rcu_torture_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x92e8e9ab	fsverity_enqueue_verify_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x92faef3d	tcp_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0x92fb7332	__percpu_up_read
+EXPORT_SYMBOL_GPL	 vmlinux 0x93105c5b	blk_mq_request_started
+EXPORT_SYMBOL_GPL	 vmlinux 0x93170790	blk_fill_rwbs
+EXPORT_SYMBOL_GPL	 vmlinux 0x931e34dd	serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0x9333b61e	nf_ip_route
+EXPORT_SYMBOL_GPL	 vmlinux 0x9355b412	blkg_lookup_slowpath
+EXPORT_SYMBOL_GPL	 vmlinux 0x9355effe	preempt_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x93725986	__tracepoint_pelt_dl_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0x937e11d7	raw_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x937e748a	sk_clone_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x93805df1	register_virtio_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9384d65f	crypto_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0x9388eee0	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0x939126e4	kernel_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x93922111	get_compat_bpf_fprog
+EXPORT_SYMBOL_GPL	 vmlinux 0x93abce3b	scsi_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0x93bfa193	gmap_register_pte_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x93d61b49	ring_buffer_peek
+EXPORT_SYMBOL_GPL	 vmlinux 0x93dab677	task_user_regset_view
+EXPORT_SYMBOL_GPL	 vmlinux 0x93edef07	devlink_health_report
+EXPORT_SYMBOL_GPL	 vmlinux 0x93f2f96f	fb_deferred_io_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x94014546	gpiod_export_link
+EXPORT_SYMBOL_GPL	 vmlinux 0x94160518	__put_task_struct_rcu_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x941e97c8	platform_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x941f2aaa	eventfd_ctx_put
+EXPORT_SYMBOL_GPL	 vmlinux 0x94231747	ncsi_vlan_rx_kill_vid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9430b198	trace_dump_stack
+EXPORT_SYMBOL_GPL	 vmlinux 0x9442853a	irq_domain_add_legacy
+EXPORT_SYMBOL_GPL	 vmlinux 0x94615285	devm_request_pci_bus_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0x946dd559	sha224_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0x947585ae	dax_iomap_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x94943717	rhashtable_walk_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9494cb44	kvm_vcpu_mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x94a49be1	pci_epc_clear_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0x94b9b41e	xdp_do_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0x94f45e5b	mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0x9504df26	irq_wake_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0x951a2773	crypto_has_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0x953507f3	pci_create_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x953b6be2	evm_inode_init_security
+EXPORT_SYMBOL_GPL	 vmlinux 0x953e1b9e	ktime_get_real_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0x954b6231	devm_device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0x955b0e2e	kthread_worker_fn
+EXPORT_SYMBOL_GPL	 vmlinux 0x956d0d23	fat_dir_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x95857384	tty_kclose
+EXPORT_SYMBOL_GPL	 vmlinux 0x958b6c32	ip_fib_metrics_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x958df3ac	zs_free
+EXPORT_SYMBOL_GPL	 vmlinux 0x959ec5f5	call_rcu_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c420be	trace_event_raw_init
+EXPORT_SYMBOL_GPL	 vmlinux 0x95c9a402	mddev_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0x95d85e1b	sysfs_rename_link_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e062b2	wbc_detach_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0x95e5669e	iommu_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0x95ebf841	fscrypt_ioctl_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0x9607b8cb	blk_mq_flush_busy_ctxs
+EXPORT_SYMBOL_GPL	 vmlinux 0x96127385	gpiochip_is_requested
+EXPORT_SYMBOL_GPL	 vmlinux 0x96397277	scsi_internal_device_block_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0x963f2b3e	device_get_dma_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0x96499d89	gpiod_set_transitory
+EXPORT_SYMBOL_GPL	 vmlinux 0x964e1857	sk_msg_return
+EXPORT_SYMBOL_GPL	 vmlinux 0x96554810	register_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x965d8142	flow_indr_add_block_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0x96684c1b	gpiod_direction_input
+EXPORT_SYMBOL_GPL	 vmlinux 0x966b0a3a	pci_user_write_config_byte
+EXPORT_SYMBOL_GPL	 vmlinux 0x966dba2e	bpf_map_inc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9678a373	devres_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9686b2ff	bus_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0x96877cb1	trace_event_buffer_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0x96b485b6	task_cputime_adjusted
+EXPORT_SYMBOL_GPL	 vmlinux 0x96d91e15	fsnotify_find_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e6a9cc	gpiod_set_raw_value
+EXPORT_SYMBOL_GPL	 vmlinux 0x96e6cbc6	clockevents_register_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x96eae3e6	fsnotify_init_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0x96fad282	bus_for_each_drv
+EXPORT_SYMBOL_GPL	 vmlinux 0x97124f9f	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL	 vmlinux 0x9714e0bb	ktime_get_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x97156856	tcp_register_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0x973a74df	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x974f9b81	dm_accept_partial_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x975519c1	asymmetric_key_id_same
+EXPORT_SYMBOL_GPL	 vmlinux 0x9762cf01	pkcs7_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0x97664ccf	crypto_register_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0x9783a180	__pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x97910902	tracepoint_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9792c847	crypto_stats_kpp_compute_shared_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0x979ecf94	page_endio
+EXPORT_SYMBOL_GPL	 vmlinux 0x97b7f36b	sysfs_create_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x97d2f6fd	pci_remove_root_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0x97de2b83	debug_locks_silent
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e509f6	crypto_unregister_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0x97e7f902	trace_vbprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0x97fbbcae	irq_find_matching_fwspec
+EXPORT_SYMBOL_GPL	 vmlinux 0x9821b6b4	fsnotify_alloc_group
+EXPORT_SYMBOL_GPL	 vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL	 vmlinux 0x983eba3c	rt_mutex_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x984d37d3	device_move
+EXPORT_SYMBOL_GPL	 vmlinux 0x98503a63	mpi_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x985453e1	lease_unregister_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9860cad9	aead_init_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0x987519c4	__generic_fsdax_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0x98780a59	kset_find_obj
+EXPORT_SYMBOL_GPL	 vmlinux 0x98789d2c	tty_release_struct
+EXPORT_SYMBOL_GPL	 vmlinux 0x9879932b	crypto_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9885d12c	devres_add
+EXPORT_SYMBOL_GPL	 vmlinux 0x9897a110	user_describe
+EXPORT_SYMBOL_GPL	 vmlinux 0x98bd08b2	get_task_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f3033c	virtio_add_status
+EXPORT_SYMBOL_GPL	 vmlinux 0x98f64a90	dio_end_io
+EXPORT_SYMBOL_GPL	 vmlinux 0x98fa1e20	dm_get_reserved_rq_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0x9904fd9a	ping_seq_next
+EXPORT_SYMBOL_GPL	 vmlinux 0x991371d2	bd_link_disk_holder
+EXPORT_SYMBOL_GPL	 vmlinux 0x99347728	firmware_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0x994f27e2	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0x995c6d88	restore_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL	 vmlinux 0x995d38ab	rt_mutex_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x99672cc2	relay_late_setup_files
+EXPORT_SYMBOL_GPL	 vmlinux 0x997c4347	unmap_kernel_range
+EXPORT_SYMBOL_GPL	 vmlinux 0x998c9273	iommu_report_device_fault
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a2e609	gpiochip_irqchip_irq_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0x99a3a31e	sock_diag_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x99baf69d	fsverity_verify_bio
+EXPORT_SYMBOL_GPL	 vmlinux 0x99c08049	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0x99f2d00a	sysfs_emit_at
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a0bf57c	metadata_dst_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a245d55	crypto_register_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a5db287	ptp_classify_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a62ceb8	debugfs_create_x64
+EXPORT_SYMBOL_GPL	 vmlinux 0x9a919590	pci_epc_map_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aac0877	sock_diag_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0x9abd7e97	pci_epc_start
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ae2da16	sbitmap_add_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL	 vmlinux 0x9af8cbd8	ftrace_set_filter_ip
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b00fb14	dma_buf_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b054078	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b26de5d	tty_port_link_device
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b35a530	udp_cmsg_send
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b37c0b9	dst_cache_set_ip6
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b4f6661	kmsg_dump_register
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b7fe88f	evict_inodes
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b896724	devlink_param_value_str_fill
+EXPORT_SYMBOL_GPL	 vmlinux 0x9b9071cb	get_old_itimerspec32
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bc77923	__tracepoint_neigh_update
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bcdc85f	tun_get_socket
+EXPORT_SYMBOL_GPL	 vmlinux 0x9bece81b	mpi_cmp_ui
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c0079f3	posix_acl_access_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c229ab9	bpf_trace_run4
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c2e853e	device_store_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c33210f	inet_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c50f5e1	iommu_aux_get_pasid
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7bddf4	device_connection_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c7e9417	crypto_shash_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c87d368	gmap_shadow_pgt_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c948501	ccw_device_siosl
+EXPORT_SYMBOL_GPL	 vmlinux 0x9c98d757	pci_check_and_mask_intx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca2c101	device_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca38889	fuse_simple_background
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ca5ad49	irq_domain_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d06e990	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d09e8ae	ring_buffer_event_data
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d495a0b	crypto_default_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d61d538	cgroup_path_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0x9d9dc7f2	bpf_prog_create_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0x9dca6c88	pci_reset_function_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e062b83	crypto_unregister_acomp
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e08d700	__tracepoint_xdp_bulk_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e1cb518	fwnode_connection_find_match
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e1f22b7	xdp_return_buff
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e472f5f	snmp_fold_field
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e5c0a90	strp_data_ready
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e650260	ftrace_set_filter
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e80696e	blk_mq_queue_inflight
+EXPORT_SYMBOL_GPL	 vmlinux 0x9e8b2c51	pci_epc_mem_free_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0x9eb306d7	ping_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec0476c	kvm_vcpu_gfn_to_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec054d5	trace_seq_putc
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ec13dfc	gpiochip_find
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ed554b3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0x9ee2b455	get_kernel_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f1eebb6	__irq_set_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f36457e	__tracepoint_fdb_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f4e91e5	freq_qos_add_request
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f59b4b2	dm_noflush_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6d78fc	kvm_get_pfn
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f6f2c92	fib6_check_nexthop
+EXPORT_SYMBOL_GPL	 vmlinux 0x9f9d2118	blk_req_needs_zone_write_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe1ae6f	ack_all_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0x9fe939e1	mpi_powm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0061022	dst_cache_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0483680	pci_epc_add_epf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04d25f7	hvc_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xa04f945a	cpus_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa05c69e4	crypto_stats_akcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0697703	balloon_page_list_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa06c4508	debugfs_attr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa09d32fd	dm_get_table_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0b12171	blk_lld_busy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa0d3456d	nr_swap_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa11136c9	__gmap_zap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1253498	blk_mq_virtio_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xa12a1241	devlink_dpipe_table_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1357e0a	bus_get_kset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa14ebcdf	device_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1651e93	rhashtable_insert_slow
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1670271	iommu_fwspec_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa17162a4	dax_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa194f535	netlink_remove_tap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa199d756	__vring_new_virtqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1adebb2	trace_event_buffer_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1c4231f	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1df228d	device_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1e3088d	gpiochip_reqres_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xa1eb3451	perf_event_update_userpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xa20d01ba	__trace_bprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2177d67	create_signature
+EXPORT_SYMBOL_GPL	 vmlinux 0xa22dfbe8	shash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa23b6e0a	tty_register_device_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2402c6c	xsk_reuseq_swap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2448ad5	kobj_sysfs_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2473915	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xa261c5b0	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2644276	init_uts_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26bed8e	bstr_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xa26d9b4f	workqueue_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xa27e41bf	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa28bb8cb	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2a8608e	iommu_iova_to_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2c73ec3	free_fib_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2d0451b	netdev_walk_all_upper_dev_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2e1b3ef	trace_printk_init_buffers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f08aad	init_dummy_netdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xa2f61a48	platform_unregister_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xa31534d4	debugfs_file_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa321ef31	watchdog_set_restart_priority
+EXPORT_SYMBOL_GPL	 vmlinux 0xa323055b	nfnl_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xa33cf3a7	crypto_stats_kpp_set_secret
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3433965	devm_get_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xa363199c	crypto_dequeue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3659b5f	__tracepoint_devlink_hwerr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa376d145	ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38172ca	gmap_shadow_r2t
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xa389a49a	profile_event_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa38a9f71	get_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3916a2a	inet_twsk_purge
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3990d39	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3b958ce	reset_hung_task_detector
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3bde2d3	md_rdev_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3cfce29	pci_rescan_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ec4b00	ahash_attr_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3ece414	freezer_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3f12f69	__crypto_xor
+EXPORT_SYMBOL_GPL	 vmlinux 0xa3fb1c06	smpboot_unregister_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xa40b541c	gpiod_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xa410a295	devlink_region_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa41935ec	pm_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xa436e605	css_next_descendant_pre
+EXPORT_SYMBOL_GPL	 vmlinux 0xa44a1307	interval_tree_iter_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xa45c7b90	stack_trace_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4b8163a	ip6_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4d18a06	fat_add_entries
+EXPORT_SYMBOL_GPL	 vmlinux 0xa4e9635b	md_bitmap_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xa501c532	l3mdev_link_scope_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa50c3645	__class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5144044	unregister_asymmetric_key_parser
+EXPORT_SYMBOL_GPL	 vmlinux 0xa515a1b7	skcipher_walk_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xa51f1f76	register_kretprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5340937	platform_irq_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5508afa	switchdev_handle_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xa551e12d	kernfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5745f0c	gmap_mark_unmergeable
+EXPORT_SYMBOL_GPL	 vmlinux 0xa57d3420	unix_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xa591487d	perf_aux_output_begin
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c14ccc	devlink_params_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5c8645b	css_general_characteristics
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5de4810	udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5f1811e	pci_set_host_bridge_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xa5f2ed28	skb_complete_tx_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xa635302e	ip6_sk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa66ce762	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6824f3f	__tracepoint_br_fdb_external_learn_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6c0481a	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d02814	ccw_device_get_util_str
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6d4e35a	iommu_attach_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6e1a69d	kick_all_cpus_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6f963ee	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xa6fbe404	device_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7006df1	gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xa709c835	fib6_info_destroy_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xa71f0676	gpiod_direction_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7829df9	dma_buf_mmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa7bc9173	kvm_get_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xa82170f8	crypto_rng_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8391ab1	securityfs_create_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83eb0f0	rhltable_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xa83f641e	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xa851973a	raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xa852e478	crypto_register_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xa86609a3	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a19aa6	kvm_flush_remote_tlbs
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8a3ff0f	gmap_convert_to_secure
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8b4f76a	devlink_resource_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8b92a4e	driver_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8bd0cef	module_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fabfd3	probe_user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xa8fc7511	yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xa916827e	transport_configure_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9320d27	ktime_get_seconds
+EXPORT_SYMBOL_GPL	 vmlinux 0xa93922bc	devm_pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95072e3	devm_serdev_device_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9549817	aead_geniv_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9562419	tcp_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95b1b32	pcie_has_flr
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95ca257	alarm_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xa95f825b	set_selection_kernel
+EXPORT_SYMBOL_GPL	 vmlinux 0xa96e4960	device_remove_groups
+EXPORT_SYMBOL_GPL	 vmlinux 0xa97404da	dax_attribute_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xa98b9a0d	crypto_aes_set_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xa99ef899	devlink_fmsg_bool_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9a7269f	shash_ahash_finup
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9b037fd	iommu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9c6b1ca	bus_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9d0ab1f	trace_seq_putmem_hex
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e18049	task_handoff_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9e4a2e5	crypto_stats_skcipher_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xa9ff15b9	s390_enable_sie
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa0a846e	kvm_vcpu_gfn_to_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa144d9a	fscrypt_ioctl_remove_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa230f88	perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa2d6b0a	security_path_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa386ad7	virtqueue_disable_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa509965	zpci_enable_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa601a8c	skb_scrub_packet
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa61de11	irq_stat
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa6a50f9	__static_key_deferred_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa8e27a2	switchdev_port_attr_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xaa970309	ip4_datagram_release_cb
+EXPORT_SYMBOL_GPL	 vmlinux 0xaaa918c9	ftrace_dump
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac22aa5	query_asymmetric_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xaac59fba	virtio_config_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xaacd3852	sk_set_memalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae433dc	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaae68373	gpiochip_unlock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xab04b61a	sysfs_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xab094587	virtqueue_get_vring_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xab27d893	blk_mq_pci_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xab2c67b2	gpiod_unexport
+EXPORT_SYMBOL_GPL	 vmlinux 0xab3056a9	fib6_new_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xab4b5be2	virtqueue_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xab836e75	iommu_page_response
+EXPORT_SYMBOL_GPL	 vmlinux 0xab90e09f	attribute_container_find_class_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xab94f9b9	pci_generic_config_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xab97a97d	s390_handle_mcck
+EXPORT_SYMBOL_GPL	 vmlinux 0xab98f582	devres_remove_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xab9bd884	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xabac10b7	inet_getpeer
+EXPORT_SYMBOL_GPL	 vmlinux 0xabc640f3	list_lru_isolate
+EXPORT_SYMBOL_GPL	 vmlinux 0xabd31e79	mddev_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe0ad84	smpboot_register_percpu_thread
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe0c25f	sched_trace_rq_avg_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xabe1d8a6	kthread_flush_worker
+EXPORT_SYMBOL_GPL	 vmlinux 0xabf84b5a	ping_seq_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xac05243a	ipv4_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xac0fc159	set_primary_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xac1223a7	kobject_move
+EXPORT_SYMBOL_GPL	 vmlinux 0xac3fd2eb	simple_attr_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xac42d4e6	digsig_verify
+EXPORT_SYMBOL_GPL	 vmlinux 0xac46e97c	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xac58bad4	blkcg_activate_policy
+EXPORT_SYMBOL_GPL	 vmlinux 0xac5a789c	trace_seq_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xac6a4f9b	iomap_file_buffered_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xac78e0d6	gpiod_get_raw_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xacaf7e0d	cgroup_rstat_updated
+EXPORT_SYMBOL_GPL	 vmlinux 0xacb40969	subsys_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xad12a6db	ahash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xad230e75	blk_register_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3674d9	serdev_device_write_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3dfa13	lgr_info_log
+EXPORT_SYMBOL_GPL	 vmlinux 0xad3ff94d	debugfs_create_devm_seqfile
+EXPORT_SYMBOL_GPL	 vmlinux 0xad645234	register_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xad8f19ab	mddev_init_writes_pending
+EXPORT_SYMBOL_GPL	 vmlinux 0xad92fed8	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xada38766	dst_cache_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xadaaa3ae	diag308
+EXPORT_SYMBOL_GPL	 vmlinux 0xadf9699b	pci_write_msi_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xae0592ef	ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL	 vmlinux 0xae1051b0	net_cls_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xae16f1a4	key_type_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2b59fc	fwnode_device_is_available
+EXPORT_SYMBOL_GPL	 vmlinux 0xae2d4d20	__ftrace_vprintk
+EXPORT_SYMBOL_GPL	 vmlinux 0xae39f80e	dst_cache_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xae3a3c6d	proc_get_parent_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xae66ca48	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xae68c160	gpiod_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xae69b1c1	usermodehelper_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7c231d	mpi_cmp
+EXPORT_SYMBOL_GPL	 vmlinux 0xae7cbb0f	ip6_route_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xae8fd5f9	udp6_lib_lookup_skb
+EXPORT_SYMBOL_GPL	 vmlinux 0xae9a40fd	xdp_rxq_info_is_reg
+EXPORT_SYMBOL_GPL	 vmlinux 0xaebc534f	trace_seq_vprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xaec32e3b	kvm_read_guest_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xaed120d3	securityfs_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1039b5	iommu_aux_detach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf19ee9b	badblocks_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf1ec4d6	__mnt_drop_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf211d0f	iomap_readpages
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf2c540a	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf5ac151	class_interface_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf772d14	__fscrypt_prepare_symlink
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf886f31	gmap_shadow_sgt
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf905c8c	rhashtable_walk_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xaf97a006	devm_gpiod_get_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xafc5252d	__pci_complete_power_transition
+EXPORT_SYMBOL_GPL	 vmlinux 0xafde81fc	debugfs_create_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xb03e941f	component_del
+EXPORT_SYMBOL_GPL	 vmlinux 0xb048368b	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb04aaadc	bpf_prog_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0747ed2	rcu_cpu_stall_suppress
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0a030e4	fwnode_graph_get_remote_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xb0d62ed2	kvm_vcpu_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10b2d70	crypto_grab_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xb10d964d	devlink_fmsg_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xb11d9000	tty_dev_name_to_number
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14517f4	tpm_pcr_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xb147e8a4	virtio_config_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb14ebdd3	xas_set_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1647fc2	devlink_info_version_running_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb169aa2c	devlink_flash_update_status_notify
+EXPORT_SYMBOL_GPL	 vmlinux 0xb18153f5	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb193f10a	kthread_queue_delayed_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xb19f152e	klist_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1bb5ad9	devlink_dpipe_match_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1d844fb	cio_start_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1dabc1e	unregister_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xb1e25684	__trace_bputs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20832e1	input_ff_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20a5965	cpu_topology
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20ca5dd	pkcs7_free_message
+EXPORT_SYMBOL_GPL	 vmlinux 0xb20d37be	skb_send_sock_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2375a2b	iomap_dio_iopoll
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2405efc	secure_tcp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb250d26f	ipv6_proxy_select_ident
+EXPORT_SYMBOL_GPL	 vmlinux 0xb26a1add	elfcorehdr_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2799588	cgroup_get_from_fd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb27e2df8	__fscrypt_prepare_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2aaebc4	transport_destroy_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2b293a6	irq_domain_simple_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2c223ea	devm_kstrdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb2ff3ad0	ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb307c909	devlink_fmsg_u64_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb30a3283	generic_fh_to_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb33902d4	cgrp_dfl_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xb36231c1	wbt_disable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37014f2	tpm_transmit_cmd
+EXPORT_SYMBOL_GPL	 vmlinux 0xb3769fce	device_attach
+EXPORT_SYMBOL_GPL	 vmlinux 0xb37fa039	software_node_register_nodes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb407c1df	percpu_ref_switch_to_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb43f9365	ktime_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44ab713	klist_prev
+EXPORT_SYMBOL_GPL	 vmlinux 0xb44e18ea	audit_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb464f1b8	dm_table_set_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46e89d6	crypto_stats_akcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xb46fbe0b	klp_shadow_get_or_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4a1a6c2	tty_mode_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4b97c90	pvclock_gtod_register_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4bb1c35	serdev_device_write_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb4eda0da	ring_buffer_event_length
+EXPORT_SYMBOL_GPL	 vmlinux 0xb52a1de6	__irq_domain_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xb547faf3	kvm_s390_gisc_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb56462c8	gpiochip_line_is_persistent
+EXPORT_SYMBOL_GPL	 vmlinux 0xb565b844	blk_mq_sched_try_merge
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5711140	serdev_controller_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5825001	wait_on_page_writeback
+EXPORT_SYMBOL_GPL	 vmlinux 0xb587cd34	input_ff_upload
+EXPORT_SYMBOL_GPL	 vmlinux 0xb58e514f	inet_twsk_hashdance
+EXPORT_SYMBOL_GPL	 vmlinux 0xb59e91f3	bio_clone_blkg_association
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5db841b	kvm_vcpu_gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xb5e01120	kvm_vcpu_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6261484	register_die_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb638f70c	chsc_pnso_brinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xb659f14b	devlink_param_value_changed
+EXPORT_SYMBOL_GPL	 vmlinux 0xb67d985d	smp_call_function_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6b7050f	serdev_device_set_flow_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xb6e42913	sk_psock_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7333f54	alloc_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xb73b78a4	fwnode_get_next_child_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7a7b331	devlink_region_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7c69a63	unregister_vmap_purge_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7d41848	ipv6_dup_options
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7ee7c5b	gpiochip_irqchip_add_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7f3c222	virtqueue_enable_cb_prepare
+EXPORT_SYMBOL_GPL	 vmlinux 0xb7fe3b9d	kvm_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8049eb9	fib_rules_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80506b4	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb80bc8ab	fb_deferred_io_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8122f58	perf_tp_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8212341	timecounter_cyc2time
+EXPORT_SYMBOL_GPL	 vmlinux 0xb83b70f2	housekeeping_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8738d22	tty_buffer_request_room
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88a9a9a	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xb88dbfce	irq_set_irqchip_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xb89e69b1	jump_label_update_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8a6bb95	do_splice_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8cd3a7f	nf_logger_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8db9d3b	nf_queue_entry_release_refs
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8ebfe25	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xb8f315e2	rtnl_af_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xb909c382	mmu_notifier_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xb912560d	static_key_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9153905	__srcu_read_unlock
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9279218	skb_cow_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xb92faf9f	iptunnel_metadata_reply
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9307176	vfs_getxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9398972	unregister_kprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb93a6a2e	zpci_write_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xb95de3c2	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb964e050	tpm_put_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb969bdf9	handle_simple_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xb982f858	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xb98a055f	sbitmap_queue_wake_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9a41ecf	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9a5ec49	__raw_v4_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9a9aefc	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b385b5	tty_ldisc_receive_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9b644ec	debugfs_create_u16
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9cbf4e9	debugfs_create_x32
+EXPORT_SYMBOL_GPL	 vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xba0048cf	blkg_print_stat_bytes_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xba1659b9	iomap_readpage
+EXPORT_SYMBOL_GPL	 vmlinux 0xba27d8a7	msi_desc_to_pci_sysdata
+EXPORT_SYMBOL_GPL	 vmlinux 0xba45dda1	__netpoll_cleanup
+EXPORT_SYMBOL_GPL	 vmlinux 0xba4864e1	vfs_kern_mount
+EXPORT_SYMBOL_GPL	 vmlinux 0xba758a8b	tty_port_register_device_serdev
+EXPORT_SYMBOL_GPL	 vmlinux 0xbab748c2	irqchip_fwnode_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xbaf6850c	fsnotify_wait_marks_destroyed
+EXPORT_SYMBOL_GPL	 vmlinux 0xbafd258a	gmap_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb046365	rtnl_delete_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0ab47b	debug_locks
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb0b9a9e	rtnl_link_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb198098	pci_enable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb28897c	md_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb5170c5	irq_get_percpu_devid_partition
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb551283	devlink_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb563d39	software_node_find_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb636297	irq_domain_get_irq_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6508da	random_get_entropy_fallback
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb651225	pci_create_slot
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb6a3cbd	devlink_fmsg_arr_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7b3f80	chp_ssd_get_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xbb7e1544	__cookie_v4_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbc40a71	x509_decode_time
+EXPORT_SYMBOL_GPL	 vmlinux 0xbbcc9955	unregister_kretprobes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc084235	xdp_return_frame
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc0b24f7	fib_nl_delrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc1e67ab	crypto_unregister_scomp
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc222243	pci_ats_page_aligned
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc46b3d1	xas_clear_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc4c4bcc	trace_seq_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc6bec66	free_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc7fd285	s390_reset_cmma
+EXPORT_SYMBOL_GPL	 vmlinux 0xbc89a3be	inet_twsk_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcac6160	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcb706be	validate_xmit_xfrm
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcc15e75	ktime_get_coarse_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcd0f155	bpf_prog_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdcd0ef	open_related_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcdd5b99	iommu_group_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xbce31e77	strp_unpause
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf1f0e6	zs_create_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xbcf3beb2	blkg_print_stat_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd1f3803	perf_get_aux
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd322cff	dax_copy_from_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd3fe1e3	disable_hardirq
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd5cb8b9	ring_buffer_resize
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7c1622	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xbd7c2517	x509_cert_parse
+EXPORT_SYMBOL_GPL	 vmlinux 0xbda3bbd3	device_dma_supported
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc88779	sk_msg_clone
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdc92131	kvm_write_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdd642d7	crypto_stats_skcipher_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xbde436c9	__inet_lookup_listener
+EXPORT_SYMBOL_GPL	 vmlinux 0xbdf10f1a	sock_gen_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe687e88	wake_up_all_idle_cpus
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe6a44e0	platform_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe825c73	user_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xbe83e68e	devm_fwnode_get_index_gpiod_from_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xbea5ff1e	static_key_initialized
+EXPORT_SYMBOL_GPL	 vmlinux 0xbeae458d	fib_nexthop_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xbecf7037	blk_steal_bios
+EXPORT_SYMBOL_GPL	 vmlinux 0xbee45c54	input_class
+EXPORT_SYMBOL_GPL	 vmlinux 0xbef1e9cb	devm_gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf041102	register_vt_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf24bfd0	kvm_debugfs_dir
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf2a705f	__rt_mutex_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf4e88f4	__cookie_v4_init_sequence
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf54d203	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf5d7ff2	blk_mq_update_nr_hw_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf6a5b40	shash_free_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf70bd3d	blk_mq_rdma_map_queues
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf713c46	blkdev_write_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf78b10e	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xbf880837	synchronize_srcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbb4df4	pci_hp_add_bridge
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfbe91b8	tpmm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfc95df5	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xbfe5616d	tick_broadcast_oneshot_control
+EXPORT_SYMBOL_GPL	 vmlinux 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc00346ee	dma_get_required_mask
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0124c0c	gmap_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc019bb1a	crypto_unregister_acomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xc038d475	nexthop_select_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xc08647ff	ring_buffer_bytes_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0a96e14	rcu_gp_is_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0dd336d	vcpu_load
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0df5ac5	pci_ioremap_wc_bar
+EXPORT_SYMBOL_GPL	 vmlinux 0xc0f0458a	ip_tunnel_unneed_metadata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10650d9	driver_create_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xc108ced7	devm_platform_ioremap_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xc10fddb8	name_to_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1602ba5	gpiod_direction_output_raw
+EXPORT_SYMBOL_GPL	 vmlinux 0xc16a3b67	inet_ehash_nolisten
+EXPORT_SYMBOL_GPL	 vmlinux 0xc18d9f09	pci_debug_msg_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ad9da6	xfrm_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1ae7b1e	crypto_stats_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1afbc01	cio_cancel_halt_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1b15559	gpiod_get_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xc1bcb475	chp_get_sch_opm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc206c960	ip6_datagram_send_ctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2094b07	gpiod_set_raw_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xc209688d	use_mm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc219f6a1	gpiod_remove_lookup_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL	 vmlinux 0xc24bedb4	kvm_vcpu_map
+EXPORT_SYMBOL_GPL	 vmlinux 0xc253a2ad	__vfs_setxattr_noperm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc25fa3f4	init_pid_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xc26f3daf	pci_scan_child_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xc27b0cea	sock_zerocopy_realloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc285ccd6	freq_qos_remove_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xc29b5f71	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2a814db	tcp_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2acd3da	__blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2c1c427	perf_event_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2d11618	bsg_job_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc2fb0e9d	fib6_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xc311ea23	crypto_mod_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3411180	__mmdrop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc341ae6d	zs_map_object
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3791235	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3805cd1	fs_ftype_to_dtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3882649	serdev_device_set_baudrate
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3c4c6cc	hash_algo_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3cef9fe	device_add_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xc3ea5305	iommu_default_passthrough
+EXPORT_SYMBOL_GPL	 vmlinux 0xc40f4e07	__tracepoint_neigh_update_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xc414ec68	fanout_mutex
+EXPORT_SYMBOL_GPL	 vmlinux 0xc41a0c51	chsc_ssqd
+EXPORT_SYMBOL_GPL	 vmlinux 0xc426c51f	klp_shadow_free_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43e4dda	platform_device_add_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xc43ff696	hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xc471627e	fwnode_get_phy_mode
+EXPORT_SYMBOL_GPL	 vmlinux 0xc480eb84	appldata_diag
+EXPORT_SYMBOL_GPL	 vmlinux 0xc48f7eb5	is_binary_blacklisted
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4a31146	rdma_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4cf720c	fscrypt_symlink_getattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4f0da12	ktime_get_with_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xc4fe1f2b	user_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xc51e6e7e	devlink_region_shapshot_id_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xc56b0fab	do_take_over_console
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575b0ad	get_device_system_crosststamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xc575c737	debug_locks_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xc592a154	__clocksource_update_freq_scale
+EXPORT_SYMBOL_GPL	 vmlinux 0xc595bbc2	cio_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5a7018c	pci_ignore_hotplug
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5e23d29	tpm2_get_tpm_pt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc5fb4a99	pskb_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6011d13	inet_twsk_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc612c646	d_walk
+EXPORT_SYMBOL_GPL	 vmlinux 0xc617f82c	unregister_oom_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6275c21	debugfs_create_ulong
+EXPORT_SYMBOL_GPL	 vmlinux 0xc633232a	pci_epf_free_space
+EXPORT_SYMBOL_GPL	 vmlinux 0xc63360ec	devlink_param_driverinit_value_set
+EXPORT_SYMBOL_GPL	 vmlinux 0xc636371f	con_debug_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6440821	pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL	 vmlinux 0xc64ce6f4	irq_domain_xlate_twocell
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6544a61	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xc654d3f4	lwtunnel_valid_encap_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xc65d3eed	ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc66b77b1	iommu_group_set_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xc675cac8	iommu_sva_set_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xc679dc29	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL	 vmlinux 0xc68a0975	scsi_target_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xc69b7ee5	zs_destroy_pool
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6a27775	smp_call_function_single_async
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6d5b45a	srcu_torture_stats_print
+EXPORT_SYMBOL_GPL	 vmlinux 0xc6fc7308	tpm_default_chip
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e3e78	__serdev_device_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc71e64a9	snmp_get_cpu_field
+EXPORT_SYMBOL_GPL	 vmlinux 0xc724bd4f	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL	 vmlinux 0xc755c93f	trace_handle_return
+EXPORT_SYMBOL_GPL	 vmlinux 0xc75e58bd	pci_sriov_configure_simple
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7700da9	get_cpu_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xc78c4e81	security_file_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7a992f9	gpiochip_enable_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7bfb968	ip6_route_input_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7d6545e	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e39bca	ring_buffer_dropped_events_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7e972ad	find_get_pid
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7f56fa3	fwnode_get_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xc7fa4aa9	kobj_ns_drop
+EXPORT_SYMBOL_GPL	 vmlinux 0xc80b8e85	skcipher_walk_aead_encrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82c721f	klist_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xc82efc95	fwnode_property_match_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8403423	iommu_domain_window_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc84c4023	nl_table_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85689aa	cio_enable_subchannel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc85a88e1	free_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xc89670dc	crypto_register_aeads
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a6e09b	inet_peer_base_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8a79234	ip6_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ca0182	debugfs_create_file_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8d57dde	tty_init_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ddd5b5	kstrdup_quotable
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8e29109	peernet2id_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8ed529c	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f1c5a1	devlink_dpipe_table_counter_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xc8f3cfbf	blkcg_root
+EXPORT_SYMBOL_GPL	 vmlinux 0xc91deb14	gmap_read_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xc93461f9	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9514772	dma_buf_kmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9561772	fb_destroy_modelist
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9566374	kvm_put_kvm
+EXPORT_SYMBOL_GPL	 vmlinux 0xc96d0d2d	bdev_write_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9827693	__bpf_call_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ac35ea	anon_transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca18a5d6	inverse_translate
+EXPORT_SYMBOL_GPL	 vmlinux 0xca2fd32f	udp_destruct_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xca541308	trusted_tpm_send
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7628ee	inet6_csk_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xca7d8764	kthread_freezable_should_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xca87df98	io_cgrp_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xca982e86	tty_standard_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xcacd88a0	__tracepoint_br_fdb_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xcace0237	mm_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xcad59eca	sbitmap_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xcae138a8	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xcaf0254f	ip_route_output_flow
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb0480b9	__devm_pci_epc_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb1dd20e	gpiochip_lock_as_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb3f5ff6	gpiod_is_active_low
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb5a258e	rtm_getroute_parse_ip_proto
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb91b7f0	md_stop_writes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcb9c9a0c	get_user_pages_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba27730	bpf_redirect_info
+EXPORT_SYMBOL_GPL	 vmlinux 0xcba437fe	debugfs_attr_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbbf3028	gen_pool_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbd33e14	bpf_trace_run12
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbe56bc2	zs_get_total_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xcbf920aa	sched_trace_cfs_rq_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc0c1c22	__get_task_comm
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc1f2956	blk_queue_max_discard_segments
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc21c30a	pci_epc_linkup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc2dbfd8	irq_domain_check_msi_remap
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc322018	pci_epc_get_msi
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc52fdfe	fsverity_file_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc53d933	crypto_unregister_shashes
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc568ed4	fwnode_handle_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc6ade6c	perf_event_addr_filters_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc8cf19a	bpf_trace_run9
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc935375	walk_iomem_res_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xcc9e112a	skb_zerocopy_iter_stream
+EXPORT_SYMBOL_GPL	 vmlinux 0xccaab6a6	blk_queue_can_use_dma_map_merging
+EXPORT_SYMBOL_GPL	 vmlinux 0xccb802d0	xas_split
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbc5550	debugfs_read_file_bool
+EXPORT_SYMBOL_GPL	 vmlinux 0xccbe92fc	__skb_get_hash_symmetric
+EXPORT_SYMBOL_GPL	 vmlinux 0xcccaf2ee	device_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xccd6d217	devlink_params_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xccdb7107	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL	 vmlinux 0xccf545f7	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd190e2c	__sync_filesystem
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd24e146	hash_digest_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd30a3d1	crypto_register_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd5c4b0f	crypto_stats_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd6f2dc9	nf_log_buf_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd7fc3b4	strp_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8c5fc3	crypto_register_templates
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd8dff9e	transport_class_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd91b127	system_highpri_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd974f00	rcu_all_qs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcd9cd2ff	wakeme_after_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda19f0f	pci_epc_get_features
+EXPORT_SYMBOL_GPL	 vmlinux 0xcda87c7d	nf_checksum
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdb6adcc	ras_userspace_consumers
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdc1e08e	fwnode_graph_get_endpoint_by_id
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdca3691	nr_irqs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde8a4c3	freq_qos_add_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xcde93378	cio_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xcdf8292b	ipv6_find_tlv
+EXPORT_SYMBOL_GPL	 vmlinux 0xce0aa9f6	trace_array_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xce1683e9	pci_cfg_access_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xce44d2ca	add_page_wait_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4712dc	crypto_unregister_rng
+EXPORT_SYMBOL_GPL	 vmlinux 0xce4df7df	shash_ahash_digest
+EXPORT_SYMBOL_GPL	 vmlinux 0xce6db656	rcu_is_watching
+EXPORT_SYMBOL_GPL	 vmlinux 0xce7a600a	dm_internal_suspend_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xce8c95d3	encrypt_blob
+EXPORT_SYMBOL_GPL	 vmlinux 0xce987b09	inet_unhash
+EXPORT_SYMBOL_GPL	 vmlinux 0xceae84dd	pci_find_next_ext_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xceca9aed	alloc_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xced83eff	iomap_invalidatepage
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf28f55e	trace_clock_global
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf4e267f	dm_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf4fe39f	ip6_dst_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf54ea93	async_unregister_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf5e4d50	kvm_write_guest_offset_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf717e0a	blk_mq_freeze_queue_wait_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf7c9771	scsi_flush_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xcf810794	device_store_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfa3c919	iterate_mounts
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfb5871c	irq_work_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfc5108a	devlink_fmsg_u8_pair_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfd69a23	skb_copy_ubufs
+EXPORT_SYMBOL_GPL	 vmlinux 0xcfecac09	scsi_schedule_eh
+EXPORT_SYMBOL_GPL	 vmlinux 0xcff73efa	debugfs_create_file_unsafe
+EXPORT_SYMBOL_GPL	 vmlinux 0xcffa43e8	crypto_unregister_kpp
+EXPORT_SYMBOL_GPL	 vmlinux 0xd00bd36b	perf_pmu_migrate_context
+EXPORT_SYMBOL_GPL	 vmlinux 0xd031b589	asn1_ber_decoder
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0396fb3	class_dev_iter_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xd03eaf4c	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd05548a1	bsg_setup_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd06524ba	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd067d3c5	system_freezable_power_efficient_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd083be63	sprint_OID
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0ab5170	device_property_read_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0aff12f	key_set_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d47acb	mmu_notifier_get_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0d57f4c	pci_disable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0db0f12	run_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xd0f4d3b2	alarm_forward_now
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1264be8	lwtunnel_output
+EXPORT_SYMBOL_GPL	 vmlinux 0xd12c2fe4	debugfs_create_u32_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd13ce367	tpm_pm_resume
+EXPORT_SYMBOL_GPL	 vmlinux 0xd159586c	net_prio_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15a7333	inet_csk_route_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xd15f91c1	pci_hp_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1688e0e	crypto_enqueue_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1901df7	user_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1b8461d	scsi_register_device_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1cbc23c	add_timer_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1f2eee2	nf_logger_find_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xd1fc0f1a	badblocks_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd205faf1	virtqueue_get_buf
+EXPORT_SYMBOL_GPL	 vmlinux 0xd20bf6ba	dcookie_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd21b61bd	async_schedule_node_domain
+EXPORT_SYMBOL_GPL	 vmlinux 0xd22ad588	simple_attr_write_signed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd26cebc6	wbt_enable_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xd29beabd	__root_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2b75bcb	__fib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c45714	crypto_grab_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2c8ae77	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd2e79416	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3243ae8	mpi_read_raw_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3473e0f	fuse_sync_release
+EXPORT_SYMBOL_GPL	 vmlinux 0xd39e9848	put_itimerspec64
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3a67805	bpf_trace_run6
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3ae7756	fw_fallback_config
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3cf769c	kobject_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3de2443	pingv6_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3efb072	alarm_try_to_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f72195	public_key_signature_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3f8f3f4	page_poisoning_enabled
+EXPORT_SYMBOL_GPL	 vmlinux 0xd3fe9826	device_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40924fb	serdev_device_set_parity
+EXPORT_SYMBOL_GPL	 vmlinux 0xd40b457f	pcie_update_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd41c3456	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48002cb	tty_port_tty_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4811244	scsi_dh_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xd48e0435	iomap_zero_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4942aa6	alloc_skb_for_msg
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4a59937	iommu_fwspec_add_ids
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4b5ad5c	kvm_io_bus_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4c14632	system_unbound_wq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd4edc983	gpiod_to_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5569b6c	rhashtable_walk_start_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xd55ad93b	iommu_group_get_iommudata
+EXPORT_SYMBOL_GPL	 vmlinux 0xd56558f2	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57238bf	find_symbol
+EXPORT_SYMBOL_GPL	 vmlinux 0xd57fe43a	dma_buf_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5a1e205	fuse_request_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad357f	__tracepoint_mc_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5ad7dca	scm_driver_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bb6af6	scm_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xd5c25469	udp4_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6142950	fscrypt_ioctl_get_key_status
+EXPORT_SYMBOL_GPL	 vmlinux 0xd62f21b4	param_ops_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xd633923d	devm_kmemdup
+EXPORT_SYMBOL_GPL	 vmlinux 0xd64ed259	__memcat_p
+EXPORT_SYMBOL_GPL	 vmlinux 0xd653b126	sched_clock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6667cab	platform_get_resource
+EXPORT_SYMBOL_GPL	 vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6872e0e	fsnotify_destroy_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xd69e384e	devm_hwrng_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6c13f39	__skb_tstamp_tx
+EXPORT_SYMBOL_GPL	 vmlinux 0xd6d26317	platform_device_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7007dcd	devm_kmalloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd706db10	pkcs7_validate_trust
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71937b6	__get_vm_area
+EXPORT_SYMBOL_GPL	 vmlinux 0xd71db2e4	ping_getfrag
+EXPORT_SYMBOL_GPL	 vmlinux 0xd72cf8f0	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7402a36	blkdev_ioctl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd748146c	blk_mq_unfreeze_queue
+EXPORT_SYMBOL_GPL	 vmlinux 0xd774957d	mpi_write_to_sgl
+EXPORT_SYMBOL_GPL	 vmlinux 0xd784b414	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL	 vmlinux 0xd787b6bb	get_dcookie
+EXPORT_SYMBOL_GPL	 vmlinux 0xd78918ea	ip_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xd79f9100	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7ba8838	cpu_subsys
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7d3bf86	devlink_trap_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7e131e9	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f420d5	bio_trim
+EXPORT_SYMBOL_GPL	 vmlinux 0xd7f6b10e	fsverity_ioctl_measure
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8152cdc	sysfs_create_bin_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd81de62c	ring_buffer_record_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd83d0155	fwnode_property_read_string
+EXPORT_SYMBOL_GPL	 vmlinux 0xd84d35bd	dax_read_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8594147	serdev_device_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xd892654e	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8b05f5e	tracing_snapshot_cond_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8c1f157	virtio_max_dma_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d04910	fuse_dev_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8d659d9	ip6_sk_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8e53dd7	ping_bind
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fb99b6	bus_remove_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xd8fbb14d	net_cls_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9071733	__wake_up_locked_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xd930c506	irq_create_direct_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xd93e4365	skb_zerocopy_iter_dgram
+EXPORT_SYMBOL_GPL	 vmlinux 0xd942d353	ring_buffer_record_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xd96babb4	interval_tree_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xd98c5c87	devlink_port_type_clear
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9b48947	fuse_dev_fiq_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9eafca1	tpm1_do_selftest
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9ecb670	ring_buffer_overruns
+EXPORT_SYMBOL_GPL	 vmlinux 0xd9fb773d	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xda16e10c	gpiochip_free_own_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xda3f3e8a	isc_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xda4cf29d	xfrm_state_afinfo_get_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xda5aca3e	iommu_map_sg
+EXPORT_SYMBOL_GPL	 vmlinux 0xda7dd513	devlink_health_reporter_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdab5a1eb	interval_tree_insert
+EXPORT_SYMBOL_GPL	 vmlinux 0xdac98bd9	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaeb78a8	crypto_unregister_alg
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaef602c	scsi_dh_set_params
+EXPORT_SYMBOL_GPL	 vmlinux 0xdaf4dfb3	fb_mode_option
+EXPORT_SYMBOL_GPL	 vmlinux 0xdafcdc3a	ktime_get_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2b073b	bpf_prog_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb2d8238	tcp_unregister_ulp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb3f6367	iommu_fwspec_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb42c441	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6129e2	fuse_dev_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb6bab57	__wake_up_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb87dfa5	devlink_dpipe_headers_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdb8a1b3f	usermodehelper_read_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xdba5a74a	gmap_shadow_valid
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbb793c5	iomap_bmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdf2d7f	fib4_rule_default
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbdf89fe	trace_event_buffer_lock_reserve
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf29726	__tracepoint_neigh_timer_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf351c3	irq_set_chip_and_handler_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xdbf7cb70	mpi_get_nbits
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc08b362	fwnode_property_read_u64_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc178957	serdev_device_write_wakeup
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc196359	nf_ct_hook
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc258938	list_lru_count_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc43d2a7	devm_add_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc46d69f	fwnode_property_read_string_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc5cecf8	lwtunnel_state_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc607a2d	gmap_shadow_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc6e371c	elv_rqhash_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc76b1f0	__pci_epc_mem_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xdc9fa232	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdcc0b2b8	__fsnotify_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xdccf4b7e	gpiod_set_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce2dfe9	user_free_preparse
+EXPORT_SYMBOL_GPL	 vmlinux 0xdce968b0	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd0762df	set_worker_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd13d972	software_node_fwnode
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd1d5f33	iomap_swapfile_activate
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2d267d	iomap_seek_hole
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391918	dm_set_target_max_io_len
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd391eff	profile_event_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd423682	gpiod_set_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd5e152f	gmap_disable
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd626ee3	fuse_len_args
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7a1563	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7ae051	pci_epf_create
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd7f0765	__tracepoint_powernv_throttle
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd8585d7	kernel_read_file_from_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd97dd8f	ipv4_update_pmtu
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9e7f0a	inet_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xdd9ea8a3	skcipher_walk_virt
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda4bd8c	exportfs_encode_inode_fh
+EXPORT_SYMBOL_GPL	 vmlinux 0xdda97848	mddev_suspend
+EXPORT_SYMBOL_GPL	 vmlinux 0xddad0aa4	crypto_stats_rng_generate
+EXPORT_SYMBOL_GPL	 vmlinux 0xddb79fa8	bdev_read_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xddbeeecc	pci_lock_rescan_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL	 vmlinux 0xde17cb19	posix_acl_default_xattr_handler
+EXPORT_SYMBOL_GPL	 vmlinux 0xde3a57e7	__online_page_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xde55f513	setup_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xde56f6c6	device_show_int
+EXPORT_SYMBOL_GPL	 vmlinux 0xde6f1851	TSS_checkhmac1
+EXPORT_SYMBOL_GPL	 vmlinux 0xde95f941	pci_epf_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xdea7fef0	blkg_prfill_rwstat
+EXPORT_SYMBOL_GPL	 vmlinux 0xdeb32765	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec41140	devm_gpiod_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xdec9c474	tcp_set_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xded04c9e	ping_err
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf0f75c6	eventfd_signal
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf14037f	srcu_batches_completed
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf1e31fe	xas_get_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf223247	__tracepoint_sched_overutilized_tp
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf234ab0	sbitmap_queue_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf2738bb	cpu_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf334ebe	tcp_leave_memory_pressure
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf360ea1	sock_zerocopy_put_abort
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf417859	dm_internal_resume_fast
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf457d02	crypto_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf5bfb0e	gpio_to_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf7b49bc	crypto_stats_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf84a31a	kvm_vcpu_read_guest_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xdf9208c0	alloc_workqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xdfbdf134	__devm_alloc_percpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe007de41	kallsyms_lookup_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe05e2f85	nexthop_free_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0715c00	__pci_hp_initialize
+EXPORT_SYMBOL_GPL	 vmlinux 0xe09cf310	call_switchdev_blocking_notifiers
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0a06dde	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0ba55ba	balloon_page_enqueue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0c7531f	pci_disable_ats
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0d36c44	balloon_page_dequeue
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0e2627b	__page_mapcount
+EXPORT_SYMBOL_GPL	 vmlinux 0xe0eff3ec	pci_epc_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe10d5d7a	__compat_only_sysfs_link_entry_to_kobj
+EXPORT_SYMBOL_GPL	 vmlinux 0xe11d9075	proc_create_net_single_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1223a67	__cpuhp_state_remove_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1259eb5	pci_user_write_config_word
+EXPORT_SYMBOL_GPL	 vmlinux 0xe14150f9	net_ns_type_operations
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1775ee7	dm_get_reserved_bio_based_ios
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1bf7284	devlink_sb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe1d68fbe	vfs_lock_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xe20f7ef0	fib6_get_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe21707f4	tcp_ca_get_key_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe233762a	input_event_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xe243b394	__ip6_local_out
+EXPORT_SYMBOL_GPL	 vmlinux 0xe24e601f	ip6_datagram_connect
+EXPORT_SYMBOL_GPL	 vmlinux 0xe26839b5	skcipher_walk_atomise
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2829f07	__cookie_v6_check
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2975ee7	nd_tbl
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2a28055	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b1933b	gpiod_get_raw_array_value
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2b3207a	unregister_switchdev_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d001d7	css_driver_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d37880	cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2d6ba52	crypto_ahash_walk_first
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e2ccc4	xdp_rxq_info_reg_mem_model
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2e56446	tty_buffer_space_avail
+EXPORT_SYMBOL_GPL	 vmlinux 0xe2fb2e28	ip_route_output_key_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe302568a	ip6_pol_route
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe307205a	bprintf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31b1aa7	devlink_reload_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31b8a99	sk_psock_msg_verdict
+EXPORT_SYMBOL_GPL	 vmlinux 0xe31e6dbc	devm_kfree
+EXPORT_SYMBOL_GPL	 vmlinux 0xe34b3eda	dm_send_uevents
+EXPORT_SYMBOL_GPL	 vmlinux 0xe35b433f	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3840e18	secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL	 vmlinux 0xe387f2dd	blkcipher_aead_walk_virt_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xe38aa9e8	__netdev_watchdog_up
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3a8688f	iommu_get_domain_for_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ac56a6	dm_post_suspending
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3b5275f	blk_mq_alloc_request_hctx
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3ce1d22	vfs_getxattr_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe3d60652	gpiochip_get_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe409c97a	fwnode_graph_get_remote_endpoint
+EXPORT_SYMBOL_GPL	 vmlinux 0xe40bb23e	devlink_health_reporter_priv
+EXPORT_SYMBOL_GPL	 vmlinux 0xe416cebd	tcp_bpf_sendmsg_redir
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4233013	pm_qos_update_request
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4736f1e	__blk_mq_debugfs_rq_show
+EXPORT_SYMBOL_GPL	 vmlinux 0xe47571bc	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xe476f4e0	kvm_vcpu_yield_to
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4874aef	__tracepoint_add_device_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe48a2553	platform_get_irq_byname
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4971ade	tracing_alloc_snapshot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4a5b3f4	__mmu_notifier_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4b064f9	pcie_link_speed
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4e7d412	__percpu_init_rwsem
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f34dc0	pci_restore_ats_state
+EXPORT_SYMBOL_GPL	 vmlinux 0xe4f48bbf	device_find_child_by_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5001804	vfs_submount
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5035a11	device_get_match_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe50b77c0	gpiod_get_index
+EXPORT_SYMBOL_GPL	 vmlinux 0xe51e0832	sock_inuse_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5224248	paste_selection
+EXPORT_SYMBOL_GPL	 vmlinux 0xe551e548	blk_add_driver_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe56b0e7c	dax_region_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe58e1237	elv_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b596a8	tty_buffer_set_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5b82a1e	trace_call_bpf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5dac837	dma_buf_vmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xe5e52bf8	dax_copy_to_iter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6075745	dma_buf_end_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xe60a5e8d	pids_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6195e31	__vfs_removexattr_locked
+EXPORT_SYMBOL_GPL	 vmlinux 0xe622c397	virtqueue_add_outbuf
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6270444	path_noexec
+EXPORT_SYMBOL_GPL	 vmlinux 0xe66361b7	cio_update_schib
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6762748	vtime_account_irq_enter
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68ba9c6	device_remove_file_self
+EXPORT_SYMBOL_GPL	 vmlinux 0xe68ca544	crypto_larval_kill
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a1cc4c	klist_iter_init_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6a2b843	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6b8f690	iommu_group_for_each_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6bdb768	fsnotify_add_mark
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e40502	rcu_get_gp_seq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe6e6525e	dev_set_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xe71ce08c	gpiod_get_array_value_cansleep
+EXPORT_SYMBOL_GPL	 vmlinux 0xe72e844b	__rht_bucket_nested
+EXPORT_SYMBOL_GPL	 vmlinux 0xe73df25c	crypto_alloc_shash
+EXPORT_SYMBOL_GPL	 vmlinux 0xe753b68d	devlink_fmsg_arr_pair_nest_end
+EXPORT_SYMBOL_GPL	 vmlinux 0xe769232e	sprint_symbol_no_offset
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783e261	sysfs_emit
+EXPORT_SYMBOL_GPL	 vmlinux 0xe783f29b	blk_queue_write_cache
+EXPORT_SYMBOL_GPL	 vmlinux 0xe78846d4	rtnl_get_net_ns_capable
+EXPORT_SYMBOL_GPL	 vmlinux 0xe79bf0c4	klp_shadow_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a0472c	__inet_inherit_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7a96217	appldata_unregister_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7b718df	chsc_determine_channel_path_desc
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7be4249	tty_port_default_client_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7d6d2d4	filter_match_preds
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7f22435	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL	 vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81a5991	xas_pause
+EXPORT_SYMBOL_GPL	 vmlinux 0xe81ddad6	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL	 vmlinux 0xe840a476	vfs_test_lock
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8410b7b	handle_fasteoi_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xe84cd1a1	gfn_to_memslot
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8522a1f	fuse_dev_alloc_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xe86a1fa3	css_sch_device_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xe886d08d	blk_mq_sched_free_hctx_data
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8b40f33	__tracepoint_remove_device_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8d79b25	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL	 vmlinux 0xe8f5ced0	crypto_ahash_final
+EXPORT_SYMBOL_GPL	 vmlinux 0xe911df29	eventfd_ctx_do_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93b650d	crypto_aead_setkey
+EXPORT_SYMBOL_GPL	 vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xe978cdf5	sbitmap_prepare_to_wait
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9d2a18a	skb_zerocopy
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9df5dde	gpiochip_add_data_with_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9e1b2a7	devprop_gpiochip_set_names
+EXPORT_SYMBOL_GPL	 vmlinux 0xe9f7f8d4	skcipher_walk_aead_decrypt
+EXPORT_SYMBOL_GPL	 vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL	 vmlinux 0xea2d04a0	dm_remap_zone_report
+EXPORT_SYMBOL_GPL	 vmlinux 0xead77419	vbin_printf
+EXPORT_SYMBOL_GPL	 vmlinux 0xeae0f496	clean_acked_data_flush
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3240ed	sched_setscheduler
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb3cda21	crypto_register_scomps
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb445849	tpm_unseal_trusted
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb8b1501	blkg_print_stat_ios_recursive
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb907eeb	__irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb95f856	do_truncate
+EXPORT_SYMBOL_GPL	 vmlinux 0xeb9a8a3e	bpf_prog_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xebbaca36	xdp_attachment_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xebc4eb49	component_bind_all
+EXPORT_SYMBOL_GPL	 vmlinux 0xebd5e6ce	blk_set_queue_dying
+EXPORT_SYMBOL_GPL	 vmlinux 0xec0a8c2d	dma_buf_begin_cpu_access
+EXPORT_SYMBOL_GPL	 vmlinux 0xec13c83c	si_swapinfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xec1831ee	md_kick_rdev_from_array
+EXPORT_SYMBOL_GPL	 vmlinux 0xec474d4f	follow_pte
+EXPORT_SYMBOL_GPL	 vmlinux 0xec660cd3	__tracepoint_fib6_table_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xec6d19fd	mark_page_dirty
+EXPORT_SYMBOL_GPL	 vmlinux 0xecb471be	pci_generic_config_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xecd40461	relay_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xecdcac66	ahash_register_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xece597f5	disk_part_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xececead3	inet_hashinfo_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xed0525c7	skb_morph
+EXPORT_SYMBOL_GPL	 vmlinux 0xed2243af	ftrace_set_notrace
+EXPORT_SYMBOL_GPL	 vmlinux 0xed247db2	kthread_queue_work
+EXPORT_SYMBOL_GPL	 vmlinux 0xed48a163	__zpci_store_block
+EXPORT_SYMBOL_GPL	 vmlinux 0xed5feb76	device_find_child
+EXPORT_SYMBOL_GPL	 vmlinux 0xed650be0	crypto_alg_extsize
+EXPORT_SYMBOL_GPL	 vmlinux 0xed79227d	hvc_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xed814ec1	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xeda0afdf	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL	 vmlinux 0xedcdb4d9	transport_setup_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xedf55abb	zs_malloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xee1e1609	s390_pci_dma_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xee309e57	crypto_alloc_aead
+EXPORT_SYMBOL_GPL	 vmlinux 0xee38ef57	register_switchdev_blocking_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xee5f06d5	devm_hwrng_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xee6c633a	devices_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xee7d0f10	rhashtable_walk_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xee8cbe60	crypto_lookup_template
+EXPORT_SYMBOL_GPL	 vmlinux 0xee96bbde	subsys_dev_iter_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xeea6dc5a	shmem_file_setup
+EXPORT_SYMBOL_GPL	 vmlinux 0xeec3c0d4	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL	 vmlinux 0xeed1388c	__platform_register_drivers
+EXPORT_SYMBOL_GPL	 vmlinux 0xeedfcec3	task_work_run
+EXPORT_SYMBOL_GPL	 vmlinux 0xeee462bc	bio_alloc_mddev
+EXPORT_SYMBOL_GPL	 vmlinux 0xef02e366	devm_ioremap_uc
+EXPORT_SYMBOL_GPL	 vmlinux 0xef13106c	nr_threads
+EXPORT_SYMBOL_GPL	 vmlinux 0xef464c28	getboottime64
+EXPORT_SYMBOL_GPL	 vmlinux 0xef67866a	bpf_prog_select_runtime
+EXPORT_SYMBOL_GPL	 vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa2c27d	register_tracepoint_module_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xefa564b5	skb_zerocopy_headlen
+EXPORT_SYMBOL_GPL	 vmlinux 0xefaf4024	fuse_fill_super_common
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb77834	md_allow_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xefb93934	__devm_irq_alloc_descs
+EXPORT_SYMBOL_GPL	 vmlinux 0xefbb2133	ping_recvmsg
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc8ab71	bio_disassociate_blkg
+EXPORT_SYMBOL_GPL	 vmlinux 0xefc9382e	md_new_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xefd316c7	devlink_traps_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xefe43f78	debugfs_file_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xf000abf6	alarm_cancel
+EXPORT_SYMBOL_GPL	 vmlinux 0xf00d8213	pm_qos_request_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf012147c	mnt_want_write_file
+EXPORT_SYMBOL_GPL	 vmlinux 0xf071913d	set_online_page_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0a6f724	rdev_set_badblocks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0af0e23	public_key_subtype
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0b9e880	__pci_hp_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0c557b7	iommu_present
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f60e80	nexthop_for_each_fib6_nh
+EXPORT_SYMBOL_GPL	 vmlinux 0xf0f637d3	pcie_port_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf103a52f	pci_epc_stop
+EXPORT_SYMBOL_GPL	 vmlinux 0xf117de52	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL	 vmlinux 0xf11dc0a6	__bio_try_merge_page
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1361941	pci_vpd_find_tag
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1601f00	cmf_readall
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1725638	arch_make_page_accessible
+EXPORT_SYMBOL_GPL	 vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL	 vmlinux 0xf18ba31a	kset_create_and_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf19ee14f	skb_to_sgvec_nomark
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c58315	nl_table
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1c7b03b	devm_free_pages
+EXPORT_SYMBOL_GPL	 vmlinux 0xf1e7f687	crypto_get_default_null_skcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf208c81e	handle_level_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1a72	iommu_domain_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf21e1f9b	disable_percpu_irq
+EXPORT_SYMBOL_GPL	 vmlinux 0xf260e1f2	pci_walk_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf285bf44	inode_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2875d68	probe_kernel_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf288b368	ip6_route_output_flags_noref
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2b33cb7	memory_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2c50c20	device_remove_properties
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2d7331a	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf2de8401	xfrm_local_error
+EXPORT_SYMBOL_GPL	 vmlinux 0xf30906fc	rt_mutex_trylock
+EXPORT_SYMBOL_GPL	 vmlinux 0xf309fc0f	crypto_register_akcipher
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3119bf6	sysfs_create_link_nowarn
+EXPORT_SYMBOL_GPL	 vmlinux 0xf311e156	key_being_used_for
+EXPORT_SYMBOL_GPL	 vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3245c2f	cpci_hp_register_bus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf352023f	memory_cgrp_subsys_enabled_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3808cb1	get_state_synchronize_rcu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf3db9097	xdp_do_generic_redirect
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4607e29	sk_psock_tls_strp_read
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4776668	trace_seq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf47b80b3	posix_clock_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xf480d9e9	sock_diag_unregister_inet_compat
+EXPORT_SYMBOL_GPL	 vmlinux 0xf484a3ca	d_exchange
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4abe665	kvm_read_guest
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4aeb0f4	sock_diag_put_meminfo
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4af35c2	rcu_gp_is_normal
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b48b31	dm_get_md
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4b66301	debugfs_lookup_and_remove
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4cd5173	device_match_any
+EXPORT_SYMBOL_GPL	 vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL	 vmlinux 0xf54e6c6e	crypto_init_spawn2
+EXPORT_SYMBOL_GPL	 vmlinux 0xf568bc71	__atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf58e97cb	pci_common_swizzle
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5ba3177	devm_kstrdup_const
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5c3c6ed	fuse_dev_install
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5d7eb5a	register_ftrace_export
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5f370e0	async_schedule_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5fdaac9	register_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf5ff7705	platform_get_irq_byname_optional
+EXPORT_SYMBOL_GPL	 vmlinux 0xf62216ba	dax_writeback_mapping_range
+EXPORT_SYMBOL_GPL	 vmlinux 0xf644687d	perf_pmu_unregister
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6449ec8	kmsg_dump_rewind
+EXPORT_SYMBOL_GPL	 vmlinux 0xf65461f8	lwtunnel_valid_encap_type_attr
+EXPORT_SYMBOL_GPL	 vmlinux 0xf657be8f	__iowrite32_copy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf66a6912	kill_pid_usb_asyncio
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6a3cde8	pci_epc_mem_exit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6c8dc62	cpu_hotplug_enable
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6df4440	mddev_congested
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f0f0c6	pci_enable_rom
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6f16c56	rcu_barrier_tasks
+EXPORT_SYMBOL_GPL	 vmlinux 0xf6fb6b3f	serdev_device_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7455c16	input_event_to_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xf749debc	md5_zero_message_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74bb274	mod_delayed_work_on
+EXPORT_SYMBOL_GPL	 vmlinux 0xf74e7c93	jump_label_rate_limit
+EXPORT_SYMBOL_GPL	 vmlinux 0xf76e735d	param_set_bool_enable_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7bc95b0	devlink_fmsg_pair_nest_start
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e5bf87	dm_path_uevent
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7e8b288	klist_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf7ea3ff0	fwnode_create_software_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xf80a3284	transport_remove_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf81a5663	__fscrypt_prepare_rename
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82cceb3	pci_sriov_get_totalvfs
+EXPORT_SYMBOL_GPL	 vmlinux 0xf82f3657	work_on_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xf835d586	property_entries_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xf855ccce	__zpci_store
+EXPORT_SYMBOL_GPL	 vmlinux 0xf880cf6b	sk_psock_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xf898e1f2	subsys_dev_iter_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf89e985d	vfs_write
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8a12fd3	kvm_init
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8be840b	hrtimer_active
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c8f477	tpm2_probe
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8c9e029	sysfs_remove_link_from_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8df7b4a	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL	 vmlinux 0xf8dfeda2	fuse_file_poll
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91206ee	iommu_attach_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9132abe	tty_set_termios
+EXPORT_SYMBOL_GPL	 vmlinux 0xf91ab2ed	__tracepoint_arm_event
+EXPORT_SYMBOL_GPL	 vmlinux 0xf922ae78	__udp6_lib_lookup
+EXPORT_SYMBOL_GPL	 vmlinux 0xf932015f	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL	 vmlinux 0xf94e700c	list_lru_walk_one
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9527942	device_release_driver
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95322f4	kthread_parkme
+EXPORT_SYMBOL_GPL	 vmlinux 0xf95d92a6	iommu_domain_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xf96d7448	serdev_controller_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9992a34	mmu_notifier_range_update_to_read_only
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a0021f	__xas_next
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a054b5	__round_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a37dd1	sched_trace_cfs_rq_path
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9a626ef	__devm_create_dev_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9ab0749	__fput_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9bb51dc	lwtunnel_input
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9c7fe5f	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL	 vmlinux 0xf9f06404	sk_msg_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa088ce2	driver_find_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa343e7b	fwnode_graph_get_remote_port_parent
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa56f7a9	gmap_shadow
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa59e3d6	__cpuhp_state_add_instance
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa600a92	housekeeping_test_cpu
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa666974	queue_work_node
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa690589	netdev_cmd_to_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa7532f7	trace_output_call
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa785450	__flow_indr_block_cb_register
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa85e8f8	ping_hash
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa901b31	compat_get_timespec
+EXPORT_SYMBOL_GPL	 vmlinux 0xfa923d5a	pci_find_ht_capability
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa0199b	aead_exit_geniv
+EXPORT_SYMBOL_GPL	 vmlinux 0xfaa7f247	sk_msg_free_partial
+EXPORT_SYMBOL_GPL	 vmlinux 0xfab7e4a8	inet_csk_get_port
+EXPORT_SYMBOL_GPL	 vmlinux 0xfad9c827	kill_dax
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb00f4ec	bpf_trace_run10
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb5e2999	iptunnel_handle_offloads
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb60aea9	tty_set_ldisc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfb7ac2c0	trace_array_destroy
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbbd41ca	no_action
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc5cec4	kvm_io_bus_get_dev
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbc67d1e	gpiod_get_direction
+EXPORT_SYMBOL_GPL	 vmlinux 0xfbffd601	net_prio_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc03d97a	page_is_ram
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc14bb2e	dm_get_dev_t
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc19bc45	crypto_dh_encode_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc70c5d8	ring_buffer_consume
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc7eaf0d	device_link_add
+EXPORT_SYMBOL_GPL	 vmlinux 0xfc8db919	mutex_lock_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcb17b8f	iommu_sva_unbind_device
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcc1edd3	memory_block_size_bytes
+EXPORT_SYMBOL_GPL	 vmlinux 0xfceeba4e	freq_qos_remove_notifier
+EXPORT_SYMBOL_GPL	 vmlinux 0xfcfbaafe	gpiochip_irq_unmap
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd234fb0	fuse_do_open
+EXPORT_SYMBOL_GPL	 vmlinux 0xfd2a481e	lzorle1x_1_compress
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdaaa217	bsg_job_get
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdba0851	serdev_device_close
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbad1f0	tpm_chip_alloc
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd1de6	fsverity_cleanup_inode
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdbd7a17	crypto_get_attr_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdd8e304	fuse_direct_io
+EXPORT_SYMBOL_GPL	 vmlinux 0xfddef21e	skb_mpls_push
+EXPORT_SYMBOL_GPL	 vmlinux 0xfde7d0b3	sysfs_remove_file_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf21a1b	kvm_arch_crypto_set_masks
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf42395	sock_zerocopy_put
+EXPORT_SYMBOL_GPL	 vmlinux 0xfdf637af	dm_table_device_name
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe1d130b	evm_verifyxattr
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe290f95	ping_init_sock
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe31c6a4	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe391806	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe3b11eb	tcp_orphan_count
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe476039	ktime_get_resolution_ns
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe5cd9e6	sysfs_add_link_to_group
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe69325f	percpu_ref_resurrect
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe71713f	bpf_map_inc_not_zero
+EXPORT_SYMBOL_GPL	 vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL	 vmlinux 0xfeda5d55	pcie_port_bus_type
+EXPORT_SYMBOL_GPL	 vmlinux 0xfefa2adb	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL	 vmlinux 0xff05fa13	vring_interrupt
+EXPORT_SYMBOL_GPL	 vmlinux 0xff13d8c6	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL	 vmlinux 0xff403774	region_intersects
+EXPORT_SYMBOL_GPL	 vmlinux 0xff45e0f7	irq_create_fwspec_mapping
+EXPORT_SYMBOL_GPL	 vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL	 vmlinux 0xff67ac8a	crypto_grab_spawn
+EXPORT_SYMBOL_GPL	 vmlinux 0xff6f7f3d	disable_kprobe
+EXPORT_SYMBOL_GPL	 vmlinux 0xff786e6e	fib_nl_newrule
+EXPORT_SYMBOL_GPL	 vmlinux 0xff83cafe	ip_valid_fib_dump_req
+EXPORT_SYMBOL_GPL	 vmlinux 0xff9e23d1	hugetlb_cgrp_subsys_on_dfl_key
+EXPORT_SYMBOL_GPL	 vmlinux 0xffae8e8b	nsecs_to_jiffies
+EXPORT_SYMBOL_GPL	 vmlinux 0xffc622b3	security_inode_mkdir
+EXPORT_SYMBOL_GPL	 vmlinux 0xffcdc4a9	tod_clock_base
+EXPORT_SYMBOL_GPL	 vmlinux 0xffe493c4	pci_epc_get
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/s390x/generic.compiler
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/s390x/generic.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/s390x/generic.modules
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/s390x/generic.modules
@@ -0,0 +1,961 @@
+8021q
+842
+842_compress
+842_decompress
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+act_bpf
+act_connmark
+act_csum
+act_ct
+act_ctinfo
+act_gact
+act_ipt
+act_mirred
+act_mpls
+act_nat
+act_pedit
+act_police
+act_sample
+act_simple
+act_skbedit
+act_skbmod
+act_tunnel_key
+act_vlan
+adiantum
+adin
+aegis128
+aes_s390
+aes_ti
+af_alg
+af_iucv
+af_key
+af_packet_diag
+ah4
+ah6
+algif_aead
+algif_hash
+algif_rng
+algif_skcipher
+altera-cvp
+altera-pr-ip-core
+amd
+ansi_cprng
+anubis
+appldata_mem
+appldata_net_sum
+appldata_os
+aquantia
+arc4
+arp_tables
+arpt_mangle
+arptable_filter
+asym_tpm
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at803x
+aufs
+auth_rpcgss
+authenc
+authencesn
+bcache
+bcm-phy-lib
+bcm7xxx
+bcm87xx
+bfq
+binfmt_misc
+blocklayoutdriver
+blowfish_common
+blowfish_generic
+bochs-drm
+bonding
+bpfilter
+br_netfilter
+brd
+bridge
+broadcom
+btrfs
+cachefiles
+camellia_generic
+cast5_generic
+cast6_generic
+cast_common
+ccm
+ccwgroup
+ceph
+cfb
+cfbcopyarea
+cfbfillrect
+cfbimgblt
+ch
+chacha20poly1305
+chacha_generic
+chsc_sch
+cicada
+cifs
+cls_basic
+cls_bpf
+cls_cgroup
+cls_flow
+cls_flower
+cls_fw
+cls_matchall
+cls_route
+cls_u32
+cmac
+coda
+cordic
+cortina
+crc-itu-t
+crc32-vx_s390
+crc32_generic
+crc4
+crc64
+crc7
+crc8
+cryptd
+crypto_engine
+crypto_user
+ctcm
+cuse
+dasd_diag_mod
+dasd_eckd_mod
+dasd_fba_mod
+dasd_mod
+davicom
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dcssblk
+deflate
+des_generic
+des_s390
+device_dax
+diag
+diag288_wdt
+dlm
+dm-bio-prison
+dm-bufio
+dm-cache
+dm-cache-smq
+dm-clone
+dm-crypt
+dm-delay
+dm-era
+dm-flakey
+dm-integrity
+dm-log
+dm-log-userspace
+dm-log-writes
+dm-mirror
+dm-multipath
+dm-persistent-data
+dm-queue-length
+dm-raid
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dm-switch
+dm-thin-pool
+dm-unstripe
+dm-verity
+dm-writecache
+dm-zero
+dm-zoned
+dp83640
+dp83822
+dp83848
+dp83867
+dp83tc811
+dpt_i2o
+drbd
+drm
+drm_kms_helper
+drm_panel_orientation_quirks
+drm_vram_helper
+dummy
+dummy_stm
+dwc-xlgmac
+eadm_sch
+ebt_802_3
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_vlan
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ecc
+ecdh_generic
+echainiv
+ecrdsa_generic
+em_cmp
+em_ipset
+em_ipt
+em_meta
+em_nbyte
+em_text
+em_u32
+eql
+erofs
+esp4
+esp4_offload
+esp6
+esp6_offload
+essiv
+et1011c
+failover
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fixed_phy
+fou
+fou6
+fpga-mgr
+fs3270
+fscache
+fsm
+garp
+geneve
+genwqe_card
+gfs2
+ghash_s390
+gpio-bt8xx
+gpio-generic
+gpio-pci-idio-16
+gpio-pcie-idio-24
+gpio-rdc321x
+grace
+gre
+gtp
+hangcheck-timer
+hmcdrv
+i2c-algo-bit
+i2c-core
+i2c-dev
+i2c-mux
+i2c-stub
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_isert
+ib_mthca
+ib_srp
+ib_srpt
+ib_umad
+ib_uverbs
+icp
+icplus
+ifb
+ife
+ila
+inet_diag
+intel-xway
+intel_th
+intel_th_gth
+intel_th_msu
+intel_th_msu_sink
+intel_th_pci
+intel_th_pti
+intel_th_sth
+ip6_gre
+ip6_tables
+ip6_tunnel
+ip6_udp_tunnel
+ip6_vti
+ip6t_NPT
+ip6t_REJECT
+ip6t_SYNPROXY
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_mh
+ip6t_rpfilter
+ip6t_rt
+ip6t_srh
+ip6table_filter
+ip6table_mangle
+ip6table_nat
+ip6table_raw
+ip6table_security
+ip_gre
+ip_set
+ip_set_bitmap_ip
+ip_set_bitmap_ipmac
+ip_set_bitmap_port
+ip_set_hash_ip
+ip_set_hash_ipmac
+ip_set_hash_ipmark
+ip_set_hash_ipport
+ip_set_hash_ipportip
+ip_set_hash_ipportnet
+ip_set_hash_mac
+ip_set_hash_net
+ip_set_hash_netiface
+ip_set_hash_netnet
+ip_set_hash_netport
+ip_set_hash_netportnet
+ip_set_list_set
+ip_tables
+ip_tunnel
+ip_vs
+ip_vs_dh
+ip_vs_fo
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_mh
+ip_vs_nq
+ip_vs_ovf
+ip_vs_pe_sip
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ip_vti
+ipcomp
+ipcomp6
+ipip
+ipt_CLUSTERIP
+ipt_ECN
+ipt_REJECT
+ipt_SYNPROXY
+ipt_ah
+ipt_rpfilter
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+iptable_security
+ipvlan
+ipvtap
+irqbypass
+iscsi_boot_sysfs
+iscsi_target_mod
+iscsi_tcp
+ism
+isofs
+iw_cm
+kafs
+kcm
+keywrap
+khazad
+kheaders
+kmem
+kyber-iosched
+l2tp_core
+l2tp_debugfs
+l2tp_eth
+l2tp_ip
+l2tp_ip6
+l2tp_netlink
+lcs
+libarc4
+libceph
+libcrc32c
+libdes
+libfc
+libfcoe
+libiscsi
+libiscsi_tcp
+libphy
+libsas
+linear
+llc
+lockd
+lru_cache
+lrw
+lxt
+lz4
+lz4_compress
+lz4hc
+lz4hc_compress
+mac-celtic
+mac-centeuro
+mac-croatian
+mac-cyrillic
+mac-gaelic
+mac-greek
+mac-iceland
+mac-inuit
+mac-roman
+mac-romanian
+mac-turkish
+macsec
+macvlan
+macvtap
+marvell
+marvell10g
+md-cluster
+md4
+mdev
+memory-notifier-error-inject
+mena21_wdt
+mfd-core
+michael_mic
+micrel
+microchip
+microchip_t1
+mip6
+mlx4_core
+mlx4_en
+mlx4_ib
+mlx5_core
+mlx5_ib
+mlxfw
+mlxsw_core
+mlxsw_pci
+mlxsw_spectrum
+mlxsw_switchib
+mlxsw_switchx2
+monreader
+monwriter
+mpls_gso
+mpls_iptunnel
+mpls_router
+mpt3sas
+mrp
+mscc
+msdos
+national
+nb8800
+nbd
+net_failover
+netconsole
+netdevsim
+netiucv
+netlink_diag
+nf_conncount
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_bridge
+nf_conntrack_broadcast
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_snmp
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_defrag_ipv6
+nf_dup_ipv4
+nf_dup_ipv6
+nf_dup_netdev
+nf_flow_table
+nf_flow_table_inet
+nf_flow_table_ipv4
+nf_flow_table_ipv6
+nf_log_arp
+nf_log_bridge
+nf_log_common
+nf_log_ipv4
+nf_log_ipv6
+nf_log_netdev
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nf_reject_ipv4
+nf_reject_ipv6
+nf_socket_ipv4
+nf_socket_ipv6
+nf_synproxy_core
+nf_tables
+nf_tables_set
+nf_tproxy_ipv4
+nf_tproxy_ipv6
+nfnetlink
+nfnetlink_acct
+nfnetlink_cthelper
+nfnetlink_cttimeout
+nfnetlink_log
+nfnetlink_osf
+nfnetlink_queue
+nfs
+nfs_acl
+nfs_layout_flexfiles
+nfs_layout_nfsv41_files
+nfsd
+nfsv2
+nfsv3
+nfsv4
+nft_chain_nat
+nft_compat
+nft_connlimit
+nft_counter
+nft_ct
+nft_dup_ipv4
+nft_dup_ipv6
+nft_dup_netdev
+nft_fib
+nft_fib_inet
+nft_fib_ipv4
+nft_fib_ipv6
+nft_fib_netdev
+nft_flow_offload
+nft_fwd_netdev
+nft_hash
+nft_limit
+nft_log
+nft_masq
+nft_meta_bridge
+nft_nat
+nft_numgen
+nft_objref
+nft_osf
+nft_queue
+nft_quota
+nft_redir
+nft_reject
+nft_reject_bridge
+nft_reject_inet
+nft_reject_ipv4
+nft_reject_ipv6
+nft_socket
+nft_synproxy
+nft_tproxy
+nft_tunnel
+nft_xfrm
+nhpoly1305
+nilfs2
+nlmon
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+notifier-error-inject
+nsh
+ntfs
+null_blk
+nvme
+nvme-core
+nvme-fabrics
+nvme-fc
+nvme-loop
+nvme-rdma
+nvme-tcp
+nvmet
+nvmet-fc
+nvmet-rdma
+nvmet-tcp
+objagg
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ocfs2_stackglue
+ofb
+openvswitch
+oprofile
+orangefs
+overlay
+p8022
+paes_s390
+parman
+pcbc
+pci-pf-stub
+pci-stub
+pcrypt
+pkcs7_test_key
+pkcs8_key_parser
+pkey
+pktgen
+pnet
+poly1305_generic
+pps_core
+pretimeout_panic
+prng
+psample
+psnap
+ptp
+qdio
+qeth
+qeth_l2
+qeth_l3
+qsemi
+quota_tree
+quota_v1
+quota_v2
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid_class
+raw_diag
+rbd
+rcuperf
+rdc321x-southbridge
+rdma_cm
+rdma_rxe
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+realtek
+rmd128
+rmd160
+rmd256
+rmd320
+rockchip
+rpcrdma
+rpcsec_gss_krb5
+rxrpc
+s390-trng
+salsa20_generic
+sch_cake
+sch_cbq
+sch_cbs
+sch_choke
+sch_codel
+sch_drr
+sch_dsmark
+sch_etf
+sch_fq
+sch_fq_codel
+sch_gred
+sch_hfsc
+sch_hhf
+sch_htb
+sch_ingress
+sch_mqprio
+sch_multiq
+sch_netem
+sch_pie
+sch_plug
+sch_prio
+sch_qfq
+sch_red
+sch_sfb
+sch_sfq
+sch_skbprio
+sch_taprio
+sch_tbf
+sch_teql
+scm_block
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+sctp
+sctp_diag
+seed
+serial_core
+serpent_generic
+sha1_s390
+sha256_s390
+sha3_256_s390
+sha3_512_s390
+sha3_generic
+sha512_s390
+sha_common
+shiftfs
+siox-bus-gpio
+siox-core
+sit
+siw
+slicoss
+slim-qcom-ctrl
+slimbus
+sm3_generic
+sm4_generic
+smc
+smc_diag
+smsc
+smsgiucv_app
+softdog
+spl
+st
+st_drv
+ste10Xp
+stm_console
+stm_core
+stm_ftrace
+stm_heartbeat
+stm_p_basic
+stm_p_sys-t
+stp
+streebog_generic
+sunrpc
+switchtec
+syscopyarea
+sysfillrect
+sysimgblt
+tap
+tape
+tape_34xx
+tape_3590
+tape_class
+target_core_file
+target_core_iblock
+target_core_mod
+target_core_pscsi
+target_core_user
+tcm_fc
+tcm_loop
+tcp_bbr
+tcp_bic
+tcp_cdg
+tcp_dctcp
+tcp_diag
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_nv
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tea
+team
+team_mode_activebackup
+team_mode_broadcast
+team_mode_loadbalance
+team_mode_random
+team_mode_roundrobin
+teranetics
+test_blackhole_dev
+test_bpf
+tgr192
+tipc
+tls
+torture
+tpm_key_parser
+tpm_vtpm_proxy
+trace-printk
+ts_bm
+ts_fsm
+ts_kmp
+ttm
+ttynull
+tunnel4
+tunnel6
+twofish_common
+twofish_generic
+uPD60620
+uartlite
+udf
+udp_diag
+udp_tunnel
+uio
+unix_diag
+veth
+vfio
+vfio-pci
+vfio_ap
+vfio_ccw
+vfio_iommu_type1
+vfio_mdev
+vfio_virqfd
+vhost
+vhost_net
+vhost_scsi
+vhost_vsock
+virtio-gpu
+virtio-rng
+virtio_blk
+virtio_crypto
+virtio_input
+virtio_net
+virtio_scsi
+virtiofs
+vitesse
+vmac
+vmlogrdr
+vmur
+vmw_vsock_virtio_transport
+vmw_vsock_virtio_transport_common
+vport-geneve
+vport-gre
+vport-vxlan
+vrf
+vsock
+vsock_diag
+vsockmon
+vx855
+vxlan
+wireguard
+wp512
+x_tables
+xcbc
+xfrm4_tunnel
+xfrm6_tunnel
+xfrm_algo
+xfrm_interface
+xfrm_ipcomp
+xfrm_user
+xfs
+xilinx_gmii2rgmii
+xlnx_vcu
+xor
+xsk_diag
+xt_AUDIT
+xt_CHECKSUM
+xt_CLASSIFY
+xt_CONNSECMARK
+xt_CT
+xt_DSCP
+xt_HL
+xt_HMARK
+xt_IDLETIMER
+xt_LOG
+xt_MASQUERADE
+xt_NETMAP
+xt_NFLOG
+xt_NFQUEUE
+xt_RATEEST
+xt_REDIRECT
+xt_SECMARK
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_TEE
+xt_TPROXY
+xt_TRACE
+xt_addrtype
+xt_bpf
+xt_cgroup
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlabel
+xt_connlimit
+xt_connmark
+xt_conntrack
+xt_cpu
+xt_dccp
+xt_devgroup
+xt_dscp
+xt_ecn
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_ipcomp
+xt_iprange
+xt_ipvs
+xt_l2tp
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_nat
+xt_nfacct
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_realm
+xt_recent
+xt_sctp
+xt_set
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_tcpudp
+xt_time
+xt_u32
+xxhash_generic
+z3fold
+zavl
+zcommon
+zcrypt
+zcrypt_cex2a
+zcrypt_cex2c
+zcrypt_cex4
+zfcp
+zfs
+zlib_deflate
+zlua
+znvpair
+zram
+zstd
+zstd_compress
+zunicode
--- linux-ein-5.4.0.orig/debian.master/abi/5.4.0-169.187/s390x/generic.retpoline
+++ linux-ein-5.4.0/debian.master/abi/5.4.0-169.187/s390x/generic.retpoline
@@ -0,0 +1 @@
+# RETPOLINE NOT ENABLED
--- linux-ein-5.4.0.orig/debian.master/changelog
+++ linux-ein-5.4.0/debian.master/changelog
@@ -0,0 +1,39661 @@
+linux (5.4.0-171.189) focal; urgency=medium
+
+  * focal/linux: 5.4.0-171.189 -proposed tracker (LP: #2048282)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] remove helper scripts
+    - [Packaging] update annotations scripts
+    - debian/dkms-versions -- update from kernel-versions (main/2024.01.08)
+
+  * Page fault in RDMA ODP triggers BUG_ON during MMU notifier registration
+    (LP: #2046534)
+    - RDMA/odp: Ensure the mm is still alive before creating an implicit child
+
+  * Hotplugging SCSI disk in QEMU VM fails (LP: #2047382)
+    - Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
+
+  * CVE-2023-6040
+    - netfilter: nf_tables: Reject tables of unsupported family
+
+  * kernel_selftests failures on kernel-P10d-LPAR10.ppc64el.10
+    (LP: #2032641)
+    - selftests: Skip TM tests on synthetic TM implementations
+
+  * [Debian] autoreconstruct - Do not generate chmod -x for deleted  files
+    (LP: #2045562)
+    - [Debian] autoreconstruct - Do not generate chmod -x for deleted files
+
+  * CVE-2023-6931
+    - perf/core: Add a new read format to get a number of lost samples
+    - perf: Fix perf_event_validate_size()
+    - perf: Fix perf_event_validate_size() lockdep splat
+
+  * CVE-2023-6932
+    - ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
+
+  * CVE-2023-6606
+    - smb: client: fix OOB in smbCalcSize()
+
+  * CVE-2023-45863
+    - kobject: Fix slab-out-of-bounds in fill_kobj_path()
+
+  * Focal update: v5.4.259 upstream stable release (LP: #2043724)
+    - RDMA/cxgb4: Check skb value for failure to allocate
+    - lib/test_meminit: fix off-by-one error in test_pages()
+    - pwm: hibvt: Explicitly set .polarity in .get_state()
+    - HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect
+    - quota: Fix slow quotaoff
+    - net: prevent address rewrite in kernel_bind()
+    - drm: etvnaviv: fix bad backport leading to warning
+    - drm/msm/dsi: skip the wait for video mode done if not applicable
+    - ravb: Fix up dma_free_coherent() call in ravb_remove()
+    - ieee802154: ca8210: Fix a potential UAF in ca8210_probe
+    - mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type
+    - xen-netback: use default TX queue size for vifs
+    - drm/vmwgfx: fix typo of sizeof argument
+    - ixgbe: fix crash with empty VF macvlan list
+    - net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn()
+    - nfc: nci: assert requested protocol is valid
+    - workqueue: Override implicit ordered attribute in
+      workqueue_apply_unbound_cpumask()
+    - dmaengine: stm32-mdma: abort resume if no ongoing transfer
+    - usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer
+    - net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read
+    - usb: dwc3: Soft reset phy on probe for host
+    - usb: musb: Get the musb_qh poniter after musb_giveback
+    - usb: musb: Modify the "HWVers" register address
+    - iio: pressure: bmp280: Fix NULL pointer exception
+    - iio: pressure: dps310: Adjust Timeout Settings
+    - iio: pressure: ms5611: ms5611_prom_is_valid false negative bug
+    - mcb: remove is_added flag from mcb_device struct
+    - libceph: use kernel_connect()
+    - ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
+    - Input: powermate - fix use-after-free in powermate_config_complete
+    - Input: psmouse - fix fast_reconnect function for PS/2 mode
+    - Input: xpad - add PXN V900 support
+    - cgroup: Remove duplicates in cgroup v1 tasks file
+    - pinctrl: avoid unsafe code pattern in find_pinctrl()
+    - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
+    - usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call
+    - x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
+    - dmaengine: mediatek: Fix deadlock caused by synchronize_irq()
+    - powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
+    - powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
+    - ravb: Fix use-after-free issue in ravb_tx_timeout_work()
+    - Documentation: sysctl: align cells in second content column
+    - usb: hub: Guard against accesses to uninitialized BOS descriptors
+    - Bluetooth: hci_event: Ignore NULL link key
+    - Bluetooth: Reject connection with the device which has same BD_ADDR
+    - Bluetooth: Fix a refcnt underflow problem for hci_conn
+    - Bluetooth: vhci: Fix race when opening vhci device
+    - Bluetooth: hci_event: Fix coding style
+    - Bluetooth: avoid memcmp() out of bounds warning
+    - ice: fix over-shifted variable
+    - nfc: nci: fix possible NULL pointer dereference in send_acknowledge()
+    - regmap: fix NULL deref on lookup
+    - KVM: x86: Mask LVTPC when handling a PMI
+    - netfilter: nft_payload: fix wrong mac header matching
+    - qed: fix LL2 RX buffer allocation
+    - xfrm: fix a data-race in xfrm_gen_index()
+    - xfrm: interface: use DEV_STATS_INC()
+    - net: ipv4: fix return value check in esp_remove_trailer
+    - net: ipv6: fix return value check in esp_remove_trailer
+    - net: rfkill: gpio: prevent value glitch during probe
+    - tcp: fix excessive TLP and RACK timeouts from HZ rounding
+    - tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb
+    - tun: prevent negative ifindex
+    - ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr
+    - net: usb: smsc95xx: Fix an error code in smsc95xx_reset()
+    - i40e: prevent crash on probe if hw registers have invalid values
+    - net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve
+    - neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section
+    - netfilter: nft_set_rbtree: .deactivate fails if element has expired
+    - net: pktgen: Fix interface flags printing
+    - resource: Add irqresource_disabled()
+    - ACPI: Drop acpi_dev_irqresource_disabled()
+    - ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA
+    - ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks
+    - ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA
+    - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA
+    - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA
+    - ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone
+    - btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1
+    - btrfs: initialize start_slot in btrfs_log_prealloc_extents
+    - i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
+    - overlayfs: set ctime when setting mtime and atime
+    - gpio: timberdale: Fix potential deadlock on &tgpio->lock
+    - ata: libata-eh: Fix compilation warning in ata_eh_link_report()
+    - tracing: relax trace_event_eval_update() execution with cond_resched()
+    - HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
+    - Bluetooth: Avoid redundant authentication
+    - Bluetooth: hci_core: Fix build warnings
+    - wifi: mac80211: allow transmitting EAPOL frames with tainted key
+    - wifi: cfg80211: avoid leaking stack data into trace
+    - regulator/core: Revert "fix kobject release warning and memory leak in
+      regulator_register()"
+    - sky2: Make sure there is at least one frag_addr available
+    - drm: panel-orientation-quirks: Add quirk for One Mix 2S
+    - btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c
+    - HID: multitouch: Add required quirk for Synaptics 0xcd7e device
+    - Bluetooth: hci_event: Fix using memcmp when comparing keys
+    - mtd: rawnand: qcom: Unmap the right resource upon probe failure
+    - mtd: spinand: micron: correct bitmask for ecc status
+    - mtd: physmap-core: Restore map_rom fallback
+    - mmc: core: sdio: hold retuning if sdio in 1-bit mode
+    - mmc: core: Capture correct oemid-bits for eMMC cards
+    - Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
+    - ACPI: irq: Fix incorrect return value in acpi_register_gsi()
+    - USB: serial: option: add Telit LE910C4-WWX 0x1035 composition
+    - USB: serial: option: add entry for Sierra EM9191 with new firmware
+    - USB: serial: option: add Fibocom to DELL custom modem FM101R-GL
+    - s390/pci: fix iommu bitmap allocation
+    - gpio: vf610: set value before the direction to avoid a glitch
+    - ASoC: pxa: fix a memory leak in probe()
+    - phy: mapphone-mdm6600: Fix runtime disable on probe
+    - phy: mapphone-mdm6600: Fix runtime PM for remove
+    - phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
+    - Bluetooth: hci_sock: fix slab oob read in create_monitor_event
+    - Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name
+    - xfrm6: fix inet6_dev refcount underflow problem
+    - Linux 5.4.259
+
+  * Focal update: v5.4.258 upstream stable release (LP: #2042107)
+    - NFS/pNFS: Report EINVAL errors from connect() to the server
+    - SUNRPC: Mark the cred for revalidation if the server rejects it
+    - tracing: Increase trace array ref count on enable and filter files
+    - ata: libahci: clear pending interrupt status
+    - ext4: remove the 'group' parameter of ext4_trim_extent
+    - ext4: add new helper interface ext4_try_to_trim_range()
+    - ext4: scope ret locally in ext4_try_to_trim_range()
+    - ext4: change s_last_trim_minblks type to unsigned long
+    - ext4: mark group as trimmed only if it was fully scanned
+    - ext4: replace the traditional ternary conditional operator with with
+      max()/min()
+    - ext4: move setting of trimmed bit into ext4_try_to_trim_range()
+    - ext4: do not let fstrim block system suspend
+    - ASoC: meson: spdifin: start hw on dai probe
+    - netfilter: nf_tables: disallow element removal on anonymous sets
+    - bpf: Avoid deadlock when using queue and stack maps from NMI
+    - selftests/tls: Add {} to avoid static checker warning
+    - selftests: tls: swap the TX and RX sockets in some tests
+    - ASoC: imx-audmix: Fix return error with devm_clk_get()
+    - i40e: Fix for persistent lldp support
+    - SAUCE: Revert "UBUNTU: SAUCE: i40e Fix GPF when deleting VMs"
+    - i40e: Remove scheduling while atomic possibility
+    - i40e: Fix warning message and call stack during rmmod i40e driver
+    - i40e: Fix VF VLAN offloading when port VLAN is configured
+    - powerpc/perf/hv-24x7: Update domain value check
+    - dccp: fix dccp_v4_err()/dccp_v6_err() again
+    - net: hns3: add 5ms delay before clear firmware reset irq source
+    - net: bridge: use DEV_STATS_INC()
+    - team: fix null-ptr-deref when team device type is changed
+    - net: rds: Fix possible NULL-pointer dereference
+    - gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
+    - i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
+    - Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
+    - scsi: qla2xxx: Fix update_fcport for current_topology
+    - scsi: qla2xxx: Fix deletion race condition
+    - drm/amd/display: Reinstate LFC optimization
+    - drm/amd/display: Fix LFC multiplier changing erratically
+    - drm/amd/display: prevent potential division by zero errors
+    - ata: libata: disallow dev-initiated LPM transitions to unsupported states
+    - MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
+    - clk: tegra: fix error return case for recalc_rate
+    - ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
+    - bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
+    - xtensa: add default definition for XCHAL_HAVE_DIV32
+    - xtensa: iss/network: make functions static
+    - xtensa: boot: don't add include-dirs
+    - xtensa: boot/lib: fix function prototypes
+    - gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
+    - parisc: sba: Fix compile warning wrt list of SBA devices
+    - parisc: iosapic.c: Fix sparse warnings
+    - parisc: drivers: Fix sparse warning
+    - parisc: irq: Make irq_stack_union static to avoid sparse warning
+    - selftests/ftrace: Correctly enable event in instance-event.tc
+    - ring-buffer: Avoid softlockup in ring_buffer_resize()
+    - ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
+    - spi: nxp-fspi: reset the FLSHxCR1 registers
+    - bpf: Clarify error expectations from bpf_clone_redirect
+    - powerpc/watchpoints: Annotate atomic context in more places
+    - ncsi: Propagate carrier gain/loss events to the NCSI controller
+    - fbdev/sh7760fb: Depend on FB=y
+    - nvme-pci: do not set the NUMA node of device if it has none
+    - watchdog: iTCO_wdt: No need to stop the timer in probe
+    - watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
+    - i40e: improve locking of mac_filter_hash
+    - i40e: always propagate error value in i40e_set_vsi_promisc()
+    - i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc
+    - smack: Record transmuting in smk_transmuted
+    - smack: Retrieve transmuting information in smack_inode_getsecurity()
+    - Smack:- Use overlay inode label in smack_inode_copy_up()
+    - serial: 8250_port: Check IRQ data before use
+    - nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
+    - ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre
+      M70q
+    - ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
+    - i2c: i801: unregister tco_pdev in i801_probe() error path
+    - ring-buffer: Update "shortest_full" in polling
+    - btrfs: properly report 0 avail for very full file systems
+    - net: thunderbolt: Fix TCPv6 GSO checksum calculation
+    - ata: libata-core: Fix ata_port_request_pm() locking
+    - ata: libata-core: Fix port and device removal
+    - ata: libata-core: Do not register PM operations for SAS ports
+    - ata: libata-sata: increase PMP SRST timeout to 10s
+    - fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
+    - rbd: move rbd_dev_refresh() definition
+    - rbd: decouple header read-in from updating rbd_dev->header
+    - rbd: decouple parent info read-in from updating rbd_dev
+    - rbd: take header_rwsem in rbd_dev_refresh() only when updating
+    - Revert "PCI: qcom: Disable write access to read only registers for IP
+      v2.3.3"
+    - scsi: zfcp: Fix a double put in zfcp_port_enqueue()
+    - qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
+    - wifi: mwifiex: Fix tlv_buf_left calculation
+    - net: replace calls to sock->ops->connect() with kernel_connect()
+    - net: prevent rewrite of msg_name in sock_sendmsg()
+    - wifi: iwlwifi: dbg_ini: fix structure packing
+    - wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
+    - drivers/net: process the result of hdlc_open() and add call of hdlc_close()
+      in uhdlc_close()
+    - wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
+    - regmap: rbtree: Fix wrong register marked as in-cache when creating new node
+    - ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
+    - scsi: target: core: Fix deadlock due to recursive locking
+    - NFS4: Trace state recovery operation
+    - NFS: Add a helper nfs_client_for_each_server()
+    - NFSv4: Fix a nfs4_state_manager() race
+    - modpost: add missing else to the "of" check
+    - net: fix possible store tearing in neigh_periodic_work()
+    - ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
+    - net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
+    - net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
+    - net: nfc: llcp: Add lock when modifying device list
+    - netfilter: handle the connecting collision properly in
+      nf_conntrack_proto_sctp
+    - net: stmmac: dwmac-stm32: fix resume on STM32 MCU
+    - tcp: fix quick-ack counting to count actual ACKs of new data
+    - tcp: fix delayed ACKs for MSS boundary condition
+    - sctp: update transport state when processing a dupcook packet
+    - sctp: update hb timer immediately after users change hb_interval
+    - cpupower: add Makefile dependencies for install targets
+    - RDMA/core: Require admin capabilities to set system parameters
+    - IB/mlx4: Fix the size of a buffer in add_port_entries()
+    - gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
+    - gpio: pxa: disable pinctrl calls for MMP_GPIO
+    - RDMA/cma: Fix truncation compilation warning in make_cma_ports
+    - RDMA/uverbs: Fix typo of sizeof argument
+    - RDMA/siw: Fix connection failure handling
+    - RDMA/mlx5: Fix NULL string error
+    - parisc: Restore __ldcw_align for PA-RISC 2.0 processors
+    - NFS: Fix a race in __nfs_list_for_each_server()
+    - ima: rework CONFIG_IMA dependency block
+    - [Config] Update IMA_BLACKLIST_KEYRING and IMA_LOAD_X509
+    - xen/events: replace evtchn_rwlock with RCU
+    - Linux 5.4.258
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Fri, 05 Jan 2024 14:59:41 +0100
+
+linux (5.4.0-169.187) focal; urgency=medium
+
+  * focal/linux: 5.4.0-169.187 -proposed tracker (LP: #2044375)
+
+  * USB bus error after upgrading to proposed kernel on lunar, jammy and focal
+    (LP: #2043197)
+    - USB: core: Fix oversight in SuperSpeed initialization
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] update annotations scripts
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Thu, 23 Nov 2023 14:04:39 +0100
+
+linux (5.4.0-168.186) focal; urgency=medium
+
+  * focal/linux: 5.4.0-168.186 -proposed tracker (LP: #2041652)
+
+  * Focal update: v5.4.257 upstream stable release (LP: #2040284)
+    - erofs: ensure that the post-EOF tails are all zeroed
+    - ARM: pxa: remove use of symbol_get()
+    - mmc: au1xmmc: force non-modular build and remove symbol_get usage
+    - net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
+    - rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
+    - modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
+    - USB: serial: option: add Quectel EM05G variant (0x030e)
+    - USB: serial: option: add FOXCONN T99W368/T99W373 product
+    - HID: wacom: remove the battery when the EKR is off
+    - staging: rtl8712: fix race condition
+    - Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race
+      condition
+    - serial: sc16is7xx: fix bug when first setting GPIO direction
+    - firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
+    - fsi: master-ast-cf: Add MODULE_FIRMWARE macro
+    - nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
+    - nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
+    - pinctrl: amd: Don't show `Invalid config param` errors
+    - 9p: virtio: make sure 'offs' is initialized in zc_request
+    - ASoC: da7219: Flush pending AAD IRQ when suspending
+    - ASoC: da7219: Check for failure reading AAD IRQ events
+    - ethernet: atheros: fix return value check in atl1c_tso_csum()
+    - vxlan: generalize vxlan_parse_gpe_hdr and remove unused args
+    - m68k: Fix invalid .section syntax
+    - s390/dasd: use correct number of retries for ERP requests
+    - s390/dasd: fix hanging device after request requeue
+    - fs/nls: make load_nls() take a const parameter
+    - ASoc: codecs: ES8316: Fix DMIC config
+    - ASoC: atmel: Fix the 8K sample parameter in I2SC master
+    - platform/x86: intel: hid: Always call BTNL ACPI method
+    - platform/x86: huawei-wmi: Silence ambient light sensor
+    - security: keys: perform capable check only on privileged operations
+    - clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
+    - net: usb: qmi_wwan: add Quectel EM05GV2
+    - idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
+    - scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
+    - netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
+    - bnx2x: fix page fault following EEH recovery
+    - sctp: handle invalid error codes without calling BUG()
+    - cifs: add a warning when the in-flight count goes negative
+    - scsi: storvsc: Always set no_report_opcodes
+    - ALSA: seq: oss: Fix racy open/close of MIDI devices
+    - platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE
+      notifications
+    - powerpc/32s: Fix assembler warning about r0
+    - udf: Check consistency of Space Bitmap Descriptor
+    - udf: Handle error when adding extent to a file
+    - Revert "net: macsec: preserve ingress frame ordering"
+    - reiserfs: Check the return value from __getblk()
+    - eventfd: Export eventfd_ctx_do_read()
+    - eventfd: prevent underflow for eventfd semaphores
+    - new helper: lookup_positive_unlocked()
+    - fs: Fix error checking for d_hash_and_lookup()
+    - tmpfs: verify {g,u}id mount options correctly
+    - OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
+    - x86/asm: Make more symbols local
+    - x86/boot: Annotate local functions
+    - x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
+    - perf/imx_ddr: don't enable counter0 if none of 4 counters are used
+    - cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
+    - bpf: Clear the probe_addr for uprobe
+    - tcp: tcp_enter_quickack_mode() should be static
+    - regmap: rbtree: Use alloc_flags for memory allocations
+    - spi: tegra20-sflash: fix to check return value of platform_get_irq() in
+      tegra_sflash_probe()
+    - can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also
+      in case of OOM
+    - wifi: mwifiex: Fix OOB and integer underflow when rx packets
+    - mwifiex: switch from 'pci_' to 'dma_' API
+    - wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
+    - crypto: stm32 - Properly handle pm_runtime_get failing
+    - Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
+    - crypto: caam - fix unchecked return value error
+    - hwrng: iproc-rng200 - use semicolons rather than commas to separate
+      statements
+    - hwrng: iproc-rng200 - Implement suspend and resume calls
+    - lwt: Fix return values of BPF xmit ops
+    - lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
+    - fs: ocfs2: namei: check return value of ocfs2_add_entry()
+    - wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
+    - wifi: mwifiex: Fix missed return in oob checks failed path
+    - wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
+    - wifi: ath9k: protect WMI command response buffer replacement with a lock
+    - wifi: mwifiex: avoid possible NULL skb pointer dereference
+    - wifi: ath9k: use IS_ERR() with debugfs_create_dir()
+    - net: arcnet: Do not call kfree_skb() under local_irq_disable()
+    - mlxsw: i2c: Fix chunk size setting in output mailbox buffer
+    - mlxsw: i2c: Limit single transaction buffer size
+    - netrom: Deny concurrent connect().
+    - drm/bridge: tc358764: Fix debug print parameter order
+    - quota: avoid increasing DQST_LOOKUPS when iterating over dirty/inuse list
+    - quota: factor out dquot_write_dquot()
+    - quota: rename dquot_active() to inode_quota_active()
+    - quota: add new helper dquot_active()
+    - quota: fix dqput() to follow the guarantees dquot_srcu should provide
+    - drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
+    - ARM: dts: BCM53573: Drop nonexistent "default-off" LED trigger
+    - ARM: dts: BCM53573: Add cells sizes to PCIe node
+    - ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
+    - drm/etnaviv: fix dumping of active MMU context
+    - ARM: dts: s3c6410: move fixed clocks under root node in Mini6410
+    - ARM: dts: s3c6410: align node SROM bus node name with dtschema in Mini6410
+    - ARM: dts: s3c64xx: align pinctrl with dtschema
+    - ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
+    - ARM: dts: s5pv210: add RTC 32 KHz clock in SMDKV210
+    - ARM: dts: s5pv210: use defines for IRQ flags in SMDKV210
+    - ARM: dts: s5pv210: correct ethernet unit address in SMDKV210
+    - ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
+    - ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
+    - drm: adv7511: Fix low refresh rate register for ADV7533/5
+    - ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
+    - arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
+    - drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
+    - md/bitmap: don't set max_write_behind if there is no write mostly device
+    - md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
+    - drm/tegra: Remove superfluous error messages around platform_get_irq()
+    - drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
+    - of: unittest: fix null pointer dereferencing in
+      of_unittest_find_node_by_name()
+    - drm/armada: Fix off-by-one error in armada_overlay_get_property()
+    - drm/panel: simple: Add missing connector type and pixel format for AUO
+      T215HVN01
+    - ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
+    - [Config] Update annotations after CONFIG_IMA_TRUSTED_KEYRING removal
+    - drm/msm/mdp5: Don't leak some plane state
+    - smackfs: Prevent underflow in smk_set_cipso()
+    - audit: fix possible soft lockup in __audit_inode_child()
+    - drm/mediatek: Fix potential memory leak if vmap() fail
+    - of: unittest: Fix overlay type in apply/revert check
+    - ALSA: ac97: Fix possible error value of *rac97
+    - ipmi:ssif: Add check for kstrdup
+    - ipmi:ssif: Fix a memory leak when scanning for an adapter
+    - drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
+    - clk: sunxi-ng: Modify mismatched function name
+    - PCI: Mark NVIDIA T4 GPUs to avoid bus reset
+    - PCI: pciehp: Use RMW accessors for changing LNKCTL
+    - PCI/ASPM: Use RMW accessors for changing LNKCTL
+    - clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
+    - powerpc/fadump: reset dump area size if fadump memory reserve fails
+    - PCI: Add #defines for Enter Compliance, Transmit Margin
+    - drm/amdgpu: Correct Transmit Margin masks
+    - drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
+    - drm/amdgpu: Prefer pcie_capability_read_word()
+    - drm/amdgpu: Use RMW accessors for changing LNKCTL
+    - drm/radeon: Correct Transmit Margin masks
+    - drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
+    - drm/radeon: Prefer pcie_capability_read_word()
+    - drm/radeon: Use RMW accessors for changing LNKCTL
+    - wifi: ath10k: Use RMW accessors for changing LNKCTL
+    - nfs/blocklayout: Use the passed in gfp flags
+    - powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
+    - jfs: validate max amount of blocks before allocation.
+    - fs: lockd: avoid possible wrong NULL parameter
+    - NFSD: da_addr_body field missing in some GETDEVICEINFO replies
+    - NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
+    - media: v4l2-fwnode: fix v4l2_fwnode_parse_link handling
+    - media: v4l2-fwnode: simplify v4l2_fwnode_parse_link
+    - media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
+    - drivers: usb: smsusb: fix error handling code in smsusb_init_device
+    - media: dib7000p: Fix potential division by zero
+    - media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
+    - media: cx24120: Add retval check for cx24120_message_send()
+    - media: mediatek: vcodec: Return NULL if no vdec_fb is found
+    - usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
+    - scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
+    - scsi: be2iscsi: Add length check when parsing nlattrs
+    - scsi: qla4xxx: Add length check when parsing nlattrs
+    - serial: sprd: getting port index via serial aliases only
+    - serial: sprd: remove redundant sprd_port cleanup
+    - serial: sprd: Assign sprd_port after initialized to avoid wrong access
+    - serial: sprd: Fix DMA buffer leak issue
+    - x86/APM: drop the duplicate APM_MINOR_DEV macro
+    - scsi: qedf: Do not touch __user pointer in
+      qedf_dbg_stop_io_on_error_cmd_read() directly
+    - scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read()
+      directly
+    - scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read()
+      directly
+    - coresight: tmc: Explicit type conversions to prevent integer overflow
+    - dma-buf/sync_file: Fix docs syntax
+    - driver core: test_async: fix an error code
+    - IB/uverbs: Fix an potential error pointer dereference
+    - iommu/vt-d: Fix to flush cache of PASID directory table
+    - media: go7007: Remove redundant if statement
+    - USB: gadget: f_mass_storage: Fix unused variable warning
+    - media: i2c: ov5640: Configure HVP lines in s_power callback
+    - media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
+    - media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
+    - media: ov2680: Remove auto-gain and auto-exposure controls
+    - media: ov2680: Fix ov2680_bayer_order()
+    - media: ov2680: Fix vflip / hflip set functions
+    - media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
+    - scsi: core: Use 32-bit hostnum in scsi_host_lookup()
+    - scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
+    - serial: tegra: handle clk prepare error in tegra_uart_hw_init()
+    - amba: bus: fix refcount leak
+    - Revert "IB/isert: Fix incorrect release of isert connection"
+    - RDMA/siw: Balance the reference of cep->kref in the error path
+    - RDMA/siw: Correct wrong debug message
+    - HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
+    - HID: multitouch: Correct devm device reference for hidinput input_dev name
+    - x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
+    - tracing: Fix race issue between cpu buffer write and swap
+    - phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
+    - phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
+    - phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
+    - rpmsg: glink: Add check for kstrdup
+    - mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
+    - um: Fix hostaudio build errors
+    - dmaengine: ste_dma40: Add missing IRQ check in d40_probe
+    - cpufreq: Fix the race condition while updating the transition_task of policy
+    - virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
+    - skbuff: skb_segment, Call zero copy functions before using skbuff frags
+    - PM / devfreq: Fix leak in devfreq_dev_release()
+    - ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
+    - ipmi_si: fix a memleak in try_smi_init()
+    - ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
+    - backlight/gpio_backlight: Compare against struct fb_info.device
+    - backlight/bd6107: Compare against struct fb_info.device
+    - backlight/lv5207lp: Compare against struct fb_info.device
+    - xtensa: PMU: fix base address for the newer hardware
+    - media: dvb: symbol fixup for dvb_attach()
+    - ntb: Drop packets when qp link is down
+    - ntb: Clean up tx tail index on link down
+    - ntb: Fix calculation ntb_transport_tx_free_entry()
+    - Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
+    - procfs: block chmod on /proc/thread-self/comm
+    - parisc: Fix /proc/cpuinfo output for lscpu
+    - dlm: fix plock lookup when using multiple lockspaces
+    - dccp: Fix out of bounds access in DCCP error handler
+    - X.509: if signature is unsupported skip validation
+    - net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
+    - fsverity: skip PKCS#7 parser when keyring is empty
+    - pstore/ram: Check start of empty przs during init
+    - s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
+    - crypto: stm32 - fix loop iterating through scatterlist for DMA
+    - cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
+    - sc16is7xx: Set iobase to device index
+    - serial: sc16is7xx: fix broken port 0 uart init
+    - usb: typec: tcpci: clear the fault status bit
+    - udf: initialize newblock to 0
+    - drm: fix double free for gbo in drm_gem_vram_init and drm_gem_vram_create
+    - net/ipv6: SKB symmetric hash should incorporate transport ports
+    - scsi: qla2xxx: fix inconsistent TMF timeout
+    - scsi: qla2xxx: Fix erroneous link up failure
+    - scsi: qla2xxx: Turn off noisy message log
+    - scsi: qla2xxx: Remove unsupported ql2xenabledif option
+    - fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
+    - drm/ast: Fix DRAM init on AST2200
+    - lib/test_meminit: allocate pages up to order MAX_ORDER
+    - parisc: led: Fix LAN receive and transmit LEDs
+    - parisc: led: Reduce CPU overhead for disk & lan LED computation
+    - clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
+    - soc: qcom: qmi_encdec: Restrict string length in decode
+    - NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
+    - kconfig: fix possible buffer overflow
+    - perf annotate bpf: Don't enclose non-debug code with an assert()
+    - x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
+    - perf top: Don't pass an ERR_PTR() directly to perf_session__delete()
+    - watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
+    - pwm: lpc32xx: Remove handling of PWM channels
+    - sctp: annotate data-races around sk->sk_wmem_queued
+    - ipv4: annotate data-races around fi->fib_dead
+    - net: read sk->sk_family once in sk_mc_loop()
+    - igb: disable virtualization features on 82580
+    - veth: Fixing transmit return status for dropped packets
+    - net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
+    - af_unix: Fix data-races around user->unix_inflight.
+    - af_unix: Fix data-race around unix_tot_inflight.
+    - af_unix: Fix data-races around sk->sk_shutdown.
+    - af_unix: Fix data race around sk->sk_err.
+    - kcm: Destroy mutex in kcm_exit_net()
+    - igc: Change IGC_MIN to allow set rx/tx value between 64 and 80
+    - igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
+    - igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
+    - s390/zcrypt: don't leak memory if dev_set_name() fails
+    - idr: fix param name in idr_alloc_cyclic() doc
+    - ip_tunnels: use DEV_STATS_INC()
+    - net: hns3: fix the port information display when sfp is absent
+    - sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
+    - ata: sata_gemini: Add missing MODULE_DESCRIPTION
+    - ata: pata_ftide010: Add missing MODULE_DESCRIPTION
+    - fuse: nlookup missing decrement in fuse_direntplus_link
+    - btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
+    - btrfs: use the correct superblock to compare fsid in btrfs_validate_super
+    - mtd: rawnand: brcmnand: Fix crash during the panic_write
+    - mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
+    - mtd: rawnand: brcmnand: Fix potential false time out warning
+    - perf hists browser: Fix hierarchy mode header
+    - perf tools: Handle old data in PERF_RECORD_ATTR
+    - usb: typec: tcpm: Refactor tcpm_handle_vdm_request payload handling
+    - usb: typec: tcpm: Refactor tcpm_handle_vdm_request
+    - usb: typec: bus: verify partner exists in typec_altmode_attention
+    - ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2
+    - clk: imx8mm: Move 1443X/1416X PLL clock structure to common place
+    - net: ipv4: fix one memleak in __inet_del_ifa()
+    - net: ethernet: mvpp2_main: fix possible OOB write in
+      mvpp2_ethtool_get_rxnfc()
+    - net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in
+      mtk_hwlro_get_fdir_all()
+    - r8152: check budget for r8152_poll()
+    - kcm: Fix memory leak in error path of kcm_sendmsg()
+    - platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors
+    - mlxbf-tmfifo: sparse tags for config access
+    - platform/mellanox: mlxbf-tmfifo: Drop jumbo frames
+    - net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict()
+    - ixgbe: fix timestamp configuration code
+    - kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
+    - drm/amd/display: Fix a bug when searching for insert_above_mpcc
+    - parisc: Drop loops_per_jiffy from per_cpu struct
+    - autofs: fix memory leak of waitqueues in autofs_catatonic_mode
+    - btrfs: output extra debug info if we failed to find an inline backref
+    - locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
+    - ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
+    - kernel/fork: beware of __put_task_struct() calling context
+    - ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
+    - perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
+    - hw_breakpoint: fix single-stepping when using bpf_overflow_handler
+    - devlink: remove reload failed checks in params get/set callbacks
+    - wifi: ath9k: fix printk specifier
+    - wifi: mwifiex: fix fortify warning
+    - crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
+    - tpm_tis: Resend command to recover from data transfer errors
+    - mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
+    - alx: fix OOB-read compiler warning
+    - wifi: mac80211_hwsim: drop short frames
+    - drm/exynos: fix a possible null-pointer dereference due to data race in
+      exynos_drm_crtc_atomic_disable()
+    - bus: ti-sysc: Configure uart quirks for k3 SoC
+    - md: raid1: fix potential OOB in raid1_remove_disk()
+    - ext2: fix datatype of block number in ext2_xattr_set2()
+    - fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
+    - jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
+    - powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
+    - media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
+    - media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
+    - media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
+    - media: anysee: fix null-ptr-deref in anysee_master_xfer
+    - media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
+    - media: tuners: qt1010: replace BUG_ON with a regular error
+    - media: pci: cx23885: replace BUG with error return
+    - usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
+    - scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
+    - serial: cpm_uart: Avoid suspicious locking
+    - media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
+    - kobject: Add sanity check for kset->kobj.ktype in kset_register()
+    - tools features: Add feature test to check if libbfd has buildid support
+    - perf jevents: Make build dependency on test JSONs
+    - perf tools: Add an option to build without libbfd
+    - btrfs: move btrfs_pinned_by_swapfile prototype into volumes.h
+    - btrfs: add a helper to read the superblock metadata_uuid
+    - btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
+    - selftests: tracing: Fix to unmount tracefs for recovering environment
+    - md/raid1: fix error: ISO C90 forbids mixed declarations
+    - attr: block mode changes of symlinks
+    - btrfs: fix lockdep splat and potential deadlock after failure running
+      delayed items
+    - tracing: Have current_trace inc the trace array ref count
+    - tracing: Have option files inc the trace array ref count
+    - nfsd: fix change_info in NFSv4 RENAME replies
+    - tracefs: Add missing lockdown check to tracefs_create_dir()
+    - i2c: aspeed: Reset the i2c controller when timeout occurs
+    - scsi: megaraid_sas: Fix deadlock on firmware crashdump
+    - ext4: fix rec_len verify error
+    - mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
+    - drm/amdgpu: fix amdgpu_cs_p1_user_fence
+    - Linux 5.4.257
+
+  * Focal update: v5.4.257 upstream stable release (LP: #2040284) //
+    CVE-2023-39189
+    - netfilter: nfnetlink_osf: avoid OOB read
+
+  * CVE-2023-45871
+    - igb: set max size RX buffer when store bad packet is enabled
+
+  * CVE-2023-39193
+    - netfilter: xt_sctp: validate the flag_info count
+
+  * CVE-2023-39192
+    - netfilter: xt_u32: validate user space input
+
+  * CVE-2023-31085
+    - ubi: Refuse attaching if mtd's erasesize is 0
+
+  * CVE-2023-5717
+    - perf: Disallow mis-matched inherited group reads
+
+  * CVE-2023-5178
+    - nvmet-tcp: move send/recv error handling in the send/recv methods instead of
+      call-sites
+    - nvmet-tcp: Fix a possible UAF in queue intialization setup
+
+  * CVE-2023-42754
+    - ipv4: fix null-deref in ipv4_link_failure
+
+  * Focal update: v5.4.256 upstream stable release (LP: #2039446)
+    - powerpc/pmac/smp: Avoid unused-variable warnings
+    - powerpc/pmac/smp: Drop unnecessary volatile qualifier
+    - Revert "MIPS: Alchemy: fix dbdma2"
+    - Linux 5.4.256
+
+  * Focal update: v5.4.255 upstream stable release (LP: #2039440)
+    - mmc: sdhci_f_sdh30: convert to devm_platform_ioremap_resource
+    - mmc: sdhci-f-sdh30: Replace with sdhci_pltfm
+    - selftests: forwarding: tc_flower: Relax success criterion
+    - macsec: Fix traffic counters/statistics
+    - macsec: use DEV_STATS_INC()
+    - drm/radeon: Fix integer overflow in radeon_cs_parser_init
+    - ALSA: emu10k1: roll up loops in DSP setup code for Audigy
+    - quota: Properly disable quotas when add_dquot_ref() fails
+    - quota: fix warning in dqgrab()
+    - HID: add quirk for 03f0:464a HP Elite Presenter Mouse
+    - ovl: check type and offset of struct vfsmount in ovl_entry
+    - udf: Fix uninitialized array access for some pathnames
+    - fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev
+    - MIPS: dec: prom: Address -Warray-bounds warning
+    - FS: JFS: Fix null-ptr-deref Read in txBegin
+    - FS: JFS: Check for read-only mounted filesystem in txBegin
+    - media: v4l2-mem2mem: add lock to protect parameter num_rdy
+    - media: platform: mediatek: vpu: fix NULL ptr dereference
+    - usb: chipidea: imx: don't request QoS for imx8ulp
+    - gfs2: Fix possible data races in gfs2_show_options()
+    - pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
+    - Bluetooth: L2CAP: Fix use-after-free
+    - drm/amdgpu: Fix potential fence use-after-free v2
+    - ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
+    - ALSA: hda: fix a possible null-pointer dereference due to data race in
+      snd_hdac_regmap_sync()
+    - powerpc/kasan: Disable KCOV in KASAN code
+    - IMA: allow/fix UML builds
+    - iio: add addac subdirectory
+    - iio: adc: stx104: Utilize iomap interface
+    - iio: adc: stx104: Implement and utilize register structures
+    - iio: stx104: Move to addac subdirectory
+    - iio: addac: stx104: Fix race condition for stx104_write_raw()
+    - iio: addac: stx104: Fix race condition when converting analog-to-digital
+    - iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE
+    - PM-runtime: add tracepoints for usage_count changes
+    - PM: runtime: Add pm_runtime_get_if_active()
+    - ALSA: hda: Fix unhandled register update during auto-suspend period
+    - irqchip/mips-gic: Get rid of the reliance on irq_cpu_online()
+    - irqchip/mips-gic: Use raw spinlock for gic_lock
+    - interconnect: Move internal structs into a separate file
+    - interconnect: Add helpers for enabling/disabling a path
+    - usb: dwc3: qcom: Add helper functions to enable,disable wake irqs
+    - USB: dwc3: qcom: fix NULL-deref on suspend
+    - mmc: bcm2835: fix deferred probing
+    - mmc: sunxi: fix deferred probing
+    - leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
+    - tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs
+    - tracing/probes: Fix to update dynamic data counter if fetcharg uses it
+    - net/ncsi: Fix gma flag setting after response
+    - nfsd4: kill warnings on testing stateids with mismatched clientids
+    - nfsd: Remove incorrect check in nfsd4_validate_stateid
+    - virtio-mmio: convert to devm_platform_ioremap_resource
+    - virtio-mmio: Use to_virtio_mmio_device() to simply code
+    - virtio-mmio: don't break lifecycle of vm_dev
+    - i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue
+    - fbdev: mmp: fix value check in mmphw_probe()
+    - powerpc/rtas_flash: allow user copy to flash block cache objects
+    - tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32
+      platforms
+    - btrfs: fix BUG_ON condition in btrfs_cancel_balance
+    - net: xfrm: Fix xfrm_address_filter OOB read
+    - net: af_key: fix sadb_x_filter validation
+    - xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c
+    - xfrm: fix slab-use-after-free in decode_session6
+    - ip6_vti: fix slab-use-after-free in decode_session6
+    - ip_vti: fix potential slab-use-after-free in decode_session6
+    - selftests: mirror_gre_changes: Tighten up the TTL test match
+    - ipvs: fix racy memcpy in proc_do_sync_threshold
+    - netfilter: nft_dynset: disallow object maps
+    - team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
+    - i40e: fix misleading debug logs
+    - net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset
+    - sock: Fix misuse of sk_under_memory_pressure()
+    - net: do not allow gso_size to be set to GSO_BY_FRAGS
+    - bus: ti-sysc: Improve reset to work with modules with no sysconfig
+    - bus: ti-sysc: Flush posted write on enable before reset
+    - ARM: dts: imx7s: Drop dma-apb interrupt-names
+    - ARM: dts: imx: Adjust dma-apbh node name
+    - ARM: dts: imx: Set default tuning step for imx7d usdhc
+    - ARM: dts: imx: Set default tuning step for imx6sx usdhc
+    - ASoC: rt5665: add missed regulator_bulk_disable
+    - ASoC: meson: axg-tdm-formatter: fix channel slot allocation
+    - serial: 8250: Fix oops for port->pm on uart_change_pm()
+    - ALSA: usb-audio: Add support for Mythware XA001AU capture and playback
+      interfaces.
+    - cifs: Release folio lock on fscache read hit.
+    - mmc: wbsd: fix double mmc_free_host() in wbsd_init()
+    - mmc: block: Fix in_flight[issue_type] value error
+    - netfilter: set default timeout to 3 secs for sctp shutdown send and recv
+      state
+    - virtio-net: set queues after driver_ok
+    - net: fix the RTO timer retransmitting skb every 1ms if linear option is
+      enabled
+    - net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
+    - mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove
+    - net: phy: broadcom: stub c45 read/write for 54810
+    - PCI: acpiphp: Reassign resources on bridge if necessary
+    - dlm: improve plock logging if interrupted
+    - dlm: replace usage of found with dedicated list iterator variable
+    - fs: dlm: add pid to debug log
+    - fs: dlm: change plock interrupted message to debug again
+    - fs: dlm: use dlm_plock_info for do_unlock_close
+    - fs: dlm: fix mismatch of plock results from userspace
+    - MIPS: cpu-features: Enable octeon_cache by cpu_type
+    - MIPS: cpu-features: Use boot_cpu_type for CPU type based features
+    - fbdev: Improve performance of sys_imageblit()
+    - fbdev: Fix sys_imageblit() for arbitrary image widths
+    - fbdev: fix potential OOB read in fast_imageblit()
+    - dm integrity: increase RECALC_SECTORS to improve recalculate speed
+    - dm integrity: reduce vmalloc space footprint on 32-bit architectures
+    - ALSA: pcm: Set per-card upper limit of PCM buffer allocations
+    - ALSA: pcm: Use SG-buffer only when direct DMA is available
+    - ALSA: pcm: Fix potential data race at PCM memory allocation helpers
+    - regmap: Account for register length in SMBus I/O limits
+    - ASoC: fsl_sai: Refine enable/disable TE/RE sequence in trigger()
+    - ASoC: fsl_sai: Add new added registers and new bit definition
+    - ASoC: fsl_sai: Disable bit clock with transmitter
+    - drm/amd/display: do not wait for mpc idle if tg is disabled
+    - drm/amd/display: check TG is non-null before checking if enabled
+    - tracing: Fix memleak due to race between current_tracer and trace
+    - octeontx2-af: SDP: fix receive link config
+    - sock: annotate data-races around prot->memory_pressure
+    - dccp: annotate data-races in dccp_poll()
+    - ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()
+    - net: bgmac: Fix return value check for fixed_phy_register()
+    - net: bcmgenet: Fix return value check for fixed_phy_register()
+    - net: validate veth and vxcan peer ifindexes
+    - igb: Avoid starting unnecessary workqueues
+    - net/sched: fix a qdisc modification with ambiguous command request
+    - net: remove bond_slave_has_mac_rcu()
+    - bonding: fix macvlan over alb bond support
+    - ibmveth: Use dcbf rather than dcbfl
+    - NFSv4: Fix dropped lock for racing OPEN and delegation return
+    - clk: Fix slab-out-of-bounds error in devm_clk_release()
+    - nfsd: Fix race to FREE_STATEID and cl_revoked
+    - batman-adv: Trigger events for auto adjusted MTU
+    - batman-adv: Don't increase MTU when set by user
+    - batman-adv: Do not get eth header before batadv_check_management_packet
+    - batman-adv: Fix TT global entry leak when client roamed back
+    - batman-adv: Fix batadv_v_ogm_aggr_send memory leak
+    - batman-adv: Hold rtnl lock during MTU update via netlink
+    - lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels
+    - radix tree: remove unused variable
+    - media: vcodec: Fix potential array out-of-bounds in encoder queue_setup
+    - PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root
+      bus
+    - drm/display/dp: Fix the DP DSC Receiver cap size
+    - mm: allow a controlled amount of unfairness in the page lock
+    - rtnetlink: Reject negative ifindexes in RTM_NEWLINK
+    - ALSA: pcm: Fix build error on m68k and others
+    - Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available"
+    - interconnect: Do not skip aggregation for disabled paths
+    - ALSA: pcm: Check for null pointer of pointer substream before dereferencing
+      it
+    - Documentation/sysctl: document page_lock_unfairness
+    - irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable
+    - scsi: snic: Fix double free in snic_tgt_create()
+    - scsi: core: raid_class: Remove raid_component_add()
+    - clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
+    - pinctrl: renesas: rza2: Add lock around
+      pinctrl_generic{{add,remove}_group,{add,remove}_function}
+    - dma-buf/sw_sync: Avoid recursive lock during fence signal
+    - Linux 5.4.255
+
+  * Focal update: v5.4.254 upstream stable release (LP: #2039291)
+    - mmc: moxart: read scr register without changing byte order
+    - ipv6: adjust ndisc_is_useropt() to also return true for PIO
+    - dmaengine: pl330: Return DMA_PAUSED when transaction is paused
+    - drm/nouveau/gr: enable memory loads on helper invocation on all channels
+    - radix tree test suite: fix incorrect allocation size for pthreads
+    - nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput
+    - iio: cros_ec: Fix the allocation size for cros_ec_command
+    - binder: fix memory leak in binder_init()
+    - usb-storage: alauda: Fix uninit-value in alauda_check_media()
+    - usb: dwc3: Properly handle processing of pending events
+    - usb: common: usb-conn-gpio: Prevent bailing out if initial role is none
+    - x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405
+    - x86/mm: Fix VDSO and VVAR placement on 5-level paging machines
+    - x86: Move gds_ucode_mitigated() declaration to header
+    - drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
+    - selftests/rseq: Fix build with undefined __weak
+    - mISDN: Update parameter type of dsp_cmx_send()
+    - net/packet: annotate data-races around tp->status
+    - bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
+    - dccp: fix data-race around dp->dccps_mss_cache
+    - drivers: net: prevent tun_build_skb() to exceed the packet size limit
+    - IB/hfi1: Fix possible panic during hotplug remove
+    - wifi: cfg80211: fix sband iftype data lookup for AP_VLAN
+    - dmaengine: mcf-edma: Fix a potential un-allocated memory access
+    - net/mlx5: Allow 0 for total host VFs
+    - ibmvnic: Handle DMA unmapping of login buffs in release functions
+    - btrfs: don't stop integrity writeback too early
+    - btrfs: set cache_block_group_error if we find an error
+    - nvme-tcp: fix potential unbalanced freeze & unfreeze
+    - nvme-rdma: fix potential unbalanced freeze & unfreeze
+    - netfilter: nf_tables: report use refcount overflow
+    - scsi: core: Fix legacy /proc parsing buffer overflow
+    - scsi: storvsc: Fix handling of virtual Fibre Channel timeouts
+    - scsi: 53c700: Check that command slot is not NULL
+    - scsi: snic: Fix possible memory leak if device_add() fails
+    - scsi: core: Fix possible memory leak if device_add() fails
+    - alpha: remove __init annotation from exported page_is_ram()
+    - sch_netem: fix issues in netem_change() vs get_dist_table()
+    - Linux 5.4.254
+
+  * Focal update: v5.4.253 upstream stable release (LP: #2038652)
+    - jbd2: fix incorrect code style
+    - jbd2: fix kernel-doc markups
+    - jbd2: remove redundant buffer io error checks
+    - jbd2: recheck chechpointing non-dirty buffer
+    - jbd2: Fix wrongly judgement for buffer head removing while doing checkpoint
+    - gpio: tps68470: Make tps68470_gpio_output() always set the initial value
+    - bcache: remove 'int n' from parameter list of bch_bucket_alloc_set()
+    - bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent
+    - btrfs: qgroup: catch reserved space leaks at unmount time
+    - btrfs: fix race between quota disable and relocation
+    - btrfs: fix extent buffer leak after tree mod log failure at split_node()
+    - ext4: rename journal_dev to s_journal_dev inside ext4_sb_info
+    - ext4: Fix reusing stale buffer heads from last failed mounting
+    - PCI/ASPM: Return 0 or -ETIMEDOUT from pcie_retrain_link()
+    - PCI/ASPM: Factor out pcie_wait_for_retrain()
+    - PCI/ASPM: Avoid link retraining race
+    - dlm: cleanup plock_op vs plock_xop
+    - dlm: rearrange async condition return
+    - fs: dlm: interrupt posix locks only when process is killed
+    - ftrace: Add information on number of page groups allocated
+    - ftrace: Check if pages were allocated before calling free_pages()
+    - ftrace: Store the order of pages allocated in ftrace_page
+    - ftrace: Fix possible warning on checking all pages used in
+      ftrace_process_locs()
+    - pwm: meson: Remove redundant assignment to variable fin_freq
+    - pwm: meson: Simplify duplicated per-channel tracking
+    - pwm: meson: fix handling of period/duty if greater than UINT_MAX
+    - scsi: qla2xxx: Fix inconsistent format argument type in qla_os.c
+    - scsi: qla2xxx: Array index may go out of bound
+    - uapi: General notification queue definitions
+    - keys: Fix linking a duplicate key to a keyring's assoc_array
+    - ext4: fix to check return value of freeze_bdev() in ext4_shutdown()
+    - i40e: Fix an NULL vs IS_ERR() bug for debugfs_create_dir()
+    - vxlan: calculate correct header length for GPE
+    - phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe()
+    - ethernet: atheros: fix return value check in atl1e_tso_csum()
+    - ipv6 addrconf: fix bug where deleting a mngtmpaddr can create a new
+      temporary address
+    - bonding: reset bond's flags when down link is P2P device
+    - team: reset team's flags when down link is P2P device
+    - platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100
+    - net/sched: mqprio: refactor nlattr parsing to a separate function
+    - net/sched: mqprio: add extack to mqprio_parse_nlattr()
+    - net/sched: mqprio: Add length check for TCA_MQPRIO_{MAX/MIN}_RATE64
+    - benet: fix return value check in be_lancer_xmit_workarounds()
+    - RDMA/mlx4: Make check for invalid flags stricter
+    - drm/msm/dpu: drop enum dpu_core_perf_data_bus_id
+    - drm/msm/adreno: Fix snapshot BINDLESS_DATA size
+    - drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb()
+    - ASoC: fsl_spdif: Silence output on stop
+    - block: Fix a source code comment in include/uapi/linux/blkzoned.h
+    - dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths
+    - ata: pata_ns87415: mark ns87560_tf_read static
+    - ring-buffer: Fix wrong stat of cpu_buffer->read
+    - tracing: Fix warning in trace_buffered_event_disable()
+    - serial: 8250_dw: Preserve original value of DLF register
+    - serial: sifive: Fix sifive_serial_console_setup() section
+    - USB: serial: option: support Quectel EM060K_128
+    - USB: serial: option: add Quectel EC200A module support
+    - USB: serial: simple: add Kaufmann RKS+CAN VCP
+    - USB: serial: simple: sort driver entries
+    - can: gs_usb: gs_can_close(): add missing set of CAN state to
+      CAN_STATE_STOPPED
+    - Revert "usb: dwc3: core: Enable AutoRetry feature in the controller"
+    - usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy
+    - usb: dwc3: don't reset device side if dwc3 was configured as host-only
+    - usb: ohci-at91: Fix the unhandle interrupt when resume
+    - USB: quirks: add quirk for Focusrite Scarlett
+    - usb: xhci-mtk: set the dma max_seg_size
+    - Revert "usb: xhci: tegra: Fix error check"
+    - Documentation: security-bugs.rst: update preferences when dealing with the
+      linux-distros group
+    - Documentation: security-bugs.rst: clarify CVE handling
+    - staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext()
+    - hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled
+    - btrfs: check for commit error at btrfs_attach_transaction_barrier()
+    - tpm_tis: Explicitly check for error code
+    - irq-bcm6345-l1: Do not assume a fixed block to cpu mapping
+    - btrfs: check if the transaction was aborted at btrfs_wait_for_commit()
+    - virtio-net: fix race between set queues and probe
+    - s390/dasd: fix hanging device after quiesce/resume
+    - ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register
+    - dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
+    - ACPI: processor: perflib: Use the "no limit" frequency QoS
+    - ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily
+    - cpufreq: intel_pstate: Drop ACPI _PSS states table patching
+    - btrfs: qgroup: remove one-time use variables for quota_root checks
+    - btrfs: qgroup: return ENOTCONN instead of EINVAL when quotas are not enabled
+    - ASoC: cs42l51: fix driver to properly autoload with automatic module loading
+    - arm64: Add AMPERE1 to the Spectre-BHB affected list
+    - arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
+    - perf: Fix function pointer case
+    - loop: Select I/O scheduler 'none' from inside add_disk()
+    - word-at-a-time: use the same return type for has_zero regardless of
+      endianness
+    - KVM: s390: fix sthyi error handling
+    - net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx
+    - net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer()
+    - rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length
+    - perf test uprobe_from_different_cu: Skip if there is no gcc
+    - net: sched: cls_u32: Fix match key mis-addressing
+    - mISDN: hfcpci: Fix potential deadlock on &hc->lock
+    - net: annotate data-races around sk->sk_max_pacing_rate
+    - net: add missing READ_ONCE(sk->sk_rcvlowat) annotation
+    - net: add missing READ_ONCE(sk->sk_sndbuf) annotation
+    - net: add missing READ_ONCE(sk->sk_rcvbuf) annotation
+    - net: add missing data-race annotations around sk->sk_peek_off
+    - net: add missing data-race annotation for sk_ll_usec
+    - bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire
+    - driver core: add device probe log helper
+    - net: ll_temac: Switch to use dev_err_probe() helper
+    - net: ll_temac: fix error checking of irq_of_parse_and_map()
+    - net: dcb: choose correct policy to parse DCB_ATTR_BCN
+    - ip6mr: Fix skb_under_panic in ip6mr_cache_report()
+    - tcp_metrics: fix addr_same() helper
+    - tcp_metrics: annotate data-races around tm->tcpm_stamp
+    - tcp_metrics: annotate data-races around tm->tcpm_lock
+    - tcp_metrics: annotate data-races around tm->tcpm_vals[]
+    - tcp_metrics: annotate data-races around tm->tcpm_net
+    - tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen
+    - scsi: zfcp: Defer fc_rport blocking until after ADISC response
+    - libceph: fix potential hang in ceph_osdc_notify()
+    - USB: zaurus: Add ID for A-300/B-500/C-700
+    - mtd: spinand: toshiba: Fix ecc_get_status
+    - mtd: rawnand: meson: fix OOB available bytes for ECC
+    - fs/sysv: Null check to prevent null-ptr-deref bug
+    - net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb
+    - fs: Protect reconfiguration of sb read-write from racing writes
+    - ext2: Drop fragment support
+    - test_firmware: prevent race conditions by a correct implementation of
+      locking
+    - test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation
+    - mtd: rawnand: omap_elm: Fix incorrect type in assignment
+    - powerpc/mm/altmap: Fix altmap boundary check
+    - selftests/rseq: check if libc rseq support is registered
+    - selftests/rseq: Play nice with binaries statically linked against glibc
+      2.35+
+    - PM / wakeirq: support enabling wake-up irq after runtime_suspend called
+    - PM: sleep: wakeirq: fix wake irq arming
+    - ceph: show tasks waiting on caps in debugfs caps file
+    - ceph: use kill_anon_super helper
+    - ceph: defer stopping mdsc delayed_work
+    - arm64: dts: stratix10: fix incorrect I2C property for SCL signal
+    - ARM: dts: imx6sll: Make ssi node name same as other platforms
+    - ARM: dts: imx: Align L2 cache-controller nodename with dtschema
+    - ARM: dts: imx: add usb alias
+    - ARM: dts: imx6sll: fixup of operating points
+    - ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node
+    - driver core: Annotate dev_err_probe() with __must_check
+    - driver code: print symbolic error code
+    - drivers: core: fix kernel-doc markup for dev_err_probe()
+    - Revert "driver core: Annotate dev_err_probe() with __must_check"
+    - Linux 5.4.253
+    - Upstream stable to v5.4.253
+
+  * CVE-2023-37453
+    - USB: hub: Clean up use of port initialization schemes and retries
+    - USB: hub: Add Kconfig option to reduce number of port initialization retries
+    - USB: core: Unite old scheme and new scheme descriptor reads
+    - usb: hub: Check device descriptor before resusciation
+    - USB: core: Change usb_get_device_descriptor() API
+    - USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Mon, 30 Oct 2023 11:52:53 +0100
+
+linux (5.4.0-166.183) focal; urgency=medium
+
+  * focal/linux: 5.4.0-166.183 -proposed tracker (LP: #2038010)
+
+  * Use new annotations model (LP: #2019000)
+    - [Packaging] new annotations model infrastructure
+    - [Packaging] config-check: Handle new annotations format 4
+    - [Packaging] rules: Use old-kernelconfig for old configs
+    - [Config] sanitize annotations
+    - [Config] import generated configs into annotation file
+    - [Packaging] kernelconfig: add i386 as supported arch
+    - [Config] Remove all old configs files
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - [Packaging] update annotations scripts
+
+  * fix typo in config-checks invocation (LP: #2020413)
+    - [Packaging] fix typo when calling the old config-check
+    - [Packaging] fix typo in 4-checks.mk
+
+  * support python < 3.9 with annotations (LP: #2020531)
+    - [Packaging] kconfig/annotations.py: support older way of merging dicts
+
+  * CVE-2023-42756
+    - netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
+
+  * CVE-2023-4623
+    - net/sched: sch_hfsc: Ensure inner classes have fsc curve
+
+  * Focal update: v5.4.252 upstream stable release (LP: #2036240)
+    - ia64/cpu: Switch to arch_cpu_finalize_init()
+    - m68k/cpu: Switch to arch_cpu_finalize_init()
+    - mips/cpu: Switch to arch_cpu_finalize_init()
+    - sh/cpu: Switch to arch_cpu_finalize_init()
+    - x86/cpufeatures: Add SEV-ES CPU feature
+    - x86/cpu: Add VM page flush MSR availablility as a CPUID feature
+    - x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX]
+    - tools headers cpufeatures: Sync with the kernel sources
+    - x86/cpu, kvm: Add support for CPUID_80000021_EAX
+    - Linux 5.4.252
+    - Upstream stable to v5.4.252
+
+  * CVE-2023-42755
+    - net/sched: Retire rsvp classifier
+    - [Config] remove NET_CLS_RSVP and NET_CLS_RSVP6
+
+  * CVE-2023-42753
+    - netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for
+      ip_set_hash_netportnet.c
+
+  * CVE-2023-34319
+    - xen/netback: Fix buffer overrun triggered by unusual packet
+
+  * CVE-2023-4921
+    - net: sched: sch_qfq: Fix UAF in qfq_dequeue()
+
+  * CVE-2023-42752
+    - igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
+
+  * Avoid address overwrite in kernel_connect (LP: #2035163)
+    - net: Avoid address overwrite in kernel_connect
+
+  * [regression] Unable to initialize SGX enclaves with XFRM other than 3
+    (LP: #2034745)
+    - x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4
+
+  * CVE-2023-4881
+    - netfilter: nftables: exthdr: fix 4-byte stack OOB write
+
+  * CVE-2023-4622
+    - af_unix: Fix null-ptr-deref in unix_stream_sendpage().
+
+  * Focal update: v5.4.251 upstream stable release (LP: #2034918)
+    - x86/smp: Use dedicated cache-line for mwait_play_dead()
+    - video: imsttfb: check for ioremap() failures
+    - fbdev: imsttfb: Fix use after free bug in imsttfb_probe
+    - HID: wacom: Use ktime_t rather than int when dealing with timestamps
+    - drm/i915: Initialise outparam for error return from wait_for_register
+    - scripts/tags.sh: Resolve gtags empty index generation
+    - drm/amdgpu: Validate VM ioctl flags.
+    - bgmac: fix *initial* chip reset to support BCM5358
+    - x86/resctrl: Use is_closid_match() in more places
+    - x86/resctrl: Only show tasks' pid in current pid namespace
+    - md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
+    - md/raid10: fix overflow of md/safe_mode_delay
+    - md/raid10: fix wrong setting of max_corr_read_errors
+    - md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request
+    - md/raid10: fix io loss while replacement replace rdev
+    - irqchip/jcore-aic: Kill use of irq_create_strict_mappings()
+    - irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
+    - tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
+    - clocksource/drivers/cadence-ttc: Use ttc driver as platform driver
+    - clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
+    - PM: domains: fix integer overflow issues in genpd_parse_state()
+    - powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
+    - ARM: 9303/1: kprobes: avoid missing-declaration warnings
+    - evm: Complete description of evm_inode_setattr()
+    - pstore/ram: Add check for kstrdup
+    - ima: Fix build warnings
+    - wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation
+    - wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
+    - samples/bpf: Fix buffer overflow in tcp_basertt
+    - spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG
+    - wifi: mwifiex: Fix the size of a memory allocation in
+      mwifiex_ret_802_11_scan()
+    - nfc: constify several pointers to u8, char and sk_buff
+    - nfc: llcp: fix possible use of uninitialized variable in
+      nfc_llcp_send_connect()
+    - regulator: core: Fix more error checking for debugfs_create_dir()
+    - regulator: core: Streamline debugfs operations
+    - wifi: orinoco: Fix an error handling path in spectrum_cs_probe()
+    - wifi: orinoco: Fix an error handling path in orinoco_cs_probe()
+    - wifi: atmel: Fix an error handling path in atmel_probe()
+    - wl3501_cs: Fix a bunch of formatting issues related to function docs
+    - wl3501_cs: Remove unnecessary NULL check
+    - wl3501_cs: Fix misspelling and provide missing documentation
+    - net: create netdev->dev_addr assignment helpers
+    - wl3501_cs: use eth_hw_addr_set()
+    - wifi: wl3501_cs: Fix an error handling path in wl3501_probe()
+    - wifi: ray_cs: Utilize strnlen() in parse_addr()
+    - wifi: ray_cs: Drop useless status variable in parse_addr()
+    - wifi: ray_cs: Fix an error handling path in ray_probe()
+    - wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
+    - wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown
+    - watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct
+      config
+    - watchdog/perf: more properly prevent false positives with turbo modes
+    - kexec: fix a memory leak in crash_shrink_memory()
+    - memstick r592: make memstick_debug_get_tpc_name() static
+    - wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key()
+    - rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO
+    - wifi: iwlwifi: pull from TXQs with softirqs disabled
+    - wifi: cfg80211: rewrite merging of inherited elements
+    - wifi: ath9k: convert msecs to jiffies where needed
+    - netlink: fix potential deadlock in netlink_set_err()
+    - netlink: do not hard code device address lenth in fdb dumps
+    - selftests: rtnetlink: remove netdevsim device after ipsec offload test
+    - gtp: Fix use-after-free in __gtp_encap_destroy().
+    - lib/ts_bm: reset initial match offset for every block of text
+    - netfilter: conntrack: dccp: copy entire header to stack buffer, not just
+      basic one
+    - netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return
+      value.
+    - ipvlan: Fix return value of ipvlan_queue_xmit()
+    - netlink: Add __sock_i_ino() for __netlink_diag_dump().
+    - radeon: avoid double free in ci_dpm_init()
+    - Input: drv260x - sleep between polling GO bit
+    - ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
+    - Input: adxl34x - do not hardcode interrupt trigger type
+    - drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
+    - RDMA/bnxt_re: Fix to remove an unnecessary log
+    - ARM: dts: gta04: Move model property out of pinctrl node
+    - arm64: dts: qcom: msm8916: correct camss unit address
+    - drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H
+    - ARM: ep93xx: fix missing-prototype warnings
+    - memory: brcmstb_dpfe: fix testing array offset after use
+    - ASoC: es8316: Increment max value for ALC Capture Target Volume control
+    - ASoC: es8316: Do not set rate constraints for unsupported MCLKs
+    - soc/fsl/qe: fix usb.c build errors
+    - IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors
+    - arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1
+    - fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
+    - drm/amdkfd: Fix potential deallocation of previously deallocated memory.
+    - drm/radeon: fix possible division-by-zero errors
+    - clk: tegra: tegra124-emc: Fix potential memory leak
+    - ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer
+    - clk: cdce925: check return value of kasprintf()
+    - clk: keystone: sci-clk: check return value of kasprintf()
+    - ASoC: imx-audmix: check return value of devm_kasprintf()
+    - scsi: qedf: Fix NULL dereference in error handling
+    - PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free
+    - scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe()
+    - PCI: pciehp: Cancel bringup sequence if card is not present
+    - PCI: ftpci100: Release the clock resources
+    - PCI: Add pci_clear_master() stub for non-CONFIG_PCI
+    - pinctrl: cherryview: Return correct value if pin in push-pull mode
+    - perf dwarf-aux: Fix off-by-one in die_get_varname()
+    - pinctrl: at91-pio4: check return value of devm_kasprintf()
+    - powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-
+      boundary
+    - hwrng: virtio - add an internal buffer
+    - hwrng: virtio - don't wait on cleanup
+    - hwrng: virtio - don't waste entropy
+    - hwrng: virtio - always add a pending request
+    - hwrng: virtio - Fix race on data_avail and actual data
+    - crypto: nx - fix build warnings when DEBUG_FS is not enabled
+    - modpost: fix section mismatch message for R_ARM_ABS32
+    - modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24}
+    - crypto: marvell/cesa - Fix type mismatch warning
+    - modpost: fix off by one in is_executable_section()
+    - ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard
+    - NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
+    - hwrng: st - Fix W=1 unused variable warning
+    - hwrng: st - keep clock enabled while hwrng is registered
+    - USB: serial: option: add LARA-R6 01B PIDs
+    - usb: dwc3: gadget: Propagate core init errors to UDC during pullup
+    - block: fix signed int overflow in Amiga partition support
+    - block: change all __u32 annotations to __be32 in affs_hardblocks.h
+    - w1: fix loop in w1_fini()
+    - sh: j2: Use ioremap() to translate device tree address into kernel memory
+    - media: usb: Check az6007_read() return value
+    - media: videodev2.h: Fix struct v4l2_input tuner index comment
+    - usb: dwc3: qcom: Fix potential memory leak
+    - extcon: Fix kernel doc of property fields to avoid warnings
+    - extcon: Fix kernel doc of property capability fields to avoid warnings
+    - usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
+    - usb: hide unused usbfs_notify_suspend/resume functions
+    - mfd: rt5033: Drop rt5033-battery sub-device
+    - KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes
+    - usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove()
+    - mfd: intel-lpss: Add missing check for platform_get_resource
+    - serial: 8250_omap: Use force_suspend and resume for system suspend
+    - mfd: stmfx: Fix error path in stmfx_chip_init
+    - KVM: s390: vsie: fix the length of APCB bitmap
+    - mfd: stmpe: Only disable the regulators if they are enabled
+    - pwm: imx-tpm: force 'real_period' to be zero in suspend
+    - pwm: sysfs: Do not apply state to already disabled PWMs
+    - rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
+    - sctp: fix potential deadlock on &net->sctp.addr_wq_lock
+    - Add MODULE_FIRMWARE() for FIRMWARE_TG357766.
+    - spi: bcm-qspi: return error if neither hif_mspi nor mspi is available
+    - mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
+    - f2fs: fix error path handling in truncate_dnode()
+    - powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y
+    - net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode
+    - tcp: annotate data races in __tcp_oow_rate_limited()
+    - xsk: Improve documentation for AF_XDP
+    - xsk: Honor SO_BINDTODEVICE on bind
+    - net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX
+    - net: dsa: tag_sja1105: fix MAC DA patching from meta frames
+    - sh: dma: Fix DMA channel offset calculation
+    - i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()
+    - i2c: xiic: Don't try to handle more interrupt events after error
+    - ALSA: jack: Fix mutex call in snd_jack_report()
+    - NFSD: add encoding of op_recall flag for write delegation
+    - mmc: core: disable TRIM on Kingston EMMC04G-M627
+    - mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M
+    - mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is
+      used.
+    - bcache: Remove unnecessary NULL point check in node allocations
+    - integrity: Fix possible multiple allocation in integrity_inode_get()
+    - jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
+    - fs: avoid empty option when generating legacy mount string
+    - ext4: Remove ext4 locking of moved directory
+    - Revert "f2fs: fix potential corruption when moving a directory"
+    - fs: Establish locking order for unrelated directories
+    - fs: Lock moved directories
+    - btrfs: fix race when deleting quota root from the dirty cow roots list
+    - ARM: orion5x: fix d2net gpio initialization
+    - fs: no need to check source
+    - fanotify: disallow mount/sb marks on kernel internal pseudo fs
+    - block: add overflow checks for Amiga partition support
+    - netfilter: nf_tables: fix nat hook table deletion
+    - netfilter: nftables: add helper function to set the base sequence number
+    - netfilter: add helper function to set up the nfnetlink header and use it
+    - netfilter: nf_tables: use net_generic infra for transaction data
+    - netfilter: nf_tables: add rescheduling points during loop detection walks
+    - netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound
+      set/chain
+    - netfilter: nf_tables: reject unbound anonymous set before commit phase
+    - netfilter: nf_tables: unbind non-anonymous set if rule construction fails
+    - netfilter: nf_tables: fix scheduling-while-atomic splat
+    - netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
+    - tty: serial: fsl_lpuart: add earlycon for imx8ulp platform
+    - block/partition: fix signedness issue for Amiga partitions
+    - net: lan743x: Don't sleep in atomic context
+    - workqueue: clean up WORK_* constant types, clarify masking
+    - drm/panel: Initialise panel dev and funcs through drm_panel_init()
+    - drm/panel: Add and fill drm_panel type field
+    - drm/panel: simple: Add connector_type for innolux_at043tn24
+    - igc: Remove delay during TX ring configuration
+    - igc: set TP bit in 'supported' and 'advertising' fields of
+      ethtool_link_ksettings
+    - scsi: qla2xxx: Fix error code in qla2x00_start_sp()
+    - net: mvneta: fix txq_map in case of txq_number==1
+    - ionic: improve irq numa locality
+    - ionic: clean irq affinity on queue deinit
+    - ionic: move irq request to qcq alloc
+    - ionic: ionic_intr_free parameter change
+    - ionic: remove WARN_ON to prevent panic_on_warn
+    - icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev().
+    - udp6: fix udp6_ehashfn() typo
+    - ntb: idt: Fix error handling in idt_pci_driver_init()
+    - NTB: amd: Fix error handling in amd_ntb_pci_driver_init()
+    - ntb: intel: Fix error handling in intel_ntb_pci_driver_init()
+    - NTB: ntb_transport: fix possible memory leak while device_register() fails
+    - NTB: ntb_tool: Add check for devm_kcalloc
+    - ipv6/addrconf: fix a potential refcount underflow for idev
+    - platform/x86: wmi: Replace UUID redefinitions by their originals
+    - platform/x86: wmi: Fix indentation in some cases
+    - platform/x86: wmi: remove unnecessary argument
+    - platform/x86: wmi: use guid_t and guid_equal()
+    - platform/x86: wmi: move variables
+    - platform/x86: wmi: Break possible infinite loop when parsing GUID
+    - erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF
+    - wifi: airo: avoid uninitialized warning in airo_get_rate()
+    - cls_flower: Add extack support for src and dst port range options
+    - net/sched: flower: Ensure both minimum and maximum ports are specified
+    - net/sched: make psched_mtu() RTNL-less safe
+    - pinctrl: amd: Fix mistake in handling clearing pins at startup
+    - pinctrl: amd: Detect internal GPIO0 debounce handling
+    - pinctrl: amd: Only use special debounce behavior for GPIO 0
+    - tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation
+    - mtd: rawnand: meson: fix unaligned DMA buffers handling
+    - net: bcmgenet: Ensure MDIO unregistration has clocks enabled
+    - powerpc: Fail build if using recordmcount with binutils v2.37
+    - misc: fastrpc: Create fastrpc scalar with correct buffer count
+    - SUNRPC: Fix UAF in svc_tcp_listen_data_ready()
+    - erofs: fix compact 4B support for 16k block size
+    - ext4: fix wrong unit use in ext4_mb_clear_bb
+    - ext4: only update i_reserved_data_blocks on successful block allocation
+    - jfs: jfs_dmap: Validate db_l2nbperpage while mounting
+    - PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold
+    - PCI: Add function 1 DMA alias quirk for Marvell 88SE9235
+    - PCI: qcom: Disable write access to read only registers for IP v2.3.3
+    - PCI: rockchip: Assert PCI Configuration Enable bit after probe
+    - PCI: rockchip: Write PCI Device ID to correct register
+    - PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked
+    - PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core
+    - PCI: rockchip: Use u32 variable to access 32-bit registers
+    - PCI: rockchip: Set address alignment for endpoint mode
+    - misc: pci_endpoint_test: Free IRQs before removing the device
+    - misc: pci_endpoint_test: Re-init completion for every test
+    - md/raid0: add discard support for the 'original' layout
+    - fs: dlm: return positive pid value for F_GETLK
+    - drm/atomic: Allow vblank-enabled + self-refresh "disable"
+    - drm/rockchip: vop: Leave vblank enabled in self-refresh
+    - serial: atmel: don't enable IRQs prematurely
+    - firmware: stratix10-svc: Fix a potential resource leak in
+      svc_create_memory_pool()
+    - hwrng: imx-rngc - fix the timeout for init and self check
+    - ceph: don't let check_caps skip sending responses for revoke msgs
+    - meson saradc: fix clock divider mask length
+    - Revert "8250: add support for ASIX devices with a FIFO bug"
+    - tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in
+      case of error
+    - tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when
+      iterating clk
+    - tracing/histograms: Add histograms to hist_vars if they have referenced
+      variables
+    - ring-buffer: Fix deadloop issue on reading trace_pipe
+    - xtensa: ISS: fix call to split_if_spec
+    - tracing: Fix null pointer dereference in tracing_err_log_open()
+    - tracing/probes: Fix not to count error code to total length
+    - scsi: qla2xxx: Wait for io return on terminate rport
+    - scsi: qla2xxx: Fix potential NULL pointer dereference
+    - scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport()
+    - scsi: qla2xxx: Correct the index of array
+    - scsi: qla2xxx: Pointer may be dereferenced
+    - scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
+    - drm/atomic: Fix potential use-after-free in nonblocking commits
+    - perf probe: Add test for regression introduced by switch to
+      die_get_decl_file()
+    - btrfs: fix warning when putting transaction with qgroups enabled after abort
+    - fuse: revalidate: don't invalidate if interrupted
+    - selftests: tc: set timeout to 15 minutes
+    - can: bcm: Fix UAF in bcm_proc_show()
+    - drm/client: Fix memory leak in drm_client_target_cloned
+    - drm/client: Fix memory leak in drm_client_modeset_probe
+    - ext4: correct inline offset when handling xattrs in inode body
+    - debugobjects: Recheck debug_objects_enabled before reporting
+    - nbd: Add the maximum limit of allocated index in nbd_dev_add
+    - md: fix data corruption for raid456 when reshape restart while grow up
+    - md/raid10: prevent soft lockup while flush writes
+    - posix-timers: Ensure timer ID search-loop limit is valid
+    - arm64: mm: fix VA-range sanity check
+    - sched/fair: Don't balance task to its current running CPU
+    - bpf: Address KCSAN report on bpf_lru_list
+    - devlink: report devlink_port_type_warn source device
+    - wifi: wext-core: Fix -Wstringop-overflow warning in
+      ioctl_standard_iw_point()
+    - wifi: iwlwifi: mvm: avoid baid size integer overflow
+    - igb: Fix igb_down hung on surprise removal
+    - spi: bcm63xx: fix max prepend length
+    - fbdev: imxfb: warn about invalid left/right margin
+    - pinctrl: amd: Use amd_pinconf_set() for all config options
+    - net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()
+    - iavf: Fix use-after-free in free_netdev
+    - net:ipv6: check return value of pskb_trim()
+    - Revert "tcp: avoid the lookup process failing to get sk in ehash table"
+    - fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe
+    - llc: Don't drop packet from non-root netns.
+    - netfilter: nf_tables: fix spurious set element insertion failure
+    - netfilter: nf_tables: can't schedule in nft_chain_validate
+    - tcp: annotate data-races around tp->tcp_tx_delay
+    - net: Replace the limit of TCP_LINGER2 with TCP_FIN_TIMEOUT_MAX
+    - tcp: annotate data-races around tp->linger2
+    - tcp: annotate data-races around rskq_defer_accept
+    - tcp: annotate data-races around tp->notsent_lowat
+    - tcp: annotate data-races around fastopenq.max_qlen
+    - tracing/histograms: Return an error if we fail to add histogram to hist_vars
+      list
+    - Linux 5.4.251
+
+  * Focal update: v5.4.250 upstream stable release (LP: #2033297)
+    - x86/microcode/AMD: Load late on both threads too
+    - Linux 5.4.250
+
+  * Focal update: v5.4.249 upstream stable release (LP: #2033278)
+    - nilfs2: reject devices with insufficient block count
+    - mm: rewrite wait_on_page_bit_common() logic
+    - list: add "list_del_init_careful()" to go with "list_empty_careful()"
+    - epoll: ep_autoremove_wake_function should use list_del_init_careful
+    - tracing: Add tracing_reset_all_online_cpus_unlocked() function
+    - x86/purgatory: remove PGO flags
+    - tick/common: Align tick period during sched_timer setup
+    - media: dvbdev: Fix memleak in dvb_register_device
+    - media: dvbdev: fix error logic at dvb_register_device()
+    - media: dvb-core: Fix use-after-free due to race at dvb_register_device()
+    - nilfs2: fix buffer corruption due to concurrent device reads
+    - Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
+    - PCI: hv: Fix a race condition bug in hv_pci_query_relations()
+    - cgroup: Do not corrupt task iteration when rebinding subsystem
+    - mmc: meson-gx: remove redundant mmc_request_done() call from irq context
+    - ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN
+    - writeback: fix dereferencing NULL mapping->host on writeback_page_template
+    - nilfs2: prevent general protection fault in nilfs_clear_dirty_page()
+    - cifs: Clean up DFS referral cache
+    - cifs: Get rid of kstrdup_const()'d paths
+    - cifs: Introduce helpers for finding TCP connection
+    - cifs: Merge is_path_valid() into get_normalized_path()
+    - cifs: Fix potential deadlock when updating vol in cifs_reconnect()
+    - x86/mm: Avoid using set_pgd() outside of real PGD pages
+    - ieee802154: hwsim: Fix possible memory leaks
+    - xfrm: Linearize the skb after offloading if needed.
+    - net: qca_spi: Avoid high load if QCA7000 is not available
+    - mmc: mtk-sd: fix deferred probing
+    - mmc: mvsdio: convert to devm_platform_ioremap_resource
+    - mmc: mvsdio: fix deferred probing
+    - mmc: omap: fix deferred probing
+    - mmc: omap_hsmmc: fix deferred probing
+    - mmc: sdhci-acpi: fix deferred probing
+    - mmc: sh_mmcif: fix deferred probing
+    - mmc: usdhi60rol0: fix deferred probing
+    - ipvs: align inner_mac_header for encapsulation
+    - net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
+    - be2net: Extend xmit workaround to BE3 chip
+    - netfilter: nf_tables: disallow element updates of bound anonymous sets
+    - netfilter: nfnetlink_osf: fix module autoload
+    - Revert "net: phy: dp83867: perform soft reset and retain established link"
+    - sch_netem: acquire qdisc lock in netem_change()
+    - scsi: target: iscsi: Prevent login threads from racing between each other
+    - HID: wacom: Add error check to wacom_parse_and_register()
+    - arm64: Add missing Set/Way CMO encodings
+    - media: cec: core: don't set last_initiator if tx in progress
+    - nfcsim.c: Fix error checking for debugfs_create_dir
+    - usb: gadget: udc: fix NULL dereference in remove()
+    - s390/cio: unregister device when the only path is gone
+    - ASoC: nau8824: Add quirk to active-high jack-detect
+    - ARM: dts: Fix erroneous ADS touchscreen polarities
+    - drm/exynos: vidi: fix a wrong error return
+    - drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl
+    - drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl
+    - x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys
+    - i2c: imx-lpi2c: fix type char overflow issue when calculating the clock
+      cycle
+    - mm: fix VM_BUG_ON(PageTail) and BUG_ON(PageWriteback)
+    - mm: make wait_on_page_writeback() wait for multiple pending writebacks
+    - Linux 5.4.249
+
+  * allow io_uring to be disabled in runtime (LP: #2035116)
+    - io_uring: add a sysctl to disable io_uring system-wide
+
+  * CVE-2023-31083
+    - Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO
+
+  * CVE-2023-4132
+    - media: usb: siano: Fix warning due to null work_func_t function pointer
+
+  * CVE-2023-3772
+    - xfrm: add NULL check in xfrm_update_ae_params
+
+  * CVE-2023-0597
+    - random32: add noise from network and scheduling activity
+    - x86/kasan: Map shadow for percpu pages on demand
+    - x86/mm: Randomize per-cpu entry area
+    - x86/mm: Recompute physical address for every page of per-CPU CEA mapping
+    - x86/mm: Populate KASAN shadow for entire per-CPU range of CPU entry area
+    - x86/mm: Do not shuffle CPU entry areas without KASLR
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Mon, 02 Oct 2023 12:18:58 +0200
+
+linux (5.4.0-164.181) focal; urgency=medium
+
+  * focal/linux: 5.4.0-164.181 -proposed tracker (LP: #2033867)
+
+  * Please enable Renesas RZ platform serial installer (LP: #2022361)
+    - [Config] enable hihope RZ/G2M serial console
+
+  * Azure: hv_netvsc: add support for vlans in AF_PACKET mode (LP: #2030872)
+    - hv_netvsc: add support for vlans in AF_PACKET mode
+
+  * systemd mount units fail during boot, while file system is correctly mounted
+    (LP: #1837227)
+    - list: introduce list_for_each_continue()
+    - proc/mounts: add cursor
+
+  * CVE-2023-40283
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
+
+  * CVE-2023-20588
+    - x86/bugs: Increase the x86 bugs vector size to two u32s
+    - x86/CPU/AMD: Do not leak quotient data after a division by 0
+    - x86/CPU/AMD: Fix the DIV(0) initial fix attempt
+
+  * CVE-2023-4194
+    - net: tun_chr_open(): set sk_uid from current_fsuid()
+    - net: tap_open(): set sk_uid from current_fsuid()
+
+  * CVE-2023-1206
+    - tcp: Reduce chance of collisions in inet6_hashfn().
+
+  * CVE-2021-4001
+    - bpf: Fix toctou on read-only map's constant scalar tracking
+
+  * Focal update: v5.4.248 upstream stable release (LP: #2031121)
+    - test_firmware: fix a memory leak with reqs buffer
+    - KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
+    - dasd: refactor dasd_ioctl_information
+    - s390/dasd: Use correct lock while counting channel queue length
+    - power: supply: ab8500: Fix external_power_changed race
+    - power: supply: sc27xx: Fix external_power_changed race
+    - power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() +
+      schedule()
+    - ARM: dts: vexpress: add missing cache properties
+    - power: supply: Ratelimit no data debug output
+    - platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
+    - regulator: Fix error checking for debugfs_create_dir
+    - irqchip/meson-gpio: Mark OF related data as maybe unused
+    - power: supply: Fix logic checking if system is running from battery
+    - btrfs: handle memory allocation failure in btrfs_csum_one_bio
+    - parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
+    - parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
+    - MIPS: Alchemy: fix dbdma2
+    - mips: Move initrd_start check after initrd address sanitisation.
+    - xen/blkfront: Only check REQ_FUA for writes
+    - drm:amd:amdgpu: Fix missing buffer object unlock in failure path
+    - ocfs2: fix use-after-free when unmounting read-only filesystem
+    - ocfs2: check new file size on fallocate call
+    - nios2: dts: Fix tse_mac "max-frame-size" property
+    - nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
+    - nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
+    - kexec: support purgatories with .text.hot sections
+    - powerpc/purgatory: remove PGO flags
+    - nouveau: fix client work fence deletion race
+    - RDMA/uverbs: Restrict usage of privileged QKEYs
+    - net: usb: qmi_wwan: add support for Compal RXM-G1
+    - ALSA: hda/realtek: Add a quirk for Compaq N14JP6
+    - Remove DECnet support from kernel
+    - [Config] updateconfigs for DECNET
+    - USB: serial: option: add Quectel EM061KGL series
+    - serial: lantiq: add missing interrupt ack
+    - usb: dwc3: gadget: Reset num TRBs before giving back the request
+    - spi: spi-fsl-dspi: Remove unused chip->void_write_data
+    - spi: fsl-dspi: avoid SCK glitches with continuous transfers
+    - netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
+    - ping6: Fix send to link-local addresses with VRF.
+    - RDMA/rxe: Remove the unused variable obj
+    - RDMA/rxe: Removed unused name from rxe_task struct
+    - RDMA/rxe: Fix the use-before-initialization error of resp_pkts
+    - iavf: remove mask from iavf_irq_enable_queues()
+    - IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
+    - IB/isert: Fix dead lock in ib_isert
+    - IB/isert: Fix possible list corruption in CMA handler
+    - IB/isert: Fix incorrect release of isert connection
+    - ipvlan: fix bound dev checking for IPv6 l3s mode
+    - sctp: fix an error code in sctp_sf_eat_auth()
+    - igb: fix nvm.ops.read() error handling
+    - drm/nouveau/dp: check for NULL nv_connector->native_mode
+    - drm/nouveau/kms: Don't change EDID when it hasn't actually changed
+    - drm/nouveau: add nv_encoder pointer check for NULL
+    - net/sched: cls_api: Fix lockup on flushing explicitly created chain
+    - net: lapbether: only support ethernet devices
+    - net: tipc: resize nlattr array to correct size
+    - selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
+    - afs: Fix vlserver probe RTT handling
+    - neighbour: Remove unused inline function neigh_key_eq16()
+    - net: Remove unused inline function dst_hold_and_use()
+    - neighbour: delete neigh_lookup_nodev as not used
+    - drm/nouveau/kms: Fix NULL pointer dereference in
+      nouveau_connector_detect_depth
+    - mmc: block: ensure error propagation for non-blk
+    - Linux 5.4.248
+
+  * Focal update: v5.4.247 upstream stable release (LP: #2030818)
+    - blk-iocost: avoid 64-bit division in ioc_timer_fn
+    - block/blk-iocost (gcc13): keep large values in a new enum
+    - i40iw: fix build warning in i40iw_manage_apbvt()
+    - i40e: fix build warnings in i40e_alloc.h
+    - spi: qup: Request DMA before enabling clocks
+    - neighbour: Replace zero-length array with flexible-array member
+    - neighbour: fix unaligned access to pneigh_entry
+    - net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods
+    - Bluetooth: Fix l2cap_disconnect_req deadlock
+    - Bluetooth: L2CAP: Add missing checks for invalid DCID
+    - netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper
+    - netfilter: ipset: Add schedule point in call_ad().
+    - rfs: annotate lockless accesses to sk->sk_rxhash
+    - rfs: annotate lockless accesses to RFS sock flow table
+    - net: sched: move rtm_tca_policy declaration to include file
+    - net: sched: fix possible refcount leak in tc_chain_tmplt_add()
+    - lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release()
+    - bnxt_en: Query default VLAN before VNIC setup on a VF
+    - batman-adv: Broken sync while rescheduling delayed work
+    - Input: xpad - delete a Razer DeathAdder mouse VID/PID entry
+    - Input: psmouse - fix OOB access in Elantech protocol
+    - ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01
+    - ALSA: hda/realtek: Add Lenovo P3 Tower platform
+    - drm/amdgpu: fix xclk freq on CHIP_STONEY
+    - can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in
+      J1939 Socket
+    - can: j1939: change j1939_netdev_lock type to mutex
+    - can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
+    - ceph: fix use-after-free bug for inodes when flushing capsnaps
+    - Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
+    - rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting
+    - pinctrl: meson-axg: add missing GPIOA_18 gpio group
+    - usb: usbfs: Enforce page requirements for mmap
+    - usb: usbfs: Use consistent mmap functions
+    - bonding (gcc13): synchronize bond_{a,t}lb_xmit() types
+    - i2c: sprd: Delete i2c adapter in .remove's error path
+    - eeprom: at24: also select REGMAP
+    - ext4: only check dquot_initialize_needed() when debugging
+    - drm/atomic: Don't pollute crtc_state->mode_blob with error pointers
+    - rbd: get snapshot context after exclusive lock is ensured to be held
+    - mtd: spinand: macronix: Add support for MX35LFxGE4AD
+    - Linux 5.4.247
+
+  * CVE-2023-4128
+    - net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_route: No longer copy tcf_result on update to avoid use-
+      after-free
+
+  * CVE-2023-3863
+    - nfc: llcp: simplify llcp_sock_connect() error paths
+    - net: nfc: Fix use-after-free caused by nfc_llcp_find_local
+
+  * CVE-2023-3212
+    - gfs2: Don't deref jdesc in evict
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Fri, 01 Sep 2023 15:09:25 +0200
+
+linux (5.4.0-162.179) focal; urgency=medium
+
+  * focal/linux: 5.4.0-162.179 -proposed tracker (LP: #2031128)
+
+  * libgnutls report "trap invalid opcode" when trying to install packages over
+    https (LP: #2031093)
+    - [Config]: disable CONFIG_GDS_FORCE_MITIGATION
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Mon, 14 Aug 2023 10:20:38 +0200
+
+linux (5.4.0-160.177) focal; urgency=medium
+
+  * focal/linux: 5.4.0-160.177 -proposed tracker (LP: #2031017)
+
+  * Fix boot test warning for log_check "CPU: 0 PID: 0 at
+    arch/x86/kernel/fpu/xstate.c:878 get_xsave_addr+0x98/0xb0" (LP: #2031022)
+    - x86/pkeys: Revert a5eff7259790 ("x86/pkeys: Add PKRU value to init_fpstate")
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Thu, 10 Aug 2023 18:25:48 +0200
+
+linux (5.4.0-158.175) focal; urgency=medium
+
+  * focal/linux: 5.4.0-158.175 -proposed tracker (LP: #2030466)
+
+  * CVE-2022-40982
+    - x86/mm: Initialize text poking earlier
+    - x86/mm: fix poking_init() for Xen PV guests
+    - x86/mm: Use mm_alloc() in poking_init()
+    - mm: Move mm_cachep initialization to mm_init()
+    - init: Provide arch_cpu_finalize_init()
+    - x86/cpu: Switch to arch_cpu_finalize_init()
+    - ARM: cpu: Switch to arch_cpu_finalize_init()
+    - sparc/cpu: Switch to arch_cpu_finalize_init()
+    - um/cpu: Switch to arch_cpu_finalize_init()
+    - init: Remove check_bugs() leftovers
+    - init: Invoke arch_cpu_finalize_init() earlier
+    - init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
+    - x86/fpu: Remove cpuinfo argument from init functions
+    - x86/fpu: Mark init functions __init
+    - x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
+    - x86/xen: Fix secondary processors' FPU initialization
+    - x86/speculation: Add Gather Data Sampling mitigation
+    - x86/speculation: Add force option to GDS mitigation
+    - x86/speculation: Add Kconfig option for GDS
+    - KVM: Add GDS_NO support to KVM
+    - Documentation/x86: Fix backwards on/off logic about YMM support
+    - [Config]: Enable CONFIG_ARCH_HAS_CPU_FINALIZE_INIT and
+      CONFIG_GDS_FORCE_MITIGATION
+
+  * CVE-2023-3609
+    - net/sched: cls_u32: Fix reference counter leak leading to overflow
+
+  * CVE-2023-20593
+    - x86/cpu/amd: Move the errata checking functionality up
+    - x86/cpu/amd: Add a Zenbleed fix
+
+  * CVE-2023-3611
+    - net/sched: sch_qfq: account for stab overhead in qfq_enqueue
+
+  * stacked overlay file system mounts that have chroot() called against them
+    appear to be getting locked (by the kernel most likely?) (LP: #2016398)
+    - SAUCE: overlayfs: fix reference count mismatch
+
+  * Focal update: v5.4.246 upstream stable release (LP: #2028981)
+    - RDMA/efa: Fix unsupported page sizes in device
+    - RDMA/bnxt_re: Enable SRIOV VF support on Broadcom's 57500 adapter series
+    - RDMA/bnxt_re: Refactor queue pair creation code
+    - RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx
+    - iommu/rockchip: Fix unwind goto issue
+    - iommu/amd: Don't block updates to GATag if guest mode is on
+    - dmaengine: pl330: rename _start to prevent build error
+    - net/mlx5: fw_tracer, Fix event handling
+    - netrom: fix info-leak in nr_write_internal()
+    - af_packet: Fix data-races of pkt_sk(sk)->num.
+    - amd-xgbe: fix the false linkup in xgbe_phy_status
+    - mtd: rawnand: ingenic: fix empty stub helper definitions
+    - af_packet: do not use READ_ONCE() in packet_bind()
+    - tcp: deny tcp_disconnect() when threads are waiting
+    - tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set
+    - net/sched: sch_ingress: Only create under TC_H_INGRESS
+    - net/sched: sch_clsact: Only create under TC_H_CLSACT
+    - net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs
+    - net/sched: Prohibit regrafting ingress or clsact Qdiscs
+    - net: sched: fix NULL pointer dereference in mq_attach
+    - ocfs2/dlm: move BITS_TO_BYTES() to bitops.h for wider use
+    - net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
+    - udp6: Fix race condition in udp6_sendmsg & connect
+    - net: dsa: mv88e6xxx: Increase wait after reset deactivation
+    - mtd: rawnand: marvell: ensure timing values are written
+    - mtd: rawnand: marvell: don't set the NAND frequency select
+    - watchdog: menz069_wdt: fix watchdog initialisation
+    - mailbox: mailbox-test: Fix potential double-free in
+      mbox_test_message_write()
+    - ARM: 9295/1: unwind:fix unwind abort for uleb128 case
+    - media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE
+    - fbdev: modedb: Add 1920x1080 at 60 Hz video mode
+    - fbdev: stifb: Fix info entry in sti_struct on error path
+    - nbd: Fix debugfs_create_dir error checking
+    - ASoC: dwc: limit the number of overrun messages
+    - xfrm: Check if_id in inbound policy/secpath match
+    - ASoC: ssm2602: Add workaround for playback distortions
+    - media: dvb_demux: fix a bug for the continuity counter
+    - media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer()
+    - media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer()
+    - media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer()
+    - media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer
+    - media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
+    - media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address
+    - media: netup_unidvb: fix irq init by register it at the end of probe
+    - media: dvb_ca_en50221: fix a size write bug
+    - media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb()
+    - media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table
+    - media: dvb-core: Fix use-after-free due on race condition at dvb_net
+    - media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221
+    - wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value
+    - ARM: dts: stm32: add pin map for CAN controller on stm32f7
+    - arm64/mm: mark private VM_FAULT_X defines as vm_fault_t
+    - scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed
+    - wifi: b43: fix incorrect __packed annotation
+    - netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with
+      CONFIG_NF_NAT
+    - ALSA: oss: avoid missing-prototype warnings
+    - atm: hide unused procfs functions
+    - mailbox: mailbox-test: fix a locking issue in mbox_test_message_write()
+    - iio: adc: mxs-lradc: fix the order of two cleanup operations
+    - HID: google: add jewel USB id
+    - HID: wacom: avoid integer overflow in wacom_intuos_inout()
+    - iio: light: vcnl4035: fixed chip ID check
+    - iio: dac: mcp4725: Fix i2c_master_send() return value handling
+    - iio: dac: build ad5758 driver when AD5758 is selected
+    - net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818
+    - usb: gadget: f_fs: Add unbind event before functionfs_unbind
+    - misc: fastrpc: return -EPIPE to invocations on device removal
+    - misc: fastrpc: reject new invocations during device removal
+    - scsi: stex: Fix gcc 13 warnings
+    - ata: libata-scsi: Use correct device no in ata_find_dev()
+    - flow_dissector: work around stack frame size warning
+    - x86/boot: Wrap literal addresses in absolute_pointer()
+    - ACPI: thermal: drop an always true check
+    - gcc-12: disable '-Wdangling-pointer' warning for now
+    - eth: sun: cassini: remove dead code
+    - kernel/extable.c: use address-of operator on section symbols
+    - treewide: Remove uninitialized_var() usage
+    - lib/dynamic_debug.c: use address-of operator on section symbols
+    - wifi: rtlwifi: remove always-true condition pointed out by GCC 12
+    - mmc: vub300: fix invalid response handling
+    - tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of
+      UARTCTRL_SBK
+    - selinux: don't use make's grouped targets feature yet
+    - tracing/probe: trace_probe_primary_from_call(): checked list_first_entry
+    - ext4: add EA_INODE checking to ext4_iget()
+    - ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find()
+    - ext4: disallow ea_inodes with extended attributes
+    - ext4: add lockdep annotations for i_data_sem for ea_inode's
+    - fbcon: Fix null-ptr-deref in soft_cursor
+    - test_firmware: fix the memory leak of the allocated firmware buffer
+    - regmap: Account for register length when chunking
+    - scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD)
+    - scsi: dpt_i2o: Do not process completions with invalid addresses
+    - [Config] updateconfigs for SCSI_DPT_I2O
+    - RDMA/bnxt_re: Remove set but not used variable 'dev_attr'
+    - RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds
+    - drm/edid: Fix uninitialized variable in drm_cvt_modes()
+    - wifi: rtlwifi: 8192de: correct checking of IQK reload
+    - drm/edid: fix objtool warning in drm_cvt_modes()
+    - Linux 5.4.246
+
+  * Focal update: v5.4.245 upstream stable release (LP: #2028980)
+    - cdc_ncm: Implement the 32-bit version of NCM Transfer Block
+    - net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize
+    - power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to
+      stabilize
+    - power: supply: core: Refactor
+      power_supply_set_input_current_limit_from_supplier()
+    - power: supply: bq24190: Call power_supply_changed() after updating input
+      current
+    - fs: fix undefined behavior in bit shift for SB_NOUSER
+    - net/mlx5: devcom only supports 2 ports
+    - net/mlx5: Devcom, serialize devcom registration
+    - cdc_ncm: Fix the build warning
+    - io_uring: always grab lock in io_cancel_async_work()
+    - io_uring: don't drop completion lock before timer is fully initialized
+    - io_uring: have io_kill_timeout() honor the request references
+    - bluetooth: Add cmd validity checks at the start of hci_sock_ioctl()
+    - binder: fix UAF caused by faulty buffer cleanup
+    - ipv{4,6}/raw: fix output xfrm lookup wrt protocol
+    - netfilter: ctnetlink: Support offloaded conntrack entry deletion
+    - Linux 5.4.245
+
+  * Focal update: v5.4.244 upstream stable release (LP: #2028697)
+    - driver core: add a helper to setup both the of_node and fwnode of a device
+    - drm/mipi-dsi: Set the fwnode for mipi_dsi_device
+    - ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings
+    - linux/dim: Do nothing if no time delta between samples
+    - net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs().
+    - netfilter: conntrack: fix possible bug_on with enable_hooks=1
+    - netlink: annotate accesses to nlk->cb_running
+    - net: annotate sk->sk_err write from do_recvmmsg()
+    - net: tap: check vlan with eth_type_vlan() method
+    - net: add vlan_get_protocol_and_depth() helper
+    - net: datagram: fix data-races in datagram_poll()
+    - af_unix: Fix a data race of sk->sk_receive_queue->qlen.
+    - af_unix: Fix data races around sk->sk_shutdown.
+    - fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
+    - drm/amd/display: Use DC_LOG_DC in the trasform pixel function
+    - regmap: cache: Return error in cache sync operations for REGCACHE_NONE
+    - firmware: arm_sdei: Fix sleep from invalid context BUG
+    - ACPI: EC: Fix oops when removing custom query handlers
+    - drm/tegra: Avoid potential 32-bit integer overflow
+    - ACPICA: Avoid undefined behavior: applying zero offset to null pointer
+    - ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in
+      acpi_db_display_objects
+    - wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex
+    - ext2: Check block size validity during mount
+    - scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow
+    - net: pasemi: Fix return type of pasemi_mac_start_tx()
+    - net: Catch invalid index in XPS mapping
+    - scsi: target: iscsit: Free cmds before session free
+    - lib: cpu_rmap: Avoid use after free on rmap->obj array entries
+    - scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race
+      condition
+    - gfs2: Fix inode height consistency check
+    - ext4: set goal start correctly in ext4_mb_normalize_request
+    - ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
+    - f2fs: fix to drop all dirty pages during umount() if cp_error is set
+    - samples/bpf: Fix fout leak in hbm's run_bpf_prog
+    - wifi: iwlwifi: pcie: fix possible NULL pointer dereference
+    - wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf
+    - wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace
+    - Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
+    - HID: logitech-hidpp: Don't use the USB serial for USB devices
+    - HID: logitech-hidpp: Reconcile USB and Unifying serials
+    - spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3
+    - HID: wacom: generic: Set battery quirk only when we see battery data
+    - usb: typec: tcpm: fix multiple times discover svids error
+    - serial: 8250: Reinit port->pm on port specific driver unbind
+    - mcb-pci: Reallocate memory region to avoid memory overlapping
+    - sched: Fix KCSAN noinstr violation
+    - recordmcount: Fix memory leaks in the uwrite function
+    - RDMA/core: Fix multiple -Warray-bounds warnings
+    - clk: tegra20: fix gcc-7 constant overflow warning
+    - iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any
+    - Input: xpad - add constants for GIP interface numbers
+    - phy: st: miphy28lp: use _poll_timeout functions for waits
+    - mfd: dln2: Fix memory leak in dln2_probe()
+    - btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid
+    - btrfs: fix space cache inconsistency after error loading it from disk
+    - ASoC: fsl_micfil: register platform component before registering cpu dai
+    - cpupower: Make TSC read per CPU for Mperf monitor
+    - af_key: Reject optional tunnel/BEET mode templates in outbound policies
+    - net: fec: Better handle pm_runtime_get() failing in .remove()
+    - ALSA: firewire-digi00x: prevent potential use after free
+    - vsock: avoid to close connected socket after the timeout
+    - serial: arc_uart: fix of_iomap leak in `arc_serial_probe`
+    - ip6_gre: Fix skb_under_panic in __gre6_xmit()
+    - ip6_gre: Make o_seqno start from 0 in native mode
+    - ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
+    - erspan: get the proto with the md version for collect_md
+    - net: hns3: fix sending pfc frames after reset issue
+    - net: hns3: fix reset delay time to avoid configuration timeout
+    - media: netup_unidvb: fix use-after-free at del_timer()
+    - drm/exynos: fix g2d_open/close helper function definitions
+    - net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
+    - net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
+    - net: bcmgenet: Restore phy_stop() depending upon suspend/close
+    - wifi: iwlwifi: mvm: don't trust firmware n_channels
+    - cassini: Fix a memory leak in the error handling path of cas_init_one()
+    - igb: fix bit_shift to be in [1..8] range
+    - vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
+    - USB: usbtmc: Fix direction for 0-length ioctl control messages
+    - usb-storage: fix deadlock when a scsi command timeouts more than once
+    - USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value
+    - usb: dwc3: debugfs: Resume dwc3 before accessing registers
+    - usb: typec: altmodes/displayport: fix pin_assignment_show
+    - ALSA: hda: Fix Oops by 9.1 surround channel names
+    - ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table
+    - ALSA: hda/realtek: Add a quirk for HP EliteDesk 805
+    - ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
+    - can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag
+    - can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop()
+    - can: kvaser_pciefd: Call request_irq() before enabling interrupts
+    - can: kvaser_pciefd: Empty SRB buffer in probe
+    - can: kvaser_pciefd: Clear listen-only bit if not explicitly requested
+    - can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt
+    - can: kvaser_pciefd: Disable interrupts in probe error path
+    - KVM: x86: do not report a vCPU as preempted outside instruction boundaries
+    - statfs: enforce statfs[64] structure initialization
+    - serial: Add support for Advantech PCI-1611U card
+    - ceph: force updating the msg pointer in non-split case
+    - tpm/tpm_tis: Disable interrupts for more Lenovo devices
+    - powerpc/64s/radix: Fix soft dirty tracking
+    - nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()
+    - netfilter: nftables: add nft_parse_register_load() and use it
+    - netfilter: nftables: add nft_parse_register_store() and use it
+    - netfilter: nftables: statify nft_parse_register()
+    - netfilter: nf_tables: validate registers coming from userspace.
+    - netfilter: nf_tables: add nft_setelem_parse_key()
+    - netfilter: nf_tables: allow up to 64 bytes in the set element data area
+    - netfilter: nf_tables: stricter validation of element data
+    - netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT
+      flag
+    - netfilter: nf_tables: hold mutex on netns pre_exit path
+    - HID: wacom: Force pen out of prox if no events have been received in a while
+    - HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs
+    - HID: wacom: add three styli to wacom_intuos_get_tool_type
+    - lib/string_helpers: Introduce string_upper() and string_lower() helpers
+    - usb: gadget: u_ether: Convert prints to device prints
+    - usb: gadget: u_ether: Fix host MAC address case
+    - vc_screen: rewrite vcs_size to accept vc, not inode
+    - vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
+    - s390/qdio: get rid of register asm
+    - s390/qdio: fix do_sqbs() inline assembly constraint
+    - watchdog: sp5100_tco: Immediately trigger upon starting.
+    - spi: fsl-spi: Re-organise transfer bits_per_word adaptation
+    - spi: fsl-cpm: Use 16 bit mode for large transfers with even size
+    - mt76: mt7615: Fix build with older compilers
+    - ALSA: hda/ca0132: add quirk for EVGA X299 DARK
+    - ALSA: hda/realtek: Enable headset onLenovo M70/M90
+    - m68k: Move signal frame following exception on 68020/030
+    - parisc: Handle kgdb breakpoints only in kernel context
+    - parisc: Allow to reboot machine after system halt
+    - gpio: mockup: Fix mode of debugfs files
+    - btrfs: use nofs when cleaning up aborted transactions
+    - selftests/memfd: Fix unknown type name build failure
+    - parisc: Fix flush_dcache_page() for usage from irq context
+    - x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms
+    - debugobjects: Don't wake up kswapd from fill_pool()
+    - fbdev: udlfb: Fix endpoint check
+    - net: fix stack overflow when LRO is disabled for virtual interfaces
+    - udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
+    - USB: core: Add routines for endpoint checks in old drivers
+    - USB: sisusbvga: Add endpoint checks
+    - media: radio-shark: Add endpoint checks
+    - net: fix skb leak in __skb_tstamp_tx()
+    - selftests: fib_tests: mute cleanup error message
+    - bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields
+    - ipv6: Fix out-of-bounds access in ipv6_find_tlv()
+    - power: supply: leds: Fix blink to LED on transition
+    - power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition
+    - power: supply: bq27xxx: Fix I2C IRQ race on remove
+    - power: supply: bq27xxx: Fix poll_interval handling and races on remove
+    - power: supply: sbs-charger: Fix INHIBITED bit for Status reg
+    - coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
+    - xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
+    - x86/show_trace_log_lvl: Ensure stack pointer is aligned, again
+    - ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg
+    - forcedeth: Fix an error handling path in nv_probe()
+    - net/mlx5: Fix error message when failing to allocate device memory
+    - net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device
+    - 3c589_cs: Fix an error handling path in tc589_probe()
+    - Linux 5.4.244
+
+  * Focal update: v5.4.243 upstream stable release (LP: #2025387)
+    - counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
+    - drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
+    - bluetooth: Perform careful capability checks in hci_sock_ioctl()
+    - USB: serial: option: add UNISOC vendor and TOZED LT70C product
+    - iio: adc: palmas_gpadc: fix NULL dereference on rmmod
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750
+    - asm-generic/io.h: suppress endianness warnings for readq() and writeq()
+    - USB: dwc3: fix runtime pm imbalance on probe errors
+    - USB: dwc3: fix runtime pm imbalance on unbind
+    - perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into
+      sysconf(__SC_THREAD_STACK_MIN_VALUE)
+    - staging: iio: resolver: ads1210: fix config mode
+    - debugfs: regset32: Add Runtime PM support
+    - xhci: fix debugfs register accesses while suspended
+    - MIPS: fw: Allow firmware to pass a empty env
+    - ipmi:ssif: Add send_retries increment
+    - ipmi: fix SSIF not responding under certain cond.
+    - kheaders: Use array declaration instead of char
+    - pwm: meson: Fix axg ao mux parents
+    - pwm: meson: Fix g12a ao clk81 name
+    - ring-buffer: Sync IRQ works before buffer destruction
+    - reiserfs: Add security prefix to xattr name in reiserfs_security_write()
+    - KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted
+    - i2c: omap: Fix standard mode false ACK readings
+    - Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path"
+    - ubifs: Fix memleak when insert_old_idx() failed
+    - ubi: Fix return value overwrite issue in try_write_vid_and_data()
+    - ubifs: Free memory for tmpfile name
+    - selinux: fix Makefile dependencies of flask.h
+    - selinux: ensure av_permissions.h is built when needed
+    - tpm, tpm_tis: Do not skip reset of original interrupt vector
+    - erofs: stop parsing non-compact HEAD index if clusterofs is invalid
+    - erofs: fix potential overflow calculating xattr_isize
+    - drm/rockchip: Drop unbalanced obj unref
+    - drm/vgem: add missing mutex_destroy
+    - drm/probe-helper: Cancel previous job before starting new one
+    - arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table
+    - arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table
+    - EDAC/skx: Fix overflows on the DRAM row address mapping arrays
+    - ARM: dts: qcom: ipq4019: Fix the PCI I/O port range
+    - ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
+    - ARM: dts: qcom: ipq8064: Fix the PCI I/O port range
+    - media: bdisp: Add missing check for create_workqueue
+    - media: uapi: add MEDIA_BUS_FMT_METADATA_FIXED media bus format.
+    - media: av7110: prevent underflow in write_ts_to_decoder()
+    - firmware: qcom_scm: Clear download bit during reboot
+    - drm/msm: fix unbalanced pm_runtime_enable in adreno_gpu_{init, cleanup}
+    - drm/msm/adreno: Defer enabling runpm until hw_init()
+    - drm/msm/adreno: drop bogus pm_runtime_set_active()
+    - mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
+    - drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe()
+    - regulator: core: Consistently set mutex_owner when using
+      ww_mutex_lock_slow()
+    - regulator: core: Avoid lockdep reports when resolving supplies
+    - x86/apic: Fix atomic update of offset in reserve_eilvt_offset()
+    - media: dm1105: Fix use after free bug in dm1105_remove due to race condition
+    - media: saa7134: fix use after free bug in saa7134_finidev due to race
+      condition
+    - media: rcar_fdp1: simplify error check logic at fdp_open()
+    - media: rcar_fdp1: fix pm_runtime_get_sync() usage count
+    - media: rcar_fdp1: Make use of the helper function
+      devm_platform_ioremap_resource()
+    - media: rcar_fdp1: Fix the correct variable assignments
+    - media: rcar_fdp1: Fix refcount leak in probe and remove function
+    - media: rc: gpio-ir-recv: Fix support for wake-up
+    - regulator: stm32-pwr: fix of_iomap leak
+    - x86/ioapic: Don't return 0 from arch_dynirq_lower_bound()
+    - arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step
+    - debugobject: Prevent init race with static objects
+    - timekeeping: Split jiffies seqlock
+    - tick/sched: Use tick_next_period for lockless quick check
+    - tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64()
+    - tick/sched: Optimize tick_do_update_jiffies64() further
+    - tick: Get rid of tick_period
+    - tick/common: Align tick period with the HZ tick.
+    - wifi: ath6kl: minor fix for allocation size
+    - wifi: ath9k: hif_usb: fix memory leak of remain_skbs
+    - wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list()
+    - wifi: ath6kl: reduce WARN to dev_dbg() in callback
+    - tools: bpftool: Remove invalid \' json escape
+    - wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser()
+    - wifi: rtw88: mac: Return the original error from rtw_mac_power_switch()
+    - scm: fix MSG_CTRUNC setting condition for SO_PASSSEC
+    - vlan: partially enable SIOCSHWTSTAMP in container
+    - net/packet: annotate accesses to po->xmit
+    - net/packet: convert po->origdev to an atomic flag
+    - net/packet: convert po->auxdata to an atomic flag
+    - scsi: target: iscsit: Fix TAS handling during conn cleanup
+    - scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
+    - f2fs: handle dqget error in f2fs_transfer_project_quota()
+    - rtlwifi: Start changing RT_TRACE into rtl_dbg
+    - rtlwifi: Replace RT_TRACE with rtl_dbg
+    - wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg()
+    - wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg()
+    - bpftool: Fix bug for long instructions in program CFG dumps
+    - crypto: drbg - make drbg_prepare_hrng() handle jent instantiation errors
+    - crypto: drbg - Only fail when jent is unavailable in FIPS mode
+    - scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup()
+    - bpf, sockmap: fix deadlocks in the sockhash and sockmap
+    - nvme: handle the persistent internal error AER
+    - nvme: fix async event trace event
+    - nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"
+    - bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap
+    - md/raid10: fix leak of 'r10bio->remaining' for recovery
+    - md/raid10: fix memleak for 'conf->bio_split'
+    - md: update the optimal I/O size on reshape
+    - md/raid10: fix memleak of md thread
+    - wifi: iwlwifi: make the loop for card preparation effective
+    - wifi: iwlwifi: mvm: check firmware response size
+    - ixgbe: Allow flow hash to be set via ethtool
+    - ixgbe: Enable setting RSS table to default values
+    - bpf: Don't EFAULT for getsockopt with optval=NULL
+    - netfilter: nf_tables: don't write table validation state without mutex
+    - ipv4: Fix potential uninit variable access bug in __ip_make_skb()
+    - netlink: Use copy_to_user() for optval in netlink_getsockopt().
+    - net: amd: Fix link leak when verifying config failed
+    - tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp.
+    - pstore: Revert pmsg_lock back to a normal mutex
+    - usb: host: xhci-rcar: remove leftover quirk handling
+    - fpga: bridge: fix kernel-doc parameter description
+    - iio: light: max44009: add missing OF device matching
+    - usb: gadget: udc: renesas_usb3: Fix use after free bug in
+      renesas_usb3_remove due to race condition
+    - PCI: imx6: Install the fault handler only on compatible match
+    - genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
+    - ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ
+    - ASoC: es8316: Handle optional IRQ assignment
+    - linux/vt_buffer.h: allow either builtin or modular for macros
+    - spi: qup: Don't skip cleanup in remove's error path
+    - spi: fsl-spi: Fix CPM/QE mode Litte Endian
+    - vmci_host: fix a race condition in vmci_host_poll() causing GPF
+    - of: Fix modalias string generation
+    - ia64: mm/contig: fix section mismatch warning/error
+    - ia64: salinfo: placate defined-but-not-used warning
+    - scripts/gdb: bail early if there are no clocks
+    - PM: domains: Fix up terminology with parent/child
+    - scripts/gdb: bail early if there are no generic PD
+    - mtd: spi-nor: cadence-quadspi: Make driver independent of flash geometry
+    - mtd: spi-nor: cadence-quadspi: Provide a way to disable DAC mode
+    - mtd: spi-nor: cadence-quadspi: Don't initialize rx_dma_complete on failure
+    - mtd: spi-nor: cadence-quadspi: Handle probe deferral while requesting DMA
+      channel
+    - spi: cadence-quadspi: fix suspend-resume implementations
+    - uapi/linux/const.h: prefer ISO-friendly __typeof__
+    - sh: sq: Fix incorrect element size for allocating bitmap buffer
+    - usb: chipidea: fix missing goto in `ci_hdrc_probe`
+    - usb: mtu3: fix kernel panic at qmu transfer done irq handler
+    - firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
+    - tty: serial: fsl_lpuart: adjust buffer length to the intended size
+    - serial: 8250: Add missing wakeup event reporting
+    - staging: rtl8192e: Fix W_DISABLE# does not work after stop/start
+    - spmi: Add a check for remove callback when removing a SPMI driver
+    - macintosh/windfarm_smu_sat: Add missing of_node_put()
+    - powerpc/mpc512x: fix resource printk format warning
+    - powerpc/wii: fix resource printk format warnings
+    - powerpc/sysdev/tsi108: fix resource printk format warnings
+    - macintosh: via-pmu-led: requires ATA to be set
+    - powerpc/rtas: use memmove for potentially overlapping buffer copy
+    - perf/core: Fix hardlockup failure caused by perf throttle
+    - RDMA/siw: Fix potential page_array out of range access
+    - RDMA/rdmavt: Delete unnecessary NULL check
+    - rtc: omap: include header for omap_rtc_power_off_program prototype
+    - RDMA/mlx4: Prevent shift wrapping in set_user_sq_size()
+    - rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
+    - power: supply: generic-adc-battery: fix unit scaling
+    - clk: add missing of_node_put() in "assigned-clocks" property parsing
+    - RDMA/siw: Remove namespace check from siw_netdev_event()
+    - IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order
+    - NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease
+    - firmware: raspberrypi: Keep count of all consumers
+    - firmware: raspberrypi: Introduce devm_rpi_firmware_get()
+    - input: raspberrypi-ts: Release firmware handle when not needed
+    - Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe
+    - SUNRPC: remove the maximum number of retries in call_bind_status
+    - RDMA/mlx5: Use correct device num_ports when modify DC
+    - clocksource/drivers/davinci: Avoid trailing '\n' hidden in pr_fmt()
+    - clocksource: davinci: axe a pointless __GFP_NOFAIL
+    - clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when
+      init fails
+    - openrisc: Properly store r31 to pt_regs on unhandled exceptions
+    - ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline
+    - leds: TI_LMU_COMMON: select REGMAP instead of depending on it
+    - dmaengine: mv_xor_v2: Fix an error code.
+    - pwm: mtk-disp: Don't check the return code of pwmchip_remove()
+    - pwm: mtk-disp: Adjust the clocks to avoid them mismatch
+    - pwm: mtk-disp: Disable shadow registers before setting backlight values
+    - phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and
+      ulpi_port
+    - dmaengine: dw-edma: Fix to change for continuous transfer
+    - dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing
+    - dmaengine: at_xdmac: do not enable all cyclic channels
+    - afs: Fix updating of i_size with dv jump from server
+    - parisc: Fix argument pointer in real64_call_asm()
+    - nilfs2: do not write dirty data after degenerating to read-only
+    - nilfs2: fix infinite loop in nilfs_mdt_get_block()
+    - md/raid10: fix null-ptr-deref in raid10_sync_request
+    - mailbox: zynqmp: Fix IPI isr handling
+    - mailbox: zynqmp: Fix typo in IPI documentation
+    - wifi: rtl8xxxu: RTL8192EU always needs full init
+    - clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent
+    - scripts/gdb: fix lx-timerlist for Python3
+    - btrfs: scrub: reject unsupported scrub flags
+    - s390/dasd: fix hanging blockdevice after request requeue
+    - dm clone: call kmem_cache_destroy() in dm_clone_init() error path
+    - dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path
+    - dm flakey: fix a crash with invalid table line
+    - perf auxtrace: Fix address filter entire kernel size
+    - perf intel-pt: Fix CYC timestamps after standalone CBR
+    - debugobject: Ensure pool refill (again)
+    - nohz: Add TICK_DEP_BIT_RCU
+    - tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
+    - mailbox: zynq: Switch to flexible array to simplify code
+    - mailbox: zynqmp: Fix counts of child nodes
+    - dm verity: skip redundant verity_handle_err() on I/O errors
+    - dm verity: fix error handling for check_at_most_once on FEC
+    - crypto: inside-secure - irq balance
+    - crypto: safexcel - Cleanup ring IRQ workqueues on load failure
+    - net/ncsi: clear Tx enable mode when handling a Config required AEN
+    - net/sched: cls_api: remove block_cb from driver_list before freeing
+    - sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
+    - net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu
+    - writeback: fix call of incorrect macro
+    - net/sched: act_mirred: Add carrier check
+    - rxrpc: Fix hard call timeout units
+    - ionic: remove noise from ethtool rxnfc error msg
+    - af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
+    - drm/amdgpu: add a missing lock for AMDGPU_SCHED
+    - ALSA: caiaq: input: Add error handling for unsupported input methods in
+      `snd_usb_caiaq_input_init`
+    - net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
+    - virtio_net: split free_unused_bufs()
+    - virtio_net: suppress cpu stall when free_unused_bufs
+    - perf vendor events power9: Remove UTF-8 characters from JSON files
+    - perf map: Delete two variable initialisations before null pointer checks in
+      sort__sym_from_cmp()
+    - perf symbols: Fix return incorrect build_id size in elf_read_build_id()
+    - btrfs: fix btrfs_prev_leaf() to not return the same key twice
+    - btrfs: don't free qgroup space unless specified
+    - btrfs: print-tree: parent bytenr must be aligned to sector size
+    - cifs: fix pcchunk length type in smb2_copychunk_range
+    - platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i
+    - inotify: Avoid reporting event with invalid wd
+    - sh: math-emu: fix macro redefined warning
+    - sh: init: use OF_EARLY_FLATTREE for early init
+    - sh: nmi_debug: fix return value of __setup handler
+    - remoteproc: stm32: Call of_node_put() on iteration error
+    - remoteproc: st: Call of_node_put() on iteration error
+    - ARM: dts: exynos: fix WM8960 clock name in Itop Elite
+    - ARM: dts: s5pv210: correct MIPI CSIS clock name
+    - f2fs: fix potential corruption when moving a directory
+    - drm/panel: otm8009a: Set backlight parent to panel device
+    - drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
+    - drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx
+      ras
+    - drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend
+    - HID: wacom: Set a default resolution for older tablets
+    - HID: wacom: insert timestamp to packed Bluetooth (BT) events
+    - ext4: fix WARNING in mb_find_extent
+    - ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
+    - ext4: fix data races when using cached status extents
+    - ext4: improve error recovery code paths in __ext4_remount()
+    - ext4: fix deadlock when converting an inline directory in nojournal mode
+    - ext4: add bounds checking in get_max_inline_xattr_value_size()
+    - ext4: bail out of ext4_xattr_ibody_get() fails for any reason
+    - ext4: remove a BUG_ON in ext4_mb_release_group_pa()
+    - ext4: fix invalid free tracking in ext4_xattr_move_to_block()
+    - tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH
+    - serial: 8250: Fix serial8250_tx_empty() race with DMA Tx
+    - drbd: correctly submit flush bio on barrier
+    - PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
+    - PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock
+    - printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h
+    - PM: domains: Restore comment indentation for generic_pm_domain.child_links
+    - drm/msm: Fix double pm_runtime_disable() call
+    - firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe()
+    - drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()
+    - drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
+    - mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
+    - drm/amd/display: Fix hang when skipping modeset
+    - Linux 5.4.243
+    - Upstream stable to v5.4.243
+
+  * Focal update: v5.4.243 upstream stable release (LP: #2025387) //
+    CVE-2023-2269
+    - dm ioctl: fix nested locking in table_clear() to remove deadlock concern
+
+  * Focal update: v5.4.242 upstream stable release (LP: #2025094)
+    - ARM: dts: rockchip: fix a typo error for rk3288 spdif node
+    - arm64: dts: meson-g12-common: specify full DMC range
+    - netfilter: br_netfilter: fix recent physdev match breakage
+    - regulator: fan53555: Explicitly include bits header
+    - virtio_net: bugfix overflow inside xdp_linearize_page()
+    - netfilter: nf_tables: fix ifdef to also consider nf_tables=m
+    - i40e: fix accessing vsi->active_filters without holding lock
+    - i40e: fix i40e_setup_misc_vector() error handling
+    - mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next()
+    - bpf: Fix incorrect verifier pruning due to missing register precision taints
+    - e1000e: Disable TSO on i219-LM card to increase speed
+    - f2fs: Fix f2fs_truncate_partial_nodes ftrace event
+    - Input: i8042 - add quirk for Fujitsu Lifebook A574/H
+    - selftests: sigaltstack: fix -Wuninitialized
+    - scsi: megaraid_sas: Fix fw_crash_buffer_show()
+    - scsi: core: Improve scsi_vpd_inquiry() checks
+    - net: dsa: b53: mmap: add phy ops
+    - s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling
+    - nvme-tcp: fix a possible UAF when failing to allocate an io queue
+    - xen/netback: use same error messages for same errors
+    - iio: light: tsl2772: fix reading proximity-diodes from device tree
+    - nilfs2: initialize unused bytes in segment summary blocks
+    - memstick: fix memory leak if card device is never registered
+    - mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25
+    - MIPS: Define RUNTIME_DISCARD_EXIT in LD script
+    - x86/purgatory: Don't generate debug info for purgatory.ro
+    - Revert "ext4: fix use-after-free in ext4_xattr_set_entry"
+    - ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
+    - ext4: fix use-after-free in ext4_xattr_set_entry
+    - udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM).
+    - tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct().
+    - inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
+    - dccp: Call inet6_destroy_sock() via sk->sk_destruct().
+    - sctp: Call inet6_destroy_sock() via sk->sk_destruct().
+    - xfs: fix forkoff miscalculation related to XFS_LITINO(mp)
+    - pwm: meson: Explicitly set .polarity in .get_state()
+    - iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger()
+    - ASN.1: Fix check for strdup() success
+    - Linux 5.4.242
+    - Upstream stable to v5.4.242
+
+  * CVE-2023-31084 // CVE-2023-31084 was assigned to this bug.
+    - media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
+
+  * CVE-2023-3776
+    - net/sched: cls_fw: Fix improper refcount update leads to use-after-free
+
+  * CVE-2023-3268
+    - kernel/relay.c: fix read_pos error when multiple readers
+    - relayfs: fix out-of-bounds access in relay_file_read
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] resync getabis
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Wed, 09 Aug 2023 12:45:40 +0200
+
+linux (5.4.0-156.173) focal; urgency=medium
+
+  * focal/linux: 5.4.0-156.173 -proposed tracker (LP: #2026585)
+
+  * CVE-2023-3390
+    - netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE
+
+  * Focal update: v5.4.241 upstream stable release (LP: #2023930)
+    - scsi: ses: Handle enclosure with just a primary component gracefully
+    - x86/PCI: Add quirk for AMD XHCI controller that loses MSI-X state in D3hot
+    - cgroup/cpuset: Wake up cpuset_attach_wq tasks in cpuset_cancel_attach()
+    - treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
+    - smb3: fix problem with null cifs super block with previous patch
+    - pinctrl: amd: Use irqchip template
+    - pinctrl: amd: disable and mask interrupts on probe
+    - pinctrl: amd: Disable and mask interrupts on resume
+    - pwm: cros-ec: Explicitly set .polarity in .get_state()
+    - pwm: sprd: Explicitly set .polarity in .get_state()
+    - wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded
+      sta
+    - icmp: guard against too small mtu
+    - net: don't let netpoll invoke NAPI if in xmit context
+    - sctp: check send stream number after wait_for_sndbuf
+    - ipv6: Fix an uninit variable access bug in __ip6_make_skb()
+    - gpio: davinci: Add irq chip flag to skip set wake
+    - sunrpc: only free unix grouplist after RCU settles
+    - NFSD: callback request does not use correct credential for AUTH_SYS
+    - xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
+    - USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs
+    - usb: typec: altmodes/displayport: Fix configure initial pin assignment
+    - USB: serial: option: add Telit FE990 compositions
+    - USB: serial: option: add Quectel RM500U-CN modem
+    - iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip
+    - iio: dac: cio-dac: Fix max DAC write value check for 12-bit
+    - tty: serial: sh-sci: Fix transmit end interrupt handler
+    - tty: serial: sh-sci: Fix Rx on RZ/G2L SCI
+    - tty: serial: fsl_lpuart: avoid checking for transfer complete when
+      UARTCTRL_SBK is asserted in lpuart32_tx_empty
+    - nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread()
+    - nilfs2: fix sysfs interface lifetime
+    - ALSA: hda/realtek: Add quirk for Clevo X370SNW
+    - perf/core: Fix the same task check in perf_event_set_output
+    - ftrace: Mark get_lock_parent_ip() __always_inline
+    - can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access
+    - tracing: Free error logs of tracing instances
+    - net_sched: prevent NULL dereference if default qdisc setup failed
+    - drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path
+    - ring-buffer: Fix race while reader and writer are on the same page
+    - mm/swap: fix swap_info_struct race between swapoff and get_swap_pages()
+    - irqdomain: Look for existing mapping only once
+    - irqdomain: Refactor __irq_domain_alloc_irqs()
+    - irqdomain: Fix mapping-creation race
+    - Revert "pinctrl: amd: Disable and mask interrupts on resume"
+    - ALSA: emu10k1: fix capture interrupt handler unlinking
+    - ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboard
+    - ALSA: i2c/cs8427: fix iec958 mixer control deactivation
+    - ALSA: firewire-tascam: add missing unwind goto in
+      snd_tscm_stream_start_duplex()
+    - ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45* motherboards
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp}
+    - Bluetooth: Fix race condition in hidp_session_thread
+    - btrfs: print checksum type and implementation at mount time
+    - btrfs: fix fast csum implementation detection
+    - mtdblock: tolerate corrected bit-flips
+    - mtd: rawnand: meson: fix bitmask for length in command word
+    - mtd: rawnand: stm32_fmc2: remove unsupported EDO mode
+    - niu: Fix missing unwind goto in niu_alloc_channels()
+    - qlcnic: check pci_reset_function result
+    - sctp: fix a potential overflow in sctp_ifwdtsn_skip
+    - RDMA/core: Fix GID entry ref leak when create_ah fails
+    - udp6: fix potential access to stale information
+    - net: macb: fix a memory corruption in extended buffer descriptor mode
+    - power: supply: cros_usbpd: reclassify "default case!" as debug
+    - i2c: imx-lpi2c: clean rx/tx buffers upon new message
+    - efi: sysfb_efi: Add quirk for Lenovo Yoga Book X91F/L
+    - drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Book X90F
+    - verify_pefile: relax wrapper length check
+    - asymmetric_keys: log on fatal failures in PE/pkcs7
+    - ubi: Fix failure attaching when vid_hdr offset equals to (sub)page size
+    - mtd: ubi: wl: Fix a couple of kernel-doc issues
+    - ubi: Fix deadlock caused by recursively holding work_sem
+    - i2c: ocores: generate stop condition after timeout in polling mode
+    - watchdog: sbsa_wdog: Make sure the timeout programming is within the limits
+    - coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug
+    - xfs: show the proper user quota options
+    - xfs: remove the kuid/kgid conversion wrappers
+    - xfs: add a new xfs_sb_version_has_v3inode helper
+    - xfs: only check the superblock version for dinode size calculation
+    - xfs: simplify di_flags2 inheritance in xfs_ialloc
+    - xfs: simplify a check in xfs_ioctl_setattr_check_cowextsize
+    - xfs: remove the di_version field from struct icdinode
+    - xfs: set inode size after creating symlink
+    - xfs: report corruption only as a regular error
+    - xfs: shut down the filesystem if we screw up quota reservation
+    - xfs: consider shutdown in bmapbt cursor delete assert
+    - xfs: don't reuse busy extents on extent trim
+    - xfs: force log and push AIL to clear pinned inodes when aborting mount
+    - Linux 5.4.241
+
+  * [UBUNTU 20.04] [HPS] Kernel panic with "refcount_t: underflow" in mlx5
+    driver (LP: #2019011)
+    - net/mlx5: cmdif, Avoid skipping reclaim pages if FW is not accessible
+    - net/mlx5: Fix handling of entry refcount when command is not issued to FW
+
+  * Disable hv-kvp-daemon if /dev/vmbus/hv_kvp is not present (LP: #2024900)
+    - [Packaging] disable hv-kvp-daemon if needed
+
+  * CVE-2023-35001
+    - netfilter: nf_tables: prevent OOB access in nft_byteorder_eval
+
+  * CVE-2023-32629
+    - ovl: adhere to the vfs_ vs. ovl_do_ conventions for xattrs
+
+  * CVE-2023-3141
+    - memstick: r592: Fix UAF bug in r592_remove due to race condition
+
+  * CVE-2023-3111
+    - btrfs: check return value of btrfs_commit_transaction in relocation
+    - btrfs: unset reloc control if transaction commit fails in
+      prepare_to_relocate()
+
+  * CVE-2023-3090
+    - ipvlan:Fix out-of-bounds caused by unclear skb->cb
+
+  * CVE-2023-1611
+    - btrfs: fix race between quota disable and quota assign ioctls
+
+  * CVE-2022-0168
+    - cifs: move some variables off the stack in smb2_ioctl_query_info
+    - cifs: prevent bad output lengths in smb2_ioctl_query_info()
+    - cifs: fix NULL ptr dereference in smb2_ioctl_query_info()
+
+  * CVE-2022-27672
+    - x86/speculation: Identify processors vulnerable to SMT RSB predictions
+    - KVM: x86: Mitigate the cross-thread return address predictions bug
+    - Documentation/hw-vuln: Add documentation for Cross-Thread Return Predictions
+
+  * Severe NFS performance degradation after LP #2003053 (LP: #2022098)
+    - SAUCE: Make NFS file-access stale cache behaviour opt-in
+
+  * Encountering an issue with memcpy_fromio causing failed boot of SEV-enabled
+    guest (LP: #2020319)
+    - x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO
+
+  * Focal update: v5.4.240 upstream stable release (LP: #2023601)
+    - net: tls: fix possible race condition between do_tls_getsockopt_conf() and
+      do_tls_setsockopt_conf()
+    - power: supply: da9150: Fix use after free bug in da9150_charger_remove due
+      to race condition
+    - iavf: fix inverted Rx hash condition leading to disabled hash
+    - iavf: fix non-tunneled IPv6 UDP packet type and hashing
+    - intel/igbvf: free irq on the error path in igbvf_request_msix()
+    - igbvf: Regard vf reset nack as success
+    - i2c: imx-lpi2c: check only for enabled interrupt flags
+    - scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()
+    - net: usb: smsc95xx: Limit packet length to skb->len
+    - qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info
+    - net: qcom/emac: Fix use after free bug in emac_remove due to race condition
+    - net/ps3_gelic_net: Fix RX sk_buff length
+    - net/ps3_gelic_net: Use dma_mapping_error
+    - keys: Do not cache key in task struct if key is requested from kernel thread
+    - bpf: Adjust insufficient default bpf_jit_limit
+    - net/mlx5: Read the TC mapping of all priorities on ETS query
+    - atm: idt77252: fix kmemleak when rmmod idt77252
+    - erspan: do not use skb_mac_header() in ndo_start_xmit()
+    - net/sonic: use dma_mapping_error() for error check
+    - nvme-tcp: fix nvme_tcp_term_pdu to match spec
+    - hvc/xen: prevent concurrent accesses to the shared ring
+    - net: mdio: thunder: Add missing fwnode_handle_put()
+    - Bluetooth: btqcomsmd: Fix command timeout after setting BD address
+    - platform/chrome: cros_ec_chardev: fix kernel data leak from ioctl
+    - hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs
+    - scsi: qla2xxx: Perform lockless command completion in abort path
+    - uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2
+    - thunderbolt: Use const qualifier for `ring_interrupt_index`
+    - riscv: Bump COMMAND_LINE_SIZE value to 1024
+    - ca8210: fix mac_len negative array access
+    - m68k: Only force 030 bus error if PC not in exception table
+    - selftests/bpf: check that modifier resolves after pointer
+    - scsi: target: iscsi: Fix an error message in iscsi_check_key()
+    - scsi: ufs: core: Add soft dependency on governor_simpleondemand
+    - scsi: lpfc: Avoid usage of list iterator variable after loop
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990
+    - net: usb: qmi_wwan: add Telit 0x1080 composition
+    - sh: sanitize the flags on sigreturn
+    - cifs: empty interface list when server doesn't support query interfaces
+    - scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR
+    - usb: gadget: u_audio: don't let userspace block driver unbind
+    - fsverity: Remove WQ_UNBOUND from fsverity read workqueue
+    - igb: revert rtnl_lock() that causes deadlock
+    - dm thin: fix deadlock when swapping to thin device
+    - usb: cdns3: Fix issue with using incorrect PCI device function
+    - usb: chipdea: core: fix return -EINVAL if request role is the same with
+      current role
+    - usb: chipidea: core: fix possible concurrent when switch role
+    - wifi: mac80211: fix qos on mesh interfaces
+    - nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy()
+    - i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer()
+    - dm stats: check for and propagate alloc_percpu failure
+    - dm crypt: add cond_resched() to dmcrypt_write()
+    - sched/fair: sanitize vruntime of entity being placed
+    - sched/fair: Sanitize vruntime of entity being migrated
+    - tun: avoid double free in tun_free_netdev
+    - ocfs2: fix data corruption after failed write
+    - fsverity: don't drop pagecache at end of FS_IOC_ENABLE_VERITY
+    - bus: imx-weim: fix branch condition evaluates to a garbage value
+    - md: avoid signed overflow in slot_store()
+    - ALSA: asihpi: check pao in control_message()
+    - ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set()
+    - fbdev: tgafb: Fix potential divide by zero
+    - sched_getaffinity: don't assume 'cpumask_size()' is fully initialized
+    - fbdev: nvidia: Fix potential divide by zero
+    - fbdev: intelfb: Fix potential divide by zero
+    - fbdev: lxfb: Fix potential divide by zero
+    - fbdev: au1200fb: Fix potential divide by zero
+    - ca8210: Fix unsigned mac_len comparison with zero in ca8210_skb_tx()
+    - dma-mapping: drop the dev argument to arch_sync_dma_for_*
+    - mips: bmips: BCM6358: disable RAC flush for TP1
+    - mtd: rawnand: meson: invalidate cache on polling ECC bit
+    - scsi: megaraid_sas: Fix crash after a double completion
+    - ptp_qoriq: fix memory leak in probe()
+    - regulator: fix spelling mistake "Cant" -> "Can't"
+    - regulator: Handle deferred clk
+    - net/net_failover: fix txq exceeding warning
+    - can: bcm: bcm_tx_setup(): fix KMSAN uninit-value in vfs_write
+    - s390/vfio-ap: fix memory leak in vfio_ap device driver
+    - i40e: fix registers dump after run ethtool adapter self test
+    - bnxt_en: Fix typo in PCI id to device description string mapping
+    - net: dsa: mv88e6xxx: Enable IGMP snooping on user ports only
+    - net: mvneta: make tx buffer array agnostic
+    - pinctrl: ocelot: Fix alt mode for ocelot
+    - Input: alps - fix compatibility with -funsigned-char
+    - Input: focaltech - use explicitly signed char type
+    - cifs: prevent infinite recursion in CIFSGetDFSRefer()
+    - cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL
+    - Input: goodix - add Lenovo Yoga Book X90F to nine_bytes_report DMI table
+    - xen/netback: don't do grant copy across page boundary
+    - pinctrl: at91-pio4: fix domain name assignment
+    - NFSv4: Fix hangs when recovering open state after a server reboot
+    - ALSA: hda/conexant: Partial revert of a quirk for Lenovo
+    - ALSA: usb-audio: Fix regression on detection of Roland VS-100
+    - drm/etnaviv: fix reference leak when mmaping imported buffer
+    - btrfs: scan device in non-exclusive mode
+    - ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
+    - net_sched: add __rcu annotation to netdev->qdisc
+    - net: sched: fix race condition in qdisc_graft()
+    - firmware: arm_scmi: Fix device node validation for mailbox transport
+    - gfs2: Always check inode size of inline inodes
+    - Linux 5.4.240
+
+  * Focal update: v5.4.239 upstream stable release (LP: #2023600)
+    - Linux 5.4.239
+
+  * CVE-2023-2124
+    - xfs: verify buffer contents when we skip log replay
+
+  * CVE-2020-36691
+    - netlink: limit recursion depth in policy validation
+
+  * CVE-2022-1184
+    - ext4: check if directory block is within i_size
+    - ext4: fix check for block being out of directory size
+
+  * CVE-2022-4269
+    - net: sched: extract qstats update code into functions
+    - net: sched: don't expose action qstats to skb_tc_reinsert()
+    - net/sched: act_mirred: refactor the handle of xmit
+    - net: sched: remove unused tcf_result extension
+    - net/sched: act_mirred: better wording on protection against excessive stack
+      growth
+    - act_mirred: use the backlog for nested calls to mirred ingress
+
+  * Focal update: v5.4.238 upstream stable release (LP: #2023427)
+    - ext4: fix cgroup writeback accounting with fs-layer encryption
+    - xfrm: Allow transport-mode states with AF_UNSPEC selector
+    - drm/panfrost: Don't sync rpm suspension after mmu flushing
+    - cifs: Move the in_send statistic to __smb_send_rqst()
+    - drm/meson: fix 1px pink line on GXM when scaling video overlay
+    - clk: HI655X: select REGMAP instead of depending on it
+    - docs: Correct missing "d_" prefix for dentry_operations member
+      d_weak_revalidate
+    - scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add()
+    - ALSA: hda - add Intel DG1 PCI and HDMI ids
+    - ALSA: hda - controller is in GPU on the DG1
+    - ALSA: hda: Add Alderlake-S PCI ID and HDMI codec vid
+    - ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
+    - ALSA: hda: Match only Intel devices with CONTROLLER_IN_GPU()
+    - netfilter: nft_redir: correct value of inet type `.maxattrs`
+    - scsi: core: Fix a comment in function scsi_host_dev_release()
+    - scsi: core: Fix a procfs host directory removal regression
+    - tcp: tcp_make_synack() can be called from process context
+    - nfc: pn533: initialize struct pn533_out_arg properly
+    - ipvlan: Make skb->skb_iif track skb->dev for l3s mode
+    - i40e: Fix kernel crash during reboot when adapter is in recovery mode
+    - qed/qed_dev: guard against a possible division by zero
+    - net: tunnels: annotate lockless accesses to dev->needed_headroom
+    - net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails
+    - nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition
+    - net: usb: smsc75xx: Limit packet length to skb->len
+    - nvmet: avoid potential UAF in nvmet_req_complete()
+    - block: sunvdc: add check for mdesc_grab() returning NULL
+    - ipv4: Fix incorrect table ID in IOCTL path
+    - net: usb: smsc75xx: Move packet length check to prevent kernel panic in
+      skb_pull
+    - net/iucv: Fix size of interrupt data
+    - ethernet: sun: add check for the mdesc_grab()
+    - hwmon: (adt7475) Display smoothing attributes in correct order
+    - hwmon: (adt7475) Fix masking of hysteresis registers
+    - hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race
+      condition
+    - hwmon: (ina3221) return prober error code
+    - media: m5mols: fix off-by-one loop termination error
+    - mmc: atmel-mci: fix race between stop command and start of next command
+    - jffs2: correct logic when creating a hole in jffs2_write_begin
+    - ext4: fail ext4_iget if special inode unallocated
+    - ext4: fix task hung in ext4_xattr_delete_inode
+    - drm/amdkfd: Fix an illegal memory access
+    - sh: intc: Avoid spurious sizeof-pointer-div warning
+    - ext4: fix possible double unlock when moving a directory
+    - tty: serial: fsl_lpuart: skip waiting for transmission complete when
+      UARTCTRL_SBK is asserted
+    - interconnect: fix mem leak when freeing nodes
+    - tracing: Check field value in hist_field_name()
+    - tracing: Make tracepoint lockdep check actually test something
+    - ftrace: Fix invalid address access in lookup_rec() when index is 0
+    - fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks
+    - x86/mm: Fix use of uninitialized buffer in sme_enable()
+    - drm/i915: Don't use stolen memory for ring buffers with LLC
+    - serial: 8250_em: Fix UART port type
+    - s390/ipl: add missing intersection check to ipl_report handling
+    - PCI: Unify delay handling for reset and resume
+    - HID: core: Provide new max_buffer_size attribute to over-ride the default
+    - HID: uhid: Over-ride the default maximum data buffer value with our own
+    - Linux 5.4.238
+
+  * Focal update: v5.4.237 upstream stable release (LP: #2023420)
+    - fs: prevent out-of-bounds array speculation when closing a file descriptor
+    - x86/CPU/AMD: Disable XSAVES on AMD family 0x17
+    - drm/connector: print max_requested_bpc in state debugfs
+    - ext4: fix RENAME_WHITEOUT handling for inline directories
+    - ext4: fix another off-by-one fsmap error on 1k block filesystems
+    - ext4: move where set the MAY_INLINE_DATA flag is set
+    - ext4: fix WARNING in ext4_update_inline_data
+    - ext4: zero i_disksize when initializing the bootloader inode
+    - nfc: change order inside nfc_se_io error path
+    - iommu/amd: Add PCI segment support for ivrs_[ioapic/hpet/acpihid] commands
+    - iommu/amd: Fix ill-formed ivrs_ioapic, ivrs_hpet and ivrs_acpihid options
+    - iommu/amd: Add a length limitation for the ivrs_acpihid command-line
+      parameter
+    - ipmi:ssif: make ssif_i2c_send() void
+    - ipmi:ssif: resend_msg() cannot fail
+    - ipmi:ssif: Remove rtc_us_timer
+    - ipmi:ssif: Increase the message retry time
+    - ipmi:ssif: Add a timer between request retries
+    - irqdomain: Change the type of 'size' in __irq_domain_add() to be consistent
+    - irqdomain: Fix domain registration race
+    - iommu/vt-d: Fix PASID directory pointer coherency
+    - SMB3: Backup intent flag missing from some more ops
+    - cifs: Fix uninitialized memory read in smb3_qfs_tcon()
+    - scsi: core: Remove the /proc/scsi/${proc_name} directory earlier
+    - ext4: Fix possible corruption when moving a directory
+    - drm/msm/a5xx: fix setting of the CP_PREEMPT_ENABLE_LOCAL register
+    - nfc: fdp: add null check of devm_kmalloc_array in
+      fdp_nci_i2c_read_device_properties
+    - ila: do not generate empty messages in ila_xlat_nl_cmd_get_mapping()
+    - selftests: nft_nat: ensuring the listening side is up before starting the
+      client
+    - net: usb: lan78xx: Remove lots of set but unused 'ret' variables
+    - net: lan78xx: fix accessing the LAN7800's internal phy specific registers
+      from the MAC driver
+    - net: caif: Fix use-after-free in cfusbl_device_notify()
+    - bnxt_en: Avoid order-5 memory allocation for TPA data
+    - netfilter: tproxy: fix deadlock due to missing BH disable
+    - btf: fix resolving BTF_KIND_VAR after ARRAY, STRUCT, UNION, PTR
+    - scsi: megaraid_sas: Update max supported LD IDs to 240
+    - net/smc: fix fallback failed while sendmsg with fastopen
+    - riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode
+    - ext4: Fix deadlock during directory rename
+    - MIPS: Fix a compilation issue
+    - alpha: fix R_ALPHA_LITERAL reloc for large modules
+    - macintosh: windfarm: Use unsigned type for 1-bit bitfields
+    - PCI: Add SolidRun vendor ID
+    - media: ov5640: Fix analogue gain control
+    - ipmi/watchdog: replace atomic_add() and atomic_sub()
+    - ipmi:watchdog: Set panic count to proper value on a panic
+    - drm/i915: Don't use BAR mappings for ring buffers with LLC
+    - x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
+    - arch: fix broken BuildID for arm64 and riscv
+    - powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
+    - powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
+    - s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
+    - sh: define RUNTIME_DISCARD_EXIT
+    - UML: define RUNTIME_DISCARD_EXIT
+    - s390/dasd: add missing discipline function
+    - Linux 5.4.237
+
+  * Focal update: v5.4.236 upstream stable release (LP: #2020390)
+    - staging: rtl8192e: Remove function ..dm_check_ac_dc_power calling a script
+    - staging: rtl8192e: Remove call_usermodehelper starting RadioPower.sh
+    - Linux 5.4.236
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Mon, 10 Jul 2023 17:38:56 +0200
+
+linux (5.4.0-153.170) focal; urgency=medium
+
+  * focal/linux: 5.4.0-153.170 -proposed tracker (LP: #2024108)
+
+  * cls_flower: off-by-one in fl_set_geneve_opt (LP: #2023577)
+    - net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
+
+  * Some INVLPG implementations can leave Global translations unflushed when
+    PCIDs are enabled (LP: #2023220)
+    - x86/mm: Avoid incomplete Global INVLPG flushes
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 16 Jun 2023 10:20:20 -0300
+
+linux (5.4.0-152.169) focal; urgency=medium
+
+  * focal/linux: 5.4.0-152.169 -proposed tracker (LP: #2023070)
+
+  * Focal update: v5.4.236 upstream stable release (LP: #2020390)
+    - wifi: cfg80211: Partial revert "wifi: cfg80211: Fix use after free for wext"
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync getabis
+
+ -- Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>  Tue, 06 Jun 2023 14:45:17 -0700
+
+linux (5.4.0-151.168) focal; urgency=medium
+
+  * focal/linux: 5.4.0-151.168 -proposed tracker (LP: #2019375)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - debian/dkms-versions -- update from kernel-versions (main/2023.05.15)
+
+  * CVE-2023-32233
+    - netfilter: nf_tables: deactivate anonymous set from preparation phase
+
+  * CVE-2023-2612
+    - SAUCE: shiftfs: prevent lock unbalance in shiftfs_create_object()
+
+  * CVE-2023-31436
+    - net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg
+
+  * CVE-2023-1380
+    - wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
+
+  * Focal update: Focal update: v5.4.235 upstream stable release (LP: #2017706)
+    - HID: asus: Remove check for same LED brightness on set
+    - HID: asus: use spinlock to protect concurrent accesses
+    - HID: asus: use spinlock to safely schedule workers
+    - ARM: OMAP2+: Fix memory leak in realtime_counter_init()
+    - arm64: dts: qcom: qcs404: use symbol names for PCIe resets
+    - ARM: zynq: Fix refcount leak in zynq_early_slcr_init
+    - arm64: dts: meson-gx: Fix Ethernet MAC address unit name
+    - arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name
+    - arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address
+    - arm64: dts: meson: remove CPU opps below 1GHz for G12A boards
+    - ARM: OMAP1: call platform_device_put() in error case in
+      omap1_dm_timer_init()
+    - ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato
+    - ARM: imx: Call ida_simple_remove() for ida_simple_get
+    - arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name
+    - arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name
+    - arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible
+    - arm64: dts: amlogic: meson-gx: add missing unit address to rng node name
+    - arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node
+      name
+    - arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name
+    - ARM: dts: imx7s: correct iomuxc gpr mux controller cells
+    - arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
+    - Revert "scsi: core: run queue if SCSI device queue isn't ready and queue is
+      idle"
+    - block: Limit number of items taken from the I/O scheduler in one go
+    - blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx
+    - blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait
+    - blk-mq: correct stale comment of .get_budget
+    - s390/dasd: Prepare for additional path event handling
+    - s390/dasd: Fix potential memleak in dasd_eckd_init()
+    - sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity()
+    - sched/rt: pick_next_rt_entity(): check list_entry
+    - block: bio-integrity: Copy flags when bio_integrity_payload is cloned
+    - wifi: rsi: Fix memory leak in rsi_coex_attach()
+    - net/wireless: Delete unnecessary checks before the macro call
+      “dev_kfree_skb”
+    - wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: fix memory leak in lbs_init_adapter()
+    - wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - rtlwifi: fix -Wpointer-sign warning
+    - wifi: rtlwifi: Fix global-out-of-bounds bug in
+      _rtl8812ae_phy_set_txpower_limit()
+    - ipw2x00: switch from 'pci_' to 'dma_' API
+    - wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - wifi: ipw2200: fix memory leak in ipw_wdev_init()
+    - wilc1000: let wilc_mac_xmit() return NETDEV_TX_OK
+    - wifi: wilc1000: fix potential memory leak in wilc_mac_xmit()
+    - wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()
+    - wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid()
+    - wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave()
+    - crypto: x86/ghash - fix unaligned access in ghash_setkey()
+    - ACPICA: Drop port I/O validation for some regions
+    - genirq: Fix the return type of kstat_cpu_irqs_sum()
+    - lib/mpi: Fix buffer overrun when SG is too long
+    - ACPICA: nsrepair: handle cases without a return value correctly
+    - wifi: orinoco: check return value of hermes_write_wordrec()
+    - wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback
+      function
+    - ath9k: hif_usb: simplify if-if to if-else
+    - ath9k: htc: clean up statistics macros
+    - wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
+    - wifi: ath9k: Fix potential stack-out-of-bounds write in
+      ath9k_wmi_rsp_callback()
+    - ACPI: battery: Fix missing NUL-termination with large strings
+    - crypto: ccp - Failure on re-initialization due to duplicate sysfs filename
+    - crypto: essiv - remove redundant null pointer check before kfree
+    - crypto: essiv - Handle EBUSY correctly
+    - crypto: seqiv - Handle EBUSY correctly
+    - powercap: fix possible name leak in powercap_register_zone()
+    - net/mlx5: Enhance debug print in page allocation failure
+    - irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains
+    - irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe
+    - irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
+    - mptcp: add sk_stop_timer_sync helper
+    - net: add sock_init_data_uid()
+    - tun: tun_chr_open(): correctly initialize socket uid
+    - tap: tap_open(): correctly initialize socket uid
+    - OPP: fix error checking in opp_migrate_dentry()
+    - Bluetooth: L2CAP: Fix potential user-after-free
+    - libbpf: Fix alen calculation in libbpf_nla_dump_errormsg()
+    - rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
+    - crypto: rsa-pkcs1pad - Use akcipher_request_complete
+    - m68k: /proc/hardware should depend on PROC_FS
+    - RISC-V: time: initialize hrtimer based broadcast clock event device
+    - usb: gadget: udc: Avoid tasklet passing a global
+    - wifi: iwl3945: Add missing check for create_singlethread_workqueue
+    - wifi: iwl4965: Add missing check for create_singlethread_workqueue()
+    - wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize()
+    - crypto: crypto4xx - Call dma_unmap_page when done
+    - wifi: mac80211: make rate u32 in sta_set_rate_info_rx()
+    - thermal/drivers/hisi: Drop second sensor hi3660
+    - can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a
+      bus error
+    - irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
+    - irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
+    - selftests/net: Interpret UDP_GRO cmsg data as an int value
+    - drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats
+    - drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC
+    - drm/bridge: megachips: Fix error handling in i2c_register_driver()
+    - drm/vc4: dpi: Add option for inverting pixel clock and output enable
+    - drm/vc4: dpi: Fix format mapping for RGB565
+    - gpu: ipu-v3: common: Add of_node_put() for reference returned by
+      of_graph_get_port_by_id()
+    - drm/msm/hdmi: Add missing check for alloc_ordered_workqueue
+    - pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain
+    - ASoC: fsl_sai: initialize is_dsp_mode flag
+    - ALSA: hda/ca0132: minor fix for allocation size
+    - drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness
+    - drm/msm: use strscpy instead of strncpy
+    - drm/msm/dpu: Add check for cstate
+    - drm/msm/dpu: Add check for pstates
+    - drm/exynos: Don't reset bridge->next
+    - drm/bridge: Rename bridge helpers targeting a bridge chain
+    - drm/bridge: Introduce drm_bridge_get_next_bridge()
+    - drm: Initialize struct drm_crtc_state.no_vblank from device settings
+    - drm/msm/mdp5: Add check for kzalloc
+    - gpu: host1x: Don't skip assigning syncpoints to channels
+    - drm/mediatek: remove cast to pointers passed to kfree
+    - drm/mediatek: Use NULL instead of 0 for NULL pointer
+    - drm/mediatek: Drop unbalanced obj unref
+    - drm/mediatek: Clean dangling pointer on bind error path
+    - ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()
+    - gpio: vf610: connect GPIO label to dev name
+    - hwmon: (ltc2945) Handle error case in ltc2945_value_store
+    - scsi: aic94xx: Add missing check for dma_map_single()
+    - spi: bcm63xx-hsspi: fix pm_runtime
+    - spi: bcm63xx-hsspi: Fix multi-bit mode setting
+    - hwmon: (mlxreg-fan) Return zero speed for broken fan
+    - dm: remove flush_scheduled_work() during local_exit()
+    - spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()
+    - ASoC: dapm: declare missing structure prototypes
+    - ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared
+    - HID: bigben: use spinlock to protect concurrent accesses
+    - HID: bigben_worker() remove unneeded check on report_field
+    - HID: bigben: use spinlock to safely schedule workers
+    - HID: asus: Only set EV_REP if we are adding a mapping
+    - HID: asus: Add report_size to struct asus_touchpad_info
+    - HID: asus: Add support for multi-touch touchpad on Medion Akoya E1239T
+    - HID: asus: Fix mute and touchpad-toggle keys on Medion Akoya E1239T
+    - hid: bigben_probe(): validate report count
+    - nfsd: fix race to check ls_layouts
+    - cifs: Fix lost destroy smbd connection when MR allocate failed
+    - cifs: Fix warning and UAF when destroy the MR list
+    - gfs2: jdata writepage fix
+    - perf llvm: Fix inadvertent file creation
+    - perf tools: Fix auto-complete on aarch64
+    - sparc: allow PM configs for sparc32 COMPILE_TEST
+    - mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()
+    - clk: qcom: gcc-qcs404: disable gpll[04]_out_aux parents
+    - clk: qcom: gcc-qcs404: fix names of the DSI clocks used as parents
+    - mtd: rawnand: sunxi: Fix the size of the last OOB region
+    - clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed
+    - clk: renesas: cpg-mssr: Use enum clk_reg_layout instead of a boolean flag
+    - clk: renesas: cpg-mssr: Remove superfluous check in resume code
+    - Input: ads7846 - don't report pressure for ads7845
+    - Input: ads7846 - don't check penirq immediately for 7845
+    - clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC
+    - powerpc/powernv/ioda: Skip unallocated resources when mapping to PE
+    - clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
+    - powerpc/pseries/lpar: add missing RTAS retry status handling
+    - powerpc/pseries/lparcfg: add missing RTAS retry status handling
+    - powerpc/rtas: make all exports GPL
+    - powerpc/rtas: ensure 4KB alignment for rtas_data_buf
+    - powerpc/eeh: Small refactor of eeh_handle_normal_event()
+    - powerpc/eeh: Set channel state after notifying the drivers
+    - MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
+    - MIPS: vpe-mt: drop physical_memsize
+    - remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers
+    - media: platform: ti: Add missing check for devm_regulator_get
+    - powerpc: Remove linker flag from KBUILD_AFLAGS
+    - media: ov5675: Fix memleak in ov5675_init_controls()
+    - media: i2c: ov772x: Fix memleak in ov772x_probe()
+    - media: i2c: ov7670: 0 instead of -EINVAL was returned
+    - media: usb: siano: Fix use after free bugs caused by do_submit_urb
+    - rpmsg: glink: Avoid infinite loop on intent for missing channel
+    - udf: Define EFSCORRUPTED error code
+    - ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy
+    - blk-iocost: fix divide by 0 error in calc_lcoefs()
+    - wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
+    - rcu: Suppress smp_processor_id() complaint in
+      synchronize_rcu_expedited_wait()
+    - thermal: intel: Fix unsigned comparison with less than zero
+    - timers: Prevent union confusion from unexpected restart_syscall()
+    - x86/bugs: Reset speculation control settings on init
+    - wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-
+      of-bounds
+    - wifi: mt7601u: fix an integer underflow
+    - inet: fix fast path in __inet_hash_connect()
+    - ice: add missing checks for PF vsi type
+    - ACPI: Don't build ACPICA with '-Os'
+    - net: bcmgenet: Add a check for oversized packets
+    - m68k: Check syscall_trace_enter() return code
+    - wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup
+    - ACPI: video: Fix Lenovo Ideapad Z570 DMI match
+    - net/mlx5: fw_tracer: Fix debug print
+    - coda: Avoid partial allocation of sig_inputArgs
+    - uaccess: Add minimum bounds check on kernel buffer size
+    - drm/amd/display: Fix potential null-deref in dm_resume
+    - drm/omap: dsi: Fix excessive stack usage
+    - HID: Add Mapping for System Microphone Mute
+    - drm/radeon: free iio for atombios when driver shutdown
+    - drm/msm/dsi: Add missing check for alloc_ordered_workqueue
+    - docs/scripts/gdb: add necessary make scripts_gdb step
+    - ASoC: kirkwood: Iterate over array indexes instead of using pointer math
+    - regulator: max77802: Bounds check regulator id against opmode
+    - regulator: s5m8767: Bounds check id indexing into arrays
+    - hwmon: (coretemp) Simplify platform device handling
+    - pinctrl: at91: use devm_kasprintf() to avoid potential leaks
+    - drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5
+    - dm thin: add cond_resched() to various workqueue loops
+    - dm cache: add cond_resched() to various workqueue loops
+    - nfsd: zero out pointers after putting nfsd_files on COPY setup error
+    - wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu
+    - firmware: coreboot: framebuffer: Ignore reserved pixel color bits
+    - rtc: pm8xxx: fix set-alarm race
+    - ipmi_ssif: Rename idle state and check
+    - s390: discard .interp section
+    - s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler
+    - s390/kprobes: fix current_kprobe never cleared after kprobes reenter
+    - ARM: dts: exynos: correct HDMI phy compatible in Exynos4
+    - hfs: fix missing hfs_bnode_get() in __hfs_bnode_create
+    - fs: hfsplus: fix UAF issue in hfsplus_put_super
+    - f2fs: fix information leak in f2fs_move_inline_dirents()
+    - f2fs: fix cgroup writeback accounting with fs-layer encryption
+    - ocfs2: fix defrag path triggering jbd2 ASSERT
+    - ocfs2: fix non-auto defrag path not working issue
+    - udf: Truncate added extents on failed expansion
+    - udf: Do not bother merging very long extents
+    - udf: Do not update file length for failed writes to inline files
+    - udf: Preserve link count of system files
+    - udf: Detect system inodes linked into directory hierarchy
+    - udf: Fix file corruption when appending just after end of preallocated
+      extent
+    - KVM: Destroy target device if coalesced MMIO unregistration fails
+    - KVM: s390: disable migration mode when dirty tracking is disabled
+    - x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows)
+    - x86/crash: Disable virt in core NMI crash handler to avoid double shootdown
+    - x86/reboot: Disable virtualization in an emergency if SVM is supported
+    - x86/reboot: Disable SVM, not just VMX, when stopping CPUs
+    - x86/kprobes: Fix __recover_optprobed_insn check optimizing logic
+    - x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe
+      range
+    - x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter
+    - x86/microcode/AMD: Add a @cpu parameter to the reloading functions
+    - x86/microcode/AMD: Fix mixed steppings support
+    - x86/speculation: Allow enabling STIBP with legacy IBRS
+    - Documentation/hw-vuln: Document the interaction between IBRS and STIBP
+    - ima: Align ima_file_mmap() parameters with mmap_file LSM hook
+    - irqdomain: Fix association race
+    - irqdomain: Fix disassociation race
+    - irqdomain: Drop bogus fwspec-mapping error handling
+    - ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
+    - ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC
+    - ext4: optimize ea_inode block expansion
+    - ext4: refuse to create ea block when umounted
+    - wifi: rtl8xxxu: Use a longer retry limit of 48
+    - wifi: cfg80211: Fix use after free for wext
+    - thermal: intel: powerclamp: Fix cur_state for multi package system
+    - dm flakey: fix logic when corrupting a bio
+    - dm flakey: don't corrupt the zero page
+    - ARM: dts: exynos: correct TMU phandle in Exynos4
+    - ARM: dts: exynos: correct TMU phandle in Odroid XU
+    - rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
+    - alpha: fix FEN fault handling
+    - mips: fix syscall_get_nr
+    - media: ipu3-cio2: Fix PM runtime usage_count in driver unbind
+    - mm: memcontrol: deprecate charge moving
+    - mm/thp: check and bail out if page in deferred queue already
+    - ktest.pl: Give back console on Ctrt^C on monitor
+    - ktest.pl: Fix missing "end_monitor" when machine check fails
+    - ktest.pl: Add RUN_TIMEOUT option with default unlimited
+    - scsi: qla2xxx: Fix link failure in NPIV environment
+    - scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests
+    - scsi: qla2xxx: Fix erroneous link down
+    - scsi: ses: Don't attach if enclosure has no components
+    - scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process()
+    - scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses
+    - scsi: ses: Fix possible desc_ptr out-of-bounds accesses
+    - scsi: ses: Fix slab-out-of-bounds in ses_intf_remove()
+    - PCI/PM: Observe reset delay irrespective of bridge_d3
+    - PCI: hotplug: Allow marking devices as disconnected during bind/unbind
+    - PCI: Avoid FLR for AMD FCH AHCI adapters
+    - drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv
+    - drm/radeon: Fix eDP for single-display iMac11,2
+    - wifi: ath9k: use proper statements in conditionals
+    - kbuild: Port silent mode detection to future gnu make.
+    - fs/jfs: fix shift exponent db_agl2size negative
+    - pwm: sifive: Reduce time the controller lock is held
+    - pwm: sifive: Always let the first pwm_apply_state succeed
+    - pwm: stm32-lp: fix the check on arr and cmp registers update
+    - f2fs: use memcpy_{to,from}_page() where possible
+    - fs: f2fs: initialize fsdata in pagecache_write()
+    - um: vector: Fix memory leak in vector_config
+    - ubi: ensure that VID header offset + VID header size <= alloc, size
+    - ubifs: Fix build errors as symbol undefined
+    - ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted
+    - ubifs: Rectify space budget for ubifs_xrename()
+    - ubifs: Fix wrong dirty space budget for dirty inode
+    - ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1
+    - ubifs: Reserve one leb for each journal head while doing budget
+    - ubi: Fix use-after-free when volume resizing failed
+    - ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume()
+    - ubifs: Fix memory leak in alloc_wbufs()
+    - ubi: Fix possible null-ptr-deref in ubi_free_volume()
+    - ubifs: Re-statistic cleaned znode count if commit failed
+    - ubifs: dirty_cow_znode: Fix memleak in error handling path
+    - ubifs: ubifs_writepage: Mark page dirty after writing inode failed
+    - ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show()
+    - ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed
+    - x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list
+    - watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in
+      error path
+    - watchdog: Fix kmemleak in watchdog_cdev_register
+    - watchdog: pcwd_usb: Fix attempting to access uninitialized memory
+    - netfilter: ctnetlink: fix possible refcount leak in
+      ctnetlink_create_conntrack()
+    - ipv6: Add lwtunnel encap size of all siblings in nexthop calculation
+    - sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop
+    - net: fix __dev_kfree_skb_any() vs drop monitor
+    - 9p/xen: fix version parsing
+    - 9p/xen: fix connection sequence
+    - 9p/rdma: unmap receive dma buffer in rdma_request()/post_recv()
+    - net/mlx5: Geneve, Fix handling of Geneve object id as error code
+    - nfc: fix memory leak of se_io context in nfc_genl_se_io
+    - net/sched: act_sample: fix action bind logic
+    - ARM: dts: spear320-hmi: correct STMPE GPIO compatible
+    - tcp: tcp_check_req() can be called from process context
+    - vc_screen: modify vcs_size() handling in vcs_read()
+    - rtc: sun6i: Make external 32k oscillator optional
+    - rtc: sun6i: Always export the internal oscillator
+    - scsi: ipr: Work around fortify-string warning
+    - thermal: intel: quark_dts: fix error pointer dereference
+    - thermal: intel: BXT_PMIC: select REGMAP instead of depending on it
+    - tracing: Add NULL checks for buffer in ring_buffer_free_read_page()
+    - firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3
+    - mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak
+    - media: uvcvideo: Handle cameras with invalid descriptors
+    - media: uvcvideo: Handle errors from calls to usb_string
+    - media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910
+    - media: uvcvideo: Silence memcpy() run-time false positive warnings
+    - staging: emxx_udc: Add checks for dma_alloc_coherent()
+    - tty: fix out-of-bounds access in tty_driver_lookup_tty()
+    - tty: serial: fsl_lpuart: disable the CTS when send break signal
+    - mei: bus-fixup:upon error print return values of send and receive
+    - tools/iio/iio_utils:fix memory leak
+    - iio: accel: mma9551_core: Prevent uninitialized variable in
+      mma9551_read_status_word()
+    - iio: accel: mma9551_core: Prevent uninitialized variable in
+      mma9551_read_config_word()
+    - usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer
+      math
+    - USB: ene_usb6250: Allocate enough memory for full object
+    - usb: uvc: Enumerate valid values for color matching
+    - kernel/fail_function: fix memory leak with using debugfs_lookup()
+    - PCI: Add ACS quirk for Wangxun NICs
+    - phy: rockchip-typec: Fix unsigned comparison with less than zero
+    - net: tls: avoid hanging tasks on the tx_lock
+    - x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid}
+    - x86/resctl: fix scheduler confusion with 'current'
+    - Bluetooth: hci_sock: purge socket queues in the destruct() callback
+    - SAUCE: Revert "UBUNTU: SAUCE: Fix inet_csk_listen_start after CVE-2023-0461"
+    - tcp: Fix listen() regression in 5.4.229.
+    - media: uvcvideo: Provide sync and async uvc_ctrl_status_event
+    - media: uvcvideo: Fix race condition with usb_kill_urb
+    - dt-bindings: rtc: sun6i-a31-rtc: Loosen the requirements on the clocks
+    - Linux 5.4.235
+    - [Config] Drop mxsfb for armhf:generic-lpae
+
+  * Focal update: v5.4.234 upstream stable release (LP: #2017691)
+    - arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc
+    - ARM: dts: rockchip: add power-domains property to dp node on rk3288
+    - ACPI: NFIT: fix a potential deadlock during NFIT teardown
+    - btrfs: send: limit number of clones and allocated memory size
+    - IB/hfi1: Assign npages earlier
+    - neigh: make sure used and confirmed times are valid
+    - HID: core: Fix deadloop in hid_apply_multiplier.
+    - bpf: bpf_fib_lookup should not return neigh in NUD_FAILED state
+    - net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues().
+    - vc_screen: don't clobber return value in vcs_read
+    - dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
+    - USB: serial: option: add support for VW/Skoda "Carstick LTE"
+    - USB: core: Don't hold device lock while reading the "descriptors" sysfs file
+    - Linux 5.4.234
+
+  * CVE-2023-30456
+    - KVM: nVMX: add missing consistency checks for CR0 and CR4
+
+  * CVE-2023-1859
+    - 9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race
+      condition
+
+  * CVE-2023-1670
+    - xirc2ps_cs: Fix use after free bug in xirc2ps_detach
+
+ -- Roxana Nicolescu <roxana.nicolescu@canonical.com>  Fri, 12 May 2023 17:21:29 +0200
+
+linux (5.4.0-149.166) focal; urgency=medium
+
+  * focal/linux: 5.4.0-149.166 -proposed tracker (LP: #2016591)
+
+  * Focal update: v5.4.233 upstream stable release (LP: #2015909)
+    - dma-mapping: add generic helpers for mapping sgtable objects
+    - scatterlist: add generic wrappers for iterating over sgtable objects
+    - drm: etnaviv: fix common struct sg_table related issues
+    - drm/etnaviv: don't truncate physical page address
+    - wifi: rtl8xxxu: gen2: Turn on the rate control
+    - powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G
+    - random: always mix cycle counter in add_latent_entropy()
+    - KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
+    - can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len
+    - powerpc: dts: t208x: Disable 10G on MAC1 and MAC2
+    - alarmtimer: Prevent starvation by small intervals and SIG_IGN
+    - drm/i915/gvt: fix double free bug in split_2MB_gtt_entry
+    - mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
+    - uaccess: Add speculation barrier to copy_from_user()
+    - wifi: mwifiex: Add missing compatible string for SD8787
+    - ext4: Fix function prototype mismatch for ext4_feat_ktype
+    - Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo
+      child qdiscs"
+    - bpf: add missing header file include
+    - Linux 5.4.233
+
+  *  selftest: fib_tests: Always cleanup before exit  (LP: #2015956)
+    - selftest: fib_tests: Always cleanup before exit
+
+  * fib_tests.sh in ubuntu_kernel_selftests was skipped silently on Focal
+    (LP: #2015440)
+    - selftests: Fix the executable permissions for fib_tests.sh
+
+  * Debian autoreconstruct Fix restoration of execute permissions (LP: #2015498)
+    - [Debian] autoreconstruct - fix restoration of execute permissions
+
+  * kernel: fix __clear_user() inline assembly constraints (LP: #2013088)
+    - s390/uaccess: add missing earlyclobber annotations to __clear_user()
+
+  * i/o error if next unused loop device is queried (LP: #1856871)
+    - loop: fix I/O error on fsync() in detached loop devices
+
+  * CVE-2023-1075
+    - net/tls: tls_is_tx_ready() checked list_entry
+
+  * Focal update: v5.4.232 upstream stable release (LP: #2011625)
+    - firewire: fix memory leak for payload of request subaction to IEC 61883-1
+      FCP region
+    - bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
+    - ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
+    - ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
+    - arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
+    - scsi: Revert "scsi: core: map PQ=1, PDT=other values to
+      SCSI_SCAN_TARGET_PRESENT"
+    - WRITE is "data source", not destination...
+    - fix iov_iter_bvec() "direction" argument
+    - fix "direction" argument of iov_iter_kvec()
+    - netrom: Fix use-after-free caused by accept on already connected socket
+    - netfilter: br_netfilter: disable sabotage_in hook after first suppression
+    - squashfs: harden sanity check in squashfs_read_xattr_id_table
+    - net: phy: meson-gxl: Add generic dummy stubs for MMD register access
+    - can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
+    - ata: libata: Fix sata_down_spd_limit() when no link speed is reported
+    - selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
+    - selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
+    - selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy
+      benchmarking
+    - virtio-net: Keep stop() to follow mirror sequence of open()
+    - net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
+    - efi: fix potential NULL deref in efi_mem_reserve_persistent
+    - scsi: target: core: Fix warning on RT kernels
+    - scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
+    - i2c: rk3x: fix a bunch of kernel-doc warnings
+    - net/x25: Fix to not accept on connected socket
+    - iio: adc: stm32-dfsdm: fill module aliases
+    - usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
+    - usb: dwc3: qcom: enable vbus override when in OTG dr-mode
+    - usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
+    - vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
+    - Input: i8042 - move __initconst to fix code styling warning
+    - Input: i8042 - merge quirk tables
+    - Input: i8042 - add TUXEDO devices to i8042 quirk tables
+    - Input: i8042 - add Clevo PCX0DX to i8042 quirk table
+    - fbcon: Check font dimension limits
+    - watchdog: diag288_wdt: do not use stack buffers for hardware data
+    - watchdog: diag288_wdt: fix __diag288() inline assembly
+    - efi: Accept version 2 of memory attributes table
+    - iio: hid: fix the retval in accel_3d_capture_sample
+    - iio: adc: berlin2-adc: Add missing of_node_put() in error path
+    - iio:adc:twl6030: Enable measurements of VUSB, VBAT and others
+    - parisc: Fix return code of pdc_iodc_print()
+    - parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
+    - riscv: disable generation of unwind tables
+    - mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
+    - fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
+    - mm/swapfile: add cond_resched() in get_swap_pages()
+    - Squashfs: fix handling and sanity checking of xattr_ids count
+    - nvmem: core: fix cell removal on error
+    - mm: swap: properly update readahead statistics in unuse_pte_range()
+    - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
+    - serial: 8250_dma: Fix DMA Rx completion race
+    - serial: 8250_dma: Fix DMA Rx rearm race
+    - powerpc/imc-pmu: Revert nest_init_lock to being a mutex
+    - fbdev: smscufx: fix error handling code in ufx_usb_probe
+    - f2fs: fix to do sanity check on i_extra_isize in is_alive()
+    - wifi: brcmfmac: Check the count value of channel spec to prevent out-of-
+      bounds reads
+    - iio:adc:twl6030: Enable measurement of VAC
+    - btrfs: limit device extents to the device size
+    - btrfs: zlib: zero-initialize zlib workspace
+    - ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
+    - tracing: Fix poll() and select() do not work on per_cpu trace_pipe and
+      trace_pipe_raw
+    - can: j1939: do not wait 250 ms if the same addr was already claimed
+    - IB/hfi1: Restore allocated resources on failed copyout
+    - IB/IPoIB: Fix legacy IPoIB due to wrong number of queues
+    - iommu: Add gfp parameter to iommu_ops::map
+    - RDMA/usnic: use iommu_map_atomic() under spin_lock()
+    - xfrm: fix bug with DSCP copy to v6 from v4 tunnel
+    - bonding: fix error checking in bond_debug_reregister()
+    - net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
+    - ionic: clean interrupt before enabling queue to avoid credit race
+    - ice: Do not use WQ_MEM_RECLAIM flag for workqueue
+    - rds: rds_rm_zerocopy_callback() use list_first_entry()
+    - selftests: forwarding: lib: quote the sysctl values
+    - ALSA: pci: lx6464es: fix a debug loop
+    - pinctrl: aspeed: Fix confusing types in return value
+    - pinctrl: single: fix potential NULL dereference
+    - pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
+    - net: USB: Fix wrong-direction WARNING in plusb.c
+    - usb: core: add quirk for Alcor Link AK9563 smartcard reader
+    - usb: typec: altmodes/displayport: Fix probe pin assign check
+    - ceph: flush cap releases when the session is flushed
+    - riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
+    - arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
+    - arm64: dts: meson-g12-common: Make mmc host controller interrupts level-
+      sensitive
+    - arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
+    - nvme-pci: Move enumeration by class to be last in the table
+    - bpf: Always return target ifindex in bpf_fib_lookup
+    - migrate: hugetlb: check for hugetlb shared PMD in node migration
+    - selftests/bpf: Verify copy_register_state() preserves parent/live fields
+    - ASoC: cs42l56: fix DT probe
+    - tools/virtio: fix the vringh test for virtio ring changes
+    - net/rose: Fix to not accept on connected socket
+    - net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
+    - net: sched: sch: Bounds check priority
+    - s390/decompressor: specify __decompress() buf len to avoid overflow
+    - nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
+    - aio: fix mremap after fork null-deref
+    - btrfs: free device in btrfs_close_devices for a single device filesystem
+    - netfilter: nft_tproxy: restrict to prerouting hook
+    - xfs: remove the xfs_efi_log_item_t typedef
+    - xfs: remove the xfs_efd_log_item_t typedef
+    - xfs: remove the xfs_inode_log_item_t typedef
+    - xfs: factor out a xfs_defer_create_intent helper
+    - xfs: merge the ->log_item defer op into ->create_intent
+    - xfs: merge the ->diff_items defer op into ->create_intent
+    - xfs: turn dfp_intent into a xfs_log_item
+    - xfs: refactor xfs_defer_finish_noroll
+    - xfs: log new intent items created as part of finishing recovered intent
+      items
+    - xfs: fix finobt btree block recovery ordering
+    - xfs: proper replay of deferred ops queued during log recovery
+    - xfs: xfs_defer_capture should absorb remaining block reservations
+    - xfs: xfs_defer_capture should absorb remaining transaction reservation
+    - xfs: clean up bmap intent item recovery checking
+    - xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
+    - xfs: fix an incore inode UAF in xfs_bui_recover
+    - xfs: change the order in which child and parent defer ops are finished
+    - xfs: periodically relog deferred intent items
+    - xfs: expose the log push threshold
+    - xfs: only relog deferred intent items if free space in the log gets low
+    - xfs: fix missing CoW blocks writeback conversion retry
+    - xfs: ensure inobt record walks always make forward progress
+    - xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks
+    - xfs: prevent UAF in xfs_log_item_in_current_chkpt
+    - xfs: sync lazy sb accounting on quiesce of read-only mounts
+    - Revert "ipv4: Fix incorrect route flushing when source address is deleted"
+    - ipv4: Fix incorrect route flushing when source address is deleted
+    - mmc: sdio: fix possible resource leaks in some error paths
+    - mmc: mmc_spi: fix error handling in mmc_spi_probe()
+    - ALSA: hda/conexant: add a new hda codec SN6180
+    - ALSA: hda/realtek - fixed wrong gpio assigned
+    - sched/psi: Fix use-after-free in ep_remove_wait_queue()
+    - hugetlb: check for undefined shift on 32 bit architectures
+    - Revert "mm: Always release pages to the buddy allocator in
+      memblock_free_late()."
+    - net: Fix unwanted sign extension in netdev_stats_to_stats64()
+    - revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
+    - ixgbe: allow to increase MTU to 3K with XDP enabled
+    - i40e: add double of VLAN header when computing the max MTU
+    - net: bgmac: fix BCM5358 support by setting correct flags
+    - sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list
+    - dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
+    - net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
+    - net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
+    - bnxt_en: Fix mqprio and XDP ring checking logic
+    - net: stmmac: Restrict warning on disabling DMA store and fwd mode
+    - ixgbe: add double of VLAN header when computing the max MTU
+    - ipv6: Fix datagram socket connection with DSCP.
+    - ipv6: Fix tcp socket connection with DSCP.
+    - i40e: Add checking for null for nlmsg_find_attr()
+    - kvm: initialize all of the kvm_debugregs structure before sending it to
+      userspace
+    - nilfs2: fix underflow in second superblock position calculations
+    - ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
+    - net: sched: sch: Fix off by one in htb_activate_prios()
+    - iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
+    - Linux 5.4.232
+
+  * CVE-2023-1118
+    - media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 18 Apr 2023 17:54:42 +0200
+
+linux (5.4.0-148.165) focal; urgency=medium
+
+  * focal/linux: 5.4.0-148.165 -proposed tracker (LP: #2016777)
+
+  * CVE-2023-1829
+    - net/sched: Retire tcindex classifier
+    - [Config]: Make sure CONFIG_NET_CLS_TCINDEX is not available
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 18 Apr 2023 05:31:58 -0300
+
+linux (5.4.0-147.164) focal; urgency=medium
+
+  * focal/linux: 5.4.0-147.164 -proposed tracker (LP: #2011959)
+
+  * CVE-2023-26545
+    - net: mpls: fix stale pointer if allocation fails during device rename
+
+  * CVE-2023-1281
+    - rcu: Upgrade rcu_swap_protected() to rcu_replace_pointer()
+    - net/sched: tcindex: update imperfect hash filters respecting rcu
+
+  * Focal update: v5.4.231 upstream stable release (LP: #2011226)
+    - clk: generalize devm_clk_get() a bit
+    - clk: Provide new devm_clk helpers for prepared and enabled clocks
+    - memory: atmel-sdramc: Fix missing clk_disable_unprepare in
+      atmel_ramc_probe()
+    - memory: mvebu-devbus: Fix missing clk_disable_unprepare in
+      mvebu_devbus_probe()
+    - ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts'
+    - ARM: imx27: Retrieve the SYSCTRL base address from devicetree
+    - ARM: imx31: Retrieve the IIM base address from devicetree
+    - ARM: imx35: Retrieve the IIM base address from devicetree
+    - ARM: imx: add missing of_node_put()
+    - HID: intel_ish-hid: Add check for ishtp_dma_tx_map
+    - EDAC/highbank: Fix memory leak in highbank_mc_probe()
+    - tomoyo: fix broken dependency on *.conf.default
+    - RDMA/core: Fix ib block iterator counter overflow
+    - IB/hfi1: Reject a zero-length user expected buffer
+    - IB/hfi1: Reserve user expected TIDs
+    - IB/hfi1: Fix expected receive setup error exit issues
+    - affs: initialize fsdata in affs_truncate()
+    - amd-xgbe: TX Flow Ctrl Registers are h/w ver dependent
+    - amd-xgbe: Delay AN timeout during KR training
+    - bpf: Fix pointer-leak due to insufficient speculative store bypass
+      mitigation
+    - phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in
+      rockchip_usb2phy_power_on()
+    - net: nfc: Fix use-after-free in local_cleanup()
+    - net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs
+    - gpio: mxc: Always set GPIOs used as interrupt source to INPUT mode
+    - net/sched: sch_taprio: fix possible use-after-free
+    - net: fix a concurrency bug in l2tp_tunnel_register()
+    - l2tp: Serialize access to sk_user_data with sk_callback_lock
+    - l2tp: Don't sleep and disable BH under writer-side sk_callback_lock
+    - net: usb: sr9700: Handle negative len
+    - net: mdio: validate parameter addr in mdiobus_get_phy()
+    - HID: check empty report_list in hid_validate_values()
+    - HID: check empty report_list in bigben_probe()
+    - net: stmmac: fix invalid call to mdiobus_get_phy()
+    - HID: revert CHERRY_MOUSE_000C quirk
+    - usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait
+    - usb: gadget: f_fs: Ensure ep0req is dequeued before free_request
+    - net: mlx5: eliminate anonymous module_init & module_exit
+    - drm/panfrost: fix GENERIC_ATOMIC64 dependency
+    - dmaengine: Fix double increment of client_count in dma_chan_get()
+    - net: macb: fix PTP TX timestamp failure due to packet padding
+    - HID: betop: check shape of output reports
+    - dmaengine: xilinx_dma: use devm_platform_ioremap_resource()
+    - dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling
+    - dmaengine: xilinx_dma: call of_node_put() when breaking out of
+      for_each_child_of_node()
+    - tcp: avoid the lookup process failing to get sk in ehash table
+    - w1: fix deadloop in __w1_remove_master_device()
+    - w1: fix WARNING after calling w1_process()
+    - driver core: Fix test_async_probe_init saves device in wrong array
+    - net: dsa: microchip: ksz9477: port map correction in ALU table entry
+      register
+    - tcp: fix rate_app_limited to default to 1
+    - cpufreq: Add Tegra234 to cpufreq-dt-platdev blocklist
+    - ASoC: fsl_micfil: Correct the number of steps on SX controls
+    - drm: Add orientation quirk for Lenovo ideapad D330-10IGL
+    - s390/debug: add _ASM_S390_ prefix to header guard
+    - cpufreq: armada-37xx: stop using 0 as NULL pointer
+    - ASoC: fsl_ssi: Rename AC'97 streams to avoid collisions with AC'97 CODEC
+    - ASoC: fsl-asoc-card: Fix naming of AC'97 CODEC widgets
+    - spi: spidev: remove debug messages that access spidev->spi without locking
+    - KVM: s390: interrupt: use READ_ONCE() before cmpxchg()
+    - scsi: hisi_sas: Set a port invalid only if there are no devices attached
+      when refreshing port id
+    - platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD
+    - platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK
+    - lockref: stop doing cpu_relax in the cmpxchg loop
+    - mmc: sdhci-esdhc-imx: clear pending interrupt and halt cqhci
+    - mmc: sdhci-esdhc-imx: disable the CMD CRC check for standard tuning
+    - mmc: sdhci-esdhc-imx: correct the tuning start tap and step setting
+    - netfilter: conntrack: do not renew entry stuck in tcp SYN_SENT state
+    - fs: reiserfs: remove useless new_opts in reiserfs_remount
+    - Bluetooth: hci_sync: cancel cmd_timer if hci_open failed
+    - scsi: hpsa: Fix allocation size for scsi_host_alloc()
+    - module: Don't wait for GOING modules
+    - tracing: Make sure trace_printk() can output as soon as it can be used
+    - trace_events_hist: add check for return value of 'create_hist_field'
+    - ftrace/scripts: Update the instructions for ftrace-bisect.sh
+    - cifs: Fix oops due to uncleared server->smbd_conn in reconnect
+    - KVM: x86/vmx: Do not skip segment attributes if unusable bit is set
+    - thermal: intel: int340x: Protect trip temperature from concurrent updates
+    - ARM: 9280/1: mm: fix warning on phys_addr_t to void pointer assignment
+    - EDAC/device: Respect any driver-supplied workqueue polling value
+    - EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info
+    - netlink: prevent potential spectre v1 gadgets
+    - net: fix UaF in netns ops registration error path
+    - netfilter: nft_set_rbtree: skip elements in transaction from garbage
+      collection
+    - netlink: annotate data races around nlk->portid
+    - netlink: annotate data races around dst_portid and dst_group
+    - netlink: annotate data races around sk_state
+    - ipv4: prevent potential spectre v1 gadget in ip_metrics_convert()
+    - ipv4: prevent potential spectre v1 gadget in fib_metrics_match()
+    - netfilter: conntrack: fix vtag checks for ABORT/SHUTDOWN_COMPLETE
+    - netrom: Fix use-after-free of a listening socket.
+    - net/sched: sch_taprio: do not schedule in taprio_reset()
+    - sctp: fail if no bound addresses can be used for a given scope
+    - net: ravb: Fix possible hang if RIS2_QFF1 happen
+    - thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
+    - net/tg3: resolve deadlock in tg3_reset_task() during EEH
+    - net/phy/mdio-i2c: Move header file to include/linux/mdio
+    - net: xgene: Move shared header file into include/linux
+    - net: mdio-mux-meson-g12a: force internal PHY off on mux switch
+    - Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI
+      mode"
+    - nfsd: Ensure knfsd shuts down when the "nfsd" pseudofs is unmounted
+    - block: fix and cleanup bio_check_ro
+    - x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL
+    - netfilter: conntrack: unify established states for SCTP paths
+    - perf/x86/amd: fix potential integer overflow on shift of a int
+    - clk: Fix pointer casting to prevent oops in devm_clk_release()
+    - x86/asm: Fix an assembler warning with current binutils
+    - ARM: dts: imx: Fix pca9547 i2c-mux node name
+    - bpf: Skip task with pid=1 in send_signal_common()
+    - blk-cgroup: fix missing pd_online_fn() while activating policy
+    - dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init
+    - sysctl: add a new register_sysctl_init() interface
+    - panic: unset panic_on_warn inside panic()
+    - mm: kasan: do not panic if both panic_on_warn and kasan_multishot set
+    - exit: Add and use make_task_dead.
+    - objtool: Add a missing comma to avoid string concatenation
+    - hexagon: Fix function name in die()
+    - h8300: Fix build errors from do_exit() to make_task_dead() transition
+    - csky: Fix function name in csky_alignment() and die()
+    - ia64: make IA64_MCA_RECOVERY bool instead of tristate
+    - exit: Put an upper limit on how often we can oops
+    - exit: Expose "oops_count" to sysfs
+    - exit: Allow oops_limit to be disabled
+    - panic: Consolidate open-coded panic_on_warn checks
+    - panic: Introduce warn_limit
+    - panic: Expose "warn_count" to sysfs
+    - docs: Fix path paste-o for /sys/kernel/warn_count
+    - exit: Use READ_ONCE() for all oops/warn limit reads
+    - ipv6: ensure sane device mtu in tunnels
+    - Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt
+    - usb: host: xhci-plat: add wakeup entry at sysfs
+    - Revert "xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()"
+    - Linux 5.4.231
+
+  * CVE-2022-3903
+    - USB: add usb_control_msg_send() and usb_control_msg_recv()
+    - USB: correct API of usb_control_msg_send/recv
+    - USB: move snd_usb_pipe_sanity_check into the USB core
+    - media: mceusb: Use new usb_control_msg_*() routines
+
+  * CVE-2022-3108
+    - drm/amdkfd: Check for null pointer after calling kmemdup
+
+  * Focal update: v5.4.230 upstream stable release (LP: #2008946)
+    - pNFS/filelayout: Fix coalescing test for single DS
+    - net/ethtool/ioctl: return -EOPNOTSUPP if we have no phy stats
+    - RDMA/srp: Move large values to a new enum for gcc13
+    - f2fs: let's avoid panic if extent_tree is not created
+    - wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices
+    - Add exception protection processing for vd in axi_chan_handle_err function
+    - nilfs2: fix general protection fault in nilfs_btree_insert()
+    - efi: fix userspace infinite retry read efivars after EFI runtime services
+      page fault
+    - drm/i915/gt: Reset twice
+    - ALSA: hda/realtek - Turn on power early
+    - xhci-pci: set the dma max_seg_size
+    - usb: xhci: Check endpoint is valid before dereferencing it
+    - xhci: Fix null pointer dereference when host dies
+    - xhci: Add update_hub_device override for PCI xHCI hosts
+    - xhci: Add a flag to disable USB3 lpm on a xhci root port level.
+    - usb: acpi: add helper to check port lpm capability using acpi _DSM
+    - xhci: Detect lpm incapable xHC USB3 roothub ports from ACPI tables
+    - prlimit: do_prlimit needs to have a speculation check
+    - USB: serial: option: add Quectel EM05-G (GR) modem
+    - USB: serial: option: add Quectel EM05-G (CS) modem
+    - USB: serial: option: add Quectel EM05-G (RS) modem
+    - USB: serial: option: add Quectel EC200U modem
+    - USB: serial: option: add Quectel EM05CN (SG) modem
+    - USB: serial: option: add Quectel EM05CN modem
+    - USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100
+    - misc: fastrpc: Don't remove map on creater_process and device_release
+    - misc: fastrpc: Fix use-after-free race condition for maps
+    - usb: core: hub: disable autosuspend for TI TUSB8041
+    - comedi: adv_pci1760: Fix PWM instruction handling
+    - mmc: sunxi-mmc: Fix clock refcount imbalance during unbind
+    - btrfs: fix race between quota rescan and disable leading to NULL pointer
+      deref
+    - cifs: do not include page data when checking signature
+    - USB: serial: cp210x: add SCALANCE LPE-9000 device id
+    - usb: host: ehci-fsl: Fix module alias
+    - usb: typec: altmodes/displayport: Add pin assignment helper
+    - usb: typec: altmodes/displayport: Fix pin assignment calculation
+    - usb: gadget: g_webcam: Send color matching descriptor per frame
+    - usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate()
+    - usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210
+    - dt-bindings: phy: g12a-usb3-pcie-phy: fix compatible string documentation
+    - serial: pch_uart: Pass correct sg to dma_unmap_sg()
+    - dmaengine: tegra210-adma: fix global intr clear
+    - serial: atmel: fix incorrect baudrate setup
+    - gsmi: fix null-deref in gsmi_get_variable
+    - drm/i915: re-disable RC6p on Sandy Bridge
+    - drm/amd/display: Fix set scaling doesn's work
+    - drm/amd/display: Fix COLOR_SPACE_YCBCR2020_TYPE matrix
+    - x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN
+    - mm/khugepaged: fix collapse_pte_mapped_thp() to allow anon_vma
+    - Linux 5.4.230
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 21 Mar 2023 10:50:49 +0100
+
+linux (5.4.0-146.163) focal; urgency=medium
+
+  * focal/linux: 5.4.0-146.163 -proposed tracker (LP: #2012094)
+
+  * NFS deathlock with last Kernel 5.4.0-144.161 and 5.15.0-67.74 (LP: #2009325)
+    - NFS: Correct timing for assigning access cache timestamp
+
+ -- Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>  Fri, 17 Mar 2023 11:08:20 -0700
+
+linux (5.4.0-145.162) focal; urgency=medium
+
+  * focal/linux: 5.4.0-145.162 -proposed tracker (LP: #2008389)
+
+  * [SRU]Update ice driver to support E823 devices (LP: #1986717)
+    - ice: Add device ids for E822 devices
+    - ice: add support for E823 devices
+
+  * btrfs/154: rename fails with EOVERFLOW when calculating item size during
+    item key collision (LP: #2004132)
+    - btrfs: correctly calculate item size used when item key collision happens
+
+  * rtcpie in timers from ubuntu_kernel_selftests randomly failing
+    (LP: #1814234)
+    - SAUCE: selftest: rtcpie: Force passing unreliable subtest
+
+  * [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under
+    PV - kernel part (LP: #1999882)
+    - KVM: s390x: fix SCK locking
+    - KVM: s390: pv: don't allow userspace to set the clock under PV
+
+  * CVE-2021-3669
+    - ipc: replace costly bailout check in sysvipc_find_ipc()
+
+  * net:fcnal-test.sh 'nettest' command not found on F/K (LP: #2006391)
+    - selftests/net: Find nettest in current directory
+
+  * xfs: Preallocated ioend transactions cause deadlock due to log buffer
+    exhaustion (LP: #2007219)
+    - xfs: drop submit side trans alloc for append ioends
+
+  * CVE-2022-4382
+    - USB: gadgetfs: Fix race between mounting and unmounting
+
+  * CVE-2022-2196
+    - KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
+
+  * ubuntu_kernel_selftests: net:udpgso_bench.sh failed (LP: #1951447)
+    - selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
+
+  * net:fcnal-test.sh didn't return a non-zero value even with some sub-tests
+    failed (LP: #2006692)
+    - selftests: net/fcnal-test.sh: add exit code
+
+  * Fix selftests/ftracetests/Meta-selftests in Focal (LP: #2006453)
+    - SAUCE: Fix ftrace/Meta-selftests bashism check
+
+  * CVE-2023-23559
+    - wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 24 Feb 2023 14:09:22 +0100
+
+linux (5.4.0-144.161) focal; urgency=medium
+
+  * focal/linux: 5.4.0-144.161 -proposed tracker (LP: #2004653)
+
+  * CVE-2023-0461
+    - SAUCE: Fix inet_csk_listen_start after CVE-2023-0461
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 03 Feb 2023 15:30:55 +0100
+
+linux (5.4.0-143.160) focal; urgency=medium
+
+  * focal/linux: 5.4.0-143.160 -proposed tracker (LP: #2004385)
+
+  * NFS: client permission error after adding user to permissible group
+    (LP: #2003053)
+    - NFS: Clear the file access cache upon login
+    - NFS: Judge the file access cache's timestamp in rcu path
+    - NFS: Fix up a sparse warning
+
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914)
+    - tracing/ring-buffer: Only do full wait when cpu != RING_BUFFER_ALL_CPUS
+    - udf: Discard preallocation before extending file with a hole
+    - udf: Fix preallocation discarding at indirect extent boundary
+    - udf: Do not bother looking for prealloc extents if i_lenExtents matches
+      i_size
+    - udf: Fix extending file within last block
+    - usb: gadget: uvc: Prevent buffer overflow in setup handler
+    - USB: serial: option: add Quectel EM05-G modem
+    - USB: serial: cp210x: add Kamstrup RF sniffer PIDs
+    - USB: serial: f81232: fix division by zero on line-speed change
+    - USB: serial: f81534: fix division by zero on line-speed change
+    - igb: Initialize mailbox message for VF reset
+    - xen-netback: move removal of "hotplug-status" to the right place
+    - HID: ite: Add support for Acer S1002 keyboard-dock
+    - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E
+    - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10
+    - HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk
+    - net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
+    - usb: musb: remove extra check in musb_gadget_vbus_draw
+    - ARM: dts: qcom: apq8064: fix coresight compatible
+    - arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias
+    - drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static
+    - arm: dts: spear600: Fix clcd interrupt
+    - soc: ti: knav_qmss_queue: Use pm_runtime_resume_and_get instead of
+      pm_runtime_get_sync
+    - soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe
+    - soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe
+    - perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init()
+    - perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init()
+    - arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators
+    - arm64: dts: mt2712e: Fix unit address for pinctrl node
+    - arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names
+    - arm64: dts: mt2712-evb: Fix usb vbus regulators unit names
+    - arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name
+    - ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: turris-omnia: Add ethernet aliases
+    - ARM: dts: turris-omnia: Add switch port 6 node
+    - arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC
+    - pstore/ram: Fix error return code in ramoops_probe()
+    - ARM: mmp: fix timer_read delay
+    - pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
+    - tpm/tpm_crb: Fix error message in __crb_relinquish_locality()
+    - cpuidle: dt: Return the correct numbers of parsed idle states
+    - alpha: fix syscall entry in !AUDUT_SYSCALL case
+    - PM: hibernate: Fix mistake in kerneldoc comment
+    - fs: don't audit the capability check in simple_xattr_list()
+    - selftests/ftrace: event_triggers: wait longer for test_event_enable
+    - perf: Fix possible memleak in pmu_dev_alloc()
+    - timerqueue: Use rb_entry_safe() in timerqueue_getnext()
+    - proc: fixup uptime selftest
+    - lib/fonts: fix undefined behavior in bit shift for get_default_font
+    - ocfs2: fix memory leak in ocfs2_stack_glue_init()
+    - MIPS: vpe-mt: fix possible memory leak while module exiting
+    - MIPS: vpe-cmp: fix possible memory leak while module exiting
+    - selftests/efivarfs: Add checking of the test return value
+    - PNP: fix name memory leak in pnp_alloc_dev()
+    - perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox()
+    - irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe()
+    - EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper()
+    - nfsd: don't call nfsd_file_put from client states seqfile display
+    - genirq/irqdesc: Don't try to remove non-existing sysfs files
+    - cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()
+    - libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
+    - lib/notifier-error-inject: fix error when writing -errno to debugfs file
+    - docs: fault-injection: fix non-working usage of negative values
+    - debugfs: fix error when writing negative value to atomic_t debugfs file
+    - ocfs2: ocfs2_mount_volume does cleanup job before return error
+    - ocfs2: rewrite error handling of ocfs2_fill_super
+    - ocfs2: fix memory leak in ocfs2_mount_volume()
+    - rapidio: fix possible name leaks when rio_add_device() fails
+    - rapidio: rio: fix possible name leak in rio_register_mport()
+    - clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled
+    - ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
+    - uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
+    - xen/events: only register debug interrupt for 2-level events
+    - x86/xen: Fix memory leak in xen_smp_intr_init{_pv}()
+    - x86/xen: Fix memory leak in xen_init_lock_cpu()
+    - xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource()
+    - PM: runtime: Improve path in rpm_idle() when no callback
+    - PM: runtime: Do not call __rpm_callback() from rpm_idle()
+    - platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]()
+    - MIPS: BCM63xx: Add check for NULL for clk in clk_enable
+    - MIPS: OCTEON: warn only once if deprecated link status is being used
+    - fs: sysv: Fix sysv_nblocks() returns wrong value
+    - rapidio: fix possible UAF when kfifo_alloc() fails
+    - eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD
+    - relay: fix type mismatch when allocating memory in relay_create_buf()
+    - hfs: Fix OOB Write in hfs_asc2mac
+    - rapidio: devices: fix missing put_device in mport_cdev_open
+    - wifi: ath9k: hif_usb: fix memory leak of urbs in
+      ath9k_hif_usb_dealloc_tx_urbs()
+    - wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
+    - wifi: rtl8xxxu: Fix reading the vendor of combo chips
+    - pata_ipx4xx_cf: Fix unsigned comparison with less than zero
+    - media: i2c: ad5820: Fix error path
+    - can: kvaser_usb: do not increase tx statistics when sending error message
+      frames
+    - can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device
+    - can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to
+      {leaf,usbcan}_cmd_can_error_event
+    - can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT
+    - can: kvaser_usb_leaf: Set Warning state even without bus errors
+    - can: kvaser_usb_leaf: Fix improved state not being reported
+    - can: kvaser_usb_leaf: Fix wrong CAN state after stopping
+    - can: kvaser_usb_leaf: Fix bogus restart events
+    - can: kvaser_usb: Add struct kvaser_usb_busparams
+    - can: kvaser_usb: Compare requested bittiming parameters with actual
+      parameters in do_set_{,data}_bittiming
+    - clk: renesas: r9a06g032: Repair grave increment error
+    - spi: Update reference to struct spi_controller
+    - drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure
+    - ima: Rename internal filter rule functions
+    - ima: Fix fall-through warnings for Clang
+    - ima: Handle -ESTALE returned by ima_filter_rule_match()
+    - media: vivid: fix compose size exceed boundary
+    - bpf: propagate precision in ALU/ALU64 operations
+    - mtd: Fix device name leak when register device failed in add_mtd_device()
+    - wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port
+    - media: camss: Clean up received buffers on failed start of streaming
+    - net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write()
+    - rxrpc: Fix ack.bufferSize to be 0 when generating an ack
+    - drm/radeon: Add the missed acpi_put_table() to fix memory leak
+    - drm/mediatek: Modify dpi power on/off sequence.
+    - ASoC: pxa: fix null-pointer dereference in filter()
+    - regulator: core: fix unbalanced of node refcount in regulator_dev_lookup()
+    - amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table()
+    - integrity: Fix memory leakage in keyring allocation error path
+    - ima: Fix misuse of dereference of pointer in template_desc_init_fields()
+    - wifi: ath10k: Fix return value in ath10k_pci_init()
+    - mtd: lpddr2_nvm: Fix possible null-ptr-deref
+    - Input: elants_i2c - properly handle the reset GPIO when power is off
+    - media: solo6x10: fix possible memory leak in solo_sysfs_init()
+    - media: platform: exynos4-is: Fix error handling in fimc_md_init()
+    - media: videobuf-dma-contig: use dma_mmap_coherent
+    - bpf: Move skb->len == 0 checks into __bpf_redirect
+    - HID: hid-sensor-custom: set fixed size for custom attributes
+    - ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT
+    - ALSA: seq: fix undefined behavior in bit shift for
+      SNDRV_SEQ_FILTER_USE_EVENT
+    - regulator: core: use kfree_const() to free space conditionally
+    - clk: rockchip: Fix memory leak in rockchip_clk_register_pll()
+    - bonding: Export skip slave logic to function
+    - bonding: Rename slave_arr to usable_slaves
+    - bonding: fix link recovery in mode 2 when updelay is nonzero
+    - mtd: maps: pxa2xx-flash: fix memory leak in probe
+    - media: imon: fix a race condition in send_packet()
+    - clk: imx8mn: correct the usb1_ctrl parent to be usb_bus
+    - clk: imx: replace osc_hdmi with dummy
+    - pinctrl: pinconf-generic: add missing of_node_put()
+    - media: dvb-core: Fix ignored return value in dvb_register_frontend()
+    - media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()
+    - media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC
+    - drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe()
+    - ASoC: dt-bindings: wcd9335: fix reset line polarity in example
+    - ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd
+    - NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding
+    - NFSv4.2: Fix a memory stomp in decode_attr_security_label
+    - NFSv4.2: Fix initialisation of struct nfs4_label
+    - NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
+    - ALSA: asihpi: fix missing pci_disable_device()
+    - wifi: iwlwifi: mvm: fix double free on tx path.
+    - ASoC: mediatek: mt8173: Enable IRQ when pdata is ready
+    - drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
+    - drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
+    - ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe
+    - netfilter: conntrack: set icmpv6 redirects as RELATED
+    - bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data
+    - bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect
+    - bonding: uninitialized variable in bond_miimon_inspect()
+    - spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE
+    - wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys()
+      fails
+    - regulator: core: fix module refcount leak in set_supply()
+    - clk: qcom: clk-krait: fix wrong div2 functions
+    - hsr: Avoid double remove of a node.
+    - configfs: fix possible memory leak in configfs_create_dir()
+    - regulator: core: fix resource leak in regulator_register()
+    - bpf, sockmap: fix race in sock_map_free()
+    - media: saa7164: fix missing pci_disable_device()
+    - ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
+    - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
+    - SUNRPC: Fix missing release socket in rpc_sockname()
+    - NFSv4.x: Fail client initialisation if state manager thread can't run
+    - mmc: alcor: fix return value check of mmc_add_host()
+    - mmc: moxart: fix return value check of mmc_add_host()
+    - mmc: mxcmmc: fix return value check of mmc_add_host()
+    - mmc: pxamci: fix return value check of mmc_add_host()
+    - mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host()
+    - mmc: toshsd: fix return value check of mmc_add_host()
+    - mmc: vub300: fix return value check of mmc_add_host()
+    - mmc: wmt-sdmmc: fix return value check of mmc_add_host()
+    - mmc: atmel-mci: fix return value check of mmc_add_host()
+    - mmc: omap_hsmmc: fix return value check of mmc_add_host()
+    - mmc: meson-gx: fix return value check of mmc_add_host()
+    - mmc: via-sdmmc: fix return value check of mmc_add_host()
+    - mmc: wbsd: fix return value check of mmc_add_host()
+    - mmc: mmci: fix return value check of mmc_add_host()
+    - media: c8sectpfe: Add of_node_put() when breaking out of loop
+    - media: coda: Add check for dcoda_iram_alloc
+    - media: coda: Add check for kmalloc
+    - clk: samsung: Fix memory leak in _samsung_clk_register_pll()
+    - spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode
+    - wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h
+    - wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware()
+    - blktrace: Fix output non-blktrace event when blk_classic option enabled
+    - clk: socfpga: clk-pll: Remove unused variable 'rc'
+    - clk: socfpga: use clk_hw_register for a5/c5
+    - clk: socfpga: Fix memory leak in socfpga_gate_init()
+    - net: vmw_vsock: vmci: Check memcpy_from_msg()
+    - net: defxx: Fix missing err handling in dfx_init()
+    - net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload()
+    - drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
+    - of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry()
+      and find_dup_cset_prop()
+    - ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: farsync: Fix kmemleak when rmmods farsync
+    - net/tunnel: wait until all sk_user_data reader finish before releasing the
+      sock
+    - net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - hamradio: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: amd-xgbe: Fix logic around active and passive cables
+    - net: amd-xgbe: Check only the minimum speed for active/passive cables
+    - can: tcan4x5x: Remove invalid write in clear_interrupts
+    - net: lan9303: Fix read error execution path
+    - ntb_netdev: Use dev_kfree_skb_any() in interrupt context
+    - Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave()
+    - stmmac: fix potential division by 0
+    - apparmor: fix a memleak in multi_transaction_new()
+    - apparmor: fix lockdep warning when removing a namespace
+    - apparmor: Fix abi check to include v8 abi
+    - apparmor: Use pointer to struct aa_label for lbs_cred
+    - RDMA/core: Fix order of nldev_exit call
+    - f2fs: fix normal discard process
+    - RDMA/siw: Fix immediate work request flush to completion queue
+    - RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port
+    - RDMA/siw: Set defined status for work completion with undefined status
+    - scsi: scsi_debug: Fix a warning in resp_write_scat()
+    - crypto: ccree - swap SHA384 and SHA512 larval hashes at build time
+    - crypto: ccree - Remove debugfs when platform_driver_register failed
+    - PCI: Check for alloc failure in pci_request_irq()
+    - RDMA/hfi: Decrease PCI device reference count in error path
+    - crypto: ccree - Make cc_debugfs_global_fini() available for module init
+      function
+    - RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create
+      failed
+    - scsi: hpsa: Fix possible memory leak in hpsa_init_one()
+    - crypto: tcrypt - Fix multibuffer skcipher speed test mem leak
+    - scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add()
+    - scsi: hpsa: Fix error handling in hpsa_add_sas_host()
+    - scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device()
+    - scsi: fcoe: Fix possible name leak when device_register() fails
+    - scsi: ipr: Fix WARNING in ipr_init()
+    - scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
+    - scsi: snic: Fix possible UAF in snic_tgt_create()
+    - RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps()
+    - f2fs: avoid victim selection from previous victim section
+    - crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()
+    - RDMA/hfi1: Fix error return code in parse_platform_config()
+    - orangefs: Fix sysfs not cleanup when dev init failed
+    - crypto: img-hash - Fix variable dereferenced before check 'hdev->req'
+    - hwrng: amd - Fix PCI device refcount leak
+    - hwrng: geode - Fix PCI device refcount leak
+    - IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces
+    - drivers: dio: fix possible memory leak in dio_init()
+    - tty: serial: tegra: Activate RX DMA transfer by request
+    - serial: tegra: Read DMA status before terminating
+    - class: fix possible memory leak in __class_register()
+    - vfio: platform: Do not pass return buffer to ACPI _RST method
+    - uio: uio_dmem_genirq: Fix missing unlock in irq configuration
+    - uio: uio_dmem_genirq: Fix deadlock between irq config and handling
+    - usb: fotg210-udc: Fix ages old endianness issues
+    - staging: vme_user: Fix possible UAF in tsi148_dma_list_add
+    - usb: typec: Check for ops->exit instead of ops->enter in altmode_exit
+    - usb: typec: tcpci: fix of node refcount leak in tcpci_register_port()
+    - serial: amba-pl011: avoid SBSA UART accessing DMACR register
+    - serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle.
+    - serial: pch: Fix PCI device refcount leak in pch_request_dma()
+    - tty: serial: clean up stop-tx part in altera_uart_tx_chars()
+    - tty: serial: altera_uart_{r,t}x_chars() need only uart_port
+    - serial: altera_uart: fix locking in polling mode
+    - serial: sunsab: Fix error handling in sunsab_init()
+    - test_firmware: fix memory leak in test_firmware_init()
+    - misc: ocxl: fix possible name leak in ocxl_file_register_afu()
+    - misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
+    - misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault
+      and gru_handle_user_call_os
+    - cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter()
+    - cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
+    - counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
+    - usb: roles: fix of node refcount leak in usb_role_switch_is_parent()
+    - usb: gadget: f_hid: optional SETUP/SET_REPORT mode
+    - usb: gadget: f_hid: fix f_hidg lifetime vs cdev
+    - usb: gadget: f_hid: fix refcount leak on error path
+    - drivers: mcb: fix resource leak in mcb_probe()
+    - mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
+    - chardev: fix error handling in cdev_device_add()
+    - i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
+    - staging: rtl8192u: Fix use after free in ieee80211_rx()
+    - staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor()
+    - vme: Fix error not catched in fake_init()
+    - i2c: ismt: Fix an out-of-bounds bug in ismt_access()
+    - usb: storage: Add check for kcalloc
+    - tracing/hist: Fix issue of losting command info in error_log
+    - samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe()
+    - fbdev: ssd1307fb: Drop optional dependency
+    - fbdev: pm2fb: fix missing pci_disable_device()
+    - fbdev: via: Fix error in via_core_init()
+    - fbdev: vermilion: decrease reference count in error path
+    - fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()
+    - HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
+    - HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
+    - power: supply: fix residue sysfs file in error handle route of
+      __power_supply_register()
+    - perf trace: Return error if a system call doesn't exist
+    - perf trace: Separate 'struct syscall_fmt' definition from syscall_fmts
+      variable
+    - perf trace: Factor out the initialization of syscal_arg_fmt->scnprintf
+    - perf trace: Add the syscall_arg_fmt pointer to syscall_arg
+    - perf trace: Allow associating scnprintf routines with well known arg names
+    - perf trace: Add a strtoul() method to 'struct syscall_arg_fmt'
+    - perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number
+    - perf trace: Handle failure when trace point folder is missed
+    - perf symbol: correction while adjusting symbol
+    - HSI: omap_ssi_core: Fix error handling in ssi_init()
+    - power: supply: fix null pointer dereferencing in
+      power_supply_get_battery_info
+    - RDMA/siw: Fix pointer cast warning
+    - include/uapi/linux/swab: Fix potentially missing __always_inline
+    - rtc: snvs: Allow a time difference on clock register read
+    - rtc: pcf85063: Fix reading alarm
+    - iommu/amd: Fix pci device refcount leak in ppr_notifier()
+    - iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()
+    - macintosh: fix possible memory leak in macio_add_one_device()
+    - macintosh/macio-adb: check the return value of ioremap()
+    - powerpc/52xx: Fix a resource leak in an error handling path
+    - cxl: Fix refcount leak in cxl_calc_capp_routing
+    - powerpc/xive: add missing iounmap() in error path in
+      xive_spapr_populate_irq_data()
+    - powerpc/perf: callchain validate kernel stack pointer bounds
+    - powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in
+      of_fsl_spi_probe()
+    - powerpc/hv-gpci: Fix hv_gpci event list
+    - selftests/powerpc: Fix resource leaks
+    - pwm: sifive: Call pwm_sifive_update_clock() while mutex is held
+    - remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev()
+    - remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in
+      adsp_alloc_memory_region()
+    - rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe()
+    - rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe()
+    - nfsd: Define the file access mode enum for tracing
+    - NFSD: Add tracepoints to NFSD's duplicate reply cache
+    - nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure
+    - mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - nfc: pn533: Clear nfc_target before being used
+    - r6040: Fix kmemleak in probe and remove
+    - rtc: mxc_v2: Add missing clk_disable_unprepare()
+    - openvswitch: Fix flow lookup to use unmasked key
+    - skbuff: Account for tail adjustment during pull operations
+    - mailbox: zynq-ipi: fix error handling while device_register() fails
+    - net_sched: reject TCF_EM_SIMPLE case for complex ematch module
+    - rxrpc: Fix missing unlock in rxrpc_do_sendmsg()
+    - myri10ge: Fix an error handling path in myri10ge_probe()
+    - net: stream: purge sk_error_queue in sk_stream_kill_queues()
+    - rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
+    - binfmt_misc: fix shift-out-of-bounds in check_special_flags
+    - fs: jfs: fix shift-out-of-bounds in dbAllocAG
+    - udf: Avoid double brelse() in udf_rename()
+    - fs: jfs: fix shift-out-of-bounds in dbDiscardAG
+    - ACPICA: Fix error code path in acpi_ds_call_control_method()
+    - nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()
+    - acct: fix potential integer overflow in encode_comp_t()
+    - hfs: fix OOB Read in __hfs_brec_find
+    - drm/etnaviv: add missing quirks for GC300
+    - brcmfmac: return error when getting invalid max_flowrings from dongle
+    - wifi: ath9k: verify the expected usb_endpoints are present
+    - wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out
+    - ASoC: codecs: rt298: Add quirk for KBL-R RVP platform
+    - ipmi: fix memleak when unload ipmi driver
+    - bpf: make sure skb->len != 0 when redirecting to a tunneling device
+    - net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()
+    - hamradio: baycom_epp: Fix return type of baycom_send_packet()
+    - wifi: brcmfmac: Fix potential shift-out-of-bounds in
+      brcmf_fw_alloc_request()
+    - igb: Do not free q_vector unless new one was allocated
+    - s390/ctcm: Fix return type of ctc{mp,}m_tx()
+    - s390/netiucv: Fix return type of netiucv_tx()
+    - s390/lcs: Fix return type of lcs_start_xmit()
+    - drm/rockchip: Use drm_mode_copy()
+    - drm/sti: Use drm_mode_copy()
+    - drivers/md/md-bitmap: check the return value of md_bitmap_get_counter()
+    - md/raid1: stop mdx_raid1 thread when raid1 array run failed
+    - net: add atomic_long_t to net_device_stats fields
+    - mrp: introduce active flags to prevent UAF when applicant uninit
+    - ppp: associate skb with a device at tx
+    - bpf: Prevent decl_tag from being referenced in func_proto arg
+    - media: dvb-frontends: fix leak of memory fw
+    - media: dvbdev: adopts refcnt to avoid UAF
+    - media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
+    - blk-mq: fix possible memleak when register 'hctx' failed
+    - regulator: core: fix use_count leakage when handling boot-on
+    - mmc: f-sdh30: Add quirks for broken timeout clock capability
+    - media: si470x: Fix use-after-free in si470x_int_in_callback()
+    - clk: st: Fix memory leak in st_of_quadfs_setup()
+    - hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param()
+    - drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
+    - drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
+    - orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string()
+    - orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init()
+    - ALSA/ASoC: hda: move/rename snd_hdac_ext_stop_streams to hdac_stream.c
+    - ALSA: hda: add snd_hdac_stop_streams() helper
+    - ASoC: Intel: Skylake: Fix driver hang during shutdown
+    - ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in
+      mt8173_rt5650_rt5514_dev_probe()
+    - ASoC: audio-graph-card: fix refcount leak of cpu_ep in
+      __graph_for_each_link()
+    - ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in
+      rockchip_pdm_runtime_resume()
+    - ASoC: wm8994: Fix potential deadlock
+    - ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in
+      rk_spdif_runtime_resume()
+    - ASoC: rt5670: Remove unbalanced pm_runtime_put()
+    - pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion
+    - pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES
+    - ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
+    - ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list
+    - usb: dwc3: core: defer probe on ulpi_read_id timeout
+    - HID: wacom: Ensure bootloader PID is usable in hidraw mode
+    - reiserfs: Add missing calls to reiserfs_security_free()
+    - iio: adc: ad_sigma_delta: do not use internal iio_dev lock
+    - iio: adc128s052: add proper .data members in adc128_of_match table
+    - regulator: core: fix deadlock on regulator enable
+    - gcov: add support for checksum field
+    - media: dvbdev: fix build warning due to comments
+    - media: dvbdev: fix refcnt bug
+    - cifs: fix oops during encryption
+    - nvme-pci: fix doorbell buffer value endianness
+    - ata: ahci: Fix PCS quirk application for suspend
+    - nvme: fix the NVME_CMD_EFFECTS_CSE_MASK definition
+    - objtool: Fix SEGFAULT
+    - powerpc/rtas: avoid device tree lookups in rtas_os_term()
+    - powerpc/rtas: avoid scheduling in rtas_os_term()
+    - HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint
+    - HID: plantronics: Additional PIDs for double volume key presses quirk
+    - hfsplus: fix bug causing custom uid and gid being unable to be assigned with
+      mount
+    - ovl: Use ovl mounter's fsuid and fsgid in ovl_link()
+    - ALSA: line6: correct midi status byte when receiving data from podxt
+    - ALSA: line6: fix stack overflow in line6_midi_transmit
+    - pnode: terminate at peers of source
+    - md: fix a crash in mempool_free
+    - mm, compaction: fix fast_isolate_around() to stay within boundaries
+    - f2fs: should put a page when checking the summary info
+    - mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING
+    - tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak
+    - tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak
+    - SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails
+    - net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO
+    - net/af_packet: make sure to pull mac header
+    - media: stv0288: use explicitly signed char
+    - soc: qcom: Select REMAP_MMIO for LLCC driver
+    - kest.pl: Fix grub2 menu handling for rebooting
+    - ktest.pl minconfig: Unset configs instead of just removing them
+    - mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K
+    - btrfs: fix resolving backrefs for inline extent followed by prealloc
+    - ARM: ux500: do not directly dereference __iomem
+    - arm64: dts: qcom: sdm850-lenovo-yoga-c630: correct I2C12 pins drive strength
+    - selftests: Use optional USERCFLAGS and USERLDFLAGS
+    - cpufreq: Init completion before kobject_init_and_add()
+    - binfmt: Move install_exec_creds after setup_new_exec to match binfmt_elf
+    - binfmt: Fix error return code in load_elf_fdpic_binary()
+    - dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
+    - dm thin: Fix ABBA deadlock between shrink_slab and dm_pool_abort_metadata
+    - dm thin: Use last transaction's pmd->root when commit failed
+    - dm thin: Fix UAF in run_timer_softirq()
+    - dm integrity: Fix UAF in dm_integrity_dtr()
+    - dm clone: Fix UAF in clone_dtr()
+    - dm cache: Fix UAF in destroy()
+    - dm cache: set needs_check flag after aborting metadata
+    - tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx'
+    - x86/microcode/intel: Do not retry microcode reloading on the APs
+    - tracing/hist: Fix wrong return value in parse_action_params()
+    - tracing: Fix infinite loop in tracing_read_pipe on overflowed
+      print_trace_line
+    - ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod
+    - media: dvb-core: Fix double free in dvb_register_device()
+    - cifs: fix confusing debug message
+    - cifs: fix missing display of three mount options
+    - md/bitmap: Fix bitmap chunk size overflow issues
+    - efi: Add iMac Pro 2017 to uefi skip cert quirk
+    - ipmi: fix long wait in unload when IPMI disconnect
+    - mtd: spi-nor: Check for zero erase size in spi_nor_find_best_erase_type()
+    - ima: Fix a potential NULL pointer access in ima_restore_measurement_list
+    - ipmi: fix use after free in _ipmi_destroy_user()
+    - PCI: Fix pci_device_is_present() for VFs by checking PF
+    - PCI/sysfs: Fix double free in error path
+    - crypto: n2 - add missing hash statesize
+    - iommu/amd: Fix ivrs_acpihid cmdline parsing code
+    - parisc: led: Fix potential null-ptr-deref in start_task()
+    - device_cgroup: Roll back to original exceptions after copy failure
+    - drm/connector: send hotplug uevent on connector cleanup
+    - drm/vmwgfx: Validate the box size for the snooped cursor
+    - ext4: add inode table check in __ext4_get_inode_loc to aovid possible
+      infinite loop
+    - ext4: fix undefined behavior in bit shift for ext4_check_flag_values
+    - ext4: add EXT4_IGET_BAD flag to prevent unexpected bad inode
+    - ext4: add helper to check quota inums
+    - ext4: fix reserved cluster accounting in __es_remove_extent()
+    - ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
+    - ext4: init quota for 'old.inode' in 'ext4_rename'
+    - ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline
+    - ext4: fix corruption when online resizing a 1K bigalloc fs
+    - ext4: fix error code return to user-space in ext4_get_branch()
+    - ext4: avoid BUG_ON when creating xattrs
+    - ext4: fix inode leak in ext4_xattr_inode_create() on an error path
+    - ext4: initialize quota before expanding inode in setproject ioctl
+    - ext4: avoid unaccounted block allocation when expanding inode
+    - ext4: allocate extended attribute value in vmalloc area
+    - btrfs: replace strncpy() with strscpy()
+    - PM/devfreq: governor: Add a private governor_data for governor
+    - media: s5p-mfc: Fix to handle reference queue during finishing
+    - media: s5p-mfc: Clear workbit to handle error condition
+    - media: s5p-mfc: Fix in register read and write for H264
+    - dm thin: resume even if in FAIL mode
+    - perf probe: Use dwarf_attr_integrate as generic DWARF attr accessor
+    - perf probe: Fix to get the DW_AT_decl_file and DW_AT_call_file as unsinged
+      data
+    - KVM: x86: optimize more exit handlers in vmx.c
+    - KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers
+    - KVM: VMX: Rename INTERRUPT_PENDING to INTERRUPT_WINDOW
+    - KVM: VMX: Rename NMI_PENDING to NMI_WINDOW
+    - KVM: VMX: Fix the spelling of CPU_BASED_USE_TSC_OFFSETTING
+    - KVM: nVMX: Properly expose ENABLE_USR_WAIT_PAUSE control to L1
+    - ravb: Fix "failed to switch device to config mode" message during unbind
+    - ext4: goto right label 'failed_mount3a'
+    - ext4: correct inconsistent error msg in nojournal mode
+    - mm/highmem: Lift memcpy_[to|from]_page to core
+    - ext4: use memcpy_to_page() in pagecache_write()
+    - fs: ext4: initialize fsdata in pagecache_write()
+    - ext4: use kmemdup() to replace kmalloc + memcpy
+    - mbcache: don't reclaim used entries
+    - mbcache: add functions to delete entry if unused
+    - ext4: remove EA inode entry from mbcache on inode eviction
+    - ext4: unindent codeblock in ext4_xattr_block_set()
+    - ext4: fix race when reusing xattr blocks
+    - mbcache: automatically delete entries from cache on freeing
+    - ext4: fix deadlock due to mbcache entry corruption
+    - SUNRPC: ensure the matching upcall is in-flight upon downcall
+    - bpf: pull before calling skb_postpull_rcsum()
+    - nfsd: shut down the NFSv4 state objects before the filecache
+    - net: hns3: add interrupts re-initialization while doing VF FLR
+    - net: sched: fix memory leak in tcindex_set_parms
+    - qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure
+    - nfc: Fix potential resource leaks
+    - vhost: fix range used in translate_desc()
+    - net: amd-xgbe: add missed tasklet_kill
+    - net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe
+    - RDMA/uverbs: Silence shiftTooManyBitsSigned warning
+    - RDMA/mlx5: Fix validation of max_rd_atomic caps for DC
+    - net: sched: atm: dont intepret cls results when asked to drop
+    - net: sched: cbq: dont intepret cls results when asked to drop
+    - perf tools: Fix resources leak in perf_data__open_dir()
+    - drivers/net/bonding/bond_3ad: return when there's no aggregator
+    - usb: rndis_host: Secure rndis_query check against int overflow
+    - drm/i915: unpin on error in intel_vgpu_shadow_mm_pin()
+    - caif: fix memory leak in cfctrl_linkup_request()
+    - udf: Fix extension of the last extent in the file
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet
+    - x86/bugs: Flush IBP in ib_prctl_set()
+    - nfsd: fix handling of readdir in v4root vs. mount upcall timeout
+    - riscv: uaccess: fix type of 0 variable on error in get_user()
+    - ext4: don't allow journal inode to have encrypt flag
+    - hfs/hfsplus: use WARN_ON for sanity check
+    - hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling
+    - mbcache: Avoid nesting of cache->c_list_lock under bit locks
+    - parisc: Align parisc MADV_XXX constants with all other architectures
+    - selftests: Fix kselftest O=objdir build from cluttering top level objdir
+    - selftests: set the BUILD variable to absolute path
+    - driver core: Fix bus_type.match() error handling in __driver_attach()
+    - net: sched: disallow noqueue for qdisc classes
+    - KVM: arm64: Fix S1PTW handling on RO memslots
+    - efi: tpm: Avoid READ_ONCE() for accessing the event log
+    - docs: Fix the docs build with Sphinx 6.0
+    - perf auxtrace: Fix address filter duplicate symbol selection
+    - s390/kexec: fix ipl report address for kdump
+    - s390/percpu: add READ_ONCE() to arch_this_cpu_to_op_simple()
+    - net/ulp: prevent ULP without clone op from entering the LISTEN status
+    - ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list
+    - cifs: Fix uninitialized memory read for smb311 posix symlink create
+    - drm/msm/adreno: Make adreno quirks not overwrite each other
+    - platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during
+      probe
+    - ixgbe: fix pci device refcount leak
+    - ipv6: raw: Deduct extension header length in rawv6_push_pending_frames
+    - wifi: wilc1000: sdio: fix module autoloading
+    - usb: ulpi: defer ulpi_register on ulpi_read_id timeout
+    - jbd2: use the correct print format
+    - quota: Factor out setup of quota inode
+    - ext4: fix bug_on in __es_tree_search caused by bad quota inode
+    - ext4: lost matching-pair of trace in ext4_truncate
+    - ext4: fix use-after-free in ext4_orphan_cleanup
+    - ext4: fix uninititialized value in 'ext4_evict_inode'
+    - netfilter: ipset: Fix overflow before widen in the bitmap_ip_create()
+      function.
+    - powerpc/imc-pmu: Fix use of mutex in IRQs disabled section
+    - x86/boot: Avoid using Intel mnemonics in AT&T syntax asm
+    - EDAC/device: Fix period calculation in edac_device_reset_delay_period()
+    - regulator: da9211: Use irq handler when ready
+    - tipc: improve throughput between nodes in netns
+    - tipc: eliminate checking netns if node established
+    - tipc: fix unexpected link reset due to discovery messages
+    - hvc/xen: lock console list traversal
+    - nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
+    - net/sched: act_mpls: Fix warning during failed attribute validation
+    - net/mlx5: Rename ptp clock info
+    - net/mlx5: Fix ptp max frequency adjustment range
+    - iommu/mediatek-v1: Add error handle for mtk_iommu_probe
+    - iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe()
+    - x86/resctrl: Use task_curr() instead of task_struct->on_cpu to prevent
+      unnecessary IPI
+    - x86/resctrl: Fix task CLOSID/RMID update race
+    - drm/virtio: Fix GEM handle creation UAF
+    - arm64: atomics: format whitespace consistently
+    - arm64: atomics: remove LL/SC trampolines
+    - arm64: cmpxchg_double*: hazard against entire exchange variable
+    - efi: fix NULL-deref in init error path
+    - mm: Always release pages to the buddy allocator in memblock_free_late().
+    - Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout"
+    - tipc: fix use-after-free in tipc_disc_rcv()
+    - tty: serial: tegra: Handle RX transfer in PIO mode if DMA wasn't started
+    - tipc: Add a missing case of TIPC_DIRECT_MSG type
+    - ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown
+    - tipc: call tipc_lxc_xmit without holding node_read_lock
+    - Linux 5.4.229
+
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914) //
+    CVE-2023-0266 was assigned for this issue.
+    - ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
+
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914) //
+    CVE-2022-41218 is assigned to those bugs above.
+    - media: dvb-core: Fix UAF due to refcount races at releasing
+
+  * Focal update: v5.4.228 upstream stable release (LP: #2003904)
+    - x86/smpboot: Move rcu_cpu_starting() earlier
+    - mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page
+    - block: unhash blkdev part inode when the part is deleted
+    - ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
+    - pinctrl: meditatek: Startup with the IRQs disabled
+    - can: sja1000: fix size of OCR_MODE_MASK define
+    - can: mcba_usb: Fix termination command argument
+    - ASoC: ops: Correct bounds check for second channel on SX controls
+    - Linux 5.4.228
+
+  * Focal update: v5.4.227 upstream stable release (LP: #2003901)
+    - arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4
+      series
+    - arm: dts: rockchip: fix node name for hym8563 rtc
+    - ARM: dts: rockchip: fix ir-receiver node names
+    - ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name
+    - ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels
+    - ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation
+    - ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188
+    - 9p/fd: Use P9_HDRSZ for header size
+    - regulator: slg51000: Wait after asserting CS pin
+    - ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event
+    - btrfs: send: avoid unaligned encoded writes when attempting to clone range
+    - ASoC: soc-pcm: Add NULL check in BE reparenting
+    - regulator: twl6030: fix get status of twl6032 regulators
+    - fbcon: Use kzalloc() in fbcon_prepare_logo()
+    - 9p/xen: check logical size for buffer size
+    - net: usb: qmi_wwan: add u-blox 0x1342 composition
+    - mm/khugepaged: take the right locks for page table retraction
+    - mm/khugepaged: fix GUP-fast interaction by sending IPI
+    - mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
+    - xen/netback: do some code cleanup
+    - xen/netback: don't call kfree_skb() with interrupts disabled
+    - Revert "net: dsa: b53: Fix valid setting for MDB entries"
+    - media: v4l2-dv-timings.c: fix too strict blanking sanity checks
+    - memcg: fix possible use-after-free in memcg_write_event_control()
+    - mm/gup: fix gup_pud_range() for dax
+    - KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field
+    - drm/shmem-helper: Remove errant put in error path
+    - HID: usbhid: Add ALWAYS_POLL quirk for some mice
+    - HID: hid-lg4ff: Add check for empty lbuf
+    - HID: core: fix shift-out-of-bounds in hid_report_raw_event
+    - can: af_can: fix NULL pointer dereference in can_rcv_filter
+    - ieee802154: cc2520: Fix error return code in cc2520_hw_init()
+    - ca8210: Fix crash by zero initializing data
+    - drm/bridge: ti-sn65dsi86: Fix output polarity setting bug
+    - gpio: amd8111: Fix PCI device reference count leak
+    - e1000e: Fix TX dispatch condition
+    - igb: Allocate MSI-X vector when testing
+    - af_unix: Get user_ns from in_skb in unix_diag_get_exact().
+    - Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn()
+    - Bluetooth: Fix not cleanup led when bt_init fails
+    - net: dsa: ksz: Check return value
+    - selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload
+    - mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
+    - net: encx24j600: Add parentheses to fix precedence
+    - net: encx24j600: Fix invalid logic in reading of MISTAT register
+    - xen-netfront: Fix NULL sring after live migration
+    - net: mvneta: Prevent out of bounds read in mvneta_config_rss()
+    - i40e: Fix not setting default xps_cpus after reset
+    - i40e: Fix for VF MAC address 0
+    - i40e: Disallow ip4 and ip6 l4_4_bytes
+    - NFC: nci: Bounds check struct nfc_target arrays
+    - nvme initialize core quirks before calling nvme_init_subsystem
+    - net: stmmac: fix "snps,axi-config" node property parsing
+    - net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq
+    - net: hisilicon: Fix potential use-after-free in hisi_femac_rx()
+    - net: hisilicon: Fix potential use-after-free in hix5hd2_rx()
+    - tipc: Fix potential OOB in tipc_link_proto_rcv()
+    - ipv4: Fix incorrect route flushing when source address is deleted
+    - ipv4: Fix incorrect route flushing when table ID 0 is used
+    - ethernet: aeroflex: fix potential skb leak in greth_init_rings()
+    - net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq()
+    - ipv6: avoid use-after-free in ip6_fragment()
+    - net: mvneta: Fix an out of bounds check
+    - can: esd_usb: Allow REC and TEC to return to zero
+    - Linux 5.4.227
+
+  * 5.15.0-58.64 breaks xen bridge networking (pvh domU) (LP: #2002889) // Focal
+    update: v5.4.227 upstream stable release (LP: #2003901)
+    - xen/netback: fix build warning
+
+  * Focal update: v5.4.226 upstream stable release (LP: #2003896)
+    - wifi: mac80211: fix memory free error when registering wiphy fail
+    - wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support
+    - audit: fix undefined behavior in bit shift for AUDIT_BIT
+    - wifi: mac80211: Fix ack frame idr leak when mesh has no route
+    - spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run
+    - drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017)
+    - block, bfq: fix null pointer dereference in bfq_bio_bfqg()
+    - arm64/syscall: Include asm/ptrace.h in syscall_wrapper header.
+    - RISC-V: vdso: Do not add missing symbols to version section in linker script
+    - MIPS: pic32: treat port as signed integer
+    - af_key: Fix send_acquire race with pfkey_register
+    - ARM: dts: am335x-pcm-953: Define fixed regulators in root node
+    - ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove
+    - regulator: core: fix kobject release warning and memory leak in
+      regulator_register()
+    - regulator: core: fix UAF in destroy_regulator()
+    - bus: sunxi-rsb: Support atomic transfers
+    - tee: optee: fix possible memory leak in optee_register_device()
+    - ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
+    - net: liquidio: simplify if expression
+    - nfc/nci: fix race with opening and closing
+    - net: pch_gbe: fix potential memleak in pch_gbe_tx_queue()
+    - 9p/fd: fix issue of list_del corruption in p9_fd_cancel()
+    - ARM: mxs: fix memory leak in mxs_machine_init()
+    - net/mlx4: Check retval of mlx4_bitmap_init
+    - net/qla3xxx: fix potential memleak in ql3xxx_send()
+    - net: pch_gbe: fix pci device refcount leak while module exiting
+    - nfp: add port from netdev validation for EEPROM access
+    - Drivers: hv: vmbus: fix double free in the error path of
+      vmbus_add_channel_work()
+    - Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register()
+    - net/mlx5: Fix FW tracer timestamp calculation
+    - tipc: set con sock in tipc_conn_alloc
+    - tipc: add an extra conn_get in tipc_conn_alloc
+    - tipc: check skb_linearize() return value in tipc_disc_rcv()
+    - xfrm: Fix ignored return value in xfrm6_init()
+    - NFC: nci: fix memory leak in nci_rx_data_packet()
+    - regulator: twl6030: re-add TWL6032_SUBCLASS
+    - bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending()
+    - dccp/tcp: Reset saddr on failure after inet6?_hash_connect().
+    - s390/dasd: fix no record found for raw_track_access
+    - nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
+    - nfc: st-nci: fix memory leaks in EVT_TRANSACTION
+    - net: thunderx: Fix the ACPI memory leak
+    - s390/crashdump: fix TOD programmable field size
+    - lib/vdso: use "grep -E" instead of "egrep"
+    - usb: dwc3: exynos: Fix remove() function
+    - arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency
+    - iio: light: apds9960: fix wrong register for gesture gain
+    - iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails
+    - init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash
+    - nios2: add FORCE for vmlinuz.gz
+    - iio: ms5611: Simplify IO callback parameters
+    - iio: pressure: ms5611: fixed value compensation bug
+    - ceph: do not update snapshot context when there is no new snapshot
+    - ceph: avoid putting the realm twice when decoding snaps fails
+    - firmware: google: Release devices before unregistering the bus
+    - firmware: coreboot: Register bus in module init
+    - nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty
+    - gcov: clang: fix the buffer overflow issue
+    - Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode
+    - ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01
+    - serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios()
+    - xen/platform-pci: add missing free_irq() in error path
+    - platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr()
+    - platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017)
+    - platform/x86: hp-wmi: Ignore Smart Experience App event
+    - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER
+    - tcp: configurable source port perturb table size
+    - net: usb: qmi_wwan: add Telit 0x103a composition
+    - dm integrity: flush the journal on suspend
+    - binder: avoid potential data leakage when copying txn
+    - binder: read pre-translated fds from sender buffer
+    - binder: defer copies of pre-patched txn data
+    - binder: fix pointer cast warning
+    - binder: Address corner cases in deferred copy and fixup
+    - binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
+    - btrfs: free btrfs_path before copying root refs to userspace
+    - btrfs: free btrfs_path before copying fspath to userspace
+    - btrfs: free btrfs_path before copying subvol info to userspace
+    - btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs()
+    - drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN
+    - drm/amdgpu: always register an MMU notifier for userptr
+    - fuse: lock inode unconditionally in fuse_fallocate()
+    - btrfs: free btrfs_path before copying inodes to userspace
+    - spi: spi-imx: Fix spi_bus_clk if requested clock is higher than input clock
+    - btrfs: move QUOTA_ENABLED check to rescan_should_stop from
+      btrfs_qgroup_rescan_worker
+    - drm/amdgpu: update drm_display_info correctly when the edid is read
+    - drm/amdgpu: Partially revert "drm/amdgpu: update drm_display_info correctly
+      when the edid is read"
+    - btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit()
+    - iio: health: afe4403: Fix oob read in afe4403_read_raw
+    - iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw
+    - iio: light: rpr0521: add missing Kconfig dependencies
+    - scripts/faddr2line: Fix regression in name resolution on ppc64le
+    - hwmon: (i5500_temp) fix missing pci_disable_device()
+    - hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails
+    - of: property: decrement node refcount in of_fwnode_get_reference_args()
+    - net/mlx5: Fix uninitialized variable bug in outlen_write()
+    - net/mlx5e: Fix use-after-free when reverting termination table
+    - can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev()
+    - can: cc770: cc770_isa_probe(): add missing free_cc770dev()
+    - qlcnic: fix sleep-in-atomic-context bugs caused by msleep
+    - wifi: cfg80211: fix buffer overflow in elem comparison
+    - net: phy: fix null-ptr-deref while probe() failed
+    - net: net_netdev: Fix error handling in ntb_netdev_init_module()
+    - net/9p: Fix a potential socket leak in p9_socket_open
+    - net: ethernet: nixge: fix NULL dereference
+    - dsa: lan9303: Correct stat name
+    - net: hsr: Fix potential use-after-free
+    - afs: Fix fileserver probe RTT handling
+    - net: tun: Fix use-after-free in tun_detach()
+    - packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE
+    - sctp: fix memory leak in sctp_stream_outq_migrate()
+    - net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed
+    - hwmon: (coretemp) Check for null before removing sysfs attrs
+    - hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
+    - net/mlx5: DR, Fix uninitialized var warning
+    - error-injection: Add prompt for function error injection
+    - tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
+    - nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
+    - x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3
+    - pinctrl: intel: Save and restore pins in "direct IRQ" mode
+    - mmc: mmc_test: Fix removal of debugfs file
+    - mmc: core: Fix ambiguous TRIM and DISCARD arg
+    - mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check
+    - mmc: sdhci-sprd: Fix no reset data and command after voltage switch
+    - tracing: Free buffers when a used dynamic event is removed
+    - arm64: Fix panic() when Spectre-v2 causes Spectre-BHB to re-allocate KVM
+      vectors
+    - arm64: errata: Fix KVM Spectre-v2 mitigation selection for Cortex-A57/A72
+    - mm: Fix '.data.once' orphan section warning
+    - ASoC: ops: Fix bounds check for _sx controls
+    - pinctrl: single: Fix potential division by zero
+    - iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init()
+    - parisc: Increase size of gcc stack frame check
+    - xtensa: increase size of gcc stack frame check
+    - parisc: Increase FRAME_WARN to 2048 bytes on parisc
+    - Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is
+      enabled
+    - selftests: net: add delete nexthop route warning test
+    - selftests: net: fix nexthop warning cleanup double ip typo
+    - ipv4: Handle attempt to delete multipath route when fib_info contains an nh
+      reference
+    - ipv4: Fix route deletion when nexthop info is not specified
+    - tracing/ring-buffer: Have polling block on watermark
+    - nvme: restrict management ioctls to admin
+    - nvme: ensure subsystem reset is single threaded
+    - x86/tsx: Add a feature bit for TSX control MSR support
+    - x86/pm: Add enumeration check before spec MSRs save/restore setup
+    - x86/ioremap: Fix page aligned size calculation in __ioremap_caller()
+    - Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend"
+    - char: tpm: Protect tpm_pm_suspend with locks
+    - mmc: sdhci: use FIELD_GET for preset value bit masks
+    - mmc: sdhci: Fix voltage switch delay
+    - proc: avoid integer type confusion in get_proc_long
+    - proc: proc_skip_spaces() shouldn't think it is working on C strings
+    - v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails
+    - ipc/sem: Fix dangling sem_array access in semtimedop race
+    - Linux 5.4.226
+
+  * CVE-2022-4139
+    - drm/i915: fix TLB invalidation for Gen12 video and compute engines
+
+  * Focal update: v5.4.225 upstream stable release (LP: #2002347)
+    - xfs: preserve rmapbt swapext block reservation from freed blocks
+    - xfs: rename xfs_bmap_is_real_extent to is_written_extent
+    - xfs: redesign the reflink remap loop to fix blkres depletion crash
+    - xfs: use MMAPLOCK around filemap_map_pages()
+    - xfs: preserve inode versioning across remounts
+    - xfs: drain the buf delwri queue before xfsaild idles
+    - phy: stm32: fix an error code in probe
+    - wifi: cfg80211: silence a sparse RCU warning
+    - wifi: cfg80211: fix memory leak in query_regdb_file()
+    - bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues
+    - HID: hyperv: fix possible memory leak in mousevsc_probe()
+    - net: gso: fix panic on frag_list with mixed head alloc types
+    - net: tun: Fix memory leaks of napi_get_frags
+    - bnxt_en: Fix possible crash in bnxt_hwrm_set_coal()
+    - bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer
+    - net: fman: Unregister ethernet device on removal
+    - capabilities: fix undefined behavior in bit shift for CAP_TO_MASK
+    - net: lapbether: fix issue of dev reference count leakage in
+      lapbeth_device_event()
+    - hamradio: fix issue of dev reference count leakage in bpq_device_event()
+    - drm/vc4: Fix missing platform_unregister_drivers() call in
+      vc4_drm_register()
+    - ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network
+    - can: af_can: fix NULL pointer dereference in can_rx_register()
+    - tipc: fix the msg->req tlv len check in
+      tipc_nl_compat_name_table_dump_header
+    - dmaengine: pxa_dma: use platform_get_irq_optional
+    - dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
+    - drivers: net: xgene: disable napi when register irq failed in
+      xgene_enet_open()
+    - perf stat: Fix printing os->prefix in CSV metrics output
+    - net: nixge: disable napi when enable interrupts failed in nixge_open()
+    - net/mlx5: Allow async trigger completion execution on single CPU systems
+    - net: cpsw: disable napi in cpsw_ndo_open()
+    - net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
+    - cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in
+      cxgb4vf_open()
+    - ethernet: s2io: disable napi when start nic failed in s2io_card_up()
+    - net: mv643xx_eth: disable napi when init rxq or txq failed in
+      mv643xx_eth_open()
+    - ethernet: tundra: free irq when alloc ring failed in tsi108_open()
+    - net: macvlan: fix memory leaks of macvlan_common_newlink
+    - riscv: process: fix kernel info leakage
+    - arm64: efi: Fix handling of misaligned runtime regions and drop warning
+    - MIPS: jump_label: Fix compat branch range check
+    - mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
+    - mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
+    - mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
+    - ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
+    - ALSA: hda: fix potential memleak in 'add_widget_node'
+    - ALSA: usb-audio: Add quirk entry for M-Audio Micro
+    - ALSA: usb-audio: Add DSD support for Accuphase DAC-60
+    - vmlinux.lds.h: Fix placement of '.data..decrypted' section
+    - nilfs2: fix deadlock in nilfs_count_free_blocks()
+    - nilfs2: fix use-after-free bug of ns_writer on remount
+    - drm/i915/dmabuf: fix sg_table handling in map_dma_buf
+    - btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()
+    - udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
+    - can: j1939: j1939_send_one(): fix missing CAN header initialization
+    - cert host tools: Stop complaining about deprecated OpenSSL functions
+    - dmaengine: at_hdmac: Fix at_lli struct definition
+    - dmaengine: at_hdmac: Don't start transactions at tx_submit level
+    - dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
+    - dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
+    - dmaengine: at_hdmac: Fix impossible condition
+    - dmaengine: at_hdmac: Check return code of dma_async_device_register
+    - net: tun: call napi_schedule_prep() to ensure we own a napi
+    - x86/cpu: Restore AMD's DE_CFG MSR after resume
+    - ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in
+      wm5102_probe"
+    - ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in
+      wm5110_probe"
+    - ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in
+      wm8997_probe"
+    - ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK
+    - spi: intel: Fix the offset to get the 64K erase opcode
+    - ASoC: codecs: jz4725b: add missed Line In power control bit
+    - ASoC: codecs: jz4725b: fix reported volume for Master ctl
+    - ASoC: codecs: jz4725b: use right control for Capture Volume
+    - ASoC: codecs: jz4725b: fix capture selector naming
+    - selftests/futex: fix build for clang
+    - selftests/intel_pstate: fix build for ARCH=x86_64
+    - NFSv4: Retry LOCK on OLD_STATEID during delegation return
+    - i2c: i801: add lis3lv02d's I2C address for Vostro 5568
+    - drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
+    - btrfs: remove pointless and double ulist frees in error paths of qgroup
+      tests
+    - ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" ->
+      "Route"
+    - spi: stm32: Print summary 'callbacks suppressed' message
+    - ASoC: core: Fix use-after-free in snd_soc_exit()
+    - serial: 8250_omap: remove wait loop from Errata i202 workaround
+    - serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove()
+    - serial: 8250: omap: Flush PM QOS work on remove
+    - serial: imx: Add missing .thaw_noirq hook
+    - tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send
+    - ASoC: soc-utils: Remove __exit for snd_soc_util_exit()
+    - block: sed-opal: kmalloc the cmd/resp buffers
+    - siox: fix possible memory leak in siox_device_add()
+    - parport_pc: Avoid FIFO port location truncation
+    - pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map
+    - arm64: dts: imx8mm: Fix NAND controller size-cells
+    - arm64: dts: imx8mn: Fix NAND controller size-cells
+    - ata: libata-transport: fix double ata_host_put() in ata_tport_add()
+    - net: bgmac: Drop free_netdev() from bgmac_enet_remove()
+    - mISDN: fix possible memory leak in mISDN_dsp_element_register()
+    - net: liquidio: release resources when liquidio driver open failed
+    - mISDN: fix misuse of put_device() in mISDN_register_device()
+    - net: macvlan: Use built-in RCU list checking
+    - net: caif: fix double disconnect client in chnl_net_open()
+    - bnxt_en: Remove debugfs when pci_register_driver failed
+    - xen/pcpu: fix possible memory leak in register_pcpu()
+    - drbd: use after free in drbd_create_device()
+    - platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when
+      virtualized
+    - net/x25: Fix skb leak in x25_lapb_receive_frame()
+    - cifs: Fix wrong return value checking when GETFLAGS
+    - net: thunderbolt: Fix error handling in tbnet_init()
+    - cifs: add check for returning value of SMB2_set_info_init
+    - ftrace: Fix the possible incorrect kernel message
+    - ftrace: Optimize the allocation for mcount entries
+    - ftrace: Fix null pointer dereference in ftrace_add_mod()
+    - ring_buffer: Do not deactivate non-existant pages
+    - ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open()
+    - Revert "usb: dwc3: disable USB core PHY management"
+    - slimbus: stream: correct presence rate frequencies
+    - speakup: fix a segfault caused by switching consoles
+    - USB: serial: option: add Sierra Wireless EM9191
+    - USB: serial: option: remove old LARA-R6 PID
+    - USB: serial: option: add u-blox LARA-R6 00B modem
+    - USB: serial: option: add u-blox LARA-L6 modem
+    - USB: serial: option: add Fibocom FM160 0x0111 composition
+    - usb: add NO_LPM quirk for Realforce 87U Keyboard
+    - usb: chipidea: fix deadlock in ci_otg_del_timer
+    - iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
+    - iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init()
+    - iio: pressure: ms5611: changed hardcoded SPI speed to value limited
+    - dm ioctl: fix misbehavior if list_versions races with module loading
+    - serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs
+    - serial: 8250_lpss: Configure DMA also w/o DMA filter
+    - Input: iforce - invert valid length check when fetching device IDs
+    - scsi: zfcp: Fix double free of FSF request when qdio send fails
+    - mmc: core: properly select voltage range without power cycle
+    - mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce
+      timeout
+    - mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()
+    - docs: update mediator contact information in CoC doc
+    - misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
+    - serial: 8250: Flush DMA Rx on RLSI
+    - ring-buffer: Include dropped pages in counting dirty patches
+    - scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus()
+    - kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case
+    - Input: i8042 - fix leaking of platform device on module removal
+    - macvlan: enforce a consistent minimal mtu
+    - tcp: cdg: allow tcp_cdg_release() to be called multiple times
+    - kcm: avoid potential race in kcm_tx_work
+    - bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb()
+    - kcm: close race conditions on sk_receive_queue
+    - 9p: trans_fd/p9_conn_cancel: drop client lock earlier
+    - gfs2: Check sb_bsize_shift after reading superblock
+    - gfs2: Switch from strlcpy to strscpy
+    - 9p/trans_fd: always use O_NONBLOCK read/write
+    - mm: fs: initialize fsdata passed to write_begin/write_end interface
+    - ntfs: fix use-after-free in ntfs_attr_find()
+    - ntfs: fix out-of-bounds read in ntfs_attr_find()
+    - ntfs: check overflow when iterating ATTR_RECORDs
+    - Linux 5.4.225
+
+  * CVE-2022-47520
+    - wifi: wilc1000: validate pairwise and authentication suite offsets
+
+  * CVE-2022-3545
+    - nfp: fix use-after-free in area_cache_get()
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 01 Feb 2023 15:33:59 +0100
+
+linux (5.4.0-139.156) focal; urgency=medium
+
+  * focal/linux: 5.4.0-139.156 -proposed tracker (LP: #2003486)
+
+  * Revoke & rotate to new signing key (LP: #2002812)
+    - [Packaging] Revoke and rotate to new signing key
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 20 Jan 2023 15:39:15 +0100
+
+linux (5.4.0-138.155) focal; urgency=medium
+
+  * focal/linux: 5.4.0-138.155 -proposed tracker (LP: #2001845)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Focal update: v5.4.224 upstream stable release (LP: #1999273)
+    - RDMA/cma: Use output interface for net_dev check
+    - IB/hfi1: Correctly move list in sc_disable()
+    - NFSv4.1: Handle RECLAIM_COMPLETE trunking errors
+    - NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot
+    - nfs4: Fix kmemleak when allocate slot failed
+    - net: dsa: Fix possible memory leaks in dsa_loop_init()
+    - RDMA/core: Fix null-ptr-deref in ib_core_cleanup()
+    - RDMA/qedr: clean up work queue on failure in qedr_alloc_resources()
+    - nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send()
+    - nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send()
+    - net: fec: fix improper use of NETDEV_TX_BUSY
+    - ata: pata_legacy: fix pdc20230_set_piomode()
+    - net: sched: Fix use after free in red_enqueue()
+    - net: tun: fix bugs for oversize packet when napi frags enabled
+    - netfilter: nf_tables: release flow rule object from commit path
+    - ipvs: use explicitly signed chars
+    - ipvs: fix WARNING in __ip_vs_cleanup_batch()
+    - ipvs: fix WARNING in ip_vs_app_net_cleanup()
+    - rose: Fix NULL pointer dereference in rose_send_frame()
+    - mISDN: fix possible memory leak in mISDN_register_device()
+    - isdn: mISDN: netjet: fix wrong check of device registration
+    - btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
+    - btrfs: fix inode list leak during backref walking at find_parent_nodes()
+    - btrfs: fix ulist leaks in error paths of qgroup self tests
+    - Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del()
+    - net: mdio: fix undefined behavior in bit shift for __mdiobus_register
+    - net, neigh: Fix null-ptr-deref in neigh_table_clear()
+    - ipv6: fix WARNING in ip6_route_net_exit_late()
+    - media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE
+    - media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE
+    - media: dvb-frontends/drxk: initialize err to 0
+    - media: meson: vdec: fix possible refcount leak in vdec_probe()
+    - scsi: core: Restrict legal sdev_state transitions via sysfs
+    - HID: saitek: add madcatz variant of MMO7 mouse device ID
+    - i2c: xiic: Add platform module alias
+    - xfs: don't fail verifier on empty attr3 leaf block
+    - xfs: use ordered buffers to initialize dquot buffers during quotacheck
+    - xfs: gut error handling in xfs_trans_unreserve_and_mod_sb()
+    - xfs: group quota should return EDQUOT when prj quota enabled
+    - xfs: don't fail unwritten extent conversion on writeback due to edquot
+    - xfs: Add the missed xfs_perag_put() for xfs_ifree_cluster()
+    - Bluetooth: L2CAP: Fix attempting to access uninitialized memory
+    - block, bfq: protect 'bfqd->queued' by 'bfqd->lock'
+    - binder: fix UAF of alloc->vma in race with munmap()
+    - btrfs: fix type of parameter generation in btrfs_get_dentry
+    - tcp/udp: Make early_demux back namespacified.
+    - kprobe: reverse kp->flags when arm_kprobe failed
+    - tools/nolibc/string: Fix memcmp() implementation
+    - tracing/histogram: Update document for KEYS_MAX size
+    - capabilities: fix potential memleak on error path from vfs_getxattr_alloc()
+    - fuse: add file_modified() to fallocate
+    - efi: random: reduce seed size to 32 bytes
+    - perf/x86/intel: Fix pebs event constraints for ICL
+    - perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[]
+    - ALSA: usb-audio: Add quirks for MacroSilicon MS2100/MS2106 devices
+    - parisc: Make 8250_gsc driver dependend on CONFIG_PARISC
+    - parisc: Export iosapic_serial_irq() symbol for serial port driver
+    - parisc: Avoid printing the hardware path twice
+    - ext4: fix warning in 'ext4_da_release_space'
+    - ext4: fix BUG_ON() when directory entry has invalid rec_len
+    - KVM: x86: Mask off reserved bits in CPUID.8000001AH
+    - KVM: x86: Mask off reserved bits in CPUID.80000008H
+    - KVM: x86: emulator: em_sysexit should update ctxt->mode
+    - KVM: x86: emulator: introduce emulator_recalc_and_set_mode
+    - KVM: x86: emulator: update the emulation mode after CR0 write
+    - mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times
+    - drm/rockchip: dsi: Force synchronous probe
+    - drm/i915/sdvo: Filter out invalid outputs more sensibly
+    - drm/i915/sdvo: Setup DDC fully before output init
+    - wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker()
+    - ipc: remove memcg accounting for sops objects in do_semtimedop()
+    - Linux 5.4.224
+
+  * Focal update: v5.4.223 upstream stable release (LP: #1999179)
+    - can: j1939: transport: j1939_session_skb_drop_old():
+      spin_unlock_irqrestore() before kfree_skb()
+    - can: kvaser_usb: Fix possible completions during init_completion
+    - ALSA: Use del_timer_sync() before freeing timer
+    - ALSA: au88x0: use explicitly signed char
+    - USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM
+    - usb: dwc3: gadget: Stop processing more requests on IMI
+    - usb: dwc3: gadget: Don't set IMI for no_interrupt
+    - usb: bdc: change state when port disconnected
+    - usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96
+      controller
+    - mtd: rawnand: marvell: Use correct logic for nand-keep-config
+    - xhci: Remove device endpoints from bandwidth list when freeing the device
+    - tools: iio: iio_utils: fix digit calculation
+    - iio: light: tsl2583: Fix module unloading
+    - fbdev: smscufx: Fix several use-after-free bugs
+    - mac802154: Fix LQI recording
+    - drm/msm/dsi: fix memory corruption with too many bridges
+    - drm/msm/hdmi: fix memory corruption with too many bridges
+    - mmc: core: Fix kernel panic when remove non-standard SDIO card
+    - kernfs: fix use-after-free in __kernfs_remove
+    - perf auxtrace: Fix address filter symbol name match for modules
+    - s390/futex: add missing EX_TABLE entry to __futex_atomic_op()
+    - s390/pci: add missing EX_TABLE entries to
+      __pcistg_mio_inuser()/__pcilg_mio_inuser()
+    - xfs: finish dfops on every insert range shift iteration
+    - xfs: clear XFS_DQ_FREEING if we can't lock the dquot buffer to flush
+    - xfs: force the log after remapping a synchronous-writes file
+    - Xen/gntdev: don't ignore kernel unmapping error
+    - xen/gntdev: Prevent leaking grants
+    - mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages
+    - net: ieee802154: fix error return code in dgram_bind()
+    - media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation
+    - drm/msm: Fix return type of mdp4_lvds_connector_mode_valid
+    - arc: iounmap() arg is volatile
+    - ALSA: ac97: fix possible memory leak in snd_ac97_dev_register()
+    - tipc: fix a null-ptr-deref in tipc_topsrv_accept
+    - net: netsec: fix error handling in netsec_register_mdio()
+    - x86/unwind/orc: Fix unreliable stack dump with gcov
+    - amd-xgbe: fix the SFP compliance codes check for DAC cables
+    - amd-xgbe: add the bit rate quirk for Molex cables
+    - kcm: annotate data-races around kcm->rx_psock
+    - kcm: annotate data-races around kcm->rx_wait
+    - net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed
+    - net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY
+    - tcp: fix indefinite deferral of RTO with SACK reneging
+    - can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error
+      path
+    - PM: hibernate: Allow hybrid sleep to work with s2idle
+    - media: vivid: s_fbuf: add more sanity checks
+    - media: vivid: dev->bitmap_cap wasn't freed in all cases
+    - media: v4l2-dv-timings: add sanity checks for blanking values
+    - media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced'
+    - i40e: Fix ethtool rx-flow-hash setting for X722
+    - i40e: Fix VF hang when reset is triggered on another VF
+    - i40e: Fix flow-type by setting GL_HASH_INSET registers
+    - net: ksz884x: fix missing pci_disable_device() on error in pcidev_init()
+    - PM: domains: Fix handling of unavailable/disabled idle states
+    - ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev()
+    - ALSA: aoa: Fix I2S device accounting
+    - openvswitch: switch from WARN to pr_warn
+    - net: ehea: fix possible memory leak in ehea_register_port()
+    - nh: fix scope used to find saddr when adding non gw nh
+    - net/mlx5e: Do not increment ESN when updating IPsec ESN state
+    - net/mlx5: Fix possible use-after-free in async command interface
+    - net: enetc: survive memory pressure without crashing
+    - can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global
+      FIFO receive
+    - Linux 5.4.223
+
+  * Focal update: v5.4.222 upstream stable release (LP: #1997994)
+    - once: fix section mismatch on clang builds
+    - Linux 5.4.222
+
+  * Focal update: v5.4.221 upstream stable release (LP: #1997993)
+    - xfs: open code insert range extent split helper
+    - xfs: rework insert range into an atomic operation
+    - xfs: rework collapse range into an atomic operation
+    - xfs: add a function to deal with corrupt buffers post-verifiers
+    - xfs: xfs_buf_corruption_error should take __this_address
+    - xfs: fix buffer corruption reporting when xfs_dir3_free_header_check fails
+    - xfs: check owner of dir3 data blocks
+    - xfs: check owner of dir3 blocks
+    - xfs: Use scnprintf() for avoiding potential buffer overflow
+    - xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
+    - xfs: remove the xfs_dq_logitem_t typedef
+    - xfs: remove the xfs_qoff_logitem_t typedef
+    - xfs: Replace function declaration by actual definition
+    - xfs: factor out quotaoff intent AIL removal and memory free
+    - xfs: fix unmount hang and memory leak on shutdown during quotaoff
+    - xfs: preserve default grace interval during quotacheck
+    - xfs: Lower CIL flush limit for large logs
+    - xfs: Throttle commits on delayed background CIL push
+    - xfs: factor common AIL item deletion code
+    - xfs: tail updates only need to occur when LSN changes
+    - xfs: don't write a corrupt unmount record to force summary counter recalc
+    - xfs: trylock underlying buffer on dquot flush
+    - xfs: factor out a new xfs_log_force_inode helper
+    - xfs: reflink should force the log out if mounted with wsync
+    - xfs: move inode flush to the sync workqueue
+    - xfs: fix use-after-free on CIL context on shutdown
+    - ocfs2: clear dinode links count in case of error
+    - ocfs2: fix BUG when iput after ocfs2_mknod fails
+    - x86/microcode/AMD: Apply the patch early on every logical thread
+    - hwmon/coretemp: Handle large core ID value
+    - ata: ahci-imx: Fix MODULE_ALIAS
+    - ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS
+    - KVM: arm64: vgic: Fix exit condition in scan_its_table()
+    - media: venus: dec: Handle the case where find_format fails
+    - [Config] updateconfigs for ARM64_ERRATUM_1742098
+    - arm64: errata: Remove AES hwcap for COMPAT tasks
+    - r8152: add PID for the Lenovo OneLink+ Dock
+    - btrfs: fix processing of delayed data refs during backref walking
+    - btrfs: fix processing of delayed tree block refs during backref walking
+    - ACPI: extlog: Handle multiple records
+    - tipc: Fix recognition of trial period
+    - tipc: fix an information leak in tipc_topsrv_kern_subscr
+    - HID: magicmouse: Do not set BTN_MOUSE on double report
+    - net/atm: fix proc_mpc_write incorrect return value
+    - net: phy: dp83867: Extend RX strap quirk for SGMII mode
+    - net: sched: cake: fix null pointer access issue when cake_init() fails
+    - net: hns: fix possible memory leak in hnae_ae_register()
+    - iommu/vt-d: Clean up si_domain in the init_dmars() error path
+    - arm64: topology: move store_cpu_topology() to shared code
+    - riscv: topology: fix default topology reporting
+    - ACPI: video: Force backlight native for more TongFang devices
+    - Makefile.debug: re-enable debug info for .S files
+    - hv_netvsc: Fix race between VF offering and VF association message from host
+    - mm: /proc/pid/smaps_rollup: fix no vma's null-deref
+    - Linux 5.4.221
+
+  * Focal update: v5.4.220 upstream stable release (LP: #1996812)
+    - ALSA: oss: Fix potential deadlock at unregistration
+    - ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()
+    - ALSA: usb-audio: Fix potential memory leaks
+    - ALSA: usb-audio: Fix NULL dererence at error path
+    - ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530
+    - ALSA: hda/realtek: Correct pin configs for ASUS G533Z
+    - ALSA: hda/realtek: Add quirk for ASUS GV601R laptop
+    - ALSA: hda/realtek: Add Intel Reference SSID to support headset keys
+    - mtd: rawnand: atmel: Unmap streaming DMA mappings
+    - cifs: destage dirty pages before re-reading them for cache=none
+    - cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message
+    - iio: dac: ad5593r: Fix i2c read protocol requirements
+    - iio: pressure: dps310: Refactor startup procedure
+    - iio: pressure: dps310: Reset chip after timeout
+    - usb: add quirks for Lenovo OneLink+ Dock
+    - can: kvaser_usb: Fix use of uninitialized completion
+    - can: kvaser_usb_leaf: Fix overread with an invalid command
+    - can: kvaser_usb_leaf: Fix TX queue out of sync after restart
+    - can: kvaser_usb_leaf: Fix CAN state after restart
+    - mmc: sdhci-sprd: Fix minimum clock limit
+    - fs: dlm: fix race between test_bit() and queue_work()
+    - fs: dlm: handle -EBUSY first in lock arg validation
+    - HID: multitouch: Add memory barriers
+    - quota: Check next/prev free block number after reading from quota file
+    - ASoC: wcd9335: fix order of Slimbus unprepare/disable
+    - regulator: qcom_rpm: Fix circular deferral regression
+    - RISC-V: Make port I/O string accessors actually work
+    - parisc: fbdev/stifb: Align graphics memory size to 4MB
+    - riscv: Allow PROT_WRITE-only mmap()
+    - riscv: Pass -mno-relax only on lld < 15.0.0
+    - UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
+    - PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge
+    - powerpc/boot: Explicitly disable usage of SPE instructions
+    - fbdev: smscufx: Fix use-after-free in ufx_ops_open()
+    - btrfs: fix race between quota enable and quota rescan ioctl
+    - f2fs: increase the limit for reserve_root
+    - f2fs: fix to do sanity check on destination blkaddr during recovery
+    - f2fs: fix to do sanity check on summary info
+    - nilfs2: fix use-after-free bug of struct nilfs_root
+    - jbd2: wake up journal waiters in FIFO order, not LIFO
+    - ext4: avoid crash when inline data creation follows DIO write
+    - ext4: fix null-ptr-deref in ext4_write_info
+    - ext4: make ext4_lazyinit_thread freezable
+    - ext4: place buffer head allocation before handle start
+    - livepatch: fix race between fork and KLP transition
+    - ftrace: Properly unset FTRACE_HASH_FL_MOD
+    - ring-buffer: Allow splice to read previous partially read pages
+    - ring-buffer: Have the shortest_full queue be the shortest not longest
+    - ring-buffer: Check pending waiters when doing wake ups as well
+    - ring-buffer: Fix race between reset page and reading page
+    - media: cedrus: Set the platform driver data earlier
+    - KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility
+    - KVM: nVMX: Unconditionally purge queued/injected events on nested "exit"
+    - KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS
+    - gcov: support GCC 12.1 and newer compilers
+    - drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()
+    - selinux: use "grep -E" instead of "egrep"
+    - tracing: Disable interrupt or preemption before acquiring arch_spinlock_t
+    - userfaultfd: open userfaultfds with O_RDONLY
+    - sh: machvec: Use char[] for section boundaries
+    - ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE
+    - nfsd: Fix a memory leak in an error handling path
+    - wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()
+    - wifi: mac80211: allow bw change during channel switch in mesh
+    - bpftool: Fix a wrong type cast in btf_dumper_int
+    - x86/resctrl: Fix to restore to original value when re-enabling hardware
+      prefetch register
+    - wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse()
+    - spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
+    - spi: qup: add missing clk_disable_unprepare on error in
+      spi_qup_pm_resume_runtime()
+    - wifi: rtl8xxxu: Fix skb misuse in TX queue selection
+    - bpf: btf: fix truncated last_member_type_id in btf_struct_resolve
+    - wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration
+    - net: fs_enet: Fix wrong check in do_pd_setup
+    - bpf: Ensure correct locking around vulnerable function find_vpid()
+    - x86/microcode/AMD: Track patch allocation size explicitly
+    - spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe
+    - netfilter: nft_fib: Fix for rpath check with VRF devices
+    - spi: s3c64xx: Fix large transfers with DMA
+    - vhost/vsock: Use kvmalloc/kvfree for larger packets.
+    - sctp: handle the error returned from sctp_auth_asoc_init_active_key
+    - tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited
+    - net: rds: don't hold sock lock when cancelling work from
+      rds_tcp_reset_callbacks()
+    - bnx2x: fix potential memory leak in bnx2x_tpa_stop()
+    - net/ieee802154: reject zero-sized raw_sendmsg()
+    - once: add DO_ONCE_SLOW() for sleepable contexts
+    - net: mvpp2: fix mvpp2 debugfs leak
+    - drm: bridge: adv7511: fix CEC power down control register offset
+    - drm/mipi-dsi: Detach devices when removing the host
+    - platform/chrome: fix double-free in chromeos_laptop_prepare()
+    - platform/chrome: fix memory corruption in ioctl
+    - platform/x86: msi-laptop: Fix old-ec check for backlight registering
+    - platform/x86: msi-laptop: Fix resource cleanup
+    - drm: fix drm_mipi_dbi build errors
+    - drm/bridge: megachips: Fix a null pointer dereference bug
+    - ASoC: rsnd: Add check for rsnd_mod_power_on
+    - ALSA: hda: beep: Simplify keep-power-at-enable behavior
+    - drm/omap: dss: Fix refcount leak bugs
+    - mmc: au1xmmc: Fix an error handling path in au1xmmc_probe()
+    - ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API
+    - drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx
+    - ALSA: dmaengine: increment buffer pointer atomically
+    - mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe()
+    - ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
+    - ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
+    - ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
+    - ALSA: hda/hdmi: Don't skip notification handling during PM operation
+    - memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe()
+    - memory: of: Fix refcount leak bug in of_get_ddr_timings()
+    - soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe()
+    - soc: qcom: smem_state: Add refcounting for the 'state->of_node'
+    - ARM: dts: turris-omnia: Fix mpp26 pin name and comment
+    - ARM: dts: kirkwood: lsxl: fix serial line
+    - ARM: dts: kirkwood: lsxl: remove first ethernet port
+    - ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family
+    - ARM: Drop CMDLINE_* dependency on ATAGS
+    - ARM: dts: exynos: fix polarity of VBUS GPIO of Origen
+    - iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
+    - iio: adc: at91-sama5d2_adc: check return status for pressure and touch
+    - iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
+    - iio: inkern: only release the device node when done with it
+    - iio: ABI: Fix wrong format of differential capacitance channel ABI.
+    - clk: meson: Hold reference returned by of_get_parent()
+    - clk: oxnas: Hold reference returned by of_get_parent()
+    - clk: berlin: Add of_node_put() for of_get_parent()
+    - clk: tegra: Fix refcount leak in tegra210_clock_init
+    - clk: tegra: Fix refcount leak in tegra114_clock_init
+    - clk: tegra20: Fix refcount leak in tegra20_clock_init
+    - HSI: omap_ssi: Fix refcount leak in ssi_probe
+    - HSI: omap_ssi_port: Fix dma_map_sg error check
+    - media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop
+    - tty: xilinx_uartps: Fix the ignore_status
+    - media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init
+    - RDMA/rxe: Fix "kernel NULL pointer dereference" error
+    - RDMA/rxe: Fix the error caused by qp->sk
+    - misc: ocxl: fix possible refcount leak in afu_ioctl()
+    - dyndbg: fix module.dyndbg handling
+    - dyndbg: let query-modname override actual module name
+    - mtd: devices: docg3: check the return value of devm_ioremap() in the probe
+    - RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.
+    - ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
+    - ata: fix ata_id_has_devslp()
+    - ata: fix ata_id_has_ncq_autosense()
+    - ata: fix ata_id_has_dipm()
+    - mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct()
+    - md/raid5: Ensure stripe_fill happens on non-read IO with journal
+    - xhci: Don't show warning for reinit on known broken suspend
+    - usb: gadget: function: fix dangling pnp_string in f_printer.c
+    - drivers: serial: jsm: fix some leaks in probe
+    - tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown
+    - phy: qualcomm: call clk_disable_unprepare in the error handling
+    - staging: vt6655: fix some erroneous memory clean-up loops
+    - firmware: google: Test spinlock on panic path to avoid lockups
+    - serial: 8250: Fix restoring termios speed after suspend
+    - scsi: libsas: Fix use-after-free bug in smp_execute_task_sg()
+    - fsi: core: Check error number after calling ida_simple_get
+    - mfd: intel_soc_pmic: Fix an error handling path in
+      intel_soc_pmic_i2c_probe()
+    - mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq()
+    - mfd: lp8788: Fix an error handling path in lp8788_probe()
+    - mfd: lp8788: Fix an error handling path in lp8788_irq_init() and
+      lp8788_irq_init()
+    - mfd: fsl-imx25: Fix check for platform_get_irq() errors
+    - mfd: sm501: Add check for platform_driver_register()
+    - clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent
+    - dmaengine: ioat: stop mod_timer from resurrecting deleted timer in
+      __cleanup()
+    - spmi: pmic-arb: correct duplicate APID to PPID mapping logic
+    - clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration
+    - clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe
+    - clk: ast2600: BCLK comes from EPLL
+    - mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg
+    - powerpc/math_emu/efp: Include module.h
+    - powerpc/sysdev/fsl_msi: Add missing of_node_put()
+    - powerpc/pci_dn: Add missing of_node_put()
+    - powerpc/powernv: add missing of_node_put() in opal_export_attrs()
+    - x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition
+    - powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5
+    - powerpc: Fix SPE Power ISA properties for e500v1 platforms
+    - cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset
+    - iommu/omap: Fix buffer overflow in debugfs
+    - crypto: akcipher - default implementation for setting a private key
+    - crypto: ccp - Release dma channels before dmaengine unrgister
+    - iommu/iova: Fix module config properly
+    - kbuild: remove the target in signal traps when interrupted
+    - crypto: cavium - prevent integer overflow loading firmware
+    - f2fs: fix race condition on setting FI_NO_EXTENT flag
+    - ACPI: video: Add Toshiba Satellite/Portege Z830 quirk
+    - MIPS: BCM47XX: Cast memcmp() of function to (void *)
+    - powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue
+    - thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to
+      avoid crash
+    - NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data
+    - wifi: brcmfmac: fix invalid address access when enabling SCAN log level
+    - bpftool: Clear errno after libcap's checks
+    - openvswitch: Fix double reporting of drops in dropwatch
+    - openvswitch: Fix overreporting of drops in dropwatch
+    - tcp: annotate data-race around tcp_md5sig_pool_populated
+    - wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg()
+    - xfrm: Update ipcomp_scratches with NULL when freed
+    - wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()
+    - Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create()
+    - Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times
+    - can: bcm: check the result of can_send() in bcm_can_tx()
+    - wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620
+    - wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620
+    - wifi: rt2x00: set VGC gain for both chains of MT7620
+    - wifi: rt2x00: set SoC wmac clock register
+    - wifi: rt2x00: correctly set BBP register 86 for MT7620
+    - net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory
+    - Bluetooth: L2CAP: Fix user-after-free
+    - drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc()
+    - drm: Use size_t type for len variable in drm_copy_field()
+    - drm: Prevent drm_copy_field() to attempt copying a NULL pointer
+    - drm/amd/display: fix overflow on MIN_I64 definition
+    - drm/vc4: vec: Fix timings for VEC modes
+    - drm: panel-orientation-quirks: Add quirk for Anbernic Win600
+    - platform/x86: msi-laptop: Change DMI match / alias strings to fix module
+      autoloading
+    - drm/amdgpu: fix initial connector audio value
+    - mmc: sdhci-msm: add compatible string check for sdm670
+    - ARM: dts: imx7d-sdb: config the max pressure for tsc2046
+    - ARM: dts: imx6q: add missing properties for sram
+    - ARM: dts: imx6dl: add missing properties for sram
+    - ARM: dts: imx6qp: add missing properties for sram
+    - ARM: dts: imx6sl: add missing properties for sram
+    - ARM: dts: imx6sll: add missing properties for sram
+    - ARM: dts: imx6sx: add missing properties for sram
+    - btrfs: scrub: try to fix super block errors
+    - clk: zynqmp: Fix stack-out-of-bounds in strncpy`
+    - media: cx88: Fix a null-ptr-deref bug in buffer_prepare()
+    - clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate
+    - scsi: 3w-9xxx: Avoid disabling device if failing to enable it
+    - nbd: Fix hung when signal interrupts nbd_start_device_ioctl()
+    - power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()
+    - staging: vt6655: fix potential memory leak
+    - ata: libahci_platform: Sanity check the DT child nodes number
+    - bcache: fix set_at_max_writeback_rate() for multiple attached devices
+    - HID: roccat: Fix use-after-free in roccat_read()
+    - md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d
+    - usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info()
+    - usb: musb: Fix musb_gadget.c rxstate overflow bug
+    - Revert "usb: storage: Add quirk for Samsung Fit flash"
+    - staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv()
+    - nvme: copy firmware_rev on each init
+    - nvmet-tcp: add bounds check on Transfer Tag
+    - usb: idmouse: fix an uninit-value in idmouse_open
+    - clk: bcm2835: Make peripheral PLLC critical
+    - perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc
+    - net: ieee802154: return -EINVAL for unknown addr type
+    - Revert "net/ieee802154: reject zero-sized raw_sendmsg()"
+    - net/ieee802154: don't warn zero-sized raw_sendmsg()
+    - ext4: continue to expand file system when the target size doesn't reach
+    - efi: libstub: drop pointless get_memory_map() call
+    - inet: fully convert sk->sk_rx_dst to RCU rules
+    - thermal: intel_powerclamp: Use first online CPU as control_cpu
+    - Linux 5.4.220
+
+  * Focal update: v5.4.219 upstream stable release (LP: #1996804)
+    - Linux 5.4.219
+
+ -- Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>  Fri, 06 Jan 2023 08:50:27 -0800
+
+linux (5.4.0-137.154) focal; urgency=medium
+
+  * focal/linux: 5.4.0-137.154 -proposed tracker (LP: #2001969)
+
+  * CVE-2022-3643
+    - xen/netback: Ensure protocol headers don't fall in the non-linear area
+
+  * CVE-2022-43945
+    - NFSD: Cap rsize_bop result based on send buffer size
+
+  * CVE-2022-45934
+    - Bluetooth: L2CAP: Fix u8 overflow
+
+  * CVE-2022-42896
+    - Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM
+    - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 05 Jan 2023 13:08:58 -0300
+
+linux (5.4.0-136.153) focal; urgency=medium
+
+  * focal/linux: 5.4.0-136.153 -proposed tracker (LP: #1997835)
+
+  * Expose built-in trusted and revoked certificates (LP: #1996892)
+    - [Packaging] Expose built-in trusted and revoked certificates
+
+  * [UBUNTU 20.04] KVM: PV: ext call delivered twice when receiver in PSW wait
+    (LP: #1995941)
+    - KVM: s390: pv: don't present the ecall interrupt twice
+
+  * [UBUNTU 20.04] boot: Add s390x secure boot trailer (LP: #1996071)
+    - s390/boot: add secure boot trailer
+
+  * Fix rfkill causing soft blocked wifi (LP: #1996198)
+    - platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi
+
+  * md: Replace snprintf with scnprintf (LP: #1993315)
+    - md: Replace snprintf with scnprintf
+
+  * input/keyboard: the keyboard on some Asus laptops can't work (LP: #1992266)
+    - ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA
+    - ACPI: resource: Add ASUS model S5402ZA to quirks
+
+  * Focal update: v5.4.218 upstream stable release (LP: #1995530)
+    - mm: pagewalk: Fix race between unmap and page walker
+    - perf tools: Fixup get_current_dir_name() compilation
+    - firmware: arm_scmi: Add SCMI PM driver remove routine
+    - dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
+    - dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API
+      failure
+    - ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
+    - scsi: qedf: Fix a UAF bug in __qedf_probe()
+    - net/ieee802154: fix uninit value bug in dgram_sendmsg
+    - um: Cleanup syscall_handler_t cast in syscalls_32.h
+    - um: Cleanup compiler warning in arch/x86/um/tls_32.c
+    - arch: um: Mark the stack non-executable to fix a binutils warning
+    - usb: mon: make mmapped memory read only
+    - USB: serial: ftdi_sio: fix 300 bps rate for SIO
+    - mmc: core: Replace with already defined values for readability
+    - mmc: core: Terminate infinite loop in SD-UHS voltage switch
+    - rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
+    - nilfs2: fix leak of nilfs_root in case of writer thread creation failure
+    - nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
+    - ceph: don't truncate file in atomic_open
+    - random: clamp credited irq bits to maximum mixed
+    - ALSA: hda: Fix position reporting on Poulsbo
+    - efi: Correct Macmini DMI match in uefi cert quirk
+    - USB: serial: qcserial: add new usb-id for Dell branded EM7455
+    - random: restore O_NONBLOCK support
+    - random: avoid reading two cache lines on irq randomness
+    - random: use expired timer rather than wq for mixing fast pool
+    - Input: xpad - add supported devices as contributed on github
+    - Input: xpad - fix wireless 360 controller breaking after suspend
+    - Linux 5.4.218
+
+  * Focal update: v5.4.217 upstream stable release (LP: #1995528)
+    - xfs: fix misuse of the XFS_ATTR_INCOMPLETE flag
+    - xfs: introduce XFS_MAX_FILEOFF
+    - xfs: truncate should remove all blocks, not just to the end of the page
+      cache
+    - xfs: fix s_maxbytes computation on 32-bit kernels
+    - xfs: fix IOCB_NOWAIT handling in xfs_file_dio_aio_read
+    - xfs: refactor remote attr value buffer invalidation
+    - xfs: fix memory corruption during remote attr value buffer invalidation
+    - xfs: move incore structures out of xfs_da_format.h
+    - xfs: streamline xfs_attr3_leaf_inactive
+    - xfs: fix uninitialized variable in xfs_attr3_leaf_inactive
+    - xfs: remove unused variable 'done'
+    - Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
+    - docs: update mediator information in CoC docs
+    - Linux 5.4.217
+
+  * Focal update: v5.4.216 upstream stable release (LP: #1995526)
+    - uas: add no-uas quirk for Hiksemi usb_disk
+    - usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
+    - uas: ignore UAS for Thinkplus chips
+    - net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
+    - clk: ingenic-tcu: Properly enable registers before accessing timers
+    - ARM: dts: integrator: Tag PCI host with device_type
+    - ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
+    - libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
+    - mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
+    - mm/page_alloc: fix race condition between build_all_zonelists and page
+      allocation
+    - mm: prevent page_frag_alloc() from corrupting the memory
+    - mm/migrate_device.c: flush TLB while holding PTL
+    - mm: fix madivse_pageout mishandling on non-LRU page
+    - media: dvb_vb2: fix possible out of bound access
+    - ARM: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver
+    - ARM: dts: am33xx: Fix MMCHS0 dma properties
+    - soc: sunxi: sram: Actually claim SRAM regions
+    - soc: sunxi: sram: Prevent the driver from being unbound
+    - soc: sunxi_sram: Make use of the helper function
+      devm_platform_ioremap_resource()
+    - soc: sunxi: sram: Fix probe function ordering issues
+    - soc: sunxi: sram: Fix debugfs info for A64 SRAM C
+    - Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in
+      suspend/resume time"
+    - Input: melfas_mip4 - fix return value check in mip4_probe()
+    - usbnet: Fix memory leak in usbnet_disconnect()
+    - nvme: add new line after variable declatation
+    - nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
+    - selftests: Fix the if conditions of in test_extra_filter()
+    - clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
+    - clk: iproc: Do not rely on node name for correct PLL setup
+    - Linux 5.4.216
+
+  * Focal update: v5.4.215 upstream stable release (LP: #1993203)
+    - of: fdt: fix off-by-one error in unflatten_dt_nodes()
+    - NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
+    - gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
+    - drm/meson: Correct OSD1 global alpha value
+    - drm/meson: Fix OSD1 RGB to YCbCr coefficient
+    - parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
+    - ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
+    - task_stack, x86/cea: Force-inline stack helpers
+    - tracing: hold caller_addr to hardirq_{enable,disable}_ip
+    - cifs: revalidate mapping when doing direct writes
+    - cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
+    - MAINTAINERS: add Chandan as xfs maintainer for 5.4.y
+    - iomap: iomap that extends beyond EOF should be marked dirty
+    - ASoC: nau8824: Fix semaphore unbalance at error paths
+    - regulator: pfuze100: Fix the global-out-of-bounds access in
+      pfuze100_regulator_probe()
+    - rxrpc: Fix local destruction being repeated
+    - rxrpc: Fix calc of resend age
+    - ALSA: hda/sigmatel: Keep power up while beep is enabled
+    - ALSA: hda/tegra: Align BDL entry to 4KB boundary
+    - net: usb: qmi_wwan: add Quectel RM520N
+    - afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
+    - MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
+    - mksysmap: Fix the mismatch of 'L0' symbols in System.map
+    - video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
+    - cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
+    - ALSA: hda/sigmatel: Fix unused variable warning for beep power change
+    - usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
+    - usb: dwc3: Issue core soft reset before enabling run/stop
+    - usb: dwc3: gadget: Prevent repeat pullup()
+    - usb: dwc3: gadget: Refactor pullup()
+    - usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
+    - usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
+    - usb: xhci-mtk: get the microframe boundary for ESIT
+    - usb: xhci-mtk: add only one extra CS for FS/LS INTR
+    - usb: xhci-mtk: use @sch_tt to check whether need do TT schedule
+    - usb: xhci-mtk: add a function to (un)load bandwidth info
+    - usb: xhci-mtk: add some schedule error number
+    - usb: xhci-mtk: allow multiple Start-Split in a microframe
+    - usb: xhci-mtk: relax TT periodic bandwidth allocation
+    - wifi: mac80211: Fix UAF in ieee80211_scan_rx()
+    - tty/serial: atmel: RS485 & ISO7816: wait for TXRDY before sending data
+    - serial: atmel: remove redundant assignment in rs485_config
+    - tty: serial: atmel: Preserve previous USART mode if RS485 disabled
+    - usb: add quirks for Lenovo OneLink+ Dock
+    - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
+    - usb: cdns3: fix issue with rearming ISO OUT endpoint
+    - Revert "usb: add quirks for Lenovo OneLink+ Dock"
+    - Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
+    - USB: core: Fix RST error in hub.c
+    - USB: serial: option: add Quectel BG95 0x0203 composition
+    - USB: serial: option: add Quectel RM520N
+    - ALSA: hda/tegra: set depop delay for tegra
+    - ALSA: hda: add Intel 5 Series / 3400 PCI DID
+    - ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
+    - ALSA: hda/realtek: Re-arrange quirk table entries
+    - ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
+    - ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
+    - ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
+    - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
+    - efi: libstub: check Shim mode using MokSBStateRT
+    - mm/slub: fix to return errno if kmalloc() fails
+    - arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
+    - arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
+    - arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
+    - netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
+    - netfilter: nf_conntrack_irc: Tighten matching on DCC message
+    - netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
+    - iavf: Fix cached head and tail value for iavf_get_tx_pending
+    - ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
+    - net: team: Unsync device addresses on ndo_stop
+    - MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
+    - MIPS: Loongson32: Fix PHY-mode being left unspecified
+    - iavf: Fix bad page state
+    - i40e: Fix set max_tx_rate when it is lower than 1 Mbps
+    - of: mdio: Add of_node_put() when breaking out of for_each_xx
+    - net/sched: taprio: avoid disabling offload when it was never enabled
+    - net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child
+      qdiscs
+    - netfilter: ebtables: fix memory leak when blob is malformed
+    - can: gs_usb: gs_can_open(): fix race dev->can.state condition
+    - perf jit: Include program header in ELF files
+    - perf kcore_copy: Do not check /proc/modules is unchanged
+    - net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
+    - net: sched: fix possible refcount leak in tc_new_tfilter()
+    - serial: Create uart_xmit_advance()
+    - serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
+    - serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
+    - s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
+    - usb: xhci-mtk: fix issue of out-of-bounds array access
+    - cifs: always initialize struct msghdr smb_msg completely
+    - Drivers: hv: Never allocate anything besides framebuffer from framebuffer
+      memory region
+    - drm/amd/display: Limit user regamma to a valid value
+    - drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
+    - workqueue: don't skip lockdep work dependency in cancel_work_sync()
+    - ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
+    - xfs: replace -EIO with -EFSCORRUPTED for corrupt metadata
+    - xfs: slightly tweak an assert in xfs_fs_map_blocks
+    - xfs: add missing assert in xfs_fsmap_owner_from_rmap
+    - xfs: range check ri_cnt when recovering log items
+    - xfs: attach dquots and reserve quota blocks during unwritten conversion
+    - xfs: convert EIO to EFSCORRUPTED when log contents are invalid
+    - xfs: constify the buffer pointer arguments to error functions
+    - xfs: always log corruption errors
+    - xfs: fix some memory leaks in log recovery
+    - xfs: stabilize insert range start boundary to avoid COW writeback race
+    - xfs: use bitops interface for buf log item AIL flag check
+    - xfs: refactor agfl length computation function
+    - xfs: split the sunit parameter update into two parts
+    - xfs: don't commit sunit/swidth updates to disk if that would cause repair
+      failures
+    - xfs: fix an ABBA deadlock in xfs_rename
+    - xfs: fix use-after-free when aborting corrupt attr inactivation
+    - ext4: make directory inode spreading reflect flexbg size
+    - Linux 5.4.215
+
+  * Focal update: v5.4.214 upstream stable release (LP: #1993196)
+    - drm/msm/rd: Fix FIFO-full deadlock
+    - HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
+    - hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
+    - tg3: Disable tg3 device on system reboot to avoid triggering AER
+    - ieee802154: cc2520: add rc code in cc2520_tx()
+    - Input: iforce - add support for Boeder Force Feedback Wheel
+    - nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
+    - perf/arm_pmu_platform: fix tests for platform_get_irq() failure
+    - platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
+    - usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
+    - mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
+    - net: dp83822: disable rx error interrupt
+    - soc: fsl: select FSL_GUTS driver for DPIO
+    - tracefs: Only clobber mode/uid/gid on remount if asked
+    - Linux 5.4.214
+
+  * Focal update: v5.4.213 upstream stable release (LP: #1992211)
+    - efi: capsule-loader: Fix use-after-free in efi_capsule_write
+    - wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in
+      il4965_rs_fill_link_cmd()
+    - fs: only do a memory barrier for the first set_buffer_uptodate()
+    - Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
+    - net: dp83822: disable false carrier interrupt
+    - drm/msm/dsi: fix the inconsistent indenting
+    - drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
+    - platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
+    - iio: adc: mcp3911: make use of the sign bit
+    - ieee802154/adf7242: defer destroy_workqueue call
+    - wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
+    - Revert "xhci: turn off port power in shutdown"
+    - net: sched: tbf: don't call qdisc_put() while holding tree lock
+    - ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
+    - kcm: fix strp_init() order and cleanup
+    - sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
+    - tcp: annotate data-race around challenge_timestamp
+    - Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
+    - net/smc: Remove redundant refcount increase
+    - serial: fsl_lpuart: RS485 RTS polariy is inverse
+    - staging: rtl8712: fix use after free bugs
+    - powerpc: align syscall table for ppc32
+    - vt: Clear selection before changing the font
+    - tty: serial: lpuart: disable flow control while waiting for the transmit
+      engine to complete
+    - Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
+    - iio: adc: mcp3911: use correct formula for AD conversion
+    - misc: fastrpc: fix memory corruption on probe
+    - misc: fastrpc: fix memory corruption on open
+    - USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
+    - binder: fix UAF of ref->proc caused by race condition
+    - usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
+    - drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
+    - clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
+    - Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
+    - clk: core: Fix runtime PM sequence in clk_core_unprepare()
+    - Input: rk805-pwrkey - fix module autoloading
+    - clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
+    - hwmon: (gpio-fan) Fix array out of bounds access
+    - gpio: pca953x: Add mutex_lock for regcache sync in PM
+    - thunderbolt: Use the actual buffer in tb_async_error()
+    - xhci: Add grace period after xHC start to prevent premature runtime suspend.
+    - USB: serial: cp210x: add Decagon UCA device id
+    - USB: serial: option: add support for OPPO R11 diag port
+    - USB: serial: option: add Quectel EM060K modem
+    - USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
+    - usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
+    - usb: dwc2: fix wrong order of phy_power_on and phy_init
+    - USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
+    - usb-storage: Add ignore-residue quirk for NXP PN7462AU
+    - s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
+    - s390: fix nospec table alignments
+    - USB: core: Prevent nested device-reset calls
+    - usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
+    - driver core: Don't probe devices after bus_type.match() probe deferral
+    - wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
+    - net: mac802154: Fix a condition in the receive path
+    - ALSA: seq: oss: Fix data-race for max_midi_devs access
+    - ALSA: seq: Fix data-race at module auto-loading
+    - drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
+    - btrfs: harden identification of a stale device
+    - usb: dwc3: fix PHY disable sequence
+    - usb: dwc3: disable USB core PHY management
+    - USB: serial: ch341: fix lost character on LCR updates
+    - USB: serial: ch341: fix disabled rx timer on older devices
+    - scsi: megaraid_sas: Fix double kfree()
+    - drm/gem: Fix GEM handle release errors
+    - drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
+    - drm/radeon: add a force flush to delay work when radeon
+    - parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
+    - parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
+    - arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned
+      fw_level
+    - fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
+    - drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
+    - ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
+    - ALSA: aloop: Fix random zeros in capture data when using jiffies timer
+    - ALSA: usb-audio: Fix an out-of-bounds bug in
+      __snd_usb_parse_audio_interface()
+    - kprobes: Prohibit probes in gate area
+    - debugfs: add debugfs_lookup_and_remove()
+    - nvmet: fix a use-after-free
+    - scsi: mpt3sas: Fix use-after-free warning
+    - scsi: lpfc: Add missing destroy_workqueue() in error path
+    - cgroup: Optimize single thread migration
+    - cgroup: Elide write-locking threadgroup_rwsem when updating csses on an
+      empty subtree
+    - cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
+    - smb3: missing inode locks in punch hole
+    - ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
+    - regulator: core: Clean up on enable failure
+    - RDMA/cma: Fix arguments order in net device validation
+    - soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
+    - RDMA/hns: Fix supported page size
+    - netfilter: br_netfilter: Drop dst references before setting.
+    - rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
+    - afs: Use the operation issue time instead of the reply time for callbacks
+    - sch_sfb: Don't assume the skb is still around after enqueueing to child
+    - tipc: fix shift wrapping bug in map_get()
+    - i40e: Fix kernel crash during module removal
+    - RDMA/siw: Pass a pointer to virt_to_page()
+    - ipv6: sr: fix out-of-bounds read when setting HMAC data.
+    - RDMA/mlx5: Set local port to one when accessing counters
+    - nvme-tcp: fix UAF when detecting digest errors
+    - tcp: fix early ETIMEDOUT after spurious non-SACK RTO
+    - sch_sfb: Also store skb len before calling child enqueue
+    - x86/nospec: Fix i386 RSB stuffing
+    - MIPS: loongson32: ls1c: Fix hang during startup
+    - Linux 5.4.213
+
+  * CVE-2022-2663
+    - netfilter: nf_conntrack_irc: Fix forged IP logic
+
+  * CVE-2022-3061
+    - video: fbdev: i740fb: Error out if 'pixclock' equals zero
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 24 Nov 2022 16:40:01 +0100
+
+linux (5.4.0-135.152) focal; urgency=medium
+
+  * focal/linux: 5.4.0-135.152 -proposed tracker (LP: #1997412)
+
+  * containerd sporadic timeouts (LP: #1996678)
+    - epoll: call final ep_events_available() check under the lock
+    - epoll: check for events when removing a timed out thread from the wait queue
+    - Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
+
+  * CVE-2022-3621
+    - nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
+
+  * CVE-2022-3565
+    - mISDN: fix use-after-free bugs in l1oip timer handlers
+
+  * CVE-2022-3566
+    - tcp: Fix data races around icsk->icsk_af_ops.
+
+  * CVE-2022-3567
+    - ipv6: annotate some data-races around sk->sk_prot
+    - ipv6: Fix data races around sk->sk_prot.
+
+  * CVE-2022-3564
+    - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
+
+  * CVE-2022-3524
+    - tcp/udp: Fix memory leak in ipv6_renew_options().
+
+  * CVE-2022-3594
+    - r8152: Rate limit overflow messages
+
+  * CVE-2022-42703
+    - mm/rmap.c: don't reuse anon_vma if we just want a copy
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 23 Nov 2022 16:51:44 -0300
+
+linux (5.4.0-132.148) focal; urgency=medium
+
+  * CVE-2022-42719
+    - mac80211: mlme: find auth challenge directly
+    - wifi: mac80211: don't parse mbssid in assoc response
+    - wifi: mac80211: fix MBSSID parsing use-after-free
+
+  * iavf: SR-IOV VFs error with no traffic flow when MTU greater than 1500
+    (LP: #1983656)
+    - iavf: Fix set max MTU size with port VLAN and jumbo frames
+    - i40e: Fix VF set max MTU size
+
+  * fib_nexthop_nongw.sh from ubuntu_kernel_selftests failed on B-5.4
+    (LP: #1990800)
+    - SAUCE: selftests/net: skipping tests for older ip command releases
+
+  * CVE-2022-29901
+    - Revert "x86/speculation: Add RSB VM Exit protections"
+    - Revert "x86/cpu: Add a steppings field to struct x86_cpu_id"
+    - x86/devicetable: Move x86 specific macro out of generic code
+    - x86/cpu: Add consistent CPU match macros
+    - x86/cpu: Add a steppings field to struct x86_cpu_id
+    - x86/kvm/vmx: Make noinstr clean
+    - x86/cpufeatures: Move RETPOLINE flags to word 11
+    - x86/bugs: Report AMD retbleed vulnerability
+    - x86/bugs: Add AMD retbleed= boot parameter
+    - x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
+    - x86/entry: Remove skip_r11rcx
+    - x86/entry: Add kernel IBRS implementation
+    - x86/bugs: Optimize SPEC_CTRL MSR writes
+    - x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS
+    - x86/bugs: Split spectre_v2_select_mitigation() and
+      spectre_v2_user_select_mitigation()
+    - x86/bugs: Report Intel retbleed vulnerability
+    - intel_idle: Disable IBRS during long idle
+    - x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
+    - x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n
+    - x86/speculation: Fix firmware entry SPEC_CTRL handling
+    - x86/speculation: Fix SPEC_CTRL write on SMT state change
+    - x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit
+    - x86/speculation: Remove x86_spec_ctrl_mask
+    - KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S
+    - KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw
+    - KVM: VMX: Flatten __vmx_vcpu_run()
+    - KVM: VMX: Convert launched argument to flags
+    - KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
+    - KVM: VMX: Fix IBRS handling after vmexit
+    - x86/speculation: Fill RSB on vmexit for IBRS
+    - x86/common: Stamp out the stepping madness
+    - x86/cpu/amd: Enumerate BTC_NO
+    - x86/bugs: Add Cannon lake to RETBleed affected CPU list
+    - x86/speculation: Disable RRSBA behavior
+    - x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current
+    - x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
+    - x86/speculation: Add RSB VM Exit protections
+
+  * ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel
+    systems (LP: #1990985)
+    - ACPI: processor_idle: Skip dummy wait if kernel is in guest
+    - ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel
+      systems
+
+  * cgroup: all controllers mounted when using 'cgroup_no_v1=' (LP: #1988584)
+    - cgroup-v1: add disabled controller check in cgroup1_parse_param()
+
+  * Focal update: v5.4.212 upstream stable release (LP: #1991156)
+    - audit: fix potential double free on error path from fsnotify_add_inode_mark
+    - parisc: Fix exception handler for fldw and fstw instructions
+    - kernel/sys_ni: add compat entry for fadvise64_64
+    - usb: cdns3: Fix issue for clear halt endpoint
+    - pinctrl: amd: Don't save/restore interrupt status and wake status bits
+    - sched/deadline: Unthrottle PI boosted threads while enqueuing
+    - sched/deadline: Fix stale throttling on de-/boosted tasks
+    - sched/deadline: Fix priority inheritance with multiple scheduling classes
+    - kernel/sched: Remove dl_boosted flag comment
+    - xfrm: fix refcount leak in __xfrm_policy_check()
+    - SUNRPC: RPC level errors should set task->tk_rpc_status
+    - rose: check NULL rose_loopback_neigh->loopback
+    - net/mlx5e: Properly disable vlan strip on non-UL reps
+    - net: moxa: get rid of asymmetry in DMA mapping/unmapping
+    - bonding: 802.3ad: fix no transmission of LACPDUs
+    - net: ipvtap - add __init/__exit annotations to module init/exit funcs
+    - netfilter: ebtables: reject blobs that don't provide all entry points
+    - bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
+    - netfilter: nft_payload: report ERANGE for too long offset and length
+    - netfilter: nft_payload: do not truncate csum_offset and csum_type
+    - netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
+    - netfilter: nft_tunnel: restrict it to netdev family
+    - net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
+    - net: Fix data-races around netdev_tstamp_prequeue.
+    - ratelimit: Fix data-races in ___ratelimit().
+    - net: Fix a data-race around sysctl_tstamp_allow_data.
+    - net: Fix a data-race around sysctl_net_busy_poll.
+    - net: Fix a data-race around sysctl_net_busy_read.
+    - net: Fix a data-race around netdev_budget.
+    - net: Fix a data-race around netdev_budget_usecs.
+    - net: Fix a data-race around sysctl_somaxconn.
+    - ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
+    - btrfs: fix silent failure when deleting root reference
+    - btrfs: replace: drop assert for suspended replace
+    - btrfs: add info when mount fails due to stale replace target
+    - btrfs: check if root is readonly while setting security xattr
+    - x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
+    - loop: Check for overflow while configuring loop
+    - asm-generic: sections: refactor memory_intersects
+    - s390: fix double free of GS and RI CBs on fork() failure
+    - ACPI: processor: Remove freq Qos request for all CPUs
+    - mm/hugetlb: fix hugetlb not supporting softdirty tracking
+    - md: call __md_stop_writes in md_stop
+    - perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
+    - scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
+    - mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
+    - s390/mm: do not trigger write fault when vma does not allow VM_WRITE
+    - x86/bugs: Add "unknown" reporting for MMIO Stale Data
+    - kbuild: Fix include path in scripts/Makefile.modpost
+    - Bluetooth: L2CAP: Fix build errors in some archs
+    - HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
+    - udmabuf: Set the DMA mask for the udmabuf device (v2)
+    - media: pvrusb2: fix memory leak in pvr_probe
+    - HID: hidraw: fix memory leak in hidraw_release()
+    - fbdev: fb_pm2fb: Avoid potential divide by zero error
+    - ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is
+      dead
+    - bpf: Don't redirect packets with invalid pkt_len
+    - mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
+    - btrfs: introduce btrfs_lookup_match_dir
+    - btrfs: do not pin logs too early during renames
+    - btrfs: unify lookup return value when dir entry is missing
+    - drm/amd/display: Avoid MPC infinite loop
+    - drm/amd/display: clear optc underflow before turn off odm clock
+    - neigh: fix possible DoS due to net iface start/stop loop
+    - s390/hypfs: avoid error message under KVM
+    - drm/amd/display: Fix pixel clock programming
+    - netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y
+    - btrfs: tree-checker: check for overlapping extent items
+    - lib/vdso: Let do_coarse() return 0 to simplify the callsite
+    - lib/vdso: Mark do_hres() and do_coarse() as __always_inline
+    - kprobes: don't call disarm_kprobe() for disabled kprobes
+    - net/af_packet: check len when min_header_len equals to 0
+    - net: neigh: don't call kfree_skb() under spin_lock_irqsave()
+    - Linux 5.4.212
+
+  * Focal update: v5.4.211 upstream stable release (LP: #1990190)
+    - Makefile: link with -z noexecstack --no-warn-rwx-segments
+    - x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
+    - scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
+    - ALSA: bcd2000: Fix a UAF bug on the error path of probing
+    - igc: Remove _I_PHY_ID checking
+    - wifi: mac80211_hwsim: fix race condition in pending packet
+    - wifi: mac80211_hwsim: add back erroneously removed cast
+    - wifi: mac80211_hwsim: use 32-bit skb cookie
+    - add barriers to buffer_uptodate and set_buffer_uptodate
+    - HID: wacom: Only report rotation for art pen
+    - HID: wacom: Don't register pad_input for touch switch
+    - KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
+    - KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
+    - KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
+    - KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
+    - KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
+    - KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
+    - mm/mremap: hold the rmap lock in write mode when moving page table entries.
+    - ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
+    - ALSA: hda/cirrus - support for iMac 12,1 model
+    - ALSA: hda/realtek: Add quirk for another Asus K42JZ model
+    - tty: vt: initialize unicode screen buffer
+    - vfs: Check the truncate maximum size in inode_newsize_ok()
+    - fs: Add missing umask strip in vfs_tmpfile
+    - thermal: sysfs: Fix cooling_device_stats_setup() error code path
+    - fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
+    - usbnet: Fix linkwatch use-after-free on disconnect
+    - ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
+    - parisc: Fix device names in /proc/iomem
+    - parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
+    - drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
+    - drm/nouveau: fix another off-by-one in nvbios_addr
+    - drm/amdgpu: Check BO's requested pinning domains against its
+      preferred_domains
+    - iio: light: isl29028: Fix the warning in isl29028_remove()
+    - fuse: limit nsec
+    - serial: mvebu-uart: uart2 error bits clearing
+    - md-raid10: fix KASAN warning
+    - ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
+    - PCI: Add defines for normal and subtractive PCI bridges
+    - powerpc/fsl-pci: Fix Class Code of PCIe Root Port
+    - powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
+    - powerpc/powernv: Avoid crashing if rng is NULL
+    - MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
+    - coresight: Clear the connection field properly
+    - USB: HCD: Fix URB giveback issue in tasklet function
+    - ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
+    - arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
+    - netfilter: nf_tables: fix null deref due to zeroed list head
+    - epoll: autoremove wakers even more aggressively
+    - x86: Handle idle=nomwait cmdline properly for x86_idle
+    - arm64: Do not forget syscall when starting a new thread.
+    - arm64: fix oops in concurrently setting insn_emulation sysctls
+    - ext2: Add more validity checks for inode counts
+    - genirq: Don't return error on missing optional irq_request_resources()
+    - wait: Fix __wait_event_hrtimeout for RT/DL tasks
+    - ARM: dts: imx6ul: add missing properties for sram
+    - ARM: dts: imx6ul: change operating-points to uint32-matrix
+    - ARM: dts: imx6ul: fix csi node compatible
+    - ARM: dts: imx6ul: fix lcdif node compatible
+    - ARM: dts: imx6ul: fix qspi node compatible
+    - spi: synquacer: Add missing clk_disable_unprepare()
+    - ARM: OMAP2+: display: Fix refcount leak bug
+    - ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
+    - ACPI: PM: save NVS memory for Lenovo G40-45
+    - ACPI: LPSS: Fix missing check in register_device_clock()
+    - arm64: dts: qcom: ipq8074: fix NAND node name
+    - arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
+    - ARM: shmobile: rcar-gen2: Increase refcount for new reference
+    - PM: hibernate: defer device probing when resuming from hibernation
+    - selinux: Add boundary check in put_entry()
+    - spi: spi-rspi: Fix PIO fallback on RZ platforms
+    - ARM: findbit: fix overflowing offset
+    - meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
+    - ARM: bcm: Fix refcount leak in bcm_kona_smc_init
+    - x86/pmem: Fix platform-device leak in error path
+    - ARM: dts: ast2500-evb: fix board compatible
+    - ARM: dts: ast2600-evb: fix board compatible
+    - soc: fsl: guts: machine variable might be unset
+    - ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
+    - ARM: OMAP2+: Fix refcount leak in omapdss_init_of
+    - ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
+    - cpufreq: zynq: Fix refcount leak in zynq_get_revision
+    - soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
+    - ARM: dts: qcom: pm8841: add required thermal-sensor-cells
+    - bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
+    - arm64: dts: mt7622: fix BPI-R64 WPS button
+    - erofs: avoid consecutive detection for Highmem memory
+    - blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
+    - regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
+    - nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
+    - thermal/tools/tmon: Include pthread and time headers in tmon.h
+    - dm: return early from dm_pr_call() if DM device is suspended
+    - ath10k: do not enforce interrupt trigger type
+    - wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
+    - drm/mipi-dbi: align max_chunk to 2 in spi_transfer
+    - drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
+    - drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
+    - drm: adv7511: override i2c address of cec before accessing it
+    - i2c: Fix a potential use after free
+    - media: tw686x: Register the irq at the end of probe
+    - wifi: iwlegacy: 4965: fix potential off-by-one overflow in
+      il4965_rs_fill_link_cmd()
+    - drm: bridge: adv7511: Add check for mipi_dsi_driver_register
+    - drm/mcde: Fix refcount leak in mcde_dsi_bind
+    - media: hdpvr: fix error value returns in hdpvr_read
+    - drm/vc4: plane: Remove subpixel positioning check
+    - drm/vc4: plane: Fix margin calculations for the right/bottom edges
+    - drm/vc4: dsi: Correct DSI divider calculations
+    - crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
+    - drm/rockchip: vop: Don't crash for invalid duplicate_state()
+    - drm/rockchip: Fix an error handling path rockchip_dp_probe()
+    - drm/mediatek: dpi: Remove output format of YUV
+    - drm/mediatek: dpi: Only enable dpi after the bridge is enabled
+    - drm: bridge: sii8620: fix possible off-by-one
+    - drm/msm/mdp5: Fix global state lock backoff
+    - crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
+    - media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
+    - mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
+    - drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
+    - tcp: make retransmitted SKB fit into the send window
+    - libbpf: Fix the name of a reused map
+    - selftests: timers: valid-adjtimex: build fix for newer toolchains
+    - selftests: timers: clocksource-switch: fix passing errors from child
+    - fs: check FMODE_LSEEK to control internal pipe splicing
+    - wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
+    - wifi: p54: Fix an error handling path in p54spi_probe()
+    - wifi: p54: add missing parentheses in p54_flush()
+    - selftests/bpf: fix a test for snprintf() overflow
+    - can: pch_can: do not report txerr and rxerr during bus-off
+    - can: rcar_can: do not report txerr and rxerr during bus-off
+    - can: sja1000: do not report txerr and rxerr during bus-off
+    - can: hi311x: do not report txerr and rxerr during bus-off
+    - can: sun4i_can: do not report txerr and rxerr during bus-off
+    - can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
+    - can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
+    - can: usb_8dev: do not report txerr and rxerr during bus-off
+    - can: error: specify the values of data[5..7] of CAN error frames
+    - can: pch_can: pch_can_error(): initialize errc before using it
+    - Bluetooth: hci_intel: Add check for platform_driver_register
+    - i2c: cadence: Support PEC for SMBus block read
+    - i2c: mux-gpmux: Add of_node_put() when breaking out of loop
+    - wifi: wil6210: debugfs: fix uninitialized variable use in
+      `wil_write_file_wmi()`
+    - wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
+    - wifi: libertas: Fix possible refcount leak in if_usb_probe()
+    - net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
+    - crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
+    - iavf: Fix max_rate limiting
+    - netdevsim: Avoid allocation warnings triggered from user space
+    - net: rose: fix netdev reference changes
+    - dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
+    - clk: renesas: r9a06g032: Fix UART clkgrp bitsel
+    - mtd: maps: Fix refcount leak in of_flash_probe_versatile
+    - mtd: maps: Fix refcount leak in ap_flash_init
+    - mtd: rawnand: meson: Fix a potential double free issue
+    - HID: cp2112: prevent a buffer overflow in cp2112_xfer()
+    - mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
+    - mtd: partitions: Fix refcount leak in parse_redboot_of
+    - mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
+    - fpga: altera-pr-ip: fix unsigned comparison with less than zero
+    - usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
+    - usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
+    - usb: xhci: tegra: Fix error check
+    - clk: mediatek: reset: Fix written reset bit offset
+    - misc: rtsx: Fix an error handling path in rtsx_pci_probe()
+    - driver core: fix potential deadlock in __driver_attach
+    - clk: qcom: clk-krait: unlock spin after mux completion
+    - usb: host: xhci: use snprintf() in xhci_decode_trb()
+    - clk: qcom: ipq8074: fix NSS port frequency tables
+    - clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
+    - clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
+    - soundwire: bus_type: fix remove and shutdown support
+    - intel_th: Fix a resource leak in an error handling path
+    - intel_th: msu-sink: Potential dereference of null pointer
+    - intel_th: msu: Fix vmalloced buffers
+    - staging: rtl8192u: Fix sleep in atomic context bug in
+      dm_fsync_timer_callback
+    - mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
+    - memstick/ms_block: Fix some incorrect memory allocation
+    - memstick/ms_block: Fix a memory leak
+    - mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
+    - scsi: smartpqi: Fix DMA direction for RAID requests
+    - usb: gadget: udc: amd5536 depends on HAS_DMA
+    - RDMA/hns: Fix incorrect clearing of interrupt status register
+    - RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
+    - RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
+    - gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
+    - mmc: cavium-octeon: Add of_node_put() when breaking out of loop
+    - mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
+    - HID: alps: Declare U1_UNICORN_LEGACY support
+    - PCI: tegra194: Fix Root Port interrupt handling
+    - PCI: tegra194: Fix link up retry sequence
+    - USB: serial: fix tty-port initialized comments
+    - platform/olpc: Fix uninitialized data in debugfs write
+    - mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
+    - RDMA/rxe: Fix error unwind in rxe_create_qp()
+    - null_blk: fix ida error handling in null_add_dev()
+    - jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
+    - ext4: recover csum seed of tmp_inode after migrating to extents
+    - jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
+    - opp: Fix error check in dev_pm_opp_attach_genpd()
+    - ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
+    - ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
+    - ASoC: codecs: da7210: add check for i2c_add_driver
+    - ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
+    - serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
+    - ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
+    - ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
+    - profiling: fix shift too large makes kernel panic
+    - tty: n_gsm: fix non flow control frames during mux flow off
+    - tty: n_gsm: fix packet re-transmission without open control channel
+    - tty: n_gsm: fix race condition in gsmld_write()
+    - remoteproc: qcom: wcnss: Fix handling of IRQs
+    - vfio/ccw: Do not change FSM state in subchannel event
+    - tty: n_gsm: fix wrong T1 retry count handling
+    - tty: n_gsm: fix DM command
+    - tty: n_gsm: fix missing corner cases in gsmld_poll()
+    - iommu/exynos: Handle failed IOMMU device registration properly
+    - rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
+    - kfifo: fix kfifo_to_user() return type
+    - mfd: t7l66xb: Drop platform disable callback
+    - mfd: max77620: Fix refcount leak in max77620_initialise_fps
+    - iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
+    - s390/zcore: fix race when reading from hardware system area
+    - ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
+    - fuse: Remove the control interface for virtio-fs
+    - ASoC: audio-graph-card: Add of_node_put() in fail path
+    - watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in
+      armada_37xx_wdt_probe()
+    - video: fbdev: amba-clcd: Fix refcount leak bugs
+    - video: fbdev: sis: fix typos in SiS_GetModeID()
+    - powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
+    - powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and
+      alias
+    - powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
+    - powerpc/xive: Fix refcount leak in xive_get_max_prio
+    - powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
+    - perf symbol: Fail to read phdr workaround
+    - kprobes: Forbid probing on trampoline and BPF code areas
+    - powerpc/pci: Fix PHB numbering when using opal-phbid
+    - genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
+    - scripts/faddr2line: Fix vmlinux detection on arm64
+    - x86/numa: Use cpumask_available instead of hardcoded NULL check
+    - video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
+    - tools/thermal: Fix possible path truncations
+    - video: fbdev: vt8623fb: Check the size of screen before memset_io()
+    - video: fbdev: arkfb: Check the size of screen before memset_io()
+    - video: fbdev: s3fb: Check the size of screen before memset_io()
+    - scsi: zfcp: Fix missing auto port scan and thus missing target ports
+    - scsi: qla2xxx: Fix discovery issues in FC-AL topology
+    - scsi: qla2xxx: Turn off multi-queue for 8G adapters
+    - scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
+    - x86/olpc: fix 'logical not is only applied to the left hand side'
+    - spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
+    - kexec, KEYS, s390: Make use of built-in and secondary keyring for signature
+      verification
+    - tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
+    - btrfs: reset block group chunk force if we have to wait
+    - ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
+    - ext4: make sure ext4_append() always allocates new block
+    - ext4: fix use-after-free in ext4_xattr_set_entry
+    - ext4: update s_overhead_clusters in the superblock during an on-line resize
+    - ext4: fix extent status tree race in writeback error recovery path
+    - ext4: correct max_inline_xattr_value_size computing
+    - ext4: correct the misjudgment in ext4_iget_extra_inode
+    - intel_th: pci: Add Raptor Lake-S CPU support
+    - intel_th: pci: Add Raptor Lake-S PCH support
+    - intel_th: pci: Add Meteor Lake-P support
+    - dm raid: fix address sanitizer warning in raid_resume
+    - dm raid: fix address sanitizer warning in raid_status
+    - dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
+    - dm writecache: set a default MAX_WRITEBACK_JOBS
+    - ACPI: CPPC: Do not prevent CPPC from working in the future
+    - timekeeping: contribute wall clock to rng on time change
+    - firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
+    - iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
+    - btrfs: reject log replay if there is unsupported RO compat flag
+    - KVM: Add infrastructure and macro to mark VM as bugged
+    - KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
+    - KVM: x86: Avoid theoretical NULL pointer dereference in
+      kvm_irq_delivery_to_apic_fast()
+    - tcp: fix over estimation in sk_forced_mem_schedule()
+    - scsi: sg: Allow waiting for commands to complete on removed device
+    - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
+    - net/9p: Initialize the iounit field during fid creation
+    - net_sched: cls_route: disallow handle of 0
+    - ALSA: info: Fix llseek return value when using callback
+    - rds: add missing barrier to release_refill
+    - ata: libata-eh: Add missing command name
+    - mmc: pxamci: Fix another error handling path in pxamci_probe()
+    - mmc: pxamci: Fix an error handling path in pxamci_probe()
+    - btrfs: fix lost error handling when looking up extended ref on log replay
+    - tracing: Have filter accept "common_cpu" to be consistent
+    - can: ems_usb: fix clang's -Wunaligned-access warning
+    - apparmor: fix quiet_denied for file rules
+    - apparmor: fix absroot causing audited secids to begin with =
+    - apparmor: Fix failed mount permission check error message
+    - apparmor: fix aa_label_asxprint return check
+    - apparmor: fix overlapping attachment computation
+    - apparmor: fix reference count leak in aa_pivotroot()
+    - apparmor: Fix memleak in aa_simple_write_to_buffer()
+    - Documentation: ACPI: EINJ: Fix obsolete example
+    - NFSv4.1: Don't decrease the value of seq_nr_highest_sent
+    - NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
+    - NFSv4: Fix races in the legacy idmapper upcall
+    - NFSv4.1: RECLAIM_COMPLETE must handle EACCES
+    - NFSv4/pnfs: Fix a use-after-free bug in open
+    - can: mcp251x: Fix race condition on receive interrupt
+    - sunrpc: fix expiry of auth creds
+    - SUNRPC: Reinitialise the backchannel request buffers before reuse
+    - devlink: Fix use-after-free after a failed reload
+    - net: bgmac: Fix a BUG triggered by wrong bytes_compl
+    - pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
+    - pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
+    - pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
+    - ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
+    - geneve: do not use RT_TOS for IPv6 flowlabel
+    - plip: avoid rcu debug splat
+    - vsock: Fix memory leak in vsock_connect()
+    - vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
+    - dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
+    - tools/vm/slabinfo: use alphabetic order when two values are equal
+    - tools build: Switch to new openssl API for test-libcrypto
+    - NTB: ntb_tool: uninitialized heap data in tool_fn_write()
+    - nfp: ethtool: fix the display error of `ethtool -m DEVNAME`
+    - xen/xenbus: fix return type in xenbus_file_read()
+    - atm: idt77252: fix use-after-free bugs caused by tst_timer
+    - dpaa2-eth: trace the allocated address instead of page struct
+    - tee: add overflow check in register_shm_helper()
+    - nios2: page fault et.al. are *not* restartable syscalls...
+    - nios2: don't leave NULLs in sys_call_table[]
+    - nios2: traced syscall does need to check the syscall number
+    - nios2: fix syscall restart checks
+    - nios2: restarts apply only to the first sigframe we build...
+    - nios2: add force_successful_syscall_return()
+    - iavf: Fix adminq error handling
+    - clk: rockchip: add sclk_mac_lbtest to rk3188_critical_clocks
+    - netfilter: nf_tables: really skip inactive sets when allocating name
+    - powerpc/pci: Fix get_phb_number() locking
+    - net: dsa: mv88e6060: prevent crash on an unused port
+    - net: moxa: pass pdev instead of ndev to DMA functions
+    - net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
+    - ice: Ignore EEXIST when setting promisc mode
+    - i40e: Fix to stop tx_timeout recovery if GLOBR fails
+    - fec: Fix timer capture timing in `fec_ptp_enable_pps()`
+    - igb: Add lock to avoid data race
+    - gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
+    - locking/atomic: Make test_and_*_bit() ordered on failure
+    - drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
+    - PCI: Add ACS quirk for Broadcom BCM5750x NICs
+    - usb: cdns3 fix use-after-free at workaround 2
+    - usb: gadget: uvc: call uvc uvcg_warn on completed status instead of
+      uvcg_info
+    - irqchip/tegra: Fix overflow implicit truncation warnings
+    - drm/meson: Fix overflow implicit truncation warnings
+    - usb: host: ohci-ppc-of: Fix refcount leak bug
+    - usb: renesas: Fix refcount leak bug
+    - vboxguest: Do not use devm for irq
+    - clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
+    - scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user
+      input
+    - gadgetfs: ep_io - wait until IRQ finishes
+    - cxl: Fix a memory leak in an error handling path
+    - PCI/ACPI: Guard ARM64-specific mcfg_quirks
+    - um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
+    - selftests/kprobe: Do not test for GRP/ without event failures
+    - dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
+    - nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
+    - drivers:md:fix a potential use-after-free bug
+    - ext4: avoid remove directory when directory is corrupted
+    - ext4: avoid resizing to a partial cluster size
+    - lib/list_debug.c: Detect uninitialized lists
+    - tty: serial: Fix refcount leak bug in ucc_uart.c
+    - vfio: Clear the caps->buf to NULL after free
+    - mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
+    - riscv: mmap with PROT_WRITE but no PROT_READ is invalid
+    - RISC-V: Add fast call path of crash_kexec()
+    - watchdog: export lockup_detector_reconfigure
+    - powerpc/32: Don't always pass -mcpu=powerpc to the compiler
+    - ALSA: core: Add async signal helpers
+    - ALSA: timer: Use deferred fasync helper
+    - f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
+    - smb3: check xattr value length earlier
+    - powerpc/64: Init jump labels before parse_early_param()
+    - video: fbdev: i740fb: Check the argument of i740_calc_vclk()
+    - MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
+    - tracing/probes: Have kprobes and uprobes use $COMM too
+    - can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with
+      netdev_warn_once()
+    - can: j1939: j1939_session_destroy(): fix memory leak of skbs
+    - btrfs: only write the sectors in the vertical stripe which has data stripes
+    - btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
+    - Linux 5.4.211
+
+  * CVE-2022-3028
+    - af_key: Do not call xfrm_probe_algs in parallel
+
+  * CVE-2022-2978
+    - fs: fix UAF/GPF bug in nilfs_mdt_destroy
+
+  * CVE-2022-40768
+    - scsi: stex: Properly zero out the passthrough command structure
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 17 Oct 2022 17:19:41 +0200
+
+linux (5.4.0-131.147) focal; urgency=medium
+
+  * CVE-2022-2602
+    - SAUCE: io_uring/af_unix: defer registered files gc to io_uring release
+    - SAUCE: io_uring/af_unix: fix memleak during unix GC
+
+  * CVE-2022-41674
+    - SAUCE: wifi: cfg80211: fix u8 overflow in
+      cfg80211_update_notlisted_nontrans()
+    - SAUCE: wifi: cfg80211/mac80211: reject bad MBSSID elements
+    - SAUCE: wifi: cfg80211: ensure length byte is present before access
+    - SAUCE: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
+    - SAUCE: wifi: cfg80211: update hidden BSSes to avoid WARN_ON
+
+  * CVE-2022-42721
+    - SAUCE: wifi: cfg80211: avoid nontransmitted BSS list corruption
+
+  * CVE-2022-42720
+    - SAUCE: wifi: cfg80211: fix BSS refcounting bugs
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 14 Oct 2022 13:32:31 -0300
+
+linux (5.4.0-128.144) focal; urgency=medium
+
+  * focal/linux: 5.4.0-128.144 -proposed tracker (LP: #1990152)
+
+  * CVE-2022-3176
+    - io_uring: disable polling pollfree files
+
+  * ip/nexthop: fix default address selection for connected nexthop
+    (LP: #1988809)
+    - selftests/net: test nexthop without gw
+
+  * ip/nexthop: fix default address selection for connected nexthop
+    (LP: #1988809) // icmp_redirect.sh in ubuntu_kernel_selftests failed on
+    Jammy 5.15.0-49.55 (LP: #1990124)
+    - ip: fix triggering of 'icmp redirect'
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 20 Sep 2022 11:19:18 +0200
+
+linux (5.4.0-127.143) focal; urgency=medium
+
+  * focal/linux: 5.4.0-127.143 -proposed tracker (LP: #1989892)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.09.19)
+
+  * [UBUNTU 20.04] mlx5 driver crashes on accessing device attributes during
+    recovery (LP: #1987287)
+    - net/mlx5: Avoid processing commands before cmdif is ready
+
+  * Focal update: v5.4.210 upstream stable release (LP: #1989230)
+    - thermal: Fix NULL pointer dereferences in of_thermal_ functions
+    - ACPI: video: Force backlight native for some TongFang devices
+    - ACPI: video: Shortening quirk list by identifying Clevo by board_name only
+    - ACPI: APEI: Better fix to avoid spamming the console with old error logs
+    - bpf: Verifer, adjust_scalar_min_max_vals to always call update_reg_bounds()
+    - selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads
+    - bpf: Test_verifier, #70 error message updates for 32-bit right shift
+    - KVM: Don't null dereference ops->destroy
+    - selftests: KVM: Handle compiler optimizations in ucall
+    - media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
+    - macintosh/adb: fix oob read in do_adb_query() function
+    - x86/speculation: Add RSB VM Exit protections
+    - x86/speculation: Add LFENCE to RSB fill sequence
+    - Linux 5.4.210
+
+  * Focal update: v5.4.209 upstream stable release (LP: #1989228)
+    - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
+    - ntfs: fix use-after-free in ntfs_ucsncmp()
+    - s390/archrandom: prevent CPACF trng invocations in interrupt context
+    - tcp: Fix data-races around sysctl_tcp_dsack.
+    - tcp: Fix a data-race around sysctl_tcp_app_win.
+    - tcp: Fix a data-race around sysctl_tcp_adv_win_scale.
+    - tcp: Fix a data-race around sysctl_tcp_frto.
+    - tcp: Fix a data-race around sysctl_tcp_nometrics_save.
+    - ice: check (DD | EOF) bits on Rx descriptor rather than (EOP | RS)
+    - ice: do not setup vlan for loopback VSI
+    - scsi: ufs: host: Hold reference returned by of_parse_phandle()
+    - tcp: Fix a data-race around sysctl_tcp_limit_output_bytes.
+    - tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit.
+    - net: ping6: Fix memleak in ipv6_renew_options().
+    - ipv6/addrconf: fix a null-ptr-deref bug for ip6_ptr
+    - igmp: Fix data-races around sysctl_igmp_qrv.
+    - net: sungem_phy: Add of_node_put() for reference returned by of_get_parent()
+    - tcp: Fix a data-race around sysctl_tcp_min_tso_segs.
+    - tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen.
+    - tcp: Fix a data-race around sysctl_tcp_autocorking.
+    - tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
+    - Documentation: fix sctp_wmem in ip-sysctl.rst
+    - tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns.
+    - tcp: Fix a data-race around sysctl_tcp_comp_sack_nr.
+    - i40e: Fix interface init with MSI interrupts (no MSI-X)
+    - sctp: fix sleep in atomic context bug in timer handlers
+    - virtio-net: fix the race between refill work and close
+    - perf symbol: Correct address for bss symbols
+    - sfc: disable softirqs for ptp TX
+    - sctp: leave the err path free in sctp_stream_init to sctp_stream_free
+    - ARM: crypto: comment out gcc warning that breaks clang builds
+    - mt7601u: add USB device ID for some versions of XiaoDu WiFi Dongle.
+    - scsi: core: Fix race between handling STS_RESOURCE and completion
+    - Linux 5.4.209
+
+  * Focal update: v5.4.208 upstream stable release (LP: #1988225)
+    - pinctrl: stm32: fix optional IRQ support to gpios
+    - riscv: add as-options for modules with assembly compontents
+    - mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication
+    - lockdown: Fix kexec lockdown bypass with ima policy
+    - xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE
+    - PCI: hv: Fix multi-MSI to allow more than one MSI vector
+    - PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
+    - PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
+    - PCI: hv: Fix interrupt mapping for multi-MSI
+    - serial: mvebu-uart: correctly report configured baudrate value
+    - xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in
+      xfrm_bundle_lookup()
+    - power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe
+    - pinctrl: ralink: Check for null return of devm_kcalloc
+    - perf/core: Fix data race between perf_event_set_output() and
+      perf_mmap_close()
+    - igc: Reinstate IGC_REMOVED logic and implement it properly
+    - ip: Fix data-races around sysctl_ip_no_pmtu_disc.
+    - ip: Fix data-races around sysctl_ip_fwd_use_pmtu.
+    - ip: Fix data-races around sysctl_ip_nonlocal_bind.
+    - ip: Fix a data-race around sysctl_fwmark_reflect.
+    - tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
+    - tcp: Fix data-races around sysctl_tcp_mtu_probing.
+    - tcp: Fix data-races around sysctl_tcp_base_mss.
+    - tcp: Fix data-races around sysctl_tcp_min_snd_mss.
+    - tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor.
+    - tcp: Fix a data-race around sysctl_tcp_probe_threshold.
+    - tcp: Fix a data-race around sysctl_tcp_probe_interval.
+    - i2c: cadence: Change large transfer count reset logic to be unconditional
+    - net: stmmac: fix dma queue left shift overflow issue
+    - net/tls: Fix race in TLS device down flow
+    - igmp: Fix data-races around sysctl_igmp_llm_reports.
+    - igmp: Fix a data-race around sysctl_igmp_max_memberships.
+    - tcp: Fix data-races around sysctl_tcp_syncookies.
+    - tcp: Fix data-races around sysctl_tcp_reordering.
+    - tcp: Fix data-races around some timeout sysctl knobs.
+    - tcp: Fix a data-race around sysctl_tcp_notsent_lowat.
+    - tcp: Fix a data-race around sysctl_tcp_tw_reuse.
+    - tcp: Fix data-races around sysctl_max_syn_backlog.
+    - tcp: Fix data-races around sysctl_tcp_fastopen.
+    - iavf: Fix handling of dummy receive descriptors
+    - i40e: Fix erroneous adapter reinitialization during recovery process
+    - ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero
+    - gpio: pca953x: only use single read/write for No AI mode
+    - be2net: Fix buffer overflow in be_get_module_eeprom
+    - ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh.
+    - udp: Fix a data-race around sysctl_udp_l3mdev_accept.
+    - tcp: Fix data-races around sysctl knobs related to SYN option.
+    - tcp: Fix a data-race around sysctl_tcp_early_retrans.
+    - tcp: Fix data-races around sysctl_tcp_recovery.
+    - tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts.
+    - tcp: Fix data-races around sysctl_tcp_slow_start_after_idle.
+    - tcp: Fix a data-race around sysctl_tcp_retrans_collapse.
+    - tcp: Fix a data-race around sysctl_tcp_stdurg.
+    - tcp: Fix a data-race around sysctl_tcp_rfc1337.
+    - tcp: Fix data-races around sysctl_tcp_max_reordering.
+    - spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA
+      transfers
+    - mm/mempolicy: fix uninit-value in mpol_rebind_policy()
+    - bpf: Make sure mac_header was set before using it
+    - dlm: fix pending remove if msg allocation fails
+    - ima: remove the IMA_TEMPLATE Kconfig option
+    - [Config] updateconfigs for IMA_TEMPLATE
+    - locking/refcount: Define constants for saturation and max refcount values
+    - locking/refcount: Ensure integer operands are treated as signed
+    - locking/refcount: Remove unused refcount_*_checked() variants
+    - locking/refcount: Move the bulk of the REFCOUNT_FULL implementation into the
+      <linux/refcount.h> header
+    - locking/refcount: Improve performance of generic REFCOUNT_FULL code
+    - locking/refcount: Move saturation warnings out of line
+    - locking/refcount: Consolidate REFCOUNT_{MAX,SATURATED} definitions
+    - locking/refcount: Consolidate implementations of refcount_t
+    - [Config] updateconfigs for REFCOUNT_FULL
+    - x86: get rid of small constant size cases in raw_copy_{to,from}_user()
+    - x86/uaccess: Implement macros for CMPXCHG on user addresses
+    - mmap locking API: initial implementation as rwsem wrappers
+    - x86/mce: Deduplicate exception handling
+    - bitfield.h: Fix "type of reg too small for mask" test
+    - ALSA: memalloc: Align buffer allocations in page size
+    - Bluetooth: Add bt_skb_sendmsg helper
+    - Bluetooth: Add bt_skb_sendmmsg helper
+    - Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg
+    - Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg
+    - Bluetooth: Fix passing NULL to PTR_ERR
+    - Bluetooth: SCO: Fix sco_send_frame returning skb->len
+    - Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks
+    - tty: drivers/tty/, stop using tty_schedule_flip()
+    - tty: the rest, stop using tty_schedule_flip()
+    - tty: drop tty_schedule_flip()
+    - tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push()
+    - tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
+    - x86: drop bogus "cc" clobber from __try_cmpxchg_user_asm()
+    - Linux 5.4.208
+
+  * Focal update: v5.4.207 upstream stable release (LP: #1988219)
+    - ALSA: hda - Add fixup for Dell Latitidue E5430
+    - ALSA: hda/conexant: Apply quirk for another HP ProDesk 600 G3 model
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc221
+    - ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
+    - xen/netback: avoid entering xenvif_rx_next_skb() with an empty rx queue
+    - tracing/histograms: Fix memory leak problem
+    - net: sock: tracing: Fix sock_exceed_buf_limit not to dereference stale
+      pointer
+    - ip: fix dflt addr selection for connected nexthop
+    - ARM: 9213/1: Print message about disabled Spectre workarounds only once
+    - ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
+    - wifi: mac80211: fix queue selection for mesh/OCB interfaces
+    - cgroup: Use separate src/dst nodes when preloading css_sets for migration
+    - drm/panfrost: Fix shrinker list corruption by madvise IOCTL
+    - nilfs2: fix incorrect masking of permission flags for symlinks
+    - Revert "evm: Fix memleak in init_desc"
+    - sched/rt: Disable RT_RUNTIME_SHARE by default
+    - ext4: fix race condition between ext4_write and ext4_convert_inline_data
+    - ARM: dts: imx6qdl-ts7970: Fix ngpio typo and count
+    - ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle
+    - ARM: 9210/1: Mark the FDT_FIXED sections as shareable
+    - drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector()
+    - ima: Fix a potential integer overflow in ima_appraise_measurement
+    - ASoC: sgtl5000: Fix noise on shutdown/remove
+    - net: stmmac: dwc-qos: Disable split header for Tegra194
+    - inetpeer: Fix data-races around sysctl.
+    - net: Fix data-races around sysctl_mem.
+    - cipso: Fix data-races around sysctl.
+    - icmp: Fix data-races around sysctl.
+    - ipv4: Fix a data-race around sysctl_fib_sync_mem.
+    - ARM: dts: at91: sama5d2: Fix typo in i2s1 node
+    - ARM: dts: sunxi: Fix SPI NOR campatible on Orange Pi Zero
+    - drm/i915/gt: Serialize TLB invalidates with GT resets
+    - icmp: Fix a data-race around sysctl_icmp_ratelimit.
+    - icmp: Fix a data-race around sysctl_icmp_ratemask.
+    - raw: Fix a data-race around sysctl_raw_l3mdev_accept.
+    - ipv4: Fix data-races around sysctl_ip_dynaddr.
+    - net: ftgmac100: Hold reference returned by of_get_child_by_name()
+    - sfc: fix use after free when disabling sriov
+    - seg6: fix skb checksum evaluation in SRH encapsulation/insertion
+    - seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors
+    - seg6: bpf: fix skb checksum in bpf_push_seg6_encap()
+    - sfc: fix kernel panic when creating VF
+    - mm: sysctl: fix missing numa_stat when !CONFIG_HUGETLB_PAGE
+    - virtio_mmio: Add missing PM calls to freeze/restore
+    - virtio_mmio: Restore guest page size on resume
+    - netfilter: br_netfilter: do not skip all hooks with 0 priority
+    - cpufreq: pmac32-cpufreq: Fix refcount leak bug
+    - platform/x86: hp-wmi: Ignore Sanitization Mode event
+    - net: tipc: fix possible refcount leak in tipc_sk_create()
+    - NFC: nxp-nci: don't print header length mismatch on i2c error
+    - nvme: fix regression when disconnect a recovering ctrl
+    - net: sfp: fix memory leak in sfp_probe()
+    - ASoC: ops: Fix off by one in range control validation
+    - ASoC: wm5110: Fix DRE control
+    - ASoC: cs47l15: Fix event generation for low power mux control
+    - ASoC: madera: Fix event generation for OUT1 demux
+    - ASoC: madera: Fix event generation for rate controls
+    - irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
+    - x86: Clear .brk area at early boot
+    - soc: ixp4xx/npe: Fix unused match warning
+    - ARM: dts: stm32: use the correct clock source for CEC on stm32mp151
+    - signal handling: don't use BUG_ON() for debugging
+    - USB: serial: ftdi_sio: add Belimo device ids
+    - usb: typec: add missing uevent when partner support PD
+    - usb: dwc3: gadget: Fix event pending check
+    - tty: serial: samsung_tty: set dma burst_size to 1
+    - serial: 8250: fix return error code in serial8250_request_std_resource()
+    - serial: stm32: Clear prev values before setting RTS delays
+    - serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle
+    - can: m_can: m_can_tx_handler(): fix use after free of skb
+    - Linux 5.4.207
+
+  * Focal update: v5.4.206 upstream stable release (LP: #1988215)
+    - Linux 5.4.206
+
+  * Focal update: v5.4.205 upstream stable release (LP: #1988214)
+    - esp: limit skb_page_frag_refill use to a single page
+    - mm/slub: add missing TID updates on slab deactivation
+    - can: bcm: use call_rcu() instead of costly synchronize_rcu()
+    - can: grcan: grcan_probe(): remove extra of_node_get()
+    - can: gs_usb: gs_usb_open/close(): fix memory leak
+    - usbnet: fix memory leak in error case
+    - net: rose: fix UAF bug caused by rose_t0timer_expiry
+    - iommu/vt-d: Fix PCI bus rescan device hot add
+    - fbdev: fbmem: Fix logo center image dx issue
+    - video: of_display_timing.h: include errno.h
+    - powerpc/powernv: delay rng platform device creation until later in boot
+    - can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info
+    - can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression
+    - can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits
+    - xfs: remove incorrect ASSERT in xfs_rename
+    - ARM: meson: Fix refcount leak in meson_smp_prepare_cpus
+    - pinctrl: sunxi: a83t: Fix NAND function name for some pins
+    - pinctrl: sunxi: sunxi_pconf_set: use correct offset
+    - ARM: at91: pm: use proper compatible for sama5d2's rtc
+    - ARM: at91: pm: use proper compatibles for sam9x60's rtc and rtt
+    - ibmvnic: Properly dispose of all skbs during a failover.
+    - selftests: forwarding: fix flood_unicast_test when h2 supports
+      IFF_UNICAST_FLT
+    - selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT
+    - selftests: forwarding: fix error message in learning_test
+    - i2c: cadence: Unregister the clk notifier in error path
+    - dmaengine: imx-sdma: Allow imx8m for imx7 FW revs
+    - misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer
+    - misc: rtsx_usb: use separate command and response buffers
+    - misc: rtsx_usb: set return value in rsp_buf alloc err path
+    - dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo
+    - ida: don't use BUG_ON() for debugging
+    - dmaengine: pl330: Fix lockdep warning about non-static key
+    - dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly
+    - dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate
+    - dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate
+    - Linux 5.4.205
+
+  * Focal update: v5.4.204 upstream stable release (LP: #1988212)
+    - ipv6: take care of disable_policy when restoring routes
+    - nvdimm: Fix badblocks clear off-by-one error
+    - powerpc/prom_init: Fix kernel config grep
+    - powerpc/bpf: Fix use of user_pt_regs in uapi
+    - dm raid: fix accesses beyond end of raid member array
+    - dm raid: fix KASAN warning in raid5_add_disks
+    - s390/archrandom: simplify back to earlier design and initialize earlier
+    - SUNRPC: Fix READ_PLUS crasher
+    - net: rose: fix UAF bugs caused by timer handler
+    - net: usb: ax88179_178a: Fix packet receiving
+    - virtio-net: fix race between ndo_open() and virtio_device_ready()
+    - selftests/net: pass ipv6_args to udpgso_bench's IPv6 TCP test
+    - net: tun: unlink NAPI from device on destruction
+    - net: tun: stop NAPI when detaching queues
+    - RDMA/qedr: Fix reporting QP timeout attribute
+    - linux/dim: Fix divide by 0 in RDMA DIM
+    - usbnet: fix memory allocation in helpers
+    - net: ipv6: unexport __init-annotated seg6_hmac_net_init()
+    - caif_virtio: fix race between virtio_device_ready() and ndo_open()
+    - PM / devfreq: exynos-ppmu: Fix refcount leak in of_get_devfreq_events
+    - s390: remove unneeded 'select BUILD_BIN2C'
+    - netfilter: nft_dynset: restore set element counter when failing to update
+    - net/sched: act_api: Notify user space if any actions were flushed before
+      error
+    - net: bonding: fix possible NULL deref in rlb code
+    - net: bonding: fix use-after-free after 802.3ad slave unbind
+    - nfc: nfcmrvl: Fix irq_of_parse_and_map() return value
+    - NFC: nxp-nci: Don't issue a zero length i2c_master_read()
+    - net: tun: avoid disabling NAPI twice
+    - xen/gntdev: Avoid blocking in unmap_grant_pages()
+    - hwmon: (ibmaem) don't call platform_device_del() if platform_device_add()
+      fails
+    - net: dsa: bcm_sf2: force pause link settings
+    - sit: use min
+    - ipv6/sit: fix ipip6_tunnel_get_prl return value
+    - rseq/selftests,x86_64: Add rseq_offset_deref_addv()
+    - selftests/rseq: remove ARRAY_SIZE define from individual tests
+    - selftests/rseq: introduce own copy of rseq uapi header
+    - selftests/rseq: Remove useless assignment to cpu variable
+    - selftests/rseq: Remove volatile from __rseq_abi
+    - selftests/rseq: Introduce rseq_get_abi() helper
+    - selftests/rseq: Introduce thread pointer getters
+    - selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35
+    - selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian
+    - selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for
+      load/store
+    - selftests/rseq: Fix ppc32 offsets by using long rather than off_t
+    - selftests/rseq: Fix warnings about #if checks of undefined tokens
+    - selftests/rseq: Remove arm/mips asm goto compiler work-around
+    - selftests/rseq: Fix: work-around asm goto compiler bugs
+    - selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread
+      area
+    - selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread
+      area
+    - selftests/rseq: Change type of rseq_offset to ptrdiff_t
+    - xen/blkfront: fix leaking data in shared pages
+    - xen/netfront: fix leaking data in shared pages
+    - xen/netfront: force data bouncing when backend is untrusted
+    - xen/blkfront: force data bouncing when backend is untrusted
+    - xen/arm: Fix race in RB-tree based P2M accounting
+    - net: usb: qmi_wwan: add Telit 0x1060 composition
+    - net: usb: qmi_wwan: add Telit 0x1070 composition
+    - clocksource/drivers/ixp4xx: remove EXPORT_SYMBOL_GPL from
+      ixp4xx_timer_setup()
+    - Linux 5.4.204
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 16 Sep 2022 11:05:09 +0200
+
+linux (5.4.0-126.142) focal; urgency=medium
+
+  * focal/linux: 5.4.0-126.142 -proposed tracker (LP: #1987819)
+
+  * [SRU] fnic driver on needs to be updated to 1.6.0.53 on Focal (LP: #1984011)
+    - scsi: fnic: Change shost_printk() to FNIC_FCS_DBG()
+    - scsi: fnic: Avoid looping in TRANS ETH on unload
+    - scsi: fnic: Change shost_printk() to FNIC_MAIN_DBG()
+    - scsi: fnic: Set scsi_set_resid() only for underflow
+    - scsi: fnic: Validate io_req before others
+
+  * Focal update: v5.4.203 upstream stable release (LP: #1986999)
+    - drm: remove drm_fb_helper_modinit
+    - powerpc/ftrace: Remove ftrace init tramp once kernel init is complete
+    - kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
+    - net: mscc: ocelot: allow unregistered IP multicast flooding
+    - ARM: 8989/1: use .fpu assembler directives instead of assembler arguments
+    - ARM: 8990/1: use VFP assembler mnemonics in register load/store macros
+    - ARM: 8971/1: replace the sole use of a symbol with its definition
+    - crypto: arm/sha256-neon - avoid ADRL pseudo instruction
+    - crypto: arm/sha512-neon - avoid ADRL pseudo instruction
+    - ARM: 8933/1: replace Sun/Solaris style flag on section directive
+    - ARM: 8929/1: use APSR_nzcv instead of r15 as mrc operand
+    - ARM: OMAP2+: drop unnecessary adrl
+    - ARM: 9029/1: Make iwmmxt.S support Clang's integrated assembler
+    - crypto: arm - use Kconfig based compiler checks for crypto opcodes
+    - crypto: arm/ghash-ce - define fpu before fpu registers are referenced
+    - Linux 5.4.203
+
+  * Focal update: v5.4.202 upstream stable release (LP: #1986995)
+    - random: schedule mix_interrupt_randomness() less often
+    - ALSA: hda/via: Fix missing beep setup
+    - ALSA: hda/conexant: Fix missing beep setup
+    - ALSA: hda/realtek - ALC897 headset MIC no sound
+    - ALSA: hda/realtek: Add quirk for Clevo PD70PNT
+    - net: openvswitch: fix parsing of nw_proto for IPv6 fragments
+    - mmc: sdhci-pci-o2micro: Fix card detect by dealing with debouncing
+    - ata: libata: add qc->flags in ata_qc_complete_template tracepoint
+    - dm era: commit metadata in postsuspend after worker stops
+    - dm mirror log: clear log bits up to BITS_PER_LONG boundary
+    - random: quiet urandom warning ratelimit suppression message
+    - USB: serial: option: add Telit LE910Cx 0x1250 composition
+    - USB: serial: option: add Quectel EM05-G modem
+    - USB: serial: option: add Quectel RM500K module support
+    - bpf: Fix request_sock leak in sk lookup helpers
+    - phy: aquantia: Fix AN when higher speeds than 1G are not advertised
+    - bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers
+    - net/sched: sch_netem: Fix arithmetic in netem_dump() for 32-bit platforms
+    - drm/msm/mdp4: Fix refcount leak in mdp4_modeset_init_intf
+    - erspan: do not assume transport header is always set
+    - net/tls: fix tls_sk_proto_close executed repeatedly
+    - udmabuf: add back sanity check
+    - x86/xen: Remove undefined behavior in setup_features()
+    - MIPS: Remove repetitive increase irq_err_count
+    - afs: Fix dynamic root getattr
+    - ice: ethtool: advertise 1000M speeds properly
+    - regmap-irq: Fix a bug in regmap_irq_enable() for type_in_mask chips
+    - igb: Make DMA faster when CPU is active on the PCIe link
+    - virtio_net: fix xdp_rxq_info bug after suspend/resume
+    - Revert "net/tls: fix tls_sk_proto_close executed repeatedly"
+    - gpio: winbond: Fix error code in winbond_gpio_get()
+    - s390/cpumf: Handle events cycles and instructions identical
+    - iio: adc: vf610: fix conversion mode sysfs node name
+    - xhci: turn off port power in shutdown
+    - usb: chipidea: udc: check request status before setting device address
+    - iio:chemical:ccs811: rearrange iio trigger get and register
+    - iio:accel:bma180: rearrange iio trigger get and register
+    - iio:accel:mxc4005: rearrange iio trigger get and register
+    - iio: accel: mma8452: ignore the return value of reset operation
+    - iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up()
+    - iio: trigger: sysfs: fix use-after-free on remove
+    - iio: adc: stm32: fix maximum clock rate for stm32mp15x
+    - iio: adc: axp288: Override TS pin bias current for some models
+    - xtensa: xtfpga: Fix refcount leak bug in setup
+    - xtensa: Fix refcount leak bug in time.c
+    - parisc: Enable ARCH_HAS_STRICT_MODULE_RWX
+    - powerpc: Enable execve syscall exit tracepoint
+    - powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
+    - powerpc/powernv: wire up rng during setup_arch
+    - ARM: dts: imx6qdl: correct PU regulator ramp delay
+    - ARM: exynos: Fix refcount leak in exynos_map_pmu
+    - soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
+    - ARM: Fix refcount leak in axxia_boot_secondary
+    - ARM: cns3xxx: Fix refcount leak in cns3xxx_init
+    - modpost: fix section mismatch check for exported init/exit sections
+    - random: update comment from copy_to_user() -> copy_to_iter()
+    - kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
+    - powerpc/pseries: wire up rng during setup_arch()
+    - Linux 5.4.202
+
+  * Focal update: v5.4.201 upstream stable release (LP: #1986993)
+    - dm: remove special-casing of bio-based immutable singleton target on NVMe
+    - usb: gadget: u_ether: fix regression in setting fixed MAC address
+    - tcp: add some entropy in __inet_hash_connect()
+    - tcp: use different parts of the port_offset for index and offset
+    - tcp: add small random increments to the source port
+    - tcp: dynamically allocate the perturb table used by source ports
+    - tcp: increase source port perturb table to 2^16
+    - tcp: drop the hash_32() part from the index calculation
+    - arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer
+    - Linux 5.4.201
+
+  * Focal update: v5.4.200 upstream stable release (LP: #1983152)
+    - Revert "UBUNTU: SAUCE: random: Make getrandom() ready earlier"
+    - 9p: missing chunk of "fs/9p: Don't update file type when updating file
+      attributes"
+    - bpf: Fix incorrect memory charge cost calculation in stack_map_alloc()
+    - nfc: st21nfca: fix incorrect sizing calculations in EVT_TRANSACTION
+    - crypto: blake2s - generic C library implementation and selftest
+    - lib/crypto: blake2s: move hmac construction into wireguard
+    - lib/crypto: sha1: re-roll loops to reduce code size
+    - compat_ioctl: remove /dev/random commands
+    - random: don't forget compat_ioctl on urandom
+    - random: Don't wake crng_init_wait when crng_init == 1
+    - random: Add a urandom_read_nowait() for random APIs that don't warn
+    - random: add GRND_INSECURE to return best-effort non-cryptographic bytes
+    - random: ignore GRND_RANDOM in getentropy(2)
+    - random: make /dev/random be almost like /dev/urandom
+    - random: remove the blocking pool
+    - random: delete code to pull data into pools
+    - random: remove kernel.random.read_wakeup_threshold
+    - random: remove unnecessary unlikely()
+    - random: convert to ENTROPY_BITS for better code readability
+    - random: Add and use pr_fmt()
+    - random: fix typo in add_timer_randomness()
+    - random: remove some dead code of poolinfo
+    - random: split primary/secondary crng init paths
+    - random: avoid warnings for !CONFIG_NUMA builds
+    - x86: Remove arch_has_random, arch_has_random_seed
+    - powerpc: Remove arch_has_random, arch_has_random_seed
+    - s390: Remove arch_has_random, arch_has_random_seed
+    - linux/random.h: Remove arch_has_random, arch_has_random_seed
+    - linux/random.h: Use false with bool
+    - linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check
+    - powerpc: Use bool in archrandom.h
+    - random: add arch_get_random_*long_early()
+    - random: avoid arch_get_random_seed_long() when collecting IRQ randomness
+    - random: remove dead code left over from blocking pool
+    - MAINTAINERS: co-maintain random.c
+    - crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h>
+    - crypto: blake2s - adjust include guard naming
+    - random: document add_hwgenerator_randomness() with other input functions
+    - random: remove unused irq_flags argument from add_interrupt_randomness()
+    - random: use BLAKE2s instead of SHA1 in extraction
+    - random: do not sign extend bytes for rotation when mixing
+    - random: do not re-init if crng_reseed completes before primary init
+    - random: mix bootloader randomness into pool
+    - random: harmonize "crng init done" messages
+    - random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
+    - random: initialize ChaCha20 constants with correct endianness
+    - random: early initialization of ChaCha constants
+    - random: avoid superfluous call to RDRAND in CRNG extraction
+    - random: don't reset crng_init_cnt on urandom_read()
+    - random: fix typo in comments
+    - random: cleanup poolinfo abstraction
+    - random: cleanup integer types
+    - random: remove incomplete last_data logic
+    - random: remove unused extract_entropy() reserved argument
+    - random: rather than entropy_store abstraction, use global
+    - random: remove unused OUTPUT_POOL constants
+    - random: de-duplicate INPUT_POOL constants
+    - random: prepend remaining pool constants with POOL_
+    - random: cleanup fractional entropy shift constants
+    - random: access input_pool_data directly rather than through pointer
+    - random: selectively clang-format where it makes sense
+    - random: simplify arithmetic function flow in account()
+    - random: continually use hwgenerator randomness
+    - random: access primary_pool directly rather than through pointer
+    - random: only call crng_finalize_init() for primary_crng
+    - random: use computational hash for entropy extraction
+    - random: simplify entropy debiting
+    - random: use linear min-entropy accumulation crediting
+    - random: always wake up entropy writers after extraction
+    - random: make credit_entropy_bits() always safe
+    - random: remove use_input_pool parameter from crng_reseed()
+    - random: remove batched entropy locking
+    - random: fix locking in crng_fast_load()
+    - random: use RDSEED instead of RDRAND in entropy extraction
+    - random: get rid of secondary crngs
+    - random: inline leaves of rand_initialize()
+    - random: ensure early RDSEED goes through mixer on init
+    - random: do not xor RDRAND when writing into /dev/random
+    - random: absorb fast pool into input pool after fast load
+    - random: use simpler fast key erasure flow on per-cpu keys
+    - random: use hash function for crng_slow_load()
+    - random: make more consistent use of integer types
+    - random: remove outdated INT_MAX >> 6 check in urandom_read()
+    - random: zero buffer after reading entropy from userspace
+    - random: fix locking for crng_init in crng_reseed()
+    - random: tie batched entropy generation to base_crng generation
+    - random: remove ifdef'd out interrupt bench
+    - random: remove unused tracepoints
+    - random: add proper SPDX header
+    - random: deobfuscate irq u32/u64 contributions
+    - random: introduce drain_entropy() helper to declutter crng_reseed()
+    - random: remove useless header comment
+    - random: remove whitespace and reorder includes
+    - random: group initialization wait functions
+    - random: group crng functions
+    - random: group entropy extraction functions
+    - random: group entropy collection functions
+    - random: group userspace read/write functions
+    - random: group sysctl functions
+    - random: rewrite header introductory comment
+    - random: defer fast pool mixing to worker
+    - random: do not take pool spinlock at boot
+    - random: unify early init crng load accounting
+    - random: check for crng_init == 0 in add_device_randomness()
+    - random: pull add_hwgenerator_randomness() declaration into random.h
+    - random: clear fast pool, crng, and batches in cpuhp bring up
+    - random: round-robin registers as ulong, not u32
+    - random: only wake up writers after zap if threshold was passed
+    - random: cleanup UUID handling
+    - random: unify cycles_t and jiffies usage and types
+    - random: do crng pre-init loading in worker rather than irq
+    - random: give sysctl_random_min_urandom_seed a more sensible value
+    - random: don't let 644 read-only sysctls be written to
+    - random: replace custom notifier chain with standard one
+    - random: use SipHash as interrupt entropy accumulator
+    - random: make consistent usage of crng_ready()
+    - random: reseed more often immediately after booting
+    - random: check for signal and try earlier when generating entropy
+    - random: skip fast_init if hwrng provides large chunk of entropy
+    - random: treat bootloader trust toggle the same way as cpu trust toggle
+    - random: re-add removed comment about get_random_{u32,u64} reseeding
+    - random: mix build-time latent entropy into pool at init
+    - random: do not split fast init input in add_hwgenerator_randomness()
+    - random: do not allow user to keep crng key around on stack
+    - random: check for signal_pending() outside of need_resched() check
+    - random: check for signals every PAGE_SIZE chunk of /dev/[u]random
+    - random: allow partial reads if later user copies fail
+    - random: make random_get_entropy() return an unsigned long
+    - random: document crng_fast_key_erasure() destination possibility
+    - random: fix sysctl documentation nits
+    - init: call time_init() before rand_initialize()
+    - ia64: define get_cycles macro for arch-override
+    - s390: define get_cycles macro for arch-override
+    - parisc: define get_cycles macro for arch-override
+    - alpha: define get_cycles macro for arch-override
+    - powerpc: define get_cycles macro for arch-override
+    - timekeeping: Add raw clock fallback for random_get_entropy()
+    - m68k: use fallback for random_get_entropy() instead of zero
+    - mips: use fallback for random_get_entropy() instead of just c0 random
+    - arm: use fallback for random_get_entropy() instead of zero
+    - nios2: use fallback for random_get_entropy() instead of zero
+    - x86/tsc: Use fallback for random_get_entropy() instead of zero
+    - um: use fallback for random_get_entropy() instead of zero
+    - sparc: use fallback for random_get_entropy() instead of zero
+    - xtensa: use fallback for random_get_entropy() instead of zero
+    - random: insist on random_get_entropy() existing in order to simplify
+    - random: do not use batches when !crng_ready()
+    - random: use first 128 bits of input as fast init
+    - random: do not pretend to handle premature next security model
+    - random: order timer entropy functions below interrupt functions
+    - random: do not use input pool from hard IRQs
+    - random: help compiler out with fast_mix() by using simpler arguments
+    - siphash: use one source of truth for siphash permutations
+    - random: use symbolic constants for crng_init states
+    - random: avoid initializing twice in credit race
+    - random: move initialization out of reseeding hot path
+    - random: remove ratelimiting for in-kernel unseeded randomness
+    - random: use proper jiffies comparison macro
+    - random: handle latent entropy and command line from random_init()
+    - random: credit architectural init the exact amount
+    - random: use static branch for crng_ready()
+    - random: remove extern from functions in header
+    - random: use proper return types on get_random_{int,long}_wait()
+    - random: make consistent use of buf and len
+    - random: move initialization functions out of hot pages
+    - random: move randomize_page() into mm where it belongs
+    - random: unify batched entropy implementations
+    - random: convert to using fops->read_iter()
+    - random: convert to using fops->write_iter()
+    - random: wire up fops->splice_{read,write}_iter()
+    - random: check for signals after page of pool writes
+    - Revert "random: use static branch for crng_ready()"
+    - crypto: drbg - always seeded with SP800-90B compliant noise source
+    - crypto: drbg - prepare for more fine-grained tracking of seeding state
+    - crypto: drbg - track whether DRBG was seeded with !rng_is_initialized()
+    - crypto: drbg - move dynamic ->reseed_threshold adjustments to __drbg_seed()
+    - crypto: drbg - always try to free Jitter RNG instance
+    - crypto: drbg - make reseeding from get_random_bytes() synchronous
+    - random: avoid checking crng_ready() twice in random_init()
+    - random: mark bootloader randomness code as __init
+    - random: account for arch randomness in bits
+    - powerpc/kasan: Silence KASAN warnings in __get_wchan()
+    - ASoC: nau8822: Add operation for internal PLL off and on
+    - dma-debug: make things less spammy under memory pressure
+    - ASoC: cs42l52: Fix TLV scales for mixer controls
+    - ASoC: cs35l36: Update digital volume TLV
+    - ASoC: cs53l30: Correct number of volume levels on SX controls
+    - ASoC: cs42l52: Correct TLV for Bypass Volume
+    - ASoC: cs42l56: Correct typo in minimum level for SX volume controls
+    - ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
+    - ASoC: wm8962: Fix suspend while playing music
+    - ASoC: es8328: Fix event generation for deemphasis control
+    - ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put()
+    - scsi: vmw_pvscsi: Expand vcpuHint to 16 bits
+    - scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology
+    - scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd
+      completion
+    - scsi: ipr: Fix missing/incorrect resource cleanup in error case
+    - scsi: pmcraid: Fix missing resource cleanup in error case
+    - ALSA: hda/realtek - Add HW8326 support
+    - virtio-mmio: fix missing put_device() when vm_cmdline_parent registration
+      failed
+    - nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred
+    - ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg
+    - net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface
+      netdev[napi]_alloc_frag
+    - random: credit cpu and bootloader seeds by default
+    - pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE
+    - clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()
+    - i40e: Fix adding ADQ filter to TC0
+    - i40e: Fix calculating the number of queue pairs
+    - i40e: Fix call trace in setup_tx_descriptors
+    - tty: goldfish: Fix free_irq() on remove
+    - misc: atmel-ssc: Fix IRQ check in ssc_probe
+    - mlxsw: spectrum_cnt: Reorder counter pools
+    - net: bgmac: Fix an erroneous kfree() in bgmac_remove()
+    - arm64: ftrace: fix branch range checks
+    - certs/blacklist_hashes.c: fix const confusion in certs blacklist
+    - faddr2line: Fix overlapping text section failures, the sequel
+    - irqchip/gic/realview: Fix refcount leak in realview_gic_of_init
+    - irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions
+    - irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
+    - i2c: designware: Use standard optional ref clock implementation
+    - comedi: vmk80xx: fix expression for tx buffer size
+    - USB: serial: option: add support for Cinterion MV31 with new baseline
+    - USB: serial: io_ti: add Agilent E5805A support
+    - usb: dwc2: Fix memory leak in dwc2_hcd_init
+    - usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe
+    - serial: 8250: Store to lsr_save_flags after lsr read
+    - dm mirror log: round up region bitmap size to BITS_PER_LONG
+    - ext4: fix bug_on ext4_mb_use_inode_pa
+    - ext4: make variable "count" signed
+    - ext4: add reserved GDT blocks check
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine
+    - virtio-pci: Remove wrong address verification in vp_del_vqs()
+    - net/sched: act_police: more accurate MTU policing
+    - net: openvswitch: fix leak of nested actions
+    - arm64: kprobes: Use BRK instead of single-step when executing instructions
+      out-of-line
+    - RISC-V: fix barrier() use in <vdso/processor.h>
+    - riscv: Less inefficient gcc tishift helpers (and export their symbols)
+    - powerpc/mm: Switch obsolete dssall to .long
+    - Linux 5.4.200
+
+  * Focal update: v5.4.199 upstream stable release (LP: #1983150)
+    - Linux 5.4.199
+
+  * Focal update: v5.4.198 upstream stable release (LP: #1982409)
+    - binfmt_flat: do not stop relocating GOT entries prematurely on riscv
+    - ALSA: hda/realtek - Fix microphone noise on ASUS TUF B550M-PLUS
+    - USB: serial: option: add Quectel BG95 modem
+    - USB: new quirk for Dell Gen 2 devices
+    - perf/x86/intel: Fix event constraints for ICL
+    - ptrace/um: Replace PT_DTRACE with TIF_SINGLESTEP
+    - ptrace/xtensa: Replace PT_SINGLESTEP with TIF_SINGLESTEP
+    - ptrace: Reimplement PTRACE_KILL by always sending SIGKILL
+    - btrfs: add "0x" prefix for unsupported optional features
+    - btrfs: repair super block num_devices automatically
+    - drm/virtio: fix NULL pointer dereference in virtio_gpu_conn_get_modes
+    - mwifiex: add mutex lock for call in mwifiex_dfs_chan_sw_work_queue
+    - b43legacy: Fix assigning negative value to unsigned variable
+    - b43: Fix assigning negative value to unsigned variable
+    - ipw2x00: Fix potential NULL dereference in libipw_xmit()
+    - ipv6: fix locking issues with loops over idev->addr_list
+    - fbcon: Consistently protect deferred_takeover with console_lock()
+    - ACPICA: Avoid cache flush inside virtual machines
+    - drm/komeda: return early if drm_universal_plane_init() fails.
+    - ALSA: jack: Access input_dev under mutex
+    - spi: spi-rspi: Remove setting {src,dst}_{addr,addr_width} based on DMA
+      direction
+    - tools/power turbostat: fix ICX DRAM power numbers
+    - drm/amd/pm: fix double free in si_parse_power_table()
+    - ath9k: fix QCA9561 PA bias level
+    - media: venus: hfi: avoid null dereference in deinit
+    - media: pci: cx23885: Fix the error handling in cx23885_initdev()
+    - media: cx25821: Fix the warning when removing the module
+    - md/bitmap: don't set sb values if can't pass sanity check
+    - mmc: jz4740: Apply DMA engine limits to maximum segment size
+    - scsi: megaraid: Fix error check return value of register_chrdev()
+    - drm/plane: Move range check for format_count earlier
+    - drm/amd/pm: fix the compile warning
+    - arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall
+    - drm: msm: fix error check return value of irq_of_parse_and_map()
+    - ipv6: Don't send rs packets to the interface of ARPHRD_TUNNEL
+    - net/mlx5: fs, delete the FTE when there are no rules attached to it
+    - ASoC: dapm: Don't fold register value changes into notifications
+    - mlxsw: spectrum_dcb: Do not warn about priority changes
+    - drm/amdgpu/ucode: Remove firmware load type check in amdgpu_ucode_free_bo
+    - HID: bigben: fix slab-out-of-bounds Write in bigben_probe
+    - ASoC: tscs454: Add endianness flag in snd_soc_component_driver
+    - s390/preempt: disable __preempt_count_add() optimization for
+      PROFILE_ALL_BRANCHES
+    - spi: stm32-qspi: Fix wait_cmd timeout in APM mode
+    - dma-debug: change allocation mode from GFP_NOWAIT to GFP_ATIOMIC
+    - ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default
+    - ipmi:ssif: Check for NULL msg when handling events and messages
+    - ipmi: Fix pr_fmt to avoid compilation issues
+    - rtlwifi: Use pr_warn instead of WARN_ONCE
+    - media: coda: limit frame interval enumeration to supported encoder frame
+      sizes
+    - media: cec-adap.c: fix is_configuring state
+    - openrisc: start CPU timer early in boot
+    - nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags
+    - ASoC: rt5645: Fix errorenous cleanup order
+    - nbd: Fix hung on disconnect request if socket is closed before
+    - net: phy: micrel: Allow probing without .driver_data
+    - media: exynos4-is: Fix compile warning
+    - ASoC: max98357a: remove dependency on GPIOLIB
+    - rxrpc: Return an error to sendmsg if call failed
+    - eth: tg3: silence the GCC 12 array-bounds warning
+    - selftests/bpf: fix btf_dump/btf_dump due to recent clang change
+    - IB/rdmavt: add missing locks in rvt_ruc_loopback
+    - ARM: dts: ox820: align interrupt controller node name with dtschema
+    - PM / devfreq: rk3399_dmc: Disable edev on remove()
+    - fs: jfs: fix possible NULL pointer dereference in dbFree()
+    - ARM: OMAP1: clock: Fix UART rate reporting algorithm
+    - powerpc/fadump: Fix fadump to work with a different endian capture kernel
+    - fat: add ratelimit to fat*_ent_bread()
+    - ARM: versatile: Add missing of_node_put in dcscb_init
+    - ARM: dts: exynos: add atmel,24c128 fallback to Samsung EEPROM
+    - ARM: hisi: Add missing of_node_put after of_find_compatible_node
+    - PCI: Avoid pci_dev_lock() AB/BA deadlock with sriov_numvfs_store()
+    - tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate
+    - powerpc/xics: fix refcount leak in icp_opal_init()
+    - powerpc/powernv: fix missing of_node_put in uv_init()
+    - macintosh/via-pmu: Fix build failure when CONFIG_INPUT is disabled
+    - powerpc/iommu: Add missing of_node_put in iommu_init_early_dart
+    - RDMA/hfi1: Prevent panic when SDMA is disabled
+    - drm: fix EDID struct for old ARM OABI format
+    - ath9k: fix ar9003_get_eepmisc
+    - drm/edid: fix invalid EDID extension block filtering
+    - drm/bridge: adv7511: clean up CEC adapter when probe fails
+    - ASoC: mediatek: Fix error handling in mt8173_max98090_dev_probe
+    - ASoC: mediatek: Fix missing of_node_put in mt2701_wm8960_machine_probe
+    - x86/delay: Fix the wrong asm constraint in delay_loop()
+    - drm/mediatek: Fix mtk_cec_mask()
+    - drm/vc4: txp: Don't set TXP_VSTART_AT_EOF
+    - drm/vc4: txp: Force alpha to be 0xff if it's disabled
+    - bpf: Fix excessive memory allocation in stack_map_alloc()
+    - nl80211: show SSID for P2P_GO interfaces
+    - drm/komeda: Fix an undefined behavior bug in komeda_plane_add()
+    - drm: mali-dp: potential dereference of null pointer
+    - spi: spi-ti-qspi: Fix return value handling of wait_for_completion_timeout
+    - NFC: NULL out the dev->rfkill to prevent UAF
+    - efi: Add missing prototype for efi_capsule_setup_info
+    - drbd: fix duplicate array initializer
+    - HID: hid-led: fix maximum brightness for Dream Cheeky
+    - HID: elan: Fix potential double free in elan_input_configured
+    - drm/bridge: Fix error handling in analogix_dp_probe
+    - sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq
+    - spi: img-spfi: Fix pm_runtime_get_sync() error checking
+    - cpufreq: Fix possible race in cpufreq online error path
+    - ath9k_htc: fix potential out of bounds access with invalid
+      rxstatus->rs_keyix
+    - inotify: show inotify mask flags in proc fdinfo
+    - fsnotify: fix wrong lockdep annotations
+    - of: overlay: do not break notify on NOTIFY_{OK|STOP}
+    - scsi: ufs: core: Exclude UECxx from SFR dump list
+    - x86/pm: Fix false positive kmemleak report in msr_build_context()
+    - x86/speculation: Add missing prototype for unpriv_ebpf_notify()
+    - ASoC: rk3328: fix disabling mclk on pclk probe failure
+    - perf tools: Add missing headers needed by util/data.h
+    - drm/msm/disp/dpu1: set vbif hw config to NULL to avoid use after memory free
+      during pm runtime resume
+    - drm/msm/dsi: fix error checks and return values for DSI xmit functions
+    - drm/msm/hdmi: check return value after calling
+      platform_get_resource_byname()
+    - drm/msm/hdmi: fix error check return value of irq_of_parse_and_map()
+    - drm/rockchip: vop: fix possible null-ptr-deref in vop_bind()
+    - virtio_blk: fix the discard_granularity and discard_alignment queue limits
+    - x86: Fix return value of __setup handlers
+    - irqchip/exiu: Fix acknowledgment of edge triggered interrupts
+    - irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value
+    - x86/mm: Cleanup the control_va_addr_alignment() __setup handler
+    - regulator: core: Fix enable_count imbalance with EXCLUSIVE_GET
+    - drm/msm/mdp5: Return error code in mdp5_pipe_release when deadlock is
+      detected
+    - drm/msm/mdp5: Return error code in mdp5_mixer_release when deadlock is
+      detected
+    - drm/msm: return an error pointer in msm_gem_prime_get_sg_table()
+    - media: uvcvideo: Fix missing check to determine if element is found in list
+    - iomap: iomap_write_failed fix
+    - Revert "cpufreq: Fix possible race in cpufreq online error path"
+    - perf/amd/ibs: Use interrupt regs ip for stack unwinding
+    - ASoC: fsl: Fix refcount leak in imx_sgtl5000_probe
+    - ASoC: mxs-saif: Fix refcount leak in mxs_saif_probe
+    - regulator: pfuze100: Fix refcount leak in pfuze_parse_regulators_dt
+    - scripts/faddr2line: Fix overlapping text section failures
+    - media: aspeed: Fix an error handling path in aspeed_video_probe()
+    - media: st-delta: Fix PM disable depth imbalance in delta_probe
+    - media: exynos4-is: Change clk_disable to clk_disable_unprepare
+    - media: pvrusb2: fix array-index-out-of-bounds in pvr2_i2c_core_init
+    - media: vsp1: Fix offset calculation for plane cropping
+    - Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout
+    - m68k: math-emu: Fix dependencies of math emulation support
+    - sctp: read sk->sk_bound_dev_if once in sctp_rcv()
+    - media: ov7670: remove ov7670_power_off from ov7670_remove
+    - ext4: reject the 'commit' option on ext2 filesystems
+    - drm/msm/a6xx: Fix refcount leak in a6xx_gpu_init
+    - drm: msm: fix possible memory leak in mdp5_crtc_cursor_set()
+    - thermal/drivers/broadcom: Fix potential NULL dereference in sr_thermal_probe
+    - ASoC: wm2000: fix missing clk_disable_unprepare() on error in
+      wm2000_anc_transition()
+    - NFC: hci: fix sleep in atomic context bugs in nfc_hci_hcp_message_tx
+    - rxrpc: Fix listen() setting the bar too high for the prealloc rings
+    - rxrpc: Don't try to resend the request if we're receiving the reply
+    - rxrpc: Fix overlapping ACK accounting
+    - rxrpc: Don't let ack.previousPacket regress
+    - rxrpc: Fix decision on when to generate an IDLE ACK
+    - net/smc: postpone sk_refcnt increment in connect()
+    - arm64: dts: rockchip: Move drive-impedance-ohm to emmc phy on rk3399
+    - ARM: dts: suniv: F1C100: fix watchdog compatible
+    - soc: qcom: smp2p: Fix missing of_node_put() in smp2p_parse_ipc
+    - soc: qcom: smsm: Fix missing of_node_put() in smsm_parse_ipc
+    - PCI: cadence: Fix find_first_zero_bit() limit
+    - PCI: rockchip: Fix find_first_zero_bit() limit
+    - KVM: nVMX: Leave most VM-Exit info fields unmodified on failed VM-Entry
+    - can: xilinx_can: mark bit timing constants as const
+    - ARM: dts: bcm2835-rpi-zero-w: Fix GPIO line name for Wifi/BT
+    - ARM: dts: bcm2837-rpi-cm3-io3: Fix GPIO line names for SMPS I2C
+    - ARM: dts: bcm2837-rpi-3-b-plus: Fix GPIO line name of power LED
+    - ARM: dts: bcm2835-rpi-b: Fix GPIO line names
+    - misc: ocxl: fix possible double free in ocxl_file_register_afu
+    - crypto: marvell/cesa - ECB does not IV
+    - arm: mediatek: select arch timer for mt7629
+    - powerpc/fadump: fix PT_LOAD segment for boot memory area
+    - mfd: ipaq-micro: Fix error check return value of platform_get_irq()
+    - scsi: fcoe: Fix Wstringop-overflow warnings in fcoe_wwn_from_mac()
+    - firmware: arm_scmi: Fix list protocols enumeration in the base protocol
+    - nvdimm: Allow overwrite in the presence of disabled dimms
+    - pinctrl: mvebu: Fix irq_of_parse_and_map() return value
+    - drivers/base/node.c: fix compaction sysfs file leak
+    - dax: fix cache flush on PMD-mapped pages
+    - powerpc/8xx: export 'cpm_setbrg' for modules
+    - powerpc/idle: Fix return value of __setup() handler
+    - powerpc/4xx/cpm: Fix return value of __setup() handler
+    - proc: fix dentry/inode overinstantiating under /proc/${pid}/net
+    - ipc/mqueue: use get_tree_nodev() in mqueue_get_tree()
+    - PCI: imx6: Fix PERST# start-up sequence
+    - tty: fix deadlock caused by calling printk() under tty_port->lock
+    - crypto: cryptd - Protect per-CPU resource by disabling BH.
+    - Input: sparcspkr - fix refcount leak in bbc_beep_probe
+    - powerpc/64: Only WARN if __pa()/__va() called with bad addresses
+    - powerpc/perf: Fix the threshold compare group constraint for power9
+    - macintosh: via-pmu and via-cuda need RTC_LIB
+    - powerpc/fsl_rio: Fix refcount leak in fsl_rio_setup
+    - mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe()
+    - mailbox: forward the hrtimer if not queued and under a lock
+    - RDMA/hfi1: Prevent use of lock before it is initialized
+    - Input: stmfts - do not leave device disabled in stmfts_input_open
+    - f2fs: fix dereference of stale list iterator after loop body
+    - iommu/mediatek: Add list_del in mtk_iommu_remove
+    - i2c: at91: use dma safe buffers
+    - i2c: at91: Initialize dma_buf in at91_twi_xfer()
+    - NFS: Do not report EINTR/ERESTARTSYS as mapping errors
+    - NFS: Do not report flush errors in nfs_write_end()
+    - NFS: Don't report errors from nfs_pageio_complete() more than once
+    - NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout
+    - video: fbdev: clcdfb: Fix refcount leak in clcdfb_of_vram_setup
+    - dmaengine: stm32-mdma: remove GISR1 register
+    - iommu/amd: Increase timeout waiting for GA log enablement
+    - perf c2c: Use stdio interface if slang is not supported
+    - perf jevents: Fix event syntax error caused by ExtSel
+    - f2fs: fix to avoid f2fs_bug_on() in dec_valid_node_count()
+    - f2fs: fix to do sanity check on block address in f2fs_do_zero_range()
+    - f2fs: fix to clear dirty inode in f2fs_evict_inode()
+    - f2fs: fix deadloop in foreground GC
+    - f2fs: don't need inode lock for system hidden quota
+    - f2fs: fix fallocate to use file_modified to update permissions consistently
+    - wifi: mac80211: fix use-after-free in chanctx code
+    - iwlwifi: mvm: fix assert 1F04 upon reconfig
+    - fs-writeback: writeback_sb_inodes：Recalculate 'wrote' according skipped
+      pages
+    - efi: Do not import certificates from UEFI Secure Boot for T2 Macs
+    - bfq: Split shared queues on move between cgroups
+    - bfq: Update cgroup information before merging bio
+    - bfq: Track whether bfq_group is still online
+    - ext4: fix use-after-free in ext4_rename_dir_prepare
+    - ext4: fix warning in ext4_handle_inode_extension
+    - ext4: fix bug_on in ext4_writepages
+    - ext4: verify dir block before splitting it
+    - ext4: avoid cycles in directory h-tree
+    - ACPI: property: Release subnode properties with data nodes
+    - tracing: Fix potential double free in create_var_ref()
+    - PCI/PM: Fix bridge_d3_blacklist[] Elo i2 overwrite of Gigabyte X299
+    - PCI: qcom: Fix runtime PM imbalance on probe errors
+    - PCI: qcom: Fix unbalanced PHY init on probe errors
+    - mm, compaction: fast_find_migrateblock() should return pfn in the target
+      zone
+    - dlm: fix plock invalid read
+    - dlm: fix missing lkb refcount handling
+    - ocfs2: dlmfs: fix error handling of user_dlm_destroy_lock
+    - scsi: dc395x: Fix a missing check on list iterator
+    - scsi: ufs: qcom: Add a readl() to make sure ref_clk gets enabled
+    - drm/amdgpu/cs: make commands with 0 chunks illegal behaviour.
+    - drm/etnaviv: check for reaped mapping in etnaviv_iommu_unmap_gem
+    - drm/nouveau/clk: Fix an incorrect NULL check on list iterator
+    - drm/bridge: analogix_dp: Grab runtime PM reference for DP-AUX
+    - md: fix an incorrect NULL check in does_sb_need_changing
+    - md: fix an incorrect NULL check in md_reload_sb
+    - mtd: cfi_cmdset_0002: Move and rename
+      chip_check/chip_ready/chip_good_for_write
+    - media: coda: Fix reported H264 profile
+    - media: coda: Add more H264 levels for CODA960
+    - Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug
+    - RDMA/hfi1: Fix potential integer multiplication overflow errors
+    - irqchip/armada-370-xp: Do not touch Performance Counter Overflow on A375,
+      A38x, A39x
+    - irqchip: irq-xtensa-mx: fix initial IRQ affinity
+    - mac80211: upgrade passive scan to active scan on DFS channels after beacon
+      rx
+    - um: chan_user: Fix winch_tramp() return value
+    - um: Fix out-of-bounds read in LDT setup
+    - iommu/msm: Fix an incorrect NULL check on list iterator
+    - nodemask.h: fix compilation error with GCC12
+    - hugetlb: fix huge_pmd_unshare address update
+    - rtl818x: Prevent using not initialized queues
+    - ASoC: rt5514: Fix event generation for "DSP Voice Wake Up" control
+    - carl9170: tx: fix an incorrect use of list iterator
+    - serial: pch: don't overwrite xmit->buf[0] by x_char
+    - tilcdc: tilcdc_external: fix an incorrect NULL check on list iterator
+    - gma500: fix an incorrect NULL check on list iterator
+    - arm64: dts: qcom: ipq8074: fix the sleep clock frequency
+    - phy: qcom-qmp: fix struct clk leak on probe errors
+    - ARM: pxa: maybe fix gpio lookup tables
+    - docs/conf.py: Cope with removal of language=None in Sphinx 5.0.0
+    - dt-bindings: gpio: altera: correct interrupt-cells
+    - blk-iolatency: Fix inflight count imbalances and IO hangs on offline
+    - phy: qcom-qmp: fix reset-controller leak on probe errors
+    - Kconfig: add config option for asm goto w/ outputs
+    - RDMA/rxe: Generate a completion for unsupported/invalid opcode
+    - MIPS: IP27: Remove incorrect `cpu_has_fpu' override
+    - bfq: Avoid merging queues with different parents
+    - bfq: Drop pointless unlock-lock pair
+    - bfq: Remove pointless bfq_init_rq() calls
+    - bfq: Get rid of __bio_blkcg() usage
+    - bfq: Make sure bfqg for which we are queueing requests is online
+    - block: fix bio_clone_blkg_association() to associate with proper blkcg_gq
+    - md: bcache: check the return value of kzalloc() in detached_dev_do_request()
+    - pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards
+    - staging: greybus: codecs: fix type confusion of list iterator variable
+    - iio: adc: ad7124: Remove shift from scan_type
+    - tty: goldfish: Use tty_port_destroy() to destroy port
+    - tty: serial: owl: Fix missing clk_disable_unprepare() in owl_uart_probe
+    - tty: serial: fsl_lpuart: fix potential bug when using both of_alias_get_id
+      and ida_simple_get
+    - usb: usbip: fix a refcount leak in stub_probe()
+    - usb: usbip: add missing device lock on tweak configuration cmd
+    - USB: storage: karma: fix rio_karma_init return
+    - usb: musb: Fix missing of_node_put() in omap2430_probe
+    - staging: fieldbus: Fix the error handling path in
+      anybuss_host_common_probe()
+    - pwm: lp3943: Fix duty calculation in case period was clamped
+    - rpmsg: qcom_smd: Fix irq_of_parse_and_map() return value
+    - usb: dwc3: pci: Fix pm_runtime_get_sync() error checking
+    - firmware: stratix10-svc: fix a missing check on list iterator
+    - iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check
+    - iio: adc: sc27xx: fix read big scale voltage not right
+    - iio: adc: sc27xx: Fine tune the scale calibration values
+    - rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails
+    - phy: qcom-qmp: fix pipe-clock imbalance on power-on failure
+    - serial: sifive: Report actual baud base rather than fixed 115200
+    - coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier
+    - soc: rockchip: Fix refcount leak in rockchip_grf_init
+    - clocksource/drivers/riscv: Events are stopped during CPU suspend
+    - rtc: mt6397: check return value after calling platform_get_resource()
+    - serial: meson: acquire port->lock in startup()
+    - serial: 8250_fintek: Check SER_RS485_RTS_* only with RS485
+    - serial: digicolor-usart: Don't allow CS5-6
+    - serial: rda-uart: Don't allow CS5-6
+    - serial: txx9: Don't allow CS5-6
+    - serial: sh-sci: Don't allow CS5-6
+    - serial: sifive: Sanitize CSIZE and c_iflag
+    - serial: st-asc: Sanitize CSIZE and correct PARENB for CS7
+    - serial: stm32-usart: Correct CSIZE, bits, and parity
+    - firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
+    - bus: ti-sysc: Fix warnings for unbind for serial
+    - driver: base: fix UAF when driver_attach failed
+    - driver core: fix deadlock in __device_attach
+    - watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe
+    - ASoC: fsl_sai: Fix FSL_SAI_xDR/xFR definition
+    - clocksource/drivers/oxnas-rps: Fix irq_of_parse_and_map() return value
+    - s390/crypto: fix scatterwalk_unmap() callers in AES-GCM
+    - net: sched: fixed barrier to prevent skbuff sticking in qdisc backlog
+    - net: ethernet: mtk_eth_soc: out of bounds read in mtk_hwlro_get_fdir_entry()
+    - net: dsa: mv88e6xxx: Fix refcount leak in mv88e6xxx_mdios_register
+    - modpost: fix removing numeric suffixes
+    - jffs2: fix memory leak in jffs2_do_fill_super
+    - ubi: ubi_create_volume: Fix use-after-free when volume creation failed
+    - nfp: only report pause frame configuration for physical device
+    - net/mlx5: Don't use already freed action pointer
+    - net/mlx5e: Update netdev features after changing XDP state
+    - net: sched: add barrier to fix packet stuck problem for lockless qdisc
+    - tcp: tcp_rtx_synack() can be called from process context
+    - afs: Fix infinite loop found by xfstest generic/676
+    - tipc: check attribute length for bearer name
+    - perf c2c: Fix sorting in percent_rmt_hitm_cmp()
+    - mips: cpc: Fix refcount leak in mips_cpc_default_phys_base
+    - tracing: Fix sleeping function called from invalid context on RT kernel
+    - tracing: Avoid adding tracer option before update_tracer_options
+    - f2fs: remove WARN_ON in f2fs_is_valid_blkaddr
+    - i2c: cadence: Increase timeout per message if necessary
+    - m68knommu: set ZERO_PAGE() to the allocated zeroed page
+    - m68knommu: fix undefined reference to `_init_sp'
+    - dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type
+    - NFSv4: Don't hold the layoutget locks across multiple RPC calls
+    - video: fbdev: pxa3xx-gcu: release the resources correctly in
+      pxa3xx_gcu_probe/remove()
+    - xprtrdma: treat all calls not a bcall when bc_serv is NULL
+    - netfilter: nat: really support inet nat without l3 address
+    - ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe
+    - netfilter: nf_tables: memleak flow rule from commit path
+    - xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
+    - af_unix: Fix a data-race in unix_dgram_peer_wake_me().
+    - bpf, arm64: Clear prog->jited_len along prog->jited
+    - net: dsa: lantiq_gswip: Fix refcount leak in gswip_gphy_fw_list
+    - net/mlx4_en: Fix wrong return value on ioctl EEPROM query failure
+    - SUNRPC: Fix the calculation of xdr->end in xdr_get_next_encode_buffer()
+    - net: mdio: unexport __init-annotated mdio_bus_init()
+    - net: xfrm: unexport __init-annotated xfrm4_protocol_init()
+    - net: ipv6: unexport __init-annotated seg6_hmac_init()
+    - net/mlx5: Rearm the FW tracer after each tracer event
+    - net/mlx5: fs, fail conflicting actions
+    - ip_gre: test csum_start instead of transport header
+    - net: altera: Fix refcount leak in altera_tse_mdio_create
+    - drm: imx: fix compiler warning with gcc-12
+    - iio: dummy: iio_simple_dummy: check the return value of kstrdup()
+    - iio: st_sensors: Add a local lock for protecting odr
+    - lkdtm/usercopy: Expand size of "out of frame" object
+    - tty: synclink_gt: Fix null-pointer-dereference in slgt_clean()
+    - tty: Fix a possible resource leak in icom_probe
+    - drivers: staging: rtl8192u: Fix deadlock in ieee80211_beacons_stop()
+    - drivers: staging: rtl8192e: Fix deadlock in rtllib_beacons_stop()
+    - USB: host: isp116x: check return value after calling platform_get_resource()
+    - drivers: tty: serial: Fix deadlock in sa1100_set_termios()
+    - drivers: usb: host: Fix deadlock in oxu_bus_suspend()
+    - USB: hcd-pci: Fully suspend across freeze/thaw cycle
+    - usb: dwc2: gadget: don't reset gadget's driver->bus
+    - misc: rtsx: set NULL intfdata when probe fails
+    - extcon: Modify extcon device to be created after driver data is set
+    - clocksource/drivers/sp804: Avoid error on multiple instances
+    - staging: rtl8712: fix uninit-value in usb_read8() and friends
+    - staging: rtl8712: fix uninit-value in r871xu_drv_init()
+    - serial: msm_serial: disable interrupts in __msm_console_write()
+    - kernfs: Separate kernfs_pr_cont_buf and rename_lock.
+    - watchdog: wdat_wdt: Stop watchdog when rebooting the system
+    - md: protect md_unregister_thread from reentrancy
+    - scsi: myrb: Fix up null pointer access on myrb_cleanup()
+    - ceph: allow ceph.dir.rctime xattr to be updatable
+    - drm/radeon: fix a possible null pointer dereference
+    - modpost: fix undefined behavior of is_arm_mapping_symbol()
+    - x86/cpu: Elide KCSAN for cpu_has() and friends
+    - nbd: call genl_unregister_family() first in nbd_cleanup()
+    - nbd: fix race between nbd_alloc_config() and module removal
+    - cifs: version operations for smb20 unneeded when legacy support disabled
+    - nodemask: Fix return values to be unsigned
+    - vringh: Fix loop descriptors check in the indirect cases
+    - scripts/gdb: change kernel config dumping method
+    - ALSA: hda/conexant - Fix loopback issue with CX20632
+    - cifs: return errors during session setup during reconnects
+    - ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files
+    - mmc: block: Fix CQE recovery reset success
+    - nfc: st21nfca: fix incorrect validating logic in EVT_TRANSACTION
+    - nfc: st21nfca: fix memory leaks in EVT_TRANSACTION handling
+    - ixgbe: fix bcast packets Rx on VF after promisc removal
+    - ixgbe: fix unexpected VLAN Rx in promisc mode on VF
+    - Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag
+    - powerpc/32: Fix overread/overwrite of thread_struct via ptrace
+    - md/raid0: Ignore RAID0 layout if the second zone has only one device
+    - mtd: cfi_cmdset_0002: Use chip_ready() for write on S29GL064N
+    - tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd
+    - Linux 5.4.198
+
+  * Focal update: v5.4.197 upstream stable release (LP: #1981758)
+    - x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
+    - staging: rtl8723bs: prevent ->Ssid overflow in rtw_wx_set_scan()
+    - Input: goodix - fix spurious key release events
+    - tcp: change source port randomizarion at connect() time
+    - secure_seq: use the 64 bits of the siphash for port offset calculation
+    - media: vim2m: Register video device after setting up internals
+    - media: vim2m: initialize the media device earlier
+    - ACPI: sysfs: Make sparse happy about address space in use
+    - ACPI: sysfs: Fix BERT error region memory mapping
+    - pinctrl: sunxi: fix f1c100s uart2 function
+    - net: af_key: check encryption module availability consistency
+    - net: ftgmac100: Disable hardware checksum on AST2600
+    - i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
+    - drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI
+      controllers
+    - assoc_array: Fix BUG_ON during garbage collect
+    - cfg80211: set custom regdomain after wiphy registration
+    - drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
+    - exec: Force single empty string when argv is empty
+    - netfilter: conntrack: re-fetch conntrack after insertion
+    - crypto: ecrdsa - Fix incorrect use of vli_cmp
+    - zsmalloc: fix races between asynchronous zspage free and page migration
+    - dm integrity: fix error code in dm_integrity_ctr()
+    - dm crypt: make printing of the key constant-time
+    - dm stats: add cond_resched when looping over entries
+    - dm verity: set DM_TARGET_IMMUTABLE feature flag
+    - raid5: introduce MD_BROKEN
+    - HID: multitouch: Add support for Google Whiskers Touchpad
+    - tpm: Fix buffer access in tpm2_get_tpm_pt()
+    - tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
+    - docs: submitting-patches: Fix crossref to 'The canonical patch format'
+    - NFS: Memory allocation failures are not server fatal errors
+    - NFSD: Fix possible sleep during nfsd4_release_lockowner()
+    - bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
+    - Linux 5.4.197
+
+  * Focal update: v5.4.196 upstream stable release (LP: #1981111)
+    - x86/xen: Make the boot CPU idle task reliable
+    - x86/xen: Make the secondary CPU idle tasks reliable
+    - rtc: fix use-after-free on device removal
+    - um: Cleanup syscall_handler_t definition/cast, fix warning
+    - Input: add bounds checking to input_set_capability()
+    - Input: stmfts - fix reference leak in stmfts_input_open
+    - crypto: stm32 - fix reference leak in stm32_crc_remove
+    - crypto: x86/chacha20 - Avoid spurious jumps to other functions
+    - ALSA: hda/realtek: Enable headset mic on Lenovo P360
+    - nvme-multipath: fix hang when disk goes live over reconnect
+    - rtc: mc146818-lib: Fix the AltCentury for AMD platforms
+    - MIPS: lantiq: check the return value of kzalloc()
+    - drbd: remove usage of list iterator variable after loop
+    - platform/chrome: cros_ec_debugfs: detach log reader wq from devm
+    - ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
+    - nilfs2: fix lockdep warnings in page operations for btree nodes
+    - nilfs2: fix lockdep warnings during disk space reclamation
+    - mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC
+    - mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD
+    - mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
+    - SUNRPC: Clean up scheduling of autoclose
+    - SUNRPC: Prevent immediate close+reconnect
+    - SUNRPC: Don't call connect() more than once on a TCP socket
+    - ALSA: wavefront: Proper check of get_user() error
+    - perf: Fix sys_perf_event_open() race against self
+    - Fix double fget() in vhost_net_set_backend()
+    - PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold
+    - KVM: x86/mmu: Update number of zapped pages even if page list is stable
+    - crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
+    - drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
+    - dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
+    - ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
+    - ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
+    - net: macb: Increment rx bd head after allocating skb and buffer
+    - net/sched: act_pedit: sanitize shift argument before usage
+    - net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
+    - net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
+    - ice: fix possible under reporting of ethtool Tx and Rx statistics
+    - clk: at91: generated: consider range when calculating best rate
+    - net/qla3xxx: Fix a test in ql_reset_work()
+    - NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
+    - net/mlx5e: Properly block LRO when XDP is enabled
+    - ARM: 9196/1: spectre-bhb: enable for Cortex-A15
+    - ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
+    - igb: skip phy status check where unavailable
+    - net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
+    - gpio: gpio-vf610: do not touch other bits when set the target bit
+    - gpio: mvebu/pwm: Refuse requests with inverted polarity
+    - perf bench numa: Address compiler error on s390
+    - scsi: qla2xxx: Fix missed DMA unmap for aborted commands
+    - mac80211: fix rx reordering with non explicit / psmp ack policy
+    - selftests: add ping test with ping_group_range tuned
+    - ethernet: tulip: fix missing pci_disable_device() on error in
+      tulip_init_one()
+    - net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe()
+    - net: atlantic: verify hw_head_ lies within TX buffer ring
+    - Input: ili210x - fix reset timing
+    - block: return ELEVATOR_DISCARD_MERGE if possible
+    - net: stmmac: disable Split Header (SPH) for Intel platforms
+    - firmware_loader: use kernel credentials when reading firmware
+    - ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk
+    - Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
+    - x86/xen: fix booting 32-bit pv guest
+    - x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
+    - i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
+    - afs: Fix afs_getattr() to refetch file status if callback break occurred
+    - Linux 5.4.196
+
+  * CVE-2022-36946
+    - netfilter: nf_queue: do not allow packet truncation below transport header
+      offset
+
+  * CVE-2021-33655
+    - fbcon: Disallow setting font bigger than screen size
+    - fbcon: Prevent that screen size is smaller than font size
+    - fbmem: Check virtual screen sizes in fb_set_var()
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 26 Aug 2022 11:39:48 +0200
+
+linux (5.4.0-125.141) focal; urgency=medium
+
+  * focal/linux: 5.4.0-125.141 -proposed tracker (LP: #1983947)
+
+  * nbd: requests can become stuck when disconnecting from server with qemu-nbd
+    (LP: #1896350)
+    - blk-mq: blk-mq: provide forced completion method
+    - blk-mq: move failure injection out of blk_mq_complete_request
+    - nbd: don't handle response without a corresponding request message
+    - nbd: make sure request completion won't concurrent
+    - nbd: don't clear 'NBD_CMD_INFLIGHT' flag if request is not completed
+    - nbd: fix io hung while disconnecting device
+
+  * CVE-2021-33656
+    - vt: drop old FONT ioctls
+
+  * CVE-2021-33061
+    - ixgbe: add the ability for the PF to disable VF link state
+    - ixgbe: add improvement for MDD response functionality
+    - ixgbevf: add disable link state
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 10 Aug 2022 10:17:28 +0200
+
+linux (5.4.0-124.140) focal; urgency=medium
+
+  * CVE-2022-2586
+    - SAUCE: netfilter: nf_tables: do not allow SET_ID to refer to another table
+    - SAUCE: netfilter: nf_tables: do not allow RULE_ID to refer to another chain
+
+  * CVE-2022-2588
+    - SAUCE: net_sched: cls_route: remove from list when handle is 0
+
+  * CVE-2022-34918
+    - netfilter: nf_tables: stricter validation of element data
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 03 Aug 2022 22:48:34 -0300
+
+linux (5.4.0-123.139) focal; urgency=medium
+
+  * focal/linux: 5.4.0-123.139 -proposed tracker (LP: #1981284)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.07.11)
+
+  * Hairpin traffic does not work with centralized NAT gw (LP: #1967856)
+    - net: openvswitch: fix misuse of the cached connection on tuple changes
+
+  * [UBUNTU 20.04] Include patches to avoid self-detected stall with Secure
+    Execution (LP: #1979296)
+    - KVM: s390: pv: add macros for UVC CC values
+    - KVM: s390: pv: avoid stalls when making pages secure
+    - KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
+
+  * Focal update: v5.4.195 upstream stable release (LP: #1980407)
+    - batman-adv: Don't skb_split skbuffs with frag_list
+    - hwmon: (tmp401) Add OF device ID table
+    - mac80211: Reset MBSSID parameters upon connection
+    - net: Fix features skip in for_each_netdev_feature()
+    - ipv4: drop dst in multicast routing path
+    - drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
+    - netlink: do not reset transport header in netlink_recvmsg()
+    - mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
+    - dim: initialize all struct fields
+    - hwmon: (ltq-cputemp) restrict it to SOC_XWAY
+    - s390/ctcm: fix variable dereferenced before check
+    - s390/ctcm: fix potential memory leak
+    - s390/lcs: fix variable dereferenced before check
+    - net/sched: act_pedit: really ensure the skb is writable
+    - net/smc: non blocking recvmsg() return -EAGAIN when no data and
+      signal_pending
+    - net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
+    - gfs2: Fix filesystem block deallocation for short writes
+    - hwmon: (f71882fg) Fix negative temperature
+    - ASoC: max98090: Reject invalid values in custom control put()
+    - ASoC: max98090: Generate notifications on changes for custom control
+    - ASoC: ops: Validate input values in snd_soc_put_volsw_range()
+    - s390: disable -Warray-bounds
+    - net: emaclite: Don't advertise 1000BASE-T and do auto negotiation
+    - tcp: resalt the secret every 10 seconds
+    - tty: n_gsm: fix mux activation issues in gsm_config()
+    - usb: cdc-wdm: fix reading stuck on device close
+    - usb: typec: tcpci: Don't skip cleanup in .remove() on error
+    - USB: serial: pl2303: add device id for HP LM930 Display
+    - USB: serial: qcserial: add support for Sierra Wireless EM7590
+    - USB: serial: option: add Fibocom L610 modem
+    - USB: serial: option: add Fibocom MA510 modem
+    - slimbus: qcom: Fix IRQ check in qcom_slim_probe
+    - serial: 8250_mtk: Fix UART_EFR register address
+    - serial: 8250_mtk: Fix register address for XON/XOFF character
+    - drm/nouveau/tegra: Stop using iommu_present()
+    - i40e: i40e_main: fix a missing check on list iterator
+    - cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
+    - drm/vmwgfx: Initialize drm_mode_fb_cmd2
+    - MIPS: fix build with gcc-12
+    - net: phy: Fix race condition on link status change
+    - arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
+    - ping: fix address binding wrt vrf
+    - tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
+    - Linux 5.4.195
+
+  * Focal update: v5.4.194 upstream stable release (LP: #1980399)
+    - MIPS: Use address-of operator on section symbols
+    - block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
+    - drm/amd/display/dc/gpio/gpio_service: Pass around correct dce_{version,
+      environment} types
+    - drm/i915: Cast remain to unsigned long in eb_relocate_vma
+    - nfp: bpf: silence bitwise vs. logical OR warning
+    - can: grcan: grcan_probe(): fix broken system id check for errata workaround
+      needs
+    - can: grcan: only use the NAPI poll budget for RX
+    - arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
+    - [Config] updateconfigs for ARCH_HAS_HOLES_MEMORYMODEL
+    - KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
+    - x86/asm: Allow to pass macros to __ASM_FORM()
+    - x86: xen: kvm: Gather the definition of emulate prefixes
+    - x86: xen: insn: Decode Xen and KVM emulate-prefix signature
+    - x86: kprobes: Prohibit probing on instruction which has emulate prefix
+    - KVM: x86/svm: Account for family 17h event renumberings in
+      amd_pmc_perf_hw_id
+    - Bluetooth: Fix the creation of hdev->name
+    - mm: fix missing cache flush for all tail pages of compound page
+    - mm: hugetlb: fix missing cache flush in copy_huge_page_from_user()
+    - mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and
+      __mcopy_atomic()
+    - Linux 5.4.194
+
+  * Focal update: v5.4.193 upstream stable release (LP: #1979566)
+    - MIPS: Fix CP0 counter erratum detection for R4k CPUs
+    - parisc: Merge model and model name into one line in /proc/cpuinfo
+    - ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
+    - gpiolib: of: fix bounds check for 'gpio-reserved-ranges'
+    - Revert "SUNRPC: attempt AF_LOCAL connect on setup"
+    - firewire: fix potential uaf in outbound_phy_packet_callback()
+    - firewire: remove check of list iterator against head past the loop body
+    - firewire: core: extend card->lock in fw_core_handle_bus_reset
+    - ACPICA: Always create namespace nodes using acpi_ns_create_node()
+    - genirq: Synchronize interrupt thread startup
+    - ASoC: da7219: Fix change notifications for tone generator frequency
+    - ASoC: wm8958: Fix change notifications for DSP controls
+    - ASoC: meson: Fix event generation for G12A tohdmi mux
+    - s390/dasd: fix data corruption for ESE devices
+    - s390/dasd: prevent double format of tracks for ESE devices
+    - s390/dasd: Fix read for ESE with blksize < 4k
+    - s390/dasd: Fix read inconsistency for ESE DASD devices
+    - can: grcan: grcan_close(): fix deadlock
+    - can: grcan: use ofdev->dev when allocating DMA memory
+    - nfc: replace improper check device_is_registered() in netlink related
+      functions
+    - NFC: netlink: fix sleep in atomic bug when firmware download timeout
+    - hwmon: (adt7470) Fix warning on module removal
+    - ASoC: dmaengine: Restore NULL prepare_slave_config() callback
+    - RDMA/siw: Fix a condition race issue in MPA request processing
+    - net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init()
+    - net: stmmac: dwmac-sun8i: add missing of_node_put() in
+      sun8i_dwmac_register_mdio_mux()
+    - net: emaclite: Add error handling for of_address_to_resource()
+    - selftests: mirror_gre_bridge_1q: Avoid changing PVID while interface is
+      operational
+    - bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag
+    - smsc911x: allow using IRQ0
+    - btrfs: always log symlinks in full mode
+    - net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
+    - drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu
+    - NFSv4: Don't invalidate inode attributes on delegation return
+    - kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
+    - x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
+    - KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised
+    - net: ipv6: ensure we call ipv6_mc_down() at most once
+    - block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
+    - mm: fix unexpected zeroed page mapping with zram swap
+    - ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
+    - ALSA: pcm: Fix races among concurrent read/write and buffer changes
+    - ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
+    - ALSA: pcm: Fix races among concurrent prealloc proc writes
+    - ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
+    - tcp: make sure treq->af_specific is initialized
+    - dm: fix mempool NULL pointer race when completing IO
+    - dm: interlock pending dm_io and dm_wait_for_bios_completion
+    - PCI: aardvark: Clear all MSIs at setup
+    - PCI: aardvark: Fix reading MSI interrupt number
+    - mmc: rtsx: add 74 Clocks in power on flow
+    - Linux 5.4.193
+
+  * CVE-2022-1679
+    - SAUCE: ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
+
+  * CVE-2022-28893
+    - SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
+    - SUNRPC: Don't leak sockets in xs_local_connect()
+
+  * CVE-2022-1734
+    - nfc: nfcmrvl: main: reorder destructive operations in
+      nfcmrvl_nci_unregister_dev to avoid bugs
+
+  * CVE-2022-1652
+    - floppy: use a statically allocated error counter
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 11 Jul 2022 16:54:06 +0200
+
+linux (5.4.0-122.138) focal; urgency=medium
+
+  * focal/linux: 5.4.0-122.138 -proposed tracker (LP: #1979489)
+
+  * Remove SAUCE patches from test_vxlan_under_vrf.sh in net of
+    ubuntu_kernel_selftests (LP: #1975691)
+    - Revert "UBUNTU: SAUCE: selftests: net: Don't fail test_vxlan_under_vrf on
+      xfail"
+    - Revert "UBUNTU: SAUCE: selftests: net: Make test for VXLAN underlay in non-
+      default VRF an expected failure"
+
+  * Enable Asus USB-BT500 Bluetooth dongle(0b05:190e) (LP: #1976613)
+    - Bluetooth: btusb: Add flag to define wideband speech capability
+    - Bluetooth: btrtl: Add support for RTL8761B
+    - Bluetooth: btusb: Add 0x0b05:0x190e Realtek 8761BU (ASUS BT500) device.
+
+  * [UBUNTU 20.04] rcu stalls with many storage key guests (LP: #1975582)
+    - s390/gmap: voluntarily schedule during key setting
+    - s390/mm: use non-quiescing sske for KVM switch to keyed guest
+
+  * Ubuntu 5.4.0-117.132-generic 5.4.189 has BUG: kernel NULL pointer
+    dereference, address: 0000000000000034 (LP: #1978719)
+    - mm: rmap: explicitly reset vma->anon_vma in unlink_anon_vmas()
+
+  * Focal update: upstream stable patchset v5.4.192 (LP: #1979014)
+    - floppy: disable FDRAWCMD by default
+    - [Config] updateconfigs for BLK_DEV_FD_RAWCMD
+    - hamradio: defer 6pack kfree after unregister_netdev
+    - hamradio: remove needs_free_netdev to avoid UAF
+    - lightnvm: disable the subsystem
+    - [Config] updateconfigs for NVM, NVM_PBLK
+    - usb: mtu3: fix USB 3.0 dual-role-switch from device to host
+    - USB: quirks: add a Realtek card reader
+    - USB: quirks: add STRING quirk for VCOM device
+    - USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
+    - USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
+    - USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
+    - USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
+    - xhci: stop polling roothubs after shutdown
+    - xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
+    - iio: dac: ad5592r: Fix the missing return value.
+    - iio: dac: ad5446: Fix read_raw not returning set value
+    - iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
+    - usb: misc: fix improper handling of refcount in uss720_probe()
+    - usb: typec: ucsi: Fix role swapping
+    - usb: gadget: uvc: Fix crash when encoding data for usb request
+    - usb: gadget: configfs: clear deactivation flag in
+      configfs_composite_unbind()
+    - usb: dwc3: core: Fix tx/rx threshold settings
+    - usb: dwc3: gadget: Return proper request status
+    - serial: imx: fix overrun interrupts in DMA mode
+    - serial: 8250: Also set sticky MCR bits in console restoration
+    - serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
+    - arch_topology: Do not set llc_sibling if llc_id is invalid
+    - hex2bin: make the function hex_to_bin constant-time
+    - hex2bin: fix access beyond string end
+    - video: fbdev: udlfb: properly check endpoint type
+    - arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
+    - arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
+    - mtd: rawnand: fix ecc parameters for mt7622
+    - USB: Fix xhci event ring dequeue pointer ERDP update issue
+    - ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
+    - phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
+    - phy: samsung: exynos5250-sata: fix missing device put in probe error paths
+    - ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
+    - phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
+    - ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
+    - phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
+    - phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
+    - ARM: dts: Fix mmc order for omap3-gta04
+    - ARM: dts: am3517-evm: Fix misc pinmuxing
+    - ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
+    - ipvs: correctly print the memory size of ip_vs_conn_tab
+    - mtd: rawnand: Fix return value check of wait_for_completion_timeout
+    - bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt
+      hook
+    - tcp: md5: incorrect tcp_header_len for incoming connections
+    - tcp: ensure to use the most recently sent skb when filling the rate sample
+    - sctp: check asoc strreset_chunk in sctp_generate_reconf_event
+    - ARM: dts: imx6ull-colibri: fix vqmmc regulator
+    - arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
+    - pinctrl: pistachio: fix use of irq_of_parse_and_map()
+    - cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
+    - net: hns3: add validity check for message data length
+    - net/smc: sync err code when tcp connection was refused
+    - ip_gre: Make o_seqno start from 0 in native mode
+    - tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
+    - bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
+    - clk: sunxi: sun9i-mmc: check return value after calling
+      platform_get_resource()
+    - net: bcmgenet: hide status block before TX timestamping
+    - net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
+    - drm/amd/display: Fix memory leak in dcn21_clock_source_create
+    - tls: Skip tls_append_frag on zero copy size
+    - bnx2x: fix napi API usage sequence
+    - ixgbe: ensure IPsec VF<->PF compatibility
+    - tcp: fix F-RTO may not work correctly when receiving DSACK
+    - ASoC: wm8731: Disable the regulator when probing fails
+    - ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit()
+    - x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
+    - cifs: destage any unwritten data to the server before calling
+      copychunk_write
+    - drivers: net: hippi: Fix deadlock in rr_close()
+    - net: ethernet: stmmac: fix write to sgmii_adapter_base
+    - x86/cpu: Load microcode during restore_processor_state()
+    - tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
+    - tty: n_gsm: fix malformed counter for out of frame data
+    - netfilter: nft_socket: only do sk lookups when indev is available
+    - tty: n_gsm: fix insufficient txframe size
+    - tty: n_gsm: fix missing explicit ldisc flush
+    - tty: n_gsm: fix wrong command retry handling
+    - tty: n_gsm: fix wrong command frame length field encoding
+    - tty: n_gsm: fix incorrect UA handling
+    - hugetlbfs: get unmapped area below TASK_UNMAPPED_BASE for hugetlbfs
+    - mm, hugetlb: allow for "high" userspace addresses
+    - Linux 5.4.192
+
+  * CVE-2022-1789
+    - KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
+
+  * Focal update: v5.4.191 upstream stable release (LP: #1976116)
+    - etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead
+    - mm: page_alloc: fix building error on -Werror=array-compare
+    - tracing: Dump stacktrace trigger to the corresponding instance
+    - gfs2: assign rgrp glock before compute_bitstructs
+    - tcp: fix race condition when creating child sockets from syncookies
+    - tcp: Fix potential use-after-free due to double kfree()
+    - ALSA: usb-audio: Clear MIDI port active flag after draining
+    - ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek
+    - ASoC: msm8916-wcd-digital: Check failure for devm_snd_soc_register_component
+    - dmaengine: imx-sdma: Fix error checking in sdma_event_remap
+    - dmaengine: mediatek:Fix PM usage reference leak of
+      mtk_uart_apdma_alloc_chan_resources
+    - igc: Fix infinite loop in release_swfw_sync
+    - igc: Fix BUG: scheduling while atomic
+    - rxrpc: Restore removed timer deletion
+    - net/smc: Fix sock leak when release after smc_shutdown()
+    - net/packet: fix packet_sock xmit return value checking
+    - net/sched: cls_u32: fix possible leak in u32_init_knode()
+    - l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using
+      netdev_master_upper_dev_get_rcu
+    - netlink: reset network and mac headers in netlink_dump()
+    - selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets
+    - ARM: vexpress/spc: Avoid negative array index when !SMP
+    - reset: tegra-bpmp: Restore Handle errors in BPMP response
+    - platform/x86: samsung-laptop: Fix an unsigned comparison which can never be
+      negative
+    - ALSA: usb-audio: Fix undefined behavior due to shift overflowing the
+      constant
+    - vxlan: fix error return code in vxlan_fdb_append
+    - cifs: Check the IOCB_DIRECT flag, not O_DIRECT
+    - mt76: Fix undefined behavior due to shift overflowing the constant
+    - brcmfmac: sdio: Fix undefined behavior due to shift overflowing the constant
+    - dpaa_eth: Fix missing of_node_put in dpaa_get_ts_info()
+    - drm/msm/mdp5: check the return of kzalloc()
+    - net: macb: Restart tx only if queue pointer is lagging
+    - scsi: qedi: Fix failed disconnect handling
+    - stat: fix inconsistency between struct stat and struct compat_stat
+    - EDAC/synopsys: Read the error count from the correct register
+    - oom_kill.c: futex: delay the OOM reaper to allow time for proper futex
+      cleanup
+    - ata: pata_marvell: Check the 'bmdma_addr' beforing reading
+    - dma: at_xdmac: fix a missing check on list iterator
+    - drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
+    - drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
+    - KVM: PPC: Fix TCE handling for VFIO
+    - drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
+    - powerpc/perf: Fix power9 event alternatives
+    - xtensa: patch_text: Fixup last cpu should be master
+    - xtensa: fix a7 clobbering in coprocessor context load/store
+    - openvswitch: fix OOB access in reserve_sfa_size()
+    - ASoC: soc-dapm: fix two incorrect uses of list iterator
+    - e1000e: Fix possible overflow in LTR decoding
+    - ARC: entry: fix syscall_trace_exit argument
+    - arm_pmu: Validate single/group leader events
+    - ext4: fix symlink file size not match to file content
+    - ext4: fix use-after-free in ext4_search_dir
+    - ext4, doc: fix incorrect h_reserved size
+    - ext4: fix overhead calculation to account for the reserved gdt blocks
+    - ext4: force overhead calculation if the s_overhead_cluster makes no sense
+    - jbd2: fix a potential race while discarding reserved buffers after an abort
+    - spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and
+      controller
+    - staging: ion: Prevent incorrect reference counting behavour
+    - block/compat_ioctl: fix range check in BLKGETSIZE
+    - Linux 5.4.191
+
+  * Focal update: v5.4.190 upstream stable release (LP: #1973085)
+    - memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
+    - net/sched: flower: fix parsing of ethertype following VLAN header
+    - veth: Ensure eth header is in skb's linear part
+    - gpiolib: acpi: use correct format characters
+    - mlxsw: i2c: Fix initialization error flow
+    - net/sched: fix initialization order when updating chain 0 head
+    - net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link
+    - net/sched: taprio: Check if socket flags are valid
+    - cfg80211: hold bss_lock while updating nontrans_list
+    - drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init()
+    - net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
+    - sctp: Initialize daddr on peeled off socket
+    - testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set
+    - nfc: nci: add flush_workqueue to prevent uaf
+    - cifs: potential buffer overflow in handling symlinks
+    - drm/amd: Add USBC connector ID
+    - drm/amd/display: fix audio format not updated after edid updated
+    - drm/amd/display: Update VTEM Infopacket definition
+    - drm/amdkfd: Fix Incorrect VMIDs passed to HWS
+    - drm/amdkfd: Check for potential null return of kmalloc_array()
+    - Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer
+    - scsi: target: tcmu: Fix possible page UAF
+    - scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
+    - ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
+    - gpu: ipu-v3: Fix dev_dbg frequency output
+    - regulator: wm8994: Add an off-on delay for WM8994 variant
+    - arm64: alternatives: mark patch_alternative() as `noinstr`
+    - tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
+    - net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
+    - drm/amd/display: Fix allocate_mst_payload assert on resume
+    - powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
+    - scsi: mvsas: Add PCI ID of RocketRaid 2640
+    - scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
+    - drivers: net: slip: fix NPD bug in sl_tx_timeout()
+    - perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
+    - mm, page_alloc: fix build_zonerefs_node()
+    - mm: kmemleak: take a full lowmem check in kmemleak_*_phys()
+    - gcc-plugins: latent_entropy: use /dev/urandom
+    - ath9k: Properly clear TX status area before reporting to mac80211
+    - ath9k: Fix usage of driver-private space in tx_info
+    - btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()
+    - btrfs: mark resumed async balance as writing
+    - ALSA: hda/realtek: Add quirk for Clevo PD50PNT
+    - ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
+    - ipv6: fix panic when forwarding a pkt with no in6 dev
+    - drm/amd/display: don't ignore alpha property on pre-multiplied mode
+    - genirq/affinity: Consider that CPUs on nodes can be unbalanced
+    - tick/nohz: Use WARN_ON_ONCE() to prevent console saturation
+    - ARM: davinci: da850-evm: Avoid NULL pointer dereference
+    - dm integrity: fix memory corruption when tag_size is less than digest size
+    - smp: Fix offline cpu check in flush_smp_call_function_queue()
+    - i2c: pasemi: Wait for write xfers to finish
+    - dma-direct: avoid redundant memory sync for swiotlb
+    - ax25: add refcount in ax25_dev to avoid UAF bugs
+    - ax25: fix reference count leaks of ax25_dev
+    - ax25: fix UAF bugs of net_device caused by rebinding operation
+    - ax25: Fix refcount leaks caused by ax25_cb_del()
+    - ax25: fix UAF bug in ax25_send_control()
+    - ax25: fix NPD bug in ax25_disconnect
+    - ax25: Fix NULL pointer dereferences in ax25 timers
+    - ax25: Fix UAF bugs in ax25 timers
+    - Linux 5.4.190
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 22 Jun 2022 15:00:52 +0200
+
+linux (5.4.0-121.137) focal; urgency=medium
+
+  * focal/linux: 5.4.0-121.137 -proposed tracker (LP: #1978666)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.05.30)
+
+  * CVE-2022-28388
+    - can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error
+      path
+
+  * test_vxlan_under_vrf.sh in net from ubuntu_kernel_selftests failed (Check VM
+    connectivity through VXLAN (underlay in the default VRF) [FAIL])
+    (LP: #1871015)
+    - selftests: net: test_vxlan_under_vrf: fix HV connectivity test
+
+  * [UBUNTU 20.04] CPU-MF: add extended counter set definitions for new IBM z16
+    (LP: #1974433)
+    - s390/cpumf: add new extended counter set for IBM z16
+
+  * [UBUNTU 20.04] KVM nesting support leaks too much memory, might result in
+    stalls during cleanup (LP: #1974017)
+    - KVM: s390: vsie/gmap: reduce gmap_rmap overhead
+
+  * [UBUNTU 20.04] Null Pointer issue in nfs code running Ubuntu on IBM Z
+    (LP: #1968096)
+    - NFS: Fix up nfs_ctx_key_to_expire()
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 15 Jun 2022 15:13:27 +0200
+
+linux (5.4.0-120.136) focal; urgency=medium
+
+  * CVE-2022-21123 // CVE-2022-21125 // CVE-2022-21166
+    - cpu/speculation: Add prototype for cpu_show_srbds()
+    - x86/cpu: Add Jasper Lake to Intel family
+    - x86/cpu: Add Lakefield, Alder Lake and Rocket Lake models to the to Intel
+      CPU family
+    - x86/cpu: Add another Alder Lake CPU to the Intel family
+    - Documentation: Add documentation for Processor MMIO Stale Data
+    - x86/speculation/mmio: Enumerate Processor MMIO Stale Data bug
+    - x86/speculation: Add a common function for MD_CLEAR mitigation update
+    - x86/speculation/mmio: Add mitigation for Processor MMIO Stale Data
+    - x86/bugs: Group MDS, TAA & Processor MMIO Stale Data mitigations
+    - x86/speculation/mmio: Enable CPU Fill buffer clearing on idle
+    - x86/speculation/mmio: Add sysfs reporting for Processor MMIO Stale Data
+    - x86/speculation/srbds: Update SRBDS mitigation selection
+    - x86/speculation/mmio: Reuse SRBDS mitigation for SBDS
+    - KVM: x86/speculation: Disable Fill buffer clear within guests
+    - x86/speculation/mmio: Print SMT warning
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 10 Jun 2022 10:21:07 -0300
+
+linux (5.4.0-117.132) focal; urgency=medium
+
+  * CVE-2022-1966
+    - netfilter: nf_tables: add nft_set_elem_expr_alloc()
+    - netfilter: nf_tables: disallow non-stateful expression in sets earlier
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 01 Jun 2022 20:07:42 -0300
+
+linux (5.4.0-115.129) focal; urgency=medium
+
+  * CVE-2022-21499
+    - SAUCE: debug: Lock down kgdb
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Sat, 21 May 2022 12:07:10 -0300
+
+linux (5.4.0-114.128) focal; urgency=medium
+
+  * focal/linux: 5.4.0-114.128 -proposed tracker (LP: #1974391)
+
+  * 32 GT/s PCI link speeds reporting "Unknown speed" in sysfs (LP: #1970798)
+    - PCI: Add 32 GT/s decoding in some macros
+    - PCI: Add pci_speed_string()
+    - PCI: Use pci_speed_string() for all PCI/PCI-X/PCIe strings
+    - PCI: Add PCIE_LNKCAP2_SLS2SPEED() macro
+
+  * issuing invalid ioctl to /dev/vsock may spam dmesg (LP: #1971480)
+    - vsock: remove ratelimit unknown ioctl message
+
+  * config CONFIG_HISI_PMU for  kunpeng920 (LP: #1956086)
+    - drivers/perf: hisi: Permit modular builds of HiSilicon uncore drivers
+    - [Config] CONFIG_HISI_PMU=m
+
+  * Focal update: v5.4.189 upstream stable release (LP: #1971497)
+    - swiotlb: fix info leak with DMA_FROM_DEVICE
+    - USB: serial: pl2303: add IBM device IDs
+    - USB: serial: simple: add Nokia phone driver
+    - netdevice: add the case if dev is NULL
+    - HID: logitech-dj: add new lightspeed receiver id
+    - xfrm: fix tunnel model fragmentation behavior
+    - virtio_console: break out of buf poll on remove
+    - ethernet: sun: Free the coherent when failing in probing
+    - spi: Fix invalid sgs value
+    - net:mcf8390: Use platform_get_irq() to get the interrupt
+    - spi: Fix erroneous sgs value with min_t()
+    - af_key: add __GFP_ZERO flag for compose_sadb_supported in function
+      pfkey_register
+    - net: dsa: microchip: add spi_device_id tables
+    - iommu/iova: Improve 32-bit free space estimate
+    - tpm: fix reference counting for struct tpm_chip
+    - block: Add a helper to validate the block size
+    - virtio-blk: Use blk_validate_block_size() to validate block size
+    - USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
+    - xhci: fix runtime PM imbalance in USB2 resume
+    - xhci: make xhci_handshake timeout for xhci_reset() adjustable
+    - xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
+    - coresight: Fix TRCCONFIGR.QE sysfs interface
+    - iio: afe: rescale: use s64 for temporary scale calculations
+    - iio: inkern: apply consumer scale on IIO_VAL_INT cases
+    - iio: inkern: apply consumer scale when no channel scale is available
+    - iio: inkern: make a best effort on offset calculation
+    - greybus: svc: fix an error handling bug in gb_svc_hello()
+    - clk: uniphier: Fix fixed-rate initialization
+    - KEYS: fix length validation in keyctl_pkey_params_get_2()
+    - Documentation: add link to stable release candidate tree
+    - Documentation: update stable tree link
+    - HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
+    - SUNRPC: avoid race between mod_timer() and del_timer_sync()
+    - NFSD: prevent underflow in nfssvc_decode_writeargs()
+    - NFSD: prevent integer overflow on 32 bit systems
+    - f2fs: fix to unlock page correctly in error path of is_alive()
+    - f2fs: quota: fix loop condition at f2fs_quota_sync()
+    - f2fs: fix to do sanity check on .cp_pack_total_block_count
+    - pinctrl: samsung: drop pin banks references on error paths
+    - spi: mxic: Fix the transmit path
+    - jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
+    - jffs2: fix memory leak in jffs2_do_mount_fs
+    - jffs2: fix memory leak in jffs2_scan_medium
+    - mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
+    - mm: invalidate hwpoison page cache page in fault path
+    - mempolicy: mbind_range() set_policy() after vma_merge()
+    - scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
+    - qed: display VF trust config
+    - qed: validate and restrict untrusted VFs vlan promisc mode
+    - riscv: Fix fill_callchain return value
+    - Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
+    - ALSA: cs4236: fix an incorrect NULL check on list iterator
+    - ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
+    - mm,hwpoison: unmap poisoned page before invalidation
+    - mm/kmemleak: reset tag when compare object pointer
+    - drbd: fix potential silent data corruption
+    - powerpc/kvm: Fix kvm_use_magic_page
+    - udp: call udp_encap_enable for v6 sockets when enabling encap
+    - ACPI: properties: Consistently return -ENOENT if there are no more
+      references
+    - drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
+    - mailbox: tegra-hsp: Flush whole channel
+    - block: don't merge across cgroup boundaries if blkcg is enabled
+    - drm/edid: check basic audio support on CEA extension block
+    - video: fbdev: sm712fb: Fix crash in smtcfb_read()
+    - video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
+    - ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
+    - ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
+    - ARM: dts: exynos: add missing HDMI supplies on SMDK5250
+    - ARM: dts: exynos: add missing HDMI supplies on SMDK5420
+    - carl9170: fix missing bit-wise or operator for tx_params
+    - thermal: int340x: Increase bitmap size
+    - lib/raid6/test: fix multiple definition linking error
+    - crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
+    - crypto: rsa-pkcs1pad - restore signature length check
+    - crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
+    - DEC: Limit PMAX memory probing to R3k systems
+    - media: davinci: vpif: fix unbalanced runtime PM get
+    - xtensa: fix stop_machine_cpuslocked call in patch_text
+    - xtensa: fix xtensa_wsr always writing 0
+    - brcmfmac: firmware: Allocate space for default boardrev in nvram
+    - brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
+    - brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
+    - brcmfmac: pcie: Fix crashes due to early IRQs
+    - PCI: pciehp: Clear cmd_busy bit in polling mode
+    - regulator: qcom_smd: fix for_each_child.cocci warnings
+    - crypto: authenc - Fix sleep in atomic context in decrypt_tail
+    - crypto: mxs-dcp - Fix scatterlist processing
+    - spi: tegra114: Add missing IRQ check in tegra_spi_probe
+    - selftests/x86: Add validity check and allow field splitting
+    - audit: log AUDIT_TIME_* records only from rules
+    - crypto: ccree - don't attempt 0 len DMA mappings
+    - spi: pxa2xx-pci: Balance reference count for PCI DMA device
+    - hwmon: (pmbus) Add mutex to regulator ops
+    - hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
+    - block: don't delete queue kobject before its children
+    - PM: hibernate: fix __setup handler error handling
+    - PM: suspend: fix return value of __setup handler
+    - hwrng: atmel - disable trng on failure path
+    - crypto: vmx - add missing dependencies
+    - clocksource/drivers/timer-of: Check return value of of_iomap in
+      timer_of_base_init()
+    - ACPI: APEI: fix return value of __setup handlers
+    - crypto: ccp - ccp_dmaengine_unregister release dma channels
+    - hwmon: (pmbus) Add Vin unit off handling
+    - clocksource: acpi_pm: fix return value of __setup handler
+    - sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
+    - perf/core: Fix address filter parser for multiple filters
+    - perf/x86/intel/pt: Fix address filter config for 32-bit kernel
+    - f2fs: fix missing free nid in f2fs_handle_failed_inode
+    - f2fs: fix to avoid potential deadlock
+    - media: bttv: fix WARNING regression on tunerless devices
+    - media: coda: Fix missing put_device() call in coda_get_vdoa_data
+    - media: hantro: Fix overfill bottom register field name
+    - media: aspeed: Correct value for h-total-pixels
+    - video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
+    - video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
+    - video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
+    - ARM: dts: qcom: ipq4019: fix sleep clock
+    - soc: qcom: rpmpd: Check for null return of devm_kcalloc
+    - soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
+    - arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
+    - soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
+    - ARM: dts: imx: Add missing LVDS decoder on M53Menlo
+    - media: video/hdmi: handle short reads of hdmi info frame.
+    - media: em28xx: initialize refcount before kref_get
+    - media: usb: go7007: s2250-board: fix leak in probe()
+    - uaccess: fix nios2 and microblaze get_user_8()
+    - ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
+    - ASoC: ti: davinci-i2s: Add check for clk_enable()
+    - ALSA: spi: Add check for clk_enable()
+    - arm64: dts: ns2: Fix spi-cpol and spi-cpha property
+    - arm64: dts: broadcom: Fix sata nodename
+    - printk: fix return value of printk.devkmsg __setup handler
+    - ASoC: mxs-saif: Handle errors for clk_enable
+    - ASoC: atmel_ssc_dai: Handle errors for clk_enable
+    - ASoC: soc-compress: prevent the potentially use of null pointer
+    - memory: emif: Add check for setup_interrupts
+    - memory: emif: check the pointer temp in get_device_details()
+    - ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
+    - arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
+    - media: stk1160: If start stream fails, return buffers with
+      VB2_BUF_STATE_QUEUED
+    - ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
+    - ASoC: wm8350: Handle error for wm8350_register_irq
+    - ASoC: fsi: Add check for clk_enable
+    - video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
+    - ivtv: fix incorrect device_caps for ivtvfb
+    - ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
+    - ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
+    - ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
+    - ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in
+      msm8916_wcd_digital_probe
+    - mmc: davinci_mmc: Handle error for clk_enable
+    - ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
+    - drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
+    - drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
+    - ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
+    - udmabuf: validate ubuf->pagecount
+    - Bluetooth: hci_serdev: call init_rwsem() before p->open()
+    - mtd: onenand: Check for error irq
+    - mtd: rawnand: gpmi: fix controller timings setting
+    - drm/edid: Don't clear formats if using deep color
+    - drm/amd/display: Fix a NULL pointer dereference in
+      amdgpu_dm_connector_add_common_modes()
+    - ath9k_htc: fix uninit value bugs
+    - KVM: PPC: Fix vmx/vsx mixup in mmio emulation
+    - i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
+    - power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
+    - ray_cs: Check ioremap return value
+    - powerpc/perf: Don't use perf_hw_context for trace IMC PMU
+    - mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
+    - mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
+    - net: dsa: mv88e6xxx: Enable port policy support on 6097
+    - PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
+    - power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
+    - HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
+    - iommu/ipmmu-vmsa: Check for error num after setting mask
+    - drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
+    - IB/cma: Allow XRC INI QPs to set their local ACK timeout
+    - dax: make sure inodes are flushed before destroy cache
+    - iwlwifi: Fix -EIO error code that is never returned
+    - iwlwifi: mvm: Fix an error code in iwl_mvm_up()
+    - dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
+    - scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
+    - scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
+    - scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
+    - scsi: pm8001: Fix abort all task initialization
+    - drm/amd/display: Remove vupdate_int_entry definition
+    - TOMOYO: fix __setup handlers return values
+    - ext2: correct max file size computing
+    - drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
+    - power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false
+      return
+    - scsi: hisi_sas: Change permission of parameter prot_mask
+    - drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
+    - bpf, arm64: Call build_prologue() first in first JIT pass
+    - bpf, arm64: Feed byte-offset into bpf line info
+    - libbpf: Skip forward declaration when counting duplicated type names
+    - powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
+    - KVM: x86: Fix emulation in writing cr8
+    - KVM: x86/emulator: Defer not-present segment check in
+      __load_segment_descriptor()
+    - hv_balloon: rate-limit "Unhandled message" warning
+    - i2c: xiic: Make bus names unique
+    - power: supply: wm8350-power: Handle error for wm8350_register_irq
+    - power: supply: wm8350-power: Add missing free in free_charger_irq
+    - PCI: Reduce warnings on possible RW1C corruption
+    - mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
+    - powerpc/sysdev: fix incorrect use to determine if list is empty
+    - mfd: mc13xxx: Add check for mc13xxx_irq_request
+    - selftests/bpf: Make test_lwt_ip_encap more stable and faster
+    - powerpc: 8xx: fix a return value error in mpc8xx_pic_init
+    - vxcan: enable local echo for sent CAN frames
+    - MIPS: RB532: fix return value of __setup handler
+    - mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
+    - RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
+    - bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
+    - bpf, sockmap: Fix more uncharged while msg has more_data
+    - bpf, sockmap: Fix double uncharge the mem of sk_msg
+    - USB: storage: ums-realtek: fix error code in rts51x_read_mem()
+    - Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
+    - af_netlink: Fix shift out of bounds in group mask calculation
+    - i2c: mux: demux-pinctrl: do not deactivate a master that is not active
+    - selftests/bpf/test_lirc_mode2.sh: Exit with proper code
+    - tcp: ensure PMTU updates are processed during fastopen
+    - openvswitch: always update flow key after nat
+    - tipc: fix the timer expires after interval 100ms
+    - mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
+    - mxser: fix xmit_buf leak in activate when LSR == 0xff
+    - pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
+    - misc: alcor_pci: Fix an error handling path
+    - staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
+    - pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
+    - clk: qcom: ipq8074: Use floor ops for SDCC1 clock
+    - phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
+    - serial: 8250_mid: Balance reference count for PCI DMA device
+    - serial: 8250: Fix race condition in RTS-after-send handling
+    - iio: adc: Add check for devm_request_threaded_irq
+    - NFS: Return valid errors from nfs2/3_decode_dirent()
+    - dma-debug: fix return value of __setup handlers
+    - clk: imx7d: Remove audio_mclk_root_clk
+    - clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
+    - clk: qcom: clk-rcg2: Update the frac table for pixel clock
+    - remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
+    - remoteproc: qcom_wcnss: Add missing of_node_put() in
+      wcnss_alloc_memory_region
+    - clk: actions: Terminate clk_div_table with sentinel element
+    - clk: loongson1: Terminate clk_div_table with sentinel element
+    - clk: clps711x: Terminate clk_div_table with sentinel element
+    - clk: tegra: tegra124-emc: Fix missing put_device() call in
+      emc_ensure_emc_driver
+    - NFS: remove unneeded check in decode_devicenotify_args()
+    - staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
+    - pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
+    - pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
+    - pinctrl: mediatek: paris: Fix pingroup pin config state readback
+    - pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
+    - pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
+    - tty: hvc: fix return value of __setup handler
+    - kgdboc: fix return value of __setup handler
+    - kgdbts: fix return value of __setup handler
+    - firmware: google: Properly state IOMEM dependency
+    - driver core: dd: fix return value of __setup handler
+    - jfs: fix divide error in dbNextAG
+    - netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
+    - NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
+    - clk: qcom: gcc-msm8994: Fix gpll4 width
+    - clk: Initialize orphan req_rate
+    - xen: fix is_xen_pmu()
+    - net: phy: broadcom: Fix brcm_fet_config_init()
+    - selftests: test_vxlan_under_vrf: Fix broken test case
+    - qlcnic: dcb: default to returning -EOPNOTSUPP
+    - net/x25: Fix null-ptr-deref caused by x25_disconnect
+    - NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
+    - net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
+    - lib/test: use after free in register_test_dev_kmod()
+    - LSM: general protection fault in legacy_parse_param
+    - gcc-plugins/stackleak: Exactly match strings instead of prefixes
+    - pinctrl: npcm: Fix broken references to chip->parent_device
+    - block, bfq: don't move oom_bfqq
+    - selinux: use correct type for context length
+    - loop: use sysfs_emit() in the sysfs xxx show()
+    - Fix incorrect type in assignment of ipv6 port for audit
+    - irqchip/qcom-pdc: Fix broken locking
+    - irqchip/nvic: Release nvic_base upon failure
+    - bfq: fix use-after-free in bfq_dispatch_request
+    - ACPICA: Avoid walking the ACPI Namespace if it is not there
+    - lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
+    - Revert "Revert "block, bfq: honor already-setup queue merges""
+    - ACPI/APEI: Limit printable size of BERT table data
+    - PM: core: keep irq flags in device_pm_check_callbacks()
+    - spi: tegra20: Use of_device_get_match_data()
+    - ext4: don't BUG if someone dirty pages without asking ext4 first
+    - ntfs: add sanity check on allocation size
+    - video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
+    - video: fbdev: w100fb: Reset global state
+    - video: fbdev: cirrusfb: check pixclock to avoid divide by zero
+    - video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
+    - ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
+    - ARM: dts: bcm2837: Add the missing L1/L2 cache information
+    - ASoC: madera: Add dependencies on MFD
+    - video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
+    - video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of
+      snprintf()
+    - video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
+    - ASoC: soc-core: skip zero num_dai component in searching dai name
+    - media: cx88-mpeg: clear interrupt status register before streaming video
+    - ARM: tegra: tamonten: Fix I2C3 pad setting
+    - ARM: mmp: Fix failure to remove sram device
+    - video: fbdev: sm712fb: Fix crash in smtcfb_write()
+    - media: Revert "media: em28xx: add missing em28xx_close_extension"
+    - media: hdpvr: initialize dev->worker at hdpvr_register_videodev
+    - mmc: host: Return an error when ->enable_sdio_irq() ops is missing
+    - ALSA: hda/realtek: Add alc256-samsung-headphone fixup
+    - powerpc/lib/sstep: Fix 'sthcx' instruction
+    - powerpc/lib/sstep: Fix build errors with newer binutils
+    - powerpc: Fix build errors with newer binutils
+    - scsi: qla2xxx: Fix stuck session in gpdb
+    - scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
+    - scsi: qla2xxx: Fix warning for missing error code
+    - scsi: qla2xxx: Fix device reconnect in loop topology
+    - scsi: qla2xxx: Add devids and conditionals for 28xx
+    - scsi: qla2xxx: Check for firmware dump already collected
+    - scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
+    - scsi: qla2xxx: Fix disk failure to rediscover
+    - scsi: qla2xxx: Fix incorrect reporting of task management failure
+    - scsi: qla2xxx: Fix hang due to session stuck
+    - scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
+    - scsi: qla2xxx: Fix N2N inconsistent PLOGI
+    - scsi: qla2xxx: Reduce false trigger to login
+    - scsi: qla2xxx: Use correct feature type field during RFF_ID processing
+    - KVM: Prevent module exit until all VMs are freed
+    - KVM: x86: fix sending PV IPI
+    - ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
+    - ubifs: rename_whiteout: Fix double free for whiteout_ui->data
+    - ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
+    - ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
+    - ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
+    - ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
+    - ubifs: rename_whiteout: correct old_dir size computing
+    - XArray: Fix xas_create_range() when multi-order entry present
+    - can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
+    - can: mcba_usb: properly check endpoint type
+    - XArray: Update the LRU list in xas_split()
+    - rtc: check if __rtc_read_time was successful
+    - gfs2: Make sure FITRIM minlen is rounded up to fs block size
+    - net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
+    - pinctrl: pinconf-generic: Print arguments for bias-pull-*
+    - pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
+    - pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
+    - ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
+    - ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
+    - ARM: iop32x: offset IRQ numbers by 1
+    - ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
+    - powerpc/kasan: Fix early region not updated correctly
+    - ASoC: soc-compress: Change the check for codec_dai
+    - mm/mmap: return 1 from stack_guard_gap __setup() handler
+    - mm/memcontrol: return 1 from cgroup.memory __setup() handler
+    - mm/usercopy: return 1 from hardened_usercopy __setup() handler
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - dt-bindings: mtd: nand-controller: Fix the reg property description
+    - dt-bindings: mtd: nand-controller: Fix a comment in the examples
+    - dt-bindings: spi: mxic: The interrupt property is not mandatory
+    - ubi: fastmap: Return error code if memory allocation fails in add_aeb()
+    - ASoC: topology: Allow TLV control to be either read or write
+    - ARM: dts: spear1340: Update serial node properties
+    - ARM: dts: spear13xx: Update SPI dma properties
+    - um: Fix uml_mconsole stop/go
+    - openvswitch: Fixed nd target mask field in the flow dump.
+    - KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
+    - KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
+    - ubifs: Rectify space amount budget for mkdir/tmpfile operations
+    - rtc: wm8350: Handle error for wm8350_register_irq
+    - riscv module: remove (NOLOAD)
+    - ARM: 9187/1: JIVE: fix return value of __setup handler
+    - KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
+    - drm: Add orientation quirk for GPD Win Max
+    - ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
+    - drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
+    - ptp: replace snprintf with sysfs_emit
+    - powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
+    - bpf: Make dst_port field in struct bpf_sock 16-bit wide
+    - scsi: mvsas: Replace snprintf() with sysfs_emit()
+    - scsi: bfa: Replace snprintf() with sysfs_emit()
+    - power: supply: axp20x_battery: properly report current when discharging
+    - ipv6: make mc_forwarding atomic
+    - powerpc: Set crashkernel offset to mid of RMA region
+    - drm/amdgpu: Fix recursive locking warning
+    - PCI: aardvark: Fix support for MSI interrupts
+    - iommu/arm-smmu-v3: fix event handling soft lockup
+    - usb: ehci: add pci device support for Aspeed platforms
+    - PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
+    - power: supply: axp288-charger: Set Vhold to 4.4V
+    - ipv4: Invalidate neighbour for broadcast address upon address addition
+    - dm ioctl: prevent potential spectre v1 gadget
+    - drm/amdkfd: make CRAT table missing message informational only
+    - scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
+    - scsi: aha152x: Fix aha152x_setup() __setup handler return value
+    - net/smc: correct settings of RMB window update limit
+    - mips: ralink: fix a refcount leak in ill_acc_of_setup()
+    - macvtap: advertise link netns via netlink
+    - tuntap: add sanity checks about msg_controllen in sendmsg
+    - bnxt_en: Eliminate unintended link toggle during FW reset
+    - MIPS: fix fortify panic when copying asm exception handlers
+    - scsi: libfc: Fix use after free in fc_exch_abts_resp()
+    - usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
+    - xtensa: fix DTC warning unit_address_format
+    - Bluetooth: Fix use after free in hci_send_acl
+    - netlabel: fix out-of-bounds memory accesses
+    - init/main.c: return 1 from handled __setup() functions
+    - minix: fix bug when opening a file with O_DIRECT
+    - clk: si5341: fix reported clk_rate when output divider is 2
+    - w1: w1_therm: fixes w1_seq for ds28ea00 sensors
+    - NFSv4: Protect the state recovery thread against direct reclaim
+    - xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
+    - clk: Enforce that disjoints limits are invalid
+    - SUNRPC/call_alloc: async tasks mustn't block waiting for memory
+    - NFS: swap IO handling is slightly different for O_DIRECT IO
+    - NFS: swap-out must always use STABLE writes.
+    - serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()
+    - virtio_console: eliminate anonymous module_init & module_exit
+    - jfs: prevent NULL deref in diFree
+    - SUNRPC: Fix socket waits for write buffer space
+    - parisc: Fix CPU affinity for Lasi, WAX and Dino chips
+    - parisc: Fix patch code locking and flushing
+    - mm: fix race between MADV_FREE reclaim and blkdev direct IO read
+    - KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
+    - drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
+    - Drivers: hv: vmbus: Fix potential crash on module unload
+    - scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
+    - net/tls: fix slab-out-of-bounds bug in decrypt_internal
+    - net: ipv4: fix route with nexthop object delete warning
+    - net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
+    - drm/imx: Fix memory leak in imx_pd_connector_get_modes
+    - bnxt_en: reserve space inside receive page for skb_shared_info
+    - IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
+    - dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
+    - ipv6: Fix stats accounting in ip6_pkt_drop
+    - net: openvswitch: don't send internal clone attribute to the userspace.
+    - rxrpc: fix a race in rxrpc_exit_net()
+    - qede: confirm skb is allocated before using
+    - spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
+    - bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
+    - drbd: Fix five use after free bugs in get_initial_state
+    - SUNRPC: Handle ENOMEM in call_transmit_status()
+    - SUNRPC: Handle low memory situations in call_status()
+    - perf tools: Fix perf's libperf_print callback
+    - perf session: Remap buf if there is no space for event
+    - Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
+    - mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is
+      complete
+    - lz4: fix LZ4_decompress_safe_partial read out of bound
+    - mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
+    - mm/mempolicy: fix mpol_new leak in shared_policy_replace
+    - x86/pm: Save the MSR validity status at context setup
+    - x86/speculation: Restore speculation related MSRs during S3 resume
+    - btrfs: fix qgroup reserve overflow the qgroup limit
+    - arm64: patch_text: Fixup last cpu should be master
+    - ata: sata_dwc_460ex: Fix crash due to OOB write
+    - perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
+    - irqchip/gic-v3: Fix GICR_CTLR.RWP polling
+    - tools build: Filter out options and warnings not supported by clang
+    - tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
+    - dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
+    - mmc: mmci_sdmmc: Replace sg_dma_xxx macros
+    - mmc: mmci: stm32: correctly check all elements of sg list
+    - mm: don't skip swap entry even if zap_details specified
+    - arm64: module: remove (NOLOAD) from linker script
+    - mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
+    - drm/amdkfd: add missing void argument to function kgd2kfd_init
+    - drm/amdkfd: Fix -Wstrict-prototypes from
+      amdgpu_amdkfd_gfx_10_0_get_functions()
+    - cgroup: Use open-time credentials for process migraton perm checks
+    - cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
+    - cgroup: Use open-time cgroup namespace for process migration perm checks
+    - selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
+    - selftests: cgroup: Test open-time credential usage for migration checks
+    - selftests: cgroup: Test open-time cgroup namespace usage for migration
+      checks
+    - cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
+    - ACPI: processor idle: Check for architectural support for LPI
+    - Linux 5.4.189
+
+  * Focal update: v5.4.188 upstream stable release (LP: #1971496)
+    - nfsd: cleanup nfsd_file_lru_dispose()
+    - nfsd: Containerise filecache laundrette
+    - net: ipv6: fix skb_over_panic in __ip6_append_data
+    - tpm: Fix error handling in async work
+    - staging: fbtft: fb_st7789v: reset display before initialization
+    - thermal: int340x: fix memory leak in int3400_notify()
+    - llc: fix netdevice reference leaks in llc_ui_bind()
+    - ALSA: pcm: Add stream lock during PCM reset ioctl operations
+    - ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
+    - ALSA: cmipci: Restore aux vol on suspend/resume
+    - ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
+    - drivers: net: xgene: Fix regression in CRC stripping
+    - ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
+    - ALSA: oss: Fix PCM OSS buffer allocation overflow
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
+    - ALSA: hda/realtek: Add quirk for ASUS GA402
+    - ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
+    - ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
+    - ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
+    - crypto: qat - disable registration of algorithms
+    - rcu: Don't deboost before reporting expedited quiescent state
+    - mac80211: fix potential double free on mesh join
+    - tpm: use try_get_ops() in tpm-space.c
+    - nds32: fix access_ok() checks in get/put_user
+    - llc: only change llc->dev when bind() succeeds
+    - Linux 5.4.188
+
+  * Focal update: v5.4.187 upstream stable release (LP: #1971493)
+    - crypto: qcom-rng - ensure buffer for generate is completely filled
+    - ocfs2: fix crash when initialize filecheck kobj fails
+    - efi: fix return value of __setup handlers
+    - net: phy: marvell: Fix invalid comparison in the resume and suspend
+      functions
+    - net/packet: fix slab-out-of-bounds access in packet_recvmsg()
+    - atm: eni: Add check for dma_map_single
+    - hv_netvsc: Add check for kvmalloc_array
+    - drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
+    - net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
+    - net: dsa: Add missing of_node_put() in dsa_port_parse_of
+    - arm64: fix clang warning about TRAMP_VALIAS
+    - usb: gadget: rndis: prevent integer overflow in rndis_set_response()
+    - usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
+    - usb: usbtmc: Fix bug in pipe direction for control transfers
+    - Input: aiptek - properly check endpoint type
+    - perf symbols: Fix symbol size calculation condition
+    - Linux 5.4.187
+
+  * Focal update: v5.4.186 upstream stable release (LP: #1969678)
+    - Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
+    - sctp: fix the processing for INIT chunk
+    - xfrm: Check if_id in xfrm_migrate
+    - xfrm: Fix xfrm migrate issues when address family changes
+    - arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity
+    - arm64: dts: rockchip: reorder rk3399 hdmi clocks
+    - arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"
+    - ARM: dts: rockchip: reorder rk322x hmdi clocks
+    - ARM: dts: rockchip: fix a typo on rk3288 crypto-controller
+    - mac80211: refuse aggregations sessions before authorized
+    - MIPS: smp: fill in sibling and core maps earlier
+    - ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE
+    - can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when
+      fully ready
+    - atm: firestream: check the return value of ioremap() in fs_init()
+    - iwlwifi: don't advertise TWT support
+    - drm/vrr: Set VRR capable prop only if it is attached to connector
+    - nl80211: Update bss channel on channel switch for P2P_CLIENT
+    - tcp: make tcp_read_sock() more robust
+    - sfc: extend the locking on mcdi->seqno
+    - kselftest/vm: fix tests build with old libc
+    - fixup for "arm64 entry: Add macro for reading symbol address from the
+      trampoline"
+    - Linux 5.4.186
+
+  * Focal update: v5.4.185 upstream stable release (LP: #1969672)
+    - clk: qcom: gdsc: Add support to update GDSC transition delay
+    - arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias
+    - virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
+    - net: qlogic: check the return value of dma_alloc_coherent() in
+      qed_vf_hw_prepare()
+    - qed: return status of qed_iov_get_link
+    - drm/sun4i: mixer: Fix P010 and P210 format numbers
+    - ARM: dts: aspeed: Fix AST2600 quad spi group
+    - ethernet: Fix error handling in xemaclite_of_probe
+    - net: ethernet: ti: cpts: Handle error for clk_enable
+    - net: ethernet: lpc_eth: Handle error for clk_enable
+    - ax25: Fix NULL pointer dereference in ax25_kill_by_device
+    - net/mlx5: Fix size field in bufferx_reg struct
+    - net/mlx5: Fix a race on command flush flow
+    - NFC: port100: fix use-after-free in port100_send_complete
+    - selftests: pmtu.sh: Kill tcpdump processes launched by subshell.
+    - gpio: ts4900: Do not set DAT and OE together
+    - gianfar: ethtool: Fix refcount leak in gfar_get_ts_info
+    - net: phy: DP83822: clear MISR2 register to disable interrupts
+    - sctp: fix kernel-infoleak for SCTP sockets
+    - net: bcmgenet: Don't claim WOL when its not available
+    - net-sysfs: add check for netdevice being present to speed_show
+    - Revert "xen-netback: remove 'hotplug-status' once it has served its purpose"
+    - Revert "xen-netback: Check for hotplug-status existence before watching"
+    - ipv6: prevent a possible race condition with lifetimes
+    - tracing: Ensure trace buffer is at least 4096 bytes large
+    - selftest/vm: fix map_fixed_noreplace test failure
+    - selftests/memfd: clean up mapping in mfd_fail_write
+    - ARM: Spectre-BHB: provide empty stub for non-config
+    - fuse: fix pipe buffer lifetime for direct_io
+    - staging: gdm724x: fix use after free in gdm_lte_rx()
+    - net: macb: Fix lost RX packet wakeup race in NAPI receive
+    - mmc: meson: Fix usage of meson_mmc_post_req()
+    - riscv: Fix auipc+jalr relocation range checks
+    - arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
+    - virtio: unexport virtio_finalize_features
+    - virtio: acknowledge all features before access
+    - ARM: fix Thumb2 regression with Spectre BHB
+    - ext4: add check to prevent attempting to resize an fs with sparse_super2
+    - x86/cpufeatures: Mark two free bits in word 3
+    - x86/cpu: Add hardware-enforced cache coherency as a CPUID feature
+    - x86/mm/pat: Don't flush cache if hardware enforces cache coherency across
+      encryption domnains
+    - KVM: SVM: Don't flush cache if hardware enforces cache coherency across
+      encryption domains
+    - Linux 5.4.185
+
+  * Focal update: v5.4.184 upstream stable release (LP: #1969242)
+    - arm/arm64: Provide a wrapper for SMCCC 1.1 calls
+    - arm/arm64: smccc/psci: add arm_smccc_1_1_get_conduit()
+    - ARM: report Spectre v2 status through sysfs
+    - ARM: early traps initialisation
+    - ARM: use LOADADDR() to get load address of sections
+    - [Config] updateconfigs for HARDEN_BRANCH_HISTORY
+    - ARM: Spectre-BHB workaround
+    - ARM: include unprivileged BPF status in Spectre V2 reporting
+    - ARM: fix build error when BPF_SYSCALL is disabled
+    - ARM: fix co-processor register typo
+    - ARM: Do not use NOCROSSREFS directive with ld.lld
+    - ARM: fix build warning in proc-v7-bugs.c
+    - xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
+    - xen/grant-table: add gnttab_try_end_foreign_access()
+    - xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/netfront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/gntalloc: don't use gnttab_query_foreign_access()
+    - xen: remove gnttab_query_foreign_access()
+    - xen/9p: use alloc/free_pages_exact()
+    - xen/pvcalls: use alloc/free_pages_exact()
+    - xen/gnttab: fix gnttab_end_foreign_access() without page specified
+    - xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
+    - Linux 5.4.184
+
+  * Focal update: v5.4.183 upstream stable release (LP: #1969239)
+    - mac80211_hwsim: report NOACK frames in tx_status
+    - mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
+    - i2c: bcm2835: Avoid clock stretching timeouts
+    - ASoC: rt5668: do not block workqueue if card is unbound
+    - ASoC: rt5682: do not block workqueue if card is unbound
+    - Input: clear BTN_RIGHT/MIDDLE on buttonpads
+    - cifs: fix double free race when mount fails in cifs_get_root()
+    - dmaengine: shdma: Fix runtime PM imbalance on error
+    - i2c: cadence: allow COMPILE_TEST
+    - i2c: qup: allow COMPILE_TEST
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
+    - usb: gadget: don't release an existing dev->buf
+    - usb: gadget: clear related members when goto fail
+    - ata: pata_hpt37x: fix PCI clock detection
+    - ALSA: intel_hdmi: Fix reference to PCM buffer address
+    - ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
+    - xfrm: fix MTU regression
+    - netfilter: fix use-after-free in __nf_register_net_hook()
+    - xfrm: enforce validity of offload input flags
+    - netfilter: nf_queue: don't assume sk is full socket
+    - netfilter: nf_queue: fix possible use-after-free
+    - batman-adv: Request iflink once in batadv-on-batadv check
+    - batman-adv: Request iflink once in batadv_get_real_netdevice
+    - batman-adv: Don't expect inter-netns unique iflink indices
+    - net: dcb: flush lingering app table entries for unregistered devices
+    - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
+    - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
+    - block: Fix fsync always failed if once failed
+    - xen/netfront: destroy queues before real_num_tx_queues is zeroed
+    - sched/topology: Make sched_init_numa() use a set for the deduplicating sort
+    - sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
+    - ia64: ensure proper NUMA distance and possible map initialization
+    - mac80211: fix forwarded mesh frames AC & queue selection
+    - net: stmmac: fix return value of __setup handler
+    - iavf: Fix missing check for running netdev
+    - net: sxgbe: fix return value of __setup handler
+    - net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
+    - ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
+    - efivars: Respect "block" flag in efivar_entry_set_safe()
+    - firmware: arm_scmi: Remove space in MODULE_ALIAS name
+    - ASoC: cs4265: Fix the duplicated control name
+    - can: gs_usb: change active_channels's type from atomic_t to u8
+    - arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
+    - igc: igc_read_phy_reg_gpy: drop premature return
+    - ARM: Fix kgdb breakpoint for Thumb2
+    - ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
+    - igc: igc_write_phy_reg_gpy: drop premature return
+    - ibmvnic: free reset-work-item when flushing
+    - memfd: fix F_SEAL_WRITE after shmem huge page allocated
+    - soc: fsl: qe: Check of ioremap return value
+    - net: chelsio: cxgb3: check the return value of pci_find_capability()
+    - nl80211: Handle nla_memdup failures in handle_nan_filter
+    - Input: elan_i2c - move regulator_[en|dis]able() out of
+      elan_[en|dis]able_power()
+    - Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
+    - HID: add mapping for KEY_DICTATE
+    - HID: add mapping for KEY_ALL_APPLICATIONS
+    - tracing/histogram: Fix sorting on old "cpu" value
+    - tracing: Fix return value of __setup handlers
+    - btrfs: fix lost prealloc extents beyond eof after full fsync
+    - btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
+    - btrfs: add missing run of delayed items after unlink during log replay
+    - Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
+    - net: dcb: disable softirqs in dcbnl_flush_dev()
+    - hamradio: fix macro redefine warning
+    - Linux 5.4.183
+
+  * Focal update: v5.4.182 upstream stable release (LP: #1969236)
+    - cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
+    - clk: jz4725b: fix mmc0 clock gating
+    - vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
+    - parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
+    - parisc/unaligned: Fix ldw() and stw() unalignment handlers
+    - drm/amdgpu: disable MMHUB PG for Picasso
+    - sr9700: sanity check for packet length
+    - USB: zaurus: support another broken Zaurus
+    - x86/fpu: Correct pkru/xstate inconsistency
+    - tee: export teedev_open() and teedev_close_context()
+    - optee: use driver internal tee_context for some rpc
+    - lan743x: fix deadlock in lan743x_phy_link_status_change()
+    - ping: remove pr_err from ping_lookup
+    - perf data: Fix double free in perf_session__delete()
+    - bpf: Do not try bpf_msg_push_data with len 0
+    - net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
+    - tipc: Fix end of loop tests for list_for_each_entry()
+    - gso: do not skip outer ip header in case of ipip and net_failover
+    - openvswitch: Fix setting ipv6 fields causing hw csum failure
+    - drm/edid: Always set RGB444
+    - net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
+    - net: ll_temac: check the return value of devm_kmalloc()
+    - net: Force inlining of checksum functions in net/checksum.h
+    - nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
+    - netfilter: nf_tables: fix memory leak during stateful obj update
+    - net/mlx5: Fix possible deadlock on rule deletion
+    - net/mlx5: Fix wrong limitation of metadata match on ecpf
+    - spi: spi-zynq-qspi: Fix a NULL pointer dereference in
+      zynq_qspi_exec_mem_op()
+    - configfs: fix a race in configfs_{,un}register_subsystem()
+    - RDMA/ib_srp: Fix a deadlock
+    - tracing: Have traceon and traceoff trigger honor the instance
+    - iio: adc: men_z188_adc: Fix a resource leak in an error handling path
+    - iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
+    - iio: Fix error handling for PM
+    - ata: pata_hpt37x: disable primary channel on HPT371
+    - Revert "USB: serial: ch341: add new Product ID for CH341A"
+    - usb: gadget: rndis: add spinlock for rndis response list
+    - tracefs: Set the group ownership in apply_options() not parse_options()
+    - USB: serial: option: add support for DW5829e
+    - USB: serial: option: add Telit LE910R1 compositions
+    - usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
+    - usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
+    - xhci: re-initialize the HC during resume if HCE was set
+    - xhci: Prevent futile URB re-submissions due to incorrect return value.
+    - tty: n_gsm: fix encoding of control signal octet bit DV
+    - tty: n_gsm: fix proper link termination after failed open
+    - tty: n_gsm: fix NULL pointer access due to DLCI release
+    - gpio: tegra186: Fix chip_data type confusion
+    - Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of
+      DEVINIT/PREOS/ACR"
+    - memblock: use kfree() to release kmalloced memblock regions
+    - fget: clarify and improve __fget_files() implementation
+    - Linux 5.4.182
+
+  * CVE-2022-28390
+    - can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 20 May 2022 15:31:22 +0200
+
+linux (5.4.0-113.127) focal; urgency=medium
+
+  * focal/linux: 5.4.0-113.127 -proposed tracker (LP: #1973980)
+
+  * CVE-2022-29581
+    - net/sched: cls_u32: fix netns refcount changes in u32_change()
+
+  * CVE-2022-1116
+    - io_uring: fix fs->users overflow
+
+  * ext4: limit length to bitmap_maxbytes (LP: #1972281)
+    - ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
+
+  * Unprivileged users may use PTRACE_SEIZE to set PTRACE_O_SUSPEND_SECCOMP
+    option (LP: #1972740)
+    - ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 18 May 2022 16:07:54 +0200
+
+linux (5.4.0-110.124) focal; urgency=medium
+
+  * focal/linux: 5.4.0-110.124 -proposed tracker (LP: #1969053)
+
+  * net/mlx5e: Fix page DMA map/unmap attributes (LP: #1967292)
+    - net/mlx5e: Fix page DMA map/unmap attributes
+
+  * xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
+    (LP: #1966803)
+    - xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
+
+  * LRMv6: add multi-architecture support (LP: #1968774)
+    - [Packaging] resync dkms-build{,--nvidia-N}
+
+  * xfrm interface cannot be changed anymore (LP: #1968591)
+    - xfrm: fix the if_id check in changelink
+
+  * Use kernel-testing repo from launchpad for ADT tests (LP: #1968016)
+    - [Debian] Use kernel-testing repo from launchpad
+
+  * vmx_ldtr_test in ubuntu_kvm_unit_tests failed (FAIL: Expected 0 for L1 LDTR
+    selector (got 50)) (LP: #1956315)
+    - KVM: nVMX: Set LDTR to its architecturally defined value on nested VM-Exit
+
+  * [SRU][Regression] Revert "PM: ACPI: reboot: Use S5 for reboot" which causes
+    Bus Fatal Error when rebooting system with BCM5720 NIC (LP: #1917471)
+    - Revert "PM: ACPI: reboot: Use S5 for reboot"
+
+  * Focal update: v5.4.181 upstream stable release (LP: #1967582)
+    - Makefile.extrawarn: Move -Wunaligned-access to W=1
+    - HID:Add support for UGTABLET WP5540
+    - Revert "svm: Add warning message for AVIC IPI invalid target"
+    - serial: parisc: GSC: fix build when IOSAPIC is not set
+    - parisc: Drop __init from map_pages declaration
+    - parisc: Fix data TLB miss in sba_unmap_sg
+    - parisc: Fix sglist access in ccio-dma.c
+    - btrfs: send: in case of IO error log it
+    - platform/x86: ISST: Fix possible circular locking dependency detected
+    - selftests: rtc: Increase test timeout so that all tests run
+    - net: ieee802154: at86rf230: Stop leaking skb's
+    - selftests/zram: Skip max_comp_streams interface on newer kernel
+    - selftests/zram01.sh: Fix compression ratio calculation
+    - selftests/zram: Adapt the situation that /dev/zram0 is being used
+    - ax25: improve the incomplete fix to avoid UAF and NPD bugs
+    - vfs: make freeze_super abort when sync_filesystem returns error
+    - quota: make dquot_quota_sync return errors from ->sync_fs
+    - nvme: fix a possible use-after-free in controller reset during load
+    - nvme-tcp: fix possible use-after-free in transport error_recovery work
+    - nvme-rdma: fix possible use-after-free in transport error_recovery work
+    - drm/amdgpu: fix logic inversion in check
+    - Revert "module, async: async_synchronize_full() on module init iff async is
+      used"
+    - ftrace: add ftrace_init_nop()
+    - module/ftrace: handle patchable-function-entry
+    - arm64: module: rework special section handling
+    - arm64: module/ftrace: intialize PLT at load time
+    - iwlwifi: fix use-after-free
+    - drm/radeon: Fix backlight control on iMac 12,1
+    - ext4: check for out-of-order index extents in ext4_valid_extent_entries()
+    - ext4: check for inconsistent extents between index and leaf block
+    - ext4: prevent partial update of the extent blocks
+    - taskstats: Cleanup the use of task->exit_code
+    - dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
+    - vsock: remove vsock from connected table when connect is interrupted by a
+      signal
+    - mmc: block: fix read single on recovery logic
+    - iwlwifi: pcie: fix locking when "HW not ready"
+    - iwlwifi: pcie: gen2: fix locking when "HW not ready"
+    - netfilter: nft_synproxy: unregister hooks on init error path
+    - net: dsa: lan9303: fix reset on probe
+    - net: ieee802154: ca8210: Fix lifs/sifs periods
+    - ping: fix the dif and sdif check in ping_lookup
+    - bonding: force carrier update when releasing slave
+    - drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
+    - bonding: fix data-races around agg_select_timer
+    - libsubcmd: Fix use-after-free for realloc(..., 0)
+    - ALSA: hda: Fix regression on forced probe mask option
+    - ALSA: hda: Fix missing codec probe on Shenker Dock 15
+    - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
+    - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
+    - powerpc/lib/sstep: fix 'ptesync' build error
+    - mtd: rawnand: gpmi: don't leak PM reference in error path
+    - block/wbt: fix negative inflight counter when remove scsi device
+    - NFS: LOOKUP_DIRECTORY is also ok with symlinks
+    - NFS: Do not report writeback errors in nfs_getattr()
+    - mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
+    - mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
+    - scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
+    - EDAC: Fix calculation of returned address and next offset in
+      edac_align_ptr()
+    - net: sched: limit TC_ACT_REPEAT loops
+    - dmaengine: sh: rcar-dmac: Check for error num after setting mask
+    - copy_process(): Move fd_install() out of sighand->siglock critical section
+    - i2c: brcmstb: fix support for DSL and CM variants
+    - Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
+    - KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
+    - ARM: OMAP2+: hwmod: Add of_node_put() before break
+    - ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
+    - irqchip/sifive-plic: Add missing thead,c900-plic match string
+    - netfilter: conntrack: don't refresh sctp entries in closed state
+    - arm64: dts: meson-gx: add ATF BL32 reserved-memory region
+    - arm64: dts: meson-g12: add ATF BL32 reserved-memory region
+    - arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
+    - kconfig: let 'shell' return enough output for deep path names
+    - ata: libata-core: Disable TRIM on M88V29
+    - drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+    - tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+    - net: usb: qmi_wwan: Add support for Dell DW5829e
+    - net: macb: Align the dma and coherent dma masks
+    - kconfig: fix failing to generate auto.conf
+    - Linux 5.4.181
+
+  * Focal update: v5.4.180 upstream stable release (LP: #1966118)
+    - integrity: check the return value of audit_log_start()
+    - ima: Remove ima_policy file before directory
+    - ima: Allow template selection with ima_template[_fmt]= after ima_hash=
+    - ima: Do not print policy rule with inactive LSM labels
+    - mmc: sdhci-of-esdhc: Check for error num after setting mask
+    - net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs
+    - net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs
+    - NFS: Fix initialisation of nfs_client cl_flags field
+    - NFSD: Clamp WRITE offsets
+    - NFSD: Fix offset type in I/O trace points
+    - NFSv4 only print the label when its queried
+    - nfs: nfs4clinet: check the return value of kstrdup()
+    - NFSv4.1: Fix uninitialised variable in devicenotify
+    - NFSv4 remove zero number of fs_locations entries error check
+    - NFSv4 expose nfs_parse_server_name function
+    - drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer
+    - net: sched: Clarify error message when qdisc kind is unknown
+    - scsi: target: iscsi: Make sure the np under each tpg is unique
+    - scsi: qedf: Fix refcount issue when LOGO is received during TMF
+    - scsi: myrs: Fix crash in error case
+    - PM: hibernate: Remove register_nosave_region_late()
+    - usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
+    - net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()
+    - KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER
+    - riscv: fix build with binutils 2.38
+    - ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
+    - ARM: socfpga: fix missing RESET_CONTROLLER
+    - nvme-tcp: fix bogus request completion when failing to send AER
+    - ACPI/IORT: Check node revision for PMCG resources
+    - PM: s2idle: ACPI: Fix wakeup interrupts handling
+    - net: bridge: fix stale eth hdr pointer in br_dev_xmit
+    - perf probe: Fix ppc64 'perf probe add events failed' case
+    - ARM: dts: meson: Fix the UART compatible strings
+    - staging: fbtft: Fix error path in fbtft_driver_module_init()
+    - ARM: dts: imx6qdl-udoo: Properly describe the SD card detect
+    - usb: f_fs: Fix use-after-free for epfile
+    - misc: fastrpc: avoid double fput() on failed usercopy
+    - ixgbevf: Require large buffers for build_skb on 82599VF
+    - bonding: pair enable_port with slave_arr_updates
+    - ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path
+    - nfp: flower: fix ida_idx not being released
+    - net: do not keep the dst cache when uncloning an skb dst and its metadata
+    - net: fix a memleak when uncloning an skb dst and its metadata
+    - veth: fix races around rq->rx_notify_masked
+    - net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE
+    - tipc: rate limit warning for received illegal binding update
+    - net: amd-xgbe: disable interrupts during pci removal
+    - vt_ioctl: fix array_index_nospec in vt_setactivate
+    - vt_ioctl: add array_index_nospec to VT_ACTIVATE
+    - n_tty: wake up poll(POLLRDNORM) on receiving data
+    - eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX
+    - net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup
+    - usb: ulpi: Move of_node_put to ulpi_dev_release
+    - usb: ulpi: Call of_node_put correctly
+    - usb: dwc3: gadget: Prevent core from processing stale TRBs
+    - usb: gadget: udc: renesas_usb3: Fix host to USB_ROLE_NONE transition
+    - USB: gadget: validate interface OS descriptor requests
+    - usb: gadget: rndis: check size of RNDIS_MSG_SET command
+    - usb: gadget: f_uac2: Define specific wTerminalType
+    - USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320
+    - USB: serial: option: add ZTE MF286D modem
+    - USB: serial: ch341: add support for GW Instek USB2.0-Serial devices
+    - USB: serial: cp210x: add NCR Retail IO box id
+    - USB: serial: cp210x: add CPI Bulk Coin Recycler id
+    - seccomp: Invalidate seccomp mode to catch death failures
+    - hwmon: (dell-smm) Speed up setting of fan speed
+    - scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled
+    - perf: Fix list corruption in perf_cgroup_switch()
+    - Linux 5.4.180
+
+  * Focal update: v5.4.179 upstream stable release (LP: #1965591)
+    - moxart: fix potential use-after-free on remove path
+    - Linux 5.4.179
+
+  * CVE-2020-27820
+    - drm/nouveau: Add a dedicated mutex for the clients list
+    - drm/nouveau: clean up all clients on device removal
+
+  * CVE-2022-1016
+    - netfilter: nf_tables: initialize registers in nft_do_chain()
+
+  * CVE-2022-27223
+    - USB: gadget: validate endpoint index for xilinx udc
+
+  * CVE-2022-26490
+    - nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
+
+  * CVE-2021-26401
+    - x86/speculation: Use generic retpoline by default on AMD
+    - x86/speculation: Update link to AMD speculation whitepaper
+    - x86/speculation: Warn about Spectre v2 LFENCE mitigation
+    - x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
+
+  * CVE-2022-0001
+    - x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation
+      reporting
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 14 Apr 2022 14:19:29 +0200
+
+linux (5.4.0-109.123) focal; urgency=medium
+
+  * focal/linux: 5.4.0-109.123 -proposed tracker (LP: #1968290)
+
+  * USB devices not detected during boot on USB 3.0 hubs (LP: #1968210)
+    - SAUCE: Revert "Revert "xhci: Set HCD flag to defer primary roothub
+      registration""
+    - SAUCE: Revert "Revert "usb: core: hcd: Add support for deferring roothub
+      registration""
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 08 Apr 2022 10:44:46 +0200
+
+linux (5.4.0-108.122) focal; urgency=medium
+
+  * focal/linux: 5.4.0-108.122 -proposed tracker (LP: #1966740)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5
+    - debian/dkms-versions -- update from kernel-versions (main/2022.03.21)
+
+  * Low RX performance for 40G Solarflare NICs (LP: #1964512)
+    - SAUCE: sfc: The size of the RX recycle ring should be more flexible
+
+  * [UBUNTU 20.04] KVM: Enable storage key checking for intercepted instruction
+    (LP: #1962831)
+    - selftests: kvm: add _vm_ioctl
+    - selftests: kvm: Introduce the TEST_FAIL macro
+    - KVM: selftests: Add GUEST_ASSERT variants to pass values to host
+    - KVM: s390: gaccess: Refactor gpa and length calculation
+    - KVM: s390: gaccess: Refactor access address range check
+    - KVM: s390: gaccess: Cleanup access to guest pages
+    - s390/uaccess: introduce bit field for OAC specifier
+    - s390/uaccess: fix compile error
+    - s390/uaccess: Add copy_from/to_user_key functions
+    - KVM: s390: Honor storage keys when accessing guest memory
+    - KVM: s390: handle_tprot: Honor storage keys
+    - KVM: s390: selftests: Test TEST PROTECTION emulation
+    - KVM: s390: Add optional storage key checking to MEMOP IOCTL
+    - KVM: s390: Add vm IOCTL for key checked guest absolute memory access
+    - KVM: s390: Rename existing vcpu memop functions
+    - KVM: s390: Add capability for storage key extension of MEM_OP IOCTL
+    - KVM: s390: Update api documentation for memop ioctl
+    - KVM: s390: Clarify key argument for MEM_OP in api docs
+    - KVM: s390: Add missing vm MEM_OP size check
+
+  * 【sec-0911】 fail to reset sec module (LP: #1943301)
+    - crypto: hisilicon/sec2 - Add workqueue for SEC driver.
+    - crypto: hisilicon/sec2 - update SEC initialization and reset
+
+  * Lots of hisi_qm zombie task slow down system after stress test
+    (LP: #1932117)
+    - crypto: hisilicon - Use one workqueue per qm instead of per qp
+
+  * Lots of hisi_qm zombie task slow down system after stress test
+    (LP: #1932117) // 【sec-0911】 fail to reset sec module (LP: #1943301)
+    - crypto: hisilicon - Unify hardware error init/uninit into QM
+
+  * [UBUNTU 20.04] Fix SIGP processing on KVM/s390 (LP: #1962578)
+    - KVM: s390: Simplify SIGP Set Arch handling
+    - KVM: s390: Add a routine for setting userspace CPU state
+
+  * Move virtual graphics drivers from linux-modules-extra to linux-modules
+    (LP: #1960633)
+    - [Packaging] Move VM DRM drivers into modules
+
+  * Focal update: v5.4.178 upstream stable release (LP: #1964634)
+    - audit: improve audit queue handling when "audit=1" on cmdline
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw()
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx()
+    - ALSA: usb-audio: Simplify quirk entries with a macro
+    - ALSA: hda/realtek: Add quirk for ASUS GU603
+    - ALSA: hda/realtek: Add missing fixup-model entry for Gigabyte X570 ALC1220
+      quirks
+    - ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer
+      chipset)
+    - ALSA: hda/realtek: Fix silent output on Gigabyte X570 Aorus Xtreme after
+      reboot from Windows
+    - btrfs: fix deadlock between quota disable and qgroup rescan worker
+    - drm/nouveau: fix off by one in BIOS boundary checking
+    - mm/kmemleak: avoid scanning potential huge holes
+    - block: bio-integrity: Advance seed correctly for larger interval sizes
+    - memcg: charge fs_context and legacy_fs_context
+    - IB/rdmavt: Validate remote_addr during loopback atomic tests
+    - RDMA/siw: Fix broken RDMA Read Fence/Resume logic.
+    - RDMA/mlx4: Don't continue event handler after memory allocation failure
+    - iommu/vt-d: Fix potential memory leak in intel_setup_irq_remapping()
+    - iommu/amd: Fix loop timeout issue in iommu_ga_log_enable()
+    - spi: bcm-qspi: check for valid cs before applying chip select
+    - spi: mediatek: Avoid NULL pointer crash in interrupt
+    - spi: meson-spicc: add IRQ check in meson_spicc_probe
+    - net: ieee802154: hwsim: Ensure proper channel selection at probe time
+    - net: ieee802154: mcr20a: Fix lifs/sifs periods
+    - net: ieee802154: ca8210: Stop leaking skb's
+    - net: ieee802154: Return meaningful error codes from the netlink helpers
+    - net: macsec: Verify that send_sci is on when setting Tx sci explicitly
+    - net: stmmac: dump gmac4 DMA registers correctly
+    - net: stmmac: ensure PTP time register reads are consistent
+    - drm/i915/overlay: Prevent divide by zero bugs in scaling
+    - ASoC: fsl: Add missing error handling in pcm030_fabric_probe
+    - ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period bytes
+    - ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name
+    - ASoC: max9759: fix underflow in speaker_gain_control_put()
+    - pinctrl: bcm2835: Fix a few error paths
+    - scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe
+    - nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client.
+    - selftests: futex: Use variable MAKE instead of make
+    - rtc: cmos: Evaluate century appropriate
+    - EDAC/altera: Fix deferred probing
+    - EDAC/xgene: Fix deferred probing
+    - ext4: fix error handling in ext4_restore_inline_data()
+    - cgroup/cpuset: Fix "suspicious RCU usage" lockdep warning
+    - Linux 5.4.178
+
+  * Focal update: v5.4.177 upstream stable release (LP: #1964628)
+    - PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
+    - psi: Fix uaf issue when psi trigger is destroyed while being polled
+    - ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
+    - net: amd-xgbe: ensure to reset the tx_timer_active flag
+    - net: amd-xgbe: Fix skb data length underflow
+    - rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
+    - cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask()
+    - af_packet: fix data-race in packet_setsockopt / packet_setsockopt
+    - Linux 5.4.177
+
+  * Focal update: v5.4.176 upstream stable release (LP: #1962345)
+    - s390/hypfs: include z/VM guests with access control group set
+    - scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP
+      devices
+    - udf: Restore i_lenAlloc when inode expansion fails
+    - udf: Fix NULL ptr deref when converting from inline format
+    - PM: wakeup: simplify the output logic of pm_show_wakelocks()
+    - tracing/histogram: Fix a potential memory leak for kstrdup()
+    - tracing: Don't inc err_log entry count if entry allocation fails
+    - fsnotify: fix fsnotify hooks in pseudo filesystems
+    - drm/etnaviv: relax submit size limits
+    - arm64: errata: Fix exec handling in erratum 1418040 workaround
+    - netfilter: nft_payload: do not update layer 4 checksum when mangling
+      fragments
+    - serial: 8250: of: Fix mapped region size when using reg-offset property
+    - serial: stm32: fix software flow control transfer
+    - tty: n_gsm: fix SW flow control encoding/handling
+    - tty: Add support for Brainboxes UC cards.
+    - usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
+    - usb: common: ulpi: Fix crash in ulpi_match()
+    - usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
+    - USB: core: Fix hang in usb_kill_urb by adding memory barriers
+    - usb: typec: tcpm: Do not disconnect while receiving VBUS off
+    - ucsi_ccg: Check DEV_INT bit only when starting CCG4
+    - net: sfp: ignore disabled SFP node
+    - powerpc/32: Fix boot failure with GCC latent entropy plugin
+    - i40e: Increase delay to 1 s after global EMP reset
+    - i40e: Fix issue when maximum queues is exceeded
+    - i40e: Fix queues reservation for XDP
+    - i40e: fix unsigned stat widths
+    - rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
+    - rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
+    - scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
+    - ipv6_tunnel: Rate limit warning messages
+    - net: fix information leakage in /proc/net/ptype
+    - hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
+    - hwmon: (lm90) Mark alert as broken for MAX6680
+    - ping: fix the sk_bound_dev_if match in ping_lookup
+    - ipv4: avoid using shared IP generator for connected sockets
+    - hwmon: (lm90) Reduce maximum conversion rate for G781
+    - NFSv4: Handle case where the lookup of a directory fails
+    - NFSv4: nfs_atomic_open() can race when looking up a non-regular file
+    - net-procfs: show net devices bound packet types
+    - drm/msm: Fix wrong size calculation
+    - drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
+    - drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
+    - ipv6: annotate accesses to fn->fn_sernum
+    - NFS: Ensure the server has an up to date ctime before hardlinking
+    - NFS: Ensure the server has an up to date ctime before renaming
+    - netfilter: conntrack: don't increment invalid counter on NF_REPEAT
+    - net: phy: broadcom: hook up soft_reset for BCM54616S
+    - phylib: fix potential use-after-free
+    - rxrpc: Adjust retransmission backoff
+    - hwmon: (lm90) Mark alert as broken for MAX6654
+    - ibmvnic: init ->running_cap_crqs early
+    - ibmvnic: don't spin in tasklet
+    - drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
+    - yam: fix a memory leak in yam_siocdevprivate()
+    - net: hns3: handle empty unknown interrupt for VF
+    - ipv4: raw: lock the socket in raw_bind()
+    - ipv4: tcp: send zero IPID in SYNACK messages
+    - ipv4: remove sparse error in ip_neigh_gw4()
+    - dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
+    - fsnotify: invalidate dcache before IN_DELETE event
+    - block: Fix wrong offset in bio_truncate()
+    - mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
+    - Linux 5.4.176
+
+  * Focal update: v5.4.175 upstream stable release (LP: #1962330)
+    - rcu: Tighten rcu_advance_cbs_nowake() checks
+    - pinctrl: bcm2835: Drop unused define
+    - pinctrl: bcm2835: Refactor platform data
+    - pinctrl: bcm2835: Add support for all GPIOs on BCM2711
+    - pinctrl: bcm2835: Match BCM7211 compatible string
+    - pinctrl: bcm2835: Add support for wake-up interrupts
+    - pinctrl: bcm2835: Change init order for gpio hogs
+    - ARM: dts: gpio-ranges property is now required
+    - mmc: sdhci-esdhc-imx: disable CMDQ support
+    - select: Fix indefinitely sleeping task in poll_schedule_timeout()
+    - Linux 5.4.175
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 29 Mar 2022 09:18:40 +0200
+
+linux (5.4.0-107.121) focal; urgency=medium
+
+  * focal/linux: 5.4.0-107.121 -proposed tracker (LP: #1966275)
+
+  * CVE-2022-27666
+    - esp: Fix possible buffer overflow in ESP transformation
+
+  * CVE-2022-1055
+    - net: sched: fix use-after-free in tc_new_tfilter()
+
+  * Pick fixup from v5.4.176 upstream stable release to address cert
+    failure with clock jitter test in NUC7i3DNHE (LP: #1964204)
+    - Bluetooth: refactor malicious adv data check
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 24 Mar 2022 16:48:48 +0100
+
+linux (5.4.0-105.119) focal; urgency=medium
+
+  * CVE-2022-0847
+    - lib/iov_iter: initialize "flags" in new pipe_buffer
+
+  * Broken network on some AWS instances with focal/impish kernels
+    (LP: #1961968)
+    - SAUCE: Revert "PCI/MSI: Mask MSI-X vectors only on success"
+
+  * [UBUNTU 20.04] kernel: Add support for CPU-MF counter second version 7
+    (LP: #1960182)
+    - s390/cpumf: Support for CPU Measurement Facility CSVN 7
+    - s390/cpumf: Support for CPU Measurement Sampling Facility LS bit
+
+  * Hipersocket page allocation failure on Ubuntu 20.04 based SSC environments
+    (LP: #1959529)
+    - s390/qeth: use memory reserves to back RX buffers
+
+  * CVE-2022-0516
+    - KVM: s390: Return error on SIDA memop on normal guest
+
+  * CVE-2022-0435
+    - tipc: improve size validations for received domain records
+
+  * CVE-2022-0492
+    - cgroup-v1: Require capabilities to set release_agent
+
+  * Recalled NFSv4 files delegations overwhelm server (LP: #1957986)
+    - NFSv4: Fix delegation handling in update_open_stateid()
+    - NFSv4: nfs4_callback_getattr() should ignore revoked delegations
+    - NFSv4: Delegation recalls should not find revoked delegations
+    - NFSv4: fail nfs4_refresh_delegation_stateid() when the delegation was
+      revoked
+    - NFS: Rename nfs_inode_return_delegation_noreclaim()
+    - NFSv4: Don't remove the delegation from the super_list more than once
+    - NFSv4: Hold the delegation spinlock when updating the seqid
+    - NFSv4: Clear the NFS_DELEGATION_REVOKED flag in
+      nfs_update_inplace_delegation()
+    - NFSv4: Update the stateid seqid in nfs_revoke_delegation()
+    - NFSv4: Revoke the delegation on success in nfs4_delegreturn_done()
+    - NFSv4: Ignore requests to return the delegation if it was revoked
+    - NFSv4: Don't reclaim delegations that have been returned or revoked
+    - NFSv4: nfs4_return_incompatible_delegation() should check delegation
+      validity
+    - NFSv4: Fix nfs4_inode_make_writeable()
+    - NFS: nfs_inode_find_state_and_recover() fix stateid matching
+    - NFSv4: Fix races between open and delegreturn
+    - NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn
+    - NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done()
+    - NFSv4: nfs_inode_evict_delegation() should set NFS_DELEGATION_RETURNING
+    - NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is returned
+    - NFSv4: Try to return the delegation immediately when marked for return on
+      close
+    - NFSv4: Add accounting for the number of active delegations held
+    - NFSv4: Limit the total number of cached delegations
+    - NFSv4: Ensure the delegation is pinned in nfs_do_return_delegation()
+    - NFSv4: Ensure the delegation cred is pinned when we call delegreturn
+
+  * Focal update: v5.4.174 upstream stable release (LP: #1960566)
+    - HID: uhid: Fix worker destroying device without any protection
+    - HID: wacom: Reset expected and received contact counts at the same time
+    - HID: wacom: Ignore the confidence flag when a touch is removed
+    - HID: wacom: Avoid using stale array indicies to read contact count
+    - f2fs: fix to do sanity check in is_alive()
+    - nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed
+      bind()
+    - mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
+    - mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
+    - x86/gpu: Reserve stolen memory for first integrated Intel GPU
+    - tools/nolibc: x86-64: Fix startup code bug
+    - tools/nolibc: i386: fix initial stack alignment
+    - tools/nolibc: fix incorrect truncation of exit code
+    - rtc: cmos: take rtc_lock while reading from CMOS
+    - media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
+    - media: flexcop-usb: fix control-message timeouts
+    - media: mceusb: fix control-message timeouts
+    - media: em28xx: fix control-message timeouts
+    - media: cpia2: fix control-message timeouts
+    - media: s2255: fix control-message timeouts
+    - media: dib0700: fix undefined behavior in tuner shutdown
+    - media: redrat3: fix control-message timeouts
+    - media: pvrusb2: fix control-message timeouts
+    - media: stk1160: fix control-message timeouts
+    - can: softing_cs: softingcs_probe(): fix memleak on registration failure
+    - lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
+    - iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
+    - dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
+    - PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
+    - mm_zone: add function to check if managed dma zone exists
+    - mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed
+      pages
+    - shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
+    - drm/rockchip: dsi: Hold pm-runtime across bind/unbind
+    - drm/rockchip: dsi: Reconfigure hardware on resume()
+    - drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
+    - drm/panel: innolux-p079zca: Delete panel on attach() failure
+    - drm/rockchip: dsi: Fix unbalanced clock on probe error
+    - Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
+    - clk: bcm-2835: Pick the closest clock rate
+    - clk: bcm-2835: Remove rounding up the dividers
+    - wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
+    - wcn36xx: Release DMA channel descriptor allocations
+    - media: videobuf2: Fix the size printk format
+    - media: aspeed: fix mode-detect always time out at 2nd run
+    - media: em28xx: fix memory leak in em28xx_init_dev
+    - media: aspeed: Update signal status immediately to ensure sane hw state
+    - arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
+    - arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
+    - Bluetooth: stop proccessing malicious adv data
+    - tee: fix put order in teedev_close_context()
+    - media: dmxdev: fix UAF when dvb_register_device() fails
+    - crypto: qce - fix uaf on qce_ahash_register_one
+    - arm64: dts: ti: k3-j721e: correct cache-sets info
+    - tty: serial: atmel: Check return code of dmaengine_submit()
+    - tty: serial: atmel: Call dma_async_issue_pending()
+    - media: rcar-csi2: Correct the selection of hsfreqrange
+    - media: imx-pxp: Initialize the spinlock prior to using it
+    - media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
+    - media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
+    - media: venus: core: Fix a resource leak in the error handling path of
+      'venus_probe()'
+    - netfilter: bridge: add support for pppoe filtering
+    - arm64: dts: qcom: msm8916: fix MMC controller aliases
+    - ACPI: EC: Rework flushing of EC work while suspended to idle
+    - drm/amdgpu: Fix a NULL pointer dereference in
+      amdgpu_connector_lcd_native_mode()
+    - drm/radeon/radeon_kms: Fix a NULL pointer dereference in
+      radeon_driver_open_kms()
+    - arm64: dts: ti: k3-j721e: Fix the L2 cache sets
+    - tty: serial: uartlite: allow 64 bit address
+    - serial: amba-pl011: do not request memory region twice
+    - floppy: Fix hang in watchdog when disk is ejected
+    - staging: rtl8192e: return error code from rtllib_softmac_init()
+    - staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
+    - Bluetooth: btmtksdio: fix resume failure
+    - media: dib8000: Fix a memleak in dib8000_init()
+    - media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
+    - media: si2157: Fix "warm" tuner state detection
+    - sched/rt: Try to restart rt period timer when rt runtime exceeded
+    - rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
+    - mwifiex: Fix possible ABBA deadlock
+    - xfrm: fix a small bug in xfrm_sa_len()
+    - crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
+    - crypto: stm32/cryp - fix double pm exit
+    - crypto: stm32/cryp - fix lrw chaining mode
+    - ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
+    - media: dw2102: Fix use after free
+    - media: msi001: fix possible null-ptr-deref in msi001_probe()
+    - media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
+    - drm/msm/dpu: fix safe status debugfs file
+    - drm/bridge: ti-sn65dsi86: Set max register for regmap
+    - media: hantro: Fix probe func error path
+    - xfrm: interface with if_id 0 should return error
+    - xfrm: state and policy should fail if XFRMA_IF_ID 0
+    - ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
+    - usb: ftdi-elan: fix memory leak on device disconnect
+    - ARM: dts: armada-38x: Add generic compatible to UART nodes
+    - mmc: meson-mx-sdio: add IRQ check
+    - selinux: fix potential memleak in selinux_add_opt()
+    - bpftool: Enable line buffering for stdout
+    - x86/mce/inject: Avoid out-of-bounds write when setting flags
+    - ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
+    - pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+      __nonstatic_find_io_region()
+    - pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+      nonstatic_find_mem_region()
+    - netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
+    - bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
+    - ppp: ensure minimum packet size in ppp_write()
+    - rocker: fix a sleeping in atomic bug
+    - staging: greybus: audio: Check null pointer
+    - fsl/fman: Check for null pointer after calling devm_ioremap
+    - Bluetooth: hci_bcm: Check for error irq
+    - HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_get_str_desc
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_huion_init
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_frame_init_v1_buttonpad
+    - debugfs: lockdown: Allow reading debugfs files that are not world readable
+    - net/mlx5e: Don't block routes with nexthop objects in SW
+    - Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
+    - net/mlx5: Set command entry semaphore up once got index free
+    - spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
+    - tpm: add request_locality before write TPM_INT_ENABLE
+    - can: softing: softing_startstop(): fix set but not used variable warning
+    - can: xilinx_can: xcan_probe(): check for error irq
+    - pcmcia: fix setting of kthread task states
+    - net: mcs7830: handle usb read errors properly
+    - ext4: avoid trim error on fs with small groups
+    - ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
+    - ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
+    - ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
+    - RDMA/hns: Validate the pkey index
+    - clk: imx8mn: Fix imx8mn_clko1_sels
+    - powerpc/prom_init: Fix improper check of prom_getprop()
+    - ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
+    - ALSA: oss: fix compile error when OSS_DEBUG is enabled
+    - char/mwave: Adjust io port register size
+    - binder: fix handling of error during copy
+    - iommu/io-pgtable-arm: Fix table descriptor paddr formatting
+    - scsi: ufs: Fix race conditions related to driver data
+    - PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
+    - powerpc/powermac: Add additional missing lockdep_register_key()
+    - RDMA/core: Let ib_find_gid() continue search even after empty entry
+    - RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
+    - ASoC: rt5663: Handle device_property_read_u32_array error codes
+    - clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system
+      enter shell
+    - dmaengine: pxa/mmp: stop referencing config->slave_id
+    - iommu/iova: Fix race between FQ timeout and teardown
+    - phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
+    - ASoC: samsung: idma: Check of ioremap return value
+    - misc: lattice-ecp3-config: Fix task hung when firmware load failed
+    - mips: lantiq: add support for clk_set_parent()
+    - mips: bcm63xx: add support for clk_set_parent()
+    - RDMA/cxgb4: Set queue pair state when being queried
+    - of: base: Fix phandle argument length mismatch error message
+    - Bluetooth: Fix debugfs entry leak in hci_register_dev()
+    - fs: dlm: filter user dlm messages for kernel locks
+    - drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
+    - ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
+    - drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
+    - ARM: shmobile: rcar-gen2: Add missing of_node_put()
+    - batman-adv: allow netlink usage in unprivileged containers
+    - usb: gadget: f_fs: Use stream_open() for endpoint files
+    - drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
+    - HID: apple: Do not reset quirks when the Fn key is not found
+    - media: b2c2: Add missing check in flexcop_pci_isr:
+    - EDAC/synopsys: Use the quirk for version instead of ddr version
+    - mlxsw: pci: Add shutdown method in PCI driver
+    - drm/bridge: megachips: Ensure both bridges are probed before registration
+    - gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
+    - HSI: core: Fix return freed object in hsi_new_client
+    - mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
+    - rsi: Fix use-after-free in rsi_rx_done_handler()
+    - rsi: Fix out-of-bounds read in rsi_read_pkt()
+    - usb: uhci: add aspeed ast2600 uhci support
+    - floppy: Add max size check for user space request
+    - x86/mm: Flush global TLB when switching to trampoline page-table
+    - media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
+    - media: saa7146: hexium_orion: Fix a NULL pointer dereference in
+      hexium_attach()
+    - media: m920x: don't use stack on USB reads
+    - iwlwifi: mvm: synchronize with FW after multicast commands
+    - ath10k: Fix tx hanging
+    - net-sysfs: update the queue counts in the unregistration path
+    - net: phy: prefer 1000baseT over 1000baseKX
+    - gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
+    - x86/mce: Mark mce_panic() noinstr
+    - x86/mce: Mark mce_end() noinstr
+    - x86/mce: Mark mce_read_aux() noinstr
+    - net: bonding: debug: avoid printing debug logs when bond is not notifying
+      peers
+    - bpf: Do not WARN in bpf_warn_invalid_xdp_action()
+    - HID: quirks: Allow inverting the absolute X/Y values
+    - media: igorplugusb: receiver overflow should be reported
+    - media: saa7146: hexium_gemini: Fix a NULL pointer dereference in
+      hexium_attach()
+    - mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
+    - audit: ensure userspace is penalized the same as the kernel when under
+      pressure
+    - arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
+    - arm64: tegra: Adjust length of CCPLEX cluster MMIO region
+    - cpufreq: Fix initialization of min and max frequency QoS requests
+    - usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
+    - ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
+    - iwlwifi: fix leaks/bad data after failed firmware load
+    - iwlwifi: remove module loading failure message
+    - iwlwifi: mvm: Fix calculation of frame length
+    - um: registers: Rename function names to avoid conflicts and build problems
+    - jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
+    - ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
+    - ACPICA: Utilities: Avoid deleting the same object twice in a row
+    - ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
+    - ACPICA: Fix wrong interpretation of PCC address
+    - ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
+    - drm/amdgpu: fixup bad vram size on gmc v8
+    - ACPI: battery: Add the ThinkPad "Not Charging" quirk
+    - btrfs: remove BUG_ON() in find_parent_nodes()
+    - btrfs: remove BUG_ON(!eie) in find_parent_nodes
+    - net: mdio: Demote probed message to debug print
+    - mac80211: allow non-standard VHT MCS-10/11
+    - dm btree: add a defensive bounds check to insert_at()
+    - dm space map common: add bounds check to sm_ll_lookup_bitmap()
+    - net: phy: marvell: configure RGMII delays for 88E1118
+    - net: gemini: allow any RGMII interface mode
+    - regulator: qcom_smd: Align probe function with rpmh-regulator
+    - serial: pl010: Drop CR register reset on set_termios
+    - serial: core: Keep mctrl register state and cached copy in sync
+    - random: do not throw away excess input to crng_fast_load
+    - parisc: Avoid calling faulthandler_disabled() twice
+    - powerpc/6xx: add missing of_node_put
+    - powerpc/powernv: add missing of_node_put
+    - powerpc/cell: add missing of_node_put
+    - powerpc/btext: add missing of_node_put
+    - powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
+    - i2c: i801: Don't silently correct invalid transfer size
+    - powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
+    - i2c: mpc: Correct I2C reset procedure
+    - clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
+    - powerpc/powermac: Add missing lockdep_register_key()
+    - KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
+    - w1: Misuse of get_user()/put_user() reported by sparse
+    - scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
+    - ALSA: seq: Set upper limit of processed events
+    - powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
+    - MIPS: OCTEON: add put_device() after of_find_device_by_node()
+    - i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
+    - MIPS: Octeon: Fix build errors using clang
+    - scsi: sr: Don't use GFP_DMA
+    - ASoC: mediatek: mt8173: fix device_node leak
+    - power: bq25890: Enable continuous conversion for ADC at charging
+    - rpmsg: core: Clean up resources on announce_create failure.
+    - crypto: omap-aes - Fix broken pm_runtime_and_get() usage
+    - crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
+    - crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
+    - ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
+    - fuse: Pass correct lend value to filemap_write_and_wait_range()
+    - serial: Fix incorrect rs485 polarity on uart open
+    - cputime, cpuacct: Include guest time in user time in cpuacct.stat
+    - tracing/kprobes: 'nmissed' not showed correctly for kretprobe
+    - iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
+    - s390/mm: fix 2KB pgtable release race
+    - drm/etnaviv: limit submit sizes
+    - drm/nouveau/kms/nv04: use vzalloc for nv04_display
+    - drm/bridge: analogix_dp: Make PSR-exit block less
+    - PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
+    - PCI: pci-bridge-emul: Correctly set PCIe capabilities
+    - PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
+    - xfrm: fix policy lookup for ipv6 gre packets
+    - btrfs: fix deadlock between quota enable and other quota operations
+    - btrfs: check the root node for uptodate before returning it
+    - btrfs: respect the max size in the header when activating swap file
+    - ext4: make sure to reset inode lockdep class when quota enabling fails
+    - ext4: make sure quota gets properly shutdown on error
+    - ext4: set csum seed in tmp inode while migrating to extents
+    - ext4: Fix BUG_ON in ext4_bread when write quota data
+    - ext4: don't use the orphan list when migrating an inode
+    - drm/radeon: fix error handling in radeon_driver_open_kms
+    - of: base: Improve argument length mismatch error
+    - firmware: Update Kconfig help text for Google firmware
+    - media: rcar-csi2: Optimize the selection PHTW register
+    - Documentation: dmaengine: Correctly describe dmatest with channel unset
+    - Documentation: ACPI: Fix data node reference documentation
+    - Documentation: refer to config RANDOMIZE_BASE for kernel address-space
+      randomization
+    - Documentation: fix firewire.rst ABI file path error
+    - scsi: core: Show SCMD_LAST in text form
+    - RDMA/hns: Modify the mapping attribute of doorbell to device
+    - RDMA/rxe: Fix a typo in opcode name
+    - dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
+    - Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
+    - powerpc/cell: Fix clang -Wimplicit-fallthrough warning
+    - powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
+    - bpftool: Remove inclusion of utilities.mak from Makefiles
+    - ipv4: avoid quadratic behavior in netns dismantle
+    - net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
+    - parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
+    - f2fs: fix to reserve space for IO align feature
+    - af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
+    - clk: si5341: Fix clock HW provider cleanup
+    - net: axienet: limit minimum TX ring size
+    - net: axienet: fix number of TX ring slots for available check
+    - net: axienet: increase default TX ring size to 128
+    - rtc: pxa: fix null pointer dereference
+    - inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
+    - netns: add schedule point in ops_exit_list()
+    - xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
+    - gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
+    - libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
+    - perf script: Fix hex dump character output
+    - dmaengine: at_xdmac: Don't start transactions at tx_submit level
+    - dmaengine: at_xdmac: Print debug message after realeasing the lock
+    - dmaengine: at_xdmac: Fix concurrency over xfers_list
+    - dmaengine: at_xdmac: Fix lld view setting
+    - dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
+    - arm64: dts: qcom: msm8996: drop not documented adreno properties
+    - net_sched: restore "mpu xxx" handling
+    - bcmgenet: add WOL IRQ check
+    - net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
+    - dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
+    - dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
+    - scripts/dtc: dtx_diff: remove broken example from help text
+    - lib82596: Fix IRQ check in sni_82596_probe
+    - lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
+    - mtd: nand: bbt: Fix corner case in bad block table handling
+    - Revert "ia64: kprobes: Use generic kretprobe trampoline handler"
+    - Linux 5.4.174
+
+  * Focal update: v5.4.173 upstream stable release (LP: #1959701)
+    - kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test
+    - devtmpfs regression fix: reconfigure on each mount
+    - orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc()
+    - perf: Protect perf_guest_cbs with RCU
+    - KVM: s390: Clarify SIGP orders versus STOP/RESTART
+    - media: uvcvideo: fix division by zero at stream start
+    - rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with
+      interrupts enabled
+    - firmware: qemu_fw_cfg: fix sysfs information leak
+    - firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
+    - firmware: qemu_fw_cfg: fix kobject leak in probe error path
+    - KVM: x86: remove PMU FIXED_CTR3 from msrs_to_save_all
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after
+      reboot from Windows
+    - mtd: fixup CFI on ixp4xx
+    - ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN depends on !LD_IS_LLD
+    - Linux 5.4.173
+
+  * Focal update: v5.4.172 upstream stable release (LP: #1959698)
+    - workqueue: Fix unbind_workers() VS wq_worker_running() race
+    - Bluetooth: btusb: fix memory leak in btusb_mtk_submit_wmt_recv_urb()
+    - Bluetooth: bfusb: fix division by zero in send path
+    - USB: core: Fix bug in resuming hub's handling of wakeup requests
+    - USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
+    - mmc: sdhci-pci: Add PCI ID for Intel ADL
+    - veth: Do not record rx queue hint in veth_xmit
+    - mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
+    - drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...)
+      functions
+    - can: gs_usb: fix use of uninitialized variable, detach device on reception
+      of invalid USB data
+    - can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
+    - random: fix data race on crng_node_pool
+    - random: fix data race on crng init time
+    - random: fix crash on multiple early calls to add_bootloader_randomness()
+    - media: Revert "media: uvcvideo: Set unique vdev name based in type"
+    - staging: wlan-ng: Avoid bitwise vs logical OR warning in
+      hfa384x_usb_throttlefn()
+    - drm/i915: Avoid bitwise vs logical OR warning in snb_wm_latency_quirk()
+    - staging: greybus: fix stack size warning with UBSAN
+    - Linux 5.4.172
+
+  * Focal update: v5.4.171 upstream stable release (LP: #1959437)
+    - f2fs: quota: fix potential deadlock
+    - Input: touchscreen - Fix backport of
+      a02dcde595f7cbd240ccd64de96034ad91cffc40
+    - selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv()
+    - tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
+    - tracing: Tag trace_percpu_buffer as a percpu pointer
+    - ieee802154: atusb: fix uninit value in atusb_set_extended_addr
+    - iavf: Fix limit of total number of queues to active queues of VF
+    - RDMA/core: Don't infoleak GRH fields
+    - RDMA/uverbs: Check for null return of kmalloc_array
+    - mac80211: initialize variable have_higher_than_11mbit
+    - i40e: fix use-after-free in i40e_sync_filters_subtask()
+    - i40e: Fix for displaying message regarding NVM version
+    - i40e: Fix incorrect netdev's real number of RX/TX queues
+    - ipv4: Check attribute length for RTA_GATEWAY in multipath route
+    - ipv4: Check attribute length for RTA_FLOW in multipath route
+    - ipv6: Check attribute length for RTA_GATEWAY in multipath route
+    - ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route
+    - lwtunnel: Validate RTA_ENCAP_TYPE attribute length
+    - batman-adv: mcast: don't send link-local multicast to mcast routers
+    - sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
+    - net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8081
+    - power: supply: core: Break capacity loop
+    - power: reset: ltc2952: Fix use of floating point literals
+    - rndis_host: support Hytera digital radios
+    - phonet: refcount leak in pep_sock_accep
+    - ipv6: Continue processing multipath route even if gateway attribute is
+      invalid
+    - ipv6: Do cleanup if attribute validation fails in multipath route
+    - usb: mtu3: fix interval value for intr and isoc
+    - scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
+    - ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
+    - net: udp: fix alignment problem in udp4_seq_show()
+    - atlantic: Fix buff_ring OOB in aq_ring_rx_clean
+    - mISDN: change function names to avoid conflicts
+    - Linux 5.4.171
+
+  * Focal update: v5.4.170 upstream stable release (LP: #1958898)
+    - tee: handle lookup of shm with reference count 0
+    - Input: i8042 - add deferred probe support
+    - Input: i8042 - enable deferred probe quirk for ASUS UM325UA
+    - tomoyo: Check exceeded quota early in tomoyo_domain_quota_is_ok().
+    - platform/x86: apple-gmux: use resource_size() with res
+    - memblock: fix memblock_phys_alloc() section mismatch error
+    - recordmcount.pl: fix typo in s390 mcount regex
+    - selinux: initialize proto variable in selinux_ip_postroute_compat()
+    - scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
+    - net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources
+    - sctp: use call_rcu to free endpoint
+    - net: usb: pegasus: Do not drop long Ethernet frames
+    - net: lantiq_xrx200: fix statistics of received bytes
+    - NFC: st21nfca: Fix memory leak in device probe and remove
+    - ionic: Initialize the 'lif->dbid_inuse' bitmap
+    - net/mlx5e: Fix wrong features assignment in case of error
+    - selftests/net: udpgso_bench_tx: fix dst ip argument
+    - net/ncsi: check for error return from call to nla_put_u32
+    - fsl/fman: Fix missing put_device() call in fman_port_probe
+    - i2c: validate user data in compat ioctl
+    - nfc: uapi: use kernel size_t to fix user-space builds
+    - uapi: fix linux/nfc.h userspace compilation errors
+    - xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
+    - usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
+    - usb: mtu3: add memory barrier before set GPD's HWO
+    - usb: mtu3: fix list_head check warning
+    - usb: mtu3: set interval of FS intr and isoc endpoint
+    - binder: fix async_free_space accounting for empty parcels
+    - scsi: vmw_pvscsi: Set residual data length conditionally
+    - Input: appletouch - initialize work before device registration
+    - Input: spaceball - fix parsing of movement data packets
+    - net: fix use-after-free in tw_timer_handler
+    - perf script: Fix CPU filtering of a script's switch events
+    - Linux 5.4.170
+
+  * Focal update: v5.4.170 upstream stable release (LP: #1958898) // HID_ASUS
+    should depend on USB_HID in stable v4.15 backports (LP: #1959762)
+    - HID: asus: Add depends on USB_HID to HID_ASUS Kconfig option
+
+  * Focal update: v5.4.169 upstream stable release (LP: #1958557)
+    - net: usb: lan78xx: add Allied Telesis AT29M2-AF
+    - serial: 8250_fintek: Fix garbled text for console
+    - arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode
+    - spi: change clk_disable_unprepare to clk_unprepare
+    - IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
+    - netfilter: fix regression in looped (broad|multi)cast's MAC handling
+    - qlcnic: potential dereference null pointer of rx_queue->page_ring
+    - net: accept UFOv6 packages in virtio_net_hdr_to_skb
+    - net: skip virtio_net_hdr_set_proto if protocol already set
+    - ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module
+    - bonding: fix ad_actor_system option setting to default
+    - fjes: Check for error irq
+    - drivers: net: smc911x: Check for error irq
+    - sfc: falcon: Check null pointer of rx_queue->page_ring
+    - Input: elantech - fix stack out of bound access in
+      elantech_change_report_id()
+    - hwmon: (lm90) Fix usage of CONFIG2 register in detect function
+    - hwmon: (lm90) Add max6654 support to lm90 driver
+    - hwmon: (lm90) Add basic support for TI TMP461
+    - hwmon: (lm90) Introduce flag indicating extended temperature support
+    - hwmon: (lm90) Drop critical attribute support for MAX6654
+    - ALSA: jack: Check the return value of kstrdup()
+    - ALSA: drivers: opl3: Fix incorrect use of vp->state
+    - ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6
+    - Input: atmel_mxt_ts - fix double free in mxt_read_info_block
+    - ipmi: bail out if init_srcu_struct fails
+    - ipmi: ssif: initialize ssif_info->client early
+    - ipmi: fix initialization when workqueue allocation fails
+    - parisc: Correct completer in lws start
+    - x86/pkey: Fix undefined behaviour with PKRU_WD_BIT
+    - pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines
+    - mmc: sdhci-tegra: Fix switch to HS400ES mode
+    - mmc: core: Disable card detect during shutdown
+    - ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
+    - tee: optee: Fix incorrect page free bug
+    - f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
+    - usb: gadget: u_ether: fix race in setting MAC address in setup phase
+    - KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
+    - mm: mempolicy: fix THP allocations escaping mempolicy restrictions
+    - pinctrl: mediatek: fix global-out-of-bounds issue
+    - hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681
+    - hwmon: (lm90) Do not report 'busy' status bit as alarm
+    - ax25: NPD bug when detaching AX25 device
+    - hamradio: defer ax25 kfree after unregister_netdev
+    - hamradio: improve the incomplete fix to avoid NPD
+    - phonet/pep: refuse to enable an unbound pipe
+    - Linux 5.4.169
+
+  * Focal update: v5.4.168 upstream stable release (LP: #1957991)
+    - KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE
+    - mac80211: mark TX-during-stop for TX in in_reconfig
+    - mac80211: send ADDBA requests using the tid/queue of the aggregation session
+    - firmware: arm_scpi: Fix string overflow in SCPI genpd driver
+    - virtio_ring: Fix querying of maximum DMA mapping size for virtio device
+    - recordmcount.pl: look for jgnop instruction as well as bcrl on s390
+    - dm btree remove: fix use after free in rebalance_children()
+    - audit: improve robustness of the audit queue handling
+    - iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda
+    - nfsd: fix use-after-free due to delegation race
+    - arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-
+      edge
+    - arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply
+    - arm64: dts: rockchip: fix audio-supply for Rock Pi 4
+    - mac80211: track only QoS data frames for admission control
+    - ARM: socfpga: dts: fix qspi node compatible
+    - clk: Don't parent clks until the parent is fully registered
+    - selftests: net: Correct ping6 expected rc from 2 to 1
+    - s390/kexec_file: fix error handling when applying relocations
+    - sch_cake: do not call cake_destroy() from cake_init()
+    - inet_diag: use jiffies_delta_to_msecs()
+    - inet_diag: fix kernel-infoleak for UDP sockets
+    - selftests: Fix raw socket bind tests with VRF
+    - selftests: Fix IPv6 address bind tests
+    - dmaengine: st_fdma: fix MODULE_ALIAS
+    - selftest/net/forwarding: declare NETIFS p9 p10
+    - mac80211: agg-tx: refactor sending addba
+    - mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock
+    - mac80211: accept aggregation sessions on 6 GHz
+    - mac80211: fix lookup when adding AddBA extension element
+    - net: sched: lock action when translating it to flow_action infra
+    - flow_offload: return EOPNOTSUPP for the unsupported mpls action type
+    - rds: memory leak in __rds_conn_create()
+    - soc/tegra: fuse: Fix bitwise vs. logical OR warning
+    - igb: Fix removal of unicast MAC filters of VFs
+    - igbvf: fix double free in `igbvf_probe`
+    - ixgbe: set X550 MDIO speed before talking to PHY
+    - netdevsim: Zero-initialize memory for new map's value in function
+      nsim_bpf_map_alloc
+    - net: Fix double 0x prefix print in SKB dump
+    - net/smc: Prevent smc_release() from long blocking
+    - net: systemport: Add global locking for descriptor lifecycle
+    - sit: do not call ipip6_dev_free() from sit_init_net()
+    - USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04)
+    - PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error
+    - PCI/MSI: Mask MSI-X vectors only on success
+    - usb: xhci: Extend support for runtime power management for AMD's Yellow
+      carp.
+    - USB: serial: cp210x: fix CP2105 GPIO registration
+    - USB: serial: option: add Telit FN990 compositions
+    - timekeeping: Really make sure wall_to_monotonic isn't positive
+    - libata: if T_LENGTH is zero, dma direction should be DMA_NONE
+    - drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE
+    - mac80211: validate extended element ID is present
+    - mwifiex: Remove unnecessary braces from HostCmd_SET_SEQ_NO_BSS_INFO
+    - Input: touchscreen - avoid bitwise vs logical OR warning
+    - ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name
+    - xsk: Do not sleep in poll() when need_wakeup set
+    - media: mxl111sf: change mutex_init() location
+    - fuse: annotate lock in fuse_reverse_inval_entry()
+    - ovl: fix warning in ovl_create_real()
+    - scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select()
+    - rcu: Mark accesses to rcu_state.n_force_qs
+    - mac80211: fix regression in SSN handling of addba tx
+    - net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
+    - Revert "xsk: Do not sleep in poll() when need_wakeup set"
+    - xen/blkfront: harden blkfront against event channel storms
+    - xen/netfront: harden netfront against event channel storms
+    - xen/console: harden hvc_xen against event channel storms
+    - xen/netback: fix rx queue stall detection
+    - xen/netback: don't queue unlimited number of packages
+    - Linux 5.4.168
+
+  * Focal update: v5.4.167 upstream stable release (LP: #1957987)
+    - nfc: fix segfault in nfc_genl_dump_devices_done
+    - drm/msm/dsi: set default num_data_lanes
+    - net/mlx4_en: Update reported link modes for 1/10G
+    - parisc/agp: Annotate parisc agp init functions with __init
+    - i2c: rk3x: Handle a spurious start completion interrupt flag
+    - net: netlink: af_netlink: Prevent empty skb by adding a check on len.
+    - drm/amd/display: Fix for the no Audio bug with Tiled Displays
+    - drm/amd/display: add connector type check for CRC source set
+    - tracing: Fix a kmemleak false positive in tracing_map
+    - KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
+    - selinux: fix race condition when computing ocontext SIDs
+    - bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc
+    - hwmon: (dell-smm) Fix warning on /proc/i8k creation error
+    - memblock: free_unused_memmap: use pageblock units instead of MAX_ORDER
+    - memblock: align freed memory map on pageblock boundaries with SPARSEMEM
+    - memblock: ensure there is no overflow in memblock_overlaps_region()
+    - arm: extend pfn_valid to take into account freed memory map alignment
+    - arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM
+    - Linux 5.4.167
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 07 Mar 2022 17:07:14 +0100
+
+linux (5.4.0-104.118) focal; urgency=medium
+
+  * CVE-2022-23960
+    - SAUCE: kvm: arm: fix build on 32-bit
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 02 Mar 2022 14:10:18 -0300
+
+linux (5.4.0-103.117) focal; urgency=medium
+
+  * CVE-2022-23960
+    - arm64: Add part number for Arm Cortex-A77
+    - arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
+    - arm64: Add Cortex-X2 CPU part definition
+    - arm64: add ID_AA64ISAR2_EL1 sys register
+    - SAUCE: arm64: entry.S: Add ventry overflow sanity checks
+    - SAUCE: arm64: entry: Make the trampoline cleanup optional
+    - SAUCE: arm64: entry: Free up another register on kpti's tramp_exit path
+    - SAUCE: arm64: entry: Move the trampoline data page before the text page
+    - SAUCE: arm64: entry: Allow tramp_alias to access symbols after the 4K
+      boundary
+    - SAUCE: arm64: entry: Don't assume tramp_vectors is the start of the vectors
+    - SAUCE: arm64: entry: Move trampoline macros out of ifdef'd section
+    - SAUCE: arm64: entry: Make the kpti trampoline's kpti sequence optional
+    - SAUCE: arm64: entry: Allow the trampoline text to occupy multiple pages
+    - SAUCE: arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
+    - SAUCE: arm64: entry: Add vectors that have the bhb mitigation sequences
+    - SAUCE: arm64: entry: Add macro for reading symbol addresses from the
+      trampoline
+    - SAUCE: arm64: Add percpu vectors for EL1
+    - SAUCE: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of
+      Spectre-v2
+    - SAUCE: KVM: arm64: Add templates for BHB mitigation sequences
+    - SAUCE: arm64: Mitigate spectre style branch history side channels
+    - SAUCE: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and
+      migrated
+    - SAUCE: arm64: Use the clearbhb instruction in mitigations
+    - [Config]: set CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+
+  * CVE-2022-25636
+    - netfilter: nf_tables_offload: incorrect flow offload action array size
+
+  * CVE-2022-0001
+    - x86/speculation: Merge one test in spectre_v2_user_select_mitigation()
+    - x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
+    - SAUCE: x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
+    - SAUCE: x86/speculation: Add eIBRS + Retpoline options
+    - SAUCE: Documentation/hw-vuln: Update spectre doc
+
+  * Disable unprivileged BPF by default (LP: #1961338)
+    - bpf: Add kconfig knob for disabling unpriv bpf by default
+    - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 02 Mar 2022 05:33:12 -0300
+
+linux (5.4.0-100.113) focal; urgency=medium
+
+  * focal/linux: 5.4.0-100.113 -proposed tracker (LP: #1959900)
+
+  * CVE-2022-22942
+    - SAUCE: drm/vmwgfx: Fix stale file descriptors on failed usercopy
+
+  * CVE-2022-0330
+    - drm/i915: Flush TLBs before releasing backing store
+
+  * Focal update: v5.4.166 upstream stable release (LP: #1957008)
+    - netfilter: selftest: conntrack_vrf.sh: fix file permission
+    - Linux 5.4.166
+    - net/packet: rx_owner_map depends on pg_vec
+    - USB: gadget: bRequestType is a bitfield, not a enum
+    - HID: holtek: fix mouse probing
+    - udp: using datalen to cap ipv6 udp max gso segments
+    - selftests: Calculate udpgso segment count without header adjustment
+
+  * Focal update: v5.4.165 upstream stable release (LP: #1957007)
+    - serial: tegra: Change lower tolerance baud rate limit for tegra20 and
+      tegra30
+    - ntfs: fix ntfs_test_inode and ntfs_init_locked_inode function type
+    - HID: quirks: Add quirk for the Microsoft Surface 3 type-cover
+    - HID: google: add eel USB id
+    - HID: add hid_is_usb() function to make it simpler for USB detection
+    - HID: add USB_HID dependancy to hid-prodikeys
+    - HID: add USB_HID dependancy to hid-chicony
+    - HID: add USB_HID dependancy on some USB HID drivers
+    - HID: bigbenff: prevent null pointer dereference
+    - HID: wacom: fix problems when device is not a valid USB device
+    - HID: check for valid USB device for many HID drivers
+    - can: kvaser_usb: get CAN clock frequency from device
+    - can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct
+      stats->{rx,tx}_errors counter
+    - can: sja1000: fix use after free in ems_pcmcia_add_card()
+    - nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done
+    - selftests: netfilter: add a vrf+conntrack testcase
+    - vrf: don't run conntrack on vrf with !dflt qdisc
+    - bpf: Fix the off-by-two error in range markings
+    - ice: ignore dropped packets during init
+    - bonding: make tx_rebalance_counter an atomic
+    - nfp: Fix memory leak in nfp_cpp_area_cache_add()
+    - seg6: fix the iif in the IPv6 socket control block
+    - udp: using datalen to cap max gso segments
+    - iavf: restore MSI state on reset
+    - iavf: Fix reporting when setting descriptor count
+    - IB/hfi1: Correct guard on eager buffer deallocation
+    - mm: bdi: initialize bdi_min_ratio when bdi is unregistered
+    - ALSA: ctl: Fix copy of updated id with element read/write
+    - ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform
+    - ALSA: pcm: oss: Fix negative period/buffer sizes
+    - ALSA: pcm: oss: Limit the period size to 16MB
+    - ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*()
+    - btrfs: clear extent buffer uptodate when we fail to write it
+    - btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling
+    - nfsd: Fix nsfd startup race (again)
+    - tracefs: Have new files inherit the ownership of their parent
+    - clk: qcom: regmap-mux: fix parent clock lookup
+    - drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.
+    - can: pch_can: pch_can_rx_normal: fix use after free
+    - can: m_can: Disable and ignore ELO interrupt
+    - x86/sme: Explicitly map new EFI memmap table as encrypted
+    - libata: add horkage for ASMedia 1092
+    - wait: add wake_up_pollfree()
+    - SAUCE: binder: export __wake_up_pollfree for binder module
+    - binder: use wake_up_pollfree()
+    - signalfd: use wake_up_pollfree()
+    - aio: keep poll requests on waitqueue until completed
+    - aio: fix use-after-free due to missing POLLFREE handling
+    - tracefs: Set all files to the same group ownership as the mount option
+    - block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2)
+    - qede: validate non LSO skb length
+    - ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer
+    - i40e: Fix failed opcode appearing if handling messages from VF
+    - i40e: Fix pre-set max number of queues for VF
+    - mtd: rawnand: fsmc: Take instruction delay into account
+    - mtd: rawnand: fsmc: Fix timing computation
+    - dt-bindings: net: Reintroduce PHY no lane swap binding
+    - tools build: Remove needless libpython-version feature check that breaks
+      test-all fast path
+    - net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero
+    - net: altera: set a couple error code in probe()
+    - net: fec: only clear interrupt of handling queue in fec_enet_rx_queue()
+    - net, neigh: clear whole pneigh_entry at alloc time
+    - net/qla3xxx: fix an error code in ql_adapter_up()
+    - Revert "UBUNTU: SAUCE: selftests: fib_tests: assign address to dummy1 for
+      rp_filter tests"
+    - selftests/fib_tests: Rework fib_rp_filter_test()
+    - USB: gadget: detect too-big endpoint 0 requests
+    - USB: gadget: zero allocate endpoint 0 buffers
+    - usb: core: config: fix validation of wMaxPacketValue entries
+    - xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime
+      suspending
+    - usb: core: config: using bit mask instead of individual bits
+    - xhci: avoid race between disable slot command and host runtime suspend
+    - iio: trigger: Fix reference counting
+    - iio: trigger: stm32-timer: fix MODULE_ALIAS
+    - iio: stk3310: Don't return error code in interrupt handler
+    - iio: mma8452: Fix trigger reference couting
+    - iio: ltr501: Don't return error code in trigger handler
+    - iio: kxsd9: Don't return error code in trigger handler
+    - iio: itg3200: Call iio_trigger_notify_done() on error
+    - iio: dln2-adc: Fix lockdep complaint
+    - iio: dln2: Check return value of devm_iio_trigger_register()
+    - iio: at91-sama5d2: Fix incorrect sign extension
+    - iio: adc: axp20x_adc: fix charging current reporting on AXP22x
+    - iio: ad7768-1: Call iio_trigger_notify_done() on error
+    - iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove
+    - irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc()
+    - irqchip/armada-370-xp: Fix support for Multi-MSI interrupts
+    - irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL
+    - irqchip: nvic: Fix offset for Interrupt Priority Offsets
+    - misc: fastrpc: fix improper packet size calculation
+    - bpf: Add selftests to cover packet access corner cases
+    - Linux 5.4.165
+
+  * Focal update: v5.4.164 upstream stable release (LP: #1956381)
+    - NFSv42: Fix pagecache invalidation after COPY/CLONE
+    - of: clk: Make <linux/of_clk.h> self-contained
+    - arm64: dts: mcbin: support 2W SFP modules
+    - can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM
+    - gfs2: Fix length of holes reported at end-of-file
+    - drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY
+    - mac80211: do not access the IV when it was stripped
+    - net/smc: Transfer remaining wait queue entries during fallback
+    - atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait
+    - net: return correct error code
+    - platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
+    - s390/setup: avoid using memblock_enforce_memory_limit
+    - btrfs: check-integrity: fix a warning on write caching disabled disk
+    - thermal: core: Reset previous low and high trip during thermal zone init
+    - scsi: iscsi: Unblock session then wake up error handler
+    - ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
+    - ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in
+      hns_dsaf_ge_srst_by_port()
+    - net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of
+      bound
+    - net: ethernet: dec: tulip: de4x5: fix possible array overflows in
+      type3_infoblock()
+    - perf hist: Fix memory leak of a perf_hpp_fmt
+    - perf report: Fix memory leaks around perf_tip()
+    - net/smc: Avoid warning of possible recursive locking
+    - vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
+    - kprobes: Limit max data_size of the kretprobe instances
+    - rt2x00: do not mark device gone on EPROTO errors during start
+    - cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink()
+    - s390/pci: move pseudo-MMIO to prevent MIO overlap
+    - sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
+    - sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
+    - i2c: stm32f7: flush TX FIFO upon transfer errors
+    - i2c: stm32f7: recover the bus on access timeout
+    - i2c: stm32f7: stop dma transfer in case of NACK
+    - i2c: cbus-gpio: set atomic transfer callback
+    - natsemi: xtensa: fix section mismatch warnings
+    - net: qlogic: qlcnic: Fix a NULL pointer dereference in
+      qlcnic_83xx_add_rings()
+    - net: mpls: Fix notifications when deleting a device
+    - siphash: use _unaligned version by default
+    - net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
+    - selftests: net: Correct case name
+    - rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
+    - net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ
+      is available
+    - net: marvell: mvpp2: Fix the computation of shared CPUs
+    - net: annotate data-races on txq->xmit_lock_owner
+    - ipv4: convert fib_num_tclassid_users to atomic_t
+    - net/rds: correct socket tunable error in rds_tcp_tune()
+    - net/smc: Keep smc_close_final rc during active close
+    - drm/msm: Do hw_init() before capturing GPU state
+    - ipv6: fix memory leak in fib6_rule_suppress
+    - KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register
+    - sched/uclamp: Fix rq->uclamp_max not set on first enqueue
+    - parisc: Fix KBUILD_IMAGE for self-extracting kernel
+    - parisc: Fix "make install" on newer debian releases
+    - vgacon: Propagate console boot parameters before calling `vc_resize'
+    - xhci: Fix commad ring abort, write all 64 bits to CRCR register.
+    - USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
+    - usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
+    - x86/tsc: Add a timer to make sure TSC_adjust is always checked
+    - x86/tsc: Disable clocksource watchdog for TSC on qualified platorms
+    - x86/64/mm: Map all kernel memory into trampoline_pgd
+    - tty: serial: msm_serial: Deactivate RX DMA for polling support
+    - serial: pl011: Add ACPI SBSA UART match id
+    - serial: core: fix transmit-buffer reset and memleak
+    - serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array
+    - serial: 8250_pci: rewrite pericom_do_set_divisor()
+    - iwlwifi: mvm: retry init flow if failed
+    - parisc: Mark cr16 CPU clocksource unstable on all SMP machines
+    - net/tls: Fix authentication failure in CCM mode
+    - Linux 5.4.164
+
+  * Focal update: v5.4.163 upstream stable release (LP: #1956380)
+    - USB: serial: option: add Telit LE910S1 0x9200 composition
+    - USB: serial: option: add Fibocom FM101-GL variants
+    - usb: dwc2: gadget: Fix ISOC flow for elapsed frames
+    - usb: dwc2: hcd_queue: Fix use of floating point literal
+    - net: nexthop: fix null pointer dereference when IPv6 is not enabled
+    - usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts
+    - usb: hub: Fix usb enumeration issue due to address0 race
+    - usb: hub: Fix locking issues with address0_mutex
+    - binder: fix test regression due to sender_euid change
+    - ALSA: ctxfi: Fix out-of-range access
+    - media: cec: copy sequence field for the reply
+    - HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts
+    - staging/fbtft: Fix backlight
+    - staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
+    - xen: don't continue xenstore initialization in case of errors
+    - xen: detect uninitialized xenbus in xenbus_init
+    - KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB
+    - tracing/uprobe: Fix uprobe_perf_open probes iteration
+    - tracing: Fix pid filtering when triggers are attached
+    - mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB
+    - mdio: aspeed: Fix "Link is Down" issue
+    - PCI: aardvark: Deduplicate code in advk_pcie_rd_conf()
+    - PCI: aardvark: Wait for endpoint to be ready before training link
+    - PCI: aardvark: Fix big endian support
+    - PCI: aardvark: Train link immediately after enabling training
+    - PCI: aardvark: Improve link training
+    - PCI: aardvark: Issue PERST via GPIO
+    - PCI: aardvark: Replace custom macros by standard linux/pci_regs.h macros
+    - PCI: aardvark: Don't touch PCIe registers if no card connected
+    - PCI: aardvark: Fix compilation on s390
+    - PCI: aardvark: Move PCIe reset card code to advk_pcie_train_link()
+    - PCI: aardvark: Update comment about disabling link training
+    - PCI: pci-bridge-emul: Fix array overruns, improve safety
+    - PCI: aardvark: Configure PCIe resources from 'ranges' DT property
+    - PCI: aardvark: Fix PCIe Max Payload Size setting
+    - PCI: aardvark: Implement re-issuing config requests on CRS response
+    - PCI: aardvark: Simplify initialization of rootcap on virtual bridge
+    - PCI: aardvark: Fix link training
+    - PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated
+      bridge
+    - PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
+    - PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
+    - pinctrl: armada-37xx: Correct PWM pins definitions
+    - arm64: dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
+    - proc/vmcore: fix clearing user buffer by properly using clear_user()
+    - netfilter: ipvs: Fix reuse connection if RS weight is 0
+    - ARM: dts: BCM5301X: Fix I2C controller interrupt
+    - ARM: dts: BCM5301X: Add interrupt properties to GPIO node
+    - ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer
+    - ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
+    - net: ieee802154: handle iftypes as u32
+    - firmware: arm_scmi: pm: Propagate return value to caller
+    - NFSv42: Don't fail clone() unless the OP_CLONE operation failed
+    - ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
+    - scsi: mpt3sas: Fix kernel panic during drive powercycle test
+    - drm/vc4: fix error code in vc4_create_object()
+    - iavf: Prevent changing static ITR values if adaptive moderation is on
+    - ipv6: fix typos in __ip6_finish_output()
+    - nfp: checking parameter process for rx-usecs/tx-usecs is invalid
+    - net: ipv6: add fib6_nh_release_dsts stub
+    - net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group
+    - scsi: core: sysfs: Fix setting device state to SDEV_RUNNING
+    - net/smc: Ensure the active closing peer first closes clcsock
+    - nvmet-tcp: fix incomplete data digest send
+    - net/ncsi : Add payload to be 32-bit aligned to fix dropped packets
+    - PM: hibernate: use correct mode for swsusp_close()
+    - tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited
+      flows
+    - nvmet: use IOCB_NOWAIT only if the filesystem supports it
+    - igb: fix netpoll exit with traffic
+    - MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48
+    - net: vlan: fix underflow for the real_dev refcnt
+    - net/smc: Don't call clcsock shutdown twice when smc shutdown
+    - net: hns3: fix VF RSS failed problem after PF enable multi-TCs
+    - net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP
+    - net: mscc: ocelot: correctly report the timestamping RX filters in ethtool
+    - f2fs: set SBI_NEED_FSCK flag when inconsistent node block found
+    - smb3: do not error on fsync when readonly
+    - vhost/vsock: fix incorrect used length reported to the guest
+    - tracing: Check pid filtering when creating events
+    - s390/mm: validate VMA in PGSTE manipulation functions
+    - shm: extend forced shm destroy to support objects from several IPC nses
+    - NFC: add NCI_UNREG flag to eliminate the race
+    - fuse: release pipe buf after last use
+    - xen: sync include/xen/interface/io/ring.h with Xen's newest version
+    - xen/blkfront: read response from backend only once
+    - xen/blkfront: don't take local copy of a request from the ring page
+    - xen/blkfront: don't trust the backend response data blindly
+    - xen/netfront: read response from backend only once
+    - xen/netfront: don't read data from request on the ring page
+    - xen/netfront: disentangle tx_skb_freelist
+    - xen/netfront: don't trust the backend response data blindly
+    - tty: hvc: replace BUG_ON() with negative return value
+    - Linux 5.4.163
+
+  * net/mlx5e: EPERM on vlan 0 programming (LP: #1957753)
+    - net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
+
+  * CVE-2021-4083
+    - fget: check that the fd still exists after getting a ref to it
+
+  * CVE-2021-4155
+    - xfs: map unwritten blocks in XFS_IOC_{ALLOC, FREE}SP just like fallocate
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 03 Feb 2022 19:16:55 +0100
+
+linux (5.4.0-99.112) focal; urgency=medium
+
+  * focal/linux: 5.4.0-99.112 -proposed tracker (LP: #1959817)
+
+  * linux-image-5.4.0-97.110 freezes by accessing cifs shares (LP: #1959665)
+    - Revert "cifs: To match file servers, make sure the server hostname matches"
+    - Revert "cifs: set a minimum of 120s for next dns resolution"
+    - Revert "cifs: use the expiry output of dns_query to schedule next
+      resolution"
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 02 Feb 2022 17:21:18 +0100
+
+linux (5.4.0-97.110) focal; urgency=medium
+
+  * icmp_redirect from selftests fails on F/kvm (unary operator expected)
+    (LP: #1938964)
+    - selftests: icmp_redirect: pass xfail=0 to log_test()
+
+  * Focal: CIFS stable updates (LP: #1954926)
+    - cifs: use the expiry output of dns_query to schedule next resolution
+    - cifs: set a minimum of 120s for next dns resolution
+    - cifs: To match file servers, make sure the server hostname matches
+
+  * seccomp_bpf in seccomp from ubuntu_kernel_selftests failed to build on B-5.4
+    (LP: #1896420)
+    - SAUCE: selftests/seccomp: fix "storage size of 'md' isn't known" build issue
+    - SAUCE: selftests/seccomp: Fix s390x regs not defined issue
+
+  * system crash when removing ipmi_msghandler module (LP: #1950666)
+    - ipmi: Move remove_work to dedicated workqueue
+    - ipmi: msghandler: Make symbol 'remove_work_wq' static
+
+  * zcrypt DD: Toleration for new IBM Z Crypto Hardware - (Backport to Ubuntu
+    20.04) (LP: #1954680)
+    - s390/AP: support new dynamic AP bus size limit
+
+  * [UBUNTU 20.04] KVM hardware diagnose data improvements for guest kernel -
+    kernel part (LP: #1953334)
+    - s390/setup: diag 318: refactor struct
+    - s390/kvm: diagnose 0x318 sync and reset
+    - KVM: s390: remove diag318 reset code
+    - KVM: s390: add debug statement for diag 318 CPNC data
+
+  * Updates to ib_peer_memory requested by Nvidia (LP: #1947206)
+    - SAUCE: RDMA/core: Updated ib_peer_memory
+
+  * Include Infiniband Peer Memory interface (LP: #1923104)
+    - IB: Allow calls to ib_umem_get from kernel ULPs
+    - SAUCE: RDMA/core: Introduce peer memory interface
+
+  * Focal update: v5.4.162 upstream stable release (LP: #1954834)
+    - arm64: zynqmp: Do not duplicate flash partition label property
+    - arm64: zynqmp: Fix serial compatible string
+    - ARM: dts: NSP: Fix mpcore, mmc node names
+    - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
+    - arm64: dts: hisilicon: fix arm,sp805 compatible string
+    - RDMA/bnxt_re: Check if the vlan is valid before reporting
+    - usb: musb: tusb6010: check return value after calling
+      platform_get_resource()
+    - usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
+    - arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency
+    - arm64: dts: freescale: fix arm,sp805 compatible string
+    - ASoC: SOF: Intel: hda-dai: fix potential locking issue
+    - clk: imx: imx6ul: Move csi_sel mux to correct base register
+    - ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
+    - scsi: advansys: Fix kernel pointer leak
+    - firmware_loader: fix pre-allocated buf built-in firmware use
+    - ARM: dts: omap: fix gpmc,mux-add-data type
+    - usb: host: ohci-tmio: check return value after calling
+      platform_get_resource()
+    - ARM: dts: ls1021a: move thermal-zones node out of soc/
+    - ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
+    - ALSA: ISA: not for M68K
+    - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
+    - MIPS: sni: Fix the build
+    - scsi: target: Fix ordered tag handling
+    - scsi: target: Fix alua_tg_pt_gps_count tracking
+    - iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr()
+    - powerpc/5200: dts: fix memory node unit name
+    - ALSA: gus: fix null pointer dereference on pointer block
+    - powerpc/dcr: Use cmplwi instead of 3-argument cmpli
+    - sh: check return code of request_irq
+    - maple: fix wrong return value of maple_bus_init().
+    - f2fs: fix up f2fs_lookup tracepoints
+    - sh: fix kconfig unmet dependency warning for FRAME_POINTER
+    - sh: math-emu: drop unused functions
+    - sh: define __BIG_ENDIAN for math-emu
+    - clk: ingenic: Fix bugs with divided dividers
+    - clk/ast2600: Fix soc revision for AHB
+    - clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk
+    - mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
+    - sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
+    - tracing: Save normal string variables
+    - tracing/histogram: Do not copy the fixed-size char array field over the
+      field size
+    - RDMA/netlink: Add __maybe_unused to static inline in C file
+    - perf bpf: Avoid memory leak from perf_env__insert_btf()
+    - perf bench futex: Fix memory leak of perf_cpu_map__new()
+    - perf tests: Remove bash construct from record+zstd_comp_decomp.sh
+    - net: bnx2x: fix variable dereferenced before check
+    - iavf: check for null in iavf_fix_features
+    - iavf: free q_vectors before queues in iavf_disable_vf
+    - iavf: Fix failure to exit out from last all-multicast mode
+    - iavf: prevent accidental free of filter structure
+    - iavf: validate pointers
+    - iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
+    - MIPS: generic/yamon-dt: fix uninitialized variable error
+    - mips: bcm63xx: add support for clk_get_parent()
+    - mips: lantiq: add support for clk_get_parent()
+    - platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
+    - scsi: core: sysfs: Fix hang when device state is set via sysfs
+    - net: sched: act_mirred: drop dst for the direction from egress to ingress
+    - net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove
+    - net: virtio_net_hdr_to_skb: count transport header in UFO
+    - i40e: Fix correct max_pkt_size on VF RX queue
+    - i40e: Fix NULL ptr dereference on VSI filter sync
+    - i40e: Fix changing previously set num_queue_pairs for PFs
+    - i40e: Fix ping is lost after configuring ADq on VF
+    - i40e: Fix creation of first queue by omitting it if is not power of two
+    - i40e: Fix display error code in dmesg
+    - NFC: reorganize the functions in nci_request
+    - drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame
+    - NFC: reorder the logic in nfc_{un,}register_device
+    - KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr()
+    - perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
+    - perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
+    - s390/kexec: fix return code handling
+    - arm64: vdso32: suppress error message for 'make mrproper'
+    - tun: fix bonding active backup with arp monitoring
+    - hexagon: export raw I/O routines for modules
+    - ipc: WARN if trying to remove ipc object which is absent
+    - mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
+    - x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
+    - s390/kexec: fix memory leak of ipl report buffer
+    - udf: Fix crash after seekdir
+    - btrfs: fix memory ordering between normal and ordered work functions
+    - parisc/sticon: fix reverse colors
+    - cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
+    - drm/udl: fix control-message timeout
+    - drm/nouveau: use drm_dev_unplug() during device removal
+    - drm/i915/dp: Ensure sink rate values are always valid
+    - drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga
+      and dvi connectors
+    - Revert "net: mvpp2: disable force link UP during port init procedure"
+    - perf/core: Avoid put_page() when GUP fails
+    - batman-adv: Consider fragmentation for needed_headroom
+    - batman-adv: Reserve needed_*room for fragments
+    - batman-adv: Don't always reallocate the fragmentation skb head
+    - ASoC: DAPM: Cover regression by kctl change notification fix
+    - usb: max-3421: Use driver data instead of maintaining a list of bound
+      devices
+    - ice: Delete always true check of PF pointer
+    - ALSA: hda: hdac_ext_stream: fix potential locking issues
+    - ALSA: hda: hdac_stream: fix potential locking issue in
+      snd_hdac_stream_assign()
+    - Linux 5.4.162
+
+  * Focal update: v5.4.161 upstream stable release (LP: #1954828)
+    - scsi: ufs: Fix interrupt error message for shared interrupts
+    - MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
+    - ext4: fix lazy initialization next schedule time computation in more
+      granular unit
+    - scsi: ufs: Fix tm request when non-fatal error happens
+    - fortify: Explicitly disable Clang support
+    - parisc/entry: fix trace test in syscall exit path
+    - PCI/MSI: Destroy sysfs before freeing entries
+    - PCI/MSI: Deal with devices lying about their MSI mask capability
+    - PCI: Add MSI masking quirk for Nvidia ION AHCI
+    - erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
+    - erofs: fix unsafe pagevec reuse of hooked pclusters
+    - Linux 5.4.161
+
+  * Focal update: v5.4.160 upstream stable release (LP: #1953387)
+    - xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good
+      delay
+    - usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
+    - binder: use euid from cred instead of using task
+    - binder: use cred instead of task for selinux checks
+    - binder: use cred instead of task for getsecid
+    - Input: iforce - fix control-message timeout
+    - Input: elantench - fix misreporting trackpoint coordinates
+    - Input: i8042 - Add quirk for Fujitsu Lifebook T725
+    - libata: fix read log timeout value
+    - ocfs2: fix data corruption on truncate
+    - scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
+    - scsi: qla2xxx: Fix use after free in eh_abort path
+    - mmc: dw_mmc: Dont wait for DRTO on Write RSP error
+    - parisc: Fix ptrace check on syscall return
+    - tpm: Check for integer overflow in tpm2_map_response_body()
+    - firmware/psci: fix application of sizeof to pointer
+    - crypto: s5p-sss - Add error handling in s5p_aes_probe()
+    - media: ite-cir: IR receiver stop working after receive overflow
+    - media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
+    - media: v4l2-ioctl: Fix check_ext_ctrls
+    - ALSA: hda/realtek: Add quirk for Clevo PC70HS
+    - ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
+    - ALSA: hda/realtek: Add quirk for ASUS UX550VE
+    - ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
+    - ALSA: ua101: fix division by zero at probe
+    - ALSA: 6fire: fix control and bulk message timeouts
+    - ALSA: line6: fix control and interrupt message timeouts
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 400
+    - ALSA: synth: missing check for possible NULL after the call to kstrdup
+    - ALSA: timer: Fix use-after-free problem
+    - ALSA: timer: Unconditionally unlink slave instances, too
+    - fuse: fix page stealing
+    - x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
+    - x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
+    - x86/irq: Ensure PI wakeup handler is unregistered before module unload
+    - cavium: Return negative value when pci_alloc_irq_vectors() fails
+    - scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
+    - scsi: qla2xxx: Fix unmap of already freed sgl
+    - cavium: Fix return values of the probe function
+    - sfc: Don't use netif_info before net_device setup
+    - hyperv/vmbus: include linux/bitops.h
+    - ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
+    - reset: socfpga: add empty driver allowing consumers to probe
+    - mmc: winbond: don't build on M68K
+    - drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
+    - bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
+    - bpf: Prevent increasing bpf_jit_limit above max
+    - xen/netfront: stop tx queues during live migration
+    - nvmet-tcp: fix a memory leak when releasing a queue
+    - spi: spl022: fix Microwire full duplex mode
+    - net: multicast: calculate csum of looped-back and forwarded packets
+    - watchdog: Fix OMAP watchdog early handling
+    - drm: panel-orientation-quirks: Add quirk for GPD Win3
+    - nvmet-tcp: fix header digest verification
+    - r8169: Add device 10ec:8162 to driver r8169
+    - vmxnet3: do not stop tx queues after netif_device_detach()
+    - nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
+    - net/smc: Correct spelling mistake to TCPF_SYN_RECV
+    - btrfs: clear MISSING device status bit in btrfs_close_one_device
+    - btrfs: fix lost error handling when replaying directory deletes
+    - btrfs: call btrfs_check_rw_degradable only if there is a missing device
+    - ia64: kprobes: Fix to pass correct trampoline address to the handler
+    - hwmon: (pmbus/lm25066) Add offset coefficients
+    - regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is
+      disabled
+    - regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-
+      dvs-idx property
+    - EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
+    - mwifiex: fix division by zero in fw download path
+    - ath6kl: fix division by zero in send path
+    - ath6kl: fix control-message timeout
+    - ath10k: fix control-message timeout
+    - ath10k: fix division by zero in send path
+    - PCI: Mark Atheros QCA6174 to avoid bus reset
+    - rtl8187: fix control-message timeouts
+    - evm: mark evm_fixmode as __ro_after_init
+    - wcn36xx: Fix HT40 capability for 2Ghz band
+    - mwifiex: Read a PCI register after writing the TX ring write pointer
+    - libata: fix checking of DMA state
+    - wcn36xx: handle connection loss indication
+    - rsi: fix occasional initialisation failure with BT coex
+    - rsi: fix key enabled check causing unwanted encryption for vap_id > 0
+    - rsi: fix rate mask set leading to P2P failure
+    - rsi: Fix module dev_oper_mode parameter description
+    - RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
+    - signal: Remove the bogus sigkill_pending in ptrace_stop
+    - signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
+    - power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
+    - power: supply: max17042_battery: use VFSOC for capacity when no rsns
+    - KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
+    - can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
+    - can: j1939: j1939_can_recv(): ignore messages with invalid source address
+    - powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
+    - serial: core: Fix initializing and restoring termios speed
+    - ALSA: mixer: oss: Fix racy access to slots
+    - ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
+    - xen/balloon: add late_initcall_sync() for initial ballooning done
+    - PCI: pci-bridge-emul: Fix emulation of W1C bits
+    - PCI: aardvark: Do not clear status bits of masked interrupts
+    - PCI: aardvark: Fix checking for link up via LTSSM state
+    - PCI: aardvark: Do not unmask unused interrupts
+    - PCI: aardvark: Fix reporting Data Link Layer Link Active
+    - PCI: aardvark: Fix return value of MSI domain .alloc() method
+    - PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
+    - quota: check block number when reading the block in quota file
+    - quota: correct error number in free_dqentry()
+    - pinctrl: core: fix possible memory leak in pinctrl_enable()
+    - iio: dac: ad5446: Fix ad5622_write() return value
+    - USB: serial: keyspan: fix memleak on probe errors
+    - USB: iowarrior: fix control-message timeouts
+    - USB: chipidea: fix interrupt deadlock
+    - dma-buf: WARN on dmabuf release with pending attachments
+    - drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
+    - drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
+    - drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
+    - Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
+    - Bluetooth: fix use-after-free error in lock_sock_nested()
+    - drm/panel-orientation-quirks: add Valve Steam Deck
+    - platform/x86: wmi: do not fail if disabling fails
+    - MIPS: lantiq: dma: add small delay after reset
+    - MIPS: lantiq: dma: reset correct number of channel
+    - locking/lockdep: Avoid RCU-induced noinstr fail
+    - net: sched: update default qdisc visibility after Tx queue cnt changes
+    - smackfs: Fix use-after-free in netlbl_catmap_walk()
+    - x86: Increase exception stack sizes
+    - mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
+    - mwifiex: Properly initialize private structure on interface type changes
+    - ath10k: high latency fixes for beacon buffer
+    - media: mt9p031: Fix corrupted frame after restarting stream
+    - media: netup_unidvb: handle interrupt properly according to the firmware
+    - media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
+    - media: uvcvideo: Set capability in s_param
+    - media: uvcvideo: Return -EIO for control errors
+    - media: uvcvideo: Set unique vdev name based in type
+    - media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
+    - media: s5p-mfc: Add checking to s5p_mfc_probe().
+    - media: imx: set a media_device bus_info string
+    - media: mceusb: return without resubmitting URB in case of -EPROTO error.
+    - ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
+    - brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
+    - media: rcar-csi2: Add checking to rcsi2_start_receiver()
+    - ipmi: Disable some operations during a panic
+    - ACPICA: Avoid evaluating methods too early during system resume
+    - media: ipu3-imgu: imgu_fmt: Handle properly try
+    - media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
+    - media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
+    - net-sysfs: try not to restart the syscall if it will fail eventually
+    - tracefs: Have tracefs directories not set OTH permission bits by default
+    - ath: dfs_pattern_detector: Fix possible null-pointer dereference in
+      channel_detector_create()
+    - iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
+    - ACPI: battery: Accept charges over the design capacity as full
+    - leaking_addresses: Always print a trailing newline
+    - memstick: r592: Fix a UAF bug when removing the driver
+    - lib/xz: Avoid overlapping memcpy() with invalid input with in-place
+      decompression
+    - lib/xz: Validate the value before assigning it to an enum variable
+    - workqueue: make sysfs of unbound kworker cpumask more clever
+    - tracing/cfi: Fix cmp_entries_* functions signature mismatch
+    - mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
+    - block: remove inaccurate requeue check
+    - nvmet: fix use-after-free when a port is removed
+    - nvmet-tcp: fix use-after-free when a port is removed
+    - nvme: drop scan_lock and always kick requeue list when removing namespaces
+    - PM: hibernate: Get block device exclusively in swsusp_check()
+    - selftests: kvm: fix mismatched fclose() after popen()
+    - iwlwifi: mvm: disable RX-diversity in powersave
+    - smackfs: use __GFP_NOFAIL for smk_cipso_doi()
+    - ARM: clang: Do not rely on lr register for stacktrace
+    - gre/sit: Don't generate link-local addr if addr_gen_mode is
+      IN6_ADDR_GEN_MODE_NONE
+    - ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
+    - vrf: run conntrack only in context of lower/physdev for locally generated
+      packets
+    - net: annotate data-race in neigh_output()
+    - btrfs: do not take the uuid_mutex in btrfs_rm_device
+    - spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in
+      bcm_qspi_probe()
+    - x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
+    - parisc: fix warning in flush_tlb_all
+    - task_stack: Fix end_of_stack() for architectures with upwards-growing stack
+    - parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
+    - parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
+    - netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream
+      state
+    - selftests/bpf: Fix strobemeta selftest regression
+    - Bluetooth: fix init and cleanup of sco_conn.timeout_work
+    - rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
+    - drm/v3d: fix wait for TMU write combiner flush
+    - virtio-gpu: fix possible memory allocation failure
+    - net: net_namespace: Fix undefined member in key_remove_domain()
+    - cgroup: Make rebind_subsystems() disable v2 controllers all at once
+    - wilc1000: fix possible memory leak in cfg_scan_result()
+    - Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
+    - crypto: caam - disable pkc for non-E SoCs
+    - rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
+    - net: dsa: rtl8366rb: Fix off-by-one bug
+    - ath10k: Fix missing frame timestamp for beacon/probe-resp
+    - drm/amdgpu: fix warning for overflow check
+    - media: em28xx: add missing em28xx_close_extension
+    - media: cxd2880-spi: Fix a null pointer dereference on error handling path
+    - media: dvb-usb: fix ununit-value in az6027_rc_query
+    - media: TDA1997x: handle short reads of hdmi info frame.
+    - media: mtk-vpu: Fix a resource leak in the error handling path of
+      'mtk_vpu_probe()'
+    - media: radio-wl1273: Avoid card name truncation
+    - media: si470x: Avoid card name truncation
+    - media: tm6000: Avoid card name truncation
+    - media: cx23885: Fix snd_card_free call on null card pointer
+    - kprobes: Do not use local variable when creating debugfs file
+    - crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
+    - cpuidle: Fix kobject memory leaks in error paths
+    - media: em28xx: Don't use ops->suspend if it is NULL
+    - ath9k: Fix potential interrupt storm on queue reset
+    - EDAC/amd64: Handle three rank interleaving mode
+    - netfilter: nft_dynset: relax superfluous check on set updates
+    - media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
+    - crypto: qat - detect PFVF collision after ACK
+    - crypto: qat - disregard spurious PFVF interrupts
+    - hwrng: mtk - Force runtime pm ops for sleep ops
+    - b43legacy: fix a lower bounds test
+    - b43: fix a lower bounds test
+    - mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
+    - memstick: avoid out-of-range warning
+    - memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
+    - net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
+    - hwmon: Fix possible memleak in __hwmon_device_register()
+    - hwmon: (pmbus/lm25066) Let compiler determine outer dimension of
+      lm25066_coeff
+    - ath10k: fix max antenna gain unit
+    - drm/msm: uninitialized variable in msm_gem_import()
+    - net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
+    - mmc: mxs-mmc: disable regulator on error and in the remove function
+    - block: ataflop: fix breakage introduced at blk-mq refactoring
+    - platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
+    - mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
+    - rsi: stop thread firstly in rsi_91x_init() error handling
+    - mwifiex: Send DELBA requests according to spec
+    - phy: micrel: ksz8041nl: do not use power down mode
+    - nvme-rdma: fix error code in nvme_rdma_setup_ctrl
+    - PM: hibernate: fix sparse warnings
+    - clocksource/drivers/timer-ti-dm: Select TIMER_OF
+    - drm/msm: Fix potential NULL dereference in DPU SSPP
+    - smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
+    - libbpf: Fix BTF data layout checks and allow empty BTF
+    - s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
+    - irq: mips: avoid nested irq_enter()
+    - tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
+    - samples/kretprobes: Fix return value if register_kretprobe() failed
+    - KVM: s390: Fix handle_sske page fault handling
+    - libertas_tf: Fix possible memory leak in probe and disconnect
+    - libertas: Fix possible memory leak in probe and disconnect
+    - wcn36xx: add proper DMA memory barriers in rx path
+    - drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
+    - net: amd-xgbe: Toggle PLL settings during rate change
+    - net: phylink: avoid mvneta warning when setting pause parameters
+    - crypto: pcrypt - Delay write to padata->info
+    - selftests/bpf: Fix fclose/pclose mismatch in test_progs
+    - udp6: allow SO_MARK ctrl msg to affect routing
+    - ibmvnic: don't stop queue in xmit
+    - ibmvnic: Process crqs after enabling interrupts
+    - RDMA/rxe: Fix wrong port_cap_flags
+    - clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
+    - ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
+    - arm64: dts: rockchip: Fix GPU register width for RK3328
+    - ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
+    - RDMA/bnxt_re: Fix query SRQ failure
+    - arm64: dts: meson-g12a: Fix the pwm regulator supply properties
+    - ARM: dts: at91: tse850: the emac<->phy interface is rmii
+    - scsi: dc395: Fix error case unwinding
+    - MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
+    - JFS: fix memleak in jfs_mount
+    - ALSA: hda: Reduce udelay() at SKL+ position reporting
+    - arm: dts: omap3-gta04a4: accelerometer irq fix
+    - soc/tegra: Fix an error handling path in tegra_powergate_power_up()
+    - memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
+    - clk: at91: check pmc node status before registering syscore ops
+    - video: fbdev: chipsfb: use memset_io() instead of memset()
+    - serial: 8250_dw: Drop wrong use of ACPI_PTR()
+    - usb: gadget: hid: fix error code in do_config()
+    - power: supply: rt5033_battery: Change voltage values to µV
+    - scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
+    - RDMA/mlx4: Return missed an error if device doesn't support steering
+    - staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
+    - ARM: dts: stm32: fix SAI sub nodes register range
+    - ASoC: cs42l42: Correct some register default values
+    - ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
+    - phy: qcom-qusb2: Fix a memory leak on probe
+    - serial: xilinx_uartps: Fix race condition causing stuck TX
+    - HID: u2fzero: clarify error check and length calculations
+    - HID: u2fzero: properly handle timeouts in usb_submit_urb
+    - powerpc/44x/fsp2: add missing of_node_put
+    - mips: cm: Convert to bitfield API to fix out-of-bounds access
+    - power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
+    - apparmor: fix error check
+    - rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
+    - pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
+    - drm/plane-helper: fix uninitialized variable reference
+    - PCI: aardvark: Don't spam about PIO Response Status
+    - PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
+    - opp: Fix return in _opp_add_static_v2()
+    - NFS: Fix deadlocks in nfs_scan_commit_list()
+    - fs: orangefs: fix error return code of orangefs_revalidate_lookup()
+    - mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
+    - mtd: core: don't remove debugfs directory if device is in use
+    - dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
+    - auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
+    - auxdisplay: ht16k33: Connect backlight to fbdev
+    - auxdisplay: ht16k33: Fix frame buffer device blanking
+    - soc: fsl: dpaa2-console: free buffer before returning from
+      dpaa2_console_read
+    - netfilter: nfnetlink_queue: fix OOB when mac header was cleared
+    - dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
+    - signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
+    - m68k: set a default value for MEMORY_RESERVE
+    - watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
+    - ar7: fix kernel builds for compiler test
+    - scsi: qla2xxx: Fix gnl list corruption
+    - scsi: qla2xxx: Turn off target reset during issue_lip
+    - NFSv4: Fix a regression in nfs_set_open_stateid_locked()
+    - i2c: xlr: Fix a resource leak in the error handling path of
+      'xlr_i2c_probe()'
+    - xen-pciback: Fix return in pm_ctrl_init()
+    - net: davinci_emac: Fix interrupt pacing disable
+    - net: vlan: fix a UAF in vlan_dev_real_dev()
+    - ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
+    - bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
+    - mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and
+      zs_unregister_migration()
+    - zram: off by one in read_block_state()
+    - perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
+    - llc: fix out-of-bound array index in llc_sk_dev_hash()
+    - nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
+    - arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
+    - bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
+    - net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
+    - net: hns3: allow configure ETS bandwidth of all TCs
+    - vsock: prevent unnecessary refcnt inc for nonblocking connect
+    - net/smc: fix sk_refcnt underflow on linkdown and fallback
+    - cxgb4: fix eeprom len when diagnostics not implemented
+    - selftests/net: udpgso_bench_rx: fix port argument
+    - ARM: 9155/1: fix early early_iounmap()
+    - ARM: 9156/1: drop cc-option fallbacks for architecture selection
+    - parisc: Fix set_fixmap() on PA1.x CPUs
+    - irqchip/sifive-plic: Fixup EOI failed when masked
+    - f2fs: should use GFP_NOFS for directory inodes
+    - net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
+    - 9p/net: fix missing error check in p9_check_errors
+    - ovl: fix deadlock in splice write
+    - powerpc/lib: Add helper to check if offset is within conditional branch
+      range
+    - powerpc/bpf: Validate branch ranges
+    - powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
+    - powerpc/security: Add a helper to query stf_barrier type
+    - powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
+    - mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
+    - mm, oom: do not trigger out_of_memory from the #PF
+    - video: backlight: Drop maximum brightness override for brightness zero
+    - s390/cio: check the subchannel validity for dev_busid
+    - s390/tape: fix timer initialization in tape_std_assign()
+    - s390/cio: make ccw_device_dma_* more robust
+    - powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
+    - PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
+    - SUNRPC: Partial revert of commit 6f9f17287e78
+    - ath10k: fix invalid dma_addr_t token assignment
+    - selftests/bpf: Fix also no-alu32 strobemeta selftest
+    - Linux 5.4.160
+    - soc/tegra: pmc: Fix imbalanced clock disabling in error code path
+
+  * Focal update: v5.4.159 upstream stable release (LP: #1953071)
+    - Revert "x86/kvm: fix vcpu-id indexed array sizes"
+    - usb: ehci: handshake CMD_RUN instead of STS_HALT
+    - usb: gadget: Mark USB_FSL_QE broken on 64-bit
+    - usb: musb: Balance list entry in musb_gadget_queue
+    - usb-storage: Add compatibility quirk flags for iODD 2531/2541
+    - binder: don't detect sender/target during buffer cleanup
+    - printk/console: Allow to disable console output by using console="" or
+      console=null
+    - isofs: Fix out of bound access for corrupted isofs image
+    - comedi: dt9812: fix DMA buffers on stack
+    - comedi: ni_usb6501: fix NULL-deref in command paths
+    - comedi: vmk80xx: fix transfer-buffer overflows
+    - comedi: vmk80xx: fix bulk-buffer overflow
+    - comedi: vmk80xx: fix bulk and interrupt message timeouts
+    - staging: r8712u: fix control-message timeout
+    - staging: rtl8192u: fix control-message timeouts
+    - media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
+    - rsi: fix control-message timeout
+    - Linux 5.4.159
+
+  * Focal update: v5.4.158 upstream stable release (LP: #1953066)
+    - scsi: core: Put LLD module refcnt after SCSI device is released
+    - vrf: Revert "Reset skb conntrack connection..."
+    - net: ethernet: microchip: lan743x: Fix skb allocation failure
+    - media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
+    - Revert "xhci: Set HCD flag to defer primary roothub registration"
+    - Revert "usb: core: hcd: Add support for deferring roothub registration"
+    - sfc: Fix reading non-legacy supported link modes
+    - ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
+    - Linux 5.4.158
+
+  * [Ubuntu 20.04] Problem leading IUCV service down (on s390x) (LP: #1913442)
+    - usercopy: mark dma-kmalloc caches as usercopy caches
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Thu, 13 Jan 2022 19:00:41 +0100
+
+linux (5.4.0-96.109) focal; urgency=medium
+
+  * Support builtin revoked certificates (LP: #1932029)
+    - [Config]: add i386 to CONFIG_SYSTEM_REVOCATION_KEYS annotation
+
+  * CVE-2022-0185
+    - SAUCE: vfs: Out-of-bounds write of heap buffer in fs_context.c
+    - SAUCE: vfs: test that one given mount param is not larger than PAGE_SIZE
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 12 Jan 2022 12:16:43 -0300
+
+linux (5.4.0-94.106) focal; urgency=medium
+
+  * focal/linux: 5.4.0-94.106 -proposed tracker (LP: #1956628)
+
+  * [Regression] Focal kernel  5.4.0-92.103 fails to boot when Secure Encrypted
+    Virtualization(SEV) is enabled (LP: #1956575)
+    - x86/ioremap: Map EFI-reserved memory as encrypted for SEV
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Thu, 06 Jan 2022 16:56:46 -0500
+
+linux (5.4.0-92.103) focal; urgency=medium
+
+  * focal/linux: 5.4.0-92.103 -proposed tracker (LP: #1952316)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - debian/dkms-versions -- update from kernel-versions (main/2021.11.29)
+
+  * CVE-2021-4002
+    - tlb: mmu_gather: add tlb_flush_*_range APIs
+    - hugetlbfs: flush TLBs correctly after huge_pmd_unshare
+
+  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
+    - [Config] Enable CONFIG_DEBUG_INFO_BTF on all arches
+
+  * Focal linux-azure: Vm crash on Dv5/Ev5 (LP: #1950462)
+    - KVM: VMX: eVMCS: make evmcs_sanitize_exec_ctrls() work again
+    - jump_label: Fix usage in module __init
+
+  * Support builtin revoked certificates (LP: #1932029)
+    - Revert "UBUNTU: SAUCE: (lockdown) Make get_cert_list() not complain about
+      cert lists that aren't present."
+    - integrity: Move import of MokListRT certs to a separate routine
+    - integrity: Load certs from the EFI MOK config table
+    - certs: Add ability to preload revocation certs
+    - integrity: Load mokx variables into the blacklist keyring
+    - certs: add 'x509_revocation_list' to gitignore
+    - SAUCE: Dump stack when X.509 certificates cannot be loaded
+    - [Packaging] build canonical-revoked-certs.pem from branch/arch certs
+    - [Packaging] Revoke 2012 UEFI signing certificate as built-in
+    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
+
+  * Support importing mokx keys into revocation list from the mok table
+    (LP: #1928679)
+    - efi: Support for MOK variable config table
+    - efi: mokvar-table: fix some issues in new code
+    - efi: mokvar: add missing include of asm/early_ioremap.h
+    - efi/mokvar: Reserve the table only if it is in boot services data
+    - SAUCE: integrity: add informational messages when revoking certs
+
+  * Support importing mokx keys into revocation list from the mok table
+    (LP: #1928679) // CVE-2020-26541 when certificates are revoked via
+    MokListXRT.
+    - SAUCE: integrity: Load mokx certs from the EFI MOK config table
+
+  * Focal update: v5.4.157 upstream stable release (LP: #1951883)
+    - ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
+    - ARM: 9134/1: remove duplicate memcpy() definition
+    - ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
+    - ARM: 9141/1: only warn about XIP address when not compile testing
+    - ipv6: use siphash in rt6_exception_hash()
+    - ipv4: use siphash instead of Jenkins in fnhe_hashfun()
+    - usbnet: sanity check for maxpacket
+    - usbnet: fix error return code in usbnet_probe()
+    - Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
+    - ata: sata_mv: Fix the error handling of mv_chip_id()
+    - nfc: port100: fix using -ERRNO as command type mask
+    - net/tls: Fix flipped sign in tls_err_abort() calls
+    - mmc: vub300: fix control-message timeouts
+    - mmc: cqhci: clear HALT state after CQE enable
+    - mmc: dw_mmc: exynos: fix the finding clock sample value
+    - mmc: sdhci: Map more voltage level to SDHCI_POWER_330
+    - mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning
+      circuit
+    - cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
+    - net: lan78xx: fix division by zero in send path
+    - tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
+    - IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
+    - IB/hfi1: Fix abba locking issue with sc_disable()
+    - nvmet-tcp: fix data digest pointer calculation
+    - nvme-tcp: fix data digest pointer calculation
+    - RDMA/mlx5: Set user priority for DCT
+    - arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
+    - regmap: Fix possible double-free in regcache_rbtree_exit()
+    - net: batman-adv: fix error handling
+    - net: Prevent infinite while loop in skb_tx_hash()
+    - RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
+    - nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
+    - net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume
+      fails
+    - net: ethernet: microchip: lan743x: Fix dma allocation failure by using
+      dma_set_mask_and_coherent
+    - net: nxp: lpc_eth.c: avoid hang when bringing interface down
+    - net/tls: Fix flipped sign in async_wait.err assignment
+    - phy: phy_ethtool_ksettings_get: Lock the phy for consistency
+    - phy: phy_start_aneg: Add an unlocked version
+    - sctp: use init_tag from inithdr for ABORT chunk
+    - sctp: fix the processing for INIT_ACK chunk
+    - sctp: fix the processing for COOKIE_ECHO chunk
+    - sctp: add vtag check in sctp_sf_violation
+    - sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
+    - sctp: add vtag check in sctp_sf_ootb
+    - net: use netif_is_bridge_port() to check for IFF_BRIDGE_PORT
+    - cfg80211: correct bridge/4addr mode check
+    - KVM: s390: clear kicked_mask before sleeping again
+    - KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
+    - perf script: Check session->header.env.arch before using it
+    - Linux 5.4.157
+
+  * keyboard not working on Medion notebook s17 series (LP: #1950536)
+    - ACPI: resources: Add one more Medion model in IRQ override quirk
+
+  * creat09 from ubuntu_ltp_syscalls and cve-2018-13405 from ubuntu_ltp/cve
+    failed with XFS (LP: #1950239)
+    - xfs: ensure that the inode uid/gid match values match the icdinode ones
+    - xfs: merge the projid fields in struct xfs_icdinode
+    - xfs: remove the icdinode di_uid/di_gid members
+    - xfs: fix up non-directory creation in SGID directories
+
+  * reuseport_bpf_numa in net from ubuntu_kernel_selftests fails on ppc64le
+    (LP: #1867570)
+    - selftests/net: Fix reuseport_bpf_numa by skipping unavailable nodes
+
+  * Focal update: v5.4.156 upstream stable release (LP: #1951295)
+    - parisc: math-emu: Fix fall-through warnings
+    - net: switchdev: do not propagate bridge updates across bridges
+    - tee: optee: Fix missing devices unregister during optee_remove
+    - ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
+    - xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
+    - xtensa: xtfpga: Try software restart before simulating CPU reset
+    - NFSD: Keep existing listeners on portlist error
+    - dma-debug: fix sg checks in debug_dma_map_sg()
+    - ASoC: wm8960: Fix clock configuration on slave mode
+    - netfilter: ipvs: make global sysctl readonly in non-init netns
+    - lan78xx: select CRC32
+    - net: dsa: lantiq_gswip: fix register definition
+    - NIOS2: irqflags: rename a redefined register name
+    - net: hns3: reset DWRR of unused tc to zero
+    - net: hns3: add limit ets dwrr bandwidth cannot be 0
+    - net: hns3: disable sriov before unload hclge layer
+    - net: stmmac: Fix E2E delay mechanism
+    - net: enetc: fix ethtool counter name for PM0_TERR
+    - can: rcar_can: fix suspend/resume
+    - can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state
+      notification
+    - can: peak_pci: peak_pci_remove(): fix UAF
+    - can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
+    - can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
+    - can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with
+      error length
+    - can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
+    - ceph: fix handling of "meta" errors
+    - ocfs2: fix data corruption after conversion from inline format
+    - ocfs2: mount fails with buffer overflow in strlen
+    - elfcore: correct reference to CONFIG_UML
+    - ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
+    - ALSA: hda/realtek: Add quirk for Clevo PC50HS
+    - ASoC: DAPM: Fix missing kctl change notifications
+    - audit: fix possible null-pointer dereference in audit_filter_rules
+    - powerpc64/idle: Fix SP offsets when saving GPRs
+    - KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
+    - KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to
+      guest
+    - powerpc/idle: Don't corrupt back chain when going idle
+    - mm, slub: fix mismatch between reconstructed freelist depth and cnt
+    - mm, slub: fix potential memoryleak in kmem_cache_open()
+    - nfc: nci: fix the UAF of rf_conn_info object
+    - isdn: cpai: check ctr->cnr to avoid array index out of bound
+    - netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
+    - selftests: netfilter: remove stray bash debug line
+    - gcc-plugins/structleak: add makefile var for disabling structleak
+    - btrfs: deal with errors when checking if a dir entry exists during log
+      replay
+    - net: stmmac: add support for dwmac 3.40a
+    - ARM: dts: spear3xx: Fix gmac node
+    - isdn: mISDN: Fix sleeping function called from invalid context
+    - platform/x86: intel_scu_ipc: Update timeout value in comment
+    - ALSA: hda: avoid write to STATESTS if controller is in reset
+    - Input: snvs_pwrkey - add clk handling
+    - scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
+    - tracing: Have all levels of checks prevent recursion
+    - ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
+    - pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
+    - Linux 5.4.156
+
+  * ubuntu_ltp / finit_module02 fails on v4.15 and other kernels
+    (LP: #1950644) // Focal update: v5.4.156 upstream stable release
+    (LP: #1951295)
+    - vfs: check fd has read access in kernel_read_file_from_fd()
+
+  * Focal update: v5.4.155 upstream stable release (LP: #1951291)
+    - ovl: simplify file splice
+    - ALSA: usb-audio: Add quirk for VF0770
+    - ALSA: seq: Fix a potential UAF by wrong private_free call order
+    - ALSA: hda/realtek: Complete partial device name to avoid ambiguity
+    - ALSA: hda/realtek: Add quirk for Clevo X170KM-G
+    - ALSA: hda/realtek - ALC236 headset MIC recording issue
+    - ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
+    - nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
+    - s390: fix strrchr() implementation
+    - csky: don't let sigreturn play with priveleged bits of status register
+    - csky: Fixup regs.sr broken in ptrace
+    - btrfs: unlock newly allocated extent buffer after error
+    - btrfs: deal with errors when replaying dir entry during log replay
+    - btrfs: deal with errors when adding inode reference during log replay
+    - btrfs: check for error when looking up inode during dir entry replay
+    - watchdog: orion: use 0 for unset heartbeat
+    - x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
+    - mei: me: add Ice Lake-N device id.
+    - xhci: guard accesses to ep_state in xhci_endpoint_reset()
+    - xhci: Fix command ring pointer corruption while aborting a command
+    - xhci: Enable trust tx length quirk for Fresco FL11 USB controller
+    - cb710: avoid NULL pointer subtraction
+    - efi/cper: use stack buffer for error record decoding
+    - efi: Change down_interruptible() in virt_efi_reset_system() to
+      down_trylock()
+    - usb: musb: dsps: Fix the probe error path
+    - Input: xpad - add support for another USB ID of Nacon GC-100
+    - USB: serial: qcserial: add EM9191 QDL support
+    - USB: serial: option: add Quectel EC200S-CN module support
+    - USB: serial: option: add Telit LE910Cx composition 0x1204
+    - USB: serial: option: add prod. id for Quectel EG91
+    - EDAC/armada-xp: Fix output of uncorrectable error counter
+    - nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
+    - x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
+    - powerpc/xive: Discard disabled interrupts in get_irqchip_state()
+    - iio: adc: aspeed: set driver data when adc probe.
+    - iio: adc128s052: Fix the error handling path of 'adc128_probe()'
+    - iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
+    - iio: light: opt3001: Fixed timeout error when 0 lux
+    - iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
+    - iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
+    - iio: dac: ti-dac5571: fix an error code in probe()
+    - sctp: account stream padding length for reconf chunk
+    - gpio: pca953x: Improve bias setting
+    - net: arc: select CRC32
+    - net: korina: select CRC32
+    - net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
+    - net: stmmac: fix get_hw_feature() on old hardware
+    - net: encx24j600: check error in devm_regmap_init_encx24j600
+    - ethernet: s2io: fix setting mac address during resume
+    - nfc: fix error handling of nfc_proto_register()
+    - NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
+    - NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
+    - pata_legacy: fix a couple uninitialized variable bugs
+    - ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
+    - mlxsw: thermal: Fix out-of-bounds memory accesses
+    - platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
+    - drm/panel: olimex-lcd-olinuxino: select CRC32
+    - drm/msm: Fix null pointer dereference on pointer edp
+    - drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
+    - drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
+    - acpi/arm64: fix next_platform_timer() section mismatch error
+    - mqprio: Correct stats in mqprio_dump_class_stats().
+    - qed: Fix missing error code in qed_slowpath_start()
+    - r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
+    - ionic: don't remove netdev->dev_addr when syncing uc list
+    - Linux 5.4.155
+
+  * [UBUNTU 20.04] kernel:  unable to read partitions on virtio-block dasd (kvm)
+    (LP: #1950144) // Focal update: v5.4.155 upstream stable release
+    (LP: #1951291)
+    - virtio: write back F_VERSION_1 before validate
+
+  * Focal update: v5.4.154 upstream stable release (LP: #1951288)
+    - net: phy: bcm7xxx: Fixed indirect MMD operations
+    - ext4: correct the error path of ext4_write_inline_data_end()
+    - HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
+    - netfilter: ip6_tables: zero-initialize fragment offset
+    - HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
+    - netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
+    - netfilter: nf_nat_masquerade: defer conntrack walk to work queue
+    - mac80211: Drop frames from invalid MAC address in ad-hoc mode
+    - m68k: Handle arrivals of multiple signals correctly
+    - net: prevent user from passing illegal stab size
+    - mac80211: check return value of rhashtable_init
+    - net: sun: SUNVNET_COMMON should depend on INET
+    - drm/amdgpu: fix gart.bo pin_count leak
+    - scsi: ses: Fix unsigned comparison with less than zero
+    - scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
+    - sched: Always inline is_percpu_thread()
+    - Linux 5.4.154
+
+  * Focal update: v5.4.153 upstream stable release (LP: #1950014)
+    - Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
+    - USB: cdc-acm: fix racy tty buffer accesses
+    - USB: cdc-acm: fix break reporting
+    - usb: typec: tcpm: handle SRC_STARTUP state if cc changes
+    - xen/privcmd: fix error handling in mmap-resource processing
+    - mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
+    - ovl: fix missing negative dentry check in ovl_rename()
+    - nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
+    - nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
+    - xen/balloon: fix cancelled balloon action
+    - ARM: dts: omap3430-sdp: Fix NAND device node
+    - ARM: dts: qcom: apq8064: use compatible which contains chipid
+    - MIPS: BPF: Restore MIPS32 cBPF JIT
+    - bpf, mips: Validate conditional branch offsets
+    - soc: qcom: socinfo: Fixed argument passed to platform_set_data()
+    - ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
+    - soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
+    - ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
+    - ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
+    - arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
+    - xtensa: move XCHAL_KIO_* definitions to kmem_layout.h
+    - xtensa: use CONFIG_USE_OF instead of CONFIG_OF
+    - xtensa: call irqchip_init only when CONFIG_USE_OF is selected
+    - bpf, arm: Fix register clobbering in div/mod implementation
+    - bpf: Fix integer overflow in prealloc_elems_and_freelist()
+    - phy: mdio: fix memory leak
+    - net_sched: fix NULL deref in fifo_set_limit()
+    - powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
+    - ptp_pch: Load module automatically if ID matches
+    - arm64: dts: freescale: Fix SP805 clock-names
+    - arm64: dts: ls1028a: add missing CAN nodes
+    - ARM: imx6: disable the GIC CPU interface before calling stby-poweroff
+      sequence
+    - net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
+    - net/sched: sch_taprio: properly cancel timer from taprio_destroy()
+    - net: sfp: Fix typo in state machine debug string
+    - netlink: annotate data races around nlk->bound
+    - bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
+    - video: fbdev: gbefb: Only instantiate device when built for IP32
+    - drm/nouveau/debugfs: fix file release memory leak
+    - gve: Correct available tx qpl check
+    - rtnetlink: fix if_nlmsg_stats_size() under estimation
+    - gve: fix gve_get_stats()
+    - i40e: fix endless loop under rtnl
+    - i40e: Fix freeing of uninitialized misc IRQ vector
+    - net: prefer socket bound to interface when not in VRF
+    - i2c: acpi: fix resource leak in reconfiguration device addition
+    - bpf, s390: Fix potential memory leak about jit_data
+    - RISC-V: Include clone3() on rv32
+    - x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
+    - x86/hpet: Use another crystalball to evaluate HPET usability
+    - x86/Kconfig: Correct reference to MWINCHIP3D
+    - Linux 5.4.153
+
+  * Focal update: v5.4.152 upstream stable release (LP: #1950009)
+    - net: mdio: introduce a shutdown method to mdio device drivers
+    - xen-netback: correct success/error reporting for the SKB-with-fraglist case
+    - sparc64: fix pci_iounmap() when CONFIG_PCI is not set
+    - ext2: fix sleeping in atomic bugs on error
+    - scsi: sd: Free scsi_disk device via put_device()
+    - usb: testusb: Fix for showing the connection speed
+    - usb: dwc2: check return value after calling platform_get_resource()
+    - selftests: be sure to make khdr before other targets
+    - selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
+    - scsi: ses: Retry failed Send/Receive Diagnostic commands
+    - tools/vm/page-types: remove dependency on opt_file for idle page tracking
+    - KVM: do not shrink halt_poll_ns below grow_start
+    - kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
+    - perf/x86: Reset destroy callback on event init failure
+    - silence nfscache allocation warnings with kvzalloc
+    - libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
+    - Linux 5.4.152
+
+  * linux-aws: Fix backport of RDMA/efa: Expose maximum  TX doorbell batch
+    (LP: #1949882)
+    - SAUCE: aws: Fix backport of RDMA/efa: Expose maximum TX doorbell batch
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 26 Nov 2021 15:42:03 +0100
+
+linux (5.4.0-91.102) focal; urgency=medium
+
+  * focal/linux: 5.4.0-91.102 -proposed tracker (LP: #1949840)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update Ubuntu.md
+    - debian/dkms-versions -- update from kernel-versions (main/2021.11.08)
+
+  * KVM emulation failure when booting into  VM crash kernel with multiple CPUs
+    (LP: #1948862)
+    - KVM: x86: Properly reset MMU context at vCPU RESET/INIT
+
+  * aufs: kernel bug with apparmor and fuseblk (LP: #1948470)
+    - SAUCE: aufs: bugfix, stop omitting path->mnt
+
+  * ebpf:  bpf_redirect fails with ip6 gre interfaces (LP: #1947164)
+    - net: handle ARPHRD_IP6GRE in dev_is_mac_header_xmit()
+
+  * require CAP_NET_ADMIN to attach N_HCI ldisc (LP: #1949516)
+    - Bluetooth: hci_ldisc: require CAP_NET_ADMIN to attach N_HCI ldisc
+
+  * ACL updates on OCFS2 are not revalidated (LP: #1947161)
+    - ocfs2: fix remounting needed after setfacl command
+
+  * ppc64 BPF JIT mod by 1 will not return 0 (LP: #1948351)
+    - powerpc/bpf: Fix BPF_MOD when imm == 1
+
+  * Drop "UBUNTU: SAUCE: cachefiles: Page leaking in
+    cachefiles_read_backing_file while vmscan is active" (LP: #1947709)
+    - Revert "UBUNTU: SAUCE: cachefiles: Page leaking in
+      cachefiles_read_backing_file while vmscan is active"
+
+  * Reassign I/O Path of ConnectX-5 Port 1 before Port 2 causes NULL dereference
+    (LP: #1943464)
+    - s390/pci: fix leak of PCI device structure
+    - s390/pci: fix use after free of zpci_dev
+    - s390/pci: fix zpci_zdev_put() on reserve
+
+  * [SRU][F] USB: serial: pl2303: add support for PL2303HXN (LP: #1948377)
+    - USB: serial: pl2303: add support for PL2303HXN
+    - USB: serial: pl2303: fix line-speed handling on newer chips
+
+  * Focal update: v5.4.151 upstream stable release (LP: #1947888)
+    - tty: Fix out-of-bound vmalloc access in imageblit
+    - cpufreq: schedutil: Use kobject release() method to free sugov_tunables
+    - cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
+    - usb: cdns3: fix race condition before setting doorbell
+    - fs-verity: fix signed integer overflow with i_size near S64_MAX
+    - hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - scsi: ufs: Fix illegal offset in UPIU event trace
+    - mac80211: fix use-after-free in CCMP/GCMP RX
+    - x86/kvmclock: Move this_cpu_pvti into kvmclock.h
+    - drm/amd/display: Pass PCI deviceid into DC
+    - ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
+    - hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced
+      from sysfs
+    - mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
+    - mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
+    - mac80211: mesh: fix potentially unaligned access
+    - mac80211-hwsim: fix late beacon hrtimer handling
+    - sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
+    - hwmon: (tmp421) report /PVLD condition as fault
+    - hwmon: (tmp421) fix rounding for negative values
+    - net: ipv4: Fix rtnexthop len when RTA_FLOW is present
+    - e100: fix length calculation in e100_get_regs_len
+    - e100: fix buffer overrun in e100_get_regs
+    - selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
+    - scsi: csiostor: Add module softdep on cxgb4
+    - net: hns3: do not allow call hns3_nic_net_open repeatedly
+    - net: sched: flower: protect fl_walk() with rcu
+    - af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
+    - perf/x86/intel: Update event constraints for ICX
+    - elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
+    - debugfs: debugfs_create_file_size(): use IS_ERR to check for error
+    - ipack: ipoctal: fix stack information leak
+    - ipack: ipoctal: fix tty registration race
+    - ipack: ipoctal: fix tty-registration error handling
+    - ipack: ipoctal: fix missing allocation-failure check
+    - ipack: ipoctal: fix module reference leak
+    - ext4: fix loff_t overflow in ext4_max_bitmap_size()
+    - ext4: fix reserved space counter leakage
+    - ext4: fix potential infinite loop in ext4_dx_readdir()
+    - HID: u2fzero: ignore incomplete packets without data
+    - net: udp: annotate data race around udp_sk(sk)->corkflag
+    - net: stmmac: don't attach interface until resume finishes
+    - PCI: Fix pci_host_bridge struct device release/free handling
+    - libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
+    - hso: fix bailout in error case of probe
+    - usb: hso: fix error handling code of hso_create_net_device
+    - usb: hso: remove the bailout parameter
+    - crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
+    - HID: betop: fix slab-out-of-bounds Write in betop_probe
+    - netfilter: ipset: Fix oversized kvmalloc() calls
+    - HID: usbhid: free raw_report buffers in usbhid_stop
+    - Linux 5.4.151
+
+  * Focal update: v5.4.150 upstream stable release (LP: #1947886)
+    - usb: gadget: r8a66597: fix a loop in set_feature()
+    - usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
+    - usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
+    - usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
+    - cifs: fix incorrect check for null pointer in header_assemble
+    - xen/x86: fix PV trap handling on secondary processors
+    - usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
+    - USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
+    - USB: cdc-acm: fix minor-number release
+    - binder: make sure fd closes complete
+    - staging: greybus: uart: fix tty use after free
+    - Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
+    - USB: serial: mos7840: remove duplicated 0xac24 device ID
+    - USB: serial: option: add Telit LN920 compositions
+    - USB: serial: option: remove duplicate USB device ID
+    - USB: serial: option: add device id for Foxconn T99W265
+    - mcb: fix error handling in mcb_alloc_bus()
+    - erofs: fix up erofs_lookup tracepoint
+    - btrfs: prevent __btrfs_dump_space_info() to underflow its free space
+    - serial: mvebu-uart: fix driver's tx_empty callback
+    - net: hso: fix muxed tty registration
+    - afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation
+    - platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR()
+    - enetc: Fix illegal access when reading affinity_hint
+    - bnxt_en: Fix TX timeout when TX ring size is set to the smallest
+    - net/smc: add missing error check in smc_clc_prfx_set()
+    - gpio: uniphier: Fix void functions to remove return value
+    - qed: rdma - don't wait for resources under hw error recovery flow
+    - net/mlx4_en: Don't allow aRFS for encapsulated packets
+    - scsi: iscsi: Adjust iface sysfs attr detection
+    - tty: synclink_gt, drop unneeded forward declarations
+    - tty: synclink_gt: rename a conflicting function name
+    - fpga: machxo2-spi: Return an error on failure
+    - fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
+    - thermal/core: Potential buffer overflow in thermal_build_list_of_policies()
+    - cifs: fix a sign extension bug
+    - scsi: qla2xxx: Restore initiator in dual mode
+    - scsi: lpfc: Use correct scnprintf() limit
+    - irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
+    - irqchip/gic-v3-its: Fix potential VPE leak on error
+    - md: fix a lock order reversal in md_alloc
+    - blktrace: Fix uaf in blk_trace access after removing by sysfs
+    - net: macb: fix use after free on rmmod
+    - net: stmmac: allow CSR clock of 300MHz
+    - m68k: Double cast io functions to unsigned long
+    - ipv6: delay fib6_sernum increase in fib6_add
+    - bpf: Add oversize check before call kvcalloc()
+    - xen/balloon: use a kernel thread instead a workqueue
+    - nvme-multipath: fix ANA state updates when a namespace is not present
+    - sparc32: page align size in arch_dma_alloc
+    - blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
+    - compiler.h: Introduce absolute_pointer macro
+    - net: i825xx: Use absolute_pointer for memcpy from fixed memory location
+    - sparc: avoid stringop-overread errors
+    - qnx4: avoid stringop-overread errors
+    - parisc: Use absolute_pointer() to define PAGE0
+    - arm64: Mark __stack_chk_guard as __ro_after_init
+    - alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
+    - net: 6pack: Fix tx timeout and slot time
+    - spi: Fix tegra20 build with CONFIG_PM=n
+    - EDAC/synopsys: Fix wrong value type assignment for edac_mode
+    - thermal/drivers/int340x: Do not set a wrong tcc offset on resume
+    - arm64: dts: marvell: armada-37xx: Extend PCIe MEM space
+    - xen/balloon: fix balloon kthread freezing
+    - qnx4: work around gcc false positive warning bug
+    - Linux 5.4.150
+
+  * ACL updates on OCFS2 are not revalidated (LP: #1947161) // Focal update:
+    v5.4.150 upstream stable release (LP: #1947886)
+    - ocfs2: drop acl cache for directories too
+
+  * Focal update: v5.4.149 upstream stable release (LP: #1947885)
+    - PCI: pci-bridge-emul: Fix big-endian support
+    - PCI: aardvark: Indicate error in 'val' when config read fails
+    - PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
+    - PCI: aardvark: Fix reporting CRS value
+    - PCI/ACPI: Add Ampere Altra SOC MCFG quirk
+    - KVM: remember position in kvm->vcpus array
+    - console: consume APC, DM, DCS
+    - s390/pci_mmio: fully validate the VMA before calling follow_pte()
+    - ARM: Qualify enabling of swiotlb_init()
+    - apparmor: remove duplicate macro list_entry_is_head()
+    - ARM: 9077/1: PLT: Move struct plt_entries definition to header
+    - ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
+    - ARM: 9079/1: ftrace: Add MODULE_PLTS support
+    - ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE
+    - sctp: validate chunk size in __rcv_asconf_lookup
+    - sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
+    - staging: rtl8192u: Fix bitwise vs logical operator in
+      TranslateRxSignalStuff819xUsb()
+    - um: virtio_uml: fix memory leak on init failures
+    - dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
+    - thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
+    - 9p/trans_virtio: Remove sysfs file on probe failure
+    - prctl: allow to setup brk for et_dyn executables
+    - nilfs2: use refcount_dec_and_lock() to fix potential UAF
+    - profiling: fix shift-out-of-bounds bugs
+    - pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was
+      registered
+    - phy: avoid unnecessary link-up delay in polling mode
+    - net: stmmac: reset Tx desc base address before restarting Tx
+    - Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
+    - thermal/core: Fix thermal_cooling_device_register() prototype
+    - drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
+    - parisc: Move pci_dev_is_behind_card_dino to where it is used
+    - dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
+    - dmaengine: ioat: depends on !UML
+    - dmaengine: xilinx_dma: Set DMA mask for coherent APIs
+    - ceph: request Fw caps before updating the mtime in ceph_write_iter
+    - ceph: lockdep annotations for try_nonblocking_invalidate
+    - btrfs: fix lockdep warning while mounting sprout fs
+    - nilfs2: fix memory leak in nilfs_sysfs_create_device_group
+    - nilfs2: fix NULL pointer in nilfs_##name##_attr_release
+    - nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
+    - nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
+    - pwm: img: Don't modify HW state in .remove() callback
+    - pwm: rockchip: Don't modify HW state in .remove() callback
+    - pwm: stm32-lp: Don't modify HW state in .remove() callback
+    - blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
+    - rtc: rx8010: select REGMAP_I2C
+    - drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
+    - Linux 5.4.149
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 05 Nov 2021 17:02:56 +0100
+
+linux (5.4.0-90.101) focal; urgency=medium
+
+  * focal/linux: 5.4.0-90.101 -proposed tracker (LP: #1947260)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.10.18)
+
+  * Add final-checks to check certificates (LP: #1947174)
+    - [Packaging] Add system trusted and revocation keys final check
+
+  * No sound on Lenovo laptop models Legion 15IMHG05, Yoga 7 14ITL5, and 13s
+    Gen2 (LP: #1939052)
+    - ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i
+      15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.
+    - ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s
+      Gen2
+
+  * CVE-2020-36385
+    - RDMA/cma: Add missing locking to rdma_accept()
+    - RDMA/ucma: Fix the locking of ctx->file
+    - RDMA/ucma: Rework ucma_migrate_id() to avoid races with destroy
+
+  * Focal update: v5.4.148 upstream stable release (LP: #1946802)
+    - rtc: tps65910: Correct driver module alias
+    - btrfs: wake up async_delalloc_pages waiters after submit
+    - btrfs: reset replace target device to allocation state on close
+    - blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
+    - blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
+    - PCI/MSI: Skip masking MSI-X on Xen PV
+    - powerpc/perf/hv-gpci: Fix counter value parsing
+    - xen: fix setting of max_pfn in shared_info
+    - include/linux/list.h: add a macro to test if entry is pointing to the head
+    - 9p/xen: Fix end of loop tests for list_for_each_entry
+    - tools/thermal/tmon: Add cross compiling support
+    - pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
+    - pinctrl: ingenic: Fix incorrect pull up/down info
+    - soc: qcom: aoss: Fix the out of bound usage of cooling_devs
+    - soc: aspeed: lpc-ctrl: Fix boundary check for mmap
+    - soc: aspeed: p2a-ctrl: Fix boundary check for mmap
+    - arm64: head: avoid over-mapping in map_memory
+    - crypto: public_key: fix overflow during implicit conversion
+    - block: bfq: fix bfq_set_next_ioprio_data()
+    - power: supply: max17042: handle fails of reading status register
+    - dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
+    - VMCI: fix NULL pointer dereference when unmapping queue pair
+    - media: uvc: don't do DMA on stack
+    - media: rc-loopback: return number of emitters rather than error
+    - Revert "dmaengine: imx-sdma: refine to load context only once"
+    - dmaengine: imx-sdma: remove duplicated sdma_load_context
+    - libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
+    - ARM: 9105/1: atags_to_fdt: don't warn about stack size
+    - PCI/portdrv: Enable Bandwidth Notification only if port supports it
+    - PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
+    - PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
+    - PCI: xilinx-nwl: Enable the clock through CCF
+    - PCI: aardvark: Fix checking for PIO status
+    - PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
+    - PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
+    - HID: input: do not report stylus battery state as "full"
+    - f2fs: quota: fix potential deadlock
+    - scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND
+    - IB/hfi1: Adjust pkey entry in index 0
+    - RDMA/iwcm: Release resources if iw_cm module initialization fails
+    - docs: Fix infiniband uverbs minor number
+    - pinctrl: samsung: Fix pinctrl bank pin count
+    - vfio: Use config not menuconfig for VFIO_NOIOMMU
+    - powerpc/stacktrace: Include linux/delay.h
+    - RDMA/efa: Remove double QP type assignment
+    - f2fs: show f2fs instance in printk_ratelimited
+    - f2fs: reduce the scope of setting fsck tag when de->name_len is zero
+    - openrisc: don't printk() unconditionally
+    - dma-debug: fix debugfs initialization order
+    - SUNRPC: Fix potential memory corruption
+    - scsi: fdomain: Fix error return code in fdomain_probe()
+    - pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
+    - scsi: smartpqi: Fix an error code in pqi_get_raid_map()
+    - scsi: qedi: Fix error codes in qedi_alloc_global_queues()
+    - scsi: qedf: Fix error codes in qedf_alloc_global_queues()
+    - powerpc/config: Renable MTD_PHYSMAP_OF
+    - scsi: target: avoid per-loop XCOPY buffer allocations
+    - HID: i2c-hid: Fix Elan touchpad regression
+    - KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs
+      are live
+    - platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from
+      run_smbios_call
+    - fscache: Fix cookie key hashing
+    - clk: at91: sam9x60: Don't use audio PLL
+    - clk: at91: clk-generated: pass the id of changeable parent at registration
+    - clk: at91: clk-generated: Limit the requested rate to our range
+    - KVM: PPC: Fix clearing never mapped TCEs in realmode
+    - f2fs: fix to account missing .skipped_gc_rwsem
+    - f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
+    - f2fs: fix to unmap pages from userspace process in punch_hole()
+    - MIPS: Malta: fix alignment of the devicetree buffer
+    - kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
+    - userfaultfd: prevent concurrent API initialization
+    - drm/amdgpu: Fix amdgpu_ras_eeprom_init()
+    - ASoC: atmel: ATMEL drivers don't need HAS_DMA
+    - media: dib8000: rewrite the init prbs logic
+    - crypto: mxs-dcp - Use sg_mapping_iter to copy data
+    - PCI: Use pci_update_current_state() in pci_enable_device_flags()
+    - tipc: keep the skb in rcv queue until the whole data is read
+    - iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
+    - iavf: do not override the adapter state in the watchdog task
+    - iavf: fix locking of critical sections
+    - ARM: dts: qcom: apq8064: correct clock names
+    - video: fbdev: kyro: fix a DoS bug by restricting user input
+    - netlink: Deal with ESRCH error in nlmsg_notify()
+    - Smack: Fix wrong semantics in smk_access_entry()
+    - drm: avoid blocking in drm_clients_info's rcu section
+    - igc: Check if num of q_vectors is smaller than max before array access
+    - usb: host: fotg210: fix the endpoint's transactional opportunities
+      calculation
+    - usb: host: fotg210: fix the actual_length of an iso packet
+    - usb: gadget: u_ether: fix a potential null pointer dereference
+    - USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
+    - usb: gadget: composite: Allow bMaxPower=0 if self-powered
+    - staging: board: Fix uninitialized spinlock when attaching genpd
+    - tty: serial: jsm: hold port lock when reporting modem line changes
+    - drm/amd/display: Fix timer_per_pixel unit error
+    - drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex
+    - bpf/tests: Fix copy-and-paste error in double word test
+    - bpf/tests: Do not PASS tests without actually testing the result
+    - video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
+    - video: fbdev: kyro: Error out if 'pixclock' equals zero
+    - video: fbdev: riva: Error out if 'pixclock' equals zero
+    - ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
+    - flow_dissector: Fix out-of-bounds warnings
+    - s390/jump_label: print real address in a case of a jump label bug
+    - s390: make PCI mio support a machine flag
+    - serial: 8250: Define RX trigger levels for OxSemi 950 devices
+    - xtensa: ISS: don't panic in rs_init
+    - hvsi: don't panic on tty_register_driver failure
+    - serial: 8250_pci: make setup_port() parameters explicitly unsigned
+    - staging: ks7010: Fix the initialization of the 'sleep_status' structure
+    - samples: bpf: Fix tracex7 error raised on the missing argument
+    - ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
+    - Bluetooth: skip invalid hci_sync_conn_complete_evt
+    - workqueue: Fix possible memory leaks in wq_numa_init()
+    - bonding: 3ad: fix the concurrency between __bond_release_one() and
+      bond_3ad_state_machine_handler()
+    - arm64: tegra: Fix Tegra194 PCIe EP compatible string
+    - ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the
+      matching in-/output
+    - media: imx258: Rectify mismatch of VTS value
+    - media: imx258: Limit the max analogue gain to 480
+    - media: v4l2-dv-timings.c: fix wrong condition in two for-loops
+    - media: TDA1997x: fix tda1997x_query_dv_timings() return value
+    - media: tegra-cec: Handle errors of clk_prepare_enable()
+    - ARM: dts: imx53-ppd: Fix ACHC entry
+    - arm64: dts: qcom: sdm660: use reg value for memory node
+    - net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()
+    - drm/msm: mdp4: drop vblank get/put from prepare/complete_commit
+    - selftests/bpf: Fix xdp_tx.c prog section name
+    - Bluetooth: schedule SCO timeouts with delayed_work
+    - Bluetooth: avoid circular locks in sco_sock_connect
+    - net/mlx5: Fix variable type to match 64bit
+    - gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable
+      access in amdgpu_i2c_router_select_ddc_port()
+    - drm/display: fix possible null-pointer dereference in dcn10_set_clock()
+    - mac80211: Fix monitor MTU limit so that A-MSDUs get through
+    - ARM: tegra: tamonten: Fix UART pad setting
+    - arm64: tegra: Fix compatible string for Tegra132 CPUs
+    - arm64: dts: ls1046a: fix eeprom entries
+    - nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data
+    - Bluetooth: Fix handling of LE Enhanced Connection Complete
+    - opp: Don't print an error if required-opps is missing
+    - serial: sh-sci: fix break handling for sysrq
+    - tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
+    - rpc: fix gss_svc_init cleanup on failure
+    - staging: rts5208: Fix get_ms_information() heap buffer size
+    - gfs2: Don't call dlm after protocol is unmounted
+    - usb: chipidea: host: fix port index underflow and UBSAN complains
+    - lockd: lockd server-side shouldn't set fl_ops
+    - drm/exynos: Always initialize mapping in exynos_drm_register_dma()
+    - m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
+    - btrfs: tree-log: check btrfs_lookup_data_extent return value
+    - ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER
+    - ASoC: Intel: Skylake: Fix passing loadable flag for module
+    - of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
+    - mmc: sdhci-of-arasan: Check return value of non-void funtions
+    - mmc: rtsx_pci: Fix long reads when clock is prescaled
+    - selftests/bpf: Enlarge select() timeout for test_maps
+    - mmc: core: Return correct emmc response in case of ioctl error
+    - cifs: fix wrong release in sess_alloc_buffer() failed path
+    - Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST
+      quirk set"
+    - usb: musb: musb_dsps: request_irq() after initializing musb
+    - usbip: give back URBs for unsent unlink requests during cleanup
+    - usbip:vhci_hcd USB port can get stuck in the disabled state
+    - ASoC: rockchip: i2s: Fix regmap_ops hang
+    - ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
+    - drm/amdkfd: Account for SH/SE count when setting up cu masks.
+    - iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed
+    - iwlwifi: mvm: avoid static queue number aliasing
+    - iwlwifi: mvm: fix access to BSS elements
+    - net/mlx5: DR, Enable QP retransmission
+    - parport: remove non-zero check on count
+    - ath9k: fix OOB read ar9300_eeprom_restore_internal
+    - ath9k: fix sleeping in atomic context
+    - net: fix NULL pointer reference in cipso_v4_doi_free
+    - fix array-index-out-of-bounds in taprio_change
+    - net: w5100: check return value after calling platform_get_resource()
+    - parisc: fix crash with signals and alloca
+    - ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
+    - scsi: BusLogic: Fix missing pr_cont() use
+    - scsi: qla2xxx: Changes to support kdump kernel
+    - scsi: qla2xxx: Sync queue idx with queue_pair_map idx
+    - cpufreq: powernv: Fix init_chip_info initialization in numa=off
+    - s390/pv: fix the forcing of the swiotlb
+    - mm/hugetlb: initialize hugetlb_usage in mm_init
+    - mm,vmscan: fix divide by zero in get_scan_count
+    - memcg: enable accounting for pids in nested pid namespaces
+    - platform/chrome: cros_ec_proto: Send command again when timeout occurs
+    - lib/test_stackinit: Fix static initializer test
+    - net: dsa: lantiq_gswip: fix maximum frame length
+    - drm/msi/mdp4: populate priv->kms in mdp4_kms_init
+    - drm/amdgpu: Fix BUG_ON assert
+    - drm/panfrost: Simplify lock_region calculation
+    - drm/panfrost: Use u64 for size in lock_region
+    - drm/panfrost: Clamp lock region to Bifrost minimum
+    - btrfs: fix upper limit for max_inline for page size 64K
+    - xen: reset legacy rtc flag for PV domU
+    - bnx2x: Fix enabling network interfaces without VFs
+    - arm64/sve: Use correct size when reinitialising SVE state
+    - PM: base: power: don't try to use non-existing RTC for storing data
+    - PCI: Add AMD GPU multi-function power dependencies
+    - drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10
+    - drm/etnaviv: return context from etnaviv_iommu_context_get
+    - drm/etnaviv: put submit prev MMU context when it exists
+    - drm/etnaviv: stop abusing mmu_context as FE running marker
+    - drm/etnaviv: keep MMU context across runtime suspend/resume
+    - drm/etnaviv: exec and MMU state is lost when resetting the GPU
+    - drm/etnaviv: fix MMU context leak on GPU reset
+    - drm/etnaviv: reference MMU context when setting up hardware state
+    - drm/etnaviv: add missing MMU context put when reaping MMU mapping
+    - s390/sclp: fix Secure-IPL facility detection
+    - x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
+    - tipc: fix an use-after-free issue in tipc_recvmsg
+    - net-caif: avoid user-triggerable WARN_ON(1)
+    - ptp: dp83640: don't define PAGE0
+    - net/l2tp: Fix reference count leak in l2tp_udp_recv_core
+    - r6040: Restore MDIO clock frequency after MAC reset
+    - tipc: increase timeout in tipc_sk_enqueue()
+    - perf machine: Initialize srcline string member in add_location struct
+    - net/mlx5: FWTrace, cancel work on alloc pd error flow
+    - net/mlx5: Fix potential sleeping in atomic context
+    - events: Reuse value read using READ_ONCE instead of re-reading it
+    - vhost_net: fix OoB on sendmsg() failure.
+    - net/af_unix: fix a data-race in unix_dgram_poll
+    - net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
+    - tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
+    - qed: Handle management FW error
+    - dt-bindings: arm: Fix Toradex compatible typo
+    - ibmvnic: check failover_pending in login response
+    - KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing
+      registers
+    - net: hns3: pad the short tunnel frame before sending to hardware
+    - net: hns3: change affinity_mask to numa node range
+    - net: hns3: disable mac in flr process
+    - net: hns3: fix the timing issue of VF clearing interrupt sources
+    - mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
+    - dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
+    - mfd: db8500-prcmu: Adjust map to reality
+    - PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms
+    - fuse: fix use after free in fuse_read_interrupt()
+    - mfd: Don't use irq_create_mapping() to resolve a mapping
+    - tracing/probes: Reject events which have the same name of existing one
+    - PCI: Add ACS quirks for Cavium multi-function devices
+    - Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
+    - PCI: ibmphp: Fix double unmap of io_mem
+    - ethtool: Fix an error code in cxgb2.c
+    - NTB: Fix an error code in ntb_msit_probe()
+    - NTB: perf: Fix an error code in perf_setup_inbuf()
+    - mfd: axp20x: Update AXP288 volatile ranges
+    - PCI: Fix pci_dev_str_match_path() alloc while atomic bug
+    - mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
+    - KVM: arm64: Handle PSCI resets before userspace touches vCPU state
+    - PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
+    - mtd: rawnand: cafe: Fix a resource leak in the error handling path of
+      'cafe_nand_probe()'
+    - ARC: export clear_user_page() for modules
+    - perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}
+    - net: dsa: b53: Fix calculating number of switch ports
+    - netfilter: socket: icmp6: fix use-after-scope
+    - fq_codel: reject silly quantum parameters
+    - qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
+    - ip_gre: validate csum_start only on pull
+    - net: renesas: sh_eth: Fix freeing wrong tx descriptor
+    - Linux 5.4.148
+
+  * Focal update: v5.4.147 upstream stable release (LP: #1946795)
+    - Linux 5.4.147
+    - upstream stable to v5.4.147
+
+  * CVE-2021-3428
+    - ext4: save the error code which triggered an ext4_error() in the superblock
+    - ext4: simulate various I/O and checksum errors when reading metadata
+    - ext4: save all error info in save_error_info() and drop ext4_set_errno()
+    - ext4: check journal inode extents more carefully
+
+  * ip6gretap / erspan / ip6erspan in rtnetlink.sh from net of
+    ubuntu_kernel_selftests failed on B-5.4-aws / B-5.4-gke / B-5.4-oracle /
+    B-5.4-azure / B-5.4 (LP: #1896448)
+    - SAUCE: selftests: rtnetlink: fixes for older iproute2
+
+  * CVE-2019-19449
+    - f2fs: fix wrong total_sections check and fsmeta check
+    - f2fs: fix to do sanity check on segment/section count
+
+  * kernel bug found when disconnecting one fiber channel interface on Cisco
+    Chassis with fnic DRV_VERSION "1.6.0.47" (LP: #1944586)
+    - scsi: fnic: Do not call 'scsi_done()' for unhandled commands
+
+  * memfd from ubuntu_kernel_selftests failed to build on B-5.4 (unknown type
+    name ‘__u64’) (LP: #1944613)
+    - SAUCE: selftests/memfd: fix __u64 not defined build issue
+
+  * Medion Notebook Keyboard not working (LP: #1909814)
+    - ACPI: resources: Add DMI-based legacy IRQ override quirk
+
+  * vrf: fix refcnt leak with vxlan slaves (LP: #1945180)
+    - ipv4: Fix device used for dst_alloc with local routes
+
+  * Check for changes relevant for security certifications (LP: #1945989)
+    - [Packaging] Add a new fips-checks script
+    - [Packaging] Add fips-checks as part of finalchecks
+
+  * Fix cold plugged USB device on certain PCIe USB cards (LP: #1945211)
+    - Revert "UBUNTU: SAUCE: Revert "usb: core: reduce power-on-good delay time of
+      root hub""
+    - usb: core: hcd: Add support for deferring roothub registration
+    - xhci: Set HCD flag to defer primary roothub registration
+    - usb: core: hcd: Modularize HCD stop configuration in usb_stop_hcd()
+
+  * CVE-2021-3759
+    - memcg: enable accounting of ipc resources
+
+  * Focal update: v5.4.146 upstream stable release (LP: #1946024)
+    - locking/mutex: Fix HANDOFF condition
+    - regmap: fix the offset of register error log
+    - crypto: mxs-dcp - Check for DMA mapping errors
+    - sched/deadline: Fix reset_on_fork reporting of DL tasks
+    - power: supply: axp288_fuel_gauge: Report register-address on readb / writeb
+      errors
+    - crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop()
+    - sched/deadline: Fix missing clock update in migrate_task_rq_dl()
+    - rcu/tree: Handle VM stoppage in stall detection
+    - hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()
+    - hrtimer: Ensure timerfd notification for HIGHRES=n
+    - udf: Check LVID earlier
+    - udf: Fix iocharset=utf8 mount option
+    - isofs: joliet: Fix iocharset=utf8 mount option
+    - bcache: add proper error unwinding in bcache_device_init
+    - nvme-tcp: don't update queue count when failing to set io queues
+    - nvme-rdma: don't update queue count when failing to set io queues
+    - nvmet: pass back cntlid on successful completion
+    - power: supply: max17042_battery: fix typo in MAx17042_TOFF
+    - s390/cio: add dev_busid sysfs entry for each subchannel
+    - libata: fix ata_host_start()
+    - crypto: qat - do not ignore errors from enable_vf2pf_comms()
+    - crypto: qat - handle both source of interrupt in VF ISR
+    - crypto: qat - fix reuse of completion variable
+    - crypto: qat - fix naming for init/shutdown VF to PF notifications
+    - crypto: qat - do not export adf_iov_putmsg()
+    - fcntl: fix potential deadlock for &fasync_struct.fa_lock
+    - udf_get_extendedattr() had no boundary checks.
+    - s390/kasan: fix large PMD pages address alignment check
+    - s390/debug: fix debug area life cycle
+    - m68k: emu: Fix invalid free in nfeth_cleanup()
+    - sched: Fix UCLAMP_FLAG_IDLE setting
+    - spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
+    - spi: spi-pic32: Fix issue with uninitialized dma_slave_config
+    - genirq/timings: Fix error return code in irq_timings_test_irqs()
+    - lib/mpi: use kcalloc in mpi_resize
+    - clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock
+      source channel
+    - crypto: qat - use proper type for vf_mask
+    - certs: Trigger creation of RSA module signing key if it's not an RSA key
+    - regulator: vctrl: Use locked regulator_get_voltage in probe path
+    - regulator: vctrl: Avoid lockdep warning in enable/disable ops
+    - spi: sprd: Fix the wrong WDG_LOAD_VAL
+    - spi: spi-zynq-qspi: use wait_for_completion_timeout to make
+      zynq_qspi_exec_mem_op not interruptible
+    - EDAC/i10nm: Fix NVDIMM detection
+    - drm/panfrost: Fix missing clk_disable_unprepare() on error in
+      panfrost_clk_init()
+    - media: TDA1997x: enable EDID support
+    - soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally
+    - media: cxd2880-spi: Fix an error handling path
+    - bpf: Fix a typo of reuseport map in bpf.h.
+    - bpf: Fix potential memleak and UAF in the verifier.
+    - ARM: dts: aspeed-g6: Fix HVI3C function-group in pinctrl dtsi
+    - arm64: dts: renesas: r8a77995: draak: Remove bogus adv7511w properties
+    - soc: qcom: rpmhpd: Use corner in power_off
+    - media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
+    - media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
+    - media: dvb-usb: Fix error handling in dvb_usb_i2c_init
+    - media: go7007: remove redundant initialization
+    - media: coda: fix frame_mem_ctrl for YUV420 and YVU420 formats
+    - Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
+    - 6lowpan: iphc: Fix an off-by-one check of array index
+    - netns: protect netns ID lookups with RCU
+    - tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
+    - ARM: dts: meson8: Use a higher default GPU clock frequency
+    - ARM: dts: meson8b: odroidc1: Fix the pwm regulator supply properties
+    - ARM: dts: meson8b: mxq: Fix the pwm regulator supply properties
+    - ARM: dts: meson8b: ec100: Fix the pwm regulator supply properties
+    - net/mlx5e: Prohibit inner indir TIRs in IPoIB
+    - cgroup/cpuset: Fix a partition bug with hotplug
+    - net: cipso: fix warnings in netlbl_cipsov4_add_std
+    - i2c: highlander: add IRQ check
+    - leds: lt3593: Put fwnode in any case during ->probe()
+    - leds: trigger: audio: Add an activate callback to ensure the initial
+      brightness is set
+    - media: em28xx-input: fix refcount bug in em28xx_usb_disconnect
+    - media: venus: venc: Fix potential null pointer dereference on pointer fmt
+    - PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
+    - PCI: PM: Enable PME if it can be signaled from D3cold
+    - soc: qcom: smsm: Fix missed interrupts if state changes while masked
+    - debugfs: Return error during {full/open}_proxy_open() on rmmod
+    - Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
+    - PM: EM: Increase energy calculation precision
+    - drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs
+    - arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7
+    - counter: 104-quad-8: Return error when invalid mode during ceiling_write
+    - Bluetooth: fix repeated calls to sco_sock_kill
+    - drm/msm/dsi: Fix some reference counted resource leaks
+    - usb: gadget: udc: at91: add IRQ check
+    - usb: phy: fsl-usb: add IRQ check
+    - usb: phy: twl6030: add IRQ checks
+    - usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse
+    - usb: host: ohci-tmio: add IRQ check
+    - usb: phy: tahvo: add IRQ check
+    - mac80211: Fix insufficient headroom issue for AMSDU
+    - lockd: Fix invalid lockowner cast after vfs_test_lock
+    - nfsd4: Fix forced-expiry locking
+    - usb: gadget: mv_u3d: request_irq() after initializing UDC
+    - mm/swap: consider max pages in iomap_swapfile_add_extent
+    - Bluetooth: add timeout sanity check to hci_inquiry
+    - i2c: iop3xx: fix deferred probing
+    - i2c: s3c2410: fix IRQ check
+    - rsi: fix error code in rsi_load_9116_firmware()
+    - rsi: fix an error code in rsi_probe()
+    - ASoC: Intel: Skylake: Leave data as is when invoking TLV IPCs
+    - ASoC: Intel: Skylake: Fix module resource and format selection
+    - mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
+    - mmc: moxart: Fix issue with uninitialized dma_slave_config
+    - bpf: Fix possible out of bound write in narrow load handling
+    - CIFS: Fix a potencially linear read overflow
+    - i2c: mt65xx: fix IRQ check
+    - usb: ehci-orion: Handle errors of clk_prepare_enable() in probe
+    - usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA
+      config is available
+    - tty: serial: fsl_lpuart: fix the wrong mapbase value
+    - ASoC: wcd9335: Fix a double irq free in the remove function
+    - ASoC: wcd9335: Fix a memory leak in the error handling path of the probe
+      function
+    - ASoC: wcd9335: Disable irq on slave ports in the remove function
+    - ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
+    - bcma: Fix memory leak for internally-handled cores
+    - brcmfmac: pcie: fix oops on failure to resume and reprobe
+    - ipv6: make exception cache less predictible
+    - ipv4: make exception cache less predictible
+    - net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed
+    - net: qualcomm: fix QCA7000 checksum handling
+    - octeontx2-af: Fix loop in free and unmap counter
+    - ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
+    - bpf: Introduce BPF nospec instruction for mitigating Spectre v4
+    - bpf: Fix leakage due to insufficient speculative store bypass mitigation
+    - bpf: verifier: Allocate idmap scratch in verifier env
+    - bpf: Fix pointer arithmetic mask tightening under state pruning
+    - tty: Fix data race between tiocsti() and flush_to_ldisc()
+    - perf/x86/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op
+    - x86/resctrl: Fix a maybe-uninitialized build warning treated as error
+    - KVM: s390: index kvm->arch.idle_mask by vcpu_idx
+    - KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is
+      adjusted
+    - KVM: nVMX: Unconditionally clear nested.pi_pending on nested VM-Enter
+    - fuse: truncate pagecache on atomic_o_trunc
+    - fuse: flush extending writes
+    - IMA: remove -Wmissing-prototypes warning
+    - IMA: remove the dependency on CRYPTO_MD5
+    - fbmem: don't allow too huge resolutions
+    - backlight: pwm_bl: Improve bootloader/kernel device handover
+    - clk: kirkwood: Fix a clocking boot regression
+    - Linux 5.4.146
+
+  * AMD A8-7680 (amdgpu): broken Xorg acceleration and hibernation
+    (LP: #1920674) // Focal update: v5.4.146 upstream stable release
+    (LP: #1946024)
+    - drm/amdgpu/acp: Make PM domain really work
+
+  * Focal update: v5.4.145 upstream stable release (LP: #1945517)
+    - fscrypt: add fscrypt_symlink_getattr() for computing st_size
+    - ext4: report correct st_size for encrypted symlinks
+    - f2fs: report correct st_size for encrypted symlinks
+    - ubifs: report correct st_size for encrypted symlinks
+    - kthread: Fix PF_KTHREAD vs to_kthread() race
+    - xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG
+    - gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V
+      formats
+    - reset: reset-zynqmp: Fixed the argument data type
+    - qed: Fix the VF msix vectors flow
+    - net: macb: Add a NULL check on desc_ptp
+    - qede: Fix memset corruption
+    - perf/x86/intel/pt: Fix mask of num_address_ranges
+    - perf/x86/amd/ibs: Work around erratum #1197
+    - perf/x86/amd/power: Assign pmu.module
+    - cryptoloop: add a deprecation warning
+    - ARM: 8918/2: only build return_address() if needed
+    - ALSA: hda/realtek: Workaround for conflicting SSID on ASUS ROG Strix G17
+    - ALSA: pcm: fix divide error in snd_pcm_lib_ioctl
+    - ARC: wireup clone3 syscall
+    - media: stkwebcam: fix memory leak in stk_camera_probe
+    - igmp: Add ip_mc_list lock in ip_check_mc_rcu
+    - USB: serial: mos7720: improve OOM-handling in read_mos_reg()
+    - ipv4/icmp: l3mdev: Perform icmp error route lookup on source device routing
+      table (v2)
+    - powerpc/boot: Delete unneeded .globl _zimage_start
+    - net: ll_temac: Remove left-over debug message
+    - mm/page_alloc: speed up the iteration of max_order
+    - Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables
+      ASPM"
+    - x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating
+    - Revert "btrfs: compression: don't try to compress if we don't have enough
+      pages"
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 800
+    - usb: host: xhci-rcar: Don't reload firmware after the completion
+    - usb: mtu3: use @mult for HS isoc or intr
+    - usb: mtu3: fix the wrong HS mult value
+    - xhci: fix unsafe memory usage in xhci tracing
+    - x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
+    - PCI: Call Max Payload Size-related fixup quirks early
+    - Linux 5.4.145
+
+  * Focal update: v5.4.144 upstream stable release (LP: #1944756)
+    - net: qrtr: fix another OOB Read in qrtr_endpoint_post
+    - ARC: Fix CONFIG_STACKDEPOT
+    - netfilter: conntrack: collect all entries in one cycle
+    - once: Fix panic when module unload
+    - ovl: fix uninitialized pointer read in ovl_lookup_real_one()
+    - mmc: sdhci-msm: Update the software timeout value for sdhc
+    - mm, oom: make the calculation of oom badness more accurate
+    - can: usb: esd_usb2: esd_usb2_rx_event(): fix the interchange of the CAN RX
+      and TX error counters
+    - Revert "USB: serial: ch341: fix character loss at high transfer rates"
+    - USB: serial: option: add new VID/PID to support Fibocom FG150
+    - usb: dwc3: gadget: Fix dwc3_calc_trbs_left()
+    - usb: dwc3: gadget: Stop EP0 transfers during pullup disable
+    - scsi: core: Fix hang of freezing queue between blocking and running device
+    - RDMA/bnxt_re: Add missing spin lock initialization
+    - IB/hfi1: Fix possible null-pointer dereference in _extend_sdma_tx_descs()
+    - e1000e: Fix the max snoop/no-snoop latency for 10M
+    - RDMA/efa: Free IRQ vectors on error flow
+    - ip_gre: add validation for csum_start
+    - xgene-v2: Fix a resource leak in the error handling path of 'xge_probe()'
+    - net: marvell: fix MVNETA_TX_IN_PRGRS bit number
+    - rtnetlink: Return correct error on changing device netns
+    - net: hns3: clear hardware resource when loading driver
+    - net: hns3: fix duplicate node in VLAN list
+    - net: hns3: fix get wrong pfc_en when query PFC configuration
+    - drm/i915: Fix syncmap memory leak
+    - usb: gadget: u_audio: fix race condition on endpoint stop
+    - perf/x86/intel/uncore: Fix integer overflow on 23 bit left shift of a u32
+    - opp: remove WARN when no valid OPPs remain
+    - virtio: Improve vq->broken access to avoid any compiler optimization
+    - virtio_pci: Support surprise removal of virtio pci device
+    - vringh: Use wiov->used to check for read/write desc order
+    - qed: qed ll2 race condition fixes
+    - qed: Fix null-pointer dereference in qed_rdma_create_qp()
+    - drm: Copy drm_wait_vblank to user before returning
+    - drm/nouveau/disp: power down unused DP links during init
+    - net/rds: dma_map_sg is entitled to merge entries
+    - btrfs: fix race between marking inode needs to be logged and log syncing
+    - vt_kdsetmode: extend console locking
+    - bpf: Track contents of read-only maps as scalars
+    - bpf: Fix cast to pointer from integer of different size warning
+    - net: dsa: mt7530: fix VLAN traffic leaks again
+    - KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow MMUs
+    - arm64: dts: qcom: msm8994-angler: Fix gpio-reserved-ranges 85-88
+    - btrfs: fix NULL pointer dereference when deleting device by invalid id
+    - Revert "floppy: reintroduce O_NDELAY fix"
+    - Revert "parisc: Add assembly implementations for memset, strlen, strcpy,
+      strncpy and strcat"
+    - net: don't unconditionally copy_from_user a struct ifreq for socket ioctls
+    - audit: move put_tree() to avoid trim_trees refcount underflow and UAF
+    - Linux 5.4.144
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Fri, 15 Oct 2021 11:56:24 -0600
+
+linux (5.4.0-89.100) focal; urgency=medium
+
+  * focal/linux: 5.4.0-89.100 -proposed tracker (LP: #1944901)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.27)
+
+  * ext4 journal recovery fails w/ data=journal + mmap (LP: #1847340)
+    - jbd2: introduce/export functions
+      jbd2_journal_submit|finish_inode_data_buffers()
+    - jbd2, ext4, ocfs2: introduce/use journal callbacks
+      j_submit|finish_inode_data_buffers()
+    - ext4: data=journal: fixes for ext4_page_mkwrite()
+    - ext4: data=journal: write-protect pages on j_submit_inode_data_buffers()
+    - ext4: fix mmap write protection for data=journal mode
+
+  * CVE-2021-40490
+    - ext4: fix race writing to an inline_data file while its xattrs are changing
+
+  * Obsolete patch "UBUNTU: SAUCE: ext4: fix directory index node split
+    corruption" (LP: #1942902)
+    - Revert "UBUNTU: SAUCE: ext4: fix directory index node split corruption"
+
+  * psock_snd.sh in net from ubuntu_kernel_selftests ADT failure with
+    focal/groovy/hirsute/impish (LP: #1892213)
+    - selftests/net: remove min gso test in packet_snd
+
+  * Focal update: v5.4.143 upstream stable release (LP: #1944212)
+    - ext4: fix EXT4_MAX_LOGICAL_BLOCK macro
+    - x86/fpu: Make init_fpstate correct with optimized XSAVE
+    - ath: Use safer key clearing with key cache entries
+    - ath9k: Clear key cache explicitly on disabling hardware
+    - ath: Export ath_hw_keysetmac()
+    - ath: Modify ath_key_delete() to not need full key entry
+    - ath9k: Postpone key cache entry deletion for TXQ frames reference it
+    - mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards
+    - media: zr364xx: propagate errors from zr364xx_start_readpipe()
+    - media: zr364xx: fix memory leaks in probe()
+    - media: drivers/media/usb: fix memory leak in zr364xx_probe
+    - USB: core: Avoid WARNings for 0-length descriptor requests
+    - dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
+    - dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
+    - ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
+    - dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not
+      yet available
+    - scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry()
+    - scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach()
+    - scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
+    - scsi: core: Fix capacity set to zero after offlinining device
+    - ARM: dts: nomadik: Fix up interrupt controller node names
+    - net: usb: lan78xx: don't modify phy_device state concurrently
+    - drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X
+    - Bluetooth: hidp: use correct wait queue when removing ctrl_wait
+    - iommu: Check if group is NULL before remove device
+    - cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
+    - dccp: add do-while-0 stubs for dccp_pr_debug macros
+    - virtio: Protect vqs list access
+    - vhost: Fix the calculation in vhost_overflow()
+    - bpf: Clear zext_dst of dead insns
+    - bnxt: don't lock the tx queue from napi poll
+    - bnxt: disable napi before canceling DIM
+    - net: 6pack: fix slab-out-of-bounds in decode_data
+    - ptp_pch: Restore dependency on PCI
+    - bnxt_en: Add missing DMA memory barriers
+    - vrf: Reset skb conntrack connection on VRF rcv
+    - virtio-net: support XDP when not more queues
+    - virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO
+    - net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32
+    - net: mdio-mux: Don't ignore memory allocation errors
+    - net: mdio-mux: Handle -EPROBE_DEFER correctly
+    - ovs: clear skb->tstamp in forwarding path
+    - i40e: Fix ATR queue selection
+    - iavf: Fix ping is lost after untrusted VF had tried to change MAC
+    - ovl: add splice file read write helper
+    - mmc: dw_mmc: Fix hang on data CRC error
+    - ALSA: hda - fix the 'Capture Switch' value change notifications
+    - tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event
+      name
+    - slimbus: messaging: start transaction ids from 1 instead of zero
+    - slimbus: messaging: check for valid transaction id
+    - slimbus: ngd: reset dma setup during runtime pm
+    - ipack: tpci200: fix many double free issues in tpci200_pci_probe
+    - ipack: tpci200: fix memory leak in the tpci200_register
+    - btrfs: prevent rename2 from exchanging a subvol with a directory from
+      different parents
+    - PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI
+    - ASoC: intel: atom: Fix breakage for PCM buffer address setup
+    - mm, memcg: avoid stale protection values when cgroup is above protection
+    - mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim
+    - fs: warn about impending deprecation of mandatory locks
+    - netfilter: nft_exthdr: fix endianness of tcp option cast
+    - Linux 5.4.143
+
+  * Focal update: v5.4.142 upstream stable release (LP: #1944202)
+    - iio: adc: ti-ads7950: Ensure CS is deasserted after reading channels
+    - iio: humidity: hdc100x: Add margin to the conversion time
+    - iio: adc: Fix incorrect exit of for-loop
+    - ASoC: xilinx: Fix reference to PCM buffer address
+    - ASoC: intel: atom: Fix reference to PCM buffer address
+    - i2c: dev: zero out array used for i2c reads from userspace
+    - ceph: reduce contention in ceph_check_delayed_caps()
+    - ACPI: NFIT: Fix support for virtual SPA ranges
+    - libnvdimm/region: Fix label activation vs errors
+    - ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
+    - ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
+    - ASoC: cs42l42: Correct definition of ADC Volume control
+    - ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J
+    - ASoC: cs42l42: Fix inversion of ADC Notch Switch control
+    - ASoC: cs42l42: Remove duplicate control for WNF filter frequency
+    - netfilter: nf_conntrack_bridge: Fix memory leak when error
+    - ASoC: cs42l42: Fix LRCLK frame start edge
+    - net: dsa: mt7530: add the missing RxUnicast MIB counter
+    - platform/x86: pcengines-apuv2: revert wiring up simswitch GPIO as LED
+    - platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-
+      lookup tables
+    - net: phy: micrel: Fix link detection on ksz87xx switch"
+    - ppp: Fix generating ifname when empty IFLA_IFNAME is specified
+    - net: sched: act_mirred: Reset ct info when mirror/redirect skb
+    - iavf: Set RSS LUT and key in reset handle path
+    - psample: Add a fwd declaration for skbuff
+    - net/mlx5: Fix return value from tracer initialization
+    - drm/meson: fix colour distortion from HDR set during vendor u-boot
+    - net: dsa: microchip: Fix ksz_read64()
+    - net: Fix memory leak in ieee802154_raw_deliver
+    - net: igmp: fix data-race in igmp_ifc_timer_expire()
+    - net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
+    - net: dsa: lantiq: fix broken backpressure in .port_fdb_dump
+    - net: dsa: sja1105: fix broken backpressure in .port_fdb_dump
+    - net: bridge: fix memleak in br_add_if()
+    - net: linkwatch: fix failure to restore device state across suspend/resume
+    - tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B
+      packets
+    - net: igmp: increase size of mr_ifc_count
+    - xen/events: Fix race in set_evtchn_to_irq
+    - vsock/virtio: avoid potential deadlock when vsock device remove
+    - nbd: Aovid double completion of a request
+    - powerpc/kprobes: Fix kprobe Oops happens in booke
+    - x86/tools: Fix objdump version check again
+    - genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP
+    - x86/msi: Force affinity setup before startup
+    - x86/ioapic: Force affinity setup before startup
+    - x86/resctrl: Fix default monitoring groups reporting
+    - genirq/msi: Ensure deactivation on teardown
+    - genirq/timings: Prevent potential array overflow in __irq_timings_store()
+    - PCI/MSI: Enable and mask MSI-X early
+    - PCI/MSI: Mask all unused MSI-X entries
+    - PCI/MSI: Enforce that MSI-X table entry is masked for update
+    - PCI/MSI: Enforce MSI[X] entry updates to be visible
+    - PCI/MSI: Do not set invalid bits in MSI mask
+    - PCI/MSI: Correct misleading comments
+    - PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
+    - PCI/MSI: Protect msi_desc::masked for multi-MSI
+    - KVM: VMX: Use current VMCS to query WAITPKG support for MSR emulation
+    - ceph: add some lockdep assertions around snaprealm handling
+    - ceph: clean up locking annotation for ceph_get_snap_realm and
+      __lookup_snap_realm
+    - ceph: take snap_empty_lock atomically with snaprealm refcount change
+    - vmlinux.lds.h: Handle clang's module.{c,d}tor sections
+    - iommu/vt-d: Fix agaw for a supported 48 bit guest address width
+    - Linux 5.4.142
+
+  * Focal update: v5.4.141 upstream stable release (LP: #1943484)
+    - KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
+    - tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag
+    - media: v4l2-mem2mem: always consider OUTPUT queue during poll
+    - tracing: Reject string operand in the histogram expression
+    - usb: dwc3: Stop active transfers before halting the controller
+    - usb: dwc3: gadget: Allow runtime suspend if UDC unbinded
+    - usb: dwc3: gadget: Restart DWC3 gadget when enabling pullup
+    - usb: dwc3: gadget: Prevent EP queuing while stopping transfers
+    - usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable
+    - usb: dwc3: gadget: Disable gadget IRQ during pullup disable
+    - usb: dwc3: gadget: Avoid runtime resume if disabling pullup
+    - KVM: X86: MMU: Use the correct inherited permissions to get shadow page
+    - USB:ehci:fix Kunpeng920 ehci hardware problem
+    - ALSA: hda: Add quirk for ASUS Flow x13
+    - ppp: Fix generating ppp unit id when ifname is not specified
+    - ovl: prevent private clone if bind mount is not allowed
+    - btrfs: make qgroup_free_reserved_data take btrfs_inode
+    - btrfs: make btrfs_qgroup_reserve_data take btrfs_inode
+    - btrfs: qgroup: allow to unreserve range without releasing other ranges
+    - btrfs: qgroup: try to flush qgroup space when we get -EDQUOT
+    - btrfs: transaction: Cleanup unused TRANS_STATE_BLOCKED
+    - btrfs: qgroup: remove ASYNC_COMMIT mechanism in favor of reserve retry-
+      after-EDQUOT
+    - btrfs: fix lockdep splat when enabling and disabling qgroups
+    - net: xilinx_emaclite: Do not print real IOMEM pointer
+    - btrfs: qgroup: don't commit transaction when we already hold the handle
+    - btrfs: export and rename qgroup_reserve_meta
+    - btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
+    - Linux 5.4.141
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 24 Sep 2021 15:50:10 +0200
+
+linux (5.4.0-88.99) focal; urgency=medium
+
+  * focal/linux: 5.4.0-88.99 -proposed tracker (LP: #1944747)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.06)
+
+  * please drop virtualbox-guest-dkms virtualbox-guest-source (LP: #1933248)
+    - Revert "UBUNTU: [Config] Disable virtualbox dkms build"
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Thu, 23 Sep 2021 10:40:49 -0600
+
+linux (5.4.0-87.98) focal; urgency=medium
+
+  * please drop virtualbox-guest-dkms virtualbox-guest-source (LP: #1933248)
+    - [Config] Disable virtualbox dkms build
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.06)
+
+  *  LRMv5: switch primary version handling to kernel-versions data set
+    (LP: #1928921)
+    - [Packaging] switch to kernel-versions
+
+  * disable “CONFIG_HISI_DMA” config for ubuntu version (LP: #1936771)
+    - Disable CONFIG_HISI_DMA
+    - [Config] Record hisi_dma no longer built for arm64
+
+  * memory leaking when removing a profile (LP: #1939915)
+    - apparmor: Fix memory leak of profile proxy
+
+  * CryptoExpress EP11 cards are going offline (LP: #1939618)
+    - s390/zcrypt: Support for CCA protected key block version 2
+    - s390: Replace zero-length array with flexible-array member
+    - s390/zcrypt: Use scnprintf() for avoiding potential buffer overflow
+    - s390/zcrypt: replace snprintf/sprintf with scnprintf
+    - s390/ap: Remove ap device suspend and resume callbacks
+    - s390/zcrypt: use fallthrough;
+    - s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
+    - s390/ap: remove power management code from ap bus and drivers
+    - s390/ap: introduce new ap function ap_get_qdev()
+    - s390/zcrypt: use kzalloc
+    - s390/zcrypt: fix smatch warnings
+    - s390/zcrypt: code beautification and struct field renames
+    - s390/zcrypt: split ioctl function into smaller code units
+    - s390/ap: rename and clarify ap state machine related stuff
+    - s390/zcrypt: provide cex4 cca sysfs attributes for cex3
+    - s390/ap: rework crypto config info and default domain code
+    - s390/zcrypt: simplify cca_findcard2 loop code
+    - s390/zcrypt: remove set_fs() invocation in zcrypt device driver
+    - s390/ap: remove unnecessary spin_lock_init()
+    - s390/zcrypt: Support for CCA APKA master keys
+    - s390/zcrypt: introduce msg tracking in zcrypt functions
+    - s390/ap: split ap queue state machine state from device state
+    - s390/ap: add error response code field for ap queue devices
+    - s390/ap: add card/queue deconfig state
+    - s390/sclp: Add support for SCLP AP adapter config/deconfig
+    - s390/ap: Support AP card SCLP config and deconfig operations
+    - s390/ap/zcrypt: revisit ap and zcrypt error handling
+    - s390/zcrypt: move ap_msg param one level up the call chain
+    - s390/zcrypt: Introduce Failure Injection feature
+    - s390/zcrypt: fix wrong format specifications
+    - s390/ap: fix ap devices reference counting
+    - s390/zcrypt: return EIO when msg retry limit reached
+    - s390/zcrypt: fix zcard and zqueue hot-unplug memleak
+    - s390/ap: Fix hanging ioctl caused by wrong msg counter
+
+  * memfd from ubuntu_kernel_selftests failed to build on B-5.4 (LP: #1926142)
+    - SAUCE: selftests/memfd: fix build when F_SEAL_FUTURE_WRITE is not defined
+
+  * [SRU] Ice driver causes the kernel to crash with Ubuntu 20.04.2 with ethtool
+    specific register commands (LP: #1939855)
+    - ice: Fix bad register reads
+
+  * ubunut_kernel_selftests: memory-hotplug: avoid spamming logs with
+    dump_page() (LP: #1941829)
+    - selftests: memory-hotplug: avoid spamming logs with dump_page(), ratio limit
+      hot-remove error test
+
+  * e1000e blocks the boot process when it tried to write checksum to its NVM
+    (LP: #1936998)
+    - e1000e: Do not take care about recovery NVM checksum
+
+  * Focal update: v5.4.140 upstream stable release (LP: #1941798)
+    - Revert "ACPICA: Fix memory leak caused by _CID repair function"
+    - ALSA: seq: Fix racy deletion of subscriber
+    - arm64: dts: ls1028a: fix node name for the sysclk
+    - ARM: imx: add missing iounmap()
+    - ARM: imx: add missing clk_disable_unprepare()
+    - ARM: dts: imx6qdl-sr-som: Increase the PHY reset duration to 10ms
+    - ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz
+    - ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
+    - ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins
+    - arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode
+    - ALSA: usb-audio: fix incorrect clock source setting
+    - clk: stm32f4: fix post divisor setup for I2S/SAI PLLs
+    - ARM: dts: am437x-l4: fix typo in can@0 node
+    - omap5-board-common: remove not physically existing vdds_1v8_main fixed-
+      regulator
+    - spi: imx: mx51-ecspi: Reinstate low-speed CONFIGREG delay
+    - spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation
+    - scsi: sr: Return correct event when media event code is 3
+    - media: videobuf2-core: dequeue if start_streaming fails
+    - dmaengine: imx-dma: configure the generic DMA type to make it work
+    - net, gro: Set inner transport header offset in tcp/udp GRO hook
+    - net: dsa: sja1105: overwrite dynamic FDB entries with static ones in
+      .port_fdb_add
+    - net: dsa: sja1105: invalidate dynamic FDB entries learned concurrently with
+      statically added ones
+    - net: phy: micrel: Fix detection of ksz87xx switch
+    - net: natsemi: Fix missing pci_disable_device() in probe and remove
+    - gpio: tqmx86: really make IRQ optional
+    - sctp: move the active_key update after sh_keys is added
+    - nfp: update ethtool reporting of pauseframe control
+    - net: ipv6: fix returned variable type in ip6_skb_dst_mtu
+    - mips: Fix non-POSIX regexp
+    - bnx2x: fix an error code in bnx2x_nic_load()
+    - net: pegasus: fix uninit-value in get_interrupt_interval
+    - net: fec: fix use-after-free in fec_drv_remove
+    - net: vxge: fix use-after-free in vxge_device_unregister
+    - blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit()
+    - Bluetooth: defer cleanup of resources in hci_unregister_dev()
+    - USB: usbtmc: Fix RCU stall warning
+    - USB: serial: option: add Telit FD980 composition 0x1056
+    - USB: serial: ch341: fix character loss at high transfer rates
+    - USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
+    - firmware_loader: use -ETIMEDOUT instead of -EAGAIN in fw_load_sysfs_fallback
+    - firmware_loader: fix use-after-free in firmware_fallback_sysfs
+    - ALSA: hda/realtek: add mic quirk for Acer SF314-42
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 600
+    - usb: cdns3: Fixed incorrect gadget state
+    - usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers
+    - usb: gadget: f_hid: fixed NULL pointer dereference
+    - usb: gadget: f_hid: idle uses the highest byte for duration
+    - usb: otg-fsm: Fix hrtimer list corruption
+    - clk: fix leak on devm_clk_bulk_get_all() unwind
+    - scripts/tracing: fix the bug that can't parse raw_trace_func
+    - tracing / histogram: Give calculation hist_fields a size
+    - optee: Clear stale cache entries during initialization
+    - tee: add tee_shm_alloc_kernel_buf()
+    - optee: Fix memory leak when failing to register shm pages
+    - tpm_ftpm_tee: Free and unregister TEE shared memory during kexec
+    - staging: rtl8723bs: Fix a resource leak in sd_int_dpc
+    - staging: rtl8712: get rid of flush_scheduled_work
+    - media: rtl28xxu: fix zero-length control request
+    - pipe: increase minimum default pipe size to 2 pages
+    - ext4: fix potential htree corruption when growing large_dir directories
+    - serial: tegra: Only print FIFO error message when an error occurs
+    - serial: 8250_mtk: fix uart corruption issue when rx power off
+    - serial: 8250: Mask out floating 16/32-bit bus bits
+    - MIPS: Malta: Do not byte-swap accesses to the CBUS UART
+    - serial: 8250_pci: Enumerate Elkhart Lake UARTs via dedicated driver
+    - serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts.
+    - timers: Move clearing of base::timer_running under base:: Lock
+    - pcmcia: i82092: fix a null pointer dereference bug
+    - md/raid10: properly indicate failure when ending a failed write request
+    - KVM: x86: accept userspace interrupt only if no event is injected
+    - KVM: Do not leak memory for duplicate debugfs directories
+    - KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds
+    - arm64: vdso: Avoid ISB after reading from cntvct_el0
+    - soc: ixp4xx: fix printing resources
+    - spi: meson-spicc: fix memory leak in meson_spicc_remove
+    - soc: ixp4xx/qmgr: fix invalid __iomem access
+    - perf/x86/amd: Don't touch the AMD64_EVENTSEL_HOSTONLY bit inside the guest
+    - bpf, selftests: Adjust few selftest result_unpriv outcomes
+    - libata: fix ata_pio_sector for CONFIG_HIGHMEM
+    - reiserfs: add check for root_inode in reiserfs_fill_super
+    - reiserfs: check directory items on read from disk
+    - virt_wifi: fix error on connect
+    - alpha: Send stop IPI to send to online CPUs
+    - net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and
+      ql_adapter_reset
+    - arm64: fix compat syscall return truncation
+    - Linux 5.4.140
+
+  * Focal update: v5.4.139 upstream stable release (LP: #1941796)
+    - btrfs: delete duplicated words + other fixes in comments
+    - btrfs: do not commit logs and transactions during link and rename operations
+    - btrfs: fix race causing unnecessary inode logging during link and rename
+    - btrfs: fix lost inode on log replay after mix of fsync, rename and inode
+      eviction
+    - regulator: rt5033: Fix n_voltages settings for BUCK and LDO
+    - spi: stm32h7: fix full duplex irq handler handling
+    - ASoC: tlv320aic31xx: fix reversed bclk/wclk master bits
+    - r8152: Fix potential PM refcount imbalance
+    - qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()
+    - net: Fix zero-copy head len calculation.
+    - nvme: fix nvme_setup_command metadata trace event
+    - ACPI: fix NULL pointer dereference
+    - Revert "Bluetooth: Shutdown controller after workqueues are flushed or
+      cancelled"
+    - firmware: arm_scmi: Ensure drivers provide a probe function
+    - firmware: arm_scmi: Add delayed response status check
+    - bpf: Inherit expanded/patched seen count from old aux data
+    - bpf: Do not mark insn as seen under speculative path verification
+    - bpf: Fix leakage under speculation on mispredicted branches
+    - bpf: Test_verifier, add alu32 bounds tracking tests
+    - bpf, selftests: Add a verifier test for assigning 32bit reg states to 64bit
+      ones
+    - bpf, selftests: Adjust few selftest outcomes wrt unreachable code
+    - spi: mediatek: Fix fifo transfer
+    - Linux 5.4.139
+
+  * Focal update: v5.4.138 upstream stable release (LP: #1940559)
+    - net_sched: check error pointer in tcf_dump_walker()
+    - x86/asm: Ensure asm/proto.h can be included stand-alone
+    - btrfs: fix rw device counting in __btrfs_free_extra_devids
+    - btrfs: mark compressed range uptodate only if all bio succeed
+    - x86/kvm: fix vcpu-id indexed array sizes
+    - KVM: add missing compat KVM_CLEAR_DIRTY_LOG
+    - ocfs2: fix zero out valid data
+    - ocfs2: issue zeroout to EOF blocks
+    - can: j1939: j1939_xtp_rx_dat_one(): fix rxtimer value between consecutive
+      TP.DT to 750ms
+    - can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF
+    - can: mcba_usb_start(): add missing urb->transfer_dma initialization
+    - can: usb_8dev: fix memory leak
+    - can: ems_usb: fix memory leak
+    - can: esd_usb2: fix memory leak
+    - HID: wacom: Re-enable touch by default for Cintiq 24HDT / 27QHDT
+    - NIU: fix incorrect error return, missed in previous revert
+    - nfc: nfcsim: fix use after free during module unload
+    - cfg80211: Fix possible memory leak in function cfg80211_bss_update
+    - netfilter: conntrack: adjust stop timestamp to real expiry value
+    - netfilter: nft_nat: allow to specify layer 4 protocol NAT only
+    - i40e: Fix logic of disabling queues
+    - i40e: Fix firmware LLDP agent related warning
+    - i40e: Fix queue-to-TC mapping on Tx
+    - i40e: Fix log TC creation failure when max num of queues is exceeded
+    - tipc: fix sleeping in tipc accept routine
+    - net: Set true network header for ECN decapsulation
+    - mlx4: Fix missing error code in mlx4_load_one()
+    - net: llc: fix skb_over_panic
+    - net/mlx5: Fix flow table chaining
+    - net/mlx5e: Fix nullptr in mlx5e_hairpin_get_mdev()
+    - sctp: fix return value check in __sctp_rcv_asconf_lookup
+    - tulip: windbond-840: Fix missing pci_disable_device() in probe and remove
+    - sis900: Fix missing pci_disable_device() in probe and remove
+    - can: hi311x: fix a signedness bug in hi3110_cmd()
+    - PCI: mvebu: Setup BAR0 in order to fix MSI
+    - powerpc/pseries: Fix regression while building external modules
+    - i40e: Add additional info to PHY type error
+    - can: j1939: j1939_session_deactivate(): clarify lifetime of session object
+    - Linux 5.4.138
+
+  * Focal update: v5.4.137 upstream stable release (LP: #1940557)
+    - selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c
+    - tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include
+    - KVM: x86: determine if an exception has an error code only when injecting
+      it.
+    - af_unix: fix garbage collect vs MSG_PEEK
+    - workqueue: fix UAF in pwq_unbound_release_workfn()
+    - cgroup1: fix leaked context root causing sporadic NULL deref in LTP
+    - net/802/mrp: fix memleak in mrp_request_join()
+    - net/802/garp: fix memleak in garp_request_join()
+    - net: annotate data race around sk_ll_usec
+    - sctp: move 198 addresses from unusable to private scope
+    - ipv6: allocate enough headroom in ip6_finish_output2()
+    - hfs: add missing clean-up in hfs_fill_super
+    - hfs: fix high memory mapping in hfs_bnode_read
+    - hfs: add lock nesting notation to hfs_find_init
+    - firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow
+    - firmware: arm_scmi: Fix range check for the maximum number of pending
+      messages
+    - cifs: fix the out of range assignment to bit fields in
+      parse_server_interfaces
+    - iomap: remove the length variable in iomap_seek_data
+    - iomap: remove the length variable in iomap_seek_hole
+    - ARM: dts: versatile: Fix up interrupt controller node names
+    - ipv6: ip6_finish_output2: set sk into newly allocated nskb
+    - Linux 5.4.137
+
+  * Focal update: v5.4.136 upstream stable release (LP: #1939899)
+    - igc: Fix use-after-free error during reset
+    - igb: Fix use-after-free error during reset
+    - igc: change default return of igc_read_phy_reg()
+    - ixgbe: Fix an error handling path in 'ixgbe_probe()'
+    - igc: Prefer to use the pci_release_mem_regions method
+    - igc: Fix an error handling path in 'igc_probe()'
+    - igb: Fix an error handling path in 'igb_probe()'
+    - fm10k: Fix an error handling path in 'fm10k_probe()'
+    - e1000e: Fix an error handling path in 'e1000_probe()'
+    - iavf: Fix an error handling path in 'iavf_probe()'
+    - igb: Check if num of q_vectors is smaller than max before array access
+    - igb: Fix position of assignment to *ring
+    - gve: Fix an error handling path in 'gve_probe()'
+    - ipv6: fix 'disable_policy' for fwd packets
+    - selftests: icmp_redirect: remove from checking for IPv6 route get
+    - selftests: icmp_redirect: IPv6 PMTU info should be cleared after redirect
+    - pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped
+    - cxgb4: fix IRQ free race during driver unload
+    - nvme-pci: do not call nvme_dev_remove_admin from nvme_remove
+    - perf probe: Fix dso->nsinfo refcounting
+    - perf env: Fix sibling_dies memory leak
+    - perf test session_topology: Delete session->evlist
+    - perf test event_update: Fix memory leak of evlist
+    - perf dso: Fix memory leak in dso__new_map()
+    - perf script: Fix memory 'threads' and 'cpus' leaks on exit
+    - perf lzma: Close lzma stream on exit
+    - perf probe-file: Delete namelist in del_events() on the error path
+    - perf data: Close all files in close_dir()
+    - spi: imx: add a check for speed_hz before calculating the clock
+    - spi: stm32: Use dma_request_chan() instead dma_request_slave_channel()
+    - spi: stm32: fixes pm_runtime calls in probe/remove
+    - regulator: hi6421: Use correct variable type for regmap api val argument
+    - regulator: hi6421: Fix getting wrong drvdata
+    - spi: mediatek: fix fifo rx mode
+    - ASoC: rt5631: Fix regcache sync errors on resume
+    - liquidio: Fix unintentional sign extension issue on left shift of u16
+    - s390/bpf: Perform r1 range checking before accessing jit->seen_reg[r1]
+    - bpf, sockmap, tcp: sk_prot needs inuse_idx set for proc stats
+    - bpftool: Check malloc return value in mount_bpffs_for_pin
+    - net: fix uninit-value in caif_seqpkt_sendmsg
+    - efi/tpm: Differentiate missing and invalid final event log table.
+    - net: decnet: Fix sleeping inside in af_decnet
+    - KVM: PPC: Book3S: Fix CONFIG_TRANSACTIONAL_MEM=n crash
+    - KVM: PPC: Fix kvm_arch_vcpu_ioctl vcpu_load leak
+    - net: sched: fix memory leak in tcindex_partial_destroy_work
+    - netrom: Decrease sock refcount when sock timers expire
+    - scsi: iscsi: Fix iface sysfs attr detection
+    - scsi: target: Fix protect handling in WRITE SAME(32)
+    - spi: cadence: Correct initialisation of runtime PM again
+    - bnxt_en: Improve bnxt_ulp_stop()/bnxt_ulp_start() call sequence.
+    - bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe()
+    - bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()
+    - bnxt_en: Check abort error state in bnxt_half_open_nic()
+    - net: hisilicon: rename CACHE_LINE_MASK to avoid redefinition
+    - net/tcp_fastopen: fix data races around tfo_active_disable_stamp
+    - net: hns3: fix rx VLAN offload state inconsistent issue
+    - net/sched: act_skbmod: Skip non-Ethernet packets
+    - ipv6: fix another slab-out-of-bounds in fib6_nh_flush_exceptions
+    - nvme-pci: don't WARN_ON in nvme_reset_work if ctrl.state is not RESETTING
+    - Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem"
+    - afs: Fix tracepoint string placement with built-in AFS
+    - r8169: Avoid duplicate sysfs entry creation error
+    - nvme: set the PRACT bit when using Write Zeroes with T10 PI
+    - sctp: update active_key for asoc when old key is being replaced
+    - net: sched: cls_api: Fix the the wrong parameter
+    - drm/panel: raspberrypi-touchscreen: Prevent double-free
+    - proc: Avoid mixing integer types in mem_rw()
+    - s390/ftrace: fix ftrace_update_ftrace_func implementation
+    - s390/boot: fix use of expolines in the DMA code
+    - ALSA: usb-audio: Add missing proc text entry for BESPOKEN type
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum headsets
+    - ALSA: sb: Fix potential ABBA deadlock in CSP driver
+    - ALSA: hdmi: Expose all pins on MSI MS-7C94 board
+    - xhci: Fix lost USB 2 remote wake
+    - KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow
+    - KVM: PPC: Book3S HV Nested: Sanitise H_ENTER_NESTED TM state
+    - usb: hub: Disable USB 3 device initiated lpm if exit latency is too high
+    - usb: hub: Fix link power management max exit latency (MEL) calculations
+    - USB: usb-storage: Add LaCie Rugged USB3-FW to IGNORE_UAS
+    - usb: max-3421: Prevent corruption of freed memory
+    - usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop()
+    - USB: serial: option: add support for u-blox LARA-R6 family
+    - USB: serial: cp210x: fix comments for GE CS1000
+    - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
+    - usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
+    - firmware/efi: Tell memblock about EFI iomem reservations
+    - tracing/histogram: Rename "cpu" to "common_cpu"
+    - tracing: Fix bug in rb_per_cpu_empty() that might cause deadloop.
+    - btrfs: check for missing device in btrfs_trim_fs
+    - media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf()
+    - ixgbe: Fix packet corruption due to missing DMA sync
+    - selftest: use mmap instead of posix_memalign to allocate memory
+    - userfaultfd: do not untag user pointers
+    - hugetlbfs: fix mount mode command line processing
+    - rbd: don't hold lock_rwsem while running_list is being drained
+    - rbd: always kick acquire on "acquired" and "released" notifications
+    - nds32: fix up stack guard gap
+    - drm: Return -ENOTTY for non-drm ioctls
+    - net: dsa: mv88e6xxx: use correct .stats_set_histogram() on Topaz
+    - net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear
+    - iio: accel: bma180: Use explicit member assignment
+    - iio: accel: bma180: Fix BMA25x bandwidth register values
+    - btrfs: compression: don't try to compress if we don't have enough pages
+    - PCI: Mark AMD Navi14 GPU ATS as broken
+    - perf inject: Close inject.output on exit
+    - xhci: add xhci_get_virt_ep() helper
+    - Linux 5.4.136
+
+  * Focal update: v5.4.135 upstream stable release (LP: #1939442)
+    - ARM: dts: gemini: rename mdio to the right name
+    - ARM: dts: gemini: add device_type on pci
+    - ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288
+    - arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi
+    - ARM: dts: rockchip: Fix the timer clocks order
+    - ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x
+    - ARM: dts: rockchip: Fix power-controller node names for rk3066a
+    - ARM: dts: rockchip: Fix power-controller node names for rk3188
+    - ARM: dts: rockchip: Fix power-controller node names for rk3288
+    - arm64: dts: rockchip: Fix power-controller node names for px30
+    - arm64: dts: rockchip: Fix power-controller node names for rk3328
+    - reset: ti-syscon: fix to_ti_syscon_reset_data macro
+    - ARM: brcmstb: dts: fix NAND nodes names
+    - ARM: Cygnus: dts: fix NAND nodes names
+    - ARM: NSP: dts: fix NAND nodes names
+    - ARM: dts: BCM63xx: Fix NAND nodes names
+    - ARM: dts: Hurricane 2: Fix NAND nodes names
+    - ARM: dts: imx6: phyFLEX: Fix UART hardware flow control
+    - ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info
+    - rtc: mxc_v2: add missing MODULE_DEVICE_TABLE
+    - kbuild: sink stdout from cmd for silent build
+    - ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios
+    - ARM: dts: am437x-gp-evm: fix ti,no-reset-on-init flag for gpios
+    - ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
+    - ARM: dts: stm32: fix RCC node name on stm32f429 MCU
+    - ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
+    - arm64: dts: juno: Update SCPI nodes as per the YAML schema
+    - ARM: dts: rockchip: fix supply properties in io-domains nodes
+    - ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
+    - ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
+    - soc/tegra: fuse: Fix Tegra234-only builds
+    - firmware: tegra: bpmp: Fix Tegra234-only builds
+    - arm64: dts: ls208xa: remove bus-num from dspi node
+    - arm64: dts: imx8mq: assign PCIe clocks
+    - thermal/core: Correct function name thermal_zone_device_unregister()
+    - kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
+    - rtc: max77686: Do not enforce (incorrect) interrupt trigger type
+    - scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8
+    - scsi: libsas: Add LUN number check in .slave_alloc callback
+    - scsi: libfc: Fix array index out of bound exception
+    - scsi: qedf: Add check to synchronize abort and flush
+    - sched/fair: Fix CFS bandwidth hrtimer expiry type
+    - s390: introduce proper type handling call_on_stack() macro
+    - cifs: prevent NULL deref in cifs_compose_mount_options()
+    - arm64: dts: armada-3720-turris-mox: add firmware node
+    - firmware: turris-mox-rwtm: add marvell,armada-3700-rwtm-firmware compatible
+      string
+    - arm64: dts: marvell: armada-37xx: move firmware node to generic dtsi file
+    - f2fs: Show casefolding support only when supported
+    - usb: cdns3: Enable TDL_CHK only for OUT ep
+    - Revert "UBUNTU: SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root
+      kmem_cache destroy""
+    - mm: slab: fix kmem_cache_create failed when sysfs node not destroyed
+    - dm writecache: return the exact table values that were set
+    - net: dsa: mv88e6xxx: enable .port_set_policy() on Topaz
+    - net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz
+    - net: ipv6: fix return value of ip6_skb_dst_mtu
+    - netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo
+    - net/sched: act_ct: fix err check for nf_conntrack_confirm
+    - net: bridge: sync fdb to new unicast-filtering ports
+    - net: bcmgenet: Ensure all TX/RX queues DMAs are disabled
+    - net: ip_tunnel: fix mtu calculation for ETHER tunnel devices
+    - net: moxa: fix UAF in moxart_mac_probe
+    - net: qcom/emac: fix UAF in emac_remove
+    - net: ti: fix UAF in tlan_remove_one
+    - net: send SYNACK packet with accepted fwmark
+    - net: validate lwtstate->data before returning from skb_tunnel_info()
+    - net: fddi: fix UAF in fza_probe
+    - dma-buf/sync_file: Don't leak fences on merge failure
+    - tcp: annotate data races around tp->mtu_info
+    - ipv6: tcp: drop silly ICMPv6 packet too big messages
+    - bpftool: Properly close va_list 'ap' by va_end() on error
+    - perf test bpf: Free obj_buf
+    - udp: annotate data races around unix_sk(sk)->gso_size
+    - Linux 5.4.135
+
+  * Focal update: v5.4.134 upstream stable release (LP: #1939440)
+    - KVM: mmio: Fix use-after-free Read in kvm_vm_ioctl_unregister_coalesced_mmio
+    - KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled
+    - KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run()
+    - scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
+    - tracing: Do not reference char * as a string in histograms
+    - cgroup: verify that source is a string
+    - fbmem: Do not delete the mode that is still in use
+    - net: moxa: Use devm_platform_get_and_ioremap_resource()
+    - dmaengine: fsl-qdma: check dma_set_mask return value
+    - srcu: Fix broken node geometry after early ssp init
+    - tty: serial: fsl_lpuart: fix the potential risk of division or modulo by
+      zero
+    - misc/libmasm/module: Fix two use after free in ibmasm_init_one
+    - misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge
+    - iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get().
+    - iio: magn: bmc150: Balance runtime pm + use pm_runtime_resume_and_get()
+    - ALSA: usx2y: Don't call free_pages_exact() with NULL address
+    - Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
+    - w1: ds2438: fixing bug that would always get page0
+    - scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw()
+    - scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
+    - scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the
+      SGLs
+    - scsi: core: Cap scsi_host cmd_per_lun at can_queue
+    - ALSA: ac97: fix PM reference leak in ac97_bus_remove()
+    - tty: serial: 8250: serial_cs: Fix a memory leak in error handling path
+    - scsi: scsi_dh_alua: Check for negative result value
+    - fs/jfs: Fix missing error code in lmLogInit()
+    - scsi: megaraid_sas: Fix resource leak in case of probe failure
+    - scsi: megaraid_sas: Early detection of VD deletion through RaidMap update
+    - scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs
+    - scsi: iscsi: Add iscsi_cls_conn refcount helpers
+    - scsi: iscsi: Fix conn use after free during resets
+    - scsi: iscsi: Fix shost->max_id use
+    - scsi: qedi: Fix null ref during abort handling
+    - mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
+    - mfd: cpcap: Fix cpcap dmamask not set warnings
+    - ASoC: img: Fix PM reference leak in img_i2s_in_probe()
+    - serial: tty: uartlite: fix console setup
+    - s390/sclp_vt220: fix console name to match device
+    - ALSA: sb: Fix potential double-free of CSP mixer elements
+    - powerpc/ps3: Add dma_mask to ps3_dma_region
+    - iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get
+      fails
+    - iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation
+    - gpio: zynq: Check return value of pm_runtime_get_sync
+    - ALSA: ppc: fix error return code in snd_pmac_probe()
+    - selftests/powerpc: Fix "no_handler" EBB selftest
+    - gpio: pca953x: Add support for the On Semi pca9655
+    - ASoC: soc-core: Fix the error return code in
+      snd_soc_of_parse_audio_routing()
+    - s390/processor: always inline stap() and __load_psw_mask()
+    - s390/ipl_parm: fix program check new psw handling
+    - s390/mem_detect: fix diag260() program check new psw handling
+    - s390/mem_detect: fix tprot() program check new psw handling
+    - Input: hideep - fix the uninitialized use in hideep_nvm_unlock()
+    - ALSA: bebob: add support for ToneWeal FW66
+    - ALSA: usb-audio: scarlett2: Fix 18i8 Gen 2 PCM Input count
+    - ALSA: usb-audio: scarlett2: Fix data_mutex lock
+    - ALSA: usb-audio: scarlett2: Fix scarlett2_*_ctl_put() return values
+    - usb: gadget: f_hid: fix endianness issue with descriptors
+    - usb: gadget: hid: fix error return code in hid_bind()
+    - powerpc/boot: Fixup device-tree on little endian
+    - ASoC: Intel: kbl_da7219_max98357a: shrink platform_id below 20 characters
+    - backlight: lm3630a: Fix return code of .update_status() callback
+    - ALSA: hda: Add IRQ check for platform_get_irq()
+    - ALSA: usb-audio: scarlett2: Fix 6i6 Gen 2 line out descriptions
+    - staging: rtl8723bs: fix macro value for 2.4Ghz only device
+    - intel_th: Wait until port is in reset before programming it
+    - i2c: core: Disable client irq on reboot/shutdown
+    - power: supply: sc27xx: Add missing MODULE_DEVICE_TABLE
+    - power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE
+    - pwm: spear: Don't modify HW state in .remove callback
+    - power: supply: ab8500: Avoid NULL pointers
+    - power: supply: max17042: Do not enforce (incorrect) interrupt trigger type
+    - power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
+    - ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1
+    - PCI/P2PDMA: Avoid pci_get_slot(), which may sleep
+    - watchdog: Fix possible use-after-free in wdt_startup()
+    - watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff()
+    - watchdog: Fix possible use-after-free by calling del_timer_sync()
+    - watchdog: imx_sc_wdt: fix pretimeout
+    - x86/fpu: Return proper error codes from user access functions
+    - PCI: tegra: Add missing MODULE_DEVICE_TABLE
+    - orangefs: fix orangefs df output.
+    - ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
+    - NFS: nfs_find_open_context() may only select open files
+    - power: supply: charger-manager: add missing MODULE_DEVICE_TABLE
+    - power: supply: ab8500: add missing MODULE_DEVICE_TABLE
+    - pwm: img: Fix PM reference leak in img_pwm_enable()
+    - pwm: tegra: Don't modify HW state in .remove callback
+    - ACPI: AMBA: Fix resource name in /proc/iomem
+    - ACPI: video: Add quirk for the Dell Vostro 3350
+    - virtio-blk: Fix memory leak among suspend/resume procedure
+    - virtio_net: Fix error handling in virtnet_restore()
+    - virtio_console: Assure used length from device is limited
+    - x86/signal: Detect and prevent an alternate signal stack overflow
+    - f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs
+    - PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
+    - power: supply: rt5033_battery: Fix device tree enumeration
+    - NFSv4: Initialise connection to the server in nfs4_alloc_client()
+    - um: fix error return code in slip_open()
+    - um: fix error return code in winch_tramp()
+    - watchdog: aspeed: fix hardware timeout calculation
+    - nfs: fix acl memory leak of posix_acl_create()
+    - ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode
+    - PCI: iproc: Fix multi-MSI base vector number allocation
+    - PCI: iproc: Support multi-MSI only on uniprocessor kernel
+    - x86/fpu: Limit xstate copy size in xstateregs_set()
+    - pwm: imx1: Don't disable clocks at device remove time
+    - virtio_net: move tx vq operation under tx queue lock
+    - nvme-tcp: can't set sk_user_data without write_lock
+    - ALSA: isa: Fix error return code in snd_cmi8330_probe()
+    - NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times
+    - hexagon: use common DISCARDS macro
+    - ARM: dts: gemini-rut1xx: remove duplicate ethernet node
+    - reset: a10sr: add missing of_match_table reference
+    - ARM: exynos: add missing of_node_put for loop iteration
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4
+    - memory: atmel-ebi: add missing of_node_put for loop iteration
+    - reset: brcmstb: Add missing MODULE_DEVICE_TABLE
+    - memory: pl353: Fix error return code in pl353_smc_probe()
+    - rtc: fix snprintf() checking in is_rtc_hctosys()
+    - arm64: dts: renesas: v3msk: Fix memory size
+    - ARM: dts: r8a7779, marzen: Fix DU clock names
+    - firmware: tegra: Fix error return code in tegra210_bpmp_init()
+    - firmware: arm_scmi: Reset Rx buffer to max size during async commands
+    - ARM: dts: BCM5301X: Fixup SPI binding
+    - reset: bail if try_module_get() fails
+    - memory: fsl_ifc: fix leak of IO mapping on probe failure
+    - memory: fsl_ifc: fix leak of private memory on probe failure
+    - ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema
+    - ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema
+    - ARM: dts: imx6q-dhcom: Fix ethernet reset time properties
+    - ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems
+    - ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery
+    - thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations
+    - firmware: turris-mox-rwtm: fix reply status decoding function
+    - firmware: turris-mox-rwtm: report failures better
+    - firmware: turris-mox-rwtm: fail probing when firmware does not support hwrng
+    - scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
+    - mips: always link byteswap helpers into decompressor
+    - mips: disable branch profiling in boot/decompress.o
+    - MIPS: vdso: Invalid GIC access through VDSO
+    - scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg()
+    - misc: alcor_pci: fix inverted branch condition
+    - Linux 5.4.134
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 20 Sep 2021 21:38:19 +0200
+
+linux (5.4.0-86.97) focal; urgency=medium
+
+  * s390x BPF JIT vulnerabilities (LP: #1943960)
+    - SAUCE: s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant
+    - SAUCE: s390/bpf: Fix optimizing out zero-extensions
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 17 Sep 2021 15:35:09 -0300
+
+linux (5.4.0-84.94) focal; urgency=medium
+
+  * focal/linux: 5.4.0-84.94 -proposed tracker (LP: #1941767)
+
+  * Server boot failure after adding checks for ACPI IRQ override (LP: #1941657)
+    - Revert "ACPI: resources: Add checks for ACPI IRQ override"
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Thu, 26 Aug 2021 12:48:59 -0600
+
+linux (5.4.0-83.93) focal; urgency=medium
+
+  * focal/linux: 5.4.0-83.93 -proposed tracker (LP: #1940159)
+
+  * fails to launch linux L2 guests on AMD (LP: #1940134) // CVE-2021-3653
+    - KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+      (CVE-2021-3653)
+
+  * fails to launch linux L2 guests on AMD (LP: #1940134)
+    - SAUCE: Revert "UBUNTU: SAUCE: KVM: nSVM: avoid picking up unsupported bits
+      from L2 in int_ctl"
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 17 Aug 2021 11:37:56 +0200
+
+linux (5.4.0-82.92) focal; urgency=medium
+
+  * focal/linux: 5.4.0-82.92 -proposed tracker (LP: #1939799)
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.08.16)
+
+  * CVE-2021-3656
+    - SAUCE: KVM: nSVM: always intercept VMLOAD/VMSAVE when nested
+
+  * CVE-2021-3653
+    - SAUCE: KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+
+  * [regression] USB device is not detected during boot (LP: #1939638)
+    - SAUCE: Revert "usb: core: reduce power-on-good delay time of root hub"
+
+  * dev_forward_skb: do not scrub skb mark within the same name space
+    (LP: #1935040)
+    - dev_forward_skb: do not scrub skb mark within the same name space
+
+  * XPS 9510 (TGL) Screen Brightness could not be changed (LP: #1933566)
+    - SAUCE: drm/i915: Force DPCD backlight mode for Dell XPS 9510(TGL)
+
+  * Acer Aspire 5 sound driver issues (LP: #1930188)
+    - ALSA: hda/realtek: headphone and mic don't work on an Acer laptop
+
+  * Sony Dualshock 4 usb dongle crashes the whole system (LP: #1935846)
+    - HID: sony: Workaround for DS4 dongle hotplug kernel crash.
+
+  * [21.10 FEAT] KVM: Provide a secure guest indication (LP: #1933173)
+    - s390/uv: add prot virt guest/host indication files
+    - s390/uv: fix prot virt host indication compilation
+
+  * Skip rtcpie test in kselftests/timers if the default RTC device does not
+    exist (LP: #1937991)
+    - selftests: timers: rtcpie: skip test if default RTC device does not exist
+
+  * Focal update: v5.4.133 upstream stable release (LP: #1938713)
+    - drm/mxsfb: Don't select DRM_KMS_FB_HELPER
+    - drm/zte: Don't select DRM_KMS_FB_HELPER
+    - drm/amd/amdgpu/sriov disable all ip hw status by default
+    - drm/vc4: fix argument ordering in vc4_crtc_get_margins()
+    - net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
+    - drm/amd/display: fix use_max_lb flag for 420 pixel formats
+    - hugetlb: clear huge pte during flush function on mips platform
+    - atm: iphase: fix possible use-after-free in ia_module_exit()
+    - mISDN: fix possible use-after-free in HFC_cleanup()
+    - atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
+    - net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
+    - drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init()
+    - reiserfs: add check for invalid 1st journal block
+    - drm/virtio: Fix double free on probe failure
+    - drm/sched: Avoid data corruptions
+    - udf: Fix NULL pointer dereference in udf_symlink function
+    - e100: handle eeprom as little endian
+    - igb: handle vlan types with checker enabled
+    - drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer()
+    - clk: renesas: r8a77995: Add ZA2 clock
+    - clk: tegra: Ensure that PLLU configuration is applied properly
+    - ipv6: use prandom_u32() for ID generation
+    - RDMA/cxgb4: Fix missing error code in create_qp()
+    - dm space maps: don't reset space map allocation cursor when committing
+    - pinctrl: mcp23s08: fix race condition in irq handler
+    - ice: set the value of global config lock timeout longer
+    - virtio_net: Remove BUG() to avoid machine dead
+    - net: bcmgenet: check return value after calling platform_get_resource()
+    - net: mvpp2: check return value after calling platform_get_resource()
+    - net: micrel: check return value after calling platform_get_resource()
+    - drm/amd/display: Update scaling settings on modeset
+    - drm/amd/display: Release MST resources on switch from MST to SST
+    - drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7
+    - drm/amdkfd: use allowed domain for vmbo validation
+    - fjes: check return value after calling platform_get_resource()
+    - selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
+    - r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM
+    - drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check
+    - xfrm: Fix error reporting in xfrm_state_construct.
+    - wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
+    - wl1251: Fix possible buffer overflow in wl1251_cmd_scan
+    - cw1200: add missing MODULE_DEVICE_TABLE
+    - bpf: Fix up register-based shifts in interpreter to silence KUBSAN
+    - mt76: mt7615: fix fixed-rate tx status reporting
+    - net: fix mistake path for netdev_features_strings
+    - net: sched: fix error return code in tcf_del_walker()
+    - drm/amdkfd: Walk through list with dqm lock hold
+    - rtl8xxxu: Fix device info for RTL8192EU devices
+    - atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
+    - atm: nicstar: register the interrupt handler in the right place
+    - vsock: notify server to shutdown when client has pending signal
+    - RDMA/rxe: Don't overwrite errno from ib_umem_get()
+    - iwlwifi: mvm: don't change band on bound PHY contexts
+    - iwlwifi: pcie: free IML DMA memory allocation
+    - iwlwifi: pcie: fix context info freeing
+    - sfc: avoid double pci_remove of VFs
+    - sfc: error code if SRIOV cannot be disabled
+    - wireless: wext-spy: Fix out-of-bounds warning
+    - media, bpf: Do not copy more entries than user space requested
+    - net: ip: avoid OOM kills with large UDP sends over loopback
+    - RDMA/cma: Fix rdma_resolve_route() memory leak
+    - Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip.
+    - Bluetooth: Fix the HCI to MGMT status conversion table
+    - Bluetooth: Shutdown controller after workqueues are flushed or cancelled
+    - Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
+    - sctp: validate from_addr_param return
+    - sctp: add size validation when walking chunks
+    - MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
+    - MIPS: set mips32r5 for virt extensions
+    - fscrypt: don't ignore minor_hash when hash is 0
+    - crypto: ccp - Annotate SEV Firmware file names
+    - perf bench: Fix 2 memory sanitizer warnings
+    - powerpc/mm: Fix lockup on kernel exec fault
+    - powerpc/barrier: Avoid collision with clang's __lwsync macro
+    - drm/amdgpu: Update NV SIMD-per-CU to 2
+    - drm/radeon: Add the missed drm_gem_object_put() in
+      radeon_user_framebuffer_create()
+    - drm/rockchip: dsi: remove extra component_del() call
+    - drm/amd/display: fix incorrrect valid irq check
+    - pinctrl/amd: Add device HID for new AMD GPIO controller
+    - drm/tegra: Don't set allow_fb_modifiers explicitly
+    - drm/msm/mdp4: Fix modifier support enabling
+    - drm/arm/malidp: Always list modifiers
+    - mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
+    - mmc: core: clear flags before allowing to retune
+    - mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
+    - ata: ahci_sunxi: Disable DIPM
+    - cpu/hotplug: Cure the cpusets trainwreck
+    - clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
+    - fpga: stratix10-soc: Add missing fpga_mgr_free() call
+    - MIPS: fix "mipsel-linux-ld: decompress.c:undefined reference to `memmove'"
+    - ASoC: tegra: Set driver_name=tegra for all machine drivers
+    - qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
+    - ipmi/watchdog: Stop watchdog timer when the current action is 'none'
+    - thermal/drivers/int340x/processor_thermal: Fix tcc setting
+    - ubifs: Fix races between xattr_{set|get} and listxattr operations
+    - power: supply: ab8500: Fix an old bug
+    - nvmem: core: add a missing of_node_put
+    - extcon: intel-mrfld: Sync hardware and software state on init
+    - seq_buf: Fix overflow in seq_buf_putmem_hex()
+    - rq-qos: fix missed wake-ups in rq_qos_throttle try two
+    - tracing: Simplify & fix saved_tgids logic
+    - tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
+    - ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe
+    - coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
+    - dm btree remove: assign new_root only when removal succeeds
+    - PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
+    - PCI: aardvark: Fix checking for PIO Non-posted Request
+    - PCI: aardvark: Implement workaround for the readback value of VEND_ID
+    - media: subdev: disallow ioctl for saa6588/davinci
+    - media: dtv5100: fix control-request directions
+    - media: zr364xx: fix memory leak in zr364xx_start_readpipe
+    - media: gspca/sq905: fix control-request direction
+    - media: gspca/sunplus: fix zero-length control requests
+    - pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
+    - jfs: fix GPF in diFree
+    - smackfs: restrict bytes count in smk_set_cipso()
+    - Linux 5.4.133
+
+  * Focal update: v5.4.132 upstream stable release (LP: #1938199)
+    - ALSA: usb-audio: fix rate on Ozone Z90 USB headset
+    - ALSA: usb-audio: Fix OOB access at proc output
+    - ALSA: usb-audio: scarlett2: Fix wrong resume call
+    - ALSA: intel8x0: Fix breakage at ac97 clock measurement
+    - ALSA: hda/realtek: Add another ALC236 variant support
+    - ALSA: hda/realtek: Improve fixup for HP Spectre x360 15-df0xxx
+    - ALSA: hda/realtek: Fix bass speaker DAC mapping for Asus UM431D
+    - ALSA: hda/realtek: Apply LED fixup for HP Dragonfly G1, too
+    - media: dvb-usb: fix wrong definition
+    - Input: usbtouchscreen - fix control-request directions
+    - net: can: ems_usb: fix use-after-free in ems_usb_disconnect()
+    - usb: gadget: eem: fix echo command packet response issue
+    - USB: cdc-acm: blacklist Heimann USB Appset device
+    - usb: dwc3: Fix debugfs creation flow
+    - usb: typec: Add the missed altmode_id_remove() in typec_register_altmode()
+    - xhci: solve a double free problem while doing s4
+    - ntfs: fix validity check for file name attribute
+    - copy_page_to_iter(): fix ITER_DISCARD case
+    - iov_iter_fault_in_readable() should do nothing in xarray case
+    - Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl
+    - arm_pmu: Fix write counter incorrect in ARMv7 big-endian mode
+    - ARM: dts: at91: sama5d4: fix pinctrl muxing
+    - btrfs: send: fix invalid path for unlink operations after parent
+      orphanization
+    - btrfs: clear defrag status of a root if starting transaction fails
+    - ext4: cleanup in-core orphan list if ext4_truncate() failed to get a
+      transaction handle
+    - ext4: fix kernel infoleak via ext4_extent_header
+    - ext4: return error code when ext4_fill_flex_info() fails
+    - ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
+    - ext4: remove check for zero nr_to_scan in ext4_es_scan()
+    - ext4: fix avefreec in find_group_orlov
+    - ext4: use ext4_grp_locked_error in mb_find_extent
+    - can: gw: synchronize rcu operations before removing gw job entry
+    - can: j1939: j1939_sk_init(): set SOCK_RCU_FREE to call sk_destruct() after
+      RCU is done
+    - can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in
+      TX path
+    - mac80211: remove iwlwifi specific workaround that broke sta NDP tx
+    - SUNRPC: Fix the batch tasks count wraparound.
+    - SUNRPC: Should wake up the privileged task firstly.
+    - perf/smmuv3: Don't trample existing events with global filter
+    - KVM: PPC: Book3S HV: Workaround high stack usage with clang
+    - s390/cio: dont call css_wait_for_slow_path() inside a lock
+    - rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path
+    - iio: light: tcs3472: do not free unallocated IRQ
+    - iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA
+      as volatile, too
+    - iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR
+    - iio: ltr501: ltr501_read_ps(): add missing endianness conversion
+    - serial: mvebu-uart: fix calculation of clock divisor
+    - serial: sh-sci: Stop dmaengine transfer in sci_stop_tx()
+    - serial_cs: Add Option International GSM-Ready 56K/ISDN modem
+    - serial_cs: remove wrong GLOBETROTTER.cis entry
+    - ath9k: Fix kernel NULL pointer dereference during ath_reset_internal()
+    - ssb: sdio: Don't overwrite const buffer if block_write fails
+    - rsi: Assign beacon rate settings to the correct rate_info descriptor field
+    - rsi: fix AP mode with WPA failure due to encrypted EAPOL
+    - tracing/histograms: Fix parsing of "sym-offset" modifier
+    - tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing
+    - seq_buf: Make trace_seq_putmem_hex() support data longer than 8
+    - powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi()
+    - evm: Execute evm_inode_init_security() only when an HMAC key is loaded
+    - evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded
+    - fuse: ignore PG_workingset after stealing
+    - fuse: check connected before queueing on fpq->io
+    - fuse: reject internal errno
+    - spi: Make of_register_spi_device also set the fwnode
+    - media: mdk-mdp: fix pm_runtime_get_sync() usage count
+    - media: s5p: fix pm_runtime_get_sync() usage count
+    - media: sh_vou: fix pm_runtime_get_sync() usage count
+    - media: mtk-vcodec: fix PM runtime get logic
+    - media: s5p-jpeg: fix pm_runtime_get_sync() usage count
+    - media: sti/bdisp: fix pm_runtime_get_sync() usage count
+    - media: exynos-gsc: fix pm_runtime_get_sync() usage count
+    - spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf'
+    - spi: spi-topcliff-pch: Fix potential double free in
+      pch_spi_process_messages()
+    - spi: omap-100k: Fix the length judgment problem
+    - regulator: uniphier: Add missing MODULE_DEVICE_TABLE
+    - hwrng: exynos - Fix runtime PM imbalance on error
+    - crypto: nx - add missing MODULE_DEVICE_TABLE
+    - media: sti: fix obj-$(config) targets
+    - media: cpia2: fix memory leak in cpia2_usb_probe
+    - media: cobalt: fix race condition in setting HPD
+    - media: pvrusb2: fix warning in pvr2_i2c_core_done
+    - media: imx: imx7_mipi_csis: Fix logging of only error event counters
+    - crypto: qat - check return code of qat_hal_rd_rel_reg()
+    - crypto: qat - remove unused macro in FW loader
+    - sched/fair: Fix ascii art by relpacing tabs
+    - media: em28xx: Fix possible memory leak of em28xx struct
+    - media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release
+    - media: bt8xx: Fix a missing check bug in bt878_probe
+    - media: st-hva: Fix potential NULL pointer dereferences
+    - Makefile: fix GDB warning with CONFIG_RELR
+    - media: dvd_usb: memory leak in cinergyt2_fe_attach
+    - memstick: rtsx_usb_ms: fix UAF
+    - mmc: sdhci-sprd: use sdhci_sprd_writew
+    - mmc: via-sdmmc: add a check against NULL pointer dereference
+    - crypto: shash - avoid comparing pointers to exported functions under CFI
+    - media: dvb_net: avoid speculation from net slot
+    - media: siano: fix device register error path
+    - media: imx-csi: Skip first few frames from a BT.656 source
+    - hwmon: (max31790) Report correct current pwm duty cycles
+    - hwmon: (max31790) Fix pwmX_enable attributes
+    - drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe()
+    - KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10
+      processors
+    - btrfs: fix error handling in __btrfs_update_delayed_inode
+    - btrfs: abort transaction if we fail to update the delayed inode
+    - btrfs: disable build on platforms having page size 256K
+    - locking/lockdep: Fix the dep path printing for backwards BFS
+    - lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage()
+    - KVM: s390: get rid of register asm usage
+    - regulator: mt6358: Fix vdram2 .vsel_mask
+    - regulator: da9052: Ensure enough delay time for .set_voltage_time_sel
+    - media: Fix Media Controller API config checks
+    - HID: do not use down_interruptible() when unbinding devices
+    - EDAC/ti: Add missing MODULE_DEVICE_TABLE
+    - ACPI: processor idle: Fix up C-state latency if not ordered
+    - hv_utils: Fix passing zero to 'PTR_ERR' warning
+    - lib: vsprintf: Fix handling of number field widths in vsscanf
+    - ACPI: EC: Make more Asus laptops use ECDT _GPE
+    - block_dump: remove block_dump feature in mark_inode_dirty()
+    - fs: dlm: cancel work sync othercon
+    - random32: Fix implicit truncation warning in prandom_seed_state()
+    - fs: dlm: fix memory leak when fenced
+    - ACPICA: Fix memory leak caused by _CID repair function
+    - ACPI: bus: Call kobject_put() in acpi_init() error path
+    - block: fix race between adding/removing rq qos and normal IO
+    - platform/x86: toshiba_acpi: Fix missing error code in
+      toshiba_acpi_setup_keyboard()
+    - nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst()
+    - EDAC/Intel: Do not load EDAC driver when running as a guest
+    - PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv()
+    - clocksource: Retry clock read if long delays detected
+    - ACPI: tables: Add custom DSDT file as makefile prerequisite
+    - HID: wacom: Correct base usage for capacitive ExpressKey status bits
+    - cifs: fix missing spinlock around update to ses->status
+    - block: fix discard request merge
+    - kthread_worker: fix return value when kthread_mod_delayed_work() races with
+      kthread_cancel_delayed_work_sync()
+    - ia64: mca_drv: fix incorrect array size calculation
+    - writeback, cgroup: increment isw_nr_in_flight before grabbing an inode
+    - media: s5p_cec: decrement usage count if disabled
+    - crypto: ixp4xx - dma_unmap the correct address
+    - crypto: ux500 - Fix error return code in hash_hw_final()
+    - sata_highbank: fix deferred probing
+    - pata_rb532_cf: fix deferred probing
+    - media: I2C: change 'RST' to "RSET" to fix multiple build errors
+    - sched/uclamp: Fix wrong implementation of cpu.uclamp.min
+    - sched/uclamp: Fix locking around cpu_util_update_eff()
+    - kbuild: run the checker after the compiler
+    - kbuild: Fix objtool dependency for 'OBJECT_FILES_NON_STANDARD_<obj> := n'
+    - pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
+    - evm: fix writing <securityfs>/evm overflow
+    - crypto: ccp - Fix a resource leak in an error handling path
+    - media: rc: i2c: Fix an error message
+    - pata_ep93xx: fix deferred probing
+    - media: exynos4-is: Fix a use after free in isp_video_release
+    - media: au0828: fix a NULL vs IS_ERR() check
+    - media: tc358743: Fix error return code in tc358743_probe_of()
+    - media: gspca/gl860: fix zero-length control requests
+    - m68k: atari: Fix ATARI_KBD_CORE kconfig unmet dependency warning
+    - media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()
+    - crypto: nitrox - fix unchecked variable in nitrox_register_interrupts
+    - crypto: omap-sham - Fix PM reference leak in omap sham ops
+    - mmc: usdhi6rol0: fix error return code in usdhi6_probe()
+    - arm64: consistently use reserved_pg_dir
+    - arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan
+    - media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx
+    - hwmon: (max31722) Remove non-standard ACPI device IDs
+    - hwmon: (max31790) Fix fan speed reporting for fan7..12
+    - KVM: nVMX: Ensure 64-bit shift when checking VMFUNC bitmap
+    - regulator: hi655x: Fix pass wrong pointer to config.driver_data
+    - btrfs: clear log tree recovering status if starting transaction fails
+    - sched/rt: Fix RT utilization tracking during policy change
+    - sched/rt: Fix Deadline utilization tracking during policy change
+    - sched/uclamp: Fix uclamp_tg_restrict()
+    - spi: spi-sun6i: Fix chipselect/clock bug
+    - crypto: nx - Fix RCU warning in nx842_OF_upd_status
+    - ACPI: sysfs: Fix a buffer overrun problem with description_show()
+    - extcon: extcon-max8997: Fix IRQ freeing at error path
+    - blk-wbt: introduce a new disable state to prevent false positive by
+      rwb_enabled()
+    - blk-wbt: make sure throttle is enabled properly
+    - ACPI: Use DEVICE_ATTR_<RW|RO|WO> macros
+    - ACPI: bgrt: Fix CFI violation
+    - cpufreq: Make cpufreq_online() call driver->offline() on errors
+    - ocfs2: fix snprintf() checking
+    - dax: fix ENOMEM handling in grab_mapping_entry()
+    - xfrm: xfrm_state_mtu should return at least 1280 for ipv6
+    - video: fbdev: imxfb: Fix an error message
+    - net: mvpp2: Put fwnode in error case during ->probe()
+    - net: pch_gbe: Propagate error from devm_gpio_request_one()
+    - pinctrl: renesas: r8a7796: Add missing bias for PRESET# pin
+    - pinctrl: renesas: r8a77990: JTAG pins do not have pull-down capabilities
+    - clk: meson: g12a: fix gp0 and hifi ranges
+    - net: ftgmac100: add missing error return code in ftgmac100_probe()
+    - drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on error in
+      cdn_dp_grf_write()
+    - drm/rockchip: dsi: move all lane config except LCDC mux to bind()
+    - ehea: fix error return code in ehea_restart_qps()
+    - net/sched: act_vlan: Fix modify to allow 0
+    - RDMA/core: Sanitize WQ state received from the userspace
+    - RDMA/rxe: Fix failure during driver load
+    - drm: qxl: ensure surf.data is ininitialized
+    - tools/bpftool: Fix error return code in do_batch()
+    - ath10k: go to path err_unsupported when chip id is not supported
+    - ath10k: add missing error return code in ath10k_pci_probe()
+    - wireless: carl9170: fix LEDS build errors & warnings
+    - ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others
+    - wcn36xx: Move hal_buf allocation to devm_kmalloc in probe
+    - ssb: Fix error return code in ssb_bus_scan()
+    - brcmfmac: fix setting of station info chains bitmask
+    - brcmfmac: correctly report average RSSI in station info
+    - brcmsmac: mac80211_if: Fix a resource leak in an error handling path
+    - ath10k: Fix an error code in ath10k_add_interface()
+    - netlabel: Fix memory leak in netlbl_mgmt_add_common
+    - RDMA/mlx5: Don't add slave port to unaffiliated list
+    - netfilter: nft_exthdr: check for IPv6 packet before further processing
+    - netfilter: nft_osf: check for TCP packet before further processing
+    - netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols
+    - RDMA/rxe: Fix qp reference counting for atomic ops
+    - samples/bpf: Fix the error return code of xdp_redirect's main()
+    - net: ethernet: aeroflex: fix UAF in greth_of_remove
+    - net: ethernet: ezchip: fix UAF in nps_enet_remove
+    - net: ethernet: ezchip: fix error handling
+    - vrf: do not push non-ND strict packets with a source LLA through packet taps
+      again
+    - net: sched: add barrier to ensure correct ordering for lockless qdisc
+    - tls: prevent oversized sendfile() hangs by ignoring MSG_MORE
+    - pkt_sched: sch_qfq: fix qfq_change_class() error path
+    - vxlan: add missing rcu_read_lock() in neigh_reduce()
+    - net/ipv4: swap flow ports when validating source
+    - tc-testing: fix list handling
+    - ieee802154: hwsim: Fix memory leak in hwsim_add_one
+    - ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl()
+    - mac80211: remove iwlwifi specific workaround NDPs of null_response
+    - net: bcmgenet: Fix attaching to PYH failed on RPi 4B
+    - ipv6: exthdrs: do not blindly use init_net
+    - bpf: Do not change gso_size during bpf_skb_change_proto()
+    - i40e: Fix error handling in i40e_vsi_open
+    - i40e: Fix autoneg disabling for non-10GBaseT links
+    - Revert "ibmvnic: remove duplicate napi_schedule call in open function"
+    - ibmvnic: free tx_pool if tso_pool alloc fails
+    - ipv6: fix out-of-bound access in ip6_parse_tlv()
+    - e1000e: Check the PCIm state
+    - bpfilter: Specify the log level for the kmsg message
+    - gve: Fix swapped vars when fetching max queues
+    - Revert "be2net: disable bh with spin_lock in be_process_mcc"
+    - Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid
+    - Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event
+    - clk: actions: Fix UART clock dividers on Owl S500 SoC
+    - clk: actions: Fix SD clocks factor table on Owl S500 SoC
+    - clk: actions: Fix bisp_factor_table based clocks on Owl S500 SoC
+    - clk: si5341: Avoid divide errors due to bogus register contents
+    - clk: si5341: Update initialization magic
+    - writeback: fix obtain a reference to a freeing memcg css
+    - net: lwtunnel: handle MTU calculation in forwading
+    - net: sched: fix warning in tcindex_alloc_perfect_hash
+    - RDMA/mlx5: Don't access NULL-cleared mpi pointer
+    - MIPS: Fix PKMAP with 32-bit MIPS huge page support
+    - staging: fbtft: Rectify GPIO handling
+    - rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread()
+    - tty: nozomi: Fix a resource leak in an error handling function
+    - mwifiex: re-fix for unaligned accesses
+    - iio: adis_buffer: do not return ints in irq handlers
+    - iio: adis16400: do not return ints in irq handlers
+    - iio: accel: bma180: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: bma220: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: hid: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: kxcjk-1013: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio:accel:mxc4005: Drop unnecessary explicit casts in regmap_bulk_read calls
+    - iio: accel: mxc4005: Fix overread of data and alignment issue.
+    - iio: accel: stk8312: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: stk8ba50: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ti-ads1015: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: vf610: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: gyro: bmg160: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: humidity: am2315: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: srf08: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: pulsed-light: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: as3935: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: hmc5843: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: bmc150: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: isl29125: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: tcs3414: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: tcs3472: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: cros_ec_sensors: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - iio: potentiostat: lmp91000: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - ASoC: rk3328: fix missing clk_disable_unprepare() on error in
+      rk3328_platform_probe()
+    - ASoC: hisilicon: fix missing clk_disable_unprepare() on error in
+      hi6210_i2s_startup()
+    - backlight: lm3630a_bl: Put fwnode in error case during ->probe()
+    - ASoC: rsnd: tidyup loop on rsnd_adg_clk_query()
+    - Input: hil_kbd - fix error return code in hil_dev_connect()
+    - mtd: partitions: redboot: seek fis-index-block in the right node
+    - char: pcmcia: error out if 'num_bytes_read' is greater than 4 in
+      set_protocol()
+    - firmware: stratix10-svc: Fix a resource leak in an error handling path
+    - tty: nozomi: Fix the error handling path of 'nozomi_card_init()'
+    - leds: lm3532: select regmap I2C API
+    - leds: lm36274: cosmetic: rename lm36274_data to chip
+    - leds: lm3692x: Put fwnode in any case during ->probe()
+    - scsi: FlashPoint: Rename si_flags field
+    - fsi: core: Fix return of error values on failures
+    - fsi: scom: Reset the FSI2PIB engine for any error
+    - fsi: occ: Don't accept response from un-initialized OCC
+    - fsi/sbefifo: Clean up correct FIFO when receiving reset request from SBE
+    - fsi/sbefifo: Fix reset timeout
+    - visorbus: fix error return code in visorchipset_init()
+    - s390: appldata depends on PROC_SYSCTL
+    - iommu/dma: Fix IOVA reserve dma ranges
+    - ASoC: mediatek: mtk-btcvsd: Fix an error handling path in
+      'mtk_btcvsd_snd_probe()'
+    - usb: gadget: f_fs: Fix setting of device and driver data cross-references
+    - usb: dwc2: Don't reset the core after setting turnaround time
+    - eeprom: idt_89hpesx: Put fwnode in matching case during ->probe()
+    - eeprom: idt_89hpesx: Restore printing the unsupported fwnode name
+    - iio: at91-sama5d2_adc: remove usage of iio_priv_to_dev() helper
+    - iio: adc: at91-sama5d2: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: hx711: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: mxs-lradc: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ti-ads8688: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: rm3100: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt()
+    - staging: gdm724x: check for overflow in gdm_lte_netif_rx()
+    - staging: rtl8712: remove redundant check in r871xu_drv_init
+    - staging: rtl8712: fix memory leak in rtl871x_load_fw_cb
+    - staging: mt7621-dts: fix pci address for PCI memory range
+    - serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates
+    - iio: light: vcnl4035: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: isl29501: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - ASoC: cs42l42: Correct definition of CS42L42_ADC_PDN_MASK
+    - of: Fix truncation of memory sizes on 32-bit platforms
+    - mtd: rawnand: marvell: add missing clk_disable_unprepare() on error in
+      marvell_nfc_resume()
+    - scsi: mpt3sas: Fix error return value in _scsih_expander_add()
+    - soundwire: stream: Fix test for DP prepare complete
+    - phy: uniphier-pcie: Fix updating phy parameters
+    - phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe()
+    - extcon: sm5502: Drop invalid register write in sm5502_reg_data
+    - extcon: max8997: Add missing modalias string
+    - ASoC: atmel-i2s: Fix usage of capture and playback at the same time
+    - configfs: fix memleak in configfs_release_bin_file
+    - leds: as3645a: Fix error return code in as3645a_parse_node()
+    - leds: ktd2692: Fix an error handling path
+    - powerpc: Offline CPU in stop_this_cpu()
+    - serial: mvebu-uart: do not allow changing baudrate when uartclk is not
+      available
+    - serial: mvebu-uart: correctly calculate minimal possible baudrate
+    - arm64: dts: marvell: armada-37xx: Fix reg for standard variant of UART
+    - vfio/pci: Handle concurrent vma faults
+    - mm/huge_memory.c: don't discard hugepage if other processes are mapping it
+    - mm/z3fold: fix potential memory leak in z3fold_destroy_pool()
+    - selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random
+    - perf llvm: Return -ENOMEM when asprintf() fails
+    - scsi: target: cxgbit: Unmap DMA buffer before calling target_execute_cmd()
+    - mmc: block: Disable CMDQ on the ioctl path
+    - mmc: vub3000: fix control-request direction
+    - scsi: core: Retry I/O for Notify (Enable Spinup) Required error
+    - iommu/dma: Fix compile warning in 32-bit builds
+    - Linux 5.4.132
+
+  * Keyboard not working (LP: #1909814) // Focal update: v5.4.132 upstream
+    stable release (LP: #1938199)
+    - ACPI: resources: Add checks for ACPI IRQ override
+
+  * Focal update: v5.4.131 upstream stable release (LP: #1936245)
+    - KVM: SVM: Periodically schedule when unregistering regions on destroy
+    - s390/stack: fix possible register corruption with stack switch helper
+    - KVM: SVM: Call SEV Guest Decommission if ASID binding fails
+    - xen/events: reset active flag for lateeoi events later
+    - Linux 5.4.131
+
+  * Focal update: v5.4.130 upstream stable release (LP: #1936244)
+    - scsi: sr: Return appropriate error code when disk is ejected
+    - drm/nouveau: fix dma_address check for CPU/GPU sync
+    - gpio: AMD8111 and TQMX86 require HAS_IOPORT_MAP
+    - RDMA/mlx5: Block FDB rules when not in switchdev mode
+    - Linux 5.4.130
+
+  * Focal update: v5.4.129 upstream stable release (LP: #1936242)
+    - module: limit enabling module.sig_enforce
+    - drm/nouveau: wait for moving fence after pinning v2
+    - drm/radeon: wait for moving fence after pinning
+    - ARM: 9081/1: fix gcc-10 thumb2-kernel regression
+    - mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk
+    - kbuild: add CONFIG_LD_IS_LLD
+    - arm64: link with -z norelro for LLD or aarch64-elf
+    - MIPS: generic: Update node names to avoid unit addresses
+    - spi: spi-nxp-fspi: move the register operation after the clock enable
+    - Revert "PCI: PM: Do not read power state in pci_enable_device_flags()"
+    - dmaengine: zynqmp_dma: Fix PM reference leak in
+      zynqmp_dma_alloc_chan_resourc()
+    - mac80211: remove warning in ieee80211_get_sband()
+    - mac80211_hwsim: drop pending frames on stop
+    - cfg80211: call cfg80211_leave_ocb when switching away from OCB
+    - dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe()
+    - dmaengine: mediatek: free the proper desc in desc_free handler
+    - dmaengine: mediatek: do not issue a new desc if one is still current
+    - dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma
+    - net: ipv4: Remove unneed BUG() function
+    - mac80211: drop multicast fragments
+    - net: ethtool: clear heap allocations for ethtool function
+    - ping: Check return value of function 'ping_queue_rcv_skb'
+    - inet: annotate date races around sk->sk_txhash
+    - net: phy: dp83867: perform soft reset and retain established link
+    - net: caif: fix memory leak in ldisc_open
+    - net/packet: annotate accesses to po->bind
+    - net/packet: annotate accesses to po->ifindex
+    - r8152: Avoid memcpy() over-reading of ETH_SS_STATS
+    - sh_eth: Avoid memcpy() over-reading of ETH_SS_STATS
+    - r8169: Avoid memcpy() over-reading of ETH_SS_STATS
+    - KVM: selftests: Fix kvm_check_cap() assertion
+    - net: qed: Fix memcpy() overflow of qed_dcbx_params()
+    - recordmcount: Correct st_shndx handling
+    - PCI: Add AMD RS690 quirk to enable 64-bit DMA
+    - net: ll_temac: Add memory-barriers for TX BD access
+    - net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY
+    - pinctrl: stm32: fix the reported number of GPIO lines per bank
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_device_group
+    - KVM: do not allow mapping valid but non-reference-counted pages
+    - i2c: robotfuzz-osif: fix control-request directions
+    - kthread_worker: split code for canceling the delayed work timer
+    - kthread: prevent deadlock when kthread_mod_delayed_work() races with
+      kthread_cancel_delayed_work_sync()
+    - mm: add VM_WARN_ON_ONCE_PAGE() macro
+    - mm/rmap: remove unneeded semicolon in page_not_mapped()
+    - mm/rmap: use page_not_mapped in try_to_unmap()
+    - mm, thp: use head page in __migration_entry_wait()
+    - mm/thp: fix __split_huge_pmd_locked() on shmem migration entry
+    - mm/thp: make is_huge_zero_pmd() safe and quicker
+    - mm/thp: try_to_unmap() use TTU_SYNC for safe splitting
+    - mm/thp: fix vma_address() if virtual address below file offset
+    - mm/thp: fix page_address_in_vma() on file THP tails
+    - mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page()
+    - mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split
+    - mm: page_vma_mapped_walk(): use page for pvmw->page
+    - mm: page_vma_mapped_walk(): settle PageHuge on entry
+    - mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd
+    - mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block
+    - mm: page_vma_mapped_walk(): crossing page table boundary
+    - mm: page_vma_mapped_walk(): add a level of indentation
+    - mm: page_vma_mapped_walk(): use goto instead of while (1)
+    - mm: page_vma_mapped_walk(): get vma_address_end() earlier
+    - mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes
+    - mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk()
+    - mm, futex: fix shared futex pgoff on shmem huge page
+    - [Config] enable CONFIG_SYSTEM_REVOCATION_LIST
+    - certs: Add EFI_CERT_X509_GUID support for dbx entries
+    - certs: Move load_system_certificate_list to a common function
+    - Linux 5.4.129
+
+  * Patch To Fix Bug in the Linux Block Layer Responsible For  Merging BIOs
+    (LP: #1931497)
+    - block: return the correct bvec when checking for gaps
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 13 Aug 2021 11:58:48 +0200
+
+linux (5.4.0-81.91) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * large_dir in ext4 broken (LP: #1933074)
+    - SAUCE: ext4: fix directory index node split corruption
+
+  * Some test in kselftest/net on focal source tree were not tested at all
+    (LP: #1934282)
+    - selftests/net: add missing tests to Makefile
+
+  * curtin: install flash-kernel in arm64 UEFI unexpected (LP: #1918427)
+    - [Packaging] Allow grub-efi-arm* to satisfy recommends on ARM
+
+  * Add l2tp.sh in net from ubuntu_kernel_selftests back (LP: #1934293)
+    - Revert "UBUNTU: SAUCE: selftests/net -- disable l2tp.sh test"
+
+  * icmp_redirect.sh in net from ubuntu_kernel_selftests failed on F-OEM-5.6 /
+    F-OEM-5.10 / F-OEM-5.13 / F / G / H (LP: #1880645)
+    - selftests: icmp_redirect: support expected failures
+
+  * Focal update: v5.4.128 upstream stable release (LP: #1934179)
+    - dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM
+    - dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM
+    - dmaengine: stedma40: add missing iounmap() on error in d40_probe()
+    - afs: Fix an IS_ERR() vs NULL check
+    - mm/memory-failure: make sure wait for page writeback in memory_failure
+    - kvm: LAPIC: Restore guard to prevent illegal APIC register access
+    - batman-adv: Avoid WARN_ON timing related checks
+    - net: ipv4: fix memory leak in netlbl_cipsov4_add_std
+    - vrf: fix maximum MTU
+    - net: rds: fix memory leak in rds_recvmsg
+    - net: lantiq: disable interrupt before sheduling NAPI
+    - udp: fix race between close() and udp_abort()
+    - rtnetlink: Fix regression in bridge VLAN configuration
+    - net/sched: act_ct: handle DNAT tuple collision
+    - net/mlx5e: Remove dependency in IPsec initialization flows
+    - net/mlx5e: Fix page reclaim for dead peer hairpin
+    - net/mlx5: Consider RoCE cap before init RDMA resources
+    - net/mlx5e: allow TSO on VXLAN over VLAN topologies
+    - net/mlx5e: Block offload of outer header csum for UDP tunnels
+    - netfilter: synproxy: Fix out of bounds when parsing TCP options
+    - sch_cake: Fix out of bounds when parsing TCP options and header
+    - alx: Fix an error handling path in 'alx_probe()'
+    - net: stmmac: dwmac1000: Fix extended MAC address registers definition
+    - net: make get_net_ns return error if NET_NS is disabled
+    - qlcnic: Fix an error handling path in 'qlcnic_probe()'
+    - netxen_nic: Fix an error handling path in 'netxen_nic_probe()'
+    - net: qrtr: fix OOB Read in qrtr_endpoint_post
+    - ptp: improve max_adj check against unreasonable values
+    - net: cdc_ncm: switch to eth%d interface naming
+    - lantiq: net: fix duplicated skb in rx descriptor ring
+    - net: usb: fix possible use-after-free in smsc75xx_bind
+    - net: fec_ptp: fix issue caused by refactor the fec_devtype
+    - net: ipv4: fix memory leak in ip_mc_add1_src
+    - net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock
+    - be2net: Fix an error handling path in 'be_probe()'
+    - net: hamradio: fix memory leak in mkiss_close
+    - net: cdc_eem: fix tx fixup skb leak
+    - cxgb4: fix wrong shift.
+    - bnxt_en: Rediscover PHY capabilities after firmware reset
+    - bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path
+    - icmp: don't send out ICMP messages with a source address of 0.0.0.0
+    - net: ethernet: fix potential use-after-free in ec_bhf_remove
+    - regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting
+    - ASoC: rt5659: Fix the lost powers for the HDA header
+    - spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd()
+    - pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled
+    - radeon: use memcpy_to/fromio for UVD fw upload
+    - hwmon: (scpi-hwmon) shows the negative temperature properly
+    - can: bcm: fix infoleak in struct bcm_msg_head
+    - can: bcm/raw/isotp: use per module netdevice notifier
+    - can: j1939: fix Use-after-Free, hold skb ref while in use
+    - can: mcba_usb: fix memory leak in mcba_usb
+    - usb: core: hub: Disable autosuspend for Cypress CY7C65632
+    - tracing: Do not stop recording cmdlines when tracing is off
+    - tracing: Do not stop recording comms if the trace file is being read
+    - tracing: Do no increment trace_clock_global() by one
+    - PCI: Mark TI C667X to avoid bus reset
+    - PCI: Mark some NVIDIA GPUs to avoid bus reset
+    - PCI: aardvark: Don't rely on jiffies while holding spinlock
+    - PCI: aardvark: Fix kernel panic during PIO transfer
+    - PCI: Add ACS quirk for Broadcom BCM57414 NIC
+    - PCI: Work around Huawei Intelligent NIC VF FLR erratum
+    - KVM: x86: Immediately reset the MMU context when the SMM flag is cleared
+    - ARCv2: save ABI registers across signal handling
+    - x86/process: Check PF_KTHREAD and not current->mm for kernel threads
+    - x86/pkru: Write hardware init value to PKRU when xstate is init
+    - x86/fpu: Reset state for all signal restore failures
+    - dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc
+    - cfg80211: make certificate generation more robust
+    - cfg80211: avoid double free of PMSR request
+    - net: ll_temac: Make sure to free skb when it is completely used
+    - net: ll_temac: Fix TX BD buffer overwrite
+    - net: bridge: fix vlan tunnel dst null pointer dereference
+    - net: bridge: fix vlan tunnel dst refcnt when egressing
+    - mm/slub: clarify verification reporting
+    - mm/slub: fix redzoning for small allocations
+    - mm/slub.c: include swab.h
+    - net: stmmac: disable clocks in stmmac_remove_config_dt()
+    - net: fec_ptp: add clock rate zero check
+    - tools headers UAPI: Sync linux/in.h copy with the kernel sources
+    - KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read
+    - ARM: OMAP: replace setup_irq() by request_irq()
+    - clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support
+    - clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue
+    - clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940
+    - usb: dwc3: debugfs: Add and remove endpoint dirs dynamically
+    - usb: dwc3: core: fix kernel panic when do reboot
+    - Linux 5.4.128
+
+  * linux-azure CIFS DFS oops (LP: #1935833)
+    - cifs: get rid of unused parameter in reconn_setup_dfs_targets()
+    - cifs: handle empty list of targets in cifs_reconnect()
+
+  * pmtu.sh from net in ubuntu_kernel_selftests failed with no error message
+    (LP: #1887661)
+    - selftests: pmtu.sh: improve the test result processing
+
+  * cifs: On cifs_reconnect, resolve the hostname again (LP: #1929831)
+    - cifs: rename reconn_inval_dfs_target()
+    - cifs: Simplify reconnect code when dfs upcall is enabled
+    - cifs: Avoid error pointer dereference
+    - cifs: On cifs_reconnect, resolve the hostname again.
+
+  * Pixel format change broken for Elgato Cam Link 4K (LP: #1932367)
+    - (upstream) media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
+
+  * Focal update: v5.4.127 upstream stable release (LP: #1933851)
+    - net: ieee802154: fix null deref in parse dev addr
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65
+    - HID: hid-input: add mapping for emoji picker key
+    - HID: hid-sensor-hub: Return error for hid_set_field() failure
+    - HID: quirks: Add quirk for Lenovo optical mouse
+    - HID: multitouch: set Stylus suffix for Stylus-application devices, too
+    - HID: Add BUS_VIRTUAL to hid_connect logging
+    - HID: usbhid: fix info leak in hid_submit_ctrl
+    - drm/tegra: sor: Do not leak runtime PM reference
+    - ARM: OMAP2+: Fix build warning when mmc_omap is not built
+    - gfs2: Prevent direct-I/O write fallback errors from getting lost
+    - HID: gt683r: add missing MODULE_DEVICE_TABLE
+    - riscv: Use -mno-relax when using lld linker
+    - gfs2: Fix use-after-free in gfs2_glock_shrink_scan
+    - scsi: target: core: Fix warning on realtime kernels
+    - ethernet: myri10ge: Fix missing error code in myri10ge_probe()
+    - scsi: qedf: Do not put host in qedf_vport_create() unconditionally
+    - scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
+    - nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues()
+    - nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue()
+      fails
+    - nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue()
+    - net: ipconfig: Don't override command-line hostnames or domains
+    - drm/amd/display: Allow bandwidth validation for 0 streams.
+    - rtnetlink: Fix missing error code in rtnl_bridge_notify()
+    - net/x25: Return the correct errno code
+    - net: Return the correct errno code
+    - fib: Return the correct errno code
+    - Linux 5.4.127
+
+  * Focal update: v5.4.126 upstream stable release (LP: #1933369)
+    - proc: Check /proc/$pid/attr/ writes against file opener
+    - proc: Track /proc/$pid/attr/ opener mm_struct
+    - ASoC: max98088: fix ni clock divider calculation
+    - spi: Fix spi device unregister flow
+    - net/nfc/rawsock.c: fix a permission check bug
+    - usb: cdns3: Fix runtime PM imbalance on error
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830 tablet
+    - vfio-ccw: Serialize FSM IDLE state with I/O completion
+    - ASoC: sti-sas: add missing MODULE_DEVICE_TABLE
+    - spi: sprd: Add missing MODULE_DEVICE_TABLE
+    - isdn: mISDN: netjet: Fix crash in nj_probe:
+    - bonding: init notify_work earlier to avoid uninitialized use
+    - netlink: disable IRQs for netlink_lock_table()
+    - net: mdiobus: get rid of a BUG_ON()
+    - cgroup: disable controllers at parse time
+    - wq: handle VM suspension in stall detection
+    - net/qla3xxx: fix schedule while atomic in ql_sem_spinlock
+    - RDS tcp loopback connection can hang
+    - scsi: bnx2fc: Return failure if io_req is already in ABTS processing
+    - scsi: vmw_pvscsi: Set correct residual data length
+    - scsi: hisi_sas: Drop free_irq() of devm_request_irq() allocated irq
+    - scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal
+    - net: macb: ensure the device is available before accessing GEMGXL control
+      registers
+    - net: appletalk: cops: Fix data race in cops_probe1
+    - net: dsa: microchip: enable phy errata workaround on 9567
+    - nvme-fabrics: decode host pathing error for connect
+    - MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER
+    - dm verity: fix require_signatures module_param permissions
+    - bnx2x: Fix missing error code in bnx2x_iov_init_one()
+    - nvme-tcp: remove incorrect Kconfig dep in BLK_DEV_NVME
+    - powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers
+    - powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c controllers
+    - spi: Don't have controller clean up spi device before driver unbind
+    - spi: Cleanup on failure of initial setup
+    - i2c: mpc: Make use of i2c_recover_bus()
+    - i2c: mpc: implement erratum A-004447 workaround
+    - x86/boot: Add .text.* to setup.ld
+    - spi: bcm2835: Fix out-of-bounds access with more than 4 slaves
+    - drm: Fix use-after-free read in drm_getunique()
+    - drm: Lock pointer access in drm_master_release()
+    - kvm: avoid speculation-based attacks from out-of-range memslot accesses
+    - staging: rtl8723bs: Fix uninitialized variables
+    - btrfs: return value from btrfs_mark_extent_written() in case of error
+    - btrfs: promote debugging asserts to full-fledged checks in validate_super
+    - cgroup1: don't allow '\n' in renaming
+    - USB: f_ncm: ncm_bitrate (speed) is unsigned
+    - usb: f_ncm: only first packet of aggregate needs to start timer
+    - usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms
+    - usb: dwc3: ep0: fix NULL pointer exception
+    - usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling
+    - usb: typec: wcove: Use LE to CPU conversion when accessing msg->header
+    - usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path
+    - usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind
+    - USB: serial: ftdi_sio: add NovaTech OrionMX product ID
+    - USB: serial: omninet: add device id for Zyxel Omni 56K Plus
+    - USB: serial: quatech2: fix control-request directions
+    - USB: serial: cp210x: fix alternate function for CP2102N QFN20
+    - usb: gadget: eem: fix wrong eem header operation
+    - usb: fix various gadgets null ptr deref on 10gbps cabling.
+    - usb: fix various gadget panics on 10gbps cabling
+    - regulator: core: resolve supply for boot-on/always-on regulators
+    - regulator: max77620: Use device_set_of_node_from_dev()
+    - usb: typec: mux: Fix copy-paste mistake in typec_mux_match
+    - RDMA/ipoib: Fix warning caused by destroying non-initial netns
+    - RDMA/mlx4: Do not map the core_clock page to user space unless enabled
+    - vmlinux.lds.h: Avoid orphan section with !SMP
+    - perf: Fix data race between pin_count increment/decrement
+    - sched/fair: Make sure to update tg contrib for blocked load
+    - KVM: x86: Ensure liveliness of nested VM-Enter fail tracepoint message
+    - IB/mlx5: Fix initializing CQ fragments buffer
+    - NFS: Fix a potential NULL dereference in nfs_get_client()
+    - NFSv4: Fix deadlock between nfs4_evict_inode() and nfs4_opendata_get_inode()
+    - perf session: Correct buffer copying when peeking events
+    - kvm: fix previous commit for 32-bit builds
+    - NFS: Fix use-after-free in nfs4_init_client()
+    - NFSv4: Fix second deadlock in nfs4_evict_inode()
+    - NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error.
+    - scsi: core: Fix error handling of scsi_host_alloc()
+    - scsi: core: Fix failure handling of scsi_add_host_with_dma()
+    - scsi: core: Put .shost_dev in failure path if host state changes to RUNNING
+    - scsi: core: Only put parent device if host state differs from SHOST_CREATED
+    - ftrace: Do not blindly read the ip address in ftrace_bug()
+    - tracing: Correct the length check which causes memory corruption
+    - proc: only require mm_struct for writing
+    - Linux 5.4.126
+
+  * Focal update: v5.4.125 upstream stable release (LP: #1932957)
+    - btrfs: tree-checker: do not error out if extent ref hash doesn't match
+    - net: usb: cdc_ncm: don't spew notifications
+    - ALSA: usb: update old-style static const declaration
+    - nl80211: validate key indexes for cfg80211_registered_device
+    - hwmon: (dell-smm-hwmon) Fix index values
+    - netfilter: conntrack: unregister ipv4 sockopts on error unwind
+    - efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared
+    - efi: cper: fix snprintf() use in cper_dimm_err_location()
+    - vfio/pci: Fix error return code in vfio_ecap_init()
+    - vfio/pci: zap_vma_ptes() needs MMU
+    - samples: vfio-mdev: fix error handing in mdpy_fb_probe()
+    - vfio/platform: fix module_put call in error flow
+    - ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service
+    - HID: pidff: fix error return code in hid_pidff_init()
+    - HID: i2c-hid: fix format string mismatch
+    - net/sched: act_ct: Fix ct template allocation for zone 0
+    - ACPICA: Clean up context mutex during object deletion
+    - netfilter: nft_ct: skip expectations for confirmed conntrack
+    - netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches
+    - ieee802154: fix error return code in ieee802154_add_iface()
+    - ieee802154: fix error return code in ieee802154_llsec_getparams()
+    - ixgbevf: add correct exception tracing for XDP
+    - ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions
+    - ice: write register with correct offset
+    - ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared
+    - ice: Allow all LLDP packets from PF to Tx
+    - i2c: qcom-geni: Add shutdown callback for i2c
+    - i40e: optimize for XDP_REDIRECT in xsk path
+    - i40e: add correct exception tracing for XDP
+    - arm64: dts: ls1028a: fix memory node
+    - arm64: dts: zii-ultra: fix 12V_MAIN voltage
+    - ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property
+    - ARM: dts: imx7d-pico: Fix the 'tuning-step' property
+    - ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells
+    - bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act
+    - tipc: add extack messages for bearer/media failure
+    - tipc: fix unique bearer names sanity check
+    - Bluetooth: fix the erroneous flush_work() order
+    - Bluetooth: use correct lock to prevent UAF of hdev object
+    - net: caif: added cfserl_release function
+    - net: caif: add proper error handling
+    - net: caif: fix memory leak in caif_device_notify
+    - net: caif: fix memory leak in cfusbl_device_notify
+    - HID: i2c-hid: Skip ELAN power-on command after reset
+    - HID: magicmouse: fix NULL-deref on disconnect
+    - HID: multitouch: require Finger field to mark Win8 reports as MT
+    - ALSA: timer: Fix master timer notification
+    - ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx
+    - ARM: dts: imx6dl-yapp4: Fix RGMII connection to QCA8334 switch
+    - ARM: dts: imx6q-dhcom: Add PU,VDD1P1,VDD2P5 regulators
+    - ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
+    - usb: dwc2: Fix build in periphal-only mode
+    - pid: take a reference when initializing `cad_pid`
+    - ocfs2: fix data corruption by fallocate
+    - nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect
+    - drm/amdgpu: Don't query CE and UE errors
+    - drm/amdgpu: make sure we unpin the UVD BO
+    - x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing
+    - btrfs: mark ordered extent and inode with error if we fail to finish
+    - btrfs: fix error handling in btrfs_del_csums
+    - btrfs: return errors from btrfs_del_csums in cleanup_ref_head
+    - btrfs: fixup error handling in fixup_inode_link_counts
+    - mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY
+    - bnxt_en: Remove the setting of dev_port.
+    - mm: add thp_order
+    - XArray: add xa_get_order
+    - XArray: add xas_split
+    - mm/filemap: fix storing to a THP shadow entry
+    - btrfs: fix unmountable seed device after fstrim
+    - KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode
+    - KVM: arm64: Fix debug register indexing
+    - lib/lz4: explicitly support in-place decompression
+    - xen-pciback: redo VF placement in the virtual topology
+    - i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops
+    - neighbour: allow NUD_NOARP entries to be forced GCed
+    - Linux 5.4.125
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Thu, 15 Jul 2021 20:01:02 +0200
+
+linux (5.4.0-80.90) focal; urgency=medium
+
+  * CVE-2021-33909
+    - SAUCE: seq_file: Disallow extremely large seq buffer allocations
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 09 Jul 2021 12:49:11 -0300
+
+linux (5.4.0-79.88) focal; urgency=medium
+
+  * focal/linux: 5.4.0-79.88 -proposed tracker (LP: #1934343)
+
+  * lxd exec fails (LP: #1934187)
+    - SAUCE: Revert "proc: Check /proc/$pid/attr/ writes against file opener"
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 02 Jul 2021 10:27:49 +0200
+
+linux (5.4.0-78.87) focal; urgency=medium
+
+  * focal/linux: 5.4.0-78.87 -proposed tracker (LP: #1932478)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+    - update dkms package versions
+
+  * Disable hv-kvp-daemon.service on certain instance types (LP: #1932081)
+    - [Packaging]: Add kernel command line condition to hv-kvp-daemon service
+
+  * QLogic Direct-Connect host can't discover SCSI-FC or NVMe/FC devices
+    (LP: #1860724)
+    - scsi: qla2xxx: Serialize fc_port alloc in N2N
+    - scsi: qla2xxx: Set Nport ID for N2N
+    - scsi: qla2xxx: Fix point-to-point (N2N) device discovery issue
+    - scsi: qla2xxx: Fix N2N and NVMe connect retry failure
+
+  * [SRU] Add support for E810 NIC to Ice Driver in Focal (LP: #1912511)
+    - ice: add additional E810 device id
+
+  * Focal update: v5.4.124 upstream stable release (LP: #1931166)
+    - ALSA: hda/realtek: Headphone volume is controlled by Front mixer
+    - ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci
+    - ALSA: usb-audio: scarlett2: Improve driver startup messages
+    - cifs: set server->cipher_type to AES-128-CCM for SMB3.0
+    - NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()
+    - iommu/vt-d: Fix sysfs leak in alloc_iommu()
+    - perf intel-pt: Fix sample instruction bytes
+    - perf intel-pt: Fix transaction abort handling
+    - perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top
+      Calls by elapsed Time report
+    - perf scripts python: exported-sql-viewer.py: Fix Array TypeError
+    - perf scripts python: exported-sql-viewer.py: Fix warning display
+    - proc: Check /proc/$pid/attr/ writes against file opener
+    - net: hso: fix control-request directions
+    - ath10k: Validate first subframe of A-MSDU before processing the list
+    - dm snapshot: properly fix a crash when an origin has no snapshots
+    - drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate
+    - drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate
+    - drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate
+    - selftests/gpio: Use TEST_GEN_PROGS_EXTENDED
+    - selftests/gpio: Move include of lib.mk up
+    - selftests/gpio: Fix build when source tree is read only
+    - kgdb: fix gcc-11 warnings harder
+    - Documentation: seccomp: Fix user notification documentation
+    - serial: core: fix suspicious security_locked_down() call
+    - misc/uss720: fix memory leak in uss720_probe
+    - thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue
+    - mei: request autosuspend after sending rx flow control
+    - staging: iio: cdc: ad7746: avoid overwrite of num_channels
+    - iio: gyro: fxas21002c: balance runtime power in error path
+    - iio: adc: ad7768-1: Fix too small buffer passed to
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ad7124: Fix missbalanced regulator enable / disable on error.
+    - iio: adc: ad7124: Fix potential overflow due to non sequential channel
+      numbers
+    - iio: adc: ad7793: Add missing error code in ad7793_setup()
+    - serial: 8250_pci: Add support for new HPE serial device
+    - serial: 8250_pci: handle FL_NOIRQ board flag
+    - USB: trancevibrator: fix control-request direction
+    - USB: usbfs: Don't WARN about excessively large memory allocations
+    - serial: tegra: Fix a mask operation that is always true
+    - serial: sh-sci: Fix off-by-one error in FIFO threshold register setting
+    - serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
+    - USB: serial: ti_usb_3410_5052: add startech.com device id
+    - USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011
+    - USB: serial: ftdi_sio: add IDs for IDS GmbH Products
+    - USB: serial: pl2303: add device id for ADLINK ND-6530 GC
+    - thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID
+    - usb: dwc3: gadget: Properly track pending and queued SG
+    - usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen()
+    - net: usb: fix memory leak in smsc75xx_bind
+    - spi: spi-geni-qcom: Fix use-after-free on unbind
+    - Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails
+    - fs/nfs: Use fatal_signal_pending instead of signal_pending
+    - NFS: fix an incorrect limit in filelayout_decode_layout()
+    - NFS: Fix an Oopsable condition in __nfs_pageio_add_request()
+    - NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
+    - NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config
+    - drm/meson: fix shutdown crash when component not probed
+    - net/mlx5e: Fix multipath lag activation
+    - net/mlx5e: Fix nullptr in add_vlan_push_action()
+    - net/mlx4: Fix EEPROM dump support
+    - Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"
+    - tipc: wait and exit until all work queues are done
+    - tipc: skb_linearize the head skb when reassembling msgs
+    - spi: spi-fsl-dspi: Fix a resource leak in an error handling path
+    - net: dsa: mt7530: fix VLAN traffic leaks
+    - net: dsa: fix a crash if ->get_sset_count() fails
+    - net: dsa: sja1105: error out on unsupported PHY mode
+    - i2c: s3c2410: fix possible NULL pointer deref on read message after write
+    - i2c: i801: Don't generate an interrupt on bus reset
+    - i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E
+    - perf jevents: Fix getting maximum number of fds
+    - platform/x86: hp_accel: Avoid invoking _INI to speed up resume
+    - gpio: cadence: Add missing MODULE_DEVICE_TABLE
+    - Revert "media: usb: gspca: add a missed check for goto_low_power"
+    - Revert "ALSA: sb: fix a missing check of snd_ctl_add"
+    - Revert "serial: max310x: pass return value of spi_register_driver"
+    - serial: max310x: unregister uart driver in case of failure and abort
+    - Revert "net: fujitsu: fix a potential NULL pointer dereference"
+    - net: fujitsu: fix potential null-ptr-deref
+    - Revert "net/smc: fix a NULL pointer dereference"
+    - net: caif: remove BUG_ON(dev == NULL) in caif_xmit
+    - Revert "char: hpet: fix a missing check of ioremap"
+    - char: hpet: add checks after calling ioremap
+    - Revert "ALSA: gus: add a check of the status of snd_ctl_add"
+    - Revert "ALSA: usx2y: Fix potential NULL pointer dereference"
+    - Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference"
+    - isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
+    - Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()"
+    - ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()
+    - Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc"
+    - isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info
+    - Revert "dmaengine: qcom_hidma: Check for driver register failure"
+    - dmaengine: qcom_hidma: comment platform_driver_register call
+    - Revert "libertas: add checks for the return value of sysfs_create_group"
+    - libertas: register sysfs groups properly
+    - Revert "ASoC: cs43130: fix a NULL pointer dereference"
+    - ASoC: cs43130: handle errors in cs43130_probe() properly
+    - Revert "media: dvb: Add check on sp8870_readreg"
+    - media: dvb: Add check on sp8870_readreg return
+    - Revert "media: gspca: mt9m111: Check write_bridge for timeout"
+    - media: gspca: mt9m111: Check write_bridge for timeout
+    - Revert "media: gspca: Check the return value of write_bridge for timeout"
+    - media: gspca: properly check for errors in po1030_probe()
+    - Revert "net: liquidio: fix a NULL pointer dereference"
+    - net: liquidio: Add missing null pointer checks
+    - Revert "brcmfmac: add a check for the status of usb_register"
+    - brcmfmac: properly check for bus register errors
+    - btrfs: return whole extents in fiemap
+    - scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic
+    - openrisc: Define memory barrier mb
+    - btrfs: do not BUG_ON in link_to_fixup_dir
+    - platform/x86: hp-wireless: add AMD's hardware id to the supported list
+    - platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI
+    - platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700
+      tablet
+    - SMB3: incorrect file id in requests compounded with open
+    - drm/amd/display: Disconnect non-DP with no EDID
+    - drm/amd/amdgpu: fix refcount leak
+    - drm/amdgpu: Fix a use-after-free
+    - drm/amd/amdgpu: fix a potential deadlock in gpu reset
+    - net: netcp: Fix an error message
+    - net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count
+    - ASoC: cs42l42: Regmap must use_single_read/write
+    - vfio-ccw: Check initialized flag in cp_init()
+    - net: really orphan skbs tied to closing sk
+    - net: fec: fix the potential memory leak in fec_enet_init()
+    - net: mdio: thunder: Fix a double free issue in the .remove function
+    - net: mdio: octeon: Fix some double free issues
+    - openvswitch: meter: fix race when getting now_ms.
+    - tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT
+    - net: sched: fix packet stuck problem for lockless qdisc
+    - net: sched: fix tx action rescheduling issue during deactivation
+    - net: sched: fix tx action reschedule issue with stopped queue
+    - net: hso: check for allocation failure in hso_create_bulk_serial_device()
+    - net: bnx2: Fix error return code in bnx2_init_board()
+    - bnxt_en: Include new P5 HV definition in VF check.
+    - mld: fix panic in mld_newpack()
+    - gve: Check TX QPL was actually assigned
+    - gve: Update mgmt_msix_idx if num_ntfy changes
+    - gve: Add NULL pointer checks when freeing irqs.
+    - gve: Upgrade memory barrier in poll routine
+    - gve: Correct SKB queue index validation.
+    - cxgb4: avoid accessing registers when clearing filters
+    - staging: emxx_udc: fix loop in _nbu2ss_nuke()
+    - ASoC: cs35l33: fix an error code in probe()
+    - bpf: Set mac_len in bpf_skb_change_head
+    - ixgbe: fix large MTU request from VF
+    - scsi: libsas: Use _safe() loop in sas_resume_port()
+    - net: lantiq: fix memory corruption in RX ring
+    - ipv6: record frag_max_size in atomic fragments in input path
+    - ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be
+      static
+    - net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88
+    - sch_dsmark: fix a NULL deref in qdisc_reset()
+    - MIPS: alchemy: xxs1500: add gpio-au1000.h header file
+    - MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c
+    - drm/i915/display: fix compiler warning about array overrun
+    - i915: fix build warning in intel_dp_get_link_status()
+    - drivers/net/ethernet: clean up unused assignments
+    - net: hns3: check the return of skb_checksum_help()
+    - Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
+    - net: hso: bail out on interrupt URB allocation failure
+    - neighbour: Prevent Race condition in neighbour subsytem
+    - usb: core: reduce power-on-good delay time of root hub
+    - Linux 5.4.124
+
+  * Focal update: v5.4.123 upstream stable release (LP: #1931160)
+    - usb: dwc3: gadget: Enable suspend events
+    - perf unwind: Fix separate debug info files when using elfutils' libdw's
+      unwinder
+    - perf unwind: Set userdata for all __report_module() paths
+    - NFC: nci: fix memory leak in nci_allocate_device
+    - Linux 5.4.123
+
+  * Focal update: v5.4.122 upstream stable release (LP: #1931159)
+    - firmware: arm_scpi: Prevent the ternary sign expansion bug
+    - openrisc: Fix a memory leak
+    - RDMA/siw: Properly check send and receive CQ pointers
+    - RDMA/siw: Release xarray entry
+    - RDMA/rxe: Clear all QP fields if creation failed
+    - scsi: ufs: core: Increase the usable queue depth
+    - scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
+    - RDMA/mlx5: Recover from fatal event in dual port mode
+    - RDMA/core: Don't access cm_id after its destruction
+    - platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue
+    - platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
+    - RDMA/uverbs: Fix a NULL vs IS_ERR() bug
+    - ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
+    - nvmet: seset ns->file when open fails
+    - locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
+    - btrfs: avoid RCU stalls while running delayed iputs
+    - cifs: fix memory leak in smb2_copychunk_range
+    - ALSA: dice: fix stream format for TC Electronic Konnekt Live at high
+      sampling transfer frequency
+    - ALSA: intel8x0: Don't update period unless prepared
+    - ALSA: line6: Fix racy initialization of LINE6 MIDI
+    - ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26
+    - ALSA: firewire-lib: fix calculation for size of IR context payload
+    - ALSA: usb-audio: Validate MS endpoint descriptors
+    - ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
+    - ALSA: hda: fixup headset for ASUS GU502 laptop
+    - Revert "ALSA: sb8: add a check for request_region"
+    - ALSA: firewire-lib: fix check for the size of isochronous packet payload
+    - ALSA: hda/realtek: reset eapd coeff to default value for alc287
+    - ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293
+    - ALSA: hda/realtek: Fix silent headphone output on ASUS UX430UA
+    - ALSA: hda/realtek: Add fixup for HP OMEN laptop
+    - ALSA: hda/realtek: Add fixup for HP Spectre x360 15-df0xxx
+    - uio_hv_generic: Fix a memory leak in error handling paths
+    - Revert "rapidio: fix a NULL pointer dereference when create_workqueue()
+      fails"
+    - rapidio: handle create_workqueue() failure
+    - Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer
+      dereference"
+    - drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang
+    - drm/amdgpu: update gc golden setting for Navi12
+    - drm/amdgpu: update sdma golden setting for Navi12
+    - mmc: sdhci-pci-gli: increase 1.8V regulator wait
+    - xen-pciback: reconfigure also from backend watch handler
+    - dm snapshot: fix crash with transient storage and zero chunk size
+    - Revert "video: hgafb: fix potential NULL pointer dereference"
+    - Revert "net: stmicro: fix a missing check of clk_prepare"
+    - Revert "leds: lp5523: fix a missing check of return value of lp55xx_read"
+    - Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
+    - Revert "video: imsttfb: fix potential NULL pointer dereferences"
+    - Revert "ecryptfs: replace BUG_ON with error handling code"
+    - Revert "scsi: ufs: fix a missing check of devm_reset_control_get"
+    - Revert "gdrom: fix a memory leak bug"
+    - cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
+    - cdrom: gdrom: initialize global variable at init time
+    - Revert "media: rcar_drif: fix a memory disclosure"
+    - Revert "rtlwifi: fix a potential NULL pointer dereference"
+    - Revert "qlcnic: Avoid potential NULL pointer dereference"
+    - Revert "niu: fix missing checks of niu_pci_eeprom_read"
+    - ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
+    - net: stmicro: handle clk_prepare() failure during init
+    - scsi: ufs: handle cleanup correctly on devm_reset_control_get error
+    - net: rtlwifi: properly check for alloc_workqueue() failure
+    - ics932s401: fix broken handling of errors when word reading fails
+    - leds: lp5523: check return value of lp5xx_read and jump to cleanup code
+    - qlcnic: Add null check after calling netdev_alloc_skb
+    - video: hgafb: fix potential NULL pointer dereference
+    - vgacon: Record video mode changes with VT_RESIZEX
+    - vt: Fix character height handling with VT_RESIZEX
+    - tty: vt: always invoke vc->vc_sw->con_resize callback
+    - nvme-multipath: fix double initialization of ANA state
+    - ext4: fix error handling in ext4_end_enable_verity()
+    - Bluetooth: L2CAP: Fix handling LE modes by L2CAP_OPTIONS
+    - nvmet: use new ana_log_size instead the old one
+    - video: hgafb: correctly handle card detect failure during probe
+    - Bluetooth: SMP: Fail if remote and local public keys are identical
+    - Linux 5.4.122
+
+  * Focal update: v5.4.121 upstream stable release (LP: #1931158)
+    - x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
+    - kgdb: fix gcc-11 warning on indentation
+    - usb: sl811-hcd: improve misleading indentation
+    - cxgb4: Fix the -Wmisleading-indentation warning
+    - isdn: capi: fix mismatched prototypes
+    - pinctrl: ingenic: Improve unreachable code generation
+    - xsk: Simplify detection of empty and full rings
+    - virtio_net: Do not pull payload in skb->head
+    - PCI: thunder: Fix compile testing
+    - dmaengine: dw-edma: Fix crash on loading/unloading driver
+    - ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend()
+    - ACPI / hotplug / PCI: Fix reference count leak in enable_slot()
+    - Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated
+      devices
+    - Input: silead - add workaround for x86 BIOS-es which bring the chip up in a
+      stuck state
+    - um: Mark all kernel symbols as local
+    - um: Disable CONFIG_GCOV with MODULES
+    - ARM: 9075/1: kernel: Fix interrupted SMC calls
+    - scripts/recordmcount.pl: Fix RISC-V regex for clang
+    - riscv: Workaround mcount name prior to clang-13
+    - scsi: lpfc: Fix illegal memory access on Abort IOCBs
+    - ceph: fix fscache invalidation
+    - scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not
+      found
+    - bridge: Fix possible races between assigning rx_handler_data and setting
+      IFF_BRIDGE_PORT bit
+    - drm/amd/display: Fix two cursor duplication when using overlay
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055
+    - ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
+    - block: reexpand iov_iter after read/write
+    - lib: stackdepot: turn depot_lock spinlock to raw_spinlock
+    - net: stmmac: Do not enable RX FIFO overflow interrupts
+    - ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
+    - sit: proper dev_{hold|put} in ndo_[un]init methods
+    - ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
+    - ipv6: remove extra dev_hold() for fallback tunnels
+    - KVM: arm64: Initialize VCPU mdcr_el2 before loading it
+    - tweewide: Fix most Shebang lines
+    - scripts: switch explicitly to Python 3
+    - Linux 5.4.121
+
+  * Focal update: v5.4.120 upstream stable release (LP: #1930474)
+    - tpm: fix error return code in tpm2_get_cc_attrs_tbl()
+    - tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt()
+    - tpm, tpm_tis: Reserve locality in tpm_tis_resume()
+    - KVM: x86/mmu: Remove the defunct update_pte() paging hook
+    - PM: runtime: Fix unpaired parent child_count for force_resume
+    - fs: dlm: fix debugfs dump
+    - tipc: convert dest node's address to network order
+    - ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF
+    - net: stmmac: Set FIFO sizes for ipq806x
+    - ASoC: rsnd: core: Check convert rate in rsnd_hw_params
+    - i2c: bail out early when RDWR parameters are wrong
+    - ALSA: hdsp: don't disable if not enabled
+    - ALSA: hdspm: don't disable if not enabled
+    - ALSA: rme9652: don't disable if not enabled
+    - ALSA: bebob: enable to deliver MIDI messages for multiple ports
+    - Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
+    - Bluetooth: initialize skb_queue_head at l2cap_chan_create()
+    - net: bridge: when suppression is enabled exclude RARP packets
+    - Bluetooth: check for zapped sk before connecting
+    - ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
+    - i2c: Add I2C_AQ_NO_REP_START adapter quirk
+    - mac80211: clear the beacon's CRC after channel switch
+    - pinctrl: samsung: use 'int' for register masks in Exynos
+    - mt76: mt76x0: disable GTK offloading
+    - cuse: prevent clone
+    - ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init()
+    - Revert "iommu/amd: Fix performance counter initialization"
+    - iommu/amd: Remove performance counter pre-initialization test
+    - drm/amd/display: Force vsync flip when reconfiguring MPCC
+    - selftests: Set CC to clang in lib.mk if LLVM is set
+    - kconfig: nconf: stop endless search loops
+    - ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume
+    - sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
+    - flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target()
+    - powerpc/smp: Set numa node before updating mask
+    - ASoC: rt286: Generalize support for ALC3263 codec
+    - ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user()
+    - net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule
+    - samples/bpf: Fix broken tracex1 due to kprobe argument change
+    - powerpc/pseries: Stop calling printk in rtas_stop_self()
+    - drm/amd/display: fixed divide by zero kernel crash during dsc enablement
+    - wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
+    - wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
+    - qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth
+    - powerpc/iommu: Annotate nested lock for lockdep
+    - iavf: remove duplicate free resources calls
+    - net: ethernet: mtk_eth_soc: fix RX VLAN offload
+    - bnxt_en: Add PCI IDs for Hyper-V VF devices.
+    - ia64: module: fix symbolizer crash on fdescr
+    - ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
+    - thermal: thermal_of: Fix error return code of
+      thermal_of_populate_bind_params()
+    - f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
+    - PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc()
+    - PCI: Release OF node in pci_scan_device()'s error path
+    - ARM: 9064/1: hw_breakpoint: Do not directly check the event's
+      overflow_handler hook
+    - rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
+    - NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
+    - NFS: Deal correctly with attribute generation counter overflow
+    - PCI: endpoint: Fix missing destroy_workqueue()
+    - pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
+    - NFSv4.2 fix handling of sr_eof in SEEK's reply
+    - rtc: fsl-ftm-alarm: add MODULE_TABLE()
+    - ceph: fix inode leak on getattr error in __fh_to_dentry
+    - rtc: ds1307: Fix wday settings for rx8130
+    - net: hns3: fix incorrect configuration for igu_egu_hw_err
+    - net: hns3: initialize the message content in hclge_get_link_mode()
+    - net: hns3: add check for HNS3_NIC_STATE_INITED in
+      hns3_reset_notify_up_enet()
+    - net: hns3: fix for vxlan gpe tx checksum bug
+    - net: hns3: use netif_tx_disable to stop the transmit queue
+    - net: hns3: disable phy loopback setting in hclge_mac_start_phy
+    - sctp: do asoc update earlier in sctp_sf_do_dupcook_a
+    - RISC-V: Fix error code returned by riscv_hartid_to_cpuid()
+    - sunrpc: Fix misplaced barrier in call_decode
+    - ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
+    - sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
+    - netfilter: xt_SECMARK: add new revision to fix structure layout
+    - drm/radeon: Fix off-by-one power_state index heap overwrite
+    - drm/radeon: Avoid power table parsing memory leaks
+    - khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
+    - mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
+    - mm/migrate.c: fix potential indeterminate pte entry in
+      migrate_vma_insert_page()
+    - ksm: fix potential missing rmap_item for stable_node
+    - net: fix nla_strcmp to handle more then one trailing null character
+    - smc: disallow TCP_ULP in smc_setsockopt()
+    - netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
+    - can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
+    - sched: Fix out-of-bound access in uclamp
+    - sched/fair: Fix unfairness caused by missing load decay
+    - kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
+    - netfilter: nftables: avoid overflows in nft_hash_buckets()
+    - i40e: Fix use-after-free in i40e_client_subtask()
+    - i40e: fix the restart auto-negotiation after FEC modified
+    - i40e: Fix PHY type identifiers for 2.5G and 5G adapters
+    - ARC: entry: fix off-by-one error in syscall number validation
+    - ARC: mm: PAE: use 40-bit physical page mask
+    - powerpc/64s: Fix crashes when toggling stf barrier
+    - powerpc/64s: Fix crashes when toggling entry flush barrier
+    - hfsplus: prevent corruption in shrinking truncate
+    - squashfs: fix divide error in calculate_skip()
+    - userfaultfd: release page in error path to avoid BUG_ON
+    - mm/hugetlb: fix F_SEAL_FUTURE_WRITE
+    - drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors
+      are connected
+    - drm/i915: Avoid div-by-zero on gen2
+    - iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
+    - usb: fotg210-hcd: Fix an error message
+    - hwmon: (occ) Fix poll rate limiting
+    - ACPI: scan: Fix a memory leak in an error handling path
+    - kyber: fix out of bounds access when preempted
+    - nbd: Fix NULL pointer in flush_workqueue
+    - blk-mq: Swap two calls in blk_mq_exit_queue()
+    - iomap: fix sub-page uptodate handling
+    - usb: dwc3: omap: improve extcon initialization
+    - usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield
+    - usb: xhci: Increase timeout for HC halt
+    - usb: dwc2: Fix gadget DMA unmap direction
+    - usb: core: hub: fix race condition about TRSMRCY of resume
+    - usb: dwc3: gadget: Return success always for kick transfer in ep queue
+    - xhci: Do not use GFP_KERNEL in (potentially) atomic context
+    - xhci: Add reset resume quirk for AMD xhci controller.
+    - iio: gyro: mpu3050: Fix reported temperature value
+    - iio: tsl2583: Fix division by a zero lux_val
+    - cdc-wdm: untangle a circular dependency between callback and softint
+    - KVM: x86: Cancel pvclock_gtod_work on module removal
+    - mm: fix struct page layout on 32-bit systems
+    - FDDI: defxx: Make MMIO the configuration default except for EISA
+    - MIPS: Reinstate platform `__div64_32' handler
+    - MIPS: Avoid DIVU in `__div64_32' is result would be zero
+    - MIPS: Avoid handcoded DIVU in `__div64_32' altogether
+    - thermal/core/fair share: Lock the thermal zone while looping over instances
+    - f2fs: fix error handling in f2fs_end_enable_verity()
+    - ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address
+    - ARM: 9012/1: move device tree mapping out of linear region
+    - ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual
+      address
+    - ARM: 9027/1: head.S: explicitly map DT even if it lives in the first
+      physical section
+    - usb: typec: tcpm: Fix error while calculating PPS out values
+    - kobject_uevent: remove warning in init_uevent_argv()
+    - netfilter: conntrack: Make global sysctls readonly in non-init netns
+    - clk: exynos7: Mark aclk_fsys1_200 as critical
+    - nvme: do not try to reconfigure APST when the controller is not live
+    - ASoC: rsnd: check all BUSIF status when error
+    - Linux 5.4.120
+
+  * scsi: storvsc: Parameterize number hardware queues (LP: #1930626)
+    - scsi: storvsc: Parameterize number hardware queues
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 18 Jun 2021 16:07:34 +0200
+
+linux (5.4.0-77.86) focal; urgency=medium
+
+  * UAF on CAN J1939 j1939_can_recv (LP: #1932209)
+    - SAUCE: can: j1939: delay release of j1939_priv after synchronize_rcu
+
+  * UAF on CAN BCM bcm_rx_handler (LP: #1931855)
+    - SAUCE: can: bcm: delay release of struct bcm_op after synchronize_rcu
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 16 Jun 2021 22:05:50 -0300
+
+linux (5.4.0-76.85) focal; urgency=medium
+
+  * focal/linux: 5.4.0-76.85 -proposed tracker (LP: #1932123)
+
+  * Upstream v5.9 introduced 'module' patches that removed exported symbols
+    (LP: #1932065)
+    - SAUCE: Revert "modules: inherit TAINT_PROPRIETARY_MODULE"
+    - SAUCE: Revert "modules: return licensing information from find_symbol"
+    - SAUCE: Revert "modules: rename the licence field in struct symsearch to
+      license"
+    - SAUCE: Revert "modules: unexport __module_address"
+    - SAUCE: Revert "modules: unexport __module_text_address"
+    - SAUCE: Revert "modules: mark each_symbol_section static"
+    - SAUCE: Revert "modules: mark find_symbol static"
+    - SAUCE: Revert "modules: mark ref_module static"
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 16 Jun 2021 10:37:49 +0200
+
+linux (5.4.0-75.84) focal; urgency=medium
+
+  * focal/linux: 5.4.0-75.84 -proposed tracker (LP: #1930032)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * CVE-2021-33200
+    - bpf: Wrap aux data inside bpf_sanitize_info container
+    - bpf: Fix mask direction swap upon off reg sign change
+    - bpf: No need to simulate speculative domain for immediates
+
+  * Realtek USB hubs in Dell WD19SC/DC/TB fail to work after exiting s2idle
+    (LP: #1928242)
+    - USB: Verify the port status when timeout happens during port suspend
+
+  * CVE-2020-26145
+    - ath10k: drop fragments with multicast DA for SDIO
+    - ath10k: add CCMP PN replay protection for fragmented frames for PCIe
+    - ath10k: drop fragments with multicast DA for PCIe
+
+  * CVE-2020-26141
+    - ath10k: Fix TKIP Michael MIC verification for PCIe
+
+  * CVE-2020-24588
+    - mac80211: properly handle A-MSDUs that start with an RFC 1042 header
+    - cfg80211: mitigate A-MSDU aggregation attacks
+    - mac80211: drop A-MSDUs on old ciphers
+    - ath10k: drop MPDU which has discard flag set by firmware for SDIO
+
+  * CVE-2020-26139
+    - mac80211: do not accept/forward invalid EAPOL frames
+
+  * CVE-2020-24586 // CVE-2020-24587 // CVE-2020-24587 for such cases.
+    - mac80211: extend protection against mixed key and fragment cache attacks
+
+  * CVE-2020-24586 // CVE-2020-24587
+    - mac80211: prevent mixed key and fragment cache attacks
+    - mac80211: add fragment cache to sta_info
+    - mac80211: check defrag PN against current frame
+    - mac80211: prevent attacks on TKIP/WEP as well
+
+  * CVE-2020-26147
+    - mac80211: assure all fragments are encrypted
+
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull the code that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: remove unnecessary discard limits for raid0 and raid10
+
+  * [SRU] mpt3sas: only one vSES is handy even IOC has multi vSES (LP: #1926517)
+    - scsi: mpt3sas: Only one vSES is present even when IOC has multi vSES
+
+  * kvm: properly tear down PV features on hibernate (LP: #1920944)
+    - x86/kvm: Fix pr_info() for async PF setup/teardown
+    - x86/kvm: Teardown PV features on boot CPU as well
+    - x86/kvm: Disable kvmclock on all CPUs on shutdown
+    - x86/kvm: Disable all PV features on crash
+    - x86/kvm: Unify kvm_pv_guest_cpu_reboot() with kvm_guest_cpu_offline()
+
+  * Focal update: v5.4.119 upstream stable release (LP: #1929615)
+    - Bluetooth: verify AMP hci_chan before amp_destroy
+    - hsr: use netdev_err() instead of WARN_ONCE()
+    - bluetooth: eliminate the potential race condition when removing the HCI
+      controller
+    - net/nfc: fix use-after-free llcp_sock_bind/connect
+    - Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL"
+    - tty: moxa: fix TIOCSSERIAL jiffies conversions
+    - tty: amiserial: fix TIOCSSERIAL permission check
+    - USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions
+    - staging: greybus: uart: fix TIOCSSERIAL jiffies conversions
+    - USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check
+    - staging: fwserial: fix TIOCSSERIAL jiffies conversions
+    - tty: moxa: fix TIOCSSERIAL permission check
+    - staging: fwserial: fix TIOCSSERIAL permission check
+    - usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply
+    - usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply
+    - usb: typec: tcpm: update power supply once partner accepts
+    - usb: xhci-mtk: remove or operator for setting schedule parameters
+    - usb: xhci-mtk: improve bandwidth scheduling with TT
+    - ASoC: samsung: tm2_wm5110: check of of_parse return value
+    - ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function
+    - MIPS: pci-mt7620: fix PLL lock check
+    - MIPS: pci-rt2880: fix slot 0 configuration
+    - FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
+    - PCI: Allow VPD access for QLogic ISP2722
+    - iio:accel:adis16201: Fix wrong axis assignment that prevents loading
+    - misc: lis3lv02d: Fix false-positive WARN on various HP models
+    - misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
+    - misc: vmw_vmci: explicitly initialize vmci_datagram payload
+    - md/bitmap: wait for external bitmap writes to complete during tear down
+    - md-cluster: fix use-after-free issue when removing rdev
+    - md: split mddev_find
+    - md: factor out a mddev_find_locked helper from mddev_find
+    - md: md_open returns -EBUSY when entering racing area
+    - md: Fix missing unused status line of /proc/mdstat
+    - ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
+    - cfg80211: scan: drop entry from hidden_list on overflow
+    - rtw88: Fix array overrun in rtw_get_tx_power_params()
+    - drm/panfrost: Clear MMU irqs before handling the fault
+    - drm/panfrost: Don't try to map pages that are already mapped
+    - drm/radeon: fix copy of uninitialized variable back to userspace
+    - drm/amd/display: Reject non-zero src_y and src_x for video planes
+    - ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
+    - ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
+    - ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
+    - ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries
+    - ALSA: hda/realtek: Re-order ALC662 quirk table entries
+    - ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
+    - ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable
+    - KVM: s390: split kvm_s390_logical_to_effective
+    - KVM: s390: fix guarded storage control register handling
+    - s390: fix detection of vector enhancements facility 1 vs. vector packed
+      decimal facility
+    - KVM: s390: split kvm_s390_real_to_abs
+    - KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit
+    - KVM: Stop looking for coalesced MMIO zones if the bus is destroyed
+    - Revert "i3c master: fix missing destroy_workqueue() on error in
+      i3c_master_register"
+    - ovl: fix missing revert_creds() on error path
+    - usb: gadget: pch_udc: Revert d3cb25a12138 completely
+    - memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
+    - ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
+    - serial: stm32: fix incorrect characters on console
+    - serial: stm32: fix tx_empty condition
+    - usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS
+    - regmap: set debugfs_name to NULL after it is freed
+    - mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe()
+    - mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
+    - mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
+    - mtd: rawnand: qcom: Return actual error code instead of -ENODEV
+    - arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges'
+    - spi: stm32: drop devres version of spi_register_master
+    - arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding
+    - x86/microcode: Check for offline CPUs before requesting new microcode
+    - usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
+    - usb: gadget: pch_udc: Check if driver is present before calling ->setup()
+    - usb: gadget: pch_udc: Check for DMA mapping error
+    - crypto: qat - don't release uninitialized resources
+    - crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
+    - fotg210-udc: Fix DMA on EP0 for length > max packet size
+    - fotg210-udc: Fix EP0 IN requests bigger than two packets
+    - fotg210-udc: Remove a dubious condition leading to fotg210_done
+    - fotg210-udc: Mask GRP2 interrupts we don't handle
+    - fotg210-udc: Don't DMA more than the buffer can take
+    - fotg210-udc: Complete OUT requests on short packets
+    - mtd: require write permissions for locking and badblock ioctls
+    - bus: qcom: Put child node before return
+    - soundwire: bus: Fix device found flag correctly
+    - phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y,
+      unconditionally
+    - crypto: qat - fix error path in adf_isr_resource_alloc()
+    - usb: gadget: aspeed: fix dma map failure
+    - USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR()
+    - memory: pl353: fix mask of ECC page_size config register
+    - soundwire: stream: fix memory leak in stream config error path
+    - m68k: mvme147,mvme16x: Don't wipe PCC timer config bits
+    - mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
+    - irqchip/gic-v3: Fix OF_BAD_ADDR error handling
+    - staging: rtl8192u: Fix potential infinite loop
+    - staging: greybus: uart: fix unprivileged TIOCCSERIAL
+    - PM / devfreq: Use more accurate returned new_freq as resume_freq
+    - spi: Fix use-after-free with devm_spi_alloc_*
+    - soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
+    - soc: qcom: mdt_loader: Detect truncated read of segments
+    - ACPI: CPPC: Replace cppc_attr with kobj_attribute
+    - crypto: qat - Fix a double free in adf_create_ring
+    - cpufreq: armada-37xx: Fix setting TBG parent for load levels
+    - clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock
+    - cpufreq: armada-37xx: Fix the AVS value for load L1
+    - clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz
+    - clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0
+    - cpufreq: armada-37xx: Fix driver cleanup when registration failed
+    - cpufreq: armada-37xx: Fix determining base CPU frequency
+    - spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware()
+    - usb: gadget: r8a66597: Add missing null check on return from
+      platform_get_resource
+    - USB: cdc-acm: fix unprivileged TIOCCSERIAL
+    - USB: cdc-acm: fix TIOCGSERIAL implementation
+    - tty: fix return value for unsupported ioctls
+    - serial: core: return early on unsupported ioctls
+    - firmware: qcom-scm: Fix QCOM_SCM configuration
+    - node: fix device cleanups in error handling code
+    - usbip: vudc: fix missing unlock on error in usbip_sockfd_store()
+    - platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with
+      critclk_systems DMI table
+    - x86/platform/uv: Fix !KEXEC build failure
+    - usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
+    - usb: dwc2: Fix hibernation between host and device modes.
+    - ttyprintk: Add TTY hangup callback.
+    - xen-blkback: fix compatibility bug with single page rings
+    - soc: aspeed: fix a ternary sign expansion bug
+    - media: vivid: fix assignment of dev->fbuf_out_flags
+    - media: omap4iss: return error code when omap4iss_get() failed
+    - media: aspeed: fix clock handling logic
+    - media: platform: sunxi: sun6i-csi: fix error return code of
+      sun6i_video_start_streaming()
+    - media: m88rs6000t: avoid potential out-of-bounds reads on arrays
+    - drm/amdkfd: fix build error with AMD_IOMMU_V2=m
+    - x86/kprobes: Fix to check non boostable prefixes correctly
+    - pata_arasan_cf: fix IRQ check
+    - pata_ipx4xx_cf: fix IRQ check
+    - sata_mv: add IRQ checks
+    - ata: libahci_platform: fix IRQ check
+    - nvme-tcp: block BH in sk state_change sk callback
+    - nvmet-tcp: fix incorrect locking in state_change sk callback
+    - nvme: retrigger ANA log update if group descriptor isn't found
+    - media: v4l2-ctrls.c: fix race condition in hdl->requests list
+    - vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer
+    - clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback
+    - clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
+    - clk: uniphier: Fix potential infinite loop
+    - scsi: hisi_sas: Fix IRQ checks
+    - scsi: jazz_esp: Add IRQ check
+    - scsi: sun3x_esp: Add IRQ check
+    - scsi: sni_53c710: Add IRQ check
+    - scsi: ibmvfc: Fix invalid state machine BUG_ON()
+    - mfd: stm32-timers: Avoid clearing auto reload register
+    - nvme-pci: don't simple map sgl when sgls are disabled
+    - HSI: core: fix resource leaks in hsi_add_client_from_dt()
+    - x86/events/amd/iommu: Fix sysfs type mismatch
+    - sched/debug: Fix cgroup_path[] serialization
+    - drivers/block/null_blk/main: Fix a double free in null_init.
+    - HID: plantronics: Workaround for double volume key presses
+    - perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of
+      printed chars
+    - net: lapbether: Prevent racing when checking whether the netif is running
+    - powerpc/fadump: Mark fadump_calculate_reserve_size as __init
+    - powerpc/prom: Mark identical_pvr_fixup as __init
+    - inet: use bigger hash table for IP ID generation
+    - powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration
+    - ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
+    - bug: Remove redundant condition check in report_bug
+    - nfc: pn533: prevent potential memory corruption
+    - net: hns3: Limiting the scope of vector_ring_chain variable
+    - mips: bmips: fix syscon-reboot nodes
+    - ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
+    - ASoC: simple-card: fix possible uninitialized single_cpu local variable
+    - liquidio: Fix unintented sign extension of a left shift of a u16
+    - powerpc/64s: Fix pte update for kernel memory on radix
+    - powerpc/perf: Fix PMU constraint check for EBB events
+    - powerpc: iommu: fix build when neither PCI or IBMVIO is set
+    - mac80211: bail out if cipher schemes are invalid
+    - mt7601u: fix always true expression
+    - KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit
+    - RDMA/qedr: Fix error return code in qedr_iw_connect()
+    - IB/hfi1: Fix error return code in parse_platform_config()
+    - cxgb4: Fix unintentional sign extension issues
+    - net: thunderx: Fix unintentional sign extension issue
+    - RDMA/srpt: Fix error return code in srpt_cm_req_recv()
+    - i2c: img-scb: fix reference leak when pm_runtime_get_sync fails
+    - i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails
+    - i2c: omap: fix reference leak when pm_runtime_get_sync fails
+    - i2c: sprd: fix reference leak when pm_runtime_get_sync fails
+    - i2c: cadence: add IRQ check
+    - i2c: emev2: add IRQ check
+    - i2c: jz4780: add IRQ check
+    - i2c: sh7760: add IRQ check
+    - powerpc/xive: Fix xmon command "dxi"
+    - ASoC: ak5558: correct reset polarity
+    - drm/i915/gvt: Fix error code in intel_gvt_init_device()
+    - perf beauty: Fix fsconfig generator
+    - MIPS: pci-legacy: stop using of_pci_range_to_resource
+    - powerpc/pseries: extract host bridge from pci_bus prior to bus removal
+    - rtlwifi: 8821ae: upgrade PHY and RF parameters
+    - i2c: sh7760: fix IRQ error path
+    - mwl8k: Fix a double Free in mwl8k_probe_hw
+    - vsock/vmci: log once the failed queue pair allocation
+    - gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check
+    - RDMA/cxgb4: add missing qpid increment
+    - RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
+    - ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
+    - net: davinci_emac: Fix incorrect masking of tx and rx error channel
+    - net: renesas: ravb: Fix a stuck issue when a lot of frames are received
+    - net: phy: intel-xway: enable integrated led functions
+    - ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
+    - ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock
+    - powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
+    - bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
+    - ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for
+      RTL8211E
+    - arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for
+      RTL8211E
+    - net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb
+    - selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static
+    - bnxt_en: Fix RX consumer index logic in the error path.
+    - net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
+    - RDMA/siw: Fix a use after free in siw_alloc_mr
+    - RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res
+    - net: bridge: mcast: fix broken length + header check for MRDv6 Adv.
+    - net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
+    - kfifo: fix ternary sign extension bugs
+    - mm/sparse: add the missing sparse_buffer_fini() in error branch
+    - mm/memory-failure: unnecessary amount of unmapping
+    - net: Only allow init netns to set default tcp cong to a restricted algo
+    - smp: Fix smp_call_function_single_async prototype
+    - Revert "net/sctp: fix race condition in sctp_destroy_sock"
+    - sctp: delay auto_asconf init until binding the first addr
+    - Revert "of/fdt: Make sure no-map does not remove already reserved regions"
+    - Revert "fdt: Properly handle "no-map" field in the memory region"
+    - Linux 5.4.119
+
+  * seccomp_bpf:syscall_faked from kselftests fail on s390x (LP: #1928522)
+    - selftests/seccomp: s390 shares the syscall and return value register
+
+  * Can't detect intel wifi 6235 (LP: #1920180)
+    - SAUCE: iwlwifi: add new pci id for 6235
+
+  * Mark kprobe_args_user.tc in kselftest/ftrace as unsupported (LP: #1929527)
+    - selftests/ftrace: Return unsupported for the unconfigured features
+
+  * pmtu.sh from net in ubuntu_kernel_selftests failed with no error message
+    (LP: #1887661)
+    - selftests: pmtu.sh: use $ksft_skip for skipped return code
+
+  * alsa/sof: make sof driver work in the case of without i915 (focal kernel)
+    (LP: #1927672)
+    - SAUCE: ASoC: SOF: Intel: hda: move the probe_bus ahead of creation of mach
+      device
+
+  * Fix kdump failures (LP: #1927518)
+    - video: hyperv_fb: Add ratelimit on error message
+    - Drivers: hv: vmbus: Increase wait time for VMbus unload
+    - Drivers: hv: vmbus: Initialize unload_event statically
+
+  * Ubuntu 20.04 - 'Support flow counters offset for bulk counters'
+    (LP: #1922494)
+    - IB/mlx5: Support flow counters offset for bulk counters
+
+  * Focal update: v5.4.118 upstream stable release (LP: #1928825)
+    - s390/disassembler: increase ebpf disasm buffer size
+    - ACPI: custom_method: fix potential use-after-free issue
+    - ACPI: custom_method: fix a possible memory leak
+    - ftrace: Handle commands when closing set_ftrace_filter file
+    - ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
+    - arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
+    - arm64: dts: mt8173: fix property typo of 'phys' in dsi node
+    - ecryptfs: fix kernel panic with null dev_name
+    - mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
+    - mtd: rawnand: atmel: Update ecc_stats.corrected counter
+    - erofs: add unsupported inode i_format check
+    - spi: spi-ti-qspi: Free DMA resources
+    - scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
+    - scsi: mpt3sas: Block PCI config access from userspace during reset
+    - mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe()
+    - mmc: uniphier-sd: Fix a resource leak in the remove function
+    - mmc: sdhci: Check for reset prior to DMA address unmap
+    - mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based
+      controllers
+    - mmc: block: Update ext_csd.cache_ctrl if it was written
+    - mmc: block: Issue a cache flush only when it's enabled
+    - mmc: core: Do a power cycle when the CMD11 fails
+    - mmc: core: Set read only for SD cards with permanent write protect bit
+    - mmc: core: Fix hanging on I/O during system suspend for removable cards
+    - modules: mark ref_module static
+    - modules: mark find_symbol static
+    - modules: mark each_symbol_section static
+    - modules: unexport __module_text_address
+    - modules: unexport __module_address
+    - modules: rename the licence field in struct symsearch to license
+    - modules: return licensing information from find_symbol
+    - modules: inherit TAINT_PROPRIETARY_MODULE
+    - irqchip/gic-v3: Do not enable irqs when handling spurious interrups
+    - cifs: Return correct error code from smb2_get_enc_key
+    - btrfs: fix metadata extent leak after failure to create subvolume
+    - intel_th: pci: Add Rocket Lake CPU support
+    - posix-timers: Preserve return value in clock_adjtime32()
+    - fbdev: zero-fill colormap in fbcmap.c
+    - bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
+    - staging: wimax/i2400m: fix byte-order issue
+    - spi: ath79: always call chipselect function
+    - spi: ath79: remove spi-master setup and cleanup assignment
+    - crypto: api - check for ERR pointers in crypto_destroy_tfm()
+    - crypto: qat - fix unmap invalid dma address
+    - usb: gadget: uvc: add bInterval checking for HS mode
+    - usb: webcam: Invalid size of Processing Unit Descriptor
+    - genirq/matrix: Prevent allocation counter corruption
+    - usb: gadget: f_uac2: validate input parameters
+    - usb: gadget: f_uac1: validate input parameters
+    - usb: dwc3: gadget: Ignore EP queue requests during bus reset
+    - usb: xhci: Fix port minor revision
+    - PCI: PM: Do not read power state in pci_enable_device_flags()
+    - x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
+    - tee: optee: do not check memref size on return from Secure World
+    - perf/arm_pmu_platform: Fix error handling
+    - usb: xhci-mtk: support quirk to disable usb2 lpm
+    - xhci: check control context is valid before dereferencing it.
+    - xhci: fix potential array out of bounds with several interrupters
+    - spi: dln2: Fix reference leak to master
+    - spi: omap-100k: Fix reference leak to master
+    - spi: qup: fix PM reference leak in spi_qup_remove()
+    - usb: musb: fix PM reference leak in musb_irq_work()
+    - usb: core: hub: Fix PM reference leak in usb_port_resume()
+    - tty: n_gsm: check error while registering tty devices
+    - intel_th: Consistency and off-by-one fix
+    - phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
+    - crypto: stm32/hash - Fix PM reference leak on stm32-hash.c
+    - crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c
+    - crypto: omap-aes - Fix PM reference leak on omap-aes.c
+    - platform/x86: intel_pmc_core: Don't use global pmcdev in quirks
+    - btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
+    - drm: Added orientation quirk for OneGX1 Pro
+    - drm/qxl: release shadow on shutdown
+    - drm/amd/display: Check for DSC support instead of ASIC revision
+    - drm/amd/display: Don't optimize bandwidth before disabling planes
+    - scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
+    - scsi: lpfc: Fix pt2pt connection does not recover after LOGO
+    - scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
+    - media: ite-cir: check for receive overflow
+    - media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB
+    - media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt()
+    - power: supply: bq27xxx: fix power_avg for newer ICs
+    - extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has
+      been unplugged
+    - extcon: arizona: Fix various races on driver unbind
+    - media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
+    - media: gspca/sq905.c: fix uninitialized variable
+    - power: supply: Use IRQF_ONESHOT
+    - drm/amdgpu: mask the xgmi number of hops reported from psp to kfd
+    - drm/amdkfd: Fix UBSAN shift-out-of-bounds warning
+    - drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
+    - drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool'
+    - drm/amd/display: fix dml prefetch validation
+    - scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
+    - drm/vkms: fix misuse of WARN_ON
+    - scsi: qla2xxx: Fix use after free in bsg
+    - mmc: sdhci-pci: Add PCI IDs for Intel LKF
+    - ata: ahci: Disable SXS for Hisilicon Kunpeng920
+    - scsi: smartpqi: Correct request leakage during reset operations
+    - scsi: smartpqi: Add new PCI IDs
+    - scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
+    - media: em28xx: fix memory leak
+    - media: vivid: update EDID
+    - clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
+    - power: supply: generic-adc-battery: fix possible use-after-free in
+      gab_remove()
+    - power: supply: s3c_adc_battery: fix possible use-after-free in
+      s3c_adc_bat_remove()
+    - media: tc358743: fix possible use-after-free in tc358743_remove()
+    - media: adv7604: fix possible use-after-free in adv76xx_remove()
+    - media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
+    - media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove()
+    - media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
+    - media: platform: sti: Fix runtime PM imbalance in regs_show
+    - media: dvb-usb: fix memory leak in dvb_usb_adapter_init
+    - media: gscpa/stv06xx: fix memory leak
+    - sched/fair: Ignore percpu threads for imbalance pulls
+    - drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
+    - drm/msm/mdp5: Do not multiply vclk line count by 100
+    - drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug
+    - amdgpu: avoid incorrect %hu format string
+    - drm/amdgpu: fix NULL pointer dereference
+    - scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO
+      response
+    - scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode
+    - scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
+    - mfd: arizona: Fix rumtime PM imbalance on error
+    - scsi: libfc: Fix a format specifier
+    - s390/archrandom: add parameter check for s390_arch_random_generate
+    - ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
+    - ALSA: hda/conexant: Re-order CX5066 quirk table entries
+    - ALSA: sb: Fix two use after free in snd_sb_qsound_build
+    - ALSA: usb-audio: Explicitly set up the clock selector
+    - ALSA: usb-audio: More constifications
+    - ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset
+      PC 8
+    - ALSA: hda/realtek: GA503 use same quirks as GA401
+    - ALSA: hda/realtek: fix mic boost on Intel NUC 8
+    - ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops
+    - ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
+    - btrfs: fix race when picking most recent mod log operation for an old root
+    - arm64/vdso: Discard .note.gnu.property sections in vDSO
+    - Makefile: Move -Wno-unused-but-set-variable out of GCC only block
+    - virtiofs: fix memory leak in virtio_fs_probe()
+    - ubifs: Only check replay with inode type to judge if inode linked
+    - f2fs: fix to avoid out-of-bounds memory access
+    - mlxsw: spectrum_mr: Update egress RIF list before route's action
+    - openvswitch: fix stack OOB read while fragmenting IPv4 packets
+    - ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
+    - NFS: Don't discard pNFS layout segments that are marked for return
+    - NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
+    - Input: ili210x - add missing negation for touch indication on ili210x
+    - jffs2: Fix kasan slab-out-of-bounds problem
+    - powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
+    - powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
+    - intel_th: pci: Add Alder Lake-M support
+    - tpm: efi: Use local variable for calculating final log size
+    - tpm: vtpm_proxy: Avoid reading host log when using a virtual device
+    - crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
+    - md/raid1: properly indicate failure when ending a failed write request
+    - dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload
+      sequences
+    - fuse: fix write deadlock
+    - security: commoncap: fix -Wstringop-overread warning
+    - Fix misc new gcc warnings
+    - jffs2: check the validity of dstlen in jffs2_zlib_compress()
+    - Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
+    - x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
+    - kbuild: update config_data.gz only when the content of .config is changed
+    - ext4: fix check to prevent false positive report of incorrect used inodes
+    - ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
+    - ext4: fix error code in ext4_commit_super
+    - media: dvbdev: Fix memory leak in dvb_media_device_free()
+    - media: dvb-usb: Fix use-after-free access
+    - media: dvb-usb: Fix memory leak at error in dvb_usb_device_init()
+    - media: staging/intel-ipu3: Fix memory leak in imu_fmt
+    - media: staging/intel-ipu3: Fix set_fmt error handling
+    - media: staging/intel-ipu3: Fix race condition during set_fmt
+    - usb: gadget: dummy_hcd: fix gpf in gadget_setup
+    - usb: gadget: Fix double free of device descriptor pointers
+    - usb: gadget/function/f_fs string table fix for multiple languages
+    - usb: dwc3: gadget: Fix START_TRANSFER link state check
+    - usb: dwc2: Fix session request interrupt handler
+    - tty: fix memory leak in vc_deallocate
+    - rsi: Use resume_noirq for SDIO
+    - tracing: Map all PIDs to command lines
+    - tracing: Restructure trace_clock_global() to never block
+    - dm persistent data: packed struct should have an aligned() attribute too
+    - dm space map common: fix division bug in sm_ll_find_free_block()
+    - dm integrity: fix missing goto in bitmap_flush_interval error handling
+    - dm rq: fix double free of blk_mq_tag_set in dev remove after table load
+      fails
+    - Linux 5.4.118
+
+  * Focal update: v5.4.117 upstream stable release (LP: #1928823)
+    - mips: Do not include hi and lo in clobber list for R6
+    - ACPI: tables: x86: Reserve memory occupied by ACPI tables
+    - ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
+    - net: usb: ax88179_178a: initialize local variables before use
+    - igb: Enable RSS for Intel I211 Ethernet Controller
+    - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
+    - bpf: Fix masking negation logic upon negative dst register
+    - bpf: Fix leakage of uninitialized bpf stack under speculation
+    - avoid __memcat_p link failure
+    - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
+    - perf data: Fix error return code in perf_data__create_dir()
+    - perf ftrace: Fix access to pid in array when setting a pid filter
+    - ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
+    - USB: Add reset-resume quirk for WD19's Realtek Hub
+    - platform/x86: thinkpad_acpi: Correct thermal sensor allocation
+    - scsi: ufs: Unlock on a couple error paths
+    - ovl: allow upperdir inside lowerdir
+    - perf/core: Fix unconditional security_locked_down() call
+    - vfio: Depend on MMU
+    - Linux 5.4.117
+
+  * r8152 tx status -71 (LP: #1922651) // Focal update: v5.4.117 upstream stable
+    release (LP: #1928823)
+    - USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
+
+  * Focal update: v5.4.116 upstream stable release (LP: #1928821)
+    - bpf: Move off_reg into sanitize_ptr_alu
+    - bpf: Ensure off_reg has no mixed signed bounds for all types
+    - bpf: Rework ptr_limit into alu_limit and add common error path
+    - bpf: Improve verifier error messages for users
+    - bpf: Refactor and streamline bounds check into helper
+    - bpf: Move sanitize_val_alu out of op switch
+    - bpf: Tighten speculative pointer arithmetic mask
+    - bpf: Update selftests to reflect new error states
+    - Linux 5.4.116
+
+  * Focal update: v5.4.115 upstream stable release (LP: #1927997)
+    - gpio: omap: Save and restore sysconfig
+    - pinctrl: lewisburg: Update number of pins in community
+    - arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS
+    - perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
+    - perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[]
+    - perf auxtrace: Fix potential NULL pointer dereference
+    - HID: google: add don USB id
+    - HID: alps: fix error return code in alps_input_configured()
+    - HID: wacom: Assign boolean values to a bool variable
+    - ARM: dts: Fix swapped mmc order for omap3
+    - net: geneve: check skb is large enough for IPv4/IPv6 header
+    - s390/entry: save the caller of psw_idle
+    - xen-netback: Check for hotplug-status existence before watching
+    - cavium/liquidio: Fix duplicate argument
+    - csky: change a Kconfig symbol name to fix e1000 build error
+    - ia64: fix discontig.c section mismatches
+    - ia64: tools: remove duplicate definition of ia64_mf() on ia64
+    - x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access
+    - net: hso: fix NULL-deref on disconnect regression
+    - USB: CDC-ACM: fix poison/unpoison imbalance
+    - Linux 5.4.115
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 28 May 2021 18:14:26 +0200
+
+linux (5.4.0-74.83) focal; urgency=medium
+
+  * focal/linux: 5.4.0-74.83 -proposed tracker (LP: #1927619)
+
+  * Introduce the 465 driver series, fabric-manager, and libnvidia-nscq
+    (LP: #1925522)
+    - debian/dkms-versions -- add NVIDIA 465 and migrate 450 to 460
+
+  * linux-image-5.0.0-35-generic breaks checkpointing of container
+    (LP: #1857257)
+    - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files
+
+  * Enable CIFS GCM256 (LP: #1921916)
+    - smb3: add defines for new crypto algorithms
+    - smb3.1.1: add new module load parm require_gcm_256
+    - smb3.1.1: add new module load parm enable_gcm_256
+    - smb3.1.1: print warning if server does not support requested encryption type
+    - smb3.1.1: rename nonces used for GCM and CCM encryption
+    - smb3.1.1: set gcm256 when requested
+    - cifs: Adjust key sizes and key generation routines for AES256 encryption
+
+  * locking/qrwlock: Fix ordering in queued_write_lock_slowpath() (LP: #1926184)
+    - locking/qrwlock: Fix ordering in queued_write_lock_slowpath()
+
+  * [Ubuntu 21.04] net/mlx5: Fix HW spec violation configuring uplink
+    (LP: #1925452)
+    - net/mlx5: Fix HW spec violation configuring uplink
+
+  * Focal update: v5.4.114 upstream stable release (LP: #1926493)
+    - Revert "scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure"
+    - Revert "scsi: qla2xxx: Fix stuck login session using prli_pend_timer"
+    - scsi: qla2xxx: Dual FCP-NVMe target port support
+    - scsi: qla2xxx: Fix device connect issues in P2P configuration
+    - scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
+    - scsi: qla2xxx: Add a shadow variable to hold disc_state history of fcport
+    - scsi: qla2xxx: Fix stuck login session using prli_pend_timer
+    - scsi: qla2xxx: Fix fabric scan hang
+    - net/sctp: fix race condition in sctp_destroy_sock
+    - Input: nspire-keypad - enable interrupts only when opened
+    - gpio: sysfs: Obey valid_mask
+    - dmaengine: dw: Make it dependent to HAS_IOMEM
+    - ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race
+    - ARM: dts: Fix moving mmc devices with aliases for omap4 & 5
+    - lockdep: Add a missing initialization hint to the "INFO: Trying to register
+      non-static key" message
+    - arc: kernel: Return -EFAULT if copy_to_user() fails
+    - ASoC: max98373: Added 30ms turn on/off time delay
+    - neighbour: Disregard DEAD dst in neigh_update
+    - ARM: keystone: fix integer overflow warning
+    - ARM: omap1: fix building with clang IAS
+    - drm/msm: Fix a5xx/a6xx timestamps
+    - ASoC: fsl_esai: Fix TDM slot setup for I2S mode
+    - scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state
+    - net: ieee802154: stop dump llsec keys for monitors
+    - net: ieee802154: forbid monitor for add llsec key
+    - net: ieee802154: forbid monitor for del llsec key
+    - net: ieee802154: stop dump llsec devs for monitors
+    - net: ieee802154: forbid monitor for add llsec dev
+    - net: ieee802154: forbid monitor for del llsec dev
+    - net: ieee802154: stop dump llsec devkeys for monitors
+    - net: ieee802154: forbid monitor for add llsec devkey
+    - net: ieee802154: forbid monitor for del llsec devkey
+    - net: ieee802154: stop dump llsec seclevels for monitors
+    - net: ieee802154: forbid monitor for add llsec seclevel
+    - pcnet32: Use pci_resource_len to validate PCI resource
+    - mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN
+    - virt_wifi: Return micros for BSS TSF values
+    - Input: s6sy761 - fix coordinate read bit shift
+    - Input: i8042 - fix Pegatron C15B ID entry
+    - HID: wacom: set EV_KEY and EV_ABS only for non-HID_GENERIC type of devices
+    - dm verity fec: fix misaligned RS roots IO
+    - readdir: make sure to verify directory entry for legacy interfaces too
+    - arm64: fix inline asm in load_unaligned_zeropad()
+    - arm64: alternatives: Move length validation in alternative_{insn, endif}
+    - vfio/pci: Add missing range check in vfio_pci_mmap
+    - riscv: Fix spelling mistake "SPARSEMEM" to "SPARSMEM"
+    - scsi: libsas: Reset num_scatter if libata marks qc as NODATA
+    - netfilter: conntrack: do not print icmpv6 as unknown via /proc
+    - libnvdimm/region: Fix nvdimm_has_flush() to handle ND_REGION_ASYNC
+    - netfilter: bridge: add pre_exit hooks for ebtable unregistration
+    - netfilter: arp_tables: add pre_exit hook for table unregister
+    - net: macb: fix the restore of cmp registers
+    - netfilter: nft_limit: avoid possible divide error in nft_limit_init
+    - net: davicom: Fix regulator not turned off on failed probe
+    - net: sit: Unregister catch-all devices
+    - net: ip6_tunnel: Unregister catch-all devices
+    - i40e: fix the panic when running bpf in xdpdrv mode
+    - ibmvnic: avoid calling napi_disable() twice
+    - ibmvnic: remove duplicate napi_schedule call in do_reset function
+    - ibmvnic: remove duplicate napi_schedule call in open function
+    - gro: ensure frag0 meets IP header alignment
+    - ARM: footbridge: fix PCI interrupt mapping
+    - arm64: dts: allwinner: Fix SD card CD GPIO for SOPine systems
+    - r8169: remove fiddling with the PCIe max read request size
+    - r8169: simplify setting PCI_EXP_DEVCTL_NOSNOOP_EN
+    - r8169: fix performance regression related to PCIe max read request size
+    - r8169: improve rtl_jumbo_config
+    - r8169: tweak max read request size for newer chips also in jumbo mtu mode
+    - r8169: don't advertise pause in jumbo mode
+    - ARM: 9071/1: uprobes: Don't hook on thumb instructions
+    - net: phy: marvell: fix detection of PHY on Topaz switches
+    - Linux 5.4.114
+
+  * Focal update: v5.4.113 upstream stable release (LP: #1926490)
+    - interconnect: core: fix error return code of icc_link_destroy()
+    - KVM: arm64: Hide system instruction access to Trace registers
+    - KVM: arm64: Disable guest access to trace filter controls
+    - drm/imx: imx-ldb: fix out of bounds array access warning
+    - gfs2: report "already frozen/thawed" errors
+    - drm/tegra: dc: Don't set PLL clock to 0Hz
+    - block: only update parent bi_status when bio fail
+    - radix tree test suite: Register the main thread with the RCU library
+    - idr test suite: Take RCU read lock in idr_find_test_1
+    - idr test suite: Create anchor before launching throbber
+    - riscv,entry: fix misaligned base for excp_vect_table
+    - block: don't ignore REQ_NOWAIT for direct IO
+    - netfilter: x_tables: fix compat match/target pad out-of-bound write
+    - driver core: Fix locking bug in deferred_probe_timeout_work_func()
+    - perf tools: Use %define api.pure full instead of %pure-parser
+    - perf tools: Use %zd for size_t printf formats on 32-bit
+    - perf map: Tighten snprintf() string precision to pass gcc check on some
+      32-bit arches
+    - xen/events: fix setting irq affinity
+    - Linux 5.4.113
+
+  * Focal update: v5.4.112 upstream stable release (LP: #1926489)
+    - counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register
+    - ALSA: aloop: Fix initialization of controls
+    - ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1
+    - ASoC: intel: atom: Stop advertising non working S24LE support
+    - nfc: fix refcount leak in llcp_sock_bind()
+    - nfc: fix refcount leak in llcp_sock_connect()
+    - nfc: fix memory leak in llcp_sock_connect()
+    - nfc: Avoid endless loops caused by repeated llcp_sock_connect()
+    - xen/evtchn: Change irq_info lock to raw_spinlock_t
+    - net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
+    - net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock
+    - drm/i915: Fix invalid access to ACPI _DSM objects
+    - gcov: re-fix clang-11+ support
+    - ia64: fix user_stack_pointer() for ptrace()
+    - nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff
+    - ocfs2: fix deadlock between setattr and dio_end_io_write
+    - fs: direct-io: fix missing sdio->boundary
+    - parisc: parisc-agp requires SBA IOMMU driver
+    - parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers
+    - ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
+    - batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
+    - ice: Increase control queue timeout
+    - ice: Fix for dereference of NULL pointer
+    - ice: Cleanup fltr list in case of allocation issues
+    - net: hso: fix null-ptr-deref during tty device unregistration
+    - ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx
+    - bpf, sockmap: Fix sk->prot unhash op reset
+    - net: ensure mac header is set in virtio_net_hdr_to_skb()
+    - i40e: Fix sparse warning: missing error code 'err'
+    - i40e: Fix sparse error: 'vsi->netdev' could be null
+    - net: sched: sch_teql: fix null-pointer dereference
+    - mac80211: fix TXQ AC confusion
+    - net: hsr: Reset MAC header for Tx path
+    - net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
+    - net: let skb_orphan_partial wake-up waiters.
+    - usbip: add sysfs_lock to synchronize sysfs code paths
+    - usbip: stub-dev synchronize sysfs code paths
+    - usbip: vudc synchronize sysfs code paths
+    - usbip: synchronize event handler with sysfs code paths
+    - i2c: turn recovery error on init to debug
+    - virtio_net: Add XDP meta data support
+    - net: dsa: lantiq_gswip: Don't use PHY auto polling
+    - net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits
+    - xfrm: interface: fix ipv4 pmtu check to honor ip header df
+    - regulator: bd9571mwv: Fix AVS and DVFS voltage range
+    - net: xfrm: Localize sequence counter per network namespace
+    - esp: delete NETIF_F_SCTP_CRC bit from features for esp offload
+    - ASoC: SOF: Intel: hda: remove unnecessary parentheses
+    - ASoC: SOF: Intel: HDA: fix core status verification
+    - ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips
+    - xfrm: Fix NULL pointer dereference on policy lookup
+    - i40e: Added Asym_Pause to supported link modes
+    - i40e: Fix kernel oops when i40e driver removes VF's
+    - hostfs: Use kasprintf() instead of fixed buffer formatting
+    - hostfs: fix memory handling in follow_link()
+    - amd-xgbe: Update DMA coherency values
+    - sch_red: fix off-by-one checks in red_check_params()
+    - arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0
+    - can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE
+    - gianfar: Handle error code at MAC address change
+    - cxgb4: avoid collecting SGE_QBASE regs during traffic
+    - net:tipc: Fix a double free in tipc_sk_mcast_rcv
+    - ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces
+    - net/ncsi: Avoid channel_monitor hrtimer deadlock
+    - nfp: flower: ignore duplicate merge hints from FW
+    - net: phy: broadcom: Only advertise EEE for supported modes
+    - ASoC: sunxi: sun4i-codec: fill ASoC card owner
+    - net/mlx5e: Fix ethtool indication of connector type
+    - net/mlx5: Don't request more than supported EQs
+    - net/rds: Fix a use after free in rds_message_map_pages
+    - soc/fsl: qbman: fix conflicting alignment attributes
+    - i40e: Fix display statistics for veb_tc
+    - drm/msm: Set drvdata to NULL when msm_drm_init() fails
+    - net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...);
+    - scsi: ufs: Fix irq return code
+    - scsi: ufs: Avoid busy-waiting by eliminating tag conflicts
+    - scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs
+    - scsi: ufs: core: Fix task management request completion timeout
+    - scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs
+    - net: macb: restore cmp registers on resume path
+    - clk: fix invalid usage of list cursor in register
+    - clk: fix invalid usage of list cursor in unregister
+    - workqueue: Move the position of debug_work_activate() in __queue_work()
+    - s390/cpcmd: fix inline assembly register clobbering
+    - perf inject: Fix repipe usage
+    - net: openvswitch: conntrack: simplify the return expression of
+      ovs_ct_limit_get_default_limit()
+    - openvswitch: fix send of uninitialized stack memory in ct limit reply
+    - net: hns3: clear VF down state bit before request link status
+    - net/mlx5: Fix placement of log_max_flow_counter
+    - net/mlx5: Fix PBMC register mapping
+    - RDMA/cxgb4: check for ipv6 address properly while destroying listener
+    - RDMA/addr: Be strict with gid size
+    - RAS/CEC: Correct ce_add_elem()'s returned values
+    - clk: socfpga: fix iomem pointer cast on 64-bit
+    - dt-bindings: net: ethernet-controller: fix typo in NVMEM
+    - net: sched: bump refcount for new action in ACT replace mode
+    - cfg80211: remove WARN_ON() in cfg80211_sme_connect
+    - net: tun: set tun->dev->addr_len during TUNSETLINK processing
+    - drivers: net: fix memory leak in atusb_probe
+    - drivers: net: fix memory leak in peak_usb_create_dev
+    - net: mac802154: Fix general protection fault
+    - net: ieee802154: nl-mac: fix check on panid
+    - net: ieee802154: fix nl802154 del llsec key
+    - net: ieee802154: fix nl802154 del llsec dev
+    - net: ieee802154: fix nl802154 add llsec key
+    - net: ieee802154: fix nl802154 del llsec devkey
+    - net: ieee802154: forbid monitor for set llsec params
+    - net: ieee802154: forbid monitor for del llsec seclevel
+    - net: ieee802154: stop dump llsec params for monitors
+    - Linux 5.4.112
+
+  * crash utility fails on arm64 with  cannot determine VA_BITS_ACTUAL
+    (LP: #1919275)
+    - arm64/crash_core: Export TCR_EL1.T1SZ in vmcoreinfo
+
+  * Focal update: v5.4.111 upstream stable release (LP: #1923874)
+    - ARM: dts: am33xx: add aliases for mmc interfaces
+    - bus: ti-sysc: Fix warning on unbind if reset is not deasserted
+    - platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2
+    - bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp
+    - net/mlx5e: Enforce minimum value check for ICOSQ size
+    - net: pxa168_eth: Fix a potential data race in pxa168_eth_remove
+    - mISDN: fix crash in fritzpci
+    - mac80211: choose first enabled channel for monitor
+    - drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs
+    - drm/msm: Ratelimit invalid-fence message
+    - netfilter: conntrack: Fix gre tunneling over ipv6
+    - platform/x86: thinkpad_acpi: Allow the FnLock LED to change state
+    - x86/build: Turn off -fcf-protection for realmode targets
+    - scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
+    - ia64: mca: allocate early mca with GFP_ATOMIC
+    - ia64: fix format strings for err_inject
+    - cifs: revalidate mapping when we open files for SMB1 POSIX
+    - cifs: Silently ignore unknown oplock break handle
+    - nvme-mpath: replace direct_make_request with generic_make_request
+    - init/Kconfig: make COMPILE_TEST depend on !S390
+    - init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
+    - Linux 5.4.111
+
+  * Focal update: v5.4.110 upstream stable release (LP: #1923869)
+    - selinux: vsock: Set SID for socket returned by accept()
+    - ipv6: weaken the v4mapped source check
+    - modsign: print module name along with error message
+    - module: merge repetitive strings in module_sig_check()
+    - module: avoid *goto*s in module_sig_check()
+    - module: harden ELF info handling
+    - ext4: shrink race window in ext4_should_retry_alloc()
+    - ext4: fix bh ref count on error paths
+    - fs: nfsd: fix kconfig dependency warning for NFSD_V4
+    - rpc: fix NULL dereference on kmalloc failure
+    - iomap: Fix negative assignment to unsigned sis->pages in
+      iomap_swapfile_activate
+    - ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
+    - ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10
+    - ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe
+    - ASoC: es8316: Simplify adc_pga_gain_tlv table
+    - ASoC: cs42l42: Fix Bitclock polarity inversion
+    - ASoC: cs42l42: Fix channel width support
+    - ASoC: cs42l42: Fix mixer volume control
+    - ASoC: cs42l42: Always wait at least 3ms after reset
+    - NFSD: fix error handling in NFSv4.0 callbacks
+    - powerpc: Force inlining of cpu_has_feature() to avoid build failure
+    - vhost: Fix vhost_vq_reset()
+    - scsi: st: Fix a use after free in st_open()
+    - scsi: qla2xxx: Fix broken #endif placement
+    - staging: comedi: cb_pcidas: fix request_irq() warn
+    - staging: comedi: cb_pcidas64: fix request_irq() warn
+    - ASoC: rt5659: Update MCLK rate in set_sysclk()
+    - thermal/core: Add NULL pointer check before using cooling device stats
+    - locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
+    - ext4: do not iput inode under running transaction in ext4_rename()
+    - net: mvpp2: fix interrupt mask/unmask skip condition
+    - flow_dissector: fix TTL and TOS dissection on IPv4 fragments
+    - can: dev: move driver related infrastructure into separate subdir
+    - net: introduce CAN specific pointer in the struct net_device
+    - can: tcan4x5x: fix max register value
+    - brcmfmac: clear EAP/association status bits on linkdown events
+    - ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
+    - net: ethernet: aquantia: Handle error cleanup of start on open
+    - appletalk: Fix skb allocation size in loopback case
+    - net: wan/lmc: unregister device when no matching device is found
+    - bpf: Remove MTU check in __bpf_skb_max_len
+    - ALSA: usb-audio: Apply sample rate quirk to Logitech Connect
+    - ALSA: hda: Re-add dropped snd_poewr_change_state() calls
+    - ALSA: hda: Add missing sanity checks in PM prepare/complete callbacks
+    - ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
+    - ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook
+    - xtensa: move coprocessor_flush to the .text section
+    - PM: runtime: Fix race getting/putting suppliers at probe
+    - PM: runtime: Fix ordering in pm_runtime_get_suppliers()
+    - tracing: Fix stack trace event size
+    - mm: fix race by making init_zero_pfn() early_initcall
+    - drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()
+    - drm/amdgpu: check alignment on CPU page for bo map
+    - reiserfs: update reiserfs_xattrs_initialized() condition
+    - vfio/nvlink: Add missing SPAPR_TCE_IOMMU depends
+    - pinctrl: rockchip: fix restore error in resume
+    - extcon: Add stubs for extcon_register_notifier_all() functions
+    - extcon: Fix error handling in extcon_dev_register
+    - firewire: nosy: Fix a use-after-free bug in nosy_ioctl()
+    - usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()
+    - USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
+    - usb: musb: Fix suspend with devices connected for a64
+    - usb: xhci-mtk: fix broken streams issue on 0.96 xHCI
+    - cdc-acm: fix BREAK rx code path adding necessary calls
+    - USB: cdc-acm: untangle a circular dependency between callback and softint
+    - USB: cdc-acm: downgrade message to debug
+    - USB: cdc-acm: fix double free on probe failure
+    - USB: cdc-acm: fix use-after-free after probe failure
+    - usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference
+    - usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
+    - usb: dwc2: Prevent core suspend when port connection flag is 0
+    - staging: rtl8192e: Fix incorrect source in memcpy()
+    - staging: rtl8192e: Change state information from u16 to u8
+    - drivers: video: fbcon: fix NULL dereference in fbcon_cursor()
+    - Linux 5.4.110
+
+  * Focal update: v5.4.109 upstream stable release (LP: #1923220)
+    - hugetlbfs: hugetlb_fault_mutex_hash() cleanup
+    - net: fec: ptp: avoid register access when ipg clock is disabled
+    - powerpc/4xx: Fix build errors from mfdcr()
+    - atm: eni: dont release is never initialized
+    - atm: lanai: dont run lanai_dev_close if not open
+    - Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
+    - ALSA: hda: ignore invalid NHLT table
+    - ixgbe: Fix memleak in ixgbe_configure_clsu32
+    - net: tehuti: fix error return code in bdx_probe()
+    - net: intel: iavf: fix error return code of iavf_init_get_resources()
+    - sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
+    - gianfar: fix jumbo packets+napi+rx overrun crash
+    - cifs: ask for more credit on async read/write code paths
+    - cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev
+    - gpiolib: acpi: Add missing IRQF_ONESHOT
+    - nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
+    - NFS: Correct size calculation for create reply length
+    - net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
+    - net: wan: fix error return code of uhdlc_init()
+    - net: davicom: Use platform_get_irq_optional()
+    - atm: uPD98402: fix incorrect allocation
+    - atm: idt77252: fix null-ptr-dereference
+    - cifs: change noisy error message to FYI
+    - irqchip/ingenic: Add support for the JZ4760
+    - sparc64: Fix opcode filtering in handling of no fault loads
+    - habanalabs: Call put_pid() when releasing control device
+    - u64_stats,lockdep: Fix u64_stats_init() vs lockdep
+    - regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
+    - drm/amd/display: Revert dram_clock_change_latency for DCN2.1
+    - drm/amdgpu: fb BO should be ttm_bo_type_device
+    - drm/radeon: fix AGP dependency
+    - nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
+    - nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted
+    - nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a
+    - nfs: we don't support removing system.nfs4_acl
+    - block: Suppress uevent for hidden device when removed
+    - ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
+    - ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
+    - netsec: restore phy power state after controller reset
+    - platform/x86: intel-vbtn: Stop reporting SW_DOCK events
+    - squashfs: fix inode lookup sanity checks
+    - squashfs: fix xattr id and id lookup sanity checks
+    - kasan: fix per-page tags for non-page_alloc pages
+    - gcov: fix clang-11+ support
+    - ACPI: video: Add missing callback back for Sony VPCEH3U1E
+    - arm64: dts: ls1046a: mark crypto engine dma coherent
+    - arm64: dts: ls1012a: mark crypto engine dma coherent
+    - arm64: dts: ls1043a: mark crypto engine dma coherent
+    - ARM: dts: at91-sama5d27_som1: fix phy address to 7
+    - integrity: double check iint_cache was initialized
+    - dm verity: fix DM_VERITY_OPTS_MAX value
+    - dm ioctl: fix out of bounds array access when no devices
+    - bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
+    - veth: Store queue_mapping independently of XDP prog presence
+    - libbpf: Fix INSTALL flag order
+    - net/mlx5e: Don't match on Geneve options in case option masks are all zero
+    - ipv6: fix suspecious RCU usage warning
+    - macvlan: macvlan_count_rx() needs to be aware of preemption
+    - net: sched: validate stab values
+    - net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
+    - igc: Fix Pause Frame Advertising
+    - igc: Fix Supported Pause Frame Link Setting
+    - e1000e: add rtnl_lock() to e1000_reset_task
+    - e1000e: Fix error handling in e1000_set_d0_lplu_state_82571
+    - net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template
+    - ftgmac100: Restart MAC HW once
+    - selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed
+    - netfilter: ctnetlink: fix dump of the expect mask attribute
+    - tcp: relookup sock for RST+ACK packets handled by obsolete req sock
+    - can: peak_usb: add forgotten supported devices
+    - can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate
+    - can: kvaser_pciefd: Always disable bus load reporting
+    - can: c_can_pci: c_can_pci_remove(): fix use-after-free
+    - can: c_can: move runtime PM enable/disable to c_can_platform
+    - can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
+    - can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors
+    - mac80211: fix rate mask reset
+    - nfp: flower: fix pre_tun mask id allocation
+    - libbpf: Use SOCK_CLOEXEC when opening the netlink socket
+    - octeontx2-af: Fix irq free in rvu teardown
+    - octeontx2-af: fix infinite loop in unmapping NPC counter
+    - net: cdc-phonet: fix data-interface release on probe failure
+    - r8152: limit the RX buffer size of RTL8153A for USB 2.0
+    - net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes
+    - selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value
+    - libbpf: Fix BTF dump of pointer-to-array-of-struct
+    - drm/msm: fix shutdown hook in case GPU components failed to bind
+    - arm64: kdump: update ppos when reading elfcorehdr
+    - PM: runtime: Defer suspending suppliers
+    - net/mlx5e: Fix error path for ethtool set-priv-flag
+    - PM: EM: postpone creating the debugfs dir till fs_initcall
+    - RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening
+      server
+    - bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs
+    - ACPI: scan: Rearrange memory allocation in acpi_device_add()
+    - ACPI: scan: Use unique number for instance_no
+    - perf auxtrace: Fix auxtrace queue conflict
+    - block: recalculate segment count for multi-segment discards correctly
+    - scsi: Revert "qla2xxx: Make sure that aborted commands are freed"
+    - scsi: qedi: Fix error return code of qedi_alloc_global_queues()
+    - scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()
+    - locking/mutex: Fix non debug version of mutex_lock_io_nested()
+    - x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc()
+    - can: dev: Move device back to init netns on owning netns delete
+    - net: dsa: b53: VLAN filtering is global to all users
+    - net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
+    - mac80211: fix double free in ibss_leave
+    - ext4: add reclaim checks to xattr code
+    - can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"
+    - xen-blkback: don't leak persistent grants from xen_blkbk_map()
+    - Linux 5.4.109
+
+  * Focal update: v5.4.108 upstream stable release (LP: #1923214)
+    - ASoC: ak4458: Add MODULE_DEVICE_TABLE
+    - ASoC: ak5558: Add MODULE_DEVICE_TABLE
+    - ALSA: dice: fix null pointer dereference when node is disconnected
+    - ALSA: hda/realtek: apply pin quirk for XiaomiNotebook Pro
+    - ALSA: hda: generic: Fix the micmute led init state
+    - ALSA: hda/realtek: Apply headset-mic quirks for Xiaomi Redmibook Air
+    - Revert "PM: runtime: Update device status before letting suppliers suspend"
+    - ARM: 9030/1: entry: omit FP emulation for UND exceptions taken in kernel
+      mode
+    - ARM: 9044/1: vfp: use undef hook for VFP support detection
+    - btrfs: fix race when cloning extent buffer during rewind of an old root
+    - btrfs: fix slab cache flags for free space tree bitmap
+    - ASoC: fsl_ssi: Fix TDM slot setup for I2S mode
+    - ASoC: SOF: Intel: unregister DMIC device on probe error
+    - ASoC: SOF: intel: fix wrong poll bits in dsp power down
+    - ASoC: simple-card-utils: Do not handle device clock
+    - afs: Stop listxattr() from listing "afs.*" attributes
+    - nvme: fix Write Zeroes limitations
+    - nvme-tcp: fix possible hang when failing to set io queues
+    - nvme-tcp: fix a NULL deref when receiving a 0-length r2t PDU
+    - nvmet: don't check iosqes,iocqes for discovery controllers
+    - nfsd: Don't keep looking up unhashed files in the nfsd file cache
+    - NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
+    - svcrdma: disable timeouts on rdma backchannel
+    - vfio: IOMMU_API should be selected
+    - sunrpc: fix refcount leak for rpc auth modules
+    - net/qrtr: fix __netdev_alloc_skb call
+    - kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again
+    - riscv: Correct SPARSEMEM configuration
+    - scsi: lpfc: Fix some error codes in debugfs
+    - scsi: myrs: Fix a double free in myrs_cleanup()
+    - counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED
+    - nvme-rdma: fix possible hang when failing to set io queues
+    - usb-storage: Add quirk to defeat Kindle's automatic unload
+    - usbip: Fix incorrect double assignment to udc->ud.tcp_rx
+    - USB: replace hardcode maximum usb string length by definition
+    - usb: gadget: configfs: Fix KASAN use-after-free
+    - usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy-
+    - iio:adc:stm32-adc: Add HAS_IOMEM dependency
+    - iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel
+    - iio: adis16400: Fix an error code in adis16400_initial_setup()
+    - iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler
+    - iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask
+    - iio: hid-sensor-humidity: Fix alignment issue of timestamp channel
+    - iio: hid-sensor-prox: Fix scale not correct issue
+    - iio: hid-sensor-temperature: Fix issues of timestamp channel
+    - counter: stm32-timer-cnt: fix ceiling write max value
+    - PCI: rpadlpar: Fix potential drc_name corruption in store functions
+    - perf/x86/intel: Fix a crash caused by zero PEBS status
+    - x86/ioapic: Ignore IRQ2 again
+    - kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data()
+    - x86: Move TS_COMPAT back to asm/thread_info.h
+    - x86: Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall()
+    - ext4: find old entry again if failed to rename whiteout
+    - ext4: do not try to set xattr into ea_inode if value is empty
+    - ext4: fix potential error in ext4_do_update_inode
+    - efi: use 32-bit alignment for efi_guid_t literals
+    - firmware/efi: Fix a use after bug in efi_mem_reserve_persistent
+    - genirq: Disable interrupts for force threaded handlers
+    - x86/apic/of: Fix CPU devicetree-node lookups
+    - cifs: Fix preauth hash corruption
+    - Linux 5.4.108
+
+  * Focal update: v5.4.107 upstream stable release (LP: #1923210)
+    - KVM: arm64: nvhe: Save the SPE context early
+    - btrfs: scrub: Don't check free space before marking a block group RO
+    - drm/i915/gvt: Set SNOOP for PAT3 on BXT/APL to workaround GPU BB hang
+    - drm/i915/gvt: Fix mmio handler break on BXT/APL.
+    - drm/i915/gvt: Fix virtual display setup for BXT/APL
+    - drm/i915/gvt: Fix port number for BDW on EDID region setup
+    - drm/i915/gvt: Fix vfio_edid issue for BXT/APL
+    - fuse: fix live lock in fuse_iget()
+    - crypto: x86 - Regularize glue function prototypes
+    - crypto: aesni - Use TEST %reg,%reg instead of CMP $0,%reg
+    - crypto: x86/aes-ni-xts - use direct calls to and 4-way stride
+    - net: dsa: tag_mtk: fix 802.1ad VLAN egress
+    - net: dsa: b53: Support setting learning on port
+    - Linux 5.4.107
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Fri, 07 May 2021 18:45:05 -0600
+
+linux (5.4.0-73.82) focal; urgency=medium
+
+  * focal/linux: 5.4.0-73.82 -proposed tracker (LP: #1923781)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * CIFS DFS entries not accessible with 5.4.0-71.74-generic (LP: #1923670)
+    - Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting
+      cifs_sb->prepath."
+
+  * CVE-2021-29650
+    - Revert "netfilter: x_tables: Update remaining dereference to RCU"
+    - Revert "netfilter: x_tables: Switch synchronization to RCU"
+    - netfilter: x_tables: Use correct memory barriers.
+
+  * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key
+    (LP: #1918134)
+    - [Packaging] dkms-build{,--nvidia-N} sync back from LRMv4
+
+  * 5.4 kernel: when iommu is on crashdump fails (LP: #1922738)
+    - iommu/vt-d: Refactor find_domain() helper
+    - iommu/vt-d: Add attach_deferred() helper
+    - iommu/vt-d: Move deferred device attachment into helper function
+    - iommu/vt-d: Do deferred attachment in iommu_need_mapping()
+    - iommu/vt-d: Remove deferred_attach_domain()
+    - iommu/vt-d: Simplify check in identity_mapping()
+
+  * Backport mlx5e fix for tunnel offload (LP: #1921769)
+    - net/mlx5e: Check tunnel offload is required before setting SWP
+
+  * Bcache bypasse writeback on caching device with fragmentation (LP: #1900438)
+    - bcache: consider the fragmentation when update the writeback rate
+
+  * Fix implicit declaration warnings for kselftests/memfd test on newer
+    releases (LP: #1910323)
+    - selftests/memfd: Fix implicit declaration warnings
+
+  * net/mlx5e: Add missing capability check for uplink follow (LP: #1921104)
+    - net/mlx5e: Add missing capability check for uplink follow
+
+  * [UBUNUT 21.04] s390/vtime: fix increased steal time accounting
+    (LP: #1921498)
+    - s390/vtime: fix increased steal time accounting
+
+  * Mute/Mic-mute LEDs are not work on HP 850/840/440 G8 Laptops (LP: #1920030)
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8
+    - ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8
+
+  * Focal update: v5.4.106 upstream stable release (LP: #1920246)
+    - uapi: nfnetlink_cthelper.h: fix userspace compilation error
+    - powerpc/pseries: Don't enforce MSI affinity with kdump
+    - ath9k: fix transmitting to stations in dynamic SMPS mode
+    - net: Fix gro aggregation for udp encaps with zero csum
+    - net: check if protocol extracted by virtio_net_hdr_set_proto is correct
+    - net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0
+    - sh_eth: fix TRSCER mask for SH771x
+    - can: skb: can_skb_set_owner(): fix ref counting if socket was closed before
+      setting skb ownership
+    - can: flexcan: assert FRZ bit in flexcan_chip_freeze()
+    - can: flexcan: enable RX FIFO after FRZ/HALT valid
+    - can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode
+    - can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before
+      entering Normal Mode
+    - tcp: add sanity tests to TCP_QUEUE_SEQ
+    - netfilter: nf_nat: undo erroneous tcp edemux lookup
+    - netfilter: x_tables: gpf inside xt_find_revision()
+    - selftests/bpf: No need to drop the packet when there is no geneve opt
+    - selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier
+    - samples, bpf: Add missing munmap in xdpsock
+    - ibmvnic: always store valid MAC address
+    - mt76: dma: do not report truncated frames to mac80211
+    - powerpc/603: Fix protection of user pages mapped with PROT_NONE
+    - mount: fix mounting of detached mounts onto targets that reside on shared
+      mounts
+    - cifs: return proper error code in statfs(2)
+    - Revert "mm, slub: consider rest of partial list if acquire_slab() fails"
+    - net: enetc: don't overwrite the RSS indirection table when initializing
+    - net/mlx4_en: update moderation when config reset
+    - net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10
+    - nexthop: Do not flush blackhole nexthops when loopback goes down
+    - net: sched: avoid duplicates in classes dump
+    - net: usb: qmi_wwan: allow qmimux add/del with master up
+    - netdevsim: init u64 stats for 32bit hardware
+    - cipso,calipso: resolve a number of problems with the DOI refcounts
+    - net: lapbether: Remove netif_start_queue / netif_stop_queue
+    - net: davicom: Fix regulator not turned off on failed probe
+    - net: davicom: Fix regulator not turned off on driver removal
+    - net: qrtr: fix error return code of qrtr_sendmsg()
+    - ixgbe: fail to create xfrm offload of IPsec tunnel mode SA
+    - net: stmmac: stop each tx channel independently
+    - net: stmmac: fix watchdog timeout during suspend/resume stress test
+    - selftests: forwarding: Fix race condition in mirror installation
+    - perf traceevent: Ensure read cmdlines are null terminated.
+    - net: hns3: fix query vlan mask value error for flow director
+    - net: hns3: fix bug when calculating the TCAM table info
+    - s390/cio: return -EFAULT if copy_to_user() fails again
+    - bnxt_en: reliably allocate IRQ table on reset to avoid crash
+    - drm/compat: Clear bounce structures
+    - drm/shmem-helper: Check for purged buffers in fault handler
+    - drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
+    - drm: meson_drv add shutdown function
+    - s390/cio: return -EFAULT if copy_to_user() fails
+    - s390/crypto: return -EFAULT if copy_to_user() fails
+    - qxl: Fix uninitialised struct field head.surface_id
+    - sh_eth: fix TRSCER mask for R7S9210
+    - media: usbtv: Fix deadlock on suspend
+    - media: v4l: vsp1: Fix uif null pointer access
+    - media: v4l: vsp1: Fix bru null pointer access
+    - media: rc: compile rc-cec.c into rc-core
+    - [Config] update abi for rc-cec
+    - net: hns3: fix error mask definition of flow director
+    - net: enetc: initialize RFS/RSS memories for unused ports too
+    - net: phy: fix save wrong speed and duplex problem if autoneg is on
+    - i2c: rcar: faster irq code to minimize HW race condition
+    - i2c: rcar: optimize cacheline to minimize HW race condition
+    - udf: fix silent AED tagLocation corruption
+    - mmc: mxs-mmc: Fix a resource leak in an error handling path in
+      'mxs_mmc_probe()'
+    - mmc: mediatek: fix race condition between msdc_request_timeout and irq
+    - Platform: OLPC: Fix probe error handling
+    - powerpc/pci: Add ppc_md.discover_phbs()
+    - spi: stm32: make spurious and overrun interrupts visible
+    - powerpc: improve handling of unrecoverable system reset
+    - powerpc/perf: Record counter overflow always if SAMPLE_IP is unset
+    - HID: logitech-dj: add support for the new lightspeed connection iteration
+    - powerpc/64: Fix stack trace not displaying final frame
+    - iommu/amd: Fix performance counter initialization
+    - sparc32: Limit memblock allocation to low memory
+    - sparc64: Use arch_validate_flags() to validate ADI flag
+    - Input: applespi - don't wait for responses to commands indefinitely.
+    - PCI: xgene-msi: Fix race in installing chained irq handler
+    - PCI: mediatek: Add missing of_node_put() to fix reference leak
+    - kbuild: clamp SUBLEVEL to 255
+    - PCI: Fix pci_register_io_range() memory leak
+    - i40e: Fix memory leak in i40e_probe
+    - s390/smp: __smp_rescan_cpus() - move cpumask away from stack
+    - sysctl.c: fix underflow value setting risk in vm_table
+    - scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
+    - scsi: target: core: Add cmd length set before cmd complete
+    - scsi: target: core: Prevent underflow for service actions
+    - ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk
+    - ALSA: hda/hdmi: Cancel pending works before suspend
+    - ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support
+    - ALSA: hda: Drop the BATCH workaround for AMD controllers
+    - ALSA: hda: Flush pending unsolicited events before suspend
+    - ALSA: hda: Avoid spurious unsol event handling during S3/S4
+    - ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar
+    - ALSA: usb-audio: Apply the control quirk to Plantronics headsets
+    - Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file
+      capabilities")
+    - arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
+    - s390/dasd: fix hanging DASD driver unbind
+    - s390/dasd: fix hanging IO request during DASD driver unbind
+    - software node: Fix node registration
+    - mmc: core: Fix partition switch time for eMMC
+    - mmc: cqhci: Fix random crash when remove mmc module/card
+    - Goodix Fingerprint device is not a modem
+    - USB: gadget: u_ether: Fix a configfs return code
+    - usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio
+      slot
+    - usb: gadget: f_uac1: stop playback on function disable
+    - usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement
+    - usb: dwc3: qcom: Honor wakeup enabled/disabled state
+    - USB: usblp: fix a hang in poll() if disconnected
+    - usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM
+    - usb: xhci: do not perform Soft Retry for some xHCI hosts
+    - xhci: Improve detection of device initiated wake signal.
+    - usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing
+    - xhci: Fix repeated xhci wake after suspend due to uncleared internal wake
+      state
+    - USB: serial: io_edgeport: fix memory leak in edge_startup
+    - USB: serial: ch341: add new Product ID
+    - USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter
+    - USB: serial: cp210x: add some more GE USB IDs
+    - usbip: fix stub_dev to check for stream socket
+    - usbip: fix vhci_hcd to check for stream socket
+    - usbip: fix vudc to check for stream socket
+    - usbip: fix stub_dev usbip_sockfd_store() races leading to gpf
+    - usbip: fix vhci_hcd attach_store() races leading to gpf
+    - usbip: fix vudc usbip_sockfd_store races leading to gpf
+    - misc/pvpanic: Export module FDT device table
+    - misc: fastrpc: restrict user apps from sending kernel RPC messages
+    - staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
+    - staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
+    - staging: rtl8712: unterminated string leads to read overflow
+    - staging: rtl8188eu: fix potential memory corruption in
+      rtw_check_beacon_data()
+    - staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
+    - staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
+    - staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan
+    - staging: comedi: addi_apci_1032: Fix endian problem for COS sample
+    - staging: comedi: addi_apci_1500: Fix endian problem for command sample
+    - staging: comedi: adv_pci1710: Fix endian problem for AI command data
+    - staging: comedi: das6402: Fix endian problem for AI command data
+    - staging: comedi: das800: Fix endian problem for AI command data
+    - staging: comedi: dmm32at: Fix endian problem for AI command data
+    - staging: comedi: me4000: Fix endian problem for AI command data
+    - staging: comedi: pcl711: Fix endian problem for AI command data
+    - staging: comedi: pcl818: Fix endian problem for AI command data
+    - sh_eth: fix TRSCER mask for R7S72100
+    - arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
+    - SUNRPC: Set memalloc_nofs_save() for sync tasks
+    - NFS: Don't revalidate the directory permissions on a lookup failure
+    - NFS: Don't gratuitously clear the inode cache when lookup failed
+    - NFSv4.2: fix return value of _nfs4_get_security_label()
+    - block: rsxx: fix error return code of rsxx_pci_probe()
+    - configfs: fix a use-after-free in __configfs_open_file
+    - arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
+    - hrtimer: Update softirq_expires_next correctly after
+      __hrtimer_get_next_event()
+    - stop_machine: mark helpers __always_inline
+    - include/linux/sched/mm.h: use rcu_dereference in in_vfork()
+    - zram: fix return value on writeback_store
+    - sched/membarrier: fix missing local execution of ipi_sync_rq_state()
+    - powerpc/64s: Fix instruction encoding for lis in ppc_function_entry()
+    - binfmt_misc: fix possible deadlock in bm_register_write
+    - x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2
+    - KVM: arm64: Fix exclusive limit for IPA size
+    - nvme: unlink head after removing last namespace
+    - nvme: release namespace head reference on error
+    - KVM: arm64: Ensure I-cache isolation between vcpus of a same VM
+    - KVM: arm64: Reject VM creation when the default IPA size is unsupported
+    - xen/events: reset affinity of 2-level event when tearing it down
+    - xen/events: don't unmask an event channel when an eoi is pending
+    - xen/events: avoid handling the same event on two cpus at the same time
+    - Linux 5.4.106
+
+  * Focal update: v5.4.105 upstream stable release (LP: #1920244)
+    - net: dsa: add GRO support via gro_cells
+    - dm table: fix iterate_devices based device capability checks
+    - dm table: fix DAX iterate_devices based device capability checks
+    - dm table: fix zoned iterate_devices based device capability checks
+    - ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter
+      handling
+    - iommu/amd: Fix sleeping in atomic in increase_address_space()
+    - mwifiex: pcie: skip cancel_work_sync() on reset failure path
+    - platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
+    - platform/x86: acer-wmi: Cleanup accelerometer device handling
+    - platform/x86: acer-wmi: Add new force_caps module parameter
+    - platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
+    - platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
+    - platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch
+      10E SW3-016
+    - HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
+    - media: cx23885: add more quirks for reset DMA on some AMD IOMMU
+    - ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
+    - ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
+    - PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
+    - misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
+    - drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
+    - mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo
+      Winpad A15
+    - nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
+    - nvme-pci: add quirks for Lexar 256GB SSD
+    - Linux 5.4.105
+
+  * Focal update: v5.4.104 upstream stable release (LP: #1920238)
+    - tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality()
+    - tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality()
+    - btrfs: raid56: simplify tracking of Q stripe presence
+    - btrfs: fix raid6 qstripe kmap
+    - btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
+    - btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
+    - btrfs: unlock extents in btrfs_zero_range in case of quota reservation
+      errors
+    - btrfs: fix warning when creating a directory with smack enabled
+    - PM: runtime: Update device status before letting suppliers suspend
+    - dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
+    - dm verity: fix FEC for RS roots unaligned to block size
+    - drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie
+    - arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
+    - crypto - shash: reduce minimum alignment of shash_desc structure
+    - usbip: tools: fix build error for multiple definition
+    - ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits
+    - RDMA/rxe: Fix missing kconfig dependency on CRYPTO
+    - IB/mlx5: Add missing error code
+    - ALSA: hda: intel-nhlt: verify config type
+    - ftrace: Have recordmcount use w8 to read relp->r_info in
+      arm64_is_fake_mcount
+    - rsxx: Return -EFAULT if copy_to_user() fails
+    - r8169: fix resuming from suspend on RTL8105e if machine runs on battery
+    - Linux 5.4.104
+
+  * Focal update: v5.4.103 upstream stable release (LP: #1920235)
+    - net: usb: qmi_wwan: support ZTE P685M modem
+    - nvme-pci: refactor nvme_unmap_data
+    - nvme-pci: fix error unwind in nvme_map_data
+    - arm64 module: set plt* section addresses to 0x0
+    - MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target='
+    - JFS: more checks for invalid superblock
+    - udlfb: Fix memory leak in dlfb_usb_probe
+    - media: mceusb: sanity check for prescaler value
+    - erofs: fix shift-out-of-bounds of blkszbits
+    - media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate
+    - xfs: Fix assert failure in xfs_setattr_size()
+    - net/af_iucv: remove WARN_ONCE on malformed RX packets
+    - smackfs: restrict bytes count in smackfs write functions
+    - net: fix up truesize of cloned skb in skb_prepare_for_shift()
+    - nbd: handle device refs for DESTROY_ON_DISCONNECT properly
+    - mm/hugetlb.c: fix unnecessary address expansion of pmd sharing
+    - net: bridge: use switchdev for port flags set through sysfs too
+    - net: ag71xx: remove unnecessary MTU reservation
+    - net: fix dev_ifsioc_locked() race condition
+    - dt-bindings: ethernet-controller: fix fixed-link specification
+    - dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/
+    - MIPS: Drop 32-bit asm string functions
+    - drm/virtio: use kvmalloc for large allocations
+    - rsi: Fix TX EAPOL packet handling against iwlwifi AP
+    - rsi: Move card interrupt handling to RX thread
+    - staging: fwserial: Fix error handling in fwserial_create
+    - x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk
+    - vt/consolemap: do font sum unsigned
+    - wlcore: Fix command execute failure 19 for wl12xx
+    - Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl
+    - pktgen: fix misuse of BUG_ON() in pktgen_thread_worker()
+    - ath10k: fix wmi mgmt tx queue full due to race condition
+    - x86/build: Treat R_386_PLT32 relocation as R_386_PC32
+    - Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data
+    - staging: most: sound: add sanity check for function argument
+    - staging: bcm2835-audio: Replace unsafe strcpy() with strscpy()
+    - brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet
+    - brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet
+    - drm/hisilicon: Fix use-after-free
+    - crypto: tcrypt - avoid signed overflow in byte count
+    - drm/amdgpu: Add check to prevent IH overflow
+    - PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
+    - drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails
+    - media: uvcvideo: Allow entities with no pads
+    - f2fs: handle unallocated section and zone on pinned/atgc
+    - f2fs: fix to set/clear I_LINKABLE under i_lock
+    - nvme-core: add cancel tagset helpers
+    - nvme-rdma: add clean action for failed reconnection
+    - nvme-tcp: add clean action for failed reconnection
+    - ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr()
+    - btrfs: fix error handling in commit_fs_roots
+    - perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
+    - parisc: Bump 64-bit IRQ stack size to 64 KB
+    - sched/features: Fix hrtick reprogramming
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R
+      tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet
+    - ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet
+    - Xen/gnttab: handle p2m update errors on a per-slot basis
+    - xen-netback: respect gnttab_map_refs()'s return value
+    - zsmalloc: account the number of compacted pages correctly
+    - swap: fix swapfile read/write offset
+    - media: v4l: ioctl: Fix memory leak in video_usercopy
+    - ALSA: hda/realtek: Add quirk for Clevo NH55RZQ
+    - ALSA: hda/realtek: Add quirk for Intel NUC 10
+    - ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board
+    - Linux 5.4.103
+
+  * Focal update: v5.4.102 upstream stable release (LP: #1918974)
+    - vmlinux.lds.h: add DWARF v5 sections
+    - kvm: x86: replace kvm_spec_ctrl_test_value with runtime test on the host
+    - debugfs: be more robust at handling improper input in debugfs_lookup()
+    - debugfs: do not attempt to create a new file before the filesystem is
+      initalized
+    - kdb: Make memory allocations more robust
+    - PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
+    - PCI: Decline to resize resources if boot config must be preserved
+    - virt: vbox: Do not use wait_event_interruptible when called from kernel
+      context
+    - bfq: Avoid false bfq queue merging
+    - ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
+    - MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
+    - random: fix the RNDRESEEDCRNG ioctl
+    - ath10k: Fix error handling in case of CE pipe init failure
+    - Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the
+      probe function
+    - Bluetooth: hci_uart: Fix a race for write_work scheduling
+    - Bluetooth: Fix initializing response id after clearing struct
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Monk
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on TM2
+    - arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
+    - memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops
+    - bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h
+    - bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args
+    - arm64: dts: allwinner: A64: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: H6: properly connect USB PHY to port 0
+    - arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card
+    - arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency
+    - arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
+    - cpufreq: brcmstb-avs-cpufreq: Free resources in error path
+    - cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
+    - ACPICA: Fix exception code class checks
+    - usb: gadget: u_audio: Free requests only after callback
+    - Bluetooth: drop HCI device reference before return
+    - Bluetooth: Put HCI device if inquiry procedure interrupts
+    - memory: ti-aemif: Drop child node when jumping out loop
+    - ARM: dts: Configure missing thermal interrupt for 4430
+    - usb: dwc2: Do not update data length if it is 0 on inbound transfers
+    - usb: dwc2: Abort transaction after errors with unknown reason
+    - usb: dwc2: Make "trimming xfer length" a debug message
+    - staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules
+    - ARM: dts: armada388-helios4: assign pinctrl to LEDs
+    - ARM: dts: armada388-helios4: assign pinctrl to each fan
+    - arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to
+      a53-firmware
+    - Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv
+    - arm64: dts: msm8916: Fix reserved and rfsa nodes unit address
+    - ARM: s3c: fix fiq for clang IAS
+    - soc: aspeed: snoop: Add clock control logic
+    - bpf_lru_list: Read double-checked variable once without lock
+    - ath9k: fix data bus crash when setting nf_override via debugfs
+    - ibmvnic: Set to CLOSED state even on error
+    - bnxt_en: reverse order of TX disable and carrier off
+    - xen/netback: fix spurious event detection for common event case
+    - mac80211: fix potential overflow when multiplying to u32 integers
+    - bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
+    - tcp: fix SO_RCVLOWAT related hangs under mem pressure
+    - net: axienet: Handle deferred probe on clock properly
+    - cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4
+      and ulds
+    - b43: N-PHY: Fix the update of coef for the PHY revision >= 3case
+    - ibmvnic: add memory barrier to protect long term buffer
+    - ibmvnic: skip send_request_unmap for timeout reset
+    - net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout
+    - net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning
+    - net: amd-xgbe: Reset link when the link never comes back
+    - net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP
+    - net: mvneta: Remove per-cpu queue mapping for Armada 3700
+    - fbdev: aty: SPARC64 requires FB_ATY_CT
+    - drm/gma500: Fix error return code in psb_driver_load()
+    - gma500: clean up error handling in init
+    - drm/fb-helper: Add missed unlocks in setcmap_legacy()
+    - crypto: sun4i-ss - linearize buffers content must be kept
+    - crypto: sun4i-ss - fix kmap usage
+    - crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled
+    - drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition
+    - MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
+    - MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
+    - media: i2c: ov5670: Fix PIXEL_RATE minimum value
+    - media: imx: Unregister csc/scaler only if registered
+    - media: imx: Fix csc/scaler unregister
+    - media: camss: missing error code in msm_video_register()
+    - media: vsp1: Fix an error handling path in the probe function
+    - media: em28xx: Fix use-after-free in em28xx_alloc_urbs
+    - media: media/pci: Fix memleak in empress_init
+    - media: tm6000: Fix memleak in tm6000_start_stream
+    - media: aspeed: fix error return code in aspeed_video_setup_video()
+    - ASoC: cs42l56: fix up error handling in probe
+    - evm: Fix memleak in init_desc
+    - crypto: bcm - Rename struct device_private to bcm_device_private
+    - drm/sun4i: tcon: fix inverted DCLK polarity
+    - MIPS: properly stop .eh_frame generation
+    - bsg: free the request before return error code
+    - drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction.
+    - drm/amd/display: Fix HDMI deep color output for DCE 6-11.
+    - media: software_node: Fix refcounts in software_node_get_next_child()
+    - media: lmedm04: Fix misuse of comma
+    - media: qm1d1c0042: fix error return code in qm1d1c0042_init()
+    - media: cx25821: Fix a bug when reallocating some dma memory
+    - media: pxa_camera: declare variable when DEBUG is defined
+    - media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
+    - sched/eas: Don't update misfit status if the task is pinned
+    - mtd: parser: imagetag: fix error codes in
+      bcm963xx_parse_imagetag_partitions()
+    - crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error)
+    - drm/nouveau: bail out of nouveau_channel_new if channel init fails
+    - ata: ahci_brcm: Add back regulators management
+    - ASoC: cpcap: fix microphone timeslot mask
+    - mtd: parsers: afs: Fix freeing the part name memory in failure
+    - f2fs: fix to avoid inconsistent quota data
+    - drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
+    - f2fs: fix a wrong condition in __submit_bio
+    - Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind()
+    - ASoC: SOF: debug: Fix a potential issue on string buffer termination
+    - btrfs: clarify error returns values in __load_free_space_cache
+    - hwrng: timeriomem - Fix cooldown period calculation
+    - crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
+    - ima: Free IMA measurement buffer on error
+    - ima: Free IMA measurement buffer after kexec syscall
+    - ASoC: simple-card-utils: Fix device module clock
+    - fs/jfs: fix potential integer overflow on shift of a int
+    - jffs2: fix use after free in jffs2_sum_write_data()
+    - ubifs: Fix memleak in ubifs_init_authentication
+    - ubifs: Fix error return code in alloc_wbufs()
+    - capabilities: Don't allow writing ambiguous v3 file capabilities
+    - HSI: Fix PM usage counter unbalance in ssi_hw_init
+    - clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
+    - clk: meson: clk-pll: make "ret" a signed integer
+    - clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate()
+    - quota: Fix memory leak when handling corrupted quota file
+    - i2c: iproc: handle only slave interrupts which are enabled
+    - i2c: iproc: update slave isr mask (ISR_MASK_SLAVE)
+    - i2c: iproc: handle master read request
+    - spi: cadence-quadspi: Abort read if dummy cycles required are too many
+    - clk: sunxi-ng: h6: Fix CEC clock
+    - HID: core: detect and skip invalid inputs to snto32()
+    - RDMA/siw: Fix handling of zero-sized Read and Receive Queues.
+    - dmaengine: fsldma: Fix a resource leak in the remove function
+    - dmaengine: fsldma: Fix a resource leak in an error handling path of the
+      probe function
+    - dmaengine: owl-dma: Fix a resource leak in the remove function
+    - dmaengine: hsu: disable spurious interrupt
+    - mfd: bd9571mwv: Use devm_mfd_add_devices()
+    - fdt: Properly handle "no-map" field in the memory region
+    - of/fdt: Make sure no-map does not remove already reserved regions
+    - power: reset: at91-sama5d2_shdwc: fix wkupdbc mask
+    - rtc: s5m: select REGMAP_I2C
+    - clocksource/drivers/ixp4xx: Select TIMER_OF when needed
+    - clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
+    - RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
+    - clk: sunxi-ng: h6: Fix clock divider range on some clocks
+    - regulator: axp20x: Fix reference cout leak
+    - certs: Fix blacklist flag type confusion
+    - regulator: s5m8767: Fix reference count leak
+    - spi: atmel: Put allocated master before return
+    - regulator: s5m8767: Drop regulators OF node reference
+    - regulator: core: Avoid debugfs: Directory ... already present! error
+    - isofs: release buffer head before return
+    - auxdisplay: ht16k33: Fix refresh rate handling
+    - objtool: Fix error handling for STD/CLD warnings
+    - objtool: Fix ".cold" section suffix check for newer versions of GCC
+    - IB/umad: Return EIO in case of when device disassociated
+    - IB/umad: Return EPOLLERR in case of when device disassociated
+    - KVM: PPC: Make the VMX instruction emulation routines static
+    - powerpc/47x: Disable 256k page size
+    - mmc: sdhci-sprd: Fix some resource leaks in the remove function
+    - mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
+    - mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to
+      128-bytes
+    - ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
+    - i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct
+    - amba: Fix resource leak for drivers without .remove
+    - IB/mlx5: Return appropriate error code instead of ENOMEM
+    - IB/cm: Avoid a loop when device has 255 ports
+    - tracepoint: Do not fail unregistering a probe due to memory failure
+    - perf tools: Fix DSO filtering when not finding a map for a sampled address
+    - perf vendor events arm64: Fix Ampere eMag event typo
+    - RDMA/rxe: Fix coding error in rxe_recv.c
+    - RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt
+    - RDMA/rxe: Correct skb on loopback path
+    - spi: stm32: properly handle 0 byte transfer
+    - mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
+    - powerpc/pseries/dlpar: handle ibm, configure-connector delay status
+    - powerpc/8xx: Fix software emulation interrupt
+    - clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs
+    - RDMA/hns: Fixed wrong judgments in the goto branch
+    - RDMA/siw: Fix calculation of tx_valid_cpus size
+    - RDMA/hns: Fix type of sq_signal_bits
+    - spi: pxa2xx: Fix the controller numbering for Wildcat Point
+    - regulator: qcom-rpmh: fix pm8009 ldo7
+    - clk: aspeed: Fix APLL calculate formula from ast2600-A2
+    - nfsd: register pernet ops last, unregister first
+    - RDMA/hns: Fixes missing error code of CMDQ
+    - Input: sur40 - fix an error code in sur40_probe()
+    - perf intel-pt: Fix missing CYC processing in PSB
+    - perf intel-pt: Fix premature IPC
+    - perf test: Fix unaligned access in sample parsing test
+    - Input: elo - fix an error code in elo_connect()
+    - sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
+    - misc: eeprom_93xx46: Fix module alias to enable module autoprobe
+    - phy: rockchip-emmc: emmc_phy_init() always return 0
+    - misc: eeprom_93xx46: Add module alias to avoid breaking support for non
+      device tree users
+    - soundwire: cadence: fix ACK/NAK handling
+    - pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
+    - VMCI: Use set_page_dirty_lock() when unregistering guest memory
+    - PCI: Align checking of syscall user config accessors
+    - mei: hbm: call mei_set_devstate() on hbm stop response
+    - drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
+    - drm/msm/mdp5: Fix wait-for-commit for cmd panels
+    - vfio/iommu_type1: Fix some sanity checks in detach group
+    - ext4: fix potential htree index checksum corruption
+    - nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of()
+    - nvmem: core: skip child nodes not matching binding
+    - regmap: sdw: use _no_pm functions in regmap_read/write
+    - i40e: Fix flow for IPv6 next header (extension header)
+    - i40e: Add zero-initialization of AQ command structures
+    - i40e: Fix overwriting flow control settings during driver loading
+    - i40e: Fix addition of RX filters after enabling FW LLDP agent
+    - i40e: Fix VFs not created
+    - i40e: Fix add TC filter for IPv6
+    - vfio/type1: Use follow_pte()
+    - net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
+    - vxlan: move debug check after netdev unregister
+    - ocfs2: fix a use after free on error
+    - mm/memory.c: fix potential pte_unmap_unlock pte error
+    - mm/hugetlb: fix potential double free in hugetlb_register_node() error path
+    - mm/compaction: fix misbehaviors of fast_find_migrateblock()
+    - r8169: fix jumbo packet handling on RTL8168e
+    - arm64: Add missing ISB after invalidating TLB in __primary_switch
+    - i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
+    - mm/rmap: fix potential pte_unmap on an not mapped pte
+    - scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
+    - blk-settings: align max_sectors on "logical_block_size" boundary
+    - ACPI: property: Fix fwnode string properties matching
+    - ACPI: configfs: add missing check after configfs_register_default_group()
+    - HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming
+    - HID: wacom: Ignore attempts to overwrite the touch_max value from HID
+    - Input: raydium_ts_i2c - do not send zero length
+    - Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox
+      Series X|S
+    - Input: joydev - prevent potential read overflow in ioctl
+    - Input: i8042 - add ASUS Zenbook Flip to noselftest list
+    - media: mceusb: Fix potential out-of-bounds shift
+    - USB: serial: option: update interface mapping for ZTE P685M
+    - usb: musb: Fix runtime PM race in musb_queue_resume_work
+    - usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
+    - usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
+    - USB: serial: ftdi_sio: fix FTX sub-integer prescaler
+    - USB: serial: mos7840: fix error code in mos7840_write()
+    - USB: serial: mos7720: fix error code in mos7720_write()
+    - ALSA: hda: Add another CometLake-H PCI ID
+    - ALSA: hda/realtek: modify EAPD in the ALC886
+    - Revert "bcache: Kill btree_io_wq"
+    - bcache: Give btree_io_wq correct semantics again
+    - bcache: Move journal work to new flush wq
+    - drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1
+    - drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2)
+    - drm/nouveau/kms: handle mDP connectors
+    - drm/sched: Cancel and flush all outstanding jobs before finish.
+    - erofs: initialized fields can only be observed after bit is set
+    - tpm_tis: Fix check_locality for correct locality acquisition
+    - tpm_tis: Clean up locality release
+    - KEYS: trusted: Fix migratable=1 failing
+    - btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
+    - btrfs: fix reloc root leak with 0 ref reloc roots on recovery
+    - btrfs: splice remaining dirty_bg's onto the transaction dirty bg list
+    - btrfs: fix extent buffer leak on failure to copy root
+    - crypto: arm64/sha - add missing module aliases
+    - crypto: aesni - prevent misaligned buffers on the stack
+    - crypto: sun4i-ss - checking sg length is not sufficient
+    - crypto: sun4i-ss - handle BigEndian for cipher
+    - crypto: sun4i-ss - initialize need_fallback
+    - seccomp: Add missing return in non-void function
+    - misc: rtsx: init of rts522a add OCP power off when no card is present
+    - drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
+    - pstore: Fix typo in compression option name
+    - dts64: mt7622: fix slow sd card access
+    - staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c
+    - staging: gdm724x: Fix DMA from stack
+    - staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
+    - media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt()
+    - x86/virt: Eat faults on VMXOFF in reboot flows
+    - x86/reboot: Force all cpus to exit VMX root if VMX is supported
+    - powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan
+    - rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
+    - rcu/nocb: Perform deferred wake up before last idle's need_resched() check
+    - floppy: reintroduce O_NDELAY fix
+    - arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into()
+      fails
+    - arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
+    - watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ
+    - watchdog: mei_wdt: request stop on unregister
+    - mtd: spi-nor: sfdp: Fix last erase region marking
+    - mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region
+    - mtd: spi-nor: core: Fix erase type discovery for overlaid region
+    - mtd: spi-nor: core: Add erase size check for erase command initialization
+    - mtd: spi-nor: hisi-sfc: Put child node np on error path
+    - fs/affs: release old buffer head on error path
+    - seq_file: document how per-entry resources are managed.
+    - x86: fix seq_file iteration for pat/memtype.c
+    - hugetlb: fix update_and_free_page contig page struct assumption
+    - hugetlb: fix copy_huge_page_from_user contig page struct assumption
+    - arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55
+    - media: smipcie: fix interrupt handling and IR timeout
+    - module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
+    - mmc: sdhci-esdhc-imx: fix kernel panic when remove module
+    - powerpc/32s: Add missing call to kuep_lock on syscall entry
+    - spmi: spmi-pmic-arb: Fix hw_irq overflow
+    - gpio: pcf857x: Fix missing first interrupt
+    - printk: fix deadlock when kernel panic
+    - cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if
+      available
+    - s390/vtime: fix inline assembly clobber list
+    - virtio/s390: implement virtio-ccw revision 2 correctly
+    - um: mm: check more comprehensively for stub changes
+    - f2fs: fix out-of-repair __setattr_copy()
+    - sparc32: fix a user-triggerable oops in clear_user()
+    - spi: spi-synquacer: fix set_cs handling
+    - gfs2: Don't skip dlm unlock if glock has an lvb
+    - gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end
+    - dm: fix deadlock when swapping to encrypted device
+    - dm writecache: fix writing beyond end of underlying device when shrinking
+    - dm era: Recover committed writeset after crash
+    - dm era: Verify the data block size hasn't changed
+    - dm era: Fix bitset memory leaks
+    - dm era: Use correct value size in equality function of writeset tree
+    - dm era: Reinitialize bitset cache before digesting a new writeset
+    - dm era: only resize metadata in preresume
+    - drm/i915: Reject 446-480MHz HDMI clock on GLK
+    - icmp: introduce helper for nat'd source address in network device context
+    - icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
+    - gtp: use icmp_ndo_send helper
+    - sunvnet: use icmp_ndo_send helper
+    - xfrm: interface: use icmp_ndo_send helper
+    - ipv6: icmp6: avoid indirect call for icmpv6_send()
+    - ipv6: silence compilation warning for non-IPV6 builds
+    - net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
+    - net: sched: fix police ext initialization
+    - dm era: Update in-core bitset after committing the metadata
+    - net: qrtr: Fix memory leak in qrtr_tun_open
+    - ARM: dts: aspeed: Add LCLK to lpc-snoop
+    - Linux 5.4.102
+
+  * eeh-basic.sh from powerpc in ubuntu_kernel_selftests failed with unexpected
+    operator on F-5.8 (LP: #1909428)
+    - selftests/powerpc: Make the test check in eeh-basic.sh posix compliant
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 14 Apr 2021 18:35:30 +0200
+
+linux (5.4.0-72.80) focal; urgency=medium
+
+  * overlayfs calls vfs_setxattr without cap_convert_nscap
+    - vfs: move cap_convert_nscap() call into vfs_setxattr()
+
+  * CVE-2021-3492
+    - SAUCE: shiftfs: free allocated memory in shiftfs_btrfs_ioctl_fd_replace()
+      error paths
+    - SAUCE: shiftfs: handle copy_to_user() return values correctly
+
+  * CVE-2021-29154
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-64
+    - SAUCE: bpf, x86: Validate computation of branch displacements for x86-32
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 12 Apr 2021 17:12:08 +0200
+
+linux (5.4.0-71.79) focal; urgency=medium
+
+  * focal/linux: 5.4.0-71.79 -proposed tracker (LP: #1921040)
+
+  * selftests: bpf verifier fails after sanitize_ptr_alu fixes (LP: #1920995)
+    - bpf: Simplify alu_limit masking for pointer arithmetic
+    - bpf: Add sanity check for upper ptr_limit
+    - bpf, selftests: Fix up some test_verifier cases for unprivileged
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Fix missing HDMI/DP audio on NVidia card after S3 (LP: #1918228)
+    - ALSA: hda/hdmi: Reduce hda_jack_tbl lookup at unsol event handling
+    - ALSA: hda/hdmi: Don't use standard hda_jack for generic HDMI jacks
+    - ALSA: hda/hdmi: Move runtime PM resume into hdmi_present_sense_via_verbs()
+    - ALSA: hda/hdmi: Move ELD parse and jack reporting into update_eld()
+
+  * Focal update: v5.4.101 upstream stable release (LP: #1918170)
+    - HID: make arrays usage and value to be the same
+    - USB: quirks: sort quirk entries
+    - usb: quirks: add quirk to start video capture on ELMO L-12F document camera
+      reliable
+    - ntfs: check for valid standard information attribute
+    - arm64: tegra: Add power-domain for Tegra210 HDA
+    - scripts: use pkg-config to locate libcrypto
+    - scripts: set proper OpenSSL include dir also for sign-file
+    - mm: unexport follow_pte_pmd
+    - mm: simplify follow_pte{,pmd}
+    - KVM: do not assume PTE is writable after follow_pfn
+    - mm: provide a saner PTE walking API for modules
+    - KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped()
+    - NET: usb: qmi_wwan: Adding support for Cinterion MV31
+    - cxgb4: Add new T6 PCI device id 0x6092
+    - cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
+    - scripts/recordmcount.pl: support big endian for ARCH sh
+    - Linux 5.4.101
+
+  * Focal update: v5.4.100 upstream stable release (LP: #1918168)
+    - KVM: SEV: fix double locking due to incorrect backport
+    - net: qrtr: Fix port ID for control messages
+    - net: bridge: Fix a warning when del bridge sysfs
+    - Xen/x86: don't bail early from clear_foreign_p2m_mapping()
+    - Xen/x86: also check kernel mapping in set_foreign_p2m_mapping()
+    - Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages()
+    - Xen/gntdev: correct error checking in gntdev_map_grant_pages()
+    - xen/arm: don't ignore return errors from set_phys_to_machine
+    - xen-blkback: don't "handle" error by BUG()
+    - xen-netback: don't "handle" error by BUG()
+    - xen-scsiback: don't "handle" error by BUG()
+    - xen-blkback: fix error handling in xen_blkbk_map()
+    - media: pwc: Use correct device for DMA
+    - btrfs: fix backport of 2175bf57dc952 in 5.4.95
+    - Linux 5.4.100
+
+  * Focal update: v5.4.99 upstream stable release (LP: #1918167)
+    - gpio: ep93xx: fix BUG_ON port F usage
+    - gpio: ep93xx: Fix single irqchip with multi gpiochips
+    - tracing: Do not count ftrace events in top level enable output
+    - tracing: Check length before giving out the filter buffer
+    - arm/xen: Don't probe xenbus as part of an early initcall
+    - cgroup: fix psi monitor for root cgroup
+    - arm64: dts: rockchip: Fix PCIe DT properties on rk3399
+    - arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
+    - ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
+    - platform/x86: hp-wmi: Disable tablet-mode reporting by default
+    - ovl: perform vfs_getxattr() with mounter creds
+    - cap: fix conversions on getxattr
+    - ovl: skip getxattr of security labels
+    - nvme-pci: ignore the subsysem NQN on Phison E16
+    - drm/amd/display: Add more Clock Sources to DCN2.1
+    - drm/amd/display: Fix dc_sink kref count in emulated_link_detect
+    - drm/amd/display: Free atomic state after drm_atomic_commit
+    - drm/amd/display: Decrement refcount of dc_sink before reassignment
+    - riscv: virt_addr_valid must check the address belongs to linear mapping
+    - bfq-iosched: Revert "bfq: Fix computation of shallow depth"
+    - ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
+    - ARM: ensure the signal page contains defined contents
+    - ARM: kexec: fix oops after TLB are invalidated
+    - vmlinux.lds.h: Create section for protection against instrumentation
+    - lkdtm: don't move ctors to .rodata
+    - mt76: dma: fix a possible memory leak in mt76_add_fragment()
+    - drm/vc4: hvs: Fix buffer overflow with the dlist handling
+    - bpf: Check for integer overflow when using roundup_pow_of_two()
+    - netfilter: xt_recent: Fix attempt to update deleted entry
+    - netfilter: nftables: fix possible UAF over chains from packet path in netns
+    - netfilter: flowtable: fix tcp and udp header checksum update
+    - xen/netback: avoid race in xenvif_rx_ring_slots_available()
+    - net: enetc: initialize the RFS and RSS memories
+    - selftests: txtimestamp: fix compilation issue
+    - net: stmmac: set TxQ mode back to DCB after disabling CBS
+    - ibmvnic: Clear failover_pending if unable to schedule
+    - netfilter: conntrack: skip identical origin tuple in same zone only
+    - x86/build: Disable CET instrumentation in the kernel for 32-bit too
+    - net: hns3: add a check for queue_id in hclge_reset_vf_queue()
+    - firmware_loader: align .builtin_fw to 8
+    - drm/sun4i: tcon: set sync polarity for tcon1 channel
+    - drm/sun4i: Fix H6 HDMI PHY configuration
+    - drm/sun4i: dw-hdmi: Fix max. frequency for H6
+    - clk: sunxi-ng: mp: fix parent rate change flag check
+    - i2c: stm32f7: fix configuration of the digital filter
+    - h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
+    - usb: dwc3: ulpi: fix checkpatch warning
+    - usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one
+    - rxrpc: Fix clearance of Tx/Rx ring when releasing a call
+    - udp: fix skb_copy_and_csum_datagram with odd segment sizes
+    - net: dsa: call teardown method on probe failure
+    - net: gro: do not keep too many GRO packets in napi->rx_list
+    - net: fix iteration for sctp transport seq_files
+    - net/vmw_vsock: improve locking in vsock_connect_timeout()
+    - net: watchdog: hold device global xmit lock during tx disable
+    - vsock/virtio: update credit only if socket is not closed
+    - vsock: fix locking in vsock_shutdown()
+    - net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
+    - net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
+    - ovl: expand warning in ovl_d_real()
+    - Linux 5.4.99
+
+  * Focal update: v5.4.98 upstream stable release (LP: #1918158)
+    - tracing/kprobe: Fix to support kretprobe events on unloaded modules
+    - af_key: relax availability checks for skb size calculation
+    - regulator: core: avoid regulator_resolve_supply() race condition
+    - mac80211: 160MHz with extended NSS BW in CSA
+    - ASoC: Intel: Skylake: Zero snd_ctl_elem_value
+    - chtls: Fix potential resource leak
+    - pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()
+    - ASoC: ak4458: correct reset polarity
+    - iwlwifi: mvm: skip power command when unbinding vif during CSA
+    - iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time()
+    - iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap
+    - iwlwifi: pcie: fix context info memory leak
+    - iwlwifi: mvm: invalidate IDs of internal stations at mvm start
+    - iwlwifi: mvm: guard against device removal in reprobe
+    - SUNRPC: Move simple_get_bytes and simple_get_netobj into private header
+    - SUNRPC: Handle 0 length opaque XDR object data properly
+    - i2c: mediatek: Move suspend and resume handling to NOIRQ phase
+    - blk-cgroup: Use cond_resched() when destroy blkgs
+    - regulator: Fix lockdep warning resolving supplies
+    - Fix unsynchronized access to sev members through svm_register_enc_region
+    - squashfs: add more sanity checks in id lookup
+    - squashfs: add more sanity checks in inode lookup
+    - squashfs: add more sanity checks in xattr id lookup
+    - Linux 5.4.98
+
+  * Enforce CONFIG_DRM_BOCHS=m (LP: #1916290)
+    - [Config] Enforce CONFIG_DRM_BOCHS=m
+
+  * powerpc/eeh-basic.sh in kselftest make P8 node stopped working
+    (LP: #1916468)
+    - selftests/eeh: Skip ahci adapters
+
+  * Focal update: v5.4.97 upstream stable release (LP: #1916066)
+    - USB: serial: cp210x: add pid/vid for WSDA-200-USB
+    - USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000
+    - USB: serial: option: Adding support for Cinterion MV31
+    - arm64: dts: qcom: c630: keep both touchpad devices enabled
+    - arm64: dts: amlogic: meson-g12: Set FL-adj property value
+    - arm64: dts: rockchip: fix vopl iommu irq on px30
+    - bpf, cgroup: Fix optlen WARN_ON_ONCE toctou
+    - bpf, cgroup: Fix problematic bounds check
+    - um: virtio: free vu_dev only with the contained struct device
+    - rxrpc: Fix deadlock around release of dst cached on udp tunnel
+    - arm64: dts: ls1046a: fix dcfg address range
+    - igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr
+    - igc: check return value of ret_val in igc_config_fc_after_link_up
+    - i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues"
+    - net/mlx5: Fix leak upon failure of rule creation
+    - net: lapb: Copy the skb before sending a packet
+    - net: mvpp2: TCAM entry enable should be written after SRAM data
+    - r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set
+    - ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode
+    - nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs
+    - memblock: do not start bottom-up allocations with kernel_end
+    - USB: gadget: legacy: fix an error code in eth_bind()
+    - USB: usblp: don't call usb_set_interface if there's a single alt
+    - usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop()
+    - usb: dwc2: Fix endpoint direction check in ep_from_windex
+    - usb: dwc3: fix clock issue during resume in OTG mode
+    - usb: xhci-mtk: fix unreleased bandwidth data
+    - usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints
+    - usb: xhci-mtk: break loop when find the endpoint to drop
+    - usb: host: xhci-plat: add priv quirk for skip PHY initialization
+    - ovl: fix dentry leak in ovl_get_redirect
+    - mac80211: fix station rate table updates on assoc
+    - fgraph: Initialize tracing_graph_pause at task creation
+    - kretprobe: Avoid re-registration of the same kretprobe earlier
+    - libnvdimm/dimm: Avoid race between probe and available_slots_show()
+    - genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set
+    - xhci: fix bounce buffer usage for non-sg list case
+    - cifs: report error instead of invalid when revalidating a dentry fails
+    - smb3: Fix out-of-bounds bug in SMB2_negotiate()
+    - smb3: fix crediting for compounding when only one request in flight
+    - mmc: core: Limit retries when analyse of SDIO tuples fails
+    - drm/amd/display: Revert "Fix EDID parsing after resume from suspend"
+    - nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs
+    - KVM: SVM: Treat SVM as unsupported when running as an SEV guest
+    - KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode
+    - ARM: footbridge: fix dc21285 PCI configuration accessors
+    - mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page
+    - mm: hugetlb: fix a race between freeing and dissolving the page
+    - mm: hugetlb: fix a race between isolating and freeing page
+    - mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active
+    - mm, compaction: move high_pfn to the for loop scope
+    - mm: thp: fix MADV_REMOVE deadlock on shmem THP
+    - x86/build: Disable CET instrumentation in the kernel
+    - x86/apic: Add extra serialization for non-serializing MSRs
+    - iwlwifi: mvm: don't send RFH_QUEUE_CONFIG_CMD with no queues
+    - Input: xpad - sync supported devices with fork on GitHub
+    - iommu/vt-d: Do not use flush-queue when caching-mode is on
+    - md: Set prev_flush_start and flush_bio in an atomic way
+    - neighbour: Prevent a dead entry from updating gc_list
+    - net: ip_tunnel: fix mtu calculation
+    - net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add
+    - net: sched: replaced invalid qdisc tree flush helper in qdisc_replace
+    - usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720
+    - Linux 5.4.97
+
+  * Focal update: v5.4.96 upstream stable release (LP: #1916061)
+    - net: dsa: bcm_sf2: put device node before return
+    - net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
+    - ibmvnic: Ensure that CRQ entry read are correctly ordered
+    - Revert "Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT""
+    - ACPI: thermal: Do not call acpi_thermal_check() directly
+    - arm64: Fix kernel address detection of __is_lm_address()
+    - arm64: Do not pass tagged addresses to __is_lm_address()
+    - tcp: make TCP_USER_TIMEOUT accurate for zero window probes
+    - btrfs: backref, only collect file extent items matching backref offset
+    - btrfs: backref, don't add refs from shared block when resolving normal
+      backref
+    - btrfs: backref, only search backref entries from leaves of the same root
+    - btrfs: backref, use correct count to resolve normal data refs
+    - net_sched: gen_estimator: support large ewma log
+    - phy: cpcap-usb: Fix warning for missing regulator_disable
+    - platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on
+      Estar Beauty HD tablet
+    - platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352
+    - x86: __always_inline __{rd,wr}msr()
+    - scsi: scsi_transport_srp: Don't block target in failfast state
+    - scsi: libfc: Avoid invoking response handler twice if ep is already
+      completed
+    - scsi: fnic: Fix memleak in vnic_dev_init_devcmd2
+    - ASoC: SOF: Intel: hda: Resume codec to do jack detection
+    - mac80211: fix fast-rx encryption check
+    - scsi: ibmvfc: Set default timeout to avoid crash during migration
+    - udf: fix the problem that the disc content is not displayed
+    - nvme: check the PRINFO bit before deciding the host buffer length
+    - selftests/powerpc: Only test lwm/stmw on big endian
+    - drm/amd/display: Update dram_clock_change_latency for DCN2.1
+    - drm/amd/display: Change function decide_dp_link_settings to avoid infinite
+      looping
+    - objtool: Don't fail on missing symbol table
+    - kthread: Extract KTHREAD_IS_PER_CPU
+    - workqueue: Restrict affinity change to rescuer
+    - Linux 5.4.96
+
+  * Focal update: v5.4.95 upstream stable release (LP: #1916056)
+    - ICMPv6: Add ICMPv6 Parameter Problem, code 3 definition
+    - IPv6: reply ICMP error if the first fragment don't include all headers
+    - nbd: freeze the queue while we're adding connections
+    - ACPI: sysfs: Prefer "compatible" modalias
+    - kernel: kexec: remove the lock operation of system_transition_mutex
+    - ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
+    - ALSA: hda/via: Apply the workaround generically for Clevo machines
+    - media: rc: ensure that uevent can be read directly after rc device register
+    - ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming
+    - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
+    - net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family
+    - s390/vfio-ap: No need to disable IRQ after queue reset
+    - PM: hibernate: flush swap writer after marking
+    - drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs
+    - drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[]
+    - btrfs: fix possible free space tree corruption with online conversion
+    - KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in
+      intel_arch_events[]
+    - KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh()
+    - KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration
+    - KVM: x86: get smi pending status correctly
+    - KVM: Forbid the use of tagged userspace addresses for memslots
+    - xen: Fix XenStore initialisation for XS_LOCAL
+    - leds: trigger: fix potential deadlock with libata
+    - arm64: dts: broadcom: Fix USB DMA address translation for Stingray
+    - mt7601u: fix kernel crash unplugging the device
+    - mt7601u: fix rx buffer refcounting
+    - drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices
+    - drm/i915: Check for all subplatform bits
+    - tee: optee: replace might_sleep with cond_resched
+    - xen-blkfront: allow discard-* nodes to be optional
+    - ARM: imx: build suspend-imx6.S with arm instruction set
+    - netfilter: nft_dynset: add timeout extension to template
+    - xfrm: Fix oops in xfrm_replay_advance_bmp
+    - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
+    - selftests: xfrm: fix test return value override issue in xfrm_policy.sh
+    - xfrm: Fix wraparound in xfrm_policy_addr_delta()
+    - arm64: dts: ls1028a: fix the offset of the reset register
+    - ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status
+    - firmware: imx: select SOC_BUS to fix firmware build
+    - RDMA/cxgb4: Fix the reported max_recv_sge value
+    - ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
+    - pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()
+    - iwlwifi: pcie: use jiffies for memory read spin time limit
+    - iwlwifi: pcie: reschedule in long-running memory reads
+    - mac80211: pause TX while changing interface type
+    - i40e: acquire VSI pointer only after VF is initialized
+    - igc: fix link speed advertising
+    - net/mlx5: Fix memory leak on flow table creation error flow
+    - net/mlx5e: E-switch, Fix rate calculation for overflow
+    - net/mlx5e: Reduce tc unsupported key print level
+    - can: dev: prevent potential information leak in can_fill_info()
+    - nvme-multipath: Early exit if no path is available
+    - selftests: forwarding: Specify interface when invoking mausezahn
+    - iommu/vt-d: Gracefully handle DMAR units with no supported address widths
+    - iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built
+    - rxrpc: Fix memory leak in rxrpc_lookup_local
+    - NFC: fix resource leak when target index is invalid
+    - NFC: fix possible resource leak
+    - ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
+    - team: protect features update by RCU to avoid deadlock
+    - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN
+    - Linux 5.4.95
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 24 Mar 2021 11:25:50 +0100
+
+linux (5.4.0-70.78) focal; urgency=medium
+
+  * CVE-2020-27170
+    - bpf: Fix off-by-one for area size in creating mask to left
+
+  * CVE-2020-27171
+    - bpf: Prohibit alu ops for pointer types not defining ptr_limit
+
+  * binary assembly failures with CONFIG_MODVERSIONS present (LP: #1919315)
+    - [Packaging] quiet (nomially) benign errors in BUILD script
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 19 Mar 2021 12:57:03 +0100
+
+linux (5.4.0-69.77) focal; urgency=medium
+
+  * CVE-2021-3444
+    - bpf: Fix 32 bit src register truncation on div/mod
+    - bpf: Fix truncation handling for mod32 dst reg wrt zero
+
+  * CVE-2021-27365
+    - scsi: iscsi: Verify lengths on passthrough PDUs
+    - sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
+    - scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE
+
+  * CVE-2021-27363 // CVE-2021-27364
+    - scsi: iscsi: Restrict sessions and handles to admin capabilities
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Tue, 16 Mar 2021 12:29:06 +0100
+
+linux (5.4.0-67.75) focal; urgency=medium
+
+  * focal/linux: 5.4.0-67.75 -proposed tracker (LP: #1916169)
+
+  * Please trust Canonical Livepatch Service kmod signing key (LP: #1898716)
+    - [Config] enable CONFIG_MODVERSIONS=y
+    - [Packaging] build canonical-certs.pem from branch/arch certs
+    - [Config] add Canonical Livepatch Service key to SYSTEM_TRUSTED_KEYS
+    - [Config] add ubuntu-drivers key to SYSTEM_TRUSTED_KEYS
+    - [Config] Allow ASM_MODVERSIONS and MODULE_REL_CRCS
+
+  * geneve overlay network on vlan interface broken with offload enabled
+    (LP: #1914447)
+    - net/mlx5e: Fix SWP offsets when vlan inserted by driver
+
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Fix ODM support in actual build
+
+  * devlink: don't do reporter recovery if the state is healthy (LP: #1915403)
+    - devlink: don't do reporter recovery if the state is healthy
+
+  * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver
+    (LP: #1914543)
+    - HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID
+
+  * Focal update: v5.4.94 upstream stable release (LP: #1915200)
+    - gpio: mvebu: fix pwm .get_state period calculation
+    - futex: Ensure the correct return value from futex_lock_pi()
+    - futex: Replace pointless printk in fixup_owner()
+    - futex: Provide and use pi_state_update_owner()
+    - rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
+    - futex: Use pi_state_update_owner() in put_pi_state()
+    - futex: Simplify fixup_pi_state_owner()
+    - futex: Handle faults correctly for PI futexes
+    - HID: wacom: Correct NULL dereference on AES pen proximity
+    - io_uring: Fix current->fs handling in io_sq_wq_submit_work()
+    - tracing: Fix race in trace_open and buffer resize call
+    - arm64: mm: use single quantity to represent the PA to VA translation
+    - SMB3.1.1: do not log warning message if server doesn't populate salt
+    - tools: Factor HOSTCC, HOSTLD, HOSTAR definitions
+    - dm integrity: conditionally disable "recalculate" feature
+    - writeback: Drop I_DIRTY_TIME_EXPIRE
+    - fs: fix lazytime expiration handling in __writeback_single_inode()
+    - Linux 5.4.94
+
+  * Focal update: v5.4.93 upstream stable release (LP: #1915195)
+    - i2c: bpmp-tegra: Ignore unknown I2C_M flags
+    - platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634
+    - ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info()
+    - ALSA: hda/via: Add minimum mute flag
+    - ACPI: scan: Make acpi_bus_get_device() clear return pointer on error
+    - btrfs: don't get an EINTR during drop_snapshot for reloc
+    - btrfs: fix lockdep splat in btrfs_recover_relocation
+    - btrfs: don't clear ret in btrfs_start_dirty_block_groups
+    - btrfs: send: fix invalid clone operations when cloning from the same file
+      and root
+    - mmc: core: don't initialize block size from ext_csd if not present
+    - mmc: sdhci-xenon: fix 1.8v regulator stabilization
+    - dm: avoid filesystem lookup in dm_get_dev_t()
+    - dm integrity: fix a crash if "recalculate" used without "internal_hash"
+    - drm/atomic: put state on error path
+    - drm/syncobj: Fix use-after-free
+    - drm/i915/gt: Prevent use of engine->wa_ctx after error
+    - ASoC: Intel: haswell: Add missing pm_ops
+    - dm integrity: select CRYPTO_SKCIPHER
+    - scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback
+    - scsi: qedi: Correct max length of CHAP secret
+    - scsi: sd: Suppress spurious errors when WRITE SAME is being disabled
+    - riscv: Fix kernel time_init()
+    - riscv: Fix sifive serial driver
+    - HID: logitech-dj: add the G602 receiver
+    - HID: Ignore battery for Elan touchscreen on ASUS UX550
+    - clk: tegra30: Add hda clock default rates to clock driver
+    - arm64: make atomic helpers __always_inline
+    - xen: Fix event channel callback via INTX/GSI
+    - x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery
+    - dts: phy: fix missing mdio device and probe failure of vsc8541-01 device
+    - riscv: defconfig: enable gpio support for HiFive Unleashed
+    - drm/amdgpu/psp: fix psp gfx ctrl cmds
+    - drm/amd/display: Fix to be able to stop crc calculation
+    - drm/nouveau/bios: fix issue shadowing expansion ROMs
+    - drm/nouveau/privring: ack interrupts the same way as RM
+    - drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields
+    - drm/nouveau/mmu: fix vram heap sizing
+    - drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0
+    - powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S
+    - pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting
+    - scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression
+    - powerpc: Fix alignment bug within the init sections
+    - i2c: octeon: check correct size of maximum RECV_LEN packet
+    - platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-
+      list
+    - selftests: net: fib_tests: remove duplicate log test
+    - can: dev: can_restart: fix use after free bug
+    - can: vxcan: vxcan_xmit: fix use after free bug
+    - can: peak_usb: fix use after free bugs
+    - iio: ad5504: Fix setting power-down state
+    - cifs: do not fail __smb_send_rqst if non-fatal signals are pending
+    - irqchip/mips-cpu: Set IPI domain parent chip
+    - x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state
+    - x86/topology: Make __max_die_per_package available unconditionally
+    - x86/mmx: Use KFPU_387 for MMX string operations
+    - intel_th: pci: Add Alder Lake-P support
+    - stm class: Fix module init return on allocation failure
+    - serial: mvebu-uart: fix tx lost characters at power off
+    - ehci: fix EHCI host controller initialization sequence
+    - USB: ehci: fix an interrupt calltrace error
+    - usb: gadget: aspeed: fix stop dma register setting.
+    - usb: udc: core: Use lock when write to soft_connect
+    - [Config] updateconfigs for USB_BDC_PCI
+    - usb: bdc: Make bdc pci driver depend on BROKEN
+    - xhci: make sure TRB is fully written before giving it to the controller
+    - xhci: tegra: Delay for disabling LFPS detector
+    - driver core: Extend device_is_dependent()
+    - pinctrl: ingenic: Fix JZ4760 support
+    - x86/cpu/amd: Set __max_die_per_package on AMD
+    - netfilter: rpfilter: mask ecn bits before fib lookup
+    - sh: dma: fix kconfig dependency for G2_DMA
+    - net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext
+    - sh_eth: Fix power down vs. is_opened flag ordering
+    - lightnvm: fix memory leak when submit fails
+    - skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too
+    - kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow
+    - kasan: fix incorrect arguments passing in kasan_add_zero_shadow
+    - udp: mask TOS bits in udp_v4_early_demux()
+    - ipv6: create multicast route with RTPROT_KERNEL
+    - net_sched: avoid shift-out-of-bounds in tcindex_set_parms()
+    - net_sched: reject silly cell_log in qdisc_get_rtab()
+    - ipv6: set multicast flag on the multicast route
+    - net: mscc: ocelot: allow offloading of bridge on top of LAG
+    - net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled
+    - net: dsa: b53: fix an off by one in checking "vlan->vid"
+    - tcp: do not mess with cloned skbs in tcp_add_backlog()
+    - tcp: fix TCP_USER_TIMEOUT with zero window
+    - Linux 5.4.93
+
+  * High load from process irq/65-i2c-INT3  - kernel module tps6598x
+    (LP: #1883511) // Focal update: v5.4.93 upstream stable release
+    (LP: #1915195)
+    - platform/x86: i2c-multi-instantiate: Don't create platform device for
+      INT3515 ACPI nodes
+
+  * Focal update: v5.4.92 upstream stable release (LP: #1915186)
+    - usb: ohci: Make distrust_firmware param default to false
+    - compiler.h: Raise minimum version of GCC to 5.1 for arm64
+    - xen/privcmd: allow fetching resource sizes
+    - elfcore: fix building with clang
+    - scsi: lpfc: Make lpfc_defer_acc_rsp static
+    - spi: npcm-fiu: simplify the return expression of npcm_fiu_probe()
+    - spi: npcm-fiu: Disable clock in probe error path
+    - nfsd4: readdirplus shouldn't return parent of export
+    - bpf: Don't leak memory in bpf getsockopt when optlen == 0
+    - bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback
+    - udp: Prevent reuseport_select_sock from reading uninitialized socks
+    - netxen_nic: fix MSI/MSI-x interrupts
+    - net: introduce skb_list_walk_safe for skb segment walking
+    - net: skbuff: disambiguate argument and member for skb_list_walk_safe helper
+    - net: ipv6: Validate GSO SKB before finish IPv6 processing
+    - mlxsw: core: Add validation of transceiver temperature thresholds
+    - mlxsw: core: Increase critical threshold for ASIC thermal zone
+    - net: mvpp2: Remove Pause and Asym_Pause support
+    - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
+    - esp: avoid unneeded kmap_atomic call
+    - net: dcb: Validate netlink message in DCB handler
+    - net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands
+    - rxrpc: Call state should be read with READ_ONCE() under some circumstances
+    - net: stmmac: Fixed mtu channged by cache aligned
+    - net: sit: unregister_netdevice on newlink's error path
+    - net: avoid 32 x truesize under-estimation for tiny skbs
+    - rxrpc: Fix handling of an unsupported token type in rxrpc_read()
+    - net, sctp, filter: remap copy_from_user failure error
+    - tipc: fix NULL deref in tipc_link_xmit()
+    - mac80211: do not drop tx nulldata packets on encrypted links
+    - mac80211: check if atf has been disabled in __ieee80211_schedule_txq
+    - spi: cadence: cache reference clock rate during probe
+    - Linux 5.4.92
+
+  * intel-hid is not loaded on new Intel platform (LP: #1907160)
+    - platform/x86: intel-hid: Add Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
+    - platform/x86: intel-hid: Move MODULE_DEVICE_TABLE() closer to the table
+    - platform/x86: intel-hid: add Rocket Lake ACPI device ID
+
+  * Support Advantech UNO-420 platform (LP: #1902672)
+    - ODM: MAINTAINERS: Add Advantech AHC1EC0 embedded controller entry
+    - ODM: mfd: ahc1ec0: Add Advantech EC include file used by dt-bindings
+    - ODM: dt-bindings: mfd: ahc1ec0.yaml: Add Advantech embedded controller -
+      AHC1EC0
+    - ODM: mfd: ahc1ec0: Add support for Advantech embedded controller
+    - ODM: hwmon: ahc1ec0-hwmon: Add sub-device hwmon for Advantech embedded
+      controller
+    - ODM: watchdog: ahc1ec0-wdt: Add sub-device watchdog for Advantech embedded
+      controller
+    - ODM: [Config] update config for Advantech devices
+
+  * Remove scary stack trace from Realtek WiFi driver (LP: #1913263)
+    - rtw88: reduce the log level for failure of tx report
+
+  * Focal update: v5.4.91 upstream stable release (LP: #1914654)
+    - kbuild: enforce -Werror=return-type
+    - btrfs: prevent NULL pointer dereference in extent_io_tree_panic
+    - ASoC: dapm: remove widget from dirty list on free
+    - x86/hyperv: check cpu mask after interrupt has been disabled
+    - tracing/kprobes: Do the notrace functions check without kprobes on ftrace
+    - [Config] update annotations for KPROBE_EVENTS_ON_NOTRACE
+    - mips: fix Section mismatch in reference
+    - mips: lib: uncached: fix non-standard usage of variable 'sp'
+    - MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
+    - MIPS: relocatable: fix possible boot hangup with KASLR enabled
+    - RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
+    - ACPI: scan: Harden acpi_device_add() against device ID overflows
+    - mm/hugetlb: fix potential missing huge page size info
+    - dm raid: fix discard limits for raid1
+    - dm snapshot: flush merged data before committing metadata
+    - dm integrity: fix the maximum number of arguments
+    - r8152: Add Lenovo Powered USB-C Travel Hub
+    - btrfs: tree-checker: check if chunk item end overflows
+    - drm/i915/backlight: fix CPU mode backlight takeover on LPT
+    - ext4: fix bug for rename with RENAME_WHITEOUT
+    - ext4: don't leak old mountpoint samples
+    - cifs: fix interrupted close commands
+    - dm integrity: fix flush with external metadata device
+    - ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
+    - ARC: build: add uImage.lzma to the top-level target
+    - ARC: build: add boot_targets to PHONY
+    - ARC: build: move symlink creation to arch/arc/Makefile to avoid race
+    - netfilter: ipset: fixes possible oops in mtype_resize
+    - btrfs: fix transaction leak and crash after RO remount caused by qgroup
+      rescan
+    - regulator: bd718x7: Add enable times
+    - ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
+    - habanalabs: register to pci shutdown callback
+    - habanalabs: Fix memleak in hl_device_reset
+    - hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
+    - lib/raid6: Let $(UNROLL) rules work with macOS userland
+    - bfq: Fix computation of shallow depth
+    - arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC
+    - misdn: dsp: select CONFIG_BITREVERSE
+    - net: ethernet: fs_enet: Add missing MODULE_LICENSE
+    - nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
+    - nvmet-rdma: Fix list_del corruption on queue establishment failure
+    - drm/amdgpu: fix a GPU hang issue when remove device
+    - usb: typec: Fix copy paste error for NVIDIA alt-mode description
+    - ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
+    - drm/msm: Call msm_init_vram before binding the gpu
+    - ARM: picoxcell: fix missing interrupt-parent properties
+    - perf intel-pt: Fix 'CPU too large' error
+    - dump_common_audit_data(): fix racy accesses to ->d_name
+    - ASoC: meson: axg-tdm-interface: fix loopback
+    - ASoC: meson: axg-tdmin: fix axg skew offset
+    - ASoC: Intel: fix error code cnl_set_dsp_D0()
+    - nvme-tcp: fix possible data corruption with bio merges
+    - NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
+    - pNFS: We want return-on-close to complete when evicting the inode
+    - pNFS: Mark layout for return if return-on-close was not sent
+    - pNFS: Stricter ordering of layoutget and layoutreturn
+    - NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
+    - NFS: nfs_igrab_and_active must first reference the superblock
+    - ext4: fix superblock checksum failure when setting password salt
+    - RDMA/restrack: Don't treat as an error allocation ID wrapping
+    - RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
+    - bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
+    - RDMA/mlx5: Fix wrong free of blue flame register on error
+    - IB/mlx5: Fix error unwinding when set_has_smi_cap fails
+    - drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is
+      no reset-deassert MIPI-sequence
+    - mm, slub: consider rest of partial list if acquire_slab() fails
+    - iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
+    - net: sunrpc: interpret the return value of kstrtou32 correctly
+    - dm: eliminate potential source of excessive kernel log noise
+    - ALSA: fireface: Fix integer overflow in transmit_midi_msg()
+    - ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
+    - netfilter: conntrack: fix reading nf_conntrack_buckets
+    - netfilter: nf_nat: Fix memleak in nf_nat_init
+    - netfilter: nft_compat: remove flush counter optimization
+    - Linux 5.4.91
+
+  * Focal update: v5.4.90 upstream stable release (LP: #1913487)
+    - x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_*
+    - vfio iommu: Add dma available capability
+    - net: cdc_ncm: correct overhead in delayed_ndp_size
+    - net: hns3: fix the number of queues actually used by ARQ
+    - net: hns3: fix a phy loopback fail issue
+    - net: stmmac: dwmac-sun8i: Balance internal PHY resource references
+    - net: stmmac: dwmac-sun8i: Balance internal PHY power
+    - net: vlan: avoid leaks on register_vlan_dev() failures
+    - net/sonic: Fix some resource leaks in error handling paths
+    - net: ipv6: fib: flush exceptions when purging route
+    - tools: selftests: add test for changing routes with PTMU exceptions
+    - net: fix pmtu check in nopmtudisc mode
+    - net: ip: always refragment ip defragmented packets
+    - octeontx2-af: fix memory leak of lmac and lmac->name
+    - nexthop: Fix off-by-one error in error path
+    - nexthop: Unlink nexthop group entry in error path
+    - s390/qeth: fix L2 header access in qeth_l3_osa_features_check()
+    - net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE
+    - net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address
+    - net/mlx5e: ethtool, Fix restriction of autoneg with 56G
+    - chtls: Fix hardware tid leak
+    - chtls: Remove invalid set_tcb call
+    - chtls: Fix panic when route to peer not configured
+    - chtls: Replace skb_dequeue with skb_peek
+    - chtls: Added a check to avoid NULL pointer dereference
+    - chtls: Fix chtls resources release sequence
+    - x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR
+    - x86/resctrl: Don't move a task to the same resource group
+    - exfat: Month timestamp metadata accidentally incremented
+    - vmlinux.lds.h: Add PGO and AutoFDO input sections
+    - iio: imu: st_lsm6dsx: fix edge-trigger interrupts
+    - HID: wacom: Fix memory leakage caused by kfifo_alloc
+    - ARM: OMAP2+: omap_device: fix idling of devices during probe
+    - i2c: sprd: use a specific timeout to avoid system hang up issue
+    - dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk()
+    - can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver
+    - can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop()
+    - can: kvaser_pciefd: select CONFIG_CRC32
+    - cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()
+    - spi: stm32: FIFO threshold level - fix align packet size
+    - i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated
+    - dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling
+      path of the probe function
+    - dmaengine: xilinx_dma: check dma_async_device_register return value
+    - dmaengine: xilinx_dma: fix incompatible param warning in _child_probe()
+    - dmaengine: xilinx_dma: fix mixed_enum_type coverity warning
+    - qed: select CONFIG_CRC32
+    - wil6210: select CONFIG_CRC32
+    - block: rsxx: select CONFIG_CRC32
+    - lightnvm: select CONFIG_CRC32
+    - iommu/intel: Fix memleak in intel_irq_remapping_alloc
+    - bpftool: Fix compilation failure for net.o with older glibc
+    - net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
+    - net/mlx5e: Fix two double free cases
+    - regmap: debugfs: Fix a memory leak when calling regmap_attach_dev
+    - wan: ds26522: select CONFIG_BITREVERSE
+    - regulator: qcom-rpmh-regulator: correct hfsmps515 definition
+    - net: mvpp2: disable force link UP during port init procedure
+    - KVM: arm64: Don't access PMCR_EL0 when no PMU is available
+    - block: fix use-after-free in disk_part_iter_next
+    - net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed
+      packet
+    - regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()
+    - Linux 5.4.90
+
+  * Focal update: v5.4.89 upstream stable release (LP: #1913486)
+    - workqueue: Kick a worker based on the actual activation of delayed works
+    - scsi: ufs: Fix wrong print message in dev_err()
+    - scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk
+      ->poweroff()
+    - scsi: ide: Do not set the RQF_PREEMPT flag for sense requests
+    - scsi: scsi_transport_spi: Set RQF_PM for domain validation commands
+    - lib/genalloc: fix the overflow when size is too big
+    - depmod: handle the case of /sbin/depmod without /sbin in PATH
+    - proc: change ->nlink under proc_subdir_lock
+    - proc: fix lookup in /proc/net subdirectories after setns(2)
+    - i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs
+    - iavf: fix double-release of rtnl_lock
+    - net: mvpp2: Add TCAM entry to drop flow control pause frames
+    - net: mvpp2: prs: fix PPPoE with ipv6 packet parse
+    - net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE
+    - ethernet: ucc_geth: fix use-after-free in ucc_geth_remove()
+    - ethernet: ucc_geth: set dev->max_mtu to 1518
+    - atm: idt77252: call pci_disable_device() on error path
+    - net: mvpp2: Fix GoP port 3 Networking Complex Control configurations
+    - ibmvnic: continue fatal error reset after passive init
+    - net: ethernet: mvneta: Fix error handling in mvneta_probe
+    - virtio_net: Fix recursive call to cpus_read_lock()
+    - net/ncsi: Use real net-device for response handler
+    - net: ethernet: Fix memleak in ethoc_probe
+    - net-sysfs: take the rtnl lock when storing xps_cpus
+    - net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
+    - net-sysfs: take the rtnl lock when storing xps_rxqs
+    - net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc
+    - net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered
+    - tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
+    - net: mvpp2: fix pkt coalescing int-threshold configuration
+    - ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()
+    - net: sched: prevent invalid Scell_log shift count
+    - net: hns: fix return value check in __lb_other_process()
+    - erspan: fix version 1 check in gre_parse_header()
+    - net: hdlc_ppp: Fix issues when mod_timer is called while timer is running
+    - r8169: work around power-saving bug on some chip versions
+    - net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs
+    - net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access
+    - CDC-NCM: remove "connected" log message
+    - net: usb: qmi_wwan: add Quectel EM160R-GL
+    - vhost_net: fix ubuf refcount incorrectly when sendmsg fails
+    - ionic: account for vlan tag len in rx buffer len
+    - net/sched: sch_taprio: ensure to reset/destroy all child qdiscs
+    - kbuild: don't hardcode depmod path
+    - Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close
+    - video: hyperv_fb: Fix the mmap() regression for v5.4.y and older
+    - crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
+    - crypto: asym_tpm: correct zero out potential secrets
+    - powerpc: Handle .text.{hot,unlikely}.* in linker script
+    - staging: mt7621-dma: Fix a resource leak in an error handling path
+    - usb: gadget: enable super speed plus
+    - USB: cdc-acm: blacklist another IR Droid device
+    - USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().
+    - usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion
+    - usb: chipidea: ci_hdrc_imx: add missing put_device() call in
+      usbmisc_get_init_data()
+    - USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set
+    - usb: usbip: vhci_hcd: protect shift size
+    - usb: uas: Add PNY USB Portable SSD to unusual_uas
+    - USB: serial: iuu_phoenix: fix DMA from stack
+    - USB: serial: option: add LongSung M5710 module support
+    - USB: serial: option: add Quectel EM160R-GL
+    - USB: yurex: fix control-URB timeout handling
+    - USB: usblp: fix DMA to stack
+    - ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
+    - usb: gadget: select CONFIG_CRC32
+    - usb: gadget: f_uac2: reset wMaxPacketSize
+    - usb: gadget: function: printer: Fix a memory leak for interface descriptor
+    - usb: gadget: u_ether: Fix MTU size mismatch with RX packet size
+    - USB: gadget: legacy: fix return error code in acm_ms_bind()
+    - usb: gadget: Fix spinlock lockup on usb_function_deactivate
+    - usb: gadget: configfs: Preserve function ordering after bind failure
+    - usb: gadget: configfs: Fix use-after-free issue with udc_name
+    - USB: serial: keyspan_pda: remove unused variable
+    - x86/mm: Fix leak of pmd ptlock
+    - kvm: check tlbs_dirty directly
+    - ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+    - ALSA: hda/conexant: add a new hda codec CX11970
+    - ALSA: hda/realtek - Fix speaker volume control on Lenovo C940
+    - ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256.
+    - btrfs: send: fix wrong file path when there is an inode with a pending rmdir
+    - Revert "device property: Keep secondary firmware node secondary by type"
+    - dmabuf: fix use-after-free of dmabuf's file->f_inode
+    - drm/i915: clear the gpu reloc batch
+    - netfilter: x_tables: Update remaining dereference to RCU
+    - netfilter: ipset: fix shift-out-of-bounds in htable_bits()
+    - netfilter: xt_RATEEST: reject non-null terminated string from userspace
+    - netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
+    - x86/mtrr: Correct the range check before performing MTRR type lookups
+    - KVM: x86: fix shift out of bounds reported by UBSAN
+    - Linux 5.4.89
+
+  * Focal update: v5.4.88 upstream stable release (LP: #1913223)
+    - Revert "drm/amd/display: Fix memory leaks in S3 resume"
+    - Revert "mtd: spinand: Fix OOB read"
+    - dmaengine: at_hdmac: Substitute kzalloc with kmalloc
+    - dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()
+    - dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate()
+    - kdev_t: always inline major/minor helper functions
+    - iio:imu:bmi160: Fix alignment and data leak issues
+    - fuse: fix bad inode
+    - perf: Break deadlock involving exec_update_mutex
+    - rwsem: Implement down_read_killable_nested
+    - rwsem: Implement down_read_interruptible
+    - exec: Transform exec_update_mutex into a rw_semaphore
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start
+    - Linux 5.4.88
+
+  * Focal update: v5.4.87 upstream stable release (LP: #1912681)
+    - net/sched: sch_taprio: reset child qdiscs before freeing them
+    - md/raid10: initialize r10_bio->read_slot before use.
+    - thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has
+      changed
+    - ext4: prevent creating duplicate encrypted filenames
+    - ubifs: prevent creating duplicate encrypted filenames
+    - f2fs: prevent creating duplicate encrypted filenames
+    - fscrypt: add fscrypt_is_nokey_name()
+    - fscrypt: remove kernel-internal constants from UAPI header
+    - vfio/pci: Move dummy_resources_list init in vfio_pci_probe()
+    - btrfs: fix race when defragmenting leads to unnecessary IO
+    - ext4: don't remount read-only with errors=continue on reboot
+    - KVM: x86: avoid incorrect writes to host MSR_IA32_SPEC_CTRL
+    - KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses
+    - KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits
+    - powerpc/bitops: Fix possible undefined behaviour with fls() and fls64()
+    - jffs2: Allow setting rp_size to zero during remounting
+    - jffs2: Fix NULL pointer dereference in rp_size fs option parsing
+    - scsi: block: Fix a race in the runtime power management code
+    - uapi: move constants from <linux/kernel.h> to <linux/const.h>
+    - tools headers UAPI: Sync linux/const.h with the kernel headers
+    - null_blk: Fix zone size initialization
+    - of: fix linker-section match-table corruption
+    - cgroup: Fix memory leak when parsing multiple source parameters
+    - scsi: cxgb4i: Fix TLS dependency
+    - Bluetooth: hci_h5: close serdev device and free hu in h5_close
+    - reiserfs: add check for an invalid ih_entry_count
+    - misc: vmw_vmci: fix kernel info-leak by initializing dbells in
+      vmci_ctx_get_chkpt_doorbells()
+    - media: gp8psk: initialize stats at power control logic
+    - f2fs: fix shift-out-of-bounds in sanity_check_raw_super()
+    - ALSA: seq: Use bool for snd_seq_queue internal flags
+    - ALSA: rawmidi: Access runtime->avail always in spinlock
+    - bfs: don't use WARNING: string when it's just info.
+    - fcntl: Fix potential deadlock in send_sig{io, urg}()
+    - rtc: sun6i: Fix memleak in sun6i_rtc_clk_init
+    - module: set MODULE_STATE_GOING state when a module fails to load
+    - quota: Don't overflow quota file offsets
+    - rtc: pl031: fix resource leak in pl031_probe
+    - powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe()
+    - i3c master: fix missing destroy_workqueue() on error in i3c_master_register
+    - NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode
+    - f2fs: avoid race condition for shrinker count
+    - module: delay kobject uevent until after module init call
+    - fs/namespace.c: WARN if mnt_count has become negative
+    - um: ubd: Submit all data segments atomically
+    - tick/sched: Remove bogus boot "safety" check
+    - ALSA: pcm: Clear the full allocated memory at hw_params
+    - dm verity: skip verity work if I/O error when system is shutting down
+    - Linux 5.4.87
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 19 Feb 2021 17:11:23 +0100
+
+linux (5.4.0-66.74) focal; urgency=medium
+
+  * focal/linux: 5.4.0-66.74 -proposed tracker (LP: #1913152)
+
+  * Add support for selective build of special drivers (LP: #1912789)
+    - [Packaging] Add support for ODM drivers
+    - [Packaging] Turn on ODM support for amd64
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+
+  * Introduce the new NVIDIA 460-server series and update the 460 series
+    (LP: #1913200)
+    - [Config] dkms-versions -- drop NVIDIA 435 455 and 440-server
+    - [Config] dkms-versions -- add the 460-server nvidia driver
+
+  * Enable mute and micmute LED on HP EliteBook 850 G7 (LP: #1910102)
+    - ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7
+
+  * SYNA30B4:00 06CB:CE09 Mouse  on HP EliteBook 850 G7 not working at all
+    (LP: #1908992)
+    - HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device
+
+  * HD Audio Device PCI ID for the Intel Cometlake-R platform (LP: #1912427)
+    - SAUCE: ALSA: hda: Add Cometlake-R PCI ID
+
+  * switch to an autogenerated nvidia series based core via dkms-versions
+    (LP: #1912803)
+    - [Packaging] nvidia -- use dkms-versions to define versions built
+    - [Packaging] update-version-dkms -- maintain flags fields
+    - [Config] dkms-versions -- add transitional/skip information for nvidia
+      packages
+
+  * udpgro.sh in net from ubuntu_kernel_selftests seems not reflecting sub-test
+    result (LP: #1908499)
+    - selftests: fix the return value for UDP GRO test
+
+  * qede: Kubernetes Internal DNS Failure due to QL41xxx NIC not supporting IPIP
+    tx csum offload (LP: #1909062)
+    - qede: fix offload for IPIP tunnel packets
+
+  * Use DCPD to control HP DreamColor panel (LP: #1911001)
+    - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix
+
+  * kvm: Windows 2k19 with Hyper-v role gets stuck on pending hypervisor
+    requests on cascadelake based kvm hosts (LP: #1911848)
+    - KVM: x86: Set KVM_REQ_EVENT if run is canceled with req_immediate_exit set
+
+  * Ubuntu 20.10 four needed fixes to 'Add driver for Mellanox Connect-IB
+    adapters' (LP: #1905574)
+    - net/mlx5: Fix a race when moving command interface to polling mode
+
+  * Fix right sounds and mute/micmute LEDs for HP ZBook Fury 15/17 G7 Mobile
+    Workstation (LP: #1910561)
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
+
+  * Ubuntu 20.04 - multicast counter is not increased in ip -s (LP: #1901842)
+    - net/mlx5e: Fix multicast counter not up-to-date in "ip -s"
+
+  * eeh-basic.sh in powerpc from ubuntu_kernel_selftests timeout with 5.4 P8 /
+    P9 (LP: #1882503)
+    - selftests/powerpc/eeh: disable kselftest timeout setting for eeh-basic
+
+  * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639)
+    - Input: i8042 - unbreak Pegatron C15B
+
+  * CVE-2020-29372
+    - mm: check that mm is still valid in madvise()
+
+  * update ENA driver, incl. new ethtool stats (LP: #1910291)
+    - net: ena: Change WARN_ON expression in ena_del_napi_in_range()
+    - net: ena: ethtool: convert stat_offset to 64 bit resolution
+    - net: ena: ethtool: Add new device statistics
+    - net: ena: ethtool: add stats printing to XDP queues
+    - net: ena: xdp: add queue counters for xdp actions
+    - net: ena: Change license into format to SPDX in all files
+    - net: ena: Change log message to netif/dev function
+    - net: ena: Capitalize all log strings and improve code readability
+    - net: ena: Remove redundant print of placement policy
+    - net: ena: Change RSS related macros and variables names
+    - net: ena: Fix all static chekers' warnings
+    - drivers/net/ethernet: remove incorrectly formatted doc
+    - net: ena: handle bad request id in ena_netdev
+    - net: ena: fix packet's addresses for rx_offset feature
+
+  * s390x broken with unknown syscall number on kernels < 5.8 (LP: #1895132)
+    - s390/ptrace: return -ENOSYS when invalid syscall is supplied
+
+  * Focal update: v5.4.86 upstream stable release (LP: #1910822)
+    - ARM: dts: sun7i: bananapi: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: r40: bananapi-m2-berry: Fix dcdc1 regulator
+    - ARM: dts: sun8i: v40: bananapi-m2-berry: Fix ethernet node
+    - pinctrl: merrifield: Set default bias in case no particular value given
+    - pinctrl: baytrail: Avoid clearing debounce value when turning it off
+    - ARM: dts: sun8i: v3s: fix GIC node memory range
+    - ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on PHY
+    - ARM: dts: imx6qdl-wandboard-revd1: Remove PAD_GPIO_6 from enetgrp
+    - ARM: dts: imx6qdl-kontron-samx6i: fix I2C_PM scl pin
+    - PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter
+    - gpio: zynq: fix reference leak in zynq_gpio functions
+    - gpio: mvebu: fix potential user-after-free on probe
+    - scsi: bnx2i: Requires MMU
+    - xsk: Fix xsk_poll()'s return type
+    - xsk: Replace datagram_poll by sock_poll_wait
+    - can: softing: softing_netdev_open(): fix error handling
+    - clk: renesas: r9a06g032: Drop __packed for portability
+    - block: Simplify REQ_OP_ZONE_RESET_ALL handling
+    - block: factor out requeue handling from dispatch code
+    - blk-mq: In blk_mq_dispatch_rq_list() "no budget" is a reason to kick
+    - pinctrl: aspeed: Fix GPIO requests on pass-through banks
+    - netfilter: x_tables: Switch synchronization to RCU
+    - netfilter: nft_compat: make sure xtables destructors have run
+    - netfilter: nft_dynset: fix timeouts later than 23 days
+    - afs: Fix memory leak when mounting with multiple source parameters
+    - Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
+    - gpio: eic-sprd: break loop when getting NULL device resource
+    - netfilter: nft_ct: Remove confirmation check for NFT_CT_ID
+    - selftests/bpf/test_offload.py: Reset ethtool features after failed setting
+    - RDMA/cm: Fix an attempt to use non-valid pointer when cleaning timewait
+    - i40e: Refactor rx_bi accesses
+    - i40e: optimise prefetch page refcount
+    - i40e: avoid premature Rx buffer reuse
+    - ixgbe: avoid premature Rx buffer reuse
+    - selftests: fix poll error in udpgro.sh
+    - net: mvpp2: add mvpp2_phylink_to_port() helper
+    - drm/tegra: replace idr_init() by idr_init_base()
+    - kernel/cpu: add arch override for clear_tasks_mm_cpumask() mm handling
+    - drm/tegra: sor: Disable clocks on error in tegra_sor_init()
+    - habanalabs: put devices before driver removal
+    - arm64: syscall: exit userspace before unmasking exceptions
+    - vxlan: Add needed_headroom for lower device
+    - vxlan: Copy needed_tailroom from lowerdev
+    - scsi: mpt3sas: Increase IOCInit request timeout to 30s
+    - dm table: Remove BUG_ON(in_interrupt())
+    - iwlwifi: pcie: add one missing entry for AX210
+    - drm/amd/display: Init clock value by current vbios CLKs
+    - perf/x86/intel: Check PEBS status correctly
+    - kbuild: avoid split lines in .mod files
+    - soc/tegra: fuse: Fix index bug in get_process_id
+    - usb: mtu3: fix memory corruption in mtu3_debugfs_regset()
+    - USB: serial: option: add interface-number sanity check to flag handling
+    - USB: gadget: f_acm: add support for SuperSpeed Plus
+    - USB: gadget: f_midi: setup SuperSpeed Plus descriptors
+    - usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
+    - USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
+    - usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul
+    - ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU
+    - ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on
+      Exynos5410
+    - ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU
+    - coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf()
+    - coresight: tmc-etr: Check if page is valid before dma_map_page()
+    - coresight: tmc-etr: Fix barrier packet insertion for perf buffer
+    - coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf()
+    - scsi: megaraid_sas: Check user-provided offsets
+    - HID: i2c-hid: add Vero K147 to descriptor override
+    - serial_core: Check for port state when tty is in error state
+    - Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt()
+    - quota: Sanity-check quota file headers on load
+    - media: msi2500: assign SPI bus number dynamically
+    - crypto: af_alg - avoid undefined behavior accessing salg_name
+    - md: fix a warning caused by a race between concurrent md_ioctl()s
+    - drm/gma500: fix double free of gma_connector
+    - drm/aspeed: Fix Kconfig warning & subsequent build errors
+    - drm/mcde: Fix handling of platform_get_irq() error
+    - drm/tve200: Fix handling of platform_get_irq() error
+    - arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node
+    - arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node
+    - soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains()
+    - soc: mediatek: Check if power domains can be powered on at boot time
+    - soc: qcom: geni: More properly switch to DMA mode
+    - Revert "i2c: i2c-qcom-geni: Fix DMA transfer race"
+    - RDMA/bnxt_re: Set queue pair state when being queried
+    - rtc: pcf2127: fix pcf2127_nvmem_read/write() returns
+    - selinux: fix error initialization in inode_doinit_with_dentry()
+    - ARM: dts: aspeed: s2600wf: Fix VGA memory region location
+    - RDMA/rxe: Compute PSN windows correctly
+    - x86/mm/ident_map: Check for errors from ident_pud_init()
+    - ARM: p2v: fix handling of LPAE translation in BE mode
+    - x86/apic: Fix x2apic enablement without interrupt remapping
+    - sched/deadline: Fix sched_dl_global_validate()
+    - sched: Reenable interrupts in do_sched_yield()
+    - drm/amdgpu: fix incorrect enum type
+    - crypto: talitos - Endianess in current_desc_hdr()
+    - crypto: talitos - Fix return type of current_desc_hdr()
+    - crypto: inside-secure - Fix sizeof() mismatch
+    - ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
+    - ARM: dts: aspeed: tiogapass: Remove vuart
+    - drm/amdgpu: fix build_coefficients() argument
+    - powerpc/64: Set up a kernel stack for secondaries before cpu_restore()
+    - spi: img-spfi: fix reference leak in img_spfi_resume
+    - f2fs: call f2fs_get_meta_page_retry for nat page
+    - drm/msm/dsi_pll_10nm: restore VCO rate during restore_state
+    - spi: spi-mem: fix reference leak in spi_mem_access_start
+    - ASoC: pcm: DRAIN support reactivation
+    - selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling
+    - spi: stm32: fix reference leak in stm32_spi_resume
+    - brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
+    - arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7
+    - arm64: dts: exynos: Correct psci compatible used on Exynos7
+    - Bluetooth: Fix null pointer dereference in hci_event_packet()
+    - Bluetooth: hci_h5: fix memory leak in h5_close
+    - spi: spi-ti-qspi: fix reference leak in ti_qspi_setup
+    - spi: mt7621: fix missing clk_disable_unprepare() on error in
+      mt7621_spi_probe
+    - spi: tegra20-slink: fix reference leak in slink ops of tegra20
+    - spi: tegra20-sflash: fix reference leak in tegra_sflash_resume
+    - spi: tegra114: fix reference leak in tegra spi ops
+    - spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in
+      bcm63xx_hsspi_resume
+    - mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
+    - selftest/bpf: Add missed ip6ip6 test back
+    - ASoC: wm8998: Fix PM disable depth imbalance on error
+    - spi: sprd: fix reference leak in sprd_spi_remove
+    - ASoC: arizona: Fix a wrong free in wm8997_probe
+    - RDMa/mthca: Work around -Wenum-conversion warning
+    - MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA
+    - crypto: qat - fix status check in qat_hal_put_rel_rd_xfer()
+    - staging: greybus: codecs: Fix reference counter leak in error handling
+    - staging: gasket: interrupt: fix the missed eventfd_ctx_put() in
+      gasket_interrupt.c
+    - media: tm6000: Fix sizeof() mismatches
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in
+      mtk_vcodec_release_dec_pm()
+    - media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm()
+    - media: v4l2-fwnode: Return -EINVAL for invalid bus-type
+    - ASoC: meson: fix COMPILE_TEST error
+    - scsi: core: Fix VPD LUN ID designator priorities
+    - media: solo6x10: fix missing snd_card_free in error handling case
+    - video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init()
+    - drm/omap: dmm_tiler: fix return error code in omap_dmm_probe()
+    - Input: ads7846 - fix race that causes missing releases
+    - Input: ads7846 - fix integer overflow on Rt calculation
+    - Input: ads7846 - fix unaligned access on 7845
+    - usb/max3421: fix return error code in max3421_probe()
+    - spi: mxs: fix reference leak in mxs_spi_probe
+    - selftests/bpf: Fix broken riscv build
+    - powerpc: Avoid broken GCC __attribute__((optimize))
+    - powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32
+    - EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId
+    - crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd
+    - crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe
+    - spi: fix resource leak for drivers without .remove callback
+    - soc: ti: knav_qmss: fix reference leak in knav_queue_probe
+    - soc: ti: Fix reference imbalance in knav_dma_probe
+    - drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe
+    - Input: omap4-keypad - fix runtime PM error handling
+    - clk: meson: Kconfig: fix dependency for G12A
+    - RDMA/cxgb4: Validate the number of CQEs
+    - memstick: fix a double-free bug in memstick_check
+    - ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host
+    - ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host
+    - mmc: pxamci: Fix error return code in pxamci_probe
+    - orinoco: Move context allocation after processing the skb
+    - qtnfmac: fix error return code in qtnf_pcie_probe()
+    - rsi: fix error return code in rsi_reset_card()
+    - cw1200: fix missing destroy_workqueue() on error in cw1200_init_common
+    - dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe()
+    - arm64: tegra: Fix DT binding for IO High Voltage entry
+    - media: siano: fix memory leak of debugfs members in smsdvb_hotplug
+    - platform/x86: mlx-platform: Remove PSU EEPROM from default platform
+      configuration
+    - platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform
+      configuration
+    - samples: bpf: Fix lwt_len_hist reusing previous BPF map
+    - media: imx214: Fix stop streaming
+    - mips: cdmm: fix use-after-free in mips_cdmm_bus_discover
+    - media: max2175: fix max2175_set_csm_mode() error code
+    - slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI
+    - HSI: omap_ssi: Don't jump to free ID in ssi_add_controller()
+    - ARM: dts: Remove non-existent i2c1 from 98dx3236
+    - arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name
+    - arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc
+    - power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching
+    - power: supply: bq24190_charger: fix reference leak
+    - genirq/irqdomain: Don't try to free an interrupt that has no mapping
+    - arm64: dts: ls1028a: fix ENETC PTP clock input
+    - arm64: dts: qcom: c630: Polish i2c-hid devices
+    - PCI: Bounds-check command-line resource alignment requests
+    - PCI: Fix overflow in command-line resource alignment requests
+    - PCI: iproc: Fix out-of-bound array accesses
+    - arm64: dts: meson: fix spi-max-frequency on Khadas VIM2
+    - arm64: dts: meson-sm1: fix typo in opp table
+    - soc: amlogic: canvas: add missing put_device() call in meson_canvas_get()
+    - ARM: dts: at91: at91sam9rl: fix ADC triggers
+    - platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
+    - ath10k: Fix the parsing error in service available event
+    - ath10k: Fix an error handling path
+    - ath10k: Release some resources in an error handling path
+    - SUNRPC: rpc_wake_up() should wake up tasks in the correct order
+    - NFSv4.2: condition READDIR's mask for security label based on LSM state
+    - SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
+    - NFSv4: Fix the alignment of page data in the getdeviceinfo reply
+    - net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs'
+    - lockd: don't use interval-based rebinding over TCP
+    - NFS: switch nfsiod to be an UNBOUND workqueue.
+    - selftests/seccomp: Update kernel config
+    - vfio-pci: Use io_remap_pfn_range() for PCI IO memory
+    - hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
+    - media: saa7146: fix array overflow in vidioc_s_audio()
+    - powerpc/perf: Fix crash with is_sier_available when pmu is not set
+    - powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S
+    - clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path
+    - clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent()
+    - iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context
+    - ARM: dts: at91: sama5d2: map securam as device
+    - bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address()
+    - pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe()
+    - arm64: dts: rockchip: Fix UART pull-ups on rk3328
+    - memstick: r592: Fix error return in r592_probe()
+    - MIPS: Don't round up kernel sections size for memblock_add()
+    - net/mlx5: Properly convey driver version to firmware
+    - ASoC: jz4740-i2s: add missed checks for clk_get()
+    - dm ioctl: fix error return code in target_message
+    - phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure
+    - clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne
+    - clocksource/drivers/arm_arch_timer: Correct fault programming of
+      CNTKCTL_EL1.EVNTI
+    - cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: st: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE
+    - cpufreq: loongson1: Add missing MODULE_ALIAS
+    - cpufreq: scpi: Add missing MODULE_ALIAS
+    - Bluetooth: btusb: Add the missed release_firmware() in
+      btusb_mtk_setup_firmware()
+    - Bluetooth: btmtksdio: Add the missed release_firmware() in
+      mtk_setup_firmware()
+    - arm64: dts: meson: fix PHY deassert timing requirements
+    - ARM: dts: meson: fix PHY deassert timing requirements
+    - arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements
+    - scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe
+    - scsi: pm80xx: Fix error return in pm8001_pci_probe()
+    - seq_buf: Avoid type mismatch for seq_buf_init
+    - scsi: fnic: Fix error return code in fnic_probe()
+    - platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx
+      systems
+    - powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops
+    - powerpc/pseries/hibernation: remove redundant cacheinfo update
+    - drm/mediatek: avoid dereferencing a null hdmi_phy on an error message
+    - ASoC: amd: change clk_get() to devm_clk_get() and add missed checks
+    - powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S
+    - usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe
+    - usb: oxu210hp-hcd: Fix memory leak in oxu_create
+    - speakup: fix uninitialized flush_lock
+    - nfsd: Fix message level for normal termination
+    - nfs_common: need lock during iterate through the list
+    - x86/kprobes: Restore BTF if the single-stepping is cancelled
+    - platform/chrome: cros_ec_spi: Don't overwrite spi::mode
+    - bus: fsl-mc: fix error return code in fsl_mc_object_allocate()
+    - s390/cio: fix use-after-free in ccw_device_destroy_console
+    - iwlwifi: mvm: hook up missing RX handlers
+    - erofs: avoid using generic_block_bmap
+    - can: m_can: m_can_config_endisable(): remove double clearing of clock stop
+      request bit
+    - RDMA/core: Do not indicate device ready when device enablement fails
+    - remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable
+    - remoteproc: qcom: fix reference leak in adsp_start
+    - remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio()
+    - clk: tegra: Fix duplicated SE clock entry
+    - mtd: rawnand: gpmi: fix reference count leak in gpmi ops
+    - mtd: rawnand: meson: Fix a resource leak in init
+    - mtd: rawnand: gpmi: Fix the random DMA timeout issue
+    - extcon: max77693: Fix modalias string
+    - crypto: atmel-i2c - select CONFIG_BITREVERSE
+    - mac80211: don't set set TDLS STA bandwidth wider than possible
+    - ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control()
+    - irqchip/alpine-msi: Fix freeing of interrupts on allocation error path
+    - watchdog: armada_37xx: Add missing dependency on HAS_IOMEM
+    - watchdog: sirfsoc: Add missing dependency on HAS_IOMEM
+    - watchdog: sprd: remove watchdog disable from resume fail path
+    - watchdog: sprd: check busy bit before new loading rather than after that
+    - watchdog: Fix potential dereferencing of null pointer
+    - ubifs: Fix error return code in ubifs_init_authentication()
+    - um: Monitor error events in IRQ controller
+    - um: tty: Fix handling of close in tty lines
+    - um: chan_xterm: Fix fd leak
+    - sunrpc: fix xs_read_xdr_buf for partial pages receive
+    - RDMA/cma: Don't overwrite sgid_attr after device is released
+    - nfc: s3fwrn5: Release the nfc firmware
+    - powerpc/ps3: use dma_mapping_error()
+    - sparc: fix handling of page table constructor failure
+    - mm: don't wake kswapd prematurely when watermark boosting is disabled
+    - checkpatch: fix unescaped left brace
+    - lan743x: fix rx_napi_poll/interrupt ping-pong
+    - net: bcmgenet: Fix a resource leak in an error handling path in the probe
+      functin
+    - net: allwinner: Fix some resources leak in the error handling path of the
+      probe and in the remove function
+    - net: korina: fix return value
+    - libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
+    - watchdog: qcom: Avoid context switch in restart handler
+    - watchdog: coh901327: add COMMON_CLK dependency
+    - clk: ti: Fix memleak in ti_fapll_synth_setup
+    - pwm: zx: Add missing cleanup in error path
+    - pwm: lp3943: Dynamically allocate PWM chip base
+    - perf record: Fix memory leak when using '--user-regs=?' to list registers
+    - qlcnic: Fix error code in probe
+    - virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
+    - virtio_net: Fix error code in probe()
+    - virtio_ring: Fix two use after free bugs
+    - clk: at91: sam9x60: remove atmel,osc-bypass support
+    - clk: s2mps11: Fix a resource leak in error handling paths in the probe
+      function
+    - clk: sunxi-ng: Make sure divider tables have sentinel
+    - kconfig: fix return value of do_error_if()
+    - perf probe: Fix memory leak when synthesizing SDT probes
+    - ARM: sunxi: Add machine match for the Allwinner V3 SoC
+    - cfg80211: initialize rekey_data
+    - fix namespaced fscaps when !CONFIG_SECURITY
+    - lwt: Disable BH too in run_lwt_bpf()
+    - drm/amd/display: Prevent bandwidth overflow
+    - drm/amdkfd: Fix leak in dmabuf import
+    - Input: cros_ec_keyb - send 'scancodes' in addition to key events
+    - initramfs: fix clang build failure
+    - Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
+    - vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU
+    - media: gspca: Fix memory leak in probe
+    - media: sunxi-cir: ensure IR is handled when it is continuous
+    - media: netup_unidvb: Don't leak SPI master in probe error path
+    - media: ipu3-cio2: Remove traces of returned buffers
+    - media: ipu3-cio2: Return actual subdev format
+    - media: ipu3-cio2: Serialise access to pad format
+    - media: ipu3-cio2: Validate mbus format in setting subdev format
+    - media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE
+    - Input: cyapa_gen6 - fix out-of-bounds stack access
+    - ALSA: hda/ca0132 - Change Input Source enum strings.
+    - Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources
+      walks"
+    - ACPI: PNP: compare the string length in the matching_id()
+    - ALSA: hda: Fix regressions on clear and reconfig sysfs
+    - ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg.
+    - ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop
+    - ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256
+    - ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255
+    - ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button
+    - ALSA: pcm: oss: Fix a few more UBSAN fixes
+    - ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
+    - ALSA: hda/realtek: Add quirk for MSI-GP73
+    - ALSA: hda/realtek: Apply jack fixup for Quanta NL3
+    - ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
+    - ALSA: usb-audio: Disable sample read check if firmware doesn't give back
+    - ALSA: core: memalloc: add page alignment for iram
+    - s390/smp: perform initial CPU reset also for SMT siblings
+    - s390/kexec_file: fix diag308 subcode when loading crash kernel
+    - s390/dasd: fix hanging device offline processing
+    - s390/dasd: prevent inconsistent LCU device data
+    - s390/dasd: fix list corruption of pavgroup group list
+    - s390/dasd: fix list corruption of lcu list
+    - binder: add flag to clear buffer on txn complete
+    - ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams
+    - staging: comedi: mf6x4: Fix AI end-of-conversion detection
+    - perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY
+    - perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake
+    - powerpc/perf: Exclude kernel samples while counting events in user space.
+    - crypto: ecdh - avoid unaligned accesses in ecdh_set_secret()
+    - crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata
+    - EDAC/i10nm: Use readl() to access MMIO registers
+    - EDAC/amd64: Fix PCI component registration
+    - cpuset: fix race between hotplug work and later CPU offline
+    - USB: serial: mos7720: fix parallel-port state restore
+    - USB: serial: digi_acceleport: fix write-wakeup deadlocks
+    - USB: serial: keyspan_pda: fix dropped unthrottle interrupts
+    - USB: serial: keyspan_pda: fix write deadlock
+    - USB: serial: keyspan_pda: fix stalled writes
+    - USB: serial: keyspan_pda: fix write-wakeup use-after-free
+    - USB: serial: keyspan_pda: fix tx-unthrottle use-after-free
+    - USB: serial: keyspan_pda: fix write unthrottling
+    - btrfs: do not shorten unpin len for caching block groups
+    - ext4: fix a memory leak of ext4_free_data
+    - ext4: fix deadlock with fs freezing and EA inodes
+    - KVM: arm64: Introduce handling of AArch32 TTBCR2 traps
+    - ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES
+    - ARM: dts: at91: sama5d2: fix CAN message ram offset and size
+    - xprtrdma: Fix XDRBUF_SPARSE_PAGES support
+    - powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at
+    - powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter
+    - powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE
+    - powerpc/xmon: Change printk() to pr_cont()
+    - powerpc/8xx: Fix early debug when SMC1 is relocated
+    - powerpc/mm: Fix verification of MMU_FTR_TYPE_44x
+    - powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU
+    - powerpc/powernv/memtrace: Don't leak kernel memory to user space
+    - powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
+    - ima: Don't modify file descriptor mode on the fly
+    - um: Remove use of asprinf in umid.c
+    - ceph: fix race in concurrent __ceph_remove_cap invocations
+    - SMB3: avoid confusing warning message on mount to Azure
+    - ubifs: wbuf: Don't leak kernel memory to flash
+    - jffs2: Fix GC exit abnormally
+    - jffs2: Fix ignoring mounting options problem during remounting
+    - jfs: Fix array index bounds check in dbAdjTree
+    - platform/x86: mlx-platform: remove an unused variable
+    - drm/amd/display: Fix memory leaks in S3 resume
+    - drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor()
+    - drm/i915: Fix mismatch between misplaced vma check and vma insert
+    - spi: pxa2xx: Fix use-after-free on unbind
+    - spi: spi-sh: Fix use-after-free on unbind
+    - spi: atmel-quadspi: Fix use-after-free on unbind
+    - spi: davinci: Fix use-after-free on unbind
+    - spi: fsl: fix use of spisel_boot signal on MPC8309
+    - spi: gpio: Don't leak SPI master in probe error path
+    - spi: mxic: Don't leak SPI master in probe error path
+    - spi: pic32: Don't leak DMA channels in probe error path
+    - spi: rb4xx: Don't leak SPI master in probe error path
+    - spi: sc18is602: Don't leak SPI master in probe error path
+    - spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path
+    - spi: synquacer: Disable clock in probe error path
+    - spi: mt7621: Disable clock in probe error path
+    - spi: mt7621: Don't leak SPI master in probe error path
+    - spi: atmel-quadspi: Disable clock in probe error path
+    - spi: atmel-quadspi: Fix AHB memory accesses
+    - soc: qcom: smp2p: Safely acquire spinlock without IRQs
+    - mtd: spinand: Fix OOB read
+    - mtd: parser: cmdline: Fix parsing of part-names with colons
+    - mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read
+    - mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments
+    - scsi: qla2xxx: Fix crash during driver load on big endian machines
+    - scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc()
+    - scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free()
+    - iio: buffer: Fix demux update
+    - iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in
+      rockchip_saradc_resume
+    - iio:light:rpr0521: Fix timestamp alignment and prevent data leak.
+    - iio:light:st_uvis25: Fix timestamp alignment and prevent data leak.
+    - iio:magnetometer:mag3110: Fix alignment and data leak issues.
+    - iio:pressure:mpl3115: Force alignment of buffer
+    - iio:imu:bmi160: Fix too large a buffer.
+    - iio:adc:ti-ads124s08: Fix buffer being too long.
+    - iio:adc:ti-ads124s08: Fix alignment and data leak issues.
+    - md/cluster: block reshape with remote resync job
+    - md/cluster: fix deadlock when node is doing resync job
+    - pinctrl: sunxi: Always call chained_irq_{enter, exit} in
+      sunxi_pinctrl_irq_handler
+    - clk: ingenic: Fix divider calculation with div tables
+    - clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9
+    - clk: tegra: Do not return 0 on failure
+    - device-dax/core: Fix memory leak when rmmod dax.ko
+    - dma-buf/dma-resv: Respect num_fences when initializing the shared fence
+      list.
+    - xen-blkback: set ring->xenblkd to NULL after kthread_stop()
+    - xen/xenbus: Allow watches discard events before queueing
+    - xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path()
+    - xen/xenbus/xen_bus_type: Support will_handle watch callback
+    - xen/xenbus: Count pending messages for each watch
+    - xenbus/xenbus_backend: Disallow pending watch messages
+    - libnvdimm/namespace: Fix reaping of invalidated block-window-namespace
+      labels
+    - platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12
+    - PCI: Fix pci_slot_release() NULL pointer dereference
+    - regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x
+    - rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time
+    - Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS"
+    - x86/CPU/AMD: Save AMD NodeId as cpu_die_id
+    - Linux 5.4.86
+
+  * Focal update: v5.4.85 upstream stable release (LP: #1910817)
+    - ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info()
+    - ipv4: fix error return code in rtm_to_fib_config()
+    - mac80211: mesh: fix mesh_pathtbl_init() error path
+    - net: bridge: vlan: fix error return code in __vlan_add()
+    - vrf: packets with lladdr src needs dst at input with orig_iif when needs
+      strict
+    - net: hns3: remove a misused pragma packed
+    - udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
+    - enetc: Fix reporting of h/w packet counters
+    - bridge: Fix a deadlock when enabling multicast snooping
+    - net: stmmac: free tx skb buffer in stmmac_resume()
+    - tcp: select sane initial rcvq_space.space for big MSS
+    - tcp: fix cwnd-limited bug for TSO deferral where we send nothing
+    - net/mlx4_en: Avoid scheduling restart task if it is already running
+    - lan743x: fix for potential NULL pointer dereference with bare card
+    - net/mlx4_en: Handle TX error CQE
+    - net: ll_temac: Fix potential NULL dereference in temac_probe()
+    - net: stmmac: dwmac-meson8b: fix mask definition of the m250_sel mux
+    - net: stmmac: delete the eee_ctrl_timer after napi disabled
+    - ktest.pl: If size of log is too big to email, email error message
+    - USB: dummy-hcd: Fix uninitialized array use in init()
+    - USB: add RESET_RESUME quirk for Snapscan 1212
+    - ALSA: usb-audio: Fix potential out-of-bounds shift
+    - ALSA: usb-audio: Fix control 'access overflow' errors from chmap
+    - xhci: Give USB2 ports time to enter U3 in bus suspend
+    - xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP
+    - USB: UAS: introduce a quirk to set no_write_same
+    - USB: sisusbvga: Make console support depend on BROKEN
+    - [Config] updateconfigs for USB_SISUSBVGA_CON
+    - ALSA: pcm: oss: Fix potential out-of-bounds shift
+    - serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access
+    - KVM: mmu: Fix SPTE encoding of MMIO generation upper half
+    - membarrier: Explicitly sync remote cores when SYNC_CORE is requested
+    - x86/resctrl: Remove unused struct mbm_state::chunks_bw
+    - x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
+    - Linux 5.4.85
+
+  * Focal update: v5.4.84 upstream stable release (LP: #1910816)
+    - Kbuild: do not emit debug info for assembly with LLVM_IAS=1
+    - x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
+    - iwlwifi: pcie: limit memory read spin time
+    - arm64: dts: rockchip: Assign a fixed index to mmc devices on rk3399 boards.
+    - iwlwifi: pcie: set LTR to avoid completion timeout
+    - iwlwifi: mvm: fix kernel panic in case of assert during CSA
+    - powerpc: Drop -me200 addition to build flags
+    - arm64: dts: broadcom: clear the warnings caused by empty dma-ranges
+    - ARC: stack unwinding: don't assume non-current task is sleeping
+    - scsi: ufs: Make sure clk scaling happens only when HBA is runtime ACTIVE
+    - interconnect: qcom: qcs404: Remove GPU and display RPM IDs
+    - ibmvnic: skip tx timeout reset while in resetting
+    - irqchip/gic-v3-its: Unconditionally save/restore the ITS state on suspend
+    - spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
+    - soc: fsl: dpio: Get the cpumask through cpumask_of(cpu)
+    - arm64: tegra: Disable the ACONNECT for Jetson TX2
+    - platform/x86: thinkpad_acpi: Do not report SW_TABLET_MODE on Yoga 11e
+    - platform/x86: thinkpad_acpi: Add BAT1 is primary battery quirk for Thinkpad
+      Yoga 11e 4th gen
+    - platform/x86: acer-wmi: add automatic keyboard background light toggle key
+      as KEY_LIGHTS_TOGGLE
+    - platform/x86: intel-vbtn: Support for tablet mode on HP Pavilion 13 x360 PC
+    - platform/x86: touchscreen_dmi: Add info for the Irbis TW118 tablet
+    - can: m_can: m_can_dev_setup(): add support for bosch mcan version 3.3.0
+    - ktest.pl: Fix incorrect reboot for grub2bls
+    - Input: cm109 - do not stomp on control URB
+    - Input: i8042 - add Acer laptops to the i8042 reset list
+    - mmc: block: Fixup condition for CMD13 polling for RPMB requests
+    - drm/i915/display/dp: Compute the correct slice count for VDSC on DP
+    - kbuild: avoid static_assert for genksyms
+    - proc: use untagged_addr() for pagemap_read addresses
+    - scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
+    - x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
+    - x86/membarrier: Get rid of a dubious optimization
+    - x86/apic/vector: Fix ordering in vector assignment
+    - mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
+    - [Config] updateconfigs for PGTABLE_MAPPING
+    - compiler.h: fix barrier_data() on clang
+    - Linux 5.4.84
+
+  * MSFT Touchpad not working on Lenovo Legion-5 15ARH05 (LP: #1887190) // Focal
+    update: v5.4.84 upstream stable release (LP: #1910816)
+    - pinctrl: amd: remove debounce filter setting in IRQ type setting
+
+  * Focal update: v5.4.83 upstream stable release (LP: #1910784)
+    - pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq
+      pin to output
+    - pinctrl: baytrail: Fix pin being driven low for a while on gpiod_get(...,
+      GPIOD_OUT_HIGH)
+    - usb: gadget: f_fs: Use local copy of descriptors for userspace copy
+    - USB: serial: kl5kusb105: fix memleak on open
+    - USB: serial: ch341: add new Product ID for CH341A
+    - USB: serial: ch341: sort device-id entries
+    - USB: serial: option: add Fibocom NL668 variants
+    - USB: serial: option: add support for Thales Cinterion EXS82
+    - USB: serial: option: fix Quectel BG96 matching
+    - tty: Fix ->pgrp locking in tiocspgrp()
+    - tty: Fix ->session locking
+    - ALSA: hda/realtek: Fix bass speaker DAC assignment on Asus Zephyrus G14
+    - ALSA: hda/realtek: Add mute LED quirk to yet another HP x360 model
+    - ALSA: hda/realtek: Enable headset of ASUS UX482EG & B9400CEA with ALC294
+    - ALSA: hda/realtek - Add new codec supported for ALC897
+    - ALSA: hda/generic: Add option to enforce preferred_dacs pairs
+    - ftrace: Fix updating FTRACE_FL_TRAMP
+    - cifs: allow syscalls to be restarted in __smb_send_rqst()
+    - cifs: fix potential use-after-free in cifs_echo_request()
+    - i2c: imx: Don't generate STOP condition if arbitration has been lost
+    - thunderbolt: Fix use-after-free in remove_unplugged_switch()
+    - drm/i915/gt: Program mocs:63 for cache eviction on gen9
+    - scsi: mpt3sas: Fix ioctl timeout
+    - dm writecache: fix the maximum number of arguments
+    - powerpc/64s/powernv: Fix memory corruption when saving SLB entries on MCE
+    - genirq/irqdomain: Add an irq_create_mapping_affinity() function
+    - powerpc/pseries: Pass MSI affinity to irq_create_mapping()
+    - dm: fix bug with RCU locking in dm_blk_report_zones
+    - dm: remove invalid sparse __acquires and __releases annotations
+    - x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
+    - coredump: fix core_pattern parse error
+    - mm: list_lru: set shrinker map bit when child nr_items is not zero
+    - mm/swapfile: do not sleep with a spin lock held
+    - speakup: Reject setting the speakup line discipline outside of speakup
+    - i2c: imx: Fix reset of I2SR_IAL flag
+    - i2c: imx: Check for I2SR_IAL after every byte
+    - spi: bcm2835: Release the DMA channel if probe fails after dma_init
+    - iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs
+    - tracing: Fix userstacktrace option for instances
+    - lib/syscall: fix syscall registers retrieval on 32-bit platforms
+    - can: af_can: can_rx_unregister(): remove WARN() statement from list
+      operation sanity check
+    - gfs2: check for empty rgrp tree in gfs2_ri_update
+    - netfilter: ipset: prevent uninit-value in hash_ip6_add
+    - tipc: fix a deadlock when flushing scheduled work
+    - ASoC: wm_adsp: fix error return code in wm_adsp_load()
+    - rtw88: debug: Fix uninitialized memory in debugfs code
+    - i2c: qup: Fix error return code in qup_i2c_bam_schedule_desc()
+    - dm writecache: remove BUG() and fail gracefully instead
+    - Input: i8042 - fix error return code in i8042_setup_aux()
+    - netfilter: nf_tables: avoid false-postive lockdep splat
+    - netfilter: nftables_offload: set address type in control dissector
+    - x86/insn-eval: Use new for_each_insn_prefix() macro to loop over prefixes
+      bytes
+    - Linux 5.4.83
+
+  * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels
+    (LP: #1908529)
+    - [dep-8] Allow all hwe kernels
+
+  * failing ftrace self tests from 5.7+ onwards (LP: #1893024)
+    - SAUCE: Revert "selftests/ftrace: check for do_sys_openat2 in user-memory
+      test"
+
+  * selftests: test_vxlan_under_vrf: mute unnecessary error message
+    (LP: #1908342)
+    - selftests: test_vxlan_under_vrf: mute unnecessary error message
+
+  * Focal update: v5.4.82 upstream stable release (LP: #1908564)
+    - devlink: Hold rtnl lock while reading netdev attributes
+    - ipv6: addrlabel: fix possible memory leak in ip6addrlbl_net_init
+    - net/af_iucv: set correct sk_protocol for child sockets
+    - net/tls: missing received data after fast remote close
+    - net/tls: Protect from calling tls_dev_del for TLS RX twice
+    - rose: Fix Null pointer dereference in rose_send_frame()
+    - sock: set sk_err to ee_errno on dequeue from errq
+    - tcp: Set INET_ECN_xmit configuration in tcp_reinit_congestion_control
+    - tun: honor IOCB_NOWAIT flag
+    - usbnet: ipheth: fix connectivity with iOS 14
+    - bonding: wait for sysfs kobject destruction before freeing struct slave
+    - staging/octeon: fix up merge error
+    - ima: extend boot_aggregate with kernel measurements
+    - sched/fair: Fix unthrottle_cfs_rq() for leaf_cfs_rq list
+    - netfilter: bridge: reset skb->pkt_type after NF_INET_POST_ROUTING traversal
+    - ipv4: Fix tos mask in inet_rtm_getroute()
+    - dt-bindings: net: correct interrupt flags in examples
+    - chelsio/chtls: fix panic during unload reload chtls
+    - ibmvnic: Ensure that SCRQ entry reads are correctly ordered
+    - ibmvnic: Fix TX completion error handling
+    - inet_ecn: Fix endianness of checksum update when setting ECT(1)
+    - net: ip6_gre: set dev->hard_header_len when using header_ops
+    - net/x25: prevent a couple of overflows
+    - cxgb3: fix error return code in t3_sge_alloc_qset()
+    - net: pasemi: fix error return code in pasemi_mac_open()
+    - vxlan: fix error return code in __vxlan_dev_create()
+    - chelsio/chtls: fix a double free in chtls_setkey()
+    - net: mvpp2: Fix error return code in mvpp2_open()
+    - net: skbuff: ensure LSE is pullable before decrementing the MPLS ttl
+    - net: openvswitch: ensure LSE is pullable before reading it
+    - net/sched: act_mpls: ensure LSE is pullable before reading it
+    - net/mlx5: DR, Proper handling of unsupported Connect-X6DX SW steering
+    - net/mlx5: Fix wrong address reclaim when command interface is down
+    - ALSA: usb-audio: US16x08: fix value count for level meters
+    - Input: xpad - support Ardwiino Controllers
+    - tracing: Remove WARN_ON in start_thread()
+    - RDMA/i40iw: Address an mmap handler exploit in i40iw
+    - Linux 5.4.82
+
+  * Focal update: v5.4.81 upstream stable release (LP: #1908562)
+    - spi: bcm-qspi: Fix use-after-free on unbind
+    - spi: bcm2835: Fix use-after-free on unbind
+    - ipv4: use IS_ENABLED instead of ifdef
+    - netfilter: clear skb->next in NF_HOOK_LIST()
+    - btrfs: tree-checker: add missing return after error in root_item
+    - btrfs: tree-checker: add missing returns after data_ref alignment checks
+    - btrfs: don't access possibly stale fs_info data for printing duplicate
+      device
+    - btrfs: fix lockdep splat when reading qgroup config on mount
+    - wireless: Use linux/stddef.h instead of stddef.h
+    - smb3: Call cifs reconnect from demultiplex thread
+    - smb3: Avoid Mid pending list corruption
+    - smb3: Handle error case during offload read path
+    - cifs: fix a memleak with modefromsid
+    - KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
+    - KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
+    - KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
+    - KVM: x86: Fix split-irqchip vs interrupt injection window request
+    - trace: fix potenial dangerous pointer
+    - arm64: pgtable: Fix pte_accessible()
+    - arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
+    - HID: uclogic: Add ID for Trust Flex Design Tablet
+    - HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
+    - HID: cypress: Support Varmilo Keyboards' media hotkeys
+    - HID: add support for Sega Saturn
+    - Input: i8042 - allow insmod to succeed on devices without an i8042
+      controller
+    - HID: hid-sensor-hub: Fix issue with devices with no report ID
+    - staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
+    - HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
+    - dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
+    - x86/xen: don't unbind uninitialized lock_kicker_irq
+    - HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo
+      Edge
+    - HID: Add Logitech Dinovo Edge battery quirk
+    - proc: don't allow async path resolution of /proc/self components
+    - nvme: free sq/cq dbbuf pointers when dbbuf set fails
+    - vhost scsi: fix cmd completion race
+    - dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
+    - scsi: libiscsi: Fix NOP race condition
+    - scsi: target: iscsi: Fix cmd abort fabric stop race
+    - perf/x86: fix sysfs type mismatches
+    - xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
+    - net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
+    - bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
+    - ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
+    - phy: tegra: xusb: Fix dangling pointer on probe failure
+    - iwlwifi: mvm: write queue_sync_state only for sync
+    - batman-adv: set .owner to THIS_MODULE
+    - arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
+    - ARM: dts: dra76x: m_can: fix order of clocks
+    - scsi: ufs: Fix race between shutdown and runtime resume flow
+    - bnxt_en: fix error return code in bnxt_init_one()
+    - bnxt_en: fix error return code in bnxt_init_board()
+    - video: hyperv_fb: Fix the cache type when mapping the VRAM
+    - bnxt_en: Release PCI regions when DMA mask setup fails during probe.
+    - cxgb4: fix the panic caused by non smac rewrite
+    - s390/qeth: make af_iucv TX notification call more robust
+    - s390/qeth: fix af_iucv notification race
+    - s390/qeth: fix tear down of async TX buffers
+    - ibmvnic: fix call_netdevice_notifiers in do_reset
+    - ibmvnic: notify peers when failover and migration happen
+    - powerpc/64s: Fix allnoconfig build since uaccess flush
+    - IB/mthca: fix return value of error branch in mthca_init_cq()
+    - i40e: Fix removing driver while bare-metal VFs pass traffic
+    - nfc: s3fwrn5: use signed integer for parsing GPIO numbers
+    - net: ena: set initial DMA width to avoid intel iommu issue
+    - ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
+    - ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
+    - optee: add writeback to valid memory type
+    - arm64: tegra: Wrong AON HSP reg property size
+    - efivarfs: revert "fix memory leak in efivarfs_create()"
+    - efi: EFI_EARLYCON should depend on EFI
+    - can: gs_usb: fix endianess problem with candleLight firmware
+    - platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
+    - platform/x86: toshiba_acpi: Fix the wrong variable assignment
+    - RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
+    - RDMA/hns: Bugfix for memory window mtpt configuration
+    - can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from
+      request_threaded_irq()'s flags
+    - can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
+    - perf stat: Use proper cpu for shadow stats
+    - perf probe: Fix to die_entrypc() returns error correctly
+    - spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
+    - USB: core: Change %pK for __user pointers to %px
+    - usb: gadget: f_midi: Fix memleak in f_midi_alloc
+    - USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO
+      built-in usb-audio card
+    - usb: gadget: Fix memleak in gadgetfs_fill_super
+    - irqchip/exiu: Fix the index of fwspec for IRQ type
+    - x86/mce: Do not overwrite no_way_out if mce_end() fails
+    - x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
+    - x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
+    - x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
+    - USB: core: Fix regression in Hercules audio card
+    - ASoC: Intel: Skylake: Remove superfluous chip initialization
+    - ASoC: Intel: Skylake: Select hda configuration permissively
+    - ASoC: Intel: Skylake: Enable codec wakeup during chip init
+    - ASoC: Intel: Skylake: Shield against no-NHLT configurations
+    - ASoC: Intel: Allow for ROM init retry on CNL platforms
+    - ASoC: Intel: Skylake: Await purge request ack on CNL
+    - ASoC: Intel: Multiple I/O PCM format support for pipe
+    - ASoC: Intel: Skylake: Automatic DMIC format configuration according to
+      information from NHLT
+    - Linux 5.4.81
+
+  * Focal update: v5.4.80 upstream stable release (LP: #1908561)
+    - ah6: fix error return code in ah6_input()
+    - atm: nicstar: Unmap DMA on send error
+    - bnxt_en: read EEPROM A2h address using page 0
+    - devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
+    - Exempt multicast addresses from five-second neighbor lifetime
+    - inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
+    - ipv6: Fix error path to cancel the meseage
+    - lan743x: fix issue causing intermittent kernel log warnings
+    - lan743x: prevent entire kernel HANG on open, for some platforms
+    - mlxsw: core: Use variable timeout for EMAD retries
+    - net: b44: fix error return code in b44_init_one()
+    - net: bridge: add missing counters to ndo_get_stats64 callback
+    - net: dsa: mv88e6xxx: Avoid VTU corruption on 6097
+    - net: ethernet: ti: cpsw: fix error return code in cpsw_probe()
+    - net: Have netpoll bring-up DSA management interface
+    - netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
+    - netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
+    - net: lantiq: Wait for the GPHY firmware to be ready
+    - net/mlx4_core: Fix init_hca fields offset
+    - net: qualcomm: rmnet: Fix incorrect receive packet handling during cleanup
+    - net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
+    - net/tls: fix corrupted data in recvmsg
+    - net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
+    - page_frag: Recover from memory pressure
+    - qed: fix error return code in qed_iwarp_ll2_start()
+    - qlcnic: fix error return code in qlcnic_83xx_restart_hw()
+    - sctp: change to hold/put transport for proto_unreach_timer
+    - tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
+    - net/mlx5: Add handling of port type in rule deletion
+    - net/mlx5: Disable QoS when min_rates on all VFs are zero
+    - net: usb: qmi_wwan: Set DTR quirk for MR400
+    - net/ncsi: Fix netlink registration
+    - net: ftgmac100: Fix crash when removing driver
+    - pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
+    - scsi: ufs: Fix unbalanced scsi_block_reqs_cnt caused by ufshcd_hold()
+    - selftests: kvm: Fix the segment descriptor layout to match the actual layout
+    - ACPI: button: Add DMI quirk for Medion Akoya E2228T
+    - arm64: errata: Fix handling of 1418040 with late CPU onlining
+    - arm64: psci: Avoid printing in cpu_psci_cpu_die()
+    - arm64: smp: Tell RCU about CPUs that fail to come online
+    - vfs: remove lockdep bogosity in __sb_start_write
+    - gfs2: fix possible reference leak in gfs2_check_blk_type
+    - hwmon: (pwm-fan) Fix RPM calculation
+    - arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: Pine H64: Enable both RGMII RX/TX delay
+    - arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
+    - arm64: dts: allwinner: a64: Pine64 Plus: Fix ethernet node
+    - arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
+    - Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high"
+    - ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII RX/TX delay on Ethernet
+      PHY
+    - ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sun9i: Enable both RGMII RX/TX delay on Ethernet PHY
+    - ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX delay on Ethernet PHY
+    - arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII RX/TX delay on PHY
+    - Input: adxl34x - clean up a data type in adxl34x_probe()
+    - MIPS: export has_transparent_hugepage() for modules
+    - arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
+    - arm64: dts imx8mn: Remove non-existent USB OTG2
+    - arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
+    - swiotlb: using SIZE_MAX needs limits.h included
+    - arm64: dts: imx8mm: fix voltage for 1.6GHz CPU operating point
+    - ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
+    - Input: resistive-adc-touch - fix kconfig dependency on IIO_BUFFER
+    - rfkill: Fix use-after-free in rfkill_resume()
+    - RDMA/pvrdma: Fix missing kfree() in pvrdma_register_device()
+    - [Config] updateconfigs for INFINIBAND_VIRT_DMA
+    - RMDA/sw: Don't allow drivers using dma_virt_ops on highmem configs
+    - perf lock: Don't free "lock_seq_stat" if read_count isn't zero
+    - tools, bpftool: Add missing close before bpftool net attach exit
+    - ip_tunnels: Set tunnel option flag when tunnel metadata is present
+    - can: af_can: prevent potential access of uninitialized member in can_rcv()
+    - can: af_can: prevent potential access of uninitialized member in canfd_rcv()
+    - can: dev: can_restart(): post buffer from the right context
+    - can: ti_hecc: Fix memleak in ti_hecc_probe
+    - can: mcba_usb: mcba_usb_start_xmit(): first fill skb, then pass to
+      can_put_echo_skb()
+    - can: peak_usb: fix potential integer overflow on shift of a int
+    - can: flexcan: fix failure handling of pm_runtime_get_sync()
+    - can: tcan4x5x: replace depends on REGMAP_SPI with depends on SPI
+    - can: tcan4x5x: tcan4x5x_can_probe(): add missing error checking for
+      devm_regmap_init()
+    - can: tcan4x5x: tcan4x5x_can_remove(): fix order of deregistration
+    - can: m_can: m_can_handle_state_change(): fix state change
+    - can: m_can: m_can_class_free_dev(): introduce new function
+    - can: m_can: m_can_stop(): set device to software init mode before closing
+    - ASoC: qcom: lpass-platform: Fix memory leak
+    - selftests/bpf: Fix error return code in run_getsockopt_test()
+    - MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
+    - drm/sun4i: dw-hdmi: fix error return code in sun8i_dw_hdmi_bind()
+    - net/mlx5: E-Switch, Fail mlx5_esw_modify_vport_rate if qos disabled
+    - bpf, sockmap: Fix partial copy_page_to_iter so progress can still be made
+    - bpf, sockmap: Ensure SO_RCVBUF memory is observed on ingress redirect
+    - can: kvaser_pciefd: Fix KCAN bittiming limits
+    - can: kvaser_usb: kvaser_usb_hydra: Fix KCAN bittiming limits
+    - iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header
+    - iommu/vt-d: Avoid panic if iommu init fails in tboot system
+    - can: flexcan: flexcan_chip_start(): fix erroneous
+      flexcan_transceiver_enable() during bus-off recovery
+    - can: m_can: process interrupt only when not runtime suspended
+    - xfs: fix the minrecs logic when dealing with inode root child blocks
+    - xfs: strengthen rmap record flags checking
+    - xfs: return corresponding errcode if xfs_initialize_perag() fail
+    - regulator: ti-abb: Fix array out of bound read access on the first
+      transition
+    - fail_function: Remove a redundant mutex unlock
+    - xfs: revert "xfs: fix rmap key and record comparison functions"
+    - bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
+    - bpf, sockmap: On receive programs try to fast track SK_PASS ingress
+    - bpf, sockmap: Use truesize with sk_rmem_schedule()
+    - bpf, sockmap: Avoid returning unneeded EAGAIN when redirecting to self
+    - efi/x86: Free efi_pgd with free_pages()
+    - libfs: fix error cast of negative value in simple_attr_write()
+    - HID: logitech-hidpp: Add PID for MX Anywhere 2
+    - HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad
+    - HID: logitech-dj: Fix Dinovo Mini when paired with a MX5x00 receiver
+    - speakup: Do not let the line discipline be used several times
+    - ALSA: firewire: Clean up a locking issue in copy_resp_to_buf()
+    - ALSA: usb-audio: Add delay quirk for all Logitech USB devices
+    - ALSA: ctl: fix error path at adding user-defined element set
+    - ALSA: mixart: Fix mutex deadlock
+    - ALSA: hda/realtek - Add supported for Lenovo ThinkPad Headset Button
+    - ALSA: hda/realtek: Add some Clove SSID in the ALC293(ALC1220)
+    - tty: serial: imx: fix potential deadlock
+    - tty: serial: imx: keep console clocks always on
+    - HID: logitech-dj: Fix an error in mse_bluetooth_descriptor
+    - efivarfs: fix memory leak in efivarfs_create()
+    - staging: rtl8723bs: Add 024c:0627 to the list of SDIO device-ids
+    - iio: light: fix kconfig dependency bug for VCNL4035
+    - ext4: fix bogus warning in ext4_update_dx_flag()
+    - iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
+    - iio: accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-
+      mode
+    - iio: adc: mediatek: fix unset field
+    - spi: lpspi: Fix use-after-free on unbind
+    - spi: Introduce device-managed SPI controller allocation
+    - spi: npcm-fiu: Don't leak SPI master in probe error path
+    - spi: bcm2835aux: Fix use-after-free on unbind
+    - regulator: pfuze100: limit pfuze-support-disable-sw to pfuze{100,200}
+    - regulator: fix memory leak with repeated set_machine_constraints()
+    - regulator: avoid resolve_supply() infinite recursion
+    - regulator: workaround self-referent regulators
+    - xtensa: fix TLBTEMP area placement
+    - xtensa: disable preemption around cache alias management calls
+    - mac80211: minstrel: remove deferred sampling code
+    - mac80211: minstrel: fix tx status processing corner case
+    - mac80211: free sta in sta_info_insert_finish() on errors
+    - s390/cpum_sf.c: fix file permission for cpum_sfb_size
+    - s390/dasd: fix null pointer dereference for ERP requests
+    - Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected
+    - drm/amd/display: Add missing pflip irq for dcn2.0
+    - drm/i915: Handle max_bpc==16
+    - mmc: sdhci-pci: Prefer SDR25 timing for High Speed mode for BYT-based Intel
+      controllers
+    - ptrace: Set PF_SUPERPRIV when checking capability
+    - seccomp: Set PF_SUPERPRIV when checking capability
+    - x86/microcode/intel: Check patch signature before saving microcode for early
+      loading
+    - mm: memcg/slab: fix root memcg vmstats
+    - mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
+    - mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
+    - sched/fair: Fix overutilized update in enqueue_task_fair()
+    - Linux 5.4.80
+
+  * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint
+    (LP: #1908335)
+    - Input: elan_i2c - add support for high resolution reports
+    - Input: elan_i2c - add new trackpoint report type 0x5F
+    - Input: elantech - fix protocol errors for some trackpoints in SMBus mode
+
+  * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200)
+    - SAUCE: rtw88: 8723de: let cpu enter c10
+
+  * [UBUNTU 21.04] s390/pci: vfio-pci mmio being disabled erroneously
+    (LP: #1907265)
+    - s390/pci: Mark all VFs as not implementing PCI_COMMAND_MEMORY
+
+  * Touchpad not detected on ByteSpeed C15B laptop (LP: #1906128)
+    - Input: i8042 - add ByteSpeed touchpad to noloop table
+
+  * Fix reading speed and duplex sysfs on igc device (LP: #1906851)
+    - SAUCE: igc: Report speed and duplex as unknown when device is runtime
+      suspended
+
+  * stack trace in kernel (LP: #1903596)
+    - net: napi: remove useless stack trace
+
+  * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work
+    (LP: #1906229)
+    - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup()
+    - PM: ACPI: Refresh wakeup device power configuration every time
+
+  * CVE-2020-27777
+    - [Config]: Set CONFIG_PPC_RTAS_FILTER
+
+  * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663)
+    - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41
+
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - powerpc: Only include kup-radix.h for 64-bit Book3S
+    - MIPS: PCI: Fix MIPS build
+    - powerpc/8xx: Always fault when _PAGE_ACCESSED is not set
+    - net: lantiq: Add locking for TX DMA channel
+    - Input: sunkbd - avoid use-after-free in teardown paths
+    - mac80211: always wind down STA state
+    - can: proc: can_remove_proc(): silence remove_proc_entry warning
+    - KVM: x86: clflushopt should be treated as a no-op by emulation
+    - ACPI: GED: fix -Wformat
+    - Linux 5.4.79
+
+ -- Ian May <ian.may@canonical.com>  Wed, 27 Jan 2021 15:44:24 -0600
+
+linux (5.4.0-65.73) focal; urgency=medium
+
+  * focal/linux: 5.4.0-65.73 -proposed tracker (LP: #1912220)
+
+  * initramfs unpacking failed (LP: #1835660)
+    - SAUCE: lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
+
+  * overlay: permission regression in 5.4.0-51.56 due to patches related to
+    CVE-2020-16120 (LP: #1900141)
+    - ovl: do not fail because of O_NOATIME
+
+  * Focal update: v5.4.79 upstream stable release (LP: #1907151)
+    - net/mlx5: Use async EQ setup cleanup helpers for multiple EQs
+    - net/mlx5: poll cmd EQ in case of command timeout
+    - net/mlx5: Fix a race when moving command interface to events mode
+    - net/mlx5: Add retry mechanism to the command entry index allocation
+
+  * Kernel 5.4.0-56 Wi-Fi does not connect (LP: #1906770)
+    - mt76: fix fix ampdu locking
+
+  * [Ubuntu 21.04 FEAT] mpt3sas: Request to include the patch set which supports
+    topology where zoning is enabled in expander (LP: #1899802)
+    - scsi: mpt3sas: Define hba_port structure
+    - scsi: mpt3sas: Allocate memory for hba_port objects
+    - scsi: mpt3sas: Rearrange _scsih_mark_responding_sas_device()
+    - scsi: mpt3sas: Update hba_port's sas_address & phy_mask
+    - scsi: mpt3sas: Get device objects using sas_address & portID
+    - scsi: mpt3sas: Rename transport_del_phy_from_an_existing_port()
+    - scsi: mpt3sas: Get sas_device objects using device's rphy
+    - scsi: mpt3sas: Update hba_port objects after host reset
+    - scsi: mpt3sas: Set valid PhysicalPort in SMPPassThrough
+    - scsi: mpt3sas: Handling HBA vSES device
+    - scsi: mpt3sas: Add bypass_dirty_port_flag parameter
+    - scsi: mpt3sas: Handle vSES vphy object during HBA reset
+    - scsi: mpt3sas: Add module parameter multipath_on_hba
+    - scsi: mpt3sas: Bump driver version to 35.101.00.00
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 18 Jan 2021 17:31:23 +0100
+
+linux (5.4.0-64.72) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 15 Jan 2021 10:50:30 +0100
+
+linux (5.4.0-62.70) focal; urgency=medium
+
+  * focal/linux: 5.4.0-62.70 -proposed tracker (LP: #1911144)
+
+  * CVE-2020-28374
+    - SAUCE: target: fix XCOPY NAA identifier lookup
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Tue, 12 Jan 2021 13:00:40 +0100
+
+linux (5.4.0-60.67) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - update dkms package versions
+
+  * CVE-2021-1052 // CVE-2021-1053
+    - [Packaging] NVIDIA -- Add the NVIDIA 460 driver
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 05 Jan 2021 13:51:33 -0300
+
+linux (5.4.0-59.65) focal; urgency=medium
+
+  * focal/linux: 5.4.0-59.65 -proposed tracker (LP: #1907604)
+
+  * focal: selftests/bpf build broken: test_map_init.skel.h: No such file or
+    directory (LP: #1906866)
+    - SAUCE: Revert selftests/ "bpf: Zero-fill re-used per-cpu map element"
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * memory is leaked when tasks are moved to net_prio (LP: #1886859)
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+
+  * Focal update: v5.4.78 upstream stable release (LP: #1905618)
+    - drm/i915/gem: Flush coherency domains on first set-domain-ioctl
+    - time: Prevent undefined behaviour in timespec64_to_ns()
+    - nbd: don't update block size after device is started
+    - KVM: arm64: Force PTE mapping on fault resulting in a device mapping
+    - PCI: qcom: Make sure PCIe is reset before init for rev 2.1.0
+    - usb: dwc3: gadget: Continue to process pending requests
+    - usb: dwc3: gadget: Reclaim extra TRBs after request completion
+    - btrfs: tracepoints: output proper root owner for trace_find_free_extent()
+    - btrfs: sysfs: init devices outside of the chunk_mutex
+    - btrfs: reschedule when cloning lots of extents
+    - ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function
+    - genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
+    - hv_balloon: disable warning when floor reached
+    - net: xfrm: fix a race condition during allocing spi
+    - ASoC: codecs: wcd9335: Set digital gain range correctly
+    - xfs: set xefi_discard when creating a deferred agfl free log intent item
+    - netfilter: use actual socket sk rather than skb sk when routing harder
+    - netfilter: nf_tables: missing validation from the abort path
+    - netfilter: ipset: Update byte and packet counters regardless of whether they
+      match
+    - powerpc/eeh_cache: Fix a possible debugfs deadlock
+    - perf trace: Fix segfault when trying to trace events by cgroup
+    - perf tools: Add missing swap for ino_generation
+    - ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
+    - iommu/vt-d: Fix a bug for PDP check in prq_event_thread
+    - afs: Fix warning due to unadvanced marshalling pointer
+    - can: rx-offload: don't call kfree_skb() from IRQ context
+    - can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ
+      context
+    - can: dev: __can_get_echo_skb(): fix real payload length return value for RTR
+      frames
+    - can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()
+    - can: j1939: swap addr and pgn in the send example
+    - can: j1939: j1939_sk_bind(): return failure if netdev is down
+    - can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error
+      path
+    - can: xilinx_can: handle failure cases of pm_runtime_get_sync
+    - can: peak_usb: add range checking in decode operations
+    - can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
+    - can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is
+      on
+    - can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
+    - can: flexcan: flexcan_remove(): disable wakeup completely
+    - xfs: flush new eof page on truncate to avoid post-eof corruption
+    - xfs: fix scrub flagging rtinherit even if there is no rt device
+    - tpm: efi: Don't create binary_bios_measurements file for an empty log
+    - random32: make prandom_u32() output unpredictable
+    - KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return
+      SMCCC_RET_NOT_REQUIRED
+    - KVM: x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
+    - ath9k_htc: Use appropriate rs_datalen type
+    - ASoC: qcom: sdm845: set driver name correctly
+    - ASoC: cs42l51: manage mclk shutdown delay
+    - usb: dwc3: pci: add support for the Intel Alder Lake-S
+    - opp: Reduce the size of critical section in _opp_table_kref_release()
+    - usb: gadget: goku_udc: fix potential crashes in probe
+    - selftests/ftrace: check for do_sys_openat2 in user-memory test
+    - selftests: pidfd: fix compilation errors due to wait.h
+    - ALSA: hda: Separate runtime and system suspend
+    - ALSA: hda: Reinstate runtime_allow() for all hda controllers
+    - gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
+    - gfs2: Add missing truncate_inode_pages_final for sd_aspace
+    - gfs2: check for live vs. read-only file system in gfs2_fitrim
+    - scsi: hpsa: Fix memory leak in hpsa_init_one()
+    - drm/amdgpu: perform srbm soft reset always on SDMA resume
+    - drm/amd/pm: perform SMC reset on suspend/hibernation
+    - drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running
+    - mac80211: fix use of skb payload instead of header
+    - cfg80211: initialize wdev data earlier
+    - cfg80211: regulatory: Fix inconsistent format argument
+    - tracing: Fix the checking of stackidx in __ftrace_trace_stack
+    - scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()
+    - scsi: mpt3sas: Fix timeouts observed while reenabling IRQ
+    - nvme: introduce nvme_sync_io_queues
+    - nvme-rdma: avoid race between time out and tear down
+    - nvme-tcp: avoid race between time out and tear down
+    - nvme-rdma: avoid repeated request completion
+    - nvme-tcp: avoid repeated request completion
+    - iommu/amd: Increase interrupt remapping table limit to 512 entries
+    - s390/smp: move rcu_cpu_starting() earlier
+    - vfio: platform: fix reference leak in vfio_platform_open
+    - vfio/pci: Bypass IGD init in case of -ENODEV
+    - i2c: mediatek: move dma reset before i2c reset
+    - amd/amdgpu: Disable VCN DPG mode for Picasso
+    - selftests: proc: fix warning: _GNU_SOURCE redefined
+    - riscv: Set text_offset correctly for M-Mode
+    - i2c: sh_mobile: implement atomic transfers
+    - tpm_tis: Disable interrupts on ThinkPad T490s
+    - spi: bcm2835: remove use of uninitialized gpio flags variable
+    - tick/common: Touch watchdog in tick_unfreeze() on all CPUs
+    - mfd: sprd: Add wakeup capability for PMIC IRQ
+    - pinctrl: intel: Set default bias in case no particular value given
+    - ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template
+    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
+    - pinctrl: aspeed: Fix GPI only function problem.
+    - net/mlx5: Fix deletion of duplicate rules
+    - SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
+    - bpf: Zero-fill re-used per-cpu map element
+    - nbd: fix a block_device refcount leak in nbd_release
+    - igc: Fix returning wrong statistics
+    - xfs: fix flags argument to rmap lookup when converting shared file rmaps
+    - xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
+    - xfs: fix rmap key and record comparison functions
+    - xfs: fix brainos in the refcount scrubber's rmap fragment processor
+    - lan743x: fix "BUG: invalid wait context" when setting rx mode
+    - xfs: fix a missing unlock on error in xfs_fs_map_blocks
+    - of/address: Fix of_node memory leak in of_dma_is_coherent
+    - cosa: Add missing kfree in error path of cosa_write
+    - vrf: Fix fast path output packet handling with async Netfilter rules
+    - perf: Fix get_recursion_context()
+    - erofs: derive atime instead of leaving it empty
+    - ext4: correctly report "not supported" for {usr,grp}jquota when
+      !CONFIG_QUOTA
+    - ext4: unlock xattr_sem properly in ext4_inline_data_truncate()
+    - btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod
+    - btrfs: fix min reserved size calculation in merge_reloc_root
+    - btrfs: dev-replace: fail mount if we don't have replace item with target
+      device
+    - KVM: arm64: Don't hide ID registers from userspace
+    - thunderbolt: Fix memory leak if ida_simple_get() fails in
+      enumerate_services()
+    - thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()
+    - uio: Fix use-after-free in uio_unregister_device()
+    - usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode
+    - xhci: hisilicon: fix refercence leak in xhci_histb_probe
+    - virtio: virtio_console: fix DMA memory allocation for rproc serial
+    - mei: protect mei_cl_mtu from null dereference
+    - futex: Don't enable IRQs unconditionally in put_pi_state()
+    - jbd2: fix up sparse warnings in checkpoint code
+    - mm/slub: fix panic in slab_alloc_node()
+    - Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
+    - reboot: fix overflow parsing reboot cpu number
+    - ocfs2: initialize ip_next_orphan
+    - btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
+    - selinux: Fix error return code in sel_ib_pkey_sid_slow()
+    - gpio: pcie-idio-24: Fix irq mask when masking
+    - gpio: pcie-idio-24: Fix IRQ Enable Register value
+    - gpio: pcie-idio-24: Enable PEX8311 interrupts
+    - mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs
+    - mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove
+    - don't dump the threads that had been already exiting when zapped.
+    - drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]
+    - pinctrl: amd: use higher precision for 512 RtcClk
+    - pinctrl: amd: fix incorrect way to disable debounce filter
+    - swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"
+    - IPv6: Set SIT tunnel hard_header_len to zero
+    - net/af_iucv: fix null pointer dereference on shutdown
+    - net: udp: fix UDP header access on Fast/frag0 UDP GRO
+    - net: Update window_clamp if SOCK_RCVBUF is set
+    - net/x25: Fix null-ptr-deref in x25_connect
+    - tipc: fix memory leak in tipc_topsrv_start()
+    - r8169: fix potential skb double free in an error path
+    - drm/i915: Correctly set SFC capability for video engines
+    - powerpc/603: Always fault when _PAGE_ACCESSED is not set
+    - x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-
+      on STIBP
+    - perf scripting python: Avoid declaring function pointers with a visibility
+      attribute
+    - net: sch_generic: fix the missing new qdisc assignment bug
+    - Convert trailing spaces and periods in path components
+    - Linux 5.4.78
+
+  * Focal update: v5.4.77 upstream stable release (LP: #1905614)
+    - Linux 5.4.77
+
+  * Focal update: v5.4.76 upstream stable release (LP: #1905612)
+    - drm/i915: Break up error capture compression loops with cond_resched()
+    - drm/i915/gt: Delay execlist processing for tgl
+    - drm/i915: Drop runtime-pm assert from vgpu io accessors
+    - ASoC: Intel: Skylake: Add alternative topology binary name
+    - update dkms package versions
+    - linkage: Introduce new macros for assembler symbols
+    - arm64: asm: Add new-style position independent function annotations
+    - arm64: lib: Use modern annotations for assembly functions
+    - arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
+    - tipc: fix use-after-free in tipc_bcast_get_mode
+    - ptrace: fix task_join_group_stop() for the case when current is traced
+    - cadence: force nonlinear buffers to be cloned
+    - chelsio/chtls: fix memory leaks caused by a race
+    - chelsio/chtls: fix always leaking ctrl_skb
+    - gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP
+    - gianfar: Account for Tx PTP timestamp in the skb headroom
+    - ionic: check port ptr before use
+    - ip_tunnel: fix over-mtu packet send fail without TUNNEL_DONT_FRAGMENT flags
+    - net: usb: qmi_wwan: add Telit LE910Cx 0x1230 composition
+    - powerpc/vnic: Extend "failover pending" window
+    - sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
+    - sfp: Fix error handing in sfp_probe()
+    - Fonts: Replace discarded const qualifier
+    - ALSA: hda/realtek - Fixed HP headset Mic can't be detected
+    - ALSA: hda/realtek - Enable headphone for ASUS TM420
+    - ALSA: usb-audio: Add implicit feedback quirk for Zoom UAC-2
+    - ALSA: usb-audio: add usb vendor id as DSD-capable for Khadas devices
+    - ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+    - ALSA: usb-audio: Add implicit feedback quirk for MODX
+    - mm: mempolicy: fix potential pte_unmap_unlock pte error
+    - lib/crc32test: remove extra local_irq_disable/enable
+    - kthread_worker: prevent queuing delayed work from timer_fn when it is being
+      canceled
+    - mm: always have io_remap_pfn_range() set pgprot_decrypted()
+    - gfs2: Wake up when sd_glock_disposal becomes zero
+    - ring-buffer: Fix recursion protection transitions between interrupt context
+    - mtd: spi-nor: Don't copy self-pointing struct around
+    - ftrace: Fix recursion check for NMI test
+    - ftrace: Handle tracing when switching between context
+    - regulator: defer probe when trying to get voltage from unresolved supply
+    - spi: bcm2835: fix gpio cs level inversion
+    - tracing: Fix out of bounds write in get_trace_buf
+    - futex: Handle transient "ownerless" rtmutex state correctly
+    - ARM: dts: sun4i-a10: fix cpu_alert temperature
+    - arm64: dts: meson: add missing g12 rng clock
+    - x86/kexec: Use up-to-dated screen_info copy to fill boot params
+    - of: Fix reserved-memory overlap detection
+    - drm/sun4i: frontend: Rework a bit the phase data
+    - drm/sun4i: frontend: Reuse the ch0 phase for RGB formats
+    - drm/sun4i: frontend: Fix the scaler phase on A33
+    - blk-cgroup: Fix memleak on error path
+    - blk-cgroup: Pre-allocate tree node on blkg_conf_prep
+    - scsi: core: Don't start concurrent async scan on same host
+    - drm/amdgpu: add DID for navi10 blockchain SKU
+    - scsi: ibmvscsi: Fix potential race after loss of transport
+    - vsock: use ns_capable_noaudit() on socket create
+    - nvme-rdma: handle unexpected nvme completion data length
+    - nvmet: fix a NULL pointer dereference when tracing the flush command
+    - drm/vc4: drv: Add error handding for bind
+    - ACPI: NFIT: Fix comparison to '-ENXIO'
+    - usb: cdns3: gadget: suspicious implicit sign extension
+    - drm/nouveau/nouveau: fix the start/end range for migration
+    - drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
+    - arm64/smp: Move rcu_cpu_starting() earlier
+    - vt: Disable KD_FONT_OP_COPY
+    - fork: fix copy_process(CLONE_PARENT) race with the exiting ->real_parent
+    - s390/pkey: fix paes selftest failure with paes and pkey static build
+    - serial: 8250_mtk: Fix uart_get_baud_rate warning
+    - serial: txx9: add missing platform_driver_unregister() on error in
+      serial_txx9_init
+    - USB: serial: cyberjack: fix write-URB completion race
+    - USB: serial: option: add Quectel EC200T module support
+    - USB: serial: option: add LE910Cx compositions 0x1203, 0x1230, 0x1231
+    - USB: serial: option: add Telit FN980 composition 0x1055
+    - tty: serial: fsl_lpuart: add LS1028A support
+    - tty: serial: fsl_lpuart: LS1021A has a FIFO size of 16 words, like LS1028A
+    - usb: dwc3: ep0: Fix delay status handling
+    - USB: Add NO_LPM quirk for Kingston flash drive
+    - usb: mtu3: fix panic in mtu3_gadget_stop()
+    - drm/panfrost: Fix a deadlock between the shrinker and madvise path
+    - ARC: stack unwinding: avoid indefinite looping
+    - PM: runtime: Drop runtime PM references to supplier on link removal
+    - PM: runtime: Drop pm_runtime_clean_up_links()
+    - PM: runtime: Resume the device earlier in __device_release_driver()
+    - xfs: flush for older, xfs specific ioctls
+    - perf/core: Fix a memory leak in perf_event_parse_addr_filter()
+    - arm64: dts: marvell: espressobin: Add ethernet switch aliases
+    - Linux 5.4.76
+
+  * s390: dbginfo.sh triggers kernel panic, reading from
+    /sys/kernel/mm/page_idle/bitmap (LP: #1904884)
+    - mm/page_idle.c: skip offline pages
+
+  * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221)
+    - Bluetooth: btrtl: Ask 8821C to drop old firmware
+    - Bluetooth: btrtl: fix incorrect skb allocation failure check
+
+  * Use ACPI S5 for reboot (LP: #1904225)
+    - PM: ACPI: reboot: Use S5 for reboot
+
+  * Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - xen/events: avoid removing an event channel while handling it
+    - xen/events: add a proper barrier to 2-level uevent unmasking
+    - xen/events: fix race in evtchn_fifo_unmask()
+    - xen/events: add a new "late EOI" evtchn framework
+    - xen/blkback: use lateeoi irq binding
+    - xen/netback: use lateeoi irq binding
+    - xen/scsiback: use lateeoi irq binding
+    - xen/pvcallsback: use lateeoi irq binding
+    - xen/pciback: use lateeoi irq binding
+    - xen/events: switch user event channels to lateeoi model
+    - xen/events: use a common cpu hotplug hook for event channels
+    - xen/events: defer eoi in case of excessive number of events
+    - xen/events: block rogue events for some time
+    - firmware: arm_scmi: Fix ARCH_COLD_RESET
+    - firmware: arm_scmi: Add missing Rx size re-initialisation
+    - x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10
+      compiled kernels
+    - mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()
+    - RDMA/qedr: Fix memory leak in iWARP CM
+    - ata: sata_nv: Fix retrieving of active qcs
+    - futex: Fix incorrect should_fail_futex() handling
+    - powerpc/powernv/smp: Fix spurious DBG() warning
+    - [Config] update config for ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
+    - powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+    - sparc64: remove mm_cpumask clearing to fix kthread_use_mm race
+    - f2fs: add trace exit in exception path
+    - f2fs: fix uninit-value in f2fs_lookup
+    - f2fs: fix to check segment boundary during SIT page readahead
+    - s390/startup: avoid save_area_sync overflow
+    - um: change sigio_spinlock to a mutex
+    - f2fs: handle errors of f2fs_get_meta_page_nofail
+    - ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
+    - NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source
+    - power: supply: bq27xxx: report "not charging" on all types
+    - xfs: fix realtime bitmap/summary file truncation when growing rt volume
+    - video: fbdev: pvr2fb: initialize variables
+    - ath10k: start recovery process when payload length exceeds max htc length
+      for sdio
+    - ath10k: fix VHT NSS calculation when STBC is enabled
+    - drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working
+      correctly
+    - selftests/x86/fsgsbase: Reap a forgotten child
+    - media: videodev2.h: RGB BT2020 and HSV are always full range
+    - media: platform: Improve queue set up flow for bug fixing
+    - usb: typec: tcpm: During PR_SWAP, source caps should be sent only after
+      tSwapSourceStart
+    - media: tw5864: check status of tw5864_frameinterval_get
+    - media: imx274: fix frame interval handling
+    - mmc: via-sdmmc: Fix data race bug
+    - drm/bridge/synopsys: dsi: add support for non-continuous HS clock
+    - arm64: topology: Stop using MPIDR for topology information
+    - printk: reduce LOG_BUF_SHIFT range for H8300
+    - ia64: kprobes: Use generic kretprobe trampoline handler
+    - kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
+    - bpf: Permit map_ptr arithmetic with opcode add and offset 0
+    - media: uvcvideo: Fix dereference of out-of-bound list iterator
+    - selftests/bpf: Define string const as global for test_sysctl_prog.c
+    - samples/bpf: Fix possible deadlock in xdpsock
+    - riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
+    - cpufreq: sti-cpufreq: add stih418 support
+    - USB: adutux: fix debugging
+    - uio: free uio id after uio file node is freed
+    - usb: xhci: omit duplicate actions when suspending a runtime suspended host.
+    - SUNRPC: Mitigate cond_resched() in xprt_transmit()
+    - arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE
+    - can: flexcan: disable clocks during stop mode
+    - xfs: don't free rt blocks when we're doing a REMAP bunmapi call
+    - ACPI: Add out of bounds and numa_off protections to pxm_to_node()
+    - brcmfmac: Fix warning message after dongle setup failed
+    - drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values
+    - bus/fsl_mc: Do not rely on caller to provide non NULL mc_io
+    - ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3
+    - power: supply: test_power: add missing newlines when printing parameters by
+      sysfs
+    - drm/amd/display: HDMI remote sink need mode validation for Linux
+    - ARC: [dts] fix the errors detected by dtbs_check
+    - btrfs: fix replace of seed device
+    - md/bitmap: md_bitmap_get_counter returns wrong blocks
+    - bnxt_en: Log unknown link speed appropriately.
+    - rpmsg: glink: Use complete_all for open states
+    - clk: ti: clockdomain: fix static checker warning
+    - net: 9p: initialize sun_server.sun_path to have addr's value only when addr
+      is valid
+    - drivers: watchdog: rdc321x_wdt: Fix race condition bugs
+    - ext4: Detect already used quota file early
+    - KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest
+    - gfs2: use-after-free in sysfs deregistration
+    - gfs2: add validation checks for size of superblock
+    - cifs: handle -EINTR in cifs_setattr
+    - arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes
+    - ARM: dts: omap4: Fix sgx clock rate for 4430
+    - memory: emif: Remove bogus debugfs error handling
+    - ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema
+      warnings
+    - ARM: dts: s5pv210: move fixed clocks under root node
+    - ARM: dts: s5pv210: move PMU node out of clock controller
+    - ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
+    - nbd: make the config put is called before the notifying the waiter
+    - sgl_alloc_order: fix memory leak
+    - nvme-rdma: fix crash when connect rejected
+    - md/raid5: fix oops during stripe resizing
+    - mmc: sdhci: Add LTR support for some Intel BYT based controllers
+    - mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
+    - seccomp: Make duplicate listener detection non-racy
+    - selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS
+    - perf/x86/intel: Fix Ice Lake event constraint table
+    - perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count()
+    - perf/x86/amd/ibs: Fix raw sample data accumulation
+    - spi: sprd: Release DMA channel also on probe deferral
+    - extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
+    - leds: bcm6328, bcm6358: use devres LED registering function
+    - media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect
+    - fs: Don't invalidate page buffers in block_write_full_page()
+    - NFS: fix nfs_path in case of a rename retry
+    - ACPI: button: fix handling lid state changes when input device closed
+    - ACPI / extlog: Check for RDMSR failure
+    - ACPI: debug: don't allow debugging when ACPI is disabled
+    - PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
+    - ACPI: EC: PM: Flush EC work unconditionally after wakeup
+    - ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
+    - acpi-cpufreq: Honor _PSD table setting on new AMD CPUs
+    - w1: mxc_w1: Fix timeout resolution problem leading to bus error
+    - scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove()
+    - scsi: qla2xxx: Fix crash on session cleanup with unload
+    - PM: runtime: Remove link state checks in rpm_get/put_supplier()
+    - btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
+    - btrfs: improve device scanning messages
+    - btrfs: reschedule if necessary when logging directory items
+    - btrfs: send, orphanize first all conflicting inodes when processing
+      references
+    - btrfs: send, recompute reference path after orphanization of a directory
+    - btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()
+    - btrfs: tree-checker: fix false alert caused by legacy btrfs root item
+    - btrfs: cleanup cow block on error
+    - btrfs: tree-checker: validate number of chunk stripes and parity
+    - btrfs: fix use-after-free on readahead extent after failure to create it
+    - btrfs: fix readahead hang and use-after-free after removing a device
+    - Revert "UBUNTU: SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC"
+    - usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC
+    - usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM
+      functionality
+    - usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
+    - usb: dwc3: gadget: Check MPS of the request length
+    - usb: dwc3: core: add phy cleanup for probe error handling
+    - usb: dwc3: core: don't trigger runtime pm when remove driver
+    - usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
+    - usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command
+    - usb: cdc-acm: fix cooldown mechanism
+    - usb: typec: tcpm: reset hard_reset_count for any disconnect
+    - usb: host: fsl-mph-dr-of: check return of dma_set_mask()
+    - drm/i915: Force VT'd workarounds when running as a guest OS
+    - vt: keyboard, simplify vt_kdgkbsent
+    - vt: keyboard, extend func_buf_lock to readers
+    - HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery
+    - udf: Fix memory leak when mounting
+    - dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status
+    - iio:light:si1145: Fix timestamp alignment and prevent data leak.
+    - iio: adc: gyroadc: fix leak of device node iterator
+    - iio:adc:ti-adc0832 Fix alignment issue with timestamp
+    - iio:adc:ti-adc12138 Fix alignment issue with timestamp
+    - iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.
+    - powerpc/drmem: Make lmb_size 64 bit
+    - MIPS: DEC: Restore bootmem reservation for firmware working memory area
+    - s390/stp: add locking to sysfs functions
+    - [Config] update config for PPC_RTAS_FILTER
+    - powerpc/rtas: Restrict RTAS requests from userspace
+    - powerpc: Warn about use of smt_snooze_delay
+    - powerpc/memhotplug: Make lmb size 64bit
+    - powerpc/powernv/elog: Fix race while processing OPAL error log event.
+    - powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP
+    - NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE
+    - NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag
+    - NFSD: Add missing NFSv2 .pc_func methods
+    - ubifs: dent: Fix some potential memory leaks while iterating entries
+    - ubifs: xattr: Fix some potential memory leaks while iterating entries
+    - ubifs: journal: Make sure to not dirty twice for auth nodes
+    - ubifs: Fix a memleak after dumping authentication mount options
+    - ubifs: Don't parse authentication mount options in remount process
+    - ubifs: mount_ubifs: Release authentication resource in error handling path
+    - perf python scripting: Fix printable strings in python3 scripts
+    - ARC: perf: redo the pct irq missing in device-tree handling
+    - ubi: check kthread_should_stop() after the setting of task state
+    - ia64: fix build error with !COREDUMP
+    - rtc: rx8010: don't modify the global rtc ops
+    - i2c: imx: Fix external abort on interrupt in exit paths
+    - drm/amdgpu: don't map BO in reserved region
+    - drm/amd/display: Increase timeout for DP Disable
+    - drm/amdgpu: correct the gpu reset handling for job != NULL case
+    - drm/amdkfd: Use same SQ prefetch setting as amdgpu
+    - drm/amd/display: Avoid MST manager resource leak.
+    - drm/amdgpu: increase the reserved VM size to 2MB
+    - drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally
+    - drm/amd/display: Fix kernel panic by dal_gpio_open() error
+    - ceph: promote to unsigned long long before shifting
+    - libceph: clear con->out_msg on Policy::stateful_server faults
+    - 9P: Cast to loff_t before multiplying
+    - ring-buffer: Return 0 on success from ring_buffer_resize()
+    - vringh: fix __vringh_iov() when riov and wiov are different
+    - ext4: fix leaking sysfs kobject after failed mount
+    - ext4: fix error handling code in add_new_gdb
+    - ext4: fix invalid inode checksum
+    - drm/ttm: fix eviction valuable range check.
+    - mmc: sdhci-of-esdhc: set timeout to max before tuning
+    - mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
+    - drm/amd/pm: increase mclk switch threshold to 200 us
+    - tty: make FONTX ioctl use the tty pointer they were actually passed
+    - arm64: berlin: Select DW_APB_TIMER_OF
+    - [Config] update annotations for DW_APB_TIMER
+    - cachefiles: Handle readpage error correctly
+    - hil/parisc: Disable HIL driver when it gets stuck
+    - arm: dts: mt7623: add missing pause for switchport
+    - ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
+    - ARM: s3c24xx: fix missing system reset
+    - device property: Keep secondary firmware node secondary by type
+    - device property: Don't clear secondary pointer for shared primary firmware
+      node
+    - KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR
+    - staging: fieldbus: anybuss: jump to correct label in an error path
+    - staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice
+    - staging: octeon: repair "fixed-link" support
+    - staging: octeon: Drop on uncorrectable alignment or FCS error
+    - Linux 5.4.75
+
+  * [HP 635] Radeon 6310 brightness control does not work (LP: #1894667) //
+    Focal update: v5.4.75 upstream stable release (LP: #1904450)
+    - ACPI: video: use ACPI backlight for HP 635 Notebook
+
+  * Focal update: v5.4.74 upstream stable release (LP: #1904445)
+    - netfilter: nftables_offload: KASAN slab-out-of-bounds Read in
+      nft_flow_rule_create
+    - socket: don't clear SOCK_TSTAMP_NEW when SO_TIMESTAMPNS is disabled
+    - objtool: Support Clang non-section symbols in ORC generation
+    - scripts/setlocalversion: make git describe output more reliable
+    - arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
+    - arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs
+    - arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
+    - x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled
+    - bnxt_en: Check abort error state in bnxt_open_nic().
+    - bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
+    - chelsio/chtls: fix deadlock issue
+    - chelsio/chtls: fix memory leaks in CPL handlers
+    - chelsio/chtls: fix tls record info to user
+    - cxgb4: set up filter action after rewrites
+    - gtp: fix an use-before-init in gtp_newlink()
+    - ibmvnic: fix ibmvnic_set_mac
+    - mlxsw: core: Fix memory leak on module removal
+    - netem: fix zero division in tabledist
+    - net/sched: act_mpls: Add softdep on mpls_gso.ko
+    - r8169: fix issue with forced threading in combination with shared interrupts
+    - ravb: Fix bit fields checking in ravb_hwtstamp_get()
+    - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
+    - tipc: fix memory leak caused by tipc_buf_append()
+    - net: hns3: Clear the CMDQ registers before unmapping BAR region
+    - bnxt_en: Re-write PCI BARs after PCI fatal error.
+    - bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
+    - bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
+    - erofs: avoid duplicated permission check for "trusted." xattrs
+    - arch/x86/amd/ibs: Fix re-arming IBS Fetch
+    - x86/xen: disable Firmware First mode for correctable memory errors
+    - ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
+    - fuse: fix page dereference after free
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - evm: Check size of security.evm before using it
+    - p54: avoid accessing the data mapped to streaming DMA
+    - cxl: Rework error message for incompatible slots
+    - RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
+    - mtd: lpddr: Fix bad logic in print_drs_error
+    - serial: qcom_geni_serial: To correct QUP Version detection logic
+    - serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt
+    - PM: runtime: Fix timer_expires data type on 32-bit arches
+    - ata: sata_rcar: Fix DMA boundary mask
+    - xen/gntdev.c: Mark pages as dirty
+    - crypto: x86/crc32c - fix building with clang ias
+    - openrisc: Fix issue with get_user for 64-bit values
+    - misc: rtsx: do not setting OC_POWER_DOWN reg in rtsx_pci_init_ocp()
+    - phy: marvell: comphy: Convert internal SMCC firmware return codes to errno
+    - Linux 5.4.74
+
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: tree-checker: fix incorrect printk format
+
+  * NULL pointer dereference when configuring multi-function with devfn != 0
+    before devfn == 0 (LP: #1903682)
+    - s390/pci: fix hot-plug of PCI function missing bus
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 10 Dec 2020 12:37:45 +0100
+
+linux (5.4.0-58.64) focal; urgency=medium
+
+  * focal/linux: 5.4.0-58.64 -proposed tracker (LP: #1907390)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * raid10: discard leads to corrupted file system (LP: #1907262)
+    - Revert "dm raid: remove unnecessary discard limits for raid10"
+    - Revert "dm raid: fix discard limits for raid1 and raid10"
+    - Revert "md/raid10: improve discard request for far layout"
+    - Revert "md/raid10: improve raid10 discard request"
+    - Revert "md/raid10: pull codes that wait for blocked dev into one function"
+    - Revert "md/raid10: extend r10bio devs to raid disks"
+    - Revert "md: add md_submit_discard_bio() for submitting discard bio"
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Wed, 09 Dec 2020 02:10:30 -0500
+
+linux (5.4.0-56.62) focal; urgency=medium
+
+  * focal/linux: 5.4.0-56.62 -proposed tracker (LP: #1905300)
+
+  * CVE-2020-4788
+    - selftests/powerpc: rfi_flush: disable entry flush if present
+    - powerpc/64s: flush L1D on kernel entry
+    - powerpc/64s: flush L1D after user accesses
+    - selftests/powerpc: entry flush test
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Mon, 23 Nov 2020 15:06:56 -0300
+
+linux (5.4.0-55.61) focal; urgency=medium
+
+  * focal/linux: 5.4.0-55.61 -proposed tracker (LP: #1903175)
+
+  * Update kernel packaging to support forward porting kernels (LP: #1902957)
+    - [Debian] Update for leader included in BACKPORT_SUFFIX
+
+  * Avoid double newline when running insertchanges (LP: #1903293)
+    - [Packaging] insertchanges: avoid double newline
+
+  * EFI: Fails when BootCurrent entry does not exist (LP: #1899993)
+    - efivarfs: Replace invalid slashes with exclamation marks in dentries.
+
+  * CVE-2020-14351
+    - perf/core: Fix race in the perf_mmap_close() function
+
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull codes that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: fix discard limits for raid1 and raid10
+    - dm raid: remove unnecessary discard limits for raid10
+
+  * Bionic: btrfs: kernel BUG at /build/linux-
+    eTBZpZ/linux-4.15.0/fs/btrfs/ctree.c:3233! (LP: #1902254)
+    - btrfs: drop unnecessary offset_in_page in extent buffer helpers
+    - btrfs: extent_io: do extra check for extent buffer read write functions
+    - btrfs: extent-tree: kill BUG_ON() in __btrfs_free_extent()
+    - btrfs: extent-tree: kill the BUG_ON() in insert_inline_extent_backref()
+    - btrfs: ctree: check key order before merging tree blocks
+
+  * Ethernet no link lights after reboot (Intel i225-v 2.5G) (LP: #1902578)
+    - igc: Add PHY power management control
+
+  * Undetected Data corruption in MPI workloads that use VSX for reductions on
+    POWER9 DD2.1 systems (LP: #1902694)
+    - powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation
+    - selftests/powerpc: Make alignment handler test P9N DD2.1 vector CI load
+      workaround
+
+  * [20.04 FEAT] Support/enhancement of NVMe IPL (LP: #1902179)
+    - s390: nvme ipl
+    - s390: nvme reipl
+    - s390/ipl: support NVMe IPL kernel parameters
+
+  * uvcvideo: add mapping for HEVC payloads (LP: #1895803)
+    - media: uvcvideo: Add mapping for HEVC payloads
+
+  * Focal update: v5.4.73 upstream stable release (LP: #1902115)
+    - ibmveth: Switch order of ibmveth_helper calls.
+    - ibmveth: Identify ingress large send packets.
+    - ipv4: Restore flowi4_oif update before call to xfrm_lookup_route
+    - mlx4: handle non-napi callers to napi_poll
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fix pos incrementment in ipv6_route_seq_next
+    - net/smc: fix valid DMBE buffer sizes
+    - net/tls: sendfile fails with ktls offload
+    - net: usb: qmi_wwan: add Cellient MPL200 card
+    - tipc: fix the skb_unshare() in tipc_buf_append()
+    - socket: fix option SO_TIMESTAMPING_NEW
+    - can: m_can_platform: don't call m_can_class_suspend in runtime suspend
+    - can: j1935: j1939_tp_tx_dat_new(): fix missing initialization of skbcnt
+    - net: j1939: j1939_session_fresh_new(): fix missing initialization of skbcnt
+    - net/ipv4: always honour route mtu during forwarding
+    - net_sched: remove a redundant goto chain check
+    - r8169: fix data corruption issue on RTL8402
+    - cxgb4: handle 4-tuple PEDIT to NAT mode translation
+    - binder: fix UAF when releasing todo list
+    - ALSA: bebob: potential info leak in hwdep_read()
+    - ALSA: hda/hdmi: fix incorrect locking in hdmi_pcm_close
+    - nvme-pci: disable the write zeros command for Intel 600P/P3100
+    - chelsio/chtls: fix socket lock
+    - chelsio/chtls: correct netdevice for vlan interface
+    - chelsio/chtls: correct function return and return type
+    - ibmvnic: save changed mac address to adapter->mac_addr
+    - net: ftgmac100: Fix Aspeed ast2600 TX hang issue
+    - net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
+    - net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling
+      ether_setup
+    - net: Properly typecast int values to set sk_max_pacing_rate
+    - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
+    - nexthop: Fix performance regression in nexthop deletion
+    - nfc: Ensure presence of NFC_ATTR_FIRMWARE_NAME attribute in
+      nfc_genl_fw_download()
+    - r8169: fix operation under forced interrupt threading
+    - selftests: forwarding: Add missing 'rp_filter' configuration
+    - tcp: fix to update snd_wl1 in bulk receiver fast path
+    - icmp: randomize the global rate limiter
+    - ALSA: hda/realtek - set mic to auto detect on a HP AIO machine
+    - ALSA: hda/realtek - Add mute Led support for HP Elitebook 845 G7
+    - ALSA: hda/realtek: Enable audio jacks of ASUS D700SA with ALC887
+    - cifs: remove bogus debug code
+    - cifs: Return the error from crypt_message when enc/dec key not found.
+    - SMB3: Resolve data corruption of TCP server info fields
+    - KVM: nVMX: Reset the segment cache when stuffing guest segs
+    - KVM: nVMX: Reload vmcs01 if getting vmcs12's pages fails
+    - KVM: x86/mmu: Commit zap of remaining invalid pages when recovering lpages
+    - KVM: SVM: Initialize prev_ga_tag before use
+    - ima: Don't ignore errors from crypto_shash_update()
+    - crypto: algif_aead - Do not set MAY_BACKLOG on the async path
+    - crypto: caam/qi - add fallback for XTS with more than 8B IV
+    - EDAC/i5100: Fix error handling order in i5100_init_one()
+    - EDAC/aspeed: Fix handling of platform_get_irq() error
+    - EDAC/ti: Fix handling of platform_get_irq() error
+    - perf/x86/intel/ds: Fix x86_pmu_stop warning for large PEBS
+    - x86/fpu: Allow multiple bits in clearcpuid= parameter
+    - drivers/perf: xgene_pmu: Fix uninitialized resource struct
+    - drivers/perf: thunderx2_pmu: Fix memory resource error handling
+    - sched/fair: Fix wrong cpu selecting from isolated domain
+    - perf/x86/intel/uncore: Update Ice Lake uncore units
+    - perf/x86/intel/uncore: Reduce the number of CBOX counters
+    - x86/nmi: Fix nmi_handle() duration miscalculation
+    - x86/events/amd/iommu: Fix sizeof mismatch
+    - crypto: algif_skcipher - EBUSY on aio should be an error
+    - crypto: mediatek - Fix wrong return value in mtk_desc_ring_alloc()
+    - crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call
+    - crypto: picoxcell - Fix potential race condition bug
+    - media: tuner-simple: fix regression in simple_set_radio_freq
+    - media: Revert "media: exynos4-is: Add missed check for
+      pinctrl_lookup_state()"
+    - media: ov5640: Correct Bit Div register in clock tree diagram
+    - media: m5mols: Check function pointer in m5mols_sensor_power
+    - media: uvcvideo: Set media controller entity functions
+    - media: uvcvideo: Silence shift-out-of-bounds warning
+    - media: staging/intel-ipu3: css: Correctly reset some memory
+    - media: omap3isp: Fix memleak in isp_probe
+    - media: i2c: ov5640: Remain in power down for DVP mode unless streaming
+    - media: i2c: ov5640: Separate out mipi configuration from s_power
+    - media: i2c: ov5640: Enable data pins on poweron for DVP mode
+    - media: rcar_drif: Fix fwnode reference leak when parsing DT
+    - media: rcar_drif: Allocate v4l2_async_subdev dynamically
+    - media: rcar-csi2: Allocate v4l2_async_subdev dynamically
+    - crypto: omap-sham - fix digcnt register handling with export/import
+    - hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61}
+    - cypto: mediatek - fix leaks in mtk_desc_ring_alloc
+    - media: mx2_emmaprp: Fix memleak in emmaprp_probe
+    - media: tc358743: initialize variable
+    - media: tc358743: cleanup tc358743_cec_isr
+    - media: rcar-vin: Fix a reference count leak.
+    - media: rockchip/rga: Fix a reference count leak.
+    - media: platform: fcp: Fix a reference count leak.
+    - media: camss: Fix a reference count leak.
+    - media: s5p-mfc: Fix a reference count leak
+    - media: stm32-dcmi: Fix a reference count leak
+    - media: ti-vpe: Fix a missing check and reference count leak
+    - regulator: resolve supply after creating regulator
+    - pinctrl: bcm: fix kconfig dependency warning when !GPIOLIB
+    - spi: spi-s3c64xx: swap s3c64xx_spi_set_cs() and s3c64xx_enable_datapath()
+    - spi: spi-s3c64xx: Check return values
+    - blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
+    - ath10k: provide survey info as accumulated data
+    - drm/vkms: fix xrgb on compute crc
+    - Bluetooth: hci_uart: Cancel init work before unregistering
+    - drm/amd/display: Fix wrong return value in dm_update_plane_state()
+    - drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel
+    - ath6kl: prevent potential array overflow in ath6kl_add_new_sta()
+    - ath9k: Fix potential out of bounds in ath9k_htc_txcompletion_cb()
+    - ath10k: Fix the size used in a 'dma_free_coherent()' call in an error
+      handling path
+    - wcn36xx: Fix reported 802.11n rx_highest rate wcn3660/wcn3680
+    - ASoC: qcom: lpass-platform: fix memory leak
+    - ASoC: qcom: lpass-cpu: fix concurrency issue
+    - brcmfmac: check ndev pointer
+    - mwifiex: Do not use GFP_KERNEL in atomic context
+    - staging: rtl8192u: Do not use GFP_KERNEL in atomic context
+    - drm/gma500: fix error check
+    - scsi: qla4xxx: Fix an error handling path in 'qla4xxx_get_host_stats()'
+    - scsi: qla2xxx: Fix wrong return value in qlt_chk_unresolv_exchg()
+    - scsi: qla2xxx: Fix wrong return value in qla_nvme_register_hba()
+    - scsi: csiostor: Fix wrong return value in csio_hw_prep_fw()
+    - backlight: sky81452-backlight: Fix refcount imbalance on error
+    - staging: emxx_udc: Fix passing of NULL to dma_alloc_coherent()
+    - VMCI: check return value of get_user_pages_fast() for errors
+    - mm/error_inject: Fix allow_error_inject function signatures.
+    - drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
+    - drm/crc-debugfs: Fix memleak in crc_control_write
+    - binder: Remove bogus warning on failed same-process transaction
+    - tty: serial: earlycon dependency
+    - pty: do tty_flip_buffer_push without port->lock in pty_write
+    - pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()
+    - pwm: lpss: Add range limit check for the base_unit register value
+    - drivers/virt/fsl_hypervisor: Fix error handling path
+    - video: fbdev: vga16fb: fix setting of pixclock because a pass-by-value error
+    - video: fbdev: sis: fix null ptr dereference
+    - video: fbdev: radeon: Fix memleak in radeonfb_pci_register
+    - ASoC: fsl: imx-es8328: add missing put_device() call in imx_es8328_probe()
+    - HID: roccat: add bounds checking in kone_sysfs_write_settings()
+    - drm/msm: Avoid div-by-zero in dpu_crtc_atomic_check()
+    - drm/panfrost: Ensure GPU quirks are always initialised
+    - iomap: Clear page error before beginning a write
+    - pinctrl: mcp23s08: Fix mcp23x17_regmap initialiser
+    - pinctrl: mcp23s08: Fix mcp23x17 precious range
+    - net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
+    - scsi: mpt3sas: Fix sync irqs
+    - net: stmmac: use netif_tx_start|stop_all_queues() function
+    - cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE
+    - drm: mxsfb: check framebuffer pitch
+    - coresight: etm4x: Handle unreachable sink in perf mode
+    - xhci: don't create endpoint debugfs entry before ring buffer is set.
+    - net: dsa: rtl8366: Check validity of passed VLANs
+    - net: dsa: rtl8366: Refactor VLAN/PVID init
+    - net: dsa: rtl8366: Skip PVID setting if not requested
+    - net: wilc1000: clean up resource in error path of init mon interface
+    - ASoC: tlv320aic32x4: Fix bdiv clock rate derivation
+    - net: dsa: rtl8366rb: Support all 4096 VLANs
+    - spi: omap2-mcspi: Improve performance waiting for CHSTAT
+    - ath6kl: wmi: prevent a shift wrapping bug in ath6kl_wmi_delete_pstream_cmd()
+    - dmaengine: dmatest: Check list for emptiness before access its last entry
+    - misc: mic: scif: Fix error handling path
+    - ALSA: seq: oss: Avoid mutex lock for a long-time ioctl
+    - usb: dwc2: Fix parameter type in function pointer prototype
+    - quota: clear padding in v2r1_mem2diskdqb()
+    - slimbus: core: check get_addr before removing laddr ida
+    - slimbus: core: do not enter to clock pause mode in core
+    - slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback
+    - ASoC: fsl_sai: Instantiate snd_soc_dai_driver
+    - HID: hid-input: fix stylus battery reporting
+    - nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell()
+    - nl80211: fix OBSS PD min and max offset validation
+    - coresight: etm: perf: Fix warning caused by etm_setup_aux failure
+    - ibmvnic: set up 200GBPS speed
+    - qtnfmac: fix resource leaks on unsupported iftype error return path
+    - iio: adc: stm32-adc: fix runtime autosuspend delay when slow polling
+    - net: enic: Cure the enic api locking trainwreck
+    - mfd: sm501: Fix leaks in probe()
+    - iwlwifi: mvm: split a print to avoid a WARNING in ROC
+    - usb: gadget: f_ncm: fix ncm_bitrate for SuperSpeed and above.
+    - usb: gadget: u_ether: enable qmult on SuperSpeed Plus as well
+    - nl80211: fix non-split wiphy information
+    - usb: dwc2: Fix INTR OUT transfers in DDMA mode.
+    - scsi: target: tcmu: Fix warning: 'page' may be used uninitialized
+    - scsi: be2iscsi: Fix a theoretical leak in beiscsi_create_eqs()
+    - ipmi_si: Fix wrong return value in try_smi_init()
+    - platform/x86: mlx-platform: Remove PSU EEPROM configuration
+    - mwifiex: fix double free
+    - ipvs: clear skb->tstamp in forwarding path
+    - net: korina: fix kfree of rx/tx descriptor array
+    - netfilter: nf_log: missing vlan offload tag and proto
+    - mm/swapfile.c: fix potential memory leak in sys_swapon
+    - mm/memcg: fix device private memcg accounting
+    - mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
+    - fs: fix NULL dereference due to data race in prepend_path()
+    - selftests/ftrace: Change synthetic event name for inter-event-combined test
+    - i3c: master add i3c_master_attach_boardinfo to preserve boardinfo
+    - IB/mlx4: Fix starvation in paravirt mux/demux
+    - IB/mlx4: Adjust delayed work when a dup is observed
+    - powerpc/pseries: Fix missing of_node_put() in rng_init()
+    - powerpc/icp-hv: Fix missing of_node_put() in success path
+    - RDMA/ucma: Fix locking for ctx->events_reported
+    - RDMA/ucma: Add missing locking around rdma_leave_multicast()
+    - mtd: lpddr: fix excessive stack usage with clang
+    - RDMA/hns: Add a check for current state before modifying QP
+    - RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
+    - powerpc/pseries: explicitly reschedule during drmem_lmb list traversal
+    - pseries/drmem: don't cache node id in drmem_lmb struct
+    - RDMA/mlx5: Fix potential race between destroy and CQE poll
+    - mtd: mtdoops: Don't write panic data twice
+    - ARM: 9007/1: l2c: fix prefetch bits init in L2X0_AUX_CTRL using DT values
+    - arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
+    - ida: Free allocated bitmap in error path
+    - xfs: limit entries returned when counting fsmap records
+    - xfs: fix deadlock and streamline xfs_getfsmap performance
+    - xfs: fix high key handling in the rt allocator's query_range function
+    - RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page
+      boundary
+    - RDMA/umem: Prevent small pages from being returned by
+      ib_umem_find_best_pgsz()
+    - RDMA/qedr: Fix qp structure memory leak
+    - RDMA/qedr: Fix use of uninitialized field
+    - RDMA/qedr: Fix return code if accept is called on a destroyed qp
+    - RDMA/qedr: Fix inline size returned for iWARP
+    - powerpc/book3s64/hash/4k: Support large linear mapping range with 4K
+    - powerpc/tau: Use appropriate temperature sample interval
+    - powerpc/tau: Convert from timer to workqueue
+    - powerpc/tau: Remove duplicated set_thresholds() call
+    - powerpc/tau: Check processor type before enabling TAU interrupt
+    - powerpc/tau: Disable TAU between measurements
+    - powerpc/64s/radix: Fix mm_cpumask trimming race vs kthread_use_mm
+    - RDMA/cma: Remove dead code for kernel rdmacm multicast
+    - RDMA/cma: Consolidate the destruction of a cma_multicast in one place
+    - perf intel-pt: Fix "context_switch event has no tid" error
+    - RDMA/hns: Set the unsupported wr opcode
+    - RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
+    - i40iw: Add support to make destroy QP synchronous
+    - perf stat: Skip duration_time in setup_system_wide
+    - RDMA/hns: Fix the wrong value of rnr_retry when querying qp
+    - RDMA/hns: Fix missing sq_sig_type when querying QP
+    - mtd: rawnand: vf610: disable clk on error handling path in probe
+    - mtd: spinand: gigadevice: Only one dummy byte in QUADIO
+    - mtd: spinand: gigadevice: Add QE Bit
+    - kdb: Fix pager search for multi-line strings
+    - overflow: Include header file with SIZE_MAX declaration
+    - RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces
+    - powerpc/perf: Exclude pmc5/6 from the irrelevant PMU group constraints
+    - powerpc/perf/hv-gpci: Fix starting index value
+    - i3c: master: Fix error return in cdns_i3c_master_probe()
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_reboot_notifier
+    - IB/rdmavt: Fix sizeof mismatch
+    - RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
+    - maiblox: mediatek: Fix handling of platform_get_irq() error
+    - selftests/powerpc: Fix eeh-basic.sh exit codes
+    - f2fs: wait for sysfs kobject removal before freeing f2fs_sb_info
+    - RDMA/rxe: Handle skb_clone() failure in rxe_recv.c
+    - mm/page_owner: change split_page_owner to take a count
+    - lib/crc32.c: fix trivial typo in preprocessor condition
+    - ramfs: fix nommu mmap with gaps in the page cache
+    - rapidio: fix error handling path
+    - rapidio: fix the missed put_device() for rio_mport_add_riodev
+    - mailbox: avoid timer start from callback
+    - i2c: rcar: Auto select RESET_CONTROLLER
+    - clk: meson: g12a: mark fclk_div2 as critical
+    - PCI: aardvark: Check for errors from pci_bridge_emul_init() call
+    - PCI: iproc: Set affinity mask on MSI interrupts
+    - rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
+    - PCI/IOV: Mark VFs as not implementing PCI_COMMAND_MEMORY
+    - vfio/pci: Decouple PCI_COMMAND_MEMORY bit checks from is_virtfn
+    - clk: qcom: gcc-sdm660: Fix wrong parent_map
+    - clk: keystone: sci-clk: fix parsing assigned-clock data during probe
+    - pwm: img: Fix null pointer access in probe
+    - clk: rockchip: Initialize hw to error to avoid undefined behavior
+    - clk: mediatek: add UART0 clock support
+    - module: statically initialize init section freeing data
+    - clk: at91: clk-main: update key before writing AT91_CKGR_MOR
+    - clk: bcm2835: add missing release if devm_clk_hw_register fails
+    - watchdog: Fix memleak in watchdog_cdev_register
+    - watchdog: Use put_device on error
+    - watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3
+    - svcrdma: fix bounce buffers for unaligned offsets and multiple pages
+    - ext4: limit entries returned when counting fsmap records
+    - vfio/pci: Clear token on bypass registration failure
+    - vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
+    - clk: imx8mq: Fix usdhc parents order
+    - SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
+    - Input: imx6ul_tsc - clean up some errors in imx6ul_tsc_resume()
+    - Input: stmfts - fix a & vs && typo
+    - Input: ep93xx_keypad - fix handling of platform_get_irq() error
+    - Input: omap4-keypad - fix handling of platform_get_irq() error
+    - Input: twl4030_keypad - fix handling of platform_get_irq() error
+    - Input: sun4i-ps2 - fix handling of platform_get_irq() error
+    - KVM: x86: emulating RDPID failure shall return #UD rather than #GP
+    - scsi: bfa: Fix error return in bfad_pci_init()
+    - netfilter: conntrack: connection timeout after re-register
+    - netfilter: ebtables: Fixes dropping of small packets in bridge nat
+    - netfilter: nf_fwd_netdev: clear timestamp in forwarding path
+    - arm64: dts: meson: vim3: correct led polarity
+    - ARM: dts: imx6sl: fix rng node
+    - ARM: at91: pm: of_node_put() after its usage
+    - ARM: s3c24xx: fix mmc gpio lookup tables
+    - ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix dcdc1 regulator
+    - arm64: dts: allwinner: h5: remove Mali GPU PMU module
+    - memory: omap-gpmc: Fix a couple off by ones
+    - memory: omap-gpmc: Fix build error without CONFIG_OF
+    - memory: fsl-corenet-cf: Fix handling of platform_get_irq() error
+    - arm64: dts: imx8mq: Add missing interrupts to GPC
+    - arm64: dts: qcom: msm8916: Remove one more thermal trip point unit name
+    - arm64: dts: qcom: pm8916: Remove invalid reg size from wcd_codec
+    - arm64: dts: qcom: msm8916: Fix MDP/DSI interrupts
+    - arm64: dts: renesas: r8a77990: Fix MSIOF1 DMA channels
+    - arm64: dts: renesas: r8a774c0: Fix MSIOF1 DMA channels
+    - arm64: dts: actions: limit address range for pinctrl node
+    - ARM: dts: owl-s500: Fix incorrect PPI interrupt specifiers
+    - soc: fsl: qbman: Fix return value on success
+    - ARM: OMAP2+: Restore MPU power domain if cpu_cluster_pm_enter() fails
+    - arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
+    - ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
+    - lightnvm: fix out-of-bounds write to array devices->info[]
+    - powerpc/powernv/dump: Fix race while processing OPAL dump
+    - powerpc/pseries: Avoid using addr_to_pfn in real mode
+    - nvmet: fix uninitialized work for zero kato
+    - NTB: hw: amd: fix an issue about leak system resources
+    - sched/features: Fix !CONFIG_JUMP_LABEL case
+    - perf: correct SNOOPX field offset
+    - i2c: core: Restore acpi_walk_dep_device_list() getting called after
+      registering the ACPI i2c devs
+    - md/bitmap: fix memory leak of temporary bitmap
+    - block: ratelimit handle_bad_sector() message
+    - crypto: ccp - fix error handling
+    - x86/asm: Replace __force_order with a memory clobber
+    - x86/mce: Add Skylake quirk for patrol scrub reported errors
+    - media: firewire: fix memory leak
+    - media: ati_remote: sanity check for both endpoints
+    - media: st-delta: Fix reference count leak in delta_run_work
+    - media: sti: Fix reference count leaks
+    - media: exynos4-is: Fix several reference count leaks due to
+      pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak due to pm_runtime_get_sync
+    - media: exynos4-is: Fix a reference count leak
+    - media: vsp1: Fix runtime PM imbalance on error
+    - media: platform: s3c-camif: Fix runtime PM imbalance on error
+    - media: platform: sti: hva: Fix runtime PM imbalance on error
+    - media: bdisp: Fix runtime PM imbalance on error
+    - media: media/pci: prevent memory leak in bttv_probe
+    - x86/mce: Make mce_rdmsrl() panic on an inaccessible MSR
+    - media: uvcvideo: Ensure all probed info is returned to v4l2
+    - mmc: sdio: Check for CISTPL_VERS_1 buffer size
+    - media: saa7134: avoid a shift overflow
+    - media: venus: fixes for list corruption
+    - fs: dlm: fix configfs memory leak
+    - media: venus: core: Fix runtime PM imbalance in venus_probe
+    - ntfs: add check for mft record size in superblock
+    - ip_gre: set dev->hard_header_len and dev->needed_headroom properly
+    - mac80211: handle lack of sband->bitrates in rates
+    - PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
+    - scsi: mvumi: Fix error return in mvumi_io_attach()
+    - scsi: target: core: Add CONTROL field for trace events
+    - mic: vop: copy data to kernel space then write to io memory
+    - misc: vop: add round_up(x,4) for vring_size to avoid kernel panic
+    - usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc
+    - usb: gadget: function: printer: fix use-after-free in __lock_acquire
+    - udf: Limit sparing table size
+    - udf: Avoid accessing uninitialized data on failed inode read
+    - rtw88: increse the size of rx buffer size
+    - USB: cdc-acm: handle broken union descriptors
+    - usb: dwc3: simple: add support for Hikey 970
+    - can: flexcan: flexcan_chip_stop(): add error handling and propagate error
+      value
+    - ath9k: hif_usb: fix race condition between usb_get_urb() and
+      usb_kill_anchored_urbs()
+    - drm/panfrost: add amlogic reset quirk callback
+    - bpf: Limit caller's stack depth 256 for subprogs with tailcalls
+    - misc: rtsx: Fix memory leak in rtsx_pci_probe
+    - reiserfs: only call unlock_new_inode() if I_NEW
+    - opp: Prevent memory leak in dev_pm_opp_attach_genpd()
+    - xfs: make sure the rt allocator doesn't run off the end
+    - usb: ohci: Default to per-port over-current protection
+    - Bluetooth: Only mark socket zapped after unlocking
+    - drm/msm/a6xx: fix a potential overflow issue
+    - iomap: fix WARN_ON_ONCE() from unprivileged users
+    - scsi: ibmvfc: Fix error return in ibmvfc_probe()
+    - scsi: qla2xxx: Warn if done() or free() are called on an already freed srb
+    - selftests/bpf: Fix test_sysctl_loop{1, 2} failure due to clang change
+    - brcmsmac: fix memory leak in wlc_phy_attach_lcnphy
+    - rtl8xxxu: prevent potential memory leak
+    - Fix use after free in get_capset_info callback.
+    - HID: ite: Add USB id match for Acer One S1003 keyboard dock
+    - scsi: qedf: Return SUCCESS if stale rport is encountered
+    - scsi: qedi: Protect active command list to avoid list corruption
+    - scsi: qedi: Fix list_del corruption while removing active I/O
+    - fbmem: add margin check to fb_check_caps()
+    - tty: ipwireless: fix error handling
+    - Bluetooth: btusb: Fix memleak in btusb_mtk_submit_wmt_recv_urb
+    - ipvs: Fix uninit-value in do_ip_vs_set_ctl()
+    - reiserfs: Fix memory leak in reiserfs_parse_options()
+    - mwifiex: don't call del_timer_sync() on uninitialized timer
+    - ALSA: hda/ca0132 - Add AE-7 microphone selection commands.
+    - ALSA: hda/ca0132 - Add new quirk ID for SoundBlaster AE-7.
+    - scsi: smartpqi: Avoid crashing kernel for controller issues
+    - brcm80211: fix possible memleak in brcmf_proto_msgbuf_attach
+    - usb: core: Solve race condition in anchor cleanup functions
+    - scsi: ufs: ufs-qcom: Fix race conditions caused by ufs_qcom_testbus_config()
+    - dmaengine: dw: Add DMA-channels mask cell support
+    - dmaengine: dw: Activate FIFO-mode for memory peripherals only
+    - ath10k: check idx validity in __ath10k_htt_rx_ring_fill_n()
+    - net: korina: cast KSEG0 address to pointer in kfree
+    - s390/qeth: don't let HW override the configured port role
+    - tty: serial: lpuart: fix lpuart32_write usage
+    - tty: serial: fsl_lpuart: fix lpuart32_poll_get_char
+    - usb: cdc-acm: add quirk to blacklist ETAS ES58X devices
+    - USB: cdc-wdm: Make wdm_flush() interruptible and add wdm_fsync().
+    - usb: cdns3: gadget: free interrupt after gadget has deleted
+    - eeprom: at25: set minimum read/write access stride to 1
+    - usb: gadget: f_ncm: allow using NCM in SuperSpeed Plus gadgets.
+    - Linux 5.4.73
+
+  * Focal update: v5.4.72 upstream stable release (LP: #1902111)
+    - perf cs-etm: Move definition of 'traceid_list' global variable from header
+      file
+    - btrfs: don't pass system_chunk into can_overcommit
+    - btrfs: take overcommit into account in inc_block_group_ro
+    - ARM: 8939/1: kbuild: use correct nm executable
+    - ACPI: Always build evged in
+    - Bluetooth: Consolidate encryption handling in hci_encrypt_cfm
+    - Bluetooth: Fix update of connection state in `hci_encrypt_cfm`
+    - Bluetooth: Disconnect if E0 is used for Level 4
+    - media: usbtv: Fix refcounting mixup
+    - USB: serial: option: add Cellient MPL200 card
+    - USB: serial: option: Add Telit FT980-KS composition
+    - staging: comedi: check validity of wMaxPacketSize of usb endpoints found
+    - USB: serial: pl2303: add device-id for HP GC device
+    - USB: serial: ftdi_sio: add support for FreeCalypso JTAG+UART adapters
+    - reiserfs: Initialize inode keys properly
+    - reiserfs: Fix oops during mount
+    - xen/events: don't use chip_data for legacy IRQs
+    - crypto: bcm - Verify GCM/CCM key length in setkey
+    - crypto: qat - check cipher length for aead AES-CBC-HMAC-SHA
+    - Linux 5.4.72
+
+  * Focal update: v5.4.71 upstream stable release (LP: #1902110)
+    - fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
+    - Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
+    - fbcon: Fix global-out-of-bounds read in fbcon_get_font()
+    - Revert "ravb: Fixed to be able to unload modules"
+    - io_uring: Fix resource leaking when kill the process
+    - io_uring: Fix missing smp_mb() in io_cancel_async_work()
+    - io_uring: Fix remove irrelevant req from the task_list
+    - io_uring: Fix double list add in io_queue_async_work()
+    - net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
+    - drm/nouveau/mem: guard against NULL pointer access in mem_del
+    - vhost: Don't call access_ok() when using IOTLB
+    - vhost: Use vhost_get_used_size() in vhost_vring_set_addr()
+    - usermodehelper: reset umask to default before executing user process
+    - Platform: OLPC: Fix memleak in olpc_ec_probe
+    - platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP
+      Pavilion 11 x360
+    - platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
+    - bpf: Fix sysfs export of empty BTF section
+    - bpf: Prevent .BTF section elimination
+    - platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE
+      reporting
+    - platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse
+    - driver core: Fix probe_count imbalance in really_probe()
+    - perf test session topology: Fix data path
+    - perf top: Fix stdio interface input handling with glibc 2.28+
+    - i2c: i801: Exclude device from suspend direct complete optimization
+    - arm64: dts: stratix10: add status to qspi dts node
+    - Btrfs: send, allow clone operations within the same file
+    - Btrfs: send, fix emission of invalid clone operations within the same file
+    - btrfs: volumes: Use more straightforward way to calculate map length
+    - btrfs: Ensure we trim ranges across block group boundary
+    - btrfs: fix RWF_NOWAIT write not failling when we need to cow
+    - btrfs: allow btrfs_truncate_block() to fallback to nocow for data space
+      reservation
+    - nvme-core: put ctrl ref when module ref get fail
+    - macsec: avoid use-after-free in macsec_handle_frame()
+    - mm/khugepaged: fix filemap page_to_pgoff(page) != offset
+    - net: introduce helper sendpage_ok() in include/linux/net.h
+    - tcp: use sendpage_ok() to detect misused .sendpage
+    - nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
+    - xfrmi: drop ignore_df check before updating pmtu
+    - cifs: Fix incomplete memory allocation on setxattr path
+    - i2c: meson: fix clock setting overwrite
+    - i2c: meson: fixup rate calculation with filter delay
+    - i2c: owl: Clear NACK and BUS error bits
+    - sctp: fix sctp_auth_init_hmacs() error path
+    - team: set dev->needed_headroom in team_setup_by_port()
+    - net: team: fix memory leak in __team_options_register
+    - openvswitch: handle DNAT tuple collision
+    - drm/amdgpu: prevent double kfree ttm->sg
+    - iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
+    - xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
+    - xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
+    - xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
+    - xfrm: clone whole liftime_cur structure in xfrm_do_migrate
+    - net: stmmac: removed enabling eee in EEE set callback
+    - platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP
+    - xfrm: Use correct address family in xfrm_state_find
+    - iavf: use generic power management
+    - iavf: Fix incorrect adapter get in iavf_resume
+    - net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop
+    - bonding: set dev->needed_headroom in bond_setup_by_slave()
+    - mdio: fix mdio-thunder.c dependency & build error
+    - mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path
+    - r8169: fix RTL8168f/RTL8411 EPHY config
+    - net: usb: ax88179_178a: fix missing stop entry in driver_info
+    - virtio-net: don't disable guest csum when disable LRO
+    - net/mlx5: Avoid possible free of command entry while timeout comp handler
+    - net/mlx5: Fix request_irqs error flow
+    - net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU
+    - net/mlx5e: Fix VLAN cleanup flow
+    - net/mlx5e: Fix VLAN create flow
+    - rxrpc: Fix rxkad token xdr encoding
+    - rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
+    - rxrpc: Fix some missing _bh annotations on locking conn->state_lock
+    - rxrpc: The server keyring isn't network-namespaced
+    - rxrpc: Fix server keyring leak
+    - perf: Fix task_function_call() error handling
+    - mmc: core: don't set limits.discard_granularity as 0
+    - mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected
+      by khugepaged
+    - tcp: fix receive window update in tcp_add_backlog()
+    - net/core: check length before updating Ethertype in skb_mpls_{push,pop}
+    - net/tls: race causes kernel panic
+    - net/mlx5e: Fix driver's declaration to support GRE offload
+    - Input: ati_remote2 - add missing newlines when printing module parameters
+    - net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails
+    - net_sched: defer tcf_idr_insert() in tcf_action_init_1()
+    - net_sched: commit action insertions together
+    - Linux 5.4.71
+
+  * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL:
+    can't add fou port 7777, skipping test" (LP: #1891421)
+    - selftests: rtnetlink: load fou module for kci_test_encap_fou() test
+
+  * alsa/hda/realtek - The front Mic on a HP machine doesn't work (LP: #1899508)
+    - ALSA: hda/realtek - The front Mic on a HP machine doesn't work
+
+  * Enable brightness control on HP DreamColor panel (LP: #1898865)
+    - drm/i915/dpcd_bl: Unbreak enable_dpcd_backlight modparam
+    - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD
+      quirk
+    - SAUCE: drm/dp: HP DreamColor panel brigntness fix
+
+  * Fix non-working Intel NVMe after S3 (LP: #1900847)
+    - SAUCE: PCI: Enable ACS quirk on all CML root ports
+
+  * bcache: Issues with large IO wait in bch_mca_scan() when shrinker is enabled
+    (LP: #1898786)
+    - bcache: remove member accessed from struct btree
+    - bcache: reap c->btree_cache_freeable from the tail in bch_mca_scan()
+    - bcache: reap from tail of c->btree_cache in bch_mca_scan()
+
+  * Improve descriptions for XFAIL cases in kselftests/net/psock_snd
+    (LP: #1900088)
+    - selftests/net: improve descriptions for XFAIL cases in psock_snd.sh
+
+  * ceph: fix inode number handling on arches with 32-bit ino_t (LP: #1899582)
+    - ceph: fix inode number handling on arches with 32-bit ino_t
+
+  * Fix system reboot when disconnecting WiFi (LP: #1899726)
+    - iwlwifi: msix: limit max RX queues for 9000 family
+
+  * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586)
+    - ALSA: hda: fix jack detection with Realtek codecs when in D3
+
+  * Focal update: v5.4.70 upstream stable release (LP: #1900632)
+    - btrfs: fix filesystem corruption after a device replace
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK based IRBIS
+      models
+    - USB: gadget: f_ncm: Fix NDP16 datagram validation
+    - gpio: siox: explicitly support only threaded irqs
+    - gpio: mockup: fix resource leak in error path
+    - gpio: tc35894: fix up tc35894 interrupt configuration
+    - clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
+    - vsock/virtio: add transport parameter to the
+      virtio_transport_reset_no_sock()
+    - net: virtio_vsock: Enhance connection semantics
+    - xfs: trim IO to found COW extent limit
+    - Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
+    - iio: adc: qcom-spmi-adc5: fix driver name
+    - ftrace: Move RCU is watching check after recursion check
+    - memstick: Skip allocating card when removing host
+    - drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
+    - clocksource/drivers/timer-gx6605s: Fixup counter reload
+    - libbpf: Remove arch-specific include path in Makefile
+    - drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices
+    - drm/sun4i: mixer: Extend regmap max_register
+    - net: dec: de2104x: Increase receive ring size for Tulip
+    - rndis_host: increase sleep time in the query-response loop
+    - nvme-core: get/put ctrl and transport module in nvme_dev_open/release()
+    - fuse: fix the ->direct_IO() treatment of iov_iter
+    - drivers/net/wan/lapbether: Make skb->protocol consistent with the header
+    - drivers/net/wan/hdlc: Set skb->protocol before transmitting
+    - mac80211: Fix radiotap header channel flag for 6GHz band
+    - mac80211: do not allow bigger VHT MPDUs than the hardware supports
+    - tracing: Make the space reserved for the pid wider
+    - tools/io_uring: fix compile breakage
+    - spi: fsl-espi: Only process interrupts for expected events
+    - nvme-pci: fix NULL req in completion handler
+    - nvme-fc: fail new connections to a deleted host or remote port
+    - gpio: sprd: Clear interrupt when setting the type as edge
+    - phy: ti: am654: Fix a leak in serdes_am654_probe()
+    - pinctrl: mvebu: Fix i2c sda definition for 98DX3236
+    - nfs: Fix security label length not being reset
+    - clk: tegra: Always program PLL_E when enabled
+    - clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
+    - iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
+    - gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
+    - gpio/aspeed-sgpio: don't enable all interrupts by default
+    - gpio: aspeed: fix ast2600 bank properties
+    - i2c: cpm: Fix i2c_ram structure
+    - Input: trackpoint - enable Synaptics trackpoints
+    - scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
+    - random32: Restore __latent_entropy attribute on net_rand_state
+    - block/diskstats: more accurate approximation of io_ticks for slow disks
+    - mm: replace memmap_context by meminit_context
+    - mm: don't rely on system state to detect hot-plug operations
+    - nvme: Cleanup and rename nvme_block_nr()
+    - nvme: Introduce nvme_lba_to_sect()
+    - nvme: consolidate chunk_sectors settings
+    - epoll: do not insert into poll queues until all sanity checks are done
+    - epoll: replace ->visited/visited_list with generation count
+    - epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
+    - ep_create_wakeup_source(): dentry name can change under you...
+    - netfilter: ctnetlink: add a range check for l3/l4 protonum
+    - Linux 5.4.70
+
+  * Focal update: v5.4.69 upstream stable release (LP: #1900624)
+    - kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec()
+    - selinux: allow labeling before policy is loaded
+    - media: mc-device.c: fix memleak in media_device_register_entity
+    - drm/amd/display: Do not double-buffer DTO adjustments
+    - drm/amdkfd: Fix race in gfx10 context restore handler
+    - dma-fence: Serialise signal enabling (dma_fence_enable_sw_signaling)
+    - scsi: qla2xxx: Add error handling for PLOGI ELS passthrough
+    - ath10k: fix array out-of-bounds access
+    - ath10k: fix memory leak for tpc_stats_final
+    - PCI/IOV: Serialize sysfs sriov_numvfs reads vs writes
+    - mm: fix double page fault on arm64 if PTE_AF is cleared
+    - scsi: aacraid: fix illegal IO beyond last LBA
+    - m68k: q40: Fix info-leak in rtc_ioctl
+    - xfs: fix inode fork extent count overflow
+    - gma/gma500: fix a memory disclosure bug due to uninitialized bytes
+    - ASoC: kirkwood: fix IRQ error handling
+    - soundwire: intel/cadence: fix startup sequence
+    - media: smiapp: Fix error handling at NVM reading
+    - drm/amd/display: Free gamma after calculating legacy transfer function
+    - xfs: properly serialise fallocate against AIO+DIO
+    - leds: mlxreg: Fix possible buffer overflow
+    - dm table: do not allow request-based DM to stack on partitions
+    - PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out
+    - scsi: fnic: fix use after free
+    - powerpc/64s: Always disable branch profiling for prom_init.o
+    - net: silence data-races on sk_backlog.tail
+    - dax: Fix alloc_dax_region() compile warning
+    - iomap: Fix overflow in iomap_page_mkwrite
+    - f2fs: avoid kernel panic on corruption test
+    - clk/ti/adpll: allocate room for terminating null
+    - drm/amdgpu/powerplay: fix AVFS handling with custom powerplay table
+    - ice: Fix to change Rx/Tx ring descriptor size via ethtool with DCBx
+    - mtd: cfi_cmdset_0002: don't free cfi->cfiq in error path of
+      cfi_amdstd_setup()
+    - mfd: mfd-core: Protect against NULL call-back function pointer
+    - drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
+    - tpm_crb: fix fTPM on AMD Zen+ CPUs
+    - tracing: Verify if trace array exists before destroying it.
+    - tracing: Adding NULL checks for trace_array descriptor pointer
+    - bcache: fix a lost wake-up problem caused by mca_cannibalize_lock
+    - dmaengine: mediatek: hsdma_probe: fixed a memory leak when devm_request_irq
+      fails
+    - x86/kdump: Always reserve the low 1M when the crashkernel option is
+      specified
+    - RDMA/qedr: Fix potential use after free
+    - RDMA/i40iw: Fix potential use after free
+    - PCI: Avoid double hpmemsize MMIO window assignment
+    - fix dget_parent() fastpath race
+    - xfs: fix attr leaf header freemap.size underflow
+    - RDMA/iw_cgxb4: Fix an error handling path in 'c4iw_connect()'
+    - ubi: Fix producing anchor PEBs
+    - mmc: core: Fix size overflow for mmc partitions
+    - gfs2: clean up iopen glock mess in gfs2_create_inode
+    - scsi: pm80xx: Cleanup command when a reset times out
+    - mt76: do not use devm API for led classdev
+    - mt76: add missing locking around ampdu action
+    - debugfs: Fix !DEBUG_FS debugfs_create_automount
+    - SUNRPC: Capture completion of all RPC tasks
+    - CIFS: Use common error handling code in smb2_ioctl_query_info()
+    - CIFS: Properly process SMB3 lease breaks
+    - f2fs: stop GC when the victim becomes fully valid
+    - ASoC: max98090: remove msleep in PLL unlocked workaround
+    - xtensa: fix system_call interaction with ptrace
+    - s390: avoid misusing CALL_ON_STACK for task stack setup
+    - xfs: fix realtime file data space leak
+    - drm/amdgpu: fix calltrace during kmd unload(v3)
+    - arm64: insn: consistently handle exit text
+    - selftests/bpf: De-flake test_tcpbpf
+    - kernel/notifier.c: intercept duplicate registrations to avoid infinite loops
+    - kernel/sys.c: avoid copying possible padding bytes in copy_to_user
+    - KVM: arm/arm64: vgic: Fix potential double free dist->spis in
+      __kvm_vgic_destroy()
+    - module: Remove accidental change of module_enable_x()
+    - xfs: fix log reservation overflows when allocating large rt extents
+    - ALSA: hda: enable regmap internal locking
+    - tipc: fix link overflow issue at socket shutdown
+    - vcc_seq_next should increase position index
+    - neigh_stat_seq_next() should increase position index
+    - rt_cpu_seq_next should increase position index
+    - ipv6_route_seq_next should increase position index
+    - drm/mcde: Handle pending vblank while disabling display
+    - seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier
+    - drm/scheduler: Avoid accessing freed bad job.
+    - media: ti-vpe: cal: Restrict DMA to avoid memory corruption
+    - opp: Replace list_kref with a local counter
+    - scsi: qla2xxx: Fix stuck session in GNL
+    - sctp: move trace_sctp_probe_path into sctp_outq_sack
+    - ACPI: EC: Reference count query handlers under lock
+    - scsi: ufs: Make ufshcd_add_command_trace() easier to read
+    - scsi: ufs: Fix a race condition in the tracing code
+    - drm/amd/display: Initialize DSC PPS variables to 0
+    - i2c: tegra: Prevent interrupt triggering after transfer timeout
+    - btrfs: tree-checker: Check leaf chunk item size
+    - dmaengine: zynqmp_dma: fix burst length configuration
+    - s390/cpum_sf: Use kzalloc and minor changes
+    - nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create()
+    - powerpc/eeh: Only dump stack once if an MMIO loop is detected
+    - Bluetooth: btrtl: Use kvmalloc for FW allocations
+    - tracing: Set kernel_stack's caller size properly
+    - ARM: 8948/1: Prevent OOB access in stacktrace
+    - ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter
+    - ceph: ensure we have a new cap before continuing in fill_inode
+    - selftests/ftrace: fix glob selftest
+    - tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
+    - Bluetooth: Fix refcount use-after-free issue
+    - mm/swapfile.c: swap_next should increase position index
+    - mm: pagewalk: fix termination condition in walk_pte_range()
+    - Bluetooth: prefetch channel before killing sock
+    - ALSA: hda: Clear RIRB status before reading WP
+    - skbuff: fix a data race in skb_queue_len()
+    - nfsd: Fix a perf warning
+    - drm/amd/display: fix workaround for incorrect double buffer register for DLG
+      ADL and TTU
+    - audit: CONFIG_CHANGE don't log internal bookkeeping as an event
+    - selinux: sel_avc_get_stat_idx should increase position index
+    - drm/omap: fix possible object reference leak
+    - locking/lockdep: Decrement IRQ context counters when removing lock chain
+    - clk: stratix10: use do_div() for 64-bit calculation
+    - crypto: chelsio - This fixes the kernel panic which occurs during a libkcapi
+      test
+    - mt76: clear skb pointers from rx aggregation reorder buffer during cleanup
+    - mt76: fix handling full tx queues in mt76_dma_tx_queue_skb_raw
+    - ALSA: usb-audio: Don't create a mixer element with bogus volume range
+    - perf test: Fix test trace+probe_vfs_getname.sh on s390
+    - RDMA/rxe: Fix configuration of atomic queue pair attributes
+    - KVM: x86: fix incorrect comparison in trace event
+    - KVM: nVMX: Hold KVM's srcu lock when syncing vmcs12->shadow
+    - dmaengine: stm32-mdma: use vchan_terminate_vdesc() in .terminate_all
+    - media: staging/imx: Missing assignment in
+      imx_media_capture_device_register()
+    - x86/pkeys: Add check for pkey "overflow"
+    - bpf: Remove recursion prevention from rcu free callback
+    - dmaengine: stm32-dma: use vchan_terminate_vdesc() in .terminate_all
+    - dmaengine: tegra-apb: Prevent race conditions on channel's freeing
+    - soundwire: bus: disable pm_runtime in sdw_slave_delete
+    - drm/amd/display: dal_ddc_i2c_payloads_create can fail causing panic
+    - drm/omap: dss: Cleanup DSS ports on initialisation failure
+    - iavf: use tc_cls_can_offload_and_chain0() instead of chain check
+    - firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp
+    - random: fix data races at timer_rand_state
+    - bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host
+      removal
+    - ASoC: SOF: ipc: check ipc return value before data copy
+    - media: go7007: Fix URB type for interrupt handling
+    - Bluetooth: guard against controllers sending zero'd events
+    - timekeeping: Prevent 32bit truncation in scale64_check_overflow()
+    - powerpc/book3s64: Fix error handling in mm_iommu_do_alloc()
+    - drm/amd/display: fix image corruption with ODM 2:1 DSC 2 slice
+    - ext4: fix a data race at inode->i_disksize
+    - perf jevents: Fix leak of mapfile memory
+    - mm: avoid data corruption on CoW fault into PFN-mapped VMA
+    - drm/amdgpu: increase atombios cmd timeout
+    - ARM: OMAP2+: Handle errors for cpu_pm
+    - clk: imx: Fix division by zero warning on pfdv2
+    - cpu-topology: Fix the potential data corruption
+    - s390/irq: replace setup_irq() by request_irq()
+    - perf cs-etm: Swap packets for instruction samples
+    - perf cs-etm: Correct synthesizing instruction samples
+    - ath10k: use kzalloc to read for ath10k_sdio_hif_diag_read
+    - scsi: aacraid: Disabling TM path and only processing IOP reset
+    - Bluetooth: L2CAP: handle l2cap config request during open state
+    - media: tda10071: fix unsigned sign extension overflow
+    - tty: sifive: Finish transmission before changing the clock
+    - xfs: don't ever return a stale pointer from __xfs_dir3_free_read
+    - xfs: mark dir corrupt when lookup-by-hash fails
+    - ext4: mark block bitmap corrupted when found instead of BUGON
+    - tpm: ibmvtpm: Wait for buffer to be set before proceeding
+    - rtc: sa1100: fix possible race condition
+    - rtc: ds1374: fix possible race condition
+    - nfsd: Don't add locks to closed or closing open stateids
+    - RDMA/cm: Remove a race freeing timewait_info
+    - intel_th: Disallow multi mode on devices where it's broken
+    - KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like
+      the valid ones
+    - drm/msm: fix leaks if initialization fails
+    - drm/msm/a5xx: Always set an OPP supported hardware value
+    - tracing: Use address-of operator on section symbols
+    - thermal: rcar_thermal: Handle probe error gracefully
+    - KVM: LAPIC: Mark hrtimer for period or oneshot mode to expire in hard
+      interrupt context
+    - perf parse-events: Fix 3 use after frees found with clang ASAN
+    - btrfs: do not init a reloc root if we aren't relocating
+    - btrfs: free the reloc_control in a consistent way
+    - r8169: improve RTL8168b FIFO overflow workaround
+    - serial: 8250_port: Don't service RX FIFO if throttled
+    - serial: 8250_omap: Fix sleeping function called from invalid context during
+      probe
+    - serial: 8250: 8250_omap: Terminate DMA before pushing data on RX timeout
+    - perf cpumap: Fix snprintf overflow check
+    - net: axienet: Convert DMA error handler to a work queue
+    - net: axienet: Propagate failure of DMA descriptor setup
+    - cpufreq: powernv: Fix frame-size-overflow in powernv_cpufreq_work_fn
+    - tools: gpio-hammer: Avoid potential overflow in main
+    - exec: Add exec_update_mutex to replace cred_guard_mutex
+    - exec: Fix a deadlock in strace
+    - selftests/ptrace: add test cases for dead-locks
+    - kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
+    - proc: Use new infrastructure to fix deadlocks in execve
+    - proc: io_accounting: Use new infrastructure to fix deadlocks in execve
+    - perf: Use new infrastructure to fix deadlocks in execve
+    - nvme-multipath: do not reset on unknown status
+    - nvme: Fix ctrl use-after-free during sysfs deletion
+    - nvme: Fix controller creation races with teardown flow
+    - brcmfmac: Fix double freeing in the fmac usb data path
+    - xfs: prohibit fs freezing when using empty transactions
+    - RDMA/rxe: Set sys_image_guid to be aligned with HW IB devices
+    - IB/iser: Always check sig MR before putting it to the free pool
+    - scsi: hpsa: correct race condition in offload enabled
+    - SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
+    - svcrdma: Fix leak of transport addresses
+    - netfilter: nf_tables: silence a RCU-list warning in nft_table_lookup()
+    - PCI: Use ioremap(), not phys_to_virt() for platform ROM
+    - ubifs: ubifs_jnl_write_inode: Fix a memory leak bug
+    - ubifs: ubifs_add_orphan: Fix a memory leak bug
+    - ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
+    - ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra
+      endpoint descriptor
+    - PCI: pciehp: Fix MSI interrupt race
+    - NFS: Fix races nfs_page_group_destroy() vs
+      nfs_destroy_unlinked_subrequests()
+    - drm/amdgpu/vcn2.0: stall DPG when WPTR/RPTR reset
+    - powerpc/perf: Implement a global lock to avoid races between trace, core and
+      thread imc events.
+    - mm/kmemleak.c: use address-of operator on section symbols
+    - mm/filemap.c: clear page error before actual read
+    - mm/swapfile: fix data races in try_to_unuse()
+    - mm/vmscan.c: fix data races using kswapd_classzone_idx
+    - SUNRPC: Don't start a timer on an already queued rpc task
+    - nvmet-rdma: fix double free of rdma queue
+    - workqueue: Remove the warning in wq_worker_sleeping()
+    - drm/amdgpu/sriov add amdgpu_amdkfd_pre_reset in gpu reset
+    - mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
+    - ALSA: hda: Skip controller resume if not needed
+    - scsi: qedi: Fix termination timeouts in session logout
+    - serial: uartps: Wait for tx_empty in console setup
+    - btrfs: fix setting last_trans for reloc roots
+    - KVM: Remove CREATE_IRQCHIP/SET_PIT2 race
+    - perf stat: Force error in fallback on :k events
+    - bdev: Reduce time holding bd_mutex in sync in blkdev_close()
+    - drivers: char: tlclk.c: Avoid data race between init and interrupt handler
+    - KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy
+    - KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi()
+    - net: openvswitch: use u64 for meter bucket
+    - scsi: aacraid: Fix error handling paths in aac_probe_one()
+    - staging:r8188eu: avoid skb_clone for amsdu to msdu conversion
+    - sparc64: vcc: Fix error return code in vcc_probe()
+    - arm64: cpufeature: Relax checks for AArch32 support at EL[0-2]
+    - sched/fair: Eliminate bandwidth race between throttling and distribution
+    - dpaa2-eth: fix error return code in setup_dpni()
+    - dt-bindings: sound: wm8994: Correct required supplies based on actual
+      implementaion
+    - devlink: Fix reporter's recovery condition
+    - atm: fix a memory leak of vcc->user_back
+    - media: venus: vdec: Init registered list unconditionally
+    - perf mem2node: Avoid double free related to realloc
+    - mm/slub: fix incorrect interpretation of s->offset
+    - i2c: tegra: Restore pinmux on system resume
+    - power: supply: max17040: Correct voltage reading
+    - phy: samsung: s5pv210-usb2: Add delay after reset
+    - Bluetooth: Handle Inquiry Cancel error after Inquiry Complete
+    - USB: EHCI: ehci-mv: fix error handling in mv_ehci_probe()
+    - KVM: x86: handle wrap around 32-bit address space
+    - tipc: fix memory leak in service subscripting
+    - tty: serial: samsung: Correct clock selection logic
+    - ALSA: hda: Fix potential race in unsol event handler
+    - drm/exynos: dsi: Remove bridge node reference in error handling path in
+      probe function
+    - ipmi:bt-bmc: Fix error handling and status check
+    - powerpc/traps: Make unrecoverable NMIs die instead of panic
+    - svcrdma: Fix backchannel return code
+    - fuse: don't check refcount after stealing page
+    - fuse: update attr_version counter on fuse_notify_inval_inode()
+    - USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int
+    - coresight: etm4x: Fix use-after-free of per-cpu etm drvdata
+    - arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work
+    - scsi: cxlflash: Fix error return code in cxlflash_probe()
+    - arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
+    - drm/amdkfd: fix restore worker race condition
+    - e1000: Do not perform reset in reset_task if we are already down
+    - drm/nouveau/debugfs: fix runtime pm imbalance on error
+    - drm/nouveau: fix runtime pm imbalance on error
+    - drm/nouveau/dispnv50: fix runtime pm imbalance on error
+    - printk: handle blank console arguments passed in.
+    - usb: dwc3: Increase timeout for CmdAct cleared by device controller
+    - btrfs: don't force read-only after error in drop snapshot
+    - btrfs: fix double __endio_write_update_ordered in direct I/O
+    - gpio: rcar: Fix runtime PM imbalance on error
+    - vfio/pci: fix memory leaks of eventfd ctx
+    - KVM: PPC: Book3S HV: Close race with page faults around memslot flushes
+    - perf evsel: Fix 2 memory leaks
+    - perf trace: Fix the selection for architectures to generate the errno name
+      tables
+    - perf stat: Fix duration_time value for higher intervals
+    - perf util: Fix memory leak of prefix_if_not_in
+    - perf metricgroup: Free metric_events on error
+    - perf kcore_copy: Fix module map when there are no modules loaded
+    - PCI: tegra194: Fix runtime PM imbalance on error
+    - ASoC: img-i2s-out: Fix runtime PM imbalance on error
+    - wlcore: fix runtime pm imbalance in wl1271_tx_work
+    - wlcore: fix runtime pm imbalance in wlcore_regdomain_config
+    - mtd: rawnand: gpmi: Fix runtime PM imbalance on error
+    - mtd: rawnand: omap_elm: Fix runtime PM imbalance on error
+    - PCI: tegra: Fix runtime PM imbalance on error
+    - ceph: fix potential race in ceph_check_caps
+    - mm/swap_state: fix a data race in swapin_nr_pages
+    - mm: memcontrol: fix stat-corrupting race in charge moving
+    - rapidio: avoid data race between file operation callbacks and
+      mport_cdev_add().
+    - mtd: parser: cmdline: Support MTD names containing one or more colons
+    - x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline
+    - NFS: nfs_xdr_status should record the procedure name
+    - vfio/pci: Clear error and request eventfd ctx after releasing
+    - cifs: Fix double add page to memcg when cifs_readpages
+    - nvme: fix possible deadlock when I/O is blocked
+    - mac80211: skip mpath lookup also for control port tx
+    - scsi: libfc: Handling of extra kref
+    - scsi: libfc: Skip additional kref updating work event
+    - selftests/x86/syscall_nt: Clear weird flags after each test
+    - vfio/pci: fix racy on error and request eventfd ctx
+    - btrfs: qgroup: fix data leak caused by race between writeback and truncate
+    - perf tests: Fix test 68 zstd compression for s390
+    - scsi: qla2xxx: Retry PLOGI on FC-NVMe PRLI failure
+    - ubi: fastmap: Free unused fastmap anchor peb during detach
+    - mt76: fix LED link time failure
+    - opp: Increase parsed_static_opps in _of_add_opp_table_v1()
+    - perf parse-events: Use strcmp() to compare the PMU name
+    - ALSA: hda: Always use jackpoll helper for jack update after resume
+    - ALSA: hda: Workaround for spurious wakeups on some Intel platforms
+    - net: openvswitch: use div_u64() for 64-by-32 divisions
+    - nvme: explicitly update mpath disk capacity on revalidation
+    - device_cgroup: Fix RCU list debugging warning
+    - ASoC: pcm3168a: ignore 0 Hz settings
+    - ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
+    - ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
+    - RISC-V: Take text_mutex in ftrace_init_nop()
+    - i2c: aspeed: Mask IRQ status to relevant bits
+    - s390/init: add missing __init annotations
+    - lockdep: fix order in trace_hardirqs_off_caller()
+    - EDAC/ghes: Check whether the driver is on the safe list correctly
+    - drm/amdkfd: fix a memory leak issue
+    - drm/amd/display: update nv1x stutter latencies
+    - drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
+    - objtool: Fix noreturn detection for ignored functions
+    - ieee802154: fix one possible memleak in ca8210_dev_com_init
+    - ieee802154/adf7242: check status of adf7242_read_reg
+    - clocksource/drivers/h8300_timer8: Fix wrong return value in
+      h8300_8timer_init()
+    - batman-adv: bla: fix type misuse for backbone_gw hash indexing
+    - atm: eni: fix the missed pci_disable_device() for eni_init_one()
+    - batman-adv: mcast/TT: fix wrongly dropped or rerouted packets
+    - netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled
+    - mac802154: tx: fix use-after-free
+    - bpf: Fix clobbering of r2 in bpf_gen_ld_abs
+    - drm/vc4/vc4_hdmi: fill ASoC card owner
+    - net: qed: Disable aRFS for NPAR and 100G
+    - net: qede: Disable aRFS for NPAR and 100G
+    - net: qed: RDMA personality shouldn't fail VF load
+    - drm/sun4i: sun8i-csc: Secondary CSC register correction
+    - batman-adv: Add missing include for in_interrupt()
+    - nvme-tcp: fix kconfig dependency warning when !CRYPTO
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
+    - batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh
+    - batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
+    - bpf: Fix a rcu warning for bpffs map pretty-print
+    - lib80211: fix unmet direct dependendices config warning when !CRYPTO
+    - ALSA: asihpi: fix iounmap in error handler
+    - regmap: fix page selection for noinc reads
+    - regmap: fix page selection for noinc writes
+    - MIPS: Add the missing 'CPU_1074K' into __get_cpu_type()
+    - regulator: axp20x: fix LDO2/4 description
+    - KVM: x86: Reset MMU context if guest toggles CR4.SMAP or CR4.PKE
+    - KVM: SVM: Add a dedicated INVD intercept routine
+    - mm: validate pmd after splitting
+    - arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
+    - x86/ioapic: Unbreak check_timer()
+    - scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
+    - ALSA: usb-audio: Add delay quirk for H570e USB headsets
+    - ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged
+    - ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation
+      P520
+    - lib/string.c: implement stpcpy
+    - tracing: fix double free
+    - s390/dasd: Fix zero write for FBA devices
+    - kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
+    - kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
+    - btrfs: fix overflow when copying corrupt csums for a message
+    - dmabuf: fix NULL pointer dereference in dma_buf_release()
+    - mm, THP, swap: fix allocating cluster for swapfile by mistake
+    - mm/gup: fix gup_fast with dynamic page table folding
+    - s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl
+    - KVM: arm64: Assume write fault on S1PTW permission fault on instruction
+      fetch
+    - dm: fix bio splitting and its bio completion order for regular IO
+    - ata: define AC_ERR_OK
+    - ata: make qc_prep return ata_completion_errors
+    - ata: sata_mv, avoid trigerrable BUG_ON
+    - Linux 5.4.69
+
+  * Focal update: v5.4.68 upstream stable release (LP: #1899511)
+    - af_key: pfkey_dump needs parameter validation
+    - ibmvnic fix NULL tx_pools and rx_tools issue at do_reset
+    - ibmvnic: add missing parenthesis in do_reset()
+    - kprobes: fix kill kprobe which has been marked as gone
+    - mm/thp: fix __split_huge_pmd_locked() for migration PMD
+    - act_ife: load meta modules before tcf_idr_check_alloc()
+    - bnxt_en: Avoid sending firmware messages when AER error is detected.
+    - bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task()
+    - cxgb4: fix memory leak during module unload
+    - cxgb4: Fix offset when clearing filter byte counters
+    - geneve: add transport ports in route lookup for geneve
+    - hdlc_ppp: add range checks in ppp_cp_parse_cr()
+    - ip: fix tos reflection in ack and reset packets
+    - ipv4: Initialize flowi4_multipath_hash in data path
+    - ipv4: Update exception handling for multipath routes via same device
+    - ipv6: avoid lockdep issue in fib6_del()
+    - net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under
+      RCU
+    - net: DCB: Validate DCB_ATTR_DCB_BUFFER argument
+    - net: dsa: rtl8366: Properly clear member config
+    - net: Fix bridge enslavement failure
+    - net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC
+    - net/mlx5: Fix FTE cleanup
+    - net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc
+    - net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant
+    - nfp: use correct define to return NONE fec
+    - taprio: Fix allowing too small intervals
+    - tipc: Fix memory leak in tipc_group_create_member()
+    - tipc: fix shutdown() of connection oriented socket
+    - tipc: use skb_unshare() instead in tipc_buf_append()
+    - net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported
+    - net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported
+    - bnxt_en: return proper error codes in bnxt_show_temp
+    - bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex.
+    - net: lantiq: Wake TX queue again
+    - net: lantiq: use netif_tx_napi_add() for TX NAPI
+    - net: lantiq: Use napi_complete_done()
+    - net: lantiq: Disable IRQs only if NAPI gets scheduled
+    - net: phy: Avoid NPD upon phy_detach() when driver is unbound
+    - net: phy: Do not warn in phy_stop() on PHY_DOWN
+    - net: qrtr: check skb_put_padto() return value
+    - net: add __must_check to skb_put_padto()
+    - mm: memcg: fix memcg reclaim soft lockup
+    - iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
+    - Linux 5.4.68
+
+  * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903)
+    - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/
+
+  * tc/ebpf: unable to use BPF_FUNC_skb_change_head (LP: #1896504)
+    - net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
+
+  * HP Zbook Studio G7 boots into corrupted screen with PSR featured panel
+    (LP: #1897501)
+    - SAUCE: drm/i915/psr: allow overriding PSR disable param by quirk
+    - SAUCE: drm/dp: add DP_QUIRK_FORCE_PSR_CHIP_DEFAULT quirk to CMN prod-ID
+      19-15
+
+  * Fix broken e1000e device after S3 (LP: #1897755)
+    - SAUCE: e1000e: Increase polling timeout on MDIC ready bit
+
+  * debian/rules editconfigs does not work on s390x to change s390x only configs
+    (LP: #1863116)
+    - [Packaging] kernelconfig -- only update/edit configurations on architectures
+      we have compiler support
+
+  * acpi event detection crashes (LP: #1896482)
+    - ACPI: EC: tweak naming in preparation for GpioInt support
+    - ACPI: EC: add support for hardware-reduced systems
+    - ACPI: EC: Avoid passing redundant argument to functions
+    - ACPI: EC: Consolidate event handler installation code
+
+  * mwifiex stops working after kernel upgrade (LP: #1897299)
+    - mwifiex: Increase AES key storage size to 256 bits
+
+  * Remove NVMe suspend-to-idle workaround (LP: #1897227)
+    - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3"
+    - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3"
+
+  * Request for CIFS patches to be available in 5.4 kernel (LP: #1896642)
+    - smb3: remove unused flag passed into close functions
+    - smb3: query attributes on file close
+
+  * Lenovo ThinkBook 14-IML Touchpad not showing up in /proc/bus/input/devices
+    (LP: #1853277)
+    - i2c: core: Call i2c_acpi_install_space_handler() before
+      i2c_acpi_register_devices()
+
+  * [Ubuntu 20.10] zPCI DMA tables and bitmap leak on hard unplug (PCI Event
+    0x0304) (LP: #1896216)
+    - s390/pci: fix leak of DMA tables on hard unplug
+
+  * Thunderbolt3 daisy chain sometimes doesn't work (LP: #1895606)
+    - thunderbolt: Retry DROM read once if parsing fails
+
+  * btrfs: trimming a btrfs device which has been shrunk previously fails and
+    fills root disk with garbage data (LP: #1896154)
+    - btrfs: trim: fix underflow in trim length to prevent access beyond device
+      boundary
+
+  * EFA: add support for 0xefa1 devices (LP: #1896791)
+    - RDMA/efa: Expose maximum TX doorbell batch
+    - RDMA/efa: Expose minimum SQ size
+    - RDMA/efa: User/kernel compatibility handshake mechanism
+    - RDMA/efa: Add EFA 0xefa1 PCI ID
+
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828)
+    - gfs2: initialize transaction tr_ailX_lists earlier
+    - RDMA/bnxt_re: Restrict the max_gids to 256
+    - dsa: Allow forwarding of redirected IGMP traffic
+    - net: handle the return value of pskb_carve_frag_list() correctly
+    - hv_netvsc: Remove "unlikely" from netvsc_select_queue
+    - firmware_loader: fix memory leak for paged buffer
+    - NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
+    - scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
+    - scsi: libfc: Fix for double free()
+    - scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
+    - regulator: pwm: Fix machine constraints application
+    - spi: spi-loopback-test: Fix out-of-bounds read
+    - NFS: Zero-stateid SETATTR should first return delegation
+    - SUNRPC: stop printk reading past end of string
+    - rapidio: Replace 'select' DMAENGINES 'with depends on'
+    - cifs: fix DFS mount with cifsacl/modefromsid
+    - openrisc: Fix cache API compile issue when not inlining
+    - nvme-fc: cancel async events before freeing event struct
+    - nvme-rdma: cancel async events before freeing event struct
+    - nvme-tcp: cancel async events before freeing event struct
+    - block: only call sched requeue_request() for scheduled requests
+    - f2fs: fix indefinite loop scanning for free nid
+    - f2fs: Return EOF on unaligned end of file DIO read
+    - i2c: algo: pca: Reapply i2c bus settings after reset
+    - spi: Fix memory leak on splited transfers
+    - KVM: MIPS: Change the definition of kvm type
+    - clk: davinci: Use the correct size when allocating memory
+    - clk: rockchip: Fix initialization of mux_pll_src_4plls_p
+    - ASoC: qcom: Set card->owner to avoid warnings
+    - ASoC: qcom: common: Fix refcount imbalance on error
+    - powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
+    - ASoC: meson: axg-toddr: fix channel order on g12 platforms
+    - Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
+    - scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
+    - arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
+    - Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
+    - perf test: Fix the "signal" test inline assembly
+    - MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
+    - perf evlist: Fix cpu/thread map leak
+    - perf parse-event: Fix memory leak in evsel->unit
+    - perf test: Free formats for perf pmu parse test
+    - fbcon: Fix user font detection test at fbcon_resize().
+    - MIPS: SNI: Fix spurious interrupts
+    - drm/mediatek: Add exception handing in mtk_drm_probe() if component init
+      fail
+    - drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
+    - arm64: bpf: Fix branch offset in JIT
+    - iommu/amd: Fix potential @entry null deref
+    - i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
+    - riscv: Add sfence.vma after early page table changes
+    - drm/i915: Filter wake_flags passed to default_wake_function
+    - USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin
+      notebook
+    - USB: UAS: fix disconnect by unplugging a hub
+    - usblp: fix race between disconnect() and read()
+    - i2c: i801: Fix resume bug
+    - Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI
+      X570-A PRO"
+    - ALSA: hda: fixup headset for ASUS GX502 laptop
+    - ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
+    - percpu: fix first chunk size calculation for populated bitmap
+    - Input: trackpoint - add new trackpoint variant IDs
+    - Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
+    - serial: 8250_pci: Add Realtek 816a and 816b
+    - x86/boot/compressed: Disable relocation relaxation
+    - s390/zcrypt: fix kmalloc 256k failure
+    - ehci-hcd: Move include to keep CRC stable
+    - powerpc/dma: Fix dma_map_ops::get_required_mask
+    - selftests/vm: fix display of page size in map_hugetlb
+    - dm/dax: Fix table reference counts
+    - mm/memory_hotplug: drain per-cpu pages again during memory offline
+    - dm: Call proper helper to determine dax support
+    - dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
+    - Linux 5.4.67
+
+  * Focal update: v5.4.67 upstream stable release (LP: #1896828) // Cherry Pick
+    needed for Critical upstream patch for Kernel null pointer dereference -
+    usb-c altmode (LP: #1897963)
+    - usb: typec: ucsi: Prevent mode overrun
+
+  * Focal update: v5.4.66 upstream stable release (LP: #1896824)
+    - ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
+    - ARM: dts: logicpd-som-lv-baseboard: Fix missing video
+    - regulator: push allocation in regulator_ena_gpio_request() out of lock
+    - regulator: remove superfluous lock in regulator_resolve_coupling()
+    - ARM: dts: socfpga: fix register entry for timer3 on Arria10
+    - ARM: dts: ls1021a: fix QuadSPI-memory reg range
+    - ARM: dts: imx7ulp: Correct gpio ranges
+    - RDMA/rxe: Fix memleak in rxe_mem_init_user
+    - RDMA/rxe: Drop pointless checks in rxe_init_ports
+    - RDMA/rxe: Fix panic when calling kmem_cache_create()
+    - RDMA/bnxt_re: Do not report transparent vlan from QP1
+    - drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
+    - arm64: dts: imx8mq: Fix TMU interrupt property
+    - drm/sun4i: Fix dsi dcs long write function
+    - iio: adc: mcp3422: fix locking on error path
+    - iio: adc: mcp3422: fix locking scope
+    - scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
+    - RDMA/core: Fix reported speed and width
+    - scsi: megaraid_sas: Don't call disable_irq from process IRQ poll
+    - scsi: mpt3sas: Don't call disable_irq from IRQ poll handler
+    - soundwire: fix double free of dangling pointer
+    - drm/sun4i: backend: Support alpha property on lowest plane
+    - drm/sun4i: backend: Disable alpha on the lowest plane on the A20
+    - mmc: sdhci-acpi: Clear amd_sdhci_host on reset
+    - mmc: sdhci-msm: Add retries when all tuning phases are found valid
+    - spi: stm32: Rate-limit the 'Communication suspended' message
+    - nvme-fabrics: allow to queue requests for live queues
+    - spi: stm32: fix pm_runtime_get_sync() error checking
+    - block: Set same_page to false in __bio_try_merge_page if ret is false
+    - IB/isert: Fix unaligned immediate-data handling
+    - ARM: dts: bcm: HR2: Fixed QSPI compatible string
+    - ARM: dts: NSP: Fixed QSPI compatible string
+    - ARM: dts: BCM5301X: Fixed QSPI compatible string
+    - arm64: dts: ns2: Fixed QSPI compatible string
+    - ARC: HSDK: wireup perf irq
+    - dmaengine: acpi: Put the CSRT table after using it
+    - netfilter: conntrack: allow sctp hearbeat after connection re-use
+    - drivers/net/wan/lapbether: Added needed_tailroom
+    - NFC: st95hf: Fix memleak in st95hf_in_send_cmd
+    - firestream: Fix memleak in fs_open
+    - ALSA: hda: Fix 2 channel swapping for Tegra
+    - ALSA: hda/tegra: Program WAKEEN register for Tegra
+    - drivers/dma/dma-jz4780: Fix race condition between probe and irq handler
+    - net: hns3: Fix for geneve tx checksum bug
+    - xfs: fix off-by-one in inode alloc block reservation calculation
+    - drivers/net/wan/lapbether: Set network_header before transmitting
+    - cfg80211: Adjust 6 GHz frequency to channel conversion
+    - xfs: initialize the shortform attr header padding entry
+    - irqchip/eznps: Fix build error for !ARC700 builds
+    - nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu
+    - nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance
+    - nvme: have nvme_wait_freeze_timeout return if it timed out
+    - nvme-tcp: serialize controller teardown sequences
+    - nvme-tcp: fix timeout handler
+    - nvme-tcp: fix reset hang if controller died in the middle of a reset
+    - nvme-rdma: serialize controller teardown sequences
+    - nvme-rdma: fix timeout handler
+    - nvme-rdma: fix reset hang if controller died in the middle of a reset
+    - nvme-pci: cancel nvme device request before disabling
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices
+    - HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller
+    - drivers/net/wan/hdlc_cisco: Add hard_header_len
+    - HID: elan: Fix memleak in elan_input_configured
+    - ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
+    - cpufreq: intel_pstate: Refuse to turn off with HWP enabled
+    - cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled
+    - arm64/module: set trampoline section flags regardless of
+      CONFIG_DYNAMIC_FTRACE
+    - ALSA: hda: hdmi - add Rocketlake support
+    - ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
+    - drm/amdgpu: Fix bug in reporting voltage for CIK
+    - iommu/amd: Do not use IOMMUv2 functionality when SME is active
+    - gcov: Disable gcov build with GCC 10
+    - iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
+    - iio: cros_ec: Set Gyroscope default frequency to 25Hz
+    - iio:light:ltr501 Fix timestamp alignment issue.
+    - iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
+    - iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
+    - iio:adc:ti-adc084s021 Fix alignment and data leak issues.
+    - iio:adc:ina2xx Fix timestamp alignment issue.
+    - iio:adc:max1118 Fix alignment of timestamp and data leak issues
+    - iio:adc:ti-adc081c Fix alignment and data leak issues
+    - iio:magnetometer:ak8975 Fix alignment and data leak issues.
+    - iio:light:max44000 Fix timestamp alignment and prevent data leak.
+    - iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
+    - iio: accel: kxsd9: Fix alignment of local buffer.
+    - iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
+    - iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
+    - staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
+    - btrfs: require only sector size alignment for parent eb bytenr
+    - btrfs: fix lockdep splat in add_missing_dev
+    - btrfs: fix wrong address when faulting in pages in the search ioctl
+    - kobject: Restore old behaviour of kobject_del(NULL)
+    - regulator: push allocation in regulator_init_coupling() outside of lock
+    - regulator: push allocations in create_regulator() outside of lock
+    - regulator: push allocation in set_consumer_device_supply() out of lock
+    - regulator: plug of_node leak in regulator_register()'s error path
+    - regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
+    - scsi: target: iscsi: Fix data digest calculation
+    - scsi: target: iscsi: Fix hang in iscsit_access_np() when getting
+      tpg->np_login_sem
+    - drm/i915/gvt: do not check len & max_len for lri
+    - drm/tve200: Stabilize enable/disable
+    - drm/msm: Disable preemption on all 5xx targets
+    - mmc: sdio: Use mmc_pre_req() / mmc_post_req()
+    - mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
+    - rbd: require global CAP_SYS_ADMIN for mapping and unmapping
+    - RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
+    - RDMA/mlx4: Read pkey table length instead of hardcoded value
+    - fbcon: remove soft scrollback code
+    - fbcon: remove now unusued 'softback_lines' cursor() argument
+    - vgacon: remove software scrollback support
+    - [Config] updateconfigs for VGACON_SOFT_SCROLLBACK
+    - KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
+    - KVM: arm64: Do not try to map PUDs when they are folded into PMD
+    - KVM: fix memory leak in kvm_io_bus_unregister_dev()
+    - debugfs: Fix module state check condition
+    - ARM: dts: vfxxx: Add syscon compatible with OCOTP
+    - video: fbdev: fix OOB read in vga_8planes_imageblit()
+    - staging: greybus: audio: fix uninitialized value issue
+    - phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
+    - usb: core: fix slab-out-of-bounds Read in read_descriptors
+    - USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
+    - USB: serial: option: support dynamic Quectel USB compositions
+    - USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
+    - usb: Fix out of sync data toggle if a configured device is reconfigured
+    - usb: typec: ucsi: acpi: Check the _DEP dependencies
+    - drm/msm/gpu: make ringbuffer readonly
+    - drm/msm: Disable the RPTR shadow
+    - gcov: add support for GCC 10.1
+    - Linux 5.4.66
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Mon, 09 Nov 2020 14:56:24 +0100
+
+linux (5.4.0-54.60) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Introduce the new NVIDIA 455 series (LP: #1902093)
+    - [Packaging] NVIDIA -- Add the NVIDIA 455 driver
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 05 Nov 2020 18:03:49 +0100
+
+linux (5.4.0-53.59) focal; urgency=medium
+
+  * CVE-2020-8694
+    - powercap: make attributes only readable by root
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Wed, 21 Oct 2020 11:00:29 +0200
+
+linux (5.4.0-52.57) focal; urgency=medium
+
+  * focal/linux: 5.4.0-52.57 -proposed tracker (LP: #1899920)
+
+  * CVE-2020-12351 // CVE-2020-12352 // CVE-2020-24490
+    - Bluetooth: Disable High Speed by default
+    - Bluetooth: MGMT: Fix not checking if BT_HS is enabled
+    - [Config] Disable BlueZ highspeed support
+
+  * CVE-2020-12351
+    - Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
+
+  * CVE-2020-12352
+    - Bluetooth: A2MP: Fix not initializing all members
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 15 Oct 2020 12:28:28 +0200
+
+linux (5.4.0-51.56) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 05 Oct 2020 15:34:26 +0200
+
+linux (5.4.0-50.55) focal; urgency=medium
+
+  * CVE-2020-16119
+    - SAUCE: dccp: avoid double free of ccid on child socket
+
+  * CVE-2020-16120
+    - Revert "UBUNTU: SAUCE: overlayfs: ensure mounter privileges when reading
+      directories"
+    - ovl: pass correct flags for opening real directory
+    - ovl: switch to mounter creds in readdir
+    - ovl: verify permissions in ovl_path_open()
+    - ovl: call secutiry hook in ovl_real_ioctl()
+    - ovl: check permission to open real file
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 30 Sep 2020 10:04:48 -0300
+
+linux (5.4.0-49.53) focal; urgency=medium
+
+  * focal/linux: 5.4.0-49.53 -proposed tracker (LP: #1896007)
+
+  * Comet Lake PCH-H RAID not support on Ubuntu20.04 (LP: #1892288)
+    - ahci: Add Intel Comet Lake PCH-H PCI ID
+
+  * Novalink (mkvterm command failure) (LP: #1892546)
+    - tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup()
+
+  * Oops and hang when starting LVM snapshots on 5.4.0-47 (LP: #1894780)
+    - SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root kmem_cache
+      destroy"
+
+  * Intel x710 LOMs do not work on Focal (LP: #1893956)
+    - i40e: Fix LED blinking flow for X710T*L devices
+    - i40e: enable X710 support
+
+  * Add/Backport EPYC-v3 and EPYC-Rome CPU model (LP: #1887490)
+    - kvm: svm: Update svm_xsaves_supported
+
+  * Fix non-working NVMe after S3 (LP: #1895718)
+    - SAUCE: PCI: Enable ACS quirk on CML root port
+
+  * Focal update: v5.4.65 upstream stable release (LP: #1895881)
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: Fix sysctl max for fib_multipath_hash_policy
+    - netlabel: fix problems with mapping removal
+    - net: usb: dm9601: Add USB ID of Keenetic Plus DSL
+    - sctp: not disable bh in the whole sctp_get_port_local()
+    - taprio: Fix using wrong queues in gate mask
+    - tipc: fix shutdown() of connectionless socket
+    - net: disable netpoll on fresh napis
+    - Linux 5.4.65
+
+  * Focal update: v5.4.64 upstream stable release (LP: #1895880)
+    - HID: quirks: Always poll three more Lenovo PixArt mice
+    - drm/msm/dpu: Fix scale params in plane validation
+    - tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
+    - drm/msm: add shutdown support for display platform_driver
+    - hwmon: (applesmc) check status earlier.
+    - nvmet: Disable keep-alive timer when kato is cleared to 0h
+    - drm/msm: enable vblank during atomic commits
+    - habanalabs: validate FW file size
+    - habanalabs: check correct vmalloc return code
+    - drm/msm/a6xx: fix gmu start on newer firmware
+    - ceph: don't allow setlease on cephfs
+    - drm/omap: fix incorrect lock state
+    - cpuidle: Fixup IRQ state
+    - nbd: restore default timeout when setting it to zero
+    - s390: don't trace preemption in percpu macros
+    - drm/amd/display: Reject overlay plane configurations in multi-display
+      scenarios
+    - drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in
+      amdgpu_dm_update_backlight_caps
+    - drm/amd/display: Retry AUX write when fail occurs
+    - drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
+    - xen/xenbus: Fix granting of vmalloc'd memory
+    - fsldma: fix very broken 32-bit ppc ioread64 functionality
+    - dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
+    - batman-adv: Avoid uninitialized chaddr when handling DHCP
+    - batman-adv: Fix own OGM check in aggregated OGMs
+    - batman-adv: bla: use netif_rx_ni when not in interrupt context
+    - dmaengine: at_hdmac: check return value of of_find_device_by_node() in
+      at_dma_xlate()
+    - rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
+    - rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
+    - MIPS: mm: BMIPS5000 has inclusive physical caches
+    - MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
+    - mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
+    - netfilter: nf_tables: add NFTA_SET_USERDATA if not null
+    - netfilter: nf_tables: incorrect enum nft_list_attributes definition
+    - netfilter: nf_tables: fix destination register zeroing
+    - net: hns: Fix memleak in hns_nic_dev_probe
+    - net: systemport: Fix memleak in bcm_sysport_probe
+    - ravb: Fixed to be able to unload modules
+    - net: arc_emac: Fix memleak in arc_mdio_probe
+    - dmaengine: pl330: Fix burst length if burst size is smaller than bus width
+    - gtp: add GTPA_LINK info to msg sent to userspace
+    - net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
+    - bnxt_en: Don't query FW when netif_running() is false.
+    - bnxt_en: Check for zero dir entries in NVRAM.
+    - bnxt_en: Fix PCI AER error recovery flow
+    - bnxt_en: Fix possible crash in bnxt_fw_reset_task().
+    - bnxt_en: fix HWRM error when querying VF temperature
+    - xfs: fix boundary test in xfs_attr_shortform_verify
+    - bnxt: don't enable NAPI until rings are ready
+    - media: vicodec: add missing v4l2_ctrl_request_hdl_put()
+    - media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
+    - selftests/bpf: Fix massive output from test_maps
+    - net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
+    - netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
+    - nvmet-fc: Fix a missed _irqsave version of spin_lock in
+      'nvmet_fc_fod_op_done()'
+    - nvme: fix controller instance leak
+    - cxgb4: fix thermal zone device registration
+    - perf tools: Correct SNOOPX field offset
+    - net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
+    - fix regression in "epoll: Keep a reference on files added to the check list"
+    - net: gemini: Fix another missing clk_disable_unprepare() in probe
+    - MIPS: add missing MSACSR and upper MSA initialization
+    - xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
+    - perf jevents: Fix suspicious code in fixregex()
+    - tg3: Fix soft lockup when tg3_reset_task() fails.
+    - x86, fakenuma: Fix invalid starting node ID
+    - iommu/vt-d: Serialize IOMMU GCMD register modifications
+    - thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
+    - thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
+    - iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
+    - include/linux/log2.h: add missing () around n in roundup_pow_of_two()
+    - iommu/vt-d: Handle 36bit addressing for x86-32
+    - tracing/kprobes, x86/ptrace: Fix regs argument order for i386
+    - ext2: don't update mtime on COW faults
+    - xfs: don't update mtime on COW faults
+    - ARC: perf: don't bail setup if pct irq missing in device-tree
+    - btrfs: drop path before adding new uuid tree entry
+    - btrfs: allocate scrub workqueues outside of locks
+    - btrfs: set the correct lockdep class for new nodes
+    - btrfs: set the lockdep class for log tree extent buffers
+    - btrfs: tree-checker: fix the error message for transid error
+    - net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
+    - btrfs: fix potential deadlock in the search ioctl
+    - ALSA: ca0106: fix error code handling
+    - ALSA: usb-audio: Add implicit feedback quirk for UR22C
+    - ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
+    - ALSA: hda/hdmi: always check pin power status in i915 pin fixup
+    - ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
+    - ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
+    - ALSA; firewire-tascam: exclude Tascam FE-8 from detection
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
+    - ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
+    - arm64: dts: mt7622: add reset node for mmc device
+    - mmc: mediatek: add optional module reset property
+    - mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
+    - mmc: cqhci: Add cqhci_deactivate()
+    - mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based
+      controllers
+    - media: rc: do not access device via sysfs after rc_unregister_device()
+    - media: rc: uevent sysfs file races with rc_unregister_device()
+    - affs: fix basic permission bits to actually work
+    - block: allow for_each_bvec to support zero len bvec
+    - block: ensure bdi->io_pages is always initialized
+    - libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
+    - blk-iocost: ioc_pd_free() shouldn't assume irq disabled
+    - dmaengine: dw-edma: Fix scatter-gather address calculation
+    - drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
+    - dm writecache: handle DAX to partitions on persistent memory correctly
+    - dm mpath: fix racey management of PG initialization
+    - dm integrity: fix error reporting in bitmap mode after creation
+    - dm crypt: Initialize crypto wait structures
+    - dm cache metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Avoid returning cmd->bm wild pointer on error
+    - dm thin metadata: Fix use-after-free in dm_bm_set_read_only
+    - mm: slub: fix conversion of freelist_corrupted()
+    - mm: madvise: fix vma user-after-free
+    - vfio/pci: Fix SR-IOV VF handling with MMIO blocking
+    - perf record: Correct the help info of option "--no-bpf-event"
+    - sdhci: tegra: Add missing TMCLK for data timeout
+    - checkpatch: fix the usage of capture group ( ... )
+    - mm/hugetlb: fix a race between hugetlb sysctl handlers
+    - mm/khugepaged.c: fix khugepaged's request size in collapse_file
+    - cfg80211: regulatory: reject invalid hints
+    - net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
+    - Linux 5.4.64
+
+  * Focal update: v5.4.63 upstream stable release (LP: #1895879)
+    - HID: core: Correctly handle ReportSize being zero
+    - HID: core: Sanitize event code and type when mapping input
+    - perf record/stat: Explicitly call out event modifiers in the documentation
+    - drm/sched: Fix passing zero to 'PTR_ERR' warning v2
+    - drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
+    - KVM: arm64: Add kvm_extable for vaxorcism code
+    - KVM: arm64: Survive synchronous exceptions caused by AT instructions
+    - KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception
+    - dt-bindings: mmc: tegra: Add tmclk for Tegra210 and later
+    - arm64: tegra: Add missing timeout clock to Tegra194 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra186 SDMMC nodes
+    - arm64: tegra: Add missing timeout clock to Tegra210 SDMMC
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra210
+    - sdhci: tegra: Remove SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK for Tegra186
+    - scsi: target: tcmu: Fix size in calls to tcmu_flush_dcache_range
+    - scsi: target: tcmu: Optimize use of flush_dcache_page
+    - Linux 5.4.63
+
+  * Focal update: v5.4.62 upstream stable release (LP: #1895174)
+    - binfmt_flat: revert "binfmt_flat: don't offset the data start"
+    - gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
+    - net: Fix potential wrong skb->protocol in skb_vlan_untag()
+    - net: nexthop: don't allow empty NHA_GROUP
+    - net: qrtr: fix usage of idr in port assignment to socket
+    - net: sctp: Fix negotiation of the number of data streams.
+    - net/smc: Prevent kernel-infoleak in __smc_diag_dump()
+    - tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
+    - net: ena: Make missed_tx stat incremental
+    - net/sched: act_ct: Fix skb double-free in tcf_ct_handle_fragments() error
+      flow
+    - ipvlan: fix device features
+    - ALSA: pci: delete repeated words in comments
+    - ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt
+    - ASoC: img-parallel-out: Fix a reference count leak
+    - ASoC: tegra: Fix reference count leaks.
+    - mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
+    - arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
+    - powerpc/xive: Ignore kmemleak false positives
+    - media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA
+      value in debiirq()
+    - blktrace: ensure our debugfs dir exists
+    - scsi: target: tcmu: Fix crash on ARM during cmd completion
+    - mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs
+    - iommu/iova: Don't BUG on invalid PFNs
+    - drm/amdkfd: Fix reference count leaks.
+    - drm/radeon: fix multiple reference count leak
+    - drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
+    - drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
+    - drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
+    - drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
+    - scsi: lpfc: Fix shost refcount mismatch when deleting vport
+    - xfs: Don't allow logging of XFS_ISTALE inodes
+    - scsi: target: Fix xcopy sess release leak
+    - selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
+    - f2fs: fix error path in do_recover_data()
+    - omapfb: fix multiple reference count leaks due to pm_runtime_get_sync
+    - PCI: Fix pci_create_slot() reference count leak
+    - ARM: dts: ls1021a: output PPS signal on FIPER2
+    - rtlwifi: rtl8192cu: Prevent leaking urb
+    - mips/vdso: Fix resource leaks in genvdso.c
+    - cec-api: prevent leaking memory through hole in structure
+    - HID: quirks: add NOGET quirk for Logitech GROUP
+    - f2fs: fix use-after-free issue
+    - drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
+    - drm/nouveau: fix reference count leak in nv50_disp_atomic_commit
+    - drm/nouveau: Fix reference count leak in nouveau_connector_detect
+    - locking/lockdep: Fix overflow in presentation of average lock-time
+    - btrfs: file: reserve qgroup space after the hole punch range is locked
+    - btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode
+    - scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
+    - ceph: fix potential mdsc use-after-free crash
+    - ceph: do not access the kiocb after aio requests
+    - scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
+    - EDAC/ie31200: Fallback if host bridge device is already initialized
+    - hugetlbfs: prevent filesystem stacking of hugetlbfs
+    - media: davinci: vpif_capture: fix potential double free
+    - KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
+    - powerpc/spufs: add CONFIG_COREDUMP dependency
+    - USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
+    - brcmfmac: Set timeout value when configuring power save
+    - efi: provide empty efi_enter_virtual_mode implementation
+    - arm64: Fix __cpu_logical_map undefined issue
+    - Revert "ath10k: fix DMA related firmware crashes on multiple devices"
+    - sched/uclamp: Protect uclamp fast path code with static key
+    - sched/uclamp: Fix a deadlock when enabling uclamp static key
+    - usb: cdns3: gadget: always zeroed TRB buffer when enable endpoint
+    - PM / devfreq: rk3399_dmc: Add missing of_node_put()
+    - PM / devfreq: rk3399_dmc: Disable devfreq-event device when fails
+    - PM / devfreq: rk3399_dmc: Fix kernel oops when rockchip,pmu is absent
+    - drm/xen: fix passing zero to 'PTR_ERR' warning
+    - drm/xen-front: Fix misused IS_ERR_OR_NULL checks
+    - s390/numa: set node distance to LOCAL_DISTANCE
+    - btrfs: factor out inode items copy loop from btrfs_log_inode()
+    - btrfs: only commit the delayed inode when doing a full fsync
+    - btrfs: only commit delayed items at fsync if we are logging a directory
+    - mm/shuffle: don't move pages between zones and don't read garbage memmaps
+    - mm: fix kthread_use_mm() vs TLB invalidate
+    - mm/cma.c: switch to bitmap_zalloc() for cma bitmap allocation
+    - cma: don't quit at first error when activating reserved areas
+    - gpu/drm: ingenic: Use the plane's src_[x,y] to configure DMA length
+    - drm/ingenic: Fix incorrect assumption about plane->index
+    - drm/amd/display: Trigger modesets on MST DSC connectors
+    - drm/amd/display: Add additional config guards for DCN
+    - drm/amd/display: Fix dmesg warning from setting abm level
+    - mm/vunmap: add cond_resched() in vunmap_pmd_range
+    - EDAC: sb_edac: get rid of unused vars
+    - EDAC: skx_common: get rid of unused type var
+    - EDAC/{i7core,sb,pnd2,skx}: Fix error event severity
+    - PCI: qcom: Add missing ipq806x clocks in PCIe driver
+    - PCI: qcom: Change duplicate PCI reset to phy reset
+    - PCI: qcom: Add missing reset for ipq806x
+    - cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
+    - ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)
+    - media: gpio-ir-tx: improve precision of transmitted signal due to scheduling
+    - block: respect queue limit of max discard segment
+    - block: virtio_blk: fix handling single range discard request
+    - drm/msm/adreno: fix updating ring fence
+    - block: Fix page_is_mergeable() for compound pages
+    - bfq: fix blkio cgroup leakage v4
+    - hwmon: (nct7904) Correct divide by 0
+    - blk-mq: insert request not through ->queue_rq into sw/scheduler queue
+    - blkcg: fix memleak for iolatency
+    - nvme-fc: Fix wrong return value in __nvme_fc_init_request()
+    - nvme: multipath: round-robin: fix single non-optimized path case
+    - null_blk: fix passing of REQ_FUA flag in null_handle_rq
+    - i2c: core: Don't fail PRP0001 enumeration when no ID table exist
+    - i2c: rcar: in slave mode, clear NACK earlier
+    - usb: gadget: f_tcm: Fix some resource leaks in some error paths
+    - spi: stm32: clear only asserted irq flags on interrupt
+    - jbd2: make sure jh have b_transaction set in refile/unfile_buffer
+    - ext4: don't BUG on inconsistent journal feature
+    - ext4: handle read only external journal device
+    - jbd2: abort journal if free a async write error metadata buffer
+    - ext4: handle option set by mount flags correctly
+    - ext4: handle error of ext4_setup_system_zone() on remount
+    - ext4: correctly restore system zone info when remount fails
+    - fs: prevent BUG_ON in submit_bh_wbc()
+    - spi: stm32h7: fix race condition at end of transfer
+    - spi: stm32: fix fifo threshold level in case of short transfer
+    - spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate
+    - spi: stm32: always perform registers configuration prior to transfer
+    - drm/amd/powerplay: correct Vega20 cached smu feature state
+    - drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading
+    - drm/amd/display: Switch to immediate mode for updating infopackets
+    - netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency
+    - can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect
+      corruptions
+    - ALSA: hda/realtek: Add model alc298-samsung-headphone
+    - s390/cio: add cond_resched() in the slow_eval_known_fn() loop
+    - ASoC: wm8994: Avoid attempts to read unreadable registers
+    - selftests: disable rp_filter for icmp_redirect.sh
+    - scsi: fcoe: Fix I/O path allocation
+    - scsi: ufs: Fix possible infinite loop in ufshcd_hold
+    - scsi: ufs: Improve interrupt handling for shared interrupts
+    - scsi: ufs: Clean up completed request without interrupt notification
+    - scsi: qla2xxx: Fix login timeout
+    - scsi: qla2xxx: Check if FW supports MQ before enabling
+    - scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
+    - Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"
+    - macvlan: validate setting of multiple remote source MAC addresses
+    - net: gianfar: Add of_node_put() before goto statement
+    - powerpc/perf: Fix soft lockups due to missed interrupt accounting
+    - arm64: Move handling of erratum 1418040 into C code
+    - arm64: Allow booting of late CPUs affected by erratum 1418040
+    - block: fix get_max_io_size()
+    - block: loop: set discard granularity and alignment for block device backed
+      loop
+    - HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
+    - blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART
+    - btrfs: reset compression level for lzo on remount
+    - btrfs: check the right error variable in btrfs_del_dir_entries_in_log
+    - btrfs: fix space cache memory leak after transaction abort
+    - btrfs: detect nocow for swap after snapshot delete
+    - fbcon: prevent user font height or width change from causing potential out-
+      of-bounds access
+    - USB: lvtest: return proper error code in probe
+    - vt: defer kfree() of vc_screenbuf in vc_do_resize()
+    - vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
+    - serial: samsung: Removes the IRQ not found warning
+    - serial: pl011: Fix oops on -EPROBE_DEFER
+    - serial: pl011: Don't leak amba_ports entry on driver register error
+    - serial: stm32: avoid kernel warning on absence of optional IRQ
+    - serial: 8250_exar: Fix number of ports for Commtech PCIe cards
+    - serial: 8250: change lock order in serial8250_do_startup()
+    - writeback: Protect inode->i_io_list with inode->i_lock
+    - writeback: Avoid skipping inode writeback
+    - writeback: Fix sync livelock due to b_dirty_time processing
+    - XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN
+      data pointer which contains XEN specific information.
+    - usb: host: xhci: fix ep context print mismatch in debugfs
+    - xhci: Do warm-reset when both CAS and XDEV_RESUME are set
+    - xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed
+    - ARM64: vdso32: Install vdso32 from vdso_install
+    - arm64: vdso32: make vdso32 install conditional
+    - PM: sleep: core: Fix the handling of pending runtime resume requests
+    - powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
+    - device property: Fix the secondary firmware node handling in
+      set_primary_fwnode()
+    - crypto: af_alg - Work around empty control messages without MSG_MORE
+    - genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
+    - irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by
+      mistake
+    - x86/hotplug: Silence APIC only after all interrupts are migrated
+    - drm/amdgpu: Fix buffer overflow in INFO ioctl
+    - drm/amdgpu/gfx10: refine mgcg setting
+    - drm/amd/powerplay: Fix hardmins not being sent to SMU for RV
+    - drm/amd/pm: correct Vega10 swctf limit setting
+    - drm/amd/pm: correct Vega12 swctf limit setting
+    - drm/amd/pm: correct Vega20 swctf limit setting
+    - drm/amd/pm: correct the thermal alert temperature limit settings
+    - USB: yurex: Fix bad gfp argument
+    - usb: uas: Add quirk for PNY Pro Elite
+    - USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
+    - USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
+    - usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
+    - USB: gadget: u_f: add overflow checks to VLA macros
+    - USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
+    - USB: gadget: u_f: Unbreak offset calculation in VLAs
+    - USB: cdc-acm: rework notification_buffer resizing
+    - usb: storage: Add unusual_uas entry for Sony PSZ drives
+    - drm/i915: Fix cmd parser desc matching with masks
+    - usb: dwc3: gadget: Don't setup more than requested
+    - usb: dwc3: gadget: Fix handling ZLP
+    - usb: dwc3: gadget: Handle ZLP for sg requests
+    - fbmem: pull fbcon_update_vcs() out of fb_set_var()
+    - kheaders: remove unneeded 'cat' command piped to 'head' / 'tail'
+    - kheaders: optimize md5sum calculation for in-tree builds
+    - kheaders: optimize header copy for in-tree builds
+    - kheaders: remove the last bashism to allow sh to run it
+    - kheaders: explain why include/config/autoconf.h is excluded from md5sum
+    - kbuild: add variables for compression tools
+    - kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
+    - HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
+    - ALSA: usb-audio: Update documentation comment for MS2109 quirk
+    - io_uring: Fix NULL pointer dereference in io_sq_wq_submit_work()
+    - Linux 5.4.62
+
+  * DELL LATITUDE 5491 touchscreen doesn't work (LP: #1889446) // Focal update:
+    v5.4.62 upstream stable release (LP: #1895174)
+    - USB: quirks: Add no-lpm quirk for another Raydium touchscreen
+
+  * [NUC8CCHK][HDA-Intel - HDA Intel PCH, playback] No sound at all
+    (LP: #1875199) // Focal update: v5.4.62 upstream stable release
+    (LP: #1895174)
+    - ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged
+
+  * Focal update: v5.4.61 upstream stable release (LP: #1893115)
+    - Documentation/llvm: add documentation on building w/ Clang/LLVM
+    - Documentation/llvm: fix the name of llvm-size
+    - net: wan: wanxl: use allow to pass CROSS_COMPILE_M68k for rebuilding
+      firmware
+    - net: wan: wanxl: use $(M68KCC) instead of $(M68KAS) for rebuilding firmware
+    - x86/boot: kbuild: allow readelf executable to be specified
+    - kbuild: remove PYTHON2 variable
+    - kbuild: remove AS variable
+    - kbuild: replace AS=clang with LLVM_IAS=1
+    - kbuild: support LLVM=1 to switch the default tools to Clang/LLVM
+    - drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
+    - gfs2: Improve mmap write vs. punch_hole consistency
+    - gfs2: Never call gfs2_block_zero_range with an open transaction
+    - perf probe: Fix memory leakage when the probe point is not found
+    - khugepaged: khugepaged_test_exit() check mmget_still_valid()
+    - khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
+    - bcache: avoid nr_stripes overflow in bcache_device_init()
+    - btrfs: export helpers for subvolume name/id resolution
+    - btrfs: don't show full path of bind mounts in subvol=
+    - btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
+    - btrfs: add wrapper for transaction abort predicate
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book
+    - ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion
+    - can: j1939: transport: j1939_session_tx_dat(): fix use-after-free read in
+      j1939_tp_txtimer()
+    - can: j1939: socket: j1939_sk_bind(): make sure ml_priv is allocated
+    - [Config] update config for SPI_DYNAMIC
+    - spi: Prevent adding devices below an unregistering controller
+    - romfs: fix uninitialized memory leak in romfs_dev_read()
+    - kernel/relay.c: fix memleak on destroy relay channel
+    - uprobes: __replace_page() avoid BUG in munlock_vma_page()
+    - mm: include CMA pages in lowmem_reserve at boot
+    - mm, page_alloc: fix core hung in free_pcppages_bulk()
+    - RDMA/hfi1: Correct an interlock issue for TID RDMA WRITE request
+    - ext4: fix checking of directory entry validity for inline directories
+    - jbd2: add the missing unlock_buffer() in the error path of
+      jbd2_write_superblock()
+    - scsi: zfcp: Fix use-after-free in request timeout handlers
+    - drm/amdgpu/display: use GFP_ATOMIC in dcn20_validate_bandwidth_internal
+    - drm/amd/display: Fix EDID parsing after resume from suspend
+    - drm/amd/display: fix pow() crashing when given base 0
+    - kthread: Do not preempt current task if it is going to call schedule()
+    - opp: Enable resources again if they were disabled earlier
+    - scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
+    - scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM
+    - media: budget-core: Improve exception handling in budget_register()
+    - rtc: goldfish: Enable interrupt in set_alarm() when necessary
+    - media: vpss: clean up resources in init
+    - Input: psmouse - add a newline when printing 'proto' by sysfs
+    - MIPS: Fix unable to reserve memory for Crash kernel
+    - m68knommu: fix overwriting of bits in ColdFire V3 cache control
+    - svcrdma: Fix another Receive buffer leak
+    - xfs: fix inode quota reservation checks
+    - drm/ttm: fix offset in VMAs with a pg_offs in ttm_bo_vm_access
+    - jffs2: fix UAF problem
+    - ceph: fix use-after-free for fsc->mdsc
+    - swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses
+    - cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0
+    - scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases
+    - virtio_ring: Avoid loop when vq is broken in virtqueue_poll
+    - media: camss: fix memory leaks on error handling paths in probe
+    - tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null
+      pointer dereference
+    - xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
+    - alpha: fix annotation of io{read,write}{16,32}be()
+    - fs/signalfd.c: fix inconsistent return codes for signalfd4
+    - ext4: fix potential negative array index in do_split()
+    - ext4: don't allow overlapping system zones
+    - netfilter: nf_tables: nft_exthdr: the presence return value should be
+      little-endian
+    - spi: stm32: fixes suspend/resume management
+    - ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
+    - ASoC: q6routing: add dummy register read/write function
+    - bpf: sock_ops sk access may stomp registers when dst_reg = src_reg
+    - can: j1939: fix kernel-infoleak in j1939_sk_sock2sockaddr_can()
+    - can: j1939: transport: j1939_simple_recv(): ignore local J1939 messages send
+      not by J1939 stack
+    - can: j1939: transport: add j1939_session_skb_find_by_offset() function
+    - i40e: Set RX_ONLY mode for unicast promiscuous on VLAN
+    - i40e: Fix crash during removing i40e driver
+    - net: fec: correct the error path for regulator disable in probe
+    - bonding: show saner speed for broadcast mode
+    - can: j1939: fix support for multipacket broadcast message
+    - can: j1939: cancel rxtimer on multipacket broadcast session complete
+    - can: j1939: abort multipacket broadcast session when timeout occurs
+    - can: j1939: add rxtimer for multipacket broadcast session
+    - bonding: fix a potential double-unregister
+    - s390/runtime_instrumentation: fix storage key handling
+    - s390/ptrace: fix storage key handling
+    - ASoC: msm8916-wcd-analog: fix register Interrupt offset
+    - ASoC: intel: Fix memleak in sst_media_open
+    - vfio/type1: Add proper error unwind for vfio_iommu_replay()
+    - kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
+    - kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode
+    - Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe"
+    - kconfig: qconf: do not limit the pop-up menu to the first row
+    - kconfig: qconf: fix signal connection to invalid slots
+    - efi: avoid error message when booting under Xen
+    - Fix build error when CONFIG_ACPI is not set/enabled:
+    - RDMA/bnxt_re: Do not add user qps to flushlist
+    - afs: Fix NULL deref in afs_dynroot_depopulate()
+    - bonding: fix active-backup failover for current ARP slave
+    - net: ena: Prevent reset after device destruction
+    - net: gemini: Fix missing free_netdev() in error path of
+      gemini_ethernet_port_probe()
+    - hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit()
+    - net: dsa: b53: check for timeout
+    - powerpc/pseries: Do not initiate shutdown when system is running on UPS
+    - efi: add missed destroy_workqueue when efisubsys_init fails
+    - epoll: Keep a reference on files added to the check list
+    - do_epoll_ctl(): clean the failure exits up a bit
+    - mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
+    - xen: don't reschedule in preemption off sections
+    - KVM: Pass MMU notifier range flags to kvm_unmap_hva_range()
+    - KVM: arm64: Only reschedule if MMU_NOTIFIER_RANGE_BLOCKABLE is not set
+    - Linux 5.4.61
+
+  * [UBUNTU 20.04] zPCI device hot-plug during boot may result in unusable
+    device (LP: #1893778)
+    - s390/pci: ignore stale configuration request event
+
+  * [SRU] [Focal/OEM-5.6/Groovy]Fix AMD usb host controller lost after stress S3
+    (LP: #1893914)
+    - SAUCE: xhci: workaround for S3 issue on AMD SNPS 3.0 xHC
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 18 Sep 2020 10:17:00 +0200
+
+linux (5.4.0-48.52) focal; urgency=medium
+
+  * focal/linux: 5.4.0-48.52 -proposed tracker (LP: #1894654)
+
+  * mm/slub kernel oops on focal kernel 5.4.0-45 (LP: #1895109)
+    - SAUCE: Revert "mm/slub: fix a memory leak in sysfs_slab_add()"
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+    - update dkms package versions
+
+  * Introduce the new NVIDIA 450-server and the 450 UDA series (LP: #1887674)
+    - [packaging] add signed modules for nvidia 450 and 450-server
+
+  * [UBUNTU 20.04] zPCI attach/detach issues with PF/VF linking support
+    (LP: #1892849)
+    - s390/pci: fix zpci_bus_link_virtfn()
+    - s390/pci: re-introduce zpci_remove_device()
+    - s390/pci: fix PF/VF linking on hot plug
+
+  * [UBUNTU 20.04] kernel: s390/cpum_cf,perf: changeDFLT_CCERROR counter name
+    (LP: #1891454)
+    - s390/cpum_cf, perf: change DFLT_CCERROR counter name
+
+  * [UBUNTU 20.04] zPCI: Enabling of a reserved PCI function regression
+    introduced by multi-function support (LP: #1891437)
+    - s390/pci: fix enabling a reserved PCI function
+
+  * CVE-2020-12888
+    - vfio/type1: Support faulting PFNMAP vmas
+    - vfio-pci: Fault mmaps to enable vma tracking
+    - vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
+
+  *  [Hyper-V] VSS and File Copy daemons intermittently fails to start
+    (LP: #1891224)
+    - [Packaging] Bind hv_vss_daemon startup to hv_vss device
+    - [Packaging] bind hv_fcopy_daemon startup to hv_fcopy device
+
+  * alsa/hdmi: support nvidia mst hdmi/dp audio (LP: #1867704)
+    - ALSA: hda - Rename snd_hda_pin_sense to snd_hda_jack_pin_sense
+    - ALSA: hda - Add DP-MST jack support
+    - ALSA: hda - Add DP-MST support for non-acomp codecs
+    - ALSA: hda - Add DP-MST support for NVIDIA codecs
+    - ALSA: hda: hdmi - fix regression in connect list handling
+    - ALSA: hda: hdmi - fix kernel oops caused by invalid PCM idx
+    - ALSA: hda: hdmi - preserve non-MST PCM routing for Intel platforms
+    - ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms
+    - ALSA: hda - Fix DP-MST support for NVIDIA codecs
+
+  * Focal update: v5.4.60 upstream stable release (LP: #1892899)
+    - smb3: warn on confusing error scenario with sec=krb5
+    - genirq/affinity: Make affinity setting if activated opt-in
+    - genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq()
+    - PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
+    - PCI: Add device even if driver attach failed
+    - PCI: qcom: Define some PARF params needed for ipq8064 SoC
+    - PCI: qcom: Add support for tx term offset for rev 2.1.0
+    - btrfs: allow use of global block reserve for balance item deletion
+    - btrfs: free anon block device right after subvolume deletion
+    - btrfs: don't allocate anonymous block device for user invisible roots
+    - btrfs: ref-verify: fix memory leak in add_block_entry
+    - btrfs: stop incremening log_batch for the log root tree when syncing log
+    - btrfs: remove no longer needed use of log_writers for the log root tree
+    - btrfs: don't traverse into the seed devices in show_devname
+    - btrfs: open device without device_list_mutex
+    - btrfs: move the chunk_mutex in btrfs_read_chunk_tree
+    - btrfs: relocation: review the call sites which can be interrupted by signal
+    - btrfs: add missing check for nocow and compression inode flags
+    - btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on
+      relocation tree
+    - btrfs: sysfs: use NOFS for device creation
+    - btrfs: don't WARN if we abort a transaction with EROFS
+    - btrfs: fix race between page release and a fast fsync
+    - btrfs: fix messages after changing compression level by remount
+    - btrfs: only search for left_info if there is no right_info in
+      try_merge_free_space
+    - btrfs: inode: fix NULL pointer dereference if inode doesn't need compression
+    - btrfs: fix memory leaks after failure to lookup checksums during inode
+      logging
+    - btrfs: make sure SB_I_VERSION doesn't get unset by remount
+    - btrfs: fix return value mixup in btrfs_get_extent
+    - arm64: perf: Correct the event index in sysfs
+    - dt-bindings: iio: io-channel-mux: Fix compatible string in example code
+    - iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()
+    - xtensa: add missing exclusive access state management
+    - xtensa: fix xtensa_pmu_setup prototype
+    - cifs: Fix leak when handling lease break for cached root fid
+    - powerpc/ptdump: Fix build failure in hashpagetable.c
+    - powerpc: Allow 4224 bytes of stack expansion for the signal frame
+    - powerpc: Fix circular dependency between percpu.h and mmu.h
+    - pinctrl: ingenic: Enhance support for IRQ_TYPE_EDGE_BOTH
+    - media: vsp1: dl: Fix NULL pointer dereference on unbind
+    - net: ethernet: stmmac: Disable hardware multicast filter
+    - net: stmmac: dwmac1000: provide multicast filter fallback
+    - net/compat: Add missing sock updates for SCM_RIGHTS
+    - md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
+    - bcache: allocate meta data pages as compound pages
+    - bcache: fix overflow in offset_to_stripe()
+    - mac80211: fix misplaced while instead of if
+    - driver core: Avoid binding drivers to dead devices
+    - MIPS: CPU#0 is not hotpluggable
+    - MIPS: qi_lb60: Fix routing to audio amplifier
+    - ext2: fix missing percpu_counter_inc
+    - khugepaged: collapse_pte_mapped_thp() flush the right range
+    - khugepaged: collapse_pte_mapped_thp() protect the pmd lock
+    - ocfs2: change slot number type s16 to u16
+    - mm/page_counter.c: fix protection usage propagation
+    - mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
+    - ftrace: Setup correct FTRACE_FL_REGS flags for module
+    - kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
+    - tracing/hwlat: Honor the tracing_cpumask
+    - tracing: Use trace_sched_process_free() instead of exit() for pid tracing
+    - tracing: Move pipe reference to trace array instead of current_tracer
+    - watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in
+      watchdog_info.options
+    - watchdog: f71808e_wdt: remove use of wrong watchdog_info option
+    - watchdog: f71808e_wdt: clear watchdog timeout occurred flag
+    - ceph: set sec_context xattr on symlink creation
+    - ceph: handle zero-length feature mask in session messages
+    - pseries: Fix 64 bit logical memory block panic
+    - module: Correctly truncate sysfs sections output
+    - perf intel-pt: Fix FUP packet state
+    - perf intel-pt: Fix duplicate branch after CBR
+    - remoteproc: qcom: q6v5: Update running state before requesting stop
+    - remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
+    - remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load
+    - drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()
+    - orangefs: get rid of knob code...
+    - pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
+    - crypto: algif_aead - Only wake up when ctx->more is zero
+    - mfd: arizona: Ensure 32k clock is put on driver unbind and error
+    - octeontx2-af: change (struct qmem)->entry_sz from u8 to u16
+    - mtd: rawnand: fsl_upm: Remove unused mtd var
+    - platform/chrome: cros_ec_ishtp: Fix a double-unlock issue
+    - RDMA/ipoib: Return void from ipoib_ib_dev_stop()
+    - RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()
+    - media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
+    - media: rockchip: rga: Only set output CSC mode for RGB input
+    - IB/uverbs: Set IOVA on IB MR in uverbs layer
+    - selftests/bpf: Test_progs indicate to shell on non-actions
+    - selftests/bpf: test_progs use another shell exit on non-actions
+    - USB: serial: ftdi_sio: make process-packet buffer unsigned
+    - USB: serial: ftdi_sio: clean up receive processing
+    - crypto: af_alg - Fix regression on empty requests
+    - devres: keep both device name and resource name in pretty name
+    - RDMA/counter: Only bind user QPs in auto mode
+    - RDMA/counter: Allow manually bind QPs with different pids to same counter
+    - mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
+    - crypto: caam - Remove broken arc4 support
+    - gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers
+    - gpu: ipu-v3: image-convert: Wait for all EOFs before completing a tile
+    - dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
+    - clk: actions: Fix h_clk for Actions S500 SoC
+    - selftests/powerpc: ptrace-pkey: Rename variables to make it easier to follow
+      code
+    - selftests/powerpc: ptrace-pkey: Update the test to mark an invalid pkey
+      correctly
+    - selftests/powerpc: ptrace-pkey: Don't update expected UAMOR value
+    - iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
+    - clk: qcom: gcc: fix sm8150 GPU and NPU clocks
+    - clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
+    - iommu/vt-d: Enforce PASID devTLB field mask
+    - i2c: rcar: slave: only send STOP event when we have been addressed
+    - clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
+    - clk: clk-atlas6: fix return value check in atlas6_clk_init()
+    - pwm: bcm-iproc: handle clk_get_rate() return
+    - tools build feature: Use CC and CXX from parent
+    - i2c: rcar: avoid race when unregistering slave
+    - nfs: ensure correct writeback errors are returned on close()
+    - ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
+    - clk: bcm2835: Do not use prediv with bcm2711's PLLs
+    - libnvdimm/security: fix a typo
+    - libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
+    - openrisc: Fix oops caused when dumping stack
+    - scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying
+      targetport
+    - nfs: nfs_file_write() should check for writeback errors
+    - watchdog: initialize device before misc_register
+    - md-cluster: Fix potential error pointer dereference in resize_bitmaps()
+    - x86/tsr: Fix tsc frequency enumeration bug on Lightning Mountain SoC
+    - Input: sentelic - fix error return when fsp_reg_write fails
+    - recordmcount: Fix build failure on non arm64
+    - drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
+    - drm/vmwgfx: Fix two list_for_each loop exit tests
+    - net: qcom/emac: add missed clk_disable_unprepare in error path of
+      emac_clks_phase1_init
+    - nfs: Fix getxattr kernel panic and memory overflow
+    - fs/minix: set s_maxbytes correctly
+    - fs/minix: fix block limit check for V1 filesystems
+    - fs/minix: remove expected error message in block_to_path()
+    - fs/ufs: avoid potential u32 multiplication overflow
+    - test_kmod: avoid potential double free in trigger_config_run_type()
+    - i2c: iproc: fix race between client unreg and isr
+    - mfd: dln2: Run event handler loop under spinlock
+    - crypto: algif_aead - fix uninitialized ctx->init
+    - ALSA: echoaudio: Fix potential Oops in snd_echo_resume()
+    - perf bench mem: Always memset source before memcpy
+    - tools build feature: Quote CC and CXX for their arguments
+    - perf/x86/rapl: Fix missing psys sysfs attributes
+    - sh: landisk: Add missing initialization of sh_io_port_base
+    - khugepaged: retract_page_tables() remember to test exit
+    - arm64: dts: marvell: espressobin: add ethernet alias
+    - drm/panfrost: Use kvfree() to free bo->sgts
+    - drm: Added orientation quirk for ASUS tablet model T103HAF
+    - drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
+    - drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume
+    - drm/amd/display: dchubbub p-state warning during surface planes switch
+    - Linux 5.4.60
+    - kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
+
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417)
+    - tracepoint: Mark __tracepoint_string's __used
+    - HID: input: Fix devices that return multiple bytes in battery report
+    - nvme: add a Identify Namespace Identification Descriptor list quirk
+    - fs/io_uring.c: Fix uninitialized variable is referenced in io_submit_sqe
+    - clk: qcom: clk-rpmh: Wait for completion when enabling clocks
+    - x86/mce/inject: Fix a wrong assignment of i_mce.status
+    - sched/fair: Fix NOHZ next idle balance
+    - sched: correct SD_flags returned by tl->sd_flags()
+    - arm64: dts: rockchip: fix rk3368-lion gmac reset gpio
+    - arm64: dts: rockchip: fix rk3399-puma vcc5v0-host gpio
+    - arm64: dts: rockchip: fix rk3399-puma gmac reset gpio
+    - EDAC: Fix reference count leaks
+    - crc-t10dif: Fix potential crypto notify dead-lock
+    - arm64: dts: qcom: msm8916: Replace invalid bias-pull-none property
+    - crypto: ccree - fix resource leak on error path
+    - ARM: exynos: MCPM: Restore big.LITTLE cpuidle support
+    - firmware: arm_scmi: Fix SCMI genpd domain probing
+    - arm64: dts: exynos: Fix silent hang after boot on Espresso
+    - sched/uclamp: Fix initialization of struct uclamp_rq
+    - clk: scmi: Fix min and max rate when registering clocks with discrete rates
+    - m68k: mac: Don't send IOP message until channel is idle
+    - m68k: mac: Fix IOP status/control register writes
+    - platform/x86: intel-hid: Fix return value check in check_acpi_dev()
+    - platform/x86: intel-vbtn: Fix return value check in check_acpi_dev()
+    - ARM: dts: gose: Fix ports node name for adv7180
+    - ARM: dts: gose: Fix ports node name for adv7612
+    - ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Add regulator supply to all CPU
+      cores
+    - ARM: dts: sunxi: bananapi-m2-plus-v1.2: Fix CPU supply voltages
+    - spi: lantiq: fix: Rx overflow error in full duplex mode
+    - tpm: Require that all digests are present in TCG_PCR_EVENT2 structures
+    - recordmcount: only record relocation of type R_AARCH64_CALL26 on arm64.
+    - regulator: fix memory leak on error path of regulator_register()
+    - io_uring: fix sq array offset calculation
+    - spi: rockchip: Fix error in SPI slave pio read
+    - ARM: socfpga: PM: add missing put_device() call in
+      socfpga_setup_ocram_self_refresh()
+    - iocost: Fix check condition of iocg abs_vdebt
+    - irqchip/ti-sci-inta: Fix return value about devm_ioremap_resource()
+    - seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
+    - md: raid0/linear: fix dereference before null check on pointer mddev
+    - nvme-tcp: fix controller reset hang during traffic
+    - nvme-rdma: fix controller reset hang during traffic
+    - nvme-multipath: fix logic for non-optimized paths
+    - nvme-multipath: do not fall back to __nvme_find_path() for non-optimized
+      paths
+    - drm/tilcdc: fix leak & null ref in panel_connector_get_modes
+    - soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag
+    - Bluetooth: add a mutex lock to avoid UAF in do_enale_set
+    - loop: be paranoid on exit and prevent new additions / removals
+    - fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls
+    - drm/amdgpu: avoid dereferencing a NULL pointer
+    - drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync
+    - crypto: aesni - Fix build with LLVM_IAS=1
+    - video: fbdev: savage: fix memory leak on error handling path in probe
+    - video: fbdev: neofb: fix memory leak in neo_scan_monitor()
+    - bus: ti-sysc: Add missing quirk flags for usb_host_hs
+    - md-cluster: fix wild pointer of unlock_all_bitmaps()
+    - drm/nouveau/kms/nv50-: Fix disabling dithering
+    - arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding
+    - drm/etnaviv: fix ref count leak via pm_runtime_get_sync
+    - drm/nouveau: fix reference count leak in nouveau_debugfs_strap_peek
+    - drm/nouveau: fix multiple instances of reference count leaks
+    - mmc: sdhci-cadence: do not use hardware tuning for SD mode
+    - btrfs: fix lockdep splat from btrfs_dump_space_info
+    - usb: mtu3: clear dual mode of u3port when disable device
+    - drm: msm: a6xx: fix gpu failure after system resume
+    - drm/msm: Fix a null pointer access in msm_gem_shrinker_count()
+    - drm/debugfs: fix plain echo to connector "force" attribute
+    - drm/radeon: disable AGP by default
+    - irqchip/irq-mtk-sysirq: Replace spinlock with raw_spinlock
+    - mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls
+    - drm/amdgpu/display bail early in dm_pp_get_static_clocks
+    - drm/amd/powerplay: fix compile error with ARCH=arc
+    - bpf: Fix fds_example SIGSEGV error
+    - brcmfmac: keep SDIO watchdog running when console_interval is non-zero
+    - brcmfmac: To fix Bss Info flag definition Bug
+    - brcmfmac: set state of hanger slot to FREE when flushing PSQ
+    - platform/x86: asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15
+    - iwlegacy: Check the return value of pcie_capability_read_*()
+    - gpu: host1x: debug: Fix multiple channels emitting messages simultaneously
+    - ionic: update eid test for overflow
+    - mmc: sdhci-pci-o2micro: Bug fix for O2 host controller Seabird1
+    - usb: gadget: net2280: fix memory leak on probe error handling paths
+    - bdc: Fix bug causing crash after multiple disconnects
+    - usb: bdc: Halt controller on suspend
+    - dyndbg: fix a BUG_ON in ddebug_describe_flags
+    - bcache: fix super block seq numbers comparision in register_cache_set()
+    - ACPICA: Do not increment operation_region reference counts for field units
+    - drm/msm: ratelimit crtc event overflow error
+    - drm/gem: Fix a leak in drm_gem_objects_lookup()
+    - drm/bridge: ti-sn65dsi86: Clear old error bits before AUX transfers
+    - agp/intel: Fix a memory leak on module initialisation failure
+    - mwifiex: Fix firmware filename for sd8977 chipset
+    - mwifiex: Fix firmware filename for sd8997 chipset
+    - btmrvl: Fix firmware filename for sd8977 chipset
+    - btmrvl: Fix firmware filename for sd8997 chipset
+    - video: fbdev: sm712fb: fix an issue about iounmap for a wrong address
+    - console: newport_con: fix an issue about leak related system resources
+    - video: pxafb: Fix the function used to balance a 'dma_alloc_coherent()' call
+    - ath10k: Acquire tx_lock in tx error paths
+    - iio: improve IIO_CONCENTRATION channel type description
+    - drm/etnaviv: Fix error path on failure to enable bus clk
+    - drm/arm: fix unintentional integer overflow on left shift
+    - clk: bcm63xx-gate: fix last clock availability
+    - leds: lm355x: avoid enum conversion warning
+    - Bluetooth: btusb: fix up firmware download sequence
+    - Bluetooth: btmtksdio: fix up firmware download sequence
+    - media: cxusb-analog: fix V4L2 dependency
+    - media: marvell-ccic: Add missed v4l2_async_notifier_cleanup()
+    - media: omap3isp: Add missed v4l2_ctrl_handler_free() for
+      preview_init_entities()
+    - ASoC: SOF: nocodec: add missing .owner field
+    - ASoC: Intel: bxt_rt298: add missing .owner field
+    - scsi: cumana_2: Fix different dev_id between request_irq() and free_irq()
+    - drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline
+    - cxl: Fix kobject memleak
+    - drm/radeon: fix array out-of-bounds read and write issues
+    - staging: vchiq_arm: Add a matching unregister call
+    - iavf: fix error return code in iavf_init_get_resources()
+    - iavf: Fix updating statistics
+    - RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued()
+    - scsi: powertec: Fix different dev_id between request_irq() and free_irq()
+    - scsi: eesox: Fix different dev_id between request_irq() and free_irq()
+    - ipvs: allow connection reuse for unconfirmed conntrack
+    - media: firewire: Using uninitialized values in node_probe()
+    - media: exynos4-is: Add missed check for pinctrl_lookup_state()
+    - media: cros-ec-cec: do not bail on device_init_wakeup failure
+    - xfs: don't eat an EIO/ENOSPC writeback error when scrubbing data fork
+    - xfs: fix reflink quota reservation accounting error
+    - RDMA/rxe: Skip dgid check in loopback mode
+    - PCI: Fix pci_cfg_wait queue locking problem
+    - drm/stm: repair runtime power management
+    - kobject: Avoid premature parent object freeing in kobject_cleanup()
+    - leds: core: Flush scheduled work for system suspend
+    - drm: panel: simple: Fix bpc for LG LB070WV8 panel
+    - phy: exynos5-usbdrd: Calibrating makes sense only for USB2.0 PHY
+    - drm/bridge: sil_sii8620: initialize return of sii8620_readb
+    - scsi: scsi_debug: Add check for sdebug_max_queue during module init
+    - mwifiex: Prevent memory corruption handling keys
+    - kernfs: do not call fsnotify() with name without a parent
+    - powerpc/rtas: don't online CPUs for partition suspend
+    - powerpc/vdso: Fix vdso cpu truncation
+    - RDMA/qedr: SRQ's bug fixes
+    - RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send queue
+    - ima: Have the LSM free its audit rule
+    - staging: rtl8192u: fix a dubious looking mask before a shift
+    - ASoC: meson: fixes the missed kfree() for axg_card_add_tdm_loopback
+    - PCI/ASPM: Add missing newline in sysfs 'policy'
+    - phy: renesas: rcar-gen3-usb2: move irq registration to init
+    - powerpc/book3s64/pkeys: Use PVR check instead of cpu feature
+    - drm/imx: fix use after free
+    - drm/imx: tve: fix regulator_disable error path
+    - gpu: ipu-v3: Restore RGB32, BGR32
+    - spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM
+    - USB: serial: iuu_phoenix: fix led-activity helpers
+    - usb: core: fix quirks_param_set() writing to a const pointer
+    - thermal: ti-soc-thermal: Fix reversed condition in
+      ti_thermal_expose_sensor()
+    - coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb()
+    - powerpc/perf: Fix missing is_sier_aviable() during build
+    - mt76: mt7615: fix potential memory leak in mcu message handler
+    - phy: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - MIPS: OCTEON: add missing put_device() call in dwc3_octeon_device_init()
+    - usb: dwc2: Fix error path in gadget registration
+    - usb: gadget: f_uac2: fix AC Interface Header Descriptor wTotalLength
+    - scsi: megaraid_sas: Clear affinity hint
+    - scsi: mesh: Fix panic after host or bus reset
+    - net: dsa: mv88e6xxx: MV88E6097 does not support jumbo configuration
+    - macintosh/via-macii: Access autopoll_devs when inside lock
+    - PCI: cadence: Fix updating Vendor ID and Subsystem Vendor ID register
+    - RDMA/core: Fix return error value in _ib_modify_qp() to negative
+    - Smack: fix another vsscanf out of bounds
+    - Smack: prevent underflow in smk_set_cipso()
+    - power: supply: check if calc_soc succeeded in pm860x_init_battery
+    - Bluetooth: hci_h5: Set HCI_UART_RESET_ON_INIT to correct flags
+    - Bluetooth: hci_serdev: Only unregister device if it was registered
+    - net: dsa: rtl8366: Fix VLAN semantics
+    - net: dsa: rtl8366: Fix VLAN set-up
+    - xfs: fix inode allocation block res calculation precedence
+    - selftests/powerpc: Squash spurious errors due to device removal
+    - powerpc/32s: Fix CONFIG_BOOK3S_601 uses
+    - powerpc/boot: Fix CONFIG_PPC_MPC52XX references
+    - selftests/powerpc: Fix CPU affinity for child process
+    - RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP
+    - PCI: Release IVRS table in AMD ACS quirk
+    - [Config] update config for ARMADA_AP_CPU_CLK
+    - cpufreq: ap806: fix cpufreq driver needs ap cpu clk
+    - selftests/powerpc: Fix online CPU selection
+    - ASoC: meson: axg-tdm-interface: fix link fmt setup
+    - ASoC: meson: axg-tdmin: fix g12a skew
+    - ASoC: meson: axg-tdm-formatters: fix sclk inversion
+    - ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK
+    - s390/qeth: don't process empty bridge port events
+    - ice: Graceful error handling in HW table calloc failure
+    - rtw88: fix LDPC field for RA info
+    - rtw88: fix short GI capability based on current bandwidth
+    - rtw88: coex: only skip coex triggered by BT info
+    - wl1251: fix always return 0 error
+    - tools, build: Propagate build failures from tools/build/Makefile.build
+    - tools, bpftool: Fix wrong return value in do_dump()
+    - net/mlx5: DR, Change push vlan action sequence
+    - net/mlx5: Delete extra dump stack that gives nothing
+    - net: ethernet: aquantia: Fix wrong return value
+    - liquidio: Fix wrong return value in cn23xx_get_pf_num()
+    - net: spider_net: Fix the size used in a 'dma_free_coherent()' call
+    - fsl/fman: use 32-bit unsigned integer
+    - fsl/fman: fix dereference null return value
+    - fsl/fman: fix unreachable code
+    - fsl/fman: check dereferencing null pointer
+    - fsl/fman: fix eth hash table allocation
+    - net: thunderx: initialize VF's mailbox mutex before first usage
+    - dlm: Fix kobject memleak
+    - ocfs2: fix unbalanced locking
+    - pinctrl-single: fix pcs_parse_pinconf() return value
+    - svcrdma: Fix page leak in svc_rdma_recv_read_chunk()
+    - x86/fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task
+    - crypto: aesni - add compatibility with IAS
+    - af_packet: TPACKET_V3: fix fill status rwlock imbalance
+    - drivers/net/wan/lapbether: Added needed_headroom and a skb->len check
+    - net: Fix potential memory leak in proto_register()
+    - net/nfc/rawsock.c: add CAP_NET_RAW check.
+    - net: phy: fix memory leak in device-create error path
+    - net: Set fput_needed iff FDPUT_FPUT is set
+    - net/tls: Fix kmap usage
+    - vmxnet3: use correct tcp hdr length when packet is encapsulated
+    - net: refactor bind_bucket fastreuse into helper
+    - net: initialize fastreuse on inet_inherit_port
+    - USB: serial: cp210x: re-enable auto-RTS on open
+    - USB: serial: cp210x: enable usb generic throttle/unthrottle
+    - ALSA: hda - fix the micmute led status for Lenovo ThinkCentre AIO
+    - ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support
+    - ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
+    - ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
+    - 9p: Fix memory leak in v9fs_mount
+    - media: media-request: Fix crash if memory allocation fails
+    - drm/ttm/nouveau: don't call tt destroy callback on alloc failure.
+    - io_uring: set ctx sq/cq entry count earlier
+    - NFS: Don't move layouts to plh_return_segs list while in use
+    - NFS: Don't return layout segments that are in use
+    - cpufreq: Fix locking issues with governors
+    - cpufreq: dt: fix oops on armada37xx
+    - include/asm-generic/vmlinux.lds.h: align ro_after_init
+    - spi: spidev: Align buffers for DMA
+    - mtd: rawnand: qcom: avoid write to unavailable register
+    - erofs: fix extended inode could cross boundary
+    - Revert "parisc: Drop LDCW barrier in CAS code when running UP"
+    - Revert "parisc: Use ldcw instruction for SMP spinlock release barrier"
+    - Revert "parisc: Revert "Release spinlocks using ordered store""
+    - parisc: Do not use an ordered store in pa_tlb_lock()
+    - parisc: Implement __smp_store_release and __smp_load_acquire barriers
+    - parisc: mask out enable and reserved bits from sba imask
+    - ARM: 8992/1: Fix unwind_frame for clang-built kernels
+    - irqdomain/treewide: Free firmware node after domain removal
+    - ALSA: usb-audio: add quirk for Pioneer DDJ-RB
+    - tpm: Unify the mismatching TPM space buffer sizes
+    - pstore: Fix linking when crypto API disabled
+    - crypto: hisilicon - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not
+      specified
+    - crypto: qat - fix double free in qat_uclo_create_batch_init_list
+    - crypto: ccp - Fix use of merged scatterlists
+    - crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
+    - bitfield.h: don't compile-time validate _val in FIELD_FIT
+    - fs/minix: check return value of sb_getblk()
+    - fs/minix: don't allow getting deleted inodes
+    - fs/minix: reject too-large maximum file size
+    - xen/balloon: fix accounting in alloc_xenballooned_pages error path
+    - xen/balloon: make the balloon wait interruptible
+    - xen/gntdev: Fix dmabuf import with non-zero sgt offset
+    - s390/dasd: fix inability to use DASD with DIAG driver
+    - s390/gmap: improve THP splitting
+    - io_uring: Fix NULL pointer dereference in loop_rw_iter()
+    - Linux 5.4.59
+
+  * Regression on NFS: unable to handle page fault in mempool_alloc_slab
+    (LP: #1886277) // Focal update: v5.4.59 upstream stable release
+    (LP: #1892417)
+    - SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
+
+  * Focal update: v5.4.59 upstream stable release (LP: #1892417) //
+    CVE-2019-19770 which shows this issue is not a core debugfs issue, but
+    - blktrace: fix debugfs use after free
+
+  * update ENA driver for LLQ acceleration mode, new hw support (LP: #1890845)
+    - net: ena: change num_queues to num_io_queues for clarity and consistency
+    - net: ena: multiple queue creation related cleanups
+    - net: ena: ethtool: get_channels: use combined only
+    - net: ena: make ethtool -l show correct max number of queues
+    - net: ena: remove redundant print of number of queues
+    - net: ena: ethtool: support set_channels callback
+    - net: ena: implement XDP drop support
+    - net: ena: Implement XDP_TX action
+    - net: ena: Add first_interrupt field to napi struct
+    - net: ena: fix default tx interrupt moderation interval
+    - net: ena: remove set but not used variable 'rx_ring'
+    - net: ena: remove set but not used variable 'hash_key'
+    - net: ena: ethtool: remove redundant non-zero check on rc
+    - net/amazon: Ensure that driver version is aligned to the linux kernel
+    - net: ena: fix broken interface between ENA driver and FW
+    - net: ena: ethtool: clean up minor indentation issue
+    - net: ena: fix incorrect setting of the number of msix vectors
+    - net: ena: fix request of incorrect number of IRQ vectors
+    - net: ena: avoid memory access violation by validating req_id properly
+    - net: ena: fix continuous keep-alive resets
+    - net: ena: Make some functions static
+    - net: ena: avoid unnecessary admin command when RSS function set fails
+    - net: ena: allow setting the hash function without changing the key
+    - net: ena: change default RSS hash function to Toeplitz
+    - net: ena: changes to RSS hash key allocation
+    - net: ena: remove code that does nothing
+    - net: ena: add unmask interrupts statistics to ethtool
+    - net: ena: add support for reporting of packet drops
+    - net: ena: drop superfluous prototype
+    - net: ena: use SHUTDOWN as reset reason when closing interface
+    - net: ena: cosmetic: remove unnecessary spaces and tabs in ena_com.h macros
+    - net: ena: cosmetic: extract code to ena_indirection_table_set()
+    - net: ena: add support for the rx offset feature
+    - net: ena: rename ena_com_free_desc to make API more uniform
+    - net: ena: use explicit variable size for clarity
+    - net: ena: fix ena_com_comp_status_to_errno() return value
+    - net: ena: simplify ena_com_update_intr_delay_resolution()
+    - net: ena: cosmetic: set queue sizes to u32 for consistency
+    - net: ena: cosmetic: fix spelling and grammar mistakes in comments
+    - net: ena: cosmetic: fix line break issues
+    - net: ena: cosmetic: remove unnecessary code
+    - net: ena: cosmetic: code reorderings
+    - net: ena: cosmetic: fix spacing issues
+    - net: ena: cosmetic: minor code changes
+    - net: ena: reduce driver load time
+    - net: ena: xdp: XDP_TX: fix memory leak
+    - net: ena: xdp: update napi budget for DROP and ABORTED
+    - ena_netdev: use generic power management
+    - net: ena: Fix using plain integer as NULL pointer in ena_init_napi_in_range
+    - net: ena: avoid unnecessary rearming of interrupt vector when busy-polling
+    - net: ena: add reserved PCI device ID
+    - net: ena: cosmetic: satisfy gcc warning
+    - net: ena: cosmetic: change ena_com_stats_admin stats to u64
+    - net: ena: add support for traffic mirroring
+    - net: ena: enable support of rss hash key and function changes
+    - net: ena: move llq configuration from ena_probe to ena_device_init()
+    - net: ena: support new LLQ acceleration mode
+
+  * [SRU] Fix acpi backlight issue on some thinkpads (LP: #1892010)
+    - platform/x86: thinkpad_acpi: not loading brightness_init when _BCL invalid
+
+  * [SRU][F/OEM-5.6] add a new OLED panel support for brightness control
+    (LP: #1887909)
+    - drm/dp: Lenovo X13 Yoga OLED panel brightness fix
+
+  * Realtek [10ec:c82f] Subsystem [17aa:c02f] Wifi adapter not found
+    (LP: #1886247)
+    - SAUCE: rtw88: 8822ce: add support for device ID 0xc82f
+
+  * KVM: Fix zero_page reference counter overflow when using KSM on KVM compute
+    host (LP: #1837810)
+    - KVM: fix overflow of zero page refcount with ksm running
+
+  * Fix missing HDMI Audio on another HP Desktop (LP: #1891617)
+    - ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop
+
+  * alsa/sof: support 1 and 3 dmics (LP: #1891585)
+    - SAUCE: ASoC: SOF: intel: hda: support also devices with 1 and 3 dmics
+
+  * tcp_fastopen_backup_key.sh from net in ubuntu_kernel_selftests failed on
+    Eoan LPAR (LP: #1869134)
+    - tcp: correct read of TFO keys on big endian systems
+
+  * Fix false-negative return value for rtnetlink.sh in kselftests/net
+    (LP: #1890136)
+    - selftests: rtnetlink: correct the final return value for the test
+    - selftests: rtnetlink: make kci_test_encap() return sub-test result
+
+  * Focal update: v5.4.58 upstream stable release (LP: #1891387)
+    - USB: serial: qcserial: add EM7305 QDL product ID
+    - perf/core: Fix endless multiplex timer
+    - USB: iowarrior: fix up report size handling for some devices
+    - usb: xhci: define IDs for various ASMedia host controllers
+    - usb: xhci: Fix ASMedia ASM1142 DMA addressing
+    - io_uring: prevent re-read of sqe->opcode
+    - io_uring: Fix use-after-free in io_sq_wq_submit_work()
+    - Revert "ALSA: hda: call runtime_allow() for all hda controllers"
+    - ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
+    - ALSA: hda/ca0132 - Add new quirk ID for Recon3D.
+    - ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.
+    - ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.
+    - ALSA: seq: oss: Serialize ioctls
+    - staging: android: ashmem: Fix lockdep warning for write operation
+    - staging: rtl8712: handle firmware load failure
+    - Staging: rtl8188eu: rtw_mlme: Fix uninitialized variable authmode
+    - Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
+    - Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
+    - omapfb: dss: Fix max fclk divider for omap36xx
+    - binder: Prevent context manager from incrementing ref 0
+    - Smack: fix use-after-free in smk_write_relabel_self()
+    - scripts: add dummy report mode to add_namespace.cocci
+    - vgacon: Fix for missing check in scrollback handling
+    - mtd: properly check all write ioctls for permissions
+    - leds: wm831x-status: fix use-after-free on unbind
+    - leds: lm36274: fix use-after-free on unbind
+    - leds: da903x: fix use-after-free on unbind
+    - leds: lm3533: fix use-after-free on unbind
+    - leds: 88pm860x: fix use-after-free on unbind
+    - net/9p: validate fds in p9_fd_open
+    - drm/nouveau/fbcon: fix module unload when fbcon init has failed for some
+      reason
+    - drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
+    - drm/drm_fb_helper: fix fbdev with sparc64
+    - i2c: slave: improve sanity check when registering
+    - i2c: slave: add sanity check when unregistering
+    - usb: hso: check for return value in hso_serial_common_create()
+    - net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
+    - ALSA: hda: fix NULL pointer dereference during suspend
+    - firmware: Fix a reference count leak.
+    - cfg80211: check vendor command doit pointer before use
+    - igb: reinit_locked() should be called with rtnl_lock
+    - atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
+    - tools lib traceevent: Fix memory leak in process_dynamic_array_len
+    - Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
+    - xattr: break delegations in {set,remove}xattr
+    - Revert "powerpc/kasan: Fix shadow pages allocation failure"
+    - PCI: tegra: Revert tegra124 raw_violation_fixup
+    - ipv4: Silence suspicious RCU usage warning
+    - ipv6: fix memory leaks on IPV6_ADDRFORM path
+    - ipv6: Fix nexthop refcnt leak when creating ipv6 route info
+    - net: ethernet: mtk_eth_soc: fix MTU warnings
+    - rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
+    - vxlan: Ensure FDB dump is performed under RCU
+    - net: lan78xx: replace bogus endpoint lookup
+    - appletalk: Fix atalk_proc_init() return path
+    - dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
+    - hv_netvsc: do not use VF device if link is down
+    - net: gre: recompute gre csum for sctp over gre tunnels
+    - net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
+    - openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
+    - Revert "vxlan: fix tos value before xmit"
+    - tcp: apply a floor of 1 for RTT samples from TCP timestamps
+    - ima: move APPRAISE_BOOTPARAM dependency on ARCH_POLICY to runtime
+    - [Config] update annotations for IMA_APPRAISE_BOOTPARAM
+    - nfsd: Fix NFSv4 READ on RDMA when using readv
+    - Linux 5.4.58
+
+  * Focal update: v5.4.57 upstream stable release (LP: #1891064)
+    - random32: update the net random state on interrupt and activity
+    - ARM: percpu.h: fix build error
+    - random: fix circular include dependency on arm64 after addition of percpu.h
+    - random32: remove net_rand_state from the latent entropy gcc plugin
+    - random32: move the pseudo-random 32-bit definitions to prandom.h
+    - arm64: Workaround circular dependency in pointer_auth.h
+    - ext4: fix direct I/O read error
+    - selftests: bpf: Fix detach from sockmap tests
+    - bpf: sockmap: Require attach_bpf_fd when detaching a program
+    - Linux 5.4.57
+
+  * Focal update: v5.4.56 upstream stable release (LP: #1891063)
+    - crypto: ccp - Release all allocated memory if sha type is invalid
+    - media: rc: prevent memory leak in cx23888_ir_probe
+    - sunrpc: check that domain table is empty at module unload.
+    - ath10k: enable transmit data ack RSSI for QCA9884
+    - PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
+    - mm/filemap.c: don't bother dropping mmap_sem for zero size readahead
+    - ALSA: usb-audio: Add implicit feedback quirk for SSL2
+    - ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series
+      with ALC289
+    - ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus
+      G14(GA401) series with ALC289
+    - ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference
+      board (alc256)
+    - ALSA: hda/hdmi: Fix keep_power assignment for non-component devices
+    - IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE
+    - vhost/scsi: fix up req type endian-ness
+    - 9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work
+    - wireless: Use offsetof instead of custom macro.
+    - ARM: 8986/1: hw_breakpoint: Don't invoke overflow handler on uaccess
+      watchpoints
+    - ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2
+    - ARM: dts: imx6sx-sdb: Fix the phy-mode on fec2
+    - ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect
+    - virtio_balloon: fix up endian-ness for free cmd id
+    - Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
+    - drm/amd/display: Clear dm_state for fast updates
+    - drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
+    - drm/dbi: Fix SPI Type 1 (9-bit) transfer
+    - drm: hold gem reference until object is no longer accessed
+    - rds: Prevent kernel-infoleak in rds_notify_queue_get()
+    - libtraceevent: Fix build with binutils 2.35
+    - net/x25: Fix x25_neigh refcnt leak when x25 disconnect
+    - net/x25: Fix null-ptr-deref in x25_disconnect
+    - ARM: dts sunxi: Relax a bit the CMA pool allocation range
+    - xfrm: Fix crash when the hold queue is used.
+    - ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
+    - nvme-tcp: fix possible hang waiting for icresp response
+    - selftests/net: rxtimestamp: fix clang issues for target arch PowerPC
+    - selftests/net: psock_fanout: fix clang issues for target arch PowerPC
+    - selftests/net: so_txtime: fix clang issues for target arch PowerPC
+    - sh/tlb: Fix PGTABLE_LEVELS > 2
+    - sh: Fix validation of system call number
+    - net: hns3: fix a TX timeout issue
+    - net: hns3: fix aRFS FD rules leftover after add a user FD rule
+    - net/mlx5: E-switch, Destroy TSAR when fail to enable the mode
+    - net/mlx5e: Fix error path of device attach
+    - net/mlx5: Verify Hardware supports requested ptp function on a given pin
+    - net/mlx5e: Modify uplink state on interface up/down
+    - net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev
+    - net: lan78xx: add missing endpoint sanity check
+    - net: lan78xx: fix transfer-buffer memory leak
+    - rhashtable: Fix unprotected RCU dereference in __rht_ptr
+    - mlx4: disable device on shutdown
+    - mlxsw: core: Increase scope of RCU read-side critical section
+    - mlxsw: core: Free EMAD transactions using kfree_rcu()
+    - ibmvnic: Fix IRQ mapping disposal in error path
+    - bpf: Fix map leak in HASH_OF_MAPS map
+    - mac80211: mesh: Free ie data when leaving mesh
+    - mac80211: mesh: Free pending skb when destroying a mpath
+    - arm64/alternatives: move length validation inside the subsection
+    - arm64: csum: Fix handling of bad packets
+    - Bluetooth: fix kernel oops in store_pending_adv_report
+    - net: nixge: fix potential memory leak in nixge_probe()
+    - net: gemini: Fix missing clk_disable_unprepare() in error path of
+      gemini_ethernet_port_probe()
+    - net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
+    - perf tools: Fix record failure when mixed with ARM SPE event
+    - vxlan: fix memleak of fdb
+    - usb: hso: Fix debug compile warning on sparc32
+    - selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion
+    - qed: Disable "MFW indication via attention" SPAM every 5 minutes
+    - selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support
+    - nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame
+    - scsi: core: Run queue in case of I/O resource contention failure
+    - parisc: add support for cmpxchg on u8 pointers
+    - net: ethernet: ravb: exit if re-initialization fails in tx timeout
+    - Revert "i2c: cadence: Fix the hold bit setting"
+    - x86/unwind/orc: Fix ORC for newly forked tasks
+    - x86/stacktrace: Fix reliable check for empty user task stacks
+    - cxgb4: add missing release on skb in uld_send()
+    - xen-netfront: fix potential deadlock in xennet_remove()
+    - RISC-V: Set maximum number of mapped pages correctly
+    - drivers/net/wan: lapb: Corrected the usage of skb_cow
+    - KVM: arm64: Don't inherit exec permission across page-table levels
+    - KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw
+      disabled
+    - x86/i8259: Use printk_deferred() to prevent deadlock
+    - perf tests bp_account: Make global variable static
+    - perf env: Do not return pointers to local variables
+    - perf bench: Share some global variables to fix build with gcc 10
+    - Linux 5.4.56
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Thu, 10 Sep 2020 12:12:09 +0200
+
+linux (5.4.0-47.51) focal; urgency=medium
+
+  * focal/linux: 5.4.0-47.51 -proposed tracker (LP: #1894315)
+
+  * CVE-2020-14386
+    - SAUCE: net/packet: fix overflow in tpacket_rcv
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 04 Sep 2020 16:08:25 -0300
+
+linux (5.4.0-45.49) focal; urgency=medium
+
+  * focal/linux: 5.4.0-45.49 -proposed tracker (LP: #1893050)
+
+  * [Potential Regression] dscr_inherit_exec_test from powerpc in
+    ubuntu_kernel_selftests failed on B/E/F (LP: #1888332)
+    - powerpc/64s: Don't init FSCR_DSCR in __init_FSCR()
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 26 Aug 2020 15:15:45 +0200
+
+linux (5.4.0-44.48) focal; urgency=medium
+
+  * focal/linux: 5.4.0-44.48 -proposed tracker (LP: #1891049)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * ipsec: policy priority management is broken (LP: #1890796)
+    - xfrm: policy: match with both mark and mask on user interfaces
+
+ -- Kelsey Skunberg <kelsey.skunberg@canonical.com>  Mon, 10 Aug 2020 14:57:15 -0600
+
+linux (5.4.0-43.47) focal; urgency=medium
+
+  * focal/linux: 5.4.0-43.47 -proposed tracker (LP: #1890746)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Devlink -  add RoCE disable kernel support  (LP: #1877270)
+    - devlink: Add new "enable_roce" generic device param
+    - net/mlx5: Document flow_steering_mode devlink param
+    - net/mlx5: Handle "enable_roce" devlink param
+    - IB/mlx5: Rename profile and init methods
+    - IB/mlx5: Load profile according to RoCE enablement state
+    - net/mlx5: Remove unneeded variable in mlx5_unload_one
+    - net/mlx5: Add devlink reload
+    - IB/mlx5: Do reverse sequence during device removal
+
+  * msg_zerocopy.sh in net from ubuntu_kernel_selftests failed (LP: #1812620)
+    - selftests/net: relax cpu affinity requirement in msg_zerocopy test
+
+  * Enlarge hisi_sec2 capability (LP: #1890222)
+    - Revert "UBUNTU: [Config] Disable hisi_sec2 temporarily"
+    - crypto: hisilicon - update SEC driver module parameter
+
+  * Fix missing HDMI/DP Audio on an HP Desktop (LP: #1890441)
+    - ALSA: hda/hdmi: Add quirk to force connectivity
+
+  * Fix IOMMU error on AMD Radeon Pro W5700 (LP: #1890306)
+    - PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken
+
+  * ASoC:amd:renoir:  the dmic can't record sound after suspend and resume
+    (LP: #1890220)
+    - SAUCE: ASoC: amd: renoir: restore two more registers during resume
+
+  * No sound, Dummy output on Acer Swift 3 SF314-57G with Ice Lake core-i7  CPU
+    (LP: #1877757)
+    - ASoC: SOF: Intel: hda: fix generic hda codec support
+
+  * Fix right speaker of HP laptop (LP: #1889375)
+    - SAUCE: hda/realtek: Fix right speaker of HP laptop
+
+  * blk_update_request error when mount nvme partition (LP: #1872383)
+    - SAUCE: nvme-pci: prevent SK hynix PC400 from using Write Zeroes command
+
+  * soc/amd/renoir: detect dmic from acpi table (LP: #1887734)
+    - ASoC: amd: add logic to check dmic hardware runtime
+    - ASoC: amd: add ACPI dependency check
+    - ASoC: amd: fixed kernel warnings
+
+  * soc/amd/renoir: change the module name to make it work with ucm3
+    (LP: #1888166)
+    - AsoC: amd: add missing snd- module prefix to the acp3x-rn driver kernel
+      module
+    - SAUCE: remove a kernel module since its name is changed
+
+  * Focal update: v5.4.55 upstream stable release (LP: #1890343)
+    - AX.25: Fix out-of-bounds read in ax25_connect()
+    - AX.25: Prevent out-of-bounds read in ax25_sendmsg()
+    - dev: Defer free of skbs in flush_backlog
+    - drivers/net/wan/x25_asy: Fix to make it work
+    - ip6_gre: fix null-ptr-deref in ip6gre_init_net()
+    - net-sysfs: add a newline when printing 'tx_timeout' by sysfs
+    - net: udp: Fix wrong clean up for IS_UDPLITE macro
+    - qrtr: orphan socket in qrtr_release()
+    - rtnetlink: Fix memory(net_device) leak when ->newlink fails
+    - rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA
+    - tcp: allow at most one TLP probe per flight
+    - AX.25: Prevent integer overflows in connect and sendmsg
+    - sctp: shrink stream outq only when new outcnt < old outcnt
+    - sctp: shrink stream outq when fails to do addstream reconf
+    - udp: Copy has_conns in reuseport_grow().
+    - udp: Improve load balancing for SO_REUSEPORT.
+    - regmap: debugfs: check count when read regmap file
+    - PM: wakeup: Show statistics for deleted wakeup sources again
+    - Revert "dpaa_eth: fix usage as DSA master, try 3"
+    - Linux 5.4.55
+
+  * Add support for Atlantic NIC firmware v4 (LP: #1886908)
+    - net: atlantic: simplify hw_get_fw_version() usage
+    - net: atlantic: align return value of ver_match function with function name
+    - net: atlantic: add support for FW 4.x
+
+  * perf vendor events s390: Add new deflate counters for IBM z15 (LP: #1888551)
+    - perf vendor events s390: Add new deflate counters for IBM z15
+
+  * Focal update: v5.4.54 upstream stable release (LP: #1889669)
+    - soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
+    - gpio: arizona: handle pm_runtime_get_sync failure case
+    - gpio: arizona: put pm_runtime in case of failure
+    - pinctrl: amd: fix npins for uart0 in kerncz_groups
+    - mac80211: allow rx of mesh eapol frames with default rx key
+    - scsi: scsi_transport_spi: Fix function pointer check
+    - xtensa: fix __sync_fetch_and_{and,or}_4 declarations
+    - xtensa: update *pos in cpuinfo_op.next
+    - scsi: mpt3sas: Fix unlock imbalance
+    - drivers/net/wan/lapbether: Fixed the value of hard_header_len
+    - ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
+    - net: sky2: initialize return of gm_phy_read
+    - drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
+    - scsi: mpt3sas: Fix error returns in BRM_status_show
+    - scsi: dh: Add Fujitsu device to devinfo and dh lists
+    - dm: use bio_uninit instead of bio_disassociate_blkg
+    - drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
+    - fuse: fix weird page warning
+    - irqdomain/treewide: Keep firmware node unconditionally allocated
+    - ARM: dts: imx6qdl-gw551x: Do not use 'simple-audio-card,dai-link'
+    - ARM: dts: imx6qdl-gw551x: fix audio SSI
+    - dmabuf: use spinlock to access dmabuf->name
+    - drm/amd/display: Check DMCU Exists Before Loading
+    - SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO
+      compeletion")
+    - btrfs: reloc: fix reloc root leak and NULL pointer dereference
+    - btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway
+      balance
+    - uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix
+      GDB regression
+    - ALSA: hda/realtek: Fixed ALC298 sound bug by adding quirk for Samsung
+      Notebook Pen S
+    - ALSA: info: Drop WARN_ON() from buffer NULL sanity check
+    - ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
+    - btrfs: fix double free on ulist after backref resolution failure
+    - btrfs: fix mount failure caused by race with umount
+    - btrfs: fix page leaks after failure to lock page for delalloc
+    - bnxt_en: Fix race when modifying pause settings.
+    - bnxt_en: Fix completion ring sizing with TPA enabled.
+    - fpga: dfl: pci: reduce the scope of variable 'ret'
+    - fpga: dfl: fix bug in port reset handshake
+    - hippi: Fix a size used in a 'pci_free_consistent()' in an error handling
+      path
+    - vsock/virtio: annotate 'the_virtio_vsock' RCU pointer
+    - ax88172a: fix ax88172a_unbind() failures
+    - RDMA/mlx5: Use xa_lock_irq when access to SRQ table
+    - ASoC: Intel: bytcht_es8316: Add missed put_device()
+    - net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual
+      configuration
+    - ieee802154: fix one possible memleak in adf7242_probe
+    - drm: sun4i: hdmi: Fix inverted HPD result
+    - net: smc91x: Fix possible memory leak in smc_drv_probe()
+    - bonding: check error value of register_netdevice() immediately
+    - mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
+    - ionic: use offset for ethtool regs data
+    - ionic: fix up filter locks and debug msgs
+    - net: ag71xx: add missed clk_disable_unprepare in error path of probe
+    - net: hns3: fix error handling for desc filling
+    - net: dsa: microchip: call phy_remove_link_mode during probe
+    - netdevsim: fix unbalaced locking in nsim_create()
+    - qed: suppress "don't support RoCE & iWARP" flooding on HW init
+    - qed: suppress false-positives interrupt error messages on HW init
+    - ipvs: fix the connection sync failed in some cases
+    - net: ethernet: ave: Fix error returns in ave_init
+    - Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms"
+    - nfsd4: fix NULL dereference in nfsd/clients display code
+    - enetc: Remove the mdio bus on PF probe bailout
+    - i2c: rcar: always clear ICSAR to avoid side effects
+    - i2c: i2c-qcom-geni: Fix DMA transfer race
+    - bonding: check return value of register_netdevice() in bond_newlink()
+    - geneve: fix an uninitialized value in geneve_changelink()
+    - serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
+    - scripts/decode_stacktrace: strip basepath from all paths
+    - scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
+    - HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
+    - HID: alps: support devices with report id 2
+    - HID: steam: fixes race in handling device list.
+    - HID: apple: Disable Fn-key key-re-mapping on clone keyboards
+    - dmaengine: tegra210-adma: Fix runtime PM imbalance on error
+    - Input: add `SW_MACHINE_COVER`
+    - ARM: dts: n900: remove mmc1 card detect gpio
+    - spi: mediatek: use correct SPI_CFG2_REG MACRO
+    - regmap: dev_get_regmap_match(): fix string comparison
+    - hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
+    - dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu
+    - dmaengine: ioat setting ioat timeout as module parameter
+    - Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
+    - Input: elan_i2c - only increment wakeup count on touch
+    - usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant
+    - usb: dwc3: pci: add support for the Intel Jasper Lake
+    - usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
+    - usb: cdns3: ep0: fix some endian issues
+    - usb: cdns3: trace: fix some endian issues
+    - hwmon: (adm1275) Make sure we are reading enough data for different chips
+    - drm/amdgpu/gfx10: fix race condition for kiq
+    - drm/amdgpu: fix preemption unit test
+    - hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D
+    - platform/x86: ISST: Add new PCI device ids
+    - platform/x86: asus-wmi: allow BAT1 battery name
+    - hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
+    - ALSA: hda/realtek - fixup for yet another Intel reference board
+    - drivers/perf: Fix kernel panic when rmmod PMU modules during perf sampling
+    - arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
+    - x86: math-emu: Fix up 'cmp' insn for clang ias
+    - asm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible()
+    - drivers/perf: Prevent forced unbinding of PMU drivers
+    - RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
+    - binder: Don't use mmput() from shrinker function.
+    - usb: xhci-mtk: fix the failure of bandwidth allocation
+    - usb: xhci: Fix ASM2142/ASM3142 DMA addressing
+    - Revert "cifs: Fix the target file was deleted when rename failed."
+    - iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU
+    - tty: xilinx_uartps: Really fix id assignment
+    - staging: wlan-ng: properly check endpoint types
+    - staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
+    - staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
+    - staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
+    - staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
+    - serial: tegra: fix CREAD handling for PIO
+    - serial: 8250: fix null-ptr-deref in serial8250_start_tx()
+    - serial: 8250_mtk: Fix high-speed baud rates clamping
+    - /dev/mem: Add missing memory barriers for devmem_inode
+    - fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
+    - vt: Reject zero-sized screen buffer size.
+    - Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
+    - mm/mmap.c: close race between munmap() and expand_upwards()/downwards()
+    - mm/memcg: fix refcount error while moving and swapping
+    - mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
+    - khugepaged: fix null-pointer dereference due to race
+    - io-mapping: indicate mapping failure
+    - mmc: sdhci-of-aspeed: Fix clock divider calculation
+    - drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
+    - drm/amd/powerplay: fix a crash when overclocking Vega M
+    - parisc: Add atomic64_set_release() define to avoid CPU soft lockups
+    - x86, vmlinux.lds: Page-align end of ..page_aligned sections
+    - ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo
+      Miix 2 10
+    - ASoC: qcom: Drop HAS_DMA dependency to fix link failure
+    - ASoC: topology: fix kernel oops on route addition error
+    - ASoC: topology: fix tlvs in error handling for widget_dmixer
+    - dm integrity: fix integrity recalculation that is improperly skipped
+    - ath9k: Fix regression with Atheros 9271
+    - Linux 5.4.54
+
+  * Focal update: v5.4.53 upstream stable release (LP: #1888560)
+    - crypto: atmel - Fix selection of CRYPTO_AUTHENC
+    - crypto: atmel - Fix build error of CRYPTO_AUTHENC
+    - net: atlantic: fix ip dst and ipv6 address filters
+    - net: rmnet: fix lower interface leak
+    - bridge: mcast: Fix MLD2 Report IPv6 payload length check
+    - genetlink: remove genl_bind
+    - ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg
+    - ipv6: fib6_select_path can not use out path for nexthop objects
+    - ipv6: Fix use of anycast address with loopback
+    - l2tp: remove skb_dst_set() from l2tp_xmit_skb()
+    - llc: make sure applications use ARPHRD_ETHER
+    - net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
+    - net_sched: fix a memory leak in atm_tc_init()
+    - sched: consistently handle layer3 header accesses in the presence of VLANs
+    - tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
+    - tcp: make sure listeners don't initialize congestion-control state
+    - tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
+    - tcp: md5: do not send silly options in SYNCOOKIES
+    - vlan: consolidate VLAN parsing code and limit max parsing depth
+    - tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
+    - tcp: md5: allow changing MD5 keys in all socket states
+    - cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
+    - cgroup: Fix sock_cgroup_data on big-endian.
+    - ip: Fix SO_MARK in RST, ACK and ICMP packets
+    - arm64: Introduce a way to disable the 32bit vdso
+    - arm64: arch_timer: Allow an workaround descriptor to disable compat vdso
+    - arm64: arch_timer: Disable the compat vdso for cores affected by
+      ARM64_WORKAROUND_1418040
+    - drm/msm: fix potential memleak in error branch
+    - drm/msm/dpu: allow initialization of encoder locks during encoder init
+    - drm/exynos: Properly propagate return value in drm_iommu_attach_device()
+    - drm/exynos: fix ref count leak in mic_pre_enable
+    - x86/fpu: Reset MXCSR to default in kernel_fpu_begin()
+    - thermal/drivers: imx: Fix missing of_node_put() at probe time
+    - blk-mq-debugfs: update blk_queue_flag_name[] accordingly for new flags
+    - m68k: nommu: register start of the memory with memblock
+    - m68k: mm: fix node memblock init
+    - dt-bindings: mailbox: zynqmp_ipi: fix unit address
+    - cifs: prevent truncation from long to int in wait_for_free_credits
+    - arm64/alternatives: use subsections for replacement sequences
+    - tpm_tis: extra chip->ops check on error path in tpm_tis_core_init
+    - gfs2: read-only mounts should grab the sd_freeze_gl glock
+    - i2c: eg20t: Load module automatically if ID matches
+    - arm64/alternatives: don't patch up internal branches
+    - iio:magnetometer:ak8974: Fix alignment and data leak issues
+    - iio:humidity:hdc100x Fix alignment and data leak issues
+    - iio: magnetometer: ak8974: Fix runtime PM imbalance on error
+    - iio: core: add missing IIO_MOD_H2/ETHANOL string identifiers
+    - iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
+    - iio: pressure: zpa2326: handle pm_runtime_get_sync failure
+    - iio:humidity:hts221 Fix alignment and data leak issues
+    - iio:pressure:ms5611 Fix buffer element alignment
+    - iio:health:afe4403 Fix timestamp alignment and prevent data leak.
+    - spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer
+    - net: dsa: bcm_sf2: Fix node reference count
+    - of: of_mdio: Correct loop scanning logic
+    - net: macb: call pm_runtime_put_sync on failure path
+    - net: ethernet: mvneta: Do not error out in non serdes modes
+    - net: ethernet: mvneta: Add back interface mode validation
+    - Revert "usb/ohci-platform: Fix a warning when hibernating"
+    - Revert "usb/ehci-platform: Set PM runtime as active on resume"
+    - Revert "usb/xhci-plat: Set PM runtime as active on resume"
+    - net: sfp: add support for module quirks
+    - net: sfp: add some quirks for GPON modules
+    - ARM: OMAP4+: remove pdata quirks for omap4+ iommus
+    - ARM: OMAP2+: Add workaround for DRA7 DSP MStandby errata i879
+    - ARM: OMAP2+: use separate IOMMU pdata to fix DRA7 IPU1 boot
+    - mmc: mmci: Support any block sizes for ux500v2 and qcom variant
+    - HID: quirks: Remove ITE 8595 entry from hid_have_special_driver
+    - ARM: at91: pm: add quirk for sam9x60's ulp1
+    - drm/sun4i: tcon: Separate quirks for tcon0 and tcon1 on A20
+    - scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled
+    - [Config] updateconfigs for BLK_DEV_SR_VENDOR
+    - bus: ti-sysc: Rename clk related quirks to pre_reset and post_reset quirks
+    - bus: ti-sysc: Consider non-existing registers too when matching quirks
+    - bus: ti-sysc: Handle module unlock quirk needed for some RTC
+    - bus: ti-sysc: Detect display subsystem related devices
+    - arm64: dts: g12-common: add parkmode_disable_ss_quirk on DWC3 controller
+    - bus: ti-sysc: Detect EDMA and set quirk flags for tptc
+    - ALSA: usb-audio: Add support for MOTU MicroBook IIc
+    - Input: goodix - fix touch coordinates on Cube I15-TC
+    - ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp
+      (0951:16d8)
+    - doc: dt: bindings: usb: dwc3: Update entries for disabling SS instances in
+      park mode
+    - mmc: sdhci: do not enable card detect interrupt for gpio cd type
+    - ALSA: usb-audio: Rewrite registration quirk handling
+    - ACPI: video: Use native backlight on Acer Aspire 5783z
+    - ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S
+    - ALSA: usb-audio: Add quirk for Focusrite Scarlett 2i2
+    - Input: mms114 - add extra compatible for mms345l
+    - ACPI: video: Use native backlight on Acer TravelMate 5735Z
+    - bus: ti-sysc: Use optional clocks on for enable and wait for softreset bit
+    - ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight S
+    - iio:health:afe4404 Fix timestamp alignment and prevent data leak.
+    - soundwire: intel: fix memory leak with devm_kasprintf
+    - dmaengine: sh: usb-dmac: set tx_result parameters
+    - phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked
+    - arm64: dts: meson: add missing gxl rng clock
+    - arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
+    - bus: ti-sysc: Fix wakeirq sleeping function called from invalid context
+    - bus: ti-sysc: Fix sleeping function called from invalid context for RTC
+      quirk
+    - bus: ti-sysc: Do not disable on suspend for no-idle
+    - iio: adc: ad7780: Fix a resource handling path in 'ad7780_probe()'
+    - dmaengine: dw: Initialize channel before each transfer
+    - dmaengine: dmatest: stop completed threads when running without set channel
+    - spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate
+    - usb: gadget: udc: atmel: fix uninitialized read in debug printk
+    - staging: comedi: verify array index is correct before using it
+    - clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER
+    - clk: AST2600: Add mux for EMMC clock
+    - NFS: Fix interrupted slots by sending a solo SEQUENCE operation
+    - fuse: don't ignore errors from fuse_writepages_fill()
+    - ARM: dts: Fix dcan driver probe failed on am437x platform
+    - Revert "thermal: mediatek: fix register index error"
+    - xprtrdma: fix incorrect header size calculations
+    - ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema
+    - arm64: dts: spcfpga: Align GIC, NAND and UART nodenames with dtschema
+    - keys: asymmetric: fix error return code in software_key_query()
+    - regmap: debugfs: Don't sleep while atomic for fast_io regmaps
+    - copy_xstate_to_kernel: Fix typo which caused GDB regression
+    - arm: dts: mt7623: add phy-mode property for gmac2
+    - soc: qcom: socinfo: add missing soc_id sysfs entry
+    - habanalabs: Align protection bits configuration of all TPCs
+    - PCI/PM: Call .bridge_d3() hook only if non-NULL
+    - perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode
+    - soc: qcom: rpmh: Update dirty flag only when data changes
+    - soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
+    - soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS
+    - soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request
+    - RDMA/mlx5: Verify that QP is created with RQ or SQ
+    - mtd: rawnand: marvell: Fix the condition on a return code
+    - mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet
+      registered
+    - mtd: rawnand: marvell: Fix probe error path
+    - mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
+    - mtd: rawnand: brcmnand: correctly verify erased pages
+    - mtd: rawnand: brcmnand: fix CS0 layout
+    - mtd: rawnand: oxnas: Keep track of registered devices
+    - mtd: rawnand: oxnas: Unregister all devices on error
+    - mtd: rawnand: oxnas: Release all devices in the _remove() path
+    - clk: qcom: gcc: Add GPU and NPU clocks for SM8150
+    - clk: qcom: gcc: Add missing UFS clocks for SM8150
+    - slimbus: core: Fix mismatch in of_node_get/put
+    - HID: logitech-hidpp: avoid repeated "multiplier = " log messages
+    - HID: magicmouse: do not set up autorepeat
+    - HID: quirks: Always poll Obins Anne Pro 2 keyboard
+    - HID: quirks: Ignore Simply Automated UPB PIM
+    - ALSA: line6: Perform sanity check for each URB creation
+    - ALSA: line6: Sync the pending work cancel at disconnection
+    - ALSA: usb-audio: Fix race against the error recovery URB submission
+    - ALSA: hda/realtek - change to suitable link model for ASUS platform
+    - ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series
+      with ALC289
+    - ALSA: hda/realtek: Enable headset mic of Acer TravelMate B311R-31 with
+      ALC256
+    - ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
+    - ALSA: hda/realtek - Enable Speaker for ASUS UX563
+    - USB: c67x00: fix use after free in c67x00_giveback_urb
+    - usb: dwc2: Fix shutdown callback in platform
+    - usb: chipidea: core: add wakeup support for extcon
+    - usb: gadget: function: fix missing spinlock in f_uac1_legacy
+    - USB: serial: iuu_phoenix: fix memory corruption
+    - USB: serial: cypress_m8: enable Simply Automated UPB PIM
+    - USB: serial: ch341: add new Product ID for CH340
+    - USB: serial: option: add GosunCn GM500 series
+    - virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match
+      upstream
+    - virt: vbox: Fix guest capabilities mask check
+    - Revert "tty: xilinx_uartps: Fix missing id assignment to the console"
+    - virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial
+    - serial: mxs-auart: add missed iounmap() in probe failure and remove
+    - ovl: fix regression with re-formatted lower squashfs
+    - ovl: inode reference leak in ovl_is_inuse true case.
+    - ovl: relax WARN_ON() when decoding lower directory file handle
+    - ovl: fix unneeded call to ovl_change_flags()
+    - fuse: ignore 'data' argument of mount(..., MS_REMOUNT)
+    - fuse: use ->reconfigure() instead of ->remount_fs()
+    - fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS
+    - Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"
+    - mei: bus: don't clean driver pointer
+    - Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list
+    - uio_pdrv_genirq: Remove warning when irq is not specified
+    - uio_pdrv_genirq: fix use without device tree and no interrupt
+    - scsi: megaraid_sas: Remove undefined ENABLE_IRQ_POLL macro
+    - timer: Prevent base->clk from moving backward
+    - timer: Fix wheel index calculation on last level
+    - riscv: use 16KB kernel stack on 64-bit
+    - hwmon: (emc2103) fix unable to change fan pwm1_enable attribute
+    - powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey
+    - powerpc/pseries/svm: Fix incorrect check for shared_lppaca_size
+    - intel_th: pci: Add Jasper Lake CPU support
+    - intel_th: pci: Add Tiger Lake PCH-H support
+    - intel_th: pci: Add Emmitsburg PCH support
+    - intel_th: Fix a NULL dereference when hub driver is not loaded
+    - dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
+    - dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler
+    - dmaengine: fsl-edma-common: correct DSIZE_32BYTE
+    - misc: atmel-ssc: lock with mutex instead of spinlock
+    - thermal: int3403_thermal: Downgrade error message
+    - thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power
+    - arm64: ptrace: Override SPSR.SS when single-stepping is enabled
+    - arm64: ptrace: Consistently use pseudo-singlestep exceptions
+    - arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return
+    - sched: Fix unreliable rseq cpu_id for new tasks
+    - sched/fair: handle case of task_h_load() returning 0
+    - genirq/affinity: Handle affinity setting on inactive interrupts correctly
+    - drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()
+    - drm/i915/gt: Ignore irq enabling on the virtual engines
+    - block: fix splitting segments on boundary masks
+    - block: fix get_max_segment_size() overflow on 32bit arch
+    - libceph: don't omit recovery_deletes in target_copy()
+    - rxrpc: Fix trace string
+    - spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH
+    - ionic: export features for vlans to use
+    - iommu/vt-d: Make Intel SVM code 64-bit only
+    - drm/i915/gvt: Fix two CFL MMIO handling caused by regression.
+    - gpio: pca953x: disable regmap locking for automatic address incrementing
+    - Linux 5.4.53
+
+  * linux-libc-dev broken for crossbuilding, Multi-Arch:same violation
+    (LP: #1886188)
+    - [Packaging] Produce linux-libc-dev package for riscv64
+    - [Debian] Disallow building linux-libc-dev from linux-riscv
+
+  * [UBUNTU 20.04] DIF and DIX support in zfcp (s390x) is broken and the kernel
+    crashes unconditionally (LP: #1887124)
+    - scsi: zfcp: signal incomplete or error for sync exchange config/port data
+    - scsi: zfcp: diagnostics buffer caching and use for exchange port data
+    - scsi: zfcp: add diagnostics buffer for exchange config data
+    - scsi: zfcp: support retrieval of SFP Data via Exchange Port Data
+    - scsi: zfcp: introduce sysfs interface for diagnostics of local SFP
+      transceiver
+    - scsi: zfcp: implicitly refresh port-data diagnostics when reading sysfs
+    - scsi: zfcp: introduce sysfs interface to read the local B2B-Credit
+    - scsi: zfcp: implicitly refresh config-data diagnostics when reading sysfs
+    - scsi: zfcp: move maximum age of diagnostic buffers into a per-adapter
+      variable
+    - scsi: zfcp: proper indentation to reduce confusion in zfcp_erp_required_act
+    - scsi: zfcp: fix wrong data and display format of SFP+ temperature
+    - scsi: zfcp: expose fabric name as common fc_host sysfs attribute
+    - scsi: zfcp: wire previously driver-specific sysfs attributes also to fc_host
+    - scsi: zfcp: fix fc_host attributes that should be unknown on local link down
+    - scsi: zfcp: auto variables for dereferenced structs in open port handler
+    - scsi: zfcp: report FC Endpoint Security in sysfs
+    - scsi: zfcp: log FC Endpoint Security of connections
+    - scsi: zfcp: trace FC Endpoint Security of FCP devices and connections
+    - scsi: zfcp: enhance handling of FC Endpoint Security errors
+    - scsi: zfcp: log FC Endpoint Security errors
+    - scsi: zfcp: use fallthrough;
+    - scsi: zfcp: Move shost modification after QDIO (re-)open into fenced
+      function
+    - scsi: zfcp: Move shost updates during xconfig data handling into fenced
+      function
+    - scsi: zfcp: Move fc_host updates during xport data handling into fenced
+      function
+    - scsi: zfcp: Fence fc_host updates during link-down handling
+    - scsi: zfcp: Move p-t-p port allocation to after xport data
+    - scsi: zfcp: Fence adapter status propagation for common statuses
+    - scsi: zfcp: Fence early sysfs interfaces for accesses of shost objects
+    - scsi: zfcp: Move allocation of the shost object to after xconf- and xport-
+      data
+
+  * Enable Quectel EG95 LTE modem [2c7c:0195]  (LP: #1886744)
+    - net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
+    - USB: serial: option: add Quectel EG95 LTE modem
+
+  * Kernel Regression between 5.4.0-26 and 5.4.0-40 causes laptop internal audio
+    devices to fail to load w/o unacceptable workaround (Lenovo IdeaPad 5
+    15IIL05) (LP: #1886341)
+    - ASoC: SOF: intel: hda: Modify signature for hda_codec_probe_bus()
+    - ASoC: SOF: Intel: drop HDA codec upon probe failure
+    - ASoC: SOF: Intel: hda: move i915 init earlier
+
+  * [UBUNTU 20.04] smc: SMC connections hang with later-level implementations
+    (LP: #1882088)
+    - net/smc: tolerate future SMCD versions
+
+  * zfs: backport AES-GCM performance accelleration (LP: #1881107)
+    - debian/dkms-versions: update ZFS dkms package version (LP: #1881107)
+
+  * Regression in kernel 4.15.0-91 causes kernel panic with Bcache
+    (LP: #1867916)
+    - bcache: check and adjust logical block size for backing devices
+
+  * [SRU][OEM-5.6/U] Fix r8117 firmware base issue (LP: #1885072)
+    - r8169: add helper r8168g_phy_param
+    - r8169: add support for RTL8117
+    - r8169: load firmware for RTL8168fp/RTL8117
+    - r8169: fix OCP access on RTL8117
+    - r8169: fix firmware not resetting tp->ocp_base
+
+  * [UBUNTU 20.04] Deflate counters reported by lscpumf are not valid or
+    available with perf (LP: #1881096)
+    - s390/cpum_cf: Add new extended counters for IBM z15
+
+  * shiftfs: O_TMPFILE reports ESTALE (LP: #1872757)
+    - SAUCE: shiftfs: prevent ESTALE for LOOKUP_JUMP lookups
+
+  * shiftfs: fix btrfs regression (LP: #1884767)
+    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: fix dentry revalidation"
+
+  * Focal update: v5.4.52 upstream stable release (LP: #1887853)
+    - KVM: s390: reduce number of IO pins to 1
+    - spi: spi-fsl-dspi: Adding shutdown hook
+    - spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer
+    - regmap: fix alignment issue
+    - perf/x86/rapl: Move RAPL support to common x86 code
+    - perf/x86/rapl: Fix RAPL config variable bug
+    - [Packaging] module intel-rapl-perf rename
+    - ARM: dts: omap4-droid4: Fix spi configuration and increase rate
+    - drm/ttm: Fix dma_fence refcnt leak when adding move fence
+    - drm/tegra: hub: Do not enable orphaned window group
+    - gpu: host1x: Detach driver on unregister
+    - drm: mcde: Fix display initialization problem
+    - ASoC: SOF: Intel: add PCI ID for CometLake-S
+    - ALSA: hda: Intel: add missing PCI IDs for ICL-H, TGL-H and EKL
+    - spi: spidev: fix a race between spidev_release and spidev_remove
+    - spi: spidev: fix a potential use-after-free in spidev_release()
+    - net: ethernet: mvneta: Fix Serdes configuration for SoCs without comphy
+    - net: ethernet: mvneta: Add 2500BaseX support for SoCs without comphy
+    - ixgbe: protect ring accesses with READ- and WRITE_ONCE
+    - i40e: protect ring accesses with READ- and WRITE_ONCE
+    - ibmvnic: continue to init in CRQ reset returns H_CLOSED
+    - powerpc/kvm/book3s64: Fix kernel crash with nested kvm & DEBUG_VIRTUAL
+    - iommu/vt-d: Don't apply gfx quirks to untrusted devices
+    - drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
+    - drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
+    - s390/kasan: fix early pgm check handler execution
+    - cifs: update ctime and mtime during truncate
+    - ARM: imx6: add missing put_device() call in imx6q_suspend_init()
+    - scsi: mptscsih: Fix read sense data size
+    - usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
+    - block: release bip in a right way in error path
+    - nvme-rdma: assign completion vector correctly
+    - x86/entry: Increase entry_stack size to a full page
+    - sched/core: Check cpus_mask, not cpus_ptr in __set_cpus_allowed_ptr(), to
+      fix mask corruption
+    - net: qrtr: Fix an out of bounds read qrtr_endpoint_post()
+    - gpio: pca953x: Override IRQ for one of the expanders on Galileo Gen 2
+    - gpio: pca953x: Fix GPIO resource leak on Intel Galileo Gen 2
+    - nl80211: don't return err unconditionally in nl80211_start_ap()
+    - drm/mediatek: Check plane visibility in atomic_update
+    - bpf, sockmap: RCU splat with redirect and strparser error or TLS
+    - bpf, sockmap: RCU dereferenced psock may be used outside RCU block
+    - netfilter: ipset: call ip_set_free() instead of kfree()
+    - net: mvneta: fix use of state->speed
+    - net: cxgb4: fix return error value in t4_prep_fw
+    - IB/sa: Resolv use-after-free in ib_nl_make_request()
+    - net: dsa: microchip: set the correct number of ports
+    - netfilter: conntrack: refetch conntrack after nf_conntrack_update()
+    - perf report TUI: Fix segmentation fault in perf_evsel__hists_browse()
+    - perf intel-pt: Fix recording PEBS-via-PT with registers
+    - perf intel-pt: Fix PEBS sample for XMM registers
+    - smsc95xx: check return value of smsc95xx_reset
+    - smsc95xx: avoid memory leak in smsc95xx_bind
+    - net: hns3: add a missing uninit debugfs when unload driver
+    - net: hns3: fix use-after-free when doing self test
+    - ALSA: compress: fix partial_drain completion state
+    - RDMA/siw: Fix reporting vendor_part_id
+    - arm64: kgdb: Fix single-step exception handling oops
+    - nbd: Fix memory leak in nbd_add_socket
+    - cxgb4: fix all-mask IP address comparison
+    - IB/mlx5: Fix 50G per lane indication
+    - qed: Populate nvm-file attributes while reading nvm config partition.
+    - net/mlx5: Fix eeprom support for SFP module
+    - net/mlx5e: Fix 50G per lane indication
+    - bnxt_en: fix NULL dereference in case SR-IOV configuration fails
+    - net: macb: fix wakeup test in runtime suspend/resume routines
+    - net: macb: mark device wake capable when "magic-packet" property present
+    - net: macb: fix call to pm_runtime in the suspend/resume functions
+    - mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
+    - mlxsw: pci: Fix use-after-free in case of failed devlink reload
+    - IB/hfi1: Do not destroy hfi1_wq when the device is shut down
+    - IB/hfi1: Do not destroy link_wq when the device is shut down
+    - ALSA: opl3: fix infoleak in opl3
+    - ALSA: hda - let hs_mic be picked ahead of hp_mic
+    - ALSA: usb-audio: add quirk for MacroSilicon MS2109
+    - ALSA: usb-audio: Add implicit feedback quirk for RTX6001
+    - ALSA: hda/realtek - Fix Lenovo Thinkpad X1 Carbon 7th quirk subdevice id
+    - ALSA: hda/realtek - Enable audio jacks of Acer vCopperbox with ALC269VC
+    - ALSA: hda/realtek: Enable headset mic of Acer C20-820 with ALC269VC
+    - ALSA: hda/realtek: Enable headset mic of Acer Veriton N4660G with ALC269VC
+    - KVM: arm64: Fix definition of PAGE_HYP_DEVICE
+    - KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART
+    - KVM: arm64: Annotate hyp NMI-related functions as __always_inline
+    - KVM: x86: bit 8 of non-leaf PDPEs is not reserved
+    - KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
+    - KVM: x86: Mark CR4.TSD as being possibly owned by the guest
+    - KVM: arm64: Fix kvm_reset_vcpu() return code being incorrect with SVE
+    - kallsyms: Refactor kallsyms_show_value() to take cred
+    - module: Refactor section attr into bin attribute
+    - module: Do not expose section addresses to non-CAP_SYSLOG
+    - kprobes: Do not expose probe addresses to non-CAP_SYSLOG
+    - bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
+    - btrfs: fix fatal extent_buffer readahead vs releasepage race
+    - btrfs: fix double put of block group with nocow
+    - drm/radeon: fix double free
+    - drm/amdgpu: don't do soft recovery if gpu_recovery=0
+    - dm: use noio when sending kobject event
+    - mmc: meson-gx: limit segments to 1 when dram-access-quirk is needed
+    - ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
+    - ARC: elf: use right ELF_ARCH
+    - s390/setup: init jump labels before command line parsing
+    - s390/mm: fix huge pte soft dirty copying
+    - blk-mq: consider non-idle request as "inflight" in blk_mq_rq_inflight()
+    - dm writecache: reject asynchronous pmem devices
+    - perf scripts python: export-to-postgresql.py: Fix struct.pack() int argument
+    - perf scripts python: exported-sql-viewer.py: Fix zero id in call graph
+      'Find' result
+    - perf scripts python: exported-sql-viewer.py: Fix zero id in call tree 'Find'
+      result
+    - perf scripts python: exported-sql-viewer.py: Fix unexpanded 'Find' result
+    - pwm: jz4740: Fix build failure
+    - s390: Change s390_kernel_write() return type to match memcpy()
+    - s390/maccess: add no DAT mode to kernel_write
+    - Linux 5.4.52
+
+  * Focal update: v5.4.45 upstream stable release (LP: #1882802) // Focal
+    update: v5.4.52 upstream stable release (LP: #1887853)
+    - Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race
+      window"
+
+  * Focal update: v5.4.51 upstream stable release (LP: #1886995)
+    - io_uring: make sure async workqueue is canceled on exit
+    - mm: fix swap cache node allocation mask
+    - EDAC/amd64: Read back the scrub rate PCI register on F15h
+    - usbnet: smsc95xx: Fix use-after-free after removal
+    - sched/debug: Make sd->flags sysctl read-only
+    - mm/slub.c: fix corrupted freechain in deactivate_slab()
+    - mm/slub: fix stack overruns with SLUB_STATS
+    - rxrpc: Fix race between incoming ACK parser and retransmitter
+    - usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
+    - tools lib traceevent: Add append() function helper for appending strings
+    - tools lib traceevent: Handle __attribute__((user)) in field names
+    - s390/debug: avoid kernel warning on too large number of pages
+    - nvme-multipath: set bdi capabilities once
+    - nvme-multipath: fix deadlock between ana_work and scan_work
+    - nvme-multipath: fix deadlock due to head->lock
+    - nvme-multipath: fix bogus request queue reference put
+    - kgdb: Avoid suspicious RCU usage warning
+    - selftests: tpm: Use /bin/sh instead of /bin/bash
+    - crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
+    - drm/msm/dpu: fix error return code in dpu_encoder_init
+    - rxrpc: Fix afs large storage transmission performance drop
+    - RDMA/counter: Query a counter before release
+    - cxgb4: use unaligned conversion for fetching timestamp
+    - cxgb4: parse TC-U32 key values and masks natively
+    - cxgb4: fix endian conversions for L4 ports in filters
+    - cxgb4: use correct type for all-mask IP address comparison
+    - cxgb4: fix SGE queue dump destination buffer context
+    - hwmon: (max6697) Make sure the OVERT mask is set correctly
+    - hwmon: (acpi_power_meter) Fix potential memory leak in
+      acpi_power_meter_add()
+    - thermal/drivers/mediatek: Fix bank number settings on mt8183
+    - thermal/drivers/rcar_gen3: Fix undefined temperature if negative
+    - nfsd4: fix nfsdfs reference count loop
+    - nfsd: fix nfsdfs inode reference count leak
+    - drm: sun4i: hdmi: Remove extra HPD polling
+    - virtio-blk: free vblk-vqs in error path of virtblk_probe()
+    - SMB3: Honor 'posix' flag for multiuser mounts
+    - nvme: fix identify error status silent ignore
+    - nvme: fix a crash in nvme_mpath_add_disk
+    - samples/vfs: avoid warning in statx override
+    - i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
+    - i2c: mlxcpld: check correct size of maximum RECV_LEN packet
+    - spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
+    - nfsd: apply umask on fs without ACL support
+    - Revert "ALSA: usb-audio: Improve frames size computation"
+    - SMB3: Honor 'seal' flag for multiuser mounts
+    - SMB3: Honor persistent/resilient handle flags for multiuser mounts
+    - SMB3: Honor lease disabling for multiuser mounts
+    - SMB3: Honor 'handletimeout' flag for multiuser mounts
+    - cifs: Fix the target file was deleted when rename failed.
+    - MIPS: lantiq: xway: sysctrl: fix the GPHY clock alias names
+    - MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
+    - drm/amd/display: Only revalidate bandwidth on medium and fast updates
+    - drm/amdgpu: use %u rather than %d for sclk/mclk
+    - drm/amdgpu/atomfirmware: fix vram_info fetching for renoir
+    - dma-buf: Move dma_buf_release() from fops to dentry_ops
+    - irqchip/gic: Atomically update affinity
+    - mm, compaction: fully assume capture is not NULL in compact_zone_order()
+    - mm, compaction: make capture control handling safe wrt interrupts
+    - x86/resctrl: Fix memory bandwidth counter width for AMD
+    - dm zoned: assign max_io_len correctly
+    - [Config] updateconfigs for EFI_CUSTOM_SSDT_OVERLAYS
+    - efi: Make it possible to disable efivar_ssdt entirely
+    - Linux 5.4.51
+
+  * Focal update: v5.4.50 upstream stable release (LP: #1885942)
+    - block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed
+    - enetc: Fix tx rings bitmap iteration range, irq handling
+    - geneve: allow changing DF behavior after creation
+    - ibmveth: Fix max MTU limit
+    - mld: fix memory leak in ipv6_mc_destroy_dev()
+    - mvpp2: ethtool rxtx stats fix
+    - net: bridge: enfore alignment for ethernet address
+    - net: core: reduce recursion limit value
+    - net: Do not clear the sock TX queue in sk_set_socket()
+    - net: fix memleak in register_netdevice()
+    - net: Fix the arp error in some cases
+    - net: increment xmit_recursion level in dev_direct_xmit()
+    - net: usb: ax88179_178a: fix packet alignment padding
+    - openvswitch: take into account de-fragmentation/gso_size in
+      execute_check_pkt_len
+    - rocker: fix incorrect error handling in dma_rings_init
+    - rxrpc: Fix notification call on completion of discarded calls
+    - sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
+    - tcp: don't ignore ECN CWR on pure ACK
+    - tcp: grow window for OOO packets only for SACK flows
+    - tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes
+    - ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()
+    - net: phy: Check harder for errors in get_phy_id()
+    - ip_tunnel: fix use-after-free in ip_tunnel_lookup()
+    - sch_cake: don't try to reallocate or unshare skb unconditionally
+    - sch_cake: don't call diffserv parsing code when it is not needed
+    - sch_cake: fix a few style nits
+    - tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
+    - Revert "i2c: tegra: Fix suspending in active runtime PM state"
+    - btrfs: fix a block group ref counter leak after failure to remove block
+      group
+    - net: sched: export __netdev_watchdog_up()
+    - fix a braino in "sparc32: fix register window handling in
+      genregs32_[gs]et()"
+    - ALSA: usb-audio: Fix potential use-after-free of streams
+    - binder: fix null deref of proc->context
+    - USB: ohci-sm501: Add missed iounmap() in remove
+    - usb: dwc2: Postponed gadget registration to the udc class driver
+    - usb: add USB_QUIRK_DELAY_INIT for Logitech C922
+    - USB: ehci: reopen solution for Synopsys HC bug
+    - usb: host: xhci-mtk: avoid runtime suspend when removing hcd
+    - xhci: Poll for U0 after disabling USB2 LPM
+    - usb: host: ehci-exynos: Fix error check in exynos_ehci_probe()
+    - usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs
+    - ALSA: usb-audio: Add implicit feedback quirk for SSL2+.
+    - ALSA: usb-audio: add quirk for Denon DCD-1500RE
+    - ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG)
+    - ALSA: usb-audio: Fix OOB access of mixer element list
+    - usb: cdns3: trace: using correct dir value
+    - usb: cdns3: ep0: fix the test mode set incorrectly
+    - usb: cdns3: ep0: add spinlock for cdns3_check_new_setup
+    - scsi: qla2xxx: Keep initiator ports after RSCN
+    - scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action
+    - cifs: Fix cached_fid refcnt leak in open_shroot
+    - cifs/smb3: Fix data inconsistent when punch hole
+    - cifs/smb3: Fix data inconsistent when zero file range
+    - xhci: Fix incorrect EP_STATE_MASK
+    - xhci: Fix enumeration issue when setting max packet size for FS devices.
+    - xhci: Return if xHCI doesn't support LPM
+    - cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
+    - loop: replace kill_bdev with invalidate_bdev
+    - IB/mad: Fix use after free when destroying MAD agent
+    - IB/hfi1: Fix module use count flaw due to leftover module put calls
+    - bus: ti-sysc: Flush posted write on enable and disable
+    - bus: ti-sysc: Ignore clockactivity unless specified as a quirk
+    - ARM: OMAP2+: Fix legacy mode dss_reset
+    - xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
+    - ASoC: q6asm: handle EOS correctly
+    - efi/tpm: Verify event log header before parsing
+    - efi/esrt: Fix reference count leak in esre_create_sysfs_entry.
+    - ASoc: q6afe: add support to get port direction
+    - ASoC: qcom: common: set correct directions for dailinks
+    - regualtor: pfuze100: correct sw1a/sw2 on pfuze3000
+    - RDMA/siw: Fix pointer-to-int-cast warning in siw_rx_pbl()
+    - ASoC: fsl_ssi: Fix bclk calculation for mono channel
+    - samples/bpf: xdp_redirect_cpu: Set MAX_CPUS according to NR_CPUS
+    - bpf, xdp, samples: Fix null pointer dereference in *_user code
+    - ARM: dts: am335x-pocketbeagle: Fix mmc0 Write Protect
+    - ARM: dts: Fix duovero smsc interrupt for suspend
+    - x86/resctrl: Fix a NULL vs IS_ERR() static checker warning in
+      rdt_cdp_peer_get()
+    - regmap: Fix memory leak from regmap_register_patch
+    - devmap: Use bpf_map_area_alloc() for allocating hash buckets
+    - bpf: Don't return EINVAL from {get,set}sockopt when optlen > PAGE_SIZE
+    - ARM: dts: NSP: Correct FA2 mailbox node
+    - rxrpc: Fix handling of rwind from an ACK packet
+    - RDMA/rvt: Fix potential memory leak caused by rvt_alloc_rq
+    - RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532
+    - RDMA/cma: Protect bind_list and listen_list while finding matching cm id
+    - ASoC: rockchip: Fix a reference count leak.
+    - s390/qeth: fix error handling for isolation mode cmds
+    - RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads()
+    - selftests/net: report etf errors correctly
+    - iommu/vt-d: Enable PCI ACS for platform opt in hint
+    - iommu/vt-d: Update scalable mode paging structure coherency
+    - net: qed: fix left elements count calculation
+    - net: qed: fix async event callbacks unregistering
+    - net: qede: stop adding events on an already destroyed workqueue
+    - net: qed: fix NVMe login fails over VFs
+    - net: qed: fix excessive QM ILT lines consumption
+    - net: qede: fix PTP initialization on recovery
+    - net: qede: fix use-after-free on recovery and AER handling
+    - cxgb4: move handling L2T ARP failures to caller
+    - ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram()
+    - scsi: lpfc: Avoid another null dereference in lpfc_sli4_hba_unset()
+    - usb: gadget: udc: Potential Oops in error handling code
+    - usb: renesas_usbhs: getting residue from callback_result
+    - nvme: don't protect ns mutation with ns->head->lock
+    - netfilter: ipset: fix unaligned atomic access
+    - net: bcmgenet: use hardware padding of runt frames
+    - clk: sifive: allocate sufficient memory for struct __prci_data
+    - i2c: fsi: Fix the port number field in status register
+    - i2c: core: check returned size of emulated smbus block read
+    - afs: Fix storage of cell names
+    - sched/deadline: Initialize ->dl_boosted
+    - sched/core: Fix PI boosting between RT and DEADLINE tasks
+    - sata_rcar: handle pm_runtime_get_sync failure cases
+    - ata/libata: Fix usage of page address by page_address in
+      ata_scsi_mode_select_xlat function
+    - drm/amd/display: Use kfree() to free rgb_user in
+      calculate_user_regamma_ramp()
+    - riscv/atomic: Fix sign extension for RV64I
+    - hwrng: ks-sa - Fix runtime PM imbalance on error
+    - ibmvnic: Harden device login requests
+    - net: alx: fix race condition in alx_remove
+    - test_objagg: Fix potential memory leak in error handling
+    - pinctrl: qcom: spmi-gpio: fix warning about irq chip reusage
+    - pinctrl: tegra: Use noirq suspend/resume callbacks
+    - s390/ptrace: pass invalid syscall numbers to tracing
+    - s390/ptrace: fix setting syscall number
+    - s390/vdso: Use $(LD) instead of $(CC) to link vDSO
+    - s390/vdso: fix vDSO clock_getres()
+    - arm64: sve: Fix build failure when ARM64_SVE=y and SYSCTL=n
+    - kbuild: improve cc-option to clean up all temporary files
+    - recordmcount: support >64k sections
+    - kprobes: Suppress the suspicious RCU warning on kprobes
+    - blktrace: break out of blktrace setup on concurrent calls
+    - block: update hctx map when use multiple maps
+    - RISC-V: Don't allow write+exec only page mapping request in mmap
+    - ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table
+    - ALSA: hda/realtek - Add quirk for MSI GE63 laptop
+    - ACPI: sysfs: Fix pm_profile_attr type
+    - erofs: fix partially uninitialized misuse in z_erofs_onlinepage_fixup
+    - KVM: X86: Fix MSR range of APIC registers in X2APIC mode
+    - KVM: nVMX: Plumb L2 GPA through to PML emulation
+    - KVM: VMX: Stop context switching MSR_IA32_UMWAIT_CONTROL
+    - x86/cpu: Use pinning mask for CR4 bits needing to be 0
+    - x86/asm/64: Align start of __clear_user() loop to 16-bytes
+    - btrfs: fix bytes_may_use underflow when running balance and scrub in
+      parallel
+    - btrfs: fix data block group relocation failure due to concurrent scrub
+    - btrfs: check if a log root exists before locking the log_mutex on unlink
+    - btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof
+    - mm/slab: use memzero_explicit() in kzfree()
+    - ocfs2: avoid inode removal while nfsd is accessing it
+    - ocfs2: load global_inode_alloc
+    - ocfs2: fix value of OCFS2_INVALID_SLOT
+    - ocfs2: fix panic on nfs server over ocfs2
+    - mm/memcontrol.c: add missed css_put()
+    - arm64: perf: Report the PC value in REGS_ABI_32 mode
+    - arm64: dts: imx8mm-evk: correct ldo1/ldo2 voltage range
+    - arm64: dts: imx8mn-ddr4-evk: correct ldo1/ldo2 voltage range
+    - tracing: Fix event trigger to accept redundant spaces
+    - ring-buffer: Zero out time extend if it is nested and not absolute
+    - drm/amd: fix potential memleak in err branch
+    - drm: rcar-du: Fix build error
+    - drm/radeon: fix fb_div check in ni_init_smc_spll_table()
+    - drm/amdgpu: add fw release for sdma v5_0
+    - Staging: rtl8723bs: prevent buffer overflow in update_sta_support_rate()
+    - sunrpc: fixed rollback in rpc_gssd_dummy_populate()
+    - SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment()
+    - pNFS/flexfiles: Fix list corruption if the mirror count changes
+    - NFSv4 fix CLOSE not waiting for direct IO compeletion
+    - xprtrdma: Fix handling of RDMA_ERROR replies
+    - dm writecache: correct uncommitted_block when discarding uncommitted entry
+    - dm writecache: add cond_resched to loop in persistent_memory_claim()
+    - xfs: add agf freeblocks verify in xfs_agf_verify
+    - Revert "tty: hvc: Fix data abort due to race in hvc_open"
+    - Linux 5.4.50
+
+  * Focal update: v5.4.49 upstream stable release (LP: #1885322)
+    - power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select
+    - clk: sunxi: Fix incorrect usage of round_down()
+    - ASoC: tegra: tegra_wm8903: Support nvidia, headset property
+    - i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
+    - ASoC: SOF: imx8: Fix randbuild error
+    - iio: pressure: bmp280: Tolerate IRQ before registering
+    - remoteproc: Fix IDR initialisation in rproc_alloc()
+    - clk: qcom: msm8916: Fix the address location of pll->config_reg
+    - ASoC: fsl_esai: Disable exception interrupt before scheduling tasklet
+    - backlight: lp855x: Ensure regulators are disabled on probe failure
+    - ARM: dts: renesas: Fix IOMMU device node names
+    - ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type
+    - ARM: integrator: Add some Kconfig selections
+    - ARM: dts: stm32: Add missing ethernet PHY reset on AV96
+    - scsi: core: free sgtables in case command setup fails
+    - scsi: qedi: Check for buffer overflow in qedi_set_path()
+    - arm64: dts: meson: fixup SCP sram nodes
+    - ALSA: isa/wavefront: prevent out of bounds write in ioctl
+    - PCI: Allow pci_resize_resource() for devices on root bus
+    - scsi: qla2xxx: Fix issue with adapter's stopping state
+    - Input: edt-ft5x06 - fix get_default register write access
+    - powerpc/kasan: Fix stack overflow by increasing THREAD_SHIFT
+    - rtc: mc13xxx: fix a double-unlock issue
+    - iio: bmp280: fix compensation of humidity
+    - f2fs: report delalloc reserve as non-free in statfs for project quota
+    - i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
+    - remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use
+    - clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
+    - usblp: poison URBs upon disconnect
+    - serial: 8250: Fix max baud limit in generic 8250 port
+    - misc: fastrpc: Fix an incomplete memory release in fastrpc_rpmsg_probe()
+    - misc: fastrpc: fix potential fastrpc_invoke_ctx leak
+    - dm mpath: switch paths in dm_blk_ioctl() code path
+    - arm64: dts: armada-3720-turris-mox: forbid SDR104 on SDIO for FCC purposes
+    - arm64: dts: armada-3720-turris-mox: fix SFP binding
+    - arm64: dts: juno: Fix GIC child nodes
+    - pinctrl: ocelot: Fix GPIO interrupt decoding on Jaguar2
+    - clk: renesas: cpg-mssr: Fix STBCR suspend/resume handling
+    - ASoC: SOF: Do nothing when DSP PM callbacks are not set
+    - arm64: dts: fvp: Fix GIC child nodes
+    - PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only
+      register
+    - ps3disk: use the default segment boundary
+    - arm64: dts: fvp/juno: Fix node address fields
+    - vfio/pci: fix memory leaks in alloc_perm_bits()
+    - coresight: tmc: Fix TMC mode read in tmc_read_prepare_etb()
+    - RDMA/mlx5: Add init2init as a modify command
+    - scsi: hisi_sas: Do not reset phy timer to wait for stray phy up
+    - PCI: pci-bridge-emul: Fix PCIe bit conflicts
+    - m68k/PCI: Fix a memory leak in an error handling path
+    - gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-
+      registration
+    - usb: gadget: core: sync interrupt before unbind the udc
+    - powerpc/ptdump: Add _PAGE_COHERENT flag
+    - mfd: wm8994: Fix driver operation if loaded as modules
+    - scsi: cxgb3i: Fix some leaks in init_act_open()
+    - clk: zynqmp: fix memory leak in zynqmp_register_clocks
+    - scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
+    - scsi: vhost: Notify TCM about the maximum sg entries supported per command
+    - clk: clk-flexgen: fix clock-critical handling
+    - IB/mlx5: Fix DEVX support for MLX5_CMD_OP_INIT2INIT_QP command
+    - powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7
+      events run
+    - nfsd: Fix svc_xprt refcnt leak when setup callback client failed
+    - PCI: vmd: Filter resource type bits from shadow register
+    - RDMA/core: Fix several reference count leaks.
+    - cifs: set up next DFS target before generic_ip_connect()
+    - ASoC: qcom: q6asm-dai: kCFI fix
+    - powerpc/crashkernel: Take "mem=" option into account
+    - pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case
+    - sparc32: mm: Don't try to free page-table pages if ctor() fails
+    - yam: fix possible memory leak in yam_init_driver
+    - NTB: ntb_pingpong: Choose doorbells based on port number
+    - NTB: Fix the default port and peer numbers for legacy drivers
+    - mksysmap: Fix the mismatch of '.L' symbols in System.map
+    - apparmor: fix introspection of of task mode for unconfined tasks
+    - net: dsa: lantiq_gswip: fix and improve the unsupported interface error
+    - f2fs: handle readonly filesystem in f2fs_ioc_shutdown()
+    - ASoC: meson: add missing free_irq() in error path
+    - bpf, sockhash: Fix memory leak when unlinking sockets in sock_hash_free
+    - scsi: sr: Fix sr_probe() missing deallocate of device minor
+    - scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
+    - x86/purgatory: Disable various profiling and sanitizing options
+    - staging: greybus: fix a missing-check bug in gb_lights_light_config()
+    - arm64: dts: mt8173: fix unit name warnings
+    - scsi: qedi: Do not flush offload work if ARP not resolved
+    - arm64: dts: qcom: msm8916: remove unit name for thermal trip points
+    - ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
+    - RDMA/mlx5: Fix udata response upon SRQ creation
+    - gpio: dwapb: Append MODULE_ALIAS for platform driver
+    - scsi: qedf: Fix crash when MFW calls for protocol stats while function is
+      still probing
+    - pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries
+    - virtiofs: schedule blocking async replies in separate worker
+    - arm64: dts: qcom: fix pm8150 gpio interrupts
+    - firmware: qcom_scm: fix bogous abuse of dma-direct internals
+    - staging: gasket: Fix mapping refcnt leak when put attribute fails
+    - staging: gasket: Fix mapping refcnt leak when register/store fails
+    - ALSA: usb-audio: Improve frames size computation
+    - ALSA: usb-audio: Fix racy list management in output queue
+    - s390/qdio: put thinint indicator after early error
+    - tty: hvc: Fix data abort due to race in hvc_open
+    - slimbus: ngd: get drvdata from correct device
+    - clk: meson: meson8b: Fix the first parent of vid_pll_in_sel
+    - clk: meson: meson8b: Fix the polarity of the RESET_N lines
+    - clk: meson: meson8b: Fix the vclk_div{1, 2, 4, 6, 12}_en gate bits
+    - gpio: pca953x: fix handling of automatic address incrementing
+    - thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
+    - clk: meson: meson8b: Don't rely on u-boot to init all GP_PLL registers
+    - ASoC: max98373: reorder max98373_reset() in resume
+    - soundwire: slave: don't init debugfs on device registration error
+    - HID: intel-ish-hid: avoid bogus uninitialized-variable warning
+    - usb: dwc3: gadget: Properly handle ClearFeature(halt)
+    - usb: dwc3: gadget: Properly handle failed kick_transfer
+    - staging: wilc1000: Increase the size of wid_list array
+    - staging: sm750fb: add missing case while setting FB_VISUAL
+    - PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths
+    - i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
+    - serial: amba-pl011: Make sure we initialize the port.lock spinlock
+    - drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a
+      driver developer is foolish
+    - PCI: rcar: Fix incorrect programming of OB windows
+    - PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
+    - scsi: qla2xxx: Fix warning after FC target reset
+    - ALSA: firewire-lib: fix invalid assignment to union data for directional
+      parameter
+    - power: supply: lp8788: Fix an error handling path in
+      'lp8788_charger_probe()'
+    - power: supply: smb347-charger: IRQSTAT_D is volatile
+    - ASoC: SOF: core: fix error return code in sof_probe_continue()
+    - arm64: dts: msm8996: Fix CSI IRQ types
+    - scsi: target: loopback: Fix READ with data and sensebytes
+    - scsi: mpt3sas: Fix double free warnings
+    - SoC: rsnd: add interrupt support for SSI BUSIF buffer
+    - ASoC: ux500: mop500: Fix some refcounted resources issues
+    - ASoC: ti: omap-mcbsp: Fix an error handling path in 'asoc_mcbsp_probe()'
+    - pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
+    - dlm: remove BUG() before panic()
+    - USB: ohci-sm501: fix error return code in ohci_hcd_sm501_drv_probe()
+    - clk: ti: composite: fix memory leak
+    - PCI: Fix pci_register_host_bridge() device_register() error handling
+    - powerpc/64: Don't initialise init_task->thread.regs
+    - tty: n_gsm: Fix SOF skipping
+    - tty: n_gsm: Fix waking up upper tty layer when room available
+    - ALSA: usb-audio: Add duplex sound support for USB devices using implicit
+      feedback
+    - HID: Add quirks for Trust Panora Graphic Tablet
+    - PCI/PM: Assume ports without DLL Link Active train links in 100 ms
+    - habanalabs: increase timeout during reset
+    - ipmi: use vzalloc instead of kmalloc for user creation
+    - powerpc/64s/exception: Fix machine check no-loss idle wakeup
+    - powerpc/pseries/ras: Fix FWNMI_VALID off by one
+    - drivers: phy: sr-usb: do not use internal fsm for USB2 phy init
+    - powerpc/ps3: Fix kexec shutdown hang
+    - vfio-pci: Mask cap zero
+    - usb/ohci-platform: Fix a warning when hibernating
+    - drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
+    - ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet
+    - USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
+    - tty: n_gsm: Fix bogus i++ in gsm_data_kick
+    - fpga: dfl: afu: Corrected error handling levels
+    - clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
+    - RDMA/hns: Bugfix for querying qkey
+    - RDMA/hns: Fix cmdq parameter of querying pf timer resource
+    - scsi: target: tcmu: Userspace must not complete queued commands
+    - firmware: imx: scu: Fix possible memory leak in imx_scu_probe()
+    - fuse: fix copy_file_range cache issues
+    - fuse: copy_file_range should truncate cache
+    - arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
+    - arm64: tegra: Fix flag for 64-bit resources in 'ranges' property
+    - powerpc/64s/pgtable: fix an undefined behaviour
+    - dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
+    - PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
+    - PCI: dwc: Fix inner MSI IRQ domain registration
+    - PCI: amlogic: meson: Don't use FAST_LINK_MODE to set up link
+    - IB/cma: Fix ports memory leak in cma_configfs
+    - watchdog: da9062: No need to ping manually before setting timeout
+    - usb: dwc2: gadget: move gadget resume after the core is in L0 state
+    - USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in
+      s3c2410_udc_nuke
+    - usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
+    - usb: gadget: fix potential double-free in m66592_probe.
+    - usb: gadget: Fix issue with config_ep_by_speed function
+    - scripts: headers_install: Exit with error on config leak
+    - RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
+    - x86/apic: Make TSC deadline timer detection message visible
+    - mfd: stmfx: Reset chip on resume as supply was disabled
+    - mfd: stmfx: Fix stmfx_irq_init error path
+    - mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt
+    - powerpc/32s: Don't warn when mapping RO data ROX.
+    - ASoC: fix incomplete error-handling in img_i2s_in_probe.
+    - scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd()
+    - clk: bcm2835: Fix return type of bcm2835_register_gate
+    - scsi: ufs-qcom: Fix scheduling while atomic issue
+    - KVM: PPC: Book3S HV: Ignore kmemleak false positives
+    - KVM: PPC: Book3S: Fix some RCU-list locks
+    - clk: sprd: return correct type of value for _sprd_pll_recalc_rate
+    - clk: ast2600: Fix AHB clock divider for A1
+    - misc: xilinx-sdfec: improve get_user_pages_fast() error handling
+    - /dev/mem: Revoke mappings when a driver claims the region
+    - net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
+    - NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
+    - of: Fix a refcounting bug in __of_attach_node_sysfs()
+    - input: i8042 - Remove special PowerPC handling
+    - powerpc/4xx: Don't unmap NULL mbase
+    - extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()'
+    - ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
+    - vfio/mdev: Fix reference count leak in add_mdev_supported_type
+    - rtc: rv3028: Add missed check for devm_regmap_init_i2c()
+    - mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe()
+    - rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID
+    - openrisc: Fix issue with argument clobbering for clone/fork
+    - drm/nouveau/disp/gm200-: fix NV_PDISP_SOR_HDMI2_CTRL(n) selection
+    - ceph: don't return -ESTALE if there's still an open file
+    - nfsd4: make drc_slab global, not per-net
+    - gfs2: Allow lock_nolock mount to specify jid=X
+    - scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
+    - scsi: ufs: Don't update urgent bkops level when toggling auto bkops
+    - pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
+    - pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
+    - nfsd: safer handling of corrupted c_type
+    - drm/amd/display: Revalidate bandwidth before commiting DC updates
+    - crypto: omap-sham - add proper load balancing support for multicore
+    - geneve: change from tx_error to tx_dropped on missing metadata
+    - lib/zlib: remove outdated and incorrect pre-increment optimization
+    - include/linux/bitops.h: avoid clang shift-count-overflow warnings
+    - selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
+    - blktrace: use errno instead of bi_status
+    - blktrace: fix endianness in get_pdu_int()
+    - blktrace: fix endianness for blk_log_remap()
+    - gfs2: fix use-after-free on transaction ail lists
+    - net: marvell: Fix OF_MDIO config check
+    - ntb_perf: pass correct struct device to dma_alloc_coherent
+    - ntb_tool: pass correct struct device to dma_alloc_coherent
+    - NTB: ntb_tool: reading the link file should not end in a NULL byte
+    - NTB: Revert the change to use the NTB device dev for DMA allocations
+    - NTB: perf: Don't require one more memory window than number of peers
+    - NTB: perf: Fix support for hardware that doesn't have port numbers
+    - NTB: perf: Fix race condition when run with ntb_test
+    - NTB: ntb_test: Fix bug when counting remote files
+    - i2c: icy: Fix build with CONFIG_AMIGA_PCMCIA=n
+    - drivers/perf: hisi: Fix wrong value for all counters enable
+    - selftests/net: in timestamping, strncpy needs to preserve null byte
+    - f2fs: don't return vmalloc() memory from f2fs_kmalloc()
+    - afs: Fix memory leak in afs_put_sysnames()
+    - ASoC: core: only convert non DPCM link to DPCM link
+    - ASoC: SOF: nocodec: conditionally set dpcm_capture/dpcm_playback flags
+    - ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet
+    - ASoC: rt5645: Add platform-data for Asus T101HA
+    - bpf/sockmap: Fix kernel panic at __tcp_bpf_recvmsg
+    - bpf, sockhash: Synchronize delete from bucket list on map free
+    - tracing/probe: Fix bpf_task_fd_query() for kprobes and uprobes
+    - drm/sun4i: hdmi ddc clk: Fix size of m divider
+    - libbpf: Handle GCC noreturn-turned-volatile quirk
+    - scsi: acornscsi: Fix an error handling path in acornscsi_probe()
+    - x86/idt: Keep spurious entries unset in system_vectors
+    - net/filter: Permit reading NET in load_bytes_relative when MAC not set
+    - nvme-pci: use simple suspend when a HMB is enabled
+    - nfs: set invalid blocks after NFSv4 writes
+    - xdp: Fix xsk_generic_xmit errno
+    - iavf: fix speed reporting over virtchnl
+    - bpf: Fix memlock accounting for sock_hash
+    - usb/xhci-plat: Set PM runtime as active on resume
+    - usb: host: ehci-platform: add a quirk to avoid stuck
+    - usb/ehci-platform: Set PM runtime as active on resume
+    - perf report: Fix NULL pointer dereference in
+      hists__fprintf_nr_sample_events()
+    - perf stat: Fix NULL pointer dereference
+    - ext4: stop overwrite the errcode in ext4_setup_super
+    - bcache: fix potential deadlock problem in btree_gc_coalesce
+    - powerpc: Fix kernel crash in show_instructions() w/DEBUG_VIRTUAL
+    - afs: Fix non-setting of mtime when writing into mmap
+    - afs: afs_write_end() should change i_size under the right lock
+    - afs: Fix EOF corruption
+    - afs: Always include dir in bulk status fetch from afs_do_lookup()
+    - afs: Set error flag rather than return error from file status decode
+    - afs: Fix the mapping of the UAEOVERFLOW abort code
+    - bnxt_en: Return from timer if interface is not in open state.
+    - scsi: ufs-bsg: Fix runtime PM imbalance on error
+    - block: Fix use-after-free in blkdev_get()
+    - mvpp2: remove module bugfix
+    - arm64: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
+    - drm: encoder_slave: fix refcouting error for modules
+    - ext4: fix partial cluster initialization when splitting extent
+    - ext4: avoid utf8_strncasecmp() with unstable name
+    - drm/dp_mst: Reformat drm_dp_check_act_status() a bit
+    - drm/qxl: Use correct notify port address when creating cursor ring
+    - drm/amdgpu: Replace invalid device ID with a valid device ID
+    - selinux: fix double free
+    - jbd2: clean __jbd2_journal_abort_hard() and __journal_abort_soft()
+    - ext4: avoid race conditions when remounting with options that change dax
+    - drm/dp_mst: Increase ACT retry timeout to 3s
+    - drm/amd/display: Use swap() where appropriate
+    - x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
+    - block: nr_sects_write(): Disable preemption on seqcount write
+    - net/mlx5: DR, Fix freeing in dr_create_rc_qp()
+    - f2fs: split f2fs_d_compare() from f2fs_match_name()
+    - f2fs: avoid utf8_strncasecmp() with unstable name
+    - s390: fix syscall_get_error for compat processes
+    - drm/i915: Fix AUX power domain toggling across TypeC mode resets
+    - drm/msm: Check for powered down HW in the devfreq callbacks
+    - drm/i915/gem: Avoid iterating an empty list
+    - drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
+    - drm/connector: notify userspace on hotplug after register complete
+    - drm/amd/display: Use kvfree() to free coeff in build_regamma()
+    - drm/i915/icl+: Fix hotplug interrupt disabling after storm detection
+    - Revert "drm/amd/display: disable dcn20 abm feature for bring up"
+    - crypto: algif_skcipher - Cap recv SG list at ctx->used
+    - crypto: algboss - don't wait during notifier callback
+    - tracing/probe: Fix memleak in fetch_op_data operations
+    - kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
+    - kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
+    - e1000e: Do not wake up the system via WOL if device wakeup is disabled
+    - net: octeon: mgmt: Repair filling of RX ring
+    - pwm: jz4740: Enhance precision in calculation of duty cycle
+    - sched/rt, net: Use CONFIG_PREEMPTION.patch
+    - net: core: device_rename: Use rwsem instead of a seqcount
+    - Linux 5.4.49
+
+  * Computer is frozen after suspend (LP: #1867983) // Focal update: v5.4.49
+    upstream stable release (LP: #1885322)
+    - libata: Use per port sync for detach
+
+  * Focal update: v5.4.48 upstream stable release (LP: #1885023)
+    - ACPI: GED: use correct trigger type field in _Exx / _Lxx handling
+    - drm/amdgpu: fix and cleanup amdgpu_gem_object_close v4
+    - ath10k: Fix the race condition in firmware dump work queue
+    - drm: bridge: adv7511: Extend list of audio sample rates
+    - media: staging: imgu: do not hold spinlock during freeing mmu page table
+    - media: imx: imx7-mipi-csis: Cleanup and fix subdev pad format handling
+    - crypto: ccp -- don't "select" CONFIG_DMADEVICES
+    - media: vicodec: Fix error codes in probe function
+    - media: si2157: Better check for running tuner in init
+    - objtool: Ignore empty alternatives
+    - spi: spi-mem: Fix Dual/Quad modes on Octal-capable devices
+    - drm/amdgpu: Init data to avoid oops while reading pp_num_states.
+    - arm64/kernel: Fix range on invalidating dcache for boot page tables
+    - libbpf: Fix memory leak and possible double-free in hashmap__clear
+    - spi: pxa2xx: Apply CS clk quirk to BXT
+    - x86,smap: Fix smap_{save,restore}() alternatives
+    - sched/fair: Refill bandwidth before scaling
+    - net: atlantic: make hw_get_regs optional
+    - net: ena: fix error returning in ena_com_get_hash_function()
+    - efi/libstub/x86: Work around LLVM ELF quirk build regression
+    - ath10k: remove the max_sched_scan_reqs value
+    - arm64: cacheflush: Fix KGDB trap detection
+    - media: staging: ipu3: Fix stale list entries on parameter queue failure
+    - rtw88: fix an issue about leak system resources
+    - spi: dw: Zero DMA Tx and Rx configurations on stack
+    - ACPICA: Dispatcher: add status checks
+    - block: alloc map and request for new hardware queue
+    - arm64: insn: Fix two bugs in encoding 32-bit logical immediates
+    - block: reset mapping if failed to update hardware queue count
+    - drm: rcar-du: Set primary plane zpos immutably at initializing
+    - lockdown: Allow unprivileged users to see lockdown status
+    - ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
+    - platform/x86: dell-laptop: don't register micmute LED if there is no token
+    - MIPS: Loongson: Build ATI Radeon GPU driver as module
+    - Bluetooth: Add SCO fallback for invalid LMP parameters error
+    - kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
+    - kgdb: Prevent infinite recursive entries to the debugger
+    - pmu/smmuv3: Clear IRQ affinity hint on device removal
+    - ACPI/IORT: Fix PMCG node single ID mapping handling
+    - mips: Fix cpu_has_mips64r1/2 activation for MIPS32 CPUs
+    - spi: dw: Enable interrupts in accordance with DMA xfer mode
+    - clocksource: dw_apb_timer: Make CPU-affiliation being optional
+    - clocksource: dw_apb_timer_of: Fix missing clockevent timers
+    - media: dvbdev: Fix tuner->demod media controller link
+    - btrfs: account for trans_block_rsv in may_commit_transaction
+    - btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
+    - ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
+    - batman-adv: Revert "disable ethtool link speed detection when auto
+      negotiation off"
+    - ice: Fix memory leak
+    - ice: Fix for memory leaks and modify ICE_FREE_CQ_BUFS
+    - mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error
+    - Bluetooth: btmtkuart: Improve exception handling in btmtuart_probe()
+    - spi: dw: Fix Rx-only DMA transfers
+    - x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
+    - net: vmxnet3: fix possible buffer overflow caused by bad DMA value in
+      vmxnet3_get_rss()
+    - x86: fix vmap arguments in map_irq_stack
+    - staging: android: ion: use vmap instead of vm_map_ram
+    - ath10k: fix kernel null pointer dereference
+    - media: staging/intel-ipu3: Implement lock for stream on/off operations
+    - spi: Respect DataBitLength field of SpiSerialBusV2() ACPI resource
+    - brcmfmac: fix wrong location to get firmware feature
+    - regulator: qcom-rpmh: Fix typos in pm8150 and pm8150l
+    - tools api fs: Make xxx__mountpoint() more scalable
+    - e1000: Distribute switch variables for initialization
+    - dt-bindings: display: mediatek: control dpi pins mode to avoid leakage
+    - drm/mediatek: set dpi pin mode to gpio low to avoid leakage current
+    - audit: fix a net reference leak in audit_send_reply()
+    - media: dvb: return -EREMOTEIO on i2c transfer failure.
+    - media: platform: fcp: Set appropriate DMA parameters
+    - MIPS: Make sparse_init() using top-down allocation
+    - ath10k: add flush tx packets for SDIO chip
+    - Bluetooth: btbcm: Add 2 missing models to subver tables
+    - audit: fix a net reference leak in audit_list_rules_send()
+    - Drivers: hv: vmbus: Always handle the VMBus messages on CPU0
+    - dpaa2-eth: fix return codes used in ndo_setup_tc
+    - netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
+    - selftests/bpf: Fix memory leak in extract_build_id()
+    - net: bcmgenet: set Rx mode before starting netif
+    - net: bcmgenet: Fix WoL with password after deep sleep
+    - lib/mpi: Fix 64-bit MIPS build with Clang
+    - exit: Move preemption fixup up, move blocking operations down
+    - sched/core: Fix illegal RCU from offline CPUs
+    - drivers/perf: hisi: Fix typo in events attribute array
+    - iocost_monitor: drop string wrap around numbers when outputting json
+    - net: lpc-enet: fix error return code in lpc_mii_init()
+    - selinux: fix error return code in policydb_read()
+    - drivers: net: davinci_mdio: fix potential NULL dereference in
+      davinci_mdio_probe()
+    - media: cec: silence shift wrapping warning in __cec_s_log_addrs()
+    - net: allwinner: Fix use correct return type for ndo_start_xmit()
+    - powerpc/spufs: fix copy_to_user while atomic
+    - libertas_tf: avoid a null dereference in pointer priv
+    - xfs: clean up the error handling in xfs_swap_extents
+    - Crypto/chcr: fix for ccm(aes) failed test
+    - MIPS: Truncate link address into 32bit for 32bit kernel
+    - mips: cm: Fix an invalid error code of INTVN_*_ERR
+    - kgdb: Fix spurious true from in_dbg_master()
+    - xfs: reset buffer write failure state on successful completion
+    - xfs: fix duplicate verification from xfs_qm_dqflush()
+    - platform/x86: intel-vbtn: Use acpi_evaluate_integer()
+    - platform/x86: intel-vbtn: Split keymap into buttons and switches parts
+    - platform/x86: intel-vbtn: Do not advertise switches to userspace if they are
+      not there
+    - platform/x86: intel-vbtn: Also handle tablet-mode switch on "Detachable" and
+      "Portable" chassis-types
+    - iwlwifi: avoid debug max amsdu config overwriting itself
+    - nvme: refine the Qemu Identify CNS quirk
+    - nvme-pci: align io queue count with allocted nvme_queue in nvme_probe
+    - nvme-tcp: use bh_lock in data_ready
+    - ath10k: Remove msdu from idr when management pkt send fails
+    - wcn36xx: Fix error handling path in 'wcn36xx_probe()'
+    - net: qed*: Reduce RX and TX default ring count when running inside kdump
+      kernel
+    - drm/mcde: dsi: Fix return value check in mcde_dsi_bind()
+    - mt76: avoid rx reorder buffer overflow
+    - md: don't flush workqueue unconditionally in md_open
+    - raid5: remove gfp flags from scribble_alloc()
+    - iocost: don't let vrate run wild while there's no saturation signal
+    - veth: Adjust hard_start offset on redirect XDP frames
+    - net/mlx5e: IPoIB, Drop multicast packets that this interface sent
+    - rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
+    - mwifiex: Fix memory corruption in dump_station
+    - kgdboc: Use a platform device to handle tty drivers showing up late
+    - x86/boot: Correct relocation destination on old linkers
+    - sched: Defend cfs and rt bandwidth quota against overflow
+    - mips: MAAR: Use more precise address mask
+    - mips: Add udelay lpj numbers adjustment
+    - crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
+    - crypto: stm32/crc32 - fix run-time self test issue.
+    - crypto: stm32/crc32 - fix multi-instance
+    - drm/amd/powerpay: Disable gfxoff when setting manual mode on picasso and
+      raven
+    - drm/amdgpu: Sync with VM root BO when switching VM to CPU update mode
+    - selftests/bpf: CONFIG_IPV6_SEG6_BPF required for test_seg6_loop.o
+    - x86/mm: Stop printing BRK addresses
+    - MIPS: tools: Fix resource leak in elf-entry.c
+    - m68k: mac: Don't call via_flush_cache() on Mac IIfx
+    - btrfs: improve global reserve stealing logic
+    - btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new
+      qgroup
+    - macvlan: Skip loopback packets in RX handler
+    - PCI: Don't disable decoding when mmio_always_on is set
+    - MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
+    - bcache: fix refcount underflow in bcache_device_free()
+    - mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
+    - staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core
+    - mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core
+    - ice: fix potential double free in probe unrolling
+    - ixgbe: fix signed-integer-overflow warning
+    - iwlwifi: mvm: fix aux station leak
+    - mmc: sdhci-esdhc-imx: fix the mask for tuning start point
+    - spi: dw: Return any value retrieved from the dma_transfer callback
+    - cpuidle: Fix three reference count leaks
+    - platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
+    - platform/x86: intel-hid: Add a quirk to support HP Spectre X2 (2015)
+    - platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop"
+      chasis-type
+    - platform/x86: asus_wmi: Reserve more space for struct bias_args
+    - libbpf: Fix perf_buffer__free() API for sparse allocs
+    - bpf: Fix map permissions check
+    - bpf: Refactor sockmap redirect code so its easy to reuse
+    - bpf: Fix running sk_skb program types with ktls
+    - selftests/bpf, flow_dissector: Close TAP device FD after the test
+    - kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
+    - string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
+    - btrfs: free alien device after device add
+    - btrfs: include non-missing as a qualifier for the latest_bdev
+    - btrfs: send: emit file capabilities after chown
+    - btrfs: force chunk allocation if our global rsv is larger than metadata
+    - btrfs: fix error handling when submitting direct I/O bio
+    - btrfs: fix wrong file range cleanup after an error filling dealloc range
+    - btrfs: fix space_info bytes_may_use underflow after nocow buffered write
+    - btrfs: fix space_info bytes_may_use underflow during space cache writeout
+    - powerpc/mm: Fix conditions to perform MMU specific management by blocks on
+      PPC32.
+    - mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
+    - mm: initialize deferred pages with interrupts enabled
+    - mm/pagealloc.c: call touch_nmi_watchdog() on max order boundaries in
+      deferred init
+    - mm: call cond_resched() from deferred_init_memmap()
+    - ima: Fix ima digest hash table key calculation
+    - ima: Switch to ima_hash_algo for boot aggregate
+    - ima: Evaluate error in init_ima()
+    - ima: Directly assign the ima_default_policy pointer to ima_rules
+    - ima: Call ima_calc_boot_aggregate() in ima_eventdigest_init()
+    - ima: Remove __init annotation from ima_pcrread()
+    - evm: Fix possible memory leak in evm_calc_hmac_or_hash()
+    - ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
+    - ext4: fix error pointer dereference
+    - ext4: fix race between ext4_sync_parent() and rename()
+    - PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
+    - PCI: Add Loongson vendor ID
+    - x86/amd_nb: Add AMD family 17h model 60h PCI IDs
+    - ima: Remove redundant policy rule set in add_rules()
+    - ima: Set again build_ima_appraise variable
+    - PCI: Program MPS for RCiEP devices
+    - e1000e: Relax condition to trigger reset for ME workaround
+    - carl9170: remove P2P_GO support
+    - media: go7007: fix a miss of snd_card_free
+    - media: cedrus: Program output format during each run
+    - serial: 8250: Avoid error message on reprobe
+    - Bluetooth: hci_bcm: fix freeing not-requested IRQ
+    - b43legacy: Fix case where channel status is corrupted
+    - b43: Fix connection problem with WPA3
+    - b43_legacy: Fix connection problem with WPA3
+    - media: ov5640: fix use of destroyed mutex
+    - clk: mediatek: assign the initial value to clk_init_data of mtk_mux
+    - hwmon: (k10temp) Add AMD family 17h model 60h PCI match
+    - EDAC/amd64: Add AMD family 17h model 60h PCI IDs
+    - power: vexpress: add suppress_bind_attrs to true
+    - power: supply: core: fix HWMON temperature labels
+    - power: supply: core: fix memory leak in HWMON error path
+    - pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
+    - pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
+    - gnss: sirf: fix error return code in sirf_probe()
+    - sparc32: fix register window handling in genregs32_[gs]et()
+    - sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
+    - dm crypt: avoid truncating the logical block size
+    - alpha: fix memory barriers so that they conform to the specification
+    - powerpc/fadump: use static allocation for reserved memory ranges
+    - powerpc/fadump: consider reserved ranges while reserving memory
+    - powerpc/fadump: Account for memory_limit while reserving memory
+    - kernel/cpu_pm: Fix uninitted local in cpu_pm
+    - ARM: tegra: Correct PL310 Auxiliary Control Register initialization
+    - soc/tegra: pmc: Select GENERIC_PINCONF
+    - ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
+    - ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
+    - ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
+    - drivers/macintosh: Fix memleak in windfarm_pm112 driver
+    - powerpc/32s: Fix another build failure with CONFIG_PPC_KUAP_DEBUG
+    - powerpc/kasan: Fix issues by lowering KASAN_SHADOW_END
+    - powerpc/kasan: Fix shadow pages allocation failure
+    - powerpc/32: Disable KASAN with pages bigger than 16k
+    - powerpc/64s: Don't let DT CPU features set FSCR_DSCR
+    - powerpc/64s: Save FSCR to init_task.thread.fscr after feature init
+    - kbuild: force to build vmlinux if CONFIG_MODVERSION=y
+    - sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate
+      registrations.
+    - sunrpc: clean up properly in gss_mech_unregister()
+    - mtd: rawnand: Fix nand_gpio_waitrdy()
+    - mtd: rawnand: onfi: Fix redundancy detection check
+    - mtd: rawnand: brcmnand: fix hamming oob layout
+    - mtd: rawnand: diskonchip: Fix the probe error path
+    - mtd: rawnand: sharpsl: Fix the probe error path
+    - mtd: rawnand: ingenic: Fix the probe error path
+    - mtd: rawnand: xway: Fix the probe error path
+    - mtd: rawnand: orion: Fix the probe error path
+    - mtd: rawnand: socrates: Fix the probe error path
+    - mtd: rawnand: oxnas: Fix the probe error path
+    - mtd: rawnand: sunxi: Fix the probe error path
+    - mtd: rawnand: plat_nand: Fix the probe error path
+    - mtd: rawnand: pasemi: Fix the probe error path
+    - mtd: rawnand: mtk: Fix the probe error path
+    - mtd: rawnand: tmio: Fix the probe error path
+    - w1: omap-hdq: cleanup to add missing newline for some dev_dbg
+    - f2fs: fix checkpoint=disable:%u%%
+    - perf probe: Do not show the skipped events
+    - perf probe: Fix to check blacklist address correctly
+    - perf probe: Check address correctness by map instead of _etext
+    - perf symbols: Fix debuginfo search for Ubuntu
+    - perf symbols: Fix kernel maps for kcore and eBPF
+    - Linux 5.4.48
+
+  * The thread level parallelism would be a bottleneck when searching for the
+    shared pmd by using hugetlbfs (LP: #1882039)
+    - hugetlbfs: take read_lock on i_mmap for PMD sharing
+
+  * Support Audio Mute LED for two new HP laptops (LP: #1884251)
+    - ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems
+
+  * Focal update: v5.4.47 upstream stable release (LP: #1884089)
+    - ipv6: fix IPV6_ADDRFORM operation logic
+    - mlxsw: core: Use different get_trend() callbacks for different thermal zones
+    - net_failover: fixed rollback in net_failover_open()
+    - tun: correct header offsets in napi frags mode
+    - bridge: Avoid infinite loop when suppressing NS messages with invalid
+      options
+    - vxlan: Avoid infinite loop when suppressing NS messages with invalid options
+    - bpf: Support llvm-objcopy for vmlinux BTF
+    - elfnote: mark all .note sections SHF_ALLOC
+    - Input: mms114 - fix handling of mms345l
+    - ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
+    - sched/fair: Don't NUMA balance for kthreads
+    - Input: synaptics - add a second working PNP_ID for Lenovo T470s
+    - csky: Fixup abiv2 syscall_trace break a4 & a5
+    - gfs2: Even more gfs2_find_jhead fixes
+    - drivers/net/ibmvnic: Update VNIC protocol version reporting
+    - powerpc/xive: Clear the page tables for the ESB IO mapping
+    - spi: dw: Fix native CS being unset
+    - ath9k_htc: Silence undersized packet warnings
+    - smack: avoid unused 'sip' variable warning
+    - RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated
+    - padata: add separate cpuhp node for CPUHP_PADATA_DEAD
+    - s390/pci: Log new handle in clp_disable_fh()
+    - x86/cpu/amd: Make erratum #1054 a legacy erratum
+    - KVM: x86: only do L1TF workaround on affected processors
+    - PCI/PM: Adjust pcie_wait_for_link_delay() for caller delay
+    - perf probe: Accept the instance number of kretprobe event
+    - mm: add kvfree_sensitive() for freeing sensitive data objects
+    - selftests: fix flower parent qdisc
+    - fanotify: fix ignore mask logic for events on child and on dir
+    - aio: fix async fsync creds
+    - ipv4: fix a RCU-list lock in fib_triestat_seq_show
+    - iwlwifi: mvm: fix NVM check for 3168 devices
+    - sctp: fix possibly using a bad saddr with a given dst
+    - sctp: fix refcount bug in sctp_wfree
+    - x86_64: Fix jiffies ODR violation
+    - x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs
+    - x86/speculation: Prevent rogue cross-process SSBD shutdown
+    - x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced
+      IBRS.
+    - x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches.
+    - x86/reboot/quirks: Add MacBook6,1 reboot quirk
+    - perf/x86/intel: Add more available bits for OFFCORE_RESPONSE of Intel
+      Tremont
+    - KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be generated
+    - KVM: x86: respect singlestep when emulating instruction
+    - KVM: x86: Fix APIC page invalidation race
+    - powerpc/ptdump: Properly handle non standard page size
+    - ASoC: max9867: fix volume controls
+    - io_uring: use kvfree() in io_sqe_buffer_register()
+    - efi/efivars: Add missing kobject_put() in sysfs entry creation error path
+    - smb3: fix incorrect number of credits when ioctl MaxOutputResponse > 64K
+    - smb3: add indatalen that can be a non-zero value to calculation of credit
+      charge in smb2 ioctl
+    - watchdog: imx_sc_wdt: Fix reboot on crash
+    - ALSA: es1688: Add the missed snd_card_free()
+    - ALSA: fireface: fix configuration error for nominal sampling transfer
+      frequency
+    - ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines
+    - ALSA: pcm: disallow linking stream to itself
+    - ALSA: pcm: fix snd_pcm_link() lockdep splat
+    - ALSA: usb-audio: Fix inconsistent card PM state after resume
+    - ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt
+      Dock
+    - ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
+    - ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
+    - ACPI: GED: add support for _Exx / _Lxx handler methods
+    - ACPI: PM: Avoid using power resources if there are none for D0
+    - arm64: acpi: fix UBSAN warning
+    - lib/lzo: fix ambiguous encoding bug in lzo-rle
+    - nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
+    - spi: dw: Fix controller unregister order
+    - spi: Fix controller unregister order
+    - spi: pxa2xx: Fix controller unregister order
+    - spi: pxa2xx: Fix runtime PM ref imbalance on probe error
+    - spi: bcm2835: Fix controller unregister order
+    - spi: bcm2835aux: Fix controller unregister order
+    - spi: bcm-qspi: Handle clock probe deferral
+    - spi: bcm-qspi: when tx/rx buffer is NULL set to 0
+    - PM: runtime: clk: Fix clk_pm_runtime_get() error path
+    - gup: document and work around "COW can break either way" issue
+    - crypto: cavium/nitrox - Fix 'nitrox_get_first_device()' when ndevlist is
+      fully iterated
+    - crypto: algapi - Avoid spurious modprobe on LOADED
+    - crypto: drbg - fix error return code in drbg_alloc_state()
+    - x86/{mce,mm}: Unmap the entire page if the whole page is affected and
+      poisoned
+    - firmware: imx: warn on unexpected RX
+    - firmware: imx-scu: Support one TX and one RX
+    - firmware: imx: scu: Fix corruption of header
+    - crypto: virtio: Fix use-after-free in virtio_crypto_skcipher_finalize_req()
+    - crypto: virtio: Fix src/dst scatterlist calculation in
+      __virtio_crypto_skcipher_do_req()
+    - crypto: virtio: Fix dest length calculation in
+      __virtio_crypto_skcipher_do_req()
+    - dccp: Fix possible memleak in dccp_init and dccp_fini
+    - selftests/net: in rxtimestamp getopt_long needs terminating null entry
+    - net/mlx5: drain health workqueue in case of driver load error
+    - net/mlx5: Fix fatal error handling during device load
+    - net/mlx5e: Fix repeated XSK usage on one channel
+    - ovl: initialize error in ovl_copy_xattr
+    - proc: Use new_inode not new_inode_pseudo
+    - remoteproc: Fall back to using parent memory pool if no dedicated available
+    - remoteproc: Fix and restore the parenting hierarchy for vdev
+    - cpufreq: Fix up cpufreq_boost_set_sw()
+    - EDAC/skx: Use the mcmtr register to retrieve close_pg/bank_xor_enable
+    - video: vt8500lcdfb: fix fallthrough warning
+    - video: fbdev: w100fb: Fix a potential double free.
+    - KVM: nVMX: Skip IBPB when switching between vmcs01 and vmcs02
+    - KVM: nSVM: fix condition for filtering async PF
+    - KVM: nSVM: leave ASID aside in copy_vmcb_control_area
+    - KVM: nVMX: Consult only the "basic" exit reason when routing nested exit
+    - KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
+    - KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
+    - KVM: arm64: Stop writing aarch32's CSSELR into ACTLR
+    - KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
+    - scsi: megaraid_sas: TM command refire leads to controller firmware crash
+    - scsi: lpfc: Fix negation of else clause in lpfc_prep_node_fc4type
+    - selftests/ftrace: Return unsupported if no error_log file
+    - ath9k: Fix use-after-free Read in htc_connect_service
+    - ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
+    - ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
+    - ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
+    - ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
+    - Smack: slab-out-of-bounds in vsscanf
+    - drm/vkms: Hold gem object while still in-use
+    - mm/slub: fix a memory leak in sysfs_slab_add()
+    - fat: don't allow to mount if the FAT length == 0
+    - perf: Add cond_resched() to task_function_call()
+    - agp/intel: Reinforce the barrier after GTT updates
+    - mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
+    - mmc: mmci_sdmmc: fix DMA API warning overlapping mappings
+    - mmc: tmio: Further fixup runtime PM management at remove
+    - mmc: uniphier-sd: call devm_request_irq() after tmio_mmc_host_probe()
+    - ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description
+    - mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card()
+    - mmc: sdio: Fix several potential memory leaks in mmc_sdio_init_card()
+    - block/floppy: fix contended case in floppy_queue_rq()
+    - xen/pvcalls-back: test for errors when calling backend_connect()
+    - KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception
+    - KVM: arm64: Save the host's PtrAuth keys in non-preemptible context
+    - Linux 5.4.47
+
+  * apparmor reference leak causes refcount_t overflow with af_alg_accept()
+    (LP: #1883962)
+    - apparmor: check/put label on apparmor_sk_clone_security()
+
+  * Focal update: v5.4.46 upstream stable release (LP: #1883184)
+    - devinet: fix memleak in inetdev_init()
+    - l2tp: add sk_family checks to l2tp_validate_socket
+    - l2tp: do not use inet_hash()/inet_unhash()
+    - net/mlx5: Fix crash upon suspend/resume
+    - net: stmmac: enable timestamp snapshot for required PTP packets in dwmac
+      v5.10a
+    - net: usb: qmi_wwan: add Telit LE910C1-EUX composition
+    - NFC: st21nfca: add missed kfree_skb() in an error path
+    - nfp: flower: fix used time of merge flow statistics
+    - vsock: fix timeout in vsock_accept()
+    - net: check untrusted gso_size at kernel entry
+    - net: be more gentle about silly gso requests coming from user
+    - USB: serial: qcserial: add DW5816e QDL support
+    - USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
+    - USB: serial: option: add Telit LE910C1-EUX compositions
+    - USB: serial: ch341: add basis for quirk detection
+    - iio:chemical:sps30: Fix timestamp alignment
+    - iio: vcnl4000: Fix i2c swapped word reading.
+    - iio:chemical:pms7003: Fix timestamp alignment and prevent data leak.
+    - iio: adc: stm32-adc: fix a wrong error message when probing interrupts
+    - usb: musb: start session in resume for host port
+    - usb: musb: Fix runtime PM imbalance on error
+    - vt: keyboard: avoid signed integer overflow in k_ascii
+    - tty: hvc_console, fix crashes on parallel open/close
+    - staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
+    - CDC-ACM: heed quirk also in error handling
+    - nvmem: qfprom: remove incorrect write support
+    - uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly
+      aligned
+    - Revert "net/mlx5: Annotate mutex destroy for root ns"
+    - Linux 5.4.46
+
+  * Focal update: v5.4.45 upstream stable release (LP: #1882802)
+    - mm: Fix mremap not considering huge pmd devmap
+    - HID: sony: Fix for broken buttons on DS3 USB dongles
+    - HID: multitouch: enable multi-input as a quirk for some devices
+    - HID: i2c-hid: add Schneider SCL142ALM to descriptor override
+    - p54usb: add AirVasT USB stick device-id
+    - mt76: mt76x02u: Add support for newer versions of the XBox One wifi adapter
+    - mmc: fix compilation of user API
+    - media: Revert "staging: imgu: Address a compiler warning on alignment"
+    - media: staging: ipu3-imgu: Move alignment attribute to field
+    - scsi: ufs: Release clock if DMA map fails
+    - net: dsa: mt7530: set CPU port to fallback mode
+    - airo: Fix read overflows sending packets
+    - RDMA/qedr: Fix qpids xarray api used
+    - RDMA/qedr: Fix synchronization methods and memory leaks in qedr
+    - ARC: Fix ICCM & DCCM runtime size checks
+    - ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
+    - evm: Fix RCU list related warnings
+    - scsi: pm: Balance pm_only counter of request queue during system resume
+    - i2c: altera: Fix race between xfer_msg and isr thread
+    - io_uring: initialize ctx->sqo_wait earlier
+    - x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
+    - net: bmac: Fix read of MAC address from ROM
+    - drm/edid: Add Oculus Rift S to non-desktop list
+    - s390/mm: fix set_huge_pte_at() for empty ptes
+    - null_blk: return error for invalid zone size
+    - net/ethernet/freescale: rework quiesce/activate for ucc_geth
+    - net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
+    - selftests: mlxsw: qos_mc_aware: Specify arping timeout as an integer
+    - net: smsc911x: Fix runtime PM imbalance on error
+    - Linux 5.4.45
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Sat, 08 Aug 2020 02:05:56 -0400
+
+linux (5.4.0-42.46) focal; urgency=medium
+
+  * focal/linux: 5.4.0-42.46 -proposed tracker (LP: #1887069)
+
+  * linux 4.15.0-109-generic network DoS regression vs -108 (LP: #1886668)
+    - SAUCE: Revert "netprio_cgroup: Fix unlimited memory leak of v2 cgroups"
+
+ -- Khalid Elmously <khalid.elmously@canonical.com>  Thu, 09 Jul 2020 19:50:26 -0400
+
+linux (5.4.0-41.45) focal; urgency=medium
+
+  * focal/linux: 5.4.0-41.45 -proposed tracker (LP: #1885855)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * CVE-2019-19642
+    - kernel/relay.c: handle alloc_percpu returning NULL in relay_open
+
+  * CVE-2019-16089
+    - SAUCE: nbd_genl_status: null check for nla_nest_start
+
+  * CVE-2020-11935
+    - aufs: do not call i_readcount_inc()
+
+  * ip_defrag.sh in net from ubuntu_kernel_selftests failed with 5.0 / 5.3 / 5.4
+    kernel (LP: #1826848)
+    - selftests: net: ip_defrag: ignore EPERM
+
+  * Update lockdown patches (LP: #1884159)
+    - SAUCE: acpi: disallow loading configfs acpi tables when locked down
+
+  * seccomp_bpf fails on powerpc (LP: #1885757)
+    - SAUCE: selftests/seccomp: fix ptrace tests on powerpc
+
+  * Introduce the new NVIDIA 418-server and 440-server series, and update the
+    current NVIDIA drivers (LP: #1881137)
+    - [packaging] add signed modules for the 418-server and the 440-server
+      flavours
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 03 Jul 2020 10:32:54 +0200
+
+linux (5.4.0-40.44) focal; urgency=medium
+
+  * linux-oem-5.6-tools-common and -tools-host should be dropped (LP: #1881120)
+    - [Packaging] Add Conflicts/Replaces to remove linux-oem-5.6-tools-common and
+      -tools-host
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Slow send speed with Intel I219-V on Ubuntu 18.04.1 (LP: #1802691)
+    - e1000e: Disable TSO for buffer overrun workaround
+
+  * CVE-2020-0543
+    - UBUNTU/SAUCE: x86/speculation/srbds: do not try to turn mitigation off when
+      not supported
+
+  * Realtek 8723DE [10ec:d723] subsystem [10ec:d738]  disconnects unsolicitedly
+    when Bluetooth is paired: Reason: 23=IEEE8021X_FAILED (LP: #1878147)
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: Move driver IQK to set channel before
+      association for 11N chip"
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: fix rate for a while after being
+      connected"
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: No retry and report for auth and assoc"
+    - SAUCE: Revert "UBUNTU: SAUCE: rtw88: 8723d: Add coex support"
+    - rtw88: add a debugfs entry to dump coex's info
+    - rtw88: add a debugfs entry to enable/disable coex mechanism
+    - rtw88: 8723d: Add coex support
+    - SAUCE: rtw88: coex: 8723d: set antanna control owner
+    - SAUCE: rtw88: coex: 8723d: handle BT inquiry cases
+    - SAUCE: rtw88: fix EAPOL 4-way failure by finish IQK earlier
+
+  * CPU stress test fails with focal kernel (LP: #1867900)
+    - [Config] Disable hisi_sec2 temporarily
+
+  * Enforce all config annotations (LP: #1879327)
+    - [Config]: do not enforce CONFIG_VERSION_SIGNATURE
+    - [Config]: prepare to enforce all
+    - [Config]: enforce all config options
+
+  * Focal update: v5.4.44 upstream stable release (LP: #1881927)
+    - ax25: fix setsockopt(SO_BINDTODEVICE)
+    - dpaa_eth: fix usage as DSA master, try 3
+    - net: don't return invalid table id error when we fall back to PF_UNSPEC
+    - net: dsa: mt7530: fix roaming from DSA user ports
+    - net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend
+    - __netif_receive_skb_core: pass skb by reference
+    - net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*
+    - net: ipip: fix wrong address family in init error path
+    - net/mlx5: Add command entry handling completion
+    - net: mvpp2: fix RX hashing for non-10G ports
+    - net: nlmsg_cancel() if put fails for nhmsg
+    - net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
+    - net: revert "net: get rid of an signed integer overflow in
+      ip_idents_reserve()"
+    - net sched: fix reporting the first-time use timestamp
+    - net/tls: fix race condition causing kernel panic
+    - nexthop: Fix attribute checking for groups
+    - r8152: support additional Microsoft Surface Ethernet Adapter variant
+    - sctp: Don't add the shutdown timer if its already been added
+    - sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and
+      socket is closed
+    - tipc: block BH before using dst_cache
+    - net/mlx5e: kTLS, Destroy key object after destroying the TIS
+    - net/mlx5e: Fix inner tirs handling
+    - net/mlx5: Fix memory leak in mlx5_events_init
+    - net/mlx5e: Update netdev txq on completions during closure
+    - net/mlx5: Fix error flow in case of function_setup failure
+    - net/mlx5: Annotate mutex destroy for root ns
+    - net/tls: fix encryption error checking
+    - net/tls: free record only on encryption error
+    - net: sun: fix missing release regions in cas_init_one().
+    - net/mlx4_core: fix a memory leak bug.
+    - mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload
+      fails
+    - ARM: dts: rockchip: fix phy nodename for rk3228-evb
+    - ARM: dts: rockchip: fix phy nodename for rk3229-xms6
+    - arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
+    - arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
+    - ARM: dts: rockchip: swap clock-names of gpu nodes
+    - ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
+    - gpio: tegra: mask GPIO IRQs during IRQ shutdown
+    - ALSA: usb-audio: add mapping for ASRock TRX40 Creator
+    - net: microchip: encx24j600: add missed kthread_stop
+    - gfs2: move privileged user check to gfs2_quota_lock_check
+    - gfs2: Grab glock reference sooner in gfs2_add_revoke
+    - drm/amdgpu: drop unnecessary cancel_delayed_work_sync on PG ungate
+    - drm/amd/powerplay: perform PG ungate prior to CG ungate
+    - drm/amdgpu: Use GEM obj reference for KFD BOs
+    - cachefiles: Fix race between read_waiter and read_copier involving op->to_do
+    - usb: dwc3: pci: Enable extcon driver for Intel Merrifield
+    - usb: phy: twl6030-usb: Fix a resource leak in an error handling path in
+      'twl6030_usb_probe()'
+    - usb: gadget: legacy: fix redundant initialization warnings
+    - net: freescale: select CONFIG_FIXED_PHY where needed
+    - IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
+    - riscv: stacktrace: Fix undefined reference to `walk_stackframe'
+    - clk: ti: am33xx: fix RTC clock parent
+    - csky: Fixup msa highest 3 bits mask
+    - csky: Fixup perf callchain unwind
+    - csky: Fixup remove duplicate irq_disable
+    - hwmon: (nct7904) Fix incorrect range of temperature limit registers
+    - cifs: Fix null pointer check in cifs_read
+    - csky: Fixup raw_copy_from_user()
+    - samples: bpf: Fix build error
+    - drivers: net: hamradio: Fix suspicious RCU usage warning in bpqether.c
+    - Input: usbtouchscreen - add support for BonXeon TP
+    - Input: evdev - call input_flush_device() on release(), not flush()
+    - Input: xpad - add custom init packet for Xbox One S controllers
+    - Input: dlink-dir685-touchkeys - fix a typo in driver name
+    - Input: i8042 - add ThinkPad S230u to i8042 reset list
+    - Input: synaptics-rmi4 - really fix attn_data use-after-free
+    - Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
+    - ARM: 8970/1: decompressor: increase tag size
+    - ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
+    - ARM: uaccess: integrate uaccess_save and uaccess_restore
+    - ARM: uaccess: fix DACR mismatch with nested exceptions
+    - gpio: exar: Fix bad handling for ida_simple_get error path
+    - arm64: dts: mt8173: fix vcodec-enc clock
+    - soc: mediatek: cmdq: return send msg error code
+    - gpu/drm: Ingenic: Fix opaque pointer casted to wrong type
+    - IB/qib: Call kobject_put() when kobject_init_and_add() fails
+    - ARM: dts/imx6q-bx50v3: Set display interface clock parents
+    - ARM: dts: bcm2835-rpi-zero-w: Fix led polarity
+    - ARM: dts: bcm: HR2: Fix PPI interrupt types
+    - mmc: block: Fix use-after-free issue for rpmb
+    - gpio: pxa: Fix return value of pxa_gpio_probe()
+    - gpio: bcm-kona: Fix return value of bcm_kona_gpio_probe()
+    - RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
+    - ALSA: hwdep: fix a left shifting 1 by 31 UB bug
+    - ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
+    - ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
+    - exec: Always set cap_ambient in cap_bprm_set_creds
+    - clk: qcom: gcc: Fix parent for gpll0_out_even
+    - ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio
+    - ALSA: hda/realtek - Add new codec supported for ALC287
+    - libceph: ignore pool overlay and cache logic on redirects
+    - ceph: flush release queue when handling caps for unknown inode
+    - RDMA/core: Fix double destruction of uobject
+    - drm/amd/display: drop cursor position check in atomic test
+    - IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode
+    - mm,thp: stop leaking unreleased file pages
+    - mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
+    - fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
+    - include/asm-generic/topology.h: guard cpumask_of_node() macro argument
+    - Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and
+      REQ_NOWAIT"
+    - gpio: fix locking open drain IRQ lines
+    - iommu: Fix reference count leak in iommu_group_alloc.
+    - parisc: Fix kernel panic in mem_init()
+    - cfg80211: fix debugfs rename crash
+    - x86/syscalls: Revert "x86/syscalls: Make __X32_SYSCALL_BIT be unsigned long"
+    - mac80211: mesh: fix discovery timer re-arming issue / crash
+    - x86/dma: Fix max PFN arithmetic overflow on 32 bit systems
+    - copy_xstate_to_kernel(): don't leave parts of destination uninitialized
+    - xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
+    - xfrm: do pskb_pull properly in __xfrm_transport_prep
+    - xfrm: remove the xfrm_state_put call becofe going to out_reset
+    - xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
+    - xfrm interface: fix oops when deleting a x-netns interface
+    - xfrm: fix a warning in xfrm_policy_insert_list
+    - xfrm: fix a NULL-ptr deref in xfrm_local_error
+    - xfrm: fix error in comment
+    - ip_vti: receive ipip packet by calling ip_tunnel_rcv
+    - netfilter: nft_reject_bridge: enable reject with bridge vlan
+    - netfilter: ipset: Fix subcounter update skip
+    - netfilter: conntrack: make conntrack userspace helpers work again
+    - netfilter: nfnetlink_cthelper: unbreak userspace helper support
+    - netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
+    - esp6: get the right proto for transport mode in esp6_gso_encap
+    - bnxt_en: Fix accumulation of bp->net_stats_prev.
+    - ieee80211: Fix incorrect mask for default PE duration
+    - xsk: Add overflow check for u64 division, stored into u32
+    - qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
+    - crypto: chelsio/chtls: properly set tp->lsndtime
+    - nexthops: Move code from remove_nexthop_from_groups to remove_nh_grp_entry
+    - nexthops: don't modify published nexthop groups
+    - nexthop: Expand nexthop_is_multipath in a few places
+    - ipv4: nexthop version of fib_info_nh_uses_dev
+    - net: dsa: declare lockless TX feature for slave ports
+    - bonding: Fix reference count leak in bond_sysfs_slave_add.
+    - netfilter: conntrack: comparison of unsigned in cthelper confirmation
+    - netfilter: conntrack: Pass value of ctinfo to __nf_conntrack_update
+    - netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
+    - perf: Make perf able to build with latest libbfd
+    - Linux 5.4.44
+
+  * Focal update: v5.4.43 upstream stable release (LP: #1881178)
+    - i2c: dev: Fix the race between the release of i2c_dev and cdev
+    - KVM: SVM: Fix potential memory leak in svm_cpu_init()
+    - ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
+    - evm: Check also if *tfm is an error pointer in init_desc()
+    - ima: Fix return value of ima_write_policy()
+    - ubifs: fix wrong use of crypto_shash_descsize()
+    - ACPI: EC: PM: Avoid flushing EC work when EC GPE is inactive
+    - mtd: spinand: Propagate ECC information to the MTD structure
+    - fix multiplication overflow in copy_fdtable()
+    - ubifs: remove broken lazytime support
+    - i2c: fix missing pm_runtime_put_sync in i2c_device_probe
+    - iommu/amd: Fix over-read of ACPI UID from IVRS table
+    - evm: Fix a small race in init_desc()
+    - i2c: mux: demux-pinctrl: Fix an error handling path in
+      'i2c_demux_pinctrl_probe()'
+    - ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
+    - afs: Don't unlock fetched data pages until the op completes successfully
+    - mtd: Fix mtd not registered due to nvmem name collision
+    - kbuild: avoid concurrency issue in parallel building dtbs and dtbs_check
+    - net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()
+    - gcc-common.h: Update for GCC 10
+    - HID: multitouch: add eGalaxTouch P80H84 support
+    - HID: alps: Add AUI1657 device ID
+    - HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead
+    - scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
+    - scsi: qla2xxx: Delete all sessions before unregister local nvme port
+    - configfs: fix config_item refcnt leak in configfs_rmdir()
+    - vhost/vsock: fix packet delivery order to monitoring devices
+    - aquantia: Fix the media type of AQC100 ethernet controller in the driver
+    - component: Silence bind error on -EPROBE_DEFER
+    - net/ena: Fix build warning in ena_xdp_set()
+    - scsi: ibmvscsi: Fix WARN_ON during event pool release
+    - HID: i2c-hid: reset Synaptics SYNA2393 on resume
+    - x86/mm/cpa: Flush direct map alias during cpa
+    - ibmvnic: Skip fatal error reset after passive init
+    - x86/apic: Move TSC deadline timer debug printk
+    - gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
+    - HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock
+    - ceph: fix double unlock in handle_cap_export()
+    - stmmac: fix pointer check after utilization in stmmac_interrupt
+    - USB: core: Fix misleading driver bug report
+    - platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
+    - iommu/amd: Call domain_flush_complete() in update_domain()
+    - drm/amd/display: Prevent dpcd reads with passive dongles
+    - KVM: selftests: Fix build for evmcs.h
+    - ARM: futex: Address build warning
+    - scripts/gdb: repair rb_first() and rb_last()
+    - ALSA: hda - constify and cleanup static NodeID tables
+    - ALSA: hda: patch_realtek: fix empty macro usage in if block
+    - ALSA: hda: Manage concurrent reg access more properly
+    - ALSA: hda/realtek - Add supported new mute Led for HP
+    - ALSA: hda/realtek - Add HP new mute led supported for ALC236
+    - ALSA: hda/realtek: Add quirk for Samsung Notebook
+    - ALSA: hda/realtek - Enable headset mic of ASUS GL503VM with ALC295
+    - ALSA: hda/realtek - Enable headset mic of ASUS UX550GE with ALC295
+    - ALSA: hda/realtek: Enable headset mic of ASUS UX581LV with ALC295
+    - KVM: x86: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c
+    - ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio
+      option
+    - ALSA: pcm: fix incorrect hw_base increase
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme
+    - ALSA: hda/realtek - Add more fixup entries for Clevo machines
+    - scsi: qla2xxx: Do not log message when reading port speed via sysfs
+    - scsi: target: Put lun_ref at end of tmr processing
+    - arm64: Fix PTRACE_SYSEMU semantics
+    - drm/etnaviv: fix perfmon domain interation
+    - apparmor: Fix aa_label refcnt leak in policy_update
+    - dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
+    - drm/etnaviv: Fix a leak in submit_pin_objects()
+    - dmaengine: dmatest: Restore default for channel
+    - dmaengine: owl: Use correct lock in owl_dma_get_pchan()
+    - vsprintf: don't obfuscate NULL and error pointers
+    - drm/i915/gvt: Init DPLL/DDI vreg for virtual display instead of inheritance.
+    - drm/i915: Propagate error from completed fences
+    - powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
+    - powerpc/64s: Disable STRICT_KERNEL_RWX
+    - bpf: Avoid setting bpf insns pages read-only when prog is jited
+    - kbuild: Remove debug info from kallsyms linking
+    - Revert "gfs2: Don't demote a glock until its revokes are written"
+    - media: fdp1: Fix R-Car M3-N naming in debug message
+    - staging: iio: ad2s1210: Fix SPI reading
+    - staging: kpc2000: fix error return code in kp2000_pcie_probe()
+    - staging: greybus: Fix uninitialized scalar variable
+    - iio: sca3000: Remove an erroneous 'get_device()'
+    - iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
+    - iio: adc: ti-ads8344: Fix channel selection
+    - misc: rtsx: Add short delay after exit from ASPM
+    - tty: serial: add missing spin_lock_init for SiFive serial console
+    - mei: release me_cl object reference
+    - ipack: tpci200: fix error return code in tpci200_register()
+    - s390/kaslr: add support for R_390_JMP_SLOT relocation type
+    - device-dax: don't leak kernel memory to user space after unloading kmem
+    - rapidio: fix an error in get_user_pages_fast() error handling
+    - kasan: disable branch tracing for core runtime
+    - rxrpc: Fix the excessive initial retransmission timeout
+    - rxrpc: Fix a memory leak in rxkad_verify_response()
+    - s390/kexec_file: fix initrd location for kdump kernel
+    - flow_dissector: Drop BPF flow dissector prog ref on netns cleanup
+    - x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
+    - iio: adc: stm32-adc: Use dma_request_chan() instead
+      dma_request_slave_channel()
+    - iio: adc: stm32-adc: fix device used to request dma
+    - iio: adc: stm32-dfsdm: Use dma_request_chan() instead
+      dma_request_slave_channel()
+    - iio: adc: stm32-dfsdm: fix device used to request dma
+    - rxrpc: Trace discarded ACKs
+    - rxrpc: Fix ack discard
+    - tpm: check event log version before reading final events
+    - sched/fair: Reorder enqueue/dequeue_task_fair path
+    - sched/fair: Fix reordering of enqueue/dequeue_task_fair()
+    - sched/fair: Fix enqueue_task_fair() warning some more
+    - Linux 5.4.43
+
+  * Focal update: v5.4.42 upstream stable release (LP: #1879759)
+    - net: dsa: Do not make user port errors fatal
+    - shmem: fix possible deadlocks on shmlock_user_lock
+    - net: phy: microchip_t1: add lan87xx_phy_init to initialize the lan87xx phy.
+    - KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read
+    - gpio: pca953x: Fix pca953x_gpio_set_config
+    - SUNRPC: Add "@len" parameter to gss_unwrap()
+    - SUNRPC: Fix GSS privacy computation of auth->au_ralign
+    - net/sonic: Fix a resource leak in an error handling path in
+      'jazz_sonic_probe()'
+    - net: moxa: Fix a potential double 'free_irq()'
+    - ftrace/selftests: workaround cgroup RT scheduling issues
+    - drop_monitor: work around gcc-10 stringop-overflow warning
+    - virtio-blk: handle block_device_operations callbacks after hot unplug
+    - sun6i: dsi: fix gcc-4.8
+    - net_sched: fix tcm_parent in tc filter dump
+    - scsi: sg: add sg_remove_request in sg_write
+    - mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
+    - dpaa2-eth: properly handle buffer size restrictions
+    - net: fix a potential recursive NETDEV_FEAT_CHANGE
+    - netlabel: cope with NULL catmap
+    - net: phy: fix aneg restart in phy_ethtool_set_eee
+    - net: stmmac: fix num_por initialization
+    - pppoe: only process PADT targeted at local interfaces
+    - Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
+    - tcp: fix error recovery in tcp_zerocopy_receive()
+    - tcp: fix SO_RCVLOWAT hangs with fat skbs
+    - virtio_net: fix lockdep warning on 32 bit
+    - dpaa2-eth: prevent array underflow in update_cls_rule()
+    - hinic: fix a bug of ndo_stop
+    - net: dsa: loop: Add module soft dependency
+    - net: ipv4: really enforce backoff for redirects
+    - netprio_cgroup: Fix unlimited memory leak of v2 cgroups
+    - net: tcp: fix rx timestamp behavior for tcp_recvmsg
+    - nfp: abm: fix error return code in nfp_abm_vnic_alloc()
+    - r8169: re-establish support for RTL8401 chip version
+    - umh: fix memory leak on execve failure
+    - riscv: fix vdso build with lld
+    - dmaengine: pch_dma.c: Avoid data race between probe and irq handler
+    - dmaengine: mmp_tdma: Do not ignore slave config validation errors
+    - dmaengine: mmp_tdma: Reset channel error on release
+    - selftests/ftrace: Check the first record for kprobe_args_type.tc
+    - cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
+    - ALSA: hda/hdmi: fix race in monitor detection during probe
+    - drm/amd/powerplay: avoid using pm_en before it is initialized revised
+    - drm/amd/display: check if REFCLK_CNTL register is present
+    - drm/amd/display: Update downspread percent to match spreadsheet for DCN2.1
+    - drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
+    - drm/amdgpu: simplify padding calculations (v2)
+    - drm/amdgpu: invalidate L2 before SDMA IBs (v2)
+    - ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
+    - gfs2: Another gfs2_walk_metadata fix
+    - mmc: sdhci-pci-gli: Fix no irq handler from suspend
+    - IB/hfi1: Fix another case where pq is left on waitlist
+    - ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake()
+    - pinctrl: sunrisepoint: Fix PAD lock register offset for SPT-H
+    - pinctrl: baytrail: Enable pin configuration setting for GPIO chip
+    - pinctrl: qcom: fix wrong write in update_dual_edge
+    - pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
+    - bpf: Fix error return code in map_lookup_and_delete_elem()
+    - ALSA: firewire-lib: fix 'function sizeof not defined' error of tracepoints
+      format
+    - i40iw: Fix error handling in i40iw_manage_arp_cache()
+    - drm/i915: Don't enable WaIncreaseLatencyIPCEnabled when IPC is disabled
+    - bpf, sockmap: msg_pop_data can incorrecty set an sge length
+    - bpf, sockmap: bpf_tcp_ingress needs to subtract bytes from sg.size
+    - mmc: alcor: Fix a resource leak in the error path for ->probe()
+    - mmc: sdhci-pci-gli: Fix can not access GL9750 after reboot from Windows 10
+    - mmc: core: Check request type before completing the request
+    - mmc: core: Fix recursive locking issue in CQE recovery path
+    - mmc: block: Fix request completion in the CQE timeout path
+    - gfs2: More gfs2_find_jhead fixes
+    - fork: prevent accidental access to clone3 features
+    - drm/amdgpu: force fbdev into vram
+    - NFS: Fix fscache super_cookie index_key from changing after umount
+    - nfs: fscache: use timespec64 in inode auxdata
+    - NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
+    - netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
+    - drm/i915/gvt: Fix kernel oops for 3-level ppgtt guest
+    - arm64: fix the flush_icache_range arguments in machine_kexec
+    - nfs: fix NULL deference in nfs4_get_valid_delegation
+    - SUNRPC: Signalled ASYNC tasks need to exit
+    - netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
+    - netfilter: nft_set_rbtree: Add missing expired checks
+    - RDMA/rxe: Always return ERR_PTR from rxe_create_mmap_info()
+    - IB/mlx4: Test return value of calls to ib_get_cached_pkey
+    - IB/core: Fix potential NULL pointer dereference in pkey cache
+    - RDMA/core: Fix double put of resource
+    - RDMA/iw_cxgb4: Fix incorrect function parameters
+    - hwmon: (da9052) Synchronize access with mfd
+    - s390/ism: fix error return code in ism_probe()
+    - mm, memcg: fix inconsistent oom event behavior
+    - NFSv3: fix rpc receive buffer size for MOUNT call
+    - pnp: Use list_for_each_entry() instead of open coding
+    - net/rds: Use ERR_PTR for rds_message_alloc_sgs()
+    - Stop the ad-hoc games with -Wno-maybe-initialized
+    - [Config] updateconfigs for CC_HAS_WARN_MAYBE_UNINITIALIZED
+    - gcc-10: disable 'zero-length-bounds' warning for now
+    - gcc-10: disable 'array-bounds' warning for now
+    - gcc-10: disable 'stringop-overflow' warning for now
+    - gcc-10: disable 'restrict' warning for now
+    - gcc-10 warnings: fix low-hanging fruit
+    - gcc-10: mark more functions __init to avoid section mismatch warnings
+    - gcc-10: avoid shadowing standard library 'free()' in crypto
+    - usb: usbfs: correct kernel->user page attribute mismatch
+    - USB: usbfs: fix mmap dma mismatch
+    - ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
+    - ALSA: hda/realtek - Add COEF workaround for ASUS ZenBook UX431DA
+    - ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
+    - ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
+    - usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
+    - usb: host: xhci-plat: keep runtime active when removing host
+    - usb: cdns3: gadget: prev_req->trb is NULL for ep0
+    - usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
+    - Make the "Reducing compressed framebufer size" message be DRM_INFO_ONCE()
+    - ARM: dts: dra7: Fix bus_dma_limit for PCIe
+    - ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
+    - ARM: dts: imx6dl-yapp4: Fix Ursa board Ethernet connection
+    - drm/amd/display: add basic atomic check for cursor plane
+    - powerpc/32s: Fix build failure with CONFIG_PPC_KUAP_DEBUG
+    - cifs: fix leaked reference on requeued write
+    - x86: Fix early boot crash on gcc-10, third try
+    - x86/unwind/orc: Fix error handling in __unwind_start()
+    - exec: Move would_dump into flush_old_exec
+    - clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
+    - dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
+    - fanotify: fix merging marks masks with FAN_ONDIR
+    - usb: gadget: net2272: Fix a memory leak in an error handling path in
+      'net2272_plat_probe()'
+    - usb: gadget: audio: Fix a missing error return value in audio_bind()
+    - usb: gadget: legacy: fix error return code in gncm_bind()
+    - usb: gadget: legacy: fix error return code in cdc_bind()
+    - clk: Unlink clock if failed to prepare or enable
+    - arm64: dts: meson-g12b-khadas-vim3: add missing frddr_a status property
+    - arm64: dts: meson-g12-common: fix dwc2 clock names
+    - arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328
+      boards
+    - arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
+    - arm64: dts: imx8mn: Change SDMA1 ahb clock for imx8mn
+    - ARM: dts: r8a73a4: Add missing CMT1 interrupts
+    - arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes
+    - ARM: dts: r8a7740: Add missing extal2 to CPG node
+    - SUNRPC: Revert 241b1f419f0e ("SUNRPC: Remove xdr_buf_trim()")
+    - bpf: Fix sk_psock refcnt leak when receiving message
+    - KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
+    - Makefile: disallow data races on gcc-10 as well
+    - Linux 5.4.42
+
+  * upgrading to 4.15.0-99-generic breaks the sound and the trackpad
+    (LP: #1875916) // Focal update: v5.4.42 upstream stable release
+    (LP: #1879759)
+    - Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
+
+  * Pop sound from build-in speaker during cold boot and resume from S3
+    (LP: #1866357) // Focal update: v5.4.42 upstream stable release
+    (LP: #1879759)
+    - ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
+
+  * tpm: fix TIS locality timeout problems (LP: #1881710)
+    - SAUCE: tpm: fix TIS locality timeout problems
+
+  * [UBUNTU 20.04] s390x/pci: fix linking between PF and VF for multifunction
+    devices (LP: #1879704)
+    - PCI/IOV: Introduce pci_iov_sysfs_link() function
+    - s390/pci: create links between PFs and VFs
+
+  * Performing function level reset of AMD onboard USB and audio devices causes
+    system lockup (LP: #1865988)
+    - SAUCE: PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
+    - SAUCE: PCI: Avoid FLR for AMD Starship USB 3.0
+
+  * seccomp_benchmark times out on eoan (LP: #1881576)
+    - SAUCE: selftests/seccomp: use 90s as timeout
+
+  * ASoC/amd: add audio driver for amd renoir (LP: #1881046)
+    - ASoC: amd: add Renoir ACP3x IP register header
+    - ASoC: amd: add Renoir ACP PCI driver
+    - ASoC: amd: add acp init/de-init functions
+    - ASoC: amd: create acp3x pdm platform device
+    - ASoC: amd: add ACP3x PDM platform driver
+    - ASoC: amd: irq handler changes for ACP3x PDM dma driver
+    - ASoC: amd: add acp3x pdm driver dma ops
+    - ASoC: amd: add ACP PDM DMA driver dai ops
+    - ASoC: amd: add Renoir ACP PCI driver PM ops
+    - ASoC: amd: add ACP PDM DMA driver pm ops
+    - ASoC: amd: enable Renoir acp3x drivers build
+    - ASoC: amd: create platform devices for Renoir
+    - ASoC: amd: RN machine driver using dmic
+    - ASoC: amd: enable build for RN machine driver
+    - ASoC: amd: fix kernel warning
+    - ASoC: amd: refactoring dai_hw_params() callback
+    - ASoC: amd: return error when acp de-init fails
+    - [Config]: enable amd renoir ASoC audio
+
+  * Fix for secure boot rules in IMA arch policy on powerpc (LP: #1877955)
+    - powerpc/ima: Fix secure boot rules in ima arch policy
+
+  * [UBUNTU 20.04] s390x/pci: s390_pci_mmio_write/read fail when MIO
+    instructions are available (LP: #1874055)
+    - s390/pci: Fix s390_mmio_read/write with MIO
+
+  * security: lockdown: remove trailing semicolon before function body
+    (LP: #1880660)
+    - SAUCE: (lockdown) security: lockdown: remove trailing semicolon before
+      function body
+
+  * Fix incorrect speed/duplex when I210 device is runtime suspended
+    (LP: #1880656)
+    - igb: Report speed and duplex as unknown when device is runtime suspended
+
+  * [OMEN by HP Laptop 15-dh0xxx, Realtek ALC285, Black Mic, Left] Recording
+    problem (LP: #1874698)
+    - ASoC: SOF: Intel: hda: allow operation without i915 gfx
+    - ASoC: intel/skl/hda - add no-HDMI cases to generic HDA driver
+
+  * CVE-2020-13143
+    - USB: gadget: fix illegal array access in binding with UDC
+
+  * rtl8723bu wifi issue after being turned off (LP: #1878296)
+    - rtl8xxxu: Improve TX performance of RTL8723BU on rtl8xxxu driver
+    - rtl8xxxu: add bluetooth co-existence support for single antenna
+    - rtl8xxxu: remove set but not used variable 'rate_mask'
+    - rtl8xxxu: Remove set but not used variable 'vif', 'dev', 'len'
+
+  * Fix Pericom USB controller OHCI/EHCI PME# defect (LP: #1879321)
+    - serial: 8250_pci: Move Pericom IDs to pci_ids.h
+    - PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
+
+  * shiftfs: fix btrfs snapshot deletion (LP: #1879688)
+    - SAUCE: shiftfs: let userns root destroy subvolumes from other users
+
+  * [UBUNTU 20.04] s390x/pci: enumerate pci functions per physical adapter
+    (LP: #1874056)
+    - s390/pci: Improve handling of unset UID
+    - s390/pci: embedding hotplug_slot in zdev
+    - s390/pci: Expose new port attribute for PCIe functions
+    - s390/pci: adaptation of iommu to multifunction
+    - s390/pci: define kernel parameters for PCI multifunction
+    - s390/pci: define RID and RID available
+    - s390/pci: create zPCI bus
+    - s390/pci: adapt events for zbus
+    - s390/pci: Handling multifunctions
+    - s390/pci: Do not disable PF when VFs exist
+    - s390/pci: Documentation for zPCI
+    - s390/pci: removes wrong PCI multifunction assignment
+
+  * update-initramfs complains of missing amdgpu firmware files (LP: #1873325)
+    - SAUCE: drm/amdgpu: Remove unreleased arcturus and navi12 firmware from
+      modinfo
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Mon, 22 Jun 2020 17:59:17 -0300
+
+linux (5.4.0-39.43) focal; urgency=medium
+
+  * dkms-build: downloads fail in private PPAs (LP: #1883874)
+    - dkms-build: apt-cache policy elides username:password information
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Fri, 19 Jun 2020 11:56:47 +0200
+
+linux (5.4.0-37.41) focal; urgency=medium
+
+  * CVE-2020-0543
+    - SAUCE: x86/speculation/spectre_v2: Exclude Zhaoxin CPUs from SPECTRE_V2
+    - SAUCE: x86/cpu: Add a steppings field to struct x86_cpu_id
+    - SAUCE: x86/cpu: Add 'table' argument to cpu_matches()
+    - SAUCE: x86/speculation: Add Special Register Buffer Data Sampling (SRBDS)
+      mitigation
+    - SAUCE: x86/speculation: Add SRBDS vulnerability and mitigation documentation
+    - SAUCE: x86/speculation: Add Ivy Bridge to affected list
+
+ -- Marcelo Henrique Cerri <marcelo.cerri@canonical.com>  Wed, 03 Jun 2020 11:24:23 -0300
+
+linux (5.4.0-34.38) focal; urgency=medium
+
+  * focal/linux: 5.4.0-34.38 -proposed tracker (LP: #1880118)
+
+  * debian/scripts/file-downloader does not handle positive failures correctly
+    (LP: #1878897)
+    - [Packaging] file-downloader not handling positive failures correctly
+
+  * Focal update: v5.4.41 upstream stable release (LP: #1878649)
+    - USB: serial: qcserial: Add DW5816e support
+    - nvme: refactor nvme_identify_ns_descs error handling
+    - nvme: fix possible hang when ns scanning fails during error recovery
+    - tracing/kprobes: Fix a double initialization typo
+    - net: macb: Fix runtime PM refcounting
+    - drm/amdgpu: move kfd suspend after ip_suspend_phase1
+    - drm/amdgpu: drop redundant cg/pg ungate on runpm enter
+    - vt: fix unicode console freeing with a common interface
+    - tty: xilinx_uartps: Fix missing id assignment to the console
+    - devlink: fix return value after hitting end in region read
+    - dp83640: reverse arguments to list_add_tail
+    - fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
+    - ipv6: Use global sernum for dst validation with nexthop objects
+    - mlxsw: spectrum_acl_tcam: Position vchunk in a vregion list properly
+    - neigh: send protocol value in neighbor create notification
+    - net: dsa: Do not leave DSA master with NULL netdev_ops
+    - net: macb: fix an issue about leak related system resources
+    - net: macsec: preserve ingress frame ordering
+    - net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
+    - net_sched: sch_skbprio: add message validation to skbprio_change()
+    - net: stricter validation of untrusted gso packets
+    - net: tc35815: Fix phydev supported/advertising mask
+    - net/tls: Fix sk_psock refcnt leak in bpf_exec_tx_verdict()
+    - net/tls: Fix sk_psock refcnt leak when in tls_data_ready()
+    - net: usb: qmi_wwan: add support for DW5816e
+    - nfp: abm: fix a memory leak bug
+    - sch_choke: avoid potential panic in choke_reset()
+    - sch_sfq: validate silly quantum values
+    - tipc: fix partial topology connection closure
+    - tunnel: Propagate ECT(1) when decapsulating as recommended by RFC6040
+    - bnxt_en: Fix VF anti-spoof filter setup.
+    - bnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF.
+    - bnxt_en: Improve AER slot reset.
+    - bnxt_en: Return error when allocating zero size context memory.
+    - bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
+    - net/mlx5: DR, On creation set CQ's arm_db member to right value
+    - net/mlx5: Fix forced completion access non initialized command entry
+    - net/mlx5: Fix command entry leak in Internal Error State
+    - net: mvpp2: prevent buffer overflow in mvpp22_rss_ctx()
+    - net: mvpp2: cls: Prevent buffer overflow in mvpp2_ethtool_cls_rule_del()
+    - HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
+    - sctp: Fix bundling of SHUTDOWN with COOKIE-ACK
+    - Revert "HID: wacom: generic: read the number of expected touches on a per
+      collection basis"
+    - HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
+    - HID: wacom: Report 2nd-gen Intuos Pro S center button status over BT
+    - USB: uas: add quirk for LaCie 2Big Quadra
+    - usb: chipidea: msm: Ensure proper controller reset using role switch API
+    - USB: serial: garmin_gps: add sanity checking for data length
+    - tracing: Add a vmalloc_sync_mappings() for safe measure
+    - crypto: arch/nhpoly1305 - process in explicit 4k chunks
+    - KVM: s390: Remove false WARN_ON_ONCE for the PQAP instruction
+    - KVM: VMX: Explicitly clear RFLAGS.CF and RFLAGS.ZF in VM-Exit RSB path
+    - KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER
+    - KVM: arm64: Fix 32bit PC wrap-around
+    - arm64: hugetlb: avoid potential NULL dereference
+    - drm: ingenic-drm: add MODULE_DEVICE_TABLE
+    - ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
+    - epoll: atomically remove wait entry on wake up
+    - eventpoll: fix missing wakeup for ovflist in ep_poll_callback
+    - mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
+    - mm: limit boost_watermark on small zones
+    - ceph: demote quotarealm lookup warning to a debug message
+    - staging: gasket: Check the return value of gasket_get_bar_index()
+    - coredump: fix crash when umh is disabled
+    - iocost: protect iocg->abs_vdebt with iocg->waitq.lock
+    - batman-adv: fix batadv_nc_random_weight_tq
+    - batman-adv: Fix refcnt leak in batadv_show_throughput_override
+    - batman-adv: Fix refcnt leak in batadv_store_throughput_override
+    - batman-adv: Fix refcnt leak in batadv_v_ogm_process
+    - x86/entry/64: Fix unwind hints in register clearing code
+    - x86/entry/64: Fix unwind hints in kernel exit path
+    - x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
+    - x86/unwind/orc: Don't skip the first frame for inactive tasks
+    - x86/unwind/orc: Prevent unwinding before ORC initialization
+    - x86/unwind/orc: Fix error path for bad ORC entry type
+    - x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
+    - KVM: x86: Fixes posted interrupt check for IRQs delivery modes
+    - arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in sev_pin_memory()
+    - netfilter: nat: never update the UDP checksum when it's 0
+    - netfilter: nf_osf: avoid passing pointer to local var
+    - objtool: Fix stack offset tracking for indirect CFAs
+    - iommu/virtio: Reverse arguments to list_add
+    - scripts/decodecode: fix trapping instruction formatting
+    - mm, memcg: fix error return value of mem_cgroup_css_alloc()
+    - bdi: move bdi_dev_name out of line
+    - bdi: add a ->dev_name field to struct backing_dev_info
+    - fsnotify: replace inode pointer with an object id
+    - fanotify: merge duplicate events on parent and child
+    - Linux 5.4.41
+
+  * Intel GPU Hangs : random screen freezing w/ Ubuntu 20.04 (Linux 5.4)
+    i915_active_acquire (LP: #1868551)
+    - drm/i915: Hold reference to intel_frontbuffer as we track activity
+    - drm/i915: fix uninitialized pointer reads on pointers to and from
+
+  * Kernel panic due to NULL ringbuffer vaddr dereference in i915 (LP: #1877394)
+    - Revert "UBUNTU: SAUCE: drm/i915: Synchronize active and retire callbacks"
+    - drm/i915/gt: Make intel_ring_unpin() safe for concurrent pint
+
+  * add 16-bit width registers support for EEPROM at24 device (LP: #1876699)
+    - regmap-i2c: add 16-bit width registers support
+
+  * [UBUNTU 20.04] PSI generates overhead on s390x (LP: #1876044)
+    - Ubuntu: [Config] Set CONFIG_PSI_DEFAULT_DISABLED=y on s390x
+
+  * Focal update: v5.4.40 upstream stable release (LP: #1878040)
+    - vhost: vsock: kick send_pkt worker once device is started
+    - drm/bridge: analogix_dp: Split bind() into probe() and real bind()
+    - ASoC: topology: Check return value of soc_tplg_create_tlv
+    - ASoC: topology: Check return value of soc_tplg_*_create
+    - ASoC: topology: Check soc_tplg_add_route return value
+    - ASoC: topology: Check return value of pcm_new_ver
+    - ASoC: topology: Check return value of soc_tplg_dai_config
+    - selftests/ipc: Fix test failure seen after initial test run
+    - ASoC: sgtl5000: Fix VAG power-on handling
+    - ASoC: topology: Fix endianness issue
+    - usb: dwc3: gadget: Properly set maxpacket limit
+    - ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode
+    - ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
+    - ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
+    - remoteproc: qcom_q6v5_mss: fix a bug in q6v5_probe()
+    - drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay
+      table v0 (e.g Hawaii)
+    - wimax/i2400m: Fix potential urb refcnt leak
+    - net: stmmac: fix enabling socfpga's ptp_ref_clock
+    - net: stmmac: Fix sub-second increment
+    - ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent
+    - ASoC: rsnd: Fix "status check failed" spam for multi-SSI
+    - cifs: protect updating server->dstaddr with a spinlock
+    - scripts/config: allow colons in option strings for sed
+    - cifs: do not share tcons with DFS
+    - tracing: Fix memory leaks in trace_events_hist.c
+    - lib/mpi: Fix building for powerpc with clang
+    - mac80211: sta_info: Add lockdep condition for RCU list usage
+    - net: bcmgenet: suppress warnings on failed Rx SKB allocations
+    - net: systemport: suppress warnings on failed Rx SKB allocations
+    - drm/i915: Extend WaDisableDARBFClkGating to icl,ehl,tgl
+    - sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
+    - Revert "software node: Simplify software_node_release() function"
+    - hexagon: clean up ioremap
+    - hexagon: define ioremap_uc
+    - ALSA: hda: Match both PCI ID and SSID for driver blacklist
+    - x86/kvm: fix a missing-prototypes "vmread_error"
+    - platform/x86: GPD pocket fan: Fix error message when temp-limits are out of
+      range
+    - ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late()
+    - mac80211: add ieee80211_is_any_nullfunc()
+    - cgroup, netclassid: remove double cond_resched
+    - libbpf: Fix readelf output parsing for Fedora
+    - mm/mremap: Add comment explaining the untagging behaviour of mremap()
+    - Revert "drm/amd/display: setting the DIG_MODE to the correct value."
+    - tools headers UAPI: Sync copy of arm64's asm/unistd.h with the kernel
+      sources
+    - udp: document udp_rcv_segment special case for looped packets
+    - PM / devfreq: Add missing locking while setting suspend_freq
+    - Linux 5.4.40
+
+  * Focal update: v5.4.39 upstream stable release (LP: #1877592)
+    - dma-buf: Fix SET_NAME ioctl uapi
+    - drm/edid: Fix off-by-one in DispID DTD pixel clock
+    - drm/amd/display: Fix green screen issue after suspend
+    - drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
+    - drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
+    - drm/qxl: qxl_release use after free
+    - NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION
+    - btrfs: fix transaction leak in btrfs_recover_relocation
+    - btrfs: fix block group leak when removing fails
+    - btrfs: fix partial loss of prealloc extent past i_size after fsync
+    - btrfs: transaction: Avoid deadlock due to bad initialization timing of
+      fs_info::journal_info
+    - mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout
+      loop
+    - mmc: sdhci-xenon: fix annoying 1.8V regulator warning
+    - mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
+    - mmc: sdhci-msm: Enable host capabilities pertains to R1b response
+    - mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY
+    - mmc: meson-mx-sdio: remove the broken ->card_busy() op
+    - crypto: caam - fix the address of the last entry of S/G
+    - ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
+    - ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID
+    - ALSA: hda/hdmi: fix without unlocked before return
+    - ALSA: line6: Fix POD HD500 audio playback
+    - ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
+    - i2c: amd-mp2-pci: Fix Oops in amd_mp2_pci_init() error handling
+    - Drivers: hv: vmbus: Fix Suspend-to-Idle for Generation-2 VM
+    - dlmfs_file_write(): fix the bogosity in handling non-zero *ppos
+    - IB/rdmavt: Always return ERR_PTR from rvt_create_mmap_info()
+    - PM: ACPI: Output correct message on target power state
+    - PM: hibernate: Freeze kernel threads in software_resume()
+    - dm verity fec: fix hash block number in verity_fec_decode
+    - dm writecache: fix data corruption when reloading the target
+    - dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath
+    - ARM: dts: imx6qdl-sr-som-ti: indicate powering off wifi is safe
+    - scsi: qla2xxx: set UNLOADING before waiting for session deletion
+    - scsi: qla2xxx: check UNLOADING before posting async work
+    - RDMA/mlx5: Set GRH fields in query QP on RoCE
+    - RDMA/mlx4: Initialize ib_spec on the stack
+    - RDMA/siw: Fix potential siw_mem refcnt leak in siw_fastreg_mr()
+    - RDMA/core: Prevent mixed use of FDs between shared ufiles
+    - RDMA/core: Fix race between destroy and release FD object
+    - RDMA/cm: Fix ordering of xa_alloc_cyclic() in ib_create_cm_id()
+    - RDMA/cm: Fix an error check in cm_alloc_id_priv()
+    - i2c: iproc: generate stop event for slave writes
+    - vfio: avoid possible overflow in vfio_iommu_type1_pin_pages
+    - vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn()
+    - iommu/qcom: Fix local_base status check
+    - scsi: target/iblock: fix WRITE SAME zeroing
+    - iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system
+    - i2c: aspeed: Avoid i2c interrupt status clear race condition.
+    - ALSA: opti9xx: shut up gcc-10 range warning
+    - Fix use after free in get_tree_bdev()
+    - nvme: prevent double free in nvme_alloc_ns() error handling
+    - nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
+    - dmaengine: dmatest: Fix iteration non-stop logic
+    - dmaengine: dmatest: Fix process hang when reading 'wait' parameter
+    - arm64: vdso: Add -fasynchronous-unwind-tables to cflags
+    - selinux: properly handle multiple messages in selinux_netlink_send()
+    - Linux 5.4.39
+
+  * Focal update: v5.4.38 upstream stable release (LP: #1876767)
+    - Linux 5.4.38
+
+  * Focal update: v5.4.37 upstream stable release (LP: #1876765)
+    - remoteproc: Fix wrong rvring index computation
+    - ubifs: Fix ubifs_tnc_lookup() usage in do_kill_orphans()
+    - printk: queue wake_up_klogd irq_work only if per-CPU areas are ready
+    - ASoC: stm32: sai: fix sai probe
+    - usb: dwc3: gadget: Do link recovery for SS and SSP
+    - kbuild: fix DT binding schema rule again to avoid needless rebuilds
+    - usb: gadget: udc: bdc: Remove unnecessary NULL checks in bdc_req_complete
+    - usb: gadget: udc: atmel: Fix vbus disconnect handling
+    - afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate
+    - afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH
+    - iio:ad7797: Use correct attribute_group
+    - propagate_one(): mnt_set_mountpoint() needs mount_lock
+    - counter: 104-quad-8: Add lock guards - generic interface
+    - s390/ftrace: fix potential crashes when switching tracers
+    - ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs
+    - ASoC: tas571x: disable regulators on failed probe
+    - ASoC: wm8960: Fix wrong clock after suspend & resume
+    - drivers: soc: xilinx: fix firmware driver Kconfig dependency
+    - nfsd: memory corruption in nfsd4_lock()
+    - bpf: Forbid XADD on spilled pointers for unprivileged users
+    - i2c: altera: use proper variable to hold errno
+    - rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket
+    - net/cxgb4: Check the return from t4_query_params properly
+    - xfs: acquire superblock freeze protection on eofblocks scans
+    - svcrdma: Fix trace point use-after-free race
+    - svcrdma: Fix leak of svc_rdma_recv_ctxt objects
+    - net/mlx5e: Don't trigger IRQ multiple times on XSK wakeup to avoid WQ
+      overruns
+    - net/mlx5e: Get the latest values from counters in switchdev mode
+    - PCI: Add ACS quirk for Zhaoxin multi-function devices
+    - PCI: Make ACS quirk implementations more uniform
+    - PCI: Unify ACS quirk desired vs provided checking
+    - PCI: Add Zhaoxin Vendor ID
+    - PCI: Add ACS quirk for Zhaoxin Root/Downstream Ports
+    - PCI: Move Apex Edge TPU class quirk to fix BAR assignment
+    - ARM: dts: bcm283x: Disable dsi0 node
+    - cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled
+    - s390/pci: do not set affinity for floating irqs
+    - net/mlx5: Fix failing fw tracer allocation on s390
+    - sched/core: Fix reset-on-fork from RT with uclamp
+    - perf/core: fix parent pid/tid in task exit events
+    - netfilter: nat: fix error handling upon registering inet hook
+    - PM: sleep: core: Switch back to async_schedule_dev()
+    - blk-iocost: Fix error on iocost_ioc_vrate_adj
+    - um: ensure `make ARCH=um mrproper` removes
+      arch/$(SUBARCH)/include/generated/
+    - bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
+    - bpf, x86_32: Fix clobbering of dst for BPF_JSET
+    - bpf, x86_32: Fix logic error in BPF_LDX zero-extension
+    - mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy
+      path
+    - xfs: clear PF_MEMALLOC before exiting xfsaild thread
+    - bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
+    - libbpf: Initialize *nl_pid so gcc 10 is happy
+    - net: fec: set GPR bit on suspend by DT configuration.
+    - x86: hyperv: report value of misc_features
+    - signal: check sig before setting info in kill_pid_usb_asyncio
+    - afs: Fix length of dump of bad YFSFetchStatus record
+    - xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
+    - ALSA: hda: Release resources at error in delayed probe
+    - ALSA: hda: Keep the controller initialization even if no codecs found
+    - ALSA: hda: Explicitly permit using autosuspend if runtime PM is supported
+    - scsi: target: fix PR IN / READ FULL STATUS for FC
+    - scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN
+    - objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings
+    - objtool: Support Clang non-section symbols in ORC dump
+    - xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
+    - ALSA: hda: call runtime_allow() for all hda controllers
+    - net: stmmac: socfpga: Allow all RGMII modes
+    - mac80211: fix channel switch trigger from unknown mesh peer
+    - arm64: Delete the space separator in __emit_inst
+    - ext4: use matching invalidatepage in ext4_writepage
+    - ext4: increase wait time needed before reuse of deleted inode numbers
+    - ext4: convert BUG_ON's to WARN_ON's in mballoc.c
+    - blk-mq: Put driver tag in blk_mq_dispatch_rq_list() when no budget
+    - hwmon: (jc42) Fix name to have no illegal characters
+    - taprio: do not use BIT() in TCA_TAPRIO_ATTR_FLAG_* definitions
+    - qed: Fix race condition between scheduling and destroying the slowpath
+      workqueue
+    - Crypto: chelsio - Fixes a hang issue during driver registration
+    - net: use indirect call wrappers for skb_copy_datagram_iter()
+    - qed: Fix use after free in qed_chain_free
+    - ext4: check for non-zero journal inum in ext4_calculate_overhead
+    - ASoC: soc-core: disable route checks for legacy devices
+    - ASoC: stm32: spdifrx: fix regmap status check
+    - Linux 5.4.37
+
+  * Focal update: v5.4.36 upstream stable release (LP: #1876361)
+    - ext4: fix extent_status fragmentation for plain files
+    - f2fs: fix to avoid memory leakage in f2fs_listxattr
+    - net, ip_tunnel: fix interface lookup with no key
+    - [Config] updateconfigs for ARM64_ERRATUM_1542419
+    - arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419
+    - arm64: Fake the IminLine size on systems affected by Neoverse-N1 #1542419
+    - arm64: compat: Workaround Neoverse-N1 #1542419 for compat user-space
+    - arm64: Silence clang warning on mismatched value/register sizes
+    - tools/testing/nvdimm: Fix compilation failure without
+      CONFIG_DEV_DAX_PMEM_COMPAT
+    - watchdog: reset last_hw_keepalive time at start
+    - scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
+    - scsi: lpfc: Fix crash after handling a pci error
+    - scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG
+    - scsi: libfc: If PRLI rejected, move rport to PLOGI state
+    - ceph: return ceph_mdsc_do_request() errors from __get_parent()
+    - ceph: don't skip updating wanted caps when cap is stale
+    - pwm: rcar: Fix late Runtime PM enablement
+    - nvme-tcp: fix possible crash in write_zeroes processing
+    - scsi: iscsi: Report unbind session event when the target has been removed
+    - tools/test/nvdimm: Fix out of tree build
+    - ASoC: Intel: atom: Take the drv->lock mutex before calling
+      sst_send_slot_map()
+    - nvme: fix deadlock caused by ANA update wrong locking
+    - drm/amd/display: Update stream adjust in dc_stream_adjust_vmin_vmax
+    - dma-direct: fix data truncation in dma_direct_get_required_mask()
+    - kernel/gcov/fs.c: gcov_seq_next() should increase position index
+    - selftests: kmod: fix handling test numbers above 9
+    - ipc/util.c: sysvipc_find_ipc() should increase position index
+    - kconfig: qconf: Fix a few alignment issues
+    - lib/raid6/test: fix build on distros whose /bin/sh is not bash
+    - s390/cio: generate delayed uevent for vfio-ccw subchannels
+    - s390/cio: avoid duplicated 'ADD' uevents
+    - loop: Better discard support for block devices
+    - Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs
+      enabled"
+    - powerpc/pseries: Fix MCE handling on pseries
+    - nvme: fix compat address handling in several ioctls
+    - pwm: renesas-tpu: Fix late Runtime PM enablement
+    - pwm: bcm2835: Dynamically allocate base
+    - perf/core: Disable page faults when getting phys address
+    - drm/amd/display: Calculate scaling ratios on every medium/full update
+    - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
+    - ALSA: usb-audio: Add Pioneer DJ DJM-250MK2 quirk
+    - drm/amd/display: Not doing optimize bandwidth if flip pending.
+    - cxgb4: fix adapter crash due to wrong MC size
+    - cxgb4: fix large delays in PTP synchronization
+    - ipv4: Update fib_select_default to handle nexthop objects
+    - ipv6: fix restrict IPV6_ADDRFORM operation
+    - macsec: avoid to set wrong mtu
+    - macvlan: fix null dereference in macvlan_device_event()
+    - mlxsw: Fix some IS_ERR() vs NULL bugs
+    - net: bcmgenet: correct per TX/RX ring statistics
+    - net/mlx4_en: avoid indirect call in TX completion
+    - net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
+    - net: openvswitch: ovs_ct_exit to be done under ovs_lock
+    - net: stmmac: dwmac-meson8b: Add missing boundary to RGMII TX clock array
+    - net/x25: Fix x25_neigh refcnt leak when receiving frame
+    - sched: etf: do not assume all sockets are full blown
+    - selftests: Fix suppress test in fib_tests.sh
+    - tcp: cache line align MAX_TCP_HEADER
+    - team: fix hang in team_mode_get()
+    - vrf: Fix IPv6 with qdisc and xfrm
+    - net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
+    - net: dsa: b53: Fix valid setting for MDB entries
+    - net: dsa: b53: Fix ARL register definitions
+    - net: dsa: b53: Rework ARL bin logic
+    - net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL
+    - vxlan: use the correct nlattr array in NL_SET_ERR_MSG_ATTR
+    - geneve: use the correct nlattr array in NL_SET_ERR_MSG_ATTR
+    - xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
+    - vrf: Check skb for XFRM_TRANSFORMED flag
+    - KEYS: Avoid false positive ENOMEM error on key read
+    - ALSA: hda: Remove ASUS ROG Zenith from the blacklist
+    - ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos
+    - ALSA: usb-audio: Add connector notifier delegation
+    - iio: core: remove extra semi-colon from devm_iio_device_register() macro
+    - iio: st_sensors: rely on odr mask to know if odr can be set
+    - iio: adc: stm32-adc: fix sleep in atomic context
+    - iio: adc: ti-ads8344: properly byte swap value
+    - iio: xilinx-xadc: Fix ADC-B powerdown
+    - iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
+    - iio: xilinx-xadc: Fix sequencer configuration for aux channels in
+      simultaneous mode
+    - iio: xilinx-xadc: Make sure not exceed maximum samplerate
+    - USB: sisusbvga: Change port variable from signed to unsigned
+    - USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70
+      RGB RAPIDFIRE
+    - USB: early: Handle AMD's spec-compliant identifiers, too
+    - USB: core: Fix free-while-in-use bug in the USB S-Glibrary
+    - USB: hub: Fix handling of connect changes during sleep
+    - USB: hub: Revert commit bd0e6c9614b9 ("usb: hub: try old enumeration scheme
+      first for high speed devices")
+    - tty: serial: owl: add "much needed" clk_prepare_enable()
+    - vmalloc: fix remap_vmalloc_range() bounds checks
+    - staging: gasket: Fix incongruency in handling of sysfs entries creation
+    - coredump: fix null pointer dereference on coredump
+    - mm/hugetlb: fix a addressing exception caused by huge_pte_offset
+    - mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
+    - tools/vm: fix cross-compile build
+    - ALSA: usx2y: Fix potential NULL dereference
+    - ALSA: hda/realtek - Fix unexpected init_amp override
+    - ALSA: hda/realtek - Add new codec supported for ALC245
+    - ALSA: hda/hdmi: Add module option to disable audio component binding
+    - ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
+    - ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices
+    - tpm/tpm_tis: Free IRQ if probing fails
+    - tpm: fix wrong return value in tpm_pcr_extend
+    - tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
+    - KVM: s390: Return last valid slot if approx index is out-of-bounds
+    - KVM: Check validity of resolved slot when searching memslots
+    - KVM: VMX: Enable machine check support for 32bit targets
+    - tty: hvc: fix buffer overflow during hvc_alloc().
+    - tty: rocket, avoid OOB access
+    - usb-storage: Add unusual_devs entry for JMicron JMS566
+    - signal: Avoid corrupting si_pid and si_uid in do_notify_parent
+    - audit: check the length of userspace generated audit records
+    - ASoC: dapm: fixup dapm kcontrol widget
+    - mac80211: populate debugfs only after cfg80211 init
+    - SUNRPC: Fix backchannel RPC soft lockups
+    - iwlwifi: pcie: actually release queue memory in TVQM
+    - iwlwifi: mvm: beacon statistics shouldn't go backwards
+    - iwlwifi: mvm: limit maximum queue appropriately
+    - iwlwifi: mvm: Do not declare support for ACK Enabled Aggregation
+    - iwlwifi: mvm: fix inactive TID removal return value usage
+    - cifs: fix uninitialised lease_key in open_shroot()
+    - ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y
+    - powerpc/setup_64: Set cache-line-size based on cache-block-size
+    - staging: comedi: dt2815: fix writing hi byte of analog output
+    - staging: comedi: Fix comedi_device refcnt leak in comedi_open
+    - vt: don't hardcode the mem allocation upper bound
+    - vt: don't use kmalloc() for the unicode screen buffer
+    - staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
+    - staging: vt6656: Fix calling conditions of vnt_set_bss_mode
+    - staging: vt6656: Fix drivers TBTT timing counter.
+    - staging: vt6656: Fix pairwise key entry save.
+    - staging: vt6656: Power save stop wake_up_count wrap around.
+    - cdc-acm: close race betrween suspend() and acm_softint
+    - cdc-acm: introduce a cool down
+    - UAS: no use logging any details in case of ENODEV
+    - UAS: fix deadlock in error handling and PM flushing work
+    - fpga: dfl: pci: fix return value of cci_pci_sriov_configure
+    - usb: dwc3: gadget: Fix request completion check
+    - usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
+    - usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change
+    - usb: typec: altmode: Fix typec_altmode_get_partner sometimes returning an
+      invalid pointer
+    - xhci: Fix handling halted endpoint even if endpoint ring appears empty
+    - xhci: prevent bus suspend if a roothub port detected a over-current
+      condition
+    - xhci: Don't clear hub TT buffer on ep0 protocol stall
+    - serial: sh-sci: Make sure status register SCxSR is read in correct sequence
+    - Revert "serial: uartps: Fix uartps_major handling"
+    - Revert "serial: uartps: Use the same dynamic major number for all ports"
+    - Revert "serial: uartps: Fix error path when alloc failed"
+    - Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES"
+    - Revert "serial: uartps: Change uart ID port allocation"
+    - Revert "serial: uartps: Move Port ID to device data structure"
+    - Revert "serial: uartps: Register own uart console and driver structures"
+    - powerpc/kuap: PPC_KUAP_DEBUG should depend on PPC_KUAP
+    - powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
+    - compat: ARM64: always include asm-generic/compat.h
+    - Linux 5.4.36
+
+  * Focal update: v5.4.35 upstream stable release (LP: #1875660)
+    - ext4: use non-movable memory for superblock readahead
+    - watchdog: sp805: fix restart handler
+    - xsk: Fix out of boundary write in __xsk_rcv_memcpy
+    - arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
+    - arm, bpf: Fix offset overflow for BPF_MEM BPF_DW
+    - objtool: Fix switch table detection in .text.unlikely
+    - scsi: sg: add sg_remove_request in sg_common_write
+    - ALSA: hda: Honor PM disablement in PM freeze and thaw_noirq ops
+    - ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN.
+    - kbuild, btf: Fix dependencies for DEBUG_INFO_BTF
+    - netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
+    - irqchip/mbigen: Free msi_desc on device teardown
+    - ALSA: hda: Don't release card at firmware loading error
+    - xsk: Add missing check on user supplied headroom size
+    - of: unittest: kmemleak on changeset destroy
+    - of: unittest: kmemleak in of_unittest_platform_populate()
+    - of: unittest: kmemleak in of_unittest_overlay_high_level()
+    - of: overlay: kmemleak in dup_and_fixup_symbol_prop()
+    - x86/Hyper-V: Unload vmbus channel in hv panic callback
+    - x86/Hyper-V: Trigger crash enlightenment only once during system crash.
+    - x86/Hyper-V: Report crash register data or kmsg before running crash kernel
+    - x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not
+      set
+    - x86/Hyper-V: Report crash data in die() when panic_on_oops is set
+    - afs: Fix missing XDR advance in xdr_decode_{AFS,YFS}FSFetchStatus()
+    - afs: Fix decoding of inline abort codes from version 1 status records
+    - afs: Fix rename operation status delivery
+    - afs: Fix afs_d_validate() to set the right directory version
+    - afs: Fix race between post-modification dir edit and readdir/d_revalidate
+    - block, bfq: turn put_queue into release_process_ref in
+      __bfq_bic_change_cgroup
+    - block, bfq: make reparent_leaf_entity actually work only on leaf entities
+    - block, bfq: invoke flush_idle_tree after reparent_active_queues in
+      pd_offline
+    - rbd: avoid a deadlock on header_rwsem when flushing notifies
+    - rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
+    - x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump
+    - drm/ttm: flush the fence on the bo after we individualize the reservation
+      object
+    - clk: Don't cache errors from clk_ops::get_phase()
+    - clk: at91: usb: continue if clk_hw_round_rate() return zero
+    - net/mlx5e: Enforce setting of a single FEC mode
+    - f2fs: fix the panic in do_checkpoint()
+    - ARM: dts: rockchip: fix vqmmc-supply property name for rk3188-bqedison2qc
+    - arm64: dts: allwinner: a64: Fix display clock register range
+    - power: supply: bq27xxx_battery: Silence deferred-probe error
+    - clk: tegra: Fix Tegra PMC clock out parents
+    - arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194
+    - arm64: tegra: Fix Tegra194 PCIe compatible string
+    - arm64: dts: clearfog-gt-8k: set gigabit PHY reset deassert delay
+    - soc: imx: gpc: fix power up sequencing
+    - dma-coherent: fix integer overflow in the reserved-memory dma allocation
+    - rtc: 88pm860x: fix possible race condition
+    - NFS: alloc_nfs_open_context() must use the file cred when available
+    - NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
+    - NFSv4.2: error out when relink swapfile
+    - ARM: dts: rockchip: fix lvds-encoder ports subnode for rk3188-bqedison2qc
+    - KVM: PPC: Book3S HV: Fix H_CEDE return code for nested guests
+    - f2fs: fix to show norecovery mount option
+    - phy: uniphier-usb3ss: Add Pro5 support
+    - NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
+    - f2fs: Fix mount failure due to SPO after a successful online resize FS
+    - f2fs: Add a new CP flag to help fsck fix resize SPO issues
+    - s390/cpuinfo: fix wrong output when CPU0 is offline
+    - hibernate: Allow uswsusp to write to swap
+    - btrfs: add RCU locks around block group initialization
+    - powerpc/prom_init: Pass the "os-term" message to hypervisor
+    - powerpc/maple: Fix declaration made after definition
+    - s390/cpum_sf: Fix wrong page count in error message
+    - ext4: do not commit super on read-only bdev
+    - um: ubd: Prevent buffer overrun on command completion
+    - cifs: Allocate encryption header through kmalloc
+    - mm/hugetlb: fix build failure with HUGETLB_PAGE but not HUGEBTLBFS
+    - drm/nouveau/svm: check for SVM initialized before migrating
+    - drm/nouveau/svm: fix vma range check for migration
+    - include/linux/swapops.h: correct guards for non_swap_entry()
+    - percpu_counter: fix a data race at vm_committed_as
+    - compiler.h: fix error in BUILD_BUG_ON() reporting
+    - KVM: s390: vsie: Fix possible race when shadowing region 3 tables
+    - drm/nouveau: workaround runpm fail by disabling PCI power management on
+      certain intel bridges
+    - leds: core: Fix warning message when init_data
+    - x86: ACPI: fix CPU hotplug deadlock
+    - csky: Fixup cpu speculative execution to IO area
+    - drm/amdkfd: kfree the wrong pointer
+    - NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
+    - csky: Fixup get wrong psr value from phyical reg
+    - f2fs: fix NULL pointer dereference in f2fs_write_begin()
+    - ACPICA: Fixes for acpiExec namespace init file
+    - um: falloc.h needs to be directly included for older libc
+    - drm/vc4: Fix HDMI mode validation
+    - iommu/virtio: Fix freeing of incomplete domains
+    - iommu/vt-d: Fix mm reference leak
+    - ext2: fix empty body warnings when -Wextra is used
+    - iommu/vt-d: Silence RCU-list debugging warning in dmar_find_atsr()
+    - iommu/vt-d: Fix page request descriptor size
+    - ext2: fix debug reference to ext2_xattr_cache
+    - sunrpc: Fix gss_unwrap_resp_integ() again
+    - csky: Fixup init_fpu compile warning with __init
+    - power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute
+      Sticks.
+    - libnvdimm: Out of bounds read in __nd_ioctl()
+    - iommu/amd: Fix the configuration of GCR3 table root pointer
+    - f2fs: fix to wait all node page writeback
+    - drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init
+    - net: dsa: bcm_sf2: Fix overflow checks
+    - dma-debug: fix displaying of dma allocation type
+    - fbdev: potential information leak in do_fb_ioctl()
+    - ARM: dts: sunxi: Fix DE2 clocks register range
+    - iio: si1133: read 24-bit signed integer for measurement
+    - fbmem: Adjust indentation in fb_prepare_logo and fb_blank
+    - tty: evh_bytechan: Fix out of bounds accesses
+    - locktorture: Print ratio of acquisitions, not failures
+    - mtd: rawnand: free the nand_device object
+    - mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to
+      OOB
+    - docs: Fix path to MTD command line partition parser
+    - mtd: lpddr: Fix a double free in probe()
+    - mtd: phram: fix a double free issue in error path
+    - KEYS: Don't write out to userspace while holding key semaphore
+    - bpf: fix buggy r0 retval refinement for tracing helpers
+    - bpf: Test_verifier, bpf_get_stack return value add <0
+    - bpf: Test_progs, add test to catch retval refine error handling
+    - SAUCE: bpf: Test_progs, fix test_get_stack_rawtp_err.c build
+    - bpf, test_verifier: switch bpf_get_stack's 0 s> r8 test
+    - Linux 5.4.35
+
+  * Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW),
+    REV=0x354 [8086:a0f0] subsystem id [1a56:1651] wireless adapter not found
+    due to firmware crash (LP: #1874685)
+    - iwlwifi: pcie: handle QuZ configs with killer NICs as well
+
+  * Support DMIC micmute LED on HP platforms (LP: #1876859)
+    - ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
+    - ALSA: hda/realtek - Enable micmute LED on and HP system
+    - ALSA: hda/realtek - Add LED class support for micmute LED
+    - ALSA: hda/realtek - Fix unused variable warning w/o
+      CONFIG_LEDS_TRIGGER_AUDIO
+    - ASoC: SOF: Update correct LED status at the first time usage of
+      update_mute_led()
+
+  * linux: riscv: set max_pfn to the PFN of the last page (LP: #1876885)
+    - riscv: set max_pfn to the PFN of the last page
+
+  * Dell XPS 13 9300 mirror mode doesn't work sometimes with WD19TB
+    (LP: #1877013)
+    - drm/i915/perf: Do not clear pollin for small user read buffers
+
+  * [UBUNTU 20.04] s390x/pci: do not allow to create more pci functions than
+    configured via CONFIG_PCI_NR_FUNCTIONS (LP: #1874057)
+    - s390/pci: Fix zpci_alloc_domain() over allocation
+
+  * [Ubuntu 20.04] net/mlx5e: Fix endianness handling in pedit mask
+    (LP: #1872726)
+    - net/mlx5e: Fix endianness handling in pedit mask
+
+  * rtkit-daemon[*]: Failed to make ourselves RT: Operation not permitted after
+    upgrade to 20.04 (LP: #1875665)
+    - [Config] Turn off CONFIG_RT_GROUP_SCHED everywhere
+
+  * ceph -- Unable to mount ceph volume on s390x (LP: #1875863)
+    - ceph: fix endianness bug when handling MDS session feature bits
+
+  * Do not treat unresolved test case in ftrace from ubuntu_kernel_selftests as
+    failure (LP: #1877958)
+    - ftrace/selftest: make unresolved cases cause failure if --fail-unresolved
+      set
+
+  * Add support for Ambiq micro AM1805 RTC chip (LP: #1876667)
+    - SAUCE: rtc: add am-1805 RTC driver
+
+  * alsa/sof: kernel oops on the machine without Intel hdmi audio codec (a
+    regression in the  asoc machine driver) (LP: #1874359)
+    - SAUCE: ASoC: intel/skl/hda - fix oops on systems without i915 audio codec
+
+  * 'Elan touchpad' not detected on 'Lenovo ThinkBook 15 IIL' (LP: #1861610)
+    - SAUCE: Input: elan_i2c - add more hardware ID for Lenovo laptop
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Mon, 25 May 2020 17:05:37 +0200
+
+linux (5.4.0-33.37) focal; urgency=medium
+
+  * focal/linux: 5.4.0-33.37 -proposed tracker (LP: #1879926)
+
+  * Docker registry doesn't stay up and keeps restarting (LP: #1879690)
+    - Revert "UBUNTU: SAUCE: overlayfs: fix shitfs special-casing"
+    - Revert "UBUNTU: SAUCE: overlayfs: use shiftfs hacks only with shiftfs as
+      underlay"
+
+ -- Kleber Sacilotto de Souza <kleber.souza@canonical.com>  Thu, 21 May 2020 14:34:26 +0200
+
+linux (5.4.0-31.35) focal; urgency=medium
+
+  * focal/linux: 5.4.0-31.35 -proposed tracker (LP: #1877253)
+
+  * Intermittent display blackouts on event (LP: #1875254)
+    - drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only
+
+  * Unable to handle kernel pointer dereference in virtual kernel address space
+    on Eoan (LP: #1876645)
+    - SAUCE: overlayfs: fix shitfs special-casing
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Thu, 07 May 2020 11:05:18 +0200
+
+linux (5.4.0-30.34) focal; urgency=medium
+
+  * focal/linux: 5.4.0-30.34 -proposed tracker (LP: #1875385)
+
+  * ubuntu/focal64 fails to mount Vagrant shared folders  (LP: #1873506)
+    - [Packaging] Move virtualbox modules to linux-modules
+    - [Packaging] Remove vbox and zfs modules from generic.inclusion-list
+
+  * linux-image-5.0.0-35-generic breaks checkpointing of container
+    (LP: #1857257)
+    - SAUCE: overlayfs: use shiftfs hacks only with shiftfs as underlay
+
+  * shiftfs: broken shiftfs nesting (LP: #1872094)
+    - SAUCE: shiftfs: record correct creator credentials
+
+  * Add debian/rules targets to compile/run kernel selftests (LP: #1874286)
+    - [Packaging] add support to compile/run selftests
+
+  * shiftfs: O_TMPFILE reports ESTALE (LP: #1872757)
+    - SAUCE: shiftfs: fix dentry revalidation
+
+  * LIO hanging in iscsit_free_session and iscsit_stop_session (LP: #1871688)
+    - scsi: target: iscsi: calling iscsit_stop_session() inside
+      iscsit_close_session() has no effect
+
+  * [ICL] TC port in legacy/static mode can't be detected due TCCOLD
+    (LP: #1868936)
+    - SAUCE: drm/i915: Align power domain names with port names
+    - SAUCE: drm/i915/display: Move out code to return the digital_port of the aux
+      ch
+    - SAUCE: drm/i915/display: Add intel_legacy_aux_to_power_domain()
+    - SAUCE: drm/i915/display: Split hsw_power_well_enable() into two
+    - SAUCE: drm/i915/tc/icl: Implement TC cold sequences
+    - SAUCE: drm/i915/tc: Skip ref held check for TC legacy aux power wells
+    - SAUCE: drm/i915/tc/tgl: Implement TC cold sequences
+    - SAUCE: drm/i915/tc: Catch TC users accessing FIA registers without enable
+      aux
+    - SAUCE: drm/i915/tc: Do not warn when aux power well of static TC ports
+      timeout
+
+  * alsa/sof: external mic can't be deteced on Lenovo and HP laptops
+    (LP: #1872569)
+    - SAUCE: ASoC: intel/skl/hda - set autosuspend timeout for hda codecs
+
+  * amdgpu kernel errors in Linux 5.4 (LP: #1871248)
+    - drm/amd/display: Stop if retimer is not available
+
+  * Focal update: v5.4.34 upstream stable release (LP: #1874111)
+    - amd-xgbe: Use __napi_schedule() in BH context
+    - hsr: check protocol version in hsr_newlink()
+    - l2tp: Allow management of tunnels and session in user namespace
+    - net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode
+    - net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
+    - net: ipv6: do not consider routes via gateways for anycast address check
+    - net: phy: micrel: use genphy_read_status for KSZ9131
+    - net: qrtr: send msgs from local of same id as broadcast
+    - net: revert default NAPI poll timeout to 2 jiffies
+    - net: tun: record RX queue in skb before do_xdp_generic()
+    - net: dsa: mt7530: move mt7623 settings out off the mt7530
+    - net: ethernet: mediatek: move mt7623 settings out off the mt7530
+    - net/mlx5: Fix frequent ioread PCI access during recovery
+    - net/mlx5e: Add missing release firmware call
+    - net/mlx5e: Fix nest_level for vlan pop action
+    - net/mlx5e: Fix pfnum in devlink port attribute
+    - net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
+    - ovl: fix value of i_ino for lower hardlink corner case
+    - scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
+    - platform/chrome: cros_ec_rpmsg: Fix race with host event
+    - jbd2: improve comments about freeing data buffers whose page mapping is NULL
+    - acpi/nfit: improve bounds checking for 'func'
+    - perf report: Fix no branch type statistics report issue
+    - pwm: pca9685: Fix PWM/GPIO inter-operation
+    - ext4: fix incorrect group count in ext4_fill_super error message
+    - ext4: fix incorrect inodes per group in error message
+    - clk: at91: sam9x60: fix usb clock parents
+    - clk: at91: usb: use proper usbs_mask
+    - ARM: dts: imx7-colibri: fix muxing of usbc_det pin
+    - arm64: dts: librem5-devkit: add a vbus supply to usb0
+    - usb: dwc3: gadget: Don't clear flags before transfer ended
+    - ASoC: Intel: mrfld: fix incorrect check on p->sink
+    - ASoC: Intel: mrfld: return error codes when an error occurs
+    - ALSA: hda/realtek - Enable the headset mic on Asus FX505DT
+    - ALSA: usb-audio: Filter error from connector kctl ops, too
+    - ALSA: usb-audio: Don't override ignore_ctl_error value from the map
+    - ALSA: usb-audio: Don't create jack controls for PCM terminals
+    - ALSA: usb-audio: Check mapping at creating connector controls, too
+    - arm64: vdso: don't free unallocated pages
+    - keys: Fix proc_keys_next to increase position index
+    - tracing: Fix the race between registering 'snapshot' event trigger and
+      triggering 'snapshot' operation
+    - btrfs: check commit root generation in should_ignore_root
+    - nl80211: fix NL80211_ATTR_FTM_RESPONDER policy
+    - mac80211: fix race in ieee80211_register_hw()
+    - mac80211_hwsim: Use kstrndup() in place of kasprintf()
+    - net/mlx5e: Encapsulate updating netdev queues into a function
+    - net/mlx5e: Rename hw_modify to preactivate
+    - net/mlx5e: Use preactivate hook to set the indirection table
+    - drm/amd/powerplay: force the trim of the mclk dpm_levels if OD is enabled
+    - drm/amdgpu: fix the hw hang during perform system reboot and reset
+    - i2c: designware: platdrv: Remove DPM_FLAG_SMART_SUSPEND flag on BYT and CHT
+    - ext4: do not zeroout extents beyond i_disksize
+    - irqchip/ti-sci-inta: Fix processing of masked irqs
+    - x86/resctrl: Preserve CDP enable over CPU hotplug
+    - x86/resctrl: Fix invalid attempt at removing the default resource group
+    - scsi: target: remove boilerplate code
+    - scsi: target: fix hang when multiple threads try to destroy the same iscsi
+      session
+    - x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE
+    - Linux 5.4.34
+
+  * Focal update: v5.4.33 upstream stable release (LP: #1873481)
+    - ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage
+    - bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
+    - ARM: dts: Fix dm814x Ethernet by changing to use rgmii-id mode
+    - bpf: Fix deadlock with rq_lock in bpf_send_signal()
+    - iwlwifi: mvm: Fix rate scale NSS configuration
+    - Input: tm2-touchkey - add support for Coreriver TC360 variant
+    - soc: fsl: dpio: register dpio irq handlers after dpio create
+    - rxrpc: Abstract out the calculation of whether there's Tx space
+    - rxrpc: Fix call interruptibility handling
+    - net: stmmac: platform: Fix misleading interrupt error msg
+    - net: vxge: fix wrong __VA_ARGS__ usage
+    - hinic: fix a bug of waitting for IO stopped
+    - hinic: fix the bug of clearing event queue
+    - hinic: fix out-of-order excution in arm cpu
+    - hinic: fix wrong para of wait_for_completion_timeout
+    - hinic: fix wrong value of MIN_SKB_LEN
+    - selftests/net: add definition for SOL_DCCP to fix compilation errors for old
+      libc
+    - cxgb4/ptp: pass the sign of offset delta in FW CMD
+    - drm/scheduler: fix rare NULL ptr race
+    - cfg80211: Do not warn on same channel at the end of CSA
+    - qlcnic: Fix bad kzalloc null test
+    - i2c: st: fix missing struct parameter description
+    - i2c: pca-platform: Use platform_irq_get_optional
+    - media: rc: add keymap for Videostrong KII Pro
+    - cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL
+    - staging: wilc1000: avoid double unlocking of 'wilc->hif_cs' mutex
+    - media: venus: hfi_parser: Ignore HEVC encoding for V1
+    - firmware: arm_sdei: fix double-lock on hibernate with shared events
+    - null_blk: Fix the null_add_dev() error path
+    - null_blk: Handle null_add_dev() failures properly
+    - null_blk: fix spurious IO errors after failed past-wp access
+    - media: imx: imx7_mipi_csis: Power off the source when stopping streaming
+    - media: imx: imx7-media-csi: Fix video field handling
+    - xhci: bail out early if driver can't accress host in resume
+    - x86: Don't let pgprot_modify() change the page encryption bit
+    - dma-mapping: Fix dma_pgprot() for unencrypted coherent pages
+    - block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices
+    - debugfs: Check module state before warning in {full/open}_proxy_open()
+    - irqchip/versatile-fpga: Handle chained IRQs properly
+    - time/sched_clock: Expire timer in hardirq context
+    - media: allegro: fix type of gop_length in channel_create message
+    - sched: Avoid scale real weight down to zero
+    - selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
+    - PCI/switchtec: Fix init_completion race condition with poll_wait()
+    - block, bfq: move forward the getting of an extra ref in bfq_bfqq_move
+    - media: i2c: video-i2c: fix build errors due to 'imply hwmon'
+    - libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
+    - pstore/platform: fix potential mem leak if pstore_init_fs failed
+    - gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
+    - gfs2: Don't demote a glock until its revokes are written
+    - cpufreq: imx6q: fix error handling
+    - x86/boot: Use unsigned comparison for addresses
+    - efi/x86: Ignore the memory attributes table on i386
+    - genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
+    - block: Fix use-after-free issue accessing struct io_cq
+    - media: i2c: ov5695: Fix power on and off sequences
+    - usb: dwc3: core: add support for disabling SS instances in park mode
+    - irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
+    - md: check arrays is suspended in mddev_detach before call quiesce operations
+    - firmware: fix a double abort case with fw_load_sysfs_fallback
+    - spi: spi-fsl-dspi: Replace interruptible wait queue with a simple completion
+    - locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
+    - block, bfq: fix use-after-free in bfq_idle_slice_timer_body
+    - btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker is
+      at least queued
+    - btrfs: remove a BUG_ON() from merge_reloc_roots()
+    - btrfs: restart relocate_tree_blocks properly
+    - btrfs: track reloc roots based on their commit root bytenr
+    - ASoC: fix regwmask
+    - ASoC: dapm: connect virtual mux with default value
+    - ASoC: dpcm: allow start or stop during pause for backend
+    - ASoC: topology: use name_prefix for new kcontrol
+    - usb: gadget: f_fs: Fix use after free issue as part of queue failure
+    - usb: gadget: composite: Inform controller driver of self-powered
+    - ALSA: usb-audio: Add mixer workaround for TRX40 and co
+    - ALSA: hda: Add driver blacklist
+    - ALSA: hda: Fix potential access overflow in beep helper
+    - ALSA: ice1724: Fix invalid access for enumerated ctl items
+    - ALSA: pcm: oss: Fix regression by buffer overflow fix
+    - ALSA: hda/realtek - a fake key event is triggered by running shutup
+    - ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
+    - ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
+    - ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
+    - ALSA: hda/realtek - Add quirk for Lenovo Carbon X1 8th gen
+    - ALSA: hda/realtek - Add quirk for MSI GL63
+    - media: venus: firmware: Ignore secure call error on first resume
+    - media: hantro: Read be32 words starting at every fourth byte
+    - media: ti-vpe: cal: fix disable_irqs to only the intended target
+    - media: ti-vpe: cal: fix a kernel oops when unloading module
+    - seccomp: Add missing compat_ioctl for notify
+    - acpi/x86: ignore unspecified bit positions in the ACPI global lock field
+    - ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE
+    - ACPI: PM: s2idle: Refine active GPEs check
+    - thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
+    - nvmet-tcp: fix maxh2cdata icresp parameter
+    - efi/x86: Add TPM related EFI tables to unencrypted mapping checks
+    - PCI: pciehp: Fix indefinite wait on sysfs requests
+    - PCI/ASPM: Clear the correct bits when enabling L1 substates
+    - PCI: Add boot interrupt quirk mechanism for Xeon chipsets
+    - PCI: qcom: Fix the fixup of PCI_VENDOR_ID_QCOM
+    - PCI: endpoint: Fix for concurrent memory allocation in OB address region
+    - sched/fair: Fix enqueue_task_fair warning
+    - tpm: Don't make log failures fatal
+    - tpm: tpm1_bios_measurements_next should increase position index
+    - tpm: tpm2_bios_measurements_next should increase position index
+    - cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
+    - genirq/debugfs: Add missing sanity checks to interrupt injection
+    - irqchip/versatile-fpga: Apply clear-mask earlier
+    - io_uring: remove bogus RLIMIT_NOFILE check in file registration
+    - pstore: pstore_ftrace_seq_next should increase position index
+    - MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
+    - MIPS: OCTEON: irq: Fix potential NULL pointer dereference
+    - PM / Domains: Allow no domain-idle-states DT property in genpd when parsing
+    - PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there
+    - ath9k: Handle txpower changes even when TPC is disabled
+    - signal: Extend exec_id to 64bits
+    - x86/tsc_msr: Use named struct initializers
+    - x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
+    - x86/tsc_msr: Make MSR derived TSC frequency more accurate
+    - x86/entry/32: Add missing ASM_CLAC to general_protection entry
+    - platform/x86: asus-wmi: Support laptops where the first battery is named
+      BATT
+    - KVM: nVMX: Properly handle userspace interrupt window request
+    - KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
+    - KVM: s390: vsie: Fix delivery of addressing exceptions
+    - KVM: x86: Allocate new rmap and large page tracking when moving memslot
+    - KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
+    - KVM: x86: Gracefully handle __vmalloc() failure during VM allocation
+    - KVM: VMX: Add a trampoline to fix VMREAD error handling
+    - KVM: VMX: fix crash cleanup when KVM wasn't used
+    - smb3: fix performance regression with setting mtime
+    - CIFS: Fix bug which the return value by asynchronous read is error
+    - mtd: spinand: Stop using spinand->oobbuf for buffering bad block markers
+    - mtd: spinand: Do not erase the block before writing a bad block marker
+    - btrfs: Don't submit any btree write bio if the fs has errors
+    - Btrfs: fix crash during unmount due to race with delayed inode workers
+    - btrfs: reloc: clean dirty subvols if we fail to start a transaction
+    - btrfs: set update the uuid generation as soon as possible
+    - btrfs: drop block from cache on error in relocation
+    - btrfs: fix missing file extent item for hole after ranged fsync
+    - btrfs: unset reloc control if we fail to recover
+    - btrfs: fix missing semaphore unlock in btrfs_sync_file
+    - btrfs: use nofs allocations for running delayed items
+    - remoteproc: qcom_q6v5_mss: Don't reassign mpss region on shutdown
+    - remoteproc: qcom_q6v5_mss: Reload the mba region on coredump
+    - remoteproc: Fix NULL pointer dereference in rproc_virtio_notify
+    - crypto: rng - Fix a refcounting bug in crypto_rng_reset()
+    - crypto: mxs-dcp - fix scatterlist linearization for hash
+    - erofs: correct the remaining shrink objects
+    - io_uring: honor original task RLIMIT_FSIZE
+    - mmc: sdhci-of-esdhc: fix esdhc_reset() for different controller versions
+    - powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
+    - tools: gpio: Fix out-of-tree build regression
+    - net: qualcomm: rmnet: Allow configuration updates to existing devices
+    - arm64: dts: allwinner: h6: Fix PMU compatible
+    - sched/core: Remove duplicate assignment in sched_tick_remote()
+    - arm64: dts: allwinner: h5: Fix PMU compatible
+    - mm, memcg: do not high throttle allocators based on wraparound
+    - dm writecache: add cond_resched to avoid CPU hangs
+    - dm integrity: fix a crash with unusually large tag size
+    - dm verity fec: fix memory leak in verity_fec_dtr
+    - dm clone: Add overflow check for number of regions
+    - dm clone metadata: Fix return type of dm_clone_nr_of_hydrated_regions()
+    - XArray: Fix xas_pause for large multi-index entries
+    - xarray: Fix early termination of xas_for_each_marked
+    - crypto: caam/qi2 - fix chacha20 data size error
+    - crypto: caam - update xts sector size for large input length
+    - crypto: ccree - protect against empty or NULL scatterlists
+    - crypto: ccree - only try to map auth tag if needed
+    - crypto: ccree - dec auth tag size from cryptlen map
+    - scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
+    - scsi: ufs: fix Auto-Hibern8 error detection
+    - ARM: dts: exynos: Fix polarity of the LCD SPI bus on UniversalC210 board
+    - arm64: dts: ti: k3-am65: Add clocks to dwc3 nodes
+    - arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
+    - selftests: vm: drop dependencies on page flags from mlock2 tests
+    - selftests/vm: fix map_hugetlb length used for testing read and write
+    - selftests/powerpc: Add tlbie_test in .gitignore
+    - vfio: platform: Switch to platform_get_irq_optional()
+    - drm/i915/gem: Flush all the reloc_gpu batch
+    - drm/etnaviv: rework perfmon query infrastructure
+    - drm: Remove PageReserved manipulation from drm_pci_alloc
+    - drm/amdgpu/powerplay: using the FCLK DPM table to set the MCLK
+    - drm/amdgpu: unify fw_write_wait for new gfx9 asics
+    - powerpc/pseries: Avoid NULL pointer dereference when drmem is unavailable
+    - nfsd: fsnotify on rmdir under nfsd/clients/
+    - NFS: Fix use-after-free issues in nfs_pageio_add_request()
+    - NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
+    - ext4: fix a data race at inode->i_blocks
+    - fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
+    - ocfs2: no need try to truncate file beyond i_size
+    - perf tools: Support Python 3.8+ in Makefile
+    - s390/diag: fix display of diagnose call statistics
+    - Input: i8042 - add Acer Aspire 5738z to nomux list
+    - ftrace/kprobe: Show the maxactive number on kprobe_events
+    - clk: ingenic/jz4770: Exit with error if CGU init failed
+    - clk: ingenic/TCU: Fix round_rate returning error
+    - kmod: make request_module() return an error when autoloading is disabled
+    - cpufreq: powernv: Fix use-after-free
+    - hfsplus: fix crash and filesystem corruption when deleting files
+    - ipmi: fix hung processes in __get_guid()
+    - xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
+    - powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
+    - powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
+    - powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE
+      entries
+    - powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs
+    - powerpc/64: Setup a paca before parsing device tree etc.
+    - powerpc/xive: Fix xmon support on the PowerNV platform
+    - powerpc/kprobes: Ignore traps that happened in real mode
+    - powerpc/64: Prevent stack protection in early boot
+    - scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
+    - powerpc: Make setjmp/longjmp signature standard
+    - arm64: Always force a branch protection mode when the compiler has one
+    - dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
+    - dm clone: replace spin_lock_irqsave with spin_lock_irq
+    - dm clone: Fix handling of partial region discards
+    - dm clone: Add missing casts to prevent overflows and data corruption
+    - Revert "drm/dp_mst: Remove VCPI while disabling topology mgr"
+    - drm/dp_mst: Fix clearing payload state on topology disable
+    - drm/amdgpu: fix gfx hang during suspend with video playback (v2)
+    - drm/i915/icl+: Don't enable DDI IO power on a TypeC port in TBT mode
+    - powerpc/kasan: Fix kasan_remap_early_shadow_ro()
+    - mmc: sdhci: Convert sdhci_set_timeout_irq() to non-static
+    - mmc: sdhci: Refactor sdhci_set_timeout()
+    - bpf: Fix tnum constraints for 32-bit comparisons
+    - mfd: dln2: Fix sanity checking for endpoints
+    - efi/x86: Fix the deletion of variables in mixed mode
+    - ASoC: stm32: sai: Add missing cleanup
+    - Linux 5.4.33
+    - SUNRPC: fix krb5p mount to provide large enough buffer in rq_rcvsize
+
+  * Panic on suspend/resume Kernel panic - not syncing: stack-protector: Kernel
+    stack is corrupted in: sata_pmp_eh_recover+0xa2b/0xa40 (LP: #1821434) //
+    Focal update: v5.4.33 upstream stable release (LP: #1873481)
+    - libata: Return correct status in sata_pmp_eh_recover_pm() when
+      ATA_DFLAG_DETACH is set
+
+  * Focal update: v5.4.32 upstream stable release (LP: #1873292)
+    - cxgb4: fix MPS index overwrite when setting MAC address
+    - ipv6: don't auto-add link-local address to lag ports
+    - net: dsa: bcm_sf2: Do not register slave MDIO bus with OF
+    - net: dsa: bcm_sf2: Ensure correct sub-node is parsed
+    - net: dsa: mt7530: fix null pointer dereferencing in port5 setup
+    - net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before
+      accessing PHY registers
+    - net_sched: add a temporary refcnt for struct tcindex_data
+    - net_sched: fix a missing refcnt in tcindex_init()
+    - net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting
+    - tun: Don't put_page() for all negative return values from XDP program
+    - mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE
+    - r8169: change back SG and TSO to be disabled by default
+    - s390: prevent leaking kernel address in BEAR
+    - random: always use batched entropy for get_random_u{32,64}
+    - usb: dwc3: gadget: Wrap around when skip TRBs
+    - uapi: rename ext2_swab() to swab() and share globally in swab.h
+    - slub: improve bit diffusion for freelist ptr obfuscation
+    - tools/accounting/getdelays.c: fix netlink attribute length
+    - hwrng: imx-rngc - fix an error path
+    - ACPI: PM: Add acpi_[un]register_wakeup_handler()
+    - platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()
+    - ASoC: jz4740-i2s: Fix divider written at incorrect offset in register
+    - IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
+    - IB/hfi1: Fix memory leaks in sysfs registration and unregistration
+    - IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads
+    - ARM: imx: Enable ARM_ERRATA_814220 for i.MX6UL and i.MX7D
+    - ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A
+    - ceph: remove the extra slashes in the server path
+    - ceph: canonicalize server path in place
+    - include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for
+      swap
+    - RDMA/ucma: Put a lock around every call to the rdma_cm layer
+    - RDMA/cma: Teach lockdep about the order of rtnl and lock
+    - RDMA/siw: Fix passive connection establishment
+    - Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
+    - RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
+    - blk-mq: Keep set->nr_hw_queues and set->map[].nr_queues in sync
+    - fbcon: fix null-ptr-deref in fbcon_switch
+    - iommu/vt-d: Allow devices with RMRRs to use identity domain
+    - Linux 5.4.32
+
+  * Focal update: v5.4.31 upstream stable release (LP: #1871651)
+    - nvme-rdma: Avoid double freeing of async event data
+    - kconfig: introduce m32-flag and m64-flag
+    - drm/amd/display: Add link_rate quirk for Apple 15" MBP 2017
+    - drm/bochs: downgrade pci_request_region failure from error to warning
+    - initramfs: restore default compression behavior
+    - drm/amdgpu: fix typo for vcn1 idle check
+    - [Packaging] add libcap-dev dependency
+    - tools/power turbostat: Fix gcc build warnings
+    - tools/power turbostat: Fix missing SYS_LPI counter on some Chromebooks
+    - tools/power turbostat: Fix 32-bit capabilities warning
+    - net/mlx5e: kTLS, Fix TCP seq off-by-1 issue in TX resync flow
+    - XArray: Fix xa_find_next for large multi-index entries
+    - padata: fix uninitialized return value in padata_replace()
+    - brcmfmac: abort and release host after error
+    - misc: rtsx: set correct pcr_ops for rts522A
+    - misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices
+    - misc: pci_endpoint_test: Avoid using module parameter to determine irqtype
+    - PCI: sysfs: Revert "rescan" file renames
+    - coresight: do not use the BIT() macro in the UAPI header
+    - mei: me: add cedar fork device ids
+    - nvmem: check for NULL reg_read and reg_write before dereferencing
+    - extcon: axp288: Add wakeup support
+    - power: supply: axp288_charger: Add special handling for HP Pavilion x2 10
+    - Revert "dm: always call blk_queue_split() in dm_process_bio()"
+    - ALSA: hda/ca0132 - Add Recon3Di quirk to handle integrated sound on EVGA X99
+      Classified motherboard
+    - soc: mediatek: knows_txdone needs to be set in Mediatek CMDQ helper
+    - net/mlx5e: kTLS, Fix wrong value in record tracker enum
+    - iwlwifi: consider HE capability when setting LDPC
+    - iwlwifi: yoyo: don't add TLV offset when reading FIFOs
+    - iwlwifi: dbg: don't abort if sending DBGC_SUSPEND_RESUME fails
+    - rxrpc: Fix sendmsg(MSG_WAITALL) handling
+    - IB/hfi1: Ensure pq is not left on waitlist
+    - tcp: fix TFO SYNACK undo to avoid double-timestamp-undo
+    - watchdog: iTCO_wdt: Export vendorsupport
+    - watchdog: iTCO_wdt: Make ICH_RES_IO_SMI optional
+    - i2c: i801: Do not add ICH_RES_IO_SMI for the iTCO_wdt device
+    - net: Fix Tx hash bound checking
+    - padata: always acquire cpu_hotplug_lock before pinst->lock
+    - mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
+    - Linux 5.4.31
+
+  * Add hw timestamps to received skbs in peak_canfd (LP: #1874124)
+    - can: peak_canfd: provide hw timestamps in rx skbs
+
+  * kselftest: seccomp kill_after_ptrace() timeout (LP: #1872047)
+    - SAUCE: kselftest/runner: allow to properly deliver signals to tests
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Tue, 05 May 2020 12:36:10 +0200
+
+linux (5.4.0-29.33) focal; urgency=medium
+
+  * focal/linux: 5.4.0-29.33 -proposed tracker (LP: #1875858)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * Add signed modules for the 435 NVIDIA driver (LP: #1875888)
+    - [Packaging] NVIDIA -- add signed modules for the 435 NVIDIA driver
+
+  * built-using constraints preventing uploads (LP: #1875601)
+    - temporarily drop Built-Using data
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Wed, 29 Apr 2020 15:34:16 +0200
+
+linux (5.4.0-28.32) focal; urgency=medium
+
+  * CVE-2020-11884
+    - SAUCE: s390/mm: fix page table upgrade vs 2ndary address mode accesses
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Wed, 22 Apr 2020 11:08:40 -0300
+
+linux (5.4.0-26.30) focal; urgency=medium
+
+  * focal/linux: 5.4.0-26.30 -proposed tracker (LP: #1873882)
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+
+  * swap storms kills interactive use (LP: #1861359)
+    - SAUCE: drm/i915: prevent direct writeback from the shrinker
+
+  * 5.4.0-24.28 does not seem to apply rtprio, whereas -21 does. (LP: #1873315)
+    - [Config] lowlatency: turn off RT_GROUP_SCHED
+
+  * [RTL810xE] No ethernet connection (LP: #1871182)
+    - net: phy: realtek: fix handling of RTL8105e-integrated PHY
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 20 Apr 2020 18:33:49 +0200
+
+linux (5.4.0-25.29) focal; urgency=medium
+
+  * focal/linux: 5.4.0-25.29 -proposed tracker (LP: #1873459)
+
+  * [TGL] VMD support in TGL (LP: #1855954)
+    - PCI: vmd: Add bus 224-255 restriction decode
+    - PCI: vmd: Add device id for VMD device 8086:9A0B
+
+  * Can not see the storage with Intel RAID On mode enabled on Intel Comet Lake
+    (LP: #1871812)
+    - ahci: Add Intel Comet Lake PCH RAID PCI ID
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 17 Apr 2020 08:41:16 -0500
+
+linux (5.4.0-24.28) focal; urgency=medium
+
+  * focal/linux: 5.4.0-24.28 -proposed tracker (LP: #1871939)
+
+  * getitimer returns it_value=0 erroneously (LP: #1349028)
+    - [Config] CONTEXT_TRACKING_FORCE policy should be unset
+
+  * 12d1:1038 Dual-Role OTG device on non-HNP port - unable to enumerate USB
+    device on port 1 (LP: #1047527)
+    - [Config] USB_OTG_FSM policy not needed
+
+  * Add DCPD backlight support for HP CML system (LP: #1871589)
+    - SAUCE: drm/i915: Force DPCD backlight mode for HP CML 2020 system
+
+  * Backlight brightness cannot be adjusted using keys (LP: #1860303)
+    - SAUCE drm/i915: Force DPCD backlight mode for HP Spectre x360 Convertible
+      13t-aw100
+
+  * CVE-2020-11494
+    - slcan: Don't transmit uninitialized stack data in padding
+
+  * Ubuntu Kernel Support for OpenPOWER NV Secure & Trusted Boot (LP: #1866909)
+    - powerpc: Detect the secure boot mode of the system
+    - powerpc/ima: Add support to initialize ima policy rules
+    - powerpc: Detect the trusted boot state of the system
+    - powerpc/ima: Define trusted boot policy
+    - ima: Make process_buffer_measurement() generic
+    - certs: Add wrapper function to check blacklisted binary hash
+    - ima: Check against blacklisted hashes for files with modsig
+    - powerpc/ima: Update ima arch policy to check for blacklist
+    - powerpc/ima: Indicate kernel modules appended signatures are enforced
+    - powerpc/powernv: Add OPAL API interface to access secure variable
+    - powerpc: expose secure variables to userspace via sysfs
+    - x86/efi: move common keyring handler functions to new file
+    - powerpc: Load firmware trusted keys/hashes into kernel keyring
+    - x86/efi: remove unused variables
+
+  * [roce-0227]sync mainline kernel 5.6rc3  roce patchset into ubuntu HWE kernel
+    branch (LP: #1864950)
+    - RDMA/hns: Cleanups of magic numbers
+    - RDMA/hns: Optimize eqe buffer allocation flow
+    - RDMA/hns: Add the workqueue framework for flush cqe handler
+    - RDMA/hns: Delayed flush cqe process with workqueue
+    - RDMA/hns: fix spelling mistake: "attatch" -> "attach"
+    - RDMA/hns: Initialize all fields of doorbells to zero
+    - RDMA/hns: Treat revision HIP08_A as a special case
+    - RDMA/hns: Use flush framework for the case in aeq
+    - RDMA/hns: Stop doorbell update while qp state error
+    - RDMA/hns: Optimize qp destroy flow
+    - RDMA/hns: Optimize qp context create and destroy flow
+    - RDMA/hns: Optimize qp number assign flow
+    - RDMA/hns: Optimize qp buffer allocation flow
+    - RDMA/hns: Optimize qp param setup flow
+    - RDMA/hns: Optimize kernel qp wrid allocation flow
+    - RDMA/hns: Optimize qp doorbell allocation flow
+    - RDMA/hns: Check if depth of qp is 0 before configure
+
+  * [hns3-0316]sync mainline kernel 5.6rc4  hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1867586)
+    - net: hns3: modify an unsuitable print when setting unknown duplex to fibre
+    - net: hns3: add enabled TC numbers and DWRR weight info in debugfs
+    - net: hns3: add support for dump MAC ID and loopback status in debugfs
+    - net: hns3: add missing help info for QS shaper in debugfs
+    - net: hns3: fix some mixed type assignment
+    - net: hns3: rename macro HCLGE_MAX_NCL_CONFIG_LENGTH
+    - net: hns3: remove an unnecessary resetting check in
+      hclge_handle_hw_ras_error()
+    - net: hns3: delete some reduandant code
+    - net: hns3: add a check before PF inform VF to reset
+    - net: hns3: print out status register when VF receives unknown source
+      interrupt
+    - net: hns3: print out command code when dump fails in debugfs
+    - net: hns3: synchronize some print relating to reset issue
+    - net: hns3: delete unnecessary logs after kzalloc fails
+
+  * [SRU][F/U/OEM-5.6] UBUNTU: SAUCE: Fix amdgpu hang during acpi event
+    (LP: #1871316)
+    - SAUCE: drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event
+
+  * alsa: make the dmic detection align to the mainline kernel-5.6
+    (LP: #1871284)
+    - ALSA: hda: add Intel DSP configuration / probe code
+    - ALSA: hda: fix intel DSP config
+    - ALSA: hda: Allow non-Intel device probe gracefully
+    - ALSA: hda: More constifications
+    - ALSA: hda: Rename back to dmic_detect option
+    - [Config] SND_INTEL_DSP_CONFIG=m
+
+  * add_key05 from ubuntu_ltp_syscalls failed (LP: #1869644)
+    - KEYS: reaching the keys quotas correctly
+
+  * Fix authentication fail on Realtek WiFi 8723de (LP: #1871300)
+    - SAUCE: rtw88: No retry and report for auth and assoc
+    - SAUCE: rtw88: fix rate for a while after being connected
+    - SAUCE: rtw88: Move driver IQK to set channel before association for 11N chip
+
+  * Add Mute LED support for an HP laptop (LP: #1871090)
+    - ALSA: hda/realtek: Enable mute LED on an HP system
+
+  * dscr_sysfs_test / futex_bench / tm-unavailable  in powerpc from
+    ubuntu_kernel_selftests timeout on PowerPC nodes with B-5.3 (LP: #1864642)
+    - Revert "UBUNTU: SAUCE: selftests/powerpc -- Disable timeout for benchmark
+      and tm tests"
+    - selftests/powerpc: Turn off timeout setting for benchmarks, dscr, signal, tm
+
+  * Update 20.0.4 NVMe Core, NVMe FC Transport and nvme-cli for Broadcom Emulex
+    lpfc driver 12.6.0.x dependencies (LP: #1856340)
+    - nvme-fc: Sync nvme-fc header to FC-NVME-2
+    - nvme-fc and nvmet-fc: sync with FC-NVME-2 header changes
+    - nvme-fc: Set new cmd set indicator in nvme-fc cmnd iu
+    - nvme-fc: clarify error messages
+    - nvme-fc: ensure association_id is cleared regardless of a Disconnect LS
+    - nvme: resync include/linux/nvme.h with nvmecli
+    - nvme: Fix parsing of ANA log page
+
+  * Update Broadcom Emulex lpfc driver in 5.4 to 12.6.0.x from 5.5
+    (LP: #1855303)
+    - scsi: lpfc: Fix pt2pt discovery on SLI3 HBAs
+    - scsi: lpfc: Fix premature re-enabling of interrupts in lpfc_sli_host_down
+    - scsi: lpfc: Fix miss of register read failure check
+    - scsi: lpfc: Fix NVME io abort failures causing hangs
+    - scsi: lpfc: Fix device recovery errors after PLOGI failures
+    - scsi: lpfc: Fix GPF on scsi command completion
+    - scsi: lpfc: Fix NVMe ABTS in response to receiving an ABTS
+    - scsi: lpfc: Fix coverity errors on NULL pointer checks
+    - scsi: lpfc: Fix host hang at boot or slow boot
+    - scsi: lpfc: Update async event logging
+    - scsi: lpfc: Complete removal of FCoE T10 PI support on SLI-4 adapters
+    - scsi: lpfc: cleanup: remove unused fcp_txcmlpq_cnt
+    - scsi: lpfc: Update lpfc version to 12.4.0.1
+    - scsi: lpfc: Make function lpfc_defer_pt2pt_acc static
+    - scsi: lpfc: fix lpfc_nvmet_mrq to be bound by hdw queue count
+    - scsi: lpfc: Fix reporting of read-only fw error errors
+    - scsi: lpfc: Fix lockdep errors in sli_ringtx_put
+    - scsi: lpfc: fix coverity error of dereference after null check
+    - scsi: lpfc: Slight fast-path performance optimizations
+    - scsi: lpfc: Remove lock contention target write path
+    - scsi: lpfc: Revise interrupt coalescing for missing scenarios
+    - scsi: lpfc: Make FW logging dynamically configurable
+    - scsi: lpfc: Add log macros to allow print by serverity or verbosity setting
+    - scsi: lpfc: Add FA-WWN Async Event reporting
+    - scsi: lpfc: Add FC-AL support to lpe32000 models
+    - scsi: lpfc: Add additional discovery log messages
+    - scsi: lpfc: Update lpfc version to 12.6.0.0
+    - scsi: lpfc: lpfc_attr: Fix Use plain integer as NULL pointer
+    - scsi: lpfc: lpfc_nvmet: Fix Use plain integer as NULL pointer
+    - scsi: lpfc: fix build error of lpfc_debugfs.c for vfree/vmalloc
+    - scsi: lpfc: fix spelling error in MAGIC_NUMER_xxx
+    - scsi: lpfc: Fix NULL check before mempool_destroy is not needed
+    - scsi: lpfc: Make lpfc_debugfs_ras_log_data static
+    - scsi: lpfc: Fix configuration of BB credit recovery in service parameters
+    - scsi: lpfc: Fix kernel crash at lpfc_nvme_info_show during remote port
+      bounce
+    - scsi: lpfc: Fix dynamic fw log enablement check
+    - scsi: lpfc: Sync with FC-NVMe-2 SLER change to require Conf with SLER
+    - scsi: lpfc: Clarify FAWNN error message
+    - scsi: lpfc: Add registration for CPU Offline/Online events
+    - scsi: lpfc: Change default IRQ model on AMD architectures
+    - scsi: lpfc: Add enablement of multiple adapter dumps
+    - scsi: lpfc: Update lpfc version to 12.6.0.1
+    - scsi: lpfc: Fix a kernel warning triggered by lpfc_sli4_enable_intr()
+    - scsi: lpfc: Fix lpfc_cpumask_of_node_init()
+    - scsi: lpfc: fix inlining of lpfc_sli4_cleanup_poll_list()
+    - scsi: lpfc: Initialize cpu_map for not present cpus
+    - scsi: lpfc: revise nvme max queues to be hdwq count
+    - scsi: lpfc: Update lpfc version to 12.6.0.2
+    - scsi: lpfc: size cpu map by last cpu id set
+    - scsi: lpfc: Fix incomplete NVME discovery when target
+    - scsi: lpfc: Fix missing check for CSF in Write Object Mbox Rsp
+    - scsi: lpfc: Fix Fabric hostname registration if system hostname changes
+    - scsi: lpfc: Fix ras_log via debugfs
+    - scsi: lpfc: Fix disablement of FC-AL on lpe35000 models
+    - scsi: lpfc: Fix unmap of dpp bars affecting next driver load
+    - scsi: lpfc: Fix MDS Latency Diagnostics Err-drop rates
+    - scsi: lpfc: Fix improper flag check for IO type
+    - scsi: lpfc: Update lpfc version to 12.6.0.3
+    - scsi: lpfc: Fix RQ buffer leakage when no IOCBs available
+    - scsi: lpfc: Fix lpfc_io_buf resource leak in lpfc_get_scsi_buf_s4 error path
+    - scsi: lpfc: Fix broken Credit Recovery after driver load
+    - scsi: lpfc: Fix registration of ELS type support in fdmi
+    - scsi: lpfc: Fix release of hwq to clear the eq relationship
+    - scsi: lpfc: Fix compiler warning on frame size
+    - scsi: lpfc: Fix coverity errors in fmdi attribute handling
+    - scsi: lpfc: Remove handler for obsolete ELS - Read Port Status (RPS)
+    - scsi: lpfc: Clean up hba max_lun_queue_depth checks
+    - scsi: lpfc: Update lpfc version to 12.6.0.4
+    - scsi: lpfc: Copyright updates for 12.6.0.4 patches
+    - scsi: fc: Update Descriptor definition and add RDF and Link Integrity FPINs
+    - scsi: lpfc: add RDF registration and Link Integrity FPIN logging
+
+  * lockdown on power (LP: #1855668) // Ubuntu Kernel Support for OpenPOWER NV
+    Secure & Trusted Boot (LP: #1866909)
+    - [Config] Enable configs for OpenPOWER NV Secure & Trusted Boot
+
+  * lockdown on power (LP: #1855668)
+    - SAUCE: (lockdown) powerpc: lock down kernel in secure boot mode
+
+  * Focal update: v5.4.30 upstream stable release (LP: #1870571)
+    - mac80211: Check port authorization in the ieee80211_tx_dequeue() case
+    - mac80211: fix authentication with iwlwifi/mvm
+    - serial: sprd: Fix a dereference warning
+    - vt: selection, introduce vc_is_sel
+    - vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
+    - vt: switch vt_dont_switch to bool
+    - vt: vt_ioctl: remove unnecessary console allocation checks
+    - vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
+    - vt: vt_ioctl: fix use-after-free in vt_in_use()
+    - platform/x86: pmc_atom: Add Lex 2I385SW to critclk_systems DMI table
+    - bpf: Explicitly memset the bpf_attr structure
+    - bpf: Explicitly memset some bpf info structures declared on the stack
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 CHT + AXP288 model
+    - net: ks8851-ml: Fix IO operations, again
+    - clk: imx: Align imx sc clock msg structs to 4
+    - clk: imx: Align imx sc clock parent msg structs to 4
+    - clk: ti: am43xx: Fix clock parent for RTC clock
+    - libceph: fix alloc_msg_with_page_vector() memory leaks
+    - arm64: alternative: fix build with clang integrated assembler
+    - perf map: Fix off by one in strncpy() size argument
+    - ARM: dts: oxnas: Fix clear-mask property
+    - ARM: bcm2835-rpi-zero-w: Add missing pinctrl name
+    - ARM: dts: imx6: phycore-som: fix arm and soc minimum voltage
+    - ARM: dts: N900: fix onenand timings
+    - ARM: dts: sun8i: r40: Move AHCI device node based on address order
+    - arm64: dts: ls1043a-rdb: correct RGMII delay mode to rgmii-id
+    - arm64: dts: ls1046ardb: set RGMII interfaces to RGMII_ID mode
+    - Linux 5.4.30
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_RT_GROUP_SCHED=y
+    - SAUCE: powerpc/ima: require IMA module signatures only if MODULE_SIG is not
+      enabled
+    - SAUCE: Update aufs to 5.4.3 20200302
+    - SAUCE: drm/amdgpu: Remove missing firmware files from modinfo
+    - SAUCE: drm/i915: Fix ref->mutex deadlock in i915_active_wait()
+    - SAUCE: drm/i915: Synchronize active and retire callbacks
+    - SAUCE: apparmor: add a valid state flags check
+    - SAUCE: aapparmor: add consistency check between state and dfa diff encode
+      flags
+    - SAUCE: aapparmor: remove useless aafs_create_symlink
+    - SAUCE: aapparmor: fail unpack if profile mode is unknown
+    - SAUCE: apparmor: ensure that dfa state tables have entries
+    - SAUCE: apparmor: fix potential label refcnt leak in aa_change_profile
+    - SAUCE: security/apparmor/label.c: Clean code by removing redundant
+      instructions
+    - [Config] Remove PCIEASPM_DEBUG from annotations
+    - [Config] Remove HEADER_TEST from annotations
+    - SAUCE: selftests/seccomp: allow clock_nanosleep instead of nanosleep
+    - [Debian] Allow building linux-libc-dev from linux-riscv
+    - [Packaging] Remove riscv64 packaging from master kernel
+    - [Config] Remove CONFIG_SND_HDA_INTEL_DETECT_DMIC from annotations
+
+  * Miscellaneous upstream changes
+    - net/bpfilter: remove superfluous testing message
+    - apparmor: increase left match history buffer size
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 09 Apr 2020 16:49:54 -0500
+
+linux (5.4.0-23.27) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Enable riscv64 build
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sat, 04 Apr 2020 14:03:47 -0500
+
+linux (5.4.0-22.26) focal; urgency=medium
+
+  * focal/linux: 5.4.0-22.26 -proposed tracker (LP: #1870502)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+    - [Packaging] update helper scripts
+    - update dkms package versions
+
+  * [SFC-0316]sync mainline kernel 5.7rc1 SFC patchset into ubuntu HWE kernel
+    branch (LP: #1867588)
+    - spi: Allow SPI controller override device buswidth
+    - spi: HiSilicon v3xx: Properly set CMD_CONFIG for Dual/Quad modes
+    - spi: HiSilicon v3xx: Use DMI quirk to set controller buswidth override bits
+
+  * [hns3-0316]sync mainline kernel 5.6rc4  hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1867586)
+    - net: hns3: fix VF VLAN table entries inconsistent issue
+    - net: hns3: fix RMW issue for VLAN filter switch
+    - net: hns3: clear port base VLAN when unload PF
+
+  * [sas-0316]sync mainline kernel 5.6rc1 roce patchset into ubuntu HWE kernel
+    branch (LP: #1867587)
+    - scsi: hisi_sas: use threaded irq to process CQ interrupts
+    - scsi: hisi_sas: replace spin_lock_irqsave/spin_unlock_restore with
+      spin_lock/spin_unlock
+    - scsi: hisi_sas: Replace magic number when handle channel interrupt
+    - scsi: hisi_sas: Modify the file permissions of trigger_dump to write only
+    - scsi: hisi_sas: Add prints for v3 hw interrupt converge and automatic
+      affinity
+    - scsi: hisi_sas: Rename hisi_sas_cq.pci_irq_mask
+
+  * Revert "nvme_fc: add module to ops template to allow module references"
+    (LP: #1869947)
+    - SAUCE: Revert "nvme_fc: add module to ops template to allow module
+      references"
+
+  * suspend only works once on ThinkPad X1 Carbon gen 7 (LP: #1865570)
+    - Revert "UBUNTU: SAUCE: e1000e: Disable s0ix flow for X1 Carbon 7th"
+    - SAUCE: e1000e: bump up timeout to wait when ME un-configure ULP mode
+
+  * Focal update: v5.4.29 upstream stable release (LP: #1870142)
+    - mmc: core: Allow host controllers to require R1B for CMD6
+    - mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard
+    - mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command
+    - mmc: sdhci-omap: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
+    - mmc: sdhci-tegra: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
+    - ACPI: PM: s2idle: Rework ACPI events synchronization
+    - cxgb4: fix throughput drop during Tx backpressure
+    - cxgb4: fix Txq restart check during backpressure
+    - geneve: move debug check after netdev unregister
+    - hsr: fix general protection fault in hsr_addr_is_self()
+    - ipv4: fix a RCU-list lock in inet_dump_fib()
+    - macsec: restrict to ethernet devices
+    - mlxsw: pci: Only issue reset when system is ready
+    - mlxsw: spectrum_mr: Fix list iteration in error path
+    - net/bpfilter: fix dprintf usage for /dev/kmsg
+    - net: cbs: Fix software cbs to consider packet sending time
+    - net: dsa: Fix duplicate frames flooded by learning
+    - net: dsa: mt7530: Change the LINK bit to reflect the link status
+    - net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop
+    - net: ena: Add PCI shutdown handler to allow safe kexec
+    - net: mvneta: Fix the case where the last poll did not process all rx
+    - net/packet: tpacket_rcv: avoid a producer race condition
+    - net: phy: dp83867: w/a for fld detect threshold bootstrapping issue
+    - net: phy: mdio-bcm-unimac: Fix clock handling
+    - net: phy: mdio-mux-bcm-iproc: check clk_prepare_enable() return value
+    - net: qmi_wwan: add support for ASKEY WWHC050
+    - net/sched: act_ct: Fix leak of ct zone template on replace
+    - net_sched: cls_route: remove the right filter from hashtable
+    - net_sched: hold rtnl lock in tcindex_partial_destroy_work()
+    - net_sched: keep alloc_hash updated after hash allocation
+    - net: stmmac: dwmac-rk: fix error path in rk_gmac_probe
+    - NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
+    - r8169: re-enable MSI on RTL8168c
+    - slcan: not call free_netdev before rtnl_unlock in slcan_open
+    - tcp: also NULL skb->dev when copy was needed
+    - tcp: ensure skb->dev is NULL before leaving TCP stack
+    - tcp: repair: fix TCP_QUEUE_SEQ implementation
+    - vxlan: check return value of gro_cells_init()
+    - bnxt_en: Fix Priority Bytes and Packets counters in ethtool -S.
+    - bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets()
+    - bnxt_en: Return error if bnxt_alloc_ctx_mem() fails.
+    - bnxt_en: Free context memory after disabling PCI in probe error path.
+    - bnxt_en: Reset rings if ring reservation fails during open()
+    - net: ip_gre: Separate ERSPAN newlink / changelink callbacks
+    - net: ip_gre: Accept IFLA_INFO_DATA-less configuration
+    - hsr: use rcu_read_lock() in hsr_get_node_{list/status}()
+    - hsr: add restart routine into hsr_get_node_list()
+    - hsr: set .netnsok flag
+    - net/mlx5: DR, Fix postsend actions write length
+    - net/mlx5e: Enhance ICOSQ WQE info fields
+    - net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
+    - net/mlx5e: Fix ICOSQ recovery flow with Striding RQ
+    - net/mlx5e: Do not recover from a non-fatal syndrome
+    - cgroup-v1: cgroup_pidlist_next should update position index
+    - nfs: add minor version to nfs_server_key for fscache
+    - cpupower: avoid multiple definition with gcc -fno-common
+    - drivers/of/of_mdio.c:fix of_mdiobus_register()
+    - cgroup1: don't call release_agent when it is ""
+    - [Config] updateconfigs for DPAA_ERRATUM_A050385
+    - dt-bindings: net: FMan erratum A050385
+    - arm64: dts: ls1043a: FMan erratum A050385
+    - fsl/fman: detect FMan erratum A050385
+    - drm/amd/display: update soc bb for nv14
+    - drm/amdgpu: correct ROM_INDEX/DATA offset for VEGA20
+    - drm/exynos: Fix cleanup of IOMMU related objects
+    - iommu/vt-d: Silence RCU-list debugging warnings
+    - s390/qeth: don't reset default_out_queue
+    - s390/qeth: handle error when backing RX buffer
+    - scsi: ipr: Fix softlockup when rescanning devices in petitboot
+    - mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
+    - dpaa_eth: Remove unnecessary boolean expression in dpaa_get_headroom
+    - sxgbe: Fix off by one in samsung driver strncpy size arg
+    - net: hns3: fix "tc qdisc del" failed issue
+    - iommu/vt-d: Fix debugfs register reads
+    - iommu/vt-d: Populate debugfs if IOMMUs are detected
+    - iwlwifi: mvm: fix non-ACPI function
+    - i2c: hix5hd2: add missed clk_disable_unprepare in remove
+    - Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()
+    - Input: fix stale timestamp on key autorepeat events
+    - Input: synaptics - enable RMI on HP Envy 13-ad105ng
+    - Input: avoid BIT() macro usage in the serio.h UAPI header
+    - IB/rdmavt: Free kernel completion queue when done
+    - RDMA/core: Fix missing error check on dev_set_name()
+    - gpiolib: Fix irq_disable() semantics
+    - RDMA/nl: Do not permit empty devices names during RDMA_NLDEV_CMD_NEWLINK/SET
+    - RDMA/mad: Do not crash if the rdma device does not have a umad interface
+    - ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL
+    - ceph: fix memory leak in ceph_cleanup_snapid_map()
+    - ARM: dts: dra7: Add bus_dma_limit for L3 bus
+    - ARM: dts: omap5: Add bus_dma_limit for L3 bus
+    - x86/ioremap: Fix CONFIG_EFI=n build
+    - perf probe: Fix to delete multiple probe event
+    - perf probe: Do not depend on dwfl_module_addrsym()
+    - rtlwifi: rtl8188ee: Fix regression due to commit d1d1a96bdb44
+    - tools: Let O= makes handle a relative path with -C option
+    - scripts/dtc: Remove redundant YYLOC global declaration
+    - scsi: sd: Fix optimal I/O size for devices that change reported values
+    - nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type
+    - mac80211: drop data frames without key on encrypted links
+    - mac80211: mark station unauthorized before key removal
+    - mm/swapfile.c: move inode_lock out of claim_swapfile
+    - drivers/base/memory.c: indicate all memory blocks as removable
+    - mm/sparse: fix kernel crash with pfn_section_valid check
+    - mm: fork: fix kernel_stack memcg stats for various stack implementations
+    - gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk
+    - gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT + AXP288 model
+    - bpf: Fix cgroup ref leak in cgroup_bpf_inherit on out-of-memory
+    - RDMA/core: Ensure security pkey modify is not lost
+    - afs: Fix handling of an abort from a service handler
+    - genirq: Fix reference leaks on irq affinity notifiers
+    - xfrm: handle NETDEV_UNREGISTER for xfrm device
+    - vti[6]: fix packet tx through bpf_redirect() in XinY cases
+    - RDMA/mlx5: Fix the number of hwcounters of a dynamic counter
+    - RDMA/mlx5: Fix access to wrong pointer while performing flush due to error
+    - RDMA/mlx5: Block delay drop to unprivileged users
+    - xfrm: fix uctx len check in verify_sec_ctx_len
+    - xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
+    - xfrm: policy: Fix doulbe free in xfrm_policy_timer
+    - afs: Fix client call Rx-phase signal handling
+    - afs: Fix some tracing details
+    - afs: Fix unpinned address list during probing
+    - ieee80211: fix HE SPR size calculation
+    - mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX
+    - netfilter: flowtable: reload ip{v6}h in nf_flow_tuple_ip{v6}
+    - netfilter: nft_fwd_netdev: validate family and chain type
+    - netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress
+    - i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status()
+    - bpf, x32: Fix bug with JMP32 JSET BPF_X checking upper bits
+    - bpf: Initialize storage pointers to NULL to prevent freeing garbage pointer
+    - bpf/btf: Fix BTF verification of enum members in struct/union
+    - bpf, sockmap: Remove bucket->lock from sock_{hash|map}_free
+    - ARM: dts: sun8i-a83t-tbs-a711: Fix USB OTG mode detection
+    - vti6: Fix memory leak of skb if input policy check fails
+    - r8169: fix PHY driver check on platforms w/o module softdeps
+    - clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources
+    - USB: serial: option: add support for ASKEY WWHC050
+    - USB: serial: option: add BroadMobi BM806U
+    - USB: serial: option: add Wistron Neweb D19Q1
+    - USB: cdc-acm: restore capability check order
+    - USB: serial: io_edgeport: fix slab-out-of-bounds read in
+      edge_interrupt_callback
+    - usb: musb: fix crash with highmen PIO and usbmon
+    - media: flexcop-usb: fix endpoint sanity check
+    - media: usbtv: fix control-message timeouts
+    - staging: kpc2000: prevent underflow in cpld_reconfigure()
+    - staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
+    - staging: wlan-ng: fix ODEBUG bug in prism2sta_disconnect_usb
+    - staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
+    - ahci: Add Intel Comet Lake H RAID PCI ID
+    - libfs: fix infoleak in simple_attr_read()
+    - media: ov519: add missing endpoint sanity checks
+    - media: dib0700: fix rc endpoint lookup
+    - media: stv06xx: add missing descriptor sanity checks
+    - media: xirlink_cit: add missing descriptor sanity checks
+    - media: v4l2-core: fix a use-after-free bug of sd->devnode
+    - update wireguard dkms package version
+    - [Config] updateconfigs for NET_REDIRECT
+    - net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build
+    - Linux 5.4.29
+
+  * Restore kernel control of PCIe DPC via option (LP: #1869423)
+    - PCI/DPC: Add "pcie_ports=dpc-native" to allow DPC without AER control
+
+  * swap storms kills interactive use (LP: #1861359)
+    - SAUCE: mm/page_alloc.c: disable memory reclaim watermark boosting by default
+
+  * sysfs: incorrect network device permissions on network namespace change
+    (LP: #1865359)
+    - sysfs: add sysfs_file_change_owner()
+    - sysfs: add sysfs_link_change_owner()
+    - sysfs: add sysfs_group{s}_change_owner()
+    - sysfs: add sysfs_change_owner()
+    - device: add device_change_owner()
+    - drivers/base/power: add dpm_sysfs_change_owner()
+    - net-sysfs: add netdev_change_owner()
+    - net-sysfs: add queue_change_owner()
+    - net: fix sysfs permssions when device changes network namespace
+    - sysfs: fix static inline declaration of sysfs_groups_change_owner()
+
+  * Kernel Oops - general protection fault: 0000 [#1] SMP PTI after
+    disconnecting thunderbolt docking station (LP: #1864754)
+    - SAUCE: ptp: free ptp clock properly
+
+  * [Selftests] Apply various fixes and improvements (LP: #1870543)
+    - SAUCE: selftests: net: ip_defrag: limit packet to 1000 fragments
+    - SAUCE: kselftest/runner: avoid using timeout if timeout is disabled
+    - SAUCE: selftests/seccomp -- Disable timeout for seccomp tests
+
+  * Focal update: v5.4.28 upstream stable release (LP: #1869061)
+    - locks: fix a potential use-after-free problem when wakeup a waiter
+    - locks: reinstate locks_delete_block optimization
+    - spi: spi-omap2-mcspi: Support probe deferral for DMA channels
+    - drm/mediatek: Find the cursor plane instead of hard coding it
+    - phy: ti: gmii-sel: fix set of copy-paste errors
+    - phy: ti: gmii-sel: do not fail in case of gmii
+    - ARM: dts: dra7-l4: mark timer13-16 as pwm capable
+    - spi: qup: call spi_qup_pm_resume_runtime before suspending
+    - powerpc: Include .BTF section
+    - cifs: fix potential mismatch of UNC paths
+    - cifs: add missing mount option to /proc/mounts
+    - ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
+    - spi: pxa2xx: Add CS control clock quirk
+    - spi/zynqmp: remove entry that causes a cs glitch
+    - drm/exynos: dsi: propagate error value and silence meaningless warning
+    - drm/exynos: dsi: fix workaround for the legacy clock name
+    - drm/exynos: hdmi: don't leak enable HDMI_EN regulator if probe fails
+    - drivers/perf: fsl_imx8_ddr: Correct the CLEAR bit definition
+    - drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer
+    - altera-stapl: altera_get_note: prevent write beyond end of 'key'
+    - dm bio record: save/restore bi_end_io and bi_integrity
+    - dm integrity: use dm_bio_record and dm_bio_restore
+    - riscv: avoid the PIC offset of static percpu data in module beyond 2G limits
+    - ASoC: stm32: sai: manage rebind issue
+    - spi: spi_register_controller(): free bus id on error paths
+    - riscv: Force flat memory model with no-mmu
+    - riscv: Fix range looking for kernel image memblock
+    - drm/amdgpu: clean wptr on wb when gpu recovery
+    - drm/amd/display: Clear link settings on MST disable connector
+    - drm/amd/display: fix dcc swath size calculations on dcn1
+    - xenbus: req->body should be updated before req->state
+    - xenbus: req->err should be updated before req->state
+    - block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
+    - parse-maintainers: Mark as executable
+    - binderfs: use refcount for binder control devices too
+    - Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
+    - usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
+    - USB: serial: option: add ME910G1 ECM composition 0x110b
+    - usb: host: xhci-plat: add a shutdown
+    - USB: serial: pl2303: add device-id for HP LD381
+    - usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller 1022:145c
+    - usb: typec: ucsi: displayport: Fix NULL pointer dereference
+    - usb: typec: ucsi: displayport: Fix a potential race during registration
+    - USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
+    - USB: cdc-acm: fix rounding error in TIOCSSERIAL
+    - ALSA: line6: Fix endless MIDI read loop
+    - ALSA: hda/realtek - Enable headset mic of Acer X2660G with ALC662
+    - ALSA: hda/realtek - Enable the headset of Acer N50-600 with ALC662
+    - ALSA: seq: virmidi: Fix running status after receiving sysex
+    - ALSA: seq: oss: Fix running status after receiving sysex
+    - ALSA: pcm: oss: Avoid plugin buffer overflow
+    - ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
+    - tty: fix compat TIOCGSERIAL leaking uninitialized memory
+    - tty: fix compat TIOCGSERIAL checking wrong function ptr
+    - iio: chemical: sps30: fix missing triggered buffer dependency
+    - iio: st_sensors: remap SMO8840 to LIS2DH12
+    - iio: trigger: stm32-timer: disable master mode when stopping
+    - iio: accel: adxl372: Set iio_chan BE
+    - iio: magnetometer: ak8974: Fix negative raw values in sysfs
+    - iio: adc: stm32-dfsdm: fix sleep in atomic context
+    - iio: adc: at91-sama5d2_adc: fix differential channels in triggered mode
+    - iio: light: vcnl4000: update sampling periods for vcnl4200
+    - iio: light: vcnl4000: update sampling periods for vcnl4040
+    - mmc: rtsx_pci: Fix support for speed-modes that relies on tuning
+    - mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2
+    - mmc: sdhci-cadence: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN for UniPhier
+    - CIFS: fiemap: do not return EINVAL if get nothing
+    - kbuild: Disable -Wpointer-to-enum-cast
+    - staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
+    - staging: greybus: loopback_test: fix poll-mask build breakage
+    - staging/speakup: fix get_word non-space look-ahead
+    - intel_th: msu: Fix the unexpected state warning
+    - intel_th: Fix user-visible error codes
+    - intel_th: pci: Add Elkhart Lake CPU support
+    - modpost: move the namespace field in Module.symvers last
+    - rtc: max8907: add missing select REGMAP_IRQ
+    - arm64: compat: Fix syscall number of compat_clock_getres
+    - xhci: Do not open code __print_symbolic() in xhci trace events
+    - btrfs: fix log context list corruption after rename whiteout error
+    - drm/amd/amdgpu: Fix GPR read from debugfs (v2)
+    - drm/lease: fix WARNING in idr_destroy
+    - stm class: sys-t: Fix the use of time_after()
+    - memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event
+    - mm, memcg: fix corruption on 64-bit divisor in memory.high throttling
+    - mm, memcg: throttle allocators based on ancestral memory.high
+    - mm/hotplug: fix hot remove failure in SPARSEMEM|!VMEMMAP case
+    - mm: do not allow MADV_PAGEOUT for CoW pages
+    - epoll: fix possible lost wakeup on epoll_ctl() path
+    - mm: slub: be more careful about the double cmpxchg of freelist
+    - mm, slub: prevent kmalloc_node crashes and memory leaks
+    - page-flags: fix a crash at SetPageError(THP_SWAP)
+    - x86/mm: split vmalloc_sync_all()
+    - futex: Fix inode life-time issue
+    - futex: Unbreak futex hashing
+    - arm64: smp: fix smp_send_stop() behaviour
+    - arm64: smp: fix crash_smp_send_stop() behaviour
+    - nvmet-tcp: set MSG_MORE only if we actually have more to send
+    - drm/bridge: dw-hdmi: fix AVI frame colorimetry
+    - staging: greybus: loopback_test: fix potential path truncation
+    - staging: greybus: loopback_test: fix potential path truncations
+    - Linux 5.4.28
+
+  * Pop sound from build-in speaker during cold boot and resume from S3
+    (LP: #1866357) // Focal update: v5.4.28 upstream stable release
+    (LP: #1869061)
+    - ALSA: hda/realtek: Fix pop noise on ALC225
+
+  * Focal update: v5.4.28 upstream stable release (LP: #1869061)
+    - perf/x86/amd: Add support for Large Increment per Cycle Events
+    - EDAC/amd64: Add family ops for Family 19h Models 00h-0Fh
+    - x86/MCE/AMD, EDAC/mce_amd: Add new Load Store unit McaType
+    - EDAC/mce_amd: Always load on SMCA systems
+    - x86/amd_nb: Add Family 19h PCI IDs
+    - EDAC/amd64: Drop some family checks for newer systems
+
+  * Update mpt3sas Driver to 33.100.00.00 for Ubuntu 20.04 (LP: #1863574)
+    - scsi: mpt3sas: Register trace buffer based on NVDATA settings
+    - scsi: mpt3sas: Display message before releasing diag buffer
+    - scsi: mpt3sas: Free diag buffer without any status check
+    - scsi: mpt3sas: Maintain owner of buffer through UniqueID
+    - scsi: mpt3sas: clear release bit when buffer reregistered
+    - scsi: mpt3sas: Reuse diag buffer allocated at load time
+    - scsi: mpt3sas: Add app owned flag support for diag buffer
+    - scsi: mpt3sas: Fail release cmnd if diag buffer is released
+    - scsi: mpt3sas: Use Component img header to get Package ver
+    - scsi: mpt3sas: Fix module parameter max_msix_vectors
+    - scsi: mpt3sas: Bump mpt3sas driver version to 32.100.00.00
+    - scsi: mpt3sas: Clean up some indenting
+    - scsi: mpt3sas: change allocation option
+    - scsi: mpt3sas: Update MPI Headers to v02.00.57
+    - scsi: mpt3sas: Add support for NVMe shutdown
+    - scsi: mpt3sas: renamed _base_after_reset_handler function
+    - scsi: mpt3sas: Add support IOCs new state named COREDUMP
+    - scsi: mpt3sas: Handle CoreDump state from watchdog thread
+    - scsi: mpt3sas: print in which path firmware fault occurred
+    - scsi: mpt3sas: Optimize mpt3sas driver logging
+    - scsi: mpt3sas: Print function name in which cmd timed out
+    - scsi: mpt3sas: Remove usage of device_busy counter
+    - scsi: mpt3sas: Update drive version to 33.100.00.00
+
+  * Ubuntu 20.04: megaraid_sas driver update to version 07.713.01.00-rc1
+    (LP: #1863581)
+    - scsi: megaraid_sas: Unique names for MSI-X vectors
+    - scsi: megaraid_sas: remove unused variables 'debugBlk','fusion'
+    - compat_ioctl: use correct compat_ptr() translation in drivers
+    - scsi: megaraid_sas: Make poll_aen_lock static
+    - scsi: megaraid_sas: Reset adapter if FW is not in READY state after device
+      resume
+    - scsi: megaraid_sas: Set no_write_same only for Virtual Disk
+    - scsi: megaraid_sas: Update optimal queue depth for SAS and NVMe devices
+    - scsi: megaraid_sas: Do not kill host bus adapter, if adapter is already dead
+    - scsi: megaraid_sas: Do not kill HBA if JBOD Seqence map or RAID map is
+      disabled
+    - scsi: megaraid_sas: Do not set HBA Operational if FW is not in operational
+      state
+    - scsi: megaraid_sas: Re-Define enum DCMD_RETURN_STATUS
+    - scsi: megaraid_sas: Limit the number of retries for the IOCTLs causing
+      firmware fault
+    - scsi: megaraid_sas: Use Block layer API to check SCSI device in-flight IO
+      requests
+    - scsi: megaraid_sas: Update driver version to 07.713.01.00-rc1
+    - scsi: megaraid_sas: fixup MSIx interrupt setup during resume
+
+ -- Stefan Bader <stefan.bader@canonical.com>  Fri, 03 Apr 2020 16:28:40 +0200
+
+linux (5.4.0-21.25) focal; urgency=medium
+
+  * CVE-2020-8835
+    - SAUCE: bpf: undo incorrect __reg_bound_offset32 handling
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 26 Mar 2020 17:51:28 -0300
+
+linux (5.4.0-20.24) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (lockdown) Reduce lockdown level to INTEGRITY for secure boot
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 23 Mar 2020 14:54:04 -0500
+
+linux (5.4.0-19.23) focal; urgency=medium
+
+  * focal/linux: 5.4.0-19.23 -proposed tracker (LP: #1868347)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - update dkms package versions
+
+  * Focal update: v5.4.27 upstream stable release (LP: #1868538)
+    - netfilter: hashlimit: do not use indirect calls during gc
+    - netfilter: xt_hashlimit: unregister proc file before releasing mutex
+    - drm/amdgpu: Fix TLB invalidation request when using semaphore
+    - ACPI: watchdog: Allow disabling WDAT at boot
+    - HID: apple: Add support for recent firmware on Magic Keyboards
+    - ACPI: watchdog: Set default timeout in probe
+    - HID: hid-bigbenff: fix general protection fault caused by double kfree
+    - HID: hid-bigbenff: call hid_hw_stop() in case of error
+    - HID: hid-bigbenff: fix race condition for scheduled work during removal
+    - selftests/rseq: Fix out-of-tree compilation
+    - tracing: Fix number printing bug in print_synth_event()
+    - cfg80211: check reg_rule for NULL in handle_channel_custom()
+    - scsi: libfc: free response frame from GPN_ID
+    - net: usb: qmi_wwan: restore mtu min/max values after raw_ip switch
+    - net: ks8851-ml: Fix IRQ handling and locking
+    - mac80211: rx: avoid RCU list traversal under mutex
+    - net: ll_temac: Fix race condition causing TX hang
+    - net: ll_temac: Add more error handling of dma_map_single() calls
+    - net: ll_temac: Fix RX buffer descriptor handling on GFP_ATOMIC pressure
+    - net: ll_temac: Handle DMA halt condition caused by buffer underrun
+    - blk-mq: insert passthrough request into hctx->dispatch directly
+    - drm/amdgpu: fix memory leak during TDR test(v2)
+    - kbuild: add dtbs_check to PHONY
+    - kbuild: add dt_binding_check to PHONY in a correct place
+    - signal: avoid double atomic counter increments for user accounting
+    - slip: not call free_netdev before rtnl_unlock in slip_open
+    - net: phy: mscc: fix firmware paths
+    - hinic: fix a irq affinity bug
+    - hinic: fix a bug of setting hw_ioctxt
+    - hinic: fix a bug of rss configuration
+    - net: rmnet: fix NULL pointer dereference in rmnet_newlink()
+    - net: rmnet: fix NULL pointer dereference in rmnet_changelink()
+    - net: rmnet: fix suspicious RCU usage
+    - net: rmnet: remove rcu_read_lock in rmnet_force_unassociate_device()
+    - net: rmnet: do not allow to change mux id if mux id is duplicated
+    - net: rmnet: use upper/lower device infrastructure
+    - net: rmnet: fix bridge mode bugs
+    - net: rmnet: fix packet forwarding in rmnet bridge mode
+    - sfc: fix timestamp reconstruction at 16-bit rollover points
+    - jbd2: fix data races at struct journal_head
+    - blk-mq: insert flush request to the front of dispatch queue
+    - net: qrtr: fix len of skb_put_padto in qrtr_node_enqueue
+    - ARM: 8957/1: VDSO: Match ARMv8 timer in cntvct_functional()
+    - ARM: 8958/1: rename missed uaccess .fixup section
+    - mm: slub: add missing TID bump in kmem_cache_alloc_bulk()
+    - HID: google: add moonball USB id
+    - HID: add ALWAYS_POLL quirk to lenovo pixart mouse
+    - ARM: 8961/2: Fix Kbuild issue caused by per-task stack protector GCC plugin
+    - ipv4: ensure rcu_read_lock() in cipso_v4_error()
+    - Linux 5.4.27
+
+  * This laptop contains a touchpadwhich is not recognized. (LP: #1858299) //
+    Focal update: v5.4.27 upstream stable release (LP: #1868538)
+    - HID: i2c-hid: add Trekstor Surfbook E11B to descriptor override
+
+  * suspend only works once on ThinkPad X1 Carbon gen 7 (LP: #1865570)
+    - SAUCE: e1000e: Disable s0ix flow for X1 Carbon 7th
+
+  *  Make Dell WD19 dock more reliable after suspend (LP: #1868217)
+    - xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3
+    - xhci: Wait until link state trainsits to U0 after setting USB_SS_PORT_LS_U0
+    - xhci: Finetune host initiated USB3 rootport link suspend and resume
+    - USB: Disable LPM on WD19's Realtek Hub
+
+  * update-version-dkms doesn't add a BugLink (LP: #1867790)
+    - [Packaging] Add BugLink to update-version-dkms commit
+
+  * enable realtek ethernet device ASPM function (LP: #1836030)
+    - PCI/ASPM: Add L1 PM substate support to pci_disable_link_state()
+    - PCI/ASPM: Allow re-enabling Clock PM
+    - PCI/ASPM: Remove pcie_aspm_enabled() unnecessary locking
+    - PCI/ASPM: Add pcie_aspm_get_link()
+    - PCI/ASPM: Add sysfs attributes for controlling ASPM link states
+
+  * Update SmartPQI driver in Focal to 1.2.10-025 (LP: #1864484)
+    - scsi: smartpqi: clean up indentation of a statement
+    - scsi: smartpqi: remove set but not used variable 'ctrl_info'
+    - scsi: smartpqi: clean up an indentation issue
+    - scsi: smartpqi: fix controller lockup observed during force reboot
+    - scsi: smartpqi: fix call trace in device discovery
+    - scsi: smartpqi: add inquiry timeouts
+    - scsi: smartpqi: fix LUN reset when fw bkgnd thread is hung
+    - scsi: smartpqi: change TMF timeout from 60 to 30 seconds
+    - scsi: smartpqi: correct syntax issue
+    - scsi: smartpqi: fix problem with unique ID for physical device
+    - scsi: smartpqi: remove unused manifest constants
+    - scsi: smartpqi: Align driver syntax with oob
+    - scsi: smartpqi: bump version
+
+  * [roce-0111]sync mainline kernel 5.5rc6 roce patchset into ubuntu HWE kernel
+    branch (LP: #1859269)
+    - RDMA/hns: Modify variable/field name from vlan to vlan_id
+    - RDMA/hns: Fix a spelling mistake in a macro
+    - RDMA/hns: Delete BITS_PER_BYTE redefinition
+    - RDMA/core: Move core content from ib_uverbs to ib_core
+    - RDMA/core: Create mmap database and cookie helper functions
+    - RDMA: Connect between the mmap entry and the umap_priv structure
+    - RDMA/hns: Remove unsupported modify_port callback
+    - RDMA/hns: Delete unnecessary variable max_post
+    - RDMA/hns: Remove unnecessary structure hns_roce_sqp
+    - RDMA/hns: Delete unnecessary uar from hns_roce_cq
+    - RDMA/hns: Modify fields of struct hns_roce_srq
+    - RDMA/hns: Replace not intuitive function/macro names
+    - RDMA/hns: Simplify doorbell initialization code
+    - RDMA/hns: Modify hns_roce_hw_v2_get_cfg to simplify the code
+    - RDMA/hns: Fix non-standard error codes
+    - RDMA/hns: Modify appropriate printings
+    - dma-mapping: remove the DMA_ATTR_WRITE_BARRIER flag
+    - IB/umem: remove the dmasync argument to ib_umem_get
+    - RDMA/hns: Redefine interfaces used in creating cq
+    - RDMA/hns: Redefine the member of hns_roce_cq struct
+    - RDMA/hns: Rename the functions used inside creating cq
+    - RDMA/hns: Delete unnecessary callback functions for cq
+    - RDMA/hns: Remove unused function hns_roce_init_eq_table()
+    - RDMA/hns: Update the value of qp type
+    - RDMA/hns: Delete unnessary parameters in hns_roce_v2_qp_modify()
+    - RDMA/hns: Remove redundant print information
+    - RDMA/hns: Replace custom macros HNS_ROCE_ALIGN_UP
+    - RDMA/hns: Fix coding style issues
+    - RDMA/hns: Add support for reporting wc as software mode
+    - RDMA/hns: Remove some redundant variables related to capabilities
+    - RDMA/hns: Add interfaces to get pf capabilities from firmware
+    - RDMA/hns: Get pf capabilities from firmware
+    - RDMA/hns: Add support for extended atomic in userspace
+
+  * dmaengine: hisilicon: Add Kunpeng DMA engine support (LP: #1864442)
+    - dmaengine: hisilicon: Add Kunpeng DMA engine support
+    - [Config] CONFIG_HISI_DMA=m
+
+  * Add support for Realtek 8723DE wireless adapter (LP: #1780590)
+    - rtw88: 8822c: fix boolreturn.cocci warnings
+    - rtw88: remove redundant flag check helper function
+    - rtw88: pci: reset H2C queue indexes in a single write
+    - rtw88: not to enter or leave PS under IRQ
+    - rtw88: not to control LPS by each vif
+    - rtw88: remove unused lps state check helper
+    - rtw88: LPS enter/leave should be protected by lock
+    - rtw88: leave PS state for dynamic mechanism
+    - rtw88: add deep power save support
+    - rtw88: not to enter LPS by coex strategy
+    - rtw88: select deep PS mode when module is inserted
+    - rtw88: add deep PS PG mode for 8822c
+    - rtw88: remove misleading module parameter rtw_fw_support_lps
+    - mac80211: simplify TX aggregation start
+    - rtw88: check firmware leave lps successfully
+    - rtw88: allows to set RTS in TX descriptor
+    - rtw88: add driver TX queue support
+    - rtw88: take over rate control from mac80211
+    - rtw88: report tx rate to mac80211 stack
+    - rtw88: add TX-AMSDU support
+    - rtw88: flush hardware tx queues
+    - rtw88: Don't set RX_FLAG_DECRYPTED if packet has no encryption
+    - rtw88: configure TX queue EDCA parameters
+    - rtw88: raise firmware version debug level
+    - rtw88: use struct rtw_fw_hdr to access firmware header
+    - rtw88: Fix an error message
+    - rtw88: config 8822c multicast address in MAC init flow
+    - rtw88: add NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 support
+    - rtw88: Use rtw_write8_set to set SYS_FUNC
+    - rtw88: pci: config phy after chip info is setup
+    - rtw88: use a for loop in rtw_power_mode_change(), not goto
+    - rtw88: include interrupt.h for tasklet_struct
+    - rtw88: mark rtw_fw_hdr __packed
+    - rtw88: use macro to check the current band
+    - rtw88: add power tracking support
+    - rtw88: Enable 802.11ac beamformee support
+    - rtw88: add set_bitrate_mask support
+    - rtw88: add phy_info debugfs to show Tx/Rx physical status
+    - rtw88: fix GENMASK_ULL for u64
+    - rtw88: fix sparse warnings for DPK
+    - rtw88: fix sparse warnings for power tracking
+    - rtw88: 8822b: add RFE type 3 support
+    - rtw88: use rtw_phy_pg_cfg_pair struct, not arrays
+    - rtw88: rearrange if..else statements for rx rate indexes
+    - rtw88: avoid FW info flood
+    - rtw88: remove redundant null pointer check on arrays
+    - rtw88: raise LPS threshold to 50, for less power consumption
+    - rtw88: fix potential NULL pointer access for firmware
+    - rtw88: signal completion even on firmware-request failure
+    - rtw88: remove duplicated include from ps.c
+    - rtw88: pci: use macros to access PCI DBI/MDIO registers
+    - rtw88: pci: use for loop instead of while loop for DBI/MDIO
+    - rtw88: pci: enable CLKREQ function if host supports it
+    - rtw88: allows to enable/disable HCI link PS mechanism
+    - rtw88: pci: reset ring index when release skbs in tx ring
+    - rtw88: pci: reset dma when reset pci trx ring
+    - rtw88: add interface config for 8822c
+    - rtw88: load wowlan firmware if wowlan is supported
+    - rtw88: support wowlan feature for 8822c
+    - rtw88: Add wowlan pattern match support
+    - rtw88: Add wowlan net-detect support
+    - rtw88: fix TX secondary channel offset of 40M if current bw is 20M or 40M
+    - rtw88: 8822c: update power sequence to v15
+    - rtw88: remove unused spinlock
+    - rtw88: remove unused variable 'in_lps'
+    - rtw88: remove unused vif pointer in struct rtw_vif
+    - rtw88: use rtw_hci_stop() instead of rtwdev->hci.ops->stop()
+    - rtw88: assign NULL to skb after being kfree()'ed
+    - rtw88: change max_num_of_tx_queue() definition to inline in pci.h
+    - rtw88: use true,false for bool variable
+    - rtw88: use shorter delay time to poll PS state
+    - rtw88: Fix return value of rtw_wow_check_fw_status
+    - SAUCE: rtw88: add regulatory process strategy for different chipset
+    - SAUCE: rtw88: support dynamic user regulatory setting
+    - SAUCE: rtw88: Use secondary channel offset enumeration
+    - SAUCE: rtw88: 8822c: modify rf protection setting
+    - SAUCE: rtw88: disable TX-AMSDU on 2.4G band
+    - SAUCE: Revert "rtw88: disable TX-AMSDU on 2.4G band"
+    - SAUCE: rtw88: disable TX-AMSDU on 2.4G band
+    - SAUCE: rtw88: remove unused parameter vif in rtw_lps_pg_info_get()
+    - SAUCE: rtw88: add rtw_read8_mask and rtw_read16_mask
+    - SAUCE: rtw88: pci: 8822c should set clock delay to zero
+    - SAUCE: rtw88: move rtw_enter_ips() to the last when config
+    - SAUCE: rtw88: avoid holding mutex for cancel_delayed_work_sync()
+    - SAUCE: rtw88: add ciphers to suppress error message
+    - SAUCE: rtw88: 8822c: update power sequence to v16
+    - SAUCE: rtw88: Fix incorrect beamformee role setting
+    - SAUCE: rtw88: don't hold all IRQs disabled for PS operations
+    - SAUCE: rtw88: extract alloc rsvd_page and h2c skb routines
+    - SAUCE: rtw88: associate reserved pages with each vif
+    - SAUCE: rtw88: add adaptivity support for EU/JP regulatory
+    - SAUCE: rtw88: 8723d: Add basic chip capabilities
+    - SAUCE: rtw88: 8723d: add beamform wrapper functions
+    - SAUCE: rtw88: 8723d: Add power sequence
+    - SAUCE: rtw88: 8723d: Add RF read/write ops
+    - SAUCE: rtw88: 8723d: Add mac/bb/rf/agc/power_limit tables
+    - SAUCE: rtw88: 8723d: Add cfg_ldo25 to control LDO25
+    - SAUCE: rtw88: 8723d: Add new chip op efuse_grant() to control efuse access
+    - SAUCE: rtw88: 8723d: Add read_efuse to recognize efuse info from map
+    - SAUCE: rtw88: add legacy firmware download for 8723D devices
+    - SAUCE: rtw88: no need to send additional information to legacy firmware
+    - SAUCE: rtw88: 8723d: Add mac power-on/-off function
+    - SAUCE: rtw88: decompose while(1) loop of power sequence polling command
+    - SAUCE: rtw88: 8723d: 11N chips don't support H2C queue
+    - SAUCE: rtw88: 8723d: implement set_tx_power_index ops
+    - SAUCE: rtw88: 8723d: Organize chip TX/RX FIFO
+    - SAUCE: rtw88: 8723d: initialize mac/bb/rf basic functions
+    - SAUCE: rtw88: 8723d: Add DIG parameter
+    - SAUCE: rtw88: 8723d: Add query_rx_desc
+    - SAUCE: rtw88: 8723d: Add set_channel
+    - SAUCE: rtw88: handle C2H_CCX_TX_RPT to know if packet TX'ed successfully
+    - SAUCE: rtw88: 8723d: 11N chips don't support LDPC
+    - SAUCE: rtw88: set default port to firmware
+    - SAUCE: rtw88: update tx descriptor of mgmt and rsvd page packets
+    - SAUCE: rtw88: sar: add SAR of TX power limit
+    - SAUCE: rtw88: sar: Load static SAR table from ACPI WRDS method
+    - SAUCE: rtw88: sar: Load dynamic SAR table from ACPI methods
+    - SAUCE: rtw88: sar: apply dynamic SAR table to tx power limit
+    - SAUCE: rtw88: sar: add sar_work to poll if dynamic SAR table is changed
+    - SAUCE: rtw88: sar: dump sar information via debugfs
+    - SAUCE: rtw88: 8723d: Add chip_ops::false_alarm_statistics
+    - SAUCE: rtw88: 8723d: Set IG register for CCK rate
+    - SAUCE: rtw88: 8723d: add interface configurations table
+    - SAUCE: rtw88: 8723d: Add LC calibration
+    - SAUCE: rtw88: 8723d: add IQ calibration
+    - SAUCE: rtw88: 8723d: Add power tracking
+    - SAUCE: rtw88: 8723d: Add shutdown callback to disable BT USB suspend
+    - SAUCE: rtw88: 8723d: implement flush queue
+    - SAUCE: rtw88: 8723d: set ltecoex register address in chip_info
+    - SAUCE: rtw88: 8723d: Add coex support
+    - SAUCE: rtw88: fill zeros to words 0x06 and 0x07 of security cam entry
+    - SAUCE: rtw88: 8723d: Add 8723DE to Kconfig and Makefile
+    - [Config] CONFIG_RTW88_8723DE=y
+
+  * [Ubuntu 20.04] Unset HIBERNATION and PM kernel config options for focal
+    (LP: #1867753)
+    - [Config] CONFIG_HIBERNATION=n and CONFIG_PM=n for s390x
+
+  * [20.04 FEAT] Base KVM setup for secure guests - kernel part (LP: #1835531)
+    - KVM: s390: Cleanup kvm_arch_init error path
+    - KVM: s390: Cleanup initial cpu reset
+    - KVM: s390: Add new reset vcpu API
+    - s390/protvirt: introduce host side setup
+    - s390/protvirt: add ultravisor initialization
+    - s390/mm: provide memory management functions for protected KVM guests
+    - s390/mm: add (non)secure page access exceptions handlers
+    - s390/protvirt: Add sysfs firmware interface for Ultravisor information
+    - KVM: s390/interrupt: do not pin adapter interrupt pages
+    - KVM: s390: protvirt: Add UV debug trace
+    - KVM: s390: add new variants of UV CALL
+    - KVM: s390: protvirt: Add initial vm and cpu lifecycle handling
+    - KVM: s390: protvirt: Secure memory is not mergeable
+    - KVM: s390/mm: Make pages accessible before destroying the guest
+    - KVM: s390: protvirt: Handle SE notification interceptions
+    - KVM: s390: protvirt: Instruction emulation
+    - KVM: s390: protvirt: Implement interrupt injection
+    - KVM: s390: protvirt: Add SCLP interrupt handling
+    - KVM: s390: protvirt: Handle spec exception loops
+    - KVM: s390: protvirt: Add new gprs location handling
+    - KVM: S390: protvirt: Introduce instruction data area bounce buffer
+    - KVM: s390: protvirt: handle secure guest prefix pages
+    - KVM: s390/mm: handle guest unpin events
+    - KVM: s390: protvirt: Write sthyi data to instruction data area
+    - KVM: s390: protvirt: STSI handling
+    - KVM: s390: protvirt: disallow one_reg
+    - KVM: s390: protvirt: Do only reset registers that are accessible
+    - KVM: s390: protvirt: Only sync fmt4 registers
+    - KVM: s390: protvirt: Add program exception injection
+    - KVM: s390: protvirt: UV calls in support of diag308 0, 1
+    - KVM: s390: protvirt: Report CPU state to Ultravisor
+    - KVM: s390: protvirt: Support cmd 5 operation state
+    - KVM: s390: protvirt: Mask PSW interrupt bits for interception 104 and 112
+    - KVM: s390: protvirt: do not inject interrupts after start
+    - KVM: s390: protvirt: Add UV cpu reset calls
+    - DOCUMENTATION: Protected virtual machine introduction and IPL
+    - KVM: s390: protvirt: introduce and enable KVM_CAP_S390_PROTECTED
+    - KVM: s390: protvirt: Add KVM api documentation
+    - mm/gup/writeback: add callbacks for inaccessible pages
+
+  * Sys oopsed with sysfs test in ubuntu_stress_smoke_test on X-hwe ARM64
+    (LP: #1866772)
+    - ACPI: sysfs: copy ACPI data using io memory copying
+
+  * Focal update: v5.4.26 upstream stable release (LP: #1867903)
+    - virtio_balloon: Adjust label in virtballoon_probe
+    - ALSA: hda/realtek - More constifications
+    - cgroup, netclassid: periodically release file_lock on classid updating
+    - gre: fix uninit-value in __iptunnel_pull_header
+    - inet_diag: return classid for all socket types
+    - ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface
+    - ipvlan: add cond_resched_rcu() while processing muticast backlog
+    - ipvlan: do not add hardware address of master to its unicast filter list
+    - ipvlan: do not use cond_resched_rcu() in ipvlan_process_multicast()
+    - ipvlan: don't deref eth hdr before checking it's set
+    - macvlan: add cond_resched() during multicast processing
+    - net: dsa: fix phylink_start()/phylink_stop() calls
+    - net: dsa: mv88e6xxx: fix lockup on warm boot
+    - net: fec: validate the new settings in fec_enet_set_coalesce()
+    - net: hns3: fix a not link up issue when fibre port supports autoneg
+    - net/ipv6: use configured metric when add peer route
+    - netlink: Use netlink header as base to calculate bad attribute offset
+    - net: macsec: update SCI upon MAC address change.
+    - net: nfc: fix bounds checking bugs on "pipe"
+    - net/packet: tpacket_rcv: do not increment ring index on drop
+    - net: phy: bcm63xx: fix OOPS due to missing driver name
+    - net: stmmac: dwmac1000: Disable ACS if enhanced descs are not used
+    - net: systemport: fix index check to avoid an array out of bounds access
+    - sfc: detach from cb_page in efx_copy_channel()
+    - slip: make slhc_compress() more robust against malicious packets
+    - taprio: Fix sending packets without dequeueing them
+    - bonding/alb: make sure arp header is pulled before accessing it
+    - bnxt_en: reinitialize IRQs when MTU is modified
+    - bnxt_en: fix error handling when flashing from file
+    - cgroup: memcg: net: do not associate sock with unrelated cgroup
+    - net: memcg: late association of sock to memcg
+    - net: memcg: fix lockdep splat in inet_csk_accept()
+    - devlink: validate length of param values
+    - devlink: validate length of region addr/len
+    - fib: add missing attribute validation for tun_id
+    - nl802154: add missing attribute validation
+    - nl802154: add missing attribute validation for dev_type
+    - can: add missing attribute validation for termination
+    - macsec: add missing attribute validation for port
+    - net: fq: add missing attribute validation for orphan mask
+    - net: taprio: add missing attribute validation for txtime delay
+    - team: add missing attribute validation for port ifindex
+    - team: add missing attribute validation for array index
+    - tipc: add missing attribute validation for MTU property
+    - nfc: add missing attribute validation for SE API
+    - nfc: add missing attribute validation for deactivate target
+    - nfc: add missing attribute validation for vendor subcommand
+    - net: phy: avoid clearing PHY interrupts twice in irq handler
+    - net: phy: fix MDIO bus PM PHY resuming
+    - net/ipv6: need update peer route when modify metric
+    - net/ipv6: remove the old peer route if change it to a new one
+    - selftests/net/fib_tests: update addr_metric_test for peer route testing
+    - net: dsa: Don't instantiate phylink for CPU/DSA ports unless needed
+    - net: phy: Avoid multiple suspends
+    - cgroup: cgroup_procs_next should increase position index
+    - cgroup: Iterate tasks that did not finish do_exit()
+    - netfilter: nf_tables: fix infinite loop when expr is not available
+    - iwlwifi: mvm: Do not require PHY_SKU NVM section for 3168 devices
+    - iommu/vt-d: quirk_ioat_snb_local_iommu: replace WARN_TAINT with pr_warn +
+      add_taint
+    - netfilter: nf_conntrack: ct_cpu_seq_next should increase position index
+    - netfilter: synproxy: synproxy_cpu_seq_next should increase position index
+    - netfilter: xt_recent: recent_seq_next should increase position index
+    - netfilter: x_tables: xt_mttg_seq_next should increase position index
+    - workqueue: don't use wq_select_unbound_cpu() for bound works
+    - drm/amd/display: remove duplicated assignment to grph_obj_type
+    - drm/i915: be more solid in checking the alignment
+    - drm/i915: Defer semaphore priority bumping to a workqueue
+    - mmc: sdhci-pci-gli: Enable MSI interrupt for GL975x
+    - pinctrl: falcon: fix syntax error
+    - ktest: Add timeout for ssh sync testing
+    - cifs_atomic_open(): fix double-put on late allocation failure
+    - gfs2_atomic_open(): fix O_EXCL|O_CREAT handling on cold dcache
+    - KVM: x86: clear stale x86_emulate_ctxt->intercept value
+    - KVM: nVMX: avoid NULL pointer dereference with incorrect EVMCS GPAs
+    - ARC: define __ALIGN_STR and __ALIGN symbols for ARC
+    - fuse: fix stack use after return
+    - s390/dasd: fix data corruption for thin provisioned devices
+    - ipmi_si: Avoid spurious errors for optional IRQs
+    - blk-iocost: fix incorrect vtime comparison in iocg_is_idle()
+    - fscrypt: don't evict dirty inodes after removing key
+    - macintosh: windfarm: fix MODINFO regression
+    - x86/ioremap: Map EFI runtime services data as encrypted for SEV
+    - efi: Fix a race and a buffer overflow while reading efivars via sysfs
+    - efi: Add a sanity check to efivar_store_raw()
+    - i2c: designware-pci: Fix BUG_ON during device removal
+    - mt76: fix array overflow on receiving too many fragments for a packet
+    - perf/amd/uncore: Replace manual sampling check with CAP_NO_INTERRUPT flag
+    - x86/mce: Fix logic and comments around MSR_PPIN_CTL
+    - iommu/dma: Fix MSI reservation allocation
+    - iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + add_taint
+    - iommu/vt-d: Fix RCU list debugging warnings
+    - iommu/vt-d: Fix a bug in intel_iommu_iova_to_phys() for huge page
+    - batman-adv: Don't schedule OGM for disabled interface
+    - clk: imx8mn: Fix incorrect clock defines
+    - pinctrl: meson-gxl: fix GPIOX sdio pins
+    - pinctrl: imx: scu: Align imx sc msg structs to 4
+    - virtio_ring: Fix mem leak with vring_new_virtqueue()
+    - drm/i915/gvt: Fix dma-buf display blur issue on CFL
+    - pinctrl: core: Remove extra kref_get which blocks hogs being freed
+    - drm/i915/gvt: Fix unnecessary schedule timer when no vGPU exits
+    - driver code: clarify and fix platform device DMA mask allocation
+    - iommu/vt-d: Fix RCU-list bugs in intel_iommu_init()
+    - i2c: gpio: suppress error on probe defer
+    - nl80211: add missing attribute validation for critical protocol indication
+    - nl80211: add missing attribute validation for beacon report scanning
+    - nl80211: add missing attribute validation for channel switch
+    - perf bench futex-wake: Restore thread count default to online CPU count
+    - netfilter: cthelper: add missing attribute validation for cthelper
+    - netfilter: nft_payload: add missing attribute validation for payload csum
+      flags
+    - netfilter: nft_tunnel: add missing attribute validation for tunnels
+    - netfilter: nf_tables: dump NFTA_CHAIN_FLAGS attribute
+    - netfilter: nft_chain_nat: inet family is missing module ownership
+    - iommu/vt-d: Fix the wrong printing in RHSA parsing
+    - iommu/vt-d: Ignore devices with out-of-spec domain number
+    - i2c: acpi: put device when verifying client fails
+    - iommu/amd: Fix IOMMU AVIC not properly update the is_run bit in IRTE
+    - ipv6: restrict IPV6_ADDRFORM operation
+    - net/smc: check for valid ib_client_data
+    - net/smc: cancel event worker during device removal
+    - Linux 5.4.26
+
+  * please help enable CONFIG_EROFS_FS_ZIP (LP: #1867099)
+    - [Config] CONFIG_EROFS_FS_ZIP=y
+    - [Config] CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1
+
+  * All PS/2 ports on PS/2 Serial add-in bracket are not working after S3
+    (LP: #1866734)
+    - SAUCE: Input: i8042 - fix the selftest retry logic
+
+  * [UBUNTU 20.04] virtio-blk disks can go dissfunctional when swiotlb fills up
+    (LP: #1867109)
+    - virtio-blk: fix hw_queue stopped on arbitrary error
+    - virtio-blk: improve virtqueue error to BLK_STS
+
+  * Focal update: v5.4.25 upstream stable release (LP: #1867178)
+    - block, bfq: get extra ref to prevent a queue from being freed during a group
+      move
+    - block, bfq: do not insert oom queue into position tree
+    - net: dsa: bcm_sf2: Forcibly configure IMP port for 1Gb/sec
+    - net: stmmac: fix notifier registration
+    - dm thin metadata: fix lockdep complaint
+    - RDMA/core: Fix pkey and port assignment in get_new_pps
+    - RDMA/core: Fix use of logical OR in get_new_pps
+    - kbuild: fix 'No such file or directory' warning when cleaning
+    - kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic
+    - blktrace: fix dereference after null check
+    - ALSA: hda: do not override bus codec_mask in link_get()
+    - serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE
+    - selftests: fix too long argument
+    - usb: gadget: composite: Support more than 500mA MaxPower
+    - usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags
+    - usb: gadget: serial: fix Tx stall after buffer overflow
+    - habanalabs: halt the engines before hard-reset
+    - habanalabs: do not halt CoreSight during hard reset
+    - habanalabs: patched cb equals user cb in device memset
+    - drm/msm/mdp5: rate limit pp done timeout warnings
+    - drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI
+    - drm/modes: Make sure to parse valid rotation value from cmdline
+    - drm/modes: Allow DRM_MODE_ROTATE_0 when applying video mode parameters
+    - scsi: megaraid_sas: silence a warning
+    - drm/msm/dsi: save pll state before dsi host is powered off
+    - drm/msm/dsi/pll: call vco set rate explicitly
+    - selftests: forwarding: use proto icmp for {gretap, ip6gretap}_mac testing
+    - selftests: forwarding: vxlan_bridge_1d: fix tos value
+    - net: atlantic: check rpc result and wait for rpc address
+    - net: ks8851-ml: Remove 8-bit bus accessors
+    - net: ks8851-ml: Fix 16-bit data access
+    - net: ks8851-ml: Fix 16-bit IO operation
+    - net: ethernet: dm9000: Handle -EPROBE_DEFER in dm9000_parse_dt()
+    - watchdog: da9062: do not ping the hw during stop()
+    - s390/cio: cio_ignore_proc_seq_next should increase position index
+    - s390: make 'install' not depend on vmlinux
+    - efi: Only print errors about failing to get certs if EFI vars are found
+    - net/mlx5: DR, Fix matching on vport gvmi
+    - nvme/pci: Add sleep quirk for Samsung and Toshiba drives
+    - nvme-pci: Use single IRQ vector for old Apple models
+    - x86/boot/compressed: Don't declare __force_order in kaslr_64.c
+    - s390/qdio: fill SL with absolute addresses
+    - nvme: Fix uninitialized-variable warning
+    - ice: Don't tell the OS that link is going down
+    - x86/xen: Distribute switch variables for initialization
+    - net: thunderx: workaround BGX TX Underflow issue
+    - csky/mm: Fixup export invalid_pte_table symbol
+    - csky: Set regs->usp to kernel sp, when the exception is from kernel
+    - csky/smp: Fixup boot failed when CONFIG_SMP
+    - csky: Fixup ftrace modify panic
+    - csky: Fixup compile warning for three unimplemented syscalls
+    - arch/csky: fix some Kconfig typos
+    - selftests: forwarding: vxlan_bridge_1d: use more proper tos value
+    - firmware: imx: scu: Ensure sequential TX
+    - binder: prevent UAF for binderfs devices
+    - binder: prevent UAF for binderfs devices II
+    - ALSA: hda/realtek - Add Headset Mic supported
+    - ALSA: hda/realtek - Add Headset Button supported for ThinkPad X1
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
+    - ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294
+    - cifs: don't leak -EAGAIN for stat() during reconnect
+    - cifs: fix rename() by ensuring source handle opened with DELETE bit
+    - usb: storage: Add quirk for Samsung Fit flash
+    - usb: quirks: add NO_LPM quirk for Logitech Screen Share
+    - usb: dwc3: gadget: Update chain bit correctly when using sg list
+    - usb: cdns3: gadget: link trb should point to next request
+    - usb: cdns3: gadget: toggle cycle bit before reset endpoint
+    - usb: core: hub: fix unhandled return by employing a void function
+    - usb: core: hub: do error out if usb_autopm_get_interface() fails
+    - usb: core: port: do error out if usb_autopm_get_interface() fails
+    - vgacon: Fix a UAF in vgacon_invert_region
+    - mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking
+      page tables prot_numa
+    - mm: fix possible PMD dirty bit lost in set_pmd_migration_entry()
+    - mm, hotplug: fix page online with DEBUG_PAGEALLOC compiled but not enabled
+    - fat: fix uninit-memory access for partial initialized inode
+    - btrfs: fix RAID direct I/O reads with alternate csums
+    - arm64: dts: socfpga: agilex: Fix gmac compatible
+    - arm: dts: dra76x: Fix mmc3 max-frequency
+    - tty:serial:mvebu-uart:fix a wrong return
+    - tty: serial: fsl_lpuart: free IDs allocated by IDA
+    - serial: 8250_exar: add support for ACCES cards
+    - vt: selection, close sel_buffer race
+    - vt: selection, push console lock down
+    - vt: selection, push sel_lock up
+    - media: hantro: Fix broken media controller links
+    - media: mc-entity.c: use & to check pad flags, not ==
+    - media: vicodec: process all 4 components for RGB32 formats
+    - media: v4l2-mem2mem.c: fix broken links
+    - perf intel-pt: Fix endless record after being terminated
+    - perf intel-bts: Fix endless record after being terminated
+    - perf cs-etm: Fix endless record after being terminated
+    - perf arm-spe: Fix endless record after being terminated
+    - spi: spidev: Fix CS polarity if GPIO descriptors are used
+    - x86/pkeys: Manually set X86_FEATURE_OSPKE to preserve existing changes
+    - s390/pci: Fix unexpected write combine on resource
+    - s390/mm: fix panic in gup_fast on large pud
+    - dmaengine: imx-sdma: fix context cache
+    - dmaengine: imx-sdma: Fix the event id check to include RX event for UART6
+    - dmaengine: tegra-apb: Fix use-after-free
+    - dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
+    - dm integrity: fix recalculation when moving from journal mode to bitmap mode
+    - dm integrity: fix a deadlock due to offloading to an incorrect workqueue
+    - dm integrity: fix invalid table returned due to argument count mismatch
+    - dm cache: fix a crash due to incorrect work item cancelling
+    - dm: report suspended device during destroy
+    - dm writecache: verify watermark during resume
+    - dm zoned: Fix reference counter initial value of chunk works
+    - dm: fix congested_fn for request-based device
+    - arm64: dts: meson-sm1-sei610: add missing interrupt-names
+    - ARM: dts: ls1021a: Restore MDIO compatible to gianfar
+    - spi: bcm63xx-hsspi: Really keep pll clk enabled
+    - drm/virtio: make resource id workaround runtime switchable.
+    - drm/virtio: fix resource id creation race
+    - ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
+    - ASoC: topology: Fix memleak in soc_tplg_manifest_load()
+    - ASoC: SOF: Fix snd_sof_ipc_stream_posn()
+    - ASoC: intel: skl: Fix pin debug prints
+    - ASoC: intel: skl: Fix possible buffer overflow in debug outputs
+    - powerpc: define helpers to get L1 icache sizes
+    - powerpc: Convert flush_icache_range & friends to C
+    - powerpc/mm: Fix missing KUAP disable in flush_coherent_icache()
+    - ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output
+    - ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path
+    - ASoC: Intel: Skylake: Fix available clock counter incrementation
+    - ASoC: dapm: Correct DAPM handling of active widgets during shutdown
+    - spi: atmel-quadspi: fix possible MMIO window size overrun
+    - drm/panfrost: Don't try to map on error faults
+    - drm: kirin: Revert "Fix for hikey620 display offset problem"
+    - drm/sun4i: Add separate DE3 VI layer formats
+    - drm/sun4i: Fix DE2 VI layer format support
+    - drm/sun4i: de2/de3: Remove unsupported VI layer formats
+    - drm/i915: Program MBUS with rmw during initialization
+    - drm/i915/selftests: Fix return in assert_mmap_offset()
+    - phy: mapphone-mdm6600: Fix timeouts by adding wake-up handling
+    - phy: mapphone-mdm6600: Fix write timeouts with shorter GPIO toggle interval
+    - ARM: dts: imx6: phycore-som: fix emmc supply
+    - arm64: dts: imx8qxp-mek: Remove unexisting Ethernet PHY
+    - firmware: imx: misc: Align imx sc msg structs to 4
+    - firmware: imx: scu-pd: Align imx sc msg structs to 4
+    - firmware: imx: Align imx_sc_msg_req_cpu_start to 4
+    - soc: imx-scu: Align imx sc msg structs to 4
+    - Revert "RDMA/cma: Simplify rdma_resolve_addr() error flow"
+    - RDMA/rw: Fix error flow during RDMA context initialization
+    - RDMA/nldev: Fix crash when set a QP to a new counter but QPN is missing
+    - RDMA/siw: Fix failure handling during device creation
+    - RDMA/iwcm: Fix iwcm work deallocation
+    - RDMA/core: Fix protection fault in ib_mr_pool_destroy
+    - regulator: stm32-vrefbuf: fix a possible overshoot when re-enabling
+    - RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
+    - IB/hfi1, qib: Ensure RCU is locked when accessing list
+    - ARM: imx: build v7_cpu_resume() unconditionally
+    - ARM: dts: am437x-idk-evm: Fix incorrect OPP node names
+    - ARM: dts: dra7xx-clocks: Fixup IPU1 mux clock parent source
+    - ARM: dts: imx7-colibri: Fix frequency for sd/mmc
+    - hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT()
+    - dma-buf: free dmabuf->name in dma_buf_release()
+    - dmaengine: coh901318: Fix a double lock bug in dma_tc_handle()
+    - arm64: dts: meson: fix gxm-khadas-vim2 wifi
+    - bus: ti-sysc: Fix 1-wire reset quirk
+    - EDAC/synopsys: Do not print an error with back-to-back snprintf() calls
+    - powerpc: fix hardware PMU exception bug on PowerVM compatibility mode
+      systems
+    - efi/x86: Align GUIDs to their size in the mixed mode runtime wrapper
+    - efi/x86: Handle by-ref arguments covering multiple pages in mixed mode
+    - efi: READ_ONCE rng seed size before munmap
+    - block, bfq: get a ref to a group when adding it to a service tree
+    - block, bfq: remove ifdefs from around gets/puts of bfq groups
+    - csky: Implement copy_thread_tls
+    - drm/virtio: module_param_named() requires linux/moduleparam.h
+    - Linux 5.4.25
+
+  * Miscellaneous Ubuntu changes
+    - hio -- remove duplicated MODULE_DEVICE_TABLE declaration
+    - [Config] Add initial riscv64 config
+    - [Config] Bring riscv64 in line with other arches
+    - [Packaging] Add riscv64 arch support
+    - [Packaging] Add initial riscv64 abi
+    - [Config] updateconfigs for riscv64
+    - [Config] Update annotations for riscv64
+    - SAUCE: r8169: disable ASPM L1.1
+    - update wireguard dkms package version
+    - [Config] garbage collect PCIEASPM_DEBUG
+    - [Config] gcc version updateconfigs
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: platform/x86: dell-uart-backlight: move retry block"
+    - RISC-V: Do not invoke SBI call if cpumask is empty
+    - RISC-V: Issue a local tlbflush if possible.
+    - RISC-V: Issue a tlb page flush if possible
+    - riscv: add support for SECCOMP and SECCOMP_FILTER
+    - riscv: reject invalid syscalls below -1
+    - mtd: spi-nor: Add support for is25wp256
+    - PCI/ASPM: Remove PCIEASPM_DEBUG Kconfig option and related code
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 23 Mar 2020 13:03:48 +0100
+
+linux (5.4.0-18.22) focal; urgency=medium
+
+  * focal/linux: 5.4.0-18.22 -proposed tracker (LP: #1866488)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+
+  * Add sysfs attribute to show remapped NVMe (LP: #1863621)
+    - SAUCE: ata: ahci: Add sysfs attribute to show remapped NVMe device count
+
+  * [20.04 FEAT] Compression improvements in Linux kernel (LP: #1830208)
+    - lib/zlib: add s390 hardware support for kernel zlib_deflate
+    - s390/boot: rename HEAP_SIZE due to name collision
+    - lib/zlib: add s390 hardware support for kernel zlib_inflate
+    - s390/boot: add dfltcc= kernel command line parameter
+    - lib/zlib: add zlib_deflate_dfltcc_enabled() function
+    - btrfs: use larger zlib buffer for s390 hardware compression
+    - [Config] Introducing s390x specific kernel config option CONFIG_ZLIB_DFLTCC
+
+  * [UBUNTU 20.04] s390x/pci: increase CONFIG_PCI_NR_FUNCTIONS to 512 in kernel
+    config (LP: #1866056)
+    - [Config] Increase CONFIG_PCI_NR_FUNCTIONS from 64 to 512 starting with focal
+      on s390x
+
+  * CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set (LP: #1865332)
+    - [Config] CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+
+  * Dell XPS 13 9300 Intel 1650S wifi [34f0:1651] fails to load firmware
+    (LP: #1865962)
+    - iwlwifi: remove IWL_DEVICE_22560/IWL_DEVICE_FAMILY_22560
+    - iwlwifi: 22000: fix some indentation
+    - iwlwifi: pcie: rx: use rxq queue_size instead of constant
+    - iwlwifi: allocate more receive buffers for HE devices
+    - iwlwifi: remove some outdated iwl22000 configurations
+    - iwlwifi: assume the driver_data is a trans_cfg, but allow full cfg
+
+  * [FOCAL][REGRESSION] Intel Gen 9 brightness cannot be controlled
+    (LP: #1861521)
+    - Revert "USUNTU: SAUCE: drm/i915: Force DPCD backlight mode on Dell Precision
+      4K sku"
+    - Revert "UBUNTU: SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd
+      Gen 4K AMOLED panel"
+    - SAUCE: drm/dp: Introduce EDID-based quirks
+    - SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED
+      panel
+    - SAUCE: drm/i915: Force DPCD backlight mode for some Dell CML 2020 panels
+
+  * [20.04 FEAT] Enable proper kprobes on ftrace support (LP: #1865858)
+    - s390/ftrace: save traced function caller
+    - s390: support KPROBES_ON_FTRACE
+
+  * alsa/sof: load different firmware on different platforms (LP: #1857409)
+    - ASoC: SOF: Intel: hda: use fallback for firmware name
+    - ASoC: Intel: acpi-match: split CNL tables in three
+    - ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary names.
+
+  * [UBUNTU 20.04] Enable CONFIG_NET_SWITCHDEV in kernel config for s390x
+    starting with focal (LP: #1865452)
+    - [Config] Enable CONFIG_NET_SWITCHDEV in kernel config for s390x starting
+      with focal
+
+  * Focal update: v5.4.24 upstream stable release (LP: #1866333)
+    - io_uring: grab ->fs as part of async offload
+    - EDAC: skx_common: downgrade message importance on missing PCI device
+    - net: dsa: b53: Ensure the default VID is untagged
+    - net: fib_rules: Correctly set table field when table number exceeds 8 bits
+    - net: macb: ensure interface is not suspended on at91rm9200
+    - net: mscc: fix in frame extraction
+    - net: phy: restore mdio regs in the iproc mdio driver
+    - net: sched: correct flower port blocking
+    - net/tls: Fix to avoid gettig invalid tls record
+    - nfc: pn544: Fix occasional HW initialization failure
+    - qede: Fix race between rdma destroy workqueue and link change event
+    - Revert "net: dev: introduce support for sch BYPASS for lockless qdisc"
+    - udp: rehash on disconnect
+    - sctp: move the format error check out of __sctp_sf_do_9_1_abort
+    - bnxt_en: Improve device shutdown method.
+    - bnxt_en: Issue PCIe FLR in kdump kernel to cleanup pending DMAs.
+    - bonding: add missing netdev_update_lockdep_key()
+    - net: export netdev_next_lower_dev_rcu()
+    - bonding: fix lockdep warning in bond_get_stats()
+    - ipv6: Fix route replacement with dev-only route
+    - ipv6: Fix nlmsg_flags when splitting a multipath route
+    - ipmi:ssif: Handle a possible NULL pointer reference
+    - drm/msm: Set dma maximum segment size for mdss
+    - sched/core: Don't skip remote tick for idle CPUs
+    - timers/nohz: Update NOHZ load in remote tick
+    - sched/fair: Prevent unlimited runtime on throttled group
+    - dax: pass NOWAIT flag to iomap_apply
+    - mac80211: consider more elements in parsing CRC
+    - cfg80211: check wiphy driver existence for drvinfo report
+    - s390/zcrypt: fix card and queue total counter wrap
+    - qmi_wwan: re-add DW5821e pre-production variant
+    - qmi_wwan: unconditionally reject 2 ep interfaces
+    - NFSv4: Fix races between open and dentry revalidation
+    - perf/smmuv3: Use platform_get_irq_optional() for wired interrupt
+    - perf/x86/intel: Add Elkhart Lake support
+    - perf/x86/cstate: Add Tremont support
+    - perf/x86/msr: Add Tremont support
+    - ceph: do not execute direct write in parallel if O_APPEND is specified
+    - ARM: dts: sti: fixup sound frame-inversion for stihxxx-b2120.dtsi
+    - drm/amd/display: Do not set optimized_require to false after plane disable
+    - RDMA/siw: Remove unwanted WARN_ON in siw_cm_llp_data_ready()
+    - drm/amd/display: Check engine is not NULL before acquiring
+    - drm/amd/display: Limit minimum DPPCLK to 100MHz.
+    - drm/amd/display: Add initialitions for PLL2 clock source
+    - amdgpu: Prevent build errors regarding soft/hard-float FP ABI tags
+    - soc/tegra: fuse: Fix build with Tegra194 configuration
+    - i40e: Fix the conditional for i40e_vc_validate_vqs_bitmaps
+    - net: ena: fix potential crash when rxfh key is NULL
+    - net: ena: fix uses of round_jiffies()
+    - net: ena: add missing ethtool TX timestamping indication
+    - net: ena: fix incorrect default RSS key
+    - net: ena: rss: do not allocate key when not supported
+    - net: ena: rss: fix failure to get indirection table
+    - net: ena: rss: store hash function as values and not bits
+    - net: ena: fix incorrectly saving queue numbers when setting RSS indirection
+      table
+    - net: ena: fix corruption of dev_idx_to_host_tbl
+    - net: ena: ethtool: use correct value for crc32 hash
+    - net: ena: ena-com.c: prevent NULL pointer dereference
+    - ice: update Unit Load Status bitmask to check after reset
+    - cifs: Fix mode output in debugging statements
+    - cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE
+    - mac80211: fix wrong 160/80+80 MHz setting
+    - nvme/tcp: fix bug on double requeue when send fails
+    - nvme: prevent warning triggered by nvme_stop_keep_alive
+    - nvme/pci: move cqe check after device shutdown
+    - ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
+    - audit: fix error handling in audit_data_to_entry()
+    - audit: always check the netlink payload length in audit_receive_msg()
+    - ACPICA: Introduce ACPI_ACCESS_BYTE_WIDTH() macro
+    - ACPI: watchdog: Fix gas->access_width usage
+    - KVM: VMX: check descriptor table exits on instruction emulation
+    - HID: ite: Only bind to keyboard USB interface on Acer SW5-012 keyboard dock
+    - HID: core: fix off-by-one memset in hid_report_raw_event()
+    - HID: core: increase HID report buffer size to 8KiB
+    - drm/amdgpu: Drop DRIVER_USE_AGP
+    - drm/radeon: Inline drm_get_pci_dev
+    - macintosh: therm_windtunnel: fix regression when instantiating devices
+    - tracing: Disable trace_printk() on post poned tests
+    - Revert "PM / devfreq: Modify the device name as devfreq(X) for sysfs"
+    - amdgpu/gmc_v9: save/restore sdpif regs during S3
+    - cpufreq: Fix policy initialization for internal governor drivers
+    - io_uring: fix 32-bit compatability with sendmsg/recvmsg
+    - netfilter: ipset: Fix "INFO: rcu detected stall in hash_xxx" reports
+    - net/smc: transfer fasync_list in case of fallback
+    - vhost: Check docket sk_family instead of call getname
+    - netfilter: ipset: Fix forceadd evaluation path
+    - netfilter: xt_hashlimit: reduce hashlimit_mutex scope for htable_put()
+    - HID: alps: Fix an error handling path in 'alps_input_configured()'
+    - HID: hiddev: Fix race in in hiddev_disconnect()
+    - MIPS: VPE: Fix a double free and a memory leak in 'release_vpe()'
+    - i2c: altera: Fix potential integer overflow
+    - i2c: jz4780: silence log flood on txabrt
+    - drm/i915/gvt: Fix orphan vgpu dmabuf_objs' lifetime
+    - drm/i915/gvt: Separate display reset from ALL_ENGINES reset
+    - nl80211: fix potential leak in AP start
+    - mac80211: Remove a redundant mutex unlock
+    - kbuild: fix DT binding schema rule to detect command line changes
+    - hv_netvsc: Fix unwanted wakeup in netvsc_attach()
+    - usb: charger: assign specific number for enum value
+    - nvme-pci: Hold cq_poll_lock while completing CQEs
+    - s390/qeth: vnicc Fix EOPNOTSUPP precedence
+    - net: netlink: cap max groups which will be considered in netlink_bind()
+    - net: atlantic: fix use after free kasan warn
+    - net: atlantic: fix potential error handling
+    - net: atlantic: fix out of range usage of active_vlans array
+    - net/smc: no peer ID in CLC decline for SMCD
+    - net: ena: make ena rxfh support ETH_RSS_HASH_NO_CHANGE
+    - selftests: Install settings files to fix TIMEOUT failures
+    - kbuild: remove header compile test
+    - kbuild: move headers_check rule to usr/include/Makefile
+    - kbuild: remove unneeded variable, single-all
+    - kbuild: make single target builds even faster
+    - namei: only return -ECHILD from follow_dotdot_rcu()
+    - mwifiex: drop most magic numbers from mwifiex_process_tdls_action_frame()
+    - mwifiex: delete unused mwifiex_get_intf_num()
+    - KVM: SVM: Override default MMIO mask if memory encryption is enabled
+    - KVM: Check for a bad hva before dropping into the ghc slow path
+    - sched/fair: Optimize select_idle_cpu
+    - f2fs: fix to add swap extent correctly
+    - RDMA/hns: Simplify the calculation and usage of wqe idx for post verbs
+    - RDMA/hns: Bugfix for posting a wqe with sge
+    - drivers: net: xgene: Fix the order of the arguments of
+      'alloc_etherdev_mqs()'
+    - ima: ima/lsm policy rule loading logic bug fixes
+    - kprobes: Set unoptimized flag after unoptimizing code
+    - lib/vdso: Make __arch_update_vdso_data() logic understandable
+    - lib/vdso: Update coarse timekeeper unconditionally
+    - pwm: omap-dmtimer: put_device() after of_find_device_by_node()
+    - perf hists browser: Restore ESC as "Zoom out" of DSO/thread/etc
+    - perf ui gtk: Add missing zalloc object
+    - x86/resctrl: Check monitoring static key in the MBM overflow handler
+    - KVM: x86: Remove spurious kvm_mmu_unload() from vcpu destruction path
+    - KVM: x86: Remove spurious clearing of async #PF MSR
+    - rcu: Allow only one expedited GP to run concurrently with wakeups
+    - ubifs: Fix ino_t format warnings in orphan_delete()
+    - thermal: db8500: Depromote debug print
+    - thermal: brcmstb_thermal: Do not use DT coefficients
+    - netfilter: nft_tunnel: no need to call htons() when dumping ports
+    - netfilter: nf_flowtable: fix documentation
+    - bus: tegra-aconnect: Remove PM_CLK dependency
+    - xfs: clear kernel only flags in XFS_IOC_ATTRMULTI_BY_HANDLE
+    - locking/lockdep: Fix lockdep_stats indentation problem
+    - mm/debug.c: always print flags in dump_page()
+    - mm/gup: allow FOLL_FORCE for get_user_pages_fast()
+    - mm/huge_memory.c: use head to check huge zero page
+    - mm, thp: fix defrag setting if newline is not used
+    - kvm: nVMX: VMWRITE checks VMCS-link pointer before VMCS field
+    - kvm: nVMX: VMWRITE checks unsupported field before read-only field
+    - blktrace: Protect q->blk_trace with RCU
+    - Linux 5.4.24
+
+  * Focal update: v5.4.23 upstream stable release (LP: #1866165)
+    - iommu/qcom: Fix bogus detach logic
+    - ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs
+    - ALSA: hda/realtek - Apply quirk for MSI GP63, too
+    - ALSA: hda/realtek - Apply quirk for yet another MSI laptop
+    - ASoC: codec2codec: avoid invalid/double-free of pcm runtime
+    - ASoC: sun8i-codec: Fix setting DAI data format
+    - tpm: Initialize crypto_id of allocated_banks to HASH_ALGO__LAST
+    - ecryptfs: fix a memory leak bug in parse_tag_1_packet()
+    - ecryptfs: fix a memory leak bug in ecryptfs_init_messaging()
+    - btrfs: handle logged extent failure properly
+    - thunderbolt: Prevent crash if non-active NVMem file is read
+    - USB: misc: iowarrior: add support for 2 OEMed devices
+    - USB: misc: iowarrior: add support for the 28 and 28L devices
+    - USB: misc: iowarrior: add support for the 100 device
+    - e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm
+    - floppy: check FDC index for errors before assigning it
+    - vt: fix scrollback flushing on background consoles
+    - vt: selection, handle pending signals in paste_selection
+    - vt: vt_ioctl: fix race in VT_RESIZEX
+    - staging: android: ashmem: Disallow ashmem memory from being remapped
+    - staging: vt6656: fix sign of rx_dbm to bb_pre_ed_rssi.
+    - xhci: Force Maximum Packet size for Full-speed bulk devices to valid range.
+    - xhci: fix runtime pm enabling for quirky Intel hosts
+    - xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms
+    - xhci: Fix memory leak when caching protocol extended capability PSI tables -
+      take 2
+    - usb: host: xhci: update event ring dequeue pointer on purpose
+    - USB: core: add endpoint-blacklist quirk
+    - USB: quirks: blacklist duplicate ep on Sound Devices USBPre2
+    - usb: uas: fix a plug & unplug racing
+    - USB: Fix novation SourceControl XL after suspend
+    - USB: hub: Don't record a connect-change event during reset-resume
+    - USB: hub: Fix the broken detection of USB3 device in SMSC hub
+    - usb: dwc2: Fix SET/CLEAR_FEATURE and GET_STATUS flows
+    - usb: dwc3: gadget: Check for IOC/LST bit in TRB->ctrl fields
+    - usb: dwc3: debug: fix string position formatting mixup with ret and len
+    - scsi: Revert "target/core: Inline transport_lun_remove_cmd()"
+    - staging: rtl8188eu: Fix potential security hole
+    - staging: rtl8188eu: Fix potential overuse of kernel memory
+    - staging: rtl8723bs: Fix potential security hole
+    - staging: rtl8723bs: Fix potential overuse of kernel memory
+    - drm/panfrost: perfcnt: Reserve/use the AS attached to the perfcnt MMU
+      context
+    - powerpc/8xx: Fix clearing of bits 20-23 in ITLB miss
+    - powerpc/eeh: Fix deadlock handling dead PHB
+    - powerpc/tm: Fix clearing MSR[TS] in current when reclaiming on signal
+      delivery
+    - powerpc/entry: Fix an #if which should be an #ifdef in entry_32.S
+    - powerpc/hugetlb: Fix 512k hugepages on 8xx with 16k page size
+    - powerpc/hugetlb: Fix 8M hugepages on 8xx
+    - arm64: memory: Add missing brackets to untagged_addr() macro
+    - jbd2: fix ocfs2 corrupt when clearing block group bits
+    - x86/ima: use correct identifier for SetupMode variable
+    - x86/mce/amd: Publish the bank pointer only after setup has succeeded
+    - x86/mce/amd: Fix kobject lifetime
+    - x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF
+    - serial: 8250: Check UPF_IRQ_SHARED in advance
+    - tty/serial: atmel: manage shutdown in case of RS485 or ISO7816 mode
+    - tty: serial: imx: setup the correct sg entry for tx dma
+    - tty: serial: qcom_geni_serial: Fix RX cancel command failure
+    - serdev: ttyport: restore client ops on deregistration
+    - MAINTAINERS: Update drm/i915 bug filing URL
+    - ACPI: PM: s2idle: Check fixed wakeup events in acpi_s2idle_wake()
+    - mm/memcontrol.c: lost css_put in memcg_expand_shrinker_maps()
+    - nvme-multipath: Fix memory leak with ana_log_buf
+    - genirq/irqdomain: Make sure all irq domain flags are distinct
+    - mm/vmscan.c: don't round up scan size for online memory cgroup
+    - mm/sparsemem: pfn_to_page is not valid yet on SPARSEMEM
+    - lib/stackdepot.c: fix global out-of-bounds in stack_slabs
+    - mm: Avoid creating virtual address aliases in brk()/mmap()/mremap()
+    - drm/amdgpu/soc15: fix xclk for raven
+    - drm/amdgpu/gfx9: disable gfxoff when reading rlc clock
+    - drm/amdgpu/gfx10: disable gfxoff when reading rlc clock
+    - drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
+    - drm/i915: Wean off drm_pci_alloc/drm_pci_free
+    - drm/i915: Update drm/i915 bug filing URL
+    - sched/psi: Fix OOB write when writing 0 bytes to PSI files
+    - KVM: nVMX: Don't emulate instructions in guest mode
+    - KVM: x86: don't notify userspace IOAPIC on edge-triggered interrupt EOI
+    - ext4: fix a data race in EXT4_I(inode)->i_disksize
+    - ext4: add cond_resched() to __ext4_find_entry()
+    - ext4: fix potential race between online resizing and write operations
+    - ext4: fix potential race between s_group_info online resizing and access
+    - ext4: fix potential race between s_flex_groups online resizing and access
+    - ext4: fix mount failure with quota configured as module
+    - ext4: rename s_journal_flag_rwsem to s_writepages_rwsem
+    - ext4: fix race between writepages and enabling EXT4_EXTENTS_FL
+    - KVM: nVMX: Refactor IO bitmap checks into helper function
+    - KVM: nVMX: Check IO instruction VM-exit conditions
+    - KVM: nVMX: clear PIN_BASED_POSTED_INTR from nested pinbased_ctls only when
+      apicv is globally disabled
+    - KVM: nVMX: handle nested posted interrupts when apicv is disabled for L1
+    - KVM: apic: avoid calculating pending eoi from an uninitialized val
+    - btrfs: destroy qgroup extent records on transaction abort
+    - btrfs: fix bytes_may_use underflow in prealloc error condtition
+    - btrfs: reset fs_root to NULL on error in open_ctree
+    - btrfs: do not check delayed items are empty for single transaction cleanup
+    - Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered
+      extents
+    - Btrfs: fix race between shrinking truncate and fiemap
+    - btrfs: don't set path->leave_spinning for truncate
+    - Btrfs: fix deadlock during fast fsync when logging prealloc extents beyond
+      eof
+    - Revert "dmaengine: imx-sdma: Fix memory leak"
+    - drm/i915/gvt: more locking for ppgtt mm LRU list
+    - drm/bridge: tc358767: fix poll timeouts
+    - drm/i915/gt: Protect defer_request() from new waiters
+    - drm/msm/dpu: fix BGR565 vs RGB565 confusion
+    - scsi: Revert "RDMA/isert: Fix a recently introduced regression related to
+      logout"
+    - scsi: Revert "target: iscsi: Wait for all commands to finish before freeing
+      a session"
+    - usb: gadget: composite: Fix bMaxPower for SuperSpeedPlus
+    - usb: dwc2: Fix in ISOC request length checking
+    - staging: rtl8723bs: fix copy of overlapping memory
+    - staging: greybus: use after free in gb_audio_manager_remove_all()
+    - ASoC: atmel: fix atmel_ssc_set_audio link failure
+    - ASoC: fsl_sai: Fix exiting path on probing failure
+    - ecryptfs: replace BUG_ON with error handling code
+    - iommu/vt-d: Fix compile warning from intel-svm.h
+    - crypto: rename sm3-256 to sm3 in hash_algo_name
+    - genirq/proc: Reject invalid affinity masks (again)
+    - bpf, offload: Replace bitwise AND by logical AND in
+      bpf_prog_offload_info_fill
+    - arm64: lse: Fix LSE atomics with LLVM
+    - io_uring: fix __io_iopoll_check deadlock in io_sq_thread
+    - ALSA: rawmidi: Avoid bit fields for state flags
+    - ALSA: seq: Avoid concurrent access to queue flags
+    - ALSA: seq: Fix concurrent access to queue current tick/time
+    - netfilter: xt_hashlimit: limit the max size of hashtable
+    - rxrpc: Fix call RCU cleanup using non-bh-safe locks
+    - io_uring: prevent sq_thread from spinning when it should stop
+    - ata: ahci: Add shutdown to freeze hardware resources of ahci
+    - xen: Enable interrupts when calling _cond_resched()
+    - net/mlx5e: Reset RQ doorbell counter before moving RQ state from RST to RDY
+    - net/mlx5: Fix sleep while atomic in mlx5_eswitch_get_vepa
+    - net/mlx5e: Fix crash in recovery flow without devlink reporter
+    - s390/kaslr: Fix casts in get_random
+    - s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in
+      storage_key_init_range
+    - bpf: Selftests build error in sockmap_basic.c
+    - ASoC: SOF: Intel: hda: Add iDisp4 DAI
+    - Linux 5.4.23
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/net -- disable timeout
+    - SAUCE: selftests/net -- disable l2tp.sh test
+    - SAUCE: selftests/ftrace: Use printf instead of echo in kprobe syntax error
+      tests
+    - SAUCE: selftests/powerpc -- Disable timeout for benchmark and tm tests
+    - SAUCE: selftests/ftrace: Escape additional strings in kprobe syntax error
+      tests
+    - SAUCE: Revert "UBUNTU: SAUCE: blk/core: Gracefully handle unset
+      make_request_fn"
+    - [Packaging] prevent duplicated entries in modules.ignore
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sat, 07 Mar 2020 10:23:40 -0600
+
+linux (5.4.0-17.21) focal; urgency=medium
+
+  * focal/linux: 5.4.0-17.20 -proposed tracker (LP: #1865025)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: drm/i915/execlists: fix off by one in execlists_update_context()
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Thu, 27 Feb 2020 14:29:02 +0100
+
+linux (5.4.0-16.19) focal; urgency=medium
+
+  * focal/linux: 5.4.0-16.19 -proposed tracker (LP: #1864889)
+
+  * system hang: i915 Resetting rcs0 for hang on rcs0 (LP: #1861395)
+    - drm/i915/execlists: Always force a context reload when rewinding RING_TAIL
+
+  * nsleep-lat / set-timer-lat / inconsistency-check / raw_skew from timer in
+    ubuntu_kernel_selftests timeout on 5.3 / 5.4 (LP: #1864626)
+    - selftests/timers: Turn off timeout setting
+
+  * [sfc-0121]enable the HiSilicon v3xx SFC driver (LP: #1860401)
+    - spi: Add HiSilicon v3xx SPI NOR flash controller driver
+    - MAINTAINERS: Add a maintainer for the HiSilicon v3xx SFC driver
+    - [Config] CONFIG_SPI_HISI_SFC_V3XX=m
+
+  * [hns3-0217]sync mainline kernel 5.6rc1 hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1863575)
+    - net: hns3: add management table after IMP reset
+    - net: hns3: fix VF bandwidth does not take effect in some case
+    - net: hns3: fix a copying IPv6 address error in hclge_fd_get_flow_tuples()
+
+  * [hns3-0111]sync mainline kernel 5.5rc6 hns3 patchset into ubuntu HWE kernel
+    branch Edit (LP: #1859261)
+    - net: hns3: schedule hclgevf_service by using delayed workqueue
+    - net: hns3: remove mailbox and reset work in hclge_main
+    - net: hns3: remove unnecessary work in hclgevf_main
+    - net: hns3: allocate WQ with WQ_MEM_RECLAIM flag
+    - net: hns3: do not schedule the periodic task when reset fail
+    - net: hns3: check FE bit before calling hns3_add_frag()
+    - net: hns3: remove useless mutex vport_cfg_mutex in the struct hclge_dev
+    - net: hns3: optimization for CMDQ uninitialization
+    - net: hns3: get FD rules location before dump in debugfs
+    - net: hns3: implement ndo_features_check ops for hns3 driver
+    - net: hns3: add some VF VLAN information for command "ip link show"
+    - net: hns3: add a log for getting chain failure in
+      hns3_nic_uninit_vector_data()
+    - net: hns3: only print misc interrupt status when handling fails
+    - net: hns3: add trace event support for HNS3 driver
+    - net: hns3: re-organize vector handle
+    - net: hns3: modify the IRQ name of TQP vector
+    - net: hns3: modify an unsuitable log in hclge_map_ring_to_vector()
+    - net: hns3: modify the IRQ name of misc vectors
+    - net: hns3: add protection when get SFP speed as 0
+    - net: hns3: replace an unsuitable variable type in
+      hclge_inform_reset_assert_to_vf()
+    - net: hns3: modify an unsuitable reset level for hardware error
+    - net: hns3: split hclge_reset() into preparing and rebuilding part
+    - net: hns3: split hclgevf_reset() into preparing and rebuilding part
+    - net: hns3: refactor the precedure of PF FLR
+    - net: hns3: refactor the procedure of VF FLR
+    - net: hns3: enlarge HCLGE_RESET_WAIT_CNT
+    - net: hns3: modify hclge_func_reset_sync_vf()'s return type to void
+    - net: hns3: refactor the notification scheme of PF reset
+
+  * alsa/hda/realtek: fix a mute led regression on Lenovo X1 Carbon
+    (LP: #1864576)
+    - SAUCE: ALSA: hda/realtek - Fix a regression for mute led on Lenovo Carbon X1
+
+  * ipc/sem.c : process loops infinitely in exit_sem() (LP: #1858834)
+    - Revert "ipc, sem: remove uneeded sem_undo_list lock usage in exit_sem()"
+
+  * r8152 init may take up to 40 seconds at initialization with Dell WD19/WD19DC
+    during hotplug (LP: #1864284)
+    - UBUNTU SAUCE: r8151: check disconnect status after long sleep
+
+  * Update kernel options CONFIG_NR_CPUS and CONFIG_NUMA_EMU for focal
+    (LP: #1864198)
+    - Ubuntu: [Config] Update kernel options CONFIG_NR_CPUS and CONFIG_NUMA_EMU
+
+  * ftrace test in ubuntu_kernel_selftests will timeout randomly (LP: #1864172)
+    - tracing/selftests: Turn off timeout setting
+
+  * Another Dell AIO backlight issue (LP: #1863880)
+    - SAUCE: platform/x86: dell-uart-backlight: move retry block
+
+  * Backport GetFB2 ioctl (LP: #1863874)
+    - SAUCE: drm: Add getfb2 ioctl
+
+  * [20.04] Allow to reset an opencapi adapter (LP: #1862121)
+    - powerpc/powernv/ioda: Fix ref count for devices with their own PE
+    - powerpc/powernv/ioda: Protect PE list
+    - powerpc/powernv/ioda: set up PE on opencapi device when enabling
+    - powerpc/powernv/ioda: Release opencapi device
+    - powerpc/powernv/ioda: Find opencapi slot for a device node
+    - pci/hotplug/pnv-php: Remove erroneous warning
+    - pci/hotplug/pnv-php: Improve error msg on power state change failure
+    - pci/hotplug/pnv-php: Register opencapi slots
+    - pci/hotplug/pnv-php: Relax check when disabling slot
+    - pci/hotplug/pnv-php: Wrap warnings in macro
+    - ocxl: Add PCI hotplug dependency to Kconfig
+
+  * alsa/asoc: export the number of dmic to userspace to work with the latest
+    ucm2 (focal) (LP: #1864400)
+    - ASoC: add control components management
+    - ASoC: intel/skl/hda - export number of digital microphones via control
+      components
+
+  * alsa/sof: let sof driver work with topology with volume and led control
+    (focal) (LP: #1864398)
+    - ASoC: SOF: enable dual control for pga
+    - AsoC: SOF: refactor control load code
+    - ASoC: SOF: acpi led support for switch controls
+    - ASoC: SOF: topology: check errors when parsing LED tokens
+
+  * machine doesn't come up after suspend and re-opening the lid (LP: #1861837)
+    - ASoC: SOF: trace: fix unconditional free in trace release
+
+  * 5.3.0-23-generic causes fans to spin when idle (LP: #1853044)
+    - drm/i915/gt: Close race between engine_park and intel_gt_retire_requests
+    - drm/i915/gt: Adapt engine_park synchronisation rules for engine_retire
+    - drm/i915/gt: Schedule request retirement when timeline idles
+
+  * Focal update: 5.4.22 upstream stable release (LP: #1864488)
+    - core: Don't skip generic XDP program execution for cloned SKBs
+    - enic: prevent waking up stopped tx queues over watchdog reset
+    - net/smc: fix leak of kernel memory to user space
+    - net: dsa: tag_qca: Make sure there is headroom for tag
+    - net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS
+    - net/sched: flower: add missing validation of TCA_FLOWER_FLAGS
+    - drm/gma500: Fixup fbdev stolen size usage evaluation
+    - ath10k: Fix qmi init error handling
+    - wil6210: fix break that is never reached because of zero'ing of a retry
+      counter
+    - drm/qxl: Complete exception handling in qxl_device_init()
+    - rcu/nocb: Fix dump_tree hierarchy print always active
+    - rcu: Fix missed wakeup of exp_wq waiters
+    - rcu: Fix data-race due to atomic_t copy-by-value
+    - f2fs: preallocate DIO blocks when forcing buffered_io
+    - f2fs: call f2fs_balance_fs outside of locked page
+    - media: meson: add missing allocation failure check on new_buf
+    - clk: meson: pll: Fix by 0 division in __pll_params_to_rate()
+    - cpu/hotplug, stop_machine: Fix stop_machine vs hotplug order
+    - brcmfmac: Fix memory leak in brcmf_p2p_create_p2pdev()
+    - brcmfmac: Fix use after free in brcmf_sdio_readframes()
+    - PCI: Fix pci_add_dma_alias() bitmask size
+    - drm/amd/display: Map ODM memory correctly when doing ODM combine
+    - leds: pca963x: Fix open-drain initialization
+    - ext4: fix ext4_dax_read/write inode locking sequence for IOCB_NOWAIT
+    - ALSA: ctl: allow TLV read operation for callback type of element in locked
+      case
+    - gianfar: Fix TX timestamping with a stacked DSA driver
+    - pinctrl: sh-pfc: sh7264: Fix CAN function GPIOs
+    - printk: fix exclusive_console replaying
+    - drm/mipi_dbi: Fix off-by-one bugs in mipi_dbi_blank()
+    - drm/msm/adreno: fix zap vs no-zap handling
+    - pxa168fb: Fix the function used to release some memory in an error handling
+      path
+    - media: ov5640: Fix check for PLL1 exceeding max allowed rate
+    - media: i2c: mt9v032: fix enum mbus codes and frame sizes
+    - media: sun4i-csi: Deal with DRAM offset
+    - media: sun4i-csi: Fix data sampling polarity handling
+    - media: sun4i-csi: Fix [HV]sync polarity handling
+    - clk: at91: sam9x60: fix programmable clock prescaler
+    - powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE
+      number
+    - clk: meson: meson8b: make the CCF use the glitch-free mali mux
+    - gpio: gpio-grgpio: fix possible sleep-in-atomic-context bugs in
+      grgpio_irq_map/unmap()
+    - iommu/vt-d: Fix off-by-one in PASID allocation
+    - x86/fpu: Deactivate FPU state after failure during state load
+    - char/random: silence a lockdep splat with printk()
+    - media: sti: bdisp: fix a possible sleep-in-atomic-context bug in
+      bdisp_device_run()
+    - kernel/module: Fix memleak in module_add_modinfo_attrs()
+    - IB/core: Let IB core distribute cache update events
+    - pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins
+    - efi/x86: Map the entire EFI vendor string before copying it
+    - MIPS: Loongson: Fix potential NULL dereference in loongson3_platform_init()
+    - sparc: Add .exit.data section.
+    - net: ethernet: ixp4xx: Standard module init
+    - raid6/test: fix a compilation error
+    - uio: fix a sleep-in-atomic-context bug in uio_dmem_genirq_irqcontrol()
+    - drm/amdgpu/sriov: workaround on rev_id for Navi12 under sriov
+    - spi: fsl-lpspi: fix only one cs-gpio working
+    - drm/nouveau/nouveau: fix incorrect sizeof on args.src an args.dst
+    - usb: gadget: udc: fix possible sleep-in-atomic-context bugs in gr_probe()
+    - usb: dwc2: Fix IN FIFO allocation
+    - clocksource/drivers/bcm2835_timer: Fix memory leak of timer
+    - drm/amd/display: Clear state after exiting fixed active VRR state
+    - kselftest: Minimise dependency of get_size on C library interfaces
+    - jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info
+      when load journal
+    - ext4: fix deadlock allocating bio_post_read_ctx from mempool
+    - clk: ti: dra7: fix parent for gmac_clkctrl
+    - x86/sysfb: Fix check for bad VRAM size
+    - pwm: omap-dmtimer: Simplify error handling
+    - udf: Allow writing to 'Rewritable' partitions
+    - dmaengine: fsl-qdma: fix duplicated argument to &&
+    - wan/hdlc_x25: fix skb handling
+    - powerpc/iov: Move VF pdev fixup into pcibios_fixup_iov()
+    - tracing: Fix tracing_stat return values in error handling paths
+    - tracing: Fix very unlikely race of registering two stat tracers
+    - ARM: 8952/1: Disable kmemleak on XIP kernels
+    - ext4, jbd2: ensure panic when aborting with zero errno
+    - ath10k: Correct the DMA direction for management tx buffers
+    - rtw88: fix rate mask for 1SS chip
+    - brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362
+    - selftests: settings: tests can be in subsubdirs
+    - rtc: i2c/spi: Avoid inclusion of REGMAP support when not needed
+    - drm/amd/display: Retrain dongles when SINK_COUNT becomes non-zero
+    - tracing: Simplify assignment parsing for hist triggers
+    - nbd: add a flush_workqueue in nbd_start_device
+    - KVM: s390: ENOTSUPP -> EOPNOTSUPP fixups
+    - Btrfs: keep pages dirty when using btrfs_writepage_fixup_worker
+    - drivers/block/zram/zram_drv.c: fix error return codes not being returned in
+      writeback_store
+    - block, bfq: do not plug I/O for bfq_queues with no proc refs
+    - kconfig: fix broken dependency in randconfig-generated .config
+    - clk: qcom: Don't overwrite 'cfg' in clk_rcg2_dfs_populate_freq()
+    - clk: qcom: rcg2: Don't crash if our parent can't be found; return an error
+    - drm/amdkfd: Fix a bug in SDMA RLC queue counting under HWS mode
+    - bpf, sockhash: Synchronize_rcu before free'ing map
+    - drm/amdgpu: remove 4 set but not used variable in
+      amdgpu_atombios_get_connector_info_from_object_table
+    - ath10k: correct the tlv len of ath10k_wmi_tlv_op_gen_config_pno_start
+    - drm/amdgpu: Ensure ret is always initialized when using SOC15_WAIT_ON_RREG
+    - drm/panel: simple: Add Logic PD Type 28 display support
+    - arm64: dts: rockchip: Fix NanoPC-T4 cooling maps
+    - modules: lockdep: Suppress suspicious RCU usage warning
+    - ASoC: intel: sof_rt5682: Add quirk for number of HDMI DAI's
+    - ASoC: intel: sof_rt5682: Add support for tgl-max98357a-rt5682
+    - regulator: rk808: Lower log level on optional GPIOs being not available
+    - net/wan/fsl_ucc_hdlc: reject muram offsets above 64K
+    - NFC: port100: Convert cpu_to_le16(le16_to_cpu(E1) + E2) to use
+      le16_add_cpu().
+    - arm64: dts: allwinner: H6: Add PMU mode
+    - arm64: dts: allwinner: H5: Add PMU node
+    - arm: dts: allwinner: H3: Add PMU node
+    - opp: Free static OPPs on errors while adding them
+    - selinux: ensure we cleanup the internal AVC counters on error in
+      avc_insert()
+    - arm64: dts: qcom: msm8996: Disable USB2 PHY suspend by core
+    - padata: validate cpumask without removed CPU during offline
+    - clk: imx: Add correct failure handling for clk based helpers
+    - ARM: exynos_defconfig: Bring back explicitly wanted options
+    - ARM: dts: imx6: rdu2: Disable WP for USDHC2 and USDHC3
+    - ARM: dts: imx6: rdu2: Limit USBH1 to Full Speed
+    - bus: ti-sysc: Implement quirk handling for CLKDM_NOAUTO
+    - PCI: iproc: Apply quirk_paxc_bridge() for module as well as built-in
+    - media: cx23885: Add support for AVerMedia CE310B
+    - PCI: Add generic quirk for increasing D3hot delay
+    - PCI: Increase D3 delay for AMD Ryzen5/7 XHCI controllers
+    - gpu/drm: ingenic: Avoid null pointer deference in plane atomic update
+    - selftests/net: make so_txtime more robust to timer variance
+    - media: v4l2-device.h: Explicitly compare grp{id,mask} to zero in v4l2_device
+      macros
+    - reiserfs: Fix spurious unlock in reiserfs_fill_super() error handling
+    - samples/bpf: Set -fno-stack-protector when building BPF programs
+    - r8169: check that Realtek PHY driver module is loaded
+    - fore200e: Fix incorrect checks of NULL pointer dereference
+    - netfilter: nft_tunnel: add the missing ERSPAN_VERSION nla_policy
+    - ALSA: usx2y: Adjust indentation in snd_usX2Y_hwdep_dsp_status
+    - PCI: Add nr_devfns parameter to pci_add_dma_alias()
+    - PCI: Add DMA alias quirk for PLX PEX NTB
+    - b43legacy: Fix -Wcast-function-type
+    - ipw2x00: Fix -Wcast-function-type
+    - iwlegacy: Fix -Wcast-function-type
+    - rtlwifi: rtl_pci: Fix -Wcast-function-type
+    - orinoco: avoid assertion in case of NULL pointer
+    - drm/amdgpu: fix KIQ ring test fail in TDR of SRIOV
+    - clk: qcom: smd: Add missing bimc clock
+    - ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1
+    - nfsd: Clone should commit src file metadata too
+    - scsi: ufs: Complete pending requests in host reset and restore path
+    - scsi: aic7xxx: Adjust indentation in ahc_find_syncrate
+    - crypto: inside-secure - add unspecified HAS_IOMEM dependency
+    - drm/mediatek: handle events when enabling/disabling crtc
+    - clk: renesas: rcar-gen3: Allow changing the RPC[D2] clocks
+    - ARM: dts: r8a7779: Add device node for ARM global timer
+    - selinux: ensure we cleanup the internal AVC counters on error in
+      avc_update()
+    - scsi: lpfc: Fix: Rework setting of fdmi symbolic node name registration
+    - arm64: dts: qcom: db845c: Enable ath10k 8bit host-cap quirk
+    - iommu/amd: Check feature support bit before accessing MSI capability
+      registers
+    - iommu/amd: Only support x2APIC with IVHD type 11h/40h
+    - iommu/iova: Silence warnings under memory pressure
+    - clk: actually call the clock init before any other callback of the clock
+    - dmaengine: Store module owner in dma_device struct
+    - dmaengine: imx-sdma: Fix memory leak
+    - bpf: Print error message for bpftool cgroup show
+    - net: phy: realtek: add logging for the RGMII TX delay configuration
+    - crypto: chtls - Fixed memory leak
+    - x86/vdso: Provide missing include file
+    - PM / devfreq: exynos-ppmu: Fix excessive stack usage
+    - PM / devfreq: rk3399_dmc: Add COMPILE_TEST and HAVE_ARM_SMCCC dependency
+    - drm/fbdev: Fallback to non tiled mode if all tiles not present
+    - pinctrl: sh-pfc: sh7269: Fix CAN function GPIOs
+    - reset: uniphier: Add SCSSI reset control for each channel
+    - ASoC: soc-topology: fix endianness issues
+    - fbdev: fix numbering of fbcon options
+    - RDMA/rxe: Fix error type of mmap_offset
+    - clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock
+    - ALSA: sh: Fix unused variable warnings
+    - clk: Use parent node pointer during registration if necessary
+    - clk: uniphier: Add SCSSI clock gate for each channel
+    - ALSA: hda/realtek - Apply mic mute LED quirk for Dell E7xx laptops, too
+    - ALSA: sh: Fix compile warning wrt const
+    - net: phy: fixed_phy: fix use-after-free when checking link GPIO
+    - tools lib api fs: Fix gcc9 stringop-truncation compilation error
+    - vfio/spapr/nvlink2: Skip unpinning pages on error exit
+    - ASoC: Intel: sof_rt5682: Ignore the speaker amp when there isn't one.
+    - ACPI: button: Add DMI quirk for Razer Blade Stealth 13 late 2019 lid switch
+    - iommu/vt-d: Match CPU and IOMMU paging mode
+    - iommu/vt-d: Avoid sending invalid page response
+    - drm/amdkfd: Fix permissions of hang_hws
+    - mlx5: work around high stack usage with gcc
+    - RDMA/hns: Avoid printing address of mtt page
+    - drm: remove the newline for CRC source name.
+    - usb: dwc3: use proper initializers for property entries
+    - ARM: dts: stm32: Add power-supply for DSI panel on stm32f469-disco
+    - usbip: Fix unsafe unaligned pointer usage
+    - udf: Fix free space reporting for metadata and virtual partitions
+    - drm/mediatek: Add gamma property according to hardware capability
+    - staging: rtl8188: avoid excessive stack usage
+    - IB/hfi1: Add software counter for ctxt0 seq drop
+    - IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats
+    - soc/tegra: fuse: Correct straps' address for older Tegra124 device trees
+    - efi/x86: Don't panic or BUG() on non-critical error conditions
+    - rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls
+    - Input: edt-ft5x06 - work around first register access error
+    - bnxt: Detach page from page pool before sending up the stack
+    - x86/nmi: Remove irq_work from the long duration NMI handler
+    - wan: ixp4xx_hss: fix compile-testing on 64-bit
+    - clocksource: davinci: only enable clockevents once tim34 is initialized
+    - arm64: dts: rockchip: fix dwmmc clock name for px30
+    - arm64: dts: rockchip: add reg property to brcmf sub-nodes
+    - ARM: dts: rockchip: add reg property to brcmf sub node for
+      rk3188-bqedison2qc
+    - ALSA: usb-audio: Add boot quirk for MOTU M Series
+    - ASoC: atmel: fix build error with CONFIG_SND_ATMEL_SOC_DMA=m
+    - raid6/test: fix a compilation warning
+    - tty: synclinkmp: Adjust indentation in several functions
+    - tty: synclink_gt: Adjust indentation in several functions
+    - misc: xilinx_sdfec: fix xsdfec_poll()'s return type
+    - visorbus: fix uninitialized variable access
+    - driver core: platform: Prevent resouce overflow from causing infinite loops
+    - driver core: Print device when resources present in really_probe()
+    - ASoC: SOF: Intel: hda-dai: fix compilation warning in pcm_prepare
+    - bpf: Return -EBADRQC for invalid map type in __bpf_tx_xdp_map
+    - vme: bridges: reduce stack usage
+    - drm/nouveau/secboot/gm20b: initialize pointer in gm20b_secboot_new()
+    - drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from fw
+    - drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handler
+    - drm/nouveau/drm/ttm: Remove set but not used variable 'mem'
+    - drm/nouveau/fault/gv100-: fix memory leak on module unload
+    - dm thin: don't allow changing data device during thin-pool reload
+    - gpiolib: Set lockdep class for hierarchical irq domains
+    - drm/vmwgfx: prevent memory leak in vmw_cmdbuf_res_add
+    - perf/imx_ddr: Fix cpu hotplug state cleanup
+    - usb: musb: omap2430: Get rid of musb .set_vbus for omap2430 glue
+    - kbuild: remove *.tmp file when filechk fails
+    - iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE
+    - ALSA: usb-audio: unlock on error in probe
+    - f2fs: set I_LINKABLE early to avoid wrong access by vfs
+    - f2fs: free sysfs kobject
+    - scsi: ufs: pass device information to apply_dev_quirks
+    - scsi: ufs-mediatek: add apply_dev_quirks variant operation
+    - scsi: iscsi: Don't destroy session if there are outstanding connections
+    - crypto: essiv - fix AEAD capitalization and preposition use in help text
+    - ALSA: usb-audio: add implicit fb quirk for MOTU M Series
+    - RDMA/mlx5: Don't fake udata for kernel path
+    - arm64: lse: fix LSE atomics with LLVM's integrated assembler
+    - arm64: fix alternatives with LLVM's integrated assembler
+    - drm/amd/display: fixup DML dependencies
+    - EDAC/sifive: Fix return value check in ecc_register()
+    - KVM: PPC: Remove set but not used variable 'ra', 'rs', 'rt'
+    - arm64: dts: ti: k3-j721e-main: Add missing power-domains for smmu
+    - sched/core: Fix size of rq::uclamp initialization
+    - sched/topology: Assert non-NUMA topology masks don't (partially) overlap
+    - perf/x86/amd: Constrain Large Increment per Cycle events
+    - watchdog/softlockup: Enforce that timestamp is valid on boot
+    - debugobjects: Fix various data races
+    - ASoC: SOF: Intel: hda: Fix SKL dai count
+    - regulator: vctrl-regulator: Avoid deadlock getting and setting the voltage
+    - f2fs: fix memleak of kobject
+    - x86/mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd
+    - pwm: omap-dmtimer: Remove PWM chip in .remove before making it unfunctional
+    - cmd64x: potential buffer overflow in cmd64x_program_timings()
+    - ide: serverworks: potential overflow in svwks_set_pio_mode()
+    - pwm: Remove set but not set variable 'pwm'
+    - btrfs: fix possible NULL-pointer dereference in integrity checks
+    - btrfs: safely advance counter when looking up bio csums
+    - btrfs: device stats, log when stats are zeroed
+    - module: avoid setting info->name early in case we can fall back to
+      info->mod->name
+    - remoteproc: Initialize rproc_class before use
+    - regulator: core: Fix exported symbols to the exported GPL version
+    - irqchip/mbigen: Set driver .suppress_bind_attrs to avoid remove problems
+    - ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()
+    - spi: spi-fsl-qspi: Ensure width is respected in spi-mem operations
+    - kbuild: use -S instead of -E for precise cc-option test in Kconfig
+    - objtool: Fix ARCH=x86_64 build error
+    - x86/decoder: Add TEST opcode to Group3-2
+    - s390: adjust -mpacked-stack support check for clang 10
+    - s390/ftrace: generate traced function stack frame
+    - driver core: platform: fix u32 greater or equal to zero comparison
+    - bpf, btf: Always output invariant hit in pahole DWARF to BTF transform
+    - ALSA: hda - Add docking station support for Lenovo Thinkpad T420s
+    - sunrpc: Fix potential leaks in sunrpc_cache_unhash()
+    - drm/nouveau/mmu: fix comptag memory leak
+    - powerpc/sriov: Remove VF eeh_dev state when disabling SR-IOV
+    - media: uvcvideo: Add a quirk to force GEO GC6500 Camera bits-per-pixel value
+    - btrfs: separate definition of assertion failure handlers
+    - btrfs: Fix split-brain handling when changing FSID to metadata uuid
+    - bcache: cached_dev_free needs to put the sb page
+    - bcache: rework error unwinding in register_bcache
+    - bcache: fix use-after-free in register_bcache()
+    - iommu/vt-d: Remove unnecessary WARN_ON_ONCE()
+    - alarmtimer: Make alarmtimer platform device child of RTC device
+    - selftests: bpf: Reset global state between reuseport test runs
+    - jbd2: switch to use jbd2_journal_abort() when failed to submit the commit
+      record
+    - jbd2: make sure ESHUTDOWN to be recorded in the journal superblock
+    - powerpc/pseries/lparcfg: Fix display of Maximum Memory
+    - selftests/eeh: Bump EEH wait time to 60s
+    - ARM: 8951/1: Fix Kexec compilation issue.
+    - ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82
+    - hostap: Adjust indentation in prism2_hostapd_add_sta
+    - rtw88: fix potential NULL skb access in TX ISR
+    - iwlegacy: ensure loop counter addr does not wrap and cause an infinite loop
+    - cifs: fix unitialized variable poential problem with network I/O cache lock
+      patch
+    - cifs: Fix mount options set in automount
+    - cifs: fix NULL dereference in match_prepath
+    - bpf: map_seq_next should always increase position index
+    - powerpc/mm: Don't log user reads to 0xffffffff
+    - ceph: check availability of mds cluster on mount after wait timeout
+    - rbd: work around -Wuninitialized warning
+    - drm/amd/display: do not allocate display_mode_lib unnecessarily
+    - irqchip/gic-v3: Only provision redistributors that are enabled in ACPI
+    - drm/nouveau/disp/nv50-: prevent oops when no channel method map provided
+    - char: hpet: Fix out-of-bounds read bug
+    - ftrace: fpid_next() should increase position index
+    - trigger_next should increase position index
+    - radeon: insert 10ms sleep in dce5_crtc_load_lut
+    - powerpc: Do not consider weak unresolved symbol relocations as bad
+    - btrfs: do not do delalloc reservation under page lock
+    - ocfs2: make local header paths relative to C files
+    - ocfs2: fix a NULL pointer dereference when call
+      ocfs2_update_inode_fsync_trans()
+    - lib/scatterlist.c: adjust indentation in __sg_alloc_table
+    - reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
+    - bcache: fix memory corruption in bch_cache_accounting_clear()
+    - bcache: explicity type cast in bset_bkey_last()
+    - bcache: fix incorrect data type usage in btree_flush_write()
+    - irqchip/gic-v3-its: Reference to its_invall_cmd descriptor when building
+      INVALL
+    - nvmet: Pass lockdep expression to RCU lists
+    - nvme-pci: remove nvmeq->tags
+    - iwlwifi: mvm: Fix thermal zone registration
+    - iwlwifi: mvm: Check the sta is not NULL in iwl_mvm_cfg_he_sta()
+    - asm-generic/tlb: add missing CONFIG symbol
+    - microblaze: Prevent the overflow of the start
+    - brd: check and limit max_part par
+    - drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_latency
+    - drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_voltage
+    - NFS: Fix memory leaks
+    - help_next should increase position index
+    - i40e: Relax i40e_xsk_wakeup's return value when PF is busy
+    - cifs: log warning message (once) if out of disk space
+    - virtio_balloon: prevent pfn array overflow
+    - fuse: don't overflow LLONG_MAX with end offset
+    - mlxsw: spectrum_dpipe: Add missing error path
+    - drm/amdgpu/display: handle multiple numbers of fclks in dcn_calcs.c (v2)
+    - bcache: properly initialize 'path' and 'err' in register_bcache()
+    - rtc: Kconfig: select REGMAP_I2C when necessary
+    - Linux 5.4.22
+
+  * Focal update: 5.4.22 upstream stable release (LP: #1864488) //
+    CVE-2019-19076.
+    - Revert "nfp: abm: fix memory leak in nfp_abm_u32_knode_replace"
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Revert "UBUNTU: [Debian] Update linux source package name in
+      debian/tests/*"
+    - SAUCE: selftests: fix undefined lable cleanup build error
+    - SAUCE: selftests: fix undefined macro RET_IF() build error
+    - [Packaging] Include modules.builtin.modinfo in linux-modules
+    - update dkms package versions
+    - Revert "UBUNTU: [Debian] Update package name in getabis repo list"
+
+  * Miscellaneous upstream changes
+    - libbpf: Extract and generalize CPU mask parsing logic
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 26 Feb 2020 12:22:51 -0600
+
+linux (5.4.0-15.18) focal; urgency=medium
+
+  * focal/linux: 5.4.0-15.18 -proposed tracker (LP: #1864085)
+
+  * Focal update: v5.4.21 upstream stable release (LP: #1864046)
+    - Input: synaptics - switch T470s to RMI4 by default
+    - Input: synaptics - enable SMBus on ThinkPad L470
+    - Input: synaptics - remove the LEN0049 dmi id from topbuttonpad list
+    - ALSA: usb-audio: Fix UAC2/3 effect unit parsing
+    - ALSA: hda/realtek - Add more codec supported Headset Button
+    - ALSA: hda/realtek - Fix silent output on MSI-GL73
+    - ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
+    - ACPI: EC: Fix flushing of pending work
+    - ACPI: PM: s2idle: Avoid possible race related to the EC GPE
+    - ACPICA: Introduce acpi_any_gpe_status_set()
+    - ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system
+    - ALSA: usb-audio: sound: usb: usb true/false for bool return type
+    - ALSA: usb-audio: Add clock validity quirk for Denon MC7000/MCX8000
+    - ext4: don't assume that mmp_nodename/bdevname have NUL
+    - ext4: fix support for inode sizes > 1024 bytes
+    - ext4: fix checksum errors with indexed dirs
+    - ext4: add cond_resched() to ext4_protect_reserved_inode
+    - ext4: improve explanation of a mount failure caused by a misconfigured
+      kernel
+    - Btrfs: fix race between using extent maps and merging them
+    - btrfs: ref-verify: fix memory leaks
+    - btrfs: print message when tree-log replay starts
+    - btrfs: log message when rw remount is attempted with unclean tree-log
+    - ARM: npcm: Bring back GPIOLIB support
+    - gpio: xilinx: Fix bug where the wrong GPIO register is written to
+    - arm64: ssbs: Fix context-switch when SSBS is present on all CPUs
+    - xprtrdma: Fix DMA scatter-gather list mapping imbalance
+    - cifs: make sure we do not overflow the max EA buffer size
+    - EDAC/sysfs: Remove csrow objects on errors
+    - EDAC/mc: Fix use-after-free and memleaks during device removal
+    - KVM: nVMX: Use correct root level for nested EPT shadow page tables
+    - perf/x86/amd: Add missing L2 misses event spec to AMD Family 17h's event map
+    - s390/pkey: fix missing length of protected key on return
+    - s390/uv: Fix handling of length extensions
+    - drm/vgem: Close use-after-free race in vgem_gem_create
+    - drm/panfrost: Make sure the shrinker does not reclaim referenced BOs
+    - bus: moxtet: fix potential stack buffer overflow
+    - nvme: fix the parameter order for nvme_get_log in nvme_get_fw_slot_info
+    - drivers: ipmi: fix off-by-one bounds check that leads to a out-of-bounds
+      write
+    - IB/mlx5: Return failure when rts2rts_qp_counters_set_id is not supported
+    - IB/hfi1: Acquire lock to release TID entries when user file is closed
+    - IB/hfi1: Close window for pq and request coliding
+    - IB/rdmavt: Reset all QPs when the device is shut down
+    - IB/umad: Fix kernel crash while unloading ib_umad
+    - RDMA/core: Fix invalid memory access in spec_filter_size
+    - RDMA/iw_cxgb4: initiate CLOSE when entering TERM
+    - RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create
+    - RDMA/rxe: Fix soft lockup problem due to using tasklets in softirq
+    - RDMA/core: Fix protection fault in get_pkey_idx_qp_list
+    - s390/time: Fix clk type in get_tod_clock
+    - sched/uclamp: Reject negative values in cpu_uclamp_write()
+    - spmi: pmic-arb: Set lockdep class for hierarchical irq domains
+    - perf/x86/intel: Fix inaccurate period in context switch for auto-reload
+    - hwmon: (pmbus/ltc2978) Fix PMBus polling of MFR_COMMON definitions.
+    - mac80211: fix quiet mode activation in action frames
+    - cifs: fix mount option display for sec=krb5i
+    - arm64: dts: fast models: Fix FVP PCI interrupt-map property
+    - KVM: x86: Mask off reserved bit from #DB exception payload
+    - perf stat: Don't report a null stalled cycles per insn metric
+    - NFSv4.1 make cachethis=no for writes
+    - Revert "drm/sun4i: drv: Allow framebuffer modifiers in mode config"
+    - jbd2: move the clearing of b_modified flag to the journal_unmap_buffer()
+    - jbd2: do not clear the BH_Mapped flag when forgetting a metadata buffer
+    - ext4: choose hardlimit when softlimit is larger than hardlimit in
+      ext4_statfs_project()
+    - KVM: x86/mmu: Fix struct guest_walker arrays for 5-level paging
+    - gpio: add gpiod_toggle_active_low()
+    - mmc: core: Rework wp-gpio handling
+    - Linux 5.4.21
+
+  * Fix AMD Stoney Ridge screen flickering under 4K resolution (LP: #1864005)
+    - iommu/amd: Disable IOMMU on Stoney Ridge systems
+
+  * Focal Fossa (20.04) feature request - Enable CONFIG_X86_UV (LP: #1863810)
+    - [Config] CONFIG_X86_UV=y
+
+  * [UBUNTU 20.04] Enable proper reset/recovery of s390x/pci functions in error
+    state (LP: #1863768)
+    - s390/pci: Recover handle in clp_set_pci_fn()
+    - s390/pci: Fix possible deadlock in recover_store()
+
+  * [20.04 FEAT] Enhanced handling of secure keys and protected keys
+    (LP: #1853303)
+    - s390/zcrypt: enable card/domain autoselect on ep11 cprbs
+    - s390/zcrypt: ep11 structs rework, export zcrypt_send_ep11_cprb
+    - s390/zcrypt: add new low level ep11 functions support file
+    - s390/zcrypt: extend EP11 card and queue sysfs attributes
+    - s390/pkey/zcrypt: Support EP11 AES secure keys
+
+  * [20.04 FEAT] paes self test (LP: #1854948)
+    - s390/pkey: use memdup_user() to simplify code
+    - s390/pkey: Add support for key blob with clear key value
+    - s390/crypto: Rework on paes implementation
+    - s390/crypto: enable clear key values for paes ciphers
+    - crypto/testmgr: enable selftests for paes-s390 ciphers
+
+  * Sometimes can't adjust brightness on Dell AIO (LP: #1862885)
+    - SAUCE: platform/x86: dell-uart-backlight: increase retry times
+
+  * change the ASoC card name and card longname to meet the requirement of alsa-
+    lib-1.2.1 (Focal) (LP: #1862712)
+    - ASoC: improve the DMI long card code in asoc-core
+    - ASoC: DMI long name - avoid to add board name if matches with product name
+    - ASoC: intel - fix the card names
+
+  * Support Headset Mic on HP cPC (LP: #1862313)
+    - ALSA: hda/realtek - Add Headset Mic supported for HP cPC
+    - ALSA: hda/realtek - Fixed one of HP ALC671 platform Headset Mic supported
+
+  * [hns3-0205]sync mainline kernel 5.5rc7 hns3 patchset into ubuntu HWE kernel
+    branch (LP: #1861972)
+    - net: hns3: replace snprintf with scnprintf in hns3_dbg_cmd_read
+    - net: hns3: replace snprintf with scnprintf in hns3_update_strings
+    - net: hns3: limit the error logging in the hns3_clean_tx_ring()
+    - net: hns3: do not reuse pfmemalloc pages
+    - net: hns3: set VF's default reset_type to HNAE3_NONE_RESET
+    - net: hns3: move duplicated macro definition into header
+    - net: hns3: refine the input parameter 'size' for snprintf()
+    - net: hns3: rewrite a log in hclge_put_vector()
+    - net: hns3: delete unnecessary blank line and space for cleanup
+    - net: hns3: remove redundant print on ENOMEM
+
+  * [acc-0205]sync mainline kernel 5.5rc6 acc patchset into ubuntu HWE kernel
+    branch (LP: #1861976)
+    - crypto: hisilicon/sec2 - Use atomics instead of __sync
+    - crypto: hisilicon - still no need to check return value of debugfs_create
+      functions
+    - crypto: hisilicon - Update debugfs usage of SEC V2
+    - crypto: hisilicon - fix print/comment of SEC V2
+    - crypto: hisilicon - Update some names on SEC V2
+    - crypto: hisilicon - Update QP resources of SEC V2
+    - crypto: hisilicon - Adjust some inner logic
+    - crypto: hisilicon - Add callback error check
+    - crypto: hisilicon - Add branch prediction macro
+    - crypto: hisilicon - redefine skcipher initiation
+    - crypto: hisilicon - Add aead support on SEC2
+    - crypto: hisilicon - Bugfixed tfm leak
+    - crypto: hisilicon - Fixed some tiny bugs of HPRE
+    - crypto: hisilicon - adjust hpre_crt_para_get
+    - crypto: hisilicon - add branch prediction macro
+    - crypto: hisilicon - fix spelling mistake "disgest" -> "digest"
+
+  * [spi-0115]spi: dw: use "smp_mb()" to avoid sending spi data error
+    (LP: #1859744)
+    - spi: dw: use "smp_mb()" to avoid sending spi data error
+
+  * [tpm-0115]EFI/stub: tpm: enable tpm eventlog function for ARM64 platform
+    (LP: #1859743)
+    - efi: libstub/tpm: enable tpm eventlog function for ARM platforms
+
+  * Restrict xmon to read-only-mode if kernel is locked down (LP: #1863562)
+    - powerpc/xmon: Restrict when kernel is locked down
+
+  * [CML-H] Add intel_thermal_pch driver support Comet Lake -H (LP: #1853219)
+    - thermal: intel: intel_pch_thermal: Add Comet Lake (CML) platform support
+
+  * Root can lift kernel lockdown via USB/IP (LP: #1861238)
+    - Revert "UBUNTU: SAUCE: (lockdown) Add a SysRq option to lift kernel
+      lockdown"
+
+  * Dell XPS 13 (7390) Display Flickering - 19.10  (LP: #1849947)
+    - SAUCE: drm/i915: Disable PSR by default on all platforms
+
+  * Focal update: v5.4.20 upstream stable release (LP: #1863589)
+    - ASoC: pcm: update FE/BE trigger order based on the command
+    - hv_sock: Remove the accept port restriction
+    - IB/mlx4: Fix memory leak in add_gid error flow
+    - IB/srp: Never use immediate data if it is disabled by a user
+    - IB/mlx4: Fix leak in id_map_find_del
+    - RDMA/netlink: Do not always generate an ACK for some netlink operations
+    - RDMA/i40iw: fix a potential NULL pointer dereference
+    - RDMA/core: Fix locking in ib_uverbs_event_read
+    - RDMA/uverbs: Verify MR access flags
+    - RDMA/cma: Fix unbalanced cm_id reference count during address resolve
+    - RDMA/umem: Fix ib_umem_find_best_pgsz()
+    - scsi: ufs: Fix ufshcd_probe_hba() reture value in case
+      ufshcd_scsi_add_wlus() fails
+    - PCI/IOV: Fix memory leak in pci_iov_add_virtfn()
+    - ath10k: pci: Only dump ATH10K_MEM_REGION_TYPE_IOREG when safe
+    - PCI/switchtec: Use dma_set_mask_and_coherent()
+    - PCI/switchtec: Fix vep_vector_number ioread width
+    - PCI: tegra: Fix afi_pex2_ctrl reg offset for Tegra30
+    - PCI: Don't disable bridge BARs when assigning bus resources
+    - PCI/AER: Initialize aer_fifo
+    - iwlwifi: mvm: avoid use after free for pmsr request
+    - bpftool: Don't crash on missing xlated program instructions
+    - bpf, sockmap: Don't sleep while holding RCU lock on tear-down
+    - bpf, sockhash: Synchronize_rcu before free'ing map
+    - selftests/bpf: Test freeing sockmap/sockhash with a socket in it
+    - bpf: Improve bucket_log calculation logic
+    - bpf, sockmap: Check update requirements after locking
+    - nfs: NFS_SWAP should depend on SWAP
+    - NFS: Revalidate the file size on a fatal write error
+    - NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes()
+    - NFS: Fix fix of show_nfs_errors
+    - NFSv4: pnfs_roc() must use cred_fscmp() to compare creds
+    - NFSv4: try lease recovery on NFS4ERR_EXPIRED
+    - NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals
+    - x86/boot: Handle malformed SRAT tables during early ACPI parsing
+    - rtc: hym8563: Return -EINVAL if the time is known to be invalid
+    - rtc: cmos: Stop using shared IRQ
+    - watchdog: qcom: Use platform_get_irq_optional() for bark irq
+    - ARC: [plat-axs10x]: Add missing multicast filter number to GMAC node
+    - platform/x86: intel_mid_powerbtn: Take a copy of ddata
+    - arm64: dts: qcom: msm8998: Fix tcsr syscon size
+    - arm64: dts: uDPU: fix broken ethernet
+    - ARM: dts: at91: Reenable UART TX pull-ups
+    - ARM: dts: am43xx: add support for clkout1 clock
+    - arm64: dts: renesas: r8a77990: ebisu: Remove clkout-lr-synchronous from
+      sound
+    - arm64: dts: marvell: clearfog-gt-8k: fix switch cpu port node
+    - ARM: dts: meson8: use the actual frequency for the GPU's 182.1MHz OPP
+    - ARM: dts: meson8b: use the actual frequency for the GPU's 364MHz OPP
+    - ARM: dts: at91: sama5d3: fix maximum peripheral clock rates
+    - ARM: dts: at91: sama5d3: define clock rate range for tcb1
+    - tools/power/acpi: fix compilation error
+    - soc: qcom: rpmhpd: Set 'active_only' for active only power domains
+    - Revert "powerpc/pseries/iommu: Don't use dma_iommu_ops on secure guests"
+    - powerpc/ptdump: Fix W+X verification call in mark_rodata_ro()
+    - powerpc/ptdump: Only enable PPC_CHECK_WX with STRICT_KERNEL_RWX
+    - powerpc/papr_scm: Fix leaking 'bus_desc.provider_name' in some paths
+    - powerpc/pseries/vio: Fix iommu_table use-after-free refcount warning
+    - powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce
+      for DDW
+    - iommu/arm-smmu-v3: Populate VMID field for CMDQ_OP_TLBI_NH_VA
+    - ARM: at91: pm: use SAM9X60 PMC's compatible
+    - ARM: at91: pm: use of_device_id array to find the proper shdwc node
+    - KVM: arm/arm64: vgic-its: Fix restoration of unmapped collections
+    - ARM: 8949/1: mm: mark free_memmap as __init
+    - sched/uclamp: Fix a bug in propagating uclamp value in new cgroups
+    - arm64: cpufeature: Fix the type of no FP/SIMD capability
+    - arm64: cpufeature: Set the FP/SIMD compat HWCAP bits properly
+    - arm64: ptrace: nofpsimd: Fail FP/SIMD regset operations
+    - KVM: arm/arm64: Fix young bit from mmu notifier
+    - KVM: arm: Fix DFSR setting for non-LPAE aarch32 guests
+    - KVM: arm: Make inject_abt32() inject an external abort instead
+    - KVM: arm64: pmu: Don't increment SW_INCR if PMCR.E is unset
+    - KVM: arm64: pmu: Fix chained SW_INCR counters
+    - KVM: arm64: Treat emulated TVAL TimerValue as a signed 32-bit integer
+    - arm64: nofpsmid: Handle TIF_FOREIGN_FPSTATE flag cleanly
+    - mtd: onenand_base: Adjust indentation in onenand_read_ops_nolock
+    - mtd: sharpslpart: Fix unsigned comparison to zero
+    - crypto: testmgr - don't try to decrypt uninitialized buffers
+    - crypto: artpec6 - return correct error code for failed setkey()
+    - crypto: atmel-sha - fix error handling when setting hmac key
+    - crypto: caam/qi2 - fix typo in algorithm's driver name
+    - drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at probe
+    - media: i2c: adv748x: Fix unsafe macros
+    - dt-bindings: iio: adc: ad7606: Fix wrong maxItems value
+    - bcache: avoid unnecessary btree nodes flushing in btree_flush_write()
+    - selinux: revert "stop passing MAY_NOT_BLOCK to the AVC upon follow_link"
+    - selinux: fix regression introduced by move_mount(2) syscall
+    - pinctrl: sh-pfc: r8a77965: Fix DU_DOTCLKIN3 drive/bias control
+    - pinctrl: sh-pfc: r8a7778: Fix duplicate SDSELF_B and SD1_CLK_B
+    - regmap: fix writes to non incrementing registers
+    - mfd: max77650: Select REGMAP_IRQ in Kconfig
+    - clk: meson: g12a: fix missing uart2 in regmap table
+    - dmaengine: axi-dmac: add a check for devm_regmap_init_mmio
+    - mwifiex: Fix possible buffer overflows in mwifiex_ret_wmm_get_status()
+    - mwifiex: Fix possible buffer overflows in mwifiex_cmd_append_vsie_tlv()
+    - libertas: don't exit from lbs_ibss_join_existing() with RCU read lock held
+    - libertas: make lbs_ibss_join_existing() return error code on rates overflow
+    - selinux: fall back to ref-walk if audit is required
+    - Linux 5.4.20
+
+  * Focal update: v5.4.19 upstream stable release (LP: #1863588)
+    - sparc32: fix struct ipc64_perm type definition
+    - bnxt_en: Move devlink_register before registering netdev
+    - cls_rsvp: fix rsvp_policy
+    - gtp: use __GFP_NOWARN to avoid memalloc warning
+    - l2tp: Allow duplicate session creation with UDP
+    - net: hsr: fix possible NULL deref in hsr_handle_frame()
+    - net_sched: fix an OOB access in cls_tcindex
+    - net: stmmac: Delete txtimer in suspend()
+    - bnxt_en: Fix TC queue mapping.
+    - rxrpc: Fix use-after-free in rxrpc_put_local()
+    - rxrpc: Fix insufficient receive notification generation
+    - rxrpc: Fix missing active use pinning of rxrpc_local object
+    - rxrpc: Fix NULL pointer deref due to call->conn being cleared on disconnect
+    - tcp: clear tp->total_retrans in tcp_disconnect()
+    - tcp: clear tp->delivered in tcp_disconnect()
+    - tcp: clear tp->data_segs{in|out} in tcp_disconnect()
+    - tcp: clear tp->segs_{in|out} in tcp_disconnect()
+    - ionic: fix rxq comp packet type mask
+    - MAINTAINERS: correct entries for ISDN/mISDN section
+    - netdevsim: fix stack-out-of-bounds in nsim_dev_debugfs_init()
+    - bnxt_en: Fix logic that disables Bus Master during firmware reset.
+    - media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
+    - mfd: dln2: More sanity checking for endpoints
+    - netfilter: ipset: fix suspicious RCU usage in find_set_and_id
+    - ipc/msg.c: consolidate all xxxctl_down() functions
+    - tracing/kprobes: Have uname use __get_str() in print_fmt
+    - tracing: Fix sched switch start/stop refcount racy updates
+    - rcu: Use *_ONCE() to protect lockless ->expmask accesses
+    - rcu: Avoid data-race in rcu_gp_fqs_check_wake()
+    - srcu: Apply *_ONCE() to ->srcu_last_gp_end
+    - rcu: Use READ_ONCE() for ->expmask in rcu_read_unlock_special()
+    - nvmet: Fix error print message at nvmet_install_queue function
+    - nvmet: Fix controller use after free
+    - Bluetooth: btusb: fix memory leak on fw
+    - Bluetooth: btusb: Disable runtime suspend on Realtek devices
+    - brcmfmac: Fix memory leak in brcmf_usbdev_qinit
+    - usb: dwc3: gadget: Check END_TRANSFER completion
+    - usb: dwc3: gadget: Delay starting transfer
+    - usb: typec: tcpci: mask event interrupts when remove driver
+    - objtool: Silence build output
+    - usb: gadget: f_fs: set req->num_sgs as 0 for non-sg transfer
+    - usb: gadget: legacy: set max_speed to super-speed
+    - usb: gadget: f_ncm: Use atomic_t to track in-flight request
+    - usb: gadget: f_ecm: Use atomic_t to track in-flight request
+    - ALSA: usb-audio: Fix endianess in descriptor validation
+    - ALSA: usb-audio: Annotate endianess in Scarlett gen2 quirk
+    - ALSA: dummy: Fix PCM format loop in proc output
+    - memcg: fix a crash in wb_workfn when a device disappears
+    - mm/sparse.c: reset section's mem_map when fully deactivated
+    - mmc: sdhci-pci: Make function amd_sdhci_reset static
+    - utimes: Clamp the timestamps in notify_change()
+    - mm/memory_hotplug: fix remove_memory() lockdep splat
+    - mm: thp: don't need care deferred split queue in memcg charge move path
+    - mm: move_pages: report the number of non-attempted pages
+    - media/v4l2-core: set pages dirty upon releasing DMA buffers
+    - media: v4l2-core: compat: ignore native command codes
+    - media: v4l2-rect.h: fix v4l2_rect_map_inside() top/left adjustments
+    - lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more()
+    - irqdomain: Fix a memory leak in irq_domain_push_irq()
+    - x86/cpu: Update cached HLE state on write to TSX_CTRL_CPUID_CLEAR
+    - platform/x86: intel_scu_ipc: Fix interrupt support
+    - ALSA: hda: Apply aligned MMIO access only conditionally
+    - ALSA: hda: Add Clevo W65_67SB the power_save blacklist
+    - ALSA: hda: Add JasperLake PCI ID and codec vid
+    - arm64: acpi: fix DAIF manipulation with pNMI
+    - KVM: arm64: Correct PSTATE on exception entry
+    - KVM: arm/arm64: Correct CPSR on exception entry
+    - KVM: arm/arm64: Correct AArch32 SPSR on exception entry
+    - KVM: arm64: Only sign-extend MMIO up to register width
+    - MIPS: syscalls: fix indentation of the 'SYSNR' message
+    - MIPS: fix indentation of the 'RELOCS' message
+    - MIPS: boot: fix typo in 'vmlinux.lzma.its' target
+    - s390/mm: fix dynamic pagetable upgrade for hugetlbfs
+    - powerpc/mmu_gather: enable RCU_TABLE_FREE even for !SMP case
+    - powerpc/ptdump: Fix W+X verification
+    - powerpc/xmon: don't access ASDR in VMs
+    - powerpc/pseries: Advance pfn if section is not present in lmb_is_removable()
+    - powerpc/32s: Fix bad_kuap_fault()
+    - powerpc/32s: Fix CPU wake-up from sleep mode
+    - tracing: Fix now invalid var_ref_vals assumption in trace action
+    - PCI: tegra: Fix return value check of pm_runtime_get_sync()
+    - PCI: keystone: Fix outbound region mapping
+    - PCI: keystone: Fix link training retries initiation
+    - PCI: keystone: Fix error handling when "num-viewport" DT property is not
+      populated
+    - mmc: spi: Toggle SPI polarity, do not hardcode it
+    - ACPI: video: Do not export a non working backlight interface on MSI MS-7721
+      boards
+    - ACPI / battery: Deal with design or full capacity being reported as -1
+    - ACPI / battery: Use design-cap for capacity calculations if full-cap is not
+      available
+    - ACPI / battery: Deal better with neither design nor full capacity not being
+      reported
+    - alarmtimer: Unregister wakeup source when module get fails
+    - fscrypt: don't print name of busy file when removing key
+    - ubifs: don't trigger assertion on invalid no-key filename
+    - ubifs: Fix wrong memory allocation
+    - ubifs: Fix FS_IOC_SETFLAGS unexpectedly clearing encrypt flag
+    - ubifs: Fix deadlock in concurrent bulk-read and writepage
+    - mmc: sdhci-of-at91: fix memleak on clk_get failure
+    - ASoC: SOF: core: free trace on errors
+    - hv_balloon: Balloon up according to request page number
+    - mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile
+    - nvmem: core: fix memory abort in cleanup path
+    - crypto: api - Check spawn->alg under lock in crypto_drop_spawn
+    - crypto: ccree - fix backlog memory leak
+    - crypto: ccree - fix AEAD decrypt auth fail
+    - crypto: ccree - fix pm wrongful error reporting
+    - crypto: ccree - fix FDE descriptor sequence
+    - crypto: ccree - fix PM race condition
+    - padata: Remove broken queue flushing
+    - fs: allow deduplication of eof block into the end of the destination file
+    - scripts/find-unused-docs: Fix massive false positives
+    - erofs: fix out-of-bound read for shifted uncompressed block
+    - scsi: megaraid_sas: Do not initiate OCR if controller is not in ready state
+    - scsi: qla2xxx: Fix mtcp dump collection failure
+    - cpupower: Revert library ABI changes from commit ae2917093fb60bdc1ed3e
+    - power: supply: axp20x_ac_power: Fix reporting online status
+    - power: supply: ltc2941-battery-gauge: fix use-after-free
+    - ovl: fix wrong WARN_ON() in ovl_cache_update_ino()
+    - ovl: fix lseek overflow on 32bit
+    - f2fs: choose hardlimit when softlimit is larger than hardlimit in
+      f2fs_statfs_project()
+    - f2fs: fix miscounted block limit in f2fs_statfs_project()
+    - f2fs: code cleanup for f2fs_statfs_project()
+    - f2fs: fix dcache lookup of !casefolded directories
+    - f2fs: fix race conditions in ->d_compare() and ->d_hash()
+    - PM: core: Fix handling of devices deleted during system-wide resume
+    - cpufreq: Avoid creating excessively large stack frames
+    - of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
+    - ARM: dma-api: fix max_pfn off-by-one error in __dma_supported()
+    - dm zoned: support zone sizes smaller than 128MiB
+    - dm space map common: fix to ensure new block isn't already in use
+    - dm writecache: fix incorrect flush sequence when doing SSD mode commit
+    - dm crypt: fix GFP flags passed to skcipher_request_alloc()
+    - dm crypt: fix benbi IV constructor crash if used in authenticated mode
+    - dm thin metadata: use pool locking at end of dm_pool_metadata_close
+    - scsi: qla2xxx: Fix stuck login session using prli_pend_timer
+    - ASoC: SOF: Introduce state machine for FW boot
+    - ASoC: SOF: core: release resources on errors in probe_continue
+    - tracing: Annotate ftrace_graph_hash pointer with __rcu
+    - tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
+    - ftrace: Add comment to why rcu_dereference_sched() is open coded
+    - ftrace: Protect ftrace_graph_hash with ftrace_sync
+    - crypto: pcrypt - Avoid deadlock by using per-instance padata queues
+    - btrfs: fix improper setting of scanned for range cyclic write cache pages
+    - btrfs: Handle another split brain scenario with metadata uuid feature
+    - riscv, bpf: Fix broken BPF tail calls
+    - selftests/bpf: Fix perf_buffer test on systems w/ offline CPUs
+    - bpf, devmap: Pass lockdep expression to RCU lists
+    - libbpf: Fix realloc usage in bpf_core_find_cands
+    - tc-testing: fix eBPF tests failure on linux fresh clones
+    - samples/bpf: Don't try to remove user's homedir on clean
+    - samples/bpf: Xdp_redirect_cpu fix missing tracepoint attach
+    - selftests/bpf: Fix test_attach_probe
+    - selftests/bpf: Skip perf hw events test if the setup disabled it
+    - selftests: bpf: Use a temporary file in test_sockmap
+    - selftests: bpf: Ignore FIN packets for reuseport tests
+    - crypto: api - fix unexpectedly getting generic implementation
+    - crypto: hisilicon - Use the offset fields in sqe to avoid need to split
+      scatterlists
+    - crypto: ccp - set max RSA modulus size for v3 platform devices as well
+    - crypto: arm64/ghash-neon - bump priority to 150
+    - crypto: pcrypt - Do not clear MAY_SLEEP flag in original request
+    - crypto: atmel-aes - Fix counter overflow in CTR mode
+    - crypto: api - Fix race condition in crypto_spawn_alg
+    - crypto: picoxcell - adjust the position of tasklet_init and fix missed
+      tasklet_kill
+    - powerpc/futex: Fix incorrect user access blocking
+    - scsi: qla2xxx: Fix unbound NVME response length
+    - NFS: Fix memory leaks and corruption in readdir
+    - NFS: Directory page cache pages need to be locked when read
+    - nfsd: fix filecache lookup
+    - jbd2_seq_info_next should increase position index
+    - ext4: fix deadlock allocating crypto bounce page from mempool
+    - ext4: fix race conditions in ->d_compare() and ->d_hash()
+    - Btrfs: fix missing hole after hole punching and fsync when using NO_HOLES
+    - Btrfs: make deduplication with range including the last block work
+    - Btrfs: fix infinite loop during fsync after rename operations
+    - btrfs: set trans->drity in btrfs_commit_transaction
+    - btrfs: drop log root for dropped roots
+    - Btrfs: fix race between adding and putting tree mod seq elements and nodes
+    - btrfs: flush write bio if we loop in extent_write_cache_pages
+    - btrfs: Correctly handle empty trees in find_first_clear_extent_bit
+    - ARM: tegra: Enable PLLP bypass during Tegra124 LP1
+    - iwlwifi: don't throw error when trying to remove IGTK
+    - mwifiex: fix unbalanced locking in mwifiex_process_country_ie()
+    - sunrpc: expiry_time should be seconds not timeval
+    - gfs2: fix gfs2_find_jhead that returns uninitialized jhead with seq 0
+    - gfs2: move setting current->backing_dev_info
+    - gfs2: fix O_SYNC write handling
+    - drm: atmel-hlcdc: use double rate for pixel clock only if supported
+    - drm: atmel-hlcdc: enable clock before configuring timing engine
+    - drm: atmel-hlcdc: prefer a lower pixel-clock than requested
+    - drm/rect: Avoid division by zero
+    - media: iguanair: fix endpoint sanity check
+    - media: rc: ensure lirc is initialized before registering input device
+    - tools/kvm_stat: Fix kvm_exit filter name
+    - xen/balloon: Support xend-based toolstack take two
+    - watchdog: fix UAF in reboot notifier handling in watchdog core code
+    - bcache: add readahead cache policy options via sysfs interface
+    - eventfd: track eventfd_signal() recursion depth
+    - aio: prevent potential eventfd recursion on poll
+    - KVM: x86: Refactor picdev_write() to prevent Spectre-v1/L1TF attacks
+    - KVM: x86: Refactor prefix decoding to prevent Spectre-v1/L1TF attacks
+    - KVM: x86: Protect pmu_intel.c from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect DR-based index computations from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect kvm_lapic_reg_write() from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect kvm_hv_msr_[get|set]_crash_data() from Spectre-v1/L1TF
+      attacks
+    - KVM: x86: Protect ioapic_write_indirect() from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect MSR-based index computations in pmu.h from Spectre-v1/L1TF
+      attacks
+    - KVM: x86: Protect ioapic_read_indirect() from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect MSR-based index computations from Spectre-v1/L1TF attacks
+      in x86.c
+    - KVM: x86: Protect x86_decode_insn from Spectre-v1/L1TF attacks
+    - KVM: x86: Protect MSR-based index computations in fixed_msr_to_seg_unit()
+      from Spectre-v1/L1TF attacks
+    - KVM: x86: Fix potential put_fpu() w/o load_fpu() on MPX platform
+    - KVM: PPC: Book3S HV: Uninit vCPU if vcore creation fails
+    - KVM: PPC: Book3S PR: Free shared page if mmu initialization fails
+    - kvm/svm: PKU not currently supported
+    - KVM: VMX: Add non-canonical check on writes to RTIT address MSRs
+    - KVM: x86: Don't let userspace set host-reserved cr4 bits
+    - KVM: x86: Free wbinvd_dirty_mask if vCPU creation fails
+    - KVM: x86: Handle TIF_NEED_FPU_LOAD in kvm_{load,put}_guest_fpu()
+    - KVM: x86: Ensure guest's FPU state is loaded when accessing for emulation
+    - KVM: x86: Revert "KVM: X86: Fix fpu state crash in kvm guest"
+    - KVM: s390: do not clobber registers during guest reset/store status
+    - ocfs2: fix oops when writing cloned file
+    - mm/page_alloc.c: fix uninitialized memmaps on a partially populated last
+      section
+    - arm64: dts: qcom: qcs404-evb: Set vdd_apc regulator in high power mode
+    - mm/mmu_gather: invalidate TLB correctly on batch allocation failure and
+      flush
+    - clk: tegra: Mark fuse clock as critical
+    - drm/amd/dm/mst: Ignore payload update failures
+    - virtio-balloon: initialize all vq callbacks
+    - virtio-pci: check name when counting MSI-X vectors
+    - fix up iter on short count in fuse_direct_io()
+    - broken ping to ipv6 linklocal addresses on debian buster
+    - percpu: Separate decrypted varaibles anytime encryption can be enabled
+    - ASoC: meson: axg-fifo: fix fifo threshold setup
+    - scsi: qla2xxx: Fix the endianness of the qla82xx_get_fw_size() return type
+    - scsi: csiostor: Adjust indentation in csio_device_reset
+    - scsi: qla4xxx: Adjust indentation in qla4xxx_mem_free
+    - scsi: ufs: Recheck bkops level if bkops is disabled
+    - mtd: spi-nor: Split mt25qu512a (n25q512a) entry into two
+    - phy: qualcomm: Adjust indentation in read_poll_timeout
+    - ext2: Adjust indentation in ext2_fill_super
+    - powerpc/44x: Adjust indentation in ibm4xx_denali_fixup_memsize
+    - drm: msm: mdp4: Adjust indentation in mdp4_dsi_encoder_enable
+    - NFC: pn544: Adjust indentation in pn544_hci_check_presence
+    - ppp: Adjust indentation into ppp_async_input
+    - net: smc911x: Adjust indentation in smc911x_phy_configure
+    - net: tulip: Adjust indentation in {dmfe, uli526x}_init_module
+    - IB/mlx5: Fix outstanding_pi index for GSI qps
+    - IB/core: Fix ODP get user pages flow
+    - nfsd: fix delay timer on 32-bit architectures
+    - nfsd: fix jiffies/time_t mixup in LRU list
+    - nfsd: Return the correct number of bytes written to the file
+    - virtio-balloon: Fix memory leak when unloading while hinting is in progress
+    - virtio_balloon: Fix memory leaks on errors in virtballoon_probe()
+    - ubi: fastmap: Fix inverted logic in seen selfcheck
+    - ubi: Fix an error pointer dereference in error handling code
+    - ubifs: Fix memory leak from c->sup_node
+    - regulator: core: Add regulator_is_equal() helper
+    - ASoC: sgtl5000: Fix VDDA and VDDIO comparison
+    - bonding/alb: properly access headers in bond_alb_xmit()
+    - devlink: report 0 after hitting end in region read
+    - dpaa_eth: support all modes with rate adapting PHYs
+    - net: dsa: b53: Always use dev->vlan_enabled in b53_configure_vlan()
+    - net: dsa: bcm_sf2: Only 7278 supports 2Gb/sec IMP port
+    - net: dsa: microchip: enable module autoprobe
+    - net: mvneta: move rx_dropped and rx_errors in per-cpu stats
+    - net_sched: fix a resource leak in tcindex_set_parms()
+    - net: stmmac: fix a possible endless loop
+    - net: systemport: Avoid RBUF stuck in Wake-on-LAN mode
+    - net/mlx5: IPsec, Fix esp modify function attribute
+    - net/mlx5: IPsec, fix memory leak at mlx5_fpga_ipsec_delete_sa_ctx
+    - net: macb: Remove unnecessary alignment check for TSO
+    - net: macb: Limit maximum GEM TX length in TSO
+    - taprio: Fix enabling offload with wrong number of traffic classes
+    - taprio: Fix still allowing changing the flags during runtime
+    - taprio: Add missing policy validation for flags
+    - taprio: Use taprio_reset_tc() to reset Traffic Classes configuration
+    - taprio: Fix dropping packets when using taprio + ETF offloading
+    - ipv6/addrconf: fix potential NULL deref in inet6_set_link_af()
+    - qed: Fix timestamping issue for L2 unicast ptp packets.
+    - drop_monitor: Do not cancel uninitialized work item
+    - net/mlx5: Fix deadlock in fs_core
+    - net/mlx5: Deprecate usage of generic TLS HW capability bit
+    - ASoC: Intel: skl_hda_dsp_common: Fix global-out-of-bounds bug
+    - mfd: da9062: Fix watchdog compatible string
+    - mfd: rn5t618: Mark ADC control register volatile
+    - mfd: bd70528: Fix hour register mask
+    - x86/timer: Don't skip PIT setup when APIC is disabled or in legacy mode
+    - btrfs: use bool argument in free_root_pointers()
+    - btrfs: free block groups after free'ing fs trees
+    - drm/dp_mst: Remove VCPI while disabling topology mgr
+    - KVM: x86/mmu: Apply max PA check for MMIO sptes to 32-bit KVM
+    - KVM: x86: use CPUID to locate host page table reserved bits
+    - KVM: x86: Use gpa_t for cr2/gpa to fix TDP support on 32-bit KVM
+    - KVM: x86: fix overlap between SPTE_MMIO_MASK and generation
+    - KVM: nVMX: vmread should not set rflags to specify success in case of #PF
+    - KVM: Use vcpu-specific gva->hva translation when querying host page size
+    - KVM: Play nice with read-only memslots when querying host page size
+    - cifs: fail i/o on soft mounts if sessionsetup errors out
+    - x86/apic/msi: Plug non-maskable MSI affinity race
+    - clocksource: Prevent double add_timer_on() for watchdog_timer
+    - perf/core: Fix mlock accounting in perf_mmap()
+    - rxrpc: Fix service call disconnection
+    - regulator fix for "regulator: core: Add regulator_is_equal() helper"
+    - powerpc/kuap: Fix set direction in allow/prevent_user_access()
+    - Linux 5.4.19
+    - [Config] updateconfigs following v5.4.19 stable update
+
+  * 5.4.0-11 crash on cryptsetup open (LP: #1860231) // Focal update: v5.4.19
+    upstream stable release (LP: #1863588)
+    - dm: fix potential for q->make_request_fn NULL pointer
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [debian] ignore missing wireguard module
+    - debian: remove snapdragon config, rules and flavour
+    - [Config] updateconfigs following snapdragon removal
+    - remove snapdragon abi files
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 20 Feb 2020 11:42:30 -0600
+
+linux (5.4.0-14.17) focal; urgency=medium
+
+  * Empty entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 19 Feb 2020 11:46:35 -0600
+
+linux-5.4 (5.4.0-14.17) focal; urgency=medium
+
+  * focal/linux-5.4: 5.4.0-14.17 -proposed tracker (LP: #1862255)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Boot log is swamped with "debugfs: Directory 'imc' with parent 'powerpc'
+    already present" messages on kernel 5.4 (LP: #1861379)
+    - powerpc/powernv: Avoid re-registration of imc debugfs directory
+
+  * CVE-2019-3016
+    - SAUCE: x86/kvm: Be careful not to clear KVM_VCPU_FLUSH_TLB bit
+    - SAUCE: x86/kvm: Introduce kvm_(un)map_gfn()
+    - SAUCE: x86/kvm: Cache gfn to pfn translation
+    - SAUCE: x86/KVM: Make sure KVM_VCPU_FLUSH_TLB flag is not missed
+    - SAUCE: x86/KVM: Clean up host's steal time structure
+
+  * installing linux-modules-nvidia does not remove nvidia-dkms, and the kernel
+    prioritizes the wrong version of the module from disk (LP: #1856414)
+    - Revert "UBUNTU: [Packaging] dkms -- switch basic provides to *-modules"
+    - Revert "UBUNTU: [Packaging] dkms -- add Provides: specifiers for existing
+      zfs/nvidia/vbox"
+    - Revert "UBUNTU: [packaging] dkms-build -- include versioned provides"
+    - [Packaging] wireguard -- drop provides
+
+  * Focal update: v5.4.18 upstream stable release (LP: #1862203)
+    - vfs: fix do_last() regression
+    - cifs: fix soft mounts hanging in the reconnect code
+    - x86/resctrl: Fix a deadlock due to inaccurate reference
+    - x86/resctrl: Fix use-after-free when deleting resource groups
+    - x86/resctrl: Fix use-after-free due to inaccurate refcount of rdtgroup
+    - e1000e: Drop unnecessary __E1000_DOWN bit twiddling
+    - e1000e: Revert "e1000e: Make watchdog use delayed work"
+    - gfs2: Another gfs2_find_jhead fix
+    - perf c2c: Fix return type for histogram sorting comparision functions
+    - PM / devfreq: Add new name attribute for sysfs
+    - tools lib: Fix builds when glibc contains strlcpy()
+    - arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
+    - mm/mempolicy.c: fix out of bounds write in mpol_parse_str()
+    - reiserfs: Fix memory leak of journal device string
+    - media: digitv: don't continue if remote control state can't be read
+    - media: af9005: uninitialized variable printked
+    - media: vp7045: do not read uninitialized values if usb transfer fails
+    - media: gspca: zero usb_buf
+    - media: dvb-usb/dvb-usb-urb.c: initialize actlen to 0
+    - tomoyo: Use atomic_t for statistics counter
+    - ttyprintk: fix a potential deadlock in interrupt context issue
+    - Bluetooth: Fix race condition in hci_release_sock()
+    - cgroup: Prevent double killing of css when enabling threaded cgroup
+    - clk: sunxi-ng: v3s: Fix incorrect number of hw_clks.
+    - arm64: dts: meson-sm1-sei610: add gpio bluetooth interrupt
+    - ARM: dts: sun8i: a83t: Correct USB3503 GPIOs polarity
+    - ARM: dts: am57xx-beagle-x15/am57xx-idk: Remove "gpios" for endpoint dt nodes
+    - ARM: dts: beagle-x15-common: Model 5V0 regulator
+    - soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot
+    - tools lib traceevent: Fix memory leakage in filter_event
+    - rseq: Unregister rseq for clone CLONE_VM
+    - clk: sunxi-ng: sun8i-r: Fix divider on APB0 clock
+    - clk: sunxi-ng: h6-r: Fix AR100/R_APB2 parent order
+    - mac80211: mesh: restrict airtime metric to peered established plinks
+    - clk: mmp2: Fix the order of timer mux parents
+    - ASoC: rt5640: Fix NULL dereference on module unload
+    - s390/zcrypt: move ap device reset from bus to driver code
+    - i40e: Fix virtchnl_queue_select bitmap validation
+    - ixgbevf: Remove limit of 10 entries for unicast filter list
+    - ixgbe: Fix calculation of queue with VFs and flow director on interface flap
+    - igb: Fix SGMII SFP module discovery for 100FX/LX.
+    - iavf: remove current MAC address filter on VF reset
+    - platform/x86: GPD pocket fan: Allow somewhat lower/higher temperature limits
+    - platform/x86: intel_pmc_core: update Comet Lake platform driver
+    - ASoC: hdac_hda: Fix error in driver removal after failed probe
+    - ASoC: sti: fix possible sleep-in-atomic
+    - qmi_wwan: Add support for Quectel RM500Q
+    - parisc: Use proper printk format for resource_size_t
+    - lkdtm/bugs: fix build error in lkdtm_UNSET_SMEP
+    - wireless: fix enabling channel 12 for custom regulatory domain
+    - cfg80211: Fix radar event during another phy CAC
+    - mac80211: Fix TKIP replay protection immediately after key setup
+    - wireless: wext: avoid gcc -O3 warning
+    - perf/x86/intel/uncore: Add PCI ID of IMC for Xeon E3 V5 Family
+    - perf/x86/intel/uncore: Remove PCIe3 unit for SNR
+    - riscv: delete temporary files
+    - XArray: Fix xas_pause at ULONG_MAX
+    - iwlwifi: pcie: allocate smaller dev_cmd for TX headers
+    - iwlwifi: Don't ignore the cap field upon mcc update
+    - iwlwifi: dbg: force stop the debug monitor HW
+    - Input: evdev - convert kzalloc()/vzalloc() to kvzalloc()
+    - ARM: dts: am335x-boneblack-common: fix memory size
+    - xfrm: interface: do not confirm neighbor when do pmtu update
+    - Input: max77650-onkey - add of_match table
+    - scsi: fnic: do not queue commands during fwreset
+    - ARM: 8955/1: virt: Relax arch timer version check during early boot
+    - led: max77650: add of_match table
+    - tee: optee: Fix compilation issue with nommu
+    - r8152: get default setting of WOL before initializing
+    - r8152: disable U2P3 for RTL8153B
+    - r8152: Disable PLA MCU clock speed down
+    - r8152: disable test IO for RTL8153B
+    - r8152: avoid the MCU to clear the lanwake
+    - r8152: disable DelayPhyPwrChg
+    - ARM: dts: am43x-epos-evm: set data pin directions for spi0 and spi1
+    - qlcnic: Fix CPU soft lockup while collecting firmware dump
+    - powerpc/fsl/dts: add fsl,erratum-a011043
+    - net/fsl: treat fsl,erratum-a011043
+    - net: fsl/fman: rename IF_MODE_XGMII to IF_MODE_10G
+    - seq_tab_next() should increase position index
+    - l2t_seq_next should increase position index
+    - netfilter: conntrack: sctp: use distinct states for new SCTP connections
+    - netfilter: nf_tables_offload: fix check the chain offload flag
+    - net: Fix skb->csum update in inet_proto_csum_replace16().
+    - btrfs: do not zero f_bavail if we have available space
+    - cpuidle: teo: Avoid using "early hits" incorrectly
+    - flow_dissector: Fix to use new variables for port ranges in bpf hook
+    - dm thin: fix use-after-free in metadata_pre_commit_callback
+    - perf report: Fix no libunwind compiled warning break s390 issue
+    - mm/migrate.c: also overwrite error when it is bigger than zero
+    - ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization
+      order
+    - Revert "rsi: fix potential null dereference in rsi_probe()"
+    - tracing/uprobe: Fix to make trace_uprobe_filter alignment safe
+    - Linux 5.4.18
+
+  *  Integrate Intel SGX driver into linux-azure (LP: #1844245)
+    - [Packaging] Add systemd service to load intel_sgx
+
+  * Focal update: v5.4.17 upstream stable release (LP: #1861784)
+    - Bluetooth: btusb: fix non-atomic allocation in completion handler
+    - orinoco_usb: fix interface sanity check
+    - rsi_91x_usb: fix interface sanity check
+    - usb: dwc3: pci: add ID for the Intel Comet Lake -V variant
+    - usb: host: xhci-tegra: set MODULE_FIRMWARE for tegra186
+    - USB: serial: ir-usb: add missing endpoint sanity check
+    - USB: serial: ir-usb: fix link-speed handling
+    - USB: serial: ir-usb: fix IrLAP framing
+    - usb: dwc3: turn off VBUS when leaving host mode
+    - usb: typec: wcove: fix "op-sink-microwatt" default that was in mW
+    - usb: typec: fusb302: fix "op-sink-microwatt" default that was in mW
+    - staging: most: net: fix buffer overflow
+    - staging: wlan-ng: ensure error return is actually returned
+    - staging: vt6656: correct packet types for CTS protect, mode.
+    - staging: vt6656: use NULLFUCTION stack on mac80211
+    - staging: vt6656: Fix false Tx excessive retries reporting.
+    - serial: 8250_bcm2835aux: Fix line mismatch on driver unbind
+    - serial: imx: fix a race condition in receive path
+    - debugfs: Return -EPERM when locked down
+    - component: do not dereference opaque pointer in debugfs
+    - binder: fix log spam for existing debugfs file creation.
+    - mei: hdcp: bind only with i915 on the same PCH
+    - mei: me: add comet point (lake) H device ids
+    - iio: adc: stm32-dfsdm: fix single conversion
+    - iio: st_gyro: Correct data for LSM9DS0 gyro
+    - driver core: Fix test_async_driver_probe if NUMA is disabled
+    - crypto: chelsio - fix writing tfm flags to wrong place
+    - CIFS: Fix task struct use-after-free on reconnect
+    - cifs: set correct max-buffer-size for smb2_ioctl_init()
+    - cifs: Fix memory allocation in __smb2_handle_cancelled_cmd()
+    - ath9k: fix storage endpoint lookup
+    - brcmfmac: fix interface sanity check
+    - rtl8xxxu: fix interface sanity check
+    - zd1211rw: fix storage endpoint lookup
+    - net_sched: ematch: reject invalid TCF_EM_SIMPLE
+    - net_sched: fix ops->bind_class() implementations
+    - net_sched: walk through all child classes in tc_bind_tclass()
+    - net: socionext: fix possible user-after-free in netsec_process_rx
+    - net: socionext: fix xdp_result initialization in netsec_process_rx
+    - udp: segment looped gso packets correctly
+    - mlxsw: minimal: Fix an error handling path in 'mlxsw_m_port_create()'
+    - net: include struct nhmsg size in nh nlmsg size
+    - rxrpc: Fix use-after-free in rxrpc_receive_data()
+    - arc: eznps: fix allmodconfig kconfig warning
+    - HID: Add quirk for Xin-Mo Dual Controller
+    - HID: ite: Add USB id match for Acer SW5-012 keyboard dock
+    - HID: asus: Ignore Asus vendor-page usage-code 0xff events
+    - HID: Add quirk for incorrect input length on Lenovo Y720
+    - HID: intel-ish-hid: ipc: add CMP device id
+    - HID: wacom: Recognize new MobileStudio Pro PID
+    - ASoC: SOF: fix fault at driver unload after failed probe
+    - ASoC: SOF: Intel: hda: hda-dai: fix oops on hda_link .hw_free
+    - drivers/hid/hid-multitouch.c: fix a possible null pointer access.
+    - phy: qcom-qmp: Increase PHY ready timeout
+    - ASoC: fsl_audmix: add missed pm_runtime_disable
+    - ASoC: topology: Prevent use-after-free in snd_soc_get_pcm_runtime()
+    - phy: cpcap-usb: Prevent USB line glitches from waking up modem
+    - HID: intel-ish-hid: ipc: Add Tiger Lake PCI device ID
+    - watchdog: max77620_wdt: fix potential build errors
+    - watchdog: rn5t618_wdt: fix module aliases
+    - watchdog: orion: fix platform_get_irq() complaints
+    - usb: musb: jz4740: Silence error if code is -EPROBE_DEFER
+    - can: tcan4x5x: tcan4x5x_parse_config(): reset device before register access
+    - spi: spi-dw: Add lock protect dw_spi rx/tx to prevent concurrent calls
+    - net: Google gve: Remove dma_wmb() before ringing doorbell
+    - drivers/net/b44: Change to non-atomic bit operations on pwol_mask
+    - net: wan: sdla: Fix cast from pointer to integer of different size
+    - gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP
+    - iommu/dma: fix variable 'cookie' set but not used
+    - drm/amd/display: Reduce HDMI pixel encoding if max clock is exceeded
+    - stmmac: debugfs entry name is not be changed when udev rename device name.
+    - atm: eni: fix uninitialized variable warning
+    - HID: steam: Fix input device disappearing
+    - extcon-intel-cht-wc: Don't reset USB data connection at probe
+    - ASoC: Intel: cht_bsw_rt5645: Add quirk for boards using pmc_plt_clk_0
+    - drm/amdgpu/SRIOV: add navi12 pci id for SRIOV (v2)
+    - libbpf: Fix BTF-defined map's __type macro handling of arrays
+    - staging: mt7621-pci: add quirks for 'E2' revision using
+      'soc_device_attribute'
+    - platform/x86: dell-laptop: disable kbd backlight on Inspiron 10xx
+    - PCI: Add DMA alias quirk for Intel VCA NTB
+    - media: dvbsky: add support for eyeTV Geniatech T2 lite
+    - bus: ti-sysc: Handle mstandby quirk and use it for musb
+    - bus: ti-sysc: Use swsup quirks also for am335x musb
+    - spi: pxa2xx: Add support for Intel Comet Lake-H
+    - iommu/amd: Support multiple PCI DMA aliases in device table
+    - iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping
+    - perf/imx_ddr: Add enhanced AXI ID filter support
+    - ARM: config: aspeed-g5: Enable 8250_DW quirks
+    - ARM: OMAP2+: SmartReflex: add omap_sr_pdata definition
+    - mmc: sdhci-pci: Quirk for AMD SDHC Device 0x7906
+    - mmc: sdhci-pci: Add support for Intel JSL
+    - bus: ti-sysc: Add module enable quirk for audio AESS
+    - usb-storage: Disable UAS on JMicron SATA enclosure
+    - ALSA: hda/realtek - Move some alc236 pintbls to fallback table
+    - Bluetooth: Allow combination of BDADDR_PROPERTY and INVALID_BDADDR quirks
+    - Bluetooth: btbcm: Use the BDADDR_PROPERTY quirk
+    - bus: ti-sysc: Fix missing force mstandby quirk handling
+    - rsi: fix use-after-free on failed probe and unbind
+    - rsi: fix use-after-free on probe errors
+    - rsi: fix memory leak on failed URB submission
+    - rsi: fix non-atomic allocation in completion handler
+    - crypto: af_alg - Use bh_lock_sock in sk_destruct
+    - crypto: vmx - reject xts inputs that are too short
+    - crypto: caam - do not reset pointer size from MCFGR register
+    - crypto: pcrypt - Fix user-after-free on module unload
+    - KVM: arm64: Write arch.mdcr_el2 changes since last vcpu_load on VHE
+    - Revert "um: Enable CONFIG_CONSTRUCTORS"
+    - power/supply: ingenic-battery: Don't change scale if there's only one
+    - Linux 5.4.17
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] dkms -- switch basic provides to *-modules
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 06 Feb 2020 16:30:48 -0600
+
+linux-5.4 (5.4.0-13.16) focal; urgency=medium
+
+  * focal/linux-5.4: 5.4.0-13.16 -proposed tracker (LP: #1861352)
+
+  * system hang: i915 Resetting rcs0 for hang on rcs0 (LP: #1861395)
+    - drm/i915/gt: Detect if we miss WaIdleLiteRestore
+
+  * Focal update: v5.4.16 upstream stable release (LP: #1861385)
+    - can, slip: Protect tty->disc_data in write_wakeup and close with RCU
+    - firestream: fix memory leaks
+    - gtp: make sure only SOCK_DGRAM UDP sockets are accepted
+    - ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions
+    - net: bcmgenet: Use netif_tx_napi_add() for TX NAPI
+    - net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM
+    - net: ip6_gre: fix moving ip6gre between namespaces
+    - net, ip6_tunnel: fix namespaces move
+    - net, ip_tunnel: fix namespaces move
+    - net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link()
+    - net_sched: fix datalen for ematch
+    - net_sched: use validated TCA_KIND attribute in tc_new_tfilter()
+    - net-sysfs: Fix reference count leak
+    - net: usb: lan78xx: Add .ndo_features_check
+    - Revert "udp: do rmem bulk free even if the rx sk queue is empty"
+    - tcp_bbr: improve arithmetic division in bbr_update_bw()
+    - tcp: do not leave dangling pointers in tp->highest_sack
+    - tun: add mutex_unlock() call and napi.skb clearing in tun_get_user()
+    - airo: Fix possible info leak in AIROOLDIOCTL/SIOCDEVPRIVATE
+    - airo: Add missing CAP_NET_ADMIN check in AIROOLDIOCTL/SIOCDEVPRIVATE
+    - mlxsw: spectrum_acl: Fix use-after-free during reload
+    - fou: Fix IPv6 netlink policy
+    - net: Fix packet reordering caused by GRO and listified RX cooperation
+    - net/mlx5: Fix lowest FDB pool size
+    - net/mlx5: Update the list of the PCI supported devices
+    - net/mlx5: DR, Enable counter on non-fwd-dest objects
+    - net/mlx5: E-Switch, Prevent ingress rate configuration of uplink rep
+    - net/mlx5: DR, use non preemptible call to get the current cpu number
+    - net/mlx5e: kTLS, Fix corner-case checks in TX resync flow
+    - net/mlx5e: kTLS, Remove redundant posts in TX resync flow
+    - net/mlx5e: kTLS, Do not send decrypted-marked SKBs via non-accel path
+    - ipv4: Detect rollover in specific fib table dump
+    - Revert "io_uring: only allow submit from owning task"
+    - afs: Fix characters allowed into cell names
+    - hwmon: (adt7475) Make volt2reg return same reg as reg2volt input
+    - hwmon: (core) Do not use device managed functions for memory allocations
+    - ceph: hold extra reference to r_parent over life of request
+    - PCI: Mark AMD Navi14 GPU rev 0xc5 ATS as broken
+    - drm/panfrost: Add the panfrost_gem_mapping concept
+    - drm/i915: Align engine->uabi_class/instance with i915_drm.h
+    - PM: hibernate: fix crashes with init_on_free=1
+    - tracing: trigger: Replace unneeded RCU-list traversals
+    - tracing/uprobe: Fix double perf_event linking on multiprobe uprobe
+    - tracing: Do not set trace clock if tracefs lockdown is in effect
+    - tracing: Fix histogram code when expression has same var as value
+    - powerpc/mm/hash: Fix sharing context ids between kernel & userspace
+    - powerpc/xive: Discard ESB load value when interrupt is invalid
+    - Revert "iwlwifi: mvm: fix scan config command size"
+    - iwlwifi: mvm: don't send the IWL_MVM_RXQ_NSSN_SYNC notif to Rx queues
+    - XArray: Fix infinite loop with entry at ULONG_MAX
+    - XArray: Fix xa_find_after with multi-index entries
+    - XArray: Fix xas_find returning too many entries
+    - pinctrl: sunrisepoint: Add missing Interrupt Status register offset
+    - iommu/vt-d: Call __dmar_remove_one_dev_info with valid pointer
+    - Input: keyspan-remote - fix control-message timeouts
+    - Revert "Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers"
+    - ARM: 8950/1: ftrace/recordmcount: filter relocation types
+    - mmc: tegra: fix SDR50 tuning override
+    - mmc: sdhci: fix minimum clock rate for v3 controller
+    - mmc: sdhci_am654: Remove Inverted Write Protect flag
+    - mmc: sdhci_am654: Reset Command and Data line after tuning
+    - mlxsw: switchx2: Do not modify cloned SKBs during xmit
+    - net/tls: fix async operation
+    - Input: pm8xxx-vib - fix handling of separate enable register
+    - Input: sur40 - fix interface sanity checks
+    - Input: gtco - fix endpoint sanity check
+    - Input: aiptek - fix endpoint sanity check
+    - Input: pegasus_notetaker - fix endpoint sanity check
+    - Input: sun4i-ts - add a check for devm_thermal_zone_of_sensor_register
+    - netfilter: nft_osf: add missing check for DREG attribute
+    - lib: Reduce user_access_begin() boundaries in strncpy_from_user() and
+      strnlen_user()
+    - iommu/amd: Fix IOMMU perf counter clobbering during init
+    - readdir: make user_access_begin() use the real access range
+    - leds: gpio: Fix uninitialized gpio label for fwnode based probe
+    - hsr: Fix a compilation error
+    - hwmon: (nct7802) Fix voltage limits to wrong registers
+    - hwmon: (nct7802) Fix non-working alarm on voltages
+    - scsi: RDMA/isert: Fix a recently introduced regression related to logout
+    - tracing: xen: Ordered comparison of function pointers
+    - iwlwifi: mvm: fix SKB leak on invalid queue
+    - iwlwifi: mvm: fix potential SKB leak on TXQ TX
+    - drm/i915/userptr: fix size calculation
+    - xfrm: support output_mark for offload ESP packets
+    - net, sk_msg: Don't check if sock is locked when tearing down psock
+    - do_last(): fetch directory ->i_mode and ->i_uid before it's too late
+    - readdir: be more conservative with directory entry names
+    - net/sonic: Add mutual exclusion for accessing shared state
+    - net/sonic: Clear interrupt flags immediately
+    - net/sonic: Use MMIO accessors
+    - net/sonic: Fix interface error stats collection
+    - net/sonic: Fix receive buffer handling
+    - net/sonic: Avoid needless receive descriptor EOL flag updates
+    - net/sonic: Improve receive descriptor status flag check
+    - net/sonic: Fix receive buffer replenishment
+    - net/sonic: Quiesce SONIC before re-initializing descriptor memory
+    - net/sonic: Fix command register usage
+    - net/sonic: Fix CAM initialization
+    - net/sonic: Prevent tx watchdog timeout
+    - media: v4l2-ioctl.c: zero reserved fields for S/TRY_FMT
+    - netfilter: ipset: use bitmap infrastructure completely
+    - netfilter: nf_tables: add __nft_chain_type_get()
+    - netfilter: nf_tables: autoload modules from the abort path
+    - net/x25: fix nonblocking connect
+    - Linux 5.4.16
+
+  * Build and ship a signed wireguard.ko (LP: #1861284)
+    - [Packaging] wireguard -- add support for building signed .ko
+    - [Config] wireguard -- enable on all architectures
+
+  * installing linux-modules-nvidia does not remove nvidia-dkms, and the kernel
+    prioritizes the wrong version of the module from disk (LP: #1856414)
+    - [packaging] dkms-build -- include versioned provides
+    - [Packaging] dkms -- add Provides: specifiers for existing zfs/nvidia/vbox
+
+  * dkms artifacts may expire from the pool (LP: #1850958)
+    - [Packaging] autoreconstruct -- manage executable debian files
+    - [packaging] handle downloads from the librarian better
+
+  * QAT drivers for C3XXX and C62X not included as modules (LP: #1845959)
+    - [Config] CRYPTO_DEV_QAT_C3XXX=m, CRYPTO_DEV_QAT_C62X=m and
+      CRYPTO_DEV_QAT_DH895xCC=m
+
+  * 5.4.0-11 crash on cryptsetup open (LP: #1860231)
+    - SAUCE: blk/core: Gracefully handle unset make_request_fn
+
+  * multi-zone raid0 corruption (LP: #1850540)
+    - SAUCE: md/raid0: Use kernel specific layout
+
+  * ipsec interfaces: fix sending with bpf_redirect() / AF_PACKET sockets
+    (LP: #1860969)
+    - vti[6]: fix packet tx through bpf_redirect()
+    - xfrm interface: fix packet tx through bpf_redirect()
+
+  * Focal update: v5.4.15 upstream stable release (LP: #1861091)
+    - drm/i915: Fix pid leak with banned clients
+    - libbpf: Fix compatibility for kernels without need_wakeup
+    - libbpf: Fix memory leak/double free issue
+    - libbpf: Fix potential overflow issue
+    - libbpf: Fix another potential overflow issue in bpf_prog_linfo
+    - libbpf: Make btf__resolve_size logic always check size error condition
+    - bpf: Force .BTF section start to zero when dumping from vmlinux
+    - samples: bpf: update map definition to new syntax BTF-defined map
+    - samples/bpf: Fix broken xdp_rxq_info due to map order assumptions
+    - ARM: dts: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel
+    - ARM: OMAP2+: Add missing put_device() call in omapdss_init_of()
+    - xfs: Sanity check flags of Q_XQUOTARM call
+    - i2c: stm32f7: rework slave_id allocation
+    - i2c: i2c-stm32f7: fix 10-bits check in slave free id search loop
+    - mfd: intel-lpss: Add default I2C device properties for Gemini Lake
+    - SUNRPC: Fix svcauth_gss_proxy_init()
+    - SUNRPC: Fix backchannel latency metrics
+    - powerpc/security: Fix debugfs data leak on 32-bit
+    - powerpc/pseries: Enable support for ibm,drc-info property
+    - powerpc/kasan: Fix boot failure with RELOCATABLE && FSL_BOOKE
+    - powerpc/archrandom: fix arch_get_random_seed_int()
+    - tipc: reduce sensitive to retransmit failures
+    - tipc: update mon's self addr when node addr generated
+    - tipc: fix potential memory leak in __tipc_sendmsg()
+    - tipc: fix wrong socket reference counter after tipc_sk_timeout() returns
+    - tipc: fix wrong timeout input for tipc_wait_for_cond()
+    - net/mlx5e: Fix free peer_flow when refcount is 0
+    - phy: lantiq: vrx200-pcie: fix error return code in
+      ltq_vrx200_pcie_phy_power_on()
+    - net: phy: broadcom: Fix RGMII delays configuration for BCM54210E
+    - phy: ti: gmii-sel: fix mac tx internal delay for rgmii-rxid
+    - mt76: mt76u: fix endpoint definition order
+    - mt7601u: fix bbp version check in mt7601u_wait_bbp_ready
+    - ice: fix stack leakage
+    - s390/pkey: fix memory leak within _copy_apqns_from_user()
+    - nfsd: depend on CRYPTO_MD5 for legacy client tracking
+    - crypto: amcc - restore CRYPTO_AES dependency
+    - crypto: sun4i-ss - fix big endian issues
+    - perf map: No need to adjust the long name of modules
+    - leds: tlc591xx: update the maximum brightness
+    - soc/tegra: pmc: Fix crashes for hierarchical interrupts
+    - soc: qcom: llcc: Name regmaps to avoid collisions
+    - soc: renesas: Add missing check for non-zero product register address
+    - soc: aspeed: Fix snoop_file_poll()'s return type
+    - watchdog: sprd: Fix the incorrect pointer getting from driver data
+    - ipmi: Fix memory leak in __ipmi_bmc_register
+    - sched/core: Further clarify sched_class::set_next_task()
+    - gpiolib: No need to call gpiochip_remove_pin_ranges() twice
+    - rtw88: fix beaconing mode rsvd_page memory violation issue
+    - rtw88: fix error handling when setup efuse info
+    - drm/panfrost: Add missing check for pfdev->regulator
+    - drm: panel-lvds: Potential Oops in probe error handling
+    - drm/amdgpu: remove excess function parameter description
+    - hwrng: omap3-rom - Fix missing clock by probing with device tree
+    - dpaa2-eth: Fix minor bug in ethtool stats reporting
+    - drm/rockchip: Round up _before_ giving to the clock framework
+    - software node: Get reference to parent swnode in get_parent op
+    - PCI: mobiveil: Fix csr_read()/write() build issue
+    - drm: rcar_lvds: Fix color mismatches on R-Car H2 ES2.0 and later
+    - net: netsec: Correct dma sync for XDP_TX frames
+    - ACPI: platform: Unregister stale platform devices
+    - pwm: sun4i: Fix incorrect calculation of duty_cycle/period
+    - regulator: bd70528: Add MODULE_ALIAS to allow module auto loading
+    - drm/amdgpu/vi: silence an uninitialized variable warning
+    - power: supply: bd70528: Add MODULE_ALIAS to allow module auto loading
+    - firmware: imx: Remove call to devm_of_platform_populate
+    - libbpf: Don't use kernel-side u32 type in xsk.c
+    - rcu: Fix uninitialized variable in nocb_gp_wait()
+    - dpaa_eth: perform DMA unmapping before read
+    - dpaa_eth: avoid timestamp read on error paths
+    - scsi: ufs: delete redundant function ufshcd_def_desc_sizes()
+    - net: openvswitch: don't unlock mutex when changing the user_features fails
+    - hv_netvsc: flag software created hash value
+    - rt2800: remove errornous duplicate condition
+    - net: neigh: use long type to store jiffies delta
+    - net: axienet: Fix error return code in axienet_probe()
+    - selftests: gen_kselftest_tar.sh: Do not clobber kselftest/
+    - rtc: bd70528: fix module alias to autoload module
+    - packet: fix data-race in fanout_flow_is_huge()
+    - i2c: stm32f7: report dma error during probe
+    - kselftests: cgroup: Avoid the reuse of fd after it is deallocated
+    - firmware: arm_scmi: Fix doorbell ring logic for !CONFIG_64BIT
+    - mmc: sdio: fix wl1251 vendor id
+    - mmc: core: fix wl1251 sdio quirks
+    - tee: optee: Fix dynamic shm pool allocations
+    - tee: optee: fix device enumeration error handling
+    - workqueue: Add RCU annotation for pwq list walk
+    - SUNRPC: Fix another issue with MIC buffer space
+    - sched/cpufreq: Move the cfs_rq_util_change() call to cpufreq_update_util()
+    - mt76: mt76u: rely on usb_interface instead of usb_dev
+    - dma-direct: don't check swiotlb=force in dma_direct_map_resource
+    - afs: Remove set but not used variables 'before', 'after'
+    - dmaengine: ti: edma: fix missed failure handling
+    - drm/radeon: fix bad DMA from INTERRUPT_CNTL2
+    - xdp: Fix cleanup on map free for devmap_hash map type
+    - platform/chrome: wilco_ec: fix use after free issue
+    - block: fix memleak of bio integrity data
+    - s390/qeth: fix dangling IO buffers after halt/clear
+    - net-sysfs: Call dev_hold always in netdev_queue_add_kobject
+    - gpio: aspeed: avoid return type warning
+    - phy/rockchip: inno-hdmi: round clock rate down to closest 1000 Hz
+    - optee: Fix multi page dynamic shm pool alloc
+    - Linux 5.4.15
+
+  * Focal update: v5.4.14 upstream stable release (LP: #1861090)
+    - ARM: dts: meson8: fix the size of the PMU registers
+    - clk: qcom: gcc-sdm845: Add missing flag to votable GDSCs
+    - soc: amlogic: meson-ee-pwrc: propagate PD provider registration errors
+    - soc: amlogic: meson-ee-pwrc: propagate errors from pm_genpd_init()
+    - dt-bindings: reset: meson8b: fix duplicate reset IDs
+    - ARM: dts: imx6q-dhcom: fix rtc compatible
+    - arm64: dts: ls1028a: fix endian setting for dcfg
+    - arm64: dts: imx8mm: Change SDMA1 ahb clock for imx8mm
+    - bus: ti-sysc: Fix iterating over clocks
+    - clk: Don't try to enable critical clocks if prepare failed
+    - Revert "gpio: thunderx: Switch to GPIOLIB_IRQCHIP"
+    - arm64: dts: imx8mq-librem5-devkit: use correct interrupt for the
+      magnetometer
+    - ASoC: msm8916-wcd-digital: Reset RX interpolation path after use
+    - ASoC: stm32: sai: fix possible circular locking
+    - ASoC: stm32: dfsdm: fix 16 bits record
+    - ASoC: msm8916-wcd-analog: Fix selected events for MIC BIAS External1
+    - ASoC: msm8916-wcd-analog: Fix MIC BIAS Internal1
+    - ARM: OMAP2+: Fix ti_sysc_find_one_clockdomain to check for to_clk_hw_omap
+    - ARM: dts: imx7ulp: fix reg of cpu node
+    - ARM: dts: imx6q-dhcom: Fix SGTL5000 VDDIO regulator connection
+    - ASoC: Intel: bytcht_es8316: Fix Irbis NB41 netbook quirk
+    - ALSA: dice: fix fallback from protocol extension into limited functionality
+    - ALSA: seq: Fix racy access for queue timer in proc read
+    - ALSA: firewire-tascam: fix corruption due to spin lock without restoration
+      in SoftIRQ context
+    - ALSA: usb-audio: fix sync-ep altsetting sanity check
+    - arm64: dts: allwinner: a64: olinuxino: Fix SDIO supply regulator
+    - arm64: dts: allwinner: a64: olinuxino: Fix eMMC supply regulator
+    - arm64: dts: agilex/stratix10: fix pmu interrupt numbers
+    - Fix built-in early-load Intel microcode alignment
+    - clk: sunxi-ng: r40: Allow setting parent rate for external clock outputs
+    - block: fix an integer overflow in logical block size
+    - fuse: fix fuse_send_readpages() in the syncronous read case
+    - io_uring: only allow submit from owning task
+    - cpuidle: teo: Fix intervals[] array indexing bug
+    - ARM: dts: am571x-idk: Fix gpios property to have the correct gpio number
+    - ARM: davinci: select CONFIG_RESET_CONTROLLER
+    - perf: Correctly handle failed perf_get_aux_event()
+    - iio: adc: ad7124: Fix DT channel configuration
+    - iio: imu: st_lsm6dsx: Fix selection of ST_LSM6DS3_ID
+    - iio: light: vcnl4000: Fix scale for vcnl4040
+    - iio: chemical: pms7003: fix unmet triggered buffer dependency
+    - iio: buffer: align the size of scan bytes to size of the largest element
+    - USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx
+    - USB: serial: option: Add support for Quectel RM500Q
+    - USB: serial: opticon: fix control-message timeouts
+    - USB: serial: option: add support for Quectel RM500Q in QDL mode
+    - USB: serial: suppress driver bind attributes
+    - USB: serial: ch341: handle unbound port at reset_resume
+    - USB: serial: io_edgeport: handle unbound ports on URB completion
+    - USB: serial: io_edgeport: add missing active-port sanity check
+    - USB: serial: keyspan: handle unbound ports
+    - USB: serial: quatech2: handle unbound ports
+    - staging: comedi: ni_routes: fix null dereference in ni_find_route_source()
+    - staging: comedi: ni_routes: allow partial routing information
+    - scsi: fnic: fix invalid stack access
+    - scsi: mptfusion: Fix double fetch bug in ioctl
+    - ptrace: reintroduce usage of subjective credentials in ptrace_has_cap()
+    - mtd: rawnand: gpmi: Fix suspend/resume problem
+    - mtd: rawnand: gpmi: Restore nfc timing setup after suspend/resume
+    - usb: core: hub: Improved device recognition on remote wakeup
+    - cpu/SMT: Fix x86 link error without CONFIG_SYSFS
+    - x86/resctrl: Fix an imbalance in domain_remove_cpu()
+    - x86/CPU/AMD: Ensure clearing of SME/SEV features is maintained
+    - locking/rwsem: Fix kernel crash when spinning on RWSEM_OWNER_UNKNOWN
+    - perf/x86/intel/uncore: Fix missing marker for
+      snr_uncore_imc_freerunning_events
+    - x86/efistub: Disable paging at mixed mode entry
+    - s390/zcrypt: Fix CCA cipher key gen with clear key value function
+    - scsi: storvsc: Correctly set number of hardware queues for IDE disk
+    - mtd: spi-nor: Fix selection of 4-byte addressing opcodes on Spansion
+    - drm/i915: Add missing include file <linux/math64.h>
+    - x86/resctrl: Fix potential memory leak
+    - efi/earlycon: Fix write-combine mapping on x86
+    - s390/setup: Fix secure ipl message
+    - clk: samsung: exynos5420: Keep top G3D clocks enabled
+    - perf hists: Fix variable name's inconsistency in hists__for_each() macro
+    - locking/lockdep: Fix buffer overrun problem in stack_trace[]
+    - perf report: Fix incorrectly added dimensions as switch perf data file
+    - mm/shmem.c: thp, shmem: fix conflict of above-47bit hint address and PMD
+      alignment
+    - mm/huge_memory.c: thp: fix conflict of above-47bit hint address and PMD
+      alignment
+    - mm: memcg/slab: fix percpu slab vmstats flushing
+    - mm: memcg/slab: call flush_memcg_workqueue() only if memcg workqueue is
+      valid
+    - mm, debug_pagealloc: don't rely on static keys too early
+    - btrfs: rework arguments of btrfs_unlink_subvol
+    - btrfs: fix invalid removal of root ref
+    - btrfs: do not delete mismatched root refs
+    - btrfs: relocation: fix reloc_root lifespan and access
+    - btrfs: fix memory leak in qgroup accounting
+    - btrfs: check rw_devices, not num_devices for balance
+    - Btrfs: always copy scrub arguments back to user space
+    - mm/memory_hotplug: don't free usage map when removing a re-added early
+      section
+    - mm/page-writeback.c: avoid potential division by zero in wb_min_max_ratio()
+    - mm: khugepaged: add trace status description for SCAN_PAGE_HAS_PRIVATE
+    - ARM: dts: imx6qdl-sabresd: Remove incorrect power supply assignment
+    - ARM: dts: imx6sx-sdb: Remove incorrect power supply assignment
+    - ARM: dts: imx6sl-evk: Remove incorrect power supply assignment
+    - ARM: dts: imx6sll-evk: Remove incorrect power supply assignment
+    - ARM: dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL
+    - ARM: dts: imx7: Fix Toradex Colibri iMX7S 256MB NAND flash support
+    - net: stmmac: 16KB buffer must be 16 byte aligned
+    - net: stmmac: Enable 16KB buffer size
+    - reset: Fix {of,devm}_reset_control_array_get kerneldoc return types
+    - tipc: fix potential hanging after b/rcast changing
+    - tipc: fix retrans failure due to wrong destination
+    - net: fix kernel-doc warning in <linux/netdevice.h>
+    - block: Fix the type of 'sts' in bsg_queue_rq()
+    - drm/amd/display: Reorder detect_edp_sink_caps before link settings read.
+    - bpf: Fix incorrect verifier simulation of ARSH under ALU32
+    - bpf: Sockmap/tls, during free we may call tcp_bpf_unhash() in loop
+    - bpf: Sockmap, ensure sock lock held during tear down
+    - bpf: Sockmap/tls, push write_space updates through ulp updates
+    - bpf: Sockmap, skmsg helper overestimates push, pull, and pop bounds
+    - bpf: Sockmap/tls, msg_push_data may leave end mark in place
+    - bpf: Sockmap/tls, tls_sw can create a plaintext buf > encrypt buf
+    - bpf: Sockmap/tls, skmsg can have wrapped skmsg that needs extra chaining
+    - bpf: Sockmap/tls, fix pop data with SK_DROP return code
+    - i2c: tegra: Fix suspending in active runtime PM state
+    - i2c: tegra: Properly disable runtime PM on driver's probe error
+    - cfg80211: fix deadlocks in autodisconnect work
+    - cfg80211: fix memory leak in nl80211_probe_mesh_link
+    - cfg80211: fix memory leak in cfg80211_cqm_rssi_update
+    - cfg80211: fix page refcount issue in A-MSDU decap
+    - bpf/sockmap: Read psock ingress_msg before sk_receive_queue
+    - i2c: iop3xx: Fix memory leak in probe error path
+    - netfilter: fix a use-after-free in mtype_destroy()
+    - netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
+    - netfilter: nat: fix ICMP header corruption on ICMP errors
+    - netfilter: nft_tunnel: fix null-attribute check
+    - netfilter: nft_tunnel: ERSPAN_VERSION must not be null
+    - netfilter: nf_tables: remove WARN and add NLA_STRING upper limits
+    - netfilter: nf_tables: store transaction list locally while requesting module
+    - netfilter: nf_tables: fix flowtable list del corruption
+    - NFC: pn533: fix bulk-message timeout
+    - net: bpf: Don't leak time wait and request sockets
+    - bpftool: Fix printing incorrect pointer in btf_dump_ptr
+    - batman-adv: Fix DAT candidate selection on little endian systems
+    - macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()
+    - hv_netvsc: Fix memory leak when removing rndis device
+    - net: avoid updating qdisc_xmit_lock_key in netdev_update_lockdep_key()
+    - net: dsa: tag_qca: fix doubled Tx statistics
+    - net: hns3: pad the short frame before sending to the hardware
+    - net: hns: fix soft lockup when there is not enough memory
+    - net: phy: dp83867: Set FORCE_LINK_GOOD to default after reset
+    - net/sched: act_ife: initalize ife->metalist earlier
+    - net: usb: lan78xx: limit size of local TSO packets
+    - net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info
+    - ptp: free ptp device pin descriptors properly
+    - r8152: add missing endpoint sanity check
+    - tcp: fix marked lost packets not being retransmitted
+    - bnxt_en: Fix NTUPLE firmware command failures.
+    - bnxt_en: Fix ipv6 RFS filter matching logic.
+    - bnxt_en: Do not treat DSN (Digital Serial Number) read failure as fatal.
+    - net: ethernet: ave: Avoid lockdep warning
+    - net: systemport: Fixed queue mapping in internal ring map
+    - net: dsa: sja1105: Don't error out on disabled ports with no phy-mode
+    - net: dsa: tag_gswip: fix typo in tagger name
+    - net: sched: act_ctinfo: fix memory leak
+    - net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec
+    - i40e: prevent memory leak in i40e_setup_macvlans
+    - drm/amdgpu: allow direct upload save restore list for raven2
+    - sh_eth: check sh_eth_cpu_data::dual_port when dumping registers
+    - mlxsw: spectrum: Do not modify cloned SKBs during xmit
+    - mlxsw: spectrum: Wipe xstats.backlog of down ports
+    - mlxsw: spectrum_qdisc: Include MC TCs in Qdisc counters
+    - net: stmmac: selftests: Make it work in Synopsys AXS101 boards
+    - net: stmmac: selftests: Mark as fail when received VLAN ID != expected
+    - selftests: mlxsw: qos_mc_aware: Fix mausezahn invocation
+    - net: stmmac: selftests: Update status when disabling RSS
+    - net: stmmac: tc: Do not setup flower filtering if RSS is enabled
+    - devlink: Wait longer before warning about unset port type
+    - xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk
+    - dt-bindings: Add missing 'properties' keyword enclosing 'snps,tso'
+    - tcp: refine rule to allow EPOLLOUT generation under mem pressure
+    - irqchip: Place CONFIG_SIFIVE_PLIC into the menu
+    - arm64: dts: qcom: msm8998: Disable coresight by default
+    - cw1200: Fix a signedness bug in cw1200_load_firmware()
+    - arm64: dts: meson: axg: fix audio fifo reg size
+    - arm64: dts: meson: g12: fix audio fifo reg size
+    - arm64: dts: meson-gxl-s905x-khadas-vim: fix gpio-keys-polled node
+    - arm64: dts: renesas: r8a77970: Fix PWM3
+    - arm64: dts: marvell: Add AP806-dual missing CPU clocks
+    - cfg80211: check for set_wiphy_params
+    - tick/sched: Annotate lockless access to last_jiffies_update
+    - arm64: dts: marvell: Fix CP110 NAND controller node multi-line comment
+      alignment
+    - arm64: dts: renesas: r8a774a1: Remove audio port node
+    - arm64: dts: imx8mm-evk: Assigned clocks for audio plls
+    - arm64: dts: qcom: sdm845-cheza: delete zap-shader
+    - ARM: dts: imx6ul-kontron-n6310-s: Disable the snvs-poweroff driver
+    - arm64: dts: allwinner: a64: Re-add PMU node
+    - ARM: dts: dra7: fix cpsw mdio fck clock
+    - arm64: dts: juno: Fix UART frequency
+    - ARM: dts: Fix sgx sysconfig register for omap4
+    - Revert "arm64: dts: juno: add dma-ranges property"
+    - mtd: devices: fix mchp23k256 read and write
+    - mtd: cfi_cmdset_0002: only check errors when ready in cfi_check_err_status()
+    - mtd: cfi_cmdset_0002: fix delayed error detection on HyperFlash
+    - um: Don't trace irqflags during shutdown
+    - um: virtio_uml: Disallow modular build
+    - reiserfs: fix handling of -EOPNOTSUPP in reiserfs_for_each_xattr
+    - scsi: esas2r: unlock on error in esas2r_nvram_read_direct()
+    - scsi: qla4xxx: fix double free bug
+    - scsi: bnx2i: fix potential use after free
+    - scsi: target: core: Fix a pr_debug() argument
+    - scsi: lpfc: fix: Coverity: lpfc_get_scsi_buf_s3(): Null pointer dereferences
+    - scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI
+    - scsi: qla2xxx: fix rports not being mark as lost in sync fabric scan
+    - scsi: core: scsi_trace: Use get_unaligned_be*()
+    - scsi: lpfc: Fix list corruption detected in lpfc_put_sgl_per_hdwq
+    - scsi: lpfc: Fix hdwq sgl locks and irq handling
+    - scsi: lpfc: Fix a kernel warning triggered by lpfc_get_sgl_per_hdwq()
+    - rtw88: fix potential read outside array boundary
+    - perf probe: Fix wrong address verification
+    - perf script: Allow --time with --reltime
+    - clk: sprd: Use IS_ERR() to validate the return value of
+      syscon_regmap_lookup_by_phandle()
+    - clk: imx7ulp: Correct system clock source option #7
+    - clk: imx7ulp: Correct DDR clock mux options
+    - regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
+    - hwmon: (pmbus/ibm-cffps) Switch LEDs to blocking brightness call
+    - hwmon: (pmbus/ibm-cffps) Fix LED blink behavior
+    - perf script: Fix --reltime with --time
+    - scsi: lpfc: use hdwq assigned cpu for allocation
+    - Linux 5.4.14
+
+  * Focal update: v5.4.13 upstream stable release (LP: #1861085)
+    - HID: hidraw, uhid: Always report EPOLLOUT
+    - rtc: mt6397: fix alarm register overwrite
+    - phy: mapphone-mdm6600: Fix uninitialized status value regression
+    - RDMA/bnxt_re: Avoid freeing MR resources if dereg fails
+    - RDMA/bnxt_re: Fix Send Work Entry state check while polling completions
+    - IB/hfi1: Don't cancel unused work item
+    - mtd: rawnand: stm32_fmc2: avoid to lock the CPU bus
+    - i2c: bcm2835: Store pointer to bus clock
+    - ASoC: SOF: imx8: fix memory allocation failure check on priv->pd_dev
+    - ASoC: soc-core: Set dpcm_playback / dpcm_capture
+    - ASoC: stm32: spdifrx: fix inconsistent lock state
+    - ASoC: stm32: spdifrx: fix race condition in irq handler
+    - ASoC: stm32: spdifrx: fix input pin state management
+    - pinctrl: lochnagar: select GPIOLIB
+    - netfilter: nft_flow_offload: fix underflow in flowtable reference counter
+    - ASoC: SOF: imx8: Fix dsp_box offset
+    - mtd: onenand: omap2: Pass correct flags for prep_dma_memcpy
+    - gpio: zynq: Fix for bug in zynq_gpio_restore_context API
+    - pinctrl: meson: Fix wrong shift value when get drive-strength
+    - selftests: loopback.sh: skip this test if the driver does not support
+    - iommu/vt-d: Unlink device if failed to add to group
+    - iommu: Remove device link to group on failure
+    - bpf: cgroup: prevent out-of-order release of cgroup bpf
+    - fs: move guard_bio_eod() after bio_set_op_attrs
+    - scsi: mpt3sas: Fix double free in attach error handling
+    - gpio: Fix error message on out-of-range GPIO in lookup table
+    - PM / devfreq: tegra: Add COMMON_CLK dependency
+    - PCI: amlogic: Fix probed clock names
+    - drm/tegra: Fix ordering of cleanup code
+    - hsr: add hsr root debugfs directory
+    - hsr: rename debugfs file when interface name is changed
+    - hsr: reset network header when supervision frame is created
+    - s390/qeth: fix qdio teardown after early init error
+    - s390/qeth: fix false reporting of VNIC CHAR config failure
+    - s390/qeth: Fix vnicc_is_in_use if rx_bcast not set
+    - s390/qeth: vnicc Fix init to default
+    - s390/qeth: fix initialization on old HW
+    - cifs: Adjust indentation in smb2_open_file
+    - scsi: smartpqi: Update attribute name to `driver_version`
+    - MAINTAINERS: Append missed file to the database
+    - ath9k: use iowrite32 over __raw_writel
+    - can: j1939: fix address claim code example
+    - dt-bindings: reset: Fix brcmstb-reset example
+    - reset: brcmstb: Remove resource checks
+    - afs: Fix missing cell comparison in afs_test_super()
+    - perf vendor events s390: Remove name from L1D_RO_EXCL_WRITES description
+    - syscalls/x86: Wire up COMPAT_SYSCALL_DEFINE0
+    - syscalls/x86: Use COMPAT_SYSCALL_DEFINE0 for IA32 (rt_)sigreturn
+    - syscalls/x86: Use the correct function type for sys_ni_syscall
+    - syscalls/x86: Fix function types in COND_SYSCALL
+    - hsr: fix slab-out-of-bounds Read in hsr_debugfs_rename()
+    - btrfs: simplify inode locking for RWF_NOWAIT
+    - netfilter: nf_tables_offload: release flow_rule on error from commit path
+    - netfilter: nft_meta: use 64-bit time arithmetic
+    - ASoC: dt-bindings: mt8183: add missing update
+    - ASoC: simple_card_utils.h: Add missing include
+    - ASoC: fsl_esai: Add spin lock to protect reset, stop and start
+    - ASoC: core: Fix compile warning with CONFIG_DEBUG_FS=n
+    - ASoC: rsnd: fix DALIGN register for SSIU
+    - RDMA/hns: Prevent undefined behavior in hns_roce_set_user_sq_size()
+    - RDMA/hns: remove a redundant le16_to_cpu
+    - RDMA/hns: Modify return value of restrack functions
+    - RDMA/counter: Prevent QP counter manual binding in auto mode
+    - RDMA/siw: Fix port number endianness in a debug message
+    - RDMA/hns: Fix build error again
+    - RDMA/hns: Release qp resources when failed to destroy qp
+    - xprtrdma: Add unique trace points for posting Local Invalidate WRs
+    - xprtrdma: Connection becomes unstable after a reconnect
+    - xprtrdma: Fix MR list handling
+    - xprtrdma: Close window between waking RPC senders and posting Receives
+    - RDMA/hns: Fix to support 64K page for srq
+    - RDMA/hns: Bugfix for qpc/cqc timer configuration
+    - rdma: Remove nes ABI header
+    - RDMA/mlx5: Return proper error value
+    - RDMA/srpt: Report the SCSI residual to the initiator
+    - uaccess: Add non-pagefault user-space write function
+    - bpf: Make use of probe_user_write in probe write helper
+    - bpf: skmsg, fix potential psock NULL pointer dereference
+    - bpf: Support pre-2.25-binutils objcopy for vmlinux BTF
+    - libbpf: Fix Makefile' libbpf symbol mismatch diagnostic
+    - afs: Fix use-after-loss-of-ref
+    - afs: Fix afs_lookup() to not clobber the version on a new dentry
+    - keys: Fix request_key() cache
+    - scsi: enclosure: Fix stale device oops with hot replug
+    - scsi: sd: Clear sdkp->protection_type if disk is reformatted without PI
+    - platform/mellanox: fix potential deadlock in the tmfifo driver
+    - platform/x86: asus-wmi: Fix keyboard brightness cannot be set to 0
+    - platform/x86: GPD pocket fan: Use default values when wrong modparams are
+      given
+    - asm-generic/nds32: don't redefine cacheflush primitives
+    - Documentation/ABI: Fix documentation inconsistency for mlxreg-io sysfs
+      interfaces
+    - Documentation/ABI: Add missed attribute for mlxreg-io sysfs interfaces
+    - xprtrdma: Fix create_qp crash on device unload
+    - xprtrdma: Fix completion wait during device removal
+    - xprtrdma: Fix oops in Receive handler after device removal
+    - dm: add dm-clone to the documentation index
+    - scsi: ufs: Give an unique ID to each ufs-bsg
+    - crypto: cavium/nitrox - fix firmware assignment to AE cores
+    - crypto: hisilicon - select NEED_SG_DMA_LENGTH in qm Kconfig
+    - crypto: arm64/aes-neonbs - add return value of skcipher_walk_done() in
+      __xts_crypt()
+    - crypto: virtio - implement missing support for output IVs
+    - crypto: algif_skcipher - Use chunksize instead of blocksize
+    - crypto: geode-aes - convert to skcipher API and make thread-safe
+    - NFSv2: Fix a typo in encode_sattr()
+    - nfsd: Fix cld_net->cn_tfm initialization
+    - nfsd: v4 support requires CRYPTO_SHA256
+    - NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()
+    - NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn
+    - iio: imu: st_lsm6dsx: fix gyro gain definitions for LSM9DS1
+    - iio: imu: adis16480: assign bias value only if operation succeeded
+    - mei: fix modalias documentation
+    - clk: meson: axg-audio: fix regmap last register
+    - clk: samsung: exynos5420: Preserve CPU clocks configuration during
+      suspend/resume
+    - clk: Fix memory leak in clk_unregister()
+    - dmaengine: dw: platform: Mark 'hclk' clock optional
+    - clk: imx: pll14xx: Fix quick switch of S/K parameter
+    - rsi: fix potential null dereference in rsi_probe()
+    - affs: fix a memory leak in affs_remount
+    - pinctl: ti: iodelay: fix error checking on pinctrl_count_index_with_args
+      call
+    - pinctrl: sh-pfc: Fix PINMUX_IPSR_PHYS() to set GPSR
+    - pinctrl: sh-pfc: Do not use platform_get_irq() to count interrupts
+    - pinctrl: lewisburg: Update pin list according to v1.1v6
+    - Revert "drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper."
+    - drm/amdgpu: cleanup creating BOs at fixed location (v2)
+    - drm/amdgpu/discovery: reserve discovery data at the top of VRAM
+    - scsi: sd: enable compat ioctls for sed-opal
+    - arm64: dts: apq8096-db820c: Increase load on l21 for SDCARD
+    - af_unix: add compat_ioctl support
+    - compat_ioctl: handle SIOCOUTQNSD
+    - PCI: aardvark: Use LTSSM state to build link training flag
+    - PCI: aardvark: Fix PCI_EXP_RTCTL register configuration
+    - PCI: dwc: Fix find_next_bit() usage
+    - PCI: Fix missing bridge dma_ranges resource list cleanup
+    - PCI/PM: Clear PCIe PME Status even for legacy power management
+    - tools: PCI: Fix fd leakage
+    - PCI/PTM: Remove spurious "d" from granularity message
+    - powerpc/powernv: Disable native PCIe port management
+    - MIPS: PCI: remember nasid changed by set interrupt affinity
+    - MIPS: Loongson: Fix return value of loongson_hwmon_init
+    - MIPS: SGI-IP27: Fix crash, when CPUs are disabled via nr_cpus parameter
+    - tty: serial: imx: use the sg count from dma_map_sg
+    - tty: serial: pch_uart: correct usage of dma_unmap_sg
+    - ARM: 8943/1: Fix topology setup in case of CPU hotplug for CONFIG_SCHED_MC
+    - media: ov6650: Fix incorrect use of JPEG colorspace
+    - media: ov6650: Fix some format attributes not under control
+    - media: ov6650: Fix .get_fmt() V4L2_SUBDEV_FORMAT_TRY support
+    - media: ov6650: Fix default format not applied on device probe
+    - media: rcar-vin: Fix incorrect return statement in rvin_try_format()
+    - media: hantro: h264: Fix the frame_num wraparound case
+    - media: v4l: cadence: Fix how unsued lanes are handled in 'csi2rx_start()'
+    - media: exynos4-is: Fix recursive locking in isp_video_release()
+    - media: coda: fix deadlock between decoder picture run and start command
+    - media: cedrus: Use correct H264 8x8 scaling list
+    - media: hantro: Do not reorder H264 scaling list
+    - media: aspeed-video: Fix memory leaks in aspeed_video_probe
+    - media: hantro: Set H264 FIELDPIC_FLAG_E flag correctly
+    - iommu/mediatek: Correct the flush_iotlb_all callback
+    - iommu/mediatek: Add a new tlb_lock for tlb_flush
+    - memory: mtk-smi: Add PM suspend and resume ops
+    - Revert "ubifs: Fix memory leak bug in alloc_ubifs_info() error path"
+    - ubifs: Fixed missed le64_to_cpu() in journal
+    - ubifs: do_kill_orphans: Fix a memory leak bug
+    - spi: sprd: Fix the incorrect SPI register
+    - mtd: spi-nor: fix silent truncation in spi_nor_read()
+    - mtd: spi-nor: fix silent truncation in spi_nor_read_raw()
+    - spi: pxa2xx: Set controller->max_transfer_size in dma mode
+    - spi: atmel: fix handling of cs_change set on non-last xfer
+    - spi: rspi: Use platform_get_irq_byname_optional() for optional irqs
+    - spi: lpspi: fix memory leak in fsl_lpspi_probe
+    - iwlwifi: mvm: consider ieee80211 station max amsdu value
+    - rtlwifi: Remove unnecessary NULL check in rtl_regd_init
+    - iwlwifi: mvm: fix support for single antenna diversity
+    - sch_cake: Add missing NLA policy entry TCA_CAKE_SPLIT_GSO
+    - f2fs: fix potential overflow
+    - NFSD fixing possible null pointer derefering in copy offload
+    - rtc: msm6242: Fix reading of 10-hour digit
+    - rtc: brcmstb-waketimer: add missed clk_disable_unprepare
+    - rtc: bd70528: Add MODULE ALIAS to autoload module
+    - gpio: mpc8xxx: Add platform device to gpiochip->parent
+    - scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
+    - scsi: target/iblock: Fix protection error with blocks greater than 512B
+    - selftests: firmware: Fix it to do root uid check and skip
+    - rseq/selftests: Turn off timeout setting
+    - riscv: export flush_icache_all to modules
+    - mips: cacheinfo: report shared CPU map
+    - mips: Fix gettimeofday() in the vdso library
+    - tomoyo: Suppress RCU warning at list_for_each_entry_rcu().
+    - MIPS: Prevent link failure with kcov instrumentation
+    - drm/arm/mali: make malidp_mw_connector_helper_funcs static
+    - rxrpc: Unlock new call in rxrpc_new_incoming_call() rather than the caller
+    - rxrpc: Don't take call->user_mutex in rxrpc_new_incoming_call()
+    - rxrpc: Fix missing security check on incoming calls
+    - dmaengine: k3dma: Avoid null pointer traversal
+    - s390/qeth: lock the card while changing its hsuid
+    - ioat: ioat_alloc_ring() failure handling.
+    - drm/amdgpu: enable gfxoff for raven1 refresh
+    - media: intel-ipu3: Align struct ipu3_uapi_awb_fr_config_s to 32 bytes
+    - kbuild/deb-pkg: annotate libelf-dev dependency as :native
+    - hexagon: parenthesize registers in asm predicates
+    - hexagon: work around compiler crash
+    - ocfs2: call journal flush to mark journal as empty after journal recovery
+      when mount
+    - Linux 5.4.13
+    - [Config] updateconfigs following v5.4.13 stable update
+
+  * [hns3-0111]sync mainline kernel 5.5rc6 hns3 patchset into ubuntu HWE kernel
+    branch Edit (LP: #1859261)
+    - net: hns3: make array tick_array static, makes object smaller
+    - net: hns3: add support for setting VF link status on the host
+    - net: hns3: add support for spoof check setting
+    - net: hns3: add support for setting VF trust
+    - net: hns3: add support for configuring bandwidth of VF on the host
+    - net: hns3: add support for configuring VF MAC from the host
+    - net: hns3: support tx-scatter-gather-fraglist feature
+    - net: hns3: remove struct hns3_nic_ring_data in hns3_enet module
+    - net: hns3: optimized MAC address in management table.
+    - net: hns3: minor optimization for barrier in IO path
+    - net: hns3: introduce ring_to_netdev() in enet module
+    - net: hns3: make struct hns3_enet_ring cacheline aligned
+    - net: hns3: minor cleanup for hns3_handle_rx_bd()
+    - net: hns3: do not allocate linear data for fraglist skb
+    - net: hns3: dump some debug information when reset fail
+    - net: hns3: cleanup some magic numbers
+    - net: hns3: cleanup some coding style issues
+    - net: hns3: cleanup a format-truncation warning
+    - net: hns3: optimize local variable initialization
+    - net: hns3: add or modify some comments
+    - net: hns3: cleanup some print format warning
+    - net: hns3: cleanup byte order issues when printed
+    - net: hns3: remove unused macros
+    - net: hns3: fix for TX queue not restarted problem
+    - net: hns3: fix a use after free problem in hns3_nic_maybe_stop_tx()
+    - net: hns3: fix VF ID issue for setting VF VLAN
+
+  * [Dell Vostro 5490] proposed linux-oem-osp1 suspend resume fails
+    (LP: #1860642)
+    - Revert "ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary names."
+    - Revert "ASoC: Intel: acpi-match: split CNL tables in three"
+    - Revert "ASoC: SOF: Intel: hda: use fallback for firmware name"
+
+  * shiftfs: prevent lower dentries from going negative during unlink
+    (LP: #1860041)
+    - SAUCE: shiftfs: prevent lower dentries from going negative during unlink
+
+  * [SRU][B/OEM-B/OEM-OSP1/D/E/Unstable] UBUNTU: SAUCE: Use native backlight on
+    Lenovo E41-25/45 (LP: #1859561)
+    - SAUCE: ACPI: video: Use native backlight on Lenovo E41-25/45
+
+  * Dell AIO can't adjust brightness (LP: #1858761)
+    - SAUCE: platform/x86: dell-uart-backlight: add retry for get scalar status
+
+  * [20.04 FEAT] qeth: Support for HiperSockets Multi-Write (LP: #1853292)
+    - s390/qdio: implement IQD Multi-Write
+    - s390/qeth: use IQD Multi-Write
+
+  * debian/tests/corosync: gfs2_jadd fails with ENOTTY for i386 package on amd64
+    kernel (LP: #1859827)
+    - gfs2: add compat_ioctl support
+
+  * Reduce s2idle power consumption when ethernet cable is connected on e1000e
+    (LP: #1859126)
+    - e1000e: Add support for S0ix
+
+  * USB key cannot be detected by hotplug on Sunix USB Type-A 3.1 Gen 2 card
+    [1b21:2142]  (LP: #1858988)
+    - SAUCE: PCI: Avoid ASMedia XHCI USB PME# from D0 defect
+
+  * [scsi-1130]scsi: scsi_transport_sas: Fix memory leak when removing devices
+    (LP: #1854550)
+    - scsi: scsi_transport_sas: Fix memory leak when removing devices
+
+  * Focal update: v5.4.12 upstream stable release (LP: #1860131)
+    - chardev: Avoid potential use-after-free in 'chrdev_open()'
+    - i2c: fix bus recovery stop mode timing
+    - powercap: intel_rapl: add NULL pointer check to rapl_mmio_cpu_online()
+    - usb: chipidea: host: Disable port power only if previously enabled
+    - ALSA: usb-audio: Apply the sample rate quirk for Bose Companion 5
+    - ALSA: hda/realtek - Add new codec supported for ALCS1200A
+    - ALSA: hda/realtek - Set EAPD control to default for ALC222
+    - ALSA: hda/realtek - Add quirk for the bass speaker on Lenovo Yoga X1 7th gen
+    - tpm: Revert "tpm_tis: reserve chip for duration of tpm_tis_core_init"
+    - tpm: Revert "tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for
+      interrupts"
+    - tpm: Revert "tpm_tis_core: Turn on the TPM before probing IRQ's"
+    - tpm: Handle negative priv->response_len in tpm_common_read()
+    - rtc: sun6i: Add support for RTC clocks on R40
+    - kernel/trace: Fix do not unregister tracepoints when register
+      sched_migrate_task fail
+    - tracing: Have stack tracer compile when MCOUNT_INSN_SIZE is not defined
+    - tracing: Change offset type to s32 in preempt/irq tracepoints
+    - HID: Fix slab-out-of-bounds read in hid_field_extract
+    - HID: uhid: Fix returning EPOLLOUT from uhid_char_poll
+    - HID: hidraw: Fix returning EPOLLOUT from hidraw_poll
+    - HID: hid-input: clear unmapped usages
+    - Input: add safety guards to input_set_keycode()
+    - Input: input_event - fix struct padding on sparc64
+    - drm/i915: Add Wa_1408615072 and Wa_1407596294 to icl,ehl
+    - Revert "drm/amdgpu: Set no-retry as default."
+    - drm/sun4i: tcon: Set RGB DCLK min. divider based on hardware model
+    - drm/fb-helper: Round up bits_per_pixel if possible
+    - drm/dp_mst: correct the shifting in DP_REMOTE_I2C_READ
+    - drm/i915: Add Wa_1407352427:icl,ehl
+    - drm/i915/gt: Mark up virtual engine uabi_instance
+    - IB/hfi1: Adjust flow PSN with the correct resync_psn
+    - can: kvaser_usb: fix interface sanity check
+    - can: gs_usb: gs_usb_probe(): use descriptors of current altsetting
+    - can: tcan4x5x: tcan4x5x_can_probe(): get the device out of standby before
+      register access
+    - can: mscan: mscan_rx_poll(): fix rx path lockup when returning from polling
+      to irq mode
+    - can: can_dropped_invalid_skb(): ensure an initialized headroom in outgoing
+      CAN sk_buffs
+    - gpiolib: acpi: Turn dmi_system_id table into a generic quirk table
+    - gpiolib: acpi: Add honor_wakeup module-option + quirk mechanism
+    - pstore/ram: Regularize prz label allocation lifetime
+    - staging: vt6656: set usb_set_intfdata on driver fail.
+    - staging: vt6656: Fix non zero logical return of, usb_control_msg
+    - usb: cdns3: should not use the same dev_id for shared interrupt handler
+    - usb: ohci-da8xx: ensure error return on variable error is set
+    - USB-PD tcpm: bad warning+size, PPS adapters
+    - USB: serial: option: add ZLP support for 0x1bc7/0x9010
+    - usb: musb: fix idling for suspend after disconnect interrupt
+    - usb: musb: Disable pullup at init
+    - usb: musb: dma: Correct parameter passed to IRQ handler
+    - staging: comedi: adv_pci1710: fix AI channels 16-31 for PCI-1713
+    - staging: vt6656: correct return of vnt_init_registers.
+    - staging: vt6656: limit reg output to block size
+    - staging: rtl8188eu: Add device code for TP-Link TL-WN727N v5.21
+    - serdev: Don't claim unsupported ACPI serial devices
+    - iommu/vt-d: Fix adding non-PCI devices to Intel IOMMU
+    - tty: link tty and port before configuring it as console
+    - tty: always relink the port
+    - arm64: Move __ARCH_WANT_SYS_CLONE3 definition to uapi headers
+    - arm64: Implement copy_thread_tls
+    - arm: Implement copy_thread_tls
+    - parisc: Implement copy_thread_tls
+    - riscv: Implement copy_thread_tls
+    - xtensa: Implement copy_thread_tls
+    - clone3: ensure copy_thread_tls is implemented
+    - um: Implement copy_thread_tls
+    - staging: vt6656: remove bool from vnt_radio_power_on ret
+    - mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf
+    - rpmsg: char: release allocated memory
+    - scsi: bfa: release allocated memory in case of error
+    - rtl8xxxu: prevent leaking urb
+    - HID: hiddev: fix mess in hiddev_open()
+    - USB: Fix: Don't skip endpoint descriptors with maxpacket=0
+    - phy: cpcap-usb: Fix error path when no host driver is loaded
+    - phy: cpcap-usb: Fix flakey host idling and enumerating of devices
+    - netfilter: arp_tables: init netns pointer in xt_tgchk_param struct
+    - netfilter: conntrack: dccp, sctp: handle null timeout argument
+    - netfilter: ipset: avoid null deref when IPSET_ATTR_LINENO is present
+    - drm/i915/gen9: Clear residual context state on context switch
+    - Linux 5.4.12
+
+  * Focal update: v5.4.11 upstream stable release (LP: #1860130)
+    - USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
+    - bpf: Fix passing modified ctx to ld/abs/ind instruction
+    - ASoC: rt5682: fix i2c arbitration lost issue
+    - spi: pxa2xx: Add support for Intel Jasper Lake
+    - regulator: fix use after free issue
+    - ASoC: max98090: fix possible race conditions
+    - spi: fsl: Fix GPIO descriptor support
+    - gpio: Handle counting of Freescale chipselects
+    - spi: fsl: Handle the single hardwired chipselect case
+    - locking/spinlock/debug: Fix various data races
+    - netfilter: ctnetlink: netns exit must wait for callbacks
+    - netfilter: nf_tables_offload: Check for the NETDEV_UNREGISTER event
+    - libtraceevent: Fix lib installation with O=
+    - libtraceevent: Copy pkg-config file to output folder when using O=
+    - regulator: core: fix regulator_register() error paths to properly release
+      rdev
+    - x86/efi: Update e820 with reserved EFI boot services data to fix kexec
+      breakage
+    - ASoC: Intel: bytcr_rt5640: Update quirk for Teclast X89
+    - selftests: netfilter: use randomized netns names
+    - efi/gop: Return EFI_NOT_FOUND if there are no usable GOPs
+    - efi/gop: Return EFI_SUCCESS if a usable GOP was found
+    - efi/gop: Fix memory leak in __gop_query32/64()
+    - efi/earlycon: Remap entire framebuffer after page initialization
+    - ARM: dts: imx6ul: imx6ul-14x14-evk.dtsi: Fix SPI NOR probing
+    - ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
+    - netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
+    - netfilter: nft_set_rbtree: bogus lookup/get on consecutive elements in named
+      sets
+    - netfilter: nf_tables: validate NFT_SET_ELEM_INTERVAL_END
+    - netfilter: nf_tables: validate NFT_DATA_VALUE after nft_data_init()
+    - netfilter: nf_tables: skip module reference count bump on object updates
+    - netfilter: nf_tables_offload: return EOPNOTSUPP if rule specifies no actions
+    - ARM: dts: BCM5301X: Fix MDIO node address/size cells
+    - selftests/ftrace: Fix to check the existence of set_ftrace_filter
+    - selftests/ftrace: Fix ftrace test cases to check unsupported
+    - selftests/ftrace: Do not to use absolute debugfs path
+    - selftests/ftrace: Fix multiple kprobe testcase
+    - selftests: safesetid: Move link library to LDLIBS
+    - selftests: safesetid: Check the return value of setuid/setgid
+    - selftests: safesetid: Fix Makefile to set correct test program
+    - ARM: exynos_defconfig: Restore debugfs support
+    - ARM: dts: Cygnus: Fix MDIO node address/size cells
+    - spi: spi-cavium-thunderx: Add missing pci_release_regions()
+    - reset: Do not register resource data for missing resets
+    - ASoC: topology: Check return value for snd_soc_add_dai_link()
+    - ASoC: topology: Check return value for soc_tplg_pcm_create()
+    - ASoC: SOF: loader: snd_sof_fw_parse_ext_data log warning on unknown header
+    - ASoC: SOF: Intel: split cht and byt debug window sizes
+    - ARM: dts: am335x-sancloud-bbe: fix phy mode
+    - ARM: omap2plus_defconfig: Add back DEBUG_FS
+    - ARM: dts: bcm283x: Fix critical trip point
+    - arm64: dts: ls1028a: fix typo in TMU calibration data
+    - bpf, riscv: Limit to 33 tail calls
+    - bpf, mips: Limit to 33 tail calls
+    - bpftool: Don't crash on missing jited insns or ksyms
+    - perf metricgroup: Fix printing event names of metric group with multiple
+      events
+    - perf header: Fix false warning when there are no duplicate cache entries
+    - spi: spi-ti-qspi: Fix a bug when accessing non default CS
+    - ARM: dts: am437x-gp/epos-evm: fix panel compatible
+    - kselftest/runner: Print new line in print of timeout log
+    - kselftest: Support old perl versions
+    - samples: bpf: Replace symbol compare of trace_event
+    - samples: bpf: fix syscall_tp due to unused syscall
+    - arm64: dts: ls1028a: fix reboot node
+    - ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS
+    - pinctrl: aspeed-g6: Fix LPC/eSPI mux configuration
+    - bus: ti-sysc: Fix missing reset delay handling
+    - clk: walk orphan list on clock provider registration
+    - mac80211: fix TID field in monitor mode transmit
+    - cfg80211: fix double-free after changing network namespace
+    - pinctrl: pinmux: fix a possible null pointer in pinmux_can_be_used_for_gpio
+    - powerpc: Ensure that swiotlb buffer is allocated from low memory
+    - btrfs: Fix error messages in qgroup_rescan_init
+    - Btrfs: fix cloning range with a hole when using the NO_HOLES feature
+    - powerpc/vcpu: Assume dedicated processors as non-preempt
+    - powerpc/spinlocks: Include correct header for static key
+    - btrfs: handle error in btrfs_cache_block_group
+    - Btrfs: fix hole extent items with a zero size after range cloning
+    - ocxl: Fix potential memory leak on context creation
+    - bpf: Clear skb->tstamp in bpf_redirect when necessary
+    - habanalabs: rate limit error msg on waiting for CS
+    - habanalabs: remove variable 'val' set but not used
+    - bnx2x: Do not handle requests from VFs after parity
+    - bnx2x: Fix logic to get total no. of PFs per engine
+    - cxgb4: Fix kernel panic while accessing sge_info
+    - net: usb: lan78xx: Fix error message format specifier
+    - parisc: fix compilation when KEXEC=n and KEXEC_FILE=y
+    - parisc: add missing __init annotation
+    - rfkill: Fix incorrect check to avoid NULL pointer dereference
+    - ASoC: wm8962: fix lambda value
+    - regulator: rn5t618: fix module aliases
+    - spi: nxp-fspi: Ensure width is respected in spi-mem operations
+    - clk: at91: fix possible deadlock
+    - staging: axis-fifo: add unspecified HAS_IOMEM dependency
+    - iommu/iova: Init the struct iova to fix the possible memleak
+    - kconfig: don't crash on NULL expressions in expr_eq()
+    - scripts: package: mkdebian: add missing rsync dependency
+    - perf/x86: Fix potential out-of-bounds access
+    - perf/x86/intel: Fix PT PMI handling
+    - sched/psi: Fix sampling error and rare div0 crashes with cgroups and high
+      uptime
+    - psi: Fix a division error in psi poll()
+    - usb: typec: fusb302: Fix an undefined reference to 'extcon_get_state'
+    - block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT
+    - fs: avoid softlockups in s_inodes iterators
+    - fs: call fsnotify_sb_delete after evict_inodes
+    - perf/smmuv3: Remove the leftover put_cpu() in error path
+    - iommu/dma: Relax locking in iommu_dma_prepare_msi()
+    - io_uring: don't wait when under-submitting
+    - clk: Move clk_core_reparent_orphans() under CONFIG_OF
+    - net: stmmac: selftests: Needs to check the number of Multicast regs
+    - net: stmmac: Determine earlier the size of RX buffer
+    - net: stmmac: Do not accept invalid MTU values
+    - net: stmmac: xgmac: Clear previous RX buffer size
+    - net: stmmac: RX buffer size must be 16 byte aligned
+    - net: stmmac: Always arm TX Timer at end of transmission start
+    - s390/purgatory: do not build purgatory with kcov, kasan and friends
+    - drm/exynos: gsc: add missed component_del
+    - tpm/tpm_ftpm_tee: add shutdown call back
+    - xsk: Add rcu_read_lock around the XSK wakeup
+    - net/mlx5e: Fix concurrency issues between config flow and XSK
+    - net/i40e: Fix concurrency issues between config flow and XSK
+    - net/ixgbe: Fix concurrency issues between config flow and XSK
+    - platform/x86: pcengines-apuv2: fix simswap GPIO assignment
+    - arm64: cpu_errata: Add Hisilicon TSV110 to spectre-v2 safe list
+    - block: Fix a lockdep complaint triggered by request queue flushing
+    - s390/dasd/cio: Interpret ccw_device_get_mdc return value correctly
+    - s390/dasd: fix memleak in path handling error case
+    - block: fix memleak when __blk_rq_map_user_iov() is failed
+    - parisc: Fix compiler warnings in debug_core.c
+    - sbitmap: only queue kyber's wait callback if not already active
+    - s390/qeth: handle error due to unsupported transport mode
+    - s390/qeth: fix promiscuous mode after reset
+    - s390/qeth: don't return -ENOTSUPP to userspace
+    - llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
+    - hv_netvsc: Fix unwanted rx_table reset
+    - selftests: pmtu: fix init mtu value in description
+    - tracing: Do not create directories if lockdown is in affect
+    - gtp: fix bad unlock balance in gtp_encap_enable_socket
+    - macvlan: do not assume mac_header is set in macvlan_broadcast()
+    - net: dsa: mv88e6xxx: Preserve priority when setting CPU port.
+    - net: freescale: fec: Fix ethtool -d runtime PM
+    - net: stmmac: dwmac-sun8i: Allow all RGMII modes
+    - net: stmmac: dwmac-sunxi: Allow all RGMII modes
+    - net: stmmac: Fixed link does not need MDIO Bus
+    - net: usb: lan78xx: fix possible skb leak
+    - pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
+    - sch_cake: avoid possible divide by zero in cake_enqueue()
+    - sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
+    - tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
+    - vxlan: fix tos value before xmit
+    - mlxsw: spectrum_qdisc: Ignore grafting of invisible FIFO
+    - net: sch_prio: When ungrafting, replace with FIFO
+    - vlan: fix memory leak in vlan_dev_set_egress_priority
+    - vlan: vlan_changelink() should propagate errors
+    - macb: Don't unregister clks unconditionally
+    - net/mlx5: Move devlink registration before interfaces load
+    - net: dsa: mv88e6xxx: force cmode write on 6141/6341
+    - net/mlx5e: Always print health reporter message to dmesg
+    - net/mlx5: DR, No need for atomic refcount for internal SW steering resources
+    - net/mlx5e: Fix hairpin RSS table size
+    - net/mlx5: DR, Init lists that are used in rule's member
+    - usb: dwc3: gadget: Fix request complete check
+    - USB: core: fix check for duplicate endpoints
+    - USB: serial: option: add Telit ME910G1 0x110a composition
+    - usb: missing parentheses in USE_NEW_SCHEME
+    - Linux 5.4.11
+
+  * Focal update: v5.4.10 upstream stable release (LP: #1860127)
+    - powerpc/pmem: Fix kernel crash due to wrong range value usage in
+      flush_dcache_range
+    - Linux 5.4.10
+
+  * Focal update: v5.4.9 upstream stable release (LP: #1860125)
+    - drm/mcde: dsi: Fix invalid pointer dereference if panel cannot be found
+    - nvme_fc: add module to ops template to allow module references
+    - nvme-fc: fix double-free scenarios on hw queues
+    - drm/amdgpu: add check before enabling/disabling broadcast mode
+    - drm/amdgpu: add header line for power profile on Arcturus
+    - drm/amdgpu: add cache flush workaround to gfx8 emit_fence
+    - drm/amd/display: Map DSC resources 1-to-1 if numbers of OPPs and DSCs are
+      equal
+    - drm/amd/display: Fixed kernel panic when booting with DP-to-HDMI dongle
+    - drm/amd/display: Change the delay time before enabling FEC
+    - drm/amd/display: Reset steer fifo before unblanking the stream
+    - drm/amd/display: update dispclk and dppclk vco frequency
+    - nvme/pci: Fix write and poll queue types
+    - nvme/pci: Fix read queue count
+    - iio: st_accel: Fix unused variable warning
+    - iio: adc: max9611: Fix too short conversion time delay
+    - PM / devfreq: Fix devfreq_notifier_call returning errno
+    - PM / devfreq: Set scaling_max_freq to max on OPP notifier error
+    - PM / devfreq: Don't fail devfreq_dev_release if not in list
+    - afs: Fix afs_find_server lookups for ipv4 peers
+    - afs: Fix SELinux setting security label on /afs
+    - RDMA/cma: add missed unregister_pernet_subsys in init failure
+    - rxe: correctly calculate iCRC for unaligned payloads
+    - scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
+    - scsi: qla2xxx: Use explicit LOGO in target mode
+    - scsi: qla2xxx: Drop superfluous INIT_WORK of del_work
+    - scsi: qla2xxx: Don't call qlt_async_event twice
+    - scsi: qla2xxx: Fix PLOGI payload and ELS IOCB dump length
+    - scsi: qla2xxx: Configure local loop for N2N target
+    - scsi: qla2xxx: Send Notify ACK after N2N PLOGI
+    - scsi: qla2xxx: Don't defer relogin unconditonally
+    - scsi: qla2xxx: Ignore PORT UPDATE after N2N PLOGI
+    - scsi: iscsi: qla4xxx: fix double free in probe
+    - scsi: libsas: stop discovering if oob mode is disconnected
+    - scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
+    - staging/wlan-ng: add CRC32 dependency in Kconfig
+    - drm/nouveau: Move the declaration of struct nouveau_conn_atom up a bit
+    - drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware
+    - drm/nouveau/kms/nv50-: fix panel scaling
+    - usb: gadget: fix wrong endpoint desc
+    - net: make socket read/write_iter() honor IOCB_NOWAIT
+    - afs: Fix mountpoint parsing
+    - afs: Fix creation calls in the dynamic root to fail with EOPNOTSUPP
+    - raid5: need to set STRIPE_HANDLE for batch head
+    - md: raid1: check rdev before reference in raid1_sync_request func
+    - s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
+    - s390/cpum_sf: Avoid SBD overflow condition in irq handler
+    - RDMA/counter: Prevent auto-binding a QP which are not tracked with res
+    - IB/mlx4: Follow mirror sequence of device add during device removal
+    - IB/mlx5: Fix steering rule of drop and count
+    - xen-blkback: prevent premature module unload
+    - xen/balloon: fix ballooned page accounting without hotplug enabled
+    - ALSA: hda/realtek - Add Bass Speaker and fixed dac for bass speaker
+    - ALSA: hda/realtek - Enable the bass speaker of ASUS UX431FLC
+    - ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
+    - tcp: fix data-race in tcp_recvmsg()
+    - shmem: pin the file in shmem_fault() if mmap_sem is dropped
+    - taskstats: fix data-race
+    - ALSA: hda - Downgrade error message for single-cmd fallback
+    - netfilter: nft_tproxy: Fix port selector on Big Endian
+    - block: add bio_truncate to fix guard_bio_eod
+    - mm: drop mmap_sem before calling balance_dirty_pages() in write fault
+    - ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
+    - ALSA: usb-audio: fix set_format altsetting sanity check
+    - ALSA: hda - Apply sync-write workaround to old Intel platforms, too
+    - ALSA: hda/realtek - Add headset Mic no shutup for ALC283
+    - drm/sun4i: hdmi: Remove duplicate cleanup calls
+    - drm/amdgpu/smu: add metrics table lock
+    - drm/amdgpu/smu: add metrics table lock for arcturus (v2)
+    - drm/amdgpu/smu: add metrics table lock for navi (v2)
+    - drm/amdgpu/smu: add metrics table lock for vega20 (v2)
+    - MIPS: BPF: Disable MIPS32 eBPF JIT
+    - MIPS: BPF: eBPF JIT: check for MIPS ISA compliance in Kconfig
+    - MIPS: Avoid VDSO ABI breakage due to global register variable
+    - media: pulse8-cec: fix lost cec_transmit_attempt_done() call
+    - media: cec: CEC 2.0-only bcast messages were ignored
+    - media: cec: avoid decrementing transmit_queue_sz if it is 0
+    - media: cec: check 'transmit_in_progress', not 'transmitting'
+    - mm/memory_hotplug: shrink zones when offlining memory
+    - mm/zsmalloc.c: fix the migrated zspage statistics.
+    - memcg: account security cred as well to kmemcg
+    - mm: move_pages: return valid node id in status if the page is already on the
+      target node
+    - mm/oom: fix pgtables units mismatch in Killed process message
+    - ocfs2: fix the crash due to call ocfs2_get_dlm_debug once less
+    - pstore/ram: Write new dumps to start of recycled zones
+    - pstore/ram: Fix error-path memory leak in persistent_ram_new() callers
+    - gcc-plugins: make it possible to disable CONFIG_GCC_PLUGINS again
+    - locks: print unsigned ino in /proc/locks
+    - selftests/seccomp: Zero out seccomp_notif
+    - seccomp: Check that seccomp_notif is zeroed out by the user
+    - samples/seccomp: Zero out members based on seccomp_notif_sizes
+    - selftests/seccomp: Catch garbage on SECCOMP_IOCTL_NOTIF_RECV
+    - dmaengine: Fix access to uninitialized dma_slave_caps
+    - dmaengine: dma-jz4780: Also break descriptor chains on JZ4725B
+    - Btrfs: fix infinite loop during nocow writeback due to race
+    - compat_ioctl: block: handle Persistent Reservations
+    - compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
+    - compat_ioctl: block: handle BLKGETZONESZ/BLKGETNRZONES
+    - bpf: Fix precision tracking for unbounded scalars
+    - ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
+    - ata: ahci_brcm: Fix AHCI resources management
+    - ata: ahci_brcm: Add missing clock management during recovery
+    - ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
+    - libata: Fix retrieving of active qcs
+    - gpio: xtensa: fix driver build
+    - gpiolib: fix up emulated open drain outputs
+    - clocksource: riscv: add notrace to riscv_sched_clock
+    - riscv: ftrace: correct the condition logic in function graph tracer
+    - rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30
+    - tracing: Fix lock inversion in trace_event_enable_tgid_record()
+    - tracing: Avoid memory leak in process_system_preds()
+    - tracing: Have the histogram compare functions convert to u64 first
+    - tracing: Fix endianness bug in histogram trigger
+    - samples/trace_printk: Wait for IRQ work to finish
+    - io_uring: use current task creds instead of allocating a new one
+    - mm/gup: fix memory leak in __gup_benchmark_ioctl
+    - apparmor: fix aa_xattrs_match() may sleep while holding a RCU lock
+    - dmaengine: virt-dma: Fix access after free in vchan_complete()
+    - gen_initramfs_list.sh: fix 'bad variable name' error
+    - ALSA: cs4236: fix error return comparison of an unsigned integer
+    - ALSA: pcm: Yet another missing check of non-cached buffer type
+    - ALSA: firewire-motu: Correct a typo in the clock proc string
+    - scsi: lpfc: Fix rpi release when deleting vport
+    - exit: panic before exit_mm() on global init exit
+    - ftrace: Avoid potential division by zero in function profiler
+    - spi: spi-fsl-dspi: Fix 16-bit word order in 32-bit XSPI mode
+    - drm/msm: include linux/sched/task.h
+    - PM / devfreq: Check NULL governor in available_governors_show
+    - sunrpc: fix crash when cache_head become valid before update
+    - arm64: dts: qcom: msm8998-clamshell: Remove retention idle state
+    - nfsd4: fix up replay_matches_cache()
+    - powerpc: Chunk calls to flush_dcache_range in arch_*_memory
+    - HID: i2c-hid: Reset ALPS touchpads on resume
+    - net/sched: annotate lockless accesses to qdisc->empty
+    - kernel/module.c: wakeup processes in module_wq on module unload
+    - ACPI: sysfs: Change ACPI_MASKABLE_GPE_MAX to 0x100
+    - perf callchain: Fix segfault in thread__resolve_callchain_sample()
+    - iommu/vt-d: Remove incorrect PSI capability check
+    - of: overlay: add_changeset_property() memory leak
+    - cifs: Fix potential softlockups while refreshing DFS cache
+    - firmware: arm_scmi: Avoid double free in error flow
+    - xfs: don't check for AG deadlock for realtime files in bunmapi
+    - platform/x86: pmc_atom: Add Siemens CONNECT X300 to critclk_systems DMI
+      table
+    - netfilter: nf_queue: enqueue skbs with NULL dst
+    - net, sysctl: Fix compiler warning when only cBPF is present
+    - watchdog: tqmx86_wdt: Fix build error
+    - regulator: axp20x: Fix axp20x_set_ramp_delay
+    - regulator: bd70528: Remove .set_ramp_delay for bd70528_ldo_ops
+    - spi: uniphier: Fix FIFO threshold
+    - regulator: axp20x: Fix AXP22x ELDO2 regulator enable bitmask
+    - powerpc/mm: Mark get_slice_psize() & slice_addr_is_low() as notrace
+    - Bluetooth: btusb: fix PM leak in error case of setup
+    - Bluetooth: delete a stray unlock
+    - Bluetooth: Fix memory leak in hci_connect_le_scan
+    - arm64: dts: meson-gxl-s905x-khadas-vim: fix uart_A bluetooth node
+    - arm64: dts: meson-gxm-khadas-vim2: fix uart_A bluetooth node
+    - media: flexcop-usb: ensure -EIO is returned on error condition
+    - regulator: ab8500: Remove AB8505 USB regulator
+    - media: usb: fix memory leak in af9005_identify_state
+    - dt-bindings: clock: renesas: rcar-usb2-clock-sel: Fix typo in example
+    - arm64: dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed
+      warning
+    - phy: renesas: rcar-gen3-usb2: Use platform_get_irq_optional() for optional
+      irq
+    - tty: serial: msm_serial: Fix lockup for sysrq and oops
+    - cifs: Fix lookup of root ses in DFS referral cache
+    - fs: cifs: Fix atime update check vs mtime
+    - fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
+    - ath9k_htc: Modify byte order for an error message
+    - ath9k_htc: Discard undersized packets
+    - drm/i915/execlists: Fix annotation for decoupling virtual request
+    - xfs: periodically yield scrub threads to the scheduler
+    - net: add annotations on hh->hh_len lockless accesses
+    - ubifs: ubifs_tnc_start_commit: Fix OOB in layout_in_gaps
+    - btrfs: get rid of unique workqueue helper functions
+    - Btrfs: only associate the locked page with one async_chunk struct
+    - s390/smp: fix physical to logical CPU map for SMT
+    - mm/sparse.c: mark populate_section_memmap as __meminit
+    - xen/blkback: Avoid unmapping unmapped grant pages
+    - lib/ubsan: don't serialize UBSAN report
+    - efi: Don't attempt to map RCI2 config table if it doesn't exist
+    - perf/x86/intel/bts: Fix the use of page_private()
+    - net: annotate lockless accesses to sk->sk_pacing_shift
+    - hsr: avoid debugfs warning message when module is remove
+    - hsr: fix error handling routine in hsr_dev_finalize()
+    - hsr: fix a race condition in node list insertion and deletion
+    - mm/hugetlb: defer freeing of huge pages if in non-task context
+    - Linux 5.4.9
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Update package name in getabis repo list
+    - [Packaging] Fix ubuntu-regression-suite python dependency for hwe kernel
+    - [Config] Fix typo in annotations file
+    - [Packaging] move linux-doc and linux-libc-dev stubs to debian.master
+    - update dkms package versions
+
+  * Miscellaneous upstream changes
+    - ASoC: SOF: Intel: fix HDA codec driver probe with multiple controllers
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Thu, 30 Jan 2020 16:34:17 +0100
+
+linux-5.4 (5.4.0-12.15) focal; urgency=medium
+
+  * No change, rebuild to use new binutils
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Tue, 21 Jan 2020 14:43:14 +0100
+
+linux-5.4 (5.4.0-11.14) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Update ubuntu-regression-suite dependency to python2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 09 Jan 2020 09:35:50 -0600
+
+linux-5.4 (5.4.0-10.13) focal; urgency=medium
+
+  * focal/linux-5.4: 5.4.0-10.13 -proposed tracker (LP: #1858880)
+
+  * PAN is broken for execute-only user mappings on ARMv8 (LP: #1858815)
+    - arm64: Revert support for execute-only user mappings
+
+  * linux build and autopkg tests need to use python2 instead of python
+    (LP: #1858487)
+    - [Packaging] Remove python-dev build dependency
+
+  * Support ath10k hardware rfkill (LP: #1858166)
+    - ath10k: add support for hardware rfkill
+
+  * [SRU][B/OEM-B/OEM-OSP1/D/E/F] Add LG I2C touchscreen multitouch support
+    (LP: #1857541)
+    - SAUCE: HID: multitouch: Add LG MELF0410 I2C touchscreen support
+
+  * usb-audio: the mic can't record any sound after resume on Dell Dock WD19
+    (LP: #1857496)
+    - ALSA: usb-audio: set the interface format after resume on Dell WD19
+
+  * alsa/sof: load different firmware on different platforms (LP: #1857409)
+    - ASoC: SOF: Intel: hda: use fallback for firmware name
+    - ASoC: Intel: acpi-match: split CNL tables in three
+    - ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary names.
+
+  * Make vfio-pci built-in or xhci_hcd optional (LP: #1770845)
+    - [Config]: built-in VFIO_PCI for amd64
+
+  * multi-zone raid0 corruption (LP: #1850540)
+    - SAUCE: md/raid0: Link to wiki with guidance on multi-zone RAID0 layout
+      migration
+
+  * [hpre-1017]sync mainline kernel 5.4rc3 hpre patchset into ubuntu HWE kernel
+    branch (LP: #1850117) // [acc-1130]sync mainline kernel 5.5rc1 acc  patchset
+    into ubuntu HWE kernel branch (LP: #1854549)
+    - [Config] Enable HISI crypto drivers and update previous module
+
+  * [hpre-1017]sync mainline kernel 5.4rc3 hpre patchset into ubuntu HWE kernel
+    branch (LP: #1850117)
+    - crypto: hisilicon - add HiSilicon HPRE accelerator
+    - crypto: hisilicon - add SRIOV support for HPRE
+    - crypto: hisilicon - Add debugfs for HPRE
+    - MAINTAINERS: Add maintainer for HiSilicon HPRE driver
+    - Documentation: Add debugfs doc for hisi_hpre
+
+  * [acc-1130]sync mainline kernel 5.5rc1 acc  patchset into ubuntu HWE kernel
+    branch (LP: #1854549)
+    - crypto: hisilicon - allow compile-testing on x86
+    - crypto: hisilicon - merge sgl support to hisi_qm module
+    - crypto: hisilicon - add sgl_sge_nr module param for zip
+    - crypto: hisilicon - fix large sgl memory allocation problem when disable
+      smmu
+    - crypto: hisilicon - misc fix about sgl
+    - crypto: hisilicon - select NEED_SG_DMA_LENGTH in qm Kconfig
+    - crypto: hisilicon: Fix misuse of GENMASK macro
+    - crypto: hisilicon - tiny fix about QM/ZIP error callback print
+    - crypto: hisilicon - Fix using plain integer as NULL pointer
+    - crypto: hisilicon - fix param should be static when not external.
+    - crypto: hisilicon - fix endianness verification problem of QM
+    - crypto: hisilicon - use sgl API to get sgl dma addr and len
+    - crypto: hisilicon - fix to return sub-optimal device when best device has no
+      qps
+    - crypto: hisilicon - replace #ifdef with IS_ENABLED for CONFIG_NUMA
+    - crypto: hisilicon - add vfs_num module param for zip
+    - crypto: hisilicon - no need to check return value of debugfs_create
+      functions
+    - crypto: hisilicon - add HiSilicon SEC V2 driver
+    - crypto: hisilicon - add SRIOV for HiSilicon SEC
+    - crypto: hisilicon - add DebugFS for HiSilicon SEC
+    - crypto: hisilicon - fix a NULL vs IS_ERR() bug in sec_create_qp_ctx()
+    - hwrng: hisi - add HiSilicon TRNG driver support
+    - MAINTAINERS: Add maintainer for HiSilicon TRNG V2 driver
+    - MAINTAINERS: Add maintainer for HiSilicon SEC V2 driver
+    - Documentation: add DebugFS doc for HiSilicon SEC
+
+  * [sas-1130]enable sas DFX Function for 1620 soc (LP: #1854548)
+    - scsi: hisi_sas: Don't create debugfs dump folder twice
+    - scsi: hisi_sas: Set the BIST init value before enabling BIST
+    - scsi: hisi_sas: Add timestamp for a debugfs dump
+    - scsi: hisi_sas: Add debugfs file structure for CQ
+    - scsi: hisi_sas: Add debugfs file structure for DQ
+    - scsi: hisi_sas: Add debugfs file structure for registers
+    - scsi: hisi_sas: Add debugfs file structure for port
+    - scsi: hisi_sas: Add debugfs file structure for IOST
+    - scsi: hisi_sas: Add debugfs file structure for ITCT
+    - scsi: hisi_sas: Add debugfs file structure for IOST cache
+    - scsi: hisi_sas: Add debugfs file structure for ITCT cache
+    - scsi: hisi_sas: Allocate memory for multiple dumps of debugfs
+    - scsi: hisi_sas: Add module parameter for debugfs dump count
+    - scsi: hisi_sas: Add ability to have multiple debugfs dumps
+    - scsi: hisi_sas: Record the phy down event in debugfs
+    - scsi: hisi_sas: Relocate call to hisi_sas_debugfs_exit()
+
+  * scsi: hisi_sas: Return directly if init hardware failed (LP: #1855958)
+    - scsi: hisi_sas: Return directly if init hardware failed
+
+  * [sas-1126]scsi: hisi_sas: use wait_for_completion_timeout() when clearing
+    ITCT (LP: #1853999)
+    - scsi: hisi_sas: use wait_for_completion_timeout() when clearing ITCT
+
+  * Focal update: v5.4.8 upstream stable release (LP: #1858429)
+    - Revert "MIPS: futex: Restore \n after sync instructions"
+    - Revert "MIPS: futex: Emit Loongson3 sync workarounds within asm"
+    - scsi: lpfc: Fix spinlock_irq issues in lpfc_els_flush_cmd()
+    - scsi: lpfc: Fix discovery failures when target device connectivity bounces
+    - scsi: mpt3sas: Fix clear pending bit in ioctl status
+    - scsi: lpfc: Fix locking on mailbox command completion
+    - scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA
+    - gpio: mxc: Only get the second IRQ when there is more than one IRQ
+    - scsi: lpfc: Fix list corruption in lpfc_sli_get_iocbq
+    - Input: atmel_mxt_ts - disable IRQ across suspend
+    - f2fs: fix to update time in lazytime mode
+    - powerpc/papr_scm: Fix an off-by-one check in papr_scm_meta_{get, set}
+    - tools/power/x86/intel-speed-select: Remove warning for unused result
+    - platform/x86: peaq-wmi: switch to using polled mode of input devices
+    - iommu: rockchip: Free domain on .domain_free
+    - iommu/tegra-smmu: Fix page tables in > 4 GiB memory
+    - dmaengine: xilinx_dma: Clear desc_pendingcount in xilinx_dma_reset
+    - scsi: target: compare full CHAP_A Algorithm strings
+    - scsi: lpfc: Fix hardlockup in lpfc_abort_handler
+    - scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices
+    - scsi: csiostor: Don't enable IRQs too early
+    - scsi: hisi_sas: Replace in_softirq() check in hisi_sas_task_exec()
+    - scsi: hisi_sas: Delete the debugfs folder of hisi_sas when the probe fails
+    - powerpc/pseries: Mark accumulate_stolen_time() as notrace
+    - powerpc/pseries: Don't fail hash page table insert for bolted mapping
+    - Input: st1232 - do not reset the chip too early
+    - selftests/powerpc: Fixup clobbers for TM tests
+    - powerpc/tools: Don't quote $objdump in scripts
+    - dma-debug: add a schedule point in debug_dma_dump_mappings()
+    - dma-mapping: Add vmap checks to dma_map_single()
+    - dma-mapping: fix handling of dma-ranges for reserved memory (again)
+    - dmaengine: fsl-qdma: Handle invalid qdma-queue0 IRQ
+    - leds: lm3692x: Handle failure to probe the regulator
+    - leds: an30259a: add a check for devm_regmap_init_i2c
+    - leds: trigger: netdev: fix handling on interface rename
+    - clocksource/drivers/asm9260: Add a check for of_clk_get
+    - clocksource/drivers/timer-of: Use unique device name instead of timer
+    - dtc: Use pkg-config to locate libyaml
+    - selftests/powerpc: Skip tm-signal-sigreturn-nt if TM not available
+    - powerpc/security/book3s64: Report L1TF status in sysfs
+    - powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning
+    - ext4: update direct I/O read lock pattern for IOCB_NOWAIT
+    - ext4: iomap that extends beyond EOF should be marked dirty
+    - jbd2: Fix statistics for the number of logged blocks
+    - scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and WRITE(6)
+    - scsi: lpfc: Fix unexpected error messages during RSCN handling
+    - scsi: lpfc: Fix duplicate unreg_rpi error in port offline flow
+    - f2fs: fix to update dir's i_pino during cross_rename
+    - clk: qcom: smd: Add missing pnoc clock
+    - clk: qcom: Allow constant ratio freq tables for rcg
+    - clk: clk-gpio: propagate rate change to parent
+    - irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary
+    - irqchip: ingenic: Error out if IRQ domain creation failed
+    - dma-direct: check for overflows on 32 bit DMA addresses
+    - fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
+    - iommu/arm-smmu-v3: Don't display an error when IRQ lines are missing
+    - i2c: stm32f7: fix & reorder remove & probe error handling
+    - iomap: fix return value of iomap_dio_bio_actor on 32bit systems
+    - Input: ili210x - handle errors from input_mt_init_slots()
+    - scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer dereferences
+    - scsi: zorro_esp: Limit DMA transfers to 65536 bytes (except on Fastlane)
+    - PCI: rpaphp: Fix up pointer to first drc-info entry
+    - scsi: ufs: fix potential bug which ends in system hang
+    - powerpc/pseries/cmm: Implement release() function for sysfs device
+    - PCI: rpaphp: Don't rely on firmware feature to imply drc-info support
+    - PCI: rpaphp: Annotate and correctly byte swap DRC properties
+    - PCI: rpaphp: Correctly match ibm, my-drc-index to drc-name when using drc-
+      info
+    - powerpc/security: Fix wrong message when RFI Flush is disable
+    - powerpc/eeh: differentiate duplicate detection message
+    - powerpc/book3s/mm: Update Oops message to print the correct translation in
+      use
+    - scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE
+    - clk: pxa: fix one of the pxa RTC clocks
+    - bcache: at least try to shrink 1 node in bch_mca_scan()
+    - HID: quirks: Add quirk for HP MSU1465 PIXART OEM mouse
+    - dt-bindings: Improve validation build error handling
+    - HID: logitech-hidpp: Silence intermittent get_battery_capacity errors
+    - ARM: 8937/1: spectre-v2: remove Brahma-B53 from hardening
+    - libnvdimm/btt: fix variable 'rc' set but not used
+    - HID: Improve Windows Precision Touchpad detection.
+    - HID: rmi: Check that the RMI_STARTED bit is set before unregistering the RMI
+      transport device
+    - watchdog: imx7ulp: Fix reboot hang
+    - watchdog: prevent deferral of watchdogd wakeup on RT
+    - watchdog: Fix the race between the release of watchdog_core_data and cdev
+    - powerpc/fixmap: Use __fix_to_virt() instead of fix_to_virt()
+    - scsi: pm80xx: Fix for SATA device discovery
+    - scsi: ufs: Fix error handing during hibern8 enter
+    - scsi: scsi_debug: num_tgts must be >= 0
+    - scsi: NCR5380: Add disconnect_mask module parameter
+    - scsi: target: core: Release SPC-2 reservations when closing a session
+    - scsi: ufs: Fix up auto hibern8 enablement
+    - scsi: iscsi: Don't send data to unbound connection
+    - scsi: target: iscsi: Wait for all commands to finish before freeing a
+      session
+    - f2fs: Fix deadlock in f2fs_gc() context during atomic files handling
+    - habanalabs: skip VA block list update in reset flow
+    - gpio/mpc8xxx: fix qoriq GPIO reading
+    - platform/x86: intel_pmc_core: Fix the SoC naming inconsistency
+    - gpio: mpc8xxx: Don't overwrite default irq_set_type callback
+    - gpio: lynxpoint: Setup correct IRQ handlers
+    - tools/power/x86/intel-speed-select: Ignore missing config level
+    - Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic
+    - apparmor: fix unsigned len comparison with less than zero
+    - drm/amdgpu: Call find_vma under mmap_sem
+    - scripts/kallsyms: fix definitely-lost memory leak
+    - powerpc: Don't add -mabi= flags when building with Clang
+    - cifs: Fix use-after-free bug in cifs_reconnect()
+    - um: virtio: Keep reading on -EAGAIN
+    - io_uring: io_allocate_scq_urings() should return a sane state
+    - of: unittest: fix memory leak in attach_node_and_children
+    - cdrom: respect device capabilities during opening action
+    - cifs: move cifsFileInfo_put logic into a work-queue
+    - perf script: Fix brstackinsn for AUXTRACE
+    - perf regs: Make perf_reg_name() return "unknown" instead of NULL
+    - s390/zcrypt: handle new reply code FILTERED_BY_HYPERVISOR
+    - mailbox: imx: Clear the right interrupts at shutdown
+    - libfdt: define INT32_MAX and UINT32_MAX in libfdt_env.h
+    - s390/unwind: filter out unreliable bogus %r14
+    - s390/cpum_sf: Check for SDBT and SDB consistency
+    - ocfs2: fix passing zero to 'PTR_ERR' warning
+    - mailbox: imx: Fix Tx doorbell shutdown path
+    - s390: disable preemption when switching to nodat stack with CALL_ON_STACK
+    - selftests: vm: add fragment CONFIG_TEST_VMALLOC
+    - mm/hugetlbfs: fix error handling when setting up mounts
+    - kernel: sysctl: make drop_caches write-only
+    - userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
+    - Revert "powerpc/vcpu: Assume dedicated processors as non-preempt"
+    - sctp: fix err handling of stream initialization
+    - md: make sure desc_nr less than MD_SB_DISKS
+    - Revert "iwlwifi: assign directly to iwl_trans->cfg in QuZ detection"
+    - netfilter: ebtables: compat: reject all padding in matches/watchers
+    - 6pack,mkiss: fix possible deadlock
+    - powerpc: Fix __clear_user() with KUAP enabled
+    - net/smc: add fallback check to connect()
+    - netfilter: bridge: make sure to pull arp header in br_nf_forward_arp()
+    - inetpeer: fix data-race in inet_putpeer / inet_putpeer
+    - net: add a READ_ONCE() in skb_peek_tail()
+    - net: icmp: fix data-race in cmp_global_allow()
+    - hrtimer: Annotate lockless access to timer->state
+    - tomoyo: Don't use nifty names on sockets.
+    - uaccess: disallow > INT_MAX copy sizes
+    - drm: limit to INT_MAX in create_blob ioctl
+    - xfs: fix mount failure crash on invalid iclog memory access
+    - cxgb4/cxgb4vf: fix flow control display for auto negotiation
+    - net: dsa: bcm_sf2: Fix IP fragment location and behavior
+    - net/mlxfw: Fix out-of-memory error in mfa2 flash burning
+    - net: phy: aquantia: add suspend / resume ops for AQR105
+    - net/sched: act_mirred: Pull mac prior redir to non mac_header_xmit device
+    - net/sched: add delete_empty() to filters and use it in cls_flower
+    - net_sched: sch_fq: properly set sk->sk_pacing_status
+    - net: stmmac: dwmac-meson8b: Fix the RGMII TX delay on Meson8b/8m2 SoCs
+    - ptp: fix the race between the release of ptp_clock and cdev
+    - tcp: Fix highest_sack and highest_sack_seq
+    - udp: fix integer overflow while computing available space in sk_rcvbuf
+    - bnxt_en: Fix MSIX request logic for RDMA driver.
+    - bnxt_en: Free context memory in the open path if firmware has been reset.
+    - bnxt_en: Return error if FW returns more data than dump length
+    - bnxt_en: Fix bp->fw_health allocation and free logic.
+    - bnxt_en: Remove unnecessary NULL checks for fw_health
+    - bnxt_en: Fix the logic that creates the health reporters.
+    - bnxt_en: Add missing devlink health reporters for VFs.
+    - mlxsw: spectrum_router: Skip loopback RIFs during MAC validation
+    - mlxsw: spectrum: Use dedicated policer for VRRP packets
+    - net: add bool confirm_neigh parameter for dst_ops.update_pmtu
+    - ip6_gre: do not confirm neighbor when do pmtu update
+    - gtp: do not confirm neighbor when do pmtu update
+    - net/dst: add new function skb_dst_update_pmtu_no_confirm
+    - tunnel: do not confirm neighbor when do pmtu update
+    - vti: do not confirm neighbor when do pmtu update
+    - sit: do not confirm neighbor when do pmtu update
+    - net/dst: do not confirm neighbor for vxlan and geneve pmtu update
+    - net: dsa: sja1105: Reconcile the meaning of TPID and TPID2 for E/T and
+      P/Q/R/S
+    - net: marvell: mvpp2: phylink requires the link interrupt
+    - gtp: fix wrong condition in gtp_genl_dump_pdp()
+    - gtp: avoid zero size hashtable
+    - bonding: fix active-backup transition after link failure
+    - tcp: do not send empty skb from tcp_write_xmit()
+    - tcp/dccp: fix possible race __inet_lookup_established()
+    - hv_netvsc: Fix tx_table init in rndis_set_subchannel()
+    - gtp: fix an use-after-free in ipv4_pdp_find()
+    - gtp: do not allow adding duplicate tid and ms_addr pdp context
+    - bnxt: apply computed clamp value for coalece parameter
+    - ipv6/addrconf: only check invalid header values when NETLINK_F_STRICT_CHK is
+      set
+    - net: phylink: fix interface passed to mac_link_up
+    - net: ena: fix napi handler misbehavior when the napi budget is zero
+    - vhost/vsock: accept only packets with the right dst_cid
+    - mmc: sdhci-of-esdhc: fix up erratum A-008171 workaround
+    - mmc: sdhci-of-esdhc: re-implement erratum A-009204 workaround
+    - mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
+    - Linux 5.4.8
+
+  * Focal update: v5.4.7 upstream stable release (LP: #1858428) // Focal update:
+    v5.4.8 upstream stable release (LP: #1858429)
+    - [Config] updateconfigs following v5.4.7 stable update
+
+  * Focal update: v5.4.7 upstream stable release (LP: #1858428)
+    - af_packet: set defaule value for tmo
+    - fjes: fix missed check in fjes_acpi_add
+    - mod_devicetable: fix PHY module format
+    - net: dst: Force 4-byte alignment of dst_metrics
+    - net: gemini: Fix memory leak in gmac_setup_txqs
+    - net: hisilicon: Fix a BUG trigered by wrong bytes_compl
+    - net: nfc: nci: fix a possible sleep-in-atomic-context bug in
+      nci_uart_tty_receive()
+    - net: phy: ensure that phy IDs are correctly typed
+    - net: qlogic: Fix error paths in ql_alloc_large_buffers()
+    - net-sysfs: Call dev_hold always in rx_queue_add_kobject
+    - net: usb: lan78xx: Fix suspend/resume PHY register access error
+    - nfp: flower: fix stats id allocation
+    - qede: Disable hardware gro when xdp prog is installed
+    - qede: Fix multicast mac configuration
+    - sctp: fix memleak on err handling of stream initialization
+    - sctp: fully initialize v4 addr in some functions
+    - selftests: forwarding: Delete IPv6 address at the end
+    - neighbour: remove neigh_cleanup() method
+    - bonding: fix bond_neigh_init()
+    - dpaa2-ptp: fix double free of the ptp_qoriq IRQ
+    - mlxsw: spectrum_router: Remove unlikely user-triggerable warning
+    - net: ethernet: ti: davinci_cpdma: fix warning "device driver frees DMA
+      memory with different size"
+    - net: stmmac: platform: Fix MDIO init for platforms without PHY
+    - net: dsa: b53: Fix egress flooding settings
+    - NFC: nxp-nci: Fix probing without ACPI
+    - btrfs: don't double lock the subvol_sem for rename exchange
+    - btrfs: do not call synchronize_srcu() in inode_tree_del
+    - Btrfs: make tree checker detect checksum items with overlapping ranges
+    - btrfs: return error pointer from alloc_test_extent_buffer
+    - Btrfs: fix missing data checksums after replaying a log tree
+    - btrfs: send: remove WARN_ON for readonly mount
+    - btrfs: abort transaction after failed inode updates in create_subvol
+    - btrfs: skip log replay on orphaned roots
+    - btrfs: do not leak reloc root if we fail to read the fs root
+    - btrfs: handle ENOENT in btrfs_uuid_tree_iterate
+    - Btrfs: fix removal logic of the tree mod log that leads to use-after-free
+      issues
+    - ALSA: pcm: Avoid possible info leaks from PCM stream buffers
+    - ALSA: hda/ca0132 - Keep power on during processing DSP response
+    - ALSA: hda/ca0132 - Avoid endless loop
+    - ALSA: hda/ca0132 - Fix work handling in delayed HP detection
+    - drm/vc4/vc4_hdmi: fill in connector info
+    - drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
+    - drm: mst: Fix query_payload ack reply struct
+    - drm/mipi-dbi: fix a loop in debugfs code
+    - drm/panel: Add missing drm_panel_init() in panel drivers
+    - drm: exynos: exynos_hdmi: use cec_notifier_conn_(un)register
+    - drm: Use EOPNOTSUPP, not ENOTSUPP
+    - drm/amd/display: verify stream link before link test
+    - drm/bridge: analogix-anx78xx: silence -EPROBE_DEFER warnings
+    - drm/amd/display: OTC underflow fix
+    - iio: max31856: add missing of_node and parent references to iio_dev
+    - iio: light: bh1750: Resolve compiler warning and make code more readable
+    - drm/amdgpu/sriov: add ring_stop before ring_create in psp v11 code
+    - drm/amdgpu: grab the id mgr lock while accessing passid_mapping
+    - drm/ttm: return -EBUSY on pipelining with no_gpu_wait (v2)
+    - drm/amd/display: Rebuild mapped resources after pipe split
+    - ath10k: add cleanup in ath10k_sta_state()
+    - drm/amd/display: Handle virtual signal type in disable_link()
+    - ath10k: Check if station exists before forwarding tx airtime report
+    - spi: Add call to spi_slave_abort() function when spidev driver is released
+    - drm/meson: vclk: use the correct G12A frac max value
+    - staging: rtl8192u: fix multiple memory leaks on error path
+    - staging: rtl8188eu: fix possible null dereference
+    - rtlwifi: prevent memory leak in rtl_usb_probe
+    - libertas: fix a potential NULL pointer dereference
+    - Revert "pinctrl: sh-pfc: r8a77990: Fix MOD_SEL1 bit30 when using SSI_SCK2
+      and SSI_WS2"
+    - Revert "pinctrl: sh-pfc: r8a77990: Fix MOD_SEL1 bit31 when using SIM0_D"
+    - ath10k: fix backtrace on coredump
+    - IB/iser: bound protection_sg size by data_sg size
+    - drm/komeda: Workaround for broken FLIP_COMPLETE timestamps
+    - spi: gpio: prevent memory leak in spi_gpio_probe
+    - media: am437x-vpfe: Setting STD to current value is not an error
+    - media: cedrus: fill in bus_info for media device
+    - media: seco-cec: Add a missing 'release_region()' in an error handling path
+    - media: vim2m: Fix abort issue
+    - media: vim2m: Fix BUG_ON in vim2m_device_release()
+    - media: max2175: Fix build error without CONFIG_REGMAP_I2C
+    - media: ov6650: Fix control handler not freed on init error
+    - media: i2c: ov2659: fix s_stream return value
+    - media: ov6650: Fix crop rectangle alignment not passed back
+    - media: i2c: ov2659: Fix missing 720p register config
+    - media: ov6650: Fix stored frame format not in sync with hardware
+    - media: ov6650: Fix stored crop rectangle not in sync with hardware
+    - tools/power/cpupower: Fix initializer override in hsw_ext_cstates
+    - media: venus: core: Fix msm8996 frequency table
+    - ath10k: fix offchannel tx failure when no ath10k_mac_tx_frm_has_freq
+    - media: vimc: Fix gpf in rmmod path when stream is active
+    - drm/amd/display: Set number of pipes to 1 if the second pipe was disabled
+    - pinctrl: devicetree: Avoid taking direct reference to device name string
+    - drm/sun4i: dsi: Fix TCON DRQ set bits
+    - drm/amdkfd: fix a potential NULL pointer dereference (v2)
+    - x86/math-emu: Check __copy_from_user() result
+    - drm/amd/powerplay: A workaround to GPU RESET on APU
+    - selftests/bpf: Correct path to include msg + path
+    - drm/amd/display: set minimum abm backlight level
+    - media: venus: Fix occasionally failures to suspend
+    - rtw88: fix NSS of hw_cap
+    - drm/amd/display: fix struct init in update_bounding_box
+    - usb: renesas_usbhs: add suspend event support in gadget mode
+    - crypto: aegis128-neon - use Clang compatible cflags for ARM
+    - hwrng: omap3-rom - Call clk_disable_unprepare() on exit only if not idled
+    - regulator: max8907: Fix the usage of uninitialized variable in
+      max8907_regulator_probe()
+    - tools/memory-model: Fix data race detection for unordered store and load
+    - media: flexcop-usb: fix NULL-ptr deref in flexcop_usb_transfer_init()
+    - media: cec-funcs.h: add status_req checks
+    - media: meson/ao-cec: move cec_notifier_cec_adap_register after hw setup
+    - drm/bridge: dw-hdmi: Refuse DDC/CI transfers on the internal I2C controller
+    - samples: pktgen: fix proc_cmd command result check logic
+    - block: Fix writeback throttling W=1 compiler warnings
+    - drm/amdkfd: Fix MQD size calculation
+    - MIPS: futex: Emit Loongson3 sync workarounds within asm
+    - mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
+    - drm/drm_vblank: Change EINVAL by the correct errno
+    - selftests/bpf: Fix btf_dump padding test case
+    - libbpf: Fix struct end padding in btf_dump
+    - libbpf: Fix passing uninitialized bytes to setsockopt
+    - net/smc: increase device refcount for added link group
+    - team: call RCU read lock when walking the port_list
+    - media: cx88: Fix some error handling path in 'cx8800_initdev()'
+    - crypto: inside-secure - Fix a maybe-uninitialized warning
+    - crypto: aegis128/simd - build 32-bit ARM for v8 architecture explicitly
+    - misc: fastrpc: fix memory leak from miscdev->name
+    - media: ti-vpe: vpe: Fix Motion Vector vpdma stride
+    - media: ti-vpe: vpe: fix a v4l2-compliance warning about invalid pixel format
+    - media: ti-vpe: vpe: fix a v4l2-compliance failure about frame sequence
+      number
+    - media: ti-vpe: vpe: Make sure YUYV is set as default format
+    - media: ti-vpe: vpe: fix a v4l2-compliance failure causing a kernel panic
+    - media: ti-vpe: vpe: ensure buffers are cleaned up properly in abort cases
+    - drm/amd/display: Properly round nominal frequency for SPD
+    - drm/amd/display: wait for set pipe mcp command completion
+    - media: ti-vpe: vpe: fix a v4l2-compliance failure about invalid sizeimage
+    - drm/amd/display: add new active dongle to existent w/a
+    - syscalls/x86: Use the correct function type in SYSCALL_DEFINE0
+    - drm/amd/display: Fix dongle_caps containing stale information.
+    - extcon: sm5502: Reset registers during initialization
+    - drm/amd/display: Program DWB watermarks from correct state
+    - x86/mm: Use the correct function type for native_set_fixmap()
+    - ath10k: Correct error handling of dma_map_single()
+    - rtw88: coex: Set 4 slot mode for A2DP
+    - drm/bridge: dw-hdmi: Restore audio when setting a mode
+    - perf test: Report failure for mmap events
+    - perf report: Add warning when libunwind not compiled in
+    - perf test: Avoid infinite loop for task exit case
+    - perf vendor events arm64: Fix Hisi hip08 DDRC PMU eventname
+    - usb: usbfs: Suppress problematic bind and unbind uevents.
+    - drm/amd/powerplay: avoid disabling ECC if RAS is enabled for VEGA20
+    - iio: adc: max1027: Reset the device at probe time
+    - Bluetooth: btusb: avoid unused function warning
+    - Bluetooth: missed cpu_to_le16 conversion in hci_init4_req
+    - Bluetooth: Workaround directed advertising bug in Broadcom controllers
+    - Bluetooth: hci_core: fix init for HCI_USER_CHANNEL
+    - bpf/stackmap: Fix deadlock with rq_lock in bpf_get_stack()
+    - x86/mce: Lower throttling MCE messages' priority to warning
+    - drm/amd/display: enable hostvm based on roimmu active for dcn2.1
+    - drm/amd/display: fix header for RN clk mgr
+    - drm/amdgpu: fix amdgpu trace event print string format error
+    - staging: iio: ad9834: add a check for devm_clk_get
+    - power: supply: cpcap-battery: Check voltage before orderly_poweroff
+    - perf tests: Disable bp_signal testing for arm64
+    - selftests/bpf: Make a copy of subtest name
+    - net: hns3: log and clear hardware error after reset complete
+    - RDMA/hns: Fix wrong parameters when initial mtt of srq->idx_que
+    - drm/gma500: fix memory disclosures due to uninitialized bytes
+    - ASoC: soc-pcm: fixup dpcm_prune_paths() loop continue
+    - rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot
+    - RDMA/siw: Fix SQ/RQ drain logic
+    - ipmi: Don't allow device module unload when in use
+    - x86/ioapic: Prevent inconsistent state when moving an interrupt
+    - media: cedrus: Fix undefined shift with a SHIFT_AND_MASK_BITS macro
+    - media: aspeed: set hsync and vsync polarities to normal before starting mode
+      detection
+    - drm/nouveau: Don't grab runtime PM refs for HPD IRQs
+    - media: ov6650: Fix stored frame interval not in sync with hardware
+    - media: ad5820: Define entity function
+    - media: ov5640: Make 2592x1944 mode only available at 15 fps
+    - media: st-mipid02: add a check for devm_gpiod_get_optional
+    - media: imx7-mipi-csis: Add a check for devm_regulator_get
+    - media: aspeed: clear garbage interrupts
+    - media: smiapp: Register sensor after enabling runtime PM on the device
+    - md: no longer compare spare disk superblock events in super_load
+    - staging: wilc1000: potential corruption in wilc_parse_join_bss_param()
+    - md/bitmap: avoid race window between md_bitmap_resize and
+      bitmap_file_clear_bit
+    - drm: Don't free jobs in wait_event_interruptible()
+    - EDAC/amd64: Set grain per DIMM
+    - arm64: psci: Reduce the waiting time for cpu_psci_cpu_kill()
+    - drm/amd/display: setting the DIG_MODE to the correct value.
+    - i40e: initialize ITRN registers with correct values
+    - drm/amd/display: correctly populate dpp refclk in fpga
+    - i40e: Wrong 'Advertised FEC modes' after set FEC to AUTO
+    - net: phy: dp83867: enable robust auto-mdix
+    - drm/tegra: sor: Use correct SOR index on Tegra210
+    - regulator: core: Release coupled_rdevs on regulator_init_coupling() error
+    - ubsan, x86: Annotate and allow __ubsan_handle_shift_out_of_bounds() in
+      uaccess regions
+    - spi: sprd: adi: Add missing lock protection when rebooting
+    - ACPI: button: Add DMI quirk for Medion Akoya E2215T
+    - RDMA/qedr: Fix memory leak in user qp and mr
+    - RDMA/hns: Fix memory leak on 'context' on error return path
+    - RDMA/qedr: Fix srqs xarray initialization
+    - RDMA/core: Set DMA parameters correctly
+    - staging: wilc1000: check if device is initialzied before changing vif
+    - gpu: host1x: Allocate gather copy for host1x
+    - net: dsa: LAN9303: select REGMAP when LAN9303 enable
+    - phy: renesas: phy-rcar-gen2: Fix the array off by one warning
+    - phy: qcom-usb-hs: Fix extcon double register after power cycle
+    - s390/time: ensure get_clock_monotonic() returns monotonic values
+    - s390: add error handling to perf_callchain_kernel
+    - s390/mm: add mm_pxd_folded() checks to pxd_free()
+    - net: hns3: add struct netdev_queue debug info for TX timeout
+    - libata: Ensure ata_port probe has completed before detach
+    - loop: fix no-unmap write-zeroes request behavior
+    - net/mlx5e: Verify that rule has at least one fwd/drop action
+    - pinctrl: sh-pfc: sh7734: Fix duplicate TCLK1_B
+    - ALSA: bebob: expand sleep just after breaking connections for protocol
+      version 1
+    - iio: dln2-adc: fix iio_triggered_buffer_postenable() position
+    - libbpf: Fix error handling in bpf_map__reuse_fd()
+    - Bluetooth: Fix advertising duplicated flags
+    - ALSA: pcm: Fix missing check of the new non-cached buffer type
+    - spi: sifive: disable clk when probe fails and remove
+    - ASoC: SOF: imx: fix reverse CONFIG_SND_SOC_SOF_OF dependency
+    - pinctrl: qcom: sc7180: Add missing tile info in SDC_QDSD_PINGROUP/UFS_RESET
+    - pinctrl: amd: fix __iomem annotation in amd_gpio_irq_handler()
+    - ixgbe: protect TX timestamping from API misuse
+    - cpufreq: sun50i: Fix CPU speed bin detection
+    - media: rcar_drif: fix a memory disclosure
+    - media: v4l2-core: fix touch support in v4l_g_fmt
+    - nvme: introduce "Command Aborted By host" status code
+    - media: staging/imx: Use a shorter name for driver
+    - nvmem: imx-ocotp: reset error status on probe
+    - nvmem: core: fix nvmem_cell_write inline function
+    - ASoC: SOF: topology: set trigger order for FE DAI link
+    - media: vivid: media_device_cleanup was called too early
+    - spi: dw: Fix Designware SPI loopback
+    - bnx2x: Fix PF-VF communication over multi-cos queues.
+    - spi: img-spfi: fix potential double release
+    - ALSA: timer: Limit max amount of slave instances
+    - RDMA/core: Fix return code when modify_port isn't supported
+    - drm: msm: a6xx: fix debug bus register configuration
+    - rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt()
+    - perf probe: Fix to find range-only function instance
+    - perf cs-etm: Fix definition of macro TO_CS_QUEUE_NR
+    - perf probe: Fix to list probe event with correct line number
+    - perf jevents: Fix resource leak in process_mapfile() and main()
+    - perf probe: Walk function lines in lexical blocks
+    - perf probe: Fix to probe an inline function which has no entry pc
+    - perf probe: Fix to show ranges of variables in functions without entry_pc
+    - perf probe: Fix to show inlined function callsite without entry_pc
+    - libsubcmd: Use -O0 with DEBUG=1
+    - perf probe: Fix to probe a function which has no entry pc
+    - perf tools: Fix cross compile for ARM64
+    - perf tools: Splice events onto evlist even on error
+    - drm/amdgpu: disallow direct upload save restore list from gfx driver
+    - drm/amd/powerplay: fix struct init in renoir_print_clk_levels
+    - drm/amdgpu: fix potential double drop fence reference
+    - ice: Check for null pointer dereference when setting rings
+    - xen/gntdev: Use select for DMA_SHARED_BUFFER
+    - perf parse: If pmu configuration fails free terms
+    - perf probe: Skip overlapped location on searching variables
+    - net: avoid potential false sharing in neighbor related code
+    - perf probe: Return a better scope DIE if there is no best scope
+    - perf probe: Fix to show calling lines of inlined functions
+    - perf probe: Skip end-of-sequence and non statement lines
+    - perf probe: Filter out instances except for inlined subroutine and
+      subprogram
+    - libbpf: Fix negative FD close() in xsk_setup_xdp_prog()
+    - s390/bpf: Use kvcalloc for addrs array
+    - cgroup: freezer: don't change task and cgroups status unnecessarily
+    - selftests: proc: Make va_max 1MB
+    - drm/amdgpu: Avoid accidental thread reactivation.
+    - media: exynos4-is: fix wrong mdev and v4l2 dev order in error path
+    - ath10k: fix get invalid tx rate for Mesh metric
+    - fsi: core: Fix small accesses and unaligned offsets via sysfs
+    - selftests: net: Fix printf format warnings on arm
+    - media: pvrusb2: Fix oops on tear-down when radio support is not present
+    - soundwire: intel: fix PDI/stream mapping for Bulk
+    - crypto: atmel - Fix authenc support when it is set to m
+    - ice: delay less
+    - media: si470x-i2c: add missed operations in remove
+    - media: cedrus: Use helpers to access capture queue
+    - media: v4l2-ctrl: Lock main_hdl on operations of requests_queued.
+    - iio: cros_ec_baro: set info_mask_shared_by_all_available field
+    - EDAC/ghes: Fix grain calculation
+    - media: vicodec: media_device_cleanup was called too early
+    - media: vim2m: media_device_cleanup was called too early
+    - spi: pxa2xx: Add missed security checks
+    - ASoC: rt5677: Mark reg RT5677_PWR_ANLG2 as volatile
+    - iio: dac: ad5446: Add support for new AD5600 DAC
+    - bpf, testing: Workaround a verifier failure for test_progs
+    - ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic format constraint
+    - net: dsa: sja1105: Disallow management xmit during switch reset
+    - r8169: respect EEE user setting when restarting network
+    - s390/disassembler: don't hide instruction addresses
+    - net: ethernet: ti: Add dependency for TI_DAVINCI_EMAC
+    - nvme: Discard workaround for non-conformant devices
+    - parport: load lowlevel driver if ports not found
+    - bcache: fix static checker warning in bcache_device_free()
+    - cpufreq: Register drivers only after CPU devices have been registered
+    - qtnfmac: fix debugfs support for multiple cards
+    - qtnfmac: fix invalid channel information output
+    - x86/crash: Add a forward declaration of struct kimage
+    - qtnfmac: fix using skb after free
+    - RDMA/efa: Clear the admin command buffer prior to its submission
+    - tracing: use kvcalloc for tgid_map array allocation
+    - MIPS: ralink: enable PCI support only if driver for mt7621 SoC is selected
+    - tracing/kprobe: Check whether the non-suffixed symbol is notrace
+    - iwlwifi: mvm: fix unaligned read of rx_pkt_status
+    - ASoC: wm8904: fix regcache handling
+    - regulator: core: Let boot-on regulators be powered off
+    - spi: tegra20-slink: add missed clk_unprepare
+    - tun: fix data-race in gro_normal_list()
+    - xhci-pci: Allow host runtime PM as default also for Intel Ice Lake xHCI
+    - crypto: virtio - deal with unsupported input sizes
+    - mmc: tmio: Add MMC_CAP_ERASE to allow erase/discard/trim requests
+    - btrfs: don't prematurely free work in end_workqueue_fn()
+    - btrfs: don't prematurely free work in run_ordered_work()
+    - sched/uclamp: Fix overzealous type replacement
+    - ASoC: wm2200: add missed operations in remove and probe failure
+    - spi: st-ssc4: add missed pm_runtime_disable
+    - ASoC: wm5100: add missed pm_runtime_disable
+    - perf/core: Fix the mlock accounting, again
+    - selftests, bpf: Fix test_tc_tunnel hanging
+    - selftests, bpf: Workaround an alu32 sub-register spilling issue
+    - bnxt_en: Return proper error code for non-existent NVM variable
+    - net: phy: avoid matching all-ones clause 45 PHY IDs
+    - firmware_loader: Fix labels with comma for builtin firmware
+    - ASoC: Intel: bytcr_rt5640: Update quirk for Acer Switch 10 SW5-012 2-in-1
+    - x86/insn: Add some Intel instructions to the opcode map
+    - net-af_xdp: Use correct number of channels from ethtool
+    - brcmfmac: remove monitor interface when detaching
+    - perf session: Fix decompression of PERF_RECORD_COMPRESSED records
+    - perf probe: Fix to show function entry line as probe-able
+    - s390/crypto: Fix unsigned variable compared with zero
+    - s390/kasan: support memcpy_real with TRACE_IRQFLAGS
+    - bnxt_en: Improve RX buffer error handling.
+    - iwlwifi: check kasprintf() return value
+    - fbtft: Make sure string is NULL terminated
+    - ASoC: soc-pcm: check symmetry before hw_params
+    - net: ethernet: ti: ale: clean ale tbl on init and intf restart
+    - mt76: fix possible out-of-bound access in mt7615_fill_txs/mt7603_fill_txs
+    - s390/cpumf: Adjust registration of s390 PMU device drivers
+    - crypto: sun4i-ss - Fix 64-bit size_t warnings
+    - crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
+    - mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED
+    - crypto: vmx - Avoid weird build failures
+    - libtraceevent: Fix memory leakage in copy_filter_type
+    - mips: fix build when "48 bits virtual memory" is enabled
+    - drm/amdgpu: fix bad DMA from INTERRUPT_CNTL2
+    - ice: Only disable VF state when freeing each VF resources
+    - ice: Fix setting coalesce to handle DCB configuration
+    - net: phy: initialise phydev speed and duplex sanely
+    - tools, bpf: Fix build for 'make -s tools/bpf O=<dir>'
+    - RDMA/bnxt_re: Fix missing le16_to_cpu
+    - RDMA/bnxt_re: Fix stat push into dma buffer on gen p5 devices
+    - bpf: Provide better register bounds after jmp32 instructions
+    - RDMA/bnxt_re: Fix chip number validation Broadcom's Gen P5 series
+    - ibmvnic: Fix completion structure initialization
+    - net: wireless: intel: iwlwifi: fix GRO_NORMAL packet stalling
+    - MIPS: futex: Restore \n after sync instructions
+    - btrfs: don't prematurely free work in reada_start_machine_worker()
+    - btrfs: don't prematurely free work in scrub_missing_raid56_worker()
+    - Revert "mmc: sdhci: Fix incorrect switch to HS mode"
+    - mmc: mediatek: fix CMD_TA to 2 for MT8173 HS200/HS400 mode
+    - tpm_tis: reserve chip for duration of tpm_tis_core_init
+    - tpm: fix invalid locking in NONBLOCKING mode
+    - iommu: fix KASAN use-after-free in iommu_insert_resv_region
+    - iommu: set group default domain before creating direct mappings
+    - iommu/vt-d: Fix dmar pte read access not set error
+    - iommu/vt-d: Set ISA bridge reserved region as relaxable
+    - iommu/vt-d: Allocate reserved region for ISA with correct permission
+    - can: xilinx_can: Fix missing Rx can packets on CANFD2.0
+    - can: m_can: tcan4x5x: add required delay after reset
+    - can: j1939: j1939_sk_bind(): take priv after lock is held
+    - can: flexcan: fix possible deadlock and out-of-order reception after wakeup
+    - can: flexcan: poll MCR_LPM_ACK instead of GPR ACK for stop mode
+      acknowledgment
+    - can: kvaser_usb: kvaser_usb_leaf: Fix some info-leaks to USB devices
+    - spi: dw: Correct handling of native chipselect
+    - spi: cadence: Correct handling of native chipselect
+    - usb: xhci: Fix build warning seen with CONFIG_PM=n
+    - drm/amdgpu: fix uninitialized variable pasid_mapping_needed
+    - ath10k: Revert "ath10k: add cleanup in ath10k_sta_state()"
+    - RDMA/siw: Fix post_recv QP state locking
+    - md: avoid invalid memory access for array sb->dev_roles
+    - s390/ftrace: fix endless recursion in function_graph tracer
+    - ARM: dts: Fix vcsi regulator to be always-on for droid4 to prevent hangs
+    - can: flexcan: add low power enter/exit acknowledgment helper
+    - usbip: Fix receive error in vhci-hcd when using scatter-gather
+    - usbip: Fix error path of vhci_recv_ret_submit()
+    - spi: fsl: don't map irq during probe
+    - spi: fsl: use platform_get_irq() instead of of_irq_to_resource()
+    - efi/memreserve: Register reservations as 'reserved' in /proc/iomem
+    - cpufreq: Avoid leaving stale IRQ work items during CPU offline
+    - KEYS: asymmetric: return ENOMEM if akcipher_request_alloc() fails
+    - mm: vmscan: protect shrinker idr replace with CONFIG_MEMCG
+    - USB: EHCI: Do not return -EPIPE when hub is disconnected
+    - intel_th: pci: Add Comet Lake PCH-V support
+    - intel_th: pci: Add Elkhart Lake SOC support
+    - intel_th: Fix freeing IRQs
+    - intel_th: msu: Fix window switching without windows
+    - platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128 bytes
+    - staging: comedi: gsc_hpdi: check dma_alloc_coherent() return value
+    - tty/serial: atmel: fix out of range clock divider handling
+    - serial: sprd: Add clearing break interrupt operation
+    - pinctrl: baytrail: Really serialize all register accesses
+    - clk: imx: clk-imx7ulp: Add missing sentinel of ulp_div_table
+    - clk: imx: clk-composite-8m: add lock to gate/mux
+    - clk: imx: pll14xx: fix clk_pll14xx_wait_lock
+    - ext4: fix ext4_empty_dir() for directories with holes
+    - ext4: check for directory entries too close to block end
+    - ext4: unlock on error in ext4_expand_extra_isize()
+    - ext4: validate the debug_want_extra_isize mount option at parse time
+    - iocost: over-budget forced IOs should schedule async delay
+    - KVM: PPC: Book3S HV: Fix regression on big endian hosts
+    - kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
+    - kvm: x86: Host feature SSBD doesn't imply guest feature AMD_SSBD
+    - KVM: arm/arm64: Properly handle faulting of device mappings
+    - KVM: arm64: Ensure 'params' is initialised when looking up sys register
+    - x86/MCE/AMD: Do not use rdmsr_safe_on_cpu() in smca_configure()
+    - x86/MCE/AMD: Allow Reserved types to be overwritten in smca_banks[]
+    - x86/mce: Fix possibly incorrect severity calculation on AMD
+    - powerpc/vcpu: Assume dedicated processors as non-preempt
+    - powerpc/irq: fix stack overflow verification
+    - ocxl: Fix concurrent AFU open and device removal
+    - mmc: sdhci-msm: Correct the offset and value for DDR_CONFIG register
+    - mmc: sdhci-of-esdhc: Revert "mmc: sdhci-of-esdhc: add erratum A-009204
+      support"
+    - mmc: sdhci: Update the tuning failed messages to pr_debug level
+    - mmc: sdhci-of-esdhc: fix P2020 errata handling
+    - mmc: sdhci: Workaround broken command queuing on Intel GLK
+    - mmc: sdhci: Add a quirk for broken command queuing
+    - nbd: fix shutdown and recv work deadlock v2
+    - iwlwifi: pcie: move power gating workaround earlier in the flow
+    - Linux 5.4.7
+
+  * Focal update: v5.4.6 upstream stable release (LP: #1858427)
+    - Revert "UBUNTU: SAUCE: drm/i915/fbc: disable framebuffer compression on
+      IceLake"
+    - USB: Fix incorrect DMA allocations for local memory pool drivers
+    - mmc: block: Make card_busy_detect() a bit more generic
+    - mmc: block: Add CMD13 polling for MMC IOCTLS with R1B response
+    - mmc: core: Drop check for mmc_card_is_removable() in mmc_rescan()
+    - mmc: core: Re-work HW reset for SDIO cards
+    - PCI/switchtec: Read all 64 bits of part_event_bitmap
+    - PCI/PM: Always return devices to D0 when thawing
+    - PCI: pciehp: Avoid returning prematurely from sysfs requests
+    - PCI: Fix Intel ACS quirk UPDCR register address
+    - PCI/MSI: Fix incorrect MSI-X masking on resume
+    - PCI: Do not use bus number zero from EA capability
+    - PCI: rcar: Fix missing MACCTLR register setting in initialization sequence
+    - PCI: Apply Cavium ACS quirk to ThunderX2 and ThunderX3
+    - PM / QoS: Redefine FREQ_QOS_MAX_DEFAULT_VALUE to S32_MAX
+    - block: fix "check bi_size overflow before merge"
+    - xtensa: use MEMBLOCK_ALLOC_ANYWHERE for KASAN shadow map
+    - gfs2: Multi-block allocations in gfs2_page_mkwrite
+    - gfs2: fix glock reference problem in gfs2_trans_remove_revoke
+    - xtensa: fix TLB sanity checker
+    - xtensa: fix syscall_set_return_value
+    - rpmsg: glink: Set tail pointer to 0 at end of FIFO
+    - rpmsg: glink: Fix reuse intents memory leak issue
+    - rpmsg: glink: Fix use after free in open_ack TIMEOUT case
+    - rpmsg: glink: Put an extra reference during cleanup
+    - rpmsg: glink: Fix rpmsg_register_device err handling
+    - rpmsg: glink: Don't send pending rx_done during remove
+    - rpmsg: glink: Free pending deferred work on remove
+    - cifs: smbd: Return -EAGAIN when transport is reconnecting
+    - cifs: smbd: Only queue work for error recovery on memory registration
+    - cifs: smbd: Add messages on RDMA session destroy and reconnection
+    - cifs: smbd: Return -EINVAL when the number of iovs exceeds SMBDIRECT_MAX_SGE
+    - cifs: smbd: Return -ECONNABORTED when trasnport is not in connected state
+    - cifs: Don't display RDMA transport on reconnect
+    - CIFS: Respect O_SYNC and O_DIRECT flags during reconnect
+    - CIFS: Close open handle after interrupted close
+    - CIFS: Do not miss cancelled OPEN responses
+    - CIFS: Fix NULL pointer dereference in mid callback
+    - ARM: dts: s3c64xx: Fix init order of clock providers
+    - ARM: tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
+    - vfio/pci: call irq_bypass_unregister_producer() before freeing irq
+    - dma-buf: Fix memory leak in sync_file_merge()
+    - drm/panfrost: Fix a race in panfrost_ioctl_madvise()
+    - drm/panfrost: Fix a BO leak in panfrost_ioctl_mmap_bo()
+    - drm/panfrost: Fix a race in panfrost_gem_free_object()
+    - drm/mgag200: Extract device type from flags
+    - drm/mgag200: Store flags from PCI driver data in device structure
+    - drm/mgag200: Add workaround for HW that does not support 'startadd'
+    - drm/mgag200: Flag all G200 SE A machines as broken wrt <startadd>
+    - drm: meson: venc: cvbs: fix CVBS mode matching
+    - dm mpath: remove harmful bio-based optimization
+    - dm btree: increase rebalance threshold in __rebalance2()
+    - dm clone metadata: Track exact changes per transaction
+    - dm clone metadata: Use a two phase commit
+    - dm clone: Flush destination device before committing metadata
+    - dm thin metadata: Add support for a pre-commit callback
+    - dm thin: Flush data device before committing metadata
+    - scsi: ufs: Disable autohibern8 feature in Cadence UFS
+    - scsi: iscsi: Fix a potential deadlock in the timeout handler
+    - scsi: qla2xxx: Ignore NULL pointer in tcm_qla2xxx_free_mcmd
+    - scsi: qla2xxx: Initialize free_work before flushing it
+    - scsi: qla2xxx: Added support for MPI and PEP regions for ISP28XX
+    - scsi: qla2xxx: Change discovery state before PLOGI
+    - scsi: qla2xxx: Correctly retrieve and interpret active flash region
+    - scsi: qla2xxx: Fix incorrect SFUB length used for Secure Flash Update MB Cmd
+    - drm/nouveau/kms/nv50-: Call outp_atomic_check_view() before handling PBN
+    - drm/nouveau/kms/nv50-: Store the bpc we're using in nv50_head_atom
+    - drm/nouveau/kms/nv50-: Limit MST BPC to 8
+    - drm/i915/fbc: Disable fbc by default on all glk+
+    - drm/radeon: fix r1xx/r2xx register checker for POT textures
+    - drm/dp_mst: Correct the bug in drm_dp_update_payload_part1()
+    - drm/amd/display: re-enable wait in pipelock, but add timeout
+    - drm/amd/display: add default clocks if not able to fetch them
+    - drm/amdgpu: initialize vm_inv_eng0_sem for gfxhub and mmhub
+    - drm/amdgpu: invalidate mmhub semaphore workaround in gmc9/gmc10
+    - drm/amdgpu/gfx10: explicitly wait for cp idle after halt/unhalt
+    - drm/amdgpu/gfx10: re-init clear state buffer after gpu reset
+    - drm/i915/gvt: Fix cmd length check for MI_ATOMIC
+    - drm/amdgpu: avoid using invalidate semaphore for picasso
+    - drm/amdgpu: add invalidate semaphore limit for SRIOV and picasso in gmc9
+    - ALSA: hda: Fix regression by strip mask fix
+    - Linux 5.4.6
+
+  * Focal update: v5.4.5 upstream stable release (LP: #1858426)
+    - inet: protect against too small mtu values.
+    - mqprio: Fix out-of-bounds access in mqprio_dump
+    - net: bridge: deny dev_set_mac_address() when unregistering
+    - net: dsa: fix flow dissection on Tx path
+    - net: ethernet: ti: cpsw: fix extra rx interrupt
+    - net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
+    - net_sched: validate TCA_KIND attribute in tc_chain_tmplt_add()
+    - net: thunderx: start phy before starting autonegotiation
+    - net/tls: Fix return values to avoid ENOTSUPP
+    - openvswitch: support asymmetric conntrack
+    - tcp: md5: fix potential overestimation of TCP option space
+    - tipc: fix ordering of tipc module init and exit routine
+    - net/mlx5e: Query global pause state before setting prio2buffer
+    - net: ipv6: add net argument to ip6_dst_lookup_flow
+    - net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
+    - tcp: fix rejected syncookies due to stale timestamps
+    - tcp: tighten acceptance of ACKs not matching a child socket
+    - tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
+    - net: core: rename indirect block ingress cb function
+    - net: sched: allow indirect blocks to bind to clsact in TC
+    - cls_flower: Fix the behavior using port ranges with hw-offload
+    - gre: refetch erspan header from skb->data after pskb_may_pull()
+    - Fixed updating of ethertype in function skb_mpls_pop
+    - hsr: fix a NULL pointer dereference in hsr_dev_xmit()
+    - net: Fixed updating of ethertype in skb_mpls_push()
+    - net/mlx5e: Fix TXQ indices to be sequential
+    - act_ct: support asymmetric conntrack
+    - net/mlx5e: Fix SFF 8472 eeprom length
+    - net/mlx5e: Fix freeing flow with kfree() and not kvfree()
+    - net/mlx5e: Fix translation of link mode into speed
+    - net/mlx5e: ethtool, Fix analysis of speed setting
+    - page_pool: do not release pool until inflight == 0.
+    - xdp: obtain the mem_id mutex before trying to remove an entry.
+    - ionic: keep users rss hash across lif reset
+    - net: mscc: ocelot: unregister the PTP clock on deinit
+    - r8169: add missing RX enabling for WoL on RTL8125
+    - Linux 5.4.5
+
+  * Focal update: v5.4.4 upstream stable release (LP: #1858424)
+    - usb: gadget: configfs: Fix missing spin_lock_init()
+    - usb: gadget: pch_udc: fix use after free
+    - nvme: Namepace identification descriptor list is optional
+    - Revert "nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T"
+    - scsi: lpfc: Fix bad ndlp ptr in xri aborted handling
+    - scsi: zfcp: trace channel log even for FCP command responses
+    - scsi: qla2xxx: Do command completion on abort timeout
+    - scsi: qla2xxx: Fix driver unload hang
+    - scsi: qla2xxx: Fix double scsi_done for abort path
+    - scsi: qla2xxx: Fix memory leak when sending I/O fails
+    - compat_ioctl: add compat_ptr_ioctl()
+    - ceph: fix compat_ioctl for ceph_dir_operations
+    - media: venus: remove invalid compat_ioctl32 handler
+    - USB: uas: honor flag to avoid CAPACITY16
+    - USB: uas: heed CAPACITY_HEURISTICS
+    - USB: documentation: flags on usb-storage versus UAS
+    - usb: Allow USB device to be warm reset in suspended state
+    - usb: host: xhci-tegra: Correct phy enable sequence
+    - binder: fix incorrect calculation for num_valid
+    - staging: exfat: fix multiple definition error of `rename_file'
+    - staging: rtl8188eu: fix interface sanity check
+    - staging: rtl8712: fix interface sanity check
+    - staging: vchiq: call unregister_chrdev_region() when driver registration
+      fails
+    - staging: gigaset: fix general protection fault on probe
+    - staging: gigaset: fix illegal free on probe errors
+    - staging: gigaset: add endpoint-type sanity check
+    - usb: xhci: only set D3hot for pci device
+    - xhci: Fix memory leak in xhci_add_in_port()
+    - xhci: fix USB3 device initiated resume race with roothub autosuspend
+    - xhci: Increase STS_HALT timeout in xhci_suspend()
+    - xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour.
+    - xhci: make sure interrupts are restored to correct state
+    - interconnect: qcom: sdm845: Walk the list safely on node removal
+    - interconnect: qcom: qcs404: Walk the list safely on node removal
+    - usb: common: usb-conn-gpio: Don't log an error on probe deferral
+    - ARM: dts: pandora-common: define wl1251 as child node of mmc3
+    - iio: adis16480: Add debugfs_reg_access entry
+    - iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw
+    - iio: adis16480: Fix scales factors
+    - iio: humidity: hdc100x: fix IIO_HUMIDITYRELATIVE channel reporting
+    - iio: imu: inv_mpu6050: fix temperature reporting using bad unit
+    - iio: adc: ad7606: fix reading unnecessary data from device
+    - iio: adc: ad7124: Enable internal reference
+    - USB: atm: ueagle-atm: add missing endpoint check
+    - USB: idmouse: fix interface sanity checks
+    - USB: serial: io_edgeport: fix epic endpoint lookup
+    - usb: roles: fix a potential use after free
+    - USB: adutux: fix interface sanity check
+    - usb: core: urb: fix URB structure initialization function
+    - usb: mon: Fix a deadlock in usbmon between mmap and read
+    - tpm: add check after commands attribs tab allocation
+    - tpm: Switch to platform_get_irq_optional()
+    - EDAC/altera: Use fast register IO for S10 IRQs
+    - brcmfmac: disable PCIe interrupts before bus reset
+    - mtd: spear_smi: Fix Write Burst mode
+    - mtd: rawnand: Change calculating of position page containing BBM
+    - virt_wifi: fix use-after-free in virt_wifi_newlink()
+    - virtio-balloon: fix managed page counts when migrating pages between zones
+    - usb: dwc3: pci: add ID for the Intel Comet Lake -H variant
+    - usb: dwc3: gadget: Fix logical condition
+    - usb: dwc3: gadget: Clear started flag for non-IOC
+    - usb: dwc3: ep0: Clear started flag on completion
+    - phy: renesas: rcar-gen3-usb2: Fix sysfs interface of "role"
+    - usb: typec: fix use after free in typec_register_port()
+    - iwlwifi: pcie: fix support for transmitting SKBs with fraglist
+    - btrfs: check page->mapping when loading free space cache
+    - btrfs: use btrfs_block_group_cache_done in update_block_group
+    - btrfs: use refcount_inc_not_zero in kill_all_nodes
+    - Btrfs: fix metadata space leak on fixup worker failure to set range as
+      delalloc
+    - Btrfs: fix negative subv_writers counter and data space leak after buffered
+      write
+    - btrfs: Avoid getting stuck during cyclic writebacks
+    - btrfs: Remove btrfs_bio::flags member
+    - Btrfs: send, skip backreference walking for extents with many references
+    - btrfs: record all roots for rename exchange on a subvol
+    - rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address
+    - rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer
+    - rtlwifi: rtl8192de: Fix missing enable interrupt flag
+    - lib: raid6: fix awk build warnings
+    - ovl: fix corner case of non-unique st_dev;st_ino
+    - ovl: relax WARN_ON() on rename to self
+    - hwrng: omap - Fix RNG wait loop timeout
+    - dm writecache: handle REQ_FUA
+    - dm zoned: reduce overhead of backing device checks
+    - workqueue: Fix spurious sanity check failures in destroy_workqueue()
+    - workqueue: Fix pwq ref leak in rescuer_thread()
+    - ASoC: rt5645: Fixed buddy jack support.
+    - ASoC: rt5645: Fixed typo for buddy jack support.
+    - ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report
+    - ASoC: fsl_audmix: Add spin lock to protect tdms
+    - md: improve handling of bio with REQ_PREFLUSH in md_flush_request()
+    - blk-mq: avoid sysfs buffer overflow with too many CPU cores
+    - cgroup: pids: use atomic64_t for pids->limit
+    - wil6210: check len before memcpy() calls
+    - ar5523: check NULL before memcpy() in ar5523_cmd()
+    - s390/mm: properly clear _PAGE_NOEXEC bit when it is not supported
+    - media: hantro: Fix s_fmt for dynamic resolution changes
+    - media: hantro: Fix motion vectors usage condition
+    - media: hantro: Fix picture order count table enable
+    - media: vimc: sen: remove unused kthread_sen field
+    - media: bdisp: fix memleak on release
+    - media: radio: wl1273: fix interrupt masking on release
+    - media: cec.h: CEC_OP_REC_FLAG_ values were swapped
+    - cpuidle: Do not unset the driver if it is there already
+    - cpuidle: teo: Ignore disabled idle states that are too deep
+    - cpuidle: teo: Rename local variable in teo_select()
+    - cpuidle: teo: Consider hits and misses metrics of disabled states
+    - cpuidle: teo: Fix "early hits" handling for disabled idle states
+    - cpuidle: use first valid target residency as poll time
+    - erofs: zero out when listxattr is called with no xattr
+    - perf tests: Fix out of bounds memory access
+    - drm/panfrost: Open/close the perfcnt BO
+    - powerpc/perf: Disable trace_imc pmu
+    - intel_th: Fix a double put_device() in error path
+    - intel_th: pci: Add Ice Lake CPU support
+    - intel_th: pci: Add Tiger Lake CPU support
+    - PM / devfreq: Lock devfreq in trans_stat_show
+    - cpufreq: powernv: fix stack bloat and hard limit on number of CPUs
+    - ALSA: fireface: fix return value in error path of isochronous resources
+      reservation
+    - ALSA: oxfw: fix return value in error path of isochronous resources
+      reservation
+    - ACPI / utils: Move acpi_dev_get_first_match_dev() under CONFIG_ACPI
+    - ACPI: LPSS: Add LNXVIDEO -> BYT I2C7 to lpss_device_links
+    - ACPI: LPSS: Add LNXVIDEO -> BYT I2C1 to lpss_device_links
+    - ACPI: LPSS: Add dmi quirk for skipping _DEP check for some device-links
+    - ACPI / hotplug / PCI: Allocate resources directly under the non-hotplug
+      bridge
+    - ACPI: OSL: only free map once in osl.c
+    - ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()
+    - ACPI: EC: Rework flushing of pending work
+    - ACPI: PM: Avoid attaching ACPI PM domain to certain devices
+    - pinctrl: rza2: Fix gpio name typos
+    - pinctrl: armada-37xx: Fix irq mask access in armada_37xx_irq_set_type()
+    - pinctrl: samsung: Add of_node_put() before return in error path
+    - pinctrl: samsung: Fix device node refcount leaks in Exynos wakeup controller
+      init
+    - pinctrl: samsung: Fix device node refcount leaks in S3C24xx wakeup
+      controller init
+    - pinctrl: samsung: Fix device node refcount leaks in init code
+    - pinctrl: samsung: Fix device node refcount leaks in S3C64xx wakeup
+      controller init
+    - mmc: host: omap_hsmmc: add code for special init of wl1251 to get rid of
+      pandora_wl1251_init_card
+    - ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity
+    - RDMA/core: Fix ib_dma_max_seg_size()
+    - ppdev: fix PPGETTIME/PPSETTIME ioctls
+    - stm class: Lose the protocol driver when dropping its reference
+    - coresight: Serialize enabling/disabling a link device.
+    - powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB
+    - powerpc/xive: Prevent page fault issues in the machine crash handler
+    - powerpc: Allow flush_icache_range to work across ranges >4GB
+    - powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts
+    - video/hdmi: Fix AVI bar unpack
+    - quota: Check that quota is not dirty before release
+    - ext2: check err when partial != NULL
+    - quota: fix livelock in dquot_writeback_dquots
+    - ext4: Fix credit estimate for final inode freeing
+    - reiserfs: fix extended attributes on the root directory
+    - scsi: qla2xxx: Fix SRB leak on switch command timeout
+    - scsi: qla2xxx: Fix a dma_pool_free() call
+    - Revert "scsi: qla2xxx: Fix memory leak when sending I/O fails"
+    - iio: ad7949: kill pointless "readback"-handling code
+    - iio: ad7949: fix channels mixups
+    - omap: pdata-quirks: revert pandora specific gpiod additions
+    - omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251
+    - powerpc: Avoid clang warnings around setjmp and longjmp
+    - powerpc: Fix vDSO clock_getres()
+    - mm, memfd: fix COW issue on MAP_PRIVATE and F_SEAL_FUTURE_WRITE mappings
+    - mm: memcg/slab: wait for !root kmem_cache refcnt killing on root kmem_cache
+      destruction
+    - ext4: work around deleting a file with i_nlink == 0 safely
+    - firmware: qcom: scm: Ensure 'a0' status code is treated as signed
+    - s390/smp,vdso: fix ASCE handling
+    - s390/kaslr: store KASLR offset for early dumps
+    - mm/shmem.c: cast the type of unmap_start to u64
+    - powerpc: Define arch_is_kernel_initmem_freed() for lockdep
+    - USB: dummy-hcd: increase max number of devices to 32
+    - rtc: disable uie before setting time and enable after
+    - splice: only read in as much information as there is pipe buffer space
+    - ext4: fix a bug in ext4_wait_for_tail_page_commit
+    - ext4: fix leak of quota reservations
+    - blk-mq: make sure that line break can be printed
+    - workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
+    - r8169: fix rtl_hw_jumbo_disable for RTL8168evl
+    - EDAC/ghes: Do not warn when incrementing refcount on 0
+    - Linux 5.4.4
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update variants
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Change source package to linux-5.4
+    - [Packaging] Don't use SRCPKGNAME for linux-libc-dev
+    - [Packaging] Remove linux-source-3 Provides: from linux-source
+    - [Packaging] Fix linux-doc in linux-image Suggests:
+    - [Debian] Read variants list into a variable
+    - [Packaging] Generate linux-libc-dev package only for primary variant
+    - [Packaging] Generate linux-doc for only the primary variant
+    - [Debian] Update linux source package name in debian/tests/*
+    - [Config] update annotations to match config changes
+    - [Config] disable PCI_MESON
+    - SAUCE: tools: hv: Update shebang to use python3 instead of python
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 08 Jan 2020 15:00:54 -0600
+
+linux-5.4 (5.4.0-9.12) focal; urgency=medium
+
+  * Empty entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 17 Dec 2019 07:09:13 -0600
+
+linux (5.4.0-9.12) focal; urgency=medium
+
+  * alsa/hda/realtek: the line-out jack doens't work on a dell AIO
+    (LP: #1855999)
+    - SAUCE: ALSA: hda/realtek - Line-out jack doesn't work on a Dell AIO
+
+  * scsi: hisi_sas: Check sas_port before using it (LP: #1855952)
+    - scsi: hisi_sas: Check sas_port before using it
+
+  * CVE-2019-19078
+    - ath10k: fix memory leak
+
+  * cifs: DFS Caching feature causing problems traversing multi-tier DFS setups
+    (LP: #1854887)
+    - cifs: Fix retrieval of DFS referrals in cifs_mount()
+
+  * Support DPCD aux brightness control (LP: #1856134)
+    - SAUCE: drm/i915: Fix eDP DPCD aux max backlight calculations
+    - SAUCE: drm/i915: Assume 100% brightness when not in DPCD control mode
+    - SAUCE: drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight()
+    - SAUCE: drm/i915: Auto detect DPCD backlight support by default
+    - SAUCE: drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED
+      panel
+    - USUNTU: SAUCE: drm/i915: Force DPCD backlight mode on Dell Precision 4K sku
+
+  * The system cannot resume from S3 if user unplugs the TB16 during suspend
+    state (LP: #1849269)
+    - PCI: pciehp: Do not disable interrupt twice on suspend
+    - PCI: pciehp: Prevent deadlock on disconnect
+
+  * change kconfig of the soundwire bus driver from y to m (LP: #1855685)
+    - [Config]: SOUNDWIRE=m
+
+  * alsa/sof: change to use hda hdmi codec driver to make hdmi audio on the
+    docking station work (LP: #1855666)
+    - ALSA: hda/hdmi - implement mst_no_extra_pcms flag
+    - ASoC: hdac_hda: add support for HDMI/DP as a HDA codec
+    - ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi
+    - ASoC: Intel: skl-hda-dsp-generic: fix include guard name
+    - ASoC: SOF: Intel: add support for snd-hda-codec-hdmi
+    - ASoC: Intel: bxt-da7219-max98357a: common hdmi codec support
+    - ASoC: Intel: glk_rt5682_max98357a: common hdmi codec support
+    - ASoC: intel: sof_rt5682: common hdmi codec support
+    - ASoC: Intel: bxt_rt298: common hdmi codec support
+    - ASoC: SOF: enable sync_write in hdac_bus
+    - [config]: SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+
+  * Fix unusable USB hub on Dell TB16 after S3 (LP: #1855312)
+    - SAUCE: USB: core: Make port power cycle a seperate helper function
+    - SAUCE: USB: core: Attempt power cycle port when it's in eSS.Disabled state
+
+  * Focal update: v5.4.3 upstream stable release (LP: #1856583)
+    - rsi: release skb if rsi_prepare_beacon fails
+    - arm64: tegra: Fix 'active-low' warning for Jetson TX1 regulator
+    - arm64: tegra: Fix 'active-low' warning for Jetson Xavier regulator
+    - perf scripts python: exported-sql-viewer.py: Fix use of TRUE with SQLite
+    - sparc64: implement ioremap_uc
+    - lp: fix sparc64 LPSETTIMEOUT ioctl
+    - time: Zero the upper 32-bits in __kernel_timespec on 32-bit
+    - mailbox: tegra: Fix superfluous IRQ error message
+    - staging/octeon: Use stubs for MIPS && !CAVIUM_OCTEON_SOC
+    - usb: gadget: u_serial: add missing port entry locking
+    - serial: 8250-mtk: Use platform_get_irq_optional() for optional irq
+    - tty: serial: fsl_lpuart: use the sg count from dma_map_sg
+    - tty: serial: msm_serial: Fix flow control
+    - serial: pl011: Fix DMA ->flush_buffer()
+    - serial: serial_core: Perform NULL checks for break_ctl ops
+    - serial: stm32: fix clearing interrupt error flags
+    - serial: 8250_dw: Avoid double error messaging when IRQ absent
+    - serial: ifx6x60: add missed pm_runtime_disable
+    - mwifiex: Re-work support for SDIO HW reset
+    - io_uring: fix dead-hung for non-iter fixed rw
+    - io_uring: transform send/recvmsg() -ERESTARTSYS to -EINTR
+    - fuse: fix leak of fuse_io_priv
+    - fuse: verify nlink
+    - fuse: verify write return
+    - fuse: verify attributes
+    - io_uring: fix missing kmap() declaration on powerpc
+    - io_uring: ensure req->submit is copied when req is deferred
+    - SUNRPC: Avoid RPC delays when exiting suspend
+    - ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC
+    - ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
+    - ALSA: pcm: oss: Avoid potential buffer overflows
+    - ALSA: hda - Add mute led support for HP ProBook 645 G4
+    - ALSA: hda: Modify stream stripe mask only when needed
+    - soc: mediatek: cmdq: fixup wrong input order of write api
+    - Input: synaptics - switch another X1 Carbon 6 to RMI/SMbus
+    - Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
+    - Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
+    - Input: goodix - add upside-down quirk for Teclast X89 tablet
+    - coresight: etm4x: Fix input validation for sysfs.
+    - Input: Fix memory leak in psxpad_spi_probe
+    - media: rc: mark input device as pointing stick
+    - x86/mm/32: Sync only to VMALLOC_END in vmalloc_sync_all()
+    - CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
+    - CIFS: Fix SMB2 oplock break processing
+    - tty: vt: keyboard: reject invalid keycodes
+    - can: slcan: Fix use-after-free Read in slcan_open
+    - nfsd: Ensure CLONE persists data and metadata changes to the target file
+    - nfsd: restore NFSv3 ACL support
+    - kernfs: fix ino wrap-around detection
+    - jbd2: Fix possible overflow in jbd2_log_space_left()
+    - drm/msm: fix memleak on release
+    - drm: damage_helper: Fix race checking plane->state->fb
+    - drm/i810: Prevent underflow in ioctl
+    - arm64: Validate tagged addresses in access_ok() called from kernel threads
+    - arm64: dts: exynos: Revert "Remove unneeded address space mapping for soc
+      node"
+    - KVM: PPC: Book3S HV: XIVE: Free previous EQ page when setting up a new one
+    - KVM: PPC: Book3S HV: XIVE: Fix potential page leak on error path
+    - KVM: PPC: Book3S HV: XIVE: Set kvm->arch.xive when VPs are allocated
+    - KVM: nVMX: Always write vmcs02.GUEST_CR3 during nested VM-Enter
+    - KVM: arm/arm64: vgic: Don't rely on the wrong pending table
+    - KVM: x86: do not modify masked bits of shared MSRs
+    - KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
+    - KVM: x86: Remove a spurious export of a static function
+    - KVM: x86: Grab KVM's srcu lock when setting nested state
+    - crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr
+    - crypto: atmel-aes - Fix IV handling when req->nbytes < ivsize
+    - crypto: af_alg - cast ki_complete ternary op to int
+    - crypto: geode-aes - switch to skcipher for cbc(aes) fallback
+    - crypto: ccp - fix uninitialized list head
+    - crypto: ecdh - fix big endian bug in ECC library
+    - crypto: user - fix memory leak in crypto_report
+    - spi: spi-fsl-qspi: Clear TDH bits in FLSHCR register
+    - spi: stm32-qspi: Fix kernel oops when unbinding driver
+    - spi: atmel: Fix CS high support
+    - spi: Fix SPI_CS_HIGH setting when using native and GPIO CS
+    - spi: Fix NULL pointer when setting SPI_CS_HIGH for GPIO CS
+    - can: ucan: fix non-atomic allocation in completion handler
+    - RDMA/qib: Validate ->show()/store() callbacks before calling them
+    - rfkill: allocate static minor
+    - bdev: Factor out bdev revalidation into a common helper
+    - bdev: Refresh bdev size for disks without partitioning
+    - iomap: Fix pipe page leakage during splicing
+    - thermal: Fix deadlock in thermal thermal_zone_device_check
+    - vcs: prevent write access to vcsu devices
+    - Revert "serial/8250: Add support for NI-Serial PXI/PXIe+485 devices"
+    - binder: Fix race between mmap() and binder_alloc_print_pages()
+    - binder: Prevent repeated use of ->mmap() via NULL mapping
+    - binder: Handle start==NULL in binder_update_page_range()
+    - KVM: x86: fix out-of-bounds write in KVM_GET_EMULATED_CPUID (CVE-2019-19332)
+    - ALSA: hda - Fix pending unsol events at shutdown
+    - cpufreq: imx-cpufreq-dt: Correct i.MX8MN's default speed grade value
+    - md/raid0: Fix an error message in raid0_make_request()
+    - drm/mcde: Fix an error handling path in 'mcde_probe()'
+    - watchdog: aspeed: Fix clock behaviour for ast2600
+    - EDAC/ghes: Fix locking and memory barrier issues
+    - perf script: Fix invalid LBR/binary mismatch error
+    - kselftest: Fix NULL INSTALL_PATH for TARGETS runlist
+    - Linux 5.4.3
+
+  * Realtek ALC256M with DTS Audio Processing internal microphone doesn't work
+    on Redmi Book 14 2019 (LP: #1846148) // Focal update: v5.4.3 upstream stable
+    release (LP: #1856583)
+    - ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] add python depends to ubuntu-regression-suite
+    - SAUCE: selftests: net: tls: remove recv_rcvbuf test
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 16 Dec 2019 14:54:19 -0600
+
+linux (5.4.0-8.11) focal; urgency=medium
+
+  * focal/linux: 5.4.0-8.9 -proposed tracker (LP: #1855448)
+
+  * update ENA driver for DIMLIB dynamic interrupt moderation (LP: #1853180)
+    - SAUCE: net: ena: fix issues in setting interrupt moderation params in
+      ethtool
+    - SAUCE: net: ena: fix too long default tx interrupt moderation interval
+
+  * Kernel build log filled with "/bin/bash: line 5: warning: command
+    substitution: ignored null byte in input" (LP: #1853843)
+    - [Debian] Fix warnings when checking for modules signatures
+
+  * hwe-edge kernel 5.3.0-23.25 kernel does not boot on Precision 5720 AIO
+    (LP: #1852581)
+    - [Packaging] Fix module signing with older modinfo
+
+  * Fix MST support on Ice Lake (LP: #1854432)
+    - drm/i915: fix port checks for MST support on gen >= 11
+
+  * headphone has noise as not mute on dell machines with alc236/256
+    (LP: #1854401)
+    - SAUCE: ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
+
+  * [CML-S62] Need enable intel_pmc_core driver patch for Comet lake- S 6+2
+    (LP: #1847450)
+    - SAUCE: platform/x86: intel_pmc_core: Add Comet Lake (CML) platform support
+      to intel_pmc_core driver
+
+  * CVE-2019-14901
+    - SAUCE: mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
+
+  * CVE-2019-14896 // CVE-2019-14897
+    - SAUCE: libertas: Fix two buffer overflows at parsing bss descriptor
+
+  * CVE-2019-14895
+    - SAUCE: mwifiex: fix possible heap overflow in mwifiex_process_country_ie()
+
+  * [CML-S62] Need enable intel_rapl patch support for Comet lake- S 6+2
+    (LP: #1847454)
+    - powercap/intel_rapl: add support for CometLake Mobile
+    - powercap/intel_rapl: add support for Cometlake desktop
+
+  * External microphone can't work on some dell machines with the codec alc256
+    or alc236 (LP: #1853791)
+    - SAUCE: ALSA: hda/realtek - Move some alc256 pintbls to fallback table
+    - SAUCE: ALSA: hda/realtek - Move some alc236 pintbls to fallback table
+
+  * remount of multilower moved pivoted-root overlayfs root, results in I/O
+    errors on some modified files (LP: #1824407)
+    - SAUCE: ovl: fix lookup failure on multi lower squashfs
+
+  * [CML-S62] Need enable turbostat patch support for Comet lake- S 6+2
+    (LP: #1847451)
+    - SAUCE: tools/power turbostat: Add Cometlake support
+
+  * CONFIG_ARCH_ROCKCHIP is not set in ubuntu 18.04 aarch64,arm64 (LP: #1825222)
+    - [Config] Enable ROCKCHIP support for arm64
+
+  * [broadwell-rt286, playback] Since Linux 5.2rc2 audio playback no longer
+    works on Dell Venue 11 Pro 7140 (LP: #1846539)
+    - SAUCE: ASoC: SOF: Intel: Broadwell: clarify mutual exclusion with legacy
+      driver
+
+  * i40e: general protection fault in i40e_config_vf_promiscuous_mode
+    (LP: #1852663)
+    - SAUCE: i40e Fix GPF when deleting VMs
+
+  * libbpf check_abi fails on ppc64el (LP: #1854974)
+    - libbpf: Fix readelf output parsing on powerpc with recent binutils
+
+  * CVE-2019-19050
+    - crypto: user - fix memory leak in crypto_reportstat
+
+  * Make hotplugging docking station to Thunderbolt port more reliable
+    (LP: #1853991)
+    - PCI/PM: Add pcie_wait_for_link_delay()
+    - PCI/PM: Add missing link delays required by the PCIe spec
+
+  * i915: Display flickers (monitor loses signal briefly) during "flickerfree"
+    boot, while showing the BIOS logo on a black background (LP: #1836858)
+    - [Config] FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+
+  * [CML] New device id's for CMP-H (LP: #1846335)
+    - i2c: i801: Add support for Intel Comet Lake PCH-H
+    - mtd: spi-nor: intel-spi: Add support for Intel Comet Lake-H SPI serial flash
+    - mfd: intel-lpss: Add Intel Comet Lake PCH-H PCI IDs
+
+  * Focal update: v5.4.2 upstream stable release (LP: #1855326)
+    - io_uring: async workers should inherit the user creds
+    - net: separate out the msghdr copy from ___sys_{send,recv}msg()
+    - net: disallow ancillary data for __sys_{send,recv}msg_file()
+    - crypto: inside-secure - Fix stability issue with Macchiatobin
+    - driver core: platform: use the correct callback type for bus_find_device
+    - usb: dwc2: use a longer core rest timeout in dwc2_core_reset()
+    - staging: wilc1000: fix illegal memory access in wilc_parse_join_bss_param()
+    - staging: rtl8192e: fix potential use after free
+    - staging: rtl8723bs: Drop ACPI device ids
+    - staging: rtl8723bs: Add 024c:0525 to the list of SDIO device-ids
+    - USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
+    - mei: bus: prefix device names on bus with the bus name
+    - mei: me: add comet point V device id
+    - thunderbolt: Power cycle the router if NVM authentication fails
+    - x86/fpu: Don't cache access to fpu_fpregs_owner_ctx
+    - gve: Fix the queue page list allocated pages count
+    - macvlan: schedule bc_work even if error
+    - mdio_bus: don't use managed reset-controller
+    - net: dsa: sja1105: fix sja1105_parse_rgmii_delays()
+    - net: macb: add missed tasklet_kill
+    - net: psample: fix skb_over_panic
+    - net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
+    - openvswitch: fix flow command message size
+    - sctp: Fix memory leak in sctp_sf_do_5_2_4_dupcook
+    - slip: Fix use-after-free Read in slip_open
+    - sctp: cache netns in sctp_ep_common
+    - openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
+    - openvswitch: remove another BUG_ON()
+    - net/tls: take into account that bpf_exec_tx_verdict() may free the record
+    - net/tls: free the record on encryption error
+    - net: skmsg: fix TLS 1.3 crash with full sk_msg
+    - selftests/tls: add a test for fragmented messages
+    - net/tls: remove the dead inplace_crypto code
+    - net/tls: use sg_next() to walk sg entries
+    - selftests: bpf: test_sockmap: handle file creation failures gracefully
+    - selftests: bpf: correct perror strings
+    - tipc: fix link name length check
+    - selftests: pmtu: use -oneline for ip route list cache
+    - r8169: fix jumbo configuration for RTL8168evl
+    - r8169: fix resume on cable plug-in
+    - ext4: add more paranoia checking in ext4_expand_extra_isize handling
+    - Revert "jffs2: Fix possible null-pointer dereferences in
+      jffs2_add_frag_to_fragtree()"
+    - crypto: talitos - Fix build error by selecting LIB_DES
+    - HID: core: check whether Usage Page item is after Usage ID items
+    - platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
+    - platform/x86: hp-wmi: Fix ACPI errors caused by passing 0 as input size
+    - Linux 5.4.2
+
+  * no HDMI video output since GDM greeter after linux-oem-osp1 version
+    5.0.0-1026 (LP: #1852386)
+    - drm/i915: Add new CNL PCH ID seen on a CML platform
+    - SAUCE: drm/i915: Fix detection for a CMP-V PCH
+
+  * Please add patch fixing RK818 ID detection (LP: #1853192)
+    - SAUCE: mfd: rk808: Fix RK818 ID template
+
+  * Raydium Touchscreen on ThinkPad L390 does not work (LP: #1849721)
+    - HID: i2c-hid: fix no irq after reset on raydium 3118
+
+  * Touchpad doesn't work on Dell Inspiron 7000 2-in-1 (LP: #1851901)
+    - Revert "UBUNTU: SAUCE: mfd: intel-lpss: add quirk for Dell XPS 13 7390
+      2-in-1"
+    - lib: devres: add a helper function for ioremap_uc
+    - mfd: intel-lpss: Use devm_ioremap_uc for MMIO
+
+  * Lenovo dock MAC Address pass through doesn't work in Ubuntu  (LP: #1827961)
+    - r8152: Add macpassthru support for ThinkPad Thunderbolt 3 Dock Gen 2
+
+  * Disable unreliable HPET on CFL-H system (LP: #1852216)
+    - SAUCE: x86/intel: Disable HPET on Intel Coffe Lake H platforms
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] Enable virtualbox dkms build
+    - [Config] update annotations to match current configs
+    - SAUCE: Add exfat module to signature inclusion list
+
+  * Miscellaneous upstream changes
+    - Bluetooth: Fix invalid-free in bcsp_close()
+    - ath9k_hw: fix uninitialized variable data
+    - ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
+    - ath10k: Fix HOST capability QMI incompatibility
+    - ath10k: restore QCA9880-AR1A (v1) detection
+    - Revert "Bluetooth: hci_ll: set operational frequency earlier"
+    - Revert "dm crypt: use WQ_HIGHPRI for the IO and crypt workqueues"
+    - md/raid10: prevent access of uninitialized resync_pages offset
+    - x86/insn: Fix awk regexp warnings
+    - x86/speculation: Fix incorrect MDS/TAA mitigation status
+    - x86/speculation: Fix redundant MDS mitigation message
+    - nbd: prevent memory leak
+    - x86/stackframe/32: Repair 32-bit Xen PV
+    - x86/xen/32: Make xen_iret_crit_fixup() independent of frame layout
+    - x86/xen/32: Simplify ring check in xen_iret_crit_fixup()
+    - x86/doublefault/32: Fix stack canaries in the double fault handler
+    - x86/pti/32: Size initial_page_table correctly
+    - x86/cpu_entry_area: Add guard page for entry stack on 32bit
+    - x86/entry/32: Fix IRET exception
+    - x86/entry/32: Use %ss segment where required
+    - x86/entry/32: Move FIXUP_FRAME after pushing %fs in SAVE_ALL
+    - x86/entry/32: Unwind the ESPFIX stack earlier on exception entry
+    - x86/entry/32: Fix NMI vs ESPFIX
+    - selftests/x86/mov_ss_trap: Fix the SYSENTER test
+    - selftests/x86/sigreturn/32: Invalidate DS and ES when abusing the kernel
+    - x86/pti/32: Calculate the various PTI cpu_entry_area sizes correctly, make
+      the CPU_ENTRY_AREA_PAGES assert precise
+    - x86/entry/32: Fix FIXUP_ESPFIX_STACK with user CR3
+    - futex: Prevent robust futex exit race
+    - ALSA: usb-audio: Fix NULL dereference at parsing BADD
+    - ALSA: usb-audio: Fix Scarlett 6i6 Gen 2 port data
+    - media: vivid: Set vid_cap_streaming and vid_out_streaming to true
+    - media: vivid: Fix wrong locking that causes race conditions on streaming
+      stop
+    - media: usbvision: Fix invalid accesses after device disconnect
+    - media: usbvision: Fix races among open, close, and disconnect
+    - cpufreq: Add NULL checks to show() and store() methods of cpufreq
+    - futex: Move futex exit handling into futex code
+    - futex: Replace PF_EXITPIDONE with a state
+    - exit/exec: Seperate mm_release()
+    - futex: Split futex_mm_release() for exit/exec
+    - futex: Set task::futex_state to DEAD right after handling futex exit
+    - futex: Mark the begin of futex exit explicitly
+    - futex: Sanitize exit state handling
+    - futex: Provide state handling for exec() as well
+    - futex: Add mutex around futex exit
+    - futex: Provide distinct return value when owner is exiting
+    - futex: Prevent exit livelock
+    - media: uvcvideo: Fix error path in control parsing failure
+    - media: b2c2-flexcop-usb: add sanity checking
+    - media: cxusb: detect cxusb_ctrl_msg error in query
+    - media: imon: invalid dereference in imon_touch_event
+    - media: mceusb: fix out of bounds read in MCE receiver buffer
+    - ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs
+    - USBIP: add config dependency for SGL_ALLOC
+    - usbip: tools: fix fd leakage in the function of read_attr_usbip_status
+    - usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
+    - usb-serial: cp201x: support Mark-10 digital force gauge
+    - USB: chaoskey: fix error case of a timeout
+    - appledisplay: fix error handling in the scheduled work
+    - USB: serial: mos7840: add USB ID to support Moxa UPort 2210
+    - USB: serial: mos7720: fix remote wakeup
+    - USB: serial: mos7840: fix remote wakeup
+    - USB: serial: option: add support for DW5821e with eSIM support
+    - USB: serial: option: add support for Foxconn T77W968 LTE modules
+    - staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
+    - powerpc/book3s64: Fix link stack flush on context switch
+    - KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel
+    - Linux 5.4.1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 06 Dec 2019 15:53:53 -0600
+
+linux (5.4.0-7.8) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/bpf: Comment out BPF_CORE_READ's which cause clang to
+      segfault
+    - Update nvidia-430 to nvidia-440
+    - [Config] Enable nvidia dkms build
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 25 Nov 2019 15:02:30 +0100
+
+linux (5.4.0-6.7) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] updateconfigs after rebase to 5.4-rc8
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc7
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 18 Nov 2019 12:08:01 +0100
+
+linux (5.4.0-5.6) focal; urgency=medium
+
+  * refcount underflow and type confusion in shiftfs (LP: #1850867) //
+    CVE-2019-15793
+    - SAUCE: shiftfs: Correct id translation for lower fs operations
+
+  * refcount underflow and type confusion in shiftfs (LP: #1850867) //
+    CVE-2019-15792
+    - SAUCE: shiftfs: prevent type confusion
+
+  * refcount underflow and type confusion in shiftfs (LP: #1850867) //
+    CVE-2019-15791
+    - SAUCE: shiftfs: Fix refcount underflow in btrfs ioctl handling
+
+  * Some EFI systems fail to boot in efi_init() when booted via maas
+    (LP: #1851810)
+    - SAUCE: efi: efi_get_memory_map -- increase map headroom
+
+  * seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test (LP: #1849281)
+    - SAUCE: seccomp: rework define for SECCOMP_USER_NOTIF_FLAG_CONTINUE
+    - SAUCE: seccomp: avoid overflow in implicit constant conversion
+
+  * dkms artifacts may expire from the pool (LP: #1850958)
+    - [Packaging] dkms -- try launchpad librarian for pool downloads
+    - [Packaging] dkms -- dkms-build quieten wget verbiage
+
+  * tsc marked unstable after entered PC10 on Intel CoffeeLake (LP: #1840239)
+    - SAUCE: x86/intel: Disable HPET on Intel Coffe Lake platforms
+    - SAUCE: x86/intel: Disable HPET on Intel Ice Lake platforms
+
+  * shiftfs: prevent exceeding project quotas (LP: #1849483)
+    - SAUCE: shiftfs: drop CAP_SYS_RESOURCE from effective capabilities
+
+  * shiftfs: fix fallocate() (LP: #1849482)
+    - SAUCE: shiftfs: setup correct s_maxbytes limit
+
+  * The alsa hda driver is not loaded due to the missing of PCIID for Comet
+    Lake-S [8086:a3f0] (LP: #1852070)
+    - SAUCE: ALSA: hda: Add Cometlake-S PCI ID
+
+  * Can't adjust brightness on DELL UHD dGPU AIO (LP: #1813877)
+    - SAUCE: platform/x86: dell-uart-backlight: add missing status command
+    - SAUCE: platform/x86: dell-uart-backlight: load driver by scalar status
+    - SAUCE: platform/x86: dell-uart-backlight: add force parameter
+    - SAUCE: platform/x86: dell-uart-backlight: add quirk for old platforms
+
+  * s_iflags overlap prevents unprivileged overlayfs mounts (LP: #1851677)
+    - SAUCE: fs: Move SB_I_NOSUID to the top of s_iflags
+
+  * ubuntu-aufs-modified mmap_region() breaks refcounting in overlayfs/shiftfs
+    error path (LP: #1850994) // CVE-2019-15794
+    - SAUCE: shiftfs: Restore vm_file value when lower fs mmap fails
+    - SAUCE: ovl: Restore vm_file value when lower fs mmap fails
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Convert update-aufs.sh to use aufs5
+    - SAUCE: import aufs driver
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 13 Nov 2019 11:56:35 -0800
+
+linux (5.4.0-4.5) focal; urgency=medium
+
+  * High power consumption using 5.0.0-25-generic (LP: #1840835)
+    - PCI: Add a helper to check Power Resource Requirements _PR3 existence
+    - ALSA: hda: Allow HDA to be runtime suspended when dGPU is not bound to a
+      driver
+    - PCI: Fix missing inline for pci_pr3_present()
+
+  * Fix signing of staging modules in eoan (LP: #1850234)
+    - [Packaging] Leave unsigned modules unsigned after adding .gnu_debuglink
+
+  * [20.04 FEAT] Set Architecture Level (ALS) to z13 (LP: #1837525)
+    - [Config] s390x bump march to z13, with tune to z15
+
+  * Miscellaneous Ubuntu changes
+    - [Debian]: do not skip tests for linux-hwe-edge
+    - update dkms package versions
+    - [Config] re-enable zfs
+    - [Config] rename module virtio_fs to virtiofs
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc6
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 04 Nov 2019 15:12:02 +0100
+
+linux (5.4.0-3.4) focal; urgency=medium
+
+  * seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test (LP: #1849281)
+    - SAUCE: seccomp: fix SECCOMP_USER_NOTIF_FLAG_CONTINUE test
+
+  * cloudimg: no iavf/i40evf module so no network available with SR-IOV enabled
+    cloud (LP: #1848481)
+    - [Packaging] include iavf/i40evf in generic
+
+  * CVE-2019-17666
+    - SAUCE: rtlwifi: Fix potential overflow on P2P code
+
+  * Change Config Option CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE for s390x from yes
+    to no (LP: #1848492)
+    - [Config] Change Config Option CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE for s390x
+      from yes to no
+
+  * Add Intel Comet Lake ethernet support (LP: #1848555)
+    - SAUCE: e1000e: Add support for Comet Lake
+
+  * seccomp: add SECCOMP_USER_NOTIF_FLAG_CONTINUE    (LP: #1847744)
+    - SAUCE: seccomp: add SECCOMP_USER_NOTIF_FLAG_CONTINUE
+    - SAUCE: seccomp: test SECCOMP_USER_NOTIF_FLAG_CONTINUE
+
+  * drm/i915: Fix the issue of "azx_get_response timeout" for hdmi audio on ICL
+    platforms (LP: #1847192)
+    - SAUCE: drm/i915: Fix audio power up sequence for gen10+ display
+    - SAUCE: drm/i915: extend audio CDCLK>=2*BCLK constraint to more platforms
+
+  * PM / hibernate: fix potential memory corruption (LP: #1847118)
+    - SAUCE: PM / hibernate: memory_bm_find_bit -- tighten node optimisation
+
+  * [regression] NoNewPrivileges incompatible with Apparmor (LP: #1844186)
+    - SAUCE: apparmor: fix nnp subset test for unconfined
+
+  * overlayfs: allow with shiftfs as underlay (LP: #1846272)
+    - SAUCE: overlayfs: allow with shiftfs as underlay
+
+  * eoan: alsa/sof: Enable SOF_HDA link and codec (LP: #1848490)
+    - [Config] Fix SOF Kconfig options
+
+  * linux won't build when new virtualbox version is present on the archive
+    (LP: #1848788)
+    - [Packaging]: download virtualbox from sources
+
+  * Miscellaneous Ubuntu changes
+    - [Config] update annotations from configs
+    - [Config] updateconfigs after rebase to 5.4-rc5
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 29 Oct 2019 12:01:27 -0500
+
+linux (5.4.0-2.3) eoan; urgency=medium
+
+  * Add installer support for iwlmvm adapters (LP: #1848236)
+    - d-i: Add iwlmvm to nic-modules
+
+  * shiftfs: rework how shiftfs opens files (LP: #1846265)
+    - SAUCE: shiftfs: rework how shiftfs opens files
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] updateconfigs after rebase to 5.4-rc4
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc4
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 21 Oct 2019 17:31:26 +0200
+
+linux (5.4.0-1.2) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] updateconfigs after rebase to 5.4-rc3
+    - [Config] add flexfb, fbtft_device and rio500 to modules.ignore
+    - [Config] amd64: ignore fbtft and all dependent modules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc3
+
+ -- Andrea Righi <andrea.righi@canonical.com>  Mon, 14 Oct 2019 19:48:52 +0200
+
+linux (5.4.0-0.1) eoan; urgency=medium
+
+  * Enable the Dragonboards out of Eoan/master arm64 kernel (LP: #1846704)
+    - [Packaging] arm64: snapdragon: introduce a snapdragon flavour
+    - [Packaging] arm64: snapdragon: switch kernel format to Image
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8916=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8994=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8996=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_MSM8998=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_RPMH=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_BAM_DMA=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_HIDMA_MGMT=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_HIDMA=y
+    - [Config] arm64: snapdragon: CONFIG_COMMON_CLK_QCOM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_RPMH=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8916=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8994=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_MMCC_8996=y
+    - [Config] arm64: snapdragon: CONFIG_MSM_GCC_8998=y
+    - [Config] arm64: snapdragon: CONFIG_HWSPINLOCK_QCOM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_APCS_IPC=y
+    - [Config] arm64: snapdragon: CONFIG_RPMSG_QCOM_GLINK_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_GENI_SE=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMEM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMD_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMP2P=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_SMSM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_QFPROM=y
+    - [Config] arm64: snapdragon: CONFIG_SERIAL_QCOM_GENI=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_TSENS=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_SMD_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_SMD_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_RPMSG_QCOM_SMD=y
+    - [Config] arm64: snapdragon: CONFIG_MFD_QCOM_RPM=y
+    - [Config] arm64: snapdragon: CONFIG_SCSI_UFSHCD=y
+    - [Config] arm64: snapdragon: CONFIG_SCSI_UFSHCD_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_SCSI_UFS_HISI=y
+    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI=y
+    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI_PLTFM=y
+    - [Config] arm64: snapdragon: CONFIG_MMC_SDHCI_MSM=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_QCOM_SPMI=y
+    - [Config] arm64: snapdragon: CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_USB_HS=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_QMP=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_UFS=y
+    - [Config] arm64: snapdragon: CONFIG_PHY_QCOM_USB_HSIC=y
+    - [Config] arm64: snapdragon: CONFIG_USB_CHIPIDEA_OF=y
+    - [Config] arm64: snapdragon: CONFIG_USB_EHCI_HCD_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_EXTCON_USB_GPIO=y
+    - [Config] arm64: snapdragon: CONFIG_REGULATOR_FIXED_VOLTAGE=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_GPIO=y
+    - [Config] arm64: snapdragon: CONFIG_USB_HSIC_USB3503=y
+    - [Config] arm64: snapdragon: CONFIG_USB_NET_DRIVERS=y
+    - [Config] arm64: snapdragon: CONFIG_USB_OTG=y
+    - [Config] arm64: snapdragon: CONFIG_USB_XHCI_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_USB_OHCI_HCD_PLATFORM=y
+    - [Config] arm64: snapdragon: CONFIG_USB_MUSB_HDRC=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3_PCI=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3_OF_SIMPLE=y
+    - [Config] arm64: snapdragon: CONFIG_USB_DWC3_QCOM=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_PWM=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+    - [Config] arm64: snapdragon: CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_A53PLL=y
+    - [Config] arm64: snapdragon: CONFIG_QCOM_CLK_APCS_MSM8916=y
+    - [Config] arm64: snapdragon: CONFIG_NLS_ISO8859_1=y
+    - [Config] arm64: snapdragon: CONFIG_USB_USBNET=y
+    - [Config] arm64: snapdragon: CONFIG_CRYPTO_DEV_QCOM_RNG=y
+    - [Config] arm64: snapdragon: CONFIG_POWER_RESET_QCOM_PON=y
+    - [Config] arm64: snapdragon: CONFIG_INPUT_PM8941_PWRKEY=y
+    - [Config] arm64: snapdragon: CONFIG_KEYBOARD_GPIO=y
+    - [Config] arm64: snapdragon: CONFIG_RTC_DRV_PM8XXX=y
+
+  * Miscellaneous Ubuntu changes
+    - [Config] updateconfigs after rebase to 5.4-rc2
+    - SAUCE: (lockdown) Make get_cert_list() not complain about cert lists that
+      aren't present.
+    - SAUCE: (lockdown) Add efi_status_to_str() and rework efi_status_to_err().
+    - SAUCE: (lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (lockdown) security: lockdown: expose a hook to lock the kernel down
+    - SAUCE: (lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure boot
+      mode
+    - SAUCE: (lockdown) efi: Lock down the kernel if booted in secure boot mode
+    - SAUCE: (lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (lockdown) KEYS: Make use of platform keyring for module signature
+      verify
+    - SAUCE: (lockdown) arm64: Allow locking down the kernel under EFI secure boot
+    - SAUCE: (lockdown) security: lockdown: Make
+      CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT more generic
+    - SAUCE: (lockdown) s390/ipl: lockdown kernel when booted secure
+    - [Config] Enable lockdown under secure boot
+    - SAUCE: import aufs driver
+    - SAUCE: aufs: rwsem owner changed to atmoic_long_t in 5.3
+    - SAUCE: aufs: add "WITH Linux-syscall-note" to SPDX tag of uapi headers
+    - [Config] enable aufs
+    - update dkms package versions
+    - [Config] disable zfs
+    - [Config] disable nvidia dkms build
+    - [Config] disable virtualbox dkms build
+    - [Debian] Generate stub reconstruct for -rc kernels
+    - Revert "UBUNTU: SAUCE: (namespace) block_dev: Forbid unprivileged mounting
+      when device is opened for writing"
+    - Revert "UBUNTU: SAUCE: (namespace) ext4: Add module parameter to enable user
+      namespace mounts"
+    - Revert "UBUNTU: SAUCE: (namespace) ext4: Add support for unprivileged mounts
+      from user namespaces"
+    - Revert "UBUNTU: SAUCE: (namespace) mtd: Check permissions towards mtd block
+      device inode when mounting"
+    - Revert "UBUNTU: SAUCE: (namespace) block_dev: Check permissions towards
+      block device inode when mounting"
+    - Revert "UBUNTU: SAUCE: (namespace) block_dev: Support checking inode
+      permissions in lookup_bdev()"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.4-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 11 Oct 2019 16:42:41 -0500
+
+linux (5.4.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 08 Oct 2019 09:59:00 -0500
+
+linux (5.3.0-17.18) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-17.18 -proposed tracker (LP: #1846641)
+
+  * CVE-2019-17056
+    - nfc: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17055
+    - mISDN: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17054
+    - appletalk: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17053
+    - ieee802154: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-17052
+    - ax25: enforce CAP_NET_RAW for raw sockets
+
+  * CVE-2019-15098
+    - ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
+
+  * xHCI on AMD Stoney Ridge cannot detect USB 2.0 or 1.1 devices.
+    (LP: #1846470)
+    - x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect
+
+  * Re-enable linux-libc-dev build on i386 (LP: #1846508)
+    - [Packaging] Build only linux-libc-dev for i386
+    - [Debian] final-checks -- ignore archtictures with no binaries
+
+  * arm64: loop on boot after installing linux-generic-hwe-18.04-edge/bionic-
+    proposed (LP: #1845820)
+    - [Config] Disable CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT
+
+  * Revert ESE DASD discard support (LP: #1846219)
+    - SAUCE: Revert "s390/dasd: Add discard support for ESE volumes"
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 03 Oct 2019 16:57:05 -0500
+
+linux (5.3.0-16.17) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-16.17 -proposed tracker (LP: #1846204)
+
+  * zfs fails to build on s390x  with debug symbols enabled (LP: #1846143)
+    - SAUCE: s390: Mark atomic const ops always inline
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 01 Oct 2019 07:46:43 -0500
+
+linux (5.3.0-15.16) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-15.16 -proposed tracker (LP: #1845987)
+
+  * Drop i386 build for 19.10 (LP: #1845714)
+    - [Packaging] Remove x32 arch references from control files
+    - [Debian] final-checks -- Get arch list from debian/control
+
+  * ZFS kernel modules lack debug symbols (LP: #1840704)
+    - [Debian] Fix conditional for setting zfs debug package path
+
+  * Use pyhon3-sphinx instead of python-sphinx for building html docs
+    (LP: #1845808)
+    - [Packaging] Update sphinx build dependencies to python3 packages
+
+  * Kernel panic with 19.10 beta image (LP: #1845454)
+    - efi/tpm: Don't access event->count when it isn't mapped.
+    - efi/tpm: don't traverse an event log with no events
+    - efi/tpm: only set efi_tpm_final_log_size after successful event log parsing
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 30 Sep 2019 11:57:20 -0500
+
+linux (5.3.0-14.15) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-14.15 -proposed tracker (LP: #1845728)
+
+  * Drop i386 build for 19.10 (LP: #1845714)
+    - [Debian] Remove support for producing i386 kernels
+    - [Debian] Don't use CROSS_COMPILE for i386 configs
+
+  * udevadm trigger will fail when trying to add /sys/devices/vio/
+    (LP: #1845572)
+    - SAUCE: powerpc/vio: drop bus_type from parent device
+
+  * Trying to online dasd drive results in invalid input/output from the kernel
+    on z/VM (LP: #1845323)
+    - SAUCE: s390/dasd: Fix error handling during online processing
+
+  * intel-lpss driver conflicts with write-combining MTRR region (LP: #1845584)
+    - SAUCE: mfd: intel-lpss: add quirk for Dell XPS 13 7390 2-in-1
+
+  * Support Hi1620 zip hw accelerator (LP: #1845355)
+    - [Config] Enable HiSilicon QM/ZIP as modules
+    - crypto: hisilicon - add queue management driver for HiSilicon QM module
+    - crypto: hisilicon - add hardware SGL support
+    - crypto: hisilicon - add HiSilicon ZIP accelerator support
+    - crypto: hisilicon - add SRIOV support for ZIP
+    - Documentation: Add debugfs doc for hisi_zip
+    - crypto: hisilicon - add debugfs for ZIP and QM
+    - MAINTAINERS: add maintainer for HiSilicon QM and ZIP controller driver
+    - crypto: hisilicon - fix kbuild warnings
+    - crypto: hisilicon - add dependency for CRYPTO_DEV_HISI_ZIP
+    - crypto: hisilicon - init curr_sgl_dma to fix compile warning
+    - crypto: hisilicon - add missing single_release
+    - crypto: hisilicon - fix error handle in hisi_zip_create_req_q
+    - crypto: hisilicon - Fix warning on printing %p with dma_addr_t
+    - crypto: hisilicon - Fix return value check in hisi_zip_acompress()
+    - crypto: hisilicon - avoid unused function warning
+
+  * SafeSetID LSM should be built but disabled by default (LP: #1845391)
+    - LSM: SafeSetID: Stop releasing uninitialized ruleset
+    - [Config] Build SafeSetID LSM but don't enable it by default
+
+  * CONFIG_LSM should not specify loadpin since it is not built (LP: #1845383)
+    - [Config] loadpin shouldn't be in CONFIG_LSM
+
+  * Add new pci-id's for CML-S, ICL (LP: #1845317)
+    - drm/i915/icl: Add missing device ID
+    - drm/i915/cml: Add Missing PCI IDs
+
+  * Thunderbolt support for ICL (LP: #1844680)
+    - thunderbolt: Correct path indices for PCIe tunnel
+    - thunderbolt: Move NVM upgrade support flag to struct icm
+    - thunderbolt: Use 32-bit writes when writing ring producer/consumer
+    - thunderbolt: Do not fail adding switch if some port is not implemented
+    - thunderbolt: Hide switch attributes that are not set
+    - thunderbolt: Expose active parts of NVM even if upgrade is not supported
+    - thunderbolt: Add support for Intel Ice Lake
+    - ACPI / property: Add two new Thunderbolt property GUIDs to the list
+
+  * Ubuntu 19.10 -  Additional PCI patch and fix (LP: #1844668)
+    - s390/pci: fix MSI message data
+
+  * Enhanced Hardware Support - Finalize Naming (LP: #1842774)
+    - s390: add support for IBM z15 machines
+    - [Config] CONFIG_MARCH_Z15=n, CONFIG_TUNE_Z15=n
+
+  * Eoan update: v5.3.1 upstream stable release (LP: #1845642)
+    - USB: usbcore: Fix slab-out-of-bounds bug during device reset
+    - media: tm6000: double free if usb disconnect while streaming
+    - phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
+    - ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
+    - net/sched: fix race between deactivation and dequeue for NOLOCK qdisc
+    - net_sched: let qdisc_put() accept NULL pointer
+    - udp: correct reuseport selection with connected sockets
+    - xen-netfront: do not assume sk_buff_head list is empty in error handling
+    - net: dsa: Fix load order between DSA drivers and taggers
+    - net: stmmac: Hold rtnl lock in suspend/resume callbacks
+    - KVM: coalesced_mmio: add bounds checking
+    - Documentation: sphinx: Add missing comma to list of strings
+    - firmware: google: check if size is valid when decoding VPD data
+    - serial: sprd: correct the wrong sequence of arguments
+    - tty/serial: atmel: reschedule TX after RX was started
+    - nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
+    - Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
+    - ovl: fix regression caused by overlapping layers detection
+    - phy: qcom-qmp: Correct ready status, again
+    - floppy: fix usercopy direction
+    - media: technisat-usb2: break out of loop at end of buffer
+    - Linux 5.3.1
+
+  * ZFS kernel modules lack debug symbols (LP: #1840704)
+    - [Debian]: Remove hardcoded $(pkgdir) in debug symbols handling
+    - [Debian]: Handle debug symbols for modules in extras too
+    - [Debian]: Check/link modules with debug symbols after DKMS modules
+    - [Debian]: Warn about modules without debug symbols
+    - [Debian]: dkms-build: new parameter for debug package directory
+    - [Debian]: dkms-build: zfs: support for debug symbols
+    - [Debian]: dkms-build: Avoid executing post-processor scripts twice
+    - [Debian]: dkms-build: Move zfs special-casing into configure script
+
+  * /proc/self/maps paths missing on live session (was vlc won't start; eoan
+    19.10 & bionic 18.04 ubuntu/lubuntu/kubuntu/xubuntu/ubuntu-mate dailies)
+    (LP: #1842382)
+    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: enable overlayfs on shiftfs"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 27 Sep 2019 16:08:06 -0500
+
+linux (5.3.0-13.14) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-13.14 -proposed tracker (LP: #1845105)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Remove binutils-dev build dependency
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 23 Sep 2019 19:26:43 -0500
+
+linux (5.3.0-12.13) eoan; urgency=medium
+
+  * Change kernel compression method to improve boot speed (LP: #1840934)
+    - [Packaging] Add lz4 build dependency for s390x
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Remove spl and zfs source
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 17 Sep 2019 13:36:26 +0200
+
+linux (5.3.0-11.12) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-11.12 -proposed tracker (LP: #1844144)
+
+  *  Suspend to RAM(S3) does not wake up for latest megaraid and mpt3sas
+    adapters(SAS3.5 onwards) (LP: #1838751)
+    - PCI: Restore Resizable BAR size bits correctly for 1MB BARs
+
+  * s390/setup: Actually init kernel lock down (LP: #1843961)
+    - SAUCE: (lockdown) s390/setup: Actually init kernel lock down
+
+  * cherrypick has_sipl fix (LP: #1843960)
+    - SAUCE: s390/sclp: Fix bit checked for has_sipl
+
+  * Change kernel compression method to improve boot speed (LP: #1840934)
+    - [Config]: Switch kernel compression from LZO to LZ4 on s390x
+
+  * Installation fails on eoan/PowerVM : missing /dev/nvram (LP: #1837726)
+    - [Config] CONFIG_NVRAM=y for ppc64el
+
+  * Miscellaneous Ubuntu changes
+    - [Config]: remove nvram from ppc64el modules ABI
+    - [Config] Update annotations for recent config changes
+    - SAUCE: sched: Add __ASSEMBLY__ guards around struct clone_args
+    - SAUCE: i2c: qcom-geni: Disable DMA processing on the Lenovo Yoga C630
+    - SAUCE: arm64: dts: qcom: Add Lenovo Yoga C630
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 16 Sep 2019 16:18:27 +0200
+
+linux (5.3.0-10.11) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-10.11 -proposed tracker (LP: #1843232)
+
+  * No sound inputs from the external microphone and headset on a Dell machine
+    (LP: #1842265)
+    - SAUCE: ALSA: hda - Expand pin_match function to match upcoming new tbls
+    - SAUCE: ALSA: hda - Define a fallback_pin_fixup_tbl for alc269 family
+
+  * Horizontal corrupted line at top of screen caused by framebuffer compression
+    (LP: #1840236)
+    - SAUCE: drm/i915/fbc: disable framebuffer compression on IceLake
+
+  * Add bpftool to linux-tools-common (LP: #1774815)
+    - [Debian] package bpftool in linux-tools-common
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc8
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 09 Sep 2019 10:00:41 +0200
+
+linux (5.3.0-9.10) eoan; urgency=medium
+
+  * eoan/linux: 5.3.0-9.10 -proposed tracker (LP: #1842393)
+
+  * shiftfs: mark kmem_cache as reclaimable (LP: #1842059)
+    - SAUCE: shiftfs: mark slab objects SLAB_RECLAIM_ACCOUNT
+
+  * shiftfs: drop entries from cache on unlink (LP: #1841977)
+    - SAUCE: shiftfs: fix buggy unlink logic
+
+  * Fix touchpad IRQ storm after S3 (LP: #1841396)
+    - pinctrl: intel: remap the pin number to gpio offset for irq enabled pin
+
+  * Please include DTBs for arm64 laptops (LP: #1842050)
+    - arm64: dts: qcom: Add Lenovo Miix 630
+    - arm64: dts: qcom: Add HP Envy x2
+    - arm64: dts: qcom: Add Asus NovaGo TP370QL
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: import aufs driver
+    - [Packaging]: ignore vbox modules when vbox is disabled
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc7
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Tue, 03 Sep 2019 10:27:33 +0200
+
+linux (5.3.0-8.9) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+  * Change kernel compression method to improve boot speed (LP: #1840934)
+    - [Config] change kernel compression method to improve boot speed
+    - [Packaging] add build dependencies for compression algorithms
+
+  * realtek r8822be kernel module fails after update to linux kernel-headers
+    5.0.0-21 (LP: #1838133)
+    - rtw88: Fix misuse of GENMASK macro
+    - rtw88: pci: Rearrange the memory usage for skb in RX ISR
+    - rtw88: pci: Use DMA sync instead of remapping in RX ISR
+    - rtw88: debug: dump tx power indexes in use
+    - rtw88: use txpwr_lmt_cfg_pair struct, not arrays
+    - rtw88: pci: remove set but not used variable 'ip_sel'
+    - rtw88: allow c2h operation in irq context
+    - rtw88: enclose c2h cmd handle with mutex
+    - rtw88: add BT co-existence support
+    - SAUCE: rtw88: pci: enable MSI interrupt
+
+  * VIMC module not available (CONFIG_VIDEO_VIMC not set) (LP: #1831482)
+    - [Config] Enable VIMC module
+
+  * Goodix touchpad may drop first input event (LP: #1840075)
+    - Revert "UBUNTU: SAUCE: i2c: designware: add G3 3590 into i2c quirk"
+    - Revert "UBUNTU: SAUCE: i2c: designware: add Inpiron 7591 into i2c quirk"
+    - Revert "UBUNTU: SAUCE: i2c: designware: add Inpiron/Vostro 7590 into i2c
+      quirk"
+    - Revert "UBUNTU: SAUCE: i2c: designware: Add disable runtime pm quirk"
+    - mfd: intel-lpss: Remove D3cold delay
+
+  * Include Sunix serial/parallel driver (LP: #1826716)
+    - serial: 8250_pci: Add support for Sunix serial boards
+    - parport: parport_serial: Add support for Sunix Multi I/O boards
+
+  * enable lockdown on s390x when Secure IPL is performed (LP: #1839622)
+    - SAUCE: (lockdown) s390/ipl: lockdown kernel when booted secure
+    - Ubuntu: [Config] Enable CONFIG_LOCK_DOWN_KERNEL on s390x.
+
+  * UBUNTU: SAUCE: shiftfs: pass correct point down (LP: #1837231)
+    - SAUCE: shiftfs: pass correct point down
+
+  * shiftfs: add O_DIRECT support (LP: #1837223)
+    - SAUCE: shiftfs: add O_DIRECT support
+
+  * Miscellaneous Ubuntu changes
+    - [Config] enable secureboot signing on s390x
+    - [Config] CONFIG_TEST_BLACKHOLE_DEV=m
+    - SAUCE: selftests: fib_tests: assign address to dummy1 for rp_filter tests
+    - [Debian] disable dkms builds for autopktest rebuilds
+    - update dkms package versions
+    - [Config] updateconfigs after v5.3-rc6 rebase
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc5
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 26 Aug 2019 10:09:42 +0200
+
+linux (5.3.0-7.8) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+  * Miscellaneous Ubuntu changes
+    - [Config] updateconfigs after v5.3-rc5 rebase
+    - remove missing module after updateconfigs
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc5
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 19 Aug 2019 15:31:24 +0200
+
+linux (5.3.0-6.7) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/bpf: prevent headers to be compiled as C code
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 14 Aug 2019 13:25:01 -0500
+
+linux (5.3.0-5.6) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Config] enable zfs build
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 13 Aug 2019 09:16:06 -0500
+
+linux (5.3.0-4.5) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+
+  * bcache: bch_allocator_thread(): hung task timeout (LP: #1784665) // Tight
+    timeout for bcache removal causes spurious failures (LP: #1796292)
+    - SAUCE: bcache: fix deadlock in bcache_allocator
+
+  * shiftfs: allow overlayfs (LP: #1838677)
+    - SAUCE: shiftfs: enable overlayfs on shiftfs
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Revert "kbuild: modpost: do not parse unnecessary rules for vmlinux
+      modpost"
+    - update dkms package versions
+    - enable nvidia dkms build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 12 Aug 2019 10:41:27 -0500
+
+linux (5.3.0-3.4) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - SAUCE: aufs: add "WITH Linux-syscall-note" to SPDX tag of uapi headers
+    - [Config] add mux-* to modules.ignore
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc3
+
+ -- Paolo Pisati <paolo.pisati@canonical.com>  Mon, 05 Aug 2019 18:17:09 +0200
+
+linux (5.3.0-2.3) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] add build dependincy on fontconfig
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 29 Jul 2019 12:18:46 -0400
+
+linux (5.3.0-1.2) eoan; urgency=medium
+
+  * System does not auto detect disconnection of external monitor (LP: #1835001)
+    - SAUCE: drm/i915: Add support for retrying hotplug
+    - SAUCE: drm/i915: Enable hotplug retry
+
+  * Please enable CONFIG_SCSI_UFS_QCOM as a module on arm64 (LP: #1837332)
+    - [Config] Enable CONFIG_SCSI_UFS_QCOM as a module on arm64.
+
+  * Add arm64 CONFIG_ARCH_MESON=y and related configs Edit (LP: #1820530)
+    - [Config] enable ARCH_MESON
+    - remove missing module
+    - [Config] update annotations after enabling ARCH_MESON for arm64
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: KVM: PPC: comment implicit fallthrough
+    - update dkms package versions
+    - [Config] enable vbox dkms build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 28 Jul 2019 23:10:16 -0400
+
+linux (5.3.0-0.1) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and
+      KEXEC_SIG_FORCE
+    - SAUCE: (efi-lockdown) kexec_file: Restrict at runtime if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) lockdown: Print current->comm in restriction messages
+    - SAUCE: (efi-lockdown) kexec: Allow kexec_file() with appropriate IMA policy
+      when locked down
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) KEYS: Make use of platform keyring for module
+      signature verify
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) furter KEXEC_VERIFY_SIG -> KEXEC_SIG updates
+    - SAUCE: (efi-lockdown) arm64: add kernel config option to lock down when in
+      Secure Boot mode
+    - SAUCE: import aufs driver
+    - SAUCE: aufs: rwsem owner changed to atmoic_long_t in 5.3
+    - [Config] disable zfs dkms build
+    - [Config] disable nvidia dkms build
+    - [Config] disable vbox dkms build
+    - SAUCE: perf diff: use llabs for s64 vaules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.3-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 23 Jul 2019 21:45:44 -0500
+
+linux (5.3.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 22 Jul 2019 10:19:04 -0500
+
+linux (5.2.0-9.10) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * input/mouse: alps trackpoint-only device doesn't work (LP: #1836752)
+    - SAUCE: Input: alps - don't handle ALPS cs19 trackpoint-only device
+    - SAUCE: Input: alps - fix a mismatch between a condition check and its
+      comment
+
+  * System does not auto detect disconnection of external monitor (LP: #1835001)
+    - SAUCE: drm/i915: Add support for retrying hotplug
+    - SAUCE: drm/i915: Enable hotplug retry
+
+  * alsa/hdmi: add icelake hdmi audio support for a Dell machine (LP: #1836916)
+    - SAUCE: ALSA: hda/hdmi - Remove duplicated define
+    - SAUCE: ALSA: hda/hdmi - Fix i915 reverse port/pin mapping
+
+  * First click on Goodix touchpad doesn't be recognized after runtime suspended
+    (LP: #1836836)
+    - SAUCE: i2c: designware: add G3 3590 into i2c quirk
+
+  * ixgbe{vf} - Physical Function gets IRQ when VF checks link state
+    (LP: #1836760)
+    - ixgbevf: Use cached link state instead of re-reading the value for ethtool
+
+  * Doing multiple squashfs (and other loop?) mounts in parallel breaks
+    (LP: #1836914)
+    - SAUCE: Revert "loop: Don't change loop device under exclusive opener"
+
+  * hibmc-drm Causes Unreadable Display for Huawei amd64 Servers (LP: #1762940)
+    - SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64
+    - [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only
+    - [Config] add hibmc-drm to modules.ignore
+
+  * hda/realtek: can't detect external mic on a Dell machine (LP: #1836755)
+    - ALSA: hda/realtek: apply ALC891 headset fixup to one Dell machine
+
+  * Enable Armada SOCs and MVPP2 NIC driver for disco/generic arm64
+    (LP: #1835054)
+    - [Config] Enable Armada SOCs and MVPP2 NIC driver for disco/generic arm64
+
+  * Unhide Nvidia HDA audio controller (LP: #1836308)
+    - PCI: Enable NVIDIA HDA controllers
+
+  * Intel ethernet I219 may wrongly detect connection speed as 10Mbps
+    (LP: #1836177)
+    - e1000e: Make watchdog use delayed work
+
+  * Sometimes touchpad(goodix) can't use tap function (LP: #1836020)
+    - SAUCE: i2c: designware: add Inpiron/Vostro 7590 into i2c quirk
+    - SAUCE: i2c: designware: add Inpiron 7591 into i2c quirk
+
+  * Intel ethernet I219 has slow RX speed (LP: #1836152)
+    - e1000e: add workaround for possible stalled packet
+    - e1000e: disable force K1-off feature
+
+  * bcache: risk of data loss on I/O errors in backing or caching devices
+    (LP: #1829563)
+    - Revert "bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()"
+
+  * bnx2x driver causes 100% CPU load (LP: #1832082)
+    - bnx2x: Prevent ptp_task to be rescheduled indefinitely
+
+  * fcf-protection=none patch with new version
+    - Revert "UBUNTU: SAUCE: kbuild: add -fcf-protection=none to retpoline flags"
+    - SAUCE: kbuild: add -fcf-protection=none when using retpoline flags
+
+  * CVE-2019-12614
+    - powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property()
+
+  * Eoan update: v5.2.1 upstream stable release (LP: #1836622)
+    - crypto: lrw - use correct alignmask
+    - crypto: talitos - rename alternative AEAD algos.
+    - fscrypt: don't set policy for a dead directory
+    - udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
+    - media: stv0297: fix frequency range limit
+    - ALSA: usb-audio: Fix parse of UAC2 Extension Units
+    - ALSA: hda/realtek - Headphone Mic can't record after S3
+    - tpm: Actually fail on TPM errors during "get random"
+    - tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
+    - block: fix .bi_size overflow
+    - block, bfq: NULL out the bic when it's no longer valid
+    - perf intel-pt: Fix itrace defaults for perf script
+    - perf auxtrace: Fix itrace defaults for perf script
+    - perf intel-pt: Fix itrace defaults for perf script intel-pt documentation
+    - perf pmu: Fix uncore PMU alias list for ARM64
+    - perf thread-stack: Fix thread stack return from kernel for kernel-only case
+    - perf header: Assign proper ff->ph in perf_event__synthesize_features()
+    - x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
+    - x86/tls: Fix possible spectre-v1 in do_get_thread_area()
+    - Documentation: Add section about CPU vulnerabilities for Spectre
+    - Documentation/admin: Remove the vsyscall=native documentation
+    - mwifiex: Don't abort on small, spec-compliant vendor IEs
+    - USB: serial: ftdi_sio: add ID for isodebug v1
+    - USB: serial: option: add support for GosunCn ME3630 RNDIS mode
+    - Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
+    - p54usb: Fix race between disconnect and firmware loading
+    - usb: gadget: f_fs: data_len used before properly set
+    - usb: gadget: ether: Fix race between gether_disconnect and rx_submit
+    - usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
+    - usb: renesas_usbhs: add a workaround for a race condition of workqueue
+    - drivers/usb/typec/tps6598x.c: fix portinfo width
+    - drivers/usb/typec/tps6598x.c: fix 4CC cmd write
+    - p54: fix crash during initialization
+    - staging: comedi: dt282x: fix a null pointer deref on interrupt
+    - staging: wilc1000: fix error path cleanup in wilc_wlan_initialize()
+    - staging: bcm2835-camera: Restore return behavior of ctrl_set_bitrate()
+    - staging: comedi: amplc_pci230: fix null pointer deref on interrupt
+    - staging: mt7621-pci: fix PCIE_FTS_NUM_LO macro
+    - HID: Add another Primax PIXART OEM mouse quirk
+    - lkdtm: support llvm-objcopy
+    - binder: fix memory leak in error path
+    - binder: return errors from buffer copy functions
+    - iio: adc: stm32-adc: add missing vdda-supply
+    - coresight: Potential uninitialized variable in probe()
+    - coresight: etb10: Do not call smp_processor_id from preemptible
+    - coresight: tmc-etr: Do not call smp_processor_id() from preemptible
+    - coresight: tmc-etr: alloc_perf_buf: Do not call smp_processor_id from
+      preemptible
+    - coresight: tmc-etf: Do not call smp_processor_id from preemptible
+    - carl9170: fix misuse of device driver API
+    - Revert "x86/build: Move _etext to actual end of .text"
+    - VMCI: Fix integer overflow in VMCI handle arrays
+    - staging: vchiq_2835_arm: revert "quit using custom down_interruptible()"
+    - staging: vchiq: make wait events interruptible
+    - staging: vchiq: revert "switch to wait_for_completion_killable"
+    - staging: fsl-dpaa2/ethsw: fix memory leak of switchdev_work
+    - staging: bcm2835-camera: Replace spinlock protecting context_map with mutex
+    - staging: bcm2835-camera: Ensure all buffers are returned on disable
+    - staging: bcm2835-camera: Remove check of the number of buffers supplied
+    - staging: bcm2835-camera: Handle empty EOS buffers whilst streaming
+    - staging: rtl8712: reduce stack usage, again
+    - Linux 5.2.1
+    - [Config] updateconfigs after v5.2.1 stable update
+
+  * fcf-protection=none patch with upstream version
+    - Revert "UBUNTU: SAUCE: add -fcf-protection=none to retpoline flags"
+    - SAUCE: kbuild: add -fcf-protection=none to retpoline flags
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/ftrace: avoid failure when trying to probe a notrace
+      function
+    - SAUCE: selftests/powerpc/ptrace: fix build failure
+    - update dkms package versions
+    - [Packaging] add zlua to zfs-modules.ignore
+    - update dkms package versions
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 19 Jul 2019 15:04:45 -0500
+
+linux (5.2.0-8.9) eoan; urgency=medium
+
+  * linux: 5.2.0-8.9 -proposed tracker (LP: #1835700)
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] replace zfs and spl build with zfs 0.8.1-1ubuntu1
+    - SAUCE: test_bpf: remove expected fail for Ctx heavy transformations test on
+      s390
+    - SAUCE: add -fcf-protection=none to retpoline flags
+    - SAUCE: usbip: ensure strings copied using strncpy are null-terminated
+    - SAUCE: usbip: add -Wno-address-of-packed-member to EXTRA_CFLAGS
+    - SAUCE: perf jvmti: ensure strncpy result is null-terminated
+    - update dkms package versions
+    - add removed zfs modules to modules.ignore
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 08 Jul 2019 07:13:41 -0500
+
+linux (5.2.0-7.8) eoan; urgency=medium
+
+  * Kernel panic upon resetting ixgbe SR-IOV VFIO virtual function using 5.0
+    kernel (LP: #1829652)
+    - SAUCE: ixgbe: Avoid NULL pointer dereference with VF on non-IPsec hw
+
+  * Hi1620 driver updates from upstream 5.2 merge window (LP: #1830815)
+    - net: hns3: initialize CPU reverse mapping
+    - net: hns3: refine the flow director handle
+    - net: hns3: add aRFS support for PF
+    - net: hns3: fix for FEC configuration
+    - RDMA/hns: Remove unnecessary print message in aeq
+    - RDMA/hns: Update CQE specifications
+    - RDMA/hns: Move spin_lock_irqsave to the correct place
+    - RDMA/hns: Remove jiffies operation in disable interrupt context
+    - RDMA/hns: Replace magic numbers with #defines
+    - net: hns3: fix compile warning without CONFIG_RFS_ACCEL
+    - net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro
+    - net: hns3: add support for dump firmware statistics by debugfs
+    - net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has
+      registered
+    - net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE client has
+      registered
+    - net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC client has
+      registered
+    - net: hns3: modify hclge_init_client_instance()
+    - net: hns3: modify hclgevf_init_client_instance()
+    - net: hns3: add handshake with hardware while doing reset
+    - net: hns3: stop schedule reset service while unloading driver
+    - net: hns3: adjust hns3_uninit_phy()'s location in the hns3_client_uninit()
+    - net: hns3: fix a memory leak issue for hclge_map_unmap_ring_to_vf_vector
+    - RDMA/hns: Bugfix for posting multiple srq work request
+    - net: hns3: remove redundant core reset
+    - net: hns3: don't configure new VLAN ID into VF VLAN table when it's full
+    - net: hns3: fix VLAN filter restore issue after reset
+    - net: hns3: set the port shaper according to MAC speed
+    - net: hns3: add a check to pointer in error_detected and slot_reset
+    - net: hns3: set ops to null when unregister ad_dev
+    - net: hns3: add handling of two bits in MAC tunnel interrupts
+    - net: hns3: remove setting bit of reset_requests when handling mac tunnel
+      interrupts
+    - net: hns3: add opcode about query and clear RAS & MSI-X to special opcode
+    - net: hns3: delay and separate enabling of NIC and ROCE HW errors
+    - RDMA/hns: fix inverted logic of readl read and shift
+    - RDMA/hns: Bugfix for filling the sge of srq
+    - net: hns3: log detail error info of ROCEE ECC and AXI errors
+    - net: hns3: fix wrong size of mailbox responding data
+    - net: hns3: make HW GRO handling compliant with SW GRO
+    - net: hns3: replace numa_node_id with numa_mem_id for buffer reusing
+    - net: hns3: refactor hns3_get_new_int_gl function
+    - net: hns3: trigger VF reset if a VF has an over_8bd_nfe_err
+    - net: hns3: delete the redundant user NIC codes
+    - net: hns3: small changes for magic numbers
+    - net: hns3: use macros instead of magic numbers
+    - net: hns3: refactor PF/VF RSS hash key configuration
+    - net: hns3: some modifications to simplify and optimize code
+    - net: hns3: fix some coding style issues
+    - net: hns3: delay setting of reset level for hw errors until slot_reset is
+      called
+    - net: hns3: fix avoid unnecessary resetting for the H/W errors which do not
+      require reset
+    - net: hns3: process H/W errors occurred before HNS dev initialization
+    - net: hns3: add recovery for the H/W errors occurred before the HNS dev
+      initialization
+    - net: hns3: some changes of MSI-X bits in PPU(RCB)
+    - net: hns3: extract handling of mpf/pf msi-x errors into functions
+    - net: hns3: clear restting state when initializing HW device
+    - net: hns3: free irq when exit from abnormal branch
+    - net: hns3: fix for dereferencing before null checking
+    - net: hns3: fix for skb leak when doing selftest
+    - net: hns3: delay ring buffer clearing during reset
+    - net: hns3: some variable modification
+    - net: hns3: fix dereference of ae_dev before it is null checked
+    - scsi: hisi_sas: Delete PHY timers when rmmod or probe failed
+    - scsi: hisi_sas: Fix the issue of argument mismatch of printing ecc errors
+    - scsi: hisi_sas: Reduce HISI_SAS_SGE_PAGE_CNT in size
+    - scsi: hisi_sas: Change the type of some numbers to unsigned
+    - scsi: hisi_sas: Ignore the error code between phy down to phy up
+    - scsi: hisi_sas: Disable stash for v3 hw
+    - net: hns3: Add missing newline at end of file
+    - RDMa/hns: Don't stuck in endless timeout loop
+
+  * Sometimes touchpad automatically trigger double click (LP: #1833484)
+    - SAUCE: i2c: designware: Add disable runtime pm quirk
+
+  * Add pointstick support on HP ZBook 17 G5 (LP: #1833387)
+    - Revert "HID: multitouch: Support ALPS PTP stick with pid 0x120A"
+
+  * depmod may prefer unsigned l-r-m nvidia modules to signed modules
+    (LP: #1834479)
+    - [Packaging] dkms-build--nvidia-N -- clean up unsigned ko files
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/powerpc: disable signal_fuzzer test
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 01 Jul 2019 07:22:18 -0500
+
+linux (5.2.0-6.7) eoan; urgency=medium
+
+  * hinic: fix oops due to race in set_rx_mode (LP: #1832048)
+    - hinic: fix a bug in set rx mode
+
+  * Miscellaneous Ubuntu changes
+    - rebase to v5.2-rc6
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 23 Jun 2019 23:36:11 -0500
+
+linux (5.2.0-5.6) eoan; urgency=medium
+
+  * QCA9377 isn't being recognized sometimes (LP: #1757218)
+    - SAUCE: USB: Disable USB2 LPM at shutdown
+
+  * shiftfs: allow changing ro/rw for subvolumes (LP: #1832316)
+    - SAUCE: shiftfs: allow changing ro/rw for subvolumes
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - [Packaging] replace nvidia-418 dkms build with nvidia-430
+    - SAUCE: import aufs driver
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 17 Jun 2019 15:04:12 -0500
+
+linux (5.2.0-4.5) eoan; urgency=medium
+
+  * arm64: cma_alloc errors at boot (LP: #1823753)
+    - [Config] Bump CMA_SIZE_MBYTES to 32 on arm64
+    - dma-contiguous: add dma_{alloc,free}_contiguous() helpers
+    - dma-contiguous: use fallback alloc_pages for single pages
+    - dma-contiguous: fix !CONFIG_DMA_CMA version of dma_{alloc,
+      free}_contiguous()
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_MFD_TQMX86=n for s390x
+    - [Config] CONFIG_GPIO_AMD_FCH=n for s390x
+    - [Config] CONFIG_BACKLIGHT_CLASS_DEVICE=n on s390x
+    - [Config] CONFIG_LCD_CLASS_DEVICE=n for s390x
+    - [Config] CONFIG_DRM_ETNAVIV=m for armhf generic-lpae
+    - [Config] CONFIG_DRM_NOUVEAU_SVM=n
+    - [Config] CONFIG_HWMON=n for s390x
+    - [Config] CONFIG_NEW_LEDS=n for s390x
+    - [Config] CONFIG_MTD_NAND_OMAP2=y for armhf
+    - [Config] CONFIG_VOP_BUS=n for non-amd64 arches
+    - [Config] CONFIG_TI_CPSW_PHY_SEL=n
+    - [Config] CONFIG_INTERCONNECT=n for s390x
+    - [Config] CONFIG_SCSI_GDTH=n for s390x
+    - [Config] CONFIG_PACKING=n for s390x
+    - [Config] CONFIG_ARCH_MILBEAUT=y for armhf
+    - [Config] update annotations following config review
+    - update dkms package versions
+    - [Config] enable nvidia dkms build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 10 Jun 2019 07:00:11 -0500
+
+linux (5.2.0-3.4) eoan; urgency=medium
+
+  * [18.04/18.10] File libperf-jvmti.so is missing in linux-tools-common deb on
+    Ubuntu (LP: #1761379)
+    - [Packaging] Support building libperf-jvmti.so
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Revert "bpf, selftest: test global data/bss/rodata sections"
+    - update dkms package versions
+    - [Config] enable zfs
+    - rebase to v5.2-rc3
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 02 Jun 2019 21:48:50 -0500
+
+linux (5.2.0-2.3) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: perf arm64: Fix mksyscalltbl when system kernel headers are ahead of
+      the kernel
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 28 May 2019 07:12:39 -0500
+
+linux (5.2.0-1.2) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_INTEGRITY_PLATFORM_KEYRING=y
+    - update dkms package versions
+    - [Config] enable vbox dkms build
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 27 May 2019 21:11:27 -0500
+
+linux (5.2.0-0.1) eoan; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: import aufs driver
+    - [Packaging] disable ZFS
+    - [Packaging] disable nvidia
+    - [Packaging] dkms-build -- expand paths searched for make.log files
+    - add virtualbox-guest-dkms dkms package build
+    - enable vbox dkms build for amd64 and i386
+    - update dkms package versions
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and
+      KEXEC_SIG_FORCE
+    - SAUCE: (efi-lockdown) kexec_file: Restrict at runtime if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) lockdown: Print current->comm in restriction messages
+    - SAUCE: (efi-lockdown) kexec: Allow kexec_file() with appropriate IMA policy
+      when locked down
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) KEYS: Make use of platform keyring for module
+      signature verify
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) furter KEXEC_VERIFY_SIG -> KEXEC_SIG updates
+    - SAUCE: (efi-lockdown) arm64: add kernel config option to lock down when in
+      Secure Boot mode
+    - update dkms package versions
+    - [Config] disable vbox build
+    - SAUCE: s390: mark __cpacf_check_opcode() and cpacf_query_func() as
+      __always_inline
+    - SAUCE: IB/mlx5: use size_t instead of u64 when dividing
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.2-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 21 May 2019 11:18:43 -0500
+
+linux (5.2.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 21 May 2019 07:34:43 -0500
+
+linux (5.1.0-2.2) eoan; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+
+  * Eoan update: v5.1.2 upstream stable release (LP: #1829050)
+    - x86/msr-index: Cleanup bit defines
+    - x86/speculation: Consolidate CPU whitelists
+    - x86/speculation/mds: Add basic bug infrastructure for MDS
+    - x86/speculation/mds: Add BUG_MSBDS_ONLY
+    - x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests
+    - x86/speculation/mds: Add mds_clear_cpu_buffers()
+    - x86/speculation/mds: Clear CPU buffers on exit to user
+    - x86/kvm/vmx: Add MDS protection when L1D Flush is not active
+    - x86/speculation/mds: Conditionally clear CPU buffers on idle entry
+    - x86/speculation/mds: Add mitigation control for MDS
+    - x86/speculation/mds: Add sysfs reporting for MDS
+    - x86/speculation/mds: Add mitigation mode VMWERV
+    - Documentation: Move L1TF to separate directory
+    - Documentation: Add MDS vulnerability documentation
+    - x86/speculation/mds: Add mds=full,nosmt cmdline option
+    - x86/speculation: Move arch_smt_update() call to after mitigation decisions
+    - x86/speculation/mds: Add SMT warning message
+    - x86/speculation/mds: Fix comment
+    - x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off
+    - cpu/speculation: Add 'mitigations=' cmdline option
+    - x86/speculation: Support 'mitigations=' cmdline option
+    - powerpc/speculation: Support 'mitigations=' cmdline option
+    - s390/speculation: Support 'mitigations=' cmdline option
+    - x86/speculation/mds: Add 'mitigations=' support for MDS
+    - x86/mds: Add MDSUM variant to the MDS documentation
+    - Documentation: Correct the possible MDS sysfs values
+    - x86/speculation/mds: Fix documentation typo
+    - Linux 5.1.2
+
+  * Eoan update: v5.1.1 upstream stable release (LP: #1829046)
+    - Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup()
+    - ubsan: Fix nasty -Wbuiltin-declaration-mismatch GCC-9 warnings
+    - staging: greybus: power_supply: fix prop-descriptor request size
+    - staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context.
+    - staging: most: cdev: fix chrdev_region leak in mod_exit
+    - staging: most: sound: pass correct device when creating a sound card
+    - usb: dwc3: Allow building USB_DWC3_QCOM without EXTCON
+    - usb: dwc3: Fix default lpm_nyet_threshold value
+    - USB: serial: f81232: fix interrupt worker not stop
+    - USB: cdc-acm: fix unthrottle races
+    - usb-storage: Set virt_boundary_mask to avoid SG overflows
+    - genirq: Prevent use-after-free and work list corruption
+    - intel_th: pci: Add Comet Lake support
+    - iio: adc: qcom-spmi-adc5: Fix of-based module autoloading
+    - cpufreq: armada-37xx: fix frequency calculation for opp
+    - ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for
+      hibernate
+    - soc: sunxi: Fix missing dependency on REGMAP_MMIO
+    - scsi: lpfc: change snprintf to scnprintf for possible overflow
+    - scsi: qla2xxx: Fix incorrect region-size setting in optrom SYSFS routines
+    - scsi: qla2xxx: Set remote port devloss timeout to 0
+    - scsi: qla2xxx: Fix device staying in blocked state
+    - Bluetooth: hidp: fix buffer overflow
+    - Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
+    - Bluetooth: Fix not initializing L2CAP tx_credits
+    - Bluetooth: hci_bcm: Fix empty regulator supplies for Intel Macs
+    - UAS: fix alignment of scatter/gather segments
+    - ASoC: Intel: avoid Oops if DMA setup fails
+    - i3c: Fix a shift wrap bug in i3c_bus_set_addr_slot_status()
+    - locking/futex: Allow low-level atomic operations to return -EAGAIN
+    - arm64: futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP
+    - Linux 5.1.1
+
+  * shiftfs: lock security sensitive superblock flags (LP: #1827122)
+    - SAUCE: shiftfs: lock down certain superblock flags
+
+  * Please package libbpf (which is done out of the kernel src) in Debian [for
+    19.10] (LP: #1826410)
+    - SAUCE: tools -- fix add ability to disable libbfd
+
+  * ratelimit cma_alloc messages (LP: #1828092)
+    - SAUCE: cma: ratelimit cma_alloc error messages
+
+  * Headphone jack switch sense is inverted: plugging in headphones disables
+    headphone output (LP: #1824259)
+    - ASoC: rt5645: Headphone Jack sense inverts on the LattePanda board
+
+  * There are 4 HDMI/Displayport audio output listed in sound setting without
+    attach any HDMI/DP monitor (LP: #1827967)
+    - ALSA: hda/hdmi - Read the pin sense from register when repolling
+    - ALSA: hda/hdmi - Consider eld_valid when reporting jack event
+
+  * CONFIG_LOG_BUF_SHIFT set to 14 is too low on arm64 (LP: #1824864)
+    - [Config] CONFIG_LOG_BUF_SHIFT=18 on all 64bit arches
+
+  * CTAUTO:DevOps:860.50:devops4fp1:Error occurred during LINUX Dmesg error
+    Checking for all LINUX clients for devops4p10 (LP: #1766201)
+    - SAUCE: integrity: downgrade error to warning
+
+  * linux-buildinfo: pull out ABI information into its own package
+    (LP: #1806380)
+    - [Packaging] autoreconstruct -- base tag is always primary mainline version
+
+  * [SRU] Please sync vbox modules from virtualbox 6.0.6 on next kernel update
+    (LP: #1825210)
+    - vbox-update: updates for renamed makefiles
+    - ubuntu: vbox -- update to 6.0.6-dfsg-1
+
+  * autofs kernel module missing (LP: #1824333)
+    - [Config] Update autofs4 path in inclusion list
+
+  * The Realtek card reader does not enter PCIe 1.1/1.2 (LP: #1825487)
+    - SAUCE: misc: rtsx: Fixed rts5260 power saving parameter and sd glitch
+
+  * CVE-2019-3874
+    - sctp: implement memory accounting on tx path
+    - sctp: implement memory accounting on rx path
+
+  * apparmor does not start in Disco LXD containers (LP: #1824812)
+    - SAUCE: shiftfs: use separate llseek method for directories
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] autoreconstruct -- remove for -rc kernels
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) furter KEXEC_VERIFY_SIG -> KEXEC_SIG updates
+    - [Config] (efi-lockdown): update configs after efi lockdown patch refresh
+    - [Packaging] don't delete efi_parser.c
+    - vbox-update -- do not fix up KERN_DIR or KBUILD_EXTMOD
+    - ubuntu: vbox -- update to 6.0.6-dfsg-2
+    - add nvidia-418 dkms build
+    - remove virtualbox guest drivers
+    - [Packaging] dkms-build -- expand paths searched for make.log files
+    - add virtualbox-guest-dkms dkms package build
+    - enable vbox dkms build for amd64 and i386
+    - [Config] update configs for v5.1(-rc7)? rebase
+    - update dkms package versions
+    - Add the ability to lock down access to the running kernel image
+    - Enforce module signatures if the kernel is locked down
+    - Restrict /dev/{mem,kmem,port} when the kernel is locked down
+    - kexec_load: Disable at runtime if the kernel is locked down
+    - Copy secure_boot flag in boot params across kexec reboot
+    - kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE
+    - kexec_file: Restrict at runtime if the kernel is locked down
+    - hibernate: Disable when the kernel is locked down
+    - uswsusp: Disable when the kernel is locked down
+    - PCI: Lock down BAR access when the kernel is locked down
+    - x86: Lock down IO port access when the kernel is locked down
+    - x86/msr: Restrict MSR access when the kernel is locked down
+    - ACPI: Limit access to custom_method when the kernel is locked down
+    - acpi: Ignore acpi_rsdp kernel param when the kernel has been locked down
+    - acpi: Disable ACPI table override if the kernel is locked down
+    - acpi: Disable APEI error injection if the kernel is locked down
+    - Prohibit PCMCIA CIS storage when the kernel is locked down
+    - Lock down TIOCSSERIAL
+    - Lock down module params that specify hardware parameters (eg. ioport)
+    - x86/mmiotrace: Lock down the testmmiotrace module
+    - Lock down /proc/kcore
+    - Lock down kprobes
+    - bpf: Restrict kernel image access functions when the kernel is locked down
+    - Lock down perf
+    - debugfs: Restrict debugfs when the kernel is locked down
+    - lockdown: Print current->comm in restriction messages
+    - kexec: Allow kexec_file() with appropriate IMA policy when locked down
+    - Make get_cert_list() not complain about cert lists that aren't present.
+    - Add efi_status_to_str() and rework efi_status_to_err().
+    - Make get_cert_list() use efi_status_to_str() to print error messages.
+    - efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode
+    - efi: Lock down the kernel if booted in secure boot mode
+    - KEYS: Make use of platform keyring for module signature verify
+
+  * Miscellaneous upstream changes
+    - ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14)
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 14 May 2019 12:32:56 -0500
+
+linux (5.1.0-1.1) eoan; urgency=medium
+
+  * bionic: fork out linux-snapdragon into its own topic kernel (LP: #1820868)
+    - [Packaging]: really drop snapdragon
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: fix vbox use of MAP_SHARED
+    - SAUCE: fix vbox use of vm_fault_t
+    - [Packaging] disable ZFS
+    - [Packaging] disable nvidia
+    - SAUCE: perf annotate: Fix build on 32 bit for BPF annotation
+    - [Config]: updateconfig after rebase to v5.1-rc
+    - [Config]: build ETNAVIV only on arm platforms
+    - [Config]: Disable CMA on non-arm platforms
+    - [Config]: MMC_CQHCI is needed by some built-in drivers
+    - [Config]: a.out support has been deprecated
+    - [Config]: R3964 was marked as BROKEN
+    - [Config]: Add SENSIRION_SGP30 module
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: tools: lib/bpf -- add generated headers to search
+      path"
+    - Revert "UBUNTU: SAUCE: btqcomsmd: introduce BT_QCOMSMD_HACK"
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 25 Apr 2019 10:03:25 -0300
+
+linux (5.1.0-0.0) eoan; urgency=medium
+
+  * Dummy entry.
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Thu, 25 Apr 2019 09:49:47 -0300
+
+linux (5.0.0-13.14) disco; urgency=medium
+
+  * linux: 5.0.0-13.14 -proposed tracker (LP: #1824819)
+
+  * Display only has 640x480 (LP: #1824677)
+    - Revert "UBUNTU: SAUCE: drm/nouveau: Disable nouveau driver by default"
+
+  * shiftfs: use after free when checking mount options (LP: #1824735)
+    - SAUCE: shiftfs: prevent use-after-free when verifying mount options
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 15 Apr 2019 09:11:23 -0500
+
+linux (5.0.0-12.13) disco; urgency=medium
+
+  * linux: 5.0.0-12.13 -proposed tracker (LP: #1824726)
+
+  * Linux 5.0 black screen on boot, display flickers (i915 regression with
+    certain laptop panels) (LP: #1824216)
+    - drm/i915/dp: revert back to max link rate and lane count on eDP
+
+  * kernel BUG at fs/attr.c:287 when using shiftfs (LP: #1824717)
+    - SAUCE: shiftfs: fix passing of attrs to underaly for setattr
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 14 Apr 2019 13:38:05 -0500
+
+linux (5.0.0-11.12) disco; urgency=medium
+
+  * linux: 5.0.0-11.12 -proposed tracker (LP: #1824383)
+
+  * hns3: PPU_PF_ABNORMAL_INT_ST over_8bd_no_fe found [error status=0x1]
+    (LP: #1824194)
+    - net: hns3: fix for not calculating tx bd num correctly
+
+  * disco: unable to use iptables/enable ufw under -virtual kernel
+    (LP: #1823862)
+    - [Packaging] add bpfilter to linux-modules
+
+  * Make shiftfs a module rather than built-in (LP: #1824354)
+    - [Config] CONFIG_SHIFT_FS=m
+
+  * shiftfs: chown sets untranslated ids in lower fs (LP: #1824350)
+    - SAUCE: shiftfs: use translated ids when chaning lower fs attrs
+
+  * [Hyper-V] KVP daemon fails to start on first boot of disco VM (LP: #1820063)
+    - [Packaging] bind hv_kvp_daemon startup to hv_kvp device
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 11 Apr 2019 10:17:19 -0500
+
+linux (5.0.0-10.11) disco; urgency=medium
+
+  * linux: 5.0.0-10.11 -proposed tracker (LP: #1823936)
+
+  * Apparmor enforcement failure in lxc selftests (LP: #1823379)
+    - SAUCE: apparmor: Restore Y/N in /sys for apparmor's "enabled"
+
+  * systemd cause kernel trace "BUG: unable to handle kernel paging request at
+    6db23a14" on Cosmic i386 (LP: #1813244)
+    - openvswitch: fix flow actions reallocation
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 09 Apr 2019 08:30:38 -0500
+
+linux (5.0.0-9.10) disco; urgency=medium
+
+  * linux: 5.0.0-9.10 -proposed tracker (LP: #1823228)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] update helper scripts
+    - [Packaging] resync retpoline extraction
+
+  * Huawei Hi1822 NIC has poor performance (LP: #1820187)
+    - net-next/hinic: replace disable_irq_nosync/enable_irq
+
+  * Add uid shifting overlay filesystem (shiftfs) (LP: #1823186)
+    - shiftfs: uid/gid shifting bind mount
+    - shiftfs: rework and extend
+    - shiftfs: support some btrfs ioctls
+    - [Config] enable shiftfs
+
+  * Cannot boot or install - have to use nomodeset (LP: #1821820)
+    - Revert "drm/i915/fbdev: Actually configure untiled displays"
+
+  * Disco update: v5.0.6 upstream stable release (LP: #1823060)
+    - netfilter: nf_tables: fix set double-free in abort path
+    - dccp: do not use ipv6 header for ipv4 flow
+    - genetlink: Fix a memory leak on error path
+    - gtp: change NET_UDP_TUNNEL dependency to select
+    - ipv6: make ip6_create_rt_rcu return ip6_null_entry instead of NULL
+    - mac8390: Fix mmio access size probe
+    - mISDN: hfcpci: Test both vendor & device ID for Digium HFC4S
+    - net: aquantia: fix rx checksum offload for UDP/TCP over IPv6
+    - net: datagram: fix unbounded loop in __skb_try_recv_datagram()
+    - net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec
+    - net: phy: meson-gxl: fix interrupt support
+    - net: rose: fix a possible stack overflow
+    - net: stmmac: fix memory corruption with large MTUs
+    - net-sysfs: call dev_hold if kobject_init_and_add success
+    - net: usb: aqc111: Extend HWID table by QNAP device
+    - packets: Always register packet sk in the same order
+    - rhashtable: Still do rehash when we get EEXIST
+    - sctp: get sctphdr by offset in sctp_compute_cksum
+    - sctp: use memdup_user instead of vmemdup_user
+    - tcp: do not use ipv6 header for ipv4 flow
+    - tipc: allow service ranges to be connect()'ed on RDM/DGRAM
+    - tipc: change to check tipc_own_id to return in tipc_net_stop
+    - tipc: fix cancellation of topology subscriptions
+    - tun: properly test for IFF_UP
+    - vrf: prevent adding upper devices
+    - vxlan: Don't call gro_cells_destroy() before device is unregistered
+    - thunderx: enable page recycling for non-XDP case
+    - thunderx: eliminate extra calls to put_page() for pages held for recycling
+    - net: dsa: mv88e6xxx: fix few issues in mv88e6390x_port_set_cmode
+    - net: mii: Fix PAUSE cap advertisement from linkmode_adv_to_lcl_adv_t()
+      helper
+    - net: phy: don't clear BMCR in genphy_soft_reset
+    - r8169: fix cable re-plugging issue
+    - ila: Fix rhashtable walker list corruption
+    - tun: add a missing rcu_read_unlock() in error path
+    - powerpc/fsl: Fix the flush of branch predictor.
+    - Btrfs: fix incorrect file size after shrinking truncate and fsync
+    - btrfs: remove WARN_ON in log_dir_items
+    - btrfs: don't report readahead errors and don't update statistics
+    - btrfs: Fix bound checking in qgroup_trace_new_subtree_blocks
+    - btrfs: Avoid possible qgroup_rsv_size overflow in
+      btrfs_calculate_inode_block_rsv_size
+    - Btrfs: fix assertion failure on fsync with NO_HOLES enabled
+    - locks: wake any locks blocked on request before deadlock check
+    - tracing: initialize variable in create_dyn_event()
+    - ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time
+    - powerpc: bpf: Fix generation of load/store DW instructions
+    - vfio: ccw: only free cp on final interrupt
+    - NFS: Fix nfs4_lock_state refcounting in nfs4_alloc_{lock,unlock}data()
+    - NFS: fix mount/umount race in nlmclnt.
+    - NFSv4.1 don't free interrupted slot on open
+    - net: dsa: qca8k: remove leftover phy accessors
+    - ALSA: rawmidi: Fix potential Spectre v1 vulnerability
+    - ALSA: seq: oss: Fix Spectre v1 vulnerability
+    - ALSA: pcm: Fix possible OOB access in PCM oss plugins
+    - ALSA: pcm: Don't suspend stream in unrecoverable PCM state
+    - ALSA: hda/realtek - Fixed Headset Mic JD not stable
+    - ALSA: hda/realtek: merge alc_fixup_headset_jack to alc295_fixup_chromebook
+    - ALSA: hda/realtek - Add support headset mode for DELL WYSE AIO
+    - ALSA: hda/realtek - Add support headset mode for New DELL WYSE NB
+    - ALSA: hda/realtek: Enable headset MIC of Acer AIO with ALC286
+    - ALSA: hda/realtek: Enable headset MIC of Acer Aspire Z24-890 with ALC286
+    - ALSA: hda/realtek - Add support for Acer Aspire E5-523G/ES1-432 headset mic
+    - ALSA: hda/realtek: Enable ASUS X441MB and X705FD headset MIC with ALC256
+    - ALSA: hda/realtek: Enable headset mic of ASUS P5440FF with ALC256
+    - ALSA: hda/realtek: Enable headset MIC of ASUS X430UN and X512DK with ALC256
+    - ALSA: hda/realtek - Fix speakers on Acer Predator Helios 500 Ryzen laptops
+    - kbuild: modversions: Fix relative CRC byte order interpretation
+    - fs/open.c: allow opening only regular files during execve()
+    - ocfs2: fix inode bh swapping mixup in ocfs2_reflink_inodes_lock
+    - scsi: sd: Fix a race between closing an sd device and sd I/O
+    - scsi: sd: Quiesce warning if device does not report optimal I/O size
+    - scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host
+    - scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP
+      devices
+    - drm/rockchip: vop: reset scale mode when win is disabled
+    - tty/serial: atmel: Add is_half_duplex helper
+    - tty/serial: atmel: RS485 HD w/DMA: enable RX after TX is stopped
+    - tty: mxs-auart: fix a potential NULL pointer dereference
+    - tty: atmel_serial: fix a potential NULL pointer dereference
+    - tty: serial: qcom_geni_serial: Initialize baud in qcom_geni_console_setup
+    - staging: comedi: ni_mio_common: Fix divide-by-zero for DIO cmdtest
+    - staging: olpc_dcon_xo_1: add missing 'const' qualifier
+    - staging: speakup_soft: Fix alternate speech with other synths
+    - staging: vt6655: Remove vif check from vnt_interrupt
+    - staging: vt6655: Fix interrupt race condition on device start up.
+    - staging: erofs: fix to handle error path of erofs_vmap()
+    - staging: erofs: fix error handling when failed to read compresssed data
+    - staging: erofs: keep corrupted fs from crashing kernel in erofs_readdir()
+    - serial: max310x: Fix to avoid potential NULL pointer dereference
+    - serial: mvebu-uart: Fix to avoid a potential NULL pointer dereference
+    - serial: sh-sci: Fix setting SCSCR_TIE while transferring data
+    - USB: serial: cp210x: add new device id
+    - USB: serial: ftdi_sio: add additional NovaTech products
+    - USB: serial: mos7720: fix mos_parport refcount imbalance on error path
+    - USB: serial: option: set driver_info for SIM5218 and compatibles
+    - USB: serial: option: add support for Quectel EM12
+    - USB: serial: option: add Olicard 600
+    - ACPI / CPPC: Fix guaranteed performance handling
+    - Disable kgdboc failed by echo space to /sys/module/kgdboc/parameters/kgdboc
+    - fs/proc/proc_sysctl.c: fix NULL pointer dereference in put_links
+    - drivers/block/zram/zram_drv.c: fix idle/writeback string compare
+    - blk-mq: fix sbitmap ws_active for shared tags
+    - cpufreq: intel_pstate: Also use CPPC nominal_perf for base_frequency
+    - cpufreq: scpi: Fix use after free
+    - drm/vgem: fix use-after-free when drm_gem_handle_create() fails
+    - drm/vkms: fix use-after-free when drm_gem_handle_create() fails
+    - drm/i915: Mark AML 0x87CA as ULX
+    - drm/i915/gvt: Fix MI_FLUSH_DW parsing with correct index check
+    - drm/i915/icl: Fix the TRANS_DDI_FUNC_CTL2 bitfield macro
+    - gpio: exar: add a check for the return value of ida_simple_get fails
+    - gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input
+    - phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG PHYs
+    - usb: mtu3: fix EXTCON dependency
+    - USB: gadget: f_hid: fix deadlock in f_hidg_write()
+    - usb: common: Consider only available nodes for dr_mode
+    - mm/memory.c: fix modifying of page protection by insert_pfn()
+    - usb: host: xhci-rcar: Add XHCI_TRUST_TX_LENGTH quirk
+    - xhci: Fix port resume done detection for SS ports with LPM enabled
+    - usb: xhci: dbc: Don't free all memory with spinlock held
+    - xhci: Don't let USB3 ports stuck in polling state prevent suspend
+    - usb: cdc-acm: fix race during wakeup blocking TX traffic
+    - usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps
+    - usb: typec: Fix unchecked return value
+    - mm/hotplug: fix offline undo_isolate_page_range()
+    - mm: add support for kmem caches in DMA32 zone
+    - iommu/io-pgtable-arm-v7s: request DMA32 memory, and improve debugging
+    - mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT is specified
+    - mm/debug.c: fix __dump_page when mapping->host is not set
+    - mm/memory_hotplug.c: fix notification in offline error path
+    - mm/page_isolation.c: fix a wrong flag in set_migratetype_isolate()
+    - mm/migrate.c: add missing flush_dcache_page for non-mapped page migrate
+    - perf pmu: Fix parser error for uncore event alias
+    - perf intel-pt: Fix TSC slip
+    - objtool: Query pkg-config for libelf location
+    - powerpc/pseries/energy: Use OF accessor functions to read ibm,drc-indexes
+    - powerpc/64: Fix memcmp reading past the end of src/dest
+    - powerpc/pseries/mce: Fix misleading print for TLB mutlihit
+    - watchdog: Respect watchdog cpumask on CPU hotplug
+    - cpu/hotplug: Prevent crash when CPU bringup fails on CONFIG_HOTPLUG_CPU=n
+    - x86/smp: Enforce CONFIG_HOTPLUG_CPU when SMP=y
+    - KVM: Reject device ioctls from processes other than the VM's creator
+    - KVM: x86: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts
+    - KVM: x86: update %rip after emulating IO
+    - bpf: do not restore dst_reg when cur_state is freed
+    - mt76x02u: use usb_bulk_msg to upload firmware
+    - Linux 5.0.6
+
+  * RDMA/hns updates for disco (LP: #1822897)
+    - RDMA/hns: Fix the bug with updating rq head pointer when flush cqe
+    - RDMA/hns: Bugfix for the scene without receiver queue
+    - RDMA/hns: Add constraint on the setting of local ACK timeout
+    - RDMA/hns: Modify the pbl ba page size for hip08
+    - RDMA/hns: RDMA/hns: Assign rq head pointer when enable rq record db
+    - RDMA/hns: Add the process of AEQ overflow for hip08
+    - RDMA/hns: Add SCC context allocation support for hip08
+    - RDMA/hns: Add SCC context clr support for hip08
+    - RDMA/hns: Add timer allocation support for hip08
+    - RDMA/hns: Remove set but not used variable 'rst'
+    - RDMA/hns: Make some function static
+    - RDMA/hns: Fix the Oops during rmmod or insmod ko when reset occurs
+    - RDMA/hns: Fix the chip hanging caused by sending mailbox&CMQ during reset
+    - RDMA/hns: Fix the chip hanging caused by sending doorbell during reset
+    - RDMA/hns: Limit minimum ROCE CQ depth to 64
+    - RDMA/hns: Fix the state of rereg mr
+    - RDMA/hns: Set allocated memory to zero for wrid
+    - RDMA/hns: Delete useful prints for aeq subtype event
+    - RDMA/hns: Configure capacity of hns device
+    - RDMA/hns: Modify qp&cq&pd specification according to UM
+    - RDMA/hns: Bugfix for set hem of SCC
+    - RDMA/hns: Use GFP_ATOMIC in hns_roce_v2_modify_qp
+
+  * autopkgtests run too often, too much and don't skip enough (LP: #1823056)
+    - Set +x on rebuild testcase.
+    - Skip rebuild test, for regression-suite deps.
+    - Make ubuntu-regression-suite skippable on unbootable kernels.
+    - make rebuild use skippable error codes when skipping.
+    - Only run regression-suite, if requested to.
+
+  * touchpad not working on lenovo yoga 530 (LP: #1787775)
+    - Revert "UBUNTU: SAUCE: i2c:amd Depends on ACPI"
+    - Revert "UBUNTU: SAUCE: i2c:amd move out pointer in union i2c_event_base"
+    - i2c: add extra check to safe DMA buffer helper
+    - i2c: Add drivers for the AMD PCIe MP2 I2C controller
+    - [Config] Update config for AMD MP2 I2C driver
+
+  * Detect SMP PHY control command errors (LP: #1822680)
+    - scsi: libsas: Check SMP PHY control function result
+
+  * disable a.out support (LP: #1818552)
+    - [Config] Disable a.out support
+    - [Config] remove binfmt_aout from abi for i386 lowlatency
+
+  * bionic: fork out linux-snapdragon into its own topic kernel (LP: #1820868)
+    - [Packaging] remove snapdragon flavour support
+    - Revert "UBUNTU: SAUCE: (snapdragon) drm/msm/adv7511: wrap hacks under
+      CONFIG_ADV7511_SNAPDRAGON_HACKS #ifdefs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) media: ov5645: skip address change if dt
+      addr == default addr"
+    - Revert "UBUNTU: SAUCE: (snapdragon) DT: leds: Add Qualcomm Light Pulse
+      Generator binding"
+    - Revert "UBUNTU: SAUCE: (snapdragon) MAINTAINERS: Add Qualcomm Camera Control
+      Interface driver"
+    - Revert "UBUNTU: SAUCE: (snapdragon) dt-bindings: media: Binding document for
+      Qualcomm Camera Control Interface driver"
+    - Revert "UBUNTU: SAUCE: (snapdragon) leds: Add driver for Qualcomm LPG"
+    - Revert "UBUNTU: SAUCE: (snapdragon) HACK: drm/msm/adv7511: Don't rely on
+      interrupts for EDID parsing"
+    - Revert "UBUNTU: SAUCE: (snapdragon) drm/bridge/adv7511: Delay clearing of
+      HPD interrupt status"
+    - Revert "UBUNTU: SAUCE: (snapdragon) media: ov5645: Fix I2C address"
+    - Revert "UBUNTU: SAUCE: (snapdragon) i2c-qcom-cci: Fix I2C address bug"
+    - Revert "UBUNTU: SAUCE: (snapdragon) i2c-qcom-cci: Fix run queue completion
+      timeout"
+    - Revert "UBUNTU: SAUCE: (snapdragon) camss: Do not register if no cameras are
+      present"
+    - Revert "UBUNTU: SAUCE: (snapdragon) i2c: Add Qualcomm Camera Control
+      Interface driver"
+    - Revert "UBUNTU: SAUCE: (snapdragon) ov5645: I2C address change"
+    - Revert "UBUNTU: SAUCE: (snapdragon) regulator: smd: Allow
+      REGULATOR_QCOM_SMD_RPM=m"
+    - Revert "UBUNTU: SAUCE: (snapdragon) cpufreq: Add apq8016 to cpufreq-dt-
+      platdev blacklist"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: Add a helper to get an opp
+      regulator for device"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: HACK: Allow to set regulator
+      without opp_list"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: Drop RCU usage in
+      dev_pm_opp_adjust_voltage()"
+    - Revert "UBUNTU: SAUCE: (snapdragon) PM / OPP: Support adjusting OPP voltages
+      at runtime"
+    - Revert "UBUNTU: SAUCE: (snapdragon) regulator: smd: Add floor and corner
+      operations"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: cpr: Register with cpufreq-
+      dt"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: cpr: fix with new
+      reg_sequence structures"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: cpr: Use raw mem access for
+      qfprom"
+    - Revert "UBUNTU: SAUCE: (snapdragon) power: avs: Add support for CPR (Core
+      Power Reduction)"
+    - Revert "UBUNTU: SAUCE: (snapdragon) HACK: drm/msm/iommu: Remove runtime_put
+      calls in map/unmap"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable LEDS_QCOM_LPG"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable 'BBR' TCP
+      congestion algorithm"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable 'fq' and
+      'fq_codel' qdiscs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable
+      'schedutil' CPUfreq governor"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: set USB_CONFIG_F_FS in
+      distro.config"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable
+      CONFIG_USB_CONFIGFS_F_FS by default"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: add freq stat to sysfs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: Enable camera drivers"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: disable ANALOG_TV and
+      DIGITAL_TV"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: add more USB net
+      drivers"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: enable BT_QCOMSMD"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable
+      CFG80211_DEFAULT_PS by default"
+    - Revert "UBUNTU: SAUCE: (snapdragon) Force the SMD regulator driver to be
+      compiled-in"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs: enable dm_mod and
+      dm_crypt"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: Enable a53/apcs and
+      avs"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: enable QCOM Venus"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: distro.config: enable debug
+      friendly USB network adpater"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: configs: enable WCN36xx"
+    - Revert "UBUNTU: SAUCE: (snapdragon) kernel: configs; add distro.config"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable QCOM audio
+      drivers for APQ8016 and DB410c"
+    - Revert "UBUNTU: SAUCE: (snapdragon) arm64: defconfig: enable REMOTEPROC"
+    - [Config] fix abi for remove i2c-qcom-cci module
+    - [Config] update annotations
+    - [Config] update configs following snapdragon removal
+
+  * Disco update: v5.0.5 upstream stable release (LP: #1822671)
+    - Revert "ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec"
+    - ALSA: hda - add Lenovo IdeaCentre B550 to the power_save_blacklist
+    - ALSA: firewire-motu: use 'version' field of unit directory to identify model
+    - mmc: pxamci: fix enum type confusion
+    - mmc: alcor: fix DMA reads
+    - mmc: mxcmmc: "Revert mmc: mxcmmc: handle highmem pages"
+    - mmc: renesas_sdhi: limit block count to 16 bit for old revisions
+    - drm/amdgpu: fix invalid use of change_bit
+    - drm/vmwgfx: Don't double-free the mode stored in par->set_mode
+    - drm/vmwgfx: Return 0 when gmrid::get_node runs out of ID's
+    - iommu/amd: fix sg->dma_address for sg->offset bigger than PAGE_SIZE
+    - iommu/iova: Fix tracking of recently failed iova address
+    - libceph: wait for latest osdmap in ceph_monc_blacklist_add()
+    - udf: Fix crash on IO error during truncate
+    - mips: loongson64: lemote-2f: Add IRQF_NO_SUSPEND to "cascade" irqaction.
+    - MIPS: Ensure ELF appended dtb is relocated
+    - MIPS: Fix kernel crash for R6 in jump label branch function
+    - powerpc/vdso64: Fix CLOCK_MONOTONIC inconsistencies across Y2038
+    - powerpc/security: Fix spectre_v2 reporting
+    - net/mlx5: Fix DCT creation bad flow
+    - scsi: core: Avoid that a kernel warning appears during system resume
+    - scsi: qla2xxx: Fix FC-AL connection target discovery
+    - scsi: ibmvscsi: Protect ibmvscsi_head from concurrent modificaiton
+    - scsi: ibmvscsi: Fix empty event pool access during host removal
+    - futex: Ensure that futex address is aligned in handle_futex_death()
+    - perf probe: Fix getting the kernel map
+    - objtool: Move objtool_file struct off the stack
+    - irqchip/gic-v3-its: Fix comparison logic in lpi_range_cmp
+    - clocksource/drivers/riscv: Fix clocksource mask
+    - ALSA: ac97: Fix of-node refcount unbalance
+    - ext4: fix NULL pointer dereference while journal is aborted
+    - ext4: fix data corruption caused by unaligned direct AIO
+    - ext4: brelse all indirect buffer in ext4_ind_remove_space()
+    - media: v4l2-ctrls.c/uvc: zero v4l2_event
+    - Bluetooth: hci_uart: Check if socket buffer is ERR_PTR in h4_recv_buf()
+    - Bluetooth: Fix decrementing reference count twice in releasing socket
+    - Bluetooth: hci_ldisc: Initialize hci_dev before open()
+    - Bluetooth: hci_ldisc: Postpone HCI_UART_PROTO_READY bit set in
+      hci_uart_set_proto()
+    - drm/vkms: Fix flush_work() without INIT_WORK().
+    - RDMA/cma: Rollback source IP address if failing to acquire device
+    - f2fs: fix to avoid deadlock of atomic file operations
+    - aio: simplify - and fix - fget/fput for io_submit()
+    - netfilter: ebtables: remove BUGPRINT messages
+    - loop: access lo_backing_file only when the loop device is Lo_bound
+    - x86/unwind: Handle NULL pointer calls better in frame unwinder
+    - x86/unwind: Add hardcoded ORC entry for NULL
+    - locking/lockdep: Add debug_locks check in __lock_downgrade()
+    - ALSA: hda - Record the current power state before suspend/resume calls
+    - ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
+    - Linux 5.0.5
+
+  * hisi_sas updates for disco (LP: #1822385)
+    - scsi: hisi_sas: send primitive NOTIFY to SSP situation only
+    - scsi: hisi_sas: shutdown axi bus to avoid exception CQ returned
+    - scsi: hisi_sas: remove the check of sas_dev status in
+      hisi_sas_I_T_nexus_reset()
+    - scsi: hisi_sas: Remove unused parameter of function hisi_sas_alloc()
+    - scsi: hisi_sas: Reject setting programmed minimum linkrate > 1.5G
+    - scsi: hisi_sas: Fix losing directly attached disk when hot-plug
+    - scsi: hisi_sas: Correct memory allocation size for DQ debugfs
+    - scsi: hisi_sas: Some misc tidy-up
+    - scsi: hisi_sas: Fix to only call scsi_get_prot_op() for non-NULL scsi_cmnd
+    - scsi: hisi_sas: Add missing seq_printf() call in hisi_sas_show_row_32()
+    - scsi: hisi_sas: Add support for DIX feature for v3 hw
+    - scsi: hisi_sas: Add manual trigger for debugfs dump
+    - scsi: hisi_sas: change queue depth from 512 to 4096
+    - scsi: hisi_sas: Issue internal abort on all relevant queues
+    - scsi: hisi_sas: Use pci_irq_get_affinity() for v3 hw as experimental
+    - scsi: hisi_sas: Do some more tidy-up
+    - scsi: hisi_sas: Change return variable type in phy_up_v3_hw()
+    - scsi: hisi_sas: Fix a timeout race of driver internal and SMP IO
+    - scsi: hisi_sas: print PHY RX errors count for later revision of v3 hw
+    - scsi: hisi_sas: Set PHY linkrate when disconnected
+    - scsi: hisi_sas: Send HARD RESET to clear the previous affiliation of STP
+      target port
+    - scsi: hisi_sas: Change SERDES_CFG init value to increase reliability of
+      HiLink
+    - scsi: hisi_sas: Add softreset in hisi_sas_I_T_nexus_reset()
+
+  * [Patch][Raven 2] kernel 5.0.0 cannot boot because of psp response
+    (LP: #1822267)
+    - drm/amdgpu/psp: Fix can't detect psp INVOKE command failed
+    - drm/amdgpu/psp: ignore psp response status
+
+  * 3b080b2564287be91605bfd1d5ee985696e61d3c in ubuntu_btrfs_kernel_fixes
+    triggers system hang on i386 (LP: #1812845)
+    - btrfs: raid56: properly unmap parity page in finish_parity_scrub()
+
+  * enable CONFIG_DRM_BOCHS (LP: #1795857)
+    - [Config] Reenable DRM_BOCHS as module
+
+  * [Dell Precision 7530/5530 with Nvidia Quadro P1000] Live USB freezes or
+    cannot complete install when nouveau driver is loaded (crashing in GP100
+    code) (LP: #1822026)
+    - SAUCE: drm/nouveau: Disable nouveau driver by default
+
+  * Need to add Intel CML related pci-id's (LP: #1821863)
+    - drm/i915/cml: Add CML PCI IDS
+    - drm/i915/cml: Introduce Comet Lake PCH
+
+  * ARM: Add support for the SDEI interface (LP: #1822005)
+    - ACPI / APEI: Don't wait to serialise with oops messages when panic()ing
+    - ACPI / APEI: Remove silent flag from ghes_read_estatus()
+    - ACPI / APEI: Switch estatus pool to use vmalloc memory
+    - ACPI / APEI: Make hest.c manage the estatus memory pool
+    - ACPI / APEI: Make estatus pool allocation a static size
+    - ACPI / APEI: Don't store CPER records physical address in struct ghes
+    - ACPI / APEI: Remove spurious GHES_TO_CLEAR check
+    - ACPI / APEI: Don't update struct ghes' flags in read/clear estatus
+    - ACPI / APEI: Generalise the estatus queue's notify code
+    - ACPI / APEI: Don't allow ghes_ack_error() to mask earlier errors
+    - ACPI / APEI: Move NOTIFY_SEA between the estatus-queue and NOTIFY_NMI
+    - ACPI / APEI: Switch NOTIFY_SEA to use the estatus queue
+    - KVM: arm/arm64: Add kvm_ras.h to collect kvm specific RAS plumbing
+    - arm64: KVM/mm: Move SEA handling behind a single 'claim' interface
+    - ACPI / APEI: Move locking to the notification helper
+    - ACPI / APEI: Let the notification helper specify the fixmap slot
+    - ACPI / APEI: Pass ghes and estatus separately to avoid a later copy
+    - ACPI / APEI: Make GHES estatus header validation more user friendly
+    - ACPI / APEI: Split ghes_read_estatus() to allow a peek at the CPER length
+    - ACPI / APEI: Only use queued estatus entry during in_nmi_queue_one_entry()
+    - ACPI / APEI: Use separate fixmap pages for arm64 NMI-like notifications
+    - firmware: arm_sdei: Add ACPI GHES registration helper
+    - ACPI / APEI: Add support for the SDEI GHES Notification type
+
+  * CVE-2019-9857
+    - inotify: Fix fsnotify_mark refcount leak in inotify_update_existing_watch()
+
+  * scsi: libsas: Support SATA PHY connection rate unmatch fixing during
+    discovery (LP: #1821408)
+    - scsi: libsas: Support SATA PHY connection rate unmatch fixing during
+      discovery
+
+  * Qualcomm Atheros QCA9377 wireless does not work (LP: #1818204)
+    - platform/x86: ideapad-laptop: Add Ideapad 530S-14ARR to no_hw_rfkill list
+
+  * Lenovo ideapad 330-15ICH Wifi rfkill hard blocked (LP: #1811815)
+    - platform/x86: ideapad: Add ideapad 330-15ICH to no_hw_rfkill
+
+  * hid-sensor-hub spamming dmesg in 4.20 (LP: #1818547)
+    - HID: Increase maximum report size allowed by hid_field_extract()
+
+  * [disco] [5.0.0-7.8] can't mount guest cifs share (LP: #1821053)
+    - cifs: allow guest mounts to work for smb3.11
+    - SMB3: Fix SMB3.1.1 guest mounts to Samba
+
+  * Add HiSilicon SoC quirk for cpufreq (LP: #1821620)
+    - ACPI / CPPC: Add a helper to get desired performance
+    - cpufreq / cppc: Work around for Hisilicon CPPC cpufreq
+
+  * Disco update: v5.0.4 upstream stable release (LP: #1821607)
+    - 9p: use inode->i_lock to protect i_size_write() under 32-bit
+    - 9p/net: fix memory leak in p9_client_create
+    - ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
+    - ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE()
+    - ASoC: codecs: pcm186x: Fix energysense SLEEP bit
+    - iio: adc: exynos-adc: Fix NULL pointer exception on unbind
+    - iio: adc: exynos-adc: Use proper number of channels for Exynos4x12
+    - mei: hbm: clean the feature flags on link reset
+    - mei: bus: move hw module get/put to probe/release
+    - stm class: Prevent division by zero
+    - stm class: Fix an endless loop in channel allocation
+    - crypto: caam - fix hash context DMA unmap size
+    - crypto: ccree - fix missing break in switch statement
+    - crypto: caam - fixed handling of sg list
+    - crypto: caam - fix DMA mapping of stack memory
+    - crypto: ccree - fix free of unallocated mlli buffer
+    - crypto: ccree - unmap buffer before copying IV
+    - crypto: ccree - don't copy zero size ciphertext
+    - crypto: cfb - add missing 'chunksize' property
+    - crypto: cfb - remove bogus memcpy() with src == dest
+    - crypto: ofb - fix handling partial blocks and make thread-safe
+    - crypto: ahash - fix another early termination in hash walk
+    - crypto: rockchip - fix scatterlist nents error
+    - crypto: rockchip - update new iv to device in multiple operations
+    - dax: Flush partial PMDs correctly
+    - nfit: Fix nfit_intel_shutdown_status() command submission
+    - nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
+    - acpi/nfit: Fix bus command validation
+    - nfit/ars: Attempt a short-ARS whenever the ARS state is idle at boot
+    - nfit/ars: Attempt short-ARS even in the no_init_ars case
+    - libnvdimm/label: Clear 'updating' flag after label-set update
+    - libnvdimm, pfn: Fix over-trim in trim_pfn_device()
+    - libnvdimm/pmem: Honor force_raw for legacy pmem regions
+    - libnvdimm: Fix altmap reservation size calculation
+    - fix cgroup_do_mount() handling of failure exits
+    - crypto: aead - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+    - crypto: aegis - fix handling chunked inputs
+    - crypto: arm/crct10dif - revert to C code for short inputs
+    - crypto: arm64/aes-neonbs - fix returning final keystream block
+    - crypto: arm64/crct10dif - revert to C code for short inputs
+    - crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+    - crypto: morus - fix handling chunked inputs
+    - crypto: pcbc - remove bogus memcpy()s with src == dest
+    - crypto: skcipher - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
+    - crypto: testmgr - skip crc32c context test for ahash algorithms
+    - crypto: x86/aegis - fix handling chunked inputs and MAY_SLEEP
+    - crypto: x86/aesni-gcm - fix crash on empty plaintext
+    - crypto: x86/morus - fix handling chunked inputs and MAY_SLEEP
+    - crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
+    - crypto: arm64/aes-ccm - fix bugs in non-NEON fallback routine
+    - CIFS: Fix leaking locked VFS cache pages in writeback retry
+    - CIFS: Do not reset lease state to NONE on lease break
+    - CIFS: Do not skip SMB2 message IDs on send failures
+    - CIFS: Fix read after write for files with read caching
+    - smb3: make default i/o size for smb3 mounts larger
+    - tracing: Use strncpy instead of memcpy for string keys in hist triggers
+    - tracing: Do not free iter->trace in fail path of tracing_open_pipe()
+    - tracing/perf: Use strndup_user() instead of buggy open-coded version
+    - vmw_balloon: release lock on error in vmballoon_reset()
+    - xen: fix dom0 boot on huge systems
+    - ACPI / device_sysfs: Avoid OF modalias creation for removed device
+    - mmc: sdhci-esdhc-imx: fix HS400 timing issue
+    - mmc: renesas_sdhi: Fix card initialization failure in high speed mode
+    - mmc:fix a bug when max_discard is 0
+    - spi: ti-qspi: Fix mmap read when more than one CS in use
+    - spi: pxa2xx: Setup maximum supported DMA transfer length
+    - spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch
+    - spi: spi-gpio: fix SPI_CS_HIGH capability
+    - regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
+    - regulator: max77620: Initialize values for DT properties
+    - regulator: s2mpa01: Fix step values for some LDOs
+    - mt76: fix corrupted software generated tx CCMP PN
+    - clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
+    - clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
+    - clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer
+      instability
+    - s390: vfio_ap: link the vfio_ap devices to the vfio_ap bus subsystem
+    - s390/setup: fix early warning messages
+    - s390/virtio: handle find on invalid queue gracefully
+    - scsi: virtio_scsi: don't send sc payload with tmfs
+    - scsi: aacraid: Fix performance issue on logical drives
+    - scsi: sd: Optimal I/O size should be a multiple of physical block size
+    - scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
+    - scsi: qla2xxx: Fix LUN discovery if loop id is not assigned yet by firmware
+    - scsi: qla2xxx: Avoid PCI IRQ affinity mapping when multiqueue is not
+      supported
+    - scsi: qla2xxx: Use complete switch scan for RSCN events
+    - fs/devpts: always delete dcache dentry-s in dput()
+    - splice: don't merge into linked buffers
+    - ovl: During copy up, first copy up data and then xattrs
+    - ovl: Do not lose security.capability xattr over metadata file copy-up
+    - m68k: Add -ffreestanding to CFLAGS
+    - Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
+    - Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
+    - btrfs: scrub: fix circular locking dependency warning
+    - btrfs: drop the lock on error in btrfs_dev_replace_cancel
+    - btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
+    - btrfs: init csum_list before possible free
+    - Btrfs: fix corruption reading shared and compressed extents after hole
+      punching
+    - Btrfs: fix deadlock between clone/dedupe and rename
+    - soc: qcom: rpmh: Avoid accessing freed memory from batch API
+    - libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
+    - irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table
+    - irqchip/brcmstb-l2: Use _irqsave locking variants in non-interrupt code
+    - x86/kprobes: Prohibit probing on optprobe template code
+    - cpufreq: kryo: Release OPP tables on module removal
+    - cpufreq: tegra124: add missing of_node_put()
+    - cpufreq: pxa2xx: remove incorrect __init annotation
+    - ext4: fix check of inode in swap_inode_boot_loader
+    - ext4: cleanup pagecache before swap i_data
+    - mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
+    - mm/vmalloc: fix size check for remap_vmalloc_range_partial()
+    - mm/memory.c: do_fault: avoid usage of stale vm_area_struct
+    - kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
+    - nvmem: core: don't check the return value of notifier chain call
+    - device property: Fix the length used in PROPERTY_ENTRY_STRING()
+    - intel_th: Don't reference unassigned outputs
+    - parport_pc: fix find_superio io compare code, should use equal test.
+    - i2c: tegra: fix maximum transfer size
+    - i2c: tegra: update maximum transfer size
+    - media: i2c: ov5640: Fix post-reset delay
+    - gpio: pca953x: Fix dereference of irq data in shutdown
+    - ext4: update quota information while swapping boot loader inode
+    - ext4: add mask of ext4 flags to swap
+    - ext4: fix crash during online resizing
+    - dma: Introduce dma_max_mapping_size()
+    - swiotlb: Introduce swiotlb_max_mapping_size()
+    - swiotlb: Add is_swiotlb_active() function
+    - PCI/ASPM: Use LTR if already enabled by platform
+    - PCI/DPC: Fix print AER status in DPC event handling
+    - PCI: qcom: Don't deassert reset GPIO during probe
+    - PCI: dwc: skip MSI init if MSIs have been explicitly disabled
+    - PCI: pci-bridge-emul: Create per-bridge copy of register behavior
+    - PCI: pci-bridge-emul: Extend pci_bridge_emul_init() with flags
+    - IB/hfi1: Close race condition on user context disable and close
+    - IB/rdmavt: Fix loopback send with invalidate ordering
+    - IB/rdmavt: Fix concurrency panics in QP post_send and modify to error
+    - cxl: Wrap iterations over afu slices inside 'afu_list_lock'
+    - ext2: Fix underflow in ext2_max_size()
+    - clk: uniphier: Fix update register for CPU-gear
+    - clk: clk-twl6040: Fix imprecise external abort for pdmclk
+    - clk: samsung: exynos5: Fix possible NULL pointer exception on
+      platform_device_alloc() failure
+    - clk: samsung: exynos5: Fix kfree() of const memory on setting
+      driver_override
+    - clk: ingenic: Fix round_rate misbehaving with non-integer dividers
+    - clk: ingenic: Fix doc of ingenic_cgu_div_info
+    - usb: chipidea: tegra: Fix missed ci_hdrc_remove_device()
+    - usb: typec: tps6598x: handle block writes separately with plain-I2C adapters
+    - dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
+    - serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
+    - serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
+    - serial: 8250_pci: Fix number of ports for ACCES serial cards
+    - serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954
+      chip use the pci_pericom_setup()
+    - jbd2: clear dirty flag when revoking a buffer from an older transaction
+    - jbd2: fix compile warning when using JBUFFER_TRACE
+    - selinux: add the missing walk_size + len check in selinux_sctp_bind_connect
+    - security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
+    - powerpc/32: Clear on-stack exception marker upon exception return
+    - powerpc/wii: properly disable use of BATs when requested.
+    - powerpc/powernv: Make opal log only readable by root
+    - powerpc/83xx: Also save/restore SPRG4-7 during suspend
+    - powerpc/kvm: Save and restore host AMR/IAMR/UAMOR
+    - powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit
+    - powerpc/64s/hash: Fix assert_slb_presence() use of the slbfee. instruction
+    - powerpc: Fix 32-bit KVM-PR lockup and host crash with MacOS guest
+    - powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
+    - powerpc/hugetlb: Don't do runtime allocation of 16G pages in LPAR
+      configuration
+    - powerpc/smp: Fix NMI IPI timeout
+    - powerpc/smp: Fix NMI IPI xmon timeout
+    - powerpc/traps: fix recoverability of machine check handling on book3s/32
+    - powerpc/traps: Fix the message printed when stack overflows
+    - ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
+    - arm64: Fix HCR.TGE status for NMI contexts
+    - arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals
+    - arm64: debug: Ensure debug handlers check triggering exception level
+    - arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2
+    - Revert "KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range()"
+    - ipmi_si: Fix crash when using hard-coded device
+    - ipmi_si: fix use-after-free of resource->name
+    - dm: fix to_sector() for 32bit
+    - dm integrity: limit the rate of error messages
+    - media: cx25840: mark pad sig_types to fix cx231xx init
+    - mfd: sm501: Fix potential NULL pointer dereference
+    - cpcap-charger: generate events for userspace
+    - cpuidle: governor: Add new governors to cpuidle_governors again
+    - NFS: Fix I/O request leakages
+    - NFS: Fix an I/O request leakage in nfs_do_recoalesce
+    - NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
+    - nfsd: fix performance-limiting session calculation
+    - nfsd: fix memory corruption caused by readdir
+    - nfsd: fix wrong check in write_v4_end_grace()
+    - NFSv4.1: Reinitialise sequence results before retransmitting a request
+    - svcrpc: fix UDP on servers with lots of threads
+    - PM / wakeup: Rework wakeup source timer cancellation
+    - PM / OPP: Update performance state when freq == old_freq
+    - bcache: treat stale && dirty keys as bad keys
+    - bcache: use (REQ_META|REQ_PRIO) to indicate bio for metadata
+    - stable-kernel-rules.rst: add link to networking patch queue
+    - vt: perform safe console erase in the right order
+    - x86/unwind/orc: Fix ORC unwind table alignment
+    - perf intel-pt: Fix CYC timestamp calculation after OVF
+    - perf tools: Fix split_kallsyms_for_kcore() for trampoline symbols
+    - perf auxtrace: Define auxtrace record alignment
+    - perf intel-pt: Fix overlap calculation for padding
+    - perf/x86/intel/uncore: Fix client IMC events return huge result
+    - perf intel-pt: Fix divide by zero when TSC is not available
+    - md: Fix failed allocation of md_register_thread
+    - x86/kvmclock: set offset for kvm unstable clock
+    - x86/ftrace: Fix warning and considate ftrace_jmp_replace() and
+      ftrace_call_replace()
+    - tpm/tpm_crb: Avoid unaligned reads in crb_recv()
+    - tpm: Unify the send callback behaviour
+    - rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
+    - media: imx: prpencvf: Stop upstream before disabling IDMA channel
+    - media: lgdt330x: fix lock status reporting
+    - media: sun6i: Fix CSI regmap's max_register
+    - media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
+    - media: vimc: Add vimc-streamer for stream control
+    - media: imx-csi: Input connections to CSI should be optional
+    - media: imx: csi: Disable CSI immediately after last EOF
+    - media: imx: csi: Stop upstream before disabling IDMA channel
+    - drm/fb-helper: generic: Fix drm_fbdev_client_restore()
+    - drm/radeon/evergreen_cs: fix missing break in switch statement
+    - drm/amd/powerplay: correct power reading on fiji
+    - drm/amd/display: don't call dm_pp_ function from an fpu block
+    - KVM: Call kvm_arch_memslots_updated() before updating memslots
+    - KVM: VMX: Compare only a single byte for VMCS' "launched" in vCPU-run
+    - KVM: VMX: Zero out *all* general purpose registers after VM-Exit
+    - KVM: x86/mmu: Detect MMIO generation wrap in any address space
+    - KVM: x86/mmu: Do not cache MMIO accesses while memslots are in flux
+    - KVM: nVMX: Sign extend displacements of VMX instr's mem operands
+    - KVM: nVMX: Apply addr size mask to effective address for VMX instructions
+    - KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
+    - KVM: nVMX: Check a single byte for VMCS "launched" in nested early checks
+    - net: dsa: lantiq_gswip: fix use-after-free on failed probe
+    - net: dsa: lantiq_gswip: fix OF child-node lookups
+    - s390/setup: fix boot crash for machine without EDAT-1
+    - SUNRPC: Prevent thundering herd when the socket is not connected
+    - SUNRPC: Fix up RPC back channel transmission
+    - SUNRPC: Respect RPC call timeouts when retrying transmission
+    - Linux 5.0.4
+    - [Config] update configs for 5.0.4 stable update
+
+  * New Intel Wireless-AC 9260 [8086:2526] card not correctly probed in Ubuntu
+    system (LP: #1821271)
+    - iwlwifi: add new card for 9260 series
+
+  * [CONFIG] please enable highdpi font FONT_TER16x32 (LP: #1819881)
+    - [Config]: enable highdpi Terminus 16x32 font support
+
+  * [SRU][B/B-OEM/C/D] Fix AMD IOMMU NULL dereference (LP: #1820990)
+    - iommu/amd: Fix NULL dereference bug in match_hid_uid
+
+  * some codecs stop working after S3 (LP: #1820930)
+    - ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec
+    - ALSA: hda - Don't trigger jackpoll_work in azx_resume
+
+  * tcm_loop.ko: move from modules-extra into main modules package
+    (LP: #1817786)
+    - [Packaging] move tcm_loop.lo to main linux-modules package
+
+  * C++ demangling support missing from perf (LP: #1396654)
+    - [Packaging] fix a mistype
+
+  * r8169 doesn't get woken up by ethernet cable plugging, no PME generated
+    (LP: #1817676)
+    - PCI: pciehp: Disable Data Link Layer State Changed event on suspend
+
+  * Disco update: v5.0.3 upstream stable release (LP: #1821074)
+    - connector: fix unsafe usage of ->real_parent
+    - fou, fou6: avoid uninit-value in gue_err() and gue6_err()
+    - gro_cells: make sure device is up in gro_cells_receive()
+    - ipv4/route: fail early when inet dev is missing
+    - l2tp: fix infoleak in l2tp_ip6_recvmsg()
+    - lan743x: Fix RX Kernel Panic
+    - lan743x: Fix TX Stall Issue
+    - net: hsr: fix memory leak in hsr_dev_finalize()
+    - net/hsr: fix possible crash in add_timer()
+    - net: sit: fix UBSAN Undefined behaviour in check_6rd
+    - net/x25: fix use-after-free in x25_device_event()
+    - net/x25: reset state in x25_connect()
+    - pptp: dst_release sk_dst_cache in pptp_sock_destruct
+    - ravb: Decrease TxFIFO depth of Q3 and Q2 to one
+    - route: set the deleted fnhe fnhe_daddr to 0 in ip_del_fnhe to fix a race
+    - rxrpc: Fix client call queueing, waiting for channel
+    - sctp: remove sched init from sctp_stream_init
+    - tcp: do not report TCP_CM_INQ of 0 for closed connections
+    - tcp: Don't access TCP_SKB_CB before initializing it
+    - tcp: handle inet_csk_reqsk_queue_add() failures
+    - vxlan: Fix GRO cells race condition between receive and link delete
+    - vxlan: test dev->flags & IFF_UP before calling gro_cells_receive()
+    - net/mlx4_core: Fix reset flow when in command polling mode
+    - net/mlx4_core: Fix locking in SRIOV mode when switching between events and
+      polling
+    - net/mlx4_core: Fix qp mtt size calculation
+    - net: dsa: mv88e6xxx: Set correct interface mode for CPU/DSA ports
+    - vsock/virtio: fix kernel panic from virtio_transport_reset_no_sock
+    - net: sched: flower: insert new filter to idr after setting its mask
+    - f2fs: wait on atomic writes to count F2FS_CP_WB_DATA
+    - perf/x86: Fixup typo in stub functions
+    - ALSA: bebob: use more identical mod_alias for Saffire Pro 10 I/O against
+      Liquid Saffire 56
+    - ALSA: firewire-motu: fix construction of PCM frame for capture direction
+    - ALSA: hda: Extend i915 component bind timeout
+    - ALSA: hda - add more quirks for HP Z2 G4 and HP Z240
+    - ALSA: hda/realtek: Enable audio jacks of ASUS UX362FA with ALC294
+    - ALSA: hda/realtek - Reduce click noise on Dell Precision 5820 headphone
+    - ALSA: hda/realtek: Enable headset MIC of Acer TravelMate X514-51T with
+      ALC255
+    - perf/x86/intel: Fix memory corruption
+    - perf/x86/intel: Make dev_attr_allow_tsx_force_abort static
+    - It's wrong to add len to sector_nr in raid10 reshape twice
+    - drm: Block fb changes for async plane updates
+    - Linux 5.0.3
+
+  * Disco update: v5.0.2 upstream stable release (LP: #1820318)
+    - media: uvcvideo: Fix 'type' check leading to overflow
+    - Input: wacom_serial4 - add support for Wacom ArtPad II tablet
+    - Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
+    - iscsi_ibft: Fix missing break in switch statement
+    - scsi: aacraid: Fix missing break in switch statement
+    - x86/PCI: Fixup RTIT_BAR of Intel Denverton Trace Hub
+    - arm64: dts: zcu100-revC: Give wifi some time after power-on
+    - arm64: dts: hikey: Give wifi some time after power-on
+    - arm64: dts: hikey: Revert "Enable HS200 mode on eMMC"
+    - ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
+    - ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
+    - ARM: dts: exynos: Fix max voltage for buck8 regulator on Odroid XU3/XU4
+    - drm: disable uncached DMA optimization for ARM and arm64
+    - media: Revert "media: rc: some events are dropped by userspace"
+    - Revert "PCI/PME: Implement runtime PM callbacks"
+    - bpf: Stop the psock parser before canceling its work
+    - gfs2: Fix missed wakeups in find_insert_glock
+    - staging: erofs: keep corrupted fs from crashing kernel in erofs_namei()
+    - staging: erofs: compressed_pages should not be accessed again after freed
+    - scripts/gdb: replace flags (MS_xyz -> SB_xyz)
+    - ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom
+    - perf/x86/intel: Make cpuc allocations consistent
+    - perf/x86/intel: Generalize dynamic constraint creation
+    - x86: Add TSX Force Abort CPUID/MSR
+    - perf/x86/intel: Implement support for TSX Force Abort
+    - Linux 5.0.2
+
+  * Linux security module stacking support
+    - LSM: Introduce LSM_FLAG_LEGACY_MAJOR
+    - LSM: Provide separate ordered initialization
+    - LSM: Plumb visibility into optional "enabled" state
+    - LSM: Lift LSM selection out of individual LSMs
+    - LSM: Build ordered list of LSMs to initialize
+    - LSM: Introduce CONFIG_LSM
+    - LSM: Introduce "lsm=" for boottime LSM selection
+    - LSM: Tie enabling logic to presence in ordered list
+    - LSM: Prepare for reorganizing "security=" logic
+    - LSM: Refactor "security=" in terms of enable/disable
+    - LSM: Separate idea of "major" LSM from "exclusive" LSM
+    - apparmor: Remove SECURITY_APPARMOR_BOOTPARAM_VALUE
+    - selinux: Remove SECURITY_SELINUX_BOOTPARAM_VALUE
+    - LSM: Add all exclusive LSMs to ordered initialization
+    - LSM: Split LSM preparation from initialization
+    - LoadPin: Initialize as ordered LSM
+    - Yama: Initialize as ordered LSM
+    - LSM: Introduce enum lsm_order
+    - capability: Initialize as LSM_ORDER_FIRST
+    - procfs: add smack subdir to attrs
+    - Smack: Abstract use of cred security blob
+    - SELinux: Abstract use of cred security blob
+    - SELinux: Remove cred security blob poisoning
+    - SELinux: Remove unused selinux_is_enabled
+    - AppArmor: Abstract use of cred security blob
+    - TOMOYO: Abstract use of cred security blob
+    - Infrastructure management of the cred security blob
+    - SELinux: Abstract use of file security blob
+    - Smack: Abstract use of file security blob
+    - LSM: Infrastructure management of the file security
+    - SELinux: Abstract use of inode security blob
+    - Smack: Abstract use of inode security blob
+    - LSM: Infrastructure management of the inode security
+    - LSM: Infrastructure management of the task security
+    - SELinux: Abstract use of ipc security blobs
+    - Smack: Abstract use of ipc security blobs
+    - LSM: Infrastructure management of the ipc security blob
+    - TOMOYO: Update LSM flags to no longer be exclusive
+    - LSM: generalize flag passing to security_capable
+    - LSM: Make lsm_early_cred() and lsm_early_task() local functions.
+    - LSM: Make some functions static
+    - apparmor: Adjust offset when accessing task blob.
+    - LSM: Ignore "security=" when "lsm=" is specified
+    - LSM: Update list of SECURITYFS users in Kconfig
+    - apparmor: delete the dentry in aafs_remove() to avoid a leak
+    - apparmor: fix double free when unpack of secmark rules fails
+    - SAUCE: LSM: Infrastructure management of the sock security
+    - SAUCE: LSM: Limit calls to certain module hooks
+    - SAUCE: LSM: Special handling for secctx lsm hooks
+    - SAUCE: LSM: Specify which LSM to display with /proc/self/attr/display
+    - SAUCE: Fix-up af_unix mediation for sock infrastructure management
+    - SAUCE: Revert "apparmor: Fix warning about unused function
+      apparmor_ipv6_postroute"
+    - SAUCE: Revert "apparmor: fix checkpatch error in Parse secmark policy"
+    - SAUCE: Revert "apparmor: add #ifdef checks for secmark filtering"
+    - SAUCE: Revert "apparmor: Allow filtering based on secmark policy"
+    - SAUCE: Revert "apparmor: Parse secmark policy"
+    - SAUCE: Revert "apparmor: Add a wildcard secid"
+    - SAUCE: Revert "apparmor: fix bad debug check in apparmor_secid_to_secctx()"
+    - SAUCE: Revert "apparmor: fixup secid map conversion to using IDR"
+    - SAUCE: Revert "apparmor: Use an IDR to allocate apparmor secids"
+    - SAUCE: Revert "apparmor: Fix memory leak of rule on error exit path"
+    - SAUCE: Revert "apparmor: modify audit rule support to support profile
+      stacks"
+    - SAUCE: Revert "apparmor: Add support for audit rule filtering"
+    - SAUCE: Revert "apparmor: add the ability to get a task's secid"
+    - SAUCE: Revert "apparmor: add support for mapping secids and using secctxes"
+    - SAUCE: apparmor: add proc subdir to attrs
+    - SAUCE: apparmor: add an apparmorfs entry to access current attrs
+    - SAUCE: apparmor: update flags to no longer be exclusive
+    - SAUCE: update configs and annotations for LSM stacking
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_EARLY_PRINTK_USB_XDBC=y
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - [Config] CONFIG_RANDOM_TRUST_CPU=y
+    - [Config] refresh annotations for recent config changes
+    - ubuntu: vbox -- update to 6.0.4-dfsg-7
+    - Revert "UBUNTU: SAUCE: i2c:amd I2C Driver based on PCI Interface for
+      upcoming platform"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 04 Apr 2019 14:49:59 -0500
+
+linux (5.0.0-8.9) disco; urgency=medium
+
+  * linux: 5.0.0-8.9 -proposed tracker (LP: #1819759)
+
+  * hisi_sas: add debugfs support (LP: #1819500)
+    - scsi: hisi_sas: Create root and device debugfs directories
+    - scsi: hisi_sas: Alloc debugfs snapshot buffer memory for all registers
+    - scsi: hisi_sas: Take debugfs snapshot for all regs
+    - scsi: hisi_sas: Debugfs global register create file and add file operations
+    - scsi: hisi_sas: Add debugfs for port registers
+    - scsi: hisi_sas: Add debugfs CQ file and add file operations
+    - scsi: hisi_sas: Add debugfs DQ file and add file operations
+    - scsi: hisi_sas: Add debugfs IOST file and add file operations
+    - scsi: hisi_sas: No need to check return value of debugfs_create functions
+    - scsi: hisi_sas: Fix type casting and missing static qualifier in debugfs
+      code
+    - scsi: hisi_sas: Add debugfs ITCT file and add file operations
+
+  * [disco] hns driver updates from 5.1 merge window (LP: #1819535)
+    - net: hns: Use struct_size() in devm_kzalloc()
+    - net: hns3: modify enet reinitialization interface
+    - net: hns3: remove unused member in struct hns3_enet_ring
+    - net: hns3: remove unnecessary hns3_adjust_tqps_num
+    - net: hns3: reuse reinitialization interface in the hns3_set_channels
+    - net: hns3: add interface hclge_tm_bp_setup
+    - net: hns3: modify parameter checks in the hns3_set_channels
+    - net: hns3: remove redundant codes in hclge_knic_setup
+    - net: hns3: fix user configuration loss for ethtool -L
+    - net: hns3: adjust the use of alloc_tqps and num_tqps
+    - net: hns3: fix wrong combined count returned by ethtool -l
+    - net: hns3: do reinitialization while ETS configuration changed
+    - net: hns3: add HNAE3_RESTORE_CLIENT interface in enet module
+    - net: hns3: add calling roce callback function when link status change
+    - net: hns3: add rx multicast packets statistic
+    - net: hns3: refactor the statistics updating for netdev
+    - net: hns3: fix rss configuration lost problem when setting channel
+    - net: hns3: fix for shaper not setting when TC num changes
+    - net: hns3: fix bug of ethtool_ops.get_channels for VF
+    - net: hns3: clear param in ring when free ring
+    - net: hns3: Change fw error code NOT_EXEC to NOT_SUPPORTED
+    - net: hns3: do not return GE PFC setting err when initializing
+    - net: hns3: add ETS TC weight setting in SSU module
+    - net: hns3: add statistics for PFC frames and MAC control frames
+    - net: hns3: fix PFC not setting problem for DCB module
+    - net: hns3: don't update packet statistics for packets dropped by hardware
+    - net: hns3: clear pci private data when unload hns3 driver
+    - net: hns3: add error handling in hclge_ieee_setets
+    - net: hns3: fix return value handle issue for hclge_set_loopback()
+    - net: hns3: fix broadcast promisc issue for revision 0x20
+    - net: hns3: After setting the loopback, add the status of getting MAC
+    - net: hns3: do reinitialization while mqprio configuration changed
+    - net: hns3: remove dcb_ops->map_update in hclge_dcb
+    - net: hns3: call hns3_nic_set_real_num_queue with netdev down
+    - net: hns3: add 8 BD limit for tx flow
+    - net: hns3: add initialization for nic state
+    - net: hns3: don't allow vf to enable promisc mode
+    - net: hns3: reuse the definition of l3 and l4 header info union
+    - net: hns3: fix VF dump register issue
+    - net: hns3: use the correct interface to stop|open port
+    - net: hns3: change hnae3_register_ae_dev() to int
+    - net: hns3: only support tc 0 for VF
+    - net: hns3: Fix NULL deref when unloading driver
+    - net: hns3: fix netif_napi_del() not do problem when unloading
+    - net: hns3: fix for rss result nonuniform
+    - net: hns3: fix improper error handling in the hclge_init_ae_dev()
+    - net: hns3: fix an issue for hclgevf_ae_get_hdev
+    - net: hns3: stop sending keep alive msg to PF when VF is resetting
+    - net: hns3: keep flow director state unchanged when reset
+    - net: hns3: Check for allocation failure
+    - net: hns3: fix a code style issue for hns3_update_new_int_gl()
+    - net: hns3: fix an issue for hns3_update_new_int_gl
+    - net: hns3: Modify parameter type from int to bool in set_gro_en
+    - net: hns3: code optimization for hclge_rx_buffer_calc
+    - net: hns3: add hclge_cmd_check_retval() to parse comman's return value
+    - net: hns3: move some set_bit statement into hclge_prepare_mac_addr
+    - net: hns3: fix a wrong checking in the hclge_tx_buffer_calc()
+    - net: hns3: fix the problem that the supported port is empty
+    - net: hns3: optimize the maximum TC macro
+    - net: hns3: don't allow user to change vlan filter state
+    - net: hns3: modify the upper limit judgment condition
+    - net: hns3: MAC table entry count function increases operation 0 value
+      protection measures
+    - net: hns3: make function hclge_set_all_vf_rst() static
+    - net: hns3: add pointer checking at the beginning of the exported functions.
+    - net: hns3: Check variable is valid before assigning it to another
+    - net: hns3: convert mac advertize and supported from u32 to link mode
+    - net: hns3: fix port info query issue for copper port
+    - net: hns3: modify print message of ssu common ecc errors
+    - net: hns3: some bugfix of ppu(rcb) ras errors
+    - net: hns3: enable 8~11th bit of mac common msi-x error
+    - net: hns3: fix 6th bit of ppp mpf abnormal errors
+    - net: hns3: Record VF unicast and multicast tables
+    - net: hns3: Record VF vlan tables
+    - net: hns3: uninitialize command queue while unloading PF driver
+    - net: hns3: clear command queue's registers when unloading VF driver
+    - net: hns3: add xps setting support for hns3 driver
+    - net: hns3: avoid mult + div op in critical data path
+    - net: hns3: limit some variable scope in critical data path
+    - net: hns3: remove some ops in struct hns3_nic_ops
+    - net: hns3: add unlikely for error handling in data path
+    - net: hns3: replace hnae3_set_bit and hnae3_set_field in data path
+    - net: hns3: remove hnae3_get_bit in data path
+    - net: hns3: add support to config depth for tx|rx ring separately
+    - net: hns3: enable VF VLAN filter for each VF when initializing
+    - net: hns3: fix get VF RSS issue
+    - net: hns3: fix setting of the hns reset_type for rdma hw errors
+    - net: hns3: fix improper error handling for hns3_client_start
+    - net: hns: use struct_size() in devm_kzalloc()
+    - net: hns3: Fix a logical vs bitwise typo
+    - net: hns3: add dma_rmb() for rx description
+    - net: hns3: fix to stop multiple HNS reset due to the AER changes
+
+  * Build Nvidia drivers in conjunction with kernel (LP: #1764792)
+    - [Packaging] dkms-build -- support building against packages in PPAs
+    - [Packaging] dkms-build: do not redownload files on subsequent passes
+    - [Packaging] dkms-build -- elide partial Built-Using information
+    - [Packaging] dkms-build -- remove retpoline data from final binary packages
+    - [Packaging] dkms-build--nvidia* -- check gcc version against primary build
+    - [Packaging] dkms-build -- add support for unversioned overrides
+    - [Packaging] dkms-build--nvidia-* -- convert to generic -N form
+    - [Packaging] fix-filenames -- handle exact string removal
+    - [Packaging] dkms-build--nvidia-N -- remove GCC versions
+
+  * Disco update: v5.0.1 upstream stable release (LP: #1819515)
+    - cpufreq: Use struct kobj_attribute instead of struct global_attr
+    - staging: erofs: fix mis-acted TAIL merging behavior
+    - binder: create node flag to request sender's security context
+    - USB: serial: option: add Telit ME910 ECM composition
+    - USB: serial: cp210x: add ID for Ingenico 3070
+    - USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
+    - driver core: Postpone DMA tear-down until after devres release
+    - staging: erofs: fix fast symlink w/o xattr when fs xattr is on
+    - staging: erofs: fix memleak of inode's shared xattr array
+    - staging: erofs: fix race of initializing xattrs of a inode at the same time
+    - staging: erofs: fix illegal address access under memory pressure
+    - staging: comedi: ni_660x: fix missing break in switch statement
+    - staging: wilc1000: fix to set correct value for 'vif_num'
+    - staging: android: ion: fix sys heap pool's gfp_flags
+    - staging: android: ashmem: Don't call fallocate() with ashmem_mutex held.
+    - staging: android: ashmem: Avoid range_alloc() allocation with ashmem_mutex
+      held.
+    - ip6mr: Do not call __IP6_INC_STATS() from preemptible context
+    - net: dsa: mv88e6xxx: add call to mv88e6xxx_ports_cmode_init to probe for new
+      DSA framework
+    - net: dsa: mv88e6xxx: handle unknown duplex modes gracefully in
+      mv88e6xxx_port_set_duplex
+    - net: dsa: mv8e6xxx: fix number of internal PHYs for 88E6x90 family
+    - net: mscc: Enable all ports in QSGMII
+    - net: sched: put back q.qlen into a single location
+    - net-sysfs: Fix mem leak in netdev_register_kobject
+    - qmi_wwan: Add support for Quectel EG12/EM12
+    - sctp: call iov_iter_revert() after sending ABORT
+    - team: Free BPF filter when unregistering netdev
+    - tipc: fix RDM/DGRAM connect() regression
+    - x86/CPU/AMD: Set the CPB bit unconditionally on F17h
+    - x86/boot/compressed/64: Do not read legacy ROM on EFI system
+    - tracing: Fix event filters and triggers to handle negative numbers
+    - xhci: tegra: Prevent error pointer dereference
+    - usb: xhci: Fix for Enabling USB ROLE SWITCH QUIRK on
+      INTEL_SUNRISEPOINT_LP_XHCI
+    - applicom: Fix potential Spectre v1 vulnerabilities
+    - alpha: wire up io_pgetevents system call
+    - MIPS: irq: Allocate accurate order pages for irq stack
+    - aio: Fix locking in aio_poll()
+    - xtensa: fix get_wchan
+    - gnss: sirf: fix premature wakeup interrupt enable
+    - USB: serial: cp210x: fix GPIO in autosuspend
+    - Revert "selftests: firmware: add CONFIG_FW_LOADER_USER_HELPER_FALLBACK to
+      config"
+    - Revert "selftests: firmware: remove use of non-standard diff -Z option"
+    - selftests: firmware: fix verify_reqs() return value
+    - Bluetooth: btrtl: Restore old logic to assume firmware is already loaded
+    - Bluetooth: Fix locking in bt_accept_enqueue() for BH context
+    - Linux 5.0.1
+
+  * sky2 ethernet card doesn't work after returning from suspend
+    (LP: #1807259) // sky2 ethernet card link not up after suspend
+    (LP: #1809843) // Disco update: v5.0.1 upstream stable release
+    (LP: #1819515)
+    - sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
+
+  * tls selftest failures/hangs on i386 (LP: #1813607)
+    - [Config] CONFIG_TLS=n for i386
+
+  * CVE-2019-8980
+    - exec: Fix mem leak in kernel_read_file
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests: net: Use 'ipproto ipv6-icmp' to match ICMPv6 headers
+    - [Config] enable nvidia build
+    - [Config] update gcc version to 8.3
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: selftests: pmtu: disable accept_dad for tests"
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 12 Mar 2019 16:15:44 -0300
+
+linux (5.0.0-7.8) disco; urgency=medium
+
+  * linux: 5.0.0-7.8 -proposed tracker (LP: #1818519)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * unnecessary request_queue freeze (LP: #1815733)
+    - block: avoid setting nr_requests to current value
+    - block: avoid setting none scheduler if it's already none
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests: net: Don't fail test_vxlan_under_vrf on xfail
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 04 Mar 2019 08:46:10 -0600
+
+linux (5.0.0-6.7) disco; urgency=medium
+
+  * linux: 5.0.0-6.7 -proposed tracker (LP: #1817585)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - [Packaging] resync getabis
+
+  * installer does not support iSCSI iBFT (LP: #1817321)
+    - d-i: add iscsi_ibft to scsi-modules
+
+  * Silent "Unknown key" message when pressing keyboard backlight hotkey
+    (LP: #1817063)
+    - platform/x86: dell-wmi: Ignore new keyboard backlight change event
+
+  * Fix I219 doesn't get woken up after plugging ethernet cable (LP: #1817058)
+    - e1000e: Disable runtime PM on CNP+
+
+  * efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted (LP: #1814982)
+    - efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted
+
+  * CVE-2019-3460
+    - Bluetooth: Check L2CAP option sizes returned from l2cap_get_conf_opt
+
+  * CVE-2019-3459
+    - Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer
+
+  * kernel net tls selftest fails on 5.0 (LP: #1816716)
+    - SAUCE: Revert "selftests/tls: Add test for recv(PEEK) spanning across
+      multiple records"
+
+  * Please enable CONFIG_DMA_CMA=y on arm64 (LP: #1803206)
+    - [Config] annotations -- enforce CONFIG_DMA_CMA and update notes
+
+  * [19.04 FEAT] [LS1801] PCI Virtual function enablement (LP: #1814684)
+    - s390/pci: map IOV resources
+    - s390/pci: improve bar check
+
+  * glibc 2.28-0ubuntu1 ADT test failure with linux 5.0.0-1.2 (LP: #1813060)
+    - SAUCE: prevent a glibc test failure when looking for obsolete types on
+      headers
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Enforce CONFIG_ZCRYPT_MULTIDEVNODES in annotations
+    - SAUCE: selftests: pmtu: disable accept_dad for tests
+    - SAUCE: arm64: add kernel config option to lock down when in Secure Boot mode
+    - SAUCE: selftests: net: Make test for VXLAN underlay in non-default VRF an
+      expected failure
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 25 Feb 2019 09:37:36 -0600
+
+linux (5.0.0-5.6) disco; urgency=medium
+
+  * [ALSA] [PATCH] System76 darp5 and oryp5 fixups (LP: #1815831)
+    - ALSA: hda/realtek - Headset microphone and internal speaker support for
+      System76 oryp5
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Fix aufs menus in annotations file
+    - [Config] CONFIG_SAMPLE_TRACE_PRINTK=m
+    - [Config] Update annotations based on configs
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 18 Feb 2019 10:04:11 +0100
+
+linux (5.0.0-4.5) disco; urgency=medium
+
+  * linux-buildinfo: pull out ABI information into its own package
+    (LP: #1806380)
+    - [Packaging] autoreconstruct -- base tag is always primary mainline version
+
+  * [Packaging] Allow overlay of config annotations (LP: #1752072)
+    - [Packaging] config-check: Add an include directive
+
+  * Miscellaneous Ubuntu changes
+    - hio -- stub out BIOVEC_PHYS_MERGEABLE for 4.20+
+    - hio -- replace use of do_gettimeofday()
+    - hio -- part_round_stats() removed in 5.0
+    - hio -- device_add_disk() grew a 'groups' argument in 4.20
+    - enable hio build
+    - Revert "UBUNTU: [Packaging] autoreconstruct -- base tag is always primary
+      mainline version"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 12 Feb 2019 08:15:32 -0600
+
+linux (5.0.0-3.4) disco; urgency=medium
+
+  * CONFIG_TEST_BPF is disabled (LP: #1813955)
+    - [Config]: Reenable TEST_BPF
+
+  * Ignore "incomplete report" from Elan touchpanels (LP: #1813733)
+    - HID: i2c-hid: Ignore input report if there's no data present on Elan
+      touchpanels
+
+  * SecureBoot support for arm64 (LP: #1804481)
+    - Build signed kernels for arm64
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests: net: fix "from" match test in fib_rule_tests.sh
+    - [Config] CONFIG_PCMCIA=n for arm64 and s390x
+    - [Config] CONFIG_SERIAL_SC16IS7XX=n for s390x
+    - [Config] disable I2C TPM drivers for s390x
+    - [Config] CONFIG_RAPIDIO=n for s390x
+    - [Config] CONFIG_DMADEVICES=n for s390x
+    - [Config] disable gpio drivers for s390x
+    - [Config] CONFIG_SENSORS_OCC_P8_I2C=m for ppc64el
+    - [Config] disable I2C hardware drivers for s390x
+    - [Config] CONFIG_I3C=n for s390x
+    - [Config] CONFIG_SERIO=n for s390x
+    - [Config] disable misc drivers for s390x
+    - [Config] disable EEPROM drivers for s390x
+    - [Config] disable MFD drivers for s390x
+    - [Config] CONFIG_NVMEM=n for s390x
+    - [Config] CONFIG_MLXSW_I2C=n for s390x
+    - [Config] CONFIG_NET_VENDOR_MICROCHIP=n for s390x
+    - [Config] CONFIG_PPP=n for s390x
+    - [Config] CONFIG_PCCARD=n for s390x
+    - [Config] CONFIG_PCI_MESON=y
+    - [Config] CONFIG_SCSI_MYRB=n for s390x
+    - [Config] CONFIG_REGULATOR=n for s390x
+    - [Config] CONFIG_ZIIRAVE_WATCHDOG=n for s390x
+    - [Config] CONFIG_NCSI_OEM_CMD_GET_MAC=y
+    - [Config] update annotations following config review
+    - [Packaging] remove handoff check for uefi signing
+    - [Packaging] decompress gzipped efi images in signing tarball
+    - vbox-update: allow leading whitespace when fixing up KERN_DIR
+    - ubuntu: vbox -- update to 6.0.4-dfsg-3
+    - vbox: remove remount check in sf_read_super_aux()
+    - enable vbox build
+    - [Config] CONFIG_ANDROID_BINDER_DEVICES=""
+    - SAUCE: import aufs driver
+    - [Config]: Enable aufs
+    - [Config] relocate aufs annotations to menu
+    - [Config] remove unmatched configs from annotations
+    - [Config] fix up abi for removed modules
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) module: remove support for having IMA validate modules
+    - SAUCE: (efi-lockdown) Move EFI signature blob parser to shared location
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - [Config] (efi-lockdown) enable importing of efi certificates for module sig
+      verification
+
+  * Miscellaneous upstream changes
+    - binder: fix CONFIG_ANDROID_BINDER_DEVICES
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 05 Feb 2019 14:26:12 -0600
+
+linux (5.0.0-2.3) disco; urgency=medium
+
+  * kernel oops in bcache module (LP: #1793901)
+    - SAUCE: bcache: never writeback a discard operation
+
+  * Enable sound card power saving by default (LP: #1804265)
+    - [Config] CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: selftests: disable some failing networking tests"
+    - SAUCE: ashmem: turn into module
+    - SAUCE: binder: turn into module
+    - SAUCE: binder: give binder_alloc its own debug mask file
+    - [Config] enable binder and ashmem as modules
+    - SAUCE: selftests: net: replace AF_MAX with INT_MAX in socket.c
+    - SAUCE: selftests/ftrace: Fix tab expansion in trace_marker snapshot trigger
+      test
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 29 Jan 2019 06:57:32 -0600
+
+linux (5.0.0-1.2) disco; urgency=medium
+
+  * Fix non-working QCA Rome Bluetooth after S3 (LP: #1812812)
+    - USB: Add new USB LPM helpers
+    - USB: Consolidate LPM checks to avoid enabling LPM twice
+
+  * bluetooth controller not detected with 4.15 kernel (LP: #1810797)
+    - SAUCE: btqcomsmd: introduce BT_QCOMSMD_HACK
+    - [Config] arm64: snapdragon: BT_QCOMSMD_HACK=y
+
+  * [19.04 FEAT| Enable virtio-gpu for s390x (LP: #1799467)
+    - [Config] enable virtio-gpu for s390x
+
+  * Crash on "ip link add foo type ipip" (LP: #1811803)
+    - SAUCE: fan: Fix NULL pointer dereference
+
+  * Fix not working Goodix touchpad (LP: #1811929)
+    - HID: i2c-hid: Disable runtime PM on Goodix touchpad
+
+  * Miscellaneous Ubuntu changes
+    - update dkms package versions
+    - enable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 22 Jan 2019 13:56:17 -0600
+
+linux (5.0.0-0.1) disco; urgency=medium
+
+  * Build Nvidia drivers in conjunction with kernel (LP: #1764792)
+    - [Packaging] dkms -- add per package post-process step
+    - [Packaging] dkms -- switch to a consistent build prefix length and strip
+    - [Packaging] nvidia -- build and sign nvidia packages and ship signatures
+    - [Packaging] nvidia -- make nvidia package version explicit
+
+  * Add support for ALC3277 codec on new Dell edge gateways (LP: #1807334)
+    - [Config] CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
+
+  * RTL8822BE WiFi Disabled in Kernel 4.18.0-12 (LP: #1806472)
+    - [Config] CONFIG_RTLWIFI_DEBUG_ST=n
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu -- disable vbox build
+    - ubuntu -- disable hio build
+    - Disable zfs build
+    - SAUCE: import aufs driver
+    - update dkms package versions
+    - [Config] disable aufs config options
+    - [Config] disable nvidia build
+    - update dropped.txt
+    - [Packaging] disable nvidia dkms builds for mainline
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) debugfs: avoid EPERM when no open file operation
+      defined
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - [Config] set config options for efi lockdown
+    - Revert "UBUNTU: SAUCE: import aufs driver"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v5.0-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 17 Jan 2019 12:31:29 -0600
+
+linux (5.0.0-0.0) disco; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 16 Jan 2019 14:48:05 -0600
+
+linux (4.20.0-2.3) disco; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.20
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 03 Jan 2019 12:11:43 -0600
+
+linux (4.20.0-1.2) disco; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * Power leakage at S5 with Qualcomm Atheros QCA9377 802.11ac Wireless Network
+    Adapter (LP: #1805607)
+    - SAUCE: ath10k: provide reset function for QCA9377 chip
+
+  * zfs/spl build in conjunction with the kernel from DKMS source (LP: #1807378)
+    - [Packaging] dkms -- dkms package build packaging support
+    - [Packaging] dkms -- save build objects artifacts for validation
+    - [Packaging] dkms -- add general Built-Using: support
+    - [Packaging] simplify Provides comma handling
+    - [Packaging] zfs/spl -- remove packaging support for incorporated source
+    - [Packaging] zfs/spl -- remove incorporated source
+    - [Packaging] zfs/spl -- build via dkms
+    - [Packaging] zfs/spl -- make zfs package version explicit
+    - [Packaging] update-version-dkms -- sync archive versions to package
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] update-version-dkms -- fix getting distrbution from changelog
+    - update dkms package versions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.20-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 11 Dec 2018 11:33:08 -0600
+
+linux (4.20.0-0.1) disco; urgency=medium
+
+  * Overlayfs in user namespace leaks directory content of inaccessible
+    directories (LP: #1793458) // CVE-2018-6559
+    - Revert "ovl: relax permission checking on underlying layers"
+    - SAUCE: overlayfs: ensure mounter privileges when reading directories
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) Fix for module sig verification
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: Import aufs driver
+    - ubuntu: vbox -- update to 5.2.22-dfsg-2
+    - ubuntu -- disable vbox build
+    - ubuntu -- disable hio build
+    - Disable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.20-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 07 Dec 2018 07:13:42 -0600
+
+linux (4.20.0-0.0) disco; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 06 Dec 2018 10:20:19 -0600
+
+linux (4.19.0-8.9) disco; urgency=medium
+
+  * linux: 4.19.0-8.9 -proposed tracker (LP: #1806952)
+
+  * Workaround CSS timeout on AMD SNPS 3.0 xHC (LP: #1806838)
+    - xhci: workaround CSS timeout on AMD SNPS 3.0 xHC
+
+  * Fix Intel I210 doesn't work when ethernet cable gets plugged (LP: #1806818)
+    - igb: Fix an issue that PME is not enabled during runtime suspend
+
+  * The line-out on the Dell Dock station can't work (LP: #1806532)
+    - ALSA: usb-audio: Add vendor and product name for Dell WD19 Dock
+
+  * CVE-2018-19407
+    - KVM: X86: Fix scan ioapic use-before-initialization
+
+  * PC SN720 NVMe WDC 256GB consumes more power in S2Idle than during long idle
+    (LP: #1805775)
+    - SAUCE: pci/nvme: prevent WDC PC SN720 NVMe from entering D3 and being
+      disabled
+
+  * Disco update: 4.19.6 upstream stable release (LP: #1806909)
+    - HID: steam: remove input device when a hid client is running.
+    - efi/libstub: arm: support building with clang
+    - usb: core: Fix hub port connection events lost
+    - usb: dwc3: gadget: fix ISOC TRB type on unaligned transfers
+    - usb: dwc3: gadget: Properly check last unaligned/zero chain TRB
+    - usb: dwc3: core: Clean up ULPI device
+    - usb: dwc3: Fix NULL pointer exception in dwc3_pci_remove()
+    - xhci: Fix leaking USB3 shared_hcd at xhci removal
+    - xhci: handle port status events for removed USB3 hcd
+    - xhci: Add check for invalid byte size error when UAS devices are connected.
+    - usb: xhci: fix uninitialized completion when USB3 port got wrong status
+    - usb: xhci: fix timeout for transition from RExit to U0
+    - xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc
+    - usb: xhci: Prevent bus suspend if a port connect change or polling state is
+      detected
+    - ALSA: oss: Use kvzalloc() for local buffer allocations
+    - MAINTAINERS: Add Sasha as a stable branch maintainer
+    - Documentation/security-bugs: Clarify treatment of embargoed information
+    - Documentation/security-bugs: Postpone fix publication in exceptional cases
+    - mmc: sdhci-pci: Try "cd" for card-detect lookup before using NULL
+    - mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value
+    - gpio: don't free unallocated ida on gpiochip_add_data_with_key() error path
+    - iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE
+    - iwlwifi: mvm: support sta_statistics() even on older firmware
+    - iwlwifi: mvm: fix regulatory domain update when the firmware starts
+    - iwlwifi: mvm: don't use SAR Geo if basic SAR is not used
+    - brcmfmac: fix reporting support for 160 MHz channels
+    - opp: ti-opp-supply: Dynamically update u_volt_min
+    - opp: ti-opp-supply: Correct the supply in _get_optimal_vdd_voltage call
+    - tools/power/cpupower: fix compilation with STATIC=true
+    - v9fs_dir_readdir: fix double-free on p9stat_read error
+    - selinux: Add __GFP_NOWARN to allocation at str_read()
+    - Input: synaptics - avoid using uninitialized variable when probing
+    - bfs: add sanity check at bfs_fill_super()
+    - sctp: clear the transport of some out_chunk_list chunks in
+      sctp_assoc_rm_peer
+    - gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
+    - llc: do not use sk_eat_skb()
+    - mm: don't warn about large allocations for slab
+    - mm/memory.c: recheck page table entry with page table lock held
+    - tcp: do not release socket ownership in tcp_close()
+    - drm/fb-helper: Blacklist writeback when adding connectors to fbdev
+    - drm/amdgpu: Add missing firmware entry for HAINAN
+    - drm/vc4: Set ->legacy_cursor_update to false when doing non-async updates
+    - drm/amdgpu: Fix oops when pp_funcs->switch_power_profile is unset
+    - drm/i915: Disable LP3 watermarks on all SNB machines
+    - drm/ast: change resolution may cause screen blurred
+    - drm/ast: fixed cursor may disappear sometimes
+    - drm/ast: Remove existing framebuffers before loading driver
+    - can: flexcan: Unlock the MB unconditionally
+    - can: dev: can_get_echo_skb(): factor out non sending code to
+      __can_get_echo_skb()
+    - can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to
+      access frame length
+    - can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb
+      is accessed out of bounds
+    - can: dev: __can_get_echo_skb(): print error message, if trying to echo non
+      existing skb
+    - can: rx-offload: introduce can_rx_offload_get_echo_skb() and
+      can_rx_offload_queue_sorted() functions
+    - can: rx-offload: rename can_rx_offload_irq_queue_err_skb() to
+      can_rx_offload_queue_tail()
+    - can: flexcan: use can_rx_offload_queue_sorted() for flexcan_irq_bus_*()
+    - can: flexcan: handle tx-complete CAN frames via rx-offload infrastructure
+    - can: raw: check for CAN FD capable netdev in raw_sendmsg()
+    - can: hi311x: Use level-triggered interrupt
+    - can: flexcan: Always use last mailbox for TX
+    - can: flexcan: remove not needed struct flexcan_priv::tx_mb and struct
+      flexcan_priv::tx_mb_idx
+    - ACPICA: AML interpreter: add region addresses in global list during
+      initialization
+    - IB/hfi1: Eliminate races in the SDMA send error path
+    - fsnotify: generalize handling of extra event flags
+    - fanotify: fix handling of events on child sub-directory
+    - pinctrl: meson: fix pinconf bias disable
+    - pinctrl: meson: fix gxbb ao pull register bits
+    - pinctrl: meson: fix gxl ao pull register bits
+    - pinctrl: meson: fix meson8 ao pull register bits
+    - pinctrl: meson: fix meson8b ao pull register bits
+    - tools/testing/nvdimm: Fix the array size for dimm devices.
+    - scsi: lpfc: fix remoteport access
+    - scsi: hisi_sas: Remove set but not used variable 'dq_list'
+    - KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
+    - cpufreq: imx6q: add return value check for voltage scale
+    - rtc: cmos: Do not export alarm rtc_ops when we do not support alarms
+    - rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
+    - crypto: simd - correctly take reqsize of wrapped skcipher into account
+    - floppy: fix race condition in __floppy_read_block_0()
+    - powerpc/io: Fix the IO workarounds code to work with Radix
+    - sched/fair: Fix cpu_util_wake() for 'execl' type workloads
+    - perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
+    - block: copy ioprio in __bio_clone_fast() and bounce
+    - SUNRPC: Fix a bogus get/put in generic_key_to_expire()
+    - riscv: add missing vdso_install target
+    - RISC-V: Silence some module warnings on 32-bit
+    - drm/amdgpu: fix bug with IH ring setup
+    - kdb: Use strscpy with destination buffer size
+    - NFSv4: Fix an Oops during delegation callbacks
+    - powerpc/numa: Suppress "VPHN is not supported" messages
+    - efi/arm: Revert deferred unmap of early memmap mapping
+    - z3fold: fix possible reclaim races
+    - mm, memory_hotplug: check zone_movable in has_unmovable_pages
+    - tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
+    - mm, page_alloc: check for max order in hot path
+    - dax: Avoid losing wakeup in dax_lock_mapping_entry
+    - include/linux/pfn_t.h: force '~' to be parsed as an unary operator
+    - tty: wipe buffer.
+    - tty: wipe buffer if not echoing data
+    - gfs2: Fix iomap buffer head reference counting bug
+    - rcu: Make need_resched() respond to urgent RCU-QS needs
+    - media: ov5640: Re-work MIPI startup sequence
+    - media: ov5640: Fix timings setup code
+    - media: ov5640: fix exposure regression
+    - media: ov5640: fix auto gain & exposure when changing mode
+    - media: ov5640: fix wrong binning value in exposure calculation
+    - media: ov5640: fix auto controls values when switching to manual mode
+    - Linux 4.19.6
+
+  * linux-buildinfo: pull out ABI information into its own package
+    (LP: #1806380)
+    - [Packaging] limit preparation to linux-libc-dev in headers
+    - [Packaging] commonise debhelper invocation
+    - [Packaging] ABI -- accumulate abi information at the end of the build
+    - [Packaging] buildinfo -- add basic build information
+    - [Packaging] buildinfo -- add firmware information to the flavour ABI
+    - [Packaging] buildinfo -- add compiler information to the flavour ABI
+    - [Packaging] buildinfo -- add buildinfo support to getabis
+    - [Packaging] getabis -- handle all known package combinations
+    - [Packaging] getabis -- support parsing a simple version
+
+  * linux packages should own /usr/lib/linux/triggers (LP: #1770256)
+    - [Packaging] own /usr/lib/linux/triggers
+
+  * Miscellaneous upstream changes
+    - blk-mq: fix corruption with direct issue
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 05 Dec 2018 09:18:30 -0600
+
+linux (4.19.0-7.8) disco; urgency=medium
+
+  * linux: 4.19.0-7.8 -proposed tracker (LP: #1805465)
+
+  * Fix and issue that LG I2C touchscreen stops working after reboot
+    (LP: #1805085)
+    - HID: i2c-hid: Disable runtime PM for LG touchscreen
+
+  * click/pop noise in the headphone on several lenovo laptops (LP: #1805079) //
+    click/pop noise in the headphone on several lenovo laptops (LP: #1805079)
+    - ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops
+
+  * Regression: hinic performance degrades over time (LP: #1805248)
+    - Revert "net-next/hinic: add checksum offload and TSO support"
+
+  * Disco update: 4.19.5 upstream stable release (LP: #1805461)
+    - drm/i915: Replace some PAGE_SIZE with I915_GTT_PAGE_SIZE
+    - cifs: don't dereference smb_file_target before null check
+    - cifs: fix return value for cifs_listxattr
+    - arm64: kprobe: make page to RO mode when allocate it
+    - block: brd: associate with queue until adding disk
+    - net: hns3: bugfix for rtnl_lock's range in the hclgevf_reset()
+    - net: hns3: bugfix for rtnl_lock's range in the hclge_reset()
+    - net: hns3: bugfix for handling mailbox while the command queue reinitialized
+    - net: hns3: bugfix for the initialization of command queue's spin lock
+    - ixgbe: fix MAC anti-spoofing filter after VFLR
+    - reiserfs: propagate errors from fill_with_dentries() properly
+    - hfs: prevent btree data loss on root split
+    - hfsplus: prevent btree data loss on root split
+    - perf unwind: Take pgoff into account when reporting elf to libdwfl
+    - um: Give start_idle_thread() a return code
+    - drm/edid: Add 6 bpc quirk for BOE panel.
+    - afs: Handle EIO from delivery function
+    - platform/x86: intel_telemetry: report debugfs failure
+    - clk: fixed-rate: fix of_node_get-put imbalance
+    - perf symbols: Set PLT entry/header sizes properly on Sparc
+    - fs/exofs: fix potential memory leak in mount option parsing
+    - clk: samsung: exynos5420: Enable PERIS clocks for suspend
+    - apparmor: Fix uninitialized value in aa_split_fqname
+    - x86/earlyprintk: Add a force option for pciserial device
+    - platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307
+    - clk: meson-axg: pcie: drop the mpll3 clock parent
+    - arm64: percpu: Initialize ret in the default case
+    - clk: meson: clk-pll: drop CLK_GET_RATE_NOCACHE where unnecessary
+    - clk: renesas: r9a06g032: Fix UART34567 clock rate
+    - clk: ti: fix OF child-node lookup
+    - serial: sh-sci: Fix receive on SCIFA/SCIFB variants with DMA
+    - netfilter: ipv6: fix oops when defragmenting locally generated fragments
+    - netfilter: bridge: define INT_MIN & INT_MAX in userspace
+    - s390/decompressor: add missing FORCE to build targets
+    - s390/vdso: add missing FORCE to build targets
+    - HID: i2c-hid: Add a small delay after sleep command for Raydium touchpanel
+    - Revert "HID: add NOGET quirk for Eaton Ellipse MAX UPS"
+    - HID: alps: allow incoming reports when only the trackstick is opened
+    - Revert "netfilter: nft_numgen: add map lookups for numgen random operations"
+    - netfilter: ipset: list:set: Decrease refcount synchronously on deletion and
+      replace
+    - netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net
+    - netfilter: ipset: fix ip_set_list allocation failure
+    - s390/mm: fix mis-accounting of pgtable_bytes
+    - s390/mm: Fix ERROR: "__node_distance" undefined!
+    - bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
+    - netfilter: ipset: Correct rcu_dereference() call in ip_set_put_comment()
+    - netfilter: xt_IDLETIMER: add sysfs filename checking routine
+    - netfilter: ipset: Fix calling ip_set() macro at dumping
+    - netfilter: nft_compat: ebtables 'nat' table is normal chain type
+    - s390/qeth: fix HiperSockets sniffer
+    - s390/qeth: unregister netdevice only when registered
+    - net: hns3: Fix for out-of-bounds access when setting pfc back pressure
+    - hwmon: (ibmpowernv) Remove bogus __init annotations
+    - ARM: dts: imx6sll: fix typo for fsl,imx6sll-i2c node
+    - ARM: dts: fsl: Fix improperly quoted stdout-path values
+    - Revert "drm/exynos/decon5433: implement frame counter"
+    - arm64: dts: renesas: r8a7795: add missing dma-names on hscif2
+    - arm64: dts: renesas: condor: switch from EtherAVB to GEther
+    - xen/grant-table: Fix incorrect gnttab_dma_free_pages() pr_debug message
+    - clk: fixed-factor: fix of_node_get-put imbalance
+    - mtd: nand: Fix nanddev_pos_next_page() kernel-doc header
+    - lib/raid6: Fix arm64 test build
+    - drm/amd/display: Stop leaking planes
+    - block: Clear kernel memory before copying to user
+    - drm/amd/display: Drop reusing drm connector for MST
+    - drm/amd/amdgpu/dm: Fix dm_dp_create_fake_mst_encoder()
+    - s390/perf: Change CPUM_CF return code in event init function
+    - ceph: quota: fix null pointer dereference in quota check
+    - of/device: Really only set bus DMA mask when appropriate
+    - nvme: make sure ns head inherits underlying device limits
+    - i2c: omap: Enable for ARCH_K3
+    - i2c: qcom-geni: Fix runtime PM mismatch with child devices
+    - sched/core: Take the hotplug lock in sched_init_smp()
+    - perf tools: Fix undefined symbol scnprintf in libperf-jvmti.so
+    - perf tools: Do not zero sample_id_all for group members
+    - ice: Fix dead device link issue with flow control
+    - ice: Fix the bytecount sent to netdev_tx_sent_queue
+    - ice: Change req_speeds to be u16
+    - i40e: restore NETIF_F_GSO_IPXIP[46] to netdev features
+    - qed: Fix memory/entry leak in qed_init_sp_request()
+    - qed: Fix blocking/unlimited SPQ entries leak
+    - qed: Fix SPQ entries not returned to pool in error flows
+    - qed: Fix potential memory corruption
+    - net: stmmac: Fix RX packet size > 8191
+    - net: aquantia: fix potential IOMMU fault after driver unbind
+    - net: aquantia: fixed enable unicast on 32 macvlan
+    - net: aquantia: invalid checksumm offload implementation
+    - kbuild: deb-pkg: fix too low build version number
+    - Revert "scripts/setlocalversion: git: Make -dirty check more robust"
+    - SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
+    - x86/mm: Move LDT remap out of KASLR region on 5-level paging
+    - x86/ldt: Unmap PTEs for the slot before freeing LDT pages
+    - x86/ldt: Remove unused variable in map_ldt_struct()
+    - media: v4l: event: Add subscription to list before calling "add" operation
+    - MIPS: OCTEON: cavium_octeon_defconfig: re-enable OCTEON USB driver
+    - RISC-V: Fix raw_copy_{to,from}_user()
+    - uio: Fix an Oops on load
+    - ALSA: hda/realtek - Add quirk entry for HP Pavilion 15
+    - ALSA: hda/ca0132 - Call pci_iounmap() instead of iounmap()
+    - can: kvaser_usb: Fix accessing freed memory in kvaser_usb_start_xmit()
+    - can: kvaser_usb: Fix potential uninitialized variable use
+    - usb: cdc-acm: add entry for Hiro (Conexant) modem
+    - USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub
+    - usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
+    - misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
+    - USB: misc: appledisplay: add 20" Apple Cinema Display
+    - gnss: serial: fix synchronous write timeout
+    - gnss: sirf: fix synchronous write timeout
+    - mtd: rawnand: atmel: fix OF child-node lookup
+    - drivers/misc/sgi-gru: fix Spectre v1 vulnerability
+    - ACPI / platform: Add SMB0001 HID to forbidden_id_list
+    - HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
+    - HID: Add quirk for Primax PIXART OEM mice
+    - HID: Add quirk for Microsoft PIXART OEM mouse
+    - libceph: fall back to sendmsg for slab pages
+    - mt76x0: run vco calibration for each channel configuration
+    - Linux 4.19.5
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: Build signed kernels for arm64"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 27 Nov 2018 10:38:34 -0600
+
+linux (4.19.0-6.7) disco; urgency=medium
+
+  * linux: 4.19.0-6.7 -proposed tracker (LP: #1805195)
+
+  * SecureBoot support for arm64 (LP: #1804481)
+    - Build signed kernels for arm64
+
+  * Add pointstick support for Cirque Touchpad (LP: #1805081)
+    - HID: multitouch: Add pointstick support for Cirque Touchpad
+
+  * Power consumption during s2idle is higher than long idle (Intel SSDPEKKF)
+    (LP: #1804588)
+    - SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3
+    - SAUCE: nvme: add quirk to not call disable function when suspending
+
+  * Disco update: 4.19.4 upstream stable release (LP: #1805159)
+    - flow_dissector: do not dissect l4 ports for fragments
+    - ibmvnic: fix accelerated VLAN handling
+    - ip_tunnel: don't force DF when MTU is locked
+    - ipv6: fix a dst leak when removing its exception
+    - ipv6: Fix PMTU updates for UDP/raw sockets in presence of VRF
+    - net: bcmgenet: protect stop from timeout
+    - net-gro: reset skb->pkt_type in napi_reuse_skb()
+    - sctp: not allow to set asoc prsctp_enable by sockopt
+    - tcp: Fix SOF_TIMESTAMPING_RX_HARDWARE to use the latest timestamp during TCP
+      coalescing
+    - tg3: Add PHY reset for 5717/5719/5720 in change ring and flow control paths
+    - tipc: don't assume linear buffer when reading ancillary data
+    - tipc: fix lockdep warning when reinitilaizing sockets
+    - tuntap: fix multiqueue rx
+    - net: systemport: Protect stop from timeout
+    - net/sched: act_pedit: fix memory leak when IDR allocation fails
+    - net: sched: cls_flower: validate nested enc_opts_policy to avoid warning
+    - tipc: fix link re-establish failure
+    - net/mlx5e: Don't match on vlan non-existence if ethertype is wildcarded
+    - net/mlx5e: Claim TC hw offloads support only under a proper build config
+    - net/mlx5e: Adjust to max number of channles when re-attaching
+    - net/mlx5e: RX, verify received packet size in Linear Striding RQ
+    - Revert "sctp: remove sctp_transport_pmtu_check"
+    - net/mlx5e: Always use the match level enum when parsing TC rule match
+    - net/mlx5e: Fix selftest for small MTUs
+    - net/mlx5e: Removed unnecessary warnings in FEC caps query
+    - inet: frags: better deal with smp races
+    - l2tp: fix a sock refcnt leak in l2tp_tunnel_register
+    - net/mlx5: IPSec, Fix the SA context hash key
+    - net/mlx5e: IPoIB, Reset QP after channels are closed
+    - net: dsa: mv88e6xxx: Fix clearing of stats counters
+    - net: phy: realtek: fix RTL8201F sysfs name
+    - sctp: define SCTP_SS_DEFAULT for Stream schedulers
+    - net: qualcomm: rmnet: Fix incorrect assignment of real_dev
+    - net: dsa: microchip: initialize mutex before use
+    - sctp: fix strchange_flags name for Stream Change Event
+    - net: phy: mdio-gpio: Fix working over slow can_sleep GPIOs
+    - sctp: not increase stream's incnt before sending addstrm_in request
+    - mlxsw: spectrum: Fix IP2ME CPU policer configuration
+    - net: smsc95xx: Fix MTU range
+    - rxrpc: Fix lockup due to no error backoff after ack transmit error
+    - usbnet: smsc95xx: disable carrier check while suspending
+    - Revert "x86/speculation: Enable cross-hyperthread spectre v2 STIBP
+      mitigation"
+    - Linux 4.19.4
+
+  * Disco update: 4.19.3 upstream stable release (LP: #1805158)
+    - powerpc/traps: restore recoverability of machine_check interrupts
+    - powerpc/64/module: REL32 relocation range check
+    - powerpc/mm: Fix page table dump to work on Radix
+    - powerpc/mm: fix always true/false warning in slice.c
+    - drm/amd/display: fix bug of accessing invalid memory
+    - Input: wm97xx-ts - fix exit path
+    - powerpc/Makefile: Fix PPC_BOOK3S_64 ASFLAGS
+    - powerpc/eeh: Fix possible null deref in eeh_dump_dev_log()
+    - tty: check name length in tty_find_polling_driver()
+    - tracing/kprobes: Check the probe on unloaded module correctly
+    - drm/nouveau/secboot/acr: fix memory leak
+    - drm/amdgpu/powerplay: fix missing break in switch statements
+    - ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL
+    - powerpc/nohash: fix undefined behaviour when testing page size support
+    - drm/msm/gpu: fix parameters in function msm_gpu_crashstate_capture
+    - drm/msm/disp/dpu: Use proper define for drm_encoder_init() 'encoder_type'
+    - drm/msm: dpu: Allow planes to extend past active display
+    - powerpc/mm: Don't report hugepage tables as memory leaks when using kmemleak
+    - drm/omap: fix memory barrier bug in DMM driver
+    - drm/amd/display: Raise dispclk value for dce120 by 15%
+    - drm/amd/display: fix gamma not being applied
+    - drm/hisilicon: hibmc: Do not carry error code in HiBMC framebuffer pointer
+    - media: pci: cx23885: handle adding to list failure
+    - media: coda: don't overwrite h.264 profile_idc on decoder instance
+    - MIPS: kexec: Mark CPU offline before disabling local IRQ
+    - powerpc/boot: Ensure _zimage_start is a weak symbol
+    - powerpc/memtrace: Remove memory in chunks
+    - MIPS/PCI: Call pcie_bus_configure_settings() to set MPS/MRRS
+    - staging: erofs: fix a missing endian conversion
+    - serial: 8250_of: Fix for lack of interrupt support
+    - sc16is7xx: Fix for multi-channel stall
+    - media: tvp5150: fix width alignment during set_selection()
+    - powerpc/selftests: Wait all threads to join
+    - staging:iio:ad7606: fix voltage scales
+    - drm: rcar-du: Update Gen3 output limitations
+    - drm/amdgpu: Fix SDMA TO after GPU reset v3
+    - staging: most: video: fix registration of an empty comp core_component
+    - 9p locks: fix glock.client_id leak in do_lock
+    - udf: Prevent write-unsupported filesystem to be remounted read-write
+    - ARM: dts: imx6ull: keep IMX6UL_ prefix for signals on both i.MX6UL and
+      i.MX6ULL
+    - media: ov5640: fix mode change regression
+    - 9p: clear dangling pointers in p9stat_free
+    - drm/amdgpu: fix integer overflow test in amdgpu_bo_list_create()
+    - media: ov5640: fix restore of last mode set
+    - cdrom: fix improper type cast, which can leat to information leak.
+    - ovl: fix error handling in ovl_verify_set_fh()
+    - ovl: fix recursive oi->lock in ovl_link()
+    - ovl: check whiteout in ovl_create_over_whiteout()
+    - ovl: automatically enable redirect_dir on metacopy=on
+    - serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout
+    - scsi: qla2xxx: Fix incorrect port speed being set for FC adapters
+    - scsi: qla2xxx: Fix process response queue for ISP26XX and above
+    - scsi: qla2xxx: Remove stale debug trace message from tcm_qla2xxx
+    - scsi: qla2xxx: Fix early srb free on abort
+    - scsi: qla2xxx: shutdown chip if reset fail
+    - scsi: qla2xxx: Reject bsg request if chip is down.
+    - scsi: qla2xxx: Fix re-using LoopID when handle is in use
+    - scsi: qla2xxx: Fix for double free of SRB structure
+    - scsi: qla2xxx: Fix NVMe session hang on unload
+    - scsi: qla2xxx: Fix NVMe Target discovery
+    - scsi: qla2xxx: Fix duplicate switch database entries
+    - scsi: qla2xxx: Fix driver hang when FC-NVMe LUNs are configured
+    - vfs: fix FIGETBSZ ioctl on an overlayfs file
+    - fuse: Fix use-after-free in fuse_dev_do_read()
+    - fuse: Fix use-after-free in fuse_dev_do_write()
+    - fuse: fix blocked_waitq wakeup
+    - fuse: set FR_SENT while locked
+    - drm/msm: fix OF child-node lookup
+    - arm64: dts: stratix10: Support Ethernet Jumbo frame
+    - arm64: dts: stratix10: fix multicast filtering
+    - clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
+    - clk: meson: axg: mark fdiv2 and fdiv3 as critical
+    - zram: close udev startup race condition as default groups
+    - MIPS: Loongson-3: Fix CPU UART irq delivery problem
+    - MIPS: Loongson-3: Fix BRIDGE irq delivery problem
+    - xtensa: add NOTES section to the linker script
+    - xtensa: make sure bFLT stack is 16 byte aligned
+    - xtensa: fix boot parameters address translation
+    - um: Drop own definition of PTRACE_SYSEMU/_SINGLESTEP
+    - clk: s2mps11: Fix matching when built as module and DT node contains
+      compatible
+    - clk: at91: Fix division by zero in PLL recalc_rate()
+    - clk: sunxi-ng: h6: fix bus clocks' divider position
+    - clk: rockchip: fix wrong mmc sample phase shift for rk3328
+    - clk: rockchip: Fix static checker warning in rockchip_ddrclk_get_parent call
+    - libceph: bump CEPH_MSG_MAX_DATA_LEN
+    - Revert "ceph: fix dentry leak in splice_dentry()"
+    - thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs
+    - mach64: fix display corruption on big endian machines
+    - mach64: fix image corruption due to reading accelerator registers
+    - acpi/nfit, x86/mce: Handle only uncorrectable machine checks
+    - acpi/nfit, x86/mce: Validate a MCE's address before using it
+    - acpi, nfit: Fix ARS overflow continuation
+    - reset: hisilicon: fix potential NULL pointer dereference
+    - crypto: hisilicon - Fix NULL dereference for same dst and src
+    - crypto: hisilicon - Fix reference after free of memories on error path
+    - vhost/scsi: truncate T10 PI iov_iter to prot_bytes
+    - scsi: qla2xxx: Initialize port speed to avoid setting lower speed
+    - SCSI: fix queue cleanup race before queue initialization is done
+    - Revert "powerpc/8xx: Use L1 entry APG to handle _PAGE_ACCESSED for
+      CONFIG_SWAP"
+    - soc: ti: QMSS: Fix usage of irq_set_affinity_hint
+    - ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry
+    - ocfs2: free up write context when direct IO failed
+    - mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings
+    - memory_hotplug: cond_resched in __remove_pages
+    - netfilter: conntrack: fix calculation of next bucket number in early_drop
+    - ARM: 8809/1: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm
+    - bonding/802.3ad: fix link_failure_count tracking
+    - mtd: spi-nor: cadence-quadspi: Return error code in
+      cqspi_direct_read_execute()
+    - mtd: nand: Fix nanddev_neraseblocks()
+    - mtd: docg3: don't set conflicting BCH_CONST_PARAMS option
+    - hwmon: (core) Fix double-free in __hwmon_device_register()
+    - perf cs-etm: Correct CPU mode for samples
+    - perf stat: Handle different PMU names with common prefix
+    - perf callchain: Honour the ordering of PERF_CONTEXT_{USER,KERNEL,etc}
+    - perf intel-pt/bts: Calculate cpumode for synthesized samples
+    - perf intel-pt: Insert callchain context into synthesized callchains
+    - of, numa: Validate some distance map rules
+    - x86/cpu/vmware: Do not trace vmware_sched_clock()
+    - x86/hyper-v: Enable PIT shutdown quirk
+    - termios, tty/tty_baudrate.c: fix buffer overrun
+    - arch/alpha, termios: implement BOTHER, IBSHIFT and termios2
+    - watchdog/core: Add missing prototypes for weak functions
+    - btrfs: fix pinned underflow after transaction aborted
+    - Btrfs: fix missing data checksums after a ranged fsync (msync)
+    - Btrfs: fix cur_offset in the error case for nocow
+    - Btrfs: fix infinite loop on inode eviction after deduplication of eof block
+    - Btrfs: fix data corruption due to cloning of eof block
+    - btrfs: tree-checker: Fix misleading group system information
+    - clockevents/drivers/i8253: Add support for PIT shutdown quirk
+    - ext4: add missing brelse() update_backups()'s error path
+    - ext4: add missing brelse() in set_flexbg_block_bitmap()'s error path
+    - ext4: add missing brelse() add_new_gdb_meta_bg()'s error path
+    - ext4: avoid potential extra brelse in setup_new_flex_group_blocks()
+    - ext4: missing !bh check in ext4_xattr_inode_write()
+    - ext4: fix possible inode leak in the retry loop of ext4_resize_fs()
+    - ext4: avoid buffer leak on shutdown in ext4_mark_iloc_dirty()
+    - ext4: avoid buffer leak in ext4_orphan_add() after prior errors
+    - ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing
+    - ext4: avoid possible double brelse() in add_new_gdb() on error path
+    - ext4: fix possible leak of sbi->s_group_desc_leak in error path
+    - ext4: fix possible leak of s_journal_flag_rwsem in error path
+    - ext4: fix buffer leak in ext4_xattr_get_block() on error path
+    - ext4: release bs.bh before re-using in ext4_xattr_block_find()
+    - ext4: fix buffer leak in ext4_xattr_move_to_block() on error path
+    - ext4: fix buffer leak in ext4_expand_extra_isize_ea() on error path
+    - ext4: fix buffer leak in __ext4_read_dirblock() on error path
+    - mount: Prevent MNT_DETACH from disconnecting locked mounts
+    - mnt: fix __detach_mounts infinite loop
+    - uapi: fix linux/kfd_ioctl.h userspace compilation errors
+    - ARM: cpuidle: Don't register the driver when back-end init returns -ENXIO
+    - kdb: use correct pointer when 'btc' calls 'btt'
+    - kdb: print real address of pointers instead of hashed addresses
+    - sunrpc: correct the computation for page_ptr when truncating
+    - NFSv4: Don't exit the state manager without clearing
+      NFS4CLNT_MANAGER_RUNNING
+    - nfsd: COPY and CLONE operations require the saved filehandle to be set
+    - rtc: hctosys: Add missing range error reporting
+    - fuse: fix use-after-free in fuse_direct_IO()
+    - fuse: fix leaked notify reply
+    - fuse: fix possibly missed wake-up after abort
+    - selinux: check length properly in SCTP bind hook
+    - gfs2: Put bitmap buffers in put_super
+    - gfs2: Fix metadata read-ahead during truncate (2)
+    - libata: blacklist SAMSUNG MZ7TD256HAFV-000L9 SSD
+    - crypto: user - fix leaking uninitialized memory to userspace
+    - lib/ubsan.c: don't mark __ubsan_handle_builtin_unreachable as noreturn
+    - hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444!
+    - mm/swapfile.c: use kvzalloc for swap_info_struct allocation
+    - efi/arm/libstub: Pack FDT after populating it
+    - mm: don't reclaim inodes with many attached pages
+    - scripts/spdxcheck.py: make python3 compliant
+    - drm/rockchip: Allow driver to be shutdown on reboot/kexec
+    - drm/amdgpu: Fix typo in amdgpu_vmid_mgr_init
+    - drm/amdgpu: add missing CHIP_HAINAN in amdgpu_ucode_get_load_type
+    - drm/amdgpu: Suppress keypresses from ACPI_VIDEO events
+    - drm/nouveau: Check backlight IDs are >= 0, not > 0
+    - drm/nouveau: Fix nv50_mstc->best_encoder()
+    - drm/amd/powerplay: Enable/Disable NBPSTATE on On/OFF of UVD
+    - drm/etnaviv: fix bogus fence complete check in timeout handler
+    - drm/dp_mst: Check if primary mstb is null
+    - drm: panel-orientation-quirks: Add quirk for Acer One 10 (S1003)
+    - drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit
+      panel's native mode
+    - drm/i915: Use the correct crtc when sanitizing plane mapping
+    - drm/i915: Restore vblank interrupts earlier
+    - drm/i915: Don't unset intel_connector->mst_port
+    - drm/i915: Skip vcpi allocation for MSTB ports that are gone
+    - drm/i915: Large page offsets for pread/pwrite
+    - drm/i915/dp: Fix link retraining comment in intel_dp_long_pulse()
+    - drm/i915/dp: Restrict link retrain workaround to external monitors
+    - drm/i915/icl: Fix the macros for DFLEXDPMLE register bits
+    - drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values
+    - drm/i915: Mark up GTT sizes as u64
+    - drm/i915: Fix error handling for the NV12 fb dimensions check
+    - drm/i915: Fix ilk+ watermarks when disabling pipes
+    - drm/i915: Compare user's 64b GTT offset even on 32b
+    - drm/i915: Don't oops during modeset shutdown after lpe audio deinit
+    - drm/i915: Mark pin flags as u64
+    - drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5
+    - drm/i915/execlists: Force write serialisation into context image vs
+      execution
+    - drm/i915: Fix possible race in intel_dp_add_mst_connector()
+    - drm/i915: Fix NULL deref when re-enabling HPD IRQs on systems with MST
+    - drm/i915: Fix hpd handling for pins with two encoders
+    - CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM
+    - Revert "ACPICA: AML interpreter: add region addresses in global list during
+      initialization"
+    - Linux 4.19.3
+
+  * glibc 2.28-0ubuntu1 ADT test failure with linux 4.19.0-5.6 (LP: #1805154)
+    - SAUCE: Revert "x86: vdso: Use $LD instead of $CC to link"
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.12-1ubuntu1, zfs to 0.7.12-1ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 26 Nov 2018 11:44:00 -0600
+
+linux (4.19.0-5.6) disco; urgency=medium
+
+  * crash in ENA driver on removing an interface (LP: #1802341)
+    - SAUCE: net: ena: fix crash during ena_remove()
+
+  * Ubuntu 18.04.1 - [s390x] Kernel panic while stressing network bonding
+    (LP: #1797367)
+    - s390/qeth: sanitize strings in debug messages
+
+  * Disco update: 4.19.2 upstream stable release (LP: #1803410)
+    - bpf: fix partial copy of map_ptr when dst is scalar
+    - MIPS: VDSO: Reduce VDSO_RANDOMIZE_SIZE to 64MB for 64bit
+    - gpio: mxs: Get rid of external API call
+    - mtd: rawnand: marvell: fix the IRQ handler complete() condition
+    - mtd: maps: gpio-addr-flash: Fix ioremapped size
+    - mtd: spi-nor: fsl-quadspi: fix read error for flash size larger than 16MB
+    - mtd: spi-nor: intel-spi: Add support for Intel Ice Lake SPI serial flash
+    - mtd: spi-nor: fsl-quadspi: Don't let -EINVAL on the bus
+    - spi: spi-mem: Adjust op len based on message/transfer size limitations
+    - spi: bcm-qspi: switch back to reading flash using smaller chunks
+    - spi: bcm-qspi: fix calculation of address length
+    - bcache: trace missed reading by cache_missed
+    - bcache: fix ioctl in flash device
+    - bcache: correct dirty data statistics
+    - bcache: fix miss key refill->end in writeback
+    - hwmon: (pmbus) Fix page count auto-detection.
+    - jffs2: free jffs2_sb_info through jffs2_kill_sb()
+    - block: setup bounce bio_sets properly
+    - block: make sure discard bio is aligned with logical block size
+    - block: make sure writesame bio is aligned with logical block size
+    - cpufreq: conservative: Take limits changes into account properly
+    - dma-mapping: fix panic caused by passing empty cma command line argument
+    - pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges
+    - ACPI / OSL: Use 'jiffies' as the time bassis for acpi_os_get_timer()
+    - ACPICA: AML interpreter: add region addresses in global list during
+      initialization
+    - ACPICA: AML Parser: fix parse loop to correctly skip erroneous extended
+      opcodes
+    - acpi, nfit: Fix Address Range Scrub completion tracking
+    - kprobes/x86: Use preempt_enable() in optimized_callback()
+    - mailbox: PCC: handle parse error
+    - parisc: Fix address in HPMC IVA
+    - parisc: Fix map_pages() to not overwrite existing pte entries
+    - parisc: Fix exported address of os_hpmc handler
+    - ALSA: hda - Add quirk for ASUS G751 laptop
+    - ALSA: hda - Fix headphone pin config for ASUS G751
+    - ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905)
+    - ALSA: hda: Add 2 more models to the power_save blacklist
+    - ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops
+    - ALSA: hda - Fix incorrect clearance of thinkpad_acpi hooks
+    - x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
+    - x86/xen: Fix boot loader version reported for PVH guests
+    - x86/corruption-check: Fix panic in memory_corruption_check() when boot
+      option without value is provided
+    - x86/kvm/nVMX: allow bare VMXON state migration
+    - x86/mm/pat: Disable preemption around __flush_tlb_all()
+    - x86/numa_emulation: Fix uniform-split numa emulation
+    - ARM: dts: exynos: Disable pull control for MAX8997 interrupts on Origen
+    - net: socionext: Reset tx queue in ndo_stop
+    - net: loopback: clear skb->tstamp before netif_rx()
+    - locking/lockdep: Fix debug_locks off performance problem
+    - netfilter: xt_nat: fix DNAT target for shifted portmap ranges
+    - ataflop: fix error handling during setup
+    - swim: fix cleanup on setup error
+    - arm64: cpufeature: ctr: Fix cpu capability check for late CPUs
+    - hv_netvsc: fix vf serial matching with pci slot info
+    - nfp: devlink port split support for 1x100G CXP NIC
+    - tun: Consistently configure generic netdev params via rtnetlink
+    - s390/sthyi: Fix machine name validity indication
+    - hwmon: (pwm-fan) Set fan speed to 0 on suspend
+    - lightnvm: pblk: fix race on sysfs line state
+    - lightnvm: pblk: fix two sleep-in-atomic-context bugs
+    - lightnvm: pblk: fix race condition on metadata I/O
+    - spi: spi-ep93xx: Use dma_data_direction for ep93xx_spi_dma_{finish,prepare}
+    - perf tools: Free temporary 'sys' string in read_event_files()
+    - perf tools: Cleanup trace-event-info 'tdata' leak
+    - perf tools: Free 'printk' string in parse_ftrace_printk()
+    - perf strbuf: Match va_{add,copy} with va_end
+    - cpupower: Fix coredump on VMWare
+    - bcache: Populate writeback_rate_minimum attribute
+    - mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01
+    - sdhci: acpi: add free_slot callback
+    - mtd: rawnand: denali: set SPARE_AREA_SKIP_BYTES register to 8 if unset
+    - iwlwifi: pcie: avoid empty free RB queue
+    - iwlwifi: mvm: clear HW_RESTART_REQUESTED when stopping the interface
+    - iwlwifi: mvm: check for n_profiles validity in EWRD ACPI
+    - x86/olpc: Indicate that legacy PC XO-1 platform should not register RTC
+    - wlcore: Fix BUG with clear completion on timeout
+    - ACPI/PPTT: Handle architecturally unknown cache types
+    - ACPI / PM: LPIT: Register sysfs attributes based on FADT
+    - ACPI / processor: Fix the return value of acpi_processor_ids_walk()
+    - cpufreq: dt: Try freeing static OPPs only if we have added them
+    - x86/intel_rdt: Show missing resctrl mount options
+    - mtd: rawnand: atmel: Fix potential NULL pointer dereference
+    - nvme: call nvme_complete_rq when nvmf_check_ready fails for mpath I/O
+    - ath10k: fix tx status flag setting for management frames
+    - signal: Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack
+    - ice: fix changing of ring descriptor size (ethtool -G)
+    - ice: update fw version check logic
+    - net: hns3: Fix for packet buffer setting bug
+    - Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth
+    - Bluetooth: hci_qca: Remove hdev dereference in qca_close().
+    - x86: boot: Fix EFI stub alignment
+    - net: hns3: Add nic state check before calling netif_tx_wake_queue
+    - net: hns3: Fix ets validate issue
+    - pinctrl: sunxi: fix 'pctrl->functions' allocation in
+      sunxi_pinctrl_build_state
+    - pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux
+    - brcmfmac: fix for proper support of 160MHz bandwidth
+    - net: hns3: Check hdev state when getting link status
+    - net: hns3: Set STATE_DOWN bit of hdev state when stopping net
+    - net: phy: phylink: ensure the carrier is off when starting phylink
+    - block, bfq: correctly charge and reset entity service in all cases
+    - arm64: entry: Allow handling of undefined instructions from EL1
+    - kprobes: Return error if we fail to reuse kprobe instead of BUG_ON()
+    - spi: gpio: No MISO does not imply no RX
+    - ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers
+    - pinctrl: qcom: spmi-mpp: Fix drive strength setting
+    - bpf/verifier: fix verifier instability
+    - failover: Add missing check to validate 'slave_dev' in
+      net_failover_slave_unregister
+    - perf tests: Fix record+probe_libc_inet_pton.sh without ping's debuginfo
+    - pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
+    - pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() to be compliant
+    - net: hns3: Preserve vlan 0 in hardware table
+    - net: hns3: Fix ping exited problem when doing lp selftest
+    - net: hns3: Fix for vf vlan delete failed problem
+    - net: dsa: mv88e6xxx: Fix writing to a PHY page.
+    - mt76x2u: run device cleanup routine if resume fails
+    - rsi: fix memory alignment issue in ARM32 platforms
+    - libertas_tf: prevent underflow in process_cmdrequest()
+    - iwlwifi: mvm: fix BAR seq ctrl reporting
+    - gpio: brcmstb: allow 0 width GPIO banks
+    - ixgbe: disallow IPsec Tx offload when in SR-IOV mode
+    - ixgbevf: VF2VF TCP RSS
+    - wil6210: fix RX buffers release and unmap
+    - ath10k: schedule hardware restart if WMI command times out
+    - libata: Apply NOLPM quirk for SAMSUNG MZ7TD256HAFV-000L9
+    - thermal: rcar_thermal: Prevent doing work after unbind
+    - thermal: da9062/61: Prevent hardware access during system suspend
+    - cifs: fix a credits leak for compund commands
+    - cgroup, netclassid: add a preemption point to write_classid
+    - net: stmmac: dwmac-sun8i: fix OF child-node lookup
+    - f2fs: fix to account IO correctly for cgroup writeback
+    - MD: Memory leak when flush bio size is zero
+    - md: fix memleak for mempool
+    - of: Add missing exports of node name compare functions
+    - scsi: esp_scsi: Track residual for PIO transfers
+    - scsi: ufs: Schedule clk gating work on correct queue
+    - UAPI: ndctl: Fix g++-unsupported initialisation in headers
+    - KVM: nVMX: Clear reserved bits of #DB exit qualification
+    - scsi: megaraid_sas: fix a missing-check bug
+    - RDMA/core: Do not expose unsupported counters
+    - RDMA/cm: Respect returned status of cm_init_av_by_path
+    - IB/ipoib: Clear IPCB before icmp_send
+    - RDMA/bnxt_re: Avoid accessing nq->bar_reg_iomem in failure case
+    - RDMA/bnxt_re: Fix recursive lock warning in debug kernel
+    - usb: host: ohci-at91: fix request of irq for optional gpio
+    - PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic
+    - PCI: cadence: Use AXI region 0 to signal interrupts from EP
+    - usb: typec: tcpm: Report back negotiated PPS voltage and current
+    - tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated
+    - f2fs: clear PageError on the read path
+    - Drivers: hv: vmbus: Use cpumask_var_t for on-stack cpu mask
+    - VMCI: Resource wildcard match fixed
+    - PCI / ACPI: Enable wake automatically for power managed bridges
+    - xprtrdma: Reset credit grant properly after a disconnect
+    - irqchip/pdc: Setup all edge interrupts as rising edge at GIC
+    - usb: dwc2: fix call to vbus supply exit routine, call it unlocked
+    - usb: dwc2: fix a race with external vbus supply
+    - usb: gadget: udc: atmel: handle at91sam9rl PMC
+    - ext4: fix argument checking in EXT4_IOC_MOVE_EXT
+    - MD: fix invalid stored role for a disk
+    - PCI: cadence: Correct probe behaviour when failing to get PHY
+    - nvmem: check the return value of nvmem_add_cells()
+    - xhci: Avoid USB autosuspend when resuming USB2 ports.
+    - scsi: qla2xxx: Fix recursive mailbox timeout
+    - f2fs: fix to recover inode's crtime during POR
+    - f2fs: fix to recover inode's i_flags during POR
+    - PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice
+    - coresight: etb10: Fix handling of perf mode
+    - PCI: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode
+    - crypto: caam - fix implicit casts in endianness helpers
+    - usb: chipidea: Prevent unbalanced IRQ disable
+    - Smack: ptrace capability use fixes
+    - driver/dma/ioat: Call del_timer_sync() without holding prep_lock
+    - ASoC: AMD: Fix capture unstable in beginning for some runs
+    - firmware: coreboot: Unmap ioregion after device population
+    - IB/ipoib: Use dev_port to expose network interface port numbers
+    - IB/mlx5: Allow transition of DCI QP to reset
+    - uio: ensure class is registered before devices
+    - scsi: lpfc: Correct soft lockup when running mds diagnostics
+    - scsi: lpfc: Correct race with abort on completion path
+    - f2fs: avoid sleeping under spin_lock
+    - f2fs: report error if quota off error during umount
+    - signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid namespace
+      init
+    - f2fs: fix to flush all dirty inodes recovered in readonly fs
+    - mfd: menelaus: Fix possible race condition and leak
+    - dmaengine: dma-jz4780: Return error if not probed from DT
+    - IB/rxe: fix for duplicate request processing and ack psns
+    - ALSA: hda: Check the non-cached stream buffers more explicitly
+    - cpupower: Fix AMD Family 0x17 msr_pstate size
+    - Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()"
+    - f2fs: fix missing up_read
+    - f2fs: fix to recover cold bit of inode block during POR
+    - f2fs: fix to account IO correctly
+    - OPP: Free OPP table properly on performance state irregularities
+    - ARM: dts: exynos: Convert exynos5250.dtsi to opp-v2 bindings
+    - ARM: dts: exynos: Mark 1 GHz CPU OPP as suspend OPP on Exynos5250
+    - xen-swiotlb: use actually allocated size on check physical continuous
+    - tpm: Restore functionality to xen vtpm driver.
+    - xen/blkfront: avoid NULL blkfront_info dereference on device removal
+    - xen/balloon: Support xend-based toolstack
+    - xen: fix race in xen_qlock_wait()
+    - xen: make xen_qlock_wait() nestable
+    - xen/pvh: increase early stack size
+    - xen/pvh: don't try to unplug emulated devices
+    - libertas: don't set URB_ZERO_PACKET on IN USB transfer
+    - usbip:vudc: BUG kmalloc-2048 (Not tainted): Poison overwritten
+    - usb: typec: tcpm: Fix APDO PPS order checking to be based on voltage
+    - usb: gadget: udc: renesas_usb3: Fix b-device mode for "workaround"
+    - mt76: mt76x2: fix multi-interface beacon configuration
+    - iwlwifi: mvm: check return value of rs_rate_from_ucode_rate()
+    - net/ipv4: defensive cipso option parsing
+    - dmaengine: ppc4xx: fix off-by-one build failure
+    - scsi: sched/wait: Add wait_event_lock_irq_timeout for TASK_UNINTERRUPTIBLE
+      usage
+    - scsi: target: Fix target_wait_for_sess_cmds breakage with active signals
+    - libnvdimm: Hold reference on parent while scheduling async init
+    - libnvdimm, region: Fail badblocks listing for inactive regions
+    - libnvdimm, pmem: Fix badblocks population for 'raw' namespaces
+    - ASoC: intel: skylake: Add missing break in skl_tplg_get_token()
+    - ASoC: sta32x: set ->component pointer in private struct
+    - IB/mlx5: Fix MR cache initialization
+    - IB/rxe: Revise the ib_wr_opcode enum
+    - jbd2: fix use after free in jbd2_log_do_checkpoint()
+    - gfs2_meta: ->mount() can get NULL dev_name
+    - ext4: fix EXT4_IOC_SWAP_BOOT
+    - ext4: initialize retries variable in ext4_da_write_inline_data_begin()
+    - ext4: fix setattr project check in fssetxattr ioctl
+    - ext4: propagate error from dquot_initialize() in EXT4_IOC_FSSETXATTR
+    - ext4: fix use-after-free race in ext4_remount()'s error path
+    - selinux: fix mounting of cgroup2 under older policies
+    - HID: wacom: Work around HID descriptor bug in DTK-2451 and DTH-2452
+    - HID: hiddev: fix potential Spectre v1
+    - EDAC, amd64: Add Family 17h, models 10h-2fh support
+    - EDAC, {i7core,sb,skx}_edac: Fix uncorrected error counting
+    - EDAC, skx_edac: Fix logical channel intermediate decoding
+    - ARM: dts: dra7: Fix up unaligned access setting for PCIe EP
+    - PCI/ASPM: Fix link_state teardown on device removal
+    - PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk
+    - signal/GenWQE: Fix sending of SIGKILL
+    - signal: Guard against negative signal numbers in copy_siginfo_from_user32
+    - crypto: lrw - Fix out-of bounds access on counter overflow
+    - crypto: tcrypt - fix ghash-generic speed test
+    - crypto: aesni - don't use GFP_ATOMIC allocation if the request doesn't cross
+      a page in gcm
+    - crypto: morus/generic - fix for big endian systems
+    - crypto: aegis/generic - fix for big endian systems
+    - crypto: speck - remove Speck
+    - mm: /proc/pid/smaps_rollup: fix NULL pointer deref in smaps_pte_range()
+    - userfaultfd: disable irqs when taking the waitqueue lock
+    - ima: fix showing large 'violations' or 'runtime_measurements_count'
+    - ima: open a new file instance if no read permissions
+    - hugetlbfs: dirty pages as they are added to pagecache
+    - mm/rmap: map_pte() was not handling private ZONE_DEVICE page properly
+    - mm/hmm: fix race between hmm_mirror_unregister() and mmu_notifier callback
+    - KVM: arm/arm64: Ensure only THP is candidate for adjustment
+    - KVM: arm64: Fix caching of host MDCR_EL2 value
+    - kbuild: fix kernel/bounds.c 'W=1' warning
+    - iio: ad5064: Fix regulator handling
+    - iio: adc: imx25-gcq: Fix leak of device_node in mx25_gcq_setup_cfgs()
+    - iio: adc: at91: fix acking DRDY irq on simple conversions
+    - iio: adc: at91: fix wrong channel number in triggered buffer mode
+    - w1: omap-hdq: fix missing bus unregister at removal
+    - smb3: allow stats which track session and share reconnects to be reset
+    - smb3: do not attempt cifs operation in smb3 query info error path
+    - smb3: on kerberos mount if server doesn't specify auth type use krb5
+    - printk: Fix panic caused by passing log_buf_len to command line
+    - genirq: Fix race on spurious interrupt detection
+    - tpm: fix response size validation in tpm_get_random()
+    - NFC: nfcmrvl_uart: fix OF child-node lookup
+    - NFSv4.1: Fix the r/wsize checking
+    - nfs: Fix a missed page unlock after pg_doio()
+    - nfsd: correctly decrement odstate refcount in error path
+    - nfsd: Fix an Oops in free_session()
+    - lockd: fix access beyond unterminated strings in prints
+    - dm ioctl: harden copy_params()'s copy_from_user() from malicious users
+    - dm zoned: fix metadata block ref counting
+    - dm zoned: fix various dmz_get_mblock() issues
+    - media: ov7670: make "xclk" clock optional
+    - fsnotify: Fix busy inodes during unmount
+    - powerpc64/module elfv1: Set opd addresses after module relocation
+    - powerpc/msi: Fix compile error on mpc83xx
+    - powerpc/tm: Fix HFSCR bit for no suspend case
+    - powerpc/64s/hash: Do not use PPC_INVALIDATE_ERAT on CPUs before POWER9
+    - MIPS: OCTEON: fix out of bounds array access on CN68XX
+    - rtc: ds1307: fix ds1339 wakealarm support
+    - rtc: cmos: Fix non-ACPI undefined reference to `hpet_rtc_interrupt'
+    - rtc: cmos: Remove the `use_acpi_alarm' module parameter for !ACPI
+    - power: supply: twl4030-charger: fix OF sibling-node lookup
+    - ocxl: Fix access to the AFU Descriptor Data
+    - iommu/arm-smmu: Ensure that page-table updates are visible before TLBI
+    - TC: Set DMA masks for devices
+    - net: bcmgenet: fix OF child-node lookup
+    - media: v4l2-tpg: fix kernel oops when enabling HFLIP and OSD
+    - Revert "media: dvbsky: use just one mutex for serializing device R/W ops"
+    - kgdboc: Passing ekgdboc to command line causes panic
+    - remoteproc: qcom: q6v5: Propagate EPROBE_DEFER
+    - media: cec: make cec_get_edid_spa_location() an inline function
+    - media: cec: integrate cec_validate_phys_addr() in cec-api.c
+    - xen: fix xen_qlock_wait()
+    - xen: remove size limit of privcmd-buf mapping interface
+    - xen-blkfront: fix kernel panic with negotiate_mq error path
+    - media: cec: add new tx/rx status bits to detect aborts/timeouts
+    - media: cec: fix the Signal Free Time calculation
+    - media: cec: forgot to cancel delayed work
+    - media: em28xx: use a default format if TRY_FMT fails
+    - media: tvp5150: avoid going past array on v4l2_querymenu()
+    - media: em28xx: fix input name for Terratec AV 350
+    - media: em28xx: make v4l2-compliance happier by starting sequence on zero
+    - media: em28xx: fix handler for vidioc_s_input()
+    - media: adv7604: when the EDID is cleared, unconfigure CEC as well
+    - media: adv7842: when the EDID is cleared, unconfigure CEC as well
+    - drm/mediatek: fix OF sibling-node lookup
+    - media: media colorspaces*.rst: rename AdobeRGB to opRGB
+    - media: replace ADOBERGB by OPRGB
+    - media: hdmi.h: rename ADOBE_RGB to OPRGB and ADOBE_YCC to OPYCC
+    - arm64: lse: remove -fcall-used-x0 flag
+    - rpmsg: smd: fix memory leak on channel create
+    - Cramfs: fix abad comparison when wrap-arounds occur
+    - ARM: dts: socfpga: Fix SDRAM node address for Arria10
+    - arm64: dts: stratix10: Correct System Manager register size
+    - soc: qcom: rmtfs-mem: Validate that scm is available
+    - soc/tegra: pmc: Fix child-node lookup
+    - selftests/ftrace: Fix synthetic event test to delete event correctly
+    - selftests/powerpc: Fix ptrace tm failure
+    - tracing: Return -ENOENT if there is no target synthetic event
+    - btrfs: qgroup: Avoid calling qgroup functions if qgroup is not enabled
+    - btrfs: Handle owner mismatch gracefully when walking up tree
+    - btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid deadlock
+    - btrfs: fix error handling in free_log_tree
+    - btrfs: fix error handling in btrfs_dev_replace_start
+    - btrfs: Enhance btrfs_trim_fs function to handle error better
+    - btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
+    - btrfs: iterate all devices during trim, instead of fs_devices::alloc_list
+    - btrfs: don't attempt to trim devices that don't support it
+    - btrfs: keep trim from interfering with transaction commits
+    - btrfs: wait on caching when putting the bg cache
+    - Btrfs: don't clean dirty pages during buffered writes
+    - btrfs: release metadata before running delayed refs
+    - btrfs: protect space cache inode alloc with GFP_NOFS
+    - btrfs: reset max_extent_size on clear in a bitmap
+    - btrfs: make sure we create all new block groups
+    - Btrfs: fix warning when replaying log after fsync of a tmpfile
+    - Btrfs: fix wrong dentries after fsync of file that got its parent replaced
+    - btrfs: qgroup: Dirty all qgroups before rescan
+    - Btrfs: fix null pointer dereference on compressed write path error
+    - Btrfs: fix assertion on fsync of regular file when using no-holes feature
+    - Btrfs: fix deadlock when writing out free space caches
+    - btrfs: reset max_extent_size properly
+    - btrfs: set max_extent_size properly
+    - btrfs: don't use ctl->free_space for max_extent_size
+    - btrfs: only free reserved extent if we didn't insert it
+    - btrfs: fix insert_reserved error handling
+    - btrfs: don't run delayed_iputs in commit
+    - btrfs: move the dio_sem higher up the callchain
+    - Btrfs: fix use-after-free during inode eviction
+    - Btrfs: fix use-after-free when dumping free space
+    - net: sched: Remove TCA_OPTIONS from policy
+    - vt: fix broken display when running aptitude
+    - bpf: wait for running BPF programs when updating map-in-map
+    - vga_switcheroo: Fix missing gpu_bound call at audio client registration
+    - MD: fix invalid stored role for a disk - try2
+    - Linux 4.19.2
+
+  * [FEAT] Guest-dedicated Crypto Adapters (LP: #1787405)
+    - KVM: s390: vsie: simulate VCPU SIE entry/exit
+    - KVM: s390: introduce and use KVM_REQ_VSIE_RESTART
+    - KVM: s390: refactor crypto initialization
+    - s390: vfio-ap: base implementation of VFIO AP device driver
+    - s390: vfio-ap: register matrix device with VFIO mdev framework
+    - s390: vfio-ap: sysfs interfaces to configure adapters
+    - s390: vfio-ap: sysfs interfaces to configure domains
+    - s390: vfio-ap: sysfs interfaces to configure control domains
+    - s390: vfio-ap: sysfs interface to view matrix mdev matrix
+    - KVM: s390: interface to clear CRYCB masks
+    - s390: vfio-ap: implement mediated device open callback
+    - s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl
+    - s390: vfio-ap: zeroize the AP queues
+    - s390: vfio-ap: implement VFIO_DEVICE_RESET ioctl
+    - KVM: s390: Clear Crypto Control Block when using vSIE
+    - KVM: s390: vsie: Do the CRYCB validation first
+    - KVM: s390: vsie: Make use of CRYCB FORMAT2 clear
+    - KVM: s390: vsie: Allow CRYCB FORMAT-2
+    - KVM: s390: vsie: allow CRYCB FORMAT-1
+    - KVM: s390: vsie: allow CRYCB FORMAT-0
+    - KVM: s390: vsie: allow guest FORMAT-0 CRYCB on host FORMAT-1
+    - KVM: s390: vsie: allow guest FORMAT-1 CRYCB on host FORMAT-2
+    - KVM: s390: vsie: allow guest FORMAT-0 CRYCB on host FORMAT-2
+    - KVM: s390: device attrs to enable/disable AP interpretation
+    - KVM: s390: CPU model support for AP virtualization
+    - s390: doc: detailed specifications for AP virtualization
+    - KVM: s390: fix locking for crypto setting error path
+    - KVM: s390: Tracing APCB changes
+    - s390: vfio-ap: setup APCB mask using KVM dedicated function
+    - [Config:] Enable CONFIG_S390_AP_IOMMU and set CONFIG_VFIO_AP to module.
+
+  * Bypass of mount visibility through userns + mount propagation (LP: #1789161)
+    - mount: Retest MNT_LOCKED in do_umount
+    - mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts
+
+  *  CVE-2018-18955: nested user namespaces with more than five extents
+    incorrectly grant privileges over inode (LP: #1801924) // CVE-2018-18955
+    - userns: also map extents in the reverse map to kernel IDs
+
+  * kdump fail due to an IRQ storm (LP: #1797990)
+    - SAUCE: x86/PCI: Export find_cap() to be used in early PCI code
+    - SAUCE: x86/quirks: Add parameter to clear MSIs early on boot
+    - SAUCE: x86/quirks: Scan all busses for early PCI quirks
+
+  * Disable LPM for Raydium Touchscreens (LP: #1802248)
+    - USB: quirks: Add no-lpm quirk for Raydium touchscreens
+
+  * Power consumption during s2idle is higher than long idle(sk hynix)
+    (LP: #1801875)
+    - SAUCE: pci: prevent sk hynix nvme from entering D3
+    - SAUCE: nvme: add quirk to not call disable function when suspending
+
+  * Disco update: v4.19.1 upstream stable release (LP: #1801739)
+    - bridge: do not add port to router list when receives query with source
+      0.0.0.0
+    - ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are
+      called
+    - net/mlx5e: fix csum adjustments caused by RXFCS
+    - net: sched: gred: pass the right attribute to gred_change_table_def()
+    - net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules
+    - net: udp: fix handling of CHECKSUM_COMPLETE packets
+    - Revert "net: simplify sock_poll_wait"
+    - rtnetlink: Disallow FDB configuration for non-Ethernet device
+    - vhost: Fix Spectre V1 vulnerability
+    - bonding: fix length of actor system
+    - openvswitch: Fix push/pop ethernet validation
+    - net/ipv6: Allow onlink routes to have a device mismatch if it is the default
+      route
+    - net/smc: fix smc_buf_unuse to use the lgr pointer
+    - mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs
+    - mlxsw: core: Fix devlink unregister flow
+    - net: drop skb on failure in ip_check_defrag()
+    - net: Properly unlink GRO packets on overflow.
+    - r8169: fix broken Wake-on-LAN from S5 (poweroff)
+    - Revert "be2net: remove desc field from be_eq_obj"
+    - sctp: check policy more carefully when getting pr status
+    - sparc64: Export __node_distance.
+    - sparc64: Make corrupted user stacks more debuggable.
+    - sparc64: Wire up compat getpeername and getsockname.
+    - net: bridge: remove ipv6 zero address check in mcast queries
+    - Linux 4.19.1
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.11-1ubuntu1, zfs to 0.7.11-3ubuntu1
+    - [Config] updateconfigs after 4.19.2 stable update
+    - [Config] Disable unneded options for s390
+    - [Config] Update annotations for 4.19
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 15 Nov 2018 09:55:37 -0800
+
+linux (4.19.0-4.5) disco; urgency=medium
+
+  * Add checksum offload and TSO support for HiNIC adapters (LP: #1800664)
+    - net-next/hinic: add checksum offload and TSO support
+
+  * [Bionic][Cosmic] Fix to ipmi to support vendor specific messages greater
+    than 255 bytes (LP: #1799794)
+    - ipmi:ssif: Add support for multi-part transmit messages > 2 parts
+
+  * Packaging resync (LP: #1786013)
+    - [Package] add support for specifying the primary makefile
+
+  * Update ENA driver to version 2.0.1K (LP: #1798182)
+    - net: ena: minor performance improvement
+    - net: ena: complete host info to match latest ENA spec
+    - net: ena: introduce Low Latency Queues data structures according to ENA spec
+    - net: ena: add functions for handling Low Latency Queues in ena_com
+    - net: ena: add functions for handling Low Latency Queues in ena_netdev
+    - net: ena: use CSUM_CHECKED device indication to report skb's checksum status
+    - net: ena: explicit casting and initialization, and clearer error handling
+    - net: ena: limit refill Rx threshold to 256 to avoid latency issues
+    - net: ena: change rx copybreak default to reduce kernel memory pressure
+    - net: ena: remove redundant parameter in ena_com_admin_init()
+    - net: ena: update driver version to 2.0.1
+    - net: ena: fix indentations in ena_defs for better readability
+    - net: ena: Fix Kconfig dependency on X86
+    - net: ena: enable Low Latency Queues
+    - net: ena: fix compilation error in xtensa architecture
+
+  * [Bionic][Cosmic]  ipmi: Fix timer race with module unload (LP: #1799281)
+    - ipmi: Fix timer race with module unload
+
+  * Overlayfs in user namespace leaks directory content of inaccessible
+    directories (LP: #1793458) // CVE-2018-6559
+    - SAUCE: overlayfs: ensure mounter privileges when reading directories
+
+  * not able to unwind the stack from within __kernel_clock_gettime in the Linux
+    vDSO (LP: #1797963)
+    - powerpc/vdso: Correct call frame information
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Don't print secure boot state
+      from the efi stub"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Make get_cert_list() use
+      efi_status_to_str() to print error messages."
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err()."
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Make get_cert_list() not complain
+      about cert lists that aren't present."
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable
+      to be suppressed"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI
+      Secure Boot"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add EFI signature data types"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time
+      addition of keys to secondary keyring"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in
+      secure boot mode"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to
+      indicate secure boot mode"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Copy secure_boot flag in boot params
+      across kexec reboot"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down perf"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) bpf: Restrict kernel image access
+      functions when the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down kprobes"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down /proc/kcore"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the
+      testmmiotrace module"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down module params that specify
+      hardware parameters (eg. ioport)"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Lock down TIOCSSERIAL"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) acpi: Disable APEI error injection if
+      the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) acpi: Disable ACPI table override if
+      the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param
+      when the kernel has been locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) ACPI: Limit access to custom_method
+      when the kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) x86: Lock down IO port access when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) PCI: Lock down BAR access when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is
+      locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) hibernate: Disable when the kernel is
+      locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Enforce module signatures if the
+      kernel is locked down"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Add a SysRq option to lift kernel
+      lockdown"
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) Add the ability to lock down access to
+      the running kernel image"
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) efi/x86: Call efi_parse_options() from efi_main()
+    - SAUCE: (efi-lockdown) Fix for module sig verification
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) module: remove support for having IMA validate modules
+    - [Packaging] generate Vcs-Git url from changelog
+    - [Config] CONFIG_SCSI_MQ_DEFAULT=y
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 02 Nov 2018 14:22:55 -0500
+
+linux (4.19.0-3.4) cosmic; urgency=medium
+
+  * Support Edge Gateway's Bluetooth LED (LP: #1798332)
+    - SAUCE: Bluetooth: Support for LED on Edge Gateways
+
+  * Support Edge Gateway's WIFI LED (LP: #1798330)
+    - SAUCE: mwifiex: Switch WiFi LED state according to the device status
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 22 Oct 2018 09:13:39 -0500
+
+linux (4.19.0-2.3) cosmic; urgency=medium
+
+  * fscache: bad refcounting in fscache_op_complete leads to OOPS (LP: #1797314)
+    - SAUCE: fscache: Fix race in decrementing refcount of op->npages
+
+  * Provide mode where all vCPUs on a core must be the same VM (LP: #1792957)
+    - KVM: PPC: Book3S HV: Provide mode where all vCPUs on a core must be the same
+      VM
+
+  * The front MIC can't work on the Lenovo M715 (LP: #1797292)
+    - ALSA: hda/realtek - Fix the problem of the front MIC on the Lenovo M715
+
+  * arm64: snapdragon: WARNING: CPU: 0 PID: 1 at drivers/irqchip/irq-gic.c:1016
+    gic_irq_domain_translate (LP: #1797143)
+    - SAUCE: arm64: dts: msm8916: camms: fix gic_irq_domain_translate warnings
+
+  * Dell new AIO requires a new uart backlight driver (LP: #1727235)
+    - SAUCE: platform/x86: dell-uart-backlight: new backlight driver for DELL AIO
+    - updateconfigs for Dell UART backlight driver
+
+  * Please make CONFIG_PWM_LPSS_PCI and CONFIG_PWM_LPSS_PLATFORM built in to
+    make brightness adjustment working on various BayTrail/CherryTrail-based
+    devices (LP: #1783964)
+    - [Config]: Make PWM_LPSS_* built-in
+
+  * check and fix zkey required kernel modules locations in debs, udebs, and
+    initramfs (LP: #1794346)
+    - [Config] add s390 crypto modules to crypt-modules udeb
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_VBOXGUEST=n
+    - ubuntu: vbox -- update to 5.2.18-dfsg-2
+    - ubuntu: enable vbox build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 15 Oct 2018 10:52:04 -0500
+
+linux (4.19.0-1.2) cosmic; urgency=medium
+
+  * Page leaking in cachefiles_read_backing_file while vmscan is active
+    (LP: #1793430)
+    - SAUCE: cachefiles: Page leaking in cachefiles_read_backing_file while vmscan
+      is active
+
+  * SRU: Enable middle button of touchpad on ThinkPad P72 (LP: #1793463)
+    - Input: elantech - enable middle button of touchpad on ThinkPad P72
+
+  * Improvements to the kernel source package preparation (LP: #1793461)
+    - [Packaging] startnewrelease: add support for backport kernels
+
+  * Fix unusable NVIDIA GPU after S3 (LP: #1793338)
+    - SAUCE: PCI: Reprogram bridge prefetch registers on resume
+
+  * Error reported when creating ZFS pool with "-t" option, despite successful
+    pool creation (LP: #1769937)
+    - SAUCE: (noup) Update zfs to 0.7.9-3ubuntu6
+
+  * device hotplug of vfio devices can lead to deadlock in vfio_pci_release
+    (LP: #1792099)
+    - SAUCE: vfio -- release device lock before userspace requests
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] retpoline -- fix temporary filenaming
+    - CONFIG_BCH_CONST_PARAMS=n
+    - Packaging: final-checks: remove trailing backport suffix
+    - SAUCE: import aufs driver
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 25 Sep 2018 16:32:24 -0500
+
+linux (4.19.0-0.1) cosmic; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu -- disable vbox build
+    - Disable zfs build
+    - SAUCE: Import aufs driver
+    - Update dropped.txt
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.19-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 13 Sep 2018 07:54:47 -0500
+
+linux (4.19.0-0.0) cosmic; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 13 Sep 2018 06:44:09 -0500
+
+linux (4.18.0-8.9) cosmic; urgency=medium
+
+  * linux: 4.18.0-8.9 -proposed tracker (LP: #1791663)
+
+  * Cosmic update to v4.18.7 stable release (LP: #1791660)
+    - rcu: Make expedited GPs handle CPU 0 being offline
+    - net: 6lowpan: fix reserved space for single frames
+    - net: mac802154: tx: expand tailroom if necessary
+    - 9p/net: Fix zero-copy path in the 9p virtio transport
+    - spi: davinci: fix a NULL pointer dereference
+    - spi: pxa2xx: Add support for Intel Ice Lake
+    - spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe
+    - spi: cadence: Change usleep_range() to udelay(), for atomic context
+    - mmc: block: Fix unsupported parallel dispatch of requests
+    - mmc: renesas_sdhi_internal_dmac: mask DMAC interrupts
+    - mmc: renesas_sdhi_internal_dmac: fix #define RST_RESERVED_BITS
+    - readahead: stricter check for bdi io_pages
+    - block: fix infinite loop if the device loses discard capability
+    - block: blk_init_allocated_queue() set q->fq as NULL in the fail case
+    - block: really disable runtime-pm for blk-mq
+    - blkcg: Introduce blkg_root_lookup()
+    - block: Introduce blk_exit_queue()
+    - block: Ensure that a request queue is dissociated from the cgroup controller
+    - apparmor: fix bad debug check in apparmor_secid_to_secctx()
+    - dma-buf: Move BUG_ON from _add_shared_fence to _add_shared_inplace
+    - libertas: fix suspend and resume for SDIO connected cards
+    - media: Revert "[media] tvp5150: fix pad format frame height"
+    - mailbox: xgene-slimpro: Fix potential NULL pointer dereference
+    - Replace magic for trusting the secondary keyring with #define
+    - Fix kexec forbidding kernels signed with keys in the secondary keyring to
+      boot
+    - powerpc/fadump: handle crash memory ranges array index overflow
+    - powerpc/64s: Fix page table fragment refcount race vs speculative references
+    - powerpc/pseries: Fix endianness while restoring of r3 in MCE handler.
+    - powerpc/pkeys: Give all threads control of their key permissions
+    - powerpc/pkeys: Deny read/write/execute by default
+    - powerpc/pkeys: key allocation/deallocation must not change pkey registers
+    - powerpc/pkeys: Save the pkey registers before fork
+    - powerpc/pkeys: Fix calculation of total pkeys.
+    - powerpc/pkeys: Preallocate execute-only key
+    - powerpc/nohash: fix pte_access_permitted()
+    - powerpc64/ftrace: Include ftrace.h needed for enable/disable calls
+    - powerpc/powernv/pci: Work around races in PCI bridge enabling
+    - cxl: Fix wrong comparison in cxl_adapter_context_get()
+    - IB/mlx5: Honor cnt_set_id_valid flag instead of set_id
+    - IB/mlx5: Fix leaking stack memory to userspace
+    - IB/srpt: Fix srpt_cm_req_recv() error path (1/2)
+    - IB/srpt: Fix srpt_cm_req_recv() error path (2/2)
+    - IB/srpt: Support HCAs with more than two ports
+    - overflow.h: Add arithmetic shift helper
+    - RDMA/mlx5: Fix shift overflow in mlx5_ib_create_wq
+    - ib_srpt: Fix a use-after-free in srpt_close_ch()
+    - ib_srpt: Fix a use-after-free in __srpt_close_all_ch()
+    - RDMA/rxe: Set wqe->status correctly if an unexpected response is received
+    - 9p: fix multiple NULL-pointer-dereferences
+    - fs/9p/xattr.c: catch the error of p9_client_clunk when setting xattr failed
+    - 9p/virtio: fix off-by-one error in sg list bounds check
+    - net/9p/client.c: version pointer uninitialized
+    - net/9p/trans_fd.c: fix race-condition by flushing workqueue before the
+      kfree()
+    - dm integrity: change 'suspending' variable from bool to int
+    - dm thin: stop no_space_timeout worker when switching to write-mode
+    - dm cache metadata: save in-core policy_hint_size to on-disk superblock
+    - dm cache metadata: set dirty on all cache blocks after a crash
+    - dm crypt: don't decrease device limits
+    - dm writecache: fix a crash due to reading past end of dirty_bitmap
+    - uart: fix race between uart_put_char() and uart_shutdown()
+    - Drivers: hv: vmbus: Fix the offer_in_progress in vmbus_process_offer()
+    - Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
+    - iio: sca3000: Fix missing return in switch
+    - iio: ad9523: Fix displayed phase
+    - iio: ad9523: Fix return value for ad952x_store()
+    - extcon: Release locking when sending the notification of connector state
+    - eventpoll.h: wrap casts in () properly
+    - vmw_balloon: fix inflation of 64-bit GFNs
+    - vmw_balloon: do not use 2MB without batching
+    - vmw_balloon: VMCI_DOORBELL_SET does not check status
+    - vmw_balloon: fix VMCI use when balloon built into kernel
+    - rtc: omap: fix resource leak in registration error path
+    - rtc: omap: fix potential crash on power off
+    - tracing: Do not call start/stop() functions when tracing_on does not change
+    - tracing/blktrace: Fix to allow setting same value
+    - printk/tracing: Do not trace printk_nmi_enter()
+    - livepatch: Validate module/old func name length
+    - uprobes: Use synchronize_rcu() not synchronize_sched()
+    - mfd: hi655x: Fix regmap area declared size for hi655x
+    - ovl: fix wrong use of impure dir cache in ovl_iterate()
+    - ACPICA: AML Parser: skip opcodes that open a scope upon parse failure
+    - ACPICA: Clear status of all events when entering sleep states
+    - drivers/block/zram/zram_drv.c: fix bug storing backing_dev
+    - sched: idle: Avoid retaining the tick when it has been stopped
+    - cpuidle: menu: Handle stopped tick more aggressively
+    - cpufreq: governor: Avoid accessing invalid governor_data
+    - PM / sleep: wakeup: Fix build error caused by missing SRCU support
+    - ALSA: ac97: fix device initialization in the compat layer
+    - ALSA: ac97: fix check of pm_runtime_get_sync failure
+    - ALSA: ac97: fix unbalanced pm_runtime_enable
+    - i2c: designware: Re-init controllers with pm_disabled set on resume
+    - KVM: VMX: fixes for vmentry_l1d_flush module parameter
+    - KVM: PPC: Book3S: Fix guest DMA when guest partially backed by THP pages
+    - xtensa: limit offsets in __loop_cache_{all,page}
+    - xtensa: increase ranges in ___invalidate_{i,d}cache_all
+    - block, bfq: return nbytes and not zero from struct cftype .write() method
+    - pnfs/blocklayout: off by one in bl_map_stripe()
+    - nfsd: fix leaked file lock with nfs exported overlayfs
+    - NFSv4 client live hangs after live data migration recovery
+    - NFSv4: Fix locking in pnfs_generic_recover_commit_reqs
+    - NFSv4: Fix a sleep in atomic context in nfs4_callback_sequence()
+    - ARM: tegra: Fix Tegra30 Cardhu PCA954x reset
+    - ARM: dts: am57xx-idk: Enable dual role for USB2 port
+    - pwm: omap-dmtimer: Return -EPROBE_DEFER if no dmtimer platform data
+    - mm/tlb: Remove tlb_remove_table() non-concurrent condition
+    - iommu/ipmmu-vmsa: Don't register as BUS IOMMU if machine doesn't have IPMMU-
+      VMSA
+    - iommu/vt-d: Add definitions for PFSID
+    - iommu/vt-d: Fix dev iotlb pfsid use
+    - sys: don't hold uts_sem while accessing userspace memory
+    - userns: move user access out of the mutex
+    - ubifs: Fix memory leak in lprobs self-check
+    - Revert "UBIFS: Fix potential integer overflow in allocation"
+    - ubifs: Check data node size before truncate
+    - ubifs: xattr: Don't operate on deleted inodes
+    - ubifs: Fix directory size calculation for symlinks
+    - ubifs: Fix synced_i_size calculation for xattr inodes
+    - pwm: tiehrpwm: Don't use emulation mode bits to control PWM output
+    - pwm: tiehrpwm: Fix disabling of output of PWMs
+    - fb: fix lost console when the user unplugs a USB adapter
+    - udlfb: fix semaphore value leak
+    - udlfb: fix display corruption of the last line
+    - udlfb: don't switch if we are switching to the same videomode
+    - udlfb: set optimal write delay
+    - udlfb: make a local copy of fb_ops
+    - udlfb: handle allocation failure
+    - udlfb: set line_length in dlfb_ops_set_par
+    - getxattr: use correct xattr length
+    - libnvdimm: Use max contiguous area for namespace size
+    - libnvdimm: fix ars_status output length calculation
+    - bcache: release dc->writeback_lock properly in bch_writeback_thread()
+    - kconfig: fix "Can't open ..." in parallel build
+    - perf auxtrace: Fix queue resize
+    - crypto: vmx - Fix sleep-in-atomic bugs
+    - crypto: aesni - Use unaligned loads from gcm_context_data
+    - crypto: arm64/sm4-ce - check for the right CPU feature bit
+    - crypto: caam - fix DMA mapping direction for RSA forms 2 & 3
+    - crypto: caam/jr - fix descriptor DMA unmapping
+    - crypto: caam/qi - fix error path in xts setkey
+    - fs/quota: Fix spectre gadget in do_quotactl
+    - udf: Fix mounting of Win7 created UDF filesystems
+    - cpuidle: menu: Retain tick when shallow state is selected
+    - arm64: mm: always enable CONFIG_HOLES_IN_ZONE
+    - Linux 4.18.7
+
+  * CVE-2017-5715
+    - s390: detect etoken facility
+    - KVM: s390: add etoken support for guests
+
+  * Missing Intel GPU pci-id's (LP: #1789924)
+    - drm/i915/whl: Introducing Whiskey Lake platform
+    - drm/i915/aml: Introducing Amber Lake platform
+    - drm/i915/cfl: Add a new CFL PCI ID.
+
+  * [18.10 FEAT] Add kernel config options for SMC-R/D (LP: #1789934)
+    - s390/ism: add device driver for internal shared memory
+    - CONFIG_ISM=y for s390
+
+  * Cosmic update to v4.18.6 stable release (LP: #1791105)
+    - PATCH scripts/kernel-doc
+    - scripts/kernel-doc: Escape all literal braces in regexes
+    - scsi: libsas: dynamically allocate and free ata host
+    - xprtrdma: Fix disconnect regression
+    - mei: don't update offset in write
+    - cifs: add missing support for ACLs in SMB 3.11
+    - CIFS: fix uninitialized ptr deref in smb2 signing
+    - cifs: add missing debug entries for kconfig options
+    - cifs: use a refcount to protect open/closing the cached file handle
+    - cifs: check kmalloc before use
+    - smb3: enumerating snapshots was leaving part of the data off end
+    - smb3: Do not send SMB3 SET_INFO if nothing changed
+    - smb3: don't request leases in symlink creation and query
+    - smb3: fill in statfs fsid and correct namelen
+    - btrfs: use correct compare function of dirty_metadata_bytes
+    - btrfs: don't leak ret from do_chunk_alloc
+    - Btrfs: fix mount failure after fsync due to hard link recreation
+    - Btrfs: fix btrfs_write_inode vs delayed iput deadlock
+    - Btrfs: fix send failure when root has deleted files still open
+    - Btrfs: send, fix incorrect file layout after hole punching beyond eof
+    - hwmon: (k10temp) 27C Offset needed for Threadripper2
+    - bpf, arm32: fix stack var offset in jit
+    - regulator: arizona-ldo1: Use correct device to get enable GPIO
+    - iommu/arm-smmu: Error out only if not enough context interrupts
+    - printk: Split the code for storing a message into the log buffer
+    - printk: Create helper function to queue deferred console handling
+    - printk/nmi: Prevent deadlock when accessing the main log buffer in NMI
+    - kprobes/arm64: Fix %p uses in error messages
+    - arm64: Fix mismatched cache line size detection
+    - arm64: Handle mismatched cache type
+    - arm64: mm: check for upper PAGE_SHIFT bits in pfn_valid()
+    - arm64: dts: rockchip: corrected uart1 clock-names for rk3328
+    - KVM: arm/arm64: Fix potential loss of ptimer interrupts
+    - KVM: arm/arm64: Fix lost IRQs from emulated physcial timer when blocked
+    - KVM: arm/arm64: Skip updating PMD entry if no change
+    - KVM: arm/arm64: Skip updating PTE entry if no change
+    - s390/kvm: fix deadlock when killed by oom
+    - perf kvm: Fix subcommands on s390
+    - stop_machine: Reflow cpu_stop_queue_two_works()
+    - stop_machine: Atomically queue and wake stopper threads
+    - ext4: check for NUL characters in extended attribute's name
+    - ext4: use ext4_warning() for sb_getblk failure
+    - ext4: sysfs: print ext4_super_block fields as little-endian
+    - ext4: reset error code in ext4_find_entry in fallback
+    - ext4: fix race when setting the bitmap corrupted flag
+    - x86/gpu: reserve ICL's graphics stolen memory
+    - platform/x86: wmi: Do not mix pages and kmalloc
+    - platform/x86: ideapad-laptop: Apply no_hw_rfkill to Y20-15IKBM, too
+    - mm: move tlb_table_flush to tlb_flush_mmu_free
+    - mm/tlb, x86/mm: Support invalidating TLB caches for RCU_TABLE_FREE
+    - x86/speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit
+    - x86/speculation/l1tf: Fix off-by-one error when warning that system has too
+      much RAM
+    - x86/speculation/l1tf: Suggest what to do on systems with too much RAM
+    - x86/vdso: Fix vDSO build if a retpoline is emitted
+    - x86/process: Re-export start_thread()
+    - KVM: x86: ensure all MSRs can always be KVM_GET/SET_MSR'd
+    - KVM: x86: SVM: Call x86_spec_ctrl_set_guest/host() with interrupts disabled
+    - fuse: Don't access pipe->buffers without pipe_lock()
+    - fuse: fix initial parallel dirops
+    - fuse: fix double request_end()
+    - fuse: fix unlocked access to processing queue
+    - fuse: umount should wait for all requests
+    - fuse: Fix oops at process_init_reply()
+    - fuse: Add missed unlock_page() to fuse_readpages_fill()
+    - lib/vsprintf: Do not handle %pO[^F] as %px
+    - udl-kms: change down_interruptible to down
+    - udl-kms: handle allocation failure
+    - udl-kms: fix crash due to uninitialized memory
+    - udl-kms: avoid division
+    - b43legacy/leds: Ensure NUL-termination of LED name string
+    - b43/leds: Ensure NUL-termination of LED name string
+    - ASoC: dpcm: don't merge format from invalid codec dai
+    - ASoC: zte: Fix incorrect PCM format bit usages
+    - ASoC: sirf: Fix potential NULL pointer dereference
+    - ASoC: wm_adsp: Correct DSP pointer for preloader control
+    - soc: qcom: rmtfs-mem: fix memleak in probe error paths
+    - pinctrl: freescale: off by one in imx1_pinconf_group_dbg_show()
+    - scsi: qla2xxx: Fix stalled relogin
+    - x86/vdso: Fix lsl operand order
+    - x86/nmi: Fix NMI uaccess race against CR3 switching
+    - x86/irqflags: Mark native_restore_fl extern inline
+    - x86/spectre: Add missing family 6 check to microcode check
+    - x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+
+    - hwmon: (nct6775) Fix potential Spectre v1
+    - x86/entry/64: Wipe KASAN stack shadow before rewind_stack_do_exit()
+    - x86: Allow generating user-space headers without a compiler
+    - s390/mm: fix addressing exception after suspend/resume
+    - s390/lib: use expoline for all bcr instructions
+    - s390: fix br_r1_trampoline for machines without exrl
+    - s390/qdio: reset old sbal_state flags
+    - s390/numa: move initial setup of node_to_cpumask_map
+    - s390/purgatory: Fix crash with expoline enabled
+    - s390/purgatory: Add missing FORCE to Makefile targets
+    - kprobes: Show blacklist addresses as same as kallsyms does
+    - kprobes: Replace %p with other pointer types
+    - kprobes/arm: Fix %p uses in error messages
+    - kprobes: Make list and blacklist root user read only
+    - MIPS: Correct the 64-bit DSP accumulator register size
+    - MIPS: memset.S: Fix byte_fixup for MIPSr6
+    - MIPS: Always use -march=<arch>, not -<arch> shortcuts
+    - MIPS: Change definition of cpu_relax() for Loongson-3
+    - MIPS: lib: Provide MIPS64r6 __multi3() for GCC < 7
+    - tpm: Return the actual size when receiving an unsupported command
+    - tpm: separate cmd_ready/go_idle from runtime_pm
+    - scsi: mpt3sas: Fix calltrace observed while running IO & reset
+    - scsi: mpt3sas: Fix _transport_smp_handler() error path
+    - scsi: sysfs: Introduce sysfs_{un,}break_active_protection()
+    - scsi: core: Avoid that SCSI device removal through sysfs triggers a deadlock
+    - iscsi target: fix session creation failure handling
+    - mtd: rawnand: hynix: Use ->exec_op() in hynix_nand_reg_write_op()
+    - mtd: rawnand: fsmc: Stop using chip->read_buf()
+    - mtd: rawnand: marvell: add suspend and resume hooks
+    - mtd: rawnand: qcom: wait for desc completion in all BAM channels
+    - clk: rockchip: fix clk_i2sout parent selection bits on rk3399
+    - clk: npcm7xx: fix memory allocation
+    - PM / clk: signedness bug in of_pm_clk_add_clks()
+    - power: generic-adc-battery: fix out-of-bounds write when copying channel
+      properties
+    - power: generic-adc-battery: check for duplicate properties copied from iio
+      channels
+    - watchdog: Mark watchdog touch functions as notrace
+    - cdrom: Fix info leak/OOB read in cdrom_ioctl_drive_status
+    - x86/dumpstack: Don't dump kernel memory based on usermode RIP
+    - Linux 4.18.6
+    - updateconfigs after v4.18.6 stable update
+
+  * random oopses on s390 systems using NVMe devices (LP: #1790480)
+    - s390/pci: fix out of bounds access during irq setup
+
+  * [18.10 FEAT] zcrypt DD: introduce APQN tags to support deterministic driver
+    binding (LP: #1784331)
+    - s390/zcrypt: code beautify
+    - s390/zcrypt: AP bus support for alternate driver(s)
+    - s390/zcrypt: hex string mask improvements for apmask and aqmask.
+
+  * performance drop with ATS enabled (LP: #1788097)
+    - powerpc/powernv: Fix concurrency issue with npu->mmio_atsd_usage
+
+  * Fix MCE handling for user access of poisoned device-dax mapping
+    (LP: #1774366)
+    - device-dax: Convert to vmf_insert_mixed and vm_fault_t
+    - device-dax: Enable page_mapping()
+    - device-dax: Set page->index
+    - filesystem-dax: Set page->index
+    - mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages
+    - mm, dev_pagemap: Do not clear ->mapping on final put
+    - mm, madvise_inject_error: Let memory_failure() optionally take a page
+      reference
+    - mm, memory_failure: Collect mapping size in collect_procs()
+    - filesystem-dax: Introduce dax_lock_mapping_entry()
+    - mm, memory_failure: Teach memory_failure() about dev_pagemap pages
+    - x86/mm/pat: Prepare {reserve, free}_memtype() for "decoy" addresses
+    - x86/memory_failure: Introduce {set, clear}_mce_nospec()
+    - libnvdimm, pmem: Restore page attributes when clearing errors
+
+  * Reconcile hns3 SAUCE patches with upstream (LP: #1787477)
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix comments for
+      hclge_get_ring_chain_from_mbx"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and
+      shift in hclge_get_ring_chain_from_mbx"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default
+      assignment probelm"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring
+      configuration operation while resetting"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix return value error in
+      hns3_reset_notify_down_enet"
+    - Revert "UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell
+      phy driver"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when
+      resetting"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: correct reset event status
+      register"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset
+      frequently"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing
+      command queue register"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during
+      global or core reset"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce
+      callback function"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear
+      reset cause"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in
+      hclgevf_main module"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp
+      selftest"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal
+      frame size"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated
+      problem"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting
+      correctly"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in
+      pfc mode"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first
+      up"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback
+      function when link status change"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying
+      roce client"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and
+      definition"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask
+      macros"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset
+      macros"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return
+      value"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove some redundant
+      assignments"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead
+      of kzalloc/dma_map_single"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: give default option while
+      dependency HNS3 set"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of
+      some structures"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove a redundant
+      hclge_cmd_csq_done"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters
+      in hclge_cmd_send"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove some redundant
+      assignments"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove useless code in
+      hclge_cmd_send"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unused
+      hclge_ring_to_dma_dir"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and
+      upper_32_bits"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector
+      in hns3_client_uninit"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error
+      information"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state
+      state init|uninit"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in
+      hnae3.c"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4
+      and ipv6"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add vector status check before
+      free vector"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: rename the interface for
+      init_client_instance and uninit_client_instance"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index
+      from hclge_bind_ring_with_vector"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in
+      last BD except VLD bit and buffer size"
+    - Revert "UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback
+      selftest"
+    - net: hns3: Updates RX packet info fetch in case of multi BD
+    - net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
+    - net: hns3: rename the interface for init_client_instance and
+      uninit_client_instance
+    - net: hns3: add vector status check before free vector
+    - net: hns3: add l4_type check for both ipv4 and ipv6
+    - net: hns3: add unlikely for error check
+    - net: hns3: remove unused head file in hnae3.c
+    - net: hns3: extraction an interface for state init|uninit
+    - net: hns3: print the ret value in error information
+    - net: hns3: remove the Redundant put_vector in hns3_client_uninit
+    - net: hns3: remove back in struct hclge_hw
+    - net: hns3: use lower_32_bits and upper_32_bits
+    - net: hns3: remove unused hclge_ring_to_dma_dir
+    - net: hns3: remove useless code in hclge_cmd_send
+    - net: hns3: remove some redundant assignments
+    - net: hns3: simplify hclge_cmd_csq_clean
+    - net: hns3: remove a redundant hclge_cmd_csq_done
+    - net: hns3: remove some unused members of some structures
+    - net: hns3: give default option while dependency HNS3 set
+    - net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
+    - net: hns3: modify hnae_ to hnae3_
+    - net: hns3: Fix tc setup when netdev is first up
+    - net: hns3: Fix for mac pause not disable in pfc mode
+    - net: hns3: Fix for waterline not setting correctly
+    - net: hns3: Fix for l4 checksum offload bug
+    - net: hns3: Fix for mailbox message truncated problem
+    - net: hns3: Add configure for mac minimal frame size
+    - net: hns3: Fix warning bug when doing lp selftest
+    - net: hns3: Fix get_vector ops in hclgevf_main module
+    - net: hns3: Remove the warning when clear reset cause
+    - net: hns3: Prevent sending command during global or core reset
+    - net: hns3: Modify the order of initializing command queue register
+    - net: hns3: Reset net device with rtnl_lock
+    - net: hns3: Prevent to request reset frequently
+    - net: hns3: Correct reset event status register
+    - net: hns3: Fix return value error in hns3_reset_notify_down_enet
+    - net: hns3: remove unnecessary ring configuration operation while resetting
+    - net: hns3: Fix for reset_level default assignment probelm
+    - net: hns3: Fix for using wrong mask and shift in
+      hclge_get_ring_chain_from_mbx
+    - net: hns3: Fix comments for hclge_get_ring_chain_from_mbx
+    - net: hns3: Remove some redundant assignments
+    - net: hns3: Standardize the handle of return value
+    - net: hns3: Remove extra space and brackets
+    - net: hns3: Correct unreasonable code comments
+    - net: hns3: Use decimal for bit offset macros
+    - net: hns3: Modify inconsistent bit mask macros
+    - net: hns3: Fix misleading parameter name
+    - net: hns3: Remove unused struct member and definition
+    - net: hns3: Add SPDX tags to HNS3 PF driver
+    - net: hns3: Add support for serdes loopback selftest
+    - net: hns3: Fix for phy link issue when using marvell phy driver
+
+  * [Regression] kernel crashdump fails on arm64 (LP: #1786878)
+    - arm64: export memblock_reserve()d regions via /proc/iomem
+    - drivers: acpi: add dependency of EFI for arm64
+    - efi/arm: preserve early mapping of UEFI memory map longer for BGRT
+    - efi/arm: map UEFI memory map even w/o runtime services enabled
+    - arm64: acpi: fix alignment fault in accessing ACPI
+    - [Config] CONFIG_ARCH_SUPPORTS_ACPI=y
+    - arm64: fix ACPI dependencies
+    - ACPI: fix menuconfig presentation of ACPI submenu
+
+  * TB 16 issue on Dell Lattitude 7490 with large amount of data (LP: #1785780)
+    - r8152: disable RX aggregation on new Dell TB16 dock
+
+  * Support Power Management for Thunderbolt Controller  (LP: #1789358)
+    - thunderbolt: Use 64-bit DMA mask if supported by the platform
+    - thunderbolt: Do not unnecessarily call ICM get route
+    - thunderbolt: No need to take tb->lock in domain suspend/complete
+    - thunderbolt: Use correct ICM commands in system suspend
+    - thunderbolt: Add support for runtime PM
+
+  * Enable AMD PCIe MP2 for AMDI0011 (LP: #1773940)
+    - SAUCE: i2c:amd I2C Driver based on PCI Interface for upcoming platform
+    - SAUCE: i2c:amd move out pointer in union i2c_event_base
+    - SAUCE: i2c:amd Depends on ACPI
+    - [Config] i2c: CONFIG_I2C_AMD_MP2=y on x86
+
+  * Microphone cannot be detected with front panel audio combo jack on HP Z8-G4
+    machine (LP: #1789145)
+    - ALSA: hda/realtek - Fix HP Headset Mic can't record
+
+  * Please enable CONFIG_PAGE_POISONING (LP: #1783651)
+    - [Config] Enable CONFIG_PAGE_POISONING configs
+
+  * Tango platform uses __initcall without further checks (LP: #1787945)
+    - [Config] disable ARCH_TANGO
+
+  * [18.10 FEAT] SMC-Direct (LP: #1786902)
+    - net/smc: determine port attributes independent from pnet table
+    - net/smc: add pnetid support
+    - net/smc: add base infrastructure for SMC-D and ISM
+    - net/smc: add pnetid support for SMC-D and ISM
+    - net/smc: add SMC-D support in CLC messages
+    - net/smc: add SMC-D support in data transfer
+    - net/smc: add SMC-D support in af_smc
+    - net/smc: add SMC-D diag support
+    - net/smc: provide smc mode in smc_diag.c
+    - net/smc: eliminate cursor read and write calls
+    - net/smc: add function to get link group from link
+    - net/smc: use DECLARE_BITMAP for rtokens_used_mask
+    - net/smc: remove local variable page in smc_rx_splice()
+    - net/smc: Remove a WARN_ON() statement
+    - net/smc: Simplify ib_post_(send|recv|srq_recv)() calls
+    - net/smc: fewer parameters for smc_llc_send_confirm_link()
+    - net/smc: use correct vlan gid of RoCE device
+    - net/smc: provide fallback reason code
+    - net/smc: improve delete link processing
+    - net: simplify sock_poll_wait
+    - net/smc: send response to test link signal
+
+  * Miscellaneous Ubuntu changes
+    - [Config] update annotations for CONFIG_CRYPTO_SPECK_NEON
+    - [Config] fix up annotatios for CONFIG_CRYPTO_SPECK
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 10 Sep 2018 07:08:38 -0500
+
+linux (4.18.0-7.8) cosmic; urgency=medium
+
+  * linux: 4.18.0-7.8 -proposed tracker (LP: #1789459)
+
+  * pmtu.sh fails on 4.18 kernel (LP: #1789436)
+    - SAUCE: Revert "vti6: fix PMTU caching and reporting on xmit"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 28 Aug 2018 11:08:51 -0500
+
+linux (4.18.0-6.7) cosmic; urgency=medium
+
+  * linux: 4.18.0-6.7 -proposed tracker (LP: #1788881)
+
+  * systemd 237-3ubuntu10 ADT test failure with linux 4.18.0-5.6 (LP: #1787440)
+    - Config: Disable BPF_JIT_ALWAYS_ON on i386
+
+  * execveat03 in ubuntu_ltp_syscalls failed on X/B (LP: #1786729)
+    - cap_inode_getsecurity: use d_find_any_alias() instead of d_find_alias()
+
+  * Cosmic update to v4.18.5 stable release (LP: #1788874)
+    - EDAC: Add missing MEM_LRDDR4 entry in edac_mem_types[]
+    - pty: fix O_CLOEXEC for TIOCGPTPEER
+    - mm: Allow non-direct-map arguments to free_reserved_area()
+    - x86/mm/init: Pass unconverted symbol addresses to free_init_pages()
+    - x86/mm/init: Add helper for freeing kernel image pages
+    - x86/mm/init: Remove freed kernel image areas from alias mapping
+    - powerpc64s: Show ori31 availability in spectre_v1 sysfs file not v2
+    - ext4: fix spectre gadget in ext4_mb_regular_allocator()
+    - drm/i915/kvmgt: Fix potential Spectre v1
+    - drm/amdgpu/pm: Fix potential Spectre v1
+    - parisc: Remove unnecessary barriers from spinlock.h
+    - parisc: Remove ordered stores from syscall.S
+    - PCI: Restore resized BAR state on resume
+    - PCI / ACPI / PM: Resume all bridges on suspend-to-RAM
+    - PCI: hotplug: Don't leak pci_slot on registration failure
+    - PCI: aardvark: Size bridges before resources allocation
+    - PCI: Skip MPS logic for Virtual Functions (VFs)
+    - PCI: pciehp: Fix use-after-free on unplug
+    - PCI: pciehp: Fix unprotected list iteration in IRQ handler
+    - i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
+    - i2c: imx: Fix race condition in dma read
+    - reiserfs: fix broken xattr handling (heap corruption, bad retval)
+    - Linux 4.18.5
+
+  * [18.10 FEAT] Add kernel config option "CONFIG_SCLP_OFB" (LP: #1787898)
+    - [Config] CONFIG_SCLP_OFB=y for s390x
+
+  * errors when scanning partition table of corrupted AIX disk (LP: #1787281)
+    - partitions/aix: fix usage of uninitialized lv_info and lvname structures
+    - partitions/aix: append null character to print data from disk
+
+  * Apply NVMe bugfix from Google that bjf asked for (LP: #1787635)
+    - nvme-pci: add a memory barrier to nvme_dbbuf_update_and_check_event
+
+  * ThinkPad systems have no HDMI sound when using the nvidia GPU (LP: #1787058)
+    - ACPI / OSI: Add OEM _OSI string to enable NVidia HDMI audio
+
+  * Cosmic update to v4.18.4 stable release (LP: #1788454)
+    - l2tp: use sk_dst_check() to avoid race on sk->sk_dst_cache
+    - net_sched: fix NULL pointer dereference when delete tcindex filter
+    - net_sched: Fix missing res info when create new tc_index filter
+    - r8169: don't use MSI-X on RTL8168g
+    - ALSA: hda - Sleep for 10ms after entering D3 on Conexant codecs
+    - ALSA: hda - Turn CX8200 into D3 as well upon reboot
+    - ALSA: vx222: Fix invalid endian conversions
+    - ALSA: virmidi: Fix too long output trigger loop
+    - ALSA: cs5535audio: Fix invalid endian conversion
+    - ALSA: dice: fix wrong copy to rx parameters for Alesis iO26
+    - ALSA: hda: Correct Asrock B85M-ITX power_save blacklist entry
+    - ALSA: memalloc: Don't exceed over the requested size
+    - ALSA: vxpocket: Fix invalid endian conversions
+    - ALSA: seq: Fix poll() error return
+    - media: gl861: fix probe of dvb_usb_gl861
+    - USB: serial: sierra: fix potential deadlock at close
+    - USB: serial: pl2303: add a new device id for ATEN
+    - USB: option: add support for DW5821e
+    - ACPI / PM: save NVS memory for ASUS 1025C laptop
+    - tty: serial: 8250: Revert NXP SC16C2552 workaround
+    - serial: 8250_exar: Read INT0 from slave device, too
+    - serial: 8250_dw: always set baud rate in dw8250_set_termios
+    - serial: 8250_dw: Add ACPI support for uart on Broadcom SoC
+    - uio: fix wrong return value from uio_mmap()
+    - misc: sram: fix resource leaks in probe error path
+    - Revert "uio: use request_threaded_irq instead"
+    - Bluetooth: avoid killing an already killed socket
+    - isdn: Disable IIOCDBGVAR
+    - net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd()
+    - hv/netvsc: Fix NULL dereference at single queue mode fallback
+    - r8169: don't use MSI-X on RTL8106e
+    - ip_vti: fix a null pointer deferrence when create vti fallback tunnel
+    - net: ethernet: mvneta: Fix napi structure mixup on armada 3700
+    - net: mvneta: fix mvneta_config_rss on armada 3700
+    - cls_matchall: fix tcf_unbind_filter missing
+    - Linux 4.18.4
+
+  * Cosmic update to v4.18.3 stable release (LP: #1788453)
+    - x86/speculation/l1tf: Exempt zeroed PTEs from inversion
+    - Linux 4.18.3
+
+  * Cosmic update to v4.18.2 stable release (LP: #1788452)
+    - x86/l1tf: Fix build error seen if CONFIG_KVM_INTEL is disabled
+    - x86: i8259: Add missing include file
+    - x86/hyper-v: Check for VP_INVAL in hyperv_flush_tlb_others()
+    - x86/platform/UV: Mark memblock related init code and data correctly
+    - x86/mm/pti: Clear Global bit more aggressively
+    - xen/pv: Call get_cpu_address_sizes to set x86_virt/phys_bits
+    - x86/mm: Disable ioremap free page handling on x86-PAE
+    - kbuild: verify that $DEPMOD is installed
+    - crypto: ccree - fix finup
+    - crypto: ccree - fix iv handling
+    - crypto: ccp - Check for NULL PSP pointer at module unload
+    - crypto: ccp - Fix command completion detection race
+    - crypto: x86/sha256-mb - fix digest copy in sha256_mb_mgr_get_comp_job_avx2()
+    - crypto: vmac - require a block cipher with 128-bit block size
+    - crypto: vmac - separate tfm and request context
+    - crypto: blkcipher - fix crash flushing dcache in error path
+    - crypto: ablkcipher - fix crash flushing dcache in error path
+    - crypto: skcipher - fix aligning block size in skcipher_copy_iv()
+    - crypto: skcipher - fix crash flushing dcache in error path
+    - ioremap: Update pgtable free interfaces with addr
+    - x86/mm: Add TLB purge to free pmd/pte page interfaces
+    - Linux 4.18.2
+
+  * Cosmic update to v4.18.2 stable release (LP: #1788452) // CVE-2018-9363
+    - Bluetooth: hidp: buffer overflow in hidp_process_report
+
+  * linux-cloud-tools-common: Ensure hv-kvp-daemon.service starts before
+    walinuxagent.service (LP: #1739107)
+    - [Debian] hyper-v -- Ensure that hv-kvp-daemon.service starts before
+      walinuxagent.service
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: ipvs: remove nbsp characters from Kconfig
+    - [Config] CONFIG_MPROFILE_KERNEL=y for ppc64el
+    - [Config] CONFIG_DRM_RCAR_LVDS=m for snapdragon
+    - [Config] CONFIG_MDIO_MSCC_MIIM=n for s390x
+    - [Config] CONFIG_NET_VENDOR_MICROSEMI=n, CONFIG_NET_VENDOR_NI=n for s390x
+    - [Config] update annotations following config review
+    - [Debian] set CROSS_COMPILE when generating kernel configs
+    - [Config] Disable the Speck cipher
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 24 Aug 2018 14:18:15 -0500
+
+linux (4.18.0-5.6) cosmic; urgency=medium
+
+  * Cosmic update to v4.18.1 stable release (LP: #1787264)
+    - x86/paravirt: Fix spectre-v2 mitigations for paravirt guests
+    - x86/speculation: Protect against userspace-userspace spectreRSB
+    - kprobes/x86: Fix %p uses in error messages
+    - x86/irqflags: Provide a declaration for native_save_fl
+    - x86/speculation/l1tf: Increase 32bit PAE __PHYSICAL_PAGE_SHIFT
+    - x86/speculation/l1tf: Change order of offset/type in swap entry
+    - x86/speculation/l1tf: Protect swap entries against L1TF
+    - x86/speculation/l1tf: Protect PROT_NONE PTEs against speculation
+    - x86/speculation/l1tf: Make sure the first page is always reserved
+    - x86/speculation/l1tf: Add sysfs reporting for l1tf
+    - x86/speculation/l1tf: Disallow non privileged high MMIO PROT_NONE mappings
+    - x86/speculation/l1tf: Limit swap file size to MAX_PA/2
+    - x86/bugs: Move the l1tf function and define pr_fmt properly
+    - sched/smt: Update sched_smt_present at runtime
+    - x86/smp: Provide topology_is_primary_thread()
+    - x86/topology: Provide topology_smt_supported()
+    - cpu/hotplug: Make bringup/teardown of smp threads symmetric
+    - cpu/hotplug: Split do_cpu_down()
+    - cpu/hotplug: Provide knobs to control SMT
+    - x86/cpu: Remove the pointless CPU printout
+    - x86/cpu/AMD: Remove the pointless detect_ht() call
+    - x86/cpu/common: Provide detect_ht_early()
+    - x86/cpu/topology: Provide detect_extended_topology_early()
+    - x86/cpu/intel: Evaluate smp_num_siblings early
+    - x86/CPU/AMD: Do not check CPUID max ext level before parsing SMP info
+    - x86/cpu/AMD: Evaluate smp_num_siblings early
+    - x86/apic: Ignore secondary threads if nosmt=force
+    - x86/speculation/l1tf: Extend 64bit swap file size limit
+    - x86/cpufeatures: Add detection of L1D cache flush support.
+    - x86/CPU/AMD: Move TOPOEXT reenablement before reading smp_num_siblings
+    - x86/speculation/l1tf: Protect PAE swap entries against L1TF
+    - x86/speculation/l1tf: Fix up pte->pfn conversion for PAE
+    - Revert "x86/apic: Ignore secondary threads if nosmt=force"
+    - cpu/hotplug: Boot HT siblings at least once
+    - x86/KVM: Warn user if KVM is loaded SMT and L1TF CPU bug being present
+    - x86/KVM/VMX: Add module argument for L1TF mitigation
+    - x86/KVM/VMX: Add L1D flush algorithm
+    - x86/KVM/VMX: Add L1D MSR based flush
+    - x86/KVM/VMX: Add L1D flush logic
+    - x86/KVM/VMX: Split the VMX MSR LOAD structures to have an host/guest numbers
+    - x86/KVM/VMX: Add find_msr() helper function
+    - x86/KVM/VMX: Separate the VMX AUTOLOAD guest/host number accounting
+    - x86/KVM/VMX: Extend add_atomic_switch_msr() to allow VMENTER only MSRs
+    - x86/KVM/VMX: Use MSR save list for IA32_FLUSH_CMD if required
+    - cpu/hotplug: Online siblings when SMT control is turned on
+    - x86/litf: Introduce vmx status variable
+    - x86/kvm: Drop L1TF MSR list approach
+    - x86/l1tf: Handle EPT disabled state proper
+    - x86/kvm: Move l1tf setup function
+    - x86/kvm: Add static key for flush always
+    - x86/kvm: Serialize L1D flush parameter setter
+    - x86/kvm: Allow runtime control of L1D flush
+    - cpu/hotplug: Expose SMT control init function
+    - cpu/hotplug: Set CPU_SMT_NOT_SUPPORTED early
+    - x86/bugs, kvm: Introduce boot-time control of L1TF mitigations
+    - Documentation: Add section about CPU vulnerabilities
+    - x86/speculation/l1tf: Unbreak !__HAVE_ARCH_PFN_MODIFY_ALLOWED architectures
+    - x86/KVM/VMX: Initialize the vmx_l1d_flush_pages' content
+    - Documentation/l1tf: Fix typos
+    - cpu/hotplug: detect SMT disabled by BIOS
+    - x86/KVM/VMX: Don't set l1tf_flush_l1d to true from vmx_l1d_flush()
+    - x86/KVM/VMX: Replace 'vmx_l1d_flush_always' with 'vmx_l1d_flush_cond'
+    - x86/KVM/VMX: Move the l1tf_flush_l1d test to vmx_l1d_flush()
+    - x86/irq: Demote irq_cpustat_t::__softirq_pending to u16
+    - x86/KVM/VMX: Introduce per-host-cpu analogue of l1tf_flush_l1d
+    - x86: Don't include linux/irq.h from asm/hardirq.h
+    - x86/irq: Let interrupt handlers set kvm_cpu_l1tf_flush_l1d
+    - x86/KVM/VMX: Don't set l1tf_flush_l1d from vmx_handle_external_intr()
+    - Documentation/l1tf: Remove Yonah processors from not vulnerable list
+    - x86/speculation: Simplify sysfs report of VMX L1TF vulnerability
+    - x86/speculation: Use ARCH_CAPABILITIES to skip L1D flush on vmentry
+    - KVM: VMX: Tell the nested hypervisor to skip L1D flush on vmentry
+    - cpu/hotplug: Fix SMT supported evaluation
+    - x86/speculation/l1tf: Invert all not present mappings
+    - x86/speculation/l1tf: Make pmd/pud_mknotpresent() invert
+    - x86/mm/pat: Make set_memory_np() L1TF safe
+    - x86/mm/kmmio: Make the tracer robust against L1TF
+    - tools headers: Synchronise x86 cpufeatures.h for L1TF additions
+    - x86/microcode: Allow late microcode loading with SMT disabled
+    - x86/smp: fix non-SMP broken build due to redefinition of
+      apic_id_is_primary_thread
+    - cpu/hotplug: Non-SMP machines do not make use of booted_once
+    - x86/init: fix build with CONFIG_SWAP=n
+    - Linux 4.18.1
+    - [Config] updateconfigs after v4.18.1 stable update
+
+  * Consider enabling CONFIG_NETWORK_PHY_TIMESTAMPING (LP: #1785816)
+    - [Config] Enable timestamping in network PHY devices
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_SYSCTL_SYSCALL=n
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 15 Aug 2018 14:20:59 -0500
+
+linux (4.18.0-4.5) cosmic; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 06 Aug 2018 13:54:02 -0500
+
+linux (4.18.0-3.4) cosmic; urgency=medium
+
+  * Suspend fails in Ubuntu and Kubuntu 18.04 but works fine in Ubuntu and
+    Kubuntu 17.10 (and on Kubuntu 18.04 using kernel 4.14.47) (LP: #1774950)
+    - ACPI / LPSS: Avoid PM quirks on suspend and resume from hibernation
+
+  * hinic interfaces aren't getting predictable names (LP: #1783138)
+    - hinic: Link the logical network device to the pci device in sysfs
+
+  * libvirtd is unable to configure bridge devices inside of LXD containers
+    (LP: #1784501)
+    - kernfs: allow creating kernfs objects with arbitrary uid/gid
+    - sysfs, kobject: allow creating kobject belonging to arbitrary users
+    - kobject: kset_create_and_add() - fetch ownership info from parent
+    - driver core: set up ownership of class devices in sysfs
+    - net-sysfs: require net admin in the init ns for setting tx_maxrate
+    - net-sysfs: make sure objects belong to container's owner
+    - net: create reusable function for getting ownership info of sysfs inodes
+    - bridge: make sure objects belong to container's owner
+    - sysfs: Fix regression when adding a file to an existing group
+
+  * locking sockets broken due to missing AppArmor socket mediation patches
+    (LP: #1780227)
+    - UBUNTU SAUCE: apparmor: fix apparmor mediating locking non-fs, unix sockets
+
+  * Update2 for ocxl driver (LP: #1781436)
+    - ocxl: Fix page fault handler in case of fault on dying process
+
+  * HDMI/DP audio can't work on the laptop of Dell Latitude 5495 (LP: #1782689)
+    - ALSA: hda: use PCI_BASE_CLASS_DISPLAY to replace PCI_CLASS_DISPLAY_VGA
+    - vga_switcheroo: set audio client id according to bound GPU id
+
+  * Allow Raven Ridge's audio controller to be runtime suspended (LP: #1782540)
+    - ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge
+
+  * Invoking obsolete 'firmware_install' target breaks snap build (LP: #1782166)
+    - snapcraft.yaml: stop invoking the obsolete (and non-existing)
+      'firmware_install' target
+
+  * snapcraft.yaml: missing ubuntu-retpoline-extract-one script breaks the build
+    (LP: #1782116)
+    - snapcraft.yaml: copy retpoline-extract-one to scripts before build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 01 Aug 2018 08:49:40 -0500
+
+linux (4.18.0-2.3) cosmic; urgency=medium
+
+  * Kernel error "task zfs:pid blocked for more than 120 seconds" (LP: #1781364)
+    - SAUCE: (noup) zfs to 0.7.9-3ubuntu4
+
+  * [Regression] EXT4-fs error (device sda1): ext4_validate_inode_bitmap:99:
+    comm stress-ng: Corrupt inode bitmap (LP: #1780137)
+    - SAUCE: ext4: fix ext4_validate_inode_bitmap: comm stress-ng: Corrupt inode
+      bitmap
+
+  * Cloud-init causes potentially huge boot delays with 4.15 kernels
+    (LP: #1780062)
+    - random: Make getrandom() ready earlier
+
+  * hisi_sas_v3_hw: internal task abort: timeout and not done. (LP: #1777736)
+    - scsi: hisi_sas: Update a couple of register settings for v3 hw
+
+  * hisi_sas: Add missing PHY spinlock init (LP: #1777734)
+    - scsi: hisi_sas: Add missing PHY spinlock init
+
+  * hisi_sas: improve read performance by pre-allocating slot DMA buffers
+    (LP: #1777727)
+    - scsi: hisi_sas: Use dmam_alloc_coherent()
+    - scsi: hisi_sas: Pre-allocate slot DMA buffers
+
+  * hisi_sas: Failures during host reset (LP: #1777696)
+    - scsi: hisi_sas: Only process broadcast change in phy_bcast_v3_hw()
+    - scsi: hisi_sas: Fix the conflict between dev gone and host reset
+    - scsi: hisi_sas: Adjust task reject period during host reset
+    - scsi: hisi_sas: Add a flag to filter PHY events during reset
+    - scsi: hisi_sas: Release all remaining resources in clear nexus ha
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.9-3ubuntu2, zfs to 0.7.9-3ubuntu3
+    - SAUCE: mm: Fix exports that inadvertently make put_page() EXPORT_SYMBOL_GPL
+    - Enable zfs build
+    - SAUCE: Import aufs driver
+    - Revert "UBUNTU: [Config]: set CONFIG_EDAC_DEBUG=y for ARM64"
+    - [Config] retpoline -- review and accept retpoline changes
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc5
+  * Rebase to v4.18-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 24 Jul 2018 08:41:22 -0500
+
+linux (4.18.0-1.2) cosmic; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 09 Jul 2018 07:36:31 -0500
+
+linux (4.18.0-0.1) cosmic; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu -- disable vbox build
+    - Disable zfs build
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) Add a SysRq option to lift kernel lockdown
+    - SAUCE: (efi-lockdown) ima: require secure_boot rules in lockdown mode
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/{mem,kmem,port} when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) kexec_load: Disable at runtime if the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86/msr: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Lock down module params that specify hardware
+      parameters (eg. ioport)
+    - SAUCE: (efi-lockdown) x86/mmiotrace: Lock down the testmmiotrace module
+    - SAUCE: (efi-lockdown) Lock down /proc/kcore
+    - SAUCE: (efi-lockdown) Lock down kprobes
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) Lock down perf
+    - SAUCE: (efi-lockdown) debugfs: Restrict debugfs when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) Make get_cert_list() not complain about cert lists
+      that aren't present.
+    - SAUCE: (efi-lockdown) Add efi_status_to_str() and rework
+      efi_status_to_err().
+    - SAUCE: (efi-lockdown) Make get_cert_list() use efi_status_to_str() to print
+      error messages.
+    - SAUCE: (efi-lockdown) lockdown: fix coordination of kernel module signature
+      verification
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Don't print secure boot state from the efi stub
+    - SAUCE: (namespace) block_dev: Support checking inode permissions in
+      lookup_bdev()
+    - SAUCE: (namespace) block_dev: Check permissions towards block device inode
+      when mounting
+    - SAUCE: (namespace) mtd: Check permissions towards mtd block device inode
+      when mounting
+    - SAUCE: (namespace) ext4: Add support for unprivileged mounts from user
+      namespaces
+    - SAUCE: (namespace) ext4: Add module parameter to enable user namespace
+      mounts
+    - SAUCE: (namespace) block_dev: Forbid unprivileged mounting when device is
+      opened for writing
+    - SAUCE: Import aufs driver
+    - Update dropped.txt
+    - [Config] updateconfigs after 4.18-rc3 rebase
+    - SAUCE: (no-up): ASoC: Intel: bytcr-rt5660: Remove snd_soc_codec use for 4.18
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.18-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 06 Jul 2018 10:46:37 -0500
+
+linux (4.18.0-0.0) cosmic; urgency=medium
+
+  * Dummy entry.
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 03 Jul 2018 11:10:33 -0500
+
+linux (4.17.0-4.5) cosmic; urgency=medium
+
+  * linux: 4.17.0-4.5 -proposed tracker (LP: #1779399)
+
+  * Update to ocxl driver for 18.04.1 (LP: #1775786)
+    - powerpc: Add TIDR CPU feature for POWER9
+    - powerpc: Use TIDR CPU feature to control TIDR allocation
+    - powerpc: use task_pid_nr() for TID allocation
+    - ocxl: Rename pnv_ocxl_spa_remove_pe to clarify it's action
+    - ocxl: Expose the thread_id needed for wait on POWER9
+    - ocxl: Add an IOCTL so userspace knows what OCXL features are available
+    - ocxl: Document new OCXL IOCTLs
+    - ocxl: Fix missing unlock on error in afu_ioctl_enable_p9_wait()
+
+  * Please include ax88179_178a and r8152 modules in d-i udeb (LP: #1771823)
+    - [Config:] d-i: Add ax88179_178a and r8152 to nic-modules
+
+  * glibc pkeys test fail on powerpc (LP: #1776967)
+    - [Config] Temporarily disable CONFIG_PPC_MEM_KEYS
+
+  * After update to 4.13-43 Intel Graphics are Laggy (LP: #1773520)
+    - Revert "drm/i915/edp: Allow alternate fixed mode for eDP if available."
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.9-3ubuntu1, zfs to 0.7.9-3ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 29 Jun 2018 13:37:52 -0500
+
+linux (4.17.0-3.4) cosmic; urgency=medium
+
+  * linux: 4.17.0-3.4 -proposed tracker (LP: #1779124)
+
+  * Cosmic update to v4.17.3 stable release (LP: #1778997)
+    - net: aquantia: fix unsigned numvecs comparison with less than zero
+    - bonding: re-evaluate force_primary when the primary slave name changes
+    - cdc_ncm: avoid padding beyond end of skb
+    - ipv6: allow PMTU exceptions to local routes
+    - net: dsa: add error handling for pskb_trim_rcsum
+    - net: phy: dp83822: use BMCR_ANENABLE instead of BMSR_ANEGCAPABLE for DP83620
+    - net/sched: act_simple: fix parsing of TCA_DEF_DATA
+    - tcp: verify the checksum of the first data segment in a new connection
+    - tls: fix use-after-free in tls_push_record
+    - tls: fix waitall behavior in tls_sw_recvmsg
+    - socket: close race condition between sock_close() and sockfs_setattr()
+    - udp: fix rx queue len reported by diag and proc interface
+    - net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds
+      vlan
+    - hv_netvsc: Fix a network regression after ifdown/ifup
+    - ACPICA: AML parser: attempt to continue loading table after error
+    - ext4: fix hole length detection in ext4_ind_map_blocks()
+    - ext4: update mtime in ext4_punch_hole even if no blocks are released
+    - ext4: do not allow external inodes for inline data
+    - ext4: bubble errors from ext4_find_inline_data_nolock() up to ext4_iget()
+    - ext4: correctly handle a zero-length xattr with a non-zero e_value_offs
+    - ext4: fix fencepost error in check for inode count overflow during resize
+    - driver core: Don't ignore class_dir_create_and_add() failure.
+    - Btrfs: allow empty subvol= again
+    - Btrfs: fix clone vs chattr NODATASUM race
+    - Btrfs: fix memory and mount leak in btrfs_ioctl_rm_dev_v2()
+    - btrfs: return error value if create_io_em failed in cow_file_range
+    - btrfs: scrub: Don't use inode pages for device replace
+    - ALSA: usb-audio: Disable the quirk for Nura headset
+    - ALSA: hda/conexant - Add fixup for HP Z2 G4 workstation
+    - ALSA: hda - Handle kzalloc() failure in snd_hda_attach_pcm_stream()
+    - ALSA: hda: add dock and led support for HP EliteBook 830 G5
+    - ALSA: hda: add dock and led support for HP ProBook 640 G4
+    - x86/MCE: Fix stack out-of-bounds write in mce-inject.c: Flags_read()
+    - smb3: fix various xid leaks
+    - smb3: on reconnect set PreviousSessionId field
+    - CIFS: 511c54a2f69195b28afb9dd119f03787b1625bb4 adds a check for session
+      expiry
+    - cifs: For SMB2 security informaion query, check for minimum sized security
+      descriptor instead of sizeof FileAllInformation class
+    - nbd: fix nbd device deletion
+    - nbd: update size when connected
+    - nbd: use bd_set_size when updating disk size
+    - blk-mq: reinit q->tag_set_list entry only after grace period
+    - bdi: Move cgroup bdi_writeback to a dedicated low concurrency workqueue
+    - cpufreq: Fix new policy initialization during limits updates via sysfs
+    - cpufreq: ti-cpufreq: Fix an incorrect error return value
+    - cpufreq: governors: Fix long idle detection logic in load calculation
+    - libata: zpodd: small read overflow in eject_tray()
+    - libata: Drop SanDisk SD7UB3Q*G1001 NOLPM quirk
+    - nvme/pci: Sync controller reset for AER slot_reset
+    - w1: mxc_w1: Enable clock before calling clk_get_rate() on it
+    - x86/vector: Fix the args of vector_alloc tracepoint
+    - x86/apic/vector: Prevent hlist corruption and leaks
+    - x86/apic: Provide apic_ack_irq()
+    - x86/ioapic: Use apic_ack_irq()
+    - x86/platform/uv: Use apic_ack_irq()
+    - irq_remapping: Use apic_ack_irq()
+    - genirq/generic_pending: Do not lose pending affinity update
+    - genirq/affinity: Defer affinity setting if irq chip is busy
+    - genirq/migration: Avoid out of line call if pending is not set
+    - x86/intel_rdt: Enable CMT and MBM on new Skylake stepping
+    - media: uvcvideo: Prevent setting unavailable flags
+    - media: rc: ensure input/lirc device can be opened after register
+    - iwlwifi: fw: harden page loading code
+    - orangefs: set i_size on new symlink
+    - orangefs: report attributes_mask and attributes for statx
+    - HID: intel_ish-hid: ipc: register more pm callbacks to support hibernation
+    - HID: wacom: Correct logical maximum Y for 2nd-gen Intuos Pro large
+    - vhost: fix info leak due to uninitialized memory
+    - mm, page_alloc: do not break __GFP_THISNODE by zonelist reset
+    - Linux 4.17.3
+
+  * Use-after-free in sk_peer_label (LP: #1778646)
+    - SAUCE: apparmor: fix use after free in sk_peer_label
+
+  * kernel: Fix memory leak on CCA and EP11 CPRB processing. (LP: #1775390)
+    - s390/zcrypt: Fix CCA and EP11 CPRB processing failure memory leak.
+
+  * Various fixes for CXL kernel module (LP: #1774471)
+    - cxl: Configure PSL to not use APC virtual machines
+    - cxl: Disable prefault_mode in Radix mode
+
+  * Bluetooth not working (LP: #1764645)
+    - Bluetooth: btusb: Apply QCA Rome patches for some ATH3012 models
+
+  * Fake SAS addresses for SATA disks on HiSilicon D05 are non-unique
+    (LP: #1776750)
+    - scsi: hisi_sas: make SAS address of SATA disks unique
+
+  * linux-snapdragon: wcn36xx: mac address generation on boot (LP: #1776491)
+    - [Config] arm64: snapdragon: WCN36XX_SNAPDRAGON_HACKS=y
+    - SAUCE: wcn36xx: read MAC from file or randomly generate one
+
+  * Lenovo V330 needs patch in ideapad_laptop module for rfkill (LP: #1774636)
+    - SAUCE: Add Lenovo V330 to the ideapad_laptop rfkill blacklist
+
+  * register on binfmt_misc may overflow and crash the system (LP: #1775856)
+    - fs/binfmt_misc.c: do not allow offset overflow
+
+  * Network installs fail on SocioNext board (LP: #1775884)
+    - net: socionext: reset hardware in ndo_stop
+    - net: netsec: enable tx-irq during open callback
+
+  * Fix several bugs in RDMA/hns driver (LP: #1770974)
+    - RDMA/hns: Drop local zgid in favor of core defined variable
+    - RDMA/hns: Add 64KB page size support for hip08
+    - RDMA/hns: Rename the idx field of db
+    - RDMA/hns: Modify uar allocation algorithm to avoid bitmap exhaust
+    - RDMA/hns: Increase checking CMQ status timeout value
+    - RDMA/hns: Add reset process for RoCE in hip08
+    - RDMA/hns: Fix the illegal memory operation when cross page
+    - RDMA/hns: Implement the disassociate_ucontext API
+
+  * powerpc/livepatch: Implement reliable stack tracing for the consistency
+    model (LP: #1771844)
+    - powerpc/livepatch: Implement reliable stack tracing for the consistency
+      model
+
+  * Adding back alx WoL feature (LP: #1772610)
+    - SAUCE: Revert "alx: remove WoL support"
+    - SAUCE: alx: add enable_wol paramenter
+
+  * Lancer A0 Asic HBA's won't boot with 18.04 (LP: #1768103)
+    - scsi: lpfc: Fix WQ/CQ creation for older asic's.
+    - scsi: lpfc: Fix 16gb hbas failing cq create.
+
+  * [LTCTest][OPAL][OP920] cpupower idle-info is not listing stop4 and stop5
+    idle states when all CORES are guarded (LP: #1771780)
+    - powerpc/powernv/cpuidle: Init all present cpus for deep states
+
+  * Huawei 25G/100G Network Adapters Unsupported (LP: #1770970)
+    - net-next/hinic: add pci device ids for 25ge and 100ge card
+
+  * Expose arm64 CPU topology to userspace (LP: #1770231)
+    - drivers: base: cacheinfo: move cache_setup_of_node()
+    - drivers: base: cacheinfo: setup DT cache properties early
+    - cacheinfo: rename of_node to fw_token
+    - arm64/acpi: Create arch specific cpu to acpi id helper
+    - ACPI/PPTT: Add Processor Properties Topology Table parsing
+    - [Config] CONFIG_ACPI_PPTT=y
+    - ACPI: Enable PPTT support on ARM64
+    - drivers: base cacheinfo: Add support for ACPI based firmware tables
+    - arm64: Add support for ACPI based firmware tables
+    - arm64: topology: rename cluster_id
+    - arm64: topology: enable ACPI/PPTT based CPU topology
+    - ACPI: Add PPTT to injectable table list
+    - arm64: topology: divorce MC scheduling domain from core_siblings
+
+  * Vcs-Git header on bionic linux source package points to zesty git tree
+    (LP: #1766055)
+    - [Packaging]: Update Vcs-Git
+
+  * Request to revert SAUCE patches in the 18.04 SRU and update with upstream
+    version (LP: #1768431)
+    - scsi: cxlflash: Handle spurious interrupts
+    - scsi: cxlflash: Remove commmands from pending list on timeout
+    - scsi: cxlflash: Synchronize reset and remove ops
+    - SAUCE: (no-up) cxlflash: OCXL diff between v2 and v3
+
+  * hisi_sas robustness fixes (LP: #1774466)
+    - scsi: hisi_sas: delete timer when removing hisi_sas driver
+    - scsi: hisi_sas: print device id for errors
+    - scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
+    - scsi: hisi_sas: check host frozen before calling "done" function
+    - scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
+    - scsi: hisi_sas: stop controller timer for reset
+    - scsi: hisi_sas: update PHY linkrate after a controller reset
+    - scsi: hisi_sas: change slot index allocation mode
+    - scsi: hisi_sas: Change common allocation mode of device id
+    - scsi: hisi_sas: Reset disks when discovered
+    - scsi: hisi_sas: Create a scsi_host_template per HW module
+    - scsi: hisi_sas: Init disks after controller reset
+    - scsi: hisi_sas: Try wait commands before before controller reset
+    - scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
+    - scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
+    - scsi: hisi_sas: Terminate STP reject quickly for v2 hw
+    - scsi: hisi_sas: Fix return value when get_free_slot() failed
+    - scsi: hisi_sas: Mark PHY as in reset for nexus reset
+
+  * hisi_sas: Support newer v3 hardware (LP: #1774467)
+    - scsi: hisi_sas: update RAS feature for later revision of v3 HW
+    - scsi: hisi_sas: check IPTT is valid before using it for v3 hw
+    - scsi: hisi_sas: fix PI memory size
+    - scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
+    - scsi: hisi_sas: remove redundant handling to event95 for v3
+    - scsi: hisi_sas: add readl poll timeout helper wrappers
+    - scsi: hisi_sas: workaround a v3 hw hilink bug
+    - scsi: hisi_sas: Add LED feature for v3 hw
+
+  * hisi_sas: improve performance by optimizing DQ locking (LP: #1774472)
+    - scsi: hisi_sas: optimise the usage of DQ locking
+    - scsi: hisi_sas: relocate smp sg map
+    - scsi: hisi_sas: make return type of prep functions void
+    - scsi: hisi_sas: allocate slot buffer earlier
+    - scsi: hisi_sas: Don't lock DQ for complete task sending
+    - scsi: hisi_sas: Use device lock to protect slot alloc/free
+    - scsi: hisi_sas: add check of device in hisi_sas_task_exec()
+    - scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
+
+  * FS-Cache: Assertion failed: FS-Cache: 6 == 5 is false (LP: #1774336)
+    - SAUCE: CacheFiles: fix a read_waiter/read_copier race
+
+  * enable mic-mute hotkey and led on Lenovo M820z and M920z (LP: #1774306)
+    - ALSA: hda/realtek - Enable mic-mute hotkey for several Lenovo AIOs
+
+  * hns3 driver updates (LP: #1768670)
+    - net: hns3: Remove error log when getting pfc stats fails
+    - net: hns3: fix to correctly fetch l4 protocol outer header
+    - net: hns3: Fixes the out of bounds access in hclge_map_tqp
+    - net: hns3: Fixes the error legs in hclge_init_ae_dev function
+    - net: hns3: fix for phy_addr error in hclge_mac_mdio_config
+    - net: hns3: Fix to support autoneg only for port attached with phy
+    - net: hns3: fix a dead loop in hclge_cmd_csq_clean
+    - net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
+    - net: hns3: Remove packet statistics in the range of 8192~12287
+    - net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
+    - net: hns3: Fix for setting mac address when resetting
+    - net: hns3: remove add/del_tunnel_udp in hns3_enet module
+    - net: hns3: fix for cleaning ring problem
+    - net: hns3: refactor the loopback related function
+    - net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
+    - net: hns3: Fix for the null pointer problem occurring when initializing
+      ae_dev failed
+    - net: hns3: Add a check for client instance init state
+    - net: hns3: Change return type of hnae3_register_ae_dev
+    - net: hns3: Change return type of hnae3_register_ae_algo
+    - net: hns3: Change return value in hnae3_register_client
+    - net: hns3: Fixes the back pressure setting when sriov is enabled
+    - net: hns3: Fix for fiber link up problem
+    - net: hns3: Add support of .sriov_configure in HNS3 driver
+    - net: hns3: Fixes the missing PCI iounmap for various legs
+    - net: hns3: Fixes error reported by Kbuild and internal review
+    - net: hns3: Fixes API to fetch ethernet header length with kernel default
+    - net: hns3: cleanup of return values in hclge_init_client_instance()
+    - net: hns3: Fix the missing client list node initialization
+    - net: hns3: Fix for hns3 module is loaded multiple times problem
+    - net: hns3: Use enums instead of magic number in hclge_is_special_opcode
+    - net: hns3: Fix for netdev not running problem after calling net_stop and
+      net_open
+    - net: hns3: Fixes kernel panic issue during rmmod hns3 driver
+    - net: hns3: Fix for CMDQ and Misc. interrupt init order problem
+    - net: hns3: Updates RX packet info fetch in case of multi BD
+    - net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
+    - net: hns3: Add STRP_TAGP field support for hardware revision 0x21
+    - net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
+    - net: hns3: Fix for PF mailbox receving unknown message
+    - net: hns3: Fixes the state to indicate client-type initialization
+    - net: hns3: Fixes the init of the VALID BD info in the descriptor
+    - net: hns3: Removes unnecessary check when clearing TX/RX rings
+    - net: hns3: Clear TX/RX rings when stopping port & un-initializing client
+    - net: hns3: Remove unused led control code
+    - net: hns3: Adds support for led locate command for copper port
+    - net: hns3: Fixes initalization of RoCE handle and makes it conditional
+    - net: hns3: Disable vf vlan filter when vf vlan table is full
+    - net: hns3: Add support for IFF_ALLMULTI flag
+    - net: hns3: Add repeat address checking for setting mac address
+    - net: hns3: Fix setting mac address error
+    - net: hns3: Fix for service_task not running problem after resetting
+    - net: hns3: Fix for hclge_reset running repeatly problem
+    - net: hns3: Fix for phy not link up problem after resetting
+    - net: hns3: Add missing break in misc_irq_handle
+    - net: hns3: Fix for vxlan tx checksum bug
+    - net: hns3: Optimize the PF's process of updating multicast MAC
+    - net: hns3: Optimize the VF's process of updating multicast MAC
+    - SAUCE: {topost} net: hns3: add support for serdes loopback selftest
+    - SAUCE: {topost} net: hns3: RX BD information valid only in last BD except
+      VLD bit and buffer size
+    - SAUCE: {topost} net: hns3: remove hclge_get_vector_index from
+      hclge_bind_ring_with_vector
+    - SAUCE: {topost} net: hns3: rename the interface for init_client_instance and
+      uninit_client_instance
+    - SAUCE: {topost} net: hns3: add vector status check before free vector
+    - SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
+    - SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
+    - SAUCE: {topost} net: hns3: extraction an interface for state state
+      init|uninit
+    - SAUCE: {topost} net: hns3: print the ret value in error information
+    - SAUCE: {topost} net: hns3: remove the Redundant put_vector in
+      hns3_client_uninit
+    - SAUCE: {topost} net: hns3: add unlikely for error check
+    - SAUCE: {topost} net: hns3: remove back in struct hclge_hw
+    - SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
+    - SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
+    - SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
+    - SAUCE: {topost} net: hns3: remove some redundant assignments
+    - SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
+    - SAUCE: {topost} net: hns3: using modulo for cyclic counters in
+      hclge_cmd_send
+    - SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
+    - SAUCE: {topost} net: hns3: remove some unused members of some structures
+    - SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
+    - SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of
+      kzalloc/dma_map_single
+    - SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
+    - SAUCE: {topost} net: hns3: fix unused function warning in VF driver
+    - SAUCE: {topost} net: hns3: remove some redundant assignments
+    - SAUCE: {topost} net: hns3: standardize the handle of return value
+    - SAUCE: {topost} net: hns3: remove extra space and brackets
+    - SAUCE: {topost} net: hns3: fix unreasonable code comments
+    - SAUCE: {topost} net: hns3: use decimal for bit offset macros
+    - SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
+    - SAUCE: {topost} net: hns3: fix mislead parameter name
+    - SAUCE: {topost} net: hns3: remove unused struct member and definition
+    - SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
+    - SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
+    - SAUCE: {topost} net: hns3: optimize the process of notifying roce client
+    - SAUCE: {topost} net: hns3: Add calling roce callback function when link
+      status change
+    - SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
+    - SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
+    - SAUCE: {topost} net: hns3: fix for waterline not setting correctly
+    - SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
+    - SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
+    - SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
+    - SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
+    - SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
+    - SAUCE: {topost} net: hns3: remove the warning when clear reset cause
+    - SAUCE: {topost} net: hns3: Use roce handle when calling roce callback
+      function
+    - SAUCE: {topost} net: hns3: prevent sending command during global or core
+      reset
+    - SAUCE: {topost} net: hns3: modify the order of initializeing command queue
+      register
+    - SAUCE: {topost} net: hns3: reset net device with rtnl_lock
+    - SAUCE: {topost} net: hns3: prevent to request reset frequently
+    - SAUCE: {topost} net: hns3: correct reset event status register
+    - SAUCE: {topost} net: hns3: separate roce from nic when resetting
+    - SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
+    - SAUCE: {topost} net: hns3: fix return value error in
+      hns3_reset_notify_down_enet
+    - SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation
+      while resetting
+    - SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
+    - SAUCE: {topost} net: hns3: fix for using wrong mask and shift in
+      hclge_get_ring_chain_from_mbx
+    - SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
+    - SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
+    - SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
+    - SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
+
+  * CVE-2018-7755
+    - SAUCE: floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
+
+  * Incorrect blacklist of bcm2835_wdt (LP: #1766052)
+    - [Packaging] Fix missing watchdog for Raspberry Pi
+
+  * kernel: Fix arch random implementation (LP: #1775391)
+    - s390/archrandom: Rework arch random implementation.
+
+  * [Ubuntu 1804][boston][ixgbe] EEH causes kernel BUG at /build/linux-
+    jWa1Fv/linux-4.15.0/drivers/pci/msi.c:352 (i2S) (LP: #1776389)
+    - ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device
+
+  * Cosmic update to v4.17.2 stable release (LP: #1779117)
+    - crypto: chelsio - request to HW should wrap
+    - blkdev_report_zones_ioctl(): Use vmalloc() to allocate large buffers
+    - KVM: X86: Fix reserved bits check for MOV to CR3
+    - KVM: x86: introduce linear_{read,write}_system
+    - kvm: fix typo in flag name
+    - kvm: nVMX: Enforce cpl=0 for VMX instructions
+    - KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and
+      kvm_write_guest_virt_system
+    - kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access
+    - staging: android: ion: Switch to pr_warn_once in ion_buffer_destroy
+    - NFC: pn533: don't send USB data off of the stack
+    - usbip: vhci_sysfs: fix potential Spectre v1
+    - usb-storage: Add support for FL_ALWAYS_SYNC flag in the UAS driver
+    - usb-storage: Add compatibility quirk flags for G-Technologies G-Drive
+    - Input: xpad - add GPD Win 2 Controller USB IDs
+    - phy: qcom-qusb2: Fix crash if nvmem cell not specified
+    - usb: core: message: remove extra endianness conversion in
+      usb_set_isoch_delay
+    - usb: typec: wcove: Remove dependency on HW FSM
+    - usb: gadget: function: printer: avoid wrong list handling in printer_write()
+    - usb: gadget: udc: renesas_usb3: fix double phy_put()
+    - usb: gadget: udc: renesas_usb3: should remove debugfs
+    - usb: gadget: udc: renesas_usb3: should call pm_runtime_enable() before add
+      udc
+    - usb: gadget: udc: renesas_usb3: should call devm_phy_get() before add udc
+    - usb: gadget: udc: renesas_usb3: should fail if devm_phy_get() returns error
+    - usb: gadget: udc: renesas_usb3: disable the controller's irqs for
+      reconnecting
+    - serial: sh-sci: Stop using printk format %pCr
+    - tty/serial: atmel: use port->name as name in request_irq()
+    - serial: samsung: fix maxburst parameter for DMA transactions
+    - serial: 8250: omap: Fix idling of clocks for unused uarts
+    - vmw_balloon: fixing double free when batching mode is off
+    - doc: fix sysfs ABI documentation
+    - arm64: defconfig: Enable CONFIG_PINCTRL_MT7622 by default
+    - tty: pl011: Avoid spuriously stuck-off interrupts
+    - crypto: ccree - correct host regs offset
+    - Input: goodix - add new ACPI id for GPD Win 2 touch screen
+    - Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
+    - crypto: caam - strip input zeros from RSA input buffer
+    - crypto: caam - fix DMA mapping dir for generated IV
+    - crypto: caam - fix IV DMA mapping and updating
+    - crypto: caam/qi - fix IV DMA mapping and updating
+    - crypto: caam - fix size of RSA prime factor q
+    - crypto: cavium - Fix fallout from CONFIG_VMAP_STACK
+    - crypto: cavium - Limit result reading attempts
+    - crypto: vmx - Remove overly verbose printk from AES init routines
+    - crypto: vmx - Remove overly verbose printk from AES XTS init
+    - crypto: omap-sham - fix memleak
+    - Linux 4.17.2
+
+  * Cosmic update to v4.17.1 stable release (LP: #1779116)
+    - netfilter: nf_flow_table: attach dst to skbs
+    - bnx2x: use the right constant
+    - ip6mr: only set ip6mr_table from setsockopt when ip6mr_new_table succeeds
+    - ipv6: omit traffic class when calculating flow hash
+    - l2tp: fix refcount leakage on PPPoL2TP sockets
+    - netdev-FAQ: clarify DaveM's position for stable backports
+    - net: metrics: add proper netlink validation
+    - net/packet: refine check for priv area size
+    - rtnetlink: validate attributes in do_setlink()
+    - sctp: not allow transport timeout value less than HZ/5 for hb_timer
+    - team: use netdev_features_t instead of u32
+    - vrf: check the original netdevice for generating redirect
+    - net: dsa: b53: Fix for brcm tag issue in Cygnus SoC
+    - ipmr: fix error path when ipmr_new_table fails
+    - PCI: hv: Do not wait forever on a device that has disappeared
+    - Linux 4.17.1
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: crypto: thunderx_zip: Fix fallout from
+      CONFIG_VMAP_STACK"
+    - Revert "UBUNTU: SAUCE: cred: Add clone_cred() interface"
+    - SAUCE: apparmor: userspace queries
+    - SAUCE: apparmor: patch to provide compatibility with v2.x net rules
+    - SAUCE: apparmor: af_unix mediation
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 28 Jun 2018 08:03:32 -0500
+
+linux (4.17.0-2.3) cosmic; urgency=medium
+
+  * linux: 4.17.0-2.3 -proposed tracker (LP: #1776276)
+
+  * Miscellaneous Ubuntu changes
+    - Config: remove IrDA from annotations
+    - Config: remove scsi drivers from annotations
+    - Config: remove BT_HCIBTUART from annotations
+    - Config: pstore zlib support was renamed
+    - Config: disable NVRAM for armhf on annotations
+    - Config: Disable VT on s390x
+    - Config: Update SSB and B43/B44 options
+    - Config: some options not supported on some arches anymore
+    - Config: renamed and removed options
+    - Config: TCG_CRB is required for IMA on ACPI systems
+    - Config: EXTCON_AXP288 depends on X86
+    - Config: CONFIG_FSI depends on OF
+    - Config: DRM_RCAR_LVDS now depends on DRM
+    - CONFIG: Allow CONFIG_LEDS_MLXCPLD for i386
+    - Config: Enable HINIC on arm64
+    - Config: Set PPS and PTP_1588_CLOCK as y
+    - Config: Some NF_TABLES options are built-in now
+    - Config: GENERIC_CPU for ppc64el
+    - Config: KEXEC_FILE=n for s390x
+    - Config: CRYPTO_DEFLATE is needed by PSTORE_DEFLATE_COMPRESS
+    - Config: Disable STM32 support
+    - Config: Enable FORTIFY_SOURCE for armhf
+    - Config: use STRONG instead of AUTO for CC_STACKPROTECTOR
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.17
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Mon, 11 Jun 2018 15:22:10 -0300
+
+linux (4.17.0-1.2) cosmic; urgency=medium
+
+  [ Seth Forshee ]
+  * [Config] enable EDAC_DEBUG on ARM64 (LP: #1772516)
+    - [Config]: set CONFIG_EDAC_DEBUG=y for ARM64
+
+  * Ubuntu 18.04 kernel crashed while in degraded mode (LP: #1770849)
+    - SAUCE: powerpc/perf: Fix memory allocation for core-imc based on
+      num_possible_cpus()
+
+  * Integrated Webcam Realtek Integrated_Webcam_HD (0bda:58f4) not working in
+    DELL XPS 13 9370 with firmware 1.50 (LP: #1763748)
+    - SAUCE: media: uvcvideo: Support realtek's UVC 1.5 device
+
+  * Switch Build-Depends: transfig to fig2dev (LP: #1770770)
+    - [Config] update Build-Depends: transfig to fig2dev
+
+  * update-initramfs not adding i915 GuC firmware for Kaby Lake, firmware fails
+    to load (LP: #1728238)
+    - Revert "UBUNTU: SAUCE: (no-up) i915: Remove MODULE_FIRMWARE statements for
+      unreleased firmware"
+
+  * No driver for Huawei network adapters on arm64 (LP: #1769899)
+    - net-next/hinic: add arm64 support
+
+  * linux-snapdragon: reduce EPROBEDEFER noise during boot (LP: #1768761)
+    - [Config] snapdragon: DRM_I2C_ADV7511=y
+
+  * Add d-i support for Huawei NICs (LP: #1767490)
+    - d-i: add hinic to nic-modules udeb
+
+  * Acer Swift sf314-52 power button not managed  (LP: #1766054)
+    - SAUCE: platform/x86: acer-wmi: add another KEY_POWER keycode
+
+  * Include nfp driver in linux-modules (LP: #1768526)
+    - [Config] Add nfp.ko to generic inclusion list
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Import aufs driver
+    - [Config] Enable AUFS config options
+    - SAUCE: (efi-lockdown) Fix for module sig verification
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure
+      boot mode
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Don't print secure boot state from the efi stub
+    - [Config] CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y
+    - SAUCE: (efi-lockdown) really lock down kernel under EFI secure boot
+    - SAUCE: (noup) Update spl to 0.7.5-1ubuntu3, zfs to 0.7.5-1ubuntu17
+    - enable zfs build
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) ima: require secure_boot rules in
+      lockdown mode"
+    - Rebased to v4.17-rc6
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 22 May 2018 14:48:13 -0300
+
+linux (4.17.0-0.1) bionic; urgency=medium
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.17-rc4
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Tue, 08 May 2018 16:38:51 -0300
+
+linux (4.17.0-0.0) bionic; urgency=medium
+
+  * Dummy entry.
+
+ -- Thadeu Lima de Souza Cascardo <cascardo@canonical.com>  Fri, 27 Apr 2018 11:01:13 -0300
+
+linux (4.16.0-4.5) bionic; urgency=medium
+
+  * [18.04 FEAT] Add kvm_stat from kernel tree (LP: #1734130)
+    - tools/kvm_stat: Fix python3 syntax
+    - tools/kvm_stat: Don't use deprecated file()
+    - tools/kvm_stat: Remove unused function
+    - [Packaging] Add linux-tools-host package for VM host tools
+    - [Config] do_tools_host=true for amd64
+
+  * [Featire] CNL: Enable RAPL support (LP: #1685712)
+    - powercap: RAPL: Add support for Cannon Lake
+
+  * Bionic update to v4.16.2 stable release (LP: #1763388)
+    - sparc64: Oracle DAX driver depends on SPARC64
+    - arp: fix arp_filter on l3slave devices
+    - net: dsa: Discard frames from unused ports
+    - net/ipv6: Increment OUTxxx counters after netfilter hook
+    - net/sched: fix NULL dereference in the error path of tcf_bpf_init()
+    - pptp: remove a buggy dst release in pptp_connect()
+    - sctp: do not leak kernel memory to user space
+    - sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
+    - vlan: also check phy_driver ts_info for vlan's real device
+    - net: fool proof dev_valid_name()
+    - ip_tunnel: better validate user provided tunnel names
+    - ipv6: sit: better validate user provided tunnel names
+    - ip6_gre: better validate user provided tunnel names
+    - ip6_tunnel: better validate user provided tunnel names
+    - vti6: better validate user provided tunnel names
+    - net_sched: fix a missing idr_remove() in u32_delete_key()
+    - nfp: use full 40 bits of the NSP buffer address
+    - Linux 4.16.2
+
+  * sky2 gigabit ethernet driver sometimes stops working after lid-open resume
+    from sleep (88E8055) (LP: #1758507) // Bionic update to v4.16.2 stable
+    release (LP: #1763388)
+    - sky2: Increase D3 delay to sky2 stops working after suspend
+
+  * Merge the linux-snapdragon kernel into bionic master/snapdragon
+    (LP: #1763040)
+    - arm64: defconfig: enable REMOTEPROC
+    - arm64: defconfig: enable QCOM audio drivers for APQ8016 and DB410c
+    - kernel: configs; add distro.config
+    - arm64: configs: enable WCN36xx
+    - kernel: distro.config: enable debug friendly USB network adpater
+    - arm64: configs: enable QCOM Venus
+    - arm64: defconfig: Enable a53/apcs and avs
+    - arm64: defconfig: enable ondemand governor as default
+    - arm64: defconfig: enable QCOM_TSENS
+    - kernel: configs: enable dm_mod and dm_crypt
+    - Force the SMD regulator driver to be compiled-in
+    - arm64: defconfig: enable CFG80211_DEFAULT_PS by default
+    - arm64: configs: enable BT_QCOMSMD
+    - kernel: configs: add more USB net drivers
+    - arm64: defconfig: disable ANALOG_TV and DIGITAL_TV
+    - arm64: configs: Enable camera drivers
+    - kernel: configs: add freq stat to sysfs
+    - arm64: defconfig: enable CONFIG_USB_CONFIGFS_F_FS by default
+    - arm64: defconfig: Enable QRTR features
+    - kernel: configs: set USB_CONFIG_F_FS in distro.config
+    - kernel: distro.config: enable 'schedutil' CPUfreq governor
+    - kernel: distro.config: enable 'fq' and 'fq_codel' qdiscs
+    - kernel: distro.config: enable 'BBR' TCP congestion algorithm
+    - arm64: defconfig: enable LEDS_QCOM_LPG
+    - HACK: drm/msm/iommu: Remove runtime_put calls in map/unmap
+    - power: avs: Add support for CPR (Core Power Reduction)
+    - power: avs: cpr: Use raw mem access for qfprom
+    - power: avs: cpr: fix with new reg_sequence structures
+    - power: avs: cpr: Register with cpufreq-dt
+    - regulator: smd: Add floor and corner operations
+    - PM / OPP: Support adjusting OPP voltages at runtime
+    - PM / OPP: Drop RCU usage in dev_pm_opp_adjust_voltage()
+    - PM / OPP: HACK: Allow to set regulator without opp_list
+    - PM / OPP: Add a helper to get an opp regulator for device
+    - cpufreq: Add apq8016 to cpufreq-dt-platdev blacklist
+    - regulator: smd: Allow REGULATOR_QCOM_SMD_RPM=m
+    - ov5645: I2C address change
+    - i2c: Add Qualcomm Camera Control Interface driver
+    - camss: vfe: Skip first four frames from sensor
+    - camss: Do not register if no cameras are present
+    - i2c-qcom-cci: Fix run queue completion timeout
+    - i2c-qcom-cci: Fix I2C address bug
+    - media: ov5645: Fix I2C address
+    - drm/bridge/adv7511: Delay clearing of HPD interrupt status
+    - HACK: drm/msm/adv7511: Don't rely on interrupts for EDID parsing
+    - leds: Add driver for Qualcomm LPG
+    - wcn36xx: Fix warning due to duplicate scan_completed notification
+    - arm64: dts: Add CPR DT node for msm8916
+    - arm64: dts: add spmi-regulator nodes
+    - arm64: dts: msm8916: Add cpufreq support
+    - arm64: dts: msm8916: Add a shared CPU opp table
+    - arm64: dts: msm8916: Add cpu cooling maps
+    - arm64: dts: pm8916: Mark the s2 regulator as always-on
+    - arm64: dts: qcom: msm8916: Add msm8916 A53 PLL DT node
+    - arm64: dts: qcom: msm8916: Use the new APCS mailbox driver
+    - arm64: dts: qcom: msm8916: Add clock properties to the APCS node
+    - dt-bindings: media: Binding document for Qualcomm Camera Control Interface
+      driver
+    - MAINTAINERS: Add Qualcomm Camera Control Interface driver
+    - DT: leds: Add Qualcomm Light Pulse Generator binding
+    - arm64: dts: qcom: msm8996: Add mpp and lpg blocks
+    - arm64: dts: qcom: Add pwm node for pm8916
+    - arm64: dts: qcom: Add user LEDs on db820c
+    - arm64: dts: qcom: Add WiFI/BT LEDs on db820c
+    - ARM: dts: qcom: Add LPG node to pm8941
+    - ARM: dts: qcom: honami: Add LPG node and RGB LED
+    - arm64: dts: qcom: Add Camera Control Interface support
+    - arm64: dts: qcom: Add apps_iommu vfe child node
+    - arm64: dts: qcom: Add camss device node
+    - arm64: dts: qcom: Add ov5645 device nodes
+    - arm64: dts: msm8916: Fix camera sensors I2C addresses
+    - arm: dts: qcom: db410c: Enable PWM signal on MPP4
+    - packaging: arm64: add a uboot flavour - part1
+    - packaging: arm64: add a uboot flavour - part2
+    - packaging: arm64: add a uboot flavour - part3
+    - packaging: arm64: add a uboot flavour - part4
+    - packaging: arm64: add a uboot flavour - part5
+    - packaging: arm64: rename uboot flavour to snapdragon
+    - [Config] updateconfigs after qcomlt import
+    - [Config] arm64: snapdragon: COMMON_CLK_QCOM=y
+    - [Config] arm64: snapdragon: MSM_GCC_8916=y
+    - [Config] arm64: snapdragon: REGULATOR_FIXED_VOLTAGE=y
+    - [Config] arm64: snapdragon: PINCTRL_MSM8916=y
+    - [Config] arm64: snapdragon: HWSPINLOCK_QCOM=y
+    - [Config] arm64: snapdragon: SPMI=y, SPMI_MSM_PMIC_ARB=y
+    - [Config] arm64: snapdragon: REGMAP_SPMI=y, PINCTRL_QCOM_SPMI_PMIC=y
+    - [Config] arm64: snapdragon: REGULATOR_QCOM_SPMI=y
+    - [Config] arm64: snapdragon: MFD_SPMI_PMIC=y
+    - [Config] arm64: snapdragon: QCOM_SMEM=y
+    - [Config] arm64: snapdragon: RPMSG=y, RPMSG_QCOM_SMD=y
+    - [Config] arm64: snapdragon: QCOM_SMD_RPM=y, REGULATOR_QCOM_SMD_RPM=y
+    - [Config] arm64: snapdragon: QCOM_CLK_SMD_RPM=y
+    - [Config] arm64: snapdragon: QCOM_BAM_DMA=y
+    - [Config] arm64: snapdragon: QCOM_HIDMA=y, QCOM_HIDMA_MGMT=y
+    - [Config] arm64: snapdragon: QCOM_CPR=y
+    - [Config] arm64: snapdragon: QCOM_QFPROM=y, QCOM_TSENS=y
+    - [Config] arm64: snapdragon: MMC_SDHCI=y, MMC_SDHCI_PLTFM=y, MMC_SDHCI_MSM=y
+    - [Config] turn off DRM_MSM_REGISTER_LOGGING
+    - [Config] arm64: snapdragon: I2C_QUP=y
+    - [Config] arm64: snapdragon: SPI_QUP=y
+    - [Config] arm64: snapdragon: USB_ULPI_BUS=y, PHY_QCOM_USB_HS=y
+    - [Config] arm64: snapdragon: QCOM_APCS_IPC=y
+    - [Config] arm64: snapdragon: QCOM_WCNSS_CTRL=y
+    - [Config] arm64: snapdragon: QCOM_SMSM=y
+    - [Config] arm64: snapdragon: QCOM_SMP2P=y
+    - [Config] arm64: snapdragon: DRM_MSM=y
+    - [Config] arm64: snapdragon: SND_SOC=y
+    - [Config] arm64: snapdragon: QCOM_WCNSS_PIL=m
+    - [Config] arm64: snapdragon: INPUT_PM8941_PWRKEY=y
+    - [Config] arm64: snapdragon: MEDIA_SUBDRV_AUTOSELECT=y, VIDEO_OV5645=m
+    - [Config] arm64: snapdragon: SND_SOC_APQ8016_SBC=y, SND_SOC_LPASS_APQ8016=y
+    - [Config] arm64: snapdragon: SND_SOC_MSM8916_WCD_ANALOG=y,
+      SND_SOC_MSM8916_WCD_DIGITAL=y
+    - SAUCE: media: ov5645: skip address change if dt addr == default addr
+    - SAUCE: drm/msm/adv7511: wrap hacks under CONFIG_ADV7511_SNAPDRAGON_HACKS
+      #ifdefs
+    - [Config] arm64: snapdragon: ADV7511_SNAPDRAGON_HACKS=y
+    - [Packaging] fix up snapdragon abi paths
+
+  * LSM stacking patches for bionic (LP: #1763062)
+    - SAUCE: LSM stacking: procfs: add smack subdir to attrs
+    - SAUCE: LSM stacking: LSM: Manage credential security blobs
+    - SAUCE: LSM stacking: LSM: Manage file security blobs
+    - SAUCE: LSM stacking: LSM: Manage task security blobs
+    - SAUCE: LSM stacking: LSM: Manage remaining security blobs
+    - SAUCE: LSM stacking: LSM: General stacking
+    - SAUCE: LSM stacking: fixup initialize task->security
+    - SAUCE: LSM stacking: fixup: alloc_task_ctx is dead code
+    - SAUCE: LSM stacking: add support for stacking getpeersec_stream
+    - SAUCE: LSM stacking: add stacking support to apparmor network hooks
+    - SAUCE: LSM stacking: fixup apparmor stacking enablement
+    - SAUCE: LSM stacking: fixup stacking kconfig
+    - SAUCE: LSM stacking: allow selecting multiple LSMs using kernel boot params
+    - SAUCE: LSM stacking: provide prctl interface for setting context
+    - SAUCE: LSM stacking: inherit current display LSM
+    - SAUCE: LSM stacking: keep an index for each registered LSM
+    - SAUCE: LSM stacking: verify display LSM
+    - SAUCE: LSM stacking: provide a way to specify the default display lsm
+    - SAUCE: LSM stacking: make sure LSM blob align on 64 bit boundaries
+    - SAUCE: LSM stacking: add /proc/<pid>/attr/display_lsm
+    - SAUCE: LSM stacking: add Kconfig to set default display LSM
+    - SAUCE: LSM stacking: add configs for LSM stacking
+    - SAUCE: LSM stacking: add apparmor and selinux proc dirs
+    - SAUCE: LSM stacking: remove procfs context interface
+
+  * linux 4.13.0-13.14 ADT test failure with linux 4.13.0-13.14
+    (LP: #1720779) // LSM stacking patches for bionic (LP: #1763062)
+    - SAUCE: LSM stacking: check for invalid zero sized writes
+
+  * Support cq/rq record doorbell for RDMA on HSilicon hip08 systems
+    (LP: #1762755)
+    - RDMA/hns: Support rq record doorbell for the user space
+    - RDMA/hns: Support cq record doorbell for the user space
+    - RDMA/hns: Support rq record doorbell for kernel space
+    - RDMA/hns: Support cq record doorbell for kernel space
+    - RDMA/hns: Fix cqn type and init resp
+    - RDMA/hns: Fix init resp when alloc ucontext
+    - RDMA/hns: Fix cq record doorbell enable in kernel
+
+  * Replace LPC patchset with upstream version (LP: #1762758)
+    - Revert "UBUNTU: SAUCE: MAINTAINERS: Add maintainer for HiSilicon LPC driver"
+    - Revert "UBUNTU: SAUCE: HISI LPC: Add ACPI support"
+    - Revert "UBUNTU: SAUCE: ACPI / scan: do not enumerate Indirect IO host
+      children"
+    - Revert "UBUNTU: SAUCE: HISI LPC: Support the LPC host on Hip06/Hip07 with DT
+      bindings"
+    - Revert "UBUNTU: SAUCE: OF: Add missing I/O range exception for indirect-IO
+      devices"
+    - Revert "UBUNTU: SAUCE: PCI: Apply the new generic I/O management on PCI IO
+      hosts"
+    - Revert "UBUNTU: SAUCE: PCI: Add fwnode handler as input param of
+      pci_register_io_range()"
+    - Revert "UBUNTU: SAUCE: PCI: Remove unused __weak attribute in
+      pci_register_io_range()"
+    - Revert "UBUNTU: SAUCE: LIB: Introduce a generic PIO mapping method"
+    - lib: Add generic PIO mapping method
+    - PCI: Remove __weak tag from pci_register_io_range()
+    - PCI: Add fwnode handler as input param of pci_register_io_range()
+    - PCI: Apply the new generic I/O management on PCI IO hosts
+    - of: Add missing I/O range exception for indirect-IO devices
+    - HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
+    - ACPI / scan: Rename acpi_is_serial_bus_slave() for more general use
+    - ACPI / scan: Do not enumerate Indirect IO host children
+    - HISI LPC: Add ACPI support
+    - MAINTAINERS: Add John Garry as maintainer for HiSilicon LPC driver
+
+  * Enable Tunneled Operations on POWER9 (LP: #1762448)
+    - powerpc/powernv: Enable tunneled operations
+    - cxl: read PHB indications from the device tree
+
+  * PSL traces reset after PERST for debug AFU image (LP: #1762462)
+    - cxl: Enable NORST bit in PSL_DEBUG register for PSL9
+
+  * NFS + sec=krb5 is broken (LP: #1759791)
+    - sunrpc: remove incorrect HMAC request initialization
+
+  * Raspberry Pi 3 microSD support missing from the installer (LP: #1729128)
+    - d-i: add bcm2835 to block-modules
+
+  * Backport USB core quirks (LP: #1762695)
+    - usb: core: Add "quirks" parameter for usbcore
+    - usb: core: Copy parameter string correctly and remove superfluous null check
+    - usb: core: Add USB_QUIRK_DELAY_CTRL_MSG to usbcore quirks
+
+  * [Ubuntu 18.04] cryptsetup: 'device-mapper: reload ioctl on  failed' when
+    setting up a second end-to-end encrypted disk (LP: #1762353)
+    - SAUCE: s390/crypto: Adjust s390 aes and paes cipher
+
+  * System Z {kernel} UBUNTU18.04 wrong kernel config (LP: #1762719)
+    - s390: move nobp parameter functions to nospec-branch.c
+    - s390: add automatic detection of the spectre defense
+    - s390: report spectre mitigation via syslog
+    - s390: add sysfs attributes for spectre
+    - [Config] CONFIG_EXPOLINE_AUTO=y, CONFIG_KERNEL_NOBP=n for s390
+    - s390: correct nospec auto detection init order
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5715
+    - powerpc/64s: Wire up cpu_show_spectre_v2()
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5753
+    - powerpc/64s: Wire up cpu_show_spectre_v1()
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5754
+    - powerpc/rfi-flush: Move the logic to avoid a redo into the debugfs code
+    - powerpc/rfi-flush: Make it possible to call setup_rfi_flush() again
+    - powerpc/rfi-flush: Always enable fallback flush on pseries
+    - powerpc/rfi-flush: Differentiate enabled and patched flush types
+    - powerpc/rfi-flush: Call setup_rfi_flush() after LPM migration
+    - powerpc/64s: Move cpu_show_meltdown()
+    - powerpc/64s: Enhance the information in cpu_show_meltdown()
+    - powerpc/powernv: Use the security flags in pnv_setup_rfi_flush()
+    - powerpc/pseries: Use the security flags in pseries_setup_rfi_flush()
+
+  * Additional spectre and meltdown patches (LP: #1760099) // CVE-2017-5715 //
+    CVE-2017-5753 // CVE-2017-5754
+    - powerpc/pseries: Add new H_GET_CPU_CHARACTERISTICS flags
+    - powerpc: Add security feature flags for Spectre/Meltdown
+    - powerpc/pseries: Set or clear security feature flags
+    - powerpc/powernv: Set or clear security feature flags
+
+  * Hisilicon network subsystem 3 support (LP: #1761610)
+    - net: hns3: export pci table of hclge and hclgevf to userspace
+    - d-i: Add hns3 drivers to nic-modules
+
+  * "ip a" command on a guest VM shows UNKNOWN status (LP: #1761534)
+    - virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
+
+  * perf vendor events arm64: Enable JSON events for ThunderX2 B0 (LP: #1760712)
+    - perf vendor events: Drop incomplete multiple mapfile support
+    - perf vendor events: Fix error code in json_events()
+    - perf vendor events: Drop support for unused topic directories
+    - perf vendor events: Add support for pmu events vendor subdirectory
+    - perf vendor events arm64: Relocate ThunderX2 JSON to cavium subdirectory
+    - perf vendor events arm64: Relocate Cortex A53 JSONs to arm subdirectory
+    - perf vendor events: Add support for arch standard events
+    - perf vendor events arm64: Add armv8-recommended.json
+    - perf vendor events arm64: Fixup ThunderX2 to use recommended events
+    - perf vendor events arm64: fixup A53 to use recommended events
+    - perf vendor events arm64: add HiSilicon hip08 JSON file
+    - perf vendor events arm64: Enable JSON events for ThunderX2 B0
+
+  * Warning "cache flush timed out!" seen when unloading the cxl driver
+    (LP: #1762367)
+    - cxl: Check if PSL data-cache is available before issue flush request
+
+  * Bionic update to v4.16.1 stable release (LP: #1763170)
+    - bitmap: fix memset optimization on big-endian systems
+    - USB: serial: ftdi_sio: add RT Systems VX-8 cable
+    - USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator
+    - USB: serial: cp210x: add ELDAT Easywave RX09 id
+    - serial: 8250: Add Nuvoton NPCM UART
+    - mei: remove dev_err message on an unsupported ioctl
+    - /dev/mem: Avoid overwriting "err" in read_mem()
+    - media: usbtv: prevent double free in error case
+    - parport_pc: Add support for WCH CH382L PCI-E single parallel port card.
+    - crypto: lrw - Free rctx->ext with kzfree
+    - crypto: ccp - Fill the result buffer only on digest, finup, and final ops
+    - crypto: talitos - don't persistently map req_ctx->hw_context and
+      req_ctx->buf
+    - crypto: inside-secure - fix clock management
+    - crypto: testmgr - Fix incorrect values in PKCS#1 test vector
+    - crypto: talitos - fix IPsec cipher in length
+    - crypto: ahash - Fix early termination in hash walk
+    - crypto: caam - Fix null dereference at error path
+    - crypto: ccp - return an actual key size from RSA max_size callback
+    - crypto: arm,arm64 - Fix random regeneration of S_shipped
+    - crypto: x86/cast5-avx - fix ECB encryption when long sg follows short one
+    - Bluetooth: hci_bcm: Add 6 new ACPI HIDs
+    - Btrfs: fix unexpected cow in run_delalloc_nocow
+    - siox: fix possible buffer overflow in device_add_store
+    - staging: comedi: ni_mio_common: ack ai fifo error interrupts.
+    - Revert "base: arch_topology: fix section mismatch build warnings"
+    - Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370
+    - Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list
+    - Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
+    - vt: change SGR 21 to follow the standards
+    - Fix slab name "biovec-(1<<(21-12))"
+    - signal: Correct the offset of si_pkey and si_lower in struct siginfo on m68k
+    - Linux 4.16.1
+
+  * [18.04][config] regression: nvme and nvme_core couldn't be built as modules
+    starting 4.15-rc2 (LP: #1759893)
+    - SAUCE: Revert "lightnvm: include NVM Express driver if OCSSD is selected for
+      build"
+    - [Config] CONFIG_BLK_DEV_NMVE=m
+
+  * FFe: Enable configuring resume offset via sysfs (LP: #1760106)
+    - PM / hibernate: Make passing hibernate offsets more friendly
+
+  * Ubuntu18.04:POWER9:DD2.2 - Unable to start a KVM guest with default machine
+    type(pseries-bionic) complaining "KVM implementation does not support
+    Transactional Memory, try cap-htm=off" (kvm) (LP: #1752026)
+    - powerpc: Use feature bit for RTC presence rather than timebase presence
+    - powerpc: Book E: Remove unused CPU_FTR_L2CSR bit
+    - powerpc: Free up CPU feature bits on 64-bit machines
+    - powerpc: Add CPU feature bits for TM bug workarounds on POWER9 v2.2
+    - powerpc/powernv: Provide a way to force a core into SMT4 mode
+    - KVM: PPC: Book3S HV: Work around transactional memory bugs in POWER9
+    - KVM: PPC: Book3S HV: Work around XER[SO] bug in fake suspend mode
+    - KVM: PPC: Book3S HV: Work around TEXASR bug in fake suspend state
+
+  * [Feature][CFL][ICL] [CNL]Thunderbolt support (Titan Ridge) (LP: #1730775)
+    - thunderbolt: Resume control channel after hibernation image is created
+    - thunderbolt: Serialize PCIe tunnel creation with PCI rescan
+    - thunderbolt: Handle connecting device in place of host properly
+    - thunderbolt: Do not overwrite error code when domain adding fails
+    - thunderbolt: Wait a bit longer for root switch config space
+    - thunderbolt: Wait a bit longer for ICM to authenticate the active NVM
+    - thunderbolt: Handle rejected Thunderbolt devices
+    - thunderbolt: Factor common ICM add and update operations out
+    - thunderbolt: Correct function name in kernel-doc comment
+    - thunderbolt: Add tb_switch_get()
+    - thunderbolt: Add tb_switch_find_by_route()
+    - thunderbolt: Add tb_xdomain_find_by_route()
+    - thunderbolt: Add constant for approval timeout
+    - thunderbolt: Move driver ready handling to struct icm
+    - thunderbolt: Add 'boot' attribute for devices
+    - thunderbolt: Add support for preboot ACL
+    - thunderbolt: Introduce USB only (SL4) security level
+    - thunderbolt: Add support for Intel Titan Ridge
+
+  * QCA9377 requires more IRAM banks for its new firmware (LP: #1748345)
+    - ath10k: update the IRAM bank number for QCA9377
+
+  * Fix an issue that when system in S3, USB keyboard can't wake up the system.
+    (LP: #1759511)
+    - ACPI / PM: Allow deeper wakeup power states with no _SxD nor _SxW
+
+  * cxl: Fix timebase synchronization status on POWER9 missing (CAPI)
+    (LP: #1757228)
+    - cxl: Fix timebase synchronization status on P9
+
+  * [Feature]Update Ubuntu 18.04 lpfc FC driver with 32/64GB HBA support and bug
+    fixes (LP: #1752182)
+    - scsi: lpfc: Fix frequency of Release WQE CQEs
+    - scsi: lpfc: Increase CQ and WQ sizes for SCSI
+    - scsi: lpfc: move placement of target destroy on driver detach
+    - scsi: lpfc: correct debug counters for abort
+    - scsi: lpfc: Add WQ Full Logic for NVME Target
+    - scsi: lpfc: Fix PRLI handling when topology type changes
+    - scsi: lpfc: Fix IO failure during hba reset testing with nvme io.
+    - scsi: lpfc: Fix RQ empty firmware trap
+    - scsi: lpfc: Allow set of maximum outstanding SCSI cmd limit for a target
+    - scsi: lpfc: Fix soft lockup in lpfc worker thread during LIP testing
+    - scsi: lpfc: Fix issue_lip if link is disabled
+    - scsi: lpfc: Indicate CONF support in NVMe PRLI
+    - scsi: lpfc: Fix SCSI io host reset causing kernel crash
+    - scsi: lpfc: Validate adapter support for SRIU option
+    - scsi: lpfc: Fix header inclusion in lpfc_nvmet
+    - scsi: lpfc: Treat SCSI Write operation Underruns as an error
+    - scsi: lpfc: Fix nonrecovery of NVME controller after cable swap.
+    - scsi: lpfc: update driver version to 11.4.0.7
+    - scsi: lpfc: Update 11.4.0.7 modified files for 2018 Copyright
+    - scsi: lpfc: Rework lpfc to allow different sli4 cq and eq handlers
+    - scsi: lpfc: Rework sli4 doorbell infrastructure
+    - scsi: lpfc: Add SLI-4 if_type=6 support to the code base
+    - scsi: lpfc: Add push-to-adapter support to sli4
+    - scsi: lpfc: Add PCI Ids for if_type=6 hardware
+    - scsi: lpfc: Add 64G link speed support
+    - scsi: lpfc: Add if_type=6 support for cycling valid bits
+    - scsi: lpfc: Enable fw download on if_type=6 devices
+    - scsi: lpfc: Add embedded data pointers for enhanced performance
+    - scsi: lpfc: Fix nvme embedded io length on new hardware
+    - scsi: lpfc: Work around NVME cmd iu SGL type
+    - scsi: lpfc: update driver version to 12.0.0.0
+    - scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018
+    - scsi: lpfc: use __raw_writeX on DPP copies
+    - scsi: lpfc: Add missing unlock in WQ full logic
+
+  * /dev/bcache/by-uuid links not created after reboot (LP: #1729145)
+    - SAUCE: (no-up) bcache: decouple emitting a cached_dev CHANGE uevent
+
+  * DKMS driver builds fail with: Cannot use CONFIG_STACK_VALIDATION=y, please
+    install libelf-dev, libelf-devel or elfutils-libelf-devel (LP: #1760876)
+    - [Packaging] include the retpoline extractor in the headers
+
+  * Use med_with_dipm SATA LPM to save more power for mobile platforms
+    (LP: #1759547)
+    - [Config] CONFIG_SATA_MOBILE_LPM_POLICY=3
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Only install cloud init files when do_tools_common=true
+    - SAUCE: Import aufs driver
+    - [Config] Enable AUFS config options
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 12 Apr 2018 09:30:56 -0500
+
+linux (4.16.0-3.4) bionic; urgency=medium
+
+  * Allow multiple mounts of zfs datasets (LP: #1759848)
+    - SAUCE: Allow mounting datasets more than once (LP: #1759848)
+
+  * zfs system process hung on container stop/delete (LP: #1754584)
+    - SAUCE: Fix non-prefaulted page deadlock (LP: #1754584)
+    - Revert "UBUNTU: SAUCE: Fix non-prefaulted page deadlock (LP: #1754584)"
+    - SAUCE: Fix non-prefaulted page deadlock (LP: #1754584)
+
+  * ubuntu_zram_smoke test will cause soft lockup on Artful ThunderX ARM64
+    (LP: #1755073)
+    - SAUCE: crypto: thunderx_zip: Fix fallout from CONFIG_VMAP_STACK
+
+  * CAPI Flash (cxlflash) update (LP: #1752672)
+    - SAUCE: cxlflash: Preserve number of interrupts for master contexts
+    - SAUCE: cxlflash: Avoid clobbering context control register value
+    - SAUCE: cxlflash: Add argument identifier names
+    - SAUCE: cxlflash: Introduce OCXL backend
+    - SAUCE: cxlflash: Hardware AFU for OCXL
+    - SAUCE: cxlflash: Read host function configuration
+    - SAUCE: cxlflash: Setup function acTag range
+    - SAUCE: cxlflash: Read host AFU configuration
+    - SAUCE: cxlflash: Setup AFU acTag range
+    - SAUCE: cxlflash: Setup AFU PASID
+    - SAUCE: cxlflash: Adapter context support for OCXL
+    - SAUCE: cxlflash: Use IDR to manage adapter contexts
+    - SAUCE: cxlflash: Support adapter file descriptors for OCXL
+    - SAUCE: cxlflash: Support adapter context discovery
+    - SAUCE: cxlflash: Support image reload policy modification
+    - SAUCE: cxlflash: MMIO map the AFU
+    - SAUCE: cxlflash: Support starting an adapter context
+    - SAUCE: cxlflash: Support process specific mappings
+    - SAUCE: cxlflash: Support AFU state toggling
+    - SAUCE: cxlflash: Support reading adapter VPD data
+    - SAUCE: cxlflash: Setup function OCXL link
+    - SAUCE: cxlflash: Setup OCXL transaction layer
+    - SAUCE: cxlflash: Support process element lifecycle
+    - SAUCE: cxlflash: Support AFU interrupt management
+    - SAUCE: cxlflash: Support AFU interrupt mapping and registration
+    - SAUCE: cxlflash: Support starting user contexts
+    - SAUCE: cxlflash: Support adapter context polling
+    - SAUCE: cxlflash: Support adapter context reading
+    - SAUCE: cxlflash: Support adapter context mmap and release
+    - SAUCE: cxlflash: Support file descriptor mapping
+    - SAUCE: cxlflash: Introduce object handle fop
+    - SAUCE: cxlflash: Setup LISNs for user contexts
+    - SAUCE: cxlflash: Setup LISNs for master contexts
+    - SAUCE: cxlflash: Update synchronous interrupt status bits
+    - SAUCE: cxlflash: Introduce OCXL context state machine
+    - SAUCE: cxlflash: Register for translation errors
+    - SAUCE: cxlflash: Support AFU reset
+    - SAUCE: cxlflash: Enable OCXL operations
+
+  * [Artful][Wyse 3040] System hang when trying to enable an offlined CPU core
+    (LP: #1736393)
+    - SAUCE: drm/i915:Don't set chip specific data
+    - SAUCE: drm/i915: make previous commit affects Wyse 3040 only
+
+  * zed process consuming 100% cpu (LP: #1751796)
+    - SAUCE: Fix ioctl loop-spin in zed (LP: #1751796)
+
+  * Ubuntu18.04:PowerPC - Set Transparent Huge Pages (THP) by default to
+    "always" (LP: #1753708)
+    - Config: Set TRANSPARENT_HUGEPAGE_ALWAYS=y on ppc64el
+
+  * retpoline hints: primary infrastructure and initial hints (LP: #1758856)
+    - [Packaging] retpoline -- add safe usage hint support
+    - [Packaging] retpoline-check -- only report additions
+    - [Packaging] retpoline -- widen indirect call/jmp detection
+    - [Packaging] retpoline -- elide %rip relative indirections
+    - [Packaging] retpoline -- clear hint information from packages
+    - SAUCE: apm -- annotate indirect calls within
+      firmware_restrict_branch_speculation_{start,end}
+    - SAUCE: EFI -- annotate indirect calls within
+      firmware_restrict_branch_speculation_{start,end}
+    - SAUCE: early/late -- annotate indirect calls in early/late initialisation
+      code
+    - SAUCE: vga_set_mode -- avoid jump tables
+    - [Config] retpoine -- switch to new format
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] final-checks -- remove check for empty retpoline files
+    - [Packaging] skip cloud tools packaging when not building package
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 02 Apr 2018 16:15:36 -0500
+
+linux (4.16.0-2.3) bionic; urgency=medium
+
+  * devpts: handle bind-mounts (LP: #1755857)
+    - SAUCE: devpts: hoist out check for DEVPTS_SUPER_MAGIC
+    - SAUCE: devpts: resolve devpts bind-mounts
+    - SAUCE: devpts: comment devpts_mntget()
+    - SAUCE: selftests: add devpts selftests
+
+  * [bionic][arm64] d-i: add hisi_sas_v3_hw to scsi-modules (LP: #1756103)
+    - d-i: add hisi_sas_v3_hw to scsi-modules
+
+  * [Bionic][ARM64] PCI and SAS driver patches for hip08 SoCs (LP: #1756094)
+    - SAUCE: scsi: hisi_sas: config for hip08 ES
+    - SAUCE: scsi: hisi_sas: export device table of v3 hw to userspace
+
+  * s390/crypto: Fix kernel crash on aes_s390 module remove (LP: #1753424)
+    - SAUCE: s390/crypto: Fix kernel crash on aes_s390 module remove.
+
+  * Fix ARC hit rate (LP: #1755158)
+    - SAUCE: Fix ARC hit rate (LP: #1755158)
+
+  * ZFS setgid broken on 0.7 (LP: #1753288)
+    - SAUCE: Fix ZFS setgid
+
+  * CONFIG_EFI=y on armhf (LP: #1726362)
+    - [Config] CONFIG_EFI=y on armhf, reconcile secureboot EFI settings
+
+  * [Feature] Add xHCI debug device support in the driver (LP: #1730832)
+    - [Config] CONFIG_USB_XHCI_DBGCAP=y
+
+  * retpoline: ignore %cs:0xNNN constant indirections (LP: #1752655)
+    - [Packaging] retpoline -- elide %cs:0xNNNN constants on i386
+    - [Config] retpoline -- clean up i386 retpoline files
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] retpoline-extract: flag *0xNNN(%reg) branches
+    - [Config] fix up retpoline abi files
+    - [Config] fix up retpoline abi files
+    - d-i: Add netsec to nic-modules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 19 Mar 2018 14:09:49 -0500
+
+linux (4.16.0-1.2) bionic; urgency=medium
+
+  * Driver not found in Ubuntu kernel does not detect interface (LP: #1745927)
+    - d-i: add cxgb4 to nic-modules
+
+  * Support low-pin-count devices on Hisilicon SoCs (LP: #1677319)
+    - [Config] CONFIG_INDIRECT_PIO=y
+    - SAUCE: LIB: Introduce a generic PIO mapping method
+    - SAUCE: PCI: Remove unused __weak attribute in pci_register_io_range()
+    - SAUCE: PCI: Add fwnode handler as input param of pci_register_io_range()
+    - SAUCE: PCI: Apply the new generic I/O management on PCI IO hosts
+    - SAUCE: OF: Add missing I/O range exception for indirect-IO devices
+    - [Config] CONFIG_HISILICON_LPC=y
+    - SAUCE: HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
+    - SAUCE: ACPI / scan: do not enumerate Indirect IO host children
+    - SAUCE: HISI LPC: Add ACPI support
+    - SAUCE: MAINTAINERS: Add maintainer for HiSilicon LPC driver
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: tools: use CC for linking acpi tools
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 28 Feb 2018 10:17:23 -0600
+
+linux (4.16.0-0.1) bionic; urgency=medium
+
+  * retpoline abi files are empty on i386 (LP: #1751021)
+    - [Packaging] retpoline-extract -- instantiate retpoline files for i386
+    - [Packaging] final-checks -- sanity checking ABI contents
+    - [Packaging] final-checks -- check for empty retpoline files
+
+  * Miscellaneous upstream changes
+    - disable vbox build
+    - Disable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.16-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 22 Feb 2018 08:58:57 -0600
+
+linux (4.16.0-0.0) bionic; urgency=medium
+
+  * Dummy entry
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 21 Feb 2018 14:33:13 -0600
+
+linux (4.15.0-10.11) bionic; urgency=medium
+
+  * linux: 4.15.0-10.11 -proposed tracker (LP: #1749250)
+
+  * "swiotlb: coherent allocation failed" dmesg spam with linux 4.15.0-9.10
+    (LP: #1749202)
+    - swiotlb: suppress warning when __GFP_NOWARN is set
+    - drm/ttm: specify DMA_ATTR_NO_WARN for huge page pools
+
+  * linux-tools: perf incorrectly linking libbfd (LP: #1748922)
+    - SAUCE: tools -- add ability to disable libbfd
+    - [Packaging] correct disablement of libbfd
+
+  * [Artful] Realtek ALC225: 2 secs noise when a headset plugged in
+    (LP: #1744058)
+    - ALSA: hda/realtek - update ALC225 depop optimize
+
+  * [Artful] Support headset mode for DELL WYSE (LP: #1723913)
+    - SAUCE: ALSA: hda/realtek - Add support headset mode for DELL WYSE
+
+  * headset mic can't be detected on two Dell machines (LP: #1748807)
+    - ALSA: hda/realtek - Support headset mode for ALC215/ALC285/ALC289
+    - ALSA: hda - Fix headset mic detection problem for two Dell machines
+
+  * Bionic update to v4.15.3 stable release (LP: #1749191)
+    - ip6mr: fix stale iterator
+    - net: igmp: add a missing rcu locking section
+    - qlcnic: fix deadlock bug
+    - qmi_wwan: Add support for Quectel EP06
+    - r8169: fix RTL8168EP take too long to complete driver initialization.
+    - tcp: release sk_frag.page in tcp_disconnect
+    - vhost_net: stop device during reset owner
+    - ipv6: addrconf: break critical section in addrconf_verify_rtnl()
+    - ipv6: change route cache aging logic
+    - Revert "defer call to mem_cgroup_sk_alloc()"
+    - net: ipv6: send unsolicited NA after DAD
+    - rocker: fix possible null pointer dereference in
+      rocker_router_fib_event_work
+    - tcp_bbr: fix pacing_gain to always be unity when using lt_bw
+    - cls_u32: add missing RCU annotation.
+    - ipv6: Fix SO_REUSEPORT UDP socket with implicit sk_ipv6only
+    - soreuseport: fix mem leak in reuseport_add_sock()
+    - net_sched: get rid of rcu_barrier() in tcf_block_put_ext()
+    - net: sched: fix use-after-free in tcf_block_put_ext
+    - media: mtk-vcodec: add missing MODULE_LICENSE/DESCRIPTION
+    - media: soc_camera: soc_scale_crop: add missing
+      MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - media: tegra-cec: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - gpio: uniphier: fix mismatch between license text and MODULE_LICENSE
+    - crypto: tcrypt - fix S/G table for test_aead_speed()
+    - Linux 4.15.3
+
+  * bnx2x_attn_int_deasserted3:4323 MC assert! (LP: #1715519) //
+    CVE-2018-1000026
+    - net: create skb_gso_validate_mac_len()
+    - bnx2x: disable GSO where gso_size is too big for hardware
+
+  * ethtool -p fails to light NIC LED on HiSilicon D05 systems (LP: #1748567)
+    - net: hns: add ACPI mode support for ethtool -p
+
+  * CVE-2017-5715 (Spectre v2 Intel)
+    - [Packaging] retpoline files must be sorted
+    - [Packaging] pull in retpoline files
+
+  * [Feature] PXE boot with Intel Omni-Path (LP: #1712031)
+    - d-i: Add hfi1 to nic-modules
+
+  * CVE-2017-5715 (Spectre v2 retpoline)
+    - [Packaging] retpoline -- add call site validation
+    - [Config] disable retpoline checks for first upload
+
+  * Do not duplicate changelog entries assigned to more than one bug or CVE
+    (LP: #1743383)
+    - [Packaging] git-ubuntu-log -- handle multiple bugs/cves better
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 13 Feb 2018 11:33:58 -0600
+
+linux (4.15.0-9.10) bionic; urgency=medium
+
+  * linux: 4.15.0-9.10 -proposed tracker (LP: #1748244)
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] tests -- remove gcc-multilib dependency for arm64
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 08 Feb 2018 11:25:04 -0600
+
+linux (4.15.0-8.9) bionic; urgency=medium
+
+  * linux: 4.15.0-8.9 -proposed tracker (LP: #1748075)
+
+  * Bionic update to v4.15.2 stable release (LP: #1748072)
+    - KVM: x86: Make indirect calls in emulator speculation safe
+    - KVM: VMX: Make indirect call speculation safe
+    - module/retpoline: Warn about missing retpoline in module
+    - x86/cpufeatures: Add CPUID_7_EDX CPUID leaf
+    - x86/cpufeatures: Add Intel feature bits for Speculation Control
+    - x86/cpufeatures: Add AMD feature bits for Speculation Control
+    - x86/msr: Add definitions for new speculation control MSRs
+    - x86/pti: Do not enable PTI on CPUs which are not vulnerable to Meltdown
+    - x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes
+    - x86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier) support
+    - x86/alternative: Print unadorned pointers
+    - x86/nospec: Fix header guards names
+    - x86/bugs: Drop one "mitigation" from dmesg
+    - x86/cpu/bugs: Make retpoline module warning conditional
+    - x86/cpufeatures: Clean up Spectre v2 related CPUID flags
+    - x86/retpoline: Simplify vmexit_fill_RSB()
+    - x86/speculation: Simplify indirect_branch_prediction_barrier()
+    - auxdisplay: img-ascii-lcd: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - iio: adc/accel: Fix up module licenses
+    - pinctrl: pxa: pxa2xx: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - ASoC: pcm512x: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - KVM: nVMX: Eliminate vmcs02 pool
+    - KVM: VMX: introduce alloc_loaded_vmcs
+    - objtool: Improve retpoline alternative handling
+    - objtool: Add support for alternatives at the end of a section
+    - objtool: Warn on stripped section symbol
+    - x86/mm: Fix overlap of i386 CPU_ENTRY_AREA with FIX_BTMAP
+    - x86/spectre: Check CONFIG_RETPOLINE in command line parser
+    - x86/entry/64: Remove the SYSCALL64 fast path
+    - x86/entry/64: Push extra regs right away
+    - x86/asm: Move 'status' from thread_struct to thread_info
+    - Documentation: Document array_index_nospec
+    - array_index_nospec: Sanitize speculative array de-references
+    - x86: Implement array_index_mask_nospec
+    - x86: Introduce barrier_nospec
+    - x86: Introduce __uaccess_begin_nospec() and uaccess_try_nospec
+    - x86/usercopy: Replace open coded stac/clac with __uaccess_{begin, end}
+    - x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec
+    - x86/get_user: Use pointer masking to limit speculation
+    - x86/syscall: Sanitize syscall table de-references under speculation
+    - vfs, fdtable: Prevent bounds-check bypass via speculative execution
+    - nl80211: Sanitize array index in parse_txq_params
+    - x86/spectre: Report get_user mitigation for spectre_v1
+    - x86/spectre: Fix spelling mistake: "vunerable"-> "vulnerable"
+    - x86/cpuid: Fix up "virtual" IBRS/IBPB/STIBP feature bits on Intel
+    - x86/speculation: Use Indirect Branch Prediction Barrier in context switch
+    - x86/paravirt: Remove 'noreplace-paravirt' cmdline option
+    - KVM: VMX: make MSR bitmaps per-VCPU
+    - x86/kvm: Update spectre-v1 mitigation
+    - x86/retpoline: Avoid retpolines for built-in __init functions
+    - x86/spectre: Simplify spectre_v2 command line parsing
+    - x86/pti: Mark constant arrays as __initconst
+    - x86/speculation: Fix typo IBRS_ATT, which should be IBRS_ALL
+    - KVM/x86: Update the reverse_cpuid list to include CPUID_7_EDX
+    - KVM/x86: Add IBPB support
+    - KVM/VMX: Emulate MSR_IA32_ARCH_CAPABILITIES
+    - KVM/VMX: Allow direct access to MSR_IA32_SPEC_CTRL
+    - KVM/SVM: Allow direct access to MSR_IA32_SPEC_CTRL
+    - serial: core: mark port as initialized after successful IRQ change
+    - fpga: region: release of_parse_phandle nodes after use
+    - Linux 4.15.2
+
+  * Add support for the NIC on SynQuacer E-Series boards (LP: #1747792)
+    - net: phy: core: remove now uneeded disabling of interrupts
+    - [Config] CONFIG_NET_VENDOR_SOCIONEXT=y & CONFIG_SNI_NETSEC=m
+    - net: socionext: Add Synquacer NetSec driver
+    - net: socionext: include linux/io.h to fix build
+    - net: socionext: Fix error return code in netsec_netdev_open()
+
+  * [Artful/Bionic] [Config] enable EDAC_GHES for ARM64 (LP: #1747746)
+    - [Config] CONFIG_EDAC_GHES=y
+
+  * support thunderx2 vendor pmu events (LP: #1747523)
+    - perf pmu: Pass pmu as a parameter to get_cpuid_str()
+    - perf tools arm64: Add support for get_cpuid_str function.
+    - perf pmu: Add helper function is_pmu_core to detect PMU CORE devices
+    - perf vendor events arm64: Add ThunderX2 implementation defined pmu core
+      events
+    - perf pmu: Add check for valid cpuid in perf_pmu__find_map()
+
+  * linux 4.14.0-7.9 ADT test failure with linux 4.14.0-7.9 (LP: #1732463)
+    - SAUCE: mm: disable vma based swap readahead by default
+    - SAUCE: mm: fix memory hotplug in ZONE_HIGHMEM
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Fix CONFIG_PROFILE_ALL_BRANCHES annotations
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 07 Feb 2018 21:13:27 -0600
+
+linux (4.15.0-7.8) bionic; urgency=medium
+
+  * Bionic update to v4.15.1 stable release (LP: #1747169)
+    - Bluetooth: hci_serdev: Init hci_uart proto_lock to avoid oops
+    - tools/gpio: Fix build error with musl libc
+    - gpio: stmpe: i2c transfer are forbiden in atomic context
+    - gpio: Fix kernel stack leak to userspace
+    - ALSA: hda - Reduce the suspend time consumption for ALC256
+    - crypto: ecdh - fix typo in KPP dependency of CRYPTO_ECDH
+    - crypto: aesni - handle zero length dst buffer
+    - crypto: aesni - fix typo in generic_gcmaes_decrypt
+    - crypto: aesni - add wrapper for generic gcm(aes)
+    - crypto: aesni - Fix out-of-bounds access of the data buffer in generic-gcm-
+      aesni
+    - crypto: aesni - Fix out-of-bounds access of the AAD buffer in generic-gcm-
+      aesni
+    - crypto: inside-secure - fix hash when length is a multiple of a block
+    - crypto: inside-secure - avoid unmapping DMA memory that was not mapped
+    - crypto: sha3-generic - fixes for alignment and big endian operation
+    - crypto: af_alg - whitelist mask and type
+    - HID: wacom: EKR: ensure devres groups at higher indexes are released
+    - HID: wacom: Fix reporting of touch toggle (WACOM_HID_WD_MUTE_DEVICE) events
+    - power: reset: zx-reboot: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - gpio: iop: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - gpio: ath79: add missing MODULE_DESCRIPTION/LICENSE
+    - mtd: nand: denali_pci: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
+    - igb: Free IRQs when device is hotplugged
+    - ima/policy: fix parsing of fsuuid
+    - scsi: aacraid: Fix udev inquiry race condition
+    - scsi: aacraid: Fix hang in kdump
+    - scsi: storvsc: missing error code in storvsc_probe()
+    - staging: lustre: separate a connection destroy from free struct kib_conn
+    - staging: ccree: NULLify backup_info when unused
+    - staging: ccree: fix fips event irq handling build
+    - tty: fix data race between tty_init_dev and flush of buf
+    - usb: option: Add support for FS040U modem
+    - USB: serial: pl2303: new device id for Chilitag
+    - USB: cdc-acm: Do not log urb submission errors on disconnect
+    - CDC-ACM: apply quirk for card reader
+    - USB: serial: io_edgeport: fix possible sleep-in-atomic
+    - usbip: prevent bind loops on devices attached to vhci_hcd
+    - usbip: list: don't list devices attached to vhci_hcd
+    - USB: serial: simple: add Motorola Tetra driver
+    - usb: f_fs: Prevent gadget unbind if it is already unbound
+    - usb: uas: unconditionally bring back host after reset
+    - usb/gadget: Fix "high bandwidth" check in usb_gadget_ep_match_desc()
+    - ANDROID: binder: remove waitqueue when thread exits.
+    - android: binder: use VM_ALLOC to get vm area
+    - mei: me: allow runtime pm for platform with D0i3
+    - serial: 8250_of: fix return code when probe function fails to get reset
+    - serial: 8250_uniphier: fix error return code in uniphier_uart_probe()
+    - serial: 8250_dw: Revert "Improve clock rate setting"
+    - serial: imx: Only wakeup via RTSDEN bit if the system has RTS/CTS
+    - spi: imx: do not access registers while clocks disabled
+    - iio: adc: stm32: fix scan of multiple channels with DMA
+    - iio: chemical: ccs811: Fix output of IIO_CONCENTRATION channels
+    - test_firmware: fix missing unlock on error in config_num_requests_store()
+    - Input: synaptics-rmi4 - unmask F03 interrupts when port is opened
+    - Input: synaptics-rmi4 - do not delete interrupt memory too early
+    - x86/efi: Clarify that reset attack mitigation needs appropriate userspace
+    - Linux 4.15.1
+
+  * Dell XPS 13 9360 bluetooth (Atheros) won't connect after resume
+    (LP: #1744712)
+    - Revert "Bluetooth: btusb: fix QCA Rome suspend/resume"
+    - Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten"
+      version
+
+  * apparmor profile load in stacked policy container fails (LP: #1746463)
+    - SAUCE: apparmor: fix display of .ns_name for containers
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 04 Feb 2018 11:56:32 +0100
+
+linux (4.15.0-6.7) bionic; urgency=low
+
+  * upload urgency should be medium by default (LP: #1745338)
+    - [Packaging] update urgency to medium by default
+
+  * Shutdown hang on 16.04 with iscsi targets (LP: #1569925)
+    - scsi: libiscsi: Allow sd_shutdown on bad transport
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.5-1ubuntu1, zfs to 0.7.5-1ubuntu1
+    - Revert "UBUNTU: SAUCE: mm: fix memory hotplug in ZONE_HIGHMEM"
+    - Revert "UBUNTU: SAUCE: mm: disable vma based swap readahead by default"
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 29 Jan 2018 08:47:07 -0600
+
+linux (4.15.0-5.6) bionic; urgency=low
+
+  * $(LOCAL_ENV_CC) and $(LOCAL_ENV_DISTCC_HOSTS) should be properly quoted
+    (LP: #1744077)
+    - [Debian] pass LOCAL_ENV_CC and LOCAL_ENV_DISTCC_HOSTS properly
+
+  * Missing install-time driver for QLogic QED 25/40/100Gb Ethernet NIC
+    (LP: #1743638)
+    - [d-i] Add qede to nic-modules udeb
+
+  * boot failure on AMD Raven + WesternXT (LP: #1742759)
+    - SAUCE: drm/amdgpu: add atpx quirk handling (v2)
+
+  * Unable to handle kernel NULL pointer dereference at isci_task_abort_task
+    (LP: #1726519)
+    - SAUCE: Revert "scsi: libsas: allow async aborts"
+
+  * Update Ubuntu-4.15.0 config to support Intel Atom devices (LP: #1739939)
+    - [Config] CONFIG_SERIAL_DEV_BUS=y, CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+
+  * Miscellaneous Ubuntu changes
+    - Rebase to v4.15-rc7
+    - [Config] CONFIG_CPU_ISOLATION=y
+    - [Config] Update annotations following config review
+    - Revert "UBUNTU: SAUCE: Import aufs driver"
+    - SAUCE: Import aufs driver
+    - ubuntu: vbox -- update to 5.2.6-dfsg-1
+    - ubuntu: vbox: build fixes for 4.15
+    - ubuntu: vbox -- update to 5.2.6-dfsg-2
+    - hio: updates for timer api changes in 4.15
+    - enable hio build
+    - Rebase to v4.15-rc9
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc9
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 22 Jan 2018 10:16:05 -0600
+
+linux (4.15.0-4.5) bionic; urgency=low
+
+  * [0cf3:e010] QCA6174A XR failed to pair with bt 4.0 device  (LP: #1741166)
+    - SAUCE: Bluetooth: btusb: Add support for 0cf3:e010
+
+  * External HDMI monitor failed to show screen on Lenovo X1 series
+    (LP: #1738523)
+    - SAUCE: drm/i915: Disable writing of TMDS_OE on Lenovo ThinkPad X1 series
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] autoreconstruct - add resoration of execute permissions
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 10 Jan 2018 10:24:22 -0600
+
+linux (4.15.0-3.4) bionic; urgency=low
+
+  * ubuntu/xr-usb-serial didn't get built in zesty and artful (LP: #1733281)
+    - SAUCE: make sure ubuntu/xr-usb-serial builds for x86
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 03 Jan 2018 20:20:43 -0600
+
+linux (4.15.0-2.3) bionic; urgency=low
+
+  * nvidia-graphics-drivers-384 384.90-0ubuntu6 ADT test failure with linux
+    4.15.0-1.2 (LP: #1737752)
+    - x86/mm: Unbreak modules that use the DMA API
+
+  * Ubuntu 17.10 corrupting BIOS - many LENOVO laptops models (LP: #1734147)
+    - [Config] CONFIG_SPI_INTEL_SPI_*=n
+
+  * power: commonise configs IBMVETH/IBMVSCSI and ensure both are in linux-image
+    and udebs (LP: #1521712)
+    - [Config] Include ibmvnic in nic-modules
+
+  * Enable arm64 emulation of removed ARMv7 instructions (LP: #1545542)
+    - [Config] Enable support for emulation of deprecated ARMv8 instructions
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl with 4.15 compat fix (LP:#1737761)
+    - Enable zfs build
+    - [Debian] add icp to zfs-modules.ignore
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 18 Dec 2017 09:27:13 -0600
+
+linux (4.15.0-1.2) bionic; urgency=low
+
+  * Disabling zfs does not always disable module checks for the zfs modules
+    (LP: #1737176)
+    - [Packaging] disable zfs module checks when zfs is disabled
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_UNWINDER_FRAME_POINTER=y for amd64
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 10 Dec 2017 22:07:19 -0600
+
+linux (4.15.0-0.1) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu: vbox -- update to 5.2.2-dfsg-2
+    - ubuntu: vbox: build fixes for 4.15
+    - disable hio build
+    - [Config] Update kernel lockdown options to fix build errors
+    - Disable zfs build
+    - SAUCE: Import aufs driver
+    - [Config] Enable AUFS config options
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.15-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 08 Dec 2017 13:55:42 -0600
+
+linux (4.14.0-11.13) bionic; urgency=low
+
+  * linux: 4.14.0-11.13 -proposed tracker (LP: #1736168)
+
+  * CVE-2017-1000405
+    - mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
+
+  * linux 4.14.0-7.9 ADT test failure with linux 4.14.0-7.9 (LP: #1732463)
+    - SAUCE: mm: disable vma based swap readahead by default
+    - SAUCE: mm: fix memory hotplug in ZONE_HIGHMEM
+
+  * Bionic update to v4.14.3 stable release (LP: #1735843)
+    - s390: fix transactional execution control register handling
+    - s390/noexec: execute kexec datamover without DAT
+    - s390/runtime instrumention: fix possible memory corruption
+    - s390/guarded storage: fix possible memory corruption
+    - s390/disassembler: add missing end marker for e7 table
+    - s390/disassembler: increase show_code buffer size
+    - ACPI / PM: Fix acpi_pm_notifier_lock vs flush_workqueue() deadlock
+    - ACPI / EC: Fix regression related to triggering source of EC event handling
+    - cpufreq: schedutil: Reset cached_raw_freq when not in sync with next_freq
+    - serdev: fix registration of second slave
+    - sched: Make resched_cpu() unconditional
+    - lib/mpi: call cond_resched() from mpi_powm() loop
+    - x86/boot: Fix boot failure when SMP MP-table is based at 0
+    - x86/decoder: Add new TEST instruction pattern
+    - x86/entry/64: Fix entry_SYSCALL_64_after_hwframe() IRQ tracing
+    - x86/entry/64: Add missing irqflags tracing to native_load_gs_index()
+    - perf/x86/intel: Hide TSX events when RTM is not supported
+    - arm64: Implement arch-specific pte_access_permitted()
+    - ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
+    - ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
+    - uapi: fix linux/tls.h userspace compilation error
+    - uapi: fix linux/rxrpc.h userspace compilation errors
+    - MIPS: cmpxchg64() and HAVE_VIRT_CPU_ACCOUNTING_GEN don't work for 32-bit SMP
+    - MIPS: ralink: Fix MT7628 pinmux
+    - MIPS: ralink: Fix typo in mt7628 pinmux function
+    - net: mvneta: fix handling of the Tx descriptor counter
+    - nbd: wait uninterruptible for the dead timeout
+    - nbd: don't start req until after the dead connection logic
+    - PM / OPP: Add missing of_node_put(np)
+    - PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
+    - PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
+    - PCI: hv: Use effective affinity mask
+    - PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF
+    - PCI: Apply Cavium ThunderX ACS quirk to more Root Ports
+    - ALSA: hda: Add Raven PCI ID
+    - dm integrity: allow unaligned bv_offset
+    - dm cache: fix race condition in the writeback mode overwrite_bio
+      optimisation
+    - dm crypt: allow unaligned bv_offset
+    - dm zoned: ignore last smaller runt zone
+    - dm mpath: remove annoying message of 'blk_get_request() returned -11'
+    - dm bufio: fix integer overflow when limiting maximum cache size
+    - ovl: Put upperdentry if ovl_check_origin() fails
+    - dm: allocate struct mapped_device with kvzalloc
+    - sched/rt: Simplify the IPI based RT balancing logic
+    - MIPS: pci: Remove KERN_WARN instance inside the mt7620 driver
+    - dm: fix race between dm_get_from_kobject() and __dm_destroy()
+    - dm: discard support requires all targets in a table support discards
+    - MIPS: Fix odd fp register warnings with MIPS64r2
+    - MIPS: Fix MIPS64 FP save/restore on 32-bit kernels
+    - MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
+    - MIPS: Fix an n32 core file generation regset support regression
+    - MIPS: BCM47XX: Fix LED inversion for WRT54GSv1
+    - MIPS: math-emu: Fix final emulation phase for certain instructions
+    - rt2x00usb: mark device removed when get ENOENT usb error
+    - mm/z3fold.c: use kref to prevent page free/compact race
+    - autofs: don't fail mount for transient error
+    - nilfs2: fix race condition that causes file system corruption
+    - fscrypt: lock mutex before checking for bounce page pool
+    - eCryptfs: use after free in ecryptfs_release_messaging()
+    - libceph: don't WARN() if user tries to add invalid key
+    - bcache: check ca->alloc_thread initialized before wake up it
+    - fs: guard_bio_eod() needs to consider partitions
+    - fanotify: fix fsnotify_prepare_user_wait() failure
+    - isofs: fix timestamps beyond 2027
+    - btrfs: change how we decide to commit transactions during flushing
+    - f2fs: expose some sectors to user in inline data or dentry case
+    - NFS: Fix typo in nomigration mount option
+    - NFS: Revert "NFS: Move the flock open mode check into nfs_flock()"
+    - nfs: Fix ugly referral attributes
+    - NFS: Avoid RCU usage in tracepoints
+    - NFS: revalidate "." etc correctly on "open".
+    - nfsd: deal with revoked delegations appropriately
+    - rtlwifi: rtl8192ee: Fix memory leak when loading firmware
+    - rtlwifi: fix uninitialized rtlhal->last_suspend_sec time
+    - iwlwifi: fix firmware names for 9000 and A000 series hw
+    - md: fix deadlock error in recent patch.
+    - md: don't check MD_SB_CHANGE_CLEAN in md_allow_write
+    - Bluetooth: btqcomsmd: Add support for BD address setup
+    - md/bitmap: revert a patch
+    - fsnotify: clean up fsnotify_prepare/finish_user_wait()
+    - fsnotify: pin both inode and vfsmount mark
+    - fsnotify: fix pinning group in fsnotify_prepare_user_wait()
+    - ata: fixes kernel crash while tracing ata_eh_link_autopsy event
+    - ext4: fix interaction between i_size, fallocate, and delalloc after a crash
+    - ext4: prevent data corruption with inline data + DAX
+    - ext4: prevent data corruption with journaling + DAX
+    - ALSA: pcm: update tstamp only if audio_tstamp changed
+    - ALSA: usb-audio: Add sanity checks to FE parser
+    - ALSA: usb-audio: Fix potential out-of-bound access at parsing SU
+    - ALSA: usb-audio: Add sanity checks in v2 clock parsers
+    - ALSA: timer: Remove kernel warning at compat ioctl error paths
+    - ALSA: hda/realtek - Fix ALC275 no sound issue
+    - ALSA: hda: Fix too short HDMI/DP chmap reporting
+    - ALSA: hda - Fix yet remaining issue with vmaster 0dB initialization
+    - ALSA: hda/realtek - Fix ALC700 family no sound issue
+    - ASoC: sun8i-codec: Invert Master / Slave condition
+    - ASoC: sun8i-codec: Fix left and right channels inversion
+    - ASoC: sun8i-codec: Set the BCLK divider
+    - mfd: lpc_ich: Avoton/Rangeley uses SPI_BYT method
+    - fix a page leak in vhost_scsi_iov_to_sgl() error recovery
+    - 9p: Fix missing commas in mount options
+    - fs/9p: Compare qid.path in v9fs_test_inode
+    - net/9p: Switch to wait_event_killable()
+    - scsi: qla2xxx: Suppress a kernel complaint in qla_init_base_qpair()
+    - scsi: sd_zbc: Fix sd_zbc_read_zoned_characteristics()
+    - scsi: lpfc: fix pci hot plug crash in timer management routines
+    - scsi: lpfc: fix pci hot plug crash in list_add call
+    - scsi: lpfc: Fix crash receiving ELS while detaching driver
+    - scsi: lpfc: Fix FCP hba_wqidx assignment
+    - scsi: lpfc: Fix oops if nvmet_fc_register_targetport fails
+    - iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
+    - iscsi-target: Fix non-immediate TMR reference leak
+    - target: fix null pointer regression in core_tmr_drain_tmr_list
+    - target: fix buffer offset in core_scsi3_pri_read_full_status
+    - target: Fix QUEUE_FULL + SCSI task attribute handling
+    - target: Fix caw_sem leak in transport_generic_request_failure
+    - target: Fix quiese during transport_write_pending_qf endless loop
+    - target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
+    - mtd: Avoid probe failures when mtd->dbg.dfs_dir is invalid
+    - mtd: nand: Export nand_reset() symbol
+    - mtd: nand: atmel: Actually use the PM ops
+    - mtd: nand: omap2: Fix subpage write
+    - mtd: nand: Fix writing mtdoops to nand flash.
+    - mtd: nand: mtk: fix infinite ECC decode IRQ issue
+    - mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush sequence
+    - p54: don't unregister leds when they are not initialized
+    - block: Fix a race between blk_cleanup_queue() and timeout handling
+    - raid1: prevent freeze_array/wait_all_barriers deadlock
+    - genirq: Track whether the trigger type has been set
+    - irqchip/gic-v3: Fix ppi-partitions lookup
+    - lockd: double unregister of inetaddr notifiers
+    - KVM: PPC: Book3S HV: Don't call real-mode XICS hypercall handlers if not
+      enabled
+    - KVM: nVMX: set IDTR and GDTR limits when loading L1 host state
+    - KVM: SVM: obey guest PAT
+    - kvm: vmx: Reinstate support for CPUs without virtual NMI
+    - dax: fix PMD faults on zero-length files
+    - dax: fix general protection fault in dax_alloc_inode
+    - SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status
+    - clk: ti: dra7-atl-clock: fix child-node lookups
+    - libnvdimm, dimm: clear 'locked' status on successful DIMM enable
+    - libnvdimm, pfn: make 'resource' attribute only readable by root
+    - libnvdimm, namespace: fix label initialization to use valid seq numbers
+    - libnvdimm, region : make 'resource' attribute only readable by root
+    - libnvdimm, namespace: make 'resource' attribute only readable by root
+    - svcrdma: Preserve CB send buffer across retransmits
+    - IB/srpt: Do not accept invalid initiator port names
+    - IB/cm: Fix memory corruption in handling CM request
+    - IB/hfi1: Fix incorrect available receive user context count
+    - IB/srp: Avoid that a cable pull can trigger a kernel crash
+    - IB/core: Avoid crash on pkey enforcement failed in received MADs
+    - IB/core: Only maintain real QPs in the security lists
+    - NFC: fix device-allocation error return
+    - spi-nor: intel-spi: Fix broken software sequencing codes
+    - i40e: Use smp_rmb rather than read_barrier_depends
+    - igb: Use smp_rmb rather than read_barrier_depends
+    - igbvf: Use smp_rmb rather than read_barrier_depends
+    - ixgbevf: Use smp_rmb rather than read_barrier_depends
+    - i40evf: Use smp_rmb rather than read_barrier_depends
+    - fm10k: Use smp_rmb rather than read_barrier_depends
+    - ixgbe: Fix skb list corruption on Power systems
+    - parisc: Fix validity check of pointer size argument in new CAS
+      implementation
+    - powerpc: Fix boot on BOOK3S_32 with CONFIG_STRICT_KERNEL_RWX
+    - powerpc/mm/radix: Fix crashes on Power9 DD1 with radix MMU and STRICT_RWX
+    - powerpc/perf/imc: Use cpu_to_node() not topology_physical_package_id()
+    - powerpc/signal: Properly handle return value from uprobe_deny_signal()
+    - powerpc/64s: Fix masking of SRR1 bits on instruction fault
+    - powerpc/64s/radix: Fix 128TB-512TB virtual address boundary case allocation
+    - powerpc/64s/hash: Fix 512T hint detection to use >= 128T
+    - powerpc/64s/hash: Fix 128TB-512TB virtual address boundary case allocation
+    - powerpc/64s/hash: Fix fork() with 512TB process address space
+    - powerpc/64s/hash: Allow MAP_FIXED allocations to cross 128TB boundary
+    - media: Don't do DMA on stack for firmware upload in the AS102 driver
+    - media: rc: check for integer overflow
+    - media: rc: nec decoder should not send both repeat and keycode
+    - cx231xx-cards: fix NULL-deref on missing association descriptor
+    - media: v4l2-ctrl: Fix flags field on Control events
+    - media: venus: fix wrong size on dma_free
+    - media: venus: venc: fix bytesused v4l2_plane field
+    - media: venus: reimplement decoder stop command
+    - ARM64: dts: meson-gxl: Add alternate ARM Trusted Firmware reserved memory
+      zone
+    - iwlwifi: fix wrong struct for a000 device
+    - iwlwifi: add a new a000 device
+    - iwlwifi: pcie: sort IDs for the 9000 series for easier comparisons
+    - iwlwifi: add new cards for a000 series
+    - iwlwifi: add new cards for 8265 series
+    - iwlwifi: add new cards for 8260 series
+    - iwlwifi: fix PCI IDs and configuration mapping for 9000 series
+    - iwlwifi: mvm: support version 7 of the SCAN_REQ_UMAC FW command
+    - e1000e: Fix error path in link detection
+    - e1000e: Fix return value test
+    - e1000e: Separate signaling for link check/link up
+    - e1000e: Avoid receiver overrun interrupt bursts
+    - e1000e: fix buffer overrun while the I219 is processing DMA transactions
+    - Linux 4.14.3
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: s390/topology: don't inline cpu_to_node
+    - SAUCE: (noup) Update spl to 0.7.3-1ubuntu1, zfs to 0.7.3-1ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 04 Dec 2017 09:08:07 -0600
+
+linux (4.14.0-10.12) bionic; urgency=low
+
+  * linux: 4.14.0-10.12 -proposed tracker (LP: #1734901)
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Enable the ACPI kernel debugger and acpidbg tool
+    - [Packaging] Include arch/arm64/kernel/ftrace-mod.o in headers package
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 28 Nov 2017 08:46:49 -0600
+
+linux (4.14.0-9.11) bionic; urgency=low
+
+  * linux: 4.14.0-9.11 -proposed tracker (LP: #1734728)
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: (noup) Update spl to 0.7.3-1ubuntu1, zfs to
+      0.7.3-1ubuntu1"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 27 Nov 2017 12:44:48 -0600
+
+linux (4.14.0-8.10) bionic; urgency=low
+
+  * linux: 4.14.0-8.10 -proposed tracker (LP: #1734695)
+
+  * Bionic update to v4.14.2 stable release (LP: #1734694)
+    - bio: ensure __bio_clone_fast copies bi_partno
+    - af_netlink: ensure that NLMSG_DONE never fails in dumps
+    - vxlan: fix the issue that neigh proxy blocks all icmpv6 packets
+    - net: cdc_ncm: GetNtbFormat endian fix
+    - fealnx: Fix building error on MIPS
+    - net/sctp: Always set scope_id in sctp_inet6_skb_msgname
+    - ima: do not update security.ima if appraisal status is not INTEGRITY_PASS
+    - serial: omap: Fix EFR write on RTS deassertion
+    - serial: 8250_fintek: Fix finding base_port with activated SuperIO
+    - tpm-dev-common: Reject too short writes
+    - rcu: Fix up pending cbs check in rcu_prepare_for_idle
+    - mm/pagewalk.c: report holes in hugetlb ranges
+    - ocfs2: fix cluster hang after a node dies
+    - ocfs2: should wait dio before inode lock in ocfs2_setattr()
+    - ipmi: fix unsigned long underflow
+    - mm/page_alloc.c: broken deferred calculation
+    - mm/page_ext.c: check if page_ext is not prepared
+    - coda: fix 'kernel memory exposure attempt' in fsync
+    - ipmi: Prefer ACPI system interfaces over SMBIOS ones
+    - Linux 4.14.2
+
+  * Bionic update to v4.14.1 stable release (LP: #1734693)
+    - EDAC, sb_edac: Don't create a second memory controller if HA1 is not present
+    - dmaengine: dmatest: warn user when dma test times out
+    - media: imon: Fix null-ptr-deref in imon_probe
+    - media: dib0700: fix invalid dvb_detach argument
+    - crypto: dh - Fix double free of ctx->p
+    - crypto: dh - Don't permit 'p' to be 0
+    - crypto: dh - Don't permit 'key' or 'g' size longer than 'p'
+    - crypto: brcm - Explicity ACK mailbox message
+    - USB: early: Use new USB product ID and strings for DbC device
+    - USB: usbfs: compute urb->actual_length for isochronous
+    - USB: Add delay-init quirk for Corsair K70 LUX keyboards
+    - usb: gadget: f_fs: Fix use-after-free in ffs_free_inst
+    - USB: serial: metro-usb: stop I/O after failed open
+    - USB: serial: Change DbC debug device binding ID
+    - USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update
+    - USB: serial: garmin_gps: fix I/O after failed probe and remove
+    - USB: serial: garmin_gps: fix memory leak on probe errors
+    - selftests/x86/protection_keys: Fix syscall NR redefinition warnings
+    - x86/MCE/AMD: Always give panic severity for UC errors in kernel context
+    - platform/x86: peaq-wmi: Add DMI check before binding to the WMI interface
+    - platform/x86: peaq_wmi: Fix missing terminating entry for peaq_dmi_table
+    - HID: cp2112: add HIDRAW dependency
+    - HID: wacom: generic: Recognize WACOM_HID_WD_PEN as a type of pen collection
+    - rpmsg: glink: Add missing MODULE_LICENSE
+    - staging: wilc1000: Fix bssid buffer offset in Txq
+    - staging: sm750fb: Fix parameter mistake in poke32
+    - staging: ccree: fix 64 bit scatter/gather DMA ops
+    - staging: greybus: spilib: fix use-after-free after deregistration
+    - staging: rtl8188eu: Revert 4 commits breaking ARP
+    - spi: fix use-after-free at controller deregistration
+    - sparc32: Add cmpxchg64().
+    - sparc64: mmu_context: Add missing include files
+    - sparc64: Fix page table walk for PUD hugepages
+    - Linux 4.14.1
+
+  * Set PANIC_TIMEOUT=10 on Power Systems (LP: #1730660)
+    - [Config]: Set PANIC_TIMEOUT=10 on ppc64el
+
+  * enable CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH easily confuse users
+    (LP: #1732627)
+    - [Config] CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=n
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.7.3-1ubuntu1, zfs to 0.7.3-1ubuntu1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 27 Nov 2017 07:43:44 -0600
+
+linux (4.14.0-7.9) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: apparmor: add base infastructure for socket mediation
+    - SAUCE: apparmor: af_unix mediation
+    - SAUCE: LSM stacking: procfs: add smack subdir to attrs
+    - SAUCE: LSM stacking: LSM: manage credential security blobs
+    - SAUCE: LSM stacking: LSM: Manage file security blobs
+    - SAUCE: LSM stacking: LSM: manage task security blobs
+    - SAUCE: LSM stacking: LSM: Infrastructure management of the remaining blobs
+    - SAUCE: LSM stacking: LSM: general but not extreme module stacking
+    - SAUCE: LSM stacking: LSM: Complete task_alloc hook
+    - SAUCE: LSM stacking: fixup procsfs: add smack subdir to attrs
+    - SAUCE: LSM stacking: fixup initialize task->security
+    - SAUCE: LSM stacking: fixup: alloc_task_ctx is dead code
+    - SAUCE: LSM stacking: add support for stacking getpeersec_stream
+    - SAUCE: LSM stacking: add stacking support to apparmor network hooks
+    - SAUCE: LSM stacking: fixup apparmor stacking enablement
+    - SAUCE: LSM stacking: fixup stacking kconfig
+    - SAUCE: LSM stacking: allow selecting multiple LSMs using kernel boot params
+    - SAUCE: LSM stacking: provide prctl interface for setting context
+    - SAUCE: LSM stacking: inherit current display LSM
+    - SAUCE: LSM stacking: keep an index for each registered LSM
+    - SAUCE: LSM stacking: verify display LSM
+    - SAUCE: LSM stacking: provide a way to specify the default display lsm
+    - SAUCE: LSM stacking: make sure LSM blob align on 64 bit boundaries
+    - SAUCE: LSM stacking: add /proc/<pid>/attr/display_lsm
+    - SAUCE: LSM stacking: add Kconfig to set default display LSM
+    - SAUCE: LSM stacking: add configs for LSM stacking
+    - SAUCE: LSM stacking: check for invalid zero sized writes
+    - [Config] Run updateconfigs after merging LSM stacking
+    - [Config] CONFIG_AMD_MEM_ENCRYPT=y
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 13 Nov 2017 08:12:08 -0600
+
+linux (4.14.0-6.8) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: add workarounds to enable ZFS for 4.14
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 06 Nov 2017 11:39:00 -0600
+
+linux (4.14.0-5.7) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Fix invocation of dh_prep for dbgsym packages
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 31 Oct 2017 07:07:23 -0500
+
+linux (4.14.0-4.5) bionic; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] virtualbox -- reduce in kernel module versions
+    - vbox-update: Fix up KERN_DIR definitions
+    - ubuntu: vbox -- update to 5.2.0-dfsg-2
+    - [Config] CONFIG_AMD_MEM_ENCRYPT=n
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 30 Oct 2017 13:29:20 -0500
+
+linux (4.14.0-3.4) artful; urgency=low
+
+  * Touchpad and TrackPoint Dose Not Work on Lenovo X1C6 and X280 (LP: #1723986)
+    - SAUCE: Input: synaptics-rmi4 - RMI4 can also use SMBUS version 3
+    - SAUCE: Input: synaptics - Lenovo X1 Carbon 5 should use SMBUS/RMI
+    - SAUCE: Input: synaptics - add Intertouch support on X1 Carbon 6th and X280
+
+  * powerpc/64s: Add workaround for P9 vector CI load issuenext (LP: #1721070)
+    - powerpc/64s: Add workaround for P9 vector CI load issue
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: staging: vboxvideo: Fix reporting invalid suggested-offset-properties
+    - [Config] CONFIG_DRM_VBOXVIDEO=m
+    - SAUCE: Import aufs driver
+    - [Config] Enable aufs
+    - [Config] Reorder annotations file after enabling aufs
+    - vbox-update: Disable imported vboxvideo module
+    - ubuntu: vbox -- update to 5.1.30-dfsg-1
+    - Enable vbox
+    - hio: Use correct sizes when initializing ssd_index_bits* arrays
+    - hio: Update io stat accounting for 4.14
+    - Enable hio
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc5
+  * Rebase to v4.14-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 23 Oct 2017 13:53:52 -0500
+
+linux (4.14.0-2.3) artful; urgency=low
+
+  * [Bug] USB controller failed to respond on Denverton after loading
+    intel_th_pci module (LP: #1715833)
+    - SAUCE: PCI: Disable broken RTIT_BAR of Intel TH
+
+  * CONFIG_DEBUG_FS is not enabled by "make zfcpdump_defconfig" with Ubuntu
+    17.10 (kernel 4.13) (LP: #1719290)
+    - SAUCE: s390: update zfcpdump_defconfig
+
+  * Add installer support for Broadcom BCM573xx network drivers. (LP: #1720466)
+    - d-i: Add bnxt_en to nic-modules.
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Update annotations for 4.14-rc2
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc3
+  * Rebase to v4.14-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 11 Oct 2017 16:04:27 -0500
+
+linux (4.14.0-1.2) artful; urgency=low
+
+  * [Bug] USB 3.1 Gen2 works as 5Gbps (LP: #1720045)
+    - xhci: set missing SuperSpeedPlus Link Protocol bit in roothub descriptor
+
+  * Please make linux-libc-dev Provide: aufs-dev (LP: #1716091)
+    - [Packaging] Add aufs-dev to the Provides: for linux-libc-dev
+
+  * Upgrade to 4.13.0-11.12 in artful amd64 VM breaks display on wayland
+    (LP: #1718679)
+    - [Config] CONFIG_DRM_VBOXVIDEO=n
+
+  * ipmmu-vmsa driver breaks arm64 boots (LP: #1718734)
+    - [Config] Disable CONFIG_IPMMU_VMSA on arm64
+
+  * autopkgtest profile fails to build on armhf (LP: #1717920)
+    - [Packaging] autopkgtest -- disable d-i when dropping flavours
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_I2C_XLP9XX=m
+    - [Packaging] Use SRCPKGNAME rather than hard-coding the source package name
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 29 Sep 2017 09:09:11 -0400
+
+linux (4.14.0-0.1) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - Disable vbox build
+    - Disable hio build
+    - Disable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.14-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 19 Sep 2017 20:22:29 -0500
+
+linux (4.13.0-11.12) artful; urgency=low
+
+  * linux: 4.13.0-11.12 -proposed tracker (LP: #1716699)
+
+  * kernel panic -not syncing: Fatal exception: panic_on_oops (LP: #1708399)
+    - s390/mm: fix local TLB flushing vs. detach of an mm address space
+    - s390/mm: fix race on mm->context.flush_mm
+
+  * CVE-2017-1000251
+    - Bluetooth: Properly check L2CAP config option output buffer length
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 12 Sep 2017 10:18:38 -0500
+
+linux (4.13.0-10.11) artful; urgency=low
+
+  * linux: 4.13.0-10.11 -proposed tracker (LP: #1716287)
+
+  * please add aufs-dkms to the Provides: for the kernel packages (LP: #1716093)
+    - [Packaging] Add aufs-dkms to the Provides: for kernel packages
+
+  * Artful update to v4.13.1 stable release (LP: #1716284)
+    - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
+    - USB: serial: option: add support for D-Link DWM-157 C1
+    - usb: Add device quirk for Logitech HD Pro Webcam C920-C
+    - usb:xhci:Fix regression when ATI chipsets detected
+    - USB: musb: fix external abort on suspend
+    - ANDROID: binder: add padding to binder_fd_array_object.
+    - ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
+    - USB: core: Avoid race of async_completed() w/ usbdev_release()
+    - staging/rts5208: fix incorrect shift to extract upper nybble
+    - staging: ccree: save ciphertext for CTS IV
+    - staging: fsl-dpaa2/eth: fix off-by-one FD ctrl bitmaks
+    - iio: adc: ti-ads1015: fix incorrect data rate setting update
+    - iio: adc: ti-ads1015: fix scale information for ADS1115
+    - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set
+    - iio: adc: ti-ads1015: avoid getting stale result after runtime resume
+    - iio: adc: ti-ads1015: don't return invalid value from buffer setup callbacks
+    - iio: adc: ti-ads1015: add adequate wait time to get correct conversion
+    - driver core: bus: Fix a potential double free
+    - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
+    - binder: free memory on error
+    - crypto: caam/qi - fix compilation with CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
+    - crypto: caam/qi - fix compilation with DEBUG enabled
+    - thunderbolt: Fix reset response_type
+    - fpga: altera-hps2fpga: fix multiple init of l3_remap_lock
+    - intel_th: pci: Add Cannon Lake PCH-H support
+    - intel_th: pci: Add Cannon Lake PCH-LP support
+    - ath10k: fix memory leak in rx ring buffer allocation
+    - drm/vgem: Pin our pages for dmabuf exports
+    - drm/ttm: Fix accounting error when fail to get pages for pool
+    - drm/dp/mst: Handle errors from drm_atomic_get_private_obj_state() correctly
+    - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
+    - Bluetooth: Add support of 13d3:3494 RTL8723BE device
+    - iwlwifi: pci: add new PCI ID for 7265D
+    - dlm: avoid double-free on error path in dlm_device_{register,unregister}
+    - mwifiex: correct channel stat buffer overflows
+    - MCB: add support for SC31 to mcb-lpc
+    - s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs
+    - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
+    - drm/nouveau: Fix error handling in nv50_disp_atomic_commit
+    - workqueue: Fix flag collision
+    - ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme
+    - cs5536: add support for IDE controller variant
+    - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
+    - scsi: sg: recheck MMAP_IO request length with lock held
+    - of/device: Prevent buffer overflow in of_device_modalias()
+    - rtlwifi: Fix memory leak when firmware request fails
+    - rtlwifi: Fix fallback firmware loading
+    - Linux 4.13.1
+
+  * Kernel has trouble recognizing Corsair Strafe RGB keyboard (LP: #1678477)
+    - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
+
+  * SRIOV: warning if unload VFs (LP: #1715073)
+    - PCI: Disable VF decoding before pcibios_sriov_disable() updates resources
+
+  * [Patch] network-i40e:NVM bug fixes (cherrypick from 4.14) (LP: #1715578)
+    - i40e: avoid NVM acquire deadlock during NVM update
+    - i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq
+
+  * [P9,POwer NV] Perf PMU event : pm_br_2path and pm_ld_miss_l1 is counted
+    twice when perf stat is done (perf:) (LP: #1714571)
+    - perf vendor events powerpc: Remove duplicate events
+
+  * Unable to install Ubuntu on the NVMe disk under VMD PCI domain
+    (LP: #1703339)
+    - [Config] Include vmd in storage-core-modules udeb
+
+  * 17.10 fails to boot on POWER9 DD2.0 with Deep stop states (LP: #1715064)
+    - powerpc/powernv: Save/Restore additional SPRs for stop4 cpuidle
+    - powerpc/powernv: Clear PECE1 in LPCR via stop-api only on Hotplug
+    - SAUCE: powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep state
+      offline
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: selftests/seccomp: Support glibc 2.26 siginfo_t.h
+    - Revert "UBUNTU: SAUCE: Import aufs driver"
+    - SAUCE: Import aufs driver
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 10 Sep 2017 17:48:59 -0500
+
+linux (4.13.0-9.10) artful; urgency=low
+
+  * linux: 4.13.0-9.10 -proposed tracker (LP: #1715145)
+
+  * EDAC sbridge: Failed to register device with error -22. (LP: #1714112)
+    - [Config] CONFIG_EDAC_GHES=n
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu: vbox -- update to 5.1.26-dfsg-2
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 05 Sep 2017 07:51:19 -0500
+
+linux (4.13.0-8.9) artful; urgency=low
+
+  * snapd 2.27.3+17.10 ADT test failure with linux 4.13.0-6.7 (LP: #1713103)
+    - SAUCE: apparmor: fix apparmorfs DAC access, permissions
+
+  * enable ARCH_SUNXI (and friends) in arm64 kernel .config (LP: #1701137)
+    - [Config] Enable CONFIG_ARCH_SUNXI and related options for arm64
+
+  * [Bug] Harrisonville: pnd2_edac always fail to load on B1 stepping
+    Harrisonville SDP (LP: #1709257)
+    - EDAC, pnd2: Build in a minimal sideband driver for Apollo Lake
+    - EDAC, pnd2: Mask off the lower four bits of a BAR
+    - EDAC, pnd2: Conditionally unhide/hide the P2SB PCI device to read BAR
+    - EDAC, pnd2: Properly toggle hidden state for P2SB PCI device
+    - SAUCE: i2c: i801: Restore the presence state of P2SB PCI device after
+      reading BAR
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: Import aufs driver"
+    - SAUCE: Import aufs driver
+    - SAUCE: selftests/powerpc: Disable some ptrace selftests
+    - [Config] CONFIG_CRYPTO_DEV_NITROX_CNN55XX=n for s390x
+    - [Config] CONFIG_I2C_SLAVE=n for amd64, i386, ppc64el
+    - [Config] Disable CONFIG_MDIO_* options for s390x
+    - [Config] CONFIG_SCSI_MQ_DEFAULT=n for s390x
+    - [Config] Update annotations for 4.13
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 31 Aug 2017 14:27:09 -0500
+
+linux (4.13.0-7.8) artful; urgency=low
+
+  * linux 4.12.0-11.12 ADT test failure with linux 4.12.0-11.12 (LP: #1710904)
+    - SAUCE: selftests/powerpc: Use snprintf to construct DSCR sysfs interface
+      paths
+
+  * Miscellaneous Ubuntu changes
+    - Revert "UBUNTU: SAUCE: seccomp: log actions even when audit is disabled"
+
+  * Miscellaneous upstream changes
+    - seccomp: Provide matching filter for introspection
+    - seccomp: Sysctl to display available actions
+    - seccomp: Operation for checking if an action is available
+    - seccomp: Sysctl to configure actions that are allowed to be logged
+    - seccomp: Selftest for detection of filter flag support
+    - seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW
+    - seccomp: Action to log before allowing
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 28 Aug 2017 08:12:24 -0500
+
+linux (4.13.0-6.7) artful; urgency=low
+
+  * HID: multitouch: Support ALPS PTP Stick and Touchpad devices (LP: #1712481)
+    - SAUCE: HID: multitouch: Support ALPS PTP stick with pid 0x120A
+
+  * sort ABI files with C.UTF-8 locale (LP: #1712345)
+    - [Packaging] sort ABI files with C.UTF-8 locale
+
+  * igb: Support using Broadcom 54616 as PHY (LP: #1712024)
+    - SAUCE: igb: add support for using Broadcom 54616 as PHY
+
+  * RPT related fixes missing in Ubuntu 16.04.3 (LP: #1709220)
+    - powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes
+    - powerpc/mm/radix: Improve TLB/PWC flushes
+    - powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range
+
+  * Linux 4.12 refuses to load self-signed modules under Secure Boot with
+    properly enrolled keys (LP: #1712168)
+    - SAUCE: (efi-lockdown) MODSIGN: Fix module signature verification
+
+  * [17.10 FEAT] Enable NVMe driver - kernel (LP: #1708432)
+    - [Config] CONFIG_BLK_DEV_NVME=m for s390
+
+  * Artful: 4.12.0-11.12: Boot panic in vlv2_plat_configure_clock+0x3b/0xa0
+    (LP: #1711298)
+    - [Config] CONFIG_INTEL_ATOMISP=n
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: apparmor: af_unix mediation
+
+  * Miscellaneous upstream changes
+    - apparmor: Fix shadowed local variable in unpack_trans_table()
+    - apparmor: Fix logical error in verify_header()
+    - apparmor: Fix an error code in aafs_create()
+    - apparmor: Redundant condition: prev_ns. in [label.c:1498]
+    - apparmor: add the ability to mediate signals
+    - apparmor: add mount mediation
+    - apparmor: cleanup conditional check for label in label_print
+    - apparmor: add support for absolute root view based labels
+    - apparmor: make policy_unpack able to audit different info messages
+    - apparmor: add more debug asserts to apparmorfs
+    - apparmor: add base infastructure for socket mediation
+    - apparmor: move new_null_profile to after profile lookup fns()
+    - apparmor: fix race condition in null profile creation
+    - apparmor: ensure unconfined profiles have dfas initialized
+    - apparmor: fix incorrect type assignment when freeing proxies
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 23 Aug 2017 08:10:38 -0500
+
+linux (4.13.0-5.6) artful; urgency=low
+
+  * Ubuntu17.10 - perf: Update Power9 PMU event JSON files (LP: #1708630)
+    - perf pmu-events: Support additional POWER8+ PVR in mapfile
+    - perf vendor events: Add POWER9 PMU events
+    - perf vendor events: Add POWER9 PVRs to mapfile
+    - SAUCE: perf vendor events powerpc: remove suffix in mapfile
+    - SAUCE: perf vendor events powerpc: Update POWER9 events
+
+  * Disable CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE (LP: #1709171)
+    - [Config] CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=n for ppc64el
+
+  * Please only recommend or suggest initramfs-tools | linux-initramfs-tool for
+    kernels able to boot without initramfs (LP: #1700972)
+    - [Debian] Don't depend on initramfs-tools
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Import aufs driver
+    - SAUCE: aufs -- Add missing argument to loop_switch() call
+    - [Config] Enable aufs
+    - SAUCE: (noup) Update spl to 0.6.5.11-ubuntu1, zfs to 0.6.5.11-1ubuntu3
+    - Enable zfs build
+    - SAUCE: powerpc: Always initialize input array when calling epapr_hypercall()
+    - [Packaging] switch up to debhelper 9
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 15 Aug 2017 09:24:16 -0500
+
+linux (4.13.0-4.5) artful; urgency=low
+
+  * Lenovo Yoga 910 Sensors (LP: #1708120)
+    - SAUCE: (no-up) HID: Add quirk for Lenovo Yoga 910 with ITE Chips
+
+  * Unable to install Ubuntu on the NVMe disk under VMD PCI domain
+    (LP: #1703339)
+    - [Config] Add vmd driver to generic inclusion list
+
+  * Set CONFIG_SATA_HIGHBANK=y on armhf (LP: #1703430)
+    - [Config] CONFIG_SATA_HIGHBANK=y
+
+  * Miscellaneous Ubuntu changes
+    - ubuntu: vbox -- update to 5.1.26-dfsg-1
+    - SAUCE: hio: Build fixes for 4.13
+    - Enable hio build
+    - SAUCE: (noup) Update spl to 0.6.5.11-1, zfs to 0.6.5.11-1ubuntu1
+    - [debian] use all rather than amd64 dkms debs for sync
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc4
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 08 Aug 2017 11:31:48 -0500
+
+linux (4.13.0-3.4) artful; urgency=low
+
+  * Adt tests of src:linux time out often on armhf lxc containers (LP: #1705495)
+    - [Packaging] tests -- reduce rebuild test to one flavour
+    - [Packaging] tests -- reduce rebuild test to one flavour -- use filter
+
+  * snapd 2.26.8+17.10 ADT test failure with linux 4.12.0-6.7 (LP: #1704158)
+    - SAUCE: virtio_net: Revert mergeable buffer handling rework
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 31 Jul 2017 10:08:16 -0500
+
+linux (4.13.0-2.3) artful; urgency=low
+
+  * Change CONFIG_IBMVETH to module (LP: #1704479)
+    - [Config] CONFIG_IBMVETH=m
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 24 Jul 2017 13:58:08 -0500
+
+linux (4.13.0-1.2) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Support sphinx-based kernel documentation
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Thu, 20 Jul 2017 09:18:33 -0500
+
+linux (4.13.0-0.1) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - Disable hio
+    - Disable zfs build
+    - ubuntu: vbox -- update to 5.1.24-dfsg-1
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.13-rc1
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 19 Jul 2017 15:09:31 -0500
+
+linux (4.12.0-7.8) artful; urgency=low
+
+  * ThunderX: soft lockup on 4.8+ kernels when running qemu-efi with vhost=on
+    (LP: #1673564)
+    - arm64: Add a facility to turn an ESR syndrome into a sysreg encoding
+    - KVM: arm/arm64: vgic-v3: Add accessors for the ICH_APxRn_EL2 registers
+    - KVM: arm64: Make kvm_condition_valid32() accessible from EL2
+    - KVM: arm64: vgic-v3: Add hook to handle guest GICv3 sysreg accesses at EL2
+    - KVM: arm64: vgic-v3: Add ICV_BPR1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_IGRPEN1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_EOIR1_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_AP1Rn_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_HPPIR1_EL1 handler
+    - KVM: arm64: vgic-v3: Enable trapping of Group-1 system registers
+    - KVM: arm64: Enable GICv3 Group-1 sysreg trapping via command-line
+    - KVM: arm64: vgic-v3: Add ICV_BPR0_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_IGNREN0_EL1 handler
+    - KVM: arm64: vgic-v3: Add misc Group-0 handlers
+    - KVM: arm64: vgic-v3: Enable trapping of Group-0 system registers
+    - KVM: arm64: Enable GICv3 Group-0 sysreg trapping via command-line
+    - arm64: Add MIDR values for Cavium cn83XX SoCs
+    - arm64: Add workaround for Cavium Thunder erratum 30115
+    - KVM: arm64: vgic-v3: Add ICV_DIR_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_RPR_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_CTLR_EL1 handler
+    - KVM: arm64: vgic-v3: Add ICV_PMR_EL1 handler
+    - KVM: arm64: Enable GICv3 common sysreg trapping via command-line
+    - KVM: arm64: vgic-v3: Log which GICv3 system registers are trapped
+    - KVM: arm64: Log an error if trapping a read-from-write-only GICv3 access
+    - KVM: arm64: Log an error if trapping a write-to-read-only GICv3 access
+
+  * hns: under heavy load, NIC may fail and require reboot (LP: #1704146)
+    - net: hns: Bugfix for Tx timeout handling in hns driver
+
+  * New ACPI identifiers for ThunderX SMMU (LP: #1703437)
+    - iommu/arm-smmu: Plumb in new ACPI identifiers
+
+  * Transparent hugepages should default to enabled=madvise (LP: #1703742)
+    - SAUCE: use CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y as default
+
+  * Artful update to v4.12.1 stable release (LP: #1703858)
+    - driver core: platform: fix race condition with driver_override
+    - RDMA/uverbs: Check port number supplied by user verbs cmds
+    - usb: dwc3: replace %p with %pK
+    - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
+    - usb: usbip: set buffer pointers to NULL after free
+    - Add USB quirk for HVR-950q to avoid intermittent device resets
+    - usb: Fix typo in the definition of Endpoint[out]Request
+    - USB: core: fix device node leak
+    - USB: serial: option: add two Longcheer device ids
+    - USB: serial: qcserial: new Sierra Wireless EM7305 device ID
+    - xhci: Limit USB2 port wake support for AMD Promontory hosts
+    - gfs2: Fix glock rhashtable rcu bug
+    - Add "shutdown" to "struct class".
+    - tpm: Issue a TPM2_Shutdown for TPM2 devices.
+    - tpm: fix a kernel memory leak in tpm-sysfs.c
+    - powerpc/powernv: Fix CPU_HOTPLUG=n idle.c compile error
+    - x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings
+    - sched/fair, cpumask: Export for_each_cpu_wrap()
+    - sched/core: Implement new approach to scale select_idle_cpu()
+    - sched/numa: Use down_read_trylock() for the mmap_sem
+    - sched/numa: Override part of migrate_degrades_locality() when idle balancing
+    - sched/fair: Simplify wake_affine() for the single socket case
+    - sched/numa: Implement NUMA node level wake_affine()
+    - sched/fair: Remove effective_load()
+    - sched/numa: Hide numa_wake_affine() from UP build
+    - xen: avoid deadlock in xenbus driver
+    - crypto: drbg - Fixes panic in wait_for_completion call
+    - Linux 4.12.1
+
+  * cxlflash update request in the Xenial SRU stream (LP: #1702521)
+    - scsi: cxlflash: Combine the send queue locks
+    - scsi: cxlflash: Update cxlflash_afu_sync() to return errno
+    - scsi: cxlflash: Reset hardware queue context via specified register
+    - scsi: cxlflash: Schedule asynchronous reset of the host
+    - scsi: cxlflash: Handle AFU sync failures
+    - scsi: cxlflash: Track pending scsi commands in each hardware queue
+    - scsi: cxlflash: Flush pending commands in cleanup path
+    - scsi: cxlflash: Add scsi command abort handler
+    - scsi: cxlflash: Create character device to provide host management interface
+    - scsi: cxlflash: Separate AFU internal command handling from AFU sync
+      specifics
+    - scsi: cxlflash: Introduce host ioctl support
+    - scsi: cxlflash: Refactor AFU capability checking
+    - scsi: cxlflash: Support LUN provisioning
+    - scsi: cxlflash: Support AFU debug
+    - scsi: cxlflash: Support WS16 unmap
+    - scsi: cxlflash: Remove zeroing of private command data
+    - scsi: cxlflash: Update TMF command processing
+    - scsi: cxlflash: Avoid double free of character device
+    - scsi: cxlflash: Update send_tmf() parameters
+    - scsi: cxlflash: Update debug prints in reset handlers
+
+  * make snap-pkg support (LP: #1700747)
+    - make snap-pkg support
+
+  * Quirk for non-compliant PCI bridge on HiSilicon D05 board (LP: #1698706)
+    - SAUCE: PCI: Support hibmc VGA cards behind a misbehaving HiSilicon bridge
+
+  * arm64: fix crash reading /proc/kcore (LP: #1702749)
+    - fs/proc: kcore: use kcore_list type to check for vmalloc/module address
+    - arm64: mm: select CONFIG_ARCH_PROC_KCORE_TEXT
+
+  * Opal and POWER9 DD2 (LP: #1702159)
+    - SAUCE: powerpc/powernv: Tell OPAL about our MMU mode on POWER9
+
+  * Data corruption with hio driver  (LP: #1701316)
+    - SAUCE: hio: Fix incorrect use of enum req_opf values
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.6.5.10-1, zfs to 0.6.5.10-1ubuntu2
+    - snapcraft.yaml: Sync with xenial
+    - [Config] CONFIG_CAVIUM_ERRATUM_30115=y
+
+  * Miscellaneous upstream changes
+    - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and
+      MokSBState"
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 14 Jul 2017 15:25:41 -0500
+
+linux (4.12.0-6.7) artful; urgency=low
+
+  * update ENA driver to 1.2.0k from net-next (LP: #1701575)
+    - net: ena: change return value for unsupported features unsupported return
+      value
+    - net: ena: add hardware hints capability to the driver
+    - net: ena: change sizeof() argument to be the type pointer
+    - net: ena: add reset reason for each device FLR
+    - net: ena: add support for out of order rx buffers refill
+    - net: ena: allow the driver to work with small number of msix vectors
+    - net: ena: use napi_schedule_irqoff when possible
+    - net: ena: separate skb allocation to dedicated function
+    - net: ena: use lower_32_bits()/upper_32_bits() to split dma address
+    - net: ena: update driver's rx drop statistics
+    - net: ena: update ena driver to version 1.2.0
+
+  * APST gets enabled against explicit kernel option (LP: #1699004)
+    - nvme: explicitly disable APST on quirked devices
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: hio: Update to Huawei ES3000_V2 (2.1.0.40)
+    - SAUCE: hio updates for 4.12
+    - SAUCE: Enable hio build
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 05 Jul 2017 14:23:20 -0500
+
+linux (4.12.0-5.6) artful; urgency=low
+
+  * ERAT invalidate on context switch removal (LP: #1700819)
+    - powerpc: Only do ERAT invalidate on radix context switch on P9 DD1
+
+  * powerpc: Invalidate ERAT on powersave wakeup for POWER9 (LP: #1700521)
+    - SAUCE: powerpc: Invalidate ERAT on powersave wakeup for POWER9
+
+  * Miscellaneous Ubuntu changes
+    - d-i: Move qcom-emac from arm64 to shared nic-modules
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 03 Jul 2017 07:52:02 -0500
+
+linux (4.12.0-4.5) artful; urgency=low
+
+  * aacraid driver may return uninitialized stack data to userspace
+    (LP: #1700077)
+    - SAUCE: scsi: aacraid: Don't copy uninitialized stack memory to userspace
+
+  * KILLER1435-S[0489:e0a2] BT cannot search BT 4.0 device (LP: #1699651)
+    - Bluetooth: btusb: Add support for 0489:e0a2 QCA_ROME device
+
+  * AACRAID for power9 platform (LP: #1689980)
+    - scsi: aacraid: Remove __GFP_DMA for raw srb memory
+    - scsi: aacraid: Fix DMAR issues with iommu=pt
+    - scsi: aacraid: Added 32 and 64 queue depth for arc natives
+    - scsi: aacraid: Set correct Queue Depth for HBA1000 RAW disks
+    - scsi: aacraid: Remove reset support from check_health
+    - scsi: aacraid: Change wait time for fib completion
+    - scsi: aacraid: Log count info of scsi cmds before reset
+    - scsi: aacraid: Print ctrl status before eh reset
+    - scsi: aacraid: Using single reset mask for IOP reset
+    - scsi: aacraid: Rework IOP reset
+    - scsi: aacraid: Add periodic checks to see IOP reset status
+    - scsi: aacraid: Rework SOFT reset code
+    - scsi: aacraid: Rework aac_src_restart
+    - scsi: aacraid: Use correct function to get ctrl health
+    - scsi: aacraid: Make sure ioctl returns on controller reset
+    - scsi: aacraid: Enable ctrl reset for both hba and arc
+    - scsi: aacraid: Add reset debugging statements
+    - scsi: aacraid: Remove reference to Series-9
+    - scsi: aacraid: Update driver version to 50834
+
+  * hibmc driver does not include "pci:" prefix in bus ID (LP: #1698700)
+    - SAUCE: drm: hibmc: Use set_busid function from drm core
+
+  * HiSilicon D05: installer doesn't appear on VGA (LP: #1698954)
+    - d-i: Add hibmc-drm to kernel-image udeb
+
+  * Fix /proc/cpuinfo revision for POWER9 DD2 (LP: #1698844)
+    - SAUCE: powerpc: Fix /proc/cpuinfo revision for POWER9 DD2
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_SATA_MV=n and CONFIG_GENERIC_PHY=n for s390x
+    - [Config] CONFIG_ATA=n for s390x
+    - [Config] Update annotations for 4.12
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 26 Jun 2017 11:27:29 -0500
+
+linux (4.12.0-3.4) artful; urgency=low
+
+  * Miscellaneous upstream changes
+    - ufs: fix the logics for tail relocation
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc6
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 19 Jun 2017 14:50:39 -0500
+
+linux (4.12.0-2.3) artful; urgency=low
+
+  * CVE-2014-9900
+    - SAUCE: (no-up) net: Zeroing the structure ethtool_wolinfo in
+      ethtool_get_wol()
+
+  * System doesn't boot properly on Gigabyte AM4 motherboards (AMD Ryzen)
+    (LP: #1671360)
+    - pinctrl/amd: Use regular interrupt instead of chained
+
+  * extend-diff-ignore should use exact matches (LP: #1693504)
+    - [Packaging] exact extend-diff-ignore matches
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: efi: Don't print secure boot state from the efi stub
+    - ubuntu: vbox -- Update to 5.1.22-dfsg-1
+    - SAUCE: vbox fixes for 4.12
+    - Re-enable virtualbox build
+    - [Config] CONFIG_ORANGEFS_FS=m
+    - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu2, zfs to 0.6.5.9-5ubuntu7
+    - Enable zfs build
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc4
+  * Rebase to v4.12-rc5
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 11 Jun 2017 22:25:13 -0500
+
+linux (4.12.0-1.2) artful; urgency=low
+
+  * Enable Matrox driver for Ubuntu 16.04.3 (LP: #1693337)
+    - [Config] Enable CONFIG_DRM_MGAG200 as module
+
+  * Support low-pin-count devices on Hisilicon SoCs (LP: #1677319)
+    - [Config] CONFIG_LIBIO=y on arm64 only
+    - SAUCE: LIBIO: Introduce a generic PIO mapping method
+    - SAUCE: OF: Add missing I/O range exception for indirect-IO devices
+    - [Config] CONFIG_HISILICON_LPC=y
+    - SAUCE: LPC: Support the device-tree LPC host on Hip06/Hip07
+    - SAUCE: LIBIO: Support the dynamically logical PIO registration of ACPI host
+      I/O
+    - SAUCE: LPC: Add the ACPI LPC support
+    - SAUCE: PCI: Apply the new generic I/O management on PCI IO hosts
+    - SAUCE: PCI: Restore codepath for !CONFIG_LIBIO
+
+  * POWER9: Additional patches for TTY and CPU_IDLE (LP: #1674325)
+    - SAUCE: tty: Fix ldisc crash on reopened tty
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Add build-dep on libnuma-dev to enable 'perf bench numa'
+    - Rebase to v4.12-rc3
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc3
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Mon, 29 May 2017 20:56:29 -0500
+
+linux (4.12.0-0.1) artful; urgency=low
+
+  * please enable CONFIG_ARM64_LSE_ATOMICS (LP: #1691614)
+    - [Config] CONFIG_ARM64_LSE_ATOMICS=y
+
+  * [Regression] NUMA_BALANCING disabled on arm64 (LP: #1690914)
+    - [Config] CONFIG_NUMA_BALANCING{,_DEFAULT_ENABLED}=y on arm64
+
+  * exec'ing a setuid binary from a threaded program sometimes fails to setuid
+    (LP: #1672819)
+    - SAUCE: exec: ensure file system accounting in check_unsafe_exec is correct
+
+  * Miscellaneous Ubuntu changes
+    - Update find-missing-sauce.sh to compare to artful
+    - Update dropped.txt
+    - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode
+    - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been
+      set
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel
+      is locked down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Enable cold boot attack mitigation
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) scsi: Lock down the eata driver
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
+      secondary keyring
+    - SAUCE: (efi-lockdown) efi: Add EFI signature data types
+    - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for
+      MokSBState
+    - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState
+    - [Config] Set values for UEFI secure boot lockdown options
+    - Disable virtualbox build
+    - Disable hio build
+    - SAUCE: securityfs: Replace CURRENT_TIME with current_time()
+    - Disable zfs build
+    - [Debian] Work out upstream tag for use with gen-auto-reconstruct
+    - SAUCE: Import aufs driver
+    - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h
+    - [Config] Enable aufs
+    - SAUCE: perf callchain: Include errno.h on x86 unconditinally
+
+  [ Upstream Kernel Changes ]
+
+  * Rebase to v4.12-rc2
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Sun, 21 May 2017 23:44:44 -0500
+
+linux (4.11.0-3.8) artful; urgency=low
+
+  [ Seth Forshee ]
+
+  * Release Tracking Bug
+    - LP: #1690999
+
+  * apparmor_parser hangs indefinitely when called by multiple threads
+    (LP: #1645037)
+    - SAUCE: apparmor: fix lock ordering for mkdir
+
+  * apparmor leaking securityfs pin count (LP: #1660846)
+    - SAUCE: apparmor: fix leak on securityfs pin count
+
+  * apparmor reference count leak when securityfs_setup_d_inode\ () fails
+    (LP: #1660845)
+    - SAUCE: apparmor: fix reference count leak when securityfs_setup_d_inode()
+      fails
+
+  * apparmor not checking error if security_pin_fs() fails (LP: #1660842)
+    - SAUCE: apparmor: fix not handling error case when securityfs_pin_fs() fails
+
+  * libvirt profile is blocking global setrlimit despite having no rlimit rule
+    (LP: #1679704)
+    - SAUCE: apparmor: fix complain mode failure for rlimit mediation
+    - apparmor: update auditing of rlimit check to provide capability information
+
+  * apparmor: does not provide a way to detect policy updataes (LP: #1678032)
+    - SAUCE: apparmor: add policy revision file interface
+
+  * apparmor does not make support of query data visible (LP: #1678023)
+    - SAUCE: apparmor: add label data availability to the feature set
+
+  * apparmor query interface does not make supported query info available
+    (LP: #1678030)
+    - SAUCE: apparmor: add information about the query inteface to the feature set
+
+  * change_profile incorrect when using namespaces with a compound stack
+    (LP: #1677959)
+    - SAUCE: apparmor: fix label parse for stacked labels
+
+  * Regression in 4.4.0-65-generic causes very frequent system crashes
+    (LP: #1669611)
+    - apparmor: sync of apparmor 3.6+ (17.04)
+
+  * Artful update to 4.11.1 stable release (LP: #1690814)
+    - dm ioctl: prevent stack leak in dm ioctl call
+    - drm/sti: fix GDP size to support up to UHD resolution
+    - power: supply: lp8788: prevent out of bounds array access
+    - brcmfmac: Ensure pointer correctly set if skb data location changes
+    - brcmfmac: Make skb header writable before use
+    - sparc64: fix fault handling in NGbzero.S and GENbzero.S
+    - refcount: change EXPORT_SYMBOL markings
+    - net: macb: fix phy interrupt parsing
+    - tcp: fix access to sk->sk_state in tcp_poll()
+    - geneve: fix incorrect setting of UDP checksum flag
+    - bpf: enhance verifier to understand stack pointer arithmetic
+    - bpf, arm64: fix jit branch offset related to ldimm64
+    - tcp: fix wraparound issue in tcp_lp
+    - net: ipv6: Do not duplicate DAD on link up
+    - net: usb: qmi_wwan: add Telit ME910 support
+    - tcp: do not inherit fastopen_req from parent
+    - ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
+    - rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
+    - ipv6: initialize route null entry in addrconf_init()
+    - ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
+    - tcp: randomize timestamps on syncookies
+    - bnxt_en: allocate enough space for ->ntp_fltr_bmap
+    - bpf: don't let ldimm64 leak map addresses on unprivileged
+    - net: mdio-mux: bcm-iproc: call mdiobus_free() in error path
+    - f2fs: sanity check segment count
+    - xen/arm,arm64: fix xen_dma_ops after 815dd18 "Consolidate get_dma_ops..."
+    - xen: Revert commits da72ff5bfcb0 and 72a9b186292d
+    - block: get rid of blk_integrity_revalidate()
+    - Linux 4.11.1
+
+  * Module signing exclusion for staging drivers does not work properly
+    (LP: #1690908)
+    - SAUCE: Fix module signing exclusion in package builds
+
+  * perf: qcom: Add L3 cache PMU driver (LP: #1689856)
+    - [Config] CONFIG_QCOM_L3_PMU=y
+    - perf: qcom: Add L3 cache PMU driver
+
+  * No PMU support for ACPI-based arm64 systems (LP: #1689661)
+    - drivers/perf: arm_pmu: rework per-cpu allocation
+    - drivers/perf: arm_pmu: manage interrupts per-cpu
+    - drivers/perf: arm_pmu: split irq request from enable
+    - drivers/perf: arm_pmu: remove pointless PMU disabling
+    - drivers/perf: arm_pmu: define armpmu_init_fn
+    - drivers/perf: arm_pmu: fold init into alloc
+    - drivers/perf: arm_pmu: factor out pmu registration
+    - drivers/perf: arm_pmu: simplify cpu_pmu_request_irqs()
+    - drivers/perf: arm_pmu: handle no platform_device
+    - drivers/perf: arm_pmu: rename irq request/free functions
+    - drivers/perf: arm_pmu: split cpu-local irq request/free
+    - drivers/perf: arm_pmu: move irq request/free into probe
+    - drivers/perf: arm_pmu: split out platform device probe logic
+    - arm64: add function to get a cpu's MADT GICC table
+    - [Config] CONFIG_ARM_PMU_ACPI=y
+    - drivers/perf: arm_pmu: add ACPI framework
+    - arm64: pmuv3: handle !PMUv3 when probing
+    - arm64: pmuv3: use arm_pmu ACPI framework
+
+  * Fix NVLINK2 TCE route (LP: #1690155)
+    - powerpc/powernv: Fix TCE kill on NVLink2
+
+  * CVE-2017-0605
+    - tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Restore powerpc arch to annotations file
+    - [Config] Disable runtime testing modules
+    - [Config] Disable drivers not needed on s390x
+    - [Config] Update annotations for 4.11
+    - [Config] updateconfigs after apparmor updates
+
+  * Miscellaneous upstream changes
+    - apparmor: use SHASH_DESC_ON_STACK
+    - apparmor: fix invalid reference to index variable of iterator line 836
+    - apparmor: fix parameters so that the permission test is bypassed at boot
+    - apparmor: Make path_max parameter readonly
+    - apparmorfs: Combine two function calls into one in aa_fs_seq_raw_abi_show()
+    - apparmorfs: Use seq_putc() in two functions
+    - apparmor: provide information about path buffer size at boot
+    - apparmor: add/use fns to print hash string hex value
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 16 May 2017 00:39:13 -0500
+
+linux (4.11.0-2.7) artful; urgency=low
+
+  * kernel-wedge fails in artful due to leftover squashfs-modules d-i files
+    (LP: #1688259)
+    - Remove squashfs-modules files from d-i
+    - [Config] as squashfs-modules is builtin kernel-image must Provides: it
+
+  * [Zesty] d-i: replace msm_emac with qcom_emac (LP: #1677297)
+    - Revert "UBUNTU: d-i: initrd needs msm_emac on amberwing platform."
+    - d-i: initrd needs qcom_emac on amberwing platform.
+
+  * update for V3 kernel bits and improved multiple fan slice support
+    (LP: #1470091)
+    - SAUCE: fan: tunnel multiple mapping mode (v3)
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu1, zfs to 0.6.5.9-5ubuntu5
+    - Enable zfs
+    - SAUCE: fan: add VXLAN implementation
+    - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit
+    - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
+      kernel image
+    - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
+      mode
+    - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
+    - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode
+    - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down
+    - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
+      reboot
+    - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been
+      set
+    - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
+    - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel
+      is locked down
+    - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
+      has been locked down
+    - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
+      locked down
+    - SAUCE: (efi-lockdown) Enable cold boot attack mitigation
+    - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
+      kernel is locked down
+    - SAUCE: (efi-lockdown) scsi: Lock down the eata driver
+    - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
+      down
+    - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
+    - SAUCE: (efi-lockdown) Add EFI signature data types
+    - SAUCE: (efi-lockdown) Add an EFI signature blob parser and key loader.
+    - SAUCE: (efi-lockdown) KEYS: Add a system blacklist keyring
+    - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
+    - SAUCE: (efi-lockdown) MODSIGN: Support not importing certs from db
+    - SAUCE: (efi-lockdown) MODSIGN: Don't try secure boot if EFI runtime is
+      disabled
+    - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
+    - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for
+      MokSBState
+    - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState
+    - [Config] Set values for UEFI secure boot lockdown options
+    - Update dropped.txt
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Fri, 05 May 2017 07:43:14 -0500
+
+linux (4.11.0-1.6) artful; urgency=low
+
+  * Miscellaneous Ubuntu changes
+    - [Debian] Use default compression for all packages
+    - SAUCE: (namespace) block_dev: Support checking inode permissions in
+      lookup_bdev()
+    - SAUCE: (namespace) block_dev: Check permissions towards block device inode
+      when mounting
+    - SAUCE: (namespace) mtd: Check permissions towards mtd block device inode
+      when mounting
+    - SAUCE: (namespace) fs: Allow superblock owner to change ownership of inodes
+    - SAUCE: (namespace) fs: Don't remove suid for CAP_FSETID for userns root
+    - SAUCE: (namespace) fs: Allow superblock owner to access do_remount_sb()
+    - SAUCE: (namespace) capabilities: Allow privileged user in s_user_ns to set
+      security.* xattrs
+    - SAUCE: (namespace) fs: Allow CAP_SYS_ADMIN in s_user_ns to freeze and thaw
+      filesystems
+    - SAUCE: (namespace) fuse: Add support for pid namespaces
+    - SAUCE: (namespace) fuse: Support fuse filesystems outside of init_user_ns
+    - SAUCE: (namespace) fuse: Restrict allow_other to the superblock's namespace
+      or a descendant
+    - SAUCE: (namespace) fuse: Allow user namespace mounts
+    - SAUCE: (namespace) ext4: Add support for unprivileged mounts from user
+      namespaces
+    - SAUCE: (namespace) evm: Don't update hmacs in user ns mounts
+    - SAUCE: (namespace) ext4: Add module parameter to enable user namespace
+      mounts
+    - SAUCE: (namespace) block_dev: Forbid unprivileged mounting when device is
+      opened for writing
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Wed, 26 Apr 2017 10:08:29 -0500
+
+linux (4.11.0-0.5) artful; urgency=low
+
+  * [Hyper-V][SAUCE] pci-hyperv: Use only 16 bit integer for PCI domain
+    (LP: #1684971)
+    - SAUCE: pci-hyperv: Use only 16 bit integer for PCI domain
+
+  * [Hyper-V] Ubuntu 14.04.2 LTS Generation 2 SCSI Errors on VSS Based Backups
+    (LP: #1470250)
+    - SAUCE: Tools: hv: vss: Thaw the filesystem and continue after freeze fails
+
+  * Enable virtual scsi server driver for Power (LP: #1615665)
+    - SAUCE: Return TCMU-generated sense data to fabric module
+
+  * include/linux/security.h header syntax error with !CONFIG_SECURITYFS
+    (LP: #1630990)
+    - SAUCE: (no-up) include/linux/security.h -- fix syntax error with
+      CONFIG_SECURITYFS=n
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: Import aufs driver
+    - [Config] Enable aufs
+    - [Debian] Add script to update virtualbox
+    - ubuntu: vbox -- Update to 5.1.20-dfsg-2
+    - Enable vbox
+    - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc8
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 25 Apr 2017 13:42:54 -0500
+
+linux (4.11.0-0.4) zesty; urgency=low
+
+  * POWER9: Improve performance on memory management (LP: #1681429)
+    - SAUCE: powerpc/mm/radix: Don't do page walk cache flush when doing full mm
+      flush
+    - SAUCE: powerpc/mm/radix: Remove unnecessary ptesync
+
+  * Miscellaneous Ubuntu changes
+    - find-missing-sauce.sh
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc7
+
+ -- Seth Forshee <seth.forshee@canonical.com>  Tue, 18 Apr 2017 08:19:43 -0500
+
+linux (4.11.0-0.3) zesty; urgency=low
+
+  * Disable CONFIG_HVC_UDBG on ppc64el (LP: #1680888)
+    - [Config] Disable CONFIG_HVC_UDBG on ppc64el
+
+  * smartpqi driver needed in initram disk and installer (LP: #1680156)
+    - [Config] Add smartpqi to d-i
+
+  * Disable CONFIG_SECURITY_SELINUX_DISABLE (LP: #1680315)
+    - [Config] CONFIG_SECURITY_SELINUX_DISABLE=n
+
+  * Miscellaneous Ubuntu changes
+    - [Config] flash-kernel should be a Breaks
+    - [Config] drop the info directory
+    - [Config] drop NOTES as obsolete
+    - [Config] drop changelog.historical as obsolete
+    - rebase to v4.11-rc6
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc6
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Tue, 11 Apr 2017 07:16:52 -0600
+
+linux (4.11.0-0.2) zesty; urgency=low
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc5
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Mon, 03 Apr 2017 08:26:07 +0100
+
+linux (4.11.0-0.1) zesty; urgency=low
+
+  [ Upstream Kernel Changes ]
+
+  * rebase to v4.11-rc4
+    - LP: #1591053
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Mon, 20 Mar 2017 05:15:32 -0600
+
+linux (4.11.0-0.0) zesty; urgency=low
+
+  * dummy entry
+
+ -- Tim Gardner <tim.gardner@canonical.com>  Mon, 20 Mar 2017 05:15:32 -0600
--- linux-ein-5.4.0.orig/debian.master/config/README.rst
+++ linux-ein-5.4.0/debian.master/config/README.rst
@@ -0,0 +1,185 @@
+==================
+Config Annotations
+==================
+
+:Author: Andrea Righi
+
+Overview
+========
+
+Each Ubuntu kernel needs to maintain its own .config for each supported
+architecture and each flavour.
+
+Every time a new patch is applied or a kernel is rebased on top of a new
+one, we need to update the .config's accordingly (config options can be
+added, removed and also renamed).
+
+So, we need to make sure that some critical config options are always
+matching the desired value in order to have a functional kernel.
+
+State of the art
+================
+
+At the moment configs are maintained as a set of Kconfig chunks (inside
+`debian.<kernel>/config/`): a global one, plus per-arch / per-flavour
+chunks.
+
+In addition to that, we need to maintain also a file called
+'annotations'; the purpose of this file is to make sure that some
+critical config options are not silently removed or changed when the
+real .config is re-generated (for example after a rebase or after
+applying a new set of patches).
+
+The main problem with this approach is that, often, we have duplicate
+information that is stored both in the Kconfig chunks *and* in the
+annotations files and, at the same time, the whole .config's information
+is distributed between Kconfig chunks and annotations, making it hard to
+maintain, review and manage in general.
+
+Proposed solution
+=================
+
+The proposed solution is to store all the config information into the
+"annotations" format and get rid of the config chunks (basically the
+real .config's can be produced "compiling" annotations).
+
+Implementation
+==============
+
+To help the management of the annotations an helper script is provided
+(`debian/scripts/misc/annotations`):
+
+```
+usage: annotations [-h] [--version] [--file FILE] [--arch ARCH] [--flavour FLAVOUR] [--config CONFIG]
+                   (--query | --export | --import FILE | --update FILE | --check FILE)
+
+Manage Ubuntu kernel .config and annotations
+
+options:
+  -h, --help            show this help message and exit
+  --version, -v         show program's version number and exit
+  --file FILE, -f FILE  Pass annotations or .config file to be parsed
+  --arch ARCH, -a ARCH  Select architecture
+  --flavour FLAVOUR, -l FLAVOUR
+                        Select flavour (default is "generic")
+  --config CONFIG, -c CONFIG
+                        Select a specific config option
+
+Action:
+  --query, -q           Query annotations
+  --export, -e          Convert annotations to .config format
+  --import FILE, -i FILE
+                        Import a full .config for a specific arch and flavour into annotations
+  --update FILE, -u FILE
+                        Import a partial .config into annotations (only resync configs specified in FILE)
+  --check FILE, -k FILE
+                        Validate kernel .config with annotations
+```
+
+This script allows to query config settings (per arch/flavour/config),
+export them into the Kconfig format (generating the real .config files)
+and check if the final .config matches the rules defined in the
+annotations.
+
+Examples (annotations is defined as an alias to `debian/scripts/annotations`):
+
+ - Show settings for `CONFIG_DEBUG_INFO_BTF` for master kernel across all the
+   supported architectures and flavours:
+
+```
+$ annotations --query --config CONFIG_DEBUG_INFO_BTF
+{
+    "policy": {
+        "amd64": "y",
+        "arm64": "y",
+        "armhf": "n",
+        "ppc64el": "y",
+        "riscv64": "y",
+        "s390x": "y"
+    },
+    "note": "'Needs newer pahole for armhf'"
+}
+```
+
+ - Dump kernel .config for arm64 and flavour generic-64k:
+
+```
+$ annotations --arch arm64 --flavour generic-64k --export
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_COMPAT=y
+...
+```
+
+ - Update annotations file with a new kernel .config for amd64 flavour
+   generic:
+
+```
+$ annotations --arch amd64 --flavour generic --import build/.config
+```
+
+Moreover, an additional kernelconfig commands are provided
+(via debian/rules targets):
+ - `migrateconfigs`: automatically merge all the previous configs into
+   annotations (local changes still need to be committed)
+
+Annotations headers
+===================
+
+The main annotations file should contain a header to define the architectures
+and flavours that are supported.
+
+Here is the format of the header for the generic kernel:
+```
+# Menu: HEADER
+# FORMAT: 4
+# ARCH: amd64 arm64 armhf ppc64el riscv64 s390x
+# FLAVOUR: amd64-generic arm64-generic arm64-generic-64k armhf-generic armhf-generic-lpae ppc64el-generic riscv64-generic s390x-generic
+
+```
+
+Example header of a derivative (linux-aws):
+```
+# Menu: HEADER
+# FORMAT: 4
+# ARCH: amd64 arm64
+# FLAVOUR: amd64-aws arm64-aws
+# FLAVOUR_DEP: {'amd64-aws': 'amd64-generic', 'arm64-aws': 'arm64-generic'}
+
+include "../../debian.master/config/annotations"
+
+# Below you can define only the specific linux-aws configs that differ from linux generic
+
+```
+
+Pros and Cons
+=============
+
+ Pros:
+  - avoid duplicate information in .config's and annotations
+  - allow to easily define groups of config settings (for a specific
+    environment or feature, such as annotations.clouds, annotations.ubuntu,
+    annotations.snapd, etc.)
+  - config options are more accessible, easy to change and review
+  - we can easily document how config options are managed (and external
+    contributors won't be discouraged anymore when they need to to change a
+    config option)
+
+ Cons:
+  - potential regressions: the new tool/scripts can have potential bugs,
+    so we could experience regressions due to some missed config changes
+  - kernel team need to understand the new process (even if everything
+    is transparent, kernel cranking process is the same, there might be
+    corner cases that need to be addressed and resolved manually)
+
+TODO
+====
+
+ - Migrate all flavour and arch definitions into annotations (rather
+   than having this information defined in multiple places inside
+   debian/scripts); right now this information is "partially" migrated,
+   meaning that we need to define arches and flavours in the headers
+   section of annotations (so that the annotations tool can figure out
+   the list of supported arches and flavours), but arches and flavours
+   are still defined elsewhere, ideally we would like to have arches and
+   flavours defined only in one place: annotations.
--- linux-ein-5.4.0.orig/debian.master/config/annotations
+++ linux-ein-5.4.0/debian.master/config/annotations
@@ -0,0 +1,12859 @@
+# Menu: HEADER
+# FORMAT: 4
+# ARCH: amd64 arm64 armhf i386 ppc64el s390x
+# FLAVOUR: amd64-generic amd64-lowlatency arm64-generic armhf-generic armhf-generic-lpae i386-generic i386-lowlatency ppc64el-generic s390x-generic
+
+CONFIG_ACPI_CUSTOM_DSDT_FILE                    policy<{'amd64': '""', 'i386': '""'}>
+CONFIG_ACPI_CUSTOM_DSDT_FILE                    note<'might allow hardware damage'>
+
+CONFIG_ACPI_CUSTOM_METHOD                       policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_CUSTOM_METHOD                       note<'SECURITY: allows arbitrary execution'>
+
+CONFIG_AGP                                      policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AGP                                      note<'not autoloadable'>
+
+CONFIG_ARCH_ROCKCHIP                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_ROCKCHIP                            note<'LP:1566283 / LP:1825222'>
+
+CONFIG_ARCH_TANGO                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_TANGO                               note<'LP:1787945'>
+
+CONFIG_ARCH_ZX                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARCH_ZX                                  note<'LP:1628503'>
+
+CONFIG_ARM64_ERRATUM_843419                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_843419                     note<'LP:1647793'>
+
+CONFIG_ARM64_ERRATUM_858921                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_858921                     note<'LP#1675509'>
+
+CONFIG_ARM64_LSE_ATOMICS                        policy<{'arm64': 'y'}>
+CONFIG_ARM64_LSE_ATOMICS                        note<'LP:1691614'>
+
+CONFIG_ARM64_VA_BITS_48                         policy<{'arm64': 'y'}>
+CONFIG_ARM64_VA_BITS_48                         note<'Cavium ThunderX 2-socket needs a minimum of 41 bits of VA'>
+
+CONFIG_ARMV8_DEPRECATED                         policy<{'arm64': 'y'}>
+CONFIG_ARMV8_DEPRECATED                         note<'LP:1545542'>
+
+CONFIG_ARM_HIGHBANK_CPUIDLE                     policy<{'armhf-generic': 'n', 'armhf-generic-lpae': 'y'}>
+CONFIG_ARM_HIGHBANK_CPUIDLE                     note<'broken on ecx-1000'>
+
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT       policy<{'arm64': 'n'}>
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT       note<'LP:1845820'>
+
+CONFIG_ASYMMETRIC_KEY_TYPE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASYMMETRIC_KEY_TYPE                      note<'module signing'>
+
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE            note<'module signing'>
+
+CONFIG_ATA_PIIX                                 policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_ATA_PIIX                                 note<'LP:1627324'>
+
+CONFIG_AUFS_EXPORT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_EXPORT                              note<'LP:1121699'>
+
+CONFIG_BINFMT_SCRIPT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BINFMT_SCRIPT                            note<'required if init is a shell script such as in initramfs-tools'>
+
+CONFIG_BLK_DEV_DM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_DM                               note<'LP:#560717'>
+
+CONFIG_BLK_DEV_NVME                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_NVME                             note<'LP:#1759893'>
+
+CONFIG_BLK_DEV_RAM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_RAM                              note<'LP #1593293'>
+
+CONFIG_BLK_DEV_RAM_SIZE                         policy<{'amd64': '65536', 'arm64': '65536', 'armhf': '65536', 'i386': '65536', 'ppc64el': '65536', 's390x': '65536'}>
+CONFIG_BLK_DEV_RAM_SIZE                         note<'Ramdisk size should be a minimum of 64M'>
+
+CONFIG_BLK_DEV_SD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_SD                               note<'LP:1627330'>
+
+CONFIG_BLK_DEV_SR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_SR                               note<'LP:1627330'>
+
+CONFIG_BLK_DEV_THROTTLING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_THROTTLING                       note<'CGROUP disk consumption control'>
+
+CONFIG_BLK_DEV_UMEM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_UMEM                             note<'experimental NVRAM disk driver -- opt-in'>
+
+CONFIG_BT_HS                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BT_HS                                    note<'https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00435.html'>
+
+CONFIG_CHR_DEV_SG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CHR_DEV_SG                               note<'not autoloadable'>
+
+CONFIG_CMA_SIZE_MBYTES                          policy<{'arm64': '32', 'armhf': '32'}>
+CONFIG_CMA_SIZE_MBYTES                          note<'LP:1823753'>
+
+CONFIG_COMPAT_BRK                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_COMPAT_BRK                               note<'disables brk ASLR'>
+
+CONFIG_CP15_BARRIER_EMULATION                   policy<{'arm64': 'y'}>
+CONFIG_CP15_BARRIER_EMULATION                   note<'LP:1545542'>
+
+CONFIG_CPUFREQ_DT                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CPUFREQ_DT                               note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE         note<'for bootspeed'>
+
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE                note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_GOV_ONDEMAND                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_ONDEMAND                    note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_GOV_PERFORMANCE                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_PERFORMANCE                 note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_GOV_POWERSAVE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_POWERSAVE                   note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_GOV_USERSPACE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_USERSPACE                   note<'not autoloadable'>
+
+CONFIG_CPU_FREQ_STAT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_STAT                            note<'dependancy of boot essential'>
+
+CONFIG_CRASH_DUMP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRASH_DUMP                               note<'LP:1363180'>
+
+CONFIG_CRYPTO_SHA512                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SHA512                            note<'module signing'>
+
+CONFIG_CS5535_MFGPT                             policy<{'i386': 'n'}>
+CONFIG_CS5535_MFGPT                             note<'should be disabled by default'>
+
+CONFIG_DEBUG_FS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_FS                                 note<'required debug option'>
+
+CONFIG_DEBUG_INFO                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_INFO                               note<'required for debug packages'>
+
+CONFIG_DEBUG_INFO_SPLIT                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_INFO_SPLIT                         note<'LP:1413646 and LP:1413664'>
+
+CONFIG_DEBUG_KERNEL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_KERNEL                             note<'required debug option'>
+
+CONFIG_DEFAULT_MMAP_MIN_ADDR                    policy<{'amd64': '65536', 'arm64': '32768', 'armhf': '32768', 'i386': '65536', 'ppc64el': '65536', 's390x': '65536'}>
+CONFIG_DEFAULT_MMAP_MIN_ADDR                    note<'LP:1418140 LP:1531327'>
+
+CONFIG_DEVKMEM                                  policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEVKMEM                                  note<'/dev/kmem is a large attack vector'>
+
+CONFIG_DEVTMPFS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEVTMPFS                                 note<'upstart requirement'>
+
+CONFIG_DEVTMPFS_MOUNT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEVTMPFS_MOUNT                           note<'upstart requirement'>
+
+CONFIG_DMA_CMA                                  policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 's390x': 'n'}>
+CONFIG_DMA_CMA                                  note<'LP:1803206'>
+
+CONFIG_DRM_AMDGPU_CIK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_AMDGPU_CIK                           note<'LP:1661887 for zesty'>
+
+CONFIG_DRM_BOCHS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_BOCHS                                note<'LP#1916290'>
+
+CONFIG_DRM_HISI_HIBMC                           policy<{'arm64': 'm'}>
+CONFIG_DRM_HISI_HIBMC                           note<'LP:1762940'>
+
+CONFIG_DRM_LEGACY                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_LEGACY                               note<'Consider re-enabling but not signing the modules'>
+
+CONFIG_DRM_MGAG200                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_MGAG200                              note<'LP#1693337'>
+
+CONFIG_DRM_STI                                  policy<{'armhf': 'n'}>
+CONFIG_DRM_STI                                  note<'LP#1398458'>
+
+CONFIG_DRM_VBOXVIDEO                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_VBOXVIDEO                            note<'LP:1718679'>
+
+CONFIG_DVB_DUMMY_FE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DUMMY_FE                             note<'expert use only'>
+
+CONFIG_ECRYPT_FS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ECRYPT_FS                                note<'not autoloadable'>
+
+CONFIG_EFIVAR_FS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFIVAR_FS                                note<'needed for variable EFI update'>
+
+CONFIG_EFI_VARS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_VARS                                 note<'EFI boot requirement (d-i) LP:#837332'>
+
+CONFIG_EVM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM                                      note<'LP:1643652'>
+
+CONFIG_EVM_ATTR_FSUUID                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_ATTR_FSUUID                          note<'LP:1643652'>
+
+CONFIG_EVM_LOAD_X509                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EVM_LOAD_X509                            note<'LP:1643652'>
+
+CONFIG_EVM_X509_PATH                            policy<{'ppc64el': '"/etc/keys/x509_evm.der"'}>
+CONFIG_EVM_X509_PATH                            note<'LP:1643652'>
+
+CONFIG_EXT2_FS                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EXT2_FS                                  note<'ext4 handling via EXT4_USE_FOR_EXT23'>
+
+CONFIG_EXT3_FS                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EXT3_FS                                  note<'ext4 handling via EXT4_USE_FOR_EXT23'>
+
+CONFIG_FA_DUMP                                  policy<{'ppc64el': 'y'}>
+CONFIG_FA_DUMP                                  note<'LP:1415562'>
+
+CONFIG_FHANDLE                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FHANDLE                                  note<'LP:1412543'>
+
+CONFIG_FUSE_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUSE_FS                                  note<'not autoloadable'>
+
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FW_LOADER_USER_HELPER_FALLBACK           note<'LP#1398458'>
+
+CONFIG_GPIO_EM                                  policy<{'armhf': 'n'}>
+CONFIG_GPIO_EM                                  note<'h/w not encounted'>
+
+CONFIG_GPIO_TWL4030                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_TWL4030                             note<'LP:#921934'>
+
+CONFIG_HIBERNATION                              policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HIBERNATION                              note<'LP:1867753'>
+
+CONFIG_HIO                                      policy<{'amd64': 'm', 'arm64': 'n', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HIO                                      note<'LP:1635594'>
+
+CONFIG_HIPPI                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HIPPI                                    note<'DEPRECATED'>
+
+CONFIG_HOTPLUG_PCI_PCIE                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI_PCIE                         note<'LP#1374440'>
+
+CONFIG_HOTPLUG_PCI_SHPC                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HOTPLUG_PCI_SHPC                         note<'LP#1374440'>
+
+CONFIG_HVC_UDBG                                 policy<{'ppc64el': 'n'}>
+CONFIG_HVC_UDBG                                 note<'LP#1680888'>
+
+CONFIG_I2C_CHARDEV                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_I2C_CHARDEV                              note<'LP:1417032'>
+
+CONFIG_IBMVNIC                                  policy<{'ppc64el': 'm'}>
+CONFIG_IBMVNIC                                  note<'LP:#1628187'>
+
+CONFIG_IDLE_PAGE_TRACKING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IDLE_PAGE_TRACKING                       note<'is there a cost associated with this?'>
+
+CONFIG_IIO_SIMPLE_DUMMY_BUFFER                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IIO_SIMPLE_DUMMY_BUFFER                  note<'dummy driver'>
+
+CONFIG_IIO_SIMPLE_DUMMY_EVENTS                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IIO_SIMPLE_DUMMY_EVENTS                  note<'dummy driver'>
+
+CONFIG_IMA                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA                                      note<'LP:1643652'>
+
+CONFIG_IMA_APPRAISE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_APPRAISE                             note<'LP:1643652'>
+
+CONFIG_IMA_ARCH_POLICY                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_ARCH_POLICY                          note<'LP:1866909'>
+
+CONFIG_IMA_DEFAULT_HASH_SHA256                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_DEFAULT_HASH_SHA256                  note<'LP:1643652'>
+
+CONFIG_IMA_KEXEC                                policy<{'ppc64el': 'y'}>
+CONFIG_IMA_KEXEC                                note<'LP:1643652'>
+
+CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY note<'LP:1667490'>
+
+CONFIG_IMA_READ_POLICY                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_READ_POLICY                          note<'LP:1866909'>
+
+CONFIG_IMA_SIG_TEMPLATE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_IMA_SIG_TEMPLATE                         note<'LP:1643652'>
+
+CONFIG_IMA_WRITE_POLICY                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_WRITE_POLICY                         note<'LP:1667490'>
+
+CONFIG_INPUT_UINPUT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_INPUT_UINPUT                             note<'LP:584812'>
+
+CONFIG_INTEGRITY_PLATFORM_KEYRING               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_PLATFORM_KEYRING               note<'Required for lockdown'>
+
+CONFIG_INTEL_IOMMU_DEFAULT_ON                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_INTEL_IOMMU_DEFAULT_ON                   note<'the IOMMU can trigger boot failures'>
+
+CONFIG_IOMMU_DEBUGFS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IOMMU_DEBUGFS                            note<'Should not be enabled in production, LP #1861057'>
+
+CONFIG_IPDDP                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IPDDP                                    note<'LP:1559772'>
+
+CONFIG_IPMMU_VMSA                               policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_IPMMU_VMSA                               note<'LP:1718734'>
+
+CONFIG_IPV6                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6                                     note<'if this is a module we get a module load for every ipv6 packet'>
+
+CONFIG_IP_PNP                                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IP_PNP                                   note<'LP:1259861'>
+
+CONFIG_ISM                                      policy<{'s390x': 'm'}>
+CONFIG_ISM                                      note<'LP:1789934'>
+
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG                 policy<{'amd64': 'y'}>
+CONFIG_KEXEC_BZIMAGE_VERIFY_SIG                 note<'Q: check this is in sync with the kexec/kdump userspace'>
+
+CONFIG_KGDB_SERIAL_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KGDB_SERIAL_CONSOLE                      note<'early debugging support'>
+
+CONFIG_KVM                                      policy<{'amd64': 'm', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'm', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KVM                                      note<'LP:1532886'>
+
+CONFIG_LATENCYTOP                               policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LATENCYTOP                               note<'https://lists.ubuntu.com/archives/kernel-team/2014-July/045006.html, LP#1655986'>
+
+CONFIG_LOAD_PPC_KEYS                            policy<{'ppc64el': 'y'}>
+CONFIG_LOAD_PPC_KEYS                            note<'LP:1866909'>
+
+CONFIG_LOCALVERSION_AUTO                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCALVERSION_AUTO                        note<'triggers packaging failures'>
+
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE            note<'LP:1709171 LP:1848492'>
+
+CONFIG_MFD_SM501                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SM501                                note<'boot essential on OMAP4'>
+
+CONFIG_MFD_TPS65217                             policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'n'}>
+CONFIG_MFD_TPS65217                             note<'boot essential on AM335x'>
+
+CONFIG_MMC_BLOCK                                policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_BLOCK                                note<'boot essential on armhf/arm64'>
+
+CONFIG_MMC_OMAP_HS                              policy<{'armhf': 'y'}>
+CONFIG_MMC_OMAP_HS                              note<'boot essential on arm'>
+
+CONFIG_MMC_SDHCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI                                note<'installation essential on omap/highbank'>
+
+CONFIG_MMC_SDHCI_PLTFM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_PLTFM                          note<'boot essential on highbank'>
+
+CONFIG_MODIFY_LDT_SYSCALL                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MODIFY_LDT_SYSCALL                       note<'Q: check this with security'>
+
+CONFIG_MODVERSIONS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODVERSIONS                              note<'LP:1898716 -- required as we have a livepatch/drivers modules signing key'>
+
+CONFIG_MOUSE_INPORT                             policy<{'i386': 'n'}>
+CONFIG_MOUSE_INPORT                             note<'very old ISA based mouse support'>
+
+CONFIG_MTD                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MTD                                      note<'boot essential on arm'>
+
+CONFIG_MTD_BLOCK                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_BLOCK                                note<'boot essential on arm'>
+
+CONFIG_MTD_DOCG3                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_DOCG3                                note<'LP:1792205'>
+
+CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE             note<'can be enabled at runtime'>
+
+CONFIG_MTD_NAND_OMAP2                           policy<{'armhf': 'y'}>
+CONFIG_MTD_NAND_OMAP2                           note<'boot essential on arm'>
+
+CONFIG_MTD_NAND_OMAP_BCH                        policy<{'armhf': 'y'}>
+CONFIG_MTD_NAND_OMAP_BCH                        note<'boot essential on arm'>
+
+CONFIG_MTD_OF_PARTS                             policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm'}>
+CONFIG_MTD_OF_PARTS                             note<'boot essential on arm'>
+
+CONFIG_MTD_ONENAND_VERIFY_WRITE                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_ONENAND_VERIFY_WRITE                 note<'writes here are not checked in full without'>
+
+CONFIG_MTD_RAW_NAND                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_RAW_NAND                             note<'boot essential on arm'>
+
+CONFIG_NETWORK_PHY_TIMESTAMPING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETWORK_PHY_TIMESTAMPING                 note<'LP:1785816'>
+
+CONFIG_NET_9P                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_9P                                   note<'LP:1557994'>
+
+CONFIG_NET_DROP_MONITOR                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_DROP_MONITOR                         note<'LP #1660634'>
+
+CONFIG_NET_SWITCHDEV                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_SWITCHDEV                            note<'LP: #1865452, updated to y for s390x starting with focal'>
+
+CONFIG_NET_VENDOR_EMULEX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_EMULEX                        note<'LP:1543165'>
+
+CONFIG_NLS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NLS                                      note<'dependancy of boot essential'>
+
+CONFIG_NOP_USB_XCEIV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NOP_USB_XCEIV                            note<'boot essential on omap/highbank'>
+
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT               note<'Selects CONFIG_DRM_LEGACY which is not wanted'>
+
+CONFIG_NO_HZ_IDLE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NO_HZ_IDLE                               note<'LP:1413968'>
+
+CONFIG_NR_CPUS                                  policy<{'amd64': '8192', 'arm64': '256', 'armhf': '4', 'i386': '8', 'ppc64el': '2048', 's390x': '512'}>
+CONFIG_NR_CPUS                                  note<'LP:1864198'>
+
+CONFIG_NUMA                                     policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NUMA                                     note<'LP:1543165 LP:1557690'>
+
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED           note<'LP:1557690'>
+
+CONFIG_NUMA_EMU                                 policy<{'amd64': 'n', 's390x': 'n'}>
+CONFIG_NUMA_EMU                                 note<'LP:1864198'>
+
+CONFIG_NVMEM                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NVMEM                                    note<'Q: is this appropriate for s390x LP:1543165'>
+
+CONFIG_NVRAM                                    policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'y'}>
+CONFIG_NVRAM                                    note<'LP#1837726'>
+
+CONFIG_N_GSM                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_N_GSM                                    note<'LP#1404670'>
+
+CONFIG_PAGE_POISONING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_POISONING                           note<'LP:1783651'>
+
+CONFIG_PAGE_POISONING_NO_SANITY                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_POISONING_NO_SANITY                 note<'LP:1783651'>
+
+CONFIG_PAGE_POISONING_ZERO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_POISONING_ZERO                      note<'LP:1783651'>
+
+CONFIG_PANIC_ON_OOPS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PANIC_ON_OOPS                            note<'keep working if at all possible'>
+
+CONFIG_PATA_HPT3X3_DMA                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PATA_HPT3X3_DMA                          note<'DMA mode is documented problematic'>
+
+CONFIG_PCIEASPM_DEFAULT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIEASPM_DEFAULT                         note<'LP#1398544'>
+
+CONFIG_PCIEPORTBUS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_PCIEPORTBUS                              note<'LP#1665404'>
+
+CONFIG_PCI_NR_FUNCTIONS                         policy<{'s390x': '512'}>
+CONFIG_PCI_NR_FUNCTIONS                         note<'LP:1866056'>
+
+CONFIG_PINCTRL_CHERRYVIEW                       policy<{'amd64': 'y', 'i386': 'm'}>
+CONFIG_PINCTRL_CHERRYVIEW                       note<'LP #1630238'>
+
+CONFIG_PM                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PM                                       note<'LP:1867753'>
+
+CONFIG_PPC_MEM_KEYS                             policy<{'ppc64el': 'n'}>
+CONFIG_PPC_MEM_KEYS                             note<'LP:1776967'>
+
+CONFIG_PPC_RTAS_FILTER                          policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RTAS_FILTER                          note<'CVE-2020-27777'>
+
+CONFIG_PPC_SECURE_BOOT                          policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SECURE_BOOT                          note<'LP:1855668'>
+
+CONFIG_PPC_SECVAR_SYSFS                         policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SECVAR_SYSFS                         note<'LP:1866909'>
+
+CONFIG_PREEMPT_NONE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_PREEMPT_NONE                             note<'LP:1543165'>
+
+CONFIG_PSI_DEFAULT_DISABLED                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_PSI_DEFAULT_DISABLED                     note<'LP: #1876044'>
+
+CONFIG_QCOM_QDF2400_ERRATUM_0065                policy<{'arm64': 'y'}>
+CONFIG_QCOM_QDF2400_ERRATUM_0065                note<'LP:1672486'>
+
+CONFIG_REGULATOR_FIXED_VOLTAGE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_FIXED_VOLTAGE                  note<'boot essential on arm'>
+
+CONFIG_REGULATOR_TPS65217                       policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_REGULATOR_TPS65217                       note<'boot essential on AM335x'>
+
+CONFIG_REGULATOR_TWL4030                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TWL4030                        note<'boot requisite for omap4'>
+
+CONFIG_RTC_DRV_CMOS                             policy<{'amd64': 'y', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_CMOS                             note<'boot essential on i386/amd64'>
+
+CONFIG_RTC_DRV_EFI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RTC_DRV_EFI                              note<'LP:#1583738'>
+
+CONFIG_RTC_DRV_TWL4030                          policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TWL4030                          note<'boot essential on OMAP3/OMAP4'>
+
+CONFIG_RT_GROUP_SCHED                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RT_GROUP_SCHED                           note<'LP#1875665'>
+
+CONFIG_SAMPLE_TRACE_PRINTK                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SAMPLE_TRACE_PRINTK                      note<'Required for ftrace selftests'>
+
+CONFIG_SATA_AHCI_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_AHCI_PLATFORM                       note<'boot essential on highbank'>
+
+CONFIG_SATA_HIGHBANK                            policy<{'armhf': 'y'}>
+CONFIG_SATA_HIGHBANK                            note<'LP:1703430'>
+
+CONFIG_SCLP_OFB                                 policy<{'s390x': 'y'}>
+CONFIG_SCLP_OFB                                 note<'LP:1787898'>
+
+CONFIG_SCSI_IPR_DUMP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SCSI_IPR_DUMP                            note<'LP:1343109'>
+
+CONFIG_SCSI_IPR_TRACE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SCSI_IPR_TRACE                           note<'LP:1343109'>
+
+CONFIG_SCSI_VIRTIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_VIRTIO                              note<'tech preview of new feature'>
+
+CONFIG_SECURITY_SAFESETID                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SAFESETID                       note<'LP:#1845391'>
+
+CONFIG_SECURITY_SELINUX_DISABLE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_SELINUX_DISABLE                 note<'LP#1680315'>
+
+CONFIG_SERIAL_DEV_BUS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SERIAL_DEV_BUS                           note<'LP:1739939'>
+
+CONFIG_SERIAL_DEV_CTRL_TTYPORT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SERIAL_DEV_CTRL_TTYPORT                  note<'LP:1739939'>
+
+CONFIG_SERIAL_SH_SCI                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_SH_SCI                            note<'LP: #2022361'>
+
+CONFIG_SERIAL_SH_SCI_CONSOLE                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_SH_SCI_CONSOLE                    note<'LP: #2022361'>
+
+CONFIG_SERIAL_SH_SCI_EARLYCON                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_SH_SCI_EARLYCON                   note<'LP: #2022361'>
+
+CONFIG_SETEND_EMULATION                         policy<{'arm64': 'y'}>
+CONFIG_SETEND_EMULATION                         note<'LP:1545542'>
+
+CONFIG_SMC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SMC                                      note<'LP:1789934'>
+
+CONFIG_SMC_DIAG                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SMC_DIAG                                 note<'LP:1789934'>
+
+CONFIG_SND                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND                                      note<'not autoloadable on omap'>
+
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT               policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1'}>
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT               note<'LP:1804265'>
+
+CONFIG_SND_HDA_RECONFIG                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_RECONFIG                         note<'allows fixes to be tested live'>
+
+CONFIG_SND_PCM_OSS                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_PCM_OSS                              note<'deprecated in favour of pulseaudio emulation'>
+
+CONFIG_SND_SOC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC                                  note<'not autoloadable on omap'>
+
+CONFIG_SND_SOC_AMD_RENOIR                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_AMD_RENOIR                       note<'LP:1881046'>
+
+CONFIG_SND_SOC_AMD_RENOIR_MACH                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_AMD_RENOIR_MACH                  note<'LP:1881046'>
+
+CONFIG_SND_SOC_INTEL_CFL                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CFL                        note<'deprecated'>
+
+CONFIG_SND_SOC_INTEL_CML_H                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CML_H                      note<'deprecated'>
+
+CONFIG_SND_SOC_INTEL_CML_LP                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CML_LP                     note<'deprecated'>
+
+CONFIG_SND_SOC_INTEL_CNL                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CNL                        note<'deprecated'>
+
+CONFIG_SND_SOC_INTEL_SKYLAKE                    policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE                    note<'deprecated'>
+
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC      note<'deprecated'>
+
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC              note<'LP:1848490'>
+
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC        note<'LP:#1855666'>
+
+CONFIG_SND_SOC_SOF_HDA_LINK                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_LINK                     note<'LP:1848490'>
+
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT              note<'LP:1848490'>
+
+CONFIG_SOUND                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SOUND                                    note<'not autoloadable on omap'>
+
+CONFIG_SOUNDWIRE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SOUNDWIRE                                note<'LP:1855685'>
+
+CONFIG_SOUND_OSS_CORE_PRECLAIM                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SOUND_OSS_CORE_PRECLAIM                  note<'LP#1105230 LP#1385510'>
+
+CONFIG_SPI_INTEL_SPI_PCI                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SPI_INTEL_SPI_PCI                        note<'LP:1734147'>
+
+CONFIG_SPI_INTEL_SPI_PLATFORM                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SPI_INTEL_SPI_PLATFORM                   note<'LP:1734147'>
+
+CONFIG_SQUASHFS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS                                 note<'LP#1593134'>
+
+CONFIG_SQUASHFS_4K_DEVBLK_SIZE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_4K_DEVBLK_SIZE                  note<'non-default block size'>
+
+CONFIG_STACK_VALIDATION                         policy<{'amd64': 'y'}>
+CONFIG_STACK_VALIDATION                         note<'needed for livepatch'>
+
+CONFIG_SWP_EMULATION                            policy<{'arm64': 'y'}>
+CONFIG_SWP_EMULATION                            note<'LP:1545542'>
+
+CONFIG_SYSFS_DEPRECATED                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SYSFS_DEPRECATED                         note<'ensure nothing is using these deprecated interfaces'>
+
+CONFIG_TCG_TIS_I2C_ATMEL                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TCG_TIS_I2C_ATMEL                        note<'LP:1643652'>
+
+CONFIG_TCG_TIS_I2C_INFINEON                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TCG_TIS_I2C_INFINEON                     note<'LP:1643652'>
+
+CONFIG_TCG_TIS_I2C_NUVOTON                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TCG_TIS_I2C_NUVOTON                      note<'LP:1643652'>
+
+CONFIG_TCG_TPM                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCG_TPM                                  note<'needed for early validation'>
+
+CONFIG_TEST_BLACKHOLE_DEV                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TEST_BLACKHOLE_DEV                       note<'Used by net selftests'>
+
+CONFIG_TMPFS_POSIX_ACL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TMPFS_POSIX_ACL                          note<'some /dev nodes require POSIX ACLs, like /dev/dsp'>
+
+CONFIG_TOUCHSCREEN_ELAN                         policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ELAN                         note<'LP #1630238'>
+
+CONFIG_UNWINDER_FRAME_POINTER                   policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_UNWINDER_FRAME_POINTER                   note<'needed for livepatch'>
+
+CONFIG_USB_EHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_EHCI_HCD                             note<'ensures USB 2.0/1.1 probe ordering'>
+
+CONFIG_USB_EHCI_HCD_PLATFORM                    policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_USB_EHCI_HCD_PLATFORM                    note<'Dont use the generic ehci/ohci code on omap, it doesnt work'>
+
+CONFIG_USB_HCD_BCMA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HCD_BCMA                             note<'USB_{O,E}HCI_HCD_PLATFORM must be off on omap'>
+
+CONFIG_USB_HCD_SSB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HCD_SSB                              note<'USB_{O,E}HCI_HCD_PLATFORM must be off on omap'>
+
+CONFIG_USB_M66592                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_M66592                               note<'gadget device'>
+
+CONFIG_USB_MUSB_HDRC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MUSB_HDRC                            note<'not autoloadable on omap'>
+
+CONFIG_USB_OHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_OHCI_HCD                             note<'ensures USB 2.0/1.1 probe ordering'>
+
+CONFIG_USB_OTG                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_OTG                                  note<'triggers breakage on x86 LP:1047527, LP:1411295'>
+
+CONFIG_USB_OTG_BLACKLIST_HUB                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_OTG_BLACKLIST_HUB                    note<'OTG white/blacklists are disabled'>
+
+CONFIG_USB_OTG_WHITELIST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_OTG_WHITELIST                        note<'OTG white/blacklists are disabled'>
+
+CONFIG_USB_SERIAL_DEBUG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_DEBUG                         note<'not actually debug'>
+
+CONFIG_USB_UHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_UHCI_HCD                             note<'ensures USB 2.0/1.1 probe ordering'>
+
+CONFIG_USB_XHCI_DBGCAP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_XHCI_DBGCAP                          note<'LP:1730832'>
+
+CONFIG_USB_XHCI_HCD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_XHCI_HCD                             note<'ensures USB 2.0/1.1 probe ordering'>
+
+CONFIG_VBOXGUEST                                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_VBOXGUEST                                note<'LP:1796647'>
+
+CONFIG_VFAT_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VFAT_FS                                  note<'needed on arm to ensure we can write the kernel when replacing'>
+
+CONFIG_VFIO                                     policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_VFIO                                     note<'LP#1636733'>
+
+CONFIG_VFIO_PCI                                 policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_VFIO_PCI                                 note<'LP#1636733'>
+
+CONFIG_VIDEO_VIMC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VIMC                               note<'LP#1831482'>
+
+CONFIG_VIRTIO_BLK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_BLK                               note<'KVM paravirt support -- not autoloadable'>
+
+CONFIG_VIRTIO_MMIO                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VIRTIO_MMIO                              note<'LP:1557689'>
+
+CONFIG_VIRTIO_NET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_NET                               note<'KVM paravirt support -- not autoloadable'>
+
+CONFIG_X509_CERTIFICATE_PARSER                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_X509_CERTIFICATE_PARSER                  note<'module signing'>
+
+CONFIG_X86_ACPI_CPUFREQ                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_ACPI_CPUFREQ                         note<'not autoloadable'>
+
+CONFIG_X86_CPUFREQ_NFORCE2                      policy<{'i386': 'y'}>
+CONFIG_X86_CPUFREQ_NFORCE2                      note<'not autoloadable'>
+
+CONFIG_X86_LEGACY_VM86                          policy<{'i386': 'y'}>
+CONFIG_X86_LEGACY_VM86                          note<'LP:1499089'>
+
+CONFIG_X86_PCC_CPUFREQ                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_PCC_CPUFREQ                          note<'not autoloadable'>
+
+CONFIG_X86_POWERNOW_K8                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_POWERNOW_K8                          note<'not autoloadable'>
+
+CONFIG_X86_SPEEDSTEP_CENTRINO                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_CENTRINO                   note<'not autoloadable'>
+
+CONFIG_X86_SPEEDSTEP_ICH                        policy<{'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_ICH                        note<'not autoloadable'>
+
+CONFIG_X86_SPEEDSTEP_SMI                        policy<{'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_SMI                        note<'not autoloadable'>
+
+CONFIG_X86_UV                                   policy<{'amd64': 'y'}>
+CONFIG_X86_UV                                   note<'LP:1863810'>
+
+CONFIG_XEN_512GB                                policy<{'amd64': 'y'}>
+CONFIG_XEN_512GB                                note<'Q: is this related to the utlemming questions on memory size?'>
+
+CONFIG_XEN_ACPI_PROCESSOR                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_ACPI_PROCESSOR                       note<'boot essential on XEN host'>
+
+CONFIG_XEN_BLKDEV_FRONTEND                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BLKDEV_FRONTEND                      note<'not autoloadable -- XEN paravirt support'>
+
+CONFIG_XEN_NETDEV_FRONTEND                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_NETDEV_FRONTEND                      note<'not autoloadable -- XEN paravirt support'>
+
+CONFIG_XZ_DEC                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XZ_DEC                                   note<'boot essential -- initramfs decompressor'>
+
+CONFIG_ZCRYPT_MULTIDEVNODES                     policy<{'s390x': 'y'}>
+CONFIG_ZCRYPT_MULTIDEVNODES                     note<'LP:1805429'>
+
+CONFIG_ZLIB_DFLTCC                              policy<{'s390x': 'y'}>
+CONFIG_ZLIB_DFLTCC                              note<'LP:1830208'>
+
+CONFIG_ZONE_DMA                                 policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_ZONE_DMA                                 note<'LP:1628523'>
+
+
+# ---- Annotations without notes ----
+
+CONFIG_104_QUAD_8                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_3C515                                    policy<{'i386': 'm'}>
+CONFIG_60XX_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_64BIT                                    policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_64BIT_TIME                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_6LOWPAN                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_6LOWPAN_DEBUGFS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_GHC_ICMPV6                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_GHC_UDP                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_6LOWPAN_NHC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_DEST                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_FRAGMENT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_HOP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_IPV6                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_MOBILITY                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_ROUTING                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6LOWPAN_NHC_UDP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_6PACK                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_8139CP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_8139TOO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_8139TOO_8129                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_8139TOO_PIO                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_8139TOO_TUNE_TWISTER                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_8139_OLD_RX_RESET                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_842_COMPRESS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_842_DECOMPRESS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_88EU_AP_MODE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_9P_FS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_9P_FSCACHE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_9P_FS_POSIX_ACL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_9P_FS_SECURITY                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AB3100_CORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AB3100_OTP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ABP060MG                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ABX500_CORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AC97_BUS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ACCESSIBILITY                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ACENIC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ACENIC_OMIT_TIGON_I                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ACERHDF                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACER_WIRELESS                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACER_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACORN_PARTITION                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ACPI                                     policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_AC                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_ADXL                                policy<{'amd64': 'y'}>
+CONFIG_ACPI_ALS                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_APEI                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_APEI_EINJ                           policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_APEI_ERST_DEBUG                     policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_APEI_GHES                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_APEI_MEMORY_FAILURE                 policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ACPI_APEI_PCIEAER                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_APEI_SEA                            policy<{'arm64': 'y'}>
+CONFIG_ACPI_BATTERY                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_BGRT                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_BUTTON                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_CCA_REQUIRED                        policy<{'arm64': 'y'}>
+CONFIG_ACPI_CMPC                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_CONFIGFS                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_CONTAINER                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_CPPC_CPUFREQ                        policy<{'arm64': 'm'}>
+CONFIG_ACPI_CPPC_LIB                            policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ACPI_CPU_FREQ_PSS                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_DEBUG                               policy<{'amd64': 'y', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_DEBUGGER                            policy<{'amd64': 'y', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_DEBUGGER_USER                       policy<{'amd64': 'y'}>
+CONFIG_ACPI_DOCK                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_EC_DEBUGFS                          policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_EXTLOG                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_FAN                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_GENERIC_GSI                         policy<{'arm64': 'y'}>
+CONFIG_ACPI_GTDT                                policy<{'arm64': 'y'}>
+CONFIG_ACPI_HED                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_HMAT                                policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ACPI_HOTPLUG_CPU                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_HOTPLUG_IOAPIC                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_HOTPLUG_MEMORY                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_I2C_OPREGION                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_IORT                                policy<{'arm64': 'y'}>
+CONFIG_ACPI_IPMI                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_LPIT                                policy<{'amd64': 'y'}>
+CONFIG_ACPI_MCFG                                policy<{'arm64': 'y'}>
+CONFIG_ACPI_NFIT                                policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_ACPI_NUMA                                policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ACPI_PCI_SLOT                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_PPTT                                policy<{'arm64': 'y'}>
+CONFIG_ACPI_PROCESSOR                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_PROCESSOR_AGGREGATOR                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_PROCESSOR_CSTATE                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_PROCESSOR_IDLE                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_PROCFS_POWER                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ACPI_REDUCED_HARDWARE_ONLY               policy<{'amd64': 'n', 'arm64': 'y', 'i386': 'n'}>
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_SBS                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_SLEEP                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_SPCR_TABLE                          policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_TABLE_UPGRADE                       policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_TAD                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_THERMAL                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_THERMAL_REL                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_TOSHIBA                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_VIDEO                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACPI_WATCHDOG                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ACPI_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACQUIRE_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ACRN_GUEST                               policy<{'amd64': 'y'}>
+CONFIG_AD2S1200                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD2S1210                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD2S90                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5064                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD525X_DPOT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AD525X_DPOT_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD525X_DPOT_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5272                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5360                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5380                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5421                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5446                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5449                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5504                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5592R                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5592R_BASE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5593R                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5624R_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5686                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5686_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5696_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5755                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5758                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5761                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5764                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5791                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD5933                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7124                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7150                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7192                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7266                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7280                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7291                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7298                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7303                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7476                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7606                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7606_IFACE_PARALLEL                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7606_IFACE_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7746                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7766                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7768_1                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7780                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7791                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7793                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7816                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7887                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7923                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD7949                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD799X                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD8366                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD8801                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD9523                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD9832                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD9834                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADAPTEC_STARFIRE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADE7854                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADE7854_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADE7854_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADF4350                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADF4371                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ADFS_FS_RW                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ADIN_PHY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ADIS16080                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16130                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16136                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16201                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16203                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16209                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16240                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16260                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16400                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16460                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADIS16480                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADJD_S311                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADM8211                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADT7316                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADT7316_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADT7316_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADVANTECH_WDT                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ADVISE_SYSCALLS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ADXL372                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADXL372_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADXL372_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ADXRS450                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AD_SIGMA_DELTA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AEABI                                    policy<{'armhf': 'y'}>
+CONFIG_AFE4403                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AFE4404                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AFFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AFIUCV                                   policy<{'s390x': 'm'}>
+CONFIG_AFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AFS_DEBUG_CURSOR                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AFS_FSCACHE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AF_KCM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AF_RXRPC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AF_RXRPC_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AF_RXRPC_INJECT_LOSS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AF_RXRPC_IPV6                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AGP_ALI                                  policy<{'i386': 'm'}>
+CONFIG_AGP_AMD                                  policy<{'i386': 'y'}>
+CONFIG_AGP_AMD64                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AGP_ATI                                  policy<{'i386': 'm'}>
+CONFIG_AGP_EFFICEON                             policy<{'i386': 'm'}>
+CONFIG_AGP_INTEL                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AGP_NVIDIA                               policy<{'i386': 'y'}>
+CONFIG_AGP_SIS                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AGP_SWORKS                               policy<{'i386': 'm'}>
+CONFIG_AGP_VIA                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AHC1EC0_WDT                              policy<{'amd64': 'm'}>
+CONFIG_AHCI_BRCM                                policy<{'arm64': 'm'}>
+CONFIG_AHCI_CEVA                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_AHCI_DM816                               policy<{'armhf': 'm'}>
+CONFIG_AHCI_IMX                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_AHCI_MTK                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_AHCI_MVEBU                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_AHCI_QORIQ                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_AHCI_SUNXI                               policy<{'arm64': 'n'}>
+CONFIG_AHCI_TEGRA                               policy<{'armhf-generic': 'm'}>
+CONFIG_AHCI_XGENE                               policy<{'arm64': 'm'}>
+CONFIG_AIC79XX_CMDS_PER_DEVICE                  policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32'}>
+CONFIG_AIC79XX_DEBUG_ENABLE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_AIC79XX_DEBUG_MASK                       policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_AIC79XX_REG_PRETTY_PRINT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AIC79XX_RESET_DELAY_MS                   policy<{'amd64': '5000', 'arm64': '5000', 'armhf': '5000', 'i386': '5000', 'ppc64el': '5000'}>
+CONFIG_AIC7XXX_CMDS_PER_DEVICE                  policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_AIC7XXX_DEBUG_ENABLE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_AIC7XXX_DEBUG_MASK                       policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_AIC7XXX_REG_PRETTY_PRINT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AIC7XXX_RESET_DELAY_MS                   policy<{'amd64': '5000', 'arm64': '5000', 'armhf': '5000', 'i386': '5000', 'ppc64el': '5000'}>
+CONFIG_AIC94XX_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_AIO                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AIRO                                     policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AIRO_CS                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AIX_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AK09911                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AK8974                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_AK8975                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AL3320A                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ALIENWARE_WMI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ALIGNMENT_TRAP                           policy<{'armhf': 'y'}>
+CONFIG_ALIM1535_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ALIM7101_WDT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ALIX                                     policy<{'i386': 'y'}>
+CONFIG_ALLOW_DEV_COREDUMP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ALPINE_MSI                               policy<{'armhf': 'y'}>
+CONFIG_ALTERA_FREEZE_BRIDGE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ALTERA_MBOX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ALTERA_MSGDMA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ALTERA_PR_IP_CORE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ALTERA_PR_IP_CORE_PLAT                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_ALTERA_STAPL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ALTERA_TSE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ALTIVEC                                  policy<{'ppc64el': 'y'}>
+CONFIG_ALX                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AL_FIC                                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_AM2315                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AM335X_CONTROL_USB                       policy<{'armhf': 'm'}>
+CONFIG_AM335X_PHY_USB                           policy<{'armhf': 'm'}>
+CONFIG_AMBA_PL08X                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_AMD8111_ETH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AMD_IOMMU                                policy<{'amd64': 'y'}>
+CONFIG_AMD_IOMMU_V2                             policy<{'amd64': 'm'}>
+CONFIG_AMD_MEM_ENCRYPT                          policy<{'amd64': 'y'}>
+CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT        policy<{'amd64': 'n'}>
+CONFIG_AMD_NB                                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AMD_NUMA                                 policy<{'amd64': 'y'}>
+CONFIG_AMD_PHY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AMD_XGBE                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_AMD_XGBE_DCB                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_AMD_XGBE_HAVE_ECC                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_AMIGA_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AMILO_RFKILL                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ANDROID                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ANDROID_BINDERFS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ANDROID_BINDER_DEVICES                   policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""'}>
+CONFIG_ANDROID_BINDER_IPC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ANDROID_BINDER_IPC_SELFTEST              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ANDROID_VSOC                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_APB_TIMER                                policy<{'i386': 'y'}>
+CONFIG_APDS9300                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_APDS9802ALS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_APDS9960                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_APM                                      policy<{'i386': 'm'}>
+CONFIG_APM_ALLOW_INTS                           policy<{'i386': 'n'}>
+CONFIG_APM_CPU_IDLE                             policy<{'i386': 'n'}>
+CONFIG_APM_DISPLAY_BLANK                        policy<{'i386': 'n'}>
+CONFIG_APM_DO_ENABLE                            policy<{'i386': 'n'}>
+CONFIG_APM_EMULATION                            policy<{'armhf': 'n'}>
+CONFIG_APM_IGNORE_USER_SUSPEND                  policy<{'i386': 'n'}>
+CONFIG_APPLDATA_BASE                            policy<{'s390x': 'y'}>
+CONFIG_APPLDATA_MEM                             policy<{'s390x': 'm'}>
+CONFIG_APPLDATA_NET_SUM                         policy<{'s390x': 'm'}>
+CONFIG_APPLDATA_OS                              policy<{'s390x': 'm'}>
+CONFIG_APPLE_GMUX                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_APPLE_PROPERTIES                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_APPLICOM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_APQ_GCC_8084                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_APQ_MMCC_8084                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_AQTION                                   policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_AQUANTIA_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AR5523                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCH_32BIT_OFF_T                         policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_ARCH_ACTIONS                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_AGILEX                              policy<{'arm64': 'y'}>
+CONFIG_ARCH_ALPINE                              policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_ARCH_ARTPEC                              policy<{'armhf': 'y'}>
+CONFIG_ARCH_ASPEED                              policy<{'armhf': 'y'}>
+CONFIG_ARCH_AT91                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_AXXIA                               policy<{'armhf-generic-lpae': 'y'}>
+CONFIG_ARCH_BCM                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_BCM2835                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_BCM_IPROC                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_BERLIN                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_BINFMT_ELF_STATE                    policy<{'s390x': 'y'}>
+CONFIG_ARCH_BITMAIN                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_BRCMSTB                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_CLOCKSOURCE_DATA                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_ARCH_CLOCKSOURCE_INIT                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_CPUIDLE_HALTPOLL                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_CPU_PROBE_RELEASE                   policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_DEFCONFIG                           policy<{'amd64': '"arch/x86/configs/x86_64_defconfig"', 'i386': '"arch/x86/configs/i386_defconfig"'}>
+CONFIG_ARCH_DIGICOLOR                           policy<{'armhf': 'n'}>
+CONFIG_ARCH_DMA_ADDR_T_64BIT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_DOVE                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_EBSA110                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_EMEV2                               policy<{'armhf': 'y'}>
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE             policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_ENABLE_THP_MIGRATION                policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_EP93XX                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_EXYNOS                              policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_ARCH_EXYNOS3                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_EXYNOS4                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_EXYNOS5                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_FLATMEM_ENABLE                      policy<{'i386': 'y'}>
+CONFIG_ARCH_FOOTBRIDGE                          policy<{'armhf': 'n'}>
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_ADD_PAGES                       policy<{'amd64': 'y'}>
+CONFIG_ARCH_HAS_BANDGAP                         policy<{'armhf': 'y'}>
+CONFIG_ARCH_HAS_BINFMT_FLAT                     policy<{'armhf': 'y'}>
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_CPU_FINALIZE_INIT               policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_CPU_RELAX                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN             policy<{'arm64': 'y', 'armhf-generic-lpae': 'y'}>
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT               policy<{'arm64': 'y'}>
+CONFIG_ARCH_HAS_ELF_RANDOMIZE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_FAST_MULTIPLIER                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_FILTER_PGPROT                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED           policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_FORTIFY_SOURCE                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_GIGANTIC_PAGE                   policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_HUGEPD                          policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_KCOV                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_KEEPINITRD                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_HAS_KEXEC_PURGATORY                 policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_MEMBARRIER_CALLBACKS            policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_MEM_ENCRYPT                     policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_MMIOWB                          policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_PHYS_TO_DMA                     policy<{'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_PKEYS                           policy<{'amd64': 'y'}>
+CONFIG_ARCH_HAS_PMEM_API                        policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_PTE_DEVMAP                      policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_PTE_SPECIAL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_RELR                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_HAS_RESET_CONTROLLER                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_HAS_SCALED_CPUTIME                  policy<{'s390x': 'y'}>
+CONFIG_ARCH_HAS_SETUP_DMA_OPS                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_HAS_SET_DIRECT_MAP                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_SET_MEMORY                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU                policy<{'arm64': 'y', 'armhf-generic-lpae': 'y'}>
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE             policy<{'arm64': 'y', 'armhf-generic-lpae': 'y'}>
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER                 policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_HAS_TICK_BROADCAST                  policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE              policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_UACCESS_MCSAFE                  policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H                  policy<{'armhf': 'y'}>
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HI3xxx                              policy<{'armhf': 'y'}>
+CONFIG_ARCH_HIBERNATION_HEADER                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_HIBERNATION_POSSIBLE                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_HIGHBANK                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_HIP01                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_HIP04                               policy<{'armhf': 'y'}>
+CONFIG_ARCH_HISI                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_HIX5HD2                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_INLINE_READ_LOCK                    policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_LOCK_BH                 policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_LOCK_IRQ                policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE            policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_TRYLOCK                 policy<{'s390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK                  policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK_BH               policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ              policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE       policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK                    policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK_BH                 policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ                policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE            policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK                 policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH              policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK                  policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH               policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ              policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE       policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK                   policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK_BH                policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ               policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE           policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_TRYLOCK                policy<{'s390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK                 policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH              policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ             policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE      policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_ARCH_IOP32X                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_IXP4XX                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_K3                                  policy<{'arm64': 'y'}>
+CONFIG_ARCH_K3_AM6_SOC                          policy<{'arm64': 'y'}>
+CONFIG_ARCH_K3_J721E_SOC                        policy<{'arm64': 'y'}>
+CONFIG_ARCH_KEEP_MEMBLOCK                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_KEYSTONE                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_LAYERSCAPE                          policy<{'arm64': 'y'}>
+CONFIG_ARCH_LG1K                                policy<{'arm64': 'y'}>
+CONFIG_ARCH_MAY_HAVE_PC_FDC                     policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_MDM9615                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MEDIATEK                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MEMORY_PROBE                        policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_MESON                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT               policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO                 policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_MILBEAUT                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_MILBEAUT_M10V                       policy<{'armhf': 'y'}>
+CONFIG_ARCH_MMAP_RND_BITS                       policy<{'amd64': '28', 'arm64': '18', 'armhf': '8', 'i386': '8', 'ppc64el': '28'}>
+CONFIG_ARCH_MMAP_RND_BITS_MAX                   policy<{'amd64': '32', 'arm64': '33', 'armhf': '16', 'i386': '16', 'ppc64el': '29'}>
+CONFIG_ARCH_MMAP_RND_BITS_MIN                   policy<{'amd64': '28', 'arm64': '18', 'armhf': '8', 'i386': '8', 'ppc64el': '14'}>
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS                policy<{'amd64': '8', 'arm64': '11', 'ppc64el': '8'}>
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX            policy<{'amd64': '16', 'arm64': '16', 'i386': '16', 'ppc64el': '13'}>
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN            policy<{'amd64': '8', 'arm64': '11', 'i386': '8', 'ppc64el': '7'}>
+CONFIG_ARCH_MMP                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_MSM8960                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MSM8974                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MSM8X60                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_MULTIPLATFORM                       policy<{'armhf': 'y'}>
+CONFIG_ARCH_MULTI_V6                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_MULTI_V6_V7                         policy<{'armhf': 'y'}>
+CONFIG_ARCH_MULTI_V7                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_MVEBU                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_MXC                                 policy<{'arm64': 'y', 'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED              policy<{'armhf': 'y'}>
+CONFIG_ARCH_NPCM                                policy<{'armhf': 'y'}>
+CONFIG_ARCH_NPCM7XX                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_NR_GPIO                             policy<{'armhf': '1024'}>
+CONFIG_ARCH_OMAP                                policy<{'armhf': 'y'}>
+CONFIG_ARCH_OMAP1                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_OMAP2PLUS                           policy<{'armhf': 'y'}>
+CONFIG_ARCH_OMAP2PLUS_TYPICAL                   policy<{'armhf': 'y'}>
+CONFIG_ARCH_OMAP3                               policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_OMAP4                               policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX                 policy<{'armhf': 'y'}>
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT         policy<{'armhf': 'y'}>
+CONFIG_ARCH_PROC_KCORE_TEXT                     policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ARCH_PXA                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_QCOM                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_R7S72100                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_R7S9210                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A73A4                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_R8A7740                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7743                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7744                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7745                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A77470                            policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A774A1                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A774C0                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A7778                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7779                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7790                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7791                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7792                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7793                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7794                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_R8A7795                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A7796                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77965                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77970                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77980                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77990                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R8A77995                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_R9A06G032                           policy<{'armhf': 'y'}>
+CONFIG_ARCH_RANDOM                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_RCAR_GEN1                           policy<{'armhf': 'y'}>
+CONFIG_ARCH_RCAR_GEN2                           policy<{'armhf': 'y'}>
+CONFIG_ARCH_RCAR_GEN3                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_RDA                                 policy<{'armhf': 'y'}>
+CONFIG_ARCH_REALTEK                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_REALVIEW                            policy<{'armhf': 'n'}>
+CONFIG_ARCH_RENESAS                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_RMOBILE                             policy<{'armhf': 'y'}>
+CONFIG_ARCH_RPC                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_RZN1                                policy<{'armhf': 'y'}>
+CONFIG_ARCH_S3C24XX                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_S5PV210                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_SA1100                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_SEATTLE                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_SELECT_MEMORY_MODEL                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_SH73A0                              policy<{'armhf': 'y'}>
+CONFIG_ARCH_SIRF                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_SOCFPGA                             policy<{'armhf': 'n'}>
+CONFIG_ARCH_SPARSEMEM_DEFAULT                   policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_SPARSEMEM_ENABLE                    policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_SPRD                                policy<{'arm64': 'y'}>
+CONFIG_ARCH_STACKWALK                           policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_ARCH_STI                                 policy<{'armhf': 'n'}>
+CONFIG_ARCH_STM32                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_STRATIX10                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_SUNXI                               policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_ARCH_SUPPORTS_ACPI                       policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_SUPPORTS_BIG_ENDIAN                 policy<{'armhf': 'y'}>
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_SUPPORTS_INT128                     policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE             policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING             policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_SUPPORTS_UPROBES                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_SUSPEND_NONZERO_CPU                 policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_SUSPEND_POSSIBLE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ARCH_SYNQUACER                           policy<{'arm64': 'y'}>
+CONFIG_ARCH_TEGRA                               policy<{'arm64': 'n', 'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARCH_TEGRA_114_SOC                       policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_TEGRA_124_SOC                       policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_TEGRA_2x_SOC                        policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_TEGRA_3x_SOC                        policy<{'armhf-generic': 'y'}>
+CONFIG_ARCH_THUNDER                             policy<{'arm64': 'y'}>
+CONFIG_ARCH_THUNDER2                            policy<{'arm64': 'y'}>
+CONFIG_ARCH_U8500                               policy<{'armhf': 'n'}>
+CONFIG_ARCH_UNIPHIER                            policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS                 policy<{'amd64': 'y'}>
+CONFIG_ARCH_USES_PG_UNCACHED                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_USE_BUILTIN_BSWAP                   policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_USE_MEMREMAP_PROT                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_USE_QUEUED_RWLOCKS                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_VEXPRESS                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA        policy<{'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_DCSCB                      policy<{'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_SPC                        policy<{'armhf': 'y'}>
+CONFIG_ARCH_VEXPRESS_TC2_PM                     policy<{'armhf': 'y'}>
+CONFIG_ARCH_VIRT                                policy<{'armhf': 'y'}>
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT           policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_ARCH_WANTS_THP_SWAP                      policy<{'amd64': 'y'}>
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION       policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_WANT_FRAME_POINTERS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARCH_WANT_GENERAL_HUGETLB                policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION              policy<{'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM           policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC                 policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ARCH_WEAK_RELEASE_ACQUIRE                policy<{'ppc64el': 'y'}>
+CONFIG_ARCH_WM8850                              policy<{'armhf': 'n'}>
+CONFIG_ARCH_XGENE                               policy<{'arm64': 'y'}>
+CONFIG_ARCH_ZYNQ                                policy<{'armhf': 'n'}>
+CONFIG_ARCH_ZYNQMP                              policy<{'arm64': 'y'}>
+CONFIG_ARCNET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ARCNET_1051                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_1201                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_CAP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_COM20020                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_COM20020_CS                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ARCNET_COM20020_ISA                      policy<{'i386': 'm'}>
+CONFIG_ARCNET_COM20020_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_COM90xx                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_COM90xxIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_RAW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCNET_RIM_I                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ARCX_ANYBUS_CONTROLLER                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_ARC_EMAC_CORE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM                                      policy<{'armhf': 'y'}>
+CONFIG_ARM64                                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_16K_PAGES                          policy<{'arm64': 'n'}>
+CONFIG_ARM64_4K_PAGES                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_64K_PAGES                          policy<{'arm64': 'n'}>
+CONFIG_ARM64_ACPI_PARKING_PROTOCOL              policy<{'arm64': 'y'}>
+CONFIG_ARM64_CNP                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_CONT_SHIFT                         policy<{'arm64': '4'}>
+CONFIG_ARM64_CRYPTO                             policy<{'arm64': 'y'}>
+CONFIG_ARM64_DEBUG_PRIORITY_MASKING             policy<{'arm64': 'n'}>
+CONFIG_ARM64_ERRATUM_1024718                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1165522                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1286807                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1418040                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1463225                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1542419                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_1742098                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_819472                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_824069                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_826319                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_827319                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_832075                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_834220                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_ERRATUM_845719                     policy<{'arm64': 'y'}>
+CONFIG_ARM64_HW_AFDBM                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_MODULE_PLTS                        policy<{'arm64': 'y'}>
+CONFIG_ARM64_PAGE_SHIFT                         policy<{'arm64': '12'}>
+CONFIG_ARM64_PAN                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_PA_BITS                            policy<{'arm64': '48'}>
+CONFIG_ARM64_PA_BITS_48                         policy<{'arm64': 'y'}>
+CONFIG_ARM64_PMEM                               policy<{'arm64': 'y'}>
+CONFIG_ARM64_PSEUDO_NMI                         policy<{'arm64': 'y'}>
+CONFIG_ARM64_PTDUMP_CORE                        policy<{'arm64': 'y'}>
+CONFIG_ARM64_PTDUMP_DEBUGFS                     policy<{'arm64': 'n'}>
+CONFIG_ARM64_PTR_AUTH                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET              policy<{'arm64': 'n'}>
+CONFIG_ARM64_RAS_EXTN                           policy<{'arm64': 'y'}>
+CONFIG_ARM64_RELOC_TEST                         policy<{'arm64': 'n'}>
+CONFIG_ARM64_SSBD                               policy<{'arm64': 'y'}>
+CONFIG_ARM64_SVE                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_SW_TTBR0_PAN                       policy<{'arm64': 'y'}>
+CONFIG_ARM64_TAGGED_ADDR_ABI                    policy<{'arm64': 'y'}>
+CONFIG_ARM64_UAO                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_VA_BITS                            policy<{'arm64': '48'}>
+CONFIG_ARM64_VA_BITS_39                         policy<{'arm64': 'n'}>
+CONFIG_ARM64_VHE                                policy<{'arm64': 'y'}>
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE             policy<{'arm64': 'y'}>
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI             policy<{'arm64': 'y'}>
+CONFIG_ARMADA375_USBCLUSTER_PHY                 policy<{'armhf': 'y'}>
+CONFIG_ARMADA_370_CLK                           policy<{'armhf': 'y'}>
+CONFIG_ARMADA_370_XP_IRQ                        policy<{'armhf': 'y'}>
+CONFIG_ARMADA_370_XP_TIMER                      policy<{'armhf': 'y'}>
+CONFIG_ARMADA_375_CLK                           policy<{'armhf': 'y'}>
+CONFIG_ARMADA_37XX_CLK                          policy<{'arm64': 'y'}>
+CONFIG_ARMADA_37XX_RWTM_MBOX                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARMADA_37XX_WATCHDOG                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARMADA_38X_CLK                           policy<{'armhf': 'y'}>
+CONFIG_ARMADA_39X_CLK                           policy<{'armhf': 'y'}>
+CONFIG_ARMADA_AP806_SYSCON                      policy<{'arm64': 'y'}>
+CONFIG_ARMADA_AP_CPU_CLK                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARMADA_AP_CP_HELPER                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARMADA_CP110_SYSCON                      policy<{'arm64': 'y'}>
+CONFIG_ARMADA_THERMAL                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARMADA_XP_CLK                            policy<{'armhf': 'y'}>
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM       policy<{'arm64': 'm'}>
+CONFIG_ARM_AMBA                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_APPENDED_DTB                         policy<{'armhf': 'y'}>
+CONFIG_ARM_ARCH_TIMER                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND            policy<{'arm64': 'y'}>
+CONFIG_ARM_ARMADA_37XX_CPUFREQ                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_ARMADA_8K_CPUFREQ                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_ATAG_DTB_COMPAT                      policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND       policy<{'armhf-generic': 'y'}>
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER policy<{'armhf-generic': 'n'}>
+CONFIG_ARM_BIG_LITTLE_CPUFREQ                   policy<{'armhf': 'm'}>
+CONFIG_ARM_BIG_LITTLE_CPUIDLE                   policy<{'armhf': 'y'}>
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ                  policy<{'arm64': 'm'}>
+CONFIG_ARM_CCI                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCI400_COMMON                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCI400_PMU                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCI400_PORT_CTRL                     policy<{'armhf': 'y'}>
+CONFIG_ARM_CCI5xx_PMU                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCI_PMU                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CCN                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CHARLCD                              policy<{'armhf': 'y'}>
+CONFIG_ARM_CPUIDLE                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_CPU_SUSPEND                          policy<{'armhf': 'y'}>
+CONFIG_ARM_CPU_TOPOLOGY                         policy<{'armhf': 'y'}>
+CONFIG_ARM_CRYPTO                               policy<{'armhf': 'y'}>
+CONFIG_ARM_DMA_IOMMU_ALIGNMENT                  policy<{'armhf': '8'}>
+CONFIG_ARM_DMA_MEM_BUFFERABLE                   policy<{'armhf': 'y'}>
+CONFIG_ARM_DMA_USE_IOMMU                        policy<{'armhf': 'y'}>
+CONFIG_ARM_DSU_PMU                              policy<{'arm64': 'm'}>
+CONFIG_ARM_ERRATA_430973                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_643719                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_720789                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_754322                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_754327                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_764369                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_773022                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_775420                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_798181                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_814220                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_818325_852422                 policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_821420                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_825619                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_852421                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_852423                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_857271                        policy<{'armhf': 'y'}>
+CONFIG_ARM_ERRATA_857272                        policy<{'armhf': 'y'}>
+CONFIG_ARM_EXYNOS_BUS_DEVFREQ                   policy<{'armhf': 'y'}>
+CONFIG_ARM_EXYNOS_CPUIDLE                       policy<{'armhf': 'y'}>
+CONFIG_ARM_GIC                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_GIC_MAX_NR                           policy<{'arm64': '1', 'armhf': '1'}>
+CONFIG_ARM_GIC_V2M                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_GIC_V3                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_GIC_V3_ITS                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_GIC_V3_ITS_FSL_MC                    policy<{'arm64': 'y'}>
+CONFIG_ARM_GIC_V3_ITS_PCI                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_GLOBAL_TIMER                         policy<{'armhf': 'y'}>
+CONFIG_ARM_HAS_SG_CHAIN                         policy<{'armhf': 'y'}>
+CONFIG_ARM_HEAVY_MB                             policy<{'armhf': 'y'}>
+CONFIG_ARM_HIGHBANK_CPUFREQ                     policy<{'armhf': 'm'}>
+CONFIG_ARM_IMX6Q_CPUFREQ                        policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_ARM_IMX_CPUFREQ_DT                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_ARM_KPROBES_TEST                         policy<{'armhf': 'm'}>
+CONFIG_ARM_L1_CACHE_SHIFT                       policy<{'armhf': '7'}>
+CONFIG_ARM_L1_CACHE_SHIFT_6                     policy<{'armhf': 'y'}>
+CONFIG_ARM_L1_CACHE_SHIFT_7                     policy<{'armhf': 'y'}>
+CONFIG_ARM_LPAE                                 policy<{'armhf-generic': 'n', 'armhf-generic-lpae': 'y'}>
+CONFIG_ARM_MEDIATEK_CPUFREQ                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_MHU                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_MODULE_PLTS                          policy<{'armhf': 'n'}>
+CONFIG_ARM_MVEBU_V7_CPUIDLE                     policy<{'armhf': 'y'}>
+CONFIG_ARM_OMAP2PLUS_CPUFREQ                    policy<{'armhf': 'y'}>
+CONFIG_ARM_PATCH_IDIV                           policy<{'armhf': 'y'}>
+CONFIG_ARM_PATCH_PHYS_VIRT                      policy<{'armhf': 'y'}>
+CONFIG_ARM_PL172_MPMC                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_PMU                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_PMU_ACPI                             policy<{'arm64': 'y'}>
+CONFIG_ARM_PSCI                                 policy<{'armhf': 'y'}>
+CONFIG_ARM_PSCI_CHECKER                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_ARM_PSCI_CPUIDLE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_PSCI_FW                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_PTDUMP_CORE                          policy<{'armhf': 'y'}>
+CONFIG_ARM_PTDUMP_DEBUGFS                       policy<{'armhf': 'n'}>
+CONFIG_ARM_QCOM_CPUFREQ_HW                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM                   policy<{'arm64': 'm'}>
+CONFIG_ARM_RASPBERRYPI_CPUFREQ                  policy<{'arm64': 'm'}>
+CONFIG_ARM_RK3399_DMC_DEVFREQ                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SBSA_WATCHDOG                        policy<{'arm64': 'm'}>
+CONFIG_ARM_SCMI_CPUFREQ                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SCMI_POWER_DOMAIN                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SCMI_PROTOCOL                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_SCPI_CPUFREQ                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SCPI_POWER_DOMAIN                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SCPI_PROTOCOL                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SDE_INTERFACE                        policy<{'arm64': 'y'}>
+CONFIG_ARM_SMMU                                 policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_ARM_SMMU_V3                              policy<{'arm64': 'y'}>
+CONFIG_ARM_SMMU_V3_PMU                          policy<{'arm64': 'm'}>
+CONFIG_ARM_SP805_WATCHDOG                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ARM_SPE_PMU                              policy<{'arm64': 'm'}>
+CONFIG_ARM_TEGRA124_CPUFREQ                     policy<{'armhf-generic': 'y'}>
+CONFIG_ARM_TEGRA186_CPUFREQ                     policy<{'armhf-generic': 'm'}>
+CONFIG_ARM_TEGRA20_CPUFREQ                      policy<{'armhf-generic': 'y'}>
+CONFIG_ARM_TEGRA20_DEVFREQ                      policy<{'armhf-generic': 'm'}>
+CONFIG_ARM_TEGRA_DEVFREQ                        policy<{'armhf-generic': 'm'}>
+CONFIG_ARM_THUMB                                policy<{'armhf': 'y'}>
+CONFIG_ARM_THUMBEE                              policy<{'armhf': 'y'}>
+CONFIG_ARM_TIMER_SP804                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ARM_TI_CPUFREQ                           policy<{'armhf': 'y'}>
+CONFIG_ARM_VEXPRESS_SPC_CPUFREQ                 policy<{'armhf': 'm'}>
+CONFIG_ARM_VIRT_EXT                             policy<{'armhf': 'y'}>
+CONFIG_AS3935                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ASHMEM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ASM_MODVERSIONS                          policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASN1                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASPEED_ADC                               policy<{'armhf': 'm'}>
+CONFIG_ASPEED_BT_IPMI_BMC                       policy<{'armhf': 'm'}>
+CONFIG_ASPEED_KCS_IPMI_BMC                      policy<{'armhf': 'm'}>
+CONFIG_ASPEED_LPC_CTRL                          policy<{'armhf': 'm'}>
+CONFIG_ASPEED_LPC_SNOOP                         policy<{'armhf': 'm'}>
+CONFIG_ASPEED_P2A_CTRL                          policy<{'armhf': 'm'}>
+CONFIG_ASPEED_WATCHDOG                          policy<{'armhf': 'y'}>
+CONFIG_ASSOCIATIVE_ARRAY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ASUS_LAPTOP                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_NB_WMI                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_WIRELESS                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASUS_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ASYNC_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ASYNC_MEMCPY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ASYNC_PQ                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ASYNC_RAID6_RECOV                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ASYNC_RAID6_TEST                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA              policy<{'arm64': 'y'}>
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA             policy<{'arm64': 'y'}>
+CONFIG_ASYNC_TX_DMA                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ASYNC_XOR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AT76C50X_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AT803X_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ATA                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ATAGS                                    policy<{'armhf': 'y'}>
+CONFIG_ATAGS_PROC                               policy<{'armhf': 'y'}>
+CONFIG_ATALK                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ATARI_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_ATA_ACPI                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_ATA_BMDMA                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATA_GENERIC                              policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_ATA_OVER_ETH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ATA_SFF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATA_VERBOSE_ERROR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH10K                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH10K_AHB                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH10K_CE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH10K_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATH10K_DEBUGFS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH10K_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH10K_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH10K_SNOC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ATH10K_SPECTRAL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH10K_TRACING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH10K_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH5K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH5K_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATH5K_PCI                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH5K_TRACER                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATH6KL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH6KL_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATH6KL_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH6KL_TRACING                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATH6KL_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH9K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH9K_AHB                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_BTCOEX_SUPPORT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_CHANNEL_CONTEXT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_COMMON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH9K_COMMON_DEBUG                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_COMMON_SPECTRAL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_DEBUGFS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_DYNACK                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATH9K_HTC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH9K_HTC_DEBUGFS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_HW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH9K_HWRNG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_PCI                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_PCI_NO_EEPROM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH9K_PCOEM                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_RFKILL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_STATION_STATISTICS                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH9K_WOW                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATH_COMMON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATH_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATL1                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATL1C                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATL1E                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATL2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATLAS_PH_SENSOR                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ATMEL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_AMBASSADOR                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_AMBASSADOR_DEBUG                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ATM_BR2684                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_BR2684_IPFILTER                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_CLIP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_CLIP_NO_ICMP                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_DRIVERS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATM_DUMMY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_ENI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_ENI_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_ENI_TUNE_BURST                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_FIRESTREAM                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_FORE200E                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_FORE200E_DEBUG                       policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_ATM_FORE200E_TX_RETRY                    policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16'}>
+CONFIG_ATM_FORE200E_USE_TASKLET                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_HE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_HE_USE_SUNI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATM_HORIZON                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_HORIZON_DEBUG                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ATM_IA                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_IA_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_IDT77252                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_IDT77252_DEBUG                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_IDT77252_RCV_ALL                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_IDT77252_USE_SUNI                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ATM_LANAI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_LANE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_MPOA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_NICSTAR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_NICSTAR_USE_IDT77105                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_NICSTAR_USE_SUNI                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ATM_SOLOS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_TCP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ATM_ZATM                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ATM_ZATM_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_ATOMIC64_SELFTEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ATP                                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AUDIT                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUDITSYSCALL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUDIT_ARCH                               policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC                policy<{'arm64': 'y'}>
+CONFIG_AUDIT_COMPAT_GENERIC                     policy<{'arm64': 'y'}>
+CONFIG_AUDIT_GENERIC                            policy<{'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_AUFS_BDEV_LOOP                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_BRANCH_MAX_1023                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BRANCH_MAX_127                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_BRANCH_MAX_32767                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BRANCH_MAX_511                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BR_FUSE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_BR_HFSPLUS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AUFS_BR_RAMFS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_DIRREN                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_FHSM                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AUFS_HNOTIFY                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_INO_T_64                            policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_AUFS_RDU                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_SBILIST                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AUFS_SHWH                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_AUFS_XATTR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_AURORA_NB8800                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_AUTOFS4_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_AUTOFS_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_AUTO_ZRELADDR                            policy<{'armhf': 'y'}>
+CONFIG_AUXDISPLAY                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_AX25                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AX25_DAMA_SLAVE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_AX88796                                  policy<{'armhf': 'm'}>
+CONFIG_AX88796B_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_AX88796_93CX6                            policy<{'armhf': 'n'}>
+CONFIG_AXI_DMAC                                 policy<{'arm64': 'm'}>
+CONFIG_AXP20X_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AXP20X_POWER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AXP288_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_AXP288_CHARGER                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_AXP288_FUEL_GAUGE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B43                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B43LEGACY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B43LEGACY_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43LEGACY_DMA                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_DMA_MODE                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43LEGACY_HWRNG                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_LEDS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_PCI_AUTOSELECT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_PIO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43LEGACY_PIO_MODE                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43_BCMA                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_BCMA_PIO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_BUSES_BCMA                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43_BUSES_BCMA_AND_SSB                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_BUSES_SSB                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43_HWRNG                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_LEDS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PCICORE_AUTOSELECT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PCI_AUTOSELECT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PHY_G                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PHY_HT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PHY_LP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PHY_N                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_PIO                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B43_SDIO                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_B43_SSB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B44                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B44_PCI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B44_PCICORE_AUTOSELECT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B44_PCI_AUTOSELECT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_B53                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B53_MDIO_DRIVER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B53_MMAP_DRIVER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B53_SERDES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B53_SPI_DRIVER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_B53_SRAB_DRIVER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_88PM860X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_AAT2870                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_ADP5520                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_ADP8860                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_ADP8870                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_APPLE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BACKLIGHT_ARCXCNN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_AS3711                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_BD6107                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_CARILLO_RANCH                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BACKLIGHT_CLASS_DEVICE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_BACKLIGHT_DA903X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_DA9052                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_GENERIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_GPIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_LM3533                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_LM3630A                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_LM3639                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_LP855X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_LP8788                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_LV5207LP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_MAX8925                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_PANDORA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_PCF50633                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_PM8941_WLED                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_PWM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_RAVE_SP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_SAHARA                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BACKLIGHT_SKY81452                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKLIGHT_TPS65217                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_BACKLIGHT_WM831X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BACKTRACE_SELF_TEST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BALLOON_COMPACTION                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BASE_FULL                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BASE_SMALL                               policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_BATMAN_ADV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BATMAN_ADV_BATMAN_V                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BATMAN_ADV_BLA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BATMAN_ADV_DAT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BATMAN_ADV_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BATMAN_ADV_DEBUGFS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BATMAN_ADV_MCAST                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BATMAN_ADV_NC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BATMAN_ADV_SYSFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BATMAN_ADV_TRACING                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BATTERY_88PM860X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_ACT8945A                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_AXP20X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_BQ27XXX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BATTERY_BQ27XXX_HDQ                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_BQ27XXX_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DA9030                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DA9052                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DA9150                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DS2760                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DS2780                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DS2781                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_DS2782                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_GAUGE_LTC2941                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_LEGO_EV3                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_MAX17040                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_MAX17042                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_MAX1721X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_RT5033                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_RX51                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_SBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BATTERY_TWL4030_MADC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BAYCOM_EPP                               policy<{'armhf': 'm', 'i386': 'm'}>
+CONFIG_BAYCOM_PAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BAYCOM_SER_FDX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BAYCOM_SER_HDX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BCACHE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCACHE_CLOSURES_DEBUG                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BCACHE_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BCH                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BCM2835_MBOX                             policy<{'arm64': 'y'}>
+CONFIG_BCM2835_POWER                            policy<{'arm64': 'y'}>
+CONFIG_BCM2835_THERMAL                          policy<{'arm64': 'm'}>
+CONFIG_BCM2835_VCHIQ                            policy<{'arm64': 'm'}>
+CONFIG_BCM2835_WDT                              policy<{'arm64': 'm'}>
+CONFIG_BCM7038_L1_IRQ                           policy<{'arm64': 'y'}>
+CONFIG_BCM7038_WDT                              policy<{'arm64': 'm'}>
+CONFIG_BCM7XXX_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCM87XX_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCMA                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BCMA_BLOCKIO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BCMA_DRIVER_GMAC_CMN                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_DRIVER_GPIO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_DRIVER_PCI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_HOST_PCI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_HOST_PCI_POSSIBLE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_HOST_SOC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMA_POSSIBLE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BCMA_SFLASH                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BCMGENET                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BCM_FLEXRM_MBOX                          policy<{'arm64': 'm'}>
+CONFIG_BCM_IPROC_ADC                            policy<{'arm64': 'm'}>
+CONFIG_BCM_KONA_USB2_PHY                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BCM_NET_PHYLIB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BCM_NS_THERMAL                           policy<{'arm64': 'm'}>
+CONFIG_BCM_PDC_MBOX                             policy<{'arm64': 'm'}>
+CONFIG_BCM_SBA_RAID                             policy<{'arm64': 'm'}>
+CONFIG_BCM_SR_THERMAL                           policy<{'arm64': 'm'}>
+CONFIG_BCM_VIDEOCORE                            policy<{'arm64': 'm'}>
+CONFIG_BD70528_WATCHDOG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_BE2ISCSI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BE2NET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BE2NET_BE2                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BE2NET_BE3                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BE2NET_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BE2NET_LANCER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BE2NET_SKYHAWK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BEFS_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BEFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BERLIN2_ADC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_BFQ_CGROUP_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BFQ_GROUP_IOSCHED                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BGMAC                                    policy<{'arm64': 'y'}>
+CONFIG_BGMAC_PLATFORM                           policy<{'arm64': 'y'}>
+CONFIG_BH1750                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BH1780                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BIG_KEYS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BIG_LITTLE                               policy<{'armhf': 'y'}>
+CONFIG_BINARY_PRINTF                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BINFMT_ELF                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BINFMT_ELF_FDPIC                         policy<{'armhf': 'y'}>
+CONFIG_BINFMT_FLAT                              policy<{'armhf': 'y'}>
+CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK          policy<{'armhf': 'y'}>
+CONFIG_BINFMT_FLAT_OLD                          policy<{'armhf': 'y'}>
+CONFIG_BINFMT_MISC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BINFMT_SHARED_FLAT                       policy<{'armhf': 'y'}>
+CONFIG_BINFMT_ZFLAT                             policy<{'armhf': 'y'}>
+CONFIG_BITREVERSE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_CGROUP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_CGROUP_IOCOST                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_CGROUP_IOLATENCY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BLK_CMDLINE_PARSER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEBUG_FS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEBUG_FS_ZONED                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_3W_XXXX_RAID                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_BSG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_BSGLIB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_CRYPTOLOOP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_DM_BUILTIN                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_DRBD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_FD                               policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BLK_DEV_FD_RAWCMD                        policy<{'amd64': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BLK_DEV_INITRD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_INTEGRITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_IO_TRACE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_LOOP                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_LOOP_MIN_COUNT                   policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', 's390x': '8'}>
+CONFIG_BLK_DEV_MD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_DEV_NBD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_NULL_BLK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_PMEM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BLK_DEV_RAM_COUNT                        policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16', 's390x': '16'}>
+CONFIG_BLK_DEV_RBD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BLK_DEV_RSXX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_SKD                              policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_SX8                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_BLK_DEV_THROTTLING_LOW                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BLK_DEV_XPRAM                            policy<{'s390x': 'n'}>
+CONFIG_BLK_DEV_ZONED                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_MQ_PCI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_MQ_RDMA                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_MQ_VIRTIO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_PM                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BLK_RQ_ALLOC_TIME                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_SCSI_REQUEST                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_SED_OPAL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_WBT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLK_WBT_MQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLOCK                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BLOCK_COMPAT                             policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BL_SWITCHER                              policy<{'armhf': 'y'}>
+CONFIG_BL_SWITCHER_DUMMY_IF                     policy<{'armhf': 'm'}>
+CONFIG_BMA180                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMA220                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMC150_ACCEL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMC150_ACCEL_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMC150_ACCEL_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMC150_MAGN                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMC150_MAGN_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMC150_MAGN_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BME680                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BME680_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BME680_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMG160                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMG160_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMG160_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMI160                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMI160_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMI160_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMP280                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMP280_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BMP280_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BNA                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BNX2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BNX2X                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BNX2X_SRIOV                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BNXT                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BNXT_DCB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BNXT_FLOWER_OFFLOAD                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BNXT_HWMON                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BNXT_SRIOV                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BOARD_TPCI200                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BONDING                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC               policy<{'amd64': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE         policy<{'amd64': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_BOOTPARAM_HOTPLUG_CPU0                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE          policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE         policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_BOOTX_TEXT                               policy<{'ppc64el': 'n'}>
+CONFIG_BOOT_PRINTK_DELAY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_BOUNCE                                   policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'n'}>
+CONFIG_BPF                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPFILTER                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPFILTER_UMH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BPF_EVENTS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_JIT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_JIT_ALWAYS_ON                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_KPROBE_OVERRIDE                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BPF_STREAM_PARSER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_SYSCALL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPF_UNPRIV_DEFAULT_OFF                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BPQETHER                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BQL                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BRANCH_PROFILE_NONE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BRCMDBG                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BRCMFMAC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BRCMFMAC_PCIE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BRCMFMAC_PROTO_BCDC                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BRCMFMAC_PROTO_MSGBUF                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BRCMFMAC_SDIO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BRCMFMAC_USB                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BRCMSMAC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BRCMSTB_GISB_ARB                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_BRCMSTB_L2_IRQ                           policy<{'arm64': 'y'}>
+CONFIG_BRCMSTB_PM                               policy<{'arm64': 'y'}>
+CONFIG_BRCMSTB_THERMAL                          policy<{'arm64': 'm'}>
+CONFIG_BRCMUTIL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BRCM_TRACING                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BRIDGE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_802_3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_AMONG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_ARP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_ARPREPLY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_BROUTE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_DNAT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_IP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_IP6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_LIMIT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_LOG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_MARK                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_MARK_T                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_NFLOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_PKTTYPE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_REDIRECT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_SNAT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_STP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_T_FILTER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_T_NAT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_EBT_VLAN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_IGMP_SNOOPING                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BRIDGE_NETFILTER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_NF_EBTABLES                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BRIDGE_VLAN_FILTERING                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BROADCOM_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BSD_DISKLABEL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_BSD_PROCESS_ACCT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BSD_PROCESS_ACCT_V3                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BT                                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BTREE                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BTRFS_ASSERT                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_BTRFS_FS_CHECK_INTEGRITY                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BTRFS_FS_REF_VERIFY                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTRFS_FS_RUN_SANITY_TESTS                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BTT                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_6LOWPAN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_ATH3K                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_BCM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_BNEP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_BNEP_MC_FILTER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_BNEP_PROTO_FILTER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_BREDR                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_CMTP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_DEBUGFS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIBCM203X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIBFUSB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIBLUECARD                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BT_HCIBPA10X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIBT3C                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BT_HCIBTSDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIBTUSB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIBTUSB_BCM                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIBTUSB_MTK                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIBTUSB_RTL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIDTL1                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_BT_HCIRSI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIUART                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIUART_3WIRE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_AG6XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_ATH3K                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_BCM                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_BCSP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_H4                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_INTEL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_LL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_MRVL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_NOKIA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HCIUART_QCA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIUART_RTL                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_BT_HCIUART_SERDEV                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_HCIVHCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_HIDP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_INTEL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_LE                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_LEDS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_MRVL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_MRVL_SDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_MTKSDIO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_MTKUART                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_QCA                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_QCOMSMD                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_BT_RFCOMM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_RFCOMM_TTY                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_BT_RTL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BT_SELFTEST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_BT_WILINK                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_BUG                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BUG_ON_DATA_CORRUPTION                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_BUILDTIME_EXTABLE_SORT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BUILD_BIN2C                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_BUILD_SALT                               policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_C101                                     policy<{'i386': 'm'}>
+CONFIG_C2PORT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_C2PORT_DURAMAR_2150                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CACHEFILES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CACHEFILES_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CACHEFILES_HISTOGRAM                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CACHE_FEROCEON_L2                        policy<{'armhf': 'y'}>
+CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH           policy<{'armhf': 'n'}>
+CONFIG_CACHE_L2X0                               policy<{'armhf': 'y'}>
+CONFIG_CACHE_L2X0_PMU                           policy<{'armhf': 'y'}>
+CONFIG_CACHE_TAUROS2                            policy<{'armhf': 'y'}>
+CONFIG_CACHE_UNIPHIER                           policy<{'armhf': 'y'}>
+CONFIG_CADENCE_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CAIF                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CAIF_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CAIF_HSI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAIF_NETDEV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAIF_SPI_SLAVE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAIF_SPI_SYNC                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CAIF_TTY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAIF_USB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAIF_VIRTIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CALGARY_IOMMU                            policy<{'amd64': 'y'}>
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT         policy<{'amd64': 'y'}>
+CONFIG_CAN                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CAN_8DEV_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_BCM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_CALC_BITTIMING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CAN_CC770                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_CC770_ISA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_CC770_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_C_CAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_C_CAN_PCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_C_CAN_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_DEBUG_DEVICES                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CAN_DEV                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_EMS_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_EMS_PCMCIA                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CAN_EMS_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_ESD_USB2                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_F81601                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_FLEXCAN                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_GRCAN                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_GS_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_GW                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_HI311X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_IFI_CANFD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_J1939                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_JANZ_ICAN3                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_KVASER_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_KVASER_PCIEFD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_KVASER_USB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_MCBA_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_MCP251X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_MSCAN                                policy<{'ppc64el': 'm'}>
+CONFIG_CAN_M_CAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_M_CAN_PLATFORM                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_M_CAN_TCAN4X5X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_PEAK_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_PEAK_PCIEC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CAN_PEAK_PCIEFD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_PEAK_PCMCIA                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CAN_PEAK_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_PLX_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_RAW                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_RCAR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CAN_RCAR_CANFD                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CAN_SJA1000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_SJA1000_ISA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_SJA1000_PLATFORM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_SLCAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_SOFTING                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_SOFTING_CS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CAN_TI_HECC                              policy<{'armhf': 'm'}>
+CONFIG_CAN_TSCAN1                               policy<{'i386': 'm'}>
+CONFIG_CAN_UCAN                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_VCAN                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_VXCAN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAN_XILINXCAN                            policy<{'arm64': 'm'}>
+CONFIG_CAPI_AVM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CAPI_TRACE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CARDBUS                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_CARDMAN_4000                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CARDMAN_4040                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CARL9170                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CARL9170_DEBUGFS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CARL9170_HWRNG                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CARL9170_LEDS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CARL9170_WPC                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CARMINE_DRAM_CUSTOM                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CASSINI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CAVIUM_CPT                               policy<{'arm64': 'm'}>
+CONFIG_CAVIUM_ERRATUM_22375                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_23144                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_23154                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_27456                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_ERRATUM_30115                     policy<{'arm64': 'y'}>
+CONFIG_CAVIUM_PTP                               policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_CAVIUM_TX2_ERRATUM_219                   policy<{'arm64': 'y'}>
+CONFIG_CB710_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CB710_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CB710_DEBUG_ASSUMPTIONS                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CC10001_ADC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CCS811                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CCW                                      policy<{'s390x': 'y'}>
+CONFIG_CCWGROUP                                 policy<{'s390x': 'm'}>
+CONFIG_CCW_CONSOLE                              policy<{'s390x': 'y'}>
+CONFIG_CC_CAN_LINK                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_HAS_ASM_GOTO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_HAS_ASM_INLINE                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_HAS_KASAN_GENERIC                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_HAS_SANCOV_TRACE_PC                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_HAS_SANE_STACKPROTECTOR               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CC_HAS_STACKPROTECTOR_NONE               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG            policy<{'arm64': 'y'}>
+CONFIG_CC_IS_GCC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CC_OPTIMIZE_FOR_SIZE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CDNS_I3C_MASTER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CDROM                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CDROM_PKTCDVD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CDROM_PKTCDVD_BUFFERS                    policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_CDROM_PKTCDVD_WCACHE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CEC_CORE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CEC_GPIO                                 policy<{'amd64-lowlatency': 'm', 'i386-lowlatency': 'm'}>
+CONFIG_CEC_NOTIFIER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CEC_PIN                                  policy<{'amd64-lowlatency': 'y', 'arm64': 'y', 'i386-lowlatency': 'y'}>
+CONFIG_CEC_PIN_ERROR_INJ                        policy<{'amd64-lowlatency': 'n', 'arm64': 'n', 'i386-lowlatency': 'n'}>
+CONFIG_CEC_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CEPH_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CEPH_FSCACHE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CEPH_FS_POSIX_ACL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CEPH_FS_SECURITY_LABEL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CEPH_LIB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CEPH_LIB_PRETTYDEBUG                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CFAG12864B                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CFAG12864B_RATE                          policy<{'amd64': '20', 'i386': '20'}>
+CONFIG_CFG80211                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CFG80211_CERTIFICATION_ONUS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CFG80211_CRDA_SUPPORT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFG80211_DEBUGFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFG80211_DEFAULT_PS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFG80211_DEVELOPER_WARNINGS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFG80211_WEXT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFG80211_WEXT_EXPORT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CFS_BANDWIDTH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUPS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_BPF                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_CPUACCT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CGROUP_DEVICE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_FREEZER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_HUGETLB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_NET_CLASSID                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_NET_PRIO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_PERF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_PIDS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_RDMA                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_SCHED                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CGROUP_WRITEBACK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CHARGER_88PM860X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_ADP5061                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_AXP20X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_BD70528                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_BQ2415X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_BQ24190                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_BQ24257                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_BQ24735                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_BQ25890                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CHARGER_CROS_USBPD                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CHARGER_DA9150                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_DETECTOR_MAX14656                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_GPIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_ISP1704                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_LP8727                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_LP8788                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_LT3651                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_MANAGER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHARGER_MAX14577                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_MAX77650                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_MAX77693                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_MAX8903                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_MAX8997                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_MAX8998                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_PCF50633                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_QCOM_SMBB                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CHARGER_RT9455                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_SBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_SC2731                           policy<{'arm64': 'm'}>
+CONFIG_CHARGER_SMB347                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_TPS65090                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_TPS65217                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CHARGER_TWL4030                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_UCS1002                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARGER_WILCO                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CHARLCD                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHARLCD_BL_FLASH                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHARLCD_BL_OFF                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CHARLCD_BL_ON                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CHECKPOINT_RESTORE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CHECK_SIGNATURE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHELSIO_IPSEC_INLINE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHELSIO_LIB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHELSIO_T1                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHELSIO_T1_1G                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHELSIO_T3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHELSIO_T4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHELSIO_T4VF                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CHELSIO_T4_DCB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHELSIO_T4_FCOE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CHROMEOS_LAPTOP                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CHROMEOS_PSTORE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CHROMEOS_TBMC                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CHROME_PLATFORMS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_CHR_DEV_SCH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CHR_DEV_ST                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CHSC_SCH                                 policy<{'s390x': 'm'}>
+CONFIG_CICADA_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CIFS                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_DEBUG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_DEBUG2                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_DEBUG_DUMP_KEYS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_DFS_UPCALL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_FSCACHE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_POSIX                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_SMB_DIRECT                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_STATS2                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CIFS_UPCALL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_WEAK_PW_HASH                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIFS_XATTR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CIO_DAC                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CLANG_VERSION                            policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_CLEANCACHE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CLKBLD_I8253                             policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CLKDEV_LOOKUP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_CLKEVT_I8253                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK      policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_EXYNOS_MCT                        policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_I8253                             policy<{'i386': 'y'}>
+CONFIG_CLKSRC_IMX_GPT                           policy<{'armhf-generic': 'y'}>
+CONFIG_CLKSRC_IMX_TPM                           policy<{'armhf-generic': 'y'}>
+CONFIG_CLKSRC_MMIO                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLKSRC_QCOM                              policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_TI_32K                            policy<{'armhf': 'y'}>
+CONFIG_CLKSRC_VERSATILE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_ACTIONS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_BCM2835                              policy<{'arm64': 'y'}>
+CONFIG_CLK_BCM_NS2                              policy<{'arm64': 'y'}>
+CONFIG_CLK_BCM_SR                               policy<{'arm64': 'y'}>
+CONFIG_CLK_EMEV2                                policy<{'armhf': 'y'}>
+CONFIG_CLK_HSDK                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_IMX8MM                               policy<{'arm64': 'y'}>
+CONFIG_CLK_IMX8MN                               policy<{'arm64': 'y'}>
+CONFIG_CLK_IMX8MQ                               policy<{'arm64': 'y'}>
+CONFIG_CLK_IMX8QXP                              policy<{'arm64': 'y'}>
+CONFIG_CLK_OWL_S500                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_OWL_S700                             policy<{'arm64': 'y'}>
+CONFIG_CLK_OWL_S900                             policy<{'arm64': 'y'}>
+CONFIG_CLK_QORIQ                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_R7S9210                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7740                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7743                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7745                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A77470                             policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A774A1                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A774C0                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A7778                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7779                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7790                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7791                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7792                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7794                              policy<{'armhf': 'y'}>
+CONFIG_CLK_R8A7795                              policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A7796                              policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77965                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77970                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77980                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77990                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R8A77995                             policy<{'arm64': 'y'}>
+CONFIG_CLK_R9A06G032                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RASPBERRYPI                          policy<{'arm64': 'm'}>
+CONFIG_CLK_RCAR_GEN2                            policy<{'armhf': 'y'}>
+CONFIG_CLK_RCAR_GEN2_CPG                        policy<{'armhf': 'y'}>
+CONFIG_CLK_RCAR_GEN3_CPG                        policy<{'arm64': 'y'}>
+CONFIG_CLK_RCAR_USB2_CLOCK_SEL                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS_CPG_MSSR                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS_CPG_MSTP                     policy<{'armhf': 'y'}>
+CONFIG_CLK_RENESAS_DIV6                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_RENESAS_LEGACY                       policy<{'armhf': 'y'}>
+CONFIG_CLK_RZA1                                 policy<{'armhf': 'y'}>
+CONFIG_CLK_SH73A0                               policy<{'armhf': 'y'}>
+CONFIG_CLK_SP810                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLK_SUNXI                                policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_CLOCKS                         policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_PRCM_SUN6I                     policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_PRCM_SUN8I                     policy<{'arm64': 'y'}>
+CONFIG_CLK_SUNXI_PRCM_SUN9I                     policy<{'arm64': 'y'}>
+CONFIG_CLK_TEGRA_BPMP                           policy<{'armhf-generic': 'y'}>
+CONFIG_CLK_TWL6040                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CLK_UNIPHIER                             policy<{'armhf': 'y'}>
+CONFIG_CLK_VEXPRESS_OSC                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CLOCKSOURCE_WATCHDOG                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CLOCK_THERMAL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_CLONE_BACKWARDS                          policy<{'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CLONE_BACKWARDS2                         policy<{'s390x': 'y'}>
+CONFIG_CLS_U32_MARK                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CLS_U32_PERF                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CLZ_TAB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CM32181                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CM3232                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CM3323                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CM3605                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CM36651                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CMA                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CMA_ALIGNMENT                            policy<{'arm64': '8', 'armhf': '8'}>
+CONFIG_CMA_AREAS                                policy<{'amd64': '7', 'arm64': '7', 'armhf': '7', 'i386': '7', 'ppc64el': '7', 's390x': '7'}>
+CONFIG_CMA_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CMA_DEBUGFS                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CMA_SIZE_SEL_MAX                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CMA_SIZE_SEL_MBYTES                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CMA_SIZE_SEL_MIN                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CMA_SIZE_SEL_PERCENTAGE                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CMDLINE                                  policy<{'arm64': '"console=ttyAMA0"', 'armhf': '""', 'ppc64el': '""'}>
+CONFIG_CMDLINE_BOOL                             policy<{'amd64': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CMDLINE_FORCE                            policy<{'arm64': 'n'}>
+CONFIG_CMDLINE_PARTITION                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_CMM                                      policy<{'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_CMM_IUCV                                 policy<{'s390x': 'y'}>
+CONFIG_CMT_SPEECH                               policy<{'armhf-generic': 'm'}>
+CONFIG_CNIC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CODA_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CODE_PATCHING_SELFTEST                   policy<{'ppc64el': 'n'}>
+CONFIG_COMEDI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_8254                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_8255                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_8255_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_8255_SA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_1032                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_1500                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_1516                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_1564                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_16XX                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_2032                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_2200                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_3120                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_3501                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_APCI_3XXX                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADDI_WATCHDOG                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADL_PCI6208                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADL_PCI7X3X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADL_PCI8164                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADL_PCI9111                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADL_PCI9118                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADQ12B                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADV_PCI1710                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADV_PCI1720                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADV_PCI1723                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADV_PCI1724                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADV_PCI1760                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ADV_PCI_DIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AIO_AIO12_8                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AIO_IIRO_16                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_DIO200                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_DIO200_ISA                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_DIO200_PCI                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PC236                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PC236_ISA                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PC236_PCI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PC263_ISA                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PC263_PCI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PCI224                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_AMPLC_PCI230                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_BOND                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_C6XDIGIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_CB_DAS16_CS                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_CB_PCIDAS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_CB_PCIDAS64                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_CB_PCIDDA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_CB_PCIMDAS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_CB_PCIMDDA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_CONTEC_PCI_DIO                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAC02                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAQBOARD2000                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS08                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS08_CS                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_DAS08_ISA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS08_PCI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS16                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS16M1                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS1800                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS6402                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DAS800                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB            policy<{'amd64': '20480', 'arm64': '20480', 'armhf': '20480', 'i386': '20480', 'ppc64el': '20480'}>
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB               policy<{'amd64': '2048', 'arm64': '2048', 'armhf': '2048', 'i386': '2048', 'ppc64el': '2048'}>
+CONFIG_COMEDI_DMM32AT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT2801                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT2811                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT2814                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT2815                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT2817                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT282X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT3000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DT9812                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_DYNA_PCI10XX                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_FL512                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_GSC_HPDI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ICP_MULTI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_II_PCI20KC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ISADMA                            policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ISA_DRIVERS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_COMEDI_JR3_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_KCOMEDILIB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_KE_COUNTER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ME4000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_ME_DAQ                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_MF6X4                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_MISC_DRIVERS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_COMEDI_MITE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_MPC624                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_MULTIQ3                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_6527                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_65XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_660X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_670X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_ATMIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_ATMIO16D                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_AT_A2150                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_AT_AO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_DAQ_700_CS                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_DAQ_DIO24_CS                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_LABPC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_LABPC_CS                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_LABPC_ISA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_LABPC_ISADMA                   policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_LABPC_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_MIO_CS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_NI_PCIDIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_PCIMIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_ROUTING                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_TIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_TIOCMD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_NI_USB6501                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PARPORT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCI_DRIVERS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL711                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL724                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL726                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL730                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL812                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL816                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCL818                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCM3724                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCMAD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCMCIA_DRIVERS                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_PCMDA12                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCMMIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_PCMUIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_QUATECH_DAQP_CS                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMEDI_RTD520                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_RTI800                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_RTI802                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_S526                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_S626                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_SSV_DNP                           policy<{'i386': 'm'}>
+CONFIG_COMEDI_TEST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_USBDUX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_USBDUXFAST                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_USBDUXSIGMA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_USB_DRIVERS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMEDI_VMK80XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_COMMON_CLK                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_COMMON_CLK_ASPEED                        policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_AXG                           policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_AXG_AUDIO                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_BD718XX                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_CDCE706                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_CDCE925                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_CS2000_CP                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_FIXED_MMIO                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_G12A                          policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_GXBB                          policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_HI3516CV300                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_HI3519                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_HI3660                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_HI3670                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_HI3798CV200                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_HI6220                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_HI655X                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_IPROC                         policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_LOCHNAGAR                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_MAX77686                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_MAX9485                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_MEDIATEK                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MESON8B                       policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MESON_AO_CLKC                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MESON_CPU_DYNDIV              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MESON_DUALDIV                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MESON_EE_CLKC                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MESON_MPLL                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MESON_PHASE                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_MESON_PLL                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MESON_REGMAP                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MESON_SCLK_DIV                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_MESON_VID_PLL_DIV             policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2701                        policy<{'armhf': 'n'}>
+CONFIG_COMMON_CLK_MT2712                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_BDPSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_JPGDECSYS              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_MFGCFG                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT2712_VENCSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_AUDSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_CAMSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_IPESYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_MFGCFG                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6779_VENCSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT6797_VENCSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT7622                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7622_AUDSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7622_ETHSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7622_HIFSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7629                        policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7629_ETHSYS                 policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT7629_HIFSYS                 policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8135                        policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8173                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8183                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_AUDIOSYS               policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_CAMSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IMGSYS                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_ADL                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CONN               policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CORE0              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_IPU_CORE1              policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_MFGCFG                 policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_MMSYS                  policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_VDECSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8183_VENCSYS                policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_MT8516                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_MT8516_AUDSYS                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_PALMAS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_PWM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_QCOM                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_RK808                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_S2MPS11                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_SAMSUNG                       policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_SCMI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SCPI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SI514                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_SI5341                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_SI5351                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_SI544                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_SI570                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_TI_ADPLL                      policy<{'armhf': 'y'}>
+CONFIG_COMMON_CLK_VC5                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_CLK_VERSATILE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_COMMON_CLK_WM831X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_COMMON_CLK_XGENE                         policy<{'arm64': 'y'}>
+CONFIG_COMMON_CLK_XLNX_CLKWZRD                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_COMMON_CLK_ZYNQMP                        policy<{'arm64': 'y'}>
+CONFIG_COMMON_RESET_HI3660                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMMON_RESET_HI6220                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_COMPACTION                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COMPAL_LAPTOP                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COMPAT                                   policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COMPAT_32                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_COMPAT_32BIT_TIME                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COMPAT_BINFMT_ELF                        policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COMPAT_FOR_U64_ALIGNMENT                 policy<{'amd64': 'y'}>
+CONFIG_COMPAT_NETLINK_MESSAGES                  policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_COMPAT_OLD_SIGACTION                     policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COMPAT_VDSO                              policy<{'amd64': 'n', 'i386': 'n', 's390x': 'y'}>
+CONFIG_COMPILE_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CONFIGFS_FS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONNECTOR                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT                 policy<{'amd64': '7', 'arm64': '7', 'armhf': '7', 'i386': '7', 'ppc64el': '7', 's390x': '7'}>
+CONFIG_CONSOLE_LOGLEVEL_QUIET                   policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4', 's390x': '4'}>
+CONFIG_CONSOLE_POLL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CONSOLE_TRANSLATIONS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONTEXT_SWITCH_TRACER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CONTIG_ALLOC                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_COPS                                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_COPS_DAYNA                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_COPS_TANGENT                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CORDIC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_COREDUMP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CORESIGHT                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CORTINA_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_COSA                                     policy<{'i386': 'm'}>
+CONFIG_COUNTER                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CPA_DEBUG                                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_CPCAP_ADC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CPU5_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CPUFREQ_DT_PLATDEV                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CPUMASK_OFFSTACK                         policy<{'amd64': 'y'}>
+CONFIG_CPUSETS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CPU_32v6K                                policy<{'armhf': 'y'}>
+CONFIG_CPU_32v7                                 policy<{'armhf': 'y'}>
+CONFIG_CPU_ABRT_EV7                             policy<{'armhf': 'y'}>
+CONFIG_CPU_BIG_ENDIAN                           policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_CPU_BPREDICT_DISABLE                     policy<{'armhf': 'n'}>
+CONFIG_CPU_CACHE_V7                             policy<{'armhf': 'y'}>
+CONFIG_CPU_CACHE_VIPT                           policy<{'armhf': 'y'}>
+CONFIG_CPU_COPY_V6                              policy<{'armhf': 'y'}>
+CONFIG_CPU_CP15                                 policy<{'armhf': 'y'}>
+CONFIG_CPU_CP15_MMU                             policy<{'armhf': 'y'}>
+CONFIG_CPU_FREQ                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_CPU_FREQ_GOV_ATTR_SET                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_COMMON                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_HAS_ASID                             policy<{'armhf': 'y'}>
+CONFIG_CPU_HOTPLUG_STATE_CONTROL                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CPU_ICACHE_DISABLE                       policy<{'armhf': 'n'}>
+CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND           policy<{'armhf': 'y'}>
+CONFIG_CPU_IDLE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_HALTPOLL                    policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_LADDER                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_MENU                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_GOV_TEO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CPU_ISOLATION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CPU_LITTLE_ENDIAN                        policy<{'ppc64el': 'y'}>
+CONFIG_CPU_PABRT_V7                             policy<{'armhf': 'y'}>
+CONFIG_CPU_PJ4                                  policy<{'armhf': 'y'}>
+CONFIG_CPU_PJ4B                                 policy<{'armhf': 'y'}>
+CONFIG_CPU_PM                                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CPU_RMAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CPU_SPECTRE                              policy<{'armhf': 'y'}>
+CONFIG_CPU_SUP_AMD                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_CENTAUR                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_CYRIX_32                         policy<{'i386': 'y'}>
+CONFIG_CPU_SUP_HYGON                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_INTEL                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SUP_TRANSMETA_32                     policy<{'i386': 'y'}>
+CONFIG_CPU_SUP_UMC_32                           policy<{'i386': 'y'}>
+CONFIG_CPU_SUP_ZHAOXIN                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CPU_SW_DOMAIN_PAN                        policy<{'armhf-generic': 'y'}>
+CONFIG_CPU_THERMAL                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_CPU_THUMB_CAPABLE                        policy<{'armhf': 'y'}>
+CONFIG_CPU_TLB_V7                               policy<{'armhf': 'y'}>
+CONFIG_CPU_V7                                   policy<{'armhf': 'y'}>
+CONFIG_CRAMFS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRAMFS_BLOCKDEV                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CRAMFS_MTD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_CRASH_CORE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC16                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC32                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC32_BIT                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC32_SARWATE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC32_SELFTEST                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC32_SLICEBY4                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_CRC32_SLICEBY8                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC4                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC64                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC7                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC8                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC_CCITT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRC_ITU_T                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRC_T10DIF                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CROSS_MEMORY_ATTACH                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CROS_EC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_CHARDEV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_DEBUGFS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_ISHTP                            policy<{'amd64': 'm'}>
+CONFIG_CROS_EC_LIGHTBAR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_LPC                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_PROTO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_CROS_EC_RPMSG                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CROS_EC_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_SYSFS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CROS_EC_VBC                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CROS_KBD_LED_BACKLIGHT                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CROS_USBPD_LOGGER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_842                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ACOMP2                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ADIANTUM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AEAD                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_AEAD2                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_AEGIS128                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_AEGIS128_SIMD                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_CRYPTO_AES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_AES_ARM                           policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_AES_ARM64                         policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_BS                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_CE                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_CE_BLK                  policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_CE_CCM                  policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK                policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_AES_ARM_BS                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_AES_ARM_CE                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_AES_NI_INTEL                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_AES_S390                          policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_AES_TI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AKCIPHER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_AKCIPHER2                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ALGAPI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ALGAPI2                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ANSI_CPRNG                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ANUBIS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ARC4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_AUTHENC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_BLKCIPHER                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_BLKCIPHER2                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_BLOWFISH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_BLOWFISH_COMMON                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_BLOWFISH_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAMELLIA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64        policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64         policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAMELLIA_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAST5                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CAST5_AVX_X86_64                  policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAST6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CAST6_AVX_X86_64                  policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CAST_COMMON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CBC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CCM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CFB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CHACHA20                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CHACHA20POLY1305                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CHACHA20_NEON                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_CHACHA20_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CMAC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CRC32                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CRC32C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CRC32C_INTEL                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_CRC32C_VPMSUM                     policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_CRC32_ARM_CE                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_CRC32_PCLMUL                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_CRC32_S390                        policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE                policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF_ARM_CE                  policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL                  policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM                  policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_CRYPTD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_CTR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_CTS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DEFLATE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_CRYPTO_DES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_DES3_EDE_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_DES_S390                          policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_DEV_ARTPEC6                       policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_ATMEL_ECC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_ATMEL_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_ATMEL_SHA204A                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_BCM_SPU                       policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_CAVIUM_ZIP                    policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_CCP                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_DEV_CCP_CRYPTO                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_CCP_DD                        policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_CCP_DEBUGFS                   policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_CRYPTO_DEV_CCREE                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_CHELSIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_CHELSIO_TLS                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_CPT                           policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_EXYNOS_RNG                    policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM                      policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API            policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON               policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API           policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC      policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI        policy<{'arm64': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG                policy<{'arm64': 'n', 'armhf-generic': 'n'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD      policy<{'arm64': '255', 'armhf-generic': '255'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD       policy<{'arm64': '2048', 'armhf-generic': '2048'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_JR                   policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE             policy<{'arm64': '9', 'armhf-generic': '9'}>
+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM                policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_GEODE                         policy<{'i386': 'm'}>
+CONFIG_CRYPTO_DEV_HIFN_795X                     policy<{'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG                 policy<{'armhf-generic': 'y'}>
+CONFIG_CRYPTO_DEV_HISI_HPRE                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_QM                       policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_SEC                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_SEC2                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_HISI_ZIP                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_DEV_MARVELL_CESA                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_MEDIATEK                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_MXS_DCP                       policy<{'arm64': 'n', 'armhf-generic': 'n'}>
+CONFIG_CRYPTO_DEV_NITROX                        policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX                policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_NX                            policy<{'ppc64el': 'y'}>
+CONFIG_CRYPTO_DEV_NX_COMPRESS                   policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV           policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES           policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP                          policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP_AES                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP_DES                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_OMAP_SHAM                     policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_PADLOCK                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_DEV_PADLOCK_AES                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_PADLOCK_SHA                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C3XXX                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C62X                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_C62XVF                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_DH895xCC                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_DEV_QCE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_QCOM_RNG                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_ROCKCHIP                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_S5P                           policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_DEV_SAFEXCEL                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_CRYPTO_DEV_SAHARA                        policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_CRYPTO_DEV_SP_CCP                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_CRYPTO_DEV_SP_PSP                        policy<{'amd64': 'y'}>
+CONFIG_CRYPTO_DEV_VIRTIO                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_DEV_VMX                           policy<{'ppc64el': 'y'}>
+CONFIG_CRYPTO_DEV_VMX_ENCRYPT                   policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_DH                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG_CTR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG_HASH                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG_HMAC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_DRBG_MENU                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ECB                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_ECC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ECDH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ECHAINIV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ECRDSA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ENGINE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ESSIV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_FCRYPT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_GCM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_GF128MUL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_GHASH                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_GHASH_ARM64_CE                    policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_GHASH_ARM_CE                      policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL              policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_GHASH_S390                        policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_GLUE_HELPER_X86                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_HASH                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_HASH2                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_HASH_INFO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_HMAC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_HW                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_JITTERENTROPY                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_KEYWRAP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_KHAZAD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_KPP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_KPP2                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_LIB_AES                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_LIB_ARC4                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LIB_DES                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LIB_SHA256                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_LRW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LZ4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LZ4HC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_LZO                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MANAGER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MANAGER2                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MD4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_MD5                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_MD5_PPC                           policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_MICHAEL_MIC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305_AVX2                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305_NEON                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_CRYPTO_NHPOLY1305_SSE2                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_NULL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_NULL2                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_OFB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_PAES_S390                         policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_PCBC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_PCRYPT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_POLY1305                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_POLY1305_X86_64                   policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_RMD128                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD160                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD256                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RMD320                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_RNG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_RNG2                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_RNG_DEFAULT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_RSA                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SALSA20                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SEED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SEQIV                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SERPENT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SERPENT_AVX_X86_64                policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SERPENT_SSE2_586                  policy<{'i386': 'm'}>
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SHA1                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SHA1_ARM                          policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA1_ARM64_CE                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA1_ARM_CE                       policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA1_ARM_NEON                     policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA1_PPC                          policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_SHA1_S390                         policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA1_SSSE3                        policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SHA256                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_SHA256_ARM                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA256_ARM64                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA256_S390                       policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA256_SSSE3                      policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SHA2_ARM64_CE                     policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA2_ARM_CE                       policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SHA3_256_S390                     policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA3_512_S390                     policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA3_ARM64                        policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA512_ARM                        policy<{'armhf': 'm'}>
+CONFIG_CRYPTO_SHA512_ARM64                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA512_ARM64_CE                   policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SHA512_S390                       policy<{'s390x': 'm'}>
+CONFIG_CRYPTO_SHA512_SSSE3                      policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_SIMD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CRYPTO_SM3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SM3_ARM64_CE                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_SM4                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_SM4_ARM64_CE                      policy<{'arm64': 'm'}>
+CONFIG_CRYPTO_STATS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_STREEBOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TEA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TEST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TGR192                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TWOFISH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TWOFISH_586                       policy<{'i386': 'm'}>
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64                policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_TWOFISH_COMMON                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_TWOFISH_X86_64                    policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY               policy<{'amd64': 'm'}>
+CONFIG_CRYPTO_USER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_AEAD                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_HASH                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_RNG                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_USER_API_SKCIPHER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_VMAC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_VPMSUM_TESTER                     policy<{'ppc64el': 'm'}>
+CONFIG_CRYPTO_WP512                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_XCBC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_XTS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_CRYPTO_XXHASH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CRYPTO_ZSTD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CS89x0                                   policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_CS89x0_PLATFORM                          policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_CTCM                                     policy<{'s390x': 'm'}>
+CONFIG_CUSE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_CW1200                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CW1200_WLAN_SDIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CW1200_WLAN_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CXD2880_SPI_DRV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CXL                                      policy<{'ppc64el': 'm'}>
+CONFIG_CXLFLASH                                 policy<{'ppc64el': 'm'}>
+CONFIG_CXL_AFU_DRIVER_OPS                       policy<{'ppc64el': 'y'}>
+CONFIG_CXL_BASE                                 policy<{'ppc64el': 'y'}>
+CONFIG_CXL_LIB                                  policy<{'ppc64el': 'y'}>
+CONFIG_CX_ECAT                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_CYCLADES                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CYPRESS_FIRMWARE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_CYZ_INTR                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DA280                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA311                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9052_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9055_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9062_THERMAL                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9062_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9063_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DA9150_GPADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DASD                                     policy<{'s390x': 'm'}>
+CONFIG_DASD_DIAG                                policy<{'s390x': 'm'}>
+CONFIG_DASD_ECKD                                policy<{'s390x': 'm'}>
+CONFIG_DASD_EER                                 policy<{'s390x': 'y'}>
+CONFIG_DASD_FBA                                 policy<{'s390x': 'm'}>
+CONFIG_DASD_PROFILE                             policy<{'s390x': 'y'}>
+CONFIG_DATA_SHIFT                               policy<{'ppc64el': '16'}>
+CONFIG_DAVICOM_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DAX                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DAX_DRIVER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DCA                                      policy<{'amd64': 'm'}>
+CONFIG_DCACHE_WORD_ACCESS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DCB                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DCDBAS                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DCSSBLK                                  policy<{'s390x': 'm'}>
+CONFIG_DDR                                      policy<{'armhf': 'y'}>
+CONFIG_DE2104X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DE2104X_DSL                              policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_DE4X5                                    policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DEBUGGER                                 policy<{'ppc64el': 'y'}>
+CONFIG_DEBUG_ALIGN_RODATA                       policy<{'arm64': 'n', 'armhf': 'y'}>
+CONFIG_DEBUG_ATOMIC_SLEEP                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_BLOCK_EXT_DEVT                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_BOOT_PARAMS                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_BUGVERBOSE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_CREDENTIALS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_DEVRES                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_DRIVER                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_EFI                                policy<{'arm64': 'n'}>
+CONFIG_DEBUG_ENTRY                              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_FORCE_WEAK_PER_CPU                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_GPIO                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_HIGHMEM                            policy<{'armhf': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_HOTPLUG_CPU0                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_INFO_BTF                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_INFO_DWARF4                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_INFO_REDUCED                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_KERNEL_DC                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DEBUG_KMEMLEAK                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_KOBJECT                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_LIST                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_LL                                 policy<{'armhf': 'n'}>
+CONFIG_DEBUG_LL_INCLUDE                         policy<{'armhf': '"mach/debug-macro.S"'}>
+CONFIG_DEBUG_LOCKING_API_SELFTESTS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_LOCK_ALLOC                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_MEMORY_INIT                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_MISC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEBUG_MUTEXES                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_NMI_SELFTEST                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_NOTIFIERS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_OBJECTS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PAGEALLOC                          policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PAGE_REF                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PERF_USE_VMALLOC                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PER_CPU_MAPS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PINCTRL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DEBUG_PLIST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_PREEMPT                            policy<{'amd64-lowlatency': 'n', 'i386-lowlatency': 'n'}>
+CONFIG_DEBUG_RODATA_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_RSEQ                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_RT_MUTEXES                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_RWSEMS                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SECTION_MISMATCH                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SG                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SHIRQ                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_SPINLOCK                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_STACKOVERFLOW                      policy<{'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DEBUG_STACK_USAGE                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_TEST_DRIVER_REMOVE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_TIMEKEEPING                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_TLBFLUSH                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DEBUG_USER                               policy<{'armhf': 'n'}>
+CONFIG_DEBUG_VF_UART_PORT                       policy<{'armhf-generic': '1'}>
+CONFIG_DEBUG_VIRTUAL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DEBUG_VM                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_WQ_FORCE_RR_CPU                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_WW_MUTEX_SLOWPATH                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEBUG_WX                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DECOMPRESS_BZIP2                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DECOMPRESS_GZIP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DECOMPRESS_LZ4                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DECOMPRESS_LZMA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DECOMPRESS_LZO                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DECOMPRESS_XZ                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_CUBIC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_HOSTNAME                         policy<{'amd64': '"(none)"', 'arm64': '"(none)"', 'armhf': '"(none)"', 'i386': '"(none)"', 'ppc64el': '"(none)"', 's390x': '"(none)"'}>
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT                policy<{'amd64': '120', 'arm64': '120', 'armhf': '120', 'i386': '120', 'ppc64el': '120', 's390x': '120'}>
+CONFIG_DEFAULT_RENO                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_APPARMOR                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEFAULT_SECURITY_DAC                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_SELINUX                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_SMACK                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_SECURITY_TOMOYO                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFAULT_TCP_CONG                         policy<{'amd64': '"cubic"', 'arm64': '"cubic"', 'armhf': '"cubic"', 'i386': '"cubic"', 'ppc64el': '"cubic"', 's390x': '"cubic"'}>
+CONFIG_DEFERRED_STRUCT_PAGE_INIT                policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DEFXX                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DEFXX_MMIO                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DELL_LAPTOP                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_RBTN                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_RBU                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_SMBIOS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_SMBIOS_SMM                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DELL_SMBIOS_WMI                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DELL_SMO8800                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_UART_BACKLIGHT                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI_AIO                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI_DESCRIPTOR                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DELL_WMI_LED                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DEPRECATED_PARAM_STRUCT                  policy<{'armhf': 'n'}>
+CONFIG_DETECT_HUNG_TASK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP                policy<{'armhf': 'y'}>
+CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU                policy<{'armhf': 'y'}>
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DEVFREQ_GOV_PASSIVE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVFREQ_GOV_PERFORMANCE                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVFREQ_GOV_POWERSAVE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVFREQ_GOV_USERSPACE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVFREQ_THERMAL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVICE_PRIVATE                           policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_DEVMEM                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEVPORT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DEV_APPLETALK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DEV_COREDUMP                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DEV_DAX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DEV_DAX_KMEM                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DEV_DAX_PMEM                             policy<{'amd64': 'm', 'ppc64el': 'm'}>
+CONFIG_DEV_DAX_PMEM_COMPAT                      policy<{'amd64': 'm', 'ppc64el': 'm'}>
+CONFIG_DEV_PAGEMAP_OPS                          policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_DHT11                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DIAG288_WATCHDOG                         policy<{'s390x': 'm'}>
+CONFIG_DIMLIB                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DL2K                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DLCI                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DLCI_MAX                                 policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_DLM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DLM_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DLN2_ADC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DM9000                                   policy<{'armhf': 'm'}>
+CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL             policy<{'armhf': 'n'}>
+CONFIG_DM9102                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DMABUF_SELFTESTS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DMADEVICES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DMADEVICES_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DMARD06                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DMARD09                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DMARD10                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DMAR_TABLE                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DMATEST                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DMA_ACPI                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_DMA_API_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DMA_BCM2835                              policy<{'arm64': 'y'}>
+CONFIG_DMA_DECLARE_COHERENT                     policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_DMA_DIRECT_REMAP                         policy<{'arm64': 'y'}>
+CONFIG_DMA_ENGINE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DMA_ENGINE_RAID                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DMA_FENCE_TRACE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DMA_OF                                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_DMA_OMAP                                 policy<{'armhf': 'y'}>
+CONFIG_DMA_REMAP                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DMA_SHARED_BUFFER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DMA_SUN6I                                policy<{'arm64': 'm'}>
+CONFIG_DMA_VIRTUAL_CHANNELS                     policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DMA_VIRT_OPS                             policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DMI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DMIID                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DMI_SYSFS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_DM_BIO_PRISON                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_BUFIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CACHE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CACHE_SMQ                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CLONE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_CRYPT                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_DEBUG                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DM_DELAY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_DUST                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DM_ERA                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_FLAKEY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_INIT                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_INTEGRITY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_LOG_USERSPACE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_LOG_WRITES                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MIRROR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MULTIPATH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MULTIPATH_QL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_MULTIPATH_ST                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_PERSISTENT_DATA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_RAID                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_SNAPSHOT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_SWITCH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_THIN_PROVISIONING                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_UEVENT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_UNSTRIPED                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_VERITY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_VERITY_FEC                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DM_WRITECACHE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_ZERO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DM_ZONED                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DNET                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DNOTIFY                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DNS_RESOLVER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DOUBLEFAULT                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DOVE_CLK                                 policy<{'armhf': 'y'}>
+CONFIG_DOVE_THERMAL                             policy<{'armhf': 'm'}>
+CONFIG_DP83640_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83822_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83848_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83867_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DP83TC811_PHY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DPAA2_CONSOLE                            policy<{'arm64': 'm'}>
+CONFIG_DPAA_ERRATUM_A050385                     policy<{'arm64': 'y'}>
+CONFIG_DPM_WATCHDOG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DPOT_DAC                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DPS310                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DPTF_POWER                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DQL                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRA752_THERMAL                           policy<{'armhf': 'y'}>
+CONFIG_DRAGONRISE_FF                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRBD_FAULT_INJECTION                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_AMDGPU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_AMDGPU_GART_DEBUGFS                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DRM_AMDGPU_SI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_AMDGPU_USERPTR                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_AMD_ACP                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_AMD_DC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_AMD_DC_DCN1_0                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_AMD_DC_DCN2_0                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_AMD_DC_DCN2_1                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_AMD_DC_DSC_SUPPORT                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_ANALOGIX_ANX78XX                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_ANALOGIX_DP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_ARCPGU                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_ARMADA                               policy<{'armhf': 'm'}>
+CONFIG_DRM_ASPEED_GFX                           policy<{'armhf': 'm'}>
+CONFIG_DRM_AST                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_ATMEL_HLCDC                          policy<{'armhf': 'm'}>
+CONFIG_DRM_BRIDGE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_CDNS_DSI                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_CIRRUS_QEMU                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_DEBUG_SELFTEST                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_DP_AUX_CHARDEV                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DRM_DP_CEC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_DRM_DUMB_VGA_DAC                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_DW_HDMI                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_DW_HDMI_AHB_AUDIO                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_DW_HDMI_CEC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_DW_HDMI_I2S_AUDIO                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_DW_MIPI_DSI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_ETNAVIV                              policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_ETNAVIV_THERMAL                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_EXYNOS                               policy<{'armhf': 'm'}>
+CONFIG_DRM_EXYNOS5433_DECON                     policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS7_DECON                        policy<{'armhf': 'n'}>
+CONFIG_DRM_EXYNOS_DSI                           policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_FIMC                          policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_FIMD                          policy<{'armhf': 'n'}>
+CONFIG_DRM_EXYNOS_HDMI                          policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_IPP                           policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_MIC                           policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_MIXER                         policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_ROTATOR                       policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_SCALER                        policy<{'armhf': 'y'}>
+CONFIG_DRM_EXYNOS_VIDI                          policy<{'armhf': 'n'}>
+CONFIG_DRM_FBDEV_EMULATION                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_DRM_FBDEV_OVERALLOC                      policy<{'amd64': '100', 'arm64': '100', 'armhf': '100', 'i386': '100', 'ppc64el': '100', 's390x': '100'}>
+CONFIG_DRM_FSL_DCU                              policy<{'armhf': 'm'}>
+CONFIG_DRM_GEM_CMA_HELPER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_GEM_SHMEM_HELPER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_GM12U320                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_GMA3600                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_GMA500                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_GMA600                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_HDLCD                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_HDLCD_SHOW_UNDERRUN                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_HISI_KIRIN                           policy<{'arm64': 'm'}>
+CONFIG_DRM_I2C_ADV7511                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_I2C_ADV7511_AUDIO                    policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_I2C_ADV7511_CEC                      policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_I2C_ADV7533                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_I2C_CH7006                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I2C_NXP_TDA9950                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I2C_NXP_TDA998X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I2C_SIL164                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_I915                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_I915_ALPHA_SUPPORT                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_CAPTURE_ERROR                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_I915_COMPRESS_ERROR                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_I915_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_GUC                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_MMIO                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_RUNTIME_PM                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_DEBUG_VBLANK_EVADE              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_FORCE_PROBE                     policy<{'amd64': '""', 'i386': '""'}>
+CONFIG_DRM_I915_GVT                             policy<{'amd64': 'y'}>
+CONFIG_DRM_I915_GVT_KVMGT                       policy<{'amd64': 'm'}>
+CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_SELFTEST                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_SPIN_REQUEST                    policy<{'amd64': '5', 'i386': '5'}>
+CONFIG_DRM_I915_SW_FENCE_CHECK_DAG              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND           policy<{'amd64': '250', 'i386': '250'}>
+CONFIG_DRM_I915_USERPTR                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_I915_WERROR                          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_DRM_IMX                                  policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_HDMI                             policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_LDB                              policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_PARALLEL_DISPLAY                 policy<{'armhf': 'm'}>
+CONFIG_DRM_IMX_TVE                              policy<{'armhf': 'm'}>
+CONFIG_DRM_KMS_CMA_HELPER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_KMS_FB_HELPER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_KMS_HELPER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_KOMEDA                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_LIMA                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_LOAD_EDID_FIRMWARE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_LVDS_ENCODER                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_MALI_DISPLAY                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MCDE                                 policy<{'armhf': 'm'}>
+CONFIG_DRM_MEDFIELD                             policy<{'i386': 'y'}>
+CONFIG_DRM_MEDIATEK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MEDIATEK_HDMI                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_MESON                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MESON_DW_HDMI                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MIPI_DBI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_MIPI_DSI                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_MSM                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_MSM_DSI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_10NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_14NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_20NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_28NM_8960_PHY                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_28NM_PHY                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_DSI_PLL                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_GPU_STATE                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_GPU_SUDO                         policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MSM_HDMI_HDCP                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_MSM_REGISTER_LOGGING                 policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_DRM_MXS                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_DRM_MXSFB                                policy<{'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': '-'}>
+CONFIG_DRM_NOUVEAU                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_NOUVEAU_BACKLIGHT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DRM_NOUVEAU_SVM                          policy<{'amd64': 'n', 'ppc64el': 'n'}>
+CONFIG_DRM_NXP_PTN3460                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_OMAP                                 policy<{'armhf': 'n'}>
+CONFIG_DRM_PANEL                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_PANEL_ARM_VERSATILE                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_BRIDGE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_ILITEK_IL9322                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_ILITEK_ILI9881C                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_INNOLUX_P079ZCA                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_JDI_LT070ME05000               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_LG_LB035Q02                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_LG_LG4573                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_LVDS                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_NEC_NL8048HL11                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_NOVATEK_NT39016                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_PANEL_ORISETECH_OTM8009A             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_RAYDIUM_RM67191                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_RAYDIUM_RM68200                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_ROCKTECH_JH057N00900           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_RONBO_RB070D30                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SAMSUNG_LD9040                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6D16D0                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6E63M0                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SEIKO_43WVF1G                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SHARP_LQ101R1SX01              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SHARP_LS037V7DW01              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SHARP_LS043T1LE01              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SIMPLE                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SITRONIX_ST7701                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SITRONIX_ST7789V               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_SONY_ACX565AKM                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_TPO_TD028TTEC1                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_TPO_TD043MTEA1                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_TPO_TPG110                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PANFROST                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_PARADE_PS8622                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_PL111                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_QXL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_RADEON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_RADEON_USERPTR                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DRM_RCAR_DU                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_RCAR_DW_HDMI                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_RCAR_LVDS                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n'}>
+CONFIG_DRM_RCAR_VSP                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DRM_RCAR_WRITEBACK                       policy<{'arm64': 'y'}>
+CONFIG_DRM_ROCKCHIP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DRM_SCHED                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_SII902X                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_SII9234                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_SIL_SII8620                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_STM                                  policy<{'armhf': 'm'}>
+CONFIG_DRM_STM_DSI                              policy<{'armhf': 'm'}>
+CONFIG_DRM_SUN4I                                policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN4I_BACKEND                        policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN4I_HDMI                           policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN4I_HDMI_CEC                       policy<{'arm64': 'y'}>
+CONFIG_DRM_SUN6I_DSI                            policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN8I_DW_HDMI                        policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN8I_MIXER                          policy<{'arm64': 'm'}>
+CONFIG_DRM_SUN8I_TCON_TOP                       policy<{'arm64': 'm'}>
+CONFIG_DRM_TEGRA                                policy<{'armhf-generic': 'm'}>
+CONFIG_DRM_TEGRA_DEBUG                          policy<{'armhf-generic': 'n'}>
+CONFIG_DRM_TEGRA_STAGING                        policy<{'armhf-generic': 'y'}>
+CONFIG_DRM_THINE_THC63LVD1024                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_TILCDC                               policy<{'armhf': 'm'}>
+CONFIG_DRM_TI_SN65DSI86                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_TI_TFP410                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_TOSHIBA_TC358764                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_TOSHIBA_TC358767                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_TTM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_TVE200                               policy<{'armhf': 'm'}>
+CONFIG_DRM_UDL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DRM_VC4                                  policy<{'arm64': 'm'}>
+CONFIG_DRM_VC4_HDMI_CEC                         policy<{'arm64': 'y'}>
+CONFIG_DRM_VGEM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_VIRTIO_GPU                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_VKMS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DRM_VMWGFX                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_DRM_VMWGFX_FBCON                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_DRM_VRAM_HELPER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DRM_XEN                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_DRM_XEN_FRONTEND                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_DS1682                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DS1803                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DS4424                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DST_CACHE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DTC                                      policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_DTL                                      policy<{'ppc64el': 'y'}>
+CONFIG_DTLK                                     policy<{'i386': 'm'}>
+CONFIG_DT_IDLE_STATES                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DUMMY                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DUMMY_CONSOLE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DUMMY_CONSOLE_COLUMNS                    policy<{'amd64': '80', 'arm64': '80', 'i386': '80', 'ppc64el': '80', 's390x': '80'}>
+CONFIG_DUMMY_CONSOLE_ROWS                       policy<{'amd64': '25', 'arm64': '25', 'i386': '25', 'ppc64el': '25', 's390x': '25'}>
+CONFIG_DUMMY_IRQ                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DVB_A8293                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AF9013                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AF9033                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AS102                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AS102_FE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ASCOT2E                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ATBM8830                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AU8522                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AU8522_DTV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AU8522_V4L                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AV7110                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_AV7110_IR                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_AV7110_OSD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_B2C2_FLEXCOP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_B2C2_FLEXCOP_PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_B2C2_FLEXCOP_USB                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_BCM3510                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_BT8XX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_BUDGET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_BUDGET_AV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_BUDGET_CI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_BUDGET_CORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_BUDGET_PATCH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_C8SECTPFE                            policy<{'armhf': 'n'}>
+CONFIG_DVB_CORE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX22700                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX22702                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX24110                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX24116                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX24117                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX24120                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CX24123                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CXD2099                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CXD2820R                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CXD2841ER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_CXD2880                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DDBRIDGE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DDBRIDGE_MSIENABLE                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_DEMUX_SECTION_LOSS_LOG               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_DIB3000MB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DIB3000MC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DIB7000M                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DIB7000P                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DIB8000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DIB9000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DM1105                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DRX39XYJ                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DRXD                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DRXK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DS3000                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_DYNAMIC_MINORS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_EC100                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_FIREDTV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_FIREDTV_INPUT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_GP8PSK_FE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_HELENE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_HOPPER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_HORUS3A                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ISL6405                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ISL6421                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ISL6423                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_IX2505V                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_L64781                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LG2160                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LGDT3305                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LGDT3306A                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LGDT330X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LGS8GL5                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LGS8GXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LNBH25                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LNBH29                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LNBP21                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_LNBP22                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_M88DS3103                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_M88RS2000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MANTIS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MAX_ADAPTERS                         policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_DVB_MB86A16                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MB86A20S                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MMAP                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_MN88443X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MN88472                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MN88473                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MT312                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MT352                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_MXL5XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_NET                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_NETUP_UNIDVB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_NGENE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_NXT200X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_NXT6000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_OR51132                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_OR51211                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_PLL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_PLUTO2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_PT1                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_PT3                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_RTL2830                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_RTL2832                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_RTL2832_SDR                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_S5H1409                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_S5H1411                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_S5H1420                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_S5H1432                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_S921                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SI2165                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SI2168                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SI21XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SMIPCIE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SP2                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SP8870                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_SP887X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STB0899                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STB6000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STB6100                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV0288                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV0297                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV0299                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV0367                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV0900                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV090x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV0910                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV6110                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV6110x                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_STV6111                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TC90522                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA10021                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA10023                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA10048                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA1004X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA10071                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA10086                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA18271C2DD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA665x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA8083                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA8261                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TDA826X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TS2020                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TTUSB_BUDGET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TTUSB_DEC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TUA6100                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TUNER_CX24113                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TUNER_DIB0070                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TUNER_DIB0090                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_TUNER_ITD1000                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ULE_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_A800                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AF9005                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AF9005_REMOTE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AF9015                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AF9035                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_ANYSEE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AU6610                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AZ6007                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_AZ6027                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_CE6230                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_CINERGY_T2                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_CXUSB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_CXUSB_ANALOG                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_DVB_USB_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_USB_DIB0700                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DIB3000MC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DIBUSB_MB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_DVB_USB_DIBUSB_MC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DIGITV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DTT200U                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DTV5100                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DVBSKY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_DW2102                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_EC168                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_GL861                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_GP8PSK                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_LME2510                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_M920X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_MXL111SF                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_NOVA_T_USB2                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_OPERA1                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_PCTV452E                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_RTL28XXU                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_TECHNISAT_USB2                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_TTUSB2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_UMT_010                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_V2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_VP702X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_VP7045                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_USB_ZD1301                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_VES1820                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_VES1X93                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ZD1301_DEMOD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ZL10036                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ZL10039                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DVB_ZL10353                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DWC_XLGMAC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DWC_XLGMAC_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_DWMAC_DWC_QOS_ETH                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DWMAC_GENERIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DWMAC_IPQ806X                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_MEDIATEK                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_MESON                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_QCOM_ETHQOS                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_ROCKCHIP                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_DWMAC_SOCFPGA                            policy<{'arm64': 'm'}>
+CONFIG_DWMAC_SUN8I                              policy<{'arm64': 'm'}>
+CONFIG_DWMAC_SUNXI                              policy<{'arm64': 'n'}>
+CONFIG_DW_APB_ICTL                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DW_APB_TIMER                             policy<{'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_DW_APB_TIMER_OF                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_DW_AXI_DMAC                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_DMAC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_DMAC_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_DMAC_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_EDMA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_EDMA_PCIE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_I3C_MASTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_DW_WATCHDOG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_DYNAMIC_DEBUG                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DYNAMIC_EVENTS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DYNAMIC_FTRACE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DYNAMIC_FTRACE_WITH_REGS                 policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_DYNAMIC_MEMORY_LAYOUT                    policy<{'amd64': 'y'}>
+CONFIG_DYNAMIC_PHYSICAL_MASK                    policy<{'amd64': 'y'}>
+CONFIG_E100                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_E1000                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_E1000E                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_E1000E_HWTS                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EADM_SCH                                 policy<{'s390x': 'm'}>
+CONFIG_EARLY_PRINTK                             policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EARLY_PRINTK_DBGP                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EARLY_PRINTK_USB                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EARLY_PRINTK_USB_XDBC                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EBC_C384_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ECHO                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ECRYPT_FS_MESSAGING                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EDAC                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_EDAC_ALTERA                              policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_ETHERNET                     policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_NAND                         policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_OCRAM                        policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_QSPI                         policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_SDMMC                        policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_SDRAM                        policy<{'arm64': 'y'}>
+CONFIG_EDAC_ALTERA_USB                          policy<{'arm64': 'y'}>
+CONFIG_EDAC_AMD64                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_AMD64_ERROR_INJECTION               policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_EDAC_AMD76X                              policy<{'i386': 'm'}>
+CONFIG_EDAC_ARMADA_XP                           policy<{'armhf': 'y'}>
+CONFIG_EDAC_ATOMIC_SCRUB                        policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_EDAC_BLUEFIELD                           policy<{'arm64': 'm'}>
+CONFIG_EDAC_CPC925                              policy<{'ppc64el': 'm'}>
+CONFIG_EDAC_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_EDAC_DECODE_MCE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_E752X                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_E7XXX                               policy<{'i386': 'm'}>
+CONFIG_EDAC_GHES                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_EDAC_HIGHBANK_L2                         policy<{'armhf': 'm'}>
+CONFIG_EDAC_HIGHBANK_MC                         policy<{'armhf': 'm'}>
+CONFIG_EDAC_I10NM                               policy<{'amd64': 'm'}>
+CONFIG_EDAC_I3000                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I3200                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I5000                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I5100                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I5400                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I7300                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I7CORE                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_I82860                              policy<{'i386': 'm'}>
+CONFIG_EDAC_I82875P                             policy<{'i386': 'm'}>
+CONFIG_EDAC_I82975X                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_IE31200                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_LAYERSCAPE                          policy<{'arm64': 'm'}>
+CONFIG_EDAC_LEGACY_SYSFS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_EDAC_PND2                                policy<{'amd64': 'm'}>
+CONFIG_EDAC_QCOM                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_EDAC_R82600                              policy<{'i386': 'm'}>
+CONFIG_EDAC_SBRIDGE                             policy<{'amd64': 'm'}>
+CONFIG_EDAC_SKX                                 policy<{'amd64': 'm'}>
+CONFIG_EDAC_SUPPORT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_EDAC_SYNOPSYS                            policy<{'arm64': 'm'}>
+CONFIG_EDAC_THUNDERX                            policy<{'arm64': 'm'}>
+CONFIG_EDAC_TI                                  policy<{'armhf': 'm'}>
+CONFIG_EDAC_X38                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EDAC_XGENE                               policy<{'arm64': 'm'}>
+CONFIG_EDD                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EDD_OFF                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EEEPC_LAPTOP                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EEEPC_WMI                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EEH                                      policy<{'ppc64el': 'y'}>
+CONFIG_EEPROM_93CX6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_93XX46                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EEPROM_AT24                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_AT25                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EEPROM_EE1004                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_IDT_89HPESX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_LEGACY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EEPROM_MAX6875                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EFI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_ARMSTUB                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EFI_ARMSTUB_DTB_LOADER                   policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_EFI_BOOTLOADER_CONTROL                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_EFI_CAPSULE_LOADER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'y'}>
+CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH              policy<{'i386': 'y'}>
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_EFI_DEV_PATH_PARSER                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EFI_EARLYCON                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_EFI_ESRT                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_FAKE_MEMMAP                          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_EFI_MIXED                                policy<{'amd64': 'y'}>
+CONFIG_EFI_PARAMS_FROM_FDT                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EFI_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EFI_PGT_DUMP                             policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_EFI_RCI2_TABLE                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EFI_RUNTIME_MAP                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EFI_RUNTIME_WRAPPERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_STUB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_EFI_TEST                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_EFI_VARS_PSTORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_EFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EINT_MTK                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_EISA                                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_NAMES                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_PCI_EISA                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_VIRTUAL_ROOT                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EISA_VLB_PRIMING                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_EL3                                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ELFCORE                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ELF_CORE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EMAC_ROCKCHIP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_EMBEDDED                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EM_TIMER_STI                             policy<{'armhf': 'y'}>
+CONFIG_ENABLE_MUST_CHECK                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ENA_ETHERNET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ENC28J60                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ENC28J60_WRITEVERIFY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ENCLOSURE_SERVICES                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ENCRYPTED_KEYS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ENCX24J600                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ENERGY_MODEL                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ENIC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ENVELOPE_DETECTOR                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_EPAPR_BOOT                               policy<{'ppc64el': 'y'}>
+CONFIG_EPAPR_PARAVIRT                           policy<{'ppc64el': 'y'}>
+CONFIG_EPIC100                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EPOLL                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EQUALIZER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_EROFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT              policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+CONFIG_EROFS_FS_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EROFS_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_SECURITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EROFS_FS_ZIP                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ET131X                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ETEXT_SHIFT                              policy<{'ppc64el': '16'}>
+CONFIG_ETHERNET                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ETHOC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_EUROTECH_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EVENTFD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVENT_TRACING                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_ADD_XATTRS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EVM_EXTRA_SMACK_XATTRS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXFAT_DEBUG_MSG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_EXFAT_DEFAULT_CODEPAGE                   policy<{'amd64': '437', 'arm64': '437', 'armhf': '437', 'i386': '437', 'ppc64el': '437'}>
+CONFIG_EXFAT_DEFAULT_IOCHARSET                  policy<{'amd64': '"utf8"', 'arm64': '"utf8"', 'armhf': '"utf8"', 'i386': '"utf8"', 'ppc64el': '"utf8"'}>
+CONFIG_EXFAT_DELAYED_SYNC                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_EXFAT_DISCARD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_EXFAT_DONT_MOUNT_VFAT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_EXFAT_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXFAT_KERNEL_DEBUG                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_EXPERT                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXPOLINE                                 policy<{'s390x': 'y'}>
+CONFIG_EXPOLINE_AUTO                            policy<{'s390x': 'y'}>
+CONFIG_EXPOLINE_FULL                            policy<{'s390x': 'n'}>
+CONFIG_EXPOLINE_OFF                             policy<{'s390x': 'n'}>
+CONFIG_EXPORTFS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXPORTFS_BLOCK_OPS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_EXT4_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_FS_POSIX_ACL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_FS_SECURITY                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXT4_USE_FOR_EXT2                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_EXTCON                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_EXTCON_ADC_JACK                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_ARIZONA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_AXP288                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_FSA9480                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_GPIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_INTEL_CHT_WC                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_INTEL_INT3496                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_INTEL_MRFLD                       policy<{'i386': 'm'}>
+CONFIG_EXTCON_MAX14577                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_MAX3355                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_MAX77693                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_MAX77843                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_MAX8997                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_PALMAS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_PTN5150                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_QCOM_SPMI_MISC                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_EXTCON_RT8973A                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_SM5502                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTCON_USBC_CROS_EC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_EXTCON_USB_GPIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_EXTRA_FIRMWARE                           policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_EXTRA_TARGETS                            policy<{'ppc64el': '""'}>
+CONFIG_EXYNOS_ADC                               policy<{'armhf': 'm'}>
+CONFIG_EXYNOS_AUDSS_CLK_CON                     policy<{'armhf': 'm'}>
+CONFIG_EXYNOS_CHIPID                            policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_CPU_SUSPEND                       policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_IOMMU                             policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_IOMMU_DEBUG                       policy<{'armhf': 'n'}>
+CONFIG_EXYNOS_MCPM                              policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_PMU                               policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_PMU_ARM_DRIVERS                   policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_PM_DOMAINS                        policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_SROM                              policy<{'armhf': 'y'}>
+CONFIG_EXYNOS_THERMAL                           policy<{'armhf': 'y'}>
+CONFIG_EZCHIP_NPS_MANAGEMENT_ENET               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_EZX_PCAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_F2FS_CHECK_FS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_F2FS_FAULT_INJECTION                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_F2FS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_F2FS_FS_POSIX_ACL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_F2FS_FS_SECURITY                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_F2FS_FS_XATTR                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_F2FS_IO_TRACE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_F2FS_STAT_FS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_F71808E_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FAILOVER                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FAIR_GROUP_SCHED                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FANOTIFY                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FARSYNC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FAT_DEFAULT_CODEPAGE                     policy<{'amd64': '437', 'arm64': '437', 'armhf': '437', 'i386': '437', 'ppc64el': '437', 's390x': '437'}>
+CONFIG_FAT_DEFAULT_IOCHARSET                    policy<{'amd64': '"iso8859-1"', 'arm64': '"iso8859-1"', 'armhf': '"iso8859-1"', 'i386': '"iso8859-1"', 'ppc64el': '"iso8859-1"', 's390x': '"iso8859-1"'}>
+CONFIG_FAT_DEFAULT_UTF8                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FAT_FS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FAULT_INJECTION                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FB                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_3DFX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_3DFX_ACCEL                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_3DFX_I2C                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_ARC                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_ARK                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_ARMCLCD                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_FB_ASILIANT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_ATY                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_ATY128                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_ATY128_BACKLIGHT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_ATY_BACKLIGHT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_ATY_CT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_ATY_GENERIC_LCD                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_ATY_GX                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_BACKLIGHT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_BOOT_VESA_SUPPORT                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_CARILLO_RANCH                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_CARMINE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_CARMINE_DRAM_EVAL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_CFB_COPYAREA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_FB_CFB_FILLRECT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_FB_CFB_IMAGEBLIT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_FB_CFB_REV_PIXELS_IN_BYTE                policy<{'armhf-generic': 'y'}>
+CONFIG_FB_CIRRUS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_CMDLINE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_CYBER2000                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_CYBER2000_DDC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_DA8XX                                 policy<{'armhf-generic': 'm'}>
+CONFIG_FB_DDC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_DEFERRED_IO                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_EFI                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_FB_FOREIGN_ENDIAN                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FB_GEODE                                 policy<{'i386': 'y'}>
+CONFIG_FB_GEODE_GX                              policy<{'i386': 'm'}>
+CONFIG_FB_GEODE_GX1                             policy<{'i386': 'm'}>
+CONFIG_FB_GEODE_LX                              policy<{'i386': 'm'}>
+CONFIG_FB_HECUBA                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_HGA                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_HYPERV                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_I740                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_I810                                  policy<{'i386': 'm'}>
+CONFIG_FB_I810_GTF                              policy<{'i386': 'n'}>
+CONFIG_FB_IBM_GXT4500                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_IMSTT                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_IMX                                   policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_FB_INTEL                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_INTEL_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_FB_INTEL_I2C                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_KYRO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_LE80578                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_MACMODES                              policy<{'ppc64el': 'y'}>
+CONFIG_FB_MATROX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_MATROX_G                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_MATROX_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_MATROX_MAVEN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_MATROX_MILLENIUM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_MATROX_MYSTIQUE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_MB862XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_MB862XX_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_MB862XX_LIME                          policy<{'ppc64el': 'n'}>
+CONFIG_FB_MB862XX_PCI_GDC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_METRONOME                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_MODE_HELPERS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_MX3                                   policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_FB_N411                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_NEOMAGIC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_NOTIFY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FB_NVIDIA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_NVIDIA_BACKLIGHT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_NVIDIA_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_NVIDIA_I2C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_OF                                    policy<{'ppc64el': 'y'}>
+CONFIG_FB_OMAP2                                 policy<{'armhf': 'm'}>
+CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV             policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_CONNECTOR_DVI                   policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_CONNECTOR_HDMI                  policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DEBUG_SUPPORT                   policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS                             policy<{'armhf': 'm'}>
+CONFIG_FB_OMAP2_DSS_DEBUG                       policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_DEBUGFS                     policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_DPI                         policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP2_DSS_DSI                         policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_HDMI_COMMON                 policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP2_DSS_INIT                        policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP2_DSS_MIN_FCK_PER_PCK             policy<{'armhf': '0'}>
+CONFIG_FB_OMAP2_DSS_SDI                         policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_DSS_SLEEP_AFTER_VENC_RESET      policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP2_DSS_VENC                        policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP2_ENCODER_OPA362                  policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_ENCODER_TFP410                  policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_ENCODER_TPD12S015               policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_NUM_FBS                         policy<{'armhf': '3'}>
+CONFIG_FB_OMAP2_PANEL_DPI                       policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_PANEL_DSI_CM                    policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02        policy<{'armhf': 'n'}>
+CONFIG_FB_OMAP4_DSS_HDMI                        policy<{'armhf': 'y'}>
+CONFIG_FB_OMAP5_DSS_HDMI                        policy<{'armhf': 'n'}>
+CONFIG_FB_OPENCORES                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_PM2                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_PM2_FIFO_DISCONNECT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_PM3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA          policy<{'armhf': 'y'}>
+CONFIG_FB_RADEON                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_RADEON_BACKLIGHT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_RADEON_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_RADEON_I2C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_RIVA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_RIVA_BACKLIGHT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_RIVA_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_RIVA_I2C                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_S1D13XXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_S3                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_S3_DDC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_SAVAGE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_SAVAGE_ACCEL                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_FB_SAVAGE_I2C                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_SH_MOBILE_LCDC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FB_SIMPLE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_SIS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_SIS_300                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_SIS_315                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FB_SM501                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_SM712                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_SM750                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_SMSCUFX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_SSD1307                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_SVGALIB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_SYS_COPYAREA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FB_SYS_FILLRECT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FB_SYS_FOPS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FB_SYS_IMAGEBLIT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FB_TFT                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_AGM1264K_FL                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_BD663474                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_HX8340BN                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_HX8347D                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_HX8353D                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_HX8357D                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9163                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9320                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9325                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9340                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9341                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9481                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ILI9486                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_PCD8544                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_RA8875                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_S6D02A1                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_S6D1121                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_SH1106                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_SSD1289                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_SSD1305                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_SSD1306                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_SSD1331                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_SSD1351                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ST7735R                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_ST7789V                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_TINYLCD                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_TLS8204                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_UC1611                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_UC1701                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_UPD161704                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TFT_WATTEROTT                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_TILEBLITTING                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FB_TMIO                                  policy<{'armhf': 'm'}>
+CONFIG_FB_TMIO_ACCELL                           policy<{'armhf': 'y'}>
+CONFIG_FB_TRIDENT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_UDL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_UVESA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_VESA                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_VGA16                                 policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FB_VIA                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FB_VIA_DIRECT_PROCFS                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_FB_VIA_X_COMPATIBILITY                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_FB_VIRTUAL                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FB_VOODOO1                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_VT8623                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FB_XILINX                                policy<{'arm64': 'm'}>
+CONFIG_FCOE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FCOE_FNIC                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FDDI                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FEALNX                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FEC                                      policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_FIB_RULES                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FIELDBUS_DEV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FILE_LOCKING                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FIND_BIT_BENCHMARK                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FIQ                                      policy<{'armhf-generic': 'y'}>
+CONFIG_FIREWIRE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FIREWIRE_NET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FIREWIRE_NOSY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FIREWIRE_OHCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FIREWIRE_SBP2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FIREWIRE_SERIAL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FIRMWARE_EDID                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FIRMWARE_MEMMAP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_FIXED_PHY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_FIX_EARLYCON_MEM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_FLATMEM                                  policy<{'armhf': 'y'}>
+CONFIG_FLATMEM_MANUAL                           policy<{'i386': 'n'}>
+CONFIG_FLAT_NODE_MEM_MAP                        policy<{'armhf': 'y'}>
+CONFIG_FM10K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FONTS                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_10x18                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_6x10                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_6x11                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_7x14                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_8x16                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_8x8                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_ACORN_8x8                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_MINI_4x6                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_PEARL_8x8                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_SUN12x22                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_SUN8x16                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FONT_SUPPORT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FONT_TER16x32                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FORCEDETH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FORCE_DYNAMIC_FTRACE                     policy<{'i386': 'y'}>
+CONFIG_FORCE_MAX_ZONEORDER                      policy<{'arm64': '13', 'armhf-generic': '12', 'armhf-generic-lpae': '11', 'ppc64el': '9', 's390x': '9'}>
+CONFIG_FORCE_PCI                                policy<{'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_FORCE_SMP                                policy<{'ppc64el': 'y'}>
+CONFIG_FORTIFY_SOURCE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FPGA                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FPGA_BRIDGE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FPGA_DFL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_FPGA_DFL_AFU                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_DFL_FME                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_DFL_FME_BRIDGE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_DFL_FME_MGR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_DFL_FME_REGION                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_DFL_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_MGR_ALTERA_CVP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FPGA_MGR_ALTERA_PS_SPI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_MGR_ICE40_SPI                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_MGR_MACHXO2_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_MGR_STRATIX10_SOC                   policy<{'arm64': 'm'}>
+CONFIG_FPGA_MGR_XILINX_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FPGA_MGR_ZYNQMP_FPGA                     policy<{'arm64': 'm'}>
+CONFIG_FPGA_REGION                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FRAMEBUFFER_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRAME_POINTER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_FRAME_VECTOR                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FRAME_WARN                               policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'i386': '1024', 'ppc64el': '2048', 's390x': '1024'}>
+CONFIG_FREEZER                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FRONTSWAP                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FSCACHE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_FSCACHE_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FSCACHE_HISTOGRAM                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FSCACHE_OBJECT_LIST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FSCACHE_STATS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FSI                                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSI_MASTER_AST_CF                        policy<{'armhf': 'm'}>
+CONFIG_FSI_MASTER_GPIO                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSI_MASTER_HUB                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSI_NEW_DEV_NODE                         policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+CONFIG_FSI_OCC                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSI_SBEFIFO                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSI_SCOM                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSL_BMAN_TEST                            policy<{'arm64': 'm'}>
+CONFIG_FSL_BMAN_TEST_API                        policy<{'arm64': 'n'}>
+CONFIG_FSL_DPAA                                 policy<{'arm64': 'y'}>
+CONFIG_FSL_DPAA2                                policy<{'arm64': 'y'}>
+CONFIG_FSL_DPAA2_ETH                            policy<{'arm64': 'm'}>
+CONFIG_FSL_DPAA2_ETHSW                          policy<{'arm64': 'm'}>
+CONFIG_FSL_DPAA2_PTP_CLOCK                      policy<{'arm64': 'm'}>
+CONFIG_FSL_DPAA_CHECKING                        policy<{'arm64': 'y'}>
+CONFIG_FSL_DPAA_ETH                             policy<{'arm64': 'm'}>
+CONFIG_FSL_EDMA                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FSL_ENETC                                policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_HW_TIMESTAMPING                policy<{'arm64': 'y'}>
+CONFIG_FSL_ENETC_MDIO                           policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_PTP_CLOCK                      policy<{'arm64': 'm'}>
+CONFIG_FSL_ENETC_VF                             policy<{'arm64': 'm'}>
+CONFIG_FSL_ERRATUM_A008585                      policy<{'arm64': 'y'}>
+CONFIG_FSL_FMAN                                 policy<{'arm64': 'y'}>
+CONFIG_FSL_GUTS                                 policy<{'arm64': 'y', 'armhf-generic': 'y', 'ppc64el': 'y'}>
+CONFIG_FSL_IFC                                  policy<{'arm64': 'y'}>
+CONFIG_FSL_IMX8_DDR_PMU                         policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_FSL_LBC                                  policy<{'ppc64el': 'y'}>
+CONFIG_FSL_MC_BUS                               policy<{'arm64': 'y'}>
+CONFIG_FSL_MC_DPIO                              policy<{'arm64': 'm'}>
+CONFIG_FSL_PQ_MDIO                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_FSL_QDMA                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_FSL_QMAN_TEST                            policy<{'arm64': 'n'}>
+CONFIG_FSL_XGMAC_MDIO                           policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_FSNOTIFY                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_DAX                                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_DAX_LIMITED                           policy<{'s390x': 'y'}>
+CONFIG_FS_DAX_PMD                               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_FS_ENCRYPTION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_IOMAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_MBCACHE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_POSIX_ACL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_VERITY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FS_VERITY_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FTGMAC100                                policy<{'armhf': 'm'}>
+CONFIG_FTL                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FTMAC100                                 policy<{'armhf': 'm'}>
+CONFIG_FTM_QUADDEC                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_FTRACE                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FTRACE_MCOUNT_RECORD                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FTRACE_STARTUP_TEST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_FTRACE_SYSCALLS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FTR_FIXUP_SELFTEST                       policy<{'ppc64el': 'n'}>
+CONFIG_FTWDT010_WATCHDOG                        policy<{'armhf': 'm'}>
+CONFIG_FUEL_GAUGE_SC27XX                        policy<{'arm64': 'm'}>
+CONFIG_FUJITSU_ERRATUM_010001                   policy<{'arm64': 'y'}>
+CONFIG_FUJITSU_ES                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_FUJITSU_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FUJITSU_TABLET                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_FUNCTION_ERROR_INJECTION                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FUNCTION_GRAPH_TRACER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUNCTION_PROFILER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUNCTION_TRACER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUSION                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_FUSION_CTL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FUSION_FC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FUSION_LAN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FUSION_LOGGING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_FUSION_MAX_SGE                           policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128'}>
+CONFIG_FUSION_SAS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FUSION_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FUTEX                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FUTEX_PI                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FWTTY_MAX_CARD_PORTS                     policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32'}>
+CONFIG_FWTTY_MAX_TOTAL_PORTS                    policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64'}>
+CONFIG_FW_CFG_SYSFS                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_FW_CFG_SYSFS_CMDLINE                     policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_FW_LOADER                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FW_LOADER_COMPRESS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FW_LOADER_PAGED_BUF                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FW_LOADER_USER_HELPER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_FXAS21002C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FXAS21002C_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_FXAS21002C_SPI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GACT_PROB                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GADGET_UAC1                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GADGET_UAC1_LEGACY                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_GAMEPORT                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GAMEPORT_EMU10K1                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GAMEPORT_FM801                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GAMEPORT_L4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GAMEPORT_NS558                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GARP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GART_IOMMU                               policy<{'amd64': 'y'}>
+CONFIG_GCC_VERSION                              policy<{'amd64': '90400', 'arm64': '90400', 'armhf': '90400', 'i386': '90400', 'ppc64el': '90400', 's390x': '90400'}>
+CONFIG_GCOV_KERNEL                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GDB_SCRIPTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GDS_FORCE_MITIGATION                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_GEMINI_ETHERNET                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GENERIC_ADC_BATTERY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GENERIC_ADC_THERMAL                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GENERIC_ALLOCATOR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_ARCH_TOPOLOGY                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GENERIC_BUG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS            policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_CALIBRATE_DELAY                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_CLOCKEVENTS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_CMOS_UPDATE                      policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_CPU                              policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_CPU_AUTOPROBE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_CPU_VULNERABILITIES              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_CSUM                             policy<{'arm64': 'y'}>
+CONFIG_GENERIC_EARLY_IOREMAP                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_FIND_FIRST_BIT                   policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_GETTIMEOFDAY                     policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_HWEIGHT                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_IDLE_POLL_SETUP                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GENERIC_IOMAP                            policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_IRQ_CHIP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_IRQ_DEBUGFS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_IRQ_MIGRATION                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_IRQ_MULTI_HANDLER                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GENERIC_IRQ_PROBE                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_IRQ_RESERVATION_MODE             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_IRQ_SHOW                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_IRQ_SHOW_LEVEL                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_ISA_DMA                          policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_MSI_IRQ                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_MSI_IRQ_DOMAIN                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_NET_UTILS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_PCI_IOMAP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_PENDING_IRQ                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GENERIC_PHY                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_GENERIC_PHY_MIPI_DPHY                    policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_PINCONF                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_PINCTRL_GROUPS                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_PINMUX_FUNCTIONS                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_SCHED_CLOCK                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GENERIC_SMP_IDLE_THREAD                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_STRNCPY_FROM_USER                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_STRNLEN_USER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GENERIC_TIME_VSYSCALL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_TRACER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GENERIC_VDSO_32                          policy<{'i386': 'y'}>
+CONFIG_GENEVE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GENWQE                                   policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY           policy<{'amd64': '0', 'arm64': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_GEN_RTC                                  policy<{'ppc64el': 'y'}>
+CONFIG_GEOS                                     policy<{'i386': 'y'}>
+CONFIG_GFS2_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GFS2_FS_LOCKING_DLM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GIANFAR                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_GIGASET_BASE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GIGASET_CAPI                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_GIGASET_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_GIGASET_M101                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GIGASET_M105                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GLOB                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GLOB_SELFTEST                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GNSS                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GNSS_MTK_SERIAL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GNSS_SERIAL                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GNSS_SIRF_SERIAL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GNSS_UBX_SERIAL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GOLDFISH                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_GOOGLE_FIRMWARE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_GP2AP020A00F                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPD_POCKET_FAN                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIOLIB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GPIOLIB_FASTPATH_LIMIT                   policy<{'amd64': '512', 'arm64': '512', 'armhf': '512', 'i386': '512', 'ppc64el': '512', 's390x': '512'}>
+CONFIG_GPIOLIB_IRQCHIP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GPIO_104_DIO_48E                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_104_IDIO_16                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_104_IDI_48                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_74X164                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_74XX_MMIO                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_ACPI                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_GPIO_ADNP                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_ADP5520                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_ADP5588                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_ALTERA                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_AMD8111                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_AMDPT                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_AMD_FCH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_ARIZONA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_ASPEED                              policy<{'armhf': 'm'}>
+CONFIG_GPIO_BD70528                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_BD9571MWV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_BRCMSTB                             policy<{'arm64': 'm'}>
+CONFIG_GPIO_BT8XX                               policy<{'s390x': 'm'}>
+CONFIG_GPIO_CADENCE                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_CRYSTAL_COVE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_CS5535                              policy<{'i386': 'm'}>
+CONFIG_GPIO_DA9052                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_DA9055                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_DAVINCI                             policy<{'arm64': 'y'}>
+CONFIG_GPIO_DLN2                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_DWAPB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_EIC_SPRD                            policy<{'arm64': 'm'}>
+CONFIG_GPIO_EXAR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_F7188X                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_FTGPIO010                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_GENERIC                             policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_GPIO_GENERIC_PLATFORM                    policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_GPIO_MM                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_GRGPIO                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_GW_PLD                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_HLWD                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_ICH                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_INTEL_MID                           policy<{'i386': 'y'}>
+CONFIG_GPIO_IT87                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_JANZ_TTL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_KEMPLD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_LP3943                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_LP873X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_LP87565                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_LYNXPOINT                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_GPIO_MADERA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MAX3191X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MAX7300                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_MAX7301                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MAX730X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MAX732X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_MAX77620                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MAX77650                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MB86S7X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_MC33880                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MENZ127                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MERRIFIELD                          policy<{'i386': 'n'}>
+CONFIG_GPIO_MLXBF                               policy<{'arm64': 'm'}>
+CONFIG_GPIO_ML_IOH                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_MOCKUP                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GPIO_MOXTET                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_MPC8XXX                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_MSIC                                policy<{'i386': 'y'}>
+CONFIG_GPIO_MVEBU                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_MXC                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_GPIO_OMAP                                policy<{'armhf': 'y'}>
+CONFIG_GPIO_PALMAS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_PCA953X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_PCF857X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_PCH                                 policy<{'i386': 'm'}>
+CONFIG_GPIO_PCIE_IDIO_24                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_PCI_IDIO_16                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_PISOSR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_PL061                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_GPIO_PMIC_EIC_SPRD                       policy<{'arm64': 'm'}>
+CONFIG_GPIO_RASPBERRYPI_EXP                     policy<{'arm64': 'm'}>
+CONFIG_GPIO_RC5T583                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_RCAR                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_GPIO_RDC321X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GPIO_SAMA5D2_PIOBU                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_SCH                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_SCH311X                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_SIOX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_SPRD                                policy<{'arm64': 'm'}>
+CONFIG_GPIO_STMPE                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_SYSCON                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_SYSFS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GPIO_TC3589X                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_TEGRA                               policy<{'armhf-generic': 'y'}>
+CONFIG_GPIO_THUNDERX                            policy<{'arm64': 'm'}>
+CONFIG_GPIO_TIMBERDALE                          policy<{'i386': 'y'}>
+CONFIG_GPIO_TPIC2810                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GPIO_TPS65086                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_TPS65218                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_TPS6586X                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_TPS65910                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GPIO_TPS65912                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_TPS68470                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_GPIO_TQMX86                              policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_TS4800                              policy<{'armhf-generic': 'm'}>
+CONFIG_GPIO_TS4900                              policy<{'armhf-generic': 'm'}>
+CONFIG_GPIO_TWL6040                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_UCB1400                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_UNIPHIER                            policy<{'armhf': 'm'}>
+CONFIG_GPIO_VF610                               policy<{'armhf-generic': 'y'}>
+CONFIG_GPIO_VIPERBOARD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_VX855                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_WATCHDOG                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_WHISKEY_COVE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_WINBOND                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_WM831X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_WM8350                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_WM8994                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_WS16C48                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_GPIO_XGENE                               policy<{'arm64': 'y'}>
+CONFIG_GPIO_XGENE_SB                            policy<{'arm64': 'm'}>
+CONFIG_GPIO_XILINX                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_GPIO_XLP                                 policy<{'arm64': 'm'}>
+CONFIG_GPIO_XRA1403                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GPIO_ZEVIO                               policy<{'armhf': 'y'}>
+CONFIG_GPIO_ZYNQ                                policy<{'arm64': 'm'}>
+CONFIG_GRACE_PERIOD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GREENASIA_FF                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_GREYBUS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_GREYBUS_AUDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_BOOTROM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_BRIDGED_PHY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_ES2                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_FIRMWARE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_GPIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_HID                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_LIGHT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_LOG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_LOOPBACK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_POWER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_PWM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_RAW                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_SDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_UART                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GREYBUS_VIBRATOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GRO_CELLS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_GS_FPGABOOT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_GTP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_GUP_BENCHMARK                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_GUP_GET_PTE_LOW_HIGH                     policy<{'i386': 'y'}>
+CONFIG_GVE                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HABANA_AI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HALTPOLL_CPUIDLE                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HAMACHI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HAMRADIO                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HANDLE_DOMAIN_IRQ                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HANGCHECK_TIMER                          policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_HAPPYMEAL                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HARDENED_USERCOPY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HARDENED_USERCOPY_FALLBACK               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HARDENED_USERCOPY_PAGESPAN               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HARDEN_BRANCH_HISTORY                    policy<{'armhf': 'y'}>
+CONFIG_HARDEN_BRANCH_PREDICTOR                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HARDEN_EL2_VECTORS                       policy<{'arm64': 'y'}>
+CONFIG_HARDIRQS_SW_RESEND                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP               policy<{'amd64': 'y'}>
+CONFIG_HARDLOCKUP_DETECTOR                      policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HARDLOCKUP_DETECTOR_PERF                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAS_DMA                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAS_IOMEM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAS_IOPORT_MAP                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_ACPI_APEI                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_ACPI_APEI_NMI                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_AUDITSYSCALL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_BITREVERSE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES              policy<{'amd64': 'y'}>
+CONFIG_HAVE_ARCH_HUGE_VMAP                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_ARCH_JUMP_LABEL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_KASAN                          policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_KASAN_SW_TAGS                  policy<{'arm64': 'y'}>
+CONFIG_HAVE_ARCH_KGDB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_ARCH_MMAP_RND_BITS                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_ARCH_NVRAM_OPS                      policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_ARCH_PFN_VALID                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_ARCH_SECCOMP_FILTER                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_SOFT_DIRTY                     policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_STACKLEAK                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_HAVE_ARCH_TRACEHOOK                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE           policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD       policy<{'amd64': 'y'}>
+CONFIG_HAVE_ARCH_VMAP_STACK                     policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_ARM_ARCH_TIMER                      policy<{'armhf': 'y'}>
+CONFIG_HAVE_ARM_SCU                             policy<{'armhf': 'y'}>
+CONFIG_HAVE_ARM_SMCCC                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HAVE_ARM_TWD                             policy<{'armhf': 'y'}>
+CONFIG_HAVE_ASM_MODVERSIONS                     policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_ATOMIC_IOMAP                        policy<{'i386': 'y'}>
+CONFIG_HAVE_BOOTMEM_INFO_NODE                   policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_CLK                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_HAVE_CLK_PREPARE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_HAVE_CMPXCHG_DOUBLE                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_CMPXCHG_LOCAL                       policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_CONTEXT_TRACKING                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_COPY_THREAD_TLS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_C_RECORDMCOUNT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_DEBUG_BUGVERBOSE                    policy<{'arm64': 'y'}>
+CONFIG_HAVE_DEBUG_KMEMLEAK                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_DEBUG_STACKOVERFLOW                 policy<{'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_DMA_CONTIGUOUS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_DYNAMIC_FTRACE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS            policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_EBPF_JIT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_EISA                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_EXIT_THREAD                         policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_HAVE_FAST_GUP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_FENTRY                              policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_FUNCTION_TRACER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_FUTEX_CMPXCHG                       policy<{'armhf': 'y', 's390x': 'y'}>
+CONFIG_HAVE_GCC_PLUGINS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_GENERIC_VDSO                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH            policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_HW_BREAKPOINT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_IDE                                 policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_IMA_KEXEC                           policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_IMX_ANATOP                          policy<{'armhf-generic': 'y'}>
+CONFIG_HAVE_IMX_GPC                             policy<{'armhf-generic': 'y'}>
+CONFIG_HAVE_IMX_MMDC                            policy<{'armhf-generic': 'y'}>
+CONFIG_HAVE_IMX_SRC                             policy<{'armhf-generic': 'y'}>
+CONFIG_HAVE_INTEL_TXT                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_IOREMAP_PROT                        policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_KERNEL_BZIP2                        policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KERNEL_GZIP                         policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KERNEL_LZ4                          policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KERNEL_LZMA                         policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KERNEL_LZO                          policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KERNEL_UNCOMPRESSED                 policy<{'s390x': 'y'}>
+CONFIG_HAVE_KERNEL_XZ                           policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KPROBES                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KPROBES_ON_FTRACE                   policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KRETPROBES                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM                                 policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL              policy<{'arm64': 'y', 'armhf-generic-lpae': 'y'}>
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT             policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_EVENTFD                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_INVALID_WAKEUPS                 policy<{'s390x': 'y'}>
+CONFIG_HAVE_KVM_IRQCHIP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_IRQFD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_IRQ_BYPASS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_KVM_IRQ_ROUTING                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_MSI                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_HAVE_KVM_NO_POLL                         policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL                policy<{'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE             policy<{'arm64': 'y'}>
+CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION       policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_LIVEPATCH                           policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_MARCH_Z10_FEATURES                  policy<{'s390x': 'y'}>
+CONFIG_HAVE_MARCH_Z13_FEATURES                  policy<{'s390x': 'y'}>
+CONFIG_HAVE_MARCH_Z196_FEATURES                 policy<{'s390x': 'y'}>
+CONFIG_HAVE_MARCH_Z900_FEATURES                 policy<{'s390x': 'y'}>
+CONFIG_HAVE_MARCH_Z990_FEATURES                 policy<{'s390x': 'y'}>
+CONFIG_HAVE_MARCH_Z9_109_FEATURES               policy<{'s390x': 'y'}>
+CONFIG_HAVE_MARCH_ZEC12_FEATURES                policy<{'s390x': 'y'}>
+CONFIG_HAVE_MEMBLOCK_NODE_MAP                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_MEMBLOCK_PHYS_MAP                   policy<{'s390x': 'y'}>
+CONFIG_HAVE_MEMORYLESS_NODES                    policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_MEMORY_PRESENT                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_MMIOTRACE_SUPPORT                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_MMU_GATHER_NO_GATHER                policy<{'s390x': 'y'}>
+CONFIG_HAVE_MMU_GATHER_PAGE_SIZE                policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_MOD_ARCH_SPECIFIC                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_MOVE_PMD                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_NET_DSA                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_NMI                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_NMI_WATCHDOG                        policy<{'ppc64el': 'y'}>
+CONFIG_HAVE_NOP_MCOUNT                          policy<{'s390x': 'y'}>
+CONFIG_HAVE_OPROFILE                            policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_OPTPROBES                           policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_PATA_PLATFORM                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HAVE_PCI                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_PCSPKR_PLATFORM                     policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_PERF_EVENTS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_PERF_EVENTS_NMI                     policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_PERF_REGS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_PERF_USER_STACK_DUMP                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_PNETID                              policy<{'s390x': 'm'}>
+CONFIG_HAVE_PROC_CPU                            policy<{'armhf': 'y'}>
+CONFIG_HAVE_RCU_TABLE_FREE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_RELIABLE_STACKTRACE                 policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_RSEQ                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_S3C2410_I2C                         policy<{'armhf': 'y'}>
+CONFIG_HAVE_S3C2410_WATCHDOG                    policy<{'armhf': 'y'}>
+CONFIG_HAVE_S3C_RTC                             policy<{'armhf': 'y'}>
+CONFIG_HAVE_SETUP_PER_CPU_AREA                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_SMP                                 policy<{'armhf': 'y'}>
+CONFIG_HAVE_STACKPROTECTOR                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HAVE_STACK_VALIDATION                    policy<{'amd64': 'y'}>
+CONFIG_HAVE_SYSCALL_TRACEPOINTS                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_UID16                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_USER_RETURN_NOTIFIER                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING                 policy<{'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HBMC_AM654                               policy<{'arm64': 'm'}>
+CONFIG_HCALL_STATS                              policy<{'ppc64el': 'n'}>
+CONFIG_HD44780                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDC100X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC_CISCO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC_FR                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC_PPP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC_RAW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC_RAW_ETH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDLC_X25                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HDMI                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HDMI_LPE_AUDIO                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HDQ_MASTER_OMAP                          policy<{'armhf': 'm'}>
+CONFIG_HEADERS_INSTALL                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HERMES                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HERMES_CACHE_FW_ON_INIT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HERMES_PRISM                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_HFI1_DEBUG_SDMA_ORDER                    policy<{'amd64': 'n'}>
+CONFIG_HFSPLUS_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HI13X1_GMAC                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HI3660_MBOX                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HI6220_MBOX                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HI8435                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HIBERNATE_CALLBACKS                      policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_HID                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HIDRAW                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_A4TECH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ACCUTOUCH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ACRUX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ACRUX_FF                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_ALPS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_APPLE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_APPLEIR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ASUS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_AUREAL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_BATTERY_STRENGTH                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_BELKIN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_BETOP_FF                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_BIGBEN_FF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CHERRY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CHICONY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CMEDIA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CORSAIR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_COUGAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CP2112                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CREATIVE_SB0540                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_CYPRESS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_DRAGONRISE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ELAN                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ELECOM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ELO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_EMS_FF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_EZKEY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_GEMBIRD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_GENERIC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_GFRM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_GOOGLE_HAMMER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_HID_GREENASIA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_GT683R                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_GYRATION                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_HOLTEK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_HYPERV_MOUSE                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HID_ICADE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ITE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_JABRA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_KENSINGTON                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_KEYTOUCH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_KYE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_LCPOWER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_LED                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_LENOVO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_LOGITECH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_LOGITECH_DJ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_LOGITECH_HIDPP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MACALLY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MAGICMOUSE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MALTRON                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MAYFLASH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MICROSOFT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MONTEREY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_MULTITOUCH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_NTI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_NTRIG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ORTEK                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PANTHERLORD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PENMOUNT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PETALYNX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PICOLCD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PICOLCD_BACKLIGHT                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_PICOLCD_CIR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_PICOLCD_FB                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_PICOLCD_LCD                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_PICOLCD_LEDS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_PID                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HID_PLANTRONICS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PRIMAX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_PRODIKEYS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_REDRAGON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_RETRODE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_RMI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ROCCAT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SAITEK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SAMSUNG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_ACCEL_3D                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_ALS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_CUSTOM_SENSOR                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_DEVICE_ROTATION               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_GYRO_3D                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_HUB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_HUMIDITY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_IIO_COMMON                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_IIO_TRIGGER                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_INCLINOMETER_3D               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_MAGNETOMETER_3D               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_PRESS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_PROX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SENSOR_TEMP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SMARTJOYPLUS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SONY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SPEEDLINK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_STEAM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_STEELSERIES                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_SUNPLUS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_THINGM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_THRUSTMASTER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_TIVO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_TOPSEED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_TWINHAN                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_U2FZERO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_UCLOGIC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_UDRAW_PS3                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_VIEWSONIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_WACOM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_WALTOP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_WIIMOTE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_XINMO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ZEROPLUS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HID_ZYDACRON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HIGHMEM                                  policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_HIGHMEM4G                                policy<{'i386': 'n'}>
+CONFIG_HIGHMEM64G                               policy<{'i386': 'y'}>
+CONFIG_HIGHPTE                                  policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_HIGH_RES_TIMERS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HINIC                                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_HIP04_ETH                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HISILICON_ERRATUM_161010101              policy<{'arm64': 'y'}>
+CONFIG_HISILICON_ERRATUM_161600802              policy<{'arm64': 'y'}>
+CONFIG_HISILICON_IRQ_MBIGEN                     policy<{'arm64': 'y'}>
+CONFIG_HISILICON_LPC                            policy<{'arm64': 'y'}>
+CONFIG_HISI_DMA                                 policy<{'arm64': 'n'}>
+CONFIG_HISI_FEMAC                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HISI_PMU                                 policy<{'arm64': 'm'}>
+CONFIG_HISI_THERMAL                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HIST_TRIGGERS                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HIX5HD2_GMAC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HMC6352                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HMC_DRV                                  policy<{'s390x': 'm'}>
+CONFIG_HMEM_REPORTING                           policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_HMM_MIRROR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HMS_ANYBUSS_BUS                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_HMS_PROFINET                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_HNS                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3                                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3_DCB                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HNS3_ENET                                policy<{'arm64': 'm'}>
+CONFIG_HNS3_HCLGE                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS3_HCLGEVF                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS_DSAF                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS_ENET                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HNS_MDIO                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HOLES_IN_ZONE                            policy<{'arm64': 'y'}>
+CONFIG_HOLTEK_FF                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HOSTAP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HOSTAP_CS                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HOSTAP_FIRMWARE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HOSTAP_FIRMWARE_NVRAM                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HOSTAP_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HOSTAP_PLX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HOSTESS_SV11                             policy<{'i386': 'm'}>
+CONFIG_HOTPLUG_CPU                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI_ACPI                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HOTPLUG_PCI_ACPI_IBM                     policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_COMPAQ                       policy<{'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM                 policy<{'i386': 'y'}>
+CONFIG_HOTPLUG_PCI_CPCI                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_IBM                          policy<{'i386': 'm'}>
+CONFIG_HOTPLUG_PCI_POWERNV                      policy<{'ppc64el': 'm'}>
+CONFIG_HOTPLUG_PCI_RPA                          policy<{'ppc64el': 'm'}>
+CONFIG_HOTPLUG_PCI_RPA_DLPAR                    policy<{'ppc64el': 'm'}>
+CONFIG_HOTPLUG_PCI_S390                         policy<{'s390x': 'y'}>
+CONFIG_HOTPLUG_SMT                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HP03                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HP100                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HP206C                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HPET                                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPET_EMULATE_RTC                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPET_MMAP                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPET_MMAP_DEFAULT                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPET_TIMER                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HPFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HPWDT_NMI_DECODING                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HP_ACCEL                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HP_ILO                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HP_WATCHDOG                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HP_WIRELESS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HP_WMI                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HSA_AMD                                  policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_HSI                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HSI_BOARDINFO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HSI_CHAR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HSR                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HSU_DMA                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HSU_DMA_PCI                              policy<{'i386': 'm'}>
+CONFIG_HT16K33                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_HTC_EGPIO                                policy<{'armhf': 'y'}>
+CONFIG_HTC_I2CPLD                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HTC_PASIC3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HTS221                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HTS221_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HTS221_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HTU21                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HUAWEI_WMI                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HUGETLBFS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HUGETLB_PAGE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HUGETLB_PAGE_SIZE_VARIABLE               policy<{'ppc64el': 'y'}>
+CONFIG_HVCS                                     policy<{'ppc64el': 'm'}>
+CONFIG_HVC_CONSOLE                              policy<{'ppc64el': 'y'}>
+CONFIG_HVC_DCC                                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_HVC_DRIVER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HVC_IRQ                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HVC_IUCV                                 policy<{'s390x': 'y'}>
+CONFIG_HVC_OLD_HVSI                             policy<{'ppc64el': 'y'}>
+CONFIG_HVC_OPAL                                 policy<{'ppc64el': 'y'}>
+CONFIG_HVC_RTAS                                 policy<{'ppc64el': 'y'}>
+CONFIG_HVC_XEN                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HVC_XEN_FRONTEND                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_HV_PERF_CTRS                             policy<{'ppc64el': 'y'}>
+CONFIG_HWLAT_TRACER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HWMON                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HWMON_DEBUG_CHIP                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_HWMON_VID                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HWPOISON_INJECT                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_HWSPINLOCK                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HWSPINLOCK_OMAP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HWSPINLOCK_QCOM                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HWSPINLOCK_SPRD                          policy<{'arm64': 'm'}>
+CONFIG_HW_CONSOLE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HW_PERF_EVENTS                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_HW_RANDOM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HW_RANDOM_AMD                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HW_RANDOM_BCM2835                        policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_CAVIUM                         policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_EXYNOS                         policy<{'armhf': 'm'}>
+CONFIG_HW_RANDOM_GEODE                          policy<{'i386': 'm'}>
+CONFIG_HW_RANDOM_HISI                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_HISI_V2                        policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_IMX_RNGC                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_HW_RANDOM_INTEL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HW_RANDOM_IPROC_RNG200                   policy<{'arm64': 'm'}>
+CONFIG_HW_RANDOM_MESON                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_MTK                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_OMAP                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_OMAP3_ROM                      policy<{'armhf-generic': 'm'}>
+CONFIG_HW_RANDOM_OPTEE                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_HW_RANDOM_POWERNV                        policy<{'ppc64el': 'm'}>
+CONFIG_HW_RANDOM_PSERIES                        policy<{'ppc64el': 'm'}>
+CONFIG_HW_RANDOM_S390                           policy<{'s390x': 'm'}>
+CONFIG_HW_RANDOM_TIMERIOMEM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_HW_RANDOM_TPM                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_HW_RANDOM_VIA                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HW_RANDOM_VIRTIO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_HW_RANDOM_XGENE                          policy<{'arm64': 'm'}>
+CONFIG_HX711                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HYPERV                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERVISOR_GUEST                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HYPERV_BALLOON                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_IOMMU                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HYPERV_KEYBOARD                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_NET                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_STORAGE                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_TIMER                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_HYPERV_UTILS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYPERV_VSOCKETS                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_HYSDN                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_HYSDN_CAPI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_HZ                                       policy<{'amd64-generic': '250', 'amd64-lowlatency': '1000', 'arm64': '250', 'armhf': '250', 'i386-generic': '250', 'i386-lowlatency': '1000', 'ppc64el': '250', 's390x': '100'}>
+CONFIG_HZ_100                                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_HZ_1000                                  policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386-generic': 'n', 'i386-lowlatency': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HZ_200                                   policy<{'armhf': 'n'}>
+CONFIG_HZ_250                                   policy<{'amd64-generic': 'y', 'amd64-lowlatency': 'n', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'i386-lowlatency': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_HZ_300                                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_HZ_500                                   policy<{'armhf': 'n'}>
+CONFIG_HZ_FIXED                                 policy<{'armhf': '0'}>
+CONFIG_HZ_PERIODIC                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_I2C_ALGOBIT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_I2C_ALGOPCA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_ALI1535                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ALI1563                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ALI15X3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_AMD756                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_AMD756_S4882                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_AMD8111                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_AMD_MP2                              policy<{'amd64': 'm', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_I2C_ARB_GPIO_CHALLENGE                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_ASPEED                               policy<{'armhf': 'm'}>
+CONFIG_I2C_AXXIA                                policy<{'armhf-generic-lpae': 'm'}>
+CONFIG_I2C_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_I2C_BCM_IPROC                            policy<{'arm64': 'm'}>
+CONFIG_I2C_BOARDINFO                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_I2C_BRCMSTB                              policy<{'arm64': 'm'}>
+CONFIG_I2C_CADENCE                              policy<{'arm64': 'n'}>
+CONFIG_I2C_CBUS_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_CHT_WC                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_COMPAT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_I2C_CROS_EC_TUNNEL                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_I2C_DEBUG_ALGO                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_DEBUG_BUS                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_DEBUG_CORE                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_DEMUX_PINCTRL                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_DESIGNWARE_BAYTRAIL                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_I2C_DESIGNWARE_CORE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_I2C_DESIGNWARE_PCI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_DESIGNWARE_PLATFORM                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_I2C_DESIGNWARE_SLAVE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_I2C_DIOLAN_U2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_DLN2                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_EG20T                                policy<{'i386': 'm'}>
+CONFIG_I2C_EMEV2                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'm', 'i386': 'n'}>
+CONFIG_I2C_EXYNOS5                              policy<{'armhf': 'm'}>
+CONFIG_I2C_FSI                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_GPIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_GPIO_FAULT_INJECTOR                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_I2C_HELPER_AUTO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_I2C_HID                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_HIX5HD2                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_I801                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_IMX                                  policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_I2C_IMX_LPI2C                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_I2C_ISCH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_ISMT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_KEMPLD                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_MESON                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_MLXCPLD                              policy<{'amd64': 'm'}>
+CONFIG_I2C_MPC                                  policy<{'ppc64el': 'm'}>
+CONFIG_I2C_MT65XX                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_MULTI_INSTANTIATE                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_MUX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_I2C_MUX_GPIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_GPMUX                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_MUX_LTC4306                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_MLXCPLD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_PCA9541                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_PCA954x                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MUX_PINCTRL                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_MUX_REG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_MV64XXX                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_NFORCE2                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_NFORCE2_S4985                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I2C_NOMADIK                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_NVIDIA_GPU                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_OCORES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_OMAP                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_OPAL                                 policy<{'ppc64el': 'y'}>
+CONFIG_I2C_OWL                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_PARPORT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_PARPORT_LIGHT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_PCA_ISA                              policy<{'i386': 'm'}>
+CONFIG_I2C_PCA_PLATFORM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_PIIX4                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_PXA                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_PXA_SLAVE                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_I2C_QCOM_GENI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_QUP                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_RCAR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_RIIC                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_RK3X                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_ROBOTFUZZ_OSIF                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_S3C2410                              policy<{'armhf': 'y'}>
+CONFIG_I2C_SCMI                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_I2C_SH_MOBILE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_SI470X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_SI4713                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_SIMTEC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SIS5595                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SIS630                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SIS96X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_SLAVE                                policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_I2C_SLAVE_EEPROM                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_SMBUS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_SPRD                                 policy<{'arm64': 'y'}>
+CONFIG_I2C_STUB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_I2C_SYNQUACER                            policy<{'arm64': 'm'}>
+CONFIG_I2C_TAOS_EVM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_TEGRA                                policy<{'armhf-generic': 'm'}>
+CONFIG_I2C_TEGRA_BPMP                           policy<{'armhf-generic': 'm'}>
+CONFIG_I2C_THUNDERX                             policy<{'arm64': 'm'}>
+CONFIG_I2C_TINY_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_UNIPHIER                             policy<{'armhf': 'n'}>
+CONFIG_I2C_UNIPHIER_F                           policy<{'armhf': 'n'}>
+CONFIG_I2C_VERSATILE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_I2C_VIA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_VIAPRO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_VIPERBOARD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I2C_XGENE_SLIMPRO                        policy<{'arm64': 'm'}>
+CONFIG_I2C_XILINX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I2C_XLP9XX                               policy<{'arm64': 'm'}>
+CONFIG_I3C                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I40E                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I40EVF                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_I40E_DCB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_I6300ESB_WDT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_I82092                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_I82365                                   policy<{'i386': 'm'}>
+CONFIG_I8253_LOCK                               policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_I8K                                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IA32_EMULATION                           policy<{'amd64': 'y'}>
+CONFIG_IAQCORE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IAVF                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IB700_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IBMASR                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IBMVETH                                  policy<{'ppc64el': 'm'}>
+CONFIG_IBMVIO                                   policy<{'ppc64el': 'y'}>
+CONFIG_IBMVMC                                   policy<{'ppc64el': 'm'}>
+CONFIG_IBM_ASM                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IBM_BSR                                  policy<{'ppc64el': 'm'}>
+CONFIG_IBM_PARTITION                            policy<{'s390x': 'y'}>
+CONFIG_IBM_RTL                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ICE                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ICPLUS_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ICS932S401                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ICST                                     policy<{'armhf': 'y'}>
+CONFIG_IDE                                      policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IDEAPAD_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IDLE_INJECT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IE6XX_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IEEE802154                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IEEE802154_6LOWPAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_ADF7242                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_AT86RF230                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_AT86RF230_DEBUGFS             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IEEE802154_ATUSB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_CA8210                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IEEE802154_CA8210_DEBUGFS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_IEEE802154_CC2520                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_DRIVERS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_FAKELB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_HWSIM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_MCR20A                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_MRF24J40                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IEEE802154_NL802154_EXPERIMENTAL         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IEEE802154_SOCKET                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IFB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IGB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IGBVF                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IGB_DCA                                  policy<{'amd64': 'y'}>
+CONFIG_IGB_HWMON                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IGC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IIO_ADIS_LIB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ADIS_LIB_BUFFER                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IIO_BUFFER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IIO_BUFFER_CB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_BUFFER_HW_CONSUMER                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_CONFIGFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_CONSUMERS_PER_TRIGGER                policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2'}>
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_BARO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_LIGHT_PROX                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_SENSORS                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_SENSORS_CORE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_IIO_HRTIMER_TRIGGER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_INTERRUPT_TRIGGER                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_KFIFO_BUF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_MS_SENSORS_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_MUX                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_RESCALE                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_SIMPLE_DUMMY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_SSP_SENSORHUB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_SSP_SENSORS_COMMONS                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_ACCEL_3AXIS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_ACCEL_I2C_3AXIS                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_ACCEL_SPI_3AXIS                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_GYRO_3AXIS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_GYRO_I2C_3AXIS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_GYRO_SPI_3AXIS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_LSM6DSX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_LSM6DSX_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_LSM6DSX_I3C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_LSM6DSX_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_MAGN_3AXIS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_MAGN_I2C_3AXIS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_MAGN_SPI_3AXIS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_PRESS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_PRESS_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_PRESS_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_SENSORS_CORE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_SENSORS_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_ST_SENSORS_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_SW_DEVICE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_SW_TRIGGER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_SYSFS_TRIGGER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_TIGHTLOOP_TRIGGER                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_TRIGGER                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IIO_TRIGGERED_BUFFER                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IIO_TRIGGERED_EVENT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IKCONFIG                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IKHEADERS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ILLEGAL_POINTER_VALUE                    policy<{'amd64': '0xdead000000000000', 'arm64': '0xdead000000000000', 'i386': '0', 'ppc64el': '0x5deadbeef0000000'}>
+CONFIG_IMA_APPRAISE_BOOTPARAM                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_APPRAISE_BUILD_POLICY                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_APPRAISE_MODSIG                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_BLACKLIST_KEYRING                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_DEFAULT_HASH                         policy<{'amd64': '"sha1"', 'arm64': '"sha1"', 'armhf': '"sha1"', 'i386': '"sha1"', 'ppc64el': '"sha256"', 's390x': '"sha1"'}>
+CONFIG_IMA_DEFAULT_HASH_SHA1                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_IMA_DEFAULT_HASH_SHA512                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_DEFAULT_TEMPLATE                     policy<{'amd64': '"ima-ng"', 'arm64': '"ima-ng"', 'armhf': '"ima-ng"', 'i386': '"ima-ng"', 'ppc64el': '"ima-sig"', 's390x': '"ima-ng"'}>
+CONFIG_IMA_LOAD_X509                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IMA_LSM_RULES                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IMA_MEASURE_PCR_IDX                      policy<{'amd64': '10', 'arm64': '10', 'armhf': '10', 'i386': '10', 'ppc64el': '10', 's390x': '10'}>
+CONFIG_IMA_NG_TEMPLATE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_IMG_ASCII_LCD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IMX2_WDT                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX7D_ADC                                policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX7ULP_WDT                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_DMA                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_DSP                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_GPCV2                                policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_GPCV2_PM_DOMAINS                     policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_IPUV3_CORE                           policy<{'armhf': 'm'}>
+CONFIG_IMX_IRQSTEER                             policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_MBOX                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_REMOTEPROC                           policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_SCU                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_SCU_PD                               policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_SCU_SOC                              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_IMX_SC_WDT                               policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_SDMA                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_THERMAL                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_IMX_WEIM                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_INA2XX_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INDIRECT_PIO                             policy<{'arm64': 'y'}>
+CONFIG_INET                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INET6_AH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_ESP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_ESP_OFFLOAD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_IPCOMP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_TUNNEL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET6_XFRM_TUNNEL                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_AH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_DCCP_DIAG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_DIAG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_DIAG_DESTROY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INET_ESP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_ESP_OFFLOAD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_IPCOMP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_RAW_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_SCTP_DIAG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_TABLE_PERTURB_ORDER                 policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16', 's390x': '16'}>
+CONFIG_INET_TCP_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_TUNNEL                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_UDP_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INET_XFRM_TUNNEL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_ADDR_TRANS                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_BNXT_RE                       policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INFINIBAND_CXGB3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INFINIBAND_CXGB4                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INFINIBAND_EFA                           policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INFINIBAND_HFI1                          policy<{'amd64': 'm'}>
+CONFIG_INFINIBAND_HNS                           policy<{'arm64': 'm'}>
+CONFIG_INFINIBAND_HNS_HIP06                     policy<{'arm64': 'y'}>
+CONFIG_INFINIBAND_HNS_HIP08                     policy<{'arm64': 'y'}>
+CONFIG_INFINIBAND_I40IW                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INFINIBAND_IPOIB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_IPOIB_CM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_IPOIB_DEBUG                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INFINIBAND_ISER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_ISERT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_MTHCA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_MTHCA_DEBUG                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INFINIBAND_OCRDMA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INFINIBAND_ON_DEMAND_PAGING              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_OPA_VNIC                      policy<{'amd64': 'm'}>
+CONFIG_INFINIBAND_QEDR                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_INFINIBAND_QIB                           policy<{'amd64': 'm'}>
+CONFIG_INFINIBAND_QIB_DCA                       policy<{'amd64': 'y'}>
+CONFIG_INFINIBAND_RDMAVT                        policy<{'amd64': 'm'}>
+CONFIG_INFINIBAND_SRP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_SRPT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_USER_ACCESS                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_USER_MAD                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INFINIBAND_USER_MEM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_USNIC                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INFINIBAND_VIRT_DMA                      policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INFINIBAND_VMWARE_PVRDMA                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_INFTL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INITRAMFS_SOURCE                         policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_INIT_ENV_ARG_LIMIT                       policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', 's390x': '32'}>
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INIT_ON_FREE_DEFAULT_ON                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INIT_STACK_NONE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_LOCK                         policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_LOCK_BH                      policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_LOCK_IRQ                     policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_LOCK_IRQSAVE                 policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_TRYLOCK                      policy<{'s390x': 'y'}>
+CONFIG_INLINE_READ_UNLOCK                       policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_UNLOCK_BH                    policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_UNLOCK_IRQ                   policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INLINE_READ_UNLOCK_IRQRESTORE            policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_LOCK                         policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_LOCK_BH                      policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_LOCK_IRQ                     policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_LOCK_IRQSAVE                 policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_TRYLOCK                      policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_TRYLOCK_BH                   policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_UNLOCK_BH                    policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_UNLOCK_IRQ                   policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE            policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_LOCK                        policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_LOCK_BH                     policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_LOCK_IRQ                    policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_LOCK_IRQSAVE                policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_TRYLOCK                     policy<{'s390x': 'y'}>
+CONFIG_INLINE_WRITE_UNLOCK                      policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_UNLOCK_BH                   policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_UNLOCK_IRQ                  policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE           policy<{'arm64': 'y', 's390x': 'y'}>
+CONFIG_INOTIFY_USER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INPUT                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INPUT_88PM80X_ONKEY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_88PM860X_ONKEY                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_AD714X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_AD714X_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_AD714X_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_ADXL34X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_ADXL34X_I2C                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_ADXL34X_SPI                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_APANEL                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_ARIZONA_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_ATI_REMOTE2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_ATLAS_BTNS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_ATMEL_CAPTOUCH                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_AXP20X_PEK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_BMA150                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_CM109                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_CMA3000                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_CMA3000_I2C                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_CPCAP_PWRBUTTON                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_DA9052_ONKEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_DA9055_ONKEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_DA9063_ONKEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_DRV260X_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_DRV2665_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_DRV2667_HAPTICS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_E3X0_BUTTON                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_EVBUG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_EVDEV                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INPUT_FF_MEMLESS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_GP2A                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_GPIO_BEEPER                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_GPIO_DECODER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_GPIO_ROTARY_ENCODER                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_GPIO_VIBRA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_HISI_POWERKEY                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INPUT_IDEAPAD_SLIDEBAR                   policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_IMS_PCU                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_JOYDEV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_JOYSTICK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_KEYBOARD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_KEYSPAN_REMOTE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_KXTJ9                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_KXTJ9_POLLED_MODE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_INPUT_LEDS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MATRIXKMAP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_MAX77650_ONKEY                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MAX77693_HAPTIC                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MAX8925_ONKEY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MAX8997_HAPTIC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MC13783_PWRBUTTON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MISC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_MMA8450                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_MOUSE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_MOUSEDEV                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_MOUSEDEV_PSAUX                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_INPUT_MOUSEDEV_SCREEN_X                  policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'i386': '1024', 'ppc64el': '1024'}>
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y                  policy<{'amd64': '768', 'arm64': '768', 'armhf': '768', 'i386': '768', 'ppc64el': '768'}>
+CONFIG_INPUT_MSM_VIBRATOR                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PALMAS_PWRBUTTON                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PCAP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PCF50633_PMU                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PCF8574                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PCSPKR                             policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PM8941_PWRKEY                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INPUT_PM8XXX_VIBRATOR                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INPUT_PMIC8XXX_PWRKEY                    policy<{'armhf': 'm'}>
+CONFIG_INPUT_POLLDEV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_POWERMATE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PWM_BEEPER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_PWM_VIBRA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_RAVE_SP_PWRBUTTON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_REGULATOR_HAPTIC                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_RETU_PWRBUTTON                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_RK805_PWRKEY                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_SC27XX_VIBRA                       policy<{'arm64': 'm'}>
+CONFIG_INPUT_SOC_BUTTON_ARRAY                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_SPARSEKMAP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INPUT_STPMIC1_ONKEY                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_TABLET                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_TOUCHSCREEN                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_INPUT_TPS65218_PWRBUTTON                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_TWL4030_PWRBUTTON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_TWL4030_VIBRA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_TWL6040_VIBRA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_WISTRON_BTNS                       policy<{'i386': 'm'}>
+CONFIG_INPUT_WM831X_ON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_INPUT_YEALINK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INSTRUCTION_DECODER                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INT3406_THERMAL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INT340X_THERMAL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEGRITY                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_AUDIT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_SIGNATURE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEGRITY_TRUSTED_KEYRING                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTEL_ATOMISP2_PM                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_BXTWC_PMIC_TMU                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_BXT_PMIC_THERMAL                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_CHTDC_TI_PWRBTN                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_CHT_INT33FE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_GTT                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_HID_EVENT                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_IDLE                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_IDMA64                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INTEL_INT0002_VGPIO                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_IOATDMA                            policy<{'amd64': 'm'}>
+CONFIG_INTEL_IOMMU                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_IOMMU_FLOPPY_WA                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_IOMMU_SVM                          policy<{'amd64': 'y', 'i386': '-'}>
+CONFIG_INTEL_IPS                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER            policy<{'amd64': 'm'}>
+CONFIG_INTEL_ISH_HID                            policy<{'amd64': 'm'}>
+CONFIG_INTEL_MEI                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_HDCP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_ME                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_TXE                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MEI_WDT                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MENLOW                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_MFLD_THERMAL                       policy<{'i386': 'm'}>
+CONFIG_INTEL_MIC_BUS                            policy<{'amd64': 'm'}>
+CONFIG_INTEL_MIC_CARD                           policy<{'amd64': 'm'}>
+CONFIG_INTEL_MIC_HOST                           policy<{'amd64': 'm'}>
+CONFIG_INTEL_MIC_X100_DMA                       policy<{'amd64': 'm'}>
+CONFIG_INTEL_MID_POWER_BUTTON                   policy<{'i386': 'm'}>
+CONFIG_INTEL_MID_PTI                            policy<{'i386': 'm'}>
+CONFIG_INTEL_MID_WATCHDOG                       policy<{'i386': 'm'}>
+CONFIG_INTEL_MRFLD_PWRBTN                       policy<{'i386': 'm'}>
+CONFIG_INTEL_OAKTRAIL                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PCH_THERMAL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PMC_CORE                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_PMC_IPC                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_POWERCLAMP                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_PUNIT_IPC                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_RAPL                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_RAPL_CORE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_RST                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SCU_IPC                            policy<{'i386': 'y'}>
+CONFIG_INTEL_SCU_IPC_UTIL                       policy<{'i386': 'm'}>
+CONFIG_INTEL_SCU_WATCHDOG                       policy<{'i386': 'y'}>
+CONFIG_INTEL_SMARTCONNECT                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_DTS_IOSF_CORE                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_DTS_THERMAL                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_PMIC                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_SOC_PMIC_BXTWC                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_PMIC_CHTDC_TI                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_SOC_PMIC_CHTWC                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_SOC_PMIC_MRFLD                     policy<{'i386': 'm'}>
+CONFIG_INTEL_SPEED_SELECT_INTERFACE             policy<{'amd64': 'm'}>
+CONFIG_INTEL_STRATIX10_RSU                      policy<{'arm64': 'm'}>
+CONFIG_INTEL_STRATIX10_SERVICE                  policy<{'arm64': 'm'}>
+CONFIG_INTEL_TELEMETRY                          policy<{'amd64': 'm'}>
+CONFIG_INTEL_TH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_ACPI                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_TH_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INTEL_TH_GTH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_MSU                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_PTI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TH_STH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTEL_TURBO_MAX_3                        policy<{'amd64': 'y'}>
+CONFIG_INTEL_TXT                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_INTEL_VBTN                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_WMI_THUNDERBOLT                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_INTEL_XWAY_PHY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_INTERCONNECT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_INTERCONNECT_QCOM                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_INTERCONNECT_QCOM_QCS404                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INTERCONNECT_QCOM_SDM845                 policy<{'arm64': 'm'}>
+CONFIG_INTERCONNECT_QCOM_SMD_RPM                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_INTERVAL_TREE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_INTERVAL_TREE_TEST                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_INV_MPU6050_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INV_MPU6050_IIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_INV_MPU6050_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IOMMU_API                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IOMMU_DEBUG                              policy<{'amd64': 'n'}>
+CONFIG_IOMMU_DEFAULT_PASSTHROUGH                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IOMMU_DMA                                policy<{'arm64': 'y'}>
+CONFIG_IOMMU_HELPER                             policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IOMMU_IOVA                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic': 'm', 'i386': 'y'}>
+CONFIG_IOMMU_IO_PGTABLE                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IOMMU_IO_PGTABLE_ARMV7S                  policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IOMMU_IO_PGTABLE_LPAE                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_IOMMU_SUPPORT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ION                                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IONIC                                    policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_IOSCHED_BFQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IOSF_MBI                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IOSF_MBI_DEBUG                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IO_DELAY_0X80                            policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_IO_DELAY_0XED                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_IO_DELAY_NONE                            policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_IO_DELAY_UDELAY                          policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_IO_EVENT_IRQ                             policy<{'ppc64el': 'y'}>
+CONFIG_IO_STRICT_DEVMEM                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IO_URING                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP6_NF_FILTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_IPTABLES                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MANGLE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_AH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_EUI64                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_FRAG                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_HL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_IPV6HEADER                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_MH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_OPTS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_RPFILTER                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_RT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_MATCH_SRH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_NAT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_RAW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_SECURITY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_HL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_MASQUERADE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_NPT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_REJECT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP6_NF_TARGET_SYNPROXY                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPACK_BUS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IPC_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPMB_DEVICE_INTERFACE                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPMI_DEVICE_INTERFACE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPMI_DMI_DECODE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_IPMI_HANDLER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_IPMI_KCS_BMC                             policy<{'armhf': 'm'}>
+CONFIG_IPMI_PANIC_EVENT                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IPMI_PLAT_DATA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IPMI_POWERNV                             policy<{'ppc64el': 'm'}>
+CONFIG_IPMI_POWEROFF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPMI_SI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPMI_SSIF                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPMI_WATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPQ_GCC_4019                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_GCC_806X                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_GCC_8074                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPQ_LCC_806X                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IPV6_FOU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_FOU_TUNNEL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_GRE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_ILA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_MIP6                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_MROUTE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_MULTIPLE_TABLES                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_NDISC_NODETYPE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_OPTIMISTIC_DAD                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IPV6_PIMSM_V2                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_ROUTER_PREF                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_ROUTE_INFO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SEG6_BPF                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SEG6_HMAC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SEG6_LWTUNNEL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SIT                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_SIT_6RD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_SUBTREES                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPV6_TUNNEL                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPV6_VTI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPVLAN                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPVLAN_L3S                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IPVTAP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IPW2100                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPW2100_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IPW2100_MONITOR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IPW2200                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IPW2200_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IPW2200_MONITOR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IPW2200_PROMISCUOUS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IPW2200_QOS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IPW2200_RADIOTAP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IPWIRELESS                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IP_ADVANCED_ROUTER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_DCCP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_DCCP_CCID2_DEBUG                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IP_DCCP_CCID3                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_IP_DCCP_CCID3_DEBUG                      policy<{'s390x': 'n'}>
+CONFIG_IP_DCCP_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IP_DCCP_TFRC_LIB                         policy<{'s390x': 'y'}>
+CONFIG_IP_FIB_TRIE_STATS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MROUTE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MROUTE_COMMON                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MROUTE_MULTIPLE_TABLES                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MULTICAST                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_MULTIPLE_TABLES                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_NF_ARPFILTER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_ARPTABLES                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_ARP_MANGLE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_FILTER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_IPTABLES                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MANGLE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_AH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_ECN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_RPFILTER                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_MATCH_TTL                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_NAT                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_RAW                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_SECURITY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_CLUSTERIP                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_ECN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_MASQUERADE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_NETMAP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_REDIRECT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_REJECT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_SYNPROXY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_NF_TARGET_TTL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_PIMSM_V1                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_PIMSM_V2                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_ROUTE_CLASSID                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_ROUTE_MULTIPATH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_ROUTE_VERBOSE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_SCTP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_BITMAP_IP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_BITMAP_IPMAC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_BITMAP_PORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPMAC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPMARK                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPPORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPPORTIP                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_IPPORTNET                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_MAC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETIFACE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETNET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETPORT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_HASH_NETPORTNET                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_LIST_SET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_SET_MAX                               policy<{'amd64': '256', 'arm64': '256', 'armhf': '256', 'i386': '256', 'ppc64el': '256', 's390x': '256'}>
+CONFIG_IP_VS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IP_VS_DH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_FO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_FTP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_IPV6                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_LBLC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_LBLCR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_LC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_MH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_MH_TAB_INDEX                       policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'i386': '12', 'ppc64el': '12', 's390x': '12'}>
+CONFIG_IP_VS_NFCT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_NQ                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_OVF                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_PE_SIP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_PROTO_AH                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_AH_ESP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_ESP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_SCTP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_TCP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_PROTO_UDP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IP_VS_RR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_SED                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_SH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_SH_TAB_BITS                        policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8', 's390x': '8'}>
+CONFIG_IP_VS_TAB_BITS                           policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'i386': '12', 'ppc64el': '12', 's390x': '12'}>
+CONFIG_IP_VS_WLC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IP_VS_WRR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IRQCHIP                                  policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_IRQSOFF_TRACER                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_IRQ_ALL_CPUS                             policy<{'ppc64el': 'y'}>
+CONFIG_IRQ_BYPASS_MANAGER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic': 'm', 'armhf-generic-lpae': 'y', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_IRQ_CROSSBAR                             policy<{'armhf': 'y'}>
+CONFIG_IRQ_DOMAIN                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IRQ_DOMAIN_HIERARCHY                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS           policy<{'arm64': 'y'}>
+CONFIG_IRQ_FORCED_THREADING                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IRQ_FORCED_THREADING_DEFAULT             policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386-generic': 'n', 'i386-lowlatency': 'y', 'ppc64el': 'n'}>
+CONFIG_IRQ_MSI_IOMMU                            policy<{'arm64': 'y'}>
+CONFIG_IRQ_POLL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IRQ_REMAP                                policy<{'amd64': 'y'}>
+CONFIG_IRQ_TIME_ACCOUNTING                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IRQ_UNIPHIER_AIDET                       policy<{'armhf': 'y'}>
+CONFIG_IRQ_WORK                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_IR_ENE                                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_FINTEK                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_GPIO_CIR                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_GPIO_TX                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_HIX5HD2                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_IGORPLUGUSB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_IGUANA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_IMON                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_IMON_DECODER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_IMON_RAW                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_ITE_CIR                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_JVC_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_MCEUSB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_MCE_KBD_DECODER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_MESON                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IR_MTK                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_IR_NEC_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_NUVOTON                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_IR_PWM_TX                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_RC5_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_RC6_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_RCMM_DECODER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_REDRAT3                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_RX51                                  policy<{'armhf': 'm'}>
+CONFIG_IR_SANYO_DECODER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_SERIAL                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_SERIAL_TRANSMITTER                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IR_SHARP_DECODER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_SIR                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_SONY_DECODER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_SPI                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_STREAMZAP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_SUNXI                                 policy<{'arm64': 'm'}>
+CONFIG_IR_TTUSBIR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IR_WINBOND_CIR                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IR_XMP_DECODER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISA                                      policy<{'i386': 'y'}>
+CONFIG_ISAPNP                                   policy<{'i386': 'y'}>
+CONFIG_ISA_BUS                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ISA_BUS_API                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ISA_DMA_API                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ISCSI_BOOT_SYSFS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ISCSI_IBFT                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_ISCSI_IBFT_FIND                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ISCSI_TARGET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ISCSI_TARGET_CXGB4                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISCSI_TCP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ISDN                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ISDN_CAPI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISDN_CAPI_CAPI20                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISDN_CAPI_MIDDLEWARE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ISDN_DRV_AVMB1_AVM_CS                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_B1ISA                     policy<{'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_C4                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_T1ISA                     policy<{'i386': 'm'}>
+CONFIG_ISDN_DRV_AVMB1_T1PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISDN_DRV_GIGASET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISI                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISL29003                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ISL29020                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ISL29125                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISL29501                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ISO9660_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_IT8712F_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_IT87_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ITCO_VENDOR_SUPPORT                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_ITCO_WDT                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ITG3200                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IUCV                                     policy<{'s390x': 'y'}>
+CONFIG_IWL3945                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IWL4965                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IWLDVM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IWLEGACY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IWLEGACY_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IWLEGACY_DEBUGFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IWLMVM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IWLWIFI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IWLWIFI_BCAST_FILTERING                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IWLWIFI_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_IWLWIFI_DEBUGFS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IWLWIFI_DEVICE_TRACING                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IWLWIFI_LEDS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IWLWIFI_OPMODE_MODULAR                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IWMMXT                                   policy<{'armhf': 'y'}>
+CONFIG_IXGB                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IXGBE                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IXGBEVF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_IXGBEVF_IPSEC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IXGBE_DCA                                policy<{'amd64': 'y'}>
+CONFIG_IXGBE_DCB                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IXGBE_HWMON                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_IXGBE_IPSEC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JAILHOUSE_GUEST                          policy<{'amd64': 'y'}>
+CONFIG_JBD2                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_JBD2_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_JFFS2_CMODE_FAVOURLZO                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_CMODE_NONE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFFS2_CMODE_PRIORITY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFFS2_CMODE_SIZE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFFS2_COMPRESSION_OPTIONS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JFFS2_FS_DEBUG                           policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_JFFS2_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_FS_SECURITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_FS_WBUF_VERIFY                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFFS2_FS_WRITEBUFFER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_FS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_LZO                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_RTIME                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFFS2_RUBIN                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFFS2_SUMMARY                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFFS2_ZLIB                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_JFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_JFS_POSIX_ACL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFS_SECURITY                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JFS_STATISTICS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JME                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_JOLIET                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_JOYSTICK_A3D                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_ADI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_ANALOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_AS5011                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_COBRA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_DB9                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_FSIA6B                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_GAMECON                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_GF2K                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_GRIP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_GRIP_MP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_GUILLEMOT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_IFORCE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_IFORCE_232                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_IFORCE_USB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_INTERACT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_JOYDUMP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_MAGELLAN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_PSXPAD_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_PSXPAD_SPI_FF                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JOYSTICK_PXRC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_SIDEWINDER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_SPACEBALL                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_SPACEORB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_STINGER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_TMDC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_TURBOGRAFX                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_TWIDJOY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_WALKERA0701                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_WARRIOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_XPAD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JOYSTICK_XPAD_FF                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JOYSTICK_XPAD_LEDS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_JOYSTICK_ZHENHUA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JSA1212                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_JUMP_LABEL                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_JUMP_LABEL_FEATURE_CHECKS                policy<{'ppc64el': 'y'}>
+CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG           policy<{'ppc64el': 'n'}>
+CONFIG_K3_DMA                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_KALLSYMS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU                 policy<{'amd64': 'y'}>
+CONFIG_KALLSYMS_ALL                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KALLSYMS_BASE_RELATIVE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KARMA_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KASAN                                    policy<{'amd64': 'n', 'arm64': 'n', 's390x': 'n'}>
+CONFIG_KASAN_STACK                              policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+CONFIG_KCOV                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_KDB_CONTINUE_CATASTROPHIC                policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_KDB_DEFAULT_ENABLE                       policy<{'amd64': '0x1', 'arm64': '0x1', 'armhf': '0x1', 'i386': '0x1', 'ppc64el': '0x1'}>
+CONFIG_KDB_KEYBOARD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KEMPLD_WDT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KERNEL_BZIP2                             policy<{'amd64': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_GZIP                              policy<{'amd64': 'n', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KERNEL_LZ4                               policy<{'amd64': 'y', 'armhf': 'n', 'i386': 'y', 's390x': 'y'}>
+CONFIG_KERNEL_LZMA                              policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_LZO                               policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_KERNEL_MODE_NEON                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_KERNEL_NOBP                              policy<{'s390x': 'n'}>
+CONFIG_KERNEL_START                             policy<{'ppc64el': '0xc000000000000000'}>
+CONFIG_KERNEL_UNCOMPRESSED                      policy<{'s390x': 'n'}>
+CONFIG_KERNEL_XZ                                policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_KERNFS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEXEC                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEXEC_CORE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEXEC_ELF                                policy<{'ppc64el': 'y'}>
+CONFIG_KEXEC_FILE                               policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_KEXEC_IMAGE_VERIFY_SIG                   policy<{'arm64': 'n'}>
+CONFIG_KEXEC_JUMP                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_KEXEC_SIG                                policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_KEXEC_SIG_FORCE                          policy<{'amd64': 'n'}>
+CONFIG_KEYBOARD_ADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_ADP5520                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_ADP5588                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_ADP5589                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_APPLESPI                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_KEYBOARD_ATKBD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KEYBOARD_BCM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_KEYBOARD_CAP11XX                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_CROS_EC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_KEYBOARD_DLINK_DIR685                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_GPIO_POLLED                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_IMX                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_LKKBD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_LM8323                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_LM8333                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_MATRIX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_MAX7359                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_MCS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_MPR121                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_MTK_PMIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_NEWTON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_NVEC                            policy<{'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_OMAP4                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_OPENCORES                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_PMIC8XXX                        policy<{'armhf': 'm'}>
+CONFIG_KEYBOARD_QT1050                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_QT1070                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_QT2160                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_SAMSUNG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_KEYBOARD_SNVS_PWRKEY                     policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_STMPE                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_STOWAWAY                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_SUN4I_LRADC                     policy<{'arm64': 'n'}>
+CONFIG_KEYBOARD_SUNKBD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_TC3589X                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_TCA6416                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_TCA8418                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_KEYBOARD_TM2_TOUCHKEY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_TWL4030                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYBOARD_XTKBD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KEYS                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEYS_COMPAT                              policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEYS_REQUEST_CACHE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KEY_DH_OPERATIONS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KGDB                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KGDB_KDB                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KGDB_LOW_LEVEL_TRAP                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_KGDB_TESTS                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_KMSG_IDS                                 policy<{'s390x': 'y'}>
+CONFIG_KMX61                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KPC2000                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KPC2000_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KPC2000_DMA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KPC2000_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KPC2000_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KPROBES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KPROBES_ON_FTRACE                        policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KPROBES_SANITY_TEST                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_KPROBE_EVENTS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KPROBE_EVENTS_ON_NOTRACE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_KPSS_XCC                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_KRAITCC                                  policy<{'armhf': 'm'}>
+CONFIG_KRAIT_CLOCKS                             policy<{'armhf': 'y'}>
+CONFIG_KRAIT_L2_ACCESSORS                       policy<{'armhf': 'y'}>
+CONFIG_KRETPROBES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KS0108                                   policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KS0108_DELAY                             policy<{'amd64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2'}>
+CONFIG_KS0108_PORT                              policy<{'amd64': '0x378', 'armhf': '0x378', 'i386': '0x378', 'ppc64el': '0x378'}>
+CONFIG_KS7010                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KS8842                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KS8851                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KS8851_MLL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KSM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KSZ884X_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KUSER_HELPERS                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_KVM_AMD                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_KVM_AMD_SEV                              policy<{'amd64': 'y'}>
+CONFIG_KVM_ARM_HOST                             policy<{'arm64': 'y', 'armhf-generic-lpae': 'y'}>
+CONFIG_KVM_ARM_PMU                              policy<{'arm64': 'y'}>
+CONFIG_KVM_ASYNC_PF                             policy<{'amd64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_KVM_ASYNC_PF_SYNC                        policy<{'s390x': 'y'}>
+CONFIG_KVM_BOOK3S_64                            policy<{'ppc64el': 'm'}>
+CONFIG_KVM_BOOK3S_64_HANDLER                    policy<{'ppc64el': 'y'}>
+CONFIG_KVM_BOOK3S_64_HV                         policy<{'ppc64el': 'm'}>
+CONFIG_KVM_BOOK3S_64_PR                         policy<{'ppc64el': 'm'}>
+CONFIG_KVM_BOOK3S_HANDLER                       policy<{'ppc64el': 'y'}>
+CONFIG_KVM_BOOK3S_HV_EXIT_TIMING                policy<{'ppc64el': 'n'}>
+CONFIG_KVM_BOOK3S_HV_POSSIBLE                   policy<{'ppc64el': 'y'}>
+CONFIG_KVM_BOOK3S_PR_POSSIBLE                   policy<{'ppc64el': 'y'}>
+CONFIG_KVM_COMPAT                               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_KVM_DEBUG_FS                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT        policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_KVM_GUEST                                policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KVM_INDIRECT_VECTORS                     policy<{'arm64': 'y'}>
+CONFIG_KVM_INTEL                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_KVM_MMIO                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_KVM_MMU_AUDIT                            policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_KVM_S390_UCONTROL                        policy<{'s390x': 'n'}>
+CONFIG_KVM_VFIO                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_KVM_XICS                                 policy<{'ppc64el': 'y'}>
+CONFIG_KVM_XIVE                                 policy<{'ppc64el': 'y'}>
+CONFIG_KXCJK1013                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KXSD9                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KXSD9_I2C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_KXSD9_SPI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_L2TP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_DEBUGFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_ETH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_IP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_L2TP_V3                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LAN743X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LANCE                                    policy<{'i386': 'm'}>
+CONFIG_LANMEDIA                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LAPB                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LAPBETHER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LATTICE_ECP3_CONFIG                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_AMS369FG06                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_CLASS_DEVICE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LCD_HX8357                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_ILI922X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_ILI9320                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_L4F00242T03                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_LMS283GF05                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_LMS501KF03                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_LTV350QV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_OTM3225A                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_PLATFORM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_TDO24M                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCD_VGG2432A4                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LCS                                      policy<{'s390x': 'm'}>
+CONFIG_LDISC_AUTOLOAD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LDM_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_LDM_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_LD_DEAD_CODE_DATA_ELIMINATION            policy<{'ppc64el': 'n'}>
+CONFIG_LD_HEAD_STUB_CATCH                       policy<{'ppc64el': 'n'}>
+CONFIG_LEDS_88PM860X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_AAT1290                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_ADP5520                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_AN30259A                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_APU                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_AS3645A                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_ASIC3                               policy<{'armhf': 'y'}>
+CONFIG_LEDS_BCM6328                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_BCM6358                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_BD2802                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_BLINKM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_CLASS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_CLASS_FLASH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_CLEVO_MAIL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_CPCAP                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_CR0014114                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_DA903X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_DA9052                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_DAC124S085                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_GPIO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_INTEL_SS4200                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_IS31FL319X                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_IS31FL32XX                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_KTD2692                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3530                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3532                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3533                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM355x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3601X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM36274                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3642                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3692X                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LM3697                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP3944                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP3952                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP5521                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP5523                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP5562                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP55XX_COMMON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP8501                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP8788                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LP8860                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_LT3593                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MAX77650                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MAX77693                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MAX8997                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MC13783                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MENF21BMC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MLXCPLD                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_MLXREG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_MT6323                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_NET48XX                             policy<{'i386': 'm'}>
+CONFIG_LEDS_NIC78BX                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LEDS_NS2                                 policy<{'armhf': 'm'}>
+CONFIG_LEDS_OT200                               policy<{'i386': 'm'}>
+CONFIG_LEDS_PCA9532                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_PCA9532_GPIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_PCA955X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_PCA955X_GPIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_PCA963X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_PM8058                              policy<{'armhf': 'm'}>
+CONFIG_LEDS_POWERNV                             policy<{'ppc64el': 'm'}>
+CONFIG_LEDS_PWM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_REGULATOR                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_SC27XX_BLTC                         policy<{'arm64': 'm'}>
+CONFIG_LEDS_SPI_BYTE                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_SYSCON                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_TCA6507                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TI_LMU_COMMON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TLC591XX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGERS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_TRIGGER_ACTIVITY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_AUDIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_BACKLIGHT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_CAMERA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_CPU                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_TRIGGER_DEFAULT_ON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_DISK                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_TRIGGER_GPIO                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_HEARTBEAT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_MTD                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_TRIGGER_NETDEV                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_ONESHOT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_PANIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEDS_TRIGGER_PATTERN                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_TIMER                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_TRIGGER_TRANSIENT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_USER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_WM831X_STATUS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_WM8350                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LEDS_WRAP                                policy<{'i386': 'm'}>
+CONFIG_LED_TRIGGER_PHY                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LEGACY_PTYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LEGACY_PTY_COUNT                         policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_LEGACY_VSYSCALL_EMULATE                  policy<{'amd64': 'n'}>
+CONFIG_LEGACY_VSYSCALL_NONE                     policy<{'amd64': 'n'}>
+CONFIG_LEGACY_VSYSCALL_XONLY                    policy<{'amd64': 'y'}>
+CONFIG_LG_LAPTOP                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LIB80211                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIB80211_CRYPT_CCMP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIB80211_CRYPT_TKIP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIB80211_CRYPT_WEP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIB80211_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_LIBCRC32C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LIBERTAS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBERTAS_CS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LIBERTAS_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_LIBERTAS_MESH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LIBERTAS_SDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBERTAS_SPI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBERTAS_THINFIRM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBERTAS_THINFIRM_DEBUG                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_LIBERTAS_THINFIRM_USB                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBERTAS_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBFC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LIBFCOE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LIBFDT                                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_LIBIPW                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIBIPW_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_LIBNVDIMM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_LIDAR_LITE_V2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LIQUIDIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_LIQUIDIO_VF                              policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_LIRC                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LIVEPATCH                                policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LKDTM                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LLC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LLC2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LMP91000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LOAD_IPL_KEYS                            policy<{'s390x': 'y'}>
+CONFIG_LOAD_UEFI_KEYS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_LOCALVERSION                             policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_LOCKD                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LOCKDEP_SUPPORT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCKD_V4                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCKUP_DETECTOR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LOCK_DEBUGGING_SUPPORT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCK_DOWN_IN_SECURE_BOOT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCK_EVENT_COUNTS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_SPIN_ON_OWNER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LOCK_STAT                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOCK_TORTURE_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOGIG940_FF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LOGIRUMBLEPAD2_FF                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LOGITECH_FF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LOGIWHEELS_FF                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_LOGO                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_LOG_BUF_SHIFT                            policy<{'amd64': '18', 'arm64': '18', 'armhf': '17', 'i386': '17', 'ppc64el': '18', 's390x': '18'}>
+CONFIG_LOG_CPU_MAX_BUF_SHIFT                    policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'i386': '12', 'ppc64el': '12', 's390x': '12'}>
+CONFIG_LOOPBACK_TARGET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LP8788_ADC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LPARCFG                                  policy<{'ppc64el': 'y'}>
+CONFIG_LPC_ICH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LPC_SCH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_LP_CONSOLE                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_LRU_CACHE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LSI_ET1011C_PHY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LSM                                      policy<{'amd64': '"lockdown,yama,integrity,apparmor"', 'arm64': '"lockdown,yama,integrity,apparmor"', 'armhf': '"lockdown,yama,integrity,apparmor"', 'i386': '"lockdown,yama,integrity,apparmor"', 'ppc64el': '"lockdown,yama,integrity,apparmor"', 's390x': '"lockdown,yama,integrity,apparmor"'}>
+CONFIG_LSM_MMAP_MIN_ADDR                        policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_LS_SCFG_MSI                              policy<{'arm64': 'y'}>
+CONFIG_LTC1660                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LTC2471                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LTC2485                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LTC2497                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LTC2632                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LTE_GDM724X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LTPC                                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_LTR501                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LV0104CS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_LWTUNNEL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LWTUNNEL_BPF                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LXT_PHY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LZ4HC_COMPRESS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LZ4_COMPRESS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_LZ4_DECOMPRESS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LZO_COMPRESS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_LZO_DECOMPRESS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_M486                                     policy<{'i386': 'n'}>
+CONFIG_M586                                     policy<{'i386': 'n'}>
+CONFIG_M586MMX                                  policy<{'i386': 'n'}>
+CONFIG_M586TSC                                  policy<{'i386': 'n'}>
+CONFIG_M62332                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_M686                                     policy<{'i386': 'y'}>
+CONFIG_MAC80211                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAC80211_DEBUGFS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_DEBUG_MENU                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MAC80211_HAS_RC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_HWSIM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAC80211_LEDS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_MESH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_MESSAGE_TRACING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_RC_DEFAULT                      policy<{'amd64': '"minstrel_ht"', 'arm64': '"minstrel_ht"', 'armhf': '"minstrel_ht"', 'i386': '"minstrel_ht"', 'ppc64el': '"minstrel_ht"'}>
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_RC_MINSTREL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MAC80211_STA_HASH_MAX_SIZE               policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_MAC802154                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MACB                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MACB_PCI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MACB_USE_HWSTAMP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_MACHZ_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MACH_ARMADA_370                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_375                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_38X                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_39X                          policy<{'armhf': 'y'}>
+CONFIG_MACH_ARMADA_XP                           policy<{'armhf': 'y'}>
+CONFIG_MACH_ARTPEC6                             policy<{'armhf': 'n'}>
+CONFIG_MACH_ASPEED_G6                           policy<{'armhf': 'y'}>
+CONFIG_MACH_BERLIN_BG2                          policy<{'armhf': 'y'}>
+CONFIG_MACH_BERLIN_BG2CD                        policy<{'armhf': 'y'}>
+CONFIG_MACH_BERLIN_BG2Q                         policy<{'armhf': 'y'}>
+CONFIG_MACH_DOVE                                policy<{'armhf': 'y'}>
+CONFIG_MACH_MESON6                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MESON8                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT2701                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT6589                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT6592                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT7623                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT7629                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT8127                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MT8135                              policy<{'armhf': 'y'}>
+CONFIG_MACH_MVEBU_ANY                           policy<{'armhf': 'y'}>
+CONFIG_MACH_MVEBU_V7                            policy<{'armhf': 'y'}>
+CONFIG_MACH_OMAP3517EVM                         policy<{'armhf-generic': 'n'}>
+CONFIG_MACH_OMAP3_PANDORA                       policy<{'armhf-generic': 'y'}>
+CONFIG_MACH_OMAP_GENERIC                        policy<{'armhf': 'y'}>
+CONFIG_MACINTOSH_DRIVERS                        policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MACSEC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MACVLAN                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MACVTAP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MAC_EMUMOUSEBTN                          policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAC_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MADERA_IRQ                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAG3110                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAGIC_SYSRQ                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE               policy<{'amd64': '0x01b6', 'arm64': '0x01b6', 'armhf': '0x01b6', 'i386': '0x01b6', 'ppc64el': '0x01b6', 's390x': '0x01b6'}>
+CONFIG_MAGIC_SYSRQ_SERIAL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MAILBOX                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MAILBOX_TEST                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MANAGER_SBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MANDATORY_FILE_LOCKING                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MANTIS_CORE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MARCH_Z10                                policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z13                                policy<{'s390x': 'y'}>
+CONFIG_MARCH_Z14                                policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z15                                policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z15_TUNE                           policy<{'s390x': 'y'}>
+CONFIG_MARCH_Z196                               policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z900                               policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z990                               policy<{'s390x': 'n'}>
+CONFIG_MARCH_Z9_109                             policy<{'s390x': 'n'}>
+CONFIG_MARCH_ZEC12                              policy<{'s390x': 'n'}>
+CONFIG_MARVELL_10G_PHY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MARVELL_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MATH_EMULATION                           policy<{'i386': 'n'}>
+CONFIG_MATOM                                    policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MAX1027                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX11100                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX1118                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX1363                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX30100                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX30102                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX31856                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX44000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX44009                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX517                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX5432                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX5481                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX5487                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX5821                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX63XX_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MAX77620_THERMAL                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX77620_WATCHDOG                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX8925_POWER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAX9611                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAXIM_THERMOCOUPLE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MAXSMP                                   policy<{'amd64': 'y'}>
+CONFIG_MAX_PHYSMEM_BITS                         policy<{'s390x': '46'}>
+CONFIG_MAX_RAW_DEVS                             policy<{'amd64': '256', 'arm64': '256', 'armhf': '256', 'i386': '256', 'ppc64el': '256'}>
+CONFIG_MB1232                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MC3230                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MCB_LPC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCB_PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCORE2                                   policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MCP320X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP3422                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP3911                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP4018                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP41010                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP4131                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP4531                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP4725                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCP4922                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MCPM                                     policy<{'armhf': 'y'}>
+CONFIG_MCPM_QUAD_CLUSTER                        policy<{'armhf': 'y'}>
+CONFIG_MCRUSOE                                  policy<{'i386': 'n'}>
+CONFIG_MCYRIXIII                                policy<{'i386': 'n'}>
+CONFIG_MD                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MDA_CONSOLE                              policy<{'i386': 'm'}>
+CONFIG_MDIO                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_ASPEED                              policy<{'armhf': 'm'}>
+CONFIG_MDIO_BCM_IPROC                           policy<{'arm64': 'n'}>
+CONFIG_MDIO_BCM_UNIMAC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_BITBANG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_BUS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_MDIO_BUS_MUX                             policy<{'arm64': 'y', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_BUS_MUX_BCM_IPROC                   policy<{'arm64': 'y'}>
+CONFIG_MDIO_BUS_MUX_GPIO                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_BUS_MUX_MESON_G12A                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MDIO_BUS_MUX_MMIOREG                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_CAVIUM                              policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_DEVICE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MDIO_GPIO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_HISI_FEMAC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_I2C                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_MSCC_MIIM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_OCTEON                              policy<{'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_MDIO_SUN4I                               policy<{'arm64': 'n'}>
+CONFIG_MDIO_THUNDER                             policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MDIO_XGENE                               policy<{'arm64': 'm'}>
+CONFIG_MDM_GCC_9615                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MDM_LCC_9615                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MD_AUTODETECT                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MD_CLUSTER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_FAULTY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_LINEAR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_MULTIPATH                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'y'}>
+CONFIG_MD_RAID0                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID1                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID10                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MD_RAID456                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MEDIATEK_MT6577_AUXADC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MEDIATEK_WATCHDOG                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MEDIA_ALTERA_CI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_ANALOG_TV_SUPPORT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_ATTACH                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_CAMERA_SUPPORT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_CEC_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_COMMON_OPTIONS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_CONTROLLER                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_CONTROLLER_DVB                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_CONTROLLER_REQUEST_API             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_PCI_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_RADIO_SUPPORT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_SDR_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_SUBDRV_AUTOSELECT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEDIA_SUPPORT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEDIA_TUNER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_E4000                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_FC0011                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_FC0012                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_FC0013                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_FC2580                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_IT913X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_M88RS6000T                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MAX2165                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MC44S803                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MSI001                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MT2060                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MT2063                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MT20XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MT2131                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MT2266                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MXL301RF                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MXL5005S                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_MXL5007T                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_QM1D1B0004                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_QM1D1C0042                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_QT1010                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_R820T                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_SI2157                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_SIMPLE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18212                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18218                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18250                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA18271                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA827X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA8290                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TDA9887                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TEA5761                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TEA5767                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_TUA9001                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_XC2028                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_XC4000                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_TUNER_XC5000                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEDIA_USB_SUPPORT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MEFFICEON                                policy<{'i386': 'n'}>
+CONFIG_MEGARAID_LEGACY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEGARAID_MAILBOX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEGARAID_MM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEGARAID_NEWGEN                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MEGARAID_SAS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MELAN                                    policy<{'i386': 'n'}>
+CONFIG_MELLANOX_PLATFORM                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_MEMBARRIER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG_KMEM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG_SWAP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMCG_SWAP_ENABLED                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MEMFD_CREATE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MEMORY_BALLOON                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_FAILURE                           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_MEMORY_HOTPLUG                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_HOTPLUG_SPARSE                    policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_HOTREMOVE                         policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_ISOLATION                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEMORY_NOTIFIER_ERROR_INJECT             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MEMSTICK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MEMSTICK_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MEMSTICK_JMICRON_38X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEMSTICK_R592                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEMSTICK_REALTEK_PCI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEMSTICK_REALTEK_USB                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEMSTICK_TIFM_MS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEMSTICK_UNSAFE_RESUME                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MEMTEST                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MEM_SOFT_DIRTY                           policy<{'amd64': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_MENF21BMC_WATCHDOG                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MENZ069_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MEN_A21_WDT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MEN_Z188_ADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MESON6_TIMER                             policy<{'armhf': 'y'}>
+CONFIG_MESON_CANVAS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_CLK_MEASURE                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_EE_PM_DOMAINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_EFUSE                              policy<{'arm64': 'm'}>
+CONFIG_MESON_GXBB_WATCHDOG                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_GXL_PHY                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_GX_PM_DOMAINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_GX_SOCINFO                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_IRQ_GPIO                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_MX_EFUSE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_MX_SOCINFO                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MESON_SARADC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESON_SM                                 policy<{'arm64': 'y'}>
+CONFIG_MESON_WATCHDOG                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT                 policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4', 's390x': '4'}>
+CONFIG_MFD_88PM800                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_88PM805                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_88PM860X                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_AAT2870_CORE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_AC100                                policy<{'arm64': 'n'}>
+CONFIG_MFD_ACT8945A                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_AHC1EC0                              policy<{'amd64': 'm'}>
+CONFIG_MFD_ALTERA_SYSMGR                        policy<{'arm64': 'y'}>
+CONFIG_MFD_ARIZONA                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_ARIZONA_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_ARIZONA_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_AS3711                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_AS3722                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_ASIC3                                policy<{'armhf': 'y'}>
+CONFIG_MFD_ATMEL_FLEXCOM                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_ATMEL_HLCDC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_AXP20X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_AXP20X_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_AXP20X_RSB                           policy<{'arm64': 'm'}>
+CONFIG_MFD_BCM590XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_BD9571MWV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_CORE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_MFD_CPCAP                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_CROS_EC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MFD_CROS_EC_DEV                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MFD_CS47L15                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CS47L24                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CS47L35                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CS47L85                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CS47L90                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CS47L92                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_CS5535                               policy<{'i386': 'm'}>
+CONFIG_MFD_DA9052_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9052_SPI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9055                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_DA9062                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_DA9063                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_DA9150                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_DLN2                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_EXYNOS_LPASS                         policy<{'armhf': 'm'}>
+CONFIG_MFD_HI6421_PMIC                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_HI655X_PMIC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_INTEL_LPSS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MFD_INTEL_LPSS_ACPI                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MFD_INTEL_LPSS_PCI                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MFD_INTEL_MSIC                           policy<{'i386': 'y'}>
+CONFIG_MFD_INTEL_QUARK_I2C_GPIO                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MFD_JANZ_CMODIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_KEMPLD                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_LM3533                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_LOCHNAGAR                            policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_LP3943                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_LP8788                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MADERA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MADERA_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MADERA_SPI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MAX14577                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_MAX77620                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX77650                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MAX77686                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX77693                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_MAX77843                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX8907                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MAX8925                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX8997                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MAX8998                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_MC13XXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MC13XXX_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MC13XXX_SPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_MENF21BMC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_MT6397                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_NVEC                                 policy<{'armhf-generic': 'm'}>
+CONFIG_MFD_OMAP_USB_HOST                        policy<{'armhf': 'y'}>
+CONFIG_MFD_PALMAS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_PCF50633                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_PM8XXX                               policy<{'armhf': 'm'}>
+CONFIG_MFD_QCOM_RPM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_RC5T583                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_RDC321X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MFD_RETU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_RK808                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_RN5T618                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_ROHM_BD70528                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_ROHM_BD718XX                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_RT5033                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SC27XX_PMIC                          policy<{'arm64': 'm'}>
+CONFIG_MFD_SEC_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SI476X_CORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SKY81452                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_SM501_GPIO                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SMSC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_SPMI_PMIC                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MFD_STMFX                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_STMPE                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_STPMIC1                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_SUN4I_GPADC                          policy<{'arm64': 'm'}>
+CONFIG_MFD_SUN6I_PRCM                           policy<{'arm64': 'y'}>
+CONFIG_MFD_SYSCON                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_T7L66XB                              policy<{'armhf': 'y'}>
+CONFIG_MFD_TC3589X                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TC6387XB                             policy<{'armhf': 'y'}>
+CONFIG_MFD_TC6393XB                             policy<{'armhf': 'y'}>
+CONFIG_MFD_TIMBERDALE                           policy<{'i386': 'm'}>
+CONFIG_MFD_TI_AM335X_TSCADC                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TI_LMU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TI_LP873X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TI_LP87565                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_TMIO                                 policy<{'armhf': 'y'}>
+CONFIG_MFD_TPS65086                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TPS65090                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65218                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_TPS6586X                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65910                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65912                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS65912_I2C                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MFD_TPS65912_SPI                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TPS68470                             policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_MFD_TPS80031                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_TQMX86                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_TWL4030_AUDIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_VEXPRESS_SYSREG                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MFD_VIPERBOARD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MFD_VX855                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MFD_WL1273_CORE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_WM5102                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM5110                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM831X                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM831X_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM831X_SPI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8350                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8350_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8400                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8994                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MFD_WM8997                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MFD_WM8998                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MGEODEGX1                                policy<{'i386': 'n'}>
+CONFIG_MGEODE_LX                                policy<{'i386': 'n'}>
+CONFIG_MICREL_KS8995MA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MICREL_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MICROCHIP_PHY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MICROCHIP_T1_PHY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MICROCODE                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROCODE_AMD                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROCODE_INTEL                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROCODE_OLD_INTERFACE                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MICROSEMI_PHY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MIC_COSM                                 policy<{'amd64': 'm'}>
+CONFIG_MIGHT_HAVE_CACHE_L2X0                    policy<{'armhf': 'y'}>
+CONFIG_MIGRATION                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MII                                      policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MILBEAUT_TIMER                           policy<{'armhf': 'y'}>
+CONFIG_MINIX_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MINIX_SUBPARTITION                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MISC_ALCOR_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MISC_FILESYSTEMS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MISC_RTSX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISC_RTSX_PCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MISC_RTSX_USB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_AVMFRITZ                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_DSP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_HDLC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_HFCMULTI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_HFCPCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_HFCUSB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_INFINEON                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_IPAC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_ISAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_L1OIP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_NETJET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_SPEEDFAX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MISDN_W6692                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY          policy<{'arm64': 'y'}>
+CONFIG_MIXCOMWD                                 policy<{'i386': 'm'}>
+CONFIG_MK6                                      policy<{'i386': 'n'}>
+CONFIG_MK7                                      policy<{'i386': 'n'}>
+CONFIG_MK8                                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MKISS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MLX4_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX4_CORE_GEN2                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX4_DEBUG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX4_EN                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX4_EN_DCB                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX4_INFINIBAND                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX5_ACCEL                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX5_CORE_EN                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_CORE_EN_DCB                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_CORE_IPOIB                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_ARFS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_IPSEC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_RXNFC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_EN_TLS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_ESWITCH                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_FPGA                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_FPGA_IPSEC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_FPGA_TLS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_INFINIBAND                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX5_MPFS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_SW_STEERING                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX5_TLS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLX90614                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MLX90632                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MLXBF_TMFIFO                             policy<{'arm64': 'm'}>
+CONFIG_MLXFW                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXREG_HOTPLUG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MLXREG_IO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MLXSW_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_CORE_HWMON                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MLXSW_CORE_THERMAL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MLXSW_I2C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_MLXSW_MINIMAL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MLXSW_PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SPECTRUM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SPECTRUM_DCB                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MLXSW_SWITCHIB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLXSW_SWITCHX2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MLX_PLATFORM                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MLX_WDT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_MMA7455                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA7455_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA7455_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA7660                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA8452                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA9551                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA9551_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMA9553                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_MMC35240                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMCONF_FAM10H                            policy<{'amd64': 'y'}>
+CONFIG_MMC_ALCOR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_ARMMMCI                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_MMC_BLOCK_MINORS                         policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_MMC_CAVIUM_THUNDERX                      policy<{'arm64': 'm'}>
+CONFIG_MMC_CB710                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_CQHCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MMC_DW                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_BLUEFIELD                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_EXYNOS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_HI3798CV200                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_K3                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_PCI                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_PLTFM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_DW_ROCKCHIP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_MESON_GX                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_MESON_MX_SDIO                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_MTK                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_MVSDIO                               policy<{'armhf': 'm'}>
+CONFIG_MMC_MXC                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MMC_OMAP                                 policy<{'armhf': 'm'}>
+CONFIG_MMC_QCOM_DML                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_REALTEK_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_REALTEK_USB                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_RICOH_MMC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MMC_SDHCI_ACPI                           policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_MMC_SDHCI_AM654                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER  policy<{'ppc64el': 'y'}>
+CONFIG_MMC_SDHCI_BRCMSTB                        policy<{'arm64': 'm'}>
+CONFIG_MMC_SDHCI_CADENCE                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_DOVE                           policy<{'armhf': 'm'}>
+CONFIG_MMC_SDHCI_ESDHC_IMX                      policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_MMC_SDHCI_F_SDH30                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_IO_ACCESSORS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MMC_SDHCI_IPROC                          policy<{'arm64': 'm'}>
+CONFIG_MMC_SDHCI_MSM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_OF_ARASAN                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_OF_ASPEED                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_OF_AT91                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_OF_DWCMSHC                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_OF_ESDHC                       policy<{'arm64': 'm', 'armhf-generic': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_OF_HLWD                        policy<{'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_OMAP                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_PCI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHCI_PXAV3                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHCI_S3C                            policy<{'armhf': 'm'}>
+CONFIG_MMC_SDHCI_S3C_DMA                        policy<{'armhf': 'y'}>
+CONFIG_MMC_SDHCI_SPRD                           policy<{'arm64': 'm'}>
+CONFIG_MMC_SDHCI_TEGRA                          policy<{'armhf-generic': 'm'}>
+CONFIG_MMC_SDHCI_XENON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_SDHI                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHI_INTERNAL_DMAC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDHI_SYS_DMAC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SDRICOH_CS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MMC_SH_MMCIF                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_SPI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_STM32_SDMMC                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MMC_SUNXI                                policy<{'arm64': 'm'}>
+CONFIG_MMC_TEST                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MMC_TIFM_SD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_TMIO                                 policy<{'armhf': 'm'}>
+CONFIG_MMC_TMIO_CORE                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MMC_TOSHIBA_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_UNIPHIER                             policy<{'armhf': 'm'}>
+CONFIG_MMC_USDHI6ROL0                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_USHC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_VIA_SDMMC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_VUB300                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMC_WBSD                                 policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MMIOTRACE                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MMIOTRACE_TEST                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MMIOWB                                   policy<{'ppc64el': 'y'}>
+CONFIG_MMU                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MMU_NOTIFIER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULES_TREE_LOOKUP                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULES_USE_ELF_REL                      policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_MODULES_USE_ELF_RELA                     policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_COMPRESS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_FORCE_LOAD                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_FORCE_UNLOAD                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_REL_CRCS                          policy<{'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SIG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SIG_ALL                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SIG_FORCE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_FORMAT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SIG_HASH                          policy<{'amd64': '"sha512"', 'arm64': '"sha512"', 'armhf': '"sha512"', 'i386': '"sha512"', 'ppc64el': '"sha512"', 's390x': '"sha512"'}>
+CONFIG_MODULE_SIG_KEY                           policy<{'amd64': '"certs/signing_key.pem"', 'arm64': '"certs/signing_key.pem"', 'armhf': '"certs/signing_key.pem"', 'i386': '"certs/signing_key.pem"', 'ppc64el': '"certs/signing_key.pem"', 's390x': '"certs/signing_key.pem"'}>
+CONFIG_MODULE_SIG_SHA1                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA224                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA256                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA384                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_MODULE_SIG_SHA512                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_SRCVERSION_ALL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MODULE_UNLOAD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MONREADER                                policy<{'s390x': 'm'}>
+CONFIG_MONWRITER                                policy<{'s390x': 'm'}>
+CONFIG_MOST                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_CDEV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_DIM2                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_I2C                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_NET                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_SOUND                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_USB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOST_VIDEO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_APPLETOUCH                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_BCM5974                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_CYAPA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_ELAN_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_ELAN_I2C_I2C                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_ELAN_I2C_SMBUS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_GPIO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_LOGIBM                             policy<{'i386': 'm'}>
+CONFIG_MOUSE_PC110PAD                           policy<{'i386': 'm'}>
+CONFIG_MOUSE_PS2                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_PS2_ALPS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_BYD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_CYPRESS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_ELANTECH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_FOCALTECH                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_LIFEBOOK                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MOUSE_PS2_LOGIPS2PP                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_SENTELIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_SMBUS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_SYNAPTICS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_TOUCHKIT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_TRACKPOINT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MOUSE_PS2_VMMOUSE                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MOUSE_SERIAL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_SYNAPTICS_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_SYNAPTICS_USB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOUSE_VSXXXAA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOXA_INTELLIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOXA_SMARTIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MOXTET                                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MPENTIUM4                                policy<{'i386': 'n'}>
+CONFIG_MPENTIUMII                               policy<{'i386': 'n'}>
+CONFIG_MPENTIUMIII                              policy<{'i386': 'n'}>
+CONFIG_MPENTIUMM                                policy<{'i386': 'n'}>
+CONFIG_MPIC                                     policy<{'ppc64el': 'y'}>
+CONFIG_MPIC_MSGR                                policy<{'ppc64el': 'n'}>
+CONFIG_MPILIB                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MPL115                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MPL115_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MPL115_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MPL3115                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MPLS                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MPLS_IPTUNNEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MPLS_ROUTING                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MPROFILE_KERNEL                          policy<{'ppc64el': 'y'}>
+CONFIG_MPSC                                     policy<{'amd64': 'n'}>
+CONFIG_MPU3050                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MPU3050_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MQ_IOSCHED_DEADLINE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MQ_IOSCHED_KYBER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MRP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MS5611                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MS5611_I2C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MS5611_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MS5637                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MSCC_OCELOT_SWITCH                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MSCC_OCELOT_SWITCH_OCELOT                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MSDOS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_MSDOS_PARTITION                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MSI_BITMAP_SELFTEST                      policy<{'ppc64el': 'n'}>
+CONFIG_MSI_LAPTOP                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MSI_WMI                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MSM_GCC_8660                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8916                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8960                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8974                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8994                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8996                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_GCC_8998                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_IOMMU                                policy<{'armhf': 'n'}>
+CONFIG_MSM_LCC_8960                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_MMCC_8960                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_MMCC_8974                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSM_MMCC_8996                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MSPRO_BLOCK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MS_BLOCK                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT7601U                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT7603E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT7615E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76_LEDS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MT76_USB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x02_LIB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x02_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x0E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x0U                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x0_COMMON                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x2E                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x2U                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MT76x2_COMMON                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTDRAM_ERASE_SIZE                        policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128'}>
+CONFIG_MTDRAM_TOTAL_SIZE                        policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'i386': '4096', 'ppc64el': '4096'}>
+CONFIG_MTD_ABSENT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_AFS_PARTS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_AMD76XROM                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_AR7_PARTS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_BCM47XXSFLASH                        policy<{'armhf': 'm'}>
+CONFIG_MTD_BLKDEVS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_BLOCK2MTD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_BLOCK_RO                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_CFI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_CFI_ADV_OPTIONS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_CFI_AMDSTD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_CFI_I1                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_CFI_I2                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_CFI_INTELEXT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_CFI_STAA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_CFI_UTIL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_CK804XROM                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_CMDLINE_PARTS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_COMPLEX_MAPPINGS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_DATAFLASH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_DATAFLASH_OTP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_DATAFLASH_WRITE_VERIFY               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_ESB2ROM                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_GEN_PROBE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_HYPERBUS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_ICHXROM                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_IMPA7                                policy<{'armhf': 'm'}>
+CONFIG_MTD_INTEL_VR_NOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_JEDECPROBE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_L440GX                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_LPDDR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_LPDDR2_NVM                           policy<{'armhf': 'm'}>
+CONFIG_MTD_MAP_BANK_WIDTH_1                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_MAP_BANK_WIDTH_2                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_MAP_BANK_WIDTH_4                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_MCHP23K256                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_MTDRAM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_BRCMNAND                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_CAFE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_CORE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_CS553X                          policy<{'i386': 'm'}>
+CONFIG_MTD_NAND_DENALI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_DENALI_DT                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_DENALI_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_DISKONCHIP                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS        policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_NAND_ECC_SW_BCH                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_NAND_ECC_SW_HAMMING                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_NAND_FSL_IFC                         policy<{'arm64': 'm'}>
+CONFIG_MTD_NAND_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_GPMI_NAND                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MTD_NAND_HISI504                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_MARVELL                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_MESON                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_MTK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_MXC                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_MTD_NAND_MXIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_NANDSIM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_OMAP_BCH_BUILD                  policy<{'armhf': 'y'}>
+CONFIG_MTD_NAND_ORION                           policy<{'armhf': 'm'}>
+CONFIG_MTD_NAND_PLATFORM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_QCOM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTD_NAND_RICOH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_NAND_SUNXI                           policy<{'arm64': 'n'}>
+CONFIG_MTD_NAND_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_MTD_NAND_TMIO                            policy<{'armhf': 'm'}>
+CONFIG_MTD_NAND_VF610_NFC                       policy<{'armhf-generic': 'n'}>
+CONFIG_MTD_NETtel                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_ONENAND                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_ONENAND_2X_PROGRAM                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_ONENAND_GENERIC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_ONENAND_OMAP2                        policy<{'armhf-generic': 'm'}>
+CONFIG_MTD_ONENAND_OTP                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_OOPS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_PARTITIONED_MASTER                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_PCMCIA                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_PCMCIA_ANONYMOUS                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_MTD_PHRAM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_PHYSMAP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_PHYSMAP_COMPAT                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_PHYSMAP_GEMINI                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n'}>
+CONFIG_MTD_PHYSMAP_GPIO_ADDR                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_PHYSMAP_OF                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_PHYSMAP_VERSATILE                    policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n'}>
+CONFIG_MTD_PLATRAM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_PMC551                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_PMC551_BUGFIX                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_PMC551_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_POWERNV_FLASH                        policy<{'ppc64el': 'm'}>
+CONFIG_MTD_QINFO_PROBE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_RAM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK              policy<{'amd64': '-1', 'arm64': '-1', 'armhf': '-1', 'i386': '-1', 'ppc64el': '-1'}>
+CONFIG_MTD_REDBOOT_PARTS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_REDBOOT_PARTS_READONLY               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_ROM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_SBC_GXX                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_SCB2_FLASH                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MTD_SCx200_DOCFLASH                      policy<{'i386': 'm'}>
+CONFIG_MTD_SHARPSL_PARTS                        policy<{'armhf': 'm'}>
+CONFIG_MTD_SLRAM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_SM_COMMON                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_SPI_NAND                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_SPI_NOR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_SST25L                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_SWAP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_TESTS                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_MTD_UBI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_UBI_BEB_LIMIT                        policy<{'amd64': '20', 'arm64': '20', 'armhf': '20', 'i386': '20', 'ppc64el': '20'}>
+CONFIG_MTD_UBI_BLOCK                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_UBI_FASTMAP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MTD_UBI_GLUEBI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MTD_UBI_WL_THRESHOLD                     policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'i386': '4096', 'ppc64el': '4096'}>
+CONFIG_MTK_CMDQ                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_CMDQ_MBOX                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_CQDMA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_EFUSE                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTK_HSDMA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_INFRACFG                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTK_IOMMU                                policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_MTK_IOMMU_V1                             policy<{'armhf': 'n'}>
+CONFIG_MTK_PMIC_WRAP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_SCPSYS                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTK_SMI                                  policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTK_THERMAL                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTK_TIMER                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MTK_UART_APDMA                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MTRR                                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MTRR_SANITIZER                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT            policy<{'amd64': '1', 'i386': '1'}>
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT      policy<{'amd64': '1', 'i386': '1'}>
+CONFIG_MULTIPLEXER                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MULTIUSER                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MUSB_PIO_ONLY                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_MUTEX_SPIN_ON_OWNER                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_MUX_ADG792A                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MUX_ADGS1408                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MUX_GPIO                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MUX_MMIO                                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_MV643XX_ETH                              policy<{'armhf': 'm'}>
+CONFIG_MVEBU_CLK_COMMON                         policy<{'armhf': 'y'}>
+CONFIG_MVEBU_CLK_COREDIV                        policy<{'armhf': 'y'}>
+CONFIG_MVEBU_CLK_CPU                            policy<{'armhf': 'y'}>
+CONFIG_MVEBU_DEVBUS                             policy<{'armhf': 'y'}>
+CONFIG_MVEBU_GICP                               policy<{'arm64': 'y'}>
+CONFIG_MVEBU_ICU                                policy<{'arm64': 'y'}>
+CONFIG_MVEBU_MBUS                               policy<{'armhf': 'y'}>
+CONFIG_MVEBU_ODMI                               policy<{'arm64': 'y'}>
+CONFIG_MVEBU_PIC                                policy<{'arm64': 'y'}>
+CONFIG_MVEBU_SEI                                policy<{'arm64': 'y'}>
+CONFIG_MVIAC3_2                                 policy<{'i386': 'n'}>
+CONFIG_MVIAC7                                   policy<{'i386': 'n'}>
+CONFIG_MVMDIO                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MVNETA                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MVNETA_BM_ENABLE                         policy<{'armhf': 'n'}>
+CONFIG_MVPP2                                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_MV_XOR                                   policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_MV_XOR_V2                                policy<{'arm64': 'y'}>
+CONFIG_MWAVE                                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MWIFIEX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MWIFIEX_PCIE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MWIFIEX_SDIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MWIFIEX_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MWINCHIP3D                               policy<{'i386': 'n'}>
+CONFIG_MWINCHIPC6                               policy<{'i386': 'n'}>
+CONFIG_MWL8K                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MX3_IPU                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_MX3_IPU_IRQS                             policy<{'arm64': '4', 'armhf-generic': '4'}>
+CONFIG_MXC4005                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MXC6255                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MXC_CLK                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_MXC_CLK_SCU                              policy<{'arm64': 'y'}>
+CONFIG_MXC_TZIC                                 policy<{'armhf-generic': 'y'}>
+CONFIG_MXM_WMI                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_MXS_DMA                                  policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_MYRI10GE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_MYRI10GE_DCA                             policy<{'amd64': 'y'}>
+CONFIG_N2                                       policy<{'i386': 'm'}>
+CONFIG_NAMESPACES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NATIONAL_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NATSEMI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NAU7802                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NBPFAXI_DMA                              policy<{'armhf': 'm'}>
+CONFIG_NCSI_OEM_CMD_GET_MAC                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ND_BLK                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ND_BTT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ND_CLAIM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ND_PFN                                   policy<{'amd64': 'm', 'ppc64el': 'm'}>
+CONFIG_NE2000                                   policy<{'i386': 'm'}>
+CONFIG_NE2K_PCI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NEED_DMA_MAP_STATE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NEED_MULTIPLE_NODES                      policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_NEED_SG_DMA_LENGTH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NEON                                     policy<{'armhf': 'y'}>
+CONFIG_NET                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET5501                                  policy<{'i386': 'y'}>
+CONFIG_NETCONSOLE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETCONSOLE_DYNAMIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETDEVICES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETDEVSIM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETDEV_NOTIFIER_ERROR_INJECT             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NETFILTER                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_ADVANCED                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_CONNCOUNT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_FAMILY_ARP                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_FAMILY_BRIDGE                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_INGRESS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_NETLINK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_ACCT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_GLUE_CT                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETFILTER_NETLINK_LOG                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_OSF                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_NETLINK_QUEUE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_SYNPROXY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XTABLES                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_CONNMARK                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MARK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_BPF                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CGROUP                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CLUSTER               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_COMMENT               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNMARK              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_CPU                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_DCCP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_DSCP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_ECN                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_ESP                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_HELPER                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_HL                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_IPCOMP                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_IPRANGE               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_IPVS                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_L2TP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_LENGTH                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_LIMIT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_MAC                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_MARK                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_NFACCT                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_OSF                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_OWNER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_POLICY                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_QUOTA                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_RATEEST               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_REALM                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_RECENT                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_SCTP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_SOCKET                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_STATE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_STATISTIC             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_STRING                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_TCPMSS                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_TIME                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_MATCH_U32                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_NAT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_SET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_AUDIT                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CONNMARK             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_CT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_DSCP                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_HL                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_HMARK                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_LED                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_LOG                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_MARK                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NETMAP               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NFLOG                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_NOTRACK              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NETFILTER_XT_TARGET_RATEEST              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_REDIRECT             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_SECMARK              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TCPMSS               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TEE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TPROXY               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETFILTER_XT_TARGET_TRACE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETIUCV                                  policy<{'s390x': 'm'}>
+CONFIG_NETLABEL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETLINK_DIAG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NETPOLL                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETROM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NETWORK_FILESYSTEMS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETWORK_SECMARK                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NETXEN_NIC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_9P_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NET_9P_RDMA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_9P_VIRTIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_9P_XEN                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_NET_ACT_BPF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CONNMARK                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CSUM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_CTINFO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_GACT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_IFE                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NET_ACT_IPT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_MIRRED                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_MPLS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_NAT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_PEDIT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_POLICE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SAMPLE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SIMP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SKBEDIT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_SKBMOD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_TUNNEL_KEY                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_ACT_VLAN                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CALXEDA_XGMAC                        policy<{'armhf': 'm'}>
+CONFIG_NET_CLS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_CLS_ACT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_CLS_BASIC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_BPF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_CGROUP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_FLOW                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_FLOWER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_FW                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_MATCHALL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_ROUTE4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CLS_U32                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_CORE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_DEVLINK                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_DSA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_BCM_SF2                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_LANTIQ_GSWIP                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_LOOP                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ8795                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ9477                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MT7530                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MV88E6060                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MV88E6XXX                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_DSA_MV88E6XXX_PTP                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_DSA_QCA8K                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_REALTEK_SMI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_SJA1105                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_SJA1105_PTP                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_DSA_SJA1105_TAS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_DSA_SMSC_LAN9303                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_SMSC_LAN9303_I2C                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_8021Q                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_BRCM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_BRCM_COMMON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_BRCM_PREPEND                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_DSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_EDSA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_GSWIP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_KSZ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_LAN9303                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_MTK                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_QCA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_SJA1105                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_TAG_TRAILER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_VITESSE_VSC73XX                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_DSA_VITESSE_VSC73XX_SPI              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_EGRESS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_EMATCH                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_EMATCH_CANID                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_EMATCH_CMP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_IPSET                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_IPT                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_META                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_NBYTE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_STACK                         policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32', 's390x': '32'}>
+CONFIG_NET_EMATCH_TEXT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_EMATCH_U32                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FAILOVER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FC                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_FLOW_LIMIT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_FOU                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_FOU_IP_TUNNELS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_IFE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_INGRESS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_IPGRE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IPGRE_BROADCAST                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_IPGRE_DEMUX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IPIP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IPVTI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_IP_TUNNEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_KEY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_KEY_MIGRATE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NET_L3_MASTER_DEV                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_MPLS_GSO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_NCSI                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_NSH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_PKTGEN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_POLL_CONTROLLER                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_PTP_CLASSIFY                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_REDIRECT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_RX_BUSY_POLL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_SB1000                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_NET_SCHED                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_SCH_ATM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NET_SCH_CAKE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CBQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CBS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CHOKE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_CODEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_DEFAULT                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NET_SCH_DRR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_DSMARK                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_ETF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_FIFO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_SCH_FQ                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_FQ_CODEL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_GRED                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_HFSC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_HHF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_HTB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_INGRESS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_MQPRIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_MULTIQ                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_NETEM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_PIE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_PLUG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_PRIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_QFQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_RED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_SFB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_SFQ                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_SKBPRIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_TAPRIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_TBF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SCH_TEQL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_SOCK_MSG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_TC_SKB_EXT                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_TEAM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_BROADCAST                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_LOADBALANCE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_RANDOM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TEAM_MODE_ROUNDROBIN                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_TULIP                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_UDP_TUNNEL                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_VENDOR_3COM                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_8390                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_VENDOR_ADAPTEC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_AGERE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_ALACRITECH                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_ALLWINNER                     policy<{'arm64': 'y'}>
+CONFIG_NET_VENDOR_ALTEON                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_AMAZON                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_AMD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_AQUANTIA                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_ARC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_ATHEROS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_AURORA                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_BROADCOM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_BROCADE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_CADENCE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_CAVIUM                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_CHELSIO                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_CIRRUS                        policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_NET_VENDOR_CISCO                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_CORTINA                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_DEC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_DLINK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_EZCHIP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_FARADAY                       policy<{'armhf': 'y'}>
+CONFIG_NET_VENDOR_FREESCALE                     policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_NET_VENDOR_FUJITSU                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_NET_VENDOR_GOOGLE                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_HISILICON                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_NET_VENDOR_HP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_HUAWEI                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_I825XX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_VENDOR_IBM                           policy<{'ppc64el': 'y'}>
+CONFIG_NET_VENDOR_INTEL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_MARVELL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_MEDIATEK                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_NET_VENDOR_MELLANOX                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_MICREL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_MICROCHIP                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_MICROSEMI                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_MYRI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_NATSEMI                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_NETERION                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_NETRONOME                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_NI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_NVIDIA                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_OKI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_PACKET_ENGINES                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_PENSANDO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_QLOGIC                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_QUALCOMM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_RDC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_REALTEK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_RENESAS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_ROCKER                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SAMSUNG                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SEEQ                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SILAN                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SIS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SMSC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SOCIONEXT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_SOLARFLARE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_STMICRO                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SUN                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_SYNOPSYS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NET_VENDOR_TEHUTI                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_TI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_VIA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_WIZNET                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NET_VENDOR_XILINX                        policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NET_VENDOR_XIRCOM                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_NET_VRF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NET_XGENE                                policy<{'arm64': 'm'}>
+CONFIG_NET_XGENE_V2                             policy<{'arm64': 'm'}>
+CONFIG_NEW_LEDS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_NFC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NFC_DIGITAL                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_FDP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_FDP_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_HCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MEI_PHY                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NFC_MICROREAD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MICROREAD_I2C                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MICROREAD_MEI                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NFC_MRVL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MRVL_I2C                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MRVL_SPI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MRVL_UART                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_MRVL_USB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_NCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_NCI_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_NCI_UART                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_NXP_NCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_NXP_NCI_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_PN533                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_PN533_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_PN533_USB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_PN544                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_PN544_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_PN544_MEI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NFC_PORT100                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_S3FWRN5                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_S3FWRN5_I2C                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_SHDLC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NFC_SIM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_ST21NFCA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_ST21NFCA_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_ST95HF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_ST_NCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_ST_NCI_I2C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_ST_NCI_SPI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFC_TRF7970A                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFIT_SECURITY_DEBUG                      policy<{'amd64': 'n', 'arm64': 'n'}>
+CONFIG_NFP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NFP_APP_ABM_NIC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NFP_APP_FLOWER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NFP_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_NFSD                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFSD_BLOCKLAYOUT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_FLEXFILELAYOUT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_PNFS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_SCSILAYOUT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V2_ACL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V3                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V3_ACL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V4                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFSD_V4_SECURITY_LABEL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_ACL_SUPPORT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_COMMON                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_DEBUG                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_FSCACHE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_SWAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_USE_KERNEL_DNS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_USE_LEGACY_DNS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NFS_V2                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_V3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_V3_ACL                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFS_V4_1                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN        policy<{'amd64': '"kernel.org"', 'arm64': '"kernel.org"', 'armhf': '"kernel.org"', 'i386': '"kernel.org"', 'ppc64el': '"kernel.org"', 's390x': '"kernel.org"'}>
+CONFIG_NFS_V4_1_MIGRATION                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4_2                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFS_V4_SECURITY_LABEL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NFTL                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NFTL_RW                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NFT_BRIDGE_META                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_BRIDGE_REJECT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_COMPAT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_CONNLIMIT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_COUNTER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_CT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_DUP_IPV4                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_DUP_IPV6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_DUP_NETDEV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_INET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_IPV4                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_IPV6                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FIB_NETDEV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FLOW_OFFLOAD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_FWD_NETDEV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_HASH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_LIMIT                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_LOG                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_MASQ                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_NAT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_NUMGEN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_OBJREF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_OSF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_QUEUE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_QUOTA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REDIR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REJECT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REJECT_INET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REJECT_IPV4                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_REJECT_IPV6                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_SOCKET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_SYNPROXY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_TPROXY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_TUNNEL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NFT_XFRM                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_AMANDA                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_BRIDGE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_BROADCAST                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_EVENTS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_FTP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_H323                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_IRC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_LABELS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_MARK                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_NETBIOS_NS                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_PPTP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_PROCFS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NF_CONNTRACK_SANE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_SECMARK                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_SIP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_SNMP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_TFTP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CONNTRACK_TIMEOUT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_TIMESTAMP                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CONNTRACK_ZONES                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_NETLINK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CT_NETLINK_HELPER                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CT_NETLINK_TIMEOUT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_CT_PROTO_DCCP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_PROTO_GRE                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_PROTO_SCTP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_CT_PROTO_UDPLITE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_DEFRAG_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_DEFRAG_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_DUP_IPV4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_DUP_IPV6                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_DUP_NETDEV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE_INET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE_IPV4                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_FLOW_TABLE_IPV6                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_ARP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_BRIDGE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_COMMON                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_IPV4                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_IPV6                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_LOG_NETDEV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_AMANDA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_FTP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_H323                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_IRC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_MASQUERADE                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_NAT_PPTP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_REDIRECT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_NAT_SIP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_SNMP_BASIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_NAT_TFTP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_REJECT_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_REJECT_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_SOCKET_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_SOCKET_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_ARP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_TABLES_BRIDGE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TABLES_INET                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_TABLES_IPV4                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_TABLES_IPV6                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_TABLES_NETDEV                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NF_TABLES_SET                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TPROXY_IPV4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NF_TPROXY_IPV6                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NI65                                     policy<{'i386': 'm'}>
+CONFIG_NI903X_WDT                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NIC7018_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NILFS2_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NIU                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NI_XGE_MANAGEMENT_ENET                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NL80211_TESTMODE                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_NLATTR                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NLMON                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ASCII                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_1250                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_1251                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_437                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NLS_CODEPAGE_737                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_775                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_850                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_852                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_855                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_857                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_860                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_861                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_862                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_863                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_864                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_865                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_866                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_869                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_874                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_932                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_936                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_949                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_CODEPAGE_950                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_DEFAULT                              policy<{'amd64': '"utf8"', 'arm64': '"utf8"', 'armhf': '"utf8"', 'i386': '"utf8"', 'ppc64el': '"utf8"', 's390x': '"utf8"'}>
+CONFIG_NLS_ISO8859_1                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_13                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_14                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_15                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_3                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_4                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_5                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_6                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_7                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_8                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_ISO8859_9                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_KOI8_R                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_KOI8_U                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CELTIC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CENTEURO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CROATIAN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_CYRILLIC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_GAELIC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_GREEK                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_ICELAND                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_INUIT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_ROMAN                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_ROMANIAN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_MAC_TURKISH                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NLS_UTF8                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NMI_IPI                                  policy<{'ppc64el': 'y'}>
+CONFIG_NOA1305                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NODES_SHIFT                              policy<{'amd64': '10', 'arm64': '6', 'ppc64el': '8', 's390x': '4'}>
+CONFIG_NODES_SPAN_OTHER_NODES                   policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NOHIGHMEM                                policy<{'i386': 'n'}>
+CONFIG_NOKIA_MODEM                              policy<{'armhf-generic': 'm'}>
+CONFIG_NONSTATIC_KERNEL                         policy<{'ppc64el': 'y'}>
+CONFIG_NOP_TRACER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NORTEL_HERMES                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NOTIFIER_ERROR_INJECTION                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NOUVEAU_DEBUG                            policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'i386': '5', 'ppc64el': '5'}>
+CONFIG_NOUVEAU_DEBUG_DEFAULT                    policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'i386': '3', 'ppc64el': '3'}>
+CONFIG_NOUVEAU_DEBUG_MMU                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_NOUVEAU_PLATFORM_DRIVER                  policy<{'armhf-generic': 'y'}>
+CONFIG_NOZOMI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NO_HZ                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NO_HZ_COMMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NO_HZ_FULL                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+CONFIG_NO_IOPORT_MAP                            policy<{'armhf': 'y', 's390x': 'y'}>
+CONFIG_NPCM7XX_KCS_IPMI_BMC                     policy<{'armhf': 'm'}>
+CONFIG_NPCM7XX_TIMER                            policy<{'armhf': 'y'}>
+CONFIG_NPCM7XX_WATCHDOG                         policy<{'armhf': 'y'}>
+CONFIG_NPCM_ADC                                 policy<{'armhf': 'm'}>
+CONFIG_NR_CPUS_DEFAULT                          policy<{'amd64': '8192', 'i386': '8'}>
+CONFIG_NR_CPUS_RANGE_BEGIN                      policy<{'amd64': '8192', 'i386': '2'}>
+CONFIG_NR_CPUS_RANGE_END                        policy<{'amd64': '8192', 'i386': '8'}>
+CONFIG_NR_IRQS                                  policy<{'ppc64el': '512'}>
+CONFIG_NS83820                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NSC_GPIO                                 policy<{'i386': 'm'}>
+CONFIG_NTB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_NTB_AMD                                  policy<{'amd64': 'n'}>
+CONFIG_NTB_IDT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTB_INTEL                                policy<{'amd64': 'm'}>
+CONFIG_NTB_MSI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NTB_MSI_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_NTB_NETDEV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTB_PERF                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTB_PINGPONG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTB_SWITCHTEC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTB_TOOL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTB_TRANSPORT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_NTFS_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NTFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NTFS_RW                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_NULL_TTY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NUMA_BALANCING                           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NVDIMM_DAX                               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_NVDIMM_KEYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NVDIMM_PFN                               policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_NVEC_PAZ00                               policy<{'armhf-generic': 'm'}>
+CONFIG_NVEC_POWER                               policy<{'armhf-generic': 'm'}>
+CONFIG_NVMEM_BCM_OCOTP                          policy<{'arm64': 'm'}>
+CONFIG_NVMEM_IMX_IIM                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_NVMEM_IMX_OCOTP                          policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_NVMEM_IMX_OCOTP_SCU                      policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_NVMEM_REBOOT_MODE                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_NVMEM_SNVS_LPGPR                         policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_NVMEM_SUNXI_SID                          policy<{'arm64': 'm'}>
+CONFIG_NVMEM_SYSFS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_NVMEM_VF610_OCOTP                        policy<{'armhf-generic': 'n'}>
+CONFIG_NVMEM_ZYNQMP                             policy<{'arm64': 'y'}>
+CONFIG_NVME_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_FABRICS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_FC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_MULTIPATH                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_NVME_RDMA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_FC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_FCLOOP                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_NVME_TARGET_LOOP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_RDMA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TARGET_TCP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NVME_TCP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_NV_TCO                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_NXP_TJA11XX_PHY                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_N_HDLC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_OABI_COMPAT                              policy<{'armhf': 'n'}>
+CONFIG_OBJAGG                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCFS2_DEBUG_FS                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_OCFS2_DEBUG_MASKLOG                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OCFS2_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCFS2_FS_O2CB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCFS2_FS_STATS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OCTEONTX2_AF                             policy<{'arm64': 'm'}>
+CONFIG_OCTEONTX2_MBOX                           policy<{'arm64': 'm'}>
+CONFIG_OCXL                                     policy<{'ppc64el': 'm'}>
+CONFIG_OCXL_BASE                                policy<{'ppc64el': 'y'}>
+CONFIG_OF                                       policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_OF_ADDRESS                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_DMA_DEFAULT_COHERENT                  policy<{'ppc64el': 'y'}>
+CONFIG_OF_DYNAMIC                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_EARLY_FLATTREE                        policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_FLATTREE                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_FPGA_REGION                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_OF_GPIO                                  policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_IOMMU                                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_IRQ                                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_KOBJ                                  policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_MDIO                                  policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_NET                                   policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_NUMA                                  policy<{'arm64': 'y'}>
+CONFIG_OF_OVERLAY                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_PMEM                                  policy<{'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm'}>
+CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT        policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+CONFIG_OF_RESERVED_MEM                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_RESOLVE                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_OF_UNITTEST                              policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+CONFIG_OID_REGISTRY                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OLD_SIGACTION                            policy<{'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_OLD_SIGSUSPEND                           policy<{'ppc64el': 'y'}>
+CONFIG_OLD_SIGSUSPEND3                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_OMAP2PLUS_MBOX                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OMAP2_VRFB                               policy<{'armhf-generic': 'y'}>
+CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE         policy<{'armhf-generic': 'n'}>
+CONFIG_OMAP3_SDRC_AC_TIMING                     policy<{'armhf-generic': 'n'}>
+CONFIG_OMAP3_THERMAL                            policy<{'armhf-generic': 'n'}>
+CONFIG_OMAP4_THERMAL                            policy<{'armhf-generic': 'y'}>
+CONFIG_OMAP5_ERRATA_801819                      policy<{'armhf': 'y'}>
+CONFIG_OMAP_32K_TIMER                           policy<{'armhf': 'y'}>
+CONFIG_OMAP_CONTROL_PHY                         policy<{'armhf': 'm'}>
+CONFIG_OMAP_DM_TIMER                            policy<{'armhf': 'y'}>
+CONFIG_OMAP_GPMC                                policy<{'armhf': 'y'}>
+CONFIG_OMAP_GPMC_DEBUG                          policy<{'armhf': 'n'}>
+CONFIG_OMAP_INTERCONNECT                        policy<{'armhf': 'y'}>
+CONFIG_OMAP_INTERCONNECT_BARRIER                policy<{'armhf': 'y'}>
+CONFIG_OMAP_IOMMU                               policy<{'armhf': 'y'}>
+CONFIG_OMAP_IOMMU_DEBUG                         policy<{'armhf': 'n'}>
+CONFIG_OMAP_IRQCHIP                             policy<{'armhf': 'y'}>
+CONFIG_OMAP_MBOX_KFIFO_SIZE                     policy<{'arm64': '256', 'armhf': '256'}>
+CONFIG_OMAP_OCP2SCP                             policy<{'armhf': 'm'}>
+CONFIG_OMAP_PACKAGE_CBB                         policy<{'armhf-generic': 'y'}>
+CONFIG_OMAP_REMOTEPROC                          policy<{'armhf-generic': 'm'}>
+CONFIG_OMAP_RESET_CLOCKS                        policy<{'armhf': 'y'}>
+CONFIG_OMAP_SSI                                 policy<{'armhf-generic': 'm'}>
+CONFIG_OMAP_USB2                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OMAP_WATCHDOG                            policy<{'armhf': 'm'}>
+CONFIG_OMFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_OPAL_CORE                                policy<{'ppc64el': 'n'}>
+CONFIG_OPAL_PRD                                 policy<{'ppc64el': 'm'}>
+CONFIG_OPENVSWITCH                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPENVSWITCH_GENEVE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPENVSWITCH_GRE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPENVSWITCH_VXLAN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPROFILE                                 policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OPROFILE_EVENT_MULTIPLEX                 policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_OPROFILE_NMI_TIMER                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_OPT3001                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_OPTEE                                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OPTEE_SHM_NUM_PRIV_PAGES                 policy<{'arm64': '1', 'armhf': '1'}>
+CONFIG_OPTIMIZE_INLINING                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OPTPROBES                                policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ORANGEFS_FS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ORINOCO_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ORION_IRQCHIP                            policy<{'armhf': 'y'}>
+CONFIG_ORION_TIMER                              policy<{'armhf': 'y'}>
+CONFIG_ORION_WATCHDOG                           policy<{'armhf': 'm'}>
+CONFIG_OSF_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_OUTER_CACHE                              policy<{'armhf': 'y'}>
+CONFIG_OUTER_CACHE_SYNC                         policy<{'armhf': 'y'}>
+CONFIG_OUTPUT_FORMAT                            policy<{'amd64': '"elf64-x86-64"', 'i386': '"elf32-i386"'}>
+CONFIG_OVERLAY_FS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_OVERLAY_FS_INDEX                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_OVERLAY_FS_METACOPY                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OVERLAY_FS_REDIRECT_DIR                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_OVERLAY_FS_XINO_AUTO                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OWL_DMA                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_OWL_PM_DOMAINS                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_OWL_PM_DOMAINS_HELPER                    policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_OWL_TIMER                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_P54_COMMON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_P54_LEDS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_P54_PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_P54_SPI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_P54_SPI_DEFAULT_EEPROM                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_P54_USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PA12203001                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PACKET                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PACKET_DIAG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PACKING                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PACK_STACK                               policy<{'s390x': 'y'}>
+CONFIG_PADATA                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_COUNTER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_EXTENSION                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PAGE_OFFSET                              policy<{'armhf': '0xC0000000', 'i386': '0xC0000000', 'ppc64el': '0xc000000000000000'}>
+CONFIG_PAGE_OWNER                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PAGE_POOL                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PAGE_TABLE_ISOLATION                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PALMAS_GPADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PANASONIC_LAPTOP                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PANEL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PANEL_CHANGE_MESSAGE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PANEL_PARPORT                            policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_PANEL_PROFILE                            policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'i386': '5', 'ppc64el': '5'}>
+CONFIG_PANIC_ON_OOPS_VALUE                      policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_PANIC_TIMEOUT                            policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '10', 's390x': '0'}>
+CONFIG_PANTHERLORD_FF                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PAPR_SCM                                 policy<{'ppc64el': 'm'}>
+CONFIG_PARAVIRT                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y'}>
+CONFIG_PARAVIRT_CLOCK                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PARAVIRT_DEBUG                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_PARAVIRT_SPINLOCKS                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PARAVIRT_TIME_ACCOUNTING                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_PARAVIRT_XXL                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PARIDE                                   policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_ATEN                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_BPCK                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_BPCK6                             policy<{'armhf': 'm', 'i386': 'm'}>
+CONFIG_PARIDE_COMM                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_DSTR                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_EPAT                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_EPATC8                            policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PARIDE_EPIA                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FIT2                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FIT3                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FRIQ                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_FRPW                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_KBIC                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_KTTI                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_ON20                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_ON26                              policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PCD                               policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PD                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PF                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PG                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARIDE_PT                                policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARMAN                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PARPORT                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PARPORT_1284                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PARPORT_AX88796                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARPORT_NOT_PC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PARPORT_PANEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARPORT_PC                               policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARPORT_PC_FIFO                          policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PARPORT_PC_PCMCIA                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PARPORT_PC_SUPERIO                       policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PARPORT_SERIAL                           policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PARTITION_ADVANCED                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PARTITION_PERCPU                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PATA_ACPI                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_PATA_ALI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_AMD                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_ARTOP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_ATIIXP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_ATP867X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_CMD640_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_CMD64X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_CS5520                              policy<{'i386': 'm'}>
+CONFIG_PATA_CS5530                              policy<{'i386': 'm'}>
+CONFIG_PATA_CS5535                              policy<{'i386': 'm'}>
+CONFIG_PATA_CS5536                              policy<{'i386': 'm'}>
+CONFIG_PATA_CYPRESS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_EFAR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_HPT366                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_HPT37X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_HPT3X2N                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_HPT3X3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_IMX                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PATA_ISAPNP                              policy<{'i386': 'm'}>
+CONFIG_PATA_IT8213                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_IT821X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_JMICRON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_LEGACY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_MARVELL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_MPIIX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_NETCELL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_NINJA32                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_NS87410                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_NS87415                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_OF_PLATFORM                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_OLDPIIX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_OPTI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_OPTIDMA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_PCMCIA                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PATA_PDC2027X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_PDC_OLD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_PLATFORM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_QDI                                 policy<{'i386': 'm'}>
+CONFIG_PATA_RADISYS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_RDC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_RZ1000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_SC1200                              policy<{'i386': 'm'}>
+CONFIG_PATA_SCH                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_SERVERWORKS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_SIL680                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_SIS                                 policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_PATA_TOSHIBA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_TRIFLEX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_VIA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_WINBOND                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PATA_WINBOND_VLB                         policy<{'i386': 'm'}>
+CONFIG_PC104                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PC300TOO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PC8736x_GPIO                             policy<{'i386': 'm'}>
+CONFIG_PC87413_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCC                                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_PCCARD                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'n', 'i386': 'm', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PCCARD_NONSTATIC                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCENGINES_APU2                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCF50633_ADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PCF50633_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PCH_CAN                                  policy<{'i386': 'm'}>
+CONFIG_PCH_DMA                                  policy<{'i386': 'm'}>
+CONFIG_PCH_GBE                                  policy<{'i386': 'm'}>
+CONFIG_PCH_PHUB                                 policy<{'i386': 'm'}>
+CONFIG_PCI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI200SYN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PCIEAER                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIEAER_INJECT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIEASPM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIEASPM_PERFORMANCE                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIEASPM_POWERSAVE                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIEASPM_POWER_SUPERSAVE                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIE_AL                                  policy<{'arm64': 'y'}>
+CONFIG_PCIE_ALTERA                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ALTERA_MSI                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ARMADA_8K                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_BW                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIE_CADENCE                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCIE_CADENCE_EP                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCIE_CADENCE_HOST                        policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCIE_DPC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIE_DW                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_DW_EP                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_DW_HOST                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_DW_PLAT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_DW_PLAT_EP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_DW_PLAT_HOST                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_ECRC                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 's390x': 'n'}>
+CONFIG_PCIE_HISI_STB                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_IPROC                               policy<{'arm64': 'm'}>
+CONFIG_PCIE_IPROC_MSI                           policy<{'arm64': 'y'}>
+CONFIG_PCIE_IPROC_PLATFORM                      policy<{'arm64': 'm'}>
+CONFIG_PCIE_KIRIN                               policy<{'arm64': 'y'}>
+CONFIG_PCIE_MEDIATEK                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_MOBIVEIL                            policy<{'arm64': 'y'}>
+CONFIG_PCIE_PME                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCIE_PTM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_PCIE_QCOM                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_RCAR                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ROCKCHIP                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ROCKCHIP_EP                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCIE_ROCKCHIP_HOST                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PCIE_UNIPHIER                            policy<{'armhf': 'y'}>
+CONFIG_PCIE_XILINX                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCIE_XILINX_NWL                          policy<{'arm64': 'y'}>
+CONFIG_PCIPCWATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PCI_AARDVARK                             policy<{'arm64': 'y'}>
+CONFIG_PCI_ATMEL                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PCI_ATS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_BIOS                                 policy<{'i386': 'y'}>
+CONFIG_PCI_BRIDGE_EMUL                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_CNB20LE_QUIRK                        policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_PCI_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PCI_DIRECT                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCI_DOMAINS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_DOMAINS_GENERIC                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_DRA7XX                               policy<{'armhf': 'y'}>
+CONFIG_PCI_DRA7XX_EP                            policy<{'armhf': 'y'}>
+CONFIG_PCI_DRA7XX_HOST                          policy<{'armhf': 'y'}>
+CONFIG_PCI_ECAM                                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCI_ENDPOINT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_ENDPOINT_CONFIGFS                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_ENDPOINT_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PCI_EPF_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PCI_FTPCI100                             policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCI_GOANY                                policy<{'i386': 'y'}>
+CONFIG_PCI_GOBIOS                               policy<{'i386': 'n'}>
+CONFIG_PCI_GODIRECT                             policy<{'i386': 'n'}>
+CONFIG_PCI_GOMMCONFIG                           policy<{'i386': 'n'}>
+CONFIG_PCI_HISI                                 policy<{'arm64': 'y'}>
+CONFIG_PCI_HOST_COMMON                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCI_HOST_GENERIC                         policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCI_HOST_THUNDER_ECAM                    policy<{'arm64': 'y'}>
+CONFIG_PCI_HOST_THUNDER_PEM                     policy<{'arm64': 'y'}>
+CONFIG_PCI_HYPERV                               policy<{'amd64': 'm'}>
+CONFIG_PCI_HYPERV_INTERFACE                     policy<{'amd64': 'm'}>
+CONFIG_PCI_IMX6                                 policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_PCI_IOV                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_KEYSTONE                             policy<{'arm64': 'y'}>
+CONFIG_PCI_KEYSTONE_EP                          policy<{'arm64': 'y'}>
+CONFIG_PCI_KEYSTONE_HOST                        policy<{'arm64': 'y'}>
+CONFIG_PCI_LABEL                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCI_LAYERSCAPE                           policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_PCI_LAYERSCAPE_EP                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PCI_LOCKLESS_CONFIG                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCI_MESON                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n'}>
+CONFIG_PCI_MMCONFIG                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCI_MSI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_MSI_IRQ_DOMAIN                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PCI_MVEBU                                policy<{'armhf': 'y'}>
+CONFIG_PCI_P2PDMA                               policy<{'amd64': 'n', 'ppc64el': 'n'}>
+CONFIG_PCI_PASID                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCI_PF_STUB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PCI_PRI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCI_QUIRKS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PCI_RCAR_GEN2                            policy<{'armhf': 'y'}>
+CONFIG_PCI_REALLOC_ENABLE_AUTO                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PCI_STUB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PCI_SW_SWITCHTEC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PCI_SYSCALL                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PCI_TEGRA                                policy<{'armhf-generic': 'y'}>
+CONFIG_PCI_V3_SEMI                              policy<{'armhf': 'y'}>
+CONFIG_PCI_XEN                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCI_XGENE                                policy<{'arm64': 'y'}>
+CONFIG_PCI_XGENE_MSI                            policy<{'arm64': 'y'}>
+CONFIG_PCMCIA                                   policy<{'amd64': 'm', 'arm64': 'n', 'i386': 'm'}>
+CONFIG_PCMCIA_3C574                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_3C589                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_AHA152X                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_ATMEL                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_AXNET                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_FDOMAIN                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_FMVJ18X                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_HERMES                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_LOAD_CIS                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PCMCIA_NINJA_SCSI                        policy<{'i386': 'm'}>
+CONFIG_PCMCIA_NMCLAN                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_PCNET                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_PROBE                             policy<{'i386': 'y'}>
+CONFIG_PCMCIA_QLOGIC                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_RAYCS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_SMC91C92                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_SPECTRUM                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_SYM53C500                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_WL3501                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_XIRC2PS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PCMCIA_XIRCOM                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_PCNET32                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PCSPKR_PLATFORM                          policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PCWATCHDOG                               policy<{'i386': 'm'}>
+CONFIG_PD6729                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PDA_POWER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PDC_ADMA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PEAQ_WMI                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PERCPU_STATS                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PERCPU_TEST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PERF_EVENTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PERF_EVENTS_AMD_POWER                    policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_PERF_EVENTS_INTEL_CSTATE                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PERF_EVENTS_INTEL_RAPL                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PERF_EVENTS_INTEL_UNCORE                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PERF_USE_VMALLOC                         policy<{'armhf': 'y'}>
+CONFIG_PERSISTENT_KEYRINGS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PFAULT                                   policy<{'s390x': 'y'}>
+CONFIG_PGSTE                                    policy<{'s390x': 'y'}>
+CONFIG_PGTABLE_LEVELS                           policy<{'amd64': '4', 'arm64': '4', 'armhf-generic': '2', 'armhf-generic-lpae': '3', 'i386': '3', 'ppc64el': '4', 's390x': '5'}>
+CONFIG_PHANTOM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHONET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHYLIB                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_PHYLINK                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PHYSICAL_ALIGN                           policy<{'amd64': '0x200000', 'i386': '0x1000000'}>
+CONFIG_PHYSICAL_START                           policy<{'amd64': '0x1000000', 'i386': '0x1000000', 'ppc64el': '0x00000000'}>
+CONFIG_PHYS_ADDR_T_64BIT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PHY_AM654_SERDES                         policy<{'arm64': 'm'}>
+CONFIG_PHY_BCM_NS_USB2                          policy<{'arm64': 'm'}>
+CONFIG_PHY_BCM_NS_USB3                          policy<{'arm64': 'm'}>
+CONFIG_PHY_BCM_SR_PCIE                          policy<{'arm64': 'm'}>
+CONFIG_PHY_BCM_SR_USB                           policy<{'arm64': 'm'}>
+CONFIG_PHY_BERLIN_SATA                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_BERLIN_USB                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_BRCM_SATA                            policy<{'arm64': 'y'}>
+CONFIG_PHY_BRCM_USB                             policy<{'arm64': 'm'}>
+CONFIG_PHY_CADENCE_DP                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_CADENCE_DPHY                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_CADENCE_SIERRA                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_CPCAP_USB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_DM816X_USB                           policy<{'armhf': 'm'}>
+CONFIG_PHY_EXYNOS5250_SATA                      policy<{'armhf': 'y'}>
+CONFIG_PHY_EXYNOS5250_USB2                      policy<{'armhf': 'y'}>
+CONFIG_PHY_EXYNOS5_USBDRD                       policy<{'armhf': 'm'}>
+CONFIG_PHY_EXYNOS_DP_VIDEO                      policy<{'armhf': 'y'}>
+CONFIG_PHY_EXYNOS_MIPI_VIDEO                    policy<{'armhf': 'y'}>
+CONFIG_PHY_EXYNOS_PCIE                          policy<{'armhf': 'y'}>
+CONFIG_PHY_FSL_IMX8MQ_USB                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_HI3660_USB                           policy<{'arm64': 'm'}>
+CONFIG_PHY_HI6220_USB                           policy<{'arm64': 'm'}>
+CONFIG_PHY_HISI_INNO_USB2                       policy<{'arm64': 'm'}>
+CONFIG_PHY_HISTB_COMBPHY                        policy<{'arm64': 'm'}>
+CONFIG_PHY_HIX5HD2_SATA                         policy<{'armhf': 'm'}>
+CONFIG_PHY_MAPPHONE_MDM6600                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_MESON8B_USB2                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_G12A_USB2                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_G12A_USB3_PCIE                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_GXL_USB2                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MESON_GXL_USB3                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MIXEL_MIPI_DPHY                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_MTK_TPHY                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MTK_UFS                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MTK_XSPHY                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_A3700_COMPHY                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_A3700_UTMI                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_A38X_COMPHY                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_CP110_COMPHY                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_MVEBU_SATA                           policy<{'armhf': 'y'}>
+CONFIG_PHY_NS2_PCIE                             policy<{'arm64': 'y'}>
+CONFIG_PHY_NS2_USB_DRD                          policy<{'arm64': 'm'}>
+CONFIG_PHY_OCELOT_SERDES                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_PXA_28NM_HSIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHY_PXA_28NM_USB2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PHY_QCOM_APQ8064_SATA                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_IPQ806X_SATA                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_PCIE2                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_QMP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_QUSB2                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_UFS                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_UFS_14NM                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_QCOM_USB_HS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_QCOM_USB_HSIC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_RCAR_GEN2                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_RCAR_GEN3_PCIE                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_RCAR_GEN3_USB2                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_RCAR_GEN3_USB3                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_DP                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_EMMC                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_INNO_HDMI                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_INNO_USB2                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_PCIE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_TYPEC                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_ROCKCHIP_USB                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PHY_SAMSUNG_USB2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_SUN4I_USB                            policy<{'arm64': 'm'}>
+CONFIG_PHY_SUN6I_MIPI_DPHY                      policy<{'arm64': 'm'}>
+CONFIG_PHY_SUN9I_USB                            policy<{'arm64': 'n'}>
+CONFIG_PHY_TEGRA_XUSB                           policy<{'armhf-generic': 'm'}>
+CONFIG_PHY_TI_GMII_SEL                          policy<{'armhf': 'y'}>
+CONFIG_PHY_TUSB1210                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PHY_UNIPHIER_PCIE                        policy<{'armhf': 'm'}>
+CONFIG_PHY_UNIPHIER_USB2                        policy<{'armhf': 'm'}>
+CONFIG_PHY_UNIPHIER_USB3                        policy<{'armhf': 'm'}>
+CONFIG_PHY_XGENE                                policy<{'arm64': 'y'}>
+CONFIG_PI433                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PID_IN_CONTEXTIDR                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_PID_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PINCONF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PINCTRL_AMD                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_APQ8064                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_APQ8084                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_ARMADA_370                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_ARMADA_375                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_ARMADA_37XX                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_ARMADA_38X                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_ARMADA_39X                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_ARMADA_AP806                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_ARMADA_CP110                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_ARMADA_XP                        policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_AS370                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_AS3722                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_ASPEED                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_ASPEED_G6                        policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_AXP209                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_BAYTRAIL                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PINCTRL_BCM2835                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_BERLIN                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_BERLIN_BG2                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_BERLIN_BG2CD                     policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_BERLIN_BG2Q                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_BERLIN_BG4CT                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_BM1880                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_BROXTON                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_CANNONLAKE                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_CEDARFORK                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_CS47L15                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_CS47L35                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_CS47L85                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_CS47L90                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_CS47L92                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_DENVERTON                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_DOVE                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_EXYNOS                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_EXYNOS_ARM                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_GEMINILAKE                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_ICELAKE                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_IMX                              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX50                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX51                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6Q                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6SL                           policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6SLL                          policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6SX                           policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX6UL                           policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX7D                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX7ULP                          policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_IMX8MM                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8MN                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8MQ                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8QM                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX8QXP                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_IMX_SCU                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_INTEL                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_IPQ4019                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_IPQ8064                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_IPQ8074                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_IPROC_GPIO                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_LEWISBURG                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_LOCHNAGAR                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_MADERA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_MAX77620                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_MCP23S08                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_MDM9615                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MERRIFIELD                       policy<{'i386': 'n'}>
+CONFIG_PINCTRL_MESON                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MESON8                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MESON8B                          policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MESON8_PMX                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MESON_AXG                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_AXG_PMX                    policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_G12A                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_GXBB                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MESON_GXL                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MSM                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MSM8660                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8916                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8960                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8994                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8996                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8998                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MSM8X74                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_MT2701                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT2712                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT6397                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MT6765                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT6797                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT7622                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT7623                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT7629                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT8127                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT8135                           policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_MT8173                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT8183                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MT8516                           policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MTK                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MTK_MOORE                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_MTK_PARIS                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_MVEBU                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_NPCM7XX                          policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_NS2_MUX                          policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_OCELOT                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_OWL                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_PALMAS                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_PFC_EMEV2                        policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7740                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7743                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7744                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7745                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77470                     policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A774A1                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A774C0                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7778                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7779                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7790                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7791                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7792                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7793                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7794                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7795                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A7796                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77965                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77970                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77980                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77990                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_R8A77995                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_PFC_SH73A0                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_QCOM_SPMI_PMIC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_QCOM_SSBI_PMIC                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_QCS404                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_QDF2XXX                          policy<{'arm64': 'm'}>
+CONFIG_PINCTRL_RK805                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_ROCKCHIP                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_RZA1                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_RZA2                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_RZN1                             policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_S700                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_S900                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_SAMSUNG                          policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_SC7180                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SDM660                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SDM845                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SH_PFC                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PINCTRL_SH_PFC_GPIO                      policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_SINGLE                           policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_SM8150                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PINCTRL_SPRD                             policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SPRD_SC9860                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_STMFX                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PINCTRL_SUN4I_A10                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_A64                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_A64_R                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_H5                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_H6                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN50I_H6_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN5I                            policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN6I_A31                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN6I_A31_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A23                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A23_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A33                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A83T                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_A83T_R                     policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_H3                         policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_H3_R                       policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN8I_V3S                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN9I_A80                        policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUN9I_A80_R                      policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SUNRISEPOINT                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PINCTRL_SUNXI                            policy<{'arm64': 'y'}>
+CONFIG_PINCTRL_SX150X                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PINCTRL_TEGRA                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_TEGRA114                         policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_TEGRA124                         policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_TEGRA20                          policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_TEGRA30                          policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_TEGRA_XUSB                       policy<{'armhf-generic': 'y'}>
+CONFIG_PINCTRL_TI_IODELAY                       policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER                         policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD11                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD20                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD4                     policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_LD6B                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PRO4                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PRO5                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PXS2                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_PXS3                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_UNIPHIER_SLD8                    policy<{'armhf': 'y'}>
+CONFIG_PINCTRL_VF610                            policy<{'armhf-generic': 'y'}>
+CONFIG_PINMUX                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PJ4B_ERRATA_4742                         policy<{'armhf': 'y'}>
+CONFIG_PKCS7_MESSAGE_PARSER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PKCS7_TEST_KEY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PKCS8_PRIVATE_KEY_PARSER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PKEY                                     policy<{'s390x': 'm'}>
+CONFIG_PL310_ERRATA_588369                      policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_727915                      policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_753970                      policy<{'armhf': 'y'}>
+CONFIG_PL310_ERRATA_769419                      policy<{'armhf': 'y'}>
+CONFIG_PL320_MBOX                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_PL330_DMA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PL353_SMC                                policy<{'armhf': 'm'}>
+CONFIG_PLATFORM_MHU                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PLATFORM_SI4713                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PLAT_ORION                               policy<{'armhf': 'y'}>
+CONFIG_PLAT_SAMSUNG                             policy<{'armhf': 'y'}>
+CONFIG_PLAT_SPEAR                               policy<{'armhf': 'n'}>
+CONFIG_PLAT_VERSATILE                           policy<{'armhf': 'y'}>
+CONFIG_PLIP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PLUGIN_HOSTCC                            policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_PLX_HERMES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PM8916_WATCHDOG                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PMBUS                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PMC_ATOM                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PMIC_ADP5520                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PMIC_DA903X                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PMIC_DA9052                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PMIC_OPREGION                            policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_PMS7003                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PM_ADVANCED_DEBUG                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_AUTOSLEEP                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PM_CLK                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_PM_DEBUG                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_DEVFREQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PM_DEVFREQ_EVENT                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_GENERIC_DOMAINS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_GENERIC_DOMAINS_OF                    policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_GENERIC_DOMAINS_SLEEP                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_NOTIFIER_ERROR_INJECT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PM_OPP                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_SLEEP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_SLEEP_DEBUG                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_SLEEP_SMP                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_SLEEP_SMP_NONZERO_CPU                 policy<{'ppc64el': 'y'}>
+CONFIG_PM_STD_PARTITION                         policy<{'amd64': '""', 'armhf': '""', 'i386': '""'}>
+CONFIG_PM_TEST_SUSPEND                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PM_TRACE                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PM_TRACE_RTC                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PM_WAKELOCKS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_WAKELOCKS_GC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PM_WAKELOCKS_LIMIT                       policy<{'amd64': '100', 'arm64': '100', 'armhf': '100', 'i386': '100', 'ppc64el': '100'}>
+CONFIG_PNFS_BLOCK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PNFS_FILE_LAYOUT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PNFS_FLEXFILE_LAYOUT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PNP                                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_PNPACPI                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_PNPBIOS                                  policy<{'i386': 'y'}>
+CONFIG_PNPBIOS_PROC_FS                          policy<{'i386': 'y'}>
+CONFIG_PNP_DEBUG_MESSAGES                       policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_POSIX_MQUEUE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POSIX_MQUEUE_SYSCTL                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POSIX_TIMERS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POWER7_CPU                               policy<{'ppc64el': 'n'}>
+CONFIG_POWER8_CPU                               policy<{'ppc64el': 'n'}>
+CONFIG_POWER9_CPU                               policy<{'ppc64el': 'n'}>
+CONFIG_POWERCAP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_POWERNV_CPUFREQ                          policy<{'ppc64el': 'y'}>
+CONFIG_POWERNV_CPUIDLE                          policy<{'ppc64el': 'y'}>
+CONFIG_POWERNV_OP_PANEL                         policy<{'ppc64el': 'm'}>
+CONFIG_POWER_AVS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_POWER_AVS_OMAP                           policy<{'armhf-generic': 'y'}>
+CONFIG_POWER_AVS_OMAP_CLASS3                    policy<{'armhf-generic': 'y'}>
+CONFIG_POWER_RESET                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POWER_RESET_AS3722                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_POWER_RESET_AXXIA                        policy<{'armhf-generic-lpae': 'y'}>
+CONFIG_POWER_RESET_BRCMKONA                     policy<{'armhf': 'y'}>
+CONFIG_POWER_RESET_BRCMSTB                      policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_POWER_RESET_GPIO                         policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_POWER_RESET_GPIO_RESTART                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_POWER_RESET_HISI                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_POWER_RESET_LTC2952                      policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_POWER_RESET_MSM                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_POWER_RESET_QCOM_PON                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_POWER_RESET_QNAP                         policy<{'armhf': 'n'}>
+CONFIG_POWER_RESET_RESTART                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_POWER_RESET_RMOBILE                      policy<{'armhf': 'm'}>
+CONFIG_POWER_RESET_SC27XX                       policy<{'arm64': 'y'}>
+CONFIG_POWER_RESET_SYSCON                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_POWER_RESET_SYSCON_POWEROFF              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_POWER_RESET_VERSATILE                    policy<{'armhf': 'y'}>
+CONFIG_POWER_RESET_VEXPRESS                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_POWER_RESET_XGENE                        policy<{'arm64': 'n'}>
+CONFIG_POWER_SUPPLY                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_POWER_SUPPLY_DEBUG                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_POWER_SUPPLY_HWMON                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PPC                                      policy<{'ppc64el': 'y'}>
+CONFIG_PPC64                                    policy<{'ppc64el': 'y'}>
+CONFIG_PPC64_BOOT_WRAPPER                       policy<{'ppc64el': 'y'}>
+CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_4K_PAGES                             policy<{'ppc64el': 'n'}>
+CONFIG_PPC_64K_PAGES                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_BARRIER_NOSPEC                       policy<{'ppc64el': 'y'}>
+CONFIG_PPC_BOOK3E_64                            policy<{'ppc64el': 'n'}>
+CONFIG_PPC_BOOK3S                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_BOOK3S_64                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_COPRO_BASE                           policy<{'ppc64el': 'y'}>
+CONFIG_PPC_DAWR                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_DENORMALISATION                      policy<{'ppc64el': 'y'}>
+CONFIG_PPC_DISABLE_WERROR                       policy<{'ppc64el': 'n'}>
+CONFIG_PPC_DOORBELL                             policy<{'ppc64el': 'y'}>
+CONFIG_PPC_DT_CPU_FTRS                          policy<{'ppc64el': 'y'}>
+CONFIG_PPC_EARLY_DEBUG                          policy<{'ppc64el': 'n'}>
+CONFIG_PPC_EMULATED_STATS                       policy<{'ppc64el': 'n'}>
+CONFIG_PPC_EPAPR_HV_BYTECHAN                    policy<{'ppc64el': 'n'}>
+CONFIG_PPC_FAST_ENDIAN_SWITCH                   policy<{'ppc64el': 'n'}>
+CONFIG_PPC_FPU                                  policy<{'ppc64el': 'y'}>
+CONFIG_PPC_HAVE_KUAP                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_HAVE_KUEP                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_HAVE_PMU_SUPPORT                     policy<{'ppc64el': 'y'}>
+CONFIG_PPC_I8259                                policy<{'ppc64el': 'y'}>
+CONFIG_PPC_ICP_HV                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_ICP_NATIVE                           policy<{'ppc64el': 'y'}>
+CONFIG_PPC_ICS_RTAS                             policy<{'ppc64el': 'y'}>
+CONFIG_PPC_INDIRECT_PIO                         policy<{'ppc64el': 'y'}>
+CONFIG_PPC_IRQ_SOFT_MASK_DEBUG                  policy<{'ppc64el': 'n'}>
+CONFIG_PPC_KUAP                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_KUAP_DEBUG                           policy<{'ppc64el': 'n'}>
+CONFIG_PPC_KUEP                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_MEMTRACE                             policy<{'ppc64el': 'y'}>
+CONFIG_PPC_MM_SLICES                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_MSI_BITMAP                           policy<{'ppc64el': 'y'}>
+CONFIG_PPC_NATIVE                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_OF_BOOT_TRAMPOLINE                   policy<{'ppc64el': 'y'}>
+CONFIG_PPC_P7_NAP                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_PAGE_SHIFT                           policy<{'ppc64el': '16'}>
+CONFIG_PPC_PERF_CTRS                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_POWERNV                              policy<{'ppc64el': 'y'}>
+CONFIG_PPC_PSERIES                              policy<{'ppc64el': 'y'}>
+CONFIG_PPC_PTDUMP                               policy<{'ppc64el': 'n'}>
+CONFIG_PPC_RADIX_MMU                            policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RADIX_MMU_DEFAULT                    policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RTAS                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_RTAS_DAEMON                          policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SMLPAR                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SMP_MUXED_IPI                        policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SPLPAR                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SUBPAGE_PROT                         policy<{'ppc64el': 'y'}>
+CONFIG_PPC_SVM                                  policy<{'ppc64el': 'y'}>
+CONFIG_PPC_TRANSACTIONAL_MEM                    policy<{'ppc64el': 'y'}>
+CONFIG_PPC_UDBG_16550                           policy<{'ppc64el': 'y'}>
+CONFIG_PPC_VAS                                  policy<{'ppc64el': 'y'}>
+CONFIG_PPC_WATCHDOG                             policy<{'ppc64el': 'y'}>
+CONFIG_PPC_WERROR                               policy<{'ppc64el': 'y'}>
+CONFIG_PPC_XICS                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_XIVE                                 policy<{'ppc64el': 'y'}>
+CONFIG_PPC_XIVE_NATIVE                          policy<{'ppc64el': 'y'}>
+CONFIG_PPC_XIVE_SPAPR                           policy<{'ppc64el': 'y'}>
+CONFIG_PPDEV                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPP                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PPPOATM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPPOE                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPPOL2TP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPP_ASYNC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPP_BSDCOMP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPP_DEFLATE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPP_FILTER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PPP_MPPE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPP_MULTILINK                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PPP_SYNC_TTY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_PPS_CLIENT_GPIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PPS_CLIENT_KTIMER                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PPS_CLIENT_LDISC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_PPS_CLIENT_PARPORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PPS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PPTP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PREEMPT                                  policy<{'amd64-generic': 'n', 'amd64-lowlatency': 'y', 'arm64': 'n', 'armhf': 'n', 'i386-generic': 'n', 'i386-lowlatency': 'y', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PREEMPTION                               policy<{'amd64-lowlatency': 'y', 'i386-lowlatency': 'y'}>
+CONFIG_PREEMPTIRQ_DELAY_TEST                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PREEMPTIRQ_EVENTS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PREEMPT_COUNT                            policy<{'amd64-lowlatency': 'y', 'i386-lowlatency': 'y'}>
+CONFIG_PREEMPT_NOTIFIERS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PREEMPT_RCU                              policy<{'amd64-lowlatency': 'y', 'i386-lowlatency': 'y'}>
+CONFIG_PREEMPT_TRACER                           policy<{'amd64-lowlatency': 'n', 'i386-lowlatency': 'n'}>
+CONFIG_PREEMPT_VOLUNTARY                        policy<{'amd64-generic': 'y', 'amd64-lowlatency': 'n', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'i386-lowlatency': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PREVENT_FIRMWARE_BUILD                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINTER                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PRINTK                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINTK_CALLER                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PRINTK_NMI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT                policy<{'amd64': '13', 'arm64': '13', 'armhf': '13', 'i386': '13', 'ppc64el': '13', 's390x': '13'}>
+CONFIG_PRINTK_TIME                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PRINT_QUOTA_WARNING                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PRINT_STACK_DEPTH                        policy<{'ppc64el': '64'}>
+CONFIG_PRISM2_USB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PRISM54                                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PROBE_EVENTS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROCESSOR_SELECT                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PROC_CHILDREN                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_EVENTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_FS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_KCORE                               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_PAGE_MONITOR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_PID_ARCH_STATUS                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PROC_PID_CPUSET                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_SYSCTL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_THERMAL_MMIO_RAPL                   policy<{'amd64': 'y'}>
+CONFIG_PROC_VMCORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROC_VMCORE_DEVICE_DUMP                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROFILE_ANNOTATED_BRANCHES               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PROFILING                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PROTECTED_VIRTUALIZATION_GUEST           policy<{'s390x': 'y'}>
+CONFIG_PROVE_LOCKING                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_PROVIDE_OHCI1394_DMA_INIT                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_PSAMPLE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_PSERIES_CPUIDLE                          policy<{'ppc64el': 'y'}>
+CONFIG_PSERIES_ENERGY                           policy<{'ppc64el': 'm'}>
+CONFIG_PSI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_PSTORE                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PSTORE_842_COMPRESS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_COMPRESS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PSTORE_COMPRESS_DEFAULT                  policy<{'amd64': '"deflate"', 'arm64': '"deflate"', 'armhf': '"deflate"', 'i386': '"deflate"', 'ppc64el': '"deflate"'}>
+CONFIG_PSTORE_CONSOLE                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_DEFLATE_COMPRESS                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PSTORE_FTRACE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_LZ4HC_COMPRESS                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_LZ4_COMPRESS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_LZO_COMPRESS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_PMSG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PSTORE_RAM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PSTORE_ZSTD_COMPRESS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_PTP_1588_CLOCK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_PTP_1588_CLOCK_DTE                       policy<{'arm64': 'm'}>
+CONFIG_PTP_1588_CLOCK_KVM                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PTP_1588_CLOCK_PCH                       policy<{'i386': 'm'}>
+CONFIG_PTP_1588_CLOCK_QORIQ                     policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PUNIT_ATOM_DEBUG                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_PVH                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PVPANIC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PWM                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_PWM_ATMEL_HLCDC_PWM                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_PWM_BCM_IPROC                            policy<{'arm64': 'm'}>
+CONFIG_PWM_BERLIN                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_BRCMSTB                              policy<{'arm64': 'm'}>
+CONFIG_PWM_CRC                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_CROS_EC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_PWM_FSL_FTM                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PWM_HIBVT                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_IMX1                                 policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PWM_IMX27                                policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PWM_IMX_TPM                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_PWM_LP3943                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PWM_LPSS                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_LPSS_PCI                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_LPSS_PLATFORM                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_PWM_MEDIATEK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_MESON                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_MTK_DISP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_OMAP_DMTIMER                         policy<{'armhf': 'm'}>
+CONFIG_PWM_PCA9685                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PWM_RCAR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_RENESAS_TPU                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_ROCKCHIP                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_PWM_SAMSUNG                              policy<{'armhf': 'm'}>
+CONFIG_PWM_SPRD                                 policy<{'arm64': 'm'}>
+CONFIG_PWM_STMPE                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_PWM_SUN4I                                policy<{'arm64': 'm'}>
+CONFIG_PWM_SYSFS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_PWM_TEGRA                                policy<{'armhf-generic': 'm'}>
+CONFIG_PWM_TIECAP                               policy<{'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': 'n'}>
+CONFIG_PWM_TIEHRPWM                             policy<{'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': 'n'}>
+CONFIG_PWM_TIPWMSS                              policy<{'armhf-generic': 'y'}>
+CONFIG_PWM_TWL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PWM_TWL_LED                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_PWRSEQ_EMMC                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PWRSEQ_SD8787                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PWRSEQ_SIMPLE                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_PXA168_ETH                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCA7000                                  policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_QCA7000_SPI                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_QCA7000_UART                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_A53PLL                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_AOSS_QMP                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_APCS_IPC                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_APR                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_BAM_DMA                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_APCS_MSM8916                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_RPM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_CLK_RPMH                            policy<{'arm64': 'm'}>
+CONFIG_QCOM_CLK_SMD_RPM                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_COINCELL                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_COMMAND_DB                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_EBI2                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_EMAC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_FALKOR_ERRATUM_1003                 policy<{'arm64': 'y'}>
+CONFIG_QCOM_FALKOR_ERRATUM_1009                 policy<{'arm64': 'y'}>
+CONFIG_QCOM_FALKOR_ERRATUM_E1041                policy<{'arm64': 'y'}>
+CONFIG_QCOM_FASTRPC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_GDSC                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_GENI_SE                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_GLINK_SSR                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_GSBI                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_HFPLL                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_HIDMA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_HIDMA_MGMT                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_IOMMU                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_IRQ_COMBINER                        policy<{'arm64': 'y'}>
+CONFIG_QCOM_L2_PMU                              policy<{'arm64': 'y'}>
+CONFIG_QCOM_L3_PMU                              policy<{'arm64': 'y'}>
+CONFIG_QCOM_LLCC                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_MDT_LOADER                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_PDC                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_PM                                  policy<{'armhf': 'y'}>
+CONFIG_QCOM_PM8XXX_XOADC                        policy<{'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_ADSP                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_COMMON                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_MSS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_PAS                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_Q6V5_WCSS                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_QFPROM                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_QMI_HELPERS                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_RMTFS_MEM                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_RPMCC                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_RPMH                                policy<{'arm64': 'y'}>
+CONFIG_QCOM_RPMHPD                              policy<{'arm64': 'y'}>
+CONFIG_QCOM_RPROC_COMMON                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SCM                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_SCM_32                              policy<{'armhf': 'y'}>
+CONFIG_QCOM_SCM_64                              policy<{'arm64': 'y'}>
+CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QCOM_SDM845_LLCC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SMD_RPM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SMEM                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SMEM_STATE                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_QCOM_SMP2P                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SMSM                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SOCINFO                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SPMI_ADC5                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_SPMI_IADC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_SPMI_TEMP_ALARM                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_SPMI_VADC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_SYSMON                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_TSENS                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_VADC_COMMON                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QCOM_WCNSS_CTRL                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCOM_WCNSS_PIL                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_QCOM_WDT                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCS_GCC_404                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QCS_TURING_404                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QDIO                                     policy<{'s390x': 'm'}>
+CONFIG_QED                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QEDE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QEDF                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QEDI                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QED_FCOE                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QED_ISCSI                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QED_LL2                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QED_OOO                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QED_RDMA                                 policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_QED_SRIOV                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QETH                                     policy<{'s390x': 'm'}>
+CONFIG_QETH_L2                                  policy<{'s390x': 'm'}>
+CONFIG_QETH_L3                                  policy<{'s390x': 'm'}>
+CONFIG_QFMT_V1                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_QFMT_V2                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_QLA3XXX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QLCNIC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QLCNIC_DCB                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QLCNIC_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QLCNIC_SRIOV                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_QLGE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QNX4FS_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QNX6FS_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_QNX6FS_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_QORIQ_CPUFREQ                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QORIQ_THERMAL                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_QRTR                                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QRTR_SMD                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QRTR_TUN                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_QSEMI_PHY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_QTNFMAC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QTNFMAC_PCIE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_QUEUED_RWLOCKS                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_QUEUED_SPINLOCKS                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_QUOTA                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_QUOTACTL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_QUOTACTL_COMPAT                          policy<{'amd64': 'y'}>
+CONFIG_QUOTA_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_QUOTA_NETLINK_INTERFACE                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_QUOTA_TREE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_R6040                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_R8169                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_R8188EU                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_R8712U                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_ADAPTERS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RADIO_AZTECH                             policy<{'i386': 'm'}>
+CONFIG_RADIO_CADET                              policy<{'i386': 'm'}>
+CONFIG_RADIO_GEMTEK                             policy<{'i386': 'm'}>
+CONFIG_RADIO_ISA                                policy<{'i386': 'm'}>
+CONFIG_RADIO_MAXIRADIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_MIROPCM20                          policy<{'i386': 'm'}>
+CONFIG_RADIO_RTRACK                             policy<{'i386': 'm'}>
+CONFIG_RADIO_RTRACK2                            policy<{'i386': 'm'}>
+CONFIG_RADIO_SAA7706H                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_SF16FMI                            policy<{'i386': 'm'}>
+CONFIG_RADIO_SF16FMR2                           policy<{'i386': 'm'}>
+CONFIG_RADIO_SHARK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_SHARK2                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_SI470X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_SI4713                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_SI476X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_TEA575X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_TEA5764                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_TEF6862                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_TERRATEC                           policy<{'i386': 'm'}>
+CONFIG_RADIO_TIMBERDALE                         policy<{'i386': 'm'}>
+CONFIG_RADIO_TRUST                              policy<{'i386': 'm'}>
+CONFIG_RADIO_TYPHOON                            policy<{'i386': 'm'}>
+CONFIG_RADIO_WL1273                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_WL128X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RADIO_ZOLTRIX                            policy<{'i386': 'm'}>
+CONFIG_RAID6_PQ                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RAID6_PQ_BENCHMARK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RAID_ATTRS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RANDOM32_SELFTEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RANDOMIZE_BASE                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_RANDOMIZE_MEMORY                         policy<{'amd64': 'y'}>
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING        policy<{'amd64': '0xa'}>
+CONFIG_RANDOMIZE_MODULE_REGION_FULL             policy<{'arm64': 'y'}>
+CONFIG_RANDOM_TRUST_BOOTLOADER                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RANDOM_TRUST_CPU                         policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RAPIDIO                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RAPIDIO_CHMAN                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_CPS_GEN2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_CPS_XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RAPIDIO_DISC_TIMEOUT                     policy<{'amd64': '30', 'arm64': '30', 'armhf': '30', 'i386': '30', 'ppc64el': '30'}>
+CONFIG_RAPIDIO_DMA_ENGINE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RAPIDIO_ENUM_BASIC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_MPORT_CDEV                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_RXS_GEN3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_TSI568                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_TSI57X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAPIDIO_TSI721                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_RAS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RASPBERRYPI_FIRMWARE                     policy<{'arm64': 'y'}>
+CONFIG_RASPBERRYPI_POWER                        policy<{'arm64': 'y'}>
+CONFIG_RAS_CEC                                  policy<{'amd64': 'y'}>
+CONFIG_RAS_CEC_DEBUG                            policy<{'amd64': 'n'}>
+CONFIG_RATIONAL                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RAVB                                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RAVE_SP_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RAVE_SP_EEPROM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAVE_SP_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RAW_DRIVER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RBTREE_TEST                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RCAR_DMAC                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RCAR_GEN3_THERMAL                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RCAR_GYRO_ADC                            policy<{'armhf': 'm'}>
+CONFIG_RCAR_THERMAL                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RCU_CPU_STALL_TIMEOUT                    policy<{'amd64': '60', 'arm64': '60', 'armhf': '60', 'i386': '60', 'ppc64el': '21', 's390x': '21'}>
+CONFIG_RCU_EQS_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RCU_EXPERT                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RCU_NEED_SEGCBLIST                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RCU_PERF_TEST                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RCU_STALL_COMMON                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RCU_TORTURE_TEST                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RCU_TRACE                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RC_ATI_REMOTE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RC_CORE                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RC_DECODERS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RC_DEVICES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RC_LOOPBACK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RC_MAP                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RC_XBOX_DVD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RDA_INTC                                 policy<{'armhf': 'y'}>
+CONFIG_RDA_TIMER                                policy<{'armhf': 'y'}>
+CONFIG_RDMA_RXE                                 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDMA_SIW                                 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDS                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RDS_RDMA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RDS_TCP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RD_BZIP2                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_GZIP                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_LZ4                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_LZMA                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_LZO                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RD_XZ                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_READABLE_ASM                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_READ_ONLY_THP_FOR_FS                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf-generic-lpae': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_REALTEK_AUTOPM                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REALTEK_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_REBOOT_MODE                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REED_SOLOMON                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REED_SOLOMON_DEC16                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REED_SOLOMON_DEC8                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REED_SOLOMON_ENC8                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REED_SOLOMON_TEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_REGMAP                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REGMAP_AC97                              policy<{'armhf-generic': 'm'}>
+CONFIG_REGMAP_I2C                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REGMAP_I3C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGMAP_IRQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REGMAP_MMIO                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REGMAP_SCCB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGMAP_SLIMBUS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGMAP_SPI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REGMAP_SPMI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGMAP_W1                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_REGULATOR_88PG86X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_88PM800                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_88PM8607                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_AAT2870                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_AB3100                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_ACT8865                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_ACT8945A                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_AD5398                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_ANATOP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_ARIZONA_LDO1                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_ARIZONA_MICSUPP                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_AS3711                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_AS3722                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_AXP20X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_BCM590XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_BD70528                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_BD718XX                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_BD9571MWV                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_CPCAP                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA903X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA9052                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA9055                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA9062                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA9063                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA9210                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DA9211                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_REGULATOR_FAN53555                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_GPIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_HI6421                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_HI6421V530                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_HI655X                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_ISL6271A                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_ISL9305                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LM363X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LOCHNAGAR                      policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP3971                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP3972                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP872X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP873X                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP8755                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP87565                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LP8788                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LTC3589                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_LTC3676                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX14577                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX1586                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX77620                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX77650                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX77686                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX77693                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX77802                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8649                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8660                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8907                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8925                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8952                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8973                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8997                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MAX8998                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MC13783                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MC13892                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MC13XXX_CORE                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MCP16502                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MT6311                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MT6323                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_MT6380                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_MT6397                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PALMAS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PBIAS                          policy<{'armhf': 'm'}>
+CONFIG_REGULATOR_PCAP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PCF50633                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PFUZE100                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PV88060                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PV88080                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PV88090                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_PWM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_QCOM_RPM                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_QCOM_RPMH                      policy<{'arm64': 'm'}>
+CONFIG_REGULATOR_QCOM_SMD_RPM                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_QCOM_SPMI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_RC5T583                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_RK808                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_RN5T618                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_RT5033                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_S2MPA01                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_S2MPS11                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_S5M8767                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_SC2731                         policy<{'arm64': 'm'}>
+CONFIG_REGULATOR_SKY81452                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_SLG51000                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_STPMIC1                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_SY8106A                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_SY8824X                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TI_ABB                         policy<{'armhf': 'y'}>
+CONFIG_REGULATOR_TPS51632                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS6105X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS62360                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65023                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS6507X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65086                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65090                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65132                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65218                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS6524X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS6586X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65910                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS65912                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_TPS80031                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_UNIPHIER                       policy<{'armhf': 'm'}>
+CONFIG_REGULATOR_USERSPACE_CONSUMER             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_VCTRL                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_VEXPRESS                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_REGULATOR_VIRTUAL_CONSUMER               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_WM831X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_WM8350                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_WM8400                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REGULATOR_WM8994                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_REISERFS_CHECK                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_REISERFS_FS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_REISERFS_FS_POSIX_ACL                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REISERFS_FS_SECURITY                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REISERFS_FS_XATTR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_REISERFS_PROC_INFO                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RELAY                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RELOCATABLE                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RELOCATABLE_TEST                         policy<{'ppc64el': 'n'}>
+CONFIG_REMOTEPROC                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RENESAS_DMA                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RENESAS_INTC_IRQPIN                      policy<{'armhf': 'y'}>
+CONFIG_RENESAS_IRQC                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RENESAS_OSTM                             policy<{'armhf': 'y'}>
+CONFIG_RENESAS_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RENESAS_RZA1_IRQC                        policy<{'armhf': 'y'}>
+CONFIG_RENESAS_RZAWDT                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RENESAS_USB_DMAC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RENESAS_WDT                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_ATTACK_MITIGATION                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_RESET_BERLIN                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_BRCMSTB                            policy<{'arm64': 'm'}>
+CONFIG_RESET_CONTROLLER                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RESET_HISI                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_IMX7                               policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_RESET_MESON                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_MESON_AUDIO_ARB                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_QCOM_AOSS                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_QCOM_PDC                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_SCMI                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RESET_SIMPLE                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RESET_SUNXI                              policy<{'arm64': 'y'}>
+CONFIG_RESET_TEGRA_BPMP                         policy<{'armhf-generic': 'y'}>
+CONFIG_RESET_TI_SCI                             policy<{'arm64': 'm'}>
+CONFIG_RESET_TI_SYSCON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RESET_UNIPHIER                           policy<{'armhf': 'm'}>
+CONFIG_RESET_UNIPHIER_GLUE                      policy<{'armhf': 'm'}>
+CONFIG_RETPOLINE                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_RETU_WATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RFD77402                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RFD_FTL                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RFKILL                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_RFKILL_GPIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RFKILL_INPUT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RFKILL_LEDS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RFS_ACCEL                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RING_BUFFER                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RING_BUFFER_ALLOW_SWAP                   policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RING_BUFFER_BENCHMARK                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RING_BUFFER_STARTUP_TEST                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_RIONET                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RIONET_RX_SIZE                           policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128'}>
+CONFIG_RIONET_TX_SIZE                           policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128'}>
+CONFIG_RMI4_2D_SENSOR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RMI4_F03                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_F03_SERIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RMI4_F11                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_F12                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_F30                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_F34                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_F54                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_F55                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RMI4_I2C                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RMI4_SMB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RMI4_SPI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RMNET                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RN5T618_WATCHDOG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_ROCKCHIP_ANALOGIX_DP                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_CDN_DP                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_DW_HDMI                         policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_DW_MIPI_DSI                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_EFUSE                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_GRF                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_INNO_HDMI                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_IODOMAIN                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_IOMMU                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_LVDS                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_MBOX                            policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_PHY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ROCKCHIP_PM_DOMAINS                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_RGB                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_RK3066_HDMI                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKCHIP_SARADC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_THERMAL                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_ROCKCHIP_TIMER                           policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_ROCKER                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ROCKETPORT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RODATA_FULL_DEFAULT_ENABLED              policy<{'arm64': 'y'}>
+CONFIG_ROMFS_BACKED_BY_BLOCK                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ROMFS_BACKED_BY_BOTH                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ROMFS_BACKED_BY_MTD                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ROMFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ROMFS_ON_BLOCK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ROSE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RPCSEC_GSS_KRB5                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_RPMSG                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RPMSG_CHAR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RPMSG_QCOM_GLINK_NATIVE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RPMSG_QCOM_GLINK_RPM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RPMSG_QCOM_GLINK_SMEM                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RPMSG_QCOM_SMD                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RPMSG_VIRTIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_RPR0521                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RPS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RSEQ                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RSI_91X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RSI_COEX                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RSI_DEBUGFS                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RSI_SDIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RSI_USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RST_RCAR                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RT2400PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2500PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2500USB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2800PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2800PCI_RT3290                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800PCI_RT33XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800PCI_RT35XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800PCI_RT53XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800USB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2800USB_RT33XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800USB_RT3573                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800USB_RT35XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800USB_RT53XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800USB_RT55XX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800USB_UNKNOWN                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2800_LIB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2800_LIB_MMIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2X00                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2X00_DEBUG                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RT2X00_LIB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2X00_LIB_CRYPTO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2X00_LIB_DEBUGFS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RT2X00_LIB_FIRMWARE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2X00_LIB_LEDS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RT2X00_LIB_MMIO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2X00_LIB_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT2X00_LIB_USB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT61PCI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RT73USB                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTAS_ERROR_LOGGING                       policy<{'ppc64el': 'y'}>
+CONFIG_RTAS_FLASH                               policy<{'ppc64el': 'm'}>
+CONFIG_RTAS_PROC                                policy<{'ppc64el': 'y'}>
+CONFIG_RTC_CLASS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_88PM80X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_88PM860X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_AB3100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ABB5ZES3                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ABEOZ9                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ABX80X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_AM1805                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ARMADA38X                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_AS3722                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ASPEED                           policy<{'armhf': 'm'}>
+CONFIG_RTC_DRV_BD70528                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_BQ32K                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_BQ4802                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_BRCMSTB                          policy<{'arm64': 'm'}>
+CONFIG_RTC_DRV_CADENCE                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_CROS_EC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_RTC_DRV_DA9052                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DA9055                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DA9063                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1286                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1302                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1305                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1307                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1307_CENTURY                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_DS1343                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1347                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1374                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1374_WDT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_DS1390                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1511                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1553                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1672                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1685                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_DS1685_FAMILY                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS1689                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_DS17285                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_DS1742                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS17485                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_DS17885                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_DS2404                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS3232                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_DS3232_HWMON                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_EM3027                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_FM3130                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_FSL_FTM_ALARM                    policy<{'arm64': 'm'}>
+CONFIG_RTC_DRV_FTRTC010                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_GENERIC                          policy<{'ppc64el': 'y'}>
+CONFIG_RTC_DRV_HID_SENSOR_TIME                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_HYM8563                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_IMXDI                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_IMX_SC                           policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_ISL12022                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ISL12026                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_ISL1208                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_LP8788                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T80                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T80_WDT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_M41T93                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M41T94                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M48T35                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M48T59                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_M48T86                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX6900                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX6902                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX6916                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX77686                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8907                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8925                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8997                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MAX8998                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MC13XXX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MCP795                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MESON                            policy<{'armhf': 'm'}>
+CONFIG_RTC_DRV_MESON_VRTC                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_MSM6242                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MT6397                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_MT7622                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_MV                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_RTC_DRV_MXC                              policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_MXC_V2                           policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_OMAP                             policy<{'armhf': 'y'}>
+CONFIG_RTC_DRV_OPAL                             policy<{'ppc64el': 'y'}>
+CONFIG_RTC_DRV_PALMAS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCAP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF2123                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF2127                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF50633                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF85063                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF8523                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF85363                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF8563                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PCF8583                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_PL030                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_PL031                            policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_RTC_DRV_PM8XXX                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_R7301                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_R9701                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RC5T583                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RK808                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RP5C01                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RS5C348                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RS5C372                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RTD119X                          policy<{'arm64': 'y'}>
+CONFIG_RTC_DRV_RV3028                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RV3029C2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RV3029_HWMON                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_DRV_RV8803                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX4581                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX6110                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX8010                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX8025                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_RX8581                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_S35390A                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_S3C                              policy<{'armhf': 'y'}>
+CONFIG_RTC_DRV_S5M                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_SC27XX                           policy<{'arm64': 'm'}>
+CONFIG_RTC_DRV_SD3078                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_SH                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_RTC_DRV_SNVS                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_STK17TA8                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_SUN6I                            policy<{'arm64': 'y'}>
+CONFIG_RTC_DRV_TEGRA                            policy<{'armhf-generic': 'm'}>
+CONFIG_RTC_DRV_TEST                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_DRV_TPS6586X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TPS65910                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_TPS80031                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_V3020                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_VRTC                             policy<{'i386': 'm'}>
+CONFIG_RTC_DRV_WILCO_EC                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_RTC_DRV_WM831X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_WM8350                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_X1205                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_DRV_XGENE                            policy<{'arm64': 'y'}>
+CONFIG_RTC_DRV_ZYNQMP                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_RTC_HCTOSYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_HCTOSYS_DEVICE                       policy<{'amd64': '"rtc0"', 'arm64': '"rtc0"', 'armhf': '"rtc0"', 'i386': '"rtc0"', 'ppc64el': '"rtc0"'}>
+CONFIG_RTC_I2C_AND_SPI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_DEV                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_DEV_UIE_EMUL                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTC_INTF_PROC                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_INTF_SYSFS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_LIB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_MC146818_LIB                         policy<{'amd64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_NVMEM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_SYSTOHC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTC_SYSTOHC_DEVICE                       policy<{'amd64': '"rtc0"', 'arm64': '"rtc0"', 'armhf': '"rtc0"', 'i386': '"rtc0"', 'ppc64el': '"rtc0"'}>
+CONFIG_RTD119X_WATCHDOG                         policy<{'arm64': 'y'}>
+CONFIG_RTL8180                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8187                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8187_LEDS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTL8188EE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192CE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192CU                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192C_COMMON                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192DE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192E                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192EE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192SE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8192U                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8723AE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8723BE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8723BS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8723_COMMON                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8821AE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8XXXU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL8XXXU_UNTESTED                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTLBTCOEXIST                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLLIB                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLLIB_CRYPTO_CCMP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLLIB_CRYPTO_TKIP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLLIB_CRYPTO_WEP                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLWIFI                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLWIFI_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RTLWIFI_PCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTLWIFI_USB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTL_CARDS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTS5208                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTW88                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTW88_8723DE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTW88_8822BE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTW88_8822CE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTW88_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTW88_DEBUG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTW88_DEBUGFS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_RTW88_PCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_RTW88_REGD_USER_REG_HINTS                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_RT_MUTEXES                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RUNTIME_TESTING_MENU                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RWSEM_SPIN_ON_OWNER                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_RXKAD                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_S2IO                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_S390                                     policy<{'s390x': 'y'}>
+CONFIG_S390_AP_IOMMU                            policy<{'s390x': 'y'}>
+CONFIG_S390_CCW_IOMMU                           policy<{'s390x': 'y'}>
+CONFIG_S390_GUEST                               policy<{'s390x': 'y'}>
+CONFIG_S390_HYPFS_FS                            policy<{'s390x': 'y'}>
+CONFIG_S390_IOMMU                               policy<{'s390x': 'y'}>
+CONFIG_S390_PRNG                                policy<{'s390x': 'm'}>
+CONFIG_S390_PTDUMP                              policy<{'s390x': 'y'}>
+CONFIG_S390_TAPE                                policy<{'s390x': 'm'}>
+CONFIG_S390_TAPE_34XX                           policy<{'s390x': 'm'}>
+CONFIG_S390_TAPE_3590                           policy<{'s390x': 'm'}>
+CONFIG_S390_VMUR                                policy<{'s390x': 'm'}>
+CONFIG_S3C2410_WATCHDOG                         policy<{'armhf': 'm'}>
+CONFIG_S5P_DEV_MFC                              policy<{'armhf': 'y'}>
+CONFIG_SAMPLES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SAMPLE_CONFIGFS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_HW_BREAKPOINT                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SAMPLE_KDB                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SAMPLE_KFIFO                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_KOBJECT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_KPROBES                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_LIVEPATCH                         policy<{'amd64': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_QMI_CLIENT                        policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SAMPLE_RPMSG_CLIENT                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SAMPLE_TRACE_EVENTS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MBOCHS                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MDPY                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMPLE_VFIO_MDEV_MTTY                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SAMSUNG_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SAMSUNG_MC                               policy<{'armhf': 'y'}>
+CONFIG_SAMSUNG_Q10                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SATA_ACARD_AHCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_AHCI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_AHCI_SEATTLE                        policy<{'arm64': 'm'}>
+CONFIG_SATA_DWC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_DWC_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SATA_DWC_OLD_DMA                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SATA_INIC162X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_MOBILE_LPM_POLICY                   policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'i386': '3', 'ppc64el': '3'}>
+CONFIG_SATA_MV                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_NV                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_PMP                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SATA_PROMISE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_QSTOR                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_RCAR                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SATA_SIL                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_SIL24                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_SIS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_SVW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_SX4                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_ULI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_VIA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_VITESSE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SATA_ZPODD                               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SBC7240_WDT                              policy<{'i386': 'm'}>
+CONFIG_SBC8360_WDT                              policy<{'i386': 'm'}>
+CONFIG_SBC_EPX_C3_WATCHDOG                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBC_FITPC2_WATCHDOG                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBITMAP                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SBNI                                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SBNI_MULTILINE                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SBP_TARGET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SC1200_WDT                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SC27XX_ADC                               policy<{'arm64': 'm'}>
+CONFIG_SC27XX_EFUSE                             policy<{'arm64': 'm'}>
+CONFIG_SC92031                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCA3000                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCANLOG                                  policy<{'ppc64el': 'm'}>
+CONFIG_SCC                                      policy<{'i386': 'm'}>
+CONFIG_SCC_DELAY                                policy<{'i386': 'n'}>
+CONFIG_SCC_TRXECHO                              policy<{'i386': 'n'}>
+CONFIG_SCHEDSTATS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_AUTOGROUP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_BOOK                               policy<{'s390x': 'y'}>
+CONFIG_SCHED_DEBUG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_DRAWER                             policy<{'s390x': 'y'}>
+CONFIG_SCHED_HRTICK                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_INFO                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_MC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_SCHED_MC_PRIO                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SCHED_OMIT_FRAME_POINTER                 policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_SMT                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_STACK_END_CHECK                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCHED_TOPOLOGY                           policy<{'s390x': 'y'}>
+CONFIG_SCHED_TRACER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCIF                                     policy<{'amd64': 'm'}>
+CONFIG_SCIF_BUS                                 policy<{'amd64': 'm'}>
+CONFIG_SCLP_CONSOLE                             policy<{'s390x': 'y'}>
+CONFIG_SCLP_TTY                                 policy<{'s390x': 'y'}>
+CONFIG_SCLP_VT220_CONSOLE                       policy<{'s390x': 'y'}>
+CONFIG_SCLP_VT220_TTY                           policy<{'s390x': 'y'}>
+CONFIG_SCM_BLOCK                                policy<{'s390x': 'm'}>
+CONFIG_SCM_BUS                                  policy<{'s390x': 'y'}>
+CONFIG_SCOM_DEBUGFS                             policy<{'ppc64el': 'y'}>
+CONFIG_SCR24X                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_3W_9XXX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_3W_SAS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AACRAID                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ACARD                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ADVANSYS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AHA152X                             policy<{'i386': 'm'}>
+CONFIG_SCSI_AHA1542                             policy<{'i386': 'm'}>
+CONFIG_SCSI_AHA1740                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_AIC79XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AIC7XXX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AIC94XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_AM53C974                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ARCMSR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BFA_FC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BNX2X_FCOE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BNX2_ISCSI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_BUSLOGIC                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_CHELSIO_FCOE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_CONSTANTS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_CXGB3_ISCSI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_CXGB4_ISCSI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_DC395x                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_DEBUG                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_DH_ALUA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH_EMC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH_HP_SW                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DH_RDAC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_DMA                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_DMX3191D                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_DPT_I2O                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_ENCLOSURE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_ESAS2R                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_FC_ATTRS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_FDOMAIN                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_FDOMAIN_ISA                         policy<{'i386': 'm'}>
+CONFIG_SCSI_FDOMAIN_PCI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_FLASHPOINT                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SCSI_GDTH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_GENERIC_NCR5380                     policy<{'i386': 'm'}>
+CONFIG_SCSI_HISI_SAS                            policy<{'arm64': 'm'}>
+CONFIG_SCSI_HISI_SAS_PCI                        policy<{'arm64': 'm'}>
+CONFIG_SCSI_HPSA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_HPTIOP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_IBMVFC                              policy<{'ppc64el': 'm'}>
+CONFIG_SCSI_IBMVFC_TRACE                        policy<{'ppc64el': 'y'}>
+CONFIG_SCSI_IBMVSCSI                            policy<{'ppc64el': 'm'}>
+CONFIG_SCSI_IBMVSCSIS                           policy<{'ppc64el': 'm'}>
+CONFIG_SCSI_IMM                                 policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_INIA100                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_INITIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_IPR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_IPS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_ISCI                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_ISCSI_ATTRS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_IZIP_EPP16                          policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_IZIP_SLOW_CTR                       policy<{'amd64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_LOGGING                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_LOWLEVEL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_LOWLEVEL_PCMCIA                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SCSI_LPFC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_LPFC_DEBUG_FS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_MOD                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_MPT2SAS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_MPT2SAS_MAX_SGE                     policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', 's390x': '128'}>
+CONFIG_SCSI_MPT3SAS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_MPT3SAS_MAX_SGE                     policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'i386': '128', 'ppc64el': '128', 's390x': '128'}>
+CONFIG_SCSI_MVSAS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_MVSAS_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_MVSAS_TASKLET                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_MVUMI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_MYRB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_MYRS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_NETLINK                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_NSP32                               policy<{'armhf': 'm', 'i386': 'm'}>
+CONFIG_SCSI_PM8001                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_PMCRAID                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_PPA                                 policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_PROC_FS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_QLA_FC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_QLA_ISCSI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_QLOGIC_1280                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_QLOGIC_FAS                          policy<{'i386': 'm'}>
+CONFIG_SCSI_SAS_ATA                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SCSI_SAS_ATTRS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SAS_HOST_SMP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_SAS_LIBSAS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SCAN_ASYNC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCSI_SIM710                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SCSI_SMARTPQI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_SNIC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_SNIC_DEBUG_FS                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SCSI_SPI_ATTRS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SCSI_SRP_ATTRS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_SCSI_STEX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_SYM53C8XX_2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS              policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16'}>
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE       policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1'}>
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS                  policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64'}>
+CONFIG_SCSI_SYM53C8XX_MMIO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SCSI_UFSHCD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCSI_UFSHCD_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_UFSHCD_PLATFORM                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_UFS_BSG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SCSI_UFS_CDNS_PLATFORM                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_UFS_DWC_TC_PCI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_UFS_DWC_TC_PLATFORM                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SCSI_UFS_HISI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SCSI_UFS_MEDIATEK                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SCSI_UFS_QCOM                            policy<{'arm64': 'm', 'armhf': 'n'}>
+CONFIG_SCSI_WD719X                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SCTP_COOKIE_HMAC_MD5                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCTP_COOKIE_HMAC_SHA1                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCTP_DBG_OBJCNT                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SCx200                                   policy<{'i386': 'm'}>
+CONFIG_SCx200HR_TIMER                           policy<{'i386': 'm'}>
+CONFIG_SCx200_ACB                               policy<{'i386': 'm'}>
+CONFIG_SCx200_GPIO                              policy<{'i386': 'm'}>
+CONFIG_SCx200_WDT                               policy<{'i386': 'm'}>
+CONFIG_SDIO_UART                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SDLA                                     policy<{'i386': 'm'}>
+CONFIG_SDMA_VERBOSITY                           policy<{'amd64': 'n'}>
+CONFIG_SDM_CAMCC_845                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_DISPCC_845                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_GCC_660                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_GCC_845                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_GPUCC_845                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_LPASSCC_845                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDM_VIDEOCC_845                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SDR_MAX2175                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SDR_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SD_ADC_MODULATOR                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SEALEVEL_4021                            policy<{'i386': 'm'}>
+CONFIG_SECCOMP                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECCOMP_FILTER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECONDARY_TRUSTED_KEYRING                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECTION_MISMATCH_WARN_ONLY               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITYFS                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_APPARMOR                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_APPARMOR_DEBUG                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_APPARMOR_HASH                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_DMESG_RESTRICT                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_INFINIBAND                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_LOADPIN                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_LOCKDOWN_LSM                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_NETWORK                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_NETWORK_XFRM                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_PATH                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_PERF_EVENTS_RESTRICT            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SELINUX                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SELINUX_AVC_STATS               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SELINUX_BOOTPARAM               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE      policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+CONFIG_SECURITY_SELINUX_DEVELOP                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SMACK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SMACK_APPEND_SIGNALS            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_SMACK_BRINGUP                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_SMACK_NETFILTER                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_TOMOYO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER       policy<{'amd64': '"/sbin/init"', 'arm64': '"/sbin/init"', 'armhf': '"/sbin/init"', 'i386': '"/sbin/init"', 'ppc64el': '"/sbin/init"', 's390x': '"/sbin/init"'}>
+CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY         policy<{'amd64': '2048', 'arm64': '2048', 'armhf': '2048', 'i386': '2048', 'ppc64el': '2048', 's390x': '2048'}>
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG            policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'i386': '1024', 'ppc64el': '1024', 's390x': '1024'}>
+CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER            policy<{'amd64': '"/sbin/tomoyo-init"', 'arm64': '"/sbin/tomoyo-init"', 'armhf': '"/sbin/tomoyo-init"', 'i386': '"/sbin/tomoyo-init"', 'ppc64el': '"/sbin/tomoyo-init"', 's390x': '"/sbin/tomoyo-init"'}>
+CONFIG_SECURITY_YAMA                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SELECT_MEMORY_MODEL                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SENSIRION_SGP30                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ABITUGURU                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ABITUGURU3                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ACPI_POWER                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_AD7314                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AD7414                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AD7418                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADC128D818                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADCXX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1021                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1025                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1026                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1029                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1031                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM1275                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADM9240                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADS7828                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADS7871                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7310                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7410                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7411                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7462                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7470                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7475                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ADT7X10                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_AHC1EC0_HWMON                    policy<{'amd64': 'm'}>
+CONFIG_SENSORS_AMC6821                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_APDS990X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_APPLESMC                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ARM_SCMI                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_ARM_SCPI                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_AS370                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ASB100                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ASC7621                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ASPEED                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ATK0110                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ATXP1                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_BH1770                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_CORETEMP                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_DA9052_ADC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DA9055                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DELL_SMM                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_DME1737                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_DS1621                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_DS620                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_EMC1403                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_EMC2103                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_EMC6W201                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_F71805F                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_F71882FG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_F75375S                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_FAM15H_POWER                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_FSCHMD                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_FTSTEUTATES                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_G760A                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_G762                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_GL518SM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_GL520SM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_GPIO_FAN                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_HDAPS                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_HIH6130                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_HMC5843                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_HMC5843_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_HMC5843_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_I5500                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_I5K_AMB                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IBMAEM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IBMPEX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IBMPOWERNV                       policy<{'ppc64el': 'm'}>
+CONFIG_SENSORS_IBM_CFFPS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IIO_HWMON                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INA209                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INA2XX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INA3221                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_INSPUR_IPSPS                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IR35221                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IR38064                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IRPS5401                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ISL29018                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ISL29028                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_ISL68137                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_IT87                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_JC42                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_K10TEMP                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_K8TEMP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_LINEAGE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LIS3LV02D                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LIS3_I2C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_LIS3_SPI                         policy<{'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM25066                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM3533                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM63                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM70                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM73                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM75                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM77                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM78                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM80                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM83                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM85                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM87                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM90                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM92                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM93                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM95234                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM95241                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LM95245                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LOCHNAGAR                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC2945                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC2978                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC2978_REGULATOR                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SENSORS_LTC2990                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC3815                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4151                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4215                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4222                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4245                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4260                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_LTC4261                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX1111                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX16064                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX16065                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX1619                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX1668                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX197                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX20751                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX31722                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX31785                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX31790                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX34440                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6621                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6639                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6642                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6650                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX6697                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MAX8688                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MC13783_ADC                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MCP3021                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MENF21BMC_HWMON                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_MLXREG_FAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_NCT6683                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_NCT6775                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_NCT7802                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_NCT7904                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_NPCM7XX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_NTC_THERMISTOR                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_OCC_P8_I2C                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_OCC_P9_SBE                       policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SENSORS_PC87360                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_PC87427                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_PCF8591                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_PMBUS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_POWR1220                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_PWM_FAN                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_PXE1610                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_RASPBERRYPI_HWMON                policy<{'arm64': 'm'}>
+CONFIG_SENSORS_RM3100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_RM3100_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_RM3100_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SCH5627                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SCH5636                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SCH56XX_COMMON                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SHT15                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SHT21                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SHT3x                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SHTC1                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SIS5595                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SMM665                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_SMSC47B397                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SMSC47M1                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_SMSC47M192                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_STTS751                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TC654                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TC74                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_THMC50                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP102                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP103                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP108                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP401                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TMP421                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TPS40422                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TPS53679                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_TSL2550                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SENSORS_TSL2563                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_UCD9000                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_UCD9200                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_VEXPRESS                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SENSORS_VIA686A                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_VIA_CPUTEMP                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_VT1211                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_VT8231                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83627EHF                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_W83627HF                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_W83773G                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83781D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83791D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83792D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83793                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83795                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83795_FANCTRL                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SENSORS_W83L785TS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_W83L786NG                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_WM831X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_WM8350                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SENSORS_XGENE                            policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SENSORS_ZL6100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_8250                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_ACCENT                       policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_ASPEED_VUART                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_8250_BCM2835AUX                   policy<{'arm64': 'n'}>
+CONFIG_SERIAL_8250_BOCA                         policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_CS                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SERIAL_8250_DETECT_IRQ                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SERIAL_8250_DMA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_DW                           policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_8250_DWLIB                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_EM                           policy<{'armhf': 'n'}>
+CONFIG_SERIAL_8250_EXAR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_8250_EXAR_ST16C554                policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_EXTENDED                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_FINTEK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'n'}>
+CONFIG_SERIAL_8250_FOURPORT                     policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_FSL                          policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_HUB6                         policy<{'i386': 'm'}>
+CONFIG_SERIAL_8250_LPSS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIAL_8250_MANY_PORTS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_MEN_MCB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_8250_MID                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIAL_8250_MT6577                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_8250_NR_UARTS                     policy<{'amd64': '48', 'arm64': '48', 'armhf': '48', 'i386': '48', 'ppc64el': '48'}>
+CONFIG_SERIAL_8250_OMAP                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_8250_PCI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_PNP                          policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SERIAL_8250_RSA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_RT288X                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_RUNTIME_UARTS                policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32'}>
+CONFIG_SERIAL_8250_SHARE_IRQ                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_8250_UNIPHIER                     policy<{'armhf': 'm'}>
+CONFIG_SERIAL_ALTERA_JTAGUART                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_ALTERA_UART                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE              policy<{'amd64': '115200', 'arm64': '115200', 'armhf': '115200', 'i386': '115200', 'ppc64el': '115200'}>
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS              policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4'}>
+CONFIG_SERIAL_AMBA_PL010                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_AMBA_PL011                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_AMBA_PL011_CONSOLE                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_ARC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_ARC_NR_PORTS                      policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1'}>
+CONFIG_SERIAL_BCM63XX                           policy<{'armhf': 'm'}>
+CONFIG_SERIAL_CONEXANT_DIGICOLOR                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_CORE                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_SERIAL_CORE_CONSOLE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_EARLYCON                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_FSL_LINFLEXUART                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_FSL_LPUART                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_ICOM                              policy<{'ppc64el': 'm'}>
+CONFIG_SERIAL_IFX6X60                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SERIAL_IMX                               policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_SERIAL_IMX_CONSOLE                       policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_SERIAL_IPOCTAL                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_JSM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_KGDB_NMI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_MAX3100                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_MAX310X                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_MCTRL_GPIO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_MEN_Z135                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_MESON                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MESON_CONSOLE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MILBEAUT_USIO                     policy<{'armhf': 'm'}>
+CONFIG_SERIAL_MILBEAUT_USIO_PORTS               policy<{'armhf': '4'}>
+CONFIG_SERIAL_MSM                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MSM_CONSOLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MVEBU_CONSOLE                     policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_MVEBU_UART                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_NONSTANDARD                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SERIAL_OF_PLATFORM                       policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_OMAP                              policy<{'armhf': 'y'}>
+CONFIG_SERIAL_OMAP_CONSOLE                      policy<{'armhf': 'y'}>
+CONFIG_SERIAL_OWL                               policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_OWL_CONSOLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_PCH_UART                          policy<{'i386': 'm'}>
+CONFIG_SERIAL_QCOM_GENI                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIAL_RDA                               policy<{'armhf': 'y'}>
+CONFIG_SERIAL_RDA_CONSOLE                       policy<{'armhf': 'y'}>
+CONFIG_SERIAL_RP2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_RP2_NR_UARTS                      policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32'}>
+CONFIG_SERIAL_SAMSUNG                           policy<{'armhf': 'm'}>
+CONFIG_SERIAL_SAMSUNG_UARTS                     policy<{'armhf': '4'}>
+CONFIG_SERIAL_SAMSUNG_UARTS_4                   policy<{'armhf': 'y'}>
+CONFIG_SERIAL_SC16IS7XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SERIAL_SC16IS7XX_CORE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_SC16IS7XX_I2C                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_SC16IS7XX_SPI                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_SCCNXP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SERIAL_SCCNXP_CONSOLE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIAL_SH_SCI_DMA                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SERIAL_SH_SCI_NR_UARTS                   policy<{'arm64': '2', 'armhf': '2'}>
+CONFIG_SERIAL_SIFIVE                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIAL_SPRD                              policy<{'arm64': 'm'}>
+CONFIG_SERIAL_ST_ASC                            policy<{'armhf': 'm'}>
+CONFIG_SERIAL_TEGRA                             policy<{'armhf-generic': 'm'}>
+CONFIG_SERIAL_TEGRA_TCU                         policy<{'armhf-generic': 'm'}>
+CONFIG_SERIAL_TIMBERDALE                        policy<{'i386': 'm'}>
+CONFIG_SERIAL_UARTLITE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SERIAL_UARTLITE_NR_UARTS                 policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1', 's390x': '1'}>
+CONFIG_SERIAL_XILINX_PS_UART                    policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SERIO_ALTERA_PS2                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_AMBAKMI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SERIO_APBPS2                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_ARC_PS2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_CT82C710                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SERIO_GPIO_PS2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_I8042                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIO_LIBPS2                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SERIO_NVEC_PS2                           policy<{'armhf-generic': 'm'}>
+CONFIG_SERIO_PARKBD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_PCIPS2                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_PS2MULT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_RAW                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_SERPORT                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SERIO_SUN4I_PS2                          policy<{'arm64': 'n'}>
+CONFIG_SERIO_XILINX_XPS_PS2                     policy<{'ppc64el': 'm'}>
+CONFIG_SFC                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SFC_FALCON                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SFC_FALCON_MTD                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SFC_MCDI_LOGGING                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SFC_MCDI_MON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SFC_MTD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SFC_SRIOV                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SFI                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SFP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SGETMASK_SYSCALL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SGI_GRU                                  policy<{'amd64': 'm'}>
+CONFIG_SGI_GRU_DEBUG                            policy<{'amd64': 'n'}>
+CONFIG_SGI_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SGI_XP                                   policy<{'amd64': 'm'}>
+CONFIG_SGL_ALLOC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SG_POOL                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SG_SPLIT                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SHIFT_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SHIFT_FS_POSIX_ACL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SHMEM                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SHUFFLE_PAGE_ALLOCATOR                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SH_ETH                                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SH_TIMER_CMT                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SH_TIMER_MTU2                            policy<{'armhf': 'y'}>
+CONFIG_SH_TIMER_TMU                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SI1133                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SI1145                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SI7005                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SI7020                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SIGNALFD                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SIGNATURE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SIGNED_PE_FILE_VERIFICATION              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SIMPLE_GPIO                              policy<{'ppc64el': 'n'}>
+CONFIG_SIMPLE_PM_BUS                            policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_SIOX                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SIOX_BUS_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SIS190                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SIS900                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SKB_EXTENSIONS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SKFP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SKGE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SKGE_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SKGE_GENESIS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SKY2                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SKY2_DEBUG                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SLAB                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SLAB_FREELIST_HARDENED                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLAB_FREELIST_RANDOM                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLAB_MERGE_DEFAULT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLHC                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SLICOSS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SLIC_DS26522                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SLIMBUS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SLIM_QCOM_CTRL                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SLIM_QCOM_NGD_CTRL                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SLIP                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SLIP_COMPRESSED                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SLIP_MODE_SLIP6                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SLIP_SMART                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SLOB                                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SLUB                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_CPU_PARTIAL                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_DEBUG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_DEBUG_ON                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SLUB_MEMCG_SYSFS_ON                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SLUB_STATS                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SMARTJOYPLUS_FF                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SMC911X                                  policy<{'armhf': 'm'}>
+CONFIG_SMC9194                                  policy<{'i386': 'm'}>
+CONFIG_SMC91X                                   policy<{'arm64': 'y', 'armhf': 'm'}>
+CONFIG_SMP                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SMP_ON_UP                                policy<{'armhf': 'y'}>
+CONFIG_SMSC37B787_WDT                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SMSC911X                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SMSC9420                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SMSC_PHY                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SMSC_SCH311X_WDT                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SMSGIUCV                                 policy<{'s390x': 'y'}>
+CONFIG_SMSGIUCV_EVENT                           policy<{'s390x': 'm'}>
+CONFIG_SMS_SDIO_DRV                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SMS_SIANO_DEBUGFS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SMS_SIANO_MDTV                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SMS_SIANO_RC                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SMS_USB_DRV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SM_FTL                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SM_GCC_8150                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_AC97_CODEC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AC97_POWER_SAVE                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT              policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_SND_AD1816A                              policy<{'i386': 'm'}>
+CONFIG_SND_AD1848                               policy<{'i386': 'm'}>
+CONFIG_SND_AD1889                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ADLIB                                policy<{'i386': 'm'}>
+CONFIG_SND_ALI5451                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ALOOP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ALS100                               policy<{'i386': 'm'}>
+CONFIG_SND_ALS300                               policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ALS4000                              policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ARM                                  policy<{'armhf': 'y'}>
+CONFIG_SND_ARMAACI                              policy<{'armhf': 'm'}>
+CONFIG_SND_ASIHPI                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_ATIIXP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ATIIXP_MODEM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ATMEL_SOC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AU8810                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AU8820                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AU8830                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AUDIO_GRAPH_CARD                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AW2                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_AZT1605                              policy<{'i386': 'm'}>
+CONFIG_SND_AZT2316                              policy<{'i386': 'm'}>
+CONFIG_SND_AZT2320                              policy<{'i386': 'm'}>
+CONFIG_SND_AZT3328                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_BCD2000                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_SND_BCM2835_SOC_I2S                      policy<{'arm64': 'm'}>
+CONFIG_SND_BEBOB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_BT87X                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_BT87X_OVERCLOCK                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_CA0106                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_CMI8328                              policy<{'i386': 'm'}>
+CONFIG_SND_CMI8330                              policy<{'i386': 'm'}>
+CONFIG_SND_CMIPCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_COMPRESS_OFFLOAD                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm'}>
+CONFIG_SND_CS4231                               policy<{'i386': 'm'}>
+CONFIG_SND_CS4236                               policy<{'i386': 'm'}>
+CONFIG_SND_CS4281                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_CS46XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_CS46XX_NEW_DSP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_CS5530                               policy<{'i386': 'm'}>
+CONFIG_SND_CS5535AUDIO                          policy<{'i386': 'm'}>
+CONFIG_SND_CTXFI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_DARLA20                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_DARLA24                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_DESIGNWARE_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_DESIGNWARE_PCM                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_SND_DICE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_DMAENGINE_PCM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_DMA_SGBUF                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_DRIVERS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_DUMMY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_DYNAMIC_MINORS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_ECHO3G                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_EMU10K1                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_EMU10K1X                             policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_EMU10K1_SEQ                          policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ENS1370                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ENS1371                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ES1688                               policy<{'i386': 'm'}>
+CONFIG_SND_ES18XX                               policy<{'i386': 'm'}>
+CONFIG_SND_ES1938                               policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ES1968                               policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ES1968_INPUT                         policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_SND_ES1968_RADIO                         policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_SND_FIREFACE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FIREWIRE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_FIREWIRE_DIGI00X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FIREWIRE_LIB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FIREWIRE_MOTU                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FIREWIRE_TASCAM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FIREWORKS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FM801                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_FM801_TEA575X_BOOL                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_GINA20                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_GINA24                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_GUSCLASSIC                           policy<{'i386': 'm'}>
+CONFIG_SND_GUSEXTREME                           policy<{'i386': 'm'}>
+CONFIG_SND_GUSMAX                               policy<{'i386': 'm'}>
+CONFIG_SND_HDA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_ALIGNED_MMIO                     policy<{'armhf-generic': 'y'}>
+CONFIG_SND_HDA_CODEC_ANALOG                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_CA0110                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_CA0132                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_CA0132_DSP                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_CODEC_CIRRUS                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_CMEDIA                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_CONEXANT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_HDMI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_REALTEK                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_SI3054                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_SIGMATEL                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_CODEC_VIA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_COMPONENT                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_DSP_LOADER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_EXT_CORE                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_HDA_GENERIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_HWDEP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_I915                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_HDA_INPUT_BEEP                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_INPUT_BEEP_MODE                  policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_SND_HDA_INTEL                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDA_PATCH_LOADER                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_HDA_PREALLOC_SIZE                    policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64'}>
+CONFIG_SND_HDA_TEGRA                            policy<{'armhf-generic': 'm'}>
+CONFIG_SND_HDSP                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HDSPM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HRTIMER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_HWDEP                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_I2S_HI6210_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_ICE1712                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_ICE1724                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_IMX_SOC                              policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_SND_INDIGO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INDIGODJ                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INDIGODJX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INDIGOIO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INDIGOIOX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INTEL8X0                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INTEL8X0M                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INTEL_DSP_CONFIG                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_INTEL_NHLT                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SND_INTERWAVE                            policy<{'i386': 'm'}>
+CONFIG_SND_INTERWAVE_STB                        policy<{'i386': 'm'}>
+CONFIG_SND_ISA                                  policy<{'i386': 'y'}>
+CONFIG_SND_ISIGHT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_JACK                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_JACK_INPUT_DEV                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_JAZZ16                               policy<{'i386': 'm'}>
+CONFIG_SND_KIRKWOOD_SOC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_KORG1212                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_LAYLA20                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_LAYLA24                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_LOLA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_LX6464ES                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MAESTRO3                             policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_MAESTRO3_INPUT                       policy<{'amd64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y'}>
+CONFIG_SND_MAX_CARDS                            policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'i386': '32', 'ppc64el': '32'}>
+CONFIG_SND_MESON_AXG_FIFO                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_FRDDR                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_PDM                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_SOUND_CARD                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_SPDIFIN                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_SPDIFOUT                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TDMIN                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TDMOUT                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TDM_FORMATTER              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TDM_INTERFACE              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_AXG_TODDR                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MESON_G12A_TOHDMITX                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_MIA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MIRO                                 policy<{'i386': 'm'}>
+CONFIG_SND_MIXART                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MIXER_OSS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MONA                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MPU401                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MPU401_UART                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MSND_CLASSIC                         policy<{'i386': 'm'}>
+CONFIG_SND_MSND_PINNACLE                        policy<{'i386': 'm'}>
+CONFIG_SND_MTPAV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_MTS64                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_NM256                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_OPL3SA2                              policy<{'i386': 'm'}>
+CONFIG_SND_OPL3_LIB                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_OPL3_LIB_SEQ                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_OPL4_LIB                             policy<{'i386': 'm'}>
+CONFIG_SND_OPL4_LIB_SEQ                         policy<{'i386': 'm'}>
+CONFIG_SND_OPTI92X_AD1848                       policy<{'i386': 'm'}>
+CONFIG_SND_OPTI92X_CS4231                       policy<{'i386': 'm'}>
+CONFIG_SND_OPTI93X                              policy<{'i386': 'm'}>
+CONFIG_SND_OSSEMUL                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_OXFW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_OXYGEN                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_OXYGEN_LIB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_PCI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_PCM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_PCMCIA                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_PCM_ELD                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_PCM_IEC958                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_PCM_TIMER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_PCSP                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_PCXHR                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_PDAUDIOCF                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_PORTMAN2X4                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_PPC                                  policy<{'ppc64el': 'y'}>
+CONFIG_SND_PROC_FS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_RAWMIDI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_RIPTIDE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_RME32                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_RME96                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_RME9652                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SAMSUNG_I2S                          policy<{'armhf': 'm'}>
+CONFIG_SND_SAMSUNG_PCM                          policy<{'armhf': 'm'}>
+CONFIG_SND_SAMSUNG_SPDIF                        policy<{'armhf': 'm'}>
+CONFIG_SND_SB16                                 policy<{'i386': 'm'}>
+CONFIG_SND_SB16_CSP                             policy<{'i386': 'y'}>
+CONFIG_SND_SB16_DSP                             policy<{'i386': 'm'}>
+CONFIG_SND_SB8                                  policy<{'i386': 'm'}>
+CONFIG_SND_SB8_DSP                              policy<{'i386': 'm'}>
+CONFIG_SND_SBAWE                                policy<{'i386': 'm'}>
+CONFIG_SND_SBAWE_SEQ                            policy<{'i386': 'm'}>
+CONFIG_SND_SB_COMMON                            policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SC6000                               policy<{'i386': 'm'}>
+CONFIG_SND_SEQUENCER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SEQUENCER_OSS                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_SEQ_DEVICE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SEQ_DUMMY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SEQ_HRTIMER_DEFAULT                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SEQ_MIDI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SEQ_MIDI_EMUL                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SEQ_MIDI_EVENT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SEQ_VIRMIDI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SERIAL_U16550                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SIMPLE_CARD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SIMPLE_CARD_UTILS                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SIS7019                              policy<{'i386': 'm'}>
+CONFIG_SND_SOC_AC97_BUS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SOC_AC97_CODEC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ACPI                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_ACPI_INTEL_MATCH                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_ADAU1701                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ADAU1761                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ADAU1761_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ADAU1761_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ADAU17X1                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ADAU7002                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ADAU_UTILS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK4104                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK4118                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK4458                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK4554                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK4613                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK4642                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK5386                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AK5558                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ALC5623                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ALC5632                          policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_AMD_ACP                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AMD_ACP3x                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_AMD_CZ_RT5645_MACH               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_APQ8016_SBC                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ARIZONA                          policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631           policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_BD28623                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_BT_SCO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_COMPRESS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_CPCAP                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CROS_EC_CODEC                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_CS35L32                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS35L33                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS35L34                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS35L35                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS35L36                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4265                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4270                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4271                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4271_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4271_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42L42                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42L51                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42L51_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42L52                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42L56                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42L73                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42XX8                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS42XX8_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS43130                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4341                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS4349                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CS53L30                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_CX2072X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_DA7213                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_DA7219                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_DAVINCI_MCASP                    policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_DMIC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ES7134                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ES7241                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ES8316                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ES8328                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ES8328_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ES8328_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_EUKREA_TLV320                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_FSL_ASOC_CARD                    policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_FSL_ASRC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_AUDMIX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_ESAI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_MICFIL                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_SAI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_SPDIF                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_SSI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_FSL_UTILS                        policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SOC_GTM601                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_HDAC_HDA                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_HDAC_HDMI                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_HDMI_CODEC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_I2C_AND_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMG                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SOC_IMG_I2S_IN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMG_I2S_OUT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMG_PARALLEL_OUT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMG_SPDIF_IN                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMG_SPDIF_OUT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMX_AUDMIX                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_AUDMUX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_IMX_ES8328                       policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_MC13783                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_PCM_DMA                      policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_SND_SOC_IMX_PCM_FIQ                      policy<{'armhf-generic': 'y'}>
+CONFIG_SND_SOC_IMX_SGTL5000                     policy<{'arm64': 'm', 'armhf-generic': 'y'}>
+CONFIG_SND_SOC_IMX_SPDIF                        policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SND_SOC_IMX_SSI                          policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_INNO_RK3036                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_INTEL_APL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BROADWELL_MACH             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_GLK                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_HASWELL                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_HASWELL_MACH               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_MACH                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_INTEL_SKL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SST                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SST_ACPI                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_LOCHNAGAR_SC                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_LPASS_APQ8016                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_LPASS_CPU                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_LPASS_IPQ806X                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_LPASS_PLATFORM                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MAX9759                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX98088                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX98090                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_MAX98095                         policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_MAX98357A                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX98373                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX98504                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX9860                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX9867                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MAX98927                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MC13783                          policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_MEDIATEK                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MIKROE_PROTO                     policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MSM8916_WCD_ANALOG               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MSM8916_WCD_DIGITAL              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MSM8996                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT2701                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_MT6351                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MT6358                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_MT6797                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT6797_MT6351                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT8173                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_SND_SOC_MT8183                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT8183_DA7219_MAX98357A          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_MTK_BTCVSD                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_NAU8540                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_NAU8810                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_NAU8822                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_NAU8824                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_NAU8825                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_NOKIA_RX51                       policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_ODROID                           policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_OMAP3_PANDORA                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP3_TWL4030                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP_ABE_TWL6040                 policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP_DMIC                        policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_OMAP_MCBSP                       policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_OMAP_MCPDM                       policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_PCM1681                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM1789                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM1789_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM179X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM179X_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM179X_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM186X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM186X_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM186X_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM3060                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM3060_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM3060_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM3168A                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM3168A_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM3168A_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM512x                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM512x_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_PCM512x_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_QCOM                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QCOM_COMMON                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_ADM                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_AFE                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_AFE_DAI                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_ASM                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_ASM_DAI                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_COMMON                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_CORE                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_QDSP6_ROUTING                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RCAR                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RK3288_HDMI_ANALOG               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RK3328                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_RK3399_GRU_SOUND                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RL6231                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_RL6347A                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_I2S                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_MAX98090                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_PDM                     policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_RT5645                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_ROCKCHIP_SPDIF                   policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_RT286                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT298                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5514                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5514_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5616                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_RT5631                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_RT5640                           policy<{'amd64': 'm', 'armhf-generic': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5645                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_RT5651                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5660                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5663                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5670                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5677                           policy<{'amd64': 'm', 'armhf-generic': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5677_SPI                       policy<{'amd64': 'm', 'armhf-generic': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_RT5682                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SAMSUNG                          policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF               policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994              policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SAMSUNG_TM2_WM5110               policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SDM845                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_SGTL5000                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic': 'y', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SH4_FSI                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_SI476X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SIGMADSP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SIGMADSP_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SIGMADSP_REGMAP                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SIRF_AUDIO_CODEC                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SMDK_WM8994_PCM                  policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SNOW                             policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_SOF                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SOF_ACPI                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_APOLLOLAKE                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_BAYTRAIL                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_CANNONLAKE                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_COFFEELAKE                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_COMETLAKE_H                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_COMETLAKE_LP                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_DEBUG                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_SOC_SOF_ELKHARTLAKE                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_GEMINILAKE                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_HDA_COMMON                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_ICELAKE                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_IMX8                         policy<{'arm64': 'm'}>
+CONFIG_SND_SOC_SOF_IMX8_SUPPORT                 policy<{'arm64': 'y'}>
+CONFIG_SND_SOC_SOF_IMX_TOPLEVEL                 policy<{'arm64': 'y'}>
+CONFIG_SND_SOC_SOF_INTEL_ACPI                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_INTEL_COMMON                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_INTEL_PCI                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_MERRIFIELD                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_OF                           policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SOF_OPTIONS                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SOF_PCI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_SOC_SOF_TIGERLAKE                    policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_SOC_SOF_TOPLEVEL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SOC_SOF_XTENSA                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_SPDIF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SPRD                             policy<{'arm64': 'm'}>
+CONFIG_SND_SOC_SPRD_MCDT                        policy<{'arm64': 'y'}>
+CONFIG_SND_SOC_SSM2305                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SSM2602                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SSM2602_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SSM2602_SPI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_SSM4567                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_STA32X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_STA350                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_STI_SAS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_STORM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SND_SOC_TAS2552                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TAS5086                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TAS571X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TAS5720                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TAS6424                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TDA7419                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TEGRA                            policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_AC97                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_DAS                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_I2S                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA20_SPDIF                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA30_AHUB                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA30_I2S                      policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_ALC5632                    policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_MAX98090                   policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_RT5640                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_RT5677                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_SGTL5000                   policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_TRIMSLICE                  policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_WM8753                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_WM8903                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TEGRA_WM9712                     policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TFA9879                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TI_EDMA_PCM                      policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_TI_SDMA_PCM                      policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_TLV320AIC23                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TLV320AIC23_I2C                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TLV320AIC23_SPI                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TLV320AIC31XX                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TLV320AIC32X4                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_TLV320AIC32X4_I2C                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_TLV320AIC32X4_SPI                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SND_SOC_TLV320AIC3X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TOPOLOGY                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SOC_TPA6130A2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TS3A227E                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TSCS42XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TSCS454                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_TWL4030                          policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_TWL6040                          policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_UDA1334                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_UNIPHIER                         policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_AIO                     policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_EVEA_CODEC              policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_LD11                    policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_UNIPHIER_PXS2                    policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_WCD9335                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM5110                           policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_WM8510                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8523                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8524                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8580                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8711                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8728                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8731                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8737                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8741                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8750                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8753                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8770                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8776                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8782                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8804                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8804_I2C                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8804_SPI                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8903                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8904                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8960                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8962                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8974                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8978                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8985                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_WM8994                           policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_WM9712                           policy<{'armhf-generic': 'm'}>
+CONFIG_SND_SOC_WM_ADSP                          policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_WM_HUBS                          policy<{'armhf': 'm'}>
+CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_XILINX_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_XILINX_SPDIF                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_XTFPGA_I2S                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SOC_ZX_AUD96P22                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_SONICVIBES                           policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_SPI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SSCAPE                               policy<{'i386': 'm'}>
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_IPC                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_IPC_ACPI                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SST_IPC_PCI                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_SUN4I_CODEC                          policy<{'arm64': 'n'}>
+CONFIG_SND_SUN4I_I2S                            policy<{'arm64': 'n'}>
+CONFIG_SND_SUN4I_SPDIF                          policy<{'arm64': 'n'}>
+CONFIG_SND_SUN50I_CODEC_ANALOG                  policy<{'arm64': 'm'}>
+CONFIG_SND_SUN8I_ADDA_PR_REGMAP                 policy<{'arm64': 'm'}>
+CONFIG_SND_SUN8I_CODEC                          policy<{'arm64': 'm'}>
+CONFIG_SND_SUN8I_CODEC_ANALOG                   policy<{'arm64': 'm'}>
+CONFIG_SND_SUPPORT_OLD_API                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_SYNTH_EMUX                           policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_TIMER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_TRIDENT                              policy<{'amd64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm'}>
+CONFIG_SND_USB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_USB_6FIRE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_AUDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_USB_CAIAQ                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_CAIAQ_INPUT                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_USB_HIFACE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_LINE6                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_POD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_PODHD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_TONEPORT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_UA101                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_US122L                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_USB_USX2Y                            policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_USB_VARIAX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_VERBOSE_PRINTK                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SND_VERBOSE_PROCFS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_VIA82XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_VIA82XX_MODEM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_VIRMIDI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_VIRTUOSO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_VMASTER                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SND_VX222                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_VXPOCKET                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SND_VX_LIB                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SND_WAVEFRONT                            policy<{'i386': 'm'}>
+CONFIG_SND_WSS_LIB                              policy<{'i386': 'm'}>
+CONFIG_SND_X86                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SND_XEN_FRONTEND                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_SND_YMFPCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SNI_AVE                                  policy<{'armhf': 'm'}>
+CONFIG_SNI_NETSEC                               policy<{'arm64': 'm'}>
+CONFIG_SOCIONEXT_SYNQUACER_PREITS               policy<{'arm64': 'y'}>
+CONFIG_SOCK_CGROUP_DATA                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SOCK_VALIDATE_XMIT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SOC_AM33XX                               policy<{'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}>
+CONFIG_SOC_AM43XX                               policy<{'armhf': 'n'}>
+CONFIG_SOC_ASPEED                               policy<{'armhf': 'y'}>
+CONFIG_SOC_BRCMSTB                              policy<{'arm64': 'y', 'armhf': 'n'}>
+CONFIG_SOC_BUS                                  policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_SOC_DRA7XX                               policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5250                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5260                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5410                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5420                           policy<{'armhf': 'y'}>
+CONFIG_SOC_EXYNOS5800                           policy<{'armhf': 'y'}>
+CONFIG_SOC_HAS_OMAP2_SDRC                       policy<{'armhf': 'y'}>
+CONFIG_SOC_HAS_REALTIME_COUNTER                 policy<{'armhf': 'y'}>
+CONFIG_SOC_IMX5                                 policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX50                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX51                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX53                                policy<{'armhf-generic': 'n'}>
+CONFIG_SOC_IMX6                                 policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6Q                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6SL                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6SLL                              policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6SX                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX6UL                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX7D                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX7D_CA7                            policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_IMX7ULP                              policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_LS1021A                              policy<{'armhf-generic': 'n'}>
+CONFIG_SOC_OMAP3430                             policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_OMAP5                                policy<{'armhf': 'n'}>
+CONFIG_SOC_RENESAS                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SOC_SAMSUNG                              policy<{'armhf': 'y'}>
+CONFIG_SOC_TEGRA_FLOWCTRL                       policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_TEGRA_FUSE                           policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_TEGRA_PMC                            policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_TEGRA_POWERGATE_BPMP                 policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_TI                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SOC_TI81XX                               policy<{'armhf-generic': 'y'}>
+CONFIG_SOC_VF610                                policy<{'armhf-generic': 'y'}>
+CONFIG_SOFTLOCKUP_DETECTOR                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SOFT_WATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SOFT_WATCHDOG_PRETIMEOUT                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SOLARIS_X86_PARTITION                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SONYPI                                   policy<{'i386': 'm'}>
+CONFIG_SONYPI_COMPAT                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SONY_FF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SONY_LAPTOP                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SOUNDWIRE_CADENCE                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SOUNDWIRE_INTEL                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SOUND_OSS_CORE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SP5100_TCO                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SPAPR_TCE_IOMMU                          policy<{'ppc64el': 'y'}>
+CONFIG_SPARSEMEM                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SPARSEMEM_EXTREME                        policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SPARSEMEM_MANUAL                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SPARSEMEM_STATIC                         policy<{'i386': 'y'}>
+CONFIG_SPARSEMEM_VMEMMAP                        policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE                 policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SPARSE_IRQ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SPEAKUP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_ACNTPC                     policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_ACNTSA                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_APOLLO                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_AUDPTR                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_BNS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_DECEXT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_DECPC                      policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_DECTLK                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_DTLK                       policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_DUMMY                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_KEYPC                      policy<{'i386': 'm'}>
+CONFIG_SPEAKUP_SYNTH_LTLK                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_SOFT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_SPKOUT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPEAKUP_SYNTH_TXPRT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SPI_ALTERA                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_ARMADA_3700                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_ASPEED_SMC                           policy<{'armhf': 'm'}>
+CONFIG_SPI_AXI_SPI_ENGINE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_BCM2835                              policy<{'arm64': 'm'}>
+CONFIG_SPI_BCM2835AUX                           policy<{'arm64': 'm'}>
+CONFIG_SPI_BCM_QSPI                             policy<{'arm64': 'm'}>
+CONFIG_SPI_BITBANG                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_BUTTERFLY                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_CADENCE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_CADENCE_QUADSPI                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SPI_DESIGNWARE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_DLN2                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_DW_MID_DMA                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_DW_MMIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_DW_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_DYNAMIC                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_FSL_DSPI                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_FSL_LIB                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_FSL_LPSPI                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_FSL_QUADSPI                          policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_FSL_SPI                              policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_GPIO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_HISI_SFC                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_HISI_SFC_V3XX                        policy<{'arm64': 'm'}>
+CONFIG_SPI_IMX                                  policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_SPI_LM70_LLP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_LOOPBACK_TEST                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_MASTER                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_MEM                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_MESON_SPICC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_MESON_SPIFC                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_MT65XX                               policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_MTK_QUADSPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_MXIC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_NPCM_FIU                             policy<{'armhf': 'm'}>
+CONFIG_SPI_NPCM_PSPI                            policy<{'armhf': 'm'}>
+CONFIG_SPI_NXP_FLEXSPI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_OC_TINY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_OMAP24XX                             policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SPI_ORION                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_PL022                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_PXA2XX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_PXA2XX_PCI                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_SPI_QCOM_GENI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_QCOM_QSPI                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_QUP                                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_ROCKCHIP                             policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SPI_RSPI                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_S3C64XX                              policy<{'armhf': 'm'}>
+CONFIG_SPI_SC18IS602                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_SH_HSPI                              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_SH_MSIOF                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_SIFIVE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_SLAVE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SPI_SLAVE_MT27XX                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_SLAVE_TIME                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_SPIDEV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_SPRD                                 policy<{'arm64': 'm'}>
+CONFIG_SPI_SPRD_ADI                             policy<{'arm64': 'm'}>
+CONFIG_SPI_SUN4I                                policy<{'arm64': 'n'}>
+CONFIG_SPI_SUN6I                                policy<{'arm64': 'm'}>
+CONFIG_SPI_SYNQUACER                            policy<{'arm64': 'm'}>
+CONFIG_SPI_TEGRA114                             policy<{'armhf-generic': 'm'}>
+CONFIG_SPI_TEGRA20_SFLASH                       policy<{'armhf-generic': 'm'}>
+CONFIG_SPI_TEGRA20_SLINK                        policy<{'armhf-generic': 'm'}>
+CONFIG_SPI_THUNDERX                             policy<{'arm64': 'm'}>
+CONFIG_SPI_TI_QSPI                              policy<{'armhf': 'm'}>
+CONFIG_SPI_TLE62X0                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_TOPCLIFF_PCH                         policy<{'i386': 'm'}>
+CONFIG_SPI_UNIPHIER                             policy<{'armhf': 'm'}>
+CONFIG_SPI_XCOMM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPI_XILINX                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SPI_XLP                                  policy<{'arm64': 'm'}>
+CONFIG_SPI_ZYNQMP_GQSPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SPLIT_PTLOCK_CPUS                        policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'i386': '4', 'ppc64el': '4', 's390x': '4'}>
+CONFIG_SPMI                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SPMI_MSM_PMIC_ARB                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPMI_PMIC_CLKDIV                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_SPRD_COMMON_CLK                          policy<{'arm64': 'm'}>
+CONFIG_SPRD_DMA                                 policy<{'arm64': 'm'}>
+CONFIG_SPRD_SC9860_CLK                          policy<{'arm64': 'm'}>
+CONFIG_SPRD_TIMER                               policy<{'arm64': 'y'}>
+CONFIG_SPRD_WATCHDOG                            policy<{'arm64': 'm'}>
+CONFIG_SPS30                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SQUASHFS_DECOMP_MULTI                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_DECOMP_SINGLE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_EMBEDDED                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_FILE_CACHE                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SQUASHFS_FILE_DIRECT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE             policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'i386': '3', 'ppc64el': '3', 's390x': '3'}>
+CONFIG_SQUASHFS_LZ4                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_LZO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_XZ                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_ZLIB                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SQUASHFS_ZSTD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SRAM                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SRAM_EXEC                                policy<{'armhf': 'y'}>
+CONFIG_SRCU                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SRF04                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SRF08                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SSB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SSB_B43_PCI_BRIDGE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_BLOCKIO                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_DRIVER_GPIO                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_DRIVER_PCICORE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_PCIHOST                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_PCIHOST_POSSIBLE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_PCMCIAHOST                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_SSB_PCMCIAHOST_POSSIBLE                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_SSB_POSSIBLE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SSB_SDIOHOST                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_SDIOHOST_POSSIBLE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSB_SPROM                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SSFDC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SSI_PROTOCOL                             policy<{'armhf-generic': 'm'}>
+CONFIG_STACKPROTECTOR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_STACKPROTECTOR_PER_TASK                  policy<{'arm64': 'y'}>
+CONFIG_STACKPROTECTOR_STRONG                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_STACKTRACE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STACKTRACE_SUPPORT                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STACK_TRACER                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STAGING                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_STAGING_APEX_DRIVER                      policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_STAGING_BOARD                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_STAGING_GASKET_FRAMEWORK                 policy<{'amd64': 'm', 'arm64': 'm'}>
+CONFIG_STAGING_MEDIA                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_STANDALONE                               policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'i386': 'n', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STATIC_KEYS_SELFTEST                     policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STATIC_USERMODEHELPER                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STE10XP                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STK3310                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_STK8312                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_STK8BA50                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_STM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STMMAC_ETH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_STMMAC_PCI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_STMMAC_PLATFORM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_STMMAC_SELFTESTS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_STMPE_ADC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_STMPE_I2C                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_STMPE_SPI                                policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_STMP_DEVICE                              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_STM_DUMMY                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_PROTO_BASIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_PROTO_SYS_T                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_SOURCE_CONSOLE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_SOURCE_FTRACE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STM_SOURCE_HEARTBEAT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_STPMIC1_WATCHDOG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_STREAM_PARSER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STRICT_DEVMEM                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_STRICT_KERNEL_RWX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_STRICT_MODULE_RWX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_STRING_SELFTEST                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STRIP_ASM_SYMS                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_STUB_CLK_HI3660                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_STUB_CLK_HI6220                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_STX104                                   policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_ST_UVIS25                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ST_UVIS25_I2C                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ST_UVIS25_SPI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SUN4I_EMAC                               policy<{'arm64': 'n'}>
+CONFIG_SUN4I_GPADC                              policy<{'arm64': 'n'}>
+CONFIG_SUN50I_A64_CCU                           policy<{'arm64': 'y'}>
+CONFIG_SUN50I_DE2_BUS                           policy<{'arm64': 'y'}>
+CONFIG_SUN50I_ERRATUM_UNKNOWN1                  policy<{'arm64': 'y'}>
+CONFIG_SUN50I_H6_CCU                            policy<{'arm64': 'y'}>
+CONFIG_SUN50I_H6_R_CCU                          policy<{'arm64': 'y'}>
+CONFIG_SUN8I_A83T_CCU                           policy<{'arm64': 'y'}>
+CONFIG_SUN8I_DE2_CCU                            policy<{'arm64': 'y'}>
+CONFIG_SUN8I_H3_CCU                             policy<{'arm64': 'y'}>
+CONFIG_SUN8I_R_CCU                              policy<{'arm64': 'y'}>
+CONFIG_SUNDANCE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SUNDANCE_MMIO                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SUNGEM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SUNGEM_PHY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SUNRPC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SUNRPC_BACKCHANNEL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SUNRPC_DEBUG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SUNRPC_GSS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SUNRPC_SWAP                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SUNRPC_XPRT_RDMA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_SUNXI_CCU                                policy<{'arm64': 'y'}>
+CONFIG_SUNXI_RSB                                policy<{'arm64': 'm'}>
+CONFIG_SUNXI_SRAM                               policy<{'arm64': 'y'}>
+CONFIG_SUNXI_WATCHDOG                           policy<{'arm64': 'm'}>
+CONFIG_SUN_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SURFACE3_WMI                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SURFACE_3_BUTTON                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SURFACE_PRO3_BUTTON                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SUSPEND                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SUSPEND_FREEZER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_SUSPEND_SKIP_SYNC                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_SWAP                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SWIOTLB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SWIOTLB_XEN                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_SWPHY                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SWP_EMULATE                              policy<{'armhf': 'y'}>
+CONFIG_SW_SYNC                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SX9500                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SXGBE_ETH                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SYNCLINK                                 policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SYNCLINKMP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SYNCLINK_CS                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_SYNCLINK_GT                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SYNC_FILE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYN_COOKIES                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSCON_REBOOT_MODE                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_SYSCTL                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSCTL_EXCEPTION_TRACE                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSCTL_SYSCALL                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_SYSC_R8A7743                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7745                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A77470                            policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A774A1                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A774C0                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A7779                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7790                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7791                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7792                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7794                             policy<{'armhf': 'y'}>
+CONFIG_SYSC_R8A7795                             policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A7796                             policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77965                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77970                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77980                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77990                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_R8A77995                            policy<{'arm64': 'y'}>
+CONFIG_SYSC_RCAR                                policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SYSC_RMOBILE                             policy<{'armhf': 'y'}>
+CONFIG_SYSFS                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSFS_SYSCALL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEMPORT                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST               policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_SYSTEM_BLACKLIST_KEYRING                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_DATA_VERIFICATION                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_EXTRA_CERTIFICATE                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE            policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'i386': '4096', 'ppc64el': '4096', 's390x': '4096'}>
+CONFIG_SYSTEM_REVOCATION_KEYS                   policy<{'amd64': '"debian/canonical-revoked-certs.pem"', 'arm64': '"debian/canonical-revoked-certs.pem"', 'armhf': '"debian/canonical-revoked-certs.pem"', 'i386': '"debian/canonical-revoked-certs.pem"', 'ppc64el': '"debian/canonical-revoked-certs.pem"', 's390x': '"debian/canonical-revoked-certs.pem"'}>
+CONFIG_SYSTEM_REVOCATION_LIST                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_TRUSTED_KEYRING                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSTEM_TRUSTED_KEYS                      policy<{'amd64': '"debian/canonical-certs.pem"', 'arm64': '"debian/canonical-certs.pem"', 'armhf': '"debian/canonical-certs.pem"', 'i386': '"debian/canonical-certs.pem"', 'ppc64el': '"debian/canonical-certs.pem"', 's390x': '"debian/canonical-certs.pem"'}>
+CONFIG_SYSV68_PARTITION                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_SYSVIPC                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSVIPC_COMPAT                           policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSVIPC_SYSCTL                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_SYSV_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_SYS_HYPERVISOR                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_SYS_SUPPORTS_APM_EMULATION               policy<{'armhf': 'y'}>
+CONFIG_SYS_SUPPORTS_EM_STI                      policy<{'armhf': 'y'}>
+CONFIG_SYS_SUPPORTS_HUGETLBFS                   policy<{'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'y'}>
+CONFIG_SYS_SUPPORTS_SH_CMT                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_SYS_SUPPORTS_SH_MTU2                     policy<{'armhf': 'y'}>
+CONFIG_SYS_SUPPORTS_SH_TMU                      policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_T5403                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_SERIAL_WACOM4                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_USB_ACECAD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_USB_AIPTEK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_USB_GTCO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_USB_HANWANG                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_USB_KBTAB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TABLET_USB_PEGASUS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TAHVO_USB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TAHVO_USB_HOST_BY_DEFAULT                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TAP                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TARGET_CORE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TASKSTATS                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASKS_RCU                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASK_DELAY_ACCT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASK_IO_ACCOUNTING                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TASK_XACCT                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TC1100_WMI                               policy<{'i386': 'm'}>
+CONFIG_TCG_ATMEL                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TCG_CRB                                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_TCG_FTPM_TEE                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TCG_IBMVTPM                              policy<{'ppc64el': 'y'}>
+CONFIG_TCG_INFINEON                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TCG_NSC                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TCG_TIS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TCG_TIS_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TCG_TIS_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TCG_TIS_ST33ZP24                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TCG_TIS_ST33ZP24_I2C                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TCG_TIS_ST33ZP24_SPI                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TCG_VTPM_PROXY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCG_XEN                                  policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TCIC                                     policy<{'i386': 'm'}>
+CONFIG_TCM_FC                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_FILEIO                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_IBLOCK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_PSCSI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCM_QLA2XXX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TCM_QLA2XXX_DEBUG                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_TCM_USER2                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_ADVANCED                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCP_CONG_BBR                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_BIC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_CDG                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_CUBIC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCP_CONG_DCTCP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_HSTCP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_HTCP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_HYBLA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_ILLINOIS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_LP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_NV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_SCALABLE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_VEGAS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_VENO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_WESTWOOD                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_CONG_YEAH                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TCP_MD5SIG                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TCS3414                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TCS3472                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TEE                                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TEGRA124_EMC                             policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA20_APB_DMA                          policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA20_EMC                              policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_AHB                                policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_BPMP                               policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_BPMP_THERMAL                       policy<{'armhf-generic': 'm'}>
+CONFIG_TEGRA_CLK_DFLL                           policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_CLK_EMC                            policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_GMI                                policy<{'armhf-generic': 'm'}>
+CONFIG_TEGRA_HOST1X                             policy<{'armhf-generic': 'm'}>
+CONFIG_TEGRA_HOST1X_FIREWALL                    policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_HSP_MBOX                           policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_IOMMU_GART                         policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_IOMMU_SMMU                         policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_IVC                                policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_MC                                 policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_SOCTHERM                           policy<{'armhf-generic': 'n'}>
+CONFIG_TEGRA_TIMER                              policy<{'armhf-generic': 'y'}>
+CONFIG_TEGRA_VDE                                policy<{'armhf-generic': 'm'}>
+CONFIG_TEGRA_WATCHDOG                           policy<{'armhf-generic': 'm'}>
+CONFIG_TEHUTI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TELCLOCK                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TERANETICS_PHY                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TEST_ASYNC_DRIVER_PROBE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_BITFIELD                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_BITMAP                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_BPF                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TEST_FIRMWARE                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_HASH                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_HEXDUMP                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_IDA                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_KMOD                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_KSTRTOX                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_LIST_SORT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_LIVEPATCH                           policy<{'amd64': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_LKM                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_MEMCAT_P                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_MEMINIT                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_OBJAGG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_OVERFLOW                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_PARMAN                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_POWER                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TEST_PRINTF                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_RHASHTABLE                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_SORT                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STACKINIT                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STATIC_KEYS                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STRING_HELPERS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_STRSCPY                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_SYSCTL                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_UDELAY                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_USER_COPY                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_UUID                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_VMALLOC                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEST_XARRAY                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TEXTSEARCH                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TEXTSEARCH_BM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TEXTSEARCH_FSM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TEXTSEARCH_KMP                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_THERMAL                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS      policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0'}>
+CONFIG_THERMAL_EMULATION                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_GOV_BANG_BANG                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_GOV_FAIR_SHARE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_GOV_STEP_WISE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_GOV_USER_SPACE                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_HWMON                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_MMIO                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_THERMAL_OF                               policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_STATISTICS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THERMAL_WRITABLE_TRIPS                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THINKPAD_ACPI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THINKPAD_ACPI_DEBUG                      policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_THINKPAD_ACPI_DEBUGFACILITIES            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THINKPAD_ACPI_UNSAFE_LEDS                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_THINKPAD_ACPI_VIDEO                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_THP_SWAP                                 policy<{'amd64': 'y'}>
+CONFIG_THREAD_INFO_IN_TASK                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_THREAD_SHIFT                             policy<{'ppc64el': '14'}>
+CONFIG_THRUSTMASTER_FF                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_THUMB2_KERNEL                            policy<{'armhf': 'n'}>
+CONFIG_THUNDERBOLT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_THUNDERBOLT_NET                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_THUNDERX2_PMU                            policy<{'arm64': 'm'}>
+CONFIG_THUNDER_NIC_BGX                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_THUNDER_NIC_PF                           policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_THUNDER_NIC_RGX                          policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_THUNDER_NIC_VF                           policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}>
+CONFIG_TICK_CPU_ACCOUNTING                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TICK_ONESHOT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIFM_7XX1                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TIFM_CORE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TIGON3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TIGON3_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TIMB_DMA                                 policy<{'i386': 'm'}>
+CONFIG_TIMERFD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIMER_ACPI                               policy<{'arm64': 'y'}>
+CONFIG_TIMER_IMX_SYS_CTR                        policy<{'arm64': 'y'}>
+CONFIG_TIMER_OF                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_TIMER_PROBE                              policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_TINYDRM_HX8357D                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TINYDRM_ILI9225                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TINYDRM_ILI9341                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TINYDRM_MI0283QT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TINYDRM_REPAPER                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TINYDRM_ST7586                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TINYDRM_ST7735R                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TIPC                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TIPC_DIAG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TIPC_MEDIA_IB                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIPC_MEDIA_UDP                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TI_ADC081C                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADC0832                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADC084S021                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADC108S102                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADC12138                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADC128S052                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADC161S626                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADS1015                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADS124S08                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADS7950                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADS8344                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_ADS8688                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_AM335X_ADC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_CPPI41                                policy<{'armhf': 'm'}>
+CONFIG_TI_CPSW                                  policy<{'armhf': 'y'}>
+CONFIG_TI_CPSW_PHY_SEL                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_TI_CPTS                                  policy<{'armhf': 'y'}>
+CONFIG_TI_CPTS_MOD                              policy<{'armhf': 'y'}>
+CONFIG_TI_DAC082S085                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_DAC5571                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_DAC7311                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_DAC7612                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TI_DAVINCI_EMAC                          policy<{'armhf-generic': 'm'}>
+CONFIG_TI_DAVINCI_MDIO                          policy<{'armhf': 'y'}>
+CONFIG_TI_DMA_CROSSBAR                          policy<{'armhf': 'y'}>
+CONFIG_TI_EDMA                                  policy<{'armhf': 'y'}>
+CONFIG_TI_EMIF                                  policy<{'armhf': 'm'}>
+CONFIG_TI_EMIF_SRAM                             policy<{'armhf-generic': 'm'}>
+CONFIG_TI_MESSAGE_MANAGER                       policy<{'arm64': 'y'}>
+CONFIG_TI_PIPE3                                 policy<{'armhf': 'm'}>
+CONFIG_TI_SCI_CLK                               policy<{'arm64': 'm'}>
+CONFIG_TI_SCI_CLK_PROBE_FROM_FW                 policy<{'arm64': 'n'}>
+CONFIG_TI_SCI_INTA_IRQCHIP                      policy<{'arm64': 'y'}>
+CONFIG_TI_SCI_INTA_MSI_DOMAIN                   policy<{'arm64': 'y'}>
+CONFIG_TI_SCI_INTR_IRQCHIP                      policy<{'arm64': 'y'}>
+CONFIG_TI_SCI_PM_DOMAINS                        policy<{'arm64': 'm'}>
+CONFIG_TI_SCI_PROTOCOL                          policy<{'arm64': 'y'}>
+CONFIG_TI_SOC_THERMAL                           policy<{'armhf': 'm'}>
+CONFIG_TI_ST                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TI_SYSC                                  policy<{'armhf': 'y'}>
+CONFIG_TI_THERMAL                               policy<{'armhf': 'y'}>
+CONFIG_TI_TLC4541                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TLAN                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TLS                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TLS_DEVICE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TMD_HERMES                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TMP006                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TMP007                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TMPFS                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TMPFS_XATTR                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TN3215                                   policy<{'s390x': 'y'}>
+CONFIG_TN3215_CONSOLE                           policy<{'s390x': 'y'}>
+CONFIG_TN3270                                   policy<{'s390x': 'y'}>
+CONFIG_TN3270_CONSOLE                           policy<{'s390x': 'y'}>
+CONFIG_TN3270_FS                                policy<{'s390x': 'm'}>
+CONFIG_TN3270_TTY                               policy<{'s390x': 'y'}>
+CONFIG_TOPSTAR_LAPTOP                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TORTURE_TEST                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TOSHIBA                                  policy<{'i386': 'n'}>
+CONFIG_TOSHIBA_BT_RFKILL                        policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TOSHIBA_HAPS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TOSHIBA_WMI                              policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_TOUCHSCREEN_88PM860X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_AD7877                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_AD7879                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_AD7879_I2C                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_AD7879_SPI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ADC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ADS7846                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_AR1021_I2C                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ATMEL_MXT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_AUO_PIXCIR                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_BU21013                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_BU21029                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8318              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505              policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_TOUCHSCREEN_COLIBRI_VF50                 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CY8CTMG110                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CYTTSP_CORE                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CYTTSP_I2C                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_CYTTSP_SPI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_DA9034                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_DA9052                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_DMI                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_TOUCHSCREEN_DYNAPRO                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_EDT_FT5X06                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_EETI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_EGALAX                       policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_EKTF2127                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ELO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_EXC3000                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_FUJITSU                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_GOODIX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_GUNZE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_HAMPSHIRE                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_HIDEEP                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_HTCPEN                       policy<{'i386': 'm'}>
+CONFIG_TOUCHSCREEN_ILI210X                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_IMX6UL_TSC                   policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_INEXIO                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_IPROC                        policy<{'arm64': 'm'}>
+CONFIG_TOUCHSCREEN_IQS5XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MAX11801                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MC13783                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MCS5000                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MELFAS_MIP4                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MK712                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MMS114                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_MTOUCH                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_PCAP                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_PENMOUNT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_PIXCIR                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_PROPERTIES                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW               policy<{'arm64': 'm'}>
+CONFIG_TOUCHSCREEN_RM_TS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ROHM_BU21023                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_S6SY761                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_SILEAD                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_SIS_I2C                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ST1232                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_STMFTS                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_STMPE                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_SUN4I                        policy<{'arm64': 'n'}>
+CONFIG_TOUCHSCREEN_SUR40                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_SURFACE3_SPI                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_SX8654                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TOUCHIT213                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TOUCHRIGHT                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TOUCHWIN                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TPS6507X                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TS4800                       policy<{'armhf-generic': 'm'}>
+CONFIG_TOUCHSCREEN_TSC2004                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TSC2005                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TSC2007                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TSC2007_IIO                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_TSC200X_CORE                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_TSC_SERIO                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_UCB1400                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_USB_3M                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_COMPOSITE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_E2I                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_EGALAX                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_ELO                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_ETURBO                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_GOTOP                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_GUNZE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_IDEALTEK                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_IRTOUCH                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_ITM                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_JASTEC                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_NEXIO                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_PANJIT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_WACOM_I2C                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_WACOM_W8001                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_WDT87XX_I2C                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_WM831X                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_WM9705                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_WM9712                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_WM9713                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TOUCHSCREEN_WM97XX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ZET6223                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TOUCHSCREEN_ZFORCE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TPL0102                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TPM_KEY_PARSER                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_TPS6105X                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TPS65010                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TPS6507X                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TPS68470_PMIC_OPREGION                   policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_TQMX86_WDT                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_TRACEPOINTS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACEPOINT_BENCHMARK                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TRACER_MAX_TRACE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACER_SNAPSHOT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TRACE_CLOCK                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACE_EVAL_MAP_FILE                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TRACE_IRQFLAGS_SUPPORT                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACE_ROUTER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TRACE_SINK                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_TRACING                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACING_MAP                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRACING_SUPPORT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRANSPARENT_HUGEPAGE                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS              policy<{'amd64': 'n', 'arm64': 'n', 'armhf-generic-lpae': 'n', 'i386': 'n', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE             policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_TRANSPARENT_HUGE_PAGECACHE               policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TREE_RCU                                 policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'i386-generic': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TREE_SRCU                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TRUSTED_FOUNDATIONS                      policy<{'armhf': 'y'}>
+CONFIG_TRUSTED_KEYS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TS4800_IRQ                               policy<{'armhf-generic': 'm'}>
+CONFIG_TS4800_WATCHDOG                          policy<{'armhf-generic': 'm'}>
+CONFIG_TSL2583                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TSL2772                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TSL4531                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TSYS01                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TSYS02D                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TTPCI_EEPROM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TTY                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TTY_PRINTK                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_TTY_PRINTK_LEVEL                         policy<{'amd64': '6', 'arm64': '6', 'armhf': '6', 'i386': '6', 'ppc64el': '6'}>
+CONFIG_TULIP                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TULIP_MMIO                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_TULIP_MWI                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_TULIP_NAPI                               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_TUN                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TUNE_DEFAULT                             policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z10                                 policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z13                                 policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z14                                 policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z15                                 policy<{'s390x': 'y'}>
+CONFIG_TUNE_Z196                                policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z900                                policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z990                                policy<{'s390x': 'n'}>
+CONFIG_TUNE_Z9_109                              policy<{'s390x': 'n'}>
+CONFIG_TUNE_ZEC12                               policy<{'s390x': 'n'}>
+CONFIG_TUN_VNET_CROSS_LE                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_TURRIS_MOX_RWTM                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_TWL4030_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TWL4030_MADC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TWL4030_POWER                            policy<{'armhf': 'y'}>
+CONFIG_TWL4030_USB                              policy<{'armhf': 'm'}>
+CONFIG_TWL4030_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TWL6030_GPADC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TWL6030_USB                              policy<{'armhf': 'm'}>
+CONFIG_TWL6040_CORE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_TYPEC                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_DP_ALTMODE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_FUSB302                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_MUX_PI3USB30532                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_NVIDIA_ALTMODE                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_RT1711H                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_TCPCI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_TCPM                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_TPS6598X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPEC_UCSI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_TYPHOON                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UACCESS_WITH_MEMCPY                      policy<{'armhf': 'n'}>
+CONFIG_UBIFS_ATIME_SUPPORT                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_UBIFS_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UBIFS_FS_ADVANCED_COMPR                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_UBIFS_FS_AUTHENTICATION                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UBIFS_FS_LZO                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UBIFS_FS_SECURITY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UBIFS_FS_XATTR                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UBIFS_FS_ZLIB                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UBIFS_FS_ZSTD                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UBSAN                                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_UBSAN_ALIGNMENT                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UBUNTU_ODM_DRIVERS                       policy<{'amd64': 'y'}>
+CONFIG_UCB1400_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UCLAMP_BUCKETS_COUNT                     policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'i386': '5', 'ppc64el': '5'}>
+CONFIG_UCLAMP_TASK                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UCLAMP_TASK_GROUP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UCS2_STRING                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y'}>
+CONFIG_UCSI_ACPI                                policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_UCSI_CCG                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UDBG_RTAS_CONSOLE                        policy<{'ppc64el': 'n'}>
+CONFIG_UDF_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_UDMABUF                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UEFI_CPER                                policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_UEFI_CPER_ARM                            policy<{'arm64': 'y'}>
+CONFIG_UEFI_CPER_X86                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_UEVENT_HELPER                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UEVENT_HELPER_PATH                       policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_UFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_UFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UFS_FS_WRITE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_UHID                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UID16                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 's390x': 'y'}>
+CONFIG_UIO                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_UIO_AEC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_CIF                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_DMEM_GENIRQ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_FSL_ELBC_GPCM                        policy<{'ppc64el': 'm'}>
+CONFIG_UIO_FSL_ELBC_GPCM_NETX5152               policy<{'ppc64el': 'n'}>
+CONFIG_UIO_HV_GENERIC                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_UIO_MF624                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_NETX                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_PCI_GENERIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_PDRV_GENIRQ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_PRUSS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_UIO_SERCOS3                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ULI526X                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ULTRA                                    policy<{'i386': 'm'}>
+CONFIG_ULTRIX_PARTITION                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_UNCOMPRESS_INCLUDE                       policy<{'armhf': '"debug/uncompress.h"'}>
+CONFIG_UNICODE                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNICODE_NORMALIZATION_SELFTEST           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_UNINLINE_SPIN_UNLOCK                     policy<{'amd64-lowlatency': 'y', 'i386-lowlatency': 'y'}>
+CONFIG_UNIPHIER_EFUSE                           policy<{'armhf': 'm'}>
+CONFIG_UNIPHIER_MDMAC                           policy<{'armhf': 'm'}>
+CONFIG_UNIPHIER_SYSTEM_BUS                      policy<{'armhf': 'y'}>
+CONFIG_UNIPHIER_THERMAL                         policy<{'armhf': 'm'}>
+CONFIG_UNIPHIER_WATCHDOG                        policy<{'armhf': 'm'}>
+CONFIG_UNISYSSPAR                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_UNISYS_VISORBUS                          policy<{'amd64': 'm'}>
+CONFIG_UNISYS_VISORHBA                          policy<{'amd64': 'm'}>
+CONFIG_UNISYS_VISORINPUT                        policy<{'amd64': 'm'}>
+CONFIG_UNISYS_VISORNIC                          policy<{'amd64': 'm'}>
+CONFIG_UNIX                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNIX98_PTYS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNIXWARE_DISKLABEL                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_UNIX_DIAG                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_UNIX_SCM                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNMAP_KERNEL_AT_EL0                      policy<{'arm64': 'y'}>
+CONFIG_UNUSED_SYMBOLS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UNWINDER_GUESS                           policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_UNWINDER_ORC                             policy<{'amd64': 'n'}>
+CONFIG_UPROBES                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UPROBE_EVENTS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_US5182D                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USBIP_CORE                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USBIP_DEBUG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USBIP_HOST                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USBIP_VHCI_HCD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USBIP_VHCI_HC_PORTS                      policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_USBIP_VHCI_NR_HCS                        policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'i386': '1', 'ppc64el': '1'}>
+CONFIG_USBIP_VUDC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USBPCWATCHDOG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ACM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ADUTUX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_AIRSPY                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ALI_M5632                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_AMD5536UDC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_AN2720                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ANNOUNCE_NEW_DEVICES                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_APPLEDISPLAY                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ARCH_HAS_HCD                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ARMLINUX                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ASPEED_VHUB                          policy<{'armhf': 'm'}>
+CONFIG_USB_ATM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_AUDIO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_AUTOSUSPEND_DELAY                    policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2'}>
+CONFIG_USB_BDC_UDC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_BELKIN                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_C67X00_HCD                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CATC                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CDC_COMPOSITE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CDC_PHONET                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CDNS3                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CDNS3_GADGET                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CDNS3_HOST                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CDNS3_PCI_WRAP                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_USB_CHAOSKEY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CHIPIDEA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CHIPIDEA_HOST                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CHIPIDEA_OF                          policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CHIPIDEA_PCI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CHIPIDEA_UDC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_COMMON                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CONFIGFS_ACM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_ECM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_ECM_SUBSET                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_EEM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_FS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_HID                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_LB_SS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_MIDI                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_PRINTER                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_TCM                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_UAC1                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_UAC2                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_F_UVC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_MASS_STORAGE                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_NCM                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_OBEX                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_PHONET                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_RNDIS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONFIGFS_SERIAL                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_CONN_GPIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CXACRU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CYPRESS_CY7C63                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_CYTHERM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_DEFAULT_PERSIST                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_DSBR                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_DUMMY_HCD                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_DWC2                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_DWC2_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_DWC2_DUAL_ROLE                       policy<{'armhf': 'n'}>
+CONFIG_USB_DWC2_HOST                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_DWC2_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_DWC2_PERIPHERAL                      policy<{'armhf': 'n'}>
+CONFIG_USB_DWC2_TRACK_MISSED_SOFS               policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_DWC3                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_DWC3_DUAL_ROLE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_DWC3_EXYNOS                          policy<{'armhf': 'm'}>
+CONFIG_USB_DWC3_GADGET                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_DWC3_HAPS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_DWC3_HOST                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_DWC3_KEYSTONE                        policy<{'arm64': 'm'}>
+CONFIG_USB_DWC3_MESON_G12A                      policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_DWC3_OF_SIMPLE                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_DWC3_OMAP                            policy<{'armhf': 'm'}>
+CONFIG_USB_DWC3_PCI                             policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_USB_DWC3_QCOM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_DWC3_ULPI                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_DYNAMIC_MINORS                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_EG20T                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_EHCI_EXYNOS                          policy<{'armhf': 'y'}>
+CONFIG_USB_EHCI_FSL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_EHCI_HCD_NPCM7XX                     policy<{'armhf': 'm'}>
+CONFIG_USB_EHCI_HCD_OMAP                        policy<{'armhf': 'm'}>
+CONFIG_USB_EHCI_HCD_ORION                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_EHCI_HCD_PPC_OF                      policy<{'ppc64el': 'y'}>
+CONFIG_USB_EHCI_MXC                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_USB_EHCI_PCI                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_EHCI_ROOT_HUB_TT                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_EHCI_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_USB_EHCI_TT_NEWSCHED                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_EHSET_TEST_FIXTURE                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_EMI26                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_EMI62                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_EMXX                                 policy<{'arm64': 'm', 'armhf': 'y'}>
+CONFIG_USB_EPSON2888                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ETH                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ETH_EEM                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ETH_RNDIS                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_EZUSB_FX2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_FOTG210_HCD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_FOTG210_UDC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_FSL_USB2                             policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_USB_FTDI_ELAN                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_FUNCTIONFS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_FUNCTIONFS_ETH                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_FUNCTIONFS_GENERIC                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_FUNCTIONFS_RNDIS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_FUSB300                              policy<{'armhf-generic': 'm'}>
+CONFIG_USB_F_ACM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_ECM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_EEM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_FS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_HID                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_MASS_STORAGE                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_MIDI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_NCM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_OBEX                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_PHONET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_PRINTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_RNDIS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_SERIAL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_SS_LB                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_SUBSET                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_TCM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_UAC1                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_UAC1_LEGACY                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_UAC2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_F_UVC                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GADGET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GADGETFS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GADGET_DEBUG                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_GADGET_DEBUG_FILES                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_GADGET_DEBUG_FS                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS           policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2'}>
+CONFIG_USB_GADGET_TARGET                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GADGET_VBUS_DRAW                     policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'i386': '2', 'ppc64el': '2'}>
+CONFIG_USB_GADGET_XILINX                        policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GL860                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GOKU                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GPIO_VBUS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GR_UDC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_BENQ                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_CONEX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_CPIA1                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_DTCS033                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_ETOMS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_FINEPIX                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_JEILINJ                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_JL2005BCD                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_KINECT                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_KONICA                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_MARS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_MR97310A                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_NW80X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_OV519                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_OV534                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_OV534_9                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_PAC207                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_PAC7302                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_PAC7311                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SE401                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SN9C2028                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SN9C20X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SONIXB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SONIXJ                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA1528                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA500                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA501                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA505                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA506                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA508                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SPCA561                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SQ905                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SQ905C                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SQ930X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_STK014                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_STK1135                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_STV0680                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_SUNPLUS                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_T613                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_TOPRO                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_TOUPTEK                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_TV8532                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_VC032X                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_VICAM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_XIRLINK_CIT                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_GSPCA_ZC3XX                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_ACM_MS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_DBGP                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_DBGP_PRINTK                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_G_DBGP_SERIAL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_G_HID                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_MULTI                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'm', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_G_MULTI_CDC                          policy<{'armhf': 'y'}>
+CONFIG_USB_G_MULTI_RNDIS                        policy<{'armhf': 'y'}>
+CONFIG_USB_G_NCM                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_NOKIA                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_PRINTER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_SERIAL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_G_WEBCAM                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HACKRF                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HCD_TEST_MODE                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_HID                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HIDDEV                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_HSIC_USB3503                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HSIC_USB4604                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HSO                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HUB_USB251XB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_HWA_HCD                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_IDMOUSE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_IMX21_HCD                            policy<{'armhf-generic': 'm'}>
+CONFIG_USB_IOWARRIOR                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_IPHETH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ISIGHTFW                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ISP116X_HCD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ISP1301                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ISP1760                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ISP1760_DUAL_ROLE                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ISP1760_GADGET_ROLE                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_ISP1760_HCD                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_ISP1760_HOST_ROLE                    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_ISP1761_UDC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_KAWETH                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_KBD                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_KC2190                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_KEENE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LAN78XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LCD                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LD                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LEDS_TRIGGER_USBPORT                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LED_TRIG                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_LEGOTOWER                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LIBCOMPOSITE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_LINK_LAYER_TEST                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_M5602                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MA901                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MASS_STORAGE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MAX3421_HCD                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MDC800                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MICROTEK                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MIDI_GADGET                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MON                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MOUSE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MR800                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MSI2500                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MTU3                                 policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_MTU3_DEBUG                           policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_MTU3_DUAL_ROLE                       policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_MTU3_GADGET                          policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_MTU3_HOST                            policy<{'arm64': 'n', 'armhf': 'n'}>
+CONFIG_USB_MUSB_AM335X_CHILD                    policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_AM35X                           policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_DSPS                            policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_DUAL_ROLE                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_MUSB_GADGET                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_MUSB_HOST                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_MUSB_OMAP2PLUS                       policy<{'armhf': 'm'}>
+CONFIG_USB_MUSB_SUNXI                           policy<{'arm64': 'm'}>
+CONFIG_USB_MUSB_TUSB6010                        policy<{'armhf': 'm'}>
+CONFIG_USB_MV_U3D                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MV_UDC                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_MXS_PHY                              policy<{'arm64': 'y', 'armhf-generic': 'y'}>
+CONFIG_USB_NET2272                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET2272_DMA                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_NET2280                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_AQC111                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_AX88179_178A                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_AX8817X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CDCETHER                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CDC_EEM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CDC_MBIM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CDC_NCM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CDC_SUBSET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CDC_SUBSET_ENABLE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CH9200                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_CX82310_ETH                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_DM9601                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_DRIVERS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_GL620A                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_HUAWEI_CDC_NCM                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_INT51X1                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_KALMIA                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_MCS7830                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_NET1080                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_PLUSB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_QMI_WWAN                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_RNDIS_HOST                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_RNDIS_WLAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_SMSC75XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_SMSC95XX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_SR9700                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_SR9800                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_NET_ZAURUS                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_OHCI_EXYNOS                          policy<{'armhf': 'y'}>
+CONFIG_USB_OHCI_HCD_OMAP3                       policy<{'armhf-generic': 'm'}>
+CONFIG_USB_OHCI_HCD_PCI                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_OHCI_HCD_PLATFORM                    policy<{'amd64': 'y', 'arm64': 'm', 'armhf-generic': 'm', 'armhf-generic-lpae': 'n', 'i386': 'y', 'ppc64el': 'm'}>
+CONFIG_USB_OHCI_HCD_PPC_OF_BE                   policy<{'ppc64el': 'n'}>
+CONFIG_USB_OHCI_HCD_PPC_OF_LE                   policy<{'ppc64el': 'n'}>
+CONFIG_USB_OHCI_LITTLE_ENDIAN                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USB_OXU210HP_HCD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_PCI                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_PEGASUS                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_PHY                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_PRINTER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_PULSE8_CEC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_PWC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_PWC_DEBUG                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_PWC_INPUT_EVDEV                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_PXA27X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_R8A66597                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_R8A66597_HCD                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_RAINSHADOW_CEC                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_RAREMONO                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_RENESAS_USB3                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_RENESAS_USBHS                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_RENESAS_USBHS_HCD                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_RENESAS_USBHS_UDC                    policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_ROLES_INTEL_XHCI                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_USB_ROLE_SWITCH                          policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_RTL8150                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_RTL8152                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_S2255                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_AIRCABLE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_ARK3116                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_BELKIN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_CH341                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_CP210X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_CYBERJACK                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_CYPRESS_M8                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_EDGEPORT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_EDGEPORT_TI                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_EMPEG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_F81232                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_F8153X                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_FTDI_SIO                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_GARMIN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_GENERIC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_SERIAL_IPAQ                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_IPW                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_IR                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_IUU                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_KEYSPAN                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_KEYSPAN_PDA                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_KLSI                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_KOBIL_SCT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_MCT_U232                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_METRO                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_MOS7715_PARPORT               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_SERIAL_MOS7720                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_MOS7840                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_MXUPORT                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_NAVMAN                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_OMNINET                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_OPTICON                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_OPTION                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_OTI6858                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_PL2303                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_QCAUX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_QT2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_QUALCOMM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_SAFE                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_SAFE_PADDED                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_SERIAL_SIERRAWIRELESS                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_SIMPLE                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_SPCP8X5                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_SSU100                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_SYMBOL                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_TI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_UPD78F0730                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_VISOR                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_WHITEHEAT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_WISHBONE                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_WWAN                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_XIRCOM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SERIAL_XSENS_MT                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SEVSEG                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SI470X                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SI4713                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SIERRA_NET                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SISUSBVGA                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SL811_CS                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_USB_SL811_HCD                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SL811_HCD_ISO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_SNP_CORE                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SNP_UDC_PLAT                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SPEEDTOUCH                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STKWEBCAM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_ALAUDA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_CYPRESS_ATACB                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_DATAFAB                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_DEBUG                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_STORAGE_ENE_UB6250                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_FREECOM                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_ISD200                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_JUMPSHOT                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_KARMA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_ONETOUCH                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_REALTEK                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_SDDR09                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_SDDR55                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STORAGE_USBAT                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_STV06XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_SUPPORT                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_USB_TEGRA_PHY                            policy<{'armhf-generic': 'm'}>
+CONFIG_USB_TEST                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_TMC                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_TRANCEVIBRATOR                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_U132_HCD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_UAS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_UEAGLEATM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_UHCI_ASPEED                          policy<{'armhf': 'y'}>
+CONFIG_USB_UHCI_PLATFORM                        policy<{'armhf': 'y'}>
+CONFIG_USB_UHCI_SUPPORT_NON_PCI_HC              policy<{'armhf': 'y'}>
+CONFIG_USB_ULPI                                 policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_ULPI_BUS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ULPI_VIEWPORT                        policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_USB_USBNET                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_USS720                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_U_AUDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_U_ETHER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_U_SERIAL                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_VIDEO_CLASS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_VL600                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_WDM                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_WHCI_HCD                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_WUSB                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_WUSB_CBAF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_WUSB_CBAF_DEBUG                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_USB_XHCI_HISTB                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_MTK                             policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_MVEBU                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_PCI                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_USB_XHCI_PLATFORM                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_XHCI_RCAR                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_USB_XHCI_TEGRA                           policy<{'armhf-generic': 'm'}>
+CONFIG_USB_XUSBATM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_YUREX                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ZD1201                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ZERO                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USB_ZR364XX                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USELIB                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USERFAULTFD                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USERIO                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_USER_NS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_USER_RETURN_NOTIFIER                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_USER_STACKTRACE_SUPPORT                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_USE_OF                                   policy<{'armhf': 'y'}>
+CONFIG_USE_PERCPU_NUMA_NODE_ID                  policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}>
+CONFIG_UTS_NS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_UV_MMTIMER                               policy<{'amd64': 'm'}>
+CONFIG_UWB                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UWB_HWA                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UWB_I1480U                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_UWB_WHCI                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_U_SERIAL_CONSOLE                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_V4L2_FLASH_LED_CLASS                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_V4L2_FWNODE                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_V4L2_MEM2MEM_DEV                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_V4L_MEM2MEM_DRIVERS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_V4L_PLATFORM_DRIVERS                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_V4L_RADIO_ISA_DRIVERS                    policy<{'i386': 'y'}>
+CONFIG_V4L_TEST_DRIVERS                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VALIDATE_FS_PARSER                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VCNL4000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VCNL4035                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VDSO                                     policy<{'armhf': 'y'}>
+CONFIG_VEML6070                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VERSION_SIGNATURE                        policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'i386': '""', 'ppc64el': '""', 's390x': '""'}>
+CONFIG_VETH                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VEXPRESS_CONFIG                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_VEXPRESS_SYSCFG                          policy<{'arm64': 'y', 'armhf': 'y'}>
+CONFIG_VF610_ADC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VF610_DAC                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VFIO_AMBA                                policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_AP                                  policy<{'s390x': 'm'}>
+CONFIG_VFIO_CCW                                 policy<{'s390x': 'm'}>
+CONFIG_VFIO_IOMMU_SPAPR_TCE                     policy<{'ppc64el': 'y'}>
+CONFIG_VFIO_IOMMU_TYPE1                         policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 's390x': 'm'}>
+CONFIG_VFIO_MDEV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VFIO_MDEV_DEVICE                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VFIO_NOIOMMU                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VFIO_PCI_IGD                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VFIO_PCI_INTX                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VFIO_PCI_MMAP                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VFIO_PCI_NVLINK2                         policy<{'ppc64el': 'y'}>
+CONFIG_VFIO_PCI_VGA                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VFIO_PLATFORM                            policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_PLATFORM_AMDXGBE_RESET              policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_PLATFORM_BCMFLEXRM_RESET            policy<{'arm64': 'm'}>
+CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VFIO_SPAPR_EEH                           policy<{'ppc64el': 'y'}>
+CONFIG_VFIO_VIRQFD                              policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_VFP                                      policy<{'armhf': 'y'}>
+CONFIG_VFPv3                                    policy<{'armhf': 'y'}>
+CONFIG_VF_USE_ARM_GLOBAL_TIMER                  policy<{'armhf-generic': 'y'}>
+CONFIG_VF_USE_PIT_TIMER                         policy<{'armhf-generic': 'n'}>
+CONFIG_VGASTATE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VGA_ARB                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VGA_ARB_MAX_GPUS                         policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'i386': '16', 'ppc64el': '16'}>
+CONFIG_VGA_CONSOLE                              policy<{'amd64': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VGA_SWITCHEROO                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VHOST                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_VHOST_NET                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VHOST_RING                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VHOST_SCSI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VHOST_VSOCK                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIA_RHINE                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIA_RHINE_MMIO                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIA_VELOCITY                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIA_WDT                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEOBUF2_CORE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF2_DMA_CONTIG                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF2_DMA_SG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF2_DVB                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF2_MEMOPS                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF2_V4L2                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF2_VMALLOC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF_DMA_SG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF_GEN                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOBUF_VMALLOC                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEOMODE_HELPERS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_AD5820                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_AD9389B                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADP1653                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7170                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7175                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7180                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7183                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7343                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7393                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV748X                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7511                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_ADV7511_CEC                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VIDEO_ADV7604                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7604_CEC                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_ADV7842                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ADV7842_CEC                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_ADV_DEBUG                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_VIDEO_AK7375                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_AK881X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ALLEGRO_DVT                        policy<{'arm64': 'm'}>
+CONFIG_VIDEO_APTINA_PLL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ASPEED                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_AU0828                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_AU0828_RC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_AU0828_V4L2                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_BCM2835                            policy<{'arm64': 'm'}>
+CONFIG_VIDEO_BT819                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_BT848                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_BT856                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_BT866                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CADENCE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_CADENCE_CSI2RX                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CADENCE_CSI2TX                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CAFE_CCIC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_COBALT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_CODA                               policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_VIDEO_CPIA2                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CROS_EC_CEC                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_CS3308                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CS5345                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CS53L32A                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX18                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX18_ALSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX231XX                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX231XX_ALSA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX231XX_DVB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX231XX_RC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_CX2341X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX23885                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX25821                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX25821_ALSA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX25840                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX88                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX88_ALSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX88_BLACKBIRD                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX88_DVB                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX88_ENABLE_VP3054                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_CX88_MPEG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_CX88_VP3054                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_DEV                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_DT3155                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_DW9714                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_DW9807_VCM                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_EM28XX                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_EM28XX_ALSA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_EM28XX_DVB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_EM28XX_RC                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_EM28XX_V4L2                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ET8EK8                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_FB_IVTV                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_FB_IVTV_FORCE_PAT                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VIDEO_FIXED_MINOR_RANGES                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_VIDEO_GO7007                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_GO7007_LOADER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_GO7007_USB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_GS1662                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_HDPVR                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_HEXIUM_GEMINI                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_HEXIUM_ORION                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_I2C                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IMX214                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IMX258                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IMX274                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IMX319                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IMX355                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IMX7_CSI                           policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_IMX_CSI                            policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_IMX_MEDIA                          policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_IMX_PXP                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_VIDEO_IMX_VDOA                           policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_IPU3_CIO2                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_IPU3_IMGU                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_IR_I2C                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IVTV                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IVTV_ALSA                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_VIDEO_KS0127                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_LM3560                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_LM3646                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_M52790                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_M5MOLS                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MEDIATEK_VPU                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MESON_AO_CEC                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MESON_G12A_AO_CEC                  policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MESON_VDEC                         policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_MEYE                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_ML86V7667                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MSP3400                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9M001                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9M032                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9M111                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9P031                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9T001                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9T112                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9V011                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9V032                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MT9V111                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MUX                                policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_MXB                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_NOON010PC30                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OMAP2_VOUT                         policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_OMAP2_VOUT_VRFB                    policy<{'armhf-generic': 'y'}>
+CONFIG_VIDEO_OMAP3                              policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_OMAP3_DEBUG                        policy<{'armhf-generic': 'n'}>
+CONFIG_VIDEO_OMAP4                              policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_OV13858                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV2640                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV2659                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV2680                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV2685                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV5640                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV5645                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV5647                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV5670                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV5675                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV5695                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV6650                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV7251                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV7640                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV7670                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV772X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV7740                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV8856                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV9640                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_OV9650                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_PCI_SKELETON                       policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_VIDEO_PVRUSB2                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_PVRUSB2_DEBUGIFC                   policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_VIDEO_PVRUSB2_DVB                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_PVRUSB2_SYSFS                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_QCOM_CAMSS                         policy<{'arm64': 'm'}>
+CONFIG_VIDEO_QCOM_VENUS                         policy<{'arm64': 'm'}>
+CONFIG_VIDEO_RCAR_CSI2                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RCAR_DRIF                          policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RCAR_VIN                           policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_CEU                        policy<{'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_FCP                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_FDP1                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_JPU                        policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RENESAS_VSP1                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_RJ54N1                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ROCKCHIP_RGA                       policy<{'arm64': 'm', 'armhf': 'm'}>
+CONFIG_VIDEO_S5C73M3                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_S5K4ECGX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_S5K5BAF                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_S5K6A3                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_S5K6AA                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA6588                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA6752HS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7110                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA711X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7127                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7134                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7134_ALSA                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7134_DVB                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7134_GO7007                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7134_RC                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_SAA7146                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7146_VV                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7164                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA717X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAA7185                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS                 policy<{'armhf': 'n'}>
+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC                 policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_CEC                    policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_G2D                    policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_JPEG                   policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SAMSUNG_S5P_MFC                    policy<{'armhf': 'm'}>
+CONFIG_VIDEO_SECO_CEC                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_SECO_RC                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VIDEO_SH_VEU                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SMIAPP                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_SMIAPP_PLL                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_SOLO6X10                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SONY_BTF_MPX                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SR030PC30                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_STK1160                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_STK1160_COMMON                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_ST_MIPID02                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_SUN4I_CSI                          policy<{'arm64': 'm'}>
+CONFIG_VIDEO_SUN6I_CSI                          policy<{'arm64': 'm'}>
+CONFIG_VIDEO_SUNXI                              policy<{'arm64': 'y'}>
+CONFIG_VIDEO_TC358743                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TC358743_CEC                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_TDA1997X                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TDA7432                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TDA9840                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TEA6415C                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TEA6420                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TEGRA_HDMI_CEC                     policy<{'armhf-generic': 'm'}>
+CONFIG_VIDEO_THS7303                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_THS8200                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TI_CAL                             policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TI_CSC                             policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TI_SC                              policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TI_VPDMA                           policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TI_VPE                             policy<{'armhf': 'm'}>
+CONFIG_VIDEO_TI_VPE_DEBUG                       policy<{'armhf': 'n'}>
+CONFIG_VIDEO_TLV320AIC23B                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TM6000                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TM6000_ALSA                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TM6000_DVB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TUNER                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TVAUDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TVEEPROM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TVP514X                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TVP5150                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TVP7002                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW2804                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW5864                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW68                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW686X                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW9903                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW9906                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_TW9910                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_UDA1342                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_UPD64031A                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_UPD64083                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_USBTV                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_USBVISION                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_V4L2                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_V4L2_I2C                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_V4L2_SUBDEV_API                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_V4L2_TPG                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VIA_CAMERA                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VIDEO_VICODEC                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VIM2M                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VIVID                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VIVID_CEC                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIDEO_VIVID_MAX_DEVS                     policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'i386': '64', 'ppc64el': '64'}>
+CONFIG_VIDEO_VP27SMPX                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VPX3220                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_VS6624                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_WM8739                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_WM8775                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_XILINX                             policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_XILINX_TPG                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIDEO_XILINX_VTC                         policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_VIPERBOARD_ADC                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIRTIO                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_BALLOON                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_BLK_SCSI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_CONSOLE                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_FS                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_INPUT                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_IOMMU                             policy<{'arm64': 'y'}>
+CONFIG_VIRTIO_MENU                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VIRTIO_PCI                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_PCI_LEGACY                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRTIO_PMEM                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VIRTIO_VSOCKETS                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTIO_VSOCKETS_COMMON                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VIRTUALIZATION                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRT_CPU_ACCOUNTING                      policy<{'s390x': 'y'}>
+CONFIG_VIRT_CPU_ACCOUNTING_GEN                  policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}>
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE               policy<{'ppc64el': 'n', 's390x': 'y'}>
+CONFIG_VIRT_DRIVERS                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VIRT_TO_BUS                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_VIRT_WIFI                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VITESSE_PHY                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VL53L0X_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VL6180                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VLAN_8021Q                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VLAN_8021Q_GVRP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VLAN_8021Q_MVRP                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VM86                                     policy<{'i386': 'y'}>
+CONFIG_VMAP_STACK                               policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}>
+CONFIG_VMCP                                     policy<{'s390x': 'y'}>
+CONFIG_VMCP_CMA_SIZE                            policy<{'s390x': '4'}>
+CONFIG_VMD                                      policy<{'amd64': 'm'}>
+CONFIG_VME_BUS                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_VME_CA91CX42                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VME_FAKE                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VME_TSI148                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VME_USER                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VMIVME_7805                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VMLOGRDR                                 policy<{'s390x': 'm'}>
+CONFIG_VMSPLIT_1G                               policy<{'armhf': 'n', 'i386': 'n'}>
+CONFIG_VMSPLIT_2G                               policy<{'armhf': 'n', 'i386': 'n'}>
+CONFIG_VMSPLIT_3G                               policy<{'armhf': 'y', 'i386': 'y'}>
+CONFIG_VMSPLIT_3G_OPT                           policy<{'armhf-generic': 'n'}>
+CONFIG_VMWARE_BALLOON                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VMWARE_PVSCSI                            policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VMWARE_VMCI                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VMWARE_VMCI_VSOCKETS                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_VMXNET3                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 's390x': 'n'}>
+CONFIG_VM_EVENT_COUNTERS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VOP                                      policy<{'amd64': 'm'}>
+CONFIG_VOP_BUS                                  policy<{'amd64': 'm', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_VORTEX                                   policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VSOCKETS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VSOCKETS_DIAG                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VSOCKMON                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VSX                                      policy<{'ppc64el': 'y'}>
+CONFIG_VT                                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VT6655                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VT6656                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_VT_CONSOLE                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VT_CONSOLE_SLEEP                         policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_VT_HW_CONSOLE_BINDING                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_VXFS_FS                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_VXGE                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_VXGE_DEBUG_TRACE_ALL                     policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_VXLAN                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_VZ89X                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1                                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_W1_CON                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_W1_MASTER_DS1WM                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_MASTER_DS2482                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_MASTER_DS2490                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_MASTER_GPIO                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_MASTER_MATROX                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_MASTER_MXC                            policy<{'arm64': 'm', 'armhf-generic': 'm'}>
+CONFIG_W1_MASTER_SGI                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2405                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2406                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2408                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2408_READBACK                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_W1_SLAVE_DS2413                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2423                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2431                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2433                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2433_CRC                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_W1_SLAVE_DS2438                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS250X                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2780                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2781                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS2805                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS28E04                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_DS28E17                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_SMEM                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W1_SLAVE_THERM                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_W83627HF_WDT                             policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_W83877F_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_W83977F_WDT                              policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WAFER_WDT                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WAN                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_WANT_DEV_COREDUMP                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WANXL                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WARN_ALL_UNSEEDED_RANDOM                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WARN_DYNAMIC_STACK                       policy<{'s390x': 'n'}>
+CONFIG_WATCHDOG                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_CORE                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_NOWAYOUT                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WATCHDOG_OPEN_TIMEOUT                    policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'i386': '0', 'ppc64el': '0', 's390x': '0'}>
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC    policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WATCHDOG_PRETIMEOUT_GOV                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_WATCHDOG_RTAS                            policy<{'ppc64el': 'm'}>
+CONFIG_WATCHDOG_SYSFS                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_WCN36XX                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WCN36XX_DEBUGFS                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_WCN36XX_SNAPDRAGON_HACKS                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_WD80x3                                   policy<{'i386': 'm'}>
+CONFIG_WDAT_WDT                                 policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_WDT                                      policy<{'i386': 'm'}>
+CONFIG_WDTPCI                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_WEXT_CORE                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WEXT_PRIV                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WEXT_PROC                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WEXT_SPY                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIL6210                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WIL6210_DEBUGFS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIL6210_ISR_COR                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIL6210_TRACING                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WILC1000                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WILC1000_HW_OOB_INTR                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WILC1000_SDIO                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WILC1000_SPI                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WILCO_EC                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILCO_EC_DEBUGFS                         policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILCO_EC_EVENTS                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILCO_EC_TELEMETRY                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WILINK_PLATFORM_DATA                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIMAX                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_WIMAX_DEBUG_LEVEL                        policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_WIMAX_I2400M                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL                 policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'i386': '8', 'ppc64el': '8'}>
+CONFIG_WIMAX_I2400M_USB                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WINBOND_840                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WINDFARM                                 policy<{'ppc64el': 'm'}>
+CONFIG_WIRELESS                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIRELESS_EXT                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIRELESS_WDS                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_WIZNET_BUS_ANY                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WIZNET_BUS_DIRECT                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_WIZNET_BUS_INDIRECT                      policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_WIZNET_W5100                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WIZNET_W5100_SPI                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WIZNET_W5300                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WKUP_M3_IPC                              policy<{'armhf-generic': 'n'}>
+CONFIG_WKUP_M3_RPROC                            policy<{'armhf-generic': 'm'}>
+CONFIG_WL1251                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WL1251_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WL1251_SPI                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WL12XX                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WL18XX                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WLAN                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_ADMTEK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_ATH                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_ATMEL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_BROADCOM                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_CISCO                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_INTEL                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_INTERSIL                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_MARVELL                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_MEDIATEK                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_QUANTENNA                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_RALINK                       policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_REALTEK                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_RSI                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_ST                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_TI                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLAN_VENDOR_ZYDAS                        policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WLCORE                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WLCORE_SDIO                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WLCORE_SPI                               policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_WM831X_BACKUP                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WM831X_POWER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WM831X_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WM8350_POWER                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WM8350_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_WMI_BMOF                                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_WQ_WATCHDOG                              policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_WW_MUTEX_SELFTEST                        policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_X25                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_X25_ASY                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_X86                                      policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_16BIT                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_32                                   policy<{'i386': 'y'}>
+CONFIG_X86_32_IRIS                              policy<{'i386': 'm'}>
+CONFIG_X86_32_NON_STANDARD                      policy<{'i386': 'n'}>
+CONFIG_X86_32_SMP                               policy<{'i386': 'y'}>
+CONFIG_X86_5LEVEL                               policy<{'amd64': 'n'}>
+CONFIG_X86_64                                   policy<{'amd64': 'y'}>
+CONFIG_X86_64_ACPI_NUMA                         policy<{'amd64': 'y'}>
+CONFIG_X86_64_SMP                               policy<{'amd64': 'y'}>
+CONFIG_X86_ACPI_CPUFREQ_CPB                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_AMD_FREQ_SENSITIVITY                 policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_AMD_PLATFORM_DEVICE                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_ANCIENT_MCE                          policy<{'i386': 'n'}>
+CONFIG_X86_APM_BOOT                             policy<{'i386': 'y'}>
+CONFIG_X86_BIGSMP                               policy<{'i386': 'n'}>
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_CHECK_BIOS_CORRUPTION                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_CMOV                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_CMPXCHG64                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_CPA_STATISTICS                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_CPUID                                policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_CPU_RESCTRL                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_DEBUGCTLMSR                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_DEBUG_FPU                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_DECODER_SELFTEST                     policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_DEV_DMA_OPS                          policy<{'amd64': 'y'}>
+CONFIG_X86_DIRECT_GBPAGES                       policy<{'amd64': 'y'}>
+CONFIG_X86_ESPFIX32                             policy<{'i386': 'y'}>
+CONFIG_X86_ESPFIX64                             policy<{'amd64': 'y'}>
+CONFIG_X86_EXTENDED_PLATFORM                    policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_E_POWERSAVER                         policy<{'i386': 'n'}>
+CONFIG_X86_FEATURE_NAMES                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_GENERIC                              policy<{'i386': 'y'}>
+CONFIG_X86_GOLDFISH                             policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_GX_SUSPMOD                           policy<{'i386': 'm'}>
+CONFIG_X86_HV_CALLBACK_VECTOR                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_LPSS                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS         policy<{'amd64': 'y'}>
+CONFIG_X86_INTEL_MID                            policy<{'amd64': 'n', 'i386': 'y'}>
+CONFIG_X86_INTEL_MPX                            policy<{'amd64': 'y'}>
+CONFIG_X86_INTEL_PSTATE                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_QUARK                          policy<{'i386': 'n'}>
+CONFIG_X86_INTEL_TSX_MODE_AUTO                  policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_INTEL_TSX_MODE_OFF                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_TSX_MODE_ON                    policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_INTEL_UMIP                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_INTEL_USERCOPY                       policy<{'i386': 'y'}>
+CONFIG_X86_INTERNODE_CACHE_SHIFT                policy<{'amd64': '6', 'i386': '6'}>
+CONFIG_X86_IO_APIC                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_L1_CACHE_SHIFT                       policy<{'amd64': '6', 'i386': '6'}>
+CONFIG_X86_LOCAL_APIC                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_LONGHAUL                             policy<{'i386': 'm'}>
+CONFIG_X86_LONGRUN                              policy<{'i386': 'm'}>
+CONFIG_X86_MCE                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCELOG_LEGACY                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCE_AMD                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCE_INJECT                           policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_MCE_INTEL                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MCE_THRESHOLD                        policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MINIMUM_CPU_FAMILY                   policy<{'amd64': '64', 'i386': '6'}>
+CONFIG_X86_MPPARSE                              policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_MSR                                  policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_NEED_RELOCS                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_NUMACHIP                             policy<{'amd64': 'y'}>
+CONFIG_X86_P4_CLOCKMOD                          policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_PAE                                  policy<{'i386': 'y'}>
+CONFIG_X86_PAT                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_PKG_TEMP_THERMAL                     policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_X86_PLATFORM_DEVICES                     policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_PMEM_LEGACY                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_PMEM_LEGACY_DEVICE                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_PM_TIMER                             policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_POWERNOW_K6                          policy<{'i386': 'm'}>
+CONFIG_X86_POWERNOW_K7                          policy<{'i386': 'm'}>
+CONFIG_X86_POWERNOW_K7_ACPI                     policy<{'i386': 'y'}>
+CONFIG_X86_PTDUMP                               policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_PTDUMP_CORE                          policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_RDC321X                              policy<{'i386': 'n'}>
+CONFIG_X86_REBOOTFIXUPS                         policy<{'i386': 'y'}>
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_RESERVE_LOW                          policy<{'amd64': '64', 'i386': '64'}>
+CONFIG_X86_SFI_CPUFREQ                          policy<{'i386': 'm'}>
+CONFIG_X86_SMAP                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE             policy<{'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_LIB                        policy<{'amd64': 'm', 'i386': 'y'}>
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK          policy<{'i386': 'y'}>
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE              policy<{'amd64': 'y'}>
+CONFIG_X86_SYSFB                                policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_THERMAL_VECTOR                       policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_TSC                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_X86_USE_PPRO_CHECKSUM                    policy<{'i386': 'y'}>
+CONFIG_X86_VERBOSE_BOOTUP                       policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_X86_VSMP                                 policy<{'amd64': 'n'}>
+CONFIG_X86_VSYSCALL_EMULATION                   policy<{'amd64': 'y'}>
+CONFIG_X86_X2APIC                               policy<{'amd64': 'y'}>
+CONFIG_X86_X32                                  policy<{'amd64': 'y'}>
+CONFIG_XARRAY_MULTI                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XDP_SOCKETS                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XDP_SOCKETS_DIAG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XEN                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'i386': 'y'}>
+CONFIG_XENFS                                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_ACPI                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_AUTO_XLATE                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BACKEND                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BALLOON                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG               policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT         policy<{'amd64': '512', 'i386': '4'}>
+CONFIG_XEN_BLKDEV_BACKEND                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_COMPAT_XENFS                         policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_DEBUG_FS                             policy<{'amd64': 'n', 'i386': 'n'}>
+CONFIG_XEN_DEV_EVTCHN                           policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_DOM0                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_EFI                                  policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_XEN_FBDEV_FRONTEND                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_FRONT_PGDIR_SHBUF                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_GNTDEV                               policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_GNTDEV_DMABUF                        policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_GRANT_DEV_ALLOC                      policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_GRANT_DMA_ALLOC                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_HAVE_PVMMU                           policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_HAVE_VPMU                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_MCE_LOG                              policy<{'amd64': 'y'}>
+CONFIG_XEN_NETDEV_BACKEND                       policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_PCIDEV_BACKEND                       policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_XEN_PCIDEV_FRONTEND                      policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_XEN_PRIVCMD                              policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_PV                                   policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PVCALLS_BACKEND                      policy<{'amd64': 'n', 'arm64': 'n', 'i386': 'n'}>
+CONFIG_XEN_PVCALLS_FRONTEND                     policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_PVH                                  policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PVHVM                                policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PVHVM_SMP                            policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_PV_SMP                               policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_SAVE_RESTORE                         policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_SCRUB_PAGES_DEFAULT                  policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_SCSI_BACKEND                         policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_SCSI_FRONTEND                        policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_SYMS                                 policy<{'amd64': 'y', 'i386': 'y'}>
+CONFIG_XEN_SYS_HYPERVISOR                       policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XEN_WDT                                  policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_XEN_XENBUS_FRONTEND                      policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_XFRM                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFRM_ALGO                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFRM_INTERFACE                           policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFRM_IPCOMP                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFRM_MIGRATE                             policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFRM_OFFLOAD                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFRM_STATISTICS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFRM_SUB_POLICY                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFRM_USER                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFS_DEBUG                                policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFS_FS                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XFS_ONLINE_SCRUB                         policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XFS_POSIX_ACL                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFS_QUOTA                                policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFS_RT                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XFS_WARN                                 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_XGENE_DMA                                policy<{'arm64': 'm'}>
+CONFIG_XGENE_PMU                                policy<{'arm64': 'y'}>
+CONFIG_XGENE_SLIMPRO_MBOX                       policy<{'arm64': 'm'}>
+CONFIG_XIAOMI_WMI                               policy<{'amd64': 'm', 'i386': 'm'}>
+CONFIG_XILINX_AXI_EMAC                          policy<{'amd64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_XILINX_DMA                               policy<{'arm64': 'm'}>
+CONFIG_XILINX_GMII2RGMII                        policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XILINX_LL_TEMAC                          policy<{'amd64': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_XILINX_PR_DECOUPLER                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_XILINX_SDFEC                             policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_XILINX_VCU                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XILINX_WATCHDOG                          policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_XILINX_XADC                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_XILINX_ZYNQMP_DMA                        policy<{'arm64': 'm'}>
+CONFIG_XILLYBUS                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_XILLYBUS_OF                              policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_XILLYBUS_PCIE                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_XIL_AXIS_FIFO                            policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
+CONFIG_XMON                                     policy<{'ppc64el': 'y'}>
+CONFIG_XMON_DEFAULT                             policy<{'ppc64el': 'n'}>
+CONFIG_XMON_DEFAULT_RO_MODE                     policy<{'ppc64el': 'y'}>
+CONFIG_XMON_DISASSEMBLY                         policy<{'ppc64el': 'y'}>
+CONFIG_XOR_BLOCKS                               policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_XPS                                      policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XXHASH                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_XZ_DEC_ARM                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_ARMTHUMB                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_BCJ                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_XZ_DEC_IA64                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_POWERPC                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_SPARC                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_XZ_DEC_TEST                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_XZ_DEC_X86                               policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'n'}>
+CONFIG_YAM                                      policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_YELLOWFIN                                policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_YENTA                                    policy<{'amd64': 'm', 'arm64': 'm', 'i386': 'm'}>
+CONFIG_YENTA_ENE_TUNE                           policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_O2                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_RICOH                              policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_TI                                 policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_YENTA_TOSHIBA                            policy<{'amd64': 'y', 'arm64': 'y', 'i386': 'y'}>
+CONFIG_Z3FOLD                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZBOOT_ROM_BSS                            policy<{'armhf': '0x0'}>
+CONFIG_ZBOOT_ROM_TEXT                           policy<{'armhf': '0x0'}>
+CONFIG_ZBUD                                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZCRYPT                                   policy<{'s390x': 'm'}>
+CONFIG_ZD1211RW                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ZD1211RW_DEBUG                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}>
+CONFIG_ZEROPLUS_FF                              policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}>
+CONFIG_ZFCP                                     policy<{'s390x': 'm'}>
+CONFIG_ZIIRAVE_WATCHDOG                         policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}>
+CONFIG_ZISOFS                                   policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZLIB_DEFLATE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'm'}>
+CONFIG_ZLIB_INFLATE                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZONE_DEVICE                              policy<{'amd64': 'y', 'ppc64el': 'y'}>
+CONFIG_ZONE_DMA32                               policy<{'amd64': 'y', 'arm64': 'y'}>
+CONFIG_ZOPT2201                                 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ZPA2326                                  policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ZPA2326_I2C                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ZPA2326_SPI                              policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}>
+CONFIG_ZPOOL                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZRAM                                     policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZRAM_MEMORY_TRACKING                     policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZRAM_WRITEBACK                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZSMALLOC                                 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZSMALLOC_STAT                            policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n', 's390x': 'n'}>
+CONFIG_ZSTD_COMPRESS                            policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}>
+CONFIG_ZSTD_DECOMPRESS                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZSWAP                                    policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_ZX_TDM                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm'}>
+CONFIG_ZYNQMP_FIRMWARE                          policy<{'arm64': 'y'}>
+CONFIG_ZYNQMP_FIRMWARE_DEBUG                    policy<{'arm64': 'n'}>
+CONFIG_ZYNQMP_IPI_MBOX                          policy<{'arm64': 'y'}>
+CONFIG_ZYNQMP_PM_DOMAINS                        policy<{'arm64': 'y'}>
+CONFIG_ZYNQMP_POWER                             policy<{'arm64': 'y'}>
--- linux-ein-5.4.0.orig/debian.master/control.d/flavour-control.stub
+++ linux-ein-5.4.0/debian.master/control.d/flavour-control.stub
@@ -0,0 +1,152 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Provides: linux-image, fuse-module, aufs-dkms, =PROVIDES=${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-PKGVER-ABINUM-FLAVOUR
+Recommends: BOOTLOADER, initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image=SIGN-PEER-PKG=-PKGVER-ABINUM-FLAVOUR
+Suggests: fdutils, linux-doc | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the=SIGN-ME-TXT= Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version PKGVER on DESC
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-extra-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR | linux-image-unsigned-PKGVER-ABINUM-FLAVOUR, crda | wireless-crda
+Description: Linux kernel extra modules for version PKGVER on DESC
+ This package contains the Linux kernel extra modules for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details.
+
+Package: linux-image=SIGN-ME-PKG=-PKGVER-ABINUM-FLAVOUR-dbgsym
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides the=SIGN-ME-TXT= kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+
+Package: linux-cloud-tools-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud for version PKGVER-ABINUM on
+ =HUMAN=.
+
+Package: linux-udebs-FLAVOUR
+Build-Profiles: <!stage1>
+XC-Package-Type: udeb
+Section: debian-installer
+Architecture: ARCH
+Depends: ${udeb:Depends}
+Description: Metapackage depending on kernel udebs
+ This package depends on the all udebs that the kernel build generated,
+ for easier version and migration tracking.
+
--- linux-ein-5.4.0.orig/debian.master/control.d/generic.inclusion-list
+++ linux-ein-5.4.0/debian.master/control.d/generic.inclusion-list
@@ -0,0 +1,258 @@
+arch/*/{crypto,kernel,oprofile}
+arch/*/kvm/kvm.ko
+arch/powerpc/kvm/kvm-hv.ko
+arch/powerpc/kvm/kvm-pr.ko
+arch/powerpc/kvm/vfio.ko
+arch/powerpc/platforms/powernv/opal-prd.ko
+arch/s390/*
+arch/x86/kvm/kvm-amd.ko
+arch/x86/kvm/kvm-intel.ko
+crypto/*
+drivers/acpi/*
+drivers/ata/acard-ahci.ko
+drivers/ata/ahci.ko
+drivers/ata/ahci_platform.ko
+drivers/ata/ata_generic.ko
+drivers/ata/libahci.ko
+drivers/ata/libahci_platform.ko
+drivers/block/brd.ko
+drivers/block/cryptoloop.ko
+drivers/block/floppy.ko
+drivers/block/loop.ko
+drivers/block/nbd.ko
+drivers/block/rbd.ko
+drivers/block/virtio_blk.ko
+drivers/block/xen-blkfront.ko
+drivers/char/hangcheck-timer.ko
+drivers/char/hw_random/powernv-rng.ko
+drivers/char/hw_random/virtio-rng.ko
+drivers/char/ipmi/*
+drivers/char/ipmi/ipmi_msghandler.ko
+drivers/char/lp.ko
+drivers/char/nvram.ko
+drivers/char/ppdev.ko
+drivers/char/raw.ko
+drivers/char/virtio_console.ko
+drivers/crypto/nx/*
+drivers/crypto/vmx/vmx-crypto.ko
+drivers/firmware/efi/*
+drivers/firmware/iscsi_ibft.ko
+drivers/gpu/drm/ast/ast.ko
+drivers/gpu/drm/bochs/bochs-drm.ko
+drivers/gpu/drm/cirrus/cirrus.ko
+drivers/gpu/drm/drm_kms_helper.ko
+drivers/gpu/drm/drm.ko
+drivers/gpu/drm/ttm/ttm.ko
+drivers/gpu/drm/vboxvideo/vboxvideo.ko
+drivers/gpu/drm/virtio/virtio-gpu.ko
+drivers/gpu/drm/vmwgfx/vmwgfx.ko
+drivers/gpu/drm/xen/drm_xen_front.ko
+drivers/hid/hid-generic.ko
+drivers/hid/hid-hyperv.ko
+drivers/hid/hid.ko
+drivers/hid/usbhid/usbhid.ko
+drivers/hv/*
+drivers/hwmon/ibmpowernv.ko
+drivers/infiniband/core/ib_addr.ko
+drivers/infiniband/core/ib_cm.ko
+drivers/infiniband/core/ib_core.ko
+drivers/infiniband/core/ib_mad.ko
+drivers/infiniband/core/ib_sa.ko
+drivers/infiniband/core/iw_cm.ko
+drivers/infiniband/core/rdma_cm.ko
+drivers/infiniband/ulp/iser/ib_iser.ko
+drivers/infiniband/ulp/isert/ib_isert.ko
+drivers/input/evbug.ko
+drivers/input/gameport/gameport.ko
+drivers/input/input-leds.ko
+drivers/input/joydev.ko
+drivers/input/misc/xen-kbdfront.ko
+drivers/input/mouse/psmouse.ko
+drivers/input/serio/hyperv-keyboard.ko
+drivers/input/serio/serio_raw.ko
+drivers/input/serio/serport.ko
+drivers/input/touchscreen/usbtouchscreen.ko
+drivers/leds/leds-powernv.ko
+drivers/md/*
+drivers/message/fusion*
+drivers/misc/cxl/*
+drivers/misc/eeprom/at24.ko
+drivers/misc/vmw_balloon.ko
+drivers/misc/vmw_vmci/vmw_vmci.ko
+drivers/mtd/cmdlinepart.ko
+drivers/mtd/devices/powernv_flash.ko
+drivers/mtd/ofpart.ko
+drivers/net/appletalk/ipddp.ko
+drivers/net/bonding/bonding.ko
+drivers/net/caif/caif_virtio.ko
+drivers/net/dummy.ko
+drivers/net/eql.ko
+drivers/net/ethernet/8390/8390.ko
+drivers/net/ethernet/8390/ne2k-pci.ko
+drivers/net/ethernet/amazon/ena/ena.ko
+drivers/net/ethernet/amd/pcnet32.ko
+drivers/net/ethernet/broadcom/bnx2x/*
+drivers/net/ethernet/broadcom/tg3.ko
+drivers/net/ethernet/dec/tulip/*
+drivers/net/ethernet/emulex/benet/*
+drivers/net/ethernet/ibm/*
+drivers/net/ethernet/intel/e1000/e1000.ko
+drivers/net/ethernet/intel/e1000e/e1000e.ko
+drivers/net/ethernet/intel/i40e/*
+drivers/net/ethernet/intel/iavf/iavf.ko
+drivers/net/ethernet/intel/igb/*
+drivers/net/ethernet/intel/igbvf/igbvf.ko
+drivers/net/ethernet/intel/ixgbe/*
+drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+drivers/net/ethernet/mellanox/*
+drivers/net/ethernet/netronome/nfp/nfp.ko
+drivers/net/ethernet/realtek/8139cp.ko
+drivers/net/ethernet/realtek/8139too.ko
+drivers/net/fddi/*
+drivers/net/geneve.ko
+drivers/net/hyperv/hv_netvsc.ko
+drivers/net/ifb.ko
+drivers/net/ipvlan/*
+drivers/net/macvlan.ko
+drivers/net/macvtap.ko
+drivers/net/mii.ko
+drivers/net/netconsole.ko
+drivers/net/ppp/*
+drivers/net/ppp/bsd_comp.ko
+drivers/net/slip/*
+drivers/net/veth.ko
+drivers/net/virtio_net.ko
+drivers/net/vmxnet3/vmxnet3.ko
+drivers/net/vxlan.ko
+drivers/net/xen-netback/*
+drivers/net/xen-netfront.ko
+drivers/nvme/host/nvme.ko
+drivers/nvmem/nvmem_core.ko
+drivers/parport/parport.ko
+drivers/parport/parport_pc.ko
+drivers/pci/host/vmd.ko
+drivers/platform/x86/pvpanic.ko
+drivers/pps/pps_core.ko
+drivers/ptp/ptp.ko
+drivers/s390/*
+drivers/s390/block/xpram.ko
+drivers/scsi/aacraid/*
+drivers/scsi/BusLogic.ko
+drivers/scsi/cxlflash/*
+drivers/scsi/device_handler/scsi_dh_alua.ko
+drivers/scsi/device_handler/scsi_dh_emc.ko
+drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+drivers/scsi/device_handler/scsi_dh_rdac.ko
+drivers/scsi/hv_storvsc.ko
+drivers/scsi/ibmvscsi/*
+drivers/scsi/ipr.ko
+drivers/scsi/iscsi_boot_sysfs.ko
+drivers/scsi/iscsi_tcp.ko
+drivers/scsi/libiscsi.ko
+drivers/scsi/libiscsi_tcp.ko
+drivers/scsi/libsas/*
+drivers/scsi/lpfc/*
+drivers/scsi/megaraid/*
+drivers/scsi/mpt3sas/*
+drivers/scsi/osd/libosd.ko
+drivers/scsi/osd/osd.ko
+drivers/scsi/qla1280.ko
+drivers/scsi/qla2xxx/*
+drivers/scsi/raid_class.ko
+drivers/scsi/scsi_transport_fc.ko
+drivers/scsi/scsi_transport_iscsi.ko
+drivers/scsi/scsi_transport_sas.ko
+drivers/scsi/scsi_transport_spi.ko
+drivers/scsi/sd_mod.ko
+drivers/scsi/sr_mod.ko
+drivers/scsi/virtio_scsi.ko
+drivers/scsi/vmw_pvscsi.ko
+drivers/target/target_core*.ko
+drivers/target/loopback/tcm_loop.ko
+drivers/tty/serial/jsm/*
+drivers/uio/uio.ko
+drivers/uio/uio_pdrv_genirq.ko
+drivers/usb/host/*
+drivers/usb/storage/uas.ko
+drivers/usb/storage/usb-storage.ko
+drivers/vfio/*
+drivers/vhost/*
+drivers/video/fbdev/*
+drivers/video/vgastate.ko
+drivers/virtio/*
+drivers/watchdog/softdog.ko
+drivers/xen/*
+! find sound/core -name oss -prune -o -name *.ko -print
+fs/9p/*
+fs/aufs/aufs.ko
+fs/autofs/autofs4.ko
+fs/binfmt_misc.ko
+fs/btrfs/*
+fs/cachefiles/cachefiles.ko
+fs/ceph/*
+fs/cifs/*
+fs/configfs/*
+fs/dlm/dlm.ko
+fs/ecryptfs/*
+fs/efivarfs/*
+fs/exofs/libore.ko
+fs/ext4/*
+fs/fat/*
+fs/fscache/*
+fs/fuse/*
+fs/isofs/*
+fs/lockd/*
+fs/nfs/*
+fs/nfs_common/*
+fs/nfsd/*
+fs/nls/nls_cp437.ko
+fs/nls/nls_iso8859-1.ko
+fs/overlayfs/*
+fs/shiftfs.ko
+fs/squashfs/*
+fs/udf/*
+fs/ufs/*
+fs/xfs/*
+lib/*
+net/6lowpan/*
+net/802/*
+net/8021q/*
+net/9p/*
+net/appletalk/*
+net/atm/*
+net/ax25/*
+net/bpfilter/*
+net/bridge/*
+net/can/*
+net/ceph/libceph.ko
+net/core/*
+net/dccp/*
+net/decnet/*
+net/ieee802154/*
+net/ipv4/*
+net/ipv6/*
+net/ipx/*
+net/key/*
+net/lapb/*
+net/llc/*
+net/netfilter/*
+net/netlink/netlink_diag.ko
+net/netrom/*
+net/openvswitch/*
+net/packet/af_packet_diag.ko
+net/phonet/*
+net/rose/*
+net/rxrpc/*
+net/sched/*
+net/sctp/*
+net/sunrpc/auth_gss/auth_rpcgss.ko
+net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+net/sunrpc/sunrpc.ko
+net/tipc/*
+net/unix/unix_diag.ko
+net/vmw_vsock/*
+net/x25/*
+net/xfrm/*
+sound/drivers/pcsp/snd-pcsp.ko
+sound/pci/snd-ens1370.ko
+sound/soundcore.ko
--- linux-ein-5.4.0.orig/debian.master/control.d/linux-doc.stub
+++ linux-ein-5.4.0/debian.master/control.d/linux-doc.stub
@@ -0,0 +1,12 @@
+Package: linux-doc
+Build-Profiles: <!stage1>
+Architecture: all
+Section: doc
+Priority: optional
+Depends: ${misc:Depends}
+Description: Linux kernel specific documentation for version PKGVER
+ This package provides the various documents in the PKGVER kernel
+ Documentation/ subdirectory.  These document kernel subsystems, APIs, device
+ drivers, and so on.  See
+ /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is
+ contained in each file.
--- linux-ein-5.4.0.orig/debian.master/control.d/linux-libc-dev.stub
+++ linux-ein-5.4.0/debian.master/control.d/linux-libc-dev.stub
@@ -0,0 +1,12 @@
+Package: linux-libc-dev
+Architecture: amd64 armhf arm64 i386 ppc64el riscv64 s390x
+Depends: ${misc:Depends}
+Conflicts: linux-kernel-headers
+Replaces: linux-kernel-headers
+Provides: linux-kernel-headers, aufs-dev
+Multi-Arch: same
+Description: Linux Kernel Headers for development
+ This package provides headers from the Linux kernel.  These headers
+ are used by the installed headers for GNU glibc and other system
+ libraries. They are NOT meant to be used to build third-party modules for
+ your kernel. Use SRCPKGNAME-headers-* packages for that.
--- linux-ein-5.4.0.orig/debian.master/control.d/vars.generic
+++ linux-ein-5.4.0/debian.master/control.d/vars.generic
@@ -0,0 +1,6 @@
+arch="amd64 armhf arm64 ppc64el s390x"
+supported="Generic"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64] | grub-efi-arm64 [arm64] | grub-efi-arm [armhf] | grub-ieee1275 [ppc64el]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64]"
--- linux-ein-5.4.0.orig/debian.master/control.d/vars.generic-lpae
+++ linux-ein-5.4.0/debian.master/control.d/vars.generic-lpae
@@ -0,0 +1,6 @@
+arch="armhf"
+supported="Generic LPAE"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="flash-kernel [armhf] | grub-efi-arm [armhf]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules"
--- linux-ein-5.4.0.orig/debian.master/control.d/vars.lowlatency
+++ linux-ein-5.4.0/debian.master/control.d/vars.lowlatency
@@ -0,0 +1,6 @@
+arch="amd64"
+supported="Lowlatency"
+target="Geared toward desktop and server systems."
+desc="=HUMAN= SMP"
+bootloader="grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64] | grub-efi-arm64 [arm64] | grub-efi-arm [armhf]"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64]"
--- linux-ein-5.4.0.orig/debian.master/control.stub.in
+++ linux-ein-5.4.0/debian.master/control.stub.in
@@ -0,0 +1,155 @@
+Source: SRCPKGNAME
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ makedumpfile [amd64] <!stage1>,
+ libcap-dev <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ default-jdk-headless <!stage1>,
+ java-common <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf ppc64el] <!stage1>,
+ liblzma-dev <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ libnuma-dev [amd64 arm64 ppc64el s390x] <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+ lz4 [amd64 s390x] <!stage1>,
+ dwarves [amd64 arm64 armhf ppc64el s390x] <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python3-sphinx <!stage1>,
+ python3-sphinx-rtd-theme <!stage1>,
+ fontconfig <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/=SERIES=
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: linux-source-PKGVER
+Build-Profiles: <!stage1>
+Architecture: all
+Section: devel
+Priority: optional
+Provides: linux-source
+Depends: ${misc:Depends}, binutils, bzip2, coreutils
+Recommends: libc-dev, gcc, make
+Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev
+Description: Linux kernel source for version PKGVER with Ubuntu patches
+ This package provides the source code for the Linux kernel version
+ PKGVER.
+ .
+ This package is mainly meant for other packages to use, in order to build
+ custom flavours.
+ .
+ If you wish to use this package to create a custom Linux kernel, then it
+ is suggested that you investigate the package kernel-package, which has
+ been designed to ease the task of creating kernel image packages.
+ .
+ If you are simply trying to build third-party modules for your kernel,
+ you do not want this package. Install the appropriate linux-headers
+ package instead.
+
+Package: SRCPKGNAME-headers-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-tools-common
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, lsb-release
+Conflicts: linux-oem-5.6-tools-common
+Replaces: linux-oem-5.6-tools-common
+Description: Linux kernel version specific tools for version PKGVER
+ This package provides the architecture independent parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER.
+
+Package: SRCPKGNAME-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64 armhf arm64 ppc64el s390x
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-tools-PKGVER-ABINUM-<flavour>.
+
+Package: SRCPKGNAME-cloud-tools-common
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}
+Description: Linux kernel version specific cloud tools for version PKGVER
+ This package provides the architecture independent parts for kernel
+ version locked tools for cloud tools for version PKGVER.
+
+Package: SRCPKGNAME-cloud-tools-PKGVER-ABINUM
+Build-Profiles: <!stage1>
+Architecture: amd64 armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common
+Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for cloud tools for version PKGVER-ABINUM on
+ =HUMAN=.
+ You probably want to install linux-cloud-tools-PKGVER-ABINUM-<flavour>.
+
+Package: SRCPKGNAME-tools-host
+Build-Profiles: <!stage1>
+Architecture: all
+Multi-Arch: foreign
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, python3
+Conflicts: linux-oem-5.6-tools-host
+Replaces: linux-oem-5.6-tools-host
+Description: Linux kernel VM host tools
+ This package provides kernel tools useful for VM hosts.
+
--- linux-ein-5.4.0.orig/debian.master/copyright
+++ linux-ein-5.4.0/debian.master/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/amd64/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/amd64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/amd64/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/amd64/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/amd64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/arm64/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/arm64/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/arm64/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/arm64/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/arm64/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/armhf/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/armhf/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/i386/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/i386/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/i386/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/i386/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/i386/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/nic-modules
@@ -0,0 +1,14 @@
+e100/d101m_ucode.bin ?
+e100/d101s_ucode.bin ?
+e100/d102e_ucode.bin ?
+bnx2/bnx2-mips-09-6.2.1b.fw ?
+bnx2/bnx2-rv2p-06-6.0.15.fw ?
+bnx2/bnx2-mips-06-6.2.3.fw ?
+bnx2/bnx2-rv2p-09-6.0.17.fw ?
+bnx2/bnx2-rv2p-09ax-6.0.17.fw ?
+bnx2x/bnx2x-e1h-7.12.30.0.fw ?
+bnx2x/bnx2x-e1-7.12.30.0.fw ?
+bnx2x/bnx2x-e2-7.12.30.0.fw ?
+tigon/tg3_tso5.bin ?
+tigon/tg3_tso.bin ?
+tigon/tg3.bin ?
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/powerpc/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/powerpc/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/powerpc/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/powerpc/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/powerpc/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/powerpc/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/ppc64el/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/ppc64el/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/ppc64el/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/ppc64el/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/s390x/README.txt
+++ linux-ein-5.4.0/debian.master/d-i/firmware/s390x/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/s390x/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/s390x/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/s390x/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/firmware/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin ?
+qlogic/12160.bin ?
+qlogic/1280.bin ?
--- linux-ein-5.4.0.orig/debian.master/d-i/kernel-versions
+++ linux-ein-5.4.0/debian.master/d-i/kernel-versions
@@ -0,0 +1,16 @@
+# arch	version		flavour		installedname			suffix	bdep
+amd64	-		generic		-				-	-
+
+i386	-		generic		-				-	-
+
+armhf	-		generic		-				-	-
+armhf	-		generic-lpae	-				-	-
+
+arm64	-		generic		-				-	-
+
+ppc64el	-		generic		-				-	-
+
+s390x	-		generic		-				-	-
+
+# Ports
+# arch	version		flavour		installedname			suffix	bdep
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/floppy-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/serial-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64-virtual/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/fb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/firewire-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/floppy-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/input-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/ipmi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/nic-pcmcia-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/nic-usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/pata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/pcmcia-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/pcmcia-storage-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/plip-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/ppp-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/sata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/serial-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/speakup-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/amd64/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/amd64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/input-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/ipmi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/nic-usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/plip-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/ppp-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/sata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/speakup-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/arm64/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/arm64/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/input-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/ipmi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/nic-usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/plip-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/ppp-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/sata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/speakup-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/armhf/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/armhf/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/block-modules
@@ -0,0 +1,43 @@
+aoe ?
+aten ?
+bcm2835 ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+hpsa ?
+hio ?
+kbic ?
+ktti ?
+nbd ?
+nvme ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sdhci-tegra ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
+mtip32xx ?
+mmc_block ?
+sdhci ?
+sdhci-pci ?
+sdhci-acpi ?
+tifm_sd ?
+dw_mmc ?
+dw_mmc_pltfm ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/block-modules.powerpc
+++ linux-ein-5.4.0/debian.master/d-i/modules/block-modules.powerpc
@@ -0,0 +1,31 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+kbic ?
+ktti ?
+nbd ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+ps3disk ?
+ps3vram ?
+pt ?
+sx8 ?
+umem ?
+virtio_blk ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/crypto-modules
@@ -0,0 +1,78 @@
+aesni-intel ?
+aes-x86_64 ?
+af_alg ?
+algif_hash ?
+algif_skcipher ?
+ansi_cprng ?
+anubis ?
+arc4 ?
+async_memcpy ?
+async_pq ?
+async_raid6_recov ?
+async_tx ?
+async_xor ?
+authenc ?
+authencesn ?
+blowfish_common ?
+blowfish_generic ?
+blowfish-x86_64 ?
+camellia ?
+cast5 ?
+cast6 ?
+ccm ?
+crc32_generic ?
+crc32c_generic ?
+crc32-vx_s390 ?
+cryptd ?
+cryptoloop ?
+crypto_null ?
+crypto_user ?
+ctr ?
+cts ?
+des_generic ?
+fcrypt ?
+gcm ?
+gf128mul ?
+ghash-clmulni-intel ?
+ghash-generic ?
+khazad ?
+lrw ?
+lzo ?
+md4 ?
+michael_mic ?
+padlock-aes ?
+padlock-sha ?
+paes_s390 ?
+pcbc ?
+pcrypt ?
+pkey ?
+raid6test ?
+rmd128 ?
+rmd160 ?
+rmd256 ?
+rmd320 ?
+salsa20_generic ?
+salsa20-x86_64 ?
+seed ?
+seqiv ?
+serpent_generic ?
+serpent-sse2-x86_64 ?
+sha1-ssse3 ?
+sha512_generic ?
+tcrypt ?
+tea ?
+tgr192 ?
+twofish_common ?
+twofish_generic ?
+twofish-x86_64 ?
+twofish-x86_64-3way ?
+vmac ?
+wp512 ?
+xcbc ?
+xor ?
+xts ?
+zcrypt ?
+zcrypt_cex2a ?
+zcrypt_cex4 ?
+zcrypt_pcixcc ?
+zlib ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/dasd-extra-modules.s390x
+++ linux-ein-5.4.0/debian.master/d-i/modules/dasd-extra-modules.s390x
@@ -0,0 +1 @@
+dasd_diag_mod ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/dasd-modules.s390x
+++ linux-ein-5.4.0/debian.master/d-i/modules/dasd-modules.s390x
@@ -0,0 +1,3 @@
+dasd_mod ?
+dasd_fba_mod ?
+dasd_eckd_mod ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/fb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/firewire-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+firewire-core ?
+firewire-ohci ?
+firewire-sbp2 ?
+firewire-net ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/floppy-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/fs-core-modules
@@ -0,0 +1,6 @@
+ext2 ?
+ext4 ?
+jfs ?
+reiserfs ?
+xfs ?
+zfs ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/floppy-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/serial-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386-virtual/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386-virtual/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/fb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/fb-modules
@@ -0,0 +1 @@
+#include <fb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/firewire-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/firewire-core-modules
@@ -0,0 +1 @@
+#include <firewire-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/floppy-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/input-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/ipmi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/mouse-modules
@@ -0,0 +1 @@
+#include <mouse-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/nic-pcmcia-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/nic-pcmcia-modules
@@ -0,0 +1 @@
+#include <nic-pcmcia-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/nic-usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/pata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/pata-modules
@@ -0,0 +1 @@
+#include <pata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/pcmcia-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/pcmcia-modules
@@ -0,0 +1 @@
+#include <pcmcia-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/pcmcia-storage-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/pcmcia-storage-modules
@@ -0,0 +1 @@
+#include <pcmcia-storage-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/plip-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/ppp-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/sata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/serial-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/serial-modules
@@ -0,0 +1 @@
+#include <serial-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/speakup-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/speakup-modules
@@ -0,0 +1 @@
+#include <speakup-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/usb-modules
@@ -0,0 +1 @@
+#include <usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/i386/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/i386/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/input-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/input-modules
@@ -0,0 +1,71 @@
+hid ?
+hid-a4tech ?
+hid-apple ?
+hid-appleir ?
+hid-aureal ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-corsair ?
+hid-cp2112 ?
+hid-cypress ?
+hid-dell ?
+hid-elecom ?
+hid-elo ?
+hid-ezkey ?
+hid-generic ?
+hid-gfrm ?
+hid-gt683r ?
+hid-gyration ?
+hid-holtek-kbd ?
+hid-holtek-mouse ?
+hid-hyperv ?
+hid-kensington ?
+hid-keytouch ?
+hid-kye ?
+hid-lcpower ?
+hid-lenovo ?
+hid-logitech ?
+hid-logitech-dj ?
+hid-logitech-hidpp ?
+hid-magicmouse ?
+hid-microsoft ?
+hid-monterey ?
+hid-multitouch ?
+hid-ntrig ?
+hid-ortek ?
+hid-penmount ?
+hid-petalynx ?
+hid-picolcd ?
+hid-pl ?
+hid-plantronics ?
+hid-primax ?
+hid-rmi ?
+hid-roccat ?
+hid-roccat-arvo ?
+hid-roccat-common ?
+hid-roccat-isku ?
+hid-roccat-kone ?
+hid-roccat-koneplus ?
+hid-roccat-konepure ?
+hid-roccat-kovaplus ?
+hid-roccat-lua ?
+hid-roccat-pyra ?
+hid-roccat-ryos ?
+hid-roccat-savu ?
+hid-samsung ?
+hid-sony ?
+hid-speedlink ?
+hid-sunplus ?
+hid-thingm ?
+hid-tivo ?
+hid-topseed ?
+hid-twinhan ?
+hid-uclogic ?
+hid-waltop ?
+hid-wiimote ?
+hid-xinmo ?
+hid-zydacron ?
+uhid ?
+usbhid ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ipmi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ipmi-modules
@@ -0,0 +1,5 @@
+ipmi_devintf ?
+ipmi_msghandler ?
+ipmi_poweroff ?
+ipmi_si ?
+ipmi_watchdog ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/kernel-image
@@ -0,0 +1,31 @@
+ast ?
+gpio-pca953x ?
+gpio-regulator ?
+hibmc-drm ?
+i2c-mux ?
+i2c-mux-pinctrl ?
+i2c-tegra ?
+max8907 ?
+max8907-regulator ?
+nvec ?
+nvec_kbd ?
+nvec_paz00 ?
+nvec_power ?
+nvec_ps2 ?
+palmas-regulator ?
+rtc-em3027 ?
+rtc-max8907 ?
+rtc-palmas ?
+rtc-tps6586x ?
+rtc-tps65910 ?
+tps51632-regulator ?
+tps62360-regulator ?
+tps65090-charger ?
+tps65090-regulator ?
+tps6586x-regulator ?
+tps65910-regulator ?
+host1x ?
+tegra-drm ?
+pwm_bl ?
+pwm-tegra ?
+panel-simple ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/md-modules
@@ -0,0 +1,16 @@
+dm-crypt ?
+dm-mirror ?
+dm-raid ?
+dm-snapshot ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid45 ?
+dm-loop ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/message-modules
@@ -0,0 +1,9 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mpt3sas ?
+mptscsih ?
+mptspi ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/message-modules.powerpc
+++ linux-ein-5.4.0/debian.master/d-i/modules/message-modules.powerpc
@@ -0,0 +1,7 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/mouse-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/multipath-modules
@@ -0,0 +1,4 @@
+dm-multipath ?
+dm-round-robin ?
+dm-service-time ?
+dm-queue-length ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/nfs-modules
@@ -0,0 +1,6 @@
+nfs ?
+nfs_acl ?
+nfsv3 ?
+lockd ?
+sunrpc ?
+cifs ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/nic-modules
@@ -0,0 +1,209 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+alx ?
+amd8111e ?
+amd-xgbe ?
+aquantia ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+ath5k ?
+ath9k ?
+ath9k_htc ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm87xx ?
+be2net ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bnxt_en ?
+bonding ?
+brcmfmac ?
+brcmsmac ?
+broadcom ?
+xgmac ?
+cassini ?
+ccwgroup ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+ctcm ?
+cxgb4 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+enic ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+fsm ?
+ibmveth ?
+ibmvnic ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hclge ?
+hermes ?
+hfi1 ?
+hinic ?
+hns_dsaf ?
+hns_enet_drv ?
+hns_mdio ?
+hns3 ?
+hp ?
+hp100 ?
+hp-plus ?
+i40e ?
+i40evf ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+iwl3945 ?
+iwl4965 ?
+iwl-legacy ?
+iwldvm ?
+iwlmvm ?
+iwlwifi ?
+ixgb ?
+ixgbe ?
+lance ?
+lanstreamer ?
+lcs ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+marvell ?
+mdio-thunder ?
+mlx4_core ?
+mlx4_en ?
+mlx5_core ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netiucv ?
+netsec ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+nicpf ?
+nicvf ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+qcom-emac ?
+qede ?
+qeth ?
+qeth_l2 ?
+qeth_l3 ?
+qlcnic ?
+r815x ?
+r8169 ?
+rate_control ?
+realtek ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2400pci ?
+rt2500 ?
+rt2500pci ?
+rt2800pci ?
+rt61pci ?
+s2io ?
+sfc ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
+xgene-enet ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/nic-modules.powerpc
+++ linux-ein-5.4.0/debian.master/d-i/modules/nic-modules.powerpc
@@ -0,0 +1,152 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ibmveth ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+ps3_gelic ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/nic-pcmcia-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/nic-shared-modules
@@ -0,0 +1,26 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+rt2800lib ?
+
+# Atheros library (since drivers are split across nic-modules/nic-usb-modules)
+ath ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/nic-usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/nic-usb-modules
@@ -0,0 +1,34 @@
+ax88179_178a ?
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+rt2800usb ?
+rt2x00usb ?
+cdc_ether ?
+asix ?
+cdc_eem ?
+cdc_ether ?
+cdc-phonet ?
+cdc_subset ?
+dm9601 ?
+gl620a ?
+hso ?
+int51x1 ?
+mcs7830 ?
+net1080 ?
+plusb ?
+rndis_host ?
+r8152 ?
+smsc95xx ?
+zaurus ?
+carl9170 ?
+smsc75xx ?
+smsc95xx ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/pata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/pata-modules
@@ -0,0 +1,47 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_macio.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/pcmcia-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/pcmcia-storage-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/plip-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/crypto-modules
@@ -0,0 +1 @@
+#include <crypto-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/floppy-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/floppy-modules
@@ -0,0 +1 @@
+#include <floppy-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/input-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/input-modules
@@ -0,0 +1 @@
+#include <input-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/ipmi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/ipmi-modules
@@ -0,0 +1 @@
+#include <ipmi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/message-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/message-modules
@@ -0,0 +1 @@
+#include <message-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/nic-usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/nic-usb-modules
@@ -0,0 +1 @@
+#include <nic-usb-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/parport-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/parport-modules
@@ -0,0 +1 @@
+#include <parport-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/plip-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/plip-modules
@@ -0,0 +1 @@
+#include <plip-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/ppp-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/ppp-modules
@@ -0,0 +1 @@
+#include <ppp-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/sata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/sata-modules
@@ -0,0 +1 @@
+#include <sata-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/scsi-modules
@@ -0,0 +1 @@
+#include <scsi-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/storage-core-modules
@@ -0,0 +1,2 @@
+#include <storage-core-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppc64el/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppc64el/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/ppp-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/block-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/block-modules
@@ -0,0 +1 @@
+#include <block-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/crypto-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/crypto-modules
@@ -0,0 +1,2 @@
+#include <crypto-modules>
+deflate ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/dasd-extra-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/dasd-extra-modules
@@ -0,0 +1 @@
+#include <dasd-extra-modules.s390x>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/dasd-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/dasd-modules
@@ -0,0 +1 @@
+#include <dasd-modules.s390x>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/fat-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/fat-modules
@@ -0,0 +1 @@
+#include <fat-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/fs-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/fs-core-modules
@@ -0,0 +1 @@
+#include <fs-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/fs-secondary-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/fs-secondary-modules
@@ -0,0 +1 @@
+#include <fs-secondary-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/kernel-image
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/kernel-image
@@ -0,0 +1 @@
+#include <kernel-image>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/md-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/md-modules
@@ -0,0 +1 @@
+#include <md-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/multipath-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/multipath-modules
@@ -0,0 +1 @@
+#include <multipath-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/nfs-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/nfs-modules
@@ -0,0 +1 @@
+#include <nfs-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/nic-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/nic-modules
@@ -0,0 +1 @@
+#include <nic-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/nic-shared-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/nic-shared-modules
@@ -0,0 +1 @@
+#include <nic-shared-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/scsi-modules
@@ -0,0 +1,2 @@
+#include <scsi-modules>
+ipr ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/storage-core-modules
@@ -0,0 +1 @@
+#include <storage-core-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/virtio-modules
@@ -0,0 +1 @@
+#include <virtio-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/s390x/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/s390x/vlan-modules
@@ -0,0 +1 @@
+#include <vlan-modules>
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/sata-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/sata-modules
@@ -0,0 +1,18 @@
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
+ahci_platform ?
+ahci ?
+acard-ahci ?
+libahci ?
+ahci_xgene ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/scsi-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/scsi-modules
@@ -0,0 +1,137 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+sr_mod ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+pm80xx ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+fnic ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsi ?
+ibmvfc ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
+ums-cypress ?
+be2iscsi ?
+3w-sas ?
+isci ?
+mlx4_ib ?
+mlx5_ib ?
+zfcp ?
+sd_mod ?
+hisi_sas_v2_hw ?
+hisi_sas_v3_hw ?
+iscsi_ibft ?
+
+# device handlers
+scsi_dh_alua ?
+scsi_dh_emc ?
+scsi_dh_rdac ?
+scsi_dh_hp_sw ?
+
+smartpqi ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/scsi-modules.powerpc
+++ linux-ein-5.4.0/debian.master/d-i/modules/scsi-modules.powerpc
@@ -0,0 +1,118 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+ibmvfc ?
+ibmvscsi ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+sr_mod ?
+sd_mod ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/serial-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/serial-modules
@@ -0,0 +1,4 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
+hyperv-keyboard ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/speakup-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/speakup-modules
@@ -0,0 +1,16 @@
+speakup ?
+speakup_acntpc ?
+speakup_acntsa ?
+speakup_apollo ?
+speakup_audptr ?
+speakup_bns ?
+speakup_decext ?
+speakup_dectlk ?
+speakup_dtlk ?
+speakup_dummy ?
+speakup_keypc ?
+speakup_ltlk ?
+speakup_soft ?
+speakup_spkout ?
+speakup_txprt ?
+speakup_decpc ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/storage-core-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/storage-core-modules
@@ -0,0 +1,15 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+ata_piix ?
+ata_generic ?
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
+
+# Needed for NVMe disks under VMD PCIe domains
+vmd ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/storage-core-modules.powerpc
+++ linux-ein-5.4.0/debian.master/d-i/modules/storage-core-modules.powerpc
@@ -0,0 +1,13 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop
+
+# Needs to be here for better cdrom initrd layout
+isofs
+
+ps3stor_lib ?
+ps3rom ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/usb-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/usb-modules
@@ -0,0 +1,15 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
+xhci-hcd ?
+xhci-plat-hcd ?
+ehci-tegra ?
+ehci-msm ?
+ehci-platform ?
+uas ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/virtio-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/virtio-modules
@@ -0,0 +1,11 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
+virtio_scsi ?
+hv_vmbus ?
+hv_utils ?
+hv_netvsc ?
+hv_mouse ?
+hv_storvsc ?
+hv_balloon ?
--- linux-ein-5.4.0.orig/debian.master/d-i/modules/vlan-modules
+++ linux-ein-5.4.0/debian.master/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
--- linux-ein-5.4.0.orig/debian.master/d-i/package-list
+++ linux-ein-5.4.0/debian.master/d-i/package-list
@@ -0,0 +1,203 @@
+Package: kernel-image
+Provides: ext3-modules, ext4-modules, squashfs-modules
+Provides_amd64: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_i386: efi-modules, ext3-modules, ext4-modules, squashfs-modules
+Provides_ppc64el: ext3-modules, ext4-modules, fat-modules, squashfs-modules
+Provides_s390x: ext3-modules, ext4-modules, ppp-modules, squashfs-modules
+Description: kernel image and system map
+
+Package: dasd-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: DASD storage support
+
+Package: dasd-extra-modules
+Depends: dasd-modules
+Priority: extra
+Description: DASD storage support -- extras
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: ext2-modules, jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: btrfs-modules, ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Provides: crypto-dm-modules
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Provides: nbd-modules
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
+Package: ipmi-modules
+Depends: kernel-image
+Priority: standard
+Description: ipmi modules
+
+Package: multipath-modules
+Depends: kernel-image
+Priority: extra
+Description: DM-Multipath support
+  This package contains modules for device-mapper multipath support.
+
--- linux-ein-5.4.0.orig/debian.master/etc/getabis
+++ linux-ein-5.4.0/debian.master/etc/getabis
@@ -0,0 +1,19 @@
+repo_list=(
+	"http://archive.ubuntu.com/ubuntu/pool/main/l/linux"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux"
+	"http://archive.ubuntu.com/ubuntu/pool/universe/l/linux"
+	"http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/pool/main/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/ppa2/ubuntu/pool/main/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/unstable/ubuntu/pool/main/l/linux"
+	"http://ppa.launchpad.net/canonical-kernel-team/bootstrap/ubuntu/pool/main/l/linux"
+)
+
+package_prefixes linux-buildinfo
+
+getall armhf generic
+getall armhf generic-lpae
+getall amd64 generic lowlatency
+getall arm64 generic
+getall ppc64el generic
+getall s390x generic
--- linux-ein-5.4.0.orig/debian.master/etc/kernelconfig
+++ linux-ein-5.4.0/debian.master/etc/kernelconfig
@@ -0,0 +1,7 @@
+if [ "$variant" = "ports" ]; then
+	archs=""
+	family='ports'
+else
+	archs="amd64 i386 armhf arm64 ppc64el s390x"
+	family='ubuntu'
+fi
--- linux-ein-5.4.0.orig/debian.master/modprobe.d/common.conf
+++ linux-ein-5.4.0/debian.master/modprobe.d/common.conf
@@ -0,0 +1,3 @@
+# LP:1434842 -- disable OSS drivers by default to allow pulseaudio to emulate
+blacklist snd-mixer-oss
+blacklist snd-pcm-oss
--- linux-ein-5.4.0.orig/debian.master/reconstruct
+++ linux-ein-5.4.0/debian.master/reconstruct
@@ -0,0 +1,123 @@
+# Recreate any symlinks created since the orig.
+chmod +x 'debian/cloud-tools/hv_get_dhcp_info'
+chmod +x 'debian/cloud-tools/hv_get_dns_info'
+chmod +x 'debian/cloud-tools/hv_set_ifconfig'
+chmod +x 'debian/rules'
+chmod +x 'debian/scripts/abi-check'
+chmod +x 'debian/scripts/config-check'
+chmod +x 'debian/scripts/control-create'
+chmod +x 'debian/scripts/dkms-build'
+chmod +x 'debian/scripts/dkms-build--nvidia-N'
+chmod +x 'debian/scripts/dkms-build--virtualbox-guest'
+chmod +x 'debian/scripts/dkms-build-configure--zfs'
+chmod +x 'debian/scripts/file-downloader'
+chmod +x 'debian/scripts/link-headers'
+chmod +x 'debian/scripts/misc/annotations'
+chmod +x 'debian/scripts/misc/arch-has-odm-enabled.sh'
+chmod +x 'debian/scripts/misc/final-checks'
+chmod +x 'debian/scripts/misc/find-missing-sauce.sh'
+chmod +x 'debian/scripts/misc/find-obsolete-firmware'
+chmod +x 'debian/scripts/misc/fips-checks'
+chmod +x 'debian/scripts/misc/fw-to-ihex.sh'
+chmod +x 'debian/scripts/misc/gen-auto-reconstruct'
+chmod +x 'debian/scripts/misc/get-firmware'
+chmod +x 'debian/scripts/misc/getabis'
+chmod +x 'debian/scripts/misc/git-ubuntu-log'
+chmod +x 'debian/scripts/misc/insert-changes.pl'
+chmod +x 'debian/scripts/misc/insert-mainline-changes'
+chmod +x 'debian/scripts/misc/insert-ubuntu-changes'
+chmod +x 'debian/scripts/misc/kernel-wedge-arch.pl'
+chmod +x 'debian/scripts/misc/kernelconfig'
+chmod +x 'debian/scripts/misc/migrate-annotations'
+chmod +x 'debian/scripts/misc/retag'
+chmod +x 'debian/scripts/misc/splitconfig.pl'
+chmod +x 'debian/scripts/misc/tristate.sh'
+chmod +x 'debian/scripts/misc/update-aufs.sh'
+chmod +x 'debian/scripts/module-check'
+chmod +x 'debian/scripts/module-inclusion'
+chmod +x 'debian/scripts/retpoline-check'
+chmod +x 'debian/scripts/retpoline-extract'
+chmod +x 'debian/scripts/retpoline-extract-one'
+chmod +x 'debian/templates/extra.postinst.in'
+chmod +x 'debian/templates/extra.postrm.in'
+chmod +x 'debian/templates/headers.postinst.in'
+chmod +x 'debian/templates/image.postinst.in'
+chmod +x 'debian/templates/image.postrm.in'
+chmod +x 'debian/templates/image.preinst.in'
+chmod +x 'debian/templates/image.prerm.in'
+chmod +x 'debian/tests-build/check-aliases'
+chmod +x 'debian/tests/rebuild'
+chmod +x 'debian/tests/ubuntu-regression-suite'
+chmod +x 'samples/bpf/lwt_len_hist.sh'
+chmod +x 'samples/bpf/test_lwt_bpf.sh'
+chmod +x 'scripts/kmsg-doc'
+chmod +x 'scripts/parse-maintainers.pl'
+chmod +x 'tools/testing/selftests/net/fib_nexthop_nongw.sh'
+chmod +x 'tools/testing/selftests/netfilter/conntrack_vrf.sh'
+chmod +x 'update-dkms-versions'
+chmod +x 'update-version-dkms'
+# Remove any files deleted from the orig.
+rm -f 'Documentation/devicetree/bindings/phy/amlogic,meson-g12a-usb3-pcie-phy.yaml'
+rm -f 'Documentation/networking/decnet.txt'
+rm -f 'arch/alpha/include/asm/bugs.h'
+rm -f 'arch/ia64/include/asm/bugs.h'
+rm -f 'arch/m68k/include/asm/bugs.h'
+rm -f 'arch/parisc/include/asm/bugs.h'
+rm -f 'arch/parisc/kernel/module.lds'
+rm -f 'arch/parisc/lib/string.S'
+rm -f 'arch/powerpc/include/asm/bugs.h'
+rm -f 'arch/powerpc/include/uapi/asm/bpf_perf_event.h'
+rm -f 'arch/sh/include/asm/bugs.h'
+rm -f 'arch/sparc/include/asm/bugs.h'
+rm -f 'arch/um/include/asm/bugs.h'
+rm -f 'arch/um/kernel/gmon_syms.c'
+rm -f 'arch/x86/events/intel/rapl.c'
+rm -f 'arch/x86/include/asm/refcount.h'
+rm -f 'arch/xtensa/include/asm/bugs.h'
+rm -f 'drivers/crypto/hisilicon/sgl.h'
+rm -f 'drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h'
+rm -f 'drivers/iio/adc/stx104.c'
+rm -f 'drivers/input/serio/i8042-ppcio.h'
+rm -f 'drivers/net/can/dev.c'
+rm -f 'drivers/net/can/rx-offload.c'
+rm -f 'drivers/net/phy/mdio-i2c.h'
+rm -f 'drivers/net/phy/mdio-xgene.h'
+rm -f 'drivers/staging/mt7621-dma/mtk-hsdma.c'
+rm -f 'include/Kbuild'
+rm -f 'include/asm-generic/bugs.h'
+rm -f 'include/linux/kd.h'
+rm -f 'include/net/dn.h'
+rm -f 'include/net/dn_dev.h'
+rm -f 'include/net/dn_fib.h'
+rm -f 'include/net/dn_neigh.h'
+rm -f 'include/net/dn_nsp.h'
+rm -f 'include/net/dn_route.h'
+rm -f 'include/trace/events/random.h'
+rm -f 'include/uapi/linux/dn.h'
+rm -f 'include/uapi/linux/netfilter_decnet.h'
+rm -f 'include/uapi/rdma/nes-abi.h'
+rm -f 'kernel/elfcore.c'
+rm -f 'net/decnet/Kconfig'
+rm -f 'net/decnet/Makefile'
+rm -f 'net/decnet/README'
+rm -f 'net/decnet/af_decnet.c'
+rm -f 'net/decnet/dn_dev.c'
+rm -f 'net/decnet/dn_fib.c'
+rm -f 'net/decnet/dn_neigh.c'
+rm -f 'net/decnet/dn_nsp_in.c'
+rm -f 'net/decnet/dn_nsp_out.c'
+rm -f 'net/decnet/dn_route.c'
+rm -f 'net/decnet/dn_rules.c'
+rm -f 'net/decnet/dn_table.c'
+rm -f 'net/decnet/dn_timer.c'
+rm -f 'net/decnet/netfilter/Kconfig'
+rm -f 'net/decnet/netfilter/Makefile'
+rm -f 'net/decnet/netfilter/dn_rtmsg.c'
+rm -f 'net/decnet/sysctl_net_decnet.c'
+rm -f 'net/sched/cls_rsvp.c'
+rm -f 'net/sched/cls_rsvp.h'
+rm -f 'net/sched/cls_rsvp6.c'
+rm -f 'net/sched/cls_tcindex.c'
+rm -f 'net/xfrm/xfrm_interface.c'
+rm -f 'tools/build/feature/test-libpython-version.c'
+exit 0
--- linux-ein-5.4.0.orig/debian.master/rules.d/amd64.mk
+++ linux-ein-5.4.0/debian.master/rules.d/amd64.mk
@@ -0,0 +1,27 @@
+human_arch	= 64 bit x86
+build_arch	= x86
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours	= generic lowlatency
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+uefi_signed     = true
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf   = true
+do_tools_perf_jvmti = true
+do_tools_bpftool = true
+do_tools_x86	= true
+do_tools_hyperv	= true
+do_tools_host = true
+do_extras_package = true
+do_tools_common = true
+do_tools_acpidbg = true
+do_zfs		= true
+do_dkms_vbox    = true
+do_dkms_wireguard = true
+do_odm_drivers    = true
--- linux-ein-5.4.0.orig/debian.master/rules.d/arm64.mk
+++ linux-ein-5.4.0/debian.master/rules.d/arm64.mk
@@ -0,0 +1,24 @@
+human_arch	= ARMv8
+build_arch	= arm64
+header_arch	= arm64
+defconfig	= defconfig
+flavours	= generic
+build_image_generic	= Image.gz
+kernel_file_generic	= arch/$(build_arch)/boot/Image.gz
+install_file	= vmlinuz
+no_dumpfile = true
+uefi_signed     = true
+
+loader		= grub
+vdso		= vdso_install
+
+do_extras_package = true
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf   = true
+do_tools_perf_jvmti = true
+do_tools_bpftool = true
+
+do_dtbs		= true
+do_zfs		= true
+do_dkms_wireguard = true
--- linux-ein-5.4.0.orig/debian.master/rules.d/armhf.mk
+++ linux-ein-5.4.0/debian.master/rules.d/armhf.mk
@@ -0,0 +1,21 @@
+human_arch	= ARM (hard float)
+build_arch	= arm
+header_arch	= arm
+defconfig	= defconfig
+flavours	= generic generic-lpae
+build_image	= zImage
+kernel_file	= arch/$(build_arch)/boot/zImage
+install_file	= vmlinuz
+no_dumpfile	= true
+
+loader		= grub
+
+do_tools_usbip  = true
+do_tools_cpupower = true
+do_tools_perf	= true
+do_tools_perf_jvmti = true
+do_tools_bpftool = true
+
+do_dtbs		= true
+
+do_dkms_wireguard = true
--- linux-ein-5.4.0.orig/debian.master/rules.d/hooks.mk
+++ linux-ein-5.4.0/debian.master/rules.d/hooks.mk
@@ -0,0 +1 @@
+do_enforce_all = true
--- linux-ein-5.4.0.orig/debian.master/rules.d/i386.mk
+++ linux-ein-5.4.0/debian.master/rules.d/i386.mk
@@ -0,0 +1,19 @@
+human_arch	= 32 bit x86
+build_arch	= i386
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours        = generic lowlatency
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+do_flavour_image_package = false
+do_tools	= false
+do_tools_common	= false
+do_extras_package = false
+do_source_package = false
+do_doc_package	= false
+do_flavour_header_package = false
+do_common_headers_indep = false
--- linux-ein-5.4.0.orig/debian.master/rules.d/ppc64el.mk
+++ linux-ein-5.4.0/debian.master/rules.d/ppc64el.mk
@@ -0,0 +1,22 @@
+human_arch	= PowerPC 64el
+build_arch	= powerpc
+header_arch	= $(build_arch)
+defconfig	= pseries_le_defconfig
+flavours	= generic
+build_image	= vmlinux.strip
+kernel_file     = arch/powerpc/boot/vmlinux.strip
+install_file	= vmlinux
+no_dumpfile	= true
+vdso		= vdso_install
+loader		= grub
+do_extras_package = true
+opal_signed       = true
+do_tools_usbip    = true
+do_tools_cpupower = true
+do_tools_perf	  = true
+do_tools_perf_jvmti = true
+do_tools_bpftool  = true
+
+#do_flavour_image_package = false
+do_zfs		= true
+do_dkms_wireguard = true
--- linux-ein-5.4.0.orig/debian.master/rules.d/riscv64.mk
+++ linux-ein-5.4.0/debian.master/rules.d/riscv64.mk
@@ -0,0 +1,21 @@
+human_arch	= RISC-V
+build_arch	= riscv
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours        = generic
+build_image	= Image
+kernel_file	= arch/$(build_arch)/boot/Image
+install_file	= vmlinuz
+
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+
+do_flavour_image_package = false
+do_tools	= false
+do_tools_common	= false
+do_extras_package = false
+do_source_package = false
+do_doc_package	= false
+do_flavour_header_package = false
+do_common_headers_indep = false
--- linux-ein-5.4.0.orig/debian.master/rules.d/s390x.mk
+++ linux-ein-5.4.0/debian.master/rules.d/s390x.mk
@@ -0,0 +1,22 @@
+human_arch      = System 390x
+build_arch      = s390
+header_arch     = $(build_arch)
+defconfig       = defconfig
+flavours        = generic
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+
+vdso		= vdso_install
+no_dumpfile	= true
+
+do_extras_package = true
+sipl_signed       = true
+do_tools_usbip    = true
+do_tools_cpupower = true
+do_tools_perf     = true
+do_tools_perf_jvmti = true
+do_tools_bpftool  = true
+
+do_zfs		= true
+do_dkms_wireguard = true
--- linux-ein-5.4.0.orig/debian.master/rules.d/x32.mk
+++ linux-ein-5.4.0/debian.master/rules.d/x32.mk
@@ -0,0 +1,14 @@
+human_arch	= 64 bit x86 (32 bit userspace)
+build_arch	= x86
+header_arch	= $(build_arch)
+defconfig	= defconfig
+flavours	= 
+build_image	= bzImage
+kernel_file	= arch/$(build_arch)/boot/bzImage
+install_file	= vmlinuz
+loader		= grub
+vdso		= vdso_install
+no_dumpfile	= true
+uefi_signed     = true
+
+do_flavour_image_package = false
--- linux-ein-5.4.0.orig/debian.master/tracking-bug
+++ linux-ein-5.4.0/debian.master/tracking-bug
@@ -0,0 +1 @@
+2048282 2024.01.08-1
--- linux-ein-5.4.0.orig/debian.master/upstream-stable
+++ linux-ein-5.4.0/debian.master/upstream-stable
@@ -0,0 +1,3 @@
+# The following upstream stable releases have been ported:
+[upstream-stable]
+    linux-5.4.y = v5.4.259
--- linux-ein-5.4.0.orig/debian/bpfilter-modules.ignore
+++ linux-ein-5.4.0/debian/bpfilter-modules.ignore
@@ -0,0 +1 @@
+bpfilter
--- linux-ein-5.4.0.orig/debian/canonical-certs.pem
+++ linux-ein-5.4.0/debian/canonical-certs.pem
@@ -0,0 +1,246 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            c7:7e:51:6a:1c:25:cd:40
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: CN = Canonical Ltd. Live Patch Signing
+        Validity
+            Not Before: Jul 18 23:41:27 2016 GMT
+            Not After : Jul 16 23:41:27 2026 GMT
+        Subject: CN = Canonical Ltd. Live Patch Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:bd:74:ee:72:b3:4a:ab:e6:31:e8:29:24:c2:bd:
+                    46:98:32:c0:39:ee:a3:fb:8a:ad:fe:ab:1a:5b:a3:
+                    2e:a1:80:db:79:61:9e:47:79:2c:75:57:a2:21:f0:
+                    93:f6:87:f2:9b:4b:9d:2f:b3:58:61:28:3c:41:70:
+                    13:16:a1:72:90:c9:d5:16:71:7c:e0:30:f9:28:5e:
+                    48:20:36:00:69:b7:59:9f:a3:ec:a8:eb:55:41:9f:
+                    38:1e:22:4a:57:20:f4:83:59:49:c5:00:93:d3:33:
+                    02:92:d1:fc:f0:84:3b:4a:5b:8f:b6:73:9a:89:fa:
+                    30:1e:e6:2a:68:f2:91:ef:59:57:3d:dc:1c:52:6f:
+                    5e:e6:9b:b5:b8:7c:98:c9:13:d1:39:68:01:67:91:
+                    e0:d3:67:72:16:0a:5e:16:83:45:31:4f:b5:2b:b3:
+                    f6:40:86:89:3a:84:6e:6f:16:61:bc:70:84:be:5a:
+                    13:36:7b:82:ea:07:19:fc:18:c1:16:c6:32:0b:7d:
+                    2c:6b:c4:21:b9:38:6b:31:dc:d9:0c:ad:56:40:68:
+                    7c:e3:c6:64:8e:bf:1c:e0:72:3e:6c:db:d2:73:79:
+                    da:d7:c5:2f:5d:04:7d:b0:07:1e:95:dd:2a:47:5e:
+                    bf:3e:3a:c8:66:f6:67:0f:d4:2a:f1:e2:71:59:d2:
+                    6c:7b:a0:37:ac:e6:97:80:30:13:97:48:d5:74:fc:
+                    38:68:e4:57:cb:99:69:5a:84:27:ac:98:51:e4:64:
+                    bd:91:62:e8:58:27:06:2a:b9:0b:b8:08:e5:e5:b4:
+                    51:a7:a2:10:df:4e:07:6c:a0:3b:96:f2:6e:df:75:
+                    8c:97:1e:64:a0:9a:86:9b:98:26:f9:d8:b7:de:5b:
+                    21:b7:af:89:01:a3:f7:98:6b:da:19:ba:86:ef:ef:
+                    f1:ce:bb:2f:89:ed:c0:b6:1b:e5:5b:f8:90:11:9a:
+                    52:93:e9:be:f7:35:b9:08:cb:ba:c3:ed:2f:73:af:
+                    cc:96:07:55:b5:de:f6:03:f6:f1:89:f9:21:40:76:
+                    c1:69:f2:61:cc:9a:94:df:9c:ec:6a:65:38:be:d1:
+                    4e:2a:87:c7:2f:3e:53:ae:8b:9f:54:a1:09:59:64:
+                    25:aa:a9:d8:44:a9:a8:a0:71:e1:32:aa:4c:32:fd:
+                    44:28:cc:9c:6f:8e:db:81:7e:6f:fa:00:56:c5:e5:
+                    03:46:63:fb:8e:71:8d:e3:13:91:9f:ac:60:3e:64:
+                    f3:df:25:34:09:fa:2d:96:9f:16:05:ea:93:f5:e6:
+                    00:08:27:32:7b:3c:bd:ee:70:24:6c:3b:55:e9:db:
+                    f4:10:2d:20:06:b4:ca:e9:29:65:55:ad:f6:52:54:
+                    5f:e5:a3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+            X509v3 Authority Key Identifier: 
+                keyid:14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+
+    Signature Algorithm: sha512WithRSAEncryption
+         30:e7:48:02:37:e9:28:cf:04:a2:4d:5c:fa:d8:4e:c9:76:c7:
+         14:3f:bd:2c:51:3d:33:f0:1a:bc:49:f1:47:95:8f:69:d8:a9:
+         54:14:44:6c:4d:9f:55:82:08:1e:c6:5b:d5:91:d9:bc:2e:b0:
+         af:d6:25:65:74:96:aa:36:de:ae:31:a8:11:f2:a4:2c:5a:e1:
+         4f:73:f8:4a:c3:35:b0:76:96:71:f2:b5:7d:4b:75:ee:5d:bf:
+         86:a5:ba:0b:a9:52:cb:ec:ab:e5:23:4b:f2:74:55:28:17:1e:
+         b3:ac:27:ad:45:13:6e:69:b3:5a:be:42:36:29:48:db:e7:5c:
+         22:58:a0:90:82:2c:2a:21:2b:db:f4:64:b7:91:5d:1f:2c:48:
+         a4:1a:85:e3:86:a5:aa:19:cd:19:e8:a5:fb:a3:7b:94:77:48:
+         25:a4:cf:a0:cf:71:82:5c:6f:71:22:7c:d6:97:a0:53:bb:ec:
+         30:f6:cb:16:fb:7b:fd:16:94:7a:53:6e:bd:04:64:a2:01:10:
+         9f:f0:5b:b5:a6:73:41:9d:5f:6f:45:73:0d:05:f7:30:6d:39:
+         90:b6:7d:55:7d:4c:2f:ae:5f:38:56:2f:8b:df:f4:bf:12:06:
+         93:6e:0d:02:23:bf:71:91:57:88:e8:bd:62:72:99:00:40:29:
+         1e:c9:13:11:da:7e:8e:e1:d2:a5:0d:bf:f7:d6:ec:01:0d:89:
+         41:cd:d5:dc:d2:f7:5f:33:0d:4c:2f:85:b7:85:b7:81:e4:17:
+         29:f0:74:cf:0e:15:8c:1a:50:0b:08:63:1a:91:4f:e7:76:97:
+         f1:d4:3b:7e:72:d4:c5:45:58:0c:6a:e9:0d:f2:85:d8:91:1e:
+         37:bd:78:e3:39:4d:2e:fd:85:31:c1:a6:3b:6a:cc:2c:53:72:
+         1d:8e:7b:f0:e6:76:86:09:6f:1a:f3:e4:a1:e2:dd:76:5f:b0:
+         8c:e2:2a:54:5d:c1:88:49:90:10:15:42:7d:05:24:53:8c:54:
+         ff:48:18:1a:36:e3:31:d3:54:32:78:0d:fe:f2:3d:aa:0d:37:
+         15:84:b4:36:47:31:e8:85:6e:0b:58:38:ff:21:91:09:c9:a8:
+         43:a3:ea:60:cb:7e:ed:f7:41:6f:4e:91:c1:fd:77:46:e7:d4:
+         e7:86:c0:1b:fd:50:6c:aa:be:00:b3:63:02:ff:4e:c7:a5:57:
+         6e:29:64:e9:54:d5:30:63:38:5f:2d:5a:db:49:5f:14:14:22:
+         d2:81:1f:61:9e:ee:ee:16:66:d6:bc:bd:ac:1b:5c:fb:38:31:
+         95:33:2e:84:6e:7a:de:ee:b9:fc:97:17:06:13:bf:70:1c:6e:
+         76:ed:66:38:e2:70:08:00
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIJAMd+UWocJc1AMA0GCSqGSIb3DQEBDQUAMCwxKjAoBgNV
+BAMMIUNhbm9uaWNhbCBMdGQuIExpdmUgUGF0Y2ggU2lnbmluZzAeFw0xNjA3MTgy
+MzQxMjdaFw0yNjA3MTYyMzQxMjdaMCwxKjAoBgNVBAMMIUNhbm9uaWNhbCBMdGQu
+IExpdmUgUGF0Y2ggU2lnbmluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAL107nKzSqvmMegpJMK9RpgywDnuo/uKrf6rGlujLqGA23lhnkd5LHVXoiHw
+k/aH8ptLnS+zWGEoPEFwExahcpDJ1RZxfOAw+SheSCA2AGm3WZ+j7KjrVUGfOB4i
+Slcg9INZScUAk9MzApLR/PCEO0pbj7Zzmon6MB7mKmjyke9ZVz3cHFJvXuabtbh8
+mMkT0TloAWeR4NNnchYKXhaDRTFPtSuz9kCGiTqEbm8WYbxwhL5aEzZ7guoHGfwY
+wRbGMgt9LGvEIbk4azHc2QytVkBofOPGZI6/HOByPmzb0nN52tfFL10EfbAHHpXd
+Kkdevz46yGb2Zw/UKvHicVnSbHugN6zml4AwE5dI1XT8OGjkV8uZaVqEJ6yYUeRk
+vZFi6FgnBiq5C7gI5eW0UaeiEN9OB2ygO5bybt91jJceZKCahpuYJvnYt95bIbev
+iQGj95hr2hm6hu/v8c67L4ntwLYb5Vv4kBGaUpPpvvc1uQjLusPtL3OvzJYHVbXe
+9gP28Yn5IUB2wWnyYcyalN+c7GplOL7RTiqHxy8+U66Ln1ShCVlkJaqp2ESpqKBx
+4TKqTDL9RCjMnG+O24F+b/oAVsXlA0Zj+45xjeMTkZ+sYD5k898lNAn6LZafFgXq
+k/XmAAgnMns8ve5wJGw7Venb9BAtIAa0yukpZVWt9lJUX+WjAgMBAAGjXTBbMAwG
+A1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBQU3zTRqHzzdiWr7AOe
+8r9SEkm5aTAfBgNVHSMEGDAWgBQU3zTRqHzzdiWr7AOe8r9SEkm5aTANBgkqhkiG
+9w0BAQ0FAAOCAgEAMOdIAjfpKM8Eok1c+thOyXbHFD+9LFE9M/AavEnxR5WPadip
+VBREbE2fVYIIHsZb1ZHZvC6wr9YlZXSWqjberjGoEfKkLFrhT3P4SsM1sHaWcfK1
+fUt17l2/hqW6C6lSy+yr5SNL8nRVKBces6wnrUUTbmmzWr5CNilI2+dcIligkIIs
+KiEr2/Rkt5FdHyxIpBqF44alqhnNGeil+6N7lHdIJaTPoM9xglxvcSJ81pegU7vs
+MPbLFvt7/RaUelNuvQRkogEQn/BbtaZzQZ1fb0VzDQX3MG05kLZ9VX1ML65fOFYv
+i9/0vxIGk24NAiO/cZFXiOi9YnKZAEApHskTEdp+juHSpQ2/99bsAQ2JQc3V3NL3
+XzMNTC+Ft4W3geQXKfB0zw4VjBpQCwhjGpFP53aX8dQ7fnLUxUVYDGrpDfKF2JEe
+N7144zlNLv2FMcGmO2rMLFNyHY578OZ2hglvGvPkoeLddl+wjOIqVF3BiEmQEBVC
+fQUkU4xU/0gYGjbjMdNUMngN/vI9qg03FYS0Nkcx6IVuC1g4/yGRCcmoQ6PqYMt+
+7fdBb06Rwf13RufU54bAG/1QbKq+ALNjAv9Ox6VXbilk6VTVMGM4Xy1a20lfFBQi
+0oEfYZ7u7hZm1ry9rBtc+zgxlTMuhG563u65/JcXBhO/cBxudu1mOOJwCAA=
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e9:df:13:0f:92:92:a9:b7
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Validity
+            Not Before: May 31 16:06:09 2016 GMT
+            Not After : May 29 16:06:09 2026 GMT
+        Subject: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:b3:b0:4f:c6:0a:77:8b:f9:d1:53:33:34:d2:80:
+                    b5:63:6f:e1:f6:a2:83:99:d5:b6:b1:e4:99:91:fa:
+                    6c:19:c6:d0:91:2a:b9:7d:b5:98:a6:0d:28:01:b8:
+                    7c:8e:aa:38:ec:51:37:33:96:f0:b0:9b:8d:86:5f:
+                    67:23:69:2f:d7:c2:f3:fb:c5:d7:f9:04:ff:f2:e5:
+                    61:68:b7:29:b9:c6:8e:4b:4d:2d:8f:92:0c:00:b3:
+                    a3:d2:5a:08:64:cd:f2:09:0b:a5:0e:e6:64:75:d5:
+                    41:f4:4d:49:3a:0d:dc:b9:27:8e:c4:d6:b1:df:8f:
+                    6c:f0:e4:f7:31:cb:a9:04:a1:f9:a7:aa:15:da:59:
+                    03:4d:46:14:d0:dd:bf:e0:f5:9e:f0:71:0c:70:78:
+                    2b:08:fb:e0:b6:68:a4:74:12:9d:f7:f2:64:88:17:
+                    2a:8a:ed:1a:91:b5:6c:13:bd:4c:10:0a:0b:72:0b:
+                    90:db:7d:f3:78:44:4c:d2:a5:41:f7:1c:77:7d:5a:
+                    8a:54:bc:8f:fe:b7:ee:e1:bc:59:37:c4:d4:e8:14:
+                    d0:5b:42:9b:04:00:8e:6d:83:8a:25:21:5b:08:c4:
+                    7b:b2:d9:99:52:c9:5e:59:6d:c4:aa:52:59:e2:e4:
+                    2f:7e:7e:ac:05:01:99:bf:13:72:b7:45:c5:17:da:
+                    8a:d5:3e:71:73:2e:d8:aa:e6:eb:5a:d0:9a:c4:93:
+                    f3:be:eb:d2:47:25:34:16:29:fa:dd:9a:2f:b1:20:
+                    e5:41:4e:ed:ea:51:7c:23:80:ba:3d:b5:3a:0b:8c:
+                    9c:85:48:6c:3c:8b:29:2f:2f:12:c7:52:34:02:ea:
+                    0f:ac:53:23:3c:f8:3e:40:1b:30:63:e9:2d:e6:f6:
+                    58:cc:51:f9:eb:08:4a:b4:c7:16:80:d1:8b:c2:64:
+                    6a:71:a9:70:31:a4:a7:3a:c0:93:99:1b:0e:42:c1:
+                    00:6d:43:27:99:6c:e5:fd:23:16:c1:8e:b5:66:17:
+                    2b:4c:53:5a:6d:1e:96:16:13:6a:c6:d4:85:5b:74:
+                    2e:ce:7c:45:2f:ad:cb:75:9e:5e:91:bd:9a:6a:86:
+                    1a:06:bd:39:be:a3:50:56:ea:e1:f6:e3:95:69:d7:
+                    31:e4:66:f7:36:b5:51:c2:22:b4:9c:74:9c:44:0b:
+                    0e:16:5f:53:f0:23:c6:b9:40:bd:d6:b8:7d:1b:f6:
+                    73:f6:27:e7:c0:e3:65:a0:58:ab:5c:59:b7:80:8c:
+                    8c:04:b4:a9:ae:a0:51:40:10:3b:63:59:49:87:d1:
+                    9b:df:a3:8c:c4:2e:eb:70:c1:0a:18:1f:cb:22:c2:
+                    f2:4a:65:0d:e5:81:74:d8:ce:72:c6:35:be:ba:63:
+                    72:c4:f9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+            X509v3 Authority Key Identifier: 
+                keyid:88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+
+    Signature Algorithm: sha512WithRSAEncryption
+         04:85:16:27:58:ba:71:28:57:86:7b:c2:83:db:e5:72:6f:1e:
+         b2:1c:63:b0:db:ad:c0:42:96:c0:4f:65:f6:35:4d:c0:07:0d:
+         46:be:d3:1e:ec:f1:22:18:2a:18:5d:bb:69:a6:a6:d4:0d:c3:
+         57:03:b9:e7:45:49:28:ca:6d:98:17:68:97:cb:7b:36:81:0a:
+         37:9e:34:79:f3:e1:0e:5b:77:43:bb:5a:a5:45:b7:16:50:86:
+         fd:12:a4:96:0f:15:19:09:1c:e1:fa:80:a5:80:09:be:bb:c8:
+         26:0b:3e:de:03:d2:c2:18:a4:8d:0d:de:c5:32:82:0b:fb:75:
+         55:66:1a:2a:bb:e4:bd:25:91:20:15:d4:be:b8:3f:53:e3:fb:
+         a8:c3:55:e3:d5:e7:82:18:95:df:39:09:a7:fc:89:6e:b4:1c:
+         aa:2d:e8:67:c2:0d:34:34:3e:f9:fa:0b:ce:81:92:11:ae:12:
+         0a:fe:35:63:ce:46:29:c4:2b:4f:cb:4e:05:0a:a1:11:e2:35:
+         f6:5a:5d:b5:e8:d2:6f:4c:fc:3d:24:a6:03:4b:dd:98:6b:f2:
+         71:58:16:1d:a5:25:ef:d9:06:7c:e8:db:7b:88:6a:89:5c:59:
+         01:92:64:db:44:08:63:6c:7c:32:d6:55:98:63:09:26:61:67:
+         0a:fe:5d:ee:fd:23:59:b3:4d:91:c1:4d:41:8b:cd:20:58:fa:
+         2d:45:e5:bd:1d:69:5c:03:a0:49:a6:97:54:13:b6:c9:e0:f8:
+         56:83:a1:2a:c3:f4:6c:fd:ab:20:ca:3d:9c:95:c0:cf:04:bb:
+         46:39:cf:34:81:65:45:27:64:01:7d:62:b3:b8:72:ea:10:d5:
+         0f:53:7d:39:88:25:09:6f:8c:bc:e0:49:bb:39:e2:0e:8d:cf:
+         56:4d:c1:82:6d:87:d2:e7:fc:c0:9f:a7:65:60:d2:6c:65:18:
+         59:38:6e:d0:9c:d7:c3:81:9a:9a:29:8f:83:84:c3:b5:44:ff:
+         28:ac:13:17:64:f2:26:13:d9:55:06:b7:69:68:7c:bf:ec:d1:
+         8c:ef:b7:da:76:e1:07:73:c6:31:62:31:cb:b6:e1:e7:7f:0c:
+         c3:f7:4c:52:be:25:36:8e:a1:bb:60:02:c3:cb:3e:6f:29:fc:
+         7f:6a:fa:f8:ec:0a:df:49:e2:57:0e:bc:bd:93:c3:1b:d5:36:
+         8a:ff:d8:1b:17:c7:1f:cb:69:00:d2:54:9e:ad:61:89:92:95:
+         11:f8:ea:17:83:9f:9b:09:7d:b8:94:a4:ea:f5:ae:ea:dc:dd:
+         62:b9:9e:68:9c:18:ec:19:c4:13:08:c8:b1:62:ab:8e:84:69:
+         11:3c:da:ea:0d:b7:22:bd
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIJAOnfEw+Skqm3MA0GCSqGSIb3DQEBDQUAMH0xCzAJBgNV
+BAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4GA1UEBwwHRG91Z2xhczEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMMJENhbm9uaWNhbCBMdGQu
+IEtlcm5lbCBNb2R1bGUgU2lnbmluZzAeFw0xNjA1MzExNjA2MDlaFw0yNjA1Mjkx
+NjA2MDlaMH0xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4G
+A1UEBwwHRG91Z2xhczEXMBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMM
+JENhbm9uaWNhbCBMdGQuIEtlcm5lbCBNb2R1bGUgU2lnbmluZzCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBALOwT8YKd4v50VMzNNKAtWNv4faig5nVtrHk
+mZH6bBnG0JEquX21mKYNKAG4fI6qOOxRNzOW8LCbjYZfZyNpL9fC8/vF1/kE//Ll
+YWi3KbnGjktNLY+SDACzo9JaCGTN8gkLpQ7mZHXVQfRNSToN3LknjsTWsd+PbPDk
+9zHLqQSh+aeqFdpZA01GFNDdv+D1nvBxDHB4Kwj74LZopHQSnffyZIgXKortGpG1
+bBO9TBAKC3ILkNt983hETNKlQfccd31ailS8j/637uG8WTfE1OgU0FtCmwQAjm2D
+iiUhWwjEe7LZmVLJXlltxKpSWeLkL35+rAUBmb8TcrdFxRfaitU+cXMu2Krm61rQ
+msST877r0kclNBYp+t2aL7Eg5UFO7epRfCOAuj21OguMnIVIbDyLKS8vEsdSNALq
+D6xTIzz4PkAbMGPpLeb2WMxR+esISrTHFoDRi8JkanGpcDGkpzrAk5kbDkLBAG1D
+J5ls5f0jFsGOtWYXK0xTWm0elhYTasbUhVt0Ls58RS+ty3WeXpG9mmqGGga9Ob6j
+UFbq4fbjlWnXMeRm9za1UcIitJx0nEQLDhZfU/AjxrlAvda4fRv2c/Yn58DjZaBY
+q1xZt4CMjAS0qa6gUUAQO2NZSYfRm9+jjMQu63DBChgfyyLC8kplDeWBdNjOcsY1
+vrpjcsT5AgMBAAGjXTBbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1Ud
+DgQWBBSI91LlYKHgc34xFjpGate3CoUMGTAfBgNVHSMEGDAWgBSI91LlYKHgc34x
+FjpGate3CoUMGTANBgkqhkiG9w0BAQ0FAAOCAgEABIUWJ1i6cShXhnvCg9vlcm8e
+shxjsNutwEKWwE9l9jVNwAcNRr7THuzxIhgqGF27aaam1A3DVwO550VJKMptmBdo
+l8t7NoEKN540efPhDlt3Q7tapUW3FlCG/RKklg8VGQkc4fqApYAJvrvIJgs+3gPS
+whikjQ3exTKCC/t1VWYaKrvkvSWRIBXUvrg/U+P7qMNV49XnghiV3zkJp/yJbrQc
+qi3oZ8INNDQ++foLzoGSEa4SCv41Y85GKcQrT8tOBQqhEeI19lpdtejSb0z8PSSm
+A0vdmGvycVgWHaUl79kGfOjbe4hqiVxZAZJk20QIY2x8MtZVmGMJJmFnCv5d7v0j
+WbNNkcFNQYvNIFj6LUXlvR1pXAOgSaaXVBO2yeD4VoOhKsP0bP2rIMo9nJXAzwS7
+RjnPNIFlRSdkAX1is7hy6hDVD1N9OYglCW+MvOBJuzniDo3PVk3Bgm2H0uf8wJ+n
+ZWDSbGUYWThu0JzXw4GamimPg4TDtUT/KKwTF2TyJhPZVQa3aWh8v+zRjO+32nbh
+B3PGMWIxy7bh538Mw/dMUr4lNo6hu2ACw8s+byn8f2r6+OwK30niVw68vZPDG9U2
+iv/YGxfHH8tpANJUnq1hiZKVEfjqF4Ofmwl9uJSk6vWu6tzdYrmeaJwY7BnEEwjI
+sWKrjoRpETza6g23Ir0=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/canonical-revoked-certs.pem
+++ linux-ein-5.4.0/debian/canonical-revoked-certs.pem
@@ -0,0 +1,688 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Apr 12 11:39:08 2012 GMT
+            Not After : Apr 11 11:39:08 2042 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c9:5f:9b:62:8f:0b:b0:64:82:ac:be:c9:e2:62:
+                    e3:4b:d2:9f:1e:8a:d5:61:1a:2b:5d:38:f4:b7:ce:
+                    b9:9a:b8:43:b8:43:97:77:ab:4f:7f:0c:70:46:0b:
+                    fc:7f:6d:c6:6d:ea:80:5e:01:d2:b7:66:1e:87:de:
+                    0d:6d:d0:41:97:a8:a5:af:0c:63:4f:f7:7c:c2:52:
+                    cc:a0:31:a9:bb:89:5d:99:1e:46:6f:55:73:b9:76:
+                    69:ec:d7:c1:fc:21:d6:c6:07:e7:4f:bd:22:de:e4:
+                    a8:5b:2d:db:95:34:19:97:d6:28:4b:21:4c:ca:bb:
+                    1d:79:a6:17:7f:5a:f9:67:e6:5c:78:45:3d:10:6d:
+                    b0:17:59:26:11:c5:57:e3:7f:4e:82:ba:f6:2c:4e:
+                    c8:37:4d:ff:85:15:84:47:e0:ed:3b:7c:7f:bc:af:
+                    e9:01:05:a7:0c:6f:c3:e9:8d:a3:ce:be:a6:e3:cd:
+                    3c:b5:58:2c:9e:c2:03:1c:60:22:37:39:ff:41:02:
+                    c1:29:a4:65:51:ff:33:34:aa:42:15:f9:95:78:fc:
+                    2d:f5:da:8a:85:7c:82:9d:fb:37:2c:6b:a5:a8:df:
+                    7c:55:0b:80:2e:3c:b0:63:e1:cd:38:48:89:e8:14:
+                    06:0b:82:bc:fd:d4:07:68:1b:0f:3e:d9:15:dd:94:
+                    11:1b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                61:48:2A:A2:83:0D:0A:B2:AD:5A:F1:0B:72:50:DA:90:33:DD:CE:F0
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        8f:8a:a1:06:1f:29:b7:0a:4a:d5:c5:fd:81:ab:25:ea:c0:7d:
+        e2:fc:6a:96:a0:79:93:67:ee:05:0e:25:12:25:e4:5a:f6:aa:
+        1a:f1:12:f3:05:8d:87:5e:f1:5a:5c:cb:8d:23:73:65:1d:15:
+        b9:de:22:6b:d6:49:67:c9:a3:c6:d7:62:4e:5c:b5:f9:03:83:
+        40:81:dc:87:9c:3c:3f:1c:0d:51:9f:94:65:0a:84:48:67:e4:
+        a2:f8:a6:4a:f0:e7:cd:cd:bd:94:e3:09:d2:5d:2d:16:1b:05:
+        15:0b:cb:44:b4:3e:61:42:22:c4:2a:5c:4e:c5:1d:a3:e2:e0:
+        52:b2:eb:f4:8b:2b:dc:38:39:5d:fb:88:a1:56:65:5f:2b:4f:
+        26:ff:06:78:10:12:eb:8c:5d:32:e3:c6:45:af:25:9b:a0:ff:
+        8e:ef:47:09:a3:e9:8b:37:92:92:69:76:7e:34:3b:92:05:67:
+        4e:b0:25:ed:bc:5e:5f:8f:b4:d6:ca:40:ff:e4:e2:31:23:0c:
+        85:25:ae:0c:55:01:ec:e5:47:5e:df:5b:bc:14:33:e3:c6:f5:
+        18:b6:d9:f7:dd:b3:b4:a1:31:d3:5a:5c:5d:7d:3e:bf:0a:e4:
+        e4:e8:b4:59:7d:3b:b4:8c:a3:1b:b5:20:a3:b9:3e:84:6f:8c:
+        21:00:c3:39
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIBATANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMjA0MTIxMTM5MDhaFw00MjA0MTEx
+MTM5MDhaMH8xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEXMBUG
+A1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MSswKQYD
+VQQDDCJDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyV+bYo8LsGSCrL7J4mLjS9KfHorVYRor
+XTj0t865mrhDuEOXd6tPfwxwRgv8f23GbeqAXgHSt2Yeh94NbdBBl6ilrwxjT/d8
+wlLMoDGpu4ldmR5Gb1VzuXZp7NfB/CHWxgfnT70i3uSoWy3blTQZl9YoSyFMyrsd
+eaYXf1r5Z+ZceEU9EG2wF1kmEcVX439Ogrr2LE7IN03/hRWER+DtO3x/vK/pAQWn
+DG/D6Y2jzr6m4808tVgsnsIDHGAiNzn/QQLBKaRlUf8zNKpCFfmVePwt9dqKhXyC
+nfs3LGulqN98VQuALjywY+HNOEiJ6BQGC4K8/dQHaBsPPtkV3ZQRGwIDAQABo4Gg
+MIGdMAwGA1UdEwEB/wQCMAAwHwYDVR0lBBgwFgYIKwYBBQUHAwMGCisGAQQBgjcK
+AwYwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl
+MB0GA1UdDgQWBBRhSCqigw0Ksq1a8QtyUNqQM93O8DAfBgNVHSMEGDAWgBStkZkL
+wiqx9RcEjCO2ZVomjjRaYzANBgkqhkiG9w0BAQsFAAOCAQEAj4qhBh8ptwpK1cX9
+gasl6sB94vxqlqB5k2fuBQ4lEiXkWvaqGvES8wWNh17xWlzLjSNzZR0Vud4ia9ZJ
+Z8mjxtdiTly1+QODQIHch5w8PxwNUZ+UZQqESGfkovimSvDnzc29lOMJ0l0tFhsF
+FQvLRLQ+YUIixCpcTsUdo+LgUrLr9Isr3Dg5XfuIoVZlXytPJv8GeBAS64xdMuPG
+Ra8lm6D/ju9HCaPpizeSkml2fjQ7kgVnTrAl7bxeX4+01spA/+TiMSMMhSWuDFUB
+7OVHXt9bvBQz48b1GLbZ992ztKEx01pcXX0+vwrk5Oi0WX07tIyjG7Ugo7k+hG+M
+IQDDOQ==
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 26 21:52:11 2017 GMT
+            Not After : Sep 25 21:52:11 2047 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2017)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ef:9f:fa:9f:19:3a:9d:38:23:91:cc:c4:f9:42:
+                    e0:f8:54:12:82:dc:97:2c:d6:5b:c1:35:eb:ff:4a:
+                    74:06:b5:9d:32:aa:7b:f3:fc:31:5a:34:3e:a1:a4:
+                    44:db:7b:6d:16:af:35:76:e0:9b:99:ad:21:11:c6:
+                    12:4b:ae:24:8f:bb:d3:b2:00:fe:c5:1d:9b:3a:1a:
+                    4a:6c:ca:fa:16:37:85:22:f9:ff:22:fc:40:e0:58:
+                    35:c1:39:27:b4:c6:42:1a:96:d8:a5:c5:95:2e:f7:
+                    c5:1e:21:6e:36:84:f7:a9:a1:e1:f1:03:08:96:65:
+                    71:f8:eb:83:cf:82:f7:9a:44:58:72:00:14:39:29:
+                    4b:e9:78:2f:65:20:b3:80:76:3b:ba:0d:2d:46:f6:
+                    37:05:e7:05:fe:bd:6c:c7:a2:65:b5:06:6e:07:24:
+                    99:a1:c1:cf:e1:0e:5e:49:41:71:17:a8:50:e7:38:
+                    99:e5:6e:b6:db:9f:63:db:56:f4:9c:7d:89:f6:d2:
+                    03:6c:99:83:e0:99:23:39:36:bd:cb:b5:26:7c:7d:
+                    b0:c6:fe:82:7c:52:ed:f9:2c:8f:79:71:3d:a9:2f:
+                    b5:aa:7e:77:a0:fd:69:f9:97:10:a8:b2:c6:7d:88:
+                    9e:a2:19:bd:31:b8:02:2d:34:4d:9d:98:60:82:ad:
+                    04:ff
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                24:2A:DE:75:AC:4A:15:E5:0D:50:C8:4B:0D:45:FF:3E:AE:70:7A:03
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        00:b2:b7:57:b5:2b:5d:16:d3:04:88:6a:d7:77:d5:0d:89:f1:
+        d2:6e:11:d1:8e:f5:62:05:c4:6a:57:df:eb:d2:86:68:f2:fd:
+        a7:37:11:3c:f4:ce:5d:fe:32:5f:31:a2:6b:3a:da:28:c2:88:
+        fa:7f:70:b5:25:99:ea:27:9a:56:6a:9d:b2:0f:14:99:e2:b7:
+        c6:39:1e:8e:a7:76:31:d9:ed:c5:05:8d:48:ae:1b:68:18:14:
+        51:a1:7d:f6:c7:df:cb:9d:eb:a4:3b:0b:ff:c2:07:c5:42:bc:
+        0d:b2:11:fa:37:17:2b:1c:b5:84:48:2d:f9:31:4a:57:49:8e:
+        61:a6:82:11:06:4c:34:ea:9c:2a:47:4d:eb:e0:26:af:da:d2:
+        c2:08:a0:37:35:7b:73:71:de:0b:c4:ba:c8:34:de:20:04:03:
+        6f:46:26:0d:b9:91:02:5b:71:76:cc:45:e4:08:d0:a6:dd:a4:
+        50:d3:d9:04:91:2b:d9:5c:34:88:fc:c2:37:fd:c6:d4:3e:57:
+        f7:6b:ba:7b:d7:02:7a:84:0c:c8:c1:19:cc:bc:fa:52:d5:7f:
+        b3:35:c4:53:5d:70:0a:f6:44:60:8d:a9:11:7a:1b:7d:ae:7b:
+        20:5a:4c:8d:44:f6:c1:a9:61:cb:dc:cb:90:37:d5:28:24:73:
+        87:d0:e0:d8
+-----BEGIN CERTIFICATE-----
+MIIEKDCCAxCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xNzA5MjYyMTUyMTFaFw00NzA5MjUy
+MTUyMTFaMIGGMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV
+BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDEyMDAG
+A1UEAwwpQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoMjAxNykw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvn/qfGTqdOCORzMT5QuD4
+VBKC3Jcs1lvBNev/SnQGtZ0yqnvz/DFaND6hpETbe20WrzV24JuZrSERxhJLriSP
+u9OyAP7FHZs6GkpsyvoWN4Ui+f8i/EDgWDXBOSe0xkIaltilxZUu98UeIW42hPep
+oeHxAwiWZXH464PPgveaRFhyABQ5KUvpeC9lILOAdju6DS1G9jcF5wX+vWzHomW1
+Bm4HJJmhwc/hDl5JQXEXqFDnOJnlbrbbn2PbVvScfYn20gNsmYPgmSM5Nr3LtSZ8
+fbDG/oJ8Uu35LI95cT2pL7Wqfneg/Wn5lxCossZ9iJ6iGb0xuAItNE2dmGCCrQT/
+AgMBAAGjgaAwgZ0wDAYDVR0TAQH/BAIwADAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
+KwYBBAGCNwoDBjAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
+dGlmaWNhdGUwHQYDVR0OBBYEFCQq3nWsShXlDVDISw1F/z6ucHoDMB8GA1UdIwQY
+MBaAFK2RmQvCKrH1FwSMI7ZlWiaONFpjMA0GCSqGSIb3DQEBCwUAA4IBAQAAsrdX
+tStdFtMEiGrXd9UNifHSbhHRjvViBcRqV9/r0oZo8v2nNxE89M5d/jJfMaJrOtoo
+woj6f3C1JZnqJ5pWap2yDxSZ4rfGOR6Op3Yx2e3FBY1IrhtoGBRRoX32x9/Lneuk
+Owv/wgfFQrwNshH6NxcrHLWESC35MUpXSY5hpoIRBkw06pwqR03r4Cav2tLCCKA3
+NXtzcd4LxLrINN4gBANvRiYNuZECW3F2zEXkCNCm3aRQ09kEkSvZXDSI/MI3/cbU
+Plf3a7p71wJ6hAzIwRnMvPpS1X+zNcRTXXAK9kRgjakReht9rnsgWkyNRPbBqWHL
+3MuQN9UoJHOH0ODY
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 3 (0x3)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Oct 26 18:31:14 2018 GMT
+            Not After : Oct 24 18:31:14 2048 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (ESM 2018)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bf:6a:e5:6d:55:7a:ec:7a:11:37:45:9c:4c:8f:
+                    6b:2d:56:d3:74:2b:32:ac:84:2d:ba:cb:cc:ec:8d:
+                    92:22:69:48:a5:d4:f6:75:11:66:2f:cb:b2:fd:9e:
+                    56:ab:e6:f1:52:8e:75:3e:50:bd:25:b3:50:fc:ef:
+                    3d:76:f3:3f:7f:03:f6:e2:a1:25:69:5c:14:98:54:
+                    bd:11:bf:e9:a5:ac:46:91:4b:1d:de:b7:18:2b:c8:
+                    22:83:15:a7:4a:00:8d:9d:e4:c0:da:f7:41:02:fd:
+                    9f:5f:79:93:56:cc:86:e1:b5:e0:39:0e:3c:a2:5b:
+                    fe:c0:56:f0:92:50:5a:2b:67:67:93:56:d7:7a:75:
+                    99:6a:25:b4:63:a8:5f:69:7e:3a:49:58:2a:a7:80:
+                    f6:5a:b4:be:b2:be:a8:8c:45:41:c9:f2:fc:76:a8:
+                    65:ef:99:29:0d:c9:9c:54:6b:0a:f0:4a:0e:61:0d:
+                    ed:99:32:af:12:e2:12:7b:9f:7b:ec:05:c4:e0:b6:
+                    d5:c3:71:28:ae:dd:0b:ba:97:ad:68:0b:76:e9:bf:
+                    e7:01:7e:64:54:39:23:85:36:c8:9d:dd:27:a1:ff:
+                    df:46:36:14:7e:cb:cc:a1:cd:49:0b:6d:c2:0c:45:
+                    99:56:58:7c:87:0d:59:9a:dc:4a:39:3b:1d:d9:15:
+                    2e:b5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                36:51:88:C1:D3:74:D6:B0:7C:3C:8F:24:0F:8E:F7:22:43:3D:6A:8B
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        4c:0f:cd:77:60:b4:6f:53:87:f3:3c:4f:e6:81:5f:a7:1c:cc:
+        60:29:b6:34:6c:4d:08:9b:e2:d2:bd:f6:17:1a:62:79:b8:17:
+        bc:a2:60:59:fd:03:51:c3:b7:6b:de:73:b3:48:95:f5:0b:aa:
+        b6:3c:b4:34:dc:1d:0b:c4:97:62:87:e7:48:d5:8f:c9:ea:e8:
+        91:8f:2a:40:cd:b7:b3:ee:b2:98:9e:fb:37:31:29:e6:8e:2f:
+        0a:39:99:1e:c6:aa:b8:05:62:85:d3:a8:3e:60:38:98:0f:f0:
+        fe:c7:ab:01:a5:6a:a5:7f:70:a6:26:94:76:23:2f:08:89:74:
+        97:c2:2a:ca:22:3e:7a:ea:22:22:08:07:f4:bb:f6:bc:69:9c:
+        4e:44:33:e2:8e:70:17:b0:9b:cb:33:94:66:6d:ff:9a:7d:e9:
+        50:b2:e8:90:14:e4:2b:91:cb:a0:c5:2e:0e:cf:19:ef:44:ef:
+        84:f0:bd:57:9e:26:c2:63:3d:df:fc:a1:84:de:5c:d7:5f:3b:
+        fb:94:61:f0:93:89:1f:cf:c3:b2:d1:90:97:35:7d:b9:8a:ad:
+        e6:05:f0:e8:3b:a1:7c:af:2b:c4:af:18:33:2e:5e:87:db:9d:
+        80:b5:04:fd:00:d0:60:ab:ff:85:77:0f:cb:47:22:c9:b2:85:
+        a8:48:16:e2
+-----BEGIN CERTIFICATE-----
+MIIELDCCAxSgAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xODEwMjYxODMxMTRaFw00ODEwMjQx
+ODMxMTRaMIGKMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV
+BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDE2MDQG
+A1UEAwwtQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoRVNNIDIw
+MTgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2rlbVV67HoRN0Wc
+TI9rLVbTdCsyrIQtusvM7I2SImlIpdT2dRFmL8uy/Z5Wq+bxUo51PlC9JbNQ/O89
+dvM/fwP24qElaVwUmFS9Eb/ppaxGkUsd3rcYK8gigxWnSgCNneTA2vdBAv2fX3mT
+VsyG4bXgOQ48olv+wFbwklBaK2dnk1bXenWZaiW0Y6hfaX46SVgqp4D2WrS+sr6o
+jEVByfL8dqhl75kpDcmcVGsK8EoOYQ3tmTKvEuISe5977AXE4LbVw3Eort0Lupet
+aAt26b/nAX5kVDkjhTbInd0nof/fRjYUfsvMoc1JC23CDEWZVlh8hw1ZmtxKOTsd
+2RUutQIDAQABo4GgMIGdMAwGA1UdEwEB/wQCMAAwHwYDVR0lBBgwFgYIKwYBBQUH
+AwMGCisGAQQBgjcKAwYwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVk
+IENlcnRpZmljYXRlMB0GA1UdDgQWBBQ2UYjB03TWsHw8jyQPjvciQz1qizAfBgNV
+HSMEGDAWgBStkZkLwiqx9RcEjCO2ZVomjjRaYzANBgkqhkiG9w0BAQsFAAOCAQEA
+TA/Nd2C0b1OH8zxP5oFfpxzMYCm2NGxNCJvi0r32FxpiebgXvKJgWf0DUcO3a95z
+s0iV9Quqtjy0NNwdC8SXYofnSNWPyerokY8qQM23s+6ymJ77NzEp5o4vCjmZHsaq
+uAVihdOoPmA4mA/w/serAaVqpX9wpiaUdiMvCIl0l8IqyiI+euoiIggH9Lv2vGmc
+TkQz4o5wF7CbyzOUZm3/mn3pULLokBTkK5HLoMUuDs8Z70TvhPC9V54mwmM93/yh
+hN5c1187+5Rh8JOJH8/DstGQlzV9uYqt5gXw6DuhfK8rxK8YMy5eh9udgLUE/QDQ
+YKv/hXcPy0ciybKFqEgW4g==
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 4 (0x4)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 18 16:10:17 2019 GMT
+            Not After : Sep 16 16:10:17 2049 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2019)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e6:47:d8:75:e5:87:59:26:87:83:7d:5b:7a:b8:
+                    58:3d:7c:ef:36:f8:a0:7a:b7:14:56:58:7d:01:f1:
+                    1c:3b:8c:e6:5b:03:77:7d:a0:ed:47:0a:45:e6:75:
+                    5c:de:95:38:0d:38:fa:41:79:89:56:31:87:e7:a3:
+                    9a:36:70:b6:cf:24:2f:99:26:89:08:39:0e:14:c3:
+                    35:be:02:8b:52:e1:8e:7b:0c:a6:9d:78:ff:01:60:
+                    d7:f5:c3:d5:f0:5e:dc:e4:23:09:59:72:93:d3:b5:
+                    22:af:7c:cd:e0:84:0f:af:11:2d:bc:c6:72:42:af:
+                    ea:67:63:c4:10:41:78:02:80:62:0d:43:74:b4:1c:
+                    ed:50:d7:94:f1:b0:bb:f9:57:80:e4:69:0f:83:4b:
+                    a2:e6:2c:4a:9a:e1:7d:7c:62:19:29:27:97:1f:4c:
+                    f1:85:f0:39:f5:31:9f:3a:39:0e:d4:4d:07:3a:40:
+                    55:4b:a6:6c:9d:04:89:51:2d:7c:b0:ef:40:b5:42:
+                    29:16:cc:65:73:38:62:21:f6:e3:2c:17:50:9d:74:
+                    34:4e:df:7c:4a:33:a4:bb:40:cf:d5:e5:ed:05:07:
+                    cd:4c:f9:af:7f:a6:5c:b9:f7:c5:16:45:4e:44:40:
+                    d7:85:32:de:ac:e5:75:ad:9b:d7:c0:26:33:1f:77:
+                    a5:37
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                C0:74:6F:D6:C5:DA:3A:E8:27:86:46:51:AD:66:AE:47:FE:24:B3:E8
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        aa:12:6c:d1:9d:6a:da:f0:ec:7c:17:46:3b:57:b8:d6:76:5f:
+        24:e6:06:a2:0a:55:1f:2f:d3:5e:8f:de:cf:02:f2:ff:e0:dd:
+        d3:c7:bd:75:59:aa:cd:34:f3:28:80:73:cc:28:69:e7:a2:70:
+        88:a2:c7:dc:66:f0:92:0e:ff:64:bf:30:04:54:01:1b:96:ad:
+        15:c5:61:fd:32:61:d7:5e:b5:ba:91:fd:31:fc:6b:15:df:ee:
+        22:d9:e4:1f:f3:cc:8b:0c:9f:f5:e8:f7:e2:62:3f:40:52:c9:
+        f0:f1:1c:63:fc:6c:90:e1:5b:74:03:b9:df:d1:3e:a8:ec:db:
+        2b:6e:83:6f:9f:7f:ba:b4:79:fc:3d:e7:12:2f:4a:e7:17:8c:
+        2b:77:a5:90:74:3c:bd:cf:75:83:0d:1a:95:d5:56:ef:07:9b:
+        a6:b3:31:e3:8c:97:ce:68:11:b5:7b:25:03:72:1c:ea:67:e9:
+        7c:3e:73:c7:7c:3e:fc:f5:ae:8a:b2:07:0d:15:6a:66:09:d7:
+        23:b9:5d:80:7a:26:d6:b6:22:30:aa:84:af:c0:42:e9:75:c3:
+        59:ab:a3:84:87:6b:0c:b7:ab:4e:92:69:ae:2c:82:6f:ab:01:
+        24:ab:ff:78:6d:59:85:c2:3b:23:c0:bd:0d:d8:6e:3a:29:82:
+        e1:c4:5f:db
+-----BEGIN CERTIFICATE-----
+MIIEKDCCAxCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xOTA5MTgxNjEwMTdaFw00OTA5MTYx
+NjEwMTdaMIGGMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV
+BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDEyMDAG
+A1UEAwwpQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoMjAxOSkw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDmR9h15YdZJoeDfVt6uFg9
+fO82+KB6txRWWH0B8Rw7jOZbA3d9oO1HCkXmdVzelTgNOPpBeYlWMYfno5o2cLbP
+JC+ZJokIOQ4UwzW+AotS4Y57DKadeP8BYNf1w9XwXtzkIwlZcpPTtSKvfM3ghA+v
+ES28xnJCr+pnY8QQQXgCgGINQ3S0HO1Q15TxsLv5V4DkaQ+DS6LmLEqa4X18Yhkp
+J5cfTPGF8Dn1MZ86OQ7UTQc6QFVLpmydBIlRLXyw70C1QikWzGVzOGIh9uMsF1Cd
+dDRO33xKM6S7QM/V5e0FB81M+a9/ply598UWRU5EQNeFMt6s5XWtm9fAJjMfd6U3
+AgMBAAGjgaAwgZ0wDAYDVR0TAQH/BAIwADAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
+KwYBBAGCNwoDBjAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
+dGlmaWNhdGUwHQYDVR0OBBYEFMB0b9bF2jroJ4ZGUa1mrkf+JLPoMB8GA1UdIwQY
+MBaAFK2RmQvCKrH1FwSMI7ZlWiaONFpjMA0GCSqGSIb3DQEBCwUAA4IBAQCqEmzR
+nWra8Ox8F0Y7V7jWdl8k5gaiClUfL9Nej97PAvL/4N3Tx711WarNNPMogHPMKGnn
+onCIosfcZvCSDv9kvzAEVAEblq0VxWH9MmHXXrW6kf0x/GsV3+4i2eQf88yLDJ/1
+6PfiYj9AUsnw8Rxj/GyQ4Vt0A7nf0T6o7NsrboNvn3+6tHn8PecSL0rnF4wrd6WQ
+dDy9z3WDDRqV1VbvB5umszHjjJfOaBG1eyUDchzqZ+l8PnPHfD789a6KsgcNFWpm
+CdcjuV2AeibWtiIwqoSvwELpdcNZq6OEh2sMt6tOkmmuLIJvqwEkq/94bVmFwjsj
+wL0N2G46KYLhxF/b
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 6 (0x6)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 23 19:29:32 2021 GMT
+            Not After : Sep 22 19:29:32 2051 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v1)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:aa:b8:34:5b:b6:ae:44:bf:41:e1:78:11:b9:7a:
+                    c8:88:b3:b0:26:50:10:9c:98:d1:f3:98:9f:23:50:
+                    64:f6:39:dd:50:3a:23:44:53:65:fc:f3:9f:f5:a5:
+                    8b:ae:8b:df:47:9f:e9:d5:a0:92:19:f1:21:ea:cc:
+                    59:3a:74:df:45:71:bc:de:64:15:a5:f6:db:ca:71:
+                    fa:19:d4:44:0d:12:ec:47:3a:43:e2:f2:dd:8b:fe:
+                    0d:7b:dc:4d:db:53:06:22:61:e5:8b:35:49:b6:33:
+                    c4:0a:69:5f:5b:81:09:84:6b:42:33:18:09:9d:a0:
+                    35:f7:9c:1e:de:6e:de:90:69:1a:e8:32:e4:49:ad:
+                    c3:31:e9:f8:4a:a2:28:1d:db:0d:29:b6:48:0a:44:
+                    93:86:41:62:8f:73:97:60:10:8a:74:46:66:55:fe:
+                    a0:95:35:9e:ef:9f:af:11:fa:5b:a3:7c:c2:35:64:
+                    11:67:28:1e:14:0a:7d:68:61:9c:cd:c7:46:39:30:
+                    31:79:94:56:b3:45:16:9a:b5:77:66:fe:41:43:0f:
+                    00:48:6e:99:dd:0c:d4:47:2c:86:8c:50:04:61:20:
+                    dd:aa:8e:73:4f:21:b4:ee:09:4d:d3:40:01:d0:f2:
+                    a7:5b:7d:05:3d:c1:e7:65:26:aa:8c:9a:58:5a:7c:
+                    6d:6f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                A8:D5:4B:BB:38:25:CF:B9:4F:A1:3C:9F:8A:59:4A:19:5C:10:7B:8D
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        24:25:25:7e:01:a5:c8:3d:54:8c:1b:05:73:d1:06:d8:db:d4:
+        3a:71:d5:19:9d:97:1c:85:3c:ca:38:5a:0c:25:25:39:1a:67:
+        bc:6c:9d:98:6c:f3:7d:5f:b7:40:f9:73:a0:f5:7b:40:a8:66:
+        a5:f1:53:b1:78:80:24:3f:19:50:2f:02:09:ec:a1:8a:e6:0d:
+        df:c4:ae:24:9e:69:0d:5c:dc:44:4c:38:3a:53:4e:4b:a1:4b:
+        92:9f:43:a4:9d:1e:76:33:18:1b:bf:62:e5:f5:bc:93:3c:4e:
+        21:d5:5b:20:69:11:28:c1:c5:93:b5:8e:96:1d:1b:ca:72:79:
+        24:de:67:2a:50:9d:ce:8b:41:dd:3e:82:dd:a5:04:75:54:fb:
+        35:70:98:87:b4:f3:ea:41:23:23:80:0e:99:d7:03:16:ee:7e:
+        11:e2:c8:29:ab:73:c5:6d:5c:a8:2f:32:03:9f:8e:66:d6:cb:
+        54:84:55:75:ab:9a:dd:95:fd:05:1e:11:85:37:1e:63:d2:f4:
+        7f:34:64:32:a1:63:91:91:50:39:14:1a:ea:54:78:e6:0d:04:
+        23:c7:83:51:c5:25:27:07:6c:f8:65:b7:da:95:89:76:83:cc:
+        f3:7e:06:74:d3:6c:ef:e9:17:de:29:1e:ab:5c:d7:ec:df:f1:
+        98:b8:e9:66
+-----BEGIN CERTIFICATE-----
+MIIELTCCAxWgAwIBAgIBBjANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTI5MzJaGA8yMDUxMDky
+MjE5MjkzMlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw
+MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx
+IHYxKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKq4NFu2rkS/QeF4
+Ebl6yIizsCZQEJyY0fOYnyNQZPY53VA6I0RTZfzzn/Wli66L30ef6dWgkhnxIerM
+WTp030VxvN5kFaX228px+hnURA0S7Ec6Q+Ly3Yv+DXvcTdtTBiJh5Ys1SbYzxApp
+X1uBCYRrQjMYCZ2gNfecHt5u3pBpGugy5EmtwzHp+EqiKB3bDSm2SApEk4ZBYo9z
+l2AQinRGZlX+oJU1nu+frxH6W6N8wjVkEWcoHhQKfWhhnM3HRjkwMXmUVrNFFpq1
+d2b+QUMPAEhumd0M1EcshoxQBGEg3aqOc08htO4JTdNAAdDyp1t9BT3B52Umqoya
+WFp8bW8CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF
+BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
+ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUqNVLuzglz7lPoTyfillKGVwQe40wHwYD
+VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB
+ACQlJX4Bpcg9VIwbBXPRBtjb1Dpx1RmdlxyFPMo4WgwlJTkaZ7xsnZhs831ft0D5
+c6D1e0CoZqXxU7F4gCQ/GVAvAgnsoYrmDd/EriSeaQ1c3ERMODpTTkuhS5KfQ6Sd
+HnYzGBu/YuX1vJM8TiHVWyBpESjBxZO1jpYdG8pyeSTeZypQnc6LQd0+gt2lBHVU
++zVwmIe08+pBIyOADpnXAxbufhHiyCmrc8VtXKgvMgOfjmbWy1SEVXWrmt2V/QUe
+EYU3HmPS9H80ZDKhY5GRUDkUGupUeOYNBCPHg1HFJScHbPhlt9qViXaDzPN+BnTT
+bO/pF94pHqtc1+zf8Zi46WY=
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7 (0x7)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 23 19:29:42 2021 GMT
+            Not After : Sep 22 19:29:42 2051 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v2)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ba:06:8b:ee:58:b7:8b:49:7b:53:7a:d1:df:02:
+                    e3:f2:d8:b0:8c:03:5c:f4:2d:0b:d8:18:3b:23:fa:
+                    68:b0:e8:e9:9d:dc:a2:eb:5e:d3:06:a9:28:d4:9f:
+                    14:b6:1e:1c:1d:ef:69:0e:7f:44:f2:cc:4a:f1:b1:
+                    d0:71:30:6a:50:1e:b0:d3:f8:a4:19:d0:4a:f1:e3:
+                    eb:7a:e5:57:4c:a1:fb:d1:87:b9:48:e0:55:37:52:
+                    f9:de:99:2e:95:85:36:ce:d3:1d:67:2f:14:cb:7f:
+                    05:82:75:21:b6:aa:a5:14:ac:da:4a:f4:fe:fa:5c:
+                    33:49:3d:6f:de:fd:9d:75:ba:e2:c4:02:38:b5:69:
+                    f5:ff:a8:67:4b:3a:e0:34:f6:3b:07:03:a5:7e:59:
+                    6f:3a:d2:28:a4:2f:25:ac:d8:a9:1f:59:52:5d:24:
+                    36:58:51:b5:f0:12:a8:d3:78:56:57:b1:e0:a9:df:
+                    14:05:65:7c:b5:a5:00:f0:88:39:14:44:18:85:2d:
+                    0c:28:69:7b:b9:b4:1c:47:6f:43:66:4c:22:ad:f7:
+                    f6:19:75:e1:14:2c:0d:33:3f:c1:3f:fc:73:56:b2:
+                    68:05:b5:92:03:9b:65:6b:81:80:92:35:03:9b:66:
+                    68:58:c5:66:11:b6:8c:7f:05:09:9a:45:a6:0e:5e:
+                    5f:bf
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                4C:F0:46:89:2D:6F:D3:C9:A5:B0:3F:98:D8:45:F9:08:51:DC:6A:8C
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        93:9d:49:7d:9f:3e:3e:27:79:97:d9:c2:fc:0b:f7:30:b7:f4:
+        78:b2:c9:e4:5e:42:d3:27:26:70:cf:88:96:d1:f2:ea:a0:75:
+        7e:3c:f6:b7:d2:e7:95:30:e3:a6:67:a7:ee:b9:53:8f:fd:b2:
+        cb:db:e1:98:32:be:98:79:09:46:c6:63:6a:57:87:4d:b2:26:
+        46:f6:34:5e:18:75:ca:82:80:8e:33:c2:1d:c7:76:d7:14:57:
+        ef:2e:0e:9e:58:5c:81:8e:ed:53:2c:07:46:0a:8a:fc:2f:f5:
+        b2:c8:58:f5:fa:fa:bb:f9:7d:47:13:39:f0:f2:1c:15:9c:75:
+        90:40:bd:08:04:b3:6a:de:c2:cd:34:21:7e:ba:31:48:bc:a1:
+        23:bc:ee:93:b2:62:96:27:30:86:c2:d4:f7:b4:e6:3c:71:47:
+        37:84:ff:3d:0c:1e:ec:f3:0e:da:6b:dc:64:7a:b8:c0:7e:45:
+        13:09:bf:02:b3:b7:5b:6d:09:2d:6a:4e:0b:93:94:29:4c:a6:
+        c3:c7:05:fa:69:08:04:53:3c:4c:64:c0:7e:89:00:91:1b:a6:
+        c2:d7:ea:c4:db:86:38:fe:66:03:85:7b:fc:39:24:99:4c:2a:
+        3e:10:8b:91:c3:6e:20:9d:0c:ee:51:70:b5:98:58:f3:5c:ac:
+        16:98:7b:ce
+-----BEGIN CERTIFICATE-----
+MIIELTCCAxWgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTI5NDJaGA8yMDUxMDky
+MjE5Mjk0MlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw
+MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx
+IHYyKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoGi+5Yt4tJe1N6
+0d8C4/LYsIwDXPQtC9gYOyP6aLDo6Z3coute0wapKNSfFLYeHB3vaQ5/RPLMSvGx
+0HEwalAesNP4pBnQSvHj63rlV0yh+9GHuUjgVTdS+d6ZLpWFNs7THWcvFMt/BYJ1
+IbaqpRSs2kr0/vpcM0k9b979nXW64sQCOLVp9f+oZ0s64DT2OwcDpX5ZbzrSKKQv
+JazYqR9ZUl0kNlhRtfASqNN4Vlex4KnfFAVlfLWlAPCIORREGIUtDChpe7m0HEdv
+Q2ZMIq339hl14RQsDTM/wT/8c1ayaAW1kgObZWuBgJI1A5tmaFjFZhG2jH8FCZpF
+pg5eX78CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF
+BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
+ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUTPBGiS1v08mlsD+Y2EX5CFHcaowwHwYD
+VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB
+AJOdSX2fPj4neZfZwvwL9zC39HiyyeReQtMnJnDPiJbR8uqgdX489rfS55Uw46Zn
+p+65U4/9ssvb4Zgyvph5CUbGY2pXh02yJkb2NF4YdcqCgI4zwh3HdtcUV+8uDp5Y
+XIGO7VMsB0YKivwv9bLIWPX6+rv5fUcTOfDyHBWcdZBAvQgEs2rews00IX66MUi8
+oSO87pOyYpYnMIbC1Pe05jxxRzeE/z0MHuzzDtpr3GR6uMB+RRMJvwKzt1ttCS1q
+TguTlClMpsPHBfppCARTPExkwH6JAJEbpsLX6sTbhjj+ZgOFe/w5JJlMKj4Qi5HD
+biCdDO5RcLWYWPNcrBaYe84=
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 8 (0x8)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 23 19:30:02 2021 GMT
+            Not After : Sep 22 19:30:02 2051 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v3)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d6:29:96:87:ae:07:42:45:bb:65:09:b2:9b:de:
+                    5d:8e:78:61:10:d5:6d:ae:ae:26:08:6a:06:ec:4a:
+                    dd:2b:e7:1a:a9:ad:78:e3:fc:cf:8f:d1:47:bd:1e:
+                    33:d8:7a:e3:66:9b:e9:73:c1:5f:42:e2:fe:bc:c3:
+                    41:f7:cd:d7:85:d7:42:c9:ea:31:e5:47:b1:93:5b:
+                    43:2b:07:51:b8:75:08:ad:0f:e7:0d:81:38:5a:21:
+                    df:b1:43:5b:db:37:c5:ac:aa:14:3a:33:19:6a:26:
+                    e0:05:fe:cd:41:31:af:5d:a8:ab:31:77:44:fc:da:
+                    00:e2:7a:44:33:c3:a7:ed:13:54:9f:19:5d:c9:98:
+                    a2:3b:af:4d:0d:87:29:9c:90:9e:42:9e:9a:06:6a:
+                    70:27:c5:aa:f7:a2:f2:88:e0:b9:66:9a:72:a0:f6:
+                    61:7e:30:8f:14:9f:44:0d:dd:54:ae:47:c8:82:ba:
+                    d2:b2:db:6f:24:c1:f4:0a:81:07:90:47:49:5f:57:
+                    d6:3f:bf:2a:73:98:f2:f6:24:1a:74:03:d7:35:f0:
+                    42:d8:14:c5:94:27:5d:3c:49:0c:b0:f0:7a:61:1b:
+                    d7:5a:e3:a3:40:57:e9:a4:07:ee:02:a3:32:27:94:
+                    bb:f3:36:c5:5f:ef:d3:07:04:3a:80:4c:9c:0a:b7:
+                    88:9f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                10:04:37:BB:6D:E6:E4:69:B5:81:E6:1C:D6:6B:CE:3E:F4:ED:53:AF
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        3b:37:d6:a8:8d:cd:d2:df:13:35:ac:8c:92:d6:b0:ac:d1:38:
+        a8:00:97:47:59:b8:4a:84:8c:80:a5:1d:c7:29:bf:00:66:e5:
+        10:40:26:2e:31:f5:e1:13:c0:1b:29:f3:0b:7e:2d:71:d8:db:
+        e1:32:8f:79:8e:e3:97:0c:40:a9:a0:12:c1:fc:c2:50:88:72:
+        44:c5:bc:8b:45:6e:28:fd:d2:37:d6:db:17:cf:4e:61:33:08:
+        5a:5d:08:94:73:44:e2:76:00:44:1b:b8:00:a1:86:00:64:8a:
+        f1:42:32:3c:28:11:67:7c:8b:aa:06:34:74:58:e8:b3:3a:36:
+        8d:f6:04:5d:37:f5:66:52:c9:48:b0:a7:6f:34:09:dd:60:2a:
+        86:b9:14:f1:09:f6:06:16:56:e0:51:b1:e8:75:7f:fa:37:dc:
+        e0:98:a7:69:ae:7b:1a:73:89:0d:06:67:cc:01:ef:80:31:45:
+        9e:bb:03:2a:eb:89:70:d6:19:b2:c7:ce:bc:81:df:da:c8:6f:
+        a9:4b:2d:d7:a7:e1:af:c6:e8:fb:f0:61:c9:cd:d2:91:cd:8b:
+        c2:6c:ef:e0:b6:7f:f1:c4:81:f9:bb:76:9c:26:e3:fa:a1:a0:
+        cd:5e:05:de:ee:f9:1b:5b:50:0a:8b:0f:47:e3:90:32:ac:2a:
+        e7:65:02:80
+-----BEGIN CERTIFICATE-----
+MIIELTCCAxWgAwIBAgIBCDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTMwMDJaGA8yMDUxMDky
+MjE5MzAwMlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw
+MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx
+IHYzKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYploeuB0JFu2UJ
+spveXY54YRDVba6uJghqBuxK3SvnGqmteOP8z4/RR70eM9h642ab6XPBX0Li/rzD
+QffN14XXQsnqMeVHsZNbQysHUbh1CK0P5w2BOFoh37FDW9s3xayqFDozGWom4AX+
+zUExr12oqzF3RPzaAOJ6RDPDp+0TVJ8ZXcmYojuvTQ2HKZyQnkKemgZqcCfFqvei
+8ojguWaacqD2YX4wjxSfRA3dVK5HyIK60rLbbyTB9AqBB5BHSV9X1j+/KnOY8vYk
+GnQD1zXwQtgUxZQnXTxJDLDwemEb11rjo0BX6aQH7gKjMieUu/M2xV/v0wcEOoBM
+nAq3iJ8CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF
+BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
+ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUEAQ3u23m5Gm1geYc1mvOPvTtU68wHwYD
+VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB
+ADs31qiNzdLfEzWsjJLWsKzROKgAl0dZuEqEjIClHccpvwBm5RBAJi4x9eETwBsp
+8wt+LXHY2+Eyj3mO45cMQKmgEsH8wlCIckTFvItFbij90jfW2xfPTmEzCFpdCJRz
+ROJ2AEQbuAChhgBkivFCMjwoEWd8i6oGNHRY6LM6No32BF039WZSyUiwp280Cd1g
+Koa5FPEJ9gYWVuBRseh1f/o33OCYp2muexpziQ0GZ8wB74AxRZ67AyrriXDWGbLH
+zryB39rIb6lLLden4a/G6PvwYcnN0pHNi8Js7+C2f/HEgfm7dpwm4/qhoM1eBd7u
++RtbUAqLD0fjkDKsKudlAoA=
+-----END CERTIFICATE-----
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 3 (0x3)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Mar  4 10:27:14 2020 GMT
+            Not After : Mar  3 10:27:14 2050 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b9:10:47:2e:75:5d:f3:10:23:bb:a0:75:d2:fa:
+                    02:2d:ff:22:df:c1:e6:cd:38:7c:36:0f:ae:74:15:
+                    6e:a5:34:52:2b:c3:a4:3a:60:d7:06:ee:1d:99:93:
+                    ff:66:91:a3:18:52:2c:8c:58:e6:b4:2f:4b:c5:fb:
+                    83:e6:f3:19:bd:1b:ca:23:ec:97:1f:d8:f1:9a:f1:
+                    04:da:da:10:04:53:4b:ec:1d:b6:26:47:7c:bb:8f:
+                    a7:0a:6e:2e:e8:91:e6:c4:bb:64:34:78:3c:fa:09:
+                    15:1c:8f:9e:eb:04:99:36:22:c6:8d:07:15:0f:b9:
+                    69:08:fa:ff:4b:45:bd:ba:2b:cd:01:0e:e7:01:23:
+                    c9:e5:7a:39:3b:91:b0:45:3c:d5:77:ba:ca:f9:29:
+                    3d:11:3f:1c:6b:5b:8e:6c:4b:3f:c9:29:05:cb:59:
+                    d6:b1:c1:c0:2d:56:88:70:27:fa:73:05:5c:c2:11:
+                    d4:27:11:f7:0b:c2:d5:68:d3:1a:cd:ed:d0:e4:10:
+                    ff:34:cb:b7:45:70:34:2c:23:53:b6:9c:30:70:b4:
+                    5c:d1:e2:64:18:82:8f:62:b1:5e:aa:0b:d4:89:f2:
+                    1c:53:c4:32:7d:ef:53:ee:9b:6e:02:ab:78:bd:25:
+                    67:8b:39:36:d8:84:3b:06:99:02:d6:75:73:4e:f2:
+                    f6:b9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                C1:D5:7B:8F:6B:74:3F:23:EE:41:F4:F7:EE:29:2F:06:EE:CA:DF:B9
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        2d:b5:11:a8:d2:a0:af:81:a0:18:22:18:2c:08:d0:f4:63:e8:
+        8f:9a:f4:f5:20:dd:eb:22:77:19:9a:1a:09:3d:7f:aa:7d:c9:
+        81:bc:26:98:65:94:46:30:4b:c2:51:7c:f7:21:41:63:87:31:
+        fc:a4:c9:41:28:c7:2e:2a:2e:d8:a8:75:7a:72:77:3b:1b:9f:
+        72:15:0d:0c:96:8d:8b:51:f3:ce:37:b6:ca:9f:ca:59:40:4a:
+        fc:73:7a:94:12:99:aa:c2:8d:52:ce:91:19:2e:b4:da:ff:e5:
+        2c:67:74:d9:58:47:38:2f:61:88:c5:cf:a7:48:e1:08:ba:bc:
+        ec:d5:3a:47:d9:8c:dc:c3:bc:cb:98:2b:79:7a:02:46:ef:85:
+        19:2f:03:4b:05:84:eb:56:98:5f:6d:cf:a5:8b:a2:b6:e5:50:
+        51:7c:33:44:bd:7a:94:2e:0d:90:39:39:3e:62:60:ae:3a:e2:
+        f5:17:fa:f1:94:06:1d:ae:a3:f8:19:20:7f:4b:4c:07:c4:e6:
+        2d:0d:e5:94:84:51:6d:6f:0f:c4:c6:79:1d:f0:e8:0e:23:9e:
+        fd:f9:46:2c:b9:ec:97:38:56:7e:b8:13:f6:d2:e1:8e:a5:93:
+        02:7b:6e:dd:33:9a:bf:10:a8:1b:3d:fa:c4:f2:15:f0:27:73:
+        26:a6:94:d1
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMDAzMDQxMDI3MTRaGA8yMDUwMDMw
+MzEwMjcxNFowgZIxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MT4w
+PAYDVQQDDDVDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nIChVYnVu
+dHUgQ29yZSAyMDE5KTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkQ
+Ry51XfMQI7ugddL6Ai3/It/B5s04fDYPrnQVbqU0UivDpDpg1wbuHZmT/2aRoxhS
+LIxY5rQvS8X7g+bzGb0byiPslx/Y8ZrxBNraEARTS+wdtiZHfLuPpwpuLuiR5sS7
+ZDR4PPoJFRyPnusEmTYixo0HFQ+5aQj6/0tFvborzQEO5wEjyeV6OTuRsEU81Xe6
+yvkpPRE/HGtbjmxLP8kpBctZ1rHBwC1WiHAn+nMFXMIR1CcR9wvC1WjTGs3t0OQQ
+/zTLt0VwNCwjU7acMHC0XNHiZBiCj2KxXqoL1InyHFPEMn3vU+6bbgKreL0lZ4s5
+NtiEOwaZAtZ1c07y9rkCAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQY
+MBYGCCsGAQUFBwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NM
+IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUwdV7j2t0PyPuQfT37ikv
+Bu7K37kwHwYDVR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcN
+AQELBQADggEBAC21EajSoK+BoBgiGCwI0PRj6I+a9PUg3esidxmaGgk9f6p9yYG8
+JphllEYwS8JRfPchQWOHMfykyUEoxy4qLtiodXpydzsbn3IVDQyWjYtR8843tsqf
+yllASvxzepQSmarCjVLOkRkutNr/5SxndNlYRzgvYYjFz6dI4Qi6vOzVOkfZjNzD
+vMuYK3l6AkbvhRkvA0sFhOtWmF9tz6WLorblUFF8M0S9epQuDZA5OT5iYK464vUX
++vGUBh2uo/gZIH9LTAfE5i0N5ZSEUW1vD8TGeR3w6A4jnv35Riy57Jc4Vn64E/bS
+4Y6lkwJ7bt0zmr8QqBs9+sTyFfAncyamlNE=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/certs/canonical-livepatch-all.pem
+++ linux-ein-5.4.0/debian/certs/canonical-livepatch-all.pem
@@ -0,0 +1,121 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            c7:7e:51:6a:1c:25:cd:40
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: CN = Canonical Ltd. Live Patch Signing
+        Validity
+            Not Before: Jul 18 23:41:27 2016 GMT
+            Not After : Jul 16 23:41:27 2026 GMT
+        Subject: CN = Canonical Ltd. Live Patch Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:bd:74:ee:72:b3:4a:ab:e6:31:e8:29:24:c2:bd:
+                    46:98:32:c0:39:ee:a3:fb:8a:ad:fe:ab:1a:5b:a3:
+                    2e:a1:80:db:79:61:9e:47:79:2c:75:57:a2:21:f0:
+                    93:f6:87:f2:9b:4b:9d:2f:b3:58:61:28:3c:41:70:
+                    13:16:a1:72:90:c9:d5:16:71:7c:e0:30:f9:28:5e:
+                    48:20:36:00:69:b7:59:9f:a3:ec:a8:eb:55:41:9f:
+                    38:1e:22:4a:57:20:f4:83:59:49:c5:00:93:d3:33:
+                    02:92:d1:fc:f0:84:3b:4a:5b:8f:b6:73:9a:89:fa:
+                    30:1e:e6:2a:68:f2:91:ef:59:57:3d:dc:1c:52:6f:
+                    5e:e6:9b:b5:b8:7c:98:c9:13:d1:39:68:01:67:91:
+                    e0:d3:67:72:16:0a:5e:16:83:45:31:4f:b5:2b:b3:
+                    f6:40:86:89:3a:84:6e:6f:16:61:bc:70:84:be:5a:
+                    13:36:7b:82:ea:07:19:fc:18:c1:16:c6:32:0b:7d:
+                    2c:6b:c4:21:b9:38:6b:31:dc:d9:0c:ad:56:40:68:
+                    7c:e3:c6:64:8e:bf:1c:e0:72:3e:6c:db:d2:73:79:
+                    da:d7:c5:2f:5d:04:7d:b0:07:1e:95:dd:2a:47:5e:
+                    bf:3e:3a:c8:66:f6:67:0f:d4:2a:f1:e2:71:59:d2:
+                    6c:7b:a0:37:ac:e6:97:80:30:13:97:48:d5:74:fc:
+                    38:68:e4:57:cb:99:69:5a:84:27:ac:98:51:e4:64:
+                    bd:91:62:e8:58:27:06:2a:b9:0b:b8:08:e5:e5:b4:
+                    51:a7:a2:10:df:4e:07:6c:a0:3b:96:f2:6e:df:75:
+                    8c:97:1e:64:a0:9a:86:9b:98:26:f9:d8:b7:de:5b:
+                    21:b7:af:89:01:a3:f7:98:6b:da:19:ba:86:ef:ef:
+                    f1:ce:bb:2f:89:ed:c0:b6:1b:e5:5b:f8:90:11:9a:
+                    52:93:e9:be:f7:35:b9:08:cb:ba:c3:ed:2f:73:af:
+                    cc:96:07:55:b5:de:f6:03:f6:f1:89:f9:21:40:76:
+                    c1:69:f2:61:cc:9a:94:df:9c:ec:6a:65:38:be:d1:
+                    4e:2a:87:c7:2f:3e:53:ae:8b:9f:54:a1:09:59:64:
+                    25:aa:a9:d8:44:a9:a8:a0:71:e1:32:aa:4c:32:fd:
+                    44:28:cc:9c:6f:8e:db:81:7e:6f:fa:00:56:c5:e5:
+                    03:46:63:fb:8e:71:8d:e3:13:91:9f:ac:60:3e:64:
+                    f3:df:25:34:09:fa:2d:96:9f:16:05:ea:93:f5:e6:
+                    00:08:27:32:7b:3c:bd:ee:70:24:6c:3b:55:e9:db:
+                    f4:10:2d:20:06:b4:ca:e9:29:65:55:ad:f6:52:54:
+                    5f:e5:a3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+            X509v3 Authority Key Identifier: 
+                keyid:14:DF:34:D1:A8:7C:F3:76:25:AB:EC:03:9E:F2:BF:52:12:49:B9:69
+
+    Signature Algorithm: sha512WithRSAEncryption
+         30:e7:48:02:37:e9:28:cf:04:a2:4d:5c:fa:d8:4e:c9:76:c7:
+         14:3f:bd:2c:51:3d:33:f0:1a:bc:49:f1:47:95:8f:69:d8:a9:
+         54:14:44:6c:4d:9f:55:82:08:1e:c6:5b:d5:91:d9:bc:2e:b0:
+         af:d6:25:65:74:96:aa:36:de:ae:31:a8:11:f2:a4:2c:5a:e1:
+         4f:73:f8:4a:c3:35:b0:76:96:71:f2:b5:7d:4b:75:ee:5d:bf:
+         86:a5:ba:0b:a9:52:cb:ec:ab:e5:23:4b:f2:74:55:28:17:1e:
+         b3:ac:27:ad:45:13:6e:69:b3:5a:be:42:36:29:48:db:e7:5c:
+         22:58:a0:90:82:2c:2a:21:2b:db:f4:64:b7:91:5d:1f:2c:48:
+         a4:1a:85:e3:86:a5:aa:19:cd:19:e8:a5:fb:a3:7b:94:77:48:
+         25:a4:cf:a0:cf:71:82:5c:6f:71:22:7c:d6:97:a0:53:bb:ec:
+         30:f6:cb:16:fb:7b:fd:16:94:7a:53:6e:bd:04:64:a2:01:10:
+         9f:f0:5b:b5:a6:73:41:9d:5f:6f:45:73:0d:05:f7:30:6d:39:
+         90:b6:7d:55:7d:4c:2f:ae:5f:38:56:2f:8b:df:f4:bf:12:06:
+         93:6e:0d:02:23:bf:71:91:57:88:e8:bd:62:72:99:00:40:29:
+         1e:c9:13:11:da:7e:8e:e1:d2:a5:0d:bf:f7:d6:ec:01:0d:89:
+         41:cd:d5:dc:d2:f7:5f:33:0d:4c:2f:85:b7:85:b7:81:e4:17:
+         29:f0:74:cf:0e:15:8c:1a:50:0b:08:63:1a:91:4f:e7:76:97:
+         f1:d4:3b:7e:72:d4:c5:45:58:0c:6a:e9:0d:f2:85:d8:91:1e:
+         37:bd:78:e3:39:4d:2e:fd:85:31:c1:a6:3b:6a:cc:2c:53:72:
+         1d:8e:7b:f0:e6:76:86:09:6f:1a:f3:e4:a1:e2:dd:76:5f:b0:
+         8c:e2:2a:54:5d:c1:88:49:90:10:15:42:7d:05:24:53:8c:54:
+         ff:48:18:1a:36:e3:31:d3:54:32:78:0d:fe:f2:3d:aa:0d:37:
+         15:84:b4:36:47:31:e8:85:6e:0b:58:38:ff:21:91:09:c9:a8:
+         43:a3:ea:60:cb:7e:ed:f7:41:6f:4e:91:c1:fd:77:46:e7:d4:
+         e7:86:c0:1b:fd:50:6c:aa:be:00:b3:63:02:ff:4e:c7:a5:57:
+         6e:29:64:e9:54:d5:30:63:38:5f:2d:5a:db:49:5f:14:14:22:
+         d2:81:1f:61:9e:ee:ee:16:66:d6:bc:bd:ac:1b:5c:fb:38:31:
+         95:33:2e:84:6e:7a:de:ee:b9:fc:97:17:06:13:bf:70:1c:6e:
+         76:ed:66:38:e2:70:08:00
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIJAMd+UWocJc1AMA0GCSqGSIb3DQEBDQUAMCwxKjAoBgNV
+BAMMIUNhbm9uaWNhbCBMdGQuIExpdmUgUGF0Y2ggU2lnbmluZzAeFw0xNjA3MTgy
+MzQxMjdaFw0yNjA3MTYyMzQxMjdaMCwxKjAoBgNVBAMMIUNhbm9uaWNhbCBMdGQu
+IExpdmUgUGF0Y2ggU2lnbmluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAL107nKzSqvmMegpJMK9RpgywDnuo/uKrf6rGlujLqGA23lhnkd5LHVXoiHw
+k/aH8ptLnS+zWGEoPEFwExahcpDJ1RZxfOAw+SheSCA2AGm3WZ+j7KjrVUGfOB4i
+Slcg9INZScUAk9MzApLR/PCEO0pbj7Zzmon6MB7mKmjyke9ZVz3cHFJvXuabtbh8
+mMkT0TloAWeR4NNnchYKXhaDRTFPtSuz9kCGiTqEbm8WYbxwhL5aEzZ7guoHGfwY
+wRbGMgt9LGvEIbk4azHc2QytVkBofOPGZI6/HOByPmzb0nN52tfFL10EfbAHHpXd
+Kkdevz46yGb2Zw/UKvHicVnSbHugN6zml4AwE5dI1XT8OGjkV8uZaVqEJ6yYUeRk
+vZFi6FgnBiq5C7gI5eW0UaeiEN9OB2ygO5bybt91jJceZKCahpuYJvnYt95bIbev
+iQGj95hr2hm6hu/v8c67L4ntwLYb5Vv4kBGaUpPpvvc1uQjLusPtL3OvzJYHVbXe
+9gP28Yn5IUB2wWnyYcyalN+c7GplOL7RTiqHxy8+U66Ln1ShCVlkJaqp2ESpqKBx
+4TKqTDL9RCjMnG+O24F+b/oAVsXlA0Zj+45xjeMTkZ+sYD5k898lNAn6LZafFgXq
+k/XmAAgnMns8ve5wJGw7Venb9BAtIAa0yukpZVWt9lJUX+WjAgMBAAGjXTBbMAwG
+A1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBQU3zTRqHzzdiWr7AOe
+8r9SEkm5aTAfBgNVHSMEGDAWgBQU3zTRqHzzdiWr7AOe8r9SEkm5aTANBgkqhkiG
+9w0BAQ0FAAOCAgEAMOdIAjfpKM8Eok1c+thOyXbHFD+9LFE9M/AavEnxR5WPadip
+VBREbE2fVYIIHsZb1ZHZvC6wr9YlZXSWqjberjGoEfKkLFrhT3P4SsM1sHaWcfK1
+fUt17l2/hqW6C6lSy+yr5SNL8nRVKBces6wnrUUTbmmzWr5CNilI2+dcIligkIIs
+KiEr2/Rkt5FdHyxIpBqF44alqhnNGeil+6N7lHdIJaTPoM9xglxvcSJ81pegU7vs
+MPbLFvt7/RaUelNuvQRkogEQn/BbtaZzQZ1fb0VzDQX3MG05kLZ9VX1ML65fOFYv
+i9/0vxIGk24NAiO/cZFXiOi9YnKZAEApHskTEdp+juHSpQ2/99bsAQ2JQc3V3NL3
+XzMNTC+Ft4W3geQXKfB0zw4VjBpQCwhjGpFP53aX8dQ7fnLUxUVYDGrpDfKF2JEe
+N7144zlNLv2FMcGmO2rMLFNyHY578OZ2hglvGvPkoeLddl+wjOIqVF3BiEmQEBVC
+fQUkU4xU/0gYGjbjMdNUMngN/vI9qg03FYS0Nkcx6IVuC1g4/yGRCcmoQ6PqYMt+
+7fdBb06Rwf13RufU54bAG/1QbKq+ALNjAv9Ox6VXbilk6VTVMGM4Xy1a20lfFBQi
+0oEfYZ7u7hZm1ry9rBtc+zgxlTMuhG563u65/JcXBhO/cBxudu1mOOJwCAA=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/certs/ubuntu-drivers-all.pem
+++ linux-ein-5.4.0/debian/certs/ubuntu-drivers-all.pem
@@ -0,0 +1,125 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e9:df:13:0f:92:92:a9:b7
+        Signature Algorithm: sha512WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Validity
+            Not Before: May 31 16:06:09 2016 GMT
+            Not After : May 29 16:06:09 2026 GMT
+        Subject: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Kernel Module Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (4096 bit)
+                Modulus:
+                    00:b3:b0:4f:c6:0a:77:8b:f9:d1:53:33:34:d2:80:
+                    b5:63:6f:e1:f6:a2:83:99:d5:b6:b1:e4:99:91:fa:
+                    6c:19:c6:d0:91:2a:b9:7d:b5:98:a6:0d:28:01:b8:
+                    7c:8e:aa:38:ec:51:37:33:96:f0:b0:9b:8d:86:5f:
+                    67:23:69:2f:d7:c2:f3:fb:c5:d7:f9:04:ff:f2:e5:
+                    61:68:b7:29:b9:c6:8e:4b:4d:2d:8f:92:0c:00:b3:
+                    a3:d2:5a:08:64:cd:f2:09:0b:a5:0e:e6:64:75:d5:
+                    41:f4:4d:49:3a:0d:dc:b9:27:8e:c4:d6:b1:df:8f:
+                    6c:f0:e4:f7:31:cb:a9:04:a1:f9:a7:aa:15:da:59:
+                    03:4d:46:14:d0:dd:bf:e0:f5:9e:f0:71:0c:70:78:
+                    2b:08:fb:e0:b6:68:a4:74:12:9d:f7:f2:64:88:17:
+                    2a:8a:ed:1a:91:b5:6c:13:bd:4c:10:0a:0b:72:0b:
+                    90:db:7d:f3:78:44:4c:d2:a5:41:f7:1c:77:7d:5a:
+                    8a:54:bc:8f:fe:b7:ee:e1:bc:59:37:c4:d4:e8:14:
+                    d0:5b:42:9b:04:00:8e:6d:83:8a:25:21:5b:08:c4:
+                    7b:b2:d9:99:52:c9:5e:59:6d:c4:aa:52:59:e2:e4:
+                    2f:7e:7e:ac:05:01:99:bf:13:72:b7:45:c5:17:da:
+                    8a:d5:3e:71:73:2e:d8:aa:e6:eb:5a:d0:9a:c4:93:
+                    f3:be:eb:d2:47:25:34:16:29:fa:dd:9a:2f:b1:20:
+                    e5:41:4e:ed:ea:51:7c:23:80:ba:3d:b5:3a:0b:8c:
+                    9c:85:48:6c:3c:8b:29:2f:2f:12:c7:52:34:02:ea:
+                    0f:ac:53:23:3c:f8:3e:40:1b:30:63:e9:2d:e6:f6:
+                    58:cc:51:f9:eb:08:4a:b4:c7:16:80:d1:8b:c2:64:
+                    6a:71:a9:70:31:a4:a7:3a:c0:93:99:1b:0e:42:c1:
+                    00:6d:43:27:99:6c:e5:fd:23:16:c1:8e:b5:66:17:
+                    2b:4c:53:5a:6d:1e:96:16:13:6a:c6:d4:85:5b:74:
+                    2e:ce:7c:45:2f:ad:cb:75:9e:5e:91:bd:9a:6a:86:
+                    1a:06:bd:39:be:a3:50:56:ea:e1:f6:e3:95:69:d7:
+                    31:e4:66:f7:36:b5:51:c2:22:b4:9c:74:9c:44:0b:
+                    0e:16:5f:53:f0:23:c6:b9:40:bd:d6:b8:7d:1b:f6:
+                    73:f6:27:e7:c0:e3:65:a0:58:ab:5c:59:b7:80:8c:
+                    8c:04:b4:a9:ae:a0:51:40:10:3b:63:59:49:87:d1:
+                    9b:df:a3:8c:c4:2e:eb:70:c1:0a:18:1f:cb:22:c2:
+                    f2:4a:65:0d:e5:81:74:d8:ce:72:c6:35:be:ba:63:
+                    72:c4:f9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Key Usage: 
+                Digital Signature
+            X509v3 Subject Key Identifier: 
+                88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+            X509v3 Authority Key Identifier: 
+                keyid:88:F7:52:E5:60:A1:E0:73:7E:31:16:3A:46:6A:D7:B7:0A:85:0C:19
+
+    Signature Algorithm: sha512WithRSAEncryption
+         04:85:16:27:58:ba:71:28:57:86:7b:c2:83:db:e5:72:6f:1e:
+         b2:1c:63:b0:db:ad:c0:42:96:c0:4f:65:f6:35:4d:c0:07:0d:
+         46:be:d3:1e:ec:f1:22:18:2a:18:5d:bb:69:a6:a6:d4:0d:c3:
+         57:03:b9:e7:45:49:28:ca:6d:98:17:68:97:cb:7b:36:81:0a:
+         37:9e:34:79:f3:e1:0e:5b:77:43:bb:5a:a5:45:b7:16:50:86:
+         fd:12:a4:96:0f:15:19:09:1c:e1:fa:80:a5:80:09:be:bb:c8:
+         26:0b:3e:de:03:d2:c2:18:a4:8d:0d:de:c5:32:82:0b:fb:75:
+         55:66:1a:2a:bb:e4:bd:25:91:20:15:d4:be:b8:3f:53:e3:fb:
+         a8:c3:55:e3:d5:e7:82:18:95:df:39:09:a7:fc:89:6e:b4:1c:
+         aa:2d:e8:67:c2:0d:34:34:3e:f9:fa:0b:ce:81:92:11:ae:12:
+         0a:fe:35:63:ce:46:29:c4:2b:4f:cb:4e:05:0a:a1:11:e2:35:
+         f6:5a:5d:b5:e8:d2:6f:4c:fc:3d:24:a6:03:4b:dd:98:6b:f2:
+         71:58:16:1d:a5:25:ef:d9:06:7c:e8:db:7b:88:6a:89:5c:59:
+         01:92:64:db:44:08:63:6c:7c:32:d6:55:98:63:09:26:61:67:
+         0a:fe:5d:ee:fd:23:59:b3:4d:91:c1:4d:41:8b:cd:20:58:fa:
+         2d:45:e5:bd:1d:69:5c:03:a0:49:a6:97:54:13:b6:c9:e0:f8:
+         56:83:a1:2a:c3:f4:6c:fd:ab:20:ca:3d:9c:95:c0:cf:04:bb:
+         46:39:cf:34:81:65:45:27:64:01:7d:62:b3:b8:72:ea:10:d5:
+         0f:53:7d:39:88:25:09:6f:8c:bc:e0:49:bb:39:e2:0e:8d:cf:
+         56:4d:c1:82:6d:87:d2:e7:fc:c0:9f:a7:65:60:d2:6c:65:18:
+         59:38:6e:d0:9c:d7:c3:81:9a:9a:29:8f:83:84:c3:b5:44:ff:
+         28:ac:13:17:64:f2:26:13:d9:55:06:b7:69:68:7c:bf:ec:d1:
+         8c:ef:b7:da:76:e1:07:73:c6:31:62:31:cb:b6:e1:e7:7f:0c:
+         c3:f7:4c:52:be:25:36:8e:a1:bb:60:02:c3:cb:3e:6f:29:fc:
+         7f:6a:fa:f8:ec:0a:df:49:e2:57:0e:bc:bd:93:c3:1b:d5:36:
+         8a:ff:d8:1b:17:c7:1f:cb:69:00:d2:54:9e:ad:61:89:92:95:
+         11:f8:ea:17:83:9f:9b:09:7d:b8:94:a4:ea:f5:ae:ea:dc:dd:
+         62:b9:9e:68:9c:18:ec:19:c4:13:08:c8:b1:62:ab:8e:84:69:
+         11:3c:da:ea:0d:b7:22:bd
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIJAOnfEw+Skqm3MA0GCSqGSIb3DQEBDQUAMH0xCzAJBgNV
+BAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4GA1UEBwwHRG91Z2xhczEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMMJENhbm9uaWNhbCBMdGQu
+IEtlcm5lbCBNb2R1bGUgU2lnbmluZzAeFw0xNjA1MzExNjA2MDlaFw0yNjA1Mjkx
+NjA2MDlaMH0xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEQMA4G
+A1UEBwwHRG91Z2xhczEXMBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xLTArBgNVBAMM
+JENhbm9uaWNhbCBMdGQuIEtlcm5lbCBNb2R1bGUgU2lnbmluZzCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBALOwT8YKd4v50VMzNNKAtWNv4faig5nVtrHk
+mZH6bBnG0JEquX21mKYNKAG4fI6qOOxRNzOW8LCbjYZfZyNpL9fC8/vF1/kE//Ll
+YWi3KbnGjktNLY+SDACzo9JaCGTN8gkLpQ7mZHXVQfRNSToN3LknjsTWsd+PbPDk
+9zHLqQSh+aeqFdpZA01GFNDdv+D1nvBxDHB4Kwj74LZopHQSnffyZIgXKortGpG1
+bBO9TBAKC3ILkNt983hETNKlQfccd31ailS8j/637uG8WTfE1OgU0FtCmwQAjm2D
+iiUhWwjEe7LZmVLJXlltxKpSWeLkL35+rAUBmb8TcrdFxRfaitU+cXMu2Krm61rQ
+msST877r0kclNBYp+t2aL7Eg5UFO7epRfCOAuj21OguMnIVIbDyLKS8vEsdSNALq
+D6xTIzz4PkAbMGPpLeb2WMxR+esISrTHFoDRi8JkanGpcDGkpzrAk5kbDkLBAG1D
+J5ls5f0jFsGOtWYXK0xTWm0elhYTasbUhVt0Ls58RS+ty3WeXpG9mmqGGga9Ob6j
+UFbq4fbjlWnXMeRm9za1UcIitJx0nEQLDhZfU/AjxrlAvda4fRv2c/Yn58DjZaBY
+q1xZt4CMjAS0qa6gUUAQO2NZSYfRm9+jjMQu63DBChgfyyLC8kplDeWBdNjOcsY1
+vrpjcsT5AgMBAAGjXTBbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1Ud
+DgQWBBSI91LlYKHgc34xFjpGate3CoUMGTAfBgNVHSMEGDAWgBSI91LlYKHgc34x
+FjpGate3CoUMGTANBgkqhkiG9w0BAQ0FAAOCAgEABIUWJ1i6cShXhnvCg9vlcm8e
+shxjsNutwEKWwE9l9jVNwAcNRr7THuzxIhgqGF27aaam1A3DVwO550VJKMptmBdo
+l8t7NoEKN540efPhDlt3Q7tapUW3FlCG/RKklg8VGQkc4fqApYAJvrvIJgs+3gPS
+whikjQ3exTKCC/t1VWYaKrvkvSWRIBXUvrg/U+P7qMNV49XnghiV3zkJp/yJbrQc
+qi3oZ8INNDQ++foLzoGSEa4SCv41Y85GKcQrT8tOBQqhEeI19lpdtejSb0z8PSSm
+A0vdmGvycVgWHaUl79kGfOjbe4hqiVxZAZJk20QIY2x8MtZVmGMJJmFnCv5d7v0j
+WbNNkcFNQYvNIFj6LUXlvR1pXAOgSaaXVBO2yeD4VoOhKsP0bP2rIMo9nJXAzwS7
+RjnPNIFlRSdkAX1is7hy6hDVD1N9OYglCW+MvOBJuzniDo3PVk3Bgm2H0uf8wJ+n
+ZWDSbGUYWThu0JzXw4GamimPg4TDtUT/KKwTF2TyJhPZVQa3aWh8v+zRjO+32nbh
+B3PGMWIxy7bh538Mw/dMUr4lNo6hu2ACw8s+byn8f2r6+OwK30niVw68vZPDG9U2
+iv/YGxfHH8tpANJUnq1hiZKVEfjqF4Ofmwl9uJSk6vWu6tzdYrmeaJwY7BnEEwjI
+sWKrjoRpETza6g23Ir0=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/changelog
+++ linux-ein-5.4.0/debian/changelog
@@ -0,0 +1,17732 @@
+linux-ein (5.4.0-1046.53) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1046.53 -proposed tracker (LP: #2048256)
+
+  * [PE100A/PCIE] Incorrect PCIE Supply Configuration (LP:#2047889)
+    - dt-bindings: imx6q-pcie: Add "vph-supply" for PHY supply voltage
+    - arm64: dts: imx8mq-evk: add one regulator used to power up pcie phy
+    - PCI: imx6: Enable PHY internal regulator when supplied >3V
+    - SAUCE: arm64/dts: pe100a: add a dummy vph for pcie
+
+  * Audio device disappear after playing audio without setting (LP: #2047884)
+    - ASoC: fsl_sai: Don't disable bitclock for i.MX8MP
+
+  [ Ubuntu: 5.4.0-171.189 ]
+
+  * focal/linux: 5.4.0-171.189 -proposed tracker (LP: #2048282)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] remove helper scripts
+    - [Packaging] update annotations scripts
+    - debian/dkms-versions -- update from kernel-versions (main/2024.01.08)
+  * Page fault in RDMA ODP triggers BUG_ON during MMU notifier registration
+    (LP: #2046534)
+    - RDMA/odp: Ensure the mm is still alive before creating an implicit child
+  * Hotplugging SCSI disk in QEMU VM fails (LP: #2047382)
+    - Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
+  * CVE-2023-6040
+    - netfilter: nf_tables: Reject tables of unsupported family
+  * kernel_selftests failures on kernel-P10d-LPAR10.ppc64el.10
+    (LP: #2032641)
+    - selftests: Skip TM tests on synthetic TM implementations
+  * [Debian] autoreconstruct - Do not generate chmod -x for deleted  files
+    (LP: #2045562)
+    - [Debian] autoreconstruct - Do not generate chmod -x for deleted files
+  * CVE-2023-6931
+    - perf/core: Add a new read format to get a number of lost samples
+    - perf: Fix perf_event_validate_size()
+    - perf: Fix perf_event_validate_size() lockdep splat
+  * CVE-2023-6932
+    - ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
+  * CVE-2023-6606
+    - smb: client: fix OOB in smbCalcSize()
+  * CVE-2023-45863
+    - kobject: Fix slab-out-of-bounds in fill_kobj_path()
+  * Focal update: v5.4.259 upstream stable release (LP: #2043724)
+    - RDMA/cxgb4: Check skb value for failure to allocate
+    - lib/test_meminit: fix off-by-one error in test_pages()
+    - pwm: hibvt: Explicitly set .polarity in .get_state()
+    - HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect
+    - quota: Fix slow quotaoff
+    - net: prevent address rewrite in kernel_bind()
+    - drm: etvnaviv: fix bad backport leading to warning
+    - drm/msm/dsi: skip the wait for video mode done if not applicable
+    - ravb: Fix up dma_free_coherent() call in ravb_remove()
+    - ieee802154: ca8210: Fix a potential UAF in ca8210_probe
+    - mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type
+    - xen-netback: use default TX queue size for vifs
+    - drm/vmwgfx: fix typo of sizeof argument
+    - ixgbe: fix crash with empty VF macvlan list
+    - net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn()
+    - nfc: nci: assert requested protocol is valid
+    - workqueue: Override implicit ordered attribute in
+      workqueue_apply_unbound_cpumask()
+    - dmaengine: stm32-mdma: abort resume if no ongoing transfer
+    - usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer
+    - net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read
+    - usb: dwc3: Soft reset phy on probe for host
+    - usb: musb: Get the musb_qh poniter after musb_giveback
+    - usb: musb: Modify the "HWVers" register address
+    - iio: pressure: bmp280: Fix NULL pointer exception
+    - iio: pressure: dps310: Adjust Timeout Settings
+    - iio: pressure: ms5611: ms5611_prom_is_valid false negative bug
+    - mcb: remove is_added flag from mcb_device struct
+    - libceph: use kernel_connect()
+    - ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
+    - Input: powermate - fix use-after-free in powermate_config_complete
+    - Input: psmouse - fix fast_reconnect function for PS/2 mode
+    - Input: xpad - add PXN V900 support
+    - cgroup: Remove duplicates in cgroup v1 tasks file
+    - pinctrl: avoid unsafe code pattern in find_pinctrl()
+    - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
+    - usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call
+    - x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
+    - dmaengine: mediatek: Fix deadlock caused by synchronize_irq()
+    - powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
+    - powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
+    - ravb: Fix use-after-free issue in ravb_tx_timeout_work()
+    - Documentation: sysctl: align cells in second content column
+    - usb: hub: Guard against accesses to uninitialized BOS descriptors
+    - Bluetooth: hci_event: Ignore NULL link key
+    - Bluetooth: Reject connection with the device which has same BD_ADDR
+    - Bluetooth: Fix a refcnt underflow problem for hci_conn
+    - Bluetooth: vhci: Fix race when opening vhci device
+    - Bluetooth: hci_event: Fix coding style
+    - Bluetooth: avoid memcmp() out of bounds warning
+    - ice: fix over-shifted variable
+    - nfc: nci: fix possible NULL pointer dereference in send_acknowledge()
+    - regmap: fix NULL deref on lookup
+    - KVM: x86: Mask LVTPC when handling a PMI
+    - netfilter: nft_payload: fix wrong mac header matching
+    - qed: fix LL2 RX buffer allocation
+    - xfrm: fix a data-race in xfrm_gen_index()
+    - xfrm: interface: use DEV_STATS_INC()
+    - net: ipv4: fix return value check in esp_remove_trailer
+    - net: ipv6: fix return value check in esp_remove_trailer
+    - net: rfkill: gpio: prevent value glitch during probe
+    - tcp: fix excessive TLP and RACK timeouts from HZ rounding
+    - tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb
+    - tun: prevent negative ifindex
+    - ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr
+    - net: usb: smsc95xx: Fix an error code in smsc95xx_reset()
+    - i40e: prevent crash on probe if hw registers have invalid values
+    - net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve
+    - neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section
+    - netfilter: nft_set_rbtree: .deactivate fails if element has expired
+    - net: pktgen: Fix interface flags printing
+    - resource: Add irqresource_disabled()
+    - ACPI: Drop acpi_dev_irqresource_disabled()
+    - ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA
+    - ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks
+    - ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA
+    - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA
+    - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA
+    - ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone
+    - btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1
+    - btrfs: initialize start_slot in btrfs_log_prealloc_extents
+    - i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
+    - overlayfs: set ctime when setting mtime and atime
+    - gpio: timberdale: Fix potential deadlock on &tgpio->lock
+    - ata: libata-eh: Fix compilation warning in ata_eh_link_report()
+    - tracing: relax trace_event_eval_update() execution with cond_resched()
+    - HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
+    - Bluetooth: Avoid redundant authentication
+    - Bluetooth: hci_core: Fix build warnings
+    - wifi: mac80211: allow transmitting EAPOL frames with tainted key
+    - wifi: cfg80211: avoid leaking stack data into trace
+    - regulator/core: Revert "fix kobject release warning and memory leak in
+      regulator_register()"
+    - sky2: Make sure there is at least one frag_addr available
+    - drm: panel-orientation-quirks: Add quirk for One Mix 2S
+    - btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c
+    - HID: multitouch: Add required quirk for Synaptics 0xcd7e device
+    - Bluetooth: hci_event: Fix using memcmp when comparing keys
+    - mtd: rawnand: qcom: Unmap the right resource upon probe failure
+    - mtd: spinand: micron: correct bitmask for ecc status
+    - mtd: physmap-core: Restore map_rom fallback
+    - mmc: core: sdio: hold retuning if sdio in 1-bit mode
+    - mmc: core: Capture correct oemid-bits for eMMC cards
+    - Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
+    - ACPI: irq: Fix incorrect return value in acpi_register_gsi()
+    - USB: serial: option: add Telit LE910C4-WWX 0x1035 composition
+    - USB: serial: option: add entry for Sierra EM9191 with new firmware
+    - USB: serial: option: add Fibocom to DELL custom modem FM101R-GL
+    - s390/pci: fix iommu bitmap allocation
+    - gpio: vf610: set value before the direction to avoid a glitch
+    - ASoC: pxa: fix a memory leak in probe()
+    - phy: mapphone-mdm6600: Fix runtime disable on probe
+    - phy: mapphone-mdm6600: Fix runtime PM for remove
+    - phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
+    - Bluetooth: hci_sock: fix slab oob read in create_monitor_event
+    - Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name
+    - xfrm6: fix inet6_dev refcount underflow problem
+    - Linux 5.4.259
+  * Focal update: v5.4.258 upstream stable release (LP: #2042107)
+    - NFS/pNFS: Report EINVAL errors from connect() to the server
+    - SUNRPC: Mark the cred for revalidation if the server rejects it
+    - tracing: Increase trace array ref count on enable and filter files
+    - ata: libahci: clear pending interrupt status
+    - ext4: remove the 'group' parameter of ext4_trim_extent
+    - ext4: add new helper interface ext4_try_to_trim_range()
+    - ext4: scope ret locally in ext4_try_to_trim_range()
+    - ext4: change s_last_trim_minblks type to unsigned long
+    - ext4: mark group as trimmed only if it was fully scanned
+    - ext4: replace the traditional ternary conditional operator with with
+      max()/min()
+    - ext4: move setting of trimmed bit into ext4_try_to_trim_range()
+    - ext4: do not let fstrim block system suspend
+    - ASoC: meson: spdifin: start hw on dai probe
+    - netfilter: nf_tables: disallow element removal on anonymous sets
+    - bpf: Avoid deadlock when using queue and stack maps from NMI
+    - selftests/tls: Add {} to avoid static checker warning
+    - selftests: tls: swap the TX and RX sockets in some tests
+    - ASoC: imx-audmix: Fix return error with devm_clk_get()
+    - i40e: Fix for persistent lldp support
+    - SAUCE: Revert "UBUNTU: SAUCE: i40e Fix GPF when deleting VMs"
+    - i40e: Remove scheduling while atomic possibility
+    - i40e: Fix warning message and call stack during rmmod i40e driver
+    - i40e: Fix VF VLAN offloading when port VLAN is configured
+    - powerpc/perf/hv-24x7: Update domain value check
+    - dccp: fix dccp_v4_err()/dccp_v6_err() again
+    - net: hns3: add 5ms delay before clear firmware reset irq source
+    - net: bridge: use DEV_STATS_INC()
+    - team: fix null-ptr-deref when team device type is changed
+    - net: rds: Fix possible NULL-pointer dereference
+    - gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
+    - i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
+    - Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
+    - scsi: qla2xxx: Fix update_fcport for current_topology
+    - scsi: qla2xxx: Fix deletion race condition
+    - drm/amd/display: Reinstate LFC optimization
+    - drm/amd/display: Fix LFC multiplier changing erratically
+    - drm/amd/display: prevent potential division by zero errors
+    - ata: libata: disallow dev-initiated LPM transitions to unsupported states
+    - MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
+    - clk: tegra: fix error return case for recalc_rate
+    - ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
+    - bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
+    - xtensa: add default definition for XCHAL_HAVE_DIV32
+    - xtensa: iss/network: make functions static
+    - xtensa: boot: don't add include-dirs
+    - xtensa: boot/lib: fix function prototypes
+    - gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
+    - parisc: sba: Fix compile warning wrt list of SBA devices
+    - parisc: iosapic.c: Fix sparse warnings
+    - parisc: drivers: Fix sparse warning
+    - parisc: irq: Make irq_stack_union static to avoid sparse warning
+    - selftests/ftrace: Correctly enable event in instance-event.tc
+    - ring-buffer: Avoid softlockup in ring_buffer_resize()
+    - ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
+    - spi: nxp-fspi: reset the FLSHxCR1 registers
+    - bpf: Clarify error expectations from bpf_clone_redirect
+    - powerpc/watchpoints: Annotate atomic context in more places
+    - ncsi: Propagate carrier gain/loss events to the NCSI controller
+    - fbdev/sh7760fb: Depend on FB=y
+    - nvme-pci: do not set the NUMA node of device if it has none
+    - watchdog: iTCO_wdt: No need to stop the timer in probe
+    - watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
+    - i40e: improve locking of mac_filter_hash
+    - i40e: always propagate error value in i40e_set_vsi_promisc()
+    - i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc
+    - smack: Record transmuting in smk_transmuted
+    - smack: Retrieve transmuting information in smack_inode_getsecurity()
+    - Smack:- Use overlay inode label in smack_inode_copy_up()
+    - serial: 8250_port: Check IRQ data before use
+    - nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
+    - ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre
+      M70q
+    - ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
+    - i2c: i801: unregister tco_pdev in i801_probe() error path
+    - ring-buffer: Update "shortest_full" in polling
+    - btrfs: properly report 0 avail for very full file systems
+    - net: thunderbolt: Fix TCPv6 GSO checksum calculation
+    - ata: libata-core: Fix ata_port_request_pm() locking
+    - ata: libata-core: Fix port and device removal
+    - ata: libata-core: Do not register PM operations for SAS ports
+    - ata: libata-sata: increase PMP SRST timeout to 10s
+    - fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
+    - rbd: move rbd_dev_refresh() definition
+    - rbd: decouple header read-in from updating rbd_dev->header
+    - rbd: decouple parent info read-in from updating rbd_dev
+    - rbd: take header_rwsem in rbd_dev_refresh() only when updating
+    - Revert "PCI: qcom: Disable write access to read only registers for IP
+      v2.3.3"
+    - scsi: zfcp: Fix a double put in zfcp_port_enqueue()
+    - qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
+    - wifi: mwifiex: Fix tlv_buf_left calculation
+    - net: replace calls to sock->ops->connect() with kernel_connect()
+    - net: prevent rewrite of msg_name in sock_sendmsg()
+    - wifi: iwlwifi: dbg_ini: fix structure packing
+    - wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
+    - drivers/net: process the result of hdlc_open() and add call of hdlc_close()
+      in uhdlc_close()
+    - wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
+    - regmap: rbtree: Fix wrong register marked as in-cache when creating new node
+    - ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
+    - scsi: target: core: Fix deadlock due to recursive locking
+    - NFS4: Trace state recovery operation
+    - NFS: Add a helper nfs_client_for_each_server()
+    - NFSv4: Fix a nfs4_state_manager() race
+    - modpost: add missing else to the "of" check
+    - net: fix possible store tearing in neigh_periodic_work()
+    - ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
+    - net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
+    - net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
+    - net: nfc: llcp: Add lock when modifying device list
+    - netfilter: handle the connecting collision properly in
+      nf_conntrack_proto_sctp
+    - net: stmmac: dwmac-stm32: fix resume on STM32 MCU
+    - tcp: fix quick-ack counting to count actual ACKs of new data
+    - tcp: fix delayed ACKs for MSS boundary condition
+    - sctp: update transport state when processing a dupcook packet
+    - sctp: update hb timer immediately after users change hb_interval
+    - cpupower: add Makefile dependencies for install targets
+    - RDMA/core: Require admin capabilities to set system parameters
+    - IB/mlx4: Fix the size of a buffer in add_port_entries()
+    - gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
+    - gpio: pxa: disable pinctrl calls for MMP_GPIO
+    - RDMA/cma: Fix truncation compilation warning in make_cma_ports
+    - RDMA/uverbs: Fix typo of sizeof argument
+    - RDMA/siw: Fix connection failure handling
+    - RDMA/mlx5: Fix NULL string error
+    - parisc: Restore __ldcw_align for PA-RISC 2.0 processors
+    - NFS: Fix a race in __nfs_list_for_each_server()
+    - ima: rework CONFIG_IMA dependency block
+    - [Config] Update IMA_BLACKLIST_KEYRING and IMA_LOAD_X509
+    - xen/events: replace evtchn_rwlock with RCU
+    - Linux 5.4.258
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 19 Jan 2024 17:10:04 +0800
+
+linux-ein (5.4.0-1045.52) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1045.52 -proposed tracker (LP: #2046958)
+
+  * While playing videos screen goes black and after some period of time it will
+    be restored (LP: #2043226)
+    - SAUCE: drm/panel: avd-tt101wx-cn-101-a: Add media bus format
+    - SAUCE: drm/panel: avd-tt101wx-cn-101-a: Add proper delay after resetting
+      display
+    - SAUCE: drm/panel: avd-tt101wx-cn-101-a: Fix timing when entering/exiting
+      sleep
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 21 Dec 2023 18:41:13 +0800
+
+linux-ein (5.4.0-1044.51) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1044.51 -proposed tracker (LP: #2046115)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] remove helper scripts
+
+  [ Ubuntu: 5.4.0-169.187 ]
+
+  * focal/linux: 5.4.0-169.187 -proposed tracker (LP: #2044375)
+  * USB bus error after upgrading to proposed kernel on lunar, jammy and focal
+    (LP: #2043197)
+    - USB: core: Fix oversight in SuperSpeed initialization
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] update annotations scripts
+
+  [ Ubuntu: 5.4.0-168.186 ]
+
+  * focal/linux: 5.4.0-168.186 -proposed tracker (LP: #2041652)
+  * Focal update: v5.4.257 upstream stable release (LP: #2040284)
+    - erofs: ensure that the post-EOF tails are all zeroed
+    - ARM: pxa: remove use of symbol_get()
+    - mmc: au1xmmc: force non-modular build and remove symbol_get usage
+    - net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
+    - rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
+    - modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
+    - USB: serial: option: add Quectel EM05G variant (0x030e)
+    - USB: serial: option: add FOXCONN T99W368/T99W373 product
+    - HID: wacom: remove the battery when the EKR is off
+    - staging: rtl8712: fix race condition
+    - Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race
+      condition
+    - serial: sc16is7xx: fix bug when first setting GPIO direction
+    - firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
+    - fsi: master-ast-cf: Add MODULE_FIRMWARE macro
+    - nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
+    - nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
+    - pinctrl: amd: Don't show `Invalid config param` errors
+    - 9p: virtio: make sure 'offs' is initialized in zc_request
+    - ASoC: da7219: Flush pending AAD IRQ when suspending
+    - ASoC: da7219: Check for failure reading AAD IRQ events
+    - ethernet: atheros: fix return value check in atl1c_tso_csum()
+    - vxlan: generalize vxlan_parse_gpe_hdr and remove unused args
+    - m68k: Fix invalid .section syntax
+    - s390/dasd: use correct number of retries for ERP requests
+    - s390/dasd: fix hanging device after request requeue
+    - fs/nls: make load_nls() take a const parameter
+    - ASoc: codecs: ES8316: Fix DMIC config
+    - ASoC: atmel: Fix the 8K sample parameter in I2SC master
+    - platform/x86: intel: hid: Always call BTNL ACPI method
+    - platform/x86: huawei-wmi: Silence ambient light sensor
+    - security: keys: perform capable check only on privileged operations
+    - clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
+    - net: usb: qmi_wwan: add Quectel EM05GV2
+    - idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
+    - scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
+    - netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
+    - bnx2x: fix page fault following EEH recovery
+    - sctp: handle invalid error codes without calling BUG()
+    - cifs: add a warning when the in-flight count goes negative
+    - scsi: storvsc: Always set no_report_opcodes
+    - ALSA: seq: oss: Fix racy open/close of MIDI devices
+    - platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE
+      notifications
+    - powerpc/32s: Fix assembler warning about r0
+    - udf: Check consistency of Space Bitmap Descriptor
+    - udf: Handle error when adding extent to a file
+    - Revert "net: macsec: preserve ingress frame ordering"
+    - reiserfs: Check the return value from __getblk()
+    - eventfd: Export eventfd_ctx_do_read()
+    - eventfd: prevent underflow for eventfd semaphores
+    - new helper: lookup_positive_unlocked()
+    - fs: Fix error checking for d_hash_and_lookup()
+    - tmpfs: verify {g,u}id mount options correctly
+    - OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
+    - x86/asm: Make more symbols local
+    - x86/boot: Annotate local functions
+    - x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
+    - perf/imx_ddr: don't enable counter0 if none of 4 counters are used
+    - cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
+    - bpf: Clear the probe_addr for uprobe
+    - tcp: tcp_enter_quickack_mode() should be static
+    - regmap: rbtree: Use alloc_flags for memory allocations
+    - spi: tegra20-sflash: fix to check return value of platform_get_irq() in
+      tegra_sflash_probe()
+    - can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also
+      in case of OOM
+    - wifi: mwifiex: Fix OOB and integer underflow when rx packets
+    - mwifiex: switch from 'pci_' to 'dma_' API
+    - wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
+    - crypto: stm32 - Properly handle pm_runtime_get failing
+    - Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
+    - crypto: caam - fix unchecked return value error
+    - hwrng: iproc-rng200 - use semicolons rather than commas to separate
+      statements
+    - hwrng: iproc-rng200 - Implement suspend and resume calls
+    - lwt: Fix return values of BPF xmit ops
+    - lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
+    - fs: ocfs2: namei: check return value of ocfs2_add_entry()
+    - wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
+    - wifi: mwifiex: Fix missed return in oob checks failed path
+    - wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
+    - wifi: ath9k: protect WMI command response buffer replacement with a lock
+    - wifi: mwifiex: avoid possible NULL skb pointer dereference
+    - wifi: ath9k: use IS_ERR() with debugfs_create_dir()
+    - net: arcnet: Do not call kfree_skb() under local_irq_disable()
+    - mlxsw: i2c: Fix chunk size setting in output mailbox buffer
+    - mlxsw: i2c: Limit single transaction buffer size
+    - netrom: Deny concurrent connect().
+    - drm/bridge: tc358764: Fix debug print parameter order
+    - quota: avoid increasing DQST_LOOKUPS when iterating over dirty/inuse list
+    - quota: factor out dquot_write_dquot()
+    - quota: rename dquot_active() to inode_quota_active()
+    - quota: add new helper dquot_active()
+    - quota: fix dqput() to follow the guarantees dquot_srcu should provide
+    - drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
+    - ARM: dts: BCM53573: Drop nonexistent "default-off" LED trigger
+    - ARM: dts: BCM53573: Add cells sizes to PCIe node
+    - ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
+    - drm/etnaviv: fix dumping of active MMU context
+    - ARM: dts: s3c6410: move fixed clocks under root node in Mini6410
+    - ARM: dts: s3c6410: align node SROM bus node name with dtschema in Mini6410
+    - ARM: dts: s3c64xx: align pinctrl with dtschema
+    - ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
+    - ARM: dts: s5pv210: add RTC 32 KHz clock in SMDKV210
+    - ARM: dts: s5pv210: use defines for IRQ flags in SMDKV210
+    - ARM: dts: s5pv210: correct ethernet unit address in SMDKV210
+    - ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
+    - ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
+    - drm: adv7511: Fix low refresh rate register for ADV7533/5
+    - ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
+    - arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
+    - drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
+    - md/bitmap: don't set max_write_behind if there is no write mostly device
+    - md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
+    - drm/tegra: Remove superfluous error messages around platform_get_irq()
+    - drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
+    - of: unittest: fix null pointer dereferencing in
+      of_unittest_find_node_by_name()
+    - drm/armada: Fix off-by-one error in armada_overlay_get_property()
+    - drm/panel: simple: Add missing connector type and pixel format for AUO
+      T215HVN01
+    - ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
+    - [Config] Update annotations after CONFIG_IMA_TRUSTED_KEYRING removal
+    - drm/msm/mdp5: Don't leak some plane state
+    - smackfs: Prevent underflow in smk_set_cipso()
+    - audit: fix possible soft lockup in __audit_inode_child()
+    - drm/mediatek: Fix potential memory leak if vmap() fail
+    - of: unittest: Fix overlay type in apply/revert check
+    - ALSA: ac97: Fix possible error value of *rac97
+    - ipmi:ssif: Add check for kstrdup
+    - ipmi:ssif: Fix a memory leak when scanning for an adapter
+    - drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
+    - clk: sunxi-ng: Modify mismatched function name
+    - PCI: Mark NVIDIA T4 GPUs to avoid bus reset
+    - PCI: pciehp: Use RMW accessors for changing LNKCTL
+    - PCI/ASPM: Use RMW accessors for changing LNKCTL
+    - clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
+    - powerpc/fadump: reset dump area size if fadump memory reserve fails
+    - PCI: Add #defines for Enter Compliance, Transmit Margin
+    - drm/amdgpu: Correct Transmit Margin masks
+    - drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
+    - drm/amdgpu: Prefer pcie_capability_read_word()
+    - drm/amdgpu: Use RMW accessors for changing LNKCTL
+    - drm/radeon: Correct Transmit Margin masks
+    - drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
+    - drm/radeon: Prefer pcie_capability_read_word()
+    - drm/radeon: Use RMW accessors for changing LNKCTL
+    - wifi: ath10k: Use RMW accessors for changing LNKCTL
+    - nfs/blocklayout: Use the passed in gfp flags
+    - powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
+    - jfs: validate max amount of blocks before allocation.
+    - fs: lockd: avoid possible wrong NULL parameter
+    - NFSD: da_addr_body field missing in some GETDEVICEINFO replies
+    - NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
+    - media: v4l2-fwnode: fix v4l2_fwnode_parse_link handling
+    - media: v4l2-fwnode: simplify v4l2_fwnode_parse_link
+    - media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
+    - drivers: usb: smsusb: fix error handling code in smsusb_init_device
+    - media: dib7000p: Fix potential division by zero
+    - media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
+    - media: cx24120: Add retval check for cx24120_message_send()
+    - media: mediatek: vcodec: Return NULL if no vdec_fb is found
+    - usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
+    - scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
+    - scsi: be2iscsi: Add length check when parsing nlattrs
+    - scsi: qla4xxx: Add length check when parsing nlattrs
+    - serial: sprd: getting port index via serial aliases only
+    - serial: sprd: remove redundant sprd_port cleanup
+    - serial: sprd: Assign sprd_port after initialized to avoid wrong access
+    - serial: sprd: Fix DMA buffer leak issue
+    - x86/APM: drop the duplicate APM_MINOR_DEV macro
+    - scsi: qedf: Do not touch __user pointer in
+      qedf_dbg_stop_io_on_error_cmd_read() directly
+    - scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read()
+      directly
+    - scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read()
+      directly
+    - coresight: tmc: Explicit type conversions to prevent integer overflow
+    - dma-buf/sync_file: Fix docs syntax
+    - driver core: test_async: fix an error code
+    - IB/uverbs: Fix an potential error pointer dereference
+    - iommu/vt-d: Fix to flush cache of PASID directory table
+    - media: go7007: Remove redundant if statement
+    - USB: gadget: f_mass_storage: Fix unused variable warning
+    - media: i2c: ov5640: Configure HVP lines in s_power callback
+    - media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
+    - media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
+    - media: ov2680: Remove auto-gain and auto-exposure controls
+    - media: ov2680: Fix ov2680_bayer_order()
+    - media: ov2680: Fix vflip / hflip set functions
+    - media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
+    - scsi: core: Use 32-bit hostnum in scsi_host_lookup()
+    - scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
+    - serial: tegra: handle clk prepare error in tegra_uart_hw_init()
+    - amba: bus: fix refcount leak
+    - Revert "IB/isert: Fix incorrect release of isert connection"
+    - RDMA/siw: Balance the reference of cep->kref in the error path
+    - RDMA/siw: Correct wrong debug message
+    - HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
+    - HID: multitouch: Correct devm device reference for hidinput input_dev name
+    - x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
+    - tracing: Fix race issue between cpu buffer write and swap
+    - phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
+    - phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
+    - phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
+    - rpmsg: glink: Add check for kstrdup
+    - mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
+    - um: Fix hostaudio build errors
+    - dmaengine: ste_dma40: Add missing IRQ check in d40_probe
+    - cpufreq: Fix the race condition while updating the transition_task of policy
+    - virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
+    - skbuff: skb_segment, Call zero copy functions before using skbuff frags
+    - PM / devfreq: Fix leak in devfreq_dev_release()
+    - ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
+    - ipmi_si: fix a memleak in try_smi_init()
+    - ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
+    - backlight/gpio_backlight: Compare against struct fb_info.device
+    - backlight/bd6107: Compare against struct fb_info.device
+    - backlight/lv5207lp: Compare against struct fb_info.device
+    - xtensa: PMU: fix base address for the newer hardware
+    - media: dvb: symbol fixup for dvb_attach()
+    - ntb: Drop packets when qp link is down
+    - ntb: Clean up tx tail index on link down
+    - ntb: Fix calculation ntb_transport_tx_free_entry()
+    - Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
+    - procfs: block chmod on /proc/thread-self/comm
+    - parisc: Fix /proc/cpuinfo output for lscpu
+    - dlm: fix plock lookup when using multiple lockspaces
+    - dccp: Fix out of bounds access in DCCP error handler
+    - X.509: if signature is unsupported skip validation
+    - net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
+    - fsverity: skip PKCS#7 parser when keyring is empty
+    - pstore/ram: Check start of empty przs during init
+    - s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
+    - crypto: stm32 - fix loop iterating through scatterlist for DMA
+    - cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
+    - sc16is7xx: Set iobase to device index
+    - serial: sc16is7xx: fix broken port 0 uart init
+    - usb: typec: tcpci: clear the fault status bit
+    - udf: initialize newblock to 0
+    - drm: fix double free for gbo in drm_gem_vram_init and drm_gem_vram_create
+    - net/ipv6: SKB symmetric hash should incorporate transport ports
+    - scsi: qla2xxx: fix inconsistent TMF timeout
+    - scsi: qla2xxx: Fix erroneous link up failure
+    - scsi: qla2xxx: Turn off noisy message log
+    - scsi: qla2xxx: Remove unsupported ql2xenabledif option
+    - fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
+    - drm/ast: Fix DRAM init on AST2200
+    - lib/test_meminit: allocate pages up to order MAX_ORDER
+    - parisc: led: Fix LAN receive and transmit LEDs
+    - parisc: led: Reduce CPU overhead for disk & lan LED computation
+    - clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
+    - soc: qcom: qmi_encdec: Restrict string length in decode
+    - NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
+    - kconfig: fix possible buffer overflow
+    - perf annotate bpf: Don't enclose non-debug code with an assert()
+    - x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
+    - perf top: Don't pass an ERR_PTR() directly to perf_session__delete()
+    - watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
+    - pwm: lpc32xx: Remove handling of PWM channels
+    - sctp: annotate data-races around sk->sk_wmem_queued
+    - ipv4: annotate data-races around fi->fib_dead
+    - net: read sk->sk_family once in sk_mc_loop()
+    - igb: disable virtualization features on 82580
+    - veth: Fixing transmit return status for dropped packets
+    - net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
+    - af_unix: Fix data-races around user->unix_inflight.
+    - af_unix: Fix data-race around unix_tot_inflight.
+    - af_unix: Fix data-races around sk->sk_shutdown.
+    - af_unix: Fix data race around sk->sk_err.
+    - kcm: Destroy mutex in kcm_exit_net()
+    - igc: Change IGC_MIN to allow set rx/tx value between 64 and 80
+    - igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
+    - igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
+    - s390/zcrypt: don't leak memory if dev_set_name() fails
+    - idr: fix param name in idr_alloc_cyclic() doc
+    - ip_tunnels: use DEV_STATS_INC()
+    - net: hns3: fix the port information display when sfp is absent
+    - sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
+    - ata: sata_gemini: Add missing MODULE_DESCRIPTION
+    - ata: pata_ftide010: Add missing MODULE_DESCRIPTION
+    - fuse: nlookup missing decrement in fuse_direntplus_link
+    - btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
+    - btrfs: use the correct superblock to compare fsid in btrfs_validate_super
+    - mtd: rawnand: brcmnand: Fix crash during the panic_write
+    - mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
+    - mtd: rawnand: brcmnand: Fix potential false time out warning
+    - perf hists browser: Fix hierarchy mode header
+    - perf tools: Handle old data in PERF_RECORD_ATTR
+    - usb: typec: tcpm: Refactor tcpm_handle_vdm_request payload handling
+    - usb: typec: tcpm: Refactor tcpm_handle_vdm_request
+    - usb: typec: bus: verify partner exists in typec_altmode_attention
+    - ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2
+    - clk: imx8mm: Move 1443X/1416X PLL clock structure to common place
+    - net: ipv4: fix one memleak in __inet_del_ifa()
+    - net: ethernet: mvpp2_main: fix possible OOB write in
+      mvpp2_ethtool_get_rxnfc()
+    - net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in
+      mtk_hwlro_get_fdir_all()
+    - r8152: check budget for r8152_poll()
+    - kcm: Fix memory leak in error path of kcm_sendmsg()
+    - platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors
+    - mlxbf-tmfifo: sparse tags for config access
+    - platform/mellanox: mlxbf-tmfifo: Drop jumbo frames
+    - net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict()
+    - ixgbe: fix timestamp configuration code
+    - kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
+    - drm/amd/display: Fix a bug when searching for insert_above_mpcc
+    - parisc: Drop loops_per_jiffy from per_cpu struct
+    - autofs: fix memory leak of waitqueues in autofs_catatonic_mode
+    - btrfs: output extra debug info if we failed to find an inline backref
+    - locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
+    - ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
+    - kernel/fork: beware of __put_task_struct() calling context
+    - ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
+    - perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
+    - hw_breakpoint: fix single-stepping when using bpf_overflow_handler
+    - devlink: remove reload failed checks in params get/set callbacks
+    - wifi: ath9k: fix printk specifier
+    - wifi: mwifiex: fix fortify warning
+    - crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
+    - tpm_tis: Resend command to recover from data transfer errors
+    - mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
+    - alx: fix OOB-read compiler warning
+    - wifi: mac80211_hwsim: drop short frames
+    - drm/exynos: fix a possible null-pointer dereference due to data race in
+      exynos_drm_crtc_atomic_disable()
+    - bus: ti-sysc: Configure uart quirks for k3 SoC
+    - md: raid1: fix potential OOB in raid1_remove_disk()
+    - ext2: fix datatype of block number in ext2_xattr_set2()
+    - fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
+    - jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
+    - powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
+    - media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
+    - media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
+    - media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
+    - media: anysee: fix null-ptr-deref in anysee_master_xfer
+    - media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
+    - media: tuners: qt1010: replace BUG_ON with a regular error
+    - media: pci: cx23885: replace BUG with error return
+    - usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
+    - scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
+    - serial: cpm_uart: Avoid suspicious locking
+    - media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
+    - kobject: Add sanity check for kset->kobj.ktype in kset_register()
+    - tools features: Add feature test to check if libbfd has buildid support
+    - perf jevents: Make build dependency on test JSONs
+    - perf tools: Add an option to build without libbfd
+    - btrfs: move btrfs_pinned_by_swapfile prototype into volumes.h
+    - btrfs: add a helper to read the superblock metadata_uuid
+    - btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
+    - selftests: tracing: Fix to unmount tracefs for recovering environment
+    - md/raid1: fix error: ISO C90 forbids mixed declarations
+    - attr: block mode changes of symlinks
+    - btrfs: fix lockdep splat and potential deadlock after failure running
+      delayed items
+    - tracing: Have current_trace inc the trace array ref count
+    - tracing: Have option files inc the trace array ref count
+    - nfsd: fix change_info in NFSv4 RENAME replies
+    - tracefs: Add missing lockdown check to tracefs_create_dir()
+    - i2c: aspeed: Reset the i2c controller when timeout occurs
+    - scsi: megaraid_sas: Fix deadlock on firmware crashdump
+    - ext4: fix rec_len verify error
+    - mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
+    - drm/amdgpu: fix amdgpu_cs_p1_user_fence
+    - Linux 5.4.257
+  * Focal update: v5.4.257 upstream stable release (LP: #2040284) //
+    CVE-2023-39189
+    - netfilter: nfnetlink_osf: avoid OOB read
+  * CVE-2023-45871
+    - igb: set max size RX buffer when store bad packet is enabled
+  * CVE-2023-39193
+    - netfilter: xt_sctp: validate the flag_info count
+  * CVE-2023-39192
+    - netfilter: xt_u32: validate user space input
+  * CVE-2023-31085
+    - ubi: Refuse attaching if mtd's erasesize is 0
+  * CVE-2023-5717
+    - perf: Disallow mis-matched inherited group reads
+  * CVE-2023-5178
+    - nvmet-tcp: move send/recv error handling in the send/recv methods instead of
+      call-sites
+    - nvmet-tcp: Fix a possible UAF in queue intialization setup
+  * CVE-2023-42754
+    - ipv4: fix null-deref in ipv4_link_failure
+  * Focal update: v5.4.256 upstream stable release (LP: #2039446)
+    - powerpc/pmac/smp: Avoid unused-variable warnings
+    - powerpc/pmac/smp: Drop unnecessary volatile qualifier
+    - Revert "MIPS: Alchemy: fix dbdma2"
+    - Linux 5.4.256
+  * Focal update: v5.4.255 upstream stable release (LP: #2039440)
+    - mmc: sdhci_f_sdh30: convert to devm_platform_ioremap_resource
+    - mmc: sdhci-f-sdh30: Replace with sdhci_pltfm
+    - selftests: forwarding: tc_flower: Relax success criterion
+    - macsec: Fix traffic counters/statistics
+    - macsec: use DEV_STATS_INC()
+    - drm/radeon: Fix integer overflow in radeon_cs_parser_init
+    - ALSA: emu10k1: roll up loops in DSP setup code for Audigy
+    - quota: Properly disable quotas when add_dquot_ref() fails
+    - quota: fix warning in dqgrab()
+    - HID: add quirk for 03f0:464a HP Elite Presenter Mouse
+    - ovl: check type and offset of struct vfsmount in ovl_entry
+    - udf: Fix uninitialized array access for some pathnames
+    - fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev
+    - MIPS: dec: prom: Address -Warray-bounds warning
+    - FS: JFS: Fix null-ptr-deref Read in txBegin
+    - FS: JFS: Check for read-only mounted filesystem in txBegin
+    - media: v4l2-mem2mem: add lock to protect parameter num_rdy
+    - media: platform: mediatek: vpu: fix NULL ptr dereference
+    - usb: chipidea: imx: don't request QoS for imx8ulp
+    - gfs2: Fix possible data races in gfs2_show_options()
+    - pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
+    - Bluetooth: L2CAP: Fix use-after-free
+    - drm/amdgpu: Fix potential fence use-after-free v2
+    - ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
+    - ALSA: hda: fix a possible null-pointer dereference due to data race in
+      snd_hdac_regmap_sync()
+    - powerpc/kasan: Disable KCOV in KASAN code
+    - IMA: allow/fix UML builds
+    - iio: add addac subdirectory
+    - iio: adc: stx104: Utilize iomap interface
+    - iio: adc: stx104: Implement and utilize register structures
+    - iio: stx104: Move to addac subdirectory
+    - iio: addac: stx104: Fix race condition for stx104_write_raw()
+    - iio: addac: stx104: Fix race condition when converting analog-to-digital
+    - iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE
+    - PM-runtime: add tracepoints for usage_count changes
+    - PM: runtime: Add pm_runtime_get_if_active()
+    - ALSA: hda: Fix unhandled register update during auto-suspend period
+    - irqchip/mips-gic: Get rid of the reliance on irq_cpu_online()
+    - irqchip/mips-gic: Use raw spinlock for gic_lock
+    - interconnect: Move internal structs into a separate file
+    - interconnect: Add helpers for enabling/disabling a path
+    - usb: dwc3: qcom: Add helper functions to enable,disable wake irqs
+    - USB: dwc3: qcom: fix NULL-deref on suspend
+    - mmc: bcm2835: fix deferred probing
+    - mmc: sunxi: fix deferred probing
+    - leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename
+    - tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs
+    - tracing/probes: Fix to update dynamic data counter if fetcharg uses it
+    - net/ncsi: Fix gma flag setting after response
+    - nfsd4: kill warnings on testing stateids with mismatched clientids
+    - nfsd: Remove incorrect check in nfsd4_validate_stateid
+    - virtio-mmio: convert to devm_platform_ioremap_resource
+    - virtio-mmio: Use to_virtio_mmio_device() to simply code
+    - virtio-mmio: don't break lifecycle of vm_dev
+    - i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue
+    - fbdev: mmp: fix value check in mmphw_probe()
+    - powerpc/rtas_flash: allow user copy to flash block cache objects
+    - tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32
+      platforms
+    - btrfs: fix BUG_ON condition in btrfs_cancel_balance
+    - net: xfrm: Fix xfrm_address_filter OOB read
+    - net: af_key: fix sadb_x_filter validation
+    - xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c
+    - xfrm: fix slab-use-after-free in decode_session6
+    - ip6_vti: fix slab-use-after-free in decode_session6
+    - ip_vti: fix potential slab-use-after-free in decode_session6
+    - selftests: mirror_gre_changes: Tighten up the TTL test match
+    - ipvs: fix racy memcpy in proc_do_sync_threshold
+    - netfilter: nft_dynset: disallow object maps
+    - team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
+    - i40e: fix misleading debug logs
+    - net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset
+    - sock: Fix misuse of sk_under_memory_pressure()
+    - net: do not allow gso_size to be set to GSO_BY_FRAGS
+    - bus: ti-sysc: Improve reset to work with modules with no sysconfig
+    - bus: ti-sysc: Flush posted write on enable before reset
+    - ARM: dts: imx7s: Drop dma-apb interrupt-names
+    - ARM: dts: imx: Adjust dma-apbh node name
+    - ARM: dts: imx: Set default tuning step for imx7d usdhc
+    - ARM: dts: imx: Set default tuning step for imx6sx usdhc
+    - ASoC: rt5665: add missed regulator_bulk_disable
+    - ASoC: meson: axg-tdm-formatter: fix channel slot allocation
+    - serial: 8250: Fix oops for port->pm on uart_change_pm()
+    - ALSA: usb-audio: Add support for Mythware XA001AU capture and playback
+      interfaces.
+    - cifs: Release folio lock on fscache read hit.
+    - mmc: wbsd: fix double mmc_free_host() in wbsd_init()
+    - mmc: block: Fix in_flight[issue_type] value error
+    - netfilter: set default timeout to 3 secs for sctp shutdown send and recv
+      state
+    - virtio-net: set queues after driver_ok
+    - net: fix the RTO timer retransmitting skb every 1ms if linear option is
+      enabled
+    - net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
+    - mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove
+    - net: phy: broadcom: stub c45 read/write for 54810
+    - PCI: acpiphp: Reassign resources on bridge if necessary
+    - dlm: improve plock logging if interrupted
+    - dlm: replace usage of found with dedicated list iterator variable
+    - fs: dlm: add pid to debug log
+    - fs: dlm: change plock interrupted message to debug again
+    - fs: dlm: use dlm_plock_info for do_unlock_close
+    - fs: dlm: fix mismatch of plock results from userspace
+    - MIPS: cpu-features: Enable octeon_cache by cpu_type
+    - MIPS: cpu-features: Use boot_cpu_type for CPU type based features
+    - fbdev: Improve performance of sys_imageblit()
+    - fbdev: Fix sys_imageblit() for arbitrary image widths
+    - fbdev: fix potential OOB read in fast_imageblit()
+    - dm integrity: increase RECALC_SECTORS to improve recalculate speed
+    - dm integrity: reduce vmalloc space footprint on 32-bit architectures
+    - ALSA: pcm: Set per-card upper limit of PCM buffer allocations
+    - ALSA: pcm: Use SG-buffer only when direct DMA is available
+    - ALSA: pcm: Fix potential data race at PCM memory allocation helpers
+    - regmap: Account for register length in SMBus I/O limits
+    - ASoC: fsl_sai: Refine enable/disable TE/RE sequence in trigger()
+    - ASoC: fsl_sai: Add new added registers and new bit definition
+    - ASoC: fsl_sai: Disable bit clock with transmitter
+    - drm/amd/display: do not wait for mpc idle if tg is disabled
+    - drm/amd/display: check TG is non-null before checking if enabled
+    - tracing: Fix memleak due to race between current_tracer and trace
+    - octeontx2-af: SDP: fix receive link config
+    - sock: annotate data-races around prot->memory_pressure
+    - dccp: annotate data-races in dccp_poll()
+    - ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()
+    - net: bgmac: Fix return value check for fixed_phy_register()
+    - net: bcmgenet: Fix return value check for fixed_phy_register()
+    - net: validate veth and vxcan peer ifindexes
+    - igb: Avoid starting unnecessary workqueues
+    - net/sched: fix a qdisc modification with ambiguous command request
+    - net: remove bond_slave_has_mac_rcu()
+    - bonding: fix macvlan over alb bond support
+    - ibmveth: Use dcbf rather than dcbfl
+    - NFSv4: Fix dropped lock for racing OPEN and delegation return
+    - clk: Fix slab-out-of-bounds error in devm_clk_release()
+    - nfsd: Fix race to FREE_STATEID and cl_revoked
+    - batman-adv: Trigger events for auto adjusted MTU
+    - batman-adv: Don't increase MTU when set by user
+    - batman-adv: Do not get eth header before batadv_check_management_packet
+    - batman-adv: Fix TT global entry leak when client roamed back
+    - batman-adv: Fix batadv_v_ogm_aggr_send memory leak
+    - batman-adv: Hold rtnl lock during MTU update via netlink
+    - lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels
+    - radix tree: remove unused variable
+    - media: vcodec: Fix potential array out-of-bounds in encoder queue_setup
+    - PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root
+      bus
+    - drm/display/dp: Fix the DP DSC Receiver cap size
+    - mm: allow a controlled amount of unfairness in the page lock
+    - rtnetlink: Reject negative ifindexes in RTM_NEWLINK
+    - ALSA: pcm: Fix build error on m68k and others
+    - Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available"
+    - interconnect: Do not skip aggregation for disabled paths
+    - ALSA: pcm: Check for null pointer of pointer substream before dereferencing
+      it
+    - Documentation/sysctl: document page_lock_unfairness
+    - irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable
+    - scsi: snic: Fix double free in snic_tgt_create()
+    - scsi: core: raid_class: Remove raid_component_add()
+    - clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
+    - pinctrl: renesas: rza2: Add lock around
+      pinctrl_generic{{add,remove}_group,{add,remove}_function}
+    - dma-buf/sw_sync: Avoid recursive lock during fence signal
+    - Linux 5.4.255
+  * Focal update: v5.4.254 upstream stable release (LP: #2039291)
+    - mmc: moxart: read scr register without changing byte order
+    - ipv6: adjust ndisc_is_useropt() to also return true for PIO
+    - dmaengine: pl330: Return DMA_PAUSED when transaction is paused
+    - drm/nouveau/gr: enable memory loads on helper invocation on all channels
+    - radix tree test suite: fix incorrect allocation size for pthreads
+    - nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput
+    - iio: cros_ec: Fix the allocation size for cros_ec_command
+    - binder: fix memory leak in binder_init()
+    - usb-storage: alauda: Fix uninit-value in alauda_check_media()
+    - usb: dwc3: Properly handle processing of pending events
+    - usb: common: usb-conn-gpio: Prevent bailing out if initial role is none
+    - x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405
+    - x86/mm: Fix VDSO and VVAR placement on 5-level paging machines
+    - x86: Move gds_ucode_mitigated() declaration to header
+    - drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
+    - selftests/rseq: Fix build with undefined __weak
+    - mISDN: Update parameter type of dsp_cmx_send()
+    - net/packet: annotate data-races around tp->status
+    - bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
+    - dccp: fix data-race around dp->dccps_mss_cache
+    - drivers: net: prevent tun_build_skb() to exceed the packet size limit
+    - IB/hfi1: Fix possible panic during hotplug remove
+    - wifi: cfg80211: fix sband iftype data lookup for AP_VLAN
+    - dmaengine: mcf-edma: Fix a potential un-allocated memory access
+    - net/mlx5: Allow 0 for total host VFs
+    - ibmvnic: Handle DMA unmapping of login buffs in release functions
+    - btrfs: don't stop integrity writeback too early
+    - btrfs: set cache_block_group_error if we find an error
+    - nvme-tcp: fix potential unbalanced freeze & unfreeze
+    - nvme-rdma: fix potential unbalanced freeze & unfreeze
+    - netfilter: nf_tables: report use refcount overflow
+    - scsi: core: Fix legacy /proc parsing buffer overflow
+    - scsi: storvsc: Fix handling of virtual Fibre Channel timeouts
+    - scsi: 53c700: Check that command slot is not NULL
+    - scsi: snic: Fix possible memory leak if device_add() fails
+    - scsi: core: Fix possible memory leak if device_add() fails
+    - alpha: remove __init annotation from exported page_is_ram()
+    - sch_netem: fix issues in netem_change() vs get_dist_table()
+    - Linux 5.4.254
+  * Focal update: v5.4.253 upstream stable release (LP: #2038652)
+    - jbd2: fix incorrect code style
+    - jbd2: fix kernel-doc markups
+    - jbd2: remove redundant buffer io error checks
+    - jbd2: recheck chechpointing non-dirty buffer
+    - jbd2: Fix wrongly judgement for buffer head removing while doing checkpoint
+    - gpio: tps68470: Make tps68470_gpio_output() always set the initial value
+    - bcache: remove 'int n' from parameter list of bch_bucket_alloc_set()
+    - bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent
+    - btrfs: qgroup: catch reserved space leaks at unmount time
+    - btrfs: fix race between quota disable and relocation
+    - btrfs: fix extent buffer leak after tree mod log failure at split_node()
+    - ext4: rename journal_dev to s_journal_dev inside ext4_sb_info
+    - ext4: Fix reusing stale buffer heads from last failed mounting
+    - PCI/ASPM: Return 0 or -ETIMEDOUT from pcie_retrain_link()
+    - PCI/ASPM: Factor out pcie_wait_for_retrain()
+    - PCI/ASPM: Avoid link retraining race
+    - dlm: cleanup plock_op vs plock_xop
+    - dlm: rearrange async condition return
+    - fs: dlm: interrupt posix locks only when process is killed
+    - ftrace: Add information on number of page groups allocated
+    - ftrace: Check if pages were allocated before calling free_pages()
+    - ftrace: Store the order of pages allocated in ftrace_page
+    - ftrace: Fix possible warning on checking all pages used in
+      ftrace_process_locs()
+    - pwm: meson: Remove redundant assignment to variable fin_freq
+    - pwm: meson: Simplify duplicated per-channel tracking
+    - pwm: meson: fix handling of period/duty if greater than UINT_MAX
+    - scsi: qla2xxx: Fix inconsistent format argument type in qla_os.c
+    - scsi: qla2xxx: Array index may go out of bound
+    - uapi: General notification queue definitions
+    - keys: Fix linking a duplicate key to a keyring's assoc_array
+    - ext4: fix to check return value of freeze_bdev() in ext4_shutdown()
+    - i40e: Fix an NULL vs IS_ERR() bug for debugfs_create_dir()
+    - vxlan: calculate correct header length for GPE
+    - phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe()
+    - ethernet: atheros: fix return value check in atl1e_tso_csum()
+    - ipv6 addrconf: fix bug where deleting a mngtmpaddr can create a new
+      temporary address
+    - bonding: reset bond's flags when down link is P2P device
+    - team: reset team's flags when down link is P2P device
+    - platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100
+    - net/sched: mqprio: refactor nlattr parsing to a separate function
+    - net/sched: mqprio: add extack to mqprio_parse_nlattr()
+    - net/sched: mqprio: Add length check for TCA_MQPRIO_{MAX/MIN}_RATE64
+    - benet: fix return value check in be_lancer_xmit_workarounds()
+    - RDMA/mlx4: Make check for invalid flags stricter
+    - drm/msm/dpu: drop enum dpu_core_perf_data_bus_id
+    - drm/msm/adreno: Fix snapshot BINDLESS_DATA size
+    - drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb()
+    - ASoC: fsl_spdif: Silence output on stop
+    - block: Fix a source code comment in include/uapi/linux/blkzoned.h
+    - dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths
+    - ata: pata_ns87415: mark ns87560_tf_read static
+    - ring-buffer: Fix wrong stat of cpu_buffer->read
+    - tracing: Fix warning in trace_buffered_event_disable()
+    - serial: 8250_dw: Preserve original value of DLF register
+    - serial: sifive: Fix sifive_serial_console_setup() section
+    - USB: serial: option: support Quectel EM060K_128
+    - USB: serial: option: add Quectel EC200A module support
+    - USB: serial: simple: add Kaufmann RKS+CAN VCP
+    - USB: serial: simple: sort driver entries
+    - can: gs_usb: gs_can_close(): add missing set of CAN state to
+      CAN_STATE_STOPPED
+    - Revert "usb: dwc3: core: Enable AutoRetry feature in the controller"
+    - usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy
+    - usb: dwc3: don't reset device side if dwc3 was configured as host-only
+    - usb: ohci-at91: Fix the unhandle interrupt when resume
+    - USB: quirks: add quirk for Focusrite Scarlett
+    - usb: xhci-mtk: set the dma max_seg_size
+    - Revert "usb: xhci: tegra: Fix error check"
+    - Documentation: security-bugs.rst: update preferences when dealing with the
+      linux-distros group
+    - Documentation: security-bugs.rst: clarify CVE handling
+    - staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext()
+    - hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled
+    - btrfs: check for commit error at btrfs_attach_transaction_barrier()
+    - tpm_tis: Explicitly check for error code
+    - irq-bcm6345-l1: Do not assume a fixed block to cpu mapping
+    - btrfs: check if the transaction was aborted at btrfs_wait_for_commit()
+    - virtio-net: fix race between set queues and probe
+    - s390/dasd: fix hanging device after quiesce/resume
+    - ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register
+    - dm cache policy smq: ensure IO doesn't prevent cleaner policy progress
+    - ACPI: processor: perflib: Use the "no limit" frequency QoS
+    - ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily
+    - cpufreq: intel_pstate: Drop ACPI _PSS states table patching
+    - btrfs: qgroup: remove one-time use variables for quota_root checks
+    - btrfs: qgroup: return ENOTCONN instead of EINVAL when quotas are not enabled
+    - ASoC: cs42l51: fix driver to properly autoload with automatic module loading
+    - arm64: Add AMPERE1 to the Spectre-BHB affected list
+    - arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
+    - perf: Fix function pointer case
+    - loop: Select I/O scheduler 'none' from inside add_disk()
+    - word-at-a-time: use the same return type for has_zero regardless of
+      endianness
+    - KVM: s390: fix sthyi error handling
+    - net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx
+    - net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer()
+    - rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length
+    - perf test uprobe_from_different_cu: Skip if there is no gcc
+    - net: sched: cls_u32: Fix match key mis-addressing
+    - mISDN: hfcpci: Fix potential deadlock on &hc->lock
+    - net: annotate data-races around sk->sk_max_pacing_rate
+    - net: add missing READ_ONCE(sk->sk_rcvlowat) annotation
+    - net: add missing READ_ONCE(sk->sk_sndbuf) annotation
+    - net: add missing READ_ONCE(sk->sk_rcvbuf) annotation
+    - net: add missing data-race annotations around sk->sk_peek_off
+    - net: add missing data-race annotation for sk_ll_usec
+    - bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire
+    - driver core: add device probe log helper
+    - net: ll_temac: Switch to use dev_err_probe() helper
+    - net: ll_temac: fix error checking of irq_of_parse_and_map()
+    - net: dcb: choose correct policy to parse DCB_ATTR_BCN
+    - ip6mr: Fix skb_under_panic in ip6mr_cache_report()
+    - tcp_metrics: fix addr_same() helper
+    - tcp_metrics: annotate data-races around tm->tcpm_stamp
+    - tcp_metrics: annotate data-races around tm->tcpm_lock
+    - tcp_metrics: annotate data-races around tm->tcpm_vals[]
+    - tcp_metrics: annotate data-races around tm->tcpm_net
+    - tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen
+    - scsi: zfcp: Defer fc_rport blocking until after ADISC response
+    - libceph: fix potential hang in ceph_osdc_notify()
+    - USB: zaurus: Add ID for A-300/B-500/C-700
+    - mtd: spinand: toshiba: Fix ecc_get_status
+    - mtd: rawnand: meson: fix OOB available bytes for ECC
+    - fs/sysv: Null check to prevent null-ptr-deref bug
+    - net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb
+    - fs: Protect reconfiguration of sb read-write from racing writes
+    - ext2: Drop fragment support
+    - test_firmware: prevent race conditions by a correct implementation of
+      locking
+    - test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation
+    - mtd: rawnand: omap_elm: Fix incorrect type in assignment
+    - powerpc/mm/altmap: Fix altmap boundary check
+    - selftests/rseq: check if libc rseq support is registered
+    - selftests/rseq: Play nice with binaries statically linked against glibc
+      2.35+
+    - PM / wakeirq: support enabling wake-up irq after runtime_suspend called
+    - PM: sleep: wakeirq: fix wake irq arming
+    - ceph: show tasks waiting on caps in debugfs caps file
+    - ceph: use kill_anon_super helper
+    - ceph: defer stopping mdsc delayed_work
+    - arm64: dts: stratix10: fix incorrect I2C property for SCL signal
+    - ARM: dts: imx6sll: Make ssi node name same as other platforms
+    - ARM: dts: imx: Align L2 cache-controller nodename with dtschema
+    - ARM: dts: imx: add usb alias
+    - ARM: dts: imx6sll: fixup of operating points
+    - ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node
+    - driver core: Annotate dev_err_probe() with __must_check
+    - driver code: print symbolic error code
+    - drivers: core: fix kernel-doc markup for dev_err_probe()
+    - Revert "driver core: Annotate dev_err_probe() with __must_check"
+    - Linux 5.4.253
+    - Upstream stable to v5.4.253
+  * CVE-2023-37453
+    - USB: hub: Clean up use of port initialization schemes and retries
+    - USB: hub: Add Kconfig option to reduce number of port initialization retries
+    - USB: core: Unite old scheme and new scheme descriptor reads
+    - usb: hub: Check device descriptor before resusciation
+    - USB: core: Change usb_get_device_descriptor() API
+    - USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 11 Dec 2023 17:06:03 +0800
+
+linux-ein (5.4.0-1043.50) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1043.50 -proposed tracker (LP: #2044653)
+
+  * Amgis-V5][UC20] Cortex A7 Core 1 Bare metal application conflicts with
+    OPTEE/Linux (LP#2023563)
+    - SAUCE: irq-gic: Allow device tree to exclude irqs
+    - SAUCE: amgis: dts: Exclude A7 Core 1 irqs
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sun, 26 Nov 2023 23:57:27 +0800
+
+linux-ein (5.4.0-1042.49) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1042.49 -proposed tracker (LP: #2044059)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync update-dkms-versions helper
+
+  * Amgis v6 hardware (LP: #2043011)
+    - SAUCE: dts: Add Amgis v6 device tree
+
+  * Miscellaneous Ubuntu changes
+    - snap: medina: Adapt to the new config model
+
+  [ Ubuntu: 5.4.0-167.184 ]
+
+  * focal/linux: 5.4.0-167.184 -proposed tracker (LP: #2041988)
+  * CVE-2023-45871
+    - igb: set max size RX buffer when store bad packet is enabled
+  * CVE-2023-31085
+    - ubi: Refuse attaching if mtd's erasesize is 0
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 21 Nov 2023 13:00:44 +0800
+
+linux-ein (5.4.0-1041.48) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1041.48 -proposed tracker (LP: #2040956)
+
+  * Focal update: v5.4.251 upstream stable release (LP: #2034918)
+    - SAUCE: drm/panel: AVD101WX-CN: Update drm_panel_init() call
+
+  * Use new annotations model (LP: #2019000)
+    - [Config] ein: sanitize annotations
+    - [Config] ein: Migrate to the new annotations model
+    - [Config] ein: Migrate to the new annotations model
+
+  * CVE-2023-42755
+    - [Config] ein: remove NET_CLS_RSVP and NET_CLS_RSVP6
+
+  * Focal update: v5.4.248 upstream stable release (LP: #2031121)
+    - [Config] ein: updateconfigs for DECNET
+
+  * [Amgis-V5][UC20] LPM Suspend to Mem vs Standby (LP: #2038441)
+    - Revert "UBUNTU: SAUCE: imx7: Suspend/Resume updates"
+    - Revert "UBUNTU: SAUCE: ARM: imx7: Fix memory mapping for iram_tlb_io_desc by
+      removing the executable flag, resulting in a pagetable warning."
+
+  * Missing Marvell firmware (LP: #2037448)
+    - snap: medina: remove Marvell firmwares except sdsd8997_combo_v4.bin
+
+  * Miscellaneous Ubuntu changes
+    - [Config] ein: Change CONFIG_BLK_DEV_LOOP_MIN_COUNT to 8
+    - snap: medina: Remove pahole from build-packages
+
+  [ Ubuntu: 5.4.0-166.183 ]
+
+  * focal/linux: 5.4.0-166.183 -proposed tracker (LP: #2038010)
+  * Use new annotations model (LP: #2019000)
+    - [Packaging] new annotations model infrastructure
+    - [Packaging] config-check: Handle new annotations format 4
+    - [Packaging] rules: Use old-kernelconfig for old configs
+    - [Config] sanitize annotations
+    - [Config] import generated configs into annotation file
+    - [Packaging] kernelconfig: add i386 as supported arch
+    - [Config] Remove all old configs files
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - [Packaging] update annotations scripts
+  * fix typo in config-checks invocation (LP: #2020413)
+    - [Packaging] fix typo when calling the old config-check
+    - [Packaging] fix typo in 4-checks.mk
+  * support python < 3.9 with annotations (LP: #2020531)
+    - [Packaging] kconfig/annotations.py: support older way of merging dicts
+  * CVE-2023-42756
+    - netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
+  * CVE-2023-4623
+    - net/sched: sch_hfsc: Ensure inner classes have fsc curve
+  * Focal update: v5.4.252 upstream stable release (LP: #2036240)
+    - ia64/cpu: Switch to arch_cpu_finalize_init()
+    - m68k/cpu: Switch to arch_cpu_finalize_init()
+    - mips/cpu: Switch to arch_cpu_finalize_init()
+    - sh/cpu: Switch to arch_cpu_finalize_init()
+    - x86/cpufeatures: Add SEV-ES CPU feature
+    - x86/cpu: Add VM page flush MSR availablility as a CPUID feature
+    - x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX]
+    - tools headers cpufeatures: Sync with the kernel sources
+    - x86/cpu, kvm: Add support for CPUID_80000021_EAX
+    - Linux 5.4.252
+    - Upstream stable to v5.4.252
+  * CVE-2023-42755
+    - net/sched: Retire rsvp classifier
+    - [Config] remove NET_CLS_RSVP and NET_CLS_RSVP6
+  * CVE-2023-42753
+    - netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for
+      ip_set_hash_netportnet.c
+  * CVE-2023-34319
+    - xen/netback: Fix buffer overrun triggered by unusual packet
+  * CVE-2023-4921
+    - net: sched: sch_qfq: Fix UAF in qfq_dequeue()
+  * CVE-2023-42752
+    - igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
+  * Avoid address overwrite in kernel_connect (LP: #2035163)
+    - net: Avoid address overwrite in kernel_connect
+  * [regression] Unable to initialize SGX enclaves with XFRM other than 3
+    (LP: #2034745)
+    - x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4
+  * CVE-2023-4881
+    - netfilter: nftables: exthdr: fix 4-byte stack OOB write
+  * CVE-2023-4622
+    - af_unix: Fix null-ptr-deref in unix_stream_sendpage().
+  * Focal update: v5.4.251 upstream stable release (LP: #2034918)
+    - x86/smp: Use dedicated cache-line for mwait_play_dead()
+    - video: imsttfb: check for ioremap() failures
+    - fbdev: imsttfb: Fix use after free bug in imsttfb_probe
+    - HID: wacom: Use ktime_t rather than int when dealing with timestamps
+    - drm/i915: Initialise outparam for error return from wait_for_register
+    - scripts/tags.sh: Resolve gtags empty index generation
+    - drm/amdgpu: Validate VM ioctl flags.
+    - bgmac: fix *initial* chip reset to support BCM5358
+    - x86/resctrl: Use is_closid_match() in more places
+    - x86/resctrl: Only show tasks' pid in current pid namespace
+    - md/raid10: check slab-out-of-bounds in md_bitmap_get_counter
+    - md/raid10: fix overflow of md/safe_mode_delay
+    - md/raid10: fix wrong setting of max_corr_read_errors
+    - md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request
+    - md/raid10: fix io loss while replacement replace rdev
+    - irqchip/jcore-aic: Kill use of irq_create_strict_mappings()
+    - irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
+    - tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
+    - clocksource/drivers/cadence-ttc: Use ttc driver as platform driver
+    - clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
+    - PM: domains: fix integer overflow issues in genpd_parse_state()
+    - powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
+    - ARM: 9303/1: kprobes: avoid missing-declaration warnings
+    - evm: Complete description of evm_inode_setattr()
+    - pstore/ram: Add check for kstrdup
+    - ima: Fix build warnings
+    - wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation
+    - wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
+    - samples/bpf: Fix buffer overflow in tcp_basertt
+    - spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG
+    - wifi: mwifiex: Fix the size of a memory allocation in
+      mwifiex_ret_802_11_scan()
+    - nfc: constify several pointers to u8, char and sk_buff
+    - nfc: llcp: fix possible use of uninitialized variable in
+      nfc_llcp_send_connect()
+    - regulator: core: Fix more error checking for debugfs_create_dir()
+    - regulator: core: Streamline debugfs operations
+    - wifi: orinoco: Fix an error handling path in spectrum_cs_probe()
+    - wifi: orinoco: Fix an error handling path in orinoco_cs_probe()
+    - wifi: atmel: Fix an error handling path in atmel_probe()
+    - wl3501_cs: Fix a bunch of formatting issues related to function docs
+    - wl3501_cs: Remove unnecessary NULL check
+    - wl3501_cs: Fix misspelling and provide missing documentation
+    - net: create netdev->dev_addr assignment helpers
+    - wl3501_cs: use eth_hw_addr_set()
+    - wifi: wl3501_cs: Fix an error handling path in wl3501_probe()
+    - wifi: ray_cs: Utilize strnlen() in parse_addr()
+    - wifi: ray_cs: Drop useless status variable in parse_addr()
+    - wifi: ray_cs: Fix an error handling path in ray_probe()
+    - wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
+    - wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown
+    - watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct
+      config
+    - watchdog/perf: more properly prevent false positives with turbo modes
+    - kexec: fix a memory leak in crash_shrink_memory()
+    - memstick r592: make memstick_debug_get_tpc_name() static
+    - wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key()
+    - rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO
+    - wifi: iwlwifi: pull from TXQs with softirqs disabled
+    - wifi: cfg80211: rewrite merging of inherited elements
+    - wifi: ath9k: convert msecs to jiffies where needed
+    - netlink: fix potential deadlock in netlink_set_err()
+    - netlink: do not hard code device address lenth in fdb dumps
+    - selftests: rtnetlink: remove netdevsim device after ipsec offload test
+    - gtp: Fix use-after-free in __gtp_encap_destroy().
+    - lib/ts_bm: reset initial match offset for every block of text
+    - netfilter: conntrack: dccp: copy entire header to stack buffer, not just
+      basic one
+    - netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return
+      value.
+    - ipvlan: Fix return value of ipvlan_queue_xmit()
+    - netlink: Add __sock_i_ino() for __netlink_diag_dump().
+    - radeon: avoid double free in ci_dpm_init()
+    - Input: drv260x - sleep between polling GO bit
+    - ARM: dts: BCM5301X: Drop "clock-names" from the SPI node
+    - Input: adxl34x - do not hardcode interrupt trigger type
+    - drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
+    - RDMA/bnxt_re: Fix to remove an unnecessary log
+    - ARM: dts: gta04: Move model property out of pinctrl node
+    - arm64: dts: qcom: msm8916: correct camss unit address
+    - drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H
+    - ARM: ep93xx: fix missing-prototype warnings
+    - memory: brcmstb_dpfe: fix testing array offset after use
+    - ASoC: es8316: Increment max value for ALC Capture Target Volume control
+    - ASoC: es8316: Do not set rate constraints for unsupported MCLKs
+    - soc/fsl/qe: fix usb.c build errors
+    - IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors
+    - arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1
+    - fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
+    - drm/amdkfd: Fix potential deallocation of previously deallocated memory.
+    - drm/radeon: fix possible division-by-zero errors
+    - clk: tegra: tegra124-emc: Fix potential memory leak
+    - ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer
+    - clk: cdce925: check return value of kasprintf()
+    - clk: keystone: sci-clk: check return value of kasprintf()
+    - ASoC: imx-audmix: check return value of devm_kasprintf()
+    - scsi: qedf: Fix NULL dereference in error handling
+    - PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free
+    - scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe()
+    - PCI: pciehp: Cancel bringup sequence if card is not present
+    - PCI: ftpci100: Release the clock resources
+    - PCI: Add pci_clear_master() stub for non-CONFIG_PCI
+    - pinctrl: cherryview: Return correct value if pin in push-pull mode
+    - perf dwarf-aux: Fix off-by-one in die_get_varname()
+    - pinctrl: at91-pio4: check return value of devm_kasprintf()
+    - powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-
+      boundary
+    - hwrng: virtio - add an internal buffer
+    - hwrng: virtio - don't wait on cleanup
+    - hwrng: virtio - don't waste entropy
+    - hwrng: virtio - always add a pending request
+    - hwrng: virtio - Fix race on data_avail and actual data
+    - crypto: nx - fix build warnings when DEBUG_FS is not enabled
+    - modpost: fix section mismatch message for R_ARM_ABS32
+    - modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24}
+    - crypto: marvell/cesa - Fix type mismatch warning
+    - modpost: fix off by one in is_executable_section()
+    - ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard
+    - NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
+    - hwrng: st - Fix W=1 unused variable warning
+    - hwrng: st - keep clock enabled while hwrng is registered
+    - USB: serial: option: add LARA-R6 01B PIDs
+    - usb: dwc3: gadget: Propagate core init errors to UDC during pullup
+    - block: fix signed int overflow in Amiga partition support
+    - block: change all __u32 annotations to __be32 in affs_hardblocks.h
+    - w1: fix loop in w1_fini()
+    - sh: j2: Use ioremap() to translate device tree address into kernel memory
+    - media: usb: Check az6007_read() return value
+    - media: videodev2.h: Fix struct v4l2_input tuner index comment
+    - usb: dwc3: qcom: Fix potential memory leak
+    - extcon: Fix kernel doc of property fields to avoid warnings
+    - extcon: Fix kernel doc of property capability fields to avoid warnings
+    - usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe()
+    - usb: hide unused usbfs_notify_suspend/resume functions
+    - mfd: rt5033: Drop rt5033-battery sub-device
+    - KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes
+    - usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove()
+    - mfd: intel-lpss: Add missing check for platform_get_resource
+    - serial: 8250_omap: Use force_suspend and resume for system suspend
+    - mfd: stmfx: Fix error path in stmfx_chip_init
+    - KVM: s390: vsie: fix the length of APCB bitmap
+    - mfd: stmpe: Only disable the regulators if they are enabled
+    - pwm: imx-tpm: force 'real_period' to be zero in suspend
+    - pwm: sysfs: Do not apply state to already disabled PWMs
+    - rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
+    - sctp: fix potential deadlock on &net->sctp.addr_wq_lock
+    - Add MODULE_FIRMWARE() for FIRMWARE_TG357766.
+    - spi: bcm-qspi: return error if neither hif_mspi nor mspi is available
+    - mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
+    - f2fs: fix error path handling in truncate_dnode()
+    - powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y
+    - net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode
+    - tcp: annotate data races in __tcp_oow_rate_limited()
+    - xsk: Improve documentation for AF_XDP
+    - xsk: Honor SO_BINDTODEVICE on bind
+    - net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX
+    - net: dsa: tag_sja1105: fix MAC DA patching from meta frames
+    - sh: dma: Fix DMA channel offset calculation
+    - i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process()
+    - i2c: xiic: Don't try to handle more interrupt events after error
+    - ALSA: jack: Fix mutex call in snd_jack_report()
+    - NFSD: add encoding of op_recall flag for write delegation
+    - mmc: core: disable TRIM on Kingston EMMC04G-M627
+    - mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M
+    - mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is
+      used.
+    - bcache: Remove unnecessary NULL point check in node allocations
+    - integrity: Fix possible multiple allocation in integrity_inode_get()
+    - jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
+    - fs: avoid empty option when generating legacy mount string
+    - ext4: Remove ext4 locking of moved directory
+    - Revert "f2fs: fix potential corruption when moving a directory"
+    - fs: Establish locking order for unrelated directories
+    - fs: Lock moved directories
+    - btrfs: fix race when deleting quota root from the dirty cow roots list
+    - ARM: orion5x: fix d2net gpio initialization
+    - fs: no need to check source
+    - fanotify: disallow mount/sb marks on kernel internal pseudo fs
+    - block: add overflow checks for Amiga partition support
+    - netfilter: nf_tables: fix nat hook table deletion
+    - netfilter: nftables: add helper function to set the base sequence number
+    - netfilter: add helper function to set up the nfnetlink header and use it
+    - netfilter: nf_tables: use net_generic infra for transaction data
+    - netfilter: nf_tables: add rescheduling points during loop detection walks
+    - netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound
+      set/chain
+    - netfilter: nf_tables: reject unbound anonymous set before commit phase
+    - netfilter: nf_tables: unbind non-anonymous set if rule construction fails
+    - netfilter: nf_tables: fix scheduling-while-atomic splat
+    - netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
+    - tty: serial: fsl_lpuart: add earlycon for imx8ulp platform
+    - block/partition: fix signedness issue for Amiga partitions
+    - net: lan743x: Don't sleep in atomic context
+    - workqueue: clean up WORK_* constant types, clarify masking
+    - drm/panel: Initialise panel dev and funcs through drm_panel_init()
+    - drm/panel: Add and fill drm_panel type field
+    - drm/panel: simple: Add connector_type for innolux_at043tn24
+    - igc: Remove delay during TX ring configuration
+    - igc: set TP bit in 'supported' and 'advertising' fields of
+      ethtool_link_ksettings
+    - scsi: qla2xxx: Fix error code in qla2x00_start_sp()
+    - net: mvneta: fix txq_map in case of txq_number==1
+    - ionic: improve irq numa locality
+    - ionic: clean irq affinity on queue deinit
+    - ionic: move irq request to qcq alloc
+    - ionic: ionic_intr_free parameter change
+    - ionic: remove WARN_ON to prevent panic_on_warn
+    - icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev().
+    - udp6: fix udp6_ehashfn() typo
+    - ntb: idt: Fix error handling in idt_pci_driver_init()
+    - NTB: amd: Fix error handling in amd_ntb_pci_driver_init()
+    - ntb: intel: Fix error handling in intel_ntb_pci_driver_init()
+    - NTB: ntb_transport: fix possible memory leak while device_register() fails
+    - NTB: ntb_tool: Add check for devm_kcalloc
+    - ipv6/addrconf: fix a potential refcount underflow for idev
+    - platform/x86: wmi: Replace UUID redefinitions by their originals
+    - platform/x86: wmi: Fix indentation in some cases
+    - platform/x86: wmi: remove unnecessary argument
+    - platform/x86: wmi: use guid_t and guid_equal()
+    - platform/x86: wmi: move variables
+    - platform/x86: wmi: Break possible infinite loop when parsing GUID
+    - erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF
+    - wifi: airo: avoid uninitialized warning in airo_get_rate()
+    - cls_flower: Add extack support for src and dst port range options
+    - net/sched: flower: Ensure both minimum and maximum ports are specified
+    - net/sched: make psched_mtu() RTNL-less safe
+    - pinctrl: amd: Fix mistake in handling clearing pins at startup
+    - pinctrl: amd: Detect internal GPIO0 debounce handling
+    - pinctrl: amd: Only use special debounce behavior for GPIO 0
+    - tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation
+    - mtd: rawnand: meson: fix unaligned DMA buffers handling
+    - net: bcmgenet: Ensure MDIO unregistration has clocks enabled
+    - powerpc: Fail build if using recordmcount with binutils v2.37
+    - misc: fastrpc: Create fastrpc scalar with correct buffer count
+    - SUNRPC: Fix UAF in svc_tcp_listen_data_ready()
+    - erofs: fix compact 4B support for 16k block size
+    - ext4: fix wrong unit use in ext4_mb_clear_bb
+    - ext4: only update i_reserved_data_blocks on successful block allocation
+    - jfs: jfs_dmap: Validate db_l2nbperpage while mounting
+    - PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold
+    - PCI: Add function 1 DMA alias quirk for Marvell 88SE9235
+    - PCI: qcom: Disable write access to read only registers for IP v2.3.3
+    - PCI: rockchip: Assert PCI Configuration Enable bit after probe
+    - PCI: rockchip: Write PCI Device ID to correct register
+    - PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked
+    - PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core
+    - PCI: rockchip: Use u32 variable to access 32-bit registers
+    - PCI: rockchip: Set address alignment for endpoint mode
+    - misc: pci_endpoint_test: Free IRQs before removing the device
+    - misc: pci_endpoint_test: Re-init completion for every test
+    - md/raid0: add discard support for the 'original' layout
+    - fs: dlm: return positive pid value for F_GETLK
+    - drm/atomic: Allow vblank-enabled + self-refresh "disable"
+    - drm/rockchip: vop: Leave vblank enabled in self-refresh
+    - serial: atmel: don't enable IRQs prematurely
+    - firmware: stratix10-svc: Fix a potential resource leak in
+      svc_create_memory_pool()
+    - hwrng: imx-rngc - fix the timeout for init and self check
+    - ceph: don't let check_caps skip sending responses for revoke msgs
+    - meson saradc: fix clock divider mask length
+    - Revert "8250: add support for ASIX devices with a FIFO bug"
+    - tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in
+      case of error
+    - tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when
+      iterating clk
+    - tracing/histograms: Add histograms to hist_vars if they have referenced
+      variables
+    - ring-buffer: Fix deadloop issue on reading trace_pipe
+    - xtensa: ISS: fix call to split_if_spec
+    - tracing: Fix null pointer dereference in tracing_err_log_open()
+    - tracing/probes: Fix not to count error code to total length
+    - scsi: qla2xxx: Wait for io return on terminate rport
+    - scsi: qla2xxx: Fix potential NULL pointer dereference
+    - scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport()
+    - scsi: qla2xxx: Correct the index of array
+    - scsi: qla2xxx: Pointer may be dereferenced
+    - scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
+    - drm/atomic: Fix potential use-after-free in nonblocking commits
+    - perf probe: Add test for regression introduced by switch to
+      die_get_decl_file()
+    - btrfs: fix warning when putting transaction with qgroups enabled after abort
+    - fuse: revalidate: don't invalidate if interrupted
+    - selftests: tc: set timeout to 15 minutes
+    - can: bcm: Fix UAF in bcm_proc_show()
+    - drm/client: Fix memory leak in drm_client_target_cloned
+    - drm/client: Fix memory leak in drm_client_modeset_probe
+    - ext4: correct inline offset when handling xattrs in inode body
+    - debugobjects: Recheck debug_objects_enabled before reporting
+    - nbd: Add the maximum limit of allocated index in nbd_dev_add
+    - md: fix data corruption for raid456 when reshape restart while grow up
+    - md/raid10: prevent soft lockup while flush writes
+    - posix-timers: Ensure timer ID search-loop limit is valid
+    - arm64: mm: fix VA-range sanity check
+    - sched/fair: Don't balance task to its current running CPU
+    - bpf: Address KCSAN report on bpf_lru_list
+    - devlink: report devlink_port_type_warn source device
+    - wifi: wext-core: Fix -Wstringop-overflow warning in
+      ioctl_standard_iw_point()
+    - wifi: iwlwifi: mvm: avoid baid size integer overflow
+    - igb: Fix igb_down hung on surprise removal
+    - spi: bcm63xx: fix max prepend length
+    - fbdev: imxfb: warn about invalid left/right margin
+    - pinctrl: amd: Use amd_pinconf_set() for all config options
+    - net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()
+    - iavf: Fix use-after-free in free_netdev
+    - net:ipv6: check return value of pskb_trim()
+    - Revert "tcp: avoid the lookup process failing to get sk in ehash table"
+    - fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe
+    - llc: Don't drop packet from non-root netns.
+    - netfilter: nf_tables: fix spurious set element insertion failure
+    - netfilter: nf_tables: can't schedule in nft_chain_validate
+    - tcp: annotate data-races around tp->tcp_tx_delay
+    - net: Replace the limit of TCP_LINGER2 with TCP_FIN_TIMEOUT_MAX
+    - tcp: annotate data-races around tp->linger2
+    - tcp: annotate data-races around rskq_defer_accept
+    - tcp: annotate data-races around tp->notsent_lowat
+    - tcp: annotate data-races around fastopenq.max_qlen
+    - tracing/histograms: Return an error if we fail to add histogram to hist_vars
+      list
+    - Linux 5.4.251
+  * Focal update: v5.4.250 upstream stable release (LP: #2033297)
+    - x86/microcode/AMD: Load late on both threads too
+    - Linux 5.4.250
+  * Focal update: v5.4.249 upstream stable release (LP: #2033278)
+    - nilfs2: reject devices with insufficient block count
+    - mm: rewrite wait_on_page_bit_common() logic
+    - list: add "list_del_init_careful()" to go with "list_empty_careful()"
+    - epoll: ep_autoremove_wake_function should use list_del_init_careful
+    - tracing: Add tracing_reset_all_online_cpus_unlocked() function
+    - x86/purgatory: remove PGO flags
+    - tick/common: Align tick period during sched_timer setup
+    - media: dvbdev: Fix memleak in dvb_register_device
+    - media: dvbdev: fix error logic at dvb_register_device()
+    - media: dvb-core: Fix use-after-free due to race at dvb_register_device()
+    - nilfs2: fix buffer corruption due to concurrent device reads
+    - Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
+    - PCI: hv: Fix a race condition bug in hv_pci_query_relations()
+    - cgroup: Do not corrupt task iteration when rebinding subsystem
+    - mmc: meson-gx: remove redundant mmc_request_done() call from irq context
+    - ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN
+    - writeback: fix dereferencing NULL mapping->host on writeback_page_template
+    - nilfs2: prevent general protection fault in nilfs_clear_dirty_page()
+    - cifs: Clean up DFS referral cache
+    - cifs: Get rid of kstrdup_const()'d paths
+    - cifs: Introduce helpers for finding TCP connection
+    - cifs: Merge is_path_valid() into get_normalized_path()
+    - cifs: Fix potential deadlock when updating vol in cifs_reconnect()
+    - x86/mm: Avoid using set_pgd() outside of real PGD pages
+    - ieee802154: hwsim: Fix possible memory leaks
+    - xfrm: Linearize the skb after offloading if needed.
+    - net: qca_spi: Avoid high load if QCA7000 is not available
+    - mmc: mtk-sd: fix deferred probing
+    - mmc: mvsdio: convert to devm_platform_ioremap_resource
+    - mmc: mvsdio: fix deferred probing
+    - mmc: omap: fix deferred probing
+    - mmc: omap_hsmmc: fix deferred probing
+    - mmc: sdhci-acpi: fix deferred probing
+    - mmc: sh_mmcif: fix deferred probing
+    - mmc: usdhi60rol0: fix deferred probing
+    - ipvs: align inner_mac_header for encapsulation
+    - net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
+    - be2net: Extend xmit workaround to BE3 chip
+    - netfilter: nf_tables: disallow element updates of bound anonymous sets
+    - netfilter: nfnetlink_osf: fix module autoload
+    - Revert "net: phy: dp83867: perform soft reset and retain established link"
+    - sch_netem: acquire qdisc lock in netem_change()
+    - scsi: target: iscsi: Prevent login threads from racing between each other
+    - HID: wacom: Add error check to wacom_parse_and_register()
+    - arm64: Add missing Set/Way CMO encodings
+    - media: cec: core: don't set last_initiator if tx in progress
+    - nfcsim.c: Fix error checking for debugfs_create_dir
+    - usb: gadget: udc: fix NULL dereference in remove()
+    - s390/cio: unregister device when the only path is gone
+    - ASoC: nau8824: Add quirk to active-high jack-detect
+    - ARM: dts: Fix erroneous ADS touchscreen polarities
+    - drm/exynos: vidi: fix a wrong error return
+    - drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl
+    - drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl
+    - x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys
+    - i2c: imx-lpi2c: fix type char overflow issue when calculating the clock
+      cycle
+    - mm: fix VM_BUG_ON(PageTail) and BUG_ON(PageWriteback)
+    - mm: make wait_on_page_writeback() wait for multiple pending writebacks
+    - Linux 5.4.249
+  * allow io_uring to be disabled in runtime (LP: #2035116)
+    - io_uring: add a sysctl to disable io_uring system-wide
+  * CVE-2023-31083
+    - Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO
+  * CVE-2023-4132
+    - media: usb: siano: Fix warning due to null work_func_t function pointer
+  * CVE-2023-3772
+    - xfrm: add NULL check in xfrm_update_ae_params
+  * CVE-2023-0597
+    - random32: add noise from network and scheduling activity
+    - x86/kasan: Map shadow for percpu pages on demand
+    - x86/mm: Randomize per-cpu entry area
+    - x86/mm: Recompute physical address for every page of per-CPU CEA mapping
+    - x86/mm: Populate KASAN shadow for entire per-CPU range of CPU entry area
+    - x86/mm: Do not shuffle CPU entry areas without KASLR
+
+  [ Ubuntu: 5.4.0-164.181 ]
+
+  * focal/linux: 5.4.0-164.181 -proposed tracker (LP: #2033867)
+  * Please enable Renesas RZ platform serial installer (LP: #2022361)
+    - [Config] enable hihope RZ/G2M serial console
+  * Azure: hv_netvsc: add support for vlans in AF_PACKET mode (LP: #2030872)
+    - hv_netvsc: add support for vlans in AF_PACKET mode
+  * systemd mount units fail during boot, while file system is correctly mounted
+    (LP: #1837227)
+    - list: introduce list_for_each_continue()
+    - proc/mounts: add cursor
+  * CVE-2023-40283
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
+  * CVE-2023-20588
+    - x86/bugs: Increase the x86 bugs vector size to two u32s
+    - x86/CPU/AMD: Do not leak quotient data after a division by 0
+    - x86/CPU/AMD: Fix the DIV(0) initial fix attempt
+  * CVE-2023-4194
+    - net: tun_chr_open(): set sk_uid from current_fsuid()
+    - net: tap_open(): set sk_uid from current_fsuid()
+  * CVE-2023-1206
+    - tcp: Reduce chance of collisions in inet6_hashfn().
+  * CVE-2021-4001
+    - bpf: Fix toctou on read-only map's constant scalar tracking
+  * Focal update: v5.4.248 upstream stable release (LP: #2031121)
+    - test_firmware: fix a memory leak with reqs buffer
+    - KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
+    - dasd: refactor dasd_ioctl_information
+    - s390/dasd: Use correct lock while counting channel queue length
+    - power: supply: ab8500: Fix external_power_changed race
+    - power: supply: sc27xx: Fix external_power_changed race
+    - power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() +
+      schedule()
+    - ARM: dts: vexpress: add missing cache properties
+    - power: supply: Ratelimit no data debug output
+    - platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
+    - regulator: Fix error checking for debugfs_create_dir
+    - irqchip/meson-gpio: Mark OF related data as maybe unused
+    - power: supply: Fix logic checking if system is running from battery
+    - btrfs: handle memory allocation failure in btrfs_csum_one_bio
+    - parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
+    - parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
+    - MIPS: Alchemy: fix dbdma2
+    - mips: Move initrd_start check after initrd address sanitisation.
+    - xen/blkfront: Only check REQ_FUA for writes
+    - drm:amd:amdgpu: Fix missing buffer object unlock in failure path
+    - ocfs2: fix use-after-free when unmounting read-only filesystem
+    - ocfs2: check new file size on fallocate call
+    - nios2: dts: Fix tse_mac "max-frame-size" property
+    - nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
+    - nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
+    - kexec: support purgatories with .text.hot sections
+    - powerpc/purgatory: remove PGO flags
+    - nouveau: fix client work fence deletion race
+    - RDMA/uverbs: Restrict usage of privileged QKEYs
+    - net: usb: qmi_wwan: add support for Compal RXM-G1
+    - ALSA: hda/realtek: Add a quirk for Compaq N14JP6
+    - Remove DECnet support from kernel
+    - [Config] updateconfigs for DECNET
+    - USB: serial: option: add Quectel EM061KGL series
+    - serial: lantiq: add missing interrupt ack
+    - usb: dwc3: gadget: Reset num TRBs before giving back the request
+    - spi: spi-fsl-dspi: Remove unused chip->void_write_data
+    - spi: fsl-dspi: avoid SCK glitches with continuous transfers
+    - netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
+    - ping6: Fix send to link-local addresses with VRF.
+    - RDMA/rxe: Remove the unused variable obj
+    - RDMA/rxe: Removed unused name from rxe_task struct
+    - RDMA/rxe: Fix the use-before-initialization error of resp_pkts
+    - iavf: remove mask from iavf_irq_enable_queues()
+    - IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
+    - IB/isert: Fix dead lock in ib_isert
+    - IB/isert: Fix possible list corruption in CMA handler
+    - IB/isert: Fix incorrect release of isert connection
+    - ipvlan: fix bound dev checking for IPv6 l3s mode
+    - sctp: fix an error code in sctp_sf_eat_auth()
+    - igb: fix nvm.ops.read() error handling
+    - drm/nouveau/dp: check for NULL nv_connector->native_mode
+    - drm/nouveau/kms: Don't change EDID when it hasn't actually changed
+    - drm/nouveau: add nv_encoder pointer check for NULL
+    - net/sched: cls_api: Fix lockup on flushing explicitly created chain
+    - net: lapbether: only support ethernet devices
+    - net: tipc: resize nlattr array to correct size
+    - selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
+    - afs: Fix vlserver probe RTT handling
+    - neighbour: Remove unused inline function neigh_key_eq16()
+    - net: Remove unused inline function dst_hold_and_use()
+    - neighbour: delete neigh_lookup_nodev as not used
+    - drm/nouveau/kms: Fix NULL pointer dereference in
+      nouveau_connector_detect_depth
+    - mmc: block: ensure error propagation for non-blk
+    - Linux 5.4.248
+  * Focal update: v5.4.247 upstream stable release (LP: #2030818)
+    - blk-iocost: avoid 64-bit division in ioc_timer_fn
+    - block/blk-iocost (gcc13): keep large values in a new enum
+    - i40iw: fix build warning in i40iw_manage_apbvt()
+    - i40e: fix build warnings in i40e_alloc.h
+    - spi: qup: Request DMA before enabling clocks
+    - neighbour: Replace zero-length array with flexible-array member
+    - neighbour: fix unaligned access to pneigh_entry
+    - net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods
+    - Bluetooth: Fix l2cap_disconnect_req deadlock
+    - Bluetooth: L2CAP: Add missing checks for invalid DCID
+    - netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper
+    - netfilter: ipset: Add schedule point in call_ad().
+    - rfs: annotate lockless accesses to sk->sk_rxhash
+    - rfs: annotate lockless accesses to RFS sock flow table
+    - net: sched: move rtm_tca_policy declaration to include file
+    - net: sched: fix possible refcount leak in tc_chain_tmplt_add()
+    - lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release()
+    - bnxt_en: Query default VLAN before VNIC setup on a VF
+    - batman-adv: Broken sync while rescheduling delayed work
+    - Input: xpad - delete a Razer DeathAdder mouse VID/PID entry
+    - Input: psmouse - fix OOB access in Elantech protocol
+    - ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01
+    - ALSA: hda/realtek: Add Lenovo P3 Tower platform
+    - drm/amdgpu: fix xclk freq on CHIP_STONEY
+    - can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in
+      J1939 Socket
+    - can: j1939: change j1939_netdev_lock type to mutex
+    - can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
+    - ceph: fix use-after-free bug for inodes when flushing capsnaps
+    - Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
+    - rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting
+    - pinctrl: meson-axg: add missing GPIOA_18 gpio group
+    - usb: usbfs: Enforce page requirements for mmap
+    - usb: usbfs: Use consistent mmap functions
+    - bonding (gcc13): synchronize bond_{a,t}lb_xmit() types
+    - i2c: sprd: Delete i2c adapter in .remove's error path
+    - eeprom: at24: also select REGMAP
+    - ext4: only check dquot_initialize_needed() when debugging
+    - drm/atomic: Don't pollute crtc_state->mode_blob with error pointers
+    - rbd: get snapshot context after exclusive lock is ensured to be held
+    - mtd: spinand: macronix: Add support for MX35LFxGE4AD
+    - Linux 5.4.247
+  * CVE-2023-4128
+    - net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_route: No longer copy tcf_result on update to avoid use-
+      after-free
+  * CVE-2023-3863
+    - nfc: llcp: simplify llcp_sock_connect() error paths
+    - net: nfc: Fix use-after-free caused by nfc_llcp_find_local
+  * CVE-2023-3212
+    - gfs2: Don't deref jdesc in evict
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 26 Oct 2023 23:43:23 +0800
+
+linux-ein (5.4.0-1040.47) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1040.47 -proposed tracker (LP: #2037063)
+
+  * [K4500-NXP][UC20] Enable VPU For HW Accelerated Video Decoding (LP:
+    #2029414)
+    - [Config] ein: Enable Hantro VPU decoder for IMX8mm devices
+
+  * Miscellaneous Ubuntu changes
+    - snap: Import snapcraft.yaml for Medina
+
+  [ Ubuntu: 5.4.0-163.180 ]
+
+  * focal/linux: 5.4.0-163.180 -proposed tracker (LP: #2034247)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+  * CVE-2023-40283
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
+  * CVE-2023-20588
+    - x86/bugs: Increase the x86 bugs vector size to two u32s
+    - x86/CPU/AMD: Do not leak quotient data after a division by 0
+    - x86/CPU/AMD: Fix the DIV(0) initial fix attempt
+  * CVE-2023-4128
+    - net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-
+      free
+    - net/sched: cls_route: No longer copy tcf_result on update to avoid use-
+      after-free
+
+  [ Ubuntu: 5.4.0-162.179 ]
+
+  * focal/linux: 5.4.0-162.179 -proposed tracker (LP: #2031128)
+  * libgnutls report "trap invalid opcode" when trying to install packages over
+    https (LP: #2031093)
+    - [Config]: disable CONFIG_GDS_FORCE_MITIGATION
+
+  [ Ubuntu: 5.4.0-160.177 ]
+
+  * focal/linux: 5.4.0-160.177 -proposed tracker (LP: #2031017)
+  * Fix boot test warning for log_check "CPU: 0 PID: 0 at
+    arch/x86/kernel/fpu/xstate.c:878 get_xsave_addr+0x98/0xb0" (LP: #2031022)
+    - x86/pkeys: Revert a5eff7259790 ("x86/pkeys: Add PKRU value to init_fpstate")
+
+  [ Ubuntu: 5.4.0-158.175 ]
+
+  * focal/linux: 5.4.0-158.175 -proposed tracker (LP: #2030466)
+  * CVE-2022-40982
+    - x86/mm: Initialize text poking earlier
+    - x86/mm: fix poking_init() for Xen PV guests
+    - x86/mm: Use mm_alloc() in poking_init()
+    - mm: Move mm_cachep initialization to mm_init()
+    - init: Provide arch_cpu_finalize_init()
+    - x86/cpu: Switch to arch_cpu_finalize_init()
+    - ARM: cpu: Switch to arch_cpu_finalize_init()
+    - sparc/cpu: Switch to arch_cpu_finalize_init()
+    - um/cpu: Switch to arch_cpu_finalize_init()
+    - init: Remove check_bugs() leftovers
+    - init: Invoke arch_cpu_finalize_init() earlier
+    - init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
+    - x86/fpu: Remove cpuinfo argument from init functions
+    - x86/fpu: Mark init functions __init
+    - x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
+    - x86/xen: Fix secondary processors' FPU initialization
+    - x86/speculation: Add Gather Data Sampling mitigation
+    - x86/speculation: Add force option to GDS mitigation
+    - x86/speculation: Add Kconfig option for GDS
+    - KVM: Add GDS_NO support to KVM
+    - Documentation/x86: Fix backwards on/off logic about YMM support
+    - [Config]: Enable CONFIG_ARCH_HAS_CPU_FINALIZE_INIT and
+      CONFIG_GDS_FORCE_MITIGATION
+  * CVE-2023-3609
+    - net/sched: cls_u32: Fix reference counter leak leading to overflow
+  * CVE-2023-20593
+    - x86/cpu/amd: Move the errata checking functionality up
+    - x86/cpu/amd: Add a Zenbleed fix
+  * CVE-2023-3611
+    - net/sched: sch_qfq: account for stab overhead in qfq_enqueue
+  * stacked overlay file system mounts that have chroot() called against them
+    appear to be getting locked (by the kernel most likely?) (LP: #2016398)
+    - SAUCE: overlayfs: fix reference count mismatch
+  * Focal update: v5.4.246 upstream stable release (LP: #2028981)
+    - RDMA/efa: Fix unsupported page sizes in device
+    - RDMA/bnxt_re: Enable SRIOV VF support on Broadcom's 57500 adapter series
+    - RDMA/bnxt_re: Refactor queue pair creation code
+    - RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx
+    - iommu/rockchip: Fix unwind goto issue
+    - iommu/amd: Don't block updates to GATag if guest mode is on
+    - dmaengine: pl330: rename _start to prevent build error
+    - net/mlx5: fw_tracer, Fix event handling
+    - netrom: fix info-leak in nr_write_internal()
+    - af_packet: Fix data-races of pkt_sk(sk)->num.
+    - amd-xgbe: fix the false linkup in xgbe_phy_status
+    - mtd: rawnand: ingenic: fix empty stub helper definitions
+    - af_packet: do not use READ_ONCE() in packet_bind()
+    - tcp: deny tcp_disconnect() when threads are waiting
+    - tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set
+    - net/sched: sch_ingress: Only create under TC_H_INGRESS
+    - net/sched: sch_clsact: Only create under TC_H_CLSACT
+    - net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs
+    - net/sched: Prohibit regrafting ingress or clsact Qdiscs
+    - net: sched: fix NULL pointer dereference in mq_attach
+    - ocfs2/dlm: move BITS_TO_BYTES() to bitops.h for wider use
+    - net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
+    - udp6: Fix race condition in udp6_sendmsg & connect
+    - net: dsa: mv88e6xxx: Increase wait after reset deactivation
+    - mtd: rawnand: marvell: ensure timing values are written
+    - mtd: rawnand: marvell: don't set the NAND frequency select
+    - watchdog: menz069_wdt: fix watchdog initialisation
+    - mailbox: mailbox-test: Fix potential double-free in
+      mbox_test_message_write()
+    - ARM: 9295/1: unwind:fix unwind abort for uleb128 case
+    - media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE
+    - fbdev: modedb: Add 1920x1080 at 60 Hz video mode
+    - fbdev: stifb: Fix info entry in sti_struct on error path
+    - nbd: Fix debugfs_create_dir error checking
+    - ASoC: dwc: limit the number of overrun messages
+    - xfrm: Check if_id in inbound policy/secpath match
+    - ASoC: ssm2602: Add workaround for playback distortions
+    - media: dvb_demux: fix a bug for the continuity counter
+    - media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer()
+    - media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer()
+    - media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer()
+    - media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer
+    - media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
+    - media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address
+    - media: netup_unidvb: fix irq init by register it at the end of probe
+    - media: dvb_ca_en50221: fix a size write bug
+    - media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb()
+    - media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table
+    - media: dvb-core: Fix use-after-free due on race condition at dvb_net
+    - media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221
+    - wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value
+    - ARM: dts: stm32: add pin map for CAN controller on stm32f7
+    - arm64/mm: mark private VM_FAULT_X defines as vm_fault_t
+    - scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed
+    - wifi: b43: fix incorrect __packed annotation
+    - netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with
+      CONFIG_NF_NAT
+    - ALSA: oss: avoid missing-prototype warnings
+    - atm: hide unused procfs functions
+    - mailbox: mailbox-test: fix a locking issue in mbox_test_message_write()
+    - iio: adc: mxs-lradc: fix the order of two cleanup operations
+    - HID: google: add jewel USB id
+    - HID: wacom: avoid integer overflow in wacom_intuos_inout()
+    - iio: light: vcnl4035: fixed chip ID check
+    - iio: dac: mcp4725: Fix i2c_master_send() return value handling
+    - iio: dac: build ad5758 driver when AD5758 is selected
+    - net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818
+    - usb: gadget: f_fs: Add unbind event before functionfs_unbind
+    - misc: fastrpc: return -EPIPE to invocations on device removal
+    - misc: fastrpc: reject new invocations during device removal
+    - scsi: stex: Fix gcc 13 warnings
+    - ata: libata-scsi: Use correct device no in ata_find_dev()
+    - flow_dissector: work around stack frame size warning
+    - x86/boot: Wrap literal addresses in absolute_pointer()
+    - ACPI: thermal: drop an always true check
+    - gcc-12: disable '-Wdangling-pointer' warning for now
+    - eth: sun: cassini: remove dead code
+    - kernel/extable.c: use address-of operator on section symbols
+    - treewide: Remove uninitialized_var() usage
+    - lib/dynamic_debug.c: use address-of operator on section symbols
+    - wifi: rtlwifi: remove always-true condition pointed out by GCC 12
+    - mmc: vub300: fix invalid response handling
+    - tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of
+      UARTCTRL_SBK
+    - selinux: don't use make's grouped targets feature yet
+    - tracing/probe: trace_probe_primary_from_call(): checked list_first_entry
+    - ext4: add EA_INODE checking to ext4_iget()
+    - ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find()
+    - ext4: disallow ea_inodes with extended attributes
+    - ext4: add lockdep annotations for i_data_sem for ea_inode's
+    - fbcon: Fix null-ptr-deref in soft_cursor
+    - test_firmware: fix the memory leak of the allocated firmware buffer
+    - regmap: Account for register length when chunking
+    - scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD)
+    - scsi: dpt_i2o: Do not process completions with invalid addresses
+    - [Config] updateconfigs for SCSI_DPT_I2O
+    - RDMA/bnxt_re: Remove set but not used variable 'dev_attr'
+    - RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds
+    - drm/edid: Fix uninitialized variable in drm_cvt_modes()
+    - wifi: rtlwifi: 8192de: correct checking of IQK reload
+    - drm/edid: fix objtool warning in drm_cvt_modes()
+    - Linux 5.4.246
+  * Focal update: v5.4.245 upstream stable release (LP: #2028980)
+    - cdc_ncm: Implement the 32-bit version of NCM Transfer Block
+    - net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize
+    - power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to
+      stabilize
+    - power: supply: core: Refactor
+      power_supply_set_input_current_limit_from_supplier()
+    - power: supply: bq24190: Call power_supply_changed() after updating input
+      current
+    - fs: fix undefined behavior in bit shift for SB_NOUSER
+    - net/mlx5: devcom only supports 2 ports
+    - net/mlx5: Devcom, serialize devcom registration
+    - cdc_ncm: Fix the build warning
+    - io_uring: always grab lock in io_cancel_async_work()
+    - io_uring: don't drop completion lock before timer is fully initialized
+    - io_uring: have io_kill_timeout() honor the request references
+    - bluetooth: Add cmd validity checks at the start of hci_sock_ioctl()
+    - binder: fix UAF caused by faulty buffer cleanup
+    - ipv{4,6}/raw: fix output xfrm lookup wrt protocol
+    - netfilter: ctnetlink: Support offloaded conntrack entry deletion
+    - Linux 5.4.245
+  * Focal update: v5.4.244 upstream stable release (LP: #2028697)
+    - driver core: add a helper to setup both the of_node and fwnode of a device
+    - drm/mipi-dsi: Set the fwnode for mipi_dsi_device
+    - ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings
+    - linux/dim: Do nothing if no time delta between samples
+    - net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs().
+    - netfilter: conntrack: fix possible bug_on with enable_hooks=1
+    - netlink: annotate accesses to nlk->cb_running
+    - net: annotate sk->sk_err write from do_recvmmsg()
+    - net: tap: check vlan with eth_type_vlan() method
+    - net: add vlan_get_protocol_and_depth() helper
+    - net: datagram: fix data-races in datagram_poll()
+    - af_unix: Fix a data race of sk->sk_receive_queue->qlen.
+    - af_unix: Fix data races around sk->sk_shutdown.
+    - fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
+    - drm/amd/display: Use DC_LOG_DC in the trasform pixel function
+    - regmap: cache: Return error in cache sync operations for REGCACHE_NONE
+    - firmware: arm_sdei: Fix sleep from invalid context BUG
+    - ACPI: EC: Fix oops when removing custom query handlers
+    - drm/tegra: Avoid potential 32-bit integer overflow
+    - ACPICA: Avoid undefined behavior: applying zero offset to null pointer
+    - ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in
+      acpi_db_display_objects
+    - wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex
+    - ext2: Check block size validity during mount
+    - scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow
+    - net: pasemi: Fix return type of pasemi_mac_start_tx()
+    - net: Catch invalid index in XPS mapping
+    - scsi: target: iscsit: Free cmds before session free
+    - lib: cpu_rmap: Avoid use after free on rmap->obj array entries
+    - scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race
+      condition
+    - gfs2: Fix inode height consistency check
+    - ext4: set goal start correctly in ext4_mb_normalize_request
+    - ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
+    - f2fs: fix to drop all dirty pages during umount() if cp_error is set
+    - samples/bpf: Fix fout leak in hbm's run_bpf_prog
+    - wifi: iwlwifi: pcie: fix possible NULL pointer dereference
+    - wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf
+    - wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace
+    - Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
+    - HID: logitech-hidpp: Don't use the USB serial for USB devices
+    - HID: logitech-hidpp: Reconcile USB and Unifying serials
+    - spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3
+    - HID: wacom: generic: Set battery quirk only when we see battery data
+    - usb: typec: tcpm: fix multiple times discover svids error
+    - serial: 8250: Reinit port->pm on port specific driver unbind
+    - mcb-pci: Reallocate memory region to avoid memory overlapping
+    - sched: Fix KCSAN noinstr violation
+    - recordmcount: Fix memory leaks in the uwrite function
+    - RDMA/core: Fix multiple -Warray-bounds warnings
+    - clk: tegra20: fix gcc-7 constant overflow warning
+    - iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any
+    - Input: xpad - add constants for GIP interface numbers
+    - phy: st: miphy28lp: use _poll_timeout functions for waits
+    - mfd: dln2: Fix memory leak in dln2_probe()
+    - btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid
+    - btrfs: fix space cache inconsistency after error loading it from disk
+    - ASoC: fsl_micfil: register platform component before registering cpu dai
+    - cpupower: Make TSC read per CPU for Mperf monitor
+    - af_key: Reject optional tunnel/BEET mode templates in outbound policies
+    - net: fec: Better handle pm_runtime_get() failing in .remove()
+    - ALSA: firewire-digi00x: prevent potential use after free
+    - vsock: avoid to close connected socket after the timeout
+    - serial: arc_uart: fix of_iomap leak in `arc_serial_probe`
+    - ip6_gre: Fix skb_under_panic in __gre6_xmit()
+    - ip6_gre: Make o_seqno start from 0 in native mode
+    - ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
+    - erspan: get the proto with the md version for collect_md
+    - net: hns3: fix sending pfc frames after reset issue
+    - net: hns3: fix reset delay time to avoid configuration timeout
+    - media: netup_unidvb: fix use-after-free at del_timer()
+    - drm/exynos: fix g2d_open/close helper function definitions
+    - net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
+    - net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
+    - net: bcmgenet: Restore phy_stop() depending upon suspend/close
+    - wifi: iwlwifi: mvm: don't trust firmware n_channels
+    - cassini: Fix a memory leak in the error handling path of cas_init_one()
+    - igb: fix bit_shift to be in [1..8] range
+    - vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
+    - USB: usbtmc: Fix direction for 0-length ioctl control messages
+    - usb-storage: fix deadlock when a scsi command timeouts more than once
+    - USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value
+    - usb: dwc3: debugfs: Resume dwc3 before accessing registers
+    - usb: typec: altmodes/displayport: fix pin_assignment_show
+    - ALSA: hda: Fix Oops by 9.1 surround channel names
+    - ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table
+    - ALSA: hda/realtek: Add a quirk for HP EliteDesk 805
+    - ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
+    - can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag
+    - can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop()
+    - can: kvaser_pciefd: Call request_irq() before enabling interrupts
+    - can: kvaser_pciefd: Empty SRB buffer in probe
+    - can: kvaser_pciefd: Clear listen-only bit if not explicitly requested
+    - can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt
+    - can: kvaser_pciefd: Disable interrupts in probe error path
+    - KVM: x86: do not report a vCPU as preempted outside instruction boundaries
+    - statfs: enforce statfs[64] structure initialization
+    - serial: Add support for Advantech PCI-1611U card
+    - ceph: force updating the msg pointer in non-split case
+    - tpm/tpm_tis: Disable interrupts for more Lenovo devices
+    - powerpc/64s/radix: Fix soft dirty tracking
+    - nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()
+    - netfilter: nftables: add nft_parse_register_load() and use it
+    - netfilter: nftables: add nft_parse_register_store() and use it
+    - netfilter: nftables: statify nft_parse_register()
+    - netfilter: nf_tables: validate registers coming from userspace.
+    - netfilter: nf_tables: add nft_setelem_parse_key()
+    - netfilter: nf_tables: allow up to 64 bytes in the set element data area
+    - netfilter: nf_tables: stricter validation of element data
+    - netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT
+      flag
+    - netfilter: nf_tables: hold mutex on netns pre_exit path
+    - HID: wacom: Force pen out of prox if no events have been received in a while
+    - HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs
+    - HID: wacom: add three styli to wacom_intuos_get_tool_type
+    - lib/string_helpers: Introduce string_upper() and string_lower() helpers
+    - usb: gadget: u_ether: Convert prints to device prints
+    - usb: gadget: u_ether: Fix host MAC address case
+    - vc_screen: rewrite vcs_size to accept vc, not inode
+    - vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
+    - s390/qdio: get rid of register asm
+    - s390/qdio: fix do_sqbs() inline assembly constraint
+    - watchdog: sp5100_tco: Immediately trigger upon starting.
+    - spi: fsl-spi: Re-organise transfer bits_per_word adaptation
+    - spi: fsl-cpm: Use 16 bit mode for large transfers with even size
+    - mt76: mt7615: Fix build with older compilers
+    - ALSA: hda/ca0132: add quirk for EVGA X299 DARK
+    - ALSA: hda/realtek: Enable headset onLenovo M70/M90
+    - m68k: Move signal frame following exception on 68020/030
+    - parisc: Handle kgdb breakpoints only in kernel context
+    - parisc: Allow to reboot machine after system halt
+    - gpio: mockup: Fix mode of debugfs files
+    - btrfs: use nofs when cleaning up aborted transactions
+    - selftests/memfd: Fix unknown type name build failure
+    - parisc: Fix flush_dcache_page() for usage from irq context
+    - x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms
+    - debugobjects: Don't wake up kswapd from fill_pool()
+    - fbdev: udlfb: Fix endpoint check
+    - net: fix stack overflow when LRO is disabled for virtual interfaces
+    - udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
+    - USB: core: Add routines for endpoint checks in old drivers
+    - USB: sisusbvga: Add endpoint checks
+    - media: radio-shark: Add endpoint checks
+    - net: fix skb leak in __skb_tstamp_tx()
+    - selftests: fib_tests: mute cleanup error message
+    - bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields
+    - ipv6: Fix out-of-bounds access in ipv6_find_tlv()
+    - power: supply: leds: Fix blink to LED on transition
+    - power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition
+    - power: supply: bq27xxx: Fix I2C IRQ race on remove
+    - power: supply: bq27xxx: Fix poll_interval handling and races on remove
+    - power: supply: sbs-charger: Fix INHIBITED bit for Status reg
+    - coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
+    - xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
+    - x86/show_trace_log_lvl: Ensure stack pointer is aligned, again
+    - ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg
+    - forcedeth: Fix an error handling path in nv_probe()
+    - net/mlx5: Fix error message when failing to allocate device memory
+    - net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device
+    - 3c589_cs: Fix an error handling path in tc589_probe()
+    - Linux 5.4.244
+  * Focal update: v5.4.243 upstream stable release (LP: #2025387)
+    - counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
+    - drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
+    - bluetooth: Perform careful capability checks in hci_sock_ioctl()
+    - USB: serial: option: add UNISOC vendor and TOZED LT70C product
+    - iio: adc: palmas_gpadc: fix NULL dereference on rmmod
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750
+    - asm-generic/io.h: suppress endianness warnings for readq() and writeq()
+    - USB: dwc3: fix runtime pm imbalance on probe errors
+    - USB: dwc3: fix runtime pm imbalance on unbind
+    - perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into
+      sysconf(__SC_THREAD_STACK_MIN_VALUE)
+    - staging: iio: resolver: ads1210: fix config mode
+    - debugfs: regset32: Add Runtime PM support
+    - xhci: fix debugfs register accesses while suspended
+    - MIPS: fw: Allow firmware to pass a empty env
+    - ipmi:ssif: Add send_retries increment
+    - ipmi: fix SSIF not responding under certain cond.
+    - kheaders: Use array declaration instead of char
+    - pwm: meson: Fix axg ao mux parents
+    - pwm: meson: Fix g12a ao clk81 name
+    - ring-buffer: Sync IRQ works before buffer destruction
+    - reiserfs: Add security prefix to xattr name in reiserfs_security_write()
+    - KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted
+    - i2c: omap: Fix standard mode false ACK readings
+    - Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path"
+    - ubifs: Fix memleak when insert_old_idx() failed
+    - ubi: Fix return value overwrite issue in try_write_vid_and_data()
+    - ubifs: Free memory for tmpfile name
+    - selinux: fix Makefile dependencies of flask.h
+    - selinux: ensure av_permissions.h is built when needed
+    - tpm, tpm_tis: Do not skip reset of original interrupt vector
+    - erofs: stop parsing non-compact HEAD index if clusterofs is invalid
+    - erofs: fix potential overflow calculating xattr_isize
+    - drm/rockchip: Drop unbalanced obj unref
+    - drm/vgem: add missing mutex_destroy
+    - drm/probe-helper: Cancel previous job before starting new one
+    - arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table
+    - arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table
+    - EDAC/skx: Fix overflows on the DRAM row address mapping arrays
+    - ARM: dts: qcom: ipq4019: Fix the PCI I/O port range
+    - ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
+    - ARM: dts: qcom: ipq8064: Fix the PCI I/O port range
+    - media: bdisp: Add missing check for create_workqueue
+    - media: uapi: add MEDIA_BUS_FMT_METADATA_FIXED media bus format.
+    - media: av7110: prevent underflow in write_ts_to_decoder()
+    - firmware: qcom_scm: Clear download bit during reboot
+    - drm/msm: fix unbalanced pm_runtime_enable in adreno_gpu_{init, cleanup}
+    - drm/msm/adreno: Defer enabling runpm until hw_init()
+    - drm/msm/adreno: drop bogus pm_runtime_set_active()
+    - mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
+    - drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe()
+    - regulator: core: Consistently set mutex_owner when using
+      ww_mutex_lock_slow()
+    - regulator: core: Avoid lockdep reports when resolving supplies
+    - x86/apic: Fix atomic update of offset in reserve_eilvt_offset()
+    - media: dm1105: Fix use after free bug in dm1105_remove due to race condition
+    - media: saa7134: fix use after free bug in saa7134_finidev due to race
+      condition
+    - media: rcar_fdp1: simplify error check logic at fdp_open()
+    - media: rcar_fdp1: fix pm_runtime_get_sync() usage count
+    - media: rcar_fdp1: Make use of the helper function
+      devm_platform_ioremap_resource()
+    - media: rcar_fdp1: Fix the correct variable assignments
+    - media: rcar_fdp1: Fix refcount leak in probe and remove function
+    - media: rc: gpio-ir-recv: Fix support for wake-up
+    - regulator: stm32-pwr: fix of_iomap leak
+    - x86/ioapic: Don't return 0 from arch_dynirq_lower_bound()
+    - arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step
+    - debugobject: Prevent init race with static objects
+    - timekeeping: Split jiffies seqlock
+    - tick/sched: Use tick_next_period for lockless quick check
+    - tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64()
+    - tick/sched: Optimize tick_do_update_jiffies64() further
+    - tick: Get rid of tick_period
+    - tick/common: Align tick period with the HZ tick.
+    - wifi: ath6kl: minor fix for allocation size
+    - wifi: ath9k: hif_usb: fix memory leak of remain_skbs
+    - wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list()
+    - wifi: ath6kl: reduce WARN to dev_dbg() in callback
+    - tools: bpftool: Remove invalid \' json escape
+    - wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser()
+    - wifi: rtw88: mac: Return the original error from rtw_mac_power_switch()
+    - scm: fix MSG_CTRUNC setting condition for SO_PASSSEC
+    - vlan: partially enable SIOCSHWTSTAMP in container
+    - net/packet: annotate accesses to po->xmit
+    - net/packet: convert po->origdev to an atomic flag
+    - net/packet: convert po->auxdata to an atomic flag
+    - scsi: target: iscsit: Fix TAS handling during conn cleanup
+    - scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
+    - f2fs: handle dqget error in f2fs_transfer_project_quota()
+    - rtlwifi: Start changing RT_TRACE into rtl_dbg
+    - rtlwifi: Replace RT_TRACE with rtl_dbg
+    - wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg()
+    - wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg()
+    - bpftool: Fix bug for long instructions in program CFG dumps
+    - crypto: drbg - make drbg_prepare_hrng() handle jent instantiation errors
+    - crypto: drbg - Only fail when jent is unavailable in FIPS mode
+    - scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup()
+    - bpf, sockmap: fix deadlocks in the sockhash and sockmap
+    - nvme: handle the persistent internal error AER
+    - nvme: fix async event trace event
+    - nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"
+    - bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap
+    - md/raid10: fix leak of 'r10bio->remaining' for recovery
+    - md/raid10: fix memleak for 'conf->bio_split'
+    - md: update the optimal I/O size on reshape
+    - md/raid10: fix memleak of md thread
+    - wifi: iwlwifi: make the loop for card preparation effective
+    - wifi: iwlwifi: mvm: check firmware response size
+    - ixgbe: Allow flow hash to be set via ethtool
+    - ixgbe: Enable setting RSS table to default values
+    - bpf: Don't EFAULT for getsockopt with optval=NULL
+    - netfilter: nf_tables: don't write table validation state without mutex
+    - ipv4: Fix potential uninit variable access bug in __ip_make_skb()
+    - netlink: Use copy_to_user() for optval in netlink_getsockopt().
+    - net: amd: Fix link leak when verifying config failed
+    - tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp.
+    - pstore: Revert pmsg_lock back to a normal mutex
+    - usb: host: xhci-rcar: remove leftover quirk handling
+    - fpga: bridge: fix kernel-doc parameter description
+    - iio: light: max44009: add missing OF device matching
+    - usb: gadget: udc: renesas_usb3: Fix use after free bug in
+      renesas_usb3_remove due to race condition
+    - PCI: imx6: Install the fault handler only on compatible match
+    - genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
+    - ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ
+    - ASoC: es8316: Handle optional IRQ assignment
+    - linux/vt_buffer.h: allow either builtin or modular for macros
+    - spi: qup: Don't skip cleanup in remove's error path
+    - spi: fsl-spi: Fix CPM/QE mode Litte Endian
+    - vmci_host: fix a race condition in vmci_host_poll() causing GPF
+    - of: Fix modalias string generation
+    - ia64: mm/contig: fix section mismatch warning/error
+    - ia64: salinfo: placate defined-but-not-used warning
+    - scripts/gdb: bail early if there are no clocks
+    - PM: domains: Fix up terminology with parent/child
+    - scripts/gdb: bail early if there are no generic PD
+    - mtd: spi-nor: cadence-quadspi: Make driver independent of flash geometry
+    - mtd: spi-nor: cadence-quadspi: Provide a way to disable DAC mode
+    - mtd: spi-nor: cadence-quadspi: Don't initialize rx_dma_complete on failure
+    - mtd: spi-nor: cadence-quadspi: Handle probe deferral while requesting DMA
+      channel
+    - spi: cadence-quadspi: fix suspend-resume implementations
+    - uapi/linux/const.h: prefer ISO-friendly __typeof__
+    - sh: sq: Fix incorrect element size for allocating bitmap buffer
+    - usb: chipidea: fix missing goto in `ci_hdrc_probe`
+    - usb: mtu3: fix kernel panic at qmu transfer done irq handler
+    - firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
+    - tty: serial: fsl_lpuart: adjust buffer length to the intended size
+    - serial: 8250: Add missing wakeup event reporting
+    - staging: rtl8192e: Fix W_DISABLE# does not work after stop/start
+    - spmi: Add a check for remove callback when removing a SPMI driver
+    - macintosh/windfarm_smu_sat: Add missing of_node_put()
+    - powerpc/mpc512x: fix resource printk format warning
+    - powerpc/wii: fix resource printk format warnings
+    - powerpc/sysdev/tsi108: fix resource printk format warnings
+    - macintosh: via-pmu-led: requires ATA to be set
+    - powerpc/rtas: use memmove for potentially overlapping buffer copy
+    - perf/core: Fix hardlockup failure caused by perf throttle
+    - RDMA/siw: Fix potential page_array out of range access
+    - RDMA/rdmavt: Delete unnecessary NULL check
+    - rtc: omap: include header for omap_rtc_power_off_program prototype
+    - RDMA/mlx4: Prevent shift wrapping in set_user_sq_size()
+    - rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
+    - power: supply: generic-adc-battery: fix unit scaling
+    - clk: add missing of_node_put() in "assigned-clocks" property parsing
+    - RDMA/siw: Remove namespace check from siw_netdev_event()
+    - IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order
+    - NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease
+    - firmware: raspberrypi: Keep count of all consumers
+    - firmware: raspberrypi: Introduce devm_rpi_firmware_get()
+    - input: raspberrypi-ts: Release firmware handle when not needed
+    - Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe
+    - SUNRPC: remove the maximum number of retries in call_bind_status
+    - RDMA/mlx5: Use correct device num_ports when modify DC
+    - clocksource/drivers/davinci: Avoid trailing '\n' hidden in pr_fmt()
+    - clocksource: davinci: axe a pointless __GFP_NOFAIL
+    - clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when
+      init fails
+    - openrisc: Properly store r31 to pt_regs on unhandled exceptions
+    - ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline
+    - leds: TI_LMU_COMMON: select REGMAP instead of depending on it
+    - dmaengine: mv_xor_v2: Fix an error code.
+    - pwm: mtk-disp: Don't check the return code of pwmchip_remove()
+    - pwm: mtk-disp: Adjust the clocks to avoid them mismatch
+    - pwm: mtk-disp: Disable shadow registers before setting backlight values
+    - phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and
+      ulpi_port
+    - dmaengine: dw-edma: Fix to change for continuous transfer
+    - dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing
+    - dmaengine: at_xdmac: do not enable all cyclic channels
+    - afs: Fix updating of i_size with dv jump from server
+    - parisc: Fix argument pointer in real64_call_asm()
+    - nilfs2: do not write dirty data after degenerating to read-only
+    - nilfs2: fix infinite loop in nilfs_mdt_get_block()
+    - md/raid10: fix null-ptr-deref in raid10_sync_request
+    - mailbox: zynqmp: Fix IPI isr handling
+    - mailbox: zynqmp: Fix typo in IPI documentation
+    - wifi: rtl8xxxu: RTL8192EU always needs full init
+    - clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent
+    - scripts/gdb: fix lx-timerlist for Python3
+    - btrfs: scrub: reject unsupported scrub flags
+    - s390/dasd: fix hanging blockdevice after request requeue
+    - dm clone: call kmem_cache_destroy() in dm_clone_init() error path
+    - dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path
+    - dm flakey: fix a crash with invalid table line
+    - perf auxtrace: Fix address filter entire kernel size
+    - perf intel-pt: Fix CYC timestamps after standalone CBR
+    - debugobject: Ensure pool refill (again)
+    - nohz: Add TICK_DEP_BIT_RCU
+    - tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
+    - mailbox: zynq: Switch to flexible array to simplify code
+    - mailbox: zynqmp: Fix counts of child nodes
+    - dm verity: skip redundant verity_handle_err() on I/O errors
+    - dm verity: fix error handling for check_at_most_once on FEC
+    - crypto: inside-secure - irq balance
+    - crypto: safexcel - Cleanup ring IRQ workqueues on load failure
+    - net/ncsi: clear Tx enable mode when handling a Config required AEN
+    - net/sched: cls_api: remove block_cb from driver_list before freeing
+    - sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
+    - net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu
+    - writeback: fix call of incorrect macro
+    - net/sched: act_mirred: Add carrier check
+    - rxrpc: Fix hard call timeout units
+    - ionic: remove noise from ethtool rxnfc error msg
+    - af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
+    - drm/amdgpu: add a missing lock for AMDGPU_SCHED
+    - ALSA: caiaq: input: Add error handling for unsupported input methods in
+      `snd_usb_caiaq_input_init`
+    - net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
+    - virtio_net: split free_unused_bufs()
+    - virtio_net: suppress cpu stall when free_unused_bufs
+    - perf vendor events power9: Remove UTF-8 characters from JSON files
+    - perf map: Delete two variable initialisations before null pointer checks in
+      sort__sym_from_cmp()
+    - perf symbols: Fix return incorrect build_id size in elf_read_build_id()
+    - btrfs: fix btrfs_prev_leaf() to not return the same key twice
+    - btrfs: don't free qgroup space unless specified
+    - btrfs: print-tree: parent bytenr must be aligned to sector size
+    - cifs: fix pcchunk length type in smb2_copychunk_range
+    - platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i
+    - inotify: Avoid reporting event with invalid wd
+    - sh: math-emu: fix macro redefined warning
+    - sh: init: use OF_EARLY_FLATTREE for early init
+    - sh: nmi_debug: fix return value of __setup handler
+    - remoteproc: stm32: Call of_node_put() on iteration error
+    - remoteproc: st: Call of_node_put() on iteration error
+    - ARM: dts: exynos: fix WM8960 clock name in Itop Elite
+    - ARM: dts: s5pv210: correct MIPI CSIS clock name
+    - f2fs: fix potential corruption when moving a directory
+    - drm/panel: otm8009a: Set backlight parent to panel device
+    - drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
+    - drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx
+      ras
+    - drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend
+    - HID: wacom: Set a default resolution for older tablets
+    - HID: wacom: insert timestamp to packed Bluetooth (BT) events
+    - ext4: fix WARNING in mb_find_extent
+    - ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
+    - ext4: fix data races when using cached status extents
+    - ext4: improve error recovery code paths in __ext4_remount()
+    - ext4: fix deadlock when converting an inline directory in nojournal mode
+    - ext4: add bounds checking in get_max_inline_xattr_value_size()
+    - ext4: bail out of ext4_xattr_ibody_get() fails for any reason
+    - ext4: remove a BUG_ON in ext4_mb_release_group_pa()
+    - ext4: fix invalid free tracking in ext4_xattr_move_to_block()
+    - tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH
+    - serial: 8250: Fix serial8250_tx_empty() race with DMA Tx
+    - drbd: correctly submit flush bio on barrier
+    - PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
+    - PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock
+    - printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h
+    - PM: domains: Restore comment indentation for generic_pm_domain.child_links
+    - drm/msm: Fix double pm_runtime_disable() call
+    - firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe()
+    - drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()
+    - drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
+    - mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
+    - drm/amd/display: Fix hang when skipping modeset
+    - Linux 5.4.243
+    - Upstream stable to v5.4.243
+  * Focal update: v5.4.243 upstream stable release (LP: #2025387) //
+    CVE-2023-2269
+    - dm ioctl: fix nested locking in table_clear() to remove deadlock concern
+  * Focal update: v5.4.242 upstream stable release (LP: #2025094)
+    - ARM: dts: rockchip: fix a typo error for rk3288 spdif node
+    - arm64: dts: meson-g12-common: specify full DMC range
+    - netfilter: br_netfilter: fix recent physdev match breakage
+    - regulator: fan53555: Explicitly include bits header
+    - virtio_net: bugfix overflow inside xdp_linearize_page()
+    - netfilter: nf_tables: fix ifdef to also consider nf_tables=m
+    - i40e: fix accessing vsi->active_filters without holding lock
+    - i40e: fix i40e_setup_misc_vector() error handling
+    - mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next()
+    - bpf: Fix incorrect verifier pruning due to missing register precision taints
+    - e1000e: Disable TSO on i219-LM card to increase speed
+    - f2fs: Fix f2fs_truncate_partial_nodes ftrace event
+    - Input: i8042 - add quirk for Fujitsu Lifebook A574/H
+    - selftests: sigaltstack: fix -Wuninitialized
+    - scsi: megaraid_sas: Fix fw_crash_buffer_show()
+    - scsi: core: Improve scsi_vpd_inquiry() checks
+    - net: dsa: b53: mmap: add phy ops
+    - s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling
+    - nvme-tcp: fix a possible UAF when failing to allocate an io queue
+    - xen/netback: use same error messages for same errors
+    - iio: light: tsl2772: fix reading proximity-diodes from device tree
+    - nilfs2: initialize unused bytes in segment summary blocks
+    - memstick: fix memory leak if card device is never registered
+    - mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25
+    - MIPS: Define RUNTIME_DISCARD_EXIT in LD script
+    - x86/purgatory: Don't generate debug info for purgatory.ro
+    - Revert "ext4: fix use-after-free in ext4_xattr_set_entry"
+    - ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
+    - ext4: fix use-after-free in ext4_xattr_set_entry
+    - udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM).
+    - tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct().
+    - inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
+    - dccp: Call inet6_destroy_sock() via sk->sk_destruct().
+    - sctp: Call inet6_destroy_sock() via sk->sk_destruct().
+    - xfs: fix forkoff miscalculation related to XFS_LITINO(mp)
+    - pwm: meson: Explicitly set .polarity in .get_state()
+    - iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger()
+    - ASN.1: Fix check for strdup() success
+    - Linux 5.4.242
+    - Upstream stable to v5.4.242
+  * CVE-2023-31084 // CVE-2023-31084 was assigned to this bug.
+    - media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
+  * CVE-2023-3776
+    - net/sched: cls_fw: Fix improper refcount update leads to use-after-free
+  * CVE-2023-3268
+    - kernel/relay.c: fix read_pos error when multiple readers
+    - relayfs: fix out-of-bounds access in relay_file_read
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] resync getabis
+
+  [ Ubuntu: 5.4.0-156.173 ]
+
+  * focal/linux: 5.4.0-156.173 -proposed tracker (LP: #2026585)
+  * CVE-2023-3390
+    - netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE
+  * Focal update: v5.4.241 upstream stable release (LP: #2023930)
+    - scsi: ses: Handle enclosure with just a primary component gracefully
+    - x86/PCI: Add quirk for AMD XHCI controller that loses MSI-X state in D3hot
+    - cgroup/cpuset: Wake up cpuset_attach_wq tasks in cpuset_cancel_attach()
+    - treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
+    - smb3: fix problem with null cifs super block with previous patch
+    - pinctrl: amd: Use irqchip template
+    - pinctrl: amd: disable and mask interrupts on probe
+    - pinctrl: amd: Disable and mask interrupts on resume
+    - pwm: cros-ec: Explicitly set .polarity in .get_state()
+    - pwm: sprd: Explicitly set .polarity in .get_state()
+    - wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded
+      sta
+    - icmp: guard against too small mtu
+    - net: don't let netpoll invoke NAPI if in xmit context
+    - sctp: check send stream number after wait_for_sndbuf
+    - ipv6: Fix an uninit variable access bug in __ip6_make_skb()
+    - gpio: davinci: Add irq chip flag to skip set wake
+    - sunrpc: only free unix grouplist after RCU settles
+    - NFSD: callback request does not use correct credential for AUTH_SYS
+    - xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
+    - USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs
+    - usb: typec: altmodes/displayport: Fix configure initial pin assignment
+    - USB: serial: option: add Telit FE990 compositions
+    - USB: serial: option: add Quectel RM500U-CN modem
+    - iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip
+    - iio: dac: cio-dac: Fix max DAC write value check for 12-bit
+    - tty: serial: sh-sci: Fix transmit end interrupt handler
+    - tty: serial: sh-sci: Fix Rx on RZ/G2L SCI
+    - tty: serial: fsl_lpuart: avoid checking for transfer complete when
+      UARTCTRL_SBK is asserted in lpuart32_tx_empty
+    - nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread()
+    - nilfs2: fix sysfs interface lifetime
+    - ALSA: hda/realtek: Add quirk for Clevo X370SNW
+    - perf/core: Fix the same task check in perf_event_set_output
+    - ftrace: Mark get_lock_parent_ip() __always_inline
+    - can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access
+    - tracing: Free error logs of tracing instances
+    - net_sched: prevent NULL dereference if default qdisc setup failed
+    - drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path
+    - ring-buffer: Fix race while reader and writer are on the same page
+    - mm/swap: fix swap_info_struct race between swapoff and get_swap_pages()
+    - irqdomain: Look for existing mapping only once
+    - irqdomain: Refactor __irq_domain_alloc_irqs()
+    - irqdomain: Fix mapping-creation race
+    - Revert "pinctrl: amd: Disable and mask interrupts on resume"
+    - ALSA: emu10k1: fix capture interrupt handler unlinking
+    - ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboard
+    - ALSA: i2c/cs8427: fix iec958 mixer control deactivation
+    - ALSA: firewire-tascam: add missing unwind goto in
+      snd_tscm_stream_start_duplex()
+    - ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45* motherboards
+    - Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp}
+    - Bluetooth: Fix race condition in hidp_session_thread
+    - btrfs: print checksum type and implementation at mount time
+    - btrfs: fix fast csum implementation detection
+    - mtdblock: tolerate corrected bit-flips
+    - mtd: rawnand: meson: fix bitmask for length in command word
+    - mtd: rawnand: stm32_fmc2: remove unsupported EDO mode
+    - niu: Fix missing unwind goto in niu_alloc_channels()
+    - qlcnic: check pci_reset_function result
+    - sctp: fix a potential overflow in sctp_ifwdtsn_skip
+    - RDMA/core: Fix GID entry ref leak when create_ah fails
+    - udp6: fix potential access to stale information
+    - net: macb: fix a memory corruption in extended buffer descriptor mode
+    - power: supply: cros_usbpd: reclassify "default case!" as debug
+    - i2c: imx-lpi2c: clean rx/tx buffers upon new message
+    - efi: sysfb_efi: Add quirk for Lenovo Yoga Book X91F/L
+    - drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Book X90F
+    - verify_pefile: relax wrapper length check
+    - asymmetric_keys: log on fatal failures in PE/pkcs7
+    - ubi: Fix failure attaching when vid_hdr offset equals to (sub)page size
+    - mtd: ubi: wl: Fix a couple of kernel-doc issues
+    - ubi: Fix deadlock caused by recursively holding work_sem
+    - i2c: ocores: generate stop condition after timeout in polling mode
+    - watchdog: sbsa_wdog: Make sure the timeout programming is within the limits
+    - coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug
+    - xfs: show the proper user quota options
+    - xfs: remove the kuid/kgid conversion wrappers
+    - xfs: add a new xfs_sb_version_has_v3inode helper
+    - xfs: only check the superblock version for dinode size calculation
+    - xfs: simplify di_flags2 inheritance in xfs_ialloc
+    - xfs: simplify a check in xfs_ioctl_setattr_check_cowextsize
+    - xfs: remove the di_version field from struct icdinode
+    - xfs: set inode size after creating symlink
+    - xfs: report corruption only as a regular error
+    - xfs: shut down the filesystem if we screw up quota reservation
+    - xfs: consider shutdown in bmapbt cursor delete assert
+    - xfs: don't reuse busy extents on extent trim
+    - xfs: force log and push AIL to clear pinned inodes when aborting mount
+    - Linux 5.4.241
+  * [UBUNTU 20.04] [HPS] Kernel panic with "refcount_t: underflow" in mlx5
+    driver (LP: #2019011)
+    - net/mlx5: cmdif, Avoid skipping reclaim pages if FW is not accessible
+    - net/mlx5: Fix handling of entry refcount when command is not issued to FW
+  * Disable hv-kvp-daemon if /dev/vmbus/hv_kvp is not present (LP: #2024900)
+    - [Packaging] disable hv-kvp-daemon if needed
+  * CVE-2023-35001
+    - netfilter: nf_tables: prevent OOB access in nft_byteorder_eval
+  * CVE-2023-32629
+    - ovl: adhere to the vfs_ vs. ovl_do_ conventions for xattrs
+  * CVE-2023-3141
+    - memstick: r592: Fix UAF bug in r592_remove due to race condition
+  * CVE-2023-3111
+    - btrfs: check return value of btrfs_commit_transaction in relocation
+    - btrfs: unset reloc control if transaction commit fails in
+      prepare_to_relocate()
+  * CVE-2023-3090
+    - ipvlan:Fix out-of-bounds caused by unclear skb->cb
+  * CVE-2023-1611
+    - btrfs: fix race between quota disable and quota assign ioctls
+  * CVE-2022-0168
+    - cifs: move some variables off the stack in smb2_ioctl_query_info
+    - cifs: prevent bad output lengths in smb2_ioctl_query_info()
+    - cifs: fix NULL ptr dereference in smb2_ioctl_query_info()
+  * CVE-2022-27672
+    - x86/speculation: Identify processors vulnerable to SMT RSB predictions
+    - KVM: x86: Mitigate the cross-thread return address predictions bug
+    - Documentation/hw-vuln: Add documentation for Cross-Thread Return Predictions
+  * Severe NFS performance degradation after LP #2003053 (LP: #2022098)
+    - SAUCE: Make NFS file-access stale cache behaviour opt-in
+  * Encountering an issue with memcpy_fromio causing failed boot of SEV-enabled
+    guest (LP: #2020319)
+    - x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO
+  * Focal update: v5.4.240 upstream stable release (LP: #2023601)
+    - net: tls: fix possible race condition between do_tls_getsockopt_conf() and
+      do_tls_setsockopt_conf()
+    - power: supply: da9150: Fix use after free bug in da9150_charger_remove due
+      to race condition
+    - iavf: fix inverted Rx hash condition leading to disabled hash
+    - iavf: fix non-tunneled IPv6 UDP packet type and hashing
+    - intel/igbvf: free irq on the error path in igbvf_request_msix()
+    - igbvf: Regard vf reset nack as success
+    - i2c: imx-lpi2c: check only for enabled interrupt flags
+    - scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()
+    - net: usb: smsc95xx: Limit packet length to skb->len
+    - qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info
+    - net: qcom/emac: Fix use after free bug in emac_remove due to race condition
+    - net/ps3_gelic_net: Fix RX sk_buff length
+    - net/ps3_gelic_net: Use dma_mapping_error
+    - keys: Do not cache key in task struct if key is requested from kernel thread
+    - bpf: Adjust insufficient default bpf_jit_limit
+    - net/mlx5: Read the TC mapping of all priorities on ETS query
+    - atm: idt77252: fix kmemleak when rmmod idt77252
+    - erspan: do not use skb_mac_header() in ndo_start_xmit()
+    - net/sonic: use dma_mapping_error() for error check
+    - nvme-tcp: fix nvme_tcp_term_pdu to match spec
+    - hvc/xen: prevent concurrent accesses to the shared ring
+    - net: mdio: thunder: Add missing fwnode_handle_put()
+    - Bluetooth: btqcomsmd: Fix command timeout after setting BD address
+    - platform/chrome: cros_ec_chardev: fix kernel data leak from ioctl
+    - hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs
+    - scsi: qla2xxx: Perform lockless command completion in abort path
+    - uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2
+    - thunderbolt: Use const qualifier for `ring_interrupt_index`
+    - riscv: Bump COMMAND_LINE_SIZE value to 1024
+    - ca8210: fix mac_len negative array access
+    - m68k: Only force 030 bus error if PC not in exception table
+    - selftests/bpf: check that modifier resolves after pointer
+    - scsi: target: iscsi: Fix an error message in iscsi_check_key()
+    - scsi: ufs: core: Add soft dependency on governor_simpleondemand
+    - scsi: lpfc: Avoid usage of list iterator variable after loop
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990
+    - net: usb: qmi_wwan: add Telit 0x1080 composition
+    - sh: sanitize the flags on sigreturn
+    - cifs: empty interface list when server doesn't support query interfaces
+    - scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR
+    - usb: gadget: u_audio: don't let userspace block driver unbind
+    - fsverity: Remove WQ_UNBOUND from fsverity read workqueue
+    - igb: revert rtnl_lock() that causes deadlock
+    - dm thin: fix deadlock when swapping to thin device
+    - usb: cdns3: Fix issue with using incorrect PCI device function
+    - usb: chipdea: core: fix return -EINVAL if request role is the same with
+      current role
+    - usb: chipidea: core: fix possible concurrent when switch role
+    - wifi: mac80211: fix qos on mesh interfaces
+    - nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy()
+    - i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer()
+    - dm stats: check for and propagate alloc_percpu failure
+    - dm crypt: add cond_resched() to dmcrypt_write()
+    - sched/fair: sanitize vruntime of entity being placed
+    - sched/fair: Sanitize vruntime of entity being migrated
+    - tun: avoid double free in tun_free_netdev
+    - ocfs2: fix data corruption after failed write
+    - fsverity: don't drop pagecache at end of FS_IOC_ENABLE_VERITY
+    - bus: imx-weim: fix branch condition evaluates to a garbage value
+    - md: avoid signed overflow in slot_store()
+    - ALSA: asihpi: check pao in control_message()
+    - ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set()
+    - fbdev: tgafb: Fix potential divide by zero
+    - sched_getaffinity: don't assume 'cpumask_size()' is fully initialized
+    - fbdev: nvidia: Fix potential divide by zero
+    - fbdev: intelfb: Fix potential divide by zero
+    - fbdev: lxfb: Fix potential divide by zero
+    - fbdev: au1200fb: Fix potential divide by zero
+    - ca8210: Fix unsigned mac_len comparison with zero in ca8210_skb_tx()
+    - dma-mapping: drop the dev argument to arch_sync_dma_for_*
+    - mips: bmips: BCM6358: disable RAC flush for TP1
+    - mtd: rawnand: meson: invalidate cache on polling ECC bit
+    - scsi: megaraid_sas: Fix crash after a double completion
+    - ptp_qoriq: fix memory leak in probe()
+    - regulator: fix spelling mistake "Cant" -> "Can't"
+    - regulator: Handle deferred clk
+    - net/net_failover: fix txq exceeding warning
+    - can: bcm: bcm_tx_setup(): fix KMSAN uninit-value in vfs_write
+    - s390/vfio-ap: fix memory leak in vfio_ap device driver
+    - i40e: fix registers dump after run ethtool adapter self test
+    - bnxt_en: Fix typo in PCI id to device description string mapping
+    - net: dsa: mv88e6xxx: Enable IGMP snooping on user ports only
+    - net: mvneta: make tx buffer array agnostic
+    - pinctrl: ocelot: Fix alt mode for ocelot
+    - Input: alps - fix compatibility with -funsigned-char
+    - Input: focaltech - use explicitly signed char type
+    - cifs: prevent infinite recursion in CIFSGetDFSRefer()
+    - cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL
+    - Input: goodix - add Lenovo Yoga Book X90F to nine_bytes_report DMI table
+    - xen/netback: don't do grant copy across page boundary
+    - pinctrl: at91-pio4: fix domain name assignment
+    - NFSv4: Fix hangs when recovering open state after a server reboot
+    - ALSA: hda/conexant: Partial revert of a quirk for Lenovo
+    - ALSA: usb-audio: Fix regression on detection of Roland VS-100
+    - drm/etnaviv: fix reference leak when mmaping imported buffer
+    - btrfs: scan device in non-exclusive mode
+    - ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
+    - net_sched: add __rcu annotation to netdev->qdisc
+    - net: sched: fix race condition in qdisc_graft()
+    - firmware: arm_scmi: Fix device node validation for mailbox transport
+    - gfs2: Always check inode size of inline inodes
+    - Linux 5.4.240
+  * Focal update: v5.4.239 upstream stable release (LP: #2023600)
+    - Linux 5.4.239
+  * CVE-2023-2124
+    - xfs: verify buffer contents when we skip log replay
+  * CVE-2020-36691
+    - netlink: limit recursion depth in policy validation
+  * CVE-2022-1184
+    - ext4: check if directory block is within i_size
+    - ext4: fix check for block being out of directory size
+  * CVE-2022-4269
+    - net: sched: extract qstats update code into functions
+    - net: sched: don't expose action qstats to skb_tc_reinsert()
+    - net/sched: act_mirred: refactor the handle of xmit
+    - net: sched: remove unused tcf_result extension
+    - net/sched: act_mirred: better wording on protection against excessive stack
+      growth
+    - act_mirred: use the backlog for nested calls to mirred ingress
+  * Focal update: v5.4.238 upstream stable release (LP: #2023427)
+    - ext4: fix cgroup writeback accounting with fs-layer encryption
+    - xfrm: Allow transport-mode states with AF_UNSPEC selector
+    - drm/panfrost: Don't sync rpm suspension after mmu flushing
+    - cifs: Move the in_send statistic to __smb_send_rqst()
+    - drm/meson: fix 1px pink line on GXM when scaling video overlay
+    - clk: HI655X: select REGMAP instead of depending on it
+    - docs: Correct missing "d_" prefix for dentry_operations member
+      d_weak_revalidate
+    - scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add()
+    - ALSA: hda - add Intel DG1 PCI and HDMI ids
+    - ALSA: hda - controller is in GPU on the DG1
+    - ALSA: hda: Add Alderlake-S PCI ID and HDMI codec vid
+    - ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
+    - ALSA: hda: Match only Intel devices with CONTROLLER_IN_GPU()
+    - netfilter: nft_redir: correct value of inet type `.maxattrs`
+    - scsi: core: Fix a comment in function scsi_host_dev_release()
+    - scsi: core: Fix a procfs host directory removal regression
+    - tcp: tcp_make_synack() can be called from process context
+    - nfc: pn533: initialize struct pn533_out_arg properly
+    - ipvlan: Make skb->skb_iif track skb->dev for l3s mode
+    - i40e: Fix kernel crash during reboot when adapter is in recovery mode
+    - qed/qed_dev: guard against a possible division by zero
+    - net: tunnels: annotate lockless accesses to dev->needed_headroom
+    - net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails
+    - nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition
+    - net: usb: smsc75xx: Limit packet length to skb->len
+    - nvmet: avoid potential UAF in nvmet_req_complete()
+    - block: sunvdc: add check for mdesc_grab() returning NULL
+    - ipv4: Fix incorrect table ID in IOCTL path
+    - net: usb: smsc75xx: Move packet length check to prevent kernel panic in
+      skb_pull
+    - net/iucv: Fix size of interrupt data
+    - ethernet: sun: add check for the mdesc_grab()
+    - hwmon: (adt7475) Display smoothing attributes in correct order
+    - hwmon: (adt7475) Fix masking of hysteresis registers
+    - hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race
+      condition
+    - hwmon: (ina3221) return prober error code
+    - media: m5mols: fix off-by-one loop termination error
+    - mmc: atmel-mci: fix race between stop command and start of next command
+    - jffs2: correct logic when creating a hole in jffs2_write_begin
+    - ext4: fail ext4_iget if special inode unallocated
+    - ext4: fix task hung in ext4_xattr_delete_inode
+    - drm/amdkfd: Fix an illegal memory access
+    - sh: intc: Avoid spurious sizeof-pointer-div warning
+    - ext4: fix possible double unlock when moving a directory
+    - tty: serial: fsl_lpuart: skip waiting for transmission complete when
+      UARTCTRL_SBK is asserted
+    - interconnect: fix mem leak when freeing nodes
+    - tracing: Check field value in hist_field_name()
+    - tracing: Make tracepoint lockdep check actually test something
+    - ftrace: Fix invalid address access in lookup_rec() when index is 0
+    - fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks
+    - x86/mm: Fix use of uninitialized buffer in sme_enable()
+    - drm/i915: Don't use stolen memory for ring buffers with LLC
+    - serial: 8250_em: Fix UART port type
+    - s390/ipl: add missing intersection check to ipl_report handling
+    - PCI: Unify delay handling for reset and resume
+    - HID: core: Provide new max_buffer_size attribute to over-ride the default
+    - HID: uhid: Over-ride the default maximum data buffer value with our own
+    - Linux 5.4.238
+  * Focal update: v5.4.237 upstream stable release (LP: #2023420)
+    - fs: prevent out-of-bounds array speculation when closing a file descriptor
+    - x86/CPU/AMD: Disable XSAVES on AMD family 0x17
+    - drm/connector: print max_requested_bpc in state debugfs
+    - ext4: fix RENAME_WHITEOUT handling for inline directories
+    - ext4: fix another off-by-one fsmap error on 1k block filesystems
+    - ext4: move where set the MAY_INLINE_DATA flag is set
+    - ext4: fix WARNING in ext4_update_inline_data
+    - ext4: zero i_disksize when initializing the bootloader inode
+    - nfc: change order inside nfc_se_io error path
+    - iommu/amd: Add PCI segment support for ivrs_[ioapic/hpet/acpihid] commands
+    - iommu/amd: Fix ill-formed ivrs_ioapic, ivrs_hpet and ivrs_acpihid options
+    - iommu/amd: Add a length limitation for the ivrs_acpihid command-line
+      parameter
+    - ipmi:ssif: make ssif_i2c_send() void
+    - ipmi:ssif: resend_msg() cannot fail
+    - ipmi:ssif: Remove rtc_us_timer
+    - ipmi:ssif: Increase the message retry time
+    - ipmi:ssif: Add a timer between request retries
+    - irqdomain: Change the type of 'size' in __irq_domain_add() to be consistent
+    - irqdomain: Fix domain registration race
+    - iommu/vt-d: Fix PASID directory pointer coherency
+    - SMB3: Backup intent flag missing from some more ops
+    - cifs: Fix uninitialized memory read in smb3_qfs_tcon()
+    - scsi: core: Remove the /proc/scsi/${proc_name} directory earlier
+    - ext4: Fix possible corruption when moving a directory
+    - drm/msm/a5xx: fix setting of the CP_PREEMPT_ENABLE_LOCAL register
+    - nfc: fdp: add null check of devm_kmalloc_array in
+      fdp_nci_i2c_read_device_properties
+    - ila: do not generate empty messages in ila_xlat_nl_cmd_get_mapping()
+    - selftests: nft_nat: ensuring the listening side is up before starting the
+      client
+    - net: usb: lan78xx: Remove lots of set but unused 'ret' variables
+    - net: lan78xx: fix accessing the LAN7800's internal phy specific registers
+      from the MAC driver
+    - net: caif: Fix use-after-free in cfusbl_device_notify()
+    - bnxt_en: Avoid order-5 memory allocation for TPA data
+    - netfilter: tproxy: fix deadlock due to missing BH disable
+    - btf: fix resolving BTF_KIND_VAR after ARRAY, STRUCT, UNION, PTR
+    - scsi: megaraid_sas: Update max supported LD IDs to 240
+    - net/smc: fix fallback failed while sendmsg with fastopen
+    - riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode
+    - ext4: Fix deadlock during directory rename
+    - MIPS: Fix a compilation issue
+    - alpha: fix R_ALPHA_LITERAL reloc for large modules
+    - macintosh: windfarm: Use unsigned type for 1-bit bitfields
+    - PCI: Add SolidRun vendor ID
+    - media: ov5640: Fix analogue gain control
+    - ipmi/watchdog: replace atomic_add() and atomic_sub()
+    - ipmi:watchdog: Set panic count to proper value on a panic
+    - drm/i915: Don't use BAR mappings for ring buffers with LLC
+    - x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
+    - arch: fix broken BuildID for arm64 and riscv
+    - powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
+    - powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
+    - s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
+    - sh: define RUNTIME_DISCARD_EXIT
+    - UML: define RUNTIME_DISCARD_EXIT
+    - s390/dasd: add missing discipline function
+    - Linux 5.4.237
+  * Focal update: v5.4.236 upstream stable release (LP: #2020390)
+    - staging: rtl8192e: Remove function ..dm_check_ac_dc_power calling a script
+    - staging: rtl8192e: Remove call_usermodehelper starting RadioPower.sh
+    - Linux 5.4.236
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 22 Sep 2023 18:38:25 +0800
+
+linux-ein (5.4.0-1039.46) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1039.46 -proposed tracker (LP: #2029267)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - [Packaging] resync getabis
+
+  * [K4500-NXP][UC20] CPU-Freq Interface Not Available On NXP Hardware
+    (LP#2008278)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Enable cpufreq support
+
+  * WIFI/Bluetooth module is not fully reset/initialized at Linux boot Edit
+    (LP#2019041)
+    - SAUCE: amgis: dts: Add MMC simple HW reset driver node
+
+  * Miscellaneous Ubuntu changes
+    - snap: reading: Set grade to devel instead of stable
+    - snap: reading: Remove package-repositories
+
+  [ Ubuntu: 5.4.0-153.170 ]
+
+  * focal/linux: 5.4.0-153.170 -proposed tracker (LP: #2024108)
+  * cls_flower: off-by-one in fl_set_geneve_opt (LP: #2023577)
+    - net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
+  * Some INVLPG implementations can leave Global translations unflushed when
+    PCIDs are enabled (LP: #2023220)
+    - x86/mm: Avoid incomplete Global INVLPG flushes
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 01 Aug 2023 23:03:05 +0800
+
+linux-ein (5.4.0-1038.45) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1038.45 -proposed tracker (LP: #2024158)
+
+  * CVE-2023-1829
+    - [Config] ein: Make sure CONFIG_NET_CLS_TCINDEX is not available
+
+  * Request a change to EMMC access rate, to DDR52 (LP#2012080)
+    - SAUCE: mmc: Add device tree quirks2 property
+    - SAUCE: mmc: Allow device tree to disable HS400
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Disable HS200 and HS400
+
+  [ Ubuntu: 5.4.0-152.169 ]
+
+  * focal/linux: 5.4.0-152.169 -proposed tracker (LP: #2023070)
+  * Focal update: v5.4.236 upstream stable release (LP: #2020390)
+    - wifi: cfg80211: Partial revert "wifi: cfg80211: Fix use after free for wext"
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync git-ubuntu-log
+    - [Packaging] resync getabis
+
+  [ Ubuntu: 5.4.0-151.168 ]
+
+  * focal/linux: 5.4.0-151.168 -proposed tracker (LP: #2019375)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+    - debian/dkms-versions -- update from kernel-versions (main/2023.05.15)
+  * CVE-2023-32233
+    - netfilter: nf_tables: deactivate anonymous set from preparation phase
+  * CVE-2023-2612
+    - SAUCE: shiftfs: prevent lock unbalance in shiftfs_create_object()
+  * CVE-2023-31436
+    - net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg
+  * CVE-2023-1380
+    - wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
+  * Focal update: Focal update: v5.4.235 upstream stable release (LP: #2017706)
+    - HID: asus: Remove check for same LED brightness on set
+    - HID: asus: use spinlock to protect concurrent accesses
+    - HID: asus: use spinlock to safely schedule workers
+    - ARM: OMAP2+: Fix memory leak in realtime_counter_init()
+    - arm64: dts: qcom: qcs404: use symbol names for PCIe resets
+    - ARM: zynq: Fix refcount leak in zynq_early_slcr_init
+    - arm64: dts: meson-gx: Fix Ethernet MAC address unit name
+    - arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name
+    - arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address
+    - arm64: dts: meson: remove CPU opps below 1GHz for G12A boards
+    - ARM: OMAP1: call platform_device_put() in error case in
+      omap1_dm_timer_init()
+    - ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato
+    - ARM: imx: Call ida_simple_remove() for ida_simple_get
+    - arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name
+    - arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name
+    - arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible
+    - arm64: dts: amlogic: meson-gx: add missing unit address to rng node name
+    - arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node
+      name
+    - arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name
+    - ARM: dts: imx7s: correct iomuxc gpr mux controller cells
+    - arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
+    - Revert "scsi: core: run queue if SCSI device queue isn't ready and queue is
+      idle"
+    - block: Limit number of items taken from the I/O scheduler in one go
+    - blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx
+    - blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait
+    - blk-mq: correct stale comment of .get_budget
+    - s390/dasd: Prepare for additional path event handling
+    - s390/dasd: Fix potential memleak in dasd_eckd_init()
+    - sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity()
+    - sched/rt: pick_next_rt_entity(): check list_entry
+    - block: bio-integrity: Copy flags when bio_integrity_payload is cloned
+    - wifi: rsi: Fix memory leak in rsi_coex_attach()
+    - net/wireless: Delete unnecessary checks before the macro call
+      “dev_kfree_skb”
+    - wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: fix memory leak in lbs_init_adapter()
+    - wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - rtlwifi: fix -Wpointer-sign warning
+    - wifi: rtlwifi: Fix global-out-of-bounds bug in
+      _rtl8812ae_phy_set_txpower_limit()
+    - ipw2x00: switch from 'pci_' to 'dma_' API
+    - wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - wifi: ipw2200: fix memory leak in ipw_wdev_init()
+    - wilc1000: let wilc_mac_xmit() return NETDEV_TX_OK
+    - wifi: wilc1000: fix potential memory leak in wilc_mac_xmit()
+    - wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()
+    - wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid()
+    - wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave()
+    - wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave()
+    - crypto: x86/ghash - fix unaligned access in ghash_setkey()
+    - ACPICA: Drop port I/O validation for some regions
+    - genirq: Fix the return type of kstat_cpu_irqs_sum()
+    - lib/mpi: Fix buffer overrun when SG is too long
+    - ACPICA: nsrepair: handle cases without a return value correctly
+    - wifi: orinoco: check return value of hermes_write_wordrec()
+    - wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback
+      function
+    - ath9k: hif_usb: simplify if-if to if-else
+    - ath9k: htc: clean up statistics macros
+    - wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
+    - wifi: ath9k: Fix potential stack-out-of-bounds write in
+      ath9k_wmi_rsp_callback()
+    - ACPI: battery: Fix missing NUL-termination with large strings
+    - crypto: ccp - Failure on re-initialization due to duplicate sysfs filename
+    - crypto: essiv - remove redundant null pointer check before kfree
+    - crypto: essiv - Handle EBUSY correctly
+    - crypto: seqiv - Handle EBUSY correctly
+    - powercap: fix possible name leak in powercap_register_zone()
+    - net/mlx5: Enhance debug print in page allocation failure
+    - irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains
+    - irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe
+    - irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
+    - mptcp: add sk_stop_timer_sync helper
+    - net: add sock_init_data_uid()
+    - tun: tun_chr_open(): correctly initialize socket uid
+    - tap: tap_open(): correctly initialize socket uid
+    - OPP: fix error checking in opp_migrate_dentry()
+    - Bluetooth: L2CAP: Fix potential user-after-free
+    - libbpf: Fix alen calculation in libbpf_nla_dump_errormsg()
+    - rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
+    - crypto: rsa-pkcs1pad - Use akcipher_request_complete
+    - m68k: /proc/hardware should depend on PROC_FS
+    - RISC-V: time: initialize hrtimer based broadcast clock event device
+    - usb: gadget: udc: Avoid tasklet passing a global
+    - wifi: iwl3945: Add missing check for create_singlethread_workqueue
+    - wifi: iwl4965: Add missing check for create_singlethread_workqueue()
+    - wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize()
+    - crypto: crypto4xx - Call dma_unmap_page when done
+    - wifi: mac80211: make rate u32 in sta_set_rate_info_rx()
+    - thermal/drivers/hisi: Drop second sensor hi3660
+    - can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a
+      bus error
+    - irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
+    - irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
+    - selftests/net: Interpret UDP_GRO cmsg data as an int value
+    - drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats
+    - drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC
+    - drm/bridge: megachips: Fix error handling in i2c_register_driver()
+    - drm/vc4: dpi: Add option for inverting pixel clock and output enable
+    - drm/vc4: dpi: Fix format mapping for RGB565
+    - gpu: ipu-v3: common: Add of_node_put() for reference returned by
+      of_graph_get_port_by_id()
+    - drm/msm/hdmi: Add missing check for alloc_ordered_workqueue
+    - pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain
+    - ASoC: fsl_sai: initialize is_dsp_mode flag
+    - ALSA: hda/ca0132: minor fix for allocation size
+    - drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness
+    - drm/msm: use strscpy instead of strncpy
+    - drm/msm/dpu: Add check for cstate
+    - drm/msm/dpu: Add check for pstates
+    - drm/exynos: Don't reset bridge->next
+    - drm/bridge: Rename bridge helpers targeting a bridge chain
+    - drm/bridge: Introduce drm_bridge_get_next_bridge()
+    - drm: Initialize struct drm_crtc_state.no_vblank from device settings
+    - drm/msm/mdp5: Add check for kzalloc
+    - gpu: host1x: Don't skip assigning syncpoints to channels
+    - drm/mediatek: remove cast to pointers passed to kfree
+    - drm/mediatek: Use NULL instead of 0 for NULL pointer
+    - drm/mediatek: Drop unbalanced obj unref
+    - drm/mediatek: Clean dangling pointer on bind error path
+    - ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()
+    - gpio: vf610: connect GPIO label to dev name
+    - hwmon: (ltc2945) Handle error case in ltc2945_value_store
+    - scsi: aic94xx: Add missing check for dma_map_single()
+    - spi: bcm63xx-hsspi: fix pm_runtime
+    - spi: bcm63xx-hsspi: Fix multi-bit mode setting
+    - hwmon: (mlxreg-fan) Return zero speed for broken fan
+    - dm: remove flush_scheduled_work() during local_exit()
+    - spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()
+    - ASoC: dapm: declare missing structure prototypes
+    - ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared
+    - HID: bigben: use spinlock to protect concurrent accesses
+    - HID: bigben_worker() remove unneeded check on report_field
+    - HID: bigben: use spinlock to safely schedule workers
+    - HID: asus: Only set EV_REP if we are adding a mapping
+    - HID: asus: Add report_size to struct asus_touchpad_info
+    - HID: asus: Add support for multi-touch touchpad on Medion Akoya E1239T
+    - HID: asus: Fix mute and touchpad-toggle keys on Medion Akoya E1239T
+    - hid: bigben_probe(): validate report count
+    - nfsd: fix race to check ls_layouts
+    - cifs: Fix lost destroy smbd connection when MR allocate failed
+    - cifs: Fix warning and UAF when destroy the MR list
+    - gfs2: jdata writepage fix
+    - perf llvm: Fix inadvertent file creation
+    - perf tools: Fix auto-complete on aarch64
+    - sparc: allow PM configs for sparc32 COMPILE_TEST
+    - mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()
+    - clk: qcom: gcc-qcs404: disable gpll[04]_out_aux parents
+    - clk: qcom: gcc-qcs404: fix names of the DSI clocks used as parents
+    - mtd: rawnand: sunxi: Fix the size of the last OOB region
+    - clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed
+    - clk: renesas: cpg-mssr: Use enum clk_reg_layout instead of a boolean flag
+    - clk: renesas: cpg-mssr: Remove superfluous check in resume code
+    - Input: ads7846 - don't report pressure for ads7845
+    - Input: ads7846 - don't check penirq immediately for 7845
+    - clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC
+    - powerpc/powernv/ioda: Skip unallocated resources when mapping to PE
+    - clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
+    - powerpc/pseries/lpar: add missing RTAS retry status handling
+    - powerpc/pseries/lparcfg: add missing RTAS retry status handling
+    - powerpc/rtas: make all exports GPL
+    - powerpc/rtas: ensure 4KB alignment for rtas_data_buf
+    - powerpc/eeh: Small refactor of eeh_handle_normal_event()
+    - powerpc/eeh: Set channel state after notifying the drivers
+    - MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
+    - MIPS: vpe-mt: drop physical_memsize
+    - remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers
+    - media: platform: ti: Add missing check for devm_regulator_get
+    - powerpc: Remove linker flag from KBUILD_AFLAGS
+    - media: ov5675: Fix memleak in ov5675_init_controls()
+    - media: i2c: ov772x: Fix memleak in ov772x_probe()
+    - media: i2c: ov7670: 0 instead of -EINVAL was returned
+    - media: usb: siano: Fix use after free bugs caused by do_submit_urb
+    - rpmsg: glink: Avoid infinite loop on intent for missing channel
+    - udf: Define EFSCORRUPTED error code
+    - ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy
+    - blk-iocost: fix divide by 0 error in calc_lcoefs()
+    - wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
+    - rcu: Suppress smp_processor_id() complaint in
+      synchronize_rcu_expedited_wait()
+    - thermal: intel: Fix unsigned comparison with less than zero
+    - timers: Prevent union confusion from unexpected restart_syscall()
+    - x86/bugs: Reset speculation control settings on init
+    - wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-
+      of-bounds
+    - wifi: mt7601u: fix an integer underflow
+    - inet: fix fast path in __inet_hash_connect()
+    - ice: add missing checks for PF vsi type
+    - ACPI: Don't build ACPICA with '-Os'
+    - net: bcmgenet: Add a check for oversized packets
+    - m68k: Check syscall_trace_enter() return code
+    - wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup
+    - ACPI: video: Fix Lenovo Ideapad Z570 DMI match
+    - net/mlx5: fw_tracer: Fix debug print
+    - coda: Avoid partial allocation of sig_inputArgs
+    - uaccess: Add minimum bounds check on kernel buffer size
+    - drm/amd/display: Fix potential null-deref in dm_resume
+    - drm/omap: dsi: Fix excessive stack usage
+    - HID: Add Mapping for System Microphone Mute
+    - drm/radeon: free iio for atombios when driver shutdown
+    - drm/msm/dsi: Add missing check for alloc_ordered_workqueue
+    - docs/scripts/gdb: add necessary make scripts_gdb step
+    - ASoC: kirkwood: Iterate over array indexes instead of using pointer math
+    - regulator: max77802: Bounds check regulator id against opmode
+    - regulator: s5m8767: Bounds check id indexing into arrays
+    - hwmon: (coretemp) Simplify platform device handling
+    - pinctrl: at91: use devm_kasprintf() to avoid potential leaks
+    - drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5
+    - dm thin: add cond_resched() to various workqueue loops
+    - dm cache: add cond_resched() to various workqueue loops
+    - nfsd: zero out pointers after putting nfsd_files on COPY setup error
+    - wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu
+    - firmware: coreboot: framebuffer: Ignore reserved pixel color bits
+    - rtc: pm8xxx: fix set-alarm race
+    - ipmi_ssif: Rename idle state and check
+    - s390: discard .interp section
+    - s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler
+    - s390/kprobes: fix current_kprobe never cleared after kprobes reenter
+    - ARM: dts: exynos: correct HDMI phy compatible in Exynos4
+    - hfs: fix missing hfs_bnode_get() in __hfs_bnode_create
+    - fs: hfsplus: fix UAF issue in hfsplus_put_super
+    - f2fs: fix information leak in f2fs_move_inline_dirents()
+    - f2fs: fix cgroup writeback accounting with fs-layer encryption
+    - ocfs2: fix defrag path triggering jbd2 ASSERT
+    - ocfs2: fix non-auto defrag path not working issue
+    - udf: Truncate added extents on failed expansion
+    - udf: Do not bother merging very long extents
+    - udf: Do not update file length for failed writes to inline files
+    - udf: Preserve link count of system files
+    - udf: Detect system inodes linked into directory hierarchy
+    - udf: Fix file corruption when appending just after end of preallocated
+      extent
+    - KVM: Destroy target device if coalesced MMIO unregistration fails
+    - KVM: s390: disable migration mode when dirty tracking is disabled
+    - x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows)
+    - x86/crash: Disable virt in core NMI crash handler to avoid double shootdown
+    - x86/reboot: Disable virtualization in an emergency if SVM is supported
+    - x86/reboot: Disable SVM, not just VMX, when stopping CPUs
+    - x86/kprobes: Fix __recover_optprobed_insn check optimizing logic
+    - x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe
+      range
+    - x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter
+    - x86/microcode/AMD: Add a @cpu parameter to the reloading functions
+    - x86/microcode/AMD: Fix mixed steppings support
+    - x86/speculation: Allow enabling STIBP with legacy IBRS
+    - Documentation/hw-vuln: Document the interaction between IBRS and STIBP
+    - ima: Align ima_file_mmap() parameters with mmap_file LSM hook
+    - irqdomain: Fix association race
+    - irqdomain: Fix disassociation race
+    - irqdomain: Drop bogus fwspec-mapping error handling
+    - ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
+    - ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC
+    - ext4: optimize ea_inode block expansion
+    - ext4: refuse to create ea block when umounted
+    - wifi: rtl8xxxu: Use a longer retry limit of 48
+    - wifi: cfg80211: Fix use after free for wext
+    - thermal: intel: powerclamp: Fix cur_state for multi package system
+    - dm flakey: fix logic when corrupting a bio
+    - dm flakey: don't corrupt the zero page
+    - ARM: dts: exynos: correct TMU phandle in Exynos4
+    - ARM: dts: exynos: correct TMU phandle in Odroid XU
+    - rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
+    - alpha: fix FEN fault handling
+    - mips: fix syscall_get_nr
+    - media: ipu3-cio2: Fix PM runtime usage_count in driver unbind
+    - mm: memcontrol: deprecate charge moving
+    - mm/thp: check and bail out if page in deferred queue already
+    - ktest.pl: Give back console on Ctrt^C on monitor
+    - ktest.pl: Fix missing "end_monitor" when machine check fails
+    - ktest.pl: Add RUN_TIMEOUT option with default unlimited
+    - scsi: qla2xxx: Fix link failure in NPIV environment
+    - scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests
+    - scsi: qla2xxx: Fix erroneous link down
+    - scsi: ses: Don't attach if enclosure has no components
+    - scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process()
+    - scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses
+    - scsi: ses: Fix possible desc_ptr out-of-bounds accesses
+    - scsi: ses: Fix slab-out-of-bounds in ses_intf_remove()
+    - PCI/PM: Observe reset delay irrespective of bridge_d3
+    - PCI: hotplug: Allow marking devices as disconnected during bind/unbind
+    - PCI: Avoid FLR for AMD FCH AHCI adapters
+    - drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv
+    - drm/radeon: Fix eDP for single-display iMac11,2
+    - wifi: ath9k: use proper statements in conditionals
+    - kbuild: Port silent mode detection to future gnu make.
+    - fs/jfs: fix shift exponent db_agl2size negative
+    - pwm: sifive: Reduce time the controller lock is held
+    - pwm: sifive: Always let the first pwm_apply_state succeed
+    - pwm: stm32-lp: fix the check on arr and cmp registers update
+    - f2fs: use memcpy_{to,from}_page() where possible
+    - fs: f2fs: initialize fsdata in pagecache_write()
+    - um: vector: Fix memory leak in vector_config
+    - ubi: ensure that VID header offset + VID header size <= alloc, size
+    - ubifs: Fix build errors as symbol undefined
+    - ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted
+    - ubifs: Rectify space budget for ubifs_xrename()
+    - ubifs: Fix wrong dirty space budget for dirty inode
+    - ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1
+    - ubifs: Reserve one leb for each journal head while doing budget
+    - ubi: Fix use-after-free when volume resizing failed
+    - ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume()
+    - ubifs: Fix memory leak in alloc_wbufs()
+    - ubi: Fix possible null-ptr-deref in ubi_free_volume()
+    - ubifs: Re-statistic cleaned znode count if commit failed
+    - ubifs: dirty_cow_znode: Fix memleak in error handling path
+    - ubifs: ubifs_writepage: Mark page dirty after writing inode failed
+    - ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show()
+    - ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed
+    - x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list
+    - watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in
+      error path
+    - watchdog: Fix kmemleak in watchdog_cdev_register
+    - watchdog: pcwd_usb: Fix attempting to access uninitialized memory
+    - netfilter: ctnetlink: fix possible refcount leak in
+      ctnetlink_create_conntrack()
+    - ipv6: Add lwtunnel encap size of all siblings in nexthop calculation
+    - sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop
+    - net: fix __dev_kfree_skb_any() vs drop monitor
+    - 9p/xen: fix version parsing
+    - 9p/xen: fix connection sequence
+    - 9p/rdma: unmap receive dma buffer in rdma_request()/post_recv()
+    - net/mlx5: Geneve, Fix handling of Geneve object id as error code
+    - nfc: fix memory leak of se_io context in nfc_genl_se_io
+    - net/sched: act_sample: fix action bind logic
+    - ARM: dts: spear320-hmi: correct STMPE GPIO compatible
+    - tcp: tcp_check_req() can be called from process context
+    - vc_screen: modify vcs_size() handling in vcs_read()
+    - rtc: sun6i: Make external 32k oscillator optional
+    - rtc: sun6i: Always export the internal oscillator
+    - scsi: ipr: Work around fortify-string warning
+    - thermal: intel: quark_dts: fix error pointer dereference
+    - thermal: intel: BXT_PMIC: select REGMAP instead of depending on it
+    - tracing: Add NULL checks for buffer in ring_buffer_free_read_page()
+    - firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3
+    - mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak
+    - media: uvcvideo: Handle cameras with invalid descriptors
+    - media: uvcvideo: Handle errors from calls to usb_string
+    - media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910
+    - media: uvcvideo: Silence memcpy() run-time false positive warnings
+    - staging: emxx_udc: Add checks for dma_alloc_coherent()
+    - tty: fix out-of-bounds access in tty_driver_lookup_tty()
+    - tty: serial: fsl_lpuart: disable the CTS when send break signal
+    - mei: bus-fixup:upon error print return values of send and receive
+    - tools/iio/iio_utils:fix memory leak
+    - iio: accel: mma9551_core: Prevent uninitialized variable in
+      mma9551_read_status_word()
+    - iio: accel: mma9551_core: Prevent uninitialized variable in
+      mma9551_read_config_word()
+    - usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer
+      math
+    - USB: ene_usb6250: Allocate enough memory for full object
+    - usb: uvc: Enumerate valid values for color matching
+    - kernel/fail_function: fix memory leak with using debugfs_lookup()
+    - PCI: Add ACS quirk for Wangxun NICs
+    - phy: rockchip-typec: Fix unsigned comparison with less than zero
+    - net: tls: avoid hanging tasks on the tx_lock
+    - x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid}
+    - x86/resctl: fix scheduler confusion with 'current'
+    - Bluetooth: hci_sock: purge socket queues in the destruct() callback
+    - SAUCE: Revert "UBUNTU: SAUCE: Fix inet_csk_listen_start after CVE-2023-0461"
+    - tcp: Fix listen() regression in 5.4.229.
+    - media: uvcvideo: Provide sync and async uvc_ctrl_status_event
+    - media: uvcvideo: Fix race condition with usb_kill_urb
+    - dt-bindings: rtc: sun6i-a31-rtc: Loosen the requirements on the clocks
+    - Linux 5.4.235
+    - [Config] Drop mxsfb for armhf:generic-lpae
+  * Focal update: v5.4.234 upstream stable release (LP: #2017691)
+    - arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc
+    - ARM: dts: rockchip: add power-domains property to dp node on rk3288
+    - ACPI: NFIT: fix a potential deadlock during NFIT teardown
+    - btrfs: send: limit number of clones and allocated memory size
+    - IB/hfi1: Assign npages earlier
+    - neigh: make sure used and confirmed times are valid
+    - HID: core: Fix deadloop in hid_apply_multiplier.
+    - bpf: bpf_fib_lookup should not return neigh in NUD_FAILED state
+    - net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues().
+    - vc_screen: don't clobber return value in vcs_read
+    - dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
+    - USB: serial: option: add support for VW/Skoda "Carstick LTE"
+    - USB: core: Don't hold device lock while reading the "descriptors" sysfs file
+    - Linux 5.4.234
+  * CVE-2023-30456
+    - KVM: nVMX: add missing consistency checks for CR0 and CR4
+  * CVE-2023-1859
+    - 9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race
+      condition
+  * CVE-2023-1670
+    - xirc2ps_cs: Fix use after free bug in xirc2ps_detach
+
+  [ Ubuntu: 5.4.0-149.166 ]
+
+  * focal/linux: 5.4.0-149.166 -proposed tracker (LP: #2016591)
+  * Focal update: v5.4.233 upstream stable release (LP: #2015909)
+    - dma-mapping: add generic helpers for mapping sgtable objects
+    - scatterlist: add generic wrappers for iterating over sgtable objects
+    - drm: etnaviv: fix common struct sg_table related issues
+    - drm/etnaviv: don't truncate physical page address
+    - wifi: rtl8xxxu: gen2: Turn on the rate control
+    - powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G
+    - random: always mix cycle counter in add_latent_entropy()
+    - KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
+    - can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len
+    - powerpc: dts: t208x: Disable 10G on MAC1 and MAC2
+    - alarmtimer: Prevent starvation by small intervals and SIG_IGN
+    - drm/i915/gvt: fix double free bug in split_2MB_gtt_entry
+    - mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
+    - uaccess: Add speculation barrier to copy_from_user()
+    - wifi: mwifiex: Add missing compatible string for SD8787
+    - ext4: Fix function prototype mismatch for ext4_feat_ktype
+    - Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo
+      child qdiscs"
+    - bpf: add missing header file include
+    - Linux 5.4.233
+  *  selftest: fib_tests: Always cleanup before exit  (LP: #2015956)
+    - selftest: fib_tests: Always cleanup before exit
+  * fib_tests.sh in ubuntu_kernel_selftests was skipped silently on Focal
+    (LP: #2015440)
+    - selftests: Fix the executable permissions for fib_tests.sh
+  * Debian autoreconstruct Fix restoration of execute permissions (LP: #2015498)
+    - [Debian] autoreconstruct - fix restoration of execute permissions
+  * kernel: fix __clear_user() inline assembly constraints (LP: #2013088)
+    - s390/uaccess: add missing earlyclobber annotations to __clear_user()
+  * i/o error if next unused loop device is queried (LP: #1856871)
+    - loop: fix I/O error on fsync() in detached loop devices
+  * CVE-2023-1075
+    - net/tls: tls_is_tx_ready() checked list_entry
+  * Focal update: v5.4.232 upstream stable release (LP: #2011625)
+    - firewire: fix memory leak for payload of request subaction to IEC 61883-1
+      FCP region
+    - bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
+    - ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
+    - ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
+    - arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
+    - scsi: Revert "scsi: core: map PQ=1, PDT=other values to
+      SCSI_SCAN_TARGET_PRESENT"
+    - WRITE is "data source", not destination...
+    - fix iov_iter_bvec() "direction" argument
+    - fix "direction" argument of iov_iter_kvec()
+    - netrom: Fix use-after-free caused by accept on already connected socket
+    - netfilter: br_netfilter: disable sabotage_in hook after first suppression
+    - squashfs: harden sanity check in squashfs_read_xattr_id_table
+    - net: phy: meson-gxl: Add generic dummy stubs for MMD register access
+    - can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
+    - ata: libata: Fix sata_down_spd_limit() when no link speed is reported
+    - selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
+    - selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
+    - selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy
+      benchmarking
+    - virtio-net: Keep stop() to follow mirror sequence of open()
+    - net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
+    - efi: fix potential NULL deref in efi_mem_reserve_persistent
+    - scsi: target: core: Fix warning on RT kernels
+    - scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
+    - i2c: rk3x: fix a bunch of kernel-doc warnings
+    - net/x25: Fix to not accept on connected socket
+    - iio: adc: stm32-dfsdm: fill module aliases
+    - usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
+    - usb: dwc3: qcom: enable vbus override when in OTG dr-mode
+    - usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
+    - vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
+    - Input: i8042 - move __initconst to fix code styling warning
+    - Input: i8042 - merge quirk tables
+    - Input: i8042 - add TUXEDO devices to i8042 quirk tables
+    - Input: i8042 - add Clevo PCX0DX to i8042 quirk table
+    - fbcon: Check font dimension limits
+    - watchdog: diag288_wdt: do not use stack buffers for hardware data
+    - watchdog: diag288_wdt: fix __diag288() inline assembly
+    - efi: Accept version 2 of memory attributes table
+    - iio: hid: fix the retval in accel_3d_capture_sample
+    - iio: adc: berlin2-adc: Add missing of_node_put() in error path
+    - iio:adc:twl6030: Enable measurements of VUSB, VBAT and others
+    - parisc: Fix return code of pdc_iodc_print()
+    - parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
+    - riscv: disable generation of unwind tables
+    - mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
+    - fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
+    - mm/swapfile: add cond_resched() in get_swap_pages()
+    - Squashfs: fix handling and sanity checking of xattr_ids count
+    - nvmem: core: fix cell removal on error
+    - mm: swap: properly update readahead statistics in unuse_pte_range()
+    - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
+    - serial: 8250_dma: Fix DMA Rx completion race
+    - serial: 8250_dma: Fix DMA Rx rearm race
+    - powerpc/imc-pmu: Revert nest_init_lock to being a mutex
+    - fbdev: smscufx: fix error handling code in ufx_usb_probe
+    - f2fs: fix to do sanity check on i_extra_isize in is_alive()
+    - wifi: brcmfmac: Check the count value of channel spec to prevent out-of-
+      bounds reads
+    - iio:adc:twl6030: Enable measurement of VAC
+    - btrfs: limit device extents to the device size
+    - btrfs: zlib: zero-initialize zlib workspace
+    - ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
+    - tracing: Fix poll() and select() do not work on per_cpu trace_pipe and
+      trace_pipe_raw
+    - can: j1939: do not wait 250 ms if the same addr was already claimed
+    - IB/hfi1: Restore allocated resources on failed copyout
+    - IB/IPoIB: Fix legacy IPoIB due to wrong number of queues
+    - iommu: Add gfp parameter to iommu_ops::map
+    - RDMA/usnic: use iommu_map_atomic() under spin_lock()
+    - xfrm: fix bug with DSCP copy to v6 from v4 tunnel
+    - bonding: fix error checking in bond_debug_reregister()
+    - net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
+    - ionic: clean interrupt before enabling queue to avoid credit race
+    - ice: Do not use WQ_MEM_RECLAIM flag for workqueue
+    - rds: rds_rm_zerocopy_callback() use list_first_entry()
+    - selftests: forwarding: lib: quote the sysctl values
+    - ALSA: pci: lx6464es: fix a debug loop
+    - pinctrl: aspeed: Fix confusing types in return value
+    - pinctrl: single: fix potential NULL dereference
+    - pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
+    - net: USB: Fix wrong-direction WARNING in plusb.c
+    - usb: core: add quirk for Alcor Link AK9563 smartcard reader
+    - usb: typec: altmodes/displayport: Fix probe pin assign check
+    - ceph: flush cap releases when the session is flushed
+    - riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
+    - arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
+    - arm64: dts: meson-g12-common: Make mmc host controller interrupts level-
+      sensitive
+    - arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
+    - nvme-pci: Move enumeration by class to be last in the table
+    - bpf: Always return target ifindex in bpf_fib_lookup
+    - migrate: hugetlb: check for hugetlb shared PMD in node migration
+    - selftests/bpf: Verify copy_register_state() preserves parent/live fields
+    - ASoC: cs42l56: fix DT probe
+    - tools/virtio: fix the vringh test for virtio ring changes
+    - net/rose: Fix to not accept on connected socket
+    - net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
+    - net: sched: sch: Bounds check priority
+    - s390/decompressor: specify __decompress() buf len to avoid overflow
+    - nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
+    - aio: fix mremap after fork null-deref
+    - btrfs: free device in btrfs_close_devices for a single device filesystem
+    - netfilter: nft_tproxy: restrict to prerouting hook
+    - xfs: remove the xfs_efi_log_item_t typedef
+    - xfs: remove the xfs_efd_log_item_t typedef
+    - xfs: remove the xfs_inode_log_item_t typedef
+    - xfs: factor out a xfs_defer_create_intent helper
+    - xfs: merge the ->log_item defer op into ->create_intent
+    - xfs: merge the ->diff_items defer op into ->create_intent
+    - xfs: turn dfp_intent into a xfs_log_item
+    - xfs: refactor xfs_defer_finish_noroll
+    - xfs: log new intent items created as part of finishing recovered intent
+      items
+    - xfs: fix finobt btree block recovery ordering
+    - xfs: proper replay of deferred ops queued during log recovery
+    - xfs: xfs_defer_capture should absorb remaining block reservations
+    - xfs: xfs_defer_capture should absorb remaining transaction reservation
+    - xfs: clean up bmap intent item recovery checking
+    - xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
+    - xfs: fix an incore inode UAF in xfs_bui_recover
+    - xfs: change the order in which child and parent defer ops are finished
+    - xfs: periodically relog deferred intent items
+    - xfs: expose the log push threshold
+    - xfs: only relog deferred intent items if free space in the log gets low
+    - xfs: fix missing CoW blocks writeback conversion retry
+    - xfs: ensure inobt record walks always make forward progress
+    - xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks
+    - xfs: prevent UAF in xfs_log_item_in_current_chkpt
+    - xfs: sync lazy sb accounting on quiesce of read-only mounts
+    - Revert "ipv4: Fix incorrect route flushing when source address is deleted"
+    - ipv4: Fix incorrect route flushing when source address is deleted
+    - mmc: sdio: fix possible resource leaks in some error paths
+    - mmc: mmc_spi: fix error handling in mmc_spi_probe()
+    - ALSA: hda/conexant: add a new hda codec SN6180
+    - ALSA: hda/realtek - fixed wrong gpio assigned
+    - sched/psi: Fix use-after-free in ep_remove_wait_queue()
+    - hugetlb: check for undefined shift on 32 bit architectures
+    - Revert "mm: Always release pages to the buddy allocator in
+      memblock_free_late()."
+    - net: Fix unwanted sign extension in netdev_stats_to_stats64()
+    - revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
+    - ixgbe: allow to increase MTU to 3K with XDP enabled
+    - i40e: add double of VLAN header when computing the max MTU
+    - net: bgmac: fix BCM5358 support by setting correct flags
+    - sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list
+    - dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
+    - net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
+    - net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
+    - bnxt_en: Fix mqprio and XDP ring checking logic
+    - net: stmmac: Restrict warning on disabling DMA store and fwd mode
+    - ixgbe: add double of VLAN header when computing the max MTU
+    - ipv6: Fix datagram socket connection with DSCP.
+    - ipv6: Fix tcp socket connection with DSCP.
+    - i40e: Add checking for null for nlmsg_find_attr()
+    - kvm: initialize all of the kvm_debugregs structure before sending it to
+      userspace
+    - nilfs2: fix underflow in second superblock position calculations
+    - ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
+    - net: sched: sch: Fix off by one in htb_activate_prios()
+    - iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
+    - Linux 5.4.232
+  * CVE-2023-1118
+    - media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
+
+  [ Ubuntu: 5.4.0-148.165 ]
+
+  * focal/linux: 5.4.0-148.165 -proposed tracker (LP: #2016777)
+  * CVE-2023-1829
+    - net/sched: Retire tcindex classifier
+    - [Config]: Make sure CONFIG_NET_CLS_TCINDEX is not available
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 19 Jun 2023 13:05:12 +0800
+
+linux-ein (5.4.0-1037.43) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1037.43 -proposed tracker (LP: #2017272)
+
+  * [K4500-NXP][UC20] Unexpectedly reboot if using the kernel on 'master' branch
+    (LP: #2008068)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Load panel driver early
+
+  * Miscellaneous Ubuntu changes
+    - snap: Add snapcraft.yaml for Reading
+    - snap: reading: Add customized firmware
+    - snap: adopt trim-firmware
+
+  [ Ubuntu: 5.4.0-147.164 ]
+
+  * focal/linux: 5.4.0-147.164 -proposed tracker (LP: #2011959)
+  * CVE-2023-26545
+    - net: mpls: fix stale pointer if allocation fails during device rename
+  * CVE-2023-1281
+    - rcu: Upgrade rcu_swap_protected() to rcu_replace_pointer()
+    - net/sched: tcindex: update imperfect hash filters respecting rcu
+  * Focal update: v5.4.231 upstream stable release (LP: #2011226)
+    - clk: generalize devm_clk_get() a bit
+    - clk: Provide new devm_clk helpers for prepared and enabled clocks
+    - memory: atmel-sdramc: Fix missing clk_disable_unprepare in
+      atmel_ramc_probe()
+    - memory: mvebu-devbus: Fix missing clk_disable_unprepare in
+      mvebu_devbus_probe()
+    - ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts'
+    - ARM: imx27: Retrieve the SYSCTRL base address from devicetree
+    - ARM: imx31: Retrieve the IIM base address from devicetree
+    - ARM: imx35: Retrieve the IIM base address from devicetree
+    - ARM: imx: add missing of_node_put()
+    - HID: intel_ish-hid: Add check for ishtp_dma_tx_map
+    - EDAC/highbank: Fix memory leak in highbank_mc_probe()
+    - tomoyo: fix broken dependency on *.conf.default
+    - RDMA/core: Fix ib block iterator counter overflow
+    - IB/hfi1: Reject a zero-length user expected buffer
+    - IB/hfi1: Reserve user expected TIDs
+    - IB/hfi1: Fix expected receive setup error exit issues
+    - affs: initialize fsdata in affs_truncate()
+    - amd-xgbe: TX Flow Ctrl Registers are h/w ver dependent
+    - amd-xgbe: Delay AN timeout during KR training
+    - bpf: Fix pointer-leak due to insufficient speculative store bypass
+      mitigation
+    - phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in
+      rockchip_usb2phy_power_on()
+    - net: nfc: Fix use-after-free in local_cleanup()
+    - net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs
+    - gpio: mxc: Always set GPIOs used as interrupt source to INPUT mode
+    - net/sched: sch_taprio: fix possible use-after-free
+    - net: fix a concurrency bug in l2tp_tunnel_register()
+    - l2tp: Serialize access to sk_user_data with sk_callback_lock
+    - l2tp: Don't sleep and disable BH under writer-side sk_callback_lock
+    - net: usb: sr9700: Handle negative len
+    - net: mdio: validate parameter addr in mdiobus_get_phy()
+    - HID: check empty report_list in hid_validate_values()
+    - HID: check empty report_list in bigben_probe()
+    - net: stmmac: fix invalid call to mdiobus_get_phy()
+    - HID: revert CHERRY_MOUSE_000C quirk
+    - usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait
+    - usb: gadget: f_fs: Ensure ep0req is dequeued before free_request
+    - net: mlx5: eliminate anonymous module_init & module_exit
+    - drm/panfrost: fix GENERIC_ATOMIC64 dependency
+    - dmaengine: Fix double increment of client_count in dma_chan_get()
+    - net: macb: fix PTP TX timestamp failure due to packet padding
+    - HID: betop: check shape of output reports
+    - dmaengine: xilinx_dma: use devm_platform_ioremap_resource()
+    - dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling
+    - dmaengine: xilinx_dma: call of_node_put() when breaking out of
+      for_each_child_of_node()
+    - tcp: avoid the lookup process failing to get sk in ehash table
+    - w1: fix deadloop in __w1_remove_master_device()
+    - w1: fix WARNING after calling w1_process()
+    - driver core: Fix test_async_probe_init saves device in wrong array
+    - net: dsa: microchip: ksz9477: port map correction in ALU table entry
+      register
+    - tcp: fix rate_app_limited to default to 1
+    - cpufreq: Add Tegra234 to cpufreq-dt-platdev blocklist
+    - ASoC: fsl_micfil: Correct the number of steps on SX controls
+    - drm: Add orientation quirk for Lenovo ideapad D330-10IGL
+    - s390/debug: add _ASM_S390_ prefix to header guard
+    - cpufreq: armada-37xx: stop using 0 as NULL pointer
+    - ASoC: fsl_ssi: Rename AC'97 streams to avoid collisions with AC'97 CODEC
+    - ASoC: fsl-asoc-card: Fix naming of AC'97 CODEC widgets
+    - spi: spidev: remove debug messages that access spidev->spi without locking
+    - KVM: s390: interrupt: use READ_ONCE() before cmpxchg()
+    - scsi: hisi_sas: Set a port invalid only if there are no devices attached
+      when refreshing port id
+    - platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD
+    - platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK
+    - lockref: stop doing cpu_relax in the cmpxchg loop
+    - mmc: sdhci-esdhc-imx: clear pending interrupt and halt cqhci
+    - mmc: sdhci-esdhc-imx: disable the CMD CRC check for standard tuning
+    - mmc: sdhci-esdhc-imx: correct the tuning start tap and step setting
+    - netfilter: conntrack: do not renew entry stuck in tcp SYN_SENT state
+    - fs: reiserfs: remove useless new_opts in reiserfs_remount
+    - Bluetooth: hci_sync: cancel cmd_timer if hci_open failed
+    - scsi: hpsa: Fix allocation size for scsi_host_alloc()
+    - module: Don't wait for GOING modules
+    - tracing: Make sure trace_printk() can output as soon as it can be used
+    - trace_events_hist: add check for return value of 'create_hist_field'
+    - ftrace/scripts: Update the instructions for ftrace-bisect.sh
+    - cifs: Fix oops due to uncleared server->smbd_conn in reconnect
+    - KVM: x86/vmx: Do not skip segment attributes if unusable bit is set
+    - thermal: intel: int340x: Protect trip temperature from concurrent updates
+    - ARM: 9280/1: mm: fix warning on phys_addr_t to void pointer assignment
+    - EDAC/device: Respect any driver-supplied workqueue polling value
+    - EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info
+    - netlink: prevent potential spectre v1 gadgets
+    - net: fix UaF in netns ops registration error path
+    - netfilter: nft_set_rbtree: skip elements in transaction from garbage
+      collection
+    - netlink: annotate data races around nlk->portid
+    - netlink: annotate data races around dst_portid and dst_group
+    - netlink: annotate data races around sk_state
+    - ipv4: prevent potential spectre v1 gadget in ip_metrics_convert()
+    - ipv4: prevent potential spectre v1 gadget in fib_metrics_match()
+    - netfilter: conntrack: fix vtag checks for ABORT/SHUTDOWN_COMPLETE
+    - netrom: Fix use-after-free of a listening socket.
+    - net/sched: sch_taprio: do not schedule in taprio_reset()
+    - sctp: fail if no bound addresses can be used for a given scope
+    - net: ravb: Fix possible hang if RIS2_QFF1 happen
+    - thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
+    - net/tg3: resolve deadlock in tg3_reset_task() during EEH
+    - net/phy/mdio-i2c: Move header file to include/linux/mdio
+    - net: xgene: Move shared header file into include/linux
+    - net: mdio-mux-meson-g12a: force internal PHY off on mux switch
+    - Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI
+      mode"
+    - nfsd: Ensure knfsd shuts down when the "nfsd" pseudofs is unmounted
+    - block: fix and cleanup bio_check_ro
+    - x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL
+    - netfilter: conntrack: unify established states for SCTP paths
+    - perf/x86/amd: fix potential integer overflow on shift of a int
+    - clk: Fix pointer casting to prevent oops in devm_clk_release()
+    - x86/asm: Fix an assembler warning with current binutils
+    - ARM: dts: imx: Fix pca9547 i2c-mux node name
+    - bpf: Skip task with pid=1 in send_signal_common()
+    - blk-cgroup: fix missing pd_online_fn() while activating policy
+    - dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init
+    - sysctl: add a new register_sysctl_init() interface
+    - panic: unset panic_on_warn inside panic()
+    - mm: kasan: do not panic if both panic_on_warn and kasan_multishot set
+    - exit: Add and use make_task_dead.
+    - objtool: Add a missing comma to avoid string concatenation
+    - hexagon: Fix function name in die()
+    - h8300: Fix build errors from do_exit() to make_task_dead() transition
+    - csky: Fix function name in csky_alignment() and die()
+    - ia64: make IA64_MCA_RECOVERY bool instead of tristate
+    - exit: Put an upper limit on how often we can oops
+    - exit: Expose "oops_count" to sysfs
+    - exit: Allow oops_limit to be disabled
+    - panic: Consolidate open-coded panic_on_warn checks
+    - panic: Introduce warn_limit
+    - panic: Expose "warn_count" to sysfs
+    - docs: Fix path paste-o for /sys/kernel/warn_count
+    - exit: Use READ_ONCE() for all oops/warn limit reads
+    - ipv6: ensure sane device mtu in tunnels
+    - Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt
+    - usb: host: xhci-plat: add wakeup entry at sysfs
+    - Revert "xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()"
+    - Linux 5.4.231
+  * CVE-2022-3903
+    - USB: add usb_control_msg_send() and usb_control_msg_recv()
+    - USB: correct API of usb_control_msg_send/recv
+    - USB: move snd_usb_pipe_sanity_check into the USB core
+    - media: mceusb: Use new usb_control_msg_*() routines
+  * CVE-2022-3108
+    - drm/amdkfd: Check for null pointer after calling kmemdup
+  * Focal update: v5.4.230 upstream stable release (LP: #2008946)
+    - pNFS/filelayout: Fix coalescing test for single DS
+    - net/ethtool/ioctl: return -EOPNOTSUPP if we have no phy stats
+    - RDMA/srp: Move large values to a new enum for gcc13
+    - f2fs: let's avoid panic if extent_tree is not created
+    - wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices
+    - Add exception protection processing for vd in axi_chan_handle_err function
+    - nilfs2: fix general protection fault in nilfs_btree_insert()
+    - efi: fix userspace infinite retry read efivars after EFI runtime services
+      page fault
+    - drm/i915/gt: Reset twice
+    - ALSA: hda/realtek - Turn on power early
+    - xhci-pci: set the dma max_seg_size
+    - usb: xhci: Check endpoint is valid before dereferencing it
+    - xhci: Fix null pointer dereference when host dies
+    - xhci: Add update_hub_device override for PCI xHCI hosts
+    - xhci: Add a flag to disable USB3 lpm on a xhci root port level.
+    - usb: acpi: add helper to check port lpm capability using acpi _DSM
+    - xhci: Detect lpm incapable xHC USB3 roothub ports from ACPI tables
+    - prlimit: do_prlimit needs to have a speculation check
+    - USB: serial: option: add Quectel EM05-G (GR) modem
+    - USB: serial: option: add Quectel EM05-G (CS) modem
+    - USB: serial: option: add Quectel EM05-G (RS) modem
+    - USB: serial: option: add Quectel EC200U modem
+    - USB: serial: option: add Quectel EM05CN (SG) modem
+    - USB: serial: option: add Quectel EM05CN modem
+    - USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100
+    - misc: fastrpc: Don't remove map on creater_process and device_release
+    - misc: fastrpc: Fix use-after-free race condition for maps
+    - usb: core: hub: disable autosuspend for TI TUSB8041
+    - comedi: adv_pci1760: Fix PWM instruction handling
+    - mmc: sunxi-mmc: Fix clock refcount imbalance during unbind
+    - btrfs: fix race between quota rescan and disable leading to NULL pointer
+      deref
+    - cifs: do not include page data when checking signature
+    - USB: serial: cp210x: add SCALANCE LPE-9000 device id
+    - usb: host: ehci-fsl: Fix module alias
+    - usb: typec: altmodes/displayport: Add pin assignment helper
+    - usb: typec: altmodes/displayport: Fix pin assignment calculation
+    - usb: gadget: g_webcam: Send color matching descriptor per frame
+    - usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate()
+    - usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210
+    - dt-bindings: phy: g12a-usb3-pcie-phy: fix compatible string documentation
+    - serial: pch_uart: Pass correct sg to dma_unmap_sg()
+    - dmaengine: tegra210-adma: fix global intr clear
+    - serial: atmel: fix incorrect baudrate setup
+    - gsmi: fix null-deref in gsmi_get_variable
+    - drm/i915: re-disable RC6p on Sandy Bridge
+    - drm/amd/display: Fix set scaling doesn's work
+    - drm/amd/display: Fix COLOR_SPACE_YCBCR2020_TYPE matrix
+    - x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN
+    - mm/khugepaged: fix collapse_pte_mapped_thp() to allow anon_vma
+    - Linux 5.4.230
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sat, 22 Apr 2023 18:48:58 +0800
+
+linux-ein (5.4.0-1036.42) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1036.42 -proposed tracker (LP: #2015677)
+
+  * [Amgis-v*] Update device trees for UIO platform driver (LP#2012101)
+    - SAUCE: amgis: dts: Add UIO node
+
+  * [imx8-all][oem-support] CAAM Driver is not loaded (LP: #2009583)
+    - MLKU-129-3 arm64: dts: imx8mp: add secure memory
+    - MLKU-25-4 arm64: dts: imx8m: add secure memory
+
+  * Miscellaneous Ubuntu changes
+    - [Config] ein: Enforce module signature check
+    - SAUCE: Add imx8 modules to signature inclusion list
+
+  [ Ubuntu: 5.4.0-146.163 ]
+
+  * focal/linux: 5.4.0-146.163 -proposed tracker (LP: #2012094)
+  * NFS deathlock with last Kernel 5.4.0-144.161 and 5.15.0-67.74 (LP: #2009325)
+    - NFS: Correct timing for assigning access cache timestamp
+
+  [ Ubuntu: 5.4.0-145.162 ]
+
+  * focal/linux: 5.4.0-145.162 -proposed tracker (LP: #2008389)
+  * [SRU]Update ice driver to support E823 devices (LP: #1986717)
+    - ice: Add device ids for E822 devices
+    - ice: add support for E823 devices
+  * btrfs/154: rename fails with EOVERFLOW when calculating item size during
+    item key collision (LP: #2004132)
+    - btrfs: correctly calculate item size used when item key collision happens
+  * rtcpie in timers from ubuntu_kernel_selftests randomly failing
+    (LP: #1814234)
+    - SAUCE: selftest: rtcpie: Force passing unreliable subtest
+  * [UBUNTU 20.04] KVM: s390: pv: don't allow userspace to set the clock under
+    PV - kernel part (LP: #1999882)
+    - KVM: s390x: fix SCK locking
+    - KVM: s390: pv: don't allow userspace to set the clock under PV
+  * CVE-2021-3669
+    - ipc: replace costly bailout check in sysvipc_find_ipc()
+  * net:fcnal-test.sh 'nettest' command not found on F/K (LP: #2006391)
+    - selftests/net: Find nettest in current directory
+  * xfs: Preallocated ioend transactions cause deadlock due to log buffer
+    exhaustion (LP: #2007219)
+    - xfs: drop submit side trans alloc for append ioends
+  * CVE-2022-4382
+    - USB: gadgetfs: Fix race between mounting and unmounting
+  * CVE-2022-2196
+    - KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
+  * ubuntu_kernel_selftests: net:udpgso_bench.sh failed (LP: #1951447)
+    - selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
+  * net:fcnal-test.sh didn't return a non-zero value even with some sub-tests
+    failed (LP: #2006692)
+    - selftests: net/fcnal-test.sh: add exit code
+  * Fix selftests/ftracetests/Meta-selftests in Focal (LP: #2006453)
+    - SAUCE: Fix ftrace/Meta-selftests bashism check
+  * CVE-2023-23559
+    - wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sun, 09 Apr 2023 19:07:31 +0800
+
+linux-ein (5.4.0-1035.41) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1035.41 -proposed tracker (LP: #2011767)
+
+  * [UC20][Amgis-V5] Enabling OPTEE based FDE (LP#1995129)
+    - SAUCE: amgis: dts: Remove busfreq node
+    - SAUCE: amgis: dts: Fix OPTEE crash
+    - SAUCE: amgis: dts: Additional OCRAM node for OPTEE
+    - SAUCE: amgis: dts: Add secure memory
+
+  * [Amgis-V5][UC20] System reboot via RPMSG/M4 failed (LP#2009916)
+    - SAUCE: rpmsg: Change virtio bus name
+
+  * [PE100A] Fixes for LAN1 (LP: #1994123)
+    - SAUCE: net: fec: modify ethernet LED behavior for RTL8211E/RTL8211F
+    - net: phy: realtek: fix rtl8211e rx/tx delay config
+
+  * [PE100A] Fix PMIC Settings (LP: #1994118)
+    - SAUCE: arm64/dts: pe100a: modify dvs voltage of buck1~buck4.
+
+  * [PE100A] Add LTE modem support (LP: #1994089)
+    - SAUCE: net: Add support for more quectel modems
+
+  * Cadence MHDP HDMI CEC driver doesn't work when building as a module (LP:
+    #2011779)
+    - SAUCE: drm/cdns: Fix #if checks for CONFIG_DRM_CDNS_HDMI_CEC
+
+  * [PE100A] Wifi patch for WMX6219 module (LP: #1994116)
+    - [Config] CONFIG_RTW88_8822CE=y
+    - Revert "PCI: dwc: Use interrupt disabling instead of masking"
+    - PCI: dwc: Restore MSI Receiver mask during resume
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 17 Mar 2023 00:26:07 +0800
+
+linux-ein (5.4.0-1034.40) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1034.40 -proposed tracker (LP: #2009905)
+
+  * Focal update: v5.4.226 upstream stable release (LP: #2003896)
+    - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER
+
+  * [K4500-NXP][UC20] HMI screen does not turn on at end of first boot process
+    or simple power cycle (LP#2002765)
+    - Revert "UBUNTU: SAUCE: drm: AVD101WX-CN: Assigned bus format to fix
+      warning:"
+
+  * [UC20] failed to bring up PLS63-W, fail rate ~10% (LP: #2008468)
+    - nvmem: core: fix registration vs use race
+
+  * Patch file for cascade-kernel (SF: #00347119)
+    - Revert "UBUNTU: SAUCE: dts: vesta-500: change pad setting to save power"
+
+  [ Ubuntu: 5.4.0-144.161 ]
+
+  * focal/linux: 5.4.0-144.161 -proposed tracker (LP: #2004653)
+  * CVE-2023-0461
+    - SAUCE: Fix inet_csk_listen_start after CVE-2023-0461
+
+  [ Ubuntu: 5.4.0-143.160 ]
+
+  * focal/linux: 5.4.0-143.160 -proposed tracker (LP: #2004385)
+  * NFS: client permission error after adding user to permissible group
+    (LP: #2003053)
+    - NFS: Clear the file access cache upon login
+    - NFS: Judge the file access cache's timestamp in rcu path
+    - NFS: Fix up a sparse warning
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914)
+    - tracing/ring-buffer: Only do full wait when cpu != RING_BUFFER_ALL_CPUS
+    - udf: Discard preallocation before extending file with a hole
+    - udf: Fix preallocation discarding at indirect extent boundary
+    - udf: Do not bother looking for prealloc extents if i_lenExtents matches
+      i_size
+    - udf: Fix extending file within last block
+    - usb: gadget: uvc: Prevent buffer overflow in setup handler
+    - USB: serial: option: add Quectel EM05-G modem
+    - USB: serial: cp210x: add Kamstrup RF sniffer PIDs
+    - USB: serial: f81232: fix division by zero on line-speed change
+    - USB: serial: f81534: fix division by zero on line-speed change
+    - igb: Initialize mailbox message for VF reset
+    - xen-netback: move removal of "hotplug-status" to the right place
+    - HID: ite: Add support for Acer S1002 keyboard-dock
+    - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E
+    - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10
+    - HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk
+    - net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
+    - usb: musb: remove extra check in musb_gadget_vbus_draw
+    - ARM: dts: qcom: apq8064: fix coresight compatible
+    - arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias
+    - drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static
+    - arm: dts: spear600: Fix clcd interrupt
+    - soc: ti: knav_qmss_queue: Use pm_runtime_resume_and_get instead of
+      pm_runtime_get_sync
+    - soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe
+    - soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe
+    - perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init()
+    - perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init()
+    - arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators
+    - arm64: dts: mt2712e: Fix unit address for pinctrl node
+    - arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names
+    - arm64: dts: mt2712-evb: Fix usb vbus regulators unit names
+    - arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name
+    - ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port
+    - ARM: dts: turris-omnia: Add ethernet aliases
+    - ARM: dts: turris-omnia: Add switch port 6 node
+    - arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC
+    - pstore/ram: Fix error return code in ramoops_probe()
+    - ARM: mmp: fix timer_read delay
+    - pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
+    - tpm/tpm_crb: Fix error message in __crb_relinquish_locality()
+    - cpuidle: dt: Return the correct numbers of parsed idle states
+    - alpha: fix syscall entry in !AUDUT_SYSCALL case
+    - PM: hibernate: Fix mistake in kerneldoc comment
+    - fs: don't audit the capability check in simple_xattr_list()
+    - selftests/ftrace: event_triggers: wait longer for test_event_enable
+    - perf: Fix possible memleak in pmu_dev_alloc()
+    - timerqueue: Use rb_entry_safe() in timerqueue_getnext()
+    - proc: fixup uptime selftest
+    - lib/fonts: fix undefined behavior in bit shift for get_default_font
+    - ocfs2: fix memory leak in ocfs2_stack_glue_init()
+    - MIPS: vpe-mt: fix possible memory leak while module exiting
+    - MIPS: vpe-cmp: fix possible memory leak while module exiting
+    - selftests/efivarfs: Add checking of the test return value
+    - PNP: fix name memory leak in pnp_alloc_dev()
+    - perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox()
+    - irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe()
+    - EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper()
+    - nfsd: don't call nfsd_file_put from client states seqfile display
+    - genirq/irqdesc: Don't try to remove non-existing sysfs files
+    - cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()
+    - libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
+    - lib/notifier-error-inject: fix error when writing -errno to debugfs file
+    - docs: fault-injection: fix non-working usage of negative values
+    - debugfs: fix error when writing negative value to atomic_t debugfs file
+    - ocfs2: ocfs2_mount_volume does cleanup job before return error
+    - ocfs2: rewrite error handling of ocfs2_fill_super
+    - ocfs2: fix memory leak in ocfs2_mount_volume()
+    - rapidio: fix possible name leaks when rio_add_device() fails
+    - rapidio: rio: fix possible name leak in rio_register_mport()
+    - clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled
+    - ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
+    - uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
+    - xen/events: only register debug interrupt for 2-level events
+    - x86/xen: Fix memory leak in xen_smp_intr_init{_pv}()
+    - x86/xen: Fix memory leak in xen_init_lock_cpu()
+    - xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource()
+    - PM: runtime: Improve path in rpm_idle() when no callback
+    - PM: runtime: Do not call __rpm_callback() from rpm_idle()
+    - platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]()
+    - MIPS: BCM63xx: Add check for NULL for clk in clk_enable
+    - MIPS: OCTEON: warn only once if deprecated link status is being used
+    - fs: sysv: Fix sysv_nblocks() returns wrong value
+    - rapidio: fix possible UAF when kfifo_alloc() fails
+    - eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD
+    - relay: fix type mismatch when allocating memory in relay_create_buf()
+    - hfs: Fix OOB Write in hfs_asc2mac
+    - rapidio: devices: fix missing put_device in mport_cdev_open
+    - wifi: ath9k: hif_usb: fix memory leak of urbs in
+      ath9k_hif_usb_dealloc_tx_urbs()
+    - wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
+    - wifi: rtl8xxxu: Fix reading the vendor of combo chips
+    - pata_ipx4xx_cf: Fix unsigned comparison with less than zero
+    - media: i2c: ad5820: Fix error path
+    - can: kvaser_usb: do not increase tx statistics when sending error message
+      frames
+    - can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device
+    - can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to
+      {leaf,usbcan}_cmd_can_error_event
+    - can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT
+    - can: kvaser_usb_leaf: Set Warning state even without bus errors
+    - can: kvaser_usb_leaf: Fix improved state not being reported
+    - can: kvaser_usb_leaf: Fix wrong CAN state after stopping
+    - can: kvaser_usb_leaf: Fix bogus restart events
+    - can: kvaser_usb: Add struct kvaser_usb_busparams
+    - can: kvaser_usb: Compare requested bittiming parameters with actual
+      parameters in do_set_{,data}_bittiming
+    - clk: renesas: r9a06g032: Repair grave increment error
+    - spi: Update reference to struct spi_controller
+    - drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure
+    - ima: Rename internal filter rule functions
+    - ima: Fix fall-through warnings for Clang
+    - ima: Handle -ESTALE returned by ima_filter_rule_match()
+    - media: vivid: fix compose size exceed boundary
+    - bpf: propagate precision in ALU/ALU64 operations
+    - mtd: Fix device name leak when register device failed in add_mtd_device()
+    - wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port
+    - media: camss: Clean up received buffers on failed start of streaming
+    - net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write()
+    - rxrpc: Fix ack.bufferSize to be 0 when generating an ack
+    - drm/radeon: Add the missed acpi_put_table() to fix memory leak
+    - drm/mediatek: Modify dpi power on/off sequence.
+    - ASoC: pxa: fix null-pointer dereference in filter()
+    - regulator: core: fix unbalanced of node refcount in regulator_dev_lookup()
+    - amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table()
+    - integrity: Fix memory leakage in keyring allocation error path
+    - ima: Fix misuse of dereference of pointer in template_desc_init_fields()
+    - wifi: ath10k: Fix return value in ath10k_pci_init()
+    - mtd: lpddr2_nvm: Fix possible null-ptr-deref
+    - Input: elants_i2c - properly handle the reset GPIO when power is off
+    - media: solo6x10: fix possible memory leak in solo_sysfs_init()
+    - media: platform: exynos4-is: Fix error handling in fimc_md_init()
+    - media: videobuf-dma-contig: use dma_mmap_coherent
+    - bpf: Move skb->len == 0 checks into __bpf_redirect
+    - HID: hid-sensor-custom: set fixed size for custom attributes
+    - ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT
+    - ALSA: seq: fix undefined behavior in bit shift for
+      SNDRV_SEQ_FILTER_USE_EVENT
+    - regulator: core: use kfree_const() to free space conditionally
+    - clk: rockchip: Fix memory leak in rockchip_clk_register_pll()
+    - bonding: Export skip slave logic to function
+    - bonding: Rename slave_arr to usable_slaves
+    - bonding: fix link recovery in mode 2 when updelay is nonzero
+    - mtd: maps: pxa2xx-flash: fix memory leak in probe
+    - media: imon: fix a race condition in send_packet()
+    - clk: imx8mn: correct the usb1_ctrl parent to be usb_bus
+    - clk: imx: replace osc_hdmi with dummy
+    - pinctrl: pinconf-generic: add missing of_node_put()
+    - media: dvb-core: Fix ignored return value in dvb_register_frontend()
+    - media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()
+    - media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC
+    - drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe()
+    - ASoC: dt-bindings: wcd9335: fix reset line polarity in example
+    - ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd
+    - NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding
+    - NFSv4.2: Fix a memory stomp in decode_attr_security_label
+    - NFSv4.2: Fix initialisation of struct nfs4_label
+    - NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
+    - ALSA: asihpi: fix missing pci_disable_device()
+    - wifi: iwlwifi: mvm: fix double free on tx path.
+    - ASoC: mediatek: mt8173: Enable IRQ when pdata is ready
+    - drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
+    - drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
+    - ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe
+    - netfilter: conntrack: set icmpv6 redirects as RELATED
+    - bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data
+    - bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect
+    - bonding: uninitialized variable in bond_miimon_inspect()
+    - spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE
+    - wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys()
+      fails
+    - regulator: core: fix module refcount leak in set_supply()
+    - clk: qcom: clk-krait: fix wrong div2 functions
+    - hsr: Avoid double remove of a node.
+    - configfs: fix possible memory leak in configfs_create_dir()
+    - regulator: core: fix resource leak in regulator_register()
+    - bpf, sockmap: fix race in sock_map_free()
+    - media: saa7164: fix missing pci_disable_device()
+    - ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
+    - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
+    - SUNRPC: Fix missing release socket in rpc_sockname()
+    - NFSv4.x: Fail client initialisation if state manager thread can't run
+    - mmc: alcor: fix return value check of mmc_add_host()
+    - mmc: moxart: fix return value check of mmc_add_host()
+    - mmc: mxcmmc: fix return value check of mmc_add_host()
+    - mmc: pxamci: fix return value check of mmc_add_host()
+    - mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host()
+    - mmc: toshsd: fix return value check of mmc_add_host()
+    - mmc: vub300: fix return value check of mmc_add_host()
+    - mmc: wmt-sdmmc: fix return value check of mmc_add_host()
+    - mmc: atmel-mci: fix return value check of mmc_add_host()
+    - mmc: omap_hsmmc: fix return value check of mmc_add_host()
+    - mmc: meson-gx: fix return value check of mmc_add_host()
+    - mmc: via-sdmmc: fix return value check of mmc_add_host()
+    - mmc: wbsd: fix return value check of mmc_add_host()
+    - mmc: mmci: fix return value check of mmc_add_host()
+    - media: c8sectpfe: Add of_node_put() when breaking out of loop
+    - media: coda: Add check for dcoda_iram_alloc
+    - media: coda: Add check for kmalloc
+    - clk: samsung: Fix memory leak in _samsung_clk_register_pll()
+    - spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode
+    - wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h
+    - wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware()
+    - blktrace: Fix output non-blktrace event when blk_classic option enabled
+    - clk: socfpga: clk-pll: Remove unused variable 'rc'
+    - clk: socfpga: use clk_hw_register for a5/c5
+    - clk: socfpga: Fix memory leak in socfpga_gate_init()
+    - net: vmw_vsock: vmci: Check memcpy_from_msg()
+    - net: defxx: Fix missing err handling in dfx_init()
+    - net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload()
+    - drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
+    - of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry()
+      and find_dup_cset_prop()
+    - ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: farsync: Fix kmemleak when rmmods farsync
+    - net/tunnel: wait until all sk_user_data reader finish before releasing the
+      sock
+    - net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - hamradio: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave()
+    - net: amd-xgbe: Fix logic around active and passive cables
+    - net: amd-xgbe: Check only the minimum speed for active/passive cables
+    - can: tcan4x5x: Remove invalid write in clear_interrupts
+    - net: lan9303: Fix read error execution path
+    - ntb_netdev: Use dev_kfree_skb_any() in interrupt context
+    - Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave()
+    - Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave()
+    - stmmac: fix potential division by 0
+    - apparmor: fix a memleak in multi_transaction_new()
+    - apparmor: fix lockdep warning when removing a namespace
+    - apparmor: Fix abi check to include v8 abi
+    - apparmor: Use pointer to struct aa_label for lbs_cred
+    - RDMA/core: Fix order of nldev_exit call
+    - f2fs: fix normal discard process
+    - RDMA/siw: Fix immediate work request flush to completion queue
+    - RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port
+    - RDMA/siw: Set defined status for work completion with undefined status
+    - scsi: scsi_debug: Fix a warning in resp_write_scat()
+    - crypto: ccree - swap SHA384 and SHA512 larval hashes at build time
+    - crypto: ccree - Remove debugfs when platform_driver_register failed
+    - PCI: Check for alloc failure in pci_request_irq()
+    - RDMA/hfi: Decrease PCI device reference count in error path
+    - crypto: ccree - Make cc_debugfs_global_fini() available for module init
+      function
+    - RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create
+      failed
+    - scsi: hpsa: Fix possible memory leak in hpsa_init_one()
+    - crypto: tcrypt - Fix multibuffer skcipher speed test mem leak
+    - scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add()
+    - scsi: hpsa: Fix error handling in hpsa_add_sas_host()
+    - scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device()
+    - scsi: fcoe: Fix possible name leak when device_register() fails
+    - scsi: ipr: Fix WARNING in ipr_init()
+    - scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
+    - scsi: snic: Fix possible UAF in snic_tgt_create()
+    - RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps()
+    - f2fs: avoid victim selection from previous victim section
+    - crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()
+    - RDMA/hfi1: Fix error return code in parse_platform_config()
+    - orangefs: Fix sysfs not cleanup when dev init failed
+    - crypto: img-hash - Fix variable dereferenced before check 'hdev->req'
+    - hwrng: amd - Fix PCI device refcount leak
+    - hwrng: geode - Fix PCI device refcount leak
+    - IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces
+    - drivers: dio: fix possible memory leak in dio_init()
+    - tty: serial: tegra: Activate RX DMA transfer by request
+    - serial: tegra: Read DMA status before terminating
+    - class: fix possible memory leak in __class_register()
+    - vfio: platform: Do not pass return buffer to ACPI _RST method
+    - uio: uio_dmem_genirq: Fix missing unlock in irq configuration
+    - uio: uio_dmem_genirq: Fix deadlock between irq config and handling
+    - usb: fotg210-udc: Fix ages old endianness issues
+    - staging: vme_user: Fix possible UAF in tsi148_dma_list_add
+    - usb: typec: Check for ops->exit instead of ops->enter in altmode_exit
+    - usb: typec: tcpci: fix of node refcount leak in tcpci_register_port()
+    - serial: amba-pl011: avoid SBSA UART accessing DMACR register
+    - serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle.
+    - serial: pch: Fix PCI device refcount leak in pch_request_dma()
+    - tty: serial: clean up stop-tx part in altera_uart_tx_chars()
+    - tty: serial: altera_uart_{r,t}x_chars() need only uart_port
+    - serial: altera_uart: fix locking in polling mode
+    - serial: sunsab: Fix error handling in sunsab_init()
+    - test_firmware: fix memory leak in test_firmware_init()
+    - misc: ocxl: fix possible name leak in ocxl_file_register_afu()
+    - misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
+    - misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault
+      and gru_handle_user_call_os
+    - cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter()
+    - cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
+    - counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
+    - usb: roles: fix of node refcount leak in usb_role_switch_is_parent()
+    - usb: gadget: f_hid: optional SETUP/SET_REPORT mode
+    - usb: gadget: f_hid: fix f_hidg lifetime vs cdev
+    - usb: gadget: f_hid: fix refcount leak on error path
+    - drivers: mcb: fix resource leak in mcb_probe()
+    - mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
+    - chardev: fix error handling in cdev_device_add()
+    - i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
+    - staging: rtl8192u: Fix use after free in ieee80211_rx()
+    - staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor()
+    - vme: Fix error not catched in fake_init()
+    - i2c: ismt: Fix an out-of-bounds bug in ismt_access()
+    - usb: storage: Add check for kcalloc
+    - tracing/hist: Fix issue of losting command info in error_log
+    - samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe()
+    - fbdev: ssd1307fb: Drop optional dependency
+    - fbdev: pm2fb: fix missing pci_disable_device()
+    - fbdev: via: Fix error in via_core_init()
+    - fbdev: vermilion: decrease reference count in error path
+    - fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()
+    - HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
+    - HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
+    - power: supply: fix residue sysfs file in error handle route of
+      __power_supply_register()
+    - perf trace: Return error if a system call doesn't exist
+    - perf trace: Separate 'struct syscall_fmt' definition from syscall_fmts
+      variable
+    - perf trace: Factor out the initialization of syscal_arg_fmt->scnprintf
+    - perf trace: Add the syscall_arg_fmt pointer to syscall_arg
+    - perf trace: Allow associating scnprintf routines with well known arg names
+    - perf trace: Add a strtoul() method to 'struct syscall_arg_fmt'
+    - perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number
+    - perf trace: Handle failure when trace point folder is missed
+    - perf symbol: correction while adjusting symbol
+    - HSI: omap_ssi_core: Fix error handling in ssi_init()
+    - power: supply: fix null pointer dereferencing in
+      power_supply_get_battery_info
+    - RDMA/siw: Fix pointer cast warning
+    - include/uapi/linux/swab: Fix potentially missing __always_inline
+    - rtc: snvs: Allow a time difference on clock register read
+    - rtc: pcf85063: Fix reading alarm
+    - iommu/amd: Fix pci device refcount leak in ppr_notifier()
+    - iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()
+    - macintosh: fix possible memory leak in macio_add_one_device()
+    - macintosh/macio-adb: check the return value of ioremap()
+    - powerpc/52xx: Fix a resource leak in an error handling path
+    - cxl: Fix refcount leak in cxl_calc_capp_routing
+    - powerpc/xive: add missing iounmap() in error path in
+      xive_spapr_populate_irq_data()
+    - powerpc/perf: callchain validate kernel stack pointer bounds
+    - powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in
+      of_fsl_spi_probe()
+    - powerpc/hv-gpci: Fix hv_gpci event list
+    - selftests/powerpc: Fix resource leaks
+    - pwm: sifive: Call pwm_sifive_update_clock() while mutex is held
+    - remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev()
+    - remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in
+      adsp_alloc_memory_region()
+    - rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe()
+    - rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe()
+    - nfsd: Define the file access mode enum for tracing
+    - NFSD: Add tracepoints to NFSD's duplicate reply cache
+    - nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure
+    - mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under
+      spin_lock_irqsave()
+    - nfc: pn533: Clear nfc_target before being used
+    - r6040: Fix kmemleak in probe and remove
+    - rtc: mxc_v2: Add missing clk_disable_unprepare()
+    - openvswitch: Fix flow lookup to use unmasked key
+    - skbuff: Account for tail adjustment during pull operations
+    - mailbox: zynq-ipi: fix error handling while device_register() fails
+    - net_sched: reject TCF_EM_SIMPLE case for complex ematch module
+    - rxrpc: Fix missing unlock in rxrpc_do_sendmsg()
+    - myri10ge: Fix an error handling path in myri10ge_probe()
+    - net: stream: purge sk_error_queue in sk_stream_kill_queues()
+    - rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
+    - binfmt_misc: fix shift-out-of-bounds in check_special_flags
+    - fs: jfs: fix shift-out-of-bounds in dbAllocAG
+    - udf: Avoid double brelse() in udf_rename()
+    - fs: jfs: fix shift-out-of-bounds in dbDiscardAG
+    - ACPICA: Fix error code path in acpi_ds_call_control_method()
+    - nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()
+    - acct: fix potential integer overflow in encode_comp_t()
+    - hfs: fix OOB Read in __hfs_brec_find
+    - drm/etnaviv: add missing quirks for GC300
+    - brcmfmac: return error when getting invalid max_flowrings from dongle
+    - wifi: ath9k: verify the expected usb_endpoints are present
+    - wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out
+    - ASoC: codecs: rt298: Add quirk for KBL-R RVP platform
+    - ipmi: fix memleak when unload ipmi driver
+    - bpf: make sure skb->len != 0 when redirecting to a tunneling device
+    - net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()
+    - hamradio: baycom_epp: Fix return type of baycom_send_packet()
+    - wifi: brcmfmac: Fix potential shift-out-of-bounds in
+      brcmf_fw_alloc_request()
+    - igb: Do not free q_vector unless new one was allocated
+    - s390/ctcm: Fix return type of ctc{mp,}m_tx()
+    - s390/netiucv: Fix return type of netiucv_tx()
+    - s390/lcs: Fix return type of lcs_start_xmit()
+    - drm/rockchip: Use drm_mode_copy()
+    - drm/sti: Use drm_mode_copy()
+    - drivers/md/md-bitmap: check the return value of md_bitmap_get_counter()
+    - md/raid1: stop mdx_raid1 thread when raid1 array run failed
+    - net: add atomic_long_t to net_device_stats fields
+    - mrp: introduce active flags to prevent UAF when applicant uninit
+    - ppp: associate skb with a device at tx
+    - bpf: Prevent decl_tag from being referenced in func_proto arg
+    - media: dvb-frontends: fix leak of memory fw
+    - media: dvbdev: adopts refcnt to avoid UAF
+    - media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
+    - blk-mq: fix possible memleak when register 'hctx' failed
+    - regulator: core: fix use_count leakage when handling boot-on
+    - mmc: f-sdh30: Add quirks for broken timeout clock capability
+    - media: si470x: Fix use-after-free in si470x_int_in_callback()
+    - clk: st: Fix memory leak in st_of_quadfs_setup()
+    - hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param()
+    - drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
+    - drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
+    - orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string()
+    - orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init()
+    - ALSA/ASoC: hda: move/rename snd_hdac_ext_stop_streams to hdac_stream.c
+    - ALSA: hda: add snd_hdac_stop_streams() helper
+    - ASoC: Intel: Skylake: Fix driver hang during shutdown
+    - ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in
+      mt8173_rt5650_rt5514_dev_probe()
+    - ASoC: audio-graph-card: fix refcount leak of cpu_ep in
+      __graph_for_each_link()
+    - ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in
+      rockchip_pdm_runtime_resume()
+    - ASoC: wm8994: Fix potential deadlock
+    - ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in
+      rk_spdif_runtime_resume()
+    - ASoC: rt5670: Remove unbalanced pm_runtime_put()
+    - pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion
+    - pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES
+    - ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
+    - ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list
+    - usb: dwc3: core: defer probe on ulpi_read_id timeout
+    - HID: wacom: Ensure bootloader PID is usable in hidraw mode
+    - reiserfs: Add missing calls to reiserfs_security_free()
+    - iio: adc: ad_sigma_delta: do not use internal iio_dev lock
+    - iio: adc128s052: add proper .data members in adc128_of_match table
+    - regulator: core: fix deadlock on regulator enable
+    - gcov: add support for checksum field
+    - media: dvbdev: fix build warning due to comments
+    - media: dvbdev: fix refcnt bug
+    - cifs: fix oops during encryption
+    - nvme-pci: fix doorbell buffer value endianness
+    - ata: ahci: Fix PCS quirk application for suspend
+    - nvme: fix the NVME_CMD_EFFECTS_CSE_MASK definition
+    - objtool: Fix SEGFAULT
+    - powerpc/rtas: avoid device tree lookups in rtas_os_term()
+    - powerpc/rtas: avoid scheduling in rtas_os_term()
+    - HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint
+    - HID: plantronics: Additional PIDs for double volume key presses quirk
+    - hfsplus: fix bug causing custom uid and gid being unable to be assigned with
+      mount
+    - ovl: Use ovl mounter's fsuid and fsgid in ovl_link()
+    - ALSA: line6: correct midi status byte when receiving data from podxt
+    - ALSA: line6: fix stack overflow in line6_midi_transmit
+    - pnode: terminate at peers of source
+    - md: fix a crash in mempool_free
+    - mm, compaction: fix fast_isolate_around() to stay within boundaries
+    - f2fs: should put a page when checking the summary info
+    - mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING
+    - tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak
+    - tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak
+    - SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails
+    - net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO
+    - net/af_packet: make sure to pull mac header
+    - media: stv0288: use explicitly signed char
+    - soc: qcom: Select REMAP_MMIO for LLCC driver
+    - kest.pl: Fix grub2 menu handling for rebooting
+    - ktest.pl minconfig: Unset configs instead of just removing them
+    - mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K
+    - btrfs: fix resolving backrefs for inline extent followed by prealloc
+    - ARM: ux500: do not directly dereference __iomem
+    - arm64: dts: qcom: sdm850-lenovo-yoga-c630: correct I2C12 pins drive strength
+    - selftests: Use optional USERCFLAGS and USERLDFLAGS
+    - cpufreq: Init completion before kobject_init_and_add()
+    - binfmt: Move install_exec_creds after setup_new_exec to match binfmt_elf
+    - binfmt: Fix error return code in load_elf_fdpic_binary()
+    - dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
+    - dm thin: Fix ABBA deadlock between shrink_slab and dm_pool_abort_metadata
+    - dm thin: Use last transaction's pmd->root when commit failed
+    - dm thin: Fix UAF in run_timer_softirq()
+    - dm integrity: Fix UAF in dm_integrity_dtr()
+    - dm clone: Fix UAF in clone_dtr()
+    - dm cache: Fix UAF in destroy()
+    - dm cache: set needs_check flag after aborting metadata
+    - tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx'
+    - x86/microcode/intel: Do not retry microcode reloading on the APs
+    - tracing/hist: Fix wrong return value in parse_action_params()
+    - tracing: Fix infinite loop in tracing_read_pipe on overflowed
+      print_trace_line
+    - ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod
+    - media: dvb-core: Fix double free in dvb_register_device()
+    - cifs: fix confusing debug message
+    - cifs: fix missing display of three mount options
+    - md/bitmap: Fix bitmap chunk size overflow issues
+    - efi: Add iMac Pro 2017 to uefi skip cert quirk
+    - ipmi: fix long wait in unload when IPMI disconnect
+    - mtd: spi-nor: Check for zero erase size in spi_nor_find_best_erase_type()
+    - ima: Fix a potential NULL pointer access in ima_restore_measurement_list
+    - ipmi: fix use after free in _ipmi_destroy_user()
+    - PCI: Fix pci_device_is_present() for VFs by checking PF
+    - PCI/sysfs: Fix double free in error path
+    - crypto: n2 - add missing hash statesize
+    - iommu/amd: Fix ivrs_acpihid cmdline parsing code
+    - parisc: led: Fix potential null-ptr-deref in start_task()
+    - device_cgroup: Roll back to original exceptions after copy failure
+    - drm/connector: send hotplug uevent on connector cleanup
+    - drm/vmwgfx: Validate the box size for the snooped cursor
+    - ext4: add inode table check in __ext4_get_inode_loc to aovid possible
+      infinite loop
+    - ext4: fix undefined behavior in bit shift for ext4_check_flag_values
+    - ext4: add EXT4_IGET_BAD flag to prevent unexpected bad inode
+    - ext4: add helper to check quota inums
+    - ext4: fix reserved cluster accounting in __es_remove_extent()
+    - ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
+    - ext4: init quota for 'old.inode' in 'ext4_rename'
+    - ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline
+    - ext4: fix corruption when online resizing a 1K bigalloc fs
+    - ext4: fix error code return to user-space in ext4_get_branch()
+    - ext4: avoid BUG_ON when creating xattrs
+    - ext4: fix inode leak in ext4_xattr_inode_create() on an error path
+    - ext4: initialize quota before expanding inode in setproject ioctl
+    - ext4: avoid unaccounted block allocation when expanding inode
+    - ext4: allocate extended attribute value in vmalloc area
+    - btrfs: replace strncpy() with strscpy()
+    - PM/devfreq: governor: Add a private governor_data for governor
+    - media: s5p-mfc: Fix to handle reference queue during finishing
+    - media: s5p-mfc: Clear workbit to handle error condition
+    - media: s5p-mfc: Fix in register read and write for H264
+    - dm thin: resume even if in FAIL mode
+    - perf probe: Use dwarf_attr_integrate as generic DWARF attr accessor
+    - perf probe: Fix to get the DW_AT_decl_file and DW_AT_call_file as unsinged
+      data
+    - KVM: x86: optimize more exit handlers in vmx.c
+    - KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers
+    - KVM: VMX: Rename INTERRUPT_PENDING to INTERRUPT_WINDOW
+    - KVM: VMX: Rename NMI_PENDING to NMI_WINDOW
+    - KVM: VMX: Fix the spelling of CPU_BASED_USE_TSC_OFFSETTING
+    - KVM: nVMX: Properly expose ENABLE_USR_WAIT_PAUSE control to L1
+    - ravb: Fix "failed to switch device to config mode" message during unbind
+    - ext4: goto right label 'failed_mount3a'
+    - ext4: correct inconsistent error msg in nojournal mode
+    - mm/highmem: Lift memcpy_[to|from]_page to core
+    - ext4: use memcpy_to_page() in pagecache_write()
+    - fs: ext4: initialize fsdata in pagecache_write()
+    - ext4: use kmemdup() to replace kmalloc + memcpy
+    - mbcache: don't reclaim used entries
+    - mbcache: add functions to delete entry if unused
+    - ext4: remove EA inode entry from mbcache on inode eviction
+    - ext4: unindent codeblock in ext4_xattr_block_set()
+    - ext4: fix race when reusing xattr blocks
+    - mbcache: automatically delete entries from cache on freeing
+    - ext4: fix deadlock due to mbcache entry corruption
+    - SUNRPC: ensure the matching upcall is in-flight upon downcall
+    - bpf: pull before calling skb_postpull_rcsum()
+    - nfsd: shut down the NFSv4 state objects before the filecache
+    - net: hns3: add interrupts re-initialization while doing VF FLR
+    - net: sched: fix memory leak in tcindex_set_parms
+    - qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure
+    - nfc: Fix potential resource leaks
+    - vhost: fix range used in translate_desc()
+    - net: amd-xgbe: add missed tasklet_kill
+    - net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe
+    - RDMA/uverbs: Silence shiftTooManyBitsSigned warning
+    - RDMA/mlx5: Fix validation of max_rd_atomic caps for DC
+    - net: sched: atm: dont intepret cls results when asked to drop
+    - net: sched: cbq: dont intepret cls results when asked to drop
+    - perf tools: Fix resources leak in perf_data__open_dir()
+    - drivers/net/bonding/bond_3ad: return when there's no aggregator
+    - usb: rndis_host: Secure rndis_query check against int overflow
+    - drm/i915: unpin on error in intel_vgpu_shadow_mm_pin()
+    - caif: fix memory leak in cfctrl_linkup_request()
+    - udf: Fix extension of the last extent in the file
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet
+    - x86/bugs: Flush IBP in ib_prctl_set()
+    - nfsd: fix handling of readdir in v4root vs. mount upcall timeout
+    - riscv: uaccess: fix type of 0 variable on error in get_user()
+    - ext4: don't allow journal inode to have encrypt flag
+    - hfs/hfsplus: use WARN_ON for sanity check
+    - hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling
+    - mbcache: Avoid nesting of cache->c_list_lock under bit locks
+    - parisc: Align parisc MADV_XXX constants with all other architectures
+    - selftests: Fix kselftest O=objdir build from cluttering top level objdir
+    - selftests: set the BUILD variable to absolute path
+    - driver core: Fix bus_type.match() error handling in __driver_attach()
+    - net: sched: disallow noqueue for qdisc classes
+    - KVM: arm64: Fix S1PTW handling on RO memslots
+    - efi: tpm: Avoid READ_ONCE() for accessing the event log
+    - docs: Fix the docs build with Sphinx 6.0
+    - perf auxtrace: Fix address filter duplicate symbol selection
+    - s390/kexec: fix ipl report address for kdump
+    - s390/percpu: add READ_ONCE() to arch_this_cpu_to_op_simple()
+    - net/ulp: prevent ULP without clone op from entering the LISTEN status
+    - ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list
+    - cifs: Fix uninitialized memory read for smb311 posix symlink create
+    - drm/msm/adreno: Make adreno quirks not overwrite each other
+    - platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during
+      probe
+    - ixgbe: fix pci device refcount leak
+    - ipv6: raw: Deduct extension header length in rawv6_push_pending_frames
+    - wifi: wilc1000: sdio: fix module autoloading
+    - usb: ulpi: defer ulpi_register on ulpi_read_id timeout
+    - jbd2: use the correct print format
+    - quota: Factor out setup of quota inode
+    - ext4: fix bug_on in __es_tree_search caused by bad quota inode
+    - ext4: lost matching-pair of trace in ext4_truncate
+    - ext4: fix use-after-free in ext4_orphan_cleanup
+    - ext4: fix uninititialized value in 'ext4_evict_inode'
+    - netfilter: ipset: Fix overflow before widen in the bitmap_ip_create()
+      function.
+    - powerpc/imc-pmu: Fix use of mutex in IRQs disabled section
+    - x86/boot: Avoid using Intel mnemonics in AT&T syntax asm
+    - EDAC/device: Fix period calculation in edac_device_reset_delay_period()
+    - regulator: da9211: Use irq handler when ready
+    - tipc: improve throughput between nodes in netns
+    - tipc: eliminate checking netns if node established
+    - tipc: fix unexpected link reset due to discovery messages
+    - hvc/xen: lock console list traversal
+    - nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
+    - net/sched: act_mpls: Fix warning during failed attribute validation
+    - net/mlx5: Rename ptp clock info
+    - net/mlx5: Fix ptp max frequency adjustment range
+    - iommu/mediatek-v1: Add error handle for mtk_iommu_probe
+    - iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe()
+    - x86/resctrl: Use task_curr() instead of task_struct->on_cpu to prevent
+      unnecessary IPI
+    - x86/resctrl: Fix task CLOSID/RMID update race
+    - drm/virtio: Fix GEM handle creation UAF
+    - arm64: atomics: format whitespace consistently
+    - arm64: atomics: remove LL/SC trampolines
+    - arm64: cmpxchg_double*: hazard against entire exchange variable
+    - efi: fix NULL-deref in init error path
+    - mm: Always release pages to the buddy allocator in memblock_free_late().
+    - Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout"
+    - tipc: fix use-after-free in tipc_disc_rcv()
+    - tty: serial: tegra: Handle RX transfer in PIO mode if DMA wasn't started
+    - tipc: Add a missing case of TIPC_DIRECT_MSG type
+    - ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown
+    - tipc: call tipc_lxc_xmit without holding node_read_lock
+    - Linux 5.4.229
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914) //
+    CVE-2023-0266 was assigned for this issue.
+    - ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
+  * Focal update: v5.4.229 upstream stable release (LP: #2003914) //
+    CVE-2022-41218 is assigned to those bugs above.
+    - media: dvb-core: Fix UAF due to refcount races at releasing
+  * Focal update: v5.4.228 upstream stable release (LP: #2003904)
+    - x86/smpboot: Move rcu_cpu_starting() earlier
+    - mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page
+    - block: unhash blkdev part inode when the part is deleted
+    - ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
+    - pinctrl: meditatek: Startup with the IRQs disabled
+    - can: sja1000: fix size of OCR_MODE_MASK define
+    - can: mcba_usb: Fix termination command argument
+    - ASoC: ops: Correct bounds check for second channel on SX controls
+    - Linux 5.4.228
+  * Focal update: v5.4.227 upstream stable release (LP: #2003901)
+    - arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4
+      series
+    - arm: dts: rockchip: fix node name for hym8563 rtc
+    - ARM: dts: rockchip: fix ir-receiver node names
+    - ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name
+    - ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels
+    - ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation
+    - ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188
+    - 9p/fd: Use P9_HDRSZ for header size
+    - regulator: slg51000: Wait after asserting CS pin
+    - ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event
+    - btrfs: send: avoid unaligned encoded writes when attempting to clone range
+    - ASoC: soc-pcm: Add NULL check in BE reparenting
+    - regulator: twl6030: fix get status of twl6032 regulators
+    - fbcon: Use kzalloc() in fbcon_prepare_logo()
+    - 9p/xen: check logical size for buffer size
+    - net: usb: qmi_wwan: add u-blox 0x1342 composition
+    - mm/khugepaged: take the right locks for page table retraction
+    - mm/khugepaged: fix GUP-fast interaction by sending IPI
+    - mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
+    - xen/netback: do some code cleanup
+    - xen/netback: don't call kfree_skb() with interrupts disabled
+    - Revert "net: dsa: b53: Fix valid setting for MDB entries"
+    - media: v4l2-dv-timings.c: fix too strict blanking sanity checks
+    - memcg: fix possible use-after-free in memcg_write_event_control()
+    - mm/gup: fix gup_pud_range() for dax
+    - KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field
+    - drm/shmem-helper: Remove errant put in error path
+    - HID: usbhid: Add ALWAYS_POLL quirk for some mice
+    - HID: hid-lg4ff: Add check for empty lbuf
+    - HID: core: fix shift-out-of-bounds in hid_report_raw_event
+    - can: af_can: fix NULL pointer dereference in can_rcv_filter
+    - ieee802154: cc2520: Fix error return code in cc2520_hw_init()
+    - ca8210: Fix crash by zero initializing data
+    - drm/bridge: ti-sn65dsi86: Fix output polarity setting bug
+    - gpio: amd8111: Fix PCI device reference count leak
+    - e1000e: Fix TX dispatch condition
+    - igb: Allocate MSI-X vector when testing
+    - af_unix: Get user_ns from in_skb in unix_diag_get_exact().
+    - Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn()
+    - Bluetooth: Fix not cleanup led when bt_init fails
+    - net: dsa: ksz: Check return value
+    - selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload
+    - mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
+    - net: encx24j600: Add parentheses to fix precedence
+    - net: encx24j600: Fix invalid logic in reading of MISTAT register
+    - xen-netfront: Fix NULL sring after live migration
+    - net: mvneta: Prevent out of bounds read in mvneta_config_rss()
+    - i40e: Fix not setting default xps_cpus after reset
+    - i40e: Fix for VF MAC address 0
+    - i40e: Disallow ip4 and ip6 l4_4_bytes
+    - NFC: nci: Bounds check struct nfc_target arrays
+    - nvme initialize core quirks before calling nvme_init_subsystem
+    - net: stmmac: fix "snps,axi-config" node property parsing
+    - net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq
+    - net: hisilicon: Fix potential use-after-free in hisi_femac_rx()
+    - net: hisilicon: Fix potential use-after-free in hix5hd2_rx()
+    - tipc: Fix potential OOB in tipc_link_proto_rcv()
+    - ipv4: Fix incorrect route flushing when source address is deleted
+    - ipv4: Fix incorrect route flushing when table ID 0 is used
+    - ethernet: aeroflex: fix potential skb leak in greth_init_rings()
+    - net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq()
+    - ipv6: avoid use-after-free in ip6_fragment()
+    - net: mvneta: Fix an out of bounds check
+    - can: esd_usb: Allow REC and TEC to return to zero
+    - Linux 5.4.227
+  * 5.15.0-58.64 breaks xen bridge networking (pvh domU) (LP: #2002889) // Focal
+    update: v5.4.227 upstream stable release (LP: #2003901)
+    - xen/netback: fix build warning
+  * Focal update: v5.4.226 upstream stable release (LP: #2003896)
+    - wifi: mac80211: fix memory free error when registering wiphy fail
+    - wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support
+    - audit: fix undefined behavior in bit shift for AUDIT_BIT
+    - wifi: mac80211: Fix ack frame idr leak when mesh has no route
+    - spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run
+    - drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017)
+    - block, bfq: fix null pointer dereference in bfq_bio_bfqg()
+    - arm64/syscall: Include asm/ptrace.h in syscall_wrapper header.
+    - RISC-V: vdso: Do not add missing symbols to version section in linker script
+    - MIPS: pic32: treat port as signed integer
+    - af_key: Fix send_acquire race with pfkey_register
+    - ARM: dts: am335x-pcm-953: Define fixed regulators in root node
+    - ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove
+    - regulator: core: fix kobject release warning and memory leak in
+      regulator_register()
+    - regulator: core: fix UAF in destroy_regulator()
+    - bus: sunxi-rsb: Support atomic transfers
+    - tee: optee: fix possible memory leak in optee_register_device()
+    - ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
+    - net: liquidio: simplify if expression
+    - nfc/nci: fix race with opening and closing
+    - net: pch_gbe: fix potential memleak in pch_gbe_tx_queue()
+    - 9p/fd: fix issue of list_del corruption in p9_fd_cancel()
+    - ARM: mxs: fix memory leak in mxs_machine_init()
+    - net/mlx4: Check retval of mlx4_bitmap_init
+    - net/qla3xxx: fix potential memleak in ql3xxx_send()
+    - net: pch_gbe: fix pci device refcount leak while module exiting
+    - nfp: add port from netdev validation for EEPROM access
+    - Drivers: hv: vmbus: fix double free in the error path of
+      vmbus_add_channel_work()
+    - Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register()
+    - net/mlx5: Fix FW tracer timestamp calculation
+    - tipc: set con sock in tipc_conn_alloc
+    - tipc: add an extra conn_get in tipc_conn_alloc
+    - tipc: check skb_linearize() return value in tipc_disc_rcv()
+    - xfrm: Fix ignored return value in xfrm6_init()
+    - NFC: nci: fix memory leak in nci_rx_data_packet()
+    - regulator: twl6030: re-add TWL6032_SUBCLASS
+    - bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending()
+    - dccp/tcp: Reset saddr on failure after inet6?_hash_connect().
+    - s390/dasd: fix no record found for raw_track_access
+    - nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
+    - nfc: st-nci: fix memory leaks in EVT_TRANSACTION
+    - net: thunderx: Fix the ACPI memory leak
+    - s390/crashdump: fix TOD programmable field size
+    - lib/vdso: use "grep -E" instead of "egrep"
+    - usb: dwc3: exynos: Fix remove() function
+    - arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency
+    - iio: light: apds9960: fix wrong register for gesture gain
+    - iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails
+    - init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash
+    - nios2: add FORCE for vmlinuz.gz
+    - iio: ms5611: Simplify IO callback parameters
+    - iio: pressure: ms5611: fixed value compensation bug
+    - ceph: do not update snapshot context when there is no new snapshot
+    - ceph: avoid putting the realm twice when decoding snaps fails
+    - firmware: google: Release devices before unregistering the bus
+    - firmware: coreboot: Register bus in module init
+    - nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty
+    - gcov: clang: fix the buffer overflow issue
+    - Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode
+    - ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01
+    - serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios()
+    - xen/platform-pci: add missing free_irq() in error path
+    - platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr()
+    - platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017)
+    - platform/x86: hp-wmi: Ignore Smart Experience App event
+    - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER
+    - tcp: configurable source port perturb table size
+    - net: usb: qmi_wwan: add Telit 0x103a composition
+    - dm integrity: flush the journal on suspend
+    - binder: avoid potential data leakage when copying txn
+    - binder: read pre-translated fds from sender buffer
+    - binder: defer copies of pre-patched txn data
+    - binder: fix pointer cast warning
+    - binder: Address corner cases in deferred copy and fixup
+    - binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
+    - btrfs: free btrfs_path before copying root refs to userspace
+    - btrfs: free btrfs_path before copying fspath to userspace
+    - btrfs: free btrfs_path before copying subvol info to userspace
+    - btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs()
+    - drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN
+    - drm/amdgpu: always register an MMU notifier for userptr
+    - fuse: lock inode unconditionally in fuse_fallocate()
+    - btrfs: free btrfs_path before copying inodes to userspace
+    - spi: spi-imx: Fix spi_bus_clk if requested clock is higher than input clock
+    - btrfs: move QUOTA_ENABLED check to rescan_should_stop from
+      btrfs_qgroup_rescan_worker
+    - drm/amdgpu: update drm_display_info correctly when the edid is read
+    - drm/amdgpu: Partially revert "drm/amdgpu: update drm_display_info correctly
+      when the edid is read"
+    - btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit()
+    - iio: health: afe4403: Fix oob read in afe4403_read_raw
+    - iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw
+    - iio: light: rpr0521: add missing Kconfig dependencies
+    - scripts/faddr2line: Fix regression in name resolution on ppc64le
+    - hwmon: (i5500_temp) fix missing pci_disable_device()
+    - hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails
+    - of: property: decrement node refcount in of_fwnode_get_reference_args()
+    - net/mlx5: Fix uninitialized variable bug in outlen_write()
+    - net/mlx5e: Fix use-after-free when reverting termination table
+    - can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev()
+    - can: cc770: cc770_isa_probe(): add missing free_cc770dev()
+    - qlcnic: fix sleep-in-atomic-context bugs caused by msleep
+    - wifi: cfg80211: fix buffer overflow in elem comparison
+    - net: phy: fix null-ptr-deref while probe() failed
+    - net: net_netdev: Fix error handling in ntb_netdev_init_module()
+    - net/9p: Fix a potential socket leak in p9_socket_open
+    - net: ethernet: nixge: fix NULL dereference
+    - dsa: lan9303: Correct stat name
+    - net: hsr: Fix potential use-after-free
+    - afs: Fix fileserver probe RTT handling
+    - net: tun: Fix use-after-free in tun_detach()
+    - packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE
+    - sctp: fix memory leak in sctp_stream_outq_migrate()
+    - net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed
+    - hwmon: (coretemp) Check for null before removing sysfs attrs
+    - hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
+    - net/mlx5: DR, Fix uninitialized var warning
+    - error-injection: Add prompt for function error injection
+    - tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
+    - nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
+    - x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3
+    - pinctrl: intel: Save and restore pins in "direct IRQ" mode
+    - mmc: mmc_test: Fix removal of debugfs file
+    - mmc: core: Fix ambiguous TRIM and DISCARD arg
+    - mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check
+    - mmc: sdhci-sprd: Fix no reset data and command after voltage switch
+    - tracing: Free buffers when a used dynamic event is removed
+    - arm64: Fix panic() when Spectre-v2 causes Spectre-BHB to re-allocate KVM
+      vectors
+    - arm64: errata: Fix KVM Spectre-v2 mitigation selection for Cortex-A57/A72
+    - mm: Fix '.data.once' orphan section warning
+    - ASoC: ops: Fix bounds check for _sx controls
+    - pinctrl: single: Fix potential division by zero
+    - iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init()
+    - parisc: Increase size of gcc stack frame check
+    - xtensa: increase size of gcc stack frame check
+    - parisc: Increase FRAME_WARN to 2048 bytes on parisc
+    - Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is
+      enabled
+    - selftests: net: add delete nexthop route warning test
+    - selftests: net: fix nexthop warning cleanup double ip typo
+    - ipv4: Handle attempt to delete multipath route when fib_info contains an nh
+      reference
+    - ipv4: Fix route deletion when nexthop info is not specified
+    - tracing/ring-buffer: Have polling block on watermark
+    - nvme: restrict management ioctls to admin
+    - nvme: ensure subsystem reset is single threaded
+    - x86/tsx: Add a feature bit for TSX control MSR support
+    - x86/pm: Add enumeration check before spec MSRs save/restore setup
+    - x86/ioremap: Fix page aligned size calculation in __ioremap_caller()
+    - Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend"
+    - char: tpm: Protect tpm_pm_suspend with locks
+    - mmc: sdhci: use FIELD_GET for preset value bit masks
+    - mmc: sdhci: Fix voltage switch delay
+    - proc: avoid integer type confusion in get_proc_long
+    - proc: proc_skip_spaces() shouldn't think it is working on C strings
+    - v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails
+    - ipc/sem: Fix dangling sem_array access in semtimedop race
+    - Linux 5.4.226
+  * CVE-2022-4139
+    - drm/i915: fix TLB invalidation for Gen12 video and compute engines
+  * Focal update: v5.4.225 upstream stable release (LP: #2002347)
+    - xfs: preserve rmapbt swapext block reservation from freed blocks
+    - xfs: rename xfs_bmap_is_real_extent to is_written_extent
+    - xfs: redesign the reflink remap loop to fix blkres depletion crash
+    - xfs: use MMAPLOCK around filemap_map_pages()
+    - xfs: preserve inode versioning across remounts
+    - xfs: drain the buf delwri queue before xfsaild idles
+    - phy: stm32: fix an error code in probe
+    - wifi: cfg80211: silence a sparse RCU warning
+    - wifi: cfg80211: fix memory leak in query_regdb_file()
+    - bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues
+    - HID: hyperv: fix possible memory leak in mousevsc_probe()
+    - net: gso: fix panic on frag_list with mixed head alloc types
+    - net: tun: Fix memory leaks of napi_get_frags
+    - bnxt_en: Fix possible crash in bnxt_hwrm_set_coal()
+    - bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer
+    - net: fman: Unregister ethernet device on removal
+    - capabilities: fix undefined behavior in bit shift for CAP_TO_MASK
+    - net: lapbether: fix issue of dev reference count leakage in
+      lapbeth_device_event()
+    - hamradio: fix issue of dev reference count leakage in bpq_device_event()
+    - drm/vc4: Fix missing platform_unregister_drivers() call in
+      vc4_drm_register()
+    - ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network
+    - can: af_can: fix NULL pointer dereference in can_rx_register()
+    - tipc: fix the msg->req tlv len check in
+      tipc_nl_compat_name_table_dump_header
+    - dmaengine: pxa_dma: use platform_get_irq_optional
+    - dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
+    - drivers: net: xgene: disable napi when register irq failed in
+      xgene_enet_open()
+    - perf stat: Fix printing os->prefix in CSV metrics output
+    - net: nixge: disable napi when enable interrupts failed in nixge_open()
+    - net/mlx5: Allow async trigger completion execution on single CPU systems
+    - net: cpsw: disable napi in cpsw_ndo_open()
+    - net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
+    - cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in
+      cxgb4vf_open()
+    - ethernet: s2io: disable napi when start nic failed in s2io_card_up()
+    - net: mv643xx_eth: disable napi when init rxq or txq failed in
+      mv643xx_eth_open()
+    - ethernet: tundra: free irq when alloc ring failed in tsi108_open()
+    - net: macvlan: fix memory leaks of macvlan_common_newlink
+    - riscv: process: fix kernel info leakage
+    - arm64: efi: Fix handling of misaligned runtime regions and drop warning
+    - MIPS: jump_label: Fix compat branch range check
+    - mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
+    - mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
+    - mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
+    - ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
+    - ALSA: hda: fix potential memleak in 'add_widget_node'
+    - ALSA: usb-audio: Add quirk entry for M-Audio Micro
+    - ALSA: usb-audio: Add DSD support for Accuphase DAC-60
+    - vmlinux.lds.h: Fix placement of '.data..decrypted' section
+    - nilfs2: fix deadlock in nilfs_count_free_blocks()
+    - nilfs2: fix use-after-free bug of ns_writer on remount
+    - drm/i915/dmabuf: fix sg_table handling in map_dma_buf
+    - btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()
+    - udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
+    - can: j1939: j1939_send_one(): fix missing CAN header initialization
+    - cert host tools: Stop complaining about deprecated OpenSSL functions
+    - dmaengine: at_hdmac: Fix at_lli struct definition
+    - dmaengine: at_hdmac: Don't start transactions at tx_submit level
+    - dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
+    - dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
+    - dmaengine: at_hdmac: Fix impossible condition
+    - dmaengine: at_hdmac: Check return code of dma_async_device_register
+    - net: tun: call napi_schedule_prep() to ensure we own a napi
+    - x86/cpu: Restore AMD's DE_CFG MSR after resume
+    - ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in
+      wm5102_probe"
+    - ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in
+      wm5110_probe"
+    - ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in
+      wm8997_probe"
+    - ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK
+    - spi: intel: Fix the offset to get the 64K erase opcode
+    - ASoC: codecs: jz4725b: add missed Line In power control bit
+    - ASoC: codecs: jz4725b: fix reported volume for Master ctl
+    - ASoC: codecs: jz4725b: use right control for Capture Volume
+    - ASoC: codecs: jz4725b: fix capture selector naming
+    - selftests/futex: fix build for clang
+    - selftests/intel_pstate: fix build for ARCH=x86_64
+    - NFSv4: Retry LOCK on OLD_STATEID during delegation return
+    - i2c: i801: add lis3lv02d's I2C address for Vostro 5568
+    - drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
+    - btrfs: remove pointless and double ulist frees in error paths of qgroup
+      tests
+    - ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" ->
+      "Route"
+    - spi: stm32: Print summary 'callbacks suppressed' message
+    - ASoC: core: Fix use-after-free in snd_soc_exit()
+    - serial: 8250_omap: remove wait loop from Errata i202 workaround
+    - serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove()
+    - serial: 8250: omap: Flush PM QOS work on remove
+    - serial: imx: Add missing .thaw_noirq hook
+    - tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send
+    - ASoC: soc-utils: Remove __exit for snd_soc_util_exit()
+    - block: sed-opal: kmalloc the cmd/resp buffers
+    - siox: fix possible memory leak in siox_device_add()
+    - parport_pc: Avoid FIFO port location truncation
+    - pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map
+    - arm64: dts: imx8mm: Fix NAND controller size-cells
+    - arm64: dts: imx8mn: Fix NAND controller size-cells
+    - ata: libata-transport: fix double ata_host_put() in ata_tport_add()
+    - net: bgmac: Drop free_netdev() from bgmac_enet_remove()
+    - mISDN: fix possible memory leak in mISDN_dsp_element_register()
+    - net: liquidio: release resources when liquidio driver open failed
+    - mISDN: fix misuse of put_device() in mISDN_register_device()
+    - net: macvlan: Use built-in RCU list checking
+    - net: caif: fix double disconnect client in chnl_net_open()
+    - bnxt_en: Remove debugfs when pci_register_driver failed
+    - xen/pcpu: fix possible memory leak in register_pcpu()
+    - drbd: use after free in drbd_create_device()
+    - platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when
+      virtualized
+    - net/x25: Fix skb leak in x25_lapb_receive_frame()
+    - cifs: Fix wrong return value checking when GETFLAGS
+    - net: thunderbolt: Fix error handling in tbnet_init()
+    - cifs: add check for returning value of SMB2_set_info_init
+    - ftrace: Fix the possible incorrect kernel message
+    - ftrace: Optimize the allocation for mcount entries
+    - ftrace: Fix null pointer dereference in ftrace_add_mod()
+    - ring_buffer: Do not deactivate non-existant pages
+    - ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open()
+    - Revert "usb: dwc3: disable USB core PHY management"
+    - slimbus: stream: correct presence rate frequencies
+    - speakup: fix a segfault caused by switching consoles
+    - USB: serial: option: add Sierra Wireless EM9191
+    - USB: serial: option: remove old LARA-R6 PID
+    - USB: serial: option: add u-blox LARA-R6 00B modem
+    - USB: serial: option: add u-blox LARA-L6 modem
+    - USB: serial: option: add Fibocom FM160 0x0111 composition
+    - usb: add NO_LPM quirk for Realforce 87U Keyboard
+    - usb: chipidea: fix deadlock in ci_otg_del_timer
+    - iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
+    - iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init()
+    - iio: pressure: ms5611: changed hardcoded SPI speed to value limited
+    - dm ioctl: fix misbehavior if list_versions races with module loading
+    - serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs
+    - serial: 8250_lpss: Configure DMA also w/o DMA filter
+    - Input: iforce - invert valid length check when fetching device IDs
+    - scsi: zfcp: Fix double free of FSF request when qdio send fails
+    - mmc: core: properly select voltage range without power cycle
+    - mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce
+      timeout
+    - mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()
+    - docs: update mediator contact information in CoC doc
+    - misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
+    - serial: 8250: Flush DMA Rx on RLSI
+    - ring-buffer: Include dropped pages in counting dirty patches
+    - scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus()
+    - kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case
+    - Input: i8042 - fix leaking of platform device on module removal
+    - macvlan: enforce a consistent minimal mtu
+    - tcp: cdg: allow tcp_cdg_release() to be called multiple times
+    - kcm: avoid potential race in kcm_tx_work
+    - bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb()
+    - kcm: close race conditions on sk_receive_queue
+    - 9p: trans_fd/p9_conn_cancel: drop client lock earlier
+    - gfs2: Check sb_bsize_shift after reading superblock
+    - gfs2: Switch from strlcpy to strscpy
+    - 9p/trans_fd: always use O_NONBLOCK read/write
+    - mm: fs: initialize fsdata passed to write_begin/write_end interface
+    - ntfs: fix use-after-free in ntfs_attr_find()
+    - ntfs: fix out-of-bounds read in ntfs_attr_find()
+    - ntfs: check overflow when iterating ATTR_RECORDs
+    - Linux 5.4.225
+  * CVE-2022-47520
+    - wifi: wilc1000: validate pairwise and authentication suite offsets
+  * CVE-2022-3545
+    - nfp: fix use-after-free in area_cache_get()
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Fri, 10 Mar 2023 12:24:57 +0800
+
+linux-ein (5.4.0-1033.39) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1033.39 -proposed tracker (LP: #2007484)
+
+  * Focal update: v5.4.221 upstream stable release (LP: #1997993)
+    - [Config] updateconfigs for ARM64_ERRATUM_1742098
+
+  * [UC20][Amgis-V5] AVR watchdog on reboot (LP#1999760)
+    - SAUCE: dts: amgis: Remove safe and v2 device tree files
+    - SAUCE: amgis: dts: Default to camera enable
+    - SAUCE: amgis: dts: v3 and v4 cleanup
+    - SAUCE: amgis: dts: v5 hardware GPIO configuration
+
+  * [UC20][Amgis-V5] Enabling OPTEE based FDE (LP #1995129)
+    - SAUCE: dts: amgis: Enable optee node
+
+  * [UC20][Amgis-V5] go standby mode and then resume pushing the power button
+    (LP #1995144)
+    - SAUCE: dts: amgis: Enable wake-up GPIO pin
+
+  * [UC20] Camera does not work after resume from suspend (LP #1999815)
+    - SAUCE: imx: gpcv2: Fix PGC CPU mapping after resume
+
+  [ Ubuntu: 5.4.0-139.156 ]
+
+  * focal/linux: 5.4.0-139.156 -proposed tracker (LP: #2003486)
+  * Revoke & rotate to new signing key (LP: #2002812)
+    - [Packaging] Revoke and rotate to new signing key
+
+  [ Ubuntu: 5.4.0-138.155 ]
+
+  * focal/linux: 5.4.0-138.155 -proposed tracker (LP: #2001845)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+  * Focal update: v5.4.224 upstream stable release (LP: #1999273)
+    - RDMA/cma: Use output interface for net_dev check
+    - IB/hfi1: Correctly move list in sc_disable()
+    - NFSv4.1: Handle RECLAIM_COMPLETE trunking errors
+    - NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot
+    - nfs4: Fix kmemleak when allocate slot failed
+    - net: dsa: Fix possible memory leaks in dsa_loop_init()
+    - RDMA/core: Fix null-ptr-deref in ib_core_cleanup()
+    - RDMA/qedr: clean up work queue on failure in qedr_alloc_resources()
+    - nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send()
+    - nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send()
+    - net: fec: fix improper use of NETDEV_TX_BUSY
+    - ata: pata_legacy: fix pdc20230_set_piomode()
+    - net: sched: Fix use after free in red_enqueue()
+    - net: tun: fix bugs for oversize packet when napi frags enabled
+    - netfilter: nf_tables: release flow rule object from commit path
+    - ipvs: use explicitly signed chars
+    - ipvs: fix WARNING in __ip_vs_cleanup_batch()
+    - ipvs: fix WARNING in ip_vs_app_net_cleanup()
+    - rose: Fix NULL pointer dereference in rose_send_frame()
+    - mISDN: fix possible memory leak in mISDN_register_device()
+    - isdn: mISDN: netjet: fix wrong check of device registration
+    - btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
+    - btrfs: fix inode list leak during backref walking at find_parent_nodes()
+    - btrfs: fix ulist leaks in error paths of qgroup self tests
+    - Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del()
+    - net: mdio: fix undefined behavior in bit shift for __mdiobus_register
+    - net, neigh: Fix null-ptr-deref in neigh_table_clear()
+    - ipv6: fix WARNING in ip6_route_net_exit_late()
+    - media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE
+    - media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE
+    - media: dvb-frontends/drxk: initialize err to 0
+    - media: meson: vdec: fix possible refcount leak in vdec_probe()
+    - scsi: core: Restrict legal sdev_state transitions via sysfs
+    - HID: saitek: add madcatz variant of MMO7 mouse device ID
+    - i2c: xiic: Add platform module alias
+    - xfs: don't fail verifier on empty attr3 leaf block
+    - xfs: use ordered buffers to initialize dquot buffers during quotacheck
+    - xfs: gut error handling in xfs_trans_unreserve_and_mod_sb()
+    - xfs: group quota should return EDQUOT when prj quota enabled
+    - xfs: don't fail unwritten extent conversion on writeback due to edquot
+    - xfs: Add the missed xfs_perag_put() for xfs_ifree_cluster()
+    - Bluetooth: L2CAP: Fix attempting to access uninitialized memory
+    - block, bfq: protect 'bfqd->queued' by 'bfqd->lock'
+    - binder: fix UAF of alloc->vma in race with munmap()
+    - btrfs: fix type of parameter generation in btrfs_get_dentry
+    - tcp/udp: Make early_demux back namespacified.
+    - kprobe: reverse kp->flags when arm_kprobe failed
+    - tools/nolibc/string: Fix memcmp() implementation
+    - tracing/histogram: Update document for KEYS_MAX size
+    - capabilities: fix potential memleak on error path from vfs_getxattr_alloc()
+    - fuse: add file_modified() to fallocate
+    - efi: random: reduce seed size to 32 bytes
+    - perf/x86/intel: Fix pebs event constraints for ICL
+    - perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[]
+    - ALSA: usb-audio: Add quirks for MacroSilicon MS2100/MS2106 devices
+    - parisc: Make 8250_gsc driver dependend on CONFIG_PARISC
+    - parisc: Export iosapic_serial_irq() symbol for serial port driver
+    - parisc: Avoid printing the hardware path twice
+    - ext4: fix warning in 'ext4_da_release_space'
+    - ext4: fix BUG_ON() when directory entry has invalid rec_len
+    - KVM: x86: Mask off reserved bits in CPUID.8000001AH
+    - KVM: x86: Mask off reserved bits in CPUID.80000008H
+    - KVM: x86: emulator: em_sysexit should update ctxt->mode
+    - KVM: x86: emulator: introduce emulator_recalc_and_set_mode
+    - KVM: x86: emulator: update the emulation mode after CR0 write
+    - mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times
+    - drm/rockchip: dsi: Force synchronous probe
+    - drm/i915/sdvo: Filter out invalid outputs more sensibly
+    - drm/i915/sdvo: Setup DDC fully before output init
+    - wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker()
+    - ipc: remove memcg accounting for sops objects in do_semtimedop()
+    - Linux 5.4.224
+  * Focal update: v5.4.223 upstream stable release (LP: #1999179)
+    - can: j1939: transport: j1939_session_skb_drop_old():
+      spin_unlock_irqrestore() before kfree_skb()
+    - can: kvaser_usb: Fix possible completions during init_completion
+    - ALSA: Use del_timer_sync() before freeing timer
+    - ALSA: au88x0: use explicitly signed char
+    - USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM
+    - usb: dwc3: gadget: Stop processing more requests on IMI
+    - usb: dwc3: gadget: Don't set IMI for no_interrupt
+    - usb: bdc: change state when port disconnected
+    - usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96
+      controller
+    - mtd: rawnand: marvell: Use correct logic for nand-keep-config
+    - xhci: Remove device endpoints from bandwidth list when freeing the device
+    - tools: iio: iio_utils: fix digit calculation
+    - iio: light: tsl2583: Fix module unloading
+    - fbdev: smscufx: Fix several use-after-free bugs
+    - mac802154: Fix LQI recording
+    - drm/msm/dsi: fix memory corruption with too many bridges
+    - drm/msm/hdmi: fix memory corruption with too many bridges
+    - mmc: core: Fix kernel panic when remove non-standard SDIO card
+    - kernfs: fix use-after-free in __kernfs_remove
+    - perf auxtrace: Fix address filter symbol name match for modules
+    - s390/futex: add missing EX_TABLE entry to __futex_atomic_op()
+    - s390/pci: add missing EX_TABLE entries to
+      __pcistg_mio_inuser()/__pcilg_mio_inuser()
+    - xfs: finish dfops on every insert range shift iteration
+    - xfs: clear XFS_DQ_FREEING if we can't lock the dquot buffer to flush
+    - xfs: force the log after remapping a synchronous-writes file
+    - Xen/gntdev: don't ignore kernel unmapping error
+    - xen/gntdev: Prevent leaking grants
+    - mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages
+    - net: ieee802154: fix error return code in dgram_bind()
+    - media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation
+    - drm/msm: Fix return type of mdp4_lvds_connector_mode_valid
+    - arc: iounmap() arg is volatile
+    - ALSA: ac97: fix possible memory leak in snd_ac97_dev_register()
+    - tipc: fix a null-ptr-deref in tipc_topsrv_accept
+    - net: netsec: fix error handling in netsec_register_mdio()
+    - x86/unwind/orc: Fix unreliable stack dump with gcov
+    - amd-xgbe: fix the SFP compliance codes check for DAC cables
+    - amd-xgbe: add the bit rate quirk for Molex cables
+    - kcm: annotate data-races around kcm->rx_psock
+    - kcm: annotate data-races around kcm->rx_wait
+    - net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed
+    - net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY
+    - tcp: fix indefinite deferral of RTO with SACK reneging
+    - can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error
+      path
+    - PM: hibernate: Allow hybrid sleep to work with s2idle
+    - media: vivid: s_fbuf: add more sanity checks
+    - media: vivid: dev->bitmap_cap wasn't freed in all cases
+    - media: v4l2-dv-timings: add sanity checks for blanking values
+    - media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced'
+    - i40e: Fix ethtool rx-flow-hash setting for X722
+    - i40e: Fix VF hang when reset is triggered on another VF
+    - i40e: Fix flow-type by setting GL_HASH_INSET registers
+    - net: ksz884x: fix missing pci_disable_device() on error in pcidev_init()
+    - PM: domains: Fix handling of unavailable/disabled idle states
+    - ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev()
+    - ALSA: aoa: Fix I2S device accounting
+    - openvswitch: switch from WARN to pr_warn
+    - net: ehea: fix possible memory leak in ehea_register_port()
+    - nh: fix scope used to find saddr when adding non gw nh
+    - net/mlx5e: Do not increment ESN when updating IPsec ESN state
+    - net/mlx5: Fix possible use-after-free in async command interface
+    - net: enetc: survive memory pressure without crashing
+    - can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global
+      FIFO receive
+    - Linux 5.4.223
+  * Focal update: v5.4.222 upstream stable release (LP: #1997994)
+    - once: fix section mismatch on clang builds
+    - Linux 5.4.222
+  * Focal update: v5.4.221 upstream stable release (LP: #1997993)
+    - xfs: open code insert range extent split helper
+    - xfs: rework insert range into an atomic operation
+    - xfs: rework collapse range into an atomic operation
+    - xfs: add a function to deal with corrupt buffers post-verifiers
+    - xfs: xfs_buf_corruption_error should take __this_address
+    - xfs: fix buffer corruption reporting when xfs_dir3_free_header_check fails
+    - xfs: check owner of dir3 data blocks
+    - xfs: check owner of dir3 blocks
+    - xfs: Use scnprintf() for avoiding potential buffer overflow
+    - xfs: remove the xfs_disk_dquot_t and xfs_dquot_t
+    - xfs: remove the xfs_dq_logitem_t typedef
+    - xfs: remove the xfs_qoff_logitem_t typedef
+    - xfs: Replace function declaration by actual definition
+    - xfs: factor out quotaoff intent AIL removal and memory free
+    - xfs: fix unmount hang and memory leak on shutdown during quotaoff
+    - xfs: preserve default grace interval during quotacheck
+    - xfs: Lower CIL flush limit for large logs
+    - xfs: Throttle commits on delayed background CIL push
+    - xfs: factor common AIL item deletion code
+    - xfs: tail updates only need to occur when LSN changes
+    - xfs: don't write a corrupt unmount record to force summary counter recalc
+    - xfs: trylock underlying buffer on dquot flush
+    - xfs: factor out a new xfs_log_force_inode helper
+    - xfs: reflink should force the log out if mounted with wsync
+    - xfs: move inode flush to the sync workqueue
+    - xfs: fix use-after-free on CIL context on shutdown
+    - ocfs2: clear dinode links count in case of error
+    - ocfs2: fix BUG when iput after ocfs2_mknod fails
+    - x86/microcode/AMD: Apply the patch early on every logical thread
+    - hwmon/coretemp: Handle large core ID value
+    - ata: ahci-imx: Fix MODULE_ALIAS
+    - ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS
+    - KVM: arm64: vgic: Fix exit condition in scan_its_table()
+    - media: venus: dec: Handle the case where find_format fails
+    - [Config] updateconfigs for ARM64_ERRATUM_1742098
+    - arm64: errata: Remove AES hwcap for COMPAT tasks
+    - r8152: add PID for the Lenovo OneLink+ Dock
+    - btrfs: fix processing of delayed data refs during backref walking
+    - btrfs: fix processing of delayed tree block refs during backref walking
+    - ACPI: extlog: Handle multiple records
+    - tipc: Fix recognition of trial period
+    - tipc: fix an information leak in tipc_topsrv_kern_subscr
+    - HID: magicmouse: Do not set BTN_MOUSE on double report
+    - net/atm: fix proc_mpc_write incorrect return value
+    - net: phy: dp83867: Extend RX strap quirk for SGMII mode
+    - net: sched: cake: fix null pointer access issue when cake_init() fails
+    - net: hns: fix possible memory leak in hnae_ae_register()
+    - iommu/vt-d: Clean up si_domain in the init_dmars() error path
+    - arm64: topology: move store_cpu_topology() to shared code
+    - riscv: topology: fix default topology reporting
+    - ACPI: video: Force backlight native for more TongFang devices
+    - Makefile.debug: re-enable debug info for .S files
+    - hv_netvsc: Fix race between VF offering and VF association message from host
+    - mm: /proc/pid/smaps_rollup: fix no vma's null-deref
+    - Linux 5.4.221
+  * Focal update: v5.4.220 upstream stable release (LP: #1996812)
+    - ALSA: oss: Fix potential deadlock at unregistration
+    - ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()
+    - ALSA: usb-audio: Fix potential memory leaks
+    - ALSA: usb-audio: Fix NULL dererence at error path
+    - ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530
+    - ALSA: hda/realtek: Correct pin configs for ASUS G533Z
+    - ALSA: hda/realtek: Add quirk for ASUS GV601R laptop
+    - ALSA: hda/realtek: Add Intel Reference SSID to support headset keys
+    - mtd: rawnand: atmel: Unmap streaming DMA mappings
+    - cifs: destage dirty pages before re-reading them for cache=none
+    - cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message
+    - iio: dac: ad5593r: Fix i2c read protocol requirements
+    - iio: pressure: dps310: Refactor startup procedure
+    - iio: pressure: dps310: Reset chip after timeout
+    - usb: add quirks for Lenovo OneLink+ Dock
+    - can: kvaser_usb: Fix use of uninitialized completion
+    - can: kvaser_usb_leaf: Fix overread with an invalid command
+    - can: kvaser_usb_leaf: Fix TX queue out of sync after restart
+    - can: kvaser_usb_leaf: Fix CAN state after restart
+    - mmc: sdhci-sprd: Fix minimum clock limit
+    - fs: dlm: fix race between test_bit() and queue_work()
+    - fs: dlm: handle -EBUSY first in lock arg validation
+    - HID: multitouch: Add memory barriers
+    - quota: Check next/prev free block number after reading from quota file
+    - ASoC: wcd9335: fix order of Slimbus unprepare/disable
+    - regulator: qcom_rpm: Fix circular deferral regression
+    - RISC-V: Make port I/O string accessors actually work
+    - parisc: fbdev/stifb: Align graphics memory size to 4MB
+    - riscv: Allow PROT_WRITE-only mmap()
+    - riscv: Pass -mno-relax only on lld < 15.0.0
+    - UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
+    - PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge
+    - powerpc/boot: Explicitly disable usage of SPE instructions
+    - fbdev: smscufx: Fix use-after-free in ufx_ops_open()
+    - btrfs: fix race between quota enable and quota rescan ioctl
+    - f2fs: increase the limit for reserve_root
+    - f2fs: fix to do sanity check on destination blkaddr during recovery
+    - f2fs: fix to do sanity check on summary info
+    - nilfs2: fix use-after-free bug of struct nilfs_root
+    - jbd2: wake up journal waiters in FIFO order, not LIFO
+    - ext4: avoid crash when inline data creation follows DIO write
+    - ext4: fix null-ptr-deref in ext4_write_info
+    - ext4: make ext4_lazyinit_thread freezable
+    - ext4: place buffer head allocation before handle start
+    - livepatch: fix race between fork and KLP transition
+    - ftrace: Properly unset FTRACE_HASH_FL_MOD
+    - ring-buffer: Allow splice to read previous partially read pages
+    - ring-buffer: Have the shortest_full queue be the shortest not longest
+    - ring-buffer: Check pending waiters when doing wake ups as well
+    - ring-buffer: Fix race between reset page and reading page
+    - media: cedrus: Set the platform driver data earlier
+    - KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility
+    - KVM: nVMX: Unconditionally purge queued/injected events on nested "exit"
+    - KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS
+    - gcov: support GCC 12.1 and newer compilers
+    - drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()
+    - selinux: use "grep -E" instead of "egrep"
+    - tracing: Disable interrupt or preemption before acquiring arch_spinlock_t
+    - userfaultfd: open userfaultfds with O_RDONLY
+    - sh: machvec: Use char[] for section boundaries
+    - ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE
+    - nfsd: Fix a memory leak in an error handling path
+    - wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()
+    - wifi: mac80211: allow bw change during channel switch in mesh
+    - bpftool: Fix a wrong type cast in btf_dumper_int
+    - x86/resctrl: Fix to restore to original value when re-enabling hardware
+      prefetch register
+    - wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse()
+    - spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
+    - spi: qup: add missing clk_disable_unprepare on error in
+      spi_qup_pm_resume_runtime()
+    - wifi: rtl8xxxu: Fix skb misuse in TX queue selection
+    - bpf: btf: fix truncated last_member_type_id in btf_struct_resolve
+    - wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration
+    - net: fs_enet: Fix wrong check in do_pd_setup
+    - bpf: Ensure correct locking around vulnerable function find_vpid()
+    - x86/microcode/AMD: Track patch allocation size explicitly
+    - spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe
+    - netfilter: nft_fib: Fix for rpath check with VRF devices
+    - spi: s3c64xx: Fix large transfers with DMA
+    - vhost/vsock: Use kvmalloc/kvfree for larger packets.
+    - sctp: handle the error returned from sctp_auth_asoc_init_active_key
+    - tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited
+    - net: rds: don't hold sock lock when cancelling work from
+      rds_tcp_reset_callbacks()
+    - bnx2x: fix potential memory leak in bnx2x_tpa_stop()
+    - net/ieee802154: reject zero-sized raw_sendmsg()
+    - once: add DO_ONCE_SLOW() for sleepable contexts
+    - net: mvpp2: fix mvpp2 debugfs leak
+    - drm: bridge: adv7511: fix CEC power down control register offset
+    - drm/mipi-dsi: Detach devices when removing the host
+    - platform/chrome: fix double-free in chromeos_laptop_prepare()
+    - platform/chrome: fix memory corruption in ioctl
+    - platform/x86: msi-laptop: Fix old-ec check for backlight registering
+    - platform/x86: msi-laptop: Fix resource cleanup
+    - drm: fix drm_mipi_dbi build errors
+    - drm/bridge: megachips: Fix a null pointer dereference bug
+    - ASoC: rsnd: Add check for rsnd_mod_power_on
+    - ALSA: hda: beep: Simplify keep-power-at-enable behavior
+    - drm/omap: dss: Fix refcount leak bugs
+    - mmc: au1xmmc: Fix an error handling path in au1xmmc_probe()
+    - ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API
+    - drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx
+    - ALSA: dmaengine: increment buffer pointer atomically
+    - mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe()
+    - ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
+    - ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
+    - ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
+    - ALSA: hda/hdmi: Don't skip notification handling during PM operation
+    - memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe()
+    - memory: of: Fix refcount leak bug in of_get_ddr_timings()
+    - soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe()
+    - soc: qcom: smem_state: Add refcounting for the 'state->of_node'
+    - ARM: dts: turris-omnia: Fix mpp26 pin name and comment
+    - ARM: dts: kirkwood: lsxl: fix serial line
+    - ARM: dts: kirkwood: lsxl: remove first ethernet port
+    - ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family
+    - ARM: Drop CMDLINE_* dependency on ATAGS
+    - ARM: dts: exynos: fix polarity of VBUS GPIO of Origen
+    - iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
+    - iio: adc: at91-sama5d2_adc: check return status for pressure and touch
+    - iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
+    - iio: inkern: only release the device node when done with it
+    - iio: ABI: Fix wrong format of differential capacitance channel ABI.
+    - clk: meson: Hold reference returned by of_get_parent()
+    - clk: oxnas: Hold reference returned by of_get_parent()
+    - clk: berlin: Add of_node_put() for of_get_parent()
+    - clk: tegra: Fix refcount leak in tegra210_clock_init
+    - clk: tegra: Fix refcount leak in tegra114_clock_init
+    - clk: tegra20: Fix refcount leak in tegra20_clock_init
+    - HSI: omap_ssi: Fix refcount leak in ssi_probe
+    - HSI: omap_ssi_port: Fix dma_map_sg error check
+    - media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop
+    - tty: xilinx_uartps: Fix the ignore_status
+    - media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init
+    - RDMA/rxe: Fix "kernel NULL pointer dereference" error
+    - RDMA/rxe: Fix the error caused by qp->sk
+    - misc: ocxl: fix possible refcount leak in afu_ioctl()
+    - dyndbg: fix module.dyndbg handling
+    - dyndbg: let query-modname override actual module name
+    - mtd: devices: docg3: check the return value of devm_ioremap() in the probe
+    - RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.
+    - ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
+    - ata: fix ata_id_has_devslp()
+    - ata: fix ata_id_has_ncq_autosense()
+    - ata: fix ata_id_has_dipm()
+    - mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct()
+    - md/raid5: Ensure stripe_fill happens on non-read IO with journal
+    - xhci: Don't show warning for reinit on known broken suspend
+    - usb: gadget: function: fix dangling pnp_string in f_printer.c
+    - drivers: serial: jsm: fix some leaks in probe
+    - tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown
+    - phy: qualcomm: call clk_disable_unprepare in the error handling
+    - staging: vt6655: fix some erroneous memory clean-up loops
+    - firmware: google: Test spinlock on panic path to avoid lockups
+    - serial: 8250: Fix restoring termios speed after suspend
+    - scsi: libsas: Fix use-after-free bug in smp_execute_task_sg()
+    - fsi: core: Check error number after calling ida_simple_get
+    - mfd: intel_soc_pmic: Fix an error handling path in
+      intel_soc_pmic_i2c_probe()
+    - mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq()
+    - mfd: lp8788: Fix an error handling path in lp8788_probe()
+    - mfd: lp8788: Fix an error handling path in lp8788_irq_init() and
+      lp8788_irq_init()
+    - mfd: fsl-imx25: Fix check for platform_get_irq() errors
+    - mfd: sm501: Add check for platform_driver_register()
+    - clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent
+    - dmaengine: ioat: stop mod_timer from resurrecting deleted timer in
+      __cleanup()
+    - spmi: pmic-arb: correct duplicate APID to PPID mapping logic
+    - clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration
+    - clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe
+    - clk: ast2600: BCLK comes from EPLL
+    - mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg
+    - powerpc/math_emu/efp: Include module.h
+    - powerpc/sysdev/fsl_msi: Add missing of_node_put()
+    - powerpc/pci_dn: Add missing of_node_put()
+    - powerpc/powernv: add missing of_node_put() in opal_export_attrs()
+    - x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition
+    - powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5
+    - powerpc: Fix SPE Power ISA properties for e500v1 platforms
+    - cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset
+    - iommu/omap: Fix buffer overflow in debugfs
+    - crypto: akcipher - default implementation for setting a private key
+    - crypto: ccp - Release dma channels before dmaengine unrgister
+    - iommu/iova: Fix module config properly
+    - kbuild: remove the target in signal traps when interrupted
+    - crypto: cavium - prevent integer overflow loading firmware
+    - f2fs: fix race condition on setting FI_NO_EXTENT flag
+    - ACPI: video: Add Toshiba Satellite/Portege Z830 quirk
+    - MIPS: BCM47XX: Cast memcmp() of function to (void *)
+    - powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue
+    - thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to
+      avoid crash
+    - NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data
+    - wifi: brcmfmac: fix invalid address access when enabling SCAN log level
+    - bpftool: Clear errno after libcap's checks
+    - openvswitch: Fix double reporting of drops in dropwatch
+    - openvswitch: Fix overreporting of drops in dropwatch
+    - tcp: annotate data-race around tcp_md5sig_pool_populated
+    - wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg()
+    - xfrm: Update ipcomp_scratches with NULL when freed
+    - wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()
+    - Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create()
+    - Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times
+    - can: bcm: check the result of can_send() in bcm_can_tx()
+    - wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620
+    - wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620
+    - wifi: rt2x00: set VGC gain for both chains of MT7620
+    - wifi: rt2x00: set SoC wmac clock register
+    - wifi: rt2x00: correctly set BBP register 86 for MT7620
+    - net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory
+    - Bluetooth: L2CAP: Fix user-after-free
+    - drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc()
+    - drm: Use size_t type for len variable in drm_copy_field()
+    - drm: Prevent drm_copy_field() to attempt copying a NULL pointer
+    - drm/amd/display: fix overflow on MIN_I64 definition
+    - drm/vc4: vec: Fix timings for VEC modes
+    - drm: panel-orientation-quirks: Add quirk for Anbernic Win600
+    - platform/x86: msi-laptop: Change DMI match / alias strings to fix module
+      autoloading
+    - drm/amdgpu: fix initial connector audio value
+    - mmc: sdhci-msm: add compatible string check for sdm670
+    - ARM: dts: imx7d-sdb: config the max pressure for tsc2046
+    - ARM: dts: imx6q: add missing properties for sram
+    - ARM: dts: imx6dl: add missing properties for sram
+    - ARM: dts: imx6qp: add missing properties for sram
+    - ARM: dts: imx6sl: add missing properties for sram
+    - ARM: dts: imx6sll: add missing properties for sram
+    - ARM: dts: imx6sx: add missing properties for sram
+    - btrfs: scrub: try to fix super block errors
+    - clk: zynqmp: Fix stack-out-of-bounds in strncpy`
+    - media: cx88: Fix a null-ptr-deref bug in buffer_prepare()
+    - clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate
+    - scsi: 3w-9xxx: Avoid disabling device if failing to enable it
+    - nbd: Fix hung when signal interrupts nbd_start_device_ioctl()
+    - power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()
+    - staging: vt6655: fix potential memory leak
+    - ata: libahci_platform: Sanity check the DT child nodes number
+    - bcache: fix set_at_max_writeback_rate() for multiple attached devices
+    - HID: roccat: Fix use-after-free in roccat_read()
+    - md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d
+    - usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info()
+    - usb: musb: Fix musb_gadget.c rxstate overflow bug
+    - Revert "usb: storage: Add quirk for Samsung Fit flash"
+    - staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv()
+    - nvme: copy firmware_rev on each init
+    - nvmet-tcp: add bounds check on Transfer Tag
+    - usb: idmouse: fix an uninit-value in idmouse_open
+    - clk: bcm2835: Make peripheral PLLC critical
+    - perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc
+    - net: ieee802154: return -EINVAL for unknown addr type
+    - Revert "net/ieee802154: reject zero-sized raw_sendmsg()"
+    - net/ieee802154: don't warn zero-sized raw_sendmsg()
+    - ext4: continue to expand file system when the target size doesn't reach
+    - efi: libstub: drop pointless get_memory_map() call
+    - inet: fully convert sk->sk_rx_dst to RCU rules
+    - thermal: intel_powerclamp: Use first online CPU as control_cpu
+    - Linux 5.4.220
+  * Focal update: v5.4.219 upstream stable release (LP: #1996804)
+    - Linux 5.4.219
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 16 Feb 2023 23:33:02 +0800
+
+linux-ein (5.4.0-1032.38) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1032.38 -proposed tracker (LP: #2006609)
+
+  * [UC20][QCA-BT] The bluetooth interface is unstable (LP: #1999613)
+    - SAUCE: bluetooth: Add support for Qualcomm's HCI IBS protocol
+    - [Config] Enable HCI IBS protocol
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 09 Feb 2023 12:40:51 +0800
+
+linux-ein (5.4.0-1031.37) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1031.37 -proposed tracker (LP: #2002802)
+
+  * [K4500-NXP][B0+DV-2][UC20] Sometimes show kernel messages 'mmc2: cqhci:
+    timeout for tag 31' (LP: #2000621)
+    - mmc: sdhci-esdhc-imx: disable CMDQ support
+
+  [ Ubuntu: 5.4.0-137.154 ]
+
+  * focal/linux: 5.4.0-137.154 -proposed tracker (LP: #2001969)
+  * CVE-2022-3643
+    - xen/netback: Ensure protocol headers don't fall in the non-linear area
+  * CVE-2022-43945
+    - NFSD: Cap rsize_bop result based on send buffer size
+  * CVE-2022-45934
+    - Bluetooth: L2CAP: Fix u8 overflow
+  * CVE-2022-42896
+    - Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM
+    - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
+
+  [ Ubuntu: 5.4.0-136.153 ]
+
+  * focal/linux: 5.4.0-136.153 -proposed tracker (LP: #1997835)
+  * Expose built-in trusted and revoked certificates (LP: #1996892)
+    - [Packaging] Expose built-in trusted and revoked certificates
+  * [UBUNTU 20.04] KVM: PV: ext call delivered twice when receiver in PSW wait
+    (LP: #1995941)
+    - KVM: s390: pv: don't present the ecall interrupt twice
+  * [UBUNTU 20.04] boot: Add s390x secure boot trailer (LP: #1996071)
+    - s390/boot: add secure boot trailer
+  * Fix rfkill causing soft blocked wifi (LP: #1996198)
+    - platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi
+  * md: Replace snprintf with scnprintf (LP: #1993315)
+    - md: Replace snprintf with scnprintf
+  * input/keyboard: the keyboard on some Asus laptops can't work (LP: #1992266)
+    - ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA
+    - ACPI: resource: Add ASUS model S5402ZA to quirks
+  * Focal update: v5.4.218 upstream stable release (LP: #1995530)
+    - mm: pagewalk: Fix race between unmap and page walker
+    - perf tools: Fixup get_current_dir_name() compilation
+    - firmware: arm_scmi: Add SCMI PM driver remove routine
+    - dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
+    - dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API
+      failure
+    - ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
+    - scsi: qedf: Fix a UAF bug in __qedf_probe()
+    - net/ieee802154: fix uninit value bug in dgram_sendmsg
+    - um: Cleanup syscall_handler_t cast in syscalls_32.h
+    - um: Cleanup compiler warning in arch/x86/um/tls_32.c
+    - arch: um: Mark the stack non-executable to fix a binutils warning
+    - usb: mon: make mmapped memory read only
+    - USB: serial: ftdi_sio: fix 300 bps rate for SIO
+    - mmc: core: Replace with already defined values for readability
+    - mmc: core: Terminate infinite loop in SD-UHS voltage switch
+    - rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
+    - nilfs2: fix leak of nilfs_root in case of writer thread creation failure
+    - nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
+    - ceph: don't truncate file in atomic_open
+    - random: clamp credited irq bits to maximum mixed
+    - ALSA: hda: Fix position reporting on Poulsbo
+    - efi: Correct Macmini DMI match in uefi cert quirk
+    - USB: serial: qcserial: add new usb-id for Dell branded EM7455
+    - random: restore O_NONBLOCK support
+    - random: avoid reading two cache lines on irq randomness
+    - random: use expired timer rather than wq for mixing fast pool
+    - Input: xpad - add supported devices as contributed on github
+    - Input: xpad - fix wireless 360 controller breaking after suspend
+    - Linux 5.4.218
+  * Focal update: v5.4.217 upstream stable release (LP: #1995528)
+    - xfs: fix misuse of the XFS_ATTR_INCOMPLETE flag
+    - xfs: introduce XFS_MAX_FILEOFF
+    - xfs: truncate should remove all blocks, not just to the end of the page
+      cache
+    - xfs: fix s_maxbytes computation on 32-bit kernels
+    - xfs: fix IOCB_NOWAIT handling in xfs_file_dio_aio_read
+    - xfs: refactor remote attr value buffer invalidation
+    - xfs: fix memory corruption during remote attr value buffer invalidation
+    - xfs: move incore structures out of xfs_da_format.h
+    - xfs: streamline xfs_attr3_leaf_inactive
+    - xfs: fix uninitialized variable in xfs_attr3_leaf_inactive
+    - xfs: remove unused variable 'done'
+    - Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
+    - docs: update mediator information in CoC docs
+    - Linux 5.4.217
+  * Focal update: v5.4.216 upstream stable release (LP: #1995526)
+    - uas: add no-uas quirk for Hiksemi usb_disk
+    - usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
+    - uas: ignore UAS for Thinkplus chips
+    - net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
+    - clk: ingenic-tcu: Properly enable registers before accessing timers
+    - ARM: dts: integrator: Tag PCI host with device_type
+    - ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
+    - libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
+    - mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
+    - mm/page_alloc: fix race condition between build_all_zonelists and page
+      allocation
+    - mm: prevent page_frag_alloc() from corrupting the memory
+    - mm/migrate_device.c: flush TLB while holding PTL
+    - mm: fix madivse_pageout mishandling on non-LRU page
+    - media: dvb_vb2: fix possible out of bound access
+    - ARM: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver
+    - ARM: dts: am33xx: Fix MMCHS0 dma properties
+    - soc: sunxi: sram: Actually claim SRAM regions
+    - soc: sunxi: sram: Prevent the driver from being unbound
+    - soc: sunxi_sram: Make use of the helper function
+      devm_platform_ioremap_resource()
+    - soc: sunxi: sram: Fix probe function ordering issues
+    - soc: sunxi: sram: Fix debugfs info for A64 SRAM C
+    - Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in
+      suspend/resume time"
+    - Input: melfas_mip4 - fix return value check in mip4_probe()
+    - usbnet: Fix memory leak in usbnet_disconnect()
+    - nvme: add new line after variable declatation
+    - nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
+    - selftests: Fix the if conditions of in test_extra_filter()
+    - clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
+    - clk: iproc: Do not rely on node name for correct PLL setup
+    - Linux 5.4.216
+  * Focal update: v5.4.215 upstream stable release (LP: #1993203)
+    - of: fdt: fix off-by-one error in unflatten_dt_nodes()
+    - NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
+    - gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
+    - drm/meson: Correct OSD1 global alpha value
+    - drm/meson: Fix OSD1 RGB to YCbCr coefficient
+    - parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
+    - ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
+    - task_stack, x86/cea: Force-inline stack helpers
+    - tracing: hold caller_addr to hardirq_{enable,disable}_ip
+    - cifs: revalidate mapping when doing direct writes
+    - cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
+    - MAINTAINERS: add Chandan as xfs maintainer for 5.4.y
+    - iomap: iomap that extends beyond EOF should be marked dirty
+    - ASoC: nau8824: Fix semaphore unbalance at error paths
+    - regulator: pfuze100: Fix the global-out-of-bounds access in
+      pfuze100_regulator_probe()
+    - rxrpc: Fix local destruction being repeated
+    - rxrpc: Fix calc of resend age
+    - ALSA: hda/sigmatel: Keep power up while beep is enabled
+    - ALSA: hda/tegra: Align BDL entry to 4KB boundary
+    - net: usb: qmi_wwan: add Quectel RM520N
+    - afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
+    - MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
+    - mksysmap: Fix the mismatch of 'L0' symbols in System.map
+    - video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
+    - cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
+    - ALSA: hda/sigmatel: Fix unused variable warning for beep power change
+    - usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
+    - usb: dwc3: Issue core soft reset before enabling run/stop
+    - usb: dwc3: gadget: Prevent repeat pullup()
+    - usb: dwc3: gadget: Refactor pullup()
+    - usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
+    - usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
+    - usb: xhci-mtk: get the microframe boundary for ESIT
+    - usb: xhci-mtk: add only one extra CS for FS/LS INTR
+    - usb: xhci-mtk: use @sch_tt to check whether need do TT schedule
+    - usb: xhci-mtk: add a function to (un)load bandwidth info
+    - usb: xhci-mtk: add some schedule error number
+    - usb: xhci-mtk: allow multiple Start-Split in a microframe
+    - usb: xhci-mtk: relax TT periodic bandwidth allocation
+    - wifi: mac80211: Fix UAF in ieee80211_scan_rx()
+    - tty/serial: atmel: RS485 & ISO7816: wait for TXRDY before sending data
+    - serial: atmel: remove redundant assignment in rs485_config
+    - tty: serial: atmel: Preserve previous USART mode if RS485 disabled
+    - usb: add quirks for Lenovo OneLink+ Dock
+    - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
+    - usb: cdns3: fix issue with rearming ISO OUT endpoint
+    - Revert "usb: add quirks for Lenovo OneLink+ Dock"
+    - Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
+    - USB: core: Fix RST error in hub.c
+    - USB: serial: option: add Quectel BG95 0x0203 composition
+    - USB: serial: option: add Quectel RM520N
+    - ALSA: hda/tegra: set depop delay for tegra
+    - ALSA: hda: add Intel 5 Series / 3400 PCI DID
+    - ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
+    - ALSA: hda/realtek: Re-arrange quirk table entries
+    - ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
+    - ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
+    - ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
+    - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
+    - efi: libstub: check Shim mode using MokSBStateRT
+    - mm/slub: fix to return errno if kmalloc() fails
+    - arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
+    - arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
+    - arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
+    - netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
+    - netfilter: nf_conntrack_irc: Tighten matching on DCC message
+    - netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
+    - iavf: Fix cached head and tail value for iavf_get_tx_pending
+    - ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
+    - net: team: Unsync device addresses on ndo_stop
+    - MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
+    - MIPS: Loongson32: Fix PHY-mode being left unspecified
+    - iavf: Fix bad page state
+    - i40e: Fix set max_tx_rate when it is lower than 1 Mbps
+    - of: mdio: Add of_node_put() when breaking out of for_each_xx
+    - net/sched: taprio: avoid disabling offload when it was never enabled
+    - net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child
+      qdiscs
+    - netfilter: ebtables: fix memory leak when blob is malformed
+    - can: gs_usb: gs_can_open(): fix race dev->can.state condition
+    - perf jit: Include program header in ELF files
+    - perf kcore_copy: Do not check /proc/modules is unchanged
+    - net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
+    - net: sched: fix possible refcount leak in tc_new_tfilter()
+    - serial: Create uart_xmit_advance()
+    - serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
+    - serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
+    - s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
+    - usb: xhci-mtk: fix issue of out-of-bounds array access
+    - cifs: always initialize struct msghdr smb_msg completely
+    - Drivers: hv: Never allocate anything besides framebuffer from framebuffer
+      memory region
+    - drm/amd/display: Limit user regamma to a valid value
+    - drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
+    - workqueue: don't skip lockdep work dependency in cancel_work_sync()
+    - ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
+    - xfs: replace -EIO with -EFSCORRUPTED for corrupt metadata
+    - xfs: slightly tweak an assert in xfs_fs_map_blocks
+    - xfs: add missing assert in xfs_fsmap_owner_from_rmap
+    - xfs: range check ri_cnt when recovering log items
+    - xfs: attach dquots and reserve quota blocks during unwritten conversion
+    - xfs: convert EIO to EFSCORRUPTED when log contents are invalid
+    - xfs: constify the buffer pointer arguments to error functions
+    - xfs: always log corruption errors
+    - xfs: fix some memory leaks in log recovery
+    - xfs: stabilize insert range start boundary to avoid COW writeback race
+    - xfs: use bitops interface for buf log item AIL flag check
+    - xfs: refactor agfl length computation function
+    - xfs: split the sunit parameter update into two parts
+    - xfs: don't commit sunit/swidth updates to disk if that would cause repair
+      failures
+    - xfs: fix an ABBA deadlock in xfs_rename
+    - xfs: fix use-after-free when aborting corrupt attr inactivation
+    - ext4: make directory inode spreading reflect flexbg size
+    - Linux 5.4.215
+  * Focal update: v5.4.214 upstream stable release (LP: #1993196)
+    - drm/msm/rd: Fix FIFO-full deadlock
+    - HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
+    - hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
+    - tg3: Disable tg3 device on system reboot to avoid triggering AER
+    - ieee802154: cc2520: add rc code in cc2520_tx()
+    - Input: iforce - add support for Boeder Force Feedback Wheel
+    - nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
+    - perf/arm_pmu_platform: fix tests for platform_get_irq() failure
+    - platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
+    - usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
+    - mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
+    - net: dp83822: disable rx error interrupt
+    - soc: fsl: select FSL_GUTS driver for DPIO
+    - tracefs: Only clobber mode/uid/gid on remount if asked
+    - Linux 5.4.214
+  * Focal update: v5.4.213 upstream stable release (LP: #1992211)
+    - efi: capsule-loader: Fix use-after-free in efi_capsule_write
+    - wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in
+      il4965_rs_fill_link_cmd()
+    - fs: only do a memory barrier for the first set_buffer_uptodate()
+    - Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
+    - net: dp83822: disable false carrier interrupt
+    - drm/msm/dsi: fix the inconsistent indenting
+    - drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
+    - platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
+    - iio: adc: mcp3911: make use of the sign bit
+    - ieee802154/adf7242: defer destroy_workqueue call
+    - wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
+    - Revert "xhci: turn off port power in shutdown"
+    - net: sched: tbf: don't call qdisc_put() while holding tree lock
+    - ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
+    - kcm: fix strp_init() order and cleanup
+    - sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
+    - tcp: annotate data-race around challenge_timestamp
+    - Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
+    - net/smc: Remove redundant refcount increase
+    - serial: fsl_lpuart: RS485 RTS polariy is inverse
+    - staging: rtl8712: fix use after free bugs
+    - powerpc: align syscall table for ppc32
+    - vt: Clear selection before changing the font
+    - tty: serial: lpuart: disable flow control while waiting for the transmit
+      engine to complete
+    - Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
+    - iio: adc: mcp3911: use correct formula for AD conversion
+    - misc: fastrpc: fix memory corruption on probe
+    - misc: fastrpc: fix memory corruption on open
+    - USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
+    - binder: fix UAF of ref->proc caused by race condition
+    - usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
+    - drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
+    - clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
+    - Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
+    - clk: core: Fix runtime PM sequence in clk_core_unprepare()
+    - Input: rk805-pwrkey - fix module autoloading
+    - clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
+    - hwmon: (gpio-fan) Fix array out of bounds access
+    - gpio: pca953x: Add mutex_lock for regcache sync in PM
+    - thunderbolt: Use the actual buffer in tb_async_error()
+    - xhci: Add grace period after xHC start to prevent premature runtime suspend.
+    - USB: serial: cp210x: add Decagon UCA device id
+    - USB: serial: option: add support for OPPO R11 diag port
+    - USB: serial: option: add Quectel EM060K modem
+    - USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
+    - usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
+    - usb: dwc2: fix wrong order of phy_power_on and phy_init
+    - USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
+    - usb-storage: Add ignore-residue quirk for NXP PN7462AU
+    - s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
+    - s390: fix nospec table alignments
+    - USB: core: Prevent nested device-reset calls
+    - usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
+    - driver core: Don't probe devices after bus_type.match() probe deferral
+    - wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
+    - net: mac802154: Fix a condition in the receive path
+    - ALSA: seq: oss: Fix data-race for max_midi_devs access
+    - ALSA: seq: Fix data-race at module auto-loading
+    - drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
+    - btrfs: harden identification of a stale device
+    - usb: dwc3: fix PHY disable sequence
+    - usb: dwc3: disable USB core PHY management
+    - USB: serial: ch341: fix lost character on LCR updates
+    - USB: serial: ch341: fix disabled rx timer on older devices
+    - scsi: megaraid_sas: Fix double kfree()
+    - drm/gem: Fix GEM handle release errors
+    - drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
+    - drm/radeon: add a force flush to delay work when radeon
+    - parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
+    - parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
+    - arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned
+      fw_level
+    - fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
+    - drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
+    - ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
+    - ALSA: aloop: Fix random zeros in capture data when using jiffies timer
+    - ALSA: usb-audio: Fix an out-of-bounds bug in
+      __snd_usb_parse_audio_interface()
+    - kprobes: Prohibit probes in gate area
+    - debugfs: add debugfs_lookup_and_remove()
+    - nvmet: fix a use-after-free
+    - scsi: mpt3sas: Fix use-after-free warning
+    - scsi: lpfc: Add missing destroy_workqueue() in error path
+    - cgroup: Optimize single thread migration
+    - cgroup: Elide write-locking threadgroup_rwsem when updating csses on an
+      empty subtree
+    - cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
+    - smb3: missing inode locks in punch hole
+    - ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
+    - regulator: core: Clean up on enable failure
+    - RDMA/cma: Fix arguments order in net device validation
+    - soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
+    - RDMA/hns: Fix supported page size
+    - netfilter: br_netfilter: Drop dst references before setting.
+    - rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
+    - afs: Use the operation issue time instead of the reply time for callbacks
+    - sch_sfb: Don't assume the skb is still around after enqueueing to child
+    - tipc: fix shift wrapping bug in map_get()
+    - i40e: Fix kernel crash during module removal
+    - RDMA/siw: Pass a pointer to virt_to_page()
+    - ipv6: sr: fix out-of-bounds read when setting HMAC data.
+    - RDMA/mlx5: Set local port to one when accessing counters
+    - nvme-tcp: fix UAF when detecting digest errors
+    - tcp: fix early ETIMEDOUT after spurious non-SACK RTO
+    - sch_sfb: Also store skb len before calling child enqueue
+    - x86/nospec: Fix i386 RSB stuffing
+    - MIPS: loongson32: ls1c: Fix hang during startup
+    - Linux 5.4.213
+  * CVE-2022-2663
+    - netfilter: nf_conntrack_irc: Fix forged IP logic
+  * CVE-2022-3061
+    - video: fbdev: i740fb: Error out if 'pixclock' equals zero
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sat, 14 Jan 2023 16:17:47 +0800
+
+linux-ein (5.4.0-1030.36) focal; urgency=medium
+
+  * focal/linux-ein: 5.4.0-1030.36 -proposed tracker (LP: #2001879)
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update helper scripts
+
+  * remove a space from model in the device tree (LP: #2001574)
+    - SAUCE: dts: vesta-500: drop the last space from model
+
+  * [UC20] Improper network interface name for wwan interface (LP: #1999616)
+    - net: usb: cdc_ether: added support for Thales Cinterion PLSx3 modem family.
+    - SAUCE: net: usb: cdc_ether: add pls62 modem ids
+
+  * Set LED Behavior for Hard Reboot (LP: #1991304)
+    - SAUCE: dts: vesta-500: Fix the led level and let them on
+
+  * [imx8-bms] Disable SDMA (LP: #1997367)
+    - dmaengine: imx-sdma: restart cyclic channel if needed
+    - dmaengine: imx-sdma: fix cyclic buffer race condition
+    - dmaengine: imx-sdma: only restart cyclic channel when enabled
+
+  * [imx8-bms] Fail to boot OS (LP: #1995467)
+    - SAUCE: serial: sc16is7xx: setup GPIO controller later in probe
+    - SAUCE: serial: sc16is7xx: Change error path order
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 05 Jan 2023 23:08:21 +0800
+
+linux-ein (5.4.0-1029.35) focal; urgency=medium
+
+  * [UC20] Failed to change wifi MAC (LP: #1998279)
+    - SAUCE: ath10k: Add macaddr kernel module parameter
+
+  * Read serial number and MAC address from fuses (device provisioning) (LP:
+    #1991298)
+    - SAUCE: ath10k: Getting macaddr from Uboot
+
+  * Patch file for cascade-kernel (SF: #00347119)
+    - SAUCE: dts: vesta-500: change pad setting to save power
+
+  * Tillamook: Wifi need additional binary file to work (LP: #1990944)
+    - ath10k: add QCA9377 sdio hw_param item
+    - ath10k: switch to ieee80211_tx_dequeue_ni
+    - SAUCE: ath10k: sdio: skip cal_data if without cal_firmware
+
+  * Tillamook: [UC20] Could not detect any USB device (LP: #1991203)
+    - MLK-14285-1 usb: phy: add usb mode for usb_phy
+    - MLK-14285-2 usb: chipidea: set mode for usb phy driver
+    - MLK-13308-2 usb: phy: phy-mxs-usb: handle USB PHY event
+    - MLK-14285-3 usb: phy: mxs: optimize disconnect line condition
+
+  * Tillamook: (image) Secure boot for UC20 (LP: #1991185)
+    - SAUCE: dts: vesta-500: add ocram definition for optee-os
+
+  * Tillamook: (image) Create classic20-x02 image (LP: #1991167)
+    - SAUNCE: dts: add vesta-500 dts and overlay dts
+    - SAUCE: scripts: add support for building dtbo
+    - kbuild: Silence unavoidable dtc overlay warnings
+    - SAUCE: vesta_overlay: support dt overlay for vesta
+    - [Config] enable vesta overlay manager
+
+  * [K4500-NXP] Failed to probe caam_jr device message is shown in dmesg (LP:
+    #1993138)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Disable job ring 2 node
+
+  [ Ubuntu: 5.4.0-135.152 ]
+
+  * focal/linux: 5.4.0-135.152 -proposed tracker (LP: #1997412)
+  * containerd sporadic timeouts (LP: #1996678)
+    - epoll: call final ep_events_available() check under the lock
+    - epoll: check for events when removing a timed out thread from the wait queue
+    - Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
+  * CVE-2022-3621
+    - nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
+  * CVE-2022-3565
+    - mISDN: fix use-after-free bugs in l1oip timer handlers
+  * CVE-2022-3566
+    - tcp: Fix data races around icsk->icsk_af_ops.
+  * CVE-2022-3567
+    - ipv6: annotate some data-races around sk->sk_prot
+    - ipv6: Fix data races around sk->sk_prot.
+  * CVE-2022-3564
+    - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
+  * CVE-2022-3524
+    - tcp/udp: Fix memory leak in ipv6_renew_options().
+  * CVE-2022-3594
+    - r8152: Rate limit overflow messages
+  * CVE-2022-42703
+    - mm/rmap.c: don't reuse anon_vma if we just want a copy
+
+  [ Ubuntu: 5.4.0-132.148 ]
+
+  * CVE-2022-42719
+    - mac80211: mlme: find auth challenge directly
+    - wifi: mac80211: don't parse mbssid in assoc response
+    - wifi: mac80211: fix MBSSID parsing use-after-free
+  * iavf: SR-IOV VFs error with no traffic flow when MTU greater than 1500
+    (LP: #1983656)
+    - iavf: Fix set max MTU size with port VLAN and jumbo frames
+    - i40e: Fix VF set max MTU size
+  * fib_nexthop_nongw.sh from ubuntu_kernel_selftests failed on B-5.4
+    (LP: #1990800)
+    - SAUCE: selftests/net: skipping tests for older ip command releases
+  * CVE-2022-29901
+    - Revert "x86/speculation: Add RSB VM Exit protections"
+    - Revert "x86/cpu: Add a steppings field to struct x86_cpu_id"
+    - x86/devicetable: Move x86 specific macro out of generic code
+    - x86/cpu: Add consistent CPU match macros
+    - x86/cpu: Add a steppings field to struct x86_cpu_id
+    - x86/kvm/vmx: Make noinstr clean
+    - x86/cpufeatures: Move RETPOLINE flags to word 11
+    - x86/bugs: Report AMD retbleed vulnerability
+    - x86/bugs: Add AMD retbleed= boot parameter
+    - x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
+    - x86/entry: Remove skip_r11rcx
+    - x86/entry: Add kernel IBRS implementation
+    - x86/bugs: Optimize SPEC_CTRL MSR writes
+    - x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS
+    - x86/bugs: Split spectre_v2_select_mitigation() and
+      spectre_v2_user_select_mitigation()
+    - x86/bugs: Report Intel retbleed vulnerability
+    - intel_idle: Disable IBRS during long idle
+    - x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
+    - x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n
+    - x86/speculation: Fix firmware entry SPEC_CTRL handling
+    - x86/speculation: Fix SPEC_CTRL write on SMT state change
+    - x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit
+    - x86/speculation: Remove x86_spec_ctrl_mask
+    - KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S
+    - KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw
+    - KVM: VMX: Flatten __vmx_vcpu_run()
+    - KVM: VMX: Convert launched argument to flags
+    - KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
+    - KVM: VMX: Fix IBRS handling after vmexit
+    - x86/speculation: Fill RSB on vmexit for IBRS
+    - x86/common: Stamp out the stepping madness
+    - x86/cpu/amd: Enumerate BTC_NO
+    - x86/bugs: Add Cannon lake to RETBleed affected CPU list
+    - x86/speculation: Disable RRSBA behavior
+    - x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current
+    - x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
+    - x86/speculation: Add RSB VM Exit protections
+  * ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel
+    systems (LP: #1990985)
+    - ACPI: processor_idle: Skip dummy wait if kernel is in guest
+    - ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel
+      systems
+  * cgroup: all controllers mounted when using 'cgroup_no_v1=' (LP: #1988584)
+    - cgroup-v1: add disabled controller check in cgroup1_parse_param()
+  * Focal update: v5.4.212 upstream stable release (LP: #1991156)
+    - audit: fix potential double free on error path from fsnotify_add_inode_mark
+    - parisc: Fix exception handler for fldw and fstw instructions
+    - kernel/sys_ni: add compat entry for fadvise64_64
+    - usb: cdns3: Fix issue for clear halt endpoint
+    - pinctrl: amd: Don't save/restore interrupt status and wake status bits
+    - sched/deadline: Unthrottle PI boosted threads while enqueuing
+    - sched/deadline: Fix stale throttling on de-/boosted tasks
+    - sched/deadline: Fix priority inheritance with multiple scheduling classes
+    - kernel/sched: Remove dl_boosted flag comment
+    - xfrm: fix refcount leak in __xfrm_policy_check()
+    - SUNRPC: RPC level errors should set task->tk_rpc_status
+    - rose: check NULL rose_loopback_neigh->loopback
+    - net/mlx5e: Properly disable vlan strip on non-UL reps
+    - net: moxa: get rid of asymmetry in DMA mapping/unmapping
+    - bonding: 802.3ad: fix no transmission of LACPDUs
+    - net: ipvtap - add __init/__exit annotations to module init/exit funcs
+    - netfilter: ebtables: reject blobs that don't provide all entry points
+    - bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
+    - netfilter: nft_payload: report ERANGE for too long offset and length
+    - netfilter: nft_payload: do not truncate csum_offset and csum_type
+    - netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
+    - netfilter: nft_tunnel: restrict it to netdev family
+    - net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
+    - net: Fix data-races around netdev_tstamp_prequeue.
+    - ratelimit: Fix data-races in ___ratelimit().
+    - net: Fix a data-race around sysctl_tstamp_allow_data.
+    - net: Fix a data-race around sysctl_net_busy_poll.
+    - net: Fix a data-race around sysctl_net_busy_read.
+    - net: Fix a data-race around netdev_budget.
+    - net: Fix a data-race around netdev_budget_usecs.
+    - net: Fix a data-race around sysctl_somaxconn.
+    - ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
+    - btrfs: fix silent failure when deleting root reference
+    - btrfs: replace: drop assert for suspended replace
+    - btrfs: add info when mount fails due to stale replace target
+    - btrfs: check if root is readonly while setting security xattr
+    - x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
+    - loop: Check for overflow while configuring loop
+    - asm-generic: sections: refactor memory_intersects
+    - s390: fix double free of GS and RI CBs on fork() failure
+    - ACPI: processor: Remove freq Qos request for all CPUs
+    - mm/hugetlb: fix hugetlb not supporting softdirty tracking
+    - md: call __md_stop_writes in md_stop
+    - perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
+    - scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
+    - mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
+    - s390/mm: do not trigger write fault when vma does not allow VM_WRITE
+    - x86/bugs: Add "unknown" reporting for MMIO Stale Data
+    - kbuild: Fix include path in scripts/Makefile.modpost
+    - Bluetooth: L2CAP: Fix build errors in some archs
+    - HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
+    - udmabuf: Set the DMA mask for the udmabuf device (v2)
+    - media: pvrusb2: fix memory leak in pvr_probe
+    - HID: hidraw: fix memory leak in hidraw_release()
+    - fbdev: fb_pm2fb: Avoid potential divide by zero error
+    - ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is
+      dead
+    - bpf: Don't redirect packets with invalid pkt_len
+    - mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
+    - btrfs: introduce btrfs_lookup_match_dir
+    - btrfs: do not pin logs too early during renames
+    - btrfs: unify lookup return value when dir entry is missing
+    - drm/amd/display: Avoid MPC infinite loop
+    - drm/amd/display: clear optc underflow before turn off odm clock
+    - neigh: fix possible DoS due to net iface start/stop loop
+    - s390/hypfs: avoid error message under KVM
+    - drm/amd/display: Fix pixel clock programming
+    - netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y
+    - btrfs: tree-checker: check for overlapping extent items
+    - lib/vdso: Let do_coarse() return 0 to simplify the callsite
+    - lib/vdso: Mark do_hres() and do_coarse() as __always_inline
+    - kprobes: don't call disarm_kprobe() for disabled kprobes
+    - net/af_packet: check len when min_header_len equals to 0
+    - net: neigh: don't call kfree_skb() under spin_lock_irqsave()
+    - Linux 5.4.212
+  * Focal update: v5.4.211 upstream stable release (LP: #1990190)
+    - Makefile: link with -z noexecstack --no-warn-rwx-segments
+    - x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
+    - scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
+    - ALSA: bcd2000: Fix a UAF bug on the error path of probing
+    - igc: Remove _I_PHY_ID checking
+    - wifi: mac80211_hwsim: fix race condition in pending packet
+    - wifi: mac80211_hwsim: add back erroneously removed cast
+    - wifi: mac80211_hwsim: use 32-bit skb cookie
+    - add barriers to buffer_uptodate and set_buffer_uptodate
+    - HID: wacom: Only report rotation for art pen
+    - HID: wacom: Don't register pad_input for touch switch
+    - KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
+    - KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
+    - KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
+    - KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
+    - KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
+    - KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
+    - mm/mremap: hold the rmap lock in write mode when moving page table entries.
+    - ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
+    - ALSA: hda/cirrus - support for iMac 12,1 model
+    - ALSA: hda/realtek: Add quirk for another Asus K42JZ model
+    - tty: vt: initialize unicode screen buffer
+    - vfs: Check the truncate maximum size in inode_newsize_ok()
+    - fs: Add missing umask strip in vfs_tmpfile
+    - thermal: sysfs: Fix cooling_device_stats_setup() error code path
+    - fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
+    - usbnet: Fix linkwatch use-after-free on disconnect
+    - ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
+    - parisc: Fix device names in /proc/iomem
+    - parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
+    - drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
+    - drm/nouveau: fix another off-by-one in nvbios_addr
+    - drm/amdgpu: Check BO's requested pinning domains against its
+      preferred_domains
+    - iio: light: isl29028: Fix the warning in isl29028_remove()
+    - fuse: limit nsec
+    - serial: mvebu-uart: uart2 error bits clearing
+    - md-raid10: fix KASAN warning
+    - ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
+    - PCI: Add defines for normal and subtractive PCI bridges
+    - powerpc/fsl-pci: Fix Class Code of PCIe Root Port
+    - powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
+    - powerpc/powernv: Avoid crashing if rng is NULL
+    - MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
+    - coresight: Clear the connection field properly
+    - USB: HCD: Fix URB giveback issue in tasklet function
+    - ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
+    - arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
+    - netfilter: nf_tables: fix null deref due to zeroed list head
+    - epoll: autoremove wakers even more aggressively
+    - x86: Handle idle=nomwait cmdline properly for x86_idle
+    - arm64: Do not forget syscall when starting a new thread.
+    - arm64: fix oops in concurrently setting insn_emulation sysctls
+    - ext2: Add more validity checks for inode counts
+    - genirq: Don't return error on missing optional irq_request_resources()
+    - wait: Fix __wait_event_hrtimeout for RT/DL tasks
+    - ARM: dts: imx6ul: add missing properties for sram
+    - ARM: dts: imx6ul: change operating-points to uint32-matrix
+    - ARM: dts: imx6ul: fix csi node compatible
+    - ARM: dts: imx6ul: fix lcdif node compatible
+    - ARM: dts: imx6ul: fix qspi node compatible
+    - spi: synquacer: Add missing clk_disable_unprepare()
+    - ARM: OMAP2+: display: Fix refcount leak bug
+    - ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
+    - ACPI: PM: save NVS memory for Lenovo G40-45
+    - ACPI: LPSS: Fix missing check in register_device_clock()
+    - arm64: dts: qcom: ipq8074: fix NAND node name
+    - arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
+    - ARM: shmobile: rcar-gen2: Increase refcount for new reference
+    - PM: hibernate: defer device probing when resuming from hibernation
+    - selinux: Add boundary check in put_entry()
+    - spi: spi-rspi: Fix PIO fallback on RZ platforms
+    - ARM: findbit: fix overflowing offset
+    - meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
+    - ARM: bcm: Fix refcount leak in bcm_kona_smc_init
+    - x86/pmem: Fix platform-device leak in error path
+    - ARM: dts: ast2500-evb: fix board compatible
+    - ARM: dts: ast2600-evb: fix board compatible
+    - soc: fsl: guts: machine variable might be unset
+    - ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
+    - ARM: OMAP2+: Fix refcount leak in omapdss_init_of
+    - ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
+    - cpufreq: zynq: Fix refcount leak in zynq_get_revision
+    - soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
+    - ARM: dts: qcom: pm8841: add required thermal-sensor-cells
+    - bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
+    - arm64: dts: mt7622: fix BPI-R64 WPS button
+    - erofs: avoid consecutive detection for Highmem memory
+    - blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
+    - regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
+    - nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
+    - thermal/tools/tmon: Include pthread and time headers in tmon.h
+    - dm: return early from dm_pr_call() if DM device is suspended
+    - ath10k: do not enforce interrupt trigger type
+    - wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
+    - drm/mipi-dbi: align max_chunk to 2 in spi_transfer
+    - drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
+    - drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
+    - drm: adv7511: override i2c address of cec before accessing it
+    - i2c: Fix a potential use after free
+    - media: tw686x: Register the irq at the end of probe
+    - wifi: iwlegacy: 4965: fix potential off-by-one overflow in
+      il4965_rs_fill_link_cmd()
+    - drm: bridge: adv7511: Add check for mipi_dsi_driver_register
+    - drm/mcde: Fix refcount leak in mcde_dsi_bind
+    - media: hdpvr: fix error value returns in hdpvr_read
+    - drm/vc4: plane: Remove subpixel positioning check
+    - drm/vc4: plane: Fix margin calculations for the right/bottom edges
+    - drm/vc4: dsi: Correct DSI divider calculations
+    - crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
+    - drm/rockchip: vop: Don't crash for invalid duplicate_state()
+    - drm/rockchip: Fix an error handling path rockchip_dp_probe()
+    - drm/mediatek: dpi: Remove output format of YUV
+    - drm/mediatek: dpi: Only enable dpi after the bridge is enabled
+    - drm: bridge: sii8620: fix possible off-by-one
+    - drm/msm/mdp5: Fix global state lock backoff
+    - crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
+    - media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
+    - mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
+    - drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
+    - tcp: make retransmitted SKB fit into the send window
+    - libbpf: Fix the name of a reused map
+    - selftests: timers: valid-adjtimex: build fix for newer toolchains
+    - selftests: timers: clocksource-switch: fix passing errors from child
+    - fs: check FMODE_LSEEK to control internal pipe splicing
+    - wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
+    - wifi: p54: Fix an error handling path in p54spi_probe()
+    - wifi: p54: add missing parentheses in p54_flush()
+    - selftests/bpf: fix a test for snprintf() overflow
+    - can: pch_can: do not report txerr and rxerr during bus-off
+    - can: rcar_can: do not report txerr and rxerr during bus-off
+    - can: sja1000: do not report txerr and rxerr during bus-off
+    - can: hi311x: do not report txerr and rxerr during bus-off
+    - can: sun4i_can: do not report txerr and rxerr during bus-off
+    - can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
+    - can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
+    - can: usb_8dev: do not report txerr and rxerr during bus-off
+    - can: error: specify the values of data[5..7] of CAN error frames
+    - can: pch_can: pch_can_error(): initialize errc before using it
+    - Bluetooth: hci_intel: Add check for platform_driver_register
+    - i2c: cadence: Support PEC for SMBus block read
+    - i2c: mux-gpmux: Add of_node_put() when breaking out of loop
+    - wifi: wil6210: debugfs: fix uninitialized variable use in
+      `wil_write_file_wmi()`
+    - wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
+    - wifi: libertas: Fix possible refcount leak in if_usb_probe()
+    - net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
+    - crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
+    - iavf: Fix max_rate limiting
+    - netdevsim: Avoid allocation warnings triggered from user space
+    - net: rose: fix netdev reference changes
+    - dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
+    - clk: renesas: r9a06g032: Fix UART clkgrp bitsel
+    - mtd: maps: Fix refcount leak in of_flash_probe_versatile
+    - mtd: maps: Fix refcount leak in ap_flash_init
+    - mtd: rawnand: meson: Fix a potential double free issue
+    - HID: cp2112: prevent a buffer overflow in cp2112_xfer()
+    - mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
+    - mtd: partitions: Fix refcount leak in parse_redboot_of
+    - mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
+    - fpga: altera-pr-ip: fix unsigned comparison with less than zero
+    - usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
+    - usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
+    - usb: xhci: tegra: Fix error check
+    - clk: mediatek: reset: Fix written reset bit offset
+    - misc: rtsx: Fix an error handling path in rtsx_pci_probe()
+    - driver core: fix potential deadlock in __driver_attach
+    - clk: qcom: clk-krait: unlock spin after mux completion
+    - usb: host: xhci: use snprintf() in xhci_decode_trb()
+    - clk: qcom: ipq8074: fix NSS port frequency tables
+    - clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
+    - clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
+    - soundwire: bus_type: fix remove and shutdown support
+    - intel_th: Fix a resource leak in an error handling path
+    - intel_th: msu-sink: Potential dereference of null pointer
+    - intel_th: msu: Fix vmalloced buffers
+    - staging: rtl8192u: Fix sleep in atomic context bug in
+      dm_fsync_timer_callback
+    - mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
+    - memstick/ms_block: Fix some incorrect memory allocation
+    - memstick/ms_block: Fix a memory leak
+    - mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
+    - scsi: smartpqi: Fix DMA direction for RAID requests
+    - usb: gadget: udc: amd5536 depends on HAS_DMA
+    - RDMA/hns: Fix incorrect clearing of interrupt status register
+    - RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
+    - RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
+    - gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
+    - mmc: cavium-octeon: Add of_node_put() when breaking out of loop
+    - mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
+    - HID: alps: Declare U1_UNICORN_LEGACY support
+    - PCI: tegra194: Fix Root Port interrupt handling
+    - PCI: tegra194: Fix link up retry sequence
+    - USB: serial: fix tty-port initialized comments
+    - platform/olpc: Fix uninitialized data in debugfs write
+    - mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
+    - RDMA/rxe: Fix error unwind in rxe_create_qp()
+    - null_blk: fix ida error handling in null_add_dev()
+    - jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
+    - ext4: recover csum seed of tmp_inode after migrating to extents
+    - jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
+    - opp: Fix error check in dev_pm_opp_attach_genpd()
+    - ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
+    - ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
+    - ASoC: codecs: da7210: add check for i2c_add_driver
+    - ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
+    - serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
+    - ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
+    - ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
+    - profiling: fix shift too large makes kernel panic
+    - tty: n_gsm: fix non flow control frames during mux flow off
+    - tty: n_gsm: fix packet re-transmission without open control channel
+    - tty: n_gsm: fix race condition in gsmld_write()
+    - remoteproc: qcom: wcnss: Fix handling of IRQs
+    - vfio/ccw: Do not change FSM state in subchannel event
+    - tty: n_gsm: fix wrong T1 retry count handling
+    - tty: n_gsm: fix DM command
+    - tty: n_gsm: fix missing corner cases in gsmld_poll()
+    - iommu/exynos: Handle failed IOMMU device registration properly
+    - rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
+    - kfifo: fix kfifo_to_user() return type
+    - mfd: t7l66xb: Drop platform disable callback
+    - mfd: max77620: Fix refcount leak in max77620_initialise_fps
+    - iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
+    - s390/zcore: fix race when reading from hardware system area
+    - ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
+    - fuse: Remove the control interface for virtio-fs
+    - ASoC: audio-graph-card: Add of_node_put() in fail path
+    - watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in
+      armada_37xx_wdt_probe()
+    - video: fbdev: amba-clcd: Fix refcount leak bugs
+    - video: fbdev: sis: fix typos in SiS_GetModeID()
+    - powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
+    - powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and
+      alias
+    - powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
+    - powerpc/xive: Fix refcount leak in xive_get_max_prio
+    - powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
+    - perf symbol: Fail to read phdr workaround
+    - kprobes: Forbid probing on trampoline and BPF code areas
+    - powerpc/pci: Fix PHB numbering when using opal-phbid
+    - genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
+    - scripts/faddr2line: Fix vmlinux detection on arm64
+    - x86/numa: Use cpumask_available instead of hardcoded NULL check
+    - video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
+    - tools/thermal: Fix possible path truncations
+    - video: fbdev: vt8623fb: Check the size of screen before memset_io()
+    - video: fbdev: arkfb: Check the size of screen before memset_io()
+    - video: fbdev: s3fb: Check the size of screen before memset_io()
+    - scsi: zfcp: Fix missing auto port scan and thus missing target ports
+    - scsi: qla2xxx: Fix discovery issues in FC-AL topology
+    - scsi: qla2xxx: Turn off multi-queue for 8G adapters
+    - scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
+    - x86/olpc: fix 'logical not is only applied to the left hand side'
+    - spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
+    - kexec, KEYS, s390: Make use of built-in and secondary keyring for signature
+      verification
+    - tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
+    - btrfs: reset block group chunk force if we have to wait
+    - ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
+    - ext4: make sure ext4_append() always allocates new block
+    - ext4: fix use-after-free in ext4_xattr_set_entry
+    - ext4: update s_overhead_clusters in the superblock during an on-line resize
+    - ext4: fix extent status tree race in writeback error recovery path
+    - ext4: correct max_inline_xattr_value_size computing
+    - ext4: correct the misjudgment in ext4_iget_extra_inode
+    - intel_th: pci: Add Raptor Lake-S CPU support
+    - intel_th: pci: Add Raptor Lake-S PCH support
+    - intel_th: pci: Add Meteor Lake-P support
+    - dm raid: fix address sanitizer warning in raid_resume
+    - dm raid: fix address sanitizer warning in raid_status
+    - dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
+    - dm writecache: set a default MAX_WRITEBACK_JOBS
+    - ACPI: CPPC: Do not prevent CPPC from working in the future
+    - timekeeping: contribute wall clock to rng on time change
+    - firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
+    - iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
+    - btrfs: reject log replay if there is unsupported RO compat flag
+    - KVM: Add infrastructure and macro to mark VM as bugged
+    - KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
+    - KVM: x86: Avoid theoretical NULL pointer dereference in
+      kvm_irq_delivery_to_apic_fast()
+    - tcp: fix over estimation in sk_forced_mem_schedule()
+    - scsi: sg: Allow waiting for commands to complete on removed device
+    - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
+    - net/9p: Initialize the iounit field during fid creation
+    - net_sched: cls_route: disallow handle of 0
+    - ALSA: info: Fix llseek return value when using callback
+    - rds: add missing barrier to release_refill
+    - ata: libata-eh: Add missing command name
+    - mmc: pxamci: Fix another error handling path in pxamci_probe()
+    - mmc: pxamci: Fix an error handling path in pxamci_probe()
+    - btrfs: fix lost error handling when looking up extended ref on log replay
+    - tracing: Have filter accept "common_cpu" to be consistent
+    - can: ems_usb: fix clang's -Wunaligned-access warning
+    - apparmor: fix quiet_denied for file rules
+    - apparmor: fix absroot causing audited secids to begin with =
+    - apparmor: Fix failed mount permission check error message
+    - apparmor: fix aa_label_asxprint return check
+    - apparmor: fix overlapping attachment computation
+    - apparmor: fix reference count leak in aa_pivotroot()
+    - apparmor: Fix memleak in aa_simple_write_to_buffer()
+    - Documentation: ACPI: EINJ: Fix obsolete example
+    - NFSv4.1: Don't decrease the value of seq_nr_highest_sent
+    - NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
+    - NFSv4: Fix races in the legacy idmapper upcall
+    - NFSv4.1: RECLAIM_COMPLETE must handle EACCES
+    - NFSv4/pnfs: Fix a use-after-free bug in open
+    - can: mcp251x: Fix race condition on receive interrupt
+    - sunrpc: fix expiry of auth creds
+    - SUNRPC: Reinitialise the backchannel request buffers before reuse
+    - devlink: Fix use-after-free after a failed reload
+    - net: bgmac: Fix a BUG triggered by wrong bytes_compl
+    - pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
+    - pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
+    - pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
+    - ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
+    - geneve: do not use RT_TOS for IPv6 flowlabel
+    - plip: avoid rcu debug splat
+    - vsock: Fix memory leak in vsock_connect()
+    - vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
+    - dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
+    - tools/vm/slabinfo: use alphabetic order when two values are equal
+    - tools build: Switch to new openssl API for test-libcrypto
+    - NTB: ntb_tool: uninitialized heap data in tool_fn_write()
+    - nfp: ethtool: fix the display error of `ethtool -m DEVNAME`
+    - xen/xenbus: fix return type in xenbus_file_read()
+    - atm: idt77252: fix use-after-free bugs caused by tst_timer
+    - dpaa2-eth: trace the allocated address instead of page struct
+    - tee: add overflow check in register_shm_helper()
+    - nios2: page fault et.al. are *not* restartable syscalls...
+    - nios2: don't leave NULLs in sys_call_table[]
+    - nios2: traced syscall does need to check the syscall number
+    - nios2: fix syscall restart checks
+    - nios2: restarts apply only to the first sigframe we build...
+    - nios2: add force_successful_syscall_return()
+    - iavf: Fix adminq error handling
+    - clk: rockchip: add sclk_mac_lbtest to rk3188_critical_clocks
+    - netfilter: nf_tables: really skip inactive sets when allocating name
+    - powerpc/pci: Fix get_phb_number() locking
+    - net: dsa: mv88e6060: prevent crash on an unused port
+    - net: moxa: pass pdev instead of ndev to DMA functions
+    - net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
+    - ice: Ignore EEXIST when setting promisc mode
+    - i40e: Fix to stop tx_timeout recovery if GLOBR fails
+    - fec: Fix timer capture timing in `fec_ptp_enable_pps()`
+    - igb: Add lock to avoid data race
+    - gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
+    - locking/atomic: Make test_and_*_bit() ordered on failure
+    - drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
+    - PCI: Add ACS quirk for Broadcom BCM5750x NICs
+    - usb: cdns3 fix use-after-free at workaround 2
+    - usb: gadget: uvc: call uvc uvcg_warn on completed status instead of
+      uvcg_info
+    - irqchip/tegra: Fix overflow implicit truncation warnings
+    - drm/meson: Fix overflow implicit truncation warnings
+    - usb: host: ohci-ppc-of: Fix refcount leak bug
+    - usb: renesas: Fix refcount leak bug
+    - vboxguest: Do not use devm for irq
+    - clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
+    - scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user
+      input
+    - gadgetfs: ep_io - wait until IRQ finishes
+    - cxl: Fix a memory leak in an error handling path
+    - PCI/ACPI: Guard ARM64-specific mcfg_quirks
+    - um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
+    - selftests/kprobe: Do not test for GRP/ without event failures
+    - dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
+    - nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
+    - drivers:md:fix a potential use-after-free bug
+    - ext4: avoid remove directory when directory is corrupted
+    - ext4: avoid resizing to a partial cluster size
+    - lib/list_debug.c: Detect uninitialized lists
+    - tty: serial: Fix refcount leak bug in ucc_uart.c
+    - vfio: Clear the caps->buf to NULL after free
+    - mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
+    - riscv: mmap with PROT_WRITE but no PROT_READ is invalid
+    - RISC-V: Add fast call path of crash_kexec()
+    - watchdog: export lockup_detector_reconfigure
+    - powerpc/32: Don't always pass -mcpu=powerpc to the compiler
+    - ALSA: core: Add async signal helpers
+    - ALSA: timer: Use deferred fasync helper
+    - f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
+    - smb3: check xattr value length earlier
+    - powerpc/64: Init jump labels before parse_early_param()
+    - video: fbdev: i740fb: Check the argument of i740_calc_vclk()
+    - MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
+    - tracing/probes: Have kprobes and uprobes use $COMM too
+    - can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with
+      netdev_warn_once()
+    - can: j1939: j1939_session_destroy(): fix memory leak of skbs
+    - btrfs: only write the sectors in the vertical stripe which has data stripes
+    - btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
+    - Linux 5.4.211
+  * CVE-2022-3028
+    - af_key: Do not call xfrm_probe_algs in parallel
+  * CVE-2022-2978
+    - fs: fix UAF/GPF bug in nilfs_mdt_destroy
+  * CVE-2022-40768
+    - scsi: stex: Properly zero out the passthrough command structure
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 05 Dec 2022 19:40:05 +0800
+
+linux-ein (5.4.0-1028.34) focal; urgency=medium
+
+  * Dummy entry.
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 05 Dec 2022 14:25:56 +0800
+
+linux-imx (5.4.0-1028.34) focal; urgency=medium
+
+  * Focal update: v5.4.208 upstream stable release (LP: #1988225)
+    - [Config] updateconfigs for IMA_TEMPLATE
+    - [Config] updateconfigs for REFCOUNT_FULL
+
+  * [K4500-NXP][UC20] Integrate graphics driver needed for running QT
+    application (LP: #1990021)
+    - SAUCE: drm: AVD101WX-CN: Assigned bus format to fix warning:
+    - Revert "UBUNTU: SAUCE: arm64: dts: kdp-sm2s-imx8mm: Remove gpu node now at
+      the imx8mm.dtsi contains gpu nodes."
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Remove the 2d/3d GPU nodes that enable
+      the etnaviv driver.
+
+  * M4-RPMSG driver race condition (LP: #1991153)
+    - SAUCE: rpmsg: Fix race condition
+    - SAUCE: rpmsg: Use static prefix for globals
+    - SAUCE: rpmsg: Code clean-up
+
+  * [imx8-pdk] Fail to run perf (LP: #1987467)
+    - tools: perf: metricgroup: add metricgroup for each PMU
+    - perf vendor events: add JSON metrics for imx8 DDR Perf
+    - MLK-23195-4 tool: perf: imx8mp-ddr: correct the master ID
+    - MLK-23302-1 tools: perf: pmu-event: add socname for struct pmu_event
+    - MLK-23302-2 tools: perf: header: add support for checking socname
+    - MLK-23302-3 tools: perf: metricgroup: match metric with socname if needed
+    - MLK-23302-4 tools: perf: pmu-events: add SocName in DDR JSON file
+    - MLK-23724-1 tools: perf: fix metricgroup add metric events multiple times
+    - perf stat: Improve runtime stat for interval mode
+    - MLK-24053-2 perf vendor events: add ddr bandwidth usage metric for i.MX8MP
+    - perf/imx_ddr: Add driver for DDR PMU in i.MX8MPlus
+    - perf/imx_ddr: Dump AXI ID filter info to userspace
+    - perf/imx_ddr: Add stop event counters support for i.MX8MP
+    - MLK-23195-3 perf/imx_ddr: speed up overflow frequency of cycle counter
+    - bindings: perf: imx-ddr: Add new compatible string
+    - MLK-23417-1 perf/imx_ddr: Add AXI ID PORT CHANNEL filter support
+    - MLK-23417-3 perf/imx_ddr: Add driver support for i.MX8DXL DDR Perf
+    - MLK-23418-1 perf/imx_ddr: Extend driver for PMU in DRAM Block(DB)
+    - MLK-23418-3 perf/imx_ddr: Add clock support for Perf in DB
+    - MLK-23418-4 perf/imx_ddr: Add driver support for i.MX8DXL DB Perf
+
+  [ Ubuntu: 5.4.0-131.147 ]
+
+  * CVE-2022-2602
+    - SAUCE: io_uring/af_unix: defer registered files gc to io_uring release
+    - SAUCE: io_uring/af_unix: fix memleak during unix GC
+  * CVE-2022-41674
+    - SAUCE: wifi: cfg80211: fix u8 overflow in
+      cfg80211_update_notlisted_nontrans()
+    - SAUCE: wifi: cfg80211/mac80211: reject bad MBSSID elements
+    - SAUCE: wifi: cfg80211: ensure length byte is present before access
+    - SAUCE: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
+    - SAUCE: wifi: cfg80211: update hidden BSSes to avoid WARN_ON
+  * CVE-2022-42721
+    - SAUCE: wifi: cfg80211: avoid nontransmitted BSS list corruption
+  * CVE-2022-42720
+    - SAUCE: wifi: cfg80211: fix BSS refcounting bugs
+
+  [ Ubuntu: 5.4.0-128.144 ]
+
+  * focal/linux: 5.4.0-128.144 -proposed tracker (LP: #1990152)
+  * CVE-2022-3176
+    - io_uring: disable polling pollfree files
+  * ip/nexthop: fix default address selection for connected nexthop
+    (LP: #1988809)
+    - selftests/net: test nexthop without gw
+  * ip/nexthop: fix default address selection for connected nexthop
+    (LP: #1988809) // icmp_redirect.sh in ubuntu_kernel_selftests failed on
+    Jammy 5.15.0-49.55 (LP: #1990124)
+    - ip: fix triggering of 'icmp redirect'
+
+  [ Ubuntu: 5.4.0-127.143 ]
+
+  * focal/linux: 5.4.0-127.143 -proposed tracker (LP: #1989892)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.09.19)
+  * [UBUNTU 20.04] mlx5 driver crashes on accessing device attributes during
+    recovery (LP: #1987287)
+    - net/mlx5: Avoid processing commands before cmdif is ready
+  * Focal update: v5.4.210 upstream stable release (LP: #1989230)
+    - thermal: Fix NULL pointer dereferences in of_thermal_ functions
+    - ACPI: video: Force backlight native for some TongFang devices
+    - ACPI: video: Shortening quirk list by identifying Clevo by board_name only
+    - ACPI: APEI: Better fix to avoid spamming the console with old error logs
+    - bpf: Verifer, adjust_scalar_min_max_vals to always call update_reg_bounds()
+    - selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads
+    - bpf: Test_verifier, #70 error message updates for 32-bit right shift
+    - KVM: Don't null dereference ops->destroy
+    - selftests: KVM: Handle compiler optimizations in ucall
+    - media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
+    - macintosh/adb: fix oob read in do_adb_query() function
+    - x86/speculation: Add RSB VM Exit protections
+    - x86/speculation: Add LFENCE to RSB fill sequence
+    - Linux 5.4.210
+  * Focal update: v5.4.209 upstream stable release (LP: #1989228)
+    - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
+    - ntfs: fix use-after-free in ntfs_ucsncmp()
+    - s390/archrandom: prevent CPACF trng invocations in interrupt context
+    - tcp: Fix data-races around sysctl_tcp_dsack.
+    - tcp: Fix a data-race around sysctl_tcp_app_win.
+    - tcp: Fix a data-race around sysctl_tcp_adv_win_scale.
+    - tcp: Fix a data-race around sysctl_tcp_frto.
+    - tcp: Fix a data-race around sysctl_tcp_nometrics_save.
+    - ice: check (DD | EOF) bits on Rx descriptor rather than (EOP | RS)
+    - ice: do not setup vlan for loopback VSI
+    - scsi: ufs: host: Hold reference returned by of_parse_phandle()
+    - tcp: Fix a data-race around sysctl_tcp_limit_output_bytes.
+    - tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit.
+    - net: ping6: Fix memleak in ipv6_renew_options().
+    - ipv6/addrconf: fix a null-ptr-deref bug for ip6_ptr
+    - igmp: Fix data-races around sysctl_igmp_qrv.
+    - net: sungem_phy: Add of_node_put() for reference returned by of_get_parent()
+    - tcp: Fix a data-race around sysctl_tcp_min_tso_segs.
+    - tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen.
+    - tcp: Fix a data-race around sysctl_tcp_autocorking.
+    - tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
+    - Documentation: fix sctp_wmem in ip-sysctl.rst
+    - tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns.
+    - tcp: Fix a data-race around sysctl_tcp_comp_sack_nr.
+    - i40e: Fix interface init with MSI interrupts (no MSI-X)
+    - sctp: fix sleep in atomic context bug in timer handlers
+    - virtio-net: fix the race between refill work and close
+    - perf symbol: Correct address for bss symbols
+    - sfc: disable softirqs for ptp TX
+    - sctp: leave the err path free in sctp_stream_init to sctp_stream_free
+    - ARM: crypto: comment out gcc warning that breaks clang builds
+    - mt7601u: add USB device ID for some versions of XiaoDu WiFi Dongle.
+    - scsi: core: Fix race between handling STS_RESOURCE and completion
+    - Linux 5.4.209
+  * Focal update: v5.4.208 upstream stable release (LP: #1988225)
+    - pinctrl: stm32: fix optional IRQ support to gpios
+    - riscv: add as-options for modules with assembly compontents
+    - mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication
+    - lockdown: Fix kexec lockdown bypass with ima policy
+    - xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE
+    - PCI: hv: Fix multi-MSI to allow more than one MSI vector
+    - PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
+    - PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
+    - PCI: hv: Fix interrupt mapping for multi-MSI
+    - serial: mvebu-uart: correctly report configured baudrate value
+    - xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in
+      xfrm_bundle_lookup()
+    - power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe
+    - pinctrl: ralink: Check for null return of devm_kcalloc
+    - perf/core: Fix data race between perf_event_set_output() and
+      perf_mmap_close()
+    - igc: Reinstate IGC_REMOVED logic and implement it properly
+    - ip: Fix data-races around sysctl_ip_no_pmtu_disc.
+    - ip: Fix data-races around sysctl_ip_fwd_use_pmtu.
+    - ip: Fix data-races around sysctl_ip_nonlocal_bind.
+    - ip: Fix a data-race around sysctl_fwmark_reflect.
+    - tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
+    - tcp: Fix data-races around sysctl_tcp_mtu_probing.
+    - tcp: Fix data-races around sysctl_tcp_base_mss.
+    - tcp: Fix data-races around sysctl_tcp_min_snd_mss.
+    - tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor.
+    - tcp: Fix a data-race around sysctl_tcp_probe_threshold.
+    - tcp: Fix a data-race around sysctl_tcp_probe_interval.
+    - i2c: cadence: Change large transfer count reset logic to be unconditional
+    - net: stmmac: fix dma queue left shift overflow issue
+    - net/tls: Fix race in TLS device down flow
+    - igmp: Fix data-races around sysctl_igmp_llm_reports.
+    - igmp: Fix a data-race around sysctl_igmp_max_memberships.
+    - tcp: Fix data-races around sysctl_tcp_syncookies.
+    - tcp: Fix data-races around sysctl_tcp_reordering.
+    - tcp: Fix data-races around some timeout sysctl knobs.
+    - tcp: Fix a data-race around sysctl_tcp_notsent_lowat.
+    - tcp: Fix a data-race around sysctl_tcp_tw_reuse.
+    - tcp: Fix data-races around sysctl_max_syn_backlog.
+    - tcp: Fix data-races around sysctl_tcp_fastopen.
+    - iavf: Fix handling of dummy receive descriptors
+    - i40e: Fix erroneous adapter reinitialization during recovery process
+    - ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero
+    - gpio: pca953x: only use single read/write for No AI mode
+    - be2net: Fix buffer overflow in be_get_module_eeprom
+    - ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh.
+    - udp: Fix a data-race around sysctl_udp_l3mdev_accept.
+    - tcp: Fix data-races around sysctl knobs related to SYN option.
+    - tcp: Fix a data-race around sysctl_tcp_early_retrans.
+    - tcp: Fix data-races around sysctl_tcp_recovery.
+    - tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts.
+    - tcp: Fix data-races around sysctl_tcp_slow_start_after_idle.
+    - tcp: Fix a data-race around sysctl_tcp_retrans_collapse.
+    - tcp: Fix a data-race around sysctl_tcp_stdurg.
+    - tcp: Fix a data-race around sysctl_tcp_rfc1337.
+    - tcp: Fix data-races around sysctl_tcp_max_reordering.
+    - spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA
+      transfers
+    - mm/mempolicy: fix uninit-value in mpol_rebind_policy()
+    - bpf: Make sure mac_header was set before using it
+    - dlm: fix pending remove if msg allocation fails
+    - ima: remove the IMA_TEMPLATE Kconfig option
+    - [Config] updateconfigs for IMA_TEMPLATE
+    - locking/refcount: Define constants for saturation and max refcount values
+    - locking/refcount: Ensure integer operands are treated as signed
+    - locking/refcount: Remove unused refcount_*_checked() variants
+    - locking/refcount: Move the bulk of the REFCOUNT_FULL implementation into the
+      <linux/refcount.h> header
+    - locking/refcount: Improve performance of generic REFCOUNT_FULL code
+    - locking/refcount: Move saturation warnings out of line
+    - locking/refcount: Consolidate REFCOUNT_{MAX,SATURATED} definitions
+    - locking/refcount: Consolidate implementations of refcount_t
+    - [Config] updateconfigs for REFCOUNT_FULL
+    - x86: get rid of small constant size cases in raw_copy_{to,from}_user()
+    - x86/uaccess: Implement macros for CMPXCHG on user addresses
+    - mmap locking API: initial implementation as rwsem wrappers
+    - x86/mce: Deduplicate exception handling
+    - bitfield.h: Fix "type of reg too small for mask" test
+    - ALSA: memalloc: Align buffer allocations in page size
+    - Bluetooth: Add bt_skb_sendmsg helper
+    - Bluetooth: Add bt_skb_sendmmsg helper
+    - Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg
+    - Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg
+    - Bluetooth: Fix passing NULL to PTR_ERR
+    - Bluetooth: SCO: Fix sco_send_frame returning skb->len
+    - Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks
+    - tty: drivers/tty/, stop using tty_schedule_flip()
+    - tty: the rest, stop using tty_schedule_flip()
+    - tty: drop tty_schedule_flip()
+    - tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push()
+    - tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
+    - x86: drop bogus "cc" clobber from __try_cmpxchg_user_asm()
+    - Linux 5.4.208
+  * Focal update: v5.4.207 upstream stable release (LP: #1988219)
+    - ALSA: hda - Add fixup for Dell Latitidue E5430
+    - ALSA: hda/conexant: Apply quirk for another HP ProDesk 600 G3 model
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc221
+    - ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
+    - xen/netback: avoid entering xenvif_rx_next_skb() with an empty rx queue
+    - tracing/histograms: Fix memory leak problem
+    - net: sock: tracing: Fix sock_exceed_buf_limit not to dereference stale
+      pointer
+    - ip: fix dflt addr selection for connected nexthop
+    - ARM: 9213/1: Print message about disabled Spectre workarounds only once
+    - ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
+    - wifi: mac80211: fix queue selection for mesh/OCB interfaces
+    - cgroup: Use separate src/dst nodes when preloading css_sets for migration
+    - drm/panfrost: Fix shrinker list corruption by madvise IOCTL
+    - nilfs2: fix incorrect masking of permission flags for symlinks
+    - Revert "evm: Fix memleak in init_desc"
+    - sched/rt: Disable RT_RUNTIME_SHARE by default
+    - ext4: fix race condition between ext4_write and ext4_convert_inline_data
+    - ARM: dts: imx6qdl-ts7970: Fix ngpio typo and count
+    - ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle
+    - ARM: 9210/1: Mark the FDT_FIXED sections as shareable
+    - drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector()
+    - ima: Fix a potential integer overflow in ima_appraise_measurement
+    - ASoC: sgtl5000: Fix noise on shutdown/remove
+    - net: stmmac: dwc-qos: Disable split header for Tegra194
+    - inetpeer: Fix data-races around sysctl.
+    - net: Fix data-races around sysctl_mem.
+    - cipso: Fix data-races around sysctl.
+    - icmp: Fix data-races around sysctl.
+    - ipv4: Fix a data-race around sysctl_fib_sync_mem.
+    - ARM: dts: at91: sama5d2: Fix typo in i2s1 node
+    - ARM: dts: sunxi: Fix SPI NOR campatible on Orange Pi Zero
+    - drm/i915/gt: Serialize TLB invalidates with GT resets
+    - icmp: Fix a data-race around sysctl_icmp_ratelimit.
+    - icmp: Fix a data-race around sysctl_icmp_ratemask.
+    - raw: Fix a data-race around sysctl_raw_l3mdev_accept.
+    - ipv4: Fix data-races around sysctl_ip_dynaddr.
+    - net: ftgmac100: Hold reference returned by of_get_child_by_name()
+    - sfc: fix use after free when disabling sriov
+    - seg6: fix skb checksum evaluation in SRH encapsulation/insertion
+    - seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors
+    - seg6: bpf: fix skb checksum in bpf_push_seg6_encap()
+    - sfc: fix kernel panic when creating VF
+    - mm: sysctl: fix missing numa_stat when !CONFIG_HUGETLB_PAGE
+    - virtio_mmio: Add missing PM calls to freeze/restore
+    - virtio_mmio: Restore guest page size on resume
+    - netfilter: br_netfilter: do not skip all hooks with 0 priority
+    - cpufreq: pmac32-cpufreq: Fix refcount leak bug
+    - platform/x86: hp-wmi: Ignore Sanitization Mode event
+    - net: tipc: fix possible refcount leak in tipc_sk_create()
+    - NFC: nxp-nci: don't print header length mismatch on i2c error
+    - nvme: fix regression when disconnect a recovering ctrl
+    - net: sfp: fix memory leak in sfp_probe()
+    - ASoC: ops: Fix off by one in range control validation
+    - ASoC: wm5110: Fix DRE control
+    - ASoC: cs47l15: Fix event generation for low power mux control
+    - ASoC: madera: Fix event generation for OUT1 demux
+    - ASoC: madera: Fix event generation for rate controls
+    - irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
+    - x86: Clear .brk area at early boot
+    - soc: ixp4xx/npe: Fix unused match warning
+    - ARM: dts: stm32: use the correct clock source for CEC on stm32mp151
+    - signal handling: don't use BUG_ON() for debugging
+    - USB: serial: ftdi_sio: add Belimo device ids
+    - usb: typec: add missing uevent when partner support PD
+    - usb: dwc3: gadget: Fix event pending check
+    - tty: serial: samsung_tty: set dma burst_size to 1
+    - serial: 8250: fix return error code in serial8250_request_std_resource()
+    - serial: stm32: Clear prev values before setting RTS delays
+    - serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle
+    - can: m_can: m_can_tx_handler(): fix use after free of skb
+    - Linux 5.4.207
+  * Focal update: v5.4.206 upstream stable release (LP: #1988215)
+    - Linux 5.4.206
+  * Focal update: v5.4.205 upstream stable release (LP: #1988214)
+    - esp: limit skb_page_frag_refill use to a single page
+    - mm/slub: add missing TID updates on slab deactivation
+    - can: bcm: use call_rcu() instead of costly synchronize_rcu()
+    - can: grcan: grcan_probe(): remove extra of_node_get()
+    - can: gs_usb: gs_usb_open/close(): fix memory leak
+    - usbnet: fix memory leak in error case
+    - net: rose: fix UAF bug caused by rose_t0timer_expiry
+    - iommu/vt-d: Fix PCI bus rescan device hot add
+    - fbdev: fbmem: Fix logo center image dx issue
+    - video: of_display_timing.h: include errno.h
+    - powerpc/powernv: delay rng platform device creation until later in boot
+    - can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info
+    - can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression
+    - can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits
+    - xfs: remove incorrect ASSERT in xfs_rename
+    - ARM: meson: Fix refcount leak in meson_smp_prepare_cpus
+    - pinctrl: sunxi: a83t: Fix NAND function name for some pins
+    - pinctrl: sunxi: sunxi_pconf_set: use correct offset
+    - ARM: at91: pm: use proper compatible for sama5d2's rtc
+    - ARM: at91: pm: use proper compatibles for sam9x60's rtc and rtt
+    - ibmvnic: Properly dispose of all skbs during a failover.
+    - selftests: forwarding: fix flood_unicast_test when h2 supports
+      IFF_UNICAST_FLT
+    - selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT
+    - selftests: forwarding: fix error message in learning_test
+    - i2c: cadence: Unregister the clk notifier in error path
+    - dmaengine: imx-sdma: Allow imx8m for imx7 FW revs
+    - misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer
+    - misc: rtsx_usb: use separate command and response buffers
+    - misc: rtsx_usb: set return value in rsp_buf alloc err path
+    - dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo
+    - ida: don't use BUG_ON() for debugging
+    - dmaengine: pl330: Fix lockdep warning about non-static key
+    - dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly
+    - dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate
+    - dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate
+    - Linux 5.4.205
+  * Focal update: v5.4.204 upstream stable release (LP: #1988212)
+    - ipv6: take care of disable_policy when restoring routes
+    - nvdimm: Fix badblocks clear off-by-one error
+    - powerpc/prom_init: Fix kernel config grep
+    - powerpc/bpf: Fix use of user_pt_regs in uapi
+    - dm raid: fix accesses beyond end of raid member array
+    - dm raid: fix KASAN warning in raid5_add_disks
+    - s390/archrandom: simplify back to earlier design and initialize earlier
+    - SUNRPC: Fix READ_PLUS crasher
+    - net: rose: fix UAF bugs caused by timer handler
+    - net: usb: ax88179_178a: Fix packet receiving
+    - virtio-net: fix race between ndo_open() and virtio_device_ready()
+    - selftests/net: pass ipv6_args to udpgso_bench's IPv6 TCP test
+    - net: tun: unlink NAPI from device on destruction
+    - net: tun: stop NAPI when detaching queues
+    - RDMA/qedr: Fix reporting QP timeout attribute
+    - linux/dim: Fix divide by 0 in RDMA DIM
+    - usbnet: fix memory allocation in helpers
+    - net: ipv6: unexport __init-annotated seg6_hmac_net_init()
+    - caif_virtio: fix race between virtio_device_ready() and ndo_open()
+    - PM / devfreq: exynos-ppmu: Fix refcount leak in of_get_devfreq_events
+    - s390: remove unneeded 'select BUILD_BIN2C'
+    - netfilter: nft_dynset: restore set element counter when failing to update
+    - net/sched: act_api: Notify user space if any actions were flushed before
+      error
+    - net: bonding: fix possible NULL deref in rlb code
+    - net: bonding: fix use-after-free after 802.3ad slave unbind
+    - nfc: nfcmrvl: Fix irq_of_parse_and_map() return value
+    - NFC: nxp-nci: Don't issue a zero length i2c_master_read()
+    - net: tun: avoid disabling NAPI twice
+    - xen/gntdev: Avoid blocking in unmap_grant_pages()
+    - hwmon: (ibmaem) don't call platform_device_del() if platform_device_add()
+      fails
+    - net: dsa: bcm_sf2: force pause link settings
+    - sit: use min
+    - ipv6/sit: fix ipip6_tunnel_get_prl return value
+    - rseq/selftests,x86_64: Add rseq_offset_deref_addv()
+    - selftests/rseq: remove ARRAY_SIZE define from individual tests
+    - selftests/rseq: introduce own copy of rseq uapi header
+    - selftests/rseq: Remove useless assignment to cpu variable
+    - selftests/rseq: Remove volatile from __rseq_abi
+    - selftests/rseq: Introduce rseq_get_abi() helper
+    - selftests/rseq: Introduce thread pointer getters
+    - selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35
+    - selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian
+    - selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for
+      load/store
+    - selftests/rseq: Fix ppc32 offsets by using long rather than off_t
+    - selftests/rseq: Fix warnings about #if checks of undefined tokens
+    - selftests/rseq: Remove arm/mips asm goto compiler work-around
+    - selftests/rseq: Fix: work-around asm goto compiler bugs
+    - selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread
+      area
+    - selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread
+      area
+    - selftests/rseq: Change type of rseq_offset to ptrdiff_t
+    - xen/blkfront: fix leaking data in shared pages
+    - xen/netfront: fix leaking data in shared pages
+    - xen/netfront: force data bouncing when backend is untrusted
+    - xen/blkfront: force data bouncing when backend is untrusted
+    - xen/arm: Fix race in RB-tree based P2M accounting
+    - net: usb: qmi_wwan: add Telit 0x1060 composition
+    - net: usb: qmi_wwan: add Telit 0x1070 composition
+    - clocksource/drivers/ixp4xx: remove EXPORT_SYMBOL_GPL from
+      ixp4xx_timer_setup()
+    - Linux 5.4.204
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Wed, 09 Nov 2022 19:19:19 +0800
+
+linux-imx (5.4.0-1027.33) focal; urgency=medium
+
+  * [K4500-NXP] Update the device tree to load Vivante graphics drivers (LP:
+    #1990021)
+    - arm64: dts: imx8mm: Add GPU nodes for 2D and 3D core
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Remove gpu node now at the imx8mm.dtsi
+      contains gpu nodes.
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 03 Oct 2022 18:15:38 +0800
+
+linux-imx (5.4.0-1026.32) focal; urgency=medium
+
+  * Focal update: v5.4.198 upstream stable release (LP: #1982409)
+    - PCI: imx6: Fix PERST# start-up sequence
+
+  * [US20.04[UC20] RPMSG driver support (LP: #1968362)
+    - SAUCE: ARM: imx: Add M4 rpmsg module that allows applications to send and
+      request data to and from the M4.
+    - [Config] Set CONFIG_RPMSG_AMGIS_M4_DEVICES=m for armhf
+
+  * [K4500-NXP][UC20] Snap for testing HSM chip (LP: #1984131)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Swap i2c-1 and i2c-2 buses for STSAFE
+      TPM compatibility with RPI platform.
+
+  * [K4500-NXP] Set GPIO defaults for WIFI_ENABLE and CELL_MODEM_RESET (LP:
+    #1990059)
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Set GPIO defaults for WIFI_ENABLE and
+      CELL_MODEM_RESET
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Delete user_gpio and tmp103 nodes to
+      disable kernel boot warnings
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Device tree cleanup and correction of
+      CMA size.
+
+  * Miscellaneous upstream changes
+    - LF-1235 clk: imx: Revert the changes for pll pfd gate clock
+
+  [ Ubuntu: 5.4.0-126.142 ]
+
+  * focal/linux: 5.4.0-126.142 -proposed tracker (LP: #1987819)
+  * [SRU] fnic driver on needs to be updated to 1.6.0.53 on Focal (LP: #1984011)
+    - scsi: fnic: Change shost_printk() to FNIC_FCS_DBG()
+    - scsi: fnic: Avoid looping in TRANS ETH on unload
+    - scsi: fnic: Change shost_printk() to FNIC_MAIN_DBG()
+    - scsi: fnic: Set scsi_set_resid() only for underflow
+    - scsi: fnic: Validate io_req before others
+  * Focal update: v5.4.203 upstream stable release (LP: #1986999)
+    - drm: remove drm_fb_helper_modinit
+    - powerpc/ftrace: Remove ftrace init tramp once kernel init is complete
+    - kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
+    - net: mscc: ocelot: allow unregistered IP multicast flooding
+    - ARM: 8989/1: use .fpu assembler directives instead of assembler arguments
+    - ARM: 8990/1: use VFP assembler mnemonics in register load/store macros
+    - ARM: 8971/1: replace the sole use of a symbol with its definition
+    - crypto: arm/sha256-neon - avoid ADRL pseudo instruction
+    - crypto: arm/sha512-neon - avoid ADRL pseudo instruction
+    - ARM: 8933/1: replace Sun/Solaris style flag on section directive
+    - ARM: 8929/1: use APSR_nzcv instead of r15 as mrc operand
+    - ARM: OMAP2+: drop unnecessary adrl
+    - ARM: 9029/1: Make iwmmxt.S support Clang's integrated assembler
+    - crypto: arm - use Kconfig based compiler checks for crypto opcodes
+    - crypto: arm/ghash-ce - define fpu before fpu registers are referenced
+    - Linux 5.4.203
+  * Focal update: v5.4.202 upstream stable release (LP: #1986995)
+    - random: schedule mix_interrupt_randomness() less often
+    - ALSA: hda/via: Fix missing beep setup
+    - ALSA: hda/conexant: Fix missing beep setup
+    - ALSA: hda/realtek - ALC897 headset MIC no sound
+    - ALSA: hda/realtek: Add quirk for Clevo PD70PNT
+    - net: openvswitch: fix parsing of nw_proto for IPv6 fragments
+    - mmc: sdhci-pci-o2micro: Fix card detect by dealing with debouncing
+    - ata: libata: add qc->flags in ata_qc_complete_template tracepoint
+    - dm era: commit metadata in postsuspend after worker stops
+    - dm mirror log: clear log bits up to BITS_PER_LONG boundary
+    - random: quiet urandom warning ratelimit suppression message
+    - USB: serial: option: add Telit LE910Cx 0x1250 composition
+    - USB: serial: option: add Quectel EM05-G modem
+    - USB: serial: option: add Quectel RM500K module support
+    - bpf: Fix request_sock leak in sk lookup helpers
+    - phy: aquantia: Fix AN when higher speeds than 1G are not advertised
+    - bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers
+    - net/sched: sch_netem: Fix arithmetic in netem_dump() for 32-bit platforms
+    - drm/msm/mdp4: Fix refcount leak in mdp4_modeset_init_intf
+    - erspan: do not assume transport header is always set
+    - net/tls: fix tls_sk_proto_close executed repeatedly
+    - udmabuf: add back sanity check
+    - x86/xen: Remove undefined behavior in setup_features()
+    - MIPS: Remove repetitive increase irq_err_count
+    - afs: Fix dynamic root getattr
+    - ice: ethtool: advertise 1000M speeds properly
+    - regmap-irq: Fix a bug in regmap_irq_enable() for type_in_mask chips
+    - igb: Make DMA faster when CPU is active on the PCIe link
+    - virtio_net: fix xdp_rxq_info bug after suspend/resume
+    - Revert "net/tls: fix tls_sk_proto_close executed repeatedly"
+    - gpio: winbond: Fix error code in winbond_gpio_get()
+    - s390/cpumf: Handle events cycles and instructions identical
+    - iio: adc: vf610: fix conversion mode sysfs node name
+    - xhci: turn off port power in shutdown
+    - usb: chipidea: udc: check request status before setting device address
+    - iio:chemical:ccs811: rearrange iio trigger get and register
+    - iio:accel:bma180: rearrange iio trigger get and register
+    - iio:accel:mxc4005: rearrange iio trigger get and register
+    - iio: accel: mma8452: ignore the return value of reset operation
+    - iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up()
+    - iio: trigger: sysfs: fix use-after-free on remove
+    - iio: adc: stm32: fix maximum clock rate for stm32mp15x
+    - iio: adc: axp288: Override TS pin bias current for some models
+    - xtensa: xtfpga: Fix refcount leak bug in setup
+    - xtensa: Fix refcount leak bug in time.c
+    - parisc: Enable ARCH_HAS_STRICT_MODULE_RWX
+    - powerpc: Enable execve syscall exit tracepoint
+    - powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
+    - powerpc/powernv: wire up rng during setup_arch
+    - ARM: dts: imx6qdl: correct PU regulator ramp delay
+    - ARM: exynos: Fix refcount leak in exynos_map_pmu
+    - soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
+    - ARM: Fix refcount leak in axxia_boot_secondary
+    - ARM: cns3xxx: Fix refcount leak in cns3xxx_init
+    - modpost: fix section mismatch check for exported init/exit sections
+    - random: update comment from copy_to_user() -> copy_to_iter()
+    - kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
+    - powerpc/pseries: wire up rng during setup_arch()
+    - Linux 5.4.202
+  * Focal update: v5.4.201 upstream stable release (LP: #1986993)
+    - dm: remove special-casing of bio-based immutable singleton target on NVMe
+    - usb: gadget: u_ether: fix regression in setting fixed MAC address
+    - tcp: add some entropy in __inet_hash_connect()
+    - tcp: use different parts of the port_offset for index and offset
+    - tcp: add small random increments to the source port
+    - tcp: dynamically allocate the perturb table used by source ports
+    - tcp: increase source port perturb table to 2^16
+    - tcp: drop the hash_32() part from the index calculation
+    - arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer
+    - Linux 5.4.201
+  * Focal update: v5.4.200 upstream stable release (LP: #1983152)
+    - Revert "UBUNTU: SAUCE: random: Make getrandom() ready earlier"
+    - 9p: missing chunk of "fs/9p: Don't update file type when updating file
+      attributes"
+    - bpf: Fix incorrect memory charge cost calculation in stack_map_alloc()
+    - nfc: st21nfca: fix incorrect sizing calculations in EVT_TRANSACTION
+    - crypto: blake2s - generic C library implementation and selftest
+    - lib/crypto: blake2s: move hmac construction into wireguard
+    - lib/crypto: sha1: re-roll loops to reduce code size
+    - compat_ioctl: remove /dev/random commands
+    - random: don't forget compat_ioctl on urandom
+    - random: Don't wake crng_init_wait when crng_init == 1
+    - random: Add a urandom_read_nowait() for random APIs that don't warn
+    - random: add GRND_INSECURE to return best-effort non-cryptographic bytes
+    - random: ignore GRND_RANDOM in getentropy(2)
+    - random: make /dev/random be almost like /dev/urandom
+    - random: remove the blocking pool
+    - random: delete code to pull data into pools
+    - random: remove kernel.random.read_wakeup_threshold
+    - random: remove unnecessary unlikely()
+    - random: convert to ENTROPY_BITS for better code readability
+    - random: Add and use pr_fmt()
+    - random: fix typo in add_timer_randomness()
+    - random: remove some dead code of poolinfo
+    - random: split primary/secondary crng init paths
+    - random: avoid warnings for !CONFIG_NUMA builds
+    - x86: Remove arch_has_random, arch_has_random_seed
+    - powerpc: Remove arch_has_random, arch_has_random_seed
+    - s390: Remove arch_has_random, arch_has_random_seed
+    - linux/random.h: Remove arch_has_random, arch_has_random_seed
+    - linux/random.h: Use false with bool
+    - linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check
+    - powerpc: Use bool in archrandom.h
+    - random: add arch_get_random_*long_early()
+    - random: avoid arch_get_random_seed_long() when collecting IRQ randomness
+    - random: remove dead code left over from blocking pool
+    - MAINTAINERS: co-maintain random.c
+    - crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h>
+    - crypto: blake2s - adjust include guard naming
+    - random: document add_hwgenerator_randomness() with other input functions
+    - random: remove unused irq_flags argument from add_interrupt_randomness()
+    - random: use BLAKE2s instead of SHA1 in extraction
+    - random: do not sign extend bytes for rotation when mixing
+    - random: do not re-init if crng_reseed completes before primary init
+    - random: mix bootloader randomness into pool
+    - random: harmonize "crng init done" messages
+    - random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
+    - random: initialize ChaCha20 constants with correct endianness
+    - random: early initialization of ChaCha constants
+    - random: avoid superfluous call to RDRAND in CRNG extraction
+    - random: don't reset crng_init_cnt on urandom_read()
+    - random: fix typo in comments
+    - random: cleanup poolinfo abstraction
+    - random: cleanup integer types
+    - random: remove incomplete last_data logic
+    - random: remove unused extract_entropy() reserved argument
+    - random: rather than entropy_store abstraction, use global
+    - random: remove unused OUTPUT_POOL constants
+    - random: de-duplicate INPUT_POOL constants
+    - random: prepend remaining pool constants with POOL_
+    - random: cleanup fractional entropy shift constants
+    - random: access input_pool_data directly rather than through pointer
+    - random: selectively clang-format where it makes sense
+    - random: simplify arithmetic function flow in account()
+    - random: continually use hwgenerator randomness
+    - random: access primary_pool directly rather than through pointer
+    - random: only call crng_finalize_init() for primary_crng
+    - random: use computational hash for entropy extraction
+    - random: simplify entropy debiting
+    - random: use linear min-entropy accumulation crediting
+    - random: always wake up entropy writers after extraction
+    - random: make credit_entropy_bits() always safe
+    - random: remove use_input_pool parameter from crng_reseed()
+    - random: remove batched entropy locking
+    - random: fix locking in crng_fast_load()
+    - random: use RDSEED instead of RDRAND in entropy extraction
+    - random: get rid of secondary crngs
+    - random: inline leaves of rand_initialize()
+    - random: ensure early RDSEED goes through mixer on init
+    - random: do not xor RDRAND when writing into /dev/random
+    - random: absorb fast pool into input pool after fast load
+    - random: use simpler fast key erasure flow on per-cpu keys
+    - random: use hash function for crng_slow_load()
+    - random: make more consistent use of integer types
+    - random: remove outdated INT_MAX >> 6 check in urandom_read()
+    - random: zero buffer after reading entropy from userspace
+    - random: fix locking for crng_init in crng_reseed()
+    - random: tie batched entropy generation to base_crng generation
+    - random: remove ifdef'd out interrupt bench
+    - random: remove unused tracepoints
+    - random: add proper SPDX header
+    - random: deobfuscate irq u32/u64 contributions
+    - random: introduce drain_entropy() helper to declutter crng_reseed()
+    - random: remove useless header comment
+    - random: remove whitespace and reorder includes
+    - random: group initialization wait functions
+    - random: group crng functions
+    - random: group entropy extraction functions
+    - random: group entropy collection functions
+    - random: group userspace read/write functions
+    - random: group sysctl functions
+    - random: rewrite header introductory comment
+    - random: defer fast pool mixing to worker
+    - random: do not take pool spinlock at boot
+    - random: unify early init crng load accounting
+    - random: check for crng_init == 0 in add_device_randomness()
+    - random: pull add_hwgenerator_randomness() declaration into random.h
+    - random: clear fast pool, crng, and batches in cpuhp bring up
+    - random: round-robin registers as ulong, not u32
+    - random: only wake up writers after zap if threshold was passed
+    - random: cleanup UUID handling
+    - random: unify cycles_t and jiffies usage and types
+    - random: do crng pre-init loading in worker rather than irq
+    - random: give sysctl_random_min_urandom_seed a more sensible value
+    - random: don't let 644 read-only sysctls be written to
+    - random: replace custom notifier chain with standard one
+    - random: use SipHash as interrupt entropy accumulator
+    - random: make consistent usage of crng_ready()
+    - random: reseed more often immediately after booting
+    - random: check for signal and try earlier when generating entropy
+    - random: skip fast_init if hwrng provides large chunk of entropy
+    - random: treat bootloader trust toggle the same way as cpu trust toggle
+    - random: re-add removed comment about get_random_{u32,u64} reseeding
+    - random: mix build-time latent entropy into pool at init
+    - random: do not split fast init input in add_hwgenerator_randomness()
+    - random: do not allow user to keep crng key around on stack
+    - random: check for signal_pending() outside of need_resched() check
+    - random: check for signals every PAGE_SIZE chunk of /dev/[u]random
+    - random: allow partial reads if later user copies fail
+    - random: make random_get_entropy() return an unsigned long
+    - random: document crng_fast_key_erasure() destination possibility
+    - random: fix sysctl documentation nits
+    - init: call time_init() before rand_initialize()
+    - ia64: define get_cycles macro for arch-override
+    - s390: define get_cycles macro for arch-override
+    - parisc: define get_cycles macro for arch-override
+    - alpha: define get_cycles macro for arch-override
+    - powerpc: define get_cycles macro for arch-override
+    - timekeeping: Add raw clock fallback for random_get_entropy()
+    - m68k: use fallback for random_get_entropy() instead of zero
+    - mips: use fallback for random_get_entropy() instead of just c0 random
+    - arm: use fallback for random_get_entropy() instead of zero
+    - nios2: use fallback for random_get_entropy() instead of zero
+    - x86/tsc: Use fallback for random_get_entropy() instead of zero
+    - um: use fallback for random_get_entropy() instead of zero
+    - sparc: use fallback for random_get_entropy() instead of zero
+    - xtensa: use fallback for random_get_entropy() instead of zero
+    - random: insist on random_get_entropy() existing in order to simplify
+    - random: do not use batches when !crng_ready()
+    - random: use first 128 bits of input as fast init
+    - random: do not pretend to handle premature next security model
+    - random: order timer entropy functions below interrupt functions
+    - random: do not use input pool from hard IRQs
+    - random: help compiler out with fast_mix() by using simpler arguments
+    - siphash: use one source of truth for siphash permutations
+    - random: use symbolic constants for crng_init states
+    - random: avoid initializing twice in credit race
+    - random: move initialization out of reseeding hot path
+    - random: remove ratelimiting for in-kernel unseeded randomness
+    - random: use proper jiffies comparison macro
+    - random: handle latent entropy and command line from random_init()
+    - random: credit architectural init the exact amount
+    - random: use static branch for crng_ready()
+    - random: remove extern from functions in header
+    - random: use proper return types on get_random_{int,long}_wait()
+    - random: make consistent use of buf and len
+    - random: move initialization functions out of hot pages
+    - random: move randomize_page() into mm where it belongs
+    - random: unify batched entropy implementations
+    - random: convert to using fops->read_iter()
+    - random: convert to using fops->write_iter()
+    - random: wire up fops->splice_{read,write}_iter()
+    - random: check for signals after page of pool writes
+    - Revert "random: use static branch for crng_ready()"
+    - crypto: drbg - always seeded with SP800-90B compliant noise source
+    - crypto: drbg - prepare for more fine-grained tracking of seeding state
+    - crypto: drbg - track whether DRBG was seeded with !rng_is_initialized()
+    - crypto: drbg - move dynamic ->reseed_threshold adjustments to __drbg_seed()
+    - crypto: drbg - always try to free Jitter RNG instance
+    - crypto: drbg - make reseeding from get_random_bytes() synchronous
+    - random: avoid checking crng_ready() twice in random_init()
+    - random: mark bootloader randomness code as __init
+    - random: account for arch randomness in bits
+    - powerpc/kasan: Silence KASAN warnings in __get_wchan()
+    - ASoC: nau8822: Add operation for internal PLL off and on
+    - dma-debug: make things less spammy under memory pressure
+    - ASoC: cs42l52: Fix TLV scales for mixer controls
+    - ASoC: cs35l36: Update digital volume TLV
+    - ASoC: cs53l30: Correct number of volume levels on SX controls
+    - ASoC: cs42l52: Correct TLV for Bypass Volume
+    - ASoC: cs42l56: Correct typo in minimum level for SX volume controls
+    - ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
+    - ASoC: wm8962: Fix suspend while playing music
+    - ASoC: es8328: Fix event generation for deemphasis control
+    - ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put()
+    - scsi: vmw_pvscsi: Expand vcpuHint to 16 bits
+    - scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology
+    - scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd
+      completion
+    - scsi: ipr: Fix missing/incorrect resource cleanup in error case
+    - scsi: pmcraid: Fix missing resource cleanup in error case
+    - ALSA: hda/realtek - Add HW8326 support
+    - virtio-mmio: fix missing put_device() when vm_cmdline_parent registration
+      failed
+    - nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred
+    - ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg
+    - net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface
+      netdev[napi]_alloc_frag
+    - random: credit cpu and bootloader seeds by default
+    - pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE
+    - clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()
+    - i40e: Fix adding ADQ filter to TC0
+    - i40e: Fix calculating the number of queue pairs
+    - i40e: Fix call trace in setup_tx_descriptors
+    - tty: goldfish: Fix free_irq() on remove
+    - misc: atmel-ssc: Fix IRQ check in ssc_probe
+    - mlxsw: spectrum_cnt: Reorder counter pools
+    - net: bgmac: Fix an erroneous kfree() in bgmac_remove()
+    - arm64: ftrace: fix branch range checks
+    - certs/blacklist_hashes.c: fix const confusion in certs blacklist
+    - faddr2line: Fix overlapping text section failures, the sequel
+    - irqchip/gic/realview: Fix refcount leak in realview_gic_of_init
+    - irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions
+    - irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
+    - i2c: designware: Use standard optional ref clock implementation
+    - comedi: vmk80xx: fix expression for tx buffer size
+    - USB: serial: option: add support for Cinterion MV31 with new baseline
+    - USB: serial: io_ti: add Agilent E5805A support
+    - usb: dwc2: Fix memory leak in dwc2_hcd_init
+    - usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe
+    - serial: 8250: Store to lsr_save_flags after lsr read
+    - dm mirror log: round up region bitmap size to BITS_PER_LONG
+    - ext4: fix bug_on ext4_mb_use_inode_pa
+    - ext4: make variable "count" signed
+    - ext4: add reserved GDT blocks check
+    - ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine
+    - virtio-pci: Remove wrong address verification in vp_del_vqs()
+    - net/sched: act_police: more accurate MTU policing
+    - net: openvswitch: fix leak of nested actions
+    - arm64: kprobes: Use BRK instead of single-step when executing instructions
+      out-of-line
+    - RISC-V: fix barrier() use in <vdso/processor.h>
+    - riscv: Less inefficient gcc tishift helpers (and export their symbols)
+    - powerpc/mm: Switch obsolete dssall to .long
+    - Linux 5.4.200
+  * Focal update: v5.4.199 upstream stable release (LP: #1983150)
+    - Linux 5.4.199
+  * Focal update: v5.4.198 upstream stable release (LP: #1982409)
+    - binfmt_flat: do not stop relocating GOT entries prematurely on riscv
+    - ALSA: hda/realtek - Fix microphone noise on ASUS TUF B550M-PLUS
+    - USB: serial: option: add Quectel BG95 modem
+    - USB: new quirk for Dell Gen 2 devices
+    - perf/x86/intel: Fix event constraints for ICL
+    - ptrace/um: Replace PT_DTRACE with TIF_SINGLESTEP
+    - ptrace/xtensa: Replace PT_SINGLESTEP with TIF_SINGLESTEP
+    - ptrace: Reimplement PTRACE_KILL by always sending SIGKILL
+    - btrfs: add "0x" prefix for unsupported optional features
+    - btrfs: repair super block num_devices automatically
+    - drm/virtio: fix NULL pointer dereference in virtio_gpu_conn_get_modes
+    - mwifiex: add mutex lock for call in mwifiex_dfs_chan_sw_work_queue
+    - b43legacy: Fix assigning negative value to unsigned variable
+    - b43: Fix assigning negative value to unsigned variable
+    - ipw2x00: Fix potential NULL dereference in libipw_xmit()
+    - ipv6: fix locking issues with loops over idev->addr_list
+    - fbcon: Consistently protect deferred_takeover with console_lock()
+    - ACPICA: Avoid cache flush inside virtual machines
+    - drm/komeda: return early if drm_universal_plane_init() fails.
+    - ALSA: jack: Access input_dev under mutex
+    - spi: spi-rspi: Remove setting {src,dst}_{addr,addr_width} based on DMA
+      direction
+    - tools/power turbostat: fix ICX DRAM power numbers
+    - drm/amd/pm: fix double free in si_parse_power_table()
+    - ath9k: fix QCA9561 PA bias level
+    - media: venus: hfi: avoid null dereference in deinit
+    - media: pci: cx23885: Fix the error handling in cx23885_initdev()
+    - media: cx25821: Fix the warning when removing the module
+    - md/bitmap: don't set sb values if can't pass sanity check
+    - mmc: jz4740: Apply DMA engine limits to maximum segment size
+    - scsi: megaraid: Fix error check return value of register_chrdev()
+    - drm/plane: Move range check for format_count earlier
+    - drm/amd/pm: fix the compile warning
+    - arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall
+    - drm: msm: fix error check return value of irq_of_parse_and_map()
+    - ipv6: Don't send rs packets to the interface of ARPHRD_TUNNEL
+    - net/mlx5: fs, delete the FTE when there are no rules attached to it
+    - ASoC: dapm: Don't fold register value changes into notifications
+    - mlxsw: spectrum_dcb: Do not warn about priority changes
+    - drm/amdgpu/ucode: Remove firmware load type check in amdgpu_ucode_free_bo
+    - HID: bigben: fix slab-out-of-bounds Write in bigben_probe
+    - ASoC: tscs454: Add endianness flag in snd_soc_component_driver
+    - s390/preempt: disable __preempt_count_add() optimization for
+      PROFILE_ALL_BRANCHES
+    - spi: stm32-qspi: Fix wait_cmd timeout in APM mode
+    - dma-debug: change allocation mode from GFP_NOWAIT to GFP_ATIOMIC
+    - ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default
+    - ipmi:ssif: Check for NULL msg when handling events and messages
+    - ipmi: Fix pr_fmt to avoid compilation issues
+    - rtlwifi: Use pr_warn instead of WARN_ONCE
+    - media: coda: limit frame interval enumeration to supported encoder frame
+      sizes
+    - media: cec-adap.c: fix is_configuring state
+    - openrisc: start CPU timer early in boot
+    - nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags
+    - ASoC: rt5645: Fix errorenous cleanup order
+    - nbd: Fix hung on disconnect request if socket is closed before
+    - net: phy: micrel: Allow probing without .driver_data
+    - media: exynos4-is: Fix compile warning
+    - ASoC: max98357a: remove dependency on GPIOLIB
+    - rxrpc: Return an error to sendmsg if call failed
+    - eth: tg3: silence the GCC 12 array-bounds warning
+    - selftests/bpf: fix btf_dump/btf_dump due to recent clang change
+    - IB/rdmavt: add missing locks in rvt_ruc_loopback
+    - ARM: dts: ox820: align interrupt controller node name with dtschema
+    - PM / devfreq: rk3399_dmc: Disable edev on remove()
+    - fs: jfs: fix possible NULL pointer dereference in dbFree()
+    - ARM: OMAP1: clock: Fix UART rate reporting algorithm
+    - powerpc/fadump: Fix fadump to work with a different endian capture kernel
+    - fat: add ratelimit to fat*_ent_bread()
+    - ARM: versatile: Add missing of_node_put in dcscb_init
+    - ARM: dts: exynos: add atmel,24c128 fallback to Samsung EEPROM
+    - ARM: hisi: Add missing of_node_put after of_find_compatible_node
+    - PCI: Avoid pci_dev_lock() AB/BA deadlock with sriov_numvfs_store()
+    - tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate
+    - powerpc/xics: fix refcount leak in icp_opal_init()
+    - powerpc/powernv: fix missing of_node_put in uv_init()
+    - macintosh/via-pmu: Fix build failure when CONFIG_INPUT is disabled
+    - powerpc/iommu: Add missing of_node_put in iommu_init_early_dart
+    - RDMA/hfi1: Prevent panic when SDMA is disabled
+    - drm: fix EDID struct for old ARM OABI format
+    - ath9k: fix ar9003_get_eepmisc
+    - drm/edid: fix invalid EDID extension block filtering
+    - drm/bridge: adv7511: clean up CEC adapter when probe fails
+    - ASoC: mediatek: Fix error handling in mt8173_max98090_dev_probe
+    - ASoC: mediatek: Fix missing of_node_put in mt2701_wm8960_machine_probe
+    - x86/delay: Fix the wrong asm constraint in delay_loop()
+    - drm/mediatek: Fix mtk_cec_mask()
+    - drm/vc4: txp: Don't set TXP_VSTART_AT_EOF
+    - drm/vc4: txp: Force alpha to be 0xff if it's disabled
+    - bpf: Fix excessive memory allocation in stack_map_alloc()
+    - nl80211: show SSID for P2P_GO interfaces
+    - drm/komeda: Fix an undefined behavior bug in komeda_plane_add()
+    - drm: mali-dp: potential dereference of null pointer
+    - spi: spi-ti-qspi: Fix return value handling of wait_for_completion_timeout
+    - NFC: NULL out the dev->rfkill to prevent UAF
+    - efi: Add missing prototype for efi_capsule_setup_info
+    - drbd: fix duplicate array initializer
+    - HID: hid-led: fix maximum brightness for Dream Cheeky
+    - HID: elan: Fix potential double free in elan_input_configured
+    - drm/bridge: Fix error handling in analogix_dp_probe
+    - sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq
+    - spi: img-spfi: Fix pm_runtime_get_sync() error checking
+    - cpufreq: Fix possible race in cpufreq online error path
+    - ath9k_htc: fix potential out of bounds access with invalid
+      rxstatus->rs_keyix
+    - inotify: show inotify mask flags in proc fdinfo
+    - fsnotify: fix wrong lockdep annotations
+    - of: overlay: do not break notify on NOTIFY_{OK|STOP}
+    - scsi: ufs: core: Exclude UECxx from SFR dump list
+    - x86/pm: Fix false positive kmemleak report in msr_build_context()
+    - x86/speculation: Add missing prototype for unpriv_ebpf_notify()
+    - ASoC: rk3328: fix disabling mclk on pclk probe failure
+    - perf tools: Add missing headers needed by util/data.h
+    - drm/msm/disp/dpu1: set vbif hw config to NULL to avoid use after memory free
+      during pm runtime resume
+    - drm/msm/dsi: fix error checks and return values for DSI xmit functions
+    - drm/msm/hdmi: check return value after calling
+      platform_get_resource_byname()
+    - drm/msm/hdmi: fix error check return value of irq_of_parse_and_map()
+    - drm/rockchip: vop: fix possible null-ptr-deref in vop_bind()
+    - virtio_blk: fix the discard_granularity and discard_alignment queue limits
+    - x86: Fix return value of __setup handlers
+    - irqchip/exiu: Fix acknowledgment of edge triggered interrupts
+    - irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value
+    - x86/mm: Cleanup the control_va_addr_alignment() __setup handler
+    - regulator: core: Fix enable_count imbalance with EXCLUSIVE_GET
+    - drm/msm/mdp5: Return error code in mdp5_pipe_release when deadlock is
+      detected
+    - drm/msm/mdp5: Return error code in mdp5_mixer_release when deadlock is
+      detected
+    - drm/msm: return an error pointer in msm_gem_prime_get_sg_table()
+    - media: uvcvideo: Fix missing check to determine if element is found in list
+    - iomap: iomap_write_failed fix
+    - Revert "cpufreq: Fix possible race in cpufreq online error path"
+    - perf/amd/ibs: Use interrupt regs ip for stack unwinding
+    - ASoC: fsl: Fix refcount leak in imx_sgtl5000_probe
+    - ASoC: mxs-saif: Fix refcount leak in mxs_saif_probe
+    - regulator: pfuze100: Fix refcount leak in pfuze_parse_regulators_dt
+    - scripts/faddr2line: Fix overlapping text section failures
+    - media: aspeed: Fix an error handling path in aspeed_video_probe()
+    - media: st-delta: Fix PM disable depth imbalance in delta_probe
+    - media: exynos4-is: Change clk_disable to clk_disable_unprepare
+    - media: pvrusb2: fix array-index-out-of-bounds in pvr2_i2c_core_init
+    - media: vsp1: Fix offset calculation for plane cropping
+    - Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout
+    - m68k: math-emu: Fix dependencies of math emulation support
+    - sctp: read sk->sk_bound_dev_if once in sctp_rcv()
+    - media: ov7670: remove ov7670_power_off from ov7670_remove
+    - ext4: reject the 'commit' option on ext2 filesystems
+    - drm/msm/a6xx: Fix refcount leak in a6xx_gpu_init
+    - drm: msm: fix possible memory leak in mdp5_crtc_cursor_set()
+    - thermal/drivers/broadcom: Fix potential NULL dereference in sr_thermal_probe
+    - ASoC: wm2000: fix missing clk_disable_unprepare() on error in
+      wm2000_anc_transition()
+    - NFC: hci: fix sleep in atomic context bugs in nfc_hci_hcp_message_tx
+    - rxrpc: Fix listen() setting the bar too high for the prealloc rings
+    - rxrpc: Don't try to resend the request if we're receiving the reply
+    - rxrpc: Fix overlapping ACK accounting
+    - rxrpc: Don't let ack.previousPacket regress
+    - rxrpc: Fix decision on when to generate an IDLE ACK
+    - net/smc: postpone sk_refcnt increment in connect()
+    - arm64: dts: rockchip: Move drive-impedance-ohm to emmc phy on rk3399
+    - ARM: dts: suniv: F1C100: fix watchdog compatible
+    - soc: qcom: smp2p: Fix missing of_node_put() in smp2p_parse_ipc
+    - soc: qcom: smsm: Fix missing of_node_put() in smsm_parse_ipc
+    - PCI: cadence: Fix find_first_zero_bit() limit
+    - PCI: rockchip: Fix find_first_zero_bit() limit
+    - KVM: nVMX: Leave most VM-Exit info fields unmodified on failed VM-Entry
+    - can: xilinx_can: mark bit timing constants as const
+    - ARM: dts: bcm2835-rpi-zero-w: Fix GPIO line name for Wifi/BT
+    - ARM: dts: bcm2837-rpi-cm3-io3: Fix GPIO line names for SMPS I2C
+    - ARM: dts: bcm2837-rpi-3-b-plus: Fix GPIO line name of power LED
+    - ARM: dts: bcm2835-rpi-b: Fix GPIO line names
+    - misc: ocxl: fix possible double free in ocxl_file_register_afu
+    - crypto: marvell/cesa - ECB does not IV
+    - arm: mediatek: select arch timer for mt7629
+    - powerpc/fadump: fix PT_LOAD segment for boot memory area
+    - mfd: ipaq-micro: Fix error check return value of platform_get_irq()
+    - scsi: fcoe: Fix Wstringop-overflow warnings in fcoe_wwn_from_mac()
+    - firmware: arm_scmi: Fix list protocols enumeration in the base protocol
+    - nvdimm: Allow overwrite in the presence of disabled dimms
+    - pinctrl: mvebu: Fix irq_of_parse_and_map() return value
+    - drivers/base/node.c: fix compaction sysfs file leak
+    - dax: fix cache flush on PMD-mapped pages
+    - powerpc/8xx: export 'cpm_setbrg' for modules
+    - powerpc/idle: Fix return value of __setup() handler
+    - powerpc/4xx/cpm: Fix return value of __setup() handler
+    - proc: fix dentry/inode overinstantiating under /proc/${pid}/net
+    - ipc/mqueue: use get_tree_nodev() in mqueue_get_tree()
+    - PCI: imx6: Fix PERST# start-up sequence
+    - tty: fix deadlock caused by calling printk() under tty_port->lock
+    - crypto: cryptd - Protect per-CPU resource by disabling BH.
+    - Input: sparcspkr - fix refcount leak in bbc_beep_probe
+    - powerpc/64: Only WARN if __pa()/__va() called with bad addresses
+    - powerpc/perf: Fix the threshold compare group constraint for power9
+    - macintosh: via-pmu and via-cuda need RTC_LIB
+    - powerpc/fsl_rio: Fix refcount leak in fsl_rio_setup
+    - mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe()
+    - mailbox: forward the hrtimer if not queued and under a lock
+    - RDMA/hfi1: Prevent use of lock before it is initialized
+    - Input: stmfts - do not leave device disabled in stmfts_input_open
+    - f2fs: fix dereference of stale list iterator after loop body
+    - iommu/mediatek: Add list_del in mtk_iommu_remove
+    - i2c: at91: use dma safe buffers
+    - i2c: at91: Initialize dma_buf in at91_twi_xfer()
+    - NFS: Do not report EINTR/ERESTARTSYS as mapping errors
+    - NFS: Do not report flush errors in nfs_write_end()
+    - NFS: Don't report errors from nfs_pageio_complete() more than once
+    - NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout
+    - video: fbdev: clcdfb: Fix refcount leak in clcdfb_of_vram_setup
+    - dmaengine: stm32-mdma: remove GISR1 register
+    - iommu/amd: Increase timeout waiting for GA log enablement
+    - perf c2c: Use stdio interface if slang is not supported
+    - perf jevents: Fix event syntax error caused by ExtSel
+    - f2fs: fix to avoid f2fs_bug_on() in dec_valid_node_count()
+    - f2fs: fix to do sanity check on block address in f2fs_do_zero_range()
+    - f2fs: fix to clear dirty inode in f2fs_evict_inode()
+    - f2fs: fix deadloop in foreground GC
+    - f2fs: don't need inode lock for system hidden quota
+    - f2fs: fix fallocate to use file_modified to update permissions consistently
+    - wifi: mac80211: fix use-after-free in chanctx code
+    - iwlwifi: mvm: fix assert 1F04 upon reconfig
+    - fs-writeback: writeback_sb_inodes：Recalculate 'wrote' according skipped
+      pages
+    - efi: Do not import certificates from UEFI Secure Boot for T2 Macs
+    - bfq: Split shared queues on move between cgroups
+    - bfq: Update cgroup information before merging bio
+    - bfq: Track whether bfq_group is still online
+    - ext4: fix use-after-free in ext4_rename_dir_prepare
+    - ext4: fix warning in ext4_handle_inode_extension
+    - ext4: fix bug_on in ext4_writepages
+    - ext4: verify dir block before splitting it
+    - ext4: avoid cycles in directory h-tree
+    - ACPI: property: Release subnode properties with data nodes
+    - tracing: Fix potential double free in create_var_ref()
+    - PCI/PM: Fix bridge_d3_blacklist[] Elo i2 overwrite of Gigabyte X299
+    - PCI: qcom: Fix runtime PM imbalance on probe errors
+    - PCI: qcom: Fix unbalanced PHY init on probe errors
+    - mm, compaction: fast_find_migrateblock() should return pfn in the target
+      zone
+    - dlm: fix plock invalid read
+    - dlm: fix missing lkb refcount handling
+    - ocfs2: dlmfs: fix error handling of user_dlm_destroy_lock
+    - scsi: dc395x: Fix a missing check on list iterator
+    - scsi: ufs: qcom: Add a readl() to make sure ref_clk gets enabled
+    - drm/amdgpu/cs: make commands with 0 chunks illegal behaviour.
+    - drm/etnaviv: check for reaped mapping in etnaviv_iommu_unmap_gem
+    - drm/nouveau/clk: Fix an incorrect NULL check on list iterator
+    - drm/bridge: analogix_dp: Grab runtime PM reference for DP-AUX
+    - md: fix an incorrect NULL check in does_sb_need_changing
+    - md: fix an incorrect NULL check in md_reload_sb
+    - mtd: cfi_cmdset_0002: Move and rename
+      chip_check/chip_ready/chip_good_for_write
+    - media: coda: Fix reported H264 profile
+    - media: coda: Add more H264 levels for CODA960
+    - Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug
+    - RDMA/hfi1: Fix potential integer multiplication overflow errors
+    - irqchip/armada-370-xp: Do not touch Performance Counter Overflow on A375,
+      A38x, A39x
+    - irqchip: irq-xtensa-mx: fix initial IRQ affinity
+    - mac80211: upgrade passive scan to active scan on DFS channels after beacon
+      rx
+    - um: chan_user: Fix winch_tramp() return value
+    - um: Fix out-of-bounds read in LDT setup
+    - iommu/msm: Fix an incorrect NULL check on list iterator
+    - nodemask.h: fix compilation error with GCC12
+    - hugetlb: fix huge_pmd_unshare address update
+    - rtl818x: Prevent using not initialized queues
+    - ASoC: rt5514: Fix event generation for "DSP Voice Wake Up" control
+    - carl9170: tx: fix an incorrect use of list iterator
+    - serial: pch: don't overwrite xmit->buf[0] by x_char
+    - tilcdc: tilcdc_external: fix an incorrect NULL check on list iterator
+    - gma500: fix an incorrect NULL check on list iterator
+    - arm64: dts: qcom: ipq8074: fix the sleep clock frequency
+    - phy: qcom-qmp: fix struct clk leak on probe errors
+    - ARM: pxa: maybe fix gpio lookup tables
+    - docs/conf.py: Cope with removal of language=None in Sphinx 5.0.0
+    - dt-bindings: gpio: altera: correct interrupt-cells
+    - blk-iolatency: Fix inflight count imbalances and IO hangs on offline
+    - phy: qcom-qmp: fix reset-controller leak on probe errors
+    - Kconfig: add config option for asm goto w/ outputs
+    - RDMA/rxe: Generate a completion for unsupported/invalid opcode
+    - MIPS: IP27: Remove incorrect `cpu_has_fpu' override
+    - bfq: Avoid merging queues with different parents
+    - bfq: Drop pointless unlock-lock pair
+    - bfq: Remove pointless bfq_init_rq() calls
+    - bfq: Get rid of __bio_blkcg() usage
+    - bfq: Make sure bfqg for which we are queueing requests is online
+    - block: fix bio_clone_blkg_association() to associate with proper blkcg_gq
+    - md: bcache: check the return value of kzalloc() in detached_dev_do_request()
+    - pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards
+    - staging: greybus: codecs: fix type confusion of list iterator variable
+    - iio: adc: ad7124: Remove shift from scan_type
+    - tty: goldfish: Use tty_port_destroy() to destroy port
+    - tty: serial: owl: Fix missing clk_disable_unprepare() in owl_uart_probe
+    - tty: serial: fsl_lpuart: fix potential bug when using both of_alias_get_id
+      and ida_simple_get
+    - usb: usbip: fix a refcount leak in stub_probe()
+    - usb: usbip: add missing device lock on tweak configuration cmd
+    - USB: storage: karma: fix rio_karma_init return
+    - usb: musb: Fix missing of_node_put() in omap2430_probe
+    - staging: fieldbus: Fix the error handling path in
+      anybuss_host_common_probe()
+    - pwm: lp3943: Fix duty calculation in case period was clamped
+    - rpmsg: qcom_smd: Fix irq_of_parse_and_map() return value
+    - usb: dwc3: pci: Fix pm_runtime_get_sync() error checking
+    - firmware: stratix10-svc: fix a missing check on list iterator
+    - iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check
+    - iio: adc: sc27xx: fix read big scale voltage not right
+    - iio: adc: sc27xx: Fine tune the scale calibration values
+    - rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails
+    - phy: qcom-qmp: fix pipe-clock imbalance on power-on failure
+    - serial: sifive: Report actual baud base rather than fixed 115200
+    - coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier
+    - soc: rockchip: Fix refcount leak in rockchip_grf_init
+    - clocksource/drivers/riscv: Events are stopped during CPU suspend
+    - rtc: mt6397: check return value after calling platform_get_resource()
+    - serial: meson: acquire port->lock in startup()
+    - serial: 8250_fintek: Check SER_RS485_RTS_* only with RS485
+    - serial: digicolor-usart: Don't allow CS5-6
+    - serial: rda-uart: Don't allow CS5-6
+    - serial: txx9: Don't allow CS5-6
+    - serial: sh-sci: Don't allow CS5-6
+    - serial: sifive: Sanitize CSIZE and c_iflag
+    - serial: st-asc: Sanitize CSIZE and correct PARENB for CS7
+    - serial: stm32-usart: Correct CSIZE, bits, and parity
+    - firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
+    - bus: ti-sysc: Fix warnings for unbind for serial
+    - driver: base: fix UAF when driver_attach failed
+    - driver core: fix deadlock in __device_attach
+    - watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe
+    - ASoC: fsl_sai: Fix FSL_SAI_xDR/xFR definition
+    - clocksource/drivers/oxnas-rps: Fix irq_of_parse_and_map() return value
+    - s390/crypto: fix scatterwalk_unmap() callers in AES-GCM
+    - net: sched: fixed barrier to prevent skbuff sticking in qdisc backlog
+    - net: ethernet: mtk_eth_soc: out of bounds read in mtk_hwlro_get_fdir_entry()
+    - net: dsa: mv88e6xxx: Fix refcount leak in mv88e6xxx_mdios_register
+    - modpost: fix removing numeric suffixes
+    - jffs2: fix memory leak in jffs2_do_fill_super
+    - ubi: ubi_create_volume: Fix use-after-free when volume creation failed
+    - nfp: only report pause frame configuration for physical device
+    - net/mlx5: Don't use already freed action pointer
+    - net/mlx5e: Update netdev features after changing XDP state
+    - net: sched: add barrier to fix packet stuck problem for lockless qdisc
+    - tcp: tcp_rtx_synack() can be called from process context
+    - afs: Fix infinite loop found by xfstest generic/676
+    - tipc: check attribute length for bearer name
+    - perf c2c: Fix sorting in percent_rmt_hitm_cmp()
+    - mips: cpc: Fix refcount leak in mips_cpc_default_phys_base
+    - tracing: Fix sleeping function called from invalid context on RT kernel
+    - tracing: Avoid adding tracer option before update_tracer_options
+    - f2fs: remove WARN_ON in f2fs_is_valid_blkaddr
+    - i2c: cadence: Increase timeout per message if necessary
+    - m68knommu: set ZERO_PAGE() to the allocated zeroed page
+    - m68knommu: fix undefined reference to `_init_sp'
+    - dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type
+    - NFSv4: Don't hold the layoutget locks across multiple RPC calls
+    - video: fbdev: pxa3xx-gcu: release the resources correctly in
+      pxa3xx_gcu_probe/remove()
+    - xprtrdma: treat all calls not a bcall when bc_serv is NULL
+    - netfilter: nat: really support inet nat without l3 address
+    - ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe
+    - netfilter: nf_tables: memleak flow rule from commit path
+    - xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
+    - af_unix: Fix a data-race in unix_dgram_peer_wake_me().
+    - bpf, arm64: Clear prog->jited_len along prog->jited
+    - net: dsa: lantiq_gswip: Fix refcount leak in gswip_gphy_fw_list
+    - net/mlx4_en: Fix wrong return value on ioctl EEPROM query failure
+    - SUNRPC: Fix the calculation of xdr->end in xdr_get_next_encode_buffer()
+    - net: mdio: unexport __init-annotated mdio_bus_init()
+    - net: xfrm: unexport __init-annotated xfrm4_protocol_init()
+    - net: ipv6: unexport __init-annotated seg6_hmac_init()
+    - net/mlx5: Rearm the FW tracer after each tracer event
+    - net/mlx5: fs, fail conflicting actions
+    - ip_gre: test csum_start instead of transport header
+    - net: altera: Fix refcount leak in altera_tse_mdio_create
+    - drm: imx: fix compiler warning with gcc-12
+    - iio: dummy: iio_simple_dummy: check the return value of kstrdup()
+    - iio: st_sensors: Add a local lock for protecting odr
+    - lkdtm/usercopy: Expand size of "out of frame" object
+    - tty: synclink_gt: Fix null-pointer-dereference in slgt_clean()
+    - tty: Fix a possible resource leak in icom_probe
+    - drivers: staging: rtl8192u: Fix deadlock in ieee80211_beacons_stop()
+    - drivers: staging: rtl8192e: Fix deadlock in rtllib_beacons_stop()
+    - USB: host: isp116x: check return value after calling platform_get_resource()
+    - drivers: tty: serial: Fix deadlock in sa1100_set_termios()
+    - drivers: usb: host: Fix deadlock in oxu_bus_suspend()
+    - USB: hcd-pci: Fully suspend across freeze/thaw cycle
+    - usb: dwc2: gadget: don't reset gadget's driver->bus
+    - misc: rtsx: set NULL intfdata when probe fails
+    - extcon: Modify extcon device to be created after driver data is set
+    - clocksource/drivers/sp804: Avoid error on multiple instances
+    - staging: rtl8712: fix uninit-value in usb_read8() and friends
+    - staging: rtl8712: fix uninit-value in r871xu_drv_init()
+    - serial: msm_serial: disable interrupts in __msm_console_write()
+    - kernfs: Separate kernfs_pr_cont_buf and rename_lock.
+    - watchdog: wdat_wdt: Stop watchdog when rebooting the system
+    - md: protect md_unregister_thread from reentrancy
+    - scsi: myrb: Fix up null pointer access on myrb_cleanup()
+    - ceph: allow ceph.dir.rctime xattr to be updatable
+    - drm/radeon: fix a possible null pointer dereference
+    - modpost: fix undefined behavior of is_arm_mapping_symbol()
+    - x86/cpu: Elide KCSAN for cpu_has() and friends
+    - nbd: call genl_unregister_family() first in nbd_cleanup()
+    - nbd: fix race between nbd_alloc_config() and module removal
+    - cifs: version operations for smb20 unneeded when legacy support disabled
+    - nodemask: Fix return values to be unsigned
+    - vringh: Fix loop descriptors check in the indirect cases
+    - scripts/gdb: change kernel config dumping method
+    - ALSA: hda/conexant - Fix loopback issue with CX20632
+    - cifs: return errors during session setup during reconnects
+    - ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files
+    - mmc: block: Fix CQE recovery reset success
+    - nfc: st21nfca: fix incorrect validating logic in EVT_TRANSACTION
+    - nfc: st21nfca: fix memory leaks in EVT_TRANSACTION handling
+    - ixgbe: fix bcast packets Rx on VF after promisc removal
+    - ixgbe: fix unexpected VLAN Rx in promisc mode on VF
+    - Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag
+    - powerpc/32: Fix overread/overwrite of thread_struct via ptrace
+    - md/raid0: Ignore RAID0 layout if the second zone has only one device
+    - mtd: cfi_cmdset_0002: Use chip_ready() for write on S29GL064N
+    - tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd
+    - Linux 5.4.198
+  * Focal update: v5.4.197 upstream stable release (LP: #1981758)
+    - x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
+    - staging: rtl8723bs: prevent ->Ssid overflow in rtw_wx_set_scan()
+    - Input: goodix - fix spurious key release events
+    - tcp: change source port randomizarion at connect() time
+    - secure_seq: use the 64 bits of the siphash for port offset calculation
+    - media: vim2m: Register video device after setting up internals
+    - media: vim2m: initialize the media device earlier
+    - ACPI: sysfs: Make sparse happy about address space in use
+    - ACPI: sysfs: Fix BERT error region memory mapping
+    - pinctrl: sunxi: fix f1c100s uart2 function
+    - net: af_key: check encryption module availability consistency
+    - net: ftgmac100: Disable hardware checksum on AST2600
+    - i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
+    - drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI
+      controllers
+    - assoc_array: Fix BUG_ON during garbage collect
+    - cfg80211: set custom regdomain after wiphy registration
+    - drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
+    - exec: Force single empty string when argv is empty
+    - netfilter: conntrack: re-fetch conntrack after insertion
+    - crypto: ecrdsa - Fix incorrect use of vli_cmp
+    - zsmalloc: fix races between asynchronous zspage free and page migration
+    - dm integrity: fix error code in dm_integrity_ctr()
+    - dm crypt: make printing of the key constant-time
+    - dm stats: add cond_resched when looping over entries
+    - dm verity: set DM_TARGET_IMMUTABLE feature flag
+    - raid5: introduce MD_BROKEN
+    - HID: multitouch: Add support for Google Whiskers Touchpad
+    - tpm: Fix buffer access in tpm2_get_tpm_pt()
+    - tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
+    - docs: submitting-patches: Fix crossref to 'The canonical patch format'
+    - NFS: Memory allocation failures are not server fatal errors
+    - NFSD: Fix possible sleep during nfsd4_release_lockowner()
+    - bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
+    - Linux 5.4.197
+  * Focal update: v5.4.196 upstream stable release (LP: #1981111)
+    - x86/xen: Make the boot CPU idle task reliable
+    - x86/xen: Make the secondary CPU idle tasks reliable
+    - rtc: fix use-after-free on device removal
+    - um: Cleanup syscall_handler_t definition/cast, fix warning
+    - Input: add bounds checking to input_set_capability()
+    - Input: stmfts - fix reference leak in stmfts_input_open
+    - crypto: stm32 - fix reference leak in stm32_crc_remove
+    - crypto: x86/chacha20 - Avoid spurious jumps to other functions
+    - ALSA: hda/realtek: Enable headset mic on Lenovo P360
+    - nvme-multipath: fix hang when disk goes live over reconnect
+    - rtc: mc146818-lib: Fix the AltCentury for AMD platforms
+    - MIPS: lantiq: check the return value of kzalloc()
+    - drbd: remove usage of list iterator variable after loop
+    - platform/chrome: cros_ec_debugfs: detach log reader wq from devm
+    - ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
+    - nilfs2: fix lockdep warnings in page operations for btree nodes
+    - nilfs2: fix lockdep warnings during disk space reclamation
+    - mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC
+    - mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD
+    - mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
+    - SUNRPC: Clean up scheduling of autoclose
+    - SUNRPC: Prevent immediate close+reconnect
+    - SUNRPC: Don't call connect() more than once on a TCP socket
+    - ALSA: wavefront: Proper check of get_user() error
+    - perf: Fix sys_perf_event_open() race against self
+    - Fix double fget() in vhost_net_set_backend()
+    - PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold
+    - KVM: x86/mmu: Update number of zapped pages even if page list is stable
+    - crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
+    - drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
+    - dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
+    - ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
+    - ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
+    - net: macb: Increment rx bd head after allocating skb and buffer
+    - net/sched: act_pedit: sanitize shift argument before usage
+    - net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
+    - net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
+    - ice: fix possible under reporting of ethtool Tx and Rx statistics
+    - clk: at91: generated: consider range when calculating best rate
+    - net/qla3xxx: Fix a test in ql_reset_work()
+    - NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
+    - net/mlx5e: Properly block LRO when XDP is enabled
+    - ARM: 9196/1: spectre-bhb: enable for Cortex-A15
+    - ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
+    - igb: skip phy status check where unavailable
+    - net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
+    - gpio: gpio-vf610: do not touch other bits when set the target bit
+    - gpio: mvebu/pwm: Refuse requests with inverted polarity
+    - perf bench numa: Address compiler error on s390
+    - scsi: qla2xxx: Fix missed DMA unmap for aborted commands
+    - mac80211: fix rx reordering with non explicit / psmp ack policy
+    - selftests: add ping test with ping_group_range tuned
+    - ethernet: tulip: fix missing pci_disable_device() on error in
+      tulip_init_one()
+    - net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe()
+    - net: atlantic: verify hw_head_ lies within TX buffer ring
+    - Input: ili210x - fix reset timing
+    - block: return ELEVATOR_DISCARD_MERGE if possible
+    - net: stmmac: disable Split Header (SPH) for Intel platforms
+    - firmware_loader: use kernel credentials when reading firmware
+    - ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk
+    - Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
+    - x86/xen: fix booting 32-bit pv guest
+    - x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
+    - i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
+    - afs: Fix afs_getattr() to refetch file status if callback break occurred
+    - Linux 5.4.196
+  * CVE-2022-36946
+    - netfilter: nf_queue: do not allow packet truncation below transport header
+      offset
+  * CVE-2021-33655
+    - fbcon: Disallow setting font bigger than screen size
+    - fbcon: Prevent that screen size is smaller than font size
+    - fbmem: Check virtual screen sizes in fb_set_var()
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Mon, 19 Sep 2022 00:41:11 +0800
+
+linux-imx (5.4.0-1025.31) focal; urgency=medium
+
+  * [X6MED][Feature] Bluetooth - no FW license & cannot initialise (LP:
+    #1933593)
+    - [Config] imx: armhf: CONFIG_IMX_SDMA=y
+
+  [ Ubuntu: 5.4.0-125.141 ]
+
+  * focal/linux: 5.4.0-125.141 -proposed tracker (LP: #1983947)
+  * nbd: requests can become stuck when disconnecting from server with qemu-nbd
+    (LP: #1896350)
+    - blk-mq: blk-mq: provide forced completion method
+    - blk-mq: move failure injection out of blk_mq_complete_request
+    - nbd: don't handle response without a corresponding request message
+    - nbd: make sure request completion won't concurrent
+    - nbd: don't clear 'NBD_CMD_INFLIGHT' flag if request is not completed
+    - nbd: fix io hung while disconnecting device
+  * CVE-2021-33656
+    - vt: drop old FONT ioctls
+  * CVE-2021-33061
+    - ixgbe: add the ability for the PF to disable VF link state
+    - ixgbe: add improvement for MDD response functionality
+    - ixgbevf: add disable link state
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 30 Aug 2022 18:28:39 +0800
+
+linux-imx (5.4.0-1024.29) focal; urgency=medium
+
+  * [Reading] Tracking bug for wireless support (LP: #1985008)
+    - SAUCE: net: wireless: brcmfmac: Add path for cypress firmware.
+    - SAUCE: net: wireless: brcmfmac: Support for CYW43439 SDIO
+    - brcmfmac: support 43439 Cypress Vendor and Device ID
+    - brcmfmac: add CYW43439 SR related changes
+
+  * [Reading] Tracking bug for kernel support (LP: #1985002)
+    - net: phy: dp83867: fix hfs boot in rgmii mode
+    - net: dp83867: Fix OF_MDIO config check
+    - SAUCE: arm64: dts: Support msc-sm2s-imx8mlc-mini.
+    - SAUCE: arm64: dts: msc-sm2-imx8m_mlc: Support Keurig.
+    - SAUCE: arm64: dts: imx8mlc_mini: build KDRP device tree
+    - SAUCE: arm64: dts: msc-sm2-imx8m_mlc: Added extcon entry for usb otg.
+    - arm64: dts: imx8mm: Remove incorrect fallback compatible for ocotp
+    - arm64: dts: imx8mm-evk: Assigned clocks for audio plls
+    - arm64: dts: imx8m: drop "fsl,aips-bus" and "fsl,imx8mq-aips-bus"
+    - arm64: dts: imx8m: fix aips dts node
+    - arm64: dts: imx8m: assign clocks for A53
+    - arm64: dts: imx8mm-evk: Assigned clocks for audio plls
+    - arm64: dts: imx8m: drop "fsl,aips-bus" and "fsl,imx8mq-aips-bus"
+    - arm64: dts: imx8m: fix aips dts node
+    - arm64: dts: imx8m: assign clocks for A53
+    - arm64: dts: imx8m: change ocotp node name on i.MX8M SoCs
+    - arm64: dts: imx8mm: add GPC node
+    - arm64: dts: imx8mm: Add the pcie support
+    - arm64: dts: imx8mm: Add the pcie phy support
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Correct pcie phy node.
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Add enet wakeup support,
+      including the irq wakeup property.
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Add dispmix-reset node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Define lcdif/dsi resets
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: Increase cma size
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add csi bridge and mipi csi
+      node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add fsl,dataline for SAI
+      node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add caam snvs and secvio
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add caam snvs clock
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add secure memory
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add the resets pcie
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add gpu device
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: add pcie ep support
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: use_dt_domains for pci node
+    - SAUCE: arm64: dts: msc-sm2s-imx8mlc-mini-module: assign osc_24m to dsi PHY
+      REF clock source
+    - arm64: dts: imx8m: add NVMEM provider and consumer to read soc unique ID
+    - SAUCE: arm64: dts: msc-sm2s-imx8mm_mlc: Added usb over current settings.
+    - SAUCE: drm: Add panel driver for AVD101WX-CN.
+    - SAUCE: drm: Updated panel driver for AVD101WX-CN.
+    - SAUCE: drm: Updated panel driver for AVD101WX-CN init sequence and timing.
+    - SAUCE: arm64: dts: msc-sm2s-imx8mm_mlc: Fixed USB0 otg support.
+    - SAUCE: drm: Fixed AVD101WX-CN display resolution.
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Changed GPIO10 to wifi enable.
+    - SAUCE: irqchip: imx: Corrected typo
+    - drm/panel: add backlight support
+    - MLK-14392-1 input: touch: add focaltech touch screen support
+    - LF-2653 drm/imx: lcdif: implement mode_valid() for CRTC
+    - reset: Kconfig: use 'ARCH_MXC' for reset dispmix
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm-04N0830E-module: add optee device node
+    - [Config] add AVD-TT101WX-CN touchscreen panel
+    - SAUCE: arm64: dts: kdp-sm2s-imx8mm: Use native RTS/CTS functionality of
+      uart2.
+    - drm/drm_panel: no error when no callback
+    - [Config] CONFIG_DRM_IMX_LCDIF=y
+
+  [ Ubuntu: 5.4.0-124.140 ]
+
+  * CVE-2022-2586
+    - SAUCE: netfilter: nf_tables: do not allow SET_ID to refer to another table
+    - SAUCE: netfilter: nf_tables: do not allow RULE_ID to refer to another chain
+  * CVE-2022-2588
+    - SAUCE: net_sched: cls_route: remove from list when handle is 0
+  * CVE-2022-34918
+    - netfilter: nf_tables: stricter validation of element data
+
+  [ Ubuntu: 5.4.0-123.139 ]
+
+  * focal/linux: 5.4.0-123.139 -proposed tracker (LP: #1981284)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.07.11)
+  * Hairpin traffic does not work with centralized NAT gw (LP: #1967856)
+    - net: openvswitch: fix misuse of the cached connection on tuple changes
+  * [UBUNTU 20.04] Include patches to avoid self-detected stall with Secure
+    Execution (LP: #1979296)
+    - KVM: s390: pv: add macros for UVC CC values
+    - KVM: s390: pv: avoid stalls when making pages secure
+    - KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
+  * Focal update: v5.4.195 upstream stable release (LP: #1980407)
+    - batman-adv: Don't skb_split skbuffs with frag_list
+    - hwmon: (tmp401) Add OF device ID table
+    - mac80211: Reset MBSSID parameters upon connection
+    - net: Fix features skip in for_each_netdev_feature()
+    - ipv4: drop dst in multicast routing path
+    - drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
+    - netlink: do not reset transport header in netlink_recvmsg()
+    - mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
+    - dim: initialize all struct fields
+    - hwmon: (ltq-cputemp) restrict it to SOC_XWAY
+    - s390/ctcm: fix variable dereferenced before check
+    - s390/ctcm: fix potential memory leak
+    - s390/lcs: fix variable dereferenced before check
+    - net/sched: act_pedit: really ensure the skb is writable
+    - net/smc: non blocking recvmsg() return -EAGAIN when no data and
+      signal_pending
+    - net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
+    - gfs2: Fix filesystem block deallocation for short writes
+    - hwmon: (f71882fg) Fix negative temperature
+    - ASoC: max98090: Reject invalid values in custom control put()
+    - ASoC: max98090: Generate notifications on changes for custom control
+    - ASoC: ops: Validate input values in snd_soc_put_volsw_range()
+    - s390: disable -Warray-bounds
+    - net: emaclite: Don't advertise 1000BASE-T and do auto negotiation
+    - tcp: resalt the secret every 10 seconds
+    - tty: n_gsm: fix mux activation issues in gsm_config()
+    - usb: cdc-wdm: fix reading stuck on device close
+    - usb: typec: tcpci: Don't skip cleanup in .remove() on error
+    - USB: serial: pl2303: add device id for HP LM930 Display
+    - USB: serial: qcserial: add support for Sierra Wireless EM7590
+    - USB: serial: option: add Fibocom L610 modem
+    - USB: serial: option: add Fibocom MA510 modem
+    - slimbus: qcom: Fix IRQ check in qcom_slim_probe
+    - serial: 8250_mtk: Fix UART_EFR register address
+    - serial: 8250_mtk: Fix register address for XON/XOFF character
+    - drm/nouveau/tegra: Stop using iommu_present()
+    - i40e: i40e_main: fix a missing check on list iterator
+    - cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
+    - drm/vmwgfx: Initialize drm_mode_fb_cmd2
+    - MIPS: fix build with gcc-12
+    - net: phy: Fix race condition on link status change
+    - arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
+    - ping: fix address binding wrt vrf
+    - tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
+    - Linux 5.4.195
+  * Focal update: v5.4.194 upstream stable release (LP: #1980399)
+    - MIPS: Use address-of operator on section symbols
+    - block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
+    - drm/amd/display/dc/gpio/gpio_service: Pass around correct dce_{version,
+      environment} types
+    - drm/i915: Cast remain to unsigned long in eb_relocate_vma
+    - nfp: bpf: silence bitwise vs. logical OR warning
+    - can: grcan: grcan_probe(): fix broken system id check for errata workaround
+      needs
+    - can: grcan: only use the NAPI poll budget for RX
+    - arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
+    - [Config] updateconfigs for ARCH_HAS_HOLES_MEMORYMODEL
+    - KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
+    - x86/asm: Allow to pass macros to __ASM_FORM()
+    - x86: xen: kvm: Gather the definition of emulate prefixes
+    - x86: xen: insn: Decode Xen and KVM emulate-prefix signature
+    - x86: kprobes: Prohibit probing on instruction which has emulate prefix
+    - KVM: x86/svm: Account for family 17h event renumberings in
+      amd_pmc_perf_hw_id
+    - Bluetooth: Fix the creation of hdev->name
+    - mm: fix missing cache flush for all tail pages of compound page
+    - mm: hugetlb: fix missing cache flush in copy_huge_page_from_user()
+    - mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and
+      __mcopy_atomic()
+    - Linux 5.4.194
+  * Focal update: v5.4.193 upstream stable release (LP: #1979566)
+    - MIPS: Fix CP0 counter erratum detection for R4k CPUs
+    - parisc: Merge model and model name into one line in /proc/cpuinfo
+    - ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
+    - gpiolib: of: fix bounds check for 'gpio-reserved-ranges'
+    - Revert "SUNRPC: attempt AF_LOCAL connect on setup"
+    - firewire: fix potential uaf in outbound_phy_packet_callback()
+    - firewire: remove check of list iterator against head past the loop body
+    - firewire: core: extend card->lock in fw_core_handle_bus_reset
+    - ACPICA: Always create namespace nodes using acpi_ns_create_node()
+    - genirq: Synchronize interrupt thread startup
+    - ASoC: da7219: Fix change notifications for tone generator frequency
+    - ASoC: wm8958: Fix change notifications for DSP controls
+    - ASoC: meson: Fix event generation for G12A tohdmi mux
+    - s390/dasd: fix data corruption for ESE devices
+    - s390/dasd: prevent double format of tracks for ESE devices
+    - s390/dasd: Fix read for ESE with blksize < 4k
+    - s390/dasd: Fix read inconsistency for ESE DASD devices
+    - can: grcan: grcan_close(): fix deadlock
+    - can: grcan: use ofdev->dev when allocating DMA memory
+    - nfc: replace improper check device_is_registered() in netlink related
+      functions
+    - NFC: netlink: fix sleep in atomic bug when firmware download timeout
+    - hwmon: (adt7470) Fix warning on module removal
+    - ASoC: dmaengine: Restore NULL prepare_slave_config() callback
+    - RDMA/siw: Fix a condition race issue in MPA request processing
+    - net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init()
+    - net: stmmac: dwmac-sun8i: add missing of_node_put() in
+      sun8i_dwmac_register_mdio_mux()
+    - net: emaclite: Add error handling for of_address_to_resource()
+    - selftests: mirror_gre_bridge_1q: Avoid changing PVID while interface is
+      operational
+    - bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag
+    - smsc911x: allow using IRQ0
+    - btrfs: always log symlinks in full mode
+    - net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
+    - drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu
+    - NFSv4: Don't invalidate inode attributes on delegation return
+    - kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
+    - x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
+    - KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised
+    - net: ipv6: ensure we call ipv6_mc_down() at most once
+    - block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
+    - mm: fix unexpected zeroed page mapping with zram swap
+    - ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
+    - ALSA: pcm: Fix races among concurrent read/write and buffer changes
+    - ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
+    - ALSA: pcm: Fix races among concurrent prealloc proc writes
+    - ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
+    - tcp: make sure treq->af_specific is initialized
+    - dm: fix mempool NULL pointer race when completing IO
+    - dm: interlock pending dm_io and dm_wait_for_bios_completion
+    - PCI: aardvark: Clear all MSIs at setup
+    - PCI: aardvark: Fix reading MSI interrupt number
+    - mmc: rtsx: add 74 Clocks in power on flow
+    - Linux 5.4.193
+  * CVE-2022-1679
+    - SAUCE: ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
+  * CVE-2022-28893
+    - SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
+    - SUNRPC: Don't leak sockets in xs_local_connect()
+  * CVE-2022-1734
+    - nfc: nfcmrvl: main: reorder destructive operations in
+      nfcmrvl_nci_unregister_dev to avoid bugs
+  * CVE-2022-1652
+    - floppy: use a statically allocated error counter
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Sun, 14 Aug 2022 19:45:48 +0800
+
+linux-imx (5.4.0-1023.28) focal; urgency=medium
+
+  * Focal update: upstream stable patchset v5.4.192 (LP: #1979014)
+    - [Config] updateconfigs for NVM
+
+  * [uc20-x01] System can not wake up from suspend. (LP: #1976604)
+    - soc: imx: gpcv2: support system suspend/resume
+    - SAUCE: imx7: Suspend/Resume updates
+
+  * [PE100A][Core] The system shutdown because the critial temperature of
+    thermal should be config to 105'c not 90'c (LP: #1982989)
+    - SAUCE: imx/pe100a: dts: Set GPU/VPU crit temprature to 105
+
+  [ Ubuntu: 5.4.0-122.138 ]
+
+  * focal/linux: 5.4.0-122.138 -proposed tracker (LP: #1979489)
+  * Remove SAUCE patches from test_vxlan_under_vrf.sh in net of
+    ubuntu_kernel_selftests (LP: #1975691)
+    - Revert "UBUNTU: SAUCE: selftests: net: Don't fail test_vxlan_under_vrf on
+      xfail"
+    - Revert "UBUNTU: SAUCE: selftests: net: Make test for VXLAN underlay in non-
+      default VRF an expected failure"
+  * Enable Asus USB-BT500 Bluetooth dongle(0b05:190e) (LP: #1976613)
+    - Bluetooth: btusb: Add flag to define wideband speech capability
+    - Bluetooth: btrtl: Add support for RTL8761B
+    - Bluetooth: btusb: Add 0x0b05:0x190e Realtek 8761BU (ASUS BT500) device.
+  * [UBUNTU 20.04] rcu stalls with many storage key guests (LP: #1975582)
+    - s390/gmap: voluntarily schedule during key setting
+    - s390/mm: use non-quiescing sske for KVM switch to keyed guest
+  * Ubuntu 5.4.0-117.132-generic 5.4.189 has BUG: kernel NULL pointer
+    dereference, address: 0000000000000034 (LP: #1978719)
+    - mm: rmap: explicitly reset vma->anon_vma in unlink_anon_vmas()
+  * Focal update: upstream stable patchset v5.4.192 (LP: #1979014)
+    - floppy: disable FDRAWCMD by default
+    - [Config] updateconfigs for BLK_DEV_FD_RAWCMD
+    - hamradio: defer 6pack kfree after unregister_netdev
+    - hamradio: remove needs_free_netdev to avoid UAF
+    - lightnvm: disable the subsystem
+    - [Config] updateconfigs for NVM, NVM_PBLK
+    - usb: mtu3: fix USB 3.0 dual-role-switch from device to host
+    - USB: quirks: add a Realtek card reader
+    - USB: quirks: add STRING quirk for VCOM device
+    - USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
+    - USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
+    - USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
+    - USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
+    - xhci: stop polling roothubs after shutdown
+    - xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
+    - iio: dac: ad5592r: Fix the missing return value.
+    - iio: dac: ad5446: Fix read_raw not returning set value
+    - iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
+    - usb: misc: fix improper handling of refcount in uss720_probe()
+    - usb: typec: ucsi: Fix role swapping
+    - usb: gadget: uvc: Fix crash when encoding data for usb request
+    - usb: gadget: configfs: clear deactivation flag in
+      configfs_composite_unbind()
+    - usb: dwc3: core: Fix tx/rx threshold settings
+    - usb: dwc3: gadget: Return proper request status
+    - serial: imx: fix overrun interrupts in DMA mode
+    - serial: 8250: Also set sticky MCR bits in console restoration
+    - serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
+    - arch_topology: Do not set llc_sibling if llc_id is invalid
+    - hex2bin: make the function hex_to_bin constant-time
+    - hex2bin: fix access beyond string end
+    - video: fbdev: udlfb: properly check endpoint type
+    - arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
+    - arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
+    - mtd: rawnand: fix ecc parameters for mt7622
+    - USB: Fix xhci event ring dequeue pointer ERDP update issue
+    - ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
+    - phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
+    - phy: samsung: exynos5250-sata: fix missing device put in probe error paths
+    - ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
+    - phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
+    - ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
+    - phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
+    - phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
+    - ARM: dts: Fix mmc order for omap3-gta04
+    - ARM: dts: am3517-evm: Fix misc pinmuxing
+    - ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
+    - ipvs: correctly print the memory size of ip_vs_conn_tab
+    - mtd: rawnand: Fix return value check of wait_for_completion_timeout
+    - bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt
+      hook
+    - tcp: md5: incorrect tcp_header_len for incoming connections
+    - tcp: ensure to use the most recently sent skb when filling the rate sample
+    - sctp: check asoc strreset_chunk in sctp_generate_reconf_event
+    - ARM: dts: imx6ull-colibri: fix vqmmc regulator
+    - arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
+    - pinctrl: pistachio: fix use of irq_of_parse_and_map()
+    - cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
+    - net: hns3: add validity check for message data length
+    - net/smc: sync err code when tcp connection was refused
+    - ip_gre: Make o_seqno start from 0 in native mode
+    - tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
+    - bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
+    - clk: sunxi: sun9i-mmc: check return value after calling
+      platform_get_resource()
+    - net: bcmgenet: hide status block before TX timestamping
+    - net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
+    - drm/amd/display: Fix memory leak in dcn21_clock_source_create
+    - tls: Skip tls_append_frag on zero copy size
+    - bnx2x: fix napi API usage sequence
+    - ixgbe: ensure IPsec VF<->PF compatibility
+    - tcp: fix F-RTO may not work correctly when receiving DSACK
+    - ASoC: wm8731: Disable the regulator when probing fails
+    - ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit()
+    - x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
+    - cifs: destage any unwritten data to the server before calling
+      copychunk_write
+    - drivers: net: hippi: Fix deadlock in rr_close()
+    - net: ethernet: stmmac: fix write to sgmii_adapter_base
+    - x86/cpu: Load microcode during restore_processor_state()
+    - tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
+    - tty: n_gsm: fix malformed counter for out of frame data
+    - netfilter: nft_socket: only do sk lookups when indev is available
+    - tty: n_gsm: fix insufficient txframe size
+    - tty: n_gsm: fix missing explicit ldisc flush
+    - tty: n_gsm: fix wrong command retry handling
+    - tty: n_gsm: fix wrong command frame length field encoding
+    - tty: n_gsm: fix incorrect UA handling
+    - hugetlbfs: get unmapped area below TASK_UNMAPPED_BASE for hugetlbfs
+    - mm, hugetlb: allow for "high" userspace addresses
+    - Linux 5.4.192
+  * CVE-2022-1789
+    - KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
+  * Focal update: v5.4.191 upstream stable release (LP: #1976116)
+    - etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead
+    - mm: page_alloc: fix building error on -Werror=array-compare
+    - tracing: Dump stacktrace trigger to the corresponding instance
+    - gfs2: assign rgrp glock before compute_bitstructs
+    - tcp: fix race condition when creating child sockets from syncookies
+    - tcp: Fix potential use-after-free due to double kfree()
+    - ALSA: usb-audio: Clear MIDI port active flag after draining
+    - ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek
+    - ASoC: msm8916-wcd-digital: Check failure for devm_snd_soc_register_component
+    - dmaengine: imx-sdma: Fix error checking in sdma_event_remap
+    - dmaengine: mediatek:Fix PM usage reference leak of
+      mtk_uart_apdma_alloc_chan_resources
+    - igc: Fix infinite loop in release_swfw_sync
+    - igc: Fix BUG: scheduling while atomic
+    - rxrpc: Restore removed timer deletion
+    - net/smc: Fix sock leak when release after smc_shutdown()
+    - net/packet: fix packet_sock xmit return value checking
+    - net/sched: cls_u32: fix possible leak in u32_init_knode()
+    - l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using
+      netdev_master_upper_dev_get_rcu
+    - netlink: reset network and mac headers in netlink_dump()
+    - selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets
+    - ARM: vexpress/spc: Avoid negative array index when !SMP
+    - reset: tegra-bpmp: Restore Handle errors in BPMP response
+    - platform/x86: samsung-laptop: Fix an unsigned comparison which can never be
+      negative
+    - ALSA: usb-audio: Fix undefined behavior due to shift overflowing the
+      constant
+    - vxlan: fix error return code in vxlan_fdb_append
+    - cifs: Check the IOCB_DIRECT flag, not O_DIRECT
+    - mt76: Fix undefined behavior due to shift overflowing the constant
+    - brcmfmac: sdio: Fix undefined behavior due to shift overflowing the constant
+    - dpaa_eth: Fix missing of_node_put in dpaa_get_ts_info()
+    - drm/msm/mdp5: check the return of kzalloc()
+    - net: macb: Restart tx only if queue pointer is lagging
+    - scsi: qedi: Fix failed disconnect handling
+    - stat: fix inconsistency between struct stat and struct compat_stat
+    - EDAC/synopsys: Read the error count from the correct register
+    - oom_kill.c: futex: delay the OOM reaper to allow time for proper futex
+      cleanup
+    - ata: pata_marvell: Check the 'bmdma_addr' beforing reading
+    - dma: at_xdmac: fix a missing check on list iterator
+    - drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
+    - drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
+    - KVM: PPC: Fix TCE handling for VFIO
+    - drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
+    - powerpc/perf: Fix power9 event alternatives
+    - xtensa: patch_text: Fixup last cpu should be master
+    - xtensa: fix a7 clobbering in coprocessor context load/store
+    - openvswitch: fix OOB access in reserve_sfa_size()
+    - ASoC: soc-dapm: fix two incorrect uses of list iterator
+    - e1000e: Fix possible overflow in LTR decoding
+    - ARC: entry: fix syscall_trace_exit argument
+    - arm_pmu: Validate single/group leader events
+    - ext4: fix symlink file size not match to file content
+    - ext4: fix use-after-free in ext4_search_dir
+    - ext4, doc: fix incorrect h_reserved size
+    - ext4: fix overhead calculation to account for the reserved gdt blocks
+    - ext4: force overhead calculation if the s_overhead_cluster makes no sense
+    - jbd2: fix a potential race while discarding reserved buffers after an abort
+    - spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and
+      controller
+    - staging: ion: Prevent incorrect reference counting behavour
+    - block/compat_ioctl: fix range check in BLKGETSIZE
+    - Linux 5.4.191
+  * Focal update: v5.4.190 upstream stable release (LP: #1973085)
+    - memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
+    - net/sched: flower: fix parsing of ethertype following VLAN header
+    - veth: Ensure eth header is in skb's linear part
+    - gpiolib: acpi: use correct format characters
+    - mlxsw: i2c: Fix initialization error flow
+    - net/sched: fix initialization order when updating chain 0 head
+    - net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link
+    - net/sched: taprio: Check if socket flags are valid
+    - cfg80211: hold bss_lock while updating nontrans_list
+    - drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init()
+    - net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
+    - sctp: Initialize daddr on peeled off socket
+    - testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set
+    - nfc: nci: add flush_workqueue to prevent uaf
+    - cifs: potential buffer overflow in handling symlinks
+    - drm/amd: Add USBC connector ID
+    - drm/amd/display: fix audio format not updated after edid updated
+    - drm/amd/display: Update VTEM Infopacket definition
+    - drm/amdkfd: Fix Incorrect VMIDs passed to HWS
+    - drm/amdkfd: Check for potential null return of kmalloc_array()
+    - Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer
+    - scsi: target: tcmu: Fix possible page UAF
+    - scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
+    - ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
+    - gpu: ipu-v3: Fix dev_dbg frequency output
+    - regulator: wm8994: Add an off-on delay for WM8994 variant
+    - arm64: alternatives: mark patch_alternative() as `noinstr`
+    - tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
+    - net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
+    - drm/amd/display: Fix allocate_mst_payload assert on resume
+    - powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
+    - scsi: mvsas: Add PCI ID of RocketRaid 2640
+    - scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
+    - drivers: net: slip: fix NPD bug in sl_tx_timeout()
+    - perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
+    - mm, page_alloc: fix build_zonerefs_node()
+    - mm: kmemleak: take a full lowmem check in kmemleak_*_phys()
+    - gcc-plugins: latent_entropy: use /dev/urandom
+    - ath9k: Properly clear TX status area before reporting to mac80211
+    - ath9k: Fix usage of driver-private space in tx_info
+    - btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()
+    - btrfs: mark resumed async balance as writing
+    - ALSA: hda/realtek: Add quirk for Clevo PD50PNT
+    - ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
+    - ipv6: fix panic when forwarding a pkt with no in6 dev
+    - drm/amd/display: don't ignore alpha property on pre-multiplied mode
+    - genirq/affinity: Consider that CPUs on nodes can be unbalanced
+    - tick/nohz: Use WARN_ON_ONCE() to prevent console saturation
+    - ARM: davinci: da850-evm: Avoid NULL pointer dereference
+    - dm integrity: fix memory corruption when tag_size is less than digest size
+    - smp: Fix offline cpu check in flush_smp_call_function_queue()
+    - i2c: pasemi: Wait for write xfers to finish
+    - dma-direct: avoid redundant memory sync for swiotlb
+    - ax25: add refcount in ax25_dev to avoid UAF bugs
+    - ax25: fix reference count leaks of ax25_dev
+    - ax25: fix UAF bugs of net_device caused by rebinding operation
+    - ax25: Fix refcount leaks caused by ax25_cb_del()
+    - ax25: fix UAF bug in ax25_send_control()
+    - ax25: fix NPD bug in ax25_disconnect
+    - ax25: Fix NULL pointer dereferences in ax25 timers
+    - ax25: Fix UAF bugs in ax25 timers
+    - Linux 5.4.190
+
+  [ Ubuntu: 5.4.0-121.137 ]
+
+  * focal/linux: 5.4.0-121.137 -proposed tracker (LP: #1978666)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.05.30)
+  * CVE-2022-28388
+    - can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error
+      path
+  * test_vxlan_under_vrf.sh in net from ubuntu_kernel_selftests failed (Check VM
+    connectivity through VXLAN (underlay in the default VRF) [FAIL])
+    (LP: #1871015)
+    - selftests: net: test_vxlan_under_vrf: fix HV connectivity test
+  * [UBUNTU 20.04] CPU-MF: add extended counter set definitions for new IBM z16
+    (LP: #1974433)
+    - s390/cpumf: add new extended counter set for IBM z16
+  * [UBUNTU 20.04] KVM nesting support leaks too much memory, might result in
+    stalls during cleanup (LP: #1974017)
+    - KVM: s390: vsie/gmap: reduce gmap_rmap overhead
+  * [UBUNTU 20.04] Null Pointer issue in nfs code running Ubuntu on IBM Z
+    (LP: #1968096)
+    - NFS: Fix up nfs_ctx_key_to_expire()
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Wed, 10 Aug 2022 14:53:21 +0800
+
+linux-imx (5.4.0-1022.26) focal; urgency=medium
+
+  * [pe100a] WWAN primary port is missing after resume from suspend (LP:
+    #1981540)
+    - SAUCE: pe100a: Pull platform reset pin low before suspend
+
+  * [PE100A] Custom setup required for LAN1 LED (LP: #1978043)
+    - SAUCE: net: fec: Set custom PHY LED config for PE100A
+
+  * [PE100A] Remove CAN debug messages (LP: #1965849)
+    - SAUCE: imx/pe100a: CAN: Remove debug messages
+
+  * [PE100A] Refine 0016-ethernet-Asus-LAN2-feature-porting.patch (LP: #1970770)
+    - SAUCE: Revert igb changes introduced by "Asus LAN2 feature porting"
+
+  * [PE100A] Syncing between two RTCs doesn't really work (LP: #1967267)
+    - SAUCE: rtc: isl1208: Mark UIE unsupported if there is no IRQ defined
+    - SAUCE: rtc: bq32k: Mark UIE unsupported if there is no IRQ defined
+    - SAUCE: imx/pe100a: dts: Add RTC aliases
+
+  * [PE100A] PCI bus doesn't work if platform-reset is not set as built-in (LP:
+    #1967293)
+    - SAUCE: pe100a: reset: Toggle reset pin on resume only
+    - [Config] CONFIG_RESET_ASUS_PE100A=m
+
+  * [PE100A] systemd does not turn-off device by power key pressed (LP:
+    #1965751)
+    - SAUCE: dts: pe100a: Add clock-names to snvs_pwrkey
+    - [Config] imx: arm64: CONFIG_KEYBOARD_SNVS_PWRKEY=m
+
+  * HDMI not worked after boot kernel (LP: #1965475)
+    - [Config] Enlarge CMA size for higher display resolution
+
+  * [PE100A] Add RTC bq32000 (LP: #1965851)
+    - SAUCE: imx/pe100a: dts: Add RTC bq32000
+
+  * Import eth0 pinctrl changes (LP: #1965852)
+    - SAUCE: pinctrl: modify RGMII TX&RX SRE to slow and other config.
+
+  * [pe100a][us2004]Intel I211 eth didn't bring up (LP: #1965485)
+    - [Config] Enable E100/E1000/E1000E and IGB
+    - [Config] CONFIG_RESET_ASUS_PE100A=y
+
+  * [PE100A]Internal eMMC is not working (LP: #1958199)
+    - [Config] Add driver for REGULATOR_BD718XX
+
+  * [pe100a][us2004]Wireless module not worked (LP: #1965481)
+    - [Config] Enable ath10k
+
+  * [pe100a][us2004]HDMI not worked after boot kernel (LP: #1965475)
+    - clk: imx8mq: add 27MHz PHY ref clock
+    - arm64: dts: imx8mq: add dcss, hdmi and create imx8mq-evk-hdmi.dts file
+    - dts: arm: imx: add imx8mq hdmi
+    - arm64: dts: imx8mq: add DCSS node
+    - arm64: dts: imx8mq: use the DCSS DTRC interrupts
+    - arm64: dts: imx8mq: add DCSS external oscillator support
+    - SAUCE: Fix HDMI output on PE100A
+    - [Config] CONFIG_FB_EFI=n
+
+  * [X6MED][UC20] WARNING: CPU: 0 PID: 1 at arch/arm/mm/dump.c (LP: #1951783)
+    - ARM: add __arm_iomem_set_ro() to write-protect ioremapped area
+    - ARM: imx6: mark OCRAM mapping read-only
+
+  * [imx8-bms] RS485 Send and receive test failed (LP: #1978514)
+    - MLK-21309: dma: engine: sdma: add uart rom script
+    - serial: core: Initialize rs485 RTS polarity already on probe
+
+  * [US20.04][UC20] Camera does not work (LP: #1966824)
+    - SAUCE: dts: amgis: Fix clock used by ov9281_mipi and clock used by clko1.
+    - [Config] Enable REGULATOR_ANATOP as a built-in driver for armhf.
+
+  * [uc20-x01] Can't find audio playback device (LP: #1976600)
+    - SAUCE: ASoC: topology: Avoid card NULL deref in
+      snd_soc_tplg_component_remove()
+
+  * [US20.04]Display not showing imagery (LP: #1970656)
+    - SAUCE: gpu: drm: panel: simple-panel: add DLC0430DCP10RF-2 support
+    - drm/mxsfb: Update mxsfb to support a bridge
+    - drm/mxsfb: Read bus flags from bridge if present
+    - drm/mxsfb: Add defines for the rest of registers
+    - drm/mxsfb: Reset vital registers for a proper initialization
+    - drm/mxsfb: Update register definitions using bit manipulation defines
+    - drm/mxsfb: Update mxsfb with additional pixel formats
+    - drm/mxsfb: Update mxsfb to support LCD reset
+    - drm/mxsfb: Clear OUTSTANDING_REQS bits
+    - MLK-24334-3: drm/mxsfb: Fix the LCD_RESET pin usage
+
+  * [US20.04] OV9281 camera sensor support (LP: #1966824)
+    - SAUCE: media: Add driver for OV9281
+    - SAUCE: media: Fix OV9281 module build and cleanup function names.
+    - SAUCE: media: capture: add grey pixel format used by ov9281 mipi driver.
+    - SAUCE: media: Fix OV9281 calls that search for regulators in the device
+      tree.
+    - SAUCE: dts: amgis: Fix pinctrl-0 for mipi-csi.
+    - [Config] Enable IMX_GPCV2_PM_DOMAINS for armhf.
+
+  * [US20.04] RPMSG driver support (LP: #1968362)
+    - rpmsg: imx: add the initial imx rpmsg support
+    - dt-binding: add imx rpmsg compatibility documentation
+    - rpmsg: imx: extend the rpmsg support for imx8qm and so on
+    - rpmsg: imx: bug fix and clean up the codes
+    - rpmsg: imx_rpmsg: add partition reset notify
+    - rpmsg: imx: enable the tx_block mechanism in the flow
+    - imx-mailbox: add state save and restore
+    - mailbox: imx: change to arch_init()
+    - mailbox: imx: add support for imx v1 mu
+    - SAUCE: ARM: imx: Define M4 related APIs in headers.
+    - clk: imx7d: add A7-M4 AMP power management support
+    - ARM: imx: add i.MX7D bus-freq support
+    - SAUCE: ARM: imx: Add type definition for LPDDR3.
+    - SAUCE: ARM: imx: add suspend/resume support needed for imx7 rpmsg
+      communication with the M4 core.
+    - ARM: imx: add i.MX7D power management support
+    - arm: arch: enable rpmsg for imx amp soc
+    - arm: imx: rename the compatible node of lpm mu driver
+    - MLK-23008 ARM: imx: Remove unused code on i.MX7D suspend driver
+    - LF-1011-26 arm: imx: pm-imx7: fix build break when calling of_flat_dt_match
+    - LF-1011-29 arm: imx: fix build break when calling of_flat_dt_match
+    - SAUCE: ARM: dts: Fix booting imx7 with added changes for
+      suspend/resume/power management.
+    - SAUCE: imx: Fix build error by including cpu type functions.
+    - SAUCE: dts: amgis: Enable rpmsg.
+    - [Config] Enable i.MX7D rpmsg support.
+    - SAUCE: dts: amgis: Fix booting without loading a bare metal m4 application.
+    - SAUCE: ARM: imx7: Use generic names per devicetree specification to fix
+      warnings from pm-imx7.
+    - SAUCE: ARM: imx7: Fix memory mapping for iram_tlb_io_desc by removing the
+      executable flag, resulting in a pagetable warning.
+
+  * [US20.04] Audio does not work (LP: #1966821)
+    - ASoC: tas2562: Introduce the TAS2562 amplifier
+    - ASoC: tas2562: Fix misuse of GENMASK macro
+    - ASoC: tas2562: Add support for digital volume control
+    - ASoC: tas2562: Fixed incorrect amp_level setting.
+    - ASoC: tas2562: Update shutdown GPIO property
+    - ASoC: tas2562: Update shutdown GPIO property
+    - ASoC: tas2562: Add the TAS2110 class-D amplifier
+    - [Config] CONFIG_SND_SOC_TAS2562=m on armhf
+
+  * Miscellaneous Ubuntu changes
+    - [Config] Enable i.MX7D
+    - SAUCE: arm: dts: add Amgis dts files
+    - SAUCE: dts: amgis: Device tree janitorial work
+    - SAUCE: dts: amgis: enable camera in device tree
+    - SAUCE: dts: amgis: use imx internal version of csi bridge/mipi csi node
+    - SAUCE: imx/pe100a: Add dts and defconfig for ASUS PE100A
+    - SAUCE: imx/pe100a: dts: Enable Rohm PMIC on ASUS PE100A
+    - SAUCE: imx/pe100a: dts: Updates for PE100A
+    - SAUCE: imx/pe100a: Add the platform-reset driver to control platform reset
+      gpio
+    - SAUCE: imx/pe100a: Rename the reset driver
+    - [Config] CONFIG_RESET_ASUS_PE100A=m
+    - SAUCE: imx/pe100a: HDMI: auto config physical address for cec
+    - SAUCE: imx/pe100a: hdmi-cec: Set pa only when a property is available
+    - SAUCE: imx/pe100a: HDMI: modify resolution upper limmit to 1920x1080 when
+      noEDID
+    - SAUCE: imx/pe100a: dts: Enable rtc-isl1208
+    - SAUCE: imx/pe100a: dts: Add cpu-alert/crit temperature
+    - SAUCE: imx/pe100a: defconfig: Import thermal config updates
+    - SAUCE: imx/pe100a: dts: Enable Wake-On-LAN
+    - SAUCE: imx/pe100a: extcon: it5201: add IT5201 Type-C CC logic chip
+    - [Config] imx/pe100a: CONFIG_EXTCON_IT5201=m
+    - SAUCE: imx/pe100a: ethernet: Asus LAN2 feature porting
+    - SAUCE: imx/pe100a: dts: EEPROM: support at24 eeprom
+    - SAUCE: imx/pe100a: dts: Audio: disable unavailable sound cards and SAI
+      configurations.
+    - SAUCE: imx/pe100a: defconfig: update defconfig for asus board
+    - SAUCE: imx/pe100a: Gpu: Change gpu shader frequency from 800MHz to 1GHz.
+    - SAUCE: imx/pe100a: CAN: Add MCP2515 support
+    - [Config] imx/pe100a: Enable CONFIG_CAN_MCP251X and CONFIG_CAN_DEBUG_DEVICES
+    - SAUCE: imx/pe100a: enable spi1 and add TCG_TIS_SPI support on 3.0
+    - SAUCE: imx/pe100a: defconfig: Add drivers for moby container engine
+    - SAUCE: imx/pe100a: Remove undefined labels
+    - SAUCE: imx/pe100a: extcon: Fix i2c_device_id array
+    - SAUCE: imx/pe100a: dts: Add usdhc clocks assignment
+    - SAUCE: reset-pe100a: Remove gpio_is_valid() check
+    - SAUCE: net: fec: Fix bit mask definitions
+    - SAUCE: imx/pe100a: Remove assigned PCI clock
+
+  * Miscellaneous upstream changes
+    - soc: imx: fix build error of missing imx_src_is_m4_enabled
+    - irqchip: irq-imx-gpcv2: Add workaround for i.MX8MQ ERR11171
+    - irqchip: irq-imx-gpcv2: Disable cpuidle if no GPC_CORE_WAKE in EL3
+    - irqchip: irq-imx-gpcv2: fix the suspend/resume on imx8mq
+    - MLK-21399 irqchip: Allow i.MX8MQ to call into TF-A
+    - LF-125 irqchip: irq-imx-gpcv2: Fix build error of nosmp
+    - irqchip: imx-gpcv2: Fix build error for imx_v6_v7_defconfig
+    - PCI: imx: add the l1ss feature on imx8m platforms
+    - PCI: imx: enable imx8 pcie pm support
+    - PCI: dwc: Use interrupt disabling instead of masking
+    - PCI: dwc: fix the msi failure after pm operations
+    - Revert "UBUNTU: SAUCE: net: fec: add imx8mq and imx8qm new versions support"
+    - net: fec: add imx8mq and imx8qm new versions support
+    - Revert "net: fec: fix system hang during suspend/resume"
+    - net: fec: add WoL support for i.MX8MQ
+    - net: fec: fix system hang during suspend/resume
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Wed, 13 Jul 2022 19:24:36 +0800
+
+linux-imx (5.4.0-1021.23) focal; urgency=medium
+
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2022.05.30)
+
+  * Focal update: v5.4.184 upstream stable release (LP: #1969242)
+    - [Config] updateconfigs for HARDEN_BRANCH_HISTORY
+
+  * [X6MED][UC20] CAAM crypto engine kernel panic (LP: #1967124)
+    - [Config] enable L2 cache L2X0 and its ERRATA for armhf
+
+  * [imx8-pdk][uc20-x03]Kernel panic while system go into suspend (LP: #1963629)
+    - net: fec: fix system hang during suspend/resume
+
+  * Need POSIX Calls Especially Message Queue (LP: #1944649)
+    - SAUCE: apparmor: move ptrace mediation to more logical task.{h,c}
+    - SAUCE: apparmor: fix setting unconfined mode on a loaded profile
+    - SAUCE: apparmor: fix overlapping attachment computation
+    - SAUCE: apparmor: allow label to carry debug flags
+    - SAUCE: apparmor: extend policydb permission set by making use of the xbits
+    - SAUCE: apparmor: Add fine grained mediation of posix mqueues
+
+  * Enable full-disk encryption (FDE) via OP-TEE (LP: #1953725)
+    - arm: imx: remove GPC low power mode switch
+
+  * [imx8-pdk][imx8-firecpu20][US20.04/UC20] RS-485 didn't worked (LP: #1934083)
+    - MLK-24708 spi: imx: handle EPROBE_DEFER when get cs-gpios number
+
+  * [imx8-pdk][Feature]M7 core (LP: #1935879)
+    - remoteproc: imx_rproc: parse fsl,auto-boot
+    - remoteproc: imx_rproc: initial support for mutilple start/stop method
+    - remoteproc: imx_rproc: make clk optional
+    - remoteproc: imx_rproc: support i.MX7ULP
+    - remoteproc: imx_rproc: support i.MX8MN/P
+    - remoteproc: imx_rproc: support i.MX8ULP
+    - remoteproc: imx_rproc: Fix TCM io memory type
+    - remoteproc: imx_rproc: Fix ignoring mapping vdev regions
+    - remoteproc: imx_rproc: Fix rsc-table name
+    - remoteproc: imx_rproc: Change to ioremap_wc for dram
+    - remoteproc: imx_rproc: Move common structure to header file
+    - remoteproc: imx_rproc: Fix a resource leak in the remove function
+    - remoteproc: imx_rproc: correct firmware reload
+    - MLK-23754-14 remoteproc: elf_loader: drop unneedded memset
+    - MLK-23754-19 remoteproc: add rproc_memcpy
+    - MLK-23754-21 remoteproc: imx_rproc: add imx memcpy functions
+    - SAUCE: remoteproc: imx_rproc: expand the clk array
+
+  * [imx8-pdk] USB port features and functions for OTG (LP: #1936038)
+    - SAUCE: extcon: fix the timer task timeout value
+    - SAUCE: usb: dwc3: add a switch to let drd use extcon on imx8mp
+
+  * [imx8-pdk][Feature]LVDS (LP: #1930804)
+    - MLK-23622-01 soc: imx: Add active wakeup flag for domain with active-wakeup
+      property
+    - MLK-23671-01 soc: imx: Add the rpm always on flag if necessary
+    - MLK-11293: gpio: pca953x: add device_reset() call
+    - gpio: pca953x: no need to do regcache sync without vcc regulator
+    - MLK-23602 gpio: pca953x: no need to show the warning of reg everytime
+
+  * [imx8-pdk] stress-ng cpu cache fail (LP: #1934105)
+    - arm64: dts: imx8m: add cache info
+
+  * [imx8-bms]MAC address not fixed after burned fuse (LP: #1942029)
+    - net: ethernet: add property "nvmem_macaddr_swap" to swap macaddr bytes order
+    - net: fec: add defer probe for of_get_mac_address
+
+  * imx8-pdk: emmc and sdhc index can't be fixed (LP: #1966163)
+    - mmc: add feature of setting slot index via devicetree alias
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: fix the clk for audio and gpu3d
+    - [Config] Enable AUDIOMIX and HDMIMIX reset
+    - SAUCE: clk: clk-imx8mp: Fix gpu2d clks
+    - [config] enable HDMI graphic and audio Kconfigs
+    - [Config] do not enforce reserved CMA sizes in kernel config
+    - [Config] update caam crypto configs
+    - [Config] CONFIG_CRYPTO_DEV_FSL_CAAM_KEYBLOB_API_DESC=y
+    - SAUCE: sdma: disable rt pm for imx8mp
+    - SAUCE: media: imx8: support to build as module
+
+  * Miscellaneous upstream changes
+    - mfd: Add audiomix support
+    - MA-17597-3 mfd: imx-audiomix: add license for module build
+    - MLK-23250-06: reset: Add hdmimix reset driver
+    - reset: imx: Add audiomix reset controller support
+    - MA-17913 reset: Allow reset-imx7/hdmimix/audiomix driver to be loadable as
+      module
+    - MLK-23159-4 clk: imx: Add i.MX8MP clock driver
+    - arm64: dts: imx8mp: Add clock and power domain to audiomix dts node
+    - MLK-23314-7: clk: imx: clk-audiomix: refine some muxes flags
+    - MLK-23680-1: clk: imx: clk-audiomix: remove sdma root clock
+    - MLK-23886-2: clk: imx: clk-audiomix: fix runtime PM
+    - clk: imx: clk-audiomix: Add SAI PLL frequencies
+    - clk: imx: clk-audiomix: fix PDM clocks
+    - MLK-24307-1 clk: imx: clk-audiomix: enable set parent rate for
+      IMX8MP_CLK_AUDIOMIX_PDM_SEL
+    - ASoC: fsl_sai: Add new added registers and new bit definition
+    - ASoC: fsl-asoc-card: Defer probe when fail to find codec device
+    - clk: imx: Remove the audio ipg clock from imx8mp
+    - MLK-16290 drm: Add drm_of_component_probe_with_match() helper
+    - drm/fourcc: add a 10bits fully packed variant of NV12
+    - drm/imx: Revert a patch which merges imx-drm-core and ipuv3-crtc in one
+      module
+    - drm/imx: Extract IPUv3 specific KMS functions to ipuv3-kms.c (part 1)
+    - drm/imx: Add DPU KMS support (part 2)
+    - MLK-22171 drm/imx: Avoid leaking dangling pointer dev->driver_data to PM ops
+    - MLK-18535-6 drm/imx: core: add LCDIF support
+    - gpu: imx: Add dpu common driver support
+    - drm/imx: Add DPU KMS support (part 1)
+    - MLK-21876-5 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-6 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-7 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-8 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-9 gpu: drm: dpu: fix build for next-20190524 upgrade
+    - MLK-21876-10 gpu: drm: dpu: fix headfile reference issue (part 1)
+    - gpu: imx: dpu: framegen: Use bypass clock when display encoder type is TMDS
+    - drm/imx: dpu: crtc: Specify encoder type for framegen_cfg_videomode()
+    - gpu: imx: dpu: framegen: add disp_lpcg clock
+    - MLK-15321-1 gpu: imx: dpu: Add dpu blit engine device
+    - gpu: imx: dpu: fetchunit: Add helper for TKT343664 to fixup burst size
+    - gpu: imx: dpu: fetchunit: Add helper for TKT339017 to fixup stride
+    - gpu: imx: dpu: fetchunit: Use TKT343664's fixup for ->set_burstlength()
+    - gpu: imx: dpu: fetchunit: Use TKT343664&TKT339017's fixups for
+      ->set_baseaddress()
+    - gpu: imx: dpu: fetchunit: Use TKT343664&TKT339017's fixups for
+      ->set_src_stride()
+    - gpu: imx: dpu: fetchunit: Add DPR support
+    - gpu: imx: dpu: Access regs in display engine units wo holding mutex
+    - drm/imx: dpu: crtc: Evade the first dumb frame for DPR/PRG errata
+    - drm/imx: dpu: kms: Add prefetch engine support
+    - drm/imx: dpu: kms: Return properly in case we fail to get plane state to
+      check
+    - drm/imx: dpu: kms: Ensure array idx k >= 0 before accessing sources[]
+    - drm/imx: dpu: crtc: Send vblank event after drm_crtc_vblank_off() in
+      ->atomic_disable()
+    - drm/imx: dpu: crtc: Do not send out bogus vblank event in ->atomic_disable()
+    - drm/imx: dpu: crtc: Remove WARN_ON(!crtc->state->event)
+    - drm/imx: dpu: crtc: Precisely send vbland event if CRTC is active
+    - gpu: imx: dpu: framegen: Add helpers to get/clear sec chan status
+    - drm/imx: dpu: crtc: Warn on FrameGen sec chan empty FIFO read request
+    - drm/imx: dpu: crtc: Wait for FrameGen secondary syncup in ->atomic_enable()
+    - drm/imx: dpu: kms: Support full screen CRTC background
+    - gpu: imx: dpu: Add helpers to peek at auxiliary display submodules
+    - gpu: imx: dpu: common: Add di_grp_id in display client pdev's data
+    - gpu: imx: dpu: common: Introduce master_stream_id in struct dpu_data
+    - gpu: imx: dpu: common: Add helper dpu_get_master_stream_id() support
+    - gpu: imx: dpu: framegen: Add framegen_is_master/slave() helper support
+    - gpu: imx: dpu: extdst: Add extdst_is_master() helper support
+    - gpu: imx: dpu: tcon: Add tcon_is_master/slave() helpers support
+    - gpu: imx: dpu: sc misc: Add helper dpu_pxlink_set_dc_sync_mode() support
+    - gpu: imx: dpu: framegen: Add side-by-side support
+    - gpu: imx: tcon: Add side-by-side support
+    - drm/imx: dpu: crtc: Set crtc group id
+    - drm/imx: dpu: crtc: Peek auxiliary CRTC resources
+    - gpu: imx: dpu: Add pixel combiner support
+    - gpu: imx: dpu: common: Set master stream id to be 1 for i.MX8QM DPU
+    - gpu: imx: dpu: common: Add store9 support for sync mode fixup
+    - gpu: imx: dpu: common: Provide store9 to client pdev via pdata
+    - gpu: imx: dpu: framegen: Add framegen_syncmode_fixup() helper
+    - gpu: imx: dpu: extdst: Add extdst_pixengcfg_syncmode_master() helper
+    - drm/imx: dpu: kms: Add pixel combiner support
+    - drm/imx: dpu: kms: Support proper default blend mode
+    - drm/imx: dpu: plane: Improve bailout path of dpu_plane_create()
+    - drm/imx: dpu: plane: Support full zpos range for planes
+    - drm/imx: dpu: plane: Support alpha in pixel for overlay planes
+    - drm/imx: dpu: plane: Support multiple pixel blend modes
+    - drm/imx: dpu: plane: Add color properties support
+    - gpu: imx: dpu: disengcfg: Do HW initialization in dpu_dec_init()
+    - gpu: imx: dpu: framegen: Cache encoder_type in struct dpu_framegen
+    - gpu: imx: dpu: common: Add flag has_dual_ldb in struct dpu_data
+    - gpu: imx: framegen: Don't enable/disable pixlnk when driving special encoder
+    - gpu: imx: dpu: sc misc: Rename dpu_sc_misc_init() to
+      dpu_sc_misc_get_handle()
+    - gpu: imx: dpu: sc misc: Rename dpu_pxlink_init() to dpu_sc_misc_init()
+    - LF-73 gpu: imx: dpu: sc misc: Initialze KACHUNK_CNT as needed by blit engine
+    - gpu: imx: dpu: common: Initialize SCU misc settings in dpu_resume()
+    - MLK-21378-1 gpu: imx: Add imx8_prg support
+    - MLK-21378-2 gpu: imx: Add imx8_dprc support
+    - gpu: imx: Add imx8 pixel combiner support
+    - drm/imx: ldb: Add i.MX8qm LDB support
+    - drm/imx: ldb: Add i.MX8qxp LDB support
+    - MLK-21876-23 drm/imx: ldb: fix incorrect color displayed for mx8qxp
+    - drm/imx: ldb: Add system power management support
+    - drm/imx: ldb: Add dual channel mode support for i.MX8QXP
+    - drm/imx: Extract IPUv3 specific KMS functions to ipuv3-kms.c (part 2)
+    - drm/imx: ipuv3-crtc: Rename some IPUv3 specific functions
+    - MLK-18535-3 gpu: imx: add LCDIF core driver
+    - MLK-18535-5 drm/imx: add LCDIF DRM/KMS driver
+    - gpu: imx: lcdif: break Kconfig recursive dependency
+    - MLK-18535-10 drm/imx: lcdif: limit the maximum resolution to '1920x1080'
+    - MLK-18560 drm/imx: lcdif: refine bus format sanity check for plane
+    - MLK-18605-14 drm/imx: lcdif: adjust 'max_height' for '1080x1920' mode
+    - MLK-19017-2 gpu: imx: add DISPMIX power domain support for LCDIF
+    - MLK-19017-3 gpu: imx: add system pm support for LCDIF
+    - MLK-19017-4 gpu: imx: lcdif: add rpm status check for suspend/resume
+    - MLK-19083 drm/imx: lcdif: remove untrue condition for pixel format set
+    - MLK-19112 gpu: imx: lcdif: change 'rpm_suspended' to be atomic counter
+    - MLK-19152-1 gpu: imx: lcdif: realize fb horizontal crop via Pigeon Mode
+    - MLK-19152-2 drm/imx: lcdif: force 'mode_changed' when fb width changed
+    - MLK-19152-3 drm/imx: lcdif: add horizontal crop support to plane update
+    - MLK-19199 drm/imx: lcdif: replace FB width usage for cropping
+    - MLK-19158-2 drm/imx: lcdif: improve output bus format config
+    - MLK-19158-3 gpu: imx: lcdif: fix output order for 16bpp BGR formats
+    - MLK-19158-4 drm/imx: lcdif: remove bus format check from PLANE's check
+    - MLK-19158-5 drm/imx: lcdif: add bus format check to CRTC's check
+    - MLK-19318 drm/imx: lcdif: avoid log print when no device attached
+    - MLK-19819-1 drm/imx: lcdif: bypass atomic check when CRTC will be disabled
+    - MLK-19819-2 Revert "MLK-19318 drm/imx: lcdif: avoid log print when no device
+      attached"
+    - MLK-20337 drm/imx: lcdif: block 'active CRTC with no plane' commit
+    - MLK-22158 drm/imx: lcdif: force 'mode_changed' for fb pix fmt change
+    - MLK-21876-10 gpu: drm: lcdif: fix headfile reference issue
+    - drm/imx: lcdif: change DISPMIX reset for IMX8MN
+    - gpu: imx: lcdif: fix build warnings if CONFIG_PM_SLEEP off
+    - drm/imx: Replace reset flow for LCDIF
+    - gpu: imx: lcdif: add imx8mn compatible support
+    - drm/bridge: Add ITE IT6263 LVDS to HDMI transmitter support
+    - MLK-18535-7 drm/bridge: sec-dsim: add bridge driver support
+    - MLK-19081 drm/bridge: sec-dsim: correct args of 'drm_bridge_attach' call
+    - MLK-18605-1 drm/bridge: sec-dsim: add cleanup when detach dsi client
+    - MLK-18605-2 drm/bridge: sec-dsim: allow same panel can be re-attached
+    - MLK-18605-3 drm/bridge: sec-dsim: refuse unknown dsi device attach
+    - MLK-18605-4 drm/bridge: sec-dsim: refine data lanes stop state check
+    - MLK-18605-5 drm/bridge: sec-dsim: correct 'DSIM_FIFOCTRL' offset
+    - MLK-18605-6 drm/bridge: sec-dsim: add fifo pointers initialization
+    - MLK-18605-7 drm/bridge: sec-dsim: correct a register macro misspelt
+    - MLK-18605-8 drm/bridge: sec-dsim: add non-continuous clock support
+    - MLK-18605-9 drm/bridge: sec-dsim: increase timeout values for BTA and LPRX
+    - MLK-18605-10 drm/bridge: sec-dsim: complete mipi panel support
+    - MLK-19017-5 drm/bridge: sec-dsim: add DISPMIX power domain support
+    - MLK-19082 drm/bridge: sec-dsim: wait 'ph_tx_done' for long packet send
+    - MLK-19252-1 drm/bridge: sec-dsim: move PLL check to DSIM Encoder
+    - MLK-19252-3 drm/bridge: sec-dsim: workaround 3 data lanes case
+    - MLK-19252-4 drm/bridge: sec-dsim: improve HT configs
+    - MLK-19252-5 drm/bridge: sec-dsim: improve PLL PMS configs
+    - MLK-19252-6 drm/bridge: sec-dsim: improve DPHY TIMING configs
+    - MLK-19252-7 drm/bridge: sec-dsim: workaround for 720p@60Hz on 4 lanes
+    - MLK-19317-2 drm/bridge: sec-dsim: fine tune for '720p@60Hz' mode on 2 lanes
+    - MLK-19400-1 drm/bridge: sec-dsim: correct one fail branching
+    - MLK-21150-1 drm/bridge: sec-dsim: change uint64_t clk fields to uint32_t
+    - MLK-21150-2 drm/bridge: sec-dsim: refine hblank word count compute
+    - MLK-18535-13 dt-bindings: display: bridge: add sec-dsim bindings
+    - MLK-21150-3 drm/bridge: sec-dsim: add a new property 'pref-rate'
+    - MLK-21150-4 drm/bridge: sec-dsim: a general way to compute PLL PMS
+    - MLK-21252 drm/bridge: sec-dsim: resolve OVERFLOW_BEFORE_WIDEN warns
+    - MLK-21383 drm/bridge: sec-dsim: fix maybe-uninitialized build warnings
+    - MLK-21880-1 drm/bridge: sec-dsim: correct DSIM version register access
+    - MLK-21911 drm/bridge: sec-dsim: free 'pll_pms' to avoid memory leak
+    - MLK-21274-3 drm/bridge: sec-dsim: add defer probe support
+    - MLK-21274-2 drm/bridge: sec-dsim: remove bridge assign for encoder
+    - MLK-20687 drm/bridge: sec-dsim: correct LPM config for Long Packet
+    - MLK-20438 drm/bridge: sec-dsim: remove 'FORCEBTA' for packet send
+    - MLK-17275-2: drm/bridge: it6263: Add support for OF_DYNAMIC
+    - MLK-18535-8 drm/imx: sec_mipi_dsim-imx: add DSIM host driver
+    - drm/imx: add DISPMIX power domain support for SEC DSIM
+    - MLK-19017-6 drm/imx: add system pm support for SEC DSIM
+    - MLK-19017-7 drm/imx: sec-dsim_imx: add rpm status check for suspend/resume
+    - MLK-19158-1 drm/imx: sec-dsim_imx: add bus format check for ENCODER
+    - MLK-19537-3 drm/imx: sec-dsim_imx: remove dphy slave reset
+    - drm/imx: sec-dsim_imx: move PLL check to DSIM Encoder
+    - drm/imx: sec-dsim_imx: improve DPHY TIMING configs
+    - MLK-19400-2 drm/imx: sec-dsim_imx: alter 'rpm_suspended' to a counter
+    - drm/imx: sec-dsim_imx: a general way to compute PLL PMS
+    - drm/imx: sec-dsim_imx: correct DSIM version register access
+    - drm/imx: dsim: change DISPMIX reset for IMX8MN
+    - MLK-22304-1 drm/imx: dsim: fix build warnings if CONFIG_PM_SLEEP off
+    - drm/imx: Replace reset flow for DSIM
+    - drm/imx: sec-dsim_imx: add resets put for probe failure
+    - drm/imx: sec_dsim-imx: add imx8mn compatible support
+    - drm/bridge: Add NWL MIPI DSI host controller support
+    - drm/bridge: nwl-dsi: Add support for video_pll
+    - drm/bridge: nwl-dsi: Add support for clock-drop-level
+    - drm/bridge: nwl-dsi: fix nwl-dsi when used as module
+    - drm/bridge/nwl-dsi: add support for DCSS
+    - drm: bridge: add Cadence MHDP HDMI/DP API
+    - drm: bridge: Add Cadence DP/HDMI core driver
+    - gpu: drm: Add imx8qm/mq DP/HDMI driver
+    - drm: bridge: cadence: Add new api functions
+    - drm: bridge: cadence: Add mhdp audio driver
+    - drm: bridge: cadence: Add CEC driver for cdns mhdp hdmi
+    - drm: bridge: cadence: move struct imx_mhdp_device to drm/imx
+    - drm: imx: add imx8mq hdmi support
+    - drm: bridge: cadence: Add power_on to __cdns_dp_probe
+    - drm: ls1028a: Add DP driver support for LS1028A
+    - drm: bridge: cadence: Add support for periodically poll the connector
+    - drm: imx: hdmi: support arc function
+    - drm: bridge: cadence: Fix return value for set log addr
+    - drm: bridge: cdns dp: Remove link rate/lanes set by device tree
+    - drm: imx: mhdp: add dual mode support for imx8qm
+    - drm: bridge: cdns cec: fix LA failed set issue
+    - DRM: mhdp: HDMI: skip scdc write return check
+    - drm: mhdp: add mutex lock to mhdp register access function
+    - drm: mhdp: reset video mode after hdmi/dp cable plugin
+    - drm: bridge: cadence: hdmi: remove video mode limition
+    - drm/imx/hdp: add hdr10 metadata property
+    - drm/imx/hdp: add colorspace property
+    - drm/imx/hdp: force a mode set when colorspace is changed
+    - drm/imx/hdp: handle the various deep-color settings
+    - MLK-15321-2 gpu: imx: dpu: Add dpu blit engine driver
+    - MLK-15321-3 drm/imx: dpu: Add render feature support
+    - MLK-15321-4 drm/imx: core: Add bliteng as component of imx-drm
+    - MLK-17311 gpu: imx: dpu-blit: enable prefetch feature
+    - MGS-4061 gpu: imx: dpu-blit: fix kernel panic in pm test
+    - MGS-3940 gpu: imx: dpu-blit: fix first frame handler
+    - MGS-4051 gpu: imx: dpu-blit: fix suspend resume issue
+    - MGS-3940 gpu: imx: dpu-blit: fix dpr hang for smaller size
+    - MGS-4265 gpu: imx: dpu-blit: fix video hang with g2d compositor
+    - gpu: imx: dpu-blit: Do not initialize STORE9_STATIC register
+    - drm/imx: Add initial support for DCSS on iMX8MQ
+    - drm/imx/dcss: add busfreq support
+    - drm: imx: dcss: Fix for renaming reservation.h to dma-resv.h
+    - Revert "drm: imx: dcss: Fix for renaming reservation.h to dma-resv.h"
+    - Revert "drm/imx/dcss: add busfreq support"
+    - Revert "drm/imx: Add initial support for DCSS on iMX8MQ"
+    - drm/imx: Add initial support for DCSS on iMX8MQ
+    - drm/imx/dcss: use the external 27MHz phy clock
+    - drm/imx/dcss: add busfreq support
+    - drm/imx/dcss: add support for DEC400D
+    - drm/imx/dcss: add support vor video overlays
+    - drm/imx/dcss: remove reference to P010
+    - drm/imx/dcss: add WRSCL/RDSRC support
+    - drm/imx/dcss: add support for NV12_10LE40 format
+    - drm/imx/dcss: eliminate unnecessary formats from planes
+    - drm/imx/dcss: add color management properties to video planes
+    - drm/imx/dcss: change HDR10 pipes config handling
+    - drm/imx/dcss: add support for tiled formats on overlay planes
+    - drm/imx/dcss: fix crash in DTRC exit routine
+    - drm/imx/dcss: Release DTRC IRQs in case of failure
+    - drm/bridge/nwl-dsi: fix attach flow of downstream bridge
+    - drm: imx: mhdp: Adjustment core rate of DP TX CTRL for LS1028A
+    - LF-46 drm/imx: sec-dsim: use late suspend
+    - drm/imx/hdp: fix issue with non-SCDC HDMI sinks
+    - drm/bridge: nwl-dsi: Add support for component framework
+    - drm/bridge: nwl-dsi: Add support for 8QM and 8QXP
+    - drm/bridge: nwl-dsi: Fix find_panel_or_bridge
+    - gpu: imx: framegen: Use crtc_clock instead of mode clock
+    - drm/bridge: nwl-dsi Correct the DSI init sequence
+    - Revert "drm/imx/hdp: fix issue with non-SCDC HDMI sinks"
+    - drm: hdmi: imx8: fix wrong hdmi type with non-SCDC HDMI sinks
+    - LF-94: drm: hdmi: imx: Add hdmi phy video mode valid function
+    - LF-283 gpu: imx: dpu: common: Get irq count properly
+    - LF-296: drm: mhdp: build mhdp sub-modules into one driver module
+    - LF-282 drm/imx: dpu: Kconfig: Add prompt string for DRM_IMX_DPU
+    - LF-335 drm/bridge: sec-dsim: solve fallthrough build warnings
+    - LF-95-4 drm/bridge: nwl-dsi: Correct register offsets for tx_ulps and
+      pxl2dpi
+    - LF-95-5 drm/imx: imx-ldb: Correct control register offset for i.MX8QM/QXP
+      LDB
+    - drm/bridge: nwl-dsi: Fix phy_ref clock ordering
+    - MLK-21231 gpu: imx: dpu: framegen: Wait for 100ms at most for secondary
+      syncup
+    - LF-323-1: drm/bridge/cdns: move link training to bridge enable function
+    - LF-323-2: drm/bridge/cdns: enhance link training stability
+    - LF-407-1: drm/imx/dcss: fix compilation issues after rebase
+    - LF-407-2: drm/imx/dcss: fix module insertion hang
+    - LF-407-3: drm/imx/dcss: remove unnecessary sleep
+    - LF-424 gpu/imx: lcdif: fix typo for imx_lcdif_dt_ids
+    - LF-425-2 drm/bridge: sec-dsim: use 'attach-bridge' for bridge attach
+    - LF-568-1: drm: bridge: cdns: dp: change bridge_enable/disable name
+    - LF-568-2: drm: gpu: bridge: cdns: Add force mode set flag
+    - MLK-23234-4 gpu: imx: add LCDIFv3 core driver
+    - MLK-23234-6 drm/imx: add LCDIFv3 DRM/KMS driver
+    - MLK-23234-7 drm/imx: core: add LCDIFv3 support
+    - MLK-23234-8 drm/imx: sec-dsim: add imx8mp compatible
+    - MLK-23234-9 drm/imx: sec-dsim: bypass mediamix resets on imx8mp
+    - MLK-23245 gpu: imx: lcdifv3: correct panic thresholds calculation
+    - MLK-23248 gpu: imx: lcdifv3: correct panic enable register typo
+    - MLK-23250-02: drm: lcdifv3: Change frame size limit to 4096
+    - MLK-23250-04: lcdifv3: Add hdmimix lcdifv3 support
+    - MLK-23250-09: drm: imx: pavi: Add PAVI driver for iMX8MP HDMI
+    - MLK-23250-10: drm: imx: hdmi: Add iMX8MP hdmi driver
+    - MLK-23287-3: drm: imx: hdmi: Add iMX8MP hdmi gp audio driver
+    - MLK-23218 gpu: imx: lcdifv3: Change burst size to 256B
+    - LF-900: drm/imx/dcss: Fix kernel panic during suspend
+    - MLK-23252-3 gpu: imx: lcdifv3: Support client specific pdev id
+    - MLK-23252-4 gpu: imx: lcdifv3: Add compatible string for LDB's LCDIFv3
+    - MLK-23252-8 drm/imx: imx-ldb: Rename flag is_imx8 to is_imx8q
+    - MLK-23252-9 drm/imx: imx-ldb: Add i.MX8mp LDB support
+    - LF-794 gpu: cdn: imx8qm: Add firmware loading support
+    - LF-794 gpu: cdn: mhdp-common: Increase the check alive timeout
+    - MLK-23328: drm: bridge: hdmi: Fix no vendor infoframe after resume
+    - MLK-23102-1 drm/imx: dpu: kms: Remove fetchunit pin-off mechanism
+    - MLK-23102-2 gpu: imx: dpu: fetchunit: Remove pin-off operations
+    - MLK-23109 drm/imx: dpu: plane: Always enable DPRC when prefetch is needed
+    - MLK-23107-1 gpu: imx: imx8_dprc: Add helper dprc_disable_repeat_en()
+    - MLK-23107-2 drm/imx: dpu: kms: Disable DPRC repeat_en in ->atomic_flush()
+      where necessary
+    - MLK-23187-1 gpu: imx: dpu: framegen: Increase timeout again when waiting for
+      moving
+    - MLK-23187-2 drm/imx: dpu: crtc: Disable DPRC repeat_en in ->atomic_disable()
+    - MLK-23221: drm/bridge: nwl-dsi: Call panel enable early
+    - LF-841: drm/bridge: nwl-dsi: Fix mode_set
+    - LF-842-1: drm/bridge: nwl-dsi: Change mipi clocks re-parenting
+    - LF-555: drm: mhdp: Improve the AUX channel signal for DP port
+    - MLK-23425-1 gpu/imx: lcdifv3: enable frame clear
+    - MLK-23425-2 gpu/imx: lcdifv3: add dma disable
+    - MLK-23428 drm/imx: sec-dsim: add bound check in runtime suspend/resume
+    - MLK-23522: drm/imx: lcdifv3: remove unsupported formats
+    - MLK-23544: drm: gpu: dw_hdmi: check imx8mp hdmi phy support clk rate
+    - MLK-23538-1: drm: gpu: dw_imx: add CEC enable bit set
+    - LF-452: gpu: drm: bridge: hdmi: Add CEA mode check
+    - MLK-23576 gpu/imx: lcdifv3: add system sleep PM ops
+    - MLK-23545-1: drm: bridge: hdp: Remove force_mode_set flag when cable plugin
+    - MLK-23545-2: drm: imx: mhdp: weston8 UI recovery after cable plugout/in
+    - LF-1189-2 gpu: imx: dpu: tcon: Add MEDIA_BUS_FMT_RGB565_1X30_PADLO support
+    - LF-1189-3 gpu: imx: dpu: framegen: Add DPI encoder support
+    - LF-1189-5 drm/imx: Add LCDIF mux display support
+    - MLK-23767 gpu: imx: dpu: common: avoid deattach multiple power domain
+    - MLK-20486 drm/imx: ldb: Cleanup enc&conn in ->unbind() if necessary
+    - LF-1256-1 drm/imx: imx-ldb: Allocate imx_ldb in ->probe() instead of
+      ->bind()
+    - LF-1256-2 drm/imx: lcdif-mux-display: Allocate lmuxd in ->probe() instead of
+      ->bind()
+    - LF-1256-3 drm/imx: dpu: crtc: Allocate dpu_crtc in ->probe() instead of
+      ->bind()
+    - MLK-23781-1 drm/imx: lcdifv3: move 'lcdifv3_crtc' alloc to probe
+    - MLK-23781-2 drm/imx: lcdifv3: remove 'lcdifv3_plane_deinit()'
+    - MLK-23781-3 drm/imx: sec-dsim: move 'dsim_dev' alloc to probe
+    - MLK-23781-4 drm/imx: sec-dsim: initialize 'rpm_suspended' in probe
+    - MLK-23694-6 drm/imx: ldb: remove PLL clock rate set for i.MX8M
+    - MLK-23694-9 drm/imx: sec-dsim: put resets in unbind() to fix memory leak
+    - MLK-23694-10 drm/imx: sec-dsim: NULL panel ptr when host detached
+    - MLK-23694-11 drm/imx: sec-dsim: allow bind for no display attached
+    - MLK-23817 gpu: imx: dpu: common: Enable power for dpu irq chip at probe
+      stage
+    - MLK-23642-1: drm: bridge: cadence: support HBR and 6 channel
+    - MLK-23885 drm/imx: ldb: Add mode fixup for i.MX8mp LDB in ->atomic_check()
+    - MLK-23903 drm/imx: imx-ldb: Disable both two channels for split mode in
+      enc->disable()
+    - MLK-23904 drm/imx: imx-ldb: Cache split mode status in struct imx_ldb
+    - MLK-23905-1 drm/bridge: Add fsl imx ldb support
+    - MLK-23905-2 drm/imx: imx-ldb: Use platform specific encoder drivers
+    - MLK-23942-6 drm/bridge: fsl-imx-ldb: Add runtime PM support
+    - MLK-23942-7 drm/imx: imx8mp-ldb: Add runtime PM support
+    - MLK-23942-8 drm/imx: imx8qm-ldb: Add runtime PM support
+    - MLK-23942-9 drm/imx: imx8qxp-ldb: Add runtime PM support
+    - LF-621: drm/imx/dcss: add back disabled formats
+    - MLK-24002-1 drm/imx: lcdifv3: enable shadow load for plane update
+    - MLK-24002-2 drm/imx: lcdifv3: put controller enable to CRTC
+    - MLK-24040: drm: imx: pavi: Combine pai and pvi powerup/down function
+    - MLK-24045 drm/imx: sec-dsim: let host unregister later than device
+    - MLK-24065-1: drm: bridge: cadence: fix dp_aux_transfer write return value
+    - MLK-24065-2: drm: bridge: cadence: print error when clock recovery fails
+    - MLK-24065-3: drm: bridge: cadence: use the lane mapping from dt when setting
+      host capabilities
+    - MLK-24072: drm: imx8: correct mhdp files copyright
+    - MLK-24076-2: drm: imx: hdmi: Add copyright
+    - LF-1043: drm/bridge: nwl-dsi: Assert mipi resets before enable
+    - LF-811-1: drm/bridge: Add driver for legacy Freescale Seiko 43WVFIG adapter
+    - MLK-24168 drm/imx: dpu: kms: Avoid -EDEADLK warning when getting crtc_state
+      in ->atomic_check
+    - MLK-24190: drm: imx: dw_hdmi: Add resume function
+    - MLK-24146 drm: dw_hdmi: cec: Add cec suspend/resume function
+    - LF-1444 gpu: imx: dpu: common: Check of_match_device() return value in
+      dpu_probe()
+    - LF-1442-1 drm/imx: sec-dsim: avoid dereference NULL ptr of of_id
+    - LF-1442-2 drm/imx: lcdif: avoid dereference NULL ptr of of_id
+    - LF-1442-3 drm/imx: lcdifv3: avoid dereference NULL ptr of of_id
+    - MLK-24293 gpu/imx: lcdifv3: use late system sleep pm ops
+    - LF-1510: gpu: drm: lcdifv3: null return value check for of_id
+    - LF-1510-2: gpu: drm: dw_hdmi: null return value check
+    - LF-1511: drm: cdn-cec: replace ++i with i++ in loop
+    - LF-1512: drm: cdns mhdp: avoid potentially overflowing
+    - LF-1514: drm: cdns-mhdp: check link rate index
+    - LF-1516: drm: cdns-mhdp: fix error check variable name for clk_pxl_link
+    - MLK-24335: drm: bridge: cdns: hdmi support work in DVI mode
+    - LF-1555: drm: bridge: nwl-dsi: Fix null-pointer dereference
+    - LF-1556: drm/bridge: nwl-dsi: Fix potential null-pointer dereference
+    - MLK-21509-1 gpu: imx: dpu: common: Add signature unit support
+    - MLK-21509-2 gpu: imx: dpu: disengcfg: Add signature select support
+    - MLK-21509-3 drm/imx: dpu: kms: Add auto control mode debugfs CRC support
+    - MLK-21509-4 drm/imx: dpu: crc: Add user-configurable CRC region(ROI) support
+    - LF-1750 gpu: imx: imx8_dprc: Get scu ipc handle in ->probe()
+    - LF-1485: drm: bridge: dw_hdmi: null pointer check
+    - LF-1526: drm/imx/dcss: Fix Coverity issue
+    - MLK-24427-1: drm: gpu: imx: Move cdns driver files to mhdp folder
+    - MLK-24427-2: drm: bridge: cdns: Move DP API functions to separate file
+    - MLK-24427-3: drm: mhdp: Backporting code change from linux-nxp
+    - LF-2011 gpu: imx: imx8_dprc: Check return value of SCU func call in
+      dprc_dpu_gpr_configure()
+    - LF-2010 gpu: imx: imx8_dprc: Check return value of SCU func call in
+      dprc_prg_sel_configure()
+    - MLK-24519 gpu: imx: Increase maximum single pipe width to 2560
+    - MLK-24520: drm: bridge: cdns: increase maximum width from 4096 to 5120.
+    - MLK-24521: drm: bridge: hdmi: Prevent the driver from rejecting VIC 0 modes
+    - MLK-24522: drm/imx: dpu: Increase iMX DRM CTRC size to 5120 x 4096
+    - drm: bridge: dw-hdmi: Report connector status using callback
+    - MLK-24611-1: drm: bridge: synopsys: Add callback function for plug/unplug
+      event
+    - MLK-24611-2: drm: bridge: cdns: Add callback function for plug/unplug event
+    - MLK-24601: drm: imx: mhdp: DP PHY support 1/2 lanes mode
+    - MLK-24608: drm/imx/dcss: disallow certain modes
+    - MLK-24770: drm: mhdp: Sync DPTX capability with Cadence sample code
+    - MLK-24900-1 drm/imx: lcdifv3: Use dts to config LCDIF panic threshold
+    - MLK-24916-1: drm: bridge: synopsys: fix eld length issue
+    - MLK-24916-3: drm: bridge: synopsys: Add HBR support for gp audio
+    - MLK-24998-4 drm/bridge: sec-dsim: use 12MHz for default PHY REF clock
+    - MLK-24998-7 drm/imx: lcdifv3: implement mode_valid() for CRTC
+    - MLK-25012 drm/imx: lcdif: move 'lcdif_crtc' alloc to probe()
+    - MLK-24911-3: drm: imx: sec-dsim: Adjust the LDO trim value
+    - MLK-25101: drm: imx: dw_hdmi: Keep hdmi phy in poweron status
+    - MLK-25228: drm: dw-hdmi: Pass CTS 7-30 Audio InfoFrame
+    - MLK-25156: drm: dw_hdmi: reset hdmi phy power
+    - MLK-24491: drm: bridge: cdns: Add support of i2c-over-aux
+    - MLK-25340-1: drm: imx: hdp: Added power off function
+    - MLK-25340-2: drm: imx: mhdp: Adding power off to driver remove
+    - drm/imx: ipuv3-kms: Move to a new ipuv3 folder
+    - MLK-21876-10 gpu: drm: ipu: fix headfile reference issue (part2)
+    - Revert "drm/imx: Use simple encoder"
+    - Revert "drm/imx: pd: Use bus format/flags provided by the bridge when
+      available"
+    - drm/fourcc: add modifier for vivante compressed tiled layout
+    - MLK-15110-1 drm/fourcc: Add Amphion tiled layout format modifier
+    - MLK-17368-1 drm: add fourcc codes for Verisilicon tiled formats
+    - dt-bindings: firmware: imx: add scu clock type IDs
+    - MLK-23329-01 dt-bindings: imx: update sc ctrl interfaces
+    - media: bus format: Add RGB888_1X30_PADLO support
+    - media: bus format: Add RGB666_1X30_PADLO support
+    - media: bus format: Add RGB101010_1X7X5_SPWG/JEIDA support
+    - LF-1189-1 media: bus format: Add RGB565_1X30_PADLO support
+    - reset: Add driver for dispmix reset
+    - reset: imx8m: Correct clock name for dispmix driver
+    - LF-218 reset: dispmix: remove dev when init mmio regmap
+    - MLK-23250-07: clk: imx: add imx8mp hdmimix clk driver
+    - MLK-23538-2: clk: hdmimix: set cec clock parent to 32k_clk
+    - MLK-23356: reset: Remove noc reset bit from hdmimix reset
+    - MLK-23250-08: phy: Add samsung hdmi phy driver
+    - MLK-23542: phy: support more pixel rates
+    - MLK-24041: phy: fsl: sync code change with LF branch
+    - MLK-24397 phy: samsung hdmi: support more clock rate
+    - MLK-23252-6 phy: freescale: Add i.MX8mp LVDS PHY support
+    - MLK-23616-3 phy: fsl-imx8mp-lvds: Enable/disable APB clock when necessary
+    - MLK-23942-3 phy: freescale: phy-fsl-imx8mp-lvds: Add runtime PM support
+    - irq: imx: irqsteer: add multi-pd support for irqsteer
+    - MLK-23250-05: irqchip: imx-irqsteer: Add reset function
+    - MLK-17290-01 irqchip: imx-irqsteer: add runtime pm support
+    - MLK-23750-1: irqchip: imx: fix ISI_0, CSI_0 can't enter lp when suspend
+    - MA-17912 irqchip: irqsteer: Allow IMX_IRQSTEER to be loadable as module
+    - MLK-23252-1 clk: imx8mp: Add DISP2 pixel clock
+    - MLK-23252-2 clk: imx8mp: Add LDB root clock
+    - MGS-4530-1 add 6.2.4.p4 gpu driver for L4.19
+    - MGS-4530-2 disable busfreq-imx to fix L4.19 dash build
+    - MGS-4530-3 [#imx-1314] include dma-direct.h to fix gpu build for L4.19
+    - gpu: fix access_ok build error
+    - gpu: fix do_gettimeofday build error
+    - gpu: fix totalram_pages build error
+    - gpu: more build fix
+    - gpu: imx: fix gpu boot hang by defer driver register time
+    - MLK-21876-11 gpu: fix build for next-20190524 upgrade
+    - gpu: Update SCU API and change the method to distinguish 8QM/8QXP from other
+      boards
+    - gpu:Integrate 6.4.0 kernel driver for Linux L5.x
+    - gpu: fix build break due to dma headfile include
+    - gpu:Remove dma.h to avoid Linux 5.x build problem
+    - gpu-viv: Fix writecombine/wc build error
+    - MGS-5252 Integrate Vivante 6.4.0.p1 GPU driver
+    - MGS-5176 [#imx-1744] Coverity issue of 6.4.0.p1.
+    - MGS-5176-2 [#imx-1744] Need free the pages if malloc memory failed
+    - MGS-4376 [#imx-1238] fix low performance with CMA allocator
+    - MGS-5283 [#imx-1238] fix GPU memory without CMA
+    - MGS-5283 [#imx-1784] fix GPU AXI bus error
+    - MGS-5284 [#imx-1786] fix GPU panic with vm_mmap failure
+    - MGS-5261 [#imx-1771] fix dummy draw hang for 8MM GPU
+    - QSDK-5959 [#ccc] update the platform driver to support layerscape soc
+    - MGS-5307 gpu: integrate 6.4.0.p2 driver
+    - MGS-5245 [#imx-1755] [8MN_EVK] VTK: fix the gpu dump when enable vProfile
+    - LF-84 [#imx-1834] remove gpu coherent_dma_mask setting
+    - Add Malone decoder and windsor encoder for QXP/QM
+    - Add directory driver/mxc and related scripts
+    - arm64: vpu: m850d: hantro
+    - arm64: vpu: m850d: hantro: mxc config
+    - vpu: hantro: fix build failure
+    - vpu: malone: fix build failure
+    - vpu: windsor: fix build failure
+    - vpu: windsor: remove deprecated using of s_crop/g_crop
+    - vpu: windsor: remove deprecated using of VB2_BUF_STATE_PREPARED
+    - vpu: windsor: fix build error
+    - vpu: malone decoder: porting from 4.19 rc3 release
+    - vpu: malone decoder: porting from 4.19 rc3 release
+    - vpu: windsor encoder: porting from 4.19 rc3 release
+    - vpu: windsor encoder: porting from 4.19 rc3 release
+    - MLK-21876-22 vpu: build for ARM64 only
+    - MLK-21985-2 vpu: malone: b0: fix build for next 20190607 upgrade
+    - MLK-21985-3 vpu: windsor: b0: fix build for next 20190607 upgrade
+    - media: vpu_malone: fix boot warning by intialize device_caps
+    - media: vpu_windsor: fix boot warning by intialize device_caps
+    - vpu: hantro: fix build error when enabling 'CONFIG_DEVICE_THERMAL'
+    - vpu: malone: encoder: add mu2 power domain for imx8qm
+    - vpu: hantro: add decoder for imx845
+    - vpu: hantro: add encoder for imx845 h1
+    - vpu: imx6: add decoder/encoder
+    - vpu: imx6: add decoder/encoder
+    - vpu: hantro_845_h1: fix compat_ptr building issue
+    - vpu: windsor encoder: add vpuenc2 power domain for imx8qm
+    - vpu: windsor encoder: enable mailbox and unify code
+    - vpu: malone decoder: enable mailbox and unify code
+    - vpu: windor encoder: malone decoder: fix kernel panic caused by MU_Init
+    - MLK-22913 vpu: windsor malone: fix kernel panic caused by directly read MU
+    - MLK-22920 vpu: windsor encoder: change the writeable flag synchronously
+    - vpu: hantro: Fix kconfig to depend on ARCH_MXC instead
+    - MLK-22951 mxc: vpu_malone: add missing semicolon
+    - MLK-22952 mxc: vpu_windsor: add missing semicolon
+    - vpu: hantro: Fix kconfig to depend on ARCH_MXC instead
+    - MLK-22945 mxc vpu_malone: disable decode ctx before release it.
+    - MLK-22963 mxc vpu_windsor: fix call vzalloc during spinlock
+    - MLK-22991 mxc: vpu_malone vpu_windsor: check is vpu poweroff when suspend
+    - MLK-22999 mxc: vpu_malone: release debugfs after open to avoid memory leak
+    - LF-80:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:clear eos flag when output streamoff
+    - MLK-10600-1: mxc: sim: Add SIM IP driver support on the i.MX7d-12x12-arm2
+      platform.
+    - MLK-10600-2: mxc: sim: add an option to enable SIM driver build
+    - MLK-10913-1: mxc: sim: Add the SIM driver support for i.MX6UL-EVK platform.
+    - MLK-10959: mxc: sim: Disable cwt timer when tx and enable in rx.
+    - MLK-10968: mxc: sim: Add the init delay detection function in the driver.
+    - MLK-10976: mxc: sim: Using timer interrupt to implement precise timing.
+    - MLK-11354 sim: imx: relapce devm_request_and_ioremap with
+      devm_ioremap_resource
+    - MLK-11777 sim: imx: remove useless code
+    - MLK-11472 sim: imx: set sim1 IOMUX to default state
+    - MLK-14642 imx: sim: fix segment fault caused by user address access
+    - MLK-13473: imx_sim: fix module device table name
+    - MLK-17319-1 imx8: sim: add driver to support EMVSIM module
+    - MLK-17416 imx8: sim: add usleep_range() before reading SPDP Bit
+    - MLK-18485 emvsim: enable CWT for ATR
+    - MLK-22210 mxc: emvsim: enable ICM mode
+    - MLK-22211 mxc: emvsim: should not clear PEF/FEF flag in irq handler
+    - MLK-22213 mxc: emvsim: read TS character before updating value of GPCNT1
+    - MLK-22214 mxc: emvsim: clean up the code in ATR stage
+    - MLK-22215 mxc: emvsim: correct irq mask and clear irq status before
+      receiving
+    - MLK-22216 mxc: emvsim: last character need be transmitted separately with no
+      guard time
+    - MLK-22217 mxc: emvsim: add value adjustment for cwt/bwt timer
+    - sim: emvsim: add multi power domain support
+    - MLK-11442 mlb: imx: add mlb support on imx_4.1.y
+    - imx: mlb: Replace ACCESS_ONCE with READ_ONCE
+    - MLK-11910 mxc: mlb: fix irq unsigned_compare issue
+    - MLK-12185 mlb: imx: fix the operation for mlb status in mlb_isr
+    - MLK-15987 imx: mlb: use dma pool when iram doesn't exist
+    - MLK-15988 imx: mlb: remove clk for mlb 6 pin mode
+    - MLK-15990 imx: mlb: change mlb clock name
+    - MLK-15995 imx: mlb: only use irq_ahb1 for imx6
+    - MLK-15999 imx: mlb: fix build warnings
+    - MLK-15992 imx: mlb: add ipg & hclk clocks for imx8 mlb
+    - MLK-22071-1 mxc: mlb: Fix clock config for imx8qxp platform
+    - mxc: mlb: fix interrupt rw lock dead lock
+    - mxc mlb: Allow compilation on imx8
+    - MLK-23000-1 mxc: mlb: fix kernel dump when use gen_pool_dma_alloc
+    - mxc: IPU3: Forward IPUv3 common driver from imx_4.19.y kernel
+    - mxc: IPU3: Fix not including uapi/linux/sched/types.h
+    - MLK-22399 mxc IPUv3: cpmem: Get 0 u/v_offset in __ipu_ch_offset_calc() for
+      some pfmts
+    - mxc: hdmi-cec: Add imx6 hdmi cec driver
+    - media: mipi csi: add IPU CSI driver
+    - MGS-5372 [#imx-1708] Fix the VX/CL apps hang for 865 GPU/VIP
+    - LF-365 [8QM_MEK/8QXP_MEK]mxc:vpu_malone: need skip tsm when skip not decoded
+      frame
+    - MGS-5326 [#imx-1803] 0058-align-gc_feature_database
+    - LF-503:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:check space of cmd buffer
+    - LF-521: mxc: hantro: [All]arch64 kernel default build using imx_v8_defconfig
+      has many Warnings.100%
+    - LF-561: [8QM_MEK/8QXP_MEK]mxc:vpu_malone:reinit completion before send
+      command
+    - MGS-5226 [#imx-1746] add REG_DisableVIP bit 1
+    - LF-628:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:export frame threshold of frame mode
+    - LF-629: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: donot set end_flag if scode type
+      is BUFFFLUSH in low-latency mode
+    - MGS-5064 [#imx-1868] 0003-CL244120-Prepare-for-NXP-backwards-compatible-
+      requir
+    - MGS-5064 [#imx-1868] 0006-CL244297-align-gc_feature_database
+    - MGS-5064 [#imx-1868] 0010-BUG25711-CL244484-Android-CTS-some-cases-fail-in-
+      gle
+    - MA-16168 [#imx-1903] Fix GPU driver build error and not work issue on 5.4
+      kernel
+    - LF-408-2 [#imx-1873] disable 1M page for dynamic mapping
+    - MGS-5458 [#imx-1708] fix GPU/VIP coreIndex issue
+    - LF-688:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:export fw log via debugfs
+    - LF-690:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:extends the range of frame rate
+      from integers to real numbers
+    - LF-711:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:stream may hang due to the event msg
+      hasn't process in time
+    - MLK-23211-1: arm64: imx8mp: vpu: add vc8000e driver
+    - MA-16211: imx8mp: vpu: Implement hantro vc8000e ioctl32
+    - LF-765 [8QM_MEK/8QXP_MEK]mxc:vpu_malone: add FRAME_SKIP status to record
+      skip-frame
+    - LF-765-2 [8QM_MEK/8QXP_MEK]mxc: vpu_malone: check buffer status before add
+      buffer to queue
+    - MGS-5472 [#ccc] fix gpu resolve alignment issue
+    - LF-165 [#imx-1870] gputop counter test failed
+    - LF-165 [#imx-1870] Fix the error when converting pointer to int for 32 bit
+      system
+    - MGS-5341 [#imx-1870] Fix the uninitialized variable in GPU driver.
+    - MGS-5485 [#imx-1870] fix memory database error
+    - MGS-5485-2 [#imx-1870] fix system out of memory in gpu database
+    - MLK-23263 mxc: vpu_malone: correct vpu decoder used bits of fuse
+    - LF-840-1:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-2:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-3:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-4:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-5:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-6:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-840-7:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:abort or stop cmd may timeout
+      after resume from suspend when run multi h264 instance
+    - LF-984:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:report error event when the
+      resolution beyond limit
+    - LF-994 mxc: vpu_malone vpu_windsor: cope with upstream y2038 changes
+    - MLK-23375: arm64: imx8mp: vc8000e: remove legacy ioremap_nocache interface
+    - MGS-5464 [#imx-1915] 0014-CL249917-DEC400-P010_LSB-I010-format
+    - MLK-23377: arm64: imx8mp: vc8000e: fix system hang in suspend/resume
+      operation
+    - MGS-5497-2 [#ccc] fix 6QP 2D MMU exception issue
+    - MA-16364 [#imx-1927] Set 4GB address limit flag on 8mm/8mn as 8mq
+    - MGS-5490 [#imx-1868] 0009-CL247796-Add-cores-in-order-3D-VIP-cores-2D-core-
+      VG-
+    - MGS-5534 [#imx-1960] Add copyright in gc_feature_database.h
+    - MGS-5536-1 [#imx-1962] add memory-region property support
+    - MGS-5536-2 [#imx-1962] fix MMU shift mapping for 4GB truncated mtlb
+    - MLK-23394-2: XUVI/PPM: driver initial version.
+    - MLK-23394-5: XUVI/PPM: add build for XUVI/PPM.
+    - LF-1090:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:synchronize the allocate and free
+      mbi buffer
+    - MGS-5453 [#imx-1895] update gc_feature_database.h file
+    - MLK-23394 XUVI/PPM: decrease the usage count when it isn't in using.
+    - MLK-23377-2: arm64: imx8mp: vc8000e: fix system hang in suspend/resume
+      operation
+    - MGS-5554 [#imx-1868] update gc_feature_database.h and gc_hal_enum.h file
+    - MLK-23394 XUVI/PPM: fix coverity issues
+    - MLK-23220:mxc:vpu_malone:kfifo_alloc failure in VPU driver when memory
+      fragment
+    - LF-1077:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:compatible with ffmpeg h264_v4l2m2m
+      decoder
+    - LF-1078:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:compatible with ffmpeg
+      h264_v4l2m2m encoder
+    - LF-1078-2:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:compatible with ffmpeg
+      h264_v4l2m2m encoder
+    - LF-1180:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:v4l2 buffer of output stream use
+      virtual memory instead of dma
+    - LF-1181 mxc: vpu_malone: Not send res_change event until dst done_list is
+      empty
+    - MGS-5581 [#imx-1868] integrate vsi patch base on 6.4.0.p2 from 20200306 to
+      20200320
+    - LF-1208:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor:instance may hang caused by stop
+      cmd is not sent in some case
+    - LF-1210:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: add LVL_FLOW debug log level to
+      help trace some key information
+    - LF-1091: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: request reasonable buffer size
+      for DCP instead of worst case
+    - LF-1212:[8QM_MEK/8QXP_MEK]mxc:vpu_malone:fix issue in timestamp manager not
+      correctly handle buffers with same timestamp
+    - LF-1211 mxc: vpu_malone: v4l2_poll directly return if firmware already
+      finished
+    - MGS-5607 [#imx-1868] integrate vsi patch base on 6.4.0.p2 from 20200320 to
+      20200408
+    - MLK-23793-1 mxc: emvsim: fix pm issue
+    - MLK-23793-2 mxc: emvsim: add runtime pm support
+    - LF-1220 mxc: vpu_malone: manage mailbox according to runtime PM
+    - LF-1220-2 mxc: vpu_windsor manage mailbox according to runtime PM
+    - MGS-5612 [#IMX-2018] fix weston build error
+    - LF-1236 mxc: vpu_malone: roundup allocated kfifo size to power-of-two
+    - MLK-23394-1 XUVI/PPM: fix coverity issues
+    - MLK-23791 XUVI/PPM: MU: enable runtime PM for MU3
+    - LF-1225: [8QM_MEK/8QXP_MEK]mxc:vpu_malone:fix hevc incorrect dcp buffer size
+    - mxc: gpu: remove use of ioremap_nocache()
+    - mxc: gpu-viv: Remove dma-buf map/unmap hooks
+    - mxc: gpu: cope with upstream y2038 changes
+    - MGS-5616-1 [#ccc] Update some Linux APIs for 5.5 kernel
+    - MGS-5616-2 [#ccc] Remove dma-buf map/unmap hooks for 5.5 kernel
+    - LF-1278:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: implement ctrl to set h264 aspect
+      ratio
+    - MLK-23723: arm64: imx8mp: vpu: fix g1/g2 timeout during suspend/resume
+    - MGS-5596 [#imx-2035] [1/2] PM QoS feature development
+    - MGS-5551 [#imx-1868] Update GPU database
+    - MGS-5653 [#imx-2041] modify clock prepare/unprepare along with power on/off
+    - MA-17115 mxc: vpu_malone: send error event when firmware exception
+    - mxc: vpu_malone: fix build issue as module
+    - mxc: vpu_maline: Fix Kconfig to depends on VIDEO_V4L2
+    - MLK-24009-1 arm64: imx8mp: vpu: vc8000e: fix build issue as module
+    - MLK-24009-2 arm64: imx8mp: vpu: g1/g2: fix build issue as module
+    - MLK-24009-3 arm64: imx8mm: vpu: h1: fix build issue as module
+    - MLK-24009-4 arm64: imx8mq: vpu: g1/g2: fix build issue as module
+    - MLK-24090 mxc: ipu3: ipu_device: Fix AB-BA deadlock between vdoa_lock and
+      ipu_ch_tbl.lock
+    - LF-1406-1:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support insmod separately
+    - LF-1406-2:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support insmod repeatly
+    - LF-1405-1: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: support insmod separately
+    - LF-1405-2:[8QM_MEK/8QXP_MEK]mxc:vpu_malone: support insmod repeatly
+    - LF-1430-1 mxc: vpu_malone: refine insert scode for VC1 format
+    - LF-1430-2 mxc: vpu_malone: correct VP8 ivf frame header
+    - LF-1430-3 mxc: vpu_malone: unify set payload header
+    - LF-1430-4 mxc: vpu_malone: refine the operation of insert scode
+    - MGS-5060 [#imx-1868] 0021-Update-gc_feature_database.h-to-271754
+    - MGS-5709 [#imx-1439] fix gpu suspend/resume stuck
+    - MGS-5531 [#imx-1868] Fix VIP Hang isse with HW reet
+    - MGS-5768 [#imx-2132] fix android cts memory leak with
+      CL_MEM_USE_HOST_PHYSICAL_ADDR_VIV
+    - MLK-20236 mxc: sim/emvsim: useless call
+    - MGS-5787 [#imx-1868] 0003-CL275293-fix-flop-tp-reset-issue
+    - MGS-5787 [#imx-1868] 0004-CL275303-default-open-flopreset-with-TP
+    - MGS-5787 [#imx-1868] Update database for GPU/VIP
+    - MGS-5789 [#imx-2156] Fix Coverity issue in VIP PM HW workaround
+    - LF-1572 mxc: sim: Unchecked return value
+    - LF-1573 mxc: sim: Unchecked return value
+    - MLK-24363-1 mxc: emvsim: add error check when enable clk
+    - MLK-24363-2 mxc: emvsim: fix error report in probe stage
+    - MLK-24364 mxc: sim: add runtime pm support
+    - LF-1681: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: delete redundant data before
+      start code
+    - MA-17404 [#imx-2206] Kernel code copyright and license issue.
+    - MGS-5806 [#ccc] fix 8mm gpu hang due to dummy draw
+    - MLK-24404-1 mxc: vpu_malone: correct device power usage_count
+    - MLK-24404-2 mxc: vpu_windsor: correct device power usage_count
+    - MLK-24373-1 arm64: imx8mp: vpu: g1/g2: fix blocking issue in suspend
+    - MLK-24373-2 arm64: imx8mp: vpu: g1/g2: fix potential deadlock issue
+    - MLK-24477-2:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: enable color description in
+      vui
+    - MLK-24477-3:[8QM_MEK/8QXP_MEK]mxc:vpu_malone: improve get/set color api
+    - MGS-5849 Integrate VSI GPU 6.4.3.p0 kernel driver
+    - LF-2138: mxc: vpu_malone: change typedef of 'valid_ts_received' to unsigned
+      int
+    - LF-2111: mxc: vpu_windsor: Avoid hide parameter
+    - MGS-5933-1 [#ccc] reenable m865s gpu TX clock gating
+    - MGS-5928-1 [#ccc] allocate auxiliary memory for cacheable map
+    - MGS-5928-2 [#ccc] support virtual memory in normal zone
+    - MLK-24477-4:[8QM_MEK/8QXP_MEK]mxc:vpu_malone: report color space by try_fmt
+    - MGS-5928-3 [#ccc] fix Android kernel crash problem
+    - MLK-24499: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: set low latency mode through
+      set bframe
+    - MGS-5943 [#imx-2089] 0079-CL290440-KERNEL-SPACE-6.4.x-Always-enable-
+      gcdIGNORE_
+    - MGS-5943 [#imx-2089] 0081-BUG27413-CL290463-KERNEL-SPACE-64x_234062-ocl-fix-
+      th
+    - MGS-5943 [#imx-2089] 0091-KERNEL-SPACE-Update-
+      gc_feature_database.h-to-290561
+    - MLK-24593:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support change bitrate
+      dynamically
+    - MA-17341 [#imx-2211] Remove ts_address code to keep align with Linux
+    - MA-17341-2 [#imx-2211] Fix kernel panic when do stop on android
+    - MA-17683 [#imx-2302] Fix video playback "rcu stall" issue on 8mq
+    - MGS-5972 [#imx-2089] 0011-CL292878-KERNEL-SPACE-dev64x_234062-show-gpu-
+      video-m
+    - MGS-5972 [#imx-2089] 0038-KERNEL-SPACE-Update-
+      gc_feature_database.h-to-295136
+    - MA-18037 [#imx-2356] import vfs namespace to fix GPU module load errors
+    - MGS-6025: sync GPU kernel driver with 20201015 version
+    - MGS-6026 mxc/gpu-viv: integrate 6.4.3.p1 kernel
+    - MGS-6012-5 [#imx-2337] fix 6.4.3.p1 build break for L5.10
+    - MGS-6012-6 [#imx-2337] refine mmap_sem fix for L5.10 kernel
+    - MGS-6010 [#ccc] gpu: add GetSGT callback for reserved_mem
+    - LF-2118 [#ccc] fixed Coverity Issue:6124050
+    - LF-2118-2 [#ccc] fixed Coverity Issue:6124050
+    - MGS-5990-3 [#ccc] refine gpu memory bank configuration
+    - MGS-5990-4 [#ccc] fix the uninitialized variable
+    - MGS-6026-2 sync gpu database with formal 6.4.3.p1
+    - LF-2473 [#ccc] Coverity Issue:10281263
+    - LF-2466 [#ccc] fix the dereference issue
+    - LF-2461 [#ccc] use inline to fix multi-defination
+    - LF-2457 [#ccc] fix the Dereferencing null pointer
+    - LF-2478 [#ccc] fix the dereferencing null pointer
+    - LF-2480 [#ccc] rm DEBUG print as it print below like external mem
+    - LF-2492 [#ccc] check sscanf return value
+    - LF-2473 [#ccc] Coverity Issue:10281263
+    - MGS-4929 [#imx-2382] enable vivante drm for linux build
+    - MGS-6058 [#imx-2391] fix vivante drm build break for L5.10
+    - MGS-6060 gpu-viv: sync 20201116 patch release
+    - MGS-6060-2 gpu-viv: fix build break
+    - MLK-24959: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: move timestamp handler to
+      firmware
+    - MLK-24960: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: move timestamp manager to
+      firmware
+    - MGS-6108 [#imx-2416] fix GPU exception to access the freed MMU page
+    - MGS-6108-2 [#imx-2416] fix vg kernel panic for command unlock
+    - MGS-6108-3 [#imx-2416] fix gcdENABLE_VG logic issue
+    - MLK-21876-21 mxcfb: add uapi headfile for yocto build pass
+    - MLK-21876-17 mxc_v4l2: add uapi headfile for yocto build pass
+    - MLK-24874-3: include: uapi: mxc_v4l2: fix the UAPI_HEADER_TEST failure
+    - MLK-21876-19 pxp_dma: add uapi headfile for yocto build pass
+    - MLK-21876-13 ipu: add uapi headfile for yocto build pass
+    - MLK-24874-5: include: uapi: ipu: fix the UAPI_HEADER_TEST failure
+    - MLK-21876-12 vpu: add handro h1 headfile for Yocto build pass
+    - MA-11994 Add get phys address ioctl to dma-buf.
+    - MLK-16130-2: ASoC: fsl: add machine driver for cadence hdmi
+    - MLK-16159: ASoC: imx_cdnhdmi: refine the N value selection
+    - MLK-16538-2: hdmi api: Relocate hdmi api soure code
+    - MLK-13946-4: ASoC: imx-cdnhdmi: refine machine driver for api changes
+    - MLK-17344-1: ASoC: imx-cdnhdmi: get constraint rate from dts
+    - MLK-17620-2: ASoC: imx-cdnhdmi: switch to generic hdmi codec
+    - MLK-18368-2: ASoC: fsl: support hdmi rx in machine driver
+    - MLK-18833: ASoC: imx-cdnhdmi: fix no sound card issue
+    - MLK-20183-2: ASoC: imx-cdnhdmi: reconfigure the mclk for HDMI on imx8mq
+    - ASoC: imx-cdnhdmi: Fix compile error
+    - MLK-23642-3: ASoC: fsl: imx-cdnhdmi: support 6 channels
+    - MLK-24611-3: ASoC: imx-cdnhdmi: Add hdmi jack
+    - LF-2700: ASoC: fsl: imx-cdnhdmi: Fix error prompt
+    - MLK-23287-1: ASoC: fsl_aud2htx: Add aud2htx module driver
+    - MLK-23906-1: ASoC: fsl_aud2htx: Don't bind clock with regmap
+    - imx busfreq: Add API header file
+    - Add MU module for vpu dependence on QXP/QM
+    - MLK-9769-1 crypto: caam/jr - remove incorrect comment from job ring module
+    - MLK-20204 crypto: caam - remove deadcode on 32-bit platforms
+    - MLK-9769-9 crypto: caam - adjust RNG timing to support more devices
+    - MLK-9769-8 crypto: caam - add a test for the RNG
+    - MLKU-114-1 crypto: caam - reduce page 0 regs access to minimum
+    - MLKU-114-2 crypto: caam - SCU firmware support
+    - MLKU-114-3 crypto: caam - OP-TEE firmware support
+    - MLKU-38-3 crypto: caam - add SNVS / SECVIO support
+    - MLKU-25-3 crypto: caam - add Secure Memory support
+    - MLK-19801-1 crypto: caam - add tag functionality
+    - MLK-19801-2 crypto: caam - add support of tagged keys in caamalg
+    - MLK-10036 crypto: caam - add support for DSM with Mega/Fast mix on
+    - MLK-19449 crypto: caam - Change structure type representing DECO MID
+    - LFV-26 crypto: caam - fix Secure Memory driver init
+    - LF-63-1 crypto: caam - fix SM test init
+    - crypto: caam - fix snvs clk prepare+enable
+    - LF-838: crypto: caam - increase the domain of write memory barrier to full
+      system
+    - MLK-23774 crypto: caam - fix SNVS / SECVIO building as module
+    - MLK-21689 crypto: caam - make snvs clock optional
+    - MLK-23664-2 crypto: caam - allocate RNG instantiation descriptor with
+      GFP_DMA
+    - MLK-24420-1 crypto: caam - update tagged keys functionality and tk
+      transformations for skcipher
+    - MLK-24420-2 crypto: caam - add support for black keys and blobs
+    - MLK-24420-3 crypto: caam - add ioctl calls for black keys and blobs
+      generation
+    - MLK-24497 crypto: caam - update tagged object functionality by adding red
+      key length
+    - MLK-24496 crypto: caam - fix blob encapsulation/decapsulation
+    - MLK-24496 crypto: caam - add tag object header to blob
+    - MLK-24497 crypto: caam - update job descriptor with inline commands
+    - MLK-24517-1 crypto: caam - removed unnecessary validation of black key for
+      blob decapsulation
+    - MLK-24517-2 crypto: caam - removed unnecessary validation of black key for
+      blob encapsulation
+    - MLK-24517-3 crypto: caam - add null terminator to temporary buffer
+    - MLK-24517-4 crypto: caam - validate arguments received from user-space
+    - MLK-23664-3 crypto: caam - use struct hwrng's .init for initialization
+    - MLK-23664-4 crypto: caam - drop global context pointer and init_done
+    - MLK-23664-7 crypto: caam - invalidate entropy register during RNG
+      initialization
+    - MLK-21698: tee:optee: fix shared memory page attribute checks
+    - driver: tee: Handle NULL pointer indication from client
+    - tee: add support for session's client UUID generation
+    - tee: optee: Add support for session login client UUID generation
+    - tee: optee: remove need_resched() before cond_resched()
+    - MLK-16912 PL310: unlock ways during initialization
+    - MLK-16224-1: dmaengine: add src_fifo_num and dst_fifo_num in
+      dma_slave_config
+    - MLK-17385: dma: imx-sdma: update sdma script for multi fifo on SAI
+    - dma: engine: imx-sdma: add mcu_2_ecspi script
+    - dmaengine: imx-sdma: remove ERR009165 on i.mx6ul
+    - dmaengine: imx-sdma: fix ecspi1 rx dma not work on i.mx8mm
+    - dmaengine: imx-sdma: support allocate memory from iram
+    - dmaengine: imx-sdma: Add hdmi audio support in sdma
+    - dmaengine: imx-sdma: add sdma resume back after megafast off
+    - MLK-11259-1: dmaengine: imx-sdma: support dual fifo for DEV_TO_DEV
+    - MLK-16885-1: DMA: imx-sdma: update the buswidth that is supported
+    - include: dma-imx: support dual fifo for for DEV_TO_DEV
+    - dmaengine: imx-sdma: update sdma script for multi fifo on SAI
+    - MLK-22239-1: dmaengine: imx-sdma: Support 24bit/3bytes for sg mode
+    - dma: imx-sdma: Fix issue with IMX_DMATYPE_HDMI
+    - dma: imx-sdma: Add pm_ops to support suspend & resume
+    - MLK-22972 dmaengine: imx-sdma: correct the script number for v3
+    - MLK-23005: dmaengine: imx-sdma: correct data size of channel context
+    - LF-246: dmaengine: imx-sdma: correct is_ram_script checking
+    - LF-301: dmaengine: imx-sdma: Add once more loading firmware
+    - MLK-23400-1: dmaengine: imx-sdma: add sdma restore back for i.mx8mp
+    - MLK-20598 dmaengine: imx-sdma: fix potential system hang
+    - MLK-23869-1 dmaengine: imx-sdma: split sdma init hw and sw
+    - MLK-23869-2 dmaengine: imx-sdma: add runtime suspend/resume
+    - MLK-23869-3: dmaengine: imx-sdma: add sdma_get_firmware_wait
+    - MLK-24071 dmaengine: imx-sdma: fix random channel stop
+    - MLK-23540 dmaengine: imx-sdma: restore DONEx_CONFIG register
+    - MLK-24483-1: dmaengine: imx-sdma: remove ecspi_fixed on imx8mq
+    - MLK-25116-1: dmaengine: imx-sdma: save iram pool for bd allocated
+    - MLK-25116-2: dmaengine: imx-sdma: correct iram_pool check point
+    - LF-3132: dmaengine: imx-sdma: raise up channel0 priority after resume
+    - net: fec: add FEC_QUIRK_HAS_MULTI_QUEUES represents i.MX6SX ENET IP
+    - net: fec: add ndo_select_queue to fix TX bandwidth fluctuations
+    - MLK-16347-6 drm/bridge: adv7511: Add new compatible string
+    - MLK-16918-15 drm/bridge: Update adv7511 driver with some regs for adv7535
+    - MLK-16986-4 drm/bridge: adv7511: set bus_flags and bus_format
+    - MLK-17275-1 drm/bridge: adv7511: Add support for OF_DYNAMIC
+    - MLK-17275-7 drm/bridge: adv7511: Add dsi-channel property
+    - MLK-17650-1 drm/bridge: adv7511: Add support for programmable i2c addresses
+    - MLK-18877-1 drm/bridge: adv7511: Add debug info for HPD event
+    - MLK-17537-1 drm/bridge: Correct the ADV7533 init
+    - MLK-21958-13: drm/bridge: adv7511: Limit supported clocks
+    - drm/bridge: adv7511: Fix of_reconfig
+    - MA-17597-1 gpu: drm: select OF_DYNAMIC in it6263 and adv7511 config
+    - optee: model OP-TEE as a platform device/driver
+    - optee: use uuid for sysfs driver entry
+    - optee: enable support for multi-stage bus enumeration
+    - tpm_ftpm_tee: register driver on TEE bus
+    - hwrng: optee - handle unlimited data rates
+    - hwrng: optee - fix wait use case
+    - optee: Refuse to load the driver under the kdump kernel
+    - optee: fix tee out of memory failure seen during kexec reboot
+    - TEE-349 RPC Busfreq High
+
+  [ Ubuntu: 5.4.0-120.136 ]
+
+  * CVE-2022-21123 // CVE-2022-21125 // CVE-2022-21166
+    - cpu/speculation: Add prototype for cpu_show_srbds()
+    - x86/cpu: Add Jasper Lake to Intel family
+    - x86/cpu: Add Lakefield, Alder Lake and Rocket Lake models to the to Intel
+      CPU family
+    - x86/cpu: Add another Alder Lake CPU to the Intel family
+    - Documentation: Add documentation for Processor MMIO Stale Data
+    - x86/speculation/mmio: Enumerate Processor MMIO Stale Data bug
+    - x86/speculation: Add a common function for MD_CLEAR mitigation update
+    - x86/speculation/mmio: Add mitigation for Processor MMIO Stale Data
+    - x86/bugs: Group MDS, TAA & Processor MMIO Stale Data mitigations
+    - x86/speculation/mmio: Enable CPU Fill buffer clearing on idle
+    - x86/speculation/mmio: Add sysfs reporting for Processor MMIO Stale Data
+    - x86/speculation/srbds: Update SRBDS mitigation selection
+    - x86/speculation/mmio: Reuse SRBDS mitigation for SBDS
+    - KVM: x86/speculation: Disable Fill buffer clear within guests
+    - x86/speculation/mmio: Print SMT warning
+
+  [ Ubuntu: 5.4.0-117.132 ]
+
+  * CVE-2022-1966
+    - netfilter: nf_tables: add nft_set_elem_expr_alloc()
+    - netfilter: nf_tables: disallow non-stateful expression in sets earlier
+
+  [ Ubuntu: 5.4.0-115.129 ]
+
+  * CVE-2022-21499
+    - SAUCE: debug: Lock down kgdb
+
+  [ Ubuntu: 5.4.0-114.128 ]
+
+  * focal/linux: 5.4.0-114.128 -proposed tracker (LP: #1974391)
+  * 32 GT/s PCI link speeds reporting "Unknown speed" in sysfs (LP: #1970798)
+    - PCI: Add 32 GT/s decoding in some macros
+    - PCI: Add pci_speed_string()
+    - PCI: Use pci_speed_string() for all PCI/PCI-X/PCIe strings
+    - PCI: Add PCIE_LNKCAP2_SLS2SPEED() macro
+  * issuing invalid ioctl to /dev/vsock may spam dmesg (LP: #1971480)
+    - vsock: remove ratelimit unknown ioctl message
+  * config CONFIG_HISI_PMU for  kunpeng920 (LP: #1956086)
+    - drivers/perf: hisi: Permit modular builds of HiSilicon uncore drivers
+    - [Config] CONFIG_HISI_PMU=m
+  * Focal update: v5.4.189 upstream stable release (LP: #1971497)
+    - swiotlb: fix info leak with DMA_FROM_DEVICE
+    - USB: serial: pl2303: add IBM device IDs
+    - USB: serial: simple: add Nokia phone driver
+    - netdevice: add the case if dev is NULL
+    - HID: logitech-dj: add new lightspeed receiver id
+    - xfrm: fix tunnel model fragmentation behavior
+    - virtio_console: break out of buf poll on remove
+    - ethernet: sun: Free the coherent when failing in probing
+    - spi: Fix invalid sgs value
+    - net:mcf8390: Use platform_get_irq() to get the interrupt
+    - spi: Fix erroneous sgs value with min_t()
+    - af_key: add __GFP_ZERO flag for compose_sadb_supported in function
+      pfkey_register
+    - net: dsa: microchip: add spi_device_id tables
+    - iommu/iova: Improve 32-bit free space estimate
+    - tpm: fix reference counting for struct tpm_chip
+    - block: Add a helper to validate the block size
+    - virtio-blk: Use blk_validate_block_size() to validate block size
+    - USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
+    - xhci: fix runtime PM imbalance in USB2 resume
+    - xhci: make xhci_handshake timeout for xhci_reset() adjustable
+    - xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
+    - coresight: Fix TRCCONFIGR.QE sysfs interface
+    - iio: afe: rescale: use s64 for temporary scale calculations
+    - iio: inkern: apply consumer scale on IIO_VAL_INT cases
+    - iio: inkern: apply consumer scale when no channel scale is available
+    - iio: inkern: make a best effort on offset calculation
+    - greybus: svc: fix an error handling bug in gb_svc_hello()
+    - clk: uniphier: Fix fixed-rate initialization
+    - KEYS: fix length validation in keyctl_pkey_params_get_2()
+    - Documentation: add link to stable release candidate tree
+    - Documentation: update stable tree link
+    - HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
+    - SUNRPC: avoid race between mod_timer() and del_timer_sync()
+    - NFSD: prevent underflow in nfssvc_decode_writeargs()
+    - NFSD: prevent integer overflow on 32 bit systems
+    - f2fs: fix to unlock page correctly in error path of is_alive()
+    - f2fs: quota: fix loop condition at f2fs_quota_sync()
+    - f2fs: fix to do sanity check on .cp_pack_total_block_count
+    - pinctrl: samsung: drop pin banks references on error paths
+    - spi: mxic: Fix the transmit path
+    - jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
+    - jffs2: fix memory leak in jffs2_do_mount_fs
+    - jffs2: fix memory leak in jffs2_scan_medium
+    - mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
+    - mm: invalidate hwpoison page cache page in fault path
+    - mempolicy: mbind_range() set_policy() after vma_merge()
+    - scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
+    - qed: display VF trust config
+    - qed: validate and restrict untrusted VFs vlan promisc mode
+    - riscv: Fix fill_callchain return value
+    - Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
+    - ALSA: cs4236: fix an incorrect NULL check on list iterator
+    - ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
+    - mm,hwpoison: unmap poisoned page before invalidation
+    - mm/kmemleak: reset tag when compare object pointer
+    - drbd: fix potential silent data corruption
+    - powerpc/kvm: Fix kvm_use_magic_page
+    - udp: call udp_encap_enable for v6 sockets when enabling encap
+    - ACPI: properties: Consistently return -ENOENT if there are no more
+      references
+    - drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
+    - mailbox: tegra-hsp: Flush whole channel
+    - block: don't merge across cgroup boundaries if blkcg is enabled
+    - drm/edid: check basic audio support on CEA extension block
+    - video: fbdev: sm712fb: Fix crash in smtcfb_read()
+    - video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
+    - ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
+    - ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
+    - ARM: dts: exynos: add missing HDMI supplies on SMDK5250
+    - ARM: dts: exynos: add missing HDMI supplies on SMDK5420
+    - carl9170: fix missing bit-wise or operator for tx_params
+    - thermal: int340x: Increase bitmap size
+    - lib/raid6/test: fix multiple definition linking error
+    - crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
+    - crypto: rsa-pkcs1pad - restore signature length check
+    - crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
+    - DEC: Limit PMAX memory probing to R3k systems
+    - media: davinci: vpif: fix unbalanced runtime PM get
+    - xtensa: fix stop_machine_cpuslocked call in patch_text
+    - xtensa: fix xtensa_wsr always writing 0
+    - brcmfmac: firmware: Allocate space for default boardrev in nvram
+    - brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
+    - brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
+    - brcmfmac: pcie: Fix crashes due to early IRQs
+    - PCI: pciehp: Clear cmd_busy bit in polling mode
+    - regulator: qcom_smd: fix for_each_child.cocci warnings
+    - crypto: authenc - Fix sleep in atomic context in decrypt_tail
+    - crypto: mxs-dcp - Fix scatterlist processing
+    - spi: tegra114: Add missing IRQ check in tegra_spi_probe
+    - selftests/x86: Add validity check and allow field splitting
+    - audit: log AUDIT_TIME_* records only from rules
+    - crypto: ccree - don't attempt 0 len DMA mappings
+    - spi: pxa2xx-pci: Balance reference count for PCI DMA device
+    - hwmon: (pmbus) Add mutex to regulator ops
+    - hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
+    - block: don't delete queue kobject before its children
+    - PM: hibernate: fix __setup handler error handling
+    - PM: suspend: fix return value of __setup handler
+    - hwrng: atmel - disable trng on failure path
+    - crypto: vmx - add missing dependencies
+    - clocksource/drivers/timer-of: Check return value of of_iomap in
+      timer_of_base_init()
+    - ACPI: APEI: fix return value of __setup handlers
+    - crypto: ccp - ccp_dmaengine_unregister release dma channels
+    - hwmon: (pmbus) Add Vin unit off handling
+    - clocksource: acpi_pm: fix return value of __setup handler
+    - sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
+    - perf/core: Fix address filter parser for multiple filters
+    - perf/x86/intel/pt: Fix address filter config for 32-bit kernel
+    - f2fs: fix missing free nid in f2fs_handle_failed_inode
+    - f2fs: fix to avoid potential deadlock
+    - media: bttv: fix WARNING regression on tunerless devices
+    - media: coda: Fix missing put_device() call in coda_get_vdoa_data
+    - media: hantro: Fix overfill bottom register field name
+    - media: aspeed: Correct value for h-total-pixels
+    - video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
+    - video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
+    - video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
+    - ARM: dts: qcom: ipq4019: fix sleep clock
+    - soc: qcom: rpmpd: Check for null return of devm_kcalloc
+    - soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
+    - arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
+    - soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
+    - ARM: dts: imx: Add missing LVDS decoder on M53Menlo
+    - media: video/hdmi: handle short reads of hdmi info frame.
+    - media: em28xx: initialize refcount before kref_get
+    - media: usb: go7007: s2250-board: fix leak in probe()
+    - uaccess: fix nios2 and microblaze get_user_8()
+    - ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
+    - ASoC: ti: davinci-i2s: Add check for clk_enable()
+    - ALSA: spi: Add check for clk_enable()
+    - arm64: dts: ns2: Fix spi-cpol and spi-cpha property
+    - arm64: dts: broadcom: Fix sata nodename
+    - printk: fix return value of printk.devkmsg __setup handler
+    - ASoC: mxs-saif: Handle errors for clk_enable
+    - ASoC: atmel_ssc_dai: Handle errors for clk_enable
+    - ASoC: soc-compress: prevent the potentially use of null pointer
+    - memory: emif: Add check for setup_interrupts
+    - memory: emif: check the pointer temp in get_device_details()
+    - ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
+    - arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
+    - media: stk1160: If start stream fails, return buffers with
+      VB2_BUF_STATE_QUEUED
+    - ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
+    - ASoC: wm8350: Handle error for wm8350_register_irq
+    - ASoC: fsi: Add check for clk_enable
+    - video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
+    - ivtv: fix incorrect device_caps for ivtvfb
+    - ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
+    - ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
+    - ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
+    - ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in
+      msm8916_wcd_digital_probe
+    - mmc: davinci_mmc: Handle error for clk_enable
+    - ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
+    - drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
+    - drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
+    - ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
+    - udmabuf: validate ubuf->pagecount
+    - Bluetooth: hci_serdev: call init_rwsem() before p->open()
+    - mtd: onenand: Check for error irq
+    - mtd: rawnand: gpmi: fix controller timings setting
+    - drm/edid: Don't clear formats if using deep color
+    - drm/amd/display: Fix a NULL pointer dereference in
+      amdgpu_dm_connector_add_common_modes()
+    - ath9k_htc: fix uninit value bugs
+    - KVM: PPC: Fix vmx/vsx mixup in mmio emulation
+    - i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
+    - power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
+    - ray_cs: Check ioremap return value
+    - powerpc/perf: Don't use perf_hw_context for trace IMC PMU
+    - mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
+    - mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
+    - net: dsa: mv88e6xxx: Enable port policy support on 6097
+    - PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
+    - power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
+    - HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
+    - iommu/ipmmu-vmsa: Check for error num after setting mask
+    - drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
+    - IB/cma: Allow XRC INI QPs to set their local ACK timeout
+    - dax: make sure inodes are flushed before destroy cache
+    - iwlwifi: Fix -EIO error code that is never returned
+    - iwlwifi: mvm: Fix an error code in iwl_mvm_up()
+    - dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
+    - scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
+    - scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
+    - scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
+    - scsi: pm8001: Fix abort all task initialization
+    - drm/amd/display: Remove vupdate_int_entry definition
+    - TOMOYO: fix __setup handlers return values
+    - ext2: correct max file size computing
+    - drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
+    - power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false
+      return
+    - scsi: hisi_sas: Change permission of parameter prot_mask
+    - drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
+    - bpf, arm64: Call build_prologue() first in first JIT pass
+    - bpf, arm64: Feed byte-offset into bpf line info
+    - libbpf: Skip forward declaration when counting duplicated type names
+    - powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
+    - KVM: x86: Fix emulation in writing cr8
+    - KVM: x86/emulator: Defer not-present segment check in
+      __load_segment_descriptor()
+    - hv_balloon: rate-limit "Unhandled message" warning
+    - i2c: xiic: Make bus names unique
+    - power: supply: wm8350-power: Handle error for wm8350_register_irq
+    - power: supply: wm8350-power: Add missing free in free_charger_irq
+    - PCI: Reduce warnings on possible RW1C corruption
+    - mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
+    - powerpc/sysdev: fix incorrect use to determine if list is empty
+    - mfd: mc13xxx: Add check for mc13xxx_irq_request
+    - selftests/bpf: Make test_lwt_ip_encap more stable and faster
+    - powerpc: 8xx: fix a return value error in mpc8xx_pic_init
+    - vxcan: enable local echo for sent CAN frames
+    - MIPS: RB532: fix return value of __setup handler
+    - mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
+    - RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
+    - bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
+    - bpf, sockmap: Fix more uncharged while msg has more_data
+    - bpf, sockmap: Fix double uncharge the mem of sk_msg
+    - USB: storage: ums-realtek: fix error code in rts51x_read_mem()
+    - Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
+    - af_netlink: Fix shift out of bounds in group mask calculation
+    - i2c: mux: demux-pinctrl: do not deactivate a master that is not active
+    - selftests/bpf/test_lirc_mode2.sh: Exit with proper code
+    - tcp: ensure PMTU updates are processed during fastopen
+    - openvswitch: always update flow key after nat
+    - tipc: fix the timer expires after interval 100ms
+    - mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
+    - mxser: fix xmit_buf leak in activate when LSR == 0xff
+    - pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
+    - misc: alcor_pci: Fix an error handling path
+    - staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
+    - pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
+    - clk: qcom: ipq8074: Use floor ops for SDCC1 clock
+    - phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
+    - serial: 8250_mid: Balance reference count for PCI DMA device
+    - serial: 8250: Fix race condition in RTS-after-send handling
+    - iio: adc: Add check for devm_request_threaded_irq
+    - NFS: Return valid errors from nfs2/3_decode_dirent()
+    - dma-debug: fix return value of __setup handlers
+    - clk: imx7d: Remove audio_mclk_root_clk
+    - clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
+    - clk: qcom: clk-rcg2: Update the frac table for pixel clock
+    - remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
+    - remoteproc: qcom_wcnss: Add missing of_node_put() in
+      wcnss_alloc_memory_region
+    - clk: actions: Terminate clk_div_table with sentinel element
+    - clk: loongson1: Terminate clk_div_table with sentinel element
+    - clk: clps711x: Terminate clk_div_table with sentinel element
+    - clk: tegra: tegra124-emc: Fix missing put_device() call in
+      emc_ensure_emc_driver
+    - NFS: remove unneeded check in decode_devicenotify_args()
+    - staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
+    - pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
+    - pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
+    - pinctrl: mediatek: paris: Fix pingroup pin config state readback
+    - pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
+    - pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
+    - tty: hvc: fix return value of __setup handler
+    - kgdboc: fix return value of __setup handler
+    - kgdbts: fix return value of __setup handler
+    - firmware: google: Properly state IOMEM dependency
+    - driver core: dd: fix return value of __setup handler
+    - jfs: fix divide error in dbNextAG
+    - netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
+    - NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
+    - clk: qcom: gcc-msm8994: Fix gpll4 width
+    - clk: Initialize orphan req_rate
+    - xen: fix is_xen_pmu()
+    - net: phy: broadcom: Fix brcm_fet_config_init()
+    - selftests: test_vxlan_under_vrf: Fix broken test case
+    - qlcnic: dcb: default to returning -EOPNOTSUPP
+    - net/x25: Fix null-ptr-deref caused by x25_disconnect
+    - NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
+    - net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
+    - lib/test: use after free in register_test_dev_kmod()
+    - LSM: general protection fault in legacy_parse_param
+    - gcc-plugins/stackleak: Exactly match strings instead of prefixes
+    - pinctrl: npcm: Fix broken references to chip->parent_device
+    - block, bfq: don't move oom_bfqq
+    - selinux: use correct type for context length
+    - loop: use sysfs_emit() in the sysfs xxx show()
+    - Fix incorrect type in assignment of ipv6 port for audit
+    - irqchip/qcom-pdc: Fix broken locking
+    - irqchip/nvic: Release nvic_base upon failure
+    - bfq: fix use-after-free in bfq_dispatch_request
+    - ACPICA: Avoid walking the ACPI Namespace if it is not there
+    - lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
+    - Revert "Revert "block, bfq: honor already-setup queue merges""
+    - ACPI/APEI: Limit printable size of BERT table data
+    - PM: core: keep irq flags in device_pm_check_callbacks()
+    - spi: tegra20: Use of_device_get_match_data()
+    - ext4: don't BUG if someone dirty pages without asking ext4 first
+    - ntfs: add sanity check on allocation size
+    - video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
+    - video: fbdev: w100fb: Reset global state
+    - video: fbdev: cirrusfb: check pixclock to avoid divide by zero
+    - video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
+    - ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
+    - ARM: dts: bcm2837: Add the missing L1/L2 cache information
+    - ASoC: madera: Add dependencies on MFD
+    - video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
+    - video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of
+      snprintf()
+    - video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
+    - ASoC: soc-core: skip zero num_dai component in searching dai name
+    - media: cx88-mpeg: clear interrupt status register before streaming video
+    - ARM: tegra: tamonten: Fix I2C3 pad setting
+    - ARM: mmp: Fix failure to remove sram device
+    - video: fbdev: sm712fb: Fix crash in smtcfb_write()
+    - media: Revert "media: em28xx: add missing em28xx_close_extension"
+    - media: hdpvr: initialize dev->worker at hdpvr_register_videodev
+    - mmc: host: Return an error when ->enable_sdio_irq() ops is missing
+    - ALSA: hda/realtek: Add alc256-samsung-headphone fixup
+    - powerpc/lib/sstep: Fix 'sthcx' instruction
+    - powerpc/lib/sstep: Fix build errors with newer binutils
+    - powerpc: Fix build errors with newer binutils
+    - scsi: qla2xxx: Fix stuck session in gpdb
+    - scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
+    - scsi: qla2xxx: Fix warning for missing error code
+    - scsi: qla2xxx: Fix device reconnect in loop topology
+    - scsi: qla2xxx: Add devids and conditionals for 28xx
+    - scsi: qla2xxx: Check for firmware dump already collected
+    - scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
+    - scsi: qla2xxx: Fix disk failure to rediscover
+    - scsi: qla2xxx: Fix incorrect reporting of task management failure
+    - scsi: qla2xxx: Fix hang due to session stuck
+    - scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
+    - scsi: qla2xxx: Fix N2N inconsistent PLOGI
+    - scsi: qla2xxx: Reduce false trigger to login
+    - scsi: qla2xxx: Use correct feature type field during RFF_ID processing
+    - KVM: Prevent module exit until all VMs are freed
+    - KVM: x86: fix sending PV IPI
+    - ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
+    - ubifs: rename_whiteout: Fix double free for whiteout_ui->data
+    - ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
+    - ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
+    - ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
+    - ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
+    - ubifs: rename_whiteout: correct old_dir size computing
+    - XArray: Fix xas_create_range() when multi-order entry present
+    - can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
+    - can: mcba_usb: properly check endpoint type
+    - XArray: Update the LRU list in xas_split()
+    - rtc: check if __rtc_read_time was successful
+    - gfs2: Make sure FITRIM minlen is rounded up to fs block size
+    - net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
+    - pinctrl: pinconf-generic: Print arguments for bias-pull-*
+    - pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
+    - pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
+    - ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
+    - ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
+    - ARM: iop32x: offset IRQ numbers by 1
+    - ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
+    - powerpc/kasan: Fix early region not updated correctly
+    - ASoC: soc-compress: Change the check for codec_dai
+    - mm/mmap: return 1 from stack_guard_gap __setup() handler
+    - mm/memcontrol: return 1 from cgroup.memory __setup() handler
+    - mm/usercopy: return 1 from hardened_usercopy __setup() handler
+    - bpf: Fix comment for helper bpf_current_task_under_cgroup()
+    - dt-bindings: mtd: nand-controller: Fix the reg property description
+    - dt-bindings: mtd: nand-controller: Fix a comment in the examples
+    - dt-bindings: spi: mxic: The interrupt property is not mandatory
+    - ubi: fastmap: Return error code if memory allocation fails in add_aeb()
+    - ASoC: topology: Allow TLV control to be either read or write
+    - ARM: dts: spear1340: Update serial node properties
+    - ARM: dts: spear13xx: Update SPI dma properties
+    - um: Fix uml_mconsole stop/go
+    - openvswitch: Fixed nd target mask field in the flow dump.
+    - KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
+    - KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
+    - ubifs: Rectify space amount budget for mkdir/tmpfile operations
+    - rtc: wm8350: Handle error for wm8350_register_irq
+    - riscv module: remove (NOLOAD)
+    - ARM: 9187/1: JIVE: fix return value of __setup handler
+    - KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
+    - drm: Add orientation quirk for GPD Win Max
+    - ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
+    - drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
+    - ptp: replace snprintf with sysfs_emit
+    - powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
+    - bpf: Make dst_port field in struct bpf_sock 16-bit wide
+    - scsi: mvsas: Replace snprintf() with sysfs_emit()
+    - scsi: bfa: Replace snprintf() with sysfs_emit()
+    - power: supply: axp20x_battery: properly report current when discharging
+    - ipv6: make mc_forwarding atomic
+    - powerpc: Set crashkernel offset to mid of RMA region
+    - drm/amdgpu: Fix recursive locking warning
+    - PCI: aardvark: Fix support for MSI interrupts
+    - iommu/arm-smmu-v3: fix event handling soft lockup
+    - usb: ehci: add pci device support for Aspeed platforms
+    - PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
+    - power: supply: axp288-charger: Set Vhold to 4.4V
+    - ipv4: Invalidate neighbour for broadcast address upon address addition
+    - dm ioctl: prevent potential spectre v1 gadget
+    - drm/amdkfd: make CRAT table missing message informational only
+    - scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
+    - scsi: aha152x: Fix aha152x_setup() __setup handler return value
+    - net/smc: correct settings of RMB window update limit
+    - mips: ralink: fix a refcount leak in ill_acc_of_setup()
+    - macvtap: advertise link netns via netlink
+    - tuntap: add sanity checks about msg_controllen in sendmsg
+    - bnxt_en: Eliminate unintended link toggle during FW reset
+    - MIPS: fix fortify panic when copying asm exception handlers
+    - scsi: libfc: Fix use after free in fc_exch_abts_resp()
+    - usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
+    - xtensa: fix DTC warning unit_address_format
+    - Bluetooth: Fix use after free in hci_send_acl
+    - netlabel: fix out-of-bounds memory accesses
+    - init/main.c: return 1 from handled __setup() functions
+    - minix: fix bug when opening a file with O_DIRECT
+    - clk: si5341: fix reported clk_rate when output divider is 2
+    - w1: w1_therm: fixes w1_seq for ds28ea00 sensors
+    - NFSv4: Protect the state recovery thread against direct reclaim
+    - xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
+    - clk: Enforce that disjoints limits are invalid
+    - SUNRPC/call_alloc: async tasks mustn't block waiting for memory
+    - NFS: swap IO handling is slightly different for O_DIRECT IO
+    - NFS: swap-out must always use STABLE writes.
+    - serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()
+    - virtio_console: eliminate anonymous module_init & module_exit
+    - jfs: prevent NULL deref in diFree
+    - SUNRPC: Fix socket waits for write buffer space
+    - parisc: Fix CPU affinity for Lasi, WAX and Dino chips
+    - parisc: Fix patch code locking and flushing
+    - mm: fix race between MADV_FREE reclaim and blkdev direct IO read
+    - KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
+    - drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
+    - Drivers: hv: vmbus: Fix potential crash on module unload
+    - scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
+    - net/tls: fix slab-out-of-bounds bug in decrypt_internal
+    - net: ipv4: fix route with nexthop object delete warning
+    - net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
+    - drm/imx: Fix memory leak in imx_pd_connector_get_modes
+    - bnxt_en: reserve space inside receive page for skb_shared_info
+    - IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
+    - dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
+    - ipv6: Fix stats accounting in ip6_pkt_drop
+    - net: openvswitch: don't send internal clone attribute to the userspace.
+    - rxrpc: fix a race in rxrpc_exit_net()
+    - qede: confirm skb is allocated before using
+    - spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
+    - bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
+    - drbd: Fix five use after free bugs in get_initial_state
+    - SUNRPC: Handle ENOMEM in call_transmit_status()
+    - SUNRPC: Handle low memory situations in call_status()
+    - perf tools: Fix perf's libperf_print callback
+    - perf session: Remap buf if there is no space for event
+    - Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
+    - mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is
+      complete
+    - lz4: fix LZ4_decompress_safe_partial read out of bound
+    - mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
+    - mm/mempolicy: fix mpol_new leak in shared_policy_replace
+    - x86/pm: Save the MSR validity status at context setup
+    - x86/speculation: Restore speculation related MSRs during S3 resume
+    - btrfs: fix qgroup reserve overflow the qgroup limit
+    - arm64: patch_text: Fixup last cpu should be master
+    - ata: sata_dwc_460ex: Fix crash due to OOB write
+    - perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
+    - irqchip/gic-v3: Fix GICR_CTLR.RWP polling
+    - tools build: Filter out options and warnings not supported by clang
+    - tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
+    - dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
+    - mmc: mmci_sdmmc: Replace sg_dma_xxx macros
+    - mmc: mmci: stm32: correctly check all elements of sg list
+    - mm: don't skip swap entry even if zap_details specified
+    - arm64: module: remove (NOLOAD) from linker script
+    - mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
+    - drm/amdkfd: add missing void argument to function kgd2kfd_init
+    - drm/amdkfd: Fix -Wstrict-prototypes from
+      amdgpu_amdkfd_gfx_10_0_get_functions()
+    - cgroup: Use open-time credentials for process migraton perm checks
+    - cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
+    - cgroup: Use open-time cgroup namespace for process migration perm checks
+    - selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
+    - selftests: cgroup: Test open-time credential usage for migration checks
+    - selftests: cgroup: Test open-time cgroup namespace usage for migration
+      checks
+    - cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
+    - ACPI: processor idle: Check for architectural support for LPI
+    - Linux 5.4.189
+  * Focal update: v5.4.188 upstream stable release (LP: #1971496)
+    - nfsd: cleanup nfsd_file_lru_dispose()
+    - nfsd: Containerise filecache laundrette
+    - net: ipv6: fix skb_over_panic in __ip6_append_data
+    - tpm: Fix error handling in async work
+    - staging: fbtft: fb_st7789v: reset display before initialization
+    - thermal: int340x: fix memory leak in int3400_notify()
+    - llc: fix netdevice reference leaks in llc_ui_bind()
+    - ALSA: pcm: Add stream lock during PCM reset ioctl operations
+    - ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
+    - ALSA: cmipci: Restore aux vol on suspend/resume
+    - ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
+    - drivers: net: xgene: Fix regression in CRC stripping
+    - ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
+    - ALSA: oss: Fix PCM OSS buffer allocation overflow
+    - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
+    - ALSA: hda/realtek: Add quirk for ASUS GA402
+    - ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
+    - ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
+    - ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
+    - crypto: qat - disable registration of algorithms
+    - rcu: Don't deboost before reporting expedited quiescent state
+    - mac80211: fix potential double free on mesh join
+    - tpm: use try_get_ops() in tpm-space.c
+    - nds32: fix access_ok() checks in get/put_user
+    - llc: only change llc->dev when bind() succeeds
+    - Linux 5.4.188
+  * Focal update: v5.4.187 upstream stable release (LP: #1971493)
+    - crypto: qcom-rng - ensure buffer for generate is completely filled
+    - ocfs2: fix crash when initialize filecheck kobj fails
+    - efi: fix return value of __setup handlers
+    - net: phy: marvell: Fix invalid comparison in the resume and suspend
+      functions
+    - net/packet: fix slab-out-of-bounds access in packet_recvmsg()
+    - atm: eni: Add check for dma_map_single
+    - hv_netvsc: Add check for kvmalloc_array
+    - drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
+    - net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
+    - net: dsa: Add missing of_node_put() in dsa_port_parse_of
+    - arm64: fix clang warning about TRAMP_VALIAS
+    - usb: gadget: rndis: prevent integer overflow in rndis_set_response()
+    - usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
+    - usb: usbtmc: Fix bug in pipe direction for control transfers
+    - Input: aiptek - properly check endpoint type
+    - perf symbols: Fix symbol size calculation condition
+    - Linux 5.4.187
+  * Focal update: v5.4.186 upstream stable release (LP: #1969678)
+    - Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
+    - sctp: fix the processing for INIT chunk
+    - xfrm: Check if_id in xfrm_migrate
+    - xfrm: Fix xfrm migrate issues when address family changes
+    - arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity
+    - arm64: dts: rockchip: reorder rk3399 hdmi clocks
+    - arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"
+    - ARM: dts: rockchip: reorder rk322x hmdi clocks
+    - ARM: dts: rockchip: fix a typo on rk3288 crypto-controller
+    - mac80211: refuse aggregations sessions before authorized
+    - MIPS: smp: fill in sibling and core maps earlier
+    - ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE
+    - can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when
+      fully ready
+    - atm: firestream: check the return value of ioremap() in fs_init()
+    - iwlwifi: don't advertise TWT support
+    - drm/vrr: Set VRR capable prop only if it is attached to connector
+    - nl80211: Update bss channel on channel switch for P2P_CLIENT
+    - tcp: make tcp_read_sock() more robust
+    - sfc: extend the locking on mcdi->seqno
+    - kselftest/vm: fix tests build with old libc
+    - fixup for "arm64 entry: Add macro for reading symbol address from the
+      trampoline"
+    - Linux 5.4.186
+  * Focal update: v5.4.185 upstream stable release (LP: #1969672)
+    - clk: qcom: gdsc: Add support to update GDSC transition delay
+    - arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias
+    - virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
+    - net: qlogic: check the return value of dma_alloc_coherent() in
+      qed_vf_hw_prepare()
+    - qed: return status of qed_iov_get_link
+    - drm/sun4i: mixer: Fix P010 and P210 format numbers
+    - ARM: dts: aspeed: Fix AST2600 quad spi group
+    - ethernet: Fix error handling in xemaclite_of_probe
+    - net: ethernet: ti: cpts: Handle error for clk_enable
+    - net: ethernet: lpc_eth: Handle error for clk_enable
+    - ax25: Fix NULL pointer dereference in ax25_kill_by_device
+    - net/mlx5: Fix size field in bufferx_reg struct
+    - net/mlx5: Fix a race on command flush flow
+    - NFC: port100: fix use-after-free in port100_send_complete
+    - selftests: pmtu.sh: Kill tcpdump processes launched by subshell.
+    - gpio: ts4900: Do not set DAT and OE together
+    - gianfar: ethtool: Fix refcount leak in gfar_get_ts_info
+    - net: phy: DP83822: clear MISR2 register to disable interrupts
+    - sctp: fix kernel-infoleak for SCTP sockets
+    - net: bcmgenet: Don't claim WOL when its not available
+    - net-sysfs: add check for netdevice being present to speed_show
+    - Revert "xen-netback: remove 'hotplug-status' once it has served its purpose"
+    - Revert "xen-netback: Check for hotplug-status existence before watching"
+    - ipv6: prevent a possible race condition with lifetimes
+    - tracing: Ensure trace buffer is at least 4096 bytes large
+    - selftest/vm: fix map_fixed_noreplace test failure
+    - selftests/memfd: clean up mapping in mfd_fail_write
+    - ARM: Spectre-BHB: provide empty stub for non-config
+    - fuse: fix pipe buffer lifetime for direct_io
+    - staging: gdm724x: fix use after free in gdm_lte_rx()
+    - net: macb: Fix lost RX packet wakeup race in NAPI receive
+    - mmc: meson: Fix usage of meson_mmc_post_req()
+    - riscv: Fix auipc+jalr relocation range checks
+    - arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
+    - virtio: unexport virtio_finalize_features
+    - virtio: acknowledge all features before access
+    - ARM: fix Thumb2 regression with Spectre BHB
+    - ext4: add check to prevent attempting to resize an fs with sparse_super2
+    - x86/cpufeatures: Mark two free bits in word 3
+    - x86/cpu: Add hardware-enforced cache coherency as a CPUID feature
+    - x86/mm/pat: Don't flush cache if hardware enforces cache coherency across
+      encryption domnains
+    - KVM: SVM: Don't flush cache if hardware enforces cache coherency across
+      encryption domains
+    - Linux 5.4.185
+  * Focal update: v5.4.184 upstream stable release (LP: #1969242)
+    - arm/arm64: Provide a wrapper for SMCCC 1.1 calls
+    - arm/arm64: smccc/psci: add arm_smccc_1_1_get_conduit()
+    - ARM: report Spectre v2 status through sysfs
+    - ARM: early traps initialisation
+    - ARM: use LOADADDR() to get load address of sections
+    - [Config] updateconfigs for HARDEN_BRANCH_HISTORY
+    - ARM: Spectre-BHB workaround
+    - ARM: include unprivileged BPF status in Spectre V2 reporting
+    - ARM: fix build error when BPF_SYSCALL is disabled
+    - ARM: fix co-processor register typo
+    - ARM: Do not use NOCROSSREFS directive with ld.lld
+    - ARM: fix build warning in proc-v7-bugs.c
+    - xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
+    - xen/grant-table: add gnttab_try_end_foreign_access()
+    - xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/netfront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
+    - xen/gntalloc: don't use gnttab_query_foreign_access()
+    - xen: remove gnttab_query_foreign_access()
+    - xen/9p: use alloc/free_pages_exact()
+    - xen/pvcalls: use alloc/free_pages_exact()
+    - xen/gnttab: fix gnttab_end_foreign_access() without page specified
+    - xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
+    - Linux 5.4.184
+  * Focal update: v5.4.183 upstream stable release (LP: #1969239)
+    - mac80211_hwsim: report NOACK frames in tx_status
+    - mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
+    - i2c: bcm2835: Avoid clock stretching timeouts
+    - ASoC: rt5668: do not block workqueue if card is unbound
+    - ASoC: rt5682: do not block workqueue if card is unbound
+    - Input: clear BTN_RIGHT/MIDDLE on buttonpads
+    - cifs: fix double free race when mount fails in cifs_get_root()
+    - dmaengine: shdma: Fix runtime PM imbalance on error
+    - i2c: cadence: allow COMPILE_TEST
+    - i2c: qup: allow COMPILE_TEST
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
+    - usb: gadget: don't release an existing dev->buf
+    - usb: gadget: clear related members when goto fail
+    - ata: pata_hpt37x: fix PCI clock detection
+    - ALSA: intel_hdmi: Fix reference to PCM buffer address
+    - ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
+    - xfrm: fix MTU regression
+    - netfilter: fix use-after-free in __nf_register_net_hook()
+    - xfrm: enforce validity of offload input flags
+    - netfilter: nf_queue: don't assume sk is full socket
+    - netfilter: nf_queue: fix possible use-after-free
+    - batman-adv: Request iflink once in batadv-on-batadv check
+    - batman-adv: Request iflink once in batadv_get_real_netdevice
+    - batman-adv: Don't expect inter-netns unique iflink indices
+    - net: dcb: flush lingering app table entries for unregistered devices
+    - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
+    - net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
+    - block: Fix fsync always failed if once failed
+    - xen/netfront: destroy queues before real_num_tx_queues is zeroed
+    - sched/topology: Make sched_init_numa() use a set for the deduplicating sort
+    - sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
+    - ia64: ensure proper NUMA distance and possible map initialization
+    - mac80211: fix forwarded mesh frames AC & queue selection
+    - net: stmmac: fix return value of __setup handler
+    - iavf: Fix missing check for running netdev
+    - net: sxgbe: fix return value of __setup handler
+    - net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
+    - ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
+    - efivars: Respect "block" flag in efivar_entry_set_safe()
+    - firmware: arm_scmi: Remove space in MODULE_ALIAS name
+    - ASoC: cs4265: Fix the duplicated control name
+    - can: gs_usb: change active_channels's type from atomic_t to u8
+    - arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
+    - igc: igc_read_phy_reg_gpy: drop premature return
+    - ARM: Fix kgdb breakpoint for Thumb2
+    - ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
+    - igc: igc_write_phy_reg_gpy: drop premature return
+    - ibmvnic: free reset-work-item when flushing
+    - memfd: fix F_SEAL_WRITE after shmem huge page allocated
+    - soc: fsl: qe: Check of ioremap return value
+    - net: chelsio: cxgb3: check the return value of pci_find_capability()
+    - nl80211: Handle nla_memdup failures in handle_nan_filter
+    - Input: elan_i2c - move regulator_[en|dis]able() out of
+      elan_[en|dis]able_power()
+    - Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
+    - HID: add mapping for KEY_DICTATE
+    - HID: add mapping for KEY_ALL_APPLICATIONS
+    - tracing/histogram: Fix sorting on old "cpu" value
+    - tracing: Fix return value of __setup handlers
+    - btrfs: fix lost prealloc extents beyond eof after full fsync
+    - btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
+    - btrfs: add missing run of delayed items after unlink during log replay
+    - Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
+    - net: dcb: disable softirqs in dcbnl_flush_dev()
+    - hamradio: fix macro redefine warning
+    - Linux 5.4.183
+  * Focal update: v5.4.182 upstream stable release (LP: #1969236)
+    - cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
+    - clk: jz4725b: fix mmc0 clock gating
+    - vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
+    - parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
+    - parisc/unaligned: Fix ldw() and stw() unalignment handlers
+    - drm/amdgpu: disable MMHUB PG for Picasso
+    - sr9700: sanity check for packet length
+    - USB: zaurus: support another broken Zaurus
+    - x86/fpu: Correct pkru/xstate inconsistency
+    - tee: export teedev_open() and teedev_close_context()
+    - optee: use driver internal tee_context for some rpc
+    - lan743x: fix deadlock in lan743x_phy_link_status_change()
+    - ping: remove pr_err from ping_lookup
+    - perf data: Fix double free in perf_session__delete()
+    - bpf: Do not try bpf_msg_push_data with len 0
+    - net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
+    - tipc: Fix end of loop tests for list_for_each_entry()
+    - gso: do not skip outer ip header in case of ipip and net_failover
+    - openvswitch: Fix setting ipv6 fields causing hw csum failure
+    - drm/edid: Always set RGB444
+    - net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
+    - net: ll_temac: check the return value of devm_kmalloc()
+    - net: Force inlining of checksum functions in net/checksum.h
+    - nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
+    - netfilter: nf_tables: fix memory leak during stateful obj update
+    - net/mlx5: Fix possible deadlock on rule deletion
+    - net/mlx5: Fix wrong limitation of metadata match on ecpf
+    - spi: spi-zynq-qspi: Fix a NULL pointer dereference in
+      zynq_qspi_exec_mem_op()
+    - configfs: fix a race in configfs_{,un}register_subsystem()
+    - RDMA/ib_srp: Fix a deadlock
+    - tracing: Have traceon and traceoff trigger honor the instance
+    - iio: adc: men_z188_adc: Fix a resource leak in an error handling path
+    - iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
+    - iio: Fix error handling for PM
+    - ata: pata_hpt37x: disable primary channel on HPT371
+    - Revert "USB: serial: ch341: add new Product ID for CH341A"
+    - usb: gadget: rndis: add spinlock for rndis response list
+    - tracefs: Set the group ownership in apply_options() not parse_options()
+    - USB: serial: option: add support for DW5829e
+    - USB: serial: option: add Telit LE910R1 compositions
+    - usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
+    - usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
+    - xhci: re-initialize the HC during resume if HCE was set
+    - xhci: Prevent futile URB re-submissions due to incorrect return value.
+    - tty: n_gsm: fix encoding of control signal octet bit DV
+    - tty: n_gsm: fix proper link termination after failed open
+    - tty: n_gsm: fix NULL pointer access due to DLCI release
+    - gpio: tegra186: Fix chip_data type confusion
+    - Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of
+      DEVINIT/PREOS/ACR"
+    - memblock: use kfree() to release kmalloced memblock regions
+    - fget: clarify and improve __fget_files() implementation
+    - Linux 5.4.182
+  * CVE-2022-28390
+    - can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
+
+  [ Ubuntu: 5.4.0-113.127 ]
+
+  * focal/linux: 5.4.0-113.127 -proposed tracker (LP: #1973980)
+  * CVE-2022-29581
+    - net/sched: cls_u32: fix netns refcount changes in u32_change()
+  * CVE-2022-1116
+    - io_uring: fix fs->users overflow
+  * ext4: limit length to bitmap_maxbytes (LP: #1972281)
+    - ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
+  * Unprivileged users may use PTRACE_SEIZE to set PTRACE_O_SUSPEND_SECCOMP
+    option (LP: #1972740)
+    - ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Thu, 16 Jun 2022 14:40:57 +0800
+
+linux-imx (5.4.0-1020.21) focal; urgency=medium
+
+  * CVE-2022-23960
+    - [Config] set CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+
+  * Disable unprivileged BPF by default (LP: #1961338)
+    - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+
+  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
+    - [Config] Enable CONFIG_DEBUG_INFO_BTF on all arches
+
+  * Support builtin revoked certificates (LP: #1932029)
+    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
+
+  * Focal update: v5.4.129 upstream stable release (LP: #1936242)
+    - [Config] enable CONFIG_SYSTEM_REVOCATION_LIST
+
+  * Kernel worker blocked for long time on system boot (LP: #1973786)
+    - lan743x: fix deadlock in lan743x_phy_link_status_change()
+
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update Ubuntu.md
+
+  [ Ubuntu: 5.4.0-110.124 ]
+
+  * focal/linux: 5.4.0-110.124 -proposed tracker (LP: #1969053)
+  * net/mlx5e: Fix page DMA map/unmap attributes (LP: #1967292)
+    - net/mlx5e: Fix page DMA map/unmap attributes
+  * xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
+    (LP: #1966803)
+    - xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
+  * LRMv6: add multi-architecture support (LP: #1968774)
+    - [Packaging] resync dkms-build{,--nvidia-N}
+  * xfrm interface cannot be changed anymore (LP: #1968591)
+    - xfrm: fix the if_id check in changelink
+  * Use kernel-testing repo from launchpad for ADT tests (LP: #1968016)
+    - [Debian] Use kernel-testing repo from launchpad
+  * vmx_ldtr_test in ubuntu_kvm_unit_tests failed (FAIL: Expected 0 for L1 LDTR
+    selector (got 50)) (LP: #1956315)
+    - KVM: nVMX: Set LDTR to its architecturally defined value on nested VM-Exit
+  * [SRU][Regression] Revert "PM: ACPI: reboot: Use S5 for reboot" which causes
+    Bus Fatal Error when rebooting system with BCM5720 NIC (LP: #1917471)
+    - Revert "PM: ACPI: reboot: Use S5 for reboot"
+  * Focal update: v5.4.181 upstream stable release (LP: #1967582)
+    - Makefile.extrawarn: Move -Wunaligned-access to W=1
+    - HID:Add support for UGTABLET WP5540
+    - Revert "svm: Add warning message for AVIC IPI invalid target"
+    - serial: parisc: GSC: fix build when IOSAPIC is not set
+    - parisc: Drop __init from map_pages declaration
+    - parisc: Fix data TLB miss in sba_unmap_sg
+    - parisc: Fix sglist access in ccio-dma.c
+    - btrfs: send: in case of IO error log it
+    - platform/x86: ISST: Fix possible circular locking dependency detected
+    - selftests: rtc: Increase test timeout so that all tests run
+    - net: ieee802154: at86rf230: Stop leaking skb's
+    - selftests/zram: Skip max_comp_streams interface on newer kernel
+    - selftests/zram01.sh: Fix compression ratio calculation
+    - selftests/zram: Adapt the situation that /dev/zram0 is being used
+    - ax25: improve the incomplete fix to avoid UAF and NPD bugs
+    - vfs: make freeze_super abort when sync_filesystem returns error
+    - quota: make dquot_quota_sync return errors from ->sync_fs
+    - nvme: fix a possible use-after-free in controller reset during load
+    - nvme-tcp: fix possible use-after-free in transport error_recovery work
+    - nvme-rdma: fix possible use-after-free in transport error_recovery work
+    - drm/amdgpu: fix logic inversion in check
+    - Revert "module, async: async_synchronize_full() on module init iff async is
+      used"
+    - ftrace: add ftrace_init_nop()
+    - module/ftrace: handle patchable-function-entry
+    - arm64: module: rework special section handling
+    - arm64: module/ftrace: intialize PLT at load time
+    - iwlwifi: fix use-after-free
+    - drm/radeon: Fix backlight control on iMac 12,1
+    - ext4: check for out-of-order index extents in ext4_valid_extent_entries()
+    - ext4: check for inconsistent extents between index and leaf block
+    - ext4: prevent partial update of the extent blocks
+    - taskstats: Cleanup the use of task->exit_code
+    - dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
+    - vsock: remove vsock from connected table when connect is interrupted by a
+      signal
+    - mmc: block: fix read single on recovery logic
+    - iwlwifi: pcie: fix locking when "HW not ready"
+    - iwlwifi: pcie: gen2: fix locking when "HW not ready"
+    - netfilter: nft_synproxy: unregister hooks on init error path
+    - net: dsa: lan9303: fix reset on probe
+    - net: ieee802154: ca8210: Fix lifs/sifs periods
+    - ping: fix the dif and sdif check in ping_lookup
+    - bonding: force carrier update when releasing slave
+    - drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
+    - bonding: fix data-races around agg_select_timer
+    - libsubcmd: Fix use-after-free for realloc(..., 0)
+    - ALSA: hda: Fix regression on forced probe mask option
+    - ALSA: hda: Fix missing codec probe on Shenker Dock 15
+    - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
+    - ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
+    - powerpc/lib/sstep: fix 'ptesync' build error
+    - mtd: rawnand: gpmi: don't leak PM reference in error path
+    - block/wbt: fix negative inflight counter when remove scsi device
+    - NFS: LOOKUP_DIRECTORY is also ok with symlinks
+    - NFS: Do not report writeback errors in nfs_getattr()
+    - mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
+    - mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
+    - scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
+    - EDAC: Fix calculation of returned address and next offset in
+      edac_align_ptr()
+    - net: sched: limit TC_ACT_REPEAT loops
+    - dmaengine: sh: rcar-dmac: Check for error num after setting mask
+    - copy_process(): Move fd_install() out of sighand->siglock critical section
+    - i2c: brcmstb: fix support for DSL and CM variants
+    - Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
+    - KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
+    - ARM: OMAP2+: hwmod: Add of_node_put() before break
+    - ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
+    - irqchip/sifive-plic: Add missing thead,c900-plic match string
+    - netfilter: conntrack: don't refresh sctp entries in closed state
+    - arm64: dts: meson-gx: add ATF BL32 reserved-memory region
+    - arm64: dts: meson-g12: add ATF BL32 reserved-memory region
+    - arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
+    - kconfig: let 'shell' return enough output for deep path names
+    - ata: libata-core: Disable TRIM on M88V29
+    - drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+    - tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+    - net: usb: qmi_wwan: Add support for Dell DW5829e
+    - net: macb: Align the dma and coherent dma masks
+    - kconfig: fix failing to generate auto.conf
+    - Linux 5.4.181
+  * Focal update: v5.4.180 upstream stable release (LP: #1966118)
+    - integrity: check the return value of audit_log_start()
+    - ima: Remove ima_policy file before directory
+    - ima: Allow template selection with ima_template[_fmt]= after ima_hash=
+    - ima: Do not print policy rule with inactive LSM labels
+    - mmc: sdhci-of-esdhc: Check for error num after setting mask
+    - net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs
+    - net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs
+    - NFS: Fix initialisation of nfs_client cl_flags field
+    - NFSD: Clamp WRITE offsets
+    - NFSD: Fix offset type in I/O trace points
+    - NFSv4 only print the label when its queried
+    - nfs: nfs4clinet: check the return value of kstrdup()
+    - NFSv4.1: Fix uninitialised variable in devicenotify
+    - NFSv4 remove zero number of fs_locations entries error check
+    - NFSv4 expose nfs_parse_server_name function
+    - drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer
+    - net: sched: Clarify error message when qdisc kind is unknown
+    - scsi: target: iscsi: Make sure the np under each tpg is unique
+    - scsi: qedf: Fix refcount issue when LOGO is received during TMF
+    - scsi: myrs: Fix crash in error case
+    - PM: hibernate: Remove register_nosave_region_late()
+    - usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
+    - net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()
+    - KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER
+    - riscv: fix build with binutils 2.38
+    - ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
+    - ARM: socfpga: fix missing RESET_CONTROLLER
+    - nvme-tcp: fix bogus request completion when failing to send AER
+    - ACPI/IORT: Check node revision for PMCG resources
+    - PM: s2idle: ACPI: Fix wakeup interrupts handling
+    - net: bridge: fix stale eth hdr pointer in br_dev_xmit
+    - perf probe: Fix ppc64 'perf probe add events failed' case
+    - ARM: dts: meson: Fix the UART compatible strings
+    - staging: fbtft: Fix error path in fbtft_driver_module_init()
+    - ARM: dts: imx6qdl-udoo: Properly describe the SD card detect
+    - usb: f_fs: Fix use-after-free for epfile
+    - misc: fastrpc: avoid double fput() on failed usercopy
+    - ixgbevf: Require large buffers for build_skb on 82599VF
+    - bonding: pair enable_port with slave_arr_updates
+    - ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path
+    - nfp: flower: fix ida_idx not being released
+    - net: do not keep the dst cache when uncloning an skb dst and its metadata
+    - net: fix a memleak when uncloning an skb dst and its metadata
+    - veth: fix races around rq->rx_notify_masked
+    - net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE
+    - tipc: rate limit warning for received illegal binding update
+    - net: amd-xgbe: disable interrupts during pci removal
+    - vt_ioctl: fix array_index_nospec in vt_setactivate
+    - vt_ioctl: add array_index_nospec to VT_ACTIVATE
+    - n_tty: wake up poll(POLLRDNORM) on receiving data
+    - eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX
+    - net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup
+    - usb: ulpi: Move of_node_put to ulpi_dev_release
+    - usb: ulpi: Call of_node_put correctly
+    - usb: dwc3: gadget: Prevent core from processing stale TRBs
+    - usb: gadget: udc: renesas_usb3: Fix host to USB_ROLE_NONE transition
+    - USB: gadget: validate interface OS descriptor requests
+    - usb: gadget: rndis: check size of RNDIS_MSG_SET command
+    - usb: gadget: f_uac2: Define specific wTerminalType
+    - USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320
+    - USB: serial: option: add ZTE MF286D modem
+    - USB: serial: ch341: add support for GW Instek USB2.0-Serial devices
+    - USB: serial: cp210x: add NCR Retail IO box id
+    - USB: serial: cp210x: add CPI Bulk Coin Recycler id
+    - seccomp: Invalidate seccomp mode to catch death failures
+    - hwmon: (dell-smm) Speed up setting of fan speed
+    - scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled
+    - perf: Fix list corruption in perf_cgroup_switch()
+    - Linux 5.4.180
+  * Focal update: v5.4.179 upstream stable release (LP: #1965591)
+    - moxart: fix potential use-after-free on remove path
+    - Linux 5.4.179
+  * CVE-2020-27820
+    - drm/nouveau: Add a dedicated mutex for the clients list
+    - drm/nouveau: clean up all clients on device removal
+  * CVE-2022-1016
+    - netfilter: nf_tables: initialize registers in nft_do_chain()
+  * CVE-2022-27223
+    - USB: gadget: validate endpoint index for xilinx udc
+  * CVE-2022-26490
+    - nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
+  * CVE-2021-26401
+    - x86/speculation: Use generic retpoline by default on AMD
+    - x86/speculation: Update link to AMD speculation whitepaper
+    - x86/speculation: Warn about Spectre v2 LFENCE mitigation
+    - x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
+  * CVE-2022-0001
+    - x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation
+      reporting
+
+  [ Ubuntu: 5.4.0-109.123 ]
+
+  * focal/linux: 5.4.0-109.123 -proposed tracker (LP: #1968290)
+  * USB devices not detected during boot on USB 3.0 hubs (LP: #1968210)
+    - SAUCE: Revert "Revert "xhci: Set HCD flag to defer primary roothub
+      registration""
+    - SAUCE: Revert "Revert "usb: core: hcd: Add support for deferring roothub
+      registration""
+
+  [ Ubuntu: 5.4.0-108.122 ]
+
+  * focal/linux: 5.4.0-108.122 -proposed tracker (LP: #1966740)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5
+    - debian/dkms-versions -- update from kernel-versions (main/2022.03.21)
+  * Low RX performance for 40G Solarflare NICs (LP: #1964512)
+    - SAUCE: sfc: The size of the RX recycle ring should be more flexible
+  * [UBUNTU 20.04] KVM: Enable storage key checking for intercepted instruction
+    (LP: #1962831)
+    - selftests: kvm: add _vm_ioctl
+    - selftests: kvm: Introduce the TEST_FAIL macro
+    - KVM: selftests: Add GUEST_ASSERT variants to pass values to host
+    - KVM: s390: gaccess: Refactor gpa and length calculation
+    - KVM: s390: gaccess: Refactor access address range check
+    - KVM: s390: gaccess: Cleanup access to guest pages
+    - s390/uaccess: introduce bit field for OAC specifier
+    - s390/uaccess: fix compile error
+    - s390/uaccess: Add copy_from/to_user_key functions
+    - KVM: s390: Honor storage keys when accessing guest memory
+    - KVM: s390: handle_tprot: Honor storage keys
+    - KVM: s390: selftests: Test TEST PROTECTION emulation
+    - KVM: s390: Add optional storage key checking to MEMOP IOCTL
+    - KVM: s390: Add vm IOCTL for key checked guest absolute memory access
+    - KVM: s390: Rename existing vcpu memop functions
+    - KVM: s390: Add capability for storage key extension of MEM_OP IOCTL
+    - KVM: s390: Update api documentation for memop ioctl
+    - KVM: s390: Clarify key argument for MEM_OP in api docs
+    - KVM: s390: Add missing vm MEM_OP size check
+  * 【sec-0911】 fail to reset sec module (LP: #1943301)
+    - crypto: hisilicon/sec2 - Add workqueue for SEC driver.
+    - crypto: hisilicon/sec2 - update SEC initialization and reset
+  * Lots of hisi_qm zombie task slow down system after stress test
+    (LP: #1932117)
+    - crypto: hisilicon - Use one workqueue per qm instead of per qp
+  * Lots of hisi_qm zombie task slow down system after stress test
+    (LP: #1932117) // 【sec-0911】 fail to reset sec module (LP: #1943301)
+    - crypto: hisilicon - Unify hardware error init/uninit into QM
+  * [UBUNTU 20.04] Fix SIGP processing on KVM/s390 (LP: #1962578)
+    - KVM: s390: Simplify SIGP Set Arch handling
+    - KVM: s390: Add a routine for setting userspace CPU state
+  * Move virtual graphics drivers from linux-modules-extra to linux-modules
+    (LP: #1960633)
+    - [Packaging] Move VM DRM drivers into modules
+  * Focal update: v5.4.178 upstream stable release (LP: #1964634)
+    - audit: improve audit queue handling when "audit=1" on cmdline
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw()
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()
+    - ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx()
+    - ALSA: usb-audio: Simplify quirk entries with a macro
+    - ALSA: hda/realtek: Add quirk for ASUS GU603
+    - ALSA: hda/realtek: Add missing fixup-model entry for Gigabyte X570 ALC1220
+      quirks
+    - ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer
+      chipset)
+    - ALSA: hda/realtek: Fix silent output on Gigabyte X570 Aorus Xtreme after
+      reboot from Windows
+    - btrfs: fix deadlock between quota disable and qgroup rescan worker
+    - drm/nouveau: fix off by one in BIOS boundary checking
+    - mm/kmemleak: avoid scanning potential huge holes
+    - block: bio-integrity: Advance seed correctly for larger interval sizes
+    - memcg: charge fs_context and legacy_fs_context
+    - IB/rdmavt: Validate remote_addr during loopback atomic tests
+    - RDMA/siw: Fix broken RDMA Read Fence/Resume logic.
+    - RDMA/mlx4: Don't continue event handler after memory allocation failure
+    - iommu/vt-d: Fix potential memory leak in intel_setup_irq_remapping()
+    - iommu/amd: Fix loop timeout issue in iommu_ga_log_enable()
+    - spi: bcm-qspi: check for valid cs before applying chip select
+    - spi: mediatek: Avoid NULL pointer crash in interrupt
+    - spi: meson-spicc: add IRQ check in meson_spicc_probe
+    - net: ieee802154: hwsim: Ensure proper channel selection at probe time
+    - net: ieee802154: mcr20a: Fix lifs/sifs periods
+    - net: ieee802154: ca8210: Stop leaking skb's
+    - net: ieee802154: Return meaningful error codes from the netlink helpers
+    - net: macsec: Verify that send_sci is on when setting Tx sci explicitly
+    - net: stmmac: dump gmac4 DMA registers correctly
+    - net: stmmac: ensure PTP time register reads are consistent
+    - drm/i915/overlay: Prevent divide by zero bugs in scaling
+    - ASoC: fsl: Add missing error handling in pcm030_fabric_probe
+    - ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period bytes
+    - ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name
+    - ASoC: max9759: fix underflow in speaker_gain_control_put()
+    - pinctrl: bcm2835: Fix a few error paths
+    - scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe
+    - nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client.
+    - selftests: futex: Use variable MAKE instead of make
+    - rtc: cmos: Evaluate century appropriate
+    - EDAC/altera: Fix deferred probing
+    - EDAC/xgene: Fix deferred probing
+    - ext4: fix error handling in ext4_restore_inline_data()
+    - cgroup/cpuset: Fix "suspicious RCU usage" lockdep warning
+    - Linux 5.4.178
+  * Focal update: v5.4.177 upstream stable release (LP: #1964628)
+    - PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
+    - psi: Fix uaf issue when psi trigger is destroyed while being polled
+    - ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
+    - net: amd-xgbe: ensure to reset the tx_timer_active flag
+    - net: amd-xgbe: Fix skb data length underflow
+    - rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink()
+    - cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask()
+    - af_packet: fix data-race in packet_setsockopt / packet_setsockopt
+    - Linux 5.4.177
+  * Focal update: v5.4.176 upstream stable release (LP: #1962345)
+    - s390/hypfs: include z/VM guests with access control group set
+    - scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP
+      devices
+    - udf: Restore i_lenAlloc when inode expansion fails
+    - udf: Fix NULL ptr deref when converting from inline format
+    - PM: wakeup: simplify the output logic of pm_show_wakelocks()
+    - tracing/histogram: Fix a potential memory leak for kstrdup()
+    - tracing: Don't inc err_log entry count if entry allocation fails
+    - fsnotify: fix fsnotify hooks in pseudo filesystems
+    - drm/etnaviv: relax submit size limits
+    - arm64: errata: Fix exec handling in erratum 1418040 workaround
+    - netfilter: nft_payload: do not update layer 4 checksum when mangling
+      fragments
+    - serial: 8250: of: Fix mapped region size when using reg-offset property
+    - serial: stm32: fix software flow control transfer
+    - tty: n_gsm: fix SW flow control encoding/handling
+    - tty: Add support for Brainboxes UC cards.
+    - usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
+    - usb: common: ulpi: Fix crash in ulpi_match()
+    - usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
+    - USB: core: Fix hang in usb_kill_urb by adding memory barriers
+    - usb: typec: tcpm: Do not disconnect while receiving VBUS off
+    - ucsi_ccg: Check DEV_INT bit only when starting CCG4
+    - net: sfp: ignore disabled SFP node
+    - powerpc/32: Fix boot failure with GCC latent entropy plugin
+    - i40e: Increase delay to 1 s after global EMP reset
+    - i40e: Fix issue when maximum queues is exceeded
+    - i40e: Fix queues reservation for XDP
+    - i40e: fix unsigned stat widths
+    - rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
+    - rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
+    - scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
+    - ipv6_tunnel: Rate limit warning messages
+    - net: fix information leakage in /proc/net/ptype
+    - hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
+    - hwmon: (lm90) Mark alert as broken for MAX6680
+    - ping: fix the sk_bound_dev_if match in ping_lookup
+    - ipv4: avoid using shared IP generator for connected sockets
+    - hwmon: (lm90) Reduce maximum conversion rate for G781
+    - NFSv4: Handle case where the lookup of a directory fails
+    - NFSv4: nfs_atomic_open() can race when looking up a non-regular file
+    - net-procfs: show net devices bound packet types
+    - drm/msm: Fix wrong size calculation
+    - drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
+    - drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
+    - ipv6: annotate accesses to fn->fn_sernum
+    - NFS: Ensure the server has an up to date ctime before hardlinking
+    - NFS: Ensure the server has an up to date ctime before renaming
+    - netfilter: conntrack: don't increment invalid counter on NF_REPEAT
+    - net: phy: broadcom: hook up soft_reset for BCM54616S
+    - phylib: fix potential use-after-free
+    - rxrpc: Adjust retransmission backoff
+    - hwmon: (lm90) Mark alert as broken for MAX6654
+    - ibmvnic: init ->running_cap_crqs early
+    - ibmvnic: don't spin in tasklet
+    - drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
+    - yam: fix a memory leak in yam_siocdevprivate()
+    - net: hns3: handle empty unknown interrupt for VF
+    - ipv4: raw: lock the socket in raw_bind()
+    - ipv4: tcp: send zero IPID in SYNACK messages
+    - ipv4: remove sparse error in ip_neigh_gw4()
+    - dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
+    - fsnotify: invalidate dcache before IN_DELETE event
+    - block: Fix wrong offset in bio_truncate()
+    - mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
+    - Linux 5.4.176
+  * Focal update: v5.4.175 upstream stable release (LP: #1962330)
+    - rcu: Tighten rcu_advance_cbs_nowake() checks
+    - pinctrl: bcm2835: Drop unused define
+    - pinctrl: bcm2835: Refactor platform data
+    - pinctrl: bcm2835: Add support for all GPIOs on BCM2711
+    - pinctrl: bcm2835: Match BCM7211 compatible string
+    - pinctrl: bcm2835: Add support for wake-up interrupts
+    - pinctrl: bcm2835: Change init order for gpio hogs
+    - ARM: dts: gpio-ranges property is now required
+    - mmc: sdhci-esdhc-imx: disable CMDQ support
+    - select: Fix indefinitely sleeping task in poll_schedule_timeout()
+    - Linux 5.4.175
+
+  [ Ubuntu: 5.4.0-107.121 ]
+
+  * focal/linux: 5.4.0-107.121 -proposed tracker (LP: #1966275)
+  * CVE-2022-27666
+    - esp: Fix possible buffer overflow in ESP transformation
+  * CVE-2022-1055
+    - net: sched: fix use-after-free in tc_new_tfilter()
+  * Pick fixup from v5.4.176 upstream stable release to address cert
+    failure with clock jitter test in NUC7i3DNHE (LP: #1964204)
+    - Bluetooth: refactor malicious adv data check
+
+  [ Ubuntu: 5.4.0-105.119 ]
+
+  * CVE-2022-0847
+    - lib/iov_iter: initialize "flags" in new pipe_buffer
+  * Broken network on some AWS instances with focal/impish kernels
+    (LP: #1961968)
+    - SAUCE: Revert "PCI/MSI: Mask MSI-X vectors only on success"
+  * [UBUNTU 20.04] kernel: Add support for CPU-MF counter second version 7
+    (LP: #1960182)
+    - s390/cpumf: Support for CPU Measurement Facility CSVN 7
+    - s390/cpumf: Support for CPU Measurement Sampling Facility LS bit
+  * Hipersocket page allocation failure on Ubuntu 20.04 based SSC environments
+    (LP: #1959529)
+    - s390/qeth: use memory reserves to back RX buffers
+  * CVE-2022-0516
+    - KVM: s390: Return error on SIDA memop on normal guest
+  * CVE-2022-0435
+    - tipc: improve size validations for received domain records
+  * CVE-2022-0492
+    - cgroup-v1: Require capabilities to set release_agent
+  * Recalled NFSv4 files delegations overwhelm server (LP: #1957986)
+    - NFSv4: Fix delegation handling in update_open_stateid()
+    - NFSv4: nfs4_callback_getattr() should ignore revoked delegations
+    - NFSv4: Delegation recalls should not find revoked delegations
+    - NFSv4: fail nfs4_refresh_delegation_stateid() when the delegation was
+      revoked
+    - NFS: Rename nfs_inode_return_delegation_noreclaim()
+    - NFSv4: Don't remove the delegation from the super_list more than once
+    - NFSv4: Hold the delegation spinlock when updating the seqid
+    - NFSv4: Clear the NFS_DELEGATION_REVOKED flag in
+      nfs_update_inplace_delegation()
+    - NFSv4: Update the stateid seqid in nfs_revoke_delegation()
+    - NFSv4: Revoke the delegation on success in nfs4_delegreturn_done()
+    - NFSv4: Ignore requests to return the delegation if it was revoked
+    - NFSv4: Don't reclaim delegations that have been returned or revoked
+    - NFSv4: nfs4_return_incompatible_delegation() should check delegation
+      validity
+    - NFSv4: Fix nfs4_inode_make_writeable()
+    - NFS: nfs_inode_find_state_and_recover() fix stateid matching
+    - NFSv4: Fix races between open and delegreturn
+    - NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn
+    - NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done()
+    - NFSv4: nfs_inode_evict_delegation() should set NFS_DELEGATION_RETURNING
+    - NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is returned
+    - NFSv4: Try to return the delegation immediately when marked for return on
+      close
+    - NFSv4: Add accounting for the number of active delegations held
+    - NFSv4: Limit the total number of cached delegations
+    - NFSv4: Ensure the delegation is pinned in nfs_do_return_delegation()
+    - NFSv4: Ensure the delegation cred is pinned when we call delegreturn
+  * Focal update: v5.4.174 upstream stable release (LP: #1960566)
+    - HID: uhid: Fix worker destroying device without any protection
+    - HID: wacom: Reset expected and received contact counts at the same time
+    - HID: wacom: Ignore the confidence flag when a touch is removed
+    - HID: wacom: Avoid using stale array indicies to read contact count
+    - f2fs: fix to do sanity check in is_alive()
+    - nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed
+      bind()
+    - mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
+    - mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
+    - x86/gpu: Reserve stolen memory for first integrated Intel GPU
+    - tools/nolibc: x86-64: Fix startup code bug
+    - tools/nolibc: i386: fix initial stack alignment
+    - tools/nolibc: fix incorrect truncation of exit code
+    - rtc: cmos: take rtc_lock while reading from CMOS
+    - media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
+    - media: flexcop-usb: fix control-message timeouts
+    - media: mceusb: fix control-message timeouts
+    - media: em28xx: fix control-message timeouts
+    - media: cpia2: fix control-message timeouts
+    - media: s2255: fix control-message timeouts
+    - media: dib0700: fix undefined behavior in tuner shutdown
+    - media: redrat3: fix control-message timeouts
+    - media: pvrusb2: fix control-message timeouts
+    - media: stk1160: fix control-message timeouts
+    - can: softing_cs: softingcs_probe(): fix memleak on registration failure
+    - lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
+    - iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
+    - dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
+    - PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
+    - mm_zone: add function to check if managed dma zone exists
+    - mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed
+      pages
+    - shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
+    - drm/rockchip: dsi: Hold pm-runtime across bind/unbind
+    - drm/rockchip: dsi: Reconfigure hardware on resume()
+    - drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
+    - drm/panel: innolux-p079zca: Delete panel on attach() failure
+    - drm/rockchip: dsi: Fix unbalanced clock on probe error
+    - Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
+    - clk: bcm-2835: Pick the closest clock rate
+    - clk: bcm-2835: Remove rounding up the dividers
+    - wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
+    - wcn36xx: Release DMA channel descriptor allocations
+    - media: videobuf2: Fix the size printk format
+    - media: aspeed: fix mode-detect always time out at 2nd run
+    - media: em28xx: fix memory leak in em28xx_init_dev
+    - media: aspeed: Update signal status immediately to ensure sane hw state
+    - arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
+    - arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
+    - Bluetooth: stop proccessing malicious adv data
+    - tee: fix put order in teedev_close_context()
+    - media: dmxdev: fix UAF when dvb_register_device() fails
+    - crypto: qce - fix uaf on qce_ahash_register_one
+    - arm64: dts: ti: k3-j721e: correct cache-sets info
+    - tty: serial: atmel: Check return code of dmaengine_submit()
+    - tty: serial: atmel: Call dma_async_issue_pending()
+    - media: rcar-csi2: Correct the selection of hsfreqrange
+    - media: imx-pxp: Initialize the spinlock prior to using it
+    - media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
+    - media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
+    - media: venus: core: Fix a resource leak in the error handling path of
+      'venus_probe()'
+    - netfilter: bridge: add support for pppoe filtering
+    - arm64: dts: qcom: msm8916: fix MMC controller aliases
+    - ACPI: EC: Rework flushing of EC work while suspended to idle
+    - drm/amdgpu: Fix a NULL pointer dereference in
+      amdgpu_connector_lcd_native_mode()
+    - drm/radeon/radeon_kms: Fix a NULL pointer dereference in
+      radeon_driver_open_kms()
+    - arm64: dts: ti: k3-j721e: Fix the L2 cache sets
+    - tty: serial: uartlite: allow 64 bit address
+    - serial: amba-pl011: do not request memory region twice
+    - floppy: Fix hang in watchdog when disk is ejected
+    - staging: rtl8192e: return error code from rtllib_softmac_init()
+    - staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
+    - Bluetooth: btmtksdio: fix resume failure
+    - media: dib8000: Fix a memleak in dib8000_init()
+    - media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
+    - media: si2157: Fix "warm" tuner state detection
+    - sched/rt: Try to restart rt period timer when rt runtime exceeded
+    - rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
+    - mwifiex: Fix possible ABBA deadlock
+    - xfrm: fix a small bug in xfrm_sa_len()
+    - crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
+    - crypto: stm32/cryp - fix double pm exit
+    - crypto: stm32/cryp - fix lrw chaining mode
+    - ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
+    - media: dw2102: Fix use after free
+    - media: msi001: fix possible null-ptr-deref in msi001_probe()
+    - media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
+    - drm/msm/dpu: fix safe status debugfs file
+    - drm/bridge: ti-sn65dsi86: Set max register for regmap
+    - media: hantro: Fix probe func error path
+    - xfrm: interface with if_id 0 should return error
+    - xfrm: state and policy should fail if XFRMA_IF_ID 0
+    - ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
+    - usb: ftdi-elan: fix memory leak on device disconnect
+    - ARM: dts: armada-38x: Add generic compatible to UART nodes
+    - mmc: meson-mx-sdio: add IRQ check
+    - selinux: fix potential memleak in selinux_add_opt()
+    - bpftool: Enable line buffering for stdout
+    - x86/mce/inject: Avoid out-of-bounds write when setting flags
+    - ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
+    - pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+      __nonstatic_find_io_region()
+    - pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
+      nonstatic_find_mem_region()
+    - netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
+    - bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
+    - ppp: ensure minimum packet size in ppp_write()
+    - rocker: fix a sleeping in atomic bug
+    - staging: greybus: audio: Check null pointer
+    - fsl/fman: Check for null pointer after calling devm_ioremap
+    - Bluetooth: hci_bcm: Check for error irq
+    - HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_get_str_desc
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_huion_init
+    - HID: hid-uclogic-params: Invalid parameter check in
+      uclogic_params_frame_init_v1_buttonpad
+    - debugfs: lockdown: Allow reading debugfs files that are not world readable
+    - net/mlx5e: Don't block routes with nexthop objects in SW
+    - Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
+    - net/mlx5: Set command entry semaphore up once got index free
+    - spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
+    - tpm: add request_locality before write TPM_INT_ENABLE
+    - can: softing: softing_startstop(): fix set but not used variable warning
+    - can: xilinx_can: xcan_probe(): check for error irq
+    - pcmcia: fix setting of kthread task states
+    - net: mcs7830: handle usb read errors properly
+    - ext4: avoid trim error on fs with small groups
+    - ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
+    - ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
+    - ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
+    - RDMA/hns: Validate the pkey index
+    - clk: imx8mn: Fix imx8mn_clko1_sels
+    - powerpc/prom_init: Fix improper check of prom_getprop()
+    - ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
+    - ALSA: oss: fix compile error when OSS_DEBUG is enabled
+    - char/mwave: Adjust io port register size
+    - binder: fix handling of error during copy
+    - iommu/io-pgtable-arm: Fix table descriptor paddr formatting
+    - scsi: ufs: Fix race conditions related to driver data
+    - PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
+    - powerpc/powermac: Add additional missing lockdep_register_key()
+    - RDMA/core: Let ib_find_gid() continue search even after empty entry
+    - RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
+    - ASoC: rt5663: Handle device_property_read_u32_array error codes
+    - clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system
+      enter shell
+    - dmaengine: pxa/mmp: stop referencing config->slave_id
+    - iommu/iova: Fix race between FQ timeout and teardown
+    - phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
+    - ASoC: samsung: idma: Check of ioremap return value
+    - misc: lattice-ecp3-config: Fix task hung when firmware load failed
+    - mips: lantiq: add support for clk_set_parent()
+    - mips: bcm63xx: add support for clk_set_parent()
+    - RDMA/cxgb4: Set queue pair state when being queried
+    - of: base: Fix phandle argument length mismatch error message
+    - Bluetooth: Fix debugfs entry leak in hci_register_dev()
+    - fs: dlm: filter user dlm messages for kernel locks
+    - drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
+    - ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
+    - drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
+    - ARM: shmobile: rcar-gen2: Add missing of_node_put()
+    - batman-adv: allow netlink usage in unprivileged containers
+    - usb: gadget: f_fs: Use stream_open() for endpoint files
+    - drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
+    - HID: apple: Do not reset quirks when the Fn key is not found
+    - media: b2c2: Add missing check in flexcop_pci_isr:
+    - EDAC/synopsys: Use the quirk for version instead of ddr version
+    - mlxsw: pci: Add shutdown method in PCI driver
+    - drm/bridge: megachips: Ensure both bridges are probed before registration
+    - gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
+    - HSI: core: Fix return freed object in hsi_new_client
+    - mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
+    - rsi: Fix use-after-free in rsi_rx_done_handler()
+    - rsi: Fix out-of-bounds read in rsi_read_pkt()
+    - usb: uhci: add aspeed ast2600 uhci support
+    - floppy: Add max size check for user space request
+    - x86/mm: Flush global TLB when switching to trampoline page-table
+    - media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
+    - media: saa7146: hexium_orion: Fix a NULL pointer dereference in
+      hexium_attach()
+    - media: m920x: don't use stack on USB reads
+    - iwlwifi: mvm: synchronize with FW after multicast commands
+    - ath10k: Fix tx hanging
+    - net-sysfs: update the queue counts in the unregistration path
+    - net: phy: prefer 1000baseT over 1000baseKX
+    - gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
+    - x86/mce: Mark mce_panic() noinstr
+    - x86/mce: Mark mce_end() noinstr
+    - x86/mce: Mark mce_read_aux() noinstr
+    - net: bonding: debug: avoid printing debug logs when bond is not notifying
+      peers
+    - bpf: Do not WARN in bpf_warn_invalid_xdp_action()
+    - HID: quirks: Allow inverting the absolute X/Y values
+    - media: igorplugusb: receiver overflow should be reported
+    - media: saa7146: hexium_gemini: Fix a NULL pointer dereference in
+      hexium_attach()
+    - mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
+    - audit: ensure userspace is penalized the same as the kernel when under
+      pressure
+    - arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
+    - arm64: tegra: Adjust length of CCPLEX cluster MMIO region
+    - cpufreq: Fix initialization of min and max frequency QoS requests
+    - usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
+    - ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
+    - iwlwifi: fix leaks/bad data after failed firmware load
+    - iwlwifi: remove module loading failure message
+    - iwlwifi: mvm: Fix calculation of frame length
+    - um: registers: Rename function names to avoid conflicts and build problems
+    - jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
+    - ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
+    - ACPICA: Utilities: Avoid deleting the same object twice in a row
+    - ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
+    - ACPICA: Fix wrong interpretation of PCC address
+    - ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
+    - drm/amdgpu: fixup bad vram size on gmc v8
+    - ACPI: battery: Add the ThinkPad "Not Charging" quirk
+    - btrfs: remove BUG_ON() in find_parent_nodes()
+    - btrfs: remove BUG_ON(!eie) in find_parent_nodes
+    - net: mdio: Demote probed message to debug print
+    - mac80211: allow non-standard VHT MCS-10/11
+    - dm btree: add a defensive bounds check to insert_at()
+    - dm space map common: add bounds check to sm_ll_lookup_bitmap()
+    - net: phy: marvell: configure RGMII delays for 88E1118
+    - net: gemini: allow any RGMII interface mode
+    - regulator: qcom_smd: Align probe function with rpmh-regulator
+    - serial: pl010: Drop CR register reset on set_termios
+    - serial: core: Keep mctrl register state and cached copy in sync
+    - random: do not throw away excess input to crng_fast_load
+    - parisc: Avoid calling faulthandler_disabled() twice
+    - powerpc/6xx: add missing of_node_put
+    - powerpc/powernv: add missing of_node_put
+    - powerpc/cell: add missing of_node_put
+    - powerpc/btext: add missing of_node_put
+    - powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
+    - i2c: i801: Don't silently correct invalid transfer size
+    - powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
+    - i2c: mpc: Correct I2C reset procedure
+    - clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
+    - powerpc/powermac: Add missing lockdep_register_key()
+    - KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
+    - w1: Misuse of get_user()/put_user() reported by sparse
+    - scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
+    - ALSA: seq: Set upper limit of processed events
+    - powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
+    - MIPS: OCTEON: add put_device() after of_find_device_by_node()
+    - i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
+    - MIPS: Octeon: Fix build errors using clang
+    - scsi: sr: Don't use GFP_DMA
+    - ASoC: mediatek: mt8173: fix device_node leak
+    - power: bq25890: Enable continuous conversion for ADC at charging
+    - rpmsg: core: Clean up resources on announce_create failure.
+    - crypto: omap-aes - Fix broken pm_runtime_and_get() usage
+    - crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
+    - crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
+    - ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
+    - fuse: Pass correct lend value to filemap_write_and_wait_range()
+    - serial: Fix incorrect rs485 polarity on uart open
+    - cputime, cpuacct: Include guest time in user time in cpuacct.stat
+    - tracing/kprobes: 'nmissed' not showed correctly for kretprobe
+    - iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
+    - s390/mm: fix 2KB pgtable release race
+    - drm/etnaviv: limit submit sizes
+    - drm/nouveau/kms/nv04: use vzalloc for nv04_display
+    - drm/bridge: analogix_dp: Make PSR-exit block less
+    - PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
+    - PCI: pci-bridge-emul: Correctly set PCIe capabilities
+    - PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
+    - xfrm: fix policy lookup for ipv6 gre packets
+    - btrfs: fix deadlock between quota enable and other quota operations
+    - btrfs: check the root node for uptodate before returning it
+    - btrfs: respect the max size in the header when activating swap file
+    - ext4: make sure to reset inode lockdep class when quota enabling fails
+    - ext4: make sure quota gets properly shutdown on error
+    - ext4: set csum seed in tmp inode while migrating to extents
+    - ext4: Fix BUG_ON in ext4_bread when write quota data
+    - ext4: don't use the orphan list when migrating an inode
+    - drm/radeon: fix error handling in radeon_driver_open_kms
+    - of: base: Improve argument length mismatch error
+    - firmware: Update Kconfig help text for Google firmware
+    - media: rcar-csi2: Optimize the selection PHTW register
+    - Documentation: dmaengine: Correctly describe dmatest with channel unset
+    - Documentation: ACPI: Fix data node reference documentation
+    - Documentation: refer to config RANDOMIZE_BASE for kernel address-space
+      randomization
+    - Documentation: fix firewire.rst ABI file path error
+    - scsi: core: Show SCMD_LAST in text form
+    - RDMA/hns: Modify the mapping attribute of doorbell to device
+    - RDMA/rxe: Fix a typo in opcode name
+    - dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
+    - Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
+    - powerpc/cell: Fix clang -Wimplicit-fallthrough warning
+    - powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
+    - bpftool: Remove inclusion of utilities.mak from Makefiles
+    - ipv4: avoid quadratic behavior in netns dismantle
+    - net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
+    - parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
+    - f2fs: fix to reserve space for IO align feature
+    - af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
+    - clk: si5341: Fix clock HW provider cleanup
+    - net: axienet: limit minimum TX ring size
+    - net: axienet: fix number of TX ring slots for available check
+    - net: axienet: increase default TX ring size to 128
+    - rtc: pxa: fix null pointer dereference
+    - inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
+    - netns: add schedule point in ops_exit_list()
+    - xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
+    - gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
+    - libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
+    - perf script: Fix hex dump character output
+    - dmaengine: at_xdmac: Don't start transactions at tx_submit level
+    - dmaengine: at_xdmac: Print debug message after realeasing the lock
+    - dmaengine: at_xdmac: Fix concurrency over xfers_list
+    - dmaengine: at_xdmac: Fix lld view setting
+    - dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
+    - arm64: dts: qcom: msm8996: drop not documented adreno properties
+    - net_sched: restore "mpu xxx" handling
+    - bcmgenet: add WOL IRQ check
+    - net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
+    - dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
+    - dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
+    - scripts/dtc: dtx_diff: remove broken example from help text
+    - lib82596: Fix IRQ check in sni_82596_probe
+    - lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
+    - mtd: nand: bbt: Fix corner case in bad block table handling
+    - Revert "ia64: kprobes: Use generic kretprobe trampoline handler"
+    - Linux 5.4.174
+  * Focal update: v5.4.173 upstream stable release (LP: #1959701)
+    - kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test
+    - devtmpfs regression fix: reconfigure on each mount
+    - orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc()
+    - perf: Protect perf_guest_cbs with RCU
+    - KVM: s390: Clarify SIGP orders versus STOP/RESTART
+    - media: uvcvideo: fix division by zero at stream start
+    - rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with
+      interrupts enabled
+    - firmware: qemu_fw_cfg: fix sysfs information leak
+    - firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
+    - firmware: qemu_fw_cfg: fix kobject leak in probe error path
+    - KVM: x86: remove PMU FIXED_CTR3 from msrs_to_save_all
+    - ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after
+      reboot from Windows
+    - mtd: fixup CFI on ixp4xx
+    - ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN depends on !LD_IS_LLD
+    - Linux 5.4.173
+  * Focal update: v5.4.172 upstream stable release (LP: #1959698)
+    - workqueue: Fix unbind_workers() VS wq_worker_running() race
+    - Bluetooth: btusb: fix memory leak in btusb_mtk_submit_wmt_recv_urb()
+    - Bluetooth: bfusb: fix division by zero in send path
+    - USB: core: Fix bug in resuming hub's handling of wakeup requests
+    - USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
+    - mmc: sdhci-pci: Add PCI ID for Intel ADL
+    - veth: Do not record rx queue hint in veth_xmit
+    - mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
+    - drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...)
+      functions
+    - can: gs_usb: fix use of uninitialized variable, detach device on reception
+      of invalid USB data
+    - can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
+    - random: fix data race on crng_node_pool
+    - random: fix data race on crng init time
+    - random: fix crash on multiple early calls to add_bootloader_randomness()
+    - media: Revert "media: uvcvideo: Set unique vdev name based in type"
+    - staging: wlan-ng: Avoid bitwise vs logical OR warning in
+      hfa384x_usb_throttlefn()
+    - drm/i915: Avoid bitwise vs logical OR warning in snb_wm_latency_quirk()
+    - staging: greybus: fix stack size warning with UBSAN
+    - Linux 5.4.172
+  * Focal update: v5.4.171 upstream stable release (LP: #1959437)
+    - f2fs: quota: fix potential deadlock
+    - Input: touchscreen - Fix backport of
+      a02dcde595f7cbd240ccd64de96034ad91cffc40
+    - selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv()
+    - tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
+    - tracing: Tag trace_percpu_buffer as a percpu pointer
+    - ieee802154: atusb: fix uninit value in atusb_set_extended_addr
+    - iavf: Fix limit of total number of queues to active queues of VF
+    - RDMA/core: Don't infoleak GRH fields
+    - RDMA/uverbs: Check for null return of kmalloc_array
+    - mac80211: initialize variable have_higher_than_11mbit
+    - i40e: fix use-after-free in i40e_sync_filters_subtask()
+    - i40e: Fix for displaying message regarding NVM version
+    - i40e: Fix incorrect netdev's real number of RX/TX queues
+    - ipv4: Check attribute length for RTA_GATEWAY in multipath route
+    - ipv4: Check attribute length for RTA_FLOW in multipath route
+    - ipv6: Check attribute length for RTA_GATEWAY in multipath route
+    - ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route
+    - lwtunnel: Validate RTA_ENCAP_TYPE attribute length
+    - batman-adv: mcast: don't send link-local multicast to mcast routers
+    - sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
+    - net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8081
+    - power: supply: core: Break capacity loop
+    - power: reset: ltc2952: Fix use of floating point literals
+    - rndis_host: support Hytera digital radios
+    - phonet: refcount leak in pep_sock_accep
+    - ipv6: Continue processing multipath route even if gateway attribute is
+      invalid
+    - ipv6: Do cleanup if attribute validation fails in multipath route
+    - usb: mtu3: fix interval value for intr and isoc
+    - scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
+    - ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
+    - net: udp: fix alignment problem in udp4_seq_show()
+    - atlantic: Fix buff_ring OOB in aq_ring_rx_clean
+    - mISDN: change function names to avoid conflicts
+    - Linux 5.4.171
+  * Focal update: v5.4.170 upstream stable release (LP: #1958898)
+    - tee: handle lookup of shm with reference count 0
+    - Input: i8042 - add deferred probe support
+    - Input: i8042 - enable deferred probe quirk for ASUS UM325UA
+    - tomoyo: Check exceeded quota early in tomoyo_domain_quota_is_ok().
+    - platform/x86: apple-gmux: use resource_size() with res
+    - memblock: fix memblock_phys_alloc() section mismatch error
+    - recordmcount.pl: fix typo in s390 mcount regex
+    - selinux: initialize proto variable in selinux_ip_postroute_compat()
+    - scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
+    - net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources
+    - sctp: use call_rcu to free endpoint
+    - net: usb: pegasus: Do not drop long Ethernet frames
+    - net: lantiq_xrx200: fix statistics of received bytes
+    - NFC: st21nfca: Fix memory leak in device probe and remove
+    - ionic: Initialize the 'lif->dbid_inuse' bitmap
+    - net/mlx5e: Fix wrong features assignment in case of error
+    - selftests/net: udpgso_bench_tx: fix dst ip argument
+    - net/ncsi: check for error return from call to nla_put_u32
+    - fsl/fman: Fix missing put_device() call in fman_port_probe
+    - i2c: validate user data in compat ioctl
+    - nfc: uapi: use kernel size_t to fix user-space builds
+    - uapi: fix linux/nfc.h userspace compilation errors
+    - xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
+    - usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
+    - usb: mtu3: add memory barrier before set GPD's HWO
+    - usb: mtu3: fix list_head check warning
+    - usb: mtu3: set interval of FS intr and isoc endpoint
+    - binder: fix async_free_space accounting for empty parcels
+    - scsi: vmw_pvscsi: Set residual data length conditionally
+    - Input: appletouch - initialize work before device registration
+    - Input: spaceball - fix parsing of movement data packets
+    - net: fix use-after-free in tw_timer_handler
+    - perf script: Fix CPU filtering of a script's switch events
+    - Linux 5.4.170
+  * Focal update: v5.4.170 upstream stable release (LP: #1958898) // HID_ASUS
+    should depend on USB_HID in stable v4.15 backports (LP: #1959762)
+    - HID: asus: Add depends on USB_HID to HID_ASUS Kconfig option
+  * Focal update: v5.4.169 upstream stable release (LP: #1958557)
+    - net: usb: lan78xx: add Allied Telesis AT29M2-AF
+    - serial: 8250_fintek: Fix garbled text for console
+    - arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode
+    - spi: change clk_disable_unprepare to clk_unprepare
+    - IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
+    - netfilter: fix regression in looped (broad|multi)cast's MAC handling
+    - qlcnic: potential dereference null pointer of rx_queue->page_ring
+    - net: accept UFOv6 packages in virtio_net_hdr_to_skb
+    - net: skip virtio_net_hdr_set_proto if protocol already set
+    - ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module
+    - bonding: fix ad_actor_system option setting to default
+    - fjes: Check for error irq
+    - drivers: net: smc911x: Check for error irq
+    - sfc: falcon: Check null pointer of rx_queue->page_ring
+    - Input: elantech - fix stack out of bound access in
+      elantech_change_report_id()
+    - hwmon: (lm90) Fix usage of CONFIG2 register in detect function
+    - hwmon: (lm90) Add max6654 support to lm90 driver
+    - hwmon: (lm90) Add basic support for TI TMP461
+    - hwmon: (lm90) Introduce flag indicating extended temperature support
+    - hwmon: (lm90) Drop critical attribute support for MAX6654
+    - ALSA: jack: Check the return value of kstrdup()
+    - ALSA: drivers: opl3: Fix incorrect use of vp->state
+    - ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6
+    - Input: atmel_mxt_ts - fix double free in mxt_read_info_block
+    - ipmi: bail out if init_srcu_struct fails
+    - ipmi: ssif: initialize ssif_info->client early
+    - ipmi: fix initialization when workqueue allocation fails
+    - parisc: Correct completer in lws start
+    - x86/pkey: Fix undefined behaviour with PKRU_WD_BIT
+    - pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines
+    - mmc: sdhci-tegra: Fix switch to HS400ES mode
+    - mmc: core: Disable card detect during shutdown
+    - ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
+    - tee: optee: Fix incorrect page free bug
+    - f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
+    - usb: gadget: u_ether: fix race in setting MAC address in setup phase
+    - KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
+    - mm: mempolicy: fix THP allocations escaping mempolicy restrictions
+    - pinctrl: mediatek: fix global-out-of-bounds issue
+    - hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681
+    - hwmon: (lm90) Do not report 'busy' status bit as alarm
+    - ax25: NPD bug when detaching AX25 device
+    - hamradio: defer ax25 kfree after unregister_netdev
+    - hamradio: improve the incomplete fix to avoid NPD
+    - phonet/pep: refuse to enable an unbound pipe
+    - Linux 5.4.169
+  * Focal update: v5.4.168 upstream stable release (LP: #1957991)
+    - KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE
+    - mac80211: mark TX-during-stop for TX in in_reconfig
+    - mac80211: send ADDBA requests using the tid/queue of the aggregation session
+    - firmware: arm_scpi: Fix string overflow in SCPI genpd driver
+    - virtio_ring: Fix querying of maximum DMA mapping size for virtio device
+    - recordmcount.pl: look for jgnop instruction as well as bcrl on s390
+    - dm btree remove: fix use after free in rebalance_children()
+    - audit: improve robustness of the audit queue handling
+    - iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda
+    - nfsd: fix use-after-free due to delegation race
+    - arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-
+      edge
+    - arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply
+    - arm64: dts: rockchip: fix audio-supply for Rock Pi 4
+    - mac80211: track only QoS data frames for admission control
+    - ARM: socfpga: dts: fix qspi node compatible
+    - clk: Don't parent clks until the parent is fully registered
+    - selftests: net: Correct ping6 expected rc from 2 to 1
+    - s390/kexec_file: fix error handling when applying relocations
+    - sch_cake: do not call cake_destroy() from cake_init()
+    - inet_diag: use jiffies_delta_to_msecs()
+    - inet_diag: fix kernel-infoleak for UDP sockets
+    - selftests: Fix raw socket bind tests with VRF
+    - selftests: Fix IPv6 address bind tests
+    - dmaengine: st_fdma: fix MODULE_ALIAS
+    - selftest/net/forwarding: declare NETIFS p9 p10
+    - mac80211: agg-tx: refactor sending addba
+    - mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock
+    - mac80211: accept aggregation sessions on 6 GHz
+    - mac80211: fix lookup when adding AddBA extension element
+    - net: sched: lock action when translating it to flow_action infra
+    - flow_offload: return EOPNOTSUPP for the unsupported mpls action type
+    - rds: memory leak in __rds_conn_create()
+    - soc/tegra: fuse: Fix bitwise vs. logical OR warning
+    - igb: Fix removal of unicast MAC filters of VFs
+    - igbvf: fix double free in `igbvf_probe`
+    - ixgbe: set X550 MDIO speed before talking to PHY
+    - netdevsim: Zero-initialize memory for new map's value in function
+      nsim_bpf_map_alloc
+    - net: Fix double 0x prefix print in SKB dump
+    - net/smc: Prevent smc_release() from long blocking
+    - net: systemport: Add global locking for descriptor lifecycle
+    - sit: do not call ipip6_dev_free() from sit_init_net()
+    - USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04)
+    - PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error
+    - PCI/MSI: Mask MSI-X vectors only on success
+    - usb: xhci: Extend support for runtime power management for AMD's Yellow
+      carp.
+    - USB: serial: cp210x: fix CP2105 GPIO registration
+    - USB: serial: option: add Telit FN990 compositions
+    - timekeeping: Really make sure wall_to_monotonic isn't positive
+    - libata: if T_LENGTH is zero, dma direction should be DMA_NONE
+    - drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE
+    - mac80211: validate extended element ID is present
+    - mwifiex: Remove unnecessary braces from HostCmd_SET_SEQ_NO_BSS_INFO
+    - Input: touchscreen - avoid bitwise vs logical OR warning
+    - ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name
+    - xsk: Do not sleep in poll() when need_wakeup set
+    - media: mxl111sf: change mutex_init() location
+    - fuse: annotate lock in fuse_reverse_inval_entry()
+    - ovl: fix warning in ovl_create_real()
+    - scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select()
+    - rcu: Mark accesses to rcu_state.n_force_qs
+    - mac80211: fix regression in SSN handling of addba tx
+    - net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
+    - Revert "xsk: Do not sleep in poll() when need_wakeup set"
+    - xen/blkfront: harden blkfront against event channel storms
+    - xen/netfront: harden netfront against event channel storms
+    - xen/console: harden hvc_xen against event channel storms
+    - xen/netback: fix rx queue stall detection
+    - xen/netback: don't queue unlimited number of packages
+    - Linux 5.4.168
+  * Focal update: v5.4.167 upstream stable release (LP: #1957987)
+    - nfc: fix segfault in nfc_genl_dump_devices_done
+    - drm/msm/dsi: set default num_data_lanes
+    - net/mlx4_en: Update reported link modes for 1/10G
+    - parisc/agp: Annotate parisc agp init functions with __init
+    - i2c: rk3x: Handle a spurious start completion interrupt flag
+    - net: netlink: af_netlink: Prevent empty skb by adding a check on len.
+    - drm/amd/display: Fix for the no Audio bug with Tiled Displays
+    - drm/amd/display: add connector type check for CRC source set
+    - tracing: Fix a kmemleak false positive in tracing_map
+    - KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
+    - selinux: fix race condition when computing ocontext SIDs
+    - bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc
+    - hwmon: (dell-smm) Fix warning on /proc/i8k creation error
+    - memblock: free_unused_memmap: use pageblock units instead of MAX_ORDER
+    - memblock: align freed memory map on pageblock boundaries with SPARSEMEM
+    - memblock: ensure there is no overflow in memblock_overlaps_region()
+    - arm: extend pfn_valid to take into account freed memory map alignment
+    - arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM
+    - Linux 5.4.167
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+
+  [ Ubuntu: 5.4.0-104.118 ]
+
+  * CVE-2022-23960
+    - SAUCE: kvm: arm: fix build on 32-bit
+
+  [ Ubuntu: 5.4.0-103.117 ]
+
+  * CVE-2022-23960
+    - arm64: Add part number for Arm Cortex-A77
+    - arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
+    - arm64: Add Cortex-X2 CPU part definition
+    - arm64: add ID_AA64ISAR2_EL1 sys register
+    - SAUCE: arm64: entry.S: Add ventry overflow sanity checks
+    - SAUCE: arm64: entry: Make the trampoline cleanup optional
+    - SAUCE: arm64: entry: Free up another register on kpti's tramp_exit path
+    - SAUCE: arm64: entry: Move the trampoline data page before the text page
+    - SAUCE: arm64: entry: Allow tramp_alias to access symbols after the 4K
+      boundary
+    - SAUCE: arm64: entry: Don't assume tramp_vectors is the start of the vectors
+    - SAUCE: arm64: entry: Move trampoline macros out of ifdef'd section
+    - SAUCE: arm64: entry: Make the kpti trampoline's kpti sequence optional
+    - SAUCE: arm64: entry: Allow the trampoline text to occupy multiple pages
+    - SAUCE: arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
+    - SAUCE: arm64: entry: Add vectors that have the bhb mitigation sequences
+    - SAUCE: arm64: entry: Add macro for reading symbol addresses from the
+      trampoline
+    - SAUCE: arm64: Add percpu vectors for EL1
+    - SAUCE: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of
+      Spectre-v2
+    - SAUCE: KVM: arm64: Add templates for BHB mitigation sequences
+    - SAUCE: arm64: Mitigate spectre style branch history side channels
+    - SAUCE: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and
+      migrated
+    - SAUCE: arm64: Use the clearbhb instruction in mitigations
+    - [Config]: set CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+  * CVE-2022-25636
+    - netfilter: nf_tables_offload: incorrect flow offload action array size
+  * CVE-2022-0001
+    - x86/speculation: Merge one test in spectre_v2_user_select_mitigation()
+    - x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
+    - SAUCE: x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
+    - SAUCE: x86/speculation: Add eIBRS + Retpoline options
+    - SAUCE: Documentation/hw-vuln: Update spectre doc
+  * Disable unprivileged BPF by default (LP: #1961338)
+    - bpf: Add kconfig knob for disabling unpriv bpf by default
+    - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+
+  [ Ubuntu: 5.4.0-100.113 ]
+
+  * focal/linux: 5.4.0-100.113 -proposed tracker (LP: #1959900)
+  * CVE-2022-22942
+    - SAUCE: drm/vmwgfx: Fix stale file descriptors on failed usercopy
+  * CVE-2022-0330
+    - drm/i915: Flush TLBs before releasing backing store
+  * Focal update: v5.4.166 upstream stable release (LP: #1957008)
+    - netfilter: selftest: conntrack_vrf.sh: fix file permission
+    - Linux 5.4.166
+    - net/packet: rx_owner_map depends on pg_vec
+    - USB: gadget: bRequestType is a bitfield, not a enum
+    - HID: holtek: fix mouse probing
+    - udp: using datalen to cap ipv6 udp max gso segments
+    - selftests: Calculate udpgso segment count without header adjustment
+  * Focal update: v5.4.165 upstream stable release (LP: #1957007)
+    - serial: tegra: Change lower tolerance baud rate limit for tegra20 and
+      tegra30
+    - ntfs: fix ntfs_test_inode and ntfs_init_locked_inode function type
+    - HID: quirks: Add quirk for the Microsoft Surface 3 type-cover
+    - HID: google: add eel USB id
+    - HID: add hid_is_usb() function to make it simpler for USB detection
+    - HID: add USB_HID dependancy to hid-prodikeys
+    - HID: add USB_HID dependancy to hid-chicony
+    - HID: add USB_HID dependancy on some USB HID drivers
+    - HID: bigbenff: prevent null pointer dereference
+    - HID: wacom: fix problems when device is not a valid USB device
+    - HID: check for valid USB device for many HID drivers
+    - can: kvaser_usb: get CAN clock frequency from device
+    - can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct
+      stats->{rx,tx}_errors counter
+    - can: sja1000: fix use after free in ems_pcmcia_add_card()
+    - nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done
+    - selftests: netfilter: add a vrf+conntrack testcase
+    - vrf: don't run conntrack on vrf with !dflt qdisc
+    - bpf: Fix the off-by-two error in range markings
+    - ice: ignore dropped packets during init
+    - bonding: make tx_rebalance_counter an atomic
+    - nfp: Fix memory leak in nfp_cpp_area_cache_add()
+    - seg6: fix the iif in the IPv6 socket control block
+    - udp: using datalen to cap max gso segments
+    - iavf: restore MSI state on reset
+    - iavf: Fix reporting when setting descriptor count
+    - IB/hfi1: Correct guard on eager buffer deallocation
+    - mm: bdi: initialize bdi_min_ratio when bdi is unregistered
+    - ALSA: ctl: Fix copy of updated id with element read/write
+    - ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform
+    - ALSA: pcm: oss: Fix negative period/buffer sizes
+    - ALSA: pcm: oss: Limit the period size to 16MB
+    - ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*()
+    - btrfs: clear extent buffer uptodate when we fail to write it
+    - btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling
+    - nfsd: Fix nsfd startup race (again)
+    - tracefs: Have new files inherit the ownership of their parent
+    - clk: qcom: regmap-mux: fix parent clock lookup
+    - drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.
+    - can: pch_can: pch_can_rx_normal: fix use after free
+    - can: m_can: Disable and ignore ELO interrupt
+    - x86/sme: Explicitly map new EFI memmap table as encrypted
+    - libata: add horkage for ASMedia 1092
+    - wait: add wake_up_pollfree()
+    - SAUCE: binder: export __wake_up_pollfree for binder module
+    - binder: use wake_up_pollfree()
+    - signalfd: use wake_up_pollfree()
+    - aio: keep poll requests on waitqueue until completed
+    - aio: fix use-after-free due to missing POLLFREE handling
+    - tracefs: Set all files to the same group ownership as the mount option
+    - block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2)
+    - qede: validate non LSO skb length
+    - ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer
+    - i40e: Fix failed opcode appearing if handling messages from VF
+    - i40e: Fix pre-set max number of queues for VF
+    - mtd: rawnand: fsmc: Take instruction delay into account
+    - mtd: rawnand: fsmc: Fix timing computation
+    - dt-bindings: net: Reintroduce PHY no lane swap binding
+    - tools build: Remove needless libpython-version feature check that breaks
+      test-all fast path
+    - net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero
+    - net: altera: set a couple error code in probe()
+    - net: fec: only clear interrupt of handling queue in fec_enet_rx_queue()
+    - net, neigh: clear whole pneigh_entry at alloc time
+    - net/qla3xxx: fix an error code in ql_adapter_up()
+    - Revert "UBUNTU: SAUCE: selftests: fib_tests: assign address to dummy1 for
+      rp_filter tests"
+    - selftests/fib_tests: Rework fib_rp_filter_test()
+    - USB: gadget: detect too-big endpoint 0 requests
+    - USB: gadget: zero allocate endpoint 0 buffers
+    - usb: core: config: fix validation of wMaxPacketValue entries
+    - xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime
+      suspending
+    - usb: core: config: using bit mask instead of individual bits
+    - xhci: avoid race between disable slot command and host runtime suspend
+    - iio: trigger: Fix reference counting
+    - iio: trigger: stm32-timer: fix MODULE_ALIAS
+    - iio: stk3310: Don't return error code in interrupt handler
+    - iio: mma8452: Fix trigger reference couting
+    - iio: ltr501: Don't return error code in trigger handler
+    - iio: kxsd9: Don't return error code in trigger handler
+    - iio: itg3200: Call iio_trigger_notify_done() on error
+    - iio: dln2-adc: Fix lockdep complaint
+    - iio: dln2: Check return value of devm_iio_trigger_register()
+    - iio: at91-sama5d2: Fix incorrect sign extension
+    - iio: adc: axp20x_adc: fix charging current reporting on AXP22x
+    - iio: ad7768-1: Call iio_trigger_notify_done() on error
+    - iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove
+    - irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc()
+    - irqchip/armada-370-xp: Fix support for Multi-MSI interrupts
+    - irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL
+    - irqchip: nvic: Fix offset for Interrupt Priority Offsets
+    - misc: fastrpc: fix improper packet size calculation
+    - bpf: Add selftests to cover packet access corner cases
+    - Linux 5.4.165
+  * Focal update: v5.4.164 upstream stable release (LP: #1956381)
+    - NFSv42: Fix pagecache invalidation after COPY/CLONE
+    - of: clk: Make <linux/of_clk.h> self-contained
+    - arm64: dts: mcbin: support 2W SFP modules
+    - can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM
+    - gfs2: Fix length of holes reported at end-of-file
+    - drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY
+    - mac80211: do not access the IV when it was stripped
+    - net/smc: Transfer remaining wait queue entries during fallback
+    - atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait
+    - net: return correct error code
+    - platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
+    - s390/setup: avoid using memblock_enforce_memory_limit
+    - btrfs: check-integrity: fix a warning on write caching disabled disk
+    - thermal: core: Reset previous low and high trip during thermal zone init
+    - scsi: iscsi: Unblock session then wake up error handler
+    - ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
+    - ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in
+      hns_dsaf_ge_srst_by_port()
+    - net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of
+      bound
+    - net: ethernet: dec: tulip: de4x5: fix possible array overflows in
+      type3_infoblock()
+    - perf hist: Fix memory leak of a perf_hpp_fmt
+    - perf report: Fix memory leaks around perf_tip()
+    - net/smc: Avoid warning of possible recursive locking
+    - vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
+    - kprobes: Limit max data_size of the kretprobe instances
+    - rt2x00: do not mark device gone on EPROTO errors during start
+    - cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink()
+    - s390/pci: move pseudo-MMIO to prevent MIO overlap
+    - sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
+    - sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
+    - i2c: stm32f7: flush TX FIFO upon transfer errors
+    - i2c: stm32f7: recover the bus on access timeout
+    - i2c: stm32f7: stop dma transfer in case of NACK
+    - i2c: cbus-gpio: set atomic transfer callback
+    - natsemi: xtensa: fix section mismatch warnings
+    - net: qlogic: qlcnic: Fix a NULL pointer dereference in
+      qlcnic_83xx_add_rings()
+    - net: mpls: Fix notifications when deleting a device
+    - siphash: use _unaligned version by default
+    - net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
+    - selftests: net: Correct case name
+    - rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
+    - net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ
+      is available
+    - net: marvell: mvpp2: Fix the computation of shared CPUs
+    - net: annotate data-races on txq->xmit_lock_owner
+    - ipv4: convert fib_num_tclassid_users to atomic_t
+    - net/rds: correct socket tunable error in rds_tcp_tune()
+    - net/smc: Keep smc_close_final rc during active close
+    - drm/msm: Do hw_init() before capturing GPU state
+    - ipv6: fix memory leak in fib6_rule_suppress
+    - KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register
+    - sched/uclamp: Fix rq->uclamp_max not set on first enqueue
+    - parisc: Fix KBUILD_IMAGE for self-extracting kernel
+    - parisc: Fix "make install" on newer debian releases
+    - vgacon: Propagate console boot parameters before calling `vc_resize'
+    - xhci: Fix commad ring abort, write all 64 bits to CRCR register.
+    - USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
+    - usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
+    - x86/tsc: Add a timer to make sure TSC_adjust is always checked
+    - x86/tsc: Disable clocksource watchdog for TSC on qualified platorms
+    - x86/64/mm: Map all kernel memory into trampoline_pgd
+    - tty: serial: msm_serial: Deactivate RX DMA for polling support
+    - serial: pl011: Add ACPI SBSA UART match id
+    - serial: core: fix transmit-buffer reset and memleak
+    - serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array
+    - serial: 8250_pci: rewrite pericom_do_set_divisor()
+    - iwlwifi: mvm: retry init flow if failed
+    - parisc: Mark cr16 CPU clocksource unstable on all SMP machines
+    - net/tls: Fix authentication failure in CCM mode
+    - Linux 5.4.164
+  * Focal update: v5.4.163 upstream stable release (LP: #1956380)
+    - USB: serial: option: add Telit LE910S1 0x9200 composition
+    - USB: serial: option: add Fibocom FM101-GL variants
+    - usb: dwc2: gadget: Fix ISOC flow for elapsed frames
+    - usb: dwc2: hcd_queue: Fix use of floating point literal
+    - net: nexthop: fix null pointer dereference when IPv6 is not enabled
+    - usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts
+    - usb: hub: Fix usb enumeration issue due to address0 race
+    - usb: hub: Fix locking issues with address0_mutex
+    - binder: fix test regression due to sender_euid change
+    - ALSA: ctxfi: Fix out-of-range access
+    - media: cec: copy sequence field for the reply
+    - HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts
+    - staging/fbtft: Fix backlight
+    - staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
+    - xen: don't continue xenstore initialization in case of errors
+    - xen: detect uninitialized xenbus in xenbus_init
+    - KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB
+    - tracing/uprobe: Fix uprobe_perf_open probes iteration
+    - tracing: Fix pid filtering when triggers are attached
+    - mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB
+    - mdio: aspeed: Fix "Link is Down" issue
+    - PCI: aardvark: Deduplicate code in advk_pcie_rd_conf()
+    - PCI: aardvark: Wait for endpoint to be ready before training link
+    - PCI: aardvark: Fix big endian support
+    - PCI: aardvark: Train link immediately after enabling training
+    - PCI: aardvark: Improve link training
+    - PCI: aardvark: Issue PERST via GPIO
+    - PCI: aardvark: Replace custom macros by standard linux/pci_regs.h macros
+    - PCI: aardvark: Don't touch PCIe registers if no card connected
+    - PCI: aardvark: Fix compilation on s390
+    - PCI: aardvark: Move PCIe reset card code to advk_pcie_train_link()
+    - PCI: aardvark: Update comment about disabling link training
+    - PCI: pci-bridge-emul: Fix array overruns, improve safety
+    - PCI: aardvark: Configure PCIe resources from 'ranges' DT property
+    - PCI: aardvark: Fix PCIe Max Payload Size setting
+    - PCI: aardvark: Implement re-issuing config requests on CRS response
+    - PCI: aardvark: Simplify initialization of rootcap on virtual bridge
+    - PCI: aardvark: Fix link training
+    - PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated
+      bridge
+    - PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
+    - PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
+    - pinctrl: armada-37xx: Correct PWM pins definitions
+    - arm64: dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
+    - proc/vmcore: fix clearing user buffer by properly using clear_user()
+    - netfilter: ipvs: Fix reuse connection if RS weight is 0
+    - ARM: dts: BCM5301X: Fix I2C controller interrupt
+    - ARM: dts: BCM5301X: Add interrupt properties to GPIO node
+    - ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer
+    - ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
+    - net: ieee802154: handle iftypes as u32
+    - firmware: arm_scmi: pm: Propagate return value to caller
+    - NFSv42: Don't fail clone() unless the OP_CLONE operation failed
+    - ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
+    - scsi: mpt3sas: Fix kernel panic during drive powercycle test
+    - drm/vc4: fix error code in vc4_create_object()
+    - iavf: Prevent changing static ITR values if adaptive moderation is on
+    - ipv6: fix typos in __ip6_finish_output()
+    - nfp: checking parameter process for rx-usecs/tx-usecs is invalid
+    - net: ipv6: add fib6_nh_release_dsts stub
+    - net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group
+    - scsi: core: sysfs: Fix setting device state to SDEV_RUNNING
+    - net/smc: Ensure the active closing peer first closes clcsock
+    - nvmet-tcp: fix incomplete data digest send
+    - net/ncsi : Add payload to be 32-bit aligned to fix dropped packets
+    - PM: hibernate: use correct mode for swsusp_close()
+    - tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited
+      flows
+    - nvmet: use IOCB_NOWAIT only if the filesystem supports it
+    - igb: fix netpoll exit with traffic
+    - MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48
+    - net: vlan: fix underflow for the real_dev refcnt
+    - net/smc: Don't call clcsock shutdown twice when smc shutdown
+    - net: hns3: fix VF RSS failed problem after PF enable multi-TCs
+    - net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP
+    - net: mscc: ocelot: correctly report the timestamping RX filters in ethtool
+    - f2fs: set SBI_NEED_FSCK flag when inconsistent node block found
+    - smb3: do not error on fsync when readonly
+    - vhost/vsock: fix incorrect used length reported to the guest
+    - tracing: Check pid filtering when creating events
+    - s390/mm: validate VMA in PGSTE manipulation functions
+    - shm: extend forced shm destroy to support objects from several IPC nses
+    - NFC: add NCI_UNREG flag to eliminate the race
+    - fuse: release pipe buf after last use
+    - xen: sync include/xen/interface/io/ring.h with Xen's newest version
+    - xen/blkfront: read response from backend only once
+    - xen/blkfront: don't take local copy of a request from the ring page
+    - xen/blkfront: don't trust the backend response data blindly
+    - xen/netfront: read response from backend only once
+    - xen/netfront: don't read data from request on the ring page
+    - xen/netfront: disentangle tx_skb_freelist
+    - xen/netfront: don't trust the backend response data blindly
+    - tty: hvc: replace BUG_ON() with negative return value
+    - Linux 5.4.163
+  * net/mlx5e: EPERM on vlan 0 programming (LP: #1957753)
+    - net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
+  * CVE-2021-4083
+    - fget: check that the fd still exists after getting a ref to it
+  * CVE-2021-4155
+    - xfs: map unwritten blocks in XFS_IOC_{ALLOC, FREE}SP just like fallocate
+
+  [ Ubuntu: 5.4.0-99.112 ]
+
+  * focal/linux: 5.4.0-99.112 -proposed tracker (LP: #1959817)
+  * linux-image-5.4.0-97.110 freezes by accessing cifs shares (LP: #1959665)
+    - Revert "cifs: To match file servers, make sure the server hostname matches"
+    - Revert "cifs: set a minimum of 120s for next dns resolution"
+    - Revert "cifs: use the expiry output of dns_query to schedule next
+      resolution"
+
+  [ Ubuntu: 5.4.0-97.110 ]
+
+  * icmp_redirect from selftests fails on F/kvm (unary operator expected)
+    (LP: #1938964)
+    - selftests: icmp_redirect: pass xfail=0 to log_test()
+  * Focal: CIFS stable updates (LP: #1954926)
+    - cifs: use the expiry output of dns_query to schedule next resolution
+    - cifs: set a minimum of 120s for next dns resolution
+    - cifs: To match file servers, make sure the server hostname matches
+  * seccomp_bpf in seccomp from ubuntu_kernel_selftests failed to build on B-5.4
+    (LP: #1896420)
+    - SAUCE: selftests/seccomp: fix "storage size of 'md' isn't known" build issue
+    - SAUCE: selftests/seccomp: Fix s390x regs not defined issue
+  * system crash when removing ipmi_msghandler module (LP: #1950666)
+    - ipmi: Move remove_work to dedicated workqueue
+    - ipmi: msghandler: Make symbol 'remove_work_wq' static
+  * zcrypt DD: Toleration for new IBM Z Crypto Hardware - (Backport to Ubuntu
+    20.04) (LP: #1954680)
+    - s390/AP: support new dynamic AP bus size limit
+  * [UBUNTU 20.04] KVM hardware diagnose data improvements for guest kernel -
+    kernel part (LP: #1953334)
+    - s390/setup: diag 318: refactor struct
+    - s390/kvm: diagnose 0x318 sync and reset
+    - KVM: s390: remove diag318 reset code
+    - KVM: s390: add debug statement for diag 318 CPNC data
+  * Updates to ib_peer_memory requested by Nvidia (LP: #1947206)
+    - SAUCE: RDMA/core: Updated ib_peer_memory
+  * Include Infiniband Peer Memory interface (LP: #1923104)
+    - IB: Allow calls to ib_umem_get from kernel ULPs
+    - SAUCE: RDMA/core: Introduce peer memory interface
+  * Focal update: v5.4.162 upstream stable release (LP: #1954834)
+    - arm64: zynqmp: Do not duplicate flash partition label property
+    - arm64: zynqmp: Fix serial compatible string
+    - ARM: dts: NSP: Fix mpcore, mmc node names
+    - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
+    - arm64: dts: hisilicon: fix arm,sp805 compatible string
+    - RDMA/bnxt_re: Check if the vlan is valid before reporting
+    - usb: musb: tusb6010: check return value after calling
+      platform_get_resource()
+    - usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
+    - arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency
+    - arm64: dts: freescale: fix arm,sp805 compatible string
+    - ASoC: SOF: Intel: hda-dai: fix potential locking issue
+    - clk: imx: imx6ul: Move csi_sel mux to correct base register
+    - ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
+    - scsi: advansys: Fix kernel pointer leak
+    - firmware_loader: fix pre-allocated buf built-in firmware use
+    - ARM: dts: omap: fix gpmc,mux-add-data type
+    - usb: host: ohci-tmio: check return value after calling
+      platform_get_resource()
+    - ARM: dts: ls1021a: move thermal-zones node out of soc/
+    - ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
+    - ALSA: ISA: not for M68K
+    - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
+    - MIPS: sni: Fix the build
+    - scsi: target: Fix ordered tag handling
+    - scsi: target: Fix alua_tg_pt_gps_count tracking
+    - iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr()
+    - powerpc/5200: dts: fix memory node unit name
+    - ALSA: gus: fix null pointer dereference on pointer block
+    - powerpc/dcr: Use cmplwi instead of 3-argument cmpli
+    - sh: check return code of request_irq
+    - maple: fix wrong return value of maple_bus_init().
+    - f2fs: fix up f2fs_lookup tracepoints
+    - sh: fix kconfig unmet dependency warning for FRAME_POINTER
+    - sh: math-emu: drop unused functions
+    - sh: define __BIG_ENDIAN for math-emu
+    - clk: ingenic: Fix bugs with divided dividers
+    - clk/ast2600: Fix soc revision for AHB
+    - clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk
+    - mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
+    - sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
+    - tracing: Save normal string variables
+    - tracing/histogram: Do not copy the fixed-size char array field over the
+      field size
+    - RDMA/netlink: Add __maybe_unused to static inline in C file
+    - perf bpf: Avoid memory leak from perf_env__insert_btf()
+    - perf bench futex: Fix memory leak of perf_cpu_map__new()
+    - perf tests: Remove bash construct from record+zstd_comp_decomp.sh
+    - net: bnx2x: fix variable dereferenced before check
+    - iavf: check for null in iavf_fix_features
+    - iavf: free q_vectors before queues in iavf_disable_vf
+    - iavf: Fix failure to exit out from last all-multicast mode
+    - iavf: prevent accidental free of filter structure
+    - iavf: validate pointers
+    - iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
+    - MIPS: generic/yamon-dt: fix uninitialized variable error
+    - mips: bcm63xx: add support for clk_get_parent()
+    - mips: lantiq: add support for clk_get_parent()
+    - platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
+    - scsi: core: sysfs: Fix hang when device state is set via sysfs
+    - net: sched: act_mirred: drop dst for the direction from egress to ingress
+    - net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove
+    - net: virtio_net_hdr_to_skb: count transport header in UFO
+    - i40e: Fix correct max_pkt_size on VF RX queue
+    - i40e: Fix NULL ptr dereference on VSI filter sync
+    - i40e: Fix changing previously set num_queue_pairs for PFs
+    - i40e: Fix ping is lost after configuring ADq on VF
+    - i40e: Fix creation of first queue by omitting it if is not power of two
+    - i40e: Fix display error code in dmesg
+    - NFC: reorganize the functions in nci_request
+    - drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame
+    - NFC: reorder the logic in nfc_{un,}register_device
+    - KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr()
+    - perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
+    - perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
+    - s390/kexec: fix return code handling
+    - arm64: vdso32: suppress error message for 'make mrproper'
+    - tun: fix bonding active backup with arp monitoring
+    - hexagon: export raw I/O routines for modules
+    - ipc: WARN if trying to remove ipc object which is absent
+    - mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
+    - x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
+    - s390/kexec: fix memory leak of ipl report buffer
+    - udf: Fix crash after seekdir
+    - btrfs: fix memory ordering between normal and ordered work functions
+    - parisc/sticon: fix reverse colors
+    - cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
+    - drm/udl: fix control-message timeout
+    - drm/nouveau: use drm_dev_unplug() during device removal
+    - drm/i915/dp: Ensure sink rate values are always valid
+    - drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga
+      and dvi connectors
+    - Revert "net: mvpp2: disable force link UP during port init procedure"
+    - perf/core: Avoid put_page() when GUP fails
+    - batman-adv: Consider fragmentation for needed_headroom
+    - batman-adv: Reserve needed_*room for fragments
+    - batman-adv: Don't always reallocate the fragmentation skb head
+    - ASoC: DAPM: Cover regression by kctl change notification fix
+    - usb: max-3421: Use driver data instead of maintaining a list of bound
+      devices
+    - ice: Delete always true check of PF pointer
+    - ALSA: hda: hdac_ext_stream: fix potential locking issues
+    - ALSA: hda: hdac_stream: fix potential locking issue in
+      snd_hdac_stream_assign()
+    - Linux 5.4.162
+  * Focal update: v5.4.161 upstream stable release (LP: #1954828)
+    - scsi: ufs: Fix interrupt error message for shared interrupts
+    - MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
+    - ext4: fix lazy initialization next schedule time computation in more
+      granular unit
+    - scsi: ufs: Fix tm request when non-fatal error happens
+    - fortify: Explicitly disable Clang support
+    - parisc/entry: fix trace test in syscall exit path
+    - PCI/MSI: Destroy sysfs before freeing entries
+    - PCI/MSI: Deal with devices lying about their MSI mask capability
+    - PCI: Add MSI masking quirk for Nvidia ION AHCI
+    - erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
+    - erofs: fix unsafe pagevec reuse of hooked pclusters
+    - Linux 5.4.161
+  * Focal update: v5.4.160 upstream stable release (LP: #1953387)
+    - xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good
+      delay
+    - usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
+    - binder: use euid from cred instead of using task
+    - binder: use cred instead of task for selinux checks
+    - binder: use cred instead of task for getsecid
+    - Input: iforce - fix control-message timeout
+    - Input: elantench - fix misreporting trackpoint coordinates
+    - Input: i8042 - Add quirk for Fujitsu Lifebook T725
+    - libata: fix read log timeout value
+    - ocfs2: fix data corruption on truncate
+    - scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
+    - scsi: qla2xxx: Fix use after free in eh_abort path
+    - mmc: dw_mmc: Dont wait for DRTO on Write RSP error
+    - parisc: Fix ptrace check on syscall return
+    - tpm: Check for integer overflow in tpm2_map_response_body()
+    - firmware/psci: fix application of sizeof to pointer
+    - crypto: s5p-sss - Add error handling in s5p_aes_probe()
+    - media: ite-cir: IR receiver stop working after receive overflow
+    - media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
+    - media: v4l2-ioctl: Fix check_ext_ctrls
+    - ALSA: hda/realtek: Add quirk for Clevo PC70HS
+    - ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
+    - ALSA: hda/realtek: Add quirk for ASUS UX550VE
+    - ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
+    - ALSA: ua101: fix division by zero at probe
+    - ALSA: 6fire: fix control and bulk message timeouts
+    - ALSA: line6: fix control and interrupt message timeouts
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 400
+    - ALSA: synth: missing check for possible NULL after the call to kstrdup
+    - ALSA: timer: Fix use-after-free problem
+    - ALSA: timer: Unconditionally unlink slave instances, too
+    - fuse: fix page stealing
+    - x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
+    - x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
+    - x86/irq: Ensure PI wakeup handler is unregistered before module unload
+    - cavium: Return negative value when pci_alloc_irq_vectors() fails
+    - scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
+    - scsi: qla2xxx: Fix unmap of already freed sgl
+    - cavium: Fix return values of the probe function
+    - sfc: Don't use netif_info before net_device setup
+    - hyperv/vmbus: include linux/bitops.h
+    - ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
+    - reset: socfpga: add empty driver allowing consumers to probe
+    - mmc: winbond: don't build on M68K
+    - drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
+    - bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
+    - bpf: Prevent increasing bpf_jit_limit above max
+    - xen/netfront: stop tx queues during live migration
+    - nvmet-tcp: fix a memory leak when releasing a queue
+    - spi: spl022: fix Microwire full duplex mode
+    - net: multicast: calculate csum of looped-back and forwarded packets
+    - watchdog: Fix OMAP watchdog early handling
+    - drm: panel-orientation-quirks: Add quirk for GPD Win3
+    - nvmet-tcp: fix header digest verification
+    - r8169: Add device 10ec:8162 to driver r8169
+    - vmxnet3: do not stop tx queues after netif_device_detach()
+    - nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
+    - net/smc: Correct spelling mistake to TCPF_SYN_RECV
+    - btrfs: clear MISSING device status bit in btrfs_close_one_device
+    - btrfs: fix lost error handling when replaying directory deletes
+    - btrfs: call btrfs_check_rw_degradable only if there is a missing device
+    - ia64: kprobes: Fix to pass correct trampoline address to the handler
+    - hwmon: (pmbus/lm25066) Add offset coefficients
+    - regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is
+      disabled
+    - regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-
+      dvs-idx property
+    - EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
+    - mwifiex: fix division by zero in fw download path
+    - ath6kl: fix division by zero in send path
+    - ath6kl: fix control-message timeout
+    - ath10k: fix control-message timeout
+    - ath10k: fix division by zero in send path
+    - PCI: Mark Atheros QCA6174 to avoid bus reset
+    - rtl8187: fix control-message timeouts
+    - evm: mark evm_fixmode as __ro_after_init
+    - wcn36xx: Fix HT40 capability for 2Ghz band
+    - mwifiex: Read a PCI register after writing the TX ring write pointer
+    - libata: fix checking of DMA state
+    - wcn36xx: handle connection loss indication
+    - rsi: fix occasional initialisation failure with BT coex
+    - rsi: fix key enabled check causing unwanted encryption for vap_id > 0
+    - rsi: fix rate mask set leading to P2P failure
+    - rsi: Fix module dev_oper_mode parameter description
+    - RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
+    - signal: Remove the bogus sigkill_pending in ptrace_stop
+    - signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
+    - power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
+    - power: supply: max17042_battery: use VFSOC for capacity when no rsns
+    - KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
+    - can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
+    - can: j1939: j1939_can_recv(): ignore messages with invalid source address
+    - powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
+    - serial: core: Fix initializing and restoring termios speed
+    - ALSA: mixer: oss: Fix racy access to slots
+    - ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
+    - xen/balloon: add late_initcall_sync() for initial ballooning done
+    - PCI: pci-bridge-emul: Fix emulation of W1C bits
+    - PCI: aardvark: Do not clear status bits of masked interrupts
+    - PCI: aardvark: Fix checking for link up via LTSSM state
+    - PCI: aardvark: Do not unmask unused interrupts
+    - PCI: aardvark: Fix reporting Data Link Layer Link Active
+    - PCI: aardvark: Fix return value of MSI domain .alloc() method
+    - PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
+    - quota: check block number when reading the block in quota file
+    - quota: correct error number in free_dqentry()
+    - pinctrl: core: fix possible memory leak in pinctrl_enable()
+    - iio: dac: ad5446: Fix ad5622_write() return value
+    - USB: serial: keyspan: fix memleak on probe errors
+    - USB: iowarrior: fix control-message timeouts
+    - USB: chipidea: fix interrupt deadlock
+    - dma-buf: WARN on dmabuf release with pending attachments
+    - drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
+    - drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
+    - drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
+    - Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
+    - Bluetooth: fix use-after-free error in lock_sock_nested()
+    - drm/panel-orientation-quirks: add Valve Steam Deck
+    - platform/x86: wmi: do not fail if disabling fails
+    - MIPS: lantiq: dma: add small delay after reset
+    - MIPS: lantiq: dma: reset correct number of channel
+    - locking/lockdep: Avoid RCU-induced noinstr fail
+    - net: sched: update default qdisc visibility after Tx queue cnt changes
+    - smackfs: Fix use-after-free in netlbl_catmap_walk()
+    - x86: Increase exception stack sizes
+    - mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
+    - mwifiex: Properly initialize private structure on interface type changes
+    - ath10k: high latency fixes for beacon buffer
+    - media: mt9p031: Fix corrupted frame after restarting stream
+    - media: netup_unidvb: handle interrupt properly according to the firmware
+    - media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
+    - media: uvcvideo: Set capability in s_param
+    - media: uvcvideo: Return -EIO for control errors
+    - media: uvcvideo: Set unique vdev name based in type
+    - media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
+    - media: s5p-mfc: Add checking to s5p_mfc_probe().
+    - media: imx: set a media_device bus_info string
+    - media: mceusb: return without resubmitting URB in case of -EPROTO error.
+    - ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
+    - brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
+    - media: rcar-csi2: Add checking to rcsi2_start_receiver()
+    - ipmi: Disable some operations during a panic
+    - ACPICA: Avoid evaluating methods too early during system resume
+    - media: ipu3-imgu: imgu_fmt: Handle properly try
+    - media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
+    - media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
+    - net-sysfs: try not to restart the syscall if it will fail eventually
+    - tracefs: Have tracefs directories not set OTH permission bits by default
+    - ath: dfs_pattern_detector: Fix possible null-pointer dereference in
+      channel_detector_create()
+    - iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
+    - ACPI: battery: Accept charges over the design capacity as full
+    - leaking_addresses: Always print a trailing newline
+    - memstick: r592: Fix a UAF bug when removing the driver
+    - lib/xz: Avoid overlapping memcpy() with invalid input with in-place
+      decompression
+    - lib/xz: Validate the value before assigning it to an enum variable
+    - workqueue: make sysfs of unbound kworker cpumask more clever
+    - tracing/cfi: Fix cmp_entries_* functions signature mismatch
+    - mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
+    - block: remove inaccurate requeue check
+    - nvmet: fix use-after-free when a port is removed
+    - nvmet-tcp: fix use-after-free when a port is removed
+    - nvme: drop scan_lock and always kick requeue list when removing namespaces
+    - PM: hibernate: Get block device exclusively in swsusp_check()
+    - selftests: kvm: fix mismatched fclose() after popen()
+    - iwlwifi: mvm: disable RX-diversity in powersave
+    - smackfs: use __GFP_NOFAIL for smk_cipso_doi()
+    - ARM: clang: Do not rely on lr register for stacktrace
+    - gre/sit: Don't generate link-local addr if addr_gen_mode is
+      IN6_ADDR_GEN_MODE_NONE
+    - ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
+    - vrf: run conntrack only in context of lower/physdev for locally generated
+      packets
+    - net: annotate data-race in neigh_output()
+    - btrfs: do not take the uuid_mutex in btrfs_rm_device
+    - spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in
+      bcm_qspi_probe()
+    - x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
+    - parisc: fix warning in flush_tlb_all
+    - task_stack: Fix end_of_stack() for architectures with upwards-growing stack
+    - parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
+    - parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
+    - netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream
+      state
+    - selftests/bpf: Fix strobemeta selftest regression
+    - Bluetooth: fix init and cleanup of sco_conn.timeout_work
+    - rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
+    - drm/v3d: fix wait for TMU write combiner flush
+    - virtio-gpu: fix possible memory allocation failure
+    - net: net_namespace: Fix undefined member in key_remove_domain()
+    - cgroup: Make rebind_subsystems() disable v2 controllers all at once
+    - wilc1000: fix possible memory leak in cfg_scan_result()
+    - Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
+    - crypto: caam - disable pkc for non-E SoCs
+    - rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
+    - net: dsa: rtl8366rb: Fix off-by-one bug
+    - ath10k: Fix missing frame timestamp for beacon/probe-resp
+    - drm/amdgpu: fix warning for overflow check
+    - media: em28xx: add missing em28xx_close_extension
+    - media: cxd2880-spi: Fix a null pointer dereference on error handling path
+    - media: dvb-usb: fix ununit-value in az6027_rc_query
+    - media: TDA1997x: handle short reads of hdmi info frame.
+    - media: mtk-vpu: Fix a resource leak in the error handling path of
+      'mtk_vpu_probe()'
+    - media: radio-wl1273: Avoid card name truncation
+    - media: si470x: Avoid card name truncation
+    - media: tm6000: Avoid card name truncation
+    - media: cx23885: Fix snd_card_free call on null card pointer
+    - kprobes: Do not use local variable when creating debugfs file
+    - crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
+    - cpuidle: Fix kobject memory leaks in error paths
+    - media: em28xx: Don't use ops->suspend if it is NULL
+    - ath9k: Fix potential interrupt storm on queue reset
+    - EDAC/amd64: Handle three rank interleaving mode
+    - netfilter: nft_dynset: relax superfluous check on set updates
+    - media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
+    - crypto: qat - detect PFVF collision after ACK
+    - crypto: qat - disregard spurious PFVF interrupts
+    - hwrng: mtk - Force runtime pm ops for sleep ops
+    - b43legacy: fix a lower bounds test
+    - b43: fix a lower bounds test
+    - mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
+    - memstick: avoid out-of-range warning
+    - memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
+    - net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
+    - hwmon: Fix possible memleak in __hwmon_device_register()
+    - hwmon: (pmbus/lm25066) Let compiler determine outer dimension of
+      lm25066_coeff
+    - ath10k: fix max antenna gain unit
+    - drm/msm: uninitialized variable in msm_gem_import()
+    - net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
+    - mmc: mxs-mmc: disable regulator on error and in the remove function
+    - block: ataflop: fix breakage introduced at blk-mq refactoring
+    - platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
+    - mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
+    - rsi: stop thread firstly in rsi_91x_init() error handling
+    - mwifiex: Send DELBA requests according to spec
+    - phy: micrel: ksz8041nl: do not use power down mode
+    - nvme-rdma: fix error code in nvme_rdma_setup_ctrl
+    - PM: hibernate: fix sparse warnings
+    - clocksource/drivers/timer-ti-dm: Select TIMER_OF
+    - drm/msm: Fix potential NULL dereference in DPU SSPP
+    - smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
+    - libbpf: Fix BTF data layout checks and allow empty BTF
+    - s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
+    - irq: mips: avoid nested irq_enter()
+    - tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
+    - samples/kretprobes: Fix return value if register_kretprobe() failed
+    - KVM: s390: Fix handle_sske page fault handling
+    - libertas_tf: Fix possible memory leak in probe and disconnect
+    - libertas: Fix possible memory leak in probe and disconnect
+    - wcn36xx: add proper DMA memory barriers in rx path
+    - drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
+    - net: amd-xgbe: Toggle PLL settings during rate change
+    - net: phylink: avoid mvneta warning when setting pause parameters
+    - crypto: pcrypt - Delay write to padata->info
+    - selftests/bpf: Fix fclose/pclose mismatch in test_progs
+    - udp6: allow SO_MARK ctrl msg to affect routing
+    - ibmvnic: don't stop queue in xmit
+    - ibmvnic: Process crqs after enabling interrupts
+    - RDMA/rxe: Fix wrong port_cap_flags
+    - clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
+    - ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
+    - arm64: dts: rockchip: Fix GPU register width for RK3328
+    - ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
+    - RDMA/bnxt_re: Fix query SRQ failure
+    - arm64: dts: meson-g12a: Fix the pwm regulator supply properties
+    - ARM: dts: at91: tse850: the emac<->phy interface is rmii
+    - scsi: dc395: Fix error case unwinding
+    - MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
+    - JFS: fix memleak in jfs_mount
+    - ALSA: hda: Reduce udelay() at SKL+ position reporting
+    - arm: dts: omap3-gta04a4: accelerometer irq fix
+    - soc/tegra: Fix an error handling path in tegra_powergate_power_up()
+    - memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
+    - clk: at91: check pmc node status before registering syscore ops
+    - video: fbdev: chipsfb: use memset_io() instead of memset()
+    - serial: 8250_dw: Drop wrong use of ACPI_PTR()
+    - usb: gadget: hid: fix error code in do_config()
+    - power: supply: rt5033_battery: Change voltage values to µV
+    - scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
+    - RDMA/mlx4: Return missed an error if device doesn't support steering
+    - staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
+    - ARM: dts: stm32: fix SAI sub nodes register range
+    - ASoC: cs42l42: Correct some register default values
+    - ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
+    - phy: qcom-qusb2: Fix a memory leak on probe
+    - serial: xilinx_uartps: Fix race condition causing stuck TX
+    - HID: u2fzero: clarify error check and length calculations
+    - HID: u2fzero: properly handle timeouts in usb_submit_urb
+    - powerpc/44x/fsp2: add missing of_node_put
+    - mips: cm: Convert to bitfield API to fix out-of-bounds access
+    - power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
+    - apparmor: fix error check
+    - rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
+    - pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
+    - drm/plane-helper: fix uninitialized variable reference
+    - PCI: aardvark: Don't spam about PIO Response Status
+    - PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
+    - opp: Fix return in _opp_add_static_v2()
+    - NFS: Fix deadlocks in nfs_scan_commit_list()
+    - fs: orangefs: fix error return code of orangefs_revalidate_lookup()
+    - mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
+    - mtd: core: don't remove debugfs directory if device is in use
+    - dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
+    - auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
+    - auxdisplay: ht16k33: Connect backlight to fbdev
+    - auxdisplay: ht16k33: Fix frame buffer device blanking
+    - soc: fsl: dpaa2-console: free buffer before returning from
+      dpaa2_console_read
+    - netfilter: nfnetlink_queue: fix OOB when mac header was cleared
+    - dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
+    - signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
+    - m68k: set a default value for MEMORY_RESERVE
+    - watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
+    - ar7: fix kernel builds for compiler test
+    - scsi: qla2xxx: Fix gnl list corruption
+    - scsi: qla2xxx: Turn off target reset during issue_lip
+    - NFSv4: Fix a regression in nfs_set_open_stateid_locked()
+    - i2c: xlr: Fix a resource leak in the error handling path of
+      'xlr_i2c_probe()'
+    - xen-pciback: Fix return in pm_ctrl_init()
+    - net: davinci_emac: Fix interrupt pacing disable
+    - net: vlan: fix a UAF in vlan_dev_real_dev()
+    - ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
+    - bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
+    - mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and
+      zs_unregister_migration()
+    - zram: off by one in read_block_state()
+    - perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
+    - llc: fix out-of-bound array index in llc_sk_dev_hash()
+    - nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
+    - arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
+    - bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
+    - net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
+    - net: hns3: allow configure ETS bandwidth of all TCs
+    - vsock: prevent unnecessary refcnt inc for nonblocking connect
+    - net/smc: fix sk_refcnt underflow on linkdown and fallback
+    - cxgb4: fix eeprom len when diagnostics not implemented
+    - selftests/net: udpgso_bench_rx: fix port argument
+    - ARM: 9155/1: fix early early_iounmap()
+    - ARM: 9156/1: drop cc-option fallbacks for architecture selection
+    - parisc: Fix set_fixmap() on PA1.x CPUs
+    - irqchip/sifive-plic: Fixup EOI failed when masked
+    - f2fs: should use GFP_NOFS for directory inodes
+    - net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
+    - 9p/net: fix missing error check in p9_check_errors
+    - ovl: fix deadlock in splice write
+    - powerpc/lib: Add helper to check if offset is within conditional branch
+      range
+    - powerpc/bpf: Validate branch ranges
+    - powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
+    - powerpc/security: Add a helper to query stf_barrier type
+    - powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
+    - mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
+    - mm, oom: do not trigger out_of_memory from the #PF
+    - video: backlight: Drop maximum brightness override for brightness zero
+    - s390/cio: check the subchannel validity for dev_busid
+    - s390/tape: fix timer initialization in tape_std_assign()
+    - s390/cio: make ccw_device_dma_* more robust
+    - powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
+    - PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
+    - SUNRPC: Partial revert of commit 6f9f17287e78
+    - ath10k: fix invalid dma_addr_t token assignment
+    - selftests/bpf: Fix also no-alu32 strobemeta selftest
+    - Linux 5.4.160
+    - soc/tegra: pmc: Fix imbalanced clock disabling in error code path
+  * Focal update: v5.4.159 upstream stable release (LP: #1953071)
+    - Revert "x86/kvm: fix vcpu-id indexed array sizes"
+    - usb: ehci: handshake CMD_RUN instead of STS_HALT
+    - usb: gadget: Mark USB_FSL_QE broken on 64-bit
+    - usb: musb: Balance list entry in musb_gadget_queue
+    - usb-storage: Add compatibility quirk flags for iODD 2531/2541
+    - binder: don't detect sender/target during buffer cleanup
+    - printk/console: Allow to disable console output by using console="" or
+      console=null
+    - isofs: Fix out of bound access for corrupted isofs image
+    - comedi: dt9812: fix DMA buffers on stack
+    - comedi: ni_usb6501: fix NULL-deref in command paths
+    - comedi: vmk80xx: fix transfer-buffer overflows
+    - comedi: vmk80xx: fix bulk-buffer overflow
+    - comedi: vmk80xx: fix bulk and interrupt message timeouts
+    - staging: r8712u: fix control-message timeout
+    - staging: rtl8192u: fix control-message timeouts
+    - media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
+    - rsi: fix control-message timeout
+    - Linux 5.4.159
+  * Focal update: v5.4.158 upstream stable release (LP: #1953066)
+    - scsi: core: Put LLD module refcnt after SCSI device is released
+    - vrf: Revert "Reset skb conntrack connection..."
+    - net: ethernet: microchip: lan743x: Fix skb allocation failure
+    - media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
+    - Revert "xhci: Set HCD flag to defer primary roothub registration"
+    - Revert "usb: core: hcd: Add support for deferring roothub registration"
+    - sfc: Fix reading non-legacy supported link modes
+    - ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
+    - Linux 5.4.158
+  * [Ubuntu 20.04] Problem leading IUCV service down (on s390x) (LP: #1913442)
+    - usercopy: mark dma-kmalloc caches as usercopy caches
+
+  [ Ubuntu: 5.4.0-96.109 ]
+
+  * Support builtin revoked certificates (LP: #1932029)
+    - [Config]: add i386 to CONFIG_SYSTEM_REVOCATION_KEYS annotation
+  * CVE-2022-0185
+    - SAUCE: vfs: Out-of-bounds write of heap buffer in fs_context.c
+    - SAUCE: vfs: test that one given mount param is not larger than PAGE_SIZE
+
+  [ Ubuntu: 5.4.0-94.106 ]
+
+  * focal/linux: 5.4.0-94.106 -proposed tracker (LP: #1956628)
+  * [Regression] Focal kernel  5.4.0-92.103 fails to boot when Secure Encrypted
+    Virtualization(SEV) is enabled (LP: #1956575)
+    - x86/ioremap: Map EFI-reserved memory as encrypted for SEV
+
+  [ Ubuntu: 5.4.0-92.103 ]
+
+  * focal/linux: 5.4.0-92.103 -proposed tracker (LP: #1952316)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync update-dkms-versions helper
+    - debian/dkms-versions -- update from kernel-versions (main/2021.11.29)
+  * CVE-2021-4002
+    - tlb: mmu_gather: add tlb_flush_*_range APIs
+    - hugetlbfs: flush TLBs correctly after huge_pmd_unshare
+  * Re-enable DEBUG_INFO_BTF where it was disabled (LP: #1945632)
+    - [Config] Enable CONFIG_DEBUG_INFO_BTF on all arches
+  * Focal linux-azure: Vm crash on Dv5/Ev5 (LP: #1950462)
+    - KVM: VMX: eVMCS: make evmcs_sanitize_exec_ctrls() work again
+    - jump_label: Fix usage in module __init
+  * Support builtin revoked certificates (LP: #1932029)
+    - Revert "UBUNTU: SAUCE: (lockdown) Make get_cert_list() not complain about
+      cert lists that aren't present."
+    - integrity: Move import of MokListRT certs to a separate routine
+    - integrity: Load certs from the EFI MOK config table
+    - certs: Add ability to preload revocation certs
+    - integrity: Load mokx variables into the blacklist keyring
+    - certs: add 'x509_revocation_list' to gitignore
+    - SAUCE: Dump stack when X.509 certificates cannot be loaded
+    - [Packaging] build canonical-revoked-certs.pem from branch/arch certs
+    - [Packaging] Revoke 2012 UEFI signing certificate as built-in
+    - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys
+  * Support importing mokx keys into revocation list from the mok table
+    (LP: #1928679)
+    - efi: Support for MOK variable config table
+    - efi: mokvar-table: fix some issues in new code
+    - efi: mokvar: add missing include of asm/early_ioremap.h
+    - efi/mokvar: Reserve the table only if it is in boot services data
+    - SAUCE: integrity: add informational messages when revoking certs
+  * Support importing mokx keys into revocation list from the mok table
+    (LP: #1928679) // CVE-2020-26541 when certificates are revoked via
+    MokListXRT.
+    - SAUCE: integrity: Load mokx certs from the EFI MOK config table
+  * Focal update: v5.4.157 upstream stable release (LP: #1951883)
+    - ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
+    - ARM: 9134/1: remove duplicate memcpy() definition
+    - ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
+    - ARM: 9141/1: only warn about XIP address when not compile testing
+    - ipv6: use siphash in rt6_exception_hash()
+    - ipv4: use siphash instead of Jenkins in fnhe_hashfun()
+    - usbnet: sanity check for maxpacket
+    - usbnet: fix error return code in usbnet_probe()
+    - Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
+    - ata: sata_mv: Fix the error handling of mv_chip_id()
+    - nfc: port100: fix using -ERRNO as command type mask
+    - net/tls: Fix flipped sign in tls_err_abort() calls
+    - mmc: vub300: fix control-message timeouts
+    - mmc: cqhci: clear HALT state after CQE enable
+    - mmc: dw_mmc: exynos: fix the finding clock sample value
+    - mmc: sdhci: Map more voltage level to SDHCI_POWER_330
+    - mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning
+      circuit
+    - cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
+    - net: lan78xx: fix division by zero in send path
+    - tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
+    - IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
+    - IB/hfi1: Fix abba locking issue with sc_disable()
+    - nvmet-tcp: fix data digest pointer calculation
+    - nvme-tcp: fix data digest pointer calculation
+    - RDMA/mlx5: Set user priority for DCT
+    - arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
+    - regmap: Fix possible double-free in regcache_rbtree_exit()
+    - net: batman-adv: fix error handling
+    - net: Prevent infinite while loop in skb_tx_hash()
+    - RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
+    - nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
+    - net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume
+      fails
+    - net: ethernet: microchip: lan743x: Fix dma allocation failure by using
+      dma_set_mask_and_coherent
+    - net: nxp: lpc_eth.c: avoid hang when bringing interface down
+    - net/tls: Fix flipped sign in async_wait.err assignment
+    - phy: phy_ethtool_ksettings_get: Lock the phy for consistency
+    - phy: phy_start_aneg: Add an unlocked version
+    - sctp: use init_tag from inithdr for ABORT chunk
+    - sctp: fix the processing for INIT_ACK chunk
+    - sctp: fix the processing for COOKIE_ECHO chunk
+    - sctp: add vtag check in sctp_sf_violation
+    - sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
+    - sctp: add vtag check in sctp_sf_ootb
+    - net: use netif_is_bridge_port() to check for IFF_BRIDGE_PORT
+    - cfg80211: correct bridge/4addr mode check
+    - KVM: s390: clear kicked_mask before sleeping again
+    - KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
+    - perf script: Check session->header.env.arch before using it
+    - Linux 5.4.157
+  * keyboard not working on Medion notebook s17 series (LP: #1950536)
+    - ACPI: resources: Add one more Medion model in IRQ override quirk
+  * creat09 from ubuntu_ltp_syscalls and cve-2018-13405 from ubuntu_ltp/cve
+    failed with XFS (LP: #1950239)
+    - xfs: ensure that the inode uid/gid match values match the icdinode ones
+    - xfs: merge the projid fields in struct xfs_icdinode
+    - xfs: remove the icdinode di_uid/di_gid members
+    - xfs: fix up non-directory creation in SGID directories
+  * reuseport_bpf_numa in net from ubuntu_kernel_selftests fails on ppc64le
+    (LP: #1867570)
+    - selftests/net: Fix reuseport_bpf_numa by skipping unavailable nodes
+  * Focal update: v5.4.156 upstream stable release (LP: #1951295)
+    - parisc: math-emu: Fix fall-through warnings
+    - net: switchdev: do not propagate bridge updates across bridges
+    - tee: optee: Fix missing devices unregister during optee_remove
+    - ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
+    - xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
+    - xtensa: xtfpga: Try software restart before simulating CPU reset
+    - NFSD: Keep existing listeners on portlist error
+    - dma-debug: fix sg checks in debug_dma_map_sg()
+    - ASoC: wm8960: Fix clock configuration on slave mode
+    - netfilter: ipvs: make global sysctl readonly in non-init netns
+    - lan78xx: select CRC32
+    - net: dsa: lantiq_gswip: fix register definition
+    - NIOS2: irqflags: rename a redefined register name
+    - net: hns3: reset DWRR of unused tc to zero
+    - net: hns3: add limit ets dwrr bandwidth cannot be 0
+    - net: hns3: disable sriov before unload hclge layer
+    - net: stmmac: Fix E2E delay mechanism
+    - net: enetc: fix ethtool counter name for PM0_TERR
+    - can: rcar_can: fix suspend/resume
+    - can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state
+      notification
+    - can: peak_pci: peak_pci_remove(): fix UAF
+    - can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
+    - can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
+    - can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with
+      error length
+    - can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
+    - ceph: fix handling of "meta" errors
+    - ocfs2: fix data corruption after conversion from inline format
+    - ocfs2: mount fails with buffer overflow in strlen
+    - elfcore: correct reference to CONFIG_UML
+    - ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
+    - ALSA: hda/realtek: Add quirk for Clevo PC50HS
+    - ASoC: DAPM: Fix missing kctl change notifications
+    - audit: fix possible null-pointer dereference in audit_filter_rules
+    - powerpc64/idle: Fix SP offsets when saving GPRs
+    - KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
+    - KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to
+      guest
+    - powerpc/idle: Don't corrupt back chain when going idle
+    - mm, slub: fix mismatch between reconstructed freelist depth and cnt
+    - mm, slub: fix potential memoryleak in kmem_cache_open()
+    - nfc: nci: fix the UAF of rf_conn_info object
+    - isdn: cpai: check ctr->cnr to avoid array index out of bound
+    - netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
+    - selftests: netfilter: remove stray bash debug line
+    - gcc-plugins/structleak: add makefile var for disabling structleak
+    - btrfs: deal with errors when checking if a dir entry exists during log
+      replay
+    - net: stmmac: add support for dwmac 3.40a
+    - ARM: dts: spear3xx: Fix gmac node
+    - isdn: mISDN: Fix sleeping function called from invalid context
+    - platform/x86: intel_scu_ipc: Update timeout value in comment
+    - ALSA: hda: avoid write to STATESTS if controller is in reset
+    - Input: snvs_pwrkey - add clk handling
+    - scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
+    - tracing: Have all levels of checks prevent recursion
+    - ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
+    - pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
+    - Linux 5.4.156
+  * ubuntu_ltp / finit_module02 fails on v4.15 and other kernels
+    (LP: #1950644) // Focal update: v5.4.156 upstream stable release
+    (LP: #1951295)
+    - vfs: check fd has read access in kernel_read_file_from_fd()
+  * Focal update: v5.4.155 upstream stable release (LP: #1951291)
+    - ovl: simplify file splice
+    - ALSA: usb-audio: Add quirk for VF0770
+    - ALSA: seq: Fix a potential UAF by wrong private_free call order
+    - ALSA: hda/realtek: Complete partial device name to avoid ambiguity
+    - ALSA: hda/realtek: Add quirk for Clevo X170KM-G
+    - ALSA: hda/realtek - ALC236 headset MIC recording issue
+    - ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
+    - nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
+    - s390: fix strrchr() implementation
+    - csky: don't let sigreturn play with priveleged bits of status register
+    - csky: Fixup regs.sr broken in ptrace
+    - btrfs: unlock newly allocated extent buffer after error
+    - btrfs: deal with errors when replaying dir entry during log replay
+    - btrfs: deal with errors when adding inode reference during log replay
+    - btrfs: check for error when looking up inode during dir entry replay
+    - watchdog: orion: use 0 for unset heartbeat
+    - x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
+    - mei: me: add Ice Lake-N device id.
+    - xhci: guard accesses to ep_state in xhci_endpoint_reset()
+    - xhci: Fix command ring pointer corruption while aborting a command
+    - xhci: Enable trust tx length quirk for Fresco FL11 USB controller
+    - cb710: avoid NULL pointer subtraction
+    - efi/cper: use stack buffer for error record decoding
+    - efi: Change down_interruptible() in virt_efi_reset_system() to
+      down_trylock()
+    - usb: musb: dsps: Fix the probe error path
+    - Input: xpad - add support for another USB ID of Nacon GC-100
+    - USB: serial: qcserial: add EM9191 QDL support
+    - USB: serial: option: add Quectel EC200S-CN module support
+    - USB: serial: option: add Telit LE910Cx composition 0x1204
+    - USB: serial: option: add prod. id for Quectel EG91
+    - EDAC/armada-xp: Fix output of uncorrectable error counter
+    - nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
+    - x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
+    - powerpc/xive: Discard disabled interrupts in get_irqchip_state()
+    - iio: adc: aspeed: set driver data when adc probe.
+    - iio: adc128s052: Fix the error handling path of 'adc128_probe()'
+    - iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
+    - iio: light: opt3001: Fixed timeout error when 0 lux
+    - iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
+    - iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
+    - iio: dac: ti-dac5571: fix an error code in probe()
+    - sctp: account stream padding length for reconf chunk
+    - gpio: pca953x: Improve bias setting
+    - net: arc: select CRC32
+    - net: korina: select CRC32
+    - net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
+    - net: stmmac: fix get_hw_feature() on old hardware
+    - net: encx24j600: check error in devm_regmap_init_encx24j600
+    - ethernet: s2io: fix setting mac address during resume
+    - nfc: fix error handling of nfc_proto_register()
+    - NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
+    - NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
+    - pata_legacy: fix a couple uninitialized variable bugs
+    - ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
+    - mlxsw: thermal: Fix out-of-bounds memory accesses
+    - platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
+    - drm/panel: olimex-lcd-olinuxino: select CRC32
+    - drm/msm: Fix null pointer dereference on pointer edp
+    - drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
+    - drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
+    - acpi/arm64: fix next_platform_timer() section mismatch error
+    - mqprio: Correct stats in mqprio_dump_class_stats().
+    - qed: Fix missing error code in qed_slowpath_start()
+    - r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
+    - ionic: don't remove netdev->dev_addr when syncing uc list
+    - Linux 5.4.155
+  * [UBUNTU 20.04] kernel:  unable to read partitions on virtio-block dasd (kvm)
+    (LP: #1950144) // Focal update: v5.4.155 upstream stable release
+    (LP: #1951291)
+    - virtio: write back F_VERSION_1 before validate
+  * Focal update: v5.4.154 upstream stable release (LP: #1951288)
+    - net: phy: bcm7xxx: Fixed indirect MMD operations
+    - ext4: correct the error path of ext4_write_inline_data_end()
+    - HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
+    - netfilter: ip6_tables: zero-initialize fragment offset
+    - HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
+    - netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
+    - netfilter: nf_nat_masquerade: defer conntrack walk to work queue
+    - mac80211: Drop frames from invalid MAC address in ad-hoc mode
+    - m68k: Handle arrivals of multiple signals correctly
+    - net: prevent user from passing illegal stab size
+    - mac80211: check return value of rhashtable_init
+    - net: sun: SUNVNET_COMMON should depend on INET
+    - drm/amdgpu: fix gart.bo pin_count leak
+    - scsi: ses: Fix unsigned comparison with less than zero
+    - scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
+    - sched: Always inline is_percpu_thread()
+    - Linux 5.4.154
+  * Focal update: v5.4.153 upstream stable release (LP: #1950014)
+    - Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
+    - USB: cdc-acm: fix racy tty buffer accesses
+    - USB: cdc-acm: fix break reporting
+    - usb: typec: tcpm: handle SRC_STARTUP state if cc changes
+    - xen/privcmd: fix error handling in mmap-resource processing
+    - mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
+    - ovl: fix missing negative dentry check in ovl_rename()
+    - nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
+    - nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
+    - xen/balloon: fix cancelled balloon action
+    - ARM: dts: omap3430-sdp: Fix NAND device node
+    - ARM: dts: qcom: apq8064: use compatible which contains chipid
+    - MIPS: BPF: Restore MIPS32 cBPF JIT
+    - bpf, mips: Validate conditional branch offsets
+    - soc: qcom: socinfo: Fixed argument passed to platform_set_data()
+    - ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
+    - soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
+    - ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
+    - ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
+    - arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
+    - xtensa: move XCHAL_KIO_* definitions to kmem_layout.h
+    - xtensa: use CONFIG_USE_OF instead of CONFIG_OF
+    - xtensa: call irqchip_init only when CONFIG_USE_OF is selected
+    - bpf, arm: Fix register clobbering in div/mod implementation
+    - bpf: Fix integer overflow in prealloc_elems_and_freelist()
+    - phy: mdio: fix memory leak
+    - net_sched: fix NULL deref in fifo_set_limit()
+    - powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
+    - ptp_pch: Load module automatically if ID matches
+    - arm64: dts: freescale: Fix SP805 clock-names
+    - arm64: dts: ls1028a: add missing CAN nodes
+    - ARM: imx6: disable the GIC CPU interface before calling stby-poweroff
+      sequence
+    - net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
+    - net/sched: sch_taprio: properly cancel timer from taprio_destroy()
+    - net: sfp: Fix typo in state machine debug string
+    - netlink: annotate data races around nlk->bound
+    - bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
+    - video: fbdev: gbefb: Only instantiate device when built for IP32
+    - drm/nouveau/debugfs: fix file release memory leak
+    - gve: Correct available tx qpl check
+    - rtnetlink: fix if_nlmsg_stats_size() under estimation
+    - gve: fix gve_get_stats()
+    - i40e: fix endless loop under rtnl
+    - i40e: Fix freeing of uninitialized misc IRQ vector
+    - net: prefer socket bound to interface when not in VRF
+    - i2c: acpi: fix resource leak in reconfiguration device addition
+    - bpf, s390: Fix potential memory leak about jit_data
+    - RISC-V: Include clone3() on rv32
+    - x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
+    - x86/hpet: Use another crystalball to evaluate HPET usability
+    - x86/Kconfig: Correct reference to MWINCHIP3D
+    - Linux 5.4.153
+  * Focal update: v5.4.152 upstream stable release (LP: #1950009)
+    - net: mdio: introduce a shutdown method to mdio device drivers
+    - xen-netback: correct success/error reporting for the SKB-with-fraglist case
+    - sparc64: fix pci_iounmap() when CONFIG_PCI is not set
+    - ext2: fix sleeping in atomic bugs on error
+    - scsi: sd: Free scsi_disk device via put_device()
+    - usb: testusb: Fix for showing the connection speed
+    - usb: dwc2: check return value after calling platform_get_resource()
+    - selftests: be sure to make khdr before other targets
+    - selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
+    - scsi: ses: Retry failed Send/Receive Diagnostic commands
+    - tools/vm/page-types: remove dependency on opt_file for idle page tracking
+    - KVM: do not shrink halt_poll_ns below grow_start
+    - kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
+    - perf/x86: Reset destroy callback on event init failure
+    - silence nfscache allocation warnings with kvzalloc
+    - libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
+    - Linux 5.4.152
+  * linux-aws: Fix backport of RDMA/efa: Expose maximum  TX doorbell batch
+    (LP: #1949882)
+    - SAUCE: aws: Fix backport of RDMA/efa: Expose maximum TX doorbell batch
+
+  [ Ubuntu: 5.4.0-91.102 ]
+
+  * focal/linux: 5.4.0-91.102 -proposed tracker (LP: #1949840)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] update Ubuntu.md
+    - debian/dkms-versions -- update from kernel-versions (main/2021.11.08)
+  * KVM emulation failure when booting into  VM crash kernel with multiple CPUs
+    (LP: #1948862)
+    - KVM: x86: Properly reset MMU context at vCPU RESET/INIT
+  * aufs: kernel bug with apparmor and fuseblk (LP: #1948470)
+    - SAUCE: aufs: bugfix, stop omitting path->mnt
+  * ebpf:  bpf_redirect fails with ip6 gre interfaces (LP: #1947164)
+    - net: handle ARPHRD_IP6GRE in dev_is_mac_header_xmit()
+  * require CAP_NET_ADMIN to attach N_HCI ldisc (LP: #1949516)
+    - Bluetooth: hci_ldisc: require CAP_NET_ADMIN to attach N_HCI ldisc
+  * ACL updates on OCFS2 are not revalidated (LP: #1947161)
+    - ocfs2: fix remounting needed after setfacl command
+  * ppc64 BPF JIT mod by 1 will not return 0 (LP: #1948351)
+    - powerpc/bpf: Fix BPF_MOD when imm == 1
+  * Drop "UBUNTU: SAUCE: cachefiles: Page leaking in
+    cachefiles_read_backing_file while vmscan is active" (LP: #1947709)
+    - Revert "UBUNTU: SAUCE: cachefiles: Page leaking in
+      cachefiles_read_backing_file while vmscan is active"
+  * Reassign I/O Path of ConnectX-5 Port 1 before Port 2 causes NULL dereference
+    (LP: #1943464)
+    - s390/pci: fix leak of PCI device structure
+    - s390/pci: fix use after free of zpci_dev
+    - s390/pci: fix zpci_zdev_put() on reserve
+  * [SRU][F] USB: serial: pl2303: add support for PL2303HXN (LP: #1948377)
+    - USB: serial: pl2303: add support for PL2303HXN
+    - USB: serial: pl2303: fix line-speed handling on newer chips
+  * Focal update: v5.4.151 upstream stable release (LP: #1947888)
+    - tty: Fix out-of-bound vmalloc access in imageblit
+    - cpufreq: schedutil: Use kobject release() method to free sugov_tunables
+    - cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
+    - usb: cdns3: fix race condition before setting doorbell
+    - fs-verity: fix signed integer overflow with i_size near S64_MAX
+    - hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary
+      structure field
+    - scsi: ufs: Fix illegal offset in UPIU event trace
+    - mac80211: fix use-after-free in CCMP/GCMP RX
+    - x86/kvmclock: Move this_cpu_pvti into kvmclock.h
+    - drm/amd/display: Pass PCI deviceid into DC
+    - ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
+    - hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced
+      from sysfs
+    - mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
+    - mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
+    - mac80211: mesh: fix potentially unaligned access
+    - mac80211-hwsim: fix late beacon hrtimer handling
+    - sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
+    - hwmon: (tmp421) report /PVLD condition as fault
+    - hwmon: (tmp421) fix rounding for negative values
+    - net: ipv4: Fix rtnexthop len when RTA_FLOW is present
+    - e100: fix length calculation in e100_get_regs_len
+    - e100: fix buffer overrun in e100_get_regs
+    - selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
+    - scsi: csiostor: Add module softdep on cxgb4
+    - net: hns3: do not allow call hns3_nic_net_open repeatedly
+    - net: sched: flower: protect fl_walk() with rcu
+    - af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
+    - perf/x86/intel: Update event constraints for ICX
+    - elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
+    - debugfs: debugfs_create_file_size(): use IS_ERR to check for error
+    - ipack: ipoctal: fix stack information leak
+    - ipack: ipoctal: fix tty registration race
+    - ipack: ipoctal: fix tty-registration error handling
+    - ipack: ipoctal: fix missing allocation-failure check
+    - ipack: ipoctal: fix module reference leak
+    - ext4: fix loff_t overflow in ext4_max_bitmap_size()
+    - ext4: fix reserved space counter leakage
+    - ext4: fix potential infinite loop in ext4_dx_readdir()
+    - HID: u2fzero: ignore incomplete packets without data
+    - net: udp: annotate data race around udp_sk(sk)->corkflag
+    - net: stmmac: don't attach interface until resume finishes
+    - PCI: Fix pci_host_bridge struct device release/free handling
+    - libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
+    - hso: fix bailout in error case of probe
+    - usb: hso: fix error handling code of hso_create_net_device
+    - usb: hso: remove the bailout parameter
+    - crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
+    - HID: betop: fix slab-out-of-bounds Write in betop_probe
+    - netfilter: ipset: Fix oversized kvmalloc() calls
+    - HID: usbhid: free raw_report buffers in usbhid_stop
+    - Linux 5.4.151
+  * Focal update: v5.4.150 upstream stable release (LP: #1947886)
+    - usb: gadget: r8a66597: fix a loop in set_feature()
+    - usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
+    - usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
+    - usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
+    - cifs: fix incorrect check for null pointer in header_assemble
+    - xen/x86: fix PV trap handling on secondary processors
+    - usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
+    - USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
+    - USB: cdc-acm: fix minor-number release
+    - binder: make sure fd closes complete
+    - staging: greybus: uart: fix tty use after free
+    - Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
+    - USB: serial: mos7840: remove duplicated 0xac24 device ID
+    - USB: serial: option: add Telit LN920 compositions
+    - USB: serial: option: remove duplicate USB device ID
+    - USB: serial: option: add device id for Foxconn T99W265
+    - mcb: fix error handling in mcb_alloc_bus()
+    - erofs: fix up erofs_lookup tracepoint
+    - btrfs: prevent __btrfs_dump_space_info() to underflow its free space
+    - serial: mvebu-uart: fix driver's tx_empty callback
+    - net: hso: fix muxed tty registration
+    - afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation
+    - platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR()
+    - enetc: Fix illegal access when reading affinity_hint
+    - bnxt_en: Fix TX timeout when TX ring size is set to the smallest
+    - net/smc: add missing error check in smc_clc_prfx_set()
+    - gpio: uniphier: Fix void functions to remove return value
+    - qed: rdma - don't wait for resources under hw error recovery flow
+    - net/mlx4_en: Don't allow aRFS for encapsulated packets
+    - scsi: iscsi: Adjust iface sysfs attr detection
+    - tty: synclink_gt, drop unneeded forward declarations
+    - tty: synclink_gt: rename a conflicting function name
+    - fpga: machxo2-spi: Return an error on failure
+    - fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
+    - thermal/core: Potential buffer overflow in thermal_build_list_of_policies()
+    - cifs: fix a sign extension bug
+    - scsi: qla2xxx: Restore initiator in dual mode
+    - scsi: lpfc: Use correct scnprintf() limit
+    - irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
+    - irqchip/gic-v3-its: Fix potential VPE leak on error
+    - md: fix a lock order reversal in md_alloc
+    - blktrace: Fix uaf in blk_trace access after removing by sysfs
+    - net: macb: fix use after free on rmmod
+    - net: stmmac: allow CSR clock of 300MHz
+    - m68k: Double cast io functions to unsigned long
+    - ipv6: delay fib6_sernum increase in fib6_add
+    - bpf: Add oversize check before call kvcalloc()
+    - xen/balloon: use a kernel thread instead a workqueue
+    - nvme-multipath: fix ANA state updates when a namespace is not present
+    - sparc32: page align size in arch_dma_alloc
+    - blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
+    - compiler.h: Introduce absolute_pointer macro
+    - net: i825xx: Use absolute_pointer for memcpy from fixed memory location
+    - sparc: avoid stringop-overread errors
+    - qnx4: avoid stringop-overread errors
+    - parisc: Use absolute_pointer() to define PAGE0
+    - arm64: Mark __stack_chk_guard as __ro_after_init
+    - alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
+    - net: 6pack: Fix tx timeout and slot time
+    - spi: Fix tegra20 build with CONFIG_PM=n
+    - EDAC/synopsys: Fix wrong value type assignment for edac_mode
+    - thermal/drivers/int340x: Do not set a wrong tcc offset on resume
+    - arm64: dts: marvell: armada-37xx: Extend PCIe MEM space
+    - xen/balloon: fix balloon kthread freezing
+    - qnx4: work around gcc false positive warning bug
+    - Linux 5.4.150
+  * ACL updates on OCFS2 are not revalidated (LP: #1947161) // Focal update:
+    v5.4.150 upstream stable release (LP: #1947886)
+    - ocfs2: drop acl cache for directories too
+  * Focal update: v5.4.149 upstream stable release (LP: #1947885)
+    - PCI: pci-bridge-emul: Fix big-endian support
+    - PCI: aardvark: Indicate error in 'val' when config read fails
+    - PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
+    - PCI: aardvark: Fix reporting CRS value
+    - PCI/ACPI: Add Ampere Altra SOC MCFG quirk
+    - KVM: remember position in kvm->vcpus array
+    - console: consume APC, DM, DCS
+    - s390/pci_mmio: fully validate the VMA before calling follow_pte()
+    - ARM: Qualify enabling of swiotlb_init()
+    - apparmor: remove duplicate macro list_entry_is_head()
+    - ARM: 9077/1: PLT: Move struct plt_entries definition to header
+    - ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
+    - ARM: 9079/1: ftrace: Add MODULE_PLTS support
+    - ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE
+    - sctp: validate chunk size in __rcv_asconf_lookup
+    - sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
+    - staging: rtl8192u: Fix bitwise vs logical operator in
+      TranslateRxSignalStuff819xUsb()
+    - um: virtio_uml: fix memory leak on init failures
+    - dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
+    - thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
+    - 9p/trans_virtio: Remove sysfs file on probe failure
+    - prctl: allow to setup brk for et_dyn executables
+    - nilfs2: use refcount_dec_and_lock() to fix potential UAF
+    - profiling: fix shift-out-of-bounds bugs
+    - pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was
+      registered
+    - phy: avoid unnecessary link-up delay in polling mode
+    - net: stmmac: reset Tx desc base address before restarting Tx
+    - Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
+    - thermal/core: Fix thermal_cooling_device_register() prototype
+    - drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
+    - parisc: Move pci_dev_is_behind_card_dino to where it is used
+    - dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
+    - dmaengine: ioat: depends on !UML
+    - dmaengine: xilinx_dma: Set DMA mask for coherent APIs
+    - ceph: request Fw caps before updating the mtime in ceph_write_iter
+    - ceph: lockdep annotations for try_nonblocking_invalidate
+    - btrfs: fix lockdep warning while mounting sprout fs
+    - nilfs2: fix memory leak in nilfs_sysfs_create_device_group
+    - nilfs2: fix NULL pointer in nilfs_##name##_attr_release
+    - nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
+    - nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
+    - pwm: img: Don't modify HW state in .remove() callback
+    - pwm: rockchip: Don't modify HW state in .remove() callback
+    - pwm: stm32-lp: Don't modify HW state in .remove() callback
+    - blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
+    - rtc: rx8010: select REGMAP_I2C
+    - drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
+    - Linux 5.4.149
+
+  [ Ubuntu: 5.4.0-90.101 ]
+
+  * focal/linux: 5.4.0-90.101 -proposed tracker (LP: #1947260)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.10.18)
+  * Add final-checks to check certificates (LP: #1947174)
+    - [Packaging] Add system trusted and revocation keys final check
+  * No sound on Lenovo laptop models Legion 15IMHG05, Yoga 7 14ITL5, and 13s
+    Gen2 (LP: #1939052)
+    - ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i
+      15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.
+    - ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s
+      Gen2
+  * CVE-2020-36385
+    - RDMA/cma: Add missing locking to rdma_accept()
+    - RDMA/ucma: Fix the locking of ctx->file
+    - RDMA/ucma: Rework ucma_migrate_id() to avoid races with destroy
+  * Focal update: v5.4.148 upstream stable release (LP: #1946802)
+    - rtc: tps65910: Correct driver module alias
+    - btrfs: wake up async_delalloc_pages waiters after submit
+    - btrfs: reset replace target device to allocation state on close
+    - blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
+    - blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
+    - PCI/MSI: Skip masking MSI-X on Xen PV
+    - powerpc/perf/hv-gpci: Fix counter value parsing
+    - xen: fix setting of max_pfn in shared_info
+    - include/linux/list.h: add a macro to test if entry is pointing to the head
+    - 9p/xen: Fix end of loop tests for list_for_each_entry
+    - tools/thermal/tmon: Add cross compiling support
+    - pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
+    - pinctrl: ingenic: Fix incorrect pull up/down info
+    - soc: qcom: aoss: Fix the out of bound usage of cooling_devs
+    - soc: aspeed: lpc-ctrl: Fix boundary check for mmap
+    - soc: aspeed: p2a-ctrl: Fix boundary check for mmap
+    - arm64: head: avoid over-mapping in map_memory
+    - crypto: public_key: fix overflow during implicit conversion
+    - block: bfq: fix bfq_set_next_ioprio_data()
+    - power: supply: max17042: handle fails of reading status register
+    - dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
+    - VMCI: fix NULL pointer dereference when unmapping queue pair
+    - media: uvc: don't do DMA on stack
+    - media: rc-loopback: return number of emitters rather than error
+    - Revert "dmaengine: imx-sdma: refine to load context only once"
+    - dmaengine: imx-sdma: remove duplicated sdma_load_context
+    - libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
+    - ARM: 9105/1: atags_to_fdt: don't warn about stack size
+    - PCI/portdrv: Enable Bandwidth Notification only if port supports it
+    - PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
+    - PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
+    - PCI: xilinx-nwl: Enable the clock through CCF
+    - PCI: aardvark: Fix checking for PIO status
+    - PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
+    - PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
+    - HID: input: do not report stylus battery state as "full"
+    - f2fs: quota: fix potential deadlock
+    - scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND
+    - IB/hfi1: Adjust pkey entry in index 0
+    - RDMA/iwcm: Release resources if iw_cm module initialization fails
+    - docs: Fix infiniband uverbs minor number
+    - pinctrl: samsung: Fix pinctrl bank pin count
+    - vfio: Use config not menuconfig for VFIO_NOIOMMU
+    - powerpc/stacktrace: Include linux/delay.h
+    - RDMA/efa: Remove double QP type assignment
+    - f2fs: show f2fs instance in printk_ratelimited
+    - f2fs: reduce the scope of setting fsck tag when de->name_len is zero
+    - openrisc: don't printk() unconditionally
+    - dma-debug: fix debugfs initialization order
+    - SUNRPC: Fix potential memory corruption
+    - scsi: fdomain: Fix error return code in fdomain_probe()
+    - pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
+    - scsi: smartpqi: Fix an error code in pqi_get_raid_map()
+    - scsi: qedi: Fix error codes in qedi_alloc_global_queues()
+    - scsi: qedf: Fix error codes in qedf_alloc_global_queues()
+    - powerpc/config: Renable MTD_PHYSMAP_OF
+    - scsi: target: avoid per-loop XCOPY buffer allocations
+    - HID: i2c-hid: Fix Elan touchpad regression
+    - KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs
+      are live
+    - platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from
+      run_smbios_call
+    - fscache: Fix cookie key hashing
+    - clk: at91: sam9x60: Don't use audio PLL
+    - clk: at91: clk-generated: pass the id of changeable parent at registration
+    - clk: at91: clk-generated: Limit the requested rate to our range
+    - KVM: PPC: Fix clearing never mapped TCEs in realmode
+    - f2fs: fix to account missing .skipped_gc_rwsem
+    - f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
+    - f2fs: fix to unmap pages from userspace process in punch_hole()
+    - MIPS: Malta: fix alignment of the devicetree buffer
+    - kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
+    - userfaultfd: prevent concurrent API initialization
+    - drm/amdgpu: Fix amdgpu_ras_eeprom_init()
+    - ASoC: atmel: ATMEL drivers don't need HAS_DMA
+    - media: dib8000: rewrite the init prbs logic
+    - crypto: mxs-dcp - Use sg_mapping_iter to copy data
+    - PCI: Use pci_update_current_state() in pci_enable_device_flags()
+    - tipc: keep the skb in rcv queue until the whole data is read
+    - iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
+    - iavf: do not override the adapter state in the watchdog task
+    - iavf: fix locking of critical sections
+    - ARM: dts: qcom: apq8064: correct clock names
+    - video: fbdev: kyro: fix a DoS bug by restricting user input
+    - netlink: Deal with ESRCH error in nlmsg_notify()
+    - Smack: Fix wrong semantics in smk_access_entry()
+    - drm: avoid blocking in drm_clients_info's rcu section
+    - igc: Check if num of q_vectors is smaller than max before array access
+    - usb: host: fotg210: fix the endpoint's transactional opportunities
+      calculation
+    - usb: host: fotg210: fix the actual_length of an iso packet
+    - usb: gadget: u_ether: fix a potential null pointer dereference
+    - USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
+    - usb: gadget: composite: Allow bMaxPower=0 if self-powered
+    - staging: board: Fix uninitialized spinlock when attaching genpd
+    - tty: serial: jsm: hold port lock when reporting modem line changes
+    - drm/amd/display: Fix timer_per_pixel unit error
+    - drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex
+    - bpf/tests: Fix copy-and-paste error in double word test
+    - bpf/tests: Do not PASS tests without actually testing the result
+    - video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
+    - video: fbdev: kyro: Error out if 'pixclock' equals zero
+    - video: fbdev: riva: Error out if 'pixclock' equals zero
+    - ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
+    - flow_dissector: Fix out-of-bounds warnings
+    - s390/jump_label: print real address in a case of a jump label bug
+    - s390: make PCI mio support a machine flag
+    - serial: 8250: Define RX trigger levels for OxSemi 950 devices
+    - xtensa: ISS: don't panic in rs_init
+    - hvsi: don't panic on tty_register_driver failure
+    - serial: 8250_pci: make setup_port() parameters explicitly unsigned
+    - staging: ks7010: Fix the initialization of the 'sleep_status' structure
+    - samples: bpf: Fix tracex7 error raised on the missing argument
+    - ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
+    - Bluetooth: skip invalid hci_sync_conn_complete_evt
+    - workqueue: Fix possible memory leaks in wq_numa_init()
+    - bonding: 3ad: fix the concurrency between __bond_release_one() and
+      bond_3ad_state_machine_handler()
+    - arm64: tegra: Fix Tegra194 PCIe EP compatible string
+    - ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the
+      matching in-/output
+    - media: imx258: Rectify mismatch of VTS value
+    - media: imx258: Limit the max analogue gain to 480
+    - media: v4l2-dv-timings.c: fix wrong condition in two for-loops
+    - media: TDA1997x: fix tda1997x_query_dv_timings() return value
+    - media: tegra-cec: Handle errors of clk_prepare_enable()
+    - ARM: dts: imx53-ppd: Fix ACHC entry
+    - arm64: dts: qcom: sdm660: use reg value for memory node
+    - net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()
+    - drm/msm: mdp4: drop vblank get/put from prepare/complete_commit
+    - selftests/bpf: Fix xdp_tx.c prog section name
+    - Bluetooth: schedule SCO timeouts with delayed_work
+    - Bluetooth: avoid circular locks in sco_sock_connect
+    - net/mlx5: Fix variable type to match 64bit
+    - gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable
+      access in amdgpu_i2c_router_select_ddc_port()
+    - drm/display: fix possible null-pointer dereference in dcn10_set_clock()
+    - mac80211: Fix monitor MTU limit so that A-MSDUs get through
+    - ARM: tegra: tamonten: Fix UART pad setting
+    - arm64: tegra: Fix compatible string for Tegra132 CPUs
+    - arm64: dts: ls1046a: fix eeprom entries
+    - nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data
+    - Bluetooth: Fix handling of LE Enhanced Connection Complete
+    - opp: Don't print an error if required-opps is missing
+    - serial: sh-sci: fix break handling for sysrq
+    - tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
+    - rpc: fix gss_svc_init cleanup on failure
+    - staging: rts5208: Fix get_ms_information() heap buffer size
+    - gfs2: Don't call dlm after protocol is unmounted
+    - usb: chipidea: host: fix port index underflow and UBSAN complains
+    - lockd: lockd server-side shouldn't set fl_ops
+    - drm/exynos: Always initialize mapping in exynos_drm_register_dma()
+    - m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
+    - btrfs: tree-log: check btrfs_lookup_data_extent return value
+    - ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER
+    - ASoC: Intel: Skylake: Fix passing loadable flag for module
+    - of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
+    - mmc: sdhci-of-arasan: Check return value of non-void funtions
+    - mmc: rtsx_pci: Fix long reads when clock is prescaled
+    - selftests/bpf: Enlarge select() timeout for test_maps
+    - mmc: core: Return correct emmc response in case of ioctl error
+    - cifs: fix wrong release in sess_alloc_buffer() failed path
+    - Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST
+      quirk set"
+    - usb: musb: musb_dsps: request_irq() after initializing musb
+    - usbip: give back URBs for unsent unlink requests during cleanup
+    - usbip:vhci_hcd USB port can get stuck in the disabled state
+    - ASoC: rockchip: i2s: Fix regmap_ops hang
+    - ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
+    - drm/amdkfd: Account for SH/SE count when setting up cu masks.
+    - iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed
+    - iwlwifi: mvm: avoid static queue number aliasing
+    - iwlwifi: mvm: fix access to BSS elements
+    - net/mlx5: DR, Enable QP retransmission
+    - parport: remove non-zero check on count
+    - ath9k: fix OOB read ar9300_eeprom_restore_internal
+    - ath9k: fix sleeping in atomic context
+    - net: fix NULL pointer reference in cipso_v4_doi_free
+    - fix array-index-out-of-bounds in taprio_change
+    - net: w5100: check return value after calling platform_get_resource()
+    - parisc: fix crash with signals and alloca
+    - ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
+    - scsi: BusLogic: Fix missing pr_cont() use
+    - scsi: qla2xxx: Changes to support kdump kernel
+    - scsi: qla2xxx: Sync queue idx with queue_pair_map idx
+    - cpufreq: powernv: Fix init_chip_info initialization in numa=off
+    - s390/pv: fix the forcing of the swiotlb
+    - mm/hugetlb: initialize hugetlb_usage in mm_init
+    - mm,vmscan: fix divide by zero in get_scan_count
+    - memcg: enable accounting for pids in nested pid namespaces
+    - platform/chrome: cros_ec_proto: Send command again when timeout occurs
+    - lib/test_stackinit: Fix static initializer test
+    - net: dsa: lantiq_gswip: fix maximum frame length
+    - drm/msi/mdp4: populate priv->kms in mdp4_kms_init
+    - drm/amdgpu: Fix BUG_ON assert
+    - drm/panfrost: Simplify lock_region calculation
+    - drm/panfrost: Use u64 for size in lock_region
+    - drm/panfrost: Clamp lock region to Bifrost minimum
+    - btrfs: fix upper limit for max_inline for page size 64K
+    - xen: reset legacy rtc flag for PV domU
+    - bnx2x: Fix enabling network interfaces without VFs
+    - arm64/sve: Use correct size when reinitialising SVE state
+    - PM: base: power: don't try to use non-existing RTC for storing data
+    - PCI: Add AMD GPU multi-function power dependencies
+    - drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10
+    - drm/etnaviv: return context from etnaviv_iommu_context_get
+    - drm/etnaviv: put submit prev MMU context when it exists
+    - drm/etnaviv: stop abusing mmu_context as FE running marker
+    - drm/etnaviv: keep MMU context across runtime suspend/resume
+    - drm/etnaviv: exec and MMU state is lost when resetting the GPU
+    - drm/etnaviv: fix MMU context leak on GPU reset
+    - drm/etnaviv: reference MMU context when setting up hardware state
+    - drm/etnaviv: add missing MMU context put when reaping MMU mapping
+    - s390/sclp: fix Secure-IPL facility detection
+    - x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
+    - tipc: fix an use-after-free issue in tipc_recvmsg
+    - net-caif: avoid user-triggerable WARN_ON(1)
+    - ptp: dp83640: don't define PAGE0
+    - net/l2tp: Fix reference count leak in l2tp_udp_recv_core
+    - r6040: Restore MDIO clock frequency after MAC reset
+    - tipc: increase timeout in tipc_sk_enqueue()
+    - perf machine: Initialize srcline string member in add_location struct
+    - net/mlx5: FWTrace, cancel work on alloc pd error flow
+    - net/mlx5: Fix potential sleeping in atomic context
+    - events: Reuse value read using READ_ONCE instead of re-reading it
+    - vhost_net: fix OoB on sendmsg() failure.
+    - net/af_unix: fix a data-race in unix_dgram_poll
+    - net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
+    - tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
+    - qed: Handle management FW error
+    - dt-bindings: arm: Fix Toradex compatible typo
+    - ibmvnic: check failover_pending in login response
+    - KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing
+      registers
+    - net: hns3: pad the short tunnel frame before sending to hardware
+    - net: hns3: change affinity_mask to numa node range
+    - net: hns3: disable mac in flr process
+    - net: hns3: fix the timing issue of VF clearing interrupt sources
+    - mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
+    - dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
+    - mfd: db8500-prcmu: Adjust map to reality
+    - PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms
+    - fuse: fix use after free in fuse_read_interrupt()
+    - mfd: Don't use irq_create_mapping() to resolve a mapping
+    - tracing/probes: Reject events which have the same name of existing one
+    - PCI: Add ACS quirks for Cavium multi-function devices
+    - Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
+    - net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
+    - PCI: ibmphp: Fix double unmap of io_mem
+    - ethtool: Fix an error code in cxgb2.c
+    - NTB: Fix an error code in ntb_msit_probe()
+    - NTB: perf: Fix an error code in perf_setup_inbuf()
+    - mfd: axp20x: Update AXP288 volatile ranges
+    - PCI: Fix pci_dev_str_match_path() alloc while atomic bug
+    - mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
+    - KVM: arm64: Handle PSCI resets before userspace touches vCPU state
+    - PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
+    - mtd: rawnand: cafe: Fix a resource leak in the error handling path of
+      'cafe_nand_probe()'
+    - ARC: export clear_user_page() for modules
+    - perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}
+    - net: dsa: b53: Fix calculating number of switch ports
+    - netfilter: socket: icmp6: fix use-after-scope
+    - fq_codel: reject silly quantum parameters
+    - qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
+    - ip_gre: validate csum_start only on pull
+    - net: renesas: sh_eth: Fix freeing wrong tx descriptor
+    - Linux 5.4.148
+  * Focal update: v5.4.147 upstream stable release (LP: #1946795)
+    - Linux 5.4.147
+    - upstream stable to v5.4.147
+  * CVE-2021-3428
+    - ext4: save the error code which triggered an ext4_error() in the superblock
+    - ext4: simulate various I/O and checksum errors when reading metadata
+    - ext4: save all error info in save_error_info() and drop ext4_set_errno()
+    - ext4: check journal inode extents more carefully
+  * ip6gretap / erspan / ip6erspan in rtnetlink.sh from net of
+    ubuntu_kernel_selftests failed on B-5.4-aws / B-5.4-gke / B-5.4-oracle /
+    B-5.4-azure / B-5.4 (LP: #1896448)
+    - SAUCE: selftests: rtnetlink: fixes for older iproute2
+  * CVE-2019-19449
+    - f2fs: fix wrong total_sections check and fsmeta check
+    - f2fs: fix to do sanity check on segment/section count
+  * kernel bug found when disconnecting one fiber channel interface on Cisco
+    Chassis with fnic DRV_VERSION "1.6.0.47" (LP: #1944586)
+    - scsi: fnic: Do not call 'scsi_done()' for unhandled commands
+  * memfd from ubuntu_kernel_selftests failed to build on B-5.4 (unknown type
+    name ‘__u64’) (LP: #1944613)
+    - SAUCE: selftests/memfd: fix __u64 not defined build issue
+  * Medion Notebook Keyboard not working (LP: #1909814)
+    - ACPI: resources: Add DMI-based legacy IRQ override quirk
+  * vrf: fix refcnt leak with vxlan slaves (LP: #1945180)
+    - ipv4: Fix device used for dst_alloc with local routes
+  * Check for changes relevant for security certifications (LP: #1945989)
+    - [Packaging] Add a new fips-checks script
+    - [Packaging] Add fips-checks as part of finalchecks
+  * Fix cold plugged USB device on certain PCIe USB cards (LP: #1945211)
+    - Revert "UBUNTU: SAUCE: Revert "usb: core: reduce power-on-good delay time of
+      root hub""
+    - usb: core: hcd: Add support for deferring roothub registration
+    - xhci: Set HCD flag to defer primary roothub registration
+    - usb: core: hcd: Modularize HCD stop configuration in usb_stop_hcd()
+  * CVE-2021-3759
+    - memcg: enable accounting of ipc resources
+  * Focal update: v5.4.146 upstream stable release (LP: #1946024)
+    - locking/mutex: Fix HANDOFF condition
+    - regmap: fix the offset of register error log
+    - crypto: mxs-dcp - Check for DMA mapping errors
+    - sched/deadline: Fix reset_on_fork reporting of DL tasks
+    - power: supply: axp288_fuel_gauge: Report register-address on readb / writeb
+      errors
+    - crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop()
+    - sched/deadline: Fix missing clock update in migrate_task_rq_dl()
+    - rcu/tree: Handle VM stoppage in stall detection
+    - hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()
+    - hrtimer: Ensure timerfd notification for HIGHRES=n
+    - udf: Check LVID earlier
+    - udf: Fix iocharset=utf8 mount option
+    - isofs: joliet: Fix iocharset=utf8 mount option
+    - bcache: add proper error unwinding in bcache_device_init
+    - nvme-tcp: don't update queue count when failing to set io queues
+    - nvme-rdma: don't update queue count when failing to set io queues
+    - nvmet: pass back cntlid on successful completion
+    - power: supply: max17042_battery: fix typo in MAx17042_TOFF
+    - s390/cio: add dev_busid sysfs entry for each subchannel
+    - libata: fix ata_host_start()
+    - crypto: qat - do not ignore errors from enable_vf2pf_comms()
+    - crypto: qat - handle both source of interrupt in VF ISR
+    - crypto: qat - fix reuse of completion variable
+    - crypto: qat - fix naming for init/shutdown VF to PF notifications
+    - crypto: qat - do not export adf_iov_putmsg()
+    - fcntl: fix potential deadlock for &fasync_struct.fa_lock
+    - udf_get_extendedattr() had no boundary checks.
+    - s390/kasan: fix large PMD pages address alignment check
+    - s390/debug: fix debug area life cycle
+    - m68k: emu: Fix invalid free in nfeth_cleanup()
+    - sched: Fix UCLAMP_FLAG_IDLE setting
+    - spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
+    - spi: spi-pic32: Fix issue with uninitialized dma_slave_config
+    - genirq/timings: Fix error return code in irq_timings_test_irqs()
+    - lib/mpi: use kcalloc in mpi_resize
+    - clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock
+      source channel
+    - crypto: qat - use proper type for vf_mask
+    - certs: Trigger creation of RSA module signing key if it's not an RSA key
+    - regulator: vctrl: Use locked regulator_get_voltage in probe path
+    - regulator: vctrl: Avoid lockdep warning in enable/disable ops
+    - spi: sprd: Fix the wrong WDG_LOAD_VAL
+    - spi: spi-zynq-qspi: use wait_for_completion_timeout to make
+      zynq_qspi_exec_mem_op not interruptible
+    - EDAC/i10nm: Fix NVDIMM detection
+    - drm/panfrost: Fix missing clk_disable_unprepare() on error in
+      panfrost_clk_init()
+    - media: TDA1997x: enable EDID support
+    - soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally
+    - media: cxd2880-spi: Fix an error handling path
+    - bpf: Fix a typo of reuseport map in bpf.h.
+    - bpf: Fix potential memleak and UAF in the verifier.
+    - ARM: dts: aspeed-g6: Fix HVI3C function-group in pinctrl dtsi
+    - arm64: dts: renesas: r8a77995: draak: Remove bogus adv7511w properties
+    - soc: qcom: rpmhpd: Use corner in power_off
+    - media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
+    - media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
+    - media: dvb-usb: Fix error handling in dvb_usb_i2c_init
+    - media: go7007: remove redundant initialization
+    - media: coda: fix frame_mem_ctrl for YUV420 and YVU420 formats
+    - Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
+    - 6lowpan: iphc: Fix an off-by-one check of array index
+    - netns: protect netns ID lookups with RCU
+    - tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
+    - ARM: dts: meson8: Use a higher default GPU clock frequency
+    - ARM: dts: meson8b: odroidc1: Fix the pwm regulator supply properties
+    - ARM: dts: meson8b: mxq: Fix the pwm regulator supply properties
+    - ARM: dts: meson8b: ec100: Fix the pwm regulator supply properties
+    - net/mlx5e: Prohibit inner indir TIRs in IPoIB
+    - cgroup/cpuset: Fix a partition bug with hotplug
+    - net: cipso: fix warnings in netlbl_cipsov4_add_std
+    - i2c: highlander: add IRQ check
+    - leds: lt3593: Put fwnode in any case during ->probe()
+    - leds: trigger: audio: Add an activate callback to ensure the initial
+      brightness is set
+    - media: em28xx-input: fix refcount bug in em28xx_usb_disconnect
+    - media: venus: venc: Fix potential null pointer dereference on pointer fmt
+    - PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
+    - PCI: PM: Enable PME if it can be signaled from D3cold
+    - soc: qcom: smsm: Fix missed interrupts if state changes while masked
+    - debugfs: Return error during {full/open}_proxy_open() on rmmod
+    - Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
+    - PM: EM: Increase energy calculation precision
+    - drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs
+    - arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7
+    - counter: 104-quad-8: Return error when invalid mode during ceiling_write
+    - Bluetooth: fix repeated calls to sco_sock_kill
+    - drm/msm/dsi: Fix some reference counted resource leaks
+    - usb: gadget: udc: at91: add IRQ check
+    - usb: phy: fsl-usb: add IRQ check
+    - usb: phy: twl6030: add IRQ checks
+    - usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse
+    - usb: host: ohci-tmio: add IRQ check
+    - usb: phy: tahvo: add IRQ check
+    - mac80211: Fix insufficient headroom issue for AMSDU
+    - lockd: Fix invalid lockowner cast after vfs_test_lock
+    - nfsd4: Fix forced-expiry locking
+    - usb: gadget: mv_u3d: request_irq() after initializing UDC
+    - mm/swap: consider max pages in iomap_swapfile_add_extent
+    - Bluetooth: add timeout sanity check to hci_inquiry
+    - i2c: iop3xx: fix deferred probing
+    - i2c: s3c2410: fix IRQ check
+    - rsi: fix error code in rsi_load_9116_firmware()
+    - rsi: fix an error code in rsi_probe()
+    - ASoC: Intel: Skylake: Leave data as is when invoking TLV IPCs
+    - ASoC: Intel: Skylake: Fix module resource and format selection
+    - mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
+    - mmc: moxart: Fix issue with uninitialized dma_slave_config
+    - bpf: Fix possible out of bound write in narrow load handling
+    - CIFS: Fix a potencially linear read overflow
+    - i2c: mt65xx: fix IRQ check
+    - usb: ehci-orion: Handle errors of clk_prepare_enable() in probe
+    - usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA
+      config is available
+    - tty: serial: fsl_lpuart: fix the wrong mapbase value
+    - ASoC: wcd9335: Fix a double irq free in the remove function
+    - ASoC: wcd9335: Fix a memory leak in the error handling path of the probe
+      function
+    - ASoC: wcd9335: Disable irq on slave ports in the remove function
+    - ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
+    - bcma: Fix memory leak for internally-handled cores
+    - brcmfmac: pcie: fix oops on failure to resume and reprobe
+    - ipv6: make exception cache less predictible
+    - ipv4: make exception cache less predictible
+    - net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed
+    - net: qualcomm: fix QCA7000 checksum handling
+    - octeontx2-af: Fix loop in free and unmap counter
+    - ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
+    - bpf: Introduce BPF nospec instruction for mitigating Spectre v4
+    - bpf: Fix leakage due to insufficient speculative store bypass mitigation
+    - bpf: verifier: Allocate idmap scratch in verifier env
+    - bpf: Fix pointer arithmetic mask tightening under state pruning
+    - tty: Fix data race between tiocsti() and flush_to_ldisc()
+    - perf/x86/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op
+    - x86/resctrl: Fix a maybe-uninitialized build warning treated as error
+    - KVM: s390: index kvm->arch.idle_mask by vcpu_idx
+    - KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is
+      adjusted
+    - KVM: nVMX: Unconditionally clear nested.pi_pending on nested VM-Enter
+    - fuse: truncate pagecache on atomic_o_trunc
+    - fuse: flush extending writes
+    - IMA: remove -Wmissing-prototypes warning
+    - IMA: remove the dependency on CRYPTO_MD5
+    - fbmem: don't allow too huge resolutions
+    - backlight: pwm_bl: Improve bootloader/kernel device handover
+    - clk: kirkwood: Fix a clocking boot regression
+    - Linux 5.4.146
+  * AMD A8-7680 (amdgpu): broken Xorg acceleration and hibernation
+    (LP: #1920674) // Focal update: v5.4.146 upstream stable release
+    (LP: #1946024)
+    - drm/amdgpu/acp: Make PM domain really work
+  * Focal update: v5.4.145 upstream stable release (LP: #1945517)
+    - fscrypt: add fscrypt_symlink_getattr() for computing st_size
+    - ext4: report correct st_size for encrypted symlinks
+    - f2fs: report correct st_size for encrypted symlinks
+    - ubifs: report correct st_size for encrypted symlinks
+    - kthread: Fix PF_KTHREAD vs to_kthread() race
+    - xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG
+    - gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V
+      formats
+    - reset: reset-zynqmp: Fixed the argument data type
+    - qed: Fix the VF msix vectors flow
+    - net: macb: Add a NULL check on desc_ptp
+    - qede: Fix memset corruption
+    - perf/x86/intel/pt: Fix mask of num_address_ranges
+    - perf/x86/amd/ibs: Work around erratum #1197
+    - perf/x86/amd/power: Assign pmu.module
+    - cryptoloop: add a deprecation warning
+    - ARM: 8918/2: only build return_address() if needed
+    - ALSA: hda/realtek: Workaround for conflicting SSID on ASUS ROG Strix G17
+    - ALSA: pcm: fix divide error in snd_pcm_lib_ioctl
+    - ARC: wireup clone3 syscall
+    - media: stkwebcam: fix memory leak in stk_camera_probe
+    - igmp: Add ip_mc_list lock in ip_check_mc_rcu
+    - USB: serial: mos7720: improve OOM-handling in read_mos_reg()
+    - ipv4/icmp: l3mdev: Perform icmp error route lookup on source device routing
+      table (v2)
+    - powerpc/boot: Delete unneeded .globl _zimage_start
+    - net: ll_temac: Remove left-over debug message
+    - mm/page_alloc: speed up the iteration of max_order
+    - Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables
+      ASPM"
+    - x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating
+    - Revert "btrfs: compression: don't try to compress if we don't have enough
+      pages"
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 800
+    - usb: host: xhci-rcar: Don't reload firmware after the completion
+    - usb: mtu3: use @mult for HS isoc or intr
+    - usb: mtu3: fix the wrong HS mult value
+    - xhci: fix unsafe memory usage in xhci tracing
+    - x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
+    - PCI: Call Max Payload Size-related fixup quirks early
+    - Linux 5.4.145
+  * Focal update: v5.4.144 upstream stable release (LP: #1944756)
+    - net: qrtr: fix another OOB Read in qrtr_endpoint_post
+    - ARC: Fix CONFIG_STACKDEPOT
+    - netfilter: conntrack: collect all entries in one cycle
+    - once: Fix panic when module unload
+    - ovl: fix uninitialized pointer read in ovl_lookup_real_one()
+    - mmc: sdhci-msm: Update the software timeout value for sdhc
+    - mm, oom: make the calculation of oom badness more accurate
+    - can: usb: esd_usb2: esd_usb2_rx_event(): fix the interchange of the CAN RX
+      and TX error counters
+    - Revert "USB: serial: ch341: fix character loss at high transfer rates"
+    - USB: serial: option: add new VID/PID to support Fibocom FG150
+    - usb: dwc3: gadget: Fix dwc3_calc_trbs_left()
+    - usb: dwc3: gadget: Stop EP0 transfers during pullup disable
+    - scsi: core: Fix hang of freezing queue between blocking and running device
+    - RDMA/bnxt_re: Add missing spin lock initialization
+    - IB/hfi1: Fix possible null-pointer dereference in _extend_sdma_tx_descs()
+    - e1000e: Fix the max snoop/no-snoop latency for 10M
+    - RDMA/efa: Free IRQ vectors on error flow
+    - ip_gre: add validation for csum_start
+    - xgene-v2: Fix a resource leak in the error handling path of 'xge_probe()'
+    - net: marvell: fix MVNETA_TX_IN_PRGRS bit number
+    - rtnetlink: Return correct error on changing device netns
+    - net: hns3: clear hardware resource when loading driver
+    - net: hns3: fix duplicate node in VLAN list
+    - net: hns3: fix get wrong pfc_en when query PFC configuration
+    - drm/i915: Fix syncmap memory leak
+    - usb: gadget: u_audio: fix race condition on endpoint stop
+    - perf/x86/intel/uncore: Fix integer overflow on 23 bit left shift of a u32
+    - opp: remove WARN when no valid OPPs remain
+    - virtio: Improve vq->broken access to avoid any compiler optimization
+    - virtio_pci: Support surprise removal of virtio pci device
+    - vringh: Use wiov->used to check for read/write desc order
+    - qed: qed ll2 race condition fixes
+    - qed: Fix null-pointer dereference in qed_rdma_create_qp()
+    - drm: Copy drm_wait_vblank to user before returning
+    - drm/nouveau/disp: power down unused DP links during init
+    - net/rds: dma_map_sg is entitled to merge entries
+    - btrfs: fix race between marking inode needs to be logged and log syncing
+    - vt_kdsetmode: extend console locking
+    - bpf: Track contents of read-only maps as scalars
+    - bpf: Fix cast to pointer from integer of different size warning
+    - net: dsa: mt7530: fix VLAN traffic leaks again
+    - KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow MMUs
+    - arm64: dts: qcom: msm8994-angler: Fix gpio-reserved-ranges 85-88
+    - btrfs: fix NULL pointer dereference when deleting device by invalid id
+    - Revert "floppy: reintroduce O_NDELAY fix"
+    - Revert "parisc: Add assembly implementations for memset, strlen, strcpy,
+      strncpy and strcat"
+    - net: don't unconditionally copy_from_user a struct ifreq for socket ioctls
+    - audit: move put_tree() to avoid trim_trees refcount underflow and UAF
+    - Linux 5.4.144
+
+  [ Ubuntu: 5.4.0-89.100 ]
+
+  * focal/linux: 5.4.0-89.100 -proposed tracker (LP: #1944901)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.27)
+  * ext4 journal recovery fails w/ data=journal + mmap (LP: #1847340)
+    - jbd2: introduce/export functions
+      jbd2_journal_submit|finish_inode_data_buffers()
+    - jbd2, ext4, ocfs2: introduce/use journal callbacks
+      j_submit|finish_inode_data_buffers()
+    - ext4: data=journal: fixes for ext4_page_mkwrite()
+    - ext4: data=journal: write-protect pages on j_submit_inode_data_buffers()
+    - ext4: fix mmap write protection for data=journal mode
+  * CVE-2021-40490
+    - ext4: fix race writing to an inline_data file while its xattrs are changing
+  * Obsolete patch "UBUNTU: SAUCE: ext4: fix directory index node split
+    corruption" (LP: #1942902)
+    - Revert "UBUNTU: SAUCE: ext4: fix directory index node split corruption"
+  * psock_snd.sh in net from ubuntu_kernel_selftests ADT failure with
+    focal/groovy/hirsute/impish (LP: #1892213)
+    - selftests/net: remove min gso test in packet_snd
+  * Focal update: v5.4.143 upstream stable release (LP: #1944212)
+    - ext4: fix EXT4_MAX_LOGICAL_BLOCK macro
+    - x86/fpu: Make init_fpstate correct with optimized XSAVE
+    - ath: Use safer key clearing with key cache entries
+    - ath9k: Clear key cache explicitly on disabling hardware
+    - ath: Export ath_hw_keysetmac()
+    - ath: Modify ath_key_delete() to not need full key entry
+    - ath9k: Postpone key cache entry deletion for TXQ frames reference it
+    - mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards
+    - media: zr364xx: propagate errors from zr364xx_start_readpipe()
+    - media: zr364xx: fix memory leaks in probe()
+    - media: drivers/media/usb: fix memory leak in zr364xx_probe
+    - USB: core: Avoid WARNings for 0-length descriptor requests
+    - dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
+    - dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
+    - ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
+    - dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not
+      yet available
+    - scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry()
+    - scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach()
+    - scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
+    - scsi: core: Fix capacity set to zero after offlinining device
+    - ARM: dts: nomadik: Fix up interrupt controller node names
+    - net: usb: lan78xx: don't modify phy_device state concurrently
+    - drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X
+    - Bluetooth: hidp: use correct wait queue when removing ctrl_wait
+    - iommu: Check if group is NULL before remove device
+    - cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
+    - dccp: add do-while-0 stubs for dccp_pr_debug macros
+    - virtio: Protect vqs list access
+    - vhost: Fix the calculation in vhost_overflow()
+    - bpf: Clear zext_dst of dead insns
+    - bnxt: don't lock the tx queue from napi poll
+    - bnxt: disable napi before canceling DIM
+    - net: 6pack: fix slab-out-of-bounds in decode_data
+    - ptp_pch: Restore dependency on PCI
+    - bnxt_en: Add missing DMA memory barriers
+    - vrf: Reset skb conntrack connection on VRF rcv
+    - virtio-net: support XDP when not more queues
+    - virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO
+    - net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32
+    - net: mdio-mux: Don't ignore memory allocation errors
+    - net: mdio-mux: Handle -EPROBE_DEFER correctly
+    - ovs: clear skb->tstamp in forwarding path
+    - i40e: Fix ATR queue selection
+    - iavf: Fix ping is lost after untrusted VF had tried to change MAC
+    - ovl: add splice file read write helper
+    - mmc: dw_mmc: Fix hang on data CRC error
+    - ALSA: hda - fix the 'Capture Switch' value change notifications
+    - tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event
+      name
+    - slimbus: messaging: start transaction ids from 1 instead of zero
+    - slimbus: messaging: check for valid transaction id
+    - slimbus: ngd: reset dma setup during runtime pm
+    - ipack: tpci200: fix many double free issues in tpci200_pci_probe
+    - ipack: tpci200: fix memory leak in the tpci200_register
+    - btrfs: prevent rename2 from exchanging a subvol with a directory from
+      different parents
+    - PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI
+    - ASoC: intel: atom: Fix breakage for PCM buffer address setup
+    - mm, memcg: avoid stale protection values when cgroup is above protection
+    - mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim
+    - fs: warn about impending deprecation of mandatory locks
+    - netfilter: nft_exthdr: fix endianness of tcp option cast
+    - Linux 5.4.143
+  * Focal update: v5.4.142 upstream stable release (LP: #1944202)
+    - iio: adc: ti-ads7950: Ensure CS is deasserted after reading channels
+    - iio: humidity: hdc100x: Add margin to the conversion time
+    - iio: adc: Fix incorrect exit of for-loop
+    - ASoC: xilinx: Fix reference to PCM buffer address
+    - ASoC: intel: atom: Fix reference to PCM buffer address
+    - i2c: dev: zero out array used for i2c reads from userspace
+    - ceph: reduce contention in ceph_check_delayed_caps()
+    - ACPI: NFIT: Fix support for virtual SPA ranges
+    - libnvdimm/region: Fix label activation vs errors
+    - ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
+    - ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
+    - ASoC: cs42l42: Correct definition of ADC Volume control
+    - ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J
+    - ASoC: cs42l42: Fix inversion of ADC Notch Switch control
+    - ASoC: cs42l42: Remove duplicate control for WNF filter frequency
+    - netfilter: nf_conntrack_bridge: Fix memory leak when error
+    - ASoC: cs42l42: Fix LRCLK frame start edge
+    - net: dsa: mt7530: add the missing RxUnicast MIB counter
+    - platform/x86: pcengines-apuv2: revert wiring up simswitch GPIO as LED
+    - platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-
+      lookup tables
+    - net: phy: micrel: Fix link detection on ksz87xx switch"
+    - ppp: Fix generating ifname when empty IFLA_IFNAME is specified
+    - net: sched: act_mirred: Reset ct info when mirror/redirect skb
+    - iavf: Set RSS LUT and key in reset handle path
+    - psample: Add a fwd declaration for skbuff
+    - net/mlx5: Fix return value from tracer initialization
+    - drm/meson: fix colour distortion from HDR set during vendor u-boot
+    - net: dsa: microchip: Fix ksz_read64()
+    - net: Fix memory leak in ieee802154_raw_deliver
+    - net: igmp: fix data-race in igmp_ifc_timer_expire()
+    - net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
+    - net: dsa: lantiq: fix broken backpressure in .port_fdb_dump
+    - net: dsa: sja1105: fix broken backpressure in .port_fdb_dump
+    - net: bridge: fix memleak in br_add_if()
+    - net: linkwatch: fix failure to restore device state across suspend/resume
+    - tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B
+      packets
+    - net: igmp: increase size of mr_ifc_count
+    - xen/events: Fix race in set_evtchn_to_irq
+    - vsock/virtio: avoid potential deadlock when vsock device remove
+    - nbd: Aovid double completion of a request
+    - powerpc/kprobes: Fix kprobe Oops happens in booke
+    - x86/tools: Fix objdump version check again
+    - genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP
+    - x86/msi: Force affinity setup before startup
+    - x86/ioapic: Force affinity setup before startup
+    - x86/resctrl: Fix default monitoring groups reporting
+    - genirq/msi: Ensure deactivation on teardown
+    - genirq/timings: Prevent potential array overflow in __irq_timings_store()
+    - PCI/MSI: Enable and mask MSI-X early
+    - PCI/MSI: Mask all unused MSI-X entries
+    - PCI/MSI: Enforce that MSI-X table entry is masked for update
+    - PCI/MSI: Enforce MSI[X] entry updates to be visible
+    - PCI/MSI: Do not set invalid bits in MSI mask
+    - PCI/MSI: Correct misleading comments
+    - PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
+    - PCI/MSI: Protect msi_desc::masked for multi-MSI
+    - KVM: VMX: Use current VMCS to query WAITPKG support for MSR emulation
+    - ceph: add some lockdep assertions around snaprealm handling
+    - ceph: clean up locking annotation for ceph_get_snap_realm and
+      __lookup_snap_realm
+    - ceph: take snap_empty_lock atomically with snaprealm refcount change
+    - vmlinux.lds.h: Handle clang's module.{c,d}tor sections
+    - iommu/vt-d: Fix agaw for a supported 48 bit guest address width
+    - Linux 5.4.142
+  * Focal update: v5.4.141 upstream stable release (LP: #1943484)
+    - KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
+    - tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag
+    - media: v4l2-mem2mem: always consider OUTPUT queue during poll
+    - tracing: Reject string operand in the histogram expression
+    - usb: dwc3: Stop active transfers before halting the controller
+    - usb: dwc3: gadget: Allow runtime suspend if UDC unbinded
+    - usb: dwc3: gadget: Restart DWC3 gadget when enabling pullup
+    - usb: dwc3: gadget: Prevent EP queuing while stopping transfers
+    - usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable
+    - usb: dwc3: gadget: Disable gadget IRQ during pullup disable
+    - usb: dwc3: gadget: Avoid runtime resume if disabling pullup
+    - KVM: X86: MMU: Use the correct inherited permissions to get shadow page
+    - USB:ehci:fix Kunpeng920 ehci hardware problem
+    - ALSA: hda: Add quirk for ASUS Flow x13
+    - ppp: Fix generating ppp unit id when ifname is not specified
+    - ovl: prevent private clone if bind mount is not allowed
+    - btrfs: make qgroup_free_reserved_data take btrfs_inode
+    - btrfs: make btrfs_qgroup_reserve_data take btrfs_inode
+    - btrfs: qgroup: allow to unreserve range without releasing other ranges
+    - btrfs: qgroup: try to flush qgroup space when we get -EDQUOT
+    - btrfs: transaction: Cleanup unused TRANS_STATE_BLOCKED
+    - btrfs: qgroup: remove ASYNC_COMMIT mechanism in favor of reserve retry-
+      after-EDQUOT
+    - btrfs: fix lockdep splat when enabling and disabling qgroups
+    - net: xilinx_emaclite: Do not print real IOMEM pointer
+    - btrfs: qgroup: don't commit transaction when we already hold the handle
+    - btrfs: export and rename qgroup_reserve_meta
+    - btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
+    - Linux 5.4.141
+
+  [ Ubuntu: 5.4.0-88.99 ]
+
+  * focal/linux: 5.4.0-88.99 -proposed tracker (LP: #1944747)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.06)
+  * please drop virtualbox-guest-dkms virtualbox-guest-source (LP: #1933248)
+    - Revert "UBUNTU: [Config] Disable virtualbox dkms build"
+
+  [ Ubuntu: 5.4.0-87.98 ]
+
+  * please drop virtualbox-guest-dkms virtualbox-guest-source (LP: #1933248)
+    - [Config] Disable virtualbox dkms build
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.09.06)
+  *  LRMv5: switch primary version handling to kernel-versions data set
+    (LP: #1928921)
+    - [Packaging] switch to kernel-versions
+  * disable “CONFIG_HISI_DMA” config for ubuntu version (LP: #1936771)
+    - Disable CONFIG_HISI_DMA
+    - [Config] Record hisi_dma no longer built for arm64
+  * memory leaking when removing a profile (LP: #1939915)
+    - apparmor: Fix memory leak of profile proxy
+  * CryptoExpress EP11 cards are going offline (LP: #1939618)
+    - s390/zcrypt: Support for CCA protected key block version 2
+    - s390: Replace zero-length array with flexible-array member
+    - s390/zcrypt: Use scnprintf() for avoiding potential buffer overflow
+    - s390/zcrypt: replace snprintf/sprintf with scnprintf
+    - s390/ap: Remove ap device suspend and resume callbacks
+    - s390/zcrypt: use fallthrough;
+    - s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
+    - s390/ap: remove power management code from ap bus and drivers
+    - s390/ap: introduce new ap function ap_get_qdev()
+    - s390/zcrypt: use kzalloc
+    - s390/zcrypt: fix smatch warnings
+    - s390/zcrypt: code beautification and struct field renames
+    - s390/zcrypt: split ioctl function into smaller code units
+    - s390/ap: rename and clarify ap state machine related stuff
+    - s390/zcrypt: provide cex4 cca sysfs attributes for cex3
+    - s390/ap: rework crypto config info and default domain code
+    - s390/zcrypt: simplify cca_findcard2 loop code
+    - s390/zcrypt: remove set_fs() invocation in zcrypt device driver
+    - s390/ap: remove unnecessary spin_lock_init()
+    - s390/zcrypt: Support for CCA APKA master keys
+    - s390/zcrypt: introduce msg tracking in zcrypt functions
+    - s390/ap: split ap queue state machine state from device state
+    - s390/ap: add error response code field for ap queue devices
+    - s390/ap: add card/queue deconfig state
+    - s390/sclp: Add support for SCLP AP adapter config/deconfig
+    - s390/ap: Support AP card SCLP config and deconfig operations
+    - s390/ap/zcrypt: revisit ap and zcrypt error handling
+    - s390/zcrypt: move ap_msg param one level up the call chain
+    - s390/zcrypt: Introduce Failure Injection feature
+    - s390/zcrypt: fix wrong format specifications
+    - s390/ap: fix ap devices reference counting
+    - s390/zcrypt: return EIO when msg retry limit reached
+    - s390/zcrypt: fix zcard and zqueue hot-unplug memleak
+    - s390/ap: Fix hanging ioctl caused by wrong msg counter
+  * memfd from ubuntu_kernel_selftests failed to build on B-5.4 (LP: #1926142)
+    - SAUCE: selftests/memfd: fix build when F_SEAL_FUTURE_WRITE is not defined
+  * [SRU] Ice driver causes the kernel to crash with Ubuntu 20.04.2 with ethtool
+    specific register commands (LP: #1939855)
+    - ice: Fix bad register reads
+  * ubunut_kernel_selftests: memory-hotplug: avoid spamming logs with
+    dump_page() (LP: #1941829)
+    - selftests: memory-hotplug: avoid spamming logs with dump_page(), ratio limit
+      hot-remove error test
+  * e1000e blocks the boot process when it tried to write checksum to its NVM
+    (LP: #1936998)
+    - e1000e: Do not take care about recovery NVM checksum
+  * Focal update: v5.4.140 upstream stable release (LP: #1941798)
+    - Revert "ACPICA: Fix memory leak caused by _CID repair function"
+    - ALSA: seq: Fix racy deletion of subscriber
+    - arm64: dts: ls1028a: fix node name for the sysclk
+    - ARM: imx: add missing iounmap()
+    - ARM: imx: add missing clk_disable_unprepare()
+    - ARM: dts: imx6qdl-sr-som: Increase the PHY reset duration to 10ms
+    - ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz
+    - ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
+    - ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins
+    - arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode
+    - ALSA: usb-audio: fix incorrect clock source setting
+    - clk: stm32f4: fix post divisor setup for I2S/SAI PLLs
+    - ARM: dts: am437x-l4: fix typo in can@0 node
+    - omap5-board-common: remove not physically existing vdds_1v8_main fixed-
+      regulator
+    - spi: imx: mx51-ecspi: Reinstate low-speed CONFIGREG delay
+    - spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation
+    - scsi: sr: Return correct event when media event code is 3
+    - media: videobuf2-core: dequeue if start_streaming fails
+    - dmaengine: imx-dma: configure the generic DMA type to make it work
+    - net, gro: Set inner transport header offset in tcp/udp GRO hook
+    - net: dsa: sja1105: overwrite dynamic FDB entries with static ones in
+      .port_fdb_add
+    - net: dsa: sja1105: invalidate dynamic FDB entries learned concurrently with
+      statically added ones
+    - net: phy: micrel: Fix detection of ksz87xx switch
+    - net: natsemi: Fix missing pci_disable_device() in probe and remove
+    - gpio: tqmx86: really make IRQ optional
+    - sctp: move the active_key update after sh_keys is added
+    - nfp: update ethtool reporting of pauseframe control
+    - net: ipv6: fix returned variable type in ip6_skb_dst_mtu
+    - mips: Fix non-POSIX regexp
+    - bnx2x: fix an error code in bnx2x_nic_load()
+    - net: pegasus: fix uninit-value in get_interrupt_interval
+    - net: fec: fix use-after-free in fec_drv_remove
+    - net: vxge: fix use-after-free in vxge_device_unregister
+    - blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit()
+    - Bluetooth: defer cleanup of resources in hci_unregister_dev()
+    - USB: usbtmc: Fix RCU stall warning
+    - USB: serial: option: add Telit FD980 composition 0x1056
+    - USB: serial: ch341: fix character loss at high transfer rates
+    - USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
+    - firmware_loader: use -ETIMEDOUT instead of -EAGAIN in fw_load_sysfs_fallback
+    - firmware_loader: fix use-after-free in firmware_fallback_sysfs
+    - ALSA: hda/realtek: add mic quirk for Acer SF314-42
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum 600
+    - usb: cdns3: Fixed incorrect gadget state
+    - usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers
+    - usb: gadget: f_hid: fixed NULL pointer dereference
+    - usb: gadget: f_hid: idle uses the highest byte for duration
+    - usb: otg-fsm: Fix hrtimer list corruption
+    - clk: fix leak on devm_clk_bulk_get_all() unwind
+    - scripts/tracing: fix the bug that can't parse raw_trace_func
+    - tracing / histogram: Give calculation hist_fields a size
+    - optee: Clear stale cache entries during initialization
+    - tee: add tee_shm_alloc_kernel_buf()
+    - optee: Fix memory leak when failing to register shm pages
+    - tpm_ftpm_tee: Free and unregister TEE shared memory during kexec
+    - staging: rtl8723bs: Fix a resource leak in sd_int_dpc
+    - staging: rtl8712: get rid of flush_scheduled_work
+    - media: rtl28xxu: fix zero-length control request
+    - pipe: increase minimum default pipe size to 2 pages
+    - ext4: fix potential htree corruption when growing large_dir directories
+    - serial: tegra: Only print FIFO error message when an error occurs
+    - serial: 8250_mtk: fix uart corruption issue when rx power off
+    - serial: 8250: Mask out floating 16/32-bit bus bits
+    - MIPS: Malta: Do not byte-swap accesses to the CBUS UART
+    - serial: 8250_pci: Enumerate Elkhart Lake UARTs via dedicated driver
+    - serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts.
+    - timers: Move clearing of base::timer_running under base:: Lock
+    - pcmcia: i82092: fix a null pointer dereference bug
+    - md/raid10: properly indicate failure when ending a failed write request
+    - KVM: x86: accept userspace interrupt only if no event is injected
+    - KVM: Do not leak memory for duplicate debugfs directories
+    - KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds
+    - arm64: vdso: Avoid ISB after reading from cntvct_el0
+    - soc: ixp4xx: fix printing resources
+    - spi: meson-spicc: fix memory leak in meson_spicc_remove
+    - soc: ixp4xx/qmgr: fix invalid __iomem access
+    - perf/x86/amd: Don't touch the AMD64_EVENTSEL_HOSTONLY bit inside the guest
+    - bpf, selftests: Adjust few selftest result_unpriv outcomes
+    - libata: fix ata_pio_sector for CONFIG_HIGHMEM
+    - reiserfs: add check for root_inode in reiserfs_fill_super
+    - reiserfs: check directory items on read from disk
+    - virt_wifi: fix error on connect
+    - alpha: Send stop IPI to send to online CPUs
+    - net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and
+      ql_adapter_reset
+    - arm64: fix compat syscall return truncation
+    - Linux 5.4.140
+  * Focal update: v5.4.139 upstream stable release (LP: #1941796)
+    - btrfs: delete duplicated words + other fixes in comments
+    - btrfs: do not commit logs and transactions during link and rename operations
+    - btrfs: fix race causing unnecessary inode logging during link and rename
+    - btrfs: fix lost inode on log replay after mix of fsync, rename and inode
+      eviction
+    - regulator: rt5033: Fix n_voltages settings for BUCK and LDO
+    - spi: stm32h7: fix full duplex irq handler handling
+    - ASoC: tlv320aic31xx: fix reversed bclk/wclk master bits
+    - r8152: Fix potential PM refcount imbalance
+    - qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()
+    - net: Fix zero-copy head len calculation.
+    - nvme: fix nvme_setup_command metadata trace event
+    - ACPI: fix NULL pointer dereference
+    - Revert "Bluetooth: Shutdown controller after workqueues are flushed or
+      cancelled"
+    - firmware: arm_scmi: Ensure drivers provide a probe function
+    - firmware: arm_scmi: Add delayed response status check
+    - bpf: Inherit expanded/patched seen count from old aux data
+    - bpf: Do not mark insn as seen under speculative path verification
+    - bpf: Fix leakage under speculation on mispredicted branches
+    - bpf: Test_verifier, add alu32 bounds tracking tests
+    - bpf, selftests: Add a verifier test for assigning 32bit reg states to 64bit
+      ones
+    - bpf, selftests: Adjust few selftest outcomes wrt unreachable code
+    - spi: mediatek: Fix fifo transfer
+    - Linux 5.4.139
+  * Focal update: v5.4.138 upstream stable release (LP: #1940559)
+    - net_sched: check error pointer in tcf_dump_walker()
+    - x86/asm: Ensure asm/proto.h can be included stand-alone
+    - btrfs: fix rw device counting in __btrfs_free_extra_devids
+    - btrfs: mark compressed range uptodate only if all bio succeed
+    - x86/kvm: fix vcpu-id indexed array sizes
+    - KVM: add missing compat KVM_CLEAR_DIRTY_LOG
+    - ocfs2: fix zero out valid data
+    - ocfs2: issue zeroout to EOF blocks
+    - can: j1939: j1939_xtp_rx_dat_one(): fix rxtimer value between consecutive
+      TP.DT to 750ms
+    - can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF
+    - can: mcba_usb_start(): add missing urb->transfer_dma initialization
+    - can: usb_8dev: fix memory leak
+    - can: ems_usb: fix memory leak
+    - can: esd_usb2: fix memory leak
+    - HID: wacom: Re-enable touch by default for Cintiq 24HDT / 27QHDT
+    - NIU: fix incorrect error return, missed in previous revert
+    - nfc: nfcsim: fix use after free during module unload
+    - cfg80211: Fix possible memory leak in function cfg80211_bss_update
+    - netfilter: conntrack: adjust stop timestamp to real expiry value
+    - netfilter: nft_nat: allow to specify layer 4 protocol NAT only
+    - i40e: Fix logic of disabling queues
+    - i40e: Fix firmware LLDP agent related warning
+    - i40e: Fix queue-to-TC mapping on Tx
+    - i40e: Fix log TC creation failure when max num of queues is exceeded
+    - tipc: fix sleeping in tipc accept routine
+    - net: Set true network header for ECN decapsulation
+    - mlx4: Fix missing error code in mlx4_load_one()
+    - net: llc: fix skb_over_panic
+    - net/mlx5: Fix flow table chaining
+    - net/mlx5e: Fix nullptr in mlx5e_hairpin_get_mdev()
+    - sctp: fix return value check in __sctp_rcv_asconf_lookup
+    - tulip: windbond-840: Fix missing pci_disable_device() in probe and remove
+    - sis900: Fix missing pci_disable_device() in probe and remove
+    - can: hi311x: fix a signedness bug in hi3110_cmd()
+    - PCI: mvebu: Setup BAR0 in order to fix MSI
+    - powerpc/pseries: Fix regression while building external modules
+    - i40e: Add additional info to PHY type error
+    - can: j1939: j1939_session_deactivate(): clarify lifetime of session object
+    - Linux 5.4.138
+  * Focal update: v5.4.137 upstream stable release (LP: #1940557)
+    - selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c
+    - tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include
+    - KVM: x86: determine if an exception has an error code only when injecting
+      it.
+    - af_unix: fix garbage collect vs MSG_PEEK
+    - workqueue: fix UAF in pwq_unbound_release_workfn()
+    - cgroup1: fix leaked context root causing sporadic NULL deref in LTP
+    - net/802/mrp: fix memleak in mrp_request_join()
+    - net/802/garp: fix memleak in garp_request_join()
+    - net: annotate data race around sk_ll_usec
+    - sctp: move 198 addresses from unusable to private scope
+    - ipv6: allocate enough headroom in ip6_finish_output2()
+    - hfs: add missing clean-up in hfs_fill_super
+    - hfs: fix high memory mapping in hfs_bnode_read
+    - hfs: add lock nesting notation to hfs_find_init
+    - firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow
+    - firmware: arm_scmi: Fix range check for the maximum number of pending
+      messages
+    - cifs: fix the out of range assignment to bit fields in
+      parse_server_interfaces
+    - iomap: remove the length variable in iomap_seek_data
+    - iomap: remove the length variable in iomap_seek_hole
+    - ARM: dts: versatile: Fix up interrupt controller node names
+    - ipv6: ip6_finish_output2: set sk into newly allocated nskb
+    - Linux 5.4.137
+  * Focal update: v5.4.136 upstream stable release (LP: #1939899)
+    - igc: Fix use-after-free error during reset
+    - igb: Fix use-after-free error during reset
+    - igc: change default return of igc_read_phy_reg()
+    - ixgbe: Fix an error handling path in 'ixgbe_probe()'
+    - igc: Prefer to use the pci_release_mem_regions method
+    - igc: Fix an error handling path in 'igc_probe()'
+    - igb: Fix an error handling path in 'igb_probe()'
+    - fm10k: Fix an error handling path in 'fm10k_probe()'
+    - e1000e: Fix an error handling path in 'e1000_probe()'
+    - iavf: Fix an error handling path in 'iavf_probe()'
+    - igb: Check if num of q_vectors is smaller than max before array access
+    - igb: Fix position of assignment to *ring
+    - gve: Fix an error handling path in 'gve_probe()'
+    - ipv6: fix 'disable_policy' for fwd packets
+    - selftests: icmp_redirect: remove from checking for IPv6 route get
+    - selftests: icmp_redirect: IPv6 PMTU info should be cleared after redirect
+    - pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped
+    - cxgb4: fix IRQ free race during driver unload
+    - nvme-pci: do not call nvme_dev_remove_admin from nvme_remove
+    - perf probe: Fix dso->nsinfo refcounting
+    - perf env: Fix sibling_dies memory leak
+    - perf test session_topology: Delete session->evlist
+    - perf test event_update: Fix memory leak of evlist
+    - perf dso: Fix memory leak in dso__new_map()
+    - perf script: Fix memory 'threads' and 'cpus' leaks on exit
+    - perf lzma: Close lzma stream on exit
+    - perf probe-file: Delete namelist in del_events() on the error path
+    - perf data: Close all files in close_dir()
+    - spi: imx: add a check for speed_hz before calculating the clock
+    - spi: stm32: Use dma_request_chan() instead dma_request_slave_channel()
+    - spi: stm32: fixes pm_runtime calls in probe/remove
+    - regulator: hi6421: Use correct variable type for regmap api val argument
+    - regulator: hi6421: Fix getting wrong drvdata
+    - spi: mediatek: fix fifo rx mode
+    - ASoC: rt5631: Fix regcache sync errors on resume
+    - liquidio: Fix unintentional sign extension issue on left shift of u16
+    - s390/bpf: Perform r1 range checking before accessing jit->seen_reg[r1]
+    - bpf, sockmap, tcp: sk_prot needs inuse_idx set for proc stats
+    - bpftool: Check malloc return value in mount_bpffs_for_pin
+    - net: fix uninit-value in caif_seqpkt_sendmsg
+    - efi/tpm: Differentiate missing and invalid final event log table.
+    - net: decnet: Fix sleeping inside in af_decnet
+    - KVM: PPC: Book3S: Fix CONFIG_TRANSACTIONAL_MEM=n crash
+    - KVM: PPC: Fix kvm_arch_vcpu_ioctl vcpu_load leak
+    - net: sched: fix memory leak in tcindex_partial_destroy_work
+    - netrom: Decrease sock refcount when sock timers expire
+    - scsi: iscsi: Fix iface sysfs attr detection
+    - scsi: target: Fix protect handling in WRITE SAME(32)
+    - spi: cadence: Correct initialisation of runtime PM again
+    - bnxt_en: Improve bnxt_ulp_stop()/bnxt_ulp_start() call sequence.
+    - bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe()
+    - bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()
+    - bnxt_en: Check abort error state in bnxt_half_open_nic()
+    - net: hisilicon: rename CACHE_LINE_MASK to avoid redefinition
+    - net/tcp_fastopen: fix data races around tfo_active_disable_stamp
+    - net: hns3: fix rx VLAN offload state inconsistent issue
+    - net/sched: act_skbmod: Skip non-Ethernet packets
+    - ipv6: fix another slab-out-of-bounds in fib6_nh_flush_exceptions
+    - nvme-pci: don't WARN_ON in nvme_reset_work if ctrl.state is not RESETTING
+    - Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem"
+    - afs: Fix tracepoint string placement with built-in AFS
+    - r8169: Avoid duplicate sysfs entry creation error
+    - nvme: set the PRACT bit when using Write Zeroes with T10 PI
+    - sctp: update active_key for asoc when old key is being replaced
+    - net: sched: cls_api: Fix the the wrong parameter
+    - drm/panel: raspberrypi-touchscreen: Prevent double-free
+    - proc: Avoid mixing integer types in mem_rw()
+    - s390/ftrace: fix ftrace_update_ftrace_func implementation
+    - s390/boot: fix use of expolines in the DMA code
+    - ALSA: usb-audio: Add missing proc text entry for BESPOKEN type
+    - ALSA: usb-audio: Add registration quirk for JBL Quantum headsets
+    - ALSA: sb: Fix potential ABBA deadlock in CSP driver
+    - ALSA: hdmi: Expose all pins on MSI MS-7C94 board
+    - xhci: Fix lost USB 2 remote wake
+    - KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow
+    - KVM: PPC: Book3S HV Nested: Sanitise H_ENTER_NESTED TM state
+    - usb: hub: Disable USB 3 device initiated lpm if exit latency is too high
+    - usb: hub: Fix link power management max exit latency (MEL) calculations
+    - USB: usb-storage: Add LaCie Rugged USB3-FW to IGNORE_UAS
+    - usb: max-3421: Prevent corruption of freed memory
+    - usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop()
+    - USB: serial: option: add support for u-blox LARA-R6 family
+    - USB: serial: cp210x: fix comments for GE CS1000
+    - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
+    - usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
+    - firmware/efi: Tell memblock about EFI iomem reservations
+    - tracing/histogram: Rename "cpu" to "common_cpu"
+    - tracing: Fix bug in rb_per_cpu_empty() that might cause deadloop.
+    - btrfs: check for missing device in btrfs_trim_fs
+    - media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf()
+    - ixgbe: Fix packet corruption due to missing DMA sync
+    - selftest: use mmap instead of posix_memalign to allocate memory
+    - userfaultfd: do not untag user pointers
+    - hugetlbfs: fix mount mode command line processing
+    - rbd: don't hold lock_rwsem while running_list is being drained
+    - rbd: always kick acquire on "acquired" and "released" notifications
+    - nds32: fix up stack guard gap
+    - drm: Return -ENOTTY for non-drm ioctls
+    - net: dsa: mv88e6xxx: use correct .stats_set_histogram() on Topaz
+    - net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear
+    - iio: accel: bma180: Use explicit member assignment
+    - iio: accel: bma180: Fix BMA25x bandwidth register values
+    - btrfs: compression: don't try to compress if we don't have enough pages
+    - PCI: Mark AMD Navi14 GPU ATS as broken
+    - perf inject: Close inject.output on exit
+    - xhci: add xhci_get_virt_ep() helper
+    - Linux 5.4.136
+  * Focal update: v5.4.135 upstream stable release (LP: #1939442)
+    - ARM: dts: gemini: rename mdio to the right name
+    - ARM: dts: gemini: add device_type on pci
+    - ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288
+    - arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi
+    - ARM: dts: rockchip: Fix the timer clocks order
+    - ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x
+    - ARM: dts: rockchip: Fix power-controller node names for rk3066a
+    - ARM: dts: rockchip: Fix power-controller node names for rk3188
+    - ARM: dts: rockchip: Fix power-controller node names for rk3288
+    - arm64: dts: rockchip: Fix power-controller node names for px30
+    - arm64: dts: rockchip: Fix power-controller node names for rk3328
+    - reset: ti-syscon: fix to_ti_syscon_reset_data macro
+    - ARM: brcmstb: dts: fix NAND nodes names
+    - ARM: Cygnus: dts: fix NAND nodes names
+    - ARM: NSP: dts: fix NAND nodes names
+    - ARM: dts: BCM63xx: Fix NAND nodes names
+    - ARM: dts: Hurricane 2: Fix NAND nodes names
+    - ARM: dts: imx6: phyFLEX: Fix UART hardware flow control
+    - ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info
+    - rtc: mxc_v2: add missing MODULE_DEVICE_TABLE
+    - kbuild: sink stdout from cmd for silent build
+    - ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios
+    - ARM: dts: am437x-gp-evm: fix ti,no-reset-on-init flag for gpios
+    - ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
+    - ARM: dts: stm32: fix RCC node name on stm32f429 MCU
+    - ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
+    - arm64: dts: juno: Update SCPI nodes as per the YAML schema
+    - ARM: dts: rockchip: fix supply properties in io-domains nodes
+    - ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
+    - ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
+    - soc/tegra: fuse: Fix Tegra234-only builds
+    - firmware: tegra: bpmp: Fix Tegra234-only builds
+    - arm64: dts: ls208xa: remove bus-num from dspi node
+    - arm64: dts: imx8mq: assign PCIe clocks
+    - thermal/core: Correct function name thermal_zone_device_unregister()
+    - kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
+    - rtc: max77686: Do not enforce (incorrect) interrupt trigger type
+    - scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8
+    - scsi: libsas: Add LUN number check in .slave_alloc callback
+    - scsi: libfc: Fix array index out of bound exception
+    - scsi: qedf: Add check to synchronize abort and flush
+    - sched/fair: Fix CFS bandwidth hrtimer expiry type
+    - s390: introduce proper type handling call_on_stack() macro
+    - cifs: prevent NULL deref in cifs_compose_mount_options()
+    - arm64: dts: armada-3720-turris-mox: add firmware node
+    - firmware: turris-mox-rwtm: add marvell,armada-3700-rwtm-firmware compatible
+      string
+    - arm64: dts: marvell: armada-37xx: move firmware node to generic dtsi file
+    - f2fs: Show casefolding support only when supported
+    - usb: cdns3: Enable TDL_CHK only for OUT ep
+    - Revert "UBUNTU: SAUCE: Revert "mm: memcg/slab: fix memory leak at non-root
+      kmem_cache destroy""
+    - mm: slab: fix kmem_cache_create failed when sysfs node not destroyed
+    - dm writecache: return the exact table values that were set
+    - net: dsa: mv88e6xxx: enable .port_set_policy() on Topaz
+    - net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz
+    - net: ipv6: fix return value of ip6_skb_dst_mtu
+    - netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo
+    - net/sched: act_ct: fix err check for nf_conntrack_confirm
+    - net: bridge: sync fdb to new unicast-filtering ports
+    - net: bcmgenet: Ensure all TX/RX queues DMAs are disabled
+    - net: ip_tunnel: fix mtu calculation for ETHER tunnel devices
+    - net: moxa: fix UAF in moxart_mac_probe
+    - net: qcom/emac: fix UAF in emac_remove
+    - net: ti: fix UAF in tlan_remove_one
+    - net: send SYNACK packet with accepted fwmark
+    - net: validate lwtstate->data before returning from skb_tunnel_info()
+    - net: fddi: fix UAF in fza_probe
+    - dma-buf/sync_file: Don't leak fences on merge failure
+    - tcp: annotate data races around tp->mtu_info
+    - ipv6: tcp: drop silly ICMPv6 packet too big messages
+    - bpftool: Properly close va_list 'ap' by va_end() on error
+    - perf test bpf: Free obj_buf
+    - udp: annotate data races around unix_sk(sk)->gso_size
+    - Linux 5.4.135
+  * Focal update: v5.4.134 upstream stable release (LP: #1939440)
+    - KVM: mmio: Fix use-after-free Read in kvm_vm_ioctl_unregister_coalesced_mmio
+    - KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled
+    - KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run()
+    - scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
+    - tracing: Do not reference char * as a string in histograms
+    - cgroup: verify that source is a string
+    - fbmem: Do not delete the mode that is still in use
+    - net: moxa: Use devm_platform_get_and_ioremap_resource()
+    - dmaengine: fsl-qdma: check dma_set_mask return value
+    - srcu: Fix broken node geometry after early ssp init
+    - tty: serial: fsl_lpuart: fix the potential risk of division or modulo by
+      zero
+    - misc/libmasm/module: Fix two use after free in ibmasm_init_one
+    - misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge
+    - iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get().
+    - iio: magn: bmc150: Balance runtime pm + use pm_runtime_resume_and_get()
+    - ALSA: usx2y: Don't call free_pages_exact() with NULL address
+    - Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
+    - w1: ds2438: fixing bug that would always get page0
+    - scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw()
+    - scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
+    - scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the
+      SGLs
+    - scsi: core: Cap scsi_host cmd_per_lun at can_queue
+    - ALSA: ac97: fix PM reference leak in ac97_bus_remove()
+    - tty: serial: 8250: serial_cs: Fix a memory leak in error handling path
+    - scsi: scsi_dh_alua: Check for negative result value
+    - fs/jfs: Fix missing error code in lmLogInit()
+    - scsi: megaraid_sas: Fix resource leak in case of probe failure
+    - scsi: megaraid_sas: Early detection of VD deletion through RaidMap update
+    - scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs
+    - scsi: iscsi: Add iscsi_cls_conn refcount helpers
+    - scsi: iscsi: Fix conn use after free during resets
+    - scsi: iscsi: Fix shost->max_id use
+    - scsi: qedi: Fix null ref during abort handling
+    - mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
+    - mfd: cpcap: Fix cpcap dmamask not set warnings
+    - ASoC: img: Fix PM reference leak in img_i2s_in_probe()
+    - serial: tty: uartlite: fix console setup
+    - s390/sclp_vt220: fix console name to match device
+    - ALSA: sb: Fix potential double-free of CSP mixer elements
+    - powerpc/ps3: Add dma_mask to ps3_dma_region
+    - iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get
+      fails
+    - iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation
+    - gpio: zynq: Check return value of pm_runtime_get_sync
+    - ALSA: ppc: fix error return code in snd_pmac_probe()
+    - selftests/powerpc: Fix "no_handler" EBB selftest
+    - gpio: pca953x: Add support for the On Semi pca9655
+    - ASoC: soc-core: Fix the error return code in
+      snd_soc_of_parse_audio_routing()
+    - s390/processor: always inline stap() and __load_psw_mask()
+    - s390/ipl_parm: fix program check new psw handling
+    - s390/mem_detect: fix diag260() program check new psw handling
+    - s390/mem_detect: fix tprot() program check new psw handling
+    - Input: hideep - fix the uninitialized use in hideep_nvm_unlock()
+    - ALSA: bebob: add support for ToneWeal FW66
+    - ALSA: usb-audio: scarlett2: Fix 18i8 Gen 2 PCM Input count
+    - ALSA: usb-audio: scarlett2: Fix data_mutex lock
+    - ALSA: usb-audio: scarlett2: Fix scarlett2_*_ctl_put() return values
+    - usb: gadget: f_hid: fix endianness issue with descriptors
+    - usb: gadget: hid: fix error return code in hid_bind()
+    - powerpc/boot: Fixup device-tree on little endian
+    - ASoC: Intel: kbl_da7219_max98357a: shrink platform_id below 20 characters
+    - backlight: lm3630a: Fix return code of .update_status() callback
+    - ALSA: hda: Add IRQ check for platform_get_irq()
+    - ALSA: usb-audio: scarlett2: Fix 6i6 Gen 2 line out descriptions
+    - staging: rtl8723bs: fix macro value for 2.4Ghz only device
+    - intel_th: Wait until port is in reset before programming it
+    - i2c: core: Disable client irq on reboot/shutdown
+    - power: supply: sc27xx: Add missing MODULE_DEVICE_TABLE
+    - power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE
+    - pwm: spear: Don't modify HW state in .remove callback
+    - power: supply: ab8500: Avoid NULL pointers
+    - power: supply: max17042: Do not enforce (incorrect) interrupt trigger type
+    - power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
+    - ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1
+    - PCI/P2PDMA: Avoid pci_get_slot(), which may sleep
+    - watchdog: Fix possible use-after-free in wdt_startup()
+    - watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff()
+    - watchdog: Fix possible use-after-free by calling del_timer_sync()
+    - watchdog: imx_sc_wdt: fix pretimeout
+    - x86/fpu: Return proper error codes from user access functions
+    - PCI: tegra: Add missing MODULE_DEVICE_TABLE
+    - orangefs: fix orangefs df output.
+    - ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
+    - NFS: nfs_find_open_context() may only select open files
+    - power: supply: charger-manager: add missing MODULE_DEVICE_TABLE
+    - power: supply: ab8500: add missing MODULE_DEVICE_TABLE
+    - pwm: img: Fix PM reference leak in img_pwm_enable()
+    - pwm: tegra: Don't modify HW state in .remove callback
+    - ACPI: AMBA: Fix resource name in /proc/iomem
+    - ACPI: video: Add quirk for the Dell Vostro 3350
+    - virtio-blk: Fix memory leak among suspend/resume procedure
+    - virtio_net: Fix error handling in virtnet_restore()
+    - virtio_console: Assure used length from device is limited
+    - x86/signal: Detect and prevent an alternate signal stack overflow
+    - f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs
+    - PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
+    - power: supply: rt5033_battery: Fix device tree enumeration
+    - NFSv4: Initialise connection to the server in nfs4_alloc_client()
+    - um: fix error return code in slip_open()
+    - um: fix error return code in winch_tramp()
+    - watchdog: aspeed: fix hardware timeout calculation
+    - nfs: fix acl memory leak of posix_acl_create()
+    - ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode
+    - PCI: iproc: Fix multi-MSI base vector number allocation
+    - PCI: iproc: Support multi-MSI only on uniprocessor kernel
+    - x86/fpu: Limit xstate copy size in xstateregs_set()
+    - pwm: imx1: Don't disable clocks at device remove time
+    - virtio_net: move tx vq operation under tx queue lock
+    - nvme-tcp: can't set sk_user_data without write_lock
+    - ALSA: isa: Fix error return code in snd_cmi8330_probe()
+    - NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times
+    - hexagon: use common DISCARDS macro
+    - ARM: dts: gemini-rut1xx: remove duplicate ethernet node
+    - reset: a10sr: add missing of_match_table reference
+    - ARM: exynos: add missing of_node_put for loop iteration
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1
+    - ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4
+    - memory: atmel-ebi: add missing of_node_put for loop iteration
+    - reset: brcmstb: Add missing MODULE_DEVICE_TABLE
+    - memory: pl353: Fix error return code in pl353_smc_probe()
+    - rtc: fix snprintf() checking in is_rtc_hctosys()
+    - arm64: dts: renesas: v3msk: Fix memory size
+    - ARM: dts: r8a7779, marzen: Fix DU clock names
+    - firmware: tegra: Fix error return code in tegra210_bpmp_init()
+    - firmware: arm_scmi: Reset Rx buffer to max size during async commands
+    - ARM: dts: BCM5301X: Fixup SPI binding
+    - reset: bail if try_module_get() fails
+    - memory: fsl_ifc: fix leak of IO mapping on probe failure
+    - memory: fsl_ifc: fix leak of private memory on probe failure
+    - ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema
+    - ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema
+    - ARM: dts: imx6q-dhcom: Fix ethernet reset time properties
+    - ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems
+    - ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery
+    - thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations
+    - firmware: turris-mox-rwtm: fix reply status decoding function
+    - firmware: turris-mox-rwtm: report failures better
+    - firmware: turris-mox-rwtm: fail probing when firmware does not support hwrng
+    - scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
+    - mips: always link byteswap helpers into decompressor
+    - mips: disable branch profiling in boot/decompress.o
+    - MIPS: vdso: Invalid GIC access through VDSO
+    - scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg()
+    - misc: alcor_pci: fix inverted branch condition
+    - Linux 5.4.134
+
+  [ Ubuntu: 5.4.0-86.97 ]
+
+  * s390x BPF JIT vulnerabilities (LP: #1943960)
+    - SAUCE: s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant
+    - SAUCE: s390/bpf: Fix optimizing out zero-extensions
+
+  [ Ubuntu: 5.4.0-84.94 ]
+
+  * focal/linux: 5.4.0-84.94 -proposed tracker (LP: #1941767)
+  * Server boot failure after adding checks for ACPI IRQ override (LP: #1941657)
+    - Revert "ACPI: resources: Add checks for ACPI IRQ override"
+
+  [ Ubuntu: 5.4.0-83.93 ]
+
+  * focal/linux: 5.4.0-83.93 -proposed tracker (LP: #1940159)
+  * fails to launch linux L2 guests on AMD (LP: #1940134) // CVE-2021-3653
+    - KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+      (CVE-2021-3653)
+  * fails to launch linux L2 guests on AMD (LP: #1940134)
+    - SAUCE: Revert "UBUNTU: SAUCE: KVM: nSVM: avoid picking up unsupported bits
+      from L2 in int_ctl"
+
+  [ Ubuntu: 5.4.0-82.92 ]
+
+  * focal/linux: 5.4.0-82.92 -proposed tracker (LP: #1939799)
+  * Packaging resync (LP: #1786013)
+    - debian/dkms-versions -- update from kernel-versions (main/2021.08.16)
+  * CVE-2021-3656
+    - SAUCE: KVM: nSVM: always intercept VMLOAD/VMSAVE when nested
+  * CVE-2021-3653
+    - SAUCE: KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl
+  * [regression] USB device is not detected during boot (LP: #1939638)
+    - SAUCE: Revert "usb: core: reduce power-on-good delay time of root hub"
+  * dev_forward_skb: do not scrub skb mark within the same name space
+    (LP: #1935040)
+    - dev_forward_skb: do not scrub skb mark within the same name space
+  * XPS 9510 (TGL) Screen Brightness could not be changed (LP: #1933566)
+    - SAUCE: drm/i915: Force DPCD backlight mode for Dell XPS 9510(TGL)
+  * Acer Aspire 5 sound driver issues (LP: #1930188)
+    - ALSA: hda/realtek: headphone and mic don't work on an Acer laptop
+  * Sony Dualshock 4 usb dongle crashes the whole system (LP: #1935846)
+    - HID: sony: Workaround for DS4 dongle hotplug kernel crash.
+  * [21.10 FEAT] KVM: Provide a secure guest indication (LP: #1933173)
+    - s390/uv: add prot virt guest/host indication files
+    - s390/uv: fix prot virt host indication compilation
+  * Skip rtcpie test in kselftests/timers if the default RTC device does not
+    exist (LP: #1937991)
+    - selftests: timers: rtcpie: skip test if default RTC device does not exist
+  * Focal update: v5.4.133 upstream stable release (LP: #1938713)
+    - drm/mxsfb: Don't select DRM_KMS_FB_HELPER
+    - drm/zte: Don't select DRM_KMS_FB_HELPER
+    - drm/amd/amdgpu/sriov disable all ip hw status by default
+    - drm/vc4: fix argument ordering in vc4_crtc_get_margins()
+    - net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
+    - drm/amd/display: fix use_max_lb flag for 420 pixel formats
+    - hugetlb: clear huge pte during flush function on mips platform
+    - atm: iphase: fix possible use-after-free in ia_module_exit()
+    - mISDN: fix possible use-after-free in HFC_cleanup()
+    - atm: nicstar: Fix possible use-after-free in nicstar_cleanup()
+    - net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT
+    - drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init()
+    - reiserfs: add check for invalid 1st journal block
+    - drm/virtio: Fix double free on probe failure
+    - drm/sched: Avoid data corruptions
+    - udf: Fix NULL pointer dereference in udf_symlink function
+    - e100: handle eeprom as little endian
+    - igb: handle vlan types with checker enabled
+    - drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer()
+    - clk: renesas: r8a77995: Add ZA2 clock
+    - clk: tegra: Ensure that PLLU configuration is applied properly
+    - ipv6: use prandom_u32() for ID generation
+    - RDMA/cxgb4: Fix missing error code in create_qp()
+    - dm space maps: don't reset space map allocation cursor when committing
+    - pinctrl: mcp23s08: fix race condition in irq handler
+    - ice: set the value of global config lock timeout longer
+    - virtio_net: Remove BUG() to avoid machine dead
+    - net: bcmgenet: check return value after calling platform_get_resource()
+    - net: mvpp2: check return value after calling platform_get_resource()
+    - net: micrel: check return value after calling platform_get_resource()
+    - drm/amd/display: Update scaling settings on modeset
+    - drm/amd/display: Release MST resources on switch from MST to SST
+    - drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7
+    - drm/amdkfd: use allowed domain for vmbo validation
+    - fjes: check return value after calling platform_get_resource()
+    - selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
+    - r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM
+    - drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check
+    - xfrm: Fix error reporting in xfrm_state_construct.
+    - wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
+    - wl1251: Fix possible buffer overflow in wl1251_cmd_scan
+    - cw1200: add missing MODULE_DEVICE_TABLE
+    - bpf: Fix up register-based shifts in interpreter to silence KUBSAN
+    - mt76: mt7615: fix fixed-rate tx status reporting
+    - net: fix mistake path for netdev_features_strings
+    - net: sched: fix error return code in tcf_del_walker()
+    - drm/amdkfd: Walk through list with dqm lock hold
+    - rtl8xxxu: Fix device info for RTL8192EU devices
+    - atm: nicstar: use 'dma_free_coherent' instead of 'kfree'
+    - atm: nicstar: register the interrupt handler in the right place
+    - vsock: notify server to shutdown when client has pending signal
+    - RDMA/rxe: Don't overwrite errno from ib_umem_get()
+    - iwlwifi: mvm: don't change band on bound PHY contexts
+    - iwlwifi: pcie: free IML DMA memory allocation
+    - iwlwifi: pcie: fix context info freeing
+    - sfc: avoid double pci_remove of VFs
+    - sfc: error code if SRIOV cannot be disabled
+    - wireless: wext-spy: Fix out-of-bounds warning
+    - media, bpf: Do not copy more entries than user space requested
+    - net: ip: avoid OOM kills with large UDP sends over loopback
+    - RDMA/cma: Fix rdma_resolve_route() memory leak
+    - Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip.
+    - Bluetooth: Fix the HCI to MGMT status conversion table
+    - Bluetooth: Shutdown controller after workqueues are flushed or cancelled
+    - Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc.
+    - sctp: validate from_addr_param return
+    - sctp: add size validation when walking chunks
+    - MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
+    - MIPS: set mips32r5 for virt extensions
+    - fscrypt: don't ignore minor_hash when hash is 0
+    - crypto: ccp - Annotate SEV Firmware file names
+    - perf bench: Fix 2 memory sanitizer warnings
+    - powerpc/mm: Fix lockup on kernel exec fault
+    - powerpc/barrier: Avoid collision with clang's __lwsync macro
+    - drm/amdgpu: Update NV SIMD-per-CU to 2
+    - drm/radeon: Add the missed drm_gem_object_put() in
+      radeon_user_framebuffer_create()
+    - drm/rockchip: dsi: remove extra component_del() call
+    - drm/amd/display: fix incorrrect valid irq check
+    - pinctrl/amd: Add device HID for new AMD GPIO controller
+    - drm/tegra: Don't set allow_fb_modifiers explicitly
+    - drm/msm/mdp4: Fix modifier support enabling
+    - drm/arm/malidp: Always list modifiers
+    - mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode
+    - mmc: core: clear flags before allowing to retune
+    - mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
+    - ata: ahci_sunxi: Disable DIPM
+    - cpu/hotplug: Cure the cpusets trainwreck
+    - clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
+    - fpga: stratix10-soc: Add missing fpga_mgr_free() call
+    - MIPS: fix "mipsel-linux-ld: decompress.c:undefined reference to `memmove'"
+    - ASoC: tegra: Set driver_name=tegra for all machine drivers
+    - qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
+    - ipmi/watchdog: Stop watchdog timer when the current action is 'none'
+    - thermal/drivers/int340x/processor_thermal: Fix tcc setting
+    - ubifs: Fix races between xattr_{set|get} and listxattr operations
+    - power: supply: ab8500: Fix an old bug
+    - nvmem: core: add a missing of_node_put
+    - extcon: intel-mrfld: Sync hardware and software state on init
+    - seq_buf: Fix overflow in seq_buf_putmem_hex()
+    - rq-qos: fix missed wake-ups in rq_qos_throttle try two
+    - tracing: Simplify & fix saved_tgids logic
+    - tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
+    - ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe
+    - coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
+    - dm btree remove: assign new_root only when removal succeeds
+    - PCI: Leave Apple Thunderbolt controllers on for s2idle or standby
+    - PCI: aardvark: Fix checking for PIO Non-posted Request
+    - PCI: aardvark: Implement workaround for the readback value of VEND_ID
+    - media: subdev: disallow ioctl for saa6588/davinci
+    - media: dtv5100: fix control-request directions
+    - media: zr364xx: fix memory leak in zr364xx_start_readpipe
+    - media: gspca/sq905: fix control-request direction
+    - media: gspca/sunplus: fix zero-length control requests
+    - pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
+    - jfs: fix GPF in diFree
+    - smackfs: restrict bytes count in smk_set_cipso()
+    - Linux 5.4.133
+  * Focal update: v5.4.132 upstream stable release (LP: #1938199)
+    - ALSA: usb-audio: fix rate on Ozone Z90 USB headset
+    - ALSA: usb-audio: Fix OOB access at proc output
+    - ALSA: usb-audio: scarlett2: Fix wrong resume call
+    - ALSA: intel8x0: Fix breakage at ac97 clock measurement
+    - ALSA: hda/realtek: Add another ALC236 variant support
+    - ALSA: hda/realtek: Improve fixup for HP Spectre x360 15-df0xxx
+    - ALSA: hda/realtek: Fix bass speaker DAC mapping for Asus UM431D
+    - ALSA: hda/realtek: Apply LED fixup for HP Dragonfly G1, too
+    - media: dvb-usb: fix wrong definition
+    - Input: usbtouchscreen - fix control-request directions
+    - net: can: ems_usb: fix use-after-free in ems_usb_disconnect()
+    - usb: gadget: eem: fix echo command packet response issue
+    - USB: cdc-acm: blacklist Heimann USB Appset device
+    - usb: dwc3: Fix debugfs creation flow
+    - usb: typec: Add the missed altmode_id_remove() in typec_register_altmode()
+    - xhci: solve a double free problem while doing s4
+    - ntfs: fix validity check for file name attribute
+    - copy_page_to_iter(): fix ITER_DISCARD case
+    - iov_iter_fault_in_readable() should do nothing in xarray case
+    - Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl
+    - arm_pmu: Fix write counter incorrect in ARMv7 big-endian mode
+    - ARM: dts: at91: sama5d4: fix pinctrl muxing
+    - btrfs: send: fix invalid path for unlink operations after parent
+      orphanization
+    - btrfs: clear defrag status of a root if starting transaction fails
+    - ext4: cleanup in-core orphan list if ext4_truncate() failed to get a
+      transaction handle
+    - ext4: fix kernel infoleak via ext4_extent_header
+    - ext4: return error code when ext4_fill_flex_info() fails
+    - ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
+    - ext4: remove check for zero nr_to_scan in ext4_es_scan()
+    - ext4: fix avefreec in find_group_orlov
+    - ext4: use ext4_grp_locked_error in mb_find_extent
+    - can: gw: synchronize rcu operations before removing gw job entry
+    - can: j1939: j1939_sk_init(): set SOCK_RCU_FREE to call sk_destruct() after
+      RCU is done
+    - can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in
+      TX path
+    - mac80211: remove iwlwifi specific workaround that broke sta NDP tx
+    - SUNRPC: Fix the batch tasks count wraparound.
+    - SUNRPC: Should wake up the privileged task firstly.
+    - perf/smmuv3: Don't trample existing events with global filter
+    - KVM: PPC: Book3S HV: Workaround high stack usage with clang
+    - s390/cio: dont call css_wait_for_slow_path() inside a lock
+    - rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path
+    - iio: light: tcs3472: do not free unallocated IRQ
+    - iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA
+      as volatile, too
+    - iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR
+    - iio: ltr501: ltr501_read_ps(): add missing endianness conversion
+    - serial: mvebu-uart: fix calculation of clock divisor
+    - serial: sh-sci: Stop dmaengine transfer in sci_stop_tx()
+    - serial_cs: Add Option International GSM-Ready 56K/ISDN modem
+    - serial_cs: remove wrong GLOBETROTTER.cis entry
+    - ath9k: Fix kernel NULL pointer dereference during ath_reset_internal()
+    - ssb: sdio: Don't overwrite const buffer if block_write fails
+    - rsi: Assign beacon rate settings to the correct rate_info descriptor field
+    - rsi: fix AP mode with WPA failure due to encrypted EAPOL
+    - tracing/histograms: Fix parsing of "sym-offset" modifier
+    - tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing
+    - seq_buf: Make trace_seq_putmem_hex() support data longer than 8
+    - powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi()
+    - evm: Execute evm_inode_init_security() only when an HMAC key is loaded
+    - evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded
+    - fuse: ignore PG_workingset after stealing
+    - fuse: check connected before queueing on fpq->io
+    - fuse: reject internal errno
+    - spi: Make of_register_spi_device also set the fwnode
+    - media: mdk-mdp: fix pm_runtime_get_sync() usage count
+    - media: s5p: fix pm_runtime_get_sync() usage count
+    - media: sh_vou: fix pm_runtime_get_sync() usage count
+    - media: mtk-vcodec: fix PM runtime get logic
+    - media: s5p-jpeg: fix pm_runtime_get_sync() usage count
+    - media: sti/bdisp: fix pm_runtime_get_sync() usage count
+    - media: exynos-gsc: fix pm_runtime_get_sync() usage count
+    - spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf'
+    - spi: spi-topcliff-pch: Fix potential double free in
+      pch_spi_process_messages()
+    - spi: omap-100k: Fix the length judgment problem
+    - regulator: uniphier: Add missing MODULE_DEVICE_TABLE
+    - hwrng: exynos - Fix runtime PM imbalance on error
+    - crypto: nx - add missing MODULE_DEVICE_TABLE
+    - media: sti: fix obj-$(config) targets
+    - media: cpia2: fix memory leak in cpia2_usb_probe
+    - media: cobalt: fix race condition in setting HPD
+    - media: pvrusb2: fix warning in pvr2_i2c_core_done
+    - media: imx: imx7_mipi_csis: Fix logging of only error event counters
+    - crypto: qat - check return code of qat_hal_rd_rel_reg()
+    - crypto: qat - remove unused macro in FW loader
+    - sched/fair: Fix ascii art by relpacing tabs
+    - media: em28xx: Fix possible memory leak of em28xx struct
+    - media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release
+    - media: bt8xx: Fix a missing check bug in bt878_probe
+    - media: st-hva: Fix potential NULL pointer dereferences
+    - Makefile: fix GDB warning with CONFIG_RELR
+    - media: dvd_usb: memory leak in cinergyt2_fe_attach
+    - memstick: rtsx_usb_ms: fix UAF
+    - mmc: sdhci-sprd: use sdhci_sprd_writew
+    - mmc: via-sdmmc: add a check against NULL pointer dereference
+    - crypto: shash - avoid comparing pointers to exported functions under CFI
+    - media: dvb_net: avoid speculation from net slot
+    - media: siano: fix device register error path
+    - media: imx-csi: Skip first few frames from a BT.656 source
+    - hwmon: (max31790) Report correct current pwm duty cycles
+    - hwmon: (max31790) Fix pwmX_enable attributes
+    - drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe()
+    - KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10
+      processors
+    - btrfs: fix error handling in __btrfs_update_delayed_inode
+    - btrfs: abort transaction if we fail to update the delayed inode
+    - btrfs: disable build on platforms having page size 256K
+    - locking/lockdep: Fix the dep path printing for backwards BFS
+    - lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage()
+    - KVM: s390: get rid of register asm usage
+    - regulator: mt6358: Fix vdram2 .vsel_mask
+    - regulator: da9052: Ensure enough delay time for .set_voltage_time_sel
+    - media: Fix Media Controller API config checks
+    - HID: do not use down_interruptible() when unbinding devices
+    - EDAC/ti: Add missing MODULE_DEVICE_TABLE
+    - ACPI: processor idle: Fix up C-state latency if not ordered
+    - hv_utils: Fix passing zero to 'PTR_ERR' warning
+    - lib: vsprintf: Fix handling of number field widths in vsscanf
+    - ACPI: EC: Make more Asus laptops use ECDT _GPE
+    - block_dump: remove block_dump feature in mark_inode_dirty()
+    - fs: dlm: cancel work sync othercon
+    - random32: Fix implicit truncation warning in prandom_seed_state()
+    - fs: dlm: fix memory leak when fenced
+    - ACPICA: Fix memory leak caused by _CID repair function
+    - ACPI: bus: Call kobject_put() in acpi_init() error path
+    - block: fix race between adding/removing rq qos and normal IO
+    - platform/x86: toshiba_acpi: Fix missing error code in
+      toshiba_acpi_setup_keyboard()
+    - nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst()
+    - EDAC/Intel: Do not load EDAC driver when running as a guest
+    - PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv()
+    - clocksource: Retry clock read if long delays detected
+    - ACPI: tables: Add custom DSDT file as makefile prerequisite
+    - HID: wacom: Correct base usage for capacitive ExpressKey status bits
+    - cifs: fix missing spinlock around update to ses->status
+    - block: fix discard request merge
+    - kthread_worker: fix return value when kthread_mod_delayed_work() races with
+      kthread_cancel_delayed_work_sync()
+    - ia64: mca_drv: fix incorrect array size calculation
+    - writeback, cgroup: increment isw_nr_in_flight before grabbing an inode
+    - media: s5p_cec: decrement usage count if disabled
+    - crypto: ixp4xx - dma_unmap the correct address
+    - crypto: ux500 - Fix error return code in hash_hw_final()
+    - sata_highbank: fix deferred probing
+    - pata_rb532_cf: fix deferred probing
+    - media: I2C: change 'RST' to "RSET" to fix multiple build errors
+    - sched/uclamp: Fix wrong implementation of cpu.uclamp.min
+    - sched/uclamp: Fix locking around cpu_util_update_eff()
+    - kbuild: run the checker after the compiler
+    - kbuild: Fix objtool dependency for 'OBJECT_FILES_NON_STANDARD_<obj> := n'
+    - pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
+    - evm: fix writing <securityfs>/evm overflow
+    - crypto: ccp - Fix a resource leak in an error handling path
+    - media: rc: i2c: Fix an error message
+    - pata_ep93xx: fix deferred probing
+    - media: exynos4-is: Fix a use after free in isp_video_release
+    - media: au0828: fix a NULL vs IS_ERR() check
+    - media: tc358743: Fix error return code in tc358743_probe_of()
+    - media: gspca/gl860: fix zero-length control requests
+    - m68k: atari: Fix ATARI_KBD_CORE kconfig unmet dependency warning
+    - media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()
+    - crypto: nitrox - fix unchecked variable in nitrox_register_interrupts
+    - crypto: omap-sham - Fix PM reference leak in omap sham ops
+    - mmc: usdhi6rol0: fix error return code in usdhi6_probe()
+    - arm64: consistently use reserved_pg_dir
+    - arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan
+    - media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx
+    - hwmon: (max31722) Remove non-standard ACPI device IDs
+    - hwmon: (max31790) Fix fan speed reporting for fan7..12
+    - KVM: nVMX: Ensure 64-bit shift when checking VMFUNC bitmap
+    - regulator: hi655x: Fix pass wrong pointer to config.driver_data
+    - btrfs: clear log tree recovering status if starting transaction fails
+    - sched/rt: Fix RT utilization tracking during policy change
+    - sched/rt: Fix Deadline utilization tracking during policy change
+    - sched/uclamp: Fix uclamp_tg_restrict()
+    - spi: spi-sun6i: Fix chipselect/clock bug
+    - crypto: nx - Fix RCU warning in nx842_OF_upd_status
+    - ACPI: sysfs: Fix a buffer overrun problem with description_show()
+    - extcon: extcon-max8997: Fix IRQ freeing at error path
+    - blk-wbt: introduce a new disable state to prevent false positive by
+      rwb_enabled()
+    - blk-wbt: make sure throttle is enabled properly
+    - ACPI: Use DEVICE_ATTR_<RW|RO|WO> macros
+    - ACPI: bgrt: Fix CFI violation
+    - cpufreq: Make cpufreq_online() call driver->offline() on errors
+    - ocfs2: fix snprintf() checking
+    - dax: fix ENOMEM handling in grab_mapping_entry()
+    - xfrm: xfrm_state_mtu should return at least 1280 for ipv6
+    - video: fbdev: imxfb: Fix an error message
+    - net: mvpp2: Put fwnode in error case during ->probe()
+    - net: pch_gbe: Propagate error from devm_gpio_request_one()
+    - pinctrl: renesas: r8a7796: Add missing bias for PRESET# pin
+    - pinctrl: renesas: r8a77990: JTAG pins do not have pull-down capabilities
+    - clk: meson: g12a: fix gp0 and hifi ranges
+    - net: ftgmac100: add missing error return code in ftgmac100_probe()
+    - drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on error in
+      cdn_dp_grf_write()
+    - drm/rockchip: dsi: move all lane config except LCDC mux to bind()
+    - ehea: fix error return code in ehea_restart_qps()
+    - net/sched: act_vlan: Fix modify to allow 0
+    - RDMA/core: Sanitize WQ state received from the userspace
+    - RDMA/rxe: Fix failure during driver load
+    - drm: qxl: ensure surf.data is ininitialized
+    - tools/bpftool: Fix error return code in do_batch()
+    - ath10k: go to path err_unsupported when chip id is not supported
+    - ath10k: add missing error return code in ath10k_pci_probe()
+    - wireless: carl9170: fix LEDS build errors & warnings
+    - ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others
+    - wcn36xx: Move hal_buf allocation to devm_kmalloc in probe
+    - ssb: Fix error return code in ssb_bus_scan()
+    - brcmfmac: fix setting of station info chains bitmask
+    - brcmfmac: correctly report average RSSI in station info
+    - brcmsmac: mac80211_if: Fix a resource leak in an error handling path
+    - ath10k: Fix an error code in ath10k_add_interface()
+    - netlabel: Fix memory leak in netlbl_mgmt_add_common
+    - RDMA/mlx5: Don't add slave port to unaffiliated list
+    - netfilter: nft_exthdr: check for IPv6 packet before further processing
+    - netfilter: nft_osf: check for TCP packet before further processing
+    - netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols
+    - RDMA/rxe: Fix qp reference counting for atomic ops
+    - samples/bpf: Fix the error return code of xdp_redirect's main()
+    - net: ethernet: aeroflex: fix UAF in greth_of_remove
+    - net: ethernet: ezchip: fix UAF in nps_enet_remove
+    - net: ethernet: ezchip: fix error handling
+    - vrf: do not push non-ND strict packets with a source LLA through packet taps
+      again
+    - net: sched: add barrier to ensure correct ordering for lockless qdisc
+    - tls: prevent oversized sendfile() hangs by ignoring MSG_MORE
+    - pkt_sched: sch_qfq: fix qfq_change_class() error path
+    - vxlan: add missing rcu_read_lock() in neigh_reduce()
+    - net/ipv4: swap flow ports when validating source
+    - tc-testing: fix list handling
+    - ieee802154: hwsim: Fix memory leak in hwsim_add_one
+    - ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl()
+    - mac80211: remove iwlwifi specific workaround NDPs of null_response
+    - net: bcmgenet: Fix attaching to PYH failed on RPi 4B
+    - ipv6: exthdrs: do not blindly use init_net
+    - bpf: Do not change gso_size during bpf_skb_change_proto()
+    - i40e: Fix error handling in i40e_vsi_open
+    - i40e: Fix autoneg disabling for non-10GBaseT links
+    - Revert "ibmvnic: remove duplicate napi_schedule call in open function"
+    - ibmvnic: free tx_pool if tso_pool alloc fails
+    - ipv6: fix out-of-bound access in ip6_parse_tlv()
+    - e1000e: Check the PCIm state
+    - bpfilter: Specify the log level for the kmsg message
+    - gve: Fix swapped vars when fetching max queues
+    - Revert "be2net: disable bh with spin_lock in be_process_mcc"
+    - Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid
+    - Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event
+    - clk: actions: Fix UART clock dividers on Owl S500 SoC
+    - clk: actions: Fix SD clocks factor table on Owl S500 SoC
+    - clk: actions: Fix bisp_factor_table based clocks on Owl S500 SoC
+    - clk: si5341: Avoid divide errors due to bogus register contents
+    - clk: si5341: Update initialization magic
+    - writeback: fix obtain a reference to a freeing memcg css
+    - net: lwtunnel: handle MTU calculation in forwading
+    - net: sched: fix warning in tcindex_alloc_perfect_hash
+    - RDMA/mlx5: Don't access NULL-cleared mpi pointer
+    - MIPS: Fix PKMAP with 32-bit MIPS huge page support
+    - staging: fbtft: Rectify GPIO handling
+    - rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread()
+    - tty: nozomi: Fix a resource leak in an error handling function
+    - mwifiex: re-fix for unaligned accesses
+    - iio: adis_buffer: do not return ints in irq handlers
+    - iio: adis16400: do not return ints in irq handlers
+    - iio: accel: bma180: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: bma220: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: hid: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: kxcjk-1013: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio:accel:mxc4005: Drop unnecessary explicit casts in regmap_bulk_read calls
+    - iio: accel: mxc4005: Fix overread of data and alignment issue.
+    - iio: accel: stk8312: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: accel: stk8ba50: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ti-ads1015: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: vf610: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: gyro: bmg160: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: humidity: am2315: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: srf08: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: pulsed-light: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: as3935: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: hmc5843: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: bmc150: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: isl29125: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: tcs3414: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: light: tcs3472: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: cros_ec_sensors: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - iio: potentiostat: lmp91000: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - ASoC: rk3328: fix missing clk_disable_unprepare() on error in
+      rk3328_platform_probe()
+    - ASoC: hisilicon: fix missing clk_disable_unprepare() on error in
+      hi6210_i2s_startup()
+    - backlight: lm3630a_bl: Put fwnode in error case during ->probe()
+    - ASoC: rsnd: tidyup loop on rsnd_adg_clk_query()
+    - Input: hil_kbd - fix error return code in hil_dev_connect()
+    - mtd: partitions: redboot: seek fis-index-block in the right node
+    - char: pcmcia: error out if 'num_bytes_read' is greater than 4 in
+      set_protocol()
+    - firmware: stratix10-svc: Fix a resource leak in an error handling path
+    - tty: nozomi: Fix the error handling path of 'nozomi_card_init()'
+    - leds: lm3532: select regmap I2C API
+    - leds: lm36274: cosmetic: rename lm36274_data to chip
+    - leds: lm3692x: Put fwnode in any case during ->probe()
+    - scsi: FlashPoint: Rename si_flags field
+    - fsi: core: Fix return of error values on failures
+    - fsi: scom: Reset the FSI2PIB engine for any error
+    - fsi: occ: Don't accept response from un-initialized OCC
+    - fsi/sbefifo: Clean up correct FIFO when receiving reset request from SBE
+    - fsi/sbefifo: Fix reset timeout
+    - visorbus: fix error return code in visorchipset_init()
+    - s390: appldata depends on PROC_SYSCTL
+    - iommu/dma: Fix IOVA reserve dma ranges
+    - ASoC: mediatek: mtk-btcvsd: Fix an error handling path in
+      'mtk_btcvsd_snd_probe()'
+    - usb: gadget: f_fs: Fix setting of device and driver data cross-references
+    - usb: dwc2: Don't reset the core after setting turnaround time
+    - eeprom: idt_89hpesx: Put fwnode in matching case during ->probe()
+    - eeprom: idt_89hpesx: Restore printing the unsupported fwnode name
+    - iio: at91-sama5d2_adc: remove usage of iio_priv_to_dev() helper
+    - iio: adc: at91-sama5d2: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: hx711: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: mxs-lradc: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ti-ads8688: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - iio: magn: rm3100: Fix alignment of buffer in
+      iio_push_to_buffers_with_timestamp()
+    - staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt()
+    - staging: gdm724x: check for overflow in gdm_lte_netif_rx()
+    - staging: rtl8712: remove redundant check in r871xu_drv_init
+    - staging: rtl8712: fix memory leak in rtl871x_load_fw_cb
+    - staging: mt7621-dts: fix pci address for PCI memory range
+    - serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates
+    - iio: light: vcnl4035: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - iio: prox: isl29501: Fix buffer alignment in
+      iio_push_to_buffers_with_timestamp()
+    - ASoC: cs42l42: Correct definition of CS42L42_ADC_PDN_MASK
+    - of: Fix truncation of memory sizes on 32-bit platforms
+    - mtd: rawnand: marvell: add missing clk_disable_unprepare() on error in
+      marvell_nfc_resume()
+    - scsi: mpt3sas: Fix error return value in _scsih_expander_add()
+    - soundwire: stream: Fix test for DP prepare complete
+    - phy: uniphier-pcie: Fix updating phy parameters
+    - phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe()
+    - extcon: sm5502: Drop invalid register write in sm5502_reg_data
+    - extcon: max8997: Add missing modalias string
+    - ASoC: atmel-i2s: Fix usage of capture and playback at the same time
+    - configfs: fix memleak in configfs_release_bin_file
+    - leds: as3645a: Fix error return code in as3645a_parse_node()
+    - leds: ktd2692: Fix an error handling path
+    - powerpc: Offline CPU in stop_this_cpu()
+    - serial: mvebu-uart: do not allow changing baudrate when uartclk is not
+      available
+    - serial: mvebu-uart: correctly calculate minimal possible baudrate
+    - arm64: dts: marvell: armada-37xx: Fix reg for standard variant of UART
+    - vfio/pci: Handle concurrent vma faults
+    - mm/huge_memory.c: don't discard hugepage if other processes are mapping it
+    - mm/z3fold: fix potential memory leak in z3fold_destroy_pool()
+    - selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random
+    - perf llvm: Return -ENOMEM when asprintf() fails
+    - scsi: target: cxgbit: Unmap DMA buffer before calling target_execute_cmd()
+    - mmc: block: Disable CMDQ on the ioctl path
+    - mmc: vub3000: fix control-request direction
+    - scsi: core: Retry I/O for Notify (Enable Spinup) Required error
+    - iommu/dma: Fix compile warning in 32-bit builds
+    - Linux 5.4.132
+  * Keyboard not working (LP: #1909814) // Focal update: v5.4.132 upstream
+    stable release (LP: #1938199)
+    - ACPI: resources: Add checks for ACPI IRQ override
+  * Focal update: v5.4.131 upstream stable release (LP: #1936245)
+    - KVM: SVM: Periodically schedule when unregistering regions on destroy
+    - s390/stack: fix possible register corruption with stack switch helper
+    - KVM: SVM: Call SEV Guest Decommission if ASID binding fails
+    - xen/events: reset active flag for lateeoi events later
+    - Linux 5.4.131
+  * Focal update: v5.4.130 upstream stable release (LP: #1936244)
+    - scsi: sr: Return appropriate error code when disk is ejected
+    - drm/nouveau: fix dma_address check for CPU/GPU sync
+    - gpio: AMD8111 and TQMX86 require HAS_IOPORT_MAP
+    - RDMA/mlx5: Block FDB rules when not in switchdev mode
+    - Linux 5.4.130
+  * Focal update: v5.4.129 upstream stable release (LP: #1936242)
+    - module: limit enabling module.sig_enforce
+    - drm/nouveau: wait for moving fence after pinning v2
+    - drm/radeon: wait for moving fence after pinning
+    - ARM: 9081/1: fix gcc-10 thumb2-kernel regression
+    - mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk
+    - kbuild: add CONFIG_LD_IS_LLD
+    - arm64: link with -z norelro for LLD or aarch64-elf
+    - MIPS: generic: Update node names to avoid unit addresses
+    - spi: spi-nxp-fspi: move the register operation after the clock enable
+    - Revert "PCI: PM: Do not read power state in pci_enable_device_flags()"
+    - dmaengine: zynqmp_dma: Fix PM reference leak in
+      zynqmp_dma_alloc_chan_resourc()
+    - mac80211: remove warning in ieee80211_get_sband()
+    - mac80211_hwsim: drop pending frames on stop
+    - cfg80211: call cfg80211_leave_ocb when switching away from OCB
+    - dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe()
+    - dmaengine: mediatek: free the proper desc in desc_free handler
+    - dmaengine: mediatek: do not issue a new desc if one is still current
+    - dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma
+    - net: ipv4: Remove unneed BUG() function
+    - mac80211: drop multicast fragments
+    - net: ethtool: clear heap allocations for ethtool function
+    - ping: Check return value of function 'ping_queue_rcv_skb'
+    - inet: annotate date races around sk->sk_txhash
+    - net: phy: dp83867: perform soft reset and retain established link
+    - net: caif: fix memory leak in ldisc_open
+    - net/packet: annotate accesses to po->bind
+    - net/packet: annotate accesses to po->ifindex
+    - r8152: Avoid memcpy() over-reading of ETH_SS_STATS
+    - sh_eth: Avoid memcpy() over-reading of ETH_SS_STATS
+    - r8169: Avoid memcpy() over-reading of ETH_SS_STATS
+    - KVM: selftests: Fix kvm_check_cap() assertion
+    - net: qed: Fix memcpy() overflow of qed_dcbx_params()
+    - recordmcount: Correct st_shndx handling
+    - PCI: Add AMD RS690 quirk to enable 64-bit DMA
+    - net: ll_temac: Add memory-barriers for TX BD access
+    - net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY
+    - pinctrl: stm32: fix the reported number of GPIO lines per bank
+    - nilfs2: fix memory leak in nilfs_sysfs_delete_device_group
+    - KVM: do not allow mapping valid but non-reference-counted pages
+    - i2c: robotfuzz-osif: fix control-request directions
+    - kthread_worker: split code for canceling the delayed work timer
+    - kthread: prevent deadlock when kthread_mod_delayed_work() races with
+      kthread_cancel_delayed_work_sync()
+    - mm: add VM_WARN_ON_ONCE_PAGE() macro
+    - mm/rmap: remove unneeded semicolon in page_not_mapped()
+    - mm/rmap: use page_not_mapped in try_to_unmap()
+    - mm, thp: use head page in __migration_entry_wait()
+    - mm/thp: fix __split_huge_pmd_locked() on shmem migration entry
+    - mm/thp: make is_huge_zero_pmd() safe and quicker
+    - mm/thp: try_to_unmap() use TTU_SYNC for safe splitting
+    - mm/thp: fix vma_address() if virtual address below file offset
+    - mm/thp: fix page_address_in_vma() on file THP tails
+    - mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page()
+    - mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split
+    - mm: page_vma_mapped_walk(): use page for pvmw->page
+    - mm: page_vma_mapped_walk(): settle PageHuge on entry
+    - mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd
+    - mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block
+    - mm: page_vma_mapped_walk(): crossing page table boundary
+    - mm: page_vma_mapped_walk(): add a level of indentation
+    - mm: page_vma_mapped_walk(): use goto instead of while (1)
+    - mm: page_vma_mapped_walk(): get vma_address_end() earlier
+    - mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes
+    - mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk()
+    - mm, futex: fix shared futex pgoff on shmem huge page
+    - [Config] enable CONFIG_SYSTEM_REVOCATION_LIST
+    - certs: Add EFI_CERT_X509_GUID support for dbx entries
+    - certs: Move load_system_certificate_list to a common function
+    - Linux 5.4.129
+  * Patch To Fix Bug in the Linux Block Layer Responsible For  Merging BIOs
+    (LP: #1931497)
+    - block: return the correct bvec when checking for gaps
+
+  [ Ubuntu: 5.4.0-81.91 ]
+
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * large_dir in ext4 broken (LP: #1933074)
+    - SAUCE: ext4: fix directory index node split corruption
+  * Some test in kselftest/net on focal source tree were not tested at all
+    (LP: #1934282)
+    - selftests/net: add missing tests to Makefile
+  * curtin: install flash-kernel in arm64 UEFI unexpected (LP: #1918427)
+    - [Packaging] Allow grub-efi-arm* to satisfy recommends on ARM
+  * Add l2tp.sh in net from ubuntu_kernel_selftests back (LP: #1934293)
+    - Revert "UBUNTU: SAUCE: selftests/net -- disable l2tp.sh test"
+  * icmp_redirect.sh in net from ubuntu_kernel_selftests failed on F-OEM-5.6 /
+    F-OEM-5.10 / F-OEM-5.13 / F / G / H (LP: #1880645)
+    - selftests: icmp_redirect: support expected failures
+  * Focal update: v5.4.128 upstream stable release (LP: #1934179)
+    - dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM
+    - dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM
+    - dmaengine: stedma40: add missing iounmap() on error in d40_probe()
+    - afs: Fix an IS_ERR() vs NULL check
+    - mm/memory-failure: make sure wait for page writeback in memory_failure
+    - kvm: LAPIC: Restore guard to prevent illegal APIC register access
+    - batman-adv: Avoid WARN_ON timing related checks
+    - net: ipv4: fix memory leak in netlbl_cipsov4_add_std
+    - vrf: fix maximum MTU
+    - net: rds: fix memory leak in rds_recvmsg
+    - net: lantiq: disable interrupt before sheduling NAPI
+    - udp: fix race between close() and udp_abort()
+    - rtnetlink: Fix regression in bridge VLAN configuration
+    - net/sched: act_ct: handle DNAT tuple collision
+    - net/mlx5e: Remove dependency in IPsec initialization flows
+    - net/mlx5e: Fix page reclaim for dead peer hairpin
+    - net/mlx5: Consider RoCE cap before init RDMA resources
+    - net/mlx5e: allow TSO on VXLAN over VLAN topologies
+    - net/mlx5e: Block offload of outer header csum for UDP tunnels
+    - netfilter: synproxy: Fix out of bounds when parsing TCP options
+    - sch_cake: Fix out of bounds when parsing TCP options and header
+    - alx: Fix an error handling path in 'alx_probe()'
+    - net: stmmac: dwmac1000: Fix extended MAC address registers definition
+    - net: make get_net_ns return error if NET_NS is disabled
+    - qlcnic: Fix an error handling path in 'qlcnic_probe()'
+    - netxen_nic: Fix an error handling path in 'netxen_nic_probe()'
+    - net: qrtr: fix OOB Read in qrtr_endpoint_post
+    - ptp: improve max_adj check against unreasonable values
+    - net: cdc_ncm: switch to eth%d interface naming
+    - lantiq: net: fix duplicated skb in rx descriptor ring
+    - net: usb: fix possible use-after-free in smsc75xx_bind
+    - net: fec_ptp: fix issue caused by refactor the fec_devtype
+    - net: ipv4: fix memory leak in ip_mc_add1_src
+    - net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock
+    - be2net: Fix an error handling path in 'be_probe()'
+    - net: hamradio: fix memory leak in mkiss_close
+    - net: cdc_eem: fix tx fixup skb leak
+    - cxgb4: fix wrong shift.
+    - bnxt_en: Rediscover PHY capabilities after firmware reset
+    - bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path
+    - icmp: don't send out ICMP messages with a source address of 0.0.0.0
+    - net: ethernet: fix potential use-after-free in ec_bhf_remove
+    - regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting
+    - ASoC: rt5659: Fix the lost powers for the HDA header
+    - spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd()
+    - pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled
+    - radeon: use memcpy_to/fromio for UVD fw upload
+    - hwmon: (scpi-hwmon) shows the negative temperature properly
+    - can: bcm: fix infoleak in struct bcm_msg_head
+    - can: bcm/raw/isotp: use per module netdevice notifier
+    - can: j1939: fix Use-after-Free, hold skb ref while in use
+    - can: mcba_usb: fix memory leak in mcba_usb
+    - usb: core: hub: Disable autosuspend for Cypress CY7C65632
+    - tracing: Do not stop recording cmdlines when tracing is off
+    - tracing: Do not stop recording comms if the trace file is being read
+    - tracing: Do no increment trace_clock_global() by one
+    - PCI: Mark TI C667X to avoid bus reset
+    - PCI: Mark some NVIDIA GPUs to avoid bus reset
+    - PCI: aardvark: Don't rely on jiffies while holding spinlock
+    - PCI: aardvark: Fix kernel panic during PIO transfer
+    - PCI: Add ACS quirk for Broadcom BCM57414 NIC
+    - PCI: Work around Huawei Intelligent NIC VF FLR erratum
+    - KVM: x86: Immediately reset the MMU context when the SMM flag is cleared
+    - ARCv2: save ABI registers across signal handling
+    - x86/process: Check PF_KTHREAD and not current->mm for kernel threads
+    - x86/pkru: Write hardware init value to PKRU when xstate is init
+    - x86/fpu: Reset state for all signal restore failures
+    - dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc
+    - cfg80211: make certificate generation more robust
+    - cfg80211: avoid double free of PMSR request
+    - net: ll_temac: Make sure to free skb when it is completely used
+    - net: ll_temac: Fix TX BD buffer overwrite
+    - net: bridge: fix vlan tunnel dst null pointer dereference
+    - net: bridge: fix vlan tunnel dst refcnt when egressing
+    - mm/slub: clarify verification reporting
+    - mm/slub: fix redzoning for small allocations
+    - mm/slub.c: include swab.h
+    - net: stmmac: disable clocks in stmmac_remove_config_dt()
+    - net: fec_ptp: add clock rate zero check
+    - tools headers UAPI: Sync linux/in.h copy with the kernel sources
+    - KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read
+    - ARM: OMAP: replace setup_irq() by request_irq()
+    - clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support
+    - clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue
+    - clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940
+    - usb: dwc3: debugfs: Add and remove endpoint dirs dynamically
+    - usb: dwc3: core: fix kernel panic when do reboot
+    - Linux 5.4.128
+  * linux-azure CIFS DFS oops (LP: #1935833)
+    - cifs: get rid of unused parameter in reconn_setup_dfs_targets()
+    - cifs: handle empty list of targets in cifs_reconnect()
+  * pmtu.sh from net in ubuntu_kernel_selftests failed with no error message
+    (LP: #1887661)
+    - selftests: pmtu.sh: improve the test result processing
+  * cifs: On cifs_reconnect, resolve the hostname again (LP: #1929831)
+    - cifs: rename reconn_inval_dfs_target()
+    - cifs: Simplify reconnect code when dfs upcall is enabled
+    - cifs: Avoid error pointer dereference
+    - cifs: On cifs_reconnect, resolve the hostname again.
+  * Pixel format change broken for Elgato Cam Link 4K (LP: #1932367)
+    - (upstream) media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K
+  * Focal update: v5.4.127 upstream stable release (LP: #1933851)
+    - net: ieee802154: fix null deref in parse dev addr
+    - HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65
+    - HID: hid-input: add mapping for emoji picker key
+    - HID: hid-sensor-hub: Return error for hid_set_field() failure
+    - HID: quirks: Add quirk for Lenovo optical mouse
+    - HID: multitouch: set Stylus suffix for Stylus-application devices, too
+    - HID: Add BUS_VIRTUAL to hid_connect logging
+    - HID: usbhid: fix info leak in hid_submit_ctrl
+    - drm/tegra: sor: Do not leak runtime PM reference
+    - ARM: OMAP2+: Fix build warning when mmc_omap is not built
+    - gfs2: Prevent direct-I/O write fallback errors from getting lost
+    - HID: gt683r: add missing MODULE_DEVICE_TABLE
+    - riscv: Use -mno-relax when using lld linker
+    - gfs2: Fix use-after-free in gfs2_glock_shrink_scan
+    - scsi: target: core: Fix warning on realtime kernels
+    - ethernet: myri10ge: Fix missing error code in myri10ge_probe()
+    - scsi: qedf: Do not put host in qedf_vport_create() unconditionally
+    - scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
+    - nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues()
+    - nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue()
+      fails
+    - nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue()
+    - net: ipconfig: Don't override command-line hostnames or domains
+    - drm/amd/display: Allow bandwidth validation for 0 streams.
+    - rtnetlink: Fix missing error code in rtnl_bridge_notify()
+    - net/x25: Return the correct errno code
+    - net: Return the correct errno code
+    - fib: Return the correct errno code
+    - Linux 5.4.127
+  * Focal update: v5.4.126 upstream stable release (LP: #1933369)
+    - proc: Check /proc/$pid/attr/ writes against file opener
+    - proc: Track /proc/$pid/attr/ opener mm_struct
+    - ASoC: max98088: fix ni clock divider calculation
+    - spi: Fix spi device unregister flow
+    - net/nfc/rawsock.c: fix a permission check bug
+    - usb: cdns3: Fix runtime PM imbalance on error
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L tablet
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830 tablet
+    - vfio-ccw: Serialize FSM IDLE state with I/O completion
+    - ASoC: sti-sas: add missing MODULE_DEVICE_TABLE
+    - spi: sprd: Add missing MODULE_DEVICE_TABLE
+    - isdn: mISDN: netjet: Fix crash in nj_probe:
+    - bonding: init notify_work earlier to avoid uninitialized use
+    - netlink: disable IRQs for netlink_lock_table()
+    - net: mdiobus: get rid of a BUG_ON()
+    - cgroup: disable controllers at parse time
+    - wq: handle VM suspension in stall detection
+    - net/qla3xxx: fix schedule while atomic in ql_sem_spinlock
+    - RDS tcp loopback connection can hang
+    - scsi: bnx2fc: Return failure if io_req is already in ABTS processing
+    - scsi: vmw_pvscsi: Set correct residual data length
+    - scsi: hisi_sas: Drop free_irq() of devm_request_irq() allocated irq
+    - scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal
+    - net: macb: ensure the device is available before accessing GEMGXL control
+      registers
+    - net: appletalk: cops: Fix data race in cops_probe1
+    - net: dsa: microchip: enable phy errata workaround on 9567
+    - nvme-fabrics: decode host pathing error for connect
+    - MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER
+    - dm verity: fix require_signatures module_param permissions
+    - bnx2x: Fix missing error code in bnx2x_iov_init_one()
+    - nvme-tcp: remove incorrect Kconfig dep in BLK_DEV_NVME
+    - powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers
+    - powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c controllers
+    - spi: Don't have controller clean up spi device before driver unbind
+    - spi: Cleanup on failure of initial setup
+    - i2c: mpc: Make use of i2c_recover_bus()
+    - i2c: mpc: implement erratum A-004447 workaround
+    - x86/boot: Add .text.* to setup.ld
+    - spi: bcm2835: Fix out-of-bounds access with more than 4 slaves
+    - drm: Fix use-after-free read in drm_getunique()
+    - drm: Lock pointer access in drm_master_release()
+    - kvm: avoid speculation-based attacks from out-of-range memslot accesses
+    - staging: rtl8723bs: Fix uninitialized variables
+    - btrfs: return value from btrfs_mark_extent_written() in case of error
+    - btrfs: promote debugging asserts to full-fledged checks in validate_super
+    - cgroup1: don't allow '\n' in renaming
+    - USB: f_ncm: ncm_bitrate (speed) is unsigned
+    - usb: f_ncm: only first packet of aggregate needs to start timer
+    - usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms
+    - usb: dwc3: ep0: fix NULL pointer exception
+    - usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling
+    - usb: typec: wcove: Use LE to CPU conversion when accessing msg->header
+    - usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path
+    - usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind
+    - USB: serial: ftdi_sio: add NovaTech OrionMX product ID
+    - USB: serial: omninet: add device id for Zyxel Omni 56K Plus
+    - USB: serial: quatech2: fix control-request directions
+    - USB: serial: cp210x: fix alternate function for CP2102N QFN20
+    - usb: gadget: eem: fix wrong eem header operation
+    - usb: fix various gadgets null ptr deref on 10gbps cabling.
+    - usb: fix various gadget panics on 10gbps cabling
+    - regulator: core: resolve supply for boot-on/always-on regulators
+    - regulator: max77620: Use device_set_of_node_from_dev()
+    - usb: typec: mux: Fix copy-paste mistake in typec_mux_match
+    - RDMA/ipoib: Fix warning caused by destroying non-initial netns
+    - RDMA/mlx4: Do not map the core_clock page to user space unless enabled
+    - vmlinux.lds.h: Avoid orphan section with !SMP
+    - perf: Fix data race between pin_count increment/decrement
+    - sched/fair: Make sure to update tg contrib for blocked load
+    - KVM: x86: Ensure liveliness of nested VM-Enter fail tracepoint message
+    - IB/mlx5: Fix initializing CQ fragments buffer
+    - NFS: Fix a potential NULL dereference in nfs_get_client()
+    - NFSv4: Fix deadlock between nfs4_evict_inode() and nfs4_opendata_get_inode()
+    - perf session: Correct buffer copying when peeking events
+    - kvm: fix previous commit for 32-bit builds
+    - NFS: Fix use-after-free in nfs4_init_client()
+    - NFSv4: Fix second deadlock in nfs4_evict_inode()
+    - NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error.
+    - scsi: core: Fix error handling of scsi_host_alloc()
+    - scsi: core: Fix failure handling of scsi_add_host_with_dma()
+    - scsi: core: Put .shost_dev in failure path if host state changes to RUNNING
+    - scsi: core: Only put parent device if host state differs from SHOST_CREATED
+    - ftrace: Do not blindly read the ip address in ftrace_bug()
+    - tracing: Correct the length check which causes memory corruption
+    - proc: only require mm_struct for writing
+    - Linux 5.4.126
+  * Focal update: v5.4.125 upstream stable release (LP: #1932957)
+    - btrfs: tree-checker: do not error out if extent ref hash doesn't match
+    - net: usb: cdc_ncm: don't spew notifications
+    - ALSA: usb: update old-style static const declaration
+    - nl80211: validate key indexes for cfg80211_registered_device
+    - hwmon: (dell-smm-hwmon) Fix index values
+    - netfilter: conntrack: unregister ipv4 sockopts on error unwind
+    - efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared
+    - efi: cper: fix snprintf() use in cper_dimm_err_location()
+    - vfio/pci: Fix error return code in vfio_ecap_init()
+    - vfio/pci: zap_vma_ptes() needs MMU
+    - samples: vfio-mdev: fix error handing in mdpy_fb_probe()
+    - vfio/platform: fix module_put call in error flow
+    - ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service
+    - HID: pidff: fix error return code in hid_pidff_init()
+    - HID: i2c-hid: fix format string mismatch
+    - net/sched: act_ct: Fix ct template allocation for zone 0
+    - ACPICA: Clean up context mutex during object deletion
+    - netfilter: nft_ct: skip expectations for confirmed conntrack
+    - netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches
+    - ieee802154: fix error return code in ieee802154_add_iface()
+    - ieee802154: fix error return code in ieee802154_llsec_getparams()
+    - ixgbevf: add correct exception tracing for XDP
+    - ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions
+    - ice: write register with correct offset
+    - ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared
+    - ice: Allow all LLDP packets from PF to Tx
+    - i2c: qcom-geni: Add shutdown callback for i2c
+    - i40e: optimize for XDP_REDIRECT in xsk path
+    - i40e: add correct exception tracing for XDP
+    - arm64: dts: ls1028a: fix memory node
+    - arm64: dts: zii-ultra: fix 12V_MAIN voltage
+    - ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property
+    - ARM: dts: imx7d-pico: Fix the 'tuning-step' property
+    - ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells
+    - bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act
+    - tipc: add extack messages for bearer/media failure
+    - tipc: fix unique bearer names sanity check
+    - Bluetooth: fix the erroneous flush_work() order
+    - Bluetooth: use correct lock to prevent UAF of hdev object
+    - net: caif: added cfserl_release function
+    - net: caif: add proper error handling
+    - net: caif: fix memory leak in caif_device_notify
+    - net: caif: fix memory leak in cfusbl_device_notify
+    - HID: i2c-hid: Skip ELAN power-on command after reset
+    - HID: magicmouse: fix NULL-deref on disconnect
+    - HID: multitouch: require Finger field to mark Win8 reports as MT
+    - ALSA: timer: Fix master timer notification
+    - ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx
+    - ARM: dts: imx6dl-yapp4: Fix RGMII connection to QCA8334 switch
+    - ARM: dts: imx6q-dhcom: Add PU,VDD1P1,VDD2P5 regulators
+    - ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
+    - usb: dwc2: Fix build in periphal-only mode
+    - pid: take a reference when initializing `cad_pid`
+    - ocfs2: fix data corruption by fallocate
+    - nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect
+    - drm/amdgpu: Don't query CE and UE errors
+    - drm/amdgpu: make sure we unpin the UVD BO
+    - x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing
+    - btrfs: mark ordered extent and inode with error if we fail to finish
+    - btrfs: fix error handling in btrfs_del_csums
+    - btrfs: return errors from btrfs_del_csums in cleanup_ref_head
+    - btrfs: fixup error handling in fixup_inode_link_counts
+    - mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY
+    - bnxt_en: Remove the setting of dev_port.
+    - mm: add thp_order
+    - XArray: add xa_get_order
+    - XArray: add xas_split
+    - mm/filemap: fix storing to a THP shadow entry
+    - btrfs: fix unmountable seed device after fstrim
+    - KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode
+    - KVM: arm64: Fix debug register indexing
+    - lib/lz4: explicitly support in-place decompression
+    - xen-pciback: redo VF placement in the virtual topology
+    - i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops
+    - neighbour: allow NUD_NOARP entries to be forced GCed
+    - Linux 5.4.125
+
+  [ Ubuntu: 5.4.0-80.90 ]
+
+  * CVE-2021-33909
+    - SAUCE: seq_file: Disallow extremely large seq buffer allocations
+
+  [ Ubuntu: 5.4.0-79.88 ]
+
+  * focal/linux: 5.4.0-79.88 -proposed tracker (LP: #1934343)
+  * lxd exec fails (LP: #1934187)
+    - SAUCE: Revert "proc: Check /proc/$pid/attr/ writes against file opener"
+
+  [ Ubuntu: 5.4.0-78.87 ]
+
+  * focal/linux: 5.4.0-78.87 -proposed tracker (LP: #1932478)
+  * Packaging resync (LP: #1786013)
+    - [Packaging] resync getabis
+    - [Packaging] update helper scripts
+    - update dkms package versions
+  * Disable hv-kvp-daemon.service on certain instance types (LP: #1932081)
+    - [Packaging]: Add kernel command line condition to hv-kvp-daemon service
+  * QLogic Direct-Connect host can't discover SCSI-FC or NVMe/FC devices
+    (LP: #1860724)
+    - scsi: qla2xxx: Serialize fc_port alloc in N2N
+    - scsi: qla2xxx: Set Nport ID for N2N
+    - scsi: qla2xxx: Fix point-to-point (N2N) device discovery issue
+    - scsi: qla2xxx: Fix N2N and NVMe connect retry failure
+  * [SRU] Add support for E810 NIC to Ice Driver in Focal (LP: #1912511)
+    - ice: add additional E810 device id
+  * Focal update: v5.4.124 upstream stable release (LP: #1931166)
+    - ALSA: hda/realtek: Headphone volume is controlled by Front mixer
+    - ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci
+    - ALSA: usb-audio: scarlett2: Improve driver startup messages
+    - cifs: set server->cipher_type to AES-128-CCM for SMB3.0
+    - NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()
+    - iommu/vt-d: Fix sysfs leak in alloc_iommu()
+    - perf intel-pt: Fix sample instruction bytes
+    - perf intel-pt: Fix transaction abort handling
+    - perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top
+      Calls by elapsed Time report
+    - perf scripts python: exported-sql-viewer.py: Fix Array TypeError
+    - perf scripts python: exported-sql-viewer.py: Fix warning display
+    - proc: Check /proc/$pid/attr/ writes against file opener
+    - net: hso: fix control-request directions
+    - ath10k: Validate first subframe of A-MSDU before processing the list
+    - dm snapshot: properly fix a crash when an origin has no snapshots
+    - drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate
+    - drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate
+    - drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate
+    - selftests/gpio: Use TEST_GEN_PROGS_EXTENDED
+    - selftests/gpio: Move include of lib.mk up
+    - selftests/gpio: Fix build when source tree is read only
+    - kgdb: fix gcc-11 warnings harder
+    - Documentation: seccomp: Fix user notification documentation
+    - serial: core: fix suspicious security_locked_down() call
+    - misc/uss720: fix memory leak in uss720_probe
+    - thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue
+    - mei: request autosuspend after sending rx flow control
+    - staging: iio: cdc: ad7746: avoid overwrite of num_channels
+    - iio: gyro: fxas21002c: balance runtime power in error path
+    - iio: adc: ad7768-1: Fix too small buffer passed to
+      iio_push_to_buffers_with_timestamp()
+    - iio: adc: ad7124: Fix missbalanced regulator enable / disable on error.
+    - iio: adc: ad7124: Fix potential overflow due to non sequential channel
+      numbers
+    - iio: adc: ad7793: Add missing error code in ad7793_setup()
+    - serial: 8250_pci: Add support for new HPE serial device
+    - serial: 8250_pci: handle FL_NOIRQ board flag
+    - USB: trancevibrator: fix control-request direction
+    - USB: usbfs: Don't WARN about excessively large memory allocations
+    - serial: tegra: Fix a mask operation that is always true
+    - serial: sh-sci: Fix off-by-one error in FIFO threshold register setting
+    - serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'
+    - USB: serial: ti_usb_3410_5052: add startech.com device id
+    - USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011
+    - USB: serial: ftdi_sio: add IDs for IDS GmbH Products
+    - USB: serial: pl2303: add device id for ADLINK ND-6530 GC
+    - thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID
+    - usb: dwc3: gadget: Properly track pending and queued SG
+    - usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen()
+    - net: usb: fix memory leak in smsc75xx_bind
+    - spi: spi-geni-qcom: Fix use-after-free on unbind
+    - Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails
+    - fs/nfs: Use fatal_signal_pending instead of signal_pending
+    - NFS: fix an incorrect limit in filelayout_decode_layout()
+    - NFS: Fix an Oopsable condition in __nfs_pageio_add_request()
+    - NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
+    - NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config
+    - drm/meson: fix shutdown crash when component not probed
+    - net/mlx5e: Fix multipath lag activation
+    - net/mlx5e: Fix nullptr in add_vlan_push_action()
+    - net/mlx4: Fix EEPROM dump support
+    - Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"
+    - tipc: wait and exit until all work queues are done
+    - tipc: skb_linearize the head skb when reassembling msgs
+    - spi: spi-fsl-dspi: Fix a resource leak in an error handling path
+    - net: dsa: mt7530: fix VLAN traffic leaks
+    - net: dsa: fix a crash if ->get_sset_count() fails
+    - net: dsa: sja1105: error out on unsupported PHY mode
+    - i2c: s3c2410: fix possible NULL pointer deref on read message after write
+    - i2c: i801: Don't generate an interrupt on bus reset
+    - i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E
+    - perf jevents: Fix getting maximum number of fds
+    - platform/x86: hp_accel: Avoid invoking _INI to speed up resume
+    - gpio: cadence: Add missing MODULE_DEVICE_TABLE
+    - Revert "media: usb: gspca: add a missed check for goto_low_power"
+    - Revert "ALSA: sb: fix a missing check of snd_ctl_add"
+    - Revert "serial: max310x: pass return value of spi_register_driver"
+    - serial: max310x: unregister uart driver in case of failure and abort
+    - Revert "net: fujitsu: fix a potential NULL pointer dereference"
+    - net: fujitsu: fix potential null-ptr-deref
+    - Revert "net/smc: fix a NULL pointer dereference"
+    - net: caif: remove BUG_ON(dev == NULL) in caif_xmit
+    - Revert "char: hpet: fix a missing check of ioremap"
+    - char: hpet: add checks after calling ioremap
+    - Revert "ALSA: gus: add a check of the status of snd_ctl_add"
+    - Revert "ALSA: usx2y: Fix potential NULL pointer dereference"
+    - Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference"
+    - isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
+    - Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()"
+    - ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()
+    - Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc"
+    - isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info
+    - Revert "dmaengine: qcom_hidma: Check for driver register failure"
+    - dmaengine: qcom_hidma: comment platform_driver_register call
+    - Revert "libertas: add checks for the return value of sysfs_create_group"
+    - libertas: register sysfs groups properly
+    - Revert "ASoC: cs43130: fix a NULL pointer dereference"
+    - ASoC: cs43130: handle errors in cs43130_probe() properly
+    - Revert "media: dvb: Add check on sp8870_readreg"
+    - media: dvb: Add check on sp8870_readreg return
+    - Revert "media: gspca: mt9m111: Check write_bridge for timeout"
+    - media: gspca: mt9m111: Check write_bridge for timeout
+    - Revert "media: gspca: Check the return value of write_bridge for timeout"
+    - media: gspca: properly check for errors in po1030_probe()
+    - Revert "net: liquidio: fix a NULL pointer dereference"
+    - net: liquidio: Add missing null pointer checks
+    - Revert "brcmfmac: add a check for the status of usb_register"
+    - brcmfmac: properly check for bus register errors
+    - btrfs: return whole extents in fiemap
+    - scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic
+    - openrisc: Define memory barrier mb
+    - btrfs: do not BUG_ON in link_to_fixup_dir
+    - platform/x86: hp-wireless: add AMD's hardware id to the supported list
+    - platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI
+    - platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700
+      tablet
+    - SMB3: incorrect file id in requests compounded with open
+    - drm/amd/display: Disconnect non-DP with no EDID
+    - drm/amd/amdgpu: fix refcount leak
+    - drm/amdgpu: Fix a use-after-free
+    - drm/amd/amdgpu: fix a potential deadlock in gpu reset
+    - net: netcp: Fix an error message
+    - net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count
+    - ASoC: cs42l42: Regmap must use_single_read/write
+    - vfio-ccw: Check initialized flag in cp_init()
+    - net: really orphan skbs tied to closing sk
+    - net: fec: fix the potential memory leak in fec_enet_init()
+    - net: mdio: thunder: Fix a double free issue in the .remove function
+    - net: mdio: octeon: Fix some double free issues
+    - openvswitch: meter: fix race when getting now_ms.
+    - tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT
+    - net: sched: fix packet stuck problem for lockless qdisc
+    - net: sched: fix tx action rescheduling issue during deactivation
+    - net: sched: fix tx action reschedule issue with stopped queue
+    - net: hso: check for allocation failure in hso_create_bulk_serial_device()
+    - net: bnx2: Fix error return code in bnx2_init_board()
+    - bnxt_en: Include new P5 HV definition in VF check.
+    - mld: fix panic in mld_newpack()
+    - gve: Check TX QPL was actually assigned
+    - gve: Update mgmt_msix_idx if num_ntfy changes
+    - gve: Add NULL pointer checks when freeing irqs.
+    - gve: Upgrade memory barrier in poll routine
+    - gve: Correct SKB queue index validation.
+    - cxgb4: avoid accessing registers when clearing filters
+    - staging: emxx_udc: fix loop in _nbu2ss_nuke()
+    - ASoC: cs35l33: fix an error code in probe()
+    - bpf: Set mac_len in bpf_skb_change_head
+    - ixgbe: fix large MTU request from VF
+    - scsi: libsas: Use _safe() loop in sas_resume_port()
+    - net: lantiq: fix memory corruption in RX ring
+    - ipv6: record frag_max_size in atomic fragments in input path
+    - ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be
+      static
+    - net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88
+    - sch_dsmark: fix a NULL deref in qdisc_reset()
+    - MIPS: alchemy: xxs1500: add gpio-au1000.h header file
+    - MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c
+    - drm/i915/display: fix compiler warning about array overrun
+    - i915: fix build warning in intel_dp_get_link_status()
+    - drivers/net/ethernet: clean up unused assignments
+    - net: hns3: check the return of skb_checksum_help()
+    - Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
+    - net: hso: bail out on interrupt URB allocation failure
+    - neighbour: Prevent Race condition in neighbour subsytem
+    - usb: core: reduce power-on-good delay time of root hub
+    - Linux 5.4.124
+  * Focal update: v5.4.123 upstream stable release (LP: #1931160)
+    - usb: dwc3: gadget: Enable suspend events
+    - perf unwind: Fix separate debug info files when using elfutils' libdw's
+      unwinder
+    - perf unwind: Set userdata for all __report_module() paths
+    - NFC: nci: fix memory leak in nci_allocate_device
+    - Linux 5.4.123
+  * Focal update: v5.4.122 upstream stable release (LP: #1931159)
+    - firmware: arm_scpi: Prevent the ternary sign expansion bug
+    - openrisc: Fix a memory leak
+    - RDMA/siw: Properly check send and receive CQ pointers
+    - RDMA/siw: Release xarray entry
+    - RDMA/rxe: Clear all QP fields if creation failed
+    - scsi: ufs: core: Increase the usable queue depth
+    - scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
+    - RDMA/mlx5: Recover from fatal event in dual port mode
+    - RDMA/core: Don't access cm_id after its destruction
+    - platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue
+    - platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
+    - RDMA/uverbs: Fix a NULL vs IS_ERR() bug
+    - ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
+    - nvmet: seset ns->file when open fails
+    - locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal
+    - btrfs: avoid RCU stalls while running delayed iputs
+    - cifs: fix memory leak in smb2_copychunk_range
+    - ALSA: dice: fix stream format for TC Electronic Konnekt Live at high
+      sampling transfer frequency
+    - ALSA: intel8x0: Don't update period unless prepared
+    - ALSA: line6: Fix racy initialization of LINE6 MIDI
+    - ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26
+    - ALSA: firewire-lib: fix calculation for size of IR context payload
+    - ALSA: usb-audio: Validate MS endpoint descriptors
+    - ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
+    - ALSA: hda: fixup headset for ASUS GU502 laptop
+    - Revert "ALSA: sb8: add a check for request_region"
+    - ALSA: firewire-lib: fix check for the size of isochronous packet payload
+    - ALSA: hda/realtek: reset eapd coeff to default value for alc287
+    - ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293
+    - ALSA: hda/realtek: Fix silent headphone output on ASUS UX430UA
+    - ALSA: hda/realtek: Add fixup for HP OMEN laptop
+    - ALSA: hda/realtek: Add fixup for HP Spectre x360 15-df0xxx
+    - uio_hv_generic: Fix a memory leak in error handling paths
+    - Revert "rapidio: fix a NULL pointer dereference when create_workqueue()
+      fails"
+    - rapidio: handle create_workqueue() failure
+    - Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer
+      dereference"
+    - drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang
+    - drm/amdgpu: update gc golden setting for Navi12
+    - drm/amdgpu: update sdma golden setting for Navi12
+    - mmc: sdhci-pci-gli: increase 1.8V regulator wait
+    - xen-pciback: reconfigure also from backend watch handler
+    - dm snapshot: fix crash with transient storage and zero chunk size
+    - Revert "video: hgafb: fix potential NULL pointer dereference"
+    - Revert "net: stmicro: fix a missing check of clk_prepare"
+    - Revert "leds: lp5523: fix a missing check of return value of lp55xx_read"
+    - Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
+    - Revert "video: imsttfb: fix potential NULL pointer dereferences"
+    - Revert "ecryptfs: replace BUG_ON with error handling code"
+    - Revert "scsi: ufs: fix a missing check of devm_reset_control_get"
+    - Revert "gdrom: fix a memory leak bug"
+    - cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
+    - cdrom: gdrom: initialize global variable at init time
+    - Revert "media: rcar_drif: fix a memory disclosure"
+    - Revert "rtlwifi: fix a potential NULL pointer dereference"
+    - Revert "qlcnic: Avoid potential NULL pointer dereference"
+    - Revert "niu: fix missing checks of niu_pci_eeprom_read"
+    - ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
+    - net: stmicro: handle clk_prepare() failure during init
+    - scsi: ufs: handle cleanup correctly on devm_reset_control_get error
+    - net: rtlwifi: properly check for alloc_workqueue() failure
+    - ics932s401: fix broken handling of errors when word reading fails
+    - leds: lp5523: check return value of lp5xx_read and jump to cleanup code
+    - qlcnic: Add null check after calling netdev_alloc_skb
+    - video: hgafb: fix potential NULL pointer dereference
+    - vgacon: Record video mode changes with VT_RESIZEX
+    - vt: Fix character height handling with VT_RESIZEX
+    - tty: vt: always invoke vc->vc_sw->con_resize callback
+    - nvme-multipath: fix double initialization of ANA state
+    - ext4: fix error handling in ext4_end_enable_verity()
+    - Bluetooth: L2CAP: Fix handling LE modes by L2CAP_OPTIONS
+    - nvmet: use new ana_log_size instead the old one
+    - video: hgafb: correctly handle card detect failure during probe
+    - Bluetooth: SMP: Fail if remote and local public keys are identical
+    - Linux 5.4.122
+  * Focal update: v5.4.121 upstream stable release (LP: #1931158)
+    - x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
+    - kgdb: fix gcc-11 warning on indentation
+    - usb: sl811-hcd: improve misleading indentation
+    - cxgb4: Fix the -Wmisleading-indentation warning
+    - isdn: capi: fix mismatched prototypes
+    - pinctrl: ingenic: Improve unreachable code generation
+    - xsk: Simplify detection of empty and full rings
+    - virtio_net: Do not pull payload in skb->head
+    - PCI: thunder: Fix compile testing
+    - dmaengine: dw-edma: Fix crash on loading/unloading driver
+    - ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend()
+    - ACPI / hotplug / PCI: Fix reference count leak in enable_slot()
+    - Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated
+      devices
+    - Input: silead - add workaround for x86 BIOS-es which bring the chip up in a
+      stuck state
+    - um: Mark all kernel symbols as local
+    - um: Disable CONFIG_GCOV with MODULES
+    - ARM: 9075/1: kernel: Fix interrupted SMC calls
+    - scripts/recordmcount.pl: Fix RISC-V regex for clang
+    - riscv: Workaround mcount name prior to clang-13
+    - scsi: lpfc: Fix illegal memory access on Abort IOCBs
+    - ceph: fix fscache invalidation
+    - scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not
+      found
+    - bridge: Fix possible races between assigning rx_handler_data and setting
+      IFF_BRIDGE_PORT bit
+    - drm/amd/display: Fix two cursor duplication when using overlay
+    - gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055
+    - ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
+    - block: reexpand iov_iter after read/write
+    - lib: stackdepot: turn depot_lock spinlock to raw_spinlock
+    - net: stmmac: Do not enable RX FIFO overflow interrupts
+    - ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
+    - sit: proper dev_{hold|put} in ndo_[un]init methods
+    - ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
+    - ipv6: remove extra dev_hold() for fallback tunnels
+    - KVM: arm64: Initialize VCPU mdcr_el2 before loading it
+    - tweewide: Fix most Shebang lines
+    - scripts: switch explicitly to Python 3
+    - Linux 5.4.121
+  * Focal update: v5.4.120 upstream stable release (LP: #1930474)
+    - tpm: fix error return code in tpm2_get_cc_attrs_tbl()
+    - tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt()
+    - tpm, tpm_tis: Reserve locality in tpm_tis_resume()
+    - KVM: x86/mmu: Remove the defunct update_pte() paging hook
+    - PM: runtime: Fix unpaired parent child_count for force_resume
+    - fs: dlm: fix debugfs dump
+    - tipc: convert dest node's address to network order
+    - ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF
+    - net: stmmac: Set FIFO sizes for ipq806x
+    - ASoC: rsnd: core: Check convert rate in rsnd_hw_params
+    - i2c: bail out early when RDWR parameters are wrong
+    - ALSA: hdsp: don't disable if not enabled
+    - ALSA: hdspm: don't disable if not enabled
+    - ALSA: rme9652: don't disable if not enabled
+    - ALSA: bebob: enable to deliver MIDI messages for multiple ports
+    - Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
+    - Bluetooth: initialize skb_queue_head at l2cap_chan_create()
+    - net: bridge: when suppression is enabled exclude RARP packets
+    - Bluetooth: check for zapped sk before connecting
+    - ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
+    - ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
+    - i2c: Add I2C_AQ_NO_REP_START adapter quirk
+    - mac80211: clear the beacon's CRC after channel switch
+    - pinctrl: samsung: use 'int' for register masks in Exynos
+    - mt76: mt76x0: disable GTK offloading
+    - cuse: prevent clone
+    - ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init()
+    - Revert "iommu/amd: Fix performance counter initialization"
+    - iommu/amd: Remove performance counter pre-initialization test
+    - drm/amd/display: Force vsync flip when reconfiguring MPCC
+    - selftests: Set CC to clang in lib.mk if LLVM is set
+    - kconfig: nconf: stop endless search loops
+    - ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume
+    - sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
+    - flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target()
+    - powerpc/smp: Set numa node before updating mask
+    - ASoC: rt286: Generalize support for ALC3263 codec
+    - ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user()
+    - net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule
+    - samples/bpf: Fix broken tracex1 due to kprobe argument change
+    - powerpc/pseries: Stop calling printk in rtas_stop_self()
+    - drm/amd/display: fixed divide by zero kernel crash during dsc enablement
+    - wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
+    - wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
+    - qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth
+    - powerpc/iommu: Annotate nested lock for lockdep
+    - iavf: remove duplicate free resources calls
+    - net: ethernet: mtk_eth_soc: fix RX VLAN offload
+    - bnxt_en: Add PCI IDs for Hyper-V VF devices.
+    - ia64: module: fix symbolizer crash on fdescr
+    - ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
+    - thermal: thermal_of: Fix error return code of
+      thermal_of_populate_bind_params()
+    - f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
+    - PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc()
+    - PCI: Release OF node in pci_scan_device()'s error path
+    - ARM: 9064/1: hw_breakpoint: Do not directly check the event's
+      overflow_handler hook
+    - rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
+    - NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
+    - NFS: Deal correctly with attribute generation counter overflow
+    - PCI: endpoint: Fix missing destroy_workqueue()
+    - pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
+    - NFSv4.2 fix handling of sr_eof in SEEK's reply
+    - rtc: fsl-ftm-alarm: add MODULE_TABLE()
+    - ceph: fix inode leak on getattr error in __fh_to_dentry
+    - rtc: ds1307: Fix wday settings for rx8130
+    - net: hns3: fix incorrect configuration for igu_egu_hw_err
+    - net: hns3: initialize the message content in hclge_get_link_mode()
+    - net: hns3: add check for HNS3_NIC_STATE_INITED in
+      hns3_reset_notify_up_enet()
+    - net: hns3: fix for vxlan gpe tx checksum bug
+    - net: hns3: use netif_tx_disable to stop the transmit queue
+    - net: hns3: disable phy loopback setting in hclge_mac_start_phy
+    - sctp: do asoc update earlier in sctp_sf_do_dupcook_a
+    - RISC-V: Fix error code returned by riscv_hartid_to_cpuid()
+    - sunrpc: Fix misplaced barrier in call_decode
+    - ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
+    - sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
+    - netfilter: xt_SECMARK: add new revision to fix structure layout
+    - drm/radeon: Fix off-by-one power_state index heap overwrite
+    - drm/radeon: Avoid power table parsing memory leaks
+    - khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
+    - mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
+    - mm/migrate.c: fix potential indeterminate pte entry in
+      migrate_vma_insert_page()
+    - ksm: fix potential missing rmap_item for stable_node
+    - net: fix nla_strcmp to handle more then one trailing null character
+    - smc: disallow TCP_ULP in smc_setsockopt()
+    - netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
+    - can: m_can: m_can_tx_work_queue(): fix tx_skb race condition
+    - sched: Fix out-of-bound access in uclamp
+    - sched/fair: Fix unfairness caused by missing load decay
+    - kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
+    - netfilter: nftables: avoid overflows in nft_hash_buckets()
+    - i40e: Fix use-after-free in i40e_client_subtask()
+    - i40e: fix the restart auto-negotiation after FEC modified
+    - i40e: Fix PHY type identifiers for 2.5G and 5G adapters
+    - ARC: entry: fix off-by-one error in syscall number validation
+    - ARC: mm: PAE: use 40-bit physical page mask
+    - powerpc/64s: Fix crashes when toggling stf barrier
+    - powerpc/64s: Fix crashes when toggling entry flush barrier
+    - hfsplus: prevent corruption in shrinking truncate
+    - squashfs: fix divide error in calculate_skip()
+    - userfaultfd: release page in error path to avoid BUG_ON
+    - mm/hugetlb: fix F_SEAL_FUTURE_WRITE
+    - drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors
+      are connected
+    - drm/i915: Avoid div-by-zero on gen2
+    - iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
+    - usb: fotg210-hcd: Fix an error message
+    - hwmon: (occ) Fix poll rate limiting
+    - ACPI: scan: Fix a memory leak in an error handling path
+    - kyber: fix out of bounds access when preempted
+    - nbd: Fix NULL pointer in flush_workqueue
+    - blk-mq: Swap two calls in blk_mq_exit_queue()
+    - iomap: fix sub-page uptodate handling
+    - usb: dwc3: omap: improve extcon initialization
+    - usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield
+    - usb: xhci: Increase timeout for HC halt
+    - usb: dwc2: Fix gadget DMA unmap direction
+    - usb: core: hub: fix race condition about TRSMRCY of resume
+    - usb: dwc3: gadget: Return success always for kick transfer in ep queue
+    - xhci: Do not use GFP_KERNEL in (potentially) atomic context
+    - xhci: Add reset resume quirk for AMD xhci controller.
+    - iio: gyro: mpu3050: Fix reported temperature value
+    - iio: tsl2583: Fix division by a zero lux_val
+    - cdc-wdm: untangle a circular dependency between callback and softint
+    - KVM: x86: Cancel pvclock_gtod_work on module removal
+    - mm: fix struct page layout on 32-bit systems
+    - FDDI: defxx: Make MMIO the configuration default except for EISA
+    - MIPS: Reinstate platform `__div64_32' handler
+    - MIPS: Avoid DIVU in `__div64_32' is result would be zero
+    - MIPS: Avoid handcoded DIVU in `__div64_32' altogether
+    - thermal/core/fair share: Lock the thermal zone while looping over instances
+    - f2fs: fix error handling in f2fs_end_enable_verity()
+    - ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address
+    - ARM: 9012/1: move device tree mapping out of linear region
+    - ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual
+      address
+    - ARM: 9027/1: head.S: explicitly map DT even if it lives in the first
+      physical section
+    - usb: typec: tcpm: Fix error while calculating PPS out values
+    - kobject_uevent: remove warning in init_uevent_argv()
+    - netfilter: conntrack: Make global sysctls readonly in non-init netns
+    - clk: exynos7: Mark aclk_fsys1_200 as critical
+    - nvme: do not try to reconfigure APST when the controller is not live
+    - ASoC: rsnd: check all BUSIF status when error
+    - Linux 5.4.120
+  * scsi: storvsc: Parameterize number hardware queues (LP: #1930626)
+    - scsi: storvsc: Parameterize number hardware queues
+
+  [ Ubuntu: 5.4.0-77.86 ]
+
+  * UAF on CAN J1939 j1939_can_recv (LP: #1932209)
+    - SAUCE: can: j1939: delay release of j1939_priv after synchronize_rcu
+  * UAF on CAN BCM bcm_rx_handler (LP: #1931855)
+    - SAUCE: can: bcm: delay release of struct bcm_op after synchronize_rcu
+
+  [ Ubuntu: 5.4.0-76.85 ]
+
+  * focal/linux: 5.4.0-76.85 -proposed tracker (LP: #1932123)
+  * Upstream v5.9 introduced 'module' patches that removed exported symbols
+    (LP: #1932065)
+    - SAUCE: Revert "modules: inherit TAINT_PROPRIETARY_MODULE"
+    - SAUCE: Revert "modules: return licensing information from find_symbol"
+    - SAUCE: Revert "modules: rename the licence field in struct symsearch to
+      license"
+    - SAUCE: Revert "modules: unexport __module_address"
+    - SAUCE: Revert "modules: unexport __module_text_address"
+    - SAUCE: Revert "modules: mark each_symbol_section static"
+    - SAUCE: Revert "modules: mark find_symbol static"
+    - SAUCE: Revert "modules: mark ref_module static"
+
+  [ Ubuntu: 5.4.0-75.84 ]
+
+  * focal/linux: 5.4.0-75.84 -proposed tracker (LP: #1930032)
+  * Packaging resync (LP: #1786013)
+    - update dkms package versions
+  * CVE-2021-33200
+    - bpf: Wrap aux data inside bpf_sanitize_info container
+    - bpf: Fix mask direction swap upon off reg sign change
+    - bpf: No need to simulate speculative domain for immediates
+  * Realtek USB hubs in Dell WD19SC/DC/TB fail to work after exiting s2idle
+    (LP: #1928242)
+    - USB: Verify the port status when timeout happens during port suspend
+  * CVE-2020-26145
+    - ath10k: drop fragments with multicast DA for SDIO
+    - ath10k: add CCMP PN replay protection for fragmented frames for PCIe
+    - ath10k: drop fragments with multicast DA for PCIe
+  * CVE-2020-26141
+    - ath10k: Fix TKIP Michael MIC verification for PCIe
+  * CVE-2020-24588
+    - mac80211: properly handle A-MSDUs that start with an RFC 1042 header
+    - cfg80211: mitigate A-MSDU aggregation attacks
+    - mac80211: drop A-MSDUs on old ciphers
+    - ath10k: drop MPDU which has discard flag set by firmware for SDIO
+  * CVE-2020-26139
+    - mac80211: do not accept/forward invalid EAPOL frames
+  * CVE-2020-24586 // CVE-2020-24587 // CVE-2020-24587 for such cases.
+    - mac80211: extend protection against mixed key and fragment cache attacks
+  * CVE-2020-24586 // CVE-2020-24587
+    - mac80211: prevent mixed key and fragment cache attacks
+    - mac80211: add fragment cache to sta_info
+    - mac80211: check defrag PN against current frame
+    - mac80211: prevent attacks on TKIP/WEP as well
+  * CVE-2020-26147
+    - mac80211: assure all fragments are encrypted
+  * raid10: Block discard is very slow, causing severe delays for mkfs and
+    fstrim operations (LP: #1896578)
+    - md: add md_submit_discard_bio() for submitting discard bio
+    - md/raid10: extend r10bio devs to raid disks
+    - md/raid10: pull the code that wait for blocked dev into one function
+    - md/raid10: improve raid10 discard request
+    - md/raid10: improve discard request for far layout
+    - dm raid: remove unnecessary discard limits for raid0 and raid10
+  * [SRU] mpt3sas: only one vSES is handy even IOC has multi vSES (LP: #1926517)
+    - scsi: mpt3sas: Only one vSES is present even when IOC has multi vSES
+  * kvm: properly tear down PV features on hibernate (LP: #1920944)
+    - x86/kvm: Fix pr_info() for async PF setup/teardown
+    - x86/kvm: Teardown PV features on boot CPU as well
+    - x86/kvm: Disable kvmclock on all CPUs on shutdown
+    - x86/kvm: Disable all PV features on crash
+    - x86/kvm: Unify kvm_pv_guest_cpu_reboot() with kvm_guest_cpu_offline()
+  * Focal update: v5.4.119 upstream stable release (LP: #1929615)
+    - Bluetooth: verify AMP hci_chan before amp_destroy
+    - hsr: use netdev_err() instead of WARN_ONCE()
+    - bluetooth: eliminate the potential race condition when removing the HCI
+      controller
+    - net/nfc: fix use-after-free llcp_sock_bind/connect
+    - Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL"
+    - tty: moxa: fix TIOCSSERIAL jiffies conversions
+    - tty: amiserial: fix TIOCSSERIAL permission check
+    - USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions
+    - staging: greybus: uart: fix TIOCSSERIAL jiffies conversions
+    - USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check
+    - staging: fwserial: fix TIOCSSERIAL jiffies conversions
+    - tty: moxa: fix TIOCSSERIAL permission check
+    - staging: fwserial: fix TIOCSSERIAL permission check
+    - usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply
+    - usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply
+    - usb: typec: tcpm: update power supply once partner accepts
+    - usb: xhci-mtk: remove or operator for setting schedule parameters
+    - usb: xhci-mtk: improve bandwidth scheduling with TT
+    - ASoC: samsung: tm2_wm5110: check of of_parse return value
+    - ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function
+    - MIPS: pci-mt7620: fix PLL lock check
+    - MIPS: pci-rt2880: fix slot 0 configuration
+    - FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
+    - PCI: Allow VPD access for QLogic ISP2722
+    - iio:accel:adis16201: Fix wrong axis assignment that prevents loading
+    - misc: lis3lv02d: Fix false-positive WARN on various HP models
+    - misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
+    - misc: vmw_vmci: explicitly initialize vmci_datagram payload
+    - md/bitmap: wait for external bitmap writes to complete during tear down
+    - md-cluster: fix use-after-free issue when removing rdev
+    - md: split mddev_find
+    - md: factor out a mddev_find_locked helper from mddev_find
+    - md: md_open returns -EBUSY when entering racing area
+    - md: Fix missing unused status line of /proc/mdstat
+    - ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
+    - cfg80211: scan: drop entry from hidden_list on overflow
+    - rtw88: Fix array overrun in rtw_get_tx_power_params()
+    - drm/panfrost: Clear MMU irqs before handling the fault
+    - drm/panfrost: Don't try to map pages that are already mapped
+    - drm/radeon: fix copy of uninitialized variable back to userspace
+    - drm/amd/display: Reject non-zero src_y and src_x for video planes
+    - ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
+    - ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
+    - ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
+    - ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
+    - ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries
+    - ALSA: hda/realtek: Re-order ALC662 quirk table entries
+    - ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
+    - ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable
+    - KVM: s390: split kvm_s390_logical_to_effective
+    - KVM: s390: fix guarded storage control register handling
+    - s390: fix detection of vector enhancements facility 1 vs. vector packed
+      decimal facility
+    - KVM: s390: split kvm_s390_real_to_abs
+    - KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit
+    - KVM: Stop looking for coalesced MMIO zones if the bus is destroyed
+    - Revert "i3c master: fix missing destroy_workqueue() on error in
+      i3c_master_register"
+    - ovl: fix missing revert_creds() on error path
+    - usb: gadget: pch_udc: Revert d3cb25a12138 completely
+    - memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
+    - ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
+    - ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
+    - serial: stm32: fix incorrect characters on console
+    - serial: stm32: fix tx_empty condition
+    - usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS
+    - regmap: set debugfs_name to NULL after it is freed
+    - mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe()
+    - mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
+    - mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
+    - mtd: rawnand: qcom: Return actual error code instead of -ENODEV
+    - arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges'
+    - spi: stm32: drop devres version of spi_register_master
+    - arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding
+    - x86/microcode: Check for offline CPUs before requesting new microcode
+    - usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
+    - usb: gadget: pch_udc: Check if driver is present before calling ->setup()
+    - usb: gadget: pch_udc: Check for DMA mapping error
+    - crypto: qat - don't release uninitialized resources
+    - crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
+    - fotg210-udc: Fix DMA on EP0 for length > max packet size
+    - fotg210-udc: Fix EP0 IN requests bigger than two packets
+    - fotg210-udc: Remove a dubious condition leading to fotg210_done
+    - fotg210-udc: Mask GRP2 interrupts we don't handle
+    - fotg210-udc: Don't DMA more than the buffer can take
+    - fotg210-udc: Complete OUT requests on short packets
+    - mtd: require write permissions for locking and badblock ioctls
+    - bus: qcom: Put child node before return
+    - soundwire: bus: Fix device found flag correctly
+    - phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y,
+      unconditionally
+    - crypto: qat - fix error path in adf_isr_resource_alloc()
+    - usb: gadget: aspeed: fix dma map failure
+    - USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR()
+    - memory: pl353: fix mask of ECC page_size config register
+    - soundwire: stream: fix memory leak in stream config error path
+    - m68k: mvme147,mvme16x: Don't wipe PCC timer config bits
+    - mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
+    - irqchip/gic-v3: Fix OF_BAD_ADDR error handling
+    - staging: rtl8192u: Fix potential infinite loop
+    - staging: greybus: uart: fix unprivileged TIOCCSERIAL
+    - PM / devfreq: Use more accurate returned new_freq as resume_freq
+    - spi: Fix use-after-free with devm_spi_alloc_*
+    - soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
+    - soc: qcom: mdt_loader: Detect truncated read of segments
+    - ACPI: CPPC: Replace cppc_attr with kobj_attribute
+    - crypto: qat - Fix a double free in adf_create_ring
+    - cpufreq: armada-37xx: Fix setting TBG parent for load levels
+    - clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock
+    - cpufreq: armada-37xx: Fix the AVS value for load L1
+    - clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz
+    - clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0
+    - cpufreq: armada-37xx: Fix driver cleanup when registration failed
+    - cpufreq: armada-37xx: Fix determining base CPU frequency
+    - spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware()
+    - usb: gadget: r8a66597: Add missing null check on return from
+      platform_get_resource
+    - USB: cdc-acm: fix unprivileged TIOCCSERIAL
+    - USB: cdc-acm: fix TIOCGSERIAL implementation
+    - tty: fix return value for unsupported ioctls
+    - serial: core: return early on unsupported ioctls
+    - firmware: qcom-scm: Fix QCOM_SCM configuration
+    - node: fix device cleanups in error handling code
+    - usbip: vudc: fix missing unlock on error in usbip_sockfd_store()
+    - platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with
+      critclk_systems DMI table
+    - x86/platform/uv: Fix !KEXEC build failure
+    - usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
+    - usb: dwc2: Fix hibernation between host and device modes.
+    - ttyprintk: Add TTY hangup callback.
+    - xen-blkback: fix compatibility bug with single page rings
+    - soc: aspeed: fix a ternary sign expansion bug
+    - media: vivid: fix assignment of dev->fbuf_out_flags
+    - media: omap4iss: return error code when omap4iss_get() failed
+    - media: aspeed: fix clock handling logic
+    - media: platform: sunxi: sun6i-csi: fix error return code of
+      sun6i_video_start_streaming()
+    - media: m88rs6000t: avoid potential out-of-bounds reads on arrays
+    - drm/amdkfd: fix build error with AMD_IOMMU_V2=m
+    - x86/kprobes: Fix to check non boostable prefixes correctly
+    - pata_arasan_cf: fix IRQ check
+    - pata_ipx4xx_cf: fix IRQ check
+    - sata_mv: add IRQ checks
+    - ata: libahci_platform: fix IRQ check
+    - nvme-tcp: block BH in sk state_change sk callback
+    - nvmet-tcp: fix incorrect locking in state_change sk callback
+    - nvme: retrigger ANA log update if group descriptor isn't found
+    - media: v4l2-ctrls.c: fix race condition in hdl->requests list
+    - vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer
+    - clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback
+    - clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
+    - clk: uniphier: Fix potential infinite loop
+    - scsi: hisi_sas: Fix IRQ checks
+    - scsi: jazz_esp: Add IRQ check
+    - scsi: sun3x_esp: Add IRQ check
+    - scsi: sni_53c710: Add IRQ check
+    - scsi: ibmvfc: Fix invalid state machine BUG_ON()
+    - mfd: stm32-timers: Avoid clearing auto reload register
+    - nvme-pci: don't simple map sgl when sgls are disabled
+    - HSI: core: fix resource leaks in hsi_add_client_from_dt()
+    - x86/events/amd/iommu: Fix sysfs type mismatch
+    - sched/debug: Fix cgroup_path[] serialization
+    - drivers/block/null_blk/main: Fix a double free in null_init.
+    - HID: plantronics: Workaround for double volume key presses
+    - perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of
+      printed chars
+    - net: lapbether: Prevent racing when checking whether the netif is running
+    - powerpc/fadump: Mark fadump_calculate_reserve_size as __init
+    - powerpc/prom: Mark identical_pvr_fixup as __init
+    - inet: use bigger hash table for IP ID generation
+    - powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration
+    - ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
+    - bug: Remove redundant condition check in report_bug
+    - nfc: pn533: prevent potential memory corruption
+    - net: hns3: Limiting the scope of vector_ring_chain variable
+    - mips: bmips: fix syscon-reboot nodes
+    - ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
+    - ASoC: simple-card: fix possible uninitialized single_cpu local variable
+    - liquidio: Fix unintented sign extension of a left shift of a u16
+    - powerpc/64s: Fix pte update for kernel memory on radix
+    - powerpc/perf: Fix PMU constraint check for EBB events
+    - powerpc: iommu: fix build when neither PCI or IBMVIO is set
+    - mac80211: bail out if cipher schemes are invalid
+    - mt7601u: fix always true expression
+    - KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit
+    - RDMA/qedr: Fix error return code in qedr_iw_connect()
+    - IB/hfi1: Fix error return code in parse_platform_config()
+    - cxgb4: Fix unintentional sign extension issues
+    - net: thunderx: Fix unintentional sign extension issue
+    - RDMA/srpt: Fix error return code in srpt_cm_req_recv()
+    - i2c: img-scb: fix reference leak when pm_runtime_get_sync fails
+    - i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails
+    - i2c: omap: fix reference leak when pm_runtime_get_sync fails
+    - i2c: sprd: fix reference leak when pm_runtime_get_sync fails
+    - i2c: cadence: add IRQ check
+    - i2c: emev2: add IRQ check
+    - i2c: jz4780: add IRQ check
+    - i2c: sh7760: add IRQ check
+    - powerpc/xive: Fix xmon command "dxi"
+    - ASoC: ak5558: correct reset polarity
+    - drm/i915/gvt: Fix error code in intel_gvt_init_device()
+    - perf beauty: Fix fsconfig generator
+    - MIPS: pci-legacy: stop using of_pci_range_to_resource
+    - powerpc/pseries: extract host bridge from pci_bus prior to bus removal
+    - rtlwifi: 8821ae: upgrade PHY and RF parameters
+    - i2c: sh7760: fix IRQ error path
+    - mwl8k: Fix a double Free in mwl8k_probe_hw
+    - vsock/vmci: log once the failed queue pair allocation
+    - gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check
+    - RDMA/cxgb4: add missing qpid increment
+    - RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
+    - ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
+    - net: davinci_emac: Fix incorrect masking of tx and rx error channel
+    - net: renesas: ravb: Fix a stuck issue when a lot of frames are received
+    - net: phy: intel-xway: enable integrated led functions
+    - ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
+    - ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock
+    - powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
+    - bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
+    - ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for
+      RTL8211E
+    - arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for
+      RTL8211E
+    - net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb
+    - selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static
+    - bnxt_en: Fix RX consumer index logic in the error path.
+    - net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
+    - RDMA/siw: Fix a use after free in siw_alloc_mr
+    - RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res
+    - net: bridge: mcast: fix broken length + header check for MRDv6 Adv.
+    - net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
+    - kfifo: fix ternary sign extension bugs
+    - mm/sparse: add the missing sparse_buffer_fini() in error branch
+    - mm/memory-failure: unnecessary amount of unmapping
+    - net: Only allow init netns to set default tcp cong to a restricted algo
+    - smp: Fix smp_call_function_single_async prototype
+    - Revert "net/sctp: fix race condition in sctp_destroy_sock"
+    - sctp: delay auto_asconf init until binding the first addr
+    - Revert "of/fdt: Make sure no-map does not remove already reserved regions"
+    - Revert "fdt: Properly handle "no-map" field in the memory region"
+    - Linux 5.4.119
+  * seccomp_bpf:syscall_faked from kselftests fail on s390x (LP: #1928522)
+    - selftests/seccomp: s390 shares the syscall and return value register
+  * Can't detect intel wifi 6235 (LP: #1920180)
+    - SAUCE: iwlwifi: add new pci id for 6235
+  * Mark kprobe_args_user.tc in kselftest/ftrace as unsupported (LP: #1929527)
+    - selftests/ftrace: Return unsupported for the unconfigured features
+  * pmtu.sh from net in ubuntu_kernel_selftests failed with no error message
+    (LP: #1887661)
+    - selftests: pmtu.sh: use $ksft_skip for skipped return code
+  * alsa/sof: make sof driver work in the case of without i915 (focal kernel)
+    (LP: #1927672)
+    - SAUCE: ASoC: SOF: Intel: hda: move the probe_bus ahead of creation of mach
+      device
+  * Fix kdump failures (LP: #1927518)
+    - video: hyperv_fb: Add ratelimit on error message
+    - Drivers: hv: vmbus: Increase wait time for VMbus unload
+    - Drivers: hv: vmbus: Initialize unload_event statically
+  * Ubuntu 20.04 - 'Support flow counters offset for bulk counters'
+    (LP: #1922494)
+    - IB/mlx5: Support flow counters offset for bulk counters
+  * Focal update: v5.4.118 upstream stable release (LP: #1928825)
+    - s390/disassembler: increase ebpf disasm buffer size
+    - ACPI: custom_method: fix potential use-after-free issue
+    - ACPI: custom_method: fix a possible memory leak
+    - ftrace: Handle commands when closing set_ftrace_filter file
+    - ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
+    - arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
+    - arm64: dts: mt8173: fix property typo of 'phys' in dsi node
+    - ecryptfs: fix kernel panic with null dev_name
+    - mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
+    - mtd: rawnand: atmel: Update ecc_stats.corrected counter
+    - erofs: add unsupported inode i_format check
+    - spi: spi-ti-qspi: Free DMA resources
+    - scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
+    - scsi: mpt3sas: Block PCI config access from userspace during reset
+    - mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe()
+    - mmc: uniphier-sd: Fix a resource leak in the remove function
+    - mmc: sdhci: Check for reset prior to DMA address unmap
+    - mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based
+      controllers
+    - mmc: block: Update ext_csd.cache_ctrl if it was written
+    - mmc: block: Issue a cache flush only when it's enabled
+    - mmc: core: Do a power cycle when the CMD11 fails
+    - mmc: core: Set read only for SD cards with permanent write protect bit
+    - mmc: core: Fix hanging on I/O during system suspend for removable cards
+    - modules: mark ref_module static
+    - modules: mark find_symbol static
+    - modules: mark each_symbol_section static
+    - modules: unexport __module_text_address
+    - modules: unexport __module_address
+    - modules: rename the licence field in struct symsearch to license
+    - modules: return licensing information from find_symbol
+    - modules: inherit TAINT_PROPRIETARY_MODULE
+    - irqchip/gic-v3: Do not enable irqs when handling spurious interrups
+    - cifs: Return correct error code from smb2_get_enc_key
+    - btrfs: fix metadata extent leak after failure to create subvolume
+    - intel_th: pci: Add Rocket Lake CPU support
+    - posix-timers: Preserve return value in clock_adjtime32()
+    - fbdev: zero-fill colormap in fbcmap.c
+    - bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
+    - staging: wimax/i2400m: fix byte-order issue
+    - spi: ath79: always call chipselect function
+    - spi: ath79: remove spi-master setup and cleanup assignment
+    - crypto: api - check for ERR pointers in crypto_destroy_tfm()
+    - crypto: qat - fix unmap invalid dma address
+    - usb: gadget: uvc: add bInterval checking for HS mode
+    - usb: webcam: Invalid size of Processing Unit Descriptor
+    - genirq/matrix: Prevent allocation counter corruption
+    - usb: gadget: f_uac2: validate input parameters
+    - usb: gadget: f_uac1: validate input parameters
+    - usb: dwc3: gadget: Ignore EP queue requests during bus reset
+    - usb: xhci: Fix port minor revision
+    - PCI: PM: Do not read power state in pci_enable_device_flags()
+    - x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
+    - tee: optee: do not check memref size on return from Secure World
+    - perf/arm_pmu_platform: Fix error handling
+    - usb: xhci-mtk: support quirk to disable usb2 lpm
+    - xhci: check control context is valid before dereferencing it.
+    - xhci: fix potential array out of bounds with several interrupters
+    - spi: dln2: Fix reference leak to master
+    - spi: omap-100k: Fix reference leak to master
+    - spi: qup: fix PM reference leak in spi_qup_remove()
+    - usb: musb: fix PM reference leak in musb_irq_work()
+    - usb: core: hub: Fix PM reference leak in usb_port_resume()
+    - tty: n_gsm: check error while registering tty devices
+    - intel_th: Consistency and off-by-one fix
+    - phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
+    - crypto: stm32/hash - Fix PM reference leak on stm32-hash.c
+    - crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c
+    - crypto: omap-aes - Fix PM reference leak on omap-aes.c
+    - platform/x86: intel_pmc_core: Don't use global pmcdev in quirks
+    - btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
+    - drm: Added orientation quirk for OneGX1 Pro
+    - drm/qxl: release shadow on shutdown
+    - drm/amd/display: Check for DSC support instead of ASIC revision
+    - drm/amd/display: Don't optimize bandwidth before disabling planes
+    - scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
+    - scsi: lpfc: Fix pt2pt connection does not recover after LOGO
+    - scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
+    - media: ite-cir: check for receive overflow
+    - media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB
+    - media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt()
+    - power: supply: bq27xxx: fix power_avg for newer ICs
+    - extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has
+      been unplugged
+    - extcon: arizona: Fix various races on driver unbind
+    - media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
+    - media: gspca/sq905.c: fix uninitialized variable
+    - power: supply: Use IRQF_ONESHOT
+    - drm/amdgpu: mask the xgmi number of hops reported from psp to kfd
+    - drm/amdkfd: Fix UBSAN shift-out-of-bounds warning
+    - drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
+    - drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool'
+    - drm/amd/display: fix dml prefetch validation
+    - scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
+    - drm/vkms: fix misuse of WARN_ON
+    - scsi: qla2xxx: Fix use after free in bsg
+    - mmc: sdhci-pci: Add PCI IDs for Intel LKF
+    - ata: ahci: Disable SXS for Hisilicon Kunpeng920
+    - scsi: smartpqi: Correct request leakage during reset operations
+    - scsi: smartpqi: Add new PCI IDs
+    - scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
+    - media: em28xx: fix memory leak
+    - media: vivid: update EDID
+    - clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
+    - power: supply: generic-adc-battery: fix possible use-after-free in
+      gab_remove()
+    - power: supply: s3c_adc_battery: fix possible use-after-free in
+      s3c_adc_bat_remove()
+    - media: tc358743: fix possible use-after-free in tc358743_remove()
+    - media: adv7604: fix possible use-after-free in adv76xx_remove()
+    - media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
+    - media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove()
+    - media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
+    - media: platform: sti: Fix runtime PM imbalance in regs_show
+    - media: dvb-usb: fix memory leak in dvb_usb_adapter_init
+    - media: gscpa/stv06xx: fix memory leak
+    - sched/fair: Ignore percpu threads for imbalance pulls
+    - drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
+    - drm/msm/mdp5: Do not multiply vclk line count by 100
+    - drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug
+    - amdgpu: avoid incorrect %hu format string
+    - drm/amdgpu: fix NULL pointer dereference
+    - scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO
+      response
+    - scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode
+    - scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
+    - mfd: arizona: Fix rumtime PM imbalance on error
+    - scsi: libfc: Fix a format specifier
+    - s390/archrandom: add parameter check for s390_arch_random_generate
+    - ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
+    - ALSA: hda/conexant: Re-order CX5066 quirk table entries
+    - ALSA: sb: Fix two use after free in snd_sb_qsound_build
+    - ALSA: usb-audio: Explicitly set up the clock selector
+    - ALSA: usb-audio: More constifications
+    - ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset
+      PC 8
+    - ALSA: hda/realtek: GA503 use same quirks as GA401
+    - ALSA: hda/realtek: fix mic boost on Intel NUC 8
+    - ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops
+    - ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
+    - btrfs: fix race when picking most recent mod log operation for an old root
+    - arm64/vdso: Discard .note.gnu.property sections in vDSO
+    - Makefile: Move -Wno-unused-but-set-variable out of GCC only block
+    - virtiofs: fix memory leak in virtio_fs_probe()
+    - ubifs: Only check replay with inode type to judge if inode linked
+    - f2fs: fix to avoid out-of-bounds memory access
+    - mlxsw: spectrum_mr: Update egress RIF list before route's action
+    - openvswitch: fix stack OOB read while fragmenting IPv4 packets
+    - ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
+    - NFS: Don't discard pNFS layout segments that are marked for return
+    - NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
+    - Input: ili210x - add missing negation for touch indication on ili210x
+    - jffs2: Fix kasan slab-out-of-bounds problem
+    - powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
+    - powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
+    - intel_th: pci: Add Alder Lake-M support
+    - tpm: efi: Use local variable for calculating final log size
+    - tpm: vtpm_proxy: Avoid reading host log when using a virtual device
+    - crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
+    - md/raid1: properly indicate failure when ending a failed write request
+    - dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload
+      sequences
+    - fuse: fix write deadlock
+    - security: commoncap: fix -Wstringop-overread warning
+    - Fix misc new gcc warnings
+    - jffs2: check the validity of dstlen in jffs2_zlib_compress()
+    - Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
+    - x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
+    - kbuild: update config_data.gz only when the content of .config is changed
+    - ext4: fix check to prevent false positive report of incorrect used inodes
+    - ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
+    - ext4: fix error code in ext4_commit_super
+    - media: dvbdev: Fix memory leak in dvb_media_device_free()
+    - media: dvb-usb: Fix use-after-free access
+    - media: dvb-usb: Fix memory leak at error in dvb_usb_device_init()
+    - media: staging/intel-ipu3: Fix memory leak in imu_fmt
+    - media: staging/intel-ipu3: Fix set_fmt error handling
+    - media: staging/intel-ipu3: Fix race condition during set_fmt
+    - usb: gadget: dummy_hcd: fix gpf in gadget_setup
+    - usb: gadget: Fix double free of device descriptor pointers
+    - usb: gadget/function/f_fs string table fix for multiple languages
+    - usb: dwc3: gadget: Fix START_TRANSFER link state check
+    - usb: dwc2: Fix session request interrupt handler
+    - tty: fix memory leak in vc_deallocate
+    - rsi: Use resume_noirq for SDIO
+    - tracing: Map all PIDs to command lines
+    - tracing: Restructure trace_clock_global() to never block
+    - dm persistent data: packed struct should have an aligned() attribute too
+    - dm space map common: fix division bug in sm_ll_find_free_block()
+    - dm integrity: fix missing goto in bitmap_flush_interval error handling
+    - dm rq: fix double free of blk_mq_tag_set in dev remove after table load
+      fails
+    - Linux 5.4.118
+  * Focal update: v5.4.117 upstream stable release (LP: #1928823)
+    - mips: Do not include hi and lo in clobber list for R6
+    - ACPI: tables: x86: Reserve memory occupied by ACPI tables
+    - ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
+    - net: usb: ax88179_178a: initialize local variables before use
+    - igb: Enable RSS for Intel I211 Ethernet Controller
+    - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
+    - bpf: Fix masking negation logic upon negative dst register
+    - bpf: Fix leakage of uninitialized bpf stack under speculation
+    - avoid __memcat_p link failure
+    - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
+    - perf data: Fix error return code in perf_data__create_dir()
+    - perf ftrace: Fix access to pid in array when setting a pid filter
+    - ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
+    - USB: Add reset-resume quirk for WD19's Realtek Hub
+    - platform/x86: thinkpad_acpi: Correct thermal sensor allocation
+    - scsi: ufs: Unlock on a couple error paths
+    - ovl: allow upperdir inside lowerdir
+    - perf/core: Fix unconditional security_locked_down() call
+    - vfio: Depend on MMU
+    - Linux 5.4.117
+  * r8152 tx status -71 (LP: #1922651) // Focal update: v5.4.117 upstream stable
+    release (LP: #1928823)
+    - USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
+  * Focal update: v5.4.116 upstream stable release (LP: #1928821)
+    - bpf: Move off_reg into sanitize_ptr_alu
+    - bpf: Ensure off_reg has no mixed signed bounds for all types
+    - bpf: Rework ptr_limit into alu_limit and add common error path
+    - bpf: Improve verifier error messages for users
+    - bpf: Refactor and streamline bounds check into helper
+    - bpf: Move sanitize_val_alu out of op switch
+    - bpf: Tighten speculative pointer arithmetic mask
+    - bpf: Update selftests to reflect new error states
+    - Linux 5.4.116
+  * Focal update: v5.4.115 upstream stable release (LP: #1927997)
+    - gpio: omap: Save and restore sysconfig
+    - pinctrl: lewisburg: Update number of pins in community
+    - arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS
+    - perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
+    - perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[]
+    - perf auxtrace: Fix potential NULL pointer dereference
+    - HID: google: add don USB id
+    - HID: alps: fix error return code in alps_input_configured()
+    - HID: wacom: Assign boolean values to a bool variable
+    - ARM: dts: Fix swapped mmc order for omap3
+    - net: geneve: check skb is large enough for IPv4/IPv6 header
+    - s390/entry: save the caller of psw_idle
+    - xen-netback: Check for hotplug-status existence before watching
+    - cavium/liquidio: Fix duplicate argument
+    - csky: change a Kconfig symbol name to fix e1000 build error
+    - ia64: fix discontig.c section mismatches
+    - ia64: tools: remove duplicate definition of ia64_mf() on ia64
+    - x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access
+    - net: hso: fix NULL-deref on disconnect regression
+    - USB: CDC-ACM: fix poison/unpoison imbalance
+    - Linux 5.4.115
+
+ -- Wen-chien Jesse Sung <jesse.sung@canonical.com>  Tue, 17 May 2022 23:22:43 +0800
+
+linux-imx (5.4.0-1013.13) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_OPTEE=y by default on armhf too
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 22 Oct 2021 01:24:50 +0800
+
+linux-imx (5.4.0-1012.12) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix uart3 pinmux functions
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix pinconf for led shutdown & led
+      alarm clear gpios
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: configure uart1 dte mode for
+      RS485/touchflakes
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: add support for FRAM/SPI-NOR flash
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: add support for gpio-wdog
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: enable support for flexcan1
+    - [Config] CONFIG_ADIN_PHY=m
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: uart4 rs485 mode at boot by default
+    - SAUCE: mtd: spi-nor: add support for for Fujitsu MB85RQ4ML FRAM
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix pinmux conf for i2c4 bus
+    - [Config] updateconfigs for NXP/IMX controllers, MTD NOR support built-in
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: switch uart2 to rs485 port
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: stop passing uart2 as boot console
+      output
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: support push-button on led front board
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: fix bt & wifi power regulator
+      definitions
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add spi entries for common module p1/p2
+      & lte
+    - SAUCE: arm64: dts: imx8mm-venice-gw7902: set external rtc as default
+    - SAUCE: arm64: dts: imx8mn-venice-gw7902: set external rtc as default
+    - SAUCE: arm64: dts: imx8m*-venice-gw7902: add reserved memory areas for optee
+    - SAUCE: arm64: dts: imx8m*-venice-gw7902: add firmware entry for optee-tz
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: don't define gpio-hogs for uart-sel
+      pins
+
+  * Miscellaneous upstream changes
+    - can: dev: can_restart(): remove unused code
+    - can: rx-offload: fix long lines
+    - can: rx-offload: can_rx_offload_compare(): fix typo
+    - can: rx-offload: can_rx_offload_irq_offload_timestamp(): don't use
+      assignment in if condition
+    - can: rx-offload: can_rx_offload_reset(): remove no-op function
+    - can: rx-offload: Prepare for CAN FD support
+    - can: flexcan: use devm_platform_ioremap_resource() to simplify code
+    - can: flexcan: flexcan_irq_state(): only read timestamp if needed
+    - can: flexcan: rename macro FLEXCAN_IFLAG_MB() -> FLEXCAN_IFLAG2_MB()
+    - can: flexcan: flexcan_irq(): rename variable reg_iflag -> reg_iflag_rx
+    - can: flexcan: rename struct flexcan_priv::reg_imask{1,2}_default to
+      rx_mask{1,2}
+    - can: flexcan: remove TX mailbox bit from struct flexcan_priv::rx_mask{1,2}
+    - can: flexcan: convert struct flexcan_priv::rx_mask{1,2} to rx_mask
+    - can: flexcan: introduce struct flexcan_priv::tx_mask and make use of it
+    - can: flexcan: flexcan_read_reg_iflag_rx(): optimize reading
+    - can: flexcan: flexcan_irq(): add support for TX mailbox in iflag1
+    - can: flexcan: flexcan_mailbox_read() make use of flexcan_write64() to mark
+      the mailbox as read
+    - can: flexcan: fix spelling mistake "reserverd" -> "reserved"
+    - can: flexcan: sort include files alphabetically
+    - can: flexcan: flexcan_exit_stop_mode(): remove stray empty line
+    - can: flexcan: more register names
+    - can: flexcan: struct flexcan_regs: document registers not affected by soft
+      reset
+    - can: flexcan: quirks: get rid of long lines
+    - can: flexcan: Ack wakeup interrupt separately
+    - can: flexcan: flexcan_probe(): make regulator xceiver optional
+    - can: flexcan: Add check for transceiver maximum bitrate limitation
+    - can: flexcan: add correctable errors correction when HW supports ECC
+    - can: flexcan: add LPSR mode support
+    - can: flexcan: flexcan_set_bittiming(): move setup of CAN-2.0 bitiming into
+      separate function
+    - can: flexcan: use struct canfd_frame for CAN classic frame
+    - can: flexcan: add CAN-FD mode support
+    - can: flexcan: add ISO CAN FD feature support
+    - can: flexcan: add CAN FD BRS support
+    - can: flexcan: add Transceiver Delay Compensation support
+    - can: flexcan: add imx8qm support
+    - can: flexcan: add lx2160ar1 support
+    - can: flexcan: initialize all flexcan memory for ECC function
+    - can: flexcan: add flexcan driver for i.MX8MP
+    - can: flexcan: disable runtime PM if register flexcandev failed
+    - can: flexcan: remove ack_grp and ack_bit handling from driver
+    - can: flexcan: flexcan_setup_stop_mode(): add missing "req_bit" to stop mode
+      property comment
+    - serial: sc16is7xx: Replace zero-length array with flexible-array member
+    - sc16is7xx: Always use falling edge IRQ
+    - sc16is7xx: Use threaded IRQ
+    - sc16is7xx: Allow sharing the IRQ line
+    - sc16is7xx: Read the LSR register for basic device presence check
+    - sc16is7xx: Add flag to activate IrDA mode
+    - sc16is7xx: Set iobase to device index
+    - sc16is7xx: Defer probe if device read fails
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Thu, 21 Oct 2021 14:31:04 +0800
+
+linux-imx (5.4.0-1011.11) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: reserve memory for global dma usage
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: adjust ocram memory sections for optee-
+      lpm
+    - SAUCE: MLK-11488-1 driver: char: sema4: add sema4 support
+    - SAUCE: MLK-11488-2 arm: imx: add HAVE_IMX_AMP for imx6sx
+    - SAUCE: MLK-11488-4 arm: dts: imx6sx: add sema4 support
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add qspi restore node for
+      suspend/resume when M4 is enabled
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add mailbox support
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: Add spi-[tx/rx]-bus-width for the FSL
+      QSPI controller
+    - [Config] CONFIG_IMX_SEMA4=y
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix simple-audio-card widget names
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable pixel pipeline module
+    - [Config] FLEXSPI, QUADSPI drivers as modules
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: OV5640 camera module is on i2c4
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: use unique labels instead of colour-ids
+      for gpio-leds
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix gpio-keys pinconfig defs
+    - SAUCE: media: mipi csi: add mixel's mipi csi driver
+    - SAUCE: media: mipi csi: add samsung's mipi csi support
+    - SAUCE: media: mipi csi: accommodate the driver to framework's change
+    - SAUCE: mxc-jpeg: Add v4l2 driver for i.MX8 CAST IP JPEG Encoder/Decoder
+    - SAUCE: mxc-jpeg: Add support for multi power domain
+    - SAUCE: mxc-jpeg: Build mxc-jpeg as module, by default
+    - SAUCE: media: mxc-jpeg: jpeg: Replace stracpy with strscpy
+    - SAUCE: mxc-jpeg: Fix warning at build, for EXPORT_SYMBOL on static variable
+    - SAUCE: MLK-22835: mxc-jpeg: jpeg decoder stuck due to race condition
+    - SAUCE: media: IPU: add IPU csi and prp driver
+    - SAUCE: media: v4l2: add int device framework for backward support
+    - SAUCE: media: capture: add mxc v4l2 capture driver
+    - SAUCE: media: add Kconfig and Makefile for the capture driver
+    - SAUCE: media: add adv7180 video decoder driver
+    - SAUCE: media: v4l2 capture: add v4l2 capture driver based on csi
+    - SAUCE: media: mx6s_capture: accommodate the driver to framework's change
+    - SAUCE: media: v4l2: vadc: Enable vadc driver
+    - SAUCE: media: capture: add ov5640 mipi and parallel driver
+    - SAUCE: media: capture: add ov5640 mipi and parallel driver of subdev version
+    - SAUCE: media: ov5640: fix kernel warning when no camera is plugged in
+    - SAUCE: media: ov5640 mipi: fix kernel warning when no camera is plugged in
+    - SAUCE: media: ov5640 mipi v2: fix kernel warning when no camera is plugged
+      in
+    - SAUCE: media: ov5640 v2: fix kernel warning when no camera is plugged in
+    - SAUCE: media: platform: mxc: capture: ov5640: Disable regulators in
+      ov5640_remove()
+    - SAUCE: LF-237 media: ov5640_mipi: fix regulator dump when i2c access for
+      camera fail
+    - SAUCE: media: platform: mxc: output: Forward IPUv3 V4L2 output driver from
+      imx_4.19.y
+    - SAUCE: media: v4l2: add pxp_v4l2 driver
+    - SAUCE: LF-135 media: mx6s_capture: fix kernel dump when start two instances
+      of capture
+    - SAUCE: LF-300-1 media: mipi csi: make the csi clock usecount to 0 when it's
+      not used
+    - SAUCE: LF-300-2 media: mipi csi: make the csi clock usecount to 0 when it's
+      not used
+    - SAUCE: LF-482 media: mipi csi: fix build warning
+    - SAUCE: MLK-23712: media: capture: add get/set_register callback
+    - SAUCE: LF-1599 media: platform: mxc_vout: Do not check 's->r.width/height<0'
+      in ->vidioc_s_selection
+    - SAUCE: LF-1561 check return value of v4l2_async_notifier_add_subdev
+    - SAUCE: MLK-24261 media: mipi csi: fix kernel dump when do module removal
+    - SAUCE: MLK-24389 media: mx6s_capture: use vb2_fop_mmap instead
+    - SAUCE: LF-1564 media: capture: check return value of devm_kzalloc against
+      NULL
+    - SAUCE: LF-1711 media: mipi csi: check return value of
+      v4l2_async_notifier_add_subdev
+    - SAUCE: LF-1583: mxc-jpeg: Fix possible null pointer dereference
+    - SAUCE: LF-1571: mxc-jpeg: Fix result independent of operands
+    - SAUCE: media: staging: csi: add mipi csi driver support for IMX8
+    - SAUCE: staging: media: imx: add video ops for imx8 mipi csi subdev
+    - SAUCE: staging: media: imx: add V4L2 subdev driver for MIPI CSI2 of Samsung
+    - SAUCE: media: staging: imx: add isi driver support for imx8qm/qxp
+    - SAUCE: MLK-21985-8 media: isi: fix build for next 20190607 upgrade
+    - SAUCE: media: isi: fix boot warning by intialize device_caps
+    - SAUCE: media: staging: imx: add isi core driver support for imx8qm/qxp
+    - SAUCE: media: staging: imx: add isi capture driver support for imx8qm/qxp
+    - SAUCE: media: staging: imx: add V4L2 memory to memory driver for ISI of
+      imx8qxp/qm
+    - SAUCE: staging: media: imx: enable ISI for imx8mn platform
+    - SAUCE: staging: media: imx: add g_parm/s_parm for imx8 capture device
+    - SAUCE: media: staging: imx: add driver for GMSL MAX9286 device
+    - SAUCE: LF-116: staging: media: imx: fix no enum_frameinterval result issue
+    - SAUCE: media: staging: imx: add media device driver support for IMX8
+    - SAUCE: staging: media: imx: add parallel capture interface driver for
+      imx8qxp
+    - SAUCE: staging: media: imx: add video ops for imx8 parallel subdev
+    - SAUCE: LF-101: staging: media: imx: fix XR24 format R and B are opposite
+      issue
+    - SAUCE: LF-356: media: imx8 isi: fix buffer active bit change for QXP C0
+    - SAUCE: LF-364: media: isi: correct capabilities for ISI m2m video device
+    - SAUCE: LF-79: staging: media: imx: replace s_parm/g_parm with
+      s/g_frame_interval
+    - SAUCE: LF-433: staging: media: imx: refine mipi csi2 driver for Samsung
+    - SAUCE: LF-467: media: imx: isi: fix some typo issues
+    - SAUCE: LF-510: staging: media: imx: add s/g_frame_interval support for
+      max9286
+    - SAUCE: LF-486: staging: media: imx: fix uninitialized variable
+    - SAUCE: LF-221: staging: media: imx: fix potential memory out of bound
+    - SAUCE: LF-762: media: correct multi instance management for CSI camera
+    - SAUCE: MLK-23227-3: media: imx: add ISI IER register as platform data
+    - SAUCE: MLK-23227-4: media: imx: add input image source port selection as
+      platform data
+    - SAUCE: MLK-23227-5: media: imx: refine soc version match method for ISI
+    - SAUCE: MLK-23227-6: media: imx: add driver support for ISI of i.MX8MP
+    - SAUCE: MLK-23227-7: media: imx: add multi instance for MIPI CSI driver
+    - SAUCE: MLK-23227-8: media: imx: remove CSI PHY clock operation
+    - SAUCE: MLK-23227-9: media: imx: use no-reset-control property in ISI of
+      i.MX8MP
+    - SAUCE: MLK-23227-11: media: imx: set panic threshold in ISI
+    - SAUCE: MLK-23358-1: media: imx8: fix dereferencing null pointer issue
+    - SAUCE: MLK-23358-2: media: imx: fix variable uninitialized issue
+    - SAUCE: LF-1089: media: imx: fix 1024x768@15 camera issue for imx8qm and qxp
+    - SAUCE: MLK-23578-1: media: m2m: enable ISI m2m feature for i.MX865
+    - SAUCE: MLK-23750-2: media: csi: fix ISI_0, CSI_0 can't enter lp when suspend
+    - SAUCE: MLK-23750-3: media: pi: fix ISI_0, PI_0 can't enter lp when suspend
+    - SAUCE: MLK-23860: media: imx: improve calculation for csi RXHS_SETTLE
+      parameter
+    - SAUCE: MLK-24375-01: mixel: csi2: detach power domain when driver removed
+    - SAUCE: MLK-24375-02: imx: pi: detach power domain when pi drvier removed
+    - SAUCE: MLK-24376: isi: core: depopulate child device when parent driver
+      removed
+    - SAUCE: LF-1409-01: media: imx: isi: export functions in imx8-isi-hw.c file
+    - SAUCE: LF-1409-02: media: isi: cap: export mxc_isi_cap_frame_write_done
+    - SAUCE: LF-1409-03: media: isi: m2m: export mxc_isi_m2m_frame_write_done
+    - SAUCE: LF-1409-04: media: isi: move two methods in isi core driver to hw
+      driver
+    - SAUCE: LF-1409-05: media: isi: config ISI HW driver as a separate driver
+    - SAUCE: LF-1409-06: media: isi: cap: config capture driver as tristate
+    - SAUCE: LF-1409-07: media: isi: m2m: config mem2mem driver as tristate
+    - SAUCE: LF-1409-08: media: isi: core: config ISI core driver as tristate
+    - SAUCE: MLK-24494-1: staging: media: csi: reuse csi driver for isp
+    - SAUCE: MLK-24494-4: staging: media: imx8: work around to support isi + isp
+      dual camera
+    - SAUCE: MLK-24514-1: staging: media: samsung csi: print message when fail to
+      get gpr
+    - SAUCE: MLK-24696: media: csi: return error when no command support
+    - SAUCE: MLK-24745: media: isi: fix pyeiq can't detect camera device
+    - SAUCE: MLK-24746: media: imx8: return directly for independent entity
+    - SAUCE: MLK-24981: media: isi: correct ISI chain buffer mask value
+    - SAUCE: MLK-24982: media: isi: disable ISI channel clock after stream off
+    - SAUCE: MLK-24983-01: media: isi: remove redundant code for clean the list
+    - SAUCE: MLK-24983-02: isi: use list_del_init instead of list_del
+    - SAUCE: MLK-24984: isi: use spin_lock_irqsave in irq handler to disable
+      interrupt
+    - SAUCE: MLK-24986: media: isi: add 4K support for iMX8MN ISI
+    - SAUCE: MLK-24987: media: isi: align discard buffer size to page size
+    - SAUCE: MLK-25000-1: media: csi: Enable V4L2_SUBDEV_FL_HAS_DEVNODE flag
+    - SAUCE: MLK-25027-2: media: isi: add workaround for iMX865 ISI to support 4K
+    - SAUCE: MLK-25027-3: media: isi: remove "fsl,chain_buf" property parse
+    - SAUCE: MLK-25027-4: media: isi: remove 4K feature for ISI channel1
+    - SAUCE: MLK-25039-01: media: isi: m2m: use V4L2 RGBA32 format define in V4L2
+      framework
+    - SAUCE: MLK-25041: media: imx8: media-dev: return if media device has been
+      registered
+    - SAUCE: LF-2474: media: samsung csi: fix string overflow issue
+    - SAUCE: MLK-9662 [V4L2 Capture] Revert patch to re-add support for
+      _G_CHIP_IDENT
+    - SAUCE: MLK-21770: media: v4l: Add packed YUV444 24bpp pixel format
+    - SAUCE: MLK-24477-1:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: enable color
+      description in vui
+    - SAUCE: media: mx6s_capture: remove imx-busfreq support
+    - SAUCE: MMFMWK-7549 [media] videobuf: store field and timestamp when queue
+      USERPTR buffer
+    - SAUCE: media: v4l2: export video_usercopy function
+    - SAUCE: Revert "media: v4l2-ioctl: clear fields in s_parm"
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: switch to fslc mxc csi platform driver
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: switch to ov5640_v2 mxc csi platform
+      driver
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: use clk names that csi fslc driver
+      expects
+    - SAUCE: clk: imx6sx: keep OCRAM_S always ON
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add pxp_v4l2_out support
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: let sound card driver control codec clk
+    - [Config] updateconfigs, enable fslc camera drivers, disable upstream
+      versions
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add pinctrl hogs for board_id, run led
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: usb2 host mode for lte-cellular module
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: rs485 uarts are full-duplex with hw
+      flow control
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: update gpio hogs for common port 1,2
+      uart_sel & ttl/rs232 port
+    - SAUCE: clk: imx6sx: explicitly gate gpmi_io & qspi2 clks during init
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable adc support
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: cleanup wifi/bt regulators
+    - SAUCE: MLK-13793-6 regulator: anatop: fix min dropout for bypass mode
+    - SAUCE: MLK-23562: regulator: core: adjust supply voltage in bypass
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add power domain for csi
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: allow ldo-bypass for gpc power domain
+    - SAUCE: MLK-22986-1: soc: imx: gpc: add ldo-bypass
+
+  * Miscellaneous upstream changes
+    - Revert "drm/imx/dcss: allow using nearest neighbor interpolation scaling"
+    - Revert "drm/imx/dcss: fix coccinelle warning"
+    - Revert "drm/imx/dcss: fix rotations for Vivante tiled formats"
+    - Revert "drm/imx/dcss: fix unused but set variable warnings"
+    - Revert "drm/imx/dcss: fix compilation issue on 32bit"
+    - Revert "drm/imx/dcss: use drm_bridge_connector API"
+    - Revert "drm/imx: Add initial support for DCSS on iMX8MQ"
+    - Revert "UBUNTU: SAUCE: ARM: dts: imx6sx-x6med35-som: disable rpmsg, don't
+      reserve memory"
+    - Revert "media: v4l2-subdev.h: remove obsolete g/s_parm"
+    - Revert "UBUNTU: [Config] CONFIG_REGULATOR_ANATOP=y on imx6 based platforms"
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Tue, 21 Sep 2021 01:54:41 +0800
+
+linux-imx (5.4.0-1010.10) focal; urgency=medium
+
+  * Miscellaneous upstream changes
+    - rtc: m41t80: set range
+    - arm64: dts: imx8m*-venice-gw7902: fix M2_RST# gpio
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Mon, 06 Sep 2021 16:33:15 +0800
+
+linux-imx (5.4.0-1009.9) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: fix phandle node definition for bwm-
+      beeper
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: cleanup re-init of i2c2 properties
+    - SAUCE: arm64: dts: imx8mp: support x8high35 bms
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: only emmc, crypto & soc are on the SOM
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add rts-gpios for rs485 uarts
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add gpio-hogs for ttl/rs232 uart_sel,
+      rs485 common port sel
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: ensure P11,P12 are set in rs485 mode
+      from boot
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable s1, s2 push-buttons as wakeup-
+      source
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: support OV5640 camera sensor on csi0
+    - [Config] support OV5640 cmos camera sensors
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: reduce pwm-beeper freq
+    - [Config] disable unused audio codec drivers
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix audmux pinconf
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: support nau8822 audio with simple-
+      sound-card
+    - [Config] CONFIG_SND_SOC_NAU8822=m
+    - [Config] enable IMX PXP, CODA
+    - [Config] DM_CRYPT, SHA256/512, ARMv7/8 AES built-in
+    - SAUCE: arm64: dts: imx8mp: x8high-som: define 2G memory properly
+    - SAUCE: arm64: dts: imx8mp: x8high-som: rename 35som status led node
+    - SAUCE: arm64: dts: imx8mp: x8high-som: rename regulators as per the dt-
+      schema
+    - SAUCE: ARM: dts: imx8mp-x8high-bms: disable rts-gpio for uart2 to enable
+      serial console
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: ldo5 1v8 to power BM28 SDIO VIO
+    - [Config] CONFIG_OF_NUMA=y by default
+    - SAUCE: ARM: dts: imx8mp-x8high35-bms: reserve memory for global dma usage
+    - CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
+
+  * Miscellaneous upstream changes
+    - ASoC: fsl: Replace HTTP links with HTTPS ones
+    - arm64: dts: imx8mp: Add dsp node
+    - arm64: dts: imx8mp: remove fallback compatible string for FlexCAN
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Sun, 22 Aug 2021 22:35:14 +0800
+
+linux-imx (5.4.0-1008.8) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] add canonical-hwe-team ppa to get abis
+
+  * Miscellaneous upstream changes
+    - arm64: dts: imx8mn-venice-gw7901: update gpio for revision-B board
+    - i2c: imx: support slave mode for imx I2C driver
+    - arm64: dts: imx8m*-venice-gw7902: fix phy configuration
+    - arm64: dts: imx8m*-venice-gw7902: fix phy configuration for 5.4 kernel
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Wed, 04 Aug 2021 22:58:57 +0800
+
+linux-imx (5.4.0-1007.7) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: only pmic, emmc, crypto & soc are on
+      the SOM
+    - SAUCE: extcon: poll cable status using timer
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: remove optional vbus supply to get
+      usb working
+    - SAUCE: arm64: dts: imx8mp: x8high-pdk: read eqos eth mac addr from ocotp-
+      nvmem
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: read fec1/2 eth mac addrs from nvmem-
+      ocotp
+
+  * Miscellaneous upstream changes
+    - usb: dwc3: imx8mp: fix error return code in dwc3_imx8mp_probe()
+    - usb: dwc3: ep0: fix NULL pointer exception
+    - usb: dwc3: core: fix kernel panic when do reboot
+    - usb: dwc3: create debugfs directory under usb root
+    - usb: dwc3: Disable phy suspend after power-on reset
+    - usb: dwc3: debug: Remove newline printout
+    - usb: dwc3: of-simple: add a shutdown
+    - usb: dwc3: gadget: Don't send unintended link state change
+    - usb: dwc3: gadget: Set link state to RX_Detect on disconnect
+    - usb: dwc3: gadget: Clear DCTL.ULSTCHNGREQ before set
+    - usb: dwc3: gadget: Remove END_TRANSFER delay
+    - usb: dwc3: Registering a role switch in the DRD code.
+    - usb: dwc3: Add support for role-switch-default-mode binding
+    - usb: dwc3: Rework clock initialization to be more flexible
+    - usb: dwc3: Rework resets initialization to be more flexible
+    - usb: dwc3: core: don't do suspend for device mode if already suspended
+    - usb: dwc3: Fix GTXFIFOSIZ.TXFDEP macro name
+    - usb: dwc3: select USB_ROLE_SWITCH
+    - usb: dwc3: support continuous runtime PM with dual role
+    - usb: dwc3: gadget: Give back staled requests
+    - usb: dwc3: gadget: Remove unnecessary checks
+    - usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue
+    - usb: dwc3: drd: Don't free non-existing irq
+    - usb: dwc3: core: Use role-switch default dr_mode
+    - usb: dwc3: gadget: Store resource index of start cmd
+    - usb: dwc3: gadget: Issue END_TRANSFER to retry isoc transfer
+    - usb: dwc3: gadget: WARN on no-resource status
+    - usb: dwc3: use true,false for dwc->otg_restart_host
+    - usb: dwc3: gadget: make starting isoc transfers more robust
+    - usb: dwc3: gadget: add frame number mask
+    - usb: dwc3: gadget: Refactor ep command completion
+    - usb: dwc3: gadget: Introduce a DWC3 VBUS draw callback
+    - usb: dwc3: gadget: Preserve UDC max speed setting
+    - usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression
+    - cpufreq: imx: Select NVMEM_IMX_OCOTP
+    - cpufreq: Initialize the governors in core_initcall
+    - cpufreq: Make cpufreq_global_kobject static
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Sun, 11 Jul 2021 20:48:24 +0800
+
+linux-imx (5.4.0-1006.6) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: imx: Add i.mx8mn Gateworks gw7902 dts support
+    - SAUCE: arm64: dts: imx8mn: gw7902: disable gpc, gpu & mu nodes
+    - SAUCE: arm64: dts: imx8mn: gw7902: update usbotg1 clks, clk parents
+    - [Packaging] ignore bpfilter module during crossbuild
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Mon, 05 Jul 2021 21:01:45 +0800
+
+linux-imx (5.4.0-1005.5) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - SAUCE: arm64: dts: x8high35-pdk: correct copyright in SPDX license ident
+    - [Packaging] Ignore if bpfilter module is missing
+    - SAUCE: ARM: dts: imx: add support for X6MED-35 PDK
+    - [Config] Disable iMX6SL/SLL iMX7D/ULP SoC's
+    - [Packaging] fix armhf imx flavour variables
+    - [Config] remoteproc, rpmsg drivers to be built-in
+    - [Config] disable lpae support for imx6(armhf) systems
+    - [Config] CONFIG_REMOTEPROC_CDEV=y
+    - [Config] cleanup power,cpugreq & clk related configs for armhf
+    - [Config] CONFIG_MMC_SDHCI_ESDHC_IMX=y, CONFIG_MMC_SDHCI_OF_ESDHC=y
+    - [Config] updateconfigs for earlyprintk on imx6sx uart1"
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: available memory to linux is ~511MiB
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add reserved memory for rpmsg
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add rpmsg node for imx6sx
+    - [Config] CONFIG_FEC=m
+    - [Config] CONFIG_REGULATOR_ANATOP=y on imx6 based platforms
+    - SAUCE: ARM: dts: imx6sx-x6med35: fix pinctrl for USB_CC interrupt
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: add pinctrl defs for fec rmii support
+    - [Config] CONFIG_SPI_FSL_QUADSPI=y, CONFIG_SPI_FSL_LPSPI=y
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: fix dt config for usb_otg1
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: usbotg2 config for LTE expansion
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: disable rpmsg, don't reserve memory
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: disable qspi nand-flash for now
+    - SAUCE: ARM: dts: imx6sx-x6med35-som: Assign corresponding power supply for
+      LDOs
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add 5v, 3v3 psu regulators
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: enable wdog1
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: add aliases for watchdog devices
+    - SAUCE: ARM: dts: imx6sx-x6med35-pdk: disable anatop-regulator
+
+  * Miscellaneous upstream changes
+    - ARM: dts: imx7: Unify temp-grade and speed-grade nodes
+    - ARM: dts: imx: Replace "simple-bus" with "simple-mfd" for anatop
+    - ARM: dts: imx: use generic name bus
+    - ARM: dts: imx: make gpt node name generic
+    - ARM: dts: imx: make kpp node name generic
+    - ARM: dts: imx: make clks node name generic
+    - ARM: dts: imx6sx: Improve UART pins macro defines
+    - ARM: dts: imx6sx: Add missing UART RTS/CTS pins mux
+    - ARM: dts: imx6sx-nitrogen6sx: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx6sx-sabreauto: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx6sx-sdb: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx6sx-softing-vining-2000: Use new pin names with DCE/DTE for
+      UART pins
+    - ARM: dts: imx6sx-udoo-neo: Use new pin names with DCE/DTE for UART pins
+    - ARM: dts: imx: make wdog node name generic
+    - ARM: dts: imx: Align ocotp node name
+    - ARM: dts: imx6sx-softing-vining-2000: Enable PCI support
+    - ARM: dts: imx: Make iomuxc node name generic
+    - ARM: dts: imx: add nvmem property for cpu0
+    - dt-bindings: fec: update the gpr property
+    - ARM: dts: imx: add ethernet stop mode property
+    - ARM: dts: imx6qdl: Use nvmem interface to get fuse data
+    - ARM: dts: imx6sl: Use nvmem interface to get fuse data
+    - ARM: dts: imx: Make tempmon node as child of anatop node
+    - ARM: dts: imx: change ocotp node name on i.MX6/7 SoCs
+    - ARM: dts: imx: change ocotp node name on MXS SoCs
+    - ARM: dts: imx: change iim node name on i.MX SoCs
+    - ARM: dts: imx6qdl: Remove invalid interrupt for GPC node
+    - ARM: dts: imx: Change sdhci node name on i.MX27/i.MX31 SoCs
+    - ARM: dts: imx: Change esdhc node name on i.MX2/i.MX3/i.MX5 SoCs
+    - ARM: dts: imx: Change usdhc node name on i.MX6/i.MX7 SoCs
+    - ARM: dts: imx6sll: Make ssi node name same as other platforms
+    - ARM: dts: imx6sx: Enable ASRC device
+    - ARM: dts: imx6sx-sdb: Add SPDIF support
+    - ARM: dts: imx6sx-sabreauto: Add SPDIF support
+    - ARM: dts: imx6sx-sabreauto: Add cs42888 sound card support
+    - ARM: dts: imx6sx-sdb: Add MQS support
+    - ARM: dts: imx: Align L2 cache-controller nodename with dtschema
+    - ARM: dts: imx6ul: Add ASRC device node
+    - ARM: dts: imx: default to #pwm-cells = <3> in the SoC dtsi files
+    - ASoC: bindings: fsl-asoc-card: Add compatible string for MQS
+    - ASoC: fsl-asoc-card: Add MQS support
+    - ASoC: bindings: fsl_spdif: Add new compatible string for imx6sx
+    - ASoC: fsl_spdif: Add support for imx6sx platform
+    - ASoC: fsl_spdif: Add pm runtime function
+    - ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3
+    - ARM: dts: imx6sx-sdb: Add headphone detection for sound card
+    - ARM: dts: imx6/7: sync fsl,stop-mode with current flexcan driver
+    - ARM: dts: imx: add usb alias
+    - ARM: dts: imx: Change gpmi nand node name to nand-controller
+    - ARM: dts: imx: make src node name generic
+    - ARM: dts: imx: align name for crypto node and child nodes
+    - remoteproc: use struct_size() helper
+    - remoteproc: Use size_t type for len in da_to_va
+    - remoteproc: Use size_t instead of int for rproc_mem_entry len
+    - remoteproc: Use u64 type for boot_addr
+    - remoteproc: Add elf helpers to access elf64 and elf32 fields
+    - remoteproc: Rename rproc_elf_sanity_check for elf32
+    - remoteproc: Add elf64 support in elf loader
+    - remoteproc: Allow overriding only sanity_check
+    - remoteproc: Adapt coredump to generate correct elf type
+    - remoteproc: re-check state in rproc_trigger_recovery()
+    - remoteproc: remoteproc debugfs file fixes
+    - remoteproc: return error for bad "recovery" debugfs input
+    - remoteproc: Traverse rproc_list under RCU read lock
+    - remoteproc: Introduce "panic" callback in ops
+    - remoteproc: qcom: q6v5: Add common panic handler
+    - remoteproc: qcom: Introduce panic handler for PAS and ADSP
+    - remoteproc: core: Remove casting to rproc_handle_resource_t
+    - remoteproc: introduce is_iomem to rproc_mem_entry
+    - remoteproc: convert to DEFINE_SHOW_ATTRIBUTE
+    - remoteproc: Split firmware name allocation from rproc_alloc()
+    - remoteproc: Simplify default name allocation
+    - remoteproc: add rproc_coredump_set_elf_info
+    - remoteproc: sysmon: Add ability to send type of notification
+    - remoteproc: Use kstrdup_const() rather than kstrdup()
+    - remoteproc: Restructure firmware name allocation
+    - remoteproc: Split rproc_ops allocation from rproc_alloc()
+    - remoteproc: Get rid of tedious error path
+    - remoteproc: Use a local copy for the name field
+    - remoteproc: Add device-managed variants of rproc_alloc/rproc_add
+    - remoteproc: remove rproc_elf32_sanity_check
+    - remoteproc: Add prepare and unprepare ops
+    - remoteproc: Add missing '\n' in log messages
+    - remoteproc: Fix an error code in devm_rproc_alloc()
+    - remoteproc: remoteproc_core: Use 'gnu_printf' format notation
+    - remoteproc: Add new RPROC_DETACHED state
+    - remoteproc: Add new attach() remoteproc operation
+    - remoteproc: Introducing function rproc_attach()
+    - remoteproc: Introducing function rproc_actuate()
+    - remoteproc: Introducing function rproc_validate()
+    - remoteproc: Refactor function rproc_boot()
+    - remoteproc: Refactor function rproc_trigger_auto_boot()
+    - remoteproc: Refactor function rproc_free_vring()
+    - remoteproc: Properly handle firmware name when attaching
+    - remoteproc: Make function rproc_resource_cleanup() public
+    - remoteproc: Move coredump functionality to a new file
+    - remoteproc: Pass size and offset as arguments to segment dump function
+    - remoteproc: Add inline coredump functionality
+    - remoteproc: Add coredump debugfs entry
+    - remoteproc: Introduce rproc_of_parse_firmware() helper
+    - remoteproc: Add remoteproc character device interface
+    - remoteproc: core: Register the character device interface
+    - remoteproc: Change default dump configuration to "disabled"
+    - remoteproc: coredump: Add minidump functionality
+    - remoteproc: add is_iomem to da_to_va
+    - remoteproc: imx_rproc: correct err message
+    - remoteproc: imx_rproc: use devm_ioremap
+    - remoteproc: imx_rproc: add i.MX specific parse fw hook
+    - remoteproc: imx_rproc: support i.MX8MQ/M
+    - remoteproc: imx_rproc: ignore mapping vdev regions
+    - remoteproc: imx_proc: enable virtio/mailbox
+    - remoteproc: imx_rproc: fix return value check in imx_rproc_addr_init()
+    - remoteproc: Remove useless check in rproc_del()
+    - remoteproc: Rename function rproc_actuate()
+    - remoteproc: Add new RPROC_ATTACHED state
+    - remoteproc: Properly represent the attached state
+    - remoteproc: Add new get_loaded_rsc_table() to rproc_ops
+    - remoteproc: imx_rproc: fix build error without CONFIG_MAILBOX
+    - remoteproc: imx_rproc: add missing of_node_put
+    - remoteproc: imx_rproc: enlarge IMX7D_RPROC_MEM_MAX
+    - remoteproc: imx_rproc: move memory parsing to rproc_ops
+    - remoteproc: imx_rproc: support remote cores booted before Linux Kernel
+    - spi: spi-fsl-qspi: Reduce devm_ioremap size to 4 times AHB buffer size
+    - spi: spi-fsl-qspi: Fix return value check of devm_ioremap() in probe
+    - regulator: anatop: Lower error message level for -EPROBE_DEFER
+    - regulator: anatop: Constify anatop_core_rops
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 02 Jul 2021 09:32:58 +0800
+
+linux-imx (5.4.0-1004.4) focal; urgency=medium
+
+  * Bump ABI: 5.4.0-1004.4
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 18 Jun 2021 18:15:48 +0800
+
+linux-imx (5.4.0-1003.3) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Config] CONFIG_CRYPTO_DEV_FSL_CAAM=m
+    - [Config] CONFIG_IMX8MM_THERMAL=m, CONFIG_IMX_SC_THERMAL=m
+    - [Config] CONFIG_NVMEM_IMX_OCOTP_SCU=y, CONFIG_NVMEM_SNVS_LPGPR=y
+    - SAUCE: arm64: dts: fix brcm sdio wifi compatible string
+    - SAUCE: arm64: dts: imx8mp: specify dma-ranges
+    - SAUCE: usb: dwc3: imx8mp: detect dwc3 child nodes with name "usb*"
+    - SAUCE: arm64: dts: imx8mp: A53 cpufreq opp table
+    - SAUCE: arm64: dts: imx8mp: add nvmem entries for A53 speed-grade
+    - SAUCE: arm64: dts: imx8mp: Enable cpu-idle driver
+    - SAUCE: cpufreq: Use imx-cpufreq-dt for i.MX8MP's speed grading
+    - SAUCE: arm64: dts: x8high35-pdk: fix node for wifi sdio card
+    - [Config] select ondemand gov as default
+    - SAUCE: arm64: dts: imx8mp: configure gpio1_01 for ecspi1-cs
+    - SAUCE: arm64: dts: x8high35-pdk: fix cs-pins for uart_exp ports
+    - SAUCE: arm64: dts: x8high35-pdk: enable uart3
+    - SAUCE: arm64: dts: imx8mp: update i2c addr for crypto chip as per HW
+      recommendation
+    - SAUCE: arm64: dts: imx8mm: add gpc iomux compatible
+    - SAUCE: arm64: dts: imx: Add i.mx8mm Gateworks gw7902 dts support
+    - SAUCE: arm64: dts: imx8mm-venice-gw7902: add PCI support
+    - [Config] CONFIG_LAN743X=m
+    - SAUCE: regmap: irq: fix ack-invert
+    - [Config] CONFIG_GPIO_PCA953X=y, CONFIG_GPIO_PCA953X_IRQ=y
+    - [Config] updateconfigs for watchdog support
+    - SAUCE: MLK-22404-02 soc: imx: Add power domain driver support for i.mx8m
+      family
+    - SAUCE: MLK-22404-03 arm64: dts: freescale: Add power domain nodes for
+      i.mx8mm
+    - SAUCE: arm64: dts: imx8mm-venice-gw7902: add power-domain configs for USB
+      controllers
+    - [Config] CONFIG_IMX8M_PM_DOMAINS=y
+    - SAUCE: clk: imx: imx8mm: set the parent clks of pcie
+    - SAUCE: PCI: imx: set the according disable signal
+    - SAUCE: PCI: imx: enable imx8qm/qxp pcie support
+    - SAUCE: pci: imx: fix build failure due to 5.1 RC7 upgrade
+    - SAUCE: PCI: imx: msi enable bit of rc should be set in resume
+    - SAUCE: PCI: imx: set up the hsio regmap itself
+    - SAUCE: PCI: imx: enable imx8mm pcie support
+    - [Config] CONFIG_PCIE_DW_*=y
+
+  * Miscellaneous upstream changes
+    - thermal: of-thermal: add API for getting sensor ID from DT
+    - thermal: imx_sc: add i.MX system controller thermal support
+    - thermal: imx8mm: Add support for i.MX8MM thermal monitoring unit
+    - thermal: imx_sc_thermal: Align imx sc thermal msg structs to 4
+    - thermal: imx_sc_thermal: Fix incorrect data type
+    - thermal: imx8mm: Add i.MX8MP support
+    - thermal: imx8mm: Fix build warning of incorrect argument type
+    - dt-bindings: firmware: imx: Move system control into dt-binding headfile
+    - thermal: imx_sc_thermal: Add hwmon support
+    - thermal: imx8mm: Replace zero-length array with flexible-array
+    - thermal: imx8mm: Support module autoloading
+    - thermal: imx8mm: Print the correct error code
+    - thermal: imx8mm: Disable the clock on probe failure
+    - arm64: dts: imx8m: add NVMEM provider and consumer to read soc unique ID
+    - nvmem: imx: scu: support hole region check
+    - nvmem: imx: scu: support write
+    - nvmem: imx: scu: fix dependency in Kconfig
+    - nvmem: imx: scu: fix write SIP
+    - nvmem: imx: scu: correct the fuse word index
+    - nvmem: imx: ocotp: introduce ocotp_ctrl_reg
+    - nvmem: imx: ocotp: add i.MX8MP support
+    - nvmem: imx-ocotp: Drop unnecessary initializations
+    - nvmem: imx-ocotp: Improve logic to save many code lines
+    - nvmem: imx-ocotp: add support for the unaliged word count
+    - arm64: dts: imx8mp: Use the correct name for child node "snps, dwc3"
+    - Revert "soc: imx8m: change to use platform driver"
+    - arm64: dts: imx8mp: add flexspi node
+    - arm64: dts: imx8mp: Remove the reference to audio ipg clock on imx8mp
+    - spi: nxp-fspi: Use devm API to fix missed unregistration of controller
+    - spi: fspi: enable fspi on imx8qxp and imx8mm
+    - spi: fspi: dynamically alloc AHB memory
+    - spi: spi-nxp-fspi: Enable the Octal Mode in MCR0
+    - spi: spi-nxp-fspi: Add support for imx8mm, imx8qxp
+    - spi: spi-nxp-fspi: Fix a NULL vs IS_ERR() check in probe
+    - spi: spi-nxp-fspi: Add ACPI support
+    - spi: spi-nxp-fspi: Add support for IP read only
+    - spi: spi-nxp-fspi: Add imx8dxl driver support
+    - spi: spi-nxp-fspi: Implement errata workaround for LS1028A
+    - spi: spi-nxp-fspi: Add imx8dxl support
+    - spi: fspi: enable fspi driver for on imx8mp
+    - dt-bindings: spi: add compatible entry for imx8mp in FlexSPI controller
+    - soc: imx: gpcv2: move to more ideomatic error handling in probe
+    - soc: imx: gpcv2: move domain mapping to domain driver probe
+    - soc: imx: gpcv2: switch to clk_bulk_* API
+    - soc: imx: gpcv2: split power up and power down sequence control
+    - soc: imx: gpcv2: wait for ADB400 handshake
+    - soc: imx: gpcv2: add runtime PM support for power-domains
+    - soc: imx: gpcv2: allow domains without power-sequence control
+    - soc: imx: gpcv2: add support for optional resets
+    - dt-bindings: power: add defines for i.MX8MM power domains
+    - soc: imx: gpcv2: add support for i.MX8MM power domains
+    - soc: imx: gpcv2: Add support for missing i.MX8MM VPU/DISPMIX power domains
+    - soc: imx: gpcv2: move reset assert after requesting domain power up
+    - dt-bindings: add defines for i.MX8MN power domains
+    - soc: imx: gpcv2: add support for i.MX8MN power domains
+    - arm64: dts: imx8mn: add GPC node and power domains
+    - arm64: dts: imx8mn: Add power-domain reference in USB controller
+    - arm64: dts: imx8mn: Add GPU node
+    - dt-bindings: reset: imx7: Add support for i.MX8MN
+    - dt-bindings: reset: imx7: Document usage on i.MX8MP SoC
+    - reset: imx7: Add support for i.MX8MP SoC
+    - reset: imx7: Support module build
+    - dt-bindings: reset: imx8mq: add m4 reset
+    - reset: imx7: add the cm4 reset for i.MX8MQ
+    - arm64: dts: imx8mm: specify dma-ranges
+    - arm64: dts: imx8mn: specify dma-ranges
+    - regmap: provide helpers for simple bit operations
+    - cpufreq: Initialize cpufreq-dt driver earlier
+    - cpufreq: Add i.MX7ULP to cpufreq-dt-platdev blacklist
+    - spi: imx: use true,false for bool variable
+    - spi: imx: fallback to PIO if dma setup failure
+    - spi: introduce fallback to pio
+    - spi: imx: add fallback feature
+    - spi: imx: enable runtime pm support
+    - spi: imx: Fix freeing of DMA channels if spi_bitbang_start() fails
+    - spi: imx: Do not print an error when PIO is used
+    - spi: imx: Remove unneeded probe message
+    - spi: imx: fix runtime pm support for !CONFIG_PM
+    - spi: imx: fix reference leak in two imx operations
+    - spi: imx: fix the unbalanced spi runtime pm management
+    - spi: imx: Improve driver description
+    - spi: imx: add a check for speed_hz before calculating the clock
+    - UBUTNU: SAUCE: arm64: dts: imx8mm-venice-gw7902: add PCIe nodes
+    - dt-bindings: mfd: Add Gateworks System Controller bindings
+    - mfd: Add Gateworks System Controller core driver
+    - hwmon: Add Gateworks System Controller support
+    - lan743x: add MODULE_DEVICE_TABLE for module loading alias
+    - hwmon: (gsc-hwmon) Scale temperature to millidegrees
+    - hwmon: (gsc) add 16bit pre-scaled voltage mode
+    - lan743x: allow mac address to come from dt
+    - dt-bindings: mfd: gateworks-gsc: Add 16bit pre-scaled voltage mode
+    - hwmon: (gsc-hwmon) add fan sensor
+    - dt-bindings: vendor-prefixes: favor "gateworks" over "gw"
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 18 Jun 2021 13:38:42 +0800
+
+linux-imx (5.4.0-1002.2) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] add hwe iot-build ppa to get abis
+    - [Packaging] add abi files for imx armhf
+    - [Config] disable drm configs for imx armhf
+    - [Config] CONFIG_MICREL_PHY=y
+    - [Config] CONFIG_CRYPTO_DEV_FSL_CAAM=y, CONFIG_CRYPTO_DEV_ATMEL_ECC=y
+
+  * Miscellaneous upstream changes
+    - media: v4l2-subdev: Introduce [get|set]_mbus_config pad ops
+    - net: phy: micrel.c: add rgmii interface delay possibility to ksz9131
+    - net: phy: micrel: add phy-mode support for the KSZ9031 PHY
+    - net: phy: mchp: Add support for LAN8814 QUAD PHY
+    - Revert "UBUNTU: SAUCE: arm64: dts: remove phy-reset-gpios from ethernet
+      nodes"
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Wed, 02 Jun 2021 13:20:33 +0800
+
+linux-imx (5.4.0-1001.1) focal; urgency=medium
+
+  * Miscellaneous Ubuntu changes
+    - [Packaging] Initial focal/imx packaging
+    - [Packaging] updateconfigs and annotations
+    - SAUCE: regulator: pca9450: fix build errors on backported 5.4 based kernel
+    - [Config] update configs for i.MX8 processors
+    - [Config] CONFIG_DWMAC_IMX8=m on i.MX8
+    - [Config] drm: updateconfigs, disable iMX8MP DCSS for now
+    - [Packaging] fix annotatoins for focal updates
+    - SAUCE: arm64: dts: imx8mp: support x8high35 pdk
+    - [Packaging] fix modules-check-imx
+    - [Packaging] arm64: imx: switch kernel format to Image
+    - [Config] CONFIG_SERIAL_IMX_CONSOLE=y
+    - SAUCE: arm64: dts: imx8mp: add optee fw node
+    - [Config] remove layerscape soc suooprt, cleanup configs
+    - SAUCE: arm64: dts: imx8mp: don't advertise broken eee modes for network phys
+    - [Config] CONFIG_USB_DWC3_IMX8MP=m
+    - SAUCE: arm64: dts: imx8mp: fix phy-reset-gpio assignments
+    - SAUCE: arm64: dts: imx8mp: correct wrong addr on i2c gpio expansion
+    - SAUCE: arm64: dts: imx8mp: setup pmic INT_B gpio
+    - SAUCE: regulator: pca9450: only warn if pmic irq allocation fails
+    - SAUCE: arm64: dts: imx8mp: fix uart-exp (ecspi1) SS0 pinconfig
+    - SAUCE: extcon: ptn5150: dont fail if interrupt cannot be configured
+    - SAUCE: arm64: dts: add a53 cpu supplies
+    - SAUCE: arm64: dts: fix usb-vbus pins, cc i2c addresses & add wifi regulator
+      supply
+    - SAUCE: arm64: dts: remove phy-reset-gpios from ethernet nodes
+    - SAUCE: MLK-23173-06 net: stmmac: enable dwmac5 34Bits address width
+    - SAUCE: MLK-23222 net: stmmac: add clocks management for gmac driver
+    - SAUCE: MLK-23251-01: net: stmac: tsn: add tc mqprio support
+    - SAUCE: MGS-5511 net: stmmac: start phylink instance before stmmac_hw_setup()
+    - SAUCE: MLK-23409 net: stmmac: correctly handle mdio bus reset error path
+    - SAUCE: MLK-23784 net: stmmac: disable bus/pclk clocks when probe failed
+    - SAUCE: net: fec: add imx8mq and imx8qm new versions support
+    - SAUCE: MLK-24911-1: soc: imx: Add support to get iMX8mp LDO trim fuse value
+    - [Packaging] build fail - remove bpfilter
+
+  * Miscellaneous upstream changes
+    - arm64: dts: imx8mn-ddr4-evk: Enable GPIO LED
+    - arm64: dts: imx8mn: Add "fsl,imx8mq-src" as src's fallback compatible
+    - arm64: dts: imx8mn: Add system counter node
+    - arm64: dts: imx8mn: Enable cpu-idle driver
+    - arm64: dts: imx8mm: Remove incorrect fallback compatible for ocotp
+    - arm64: dts: imx8mn: add ddr pmu node
+    - arm64: dts: imx8mm-evk: Adjust i2c nodes following alphabetical sort
+    - arm64: dts: imx8mm-evk: Add i2c3 support
+    - arm64: dts: imx8mm-evk: Enable pca6416 on i2c3 bus
+    - arm64: dts: imx8mq-evk: Adjust nodes following alphabetical sort
+    - arm64: dts: imx8mn-ddr4-evk: Move iomuxc node to end of file
+    - arm64: dts: imx8mq-evk: VDD_ARM power rail is always ON
+    - arm64: dts: imx8mq: Move usdhc clocks assignment to board DT
+    - arm64: dts: imx8mm: Move usdhc clocks assignment to board DT
+    - arm64: dts: imx8mn: Move usdhc clocks assignment to board DT
+    - arm64: dts: imx8mn: Create EVK dtsi file for common use
+    - arm64: dts: imx8mq-evk: Add remote control
+    - arm64: dts: imx8mm: Remove duplicated machine compatible
+    - arm64: dts: imx8mn: Remove duplicated machine compatible
+    - arm64: dts: imx8mn-evk: Remove invalid Atheros properties
+    - arm64: dts: imx8mm: remove "simple-bus" for anatop
+    - arm64: dts: imx8mn: remove "simple-bus" for anatop
+    - arm64: dts: imx8m: Add ddr controller nodes
+    - arm64: dts: imx8mq: increase NOC clock to 800 MHz
+    - arm64: dts: imx8mq: Add eLCDIF controller
+    - arm64: dts: imx8mq: add missing SAI nodes
+    - arm64: dts: imx8mn: Remove setting for IMX8MN_CLK_USB_CORE_REF
+    - arm64: dts: imx8mn-evk: enable usb1 and typec support
+    - arm64: dts: imx8mm: Add missing mux options for UART1 and UART2 signals
+    - arm64: dts: imx8m: drop "fsl,aips-bus" and "fsl,imx8mq-aips-bus"
+    - dt-bindings: arm: Add Google Coral Edge TPU entry
+    - arm64: dts: freescale: add initial support for Google i.MX 8MQ Phanbell
+    - arm64: dts: imx8mm: Add Crypto CAAM support
+    - arm64: dts: imx8mn: add crypto node
+    - arm64: dts: imx8mm: Memory node should be in board DT
+    - arm64: dts: imx8mn: Memory node should be in board DT
+    - arm64: dts: imx8mn: add clock for snvs rtc node
+    - arm64: dts: imx8mn: Init rates and parents configs for clocks
+    - arm64: dts: imx8mm: drop redundant interrupt-parent
+    - arm64: dts: freescale: Add i.MX8MP dtsi support
+    - arm64: dts: freescale: Add i.MX8MP EVK board support
+    - arm64: dts: imx8mq-phanbell: Add support for ethernet
+    - arm64: dts: imx8mm-evk: add phy-reset-gpios for fec1
+    - arm64: dts: imx8mq-evk: add phy-reset-gpios for fec1
+    - arm64: dts: imx8mp-evk: Add GPIO LED support
+    - arm64: dts: imx8mp: Add system counter timer node
+    - arm64: dts: imx8mn: Adjust 1.2GHz OPP voltage to OD mode
+    - arm64: dts: imx: add i.MX8QXP thermal support
+    - arm64: dts: imx8mp: add crypto node
+    - arm64: dts: imx8mm: add snvs clock to pwrkey
+    - arm64: dts: imx8mq: add snvs clock to pwrkey
+    - arm64: dts: imx8mq: Align iomuxc node name
+    - arm64: dts: imx8mp: Add src node
+    - arm64: dts: imx8mn-evk: Add i2c3 support
+    - arm64: dts: imx8mn-evk: Enable pca6416 on i2c3 bus
+    - arm64: dts: imx8mp-evk: Add i2c3 support
+    - arm64: dts: imx8mp-evk: Enable pca6416 on i2c3 bus
+    - arm64: dts: imx8mq-phanbell: Add gpio-fan/thermal support
+    - arm64: dts: imx8mn: align name for crypto child nodes
+    - arm64: dts: enable fspi in imx8mm dts
+    - arm64: dts: imx8mq-phanbell: Fix Ethernet PHY post-reset duration
+    - arm64: dts: imx8mm: Add thermal zone support
+    - arm64: dts: imx8mn: Add CPU thermal zone support
+    - arm64: dts: imx8m: fix aips dts node
+    - arm64: dts: imx8mn: Add snvs clock to powerkey
+    - arm64: dts: imx8mp: Add snvs clock to powerkey
+    - arm64: dts: imx8mm-evk: Add secondary cpus supply
+    - arm64: dts: imx8m: Fix AIPS reg properties
+    - arm64: dts: imx8mp: Add thermal zones support
+    - arm64: dts: imx8mm: specify #sound-dai-cells for SAI nodes
+    - arm64: dts: freescale: imx8mp: update input_val for AUDIOMIX_BIT_STREAM
+    - arm64: dts: imx8mn: Update VDD_ARM 1.2GHz setpoint voltage
+    - arm64: dts: imx8mp: add "fsl,imx6sx-fec" compatible string
+    - arm64: dts: imx8m: assign clocks for A53
+    - arm64: dts: imx8mq: Add src node interrupts
+    - arm64: dts: imx8mp: Add src node interrupts
+    - arm64: dts: imx8mq: enable Hantro G1/G2 VPU
+    - arm64: dts: imx8mq: Add mmc aliases
+    - arm64: dts: imx8mq: Add ethernet alias
+    - arm64: dts: imx8mm: sort the aliases
+    - arm64: dts: imx8mp: add i2c aliases
+    - arm64: dts: imx8m: change ocotp node name on i.MX8M SoCs
+    - arm64: dts: imx8m: add mu node
+    - arm64: dts: imx8mp: Add fallback compatible to ocotp node
+    - arm64: dts: imx8mp: add ddr pmu device node
+    - arm64: dts: imx8mm-evk: add two parameters for samsung picophy tuning
+    - arm64: dts: imx8mn-evk: add two parameters for samsung picophy tuning
+    - arm64: dts: imx8m: Add the ENET PPS interrupt
+    - arm64: dts: imx8mq: Add NWL MIPI DSI controller
+    - arm64: dts: imx8mp: Update pinfunc header file
+    - arm64: dts: imx8mm-evk: Add flexspi support
+    - arm64: dts: imx8mm-evk: remove orphaned pinctrl-names property
+    - arm64: dts: imx8mn-evk: remove orphaned pinctrl-names property
+    - arm64: dts: imx8mp-evk: remove orphaned pinctrl-names property
+    - arm64: dts: imx8mm-evk: Replace deprecated phy reset properties
+    - arm64: dts: imx8mq-evk: Replace deprecated phy reset properties
+    - arm64: dts: imx8mq-phanbell: Replace deprecated phy reset properties
+    - arm64: dts: imx8mm-evk: Align regulator names with schema
+    - arm64: dts: imx8mq-evk: Add hog suffix to wl-reg-on
+    - arm64: dts: imx8mm: Split the imx8mm evk board dts to a common dtsi
+    - arm64: dts: imx8mm: Add imx8mm ddr4 evk board support
+    - arm64: dts: imx8mm-evk: Add 32.768 kHz clock to PMIC
+    - arm64: dts: imx8mm-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mm-ddr4-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mn-ddr4-evk: Align regulator names with schema
+    - arm64: dts: imx8mq-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mq-phanbell: Align pin configuration group names with schema
+    - arm64: dts: imx8mp: correct sdma1 clk setting
+    - arm64: dts: imx8mp-evk: Align pin configuration group names with schema
+    - arm64: dts: imx8mn-ddr4-evk: fix missing PMIC's interrupt line pull-up
+    - arm64: dts: imx8mm: adjust GIC CPU mask to match number of CPUs
+    - arm64: dts: imx8mn: adjust GIC CPU mask to match number of CPUs
+    - arm64: dts: imx8mp: adjust GIC CPU mask to match number of CPUs
+    - arm64: dts: freescale: Add pmu support on imx8mp
+    - arm64: dts: freescale: Add pmu support on imx8mn
+    - arm64: dts: imx8mp-evk: Correct WDOG_B pin configuration
+    - arm64: dts: imx8mm: Add support for micfil
+    - arm64: dts: imx8mm: Add node for SPDIF
+    - arm64: dts: imx8mq: Configure clock rate for audio plls
+    - arm64: dts: imx8mq-evk: Add spdif sound card support
+    - arm64: dts: imx8mp-evk: add CAN support
+    - arm64: dts: imx8mq-evk: add linux,autosuspend-period property for IR
+    - arm64: dts: imx8mm-evk: add IR support
+    - arm64: dts: imx8mn-evk: add IR support
+    - arm64: dts: imx8mn: Enable Asynchronous Sample Rate Converter
+    - arm64: dts: imx8mn: Add SAI nodes
+    - arm64: dts: imx8mn: Add support for micfil
+    - arm64: dts: imx8mn: Add node for SPDIF
+    - arm64: dtsi: imx8mp: add usb nodes
+    - arm64: dts: imx8mp-evk: enable usb1 as host mode
+    - arm64: dts: imx8mn: Fix duplicate node name
+    - arm64: dts: imx8mn: Configure clock rate for audio plls
+    - arm64: dts: imx8mn-evk: Add sound-wm8524 card nodes
+    - arm64: dts: imx8mn-evk: Add sound-spdif card nodes
+    - arm64: dts: imx8mq: Add clock parents for mipi dphy
+    - arm64: dts: imx8m: add SoC ID compatible
+    - arm64: dts: imx8m: correct assigned clocks for FEC
+    - arm64: dts: imx8mq: assign clock parents for FEC
+    - arm64: dts: imx8m: add mac address for FEC
+    - arm64: dts: imx8m: add fsl,stop-mode property for FEC
+    - arm64: dts: imx8mq: use_dt_domains for pci node
+    - arm64: dts: imx8mn: Add fspi node
+    - pinctrl: core: Add pinctrl_select_default_state() and export it
+    - pinctrl: freescale: Add i.MX8MP pinctrl driver support
+    - pinctrl: freescale: drop the dependency on ARM64 for i.MX8M
+    - pinctrl: imx: Support i.MX8 SoCs pinctrl driver built as module
+    - pinctrl: imx: scu: Support i.MX8 SCU SoCs pinctrl driver built as module
+    - pinctrl: imx8mm: Support building as module
+    - pinctrl: imx8mn: Support building as module
+    - pinctrl: imx8mq: Support building as module
+    - pinctrl: imx8mp: Support building as module
+    - pinctrl: imx8qm: Support building as module
+    - pinctrl: imx: Support building i.MX pinctrl core driver as module
+    - clk: imx8mm: Move 1443X/1416X PLL clock structure to common place
+    - clk: imx8mn: Use common 1443X/1416X PLL clock structure
+    - clk: imx8mq: Add VIDEO2_PLL clock
+    - clk: imx: clk-pll14xx: Make two variables static
+    - clk: imx8mq: Define gates for pll1/2 fixed dividers
+    - clk: imx8mm: Define gates for pll1/2 fixed dividers
+    - clk: imx8mn: Define gates for pll1/2 fixed dividers
+    - clk: imx: imx8mm: mark sys_pll1/2 as fixed clock
+    - clk: imx: imx8mn: mark sys_pll1/2 as fixed clock
+    - clk: imx: imx8mq: mark sys1/2_pll as fixed clock
+    - clk: imx: imx7d: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx6sll: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx6sx: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx6ul: use imx_obtain_fixed_clk_hw to simplify code
+    - clk: imx: imx8mq: fix sys3_pll_out_sels
+    - clk: imx: imx8mn: drop unused pll enum
+    - clk: imx: clk-divider-gate: fix a typo in comment
+    - clk: imx: clk-divider-gate: drop redundant initialization
+    - clk: imx8m: Set CLK_GET_RATE_NOCACHE on dram clocks
+    - clk: imx: Mark dram pll on 8mm and 8mn with CLK_GET_RATE_NOCACHE
+    - clk: imx6q: disable non functional divider
+    - clk: imx7ulp: Fix watchdog2 clock name typo
+    - clk: imx8m: Suppress bind attrs
+    - clk: imx8mn: correct the usb1_ctrl parent to be usb_bus
+    - clk: imx8qxp-lpcg: Warn against devm_platform_ioremap_resource
+    - clk: imx: Rename the SCCG to SSCG
+    - clk: imx: Replace all the clk based helpers with macros
+    - clk: imx: pllv1: Switch to clk_hw based API
+    - clk: imx: pllv2: Switch to clk_hw based API
+    - clk: imx: imx7ulp composite: Rename to show is clk_hw based
+    - clk: imx: Rename sccg and frac pll register to suggest clk_hw
+    - clk: imx: Rename the imx_clk_pllv4 to imply it's clk_hw based
+    - clk: imx: Rename the imx_clk_pfdv2 to imply it's clk_hw based
+    - clk: imx: Rename the imx_clk_divider_gate to imply it's clk_hw based
+    - clk: imx7up: Rename the clks to hws
+    - clk: imx: clk-pll14xx: Switch to clk_hw based API
+    - clk: imx: clk-composite-8m: Switch to clk_hw based API
+    - clk: imx: add imx_unregister_hw_clocks
+    - clk: imx: add hw API imx_clk_hw_mux2_flags
+    - clk: imx: gate3: Switch to clk_hw based API
+    - clk: imx: Remove __init for imx_obtain_fixed_clk_hw() API
+    - clk: imx: imx8mn: Switch to clk_hw based API
+    - clk: imx: imx8mm: Switch to clk_hw based API
+    - clk: imx: imx8mq: Switch to clk_hw based API
+    - clk: imx: gate4: Switch imx_clk_gate4_flags() to clk_hw based API
+    - clk: imx: Add support for i.MX8MP clock driver
+    - clk: imx8mp: Correct IMX8MP_CLK_HDMI_AXI clock parent
+    - clk: imx8mp: Correct the enet_qos parent clock
+    - clk: imx8mn: add SNVS clock to clock tree
+    - clk: imx: pll14xx: Add new frequency entries for pll1443x table
+    - clk: imx: imx8mp: add ocotp root clk
+    - clk: imx: composite-8m: add imx8m_clk_hw_composite_core
+    - clk: imx: imx8mq: use imx8m_clk_hw_composite_core
+    - clk: imx: imx8mm: use imx8m_clk_hw_composite_core
+    - dt-bindings: clock: imx8mn: add SNVS clock
+    - clk: imx: imx8mn: use imx8m_clk_hw_composite_core
+    - clk: imx8mm: Fix the CLKO1 source select list
+    - clk: imx8mm: Add CLKO2 support
+    - clk: imx: Include clk-provider.h instead of clk.h for i.MX8M SoCs clock
+      driver
+    - clk: imx: drop redundant initialization
+    - clk: imx7ulp: Include clk-provider.h instead of clk.h
+    - clk: imx6sl: Add missing of_node_put()
+    - clk: imx8mq: Add missing of_node_put()
+    - clk: imx8mm: Add missing of_node_put()
+    - clk: imx8mn: Add missing of_node_put()
+    - clk: imx8mp: Add missing of_node_put()
+    - clk: imx8mp: Include slab.h instead of clkdev.h
+    - clk: imx8mm: Remove unused includes
+    - clk: imx8mn: Remove unused includes
+    - dt-bindings: imx: Add clock binding doc for i.MX8MP
+    - clk: imx8mp: Rename the IMX8MP_CLK_HDMI_27M clock
+    - clk: imx: imx8mq: fix a53 cpu clock
+    - clk: imx: imx8mm: fix a53 cpu clock
+    - clk: imx: imx8mn: fix a53 cpu clock
+    - clk: imx: imx8mp: fix a53 cpu clock
+    - dt-bindings: clocks: imx8mp: Add ids for audiomix clocks
+    - clk: imx: pll14xx: Return error if pll type is invalid
+    - clk: imx: clk-sscg-pll: Drop unnecessary initialization
+    - clk: imx: pfdv2: switch to use determine_rate
+    - clk: imx: pfdv2: determine best parent rate
+    - clk: imx: pllv4: use prepare/unprepare
+    - clk: imx8mn: A53 core clock no need to be critical
+    - clk: imx8mm: A53 core clock no need to be critical
+    - clk: imx8mp: A53 core clock no need to be critical
+    - clk: imx8mq: A53 core clock no need to be critical
+    - clk: imx7d: Add PXP clock
+    - clk: imx: clk-gate2: Pass the device to the register function
+    - clk: imx: imx6ul: change flexcan clock to support CiA bitrates
+    - clk: imx: drop the dependency on ARM64 for i.MX8M
+    - clk: imx: clk-sscg-pll: Remove unnecessary blank lines
+    - clk: imx: clk-pllv3: Use readl_relaxed_poll_timeout() for PLL lock wait
+    - clk: imx: gate2: Allow single bit gating clock
+    - clk: imx: pll14xx: Add the device as argument when registering
+    - clk: imx: Add helpers for passing the device as argument
+    - clk: imx8m: drop clk_hw_set_parent for A53
+    - clk: imx: imx8mp: fix pll mux bit
+    - clk: imx8mp: Define gates for pll1/2 fixed dividers
+    - clk: imx8mp: use imx8m_clk_hw_composite_core to simplify code
+    - clk: imx8m: migrate A53 clk root to use composite core
+    - clk: imx: add mux ops for i.MX8M composite clk
+    - clk: imx: add imx8m_clk_hw_composite_bus
+    - clk: imx: use imx8m_clk_hw_composite_bus for i.MX8M bus clk slice
+    - clk: imx8mp: add mu root clk
+    - clk: imx: vf610: add CAAM clock
+    - clk: imx: Use fallthrough pseudo-keyword
+    - clk: imx6sl: Use BIT(x) to avoid shifting signed 32-bit value by 31 bits
+    - clk: imx: Support building i.MX common clock driver as module
+    - clk: imx: Add clock configuration for ARMv7 platforms
+    - clk: imx8m: Support module build
+    - clk: imx8qxp: Support building i.MX8QXP clock driver as module
+    - clk: imx: Explicitly include bits.h
+    - clk: imx: vf610: Add CRC clock
+    - clk: imx: Correct the root clk of media ldb on imx8mp
+    - clk: imx: Correct the memrepair clock on imx8mp
+    - clk: imx: fix composite peripheral flags
+    - clk: imx: fix i.MX7D peripheral clk mux flags
+    - clk: imx: Fix and update kerneldoc
+    - clk: imx: gate2: Fix a few typos
+    - clk: imx8m: fix bus critical clk registration
+    - clk: imx: scu: fix MXC_CLK_SCU module build break
+    - clk: imx: scu: add two cells binding support
+    - clk: imx: scu: bypass cpu power domains
+    - clk: imx: scu: allow scu clk to take device pointer
+    - clk: imx: scu: add runtime pm support
+    - clk: imx: scu: add suspend/resume support
+    - clk: imx: imx8qxp-lpcg: add parsing clocks from device tree
+    - clk: imx: lpcg: allow lpcg clk to take device pointer
+    - clk: imx: clk-imx8qxp-lpcg: add runtime pm support
+    - clk: imx: lpcg: add suspend/resume support
+    - clk: imx: remove unneeded semicolon
+    - clk: imx: remove redundant assignment to pointer np
+    - clk: imx: scu: fix build break when compiled as modules
+    - clk: imx: gate2: Remove the IMX_CLK_GATE2_SINGLE_BIT special case
+    - clk: imx: gate2: Keep the register writing in on place
+    - clk: imx: gate2: Check if clock is enabled against cgr_val
+    - clk: imx: gate2: Add cgr_mask for more flexible number of control bits
+    - clk: imx: gate2: Add locking in is_enabled op
+    - clk: imx: gate2: Remove unused variable ret
+    - clk: imx8mm: drop of_match_ptr from of_device_id table
+    - clk: imx8mn: drop of_match_ptr from of_device_id table
+    - clk: imx8mp: drop of_match_ptr from of_device_id table
+    - clk: imx8mq: drop of_match_ptr from of_device_id table
+    - clk: imx: scu: Make pd_np with static keyword
+    - clk: imx: scu: remove the calling of device_is_bound
+    - clk: imx: fix Kconfig warning for i.MX SCU clk
+    - clk: imx: clk-imx8qxp: Add SCU clocks support for DC0 PLL clocks
+    - clk: imx: clk-imx8qxp: Add SCU clocks support for DC0 bypass clocks
+    - clk: imx: clk-imx8qxp: Register DC0 display clocks with imx_clk_scu2()
+    - clk: imx: clk-imx8qxp: Add some SCU clocks support for MIPI-LVDS subsystems
+    - clk: imx6q: demote warning about pre-boot ldb_di_clk reparenting
+    - clk: imx: clk-imx31: Remove unused static const table 'uart_clks'
+    - clk: imx8mq: add PLL monitor output
+    - clk: imx8mm: add clkout1/2 support
+    - clk: imx8mn: add clkout1/2 support
+    - clk: imx: Move 'imx6sl_set_wait_clk()'s prototype out to accessible header
+    - cpufreq: imx-cpufreq-dt: Add i.MX8MP support
+    - cpufreq: imx-cpufreq-dt: Add "cpu-supply" property check
+    - cpufreq: imx6q: read OCOTP through nvmem for imx6q
+    - cpufreq: imx-cpufreq-dt: Correct i.MX8MP's market segment fuse location
+    - cpufreq: dt: Allow platform specific intermediate callbacks
+    - cpufreq: imx6q-cpufreq: Improve the logic of -EPROBE_DEFER handling
+    - cpufreq: imx-cpufreq-dt: support i.MX7ULP
+    - cpufreq: imx6q: Unconditionally call dev_pm_opp_of_remove_table()
+    - watchdog: imx2_wdt: Remove unnecessary blank line
+    - watchdog: imx2_wdt: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
+    - watchdog: imx2_wdt: Use 'dev' instead of dereferencing it repeatedly
+    - watchdog: imx_sc_wdt: Remove unused includes
+    - watchdog: imx2_wdt: Drop .remove callback
+    - watchdog: imx2_wdt: update contact email
+    - gpio: mxc: Support module build
+    - rtc: imx-sc: Align imx sc msg structs to 4
+    - iopoll: introduce read_poll_timeout macro
+    - iopoll: redefined readx_poll_timeout macro to simplify the code
+    - iopoll: Introduce read_poll_timeout_atomic macro
+    - iopoll: update kerneldoc of read_poll_timeout_atomic()
+    - mmc: sdhci-esdhc-imx: Convert to pinctrl_select_default_state()
+    - mmc: sdhci-esdhc-imx: no fail when no pinctrl available
+    - mmc: sdhci-esdhci-imx: retune needed for Mega/Mix enabled SoCs
+    - mmc: sdhci-esdhc-imx: restore the per_clk rate in PM_RUNTIME
+    - mmc: sdhci-esdhc-imx: add strobe-dll-delay-target support
+    - mmc: sdhci-esdhc-imx: optimize the clock setting
+    - mmc: sdhci-esdhc-imx: optimize the strobe dll setting
+    - mmc: sdhci-esdhc-imx: add flag ESDHC_FLAG_BROKEN_AUTO_CMD23
+    - mmc: sdhci-esdhc-imx: Add an new esdhc_soc_data for i.MX8MM
+    - mmc: sdhci-esdhc-imx: clear pending interrupt and halt cqhci
+    - mmc: sdhci-esdhc-imx: clear DMA_SEL when disable DMA mode
+    - mmc: sdhci-esdhc-imx: restore pin state when resume back
+    - mmc: sdhci: use FIELD_GET for preset value bit masks
+    - mmc: sdhci: use FIELD_GET/PREP for capabilities bit masks
+    - mmc: sdhci: use FIELD_GET/PREP for current capabilities bit masks
+    - mmc: sdhci-esdhc: update contact email
+    - mmc: sdhci-esdhc-imx: Add HS400 support for i.MX6SLL
+    - mmc: host: sdhci-esdhc-imx: add wakeup feature for GPIO CD pin
+    - mmc: sdhci-esdhc-imx: disable the CMD CRC check for standard tuning
+    - mmc: sdhci-msm: Introduce new ops to dump vendor specific registers
+    - mmc: sdhci-esdhc-imx: dump internal IC debug status during error
+    - mmc: sdhci-esdhc-imx: Reset before sending tuning command for manual tuning
+    - mmc: sdhci-esdhc-imx: remove unused code
+    - mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
+    - mmc: sdhci-of-esdhc: make sure delay chain locked for HS400
+    - nvmem: core: add nvmem_cell_read_common
+    - nvmem: core: add nvmem_cell_read_u64
+    - soc: imx8: Using existing serial_number instead of UID
+    - soc: imx-scu: Using existing serial_number instead of UID
+    - soc: imx8mq: Read SOC revision from TF-A
+    - soc: imx8: print SoC type and revision
+    - soc: imx: Add i.MX8MP SoC driver support
+    - soc: imx: Enable compile testing of IMX_SCU_SOC
+    - soc: imx: gpcv2: include linux/sizes.h
+    - soc: imx: increase build coverage for imx8m soc driver
+    - soc: imx: drop COMPILE_TEST for IMX_SCU_SOC
+    - soc: imx8: select SOC_BUS
+    - soc: imx8m: Correct i.MX8MP UID fuse offset
+    - soc: imx8m: fix build warning
+    - soc: imx: scu: use devm_kasprintf
+    - cpuidle: Consolidate disabled state checks
+    - cpuidle: Introduce cpuidle_driver_state_disabled() for driver quirks
+    - ARM: imx: Drop imx_anatop_usb_chrg_detect_disable()
+    - ARM: imx: Add serial number support for i.MX6/7 SoCs
+    - ARM: imx: use generic function to exit coherency
+    - ARM: imx: Correct ocotp id for serial number support of i.MX6ULL/ULZ SoCs
+    - ARM: imx: Fix boot crash if ocotp is not found
+    - ARM: imx: Add i.MX7ULP SoC serial number support
+    - ARM: imx: limit errata selection to Cortex-A9 based designs
+    - ARM: imx: Remove unused include of linux/irqchip/arm-gic.h
+    - ARM: imx: Remove unused includes on mach-imx6q.c
+    - ARM: imx: Remove unused include of linux/of.h on mach-imx6sl.c
+    - ARM: imx: Add missing of_node_put()
+    - ARM: imx: Remove unnecessary blank lines
+    - ARM: imx: Drop unnecessary src_base check
+    - ARM: vf610: report soc info via soc device
+    - ARM: imx: use device_initcall for imx_soc_device_init
+    - ARM: imx: move cpu definitions into a header
+    - soc: imx: move cpu code to drivers/soc/imx
+    - ARM: imx: Provide correct number of resources when registering gpio devices
+    - ARM: imx: Place "Cortex-A/Cortex-M" comment in the correct location
+    - ARM: imx: Use correct SRC base address
+    - ARM: imx: Add revision support for i.MX7ULP revision 2.2
+    - ARM: imx: imx7ulp: Add a comment explaining the B2 silicon version
+    - ARM: imx: mach-imx6q: correctly identify i.MX6QP SoCs
+    - ARM: mach-imx: imx6ul: Print SOC revision on boot
+    - soc: imx: select ARM_GIC_V3 for i.MX8M
+    - ARM: imx: fix imx8m dependencies
+    - soc: imx8m: change to use platform driver
+    - pwm: imx27: Cache duty cycle register value
+    - pwm: imx27: Unconditionally write state to hardware
+    - pwm: imx27: Eliminate error message for defer probe
+    - pwm: imx27: Fix clock handling in pwm_imx27_apply()
+    - pwm: imx27: Simplify helper function to enable and disable clocks
+    - pwm: imx27: Don't disable clocks at device remove time
+    - pwm: imx27: Ensure clocks being on iff the PWM is on
+    - pwm: imx-tpm: Remove unused includes
+    - pwm: imx27: Remove unused include of of_device.h
+    - pwm: imx27: Fix rounding behavior
+    - pwm: imx-tpm: Use 64-bit division macro
+    - pwm: imx27: Use 64-bit division macro
+    - pwm: imx27: Fix overflow for bigger periods
+    - arm64: defconfig: add pca9450 pmic driver
+    - dt-bindings: regulator: add pca9450 regulator yaml
+    - regulator: pca9450: Add sd-vsel GPIO
+    - regulator: pca9450: add pca9450 pmic driver
+    - regulator: pca9450: Convert to use module_i2c_driver
+    - regulator: pca9450: Constify static regulator_ops
+    - regulator: pca9450: Add SD_VSEL GPIO for LDO5
+    - regulator: pca9450: Enable system reset on WDOG_B assertion
+    - phy: freescale: imx8mq-usb: add support for imx8mp usb phy
+    - dt-bindings: phy-imx8mq-usb: add compatible string for imx8mp usb phy
+    - phy: fsl-imx8mq-usb: Constify imx8mq_usb_phy_ops
+    - phy: fsl-imx8mq-usb: Constify imx8mp_usb_phy_ops
+    - phy: freescale: convert to devm_platform_ioremap_resource
+    - dt-bindings: imx: Add pinctrl binding doc for i.MX8MP
+    - dt-bindings: pinctrl: imx8mp: Replace the uint32-array with uint32-matrix
+    - usb: chipidea: debug: create debugfs directory under usb root
+    - usb: chipidea: udc: add new API ci_hdrc_gadget_connect
+    - usb: chipidea: udc: protect usb interrupt enable
+    - usb: chipidea: imx: enable vbus and id wakeup only for OTG events
+    - usb: chipidea: core: change vbus-regulator as optional
+    - usb: chipidea: imx: check data->usbmisc_data against NULL before access
+    - usb: chipidea: imx: change hsic power regulator as optional
+    - usb: chipidea: imx: refine the error handling for hsic
+    - usb: chipidea: imx: pinctrl for HSIC is optional
+    - usb: chipidea: ci_hdrc_imx: restore pinctrl
+    - usb: chipidea: usbmisc_imx: Use of_device_get_match_data()
+    - usb: chipidea: ci_hdrc_imx: Use of_device_get_match_data()
+    - USB: host: Use the correct style for SPDX License Identifier
+    - usb: host: ehci-fsl: Fix incorrectly named function argument
+    - crypto: caam - use mapped_{src,dst}_nents for descriptor
+    - crypto: caam - use devres to unmap memory
+    - crypto: caam - use devres to remove debugfs
+    - crypto: caam - use devres to de-initialize the RNG
+    - crypto: caam - use devres to de-initialize QI
+    - crypto: caam - use devres to populate platform devices
+    - crypto: caam - populate platform devices last
+    - crypto: caam - remove double buffering for ahash
+    - crypto: caam/qi2 - remove double buffering for ahash
+    - crypto: caam - Add support for i.MX8M Mini
+    - crypto: caam - add support for i.MX8M Nano
+    - crypto: caam - add support for i.MX8M Plus
+    - crypto: caam/qi - optimize frame queue cleanup
+    - drm/fsl-dcu: Use simple encoder
+    - drm/etnaviv: avoid deprecated timespec
+    - drm/etnaviv: Use dma_resv locking wrappers
+    - drm/etnaviv: update hardware headers from rnndb
+    - drm/etnaviv: determine product, customer and eco id
+    - drm/etnaviv: show identity information in debugfs
+    - drm/etnaviv: update gc7000 chip identity entry
+    - drm/etnaviv: update hwdb selection logic
+    - drm/etnaviv: add hwdb entry for gc400 found in STM32
+    - drm/etnaviv: Fix typo in comment
+    - drm/etnaviv: Update idle bits
+    - drm/etnaviv: Consider all kwnown idle bits in debugfs
+    - drm/etnaviv: Ignore MC when checking runtime suspend idleness
+    - drm/etnaviv: Warn when GPU doesn't idle fast enough
+    - drm/etnaviv: Replace zero-length array with flexible-array member
+    - drm/etnaviv: request pages from DMA32 zone when needed
+    - drm/etnaviv: remove check for return value of drm_debugfs_create_files()
+    - drm/etnaviv: remove _unlocked suffix in drm_gem_object_put_unlocked
+    - drm/etnaviv: Don't ignore errors on getting clocks
+    - drm/etnaviv: Make the "core" clock mandatory
+    - drm/etnaviv: Simplify clock enable/disable
+    - drm/etnaviv: fix external abort seen on GC600 rev 0x19
+    - drm/etnaviv: always start/stop scheduler in timeout processing
+    - drm/imx: plane_state->fb iff plane_state->crtc
+    - drm/imx: pd: Use bus format/flags provided by the bridge when available
+    - drm/imx: Remove the bogus possible_clones setup
+    - drm/imx: Use simple encoder
+    - drm/imx: Use __drm_atomic_helper_crtc_reset
+    - drm/imx: parallel-display: Adjust bus_flags handling
+    - drm/imx: drop useless best_encoder callback
+    - drm/imx: imx-ldb: remove useless enum
+    - drm/imx: parallel-display: move panel/bridge detection to fail early
+    - drm/imx: imx-tve: Delete an error message in imx_tve_bind()
+    - drm/imx: compile imx directory by default
+    - drm/imx: Add initial support for DCSS on iMX8MQ
+    - drm/imx/dcss: use drm_bridge_connector API
+    - MAINTAINERS: Add entry for i.MX 8MQ DCSS driver
+    - dt-bindings: display: imx: add bindings for DCSS
+    - drm/imx/dcss: fix compilation issue on 32bit
+    - drm/imx/dcss: fix unused but set variable warnings
+    - drm/imx: dw_hdmi-imx: use imx_drm_encoder_parse_of
+    - drm/imx: imx-ldb: reduce scope of edid_len
+    - drm/imx/dcss: fix rotations for Vivante tiled formats
+    - drm/imx/dcss: fix coccinelle warning
+    - drm/imx/dcss: allow using nearest neighbor interpolation scaling
+    - drm/imx: depend on COMMON_CLK to fix compile tests
+    - gpu: drm: imx: convert comma to semicolon
+    - media: imx: enable V4L2_PIX_FMT_XBGR32, _BGRX32, and _RGBX32
+    - media: staging: media: imx: Fix alignment to match open parenthesis
+    - media: staging: media: imx: Use devm_platform_ioremap_resource().
+    - media: imx: Move capture device init to registered
+    - media: imx: Move pads init to probe
+    - media: imx7-mipi-csis: make array 'registers' static const, makes object
+      smaller
+    - media: imx7-mipi-csis: remove subdev_notifier
+    - media: imx: Propagate quantization and encoding in CSI
+    - media: imx: imx7_mipi_csis: Print the RESOL_CH0 register
+    - media: imx: imx7_mipi_csis: Add greyscale formats support
+    - media: imx: imx7-mipi-csis: Filter on CSI-2 data type
+    - media: imx: imx7-media-csi: Remove unneeded register read
+    - media: imx: imx6-media-csi: Replace Y16 with Y10 and Y12
+    - media: imx: imx6-media-csi: Support clamping Y10 and Y12 to Y8
+    - media: imx: imx7-media-csi: Add Y10 and Y12 formats support
+    - media: imx: imx7-media-csi: Support clamping Y10 and Y12 to Y8
+    - staging: media: imx: remove temporary variable
+    - staging: media: imx: remove parentheses
+    - media: imx: imx7-mipi-csis: Centralize initialization of pad formats
+    - media: imx: imx7-mipi-csis: Add missing RAW formats
+    - media: imx: imx7-mipi-csis: Expose correct YUV formats
+    - media: imx: imx7-mipi-csis: Fix MEDIA_BUS_FMT_UYVY8_2X8 data alignment
+    - media: imx: imx7-mipi-csis: Add MEDIA_BUS_FMT_UYVY10_2X10 support
+    - media: imx: imx7-mipi-csis: Rename data_alignment field to width
+    - media: imx: imx7-mipi-csis: Align image width based on format
+    - media: imx: imx7-mipi-csis: Never set MIPI_CSIS_ISPCFG_ALIGN_32BIT
+    - media: imx: imx7-mipi-csis: Align macro definitions
+    - media: imx: imx7-mipi-csis: Remove link setup on source pad
+    - media: imx: imx7-mipi-csis: Cleanup includes
+    - media: imx: imx7-mipi-csis: Don't use imx-media-utils helpers
+    - media: imx: imx7-mipi-csis: Implement the .enum_mbus_code() operation
+    - media: imx: utils: fix and simplify pixel format enumeration
+    - media: imx: utils: fix media bus format enumeration
+    - media: imx: utils: Inline init_mbus_colorimetry() in its caller
+    - media: imx: utils: Handle Bayer format lookup through a selection flag
+    - media: imx: Fix some pixel format selections
+    - media: imx: utils: Rename pixel format selection enumeration
+    - media: imx: utils: Introduce PIXFMT_SEL_IPU
+    - media: imx: utils: Make imx_media_pixfmt handle variable number of codes
+    - media: imx: utils: Split find|enum_format into fourcc and mbus functions
+    - media: imx: utils: Rename format lookup and enumeration functions
+    - media: imx: utils: Constify some mbus and ipu_image arguments
+    - media: imx-media-csc-scaler: Use a shorter name for driver
+    - media: imx: utils: Default colorspace to SRGB
+    - media: staging: media: imx: no need to check return value of debugfs_create
+      functions
+    - media: imx: Parse information from firmware without using callbacks
+    - media: v4l2-mc: add v4l2_create_fwnode_links helpers
+    - media: v4l2: Correct kernel-doc inconsistency
+    - media: entity: Pass entity to get_fwnode_pad operation
+    - media: v4l2-subdev: add v4l2_subdev_get_fwnode_pad_1_to_1
+    - media: video-mux: Parse information from firmware without using callbacks
+    - media: video-mux: Implement get_fwnode_pad op
+    - media: video-mux: Create media links in bound notifier
+    - media: imx: csi: Implement get_fwnode_pad op
+    - media: imx: mipi csi-2: Implement get_fwnode_pad op
+    - media: imx: imx7-mipi-csis: Implement get_fwnode_pad op
+    - media: imx: imx7-media-csi: Implement get_fwnode_pad op
+    - media: imx: mipi csi-2: Create media links in bound notifier
+    - media: imx7: mipi csis: Create media links in bound notifier
+    - media: imx7: csi: Create media links in bound notifier
+    - media: imx: csi: Create media links in bound notifier
+    - media: imx7: csi: Remove imx7_csi_get_upstream_endpoint()
+    - media: imx5/6/7: csi: Mark a bound video mux as a CSI mux
+    - media: imx: csi: Lookup upstream endpoint with imx_media_get_pad_fwnode
+    - media: imx: Create missing links from CSI-2 receiver
+    - media: imx: silence a couple debug messages
+    - media: imx: TODO: Remove media link creation todos
+    - staging/media: Remove unneeded geometry restrictions from i.MX CSI driver
+    - media: staging: media: imx: Update TODO entry
+    - media: staging: media: imx: remove commented code
+    - media: staging: media: imx: remove unnecessary variable use
+    - media: staging/imx: Increase IMX_MEDIA_EOF_TIMEOUT
+    - media: staging: media: imx: Kconfig: support VIDEO_IMX7_CSI for imx8m
+    - media: imx: Clean capture unregister
+    - media: imx7: csi: Fix regression for parallel cameras on i.MX6UL
+    - media: imx7: csi: Fix pad link validation
+    - media: imx6-mipi-csi2: Call remote subdev get_mbus_config to get active
+      lanes
+    - thermal: imx_thermal: Use __maybe_unused instead of CONFIG_PM_SLEEP
+    - thermal: imx: Remove unused includes
+    - thermal: imx: Calling imx_thermal_unregister_legacy_cooling() in .remove
+    - stmmac: platform: add "snps, dwmac-5.10a" IP compatible string
+    - net: ethernet: dwmac: add ethernet glue logic for NXP imx8 chip
+    - net: ethernet: dwmac: Fix an error code in imx_dwmac_probe()
+    - arm64: dts: imx8mp: Correct the gpio ranges of gpio3
+    - clk: imx8mp: Remove the none exist pcie clocks
+    - clk: imx8mq: Correct the pcie1 sels
+    - arm64: dts: imx8mp: add eqos node and alias
+    - arm64: dts: imx8mp: add wdog2/3 nodes
+    - net: fec: remove redundant assignment to pointer bdp
+    - net: fec: Prevent unbind operation
+    - net: ethernet: fec: Replace interrupt driven MDIO with polled IO
+    - net: ethernet: fec: Allow configuration of MDIO bus speed
+    - net: ethernet: fec: Allow the MDIO preamble to be disabled
+    - net: ethernet: fec: Prevent MII event after MII_SPEED write
+    - Revert "net: ethernet: fec: Prevent MII event after MII_SPEED write"
+    - net: ethernet: fec: Revert "net: ethernet: fec: Replace interrupt driven
+      MDIO with polled IO"
+    - net: ethernet: fec: Replace interrupt driven MDIO with polled IO
+    - net: ethernet: fec: move GPR register offset and bit into DT
+    - net: fec: disable correct clk in the err path of fec_enet_clk_enable
+    - net: ethernet: fec: prevent tx starvation under high rx load
+    - net: fec: Set max MTU size to allow the MTU to be changed
+    - net: fec: enable to use PPS feature without time stamping
+    - net: fec: initialize clock with 0 rather than current kernel time
+    - net: fec: get rid of redundant code in fec_ptp_set()
+    - net: fec: replace snprintf() with strlcpy() in fec_ptp_init()
+    - net: ethernet: fec: remove redundant null check before
+      clk_disable_unprepare()
+    - net: fec: ptp: remove unused variable 'ns' in fec_time_keep()
+    - net: fec_mpc52xx: Replace in_interrupt() usage
+    - net: fec: Fix PHY init after phy_reset_after_clk_enable()
+    - net: fec: Fix phy_device lookup for phy_reset_after_clk_enable()
+    - net: fec: fix MDIO probing for some FEC hardware blocks
+    - net: fec: Fix reference count leak in fec series ops
+    - net: fec: put child node on error path
+    - net: fec: Fix temporary RMII clock reset on link up
+    - net: fec: Silence M5272 build warnings
+    - net: stmmac: dwc-qos: use generic device api
+    - net: stmmac: dwc-qos: avoid clk and reset for acpi device
+    - net: stmmac: Print more information in DebugFS DMA Capabilities file
+    - net: stmmac: Let TX and RX interrupts be independently enabled/disabled
+    - net: stmmac: Always use TX coalesce timer value when rescheduling
+    - net: stmmac: Add basic EST support for GMAC5+
+    - net: stmmac: Add basic EST support for XGMAC
+    - net: stmmac: Integrate EST with TAPRIO scheduler API
+    - net: stmmac: Add Frame Preemption support using TAPRIO API
+    - net: stmmac: gmac5+: Add support for Frame Preemption
+    - net: stmmac: xgmac3+: Add support for Frame Preemption
+    - net: stmmac: mmc: Add Frame Preemption counters on GMAC5+ cores
+    - net: stmmac: tc: Fix TAPRIO division operation
+    - net: stmmac: Do not accept invalid MTU values
+    - stmmac: debugfs entry name is not be changed when udev rename device name.
+    - net: stmmac: xgmac: Fix missing return
+    - net: stmmac: gmac5+: Fix missing return
+    - net: stmmac: modified pcs mode support for RGMII
+    - net: stmmac: fix incorrect GMAC_VLAN_TAG register writting in GMAC4+
+    - net: ethernet: stmmac: don't warn about missing optional wakeup IRQ
+    - net: stmmac: fix notifier registration
+    - net: stmmac: use readl_poll_timeout() function in init_systime()
+    - net: stmmac: use readl_poll_timeout() function in dwmac4_dma_reset()
+    - net: stmmac: dwmac_lib: remove unnecessary checks in dwmac_dma_reset()
+    - net: stmmac: Remove WAKE_MAGIC if HW shows no pmt_magic_frame
+    - net: stmmac: Move device_can_wakeup() check earlier in set_wol
+    - net: stmmac: only call pmt() during suspend/resume if HW enables PMT
+    - net: stmmac: Support WOL with phy
+    - net: stmmac: fix failed to suspend if phy based WOL is enabled
+    - net: stmmac: increase the timeout for dma reset
+    - net: stmmac: overwrite the dma_cap.addr64 according to HW design
+    - net: stmmac: fix taprio schedule configuration
+    - net: stmmac: fix taprio configuration when base_time is in the past
+    - extcon: ptn5150: Use generic "interrupts" property
+    - extcon: ptn5150: Simplify getting vbus-gpios with flags
+    - extcon: ptn5150: Lower the noisiness of probe
+    - extcon: ptn5150: Check current USB mode when probing
+    - extcon: ptn5150: Make 'vbus-gpios' optional
+    - extcon: ptn5150: Convert to module_i2c_driver
+    - extcon: ptn5150: Set the VBUS and POLARITY property capability
+    - extcon: ptn5150: Use defines for registers
+    - usb: dwc3: debugfs: do not queue work if try to change mode on non-drd
+    - usb: dwc3: add imx8mp dwc3 glue layer driver
+    - net: fec: add eee mode tx lpi support
+    - net: fec: change the default rx copybreak value to maximum
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Mon, 31 May 2021 18:02:41 +0800
+
+linux-imx (5.4.0-1000.1) focal; urgency=medium
+
+  * Initial focal/imx packaging
+
+ -- Shrirang Bagul <shrirang.bagul@canonical.com>  Fri, 16 Apr 2021 00:50:22 +0800
--- linux-ein-5.4.0.orig/debian/cloud-tools/hv_get_dhcp_info
+++ linux-ein-5.4.0/debian/cloud-tools/hv_get_dhcp_info
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# This example script retrieves the DHCP state of a given interface.
+# In the interest of keeping the KVP daemon code free of distro specific
+# information; the kvp daemon code invokes this external script to gather
+# DHCP setting for the specific interface.
+#
+# Input: Name of the interface
+#
+# Output: The script prints the string "Enabled" to stdout to indicate
+#	that DHCP is enabled on the interface. If DHCP is not enabled,
+#	the script prints the string "Disabled" to stdout.
+#
+# Each Distro is expected to implement this script in a distro specific
+# fashion. 
+
+#set -x
+
+IF_FILE="/etc/network/interfaces"
+NMCMD="nmcli"
+
+function checknetworkmanager {
+	#Assumes if $NMCMD exists, inteface exists and interface is not
+	#  in $IF_FILE then dhcp is being used by NM
+        if  hash $NMCMD >/dev/null 2>&1  ; then
+                if  $NMCMD  dev status |grep -q $1  ; then
+                        echo "Enabled"
+                else
+                        echo "Disabled"
+                fi
+        else
+                #Give up
+                echo "Disabled"
+        fi
+}
+
+if [ -z $1 ]  ; then echo "Disabled"; exit; fi
+
+if [ -e $IF_FILE ]; then
+	if grep -v -e "^#" $IF_FILE|grep -q $1 ; then
+		#interface exists so
+		if grep -q -e $1\.\*dhcp $IF_FILE; then 
+			echo "Enabled"; exit;
+		else
+			echo "Disabled"; exit;
+		fi
+	else
+		checknetworkmanager $1
+		exit
+	fi
+else
+	checknetworkmanager $1
+	exit
+fi
+
--- linux-ein-5.4.0.orig/debian/cloud-tools/hv_get_dns_info
+++ linux-ein-5.4.0/debian/cloud-tools/hv_get_dns_info
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# This example script parses /etc/resolv.conf to retrive DNS information.
+# In the interest of keeping the KVP daemon code free of distro specific
+# information; the kvp daemon code invokes this external script to gather
+# DNS information.
+# This script is expected to print the nameserver values to stdout.
+# Each Distro is expected to implement this script in a distro specific
+# fashion. For instance on Distros that ship with Network Manager enabled,
+# this script can be based on the Network Manager APIs for retrieving DNS
+# entries.
+
+cat /etc/resolv.conf 2>/dev/null | awk '/^nameserver/ { print $2 }'
--- linux-ein-5.4.0.orig/debian/cloud-tools/hv_set_ifconfig
+++ linux-ein-5.4.0/debian/cloud-tools/hv_set_ifconfig
@@ -0,0 +1,288 @@
+#!/usr/bin/python3
+#
+# hv_set_ifconfig <config> -- take the hv_kvp_daemon generated configuration
+#                             file and apply it to the Ubuntu configuration.
+#
+
+# CONFIG example:
+# HWADDR=11:22:33:44:55:66
+# DEVICE=foo1
+# DHCP=yes
+
+# CONFIG example:
+# HWADDR=11:22:33:44:55:66
+# DEVICE=foo1
+# IPADDR=192.168.99.10
+# GATEWAY=192.168.99.1
+# DNS1=192.168.88.250
+# IPADDR2=192.168.99.11
+# IPV6ADDR=2001:DB8:99::10
+# IPV6NETMASK=64
+# IPV6_DEFAULTGW=2001:DB8:99::10
+
+# set interfaces in hv_kvp_daemon style
+import fileinput
+import sys
+import errno
+import os
+import shutil
+import tempfile
+import subprocess
+
+if_filename="/etc/network/interfaces"
+
+# Drop our output (XXX?)
+sys.stdout = open(os.devnull, 'w')
+sys.stderr = open(os.devnull, 'w')
+
+# Confirm we can open the network configuration.
+try:
+    if_file=open(if_filename,"r+")
+except IOError as e:
+    exit(e.errno)
+else:
+    if_file.close()
+
+# Usage: hv_set_ifconfig <config>
+if len(sys.argv) != 2 :
+    exit(errno.EINVAL)
+
+#
+# Here is the format of the ip configuration file:
+#
+# HWADDR=macaddr
+# DEVICE=interface name
+# BOOTPROTO=<protocol> (where <protocol> is "dhcp" if DHCP is configured
+#                       or "none" if no boot-time protocol should be used)
+#
+# IPADDR0=ipaddr1
+# IPADDR1=ipaddr2
+# IPADDRx=ipaddry (where y = x + 1)
+#
+# NETMASK0=netmask1
+# NETMASKx=netmasky (where y = x + 1)
+#
+# GATEWAY=ipaddr1
+# GATEWAYx=ipaddry (where y = x + 1)
+#
+# DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)
+#
+# IPV6 addresses will be tagged as IPV6ADDR, IPV6 gateway will be
+# tagged as IPV6_DEFAULTGW and IPV6 NETMASK will be tagged as
+# IPV6NETMASK.
+#
+
+kvp=dict(line.strip().split("=") for line in fileinput.input())
+
+# Setting the hwaddress to something azure is not expecting is fatal
+# to networking.
+if not "HWADDR" in kvp :
+    exit(errno.EPROTO)
+
+# Confirm we have a device specified.
+if not "DEVICE" in kvp :
+    exit(1)
+
+autolist = []
+output=[]
+basename=kvp["DEVICE"]
+
+# DNS entries will go with the first interface and there can be a max
+# of three.  These will be emitted with the first interface.
+dns = []
+for count in (1, 2, 3):
+    key = "DNS" + str(count)
+    if key in kvp:
+        dns += [kvp[key]]
+dns_emitted = False
+
+# IPV4 may either be dhcp or static.
+if ("DHCP" in kvp and kvp["DHCP"] == "yes") or \
+   ("BOOTPROTO" in kvp and kvp["BOOTPROTO"] == "dhcp"):
+    autolist.append(basename)
+    output += ["iface " + basename  + " inet dhcp"]
+    output += [""]
+else:
+    # Matchup the interface specific lines
+
+    # No real max for the number of interface + aliases ...
+    # only required is the address (but mate everything up that comes in.
+
+    # IPv4 -- ensure we sort by numeric suffixes.
+    v4names = [ int(name[6:]) for name in kvp.keys() if name.startswith("IPADDR") ]
+    v4names.sort()
+
+    for if_count in v4names:
+        ifname = basename
+        which = str(if_count)
+
+        if if_count:
+            ifname += ":" + str(if_count)
+            which_gw = which
+        else:
+            which_gw = ""
+
+        if not ifname in autolist:
+            autolist += [ifname]
+
+        output += [ "iface " + ifname + " inet static" ]
+        output += [ "\t" + "address " + kvp["IPADDR" + which] ]
+        if "NETMASK" + which in kvp:
+            output += [ "\tnetmask " + kvp["NETMASK" + which] ]
+        if "GATEWAY" + which_gw in kvp:
+            output += ["\tgateway " + kvp["GATEWAY" + which_gw]]
+
+        if not dns_emitted:
+            dns_emitted = True
+            output += ["\tdns-nameservers " + ' '.join(dns)]
+        output += [""]
+
+# IPv6 requires a netmask
+# If an ipv6 exists, you'll want to turn off /proc/sys/net/ipv6/conf/all/autoconf with
+# echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
+v6names = [ int(name[8:]) for name in kvp.keys() if name.startswith("IPV6ADDR") ]
+v6names.sort()
+
+for if6_count in v6names:
+    ifname = basename
+    which = str(if6_count)
+
+    if if6_count:
+        ifname += ":" + str(if6_count)
+        which_gw = which
+    else:
+        which_gw = ""
+
+    if not ifname in autolist:
+        autolist += [ifname]
+
+    if "IPV6NETMASK" + which in kvp:
+        output += [ "iface " + ifname + " inet6 static"]
+        output += [ "\taddress " + kvp["IPV6ADDR" + which]]
+        output += [ "\tnetmask " + kvp["IPV6NETMASK" + which]]
+        if "IPV6_DEFAULTGW" + which_gw in kvp:
+            output += [ "\tgateway " + kvp["IPV6_DEFAULTGW" + which_gw] ]
+        if not dns_emitted:
+            dns_emitted = True
+            output += ["\tdns-nameservers " + ' '.join(dns)]
+        output += [""]
+
+# Mark this new interface for automatic up.
+if len(autolist):
+    output = ["auto "+" ".join(autolist)] + output
+
+print("===================================")
+print(output)
+print("===================================")
+
+
+# Time to clean out the existing interface file
+
+# Markers.
+start_mark = "# The following stanza(s) added by hv_set_ifconfig"
+end_mark = "#End of hv_set_ifconfig stanzas"
+
+f=open(if_filename,"r")
+flines=f.readlines()
+f.close()
+newfile=[]
+pitchstanza=0
+inastanza=0
+stanza=[]
+prev_line=None
+for line in flines:
+    if line.startswith("auto"):
+        if inastanza:
+            if not pitchstanza:
+                newfile.extend(stanza)
+            stanza=[]
+        inastanza=0
+        newline=""
+        autoline=line.strip().split(" ")
+        for word in autoline:
+            if (not word == basename) and (not word.startswith(basename+":")):
+                newline+=word + " "
+        newline = newline.strip()
+        if not newline == "auto":
+            newfile += [newline.strip()]
+    elif line.startswith(("iface","mapping","source")):
+        '''Read a stanza'''
+        '''A Stanza can also start with allow- ie allow-hotplug'''
+        if inastanza:
+            if not pitchstanza:
+                newfile.extend(stanza)
+            stanza=[]
+        inastanza=1
+        pitchstanza=0
+        autoline=line.strip().split(" ")
+        for word in autoline:
+            if (word == basename) or (word.startswith(basename+":")):
+                pitchstanza=1
+        if not pitchstanza:
+            stanza+=[line.strip()]
+    elif line.strip() in (start_mark, end_mark):
+        if inastanza:
+            if not pitchstanza:
+                newfile.extend(stanza)
+            stanza=[]
+        inastanza = 0
+        pitchstanza = 0
+        # Deduplicate markers.
+        if line != prev_line:
+            newfile += [line.strip()]
+    else:
+        if inastanza:
+            if not pitchstanza:
+                stanza+=[line.strip()]
+        else:
+            if not pitchstanza:
+                newfile += [line.strip()]
+    prev_line=line
+
+# Include pending stanza if any.
+if inastanza and not pitchstanza:
+    newfile.extend(stanza)
+
+
+def emit(line):
+    print(line)
+    output = line + "\n"
+    os.write(fd, output.encode('utf-8'))
+
+# Insert the new output at the end and inside the existing markers if found.
+emitted = False
+fd, path = tempfile.mkstemp()
+for line in newfile:
+    if line == end_mark:
+        emit("\n".join(output))
+        emitted = True
+    emit(line)
+if not emitted:
+    emit(start_mark)
+    emit("\n".join(output))
+    emit(end_mark)
+os.close(fd)
+
+shutil.copy(path,if_filename)
+os.chmod(if_filename,0o644)
+
+#print("TMPFILE is at: " + path)
+#print("Copied file is at: " + if_filename)
+
+try:
+    retcode = subprocess.call("ifdown "+basename , shell=True)
+    if retcode < 0:
+        print("Child was terminated by signal", -retcode, file=sys.stderr)
+    else:
+        print("Child returned", retcode, file=sys.stderr)
+except OSError as e:
+    print("Execution failed:", e, file=sys.stderr)
+
+try:
+    retcode = subprocess.call("ifup "+basename , shell=True)
+    if retcode < 0:
+        print("Child was terminated by signal", -retcode, file=sys.stderr)
+    else:
+        print("Child returned", retcode, file=sys.stderr)
+except OSError as e:
+    print("Execution failed:", e, file=sys.stderr)
--- linux-ein-5.4.0.orig/debian/commit-templates/bumpabi
+++ linux-ein-5.4.0/debian/commit-templates/bumpabi
@@ -0,0 +1,3 @@
+UBUNTU: Bump ABI
+
+Ignore: yes
--- linux-ein-5.4.0.orig/debian/commit-templates/config-updates
+++ linux-ein-5.4.0/debian/commit-templates/config-updates
@@ -0,0 +1,15 @@
+#
+# This template is used for commit messages that don't need to
+# show up in debian/changelog. Administrative stuff like config
+# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents
+# 'debian/rules insertchanges' from inserting this commit meesage
+# as a changelog entry.
+#
+# Please give a one-line description of the config change followed
+# by a detailed explanation if necessary
+
+UBUNTU: [Config] XXXX
+
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-ein-5.4.0.orig/debian/commit-templates/external-driver
+++ linux-ein-5.4.0/debian/commit-templates/external-driver
@@ -0,0 +1,20 @@
+# Ubuntu external driver commit.
+#
+# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and
+# debian/changelog.
+#
+# This is only needed when a driver is added, updated or removed. It is
+# not needed when patches or fixes are applied to the driver. If the
+# driver is being removed, add the line:
+#
+# Removing: yes
+#
+# to the commit, and you can remove all other tags (except UBUNTU:).
+#
+UBUNTU: 
+
+ExternalDriver: 
+Description:
+Url:
+Mask:
+Version:
--- linux-ein-5.4.0.orig/debian/commit-templates/missing-modules
+++ linux-ein-5.4.0/debian/commit-templates/missing-modules
@@ -0,0 +1,3 @@
+UBUNTU: build/modules: Add modules that have intentionally gone missing
+
+Ignore: yes
--- linux-ein-5.4.0.orig/debian/commit-templates/newrelease
+++ linux-ein-5.4.0/debian/commit-templates/newrelease
@@ -0,0 +1,3 @@
+UBUNTU: Start new release
+
+Ignore: yes
--- linux-ein-5.4.0.orig/debian/commit-templates/sauce-patch
+++ linux-ein-5.4.0/debian/commit-templates/sauce-patch
@@ -0,0 +1,40 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+#
+# SAUCE refers to the fact that this patch might not go upstream, but we need to
+# carry it to successive releases. In most cases you DONOT want to use this
+# template. 
+#
+# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been
+# refused upstream, but still provides useful functionality to users with broken
+# BIOSes.
+#
+#-------------------------------------------------------------------------
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: SAUCE: 
+
+<Why is this patch not going upstream?>
+
+# OriginalAuthor: 
+# OriginalLocation: 
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-ein-5.4.0.orig/debian/commit-templates/upstream-patch
+++ linux-ein-5.4.0/debian/commit-templates/upstream-patch
@@ -0,0 +1,27 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: [Upstream]
+
+# OriginalAuthor: 
+# OriginalLocation: 
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-ein-5.4.0.orig/debian/compat
+++ linux-ein-5.4.0/debian/compat
@@ -0,0 +1 @@
+9
--- linux-ein-5.4.0.orig/debian/control
+++ linux-ein-5.4.0/debian/control
@@ -0,0 +1,181 @@
+Source: linux-ein
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+XSC-Ubuntu-Compatible-Signing: ubuntu/4 pro/3
+Standards-Version: 3.9.4.0
+Build-Depends:
+ debhelper (>= 9),
+ dh-systemd,
+ cpio,
+ kernel-wedge,
+ kmod <!stage1>,
+ libcap-dev <!stage1>,
+ makedumpfile [amd64] <!stage1>,
+ libelf-dev <!stage1>,
+ libnewt-dev <!stage1>,
+ libiberty-dev <!stage1>,
+ rsync <!stage1>,
+ libdw-dev <!stage1>,
+ libpci-dev <!stage1>,
+ pkg-config <!stage1>,
+ flex <!stage1>,
+ bison <!stage1>,
+ libunwind8-dev [amd64 arm64 armhf ppc64el] <!stage1>,
+ openssl <!stage1>,
+ libssl-dev <!stage1>,
+ libaudit-dev <!stage1>,
+ bc <!stage1>,
+ gawk <!stage1>,
+ device-tree-compiler [powerpc] <!stage1>,
+ u-boot-tools [powerpc] <!stage1>,
+ libc6-dev-ppc64 [powerpc] <!stage1>,
+ libudev-dev <!stage1>,
+ autoconf <!stage1>,
+ automake <!stage1>,
+ libtool <!stage1>,
+ uuid-dev <!stage1>,
+ dkms <!stage1>,
+ curl <!stage1>,
+ dwarves <!stage1>,
+Build-Depends-Indep:
+ xmlto <!stage1>,
+ docbook-utils <!stage1>,
+ ghostscript <!stage1>,
+ fig2dev <!stage1>,
+ bzip2 <!stage1>,
+ sharutils <!stage1>,
+ asciidoc <!stage1>,
+ python3-sphinx <!stage1>,
+ python3-sphinx-rtd-theme <!stage1>,
+ python3-docutils <!stage1>,
+Vcs-Git: git://git.launchpad.net/~canonical-hwe-imx/ubuntu/+source/linux-imx/+git/focal
+Vcs-Browser: https://git.launchpad.net/~canonical-hwe-imx/ubuntu/+source/linux-imx/+git/focal/log/
+XS-Testsuite: autopkgtest
+#XS-Testsuite-Depends: gcc-4.7 binutils
+
+Package: linux-ein-headers-5.4.0-1046
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Multi-Arch: foreign
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils
+Description: Header files related to Linux kernel version 5.4.0
+ This package provides kernel header files for version 5.4.0, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/linux-ein-headers-5.4.0-1046/debian.README.gz for details
+
+Package: linux-ein-tools-5.4.0-1046
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel version specific tools for version 5.4.0-1046
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version 5.4.0-1046 on
+ .
+ You probably want to install linux-tools-5.4.0-1046-<flavour>.
+
+
+
+Package: linux-image-5.4.0-1046-ein
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: kernel
+Priority: optional
+Provides: linux-image, fuse-module, aufs-dkms, kvm-api-4, redhat-cluster-modules, ivtv-modules, ${linux:rprovides}
+Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.4.0-1046-ein
+Recommends: grub-pc [amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [amd64 x32] | grub [amd64 x32] | lilo (>= 19.1) [amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el], initramfs-tools | linux-initramfs-tool
+Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
+Conflicts: linux-image-unsigned-5.4.0-1046-ein
+Suggests: fdutils, linux-ein-doc-5.4.0 | linux-ein-source-5.4.0, linux-ein-tools, linux-headers-5.4.0-1046-ein
+Description: Linux kernel image for version 5.4.0 on  SMP
+ This package contains the Linux kernel image for version 5.4.0 on
+  SMP.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-ein meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-5.4.0-1046-ein
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, crda
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel extra modules for version 5.4.0 on  SMP
+ Contains the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-ein meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-5.4.0-1046-ein
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-ein-headers-5.4.0-1046, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 5.4.0 on  SMP
+ This package provides kernel header files for version 5.4.0 on
+  SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-5.4.0-1046/debian.README.gz for details.
+
+Package: linux-image-5.4.0-1046-ein-dbgsym
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version 5.4.0 on  SMP
+ This package provides the kernel debug image for version 5.4.0 on
+  SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-tools-5.4.0-1046-ein
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-ein-tools-5.4.0-1046
+Description: Linux kernel version specific tools for version 5.4.0-1046
+ This package provides the architecture dependant parts for kernel
+ version locked tools (such as perf and x86_energy_perf_policy) for
+ version 5.4.0-1046 on
+ .
+
+Package: linux-buildinfo-5.4.0-1046-ein
+Build-Profiles: <!stage1>
+Architecture: armhf arm64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel buildinfo for version 5.4.0 on  SMP
+ This package contains the Linux kernel buildinfo for version 5.4.0 on
+  SMP.
+ .
+ You likely do not want to install this package.
--- linux-ein-5.4.0.orig/debian/control.d/flavour-buildinfo.stub
+++ linux-ein-5.4.0/debian/control.d/flavour-buildinfo.stub
@@ -0,0 +1,13 @@
+
+Package: linux-buildinfo-PKGVER-ABINUM-FLAVOUR
+Build-Profiles: <!stage1>
+Architecture: ARCH
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Built-Using: ${linux:BuiltUsing}
+Description: Linux kernel buildinfo for version PKGVER on DESC
+ This package contains the Linux kernel buildinfo for version PKGVER on
+ DESC.
+ .
+ You likely do not want to install this package.
--- linux-ein-5.4.0.orig/debian/copyright
+++ linux-ein-5.4.0/debian/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-ein-5.4.0.orig/debian/debian.env
+++ linux-ein-5.4.0/debian/debian.env
@@ -0,0 +1 @@
+DEBIAN=debian.ein
--- linux-ein-5.4.0.orig/debian/dkms-versions
+++ linux-ein-5.4.0/debian/dkms-versions
@@ -0,0 +1,3 @@
+zfs-linux 0.8.3-1ubuntu12.16
+virtualbox 6.1.38-dfsg-3~ubuntu1.20.04.1
+wireguard-linux-compat 1.0.20201112-1~20.04.1
--- linux-ein-5.4.0.orig/debian/docs/README.inclusion-list
+++ linux-ein-5.4.0/debian/docs/README.inclusion-list
@@ -0,0 +1,51 @@
+This README describes the reason for, and the use of, module
+inclusion lists.
+
+The original Hardy release had the notion of sub-flavours,
+e.g., a flavour that was constructed as a subset of an existing flavour.
+For example, the virtual flavour was extracted from the server flavour using
+a subset of the server flavour modules. However, there were some difficult
+mainteneance issues with regard to packaging, make rules, and scripts. This
+re-implementation of the sub-flavours philosophy is hopefully simpler,
+and retrofitable to all releases.
+
+A module inclusion list looks at the problem of of constructing a package
+from the perspective of what modules do we _want_ in the package, as opposed
+to what modules we _don't_ want. As the kernel matures, more and more devices are added
+which makes the problem of configuration maintenance a real pain in the ass.
+If we took the approach of disabling all of the config options that we don't want,
+then the differences between flavours will quickly become quite large, making
+it difficult to quickly compare the individual flavour configs.  Each time a
+new config option is added then we also have to make a decision about disabling in
+order to continue to keep the minimal number of modules.
+
+A module inclusion list is applied on a per-flavour basis. For example,
+debian.<BRANCH>/control.d/${flavour}.inclusion-list. For example, the
+config for virtual is very close to server and generic, but the inclusion list
+causes the virtual package to be constructed with _only_ the modules described 
+in the inclusion list.
+
+The inclusion list format is a simple bash regular expression list of files. For example,
+
+arch/*/{crypto,kernel,oprofile}
+drivers/acpi/*
+drivers/ata/ahci.ko
+
+These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'.
+See debian/scripts/module-inclusion for details.
+
+There are 2 log files created as a side effect of the application of the module
+inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log.
+
+$(flavour).inclusion-list.log : This log is created while the inclusion list
+modules are being copied. If any are missing, then those warnings go in this log.
+While its not considered a fatal error, you should endevour to correct your inclusion
+list such that there are no missing modules.
+
+$(flavour).depmod.log : The log is created as a result of running depmod on the
+resulting set of modules. If there are missing symbols then you'll find that information
+here. Again, you should modify your inclusion list such that there are no missing
+symbols.
+
+Tim Gardner <tim.gardner@canonical.com>
+June 2, 2010
--- linux-ein-5.4.0.orig/debian/gbp.conf
+++ linux-ein-5.4.0/debian/gbp.conf
@@ -0,0 +1,2 @@
+[buildpackage]
+debian-tag = Ubuntu-ein-%(version)s
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.service
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.service
@@ -0,0 +1,14 @@
+# On Azure/Hyper-V systems start the hv_fcopy_daemon
+#
+# author "Andy Whitcroft <apw@canonical.com>"
+[Unit]
+Description=Hyper-V File Copy Protocol Daemon
+ConditionVirtualization=microsoft
+ConditionPathExists=/dev/vmbus/hv_fcopy
+BindsTo=sys-devices-virtual-misc-vmbus\x21hv_fcopy.device
+
+[Service]
+ExecStart=/usr/sbin/hv_fcopy_daemon -n
+
+[Install]
+WantedBy=multi-user.target
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.udev
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.udev
@@ -0,0 +1 @@
+SUBSYSTEM=="misc", KERNEL=="vmbus/hv_fcopy", TAG+="systemd", ENV{SYSTEMD_WANTS}+="hv-fcopy-daemon.service"
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart
@@ -0,0 +1,22 @@
+# On Azure/Hyper-V systems start the hv_fcopy_daemon
+#
+description "Hyper-V File Copy Protocol Daemon"
+author "Andy Whitcroft <apw@canonical.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+console log
+
+pre-start script
+        if [ -e "/etc/default/hv-kvp-daemon-init" ]; then
+                . /etc/default/hv-kvp-daemon-init
+        fi
+        [ "$RUN_FCOPY_DAEMON" -eq 0 ] && { stop; exit 0; }
+	if [ -d /sys/class/dmi/id/. ]; then
+		read company </sys/class/dmi/id/sys_vendor
+		read product </sys/class/dmi/id/product_name
+		[ "$company:$product" = 'Microsoft Corporation:Virtual Machine' ] || { stop; exit 0; }
+	fi
+end script
+
+exec /usr/sbin/hv_fcopy_daemon -n
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.service
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-kvp-daemon.service
@@ -0,0 +1,20 @@
+# On Azure/Hyper-V systems start the hv_kvp_daemon
+#
+# author "Andy Whitcroft <apw@canonical.com>"
+[Unit]
+Description=Hyper-V KVP Protocol Daemon
+ConditionVirtualization=microsoft
+ConditionKernelCommandLine=!snapd_recovery_mode
+DefaultDependencies=no
+BindsTo=sys-devices-virtual-misc-vmbus\x21hv_kvp.device
+After=sys-devices-virtual-misc-vmbus\x21hv_kvp.device systemd-remount-fs.service
+Before=shutdown.target cloud-init-local.service walinuxagent.service
+Conflicts=shutdown.target
+RequiresMountsFor=/var/lib/hyperv
+ConditionPathExists=/dev/vmbus/hv_kvp
+
+[Service]
+ExecStart=/usr/sbin/hv_kvp_daemon -n
+
+[Install]
+WantedBy=multi-user.target
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.udev
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-kvp-daemon.udev
@@ -0,0 +1 @@
+SUBSYSTEM=="misc", KERNEL=="vmbus/hv_kvp", TAG+="systemd", ENV{SYSTEMD_WANTS}+="hv-kvp-daemon.service"
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.upstart
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-kvp-daemon.upstart
@@ -0,0 +1,22 @@
+# On Azure/Hyper-V systems start the hv_kvp_daemon
+#
+description "Hyper-V KVP Protocol Daemon"
+author "Adam Conrad <adconrad@canonical.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+console log
+
+pre-start script
+        if [ -e "/etc/default/hv-kvp-daemon-init" ]; then
+                . /etc/default/hv-kvp-daemon-init
+        fi
+        [ "$RUN_KVP_DAEMON" = 0 ] && { stop; exit 0; }
+	if [ -d /sys/class/dmi/id/. ]; then
+		read company </sys/class/dmi/id/sys_vendor
+		read product </sys/class/dmi/id/product_name
+		[ "$company:$product" = 'Microsoft Corporation:Virtual Machine' ] || { stop; exit 0; }
+	fi
+end script
+
+exec /usr/sbin/hv_kvp_daemon -n
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.service
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-vss-daemon.service
@@ -0,0 +1,14 @@
+# On Azure/Hyper-V systems start the hv_vss_daemon
+#
+# author "Andy Whitcroft <apw@canonical.com>"
+[Unit]
+Description=Hyper-V VSS Protocol Daemon
+ConditionVirtualization=microsoft
+ConditionPathExists=/dev/vmbus/hv_vss
+BindsTo=sys-devices-virtual-misc-vmbus\x21hv_vss.device
+
+[Service]
+ExecStart=/usr/sbin/hv_vss_daemon -n
+
+[Install]
+WantedBy=multi-user.target
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.udev
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-vss-daemon.udev
@@ -0,0 +1 @@
+SUBSYSTEM=="misc", KERNEL=="vmbus/hv_vss", TAG+="systemd", ENV{SYSTEMD_WANTS}+="hv-vss-daemon.service"
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.upstart
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.hv-vss-daemon.upstart
@@ -0,0 +1,22 @@
+# On Azure/Hyper-V systems start the hv_vss_daemon
+#
+description "Hyper-V VSS Protocol Daemon"
+author "Ben Howard <ben.howard@canonical.com>"
+
+start on runlevel [2345]
+stop on runlevel [!2345]
+console log
+
+pre-start script
+        if [ -e "/etc/default/hv-kvp-daemon-init" ]; then
+                . /etc/default/hv-kvp-daemon-init
+        fi
+        [ "$RUN_VSS_DAEMON" -eq 0 ] && { stop; exit 0; }
+	if [ -d /sys/class/dmi/id/. ]; then
+		read company </sys/class/dmi/id/sys_vendor
+		read product </sys/class/dmi/id/product_name
+		[ "$company:$product" = 'Microsoft Corporation:Virtual Machine' ] || { stop; exit 0; }
+	fi
+end script
+
+exec /usr/sbin/hv_vss_daemon -n
--- linux-ein-5.4.0.orig/debian/linux-cloud-tools-common.intel-sgx-load-module.service
+++ linux-ein-5.4.0/debian/linux-cloud-tools-common.intel-sgx-load-module.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Install SGX kernel module
+DefaultDependencies=false
+ConditionVirtualization=microsoft
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStart=/sbin/modprobe intel_sgx
+ExecStop=/sbin/modprobe -r intel_sgx
+
+[Install]
+WantedBy=multi-user.target
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2012-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2012-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1 (0x1)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Apr 12 11:39:08 2012 GMT
+            Not After : Apr 11 11:39:08 2042 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c9:5f:9b:62:8f:0b:b0:64:82:ac:be:c9:e2:62:
+                    e3:4b:d2:9f:1e:8a:d5:61:1a:2b:5d:38:f4:b7:ce:
+                    b9:9a:b8:43:b8:43:97:77:ab:4f:7f:0c:70:46:0b:
+                    fc:7f:6d:c6:6d:ea:80:5e:01:d2:b7:66:1e:87:de:
+                    0d:6d:d0:41:97:a8:a5:af:0c:63:4f:f7:7c:c2:52:
+                    cc:a0:31:a9:bb:89:5d:99:1e:46:6f:55:73:b9:76:
+                    69:ec:d7:c1:fc:21:d6:c6:07:e7:4f:bd:22:de:e4:
+                    a8:5b:2d:db:95:34:19:97:d6:28:4b:21:4c:ca:bb:
+                    1d:79:a6:17:7f:5a:f9:67:e6:5c:78:45:3d:10:6d:
+                    b0:17:59:26:11:c5:57:e3:7f:4e:82:ba:f6:2c:4e:
+                    c8:37:4d:ff:85:15:84:47:e0:ed:3b:7c:7f:bc:af:
+                    e9:01:05:a7:0c:6f:c3:e9:8d:a3:ce:be:a6:e3:cd:
+                    3c:b5:58:2c:9e:c2:03:1c:60:22:37:39:ff:41:02:
+                    c1:29:a4:65:51:ff:33:34:aa:42:15:f9:95:78:fc:
+                    2d:f5:da:8a:85:7c:82:9d:fb:37:2c:6b:a5:a8:df:
+                    7c:55:0b:80:2e:3c:b0:63:e1:cd:38:48:89:e8:14:
+                    06:0b:82:bc:fd:d4:07:68:1b:0f:3e:d9:15:dd:94:
+                    11:1b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                61:48:2A:A2:83:0D:0A:B2:AD:5A:F1:0B:72:50:DA:90:33:DD:CE:F0
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        8f:8a:a1:06:1f:29:b7:0a:4a:d5:c5:fd:81:ab:25:ea:c0:7d:
+        e2:fc:6a:96:a0:79:93:67:ee:05:0e:25:12:25:e4:5a:f6:aa:
+        1a:f1:12:f3:05:8d:87:5e:f1:5a:5c:cb:8d:23:73:65:1d:15:
+        b9:de:22:6b:d6:49:67:c9:a3:c6:d7:62:4e:5c:b5:f9:03:83:
+        40:81:dc:87:9c:3c:3f:1c:0d:51:9f:94:65:0a:84:48:67:e4:
+        a2:f8:a6:4a:f0:e7:cd:cd:bd:94:e3:09:d2:5d:2d:16:1b:05:
+        15:0b:cb:44:b4:3e:61:42:22:c4:2a:5c:4e:c5:1d:a3:e2:e0:
+        52:b2:eb:f4:8b:2b:dc:38:39:5d:fb:88:a1:56:65:5f:2b:4f:
+        26:ff:06:78:10:12:eb:8c:5d:32:e3:c6:45:af:25:9b:a0:ff:
+        8e:ef:47:09:a3:e9:8b:37:92:92:69:76:7e:34:3b:92:05:67:
+        4e:b0:25:ed:bc:5e:5f:8f:b4:d6:ca:40:ff:e4:e2:31:23:0c:
+        85:25:ae:0c:55:01:ec:e5:47:5e:df:5b:bc:14:33:e3:c6:f5:
+        18:b6:d9:f7:dd:b3:b4:a1:31:d3:5a:5c:5d:7d:3e:bf:0a:e4:
+        e4:e8:b4:59:7d:3b:b4:8c:a3:1b:b5:20:a3:b9:3e:84:6f:8c:
+        21:00:c3:39
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIBATANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMjA0MTIxMTM5MDhaFw00MjA0MTEx
+MTM5MDhaMH8xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEXMBUG
+A1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MSswKQYD
+VQQDDCJDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyV+bYo8LsGSCrL7J4mLjS9KfHorVYRor
+XTj0t865mrhDuEOXd6tPfwxwRgv8f23GbeqAXgHSt2Yeh94NbdBBl6ilrwxjT/d8
+wlLMoDGpu4ldmR5Gb1VzuXZp7NfB/CHWxgfnT70i3uSoWy3blTQZl9YoSyFMyrsd
+eaYXf1r5Z+ZceEU9EG2wF1kmEcVX439Ogrr2LE7IN03/hRWER+DtO3x/vK/pAQWn
+DG/D6Y2jzr6m4808tVgsnsIDHGAiNzn/QQLBKaRlUf8zNKpCFfmVePwt9dqKhXyC
+nfs3LGulqN98VQuALjywY+HNOEiJ6BQGC4K8/dQHaBsPPtkV3ZQRGwIDAQABo4Gg
+MIGdMAwGA1UdEwEB/wQCMAAwHwYDVR0lBBgwFgYIKwYBBQUHAwMGCisGAQQBgjcK
+AwYwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl
+MB0GA1UdDgQWBBRhSCqigw0Ksq1a8QtyUNqQM93O8DAfBgNVHSMEGDAWgBStkZkL
+wiqx9RcEjCO2ZVomjjRaYzANBgkqhkiG9w0BAQsFAAOCAQEAj4qhBh8ptwpK1cX9
+gasl6sB94vxqlqB5k2fuBQ4lEiXkWvaqGvES8wWNh17xWlzLjSNzZR0Vud4ia9ZJ
+Z8mjxtdiTly1+QODQIHch5w8PxwNUZ+UZQqESGfkovimSvDnzc29lOMJ0l0tFhsF
+FQvLRLQ+YUIixCpcTsUdo+LgUrLr9Isr3Dg5XfuIoVZlXytPJv8GeBAS64xdMuPG
+Ra8lm6D/ju9HCaPpizeSkml2fjQ7kgVnTrAl7bxeX4+01spA/+TiMSMMhSWuDFUB
+7OVHXt9bvBQz48b1GLbZ992ztKEx01pcXX0+vwrk5Oi0WX07tIyjG7Ugo7k+hG+M
+IQDDOQ==
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2017-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2017-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 26 21:52:11 2017 GMT
+            Not After : Sep 25 21:52:11 2047 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2017)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ef:9f:fa:9f:19:3a:9d:38:23:91:cc:c4:f9:42:
+                    e0:f8:54:12:82:dc:97:2c:d6:5b:c1:35:eb:ff:4a:
+                    74:06:b5:9d:32:aa:7b:f3:fc:31:5a:34:3e:a1:a4:
+                    44:db:7b:6d:16:af:35:76:e0:9b:99:ad:21:11:c6:
+                    12:4b:ae:24:8f:bb:d3:b2:00:fe:c5:1d:9b:3a:1a:
+                    4a:6c:ca:fa:16:37:85:22:f9:ff:22:fc:40:e0:58:
+                    35:c1:39:27:b4:c6:42:1a:96:d8:a5:c5:95:2e:f7:
+                    c5:1e:21:6e:36:84:f7:a9:a1:e1:f1:03:08:96:65:
+                    71:f8:eb:83:cf:82:f7:9a:44:58:72:00:14:39:29:
+                    4b:e9:78:2f:65:20:b3:80:76:3b:ba:0d:2d:46:f6:
+                    37:05:e7:05:fe:bd:6c:c7:a2:65:b5:06:6e:07:24:
+                    99:a1:c1:cf:e1:0e:5e:49:41:71:17:a8:50:e7:38:
+                    99:e5:6e:b6:db:9f:63:db:56:f4:9c:7d:89:f6:d2:
+                    03:6c:99:83:e0:99:23:39:36:bd:cb:b5:26:7c:7d:
+                    b0:c6:fe:82:7c:52:ed:f9:2c:8f:79:71:3d:a9:2f:
+                    b5:aa:7e:77:a0:fd:69:f9:97:10:a8:b2:c6:7d:88:
+                    9e:a2:19:bd:31:b8:02:2d:34:4d:9d:98:60:82:ad:
+                    04:ff
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                24:2A:DE:75:AC:4A:15:E5:0D:50:C8:4B:0D:45:FF:3E:AE:70:7A:03
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        00:b2:b7:57:b5:2b:5d:16:d3:04:88:6a:d7:77:d5:0d:89:f1:
+        d2:6e:11:d1:8e:f5:62:05:c4:6a:57:df:eb:d2:86:68:f2:fd:
+        a7:37:11:3c:f4:ce:5d:fe:32:5f:31:a2:6b:3a:da:28:c2:88:
+        fa:7f:70:b5:25:99:ea:27:9a:56:6a:9d:b2:0f:14:99:e2:b7:
+        c6:39:1e:8e:a7:76:31:d9:ed:c5:05:8d:48:ae:1b:68:18:14:
+        51:a1:7d:f6:c7:df:cb:9d:eb:a4:3b:0b:ff:c2:07:c5:42:bc:
+        0d:b2:11:fa:37:17:2b:1c:b5:84:48:2d:f9:31:4a:57:49:8e:
+        61:a6:82:11:06:4c:34:ea:9c:2a:47:4d:eb:e0:26:af:da:d2:
+        c2:08:a0:37:35:7b:73:71:de:0b:c4:ba:c8:34:de:20:04:03:
+        6f:46:26:0d:b9:91:02:5b:71:76:cc:45:e4:08:d0:a6:dd:a4:
+        50:d3:d9:04:91:2b:d9:5c:34:88:fc:c2:37:fd:c6:d4:3e:57:
+        f7:6b:ba:7b:d7:02:7a:84:0c:c8:c1:19:cc:bc:fa:52:d5:7f:
+        b3:35:c4:53:5d:70:0a:f6:44:60:8d:a9:11:7a:1b:7d:ae:7b:
+        20:5a:4c:8d:44:f6:c1:a9:61:cb:dc:cb:90:37:d5:28:24:73:
+        87:d0:e0:d8
+-----BEGIN CERTIFICATE-----
+MIIEKDCCAxCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xNzA5MjYyMTUyMTFaFw00NzA5MjUy
+MTUyMTFaMIGGMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV
+BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDEyMDAG
+A1UEAwwpQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoMjAxNykw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvn/qfGTqdOCORzMT5QuD4
+VBKC3Jcs1lvBNev/SnQGtZ0yqnvz/DFaND6hpETbe20WrzV24JuZrSERxhJLriSP
+u9OyAP7FHZs6GkpsyvoWN4Ui+f8i/EDgWDXBOSe0xkIaltilxZUu98UeIW42hPep
+oeHxAwiWZXH464PPgveaRFhyABQ5KUvpeC9lILOAdju6DS1G9jcF5wX+vWzHomW1
+Bm4HJJmhwc/hDl5JQXEXqFDnOJnlbrbbn2PbVvScfYn20gNsmYPgmSM5Nr3LtSZ8
+fbDG/oJ8Uu35LI95cT2pL7Wqfneg/Wn5lxCossZ9iJ6iGb0xuAItNE2dmGCCrQT/
+AgMBAAGjgaAwgZ0wDAYDVR0TAQH/BAIwADAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
+KwYBBAGCNwoDBjAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
+dGlmaWNhdGUwHQYDVR0OBBYEFCQq3nWsShXlDVDISw1F/z6ucHoDMB8GA1UdIwQY
+MBaAFK2RmQvCKrH1FwSMI7ZlWiaONFpjMA0GCSqGSIb3DQEBCwUAA4IBAQAAsrdX
+tStdFtMEiGrXd9UNifHSbhHRjvViBcRqV9/r0oZo8v2nNxE89M5d/jJfMaJrOtoo
+woj6f3C1JZnqJ5pWap2yDxSZ4rfGOR6Op3Yx2e3FBY1IrhtoGBRRoX32x9/Lneuk
+Owv/wgfFQrwNshH6NxcrHLWESC35MUpXSY5hpoIRBkw06pwqR03r4Cav2tLCCKA3
+NXtzcd4LxLrINN4gBANvRiYNuZECW3F2zEXkCNCm3aRQ09kEkSvZXDSI/MI3/cbU
+Plf3a7p71wJ6hAzIwRnMvPpS1X+zNcRTXXAK9kRgjakReht9rnsgWkyNRPbBqWHL
+3MuQN9UoJHOH0ODY
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2018-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2018-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 3 (0x3)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Oct 26 18:31:14 2018 GMT
+            Not After : Oct 24 18:31:14 2048 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (ESM 2018)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bf:6a:e5:6d:55:7a:ec:7a:11:37:45:9c:4c:8f:
+                    6b:2d:56:d3:74:2b:32:ac:84:2d:ba:cb:cc:ec:8d:
+                    92:22:69:48:a5:d4:f6:75:11:66:2f:cb:b2:fd:9e:
+                    56:ab:e6:f1:52:8e:75:3e:50:bd:25:b3:50:fc:ef:
+                    3d:76:f3:3f:7f:03:f6:e2:a1:25:69:5c:14:98:54:
+                    bd:11:bf:e9:a5:ac:46:91:4b:1d:de:b7:18:2b:c8:
+                    22:83:15:a7:4a:00:8d:9d:e4:c0:da:f7:41:02:fd:
+                    9f:5f:79:93:56:cc:86:e1:b5:e0:39:0e:3c:a2:5b:
+                    fe:c0:56:f0:92:50:5a:2b:67:67:93:56:d7:7a:75:
+                    99:6a:25:b4:63:a8:5f:69:7e:3a:49:58:2a:a7:80:
+                    f6:5a:b4:be:b2:be:a8:8c:45:41:c9:f2:fc:76:a8:
+                    65:ef:99:29:0d:c9:9c:54:6b:0a:f0:4a:0e:61:0d:
+                    ed:99:32:af:12:e2:12:7b:9f:7b:ec:05:c4:e0:b6:
+                    d5:c3:71:28:ae:dd:0b:ba:97:ad:68:0b:76:e9:bf:
+                    e7:01:7e:64:54:39:23:85:36:c8:9d:dd:27:a1:ff:
+                    df:46:36:14:7e:cb:cc:a1:cd:49:0b:6d:c2:0c:45:
+                    99:56:58:7c:87:0d:59:9a:dc:4a:39:3b:1d:d9:15:
+                    2e:b5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                36:51:88:C1:D3:74:D6:B0:7C:3C:8F:24:0F:8E:F7:22:43:3D:6A:8B
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        4c:0f:cd:77:60:b4:6f:53:87:f3:3c:4f:e6:81:5f:a7:1c:cc:
+        60:29:b6:34:6c:4d:08:9b:e2:d2:bd:f6:17:1a:62:79:b8:17:
+        bc:a2:60:59:fd:03:51:c3:b7:6b:de:73:b3:48:95:f5:0b:aa:
+        b6:3c:b4:34:dc:1d:0b:c4:97:62:87:e7:48:d5:8f:c9:ea:e8:
+        91:8f:2a:40:cd:b7:b3:ee:b2:98:9e:fb:37:31:29:e6:8e:2f:
+        0a:39:99:1e:c6:aa:b8:05:62:85:d3:a8:3e:60:38:98:0f:f0:
+        fe:c7:ab:01:a5:6a:a5:7f:70:a6:26:94:76:23:2f:08:89:74:
+        97:c2:2a:ca:22:3e:7a:ea:22:22:08:07:f4:bb:f6:bc:69:9c:
+        4e:44:33:e2:8e:70:17:b0:9b:cb:33:94:66:6d:ff:9a:7d:e9:
+        50:b2:e8:90:14:e4:2b:91:cb:a0:c5:2e:0e:cf:19:ef:44:ef:
+        84:f0:bd:57:9e:26:c2:63:3d:df:fc:a1:84:de:5c:d7:5f:3b:
+        fb:94:61:f0:93:89:1f:cf:c3:b2:d1:90:97:35:7d:b9:8a:ad:
+        e6:05:f0:e8:3b:a1:7c:af:2b:c4:af:18:33:2e:5e:87:db:9d:
+        80:b5:04:fd:00:d0:60:ab:ff:85:77:0f:cb:47:22:c9:b2:85:
+        a8:48:16:e2
+-----BEGIN CERTIFICATE-----
+MIIELDCCAxSgAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xODEwMjYxODMxMTRaFw00ODEwMjQx
+ODMxMTRaMIGKMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV
+BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDE2MDQG
+A1UEAwwtQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoRVNNIDIw
+MTgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2rlbVV67HoRN0Wc
+TI9rLVbTdCsyrIQtusvM7I2SImlIpdT2dRFmL8uy/Z5Wq+bxUo51PlC9JbNQ/O89
+dvM/fwP24qElaVwUmFS9Eb/ppaxGkUsd3rcYK8gigxWnSgCNneTA2vdBAv2fX3mT
+VsyG4bXgOQ48olv+wFbwklBaK2dnk1bXenWZaiW0Y6hfaX46SVgqp4D2WrS+sr6o
+jEVByfL8dqhl75kpDcmcVGsK8EoOYQ3tmTKvEuISe5977AXE4LbVw3Eort0Lupet
+aAt26b/nAX5kVDkjhTbInd0nof/fRjYUfsvMoc1JC23CDEWZVlh8hw1ZmtxKOTsd
+2RUutQIDAQABo4GgMIGdMAwGA1UdEwEB/wQCMAAwHwYDVR0lBBgwFgYIKwYBBQUH
+AwMGCisGAQQBgjcKAwYwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVk
+IENlcnRpZmljYXRlMB0GA1UdDgQWBBQ2UYjB03TWsHw8jyQPjvciQz1qizAfBgNV
+HSMEGDAWgBStkZkLwiqx9RcEjCO2ZVomjjRaYzANBgkqhkiG9w0BAQsFAAOCAQEA
+TA/Nd2C0b1OH8zxP5oFfpxzMYCm2NGxNCJvi0r32FxpiebgXvKJgWf0DUcO3a95z
+s0iV9Quqtjy0NNwdC8SXYofnSNWPyerokY8qQM23s+6ymJ77NzEp5o4vCjmZHsaq
+uAVihdOoPmA4mA/w/serAaVqpX9wpiaUdiMvCIl0l8IqyiI+euoiIggH9Lv2vGmc
+TkQz4o5wF7CbyzOUZm3/mn3pULLokBTkK5HLoMUuDs8Z70TvhPC9V54mwmM93/yh
+hN5c1187+5Rh8JOJH8/DstGQlzV9uYqt5gXw6DuhfK8rxK8YMy5eh9udgLUE/QDQ
+YKv/hXcPy0ciybKFqEgW4g==
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2019-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2019-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 4 (0x4)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 18 16:10:17 2019 GMT
+            Not After : Sep 16 16:10:17 2049 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2019)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e6:47:d8:75:e5:87:59:26:87:83:7d:5b:7a:b8:
+                    58:3d:7c:ef:36:f8:a0:7a:b7:14:56:58:7d:01:f1:
+                    1c:3b:8c:e6:5b:03:77:7d:a0:ed:47:0a:45:e6:75:
+                    5c:de:95:38:0d:38:fa:41:79:89:56:31:87:e7:a3:
+                    9a:36:70:b6:cf:24:2f:99:26:89:08:39:0e:14:c3:
+                    35:be:02:8b:52:e1:8e:7b:0c:a6:9d:78:ff:01:60:
+                    d7:f5:c3:d5:f0:5e:dc:e4:23:09:59:72:93:d3:b5:
+                    22:af:7c:cd:e0:84:0f:af:11:2d:bc:c6:72:42:af:
+                    ea:67:63:c4:10:41:78:02:80:62:0d:43:74:b4:1c:
+                    ed:50:d7:94:f1:b0:bb:f9:57:80:e4:69:0f:83:4b:
+                    a2:e6:2c:4a:9a:e1:7d:7c:62:19:29:27:97:1f:4c:
+                    f1:85:f0:39:f5:31:9f:3a:39:0e:d4:4d:07:3a:40:
+                    55:4b:a6:6c:9d:04:89:51:2d:7c:b0:ef:40:b5:42:
+                    29:16:cc:65:73:38:62:21:f6:e3:2c:17:50:9d:74:
+                    34:4e:df:7c:4a:33:a4:bb:40:cf:d5:e5:ed:05:07:
+                    cd:4c:f9:af:7f:a6:5c:b9:f7:c5:16:45:4e:44:40:
+                    d7:85:32:de:ac:e5:75:ad:9b:d7:c0:26:33:1f:77:
+                    a5:37
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                C0:74:6F:D6:C5:DA:3A:E8:27:86:46:51:AD:66:AE:47:FE:24:B3:E8
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        aa:12:6c:d1:9d:6a:da:f0:ec:7c:17:46:3b:57:b8:d6:76:5f:
+        24:e6:06:a2:0a:55:1f:2f:d3:5e:8f:de:cf:02:f2:ff:e0:dd:
+        d3:c7:bd:75:59:aa:cd:34:f3:28:80:73:cc:28:69:e7:a2:70:
+        88:a2:c7:dc:66:f0:92:0e:ff:64:bf:30:04:54:01:1b:96:ad:
+        15:c5:61:fd:32:61:d7:5e:b5:ba:91:fd:31:fc:6b:15:df:ee:
+        22:d9:e4:1f:f3:cc:8b:0c:9f:f5:e8:f7:e2:62:3f:40:52:c9:
+        f0:f1:1c:63:fc:6c:90:e1:5b:74:03:b9:df:d1:3e:a8:ec:db:
+        2b:6e:83:6f:9f:7f:ba:b4:79:fc:3d:e7:12:2f:4a:e7:17:8c:
+        2b:77:a5:90:74:3c:bd:cf:75:83:0d:1a:95:d5:56:ef:07:9b:
+        a6:b3:31:e3:8c:97:ce:68:11:b5:7b:25:03:72:1c:ea:67:e9:
+        7c:3e:73:c7:7c:3e:fc:f5:ae:8a:b2:07:0d:15:6a:66:09:d7:
+        23:b9:5d:80:7a:26:d6:b6:22:30:aa:84:af:c0:42:e9:75:c3:
+        59:ab:a3:84:87:6b:0c:b7:ab:4e:92:69:ae:2c:82:6f:ab:01:
+        24:ab:ff:78:6d:59:85:c2:3b:23:c0:bd:0d:d8:6e:3a:29:82:
+        e1:c4:5f:db
+-----BEGIN CERTIFICATE-----
+MIIEKDCCAxCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xOTA5MTgxNjEwMTdaFw00OTA5MTYx
+NjEwMTdaMIGGMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV
+BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDEyMDAG
+A1UEAwwpQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoMjAxOSkw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDmR9h15YdZJoeDfVt6uFg9
+fO82+KB6txRWWH0B8Rw7jOZbA3d9oO1HCkXmdVzelTgNOPpBeYlWMYfno5o2cLbP
+JC+ZJokIOQ4UwzW+AotS4Y57DKadeP8BYNf1w9XwXtzkIwlZcpPTtSKvfM3ghA+v
+ES28xnJCr+pnY8QQQXgCgGINQ3S0HO1Q15TxsLv5V4DkaQ+DS6LmLEqa4X18Yhkp
+J5cfTPGF8Dn1MZ86OQ7UTQc6QFVLpmydBIlRLXyw70C1QikWzGVzOGIh9uMsF1Cd
+dDRO33xKM6S7QM/V5e0FB81M+a9/ply598UWRU5EQNeFMt6s5XWtm9fAJjMfd6U3
+AgMBAAGjgaAwgZ0wDAYDVR0TAQH/BAIwADAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
+KwYBBAGCNwoDBjAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
+dGlmaWNhdGUwHQYDVR0OBBYEFMB0b9bF2jroJ4ZGUa1mrkf+JLPoMB8GA1UdIwQY
+MBaAFK2RmQvCKrH1FwSMI7ZlWiaONFpjMA0GCSqGSIb3DQEBCwUAA4IBAQCqEmzR
+nWra8Ox8F0Y7V7jWdl8k5gaiClUfL9Nej97PAvL/4N3Tx711WarNNPMogHPMKGnn
+onCIosfcZvCSDv9kvzAEVAEblq0VxWH9MmHXXrW6kf0x/GsV3+4i2eQf88yLDJ/1
+6PfiYj9AUsnw8Rxj/GyQ4Vt0A7nf0T6o7NsrboNvn3+6tHn8PecSL0rnF4wrd6WQ
+dDy9z3WDDRqV1VbvB5umszHjjJfOaBG1eyUDchzqZ+l8PnPHfD789a6KsgcNFWpm
+CdcjuV2AeibWtiIwqoSvwELpdcNZq6OEh2sMt6tOkmmuLIJvqwEkq/94bVmFwjsj
+wL0N2G46KYLhxF/b
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2021v1-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2021v1-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 6 (0x6)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 23 19:29:32 2021 GMT
+            Not After : Sep 22 19:29:32 2051 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v1)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:aa:b8:34:5b:b6:ae:44:bf:41:e1:78:11:b9:7a:
+                    c8:88:b3:b0:26:50:10:9c:98:d1:f3:98:9f:23:50:
+                    64:f6:39:dd:50:3a:23:44:53:65:fc:f3:9f:f5:a5:
+                    8b:ae:8b:df:47:9f:e9:d5:a0:92:19:f1:21:ea:cc:
+                    59:3a:74:df:45:71:bc:de:64:15:a5:f6:db:ca:71:
+                    fa:19:d4:44:0d:12:ec:47:3a:43:e2:f2:dd:8b:fe:
+                    0d:7b:dc:4d:db:53:06:22:61:e5:8b:35:49:b6:33:
+                    c4:0a:69:5f:5b:81:09:84:6b:42:33:18:09:9d:a0:
+                    35:f7:9c:1e:de:6e:de:90:69:1a:e8:32:e4:49:ad:
+                    c3:31:e9:f8:4a:a2:28:1d:db:0d:29:b6:48:0a:44:
+                    93:86:41:62:8f:73:97:60:10:8a:74:46:66:55:fe:
+                    a0:95:35:9e:ef:9f:af:11:fa:5b:a3:7c:c2:35:64:
+                    11:67:28:1e:14:0a:7d:68:61:9c:cd:c7:46:39:30:
+                    31:79:94:56:b3:45:16:9a:b5:77:66:fe:41:43:0f:
+                    00:48:6e:99:dd:0c:d4:47:2c:86:8c:50:04:61:20:
+                    dd:aa:8e:73:4f:21:b4:ee:09:4d:d3:40:01:d0:f2:
+                    a7:5b:7d:05:3d:c1:e7:65:26:aa:8c:9a:58:5a:7c:
+                    6d:6f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                A8:D5:4B:BB:38:25:CF:B9:4F:A1:3C:9F:8A:59:4A:19:5C:10:7B:8D
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        24:25:25:7e:01:a5:c8:3d:54:8c:1b:05:73:d1:06:d8:db:d4:
+        3a:71:d5:19:9d:97:1c:85:3c:ca:38:5a:0c:25:25:39:1a:67:
+        bc:6c:9d:98:6c:f3:7d:5f:b7:40:f9:73:a0:f5:7b:40:a8:66:
+        a5:f1:53:b1:78:80:24:3f:19:50:2f:02:09:ec:a1:8a:e6:0d:
+        df:c4:ae:24:9e:69:0d:5c:dc:44:4c:38:3a:53:4e:4b:a1:4b:
+        92:9f:43:a4:9d:1e:76:33:18:1b:bf:62:e5:f5:bc:93:3c:4e:
+        21:d5:5b:20:69:11:28:c1:c5:93:b5:8e:96:1d:1b:ca:72:79:
+        24:de:67:2a:50:9d:ce:8b:41:dd:3e:82:dd:a5:04:75:54:fb:
+        35:70:98:87:b4:f3:ea:41:23:23:80:0e:99:d7:03:16:ee:7e:
+        11:e2:c8:29:ab:73:c5:6d:5c:a8:2f:32:03:9f:8e:66:d6:cb:
+        54:84:55:75:ab:9a:dd:95:fd:05:1e:11:85:37:1e:63:d2:f4:
+        7f:34:64:32:a1:63:91:91:50:39:14:1a:ea:54:78:e6:0d:04:
+        23:c7:83:51:c5:25:27:07:6c:f8:65:b7:da:95:89:76:83:cc:
+        f3:7e:06:74:d3:6c:ef:e9:17:de:29:1e:ab:5c:d7:ec:df:f1:
+        98:b8:e9:66
+-----BEGIN CERTIFICATE-----
+MIIELTCCAxWgAwIBAgIBBjANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTI5MzJaGA8yMDUxMDky
+MjE5MjkzMlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw
+MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx
+IHYxKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKq4NFu2rkS/QeF4
+Ebl6yIizsCZQEJyY0fOYnyNQZPY53VA6I0RTZfzzn/Wli66L30ef6dWgkhnxIerM
+WTp030VxvN5kFaX228px+hnURA0S7Ec6Q+Ly3Yv+DXvcTdtTBiJh5Ys1SbYzxApp
+X1uBCYRrQjMYCZ2gNfecHt5u3pBpGugy5EmtwzHp+EqiKB3bDSm2SApEk4ZBYo9z
+l2AQinRGZlX+oJU1nu+frxH6W6N8wjVkEWcoHhQKfWhhnM3HRjkwMXmUVrNFFpq1
+d2b+QUMPAEhumd0M1EcshoxQBGEg3aqOc08htO4JTdNAAdDyp1t9BT3B52Umqoya
+WFp8bW8CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF
+BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
+ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUqNVLuzglz7lPoTyfillKGVwQe40wHwYD
+VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB
+ACQlJX4Bpcg9VIwbBXPRBtjb1Dpx1RmdlxyFPMo4WgwlJTkaZ7xsnZhs831ft0D5
+c6D1e0CoZqXxU7F4gCQ/GVAvAgnsoYrmDd/EriSeaQ1c3ERMODpTTkuhS5KfQ6Sd
+HnYzGBu/YuX1vJM8TiHVWyBpESjBxZO1jpYdG8pyeSTeZypQnc6LQd0+gt2lBHVU
++zVwmIe08+pBIyOADpnXAxbufhHiyCmrc8VtXKgvMgOfjmbWy1SEVXWrmt2V/QUe
+EYU3HmPS9H80ZDKhY5GRUDkUGupUeOYNBCPHg1HFJScHbPhlt9qViXaDzPN+BnTT
+bO/pF94pHqtc1+zf8Zi46WY=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2021v2-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2021v2-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7 (0x7)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 23 19:29:42 2021 GMT
+            Not After : Sep 22 19:29:42 2051 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v2)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ba:06:8b:ee:58:b7:8b:49:7b:53:7a:d1:df:02:
+                    e3:f2:d8:b0:8c:03:5c:f4:2d:0b:d8:18:3b:23:fa:
+                    68:b0:e8:e9:9d:dc:a2:eb:5e:d3:06:a9:28:d4:9f:
+                    14:b6:1e:1c:1d:ef:69:0e:7f:44:f2:cc:4a:f1:b1:
+                    d0:71:30:6a:50:1e:b0:d3:f8:a4:19:d0:4a:f1:e3:
+                    eb:7a:e5:57:4c:a1:fb:d1:87:b9:48:e0:55:37:52:
+                    f9:de:99:2e:95:85:36:ce:d3:1d:67:2f:14:cb:7f:
+                    05:82:75:21:b6:aa:a5:14:ac:da:4a:f4:fe:fa:5c:
+                    33:49:3d:6f:de:fd:9d:75:ba:e2:c4:02:38:b5:69:
+                    f5:ff:a8:67:4b:3a:e0:34:f6:3b:07:03:a5:7e:59:
+                    6f:3a:d2:28:a4:2f:25:ac:d8:a9:1f:59:52:5d:24:
+                    36:58:51:b5:f0:12:a8:d3:78:56:57:b1:e0:a9:df:
+                    14:05:65:7c:b5:a5:00:f0:88:39:14:44:18:85:2d:
+                    0c:28:69:7b:b9:b4:1c:47:6f:43:66:4c:22:ad:f7:
+                    f6:19:75:e1:14:2c:0d:33:3f:c1:3f:fc:73:56:b2:
+                    68:05:b5:92:03:9b:65:6b:81:80:92:35:03:9b:66:
+                    68:58:c5:66:11:b6:8c:7f:05:09:9a:45:a6:0e:5e:
+                    5f:bf
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                4C:F0:46:89:2D:6F:D3:C9:A5:B0:3F:98:D8:45:F9:08:51:DC:6A:8C
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        93:9d:49:7d:9f:3e:3e:27:79:97:d9:c2:fc:0b:f7:30:b7:f4:
+        78:b2:c9:e4:5e:42:d3:27:26:70:cf:88:96:d1:f2:ea:a0:75:
+        7e:3c:f6:b7:d2:e7:95:30:e3:a6:67:a7:ee:b9:53:8f:fd:b2:
+        cb:db:e1:98:32:be:98:79:09:46:c6:63:6a:57:87:4d:b2:26:
+        46:f6:34:5e:18:75:ca:82:80:8e:33:c2:1d:c7:76:d7:14:57:
+        ef:2e:0e:9e:58:5c:81:8e:ed:53:2c:07:46:0a:8a:fc:2f:f5:
+        b2:c8:58:f5:fa:fa:bb:f9:7d:47:13:39:f0:f2:1c:15:9c:75:
+        90:40:bd:08:04:b3:6a:de:c2:cd:34:21:7e:ba:31:48:bc:a1:
+        23:bc:ee:93:b2:62:96:27:30:86:c2:d4:f7:b4:e6:3c:71:47:
+        37:84:ff:3d:0c:1e:ec:f3:0e:da:6b:dc:64:7a:b8:c0:7e:45:
+        13:09:bf:02:b3:b7:5b:6d:09:2d:6a:4e:0b:93:94:29:4c:a6:
+        c3:c7:05:fa:69:08:04:53:3c:4c:64:c0:7e:89:00:91:1b:a6:
+        c2:d7:ea:c4:db:86:38:fe:66:03:85:7b:fc:39:24:99:4c:2a:
+        3e:10:8b:91:c3:6e:20:9d:0c:ee:51:70:b5:98:58:f3:5c:ac:
+        16:98:7b:ce
+-----BEGIN CERTIFICATE-----
+MIIELTCCAxWgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTI5NDJaGA8yMDUxMDky
+MjE5Mjk0MlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw
+MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx
+IHYyKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoGi+5Yt4tJe1N6
+0d8C4/LYsIwDXPQtC9gYOyP6aLDo6Z3coute0wapKNSfFLYeHB3vaQ5/RPLMSvGx
+0HEwalAesNP4pBnQSvHj63rlV0yh+9GHuUjgVTdS+d6ZLpWFNs7THWcvFMt/BYJ1
+IbaqpRSs2kr0/vpcM0k9b979nXW64sQCOLVp9f+oZ0s64DT2OwcDpX5ZbzrSKKQv
+JazYqR9ZUl0kNlhRtfASqNN4Vlex4KnfFAVlfLWlAPCIORREGIUtDChpe7m0HEdv
+Q2ZMIq339hl14RQsDTM/wT/8c1ayaAW1kgObZWuBgJI1A5tmaFjFZhG2jH8FCZpF
+pg5eX78CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF
+BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
+ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUTPBGiS1v08mlsD+Y2EX5CFHcaowwHwYD
+VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB
+AJOdSX2fPj4neZfZwvwL9zC39HiyyeReQtMnJnDPiJbR8uqgdX489rfS55Uw46Zn
+p+65U4/9ssvb4Zgyvph5CUbGY2pXh02yJkb2NF4YdcqCgI4zwh3HdtcUV+8uDp5Y
+XIGO7VMsB0YKivwv9bLIWPX6+rv5fUcTOfDyHBWcdZBAvQgEs2rews00IX66MUi8
+oSO87pOyYpYnMIbC1Pe05jxxRzeE/z0MHuzzDtpr3GR6uMB+RRMJvwKzt1ttCS1q
+TguTlClMpsPHBfppCARTPExkwH6JAJEbpsLX6sTbhjj+ZgOFe/w5JJlMKj4Qi5HD
+biCdDO5RcLWYWPNcrBaYe84=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-2021v3-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-2021v3-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 8 (0x8)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Sep 23 19:30:02 2021 GMT
+            Not After : Sep 22 19:30:02 2051 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v3)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d6:29:96:87:ae:07:42:45:bb:65:09:b2:9b:de:
+                    5d:8e:78:61:10:d5:6d:ae:ae:26:08:6a:06:ec:4a:
+                    dd:2b:e7:1a:a9:ad:78:e3:fc:cf:8f:d1:47:bd:1e:
+                    33:d8:7a:e3:66:9b:e9:73:c1:5f:42:e2:fe:bc:c3:
+                    41:f7:cd:d7:85:d7:42:c9:ea:31:e5:47:b1:93:5b:
+                    43:2b:07:51:b8:75:08:ad:0f:e7:0d:81:38:5a:21:
+                    df:b1:43:5b:db:37:c5:ac:aa:14:3a:33:19:6a:26:
+                    e0:05:fe:cd:41:31:af:5d:a8:ab:31:77:44:fc:da:
+                    00:e2:7a:44:33:c3:a7:ed:13:54:9f:19:5d:c9:98:
+                    a2:3b:af:4d:0d:87:29:9c:90:9e:42:9e:9a:06:6a:
+                    70:27:c5:aa:f7:a2:f2:88:e0:b9:66:9a:72:a0:f6:
+                    61:7e:30:8f:14:9f:44:0d:dd:54:ae:47:c8:82:ba:
+                    d2:b2:db:6f:24:c1:f4:0a:81:07:90:47:49:5f:57:
+                    d6:3f:bf:2a:73:98:f2:f6:24:1a:74:03:d7:35:f0:
+                    42:d8:14:c5:94:27:5d:3c:49:0c:b0:f0:7a:61:1b:
+                    d7:5a:e3:a3:40:57:e9:a4:07:ee:02:a3:32:27:94:
+                    bb:f3:36:c5:5f:ef:d3:07:04:3a:80:4c:9c:0a:b7:
+                    88:9f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                10:04:37:BB:6D:E6:E4:69:B5:81:E6:1C:D6:6B:CE:3E:F4:ED:53:AF
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        3b:37:d6:a8:8d:cd:d2:df:13:35:ac:8c:92:d6:b0:ac:d1:38:
+        a8:00:97:47:59:b8:4a:84:8c:80:a5:1d:c7:29:bf:00:66:e5:
+        10:40:26:2e:31:f5:e1:13:c0:1b:29:f3:0b:7e:2d:71:d8:db:
+        e1:32:8f:79:8e:e3:97:0c:40:a9:a0:12:c1:fc:c2:50:88:72:
+        44:c5:bc:8b:45:6e:28:fd:d2:37:d6:db:17:cf:4e:61:33:08:
+        5a:5d:08:94:73:44:e2:76:00:44:1b:b8:00:a1:86:00:64:8a:
+        f1:42:32:3c:28:11:67:7c:8b:aa:06:34:74:58:e8:b3:3a:36:
+        8d:f6:04:5d:37:f5:66:52:c9:48:b0:a7:6f:34:09:dd:60:2a:
+        86:b9:14:f1:09:f6:06:16:56:e0:51:b1:e8:75:7f:fa:37:dc:
+        e0:98:a7:69:ae:7b:1a:73:89:0d:06:67:cc:01:ef:80:31:45:
+        9e:bb:03:2a:eb:89:70:d6:19:b2:c7:ce:bc:81:df:da:c8:6f:
+        a9:4b:2d:d7:a7:e1:af:c6:e8:fb:f0:61:c9:cd:d2:91:cd:8b:
+        c2:6c:ef:e0:b6:7f:f1:c4:81:f9:bb:76:9c:26:e3:fa:a1:a0:
+        cd:5e:05:de:ee:f9:1b:5b:50:0a:8b:0f:47:e3:90:32:ac:2a:
+        e7:65:02:80
+-----BEGIN CERTIFICATE-----
+MIIELTCCAxWgAwIBAgIBCDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTMwMDJaGA8yMDUxMDky
+MjE5MzAwMlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw
+MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx
+IHYzKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYploeuB0JFu2UJ
+spveXY54YRDVba6uJghqBuxK3SvnGqmteOP8z4/RR70eM9h642ab6XPBX0Li/rzD
+QffN14XXQsnqMeVHsZNbQysHUbh1CK0P5w2BOFoh37FDW9s3xayqFDozGWom4AX+
+zUExr12oqzF3RPzaAOJ6RDPDp+0TVJ8ZXcmYojuvTQ2HKZyQnkKemgZqcCfFqvei
+8ojguWaacqD2YX4wjxSfRA3dVK5HyIK60rLbbyTB9AqBB5BHSV9X1j+/KnOY8vYk
+GnQD1zXwQtgUxZQnXTxJDLDwemEb11rjo0BX6aQH7gKjMieUu/M2xV/v0wcEOoBM
+nAq3iJ8CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF
+BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
+ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUEAQ3u23m5Gm1geYc1mvOPvTtU68wHwYD
+VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB
+ADs31qiNzdLfEzWsjJLWsKzROKgAl0dZuEqEjIClHccpvwBm5RBAJi4x9eETwBsp
+8wt+LXHY2+Eyj3mO45cMQKmgEsH8wlCIckTFvItFbij90jfW2xfPTmEzCFpdCJRz
+ROJ2AEQbuAChhgBkivFCMjwoEWd8i6oGNHRY6LM6No32BF039WZSyUiwp280Cd1g
+Koa5FPEJ9gYWVuBRseh1f/o33OCYp2muexpziQ0GZ8wB74AxRZ67AyrriXDWGbLH
+zryB39rIb6lLLden4a/G6PvwYcnN0pHNi8Js7+C2f/HEgfm7dpwm4/qhoM1eBd7u
++RtbUAqLD0fjkDKsKudlAoA=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/revoked-certs/canonical-uefi-uc2019-all.pem
+++ linux-ein-5.4.0/debian/revoked-certs/canonical-uefi-uc2019-all.pem
@@ -0,0 +1,86 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 3 (0x3)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
+        Validity
+            Not Before: Mar  4 10:27:14 2020 GMT
+            Not After : Mar  3 10:27:14 2050 GMT
+        Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019)
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b9:10:47:2e:75:5d:f3:10:23:bb:a0:75:d2:fa:
+                    02:2d:ff:22:df:c1:e6:cd:38:7c:36:0f:ae:74:15:
+                    6e:a5:34:52:2b:c3:a4:3a:60:d7:06:ee:1d:99:93:
+                    ff:66:91:a3:18:52:2c:8c:58:e6:b4:2f:4b:c5:fb:
+                    83:e6:f3:19:bd:1b:ca:23:ec:97:1f:d8:f1:9a:f1:
+                    04:da:da:10:04:53:4b:ec:1d:b6:26:47:7c:bb:8f:
+                    a7:0a:6e:2e:e8:91:e6:c4:bb:64:34:78:3c:fa:09:
+                    15:1c:8f:9e:eb:04:99:36:22:c6:8d:07:15:0f:b9:
+                    69:08:fa:ff:4b:45:bd:ba:2b:cd:01:0e:e7:01:23:
+                    c9:e5:7a:39:3b:91:b0:45:3c:d5:77:ba:ca:f9:29:
+                    3d:11:3f:1c:6b:5b:8e:6c:4b:3f:c9:29:05:cb:59:
+                    d6:b1:c1:c0:2d:56:88:70:27:fa:73:05:5c:c2:11:
+                    d4:27:11:f7:0b:c2:d5:68:d3:1a:cd:ed:d0:e4:10:
+                    ff:34:cb:b7:45:70:34:2c:23:53:b6:9c:30:70:b4:
+                    5c:d1:e2:64:18:82:8f:62:b1:5e:aa:0b:d4:89:f2:
+                    1c:53:c4:32:7d:ef:53:ee:9b:6e:02:ab:78:bd:25:
+                    67:8b:39:36:d8:84:3b:06:99:02:d6:75:73:4e:f2:
+                    f6:b9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:FALSE
+            X509v3 Extended Key Usage: 
+                Code Signing, 1.3.6.1.4.1.311.10.3.6
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                C1:D5:7B:8F:6B:74:3F:23:EE:41:F4:F7:EE:29:2F:06:EE:CA:DF:B9
+            X509v3 Authority Key Identifier: 
+                AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        2d:b5:11:a8:d2:a0:af:81:a0:18:22:18:2c:08:d0:f4:63:e8:
+        8f:9a:f4:f5:20:dd:eb:22:77:19:9a:1a:09:3d:7f:aa:7d:c9:
+        81:bc:26:98:65:94:46:30:4b:c2:51:7c:f7:21:41:63:87:31:
+        fc:a4:c9:41:28:c7:2e:2a:2e:d8:a8:75:7a:72:77:3b:1b:9f:
+        72:15:0d:0c:96:8d:8b:51:f3:ce:37:b6:ca:9f:ca:59:40:4a:
+        fc:73:7a:94:12:99:aa:c2:8d:52:ce:91:19:2e:b4:da:ff:e5:
+        2c:67:74:d9:58:47:38:2f:61:88:c5:cf:a7:48:e1:08:ba:bc:
+        ec:d5:3a:47:d9:8c:dc:c3:bc:cb:98:2b:79:7a:02:46:ef:85:
+        19:2f:03:4b:05:84:eb:56:98:5f:6d:cf:a5:8b:a2:b6:e5:50:
+        51:7c:33:44:bd:7a:94:2e:0d:90:39:39:3e:62:60:ae:3a:e2:
+        f5:17:fa:f1:94:06:1d:ae:a3:f8:19:20:7f:4b:4c:07:c4:e6:
+        2d:0d:e5:94:84:51:6d:6f:0f:c4:c6:79:1d:f0:e8:0e:23:9e:
+        fd:f9:46:2c:b9:ec:97:38:56:7e:b8:13:f6:d2:e1:8e:a5:93:
+        02:7b:6e:dd:33:9a:bf:10:a8:1b:3d:fa:c4:f2:15:f0:27:73:
+        26:a6:94:d1
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix
+FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK
+DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy
+IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMDAzMDQxMDI3MTRaGA8yMDUwMDMw
+MzEwMjcxNFowgZIxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX
+MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MT4w
+PAYDVQQDDDVDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nIChVYnVu
+dHUgQ29yZSAyMDE5KTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkQ
+Ry51XfMQI7ugddL6Ai3/It/B5s04fDYPrnQVbqU0UivDpDpg1wbuHZmT/2aRoxhS
+LIxY5rQvS8X7g+bzGb0byiPslx/Y8ZrxBNraEARTS+wdtiZHfLuPpwpuLuiR5sS7
+ZDR4PPoJFRyPnusEmTYixo0HFQ+5aQj6/0tFvborzQEO5wEjyeV6OTuRsEU81Xe6
+yvkpPRE/HGtbjmxLP8kpBctZ1rHBwC1WiHAn+nMFXMIR1CcR9wvC1WjTGs3t0OQQ
+/zTLt0VwNCwjU7acMHC0XNHiZBiCj2KxXqoL1InyHFPEMn3vU+6bbgKreL0lZ4s5
+NtiEOwaZAtZ1c07y9rkCAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQY
+MBYGCCsGAQUFBwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NM
+IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUwdV7j2t0PyPuQfT37ikv
+Bu7K37kwHwYDVR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcN
+AQELBQADggEBAC21EajSoK+BoBgiGCwI0PRj6I+a9PUg3esidxmaGgk9f6p9yYG8
+JphllEYwS8JRfPchQWOHMfykyUEoxy4qLtiodXpydzsbn3IVDQyWjYtR8843tsqf
+yllASvxzepQSmarCjVLOkRkutNr/5SxndNlYRzgvYYjFz6dI4Qi6vOzVOkfZjNzD
+vMuYK3l6AkbvhRkvA0sFhOtWmF9tz6WLorblUFF8M0S9epQuDZA5OT5iYK464vUX
++vGUBh2uo/gZIH9LTAfE5i0N5ZSEUW1vD8TGeR3w6A4jnv35Riy57Jc4Vn64E/bS
+4Y6lkwJ7bt0zmr8QqBs9+sTyFfAncyamlNE=
+-----END CERTIFICATE-----
--- linux-ein-5.4.0.orig/debian/rules
+++ linux-ein-5.4.0/debian/rules
@@ -0,0 +1,271 @@
+#!/usr/bin/make -f
+#
+# $(DEBIAN)/rules for Ubuntu linux
+#
+# Use this however you want, just give credit where credit is due.
+#
+# Copyright (c) 2007 Ben Collins <bcollins@ubuntu.com>
+#
+
+DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
+
+# dpkg-buildpackage passes options that are incomptatible
+# with the kernel build.
+unexport CFLAGS
+unexport LDFLAGS
+
+export LC_ALL=C
+export SHELL=/bin/bash -e
+
+# Where do we find the common configuration.
+export DROOT=debian
+
+# Common variables for all architectures
+include $(DROOT)/rules.d/0-common-vars.mk
+
+# Pull in some arch specific stuff
+-include $(DEBIAN)/rules.d/$(arch).mk
+
+# Pull in some branch specific stuff. Used by LTS backport
+# branches to override master branch settings such as do_tools_common.
+-include $(DEBIAN)/rules.d/hooks.mk
+
+# Maintainer targets
+include $(DROOT)/rules.d/1-maintainer.mk
+
+do_linux_tools=$(sort $(filter-out false,$(do_tools_usbip) $(do_tools_cpupower) $(do_tools_perf) $(do_tools_bpftool) $(do_tools_x86)))
+do_cloud_tools=$(sort $(filter-out false,$(do_tools_hyperv)))
+do_tools_common?=true
+do_tools_host?=false
+do_tools_perf_jvmti?=false
+do_enforce_all?=false
+
+# Don't build tools or udebs in a cross compile environment.
+ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
+	do_tools=false
+	disable_d_i=true
+	do_zfs=false
+	do_dkms_nvidia=false
+	do_dkms_nvidia_server=false
+	do_dkms_vbox=false
+	do_dkms_wireguard=false
+	ignore_bpfilter=true
+endif
+
+# Are any of the kernel signing options enabled.
+any_signed=$(sort $(filter-out false,$(uefi_signed) $(opal_signed) $(sipl_signed)))
+ifeq ($(any_signed),true)
+bin_pkg_name=$(bin_pkg_name_unsigned)
+else
+bin_pkg_name=$(bin_pkg_name_signed)
+endif
+
+# Stages -- support both DEB_STAGE=stage1 and DEB_BUILD_PROFILE=bootstrap
+ifeq ($(DEB_STAGE),stage1)
+    DEB_BUILD_PROFILES=stage1
+endif
+ifneq ($(DEB_BUILD_PROFILE),)
+    DEB_BUILD_PROFILES=$(DEB_BUILD_PROFILE)
+endif
+ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+    do_tools=false
+    do_doc_package=false
+    do_source_package=false
+    do_flavour_image_package=false
+    do_flavour_header_package=false
+endif
+
+# autopkgtest -- rebuild support
+#  - only build the first flavour on the assumption it is representative
+#  - disable dkms builds as the versions used may have been deleted
+ifneq ($(filter autopkgtest,$(DEB_BUILD_PROFILES)),)
+	flavours := $(firstword $(flavours))
+	disable_d_i=true
+	do_zfs=false
+	do_dkms_nvidia=false
+	do_dkms_nvidia_server=false
+	do_dkms_vbox=false
+endif
+
+# Being used to build a mainline build -- turn off things which do not work.
+ifeq ($(do_mainline_build),true)
+	do_extras_package=false
+	do_tools=false
+	no_dumpfile=1
+	do_zfs=false
+	do_dkms_nvidia=false
+	do_dkms_nvidia_server=false
+	do_dkms_vbox=false
+	skipabi=true
+	skipmodule=true
+	skipretpoline=true
+endif
+
+# Disable tools build and packaging if do_tools != true
+ifneq ($(do_tools),true)
+	do_linux_tools=
+	do_cloud_tools=
+	do_tools_common=
+	do_tools_host=
+endif
+
+ifeq ($(do_zfs),false)
+	do_zfs_disable:=$(shell for m in $$(cat $(DROOT)/zfs-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+ifeq ($(do_dkms_vbox),false)
+	do_vbox_disable:=$(shell for m in $$(cat $(DROOT)/vbox-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+ifeq ($(do_dkms_wireguard),false)
+	do_wireguard_disable:=$(shell for m in $$(cat $(DROOT)/wireguard-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+ifeq ($(ignore_bpfilter),true)
+	ignore_bpfilter:=$(shell for m in $$(cat $(DROOT)/bpfilter-modules.ignore); do grep -qxF $$m $(prev_abidir)/../modules.ignore 2>/dev/null || echo $$m >> $(prev_abidir)/../modules.ignore; done)
+endif
+
+# Either tools package needs the common source preparation
+do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools)))
+
+# Versions of dkms packages.
+dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions)
+dkms_vbox_guest_version=$(shell gawk '/^virtualbox/ { print $$2; }' debian/dkms-versions)
+dkms_wireguard_version=$(shell gawk '/^wireguard-linux-compat / { print $$2; }' debian/dkms-versions)
+
+# NVIDIA DKMS package gross series split into desktop and server.
+nvidia_desktop_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*\) .*/\1/p' debian/dkms-versions)
+nvidia_server_series=$(shell sed -n -e 's/^nvidia-graphics-drivers-\([0-9][0-9]*-server\) .*/\1/p' debian/dkms-versions)
+
+# Debian Build System targets
+binary: binary-indep binary-arch
+
+build: build-arch build-indep
+
+clean: debian/control debian/canonical-certs.pem debian/canonical-revoked-certs.pem
+	dh_testdir
+	dh_testroot
+	dh_clean
+
+	# d-i stuff
+	rm -rf $(DEBIAN)/d-i-$(arch)
+	# Generated on the fly.
+	rm -f $(DEBIAN)/d-i/firmware/$(arch)/kernel-image
+
+	# normal build junk
+	rm -rf $(DEBIAN)/abi/$(release)-$(revision)
+	rm -rf $(builddir)
+	rm -f $(stampdir)/stamp-*
+	rm -rf $(DEBIAN)/linux-*
+
+	# This gets rid of the d-i packages in control
+	cp -f $(DEBIAN)/control.stub $(DROOT)/control
+	cp $(DEBIAN)/changelog debian/changelog
+
+	# Install the copyright information.
+	cp $(DEBIAN)/copyright debian/copyright
+
+	# Install the retpoline extractor.
+	cp $(DROOT)/scripts/retpoline-extract-one scripts/ubuntu-retpoline-extract-one
+
+	# If we have a reconstruct script use it.
+	[ -f $(DEBIAN)/reconstruct ] && bash $(DEBIAN)/reconstruct || true
+
+	# Remove generated intermediate files
+	rm -f $(DROOT)/control.stub $(DEBIAN)/control.stub
+	rm -f $(DROOT)/scripts/fix-filenames
+
+distclean: clean
+	rm -rf $(DROOT)/control debian/changelog \
+		debian/control debian/control.stub debian/copyright \
+		scripts/ubuntu-retpoline-extract-one
+
+# Builds the image, arch headers and debug packages
+include $(DROOT)/rules.d/2-binary-arch.mk
+
+# Rules for building the udebs ($(DEBIAN)-installer)
+include $(DROOT)/rules.d/5-udebs.mk
+
+# Builds the source, doc and linux-headers indep packages
+include $(DROOT)/rules.d/3-binary-indep.mk
+
+# Various checks to be performed on builds
+include $(DROOT)/rules.d/4-checks.mk
+
+control_files := $(DEBIAN)/control.stub.in
+ifeq ($(do_libc_dev_package),true)
+ifneq (,$(wildcard $(DEBIAN)/control.d/linux-libc-dev.stub))
+	control_files += $(DEBIAN)/control.d/linux-libc-dev.stub
+endif
+endif
+ifeq ($(do_doc_package),true)
+ifneq (,$(wildcard $(DEBIAN)/control.d/linux-doc.stub))
+	control_files += $(DEBIAN)/control.d/linux-doc.stub
+endif
+endif
+
+# Calculate Ubuntu Compatible Signing levels
+UBUNTU_COMPATIBLE_SIGNING=$(shell grep -qx ' *Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v3)' debian/canonical-revoked-certs.pem && echo ubuntu/4 pro/3)
+
+# Misc stuff
+.PHONY: $(DEBIAN)/control.stub
+$(DEBIAN)/control.stub: 				\
+		$(DROOT)/scripts/control-create		\
+		$(control_files)			\
+		debian/canonical-revoked-certs.pem	\
+		$(DEBIAN)/changelog			\
+		$(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
+	for i in $(control_files); do                                           \
+	  cat $$i;                                                              \
+	  echo "";                                                              \
+	done | sed -e 's/PKGVER/$(release)/g'                                   \
+	        -e 's/ABINUM/$(abinum)/g'                                       \
+		-e 's/SRCPKGNAME/$(src_pkg_name)/g'                             \
+		-e 's/=HUMAN=/$(human_arch)/g'                                  \
+		-e 's/=SERIES=/$(series)/g'                                     \
+		-e 's|\(^Maintainer:.*\)|\1\nXSC-Ubuntu-Compatible-Signing: $(UBUNTU_COMPATIBLE_SIGNING)|g' \
+	  > $(DEBIAN)/control.stub;
+	flavours="$(sort $(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars))";\
+	for i in $$flavours; do							\
+	  $(SHELL) $(DROOT)/scripts/control-create $$i "$(any_signed)" |	\
+		sed -e 's/PKGVER/$(release)/g'                                  \
+		-e 's/ABINUM/$(abinum)/g'                                       \
+		-e 's/SRCPKGNAME/$(src_pkg_name)/g'                             \
+		-e 's/=HUMAN=/$(human_arch)/g'                                  \
+		-e 's/=SERIES=/$(series)/g'                                     \
+		>> $(DEBIAN)/control.stub;                                      \
+	done
+
+.PHONY: debian/control
+debian/control: $(DEBIAN)/control.stub
+	echo "# placebo control.stub for kernel-wedge flow change" >debian/control.stub
+	cp $(DEBIAN)/control.stub debian/control
+	export KW_DEFCONFIG_DIR=$(DEBIAN)/d-i && \
+	export KW_CONFIG_DIR=$(DEBIAN)/d-i && \
+	LANG=C kernel-wedge gen-control $(release)-$(abinum) | \
+		perl -f $(DROOT)/scripts/misc/kernel-wedge-arch.pl $(arch) \
+		>>$(CURDIR)/debian/control
+
+debian/canonical-certs.pem: $(wildcard $(DROOT)/certs/*-all.pem) $(wildcard $(DROOT)/certs/*-$(arch).pem) $(wildcard $(DEBIAN)/certs/*-all.pem) $(wildcard $(DEBIAN)/certs/*-$(arch).pem)
+	for cert in $(sort $(notdir $^));					\
+	do									\
+		for dir in $(DEBIAN) $(DROOT);					\
+		do								\
+			if [ -f "$$dir/certs/$$cert" ]; then			\
+				cat "$$dir/certs/$$cert";			\
+				break;						\
+			fi;							\
+		done;								\
+	done >"$@"
+
+debian/canonical-revoked-certs.pem: $(wildcard $(DROOT)/revoked-certs/*-all.pem) $(wildcard $(DROOT)/revoked-certs/*-$(arch).pem) $(wildcard $(DEBIAN)/revoked-certs/*-all.pem) $(wildcard $(DEBIAN)/revoked-certs/*-$(arch).pem)
+	for cert in $(sort $(notdir $^));					\
+	do									\
+		for dir in $(DEBIAN) $(DROOT);					\
+		do								\
+			if [ -f "$$dir/revoked-certs/$$cert" ]; then		\
+				cat "$$dir/revoked-certs/$$cert";		\
+				break;						\
+			fi;							\
+		done;								\
+	done >"$@"
--- linux-ein-5.4.0.orig/debian/rules.d/0-common-vars.mk
+++ linux-ein-5.4.0/debian/rules.d/0-common-vars.mk
@@ -0,0 +1,282 @@
+# Used when you need to 'escape' a comma.
+comma = ,
+
+#
+# The source package name will be the first token from $(DEBIAN)/changelog
+#
+src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog)
+
+# Get the series
+series=$(shell dpkg-parsechangelog -l$(DEBIAN)/changelog | sed -ne 's/^Distribution: *//p' | sed -e 's/-\(security\|updates\|proposed\)$$//')
+
+# Get some version info
+release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog)
+revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac)
+revision ?= $(word $(words $(revisions)),$(revisions))
+prev_revisions := $(filter-out $(revision),0.0 $(revisions))
+prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions))
+
+prev_fullver ?= $(shell dpkg-parsechangelog -l$(DEBIAN)/changelog -o1 -c1 | sed -ne 's/^Version: *//p')
+
+# Get variants. Assume primary if debian/variants is not present.
+variants = --
+ifneq (,$(wildcard $(DEBIAN)/variants))
+	variants := $(shell cat $(DEBIAN)/variants)
+endif
+
+# Get upstream version info
+upstream_version := $(shell sed -n 's/^VERSION = \(.*\)$$/\1/p' Makefile)
+upstream_patchlevel := $(shell sed -n 's/^PATCHLEVEL = \(.*\)$$/\1/p' Makefile)
+upstream_tag := "v$(upstream_version).$(upstream_patchlevel)"
+
+family=ubuntu
+
+# This is an internally used mechanism for the daily kernel builds. It
+# creates packages whose ABI is suffixed with a minimal representation of
+# the current git HEAD sha. If .git/HEAD is not present, then it uses the
+# uuidgen program,
+#
+# AUTOBUILD can also be used by anyone wanting to build a custom kernel
+# image, or rebuild the entire set of Ubuntu packages using custom patches
+# or configs.
+AUTOBUILD=
+
+ifneq ($(AUTOBUILD),)
+skipabi		= true
+skipmodule	= true
+skipretpoline	= true
+skipdbg		= true
+gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi)
+gitverpre=$(shell echo $(gitver) | cut -b -3)
+gitverpost=$(shell echo $(gitver) | cut -b 38-40)
+abi_suffix = -$(gitverpre)$(gitverpost)
+endif
+
+ifneq ($(NOKERNLOG),)
+ubuntu_log_opts += --no-kern-log
+endif
+ifneq ($(PRINTSHAS),)
+ubuntu_log_opts += --print-shas
+endif
+
+# Get the kernels own extra version to be added to the release signature.
+raw_kernelversion=$(shell make kernelversion)
+
+#
+# full_build -- are we doing a full buildd style build
+#
+ifeq ($(wildcard /CurrentlyBuilding),)
+full_build?=false
+else
+full_build?=true
+endif
+
+#
+# The debug packages are ginormous, so you probably want to skip
+# building them (as a developer).
+#
+ifeq ($(full_build),false)
+skipdbg=true
+endif
+
+abinum		:= $(shell echo $(revision) | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$$/\1/')$(abi_suffix)
+prev_abinum	:= $(shell echo $(prev_revision) | sed -r -e 's/([^\+~]*)\.[^\.]+(~.*)?(\+.*)?$$/\1/')$(abi_suffix)
+abi_release	:= $(release)-$(abinum)
+
+uploadnum	:= $(shell echo $(revision) | sed -r -e 's/[^\+~]*\.([^\.~]+(~.*)?(\+.*)?$$)/\1/')
+ifneq ($(full_build),false)
+  uploadnum	:= $(uploadnum)-Ubuntu
+endif
+
+# XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload
+#      shift our version higher for this package only.  Ensure this only
+#      occurs for the v2.6.35 kernel so that we do not propogate this into
+#      any other series.
+raw_uploadnum	:= $(shell echo $(revision) | sed -e 's/.*\.//')
+libc_dev_version :=
+ifeq ($(DEBIAN),debian.master)
+ifeq ($(release),2.6.35)
+libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum)
+endif
+endif
+
+DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+DEB_HOST_GNU_TYPE  = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+#
+# Detect invocations of the form 'fakeroot debian/rules binary arch=armhf'
+# within an x86'en schroot. This only gets you part of the way since the
+# packaging phase fails, but you can at least compile the kernel quickly.
+#
+arch := $(DEB_HOST_ARCH)
+ifneq ($(arch),$(DEB_HOST_ARCH))
+	CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)-
+endif
+
+#
+# Detect invocations of the form 'dpkg-buildpackage -B -aarmhf' within
+# an x86'en schroot. This is the only way to build all of the packages
+# (except for tools).
+#
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+	CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
+endif
+
+abidir		:= $(CURDIR)/$(DEBIAN)/__abi.current/$(arch)
+prev_abidir	:= $(CURDIR)/$(DEBIAN)/abi/$(arch)
+commonconfdir	:= $(CURDIR)/$(DEBIAN)/config
+archconfdir	:= $(CURDIR)/$(DEBIAN)/config/$(arch)
+sharedconfdir	:= $(CURDIR)/debian.master/config
+builddir	:= $(CURDIR)/debian/build
+stampdir	:= $(CURDIR)/debian/stamps
+
+#
+# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There
+# are places that you'll find linux-image hard coded, but I guess thats OK since the
+# assumption that the binary package always starts with linux-image will never change.
+#
+bin_pkg_name_signed=linux-image-$(abi_release)
+bin_pkg_name_unsigned=linux-image-unsigned-$(abi_release)
+mods_pkg_name=linux-modules-$(abi_release)
+mods_extra_pkg_name=linux-modules-extra-$(abi_release)
+bldinfo_pkg_name=linux-buildinfo-$(abi_release)
+hdrs_pkg_name=linux-headers-$(abi_release)
+indep_hdrs_pkg_name=$(src_pkg_name)-headers-$(abi_release)
+
+#
+# The generation of content in the doc package depends on both 'AUTOBUILD=' and
+# 'do_doc_package_content=true'. There are usually build errors during the development
+# cycle, so its OK to leave 'do_doc_package_content=false' until those build
+# failures get sorted out. Finally, the doc package doesn't really need to be built
+# for developer testing (its kind of slow), so only do it if on a buildd.
+ifneq ($(filter --,$(variants)),)
+do_doc_package=true
+else
+do_doc_package=false
+endif
+do_doc_package_content=true
+ifeq ($(full_build),false)
+do_doc_package_content=false
+endif
+doc_pkg_name=$(src_pkg_name)-doc
+
+#
+# Similarly with the linux-source package, you need not build it as a developer. Its
+# somewhat I/O intensive and utterly useless.
+#
+do_source_package=true
+do_source_package_content=true
+ifeq ($(full_build),false)
+do_source_package_content=false
+endif
+
+# linux-libc-dev may not be needed, default to building it only for the
+# primary variant
+ifneq ($(filter --,$(variants)),)
+do_libc_dev_package=true
+else
+do_libc_dev_package=false
+endif
+
+# common headers normally is built as an indep package, but may be arch
+do_common_headers_indep=true
+
+# add a 'full source' mode
+do_full_source=false
+
+# Add an option to enable special drivers which should only be build when
+# explicitly enabled.
+do_odm_drivers=false
+
+# build tools
+ifneq ($(wildcard $(CURDIR)/tools),)
+	ifeq ($(do_tools),)
+		ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+			do_tools=false
+		endif
+	endif
+	do_tools?=true
+else
+	do_tools?=false
+endif
+tools_pkg_name=$(src_pkg_name)-tools-$(abi_release)
+tools_common_pkg_name=$(src_pkg_name)-tools-common
+tools_flavour_pkg_name=linux-tools-$(abi_release)
+cloud_pkg_name=$(src_pkg_name)-cloud-tools-$(abi_release)
+cloud_common_pkg_name=$(src_pkg_name)-cloud-tools-common
+cloud_flavour_pkg_name=linux-cloud-tools-$(abi_release)
+hosttools_pkg_name=$(src_pkg_name)-tools-host
+
+# The general flavour specific image package.
+do_flavour_image_package=true
+
+# The general flavour specific header package.
+do_flavour_header_package=true
+
+# DTBs
+do_dtbs=false
+
+# FIPS check
+do_fips_checks=false
+
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+#
+# These 2 environment variables set the -j value of the kernel build. For example,
+# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs
+# or
+# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs
+#
+# The default is to use the number of CPUs.
+#
+COMMA=,
+DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ifneq (,$(DEB_BUILD_OPTIONS_PARA))
+  CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA)
+endif
+
+ifeq ($(CONCURRENCY_LEVEL),)
+  # Check the environment
+  CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL)
+  # No? Then build with the number of CPUs on the host.
+  ifeq ($(CONCURRENCY_LEVEL),)
+      CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1)
+  endif
+  # Oh hell, give 'em one
+  ifeq ($(CONCURRENCY_LEVEL),)
+    CONCURRENCY_LEVEL := 1
+  endif
+endif
+
+conc_level		= -j$(CONCURRENCY_LEVEL)
+
+# target_flavour is filled in for each step
+kmake = make ARCH=$(build_arch) \
+	CROSS_COMPILE=$(CROSS_COMPILE) \
+	KERNELVERSION=$(abi_release)-$(target_flavour) \
+	CONFIG_DEBUG_SECTION_MISMATCH=y \
+	KBUILD_BUILD_VERSION="$(uploadnum)" \
+	LOCALVERSION= localver-extra= \
+	CFLAGS_MODULE="-DPKG_ABI=$(abinum)"
+ifneq ($(LOCAL_ENV_CC),)
+kmake += CC="$(LOCAL_ENV_CC)" DISTCC_HOSTS="$(LOCAL_ENV_DISTCC_HOSTS)"
+endif
+
+# Locking is required in parallel builds to prevent loss of contents
+# of the debian/files.
+lockme_file = $(CURDIR)/debian/.LOCK
+lockme_cmd = flock -w 60
+lockme = $(lockme_cmd) $(lockme_file)
+
+# Don't fail if a link already exists.
+LN = ln -sf
+
+# Checks if a var is overriden by the custom rules. Called with var and
+# flavour as arguments.
+custom_override = \
+ $(shell if [ -n "$($(1)_$(2))" ]; then echo "$($(1)_$(2))"; else echo "$($(1))"; fi)
+
+# selftests that Ubuntu cares about
+ubuntu_selftests = breakpoints bpf cpu-hotplug efivarfs memfd memory-hotplug mount net ptrace seccomp timers powerpc user ftrace
--- linux-ein-5.4.0.orig/debian/rules.d/1-maintainer.mk
+++ linux-ein-5.4.0/debian/rules.d/1-maintainer.mk
@@ -0,0 +1,201 @@
+# The following targets are for the maintainer only! do not run if you don't
+# know what they do.
+
+.PHONY: printenv updateconfigs migrateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs autoreconstruct finalchecks
+
+help:
+	@echo "These are the targets in addition to the normal $(DEBIAN) ones:"
+	@echo
+	@echo "  printenv        : Print some variables used in the build"
+	@echo
+	@echo "  updateconfigs        : Update core arch configs"
+	@echo
+	@echo "  editconfigs          : Update core arch configs interractively"
+	@echo "  migrateconfigs       : Automatically import old configs into annotations"
+	@echo "  genconfigs           : Generate core arch configs in CONFIGS/*"
+	@echo
+	@echo "  updateportsconfigs   : Update ports arch configs"
+	@echo
+	@echo "  editportsconfigs     : Update ports arch configs interactivly"
+	@echo "  genportconfigs       : Generate ports arch configs in CONFIGS/*"
+	@echo
+	@echo "  printchanges    : Print the current changelog entries (from git)"
+	@echo
+	@echo "  insertchanges   : Insert current changelog entries (from git)"
+	@echo
+	@echo "  startnewrelease : Start a new changelog set"
+	@echo
+	@echo "  diffupstream    : Diff stock kernel code against upstream (git)"
+	@echo
+	@echo "  compileselftests : Only compile the selftests listed on ubuntu_selftests variable"
+	@echo
+	@echo "  runselftests    : Run the selftests listed on ubuntu_selftests variable"
+	@echo
+	@echo "  help            : If you are kernel hacking, you need the professional"
+	@echo "                    version of this"
+	@echo
+	@echo "Environment variables:"
+	@echo
+	@echo "  NOKERNLOG       : Do not add upstream kernel commits to changelog"
+	@echo "  CONCURRENCY_LEVEL=X"
+	@echo "                  : Use -jX for kernel compile"
+	@echo "  PRINTSHAS       : Include SHAs for commits in changelog"
+
+printdebian:
+	@echo "$(DEBIAN)"
+
+updateconfigs defaultconfigs editconfigs genconfigs dumpconfigs:
+	dh_testdir;
+ifneq ($(wildcard $(DEBIAN)/config/config.common.ubuntu),)
+	$(SHELL) $(DROOT)/scripts/misc/old-kernelconfig $@ "$(do_enforce_all)"
+else
+	kmake='$(kmake)' skip_checks=$(do_skip_checks) conc_level=$(conc_level) \
+		$(SHELL) $(DROOT)/scripts/misc/kernelconfig $@
+	@rm -rf build
+endif
+
+migrateconfigs:
+ifneq ($(wildcard $(DEBIAN)/config/config.common.ubuntu),)
+	dh_testdir
+	conc_level=$(conc_level) $(SHELL) $(DROOT)/scripts/misc/old-kernelconfig genconfigs
+	rm -rf build
+	mkdir build
+	mv $(DEBIAN)/config/annotations build/.annotations
+	mv $(DEBIAN)/config/README.rst build/.README.rst 2>/dev/null || true
+	rm -rf $(DEBIAN)/config
+	mkdir -p $(DEBIAN)/config
+	debian/scripts/misc/migrate-annotations < build/.annotations > $(DEBIAN)/config/annotations
+	mv build/.README.rst $(DEBIAN)/config/README.rst 2>/dev/null || true
+	rm -rf build
+	kmake='$(kmake)' conc_level=$(conc_level) $(SHELL) $(DROOT)/scripts/misc/kernelconfig updateconfigs
+endif
+
+updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs:
+	dh_testdir;
+	$(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ ports
+	rm -rf build
+
+printenv:
+	dh_testdir
+	@echo "src package name  = $(src_pkg_name)"
+	@echo "series            = $(series)"
+	@echo "release           = $(release)"
+	@echo "revisions         = $(revisions)"
+	@echo "revision          = $(revision)"
+	@echo "uploadnum         = $(uploadnum)"
+	@echo "prev_revisions    = $(prev_revisions)"
+	@echo "prev_revision     = $(prev_revision)"
+	@echo "abinum            = $(abinum)"
+	@echo "upstream_tag      = $(upstream_tag)"
+	@echo "gitver            = $(gitver)"
+	@echo "variants          = $(variants)"
+	@echo "flavours          = $(flavours)"
+	@echo "skipabi           = $(skipabi)"
+	@echo "skipmodule        = $(skipmodule)"
+	@echo "skipdbg           = $(skipdbg)"
+	@echo "ubuntu_log_opts   = $(ubuntu_log_opts)"
+	@echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)"
+	@echo "ubuntu_selftests  = $(ubuntu_selftests)"
+	@echo "bin package name  = $(bin_pkg_name)"
+	@echo "hdr package name  = $(hdrs_pkg_name)"
+	@echo "doc package name  = $(doc_pkg_name)"
+	@echo "do_doc_package            = $(do_doc_package)"
+	@echo "do_doc_package_content    = $(do_doc_package_content)"
+	@echo "do_source_package         = $(do_source_package)"
+	@echo "do_source_package_content = $(do_source_package_content)"
+	@echo "do_libc_dev_package       = $(do_libc_dev_package)"
+	@echo "do_flavour_image_package  = $(do_flavour_image_package)"
+	@echo "do_flavour_header_package = $(do_flavour_header_package)"
+	@echo "do_common_headers_indep   = $(do_common_headers_indep)"
+	@echo "do_full_source            = $(do_full_source)"
+	@echo "do_odm_drivers            = $(do_odm_drivers)"
+	@echo "do_tools                  = $(do_tools)"
+	@echo "do_any_tools              = $(do_any_tools)"
+	@echo "do_linux_tools            = $(do_linux_tools)"
+	@echo " do_tools_cpupower         = $(do_tools_cpupower)"
+	@echo " do_tools_perf             = $(do_tools_perf)"
+	@echo " do_tools_bpftool          = $(do_tools_bpftool)"
+	@echo " do_tools_x86              = $(do_tools_x86)"
+	@echo " do_tools_host             = $(do_tools_host)"
+	@echo "do_cloud_tools            = $(do_cloud_tools)"
+	@echo " do_tools_hyperv           = $(do_tools_hyperv)"
+	@echo "any_signed                = $(any_signed)"
+	@echo " uefi_signed               = $(uefi_signed)"
+	@echo " opal_signed               = $(opal_signed)"
+	@echo " sipl_signed               = $(sipl_signed)"
+	@echo "full_build                = $(full_build)"
+	@echo "libc_dev_version          = $(libc_dev_version)"
+	@echo "DEB_HOST_GNU_TYPE         = $(DEB_HOST_GNU_TYPE)"
+	@echo "DEB_BUILD_GNU_TYPE        = $(DEB_BUILD_GNU_TYPE)"
+	@echo "DEB_HOST_ARCH             = $(DEB_HOST_ARCH)"
+	@echo "DEB_BUILD_ARCH            = $(DEB_BUILD_ARCH)"
+	@echo "arch                      = $(arch)"
+	@echo "kmake                     = $(kmake)"
+
+printchanges:
+	@baseCommit=$$(git log --pretty=format:'%H %s' | \
+		gawk '/UBUNTU: '".*Ubuntu-.*`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'(~.*)?$$/ { print $$1; exit }'); \
+	if [ -z "$$baseCommit" ]; then \
+		echo "WARNING: couldn't find a commit for the previous version. Using the lastest one." >&2; \
+		baseCommit=$$(git log --pretty=format:'%H %s' | \
+			gawk '/UBUNTU:\s*Ubuntu-.*$$/ { print $$1; exit }'); \
+	fi; \
+	git log "$$baseCommit"..HEAD | \
+	$(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
+
+insertchanges: autoreconstruct finalchecks
+	@perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN) 
+
+autoreconstruct:
+	# No need for reconstruct for -rc kernels since we don't upload an
+	# orig tarball, so just remove it.
+	if grep -q "^EXTRAVERSION = -rc[0-9]\+$$" Makefile; then \
+		echo "exit 0" >$(DEBIAN)/reconstruct; \
+	else \
+		$(DROOT)/scripts/misc/gen-auto-reconstruct $(upstream_tag) $(DEBIAN)/reconstruct $(DROOT)/source/options; \
+	fi
+
+finalchecks: debian/control
+ifeq ($(do_fips_checks),true)
+	$(DROOT)/scripts/misc/fips-checks
+endif
+	$(DROOT)/scripts/misc/final-checks "$(DEBIAN)" "$(prev_fullver)"
+
+diffupstream:
+	@git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)')
+
+startnewrelease:
+	dh_testdir
+	@[ -f "$(DEBIAN)/etc/update.conf" ] && . "$(DEBIAN)/etc/update.conf"; \
+	if [ -n "$$BACKPORT_SUFFIX" ]; then \
+		ver="$$(dpkg-parsechangelog -l"$$DEBIAN_MASTER/changelog" -SVersion)$${BACKPORT_SUFFIX}.1"; \
+		prev_ver="$$(dpkg-parsechangelog -l"$(DEBIAN)/changelog" -SVersion)"; \
+		if [ "$${ver%.*}" = "$${prev_ver%.*}" ]; then \
+			ver="$${ver%.*}.$$(( $${prev_ver##*.} +1 ))"; \
+		fi; \
+	else \
+		ver="$(release)-$$(echo "$(revision)" | \
+			perl -ne 'if (/^(\d*)\.(\d*)(.*)?$$/) { printf("%d.%d%s\n", $$1 + 1, $$2 +1, $$3) }')"; \
+	fi; \
+	now="$(shell date -R)"; \
+	echo "Creating new changelog set for $$ver..."; \
+	echo -e "$(src_pkg_name) ($$ver) UNRELEASED; urgency=medium\n" > $(DEBIAN)/changelog.new; \
+	echo "  CHANGELOG: Do not edit directly. Autogenerated at release." >> \
+		$(DEBIAN)/changelog.new; \
+	echo "  CHANGELOG: Use the printchanges target to see the curent changes." \
+		>> $(DEBIAN)/changelog.new; \
+	echo "  CHANGELOG: Use the insertchanges target to create the final log." \
+		>> $(DEBIAN)/changelog.new; \
+	echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL>  $$now\n" >> \
+		$(DEBIAN)/changelog.new ; \
+	cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \
+	mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog
+
+compileselftests:
+	# a loop is needed here to fail on errors
+	for test in $(ubuntu_selftests); do \
+		$(kmake) -C tools/testing/selftests TARGETS="$$test"; \
+	done;
+
+runselftests:
+	$(kmake) -C tools/testing/selftests TARGETS="$(ubuntu_selftests)" run_tests
--- linux-ein-5.4.0.orig/debian/rules.d/2-binary-arch.mk
+++ linux-ein-5.4.0/debian/rules.d/2-binary-arch.mk
@@ -0,0 +1,824 @@
+# We don't want make removing intermediary stamps
+.SECONDARY :
+
+# Prepare the out-of-tree build directory
+ifeq ($(do_full_source),true)
+build_cd = cd $(builddir)/build-$*; #
+build_O  =
+else
+build_cd =
+build_O  = O=$(builddir)/build-$*
+endif
+
+# Typically supplied from the arch makefile, e.g., debian.master/control.d/armhf.mk
+ifneq ($(gcc),)
+kmake += CC=$(CROSS_COMPILE)$(gcc)
+endif
+
+shlibdeps_opts = $(if $(CROSS_COMPILE),-- -l$(CROSS_COMPILE:%-=/usr/%)/lib)
+
+debian/scripts/fix-filenames: debian/scripts/fix-filenames.c
+	$(CC) -o $@ $^
+
+$(stampdir)/stamp-prepare-%: config-prepare-check-%
+	@echo Debug: $@
+	@touch $@
+$(stampdir)/stamp-prepare-tree-%: target_flavour = $*
+$(stampdir)/stamp-prepare-tree-%: debian/scripts/fix-filenames
+	@echo Debug: $@
+	install -d $(builddir)/build-$*
+	touch $(builddir)/build-$*/ubuntu-build
+	[ "$(do_full_source)" != 'true' ] && true || \
+		rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$*
+	if [ -e $(commonconfdir)/config.common.ubuntu ]; then \
+		cat $(commonconfdir)/config.common.ubuntu $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.$(target_flavour) > $(builddir)/build-$*/.config; \
+	else \
+		python3 debian/scripts/misc/annotations --export --arch $(arch) --flavour $(target_flavour) | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config; \
+	fi
+	sed -i 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' $(builddir)/build-$*/.config
+	[ "$(do_odm_drivers)" = 'true' ] && true || \
+		sed -ie 's/.*CONFIG_UBUNTU_ODM_DRIVERS.*/# CONFIG_UBUNTU_ODM_DRIVERS is not set/' \
+		    $(builddir)/build-$*/.config
+	find $(builddir)/build-$* -name "*.ko" | xargs rm -f
+	$(build_cd) $(kmake) $(build_O) -j1 syncconfig prepare scripts
+	touch $@
+
+# Used by developers as a shortcut to prepare a tree for compilation.
+prepare-%: $(stampdir)/stamp-prepare-%
+	@echo Debug: $@
+# Used by developers to allow efficient pre-building without fakeroot.
+build-%: $(stampdir)/stamp-build-%
+	@echo Debug: $@
+
+# Do the actual build, including image and modules
+$(stampdir)/stamp-build-%: target_flavour = $*
+$(stampdir)/stamp-build-%: bldimg = $(call custom_override,build_image,$*)
+$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-%
+	@echo Debug: $@ build_image $(build_image) bldimg $(bldimg)
+	$(build_cd) $(kmake) $(build_O) $(conc_level) $(bldimg) modules $(if $(filter true,$(do_dtbs)),dtbs)
+
+	@touch $@
+
+define build_dkms_sign =
+	$(shell set -x; if grep -q CONFIG_MODULE_SIG=y $(1)/.config; then
+			echo $(1)/scripts/sign-file $(MODHASHALGO) $(MODSECKEY) $(MODPUBKEY);
+		else
+			echo "-";
+		fi
+	)
+endef
+define build_dkms =
+	CROSS_COMPILE=$(CROSS_COMPILE) $(SHELL) $(DROOT)/scripts/dkms-build $(dkms_dir) $(abi_release)-$* '$(call build_dkms_sign,$(builddir)/build-$*)' $(1) $(2) $(3) $(4) $(5)
+endef
+
+# nvidia_build_payload 450 450 450_450.102.04-0ubuntu0.20.04.1
+# nvidia_build_payload 450-server 450srv 50.102.04-0ubuntu0.20.04.1
+define nvidia_build_payload =
+	$(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-$(2), pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-kernel-source-$(1)_$(3)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-$(1)/nvidia-dkms-$(1)_$(3)_$(arch).deb)
+endef
+# nvidia_build 450
+# nvidia_build 450-server
+define nvidia_build =
+	$(call nvidia_build_payload,$(1),$(shell echo $(1) | sed -e 's/-server/srv/'),$(shell awk '/^nvidia-graphics-drivers-$(1) / {print($$2);}' debian/dkms-versions))
+
+endef
+
+define install_control =
+	for which in $(3);							\
+	do									\
+		template="$(DROOT)/templates/$(2).$$which.in";			\
+		script="$(DROOT)/$(1).$$which";					\
+		sed -e 's/@abiname@/$(abi_release)/g'				\
+		    -e 's/@localversion@/-$*/g'					\
+		    -e 's/@image-stem@/$(instfile)/g'				\
+			<"$$template" >"$$script";				\
+	done
+endef
+
+# Ensure the directory prefix is exactly 100 characters long so pathnames are the
+# exact same length in any binary files produced by the builds.  These will be
+# commonised later.
+dkms_20d=....................
+dkms_100d=$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d)$(dkms_20d)
+dkms_100c=$(shell echo '$(dkms_100d)' | sed -e 's/\./_/g')
+define dkms_dir_prefix =
+$(shell echo $(1)/$(dkms_100c) | \
+	sed -e 's/\($(dkms_100d)\).*/\1/' -e 's/^\(.*\)....$$/\1dkms/')
+endef
+
+# Install the finished build
+install-%: pkgdir_bin = $(CURDIR)/debian/$(bin_pkg_name)-$*
+install-%: pkgdir = $(CURDIR)/debian/$(mods_pkg_name)-$*
+install-%: pkgdir_ex = $(CURDIR)/debian/$(mods_extra_pkg_name)-$*
+install-%: pkgdir_bldinfo = $(CURDIR)/debian/$(bldinfo_pkg_name)-$*
+install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$*
+install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+install-%: signingv = $(CURDIR)/debian/$(bin_pkg_name)-signing/$(release)-$(revision)
+install-%: toolspkgdir = $(CURDIR)/debian/$(tools_flavour_pkg_name)-$*
+install-%: cloudpkgdir = $(CURDIR)/debian/$(cloud_flavour_pkg_name)-$*
+install-%: basepkg = $(hdrs_pkg_name)
+install-%: indeppkg = $(indep_hdrs_pkg_name)
+install-%: kernfile = $(call custom_override,kernel_file,$*)
+install-%: instfile = $(call custom_override,install_file,$*)
+install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
+install-%: target_flavour = $*
+install-%: MODHASHALGO=sha512
+install-%: MODSECKEY=$(builddir)/build-$*/certs/signing_key.pem
+install-%: MODPUBKEY=$(builddir)/build-$*/certs/signing_key.x509
+install-%: build_dir=$(builddir)/build-$*
+install-%: dkms_dir=$(call dkms_dir_prefix,$(builddir)/build-$*)
+install-%: enable_zfs = $(call custom_override,do_zfs,$*)
+install-%: dbgpkgdir_zfs = $(if $(filter true,$(skipdbg)),"",$(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/kernel)
+install-%: $(stampdir)/stamp-build-% install-headers
+	@echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile)
+	dh_testdir
+	dh_testroot
+	dh_prep -p$(bin_pkg_name)-$*
+	dh_prep -p$(mods_pkg_name)-$*
+	dh_prep -p$(hdrs_pkg_name)-$*
+ifneq ($(skipdbg),true)
+	dh_prep -p$(bin_pkg_name)-$*-dbgsym
+endif
+
+	# The main image
+	# compress_file logic required because not all architectures
+	# generate a zImage automatically out of the box
+ifeq ($(compress_file),)
+	install -m600 -D $(builddir)/build-$*/$(kernfile) \
+		$(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$*
+else
+	install -d $(pkgdir_bin)/boot
+	gzip -c9v $(builddir)/build-$*/$(kernfile) > \
+		$(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$*
+	chmod 600 $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$*
+endif
+
+ifeq ($(uefi_signed),true)
+	install -d $(signingv)
+	# gzipped kernel images must be decompressed for signing
+	if [[ "$(kernfile)" =~ \.gz$$ ]]; then \
+		< $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+			gunzip -cv > $(signingv)/$(instfile)-$(abi_release)-$*.efi; \
+		cp -p --attributes-only $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+			$(signingv)/$(instfile)-$(abi_release)-$*.efi; \
+		echo "GZIP=1" >> $(signingv)/$(instfile)-$(abi_release)-$*.efi.vars; \
+	else \
+		cp -p $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+			$(signingv)/$(instfile)-$(abi_release)-$*.efi; \
+	fi
+endif
+ifeq ($(opal_signed),true)
+	install -d $(signingv)
+	cp -p $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+		$(signingv)/$(instfile)-$(abi_release)-$*.opal;
+endif
+ifeq ($(sipl_signed),true)
+	install -d $(signingv)
+	cp -p $(pkgdir_bin)/boot/$(instfile)-$(abi_release)-$* \
+		$(signingv)/$(instfile)-$(abi_release)-$*.sipl;
+endif
+
+	install -d $(pkgdir)/boot
+	install -m644 $(builddir)/build-$*/.config \
+		$(pkgdir)/boot/config-$(abi_release)-$*
+	install -m600 $(builddir)/build-$*/System.map \
+		$(pkgdir)/boot/System.map-$(abi_release)-$*
+	if [ "$(filter true,$(do_dtbs))" ]; then \
+		$(build_cd) $(kmake) $(build_O) $(conc_level) dtbs_install \
+			INSTALL_DTBS_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \
+		( cd $(pkgdir)/lib/firmware/$(abi_release)-$*/ && find device-tree -print ) | \
+		while read dtb_file; do \
+			echo "$$dtb_file ?" >> $(DEBIAN)/d-i/firmware/$(arch)/kernel-image; \
+		done; \
+	fi
+ifeq ($(no_dumpfile),)
+	makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+		-x $(builddir)/build-$*/vmlinux
+	chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
+endif
+
+	$(build_cd) $(kmake) $(build_O) $(conc_level) modules_install $(vdso) \
+		INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \
+		INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*
+
+	#
+	# Build module blacklists:
+	#  - blacklist all watchdog drivers (LP:1432837)
+	#
+	install -d $(pkgdir)/lib/modprobe.d
+	echo "# Kernel supplied blacklist for $(src_pkg_name) $(abi_release)-$* $(arch)" \
+		>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+	for conf in $(arch)-$* $(arch) common.conf; do \
+		if [ -f $(DEBIAN)/modprobe.d/$$conf ]; then \
+			echo "# modprobe.d/$$conf"; \
+			cat $(DEBIAN)/modprobe.d/$$conf; \
+		fi; \
+	done >>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+	echo "# Autogenerated watchdog blacklist" \
+		>>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+	ls -1 $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/watchdog/ | \
+		grep -v '^bcm2835_wdt$$' | \
+		sed -e 's/^/blacklist /' -e 's/.ko$$//' | \
+		sort -u \
+		>>$(pkgdir)/lib/modprobe.d/blacklist_$(src_pkg_name)_$(abi_release)-$*.conf
+
+ifeq ($(do_extras_package),true)
+	#
+	# Remove all modules not in the inclusion list.
+	#
+	if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+		/sbin/depmod -v -b $(pkgdir) $(abi_release)-$* | \
+			sed -e "s@$(pkgdir)/lib/modules/$(abi_release)-$*/kernel/@@g" | \
+			awk '{ print $$1 " " $$NF}' >$(build_dir)/module-inclusion.depmap; \
+		mkdir -p $(pkgdir_ex)/lib/modules/$(abi_release)-$*; \
+		mv $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+			$(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel; \
+		$(SHELL) $(DROOT)/scripts/module-inclusion --master \
+			$(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel \
+			$(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+			$(DEBIAN)/control.d/$(target_flavour).inclusion-list \
+			$(build_dir)/module-inclusion.depmap 2>&1 | \
+				tee $(target_flavour).inclusion-list.log; \
+		/sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \
+			$(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \
+		if [ `grep -c 'unknown symbol' $(target_flavour).depmod.log` -gt 0 ]; then \
+			echo "EE: Unresolved module dependencies in base package!"; \
+			exit 1; \
+		fi \
+	fi
+endif
+
+ifeq ($(no_dumpfile),)
+	makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+		-x $(builddir)/build-$*/vmlinux
+	chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$*
+endif
+	rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build
+	rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source
+
+	# Some initramfs-tools specific modules
+	install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd
+	if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\
+	  $(LN) $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \
+	fi
+
+	echo "interest linux-update-$(abi_release)-$*" >"$(DROOT)/$(bin_pkg_name)-$*.triggers"
+	install -d $(pkgdir_bin)/usr/lib/linux/triggers
+	$(call install_control,$(bin_pkg_name)-$*,image,postinst postrm preinst prerm)
+	install -d $(pkgdir)/usr/lib/linux/triggers
+	$(call install_control,$(mods_pkg_name)-$*,extra,postinst postrm)
+ifeq ($(do_extras_package),true)
+	# Install the postinit/postrm scripts in the extras package.
+	if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then	\
+		install -d $(pkgdir_ex)/usr/lib/linux/triggers; \
+		$(call install_control,$(mods_extra_pkg_name)-$*,extra,postinst postrm); \
+	fi
+endif
+
+	# Install the full changelog.
+ifeq ($(do_doc_package),true)
+	install -d $(bindoc)
+	cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \
+		gzip -9 >$(bindoc)/changelog.Debian.old.gz
+	chmod 644 $(bindoc)/changelog.Debian.old.gz
+endif
+
+ifneq ($(skipsub),true)
+	for sub in $($(*)_sub); do					\
+		if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL)		\
+			$(DROOT)/scripts/sub-flavour); then exit 1; fi;		\
+		/sbin/depmod -b debian/$(bin_pkg_name)-$$sub		\
+			-ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \
+			$(abi_release)-$*;					\
+		$(call install_control,$(bin_pkg_name)--$$sub,image,postinst postrm preinst prerm); \
+	done
+endif
+
+ifneq ($(skipdbg),true)
+	# Debug image is simple
+	install -m644 -D $(builddir)/build-$*/vmlinux \
+		$(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$*
+	$(build_cd) $(kmake) $(build_O) modules_install $(vdso) \
+		INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug
+	# Add .gnu_debuglink sections only after all/DKMS modules are built.
+	rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build
+	rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source
+	rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.*
+	rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware
+endif
+
+	# The flavour specific headers image
+	# TODO: Would be nice if we didn't have to dupe the original builddir
+	install -d -m755 $(hdrdir)
+	cat $(builddir)/build-$*/.config | \
+		sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \
+		$(hdrdir)/.config
+	chmod 644 $(hdrdir)/.config
+	$(kmake) O=$(hdrdir) -j1 syncconfig prepare scripts
+	# We'll symlink this stuff
+	rm -f $(hdrdir)/Makefile
+	rm -rf $(hdrdir)/include2 $(hdrdir)/source
+	# We do not need the retpoline information.
+	find $(hdrdir) -name \*.o.ur-\* | xargs rm -f
+	# Copy over the compilation version.
+	cp "$(builddir)/build-$*/include/generated/compile.h" \
+		"$(hdrdir)/include/generated/compile.h"
+	# Add UTS_UBUNTU_RELEASE_ABI since UTS_RELEASE is difficult to parse.
+	echo "#define UTS_UBUNTU_RELEASE_ABI $(abinum)" >> $(hdrdir)/include/generated/utsrelease.h
+	# powerpc kernel arch seems to need some .o files for external module linking. Add them in.
+ifeq ($(build_arch),powerpc)
+	mkdir -p $(hdrdir)/arch/powerpc/lib
+	cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib
+endif
+	# Copy over the new retpoline extractor.
+	cp scripts/ubuntu-retpoline-extract-one $(hdrdir)/scripts
+	# Script to symlink everything up
+	$(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(indeppkg)" "$*"
+	# The build symlink
+	install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*
+	$(LN) /usr/src/$(basepkg)-$* \
+		debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build
+	# And finally the symvers
+	install -m644 $(builddir)/build-$*/Module.symvers \
+		$(hdrdir)/Module.symvers
+
+	# Now the header scripts
+	$(call install_control,$(hdrs_pkg_name)-$*,headers,postinst)
+
+	# At the end of the package prep, call the tests
+	DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*"	\
+	 VERSION="$(abi_release)" REVISION="$(revision)"		\
+	 PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)"		\
+	 PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*"	\
+	 INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)"			\
+	 run-parts -v $(DROOT)/tests-build
+
+	#
+	# Remove files which are generated at installation by postinst,
+	# except for modules.order and modules.builtin
+	# 
+	# NOTE: need to keep this list in sync with postrm
+	#
+	mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+	mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/_
+	if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \
+	    mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/_; \
+	fi
+	if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin.modinfo ] ; then \
+	    mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin.modinfo \
+		$(pkgdir)/lib/modules/$(abi_release)-$*/_; \
+	fi
+	rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.*
+	mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \
+		$(pkgdir)/lib/modules/$(abi_release)-$*
+	rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+
+ifeq ($(do_linux_tools),true)
+	# Create the linux-tools tool links
+	install -d $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+ifeq ($(do_tools_usbip),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/usbip $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/usbipd $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_acpidbg),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/acpidbg $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_cpupower),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/cpupower $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_perf),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/perf $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+ifeq ($(do_tools_perf_jvmti),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/libperf-jvmti.so $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+endif
+ifeq ($(do_tools_bpftool),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/bpftool $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+ifeq ($(do_tools_x86),true)
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/x86_energy_perf_policy $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/turbostat $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+endif
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	# Create the linux-hyperv tool links
+	install -d $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/hv_kvp_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/hv_vss_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/hv_fcopy_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+	$(LN) ../../$(src_pkg_name)-tools-$(abi_release)/lsvmbus $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$*
+endif
+endif
+
+	# Build a temporary "installed headers" directory.
+	install -d $(dkms_dir) $(dkms_dir)/headers $(dkms_dir)/build $(dkms_dir)/source
+	cp -rp "$(hdrdir)" "$(indep_hdrdir)" "$(dkms_dir)/headers"
+
+	$(if $(filter true,$(enable_zfs)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, $(dbgpkgdir_zfs), zfs, pool/universe/z/zfs-linux/zfs-dkms_$(dkms_zfs_linux_version)_all.deb))
+
+	$(if $(filter true,$(do_dkms_wireguard)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", wireguard, pool/universe/w/wireguard-linux-compat/wireguard-dkms_$(dkms_wireguard_version)_all.deb))
+
+ifeq ($(do_dkms_nvidia),true)
+	$(foreach series,$(nvidia_desktop_series),$(call nvidia_build,$(series)))
+endif
+ifeq ($(do_dkms_nvidia_server),true)
+	$(foreach series,$(nvidia_server_series),$(call nvidia_build,$(series)))
+endif
+
+ifeq ($(do_extras_package),true)
+	$(if $(filter true,$(do_dkms_vbox)),$(call build_dkms, $(mods_pkg_name)-$*, $(pkgdir)/lib/modules/$(abi_release)-$*/kernel, "", virtualbox-guest, pool/multiverse/v/virtualbox/virtualbox-guest-dkms_$(dkms_vbox_guest_version)_all.deb))
+endif
+
+ifneq ($(skipdbg),true)
+	# Add .gnu_debuglink sections to each stripped .ko
+	# pointing to unstripped verson
+	find $(pkgdir) \
+	  $(if $(filter true,$(do_extras_package)),$(pkgdir_ex)) \
+	  -name '*.ko' | while read path_module ; do \
+		module="/lib/modules/$${path_module#*/lib/modules/}"; \
+		if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \
+			while IFS= read -r -d '' signature < <(tail -c 28 "$$path_module"); do \
+				break; \
+			done; \
+			$(CROSS_COMPILE)objcopy \
+				--add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \
+				$$path_module; \
+			if grep -q CONFIG_MODULE_SIG=y $(builddir)/build-$*/.config && \
+			   [ "$$signature" = $$'~Module signature appended~\n' ]; then \
+				$(builddir)/build-$*/scripts/sign-file $(MODHASHALGO) \
+					$(MODSECKEY) \
+					$(MODPUBKEY) \
+					$$path_module; \
+			fi; \
+		else \
+			echo "WARNING: Missing debug symbols for module '$$module'."; \
+		fi; \
+	done
+endif
+
+	# Build the final ABI information.
+	install -d $(abidir)
+	sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/'	\
+		$(builddir)/build-$*/Module.symvers | sort > $(abidir)/$*
+
+	# Build the final ABI modules information.
+	find $(pkgdir_bin) $(pkgdir) $(pkgdir_ex) -name \*.ko | \
+		sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules
+
+	# Build the final ABI firmware information.
+	find $(pkgdir_bin) $(pkgdir) $(pkgdir_ex) -name \*.ko | \
+	while read ko; do \
+		/sbin/modinfo $$ko | grep ^firmware || true; \
+	done | sort -u >$(abidir)/$*.fwinfo
+
+	# Build the final ABI compiler information.
+	ko=$$(find $(pkgdir_bin) $(pkgdir) $(pkgdir_ex) -name \*.ko | head -1); \
+	readelf -p .comment "$$ko" | gawk ' \
+		($$1 == "[") { \
+			printf("%s", $$3); \
+			for (n=4; n<=NF; n++) { \
+				printf(" %s", $$n); \
+			} \
+			print "" \
+		}' | sort -u >$(abidir)/$*.compiler
+
+	# Build the final ABI retpoline information.
+	if grep -q CONFIG_RETPOLINE=y $(builddir)/build-$*/.config; then \
+		echo "# retpoline v1.0" >$(abidir)/$*.retpoline; \
+		$(SHELL) $(DROOT)/scripts/retpoline-extract $(builddir)/build-$* $(CURDIR) | \
+			sort >>$(abidir)/$*.retpoline; \
+	else \
+		echo "# RETPOLINE NOT ENABLED" >$(abidir)/$*.retpoline; \
+	fi
+
+	# Build the buildinfo package content.
+	install -d $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*
+	install -m644 $(builddir)/build-$*/.config \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/config
+	install -m644 $(abidir)/$* \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/abi
+	install -m644 $(abidir)/$*.modules \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/modules
+	install -m644 $(abidir)/$*.fwinfo \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/fwinfo
+	install -m644 $(abidir)/$*.retpoline \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/retpoline
+	install -m644 $(abidir)/$*.compiler \
+		$(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/compiler
+	install -m644 $(DROOT)/canonical-certs.pem $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/canonical-certs.pem
+	install -m644 $(DROOT)/canonical-revoked-certs.pem $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/canonical-revoked-certs.pem
+
+headers_tmp := $(CURDIR)/debian/tmp-headers
+headers_dir := $(CURDIR)/debian/linux-libc-dev
+
+hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) \
+	KERNELVERSION=$(abi_release) INSTALL_HDR_PATH=$(headers_tmp)/install \
+	SHELL="$(SHELL)" ARCH=$(header_arch)
+
+install-arch-headers:
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+ifeq ($(do_libc_dev_package),true)
+	dh_prep -plinux-libc-dev
+endif
+
+	rm -rf $(headers_tmp)
+	install -d $(headers_tmp) $(headers_dir)/usr/include/
+
+	$(hmake) $(defconfig)
+	mv $(headers_tmp)/.config $(headers_tmp)/.config.old
+	sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
+	  -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
+	  $(headers_tmp)/.config.old > $(headers_tmp)/.config
+	$(hmake) syncconfig
+	$(hmake) headers_install
+
+	( cd $(headers_tmp)/install/include/ && \
+		find . -name '.' -o -name '.*' -prune -o -print | \
+                cpio -pvd --preserve-modification-time \
+			$(headers_dir)/usr/include/ )
+	mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)
+	mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/
+
+	rm -rf $(headers_tmp)
+
+define dh_all
+	dh_installchangelogs -p$(1)
+	dh_installdocs -p$(1)
+	dh_compress -p$(1)
+	dh_fixperms -p$(1) -X/boot/
+	dh_shlibdeps -p$(1) $(shlibdeps_opts)
+	dh_installdeb -p$(1)
+	dh_installdebconf -p$(1)
+	$(lockme) dh_gencontrol -p$(1) -- -Vlinux:rprovides='$(rprovides)'
+	dh_md5sums -p$(1)
+	dh_builddeb -p$(1)
+endef
+define newline
+
+
+endef
+define dh_all_inline
+        $(subst ${newline},; \${newline},$(call dh_all,$(1)))
+endef
+
+binary-arch-headers: install-arch-headers
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+ifeq ($(do_libc_dev_package),true)
+ifneq ($(DEBIAN),debian.master)
+	echo "non-master branch building linux-libc-dev, aborting"
+	exit 1
+endif
+	$(call dh_all,linux-libc-dev)
+endif
+
+binary-%: pkgimg = $(bin_pkg_name)-$*
+binary-%: pkgimg_mods = $(mods_pkg_name)-$*
+binary-%: pkgimg_ex = $(mods_extra_pkg_name)-$*
+binary-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$*
+binary-%: pkgbldinfo = $(bldinfo_pkg_name)-$*
+binary-%: pkghdr = $(hdrs_pkg_name)-$*
+binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym
+binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+binary-%: pkgtools = $(tools_flavour_pkg_name)-$*
+binary-%: pkgcloud = $(cloud_flavour_pkg_name)-$*
+binary-%: rprovides = $(if $(filter true,$(call custom_override,do_zfs,$*)),spl-modules$(comma) spl-dkms$(comma) zfs-modules$(comma) zfs-dkms$(comma))
+binary-%: rprovides += $(if $(filter true,$(call custom_override,do_dkms_vbox,$*)),virtualbox-guest-dkms$(comma))
+binary-%: target_flavour = $*
+binary-%: checks-%
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+
+	$(call dh_all,$(pkgimg))
+	$(call dh_all,$(pkgimg_mods))
+
+ifeq ($(do_extras_package),true)
+  ifeq ($(ship_extras_package),false)
+	# If $(ship_extras_package) is explicitly set to false, then do not
+	# construct the linux-image-extra package; instead just log all of the
+	# "extra" modules which were pointlessly built yet won't be shipped.
+	find $(pkgdir_ex) -name '*.ko' | sort \
+		| sed 's|^$(pkgdir_ex)/|NOT-SHIPPED |' \
+		| tee -a $(target_flavour).not-shipped.log;
+  else
+	if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+		$(call dh_all_inline,$(pkgimg_ex)); \
+	fi
+  endif
+endif
+
+	$(call dh_all,$(pkgbldinfo))
+	$(call dh_all,$(pkghdr))
+
+ifneq ($(skipsub),true)
+	@set -e; for sub in $($(*)_sub); do		\
+		pkg=$(bin_pkg_name)-$$sub;		\
+		$(call dh_all_inline,$$pkg);		\
+	done
+endif
+
+ifneq ($(skipdbg),true)
+	$(call dh_all,$(dbgpkg))
+
+	# Hokay...here's where we do a little twiddling...
+	# Renaming the debug package prevents it from getting into
+	# the primary archive, and therefore prevents this very large
+	# package from being mirrored. It is instead, through some
+	# archive admin hackery, copied to http://ddebs.ubuntu.com.
+	#
+	mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \
+		../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb
+	set -e; \
+	( \
+		$(lockme_cmd) 9 || exit 1; \
+		if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \
+			sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \
+		else \
+			grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \
+			mv debian/files.new debian/files; \
+		fi; \
+	) 9>$(lockme_file)
+	# Now, the package wont get into the archive, but it will get put
+	# into the debug system.
+endif
+
+ifeq ($(do_linux_tools),true)
+	$(call dh_all,$(pkgtools))
+endif
+ifeq ($(do_cloud_tools),true)
+	$(call dh_all,$(pkgcloud))
+endif
+
+ifneq ($(full_build),false)
+	# Clean out this flavours build directory.
+	rm -rf $(builddir)/build-$*
+	# Clean out the debugging package source directory.
+	rm -rf $(dbgpkgdir)
+endif
+
+#
+# per-architecture packages
+#
+builddirpa = $(builddir)/tools-perarch
+
+$(stampdir)/stamp-prepare-perarch:
+	@echo Debug: $@
+ifeq ($(do_any_tools),true)
+	rm -rf $(builddirpa)
+	install -d $(builddirpa)
+	rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) --exclude .git -a ./ $(builddirpa)/
+endif
+	touch $@
+
+$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch install-arch-headers
+	@echo Debug: $@
+ifeq ($(do_linux_tools),true)
+ifeq ($(do_tools_usbip),true)
+	chmod 755 $(builddirpa)/tools/usb/usbip/autogen.sh
+	cd $(builddirpa)/tools/usb/usbip && ./autogen.sh
+	chmod 755 $(builddirpa)/tools/usb/usbip/configure
+	cd $(builddirpa)/tools/usb/usbip && ./configure --prefix=$(builddirpa)/tools/usb/usbip/bin
+	cd $(builddirpa)/tools/usb/usbip && make install CFLAGS="-g -O2 -static" CROSS_COMPILE=$(CROSS_COMPILE)
+endif
+ifeq ($(do_tools_acpidbg),true)
+	cd $(builddirpa)/tools/power/acpi && make clean && make CFLAGS="-g -O2 -static -I$(builddirpa)/include" CROSS_COMPILE=$(CROSS_COMPILE) acpidbg
+endif
+ifeq ($(do_tools_cpupower),true)
+	# Allow for multiple installed versions of cpupower and libcpupower.so:
+	# Override LIB_MIN in order to to generate a versioned .so named
+	# libcpupower.so.$(abi_release) and link cpupower with that.
+	make -C $(builddirpa)/tools/power/cpupower \
+		CROSS_COMPILE=$(CROSS_COMPILE) \
+		CROSS=$(CROSS_COMPILE) \
+		LIB_MIN=$(abi_release) CPUFREQ_BENCH=false
+endif
+ifeq ($(do_tools_perf),true)
+	cd $(builddirpa) && $(kmake) $(defconfig)
+	mv $(builddirpa)/.config $(builddirpa)/.config.old
+	sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
+	  -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
+	  $(builddirpa)/.config.old > $(builddirpa)/.config
+	cd $(builddirpa) && $(kmake) syncconfig
+	cd $(builddirpa) && $(kmake) prepare
+	cd $(builddirpa)/tools/perf && \
+		$(kmake) prefix=/usr HAVE_NO_LIBBFD=1 HAVE_CPLUS_DEMANGLE_SUPPORT=1 CROSS_COMPILE=$(CROSS_COMPILE) NO_LIBPYTHON=1 NO_LIBPERL=1
+endif
+ifeq ($(do_tools_bpftool),true)
+	$(kmake) CROSS_COMPILE=$(CROSS_COMPILE) -C $(builddirpa)/tools/bpf/bpftool
+endif
+ifeq ($(do_tools_x86),true)
+	cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE)
+	cd $(builddirpa)/tools/power/x86/turbostat && make CROSS_COMPILE=$(CROSS_COMPILE)
+endif
+endif
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	cd $(builddirpa)/tools/hv && make CFLAGS="-I$(headers_dir)/usr/include -I$(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)" CROSS_COMPILE=$(CROSS_COMPILE) hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon
+endif
+endif
+	@touch $@
+
+install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name)
+install-perarch: cloudpkgdir = $(CURDIR)/debian/$(cloud_pkg_name)
+install-perarch: $(stampdir)/stamp-build-perarch
+	@echo Debug: $@
+	# Add the tools.
+ifeq ($(do_linux_tools),true)
+	install -d $(toolspkgdir)/usr/lib
+	install -d $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+ifeq ($(do_tools_usbip),true)
+	install -m755 $(builddirpa)/tools/usb/usbip/bin/sbin/usbip \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/usb/usbip/bin/sbin/usbipd \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+ifeq ($(do_tools_acpidbg),true)
+	install -m755 $(builddirpa)/tools/power/acpi/acpidbg \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+ifeq ($(do_tools_cpupower),true)
+	install -m755 $(builddirpa)/tools/power/cpupower/cpupower \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	# Install only the full versioned libcpupower.so.$(abi_release), not
+	# the usual symlinks to it.
+	install -m644 $(builddirpa)/tools/power/cpupower/libcpupower.so.$(abi_release) \
+		$(toolspkgdir)/usr/lib/
+endif
+ifeq ($(do_tools_perf),true)
+	install -m755 $(builddirpa)/tools/perf/perf $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+ifeq ($(do_tools_perf_jvmti),true)
+	install -m755 $(builddirpa)/tools/perf/libperf-jvmti.so $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+endif
+ifeq ($(do_tools_bpftool),true)
+	install -m755 $(builddirpa)/tools/bpf/bpftool/bpftool $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+ifeq ($(do_tools_x86),true)
+	install -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \
+		$(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+endif
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	install -d $(cloudpkgdir)/usr/lib
+	install -d $(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/hv_vss_daemon \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/hv_fcopy_daemon \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+	install -m755 $(builddirpa)/tools/hv/lsvmbus \
+		$(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release)
+endif
+endif
+
+binary-perarch: toolspkg = $(tools_pkg_name)
+binary-perarch: cloudpkg = $(cloud_pkg_name)
+binary-perarch: install-perarch
+	@echo Debug: $@
+ifeq ($(do_linux_tools),true)
+	$(call dh_all,$(toolspkg))
+endif
+ifeq ($(do_cloud_tools),true)
+	$(call dh_all,$(cloudpkg))
+endif
+
+binary-debs: signing = $(CURDIR)/debian/$(bin_pkg_name)-signing
+binary-debs: signingv = $(CURDIR)/debian/$(bin_pkg_name)-signing/$(release)-$(revision)
+binary-debs: signing_tar = $(src_pkg_name)_$(release)-$(revision)_$(arch).tar.gz
+binary-debs: binary-perarch $(addprefix binary-,$(flavours))
+	@echo Debug: $@
+ifeq ($(any_signed),true)
+	install -d $(signingv)/control
+	{ echo "tarball"; } >$(signingv)/control/options
+	cd $(signing) && tar czvf ../../../$(signing_tar) .
+	dpkg-distaddfile $(signing_tar) raw-signing -
+endif
+
+build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours))
+build-arch: $(build-arch-deps-true)
+	@echo Debug: $@
+
+ifeq ($(AUTOBUILD),)
+binary-arch-deps-$(do_flavour_image_package) += binary-udebs
+else
+binary-arch-deps-$(do_flavour_image_package) = binary-debs
+endif
+binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers
+ifneq ($(do_common_headers_indep),true)
+binary-arch-deps-$(do_flavour_header_package) += binary-headers
+endif
+binary-arch: $(binary-arch-deps-true)
+	@echo Debug: $@
+
--- linux-ein-5.4.0.orig/debian/rules.d/3-binary-indep.mk
+++ linux-ein-5.4.0/debian/rules.d/3-binary-indep.mk
@@ -0,0 +1,221 @@
+build-indep:
+	@echo Debug: $@
+
+# The binary-indep dependency chain is:
+#
+# install-headers <- install-doc <- install-source <- install-tools <- install-indep <- binary-indep
+# install-headers <- binary-headers
+#
+indep_hdrpkg = $(indep_hdrs_pkg_name)
+indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
+install-headers: prepare-indep
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+
+ifeq ($(do_flavour_header_package),true)
+	install -d $(indep_hdrdir)
+	find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \
+	  -o -path './include/*' -prune \
+	  -o -path './scripts/*' -prune -o -type f \
+	  \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+	     -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \
+	  -print | cpio -pd --preserve-modification-time $(indep_hdrdir)
+	cp -a scripts include $(indep_hdrdir)
+	(find arch -name include -type d -print | \
+		xargs -n1 -i: find : -type f) | \
+		cpio -pd --preserve-modification-time $(indep_hdrdir)
+endif
+
+docpkg = $(doc_pkg_name)
+docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
+install-doc: prepare-indep
+	@echo Debug: $@
+ifeq ($(do_doc_package),true)
+	dh_testdir
+	dh_testroot
+
+	install -d $(docdir)
+ifeq ($(do_doc_package_content),true)
+	# First the html docs. We skip these for autobuilds
+	if [ -z "$(AUTOBUILD)" ]; then \
+		install -d $(docdir)/$(doc_pkg_name)-tmp; \
+		$(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \
+		install -d $(docdir)/html; \
+		rsync -aL $(docdir)/$(doc_pkg_name)-tmp/Documentation/output/ \
+			$(docdir)/html/; \
+		rm -rf $(docdir)/$(doc_pkg_name)-tmp; \
+	fi
+endif
+	# Copy the rest
+	cp -a Documentation/* $(docdir)
+	find $(docdir) -name .gitignore | xargs rm -f
+endif
+
+srcpkg = linux-source-$(release)
+srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
+balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg)
+install-source: prepare-indep
+	@echo Debug: $@
+ifeq ($(do_source_package),true)
+
+	install -d $(srcdir)
+ifeq ($(do_source_package_content),true)
+	find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \
+		-path './.*' -prune -o -print | \
+		cpio -pd --preserve-modification-time $(balldir)
+	(cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \
+		$(srcdir)/$(srcpkg).tar.bz2
+	rm -rf $(balldir)
+	find './debian' './$(DEBIAN)' \
+		-path './debian/linux-*' -prune -o \
+		-path './debian/$(src_pkg_name)-*' -prune -o \
+		-path './debian/build' -prune -o \
+		-path './debian/files' -prune -o \
+		-path './debian/stamps' -prune -o \
+		-path './debian/tmp' -prune -o \
+		-path './$(DEBIAN)/__abi.current' -prune -o \
+		-print | \
+		cpio -pd --preserve-modification-time $(srcdir)
+	$(LN) $(srcpkg)/$(srcpkg).tar.bz2 $(srcdir)/..
+endif
+endif
+
+install-tools: toolspkg = $(tools_common_pkg_name)
+install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin
+install-tools: toolssbin = $(CURDIR)/debian/$(toolspkg)/usr/sbin
+install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man
+install-tools: toolsbashcomp = $(CURDIR)/debian/$(toolspkg)/usr/share/bash-completion/completions
+install-tools: hosttoolspkg = $(hosttools_pkg_name)
+install-tools: hosttoolsbin = $(CURDIR)/debian/$(hosttoolspkg)/usr/bin
+install-tools: hosttoolsman = $(CURDIR)/debian/$(hosttoolspkg)/usr/share/man
+install-tools: cloudpkg = $(cloud_common_pkg_name)
+install-tools: cloudbin = $(CURDIR)/debian/$(cloudpkg)/usr/bin
+install-tools: cloudsbin = $(CURDIR)/debian/$(cloudpkg)/usr/sbin
+install-tools: cloudman = $(CURDIR)/debian/$(cloudpkg)/usr/share/man
+install-tools: prepare-indep $(stampdir)/stamp-build-perarch
+	@echo Debug: $@
+
+ifeq ($(do_tools_common),true)
+	rm -rf $(builddir)/tools
+	install -d $(builddir)/tools
+	for i in *; do $(LN) $(CURDIR)/$$i $(builddir)/tools/; done
+	rm $(builddir)/tools/tools
+	rsync -a tools/ $(builddir)/tools/tools/
+
+	install -d $(toolsbin)
+	install -d $(toolssbin)
+	install -d $(toolsman)/man1
+	install -d $(toolsman)/man8
+	install -d $(toolsbashcomp)
+
+	install -m755 debian/tools/generic $(toolsbin)/usbip
+	install -m755 debian/tools/generic $(toolsbin)/usbipd
+	install -m644 $(CURDIR)/tools/usb/usbip/doc/*.8 $(toolsman)/man1/
+
+	install -m755 debian/tools/generic $(toolsbin)/cpupower
+	install -m644 $(CURDIR)/tools/power/cpupower/man/*.1 $(toolsman)/man1/
+
+	install -m755 debian/tools/generic $(toolsbin)/perf
+
+	install -m755 debian/tools/generic $(toolssbin)/bpftool
+	make -C $(builddir)/tools/tools/bpf/bpftool doc
+	install -m644 $(builddir)/tools/tools/bpf/bpftool/Documentation/*.8 \
+		$(toolsman)/man8
+	install -m644 $(builddir)/tools/tools/bpf/bpftool/bash-completion/bpftool \
+		$(toolsbashcomp)
+
+	install -m755 debian/tools/generic $(toolsbin)/x86_energy_perf_policy
+	install -m755 debian/tools/generic $(toolsbin)/turbostat
+
+	cd $(builddir)/tools/tools/perf && make man
+	install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \
+		$(toolsman)/man1
+
+	install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8
+	install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8
+
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	install -d $(cloudsbin)
+	install -m755 debian/tools/generic $(cloudsbin)/hv_kvp_daemon
+	install -m755 debian/tools/generic $(cloudsbin)/hv_vss_daemon
+	install -m755 debian/tools/generic $(cloudsbin)/hv_fcopy_daemon
+	install -m755 debian/tools/generic $(cloudsbin)/lsvmbus
+	install -m755 debian/cloud-tools/hv_get_dhcp_info $(cloudsbin)
+	install -m755 debian/cloud-tools/hv_get_dns_info $(cloudsbin)
+	install -m755 debian/cloud-tools/hv_set_ifconfig $(cloudsbin)
+
+	install -d $(cloudman)/man8
+	install -m644 $(CURDIR)/tools/hv/*.8 $(cloudman)/man8
+endif
+endif
+
+ifeq ($(do_tools_acpidbg),true)
+	install -m755 debian/tools/generic $(toolsbin)/acpidbg
+endif
+
+endif
+
+ifeq ($(do_tools_host),true)
+	install -d $(hosttoolsbin)
+	install -d $(hosttoolsman)/man1
+
+	install -m 755 $(CURDIR)/tools/kvm/kvm_stat/kvm_stat $(hosttoolsbin)/
+
+	cd $(builddir)/tools/tools/kvm/kvm_stat && make man
+	install -m644 $(builddir)/tools/tools/kvm/kvm_stat/*.1 \
+		$(hosttoolsman)/man1
+endif
+
+prepare-indep:
+	@echo Debug: $@
+	dh_prep -i
+
+install-indep: install-headers install-doc install-source install-tools
+	@echo Debug: $@
+
+# This is just to make it easy to call manually. Normally done in
+# binary-indep target during builds.
+binary-headers: prepare-indep install-headers
+	@echo Debug: $@
+	dh_installchangelogs -p$(indep_hdrpkg)
+	dh_installdocs -p$(indep_hdrpkg)
+	dh_compress -p$(indep_hdrpkg)
+	dh_fixperms -p$(indep_hdrpkg)
+	dh_installdeb -p$(indep_hdrpkg)
+	$(lockme) dh_gencontrol -p$(indep_hdrpkg)
+	dh_md5sums -p$(indep_hdrpkg)
+	dh_builddeb -p$(indep_hdrpkg)
+
+binary-indep: cloudpkg = $(cloud_common_pkg_name)
+binary-indep: install-indep
+	@echo Debug: $@
+	dh_installchangelogs -i
+	dh_installdocs -i
+	dh_compress -i
+	dh_fixperms -i
+ifeq ($(do_tools_common),true)
+ifeq ($(do_cloud_tools),true)
+ifeq ($(do_tools_hyperv),true)
+	dh_installinit -p$(cloudpkg) -n --name hv-kvp-daemon
+	dh_installinit -p$(cloudpkg) -n --name hv-vss-daemon
+	dh_installinit -p$(cloudpkg) -n --name hv-fcopy-daemon
+	dh_installudev -p$(cloudpkg) -n --name hv-kvp-daemon
+	dh_installudev -p$(cloudpkg) -n --name hv-vss-daemon
+	dh_installudev -p$(cloudpkg) -n --name hv-fcopy-daemon
+	dh_systemd_enable -p$(cloudpkg)
+	dh_installinit -p$(cloudpkg) -o --name hv-kvp-daemon
+	dh_installinit -p$(cloudpkg) -o --name hv-vss-daemon
+	dh_installinit -p$(cloudpkg) -o --name hv-fcopy-daemon
+	dh_systemd_start -p$(cloudpkg)
+endif
+	# Keep intel_sgx service disabled by default, so add it after dh_systemd_enable
+	# and dh_systemd_start are called:
+	dh_installinit -p$(cloudpkg) --no-start --no-enable --name intel-sgx-load-module
+endif
+endif
+	dh_installdeb -i
+	$(lockme) dh_gencontrol -i
+	dh_md5sums -i
+	dh_builddeb -i
--- linux-ein-5.4.0.orig/debian/rules.d/4-checks.mk
+++ linux-ein-5.4.0/debian/rules.d/4-checks.mk
@@ -0,0 +1,32 @@
+# Check ABI for package against last release (if not same abinum)
+abi-check-%: install-%
+	@echo Debug: $@
+	@perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \
+		"$(prev_abidir)" "$(abidir)" "$(skipabi)"
+
+# Check the module list against the last release (always)
+module-check-%: install-%
+	@echo Debug: $@
+	@perl -f $(DROOT)/scripts/module-check "$*" \
+		"$(prev_abidir)" "$(abidir)" $(skipmodule)
+
+# Check the reptoline jmp/call functions against the last release.
+retpoline-check-%: install-%
+	@echo Debug: $@
+	$(SHELL) $(DROOT)/scripts/retpoline-check "$*" \
+		"$(prev_abidir)" "$(abidir)" "$(skipretpoline)" "$(builddir)/build-$*"
+
+checks-%: module-check-% abi-check-% retpoline-check-%
+	@echo Debug: $@
+
+# Check the config against the known options list.
+config-prepare-check-%: $(stampdir)/stamp-prepare-tree-%
+	@echo Debug: $@
+	if [ -e $(commonconfdir)/config.common.ubuntu ]; then \
+		perl -f $(DROOT)/scripts/config-check \
+			$(builddir)/build-$*/.config "$(arch)" "$*" "$(commonconfdir)" \
+			"$(skipconfig)" "$(do_enforce_all)"; \
+	else \
+		python3 $(DROOT)/scripts/misc/annotations -f $(commonconfdir)/annotations \
+			--arch $(arch) --flavour $* --check $(builddir)/build-$*/.config; \
+	fi
--- linux-ein-5.4.0.orig/debian/rules.d/5-udebs.mk
+++ linux-ein-5.4.0/debian/rules.d/5-udebs.mk
@@ -0,0 +1,79 @@
+# Do udebs if not disabled in the arch-specific makefile
+binary-udebs: binary-debs
+	@echo Debug: $@
+ifeq ($(disable_d_i),)
+	@$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \
+		do-binary-udebs
+endif
+
+do-binary-udebs: linux_udeb_name=$(shell if echo $(src_pkg_name)|egrep -q '(linux-lts|linux-hwe)'; then echo $(src_pkg_name); else echo linux; fi)
+do-binary-udebs: debian/control
+	@echo Debug: $@
+	dh_testdir
+	dh_testroot
+
+	# unpack the kernels into a temporary directory
+	mkdir -p debian/d-i-${arch}
+
+	imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$3}') && \
+	for f in $$imagelist; do \
+	  i=$(release)-$(abinum)-$$f; \
+          for f in \
+		../linux-image-$$i\_$(release)-$(revision)_${arch}.deb \
+		../linux-image-unsigned-$$i\_$(release)-$(revision)_${arch}.deb \
+		../linux-modules-$$i\_$(release)-$(revision)_${arch}.deb \
+		../linux-modules-extra-$$i\_$(release)-$(revision)_${arch}.deb; \
+	  do \
+		  [ -f $$f ] && dpkg -x $$f debian/d-i-${arch}; \
+	  done; \
+	  /sbin/depmod -b debian/d-i-${arch} $$i; \
+	done
+
+	# kernel-wedge will error if no modules unless this is touched
+	touch $(DEBIAN)/d-i/no-modules
+
+	touch $(CURDIR)/$(DEBIAN)/d-i/ignore-dups
+	export KW_DEFCONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
+	export KW_CONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
+	export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
+	  kernel-wedge install-files $(release)-$(abinum) && \
+	  kernel-wedge check
+
+        # Build just the udebs
+	dilist=$$(dh_listpackages -s | grep "\-di$$") && \
+	[ -z "$dilist" ] || \
+	for i in $$dilist; do \
+	  dh_fixperms -p$$i; \
+	  $(lockme) dh_gencontrol -p$$i; \
+	  dh_builddeb -p$$i; \
+	done
+	
+	# Generate the meta-udeb dependancy lists.
+	@gawk '										\
+		/^Package:/ {								\
+			package=$$2; flavour=""; parch="" }				\
+		(/Package-Type: udeb/ && package !~ /^$(linux_udeb_name)-udebs-/) {      \
+			match(package, "'$(release)'-'$(abinum)'-(.*)-di", bits);       \
+			flavour = bits[1];						\
+		}									\
+		(/^Architecture:/ && $$0 " " ~ / '$(arch)'/) {				\
+			parch=$$0;							\
+		}									\
+		(flavour != "" && parch != "") {					\
+			udebs[flavour] = udebs[flavour] package ", ";			\
+			flavour=""; parch="";						\
+		}                                                      			\
+		END {                                                  			\
+			for (flavour in udebs) {					\
+				package="$(linux_udeb_name)-udebs-" flavour;		\
+				file="debian/" package ".substvars";			\
+				print("udeb:Depends=" udebs[flavour]) > file;		\
+				metas="'$(builddir)'/udeb-meta-packages";		\
+				print(package) >metas					\
+			}								\
+		}									\
+	' <$(CURDIR)/debian/control
+	@while read i; do \
+		$(lockme) dh_gencontrol -p$$i; \
+		dh_builddeb -p$$i; \
+	done <$(builddir)/udeb-meta-packages
--- linux-ein-5.4.0.orig/debian/scripts/abi-check
+++ linux-ein-5.4.0/debian/scripts/abi-check
@@ -0,0 +1,210 @@
+#!/usr/bin/perl -w
+
+my $flavour = shift;
+my $prev_abinum = shift;
+my $abinum = shift;
+my $prev_abidir = shift;
+my $abidir = shift;
+my $skipabi = shift;
+
+my $fail_exit = 1;
+my $EE = "EE:";
+my $errors = 0;
+my $abiskip = 0;
+
+my $count;
+
+print "II: Checking ABI for $flavour...\n";
+
+if (-f "$prev_abidir/ignore"
+    or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") {
+	print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n";
+	$fail_exit = 0;
+	$abiskip = 1;
+	$EE = "WW:";
+}
+
+if ($prev_abinum != $abinum) {
+	print "II: Different ABI's, running in no-fail mode\n";
+	$fail_exit = 0;
+	$EE = "WW:";
+}
+
+if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") {
+	print "EE: Previous or current ABI file missing!\n";
+	print "    $abidir/$flavour\n" if not -f "$abidir/$flavour";
+	print "    $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour";
+
+	# Exit if the ABI files are missing, but return status based on whether
+	# skip ABI was indicated.
+	if ("$abiskip" eq "1") {
+		exit(0);
+	} else {
+		exit(1);
+	}
+}
+
+my %symbols;
+my %symbols_ignore;
+my %modules_ignore;
+my %module_syms;
+
+# See if we have any ignores
+my $ignore = 0;
+print "    Reading symbols/modules to ignore...";
+
+for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") {
+	if (-f $file) {
+		open(IGNORE, "< $file") or
+			die "Could not open $file";
+		while (<IGNORE>) {
+			chomp;
+			if ($_ =~ m/M: (.*)/) {
+				$modules_ignore{$1} = 1;
+			} else {
+				$symbols_ignore{$_} = 1;
+			}
+			$ignore++;
+		}
+		close(IGNORE);
+	}
+}
+print "read $ignore symbols/modules.\n";
+
+sub is_ignored($$) {
+	my ($mod, $sym) = @_;
+
+	die "Missing module name in is_ignored()" if not defined($mod);
+	die "Missing symbol name in is_ignored()" if not defined($sym);
+
+	if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
+		return 1;
+	}
+	return 0;
+}
+
+# Read new syms first
+print "    Reading new symbols ($abinum)...";
+$count = 0;
+open(NEW, "< $abidir/$flavour") or
+	die "Could not open $abidir/$flavour";
+while (<NEW>) {
+	chomp;
+	m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+	$symbols{$4}{'type'} = $1;
+	$symbols{$4}{'loc'} = $2;
+	$symbols{$4}{'hash'} = $3;
+	$module_syms{$2} = 0;
+	$count++;
+}
+close(NEW);
+print "read $count symbols.\n";
+
+# Now the old symbols, checking for missing ones
+print "    Reading old symbols ($prev_abinum)...";
+$count = 0;
+open(OLD, "< $prev_abidir/$flavour") or
+	die "Could not open $prev_abidir/$flavour";
+while (<OLD>) {
+	chomp;
+	m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+	$symbols{$4}{'old_type'} = $1;
+	$symbols{$4}{'old_loc'} = $2;
+	$symbols{$4}{'old_hash'} = $3;
+	$count++;
+}
+close(OLD);
+
+print "read $count symbols.\n";
+
+print "II: Checking for missing symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'type'})) {
+		print "\n" if not $count;
+		printf("    MISS : %s%s\n", $sym,
+			is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
+		$count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
+	}
+}
+print "    " if $count;
+print "found $count missing symbols\n";
+if ($count) {
+	print "$EE Symbols gone missing (what did you do!?!)\n";
+	$errors++;
+}
+
+
+print "II: Checking for new symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'old_type'})) {
+		print "\n" if not $count;
+		print "    NEW : $sym\n";
+		$count++;
+	}
+}
+print "    " if $count;
+print "found $count new symbols\n";
+if ($count and $prev_abinum == $abinum) {
+	print "WW: Found new symbols within same ABI. Not recommended\n";
+}
+
+print "II: Checking for changes to ABI...\n";
+$count = 0;
+my $moved = 0;
+my $changed_type = 0;
+my $changed_hash = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'old_type'}) or
+	    !defined($symbols{$sym}{'type'})) {
+		next;
+	}
+
+	# Changes in location don't hurt us, but log it anyway
+	if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
+		printf("    MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'},
+			$symbols{$sym}{'loc'});
+		$moved++;
+	}
+
+	# Changes to export type are only bad if new type isn't
+	# EXPORT_SYMBOL. Changing things to GPL are bad.
+	if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
+		printf("    TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
+			$symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+			? " (ignored)" : "");
+		$changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL"
+			and !is_ignored($symbols{$sym}{'loc'}, $sym);
+	}
+
+	# Changes to the hash are always bad
+	if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
+		printf("    HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
+			$symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+			? " (ignored)" : "");
+		$changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
+		$module_syms{$symbols{$sym}{'loc'}}++;
+	}
+}
+
+print "WW: $moved symbols changed location\n" if $moved;
+print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type;
+print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash;
+
+$errors++ if $changed_hash or $changed_type;
+if ($changed_hash) {
+	print "II: Module hash change summary...\n";
+	foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
+		next if ! $module_syms{$mod};
+		printf("    %-40s: %d\n", $mod, $module_syms{$mod});
+	}
+}
+
+print "II: Done\n";
+
+if ($errors) {
+	exit($fail_exit);
+} else {
+	exit(0);
+}
--- linux-ein-5.4.0.orig/debian/scripts/config-check
+++ linux-ein-5.4.0/debian/scripts/config-check
@@ -0,0 +1,163 @@
+#!/usr/bin/perl
+#
+# check-config -- check the current config for issues
+#
+use strict;
+use File::Basename;
+use File::Spec;
+
+my $P = 'check-config';
+
+my $test = -1;
+if ($ARGV[0] eq '--test') {
+	$test = $ARGV[1] + 0;
+} elsif ($#ARGV != 5) {
+	die "Usage: $P <config> <arch> <flavour> <commonconfig> <warn-only> <enforce-all>\n";
+}
+
+my ($configfile, $arch, $flavour, $commonconfig, $warn_only, $enforce_all) = @ARGV;
+
+my %values = ();
+
+# If we are in overridden then still perform the checks and emit the messages
+# but do not return failure.  Those items marked FATAL will alway trigger
+# failure.
+my $fail_exit = 1;
+$fail_exit = 0 if ($warn_only eq 'true' || $warn_only eq '1');
+my $exit_val = 0;
+
+$enforce_all = 0 if $enforce_all eq "no" or $enforce_all eq "false";
+
+# Load up the current configuration values -- FATAL if this fails
+print "$P: $configfile: loading config\n";
+open(CONFIG, "<$configfile") || die "$P: $configfile: open failed -- $! -- aborting\n";
+while (<CONFIG>) {
+	# Pull out values.
+	/^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next;
+	if ($2 eq 'is not set') {
+		$values{$1} = 'n';
+	} else {
+		$values{$1} = $2;
+	}
+}
+close(CONFIG);
+
+sub read_annotations {
+    my ($filename) = @_;
+    my %annot;
+    my $form = 1;
+    my ($config, $value, $options);
+
+    # Keep track of the configs that shouldn't be appended because
+    # they were include_annot from another annotations file.
+    # That's a hash of undefs, aka a set.
+    my %noappend;
+
+    print "$P: $filename loading annotations\n";
+    open(my $fd, "<$filename") ||
+	die "$P: $filename: open failed -- $! -- aborting\n";
+    while (<$fd>) {
+	if (/^# FORMAT: (\S+)/) {
+	    die "$P: $1: unknown annotations format\n" if ($1 < 2 || $1 > 4);
+	    $form = $1;
+	}
+
+	# Format #3 and #4 add the include directive on top of format #2:
+	if ($form >= 3 && /^\s*include(\s|$)/) {
+	    # Include quoted or unquoted files:
+	    if (/^\s*include\s+"(.*)"\s*$/ || /^\s*include\s+(.*)$/) {
+		# The include is relative to the current file
+		my $include_filename = File::Spec->join(dirname($filename), $1);
+		# Append the include files
+		my %include_annot = read_annotations($include_filename);
+		%annot = ( %annot, %include_annot );
+		# And marked them to not be appended:
+		my %included_noappend;
+		# Discard the values and keep only the keys
+		@included_noappend{keys %include_annot} = ();
+		%noappend = ( %noappend, %included_noappend );
+		next;
+	    } else {
+		die "$P: Invalid include: $_";
+	    }
+	}
+
+	/^#/ && next;
+	chomp;
+	/^$/ && next;
+	/^CONFIG_/ || next;
+
+	if ($form == 1) {
+	    ($config, $value, $options) = split(' ', $_, 3);
+	} elsif ($form >= 2) {
+	    ($config, $options) = split(' ', $_, 2);
+	}
+
+	if (exists $noappend{$config}) {
+	    delete $annot{$config};
+	    delete $noappend{$config};
+	}
+	$annot{$config} = $annot{$config} . ' ' . $options;
+    }
+    close($fd);
+    return %annot;
+}
+
+# ANNOTATIONS: check any annotations marked for enforcement
+my $annotations = "$commonconfig/annotations";
+my %annot = read_annotations($annotations);
+
+my $pass = 0;
+my $total = 0;
+my ($config, $value, $options, $option, $check, $policy);
+for $config (keys %annot) {
+	$check = $enforce_all;
+	$options = $annot{$config};
+
+	$policy = undef;
+	while ($options =~ /\s*([^\s<]+)<(.*?)?>/g) {
+		($option, $value) = ($1, $2);
+
+		if ($option eq 'mark' && $value eq 'ENFORCED') {
+			$check = 1;
+
+		} elsif ($option eq 'policy') {
+			if ($value =~ /^{/) {
+				$value =~ s/:/=>/g;
+				$policy = eval($value);
+				warn "$config: $@" if ($@);
+			} else {
+				$policy = undef;
+			}
+		}
+	}
+	if ($check == 1 && !defined($policy)) {
+		print "$P: INVALID POLICY (use policy<{...}>) $config$options\n";
+		$total++;
+		$check = 0;
+	}
+	if ($check) {
+		# CONFIG_VERSION_SIGNATURE is dynamically set during the build
+		next if ($config eq "CONFIG_VERSION_SIGNATURE");
+		my $is = '-';
+		$is = $values{$config} if (defined $values{$config});
+
+		my $value = '-';
+		for my $which ("$arch-$flavour", "$arch-*", "*-$flavour", "$arch", "*") {
+			if (defined $policy->{$which}) {
+				$value = $policy->{$which};
+				last;
+			}
+		}
+		if ($is eq $value) {
+			$pass++;
+		} else {
+			print "$P: FAIL ($is != $value): $config$options\n";
+			$exit_val = $fail_exit;
+		}
+		$total++;
+	}
+}
+
+print "$P: $pass/$total checks passed -- exit $exit_val\n";
+exit $exit_val;
--- linux-ein-5.4.0.orig/debian/scripts/control-create
+++ linux-ein-5.4.0/debian/scripts/control-create
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. debian/debian.env
+
+vars=$1
+any_signed=$2
+
+. $vars
+
+[ "$provides" != '' ] && provides="$provides, "
+
+if [ "$is_sub" = "" ]; then
+	flavour=$(basename $vars | sed 's/.*\.//')
+	stub="${DEBIAN}/control.d/flavour-control.stub debian/control.d/flavour-buildinfo.stub"
+	if [ "$any_signed" = 'true' ]; then
+		sign_me_pkg="-unsigned"
+		sign_me_txt=" unsigned"
+		sign_peer_pkg=""
+	else
+		sign_me_pkg=""
+		sign_me_txt=""
+		sign_peer_pkg="-unsigned"
+	fi
+else
+	flavour=$(basename $vars .vars)
+	stub=${DEBIAN}/sub-flavours/control.stub
+fi
+
+cat $stub | grep -v '^#' | sed \
+	-e "s#FLAVOUR#$flavour#g"		\
+	-e "s#DESC#$desc#g"			\
+	-e "s#ARCH#$arch#g"			\
+	-e "s#SUPPORTED#$supported#g"		\
+	-e "s#TARGET#$target#g"			\
+	-e "s#BOOTLOADER#$bootloader#g" 	\
+	-e "s#=PROVIDES=#$provides#g"		\
+	-e "s#=CONFLICTS=#$conflicts#g"		\
+	-e "s#=SIGN-ME-PKG=#$sign_me_pkg#g"	\
+	-e "s#=SIGN-ME-TXT=#$sign_me_txt#g"	\
+	-e "s#=SIGN-PEER-PKG=#$sign_peer_pkg#g"
--- linux-ein-5.4.0.orig/debian/scripts/dkms-build
+++ linux-ein-5.4.0/debian/scripts/dkms-build
@@ -0,0 +1,261 @@
+#!/bin/sh
+set -e
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+here=$(dirname "$(readlink -f "${0}")")
+
+srcdir=$(pwd)
+cd "$dkms_dir" || exit 1
+
+built_using_record()
+{
+	local subst="$1"
+	local built_using="$2"
+	if [ ! -f "$subst" ]; then
+		touch "$subst"
+	fi
+	if ! grep -q -s "^linux:BuiltUsing=" "$subst"; then
+		echo "linux:BuiltUsing=" >>"$subst"
+	fi
+	sed -i -e "s/^\(linux:BuiltUsing=.*\)/\1$built_using, /" "$subst"
+}
+
+# ABI: returns present in $? and located path in lpackage_path when found.
+package_present()
+{
+	for lpackage_path in "$1"_*.deb
+	do
+		break
+	done
+	[ -f "$lpackage_path" ]
+}
+
+# Download and extract the DKMS package -- note there may be more
+# than one package to install.
+for package_path in "$@"
+do
+	package_file=$(basename "$package_path")
+	echo "II: dkms-build downloading $package ($package_file)"
+	rpackage=$( echo "$package_path" | sed -e 's@.*/@@' -e 's@_.*@@' )
+	lpackage=$( echo "$rpackage" | sed -e 's@=.*@@' )
+
+	while true
+	do
+		if package_present "$lpackage"; then
+			break
+		fi
+		case "$package_path" in
+		pool/*)
+			# Attempt download from the launchpad librarian first.
+			"$here/file-downloader" "https://launchpad.net/ubuntu/+archive/primary/+files/$package_file" || true
+			if package_present "$lpackage"; then
+				break
+			fi
+
+			# Download from the available pools.
+			for pool in $( grep -h '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | awk '{print $2}' | sort -u )
+			do
+				if package_present "$lpackage"; then
+					break
+				fi
+				url="$pool/$package_path"
+				"$here/file-downloader" "$url" && break || true
+				# No components in PPAs.
+				url=$(echo "$url" | sed -e 's@/pool/[^/]*/@/pool/main/@')
+				"$here/file-downloader" "$url" && break || true
+			done
+			;;
+		http*:*)
+			"$here/file-downloader" "$package_path"
+			;;
+		*/*)
+			cp -p "$package_path" .
+			;;
+		*)
+			apt-get download "$rpackage"
+			;;
+		esac
+		break
+	done
+	if ! package_present "$lpackage"; then
+		echo "EE: $lpackage not found"
+		exit 1
+	fi
+
+	dpkg -x "$lpackage"_*.deb "$package"
+
+	lversion=$( echo "$lpackage_path" | sed -e 's@.*/@@' -e 's@_[^_]*$@@' -e 's@.*_@@')
+	#built_using_record "$srcdir/debian/$pkgname.substvars" "$built_using$lpackage (= $lversion)"
+done
+
+# Pick out the package/version from the dkms.conf.
+for dkms_conf in "$package/usr/src"/*/"dkms.conf"
+do
+	break
+done
+
+# It seems some packages have a # in the name which works fine if the
+# package is installed directly, but not so much if we build it out
+# of the normal location.
+sed -i -e '/^PACKAGE_NAME=/ s/#//g' "$dkms_conf"
+
+# Run any dkms-package specfic configuration steps
+dkms_config_specific="$srcdir/$0-configure--$package"
+dkms_config_generic=$(echo "$dkms_config_specific" | sed -e 's/-[0-9][0-9]*$/-N/')
+for dkms_config in "$dkms_config_specific" "$dkms_config_generic"
+do
+	if [ -z "$dkms_config" -o ! -e "$dkms_config" ]; then
+		continue
+	fi
+	echo "II: dkms-build-configure $(basename "$dkms_config") found, executing"
+	"$dkms_config" \
+		"$srcdir" \
+		"$dkms_conf" \
+		"$dkms_dir" \
+		"$abi_flavour" \
+		"$sign" \
+		"$pkgname" \
+		"$pkgdir" \
+		"$dbgpkgdir" \
+		"$package" \
+		"$@" || exit 1
+	break
+done
+
+cat - <<'EOF' >>"$dkms_conf"
+POST_BUILD="ubuntu-save-objects ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/objects $POST_BUILD"
+EOF
+ubuntu_script="$(dirname "$dkms_conf")/ubuntu-save-objects"
+cat - <<'EOF' >"$ubuntu_script"
+#!/bin/sh
+from="$1"
+to="$2"
+script="$3"
+shift 2
+
+# Copy the objects.
+echo "II: copying objects to '$to'"
+mkdir -p "$to"
+(cd "$from" && find -name \*.o -o -name \*.o.ur-\* | cpio -Lpd "$to")
+
+# Call the original post_install script if there is one.
+[ "$script" = '' ] && exit 0
+
+shift
+exec "$(dirname "$0")/$script" "$@"
+EOF
+chmod +x "$ubuntu_script"
+dkms_package=$( sed -ne 's/PACKAGE_NAME="\(.*\)"/\1/p' "$dkms_conf" )
+dkms_version=$( sed -ne 's/PACKAGE_VERSION="\(.*\)"/\1/p' "$dkms_conf" )
+
+# Build the DKMS binaries.
+echo "II: dkms-build building $package"
+fakeroot=""
+[ $(id -u) -ne 0 ] && fakeroot="/usr/bin/fakeroot"
+rc=0
+$fakeroot /usr/sbin/dkms build --no-prepare-kernel --no-clean-kernel \
+	-k "$abi_flavour" \
+	--sourcetree "$dkms_dir/source" \
+	--dkmstree "$dkms_dir/build" \
+	--kernelsourcedir "$dkms_dir/headers/linux-headers-$abi_flavour" \
+	"$dkms_conf" || rc=1
+
+# Find the log and add it to our own.
+for log in "$dkms_dir/build/$dkms_package/$dkms_version/$abi_flavour"/*/"log/make.log" "$dkms_dir/build/$dkms_package/$dkms_version/build/make.log"
+do
+	[ -f "$log" ] && break
+done
+sed -e "s@$dkms_dir@<<DKMSDIR>>@g" <"$log"
+
+# If this build failed then exit here.
+[ "$rc" != 0 ] && exit "$rc"
+
+# Install the modules with debug symbols we possibly built,
+# and strip the original modules for the next install step.
+if [ -n "$dbgpkgdir" ]; then
+	dbgpkgdir="$dbgpkgdir/$package"
+	echo "II: dkms-build installing $package into $dbgpkgdir (debug symbols)"
+	install -d "$dbgpkgdir"
+	find "$dkms_dir/build/$dkms_package/$dkms_version/$abi_version" -name \*.ko |
+	while read module; do
+		vmodule=$( basename "$module" )
+
+		# Check for '.debug_info' section in order to copy module.
+		# Useful if debug symbols are requested but not built for
+		# any reason (including not yet supported by DKMS package).
+		# Strip module just in case even if section isn't present.
+		if ${CROSS_COMPILE}objdump -h -j '.debug_info' "$module" >/dev/null 2>&1
+		then
+			echo "copying $vmodule"
+			cp "$module" "$dbgpkgdir"
+		else
+			echo "ignoring $vmodule (missing debug symbols)"
+		fi
+
+		# Just 'strip -g' as '/usr/sbin/dkms' does.
+		echo "stripping $vmodule"
+		strip -g "$module"
+	done
+fi
+
+# Install and optionally sign the modules we have built.
+pkgdir="$pkgdir/$package"
+echo "II: dkms-build installing $package into $pkgdir"
+install -d "$pkgdir"
+find "$dkms_dir/build/$dkms_package/$dkms_version/$abi_version" -name \*.ko |
+while read module; do
+	vmodule=$( basename "$module" )
+	case "$sign" in
+	--*)
+		echo "copying $vmodule"
+		cp "$module" "$pkgdir"
+		;;
+	*)
+		echo "signing $vmodule"
+		$sign "$module" "$pkgdir/$vmodule"
+		;;
+	esac
+done
+
+find "$dkms_dir/build/$dkms_package/$dkms_version/objects" -name \*.o -print | \
+while read object
+do
+	"$srcdir/debian/scripts/fix-filenames" "$object" "$dkms_dir"
+done
+
+# Finally see if there is a dkms-package specific post processor present.  Hand
+# it the original source directory, destination package directory, the objects
+# as squirreled away, and the log in case it is useful.  Finally pass a formed
+# signing command line in case we need to do that.
+dkms_build_specific="$srcdir/$0--$package"
+dkms_build_generic=$(echo "$dkms_build_specific" | sed -n -e 's/-[0-9][0-9]*[a-z]*$/-N/p')
+for dkms_build in "$dkms_build_specific" "$dkms_build_generic"
+do
+	if [ -z "$dkms_build" -o ! -e "$dkms_build" ]; then
+		continue
+	fi
+	echo "II: dkms-build override $(basename "$dkms_build") found, executing"
+	"$dkms_build" \
+		"$srcdir" \
+		"$dkms_dir/build/$dkms_package/$dkms_version/objects" \
+		"$log" \
+		"$dkms_dir" \
+		"$abi_flavour" \
+		"$sign" \
+		"$pkgname" \
+		"$pkgdir" \
+		"$dbgpkgdir" \
+		"$package" \
+		"$@" || exit 1
+	break
+done
+
+echo "II: dkms-build build $package complete"
--- linux-ein-5.4.0.orig/debian/scripts/dkms-build--nvidia-N
+++ linux-ein-5.4.0/debian/scripts/dkms-build--nvidia-N
@@ -0,0 +1,113 @@
+#!/bin/sh
+set -e
+
+srcdir="$1"
+objects="$2"
+log="$3"
+shift 3
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+build="$( dirname "$objects" )/build"
+
+# Copy over the objects ready for reconstruction.  The objects copy contains
+# the *.o files and the *.o-ur* retpoline files to allow the kernel to track
+# any retpoline sequences therein.  For our purposes we only want the *.o
+# files, elide the rest.
+mkdir -p "$pkgdir/bits/scripts"
+(
+	gcc_variant1=$(gcc --version | head -1 | sed -e 's/^gcc/GCC:/')
+	gcc_variant2=$(gcc --version | head -1 | sed -e 's/^\(gcc\) \((.*)\) \(.*\)$/\1 version \3 \2/')
+	cd "$objects" || exit 1
+	find -name \*.o | \
+	while read file
+	do
+		cp --parents "$file" "$pkgdir/bits"
+		"$srcdir/debian/scripts/fix-filenames" "$pkgdir/bits/$file" "$gcc_variant1"
+		"$srcdir/debian/scripts/fix-filenames" "$pkgdir/bits/$file" "$gcc_variant2"
+	done
+)
+
+# Install the support files we need.
+echo "II: copying support files ..."
+for lds_src in \
+	"$dkms_dir/headers/linux-headers-$abi_flavour/scripts/module.lds" \
+	"/usr/src/linux-headers-$abi_flavour/scripts/module.lds" \
+	"$dkms_dir/headers/linux-headers-$abi_flavour/scripts/module-common.lds" \
+	"/usr/src/linux-headers-$abi_flavour/scripts/module-common.lds"
+do
+	[ ! -f "$lds_src" ] && continue
+	echo "II: copying support files ... found $lds_src"
+	cp "$lds_src" "$pkgdir/bits/scripts"
+	break
+done
+
+# Build helper scripts.
+cat - <<'EOL' >"$pkgdir/bits/BUILD"
+[ "$1" = "unsigned" ] && { signed_only=:; shift; }
+[ "$1" = "nocheck" ] && { check_only=:; shift; }
+EOL
+grep /usr/bin/ld.bfd "$log" | grep -v scripts/genksyms/genksyms | sed -e "s@$build/@@g" >>"$pkgdir/bits/BUILD"
+sed -e 's/.*-o  *\([^ ]*\) .*/rm -f \1/g' <"$pkgdir/bits/BUILD" >"$pkgdir/bits/CLEAN"
+
+# As the builds contain the absolute filenames as used.  Use RECONSTRUCT to
+# rebuild the .ko's, sign them, pull off the signatures and then finally clean
+# up again.
+(
+	cd "$pkgdir/bits" || exit 1
+
+	# Add checksum check.
+	echo "\$check_only sha256sum -c SHA256SUMS || exit 1" >>"$pkgdir/bits/BUILD"
+
+	# Add .ko handling to the CLEAN/BUILD dance.
+	for ko in "$pkgdir"/*.ko
+	do
+		ko=$(basename "$ko")
+		echo "\$signed_only cat '$ko' '$ko.sig' >'../$ko'" >>"$pkgdir/bits/BUILD"
+		echo "\$signed_only rm -f '$ko'" >>"$pkgdir/bits/BUILD"
+		echo "rm -f '../$ko'" >>"$pkgdir/bits/CLEAN"
+	done
+
+	# Clear out anything we are not going to distribute and build unsigned .kos.
+	sh ./CLEAN
+	sh ./BUILD unsigned nocheck
+
+	if [ "$sign" = "--custom" ]; then
+		# We are building for and archive custom signing upload.  Keep everything.
+		:
+	elif [ "$sign" = "--lrm" ]; then
+		# We are in the LRM build; grab sha256 checksums and clean up.
+		sha256sum -b *.ko >"SHA256SUMS"
+		sh ./CLEAN
+
+	else
+		# We are in the main kernel, put the .kos together as we will
+		# on the users machine, sign them, and keep just the signature.
+		: >"SHA256SUMS"
+		for ko in *.ko
+		do
+			echo "detached-signature $ko"
+			$sign "$ko" "$ko.signed"
+			length=$( stat --format %s "$ko" )
+			dd if="$ko.signed" of="$ko.sig" bs=1 skip="$length" 2>/dev/null
+
+			rm -f "$ko.signed"
+			# Keep a checksum of the pre-signed object so we can check it is
+			# built correctly in LRM.
+			sha256sum -b "$ko" >>"SHA256SUMS"
+		done
+
+		# Clean out anything which not a signature.
+		mv "$pkgdir/bits/"*.sig "$pkgdir"
+		mv "$pkgdir/bits/SHA256SUMS" "$pkgdir"
+		find "$pkgdir" -name \*.sig -prune -o -name SHA256SUMS -prune -o -type f -print | xargs rm -f
+		find "$pkgdir" -depth -type d -print | xargs rmdir --ignore-fail-on-non-empty
+	fi
+) || exit "$?"
--- linux-ein-5.4.0.orig/debian/scripts/dkms-build--virtualbox-guest
+++ linux-ein-5.4.0/debian/scripts/dkms-build--virtualbox-guest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+srcdir="$1"
+objects="$2"
+log="$3"
+shift 3
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+# We want to ship the vboxvideo.ko from the upstream staging tree, so
+# remove the one built via dkms.
+rm -f "$pkgdir/vboxvideo.ko"
--- linux-ein-5.4.0.orig/debian/scripts/dkms-build-configure--zfs
+++ linux-ein-5.4.0/debian/scripts/dkms-build-configure--zfs
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+srcdir="$1"
+dkms_conf="$2"
+shift 2
+
+dkms_dir="$1"
+abi_flavour="$2"
+sign="$3"
+pkgname="$4"
+pkgdir="$5"
+dbgpkgdir="$6"
+package="$7"
+shift 7
+
+# ZFS debug symbols are enabled in dkms.conf via PACKAGE_CONFIG file.
+if [ -n "$dbgpkgdir" ]; then
+	echo "enable zfs debug symbols"
+	pkg_cfg="$(dirname "$dkms_conf")/pkg_cfg"
+	echo 'ZFS_DKMS_ENABLE_DEBUGINFO=yes' >"$pkg_cfg"
+	echo 'ZFS_DKMS_DISABLE_STRIP=yes'   >>"$pkg_cfg"
+	sed -i "s,^\(PACKAGE_CONFIG=\).*,\1$pkg_cfg," $dkms_conf
+fi
--- linux-ein-5.4.0.orig/debian/scripts/file-downloader
+++ linux-ein-5.4.0/debian/scripts/file-downloader
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+if [ "$#" -ne 1 ]; then
+	echo "Usage: $0 <url>" 1>&2
+	exit 1
+fi
+url="$1"
+
+to=$(basename "$url")
+
+count=0
+what='fetching'
+while :
+do
+	if [ "$count" -eq 20 ]; then
+		echo "EE: excessive redirects" 1>&2
+		exit 1
+	fi
+	count=$(($count+1))
+
+	echo "II: $what $url"
+
+	curl --silent --fail --show-error "$url" -o "$to" -D "$to.hdr" || exit 1
+	redirect=$(awk '/^Location: / {gsub(/^[[:space:]]+|[[:space:]]+$/,"",$2); print $2;}' "$to.hdr")
+	[ -z "$redirect" ] && break
+	what='  following'
+
+	url=$(echo "$redirect" | sed -e 's@https://launchpadlibrarian.net/@http://launchpadlibrarian.net/@')
+	if [ "$redirect" != "$url" ]; then
+		echo "II:   fixing $redirect"
+	fi
+done
+
+exit 0
--- linux-ein-5.4.0.orig/debian/scripts/fix-filenames.c
+++ linux-ein-5.4.0/debian/scripts/fix-filenames.c
@@ -0,0 +1,80 @@
+/*
+ * fix-filenames: find a specified pathname prefix and remove it from
+ *                C strings.
+ *
+ * Copyright (C) 2018 Canonical Ltd.
+ * Author: Andy Whitcroft <apw@canonical.com>
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+int
+main(int argc, char *argv[])
+{
+	int rc;
+	char *in_name;
+	char *prefix;
+	int prefix_len;
+	int in_fd;
+	struct stat in_info;
+	char *in;
+	off_t size;
+	int length;
+
+	if (argc != 3) {
+		fprintf(stderr, "Usage: %s <file> <prefix>\n", argv[0]);
+		exit(1);
+	}
+	in_name    = argv[1];
+	prefix     = argv[2];
+	prefix_len = strlen(prefix);
+
+	in_fd = open(in_name, O_RDWR);
+	if (in_fd < 0) {
+		perror("open input failed");
+		exit(1);
+	}
+
+	rc = fstat(in_fd, &in_info);
+	if (rc < 0) {
+		perror("fstat input failed");
+		exit(1);
+	}
+	size = in_info.st_size;
+
+	in = mmap((void *)0, size, PROT_READ|PROT_WRITE, MAP_SHARED, in_fd, (off_t)0);
+	if (!in) {
+		perror("mmap failed");
+		exit(1);
+	}
+
+	for (; size > 0; size--, in++) {
+		if (*in != *prefix)
+			continue;
+		if (strncmp(in, prefix, prefix_len) != 0)
+			continue;
+		/* In the case of an exact match there there is nothing to move. */
+		if (in[prefix_len] == '\0')
+			length = 0;
+		/* If this is a filename, strip the leading slash. */
+		else if (in[prefix_len] == '/')
+			length = strlen(in + prefix_len + 1) + 1;
+		/* Otherwise just keep the suffix. */
+		else
+			length = strlen(in + prefix_len) + 1;
+
+		/*
+		 * Copy the suffix portion down to the start and clear
+		 * the remainder of the space to 0.
+		 */
+		memmove(in, in + prefix_len + 1, length);
+		memset(in + length, '\0', prefix_len);
+	}
+}
--- linux-ein-5.4.0.orig/debian/scripts/link-headers
+++ linux-ein-5.4.0/debian/scripts/link-headers
@@ -0,0 +1,42 @@
+#!/bin/bash -e
+
+. debian/debian.env
+
+hdrdir="$1"
+symdir="$2"
+flavour="$3"
+
+echo "Symlinking and copying headers for $flavour..."
+
+excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o"
+
+(
+find . $excludes  -type f \
+	\( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+	-name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print
+find ./include ./scripts -name .gitignore -prune -o -type f -print
+find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print
+) | (
+while read file; do
+	dir=$file
+	lastdir=$file
+
+	if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then
+		continue
+	fi
+
+	while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do
+		lastdir=$dir
+		dir=`dirname $dir`
+	done
+	# If the last item to exist is a symlink we assume all is good
+	if [ ! -L "$hdrdir/$dir" ]; then
+		# Turns things like "./foo" into "../"
+		deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`"
+		item="`echo -n $lastdir | sed -e 's/^\.\///'`"
+		ln -s $deref$symdir/$item $hdrdir/$item
+	fi
+done
+)
+
+exit
--- linux-ein-5.4.0.orig/debian/scripts/misc/annotations
+++ linux-ein-5.4.0/debian/scripts/misc/annotations
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+# -*- mode: python -*-
+
+# This file is not installed; it's just to run annotations from inside a source
+# distribution without installing it in the system.
+
+import sys
+
+# Prevent generating .pyc files on import
+#
+# We may end up adding these files to our git repos by mistake, so simply
+# prevent generating them in advance.
+#
+# There's a tiny performance penalty with this, because python needs to
+# re-generate the bytecode on-the-fly every time the script is executed, but
+# this overhead is absolutely negligible compared the rest of the kernel build
+# time.
+sys.dont_write_bytecode = True
+
+import os  # noqa: E402 Import not at top of file
+from kconfig import run  # noqa: E402 Import not at top of file
+
+
+# Update PATH to make sure that annotations can be executed directly from the
+# source directory.
+def update_path():
+    script_dir = os.path.dirname(os.path.abspath(__file__))
+    current_path = os.environ.get("PATH", "")
+    new_path = f"{script_dir}:{current_path}"
+    os.environ["PATH"] = new_path
+
+
+update_path()
+exit(run.main())
--- linux-ein-5.4.0.orig/debian/scripts/misc/arch-has-odm-enabled.sh
+++ linux-ein-5.4.0/debian/scripts/misc/arch-has-odm-enabled.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Evaluate whether arch ($1) will be built with do_odm_drivers set to true.
+set -e
+
+if [ "$1" = "" ]; then
+	# This would be set doing the actual kernel build
+	if [ "$KBUILD_VERBOSE" = "" ]; then
+		return 1
+	fi
+	case $ARCH in
+	x86)	ARCH=amd64;;
+	*)	;;
+	esac
+else
+	ARCH=$1
+fi
+
+TOPDIR=$(dirname $0)/../../..
+. $TOPDIR/debian/debian.env
+RULESDIR=$TOPDIR/$DEBIAN/rules.d
+
+do_odm_drivers=false
+for f in $ARCH.mk hooks.mk; do
+	eval $(cat $RULESDIR/$f | sed -n -e '/do_odm_drivers/s/ \+//gp')
+done
+if [ "$do_odm_drivers" != "true" ]; then
+	return 1
+fi
+
+return 0
--- linux-ein-5.4.0.orig/debian/scripts/misc/final-checks
+++ linux-ein-5.4.0/debian/scripts/misc/final-checks
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+debian="$1"
+abi="$2"
+
+. "$debian/etc/kernelconfig"
+archs=$( awk '/^Architecture:/ { $1=""; for (i=1; i<=NF; i++) { if ($i != "all") { print $i }}}' debian/control | sort -u)
+
+fail=0
+
+failure()
+{
+	echo "EE: $@" 1>&2
+	fail=1
+}
+
+abi_check()
+{
+	local abidir="$1"
+	local arch="$2"
+	local flavour="$3"
+
+	local abidir="$abidir/$arch"
+
+	if [ ! -f "$abidir/$flavour" -a \
+	     ! -f "$abidir/$flavour.ignore" -a \
+	     ! -f "$abidir/ignore" ]
+	then
+		failure "$arch/$flavour ABI symbol file missing"
+	fi
+
+	if [ ! -f "$abidir/$flavour.modules" -a \
+	     ! -f "$abidir/$flavour.ignore.modules" -a \
+	     ! -f "$abidir/ignore.modules" ]
+	then
+		failure "$arch/$flavour ABI modules file missing"
+	fi
+
+	if [ ! -f "$abidir/$flavour.retpoline" -a \
+	     ! -f "$abidir/$flavour.ignore.retpoline" -a \
+	     ! -f "$abidir/ignore.retpoline" ]
+	then
+		failure "$arch/$flavour ABI retpoline file missing"
+	fi
+}
+
+abi_version="$debian/abi/version"
+if ! [ -f "$abi_version" ]; then
+    failure "$abi_version ABI version file missing"
+fi
+
+version=$(cat "$abi_version")
+if [ "$abi" != "$version" ]; then
+    failure "$abi_version ABI version mismatch ($abi != $version)"
+fi
+
+if [ -e $debian/config/config.common.ubuntu ]; then
+    if [ -d debian/certs ]; then
+        if ! grep -q '^CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"$' $debian/config/config.common.ubuntu; then
+	    failure "'CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"' is required"
+        fi
+    fi
+
+    if [ -d debian/revoked-certs ]; then
+        if ! grep -q '^CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"$' $debian/config/config.common.ubuntu; then
+	    failure "'CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"' is required"
+        fi
+    fi
+fi
+
+for arch in $archs
+do
+	image_pkg=$(awk -F '\\s*=\\s*' '$1 == "do_flavour_image_package" { print $2 }' $debian/rules.d/$arch.mk)
+	if [ "$image_pkg" = "false" ]; then
+		continue
+	fi
+	if [ ! -f "$debian/rules.d/$arch.mk" ]; then
+		continue
+	fi
+	flavours=$(
+		awk '/^\s*flavours\s*=/{
+			sub(/^\s*flavours\s*=\s*/, "");
+			print
+		}' "$debian/rules.d/$arch.mk")
+	for flavour in $flavours
+	do
+		flavour=$(echo "$flavour" | sed -e 's@.*/config.flavour.@@')
+		abi_check "$debian/abi" "$arch" "$flavour"
+	done
+done
+
+exit "$fail"
--- linux-ein-5.4.0.orig/debian/scripts/misc/find-missing-sauce.sh
+++ linux-ein-5.4.0/debian/scripts/misc/find-missing-sauce.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Find the 'UBUNTU: SAUCE:' patches that have been dropped from
+# the previous release.
+#
+PREV_REL=artful
+PREV_REPO=git://kernel.ubuntu.com/ubuntu/ubuntu-${PREV_REL}.git
+
+git fetch ${PREV_REPO} master-next
+git log --pretty=oneline FETCH_HEAD|grep SAUCE|while read c m;do echo $m;done |sort > $$.prev-rel
+git log --pretty=oneline |grep SAUCE|while read c m;do echo $m;done |sort > $$.curr-rel
+
+diff -u $$.prev-rel $$.curr-rel |grep "^-"
+rm -f $$.prev-rel $$.curr-rel
+
--- linux-ein-5.4.0.orig/debian/scripts/misc/find-obsolete-firmware
+++ linux-ein-5.4.0/debian/scripts/misc/find-obsolete-firmware
@@ -0,0 +1,91 @@
+#!/bin/bash
+#
+# Find all duplicate or obsolete firmware that is being carried
+# in the kernel firmware directory. Compare these files against
+# the linux-firmware package for the approriate release. For example,
+# assuming this is raring, then compare the kernel firmware files
+# against the raring branch of linux-firmware.
+#
+# Example: $0 ~/ubuntu/linux-firmware-raring
+
+USEAGE="$0 LINUX-FIRMWARE"
+
+. debian/debian.env
+
+NFWINFO="`find $DEBIAN -name fwinfo|wc -l`"
+if [ ! "$NFWINFO" = "1" ]
+then
+	echo Your repo is hosed. There can only be one fwinfo file.
+	find $DEBIAN -name fwinfo
+	exit 1
+fi
+
+FWINFO="`pwd`/`find $DEBIAN -name fwinfo`"
+
+if [ "$1" = "" ]
+then
+	echo $USEAGE
+	exit 1
+fi
+FW="$1"
+
+if [ ! -f $FW/WHENCE ]
+then
+	echo Bogus linux-firmware directory
+	exit 1
+fi
+if ! egrep -q "^firmware:" $FWINFO
+then
+	echo Bogus firmware info file
+	exit 1
+fi
+
+#
+# Prepare the tree and make firmware.
+#
+TEE="tee -a"
+LO=`pwd`/firmware.txt
+LF=`pwd`/lib/firmware
+rm -rf debian/build $LF $LO
+fakeroot debian/rules clean prepare-generic
+cp debian/build/build-generic/.config .
+mkdir -p $LF
+make firmware_install INSTALL_MOD_PATH=`pwd`
+
+(cd $LF
+find . -type f | while read f
+do
+	BN="`basename $f`"
+
+	if ! grep -q $BN $FWINFO
+	then
+		echo "Unused firmware: $f" | $TEE $LO
+	else
+		if [ -f $FW/$f ]
+		then
+			if ! cmp $FW/$f $f
+			then
+				echo "$f differs" | $TEE $LO
+			else
+				echo "$f is duplicated" | $TEE $LO
+			fi
+		else
+			echo "$f does not exist in $FW" | $TEE $LO
+		fi
+	fi
+done)
+
+#
+# Check for firmware files referenced by the kernel
+# that do not exist in either location.
+#
+cat $FWINFO | while read fwi f
+do
+	if [ -s lib/firmware/$f ] || [ -s $FW/$f ]
+	then
+		continue
+	else
+		echo "Missing firmware $f" | $TEE $LO
+	fi
+done
+
--- linux-ein-5.4.0.orig/debian/scripts/misc/fips-checks
+++ linux-ein-5.4.0/debian/scripts/misc/fips-checks
@@ -0,0 +1,138 @@
+#!/bin/bash -eu
+export LC_ALL=C.UTF-8
+
+usage() {
+	cat << EOF
+Usage: ${P:-$(basename "$0")} [-h|--help]
+
+Check if there are any FIPS relevant changes since the last
+release. Any change that is identified should have a justification in
+the justifications file or the check will fail.
+
+Optional arguments:
+  -h, --help            Show this help message and exit.
+  -p, --previous        Version to use as the previous base version.
+  -c, --current         Version to use as the current base version.
+
+EOF
+}
+
+prev_base_version=
+curr_base_version=
+crypto_files=( crypto arch/x86/crypto drivers/char/random.c lib/sha\* )
+
+c_red='\033[0;31m'
+c_green='\033[0;32m'
+c_off='\033[0m'
+
+# Parse arguments
+while [ "$#" -gt 0 ]; do
+	case "$1" in
+		-h|--help)
+			usage
+			exit 0
+			;;
+		-p|--previous)
+			shift
+			prev_base_version="$1"
+			;;
+		-c|--current)
+			shift
+			curr_base_version="$1"
+			;;
+		*)
+			usage
+			exit 1
+			;;
+	esac
+	shift
+done
+
+DEBIAN=
+# shellcheck disable=SC1091
+. debian/debian.env
+
+# Check if the "$DEBIAN" directory exists.
+if [ ! -d "$DEBIAN" ]; then
+	echo "You must run this script from the top directory of this repository."
+	exit 1
+fi
+
+CONF="$DEBIAN/etc/update.conf"
+if [ ! -f "$CONF" ]; then
+	echo "Missing file: $CONF"
+	exit 1
+fi
+# shellcheck disable=SC1090
+. "$CONF"
+
+if [ "$DEBIAN_MASTER" = "" ]; then
+	echo "DEBIAN_MASTER should be defined either in $DEBIAN/etc/update.conf or the environment"
+	exit 1
+fi
+
+# Find the base kernel version use by the previous version
+if [ -z "$prev_base_version" ]; then
+	offset=1
+	# Loop through each entry of the current changelog, searching for an
+	# entry that refers to the master version used as base (ie a line
+	# containing "[ Ubuntu: 4.15.0-39.42 ]"):
+	while true; do
+		changes=$(dpkg-parsechangelog -l"$DEBIAN/changelog" -SChanges -c1 -o"$offset")
+		if ! [ "$changes" ]; then
+			echo "Failed to retrieve base master version from changelog file: $DEBIAN/changelog"
+			exit 1
+		fi
+		prev_base_version=$(echo "$changes" | sed -n -r -e '/^\s.*\[ Ubuntu: ([~0-9.-]*) \]$/{s//\1/p;q}')
+		[ "$prev_base_version" ] && break
+		offset=$(( offset + 1 ))
+	done
+	if [ -z "${prev_base_version}" ]; then
+		echo "Failed to retrieve base version from previous version from changelog: $DEBIAN/changelog"
+		exit 1
+	fi
+fi
+
+# Find the current base kernel version
+if [ -z "$curr_base_version" ]; then
+	curr_base_version=$(dpkg-parsechangelog -l"${DEBIAN_MASTER}/changelog" -SVersion)
+	if ! [ "$curr_base_version" ]; then
+		echo "Failed to retrieve current master version from changelog: $DEBIAN_MASTER/changelog"
+		exit 1
+	fi
+fi
+
+# Check base kernel tags
+tag_prefix="Ubuntu-${DEBIAN_MASTER#debian.}-"
+prev_tag="${tag_prefix}${prev_base_version}"
+curr_tag="${tag_prefix}${curr_base_version}"
+for tag in "$prev_tag" "$curr_tag"; do
+	if ! git rev-parse --verify "$tag" &> /dev/null; then
+		echo "Missing tag \"$tag\". Please fetch tags from base kernel."
+		exit 1
+	fi
+done
+
+# Check all the changes
+fails=0
+justifications_file="$DEBIAN/fips.justifications"
+justifications=$(grep -P '^[^#\s]' "$justifications_file" 2> /dev/null || true)
+while read -r id; do
+	short_msg=$(git log --format=%s --max-count=1 "$id")
+	if echo "$justifications" | grep -q -x -F "$short_msg"; then
+		echo -e "${c_green}OK${c_off}   | ${id::12} ${short_msg}"
+		continue
+	fi
+	echo -e "${c_red}FAIL${c_off} | ${id::12} ${short_msg}"
+	fails=$(( fails + 1 ))
+done < <(git rev-list "${prev_tag}..${curr_tag}" -- "${crypto_files[@]}")
+
+echo
+if [ "$fails" -gt 0 ]; then
+	echo "FIPS relevant changes were found without justification: ${fails} change(s)."
+	echo "Please, check the commits above and update the file \"${justifications_file}\"."
+	exit 1
+fi
+
+echo "Check completed without errors."
+exit 0
--- linux-ein-5.4.0.orig/debian/scripts/misc/fw-to-ihex.sh
+++ linux-ein-5.4.0/debian/scripts/misc/fw-to-ihex.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+F=$1
+if [ "$F" = "" ]
+then
+	echo You must supply a firmware file.
+	exit 1
+fi
+
+echo "unsigned char d[] = {" > $F.c
+hexdump -v -e '"\t" 8/1 "0x%02x, " "\n"' $F >> $F.c
+echo "};" >> $F.c
+sed -i 's/0x .*$//' $F.c
+
+O="`dirname $F`/`basename $F`.o"
+gcc -o $O -c $F.c
+objcopy -Oihex $F.o $F.ihex
+
--- linux-ein-5.4.0.orig/debian/scripts/misc/gen-auto-reconstruct
+++ linux-ein-5.4.0/debian/scripts/misc/gen-auto-reconstruct
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+if [ "$#" -ne 3 ]; then
+	echo "Usage: $0 <orig tag>|<base release> <reconstruct> <options>" 1>&2
+	exit 1
+fi
+tag="$1"
+reconstruct="$2"
+options="$3"
+
+case "$tag" in
+v*)	;;
+*)	tag="v${tag%.*}" ;;
+esac
+
+# Validate the tag.
+count=$( git tag -l "$tag" | wc -l )
+if [ "$count" != 1 ]; then
+	echo "$0: $tag: tag invalid" 1>&2
+	exit 1
+fi
+
+#git ls-tree -r --full-tree HEAD | grep ^120 | \
+#while read mode type blobid name
+
+(
+	# Identify all new symlinks since the proffered tag.
+	echo "# Recreate any symlinks created since the orig."
+	git diff "$tag.." --raw --no-renames | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
+	while read name
+	do
+		link=$( readlink "$name" )
+
+		echo "[ ! -L '$name' ] && ln -sf '$link' '$name'"
+	done
+
+	# Identify files with execute permissions added since the proffered tag.
+	git diff "$tag.." --raw --no-renames | awk -F '[: \t]' '{print $2, $3, $NF }' | \
+	while IFS=" " read old new name
+	do
+		old=$( printf "0%s" $old )
+		new=$( printf "0%s" $new )
+		changed=$(( (old ^ new) & 0111 ))
+		if [ "$changed" -ne 0 ]; then
+			added=$(( new & 0111 ))
+			if [ "$added" -ne 0 ]; then
+				echo "chmod +x '$name'"
+                       elif [ "$new" -ne 0 ]; then
+				echo "chmod -x '$name'"
+			fi
+		fi
+	done
+
+       # Identify all removed files since the proffered tag.
+	echo "# Remove any files deleted from the orig."
+	git diff "$tag.." --raw --no-renames | awk '(/^:/ && $5 == "D") { print $NF }' | \
+	while read name
+	do
+		echo "rm -f '$name'"
+	done
+
+	# All done, make sure this does not complete in error.
+	echo "exit 0"
+) >"$reconstruct"
+
+(
+	# Identify all new symlinks since the proffered tag.
+	echo "# Ignore any symlinks created since the orig which are rebuilt by reconstruct."
+	git diff "$tag.." --raw --no-renames | awk '(/^:000000 120000/ && $5 == "A") { print $NF }' | \
+	while read name
+	do
+		echo "extend-diff-ignore=^$name\$"
+	done
+) >"$options.update"
+
+
+head='^## autoreconstruct -- begin$'
+foot='^## autoreconstruct -- end$'
+sed -i -e "
+	/$head/,/$foot/{
+		/$head/{
+			p;
+			r $options.update
+		};
+		/$foot/p;
+		d
+	}
+" "$options"
+rm -f "$options.update"
--- linux-ein-5.4.0.orig/debian/scripts/misc/get-firmware
+++ linux-ein-5.4.0/debian/scripts/misc/get-firmware
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# Find all files in linux-firmware that are new or different since the previous release
+# and copy them into the kernel firmware directory. You should only do this on the
+# backport branch since it would be redundant on the released kernel. It assumed you've
+# unpacked linux-firmware from each release into separate directories.
+#
+# Example: $0 ~/ubuntu/linux-firmware-precise ~/ubuntu/linux-firmware-quantal
+
+if [ "$1" = "" ] || [ "$2" = "" ] || [ ! -f $1/WHENCE ] || [ ! -f $2/WHENCE ]
+then
+	echo You must supply 2 firmware directories.
+	exit 1
+fi
+
+if [ ! -f debian/debian.env ]
+then
+	echo You must run this script from the root of the repo
+	exit 1
+fi
+. debian/debian.env
+
+NFWINFO="`find $DEBIAN -name fwinfo|wc -l`"
+if [ ! "$NFWINFO" = "1" ]
+then
+	echo Your repo is hosed. There can only be one fwinfo file.
+	find $DEBIAN -name fwinfo
+	exit 1
+fi
+
+FWINFO="`pwd`/`find $DEBIAN -name fwinfo`"
+
+CDIR=`pwd`
+OFW=$1
+NFW=$2
+
+cd $NFW
+#
+# Find all files in $NFW that are new or different from $1
+#
+(find . -type f | egrep -v "debian|git|LICEN|WHEN|READ|Make|configure" | sed 's;\./;;' | \
+while read f
+do
+	if grep -q $f $FWINFO
+	then
+		if [ ! -f $OFW/$f ]
+		then
+			echo $f
+		elif ! cmp $f $OFW/$f > /dev/null
+		then
+			echo $f
+		fi
+	fi
+done) |\
+while read f
+do
+	mkdir -p $CDIR/firmware/`dirname $f`
+	if [ ! -f $CDIR/firmware/`dirname $f`/`basename $f`.ihex ]
+	then
+		cp -v $f $CDIR/firmware/`dirname $f`
+	fi
+done
--- linux-ein-5.4.0.orig/debian/scripts/misc/getabis
+++ linux-ein-5.4.0/debian/scripts/misc/getabis
@@ -0,0 +1,222 @@
+#!/bin/bash
+
+export LC_ALL=C.UTF-8
+
+if [ "$#" = "1" ]; then
+	set - $(echo "$1" | sed -e 's/-/ /')
+fi
+if [ "$#" != "2" ]; then
+	echo "Usage: $0 <version>" 1>&2
+	echo "Usage: $0 <release> <revision>" 1>&2
+	exit 1
+fi
+
+if [ "$DEBIAN" = "" ]; then
+	. debian/debian.env
+fi
+
+ver=$1
+revision=$2
+abi=${revision%%.*}
+
+verabi=$ver-$abi
+verfull=$ver-$revision
+
+WGET="wget --tries=1 --timeout=10 --quiet -c"
+
+# Check if we use a flat (unversioned) ABI directory
+if [ -f "${DEBIAN}/abi/version" ] || \
+   grep -qP '^abidir\s+.*/__abi.current/' debian/rules.d/0-common-vars.mk ; then
+	echo "Using flat ABI directory"
+	flat_abi=1
+	abidir=$(pwd)/${DEBIAN}/abi
+else
+	echo "Using versioned ABI directory"
+	flat_abi=0
+	abidir=$(pwd)/${DEBIAN}/abi/${verfull}
+fi
+
+tmpdir="`pwd`/abi-tmp-$verfull"
+origdir="`pwd`"
+fwinfo=$abidir/fwinfo
+
+test -d $tmpdir || mkdir $tmpdir
+
+package_prefixes() {
+	: # no longer used ...
+}
+
+getall() {
+	arch=$1
+	shift
+
+	mkdir -p $abidir/$arch
+
+	for sub in $@; do
+		if [ -f $abidir/$arch/$sub ]; then
+			echo "Existing $sub($arch)..."
+			continue
+		fi
+		echo "Fetching $sub($arch)..."
+		getall_set "linux-buildinfo" "$arch" "$sub" || \
+		getall_set "linux-image-unsigned linux-modules linux-modules-extra" "$arch" "$sub" || \
+		getall_set "linux-image-unsigned linux-modules" "$arch" "$sub" || \
+		getall_set "linux-image linux-modules linux-modules-extra" "$arch" "$sub" || \
+		getall_set "linux-image linux-modules" "$arch" "$sub" || \
+		getall_set "linux-image linux-image-extra" "$arch" "$sub" || \
+		getall_set "linux-image" "$arch" "$sub" || \
+		{ echo "FAILED"; exit 1; }
+	done
+}
+getall_set()
+{
+	prefixes="$1"
+	arch="$2"
+	sub="$3"
+	(
+		echo -n "  set:"
+		filenames=""
+		cd $tmpdir
+		found=1
+		for prefix in $prefixes
+		do
+			echo -n " $prefix="
+			if [ "$found" = 0 ]; then
+				echo -n "-"
+				continue
+			fi
+			filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb
+			for r in "${repo_list[@]}"
+			do
+				if ! [ -f $filename ]; then
+					$WGET $r/$filename
+					rc="$?"
+					# If this was not successful or a valid error
+					# return from the server all bets are off, bail.
+					[ "$rc" != 0 -a "$rc" != 8 ] && return 2
+				fi
+				if [ -f $filename ]; then
+					echo -n "y"
+					filenames="$filenames $filename"
+					break
+				fi
+			done
+			if [ ! -f "$filename" ]; then
+				echo -n "n"
+				found=0
+			fi
+		done
+		echo ""
+		if [ "$found" = 0 ]; then
+			return 1
+		fi
+		echo "  extracting..."
+		for filename in $filenames
+		do
+			dpkg-deb --extract $filename tmp
+		done
+		# FORM 1: linux-image et al extracted here.
+		if [ -d tmp/boot ]; then
+			echo "  images..."
+			find tmp -name "*.ko" | while read f; do
+				modinfo $f | grep ^firmware >> $fwinfo
+			done
+			if [ -f tmp/boot/abi-* ]; then
+				mv tmp/boot/abi-* $abidir/$arch/$sub
+			else
+				echo "    NO ABI FILE"
+			fi
+			if [ -f tmp/boot/retpoline-* ]; then
+				mv tmp/boot/retpoline-* $abidir/$arch/$sub.retpoline
+			else
+				echo "    NO RETPOLINE FILE"
+			fi
+			(cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
+				sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
+				$abidir/$arch/$sub.modules
+			(
+				cd tmp;
+				# Prevent exposing some errors when called by python scripts. SIGPIPE seems to get
+				# exposed when using the `find ...` form of the command.
+				ko=$(find lib/modules/$verabi-$sub/kernel \
+					-name '*.ko' | head -1)
+				readelf -p .comment "$ko" | gawk '
+					($1 == "[") {
+						printf("%s", $3);
+						for (n=4; n<=NF; n++) {
+							printf(" %s", $n);
+						}
+						print ""
+					}' | sort -u >$abidir/$arch/$sub.compiler
+				version=`cat $abidir/$arch/$sub.compiler`
+				echo "    $version"
+			)
+		# FORM 2: moduleinfo packages
+		# cranky fix -- modinfo supported
+		else
+			echo "  buildinfo..."
+			base="tmp/usr/lib/linux/${verabi}-${sub}"
+			mv "$base/abi" "$abidir/$arch/$sub"
+			for comp in 'modules' 'retpoline' 'compiler'
+			do
+				mv "$base/$comp" "$abidir/$arch/$sub.$comp"
+			done
+			if [ -e "${base}"/modules.builtin ] ; then
+				mv "${base}"/modules.builtin "${abidir}/${arch}/${sub}".modules.builtin
+			fi
+			cat "$base/fwinfo" >>"$fwinfo"
+			if [ -e "${base}"/fwinfo.builtin ] ; then
+				cat "${base}"/fwinfo.builtin >> "${fwinfo}".builtin
+			fi
+		fi
+		rm -rf tmp $filenames
+		echo "  done"
+	)
+	rc="$?"
+	if [ "$rc" = 2 ]; then
+		echo "ERROR: downloads are reporting network failures" 1>&2
+		exit 1
+	fi
+	return "$rc"
+}
+
+# MAIN
+
+# Setup abi directory
+rm -rf "${abidir}"
+mkdir -p $abidir
+echo $abi > $abidir/abiname
+if [ ${flat_abi} -eq 1 ] ; then
+	echo "${verfull}" > "${abidir}"/version
+fi
+
+# NOTE: The flavours are hardcoded, because they may have changed from the
+# current build.
+
+. $DEBIAN/etc/getabis
+
+# Extract compiler source package version from e.g.:
+#   GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
+compilers=`sed 's/^.*(.* \(.*\)).*$/\1/' $abidir/*/*.compiler | sort -u | wc -l`
+if [ "$compilers" != 1 ]; then
+	echo "WARNING: inconsistent compiler versions detected:" 1>&2
+	sort -u $abidir/*/*.compiler | sed 's/^/WARNING:    /' 1>&2
+fi
+
+# Sort fwinfo files
+sort < $fwinfo | uniq > fwinfo.tmp
+mv fwinfo.tmp $fwinfo
+if [ -e  "${fwinfo}".builtin ] ; then
+	sort <  "${fwinfo}".builtin | uniq > fwinfo.tmp
+	mv fwinfo.tmp  "${fwinfo}".builtin
+fi
+
+rmdir $tmpdir
+
+# If this is running in a git repo, add the new ABI directory, remove the old
+if [ -d ".git" ]; then
+	git add "${abidir}"
+	if [ ${flat_abi} -eq 0 ] ; then
+		find "$DEBIAN"/abi/* -maxdepth 0 -type d | grep -v "$verfull" | while read f; do git rm -rf "$f"; done
+	fi
+fi
--- linux-ein-5.4.0.orig/debian/scripts/misc/git-ubuntu-log
+++ linux-ein-5.4.0/debian/scripts/misc/git-ubuntu-log
@@ -0,0 +1,166 @@
+#!/usr/bin/env python3
+
+import sys
+
+import codecs
+import urllib.request
+import json
+
+import textwrap
+
+sys.stdin = codecs.getreader("utf-8")(sys.stdin.detach())
+sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
+
+entries = []
+
+
+def add_entry(entry):
+    if entry and 'ignore' not in entry:
+        combo = []
+        for bug in set(entry.get('bugs', [])):
+            combo.append(bug)
+        for cve in set(entry.get('cves', [])):
+            combo.append(cve)
+        combo = sorted(combo)
+
+        if len(combo) == 0:
+            if entry.get('subject', "").startswith('UBUNTU'):
+                combo = '__packaging__'
+            else:
+                combo = '__mainline__'
+        else:
+            if entry.get('subject', "") == 'UBUNTU: link-to-tracker: update tracking bug':
+                # Construct a key with '__trackingbug__' on the first position
+                # and the tracking bug number afterwards
+                combo.insert(0, '__trackingbug__')
+                # Tracking bug goes at the top
+                keys.insert(0, combo)
+            else:
+                if combo not in keys:
+                    keys.append(combo)
+
+        entry['key'] = combo
+        entries.append(entry)
+
+
+# Suck up the git log output and extract the information we need.
+keys = []
+entry = None
+subject_wait = False
+for line in sys.stdin:
+    if line.startswith('commit '):
+        add_entry(entry)
+        entry = {}
+        subject_wait = True
+
+    elif line.startswith('Author: '):
+        bits = line.strip().split(maxsplit=1)
+        entry['author'] = bits[1]
+
+    elif subject_wait and line.startswith('    '):
+        subject_wait = False
+        entry['subject'] = line.strip()
+
+    elif line.startswith('    BugLink: '):
+        bits = line.strip().split(maxsplit=2)
+        if len(bits) > 2:
+            # There is text after the URL, so use that (after stripping the
+            # enclosing characters)
+            entry.setdefault('bugs', []).append(bits[2][1:-1])
+        elif 'launchpad.net' in bits[1]:
+            # Extract the bug number from the launchpad URL
+            bits = bits[1].split('/')
+            entry.setdefault('bugs', []).append(bits[-1])
+
+    elif line.startswith('    CVE-'):
+        entry.setdefault('cves', []).append(line.strip())
+
+    elif line.startswith('    Ignore:'):
+        entry['ignore'] = True
+
+    elif line.startswith('    Properties:'):
+        for prop in line.strip().split()[1:]:
+            if prop in ('ignore', 'no-changelog'):
+                entry['ignore'] = True
+
+add_entry(entry)
+
+entries.reverse()
+
+# Go through the entries and clear out authors for upstream commits.
+for entry in entries:
+    if entry['subject'].startswith('UBUNTU:'):
+        entry['subject'] = entry['subject'][7:].strip()
+    else:
+        del entry['author']
+
+# Lump everything without a bug at the bottom.
+keys.append('__packaging__')
+keys.append('__mainline__')
+
+emit_nl = False
+for key in keys:
+    if key == '__packaging__':
+        title_set = ['Miscellaneous Ubuntu changes']
+    elif key == '__mainline__':
+        title_set = ['Miscellaneous upstream changes']
+    else:
+        title_set = []
+        for bug in key:
+            if bug.startswith('CVE-'):
+                title_set.append(bug)
+            elif bug == '__trackingbug__':
+                # Look for the tracking bug number on the second
+                # position of the key
+                continue
+            elif bug.isdigit():
+                # Assume that it is an LP bug number if 'bug' contains only digits
+                bug_info = None
+
+                try:
+                    # urllib.request.urlcleanup()
+                    request = urllib.request.Request('https://api.launchpad.net/devel/bugs/' + bug)
+                    request.add_header('Cache-Control', 'no-cache')
+                    with urllib.request.urlopen(request) as response:
+                        data = response.read()
+                        bug_info = json.loads(data.decode('utf-8'))
+
+                    title = bug_info['title']
+                    if 'description' in bug_info:
+                        for line in bug_info['description'].split('\n'):
+                            if line.startswith('Kernel-Description:'):
+                                title = line.split(' ', 1)[1]
+
+                except urllib.error.HTTPError:
+                    title = 'INVALID or PRIVATE BUG'
+
+                title += ' (LP###' + bug + ')'
+                title_set.append(title)
+            else:
+                # Finally treat 'bug' itself as the title
+                title_set.append(bug)
+
+    emit_title = True
+    for entry in entries:
+        if entry['key'] != key:
+            continue
+
+        if emit_title:
+            if emit_nl:
+                print('')
+            emit_nl = True
+
+            title_lines = textwrap.wrap('#// '.join(title_set), 76)
+            print('  * ' + title_lines[0].replace('LP###', 'LP: #').replace('#//', ' //'))
+            for line in title_lines[1:]:
+                line = line.replace('LP###', 'LP: #').replace('#//', ' //')
+                print('    ' + line)
+
+            emit_title = False
+
+        if key[0] != '__trackingbug__':
+            title_lines = textwrap.wrap(entry['subject'], 76)
+            print('    - ' + title_lines[0])
+            for line in title_lines[1:]:
+                line = line.replace('LP###', 'LP: #')
+                print('      ' + line)
--- linux-ein-5.4.0.orig/debian/scripts/misc/insert-changes.pl
+++ linux-ein-5.4.0/debian/scripts/misc/insert-changes.pl
@@ -0,0 +1,43 @@
+#!/usr/bin/perl -w
+
+my $debian;
+$droot = $ARGV[0] if (defined $ARGV[0]);
+$droot = 'debian' if (!defined $droot);
+$debian = $ARGV[1] if (defined $ARGV[1]);
+$debian = 'debian.master' if (!defined $debian);
+
+system("make -s -f $droot/rules printchanges > $debian/changes");
+
+open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog";
+open(CHANGES, "< $debian/changes") or die "Cannot open new changes";
+open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog";
+
+$printed = 0;
+my $skip_newline = 0;
+
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		next if $printed;
+
+		$skip_newline = 1;
+		while (<CHANGES>) {
+			$skip_newline = 0;
+			print NEW;
+		}
+
+		$printed = 1;
+	} else {
+		if (/^$/ && $skip_newline == 1) {
+			$skip_newline = 0;
+			next;
+		}
+		print NEW;
+	}
+}
+
+close(NEW);
+close(CHANGES);
+close(CHANGELOG);
+
+rename("$debian/changelog.new", "$debian/changelog");
+unlink("$debian/changes");
--- linux-ein-5.4.0.orig/debian/scripts/misc/insert-mainline-changes
+++ linux-ein-5.4.0/debian/scripts/misc/insert-mainline-changes
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2) {
+	warn "Usage: $0 <changelog> <to> <range>\n";
+	die  "       $0 debian.master/changelog v3.2.3 v3.2.2..v3.2.3\n";
+}
+my ($changelog, $to, $range) = @ARGV;
+
+my @changes = ();
+
+push(@changes, "\n");
+push(@changes, "  [ Upstream Kernel Changes ]\n\n");
+push(@changes, "  * rebase to $to\n");
+
+open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n";
+while (<LOG>) {
+	if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) {
+		push(@changes, "    - LP: #$1\n");
+	}
+}
+close(LOG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		$printed--;
+		print NEW;
+		if ($printed == 0) {
+			print NEW @changes;
+		}
+		next;
+	}
+	print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
--- linux-ein-5.4.0.orig/debian/scripts/misc/insert-ubuntu-changes
+++ linux-ein-5.4.0/debian/scripts/misc/insert-ubuntu-changes
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2 && $#ARGV != 3) {
+	die "Usage: $0 <changelog> <stop at> <start at> [<source changelog>]\n";
+}
+if ($#ARGV == 2) {
+	push(@ARGV, "debian.master/changelog")
+}
+my ($changelog, $end, $start, $source_changelog) = @ARGV;
+
+$end =~ s/^\D+//;
+$start =~ s/^\D+//;
+
+sub version_cmp($$) {
+	my @a = split(/[\.-]+/, $_[0]);
+	my @b = split(/[\.-]+/, $_[1]);
+	for (my $i = 1;; $i++) {
+		if (!defined $a[$i]) {
+			if (!defined $b[$i]) {
+				return 0;
+			}
+			return -1;
+		}
+		if (!defined $b[$i]) {
+			return 1;
+		}
+		if ($a[$i] < $b[$i]) {
+			return -1;
+		}
+		if ($a[$i] > $b[$i]) {
+			return 1;
+		}
+	}
+}
+
+my @changes = ();
+my $output = 0;
+open(CHG, "<$source_changelog") ||
+	open(CHG, "<debian/changelog") ||
+	die "$0: debian/changelog: open failed - $!\n";
+while (<CHG>) {
+	if (/^\S+\s+\((.*)\)/) {
+		if (version_cmp($1, $end) <= 0) {
+			last;
+		}
+		if ($1 eq $start) {
+			$output = 1;
+		}
+		if ($output) {
+			push(@changes, "\n  [ Ubuntu: $1 ]\n\n");
+			next;
+		}
+	}
+	next if ($output == 0);
+
+	next if (/^\s*$/);
+	next if (/^\s--/);
+	next if (/^\s\s[^\*\s]/);
+
+	push(@changes, $_);
+}
+close(CHG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		$printed--;
+		print NEW;
+		if ($printed == 0) {
+			print NEW @changes;
+		}
+		next;
+	}
+	print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
--- linux-ein-5.4.0.orig/debian/scripts/misc/kconfig/annotations.py
+++ linux-ein-5.4.0/debian/scripts/misc/kconfig/annotations.py
@@ -0,0 +1,520 @@
+# -*- mode: python -*-
+# python module to manage Ubuntu kernel .config and annotations
+# Copyright © 2022 Canonical Ltd.
+
+import json
+import re
+import shutil
+import tempfile
+
+from abc import abstractmethod
+from ast import literal_eval
+from os.path import dirname, abspath
+
+from kconfig.version import ANNOTATIONS_FORMAT_VERSION
+
+
+class Config:
+    def __init__(self, fname, do_include=True):
+        """
+        Basic configuration file object
+        """
+        self.fname = fname
+        self.config = {}
+        self.do_include = do_include
+
+        raw_data = self._load(fname)
+        self._parse(raw_data)
+
+    @staticmethod
+    def _load(fname: str) -> str:
+        with open(fname, "rt", encoding="utf-8") as fd:
+            data = fd.read()
+        return data.rstrip()
+
+    def __str__(self):
+        """Return a JSON representation of the config"""
+        return json.dumps(self.config, indent=4)
+
+    @abstractmethod
+    def _parse(self, data: str):
+        pass
+
+
+class KConfig(Config):
+    """
+    Parse a .config file, individual config options can be accessed via
+    .config[<CONFIG_OPTION>]
+    """
+
+    def _parse(self, data: str):
+        self.config = {}
+        for line in data.splitlines():
+            m = re.match(r"^# (CONFIG_.*) is not set$", line)
+            if m:
+                self.config[m.group(1)] = literal_eval("'n'")
+                continue
+            m = re.match(r"^(CONFIG_[A-Za-z0-9_]+)=(.*)$", line)
+            if m:
+                self.config[m.group(1)] = literal_eval("'" + m.group(2) + "'")
+                continue
+
+
+class Annotation(Config):
+    """
+    Parse body of annotations file
+    """
+
+    def _parse_body(self, data: str, parent=True):
+        for line in data.splitlines():
+            # Replace tabs with spaces, squeeze multiple into singles and
+            # remove leading and trailing spaces
+            line = line.replace("\t", " ")
+            line = re.sub(r" +", " ", line)
+            line = line.strip()
+
+            # Ignore empty lines
+            if not line:
+                continue
+
+            # Catpure flavors of included files
+            if line.startswith("# FLAVOUR: "):
+                self.include_flavour += line.split(" ")[2:]
+                continue
+
+            # Ignore comments
+            if line.startswith("#"):
+                continue
+
+            # Handle includes (recursively)
+            m = re.match(r'^include\s+"?([^"]*)"?', line)
+            if m:
+                if parent:
+                    self.include.append(m.group(1))
+                if self.do_include:
+                    include_fname = dirname(abspath(self.fname)) + "/" + m.group(1)
+                    include_data = self._load(include_fname)
+                    self._parse_body(include_data, parent=False)
+                continue
+
+            # Handle policy and note lines
+            if re.match(r".* (policy|note)<", line):
+                try:
+                    conf = line.split(" ")[0]
+                    if conf in self.config:
+                        entry = self.config[conf]
+                    else:
+                        entry = {"policy": {}}
+
+                    match = False
+                    m = re.match(r".* policy<(.*?)>", line)
+                    if m:
+                        match = True
+                        # Update the previous entry considering potential overrides:
+                        #  - if the new entry is adding a rule for a new
+                        #    arch/flavour, simply add that
+                        #  - if the new entry is overriding a previous
+                        #    arch-flavour item, then overwrite that item
+                        #  - if the new entry is overriding a whole arch, then
+                        #    remove all the previous flavour rules of that arch
+                        new_entry = literal_eval(m.group(1))
+                        for key in new_entry:
+                            if key in self.arch:
+                                for flavour_key in list(entry["policy"].keys()):
+                                    if flavour_key.startswith(key):
+                                        del entry["policy"][flavour_key]
+                                entry["policy"][key] = new_entry[key]
+                            else:
+                                entry["policy"][key] = new_entry[key]
+
+                    m = re.match(r".* note<(.*?)>", line)
+                    if m:
+                        entry["oneline"] = match
+                        match = True
+                        entry["note"] = "'" + m.group(1).replace("'", "") + "'"
+
+                    if not match:
+                        raise SyntaxError("syntax error")
+                    self.config[conf] = entry
+                except Exception as e:
+                    raise SyntaxError(str(e) + f", line = {line}") from e
+                continue
+
+            # Invalid line
+            raise SyntaxError(f"invalid line: {line}")
+
+    def _legacy_parse(self, data: str):
+        """
+        Parse main annotations file, individual config options can be accessed
+        via self.config[<CONFIG_OPTION>]
+        """
+        self.config = {}
+        self.arch = []
+        self.flavour = []
+        self.flavour_dep = {}
+        self.include = []
+        self.header = ""
+        self.include_flavour = []
+
+        # Parse header (only main header will considered, headers in includes
+        # will be treated as comments)
+        for line in data.splitlines():
+            if re.match(r"^#.*", line):
+                m = re.match(r"^# ARCH: (.*)", line)
+                if m:
+                    self.arch = list(m.group(1).split(" "))
+                m = re.match(r"^# FLAVOUR: (.*)", line)
+                if m:
+                    self.flavour = list(m.group(1).split(" "))
+                m = re.match(r"^# FLAVOUR_DEP: (.*)", line)
+                if m:
+                    self.flavour_dep = literal_eval(m.group(1))
+                self.header += line + "\n"
+            else:
+                break
+
+        # Return an error if architectures are not defined
+        if not self.arch:
+            raise SyntaxError("ARCH not defined in annotations")
+        # Return an error if flavours are not defined
+        if not self.flavour:
+            raise SyntaxError("FLAVOUR not defined in annotations")
+
+        # Parse body
+        self._parse_body(data)
+
+        # Sanity check: Verify that all FLAVOUR_DEP flavors are valid
+        if self.do_include:
+            for src, tgt in self.flavour_dep.items():
+                if src not in self.flavour:
+                    raise SyntaxError(f"Invalid source flavour in FLAVOUR_DEP: {src}")
+                if tgt not in self.include_flavour:
+                    raise SyntaxError(f"Invalid target flavour in FLAVOUR_DEP: {tgt}")
+
+    def _json_parse(self, data, is_included=False):
+        data = json.loads(data)
+
+        # Check if version is supported
+        version = data["attributes"]["_version"]
+        if version > ANNOTATIONS_FORMAT_VERSION:
+            raise SyntaxError(f"annotations format version {version} not supported")
+
+        # Check for top-level annotations vs imported annotations
+        if not is_included:
+            self.config = data["config"]
+            self.arch = data["attributes"]["arch"]
+            self.flavour = data["attributes"]["flavour"]
+            self.flavour_dep = data["attributes"]["flavour_dep"]
+            self.include = data["attributes"]["include"]
+            self.include_flavour = []
+        else:
+            # We are procesing an imported annotations, so merge all the
+            # configs and attributes.
+            try:
+                self.config = data["config"] | self.config
+            except TypeError:
+                self.config = {**self.config, **data["config"]}
+            self.arch = list(set(self.arch) | set(data["attributes"]["arch"]))
+            self.flavour = list(set(self.flavour) | set(data["attributes"]["flavour"]))
+            self.include_flavour = list(set(self.include_flavour) | set(data["attributes"]["flavour"]))
+            self.flavour_dep = self.flavour_dep | data["attributes"]["flavour_dep"]
+
+        # Handle recursive inclusions
+        if self.do_include:
+            for f in data["attributes"]["include"]:
+                include_fname = dirname(abspath(self.fname)) + "/" + f
+                data = self._load(include_fname)
+                self._json_parse(data, is_included=True)
+
+    def _parse(self, data: str):
+        # Try to parse the legacy format first, otherwise use the new JSON
+        # format.
+        try:
+            self._legacy_parse(data)
+        except SyntaxError:
+            self._json_parse(data, is_included=False)
+
+    def _remove_entry(self, config: str):
+        if self.config[config]:
+            del self.config[config]
+
+    def remove(self, config: str, arch: str = None, flavour: str = None):
+        if config not in self.config:
+            return
+        if arch is not None:
+            if flavour is not None:
+                flavour = f"{arch}-{flavour}"
+            else:
+                flavour = arch
+            del self.config[config]["policy"][flavour]
+            if not self.config[config]["policy"]:
+                self._remove_entry(config)
+        else:
+            self._remove_entry(config)
+
+    def set(
+        self,
+        config: str,
+        arch: str = None,
+        flavour: str = None,
+        value: str = None,
+        note: str = None,
+    ):
+        if value is not None:
+            if config not in self.config:
+                self.config[config] = {"policy": {}}
+            if arch is not None:
+                if flavour is not None:
+                    flavour = f"{arch}-{flavour}"
+                else:
+                    flavour = arch
+                self.config[config]["policy"][flavour] = value
+            else:
+                for a in self.arch:
+                    self.config[config]["policy"][a] = value
+        if note is not None:
+            self.config[config]["note"] = "'" + note.replace("'", "") + "'"
+
+    def update(self, c: KConfig, arch: str, flavour: str = None, configs: list = None):
+        """Merge configs from a Kconfig object into Annotation object"""
+
+        # Determine if we need to import all configs or a single config
+        if not configs:
+            configs = c.config.keys()
+            try:
+                configs |= self.search_config(arch=arch, flavour=flavour).keys()
+            except TypeError:
+                configs = {
+                    **configs,
+                    **self.search_config(arch=arch, flavour=flavour).keys(),
+                }
+
+        # Import configs from the Kconfig object into Annotations
+        flavour_arg = flavour
+        if flavour is not None:
+            flavour = arch + f"-{flavour}"
+        else:
+            flavour = arch
+        for conf in configs:
+            if conf in c.config:
+                val = c.config[conf]
+            else:
+                val = "-"
+            if conf in self.config:
+                if "policy" in self.config[conf]:
+                    # Add a TODO if a config with a note is changing and print
+                    # a warning
+                    old_val = self.search_config(config=conf, arch=arch, flavour=flavour_arg)
+                    if old_val:
+                        old_val = old_val[conf]
+                    if val != old_val and "note" in self.config[conf]:
+                        self.config[conf]["note"] = "TODO: update note"
+                        print(f"WARNING: {conf} changed from {old_val} to {val}, updating note")
+                    self.config[conf]["policy"][flavour] = val
+                else:
+                    self.config[conf]["policy"] = {flavour: val}
+            else:
+                self.config[conf] = {"policy": {flavour: val}}
+
+    def _compact(self):
+        # Try to remove redundant settings: if the config value of a flavour is
+        # the same as the one of the main arch simply drop it.
+        for conf in self.config.copy():
+            if "policy" not in self.config[conf]:
+                continue
+            for flavour in self.flavour:
+                if flavour not in self.config[conf]["policy"]:
+                    continue
+                m = re.match(r"^(.*?)-(.*)$", flavour)
+                if not m:
+                    continue
+                arch = m.group(1)
+                if arch in self.config[conf]["policy"]:
+                    if self.config[conf]["policy"][flavour] == self.config[conf]["policy"][arch]:
+                        del self.config[conf]["policy"][flavour]
+                        continue
+                if flavour not in self.flavour_dep:
+                    continue
+                generic = self.flavour_dep[flavour]
+                if generic in self.config[conf]["policy"]:
+                    if self.config[conf]["policy"][flavour] == self.config[conf]["policy"][generic]:
+                        del self.config[conf]["policy"][flavour]
+                        continue
+            # Remove rules for flavours / arches that are not supported (not
+            # listed in the annotations header).
+            for flavour in self.config[conf]["policy"].copy():
+                if flavour not in list(set(self.arch + self.flavour)):
+                    del self.config[conf]["policy"][flavour]
+            # Remove configs that are all undefined across all arches/flavours
+            # (unless we have includes)
+            if not self.include:
+                if "policy" in self.config[conf]:
+                    if list(set(self.config[conf]["policy"].values())) == ["-"]:
+                        self.config[conf]["policy"] = {}
+            # Drop empty rules
+            if not self.config[conf]["policy"]:
+                del self.config[conf]
+            else:
+                # Compact same value across all flavour within the same arch
+                for arch in self.arch:
+                    arch_flavours = [i for i in self.flavour if i.startswith(arch)]
+                    value = None
+                    for flavour in arch_flavours:
+                        if flavour not in self.config[conf]["policy"]:
+                            break
+                        if value is None:
+                            value = self.config[conf]["policy"][flavour]
+                        elif value != self.config[conf]["policy"][flavour]:
+                            break
+                    else:
+                        for flavour in arch_flavours:
+                            del self.config[conf]["policy"][flavour]
+                        self.config[conf]["policy"][arch] = value
+        # After the first round of compaction we may end up having configs that
+        # are undefined across all arches, so do another round of compaction to
+        # drop these settings that are not needed anymore
+        # (unless we have includes).
+        if not self.include:
+            for conf in self.config.copy():
+                # Remove configs that are all undefined across all arches/flavours
+                if "policy" in self.config[conf]:
+                    if list(set(self.config[conf]["policy"].values())) == ["-"]:
+                        self.config[conf]["policy"] = {}
+                # Drop empty rules
+                if not self.config[conf]["policy"]:
+                    del self.config[conf]
+
+    @staticmethod
+    def _sorted(config):
+        """Sort configs alphabetically but return configs with a note first"""
+        w_note = []
+        wo_note = []
+        for c in sorted(config):
+            if "note" in config[c]:
+                w_note.append(c)
+            else:
+                wo_note.append(c)
+        return w_note + wo_note
+
+    def save(self, fname: str):
+        """Save annotations data to the annotation file"""
+        # Compact annotations structure
+        self._compact()
+
+        # Save annotations to disk
+        with tempfile.NamedTemporaryFile(mode="w+t", delete=False) as tmp:
+            # Write header
+            tmp.write(self.header + "\n")
+
+            # Write includes
+            for i in self.include:
+                tmp.write(f'include "{i}"\n')
+            if self.include:
+                tmp.write("\n")
+
+            # Write config annotations and notes
+            tmp.flush()
+            shutil.copy(tmp.name, fname)
+            tmp_a = Annotation(fname)
+
+            # Only save local differences (preserve includes)
+            marker = False
+            for conf in self._sorted(self.config):
+                new_val = self.config[conf]
+                if "policy" not in new_val:
+                    continue
+
+                # If new_val is a subset of old_val, skip it unless there are
+                # new notes that are different than the old ones.
+                old_val = tmp_a.config.get(conf)
+                if old_val and "policy" in old_val:
+                    try:
+                        can_skip = old_val["policy"] == old_val["policy"] | new_val["policy"]
+                    except TypeError:
+                        can_skip = old_val["policy"] == {
+                            **old_val["policy"],
+                            **new_val["policy"],
+                        }
+                    if can_skip:
+                        if "note" not in new_val:
+                            continue
+                        if "note" in old_val and "note" in new_val:
+                            if old_val["note"] == new_val["note"]:
+                                continue
+
+                # Write out the policy (and note) line(s)
+                val = dict(sorted(new_val["policy"].items()))
+                line = f"{conf : <47} policy<{val}>"
+                if "note" in new_val:
+                    val = new_val["note"]
+                    if new_val.get("oneline", False):
+                        # Single line
+                        line += f" note<{val}>"
+                    else:
+                        # Separate policy and note lines,
+                        # followed by an empty line
+                        line += f"\n{conf : <47} note<{val}>\n"
+                elif not marker:
+                    # Write out a marker indicating the start of annotations
+                    # without notes
+                    tmp.write("\n# ---- Annotations without notes ----\n\n")
+                    marker = True
+                tmp.write(line + "\n")
+
+            # Replace annotations with the updated version
+            tmp.flush()
+            shutil.move(tmp.name, fname)
+
+    def search_config(self, config: str = None, arch: str = None, flavour: str = None) -> dict:
+        """Return config value of a specific config option or architecture"""
+        if flavour is None:
+            flavour = "generic"
+        flavour = f"{arch}-{flavour}"
+        if flavour in self.flavour_dep:
+            generic = self.flavour_dep[flavour]
+        else:
+            generic = flavour
+        if config is None and arch is None:
+            # Get all config options for all architectures
+            return self.config
+        if config is None and arch is not None:
+            # Get config options of a specific architecture
+            ret = {}
+            for c, val in self.config.items():
+                if "policy" not in val:
+                    continue
+                if flavour in val["policy"]:
+                    ret[c] = val["policy"][flavour]
+                elif generic != flavour and generic in val["policy"]:
+                    ret[c] = val["policy"][generic]
+                elif arch in val["policy"]:
+                    ret[c] = val["policy"][arch]
+            return ret
+        if config is not None and arch is None:
+            # Get a specific config option for all architectures
+            return self.config[config] if config in self.config else None
+        if config is not None and arch is not None:
+            # Get a specific config option for a specific architecture
+            if config in self.config:
+                if "policy" in self.config[config]:
+                    if flavour in self.config[config]["policy"]:
+                        return {config: self.config[config]["policy"][flavour]}
+                    if generic != flavour and generic in self.config[config]["policy"]:
+                        return {config: self.config[config]["policy"][generic]}
+                    if arch in self.config[config]["policy"]:
+                        return {config: self.config[config]["policy"][arch]}
+        return None
+
+    @staticmethod
+    def to_config(data: dict) -> str:
+        """Convert annotations data to .config format"""
+        s = ""
+        for c in data:
+            v = data[c]
+            if v == "n":
+                s += f"# {c} is not set\n"
+            elif v == "-":
+                pass
+            else:
+                s += f"{c}={v}\n"
+        return s.rstrip()
--- linux-ein-5.4.0.orig/debian/scripts/misc/kconfig/run.py
+++ linux-ein-5.4.0/debian/scripts/misc/kconfig/run.py
@@ -0,0 +1,365 @@
+# -*- mode: python -*-
+# Manage Ubuntu kernel .config and annotations
+# Copyright © 2022 Canonical Ltd.
+
+import sys
+import os
+import argparse
+import json
+from signal import signal, SIGPIPE, SIG_DFL
+
+try:
+    from argcomplete import autocomplete
+except ModuleNotFoundError:
+    # Allow to run this program also when argcomplete is not available
+    def autocomplete(_unused):
+        pass
+
+
+from kconfig.annotations import Annotation, KConfig  # noqa: E402 Import not at top of file
+from kconfig.utils import autodetect_annotations, arg_fail  # noqa: E402 Import not at top of file
+from kconfig.version import VERSION, ANNOTATIONS_FORMAT_VERSION  # noqa: E402 Import not at top of file
+
+
+SKIP_CONFIGS = (
+    # CONFIG_VERSION_SIGNATURE is dynamically set during the build
+    "CONFIG_VERSION_SIGNATURE",
+    # Allow to use a different versions of toolchain tools
+    "CONFIG_GCC_VERSION",
+    "CONFIG_CC_VERSION_TEXT",
+    "CONFIG_AS_VERSION",
+    "CONFIG_LD_VERSION",
+    "CONFIG_LLD_VERSION",
+    "CONFIG_CLANG_VERSION",
+    "CONFIG_PAHOLE_VERSION",
+    "CONFIG_RUSTC_VERSION_TEXT",
+    "CONFIG_BINDGEN_VERSION_TEXT",
+)
+
+
+def make_parser():
+    parser = argparse.ArgumentParser(
+        description="Manage Ubuntu kernel .config and annotations",
+    )
+    parser.add_argument("--version", "-v", action="version", version=f"%(prog)s {VERSION}")
+
+    parser.add_argument(
+        "--file",
+        "-f",
+        action="store",
+        help="Pass annotations or .config file to be parsed",
+    )
+    parser.add_argument("--arch", "-a", action="store", help="Select architecture")
+    parser.add_argument("--flavour", "-l", action="store", help='Select flavour (default is "generic")')
+    parser.add_argument("--config", "-c", action="store", help="Select a specific config option")
+    parser.add_argument("--query", "-q", action="store_true", help="Query annotations")
+    parser.add_argument(
+        "--note",
+        "-n",
+        action="store",
+        help="Write a specific note to a config option in annotations",
+    )
+    parser.add_argument(
+        "--autocomplete",
+        action="store_true",
+        help="Enable config bash autocomplete: `source <(annotations --autocomplete)`",
+    )
+    parser.add_argument(
+        "--source",
+        "-t",
+        action="store_true",
+        help="Jump to a config definition in the kernel source code",
+    )
+    parser.add_argument(
+        "--no-include",
+        action="store_true",
+        help="Do not process included annotations (stop at the main file)",
+    )
+
+    ga = parser.add_argument_group(title="Action").add_mutually_exclusive_group(required=False)
+    ga.add_argument(
+        "--write",
+        "-w",
+        action="store",
+        metavar="VALUE",
+        dest="value",
+        help="Set a specific config value in annotations (use 'null' to remove)",
+    )
+    ga.add_argument(
+        "--export",
+        "-e",
+        action="store_true",
+        help="Convert annotations to .config format",
+    )
+    ga.add_argument(
+        "--import",
+        "-i",
+        action="store",
+        metavar="FILE",
+        dest="import_file",
+        help="Import a full .config for a specific arch and flavour into annotations",
+    )
+    ga.add_argument(
+        "--update",
+        "-u",
+        action="store",
+        metavar="FILE",
+        dest="update_file",
+        help="Import a partial .config into annotations (only resync configs specified in FILE)",
+    )
+    ga.add_argument(
+        "--check",
+        "-k",
+        action="store",
+        metavar="FILE",
+        dest="check_file",
+        help="Validate kernel .config with annotations",
+    )
+    return parser
+
+
+_ARGPARSER = make_parser()
+
+
+def export_result(data):
+    # Dump metadata / attributes first
+    out = '{\n  "attributes": {\n'
+    for key, value in sorted(data["attributes"].items()):
+        out += f'     "{key}": {json.dumps(value)},\n'
+    out = out.rstrip(",\n")
+    out += "\n  },"
+    print(out)
+
+    configs_with_note = {key: value for key, value in data["config"].items() if "note" in value}
+    configs_without_note = {key: value for key, value in data["config"].items() if "note" not in value}
+
+    # Dump configs, sorted alphabetically, showing items with a note first
+    out = '  "config": {\n'
+    for key in sorted(configs_with_note) + sorted(configs_without_note):
+        policy = data["config"][key]["policy"]
+        if "note" in data["config"][key]:
+            note = data["config"][key]["note"]
+            out += f'    "{key}": {{"policy": {json.dumps(policy)}, "note": {json.dumps(note)}}},\n'
+        else:
+            out += f'    "{key}": {{"policy": {json.dumps(policy)}}},\n'
+    out = out.rstrip(",\n")
+    out += "\n  }\n}"
+    print(out)
+
+
+def print_result(config, data):
+    if data is not None and config is not None and config not in data:
+        data = {config: data}
+    print(json.dumps(data, sort_keys=True, indent=2))
+
+
+def do_query(args):
+    if args.arch is None and args.flavour is not None:
+        arg_fail(_ARGPARSER, "error: --flavour requires --arch")
+    a = Annotation(args.file, do_include=(not args.no_include))
+    res = a.search_config(config=args.config, arch=args.arch, flavour=args.flavour)
+    # If no arguments are specified dump the whole annotations structure
+    if args.config is None and args.arch is None and args.flavour is None:
+        res = {
+            "attributes": {
+                "arch": a.arch,
+                "flavour": a.flavour,
+                "flavour_dep": a.flavour_dep,
+                "include": a.include,
+                "_version": ANNOTATIONS_FORMAT_VERSION,
+            },
+            "config": res,
+        }
+        export_result(res)
+    else:
+        print_result(args.config, res)
+
+
+def do_autocomplete(args):
+    a = Annotation(args.file)
+    res = (c.removeprefix("CONFIG_") for c in a.search_config())
+    res_str = " ".join(res)
+    print(f'complete -W "{res_str}" annotations')
+
+
+def do_source(args):
+    if args.config is None:
+        arg_fail(_ARGPARSER, "error: --source requires --config")
+    if not os.path.exists("tags"):
+        print("tags not found in the current directory, try: `make tags`")
+        sys.exit(1)
+    os.system(f"vim -t {args.config}")
+
+
+def do_note(args):
+    if args.config is None:
+        arg_fail(_ARGPARSER, "error: --note requires --config")
+
+    # Set the note in annotations
+    a = Annotation(args.file)
+    a.set(args.config, note=args.note)
+
+    # Save back to annotations
+    a.save(args.file)
+
+    # Query and print back the value
+    a = Annotation(args.file)
+    res = a.search_config(config=args.config)
+    print_result(args.config, res)
+
+
+def do_write(args):
+    if args.config is None:
+        arg_fail(_ARGPARSER, "error: --write requires --config")
+
+    # Set the value in annotations ('null' means remove)
+    a = Annotation(args.file)
+    if args.value == "null":
+        a.remove(args.config, arch=args.arch, flavour=args.flavour)
+    else:
+        a.set(
+            args.config,
+            arch=args.arch,
+            flavour=args.flavour,
+            value=args.value,
+            note=args.note,
+        )
+
+    # Save back to annotations
+    a.save(args.file)
+
+    # Query and print back the value
+    a = Annotation(args.file)
+    res = a.search_config(config=args.config)
+    print_result(args.config, res)
+
+
+def do_export(args):
+    if args.arch is None:
+        arg_fail(_ARGPARSER, "error: --export requires --arch")
+    a = Annotation(args.file)
+    conf = a.search_config(config=args.config, arch=args.arch, flavour=args.flavour)
+    if conf:
+        print(a.to_config(conf))
+
+
+def do_import(args):
+    if args.arch is None:
+        arg_fail(_ARGPARSER, "error: --arch is required with --import")
+    if args.flavour is None:
+        arg_fail(_ARGPARSER, "error: --flavour is required with --import")
+    if args.config is not None:
+        arg_fail(_ARGPARSER, "error: --config cannot be used with --import (try --update)")
+
+    # Merge with the current annotations
+    a = Annotation(args.file)
+    c = KConfig(args.import_file)
+    a.update(c, arch=args.arch, flavour=args.flavour)
+
+    # Save back to annotations
+    a.save(args.file)
+
+
+def do_update(args):
+    if args.arch is None:
+        arg_fail(_ARGPARSER, "error: --arch is required with --update")
+
+    # Merge with the current annotations
+    a = Annotation(args.file)
+    c = KConfig(args.update_file)
+    if args.config is None:
+        configs = list(set(c.config.keys()) - set(SKIP_CONFIGS))
+    if configs:
+        a.update(c, arch=args.arch, flavour=args.flavour, configs=configs)
+
+    # Save back to annotations
+    a.save(args.file)
+
+
+def do_check(args):
+    # Determine arch and flavour
+    if args.arch is None:
+        arg_fail(_ARGPARSER, "error: --arch is required with --check")
+
+    print(f"check-config: loading annotations from {args.file}")
+    total = good = ret = 0
+
+    # Load annotations settings
+    a = Annotation(args.file)
+    a_configs = a.search_config(arch=args.arch, flavour=args.flavour).keys()
+
+    # Parse target .config
+    c = KConfig(args.check_file)
+    c_configs = c.config.keys()
+
+    # Validate .config against annotations
+    for conf in sorted(a_configs | c_configs):
+        if conf in SKIP_CONFIGS:
+            continue
+        entry = a.search_config(config=conf, arch=args.arch, flavour=args.flavour)
+        expected = entry[conf] if entry else "-"
+        value = c.config[conf] if conf in c.config else "-"
+        if value != expected:
+            policy = a.config[conf] if conf in a.config else "undefined"
+            if "policy" in policy:
+                policy = f"policy<{policy['policy']}>"
+            print(f"check-config: {conf} changed from {expected} to {value}: {policy})")
+            ret = 1
+        else:
+            good += 1
+        total += 1
+
+    num = total - good
+    if ret:
+        if os.path.exists(".git"):
+            print(f"check-config: {num} config options have been changed, review them with `git diff`")
+        else:
+            print(f"check-config: {num} config options have changed")
+    else:
+        print("check-config: all good")
+    sys.exit(ret)
+
+
+def main():
+    # Prevent broken pipe errors when showing output in pipe to other tools
+    # (less for example)
+    signal(SIGPIPE, SIG_DFL)
+
+    # Main annotations program
+    autocomplete(_ARGPARSER)
+    args = _ARGPARSER.parse_args()
+
+    if args.file is None:
+        args.file = autodetect_annotations()
+        if args.file is None:
+            arg_fail(
+                _ARGPARSER,
+                "error: could not determine DEBDIR, try using: --file/-f",
+                show_usage=False,
+            )
+
+    if args.config and not args.config.startswith("CONFIG_"):
+        args.config = "CONFIG_" + args.config
+
+    if args.value:
+        do_write(args)
+    elif args.note:
+        do_note(args)
+    elif args.export:
+        do_export(args)
+    elif args.import_file:
+        do_import(args)
+    elif args.update_file:
+        do_update(args)
+    elif args.check_file:
+        do_check(args)
+    elif args.autocomplete:
+        do_autocomplete(args)
+    elif args.source:
+        do_source(args)
+    else:
+        do_query(args)
+
+
+if __name__ == "__main__":
+    main()
--- linux-ein-5.4.0.orig/debian/scripts/misc/kconfig/utils.py
+++ linux-ein-5.4.0/debian/scripts/misc/kconfig/utils.py
@@ -0,0 +1,20 @@
+# -*- mode: python -*-
+# Misc helpers for Kconfig and annotations
+# Copyright © 2023 Canonical Ltd.
+
+import sys
+
+
+def autodetect_annotations():
+    try:
+        with open("debian/debian.env", "rt", encoding="utf-8") as fd:
+            return fd.read().rstrip().split("=")[1] + "/config/annotations"
+    except (FileNotFoundError, IndexError):
+        return None
+
+
+def arg_fail(parser, message, show_usage=True):
+    print(message)
+    if show_usage:
+        parser.print_usage()
+    sys.exit(1)
--- linux-ein-5.4.0.orig/debian/scripts/misc/kconfig/version.py
+++ linux-ein-5.4.0/debian/scripts/misc/kconfig/version.py
@@ -0,0 +1,10 @@
+# -*- mode: python -*-
+# version of annotations module
+# Copyright © 2022 Canonical Ltd.
+
+VERSION = "0.1"
+
+ANNOTATIONS_FORMAT_VERSION = 5
+
+if __name__ == "__main__":
+    print(VERSION)
--- linux-ein-5.4.0.orig/debian/scripts/misc/kernel-wedge-arch.pl
+++ linux-ein-5.4.0/debian/scripts/misc/kernel-wedge-arch.pl
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+#
+# kernel-wedge-arch.pl -- select only specifiers for the supplied arch.
+#
+use strict;
+
+require Dpkg::Control;
+require Dpkg::Deps;
+
+my $fh = \*STDIN;
+
+my @entries;
+
+my $wanted = $ARGV[0];
+
+my $entry;
+while (!eof($fh)) {
+	$entry = Dpkg::Control->new();
+	$entry->parse($fh, '???');
+
+	if ($entry->{'Architecture'} eq $wanted) {
+		print("\n" . $entry);
+	}
+}
+
+close($fh);
--- linux-ein-5.4.0.orig/debian/scripts/misc/kernelconfig
+++ linux-ein-5.4.0/debian/scripts/misc/kernelconfig
@@ -0,0 +1,178 @@
+#!/bin/bash -u
+#
+# Manage kernel config annotations
+#
+# Supported environment variales:
+#   conc_level  : Concurrency level for upstream make (-jX)
+#   skip_checks : Skip config checks if set to 'true'
+#   gcc         : Default gcc to use (mandatory)
+#
+
+function cleanup()
+{
+	rm -rf build "${TMP_DIR}"
+}
+
+# We have to be in the top level Ubuntu kernel source directory
+if ! [ -e debian/debian.env ] ; then
+	echo "ERROR: This is not an Ubuntu kernel source directory" >&2
+	exit 1
+fi
+
+if [ -z "${gcc:-}" ] ; then
+	gcc=gcc
+fi
+
+if [ ${#} -ne 1 ] ; then
+	echo "Usage: $0 updateconfigs|defaultconfigs|genconfigs|editconfigs"
+	exit 2
+fi
+
+mode=${1}
+
+case "${mode}" in
+	updateconfigs)  target="syncconfig" ;;
+	defaultconfigs) target="olddefconfig" ;;
+	genconfigs)     target="oldconfig" ;;
+	editconfigs)    ;;  # Target is set later based on user input
+	*) echo "ERROR: Invalid mode: ${1}" >&2
+	   exit 1 ;;
+esac
+
+. debian/debian.env
+
+annotations_file=${DEBIAN}/config/annotations
+warning_partial=()
+
+TMP_DIR=$(mktemp -d)
+trap cleanup EXIT
+
+# Use annotations to generate configs
+FLAVOURS=$(sed -ne 's/^# FLAVOUR: //p' "${annotations_file}")
+
+for arch_flavour in ${FLAVOURS} ; do
+	arch=${arch_flavour%%-*}
+	flavour=${arch_flavour#*-}
+	tmp_conf_file=${TMP_DIR}/${arch}-config.flavour.${flavour}
+
+	# Map debian archs to kernel archs
+	case "${arch}" in
+		amd64)   kern_arch="x86_64" ;;
+		arm64)   kern_arch="arm64" ;;
+		armhf)   kern_arch="arm" ;;
+		i386)    kern_arch="i386" ;;
+		ppc64el) kern_arch="powerpc" ;;
+		riscv64) kern_arch="riscv" ;;
+		s390x)   kern_arch="s390" ;;
+		*)       echo "WARNING: Unsupported architecture: ${arch}"
+		         warning_partial+=("${arch}")
+		         continue ;;
+	esac
+
+	# Determine cross toolchain to use for Kconfig compiler tests
+	cross_compile="$(dpkg-architecture -qDEB_HOST_GNU_TYPE -a"${arch}" 2>/dev/null)-"
+
+	# Arch-specific compiler, if any
+	arch_gcc=$(cat <<EOF | make -s -f - all
+include ${DEBIAN}/rules.d/${arch}.mk
+all:
+	@echo \$(if \$(gcc),\$(gcc),${gcc})
+EOF
+			)
+	gcc_path=$(which "${cross_compile}${arch_gcc}" || true)
+	if [ -z "${gcc_path}" ] ; then
+		echo "WARNING: ${cross_compile}${arch_gcc} not installed"
+		warning_partial+=("${arch}")
+		continue
+	fi
+
+	if [ "${mode}" = "editconfigs" ] ; then
+		while true ; do
+			echo -n "Do you want to edit configs for ${arch}-${flavour}? [Y/n] "
+			read -r choice
+			case "${choice,,}" in
+				y|"") target="menuconfig" ; break ;;
+				n)    target="syncconfig" ; break ;;
+			esac
+		done
+	fi
+
+	rm -rf build
+	mkdir build
+
+	# Generate .config from annotations
+	python3 debian/scripts/misc/annotations -f "${annotations_file}" \
+			--arch "${arch}" --flavour "${flavour}" --export > build/.config
+
+	# Environment variables for 'make *config'
+	env=(ARCH="${kern_arch}"
+		 DEB_ARCH="${arch}"
+		 CROSS_COMPILE="${cross_compile}"
+		 CC="${gcc_path}")
+
+	# Concurrency level
+	if [ -n "${conc_level:-}" ] ; then
+		env+=("${conc_level}")
+	fi
+
+	# Call config target
+	echo
+	echo "* Run ${target} on ${arch}/${flavour} ..."
+	${kmake} O=build "${env[@]}" "${target}"
+
+	# Move config for further processing
+	mv build/.config "${tmp_conf_file}"
+done
+
+rc=0
+
+if [ "${skip_checks:-}" = "true" ] ; then
+	echo
+	echo "Skipping config-check (skip_checks=${skip_checks}) ..."
+else
+	echo
+	echo "Running config-check for all configurations ..."
+	fail=0
+	for arch_flavour in ${FLAVOURS} ; do
+		arch=${arch_flavour%%-*}
+		flavour=${arch_flavour#*-}
+		tmp_conf_file=${TMP_DIR}/${arch}-config.flavour.${flavour}
+
+		echo
+		echo "* Run config-check for ${arch}-${flavour} ..."
+		python3 debian/scripts/misc/annotations -f "${annotations_file}" \
+				--arch "${arch}" --flavour "${flavour}" --check "${tmp_conf_file}" || \
+			fail=$((fail + 1))
+	done
+
+	if [ ${fail} -gt 0 ] ; then
+		rc=1
+		echo "ERROR: ${fail} config-check failures detected" >&2
+	fi
+fi
+
+if [ ${#warning_partial[@]} -gt 0 ] ; then
+	rc=1
+	echo "ERROR: Config operation not applied to all architectures (skipped ${warning_partial[*]})" >&2
+fi
+
+# Recreate the annotations file
+if [ "${mode}" = "genconfigs" ] ; then
+	rm -rf CONFIGS
+	mv "${TMP_DIR}" CONFIGS
+else
+	echo
+	echo "Importing all configurations ..."
+	echo
+	for arch_flavour in ${FLAVOURS} ; do
+		arch=${arch_flavour%%-*}
+		flavour=${arch_flavour#*-}
+		tmp_conf_file=${TMP_DIR}/${arch}-config.flavour.${flavour}
+
+		echo "* Import configs for ${arch}-${flavour} ..."
+		python3 debian/scripts/misc/annotations -f "${annotations_file}" \
+				--arch "${arch}" --flavour "${flavour}" --import "${tmp_conf_file}"
+	done
+fi
+
+exit "${rc}"
--- linux-ein-5.4.0.orig/debian/scripts/misc/migrate-annotations
+++ linux-ein-5.4.0/debian/scripts/misc/migrate-annotations
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. debian/debian.env
+
+# We have to be in the top level kernel source directory
+if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then
+	echo "This does not appear to be the kernel source directory." 1>&2
+	exit 1
+fi
+
+. ${DEBIAN}/etc/kernelconfig
+
+ARCH=$(echo $archs | tr " " "\n" | sort -u)
+FLAVOUR=$(for arch in ${ARCH}; do
+	flavours=$(sed -ne 's/^flavours\s*=\s*\(.*\)$/\1/p' ${DEBIAN}/rules.d/${arch}.mk)
+	for flavour in ${flavours}; do
+		echo ${arch}-${flavour}
+	done
+done | tr " " "\n" | sort -u)
+
+while read line; do
+	(echo $line | grep -q '^#') || break
+done
+
+cat << EOF
+# Menu: HEADER
+# FORMAT: 4
+# ARCH: $(echo ${ARCH})
+# FLAVOUR: $(echo ${FLAVOUR})
+
+EOF
+
+while read line; do
+	echo ${line}
+done
--- linux-ein-5.4.0.orig/debian/scripts/misc/old-kernelconfig
+++ linux-ein-5.4.0/debian/scripts/misc/old-kernelconfig
@@ -0,0 +1,207 @@
+#!/bin/bash
+
+. debian/debian.env
+
+# Script to merge all configs and run 'make syncconfig' on it to wade out bad juju.
+# Then split the configs into distro-commmon and flavour-specific parts
+
+# We have to be in the top level kernel source directory
+if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then
+	echo "This does not appear to be the kernel source directory." 1>&2
+	exit 1
+fi
+
+mode=${1:?"Usage: $0 (oldconfig|editconfig) [do_enforce_all]"}
+do_enforce_all=${2:-0}
+yes=0
+case "$mode" in
+    update*configs)  mode='syncconfig' ;;
+    default*configs) mode='oldconfig'; yes=1 ;;
+    edit*configs)    ;; # All is good
+    gen*configs)     mode='genconfigs' ;; # All is good
+    dump*configs)    mode='config'; yes=1 ;;
+    *) echo "$0 called with invalid mode" 1>&2
+       exit 1 ;;
+esac
+kerneldir="`pwd`"
+confdir="$kerneldir/${DEBIAN}/config"
+variant="$2"
+
+. $DEBIAN/etc/kernelconfig
+
+bindir="`pwd`/${DROOT}/scripts/misc"
+common_conf="$confdir/config.common.$family"
+tmpdir=`mktemp -d`
+mkdir "$tmpdir/CONFIGS"
+
+if [ "$mode" = "genconfigs" ]; then
+	keep=1
+	mode="oldconfig"
+	test -d CONFIGS || mkdir CONFIGS
+fi
+
+warning_partial=
+
+for arch in $archs; do
+	rm -rf build
+	mkdir build
+
+	# Map debian archs to kernel archs
+	case "$arch" in
+		ppc64|ppc64el)	kernarch="powerpc"	;;
+		amd64)		kernarch="x86_64"	;;
+		lpia)		kernarch="x86" 		;;
+		sparc)		kernarch="sparc64"	;;
+		armel|armhf)	kernarch="arm"		;;
+		s390x)		kernarch="s390"		;;
+		riscv64)	kernarch="riscv"	;;
+		*)		kernarch="$arch"	;;
+	esac
+
+	# Determine cross toolchain to use for Kconfig compiler tests
+	cross_compile=""
+	deb_build_arch=$(dpkg-architecture -qDEB_BUILD_ARCH -a$arch 2>/dev/null)
+	deb_host_arch=$(dpkg-architecture -qDEB_HOST_ARCH -a$arch 2>/dev/null)
+	[ $deb_build_arch != $deb_host_arch ] && cross_compile="$(dpkg-architecture -qDEB_HOST_GNU_TYPE -a$arch 2>/dev/null)-"
+
+	# Environment variables for 'make *config'. We omit CROSS_COMPILE
+	# for i386 since it is no longer supported after 19.04, however
+	# we maintain the configs for hwe.
+	modify_config=true
+	env="ARCH=$kernarch DEB_ARCH=$arch"
+	compiler_path=$(which "${cross_compile}gcc" || true)
+	if [ "$compiler_path" != '' ]; then
+		env="$env CROSS_COMPILE=$cross_compile"
+	else
+		echo "WARNING: ${cross_compile}gcc not installed"
+		modify_config=
+		warning_partial="$warning_partial $arch"
+	fi
+
+	archconfdir=$confdir/$arch
+	flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+
+	# Merge configs
+	# We merge config.common.ubuntu + config.common.<arch> +
+	# config.flavour.<flavour>
+
+	for config in $flavourconfigs; do
+		fullconf="$tmpdir/$arch-$config-full"
+		case $config in
+		*)
+			: >"$fullconf"
+			if [ -f $common_conf ]; then
+				cat $common_conf >> "$fullconf"
+			fi
+			if [ -f $archconfdir/config.common.$arch ]; then
+				cat $archconfdir/config.common.$arch >> "$fullconf"
+			fi
+			cat "$archconfdir/$config" >>"$fullconf"
+			if [ -f $confdir/OVERRIDES ]; then
+				cat $confdir/OVERRIDES >> "$fullconf"
+			fi
+			;;
+		esac
+	done
+
+	for config in $flavourconfigs; do
+		if [ -f $archconfdir/$config ]; then
+			fullconf="$tmpdir/$arch-$config-full"
+			cat "$fullconf" > build/.config
+			# Call oldconfig or menuconfig
+			if [ "$modify_config" ]; then
+				case "$mode" in
+				    editconfigs)
+					# Interactively edit config parameters
+					while : ; do
+						echo -n "Do you want to edit config: $arch/$config? [Y/n] "
+						read choice
+						case "$choice" in
+						y* | Y* | "" )
+							make O=`pwd`/build $env menuconfig
+							break ;;
+						n* | N* )
+							# 'syncconfig' prevents
+							# errors for '-' options set
+							# in common config fragments
+							make O=`pwd`/build $env syncconfig
+							break ;;
+						*)
+							echo "Entry not valid"
+						esac
+					done
+					;;
+				    *)
+					echo "* Run $mode (yes=$yes) on $arch/$config ..."
+					if [ "$yes" -eq 1 ]; then
+						yes "" | make O=`pwd`/build $env "$mode"
+					else
+						make O=`pwd`/build $env "$mode"
+					fi ;;
+				esac
+			fi
+			cat build/.config > $archconfdir/$config
+			[ "$modify_config" ] && cat build/.config >"$tmpdir/CONFIGS/$arch-$config"
+			if [ "$keep" = "1" ]; then
+				cat build/.config > CONFIGS/$arch-$config
+			fi
+		else
+			echo "!! Config not found $archconfdir/$config..."
+		fi
+	done
+
+	echo "Running splitconfig.pl for $arch"
+	echo
+
+	# Can we make this more robust by avoiding $tmpdir completely?
+	# This approach was used for now because I didn't want to change
+	# splitconfig.pl
+	(cd $archconfdir; $bindir/splitconfig.pl config.flavour.*; mv config.common \
+	 config.common.$arch; cp config.common.$arch $tmpdir)
+done
+
+rm -f $common_conf
+
+# Now run splitconfig.pl on all the config.common.<arch> copied to
+# $tmpdir
+(cd $tmpdir; $bindir/splitconfig.pl *)
+(
+	cd $confdir;
+	rm -f *-full
+	grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
+	for arch in $archs; do
+		grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
+			>$arch/config.common.$arch
+	done
+)
+
+echo ""
+echo "Running config-check for all configurations ..."
+echo ""
+fail=0
+for arch in $archs; do
+	archconfdir=$confdir/$arch
+	flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+	for config in $flavourconfigs; do
+		flavour="${config##*.}"
+		if [ -f $archconfdir/$config ]; then
+			fullconf="$tmpdir/CONFIGS/$arch-$config"
+			[ ! -f "$fullconf" ] && continue
+			"$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$confdir" "0" "$do_enforce_all" || let "fail=$fail+1"
+		fi
+	done
+done
+
+if [ "$fail" != 0 ]; then
+	echo ""
+	echo "*** ERROR: $fail config-check failures detected"
+	echo ""
+fi
+
+rm -rf build
+
+if [ "$warning_partial" ]; then
+	echo ""
+	echo "WARNING: configuration operation applied only to a subset of architectures (skipped$warning_partial)" 1>&2
+	echo ""
+fi
--- linux-ein-5.4.0.orig/debian/scripts/misc/retag
+++ linux-ein-5.4.0/debian/scripts/misc/retag
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+
+open(TAGS, "git tag -l |") or die "Could not get list of tags";
+@tags = <TAGS>;
+close(TAGS);
+
+open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log";
+my $commit = "";
+
+while (<LOGS>) {
+	my $origtag;
+
+	if (m|^commit (.*)$|) {
+		$commit = $1;
+		next;
+	}
+
+	m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next;
+
+	$tag = $1;
+
+	($origtag) = grep(/^$tag.orig$/, @tags);
+
+	if (!defined($origtag)) {
+		print "I: Adding original tag for $tag\n";
+		system("git tag -m $tag $tag.orig $tag");
+	}
+
+	print "I: Tagging $tag => $commit\n";
+
+	system("git tag -f -m $tag $tag $commit");
+}
+
+close(LOGS);
--- linux-ein-5.4.0.orig/debian/scripts/misc/splitconfig.pl
+++ linux-ein-5.4.0/debian/scripts/misc/splitconfig.pl
@@ -0,0 +1,107 @@
+#!/usr/bin/perl -w
+
+%allconfigs = ();
+%common = ();
+
+print "Reading config's ...\n";
+
+for $config (@ARGV) {
+	# Only config.*
+	next if $config !~ /^config\..*/;
+	# Nothing that is disabled, or remnant
+	next if $config =~ /.*\.(default|disabled|stub)$/;
+
+	%{$allconfigs{$config}} = ();
+
+	print "  processing $config ... ";
+
+	open(CONFIG, "< $config");
+
+	while (<CONFIG>) {
+		# Skip comments
+		/^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next;
+
+		${$allconfigs{$config}}{$1} = $2;
+
+		$common{$1} = $2;
+	}
+
+	close(CONFIG);
+
+	print "done.\n";
+}
+
+print "\n";
+
+print "Merging lists ... \n";
+
+# %options - pointer to flavour config inside the allconfigs array
+for $config (keys(%allconfigs)) {
+	my %options = %{$allconfigs{$config}};
+
+	print "   processing $config ... ";
+
+	for $key (keys(%common)) {
+		next if not defined $common{$key};
+
+		# If we don't have the common option, then it isn't
+		# common. If we do have that option, it must have the same
+		# value.  EXCEPT where this file does not have a value at all
+		# which may safely be merged with any other value; the value
+		# will be elided during recombination of the parts.
+		if (!defined($options{$key})) {
+			# Its ok really ... let it merge
+		} elsif (not defined($options{$key})) {
+			undef $common{$key};
+		} elsif ($common{$key} ne $options{$key}) {
+			undef $common{$key};
+		}
+	}
+
+	print "done.\n";
+}
+
+print "\n";
+
+print "Creating common config ... ";
+
+open(COMMON, "> config.common");
+print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n";
+
+for $key (sort(keys(%common))) {
+	if (not defined $common{$key}) {
+		print COMMON "# CONFIG_$key is UNMERGABLE\n";
+	} elsif ($common{$key} eq "is not set") {
+		print COMMON "# CONFIG_$key is not set\n";
+	} else {
+		print COMMON "CONFIG_$key=$common{$key}\n";
+	}
+}
+close(COMMON);
+
+print "done.\n\n";
+
+print "Creating stub configs ...\n";
+
+for $config (keys(%allconfigs)) {
+	my %options = %{$allconfigs{$config}};
+
+	print "  processing $config ... ";
+
+	open(STUB, "> $config");
+	print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n";
+
+	for $key (sort(keys(%options))) {
+		next if defined $common{$key};
+
+		if ($options{$key} =~ /^is /) {
+			print STUB "# CONFIG_$key $options{$key}\n";
+		} else {
+			print STUB "CONFIG_$key=$options{$key}\n";
+		}
+	}
+
+	close(STUB);
+
+	print "done.\n";
+}
--- linux-ein-5.4.0.orig/debian/scripts/misc/tristate.sh
+++ linux-ein-5.4.0/debian/scripts/misc/tristate.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+#
+# Find config variables that might be able to transition from =y to =m
+#
+# Example: debian/scripts/misc/tristate.sh debian.master/config/config.common.ubuntu
+#
+
+KC=Kconfig.tmp
+rm -f ${KC}
+find .|grep Kconfig | while read f
+do
+	cat $f >> ${KC}
+done
+
+grep =y $1 | sed -e 's/CONFIG_//' -e 's/=y//' | while read c
+do
+	cat <<EOF > tristate.awk
+BEGIN { tristate=0; }
+/^config ${c}\$/ { tristate=1; next; }
+/tristate/ { if (tristate == 1) printf("CONFIG_%s=m\n","${c}"); next; }
+{ if (tristate == 1) exit; }
+EOF
+
+	gawk -f tristate.awk ${KC}
+done
--- linux-ein-5.4.0.orig/debian/scripts/misc/update-aufs.sh
+++ linux-ein-5.4.0/debian/scripts/misc/update-aufs.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+AUFS=aufs4-standalone
+
+#
+# Before you run this be sure you've removed or reverted the 'UBUNTU: SAUCE: AUFS" patch.
+#
+#
+# Make sure the current working directory is at the top of the
+# linux tree.
+#
+if ! grep PATCHLEVEL Makefile
+then
+	echo "You must run this script from the top of the linux tree"
+	exit 1
+fi
+
+clean=0
+if [ "$#" = 1 ]; then
+	AUFS="$1"
+else
+	clean=1
+	rm -rf ${AUFS}
+	git clone https://github.com/sfjro/aufs5-standalone.git ${AUFS}
+	(cd ${AUFS}; git checkout -b aufs5.x-rcN remotes/origin/aufs5.x-rcN)
+fi
+
+cp ${AUFS}/include/uapi/linux/aufs_type.h include/uapi/linux
+rsync -av ${AUFS}/fs/ fs/
+rsync -av ${AUFS}/Documentation/ Documentation/
+
+PATCHES="${PATCHES} aufs5-kbuild.patch"
+PATCHES="${PATCHES} aufs5-base.patch"
+PATCHES="${PATCHES} aufs5-mmap.patch"
+PATCHES="${PATCHES} aufs5-standalone.patch"
+PATCHES="${PATCHES} aufs5-loopback.patch"
+#PATCHES="${PATCHES} vfs-ino.patch"
+PATCHES="${PATCHES} tmpfs-idr.patch"
+
+for i in ${PATCHES}
+do
+	patch -p1 < ${AUFS}/$i
+done
+
+[ "$clean" = 1 ] && rm -rf ${AUFS}
+git add mm/prfile.c
+git add -u
+find . -name "*.orig" | xargs rm
+find . |grep aufs | xargs git add
+git commit -s -m"UBUNTU: SAUCE: AUFS"
--- linux-ein-5.4.0.orig/debian/scripts/module-check
+++ linux-ein-5.4.0/debian/scripts/module-check
@@ -0,0 +1,120 @@
+#!/usr/bin/perl -w
+
+$flavour = shift;
+$prev_abidir = shift;
+$abidir = shift;
+$skipmodule = shift;
+
+print "II: Checking modules for $flavour...";
+
+if (-f "$prev_abidir/ignore.modules"
+    or -f "$prev_abidir/$flavour.ignore.modules") {
+	print "explicitly ignoring modules\n";
+	exit(0);
+}
+
+if (not -f "$abidir/$flavour.modules" or not -f
+    "$prev_abidir/$flavour.modules") {
+	print "previous or current modules file missing!\n";
+	print "   $abidir/$flavour.modules\n";
+	print "   $prev_abidir/$flavour.modules\n";
+	if (defined($skipmodule)) {
+		exit(0);
+	} else {
+		exit(1);
+	}
+}
+
+print "\n";
+
+my %modules;
+my %modules_ignore;
+my $missing = 0;
+my $new = 0;
+my $errors = 0;
+
+# See if we have any ignores
+if (-f "$prev_abidir/../modules.ignore") {
+	my $ignore = 0;
+	open(IGNORE, "< $prev_abidir/../modules.ignore") or
+		die "Could not open $prev_abidir/../modules.ignore";
+	print "   reading modules to ignore...";
+	while (<IGNORE>) {
+		chomp;
+		next if /\s*#/;
+		$modules_ignore{$_} = 1;
+		$ignore++;
+	}
+	close(IGNORE);
+	print "read $ignore modules.\n";
+}
+
+# Read new modules first
+print "   reading new modules...";
+$new_count = 0;
+open(NEW, "< $abidir/$flavour.modules") or
+	die "Could not open $abidir/$flavour.modules";
+while (<NEW>) {
+	chomp;
+	$modules{$_} = 1;
+	$new_count++;
+}
+close(NEW);
+print "read $new_count modules.\n";
+
+# Now the old modules, checking for missing ones
+print "   reading old modules...";
+$old_count = 0;
+open(OLD, "< $prev_abidir/$flavour.modules") or
+	die "Could not open $prev_abidir/$flavour.modules";
+while (<OLD>) {
+	chomp;
+	if (not defined($modules{$_})) {
+		print "\n" if not $missing;
+		$missing++;
+		if (not defined($modules_ignore{$_})) {
+			print "      MISS: $_\n";
+			$errors++;
+		} else {
+			print "      MISS: $_ (ignored)\n";
+		}
+	} else {
+		$modules{$_}++;
+	}
+	$old_count++;
+}
+close(OLD);
+# Check for new modules
+foreach $mod (keys(%modules)) {
+	if ($modules{$mod} < 2) {
+		print "\n" if not $missing and not $new;
+		print "      NEW : $mod\n";
+		$new++;
+	}
+}
+if ($new or $missing) {
+	print "      read $old_count modules : new($new)  missing($missing)\n";
+} else {
+	print "read $old_count modules.\n";
+}
+
+
+# Let's see where we stand...
+if ($errors) {
+	if (defined($skipmodule)) {
+		print "WW: Explicitly asked to ignore failures (probably not good)\n";
+	} else {
+		print "EE: Missing modules (start begging for mercy)\n";
+		exit 1
+	}
+}
+
+if ($new) {
+	print "II: New modules (you've been busy, wipe the poop off your nose)\n";
+} else {
+	print "II: No new modules (hope you're happy, slacker)\n";
+}
+
+print "II: Done\n";
+
+exit(0);
--- linux-ein-5.4.0.orig/debian/scripts/module-inclusion
+++ linux-ein-5.4.0/debian/scripts/module-inclusion
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+#
+# Build a new directory of modules based on an inclusion list.
+# The includsion list format must be a bash regular expression.
+#
+# usage: $0 ROOT INCLUSION_LIST
+# example: $0 \
+#       debian/build/build-virtual-ALL debian/build/build-virtual \
+#	debian.master/control.d/virtual.inclusion-list \
+#	virtual.depmap
+master=0
+if [ "$1" = "--master" ]; then
+	master=1
+	shift
+fi
+
+ROOT=$1
+NROOT=$2
+ILIST=$3
+DEPMAP=$4
+
+tmp="/tmp/module-inclusion.$$"
+
+#
+# Prep a destination directory.
+#
+mkdir -p ${NROOT}
+
+{
+	# Copy over the framework into the master package.
+	if  [ "$master" -eq 1 ]; then
+		(cd ${ROOT}; find . ! -name "*.ko" -type f)
+	fi
+
+	# Copy over modules by name or pattern.
+	while read -r i
+	do
+		#
+		# 'find' blurts a warning if it cannot find any ko files.
+		#
+		case "$i" in
+		\!*)
+			(cd ${ROOT}; ${i#!} || true)
+			;;
+		*\**)
+			(cd ${ROOT}; eval find "${i}" -name "*.ko" || true)
+			;;
+		*)
+			echo "$i"
+			;;
+		esac
+	done <"${ILIST}"
+} >"$tmp"
+
+# Copy over the listed modules.
+while read i
+do
+	# If this is already moved over, all is good.
+	if [ -f "${NROOT}/$i" ]; then
+		:
+
+	# If present in the source, moved it over.
+	elif [ -f "${ROOT}/$i" ]; then
+		mkdir -p "${NROOT}/`dirname $i`"
+		mv "${ROOT}/$i" "${NROOT}/$i"
+
+	# Otherwise, it is missing.
+	else
+		echo "Warning: Could not find ${ROOT}/$i" 1>&2
+	fi
+done <"$tmp"
+
+# Copy over any dependancies, note if those are missing
+# we know they are in a pre-requisite package as they must
+# have existed at depmap generation time, and can only have
+# moved into a package.
+let n=0 || true
+while [ -s "$tmp" ]
+do
+	let n="$n+1" || true
+	[ "$n" = "20" ] && break || true
+
+	echo "NOTE: pass $n: dependency scan" 1>&2
+
+	while read i
+	do
+		grep "^$i " "$DEPMAP" | \
+		while read m d
+		do
+			if [ -f "${ROOT}/$d" ]; then
+				echo "NOTE: pass $n: ${i} pulls in ${d}" 1>&2
+				echo "$d"
+				mkdir -p "${NROOT}/`dirname $d`"
+				mv "${ROOT}/$d" "${NROOT}/$d"
+			fi
+		done
+	done <"$tmp" >"$tmp.new"
+	mv -f "$tmp.new" "$tmp"
+done
+
+rm -f "$tmp"
+
+exit 0
--- linux-ein-5.4.0.orig/debian/scripts/retpoline-check
+++ linux-ein-5.4.0/debian/scripts/retpoline-check
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+flavour="$1"
+prev_abidir="$2"
+curr_abidir="$3"
+skipretpoline="$4"
+
+echo "II: Checking retpoline indirections for $flavour...";
+
+if [ "$skipretpoline" = 'true' ]; then
+	echo "manual request ignoring retpoline delta"
+fi
+
+if [ -f "$prev_abidir/ignore.retpoline" -o \
+     -f "$prev_abidir/$flavour.ignore.retpoline" ]; then
+	echo "explicitly ignoring retpoline delta"
+	skipretpoline='true'
+fi
+
+prev="$prev_abidir/$flavour.retpoline"
+curr="$curr_abidir/$flavour.retpoline"
+if [ ! -f "$prev" ]; then
+	echo "previous retpoline file missing!"
+	echo "   $prev"
+	prev="/dev/null"
+fi
+if [ ! -f "$curr" ]; then
+	echo "current retpoline file missing!"
+	echo "   $curr"
+	curr="/dev/null"
+fi
+
+echo "II: retpoline delta in this package..."
+rc=0
+diff -u "$prev" "$curr" || true
+count=$( diff -u "$prev" "$curr" | grep '^+[^+]' | wc -l )
+if [ "$count" != 0 ]; then
+	rc=1
+	echo "WW: $count new retpoline sequences detected"
+fi
+
+echo "II: Done";
+if [ "$skipretpoline" = 'true' -a "$rc" -ne 0 ]; then
+	echo "II: ignoring errors"
+	exit 0
+fi
+exit "$rc"
--- linux-ein-5.4.0.orig/debian/scripts/retpoline-extract
+++ linux-ein-5.4.0/debian/scripts/retpoline-extract
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+cd "$1" || exit 1
+
+# Find all valid retpoline information, collate the detected and
+# safe information together.  Join the result to find the detected
+# but non-safe elements.  These are our concern.
+ur_detected=$(mktemp --tmpdir "retpoline-check-XXXXXX.ur-detected")
+ur_safe=$(mktemp --tmpdir "retpoline-check-XXXXXX.ur-safe")
+
+find "." -path './drivers/firmware/efi/libstub' -prune -o \
+	 -path './arch/x86/boot' -prune -o \
+	 -path './arch/x86/purgatory' -prune -o \
+	 -name \*.ur-detected -print0 | xargs -0 cat | \
+	sed -e "s@^$1@@" -e "s@ $2/@ @" -e "s@^/@@" | \
+	sort -k 1b,1 >"$ur_detected"
+find "." -name \*.ur-safe -print0 | xargs -0 cat | \
+	sed -e "s@^$1@@" -e "s@^/@@" | \
+	sort -k 1b,1 >"$ur_safe"
+
+join -v 1 -j 1 "$ur_detected" "$ur_safe" | sed -s 's/[^ ]*  *//'
+
+rm -f "$ur_detected" "$ur_safe"
--- linux-ein-5.4.0.orig/debian/scripts/retpoline-extract-one
+++ linux-ein-5.4.0/debian/scripts/retpoline-extract-one
@@ -0,0 +1,270 @@
+#!/bin/bash
+
+exec </dev/null
+
+object="$1"
+src="$2"
+bit16="$3"
+
+SECTION=".discard.retpoline_safe"
+
+# Form an associative lookup for the symbol numbers in the ELF symbol table.
+# Uses 8 character 0 expanded hexadecimal key for ease of consumption.
+__symbolmap_init()
+{
+	readelf -W --syms "$1" |
+		awk '($4 == "SECTION" && $1 ~ /^[0-9]*:/) { printf("%08x %08x\n", int($1), int($7)); }' | \
+	while read symbol_num section_num
+	do
+		echo "symbolmap_$symbol_num='$section_num'"
+	done
+}
+symbolmap_init()
+{
+	eval $(__symbolmap_init "$1")
+}
+symbolmap()
+{
+	eval RET="\$symbolmap_$1"
+	if [ "$RET" = '' ]; then
+		echo "symbolmap: $1: invalid section" 1>&2
+		exit 1
+	fi
+}
+
+# Form an associative lookup for the section numbers in the ELF symbol table.
+# Uses 8 character 0 expanded hexadecimal key for ease of consumption.
+__sectionmap_init()
+{
+	readelf -W --headers "$1" | \
+		awk '
+						{ sub("\\[", ""); sub("\\]", ""); }
+                        ($1 ~ /^[0-9][0-9]*/)   { printf("%08x %s %s %s\n", int($1), $2, $3, $4); }
+		' | \
+	{
+		while read section_num section_name section_type section_vma
+		do
+			echo "sectionmap_$section_num='$section_name'"
+			echo "sectionvma_$section_num='$section_vma'"
+			case "$section_type" in
+			REL|RELA) section_relocation="$section_type" ;;
+			esac
+		done
+		echo "section_relocation='$section_relocation'"
+	}
+}
+sectionmap_init()
+{
+	eval $(__sectionmap_init "$1")
+}
+sectionmap()
+{
+	eval RET="\$sectionmap_$1"
+	if [ "$RET" = '' ]; then
+		echo "sectionmap: $1: invalid section" 1>&2
+		exit 1
+	fi
+}
+sectionvma()
+{
+	eval RET="\$sectionvma_$1"
+	if [ "$RET" = '' ]; then
+		echo "sectionvma: $1: invalid section" 1>&2
+		exit 1
+	fi
+}
+
+# Read and parse the hex-dump output.
+hex="[0-9a-f]"
+hex_8="$hex$hex$hex$hex$hex$hex$hex$hex"
+hexspc="[0-9a-f ]"
+hexspc_8="$hexspc$hexspc$hexspc$hexspc$hexspc$hexspc$hexspc$hexspc"
+
+raw32()
+{
+	readelf --hex-dump "$2" "$1" 2>/dev/null |
+	sed \
+		-e '/^Hex/d' -e '/^$/d' -e '/^ *NOTE/d' \
+		-e 's/  *[^ ][^ ]*  *\('"$hex_8"'\) \('"$hexspc_8"'\) \('"$hexspc_8"'\) \('"$hexspc_8"'\) .*/\1 \2 \3 \4 /' \
+		-e 's/\('"$hex$hex"'\)\('"$hex$hex"'\)\('"$hex$hex"'\)\('"$hex$hex"'\) /\4\3\2\1 /g' \
+		-e 's/ $//g' -e 's/ /\n/g'
+}
+#-e 's/\([^ ][^ ][^ ][^ ][^ ][^ ][^ ][^ ]\) \([^ ][^ ][^ ][^ ][^ ][^ ][^ ][^ ]\) /\2\1 /g' \
+
+rela()
+{
+	#file="$(basename "$1")"
+	file="$1"
+
+	# Read relocation information for a 64bit binary.  Each relocation entry
+	# is 3 long longs so we collect 6 quads here.  Note that the dump is in
+	# listed in increasing byte order not withstanding the quad split.
+	#
+	# The record says to take the value of <symbol> add <symbol offset> and
+	# shove that into <write offset> in the segment of the <symbol>.
+	#
+	# Format:
+	#  <write offset>	64 bits
+	#  <symbol number>	32 bits
+	#  <relocation type>	32 bits
+	#  <symbol offset>	64 bits
+	raw32 "$1" ".rela$SECTION" | \
+	{
+		a1=''; a2=''; a3=''; a4=''; a5=''
+		while read a6
+		do
+			[ "$a1" = '' ] && { a1="$a6"; continue; }
+			[ "$a2" = '' ] && { a2="$a6"; continue; }
+			[ "$a3" = '' ] && { a3="$a6"; continue; }
+			[ "$a4" = '' ] && { a4="$a6"; continue; }
+			[ "$a5" = '' ] && { a5="$a6"; continue; }
+
+			#echo ">$a1< >$a2< >$a3< >$a4< >$a5< >$a6<" 1>&2
+			#echo "type<$a3> symbol<$a4> offset<$a2$a1> addr<$a6a5>" 1>&2
+
+			symbolmap "$a4"; section_num="$RET"
+			#echo "section_num<$section_num>" 1>&2
+
+			sectionmap "$section_num"; section="$RET"
+			sectionvma "$section_num"; vma="$RET"
+			#echo "section<$section> vma<$vma>" 1>&2
+
+			# Adjust the segment addressing by the segment offset.
+			printf -v addr "%u" "0x$a6$a5"
+			printf -v vma "%u" "0x$vma"
+			let offset="$addr + $vma"
+			printf -v offset "%x" "$offset"
+
+			echo "$file-$section-$offset"
+
+			a1=''; a2=''; a3=''; a4=''; a5=''
+		done
+	} | sed -e 's/-00*\([0-9a-f]\)/-\1/'
+}
+
+# Form an associative lookup for the raw contents for an ELF section.
+# Uses 8 character 0 expanded hexadecimal key for ease of consumption.
+contentmap_init()
+{
+	raw32 "$1" "$2" >"$tmp"
+	let offset=0
+	while read value
+	do
+		printf -v offset_hex "%08x" $offset
+		eval contentmap_$offset_hex=\'$value\'
+
+		let offset="$offset + 4"
+	done <"$tmp"
+	rm -f "$tmp"
+}
+contentmap()
+{
+	eval RET="\$contentmap_$1"
+	if [ "$RET" = '' ]; then
+		echo "contentmap: $1: invalid offset" 1>&2
+		exit 1
+	fi
+}
+
+rel()
+{
+	# Load up the current contents of the $SECTION segment
+	# as the offsets (see below) are recorded there and we will need
+	# those to calculate the actuall address.
+	contentmap_init "$1" "$SECTION"
+
+	#file="$(basename "$1")"
+	file="$1"
+
+	# Read relocation information for a 32bit binary.  Each relocation entry
+	# is 3 longs so we collect 3 quads here.  Note that the dump is in
+	# listed in increasing byte order not withstanding the quad split.
+	#
+	# The record says to take the value of <symbol> and add that to the
+	# existing contents of <write offset> in the segment of the <symbol>.
+	#
+	# Format:
+	#  <write offset>	32 bits
+	#  <symbol number>	24 bits
+	#  <relocation type>	 8 bits
+	raw32 "$1" ".rel$SECTION" | \
+	{
+		a1=''
+		while read a2
+		do
+			[ "$a1" = '' ] && { a1="$a2"; continue; }
+
+			#echo ">$a1< >$a2<"
+			contentmap "$a1"; offset="$RET"
+			symbolmap "00${a2%??}"; section_num="$RET"
+
+			sectionmap "$section_num"; section="$RET"
+			sectionvma "$section_num"; vma="$RET"
+			#echo ">$a1< >$a2< >$offset< >$section<"
+
+			echo "$file-$section-$offset"
+
+			a1=''
+		done
+	} | sed -e 's/-00*\([0-9a-f]\)/-\1/'
+}
+
+tmp=$(mktemp --tmpdir "retpoline-extract-XXXXXX")
+
+disassemble()
+{
+	local object="$1"
+	local src="$2"
+	local options="$3"
+	local selector="$4"
+
+	objdump $options --disassemble --no-show-raw-insn "$object" | \
+	awk -F' ' '
+		BEGIN				{ file="'"$object"'"; src="'"$src"'"; }
+		/Disassembly of section/        { segment=$4; sub(":", "", segment); }
+		/^[0-9a-f][0-9a-f]* <.*>:/      { tag=$0; sub(".*<", "", tag); sub(">.*", "", tag); }
+		$0 ~ /(call|jmp)q?  *\*0x[0-9a-f]*\(%rip\)/ {
+			next
+		}
+		$0 ~ /(call|jmp)q?  *\*.*%/ {
+			sub(":", "", $1);
+			if ('"$selector"') {
+				offset=$1
+				$1=tag
+				print(file "-" segment "-" offset " " src " " segment " " $0);
+			}
+		}
+	'
+}
+
+# Accumulate potentially vunerable indirect call/jmp sequences.  We do this
+# by examining the raw disassembly for affected forms, recording the location
+# of each.
+case "$bit16" in
+'')	disassemble "$object" "$src" '' 'segment != ".init.text"' ;;
+*)	disassemble "$object" "$src" '--disassembler-options=i8086' 'segment != ".init.text" && segment != ".text32" && segment != ".text64"'
+	disassemble "$object" "$src" '--disassembler-options=i386' 'segment == ".text32"'
+	disassemble "$object" "$src" '--disassembler-options=x86-64' 'segment == ".text64"'
+	;;
+esac | sort -k 1b,1 >"$object.ur-detected"
+[ ! -s "$object.ur-detected" ] && rm -f "$object.ur-detected"
+
+# Load up the symbol table and section mappings.
+symbolmap_init "$object"
+sectionmap_init "$object"
+
+# Accumulate annotated safe indirect call/jmp sequences.  We do this by examining
+# the $SECTION sections (and their associated relocation information),
+# each entry represents the address of an instruction which has been marked
+# as ok.
+case "$section_relocation" in
+REL)	rel "$object" ;;
+RELA)	rela "$object" ;;
+esac | sort -k 1b,1 >"$object.ur-safe"
+[ ! -s "$object.ur-safe" ] && rm -f "$object.ur-safe"
+
+# We will perform the below join on the summarised and sorted fragments
+# formed above.  This is performed in retpoline-check.
+#join -v 1 -j 1 "$tmp.extracted" "$tmp.safe" | sed -s 's/[^ ]*  *//'
+
+rm -f "$tmp"
--- linux-ein-5.4.0.orig/debian/scripts/sub-flavour
+++ linux-ein-5.4.0/debian/scripts/sub-flavour
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+. debian/debian.env
+
+echo "SUB_PROCESS $FROM => $TO"
+
+export from_pkg="linux-image-$ABI_RELEASE-$FROM"
+export to_pkg="linux-image-$ABI_RELEASE-$TO"
+
+from_moddir="debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM"
+to_moddir="debian/$to_pkg/lib/modules/$ABI_RELEASE-$FROM"
+
+install -d "debian/$to_pkg/boot"
+install -m644 debian/$from_pkg/boot/config-$ABI_RELEASE-$FROM \
+	debian/$to_pkg/boot/
+install -m600 debian/$from_pkg/boot/{vmlinuz,System.map}-$ABI_RELEASE-$FROM \
+	debian/$to_pkg/boot/
+
+#
+# Print some warnings if there are files in the sub-flavours list
+# that do not actually exist.
+#
+cat ${DEBIAN}/sub-flavours/$TO.list | while read line
+do
+(
+	cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
+	#
+	# If its a wildcard, then check that there are files that match.
+	#
+	if echo "$line" | grep '\*' > /dev/null
+	then
+		if [ `eval find "$line" -name '*.ko' 2>/dev/null|wc -l` -lt 1 ]
+		then
+			echo SUB_INST Warning - No files in $line
+		fi
+	#
+	# Else it should be a single file reference.
+	#
+	elif [ ! -f "$line" ]
+	then
+		echo SUB_INST Warning - could not find "$line"
+	fi
+)
+done
+
+cat ${DEBIAN}/sub-flavours/$TO.list | while read line; do
+	(
+	cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel;
+	if echo "$line" | grep '\*' > /dev/null
+	then
+		eval find "$line" -name '*.ko' 2>/dev/null || true
+	elif [ -f "$line" ]
+	then
+		echo "$line"
+	fi
+	);
+done | while read mod; do
+	echo "SUB_INST checking: $mod"
+	fromdir="/lib/modules/$ABI_RELEASE-$FROM/"
+	egrep "^($fromdir)?kernel/$mod:" \
+		$from_moddir/modules.dep | sed -e "s|^$fromdir||" -e 's/://' -e 's/ /\n/g' | \
+	while read m; do
+		m="${fromdir}$m"
+		test -f debian/$to_pkg/$m && continue
+		echo "SUB_INST installing: $m"
+		install -D -m644 debian/$from_pkg/$m \
+			debian/$to_pkg/$m
+	done
+done
--- linux-ein-5.4.0.orig/debian/snapcraft.mk
+++ linux-ein-5.4.0/debian/snapcraft.mk
@@ -0,0 +1,15 @@
+ifeq ($(ARCH),)
+  arch := $(shell uname -m | sed -e s/i.86/i386/ -e s/x86_64/amd64/ \
+            -e s/arm.*/armhf/ -e s/s390/s390x/ -e s/ppc.*/powerpc/ \
+            -e s/aarch64.*/arm64/ )
+else ifeq ($(ARCH),arm)
+  arch := armhf
+else
+  arch := $(ARCH)
+endif
+config:
+	if [ -e debian/config/config.common.ubuntu ]; then \
+	    cat debian.$(branch)/config/config.common.ubuntu debian.$(branch)/config/$(arch)/config.common.$(arch) debian.$(branch)/config/$(arch)/config.flavour.$(flavour) >.config; \
+	else \
+	    python3 debian/scripts/misc/annotations --export --arch $(arch) --flavour $(flavour) >.config; \
+	fi
--- linux-ein-5.4.0.orig/debian/source/format
+++ linux-ein-5.4.0/debian/source/format
@@ -0,0 +1 @@
+1.0
--- linux-ein-5.4.0.orig/debian/source/options
+++ linux-ein-5.4.0/debian/source/options
@@ -0,0 +1,8 @@
+# Ignore vbox symlinks, we will regenerate these at clean (LP:1426113)
+## autoreconstruct -- begin
+# Ignore any symlinks created since the orig which are rebuilt by reconstruct.
+## autoreconstruct -- end
+
+# force "dpkg-source -I -i" behavior
+diff-ignore
+tar-ignore
--- linux-ein-5.4.0.orig/debian/stamps/keep-dir
+++ linux-ein-5.4.0/debian/stamps/keep-dir
@@ -0,0 +1 @@
+Place holder
--- linux-ein-5.4.0.orig/debian/templates/extra.postinst.in
+++ linux-ein-5.4.0/debian/templates/extra.postinst.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" != configure ]; then
+    exit 0
+fi
+
+depmod -a -F /boot/System.map-$version $version || true
+if [ -d /etc/kernel/postinst.d ]; then
+    cat - >/usr/lib/linux/triggers/$version <<EOF
+DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	    --arg="$image_path" /etc/kernel/postinst.d
+EOF
+    dpkg-trigger --no-await linux-update-$version
+fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/templates/extra.postrm.in
+++ linux-ein-5.4.0/debian/templates/extra.postrm.in
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" != remove ]; then
+    exit 0
+fi
+
+depmod -a -F /boot/System.map-$version $version 2>/dev/null || true
+#
+# We should be rebuilding the initramfs here on removal to pare down the
+# initramfs if it contains any of the objects we just removed.  But people
+# commonly remove kernels in order to free space in /boot, and rebuilding the
+# initramfs now risks ENOSPC when we are trying to make space.  The files we
+# leave lying about could be confusing, but we trade that against safety on
+# removal.
+#
+#if [ -d /etc/kernel/postinst.d ]; then
+#    # We want to behave as if linux-image (without us) was installed, therefore
+#    # we do not want the postinst support to know we are being removed, claim
+#    # this is an installation event.
+#    cat - >/usr/lib/linux/triggers/$version <<EOF
+#DEB_MAINT_PARAMS="configure" run-parts --report --exit-on-error --arg=$version \
+#	--arg="$image_path" /etc/kernel/postinst.d
+#EOF
+#    dpkg-trigger --no-await linux-update-$version
+#fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/templates/headers.postinst.in
+++ linux-ein-5.4.0/debian/templates/headers.postinst.in
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+
+if [ "$1" != configure ]; then
+    exit 0
+fi
+
+if [ -d /etc/kernel/header_postinst.d ]; then
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+		/etc/kernel/header_postinst.d
+fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/templates/image.postinst.in
+++ linux-ein-5.4.0/debian/templates/image.postinst.in
@@ -0,0 +1,62 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+#
+# When we install linux-image we have to run kernel postinst.d support to
+# generate the initramfs, create links etc.  Should it have an associated
+# linux-image-extra package and we install that we also need to run kernel
+# postinst.d, to regenerate the initramfs.  If we are installing both at the
+# same time, we necessarily trigger kernel postinst.d twice. As this includes
+# rebuilding the initramfs and reconfiguring the boot loader this is very time
+# consuming.
+#
+# Similarly for removal when we remove the linux-image-extra package we need to
+# run kernel postinst.d handling in order to pare down the initramfs to
+# linux-image contents only.  When we remove the linux-image need to remove the
+# now redundant initramfs.  If we are removing both at the same time, then
+# we will rebuilt the initramfs and then immediatly remove it.
+#
+# Switches to using a trigger against the linux-image package for all
+# postinst.d and postrm.d handling.  On installation postinst.d gets triggered
+# twice once by linux-image and once by linux-image-extra.  As triggers are
+# non-cumulative we will only run this processing once.  When removing both
+# packages we will trigger postinst.d from linux-image-extra and then in
+# linux-image postrm.d we effectivly ignore the pending trigger and simply run
+# the postrm.d.  This prevents us from rebuilding the initramfs.
+#
+if [ "$1" = triggered ]; then
+    trigger=/usr/lib/linux/triggers/$version
+    if [ -f "$trigger" ]; then
+	sh "$trigger"
+	rm -f "$trigger"
+    fi
+    exit 0
+fi
+
+if [ "$1" != configure ]; then
+    exit 0
+fi
+
+depmod $version
+
+if [ -f /lib/modules/$version/.fresh-install ]; then
+    change=install
+else
+    change=upgrade
+fi
+linux-update-symlinks $change $version $image_path
+rm -f /lib/modules/$version/.fresh-install
+
+if [ -d /etc/kernel/postinst.d ]; then
+    mkdir -p /usr/lib/linux/triggers
+    cat - >/usr/lib/linux/triggers/$version <<EOF
+DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+      --arg=$image_path /etc/kernel/postinst.d
+EOF
+    dpkg-trigger --no-await linux-update-$version
+fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/templates/image.postrm.in
+++ linux-ein-5.4.0/debian/templates/image.postrm.in
@@ -0,0 +1,40 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+rm -f /lib/modules/$version/.fresh-install
+
+if [ "$1" != upgrade ] && command -v linux-update-symlinks >/dev/null; then
+    linux-update-symlinks remove $version $image_path
+fi
+
+if [ -d /etc/kernel/postrm.d ]; then
+    # We cannot trigger ourselves as at the end of this we will no longer
+    # exist and can no longer respond to the trigger.  The trigger would
+    # then become lost.  Therefore we clear any pending trigger and apply
+    # postrm directly.
+    if [ -f /usr/lib/linux/triggers/$version ]; then
+	echo "$0 ... removing pending trigger"
+	rm -f /usr/lib/linux/triggers/$version
+    fi
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	      --arg=$image_path /etc/kernel/postrm.d
+fi
+
+if [ "$1" = purge ]; then
+    for extra_file in modules.dep modules.isapnpmap modules.pcimap \
+                      modules.usbmap modules.parportmap \
+                      modules.generic_string modules.ieee1394map \
+                      modules.ieee1394map modules.pnpbiosmap \
+                      modules.alias modules.ccwmap modules.inputmap \
+                      modules.symbols modules.ofmap \
+                      modules.seriomap modules.\*.bin \
+		      modules.softdep modules.devname; do
+	eval rm -f /lib/modules/$version/$extra_file
+    done
+    rmdir /lib/modules/$version || true
+fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/templates/image.preinst.in
+++ linux-ein-5.4.0/debian/templates/image.preinst.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" = abort-upgrade ]; then
+    exit 0
+fi
+
+if [ "$1" = install ]; then
+    # Create a flag file for postinst
+    mkdir -p /lib/modules/$version
+    touch /lib/modules/$version/.fresh-install
+fi
+
+if [ -d /etc/kernel/preinst.d ]; then
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	      --arg=$image_path /etc/kernel/preinst.d
+fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/templates/image.prerm.in
+++ linux-ein-5.4.0/debian/templates/image.prerm.in
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -e
+
+version=@abiname@@localversion@
+image_path=/boot/@image-stem@-$version
+
+if [ "$1" != remove ]; then
+    exit 0
+fi
+
+linux-check-removal $version
+
+if [ -d /etc/kernel/prerm.d ]; then
+    DEB_MAINT_PARAMS="$*" run-parts --report --exit-on-error --arg=$version \
+	      --arg=$image_path /etc/kernel/prerm.d
+fi
+
+exit 0
--- linux-ein-5.4.0.orig/debian/tests-build/README
+++ linux-ein-5.4.0/debian/tests-build/README
@@ -0,0 +1,21 @@
+Scripts placed in this directory get called one at a time by run-parts(8).
+The scripts are expected to perform some sort of sanity checks on the
+finished build. Scripts will be called once for each flavour.
+
+Some environment variables are exported to make life a little easier:
+
+DPKG_ARCH     : The dpkg architecture (e.g. "amd64")
+KERN_ARCH     : The kernel architecture (e.g. "x86_64")
+FLAVOUR       : The specific flavour for this run (e.g. "generic")
+VERSION       : The full version of this build (e.g. 2.6.22-1)
+REVISION      : The exact revision of this build (e.g. 1.3)
+PREV_REVISION : The revision prior to this one
+ABI_NUM       : The specific ABI number for this build (e.g. 2)
+PREV_ABI_NUM  : The previous ABI number. Can be the same as ABI_NUM.
+BUILD_DIR     : The directory where this build took place
+INSTALL_DIR   : The directory where the package is prepared
+SOURCE_DIR    : Where the main kernel source is
+
+Scripts are expected to have a zero exit status when no problems occur,
+and non-zero when an error occurs that should stop the build. Scripts
+should print whatever info they deem needed to deduce the problem.
--- linux-ein-5.4.0.orig/debian/tests-build/check-aliases
+++ linux-ein-5.4.0/debian/tests-build/check-aliases
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+my %map;
+
+print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n";
+
+$aliases =
+  "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias";
+
+open(ALIASES, "< $aliases") or die "Could not open $aliases";
+
+while (<ALIASES>) {
+	chomp;
+	my ($junk, $alias, $module) = split;
+
+	if (defined($map{$alias})) {
+		printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
+			? "INT" : "   ", $map{$alias}, $module, $alias);
+	} else {
+		$map{$alias} = $module;
+	}
+}
+
+exit(0);
--- linux-ein-5.4.0.orig/debian/tests/control
+++ linux-ein-5.4.0/debian/tests/control
@@ -0,0 +1,7 @@
+Tests: rebuild
+Depends: @builddeps@, fakeroot
+Restrictions: allow-stderr, skippable
+
+Tests: ubuntu-regression-suite
+Depends: build-essential, gcc-multilib [amd64 armhf i386], gdb, git, python2 | python, bzr
+Restrictions: allow-stderr, isolation-machine, breaks-testbed, skippable
--- linux-ein-5.4.0.orig/debian/tests/rebuild
+++ linux-ein-5.4.0/debian/tests/rebuild
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# If we are triggering for just linux or linux-meta we know we have
+# just built the kernel and there is no point in repeating that
+# build, it just wastes time.  (LP: #1498862)
+build_needed=0
+for trigger in ${ADT_TEST_TRIGGERS:-force}
+do
+	case "$trigger" in
+	linux/*|linux-lts-*/*|linux-meta*/*|linux-oem*/*|fakeroot/*|gdb/*|git/*|bzr/*|gcc-multilib/*)	;;
+	*)						build_needed=1 ;;
+	esac
+done
+if [ "$build_needed" -eq 0 ]; then
+	echo "rebuild: short circuiting build for '${ADT_TEST_TRIGGERS}'"
+	exit 77
+fi
+
+set -e
+dpkg-buildpackage -rfakeroot -us -uc -b -Pautopkgtest
--- linux-ein-5.4.0.orig/debian/tests/ubuntu-regression-suite
+++ linux-ein-5.4.0/debian/tests/ubuntu-regression-suite
@@ -0,0 +1,45 @@
+#!/bin/sh
+set -e
+
+# Only run regression-suite on kernels we can boot in canonistack
+source=`dpkg-parsechangelog -SSource`
+case $source in
+    linux|linux-hwe*|linux-kvm|linux-oem)
+	;;
+    *)
+	echo "ubuntu-regression-suite is pointless, if one cannot boot the kernel"
+	exit 77
+	;;
+esac
+
+# Only run regression-suite if we were requested to
+have_meta=0
+for trigger in ${ADT_TEST_TRIGGERS}
+do
+    case "$trigger" in
+	linux-meta/*|linux-meta-*/*)
+	    have_meta=1
+	    ;;
+    esac
+done
+if [ -n "$ADT_TEST_TRIGGERS" ] && [ "$have_meta" -eq 0 ]; then
+    echo "ubuntu-regression-suite is not requested, as there is no linux-meta trigger"
+    exit 77
+fi
+
+sver=`dpkg-parsechangelog -SVersion`
+read x rver x </proc/version_signature
+
+flavour=${rver#*-*-}
+rver=${rver%-$flavour}
+
+echo "Source Package Version: $sver"
+echo "Running Kernel Version: $rver"
+
+if [ "$sver" != "$rver" ]; then
+    echo "ERROR: running version does not match source package" 1>&2
+    exit 1
+fi
+
+git clone --depth=1 git://git.launchpad.net/~canonical-kernel-team/+git/kernel-testing
+kernel-testing/run-dep8-tests
--- linux-ein-5.4.0.orig/debian/tools/generic
+++ linux-ein-5.4.0/debian/tools/generic
@@ -0,0 +1,60 @@
+#!/bin/bash
+full_version=`uname -r`
+
+# First check for a fully qualified version.
+this="/usr/lib/linux-tools/$full_version/`basename $0`"
+if [ -f "$this" ]; then
+	exec "$this" "$@"
+fi
+
+# Removing flavour from version i.e. generic or server.
+flavour_abi=${full_version#*-}
+flavour=${flavour_abi#*-}
+version=${full_version%-$flavour}
+this="$0_$version"
+if [ -f "$this" ]; then
+	exec "$this" "$@"
+fi
+
+# Before saucy kernels we had no flavour linkage.
+if dpkg --compare-versions "$version" lt "3.11.0"; then
+	flavour=''
+else
+	flavour="-$flavour"
+fi
+# Hint at the cloud tools if they exist (trusty and later)
+if dpkg --compare-versions "$version" ge "3.13.0"; then
+	cld=""
+else
+	cld=":"
+fi
+# Work out if this is an LTS backport or not.
+codename=`lsb_release -cs`
+case "$codename" in
+precise)	base='3.2.0-9999' ;;
+trusty)		base='3.13.0-9999' ;;
+*)		base='' ;;
+esac
+std=""
+lts=":"
+if [ "$base" != "" ]; then
+	if dpkg --compare-versions "$version" gt "$base"; then
+		std=":"
+		lts=""
+	fi
+fi
+
+# Give them a hint as to what to install.
+		echo "WARNING: `basename $0` not found for kernel $version" >&2
+		echo "" >&2
+		echo "  You may need to install the following packages for this specific kernel:" >&2
+		echo "    linux-tools-$version$flavour" >&2
+$cld		echo "    linux-cloud-tools-$version$flavour" >&2
+		echo "" >&2
+		echo "  You may also want to install one of the following packages to keep up to date:" >&2
+$std		echo "    linux-tools$flavour" >&2
+$std $cld	echo "    linux-cloud-tools$flavour" >&2
+$lts		echo "    linux-tools$flavour-lts-<series>" >&2
+$lts $cld	echo "    linux-cloud-tools$flavour-lts-<series>" >&2
+
+exit 2
--- linux-ein-5.4.0.orig/debian/vbox-modules.ignore
+++ linux-ein-5.4.0/debian/vbox-modules.ignore
@@ -0,0 +1,2 @@
+vboxguest
+vboxsf
--- linux-ein-5.4.0.orig/debian/wireguard-modules.ignore
+++ linux-ein-5.4.0/debian/wireguard-modules.ignore
@@ -0,0 +1 @@
+wireguard
--- linux-ein-5.4.0.orig/debian/zfs-modules.ignore
+++ linux-ein-5.4.0/debian/zfs-modules.ignore
@@ -0,0 +1,10 @@
+icp
+spl
+splat
+zavl
+zcommon
+zfs
+zlua
+znvpair
+zpios
+zunicode
--- linux-ein-5.4.0.orig/drivers/Kconfig
+++ linux-ein-5.4.0/drivers/Kconfig
@@ -228,4 +228,5 @@
 
 source "drivers/counter/Kconfig"
 
+source "drivers/mxc/Kconfig"
 endmenu
--- linux-ein-5.4.0.orig/drivers/Makefile
+++ linux-ein-5.4.0/drivers/Makefile
@@ -58,14 +58,9 @@
 # iommu/ comes before gpu as gpu are using iommu controllers
 obj-y				+= iommu/
 
-# gpu/ comes after char for AGP vs DRM startup and after iommu
-obj-y				+= gpu/
 
 obj-$(CONFIG_CONNECTOR)		+= connector/
 
-# i810fb and intelfb depend on char/agp/
-obj-$(CONFIG_FB_I810)           += video/fbdev/i810/
-obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/
 
 obj-$(CONFIG_PARPORT)		+= parport/
 obj-$(CONFIG_NVM)		+= lightnvm/
@@ -79,6 +74,12 @@
 obj-y				+= scsi/
 obj-y				+= nvme/
 obj-$(CONFIG_ATA)		+= ata/
+
+# gpu/ comes after char for AGP vs DRM startup and after iommu
+obj-y				+= gpu/
+# i810fb and intelfb depend on char/agp/
+obj-$(CONFIG_FB_I810)           += video/fbdev/i810/
+obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/
 obj-$(CONFIG_TARGET_CORE)	+= target/
 obj-$(CONFIG_MTD)		+= mtd/
 obj-$(CONFIG_SPI)		+= spi/
@@ -186,3 +187,4 @@
 obj-$(CONFIG_GNSS)		+= gnss/
 obj-$(CONFIG_INTERCONNECT)	+= interconnect/
 obj-$(CONFIG_COUNTER)		+= counter/
+obj-y		 		+= mxc/
--- linux-ein-5.4.0.orig/drivers/acpi/Makefile
+++ linux-ein-5.4.0/drivers/acpi/Makefile
@@ -8,6 +8,11 @@
 #
 # ACPI Boot-Time Table Parsing
 #
+ifeq ($(CONFIG_ACPI_CUSTOM_DSDT),y)
+tables.o: $(src)/../../include/$(subst $\",,$(CONFIG_ACPI_CUSTOM_DSDT_FILE)) ;
+
+endif
+
 obj-$(CONFIG_ACPI)		+= tables.o
 obj-$(CONFIG_X86)		+= blacklist.o
 
@@ -48,7 +53,7 @@
 acpi-$(CONFIG_ARM_AMBA)	+= acpi_amba.o
 acpi-y				+= power.o
 acpi-y				+= event.o
-acpi-$(CONFIG_ACPI_REDUCED_HARDWARE_ONLY) += evged.o
+acpi-y				+= evged.o
 acpi-y				+= sysfs.o
 acpi-y				+= property.o
 acpi-$(CONFIG_X86)		+= acpi_cmos_rtc.o
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_amba.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_amba.c
@@ -76,6 +76,7 @@
 		case IORESOURCE_MEM:
 			if (!address_found) {
 				dev->res = *rentry->res;
+				dev->res.name = dev_name(&dev->dev);
 				address_found = true;
 			}
 			break;
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_configfs.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_configfs.c
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/configfs.h>
 #include <linux/acpi.h>
+#include <linux/security.h>
 
 #include "acpica/accommon.h"
 #include "acpica/actables.h"
@@ -28,7 +29,10 @@
 {
 	const struct acpi_table_header *header = data;
 	struct acpi_table *table;
-	int ret;
+	int ret = security_locked_down(LOCKDOWN_ACPI_TABLES);
+
+	if (ret)
+		return ret;
 
 	table = container_of(cfg, struct acpi_table, cfg);
 
@@ -263,7 +267,12 @@
 
 	acpi_table_group = configfs_register_default_group(root, "table",
 							   &acpi_tables_type);
-	return PTR_ERR_OR_ZERO(acpi_table_group);
+	if (IS_ERR(acpi_table_group)) {
+		configfs_unregister_subsystem(&acpi_configfs);
+		return PTR_ERR(acpi_table_group);
+	}
+
+	return 0;
 }
 module_init(acpi_configfs_init);
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_dbg.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_dbg.c
@@ -749,6 +749,9 @@
 {
 	int ret;
 
+	if (acpi_disabled)
+		return -ENODEV;
+
 	/* Initialize AML IO interface */
 	mutex_init(&acpi_aml_io.lock);
 	init_waitqueue_head(&acpi_aml_io.wait);
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_extlog.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_extlog.c
@@ -12,6 +12,7 @@
 #include <linux/ratelimit.h>
 #include <linux/edac.h>
 #include <linux/ras.h>
+#include <acpi/ghes.h>
 #include <asm/cpu.h>
 #include <asm/mce.h>
 
@@ -140,8 +141,8 @@
 	int	cpu = mce->extcpu;
 	struct acpi_hest_generic_status *estatus, *tmp;
 	struct acpi_hest_generic_data *gdata;
-	const guid_t *fru_id = &guid_null;
-	char *fru_text = "";
+	const guid_t *fru_id;
+	char *fru_text;
 	guid_t *sec_type;
 	static u32 err_seq;
 
@@ -162,17 +163,23 @@
 
 	/* log event via trace */
 	err_seq++;
-	gdata = (struct acpi_hest_generic_data *)(tmp + 1);
-	if (gdata->validation_bits & CPER_SEC_VALID_FRU_ID)
-		fru_id = (guid_t *)gdata->fru_id;
-	if (gdata->validation_bits & CPER_SEC_VALID_FRU_TEXT)
-		fru_text = gdata->fru_text;
-	sec_type = (guid_t *)gdata->section_type;
-	if (guid_equal(sec_type, &CPER_SEC_PLATFORM_MEM)) {
-		struct cper_sec_mem_err *mem = (void *)(gdata + 1);
-		if (gdata->error_data_length >= sizeof(*mem))
-			trace_extlog_mem_event(mem, err_seq, fru_id, fru_text,
-					       (u8)gdata->error_severity);
+	apei_estatus_for_each_section(tmp, gdata) {
+		if (gdata->validation_bits & CPER_SEC_VALID_FRU_ID)
+			fru_id = (guid_t *)gdata->fru_id;
+		else
+			fru_id = &guid_null;
+		if (gdata->validation_bits & CPER_SEC_VALID_FRU_TEXT)
+			fru_text = gdata->fru_text;
+		else
+			fru_text = "";
+		sec_type = (guid_t *)gdata->section_type;
+		if (guid_equal(sec_type, &CPER_SEC_PLATFORM_MEM)) {
+			struct cper_sec_mem_err *mem = (void *)(gdata + 1);
+
+			if (gdata->error_data_length >= sizeof(*mem))
+				trace_extlog_mem_event(mem, err_seq, fru_id, fru_text,
+						       (u8)gdata->error_severity);
+		}
 	}
 
 out:
@@ -223,9 +230,9 @@
 	u64 cap;
 	int rc;
 
-	rdmsrl(MSR_IA32_MCG_CAP, cap);
-
-	if (!(cap & MCG_ELOG_P) || !extlog_get_l1addr())
+	if (rdmsrl_safe(MSR_IA32_MCG_CAP, &cap) ||
+	    !(cap & MCG_ELOG_P) ||
+	    !extlog_get_l1addr())
 		return -ENODEV;
 
 	if (edac_get_report_status() == EDAC_REPORTING_FORCE) {
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_lpss.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_lpss.c
@@ -10,6 +10,7 @@
 #include <linux/acpi.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
+#include <linux/dmi.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/mutex.h>
@@ -400,6 +401,9 @@
 	if (!lpss_clk_dev)
 		lpt_register_clock_device();
 
+	if (IS_ERR(lpss_clk_dev))
+		return PTR_ERR(lpss_clk_dev);
+
 	clk_data = platform_get_drvdata(lpss_clk_dev);
 	if (!clk_data)
 		return -ENODEV;
@@ -463,6 +467,18 @@
 	const char *consumer_hid;
 	const char *consumer_uid;
 	u32 flags;
+	const struct dmi_system_id *dep_missing_ids;
+};
+
+/* Please keep this list sorted alphabetically by vendor and model */
+static const struct dmi_system_id i2c1_dep_missing_dmi_ids[] = {
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "T200TA"),
+		},
+	},
+	{}
 };
 
 /*
@@ -473,9 +489,17 @@
  * the supplier is not enumerated until after the consumer is probed.
  */
 static const struct lpss_device_links lpss_device_links[] = {
+	/* CHT External sdcard slot controller depends on PMIC I2C ctrl */
 	{"808622C1", "7", "80860F14", "3", DL_FLAG_PM_RUNTIME},
+	/* CHT iGPU depends on PMIC I2C controller */
 	{"808622C1", "7", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
+	/* BYT iGPU depends on the Embedded Controller I2C controller (UID 1) */
+	{"80860F41", "1", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME,
+	 i2c1_dep_missing_dmi_ids},
+	/* BYT CR iGPU depends on PMIC I2C controller (UID 5 on CR) */
 	{"80860F41", "5", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
+	/* BYT iGPU depends on PMIC I2C controller (UID 7 on non CR) */
+	{"80860F41", "7", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
 };
 
 static bool hid_uid_match(struct acpi_device *adev,
@@ -570,7 +594,8 @@
 	if (!dev2)
 		return;
 
-	if (acpi_lpss_dep(ACPI_COMPANION(dev2), ACPI_HANDLE(dev1)))
+	if ((link->dep_missing_ids && dmi_check_system(link->dep_missing_ids))
+	    || acpi_lpss_dep(ACPI_COMPANION(dev2), ACPI_HANDLE(dev1)))
 		device_link_add(dev2, dev1, link->flags);
 
 	put_device(dev2);
@@ -585,7 +610,8 @@
 	if (!dev2)
 		return;
 
-	if (acpi_lpss_dep(ACPI_COMPANION(dev1), ACPI_HANDLE(dev2)))
+	if ((link->dep_missing_ids && dmi_check_system(link->dep_missing_ids))
+	    || acpi_lpss_dep(ACPI_COMPANION(dev1), ACPI_HANDLE(dev2)))
 		device_link_add(dev1, dev2, link->flags);
 
 	put_device(dev2);
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_pad.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_pad.c
@@ -88,7 +88,7 @@
 	cpumask_var_t tmp;
 	int cpu;
 	unsigned long min_weight = -1;
-	unsigned long uninitialized_var(preferred_cpu);
+	unsigned long preferred_cpu;
 
 	if (!alloc_cpumask_var(&tmp, GFP_KERNEL))
 		return;
@@ -262,7 +262,7 @@
 	return ps_tsk_num;
 }
 
-static ssize_t acpi_pad_rrtime_store(struct device *dev,
+static ssize_t rrtime_store(struct device *dev,
 	struct device_attribute *attr, const char *buf, size_t count)
 {
 	unsigned long num;
@@ -276,16 +276,14 @@
 	return count;
 }
 
-static ssize_t acpi_pad_rrtime_show(struct device *dev,
+static ssize_t rrtime_show(struct device *dev,
 	struct device_attribute *attr, char *buf)
 {
 	return scnprintf(buf, PAGE_SIZE, "%d\n", round_robin_time);
 }
-static DEVICE_ATTR(rrtime, S_IRUGO|S_IWUSR,
-	acpi_pad_rrtime_show,
-	acpi_pad_rrtime_store);
+static DEVICE_ATTR_RW(rrtime);
 
-static ssize_t acpi_pad_idlepct_store(struct device *dev,
+static ssize_t idlepct_store(struct device *dev,
 	struct device_attribute *attr, const char *buf, size_t count)
 {
 	unsigned long num;
@@ -299,16 +297,14 @@
 	return count;
 }
 
-static ssize_t acpi_pad_idlepct_show(struct device *dev,
+static ssize_t idlepct_show(struct device *dev,
 	struct device_attribute *attr, char *buf)
 {
 	return scnprintf(buf, PAGE_SIZE, "%d\n", idle_pct);
 }
-static DEVICE_ATTR(idlepct, S_IRUGO|S_IWUSR,
-	acpi_pad_idlepct_show,
-	acpi_pad_idlepct_store);
+static DEVICE_ATTR_RW(idlepct);
 
-static ssize_t acpi_pad_idlecpus_store(struct device *dev,
+static ssize_t idlecpus_store(struct device *dev,
 	struct device_attribute *attr, const char *buf, size_t count)
 {
 	unsigned long num;
@@ -320,16 +316,14 @@
 	return count;
 }
 
-static ssize_t acpi_pad_idlecpus_show(struct device *dev,
+static ssize_t idlecpus_show(struct device *dev,
 	struct device_attribute *attr, char *buf)
 {
 	return cpumap_print_to_pagebuf(false, buf,
 				       to_cpumask(pad_busy_cpus_bits));
 }
 
-static DEVICE_ATTR(idlecpus, S_IRUGO|S_IWUSR,
-	acpi_pad_idlecpus_show,
-	acpi_pad_idlecpus_store);
+static DEVICE_ATTR_RW(idlecpus);
 
 static int acpi_pad_add_sysfs(struct acpi_device *device)
 {
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_platform.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_platform.c
@@ -31,6 +31,44 @@
 	{"", 0},
 };
 
+static struct platform_device *acpi_platform_device_find_by_companion(struct acpi_device *adev)
+{
+	struct device *dev;
+
+	dev = bus_find_device_by_acpi_dev(&platform_bus_type, adev);
+	return dev ? to_platform_device(dev) : NULL;
+}
+
+static int acpi_platform_device_remove_notify(struct notifier_block *nb,
+					      unsigned long value, void *arg)
+{
+	struct acpi_device *adev = arg;
+	struct platform_device *pdev;
+
+	switch (value) {
+	case ACPI_RECONFIG_DEVICE_ADD:
+		/* Nothing to do here */
+		break;
+	case ACPI_RECONFIG_DEVICE_REMOVE:
+		if (!acpi_device_enumerated(adev))
+			break;
+
+		pdev = acpi_platform_device_find_by_companion(adev);
+		if (!pdev)
+			break;
+
+		platform_device_unregister(pdev);
+		put_device(&pdev->dev);
+		break;
+	}
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block acpi_platform_notifier = {
+	.notifier_call = acpi_platform_device_remove_notify,
+};
+
 static void acpi_platform_fill_resource(struct acpi_device *adev,
 	const struct resource *src, struct resource *dest)
 {
@@ -130,3 +168,8 @@
 	return pdev;
 }
 EXPORT_SYMBOL_GPL(acpi_create_platform_device);
+
+void __init acpi_platform_init(void)
+{
+	acpi_reconfig_notifier_register(&acpi_platform_notifier);
+}
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_pnp.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_pnp.c
@@ -317,6 +317,9 @@
 {
 	int i;
 
+	if (strlen(idstr) != strlen(list_id))
+		return false;
+
 	if (memcmp(idstr, list_id, 3))
 		return false;
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_tad.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_tad.c
@@ -237,7 +237,7 @@
 		       rt.tz, rt.daylight);
 }
 
-static DEVICE_ATTR(time, S_IRUSR | S_IWUSR, time_show, time_store);
+static DEVICE_ATTR_RW(time);
 
 static struct attribute *acpi_tad_time_attrs[] = {
 	&dev_attr_time.attr,
@@ -446,7 +446,7 @@
 	return acpi_tad_alarm_read(dev, buf, ACPI_TAD_AC_TIMER);
 }
 
-static DEVICE_ATTR(ac_alarm, S_IRUSR | S_IWUSR, ac_alarm_show, ac_alarm_store);
+static DEVICE_ATTR_RW(ac_alarm);
 
 static ssize_t ac_policy_store(struct device *dev, struct device_attribute *attr,
 			       const char *buf, size_t count)
@@ -462,7 +462,7 @@
 	return acpi_tad_policy_read(dev, buf, ACPI_TAD_AC_TIMER);
 }
 
-static DEVICE_ATTR(ac_policy, S_IRUSR | S_IWUSR, ac_policy_show, ac_policy_store);
+static DEVICE_ATTR_RW(ac_policy);
 
 static ssize_t ac_status_store(struct device *dev, struct device_attribute *attr,
 			       const char *buf, size_t count)
@@ -478,7 +478,7 @@
 	return acpi_tad_status_read(dev, buf, ACPI_TAD_AC_TIMER);
 }
 
-static DEVICE_ATTR(ac_status, S_IRUSR | S_IWUSR, ac_status_show, ac_status_store);
+static DEVICE_ATTR_RW(ac_status);
 
 static struct attribute *acpi_tad_attrs[] = {
 	&dev_attr_caps.attr,
@@ -505,7 +505,7 @@
 	return acpi_tad_alarm_read(dev, buf, ACPI_TAD_DC_TIMER);
 }
 
-static DEVICE_ATTR(dc_alarm, S_IRUSR | S_IWUSR, dc_alarm_show, dc_alarm_store);
+static DEVICE_ATTR_RW(dc_alarm);
 
 static ssize_t dc_policy_store(struct device *dev, struct device_attribute *attr,
 			       const char *buf, size_t count)
@@ -521,7 +521,7 @@
 	return acpi_tad_policy_read(dev, buf, ACPI_TAD_DC_TIMER);
 }
 
-static DEVICE_ATTR(dc_policy, S_IRUSR | S_IWUSR, dc_policy_show, dc_policy_store);
+static DEVICE_ATTR_RW(dc_policy);
 
 static ssize_t dc_status_store(struct device *dev, struct device_attribute *attr,
 			       const char *buf, size_t count)
@@ -537,7 +537,7 @@
 	return acpi_tad_status_read(dev, buf, ACPI_TAD_DC_TIMER);
 }
 
-static DEVICE_ATTR(dc_status, S_IRUSR | S_IWUSR, dc_status_show, dc_status_store);
+static DEVICE_ATTR_RW(dc_status);
 
 static struct attribute *acpi_tad_dc_attrs[] = {
 	&dev_attr_dc_alarm.attr,
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_video.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_video.c
@@ -498,6 +498,22 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE R830"),
 		},
 	},
+	{
+	 .callback = video_disable_backlight_sysfs_if,
+	 .ident = "Toshiba Satellite Z830",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE Z830"),
+		},
+	},
+	{
+	 .callback = video_disable_backlight_sysfs_if,
+	 .ident = "Toshiba Portege Z830",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE Z830"),
+		},
+	},
 	/*
 	 * Some machine's _DOD IDs don't have bit 31(Device ID Scheme) set
 	 * but the IDs actually follow the Device ID Scheme.
@@ -543,6 +559,15 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V131"),
 		},
 	},
+	{
+	 .callback = video_set_report_key_events,
+	 .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS),
+	 .ident = "Dell Vostro 3350",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"),
+		},
+	},
 	/*
 	 * Some machines change the brightness themselves when a brightness
 	 * hotkey gets pressed, despite us telling them not to. In this case
--- linux-ein-5.4.0.orig/drivers/acpi/acpi_watchdog.c
+++ linux-ein-5.4.0/drivers/acpi/acpi_watchdog.c
@@ -55,12 +55,14 @@
 }
 #endif
 
+static bool acpi_no_watchdog;
+
 static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
 {
 	const struct acpi_table_wdat *wdat = NULL;
 	acpi_status status;
 
-	if (acpi_disabled)
+	if (acpi_disabled || acpi_no_watchdog)
 		return NULL;
 
 	status = acpi_get_table(ACPI_SIG_WDAT, 0,
@@ -88,6 +90,14 @@
 }
 EXPORT_SYMBOL_GPL(acpi_has_watchdog);
 
+/* ACPI watchdog can be disabled on boot command line */
+static int __init disable_acpi_watchdog(char *str)
+{
+	acpi_no_watchdog = true;
+	return 1;
+}
+__setup("acpi_no_watchdog", disable_acpi_watchdog);
+
 void __init acpi_watchdog_init(void)
 {
 	const struct acpi_wdat_entry *entries;
@@ -126,12 +136,11 @@
 		gas = &entries[i].register_region;
 
 		res.start = gas->address;
+		res.end = res.start + ACPI_ACCESS_BYTE_WIDTH(gas->access_width) - 1;
 		if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) {
 			res.flags = IORESOURCE_MEM;
-			res.end = res.start + ALIGN(gas->access_width, 4) - 1;
 		} else if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
 			res.flags = IORESOURCE_IO;
-			res.end = res.start + gas->access_width - 1;
 		} else {
 			pr_warn("Unsupported address space: %u\n",
 				gas->space_id);
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/Makefile
+++ linux-ein-5.4.0/drivers/acpi/acpica/Makefile
@@ -3,7 +3,7 @@
 # Makefile for ACPICA Core interpreter
 #
 
-ccflags-y			:= -Os -D_LINUX -DBUILDING_ACPICA
+ccflags-y			:= -D_LINUX -DBUILDING_ACPICA
 ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
 
 # use acpi.o to put all files here into acpi.o modparam namespace
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/acglobal.h
+++ linux-ein-5.4.0/drivers/acpi/acpica/acglobal.h
@@ -220,6 +220,8 @@
     acpi_gbl_bit_register_info[ACPI_NUM_BITREG];
 ACPI_GLOBAL(u8, acpi_gbl_sleep_type_a);
 ACPI_GLOBAL(u8, acpi_gbl_sleep_type_b);
+ACPI_GLOBAL(u8, acpi_gbl_sleep_type_a_s0);
+ACPI_GLOBAL(u8, acpi_gbl_sleep_type_b_s0);
 
 /*****************************************************************************
  *
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/achware.h
+++ linux-ein-5.4.0/drivers/acpi/acpica/achware.h
@@ -101,6 +101,8 @@
 
 acpi_status acpi_hw_enable_all_wakeup_gpes(void);
 
+u8 acpi_hw_check_all_gpes(acpi_handle gpe_skip_device, u32 gpe_skip_number);
+
 acpi_status
 acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
 				 struct acpi_gpe_block_info *gpe_block,
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/acnamesp.h
+++ linux-ein-5.4.0/drivers/acpi/acpica/acnamesp.h
@@ -256,6 +256,8 @@
 acpi_ns_build_normalized_path(struct acpi_namespace_node *node,
 			      char *full_path, u32 path_size, u8 no_trailing);
 
+void acpi_ns_normalize_pathname(char *original_path);
+
 char *acpi_ns_get_normalized_pathname(struct acpi_namespace_node *node,
 				      u8 no_trailing);
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/acobject.h
+++ linux-ein-5.4.0/drivers/acpi/acpica/acobject.h
@@ -283,6 +283,7 @@
 	acpi_adr_space_handler handler;
 	struct acpi_namespace_node *node;	/* Parent device */
 	void *context;
+	acpi_mutex context_mutex;
 	acpi_adr_space_setup setup;
 	union acpi_operand_object *region_list;	/* Regions using this handler */
 	union acpi_operand_object *next;
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dbinput.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dbinput.c
@@ -464,16 +464,14 @@
 		return (NULL);
 	}
 
-	/* Remove any spaces at the beginning */
+	/* Remove any spaces at the beginning, ignore blank lines */
 
-	if (*string == ' ') {
-		while (*string && (*string == ' ')) {
-			string++;
-		}
+	while (*string && isspace(*string)) {
+		string++;
+	}
 
-		if (!(*string)) {
-			return (NULL);
-		}
+	if (!(*string)) {
+		return (NULL);
 	}
 
 	switch (*string) {
@@ -551,7 +549,7 @@
 
 		/* Find end of token */
 
-		while (*string && (*string != ' ')) {
+		while (*string && !isspace(*string)) {
 			string++;
 		}
 		break;
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dbnames.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dbnames.c
@@ -571,6 +571,9 @@
 		object_info =
 		    ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_object_info));
 
+		if (!object_info)
+			return (AE_NO_MEMORY);
+
 		/* Walk the namespace from the root */
 
 		(void)acpi_walk_namespace(ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dsfield.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dsfield.c
@@ -244,7 +244,7 @@
  * FUNCTION:    acpi_ds_get_field_names
  *
  * PARAMETERS:  info            - create_field info structure
- *  `           walk_state      - Current method state
+ *              walk_state      - Current method state
  *              arg             - First parser arg for the field name list
  *
  * RETURN:      Status
@@ -518,13 +518,20 @@
 	info.region_node = region_node;
 
 	status = acpi_ds_get_field_names(&info, walk_state, arg->common.next);
+	if (ACPI_FAILURE(status)) {
+		return_ACPI_STATUS(status);
+	}
+
 	if (info.region_node->object->region.space_id ==
-	    ACPI_ADR_SPACE_PLATFORM_COMM
-	    && !(region_node->object->field.internal_pcc_buffer =
-		 ACPI_ALLOCATE_ZEROED(info.region_node->object->region.
-				      length))) {
-		return_ACPI_STATUS(AE_NO_MEMORY);
+	    ACPI_ADR_SPACE_PLATFORM_COMM) {
+		region_node->object->field.internal_pcc_buffer =
+		    ACPI_ALLOCATE_ZEROED(info.region_node->object->region.
+					 length);
+		if (!region_node->object->field.internal_pcc_buffer) {
+			return_ACPI_STATUS(AE_NO_MEMORY);
+		}
 	}
+
 	return_ACPI_STATUS(status);
 }
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dsmethod.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dsmethod.c
@@ -517,7 +517,7 @@
 	info = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_evaluate_info));
 	if (!info) {
 		status = AE_NO_MEMORY;
-		goto cleanup;
+		goto pop_walk_state;
 	}
 
 	info->parameters = &this_walk_state->operands[0];
@@ -529,7 +529,7 @@
 
 	ACPI_FREE(info);
 	if (ACPI_FAILURE(status)) {
-		goto cleanup;
+		goto pop_walk_state;
 	}
 
 	next_walk_state->method_nesting_depth =
@@ -575,6 +575,12 @@
 
 	return_ACPI_STATUS(status);
 
+pop_walk_state:
+
+	/* On error, pop the walk state to be deleted from thread */
+
+	acpi_ds_pop_walk_state(thread);
+
 cleanup:
 
 	/* On error, we must terminate the method properly */
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dswexec.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dswexec.c
@@ -16,6 +16,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acdebug.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
 ACPI_MODULE_NAME("dswexec")
@@ -329,6 +332,10 @@
 	u32 op_class;
 	union acpi_parse_object *next_op;
 	union acpi_parse_object *first_arg;
+#ifdef ACPI_EXEC_APP
+	char *namepath;
+	union acpi_operand_object *obj_desc;
+#endif
 
 	ACPI_FUNCTION_TRACE_PTR(ds_exec_end_op, walk_state);
 
@@ -537,6 +544,32 @@
 
 			status =
 			    acpi_ds_eval_buffer_field_operands(walk_state, op);
+			if (ACPI_FAILURE(status)) {
+				break;
+			}
+#ifdef ACPI_EXEC_APP
+			/*
+			 * acpi_exec support for namespace initialization file (initialize
+			 * buffer_fields in this code.)
+			 */
+			namepath =
+			    acpi_ns_get_external_pathname(op->common.node);
+			status = ae_lookup_init_file_entry(namepath, &obj_desc);
+			if (ACPI_SUCCESS(status)) {
+				status =
+				    acpi_ex_write_data_to_field(obj_desc,
+								op->common.
+								node->object,
+								NULL);
+				if ACPI_FAILURE
+					(status) {
+					ACPI_EXCEPTION((AE_INFO, status,
+							"While writing to buffer field"));
+					}
+			}
+			ACPI_FREE(namepath);
+			status = AE_OK;
+#endif
 			break;
 
 		case AML_TYPE_CREATE_OBJECT:
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dswload.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dswload.c
@@ -14,7 +14,6 @@
 #include "acdispat.h"
 #include "acinterp.h"
 #include "acnamesp.h"
-
 #ifdef ACPI_ASL_COMPILER
 #include "acdisasm.h"
 #endif
@@ -399,7 +398,6 @@
 	union acpi_parse_object *op;
 	acpi_object_type object_type;
 	acpi_status status = AE_OK;
-
 #ifdef ACPI_ASL_COMPILER
 	u8 param_count;
 #endif
@@ -410,6 +408,27 @@
 	ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op,
 			  walk_state));
 
+	/*
+	 * Disassembler: handle create field operators here.
+	 *
+	 * create_buffer_field is a deferred op that is typically processed in load
+	 * pass 2. However, disassembly of control method contents walk the parse
+	 * tree with ACPI_PARSE_LOAD_PASS1 and AML_CREATE operators are processed
+	 * in a later walk. This is a problem when there is a control method that
+	 * has the same name as the AML_CREATE object. In this case, any use of the
+	 * name segment will be detected as a method call rather than a reference
+	 * to a buffer field.
+	 *
+	 * This earlier creation during disassembly solves this issue by inserting
+	 * the named object in the ACPI namespace so that references to this name
+	 * would be a name string rather than a method call.
+	 */
+	if ((walk_state->parse_flags & ACPI_PARSE_DISASSEMBLE) &&
+	    (walk_state->op_info->flags & AML_CREATE)) {
+		status = acpi_ds_create_buffer_field(op, walk_state);
+		return_ACPI_STATUS(status);
+	}
+
 	/* We are only interested in opcodes that have an associated name */
 
 	if (!(walk_state->op_info->flags & (AML_NAMED | AML_FIELD))) {
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dswload2.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dswload2.c
@@ -15,6 +15,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acevents.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
 ACPI_MODULE_NAME("dswload2")
@@ -373,6 +376,10 @@
 	struct acpi_namespace_node *new_node;
 	u32 i;
 	u8 region_space;
+#ifdef ACPI_EXEC_APP
+	union acpi_operand_object *obj_desc;
+	char *namepath;
+#endif
 
 	ACPI_FUNCTION_TRACE(ds_load2_end_op);
 
@@ -466,6 +473,11 @@
 		 * be evaluated later during the execution phase
 		 */
 		status = acpi_ds_create_buffer_field(op, walk_state);
+		if (ACPI_FAILURE(status)) {
+			ACPI_EXCEPTION((AE_INFO, status,
+					"CreateBufferField failure"));
+			goto cleanup;
+			}
 		break;
 
 	case AML_TYPE_NAMED_FIELD:
@@ -604,6 +616,29 @@
 		case AML_NAME_OP:
 
 			status = acpi_ds_create_node(walk_state, node, op);
+			if (ACPI_FAILURE(status)) {
+				goto cleanup;
+			}
+#ifdef ACPI_EXEC_APP
+			/*
+			 * acpi_exec support for namespace initialization file (initialize
+			 * Name opcodes in this code.)
+			 */
+			namepath = acpi_ns_get_external_pathname(node);
+			status = ae_lookup_init_file_entry(namepath, &obj_desc);
+			if (ACPI_SUCCESS(status)) {
+
+				/* Detach any existing object, attach new object */
+
+				if (node->object) {
+					acpi_ns_detach_object(node);
+				}
+				acpi_ns_attach_object(node, obj_desc,
+						      obj_desc->common.type);
+			}
+			ACPI_FREE(namepath);
+			status = AE_OK;
+#endif
 			break;
 
 		case AML_METHOD_OP:
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/dswstate.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/dswstate.c
@@ -576,9 +576,14 @@
 	ACPI_FUNCTION_TRACE(ds_init_aml_walk);
 
 	walk_state->parser_state.aml =
-	    walk_state->parser_state.aml_start = aml_start;
-	walk_state->parser_state.aml_end =
-	    walk_state->parser_state.pkg_end = aml_start + aml_length;
+	    walk_state->parser_state.aml_start =
+	    walk_state->parser_state.aml_end =
+	    walk_state->parser_state.pkg_end = aml_start;
+	/* Avoid undefined behavior: applying zero offset to null pointer */
+	if (aml_length != 0) {
+		walk_state->parser_state.aml_end += aml_length;
+		walk_state->parser_state.pkg_end += aml_length;
+	}
 
 	/* The next_op of the next_walk will be the beginning of the method */
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/evevent.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/evevent.c
@@ -265,4 +265,49 @@
 		 handler) (acpi_gbl_fixed_event_handlers[event].context));
 }
 
+/*******************************************************************************
+ *
+ * FUNCTION:    acpi_any_fixed_event_status_set
+ *
+ * PARAMETERS:  None
+ *
+ * RETURN:      TRUE or FALSE
+ *
+ * DESCRIPTION: Checks the PM status register for active fixed events
+ *
+ ******************************************************************************/
+
+u32 acpi_any_fixed_event_status_set(void)
+{
+	acpi_status status;
+	u32 in_status;
+	u32 in_enable;
+	u32 i;
+
+	status = acpi_hw_register_read(ACPI_REGISTER_PM1_ENABLE, &in_enable);
+	if (ACPI_FAILURE(status)) {
+		return (FALSE);
+	}
+
+	status = acpi_hw_register_read(ACPI_REGISTER_PM1_STATUS, &in_status);
+	if (ACPI_FAILURE(status)) {
+		return (FALSE);
+	}
+
+	/*
+	 * Check for all possible Fixed Events and dispatch those that are active
+	 */
+	for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++) {
+
+		/* Both the status and enable bits must be on for this event */
+
+		if ((in_status & acpi_gbl_fixed_event_info[i].status_bit_mask) &&
+		    (in_enable & acpi_gbl_fixed_event_info[i].enable_bit_mask)) {
+			return (TRUE);
+		}
+	}
+
+	return (FALSE);
+}
+
 #endif				/* !ACPI_REDUCED_HARDWARE */
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/evhandler.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/evhandler.c
@@ -489,6 +489,13 @@
 
 	/* Init handler obj */
 
+	status =
+	    acpi_os_create_mutex(&handler_obj->address_space.context_mutex);
+	if (ACPI_FAILURE(status)) {
+		acpi_ut_remove_reference(handler_obj);
+		goto unlock_and_exit;
+	}
+
 	handler_obj->address_space.space_id = (u8)space_id;
 	handler_obj->address_space.handler_flags = flags;
 	handler_obj->address_space.region_list = NULL;
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/evregion.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/evregion.c
@@ -111,6 +111,8 @@
 	union acpi_operand_object *region_obj2;
 	void *region_context = NULL;
 	struct acpi_connection_info *context;
+	acpi_mutex context_mutex;
+	u8 context_locked;
 	acpi_physical_address address;
 
 	ACPI_FUNCTION_TRACE(ev_address_space_dispatch);
@@ -135,6 +137,8 @@
 	}
 
 	context = handler_desc->address_space.context;
+	context_mutex = handler_desc->address_space.context_mutex;
+	context_locked = FALSE;
 
 	/*
 	 * It may be the case that the region has never been initialized.
@@ -203,6 +207,23 @@
 	handler = handler_desc->address_space.handler;
 	address = (region_obj->region.address + region_offset);
 
+	ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
+			  "Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
+			  &region_obj->region.handler->address_space, handler,
+			  ACPI_FORMAT_UINT64(address),
+			  acpi_ut_get_region_name(region_obj->region.
+						  space_id)));
+
+	if (!(handler_desc->address_space.handler_flags &
+	      ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
+		/*
+		 * For handlers other than the default (supplied) handlers, we must
+		 * exit the interpreter because the handler *might* block -- we don't
+		 * know what it will do, so we can't hold the lock on the interpreter.
+		 */
+		acpi_ex_exit_interpreter();
+	}
+
 	/*
 	 * Special handling for generic_serial_bus and general_purpose_io:
 	 * There are three extra parameters that must be passed to the
@@ -211,6 +232,11 @@
 	 *   2) Length of the above buffer
 	 *   3) Actual access length from the access_as() op
 	 *
+	 * Since we pass these extra parameters via the context, which is
+	 * shared between threads, we must lock the context to avoid these
+	 * parameters being changed from another thread before the handler
+	 * has completed running.
+	 *
 	 * In addition, for general_purpose_io, the Address and bit_width fields
 	 * are defined as follows:
 	 *   1) Address is the pin number index of the field (bit offset from
@@ -220,6 +246,14 @@
 	if ((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) &&
 	    context && field_obj) {
 
+		status =
+		    acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER);
+		if (ACPI_FAILURE(status)) {
+			goto re_enter_interpreter;
+		}
+
+		context_locked = TRUE;
+
 		/* Get the Connection (resource_template) buffer */
 
 		context->connection = field_obj->field.resource_buffer;
@@ -229,6 +263,14 @@
 	if ((region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) &&
 	    context && field_obj) {
 
+		status =
+		    acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER);
+		if (ACPI_FAILURE(status)) {
+			goto re_enter_interpreter;
+		}
+
+		context_locked = TRUE;
+
 		/* Get the Connection (resource_template) buffer */
 
 		context->connection = field_obj->field.resource_buffer;
@@ -238,28 +280,15 @@
 		bit_width = field_obj->field.bit_length;
 	}
 
-	ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
-			  "Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
-			  &region_obj->region.handler->address_space, handler,
-			  ACPI_FORMAT_UINT64(address),
-			  acpi_ut_get_region_name(region_obj->region.
-						  space_id)));
-
-	if (!(handler_desc->address_space.handler_flags &
-	      ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
-		/*
-		 * For handlers other than the default (supplied) handlers, we must
-		 * exit the interpreter because the handler *might* block -- we don't
-		 * know what it will do, so we can't hold the lock on the interpreter.
-		 */
-		acpi_ex_exit_interpreter();
-	}
-
 	/* Call the handler */
 
 	status = handler(function, address, bit_width, value, context,
 			 region_obj2->extra.region_context);
 
+	if (context_locked) {
+		acpi_os_release_mutex(context_mutex);
+	}
+
 	if (ACPI_FAILURE(status)) {
 		ACPI_EXCEPTION((AE_INFO, status, "Returned by Handler for [%s]",
 				acpi_ut_get_region_name(region_obj->region.
@@ -276,6 +305,7 @@
 		}
 	}
 
+re_enter_interpreter:
 	if (!(handler_desc->address_space.handler_flags &
 	      ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
 		/*
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/evxfgpe.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/evxfgpe.c
@@ -795,6 +795,45 @@
 
 ACPI_EXPORT_SYMBOL(acpi_enable_all_wakeup_gpes)
 
+/******************************************************************************
+ *
+ * FUNCTION:    acpi_any_gpe_status_set
+ *
+ * PARAMETERS:  gpe_skip_number      - Number of the GPE to skip
+ *
+ * RETURN:      Whether or not the status bit is set for any GPE
+ *
+ * DESCRIPTION: Check the status bits of all enabled GPEs, except for the one
+ *              represented by the "skip" argument, and return TRUE if any of
+ *              them is set or FALSE otherwise.
+ *
+ ******************************************************************************/
+u32 acpi_any_gpe_status_set(u32 gpe_skip_number)
+{
+	acpi_status status;
+	acpi_handle gpe_device;
+	u8 ret;
+
+	ACPI_FUNCTION_TRACE(acpi_any_gpe_status_set);
+
+	status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+	if (ACPI_FAILURE(status)) {
+		return (FALSE);
+	}
+
+	status = acpi_get_gpe_device(gpe_skip_number, &gpe_device);
+	if (ACPI_FAILURE(status)) {
+		gpe_device = NULL;
+	}
+
+	ret = acpi_hw_check_all_gpes(gpe_device, gpe_skip_number);
+	(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+
+	return (ret);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_any_gpe_status_set)
+
 /*******************************************************************************
  *
  * FUNCTION:    acpi_install_gpe_block
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/evxfregn.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/evxfregn.c
@@ -201,6 +201,8 @@
 
 			/* Now we can delete the handler object */
 
+			acpi_os_release_mutex(handler_obj->address_space.
+					      context_mutex);
 			acpi_ut_remove_reference(handler_obj);
 			goto unlock_and_exit;
 		}
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/exfield.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/exfield.c
@@ -320,12 +320,7 @@
 		       obj_desc->field.base_byte_offset,
 		       source_desc->buffer.pointer, data_length);
 
-		if ((obj_desc->field.region_obj->region.address ==
-		     PCC_MASTER_SUBSPACE
-		     && MASTER_SUBSPACE_COMMAND(obj_desc->field.
-						base_byte_offset))
-		    || GENERIC_SUBSPACE_COMMAND(obj_desc->field.
-						base_byte_offset)) {
+		if (MASTER_SUBSPACE_COMMAND(obj_desc->field.base_byte_offset)) {
 
 			/* Perform the write */
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/exoparg1.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/exoparg1.c
@@ -1007,7 +1007,8 @@
 						    (walk_state, return_desc,
 						     &temp_desc);
 						if (ACPI_FAILURE(status)) {
-							goto cleanup;
+							return_ACPI_STATUS
+							    (status);
 						}
 
 						return_desc = temp_desc;
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/exprep.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/exprep.c
@@ -473,10 +473,6 @@
 				    (u8)access_byte_width;
 			}
 		}
-		/* An additional reference for the container */
-
-		acpi_ut_add_reference(obj_desc->field.region_obj);
-
 		ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
 				  "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
 				  obj_desc->field.start_field_bit_offset,
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/hwesleep.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/hwesleep.c
@@ -104,7 +104,9 @@
 
 	/* Flush caches, as per ACPI specification */
 
-	ACPI_FLUSH_CPU_CACHE();
+	if (sleep_state < ACPI_STATE_S4) {
+		ACPI_FLUSH_CPU_CACHE();
+	}
 
 	status = acpi_os_enter_sleep(sleep_state, sleep_control, 0);
 	if (status == AE_CTRL_TERMINATE) {
@@ -147,17 +149,13 @@
 
 acpi_status acpi_hw_extended_wake_prep(u8 sleep_state)
 {
-	acpi_status status;
 	u8 sleep_type_value;
 
 	ACPI_FUNCTION_TRACE(hw_extended_wake_prep);
 
-	status = acpi_get_sleep_type_data(ACPI_STATE_S0,
-					  &acpi_gbl_sleep_type_a,
-					  &acpi_gbl_sleep_type_b);
-	if (ACPI_SUCCESS(status)) {
+	if (acpi_gbl_sleep_type_a_s0 != ACPI_SLEEP_TYPE_INVALID) {
 		sleep_type_value =
-		    ((acpi_gbl_sleep_type_a << ACPI_X_SLEEP_TYPE_POSITION) &
+		    ((acpi_gbl_sleep_type_a_s0 << ACPI_X_SLEEP_TYPE_POSITION) &
 		     ACPI_X_SLEEP_TYPE_MASK);
 
 		(void)acpi_write((u64)(sleep_type_value | ACPI_X_SLEEP_ENABLE),
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/hwgpe.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/hwgpe.c
@@ -444,6 +444,65 @@
 	return (AE_OK);
 }
 
+struct acpi_gpe_block_status_context {
+	struct acpi_gpe_register_info *gpe_skip_register_info;
+	u8 gpe_skip_mask;
+	u8 retval;
+};
+
+/******************************************************************************
+ *
+ * FUNCTION:    acpi_hw_get_gpe_block_status
+ *
+ * PARAMETERS:  gpe_xrupt_info      - GPE Interrupt info
+ *              gpe_block           - Gpe Block info
+ *              context             - GPE list walk context data
+ *
+ * RETURN:      Success
+ *
+ * DESCRIPTION: Produce a combined GPE status bits mask for the given block.
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_hw_get_gpe_block_status(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+			     struct acpi_gpe_block_info *gpe_block,
+			     void *context)
+{
+	struct acpi_gpe_block_status_context *c = context;
+	struct acpi_gpe_register_info *gpe_register_info;
+	u64 in_enable, in_status;
+	acpi_status status;
+	u8 ret_mask;
+	u32 i;
+
+	/* Examine each GPE Register within the block */
+
+	for (i = 0; i < gpe_block->register_count; i++) {
+		gpe_register_info = &gpe_block->register_info[i];
+
+		status = acpi_hw_read(&in_enable,
+				      &gpe_register_info->enable_address);
+		if (ACPI_FAILURE(status)) {
+			continue;
+		}
+
+		status = acpi_hw_read(&in_status,
+				      &gpe_register_info->status_address);
+		if (ACPI_FAILURE(status)) {
+			continue;
+		}
+
+		ret_mask = in_enable & in_status;
+		if (ret_mask && c->gpe_skip_register_info == gpe_register_info) {
+			ret_mask &= ~c->gpe_skip_mask;
+		}
+		c->retval |= ret_mask;
+	}
+
+	return (AE_OK);
+}
+
 /******************************************************************************
  *
  * FUNCTION:    acpi_hw_disable_all_gpes
@@ -510,4 +569,45 @@
 	return_ACPI_STATUS(status);
 }
 
+/******************************************************************************
+ *
+ * FUNCTION:    acpi_hw_check_all_gpes
+ *
+ * PARAMETERS:  gpe_skip_device      - GPE devoce of the GPE to skip
+ *              gpe_skip_number      - Number of the GPE to skip
+ *
+ * RETURN:      Combined status of all GPEs
+ *
+ * DESCRIPTION: Check all enabled GPEs in all GPE blocks, except for the one
+ *              represented by the "skip" arguments, and return TRUE if the
+ *              status bit is set for at least one of them of FALSE otherwise.
+ *
+ ******************************************************************************/
+
+u8 acpi_hw_check_all_gpes(acpi_handle gpe_skip_device, u32 gpe_skip_number)
+{
+	struct acpi_gpe_block_status_context context = {
+		.gpe_skip_register_info = NULL,
+		.retval = 0,
+	};
+	struct acpi_gpe_event_info *gpe_event_info;
+	acpi_cpu_flags flags;
+
+	ACPI_FUNCTION_TRACE(acpi_hw_check_all_gpes);
+
+	flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+	gpe_event_info = acpi_ev_get_gpe_event_info(gpe_skip_device,
+						    gpe_skip_number);
+	if (gpe_event_info) {
+		context.gpe_skip_register_info = gpe_event_info->register_info;
+		context.gpe_skip_mask = acpi_hw_get_gpe_register_bit(gpe_event_info);
+	}
+
+	acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+
+	(void)acpi_ev_walk_gpe_list(acpi_hw_get_gpe_block_status, &context);
+	return (context.retval != 0);
+}
+
 #endif				/* !ACPI_REDUCED_HARDWARE */
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/hwsleep.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/hwsleep.c
@@ -110,7 +110,9 @@
 
 	/* Flush caches, as per ACPI specification */
 
-	ACPI_FLUSH_CPU_CACHE();
+	if (sleep_state < ACPI_STATE_S4) {
+		ACPI_FLUSH_CPU_CACHE();
+	}
 
 	status = acpi_os_enter_sleep(sleep_state, pm1a_control, pm1b_control);
 	if (status == AE_CTRL_TERMINATE) {
@@ -179,7 +181,7 @@
 
 acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state)
 {
-	acpi_status status;
+	acpi_status status = AE_OK;
 	struct acpi_bit_register_info *sleep_type_reg_info;
 	struct acpi_bit_register_info *sleep_enable_reg_info;
 	u32 pm1a_control;
@@ -192,10 +194,7 @@
 	 * This is unclear from the ACPI Spec, but it is required
 	 * by some machines.
 	 */
-	status = acpi_get_sleep_type_data(ACPI_STATE_S0,
-					  &acpi_gbl_sleep_type_a,
-					  &acpi_gbl_sleep_type_b);
-	if (ACPI_SUCCESS(status)) {
+	if (acpi_gbl_sleep_type_a_s0 != ACPI_SLEEP_TYPE_INVALID) {
 		sleep_type_reg_info =
 		    acpi_hw_get_bit_register_info(ACPI_BITREG_SLEEP_TYPE);
 		sleep_enable_reg_info =
@@ -216,9 +215,9 @@
 
 			/* Insert the SLP_TYP bits */
 
-			pm1a_control |= (acpi_gbl_sleep_type_a <<
+			pm1a_control |= (acpi_gbl_sleep_type_a_s0 <<
 					 sleep_type_reg_info->bit_position);
-			pm1b_control |= (acpi_gbl_sleep_type_b <<
+			pm1b_control |= (acpi_gbl_sleep_type_b_s0 <<
 					 sleep_type_reg_info->bit_position);
 
 			/* Write the control registers and ignore any errors */
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/hwvalid.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/hwvalid.c
@@ -23,8 +23,8 @@
  *
  * The table is used to implement the Microsoft port access rules that
  * first appeared in Windows XP. Some ports are always illegal, and some
- * ports are only illegal if the BIOS calls _OSI with a win_XP string or
- * later (meaning that the BIOS itelf is post-XP.)
+ * ports are only illegal if the BIOS calls _OSI with nothing newer than
+ * the specific _OSI strings.
  *
  * This provides ACPICA with the desired port protections and
  * Microsoft compatibility.
@@ -145,7 +145,8 @@
 
 			/* Port illegality may depend on the _OSI calls made by the BIOS */
 
-			if (acpi_gbl_osi_data >= port_info->osi_dependency) {
+			if (port_info->osi_dependency == ACPI_ALWAYS_ILLEGAL ||
+			    acpi_gbl_osi_data == port_info->osi_dependency) {
 				ACPI_DEBUG_PRINT((ACPI_DB_VALUES,
 						  "Denied AML access to port 0x%8.8X%8.8X/%X (%s 0x%.4X-0x%.4X)\n",
 						  ACPI_FORMAT_UINT64(address),
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/hwxfsleep.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/hwxfsleep.c
@@ -162,8 +162,6 @@
 		return_ACPI_STATUS(status);
 	}
 
-	ACPI_FLUSH_CPU_CACHE();
-
 	status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
 				    (u32)acpi_gbl_FADT.s4_bios_request, 8);
 
@@ -214,6 +212,13 @@
 		return_ACPI_STATUS(status);
 	}
 
+	status = acpi_get_sleep_type_data(ACPI_STATE_S0,
+					  &acpi_gbl_sleep_type_a_s0,
+					  &acpi_gbl_sleep_type_b_s0);
+	if (ACPI_FAILURE(status)) {
+		acpi_gbl_sleep_type_a_s0 = ACPI_SLEEP_TYPE_INVALID;
+	}
+
 	/* Execute the _PTS method (Prepare To Sleep) */
 
 	arg_list.count = 1;
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/nsaccess.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/nsaccess.c
@@ -99,13 +99,12 @@
 		 * just create and link the new node(s) here.
 		 */
 		new_node =
-		    ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_namespace_node));
+		    acpi_ns_create_node(*ACPI_CAST_PTR(u32, init_val->name));
 		if (!new_node) {
 			status = AE_NO_MEMORY;
 			goto unlock_and_exit;
 		}
 
-		ACPI_COPY_NAMESEG(new_node->name.ascii, init_val->name);
 		new_node->descriptor_type = ACPI_DESC_TYPE_NAMED;
 		new_node->type = init_val->type;
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/nsnames.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/nsnames.c
@@ -13,9 +13,6 @@
 #define _COMPONENT          ACPI_NAMESPACE
 ACPI_MODULE_NAME("nsnames")
 
-/* Local Prototypes */
-static void acpi_ns_normalize_pathname(char *original_path);
-
 /*******************************************************************************
  *
  * FUNCTION:    acpi_ns_get_external_pathname
@@ -30,7 +27,6 @@
  *              for error and debug statements.
  *
  ******************************************************************************/
-
 char *acpi_ns_get_external_pathname(struct acpi_namespace_node *node)
 {
 	char *name_buffer;
@@ -411,7 +407,7 @@
  *
  ******************************************************************************/
 
-static void acpi_ns_normalize_pathname(char *original_path)
+void acpi_ns_normalize_pathname(char *original_path)
 {
 	char *input_path = original_path;
 	char *new_path_buffer;
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/nsrepair.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/nsrepair.c
@@ -181,8 +181,9 @@
 	 * Try to fix if there was no return object. Warning if failed to fix.
 	 */
 	if (!return_object) {
-		if (expected_btypes && (!(expected_btypes & ACPI_RTYPE_NONE))) {
-			if (package_index != ACPI_NOT_PACKAGE_ELEMENT) {
+		if (expected_btypes) {
+			if (!(expected_btypes & ACPI_RTYPE_NONE) &&
+			    package_index != ACPI_NOT_PACKAGE_ELEMENT) {
 				ACPI_WARN_PREDEFINED((AE_INFO,
 						      info->full_pathname,
 						      ACPI_WARN_ALWAYS,
@@ -196,14 +197,15 @@
 				if (ACPI_SUCCESS(status)) {
 					return (AE_OK);	/* Repair was successful */
 				}
-			} else {
+			}
+
+			if (expected_btypes != ACPI_RTYPE_NONE) {
 				ACPI_WARN_PREDEFINED((AE_INFO,
 						      info->full_pathname,
 						      ACPI_WARN_ALWAYS,
 						      "Missing expected return value"));
+				return (AE_AML_NO_RETURN_VALUE);
 			}
-
-			return (AE_AML_NO_RETURN_VALUE);
 		}
 	}
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/nswalk.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/nswalk.c
@@ -169,6 +169,9 @@
 
 	if (start_node == ACPI_ROOT_OBJECT) {
 		start_node = acpi_gbl_root_node;
+		if (!start_node) {
+			return_ACPI_STATUS(AE_NO_NAMESPACE);
+		}
 	}
 
 	/* Null child means "get first node" */
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/psopcode.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/psopcode.c
@@ -603,7 +603,7 @@
 
 /* 7E */ ACPI_OP("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY,
 			 AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R,
-			 AML_FLAGS_EXEC_0A_0T_1R),
+			 AML_FLAGS_EXEC_0A_0T_1R | AML_NO_OPERAND_RESOLVE),
 
 /* ACPI 5.0 opcodes */
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/utcopy.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/utcopy.c
@@ -916,13 +916,6 @@
 	status = acpi_ut_walk_package_tree(source_obj, dest_obj,
 					   acpi_ut_copy_ielement_to_ielement,
 					   walk_state);
-	if (ACPI_FAILURE(status)) {
-
-		/* On failure, delete the destination package object */
-
-		acpi_ut_remove_reference(dest_obj);
-	}
-
 	return_ACPI_STATUS(status);
 }
 
--- linux-ein-5.4.0.orig/drivers/acpi/acpica/utdelete.c
+++ linux-ein-5.4.0/drivers/acpi/acpica/utdelete.c
@@ -285,6 +285,14 @@
 		}
 		break;
 
+	case ACPI_TYPE_LOCAL_ADDRESS_HANDLER:
+
+		ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS,
+				  "***** Address handler %p\n", object));
+
+		acpi_os_delete_mutex(object->address_space.context_mutex);
+		break;
+
 	default:
 
 		break;
@@ -414,6 +422,7 @@
 			ACPI_WARNING((AE_INFO,
 				      "Obj %p, Reference Count is already zero, cannot decrement\n",
 				      object));
+			return;
 		}
 
 		ACPI_DEBUG_PRINT_RAW((ACPI_DB_ALLOCATIONS,
@@ -452,13 +461,13 @@
  *
  * FUNCTION:    acpi_ut_update_object_reference
  *
- * PARAMETERS:  object              - Increment ref count for this object
- *                                    and all sub-objects
+ * PARAMETERS:  object              - Increment or decrement the ref count for
+ *                                    this object and all sub-objects
  *              action              - Either REF_INCREMENT or REF_DECREMENT
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Increment the object reference count
+ * DESCRIPTION: Increment or decrement the object reference count
  *
  * Object references are incremented when:
  * 1) An object is attached to a Node (namespace object)
@@ -492,7 +501,7 @@
 		}
 
 		/*
-		 * All sub-objects must have their reference count incremented
+		 * All sub-objects must have their reference count updated
 		 * also. Different object types have different subobjects.
 		 */
 		switch (object->common.type) {
@@ -559,6 +568,7 @@
 					break;
 				}
 			}
+
 			next_object = NULL;
 			break;
 
@@ -567,11 +577,6 @@
 			next_object = object->buffer_field.buffer_obj;
 			break;
 
-		case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-			next_object = object->field.region_obj;
-			break;
-
 		case ACPI_TYPE_LOCAL_BANK_FIELD:
 
 			next_object = object->bank_field.bank_obj;
@@ -612,6 +617,7 @@
 			}
 			break;
 
+		case ACPI_TYPE_LOCAL_REGION_FIELD:
 		case ACPI_TYPE_REGION:
 		default:
 
--- linux-ein-5.4.0.orig/drivers/acpi/apei/bert.c
+++ linux-ein-5.4.0/drivers/acpi/apei/bert.c
@@ -30,14 +30,25 @@
 #undef pr_fmt
 #define pr_fmt(fmt) "BERT: " fmt
 
+#define ACPI_BERT_PRINT_MAX_RECORDS 5
+#define ACPI_BERT_PRINT_MAX_LEN 1024
+
 static int bert_disable;
 
+/*
+ * Print "all" the error records in the BERT table, but avoid huge spam to
+ * the console if the BIOS included oversize records, or too many records.
+ * Skipping some records here does not lose anything because the full
+ * data is available to user tools in:
+ *	/sys/firmware/acpi/tables/data/BERT
+ */
 static void __init bert_print_all(struct acpi_bert_region *region,
 				  unsigned int region_len)
 {
 	struct acpi_hest_generic_status *estatus =
 		(struct acpi_hest_generic_status *)region;
 	int remain = region_len;
+	int printed = 0, skipped = 0;
 	u32 estatus_len;
 
 	while (remain >= sizeof(struct acpi_bert_region)) {
@@ -45,21 +56,26 @@
 		if (remain < estatus_len) {
 			pr_err(FW_BUG "Truncated status block (length: %u).\n",
 			       estatus_len);
-			return;
+			break;
 		}
 
 		/* No more error records. */
 		if (!estatus->block_status)
-			return;
+			break;
 
 		if (cper_estatus_check(estatus)) {
 			pr_err(FW_BUG "Invalid error record.\n");
-			return;
+			break;
 		}
 
-		pr_info_once("Error records from previous boot:\n");
-
-		cper_estatus_print(KERN_INFO HW_ERR, estatus);
+		if (estatus_len < ACPI_BERT_PRINT_MAX_LEN &&
+		    printed < ACPI_BERT_PRINT_MAX_RECORDS) {
+			pr_info_once("Error records from previous boot:\n");
+			cper_estatus_print(KERN_INFO HW_ERR, estatus);
+			printed++;
+		} else {
+			skipped++;
+		}
 
 		/*
 		 * Because the boot error source is "one-time polled" type,
@@ -71,13 +87,16 @@
 		estatus = (void *)estatus + estatus_len;
 		remain -= estatus_len;
 	}
+
+	if (skipped)
+		pr_info(HW_ERR "Skipped %d error records\n", skipped);
 }
 
 static int __init setup_bert_disable(char *str)
 {
 	bert_disable = 1;
 
-	return 0;
+	return 1;
 }
 __setup("bert_disable", setup_bert_disable);
 
--- linux-ein-5.4.0.orig/drivers/acpi/apei/erst.c
+++ linux-ein-5.4.0/drivers/acpi/apei/erst.c
@@ -891,7 +891,7 @@
 static int __init setup_erst_disable(char *str)
 {
 	erst_disable = 1;
-	return 0;
+	return 1;
 }
 
 __setup("erst_disable", setup_erst_disable);
--- linux-ein-5.4.0.orig/drivers/acpi/apei/ghes.c
+++ linux-ein-5.4.0/drivers/acpi/apei/ghes.c
@@ -171,7 +171,7 @@
 	 * New allocation must be visible in all pgd before it can be found by
 	 * an NMI allocating from the pool.
 	 */
-	vmalloc_sync_all();
+	vmalloc_sync_mappings();
 
 	rc = gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1);
 	if (rc)
--- linux-ein-5.4.0.orig/drivers/acpi/apei/hest.c
+++ linux-ein-5.4.0/drivers/acpi/apei/hest.c
@@ -219,7 +219,7 @@
 static int __init setup_hest_disable(char *str)
 {
 	hest_disable = HEST_DISABLED;
-	return 0;
+	return 1;
 }
 
 __setup("hest_disable", setup_hest_disable);
--- linux-ein-5.4.0.orig/drivers/acpi/arm64/gtdt.c
+++ linux-ein-5.4.0/drivers/acpi/arm64/gtdt.c
@@ -36,7 +36,7 @@
 
 static struct acpi_gtdt_descriptor acpi_gtdt_desc __initdata;
 
-static inline void *next_platform_timer(void *platform_timer)
+static inline __init void *next_platform_timer(void *platform_timer)
 {
 	struct acpi_gtdt_header *gh = platform_timer;
 
@@ -329,7 +329,7 @@
 					int index)
 {
 	struct platform_device *pdev;
-	int irq = map_gt_gsi(wd->timer_interrupt, wd->timer_flags);
+	int irq;
 
 	/*
 	 * According to SBSA specification the size of refresh and control
@@ -338,7 +338,7 @@
 	struct resource res[] = {
 		DEFINE_RES_MEM(wd->control_frame_address, SZ_4K),
 		DEFINE_RES_MEM(wd->refresh_frame_address, SZ_4K),
-		DEFINE_RES_IRQ(irq),
+		{},
 	};
 	int nr_res = ARRAY_SIZE(res);
 
@@ -348,10 +348,11 @@
 
 	if (!(wd->refresh_frame_address && wd->control_frame_address)) {
 		pr_err(FW_BUG "failed to get the Watchdog base address.\n");
-		acpi_unregister_gsi(wd->timer_interrupt);
 		return -EINVAL;
 	}
 
+	irq = map_gt_gsi(wd->timer_interrupt, wd->timer_flags);
+	res[2] = (struct resource)DEFINE_RES_IRQ(irq);
 	if (irq <= 0) {
 		pr_warn("failed to map the Watchdog interrupt.\n");
 		nr_res--;
@@ -364,7 +365,8 @@
 	 */
 	pdev = platform_device_register_simple("sbsa-gwdt", index, res, nr_res);
 	if (IS_ERR(pdev)) {
-		acpi_unregister_gsi(wd->timer_interrupt);
+		if (irq > 0)
+			acpi_unregister_gsi(wd->timer_interrupt);
 		return PTR_ERR(pdev);
 	}
 
--- linux-ein-5.4.0.orig/drivers/acpi/arm64/iort.c
+++ linux-ein-5.4.0/drivers/acpi/arm64/iort.c
@@ -361,6 +361,7 @@
 static int iort_get_id_mapping_index(struct acpi_iort_node *node)
 {
 	struct acpi_iort_smmu_v3 *smmu;
+	struct acpi_iort_pmcg *pmcg;
 
 	switch (node->type) {
 	case ACPI_IORT_NODE_SMMU_V3:
@@ -388,6 +389,10 @@
 
 		return smmu->id_mapping_index;
 	case ACPI_IORT_NODE_PMCG:
+		pmcg = (struct acpi_iort_pmcg *)node->node_data;
+		if (pmcg->overflow_gsiv || node->mapping_count == 0)
+			return -EINVAL;
+
 		return 0;
 	default:
 		return -EINVAL;
@@ -1368,9 +1373,17 @@
 	res[0].start = pmcg->page0_base_address;
 	res[0].end = pmcg->page0_base_address + SZ_4K - 1;
 	res[0].flags = IORESOURCE_MEM;
-	res[1].start = pmcg->page1_base_address;
-	res[1].end = pmcg->page1_base_address + SZ_4K - 1;
-	res[1].flags = IORESOURCE_MEM;
+	/*
+	 * The initial version in DEN0049C lacked a way to describe register
+	 * page 1, which makes it broken for most PMCG implementations; in
+	 * that case, just let the driver fail gracefully if it expects to
+	 * find a second memory resource.
+	 */
+	if (node->revision > 0) {
+		res[1].start = pmcg->page1_base_address;
+		res[1].end = pmcg->page1_base_address + SZ_4K - 1;
+		res[1].flags = IORESOURCE_MEM;
+	}
 
 	if (pmcg->overflow_gsiv)
 		acpi_iort_register_irq(pmcg->overflow_gsiv, "overflow",
@@ -1380,7 +1393,10 @@
 static struct acpi_platform_list pmcg_plat_info[] __initdata = {
 	/* HiSilicon Hip08 Platform */
 	{"HISI  ", "HIP08   ", 0, ACPI_SIG_IORT, greater_than_or_equal,
-	 "Erratum #162001800", IORT_SMMU_V3_PMCG_HISI_HIP08},
+	 "Erratum #162001800, Erratum #162001900", IORT_SMMU_V3_PMCG_HISI_HIP08},
+	/* HiSilicon Hip09 Platform */
+	{"HISI  ", "HIP09   ", 0, ACPI_SIG_IORT, greater_than_or_equal,
+	 "Erratum #162001900", IORT_SMMU_V3_PMCG_HISI_HIP09},
 	{ }
 };
 
--- linux-ein-5.4.0.orig/drivers/acpi/battery.c
+++ linux-ein-5.4.0/drivers/acpi/battery.c
@@ -38,6 +38,8 @@
 #define PREFIX "ACPI: "
 
 #define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
+#define ACPI_BATTERY_CAPACITY_VALID(capacity) \
+	((capacity) != 0 && (capacity) != ACPI_BATTERY_VALUE_UNKNOWN)
 
 #define ACPI_BATTERY_DEVICE_NAME	"Battery"
 
@@ -63,6 +65,7 @@
 static int battery_notification_delay_ms;
 static int battery_ac_is_broken;
 static int battery_check_pmic = 1;
+static int battery_quirk_notcharging;
 static unsigned int cache_time = 1000;
 module_param(cache_time, uint, 0644);
 MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
@@ -74,6 +77,10 @@
 
 static const struct acpi_device_id battery_device_ids[] = {
 	{"PNP0C0A", 0},
+
+	/* Microsoft Surface Go 3 */
+	{"MSHW0146", 0},
+
 	{"", 0},
 };
 
@@ -183,7 +190,7 @@
 		return 1;
 
 	/* fallback to using design values for broken batteries */
-	if (battery->design_capacity == battery->capacity_now)
+	if (battery->design_capacity <= battery->capacity_now)
 		return 1;
 
 	/* we don't do any sort of metric based on percentages */
@@ -192,7 +199,8 @@
 
 static bool acpi_battery_is_degraded(struct acpi_battery *battery)
 {
-	return battery->full_charge_capacity && battery->design_capacity &&
+	return ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity) &&
+		ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity) &&
 		battery->full_charge_capacity < battery->design_capacity;
 }
 
@@ -214,7 +222,7 @@
 				     enum power_supply_property psp,
 				     union power_supply_propval *val)
 {
-	int ret = 0;
+	int full_capacity = ACPI_BATTERY_VALUE_UNKNOWN, ret = 0;
 	struct acpi_battery *battery = to_acpi_battery(psy);
 
 	if (acpi_battery_present(battery)) {
@@ -230,6 +238,8 @@
 			val->intval = POWER_SUPPLY_STATUS_CHARGING;
 		else if (acpi_battery_is_charged(battery))
 			val->intval = POWER_SUPPLY_STATUS_FULL;
+		else if (battery_quirk_notcharging)
+			val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
 		else
 			val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
 		break;
@@ -263,14 +273,14 @@
 		break;
 	case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
 	case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
-		if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+		if (!ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity))
 			ret = -ENODEV;
 		else
 			val->intval = battery->design_capacity * 1000;
 		break;
 	case POWER_SUPPLY_PROP_CHARGE_FULL:
 	case POWER_SUPPLY_PROP_ENERGY_FULL:
-		if (battery->full_charge_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+		if (!ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity))
 			ret = -ENODEV;
 		else
 			val->intval = battery->full_charge_capacity * 1000;
@@ -283,11 +293,17 @@
 			val->intval = battery->capacity_now * 1000;
 		break;
 	case POWER_SUPPLY_PROP_CAPACITY:
-		if (battery->capacity_now && battery->full_charge_capacity)
-			val->intval = battery->capacity_now * 100/
-					battery->full_charge_capacity;
+		if (ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity))
+			full_capacity = battery->full_charge_capacity;
+		else if (ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity))
+			full_capacity = battery->design_capacity;
+
+		if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN ||
+		    full_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
+			ret = -ENODEV;
 		else
-			val->intval = 0;
+			val->intval = battery->capacity_now * 100/
+					full_capacity;
 		break;
 	case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
 		if (battery->state & ACPI_BATTERY_STATE_CRITICAL)
@@ -333,6 +349,20 @@
 	POWER_SUPPLY_PROP_SERIAL_NUMBER,
 };
 
+static enum power_supply_property charge_battery_full_cap_broken_props[] = {
+	POWER_SUPPLY_PROP_STATUS,
+	POWER_SUPPLY_PROP_PRESENT,
+	POWER_SUPPLY_PROP_TECHNOLOGY,
+	POWER_SUPPLY_PROP_CYCLE_COUNT,
+	POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
+	POWER_SUPPLY_PROP_VOLTAGE_NOW,
+	POWER_SUPPLY_PROP_CURRENT_NOW,
+	POWER_SUPPLY_PROP_CHARGE_NOW,
+	POWER_SUPPLY_PROP_MODEL_NAME,
+	POWER_SUPPLY_PROP_MANUFACTURER,
+	POWER_SUPPLY_PROP_SERIAL_NUMBER,
+};
+
 static enum power_supply_property energy_battery_props[] = {
 	POWER_SUPPLY_PROP_STATUS,
 	POWER_SUPPLY_PROP_PRESENT,
@@ -435,7 +465,7 @@
 			u8 *ptr = (u8 *)battery + offsets[i].offset;
 			if (element->type == ACPI_TYPE_STRING ||
 			    element->type == ACPI_TYPE_BUFFER)
-				strncpy(ptr, element->string.pointer, 32);
+				strscpy(ptr, element->string.pointer, 32);
 			else if (element->type == ACPI_TYPE_INTEGER) {
 				strncpy(ptr, (u8 *)&element->integer.value,
 					sizeof(u64));
@@ -794,20 +824,34 @@
 static int sysfs_add_battery(struct acpi_battery *battery)
 {
 	struct power_supply_config psy_cfg = { .drv_data = battery, };
+	bool full_cap_broken = false;
+
+	if (!ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity) &&
+	    !ACPI_BATTERY_CAPACITY_VALID(battery->design_capacity))
+		full_cap_broken = true;
 
 	if (battery->power_unit == ACPI_BATTERY_POWER_UNIT_MA) {
-		battery->bat_desc.properties = charge_battery_props;
-		battery->bat_desc.num_properties =
-			ARRAY_SIZE(charge_battery_props);
-	} else if (battery->full_charge_capacity == 0) {
-		battery->bat_desc.properties =
-			energy_battery_full_cap_broken_props;
-		battery->bat_desc.num_properties =
-			ARRAY_SIZE(energy_battery_full_cap_broken_props);
+		if (full_cap_broken) {
+			battery->bat_desc.properties =
+			    charge_battery_full_cap_broken_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(charge_battery_full_cap_broken_props);
+		} else {
+			battery->bat_desc.properties = charge_battery_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(charge_battery_props);
+		}
 	} else {
-		battery->bat_desc.properties = energy_battery_props;
-		battery->bat_desc.num_properties =
-			ARRAY_SIZE(energy_battery_props);
+		if (full_cap_broken) {
+			battery->bat_desc.properties =
+			    energy_battery_full_cap_broken_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(energy_battery_full_cap_broken_props);
+		} else {
+			battery->bat_desc.properties = energy_battery_props;
+			battery->bat_desc.num_properties =
+			    ARRAY_SIZE(energy_battery_props);
+		}
 	}
 
 	battery->bat_desc.name = acpi_device_bid(battery->device);
@@ -1300,6 +1344,12 @@
 	return 0;
 }
 
+static int __init battery_quirk_not_charging(const struct dmi_system_id *d)
+{
+	battery_quirk_notcharging = 1;
+	return 0;
+}
+
 static const struct dmi_system_id bat_dmi_table[] __initconst = {
 	{
 		/* NEC LZ750/LS */
@@ -1344,6 +1394,27 @@
 		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
 		},
 	},
+	{
+		/*
+		 * On Lenovo ThinkPads the BIOS specification defines
+		 * a state when the bits for charging and discharging
+		 * are both set to 0. That state is "Not Charging".
+		 */
+		.callback = battery_quirk_not_charging,
+		.ident = "Lenovo ThinkPad",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
+		},
+	},
+	{
+		/* Microsoft Surface Go 3 */
+		.callback = battery_notification_delay_quirk,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Surface Go 3"),
+		},
+	},
 	{},
 };
 
--- linux-ein-5.4.0.orig/drivers/acpi/bgrt.c
+++ linux-ein-5.4.0/drivers/acpi/bgrt.c
@@ -15,40 +15,19 @@
 static void *bgrt_image;
 static struct kobject *bgrt_kobj;
 
-static ssize_t show_version(struct device *dev,
-			    struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE, "%d\n", bgrt_tab.version);
-}
-static DEVICE_ATTR(version, S_IRUGO, show_version, NULL);
-
-static ssize_t show_status(struct device *dev,
-			   struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE, "%d\n", bgrt_tab.status);
-}
-static DEVICE_ATTR(status, S_IRUGO, show_status, NULL);
-
-static ssize_t show_type(struct device *dev,
-			 struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE, "%d\n", bgrt_tab.image_type);
-}
-static DEVICE_ATTR(type, S_IRUGO, show_type, NULL);
-
-static ssize_t show_xoffset(struct device *dev,
-			    struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE, "%d\n", bgrt_tab.image_offset_x);
-}
-static DEVICE_ATTR(xoffset, S_IRUGO, show_xoffset, NULL);
-
-static ssize_t show_yoffset(struct device *dev,
-			    struct device_attribute *attr, char *buf)
-{
-	return snprintf(buf, PAGE_SIZE, "%d\n", bgrt_tab.image_offset_y);
-}
-static DEVICE_ATTR(yoffset, S_IRUGO, show_yoffset, NULL);
+#define BGRT_SHOW(_name, _member) \
+	static ssize_t _name##_show(struct kobject *kobj,			\
+				    struct kobj_attribute *attr, char *buf)	\
+	{									\
+		return snprintf(buf, PAGE_SIZE, "%d\n", bgrt_tab._member);	\
+	}									\
+	struct kobj_attribute bgrt_attr_##_name = __ATTR_RO(_name)
+
+BGRT_SHOW(version, version);
+BGRT_SHOW(status, status);
+BGRT_SHOW(type, image_type);
+BGRT_SHOW(xoffset, image_offset_x);
+BGRT_SHOW(yoffset, image_offset_y);
 
 static ssize_t image_read(struct file *file, struct kobject *kobj,
 	       struct bin_attribute *attr, char *buf, loff_t off, size_t count)
@@ -60,11 +39,11 @@
 static BIN_ATTR_RO(image, 0);	/* size gets filled in later */
 
 static struct attribute *bgrt_attributes[] = {
-	&dev_attr_version.attr,
-	&dev_attr_status.attr,
-	&dev_attr_type.attr,
-	&dev_attr_xoffset.attr,
-	&dev_attr_yoffset.attr,
+	&bgrt_attr_version.attr,
+	&bgrt_attr_status.attr,
+	&bgrt_attr_type.attr,
+	&bgrt_attr_xoffset.attr,
+	&bgrt_attr_yoffset.attr,
 	NULL,
 };
 
--- linux-ein-5.4.0.orig/drivers/acpi/bus.c
+++ linux-ein-5.4.0/drivers/acpi/bus.c
@@ -153,7 +153,7 @@
 {
 	acpi_status status;
 
-	if (!*data)
+	if (!data)
 		return -EINVAL;
 
 	status = acpi_get_data(handle, acpi_bus_private_data_handler, data);
@@ -1240,6 +1240,7 @@
 
 	result = acpi_bus_init();
 	if (result) {
+		kobject_put(acpi_kobj);
 		disable_acpi();
 		return result;
 	}
--- linux-ein-5.4.0.orig/drivers/acpi/button.c
+++ linux-ein-5.4.0/drivers/acpi/button.c
@@ -78,6 +78,39 @@
 			DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"),
 		},
 	},
+	{
+		/*
+		 * Medion Akoya E2215T, notification of the LID device only
+		 * happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "E2215T"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
+	{
+		/*
+		 * Medion Akoya E2228T, notification of the LID device only
+		 * happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "E2228T"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
+	{
+		/*
+		 * Razer Blade Stealth 13 late 2019, notification of the LID device
+		 * only happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Razer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Razer Blade Stealth 13 Late 2019"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
 	{}
 };
 
@@ -114,6 +147,7 @@
 	int last_state;
 	ktime_t last_time;
 	bool suspended;
+	bool lid_state_initialized;
 };
 
 static BLOCKING_NOTIFIER_HEAD(acpi_lid_notifier);
@@ -369,6 +403,8 @@
 
 static void acpi_lid_initialize_state(struct acpi_device *device)
 {
+	struct acpi_button *button = acpi_driver_data(device);
+
 	switch (lid_init_state) {
 	case ACPI_BUTTON_LID_INIT_OPEN:
 		(void)acpi_lid_notify_state(device, 1);
@@ -380,13 +416,14 @@
 	default:
 		break;
 	}
+
+	button->lid_state_initialized = true;
 }
 
 static void acpi_button_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_button *button = acpi_driver_data(device);
 	struct input_dev *input;
-	int users;
 
 	switch (event) {
 	case ACPI_FIXED_HARDWARE_EVENT:
@@ -395,10 +432,7 @@
 	case ACPI_BUTTON_NOTIFY_STATUS:
 		input = button->input;
 		if (button->type == ACPI_BUTTON_TYPE_LID) {
-			mutex_lock(&button->input->mutex);
-			users = button->input->users;
-			mutex_unlock(&button->input->mutex);
-			if (users)
+			if (button->lid_state_initialized)
 				acpi_lid_update_state(device, true);
 		} else {
 			int keycode;
@@ -443,7 +477,7 @@
 	struct acpi_button *button = acpi_driver_data(device);
 
 	button->suspended = false;
-	if (button->type == ACPI_BUTTON_TYPE_LID && button->input->users) {
+	if (button->type == ACPI_BUTTON_TYPE_LID) {
 		button->last_state = !!acpi_lid_evaluate_state(device);
 		button->last_time = ktime_get();
 		acpi_lid_initialize_state(device);
--- linux-ein-5.4.0.orig/drivers/acpi/cppc_acpi.c
+++ linux-ein-5.4.0/drivers/acpi/cppc_acpi.c
@@ -118,23 +118,15 @@
  */
 #define NUM_RETRIES 500ULL
 
-struct cppc_attr {
-	struct attribute attr;
-	ssize_t (*show)(struct kobject *kobj,
-			struct attribute *attr, char *buf);
-	ssize_t (*store)(struct kobject *kobj,
-			struct attribute *attr, const char *c, ssize_t count);
-};
-
 #define define_one_cppc_ro(_name)		\
-static struct cppc_attr _name =			\
+static struct kobj_attribute _name =		\
 __ATTR(_name, 0444, show_##_name, NULL)
 
 #define to_cpc_desc(a) container_of(a, struct cpc_desc, kobj)
 
 #define show_cppc_data(access_fn, struct_name, member_name)		\
 	static ssize_t show_##member_name(struct kobject *kobj,		\
-					struct attribute *attr,	char *buf) \
+				struct kobj_attribute *attr, char *buf)	\
 	{								\
 		struct cpc_desc *cpc_ptr = to_cpc_desc(kobj);		\
 		struct struct_name st_name = {0};			\
@@ -160,7 +152,7 @@
 show_cppc_data(cppc_get_perf_ctrs, cppc_perf_fb_ctrs, wraparound_time);
 
 static ssize_t show_feedback_ctrs(struct kobject *kobj,
-		struct attribute *attr, char *buf)
+		struct kobj_attribute *attr, char *buf)
 {
 	struct cpc_desc *cpc_ptr = to_cpc_desc(kobj);
 	struct cppc_perf_fb_ctrs fb_ctrs = {0};
@@ -634,33 +626,6 @@
 	return 0;
 }
 
-/* Check if CPPC revision + num_ent combination is supported */
-static bool is_cppc_supported(int revision, int num_ent)
-{
-	int expected_num_ent;
-
-	switch (revision) {
-	case CPPC_V2_REV:
-		expected_num_ent = CPPC_V2_NUM_ENT;
-		break;
-	case CPPC_V3_REV:
-		expected_num_ent = CPPC_V3_NUM_ENT;
-		break;
-	default:
-		pr_debug("Firmware exports unsupported CPPC revision: %d\n",
-			revision);
-		return false;
-	}
-
-	if (expected_num_ent != num_ent) {
-		pr_debug("Firmware exports %d entries. Expected: %d for CPPC rev:%d\n",
-			num_ent, expected_num_ent, revision);
-		return false;
-	}
-
-	return true;
-}
-
 /*
  * An example CPC table looks like the following.
  *
@@ -746,12 +711,16 @@
 	cpc_obj = &out_obj->package.elements[0];
 	if (cpc_obj->type == ACPI_TYPE_INTEGER)	{
 		num_ent = cpc_obj->integer.value;
+		if (num_ent <= 1) {
+			pr_debug("Unexpected _CPC NumEntries value (%d) for CPU:%d\n",
+				 num_ent, pr->id);
+			goto out_free;
+		}
 	} else {
 		pr_debug("Unexpected entry type(%d) for NumEntries\n",
 				cpc_obj->type);
 		goto out_free;
 	}
-	cpc_ptr->num_entries = num_ent;
 
 	/* Second entry should be revision. */
 	cpc_obj = &out_obj->package.elements[1];
@@ -762,10 +731,32 @@
 				cpc_obj->type);
 		goto out_free;
 	}
-	cpc_ptr->version = cpc_rev;
 
-	if (!is_cppc_supported(cpc_rev, num_ent))
+	if (cpc_rev < CPPC_V2_REV) {
+		pr_debug("Unsupported _CPC Revision (%d) for CPU:%d\n", cpc_rev,
+			 pr->id);
+		goto out_free;
+	}
+
+	/*
+	 * Disregard _CPC if the number of entries in the return pachage is not
+	 * as expected, but support future revisions being proper supersets of
+	 * the v3 and only causing more entries to be returned by _CPC.
+	 */
+	if ((cpc_rev == CPPC_V2_REV && num_ent != CPPC_V2_NUM_ENT) ||
+	    (cpc_rev == CPPC_V3_REV && num_ent != CPPC_V3_NUM_ENT) ||
+	    (cpc_rev > CPPC_V3_REV && num_ent <= CPPC_V3_NUM_ENT)) {
+		pr_debug("Unexpected number of _CPC return package entries (%d) for CPU:%d\n",
+			 num_ent, pr->id);
 		goto out_free;
+	}
+	if (cpc_rev > CPPC_V3_REV) {
+		num_ent = CPPC_V3_NUM_ENT;
+		cpc_rev = CPPC_V3_REV;
+	}
+
+	cpc_ptr->num_entries = num_ent;
+	cpc_ptr->version = cpc_rev;
 
 	/* Iterate through remaining entries in _CPC */
 	for (i = 2; i < num_ent; i++) {
@@ -865,6 +856,7 @@
 			"acpi_cppc");
 	if (ret) {
 		per_cpu(cpc_desc_ptr, pr->id) = NULL;
+		kobject_put(&cpc_ptr->kobj);
 		goto out_free;
 	}
 
--- linux-ein-5.4.0.orig/drivers/acpi/custom_method.c
+++ linux-ein-5.4.0/drivers/acpi/custom_method.c
@@ -44,6 +44,8 @@
 				   sizeof(struct acpi_table_header)))
 			return -EFAULT;
 		uncopied_bytes = max_size = table.length;
+		/* make sure the buf is not allocated */
+		kfree(buf);
 		buf = kzalloc(max_size, GFP_KERNEL);
 		if (!buf)
 			return -ENOMEM;
@@ -57,6 +59,7 @@
 	    (*ppos + count < count) ||
 	    (count > uncopied_bytes)) {
 		kfree(buf);
+		buf = NULL;
 		return -EINVAL;
 	}
 
@@ -78,7 +81,6 @@
 		add_taint(TAINT_OVERRIDDEN_ACPI_TABLE, LOCKDEP_NOW_UNRELIABLE);
 	}
 
-	kfree(buf);
 	return count;
 }
 
--- linux-ein-5.4.0.orig/drivers/acpi/device_pm.c
+++ linux-ein-5.4.0/drivers/acpi/device_pm.c
@@ -186,7 +186,7 @@
 		 * possibly drop references to the power resources in use.
 		 */
 		state = ACPI_STATE_D3_HOT;
-		/* If _PR3 is not available, use D3hot as the target state. */
+		/* If D3cold is not supported, use D3hot as the target state. */
 		if (!device->power.states[ACPI_STATE_D3_COLD].flags.valid)
 			target_state = state;
 	} else if (!device->power.states[state].flags.valid) {
@@ -273,13 +273,13 @@
  end:
 	if (result) {
 		dev_warn(&device->dev, "Failed to change power state to %s\n",
-			 acpi_power_state_string(state));
+			 acpi_power_state_string(target_state));
 	} else {
 		device->power.state = target_state;
 		ACPI_DEBUG_PRINT((ACPI_DB_INFO,
 				  "Device [%s] transitioned to %s\n",
 				  device->pnp.bus_id,
-				  acpi_power_state_string(state)));
+				  acpi_power_state_string(target_state)));
 	}
 
 	return result;
@@ -749,7 +749,7 @@
 static DEFINE_MUTEX(acpi_wakeup_lock);
 
 static int __acpi_device_wakeup_enable(struct acpi_device *adev,
-				       u32 target_state, int max_count)
+				       u32 target_state)
 {
 	struct acpi_device_wakeup *wakeup = &adev->wakeup;
 	acpi_status status;
@@ -757,15 +757,26 @@
 
 	mutex_lock(&acpi_wakeup_lock);
 
-	if (wakeup->enable_count >= max_count)
-		goto out;
-
+	/*
+	 * If the device wakeup power is already enabled, disable it and enable
+	 * it again in case it depends on the configuration of subordinate
+	 * devices and the conditions have changed since it was enabled last
+	 * time.
+	 */
 	if (wakeup->enable_count > 0)
-		goto inc;
+		acpi_disable_wakeup_device_power(adev);
 
 	error = acpi_enable_wakeup_device_power(adev, target_state);
-	if (error)
+	if (error) {
+		if (wakeup->enable_count > 0) {
+			acpi_disable_gpe(wakeup->gpe_device, wakeup->gpe_number);
+			wakeup->enable_count = 0;
+		}
 		goto out;
+	}
+
+	if (wakeup->enable_count > 0)
+		goto inc;
 
 	status = acpi_enable_gpe(wakeup->gpe_device, wakeup->gpe_number);
 	if (ACPI_FAILURE(status)) {
@@ -778,7 +789,10 @@
 			  (unsigned int)wakeup->gpe_number);
 
 inc:
-	wakeup->enable_count++;
+	if (wakeup->enable_count < INT_MAX)
+		wakeup->enable_count++;
+	else
+		acpi_handle_info(adev->handle, "Wakeup enable count out of bounds!\n");
 
 out:
 	mutex_unlock(&acpi_wakeup_lock);
@@ -799,7 +813,7 @@
  */
 static int acpi_device_wakeup_enable(struct acpi_device *adev, u32 target_state)
 {
-	return __acpi_device_wakeup_enable(adev, target_state, 1);
+	return __acpi_device_wakeup_enable(adev, target_state);
 }
 
 /**
@@ -829,8 +843,12 @@
 	mutex_unlock(&acpi_wakeup_lock);
 }
 
-static int __acpi_pm_set_device_wakeup(struct device *dev, bool enable,
-				       int max_count)
+/**
+ * acpi_pm_set_device_wakeup - Enable/disable remote wakeup for given device.
+ * @dev: Device to enable/disable to generate wakeup events.
+ * @enable: Whether to enable or disable the wakeup functionality.
+ */
+int acpi_pm_set_device_wakeup(struct device *dev, bool enable)
 {
 	struct acpi_device *adev;
 	int error;
@@ -850,37 +868,15 @@
 		return 0;
 	}
 
-	error = __acpi_device_wakeup_enable(adev, acpi_target_system_state(),
-					    max_count);
+	error = __acpi_device_wakeup_enable(adev, acpi_target_system_state());
 	if (!error)
 		dev_dbg(dev, "Wakeup enabled by ACPI\n");
 
 	return error;
 }
-
-/**
- * acpi_pm_set_device_wakeup - Enable/disable remote wakeup for given device.
- * @dev: Device to enable/disable to generate wakeup events.
- * @enable: Whether to enable or disable the wakeup functionality.
- */
-int acpi_pm_set_device_wakeup(struct device *dev, bool enable)
-{
-	return __acpi_pm_set_device_wakeup(dev, enable, 1);
-}
 EXPORT_SYMBOL_GPL(acpi_pm_set_device_wakeup);
 
 /**
- * acpi_pm_set_bridge_wakeup - Enable/disable remote wakeup for given bridge.
- * @dev: Bridge device to enable/disable to generate wakeup events.
- * @enable: Whether to enable or disable the wakeup functionality.
- */
-int acpi_pm_set_bridge_wakeup(struct device *dev, bool enable)
-{
-	return __acpi_pm_set_device_wakeup(dev, enable, INT_MAX);
-}
-EXPORT_SYMBOL_GPL(acpi_pm_set_bridge_wakeup);
-
-/**
  * acpi_dev_pm_low_power - Put ACPI device into a low-power state.
  * @dev: Device to put into a low-power state.
  * @adev: ACPI device node corresponding to @dev.
@@ -1314,9 +1310,19 @@
  */
 int acpi_dev_pm_attach(struct device *dev, bool power_on)
 {
+	/*
+	 * Skip devices whose ACPI companions match the device IDs below,
+	 * because they require special power management handling incompatible
+	 * with the generic ACPI PM domain.
+	 */
+	static const struct acpi_device_id special_pm_ids[] = {
+		{"PNP0C0B", }, /* Generic ACPI fan */
+		{"INT3404", }, /* Fan */
+		{}
+	};
 	struct acpi_device *adev = ACPI_COMPANION(dev);
 
-	if (!adev)
+	if (!adev || !acpi_match_device_ids(adev, special_pm_ids))
 		return 0;
 
 	/*
--- linux-ein-5.4.0.orig/drivers/acpi/device_sysfs.c
+++ linux-ein-5.4.0/drivers/acpi/device_sysfs.c
@@ -251,20 +251,12 @@
 	if (add_uevent_var(env, "MODALIAS="))
 		return -ENOMEM;
 
-	len = create_pnp_modalias(adev, &env->buf[env->buflen - 1],
-				  sizeof(env->buf) - env->buflen);
-	if (len < 0)
-		return len;
-
-	env->buflen += len;
-	if (!adev->data.of_compatible)
-		return 0;
-
-	if (len > 0 && add_uevent_var(env, "MODALIAS="))
-		return -ENOMEM;
-
-	len = create_of_modalias(adev, &env->buf[env->buflen - 1],
-				 sizeof(env->buf) - env->buflen);
+	if (adev->data.of_compatible)
+		len = create_of_modalias(adev, &env->buf[env->buflen - 1],
+					 sizeof(env->buf) - env->buflen);
+	else
+		len = create_pnp_modalias(adev, &env->buf[env->buflen - 1],
+					  sizeof(env->buf) - env->buflen);
 	if (len < 0)
 		return len;
 
@@ -333,11 +325,11 @@
 EXPORT_SYMBOL_GPL(acpi_device_modalias);
 
 static ssize_t
-acpi_device_modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
+modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
 {
 	return __acpi_device_modalias(to_acpi_device(dev), buf, 1024);
 }
-static DEVICE_ATTR(modalias, 0444, acpi_device_modalias_show, NULL);
+static DEVICE_ATTR_RO(modalias);
 
 static ssize_t real_power_state_show(struct device *dev,
 				     struct device_attribute *attr, char *buf)
@@ -366,8 +358,8 @@
 static DEVICE_ATTR_RO(power_state);
 
 static ssize_t
-acpi_eject_store(struct device *d, struct device_attribute *attr,
-		const char *buf, size_t count)
+eject_store(struct device *d, struct device_attribute *attr,
+	    const char *buf, size_t count)
 {
 	struct acpi_device *acpi_device = to_acpi_device(d);
 	acpi_object_type not_used;
@@ -395,28 +387,28 @@
 	return status == AE_NO_MEMORY ? -ENOMEM : -EAGAIN;
 }
 
-static DEVICE_ATTR(eject, 0200, NULL, acpi_eject_store);
+static DEVICE_ATTR_WO(eject);
 
 static ssize_t
-acpi_device_hid_show(struct device *dev, struct device_attribute *attr, char *buf)
+hid_show(struct device *dev, struct device_attribute *attr, char *buf)
 {
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 
 	return sprintf(buf, "%s\n", acpi_device_hid(acpi_dev));
 }
-static DEVICE_ATTR(hid, 0444, acpi_device_hid_show, NULL);
+static DEVICE_ATTR_RO(hid);
 
-static ssize_t acpi_device_uid_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
+static ssize_t uid_show(struct device *dev,
+			struct device_attribute *attr, char *buf)
 {
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 
 	return sprintf(buf, "%s\n", acpi_dev->pnp.unique_id);
 }
-static DEVICE_ATTR(uid, 0444, acpi_device_uid_show, NULL);
+static DEVICE_ATTR_RO(uid);
 
-static ssize_t acpi_device_adr_show(struct device *dev,
-				    struct device_attribute *attr, char *buf)
+static ssize_t adr_show(struct device *dev,
+			struct device_attribute *attr, char *buf)
 {
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 
@@ -425,16 +417,16 @@
 	else
 		return sprintf(buf, "0x%08llx\n", acpi_dev->pnp.bus_address);
 }
-static DEVICE_ATTR(adr, 0444, acpi_device_adr_show, NULL);
+static DEVICE_ATTR_RO(adr);
 
-static ssize_t acpi_device_path_show(struct device *dev,
-				     struct device_attribute *attr, char *buf)
+static ssize_t path_show(struct device *dev,
+			 struct device_attribute *attr, char *buf)
 {
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 
 	return acpi_object_path(acpi_dev->handle, buf);
 }
-static DEVICE_ATTR(path, 0444, acpi_device_path_show, NULL);
+static DEVICE_ATTR_RO(path);
 
 /* sysfs file that shows description text from the ACPI _STR method */
 static ssize_t description_show(struct device *dev,
@@ -454,7 +446,7 @@
 		(wchar_t *)acpi_dev->pnp.str_obj->buffer.pointer,
 		acpi_dev->pnp.str_obj->buffer.length,
 		UTF16_LITTLE_ENDIAN, buf,
-		PAGE_SIZE);
+		PAGE_SIZE - 1);
 
 	buf[result++] = '\n';
 
@@ -463,8 +455,8 @@
 static DEVICE_ATTR_RO(description);
 
 static ssize_t
-acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
-		     char *buf) {
+sun_show(struct device *dev, struct device_attribute *attr,
+	 char *buf) {
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 	acpi_status status;
 	unsigned long long sun;
@@ -475,11 +467,11 @@
 
 	return sprintf(buf, "%llu\n", sun);
 }
-static DEVICE_ATTR(sun, 0444, acpi_device_sun_show, NULL);
+static DEVICE_ATTR_RO(sun);
 
 static ssize_t
-acpi_device_hrv_show(struct device *dev, struct device_attribute *attr,
-		     char *buf) {
+hrv_show(struct device *dev, struct device_attribute *attr,
+	 char *buf) {
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 	acpi_status status;
 	unsigned long long hrv;
@@ -490,7 +482,7 @@
 
 	return sprintf(buf, "%llu\n", hrv);
 }
-static DEVICE_ATTR(hrv, 0444, acpi_device_hrv_show, NULL);
+static DEVICE_ATTR_RO(hrv);
 
 static ssize_t status_show(struct device *dev, struct device_attribute *attr,
 				char *buf) {
--- linux-ein-5.4.0.orig/drivers/acpi/dock.c
+++ linux-ein-5.4.0/drivers/acpi/dock.c
@@ -485,7 +485,7 @@
 /*
  * show_docked - read method for "docked" file in sysfs
  */
-static ssize_t show_docked(struct device *dev,
+static ssize_t docked_show(struct device *dev,
 			   struct device_attribute *attr, char *buf)
 {
 	struct dock_station *dock_station = dev->platform_data;
@@ -494,25 +494,25 @@
 	acpi_bus_get_device(dock_station->handle, &adev);
 	return snprintf(buf, PAGE_SIZE, "%u\n", acpi_device_enumerated(adev));
 }
-static DEVICE_ATTR(docked, S_IRUGO, show_docked, NULL);
+static DEVICE_ATTR_RO(docked);
 
 /*
  * show_flags - read method for flags file in sysfs
  */
-static ssize_t show_flags(struct device *dev,
+static ssize_t flags_show(struct device *dev,
 			  struct device_attribute *attr, char *buf)
 {
 	struct dock_station *dock_station = dev->platform_data;
 	return snprintf(buf, PAGE_SIZE, "%d\n", dock_station->flags);
 
 }
-static DEVICE_ATTR(flags, S_IRUGO, show_flags, NULL);
+static DEVICE_ATTR_RO(flags);
 
 /*
  * write_undock - write method for "undock" file in sysfs
  */
-static ssize_t write_undock(struct device *dev, struct device_attribute *attr,
-			   const char *buf, size_t count)
+static ssize_t undock_store(struct device *dev, struct device_attribute *attr,
+			    const char *buf, size_t count)
 {
 	int ret;
 	struct dock_station *dock_station = dev->platform_data;
@@ -526,13 +526,13 @@
 	acpi_scan_lock_release();
 	return ret ? ret: count;
 }
-static DEVICE_ATTR(undock, S_IWUSR, NULL, write_undock);
+static DEVICE_ATTR_WO(undock);
 
 /*
  * show_dock_uid - read method for "uid" file in sysfs
  */
-static ssize_t show_dock_uid(struct device *dev,
-			     struct device_attribute *attr, char *buf)
+static ssize_t uid_show(struct device *dev,
+			struct device_attribute *attr, char *buf)
 {
 	unsigned long long lbuf;
 	struct dock_station *dock_station = dev->platform_data;
@@ -543,10 +543,10 @@
 
 	return snprintf(buf, PAGE_SIZE, "%llx\n", lbuf);
 }
-static DEVICE_ATTR(uid, S_IRUGO, show_dock_uid, NULL);
+static DEVICE_ATTR_RO(uid);
 
-static ssize_t show_dock_type(struct device *dev,
-		struct device_attribute *attr, char *buf)
+static ssize_t type_show(struct device *dev,
+			 struct device_attribute *attr, char *buf)
 {
 	struct dock_station *dock_station = dev->platform_data;
 	char *type;
@@ -562,7 +562,7 @@
 
 	return snprintf(buf, PAGE_SIZE, "%s\n", type);
 }
-static DEVICE_ATTR(type, S_IRUGO, show_dock_type, NULL);
+static DEVICE_ATTR_RO(type);
 
 static struct attribute *dock_attributes[] = {
 	&dev_attr_docked.attr,
--- linux-ein-5.4.0.orig/drivers/acpi/ec.c
+++ linux-ein-5.4.0/drivers/acpi/ec.c
@@ -95,12 +95,12 @@
 	EC_FLAGS_QUERY_ENABLED,		/* Query is enabled */
 	EC_FLAGS_QUERY_PENDING,		/* Query is pending */
 	EC_FLAGS_QUERY_GUARDING,	/* Guard for SCI_EVT check */
-	EC_FLAGS_GPE_HANDLER_INSTALLED,	/* GPE handler installed */
+	EC_FLAGS_EVENT_HANDLER_INSTALLED,	/* Event handler installed */
 	EC_FLAGS_EC_HANDLER_INSTALLED,	/* OpReg handler installed */
-	EC_FLAGS_EVT_HANDLER_INSTALLED, /* _Qxx handlers installed */
+	EC_FLAGS_QUERY_METHODS_INSTALLED, /* _Qxx handlers installed */
 	EC_FLAGS_STARTED,		/* Driver is started */
 	EC_FLAGS_STOPPED,		/* Driver is stopped */
-	EC_FLAGS_GPE_MASKED,		/* GPE masked */
+	EC_FLAGS_EVENTS_MASKED,		/* Events masked */
 };
 
 #define ACPI_EC_COMMAND_POLL		0x01 /* Available for command byte */
@@ -167,6 +167,7 @@
 	struct transaction transaction;
 	struct work_struct work;
 	struct acpi_ec_query_handler *handler;
+	struct acpi_ec *ec;
 };
 
 static int acpi_ec_query(struct acpi_ec *ec, u8 *data);
@@ -179,6 +180,7 @@
 
 static struct acpi_ec *boot_ec;
 static bool boot_ec_is_ecdt = false;
+static struct workqueue_struct *ec_wq;
 static struct workqueue_struct *ec_query_wq;
 
 static int EC_FLAGS_QUERY_HANDSHAKE; /* Needs QR_EC issued when SCI_EVT set */
@@ -397,8 +399,8 @@
 static void acpi_ec_submit_request(struct acpi_ec *ec)
 {
 	ec->reference_count++;
-	if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags) &&
-	    ec->reference_count == 1)
+	if (test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags) &&
+	    ec->gpe >= 0 && ec->reference_count == 1)
 		acpi_ec_enable_gpe(ec, true);
 }
 
@@ -407,28 +409,36 @@
 	bool flushed = false;
 
 	ec->reference_count--;
-	if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags) &&
-	    ec->reference_count == 0)
+	if (test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags) &&
+	    ec->gpe >= 0 && ec->reference_count == 0)
 		acpi_ec_disable_gpe(ec, true);
 	flushed = acpi_ec_flushed(ec);
 	if (flushed)
 		wake_up(&ec->wait);
 }
 
-static void acpi_ec_mask_gpe(struct acpi_ec *ec)
+static void acpi_ec_mask_events(struct acpi_ec *ec)
 {
-	if (!test_bit(EC_FLAGS_GPE_MASKED, &ec->flags)) {
-		acpi_ec_disable_gpe(ec, false);
+	if (!test_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags)) {
+		if (ec->gpe >= 0)
+			acpi_ec_disable_gpe(ec, false);
+		else
+			disable_irq_nosync(ec->irq);
+
 		ec_dbg_drv("Polling enabled");
-		set_bit(EC_FLAGS_GPE_MASKED, &ec->flags);
+		set_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags);
 	}
 }
 
-static void acpi_ec_unmask_gpe(struct acpi_ec *ec)
+static void acpi_ec_unmask_events(struct acpi_ec *ec)
 {
-	if (test_bit(EC_FLAGS_GPE_MASKED, &ec->flags)) {
-		clear_bit(EC_FLAGS_GPE_MASKED, &ec->flags);
-		acpi_ec_enable_gpe(ec, false);
+	if (test_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags)) {
+		clear_bit(EC_FLAGS_EVENTS_MASKED, &ec->flags);
+		if (ec->gpe >= 0)
+			acpi_ec_enable_gpe(ec, false);
+		else
+			enable_irq(ec->irq);
+
 		ec_dbg_drv("Polling disabled");
 	}
 }
@@ -454,14 +464,15 @@
 
 static void acpi_ec_submit_query(struct acpi_ec *ec)
 {
-	acpi_ec_mask_gpe(ec);
+	acpi_ec_mask_events(ec);
 	if (!acpi_ec_event_enabled(ec))
 		return;
 	if (!test_and_set_bit(EC_FLAGS_QUERY_PENDING, &ec->flags)) {
 		ec_dbg_evt("Command(%s) submitted/blocked",
 			   acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
 		ec->nr_pending_queries++;
-		schedule_work(&ec->work);
+		ec->events_in_progress++;
+		queue_work(ec_wq, &ec->work);
 	}
 }
 
@@ -470,7 +481,7 @@
 	if (test_and_clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags))
 		ec_dbg_evt("Command(%s) unblocked",
 			   acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
-	acpi_ec_unmask_gpe(ec);
+	acpi_ec_unmask_events(ec);
 }
 
 static inline void __acpi_ec_enable_event(struct acpi_ec *ec)
@@ -525,26 +536,10 @@
 }
 
 #ifdef CONFIG_PM_SLEEP
-static bool acpi_ec_query_flushed(struct acpi_ec *ec)
+static void __acpi_ec_flush_work(void)
 {
-	bool flushed;
-	unsigned long flags;
-
-	spin_lock_irqsave(&ec->lock, flags);
-	flushed = !ec->nr_pending_queries;
-	spin_unlock_irqrestore(&ec->lock, flags);
-	return flushed;
-}
-
-static void __acpi_ec_flush_event(struct acpi_ec *ec)
-{
-	/*
-	 * When ec_freeze_events is true, we need to flush events in
-	 * the proper position before entering the noirq stage.
-	 */
-	wait_event(ec->wait, acpi_ec_query_flushed(ec));
-	if (ec_query_wq)
-		flush_workqueue(ec_query_wq);
+	flush_workqueue(ec_wq); /* flush ec->work */
+	flush_workqueue(ec_query_wq); /* flush queries */
 }
 
 static void acpi_ec_disable_event(struct acpi_ec *ec)
@@ -554,15 +549,21 @@
 	spin_lock_irqsave(&ec->lock, flags);
 	__acpi_ec_disable_event(ec);
 	spin_unlock_irqrestore(&ec->lock, flags);
-	__acpi_ec_flush_event(ec);
+
+	/*
+	 * When ec_freeze_events is true, we need to flush events in
+	 * the proper position before entering the noirq stage.
+	 */
+	__acpi_ec_flush_work();
 }
 
 void acpi_ec_flush_work(void)
 {
-	if (first_ec)
-		__acpi_ec_flush_event(first_ec);
+	/* Without ec_wq there is nothing to flush. */
+	if (!ec_wq)
+		return;
 
-	flush_scheduled_work();
+	__acpi_ec_flush_work();
 }
 #endif /* CONFIG_PM_SLEEP */
 
@@ -648,7 +649,9 @@
 	 * ensure a hardware STS 0->1 change after this clearing can always
 	 * trigger a GPE interrupt.
 	 */
-	acpi_ec_clear_gpe(ec);
+	if (ec->gpe >= 0)
+		acpi_ec_clear_gpe(ec);
+
 	status = acpi_ec_read_status(ec);
 	t = ec->curr;
 	/*
@@ -717,7 +720,7 @@
 				++t->irq_count;
 			/* Allow triggering on 0 threshold */
 			if (t->irq_count == ec_storm_threshold)
-				acpi_ec_mask_gpe(ec);
+				acpi_ec_mask_events(ec);
 		}
 	}
 out:
@@ -815,7 +818,7 @@
 
 	spin_lock_irqsave(&ec->lock, tmp);
 	if (t->irq_count == ec_storm_threshold)
-		acpi_ec_unmask_gpe(ec);
+		acpi_ec_unmask_events(ec);
 	ec_dbg_req("Command(%s) stopped", acpi_ec_cmd_string(t->command));
 	ec->curr = NULL;
 	/* Disable GPE for command processing (IBF=0/OBF=1) */
@@ -1053,28 +1056,20 @@
                                 Event Management
    -------------------------------------------------------------------------- */
 static struct acpi_ec_query_handler *
-acpi_ec_get_query_handler(struct acpi_ec_query_handler *handler)
-{
-	if (handler)
-		kref_get(&handler->kref);
-	return handler;
-}
-
-static struct acpi_ec_query_handler *
 acpi_ec_get_query_handler_by_value(struct acpi_ec *ec, u8 value)
 {
 	struct acpi_ec_query_handler *handler;
-	bool found = false;
 
 	mutex_lock(&ec->mutex);
 	list_for_each_entry(handler, &ec->list, node) {
 		if (value == handler->query_bit) {
-			found = true;
-			break;
+			kref_get(&handler->kref);
+			mutex_unlock(&ec->mutex);
+			return handler;
 		}
 	}
 	mutex_unlock(&ec->mutex);
-	return found ? acpi_ec_get_query_handler(handler) : NULL;
+	return NULL;
 }
 
 static void acpi_ec_query_handler_release(struct kref *kref)
@@ -1133,10 +1128,11 @@
 void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit)
 {
 	acpi_ec_remove_query_handlers(ec, false, query_bit);
+	flush_workqueue(ec_query_wq);
 }
 EXPORT_SYMBOL_GPL(acpi_ec_remove_query_handler);
 
-static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
+static struct acpi_ec_query *acpi_ec_create_query(struct acpi_ec *ec, u8 *pval)
 {
 	struct acpi_ec_query *q;
 	struct transaction *t;
@@ -1144,11 +1140,13 @@
 	q = kzalloc(sizeof (struct acpi_ec_query), GFP_KERNEL);
 	if (!q)
 		return NULL;
+
 	INIT_WORK(&q->work, acpi_ec_event_processor);
 	t = &q->transaction;
 	t->command = ACPI_EC_COMMAND_QUERY;
 	t->rdata = pval;
 	t->rlen = 1;
+	q->ec = ec;
 	return q;
 }
 
@@ -1165,13 +1163,21 @@
 {
 	struct acpi_ec_query *q = container_of(work, struct acpi_ec_query, work);
 	struct acpi_ec_query_handler *handler = q->handler;
+	struct acpi_ec *ec = q->ec;
 
 	ec_dbg_evt("Query(0x%02x) started", handler->query_bit);
+
 	if (handler->func)
 		handler->func(handler->data);
 	else if (handler->handle)
 		acpi_evaluate_object(handler->handle, NULL, NULL, NULL);
+
 	ec_dbg_evt("Query(0x%02x) stopped", handler->query_bit);
+
+	spin_lock_irq(&ec->lock);
+	ec->queries_in_progress--;
+	spin_unlock_irq(&ec->lock);
+
 	acpi_ec_delete_query(q);
 }
 
@@ -1181,7 +1187,7 @@
 	int result;
 	struct acpi_ec_query *q;
 
-	q = acpi_ec_create_query(&value);
+	q = acpi_ec_create_query(ec, &value);
 	if (!q)
 		return -ENOMEM;
 
@@ -1203,19 +1209,20 @@
 	}
 
 	/*
-	 * It is reported that _Qxx are evaluated in a parallel way on
-	 * Windows:
+	 * It is reported that _Qxx are evaluated in a parallel way on Windows:
 	 * https://bugzilla.kernel.org/show_bug.cgi?id=94411
 	 *
-	 * Put this log entry before schedule_work() in order to make
-	 * it appearing before any other log entries occurred during the
-	 * work queue execution.
+	 * Put this log entry before queue_work() to make it appear in the log
+	 * before any other messages emitted during workqueue handling.
 	 */
 	ec_dbg_evt("Query(0x%02x) scheduled", value);
-	if (!queue_work(ec_query_wq, &q->work)) {
-		ec_dbg_evt("Query(0x%02x) overlapped", value);
-		result = -EBUSY;
-	}
+
+	spin_lock_irq(&ec->lock);
+
+	ec->queries_in_progress++;
+	queue_work(ec_query_wq, &q->work);
+
+	spin_unlock_irq(&ec->lock);
 
 err_exit:
 	if (result)
@@ -1273,20 +1280,34 @@
 	ec_dbg_evt("Event stopped");
 
 	acpi_ec_check_event(ec);
+
+	spin_lock_irqsave(&ec->lock, flags);
+	ec->events_in_progress--;
+	spin_unlock_irqrestore(&ec->lock, flags);
 }
 
-static u32 acpi_ec_gpe_handler(acpi_handle gpe_device,
-	u32 gpe_number, void *data)
+static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
 {
 	unsigned long flags;
-	struct acpi_ec *ec = data;
 
 	spin_lock_irqsave(&ec->lock, flags);
 	advance_transaction(ec);
 	spin_unlock_irqrestore(&ec->lock, flags);
+}
+
+static u32 acpi_ec_gpe_handler(acpi_handle gpe_device,
+			       u32 gpe_number, void *data)
+{
+	acpi_ec_handle_interrupt(data);
 	return ACPI_INTERRUPT_HANDLED;
 }
 
+static irqreturn_t acpi_ec_irq_handler(int irq, void *data)
+{
+	acpi_ec_handle_interrupt(data);
+	return IRQ_HANDLED;
+}
+
 /* --------------------------------------------------------------------------
  *                           Address Space Management
  * -------------------------------------------------------------------------- */
@@ -1359,6 +1380,8 @@
 	ec->timestamp = jiffies;
 	ec->busy_polling = true;
 	ec->polling_guard = 0;
+	ec->gpe = -1;
+	ec->irq = -1;
 	return ec;
 }
 
@@ -1406,9 +1429,13 @@
 		/* Get GPE bit assignment (EC events). */
 		/* TODO: Add support for _GPE returning a package */
 		status = acpi_evaluate_integer(handle, "_GPE", NULL, &tmp);
-		if (ACPI_FAILURE(status))
-			return status;
-		ec->gpe = tmp;
+		if (ACPI_SUCCESS(status))
+			ec->gpe = tmp;
+
+		/*
+		 * Errors are non-fatal, allowing for ACPI Reduced Hardware
+		 * platforms which use GpioInt instead of GPE.
+		 */
 	}
 	/* Use the global lock for all EC transactions? */
 	tmp = 0;
@@ -1418,12 +1445,45 @@
 	return AE_CTRL_TERMINATE;
 }
 
-/*
- * Note: This function returns an error code only when the address space
- *       handler is not installed, which means "not able to handle
- *       transactions".
+static bool install_gpe_event_handler(struct acpi_ec *ec)
+{
+	acpi_status status;
+
+	status = acpi_install_gpe_raw_handler(NULL, ec->gpe,
+					      ACPI_GPE_EDGE_TRIGGERED,
+					      &acpi_ec_gpe_handler, ec);
+	if (ACPI_FAILURE(status))
+		return false;
+
+	if (test_bit(EC_FLAGS_STARTED, &ec->flags) && ec->reference_count >= 1)
+		acpi_ec_enable_gpe(ec, true);
+
+	return true;
+}
+
+static bool install_gpio_irq_event_handler(struct acpi_ec *ec)
+{
+	return request_irq(ec->irq, acpi_ec_irq_handler, IRQF_SHARED,
+			   "ACPI EC", ec) >= 0;
+}
+
+/**
+ * ec_install_handlers - Install service callbacks and register query methods.
+ * @ec: Target EC.
+ * @device: ACPI device object corresponding to @ec.
+ *
+ * Install a handler for the EC address space type unless it has been installed
+ * already.  If @device is not NULL, also look for EC query methods in the
+ * namespace and register them, and install an event (either GPE or GPIO IRQ)
+ * handler for the EC, if possible.
+ *
+ * Return:
+ * -ENODEV if the address space handler cannot be installed, which means
+ *  "unable to handle transactions",
+ * -EPROBE_DEFER if GPIO IRQ acquisition needs to be deferred,
+ * or 0 (success) otherwise.
  */
-static int ec_install_handlers(struct acpi_ec *ec, bool handle_events)
+static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device *device)
 {
 	acpi_status status;
 
@@ -1453,28 +1513,45 @@
 		set_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags);
 	}
 
-	if (!handle_events)
+	if (!device)
 		return 0;
 
-	if (!test_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags)) {
+	if (ec->gpe < 0) {
+		/* ACPI reduced hardware platforms use a GpioInt from _CRS. */
+		int irq = acpi_dev_gpio_irq_get(device, 0);
+		/*
+		 * Bail out right away for deferred probing or complete the
+		 * initialization regardless of any other errors.
+		 */
+		if (irq == -EPROBE_DEFER)
+			return -EPROBE_DEFER;
+		else if (irq >= 0)
+			ec->irq = irq;
+	}
+
+	if (!test_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags)) {
 		/* Find and register all query methods */
 		acpi_walk_namespace(ACPI_TYPE_METHOD, ec->handle, 1,
 				    acpi_ec_register_query_methods,
 				    NULL, ec, NULL);
-		set_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags);
+		set_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags);
 	}
-	if (!test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags)) {
-		status = acpi_install_gpe_raw_handler(NULL, ec->gpe,
-					  ACPI_GPE_EDGE_TRIGGERED,
-					  &acpi_ec_gpe_handler, ec);
-		/* This is not fatal as we can poll EC events */
-		if (ACPI_SUCCESS(status)) {
-			set_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags);
+	if (!test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags)) {
+		bool ready = false;
+
+		if (ec->gpe >= 0)
+			ready = install_gpe_event_handler(ec);
+		else if (ec->irq >= 0)
+			ready = install_gpio_irq_event_handler(ec);
+
+		if (ready) {
+			set_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags);
 			acpi_ec_leave_noirq(ec);
-			if (test_bit(EC_FLAGS_STARTED, &ec->flags) &&
-			    ec->reference_count >= 1)
-				acpi_ec_enable_gpe(ec, true);
 		}
+		/*
+		 * Failures to install an event handler are not fatal, because
+		 * the EC can be polled for events.
+		 */
 	}
 	/* EC is fully operational, allow queries */
 	acpi_ec_enable_event(ec);
@@ -1504,23 +1581,28 @@
 	 */
 	acpi_ec_stop(ec, false);
 
-	if (test_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags)) {
-		if (ACPI_FAILURE(acpi_remove_gpe_handler(NULL, ec->gpe,
-					&acpi_ec_gpe_handler)))
+	if (test_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags)) {
+		if (ec->gpe >= 0 &&
+		    ACPI_FAILURE(acpi_remove_gpe_handler(NULL, ec->gpe,
+				 &acpi_ec_gpe_handler)))
 			pr_err("failed to remove gpe handler\n");
-		clear_bit(EC_FLAGS_GPE_HANDLER_INSTALLED, &ec->flags);
+
+		if (ec->irq >= 0)
+			free_irq(ec->irq, ec);
+
+		clear_bit(EC_FLAGS_EVENT_HANDLER_INSTALLED, &ec->flags);
 	}
-	if (test_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags)) {
+	if (test_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags)) {
 		acpi_ec_remove_query_handlers(ec, true, 0);
-		clear_bit(EC_FLAGS_EVT_HANDLER_INSTALLED, &ec->flags);
+		clear_bit(EC_FLAGS_QUERY_METHODS_INSTALLED, &ec->flags);
 	}
 }
 
-static int acpi_ec_setup(struct acpi_ec *ec, bool handle_events)
+static int acpi_ec_setup(struct acpi_ec *ec, struct acpi_device *device)
 {
 	int ret;
 
-	ret = ec_install_handlers(ec, handle_events);
+	ret = ec_install_handlers(ec, device);
 	if (ret)
 		return ret;
 
@@ -1531,8 +1613,8 @@
 	}
 
 	acpi_handle_info(ec->handle,
-			 "GPE=0x%x, EC_CMD/EC_SC=0x%lx, EC_DATA=0x%lx\n",
-			 ec->gpe, ec->command_addr, ec->data_addr);
+			 "GPE=0x%x, IRQ=%d, EC_CMD/EC_SC=0x%lx, EC_DATA=0x%lx\n",
+			 ec->gpe, ec->irq, ec->command_addr, ec->data_addr);
 	return ret;
 }
 
@@ -1577,7 +1659,7 @@
 		status = ec_parse_device(device->handle, 0, ec, NULL);
 		if (status != AE_CTRL_TERMINATE) {
 			ret = -EINVAL;
-			goto err_alloc;
+			goto err;
 		}
 
 		if (boot_ec && ec->command_addr == boot_ec->command_addr &&
@@ -1596,9 +1678,9 @@
 		}
 	}
 
-	ret = acpi_ec_setup(ec, true);
+	ret = acpi_ec_setup(ec, device);
 	if (ret)
-		goto err_query;
+		goto err;
 
 	if (ec == boot_ec)
 		acpi_handle_info(boot_ec->handle,
@@ -1619,12 +1701,10 @@
 	acpi_handle_debug(ec->handle, "enumerated.\n");
 	return 0;
 
-err_query:
-	if (ec != boot_ec)
-		acpi_ec_remove_query_handlers(ec, true, 0);
-err_alloc:
+err:
 	if (ec != boot_ec)
 		acpi_ec_free(ec);
+
 	return ret;
 }
 
@@ -1716,7 +1796,7 @@
 	 * At this point, the GPE is not fully initialized, so do not to
 	 * handle the events.
 	 */
-	ret = acpi_ec_setup(ec, false);
+	ret = acpi_ec_setup(ec, NULL);
 	if (ret) {
 		acpi_ec_free(ec);
 		return;
@@ -1843,6 +1923,22 @@
 	DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
 	DMI_MATCH(DMI_PRODUCT_NAME, "GL702VMK"),}, NULL},
 	{
+	ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X505BA", {
+	DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+	DMI_MATCH(DMI_PRODUCT_NAME, "X505BA"),}, NULL},
+	{
+	ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X505BP", {
+	DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+	DMI_MATCH(DMI_PRODUCT_NAME, "X505BP"),}, NULL},
+	{
+	ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X542BA", {
+	DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+	DMI_MATCH(DMI_PRODUCT_NAME, "X542BA"),}, NULL},
+	{
+	ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X542BP", {
+	DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+	DMI_MATCH(DMI_PRODUCT_NAME, "X542BP"),}, NULL},
+	{
 	ec_honor_ecdt_gpe, "ASUS X550VXK", {
 	DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
 	DMI_MATCH(DMI_PRODUCT_NAME, "X550VXK"),}, NULL},
@@ -1889,14 +1985,21 @@
 		ec->command_addr = ecdt_ptr->control.address;
 		ec->data_addr = ecdt_ptr->data.address;
 	}
-	ec->gpe = ecdt_ptr->gpe;
+
+	/*
+	 * Ignore the GPE value on Reduced Hardware platforms.
+	 * Some products have this set to an erroneous value.
+	 */
+	if (!acpi_gbl_reduced_hardware)
+		ec->gpe = ecdt_ptr->gpe;
+
 	ec->handle = ACPI_ROOT_OBJECT;
 
 	/*
 	 * At this point, the namespace is not initialized, so do not find
 	 * the namespace objects, or handle the events.
 	 */
-	ret = acpi_ec_setup(ec, false);
+	ret = acpi_ec_setup(ec, NULL);
 	if (ret) {
 		acpi_ec_free(ec);
 		return;
@@ -1928,7 +2031,7 @@
 	 * masked at the low level without side effects.
 	 */
 	if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
-	    ec->reference_count >= 1)
+	    ec->gpe >= 0 && ec->reference_count >= 1)
 		acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE);
 
 	acpi_ec_enter_noirq(ec);
@@ -1943,7 +2046,7 @@
 	acpi_ec_leave_noirq(ec);
 
 	if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
-	    ec->reference_count >= 1)
+	    ec->gpe >= 0 && ec->reference_count >= 1)
 		acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_ENABLE);
 
 	return 0;
@@ -1973,16 +2076,41 @@
 
 bool acpi_ec_dispatch_gpe(void)
 {
+	bool work_in_progress;
 	u32 ret;
 
 	if (!first_ec)
-		return false;
+		return acpi_any_gpe_status_set(U32_MAX);
 
+	/*
+	 * Report wakeup if the status bit is set for any enabled GPE other
+	 * than the EC one.
+	 */
+	if (acpi_any_gpe_status_set(first_ec->gpe))
+		return true;
+
+	/*
+	 * Dispatch the EC GPE in-band, but do not report wakeup in any case
+	 * to allow the caller to process events properly after that.
+	 */
 	ret = acpi_dispatch_gpe(NULL, first_ec->gpe);
-	if (ret == ACPI_INTERRUPT_HANDLED) {
+	if (ret == ACPI_INTERRUPT_HANDLED)
 		pm_pr_dbg("EC GPE dispatched\n");
-		return true;
-	}
+
+	/* Drain EC work. */
+	do {
+		acpi_ec_flush_work();
+
+		pm_pr_dbg("ACPI EC work flushed\n");
+
+		spin_lock_irq(&first_ec->lock);
+
+		work_in_progress = first_ec->events_in_progress +
+			first_ec->queries_in_progress > 0;
+
+		spin_unlock_irq(&first_ec->lock);
+	} while (work_in_progress && !pm_wakeup_pending());
+
 	return false;
 }
 #endif /* CONFIG_PM_SLEEP */
@@ -2042,25 +2170,33 @@
 	.drv.pm = &acpi_ec_pm,
 };
 
-static inline int acpi_ec_query_init(void)
+static void acpi_ec_destroy_workqueues(void)
 {
-	if (!ec_query_wq) {
-		ec_query_wq = alloc_workqueue("kec_query", 0,
-					      ec_max_queries);
-		if (!ec_query_wq)
-			return -ENODEV;
+	if (ec_wq) {
+		destroy_workqueue(ec_wq);
+		ec_wq = NULL;
 	}
-	return 0;
-}
-
-static inline void acpi_ec_query_exit(void)
-{
 	if (ec_query_wq) {
 		destroy_workqueue(ec_query_wq);
 		ec_query_wq = NULL;
 	}
 }
 
+static int acpi_ec_init_workqueues(void)
+{
+	if (!ec_wq)
+		ec_wq = alloc_ordered_workqueue("kec", 0);
+
+	if (!ec_query_wq)
+		ec_query_wq = alloc_workqueue("kec_query", 0, ec_max_queries);
+
+	if (!ec_wq || !ec_query_wq) {
+		acpi_ec_destroy_workqueues();
+		return -ENODEV;
+	}
+	return 0;
+}
+
 static const struct dmi_system_id acpi_ec_no_wakeup[] = {
 	{
 		.ident = "Thinkpad X1 Carbon 6th",
@@ -2070,13 +2206,6 @@
 		},
 	},
 	{
-		.ident = "ThinkPad X1 Carbon 6th",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-			DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Carbon 6th"),
-		},
-	},
-	{
 		.ident = "ThinkPad X1 Yoga 3rd",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
@@ -2091,8 +2220,7 @@
 	int result;
 	int ecdt_fail, dsdt_fail;
 
-	/* register workqueue for _Qxx evaluations */
-	result = acpi_ec_query_init();
+	result = acpi_ec_init_workqueues();
 	if (result)
 		return result;
 
@@ -2123,6 +2251,6 @@
 {
 
 	acpi_bus_unregister_driver(&acpi_ec_driver);
-	acpi_ec_query_exit();
+	acpi_ec_destroy_workqueues();
 }
 #endif	/* 0 */
--- linux-ein-5.4.0.orig/drivers/acpi/evged.c
+++ linux-ein-5.4.0/drivers/acpi/evged.c
@@ -79,6 +79,8 @@
 	struct resource r;
 	struct acpi_resource_irq *p = &ares->data.irq;
 	struct acpi_resource_extended_irq *pext = &ares->data.extended_irq;
+	char ev_name[5];
+	u8 trigger;
 
 	if (ares->type == ACPI_RESOURCE_TYPE_END_TAG)
 		return AE_OK;
@@ -87,14 +89,28 @@
 		dev_err(dev, "unable to parse IRQ resource\n");
 		return AE_ERROR;
 	}
-	if (ares->type == ACPI_RESOURCE_TYPE_IRQ)
+	if (ares->type == ACPI_RESOURCE_TYPE_IRQ) {
 		gsi = p->interrupts[0];
-	else
+		trigger = p->triggering;
+	} else {
 		gsi = pext->interrupts[0];
+		trigger = pext->triggering;
+	}
 
 	irq = r.start;
 
-	if (ACPI_FAILURE(acpi_get_handle(handle, "_EVT", &evt_handle))) {
+	switch (gsi) {
+	case 0 ... 255:
+		sprintf(ev_name, "_%c%02X",
+			trigger == ACPI_EDGE_SENSITIVE ? 'E' : 'L', gsi);
+
+		if (ACPI_SUCCESS(acpi_get_handle(handle, ev_name, &evt_handle)))
+			break;
+		/* fall through */
+	default:
+		if (ACPI_SUCCESS(acpi_get_handle(handle, "_EVT", &evt_handle)))
+			break;
+
 		dev_err(dev, "cannot locate _EVT method\n");
 		return AE_ERROR;
 	}
--- linux-ein-5.4.0.orig/drivers/acpi/hmat/hmat.c
+++ linux-ein-5.4.0/drivers/acpi/hmat/hmat.c
@@ -403,7 +403,8 @@
 		pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
 			p->flags, p->processor_PD, p->memory_PD);
 
-	if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
+	if ((hmat_revision == 1 && p->flags & ACPI_HMAT_MEMORY_PD_VALID) ||
+	    hmat_revision > 1) {
 		target = find_mem_target(p->memory_PD);
 		if (!target) {
 			pr_debug("HMAT: Memory Domain missing from SRAT\n");
--- linux-ein-5.4.0.orig/drivers/acpi/internal.h
+++ linux-ein-5.4.0/drivers/acpi/internal.h
@@ -9,6 +9,8 @@
 #ifndef _ACPI_INTERNAL_H_
 #define _ACPI_INTERNAL_H_
 
+#include <linux/idr.h>
+
 #define PREFIX "ACPI: "
 
 int early_acpi_osi_init(void);
@@ -96,9 +98,11 @@
 
 extern struct list_head acpi_bus_id_list;
 
+#define ACPI_MAX_DEVICE_INSTANCES	4096
+
 struct acpi_device_bus_id {
-	char bus_id[15];
-	unsigned int instance_no;
+	const char *bus_id;
+	struct ida instance_ida;
 	struct list_head node;
 };
 
@@ -165,7 +169,8 @@
    -------------------------------------------------------------------------- */
 struct acpi_ec {
 	acpi_handle handle;
-	u32 gpe;
+	int gpe;
+	int irq;
 	unsigned long command_addr;
 	unsigned long data_addr;
 	bool global_lock;
@@ -179,6 +184,8 @@
 	struct work_struct work;
 	unsigned long timestamp;
 	unsigned long nr_pending_queries;
+	unsigned int events_in_progress;
+	unsigned int queries_in_progress;
 	bool busy_polling;
 	unsigned int polling_guard;
 };
--- linux-ein-5.4.0.orig/drivers/acpi/irq.c
+++ linux-ein-5.4.0/drivers/acpi/irq.c
@@ -52,6 +52,7 @@
 		      int polarity)
 {
 	struct irq_fwspec fwspec;
+	unsigned int irq;
 
 	if (WARN_ON(!acpi_gsi_domain_id)) {
 		pr_warn("GSI: No registered irqchip, giving up\n");
@@ -63,7 +64,11 @@
 	fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity);
 	fwspec.param_count = 2;
 
-	return irq_create_fwspec_mapping(&fwspec);
+	irq = irq_create_fwspec_mapping(&fwspec);
+	if (!irq)
+		return -EINVAL;
+
+	return irq;
 }
 EXPORT_SYMBOL_GPL(acpi_register_gsi);
 
--- linux-ein-5.4.0.orig/drivers/acpi/nfit/core.c
+++ linux-ein-5.4.0/drivers/acpi/nfit/core.c
@@ -360,7 +360,7 @@
 
 static u8 nfit_dsm_revid(unsigned family, unsigned func)
 {
-	static const u8 revid_table[NVDIMM_FAMILY_MAX+1][32] = {
+	static const u8 revid_table[NVDIMM_FAMILY_MAX+1][NVDIMM_CMD_MAX+1] = {
 		[NVDIMM_FAMILY_INTEL] = {
 			[NVDIMM_INTEL_GET_MODES] = 2,
 			[NVDIMM_INTEL_GET_FWINFO] = 2,
@@ -386,7 +386,7 @@
 
 	if (family > NVDIMM_FAMILY_MAX)
 		return 0;
-	if (func > 31)
+	if (func > NVDIMM_CMD_MAX)
 		return 0;
 	id = revid_table[family][func];
 	if (id == 0)
@@ -492,7 +492,8 @@
 	 * Check for a valid command.  For ND_CMD_CALL, we also have to
 	 * make sure that the DSM function is supported.
 	 */
-	if (cmd == ND_CMD_CALL && !test_bit(func, &dsm_mask))
+	if (cmd == ND_CMD_CALL &&
+	    (func > NVDIMM_CMD_MAX || !test_bit(func, &dsm_mask)))
 		return -ENOTTY;
 	else if (!test_bit(cmd, &cmd_mask))
 		return -ENOTTY;
@@ -1552,7 +1553,7 @@
 					le16_to_cpu(nfit_dcr->dcr->code));
 			break;
 		}
-		if (rc != ENXIO)
+		if (rc != -ENXIO)
 			break;
 	}
 	mutex_unlock(&acpi_desc->init_mutex);
@@ -2972,6 +2973,9 @@
 		struct acpi_nfit_memory_map *memdev = nfit_memdev->memdev;
 		struct nd_mapping_desc *mapping;
 
+		/* range index 0 == unmapped in SPA or invalid-SPA */
+		if (memdev->range_index == 0 || spa->range_index == 0)
+			continue;
 		if (memdev->range_index != spa->range_index)
 			continue;
 		if (count >= ND_MAX_MAPPINGS) {
@@ -3499,7 +3503,8 @@
 	if (nvdimm && cmd == ND_CMD_CALL &&
 			call_pkg->nd_family == NVDIMM_FAMILY_INTEL) {
 		func = call_pkg->nd_command;
-		if ((1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK)
+		if (func > NVDIMM_CMD_MAX ||
+		    (1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK)
 			return -EOPNOTSUPP;
 	}
 
@@ -3594,8 +3599,8 @@
 
 	mutex_lock(&acpi_desc->init_mutex);
 	set_bit(ARS_CANCEL, &acpi_desc->scrub_flags);
-	cancel_delayed_work_sync(&acpi_desc->dwork);
 	mutex_unlock(&acpi_desc->init_mutex);
+	cancel_delayed_work_sync(&acpi_desc->dwork);
 
 	/*
 	 * Bounce the nvdimm bus lock to make sure any in-flight
--- linux-ein-5.4.0.orig/drivers/acpi/nfit/nfit.h
+++ linux-ein-5.4.0/drivers/acpi/nfit/nfit.h
@@ -34,6 +34,7 @@
 		| ACPI_NFIT_MEM_NOT_ARMED | ACPI_NFIT_MEM_MAP_FAILED)
 
 #define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_HYPERV
+#define NVDIMM_CMD_MAX 31
 
 #define NVDIMM_STANDARD_CMDMASK \
 (1 << ND_CMD_SMART | 1 << ND_CMD_SMART_THRESHOLD | 1 << ND_CMD_DIMM_FLAGS \
--- linux-ein-5.4.0.orig/drivers/acpi/numa.c
+++ linux-ein-5.4.0/drivers/acpi/numa.c
@@ -31,7 +31,7 @@
 
 int pxm_to_node(int pxm)
 {
-	if (pxm < 0)
+	if (pxm < 0 || pxm >= MAX_PXM_DOMAINS || numa_off)
 		return NUMA_NO_NODE;
 	return pxm_to_node_map[pxm];
 }
--- linux-ein-5.4.0.orig/drivers/acpi/osi.c
+++ linux-ein-5.4.0/drivers/acpi/osi.c
@@ -468,6 +468,77 @@
 	},
 
 	/*
+	 * The following Lenovo models have a broken workaround in the
+	 * acpi_video backlight implementation to meet the Windows 8
+	 * requirement of 101 backlight levels. Reverting to pre-Win8
+	 * behavior fixes the problem.
+	 */
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad L430",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L430"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad T430",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad T430s",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430s"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad T530",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T530"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad W530",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W530"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad X1 Carbon",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X1 Carbon"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad X230",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X230"),
+		},
+	},
+	{
+	.callback = dmi_disable_osi_win8,
+	.ident = "Lenovo ThinkPad Edge E330",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Edge E330"),
+		},
+	},
+
+	/*
 	 * BIOS invocation of _OSI(Linux) is almost always a BIOS bug.
 	 * Linux ignores it, except for the machines enumerated below.
 	 */
--- linux-ein-5.4.0.orig/drivers/acpi/osl.c
+++ linux-ein-5.4.0/drivers/acpi/osl.c
@@ -374,19 +374,21 @@
 }
 EXPORT_SYMBOL_GPL(acpi_os_map_memory);
 
-static void acpi_os_drop_map_ref(struct acpi_ioremap *map)
+/* Must be called with mutex_lock(&acpi_ioremap_lock) */
+static unsigned long acpi_os_drop_map_ref(struct acpi_ioremap *map)
 {
-	if (!--map->refcount)
+	unsigned long refcount = --map->refcount;
+
+	if (!refcount)
 		list_del_rcu(&map->list);
+	return refcount;
 }
 
 static void acpi_os_map_cleanup(struct acpi_ioremap *map)
 {
-	if (!map->refcount) {
-		synchronize_rcu_expedited();
-		acpi_unmap(map->phys, map->virt);
-		kfree(map);
-	}
+	synchronize_rcu_expedited();
+	acpi_unmap(map->phys, map->virt);
+	kfree(map);
 }
 
 /**
@@ -406,6 +408,7 @@
 void __ref acpi_os_unmap_iomem(void __iomem *virt, acpi_size size)
 {
 	struct acpi_ioremap *map;
+	unsigned long refcount;
 
 	if (!acpi_permanent_mmap) {
 		__acpi_unmap_table(virt, size);
@@ -419,10 +422,11 @@
 		WARN(true, PREFIX "%s: bad address %p\n", __func__, virt);
 		return;
 	}
-	acpi_os_drop_map_ref(map);
+	refcount = acpi_os_drop_map_ref(map);
 	mutex_unlock(&acpi_ioremap_lock);
 
-	acpi_os_map_cleanup(map);
+	if (!refcount)
+		acpi_os_map_cleanup(map);
 }
 EXPORT_SYMBOL_GPL(acpi_os_unmap_iomem);
 
@@ -457,6 +461,7 @@
 {
 	u64 addr;
 	struct acpi_ioremap *map;
+	unsigned long refcount;
 
 	if (gas->space_id != ACPI_ADR_SPACE_SYSTEM_MEMORY)
 		return;
@@ -472,10 +477,11 @@
 		mutex_unlock(&acpi_ioremap_lock);
 		return;
 	}
-	acpi_os_drop_map_ref(map);
+	refcount = acpi_os_drop_map_ref(map);
 	mutex_unlock(&acpi_ioremap_lock);
 
-	acpi_os_map_cleanup(map);
+	if (!refcount)
+		acpi_os_map_cleanup(map);
 }
 EXPORT_SYMBOL(acpi_os_unmap_generic_address);
 
--- linux-ein-5.4.0.orig/drivers/acpi/pci_mcfg.c
+++ linux-ein-5.4.0/drivers/acpi/pci_mcfg.c
@@ -41,6 +41,8 @@
 static struct mcfg_fixup mcfg_quirks[] = {
 /*	{ OEM_ID, OEM_TABLE_ID, REV, SEGMENT, BUS_RANGE, ops, cfgres }, */
 
+#ifdef CONFIG_ARM64
+
 #define AL_ECAM(table_id, rev, seg, ops) \
 	{ "AMAZON", table_id, rev, seg, MCFG_BUS_ANY, ops }
 
@@ -142,6 +144,27 @@
 	XGENE_V2_ECAM_MCFG(4, 0),
 	XGENE_V2_ECAM_MCFG(4, 1),
 	XGENE_V2_ECAM_MCFG(4, 2),
+
+#define ALTRA_ECAM_QUIRK(rev, seg) \
+	{ "Ampere", "Altra   ", rev, seg, MCFG_BUS_ANY, &pci_32b_read_ops }
+
+	ALTRA_ECAM_QUIRK(1, 0),
+	ALTRA_ECAM_QUIRK(1, 1),
+	ALTRA_ECAM_QUIRK(1, 2),
+	ALTRA_ECAM_QUIRK(1, 3),
+	ALTRA_ECAM_QUIRK(1, 4),
+	ALTRA_ECAM_QUIRK(1, 5),
+	ALTRA_ECAM_QUIRK(1, 6),
+	ALTRA_ECAM_QUIRK(1, 7),
+	ALTRA_ECAM_QUIRK(1, 8),
+	ALTRA_ECAM_QUIRK(1, 9),
+	ALTRA_ECAM_QUIRK(1, 10),
+	ALTRA_ECAM_QUIRK(1, 11),
+	ALTRA_ECAM_QUIRK(1, 12),
+	ALTRA_ECAM_QUIRK(1, 13),
+	ALTRA_ECAM_QUIRK(1, 14),
+	ALTRA_ECAM_QUIRK(1, 15),
+#endif /* ARM64 */
 };
 
 static char mcfg_oem_id[ACPI_OEM_ID_SIZE];
--- linux-ein-5.4.0.orig/drivers/acpi/pmic/intel_pmic.c
+++ linux-ein-5.4.0/drivers/acpi/pmic/intel_pmic.c
@@ -211,31 +211,36 @@
 		void *handler_context, void *region_context)
 {
 	struct intel_pmic_opregion *opregion = region_context;
-	int result = 0;
+	int result = -EINVAL;
 
-	switch (address) {
-	case 0:
-		return AE_OK;
-	case 1:
-		opregion->ctx.addr |= (*value64 & 0xff) << 8;
-		return AE_OK;
-	case 2:
-		opregion->ctx.addr |= *value64 & 0xff;
-		return AE_OK;
-	case 3:
-		opregion->ctx.val = *value64 & 0xff;
-		return AE_OK;
-	case 4:
-		if (*value64) {
-			result = regmap_write(opregion->regmap, opregion->ctx.addr,
-					      opregion->ctx.val);
-		} else {
-			result = regmap_read(opregion->regmap, opregion->ctx.addr,
-					     &opregion->ctx.val);
-			if (result == 0)
-				*value64 = opregion->ctx.val;
+	if (function == ACPI_WRITE) {
+		switch (address) {
+		case 0:
+			return AE_OK;
+		case 1:
+			opregion->ctx.addr |= (*value64 & 0xff) << 8;
+			return AE_OK;
+		case 2:
+			opregion->ctx.addr |= *value64 & 0xff;
+			return AE_OK;
+		case 3:
+			opregion->ctx.val = *value64 & 0xff;
+			return AE_OK;
+		case 4:
+			if (*value64) {
+				result = regmap_write(opregion->regmap, opregion->ctx.addr,
+						      opregion->ctx.val);
+			} else {
+				result = regmap_read(opregion->regmap, opregion->ctx.addr,
+						     &opregion->ctx.val);
+			}
+			opregion->ctx.addr = 0;
 		}
-		memset(&opregion->ctx, 0x00, sizeof(opregion->ctx));
+	}
+
+	if (function == ACPI_READ && address == 3) {
+		*value64 = opregion->ctx.val;
+		return AE_OK;
 	}
 
 	if (result < 0) {
--- linux-ein-5.4.0.orig/drivers/acpi/power.c
+++ linux-ein-5.4.0/drivers/acpi/power.c
@@ -888,15 +888,16 @@
 	kfree(resource);
 }
 
-static ssize_t acpi_power_in_use_show(struct device *dev,
-				      struct device_attribute *attr,
-				      char *buf) {
+static ssize_t resource_in_use_show(struct device *dev,
+				    struct device_attribute *attr,
+				    char *buf)
+{
 	struct acpi_power_resource *resource;
 
 	resource = to_power_resource(to_acpi_device(dev));
 	return sprintf(buf, "%u\n", !!resource->ref_count);
 }
-static DEVICE_ATTR(resource_in_use, 0444, acpi_power_in_use_show, NULL);
+static DEVICE_ATTR_RO(resource_in_use);
 
 static void acpi_power_sysfs_remove(struct acpi_device *device)
 {
--- linux-ein-5.4.0.orig/drivers/acpi/processor_idle.c
+++ linux-ein-5.4.0/drivers/acpi/processor_idle.c
@@ -16,6 +16,7 @@
 #include <linux/acpi.h>
 #include <linux/dmi.h>
 #include <linux/sched.h>       /* need_resched() */
+#include <linux/sort.h>
 #include <linux/tick.h>
 #include <linux/cpuidle.h>
 #include <linux/cpu.h>
@@ -540,10 +541,37 @@
 	return;
 }
 
+static int acpi_cst_latency_cmp(const void *a, const void *b)
+{
+	const struct acpi_processor_cx *x = a, *y = b;
+
+	if (!(x->valid && y->valid))
+		return 0;
+	if (x->latency > y->latency)
+		return 1;
+	if (x->latency < y->latency)
+		return -1;
+	return 0;
+}
+static void acpi_cst_latency_swap(void *a, void *b, int n)
+{
+	struct acpi_processor_cx *x = a, *y = b;
+	u32 tmp;
+
+	if (!(x->valid && y->valid))
+		return;
+	tmp = x->latency;
+	x->latency = y->latency;
+	y->latency = tmp;
+}
+
 static int acpi_processor_power_verify(struct acpi_processor *pr)
 {
 	unsigned int i;
 	unsigned int working = 0;
+	unsigned int last_latency = 0;
+	unsigned int last_type = 0;
+	bool buggy_latency = false;
 
 	pr->power.timer_broadcast_on_state = INT_MAX;
 
@@ -567,12 +595,24 @@
 		}
 		if (!cx->valid)
 			continue;
+		if (cx->type >= last_type && cx->latency < last_latency)
+			buggy_latency = true;
+		last_latency = cx->latency;
+		last_type = cx->type;
 
 		lapic_timer_check_state(i, pr, cx);
 		tsc_check_state(cx->type);
 		working++;
 	}
 
+	if (buggy_latency) {
+		pr_notice("FW issue: working around C-state latencies out of order\n");
+		sort(&pr->power.states[1], max_cstate,
+		     sizeof(struct acpi_processor_cx),
+		     acpi_cst_latency_cmp,
+		     acpi_cst_latency_swap);
+	}
+
 	lapic_timer_propagate_broadcast(pr);
 
 	return (working);
@@ -642,6 +682,36 @@
 	return bm_status;
 }
 
+static void wait_for_freeze(void)
+{
+#ifdef	CONFIG_X86
+	/* No delay is needed if we are in guest */
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		return;
+	/*
+	 * Modern (>=Nehalem) Intel systems use ACPI via intel_idle,
+	 * not this code.  Assume that any Intel systems using this
+	 * are ancient and may need the dummy wait.  This also assumes
+	 * that the motivating chipset issue was Intel-only.
+	 */
+	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
+		return;
+#endif
+	/*
+	 * Dummy wait op - must do something useless after P_LVL2 read
+	 * because chipsets cannot guarantee that STPCLK# signal gets
+	 * asserted in time to freeze execution properly
+	 *
+	 * This workaround has been in place since the original ACPI
+	 * implementation was merged, circa 2002.
+	 *
+	 * If a profile is pointing to this instruction, please first
+	 * consider moving your system to a more modern idle
+	 * mechanism.
+	 */
+	inl(acpi_gbl_FADT.xpm_timer_block.address);
+}
+
 /**
  * acpi_idle_do_entry - enter idle state using the appropriate method
  * @cx: cstate data
@@ -658,10 +728,7 @@
 	} else {
 		/* IO port based C-state */
 		inb(cx->address);
-		/* Dummy wait op - must do something useless after P_LVL2 read
-		   because chipsets cannot guarantee that STPCLK# signal
-		   gets asserted in time to freeze execution properly. */
-		inl(acpi_gbl_FADT.xpm_timer_block.address);
+		wait_for_freeze();
 	}
 }
 
@@ -682,8 +749,7 @@
 			safe_halt();
 		else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) {
 			inb(cx->address);
-			/* See comment in acpi_idle_do_entry() */
-			inl(acpi_gbl_FADT.xpm_timer_block.address);
+			wait_for_freeze();
 		} else
 			return -ENODEV;
 	}
@@ -1161,6 +1227,11 @@
 	return 0;
 }
 
+int __weak acpi_processor_ffh_lpi_probe(unsigned int cpu)
+{
+	return -EOPNOTSUPP;
+}
+
 static int acpi_processor_get_lpi_info(struct acpi_processor *pr)
 {
 	int ret, i;
@@ -1169,6 +1240,11 @@
 	struct acpi_device *d = NULL;
 	struct acpi_lpi_states_array info[2], *tmp, *prev, *curr;
 
+	/* make sure our architecture has support */
+	ret = acpi_processor_ffh_lpi_probe(pr->id);
+	if (ret == -EOPNOTSUPP)
+		return ret;
+
 	if (!osc_pc_lpi_support_confirmed)
 		return -EOPNOTSUPP;
 
@@ -1220,11 +1296,6 @@
 	return 0;
 }
 
-int __weak acpi_processor_ffh_lpi_probe(unsigned int cpu)
-{
-	return -ENODEV;
-}
-
 int __weak acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi)
 {
 	return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/acpi/processor_perflib.c
+++ linux-ein-5.4.0/drivers/acpi/processor_perflib.c
@@ -56,6 +56,8 @@
 {
 	acpi_status status = 0;
 	unsigned long long ppc = 0;
+	s32 qos_value;
+	int index;
 	int ret;
 
 	if (!pr)
@@ -75,17 +77,30 @@
 		return -ENODEV;
 	}
 
+	index = ppc;
+
+	if (pr->performance_platform_limit == index ||
+	    ppc >= pr->performance->state_count)
+		return 0;
+
 	pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id,
-		       (int)ppc, ppc ? "" : "not");
+		 index, index ? "is" : "is not");
 
-	pr->performance_platform_limit = (int)ppc;
+	pr->performance_platform_limit = index;
 
-	if (ppc >= pr->performance->state_count ||
-	    unlikely(!freq_qos_request_active(&pr->perflib_req)))
+	if (unlikely(!freq_qos_request_active(&pr->perflib_req)))
 		return 0;
 
-	ret = freq_qos_update_request(&pr->perflib_req,
-			pr->performance->states[ppc].core_frequency * 1000);
+	/*
+	 * If _PPC returns 0, it means that all of the available states can be
+	 * used ("no limit").
+	 */
+	if (index == 0)
+		qos_value = FREQ_QOS_MAX_DEFAULT_VALUE;
+	else
+		qos_value = pr->performance->states[index].core_frequency * 1000;
+
+	ret = freq_qos_update_request(&pr->perflib_req, qos_value);
 	if (ret < 0) {
 		pr_warn("Failed to update perflib freq constraint: CPU%d (%d)\n",
 			pr->id, ret);
@@ -168,9 +183,16 @@
 		if (!pr)
 			continue;
 
+		/*
+		 * Reset performance_platform_limit in case there is a stale
+		 * value in it, so as to make it match the "no limit" QoS value
+		 * below.
+		 */
+		pr->performance_platform_limit = 0;
+
 		ret = freq_qos_add_request(&policy->constraints,
-					   &pr->perflib_req,
-					   FREQ_QOS_MAX, INT_MAX);
+					   &pr->perflib_req, FREQ_QOS_MAX,
+					   FREQ_QOS_MAX_DEFAULT_VALUE);
 		if (ret < 0)
 			pr_err("Failed to add freq constraint for CPU%d (%d)\n",
 			       cpu, ret);
--- linux-ein-5.4.0.orig/drivers/acpi/processor_thermal.c
+++ linux-ein-5.4.0/drivers/acpi/processor_thermal.c
@@ -150,7 +150,7 @@
 	unsigned int cpu;
 
 	for_each_cpu(cpu, policy->related_cpus) {
-		struct acpi_processor *pr = per_cpu(processors, policy->cpu);
+		struct acpi_processor *pr = per_cpu(processors, cpu);
 
 		if (pr)
 			freq_qos_remove_request(&pr->thermal_req);
--- linux-ein-5.4.0.orig/drivers/acpi/processor_throttling.c
+++ linux-ein-5.4.0/drivers/acpi/processor_throttling.c
@@ -897,13 +897,6 @@
 	return pr->throttling.acpi_processor_get_throttling(pr);
 }
 
-static int call_on_cpu(int cpu, long (*fn)(void *), void *arg, bool direct)
-{
-	if (direct || (is_percpu_thread() && cpu == smp_processor_id()))
-		return fn(arg);
-	return work_on_cpu(cpu, fn, arg);
-}
-
 static int acpi_processor_get_throttling(struct acpi_processor *pr)
 {
 	if (!pr)
--- linux-ein-5.4.0.orig/drivers/acpi/property.c
+++ linux-ein-5.4.0/drivers/acpi/property.c
@@ -152,10 +152,10 @@
 	return acpi_nondev_subnode_data_ok(handle, link, list, parent);
 }
 
-static int acpi_add_nondev_subnodes(acpi_handle scope,
-				    const union acpi_object *links,
-				    struct list_head *list,
-				    struct fwnode_handle *parent)
+static bool acpi_add_nondev_subnodes(acpi_handle scope,
+				     const union acpi_object *links,
+				     struct list_head *list,
+				     struct fwnode_handle *parent)
 {
 	bool ret = false;
 	int i;
@@ -430,6 +430,16 @@
 		acpi_extract_apple_properties(adev);
 }
 
+static void acpi_free_device_properties(struct list_head *list)
+{
+	struct acpi_device_properties *props, *tmp;
+
+	list_for_each_entry_safe(props, tmp, list, list) {
+		list_del(&props->list);
+		kfree(props);
+	}
+}
+
 static void acpi_destroy_nondev_subnodes(struct list_head *list)
 {
 	struct acpi_data_node *dn, *next;
@@ -442,22 +452,18 @@
 		wait_for_completion(&dn->kobj_done);
 		list_del(&dn->sibling);
 		ACPI_FREE((void *)dn->data.pointer);
+		acpi_free_device_properties(&dn->data.properties);
 		kfree(dn);
 	}
 }
 
 void acpi_free_properties(struct acpi_device *adev)
 {
-	struct acpi_device_properties *props, *tmp;
-
 	acpi_destroy_nondev_subnodes(&adev->data.subnodes);
 	ACPI_FREE((void *)adev->data.pointer);
 	adev->data.of_compatible = NULL;
 	adev->data.pointer = NULL;
-	list_for_each_entry_safe(props, tmp, &adev->data.properties, list) {
-		list_del(&props->list);
-		kfree(props);
-	}
+	acpi_free_device_properties(&adev->data.properties);
 }
 
 /**
@@ -692,7 +698,7 @@
 	 */
 	if (obj->type == ACPI_TYPE_LOCAL_REFERENCE) {
 		if (index)
-			return -EINVAL;
+			return -ENOENT;
 
 		ret = acpi_bus_get_device(obj->reference.handle, &device);
 		if (ret)
@@ -794,9 +800,6 @@
 	const union acpi_object *obj;
 	int ret;
 
-	if (!val)
-		return -EINVAL;
-
 	if (proptype >= DEV_PROP_U8 && proptype <= DEV_PROP_U64) {
 		ret = acpi_data_get_property(data, propname, ACPI_TYPE_INTEGER, &obj);
 		if (ret)
@@ -806,28 +809,43 @@
 		case DEV_PROP_U8:
 			if (obj->integer.value > U8_MAX)
 				return -EOVERFLOW;
-			*(u8 *)val = obj->integer.value;
+
+			if (val)
+				*(u8 *)val = obj->integer.value;
+
 			break;
 		case DEV_PROP_U16:
 			if (obj->integer.value > U16_MAX)
 				return -EOVERFLOW;
-			*(u16 *)val = obj->integer.value;
+
+			if (val)
+				*(u16 *)val = obj->integer.value;
+
 			break;
 		case DEV_PROP_U32:
 			if (obj->integer.value > U32_MAX)
 				return -EOVERFLOW;
-			*(u32 *)val = obj->integer.value;
+
+			if (val)
+				*(u32 *)val = obj->integer.value;
+
 			break;
 		default:
-			*(u64 *)val = obj->integer.value;
+			if (val)
+				*(u64 *)val = obj->integer.value;
+
 			break;
 		}
+
+		if (!val)
+			return 1;
 	} else if (proptype == DEV_PROP_STRING) {
 		ret = acpi_data_get_property(data, propname, ACPI_TYPE_STRING, &obj);
 		if (ret)
 			return ret;
 
-		*(char **)val = obj->string.pointer;
+		if (val)
+			*(char **)val = obj->string.pointer;
 
 		return 1;
 	} else {
@@ -841,7 +859,7 @@
 {
 	int ret;
 
-	if (!adev)
+	if (!adev || !val)
 		return -EINVAL;
 
 	ret = acpi_data_prop_read_single(&adev->data, propname, proptype, val);
@@ -935,10 +953,20 @@
 	const union acpi_object *items;
 	int ret;
 
-	if (val && nval == 1) {
+	if (nval == 1 || !val) {
 		ret = acpi_data_prop_read_single(data, propname, proptype, val);
-		if (ret >= 0)
+		/*
+		 * The overflow error means that the property is there and it is
+		 * single-value, but its type does not match, so return.
+		 */
+		if (ret >= 0 || ret == -EOVERFLOW)
 			return ret;
+
+		/*
+		 * Reading this property as a single-value one failed, but its
+		 * value may still be represented as one-element array, so
+		 * continue.
+		 */
 	}
 
 	ret = acpi_data_get_property_array(data, propname, ACPI_TYPE_ANY, &obj);
--- linux-ein-5.4.0.orig/drivers/acpi/resource.c
+++ linux-ein-5.4.0/drivers/acpi/resource.c
@@ -16,6 +16,7 @@
 #include <linux/ioport.h>
 #include <linux/slab.h>
 #include <linux/irq.h>
+#include <linux/dmi.h>
 
 #ifdef CONFIG_X86
 #define valid_IRQ(i) (((i) != 0) && ((i) != 2))
@@ -380,21 +381,124 @@
 }
 EXPORT_SYMBOL_GPL(acpi_dev_get_irq_type);
 
-static void acpi_dev_irqresource_disabled(struct resource *res, u32 gsi)
+static const struct dmi_system_id medion_laptop[] = {
+	{
+		.ident = "MEDION P15651",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_BOARD_NAME, "M15T"),
+		},
+	},
+	{
+		.ident = "MEDION S17405",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
+			DMI_MATCH(DMI_BOARD_NAME, "M17T"),
+		},
+	},
+	{ }
+};
+
+static const struct dmi_system_id asus_laptop[] = {
+	{
+		.ident = "Asus Vivobook K3402ZA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "K3402ZA"),
+		},
+	},
+	{
+		.ident = "Asus Vivobook K3502ZA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "K3502ZA"),
+		},
+	},
+	{
+		.ident = "Asus Vivobook S5402ZA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "S5402ZA"),
+		},
+	},
+	{
+		.ident = "Asus Vivobook S5602ZA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "S5602ZA"),
+		},
+	},
+	{
+		.ident = "Asus ExpertBook B1402CBA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "B1402CBA"),
+		},
+	},
+	{
+		.ident = "Asus ExpertBook B1502CBA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "B1502CBA"),
+		},
+	},
+	{
+		.ident = "Asus ExpertBook B2402CBA",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "B2402CBA"),
+		},
+	},
+	{
+		.ident = "Asus ExpertBook B2502",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "B2502CBA"),
+		},
+	},
+	{ }
+};
+
+struct irq_override_cmp {
+	const struct dmi_system_id *system;
+	unsigned char irq;
+	unsigned char triggering;
+	unsigned char polarity;
+	unsigned char shareable;
+};
+
+static const struct irq_override_cmp skip_override_table[] = {
+	{ medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 },
+	{ asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 },
+};
+
+static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
+				  u8 shareable)
 {
-	res->start = gsi;
-	res->end = gsi;
-	res->flags = IORESOURCE_IRQ | IORESOURCE_DISABLED | IORESOURCE_UNSET;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) {
+		const struct irq_override_cmp *entry = &skip_override_table[i];
+
+		if (dmi_check_system(entry->system) &&
+		    entry->irq == gsi &&
+		    entry->triggering == triggering &&
+		    entry->polarity == polarity &&
+		    entry->shareable == shareable)
+			return false;
+	}
+
+	return true;
 }
 
 static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,
 				     u8 triggering, u8 polarity, u8 shareable,
-				     bool legacy)
+				     bool check_override)
 {
 	int irq, p, t;
 
 	if (!valid_IRQ(gsi)) {
-		acpi_dev_irqresource_disabled(res, gsi);
+		irqresource_disabled(res, gsi);
 		return;
 	}
 
@@ -408,7 +512,9 @@
 	 * using extended IRQ descriptors we take the IRQ configuration
 	 * from _CRS directly.
 	 */
-	if (legacy && !acpi_get_override_irq(gsi, &t, &p)) {
+	if (check_override &&
+	    acpi_dev_irq_override(gsi, triggering, polarity, shareable) &&
+	    !acpi_get_override_irq(gsi, &t, &p)) {
 		u8 trig = t ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
 		u8 pol = p ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
 
@@ -426,7 +532,7 @@
 		res->start = irq;
 		res->end = irq;
 	} else {
-		acpi_dev_irqresource_disabled(res, gsi);
+		irqresource_disabled(res, gsi);
 	}
 }
 
@@ -463,7 +569,7 @@
 		 */
 		irq = &ares->data.irq;
 		if (index >= irq->interrupt_count) {
-			acpi_dev_irqresource_disabled(res, 0);
+			irqresource_disabled(res, 0);
 			return false;
 		}
 		acpi_dev_get_irqresource(res, irq->interrupts[index],
@@ -473,7 +579,7 @@
 	case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
 		ext_irq = &ares->data.extended_irq;
 		if (index >= ext_irq->interrupt_count) {
-			acpi_dev_irqresource_disabled(res, 0);
+			irqresource_disabled(res, 0);
 			return false;
 		}
 		if (is_gsi(ext_irq))
@@ -481,7 +587,7 @@
 					 ext_irq->triggering, ext_irq->polarity,
 					 ext_irq->shareable, false);
 		else
-			acpi_dev_irqresource_disabled(res, 0);
+			irqresource_disabled(res, 0);
 		break;
 	default:
 		res->flags = 0;
@@ -541,7 +647,7 @@
 		ret = c->preproc(ares, c->preproc_data);
 		if (ret < 0) {
 			c->error = ret;
-			return AE_CTRL_TERMINATE;
+			return AE_ABORT_METHOD;
 		} else if (ret > 0) {
 			return AE_OK;
 		}
--- linux-ein-5.4.0.orig/drivers/acpi/scan.c
+++ linux-ein-5.4.0/drivers/acpi/scan.c
@@ -483,10 +483,10 @@
 	list_for_each_entry(acpi_device_bus_id, &acpi_bus_id_list, node)
 		if (!strcmp(acpi_device_bus_id->bus_id,
 			    acpi_device_hid(device))) {
-			if (acpi_device_bus_id->instance_no > 0)
-				acpi_device_bus_id->instance_no--;
-			else {
+			ida_simple_remove(&acpi_device_bus_id->instance_ida, device->pnp.instance_no);
+			if (ida_is_empty(&acpi_device_bus_id->instance_ida)) {
 				list_del(&acpi_device_bus_id->node);
+				kfree_const(acpi_device_bus_id->bus_id);
 				kfree(acpi_device_bus_id);
 			}
 			break;
@@ -586,6 +586,8 @@
 	if (!device)
 		return -EINVAL;
 
+	*device = NULL;
+
 	status = acpi_get_data_full(handle, acpi_scan_drop_device,
 				    (void **)device, callback);
 	if (ACPI_FAILURE(status) || !*device) {
@@ -621,12 +623,38 @@
 	put_device(&adev->dev);
 }
 
+static struct acpi_device_bus_id *acpi_device_bus_id_match(const char *dev_id)
+{
+	struct acpi_device_bus_id *acpi_device_bus_id;
+
+	/* Find suitable bus_id and instance number in acpi_bus_id_list. */
+	list_for_each_entry(acpi_device_bus_id, &acpi_bus_id_list, node) {
+		if (!strcmp(acpi_device_bus_id->bus_id, dev_id))
+			return acpi_device_bus_id;
+	}
+	return NULL;
+}
+
+static int acpi_device_set_name(struct acpi_device *device,
+				struct acpi_device_bus_id *acpi_device_bus_id)
+{
+	struct ida *instance_ida = &acpi_device_bus_id->instance_ida;
+	int result;
+
+	result = ida_simple_get(instance_ida, 0, ACPI_MAX_DEVICE_INSTANCES, GFP_KERNEL);
+	if (result < 0)
+		return result;
+
+	device->pnp.instance_no = result;
+	dev_set_name(&device->dev, "%s:%02x", acpi_device_bus_id->bus_id, result);
+	return 0;
+}
+
 int acpi_device_add(struct acpi_device *device,
 		    void (*release)(struct device *))
 {
+	struct acpi_device_bus_id *acpi_device_bus_id;
 	int result;
-	struct acpi_device_bus_id *acpi_device_bus_id, *new_bus_id;
-	int found = 0;
 
 	if (device->handle) {
 		acpi_status status;
@@ -652,34 +680,39 @@
 	INIT_LIST_HEAD(&device->del_list);
 	mutex_init(&device->physical_node_lock);
 
-	new_bus_id = kzalloc(sizeof(struct acpi_device_bus_id), GFP_KERNEL);
-	if (!new_bus_id) {
-		pr_err(PREFIX "Memory allocation error\n");
-		result = -ENOMEM;
-		goto err_detach;
-	}
-
 	mutex_lock(&acpi_device_lock);
-	/*
-	 * Find suitable bus_id and instance number in acpi_bus_id_list
-	 * If failed, create one and link it into acpi_bus_id_list
-	 */
-	list_for_each_entry(acpi_device_bus_id, &acpi_bus_id_list, node) {
-		if (!strcmp(acpi_device_bus_id->bus_id,
-			    acpi_device_hid(device))) {
-			acpi_device_bus_id->instance_no++;
-			found = 1;
-			kfree(new_bus_id);
-			break;
+
+	acpi_device_bus_id = acpi_device_bus_id_match(acpi_device_hid(device));
+	if (acpi_device_bus_id) {
+		result = acpi_device_set_name(device, acpi_device_bus_id);
+		if (result)
+			goto err_unlock;
+	} else {
+		acpi_device_bus_id = kzalloc(sizeof(*acpi_device_bus_id),
+					     GFP_KERNEL);
+		if (!acpi_device_bus_id) {
+			result = -ENOMEM;
+			goto err_unlock;
+		}
+		acpi_device_bus_id->bus_id =
+			kstrdup_const(acpi_device_hid(device), GFP_KERNEL);
+		if (!acpi_device_bus_id->bus_id) {
+			kfree(acpi_device_bus_id);
+			result = -ENOMEM;
+			goto err_unlock;
+		}
+
+		ida_init(&acpi_device_bus_id->instance_ida);
+
+		result = acpi_device_set_name(device, acpi_device_bus_id);
+		if (result) {
+			kfree_const(acpi_device_bus_id->bus_id);
+			kfree(acpi_device_bus_id);
+			goto err_unlock;
 		}
-	}
-	if (!found) {
-		acpi_device_bus_id = new_bus_id;
-		strcpy(acpi_device_bus_id->bus_id, acpi_device_hid(device));
-		acpi_device_bus_id->instance_no = 0;
+
 		list_add_tail(&acpi_device_bus_id->node, &acpi_bus_id_list);
 	}
-	dev_set_name(&device->dev, "%s:%02x", acpi_device_bus_id->bus_id, acpi_device_bus_id->instance_no);
 
 	if (device->parent)
 		list_add_tail(&device->node, &device->parent->children);
@@ -710,9 +743,10 @@
 	if (device->parent)
 		list_del(&device->node);
 	list_del(&device->wakeup_list);
+
+ err_unlock:
 	mutex_unlock(&acpi_device_lock);
 
- err_detach:
 	acpi_detach_data(device->handle, acpi_scan_drop_device);
 	return result;
 }
@@ -919,12 +953,9 @@
 
 		if (buffer.length && package
 		    && package->type == ACPI_TYPE_PACKAGE
-		    && package->package.count) {
-			int err = acpi_extract_power_resources(package, 0,
-							       &ps->resources);
-			if (!err)
-				device->power.flags.power_resources = 1;
-		}
+		    && package->package.count)
+			acpi_extract_power_resources(package, 0, &ps->resources);
+
 		ACPI_FREE(buffer.pointer);
 	}
 
@@ -971,14 +1002,27 @@
 		acpi_bus_init_power_state(device, i);
 
 	INIT_LIST_HEAD(&device->power.states[ACPI_STATE_D3_COLD].resources);
-	if (!list_empty(&device->power.states[ACPI_STATE_D3_HOT].resources))
-		device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
 
-	/* Set defaults for D0 and D3hot states (always valid) */
+	/* Set the defaults for D0 and D3hot (always supported). */
 	device->power.states[ACPI_STATE_D0].flags.valid = 1;
 	device->power.states[ACPI_STATE_D0].power = 100;
 	device->power.states[ACPI_STATE_D3_HOT].flags.valid = 1;
 
+	/*
+	 * Use power resources only if the D0 list of them is populated, because
+	 * some platforms may provide _PR3 only to indicate D3cold support and
+	 * in those cases the power resources list returned by it may be bogus.
+	 */
+	if (!list_empty(&device->power.states[ACPI_STATE_D0].resources)) {
+		device->power.flags.power_resources = 1;
+		/*
+		 * D3cold is supported if the D3hot list of power resources is
+		 * not empty.
+		 */
+		if (!list_empty(&device->power.states[ACPI_STATE_D3_HOT].resources))
+			device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
+	}
+
 	if (acpi_bus_init_power(device))
 		device->flags.power_manageable = 0;
 }
@@ -1533,6 +1577,7 @@
 {
 	struct list_head resource_list;
 	bool is_serial_bus_slave = false;
+	static const struct acpi_device_id ignore_serial_bus_ids[] = {
 	/*
 	 * These devices have multiple I2cSerialBus resources and an i2c-client
 	 * must be instantiated for each, each with its own i2c_device_id.
@@ -1541,11 +1586,18 @@
 	 * drivers/platform/x86/i2c-multi-instantiate.c driver, which knows
 	 * which i2c_device_id to use for each resource.
 	 */
-	static const struct acpi_device_id i2c_multi_instantiate_ids[] = {
 		{"BSG1160", },
 		{"BSG2150", },
 		{"INT33FE", },
 		{"INT3515", },
+	/*
+	 * HIDs of device with an UartSerialBusV2 resource for which userspace
+	 * expects a regular tty cdev to be created (instead of the in kernel
+	 * serdev) and which have a kernel driver which expects a platform_dev
+	 * such as the rfkill-gpio driver.
+	 */
+		{"BCM4752", },
+		{"LNV4752", },
 		{}
 	};
 
@@ -1559,8 +1611,7 @@
 	     fwnode_property_present(&device->fwnode, "baud")))
 		return true;
 
-	/* Instantiate a pdev for the i2c-multi-instantiate drv to bind to */
-	if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
+	if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
 		return false;
 
 	INIT_LIST_HEAD(&resource_list);
@@ -2174,6 +2225,7 @@
 	acpi_pci_root_init();
 	acpi_pci_link_init();
 	acpi_processor_init();
+	acpi_platform_init();
 	acpi_lpss_init();
 	acpi_apd_init();
 	acpi_cmos_rtc_init();
--- linux-ein-5.4.0.orig/drivers/acpi/sleep.c
+++ linux-ein-5.4.0/drivers/acpi/sleep.c
@@ -361,6 +361,14 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "80E3"),
 		},
 	},
+	{
+	.callback = init_nvs_save_s3,
+	.ident = "Lenovo G40-45",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "80E1"),
+		},
+	},
 	/*
 	 * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using
 	 * the Low Power S0 Idle firmware interface (see
@@ -374,6 +382,18 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "20GGA00L00"),
 		},
 	},
+	/*
+	 * ASUS B1400CEAE hangs on resume from suspend (see
+	 * https://bugzilla.kernel.org/show_bug.cgi?id=215742).
+	 */
+	{
+	.callback = init_default_s3,
+	.ident = "ASUS B1400CEAE",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "ASUS EXPERTBOOK B1400CEAE"),
+		},
+	},
 	{},
 };
 
@@ -977,23 +997,38 @@
 	return 0;
 }
 
-static void acpi_s2idle_wake(void)
+static bool acpi_s2idle_wake(void)
 {
-	/*
-	 * If IRQD_WAKEUP_ARMED is set for the SCI at this point, the SCI has
-	 * not triggered while suspended, so bail out.
-	 */
-	if (!acpi_sci_irq_valid() ||
-	    irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq)))
-		return;
+	if (!acpi_sci_irq_valid())
+		return pm_wakeup_pending();
+
+	while (pm_wakeup_pending()) {
+		/*
+		 * If IRQD_WAKEUP_ARMED is set for the SCI at this point, the
+		 * SCI has not triggered while suspended, so bail out (the
+		 * wakeup is pending anyway and the SCI is not the source of
+		 * it).
+		 */
+		if (irqd_is_wakeup_armed(irq_get_irq_data(acpi_sci_irq)))
+			return true;
+
+		/*
+		 * If the status bit of any enabled fixed event is set, the
+		 * wakeup is regarded as valid.
+		 */
+		if (acpi_any_fixed_event_status_set())
+			return true;
+
+		/* Check wakeups from drivers sharing the SCI. */
+		if (acpi_check_wakeup_handlers())
+			return true;
+
+		/* Check non-EC GPE wakeups and dispatch the EC GPE. */
+		if (acpi_ec_dispatch_gpe())
+			return true;
 
-	/*
-	 * If there are EC events to process, the wakeup may be a spurious one
-	 * coming from the EC.
-	 */
-	if (acpi_ec_dispatch_gpe()) {
 		/*
-		 * Cancel the wakeup and process all pending events in case
+		 * Cancel the SCI wakeup and process all pending events in case
 		 * there are any wakeup ones in there.
 		 *
 		 * Note that if any non-EC GPEs are active at this point, the
@@ -1001,16 +1036,22 @@
 		 * should be missed by canceling the wakeup here.
 		 */
 		pm_system_cancel_wakeup();
+		acpi_os_wait_events_complete();
+
 		/*
-		 * The EC driver uses the system workqueue and an additional
-		 * special one, so those need to be flushed too.
+		 * The SCI is in the "suspended" state now and it cannot produce
+		 * new wakeup events till the rearming below, so if any of them
+		 * are pending here, they must be resulting from the processing
+		 * of EC events above or coming from somewhere else.
 		 */
-		acpi_os_wait_events_complete(); /* synchronize EC GPE processing */
-		acpi_ec_flush_work();
-		acpi_os_wait_events_complete(); /* synchronize Notify handling */
+		if (pm_wakeup_pending())
+			return true;
 
+		pm_wakeup_clear(acpi_sci_irq);
 		rearm_wake_irq(acpi_sci_irq);
 	}
+
+	return false;
 }
 
 static void acpi_s2idle_restore_early(void)
@@ -1024,6 +1065,14 @@
 
 static void acpi_s2idle_restore(void)
 {
+	/*
+	 * Drain pending events before restoring the working-state configuration
+	 * of GPEs.
+	 */
+	acpi_os_wait_events_complete(); /* synchronize GPE processing */
+	acpi_ec_flush_work(); /* flush the EC driver's workqueues */
+	acpi_os_wait_events_complete(); /* synchronize Notify handling */
+
 	s2idle_wakeup = false;
 
 	acpi_enable_all_runtime_gpes();
--- linux-ein-5.4.0.orig/drivers/acpi/sleep.h
+++ linux-ein-5.4.0/drivers/acpi/sleep.h
@@ -2,6 +2,7 @@
 
 extern void acpi_enable_wakeup_devices(u8 sleep_state);
 extern void acpi_disable_wakeup_devices(u8 sleep_state);
+extern bool acpi_check_wakeup_handlers(void);
 
 extern struct list_head acpi_wakeup_device_list;
 extern struct mutex acpi_device_lock;
--- linux-ein-5.4.0.orig/drivers/acpi/sysfs.c
+++ linux-ein-5.4.0/drivers/acpi/sysfs.c
@@ -439,18 +439,29 @@
 {
 	struct acpi_data_attr *data_attr;
 	void __iomem *base;
-	ssize_t rc;
+	ssize_t size;
 
 	data_attr = container_of(bin_attr, struct acpi_data_attr, attr);
+	size = data_attr->attr.size;
 
-	base = acpi_os_map_memory(data_attr->addr, data_attr->attr.size);
+	if (offset < 0)
+		return -EINVAL;
+
+	if (offset >= size)
+		return 0;
+
+	if (count > size - offset)
+		count = size - offset;
+
+	base = acpi_os_map_iomem(data_attr->addr, size);
 	if (!base)
 		return -ENOMEM;
-	rc = memory_read_from_buffer(buf, count, &offset, base,
-				     data_attr->attr.size);
-	acpi_os_unmap_memory(base, data_attr->attr.size);
 
-	return rc;
+	memcpy_fromio(buf, base + offset, count);
+
+	acpi_os_unmap_iomem(base, size);
+
+	return count;
 }
 
 static int acpi_bert_data_init(void *th, struct acpi_data_attr *data_attr)
@@ -819,14 +830,14 @@
  * interface:
  *   echo unmask > /sys/firmware/acpi/interrupts/gpe00
  */
-#define ACPI_MASKABLE_GPE_MAX	0xFF
+#define ACPI_MASKABLE_GPE_MAX	0x100
 static DECLARE_BITMAP(acpi_masked_gpes_map, ACPI_MASKABLE_GPE_MAX) __initdata;
 
 static int __init acpi_gpe_set_masked_gpes(char *val)
 {
 	u8 gpe;
 
-	if (kstrtou8(val, 0, &gpe) || gpe > ACPI_MASKABLE_GPE_MAX)
+	if (kstrtou8(val, 0, &gpe))
 		return -EINVAL;
 	set_bit(gpe, acpi_masked_gpes_map);
 
@@ -838,7 +849,7 @@
 {
 	acpi_handle handle;
 	acpi_status status;
-	u8 gpe;
+	u16 gpe;
 
 	for_each_set_bit(gpe, acpi_masked_gpes_map, ACPI_MASKABLE_GPE_MAX) {
 		status = acpi_get_gpe_device(gpe, &handle);
@@ -938,13 +949,13 @@
 }
 
 static ssize_t
-acpi_show_profile(struct device *dev, struct device_attribute *attr,
+acpi_show_profile(struct kobject *kobj, struct kobj_attribute *attr,
 		  char *buf)
 {
 	return sprintf(buf, "%d\n", acpi_gbl_FADT.preferred_profile);
 }
 
-static const struct device_attribute pm_profile_attr =
+static const struct kobj_attribute pm_profile_attr =
 	__ATTR(pm_profile, S_IRUGO, acpi_show_profile, NULL);
 
 static ssize_t hotplug_enabled_show(struct kobject *kobj,
@@ -993,8 +1004,10 @@
 
 	error = kobject_init_and_add(&hotplug->kobj,
 		&acpi_hotplug_profile_ktype, hotplug_kobj, "%s", name);
-	if (error)
+	if (error) {
+		kobject_put(&hotplug->kobj);
 		goto err_out;
+	}
 
 	kobject_uevent(&hotplug->kobj, KOBJ_ADD);
 	return;
--- linux-ein-5.4.0.orig/drivers/acpi/tables.c
+++ linux-ein-5.4.0/drivers/acpi/tables.c
@@ -791,7 +791,7 @@
 }
 
 /*
- * acpi_table_init()
+ * acpi_locate_initial_tables()
  *
  * find RSDP, find and checksum SDT/XSDT.
  * checksum all tables, print SDT/XSDT
@@ -799,7 +799,7 @@
  * result: sdt_entry[] is initialized
  */
 
-int __init acpi_table_init(void)
+int __init acpi_locate_initial_tables(void)
 {
 	acpi_status status;
 
@@ -814,9 +814,45 @@
 	status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0);
 	if (ACPI_FAILURE(status))
 		return -EINVAL;
-	acpi_table_initrd_scan();
 
+	return 0;
+}
+
+void __init acpi_reserve_initial_tables(void)
+{
+	int i;
+
+	for (i = 0; i < ACPI_MAX_TABLES; i++) {
+		struct acpi_table_desc *table_desc = &initial_tables[i];
+		u64 start = table_desc->address;
+		u64 size = table_desc->length;
+
+		if (!start || !size)
+			break;
+
+		pr_info("Reserving %4s table memory at [mem 0x%llx-0x%llx]\n",
+			table_desc->signature.ascii, start, start + size - 1);
+
+		memblock_reserve(start, size);
+	}
+}
+
+void __init acpi_table_init_complete(void)
+{
+	acpi_table_initrd_scan();
 	check_multiple_madt();
+}
+
+int __init acpi_table_init(void)
+{
+	int ret;
+
+	ret = acpi_locate_initial_tables();
+	if (ret)
+		return ret;
+
+	acpi_table_init_complete();
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/acpi/thermal.c
+++ linux-ein-5.4.0/drivers/acpi/thermal.c
@@ -174,6 +174,8 @@
 	int tz_enabled;
 	int kelvin_offset;
 	struct work_struct thermal_check_work;
+	struct mutex thermal_check_lock;
+	refcount_t thermal_check_count;
 };
 
 /* --------------------------------------------------------------------------
@@ -494,17 +496,6 @@
 	return 0;
 }
 
-static void acpi_thermal_check(void *data)
-{
-	struct acpi_thermal *tz = data;
-
-	if (!tz->tz_enabled)
-		return;
-
-	thermal_zone_device_update(tz->thermal_zone,
-				   THERMAL_EVENT_UNSPECIFIED);
-}
-
 /* sys I/F for generic thermal sysfs support */
 
 static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
@@ -538,6 +529,8 @@
 	return 0;
 }
 
+static void acpi_thermal_check_fn(struct work_struct *work);
+
 static int thermal_set_mode(struct thermal_zone_device *thermal,
 				enum thermal_device_mode mode)
 {
@@ -563,7 +556,7 @@
 		ACPI_DEBUG_PRINT((ACPI_DB_INFO,
 			"%s kernel ACPI thermal control\n",
 			tz->tz_enabled ? "Enable" : "Disable"));
-		acpi_thermal_check(tz);
+		acpi_thermal_check_fn(&tz->thermal_check_work);
 	}
 	return 0;
 }
@@ -932,6 +925,12 @@
                                  Driver Interface
    -------------------------------------------------------------------------- */
 
+static void acpi_queue_thermal_check(struct acpi_thermal *tz)
+{
+	if (!work_pending(&tz->thermal_check_work))
+		queue_work(acpi_thermal_pm_queue, &tz->thermal_check_work);
+}
+
 static void acpi_thermal_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_thermal *tz = acpi_driver_data(device);
@@ -942,17 +941,17 @@
 
 	switch (event) {
 	case ACPI_THERMAL_NOTIFY_TEMPERATURE:
-		acpi_thermal_check(tz);
+		acpi_queue_thermal_check(tz);
 		break;
 	case ACPI_THERMAL_NOTIFY_THRESHOLDS:
 		acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS);
-		acpi_thermal_check(tz);
+		acpi_queue_thermal_check(tz);
 		acpi_bus_generate_netlink_event(device->pnp.device_class,
 						  dev_name(&device->dev), event, 0);
 		break;
 	case ACPI_THERMAL_NOTIFY_DEVICES:
 		acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES);
-		acpi_thermal_check(tz);
+		acpi_queue_thermal_check(tz);
 		acpi_bus_generate_netlink_event(device->pnp.device_class,
 						  dev_name(&device->dev), event, 0);
 		break;
@@ -1052,7 +1051,27 @@
 {
 	struct acpi_thermal *tz = container_of(work, struct acpi_thermal,
 					       thermal_check_work);
-	acpi_thermal_check(tz);
+
+	if (!tz->tz_enabled)
+		return;
+	/*
+	 * In general, it is not sufficient to check the pending bit, because
+	 * subsequent instances of this function may be queued after one of them
+	 * has started running (e.g. if _TMP sleeps).  Avoid bailing out if just
+	 * one of them is running, though, because it may have done the actual
+	 * check some time ago, so allow at least one of them to block on the
+	 * mutex while another one is running the update.
+	 */
+	if (!refcount_dec_not_one(&tz->thermal_check_count))
+		return;
+
+	mutex_lock(&tz->thermal_check_lock);
+
+	thermal_zone_device_update(tz->thermal_zone, THERMAL_EVENT_UNSPECIFIED);
+
+	refcount_inc(&tz->thermal_check_count);
+
+	mutex_unlock(&tz->thermal_check_lock);
 }
 
 static int acpi_thermal_add(struct acpi_device *device)
@@ -1084,6 +1103,8 @@
 	if (result)
 		goto free_memory;
 
+	refcount_set(&tz->thermal_check_count, 3);
+	mutex_init(&tz->thermal_check_lock);
 	INIT_WORK(&tz->thermal_check_work, acpi_thermal_check_fn);
 
 	pr_info(PREFIX "%s [%s] (%ld C)\n", acpi_device_name(device),
@@ -1132,8 +1153,6 @@
 		return -EINVAL;
 
 	for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) {
-		if (!(&tz->trips.active[i]))
-			break;
 		if (!tz->trips.active[i].flags.valid)
 			break;
 		tz->trips.active[i].flags.enabled = 1;
@@ -1149,7 +1168,7 @@
 		tz->state.active |= tz->trips.active[i].flags.enabled;
 	}
 
-	queue_work(acpi_thermal_pm_queue, &tz->thermal_check_work);
+	acpi_queue_thermal_check(tz);
 
 	return AE_OK;
 }
--- linux-ein-5.4.0.orig/drivers/acpi/video_detect.c
+++ linux-ein-5.4.0/drivers/acpi/video_detect.c
@@ -143,6 +143,14 @@
 	},
 	{
 	.callback = video_detect_force_vendor,
+	.ident = "GIGABYTE GB-BXBT-2807",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "GB-BXBT-2807"),
+		},
+	},
+	{
+	.callback = video_detect_force_vendor,
 	.ident = "Sony VPCEH3U1E",
 	.matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
@@ -282,6 +290,15 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "530U4E/540U4E"),
 		},
 	},
+	/* https://bugs.launchpad.net/bugs/1894667 */
+	{
+	 .callback = video_detect_force_video,
+	 .ident = "HP 635 Notebook",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "HP 635 Notebook PC"),
+		},
+	},
 
 	/* Non win8 machines which need native backlight nevertheless */
 	{
@@ -294,12 +311,37 @@
 		},
 	},
 	{
+	 /* https://bugzilla.suse.com/show_bug.cgi?id=1208724 */
+	 .callback = video_detect_force_native,
+	 /* Lenovo Ideapad Z470 */
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Z470"),
+		},
+	},
+	{
 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1187004 */
 	 .callback = video_detect_force_native,
 	 .ident = "Lenovo Ideapad Z570",
 	 .matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-		DMI_MATCH(DMI_PRODUCT_NAME, "102434U"),
+		DMI_MATCH(DMI_PRODUCT_VERSION, "Ideapad Z570"),
+		},
+	},
+	{
+	 .callback = video_detect_force_native,
+	 .ident = "Lenovo E41-25",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "81FS"),
+		},
+	},
+	{
+	 .callback = video_detect_force_native,
+	 .ident = "Lenovo E41-45",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "82BK"),
 		},
 	},
 	{
@@ -337,6 +379,184 @@
 		},
 	},
 	{
+	 .callback = video_detect_force_native,
+	 .ident = "Acer Aspire 5738z",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5738"),
+		DMI_MATCH(DMI_BOARD_NAME, "JV50"),
+		},
+	},
+	{
+	 /* https://bugzilla.kernel.org/show_bug.cgi?id=207835 */
+	 .callback = video_detect_force_native,
+	 .ident = "Acer TravelMate 5735Z",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5735Z"),
+		DMI_MATCH(DMI_BOARD_NAME, "BA51_MV"),
+		},
+	},
+	/*
+	 * Clevo NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2 have both a
+	 * working native and video interface. However the default detection
+	 * mechanism first registers the video interface before unregistering
+	 * it again and switching to the native interface during boot. This
+	 * results in a dangling SBIOS request for backlight change for some
+	 * reason, causing the backlight to switch to ~2% once per boot on the
+	 * first power cord connect or disconnect event. Setting the native
+	 * interface explicitly circumvents this buggy behaviour, by avoiding
+	 * the unregistering process.
+	 */
+	{
+	.callback = video_detect_force_native,
+	.ident = "Clevo NL5xRU",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "Clevo NL5xRU",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "Clevo NL5xRU",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "Clevo NL5xNU",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"),
+		},
+	},
+	/*
+	 * The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10,
+	 * Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo
+	 * NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2. See the description
+	 * above.
+	 */
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang PF5PU1G",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "PF5PU1G"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang PF4NU1F",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "PF4NU1F"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang PF4NU1F",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "PULSE1401"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang PF5NU1G",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "PF5NU1G"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang PF5NU1G",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "PULSE1501"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang PF5LUXG",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "PF5LUXG"),
+		},
+	},
+	/*
+	 * More Tongfang devices with the same issue as the Clevo NL5xRU and
+	 * NL5xNU/TUXEDO Aura 15 Gen1 and Gen2. See the description above.
+	 */
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GKxNRxx",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "GKxNRxx"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GKxNRxx",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "POLARIS1501A1650TI"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GKxNRxx",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "POLARIS1501A2060"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GKxNRxx",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "POLARIS1701A1650TI"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GKxNRxx",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+		DMI_MATCH(DMI_BOARD_NAME, "POLARIS1701A2060"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GMxNGxx",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "GMxNGxx"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GMxZGxx",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "GMxZGxx"),
+		},
+	},
+	{
+	.callback = video_detect_force_native,
+	.ident = "TongFang GMxRGxx",
+	.matches = {
+		DMI_MATCH(DMI_BOARD_NAME, "GMxRGxx"),
+		},
+	},
+	/*
+	 * Desktops which falsely report a backlight and which our heuristics
+	 * for this do not catch.
+	 */
+	{
 	 .callback = video_detect_force_none,
 	 .ident = "Dell OptiPlex 9020M",
 	 .matches = {
@@ -344,6 +564,14 @@
 		DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 9020M"),
 		},
 	},
+	{
+	 .callback = video_detect_force_none,
+	 .ident = "MSI MS-7721",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "MSI"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "MS-7721"),
+		},
+	},
 	{ },
 };
 
--- linux-ein-5.4.0.orig/drivers/acpi/wakeup.c
+++ linux-ein-5.4.0/drivers/acpi/wakeup.c
@@ -12,6 +12,15 @@
 #include "internal.h"
 #include "sleep.h"
 
+struct acpi_wakeup_handler {
+	struct list_head list_node;
+	bool (*wakeup)(void *context);
+	void *context;
+};
+
+static LIST_HEAD(acpi_wakeup_handler_head);
+static DEFINE_MUTEX(acpi_wakeup_handler_mutex);
+
 /*
  * We didn't lock acpi_device_lock in the file, because it invokes oops in
  * suspend/resume and isn't really required as this is called in S-state. At
@@ -96,3 +105,75 @@
 	mutex_unlock(&acpi_device_lock);
 	return 0;
 }
+
+/**
+ * acpi_register_wakeup_handler - Register wakeup handler
+ * @wake_irq: The IRQ through which the device may receive wakeups
+ * @wakeup:   Wakeup-handler to call when the SCI has triggered a wakeup
+ * @context:  Context to pass to the handler when calling it
+ *
+ * Drivers which may share an IRQ with the SCI can use this to register
+ * a handler which returns true when the device they are managing wants
+ * to trigger a wakeup.
+ */
+int acpi_register_wakeup_handler(int wake_irq, bool (*wakeup)(void *context),
+				 void *context)
+{
+	struct acpi_wakeup_handler *handler;
+
+	/*
+	 * If the device is not sharing its IRQ with the SCI, there is no
+	 * need to register the handler.
+	 */
+	if (!acpi_sci_irq_valid() || wake_irq != acpi_sci_irq)
+		return 0;
+
+	handler = kmalloc(sizeof(*handler), GFP_KERNEL);
+	if (!handler)
+		return -ENOMEM;
+
+	handler->wakeup = wakeup;
+	handler->context = context;
+
+	mutex_lock(&acpi_wakeup_handler_mutex);
+	list_add(&handler->list_node, &acpi_wakeup_handler_head);
+	mutex_unlock(&acpi_wakeup_handler_mutex);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(acpi_register_wakeup_handler);
+
+/**
+ * acpi_unregister_wakeup_handler - Unregister wakeup handler
+ * @wakeup:   Wakeup-handler passed to acpi_register_wakeup_handler()
+ * @context:  Context passed to acpi_register_wakeup_handler()
+ */
+void acpi_unregister_wakeup_handler(bool (*wakeup)(void *context),
+				    void *context)
+{
+	struct acpi_wakeup_handler *handler;
+
+	mutex_lock(&acpi_wakeup_handler_mutex);
+	list_for_each_entry(handler, &acpi_wakeup_handler_head, list_node) {
+		if (handler->wakeup == wakeup && handler->context == context) {
+			list_del(&handler->list_node);
+			kfree(handler);
+			break;
+		}
+	}
+	mutex_unlock(&acpi_wakeup_handler_mutex);
+}
+EXPORT_SYMBOL_GPL(acpi_unregister_wakeup_handler);
+
+bool acpi_check_wakeup_handlers(void)
+{
+	struct acpi_wakeup_handler *handler;
+
+	/* No need to lock, nothing else is running when we're called. */
+	list_for_each_entry(handler, &acpi_wakeup_handler_head, list_node) {
+		if (handler->wakeup(handler->context))
+			return true;
+	}
+
+	return false;
+}
--- linux-ein-5.4.0.orig/drivers/amba/bus.c
+++ linux-ein-5.4.0/drivers/amba/bus.c
@@ -299,10 +299,11 @@
 {
 	struct amba_device *pcdev = to_amba_device(dev);
 	struct amba_driver *drv = to_amba_driver(dev->driver);
-	int ret;
+	int ret = 0;
 
 	pm_runtime_get_sync(dev);
-	ret = drv->remove(pcdev);
+	if (drv->remove)
+		ret = drv->remove(pcdev);
 	pm_runtime_put_noidle(dev);
 
 	/* Undo the runtime PM settings in amba_probe() */
@@ -319,7 +320,9 @@
 static void amba_shutdown(struct device *dev)
 {
 	struct amba_driver *drv = to_amba_driver(dev->driver);
-	drv->shutdown(to_amba_device(dev));
+
+	if (drv->shutdown)
+		drv->shutdown(to_amba_device(dev));
 }
 
 /**
@@ -332,12 +335,13 @@
  */
 int amba_driver_register(struct amba_driver *drv)
 {
-	drv->drv.bus = &amba_bustype;
+	if (!drv->probe)
+		return -EINVAL;
 
-#define SETFN(fn)	if (drv->fn) drv->drv.fn = amba_##fn
-	SETFN(probe);
-	SETFN(remove);
-	SETFN(shutdown);
+	drv->drv.bus = &amba_bustype;
+	drv->drv.probe = amba_probe;
+	drv->drv.remove = amba_remove;
+	drv->drv.shutdown = amba_shutdown;
 
 	return driver_register(&drv->drv);
 }
@@ -360,6 +364,7 @@
 {
 	struct amba_device *d = to_amba_device(dev);
 
+	of_node_put(d->dev.of_node);
 	if (d->res.parent)
 		release_resource(&d->res);
 	kfree(d);
@@ -371,9 +376,6 @@
 	void __iomem *tmp;
 	int i, ret;
 
-	WARN_ON(dev->irq[0] == (unsigned int)-1);
-	WARN_ON(dev->irq[1] == (unsigned int)-1);
-
 	ret = request_resource(parent, &dev->res);
 	if (ret)
 		goto err_out;
--- linux-ein-5.4.0.orig/drivers/android/Kconfig
+++ linux-ein-5.4.0/drivers/android/Kconfig
@@ -9,7 +9,7 @@
 if ANDROID
 
 config ANDROID_BINDER_IPC
-	bool "Android Binder IPC Driver"
+	tristate "Android Binder IPC Driver"
 	depends on MMU
 	default n
 	---help---
@@ -21,8 +21,8 @@
 	  between said processes.
 
 config ANDROID_BINDERFS
-	bool "Android Binderfs filesystem"
-	depends on ANDROID_BINDER_IPC
+	tristate "Android Binderfs filesystem"
+	depends on (ANDROID_BINDER_IPC=y) || (ANDROID_BINDER_IPC=m && m)
 	default n
 	---help---
 	  Binderfs is a pseudo-filesystem for the Android Binder IPC driver
--- linux-ein-5.4.0.orig/drivers/android/Makefile
+++ linux-ein-5.4.0/drivers/android/Makefile
@@ -1,6 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0-only
 ccflags-y += -I$(src)			# needed for trace events
 
-obj-$(CONFIG_ANDROID_BINDERFS)		+= binderfs.o
-obj-$(CONFIG_ANDROID_BINDER_IPC)	+= binder.o binder_alloc.o
-obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
+binder_linux-y := binder.o binder_alloc.o
+obj-$(CONFIG_ANDROID_BINDER_IPC) += binder_linux.o
+binder_linux-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
+binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
+
+# binder-$(CONFIG_ANDROID_BINDER_IPC) := binder.o binder_alloc.o
+# binder-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
--- linux-ein-5.4.0.orig/drivers/android/binder.c
+++ linux-ein-5.4.0/drivers/android/binder.c
@@ -227,7 +227,7 @@
 struct binder_work {
 	struct list_head entry;
 
-	enum {
+	enum binder_work_type {
 		BINDER_WORK_TRANSACTION = 1,
 		BINDER_WORK_TRANSACTION_COMPLETE,
 		BINDER_WORK_RETURN_ERROR,
@@ -424,6 +424,9 @@
  *                        (invariant after initialized)
  * @tsk                   task_struct for group_leader of process
  *                        (invariant after initialized)
+ * @cred                  struct cred associated with the `struct file`
+ *                        in binder_open()
+ *                        (invariant after initialized)
  * @deferred_work_node:   element for binder_deferred_list
  *                        (protected by binder_deferred_lock)
  * @deferred_work:        bitmap of deferred work to perform
@@ -469,6 +472,7 @@
 	struct list_head waiting_threads;
 	int pid;
 	struct task_struct *tsk;
+	const struct cred *cred;
 	struct hlist_node deferred_work_node;
 	int deferred_work;
 	bool is_dead;
@@ -889,27 +893,6 @@
 	return w;
 }
 
-/**
- * binder_dequeue_work_head() - Dequeues the item at head of list
- * @proc:         binder_proc associated with list
- * @list:         list to dequeue head
- *
- * Removes the head of the list if there are items on the list
- *
- * Return: pointer dequeued binder_work, NULL if list was empty
- */
-static struct binder_work *binder_dequeue_work_head(
-					struct binder_proc *proc,
-					struct list_head *list)
-{
-	struct binder_work *w;
-
-	binder_inner_proc_lock(proc);
-	w = binder_dequeue_work_head_ilocked(list);
-	binder_inner_proc_unlock(proc);
-	return w;
-}
-
 static void
 binder_defer_work(struct binder_proc *proc, enum binder_deferred_state defer);
 static void binder_free_thread(struct binder_thread *thread);
@@ -1765,6 +1748,18 @@
 	}
 	ret = binder_inc_ref_olocked(ref, strong, target_list);
 	*rdata = ref->data;
+	if (ret && ref == new_ref) {
+		/*
+		 * Cleanup the failed reference here as the target
+		 * could now be dead and have already released its
+		 * references by now. Calling on the new reference
+		 * with strong=0 and a tmp_refs will not decrement
+		 * the node. The new_ref gets kfree'd below.
+		 */
+		binder_cleanup_ref_olocked(new_ref);
+		ref = NULL;
+	}
+
 	binder_proc_unlock(proc);
 	if (new_ref && ref != new_ref)
 		/*
@@ -2018,15 +2013,21 @@
 /**
  * binder_get_object() - gets object and checks for valid metadata
  * @proc:	binder_proc owning the buffer
+ * @u:		sender's user pointer to base of buffer
  * @buffer:	binder_buffer that we're parsing.
  * @offset:	offset in the @buffer at which to validate an object.
  * @object:	struct binder_object to read into
  *
- * Return:	If there's a valid metadata object at @offset in @buffer, the
+ * Copy the binder object at the given offset into @object. If @u is
+ * provided then the copy is from the sender's buffer. If not, then
+ * it is copied from the target's @buffer.
+ *
+ * Return:	If there's a valid metadata object at @offset, the
  *		size of that object. Otherwise, it returns zero. The object
  *		is read into the struct binder_object pointed to by @object.
  */
 static size_t binder_get_object(struct binder_proc *proc,
+				const void __user *u,
 				struct binder_buffer *buffer,
 				unsigned long offset,
 				struct binder_object *object)
@@ -2036,10 +2037,16 @@
 	size_t object_size = 0;
 
 	read_size = min_t(size_t, sizeof(*object), buffer->data_size - offset);
-	if (offset > buffer->data_size || read_size < sizeof(*hdr) ||
-	    binder_alloc_copy_from_buffer(&proc->alloc, object, buffer,
-					  offset, read_size))
+	if (offset > buffer->data_size || read_size < sizeof(*hdr))
 		return 0;
+	if (u) {
+		if (copy_from_user(object, u + offset, read_size))
+			return 0;
+	} else {
+		if (binder_alloc_copy_from_buffer(&proc->alloc, object, buffer,
+						  offset, read_size))
+			return 0;
+	}
 
 	/* Ok, now see if we read a complete object. */
 	hdr = &object->hdr;
@@ -2112,7 +2119,7 @@
 					  b, buffer_offset,
 					  sizeof(object_offset)))
 		return NULL;
-	object_size = binder_get_object(proc, b, object_offset, object);
+	object_size = binder_get_object(proc, NULL, b, object_offset, object);
 	if (!object_size || object->hdr.type != BINDER_TYPE_PTR)
 		return NULL;
 	if (object_offsetp)
@@ -2177,7 +2184,8 @@
 		unsigned long buffer_offset;
 		struct binder_object last_object;
 		struct binder_buffer_object *last_bbo;
-		size_t object_size = binder_get_object(proc, b, last_obj_offset,
+		size_t object_size = binder_get_object(proc, NULL, b,
+						       last_obj_offset,
 						       &last_object);
 		if (object_size != sizeof(*last_bbo))
 			return false;
@@ -2260,25 +2268,25 @@
 }
 
 static void binder_transaction_buffer_release(struct binder_proc *proc,
+					      struct binder_thread *thread,
 					      struct binder_buffer *buffer,
-					      binder_size_t failed_at,
+					      binder_size_t off_end_offset,
 					      bool is_failure)
 {
 	int debug_id = buffer->debug_id;
-	binder_size_t off_start_offset, buffer_offset, off_end_offset;
+	binder_size_t off_start_offset, buffer_offset;
 
 	binder_debug(BINDER_DEBUG_TRANSACTION,
 		     "%d buffer release %d, size %zd-%zd, failed at %llx\n",
 		     proc->pid, buffer->debug_id,
 		     buffer->data_size, buffer->offsets_size,
-		     (unsigned long long)failed_at);
+		     (unsigned long long)off_end_offset);
 
 	if (buffer->target_node)
 		binder_dec_node(buffer->target_node, 1, 0);
 
 	off_start_offset = ALIGN(buffer->data_size, sizeof(void *));
-	off_end_offset = is_failure ? failed_at :
-				off_start_offset + buffer->offsets_size;
+
 	for (buffer_offset = off_start_offset; buffer_offset < off_end_offset;
 	     buffer_offset += sizeof(binder_size_t)) {
 		struct binder_object_header *hdr;
@@ -2289,7 +2297,7 @@
 		if (!binder_alloc_copy_from_buffer(&proc->alloc, &object_offset,
 						   buffer, buffer_offset,
 						   sizeof(object_offset)))
-			object_size = binder_get_object(proc, buffer,
+			object_size = binder_get_object(proc, NULL, buffer,
 							object_offset, &object);
 		if (object_size == 0) {
 			pr_err("transaction release %d bad object at offset %lld, size %zd\n",
@@ -2347,8 +2355,6 @@
 			 * file is done when the transaction is torn
 			 * down.
 			 */
-			WARN_ON(failed_at &&
-				proc->tsk == current->group_leader);
 		} break;
 		case BINDER_TYPE_PTR:
 			/*
@@ -2365,9 +2371,8 @@
 			binder_size_t fd_buf_size;
 			binder_size_t num_valid;
 
-			if (proc->tsk != current->group_leader) {
+			if (is_failure) {
 				/*
-				 * Nothing to do if running in sender context
 				 * The fd fixups have not been applied so no
 				 * fds need to be closed.
 				 */
@@ -2421,8 +2426,16 @@
 						&proc->alloc, &fd, buffer,
 						offset, sizeof(fd));
 				WARN_ON(err);
-				if (!err)
+				if (!err) {
 					binder_deferred_fd_close(fd);
+					/*
+					 * Need to make sure the thread goes
+					 * back to userspace to complete the
+					 * deferred close
+					 */
+					if (thread)
+						thread->looper_need_return = true;
+				}
 			}
 		} break;
 		default:
@@ -2433,6 +2446,21 @@
 	}
 }
 
+/* Clean up all the objects in the buffer */
+static inline void binder_release_entire_buffer(struct binder_proc *proc,
+						struct binder_thread *thread,
+						struct binder_buffer *buffer,
+						bool is_failure)
+{
+	binder_size_t off_end_offset;
+
+	off_end_offset = ALIGN(buffer->data_size, sizeof(void *));
+	off_end_offset += buffer->offsets_size;
+
+	binder_transaction_buffer_release(proc, thread, buffer,
+					  off_end_offset, is_failure);
+}
+
 static int binder_translate_binder(struct flat_binder_object *fp,
 				   struct binder_transaction *t,
 				   struct binder_thread *thread)
@@ -2457,7 +2485,7 @@
 		ret = -EINVAL;
 		goto done;
 	}
-	if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
+	if (security_binder_transfer_binder(proc->cred, target_proc->cred)) {
 		ret = -EPERM;
 		goto done;
 	}
@@ -2503,7 +2531,7 @@
 				  proc->pid, thread->pid, fp->handle);
 		return -EINVAL;
 	}
-	if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
+	if (security_binder_transfer_binder(proc->cred, target_proc->cred)) {
 		ret = -EPERM;
 		goto done;
 	}
@@ -2591,7 +2619,7 @@
 		ret = -EBADF;
 		goto err_fget;
 	}
-	ret = security_binder_transfer_file(proc->tsk, target_proc->tsk, file);
+	ret = security_binder_transfer_file(proc->cred, target_proc->cred, file);
 	if (ret < 0) {
 		ret = -EPERM;
 		goto err_security;
@@ -2622,16 +2650,266 @@
 	return ret;
 }
 
-static int binder_translate_fd_array(struct binder_fd_array_object *fda,
+/**
+ * struct binder_ptr_fixup - data to be fixed-up in target buffer
+ * @offset	offset in target buffer to fixup
+ * @skip_size	bytes to skip in copy (fixup will be written later)
+ * @fixup_data	data to write at fixup offset
+ * @node	list node
+ *
+ * This is used for the pointer fixup list (pf) which is created and consumed
+ * during binder_transaction() and is only accessed locally. No
+ * locking is necessary.
+ *
+ * The list is ordered by @offset.
+ */
+struct binder_ptr_fixup {
+	binder_size_t offset;
+	size_t skip_size;
+	binder_uintptr_t fixup_data;
+	struct list_head node;
+};
+
+/**
+ * struct binder_sg_copy - scatter-gather data to be copied
+ * @offset		offset in target buffer
+ * @sender_uaddr	user address in source buffer
+ * @length		bytes to copy
+ * @node		list node
+ *
+ * This is used for the sg copy list (sgc) which is created and consumed
+ * during binder_transaction() and is only accessed locally. No
+ * locking is necessary.
+ *
+ * The list is ordered by @offset.
+ */
+struct binder_sg_copy {
+	binder_size_t offset;
+	const void __user *sender_uaddr;
+	size_t length;
+	struct list_head node;
+};
+
+/**
+ * binder_do_deferred_txn_copies() - copy and fixup scatter-gather data
+ * @alloc:	binder_alloc associated with @buffer
+ * @buffer:	binder buffer in target process
+ * @sgc_head:	list_head of scatter-gather copy list
+ * @pf_head:	list_head of pointer fixup list
+ *
+ * Processes all elements of @sgc_head, applying fixups from @pf_head
+ * and copying the scatter-gather data from the source process' user
+ * buffer to the target's buffer. It is expected that the list creation
+ * and processing all occurs during binder_transaction() so these lists
+ * are only accessed in local context.
+ *
+ * Return: 0=success, else -errno
+ */
+static int binder_do_deferred_txn_copies(struct binder_alloc *alloc,
+					 struct binder_buffer *buffer,
+					 struct list_head *sgc_head,
+					 struct list_head *pf_head)
+{
+	int ret = 0;
+	struct binder_sg_copy *sgc, *tmpsgc;
+	struct binder_ptr_fixup *tmppf;
+	struct binder_ptr_fixup *pf =
+		list_first_entry_or_null(pf_head, struct binder_ptr_fixup,
+					 node);
+
+	list_for_each_entry_safe(sgc, tmpsgc, sgc_head, node) {
+		size_t bytes_copied = 0;
+
+		while (bytes_copied < sgc->length) {
+			size_t copy_size;
+			size_t bytes_left = sgc->length - bytes_copied;
+			size_t offset = sgc->offset + bytes_copied;
+
+			/*
+			 * We copy up to the fixup (pointed to by pf)
+			 */
+			copy_size = pf ? min(bytes_left, (size_t)pf->offset - offset)
+				       : bytes_left;
+			if (!ret && copy_size)
+				ret = binder_alloc_copy_user_to_buffer(
+						alloc, buffer,
+						offset,
+						sgc->sender_uaddr + bytes_copied,
+						copy_size);
+			bytes_copied += copy_size;
+			if (copy_size != bytes_left) {
+				BUG_ON(!pf);
+				/* we stopped at a fixup offset */
+				if (pf->skip_size) {
+					/*
+					 * we are just skipping. This is for
+					 * BINDER_TYPE_FDA where the translated
+					 * fds will be fixed up when we get
+					 * to target context.
+					 */
+					bytes_copied += pf->skip_size;
+				} else {
+					/* apply the fixup indicated by pf */
+					if (!ret)
+						ret = binder_alloc_copy_to_buffer(
+							alloc, buffer,
+							pf->offset,
+							&pf->fixup_data,
+							sizeof(pf->fixup_data));
+					bytes_copied += sizeof(pf->fixup_data);
+				}
+				list_del(&pf->node);
+				kfree(pf);
+				pf = list_first_entry_or_null(pf_head,
+						struct binder_ptr_fixup, node);
+			}
+		}
+		list_del(&sgc->node);
+		kfree(sgc);
+	}
+	list_for_each_entry_safe(pf, tmppf, pf_head, node) {
+		BUG_ON(pf->skip_size == 0);
+		list_del(&pf->node);
+		kfree(pf);
+	}
+	BUG_ON(!list_empty(sgc_head));
+
+	return ret > 0 ? -EINVAL : ret;
+}
+
+/**
+ * binder_cleanup_deferred_txn_lists() - free specified lists
+ * @sgc_head:	list_head of scatter-gather copy list
+ * @pf_head:	list_head of pointer fixup list
+ *
+ * Called to clean up @sgc_head and @pf_head if there is an
+ * error.
+ */
+static void binder_cleanup_deferred_txn_lists(struct list_head *sgc_head,
+					      struct list_head *pf_head)
+{
+	struct binder_sg_copy *sgc, *tmpsgc;
+	struct binder_ptr_fixup *pf, *tmppf;
+
+	list_for_each_entry_safe(sgc, tmpsgc, sgc_head, node) {
+		list_del(&sgc->node);
+		kfree(sgc);
+	}
+	list_for_each_entry_safe(pf, tmppf, pf_head, node) {
+		list_del(&pf->node);
+		kfree(pf);
+	}
+}
+
+/**
+ * binder_defer_copy() - queue a scatter-gather buffer for copy
+ * @sgc_head:		list_head of scatter-gather copy list
+ * @offset:		binder buffer offset in target process
+ * @sender_uaddr:	user address in source process
+ * @length:		bytes to copy
+ *
+ * Specify a scatter-gather block to be copied. The actual copy must
+ * be deferred until all the needed fixups are identified and queued.
+ * Then the copy and fixups are done together so un-translated values
+ * from the source are never visible in the target buffer.
+ *
+ * We are guaranteed that repeated calls to this function will have
+ * monotonically increasing @offset values so the list will naturally
+ * be ordered.
+ *
+ * Return: 0=success, else -errno
+ */
+static int binder_defer_copy(struct list_head *sgc_head, binder_size_t offset,
+			     const void __user *sender_uaddr, size_t length)
+{
+	struct binder_sg_copy *bc = kzalloc(sizeof(*bc), GFP_KERNEL);
+
+	if (!bc)
+		return -ENOMEM;
+
+	bc->offset = offset;
+	bc->sender_uaddr = sender_uaddr;
+	bc->length = length;
+	INIT_LIST_HEAD(&bc->node);
+
+	/*
+	 * We are guaranteed that the deferred copies are in-order
+	 * so just add to the tail.
+	 */
+	list_add_tail(&bc->node, sgc_head);
+
+	return 0;
+}
+
+/**
+ * binder_add_fixup() - queue a fixup to be applied to sg copy
+ * @pf_head:	list_head of binder ptr fixup list
+ * @offset:	binder buffer offset in target process
+ * @fixup:	bytes to be copied for fixup
+ * @skip_size:	bytes to skip when copying (fixup will be applied later)
+ *
+ * Add the specified fixup to a list ordered by @offset. When copying
+ * the scatter-gather buffers, the fixup will be copied instead of
+ * data from the source buffer. For BINDER_TYPE_FDA fixups, the fixup
+ * will be applied later (in target process context), so we just skip
+ * the bytes specified by @skip_size. If @skip_size is 0, we copy the
+ * value in @fixup.
+ *
+ * This function is called *mostly* in @offset order, but there are
+ * exceptions. Since out-of-order inserts are relatively uncommon,
+ * we insert the new element by searching backward from the tail of
+ * the list.
+ *
+ * Return: 0=success, else -errno
+ */
+static int binder_add_fixup(struct list_head *pf_head, binder_size_t offset,
+			    binder_uintptr_t fixup, size_t skip_size)
+{
+	struct binder_ptr_fixup *pf = kzalloc(sizeof(*pf), GFP_KERNEL);
+	struct binder_ptr_fixup *tmppf;
+
+	if (!pf)
+		return -ENOMEM;
+
+	pf->offset = offset;
+	pf->fixup_data = fixup;
+	pf->skip_size = skip_size;
+	INIT_LIST_HEAD(&pf->node);
+
+	/* Fixups are *mostly* added in-order, but there are some
+	 * exceptions. Look backwards through list for insertion point.
+	 */
+	list_for_each_entry_reverse(tmppf, pf_head, node) {
+		if (tmppf->offset < pf->offset) {
+			list_add(&pf->node, &tmppf->node);
+			return 0;
+		}
+	}
+	/*
+	 * if we get here, then the new offset is the lowest so
+	 * insert at the head
+	 */
+	list_add(&pf->node, pf_head);
+	return 0;
+}
+
+static int binder_translate_fd_array(struct list_head *pf_head,
+				     struct binder_fd_array_object *fda,
+				     const void __user *sender_ubuffer,
 				     struct binder_buffer_object *parent,
+				     struct binder_buffer_object *sender_uparent,
 				     struct binder_transaction *t,
 				     struct binder_thread *thread,
 				     struct binder_transaction *in_reply_to)
 {
 	binder_size_t fdi, fd_buf_size;
 	binder_size_t fda_offset;
+	const void __user *sender_ufda_base;
 	struct binder_proc *proc = thread->proc;
-	struct binder_proc *target_proc = t->to_proc;
+	int ret;
+
+	if (fda->num_fds == 0)
+		return 0;
 
 	fd_buf_size = sizeof(u32) * fda->num_fds;
 	if (fda->num_fds >= SIZE_MAX / sizeof(u32)) {
@@ -2655,29 +2933,36 @@
 	 */
 	fda_offset = (parent->buffer - (uintptr_t)t->buffer->user_data) +
 		fda->parent_offset;
-	if (!IS_ALIGNED((unsigned long)fda_offset, sizeof(u32))) {
+	sender_ufda_base = (void __user *)(uintptr_t)sender_uparent->buffer +
+				fda->parent_offset;
+
+	if (!IS_ALIGNED((unsigned long)fda_offset, sizeof(u32)) ||
+	    !IS_ALIGNED((unsigned long)sender_ufda_base, sizeof(u32))) {
 		binder_user_error("%d:%d parent offset not aligned correctly.\n",
 				  proc->pid, thread->pid);
 		return -EINVAL;
 	}
+	ret = binder_add_fixup(pf_head, fda_offset, 0, fda->num_fds * sizeof(u32));
+	if (ret)
+		return ret;
+
 	for (fdi = 0; fdi < fda->num_fds; fdi++) {
 		u32 fd;
-		int ret;
 		binder_size_t offset = fda_offset + fdi * sizeof(fd);
+		binder_size_t sender_uoffset = fdi * sizeof(fd);
 
-		ret = binder_alloc_copy_from_buffer(&target_proc->alloc,
-						    &fd, t->buffer,
-						    offset, sizeof(fd));
+		ret = copy_from_user(&fd, sender_ufda_base + sender_uoffset, sizeof(fd));
 		if (!ret)
 			ret = binder_translate_fd(fd, offset, t, thread,
 						  in_reply_to);
-		if (ret < 0)
-			return ret;
+		if (ret)
+			return ret > 0 ? -EINVAL : ret;
 	}
 	return 0;
 }
 
-static int binder_fixup_parent(struct binder_transaction *t,
+static int binder_fixup_parent(struct list_head *pf_head,
+			       struct binder_transaction *t,
 			       struct binder_thread *thread,
 			       struct binder_buffer_object *bp,
 			       binder_size_t off_start_offset,
@@ -2723,14 +3008,7 @@
 	}
 	buffer_offset = bp->parent_offset +
 			(uintptr_t)parent->buffer - (uintptr_t)b->user_data;
-	if (binder_alloc_copy_to_buffer(&target_proc->alloc, b, buffer_offset,
-					&bp->buffer, sizeof(bp->buffer))) {
-		binder_user_error("%d:%d got transaction with invalid parent offset\n",
-				  proc->pid, thread->pid);
-		return -EINVAL;
-	}
-
-	return 0;
+	return binder_add_fixup(pf_head, buffer_offset, bp->buffer, 0);
 }
 
 /**
@@ -2851,6 +3129,7 @@
 	binder_size_t off_start_offset, off_end_offset;
 	binder_size_t off_min;
 	binder_size_t sg_buf_offset, sg_buf_end_offset;
+	binder_size_t user_offset = 0;
 	struct binder_proc *target_proc = NULL;
 	struct binder_thread *target_thread = NULL;
 	struct binder_node *target_node = NULL;
@@ -2865,6 +3144,12 @@
 	int t_debug_id = atomic_inc_return(&binder_last_id);
 	char *secctx = NULL;
 	u32 secctx_sz = 0;
+	struct list_head sgc_head;
+	struct list_head pf_head;
+	const void __user *user_buffer = (const void __user *)
+				(uintptr_t)tr->data.ptr.buffer;
+	INIT_LIST_HEAD(&sgc_head);
+	INIT_LIST_HEAD(&pf_head);
 
 	e = binder_transaction_log_add(&binder_transaction_log);
 	e->debug_id = t_debug_id;
@@ -2984,8 +3269,14 @@
 			goto err_dead_binder;
 		}
 		e->to_node = target_node->debug_id;
-		if (security_binder_transaction(proc->tsk,
-						target_proc->tsk) < 0) {
+		if (WARN_ON(proc == target_proc)) {
+			return_error = BR_FAILED_REPLY;
+			return_error_param = -EINVAL;
+			return_error_line = __LINE__;
+			goto err_invalid_target_handle;
+		}
+		if (security_binder_transaction(proc->cred,
+						target_proc->cred) < 0) {
 			return_error = BR_FAILED_REPLY;
 			return_error_param = -EPERM;
 			return_error_line = __LINE__;
@@ -3111,7 +3402,7 @@
 		u32 secid;
 		size_t added_size;
 
-		security_task_getsecid(proc->tsk, &secid);
+		security_cred_getsecid(proc->cred, &secid);
 		ret = security_secid_to_secctx(secid, &secctx, &secctx_sz);
 		if (ret) {
 			return_error = BR_FAILED_REPLY;
@@ -3167,23 +3458,11 @@
 	t->buffer->debug_id = t->debug_id;
 	t->buffer->transaction = t;
 	t->buffer->target_node = target_node;
+	t->buffer->clear_on_free = !!(t->flags & TF_CLEAR_BUF);
 	trace_binder_transaction_alloc_buf(t->buffer);
 
 	if (binder_alloc_copy_user_to_buffer(
 				&target_proc->alloc,
-				t->buffer, 0,
-				(const void __user *)
-					(uintptr_t)tr->data.ptr.buffer,
-				tr->data_size)) {
-		binder_user_error("%d:%d got transaction with invalid data ptr\n",
-				proc->pid, thread->pid);
-		return_error = BR_FAILED_REPLY;
-		return_error_param = -EFAULT;
-		return_error_line = __LINE__;
-		goto err_copy_data_failed;
-	}
-	if (binder_alloc_copy_user_to_buffer(
-				&target_proc->alloc,
 				t->buffer,
 				ALIGN(tr->data_size, sizeof(void *)),
 				(const void __user *)
@@ -3226,6 +3505,7 @@
 		size_t object_size;
 		struct binder_object object;
 		binder_size_t object_offset;
+		binder_size_t copy_size;
 
 		if (binder_alloc_copy_from_buffer(&target_proc->alloc,
 						  &object_offset,
@@ -3237,8 +3517,27 @@
 			return_error_line = __LINE__;
 			goto err_bad_offset;
 		}
-		object_size = binder_get_object(target_proc, t->buffer,
-						object_offset, &object);
+
+		/*
+		 * Copy the source user buffer up to the next object
+		 * that will be processed.
+		 */
+		copy_size = object_offset - user_offset;
+		if (copy_size && (user_offset > object_offset ||
+				binder_alloc_copy_user_to_buffer(
+					&target_proc->alloc,
+					t->buffer, user_offset,
+					user_buffer + user_offset,
+					copy_size))) {
+			binder_user_error("%d:%d got transaction with invalid data ptr\n",
+					proc->pid, thread->pid);
+			return_error = BR_FAILED_REPLY;
+			return_error_param = -EFAULT;
+			return_error_line = __LINE__;
+			goto err_copy_data_failed;
+		}
+		object_size = binder_get_object(target_proc, user_buffer,
+				t->buffer, object_offset, &object);
 		if (object_size == 0 || object_offset < off_min) {
 			binder_user_error("%d:%d got transaction with invalid offset (%lld, min %lld max %lld) or object.\n",
 					  proc->pid, thread->pid,
@@ -3250,6 +3549,11 @@
 			return_error_line = __LINE__;
 			goto err_bad_offset;
 		}
+		/*
+		 * Set offset to the next buffer fragment to be
+		 * copied
+		 */
+		user_offset = object_offset + object_size;
 
 		hdr = &object.hdr;
 		off_min = object_offset + object_size;
@@ -3312,9 +3616,11 @@
 		case BINDER_TYPE_FDA: {
 			struct binder_object ptr_object;
 			binder_size_t parent_offset;
+			struct binder_object user_object;
+			size_t user_parent_size;
 			struct binder_fd_array_object *fda =
 				to_binder_fd_array_object(hdr);
-			size_t num_valid = (buffer_offset - off_start_offset) *
+			size_t num_valid = (buffer_offset - off_start_offset) /
 						sizeof(binder_size_t);
 			struct binder_buffer_object *parent =
 				binder_validate_ptr(target_proc, t->buffer,
@@ -3343,11 +3649,35 @@
 				return_error_line = __LINE__;
 				goto err_bad_parent;
 			}
-			ret = binder_translate_fd_array(fda, parent, t, thread,
-							in_reply_to);
-			if (ret < 0) {
+			/*
+			 * We need to read the user version of the parent
+			 * object to get the original user offset
+			 */
+			user_parent_size =
+				binder_get_object(proc, user_buffer, t->buffer,
+						  parent_offset, &user_object);
+			if (user_parent_size != sizeof(user_object.bbo)) {
+				binder_user_error("%d:%d invalid ptr object size: %zd vs %zd\n",
+						  proc->pid, thread->pid,
+						  user_parent_size,
+						  sizeof(user_object.bbo));
 				return_error = BR_FAILED_REPLY;
-				return_error_param = ret;
+				return_error_param = -EINVAL;
+				return_error_line = __LINE__;
+				goto err_bad_parent;
+			}
+			ret = binder_translate_fd_array(&pf_head, fda,
+							user_buffer, parent,
+							&user_object.bbo, t,
+							thread, in_reply_to);
+			if (!ret)
+				ret = binder_alloc_copy_to_buffer(&target_proc->alloc,
+								  t->buffer,
+								  object_offset,
+								  fda, sizeof(*fda));
+			if (ret) {
+				return_error = BR_FAILED_REPLY;
+				return_error_param = ret > 0 ? -EINVAL : ret;
 				return_error_line = __LINE__;
 				goto err_translate_failed;
 			}
@@ -3369,28 +3699,24 @@
 				return_error_line = __LINE__;
 				goto err_bad_offset;
 			}
-			if (binder_alloc_copy_user_to_buffer(
-						&target_proc->alloc,
-						t->buffer,
-						sg_buf_offset,
-						(const void __user *)
-							(uintptr_t)bp->buffer,
-						bp->length)) {
-				binder_user_error("%d:%d got transaction with invalid offsets ptr\n",
-						  proc->pid, thread->pid);
-				return_error_param = -EFAULT;
+			ret = binder_defer_copy(&sgc_head, sg_buf_offset,
+				(const void __user *)(uintptr_t)bp->buffer,
+				bp->length);
+			if (ret) {
 				return_error = BR_FAILED_REPLY;
+				return_error_param = ret;
 				return_error_line = __LINE__;
-				goto err_copy_data_failed;
+				goto err_translate_failed;
 			}
 			/* Fixup buffer pointer to target proc address space */
 			bp->buffer = (uintptr_t)
 				t->buffer->user_data + sg_buf_offset;
 			sg_buf_offset += ALIGN(bp->length, sizeof(u64));
 
-			num_valid = (buffer_offset - off_start_offset) *
+			num_valid = (buffer_offset - off_start_offset) /
 					sizeof(binder_size_t);
-			ret = binder_fixup_parent(t, thread, bp,
+			ret = binder_fixup_parent(&pf_head, t,
+						  thread, bp,
 						  off_start_offset,
 						  num_valid,
 						  last_fixup_obj_off,
@@ -3417,6 +3743,30 @@
 			goto err_bad_object_type;
 		}
 	}
+	/* Done processing objects, copy the rest of the buffer */
+	if (binder_alloc_copy_user_to_buffer(
+				&target_proc->alloc,
+				t->buffer, user_offset,
+				user_buffer + user_offset,
+				tr->data_size - user_offset)) {
+		binder_user_error("%d:%d got transaction with invalid data ptr\n",
+				proc->pid, thread->pid);
+		return_error = BR_FAILED_REPLY;
+		return_error_param = -EFAULT;
+		return_error_line = __LINE__;
+		goto err_copy_data_failed;
+	}
+
+	ret = binder_do_deferred_txn_copies(&target_proc->alloc, t->buffer,
+					    &sgc_head, &pf_head);
+	if (ret) {
+		binder_user_error("%d:%d got transaction with invalid offsets ptr\n",
+				  proc->pid, thread->pid);
+		return_error = BR_FAILED_REPLY;
+		return_error_param = ret;
+		return_error_line = __LINE__;
+		goto err_copy_data_failed;
+	}
 	tcomplete->type = BINDER_WORK_TRANSACTION_COMPLETE;
 	t->work.type = BINDER_WORK_TRANSACTION;
 
@@ -3483,9 +3833,10 @@
 err_bad_offset:
 err_bad_parent:
 err_copy_data_failed:
+	binder_cleanup_deferred_txn_lists(&sgc_head, &pf_head);
 	binder_free_txn_fixups(t);
 	trace_binder_transaction_failed_buffer_release(t->buffer);
-	binder_transaction_buffer_release(target_proc, t->buffer,
+	binder_transaction_buffer_release(target_proc, NULL, t->buffer,
 					  buffer_offset, true);
 	if (target_node)
 		binder_dec_node_tmpref(target_node);
@@ -3555,6 +3906,7 @@
  * binder_free_buf() - free the specified buffer
  * @proc:	binder proc that owns buffer
  * @buffer:	buffer to be freed
+ * @is_failure:	failed to send transaction
  *
  * If buffer for an async transaction, enqueue the next async
  * transaction from the node.
@@ -3562,7 +3914,9 @@
  * Cleanup buffer and free it.
  */
 static void
-binder_free_buf(struct binder_proc *proc, struct binder_buffer *buffer)
+binder_free_buf(struct binder_proc *proc,
+		struct binder_thread *thread,
+		struct binder_buffer *buffer, bool is_failure)
 {
 	binder_inner_proc_lock(proc);
 	if (buffer->transaction) {
@@ -3590,7 +3944,7 @@
 		binder_node_inner_unlock(buf_node);
 	}
 	trace_binder_transaction_buffer_release(buffer);
-	binder_transaction_buffer_release(proc, buffer, 0, false);
+	binder_release_entire_buffer(proc, thread, buffer, is_failure);
 	binder_alloc_free_buf(&proc->alloc, buffer);
 }
 
@@ -3637,10 +3991,17 @@
 				struct binder_node *ctx_mgr_node;
 				mutex_lock(&context->context_mgr_node_lock);
 				ctx_mgr_node = context->binder_context_mgr_node;
-				if (ctx_mgr_node)
+				if (ctx_mgr_node) {
+					if (ctx_mgr_node->proc == proc) {
+						binder_user_error("%d:%d context manager tried to acquire desc 0\n",
+								  proc->pid, thread->pid);
+						mutex_unlock(&context->context_mgr_node_lock);
+						return -EINVAL;
+					}
 					ret = binder_inc_ref_for_node(
 							proc, ctx_mgr_node,
 							strong, NULL, &rdata);
+				}
 				mutex_unlock(&context->context_mgr_node_lock);
 			}
 			if (ret)
@@ -3784,7 +4145,7 @@
 				     proc->pid, thread->pid, (u64)data_ptr,
 				     buffer->debug_id,
 				     buffer->transaction ? "active" : "finished");
-			binder_free_buf(proc, buffer);
+			binder_free_buf(proc, thread, buffer, false);
 			break;
 		}
 
@@ -4472,7 +4833,7 @@
 			buffer->transaction = NULL;
 			binder_cleanup_transaction(t, "fd fixups failed",
 						   BR_FAILED_REPLY);
-			binder_free_buf(proc, buffer);
+			binder_free_buf(proc, thread, buffer, true);
 			binder_debug(BINDER_DEBUG_FAILED_TRANSACTION,
 				     "%d:%d %stransaction %d fd fixups failed %d/%d, line %d\n",
 				     proc->pid, thread->pid,
@@ -4578,13 +4939,17 @@
 				struct list_head *list)
 {
 	struct binder_work *w;
+	enum binder_work_type wtype;
 
 	while (1) {
-		w = binder_dequeue_work_head(proc, list);
+		binder_inner_proc_lock(proc);
+		w = binder_dequeue_work_head_ilocked(list);
+		wtype = w ? w->type : 0;
+		binder_inner_proc_unlock(proc);
 		if (!w)
 			return;
 
-		switch (w->type) {
+		switch (wtype) {
 		case BINDER_WORK_TRANSACTION: {
 			struct binder_transaction *t;
 
@@ -4618,9 +4983,11 @@
 			kfree(death);
 			binder_stats_deleted(BINDER_STAT_DEATH);
 		} break;
+		case BINDER_WORK_NODE:
+			break;
 		default:
 			pr_err("unexpected work type, %d, not freed\n",
-			       w->type);
+			       wtype);
 			break;
 		}
 	}
@@ -4688,10 +5055,18 @@
 
 static void binder_free_proc(struct binder_proc *proc)
 {
+	struct binder_device *device;
+
 	BUG_ON(!list_empty(&proc->todo));
 	BUG_ON(!list_empty(&proc->delivered_death));
+	device = container_of(proc->context, struct binder_device, context);
+	if (refcount_dec_and_test(&device->ref)) {
+		kfree(proc->context->name);
+		kfree(device);
+	}
 	binder_alloc_deferred_release(&proc->alloc);
 	put_task_struct(proc->tsk);
+	put_cred(proc->cred);
 	binder_stats_deleted(BINDER_STAT_PROC);
 	kfree(proc);
 }
@@ -4768,23 +5143,20 @@
 	__release(&t->lock);
 
 	/*
-	 * If this thread used poll, make sure we remove the waitqueue
-	 * from any epoll data structures holding it with POLLFREE.
-	 * waitqueue_active() is safe to use here because we're holding
-	 * the inner lock.
+	 * If this thread used poll, make sure we remove the waitqueue from any
+	 * poll data structures holding it.
 	 */
-	if ((thread->looper & BINDER_LOOPER_STATE_POLL) &&
-	    waitqueue_active(&thread->wait)) {
-		wake_up_poll(&thread->wait, EPOLLHUP | POLLFREE);
-	}
+	if (thread->looper & BINDER_LOOPER_STATE_POLL)
+		wake_up_pollfree(&thread->wait);
 
 	binder_inner_proc_unlock(thread->proc);
 
 	/*
-	 * This is needed to avoid races between wake_up_poll() above and
-	 * and ep_remove_waitqueue() called for other reasons (eg the epoll file
-	 * descriptor being closed); ep_remove_waitqueue() holds an RCU read
-	 * lock, so we can be sure it's done after calling synchronize_rcu().
+	 * This is needed to avoid races between wake_up_pollfree() above and
+	 * someone else removing the last entry from the queue for other reasons
+	 * (e.g. ep_remove_wait_queue() being called due to an epoll file
+	 * descriptor being closed).  Such other users hold an RCU read lock, so
+	 * we can be sure they're done after we call synchronize_rcu().
 	 */
 	if (thread->looper & BINDER_LOOPER_STATE_POLL)
 		synchronize_rcu();
@@ -4902,7 +5274,7 @@
 		ret = -EBUSY;
 		goto out;
 	}
-	ret = security_binder_set_context_mgr(proc->tsk);
+	ret = security_binder_set_context_mgr(proc->cred);
 	if (ret < 0)
 		goto out;
 	if (uid_valid(context->binder_context_mgr_uid)) {
@@ -5203,10 +5575,11 @@
 
 static int binder_open(struct inode *nodp, struct file *filp)
 {
-	struct binder_proc *proc;
+	struct binder_proc *proc, *itr;
 	struct binder_device *binder_dev;
 	struct binderfs_info *info;
 	struct dentry *binder_binderfs_dir_entry_proc = NULL;
+	bool existing_pid = false;
 
 	binder_debug(BINDER_DEBUG_OPEN_CLOSE, "%s: %d:%d\n", __func__,
 		     current->group_leader->pid, current->pid);
@@ -5218,6 +5591,7 @@
 	spin_lock_init(&proc->outer_lock);
 	get_task_struct(current->group_leader);
 	proc->tsk = current->group_leader;
+	proc->cred = get_cred(filp->f_cred);
 	INIT_LIST_HEAD(&proc->todo);
 	proc->default_priority = task_nice(current);
 	/* binderfs stashes devices in i_private */
@@ -5229,6 +5603,7 @@
 		binder_dev = container_of(filp->private_data,
 					  struct binder_device, miscdev);
 	}
+	refcount_inc(&binder_dev->ref);
 	proc->context = &binder_dev->context;
 	binder_alloc_init(&proc->alloc);
 
@@ -5239,19 +5614,24 @@
 	filp->private_data = proc;
 
 	mutex_lock(&binder_procs_lock);
+	hlist_for_each_entry(itr, &binder_procs, proc_node) {
+		if (itr->pid == proc->pid) {
+			existing_pid = true;
+			break;
+		}
+	}
 	hlist_add_head(&proc->proc_node, &binder_procs);
 	mutex_unlock(&binder_procs_lock);
 
-	if (binder_debugfs_dir_entry_proc) {
+	if (binder_debugfs_dir_entry_proc && !existing_pid) {
 		char strbuf[11];
 
 		snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
 		/*
-		 * proc debug entries are shared between contexts, so
-		 * this will fail if the process tries to open the driver
-		 * again with a different context. The priting code will
-		 * anyway print all contexts that a given PID has, so this
-		 * is not a problem.
+		 * proc debug entries are shared between contexts.
+		 * Only create for the first PID to avoid debugfs log spamming
+		 * The printing code will anyway print all contexts for a given
+		 * PID so this is not a problem.
 		 */
 		proc->debugfs_entry = debugfs_create_file(strbuf, 0444,
 			binder_debugfs_dir_entry_proc,
@@ -5259,19 +5639,16 @@
 			&proc_fops);
 	}
 
-	if (binder_binderfs_dir_entry_proc) {
+	if (binder_binderfs_dir_entry_proc && !existing_pid) {
 		char strbuf[11];
 		struct dentry *binderfs_entry;
 
 		snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
 		/*
 		 * Similar to debugfs, the process specific log file is shared
-		 * between contexts. If the file has already been created for a
-		 * process, the following binderfs_create_file() call will
-		 * fail with error code EEXIST if another context of the same
-		 * process invoked binder_open(). This is ok since same as
-		 * debugfs, the log file will contain information on all
-		 * contexts of a given PID.
+		 * between contexts. Only create for the first PID.
+		 * This is ok since same as debugfs, the log file will contain
+		 * information on all contexts of a given PID.
 		 */
 		binderfs_entry = binderfs_create_file(binder_binderfs_dir_entry_proc,
 			strbuf, &proc_fops, (void *)(unsigned long)proc->pid);
@@ -5281,10 +5658,8 @@
 			int error;
 
 			error = PTR_ERR(binderfs_entry);
-			if (error != -EEXIST) {
-				pr_warn("Unable to create file %s in binderfs (error %d)\n",
-					strbuf, error);
-			}
+			pr_warn("Unable to create file %s in binderfs (error %d)\n",
+				strbuf, error);
 		}
 	}
 
@@ -6063,6 +6438,7 @@
 	.open = binder_open,
 	.flush = binder_flush,
 	.release = binder_release,
+	.may_pollfree = true,
 };
 
 static int __init init_binder_device(const char *name)
@@ -6078,6 +6454,7 @@
 	binder_device->miscdev.minor = MISC_DYNAMIC_MINOR;
 	binder_device->miscdev.name = name;
 
+	refcount_set(&binder_device->ref, 1);
 	binder_device->context.binder_context_mgr_uid = INVALID_UID;
 	binder_device->context.name = name;
 	mutex_init(&binder_device->context.context_mgr_node_lock);
@@ -6178,13 +6555,25 @@
 
 err_alloc_device_names_failed:
 	debugfs_remove_recursive(binder_debugfs_dir_entry_root);
+	binder_alloc_shrinker_exit();
 
 	return ret;
 }
 
-device_initcall(binder_init);
+module_init(binder_init);
+/*
+ * binder will have no exit function since binderfs instances can be mounted
+ * multiple times and also in user namespaces finding and destroying them all
+ * is not feasible without introducing insane locking. Just ignoring existing
+ * instances on module unload also wouldn't work since we would loose track of
+ * what major numer was dynamically allocated and also what minor numbers are
+ * already given out. So this would get us into all kinds of issues with device
+ * number reuse. So simply don't allow unloading unless we are forced to do so.
+ */
+
+MODULE_AUTHOR("Google, Inc.");
+MODULE_DESCRIPTION("Driver for Android binder device");
+MODULE_LICENSE("GPL v2");
 
 #define CREATE_TRACE_POINTS
 #include "binder_trace.h"
-
-MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/android/binder_alloc.c
+++ linux-ein-5.4.0/drivers/android/binder_alloc.c
@@ -38,8 +38,7 @@
 };
 static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR;
 
-module_param_named(debug_mask, binder_alloc_debug_mask,
-		   uint, 0644);
+module_param_named(alloc_debug_mask, binder_alloc_debug_mask, uint, 0644);
 
 #define binder_alloc_debug(mask, x...) \
 	do { \
@@ -212,7 +211,7 @@
 		mm = alloc->vma_vm_mm;
 
 	if (mm) {
-		down_read(&mm->mmap_sem);
+		down_write(&mm->mmap_sem);
 		vma = alloc->vma;
 	}
 
@@ -271,14 +270,13 @@
 		/* vm_insert_page does not seem to increment the refcount */
 	}
 	if (mm) {
-		up_read(&mm->mmap_sem);
+		up_write(&mm->mmap_sem);
 		mmput(mm);
 	}
 	return 0;
 
 free_range:
-	for (page_addr = end - PAGE_SIZE; page_addr >= start;
-	     page_addr -= PAGE_SIZE) {
+	for (page_addr = end - PAGE_SIZE; 1; page_addr -= PAGE_SIZE) {
 		bool ret;
 		size_t index;
 
@@ -291,6 +289,8 @@
 		WARN_ON(!ret);
 
 		trace_binder_free_lru_end(alloc, index);
+		if (page_addr == start)
+			break;
 		continue;
 
 err_vm_insert_page_failed:
@@ -298,11 +298,12 @@
 		page->page_ptr = NULL;
 err_alloc_page_failed:
 err_page_ptr_cleared:
-		;
+		if (page_addr == start)
+			break;
 	}
 err_no_vma:
 	if (mm) {
-		up_read(&mm->mmap_sem);
+		up_write(&mm->mmap_sem);
 		mmput(mm);
 	}
 	return vma ? -ENOMEM : -ESRCH;
@@ -611,7 +612,7 @@
 	BUG_ON(buffer->user_data > alloc->buffer + alloc->buffer_size);
 
 	if (buffer->async_transaction) {
-		alloc->free_async_space += size + sizeof(struct binder_buffer);
+		alloc->free_async_space += buffer_size + sizeof(struct binder_buffer);
 
 		binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC_ASYNC,
 			     "%d: binder_free_buf size %zd async free %zd\n",
@@ -645,6 +646,8 @@
 	binder_insert_free_buffer(alloc, buffer);
 }
 
+static void binder_alloc_clear_buf(struct binder_alloc *alloc,
+				   struct binder_buffer *buffer);
 /**
  * binder_alloc_free_buf() - free a binder buffer
  * @alloc:	binder_alloc for this proc
@@ -655,6 +658,18 @@
 void binder_alloc_free_buf(struct binder_alloc *alloc,
 			    struct binder_buffer *buffer)
 {
+	/*
+	 * We could eliminate the call to binder_alloc_clear_buf()
+	 * from binder_alloc_deferred_release() by moving this to
+	 * binder_alloc_free_buf_locked(). However, that could
+	 * increase contention for the alloc mutex if clear_on_free
+	 * is used frequently for large buffers. The mutex is not
+	 * needed for correctness here.
+	 */
+	if (buffer->clear_on_free) {
+		binder_alloc_clear_buf(alloc, buffer);
+		buffer->clear_on_free = false;
+	}
 	mutex_lock(&alloc->mutex);
 	binder_free_buf_locked(alloc, buffer);
 	mutex_unlock(&alloc->mutex);
@@ -681,17 +696,17 @@
 	struct binder_buffer *buffer;
 
 	mutex_lock(&binder_alloc_mmap_lock);
-	if (alloc->buffer) {
+	if (alloc->buffer_size) {
 		ret = -EBUSY;
 		failure_string = "already mapped";
 		goto err_already_mapped;
 	}
+	alloc->buffer_size = min_t(unsigned long, vma->vm_end - vma->vm_start,
+				   SZ_4M);
+	mutex_unlock(&binder_alloc_mmap_lock);
 
 	alloc->buffer = (void __user *)vma->vm_start;
-	mutex_unlock(&binder_alloc_mmap_lock);
 
-	alloc->buffer_size = min_t(unsigned long, vma->vm_end - vma->vm_start,
-				   SZ_4M);
 	alloc->pages = kcalloc(alloc->buffer_size / PAGE_SIZE,
 			       sizeof(alloc->pages[0]),
 			       GFP_KERNEL);
@@ -722,8 +737,9 @@
 	kfree(alloc->pages);
 	alloc->pages = NULL;
 err_alloc_pages_failed:
-	mutex_lock(&binder_alloc_mmap_lock);
 	alloc->buffer = NULL;
+	mutex_lock(&binder_alloc_mmap_lock);
+	alloc->buffer_size = 0;
 err_already_mapped:
 	mutex_unlock(&binder_alloc_mmap_lock);
 	binder_alloc_debug(BINDER_DEBUG_USER_ERROR,
@@ -750,6 +766,10 @@
 		/* Transaction should already have been freed */
 		BUG_ON(buffer->transaction);
 
+		if (buffer->clear_on_free) {
+			binder_alloc_clear_buf(alloc, buffer);
+			buffer->clear_on_free = false;
+		}
 		binder_free_buf_locked(alloc, buffer);
 		buffers++;
 	}
@@ -841,14 +861,20 @@
 	int free = 0;
 
 	mutex_lock(&alloc->mutex);
-	for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) {
-		page = &alloc->pages[i];
-		if (!page->page_ptr)
-			free++;
-		else if (list_empty(&page->lru))
-			active++;
-		else
-			lru++;
+	/*
+	 * Make sure the binder_alloc is fully initialized, otherwise we might
+	 * read inconsistent state.
+	 */
+	if (binder_alloc_get_vma(alloc) != NULL) {
+		for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) {
+			page = &alloc->pages[i];
+			if (!page->page_ptr)
+				free++;
+			else if (list_empty(&page->lru))
+				active++;
+			else
+				lru++;
+		}
 	}
 	mutex_unlock(&alloc->mutex);
 	seq_printf(m, "  pages: %d:%d:%d\n", active, lru, free);
@@ -939,7 +965,7 @@
 		trace_binder_unmap_user_end(alloc, index);
 	}
 	up_read(&mm->mmap_sem);
-	mmput(mm);
+	mmput_async(mm);
 
 	trace_binder_unmap_kernel_start(alloc, index);
 
@@ -1010,6 +1036,12 @@
 	return ret;
 }
 
+void binder_alloc_shrinker_exit(void)
+{
+	unregister_shrinker(&binder_shrinker);
+	list_lru_destroy(&binder_alloc_lru);
+}
+
 /**
  * check_buffer() - verify that buffer/offset is safe to access
  * @alloc: binder_alloc for this proc
@@ -1078,6 +1110,36 @@
 }
 
 /**
+ * binder_alloc_clear_buf() - zero out buffer
+ * @alloc: binder_alloc for this proc
+ * @buffer: binder buffer to be cleared
+ *
+ * memset the given buffer to 0
+ */
+static void binder_alloc_clear_buf(struct binder_alloc *alloc,
+				   struct binder_buffer *buffer)
+{
+	size_t bytes = binder_alloc_buffer_size(alloc, buffer);
+	binder_size_t buffer_offset = 0;
+
+	while (bytes) {
+		unsigned long size;
+		struct page *page;
+		pgoff_t pgoff;
+		void *kptr;
+
+		page = binder_alloc_get_page(alloc, buffer,
+					     buffer_offset, &pgoff);
+		size = min_t(size_t, bytes, PAGE_SIZE - pgoff);
+		kptr = kmap(page) + pgoff;
+		memset(kptr, 0, size);
+		kunmap(page);
+		bytes -= size;
+		buffer_offset += size;
+	}
+}
+
+/**
  * binder_alloc_copy_user_to_buffer() - copy src user to tgt user
  * @alloc: binder_alloc for this proc
  * @buffer: binder buffer to be accessed
--- linux-ein-5.4.0.orig/drivers/android/binder_alloc.h
+++ linux-ein-5.4.0/drivers/android/binder_alloc.h
@@ -6,6 +6,7 @@
 #ifndef _LINUX_BINDER_ALLOC_H
 #define _LINUX_BINDER_ALLOC_H
 
+#include <linux/kconfig.h>
 #include <linux/rbtree.h>
 #include <linux/list.h>
 #include <linux/mm.h>
@@ -23,6 +24,7 @@
  * @entry:              entry alloc->buffers
  * @rb_node:            node for allocated_buffers/free_buffers rb trees
  * @free:               %true if buffer is free
+ * @clear_on_free:      %true if buffer must be zeroed after use
  * @allow_user_free:    %true if user is allowed to free buffer
  * @async_transaction:  %true if buffer is in use for an async txn
  * @debug_id:           unique ID for debugging
@@ -40,9 +42,10 @@
 	struct rb_node rb_node; /* free entry by size or allocated entry */
 				/* by address */
 	unsigned free:1;
+	unsigned clear_on_free:1;
 	unsigned allow_user_free:1;
 	unsigned async_transaction:1;
-	unsigned debug_id:29;
+	unsigned debug_id:28;
 
 	struct binder_transaction *transaction;
 
@@ -105,7 +108,7 @@
 	size_t pages_high;
 };
 
-#ifdef CONFIG_ANDROID_BINDER_IPC_SELFTEST
+#if IS_ENABLED(CONFIG_ANDROID_BINDER_IPC_SELFTEST)
 void binder_selftest_alloc(struct binder_alloc *alloc);
 #else
 static inline void binder_selftest_alloc(struct binder_alloc *alloc) {}
@@ -120,6 +123,7 @@
 						  int is_async);
 extern void binder_alloc_init(struct binder_alloc *alloc);
 extern int binder_alloc_shrinker_init(void);
+extern void binder_alloc_shrinker_exit(void);
 extern void binder_alloc_vma_close(struct binder_alloc *alloc);
 extern struct binder_buffer *
 binder_alloc_prepare_to_free(struct binder_alloc *alloc,
--- linux-ein-5.4.0.orig/drivers/android/binder_internal.h
+++ linux-ein-5.4.0/drivers/android/binder_internal.h
@@ -5,9 +5,11 @@
 
 #include <linux/export.h>
 #include <linux/fs.h>
+#include <linux/kconfig.h>
 #include <linux/list.h>
 #include <linux/miscdevice.h>
 #include <linux/mutex.h>
+#include <linux/refcount.h>
 #include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/uidgid.h>
@@ -33,6 +35,7 @@
 	struct miscdevice miscdev;
 	struct binder_context context;
 	struct inode *binderfs_inode;
+	refcount_t ref;
 };
 
 /**
@@ -73,7 +76,7 @@
 
 extern char *binder_devices_param;
 
-#ifdef CONFIG_ANDROID_BINDERFS
+#if IS_ENABLED(CONFIG_ANDROID_BINDERFS)
 extern bool is_binderfs_device(const struct inode *inode);
 extern struct dentry *binderfs_create_file(struct dentry *dir, const char *name,
 					   const struct file_operations *fops,
@@ -94,7 +97,7 @@
 static inline void binderfs_remove_file(struct dentry *dentry) {}
 #endif
 
-#ifdef CONFIG_ANDROID_BINDERFS
+#if IS_ENABLED(CONFIG_ANDROID_BINDERFS)
 extern int __init init_binderfs(void);
 #else
 static inline int __init init_binderfs(void)
--- linux-ein-5.4.0.orig/drivers/android/binderfs.c
+++ linux-ein-5.4.0/drivers/android/binderfs.c
@@ -109,7 +109,7 @@
 	struct super_block *sb = ref_inode->i_sb;
 	struct binderfs_info *info = sb->s_fs_info;
 #if defined(CONFIG_IPC_NS)
-	bool use_reserve = (info->ipc_ns == &init_ipc_ns);
+	bool use_reserve = (info->ipc_ns == show_init_ipc_ns());
 #else
 	bool use_reserve = true;
 #endif
@@ -154,6 +154,7 @@
 	if (!name)
 		goto err;
 
+	refcount_set(&device->ref, 1);
 	device->binderfs_inode = inode;
 	device->context.binder_context_mgr_uid = INVALID_UID;
 	device->context.name = name;
@@ -257,8 +258,10 @@
 	ida_free(&binderfs_minors, device->miscdev.minor);
 	mutex_unlock(&binderfs_minors_mutex);
 
-	kfree(device->context.name);
-	kfree(device);
+	if (refcount_dec_and_test(&device->ref)) {
+		kfree(device->context.name);
+		kfree(device);
+	}
 }
 
 /**
@@ -405,7 +408,7 @@
 	struct dentry *root = sb->s_root;
 	struct binderfs_info *info = sb->s_fs_info;
 #if defined(CONFIG_IPC_NS)
-	bool use_reserve = (info->ipc_ns == &init_ipc_ns);
+	bool use_reserve = (info->ipc_ns == show_init_ipc_ns());
 #else
 	bool use_reserve = true;
 #endif
@@ -445,6 +448,7 @@
 	inode->i_uid = info->root_uid;
 	inode->i_gid = info->root_gid;
 
+	refcount_set(&device->ref, 1);
 	device->binderfs_inode = inode;
 	device->miscdev.minor = minor;
 
@@ -683,7 +687,7 @@
 		return -ENOMEM;
 	info = sb->s_fs_info;
 
-	info->ipc_ns = get_ipc_ns(current->nsproxy->ipc_ns);
+	info->ipc_ns = get_ipc_ns_exported(current->nsproxy->ipc_ns);
 
 	ret = binderfs_parse_mount_opts(data, &info->mount_opts);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/ata/acard-ahci.c
+++ linux-ein-5.4.0/drivers/ata/acard-ahci.c
@@ -56,7 +56,7 @@
 	__le32			size;	 /* bit 31 (EOT) max==0x10000 (64k) */
 };
 
-static void acard_ahci_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors acard_ahci_qc_prep(struct ata_queued_cmd *qc);
 static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
 static int acard_ahci_port_start(struct ata_port *ap);
 static int acard_ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
@@ -210,7 +210,7 @@
 	return si;
 }
 
-static void acard_ahci_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors acard_ahci_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct ahci_port_priv *pp = ap->private_data;
@@ -248,6 +248,8 @@
 		opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH;
 
 	ahci_fill_cmd_slot(pp, qc->hw_tag, opts);
+
+	return AC_ERR_OK;
 }
 
 static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc)
--- linux-ein-5.4.0.orig/drivers/ata/ahci.c
+++ linux-ein-5.4.0/drivers/ata/ahci.c
@@ -80,6 +80,8 @@
 
 static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static void ahci_remove_one(struct pci_dev *dev);
+static void ahci_shutdown_one(struct pci_dev *dev);
+static void ahci_intel_pcs_quirk(struct pci_dev *pdev, struct ahci_host_priv *hpriv);
 static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
 				 unsigned long deadline);
 static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
@@ -236,6 +238,7 @@
 
 static const struct pci_device_id ahci_pci_tbl[] = {
 	/* Intel */
+	{ PCI_VDEVICE(INTEL, 0x06d6), board_ahci }, /* Comet Lake PCH-H RAID */
 	{ PCI_VDEVICE(INTEL, 0x2652), board_ahci }, /* ICH6 */
 	{ PCI_VDEVICE(INTEL, 0x2653), board_ahci }, /* ICH6M */
 	{ PCI_VDEVICE(INTEL, 0x27c1), board_ahci }, /* ICH7 */
@@ -392,11 +395,13 @@
 	{ PCI_VDEVICE(INTEL, 0xa252), board_ahci }, /* Lewisburg RAID*/
 	{ PCI_VDEVICE(INTEL, 0xa256), board_ahci }, /* Lewisburg RAID*/
 	{ PCI_VDEVICE(INTEL, 0xa356), board_ahci }, /* Cannon Lake PCH-H RAID */
+	{ PCI_VDEVICE(INTEL, 0x06d7), board_ahci }, /* Comet Lake-H RAID */
 	{ PCI_VDEVICE(INTEL, 0x0f22), board_ahci_mobile }, /* Bay Trail AHCI */
 	{ PCI_VDEVICE(INTEL, 0x0f23), board_ahci_mobile }, /* Bay Trail AHCI */
 	{ PCI_VDEVICE(INTEL, 0x22a3), board_ahci_mobile }, /* Cherry Tr. AHCI */
 	{ PCI_VDEVICE(INTEL, 0x5ae3), board_ahci_mobile }, /* ApolloLake AHCI */
 	{ PCI_VDEVICE(INTEL, 0x34d3), board_ahci_mobile }, /* Ice Lake LP AHCI */
+	{ PCI_VDEVICE(INTEL, 0x02d7), board_ahci_mobile }, /* Comet Lake PCH RAID */
 
 	/* JMicron 360/1/3/5/6, match class to avoid IDE function */
 	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -418,6 +423,7 @@
 	/* AMD */
 	{ PCI_VDEVICE(AMD, 0x7800), board_ahci }, /* AMD Hudson-2 */
 	{ PCI_VDEVICE(AMD, 0x7900), board_ahci }, /* AMD CZ */
+	{ PCI_VDEVICE(AMD, 0x7901), board_ahci_mobile }, /* AMD Green Sardine */
 	/* AMD is using RAID class only for ahci controllers */
 	{ PCI_VENDOR_ID_AMD, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
 	  PCI_CLASS_STORAGE_RAID << 8, 0xffffff, board_ahci },
@@ -593,6 +599,7 @@
 	.id_table		= ahci_pci_tbl,
 	.probe			= ahci_init_one,
 	.remove			= ahci_remove_one,
+	.shutdown		= ahci_shutdown_one,
 	.driver = {
 		.pm		= &ahci_pci_pm_ops,
 	},
@@ -635,6 +642,25 @@
 	ahci_save_initial_config(&pdev->dev, hpriv);
 }
 
+static int ahci_pci_reset_controller(struct ata_host *host)
+{
+	struct pci_dev *pdev = to_pci_dev(host->dev);
+	struct ahci_host_priv *hpriv = host->private_data;
+	int rc;
+
+	rc = ahci_reset_controller(host);
+	if (rc)
+		return rc;
+
+	/*
+	 * If platform firmware failed to enable ports, try to enable
+	 * them here.
+	 */
+	ahci_intel_pcs_quirk(pdev, hpriv);
+
+	return 0;
+}
+
 static void ahci_pci_init_controller(struct ata_host *host)
 {
 	struct ahci_host_priv *hpriv = host->private_data;
@@ -837,7 +863,7 @@
 	struct ata_host *host = pci_get_drvdata(pdev);
 	int rc;
 
-	rc = ahci_reset_controller(host);
+	rc = ahci_pci_reset_controller(host);
 	if (rc)
 		return rc;
 	ahci_pci_init_controller(host);
@@ -872,7 +898,7 @@
 		ahci_mcp89_apple_enable(pdev);
 
 	if (pdev->dev.power.power_state.event == PM_EVENT_SUSPEND) {
-		rc = ahci_reset_controller(host);
+		rc = ahci_pci_reset_controller(host);
 		if (rc)
 			return rc;
 
@@ -1473,7 +1499,7 @@
 static void ahci_remap_check(struct pci_dev *pdev, int bar,
 		struct ahci_host_priv *hpriv)
 {
-	int i, count = 0;
+	int i;
 	u32 cap;
 
 	/*
@@ -1494,13 +1520,14 @@
 			continue;
 
 		/* We've found a remapped device */
-		count++;
+		hpriv->remapped_nvme++;
 	}
 
-	if (!count)
+	if (!hpriv->remapped_nvme)
 		return;
 
-	dev_warn(&pdev->dev, "Found %d remapped NVMe devices.\n", count);
+	dev_warn(&pdev->dev, "Found %u remapped NVMe devices.\n",
+		 hpriv->remapped_nvme);
 	dev_warn(&pdev->dev,
 		 "Switch your BIOS from RAID to AHCI mode to use them.\n");
 
@@ -1620,6 +1647,18 @@
 	}
 }
 
+static ssize_t remapped_nvme_show(struct device *dev,
+				  struct device_attribute *attr,
+				  char *buf)
+{
+	struct ata_host *host = dev_get_drvdata(dev);
+	struct ahci_host_priv *hpriv = host->private_data;
+
+	return sprintf(buf, "%u\n", hpriv->remapped_nvme);
+}
+
+static DEVICE_ATTR_RO(remapped_nvme);
+
 static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	unsigned int board_id = ent->driver_data;
@@ -1720,11 +1759,20 @@
 	/* detect remapped nvme devices */
 	ahci_remap_check(pdev, ahci_pci_bar, hpriv);
 
+	sysfs_add_file_to_group(&pdev->dev.kobj,
+				&dev_attr_remapped_nvme.attr,
+				NULL);
+
 	/* must set flag prior to save config in order to take effect */
 	if (ahci_broken_devslp(pdev))
 		hpriv->flags |= AHCI_HFLAG_NO_DEVSLP;
 
 #ifdef CONFIG_ARM64
+	if (pdev->vendor == PCI_VENDOR_ID_HUAWEI &&
+	    pdev->device == 0xa235 &&
+	    pdev->revision < 0x30)
+		hpriv->flags |= AHCI_HFLAG_NO_SXS;
+
 	if (pdev->vendor == 0x177d && pdev->device == 0xa01c)
 		hpriv->irq_handler = ahci_thunderx_irq_handler;
 #endif
@@ -1732,12 +1780,6 @@
 	/* save initial config */
 	ahci_pci_save_initial_config(pdev, hpriv);
 
-	/*
-	 * If platform firmware failed to enable ports, try to enable
-	 * them here.
-	 */
-	ahci_intel_pcs_quirk(pdev, hpriv);
-
 	/* prepare host */
 	if (hpriv->cap & HOST_CAP_NCQ) {
 		pi.flags |= ATA_FLAG_NCQ;
@@ -1815,6 +1857,15 @@
 	else
 		dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n");
 
+	if (!(hpriv->cap & HOST_CAP_PART))
+		host->flags |= ATA_HOST_NO_PART;
+
+	if (!(hpriv->cap & HOST_CAP_SSC))
+		host->flags |= ATA_HOST_NO_SSC;
+
+	if (!(hpriv->cap2 & HOST_CAP2_SDS))
+		host->flags |= ATA_HOST_NO_DEVSLP;
+
 	if (pi.flags & ATA_FLAG_EM)
 		ahci_reset_em(host);
 
@@ -1847,7 +1898,7 @@
 	if (rc)
 		return rc;
 
-	rc = ahci_reset_controller(host);
+	rc = ahci_pci_reset_controller(host);
 	if (rc)
 		return rc;
 
@@ -1864,8 +1915,16 @@
 	return 0;
 }
 
+static void ahci_shutdown_one(struct pci_dev *pdev)
+{
+	ata_pci_shutdown_one(pdev);
+}
+
 static void ahci_remove_one(struct pci_dev *pdev)
 {
+	sysfs_remove_file_from_group(&pdev->dev.kobj,
+				     &dev_attr_remapped_nvme.attr,
+				     NULL);
 	pm_runtime_get_noresume(&pdev->dev);
 	ata_pci_remove_one(pdev);
 }
--- linux-ein-5.4.0.orig/drivers/ata/ahci.h
+++ linux-ein-5.4.0/drivers/ata/ahci.h
@@ -240,6 +240,9 @@
 							as default lpm_policy */
 	AHCI_HFLAG_SUSPEND_PHYS		= (1 << 26), /* handle PHYs during
 							suspend/resume */
+	AHCI_HFLAG_IGN_NOTSUPP_POWER_ON	= (1 << 27), /* ignore -EOPNOTSUPP
+							from phy_power_on() */
+	AHCI_HFLAG_NO_SXS		= (1 << 28), /* SXS not supported */
 
 	/* ap->flags bits */
 
@@ -251,7 +254,7 @@
 	PCS_7				= 0x94, /* 7+ port PCS (Denverton) */
 
 	/* em constants */
-	EM_MAX_SLOTS			= 8,
+	EM_MAX_SLOTS			= SATA_PMP_MAX_PORTS,
 	EM_MAX_RETRY			= 5,
 
 	/* em_ctl bits */
@@ -336,6 +339,7 @@
 	u32 			em_loc; /* enclosure management location */
 	u32			em_buf_sz;	/* EM buffer size in byte */
 	u32			em_msg_type;	/* EM message type */
+	u32			remapped_nvme;	/* NVMe remapped device count */
 	bool			got_runtime_pm; /* Did we do pm_runtime_get? */
 	struct clk		*clks[AHCI_MAX_CLKS]; /* Optional */
 	struct reset_control	*rsts;		/* Optional */
--- linux-ein-5.4.0.orig/drivers/ata/ahci_brcm.c
+++ linux-ein-5.4.0/drivers/ata/ahci_brcm.c
@@ -76,8 +76,7 @@
 };
 
 enum brcm_ahci_quirks {
-	BRCM_AHCI_QUIRK_NO_NCQ		= BIT(0),
-	BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE	= BIT(1),
+	BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE	= BIT(0),
 };
 
 struct brcm_ahci_priv {
@@ -213,19 +212,12 @@
 			brcm_sata_phy_disable(priv, i);
 }
 
-static u32 brcm_ahci_get_portmask(struct platform_device *pdev,
+static u32 brcm_ahci_get_portmask(struct ahci_host_priv *hpriv,
 				  struct brcm_ahci_priv *priv)
 {
-	void __iomem *ahci;
-	struct resource *res;
 	u32 impl;
 
-	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ahci");
-	ahci = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(ahci))
-		return 0;
-
-	impl = readl(ahci + HOST_PORTS_IMPL);
+	impl = readl(hpriv->mmio + HOST_PORTS_IMPL);
 
 	if (fls(impl) > SATA_TOP_MAX_PHYS)
 		dev_warn(priv->dev, "warning: more ports than PHYs (%#x)\n",
@@ -233,9 +225,6 @@
 	else if (!impl)
 		dev_info(priv->dev, "no ports found\n");
 
-	devm_iounmap(&pdev->dev, ahci);
-	devm_release_mem_region(&pdev->dev, res->start, resource_size(res));
-
 	return impl;
 }
 
@@ -285,6 +274,13 @@
 	/* Perform the SATA PHY reset sequence */
 	brcm_sata_phy_disable(priv, ap->port_no);
 
+	/* Reset the SATA clock */
+	ahci_platform_disable_clks(hpriv);
+	msleep(10);
+
+	ahci_platform_enable_clks(hpriv);
+	msleep(10);
+
 	/* Bring the PHY back on */
 	brcm_sata_phy_enable(priv, ap->port_no);
 
@@ -347,11 +343,10 @@
 	struct ata_host *host = dev_get_drvdata(dev);
 	struct ahci_host_priv *hpriv = host->private_data;
 	struct brcm_ahci_priv *priv = hpriv->plat_data;
-	int ret;
 
-	ret = ahci_platform_suspend(dev);
 	brcm_sata_phys_disable(priv);
-	return ret;
+
+	return ahci_platform_suspend(dev);
 }
 
 static int brcm_ahci_resume(struct device *dev)
@@ -359,11 +354,50 @@
 	struct ata_host *host = dev_get_drvdata(dev);
 	struct ahci_host_priv *hpriv = host->private_data;
 	struct brcm_ahci_priv *priv = hpriv->plat_data;
+	int ret;
+
+	/* Make sure clocks are turned on before re-configuration */
+	ret = ahci_platform_enable_clks(hpriv);
+	if (ret)
+		return ret;
+
+	ret = ahci_platform_enable_regulators(hpriv);
+	if (ret)
+		goto out_disable_clks;
 
 	brcm_sata_init(priv);
 	brcm_sata_phys_enable(priv);
 	brcm_sata_alpm_init(hpriv);
-	return ahci_platform_resume(dev);
+
+	/* Since we had to enable clocks earlier on, we cannot use
+	 * ahci_platform_resume() as-is since a second call to
+	 * ahci_platform_enable_resources() would bump up the resources
+	 * (regulators, clocks, PHYs) count artificially so we copy the part
+	 * after ahci_platform_enable_resources().
+	 */
+	ret = ahci_platform_enable_phys(hpriv);
+	if (ret)
+		goto out_disable_phys;
+
+	ret = ahci_platform_resume_host(dev);
+	if (ret)
+		goto out_disable_platform_phys;
+
+	/* We resumed so update PM runtime state */
+	pm_runtime_disable(dev);
+	pm_runtime_set_active(dev);
+	pm_runtime_enable(dev);
+
+	return 0;
+
+out_disable_platform_phys:
+	ahci_platform_disable_phys(hpriv);
+out_disable_phys:
+	brcm_sata_phys_disable(priv);
+	ahci_platform_disable_regulators(hpriv);
+out_disable_clks:
+	ahci_platform_disable_clks(hpriv);
+	return ret;
 }
 #endif
 
@@ -410,44 +444,77 @@
 	if (!IS_ERR_OR_NULL(priv->rcdev))
 		reset_control_deassert(priv->rcdev);
 
-	if ((priv->version == BRCM_SATA_BCM7425) ||
-		(priv->version == BRCM_SATA_NSP)) {
-		priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ;
+	hpriv = ahci_platform_get_resources(pdev, 0);
+	if (IS_ERR(hpriv)) {
+		ret = PTR_ERR(hpriv);
+		goto out_reset;
+	}
+
+	hpriv->plat_data = priv;
+	hpriv->flags = AHCI_HFLAG_WAKE_BEFORE_STOP | AHCI_HFLAG_NO_WRITE_TO_RO;
+
+	switch (priv->version) {
+	case BRCM_SATA_BCM7425:
+		hpriv->flags |= AHCI_HFLAG_DELAY_ENGINE;
+		/* fall through */
+	case BRCM_SATA_NSP:
+		hpriv->flags |= AHCI_HFLAG_NO_NCQ;
 		priv->quirks |= BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE;
+		break;
+	default:
+		break;
 	}
 
+	ret = ahci_platform_enable_clks(hpriv);
+	if (ret)
+		goto out_reset;
+
+	ret = ahci_platform_enable_regulators(hpriv);
+	if (ret)
+		goto out_disable_clks;
+
+	/* Must be first so as to configure endianness including that
+	 * of the standard AHCI register space.
+	 */
 	brcm_sata_init(priv);
 
-	priv->port_mask = brcm_ahci_get_portmask(pdev, priv);
-	if (!priv->port_mask)
-		return -ENODEV;
+	/* Initializes priv->port_mask which is used below */
+	priv->port_mask = brcm_ahci_get_portmask(hpriv, priv);
+	if (!priv->port_mask) {
+		ret = -ENODEV;
+		goto out_disable_regulators;
+	}
 
+	/* Must be done before ahci_platform_enable_phys() */
 	brcm_sata_phys_enable(priv);
 
-	hpriv = ahci_platform_get_resources(pdev, 0);
-	if (IS_ERR(hpriv))
-		return PTR_ERR(hpriv);
-	hpriv->plat_data = priv;
-	hpriv->flags = AHCI_HFLAG_WAKE_BEFORE_STOP;
-
 	brcm_sata_alpm_init(hpriv);
 
-	ret = ahci_platform_enable_resources(hpriv);
+	ret = ahci_platform_enable_phys(hpriv);
 	if (ret)
-		return ret;
-
-	if (priv->quirks & BRCM_AHCI_QUIRK_NO_NCQ)
-		hpriv->flags |= AHCI_HFLAG_NO_NCQ;
-	hpriv->flags |= AHCI_HFLAG_NO_WRITE_TO_RO;
+		goto out_disable_phys;
 
 	ret = ahci_platform_init_host(pdev, hpriv, &ahci_brcm_port_info,
 				      &ahci_platform_sht);
 	if (ret)
-		return ret;
+		goto out_disable_platform_phys;
 
 	dev_info(dev, "Broadcom AHCI SATA3 registered\n");
 
 	return 0;
+
+out_disable_platform_phys:
+	ahci_platform_disable_phys(hpriv);
+out_disable_phys:
+	brcm_sata_phys_disable(priv);
+out_disable_regulators:
+	ahci_platform_disable_regulators(hpriv);
+out_disable_clks:
+	ahci_platform_disable_clks(hpriv);
+out_reset:
+	if (!IS_ERR_OR_NULL(priv->rcdev))
+		reset_control_assert(priv->rcdev);
+	return ret;
 }
 
 static int brcm_ahci_remove(struct platform_device *pdev)
@@ -457,12 +524,12 @@
 	struct brcm_ahci_priv *priv = hpriv->plat_data;
 	int ret;
 
+	brcm_sata_phys_disable(priv);
+
 	ret = ata_platform_remove_one(pdev);
 	if (ret)
 		return ret;
 
-	brcm_sata_phys_disable(priv);
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/ata/ahci_imx.c
+++ linux-ein-5.4.0/drivers/ata/ahci_imx.c
@@ -1239,4 +1239,4 @@
 MODULE_DESCRIPTION("Freescale i.MX AHCI SATA platform driver");
 MODULE_AUTHOR("Richard Zhu <Hong-Xing.Zhu@freescale.com>");
 MODULE_LICENSE("GPL");
-MODULE_ALIAS("ahci:imx");
+MODULE_ALIAS("platform:" DRV_NAME);
--- linux-ein-5.4.0.orig/drivers/ata/ahci_mvebu.c
+++ linux-ein-5.4.0/drivers/ata/ahci_mvebu.c
@@ -227,7 +227,7 @@
 
 static const struct ahci_mvebu_plat_data ahci_mvebu_armada_3700_plat_data = {
 	.plat_config = ahci_mvebu_armada_3700_config,
-	.flags = AHCI_HFLAG_SUSPEND_PHYS,
+	.flags = AHCI_HFLAG_SUSPEND_PHYS | AHCI_HFLAG_IGN_NOTSUPP_POWER_ON,
 };
 
 static const struct of_device_id ahci_mvebu_of_match[] = {
--- linux-ein-5.4.0.orig/drivers/ata/ahci_sunxi.c
+++ linux-ein-5.4.0/drivers/ata/ahci_sunxi.c
@@ -200,7 +200,7 @@
 }
 
 static const struct ata_port_info ahci_sunxi_port_info = {
-	.flags		= AHCI_FLAG_COMMON | ATA_FLAG_NCQ,
+	.flags		= AHCI_FLAG_COMMON | ATA_FLAG_NCQ | ATA_FLAG_NO_DIPM,
 	.pio_mask	= ATA_PIO4,
 	.udma_mask	= ATA_UDMA6,
 	.port_ops	= &ahci_platform_ops,
--- linux-ein-5.4.0.orig/drivers/ata/libahci.c
+++ linux-ein-5.4.0/drivers/ata/libahci.c
@@ -57,7 +57,7 @@
 static bool ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
 static int ahci_port_start(struct ata_port *ap);
 static void ahci_port_stop(struct ata_port *ap);
-static void ahci_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors ahci_qc_prep(struct ata_queued_cmd *qc);
 static int ahci_pmp_qc_defer(struct ata_queued_cmd *qc);
 static void ahci_freeze(struct ata_port *ap);
 static void ahci_thaw(struct ata_port *ap);
@@ -493,6 +493,11 @@
 		cap |= HOST_CAP_ALPM;
 	}
 
+	if ((cap & HOST_CAP_SXS) && (hpriv->flags & AHCI_HFLAG_NO_SXS)) {
+		dev_info(dev, "controller does not support SXS, disabling CAP_SXS\n");
+		cap &= ~HOST_CAP_SXS;
+	}
+
 	if (hpriv->force_port_map && port_map != hpriv->force_port_map) {
 		dev_info(dev, "forcing port_map 0x%x -> 0x%x\n",
 			 port_map, hpriv->force_port_map);
@@ -1194,6 +1199,26 @@
 	return sprintf(buf, "%d\n", emp->blink_policy);
 }
 
+static void ahci_port_clear_pending_irq(struct ata_port *ap)
+{
+	struct ahci_host_priv *hpriv = ap->host->private_data;
+	void __iomem *port_mmio = ahci_port_base(ap);
+	u32 tmp;
+
+	/* clear SError */
+	tmp = readl(port_mmio + PORT_SCR_ERR);
+	dev_dbg(ap->host->dev, "PORT_SCR_ERR 0x%x\n", tmp);
+	writel(tmp, port_mmio + PORT_SCR_ERR);
+
+	/* clear port IRQ */
+	tmp = readl(port_mmio + PORT_IRQ_STAT);
+	dev_dbg(ap->host->dev, "PORT_IRQ_STAT 0x%x\n", tmp);
+	if (tmp)
+		writel(tmp, port_mmio + PORT_IRQ_STAT);
+
+	writel(1 << ap->port_no, hpriv->mmio + HOST_IRQ_STAT);
+}
+
 static void ahci_port_init(struct device *dev, struct ata_port *ap,
 			   int port_no, void __iomem *mmio,
 			   void __iomem *port_mmio)
@@ -1208,18 +1233,7 @@
 	if (rc)
 		dev_warn(dev, "%s (%d)\n", emsg, rc);
 
-	/* clear SError */
-	tmp = readl(port_mmio + PORT_SCR_ERR);
-	VPRINTK("PORT_SCR_ERR 0x%x\n", tmp);
-	writel(tmp, port_mmio + PORT_SCR_ERR);
-
-	/* clear port IRQ */
-	tmp = readl(port_mmio + PORT_IRQ_STAT);
-	VPRINTK("PORT_IRQ_STAT 0x%x\n", tmp);
-	if (tmp)
-		writel(tmp, port_mmio + PORT_IRQ_STAT);
-
-	writel(1 << port_no, mmio + HOST_IRQ_STAT);
+	ahci_port_clear_pending_irq(ap);
 
 	/* mark esata ports */
 	tmp = readl(port_mmio + PORT_CMD);
@@ -1549,6 +1563,8 @@
 	tf.command = ATA_BUSY;
 	ata_tf_to_fis(&tf, 0, 0, d2h_fis);
 
+	ahci_port_clear_pending_irq(ap);
+
 	rc = sata_link_hardreset(link, timing, deadline, online,
 				 ahci_check_ready);
 
@@ -1624,7 +1640,7 @@
 		return sata_pmp_qc_defer_cmd_switch(qc);
 }
 
-static void ahci_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors ahci_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct ahci_port_priv *pp = ap->private_data;
@@ -1660,6 +1676,8 @@
 		opts |= AHCI_CMD_ATAPI | AHCI_CMD_PREFETCH;
 
 	ahci_fill_cmd_slot(pp, qc->hw_tag, opts);
+
+	return AC_ERR_OK;
 }
 
 static void ahci_fbs_dec_intr(struct ata_port *ap)
--- linux-ein-5.4.0.orig/drivers/ata/libahci_platform.c
+++ linux-ein-5.4.0/drivers/ata/libahci_platform.c
@@ -43,7 +43,7 @@
  * RETURNS:
  * 0 on success otherwise a negative error code
  */
-static int ahci_platform_enable_phys(struct ahci_host_priv *hpriv)
+int ahci_platform_enable_phys(struct ahci_host_priv *hpriv)
 {
 	int rc, i;
 
@@ -59,7 +59,7 @@
 		}
 
 		rc = phy_power_on(hpriv->phys[i]);
-		if (rc) {
+		if (rc && !(rc == -EOPNOTSUPP && (hpriv->flags & AHCI_HFLAG_IGN_NOTSUPP_POWER_ON))) {
 			phy_exit(hpriv->phys[i]);
 			goto disable_phys;
 		}
@@ -74,6 +74,7 @@
 	}
 	return rc;
 }
+EXPORT_SYMBOL_GPL(ahci_platform_enable_phys);
 
 /**
  * ahci_platform_disable_phys - Disable PHYs
@@ -81,7 +82,7 @@
  *
  * This function disables all PHYs found in hpriv->phys.
  */
-static void ahci_platform_disable_phys(struct ahci_host_priv *hpriv)
+void ahci_platform_disable_phys(struct ahci_host_priv *hpriv)
 {
 	int i;
 
@@ -90,6 +91,7 @@
 		phy_exit(hpriv->phys[i]);
 	}
 }
+EXPORT_SYMBOL_GPL(ahci_platform_disable_phys);
 
 /**
  * ahci_platform_enable_clks - Enable platform clocks
@@ -438,10 +440,7 @@
 	hpriv->phy_regulator = devm_regulator_get(dev, "phy");
 	if (IS_ERR(hpriv->phy_regulator)) {
 		rc = PTR_ERR(hpriv->phy_regulator);
-		if (rc == -EPROBE_DEFER)
-			goto err_out;
-		rc = 0;
-		hpriv->phy_regulator = NULL;
+		goto err_out;
 	}
 
 	if (flags & AHCI_PLATFORM_GET_RESETS) {
@@ -452,14 +451,24 @@
 		}
 	}
 
-	hpriv->nports = child_nodes = of_get_child_count(dev->of_node);
+	/*
+	 * Too many sub-nodes most likely means having something wrong with
+	 * the firmware.
+	 */
+	child_nodes = of_get_child_count(dev->of_node);
+	if (child_nodes > AHCI_MAX_PORTS) {
+		rc = -EINVAL;
+		goto err_out;
+	}
 
 	/*
 	 * If no sub-node was found, we still need to set nports to
 	 * one in order to be able to use the
 	 * ahci_platform_[en|dis]able_[phys|regulators] functions.
 	 */
-	if (!child_nodes)
+	if (child_nodes)
+		hpriv->nports = child_nodes;
+	else
 		hpriv->nports = 1;
 
 	hpriv->phys = devm_kcalloc(dev, hpriv->nports, sizeof(*hpriv->phys), GFP_KERNEL);
@@ -580,11 +589,13 @@
 	int i, irq, n_ports, rc;
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
+	if (irq < 0) {
 		if (irq != -EPROBE_DEFER)
 			dev_err(dev, "no irq\n");
 		return irq;
 	}
+	if (!irq)
+		return -EINVAL;
 
 	hpriv->irq = irq;
 
--- linux-ein-5.4.0.orig/drivers/ata/libata-core.c
+++ linux-ein-5.4.0/drivers/ata/libata-core.c
@@ -41,7 +41,6 @@
 #include <linux/workqueue.h>
 #include <linux/scatterlist.h>
 #include <linux/io.h>
-#include <linux/async.h>
 #include <linux/log2.h>
 #include <linux/slab.h>
 #include <linux/glob.h>
@@ -2058,7 +2057,7 @@
 
 retry:
 	ata_tf_init(dev, &tf);
-	if (dev->dma_mode && ata_id_has_read_log_dma_ext(dev->id) &&
+	if (ata_dma_enabled(dev) && ata_id_has_read_log_dma_ext(dev->id) &&
 	    !(dev->horkage & ATA_HORKAGE_NO_DMA_LOG)) {
 		tf.command = ATA_CMD_READ_LOG_DMA_EXT;
 		tf.protocol = ATA_PROT_DMA;
@@ -2253,6 +2252,25 @@
 
 }
 
+static bool ata_dev_check_adapter(struct ata_device *dev,
+				  unsigned short vendor_id)
+{
+	struct pci_dev *pcidev = NULL;
+	struct device *parent_dev = NULL;
+
+	for (parent_dev = dev->tdev.parent; parent_dev != NULL;
+	     parent_dev = parent_dev->parent) {
+		if (dev_is_pci(parent_dev)) {
+			pcidev = to_pci_dev(parent_dev);
+			if (pcidev->vendor == vendor_id)
+				return true;
+			break;
+		}
+	}
+
+	return false;
+}
+
 static int ata_dev_config_ncq(struct ata_device *dev,
 			       char *desc, size_t desc_sz)
 {
@@ -2269,6 +2287,13 @@
 		snprintf(desc, desc_sz, "NCQ (not used)");
 		return 0;
 	}
+
+	if (dev->horkage & ATA_HORKAGE_NO_NCQ_ON_ATI &&
+	    ata_dev_check_adapter(dev, PCI_VENDOR_ID_ATI)) {
+		snprintf(desc, desc_sz, "NCQ (not used)");
+		return 0;
+	}
+
 	if (ap->flags & ATA_FLAG_NCQ) {
 		hdepth = min(ap->scsi_host->can_queue, ATA_MAX_QUEUE);
 		dev->flags |= ATA_DFLAG_NCQ;
@@ -3071,7 +3096,7 @@
 	 */
 	if (spd > 1)
 		mask &= (1 << (spd - 1)) - 1;
-	else
+	else if (link->sata_spd)
 		return -EINVAL;
 
 	/* were we already at the bottom? */
@@ -3956,10 +3981,23 @@
 	case ATA_LPM_MED_POWER_WITH_DIPM:
 	case ATA_LPM_MIN_POWER_WITH_PARTIAL:
 	case ATA_LPM_MIN_POWER:
-		if (ata_link_nr_enabled(link) > 0)
-			/* no restrictions on LPM transitions */
+		if (ata_link_nr_enabled(link) > 0) {
+			/* assume no restrictions on LPM transitions */
 			scontrol &= ~(0x7 << 8);
-		else {
+
+			/*
+			 * If the controller does not support partial, slumber,
+			 * or devsleep, then disallow these transitions.
+			 */
+			if (link->ap->host->flags & ATA_HOST_NO_PART)
+				scontrol |= (0x1 << 8);
+
+			if (link->ap->host->flags & ATA_HOST_NO_SSC)
+				scontrol |= (0x2 << 8);
+
+			if (link->ap->host->flags & ATA_HOST_NO_DEVSLP)
+				scontrol |= (0x4 << 8);
+		} else {
 			/* empty port, power off */
 			scontrol &= ~0xf;
 			scontrol |= (0x1 << 2);
@@ -4412,6 +4450,8 @@
 	{ "VRFDFC22048UCHC-TE*", NULL,		ATA_HORKAGE_NODMA },
 	/* Odd clown on sil3726/4726 PMPs */
 	{ "Config  Disk",	NULL,		ATA_HORKAGE_DISABLE },
+	/* Similar story with ASMedia 1092 */
+	{ "ASMT109x- Config",	NULL,		ATA_HORKAGE_DISABLE },
 
 	/* Weird ATAPI devices */
 	{ "TORiSAN DVD-ROM DRD-N216", NULL,	ATA_HORKAGE_MAX_SEC_128 },
@@ -4475,9 +4515,8 @@
 	/* https://bugzilla.kernel.org/show_bug.cgi?id=15573 */
 	{ "C300-CTFDDAC128MAG",	"0001",		ATA_HORKAGE_NONCQ, },
 
-	/* Some Sandisk SSDs lock up hard with NCQ enabled.  Reported on
-	   SD7SN6S256G and SD8SN8U256G */
-	{ "SanDisk SD[78]SN*G",	NULL,		ATA_HORKAGE_NONCQ, },
+	/* Sandisk SD7/8/9s lock up hard on large trims */
+	{ "SanDisk SD[789]*",	NULL,		ATA_HORKAGE_MAX_TRIM_128M, },
 
 	/* devices which puke on READ_NATIVE_MAX */
 	{ "HDS724040KLSA80",	"KFAOA20N",	ATA_HORKAGE_BROKEN_HPA, },
@@ -4516,6 +4555,10 @@
 	{ "PIONEER DVD-RW  DVR-212D",	NULL,	ATA_HORKAGE_NOSETXFER },
 	{ "PIONEER DVD-RW  DVR-216D",	NULL,	ATA_HORKAGE_NOSETXFER },
 
+	/* These specific Pioneer models have LPM issues */
+	{ "PIONEER BD-RW   BDR-207M",	NULL,	ATA_HORKAGE_NOLPM },
+	{ "PIONEER BD-RW   BDR-205",	NULL,	ATA_HORKAGE_NOLPM },
+
 	/* Crucial BX100 SSD 500GB has broken LPM support */
 	{ "CT500BX100SSD1",		NULL,	ATA_HORKAGE_NOLPM },
 
@@ -4554,15 +4597,25 @@
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Crucial_CT*MX100*",		"MU01",	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 840 EVO*",	NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_NO_DMA_LOG |
+						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 840*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 	{ "Samsung SSD 850*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
+	{ "Samsung SSD 860*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_ZERO_AFTER_TRIM |
+						ATA_HORKAGE_NO_NCQ_ON_ATI, },
+	{ "Samsung SSD 870*",		NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
+						ATA_HORKAGE_ZERO_AFTER_TRIM |
+						ATA_HORKAGE_NO_NCQ_ON_ATI, },
 	{ "FCCT*M500*",			NULL,	ATA_HORKAGE_NO_NCQ_TRIM |
 						ATA_HORKAGE_ZERO_AFTER_TRIM, },
 
 	/* devices that don't properly handle TRIM commands */
 	{ "SuperSSpeed S238*",		NULL,	ATA_HORKAGE_NOTRIM, },
+	{ "M88V29*",			NULL,	ATA_HORKAGE_NOTRIM, },
 
 	/*
 	 * As defined, the DRAT (Deterministic Read After Trim) and RZAT
@@ -4980,7 +5033,10 @@
 	return ATA_DEFER_LINK;
 }
 
-void ata_noop_qc_prep(struct ata_queued_cmd *qc) { }
+enum ata_completion_errors ata_noop_qc_prep(struct ata_queued_cmd *qc)
+{
+	return AC_ERR_OK;
+}
 
 /**
  *	ata_sg_init - Associate command with scatter-gather table.
@@ -5326,6 +5382,30 @@
 }
 
 /**
+ *	ata_qc_get_active - get bitmask of active qcs
+ *	@ap: port in question
+ *
+ *	LOCKING:
+ *	spin_lock_irqsave(host lock)
+ *
+ *	RETURNS:
+ *	Bitmask of active qcs
+ */
+u64 ata_qc_get_active(struct ata_port *ap)
+{
+	u64 qc_active = ap->qc_active;
+
+	/* ATA_TAG_INTERNAL is sent to hw as tag 0 */
+	if (qc_active & (1ULL << ATA_TAG_INTERNAL)) {
+		qc_active |= (1 << 0);
+		qc_active &= ~(1ULL << ATA_TAG_INTERNAL);
+	}
+
+	return qc_active;
+}
+EXPORT_SYMBOL_GPL(ata_qc_get_active);
+
+/**
  *	ata_qc_complete_multiple - Complete multiple qcs successfully
  *	@ap: port in question
  *	@qc_active: new qc_active mask
@@ -5443,7 +5523,9 @@
 		return;
 	}
 
-	ap->ops->qc_prep(qc);
+	qc->err_mask |= ap->ops->qc_prep(qc);
+	if (unlikely(qc->err_mask))
+		goto err;
 	trace_ata_qc_issue(qc);
 	qc->err_mask |= ap->ops->qc_issue(qc);
 	if (unlikely(qc->err_mask))
@@ -5669,17 +5751,19 @@
 	struct ata_link *link;
 	unsigned long flags;
 
-	/* Previous resume operation might still be in
-	 * progress.  Wait for PM_PENDING to clear.
+	spin_lock_irqsave(ap->lock, flags);
+
+	/*
+	 * A previous PM operation might still be in progress. Wait for
+	 * ATA_PFLAG_PM_PENDING to clear.
 	 */
 	if (ap->pflags & ATA_PFLAG_PM_PENDING) {
+		spin_unlock_irqrestore(ap->lock, flags);
 		ata_port_wait_eh(ap);
-		WARN_ON(ap->pflags & ATA_PFLAG_PM_PENDING);
+		spin_lock_irqsave(ap->lock, flags);
 	}
 
-	/* request PM ops to EH */
-	spin_lock_irqsave(ap->lock, flags);
-
+	/* Request PM operation to EH */
 	ap->pm_mesg = mesg;
 	ap->pflags |= ATA_PFLAG_PM_PENDING;
 	ata_for_each_link(link, ap, HOST_FIRST) {
@@ -5691,10 +5775,8 @@
 
 	spin_unlock_irqrestore(ap->lock, flags);
 
-	if (!async) {
+	if (!async)
 		ata_port_wait_eh(ap);
-		WARN_ON(ap->pflags & ATA_PFLAG_PM_PENDING);
-	}
 }
 
 /*
@@ -5860,7 +5942,7 @@
 #endif
 
 const struct device_type ata_port_type = {
-	.name = "ata_port",
+	.name = ATA_PORT_TYPE_NAME,
 #ifdef CONFIG_PM
 	.pm = &ata_port_pm_ops,
 #endif
@@ -6170,7 +6252,7 @@
 				      const struct ata_port_info * const * ppi,
 				      int n_ports)
 {
-	const struct ata_port_info *pi;
+	const struct ata_port_info *pi = &ata_dummy_port_info;
 	struct ata_host *host;
 	int i, j;
 
@@ -6178,7 +6260,7 @@
 	if (!host)
 		return NULL;
 
-	for (i = 0, j = 0, pi = NULL; i < host->n_ports; i++) {
+	for (i = 0, j = 0; i < host->n_ports; i++) {
 		struct ata_port *ap = host->ports[i];
 
 		if (ppi[j])
@@ -6367,7 +6449,7 @@
 			have_stop = 1;
 	}
 
-	if (host->ops->host_stop)
+	if (host->ops && host->ops->host_stop)
 		have_stop = 1;
 
 	if (have_stop) {
@@ -6568,7 +6650,7 @@
 	/* perform each probe asynchronously */
 	for (i = 0; i < host->n_ports; i++) {
 		struct ata_port *ap = host->ports[i];
-		async_schedule(async_port_probe, ap);
+		ap->cookie = async_schedule(async_port_probe, ap);
 	}
 
 	return 0;
@@ -6663,11 +6745,30 @@
 	if (!ap->ops->error_handler)
 		goto skip_eh;
 
-	/* tell EH we're leaving & flush EH */
+	/* Wait for any ongoing EH */
+	ata_port_wait_eh(ap);
+
+	mutex_lock(&ap->scsi_scan_mutex);
 	spin_lock_irqsave(ap->lock, flags);
+
+	/* Remove scsi devices */
+	ata_for_each_link(link, ap, HOST_FIRST) {
+		ata_for_each_dev(dev, link, ALL) {
+			if (dev->sdev) {
+				spin_unlock_irqrestore(ap->lock, flags);
+				scsi_remove_device(dev->sdev);
+				spin_lock_irqsave(ap->lock, flags);
+				dev->sdev = NULL;
+			}
+		}
+	}
+
+	/* Tell EH to disable all devices */
 	ap->pflags |= ATA_PFLAG_UNLOADING;
 	ata_port_schedule_eh(ap);
+
 	spin_unlock_irqrestore(ap->lock, flags);
+	mutex_unlock(&ap->scsi_scan_mutex);
 
 	/* wait till EH commits suicide */
 	ata_port_wait_eh(ap);
@@ -6708,8 +6809,11 @@
 {
 	int i;
 
-	for (i = 0; i < host->n_ports; i++)
+	for (i = 0; i < host->n_ports; i++) {
+		/* Ensure ata_port probe has completed */
+		async_synchronize_cookie(host->ports[i]->cookie + 1);
 		ata_port_detach(host->ports[i]);
+	}
 
 	/* the host is dead now, dissociate ACPI */
 	ata_acpi_dissociate(host);
@@ -6735,6 +6839,26 @@
 	ata_host_detach(host);
 }
 
+void ata_pci_shutdown_one(struct pci_dev *pdev)
+{
+	struct ata_host *host = pci_get_drvdata(pdev);
+	int i;
+
+	for (i = 0; i < host->n_ports; i++) {
+		struct ata_port *ap = host->ports[i];
+
+		ap->pflags |= ATA_PFLAG_FROZEN;
+
+		/* Disable port interrupts */
+		if (ap->ops->freeze)
+			ap->ops->freeze(ap);
+
+		/* Stop the port DMA engines */
+		if (ap->ops->port_stop)
+			ap->ops->port_stop(ap);
+	}
+}
+
 /* move to PCI subsystem */
 int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits)
 {
@@ -6862,6 +6986,8 @@
 		{ "ncq",	.horkage_off	= ATA_HORKAGE_NONCQ },
 		{ "noncqtrim",	.horkage_on	= ATA_HORKAGE_NO_NCQ_TRIM },
 		{ "ncqtrim",	.horkage_off	= ATA_HORKAGE_NO_NCQ_TRIM },
+		{ "noncqati",	.horkage_on	= ATA_HORKAGE_NO_NCQ_ON_ATI },
+		{ "ncqati",	.horkage_off	= ATA_HORKAGE_NO_NCQ_ON_ATI },
 		{ "dump_id",	.horkage_on	= ATA_HORKAGE_DUMP_ID },
 		{ "pio0",	.xfer_mask	= 1 << (ATA_SHIFT_PIO + 0) },
 		{ "pio1",	.xfer_mask	= 1 << (ATA_SHIFT_PIO + 1) },
@@ -7355,6 +7481,7 @@
 
 #ifdef CONFIG_PCI
 EXPORT_SYMBOL_GPL(pci_test_config_bits);
+EXPORT_SYMBOL_GPL(ata_pci_shutdown_one);
 EXPORT_SYMBOL_GPL(ata_pci_remove_one);
 #ifdef CONFIG_PM
 EXPORT_SYMBOL_GPL(ata_pci_device_do_suspend);
--- linux-ein-5.4.0.orig/drivers/ata/libata-eh.c
+++ linux-ein-5.4.0/drivers/ata/libata-eh.c
@@ -97,6 +97,12 @@
 	ULONG_MAX,
 };
 
+static const unsigned long ata_eh_revalidate_timeouts[] = {
+	15000,	/* Some drives are slow to read log pages when waking-up */
+	15000,  /* combined time till here is enough even for media access */
+	ULONG_MAX,
+};
+
 static const unsigned long ata_eh_flush_timeouts[] = {
 	15000,	/* be generous with flush */
 	15000,  /* ditto */
@@ -133,6 +139,8 @@
 ata_eh_cmd_timeout_table[ATA_EH_CMD_TIMEOUT_TABLE_SIZE] = {
 	{ .commands = CMDS(ATA_CMD_ID_ATA, ATA_CMD_ID_ATAPI),
 	  .timeouts = ata_eh_identify_timeouts, },
+	{ .commands = CMDS(ATA_CMD_READ_LOG_EXT, ATA_CMD_READ_LOG_DMA_EXT),
+	  .timeouts = ata_eh_revalidate_timeouts, },
 	{ .commands = CMDS(ATA_CMD_READ_NATIVE_MAX, ATA_CMD_READ_NATIVE_MAX_EXT),
 	  .timeouts = ata_eh_other_timeouts, },
 	{ .commands = CMDS(ATA_CMD_SET_MAX, ATA_CMD_SET_MAX_EXT),
@@ -2321,6 +2329,7 @@
 		{ ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" },
 		{ ATA_CMD_FPDMA_READ,		"READ FPDMA QUEUED" },
 		{ ATA_CMD_FPDMA_WRITE,		"WRITE FPDMA QUEUED" },
+		{ ATA_CMD_NCQ_NON_DATA,		"NCQ NON-DATA" },
 		{ ATA_CMD_FPDMA_SEND,		"SEND FPDMA QUEUED" },
 		{ ATA_CMD_FPDMA_RECV,		"RECEIVE FPDMA QUEUED" },
 		{ ATA_CMD_PIO_READ,		"READ SECTOR(S)" },
@@ -2413,7 +2422,7 @@
 	struct ata_eh_context *ehc = &link->eh_context;
 	struct ata_queued_cmd *qc;
 	const char *frozen, *desc;
-	char tries_buf[6] = "";
+	char tries_buf[16] = "";
 	int tag, nr_failed = 0;
 
 	if (ehc->i.flags & ATA_EHI_QUIET)
@@ -2892,18 +2901,11 @@
 			postreset(slave, classes);
 	}
 
-	/*
-	 * Some controllers can't be frozen very well and may set spurious
-	 * error conditions during reset.  Clear accumulated error
-	 * information and re-thaw the port if frozen.  As reset is the
-	 * final recovery action and we cross check link onlineness against
-	 * device classification later, no hotplug event is lost by this.
-	 */
+	/* clear cached SError */
 	spin_lock_irqsave(link->ap->lock, flags);
-	memset(&link->eh_info, 0, sizeof(link->eh_info));
+	link->eh_info.serror = 0;
 	if (slave)
-		memset(&slave->eh_info, 0, sizeof(link->eh_info));
-	ap->pflags &= ~ATA_PFLAG_EH_PENDING;
+		slave->eh_info.serror = 0;
 	spin_unlock_irqrestore(link->ap->lock, flags);
 
 	if (ap->pflags & ATA_PFLAG_FROZEN)
--- linux-ein-5.4.0.orig/drivers/ata/libata-pmp.c
+++ linux-ein-5.4.0/drivers/ata/libata-pmp.c
@@ -763,6 +763,7 @@
 
 	if (dev->flags & ATA_DFLAG_DETACH) {
 		detach = 1;
+		rc = -ENODEV;
 		goto fail;
 	}
 
--- linux-ein-5.4.0.orig/drivers/ata/libata-scsi.c
+++ linux-ein-5.4.0/drivers/ata/libata-scsi.c
@@ -162,7 +162,7 @@
 	struct ata_link *link;
 	struct ata_device *dev;
 	unsigned long now;
-	unsigned int uninitialized_var(msecs);
+	unsigned int msecs;
 	int rc = 0;
 
 	ap = ata_shost_to_port(sdev->host);
@@ -2374,6 +2374,7 @@
 
 static unsigned int ata_scsiop_inq_b0(struct ata_scsi_args *args, u8 *rbuf)
 {
+	struct ata_device *dev = args->dev;
 	u16 min_io_sectors;
 
 	rbuf[1] = 0xb0;
@@ -2399,7 +2400,12 @@
 	 * with the unmap bit set.
 	 */
 	if (ata_id_has_trim(args->id)) {
-		put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM, &rbuf[36]);
+		u64 max_blocks = 65535 * ATA_MAX_TRIM_RNUM;
+
+		if (dev->horkage & ATA_HORKAGE_MAX_TRIM_128M)
+			max_blocks = 128 << (20 - SECTOR_SHIFT);
+
+		put_unaligned_be64(max_blocks, &rbuf[36]);
 		put_unaligned_be32(1, &rbuf[28]);
 	}
 
@@ -3030,18 +3036,36 @@
 	return 0;
 }
 
-static struct ata_device *ata_find_dev(struct ata_port *ap, int devno)
+static struct ata_device *ata_find_dev(struct ata_port *ap, unsigned int devno)
 {
-	if (!sata_pmp_attached(ap)) {
-		if (likely(devno >= 0 &&
-			   devno < ata_link_max_devices(&ap->link)))
+	/*
+	 * For the non-PMP case, ata_link_max_devices() returns 1 (SATA case),
+	 * or 2 (IDE master + slave case). However, the former case includes
+	 * libsas hosted devices which are numbered per scsi host, leading
+	 * to devno potentially being larger than 0 but with each struct
+	 * ata_device having its own struct ata_port and struct ata_link.
+	 * To accommodate these, ignore devno and always use device number 0.
+	 */
+	if (likely(!sata_pmp_attached(ap))) {
+		int link_max_devices = ata_link_max_devices(&ap->link);
+
+		if (link_max_devices == 1)
+			return &ap->link.device[0];
+
+		if (devno < link_max_devices)
 			return &ap->link.device[devno];
-	} else {
-		if (likely(devno >= 0 &&
-			   devno < ap->nr_pmp_links))
-			return &ap->pmp_link[devno].device[0];
+
+		return NULL;
 	}
 
+	/*
+	 * For PMP-attached devices, the device number corresponds to C
+	 * (channel) of SCSI [H:C:I:L], indicating the port pmp link
+	 * for the device.
+	 */
+	if (devno < ap->nr_pmp_links)
+		return &ap->pmp_link[devno].device[0];
+
 	return NULL;
 }
 
@@ -3158,8 +3182,19 @@
 		goto invalid_fld;
 	}
 
-	if (ata_is_ncq(tf->protocol) && (cdb[2 + cdb_offset] & 0x3) == 0)
-		tf->protocol = ATA_PROT_NCQ_NODATA;
+	if ((cdb[2 + cdb_offset] & 0x3) == 0) {
+		/*
+		 * When T_LENGTH is zero (No data is transferred), dir should
+		 * be DMA_NONE.
+		 */
+		if (scmd->sc_data_direction != DMA_NONE) {
+			fp = 2 + cdb_offset;
+			goto invalid_fld;
+		}
+
+		if (ata_is_ncq(tf->protocol))
+			tf->protocol = ATA_PROT_NCQ_NODATA;
+	}
 
 	/* enable LBA */
 	tf->flags |= ATA_TFLAG_LBA;
@@ -3978,12 +4013,13 @@
 {
 	struct scsi_cmnd *scmd = qc->scsicmd;
 	const u8 *cdb = scmd->cmnd;
-	const u8 *p;
 	u8 pg, spg;
 	unsigned six_byte, pg_len, hdr_len, bd_len;
 	int len;
 	u16 fp = (u16)-1;
 	u8 bp = 0xff;
+	u8 buffer[64];
+	const u8 *p = buffer;
 
 	VPRINTK("ENTER\n");
 
@@ -4017,12 +4053,14 @@
 	if (!scsi_sg_count(scmd) || scsi_sglist(scmd)->length < len)
 		goto invalid_param_len;
 
-	p = page_address(sg_page(scsi_sglist(scmd)));
-
 	/* Move past header and block descriptors.  */
 	if (len < hdr_len)
 		goto invalid_param_len;
 
+	if (!sg_copy_to_buffer(scsi_sglist(scmd), scsi_sg_count(scmd),
+			       buffer, sizeof(buffer)))
+		goto invalid_param_len;
+
 	if (six_byte)
 		bd_len = p[3];
 	else
@@ -4506,7 +4544,7 @@
 		break;
 
 	case MAINTENANCE_IN:
-		if (scsicmd[1] == MI_REPORT_SUPPORTED_OPERATION_CODES)
+		if ((scsicmd[1] & 0x1f) == MI_REPORT_SUPPORTED_OPERATION_CODES)
 			ata_scsi_rbuf_fill(&args, ata_scsiop_maint_in);
 		else
 			ata_scsi_set_invalid_field(dev, cmd, 1, 0xff);
@@ -4553,22 +4591,19 @@
 		 */
 		shost->max_host_blocked = 1;
 
-		rc = scsi_add_host_with_dma(ap->scsi_host,
-						&ap->tdev, ap->host->dev);
+		rc = scsi_add_host_with_dma(shost, &ap->tdev, ap->host->dev);
 		if (rc)
-			goto err_add;
+			goto err_alloc;
 	}
 
 	return 0;
 
- err_add:
-	scsi_host_put(host->ports[i]->scsi_host);
  err_alloc:
 	while (--i >= 0) {
 		struct Scsi_Host *shost = host->ports[i]->scsi_host;
 
+		/* scsi_host_put() is in ata_devres_release() */
 		scsi_remove_host(shost);
-		scsi_host_put(shost);
 	}
 	return rc;
 }
--- linux-ein-5.4.0.orig/drivers/ata/libata-sff.c
+++ linux-ein-5.4.0/drivers/ata/libata-sff.c
@@ -641,6 +641,20 @@
 }
 EXPORT_SYMBOL_GPL(ata_sff_data_xfer32);
 
+static void ata_pio_xfer(struct ata_queued_cmd *qc, struct page *page,
+		unsigned int offset, size_t xfer_size)
+{
+	bool do_write = (qc->tf.flags & ATA_TFLAG_WRITE);
+	unsigned char *buf;
+
+	buf = kmap_atomic(page);
+	qc->ap->ops->sff_data_xfer(qc, buf + offset, xfer_size, do_write);
+	kunmap_atomic(buf);
+
+	if (!do_write && !PageSlab(page))
+		flush_dcache_page(page);
+}
+
 /**
  *	ata_pio_sector - Transfer a sector of data.
  *	@qc: Command on going
@@ -652,11 +666,9 @@
  */
 static void ata_pio_sector(struct ata_queued_cmd *qc)
 {
-	int do_write = (qc->tf.flags & ATA_TFLAG_WRITE);
 	struct ata_port *ap = qc->ap;
 	struct page *page;
 	unsigned int offset;
-	unsigned char *buf;
 
 	if (!qc->cursg) {
 		qc->curbytes = qc->nbytes;
@@ -674,13 +686,20 @@
 
 	DPRINTK("data %s\n", qc->tf.flags & ATA_TFLAG_WRITE ? "write" : "read");
 
-	/* do the actual data transfer */
-	buf = kmap_atomic(page);
-	ap->ops->sff_data_xfer(qc, buf + offset, qc->sect_size, do_write);
-	kunmap_atomic(buf);
-
-	if (!do_write && !PageSlab(page))
-		flush_dcache_page(page);
+	/*
+	 * Split the transfer when it splits a page boundary.  Note that the
+	 * split still has to be dword aligned like all ATA data transfers.
+	 */
+	WARN_ON_ONCE(offset % 4);
+	if (offset + qc->sect_size > PAGE_SIZE) {
+		unsigned int split_len = PAGE_SIZE - offset;
+
+		ata_pio_xfer(qc, page, offset, split_len);
+		ata_pio_xfer(qc, nth_page(page, 1), 0,
+			     qc->sect_size - split_len);
+	} else {
+		ata_pio_xfer(qc, page, offset, qc->sect_size);
+	}
 
 	qc->curbytes += qc->sect_size;
 	qc->cursg_ofs += qc->sect_size;
@@ -2679,12 +2698,14 @@
  *	LOCKING:
  *	spin_lock_irqsave(host lock)
  */
-void ata_bmdma_qc_prep(struct ata_queued_cmd *qc)
+enum ata_completion_errors ata_bmdma_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	ata_bmdma_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 EXPORT_SYMBOL_GPL(ata_bmdma_qc_prep);
 
@@ -2697,12 +2718,14 @@
  *	LOCKING:
  *	spin_lock_irqsave(host lock)
  */
-void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc)
+enum ata_completion_errors ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	ata_bmdma_fill_sg_dumb(qc);
+
+	return AC_ERR_OK;
 }
 EXPORT_SYMBOL_GPL(ata_bmdma_dumb_qc_prep);
 
--- linux-ein-5.4.0.orig/drivers/ata/libata-transport.c
+++ linux-ein-5.4.0/drivers/ata/libata-transport.c
@@ -196,7 +196,7 @@
 	{ XFER_PIO_0,			"XFER_PIO_0" },
 	{ XFER_PIO_SLOW,		"XFER_PIO_SLOW" }
 };
-ata_bitfield_name_match(xfer,ata_xfer_names)
+ata_bitfield_name_search(xfer, ata_xfer_names)
 
 /*
  * ATA Port attributes
@@ -266,6 +266,10 @@
 	put_device(dev);
 }
 
+static const struct device_type ata_port_sas_type = {
+	.name = ATA_PORT_TYPE_NAME,
+};
+
 /** ata_tport_add - initialize a transport ATA port structure
  *
  * @parent:	parent device
@@ -283,7 +287,10 @@
 	struct device *dev = &ap->tdev;
 
 	device_initialize(dev);
-	dev->type = &ata_port_type;
+	if (ap->flags & ATA_FLAG_SAS_HOST)
+		dev->type = &ata_port_sas_type;
+	else
+		dev->type = &ata_port_type;
 
 	dev->parent = parent;
 	ata_host_get(ap->host);
@@ -317,7 +324,6 @@
  tport_err:
 	transport_destroy_device(dev);
 	put_device(dev);
-	ata_host_put(ap->host);
 	return error;
 }
 
--- linux-ein-5.4.0.orig/drivers/ata/libata.h
+++ linux-ein-5.4.0/drivers/ata/libata.h
@@ -30,6 +30,8 @@
 	ATA_DNXFER_QUIET	= (1 << 31),
 };
 
+#define ATA_PORT_TYPE_NAME	"ata_port"
+
 extern atomic_t ata_print_id;
 extern int atapi_passthru16;
 extern int libata_fua;
--- linux-ein-5.4.0.orig/drivers/ata/pata_arasan_cf.c
+++ linux-ein-5.4.0/drivers/ata/pata_arasan_cf.c
@@ -817,12 +817,19 @@
 	else
 		quirk = CF_BROKEN_UDMA; /* as it is on spear1340 */
 
-	/* if irq is 0, support only PIO */
-	acdev->irq = platform_get_irq(pdev, 0);
-	if (acdev->irq)
+	/*
+	 * If there's an error getting IRQ (or we do get IRQ0),
+	 * support only PIO
+	 */
+	ret = platform_get_irq(pdev, 0);
+	if (ret > 0) {
+		acdev->irq = ret;
 		irq_handler = arasan_cf_interrupt;
-	else
+	} else	if (ret == -EPROBE_DEFER) {
+		return ret;
+	} else	{
 		quirk |= CF_BROKEN_MWDMA | CF_BROKEN_UDMA;
+	}
 
 	acdev->pbase = res->start;
 	acdev->vbase = devm_ioremap_nocache(&pdev->dev, res->start,
--- linux-ein-5.4.0.orig/drivers/ata/pata_ep93xx.c
+++ linux-ein-5.4.0/drivers/ata/pata_ep93xx.c
@@ -928,7 +928,7 @@
 	/* INT[3] (IRQ_EP93XX_EXT3) line connected as pull down */
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
-		err = -ENXIO;
+		err = irq;
 		goto err_rel_gpio;
 	}
 
--- linux-ein-5.4.0.orig/drivers/ata/pata_ftide010.c
+++ linux-ein-5.4.0/drivers/ata/pata_ftide010.c
@@ -570,6 +570,7 @@
 };
 module_platform_driver(pata_ftide010_driver);
 
+MODULE_DESCRIPTION("low level driver for Faraday Technology FTIDE010");
 MODULE_AUTHOR("Linus Walleij <linus.walleij@linaro.org>");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS("platform:" DRV_NAME);
--- linux-ein-5.4.0.orig/drivers/ata/pata_hpt37x.c
+++ linux-ein-5.4.0/drivers/ata/pata_hpt37x.c
@@ -918,6 +918,20 @@
 	pci_write_config_byte(dev, 0x5a, irqmask);
 
 	/*
+	 * HPT371 chips physically have only one channel, the secondary one,
+	 * but the primary channel registers do exist!  Go figure...
+	 * So,  we manually disable the non-existing channel here
+	 * (if the BIOS hasn't done this already).
+	 */
+	if (dev->device == PCI_DEVICE_ID_TTI_HPT371) {
+		u8 mcr1;
+
+		pci_read_config_byte(dev, 0x50, &mcr1);
+		mcr1 &= ~0x04;
+		pci_write_config_byte(dev, 0x50, mcr1);
+	}
+
+	/*
 	 * default to pci clock. make sure MA15/16 are set to output
 	 * to prevent drives having problems with 40-pin cables. Needed
 	 * for some drives such as IBM-DTLA which will not enter ready
@@ -948,14 +962,14 @@
 
 	if ((freq >> 12) != 0xABCDE) {
 		int i;
-		u8 sr;
+		u16 sr;
 		u32 total = 0;
 
 		pr_warn("BIOS has not set timing clocks\n");
 
 		/* This is the process the HPT371 BIOS is reported to use */
 		for (i = 0; i < 128; i++) {
-			pci_read_config_byte(dev, 0x78, &sr);
+			pci_read_config_word(dev, 0x78, &sr);
 			total += sr & 0x1FF;
 			udelay(15);
 		}
--- linux-ein-5.4.0.orig/drivers/ata/pata_ixp4xx_cf.c
+++ linux-ein-5.4.0/drivers/ata/pata_ixp4xx_cf.c
@@ -135,12 +135,12 @@
 
 static int ixp4xx_pata_probe(struct platform_device *pdev)
 {
-	unsigned int irq;
 	struct resource *cs0, *cs1;
 	struct ata_host *host;
 	struct ata_port *ap;
 	struct ixp4xx_pata_data *data = dev_get_platdata(&pdev->dev);
 	int ret;
+	int irq;
 
 	cs0 = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	cs1 = platform_get_resource(pdev, IORESOURCE_MEM, 1);
@@ -165,8 +165,12 @@
 		return -ENOMEM;
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq)
+	if (irq > 0)
 		irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
+	else if (irq < 0)
+		return irq;
+	else
+		return -EINVAL;
 
 	/* Setup expansion bus chip selects */
 	*data->cs0_cfg = data->cs0_bits;
--- linux-ein-5.4.0.orig/drivers/ata/pata_legacy.c
+++ linux-ein-5.4.0/drivers/ata/pata_legacy.c
@@ -278,9 +278,10 @@
 	outb(inb(0x1F4) & 0x07, 0x1F4);
 
 	rt = inb(0x1F3);
-	rt &= 0x07 << (3 * adev->devno);
+	rt &= ~(0x07 << (3 * !adev->devno));
 	if (pio)
-		rt |= (1 + 3 * pio) << (3 * adev->devno);
+		rt |= (1 + 3 * pio) << (3 * !adev->devno);
+	outb(rt, 0x1F3);
 
 	udelay(100);
 	outb(inb(0x1F2) | 0x01, 0x1F2);
@@ -315,7 +316,8 @@
 			iowrite32_rep(ap->ioaddr.data_addr, buf, buflen >> 2);
 
 		if (unlikely(slop)) {
-			__le32 pad;
+			__le32 pad = 0;
+
 			if (rw == READ) {
 				pad = cpu_to_le32(ioread32(ap->ioaddr.data_addr));
 				memcpy(buf + buflen - slop, &pad, slop);
@@ -705,7 +707,8 @@
 			ioread32_rep(ap->ioaddr.data_addr, buf, buflen >> 2);
 
 		if (unlikely(slop)) {
-			__le32 pad;
+			__le32 pad = 0;
+
 			if (rw == WRITE) {
 				memcpy(&pad, buf + buflen - slop, slop);
 				iowrite32(le32_to_cpu(pad), ap->ioaddr.data_addr);
--- linux-ein-5.4.0.orig/drivers/ata/pata_macio.c
+++ linux-ein-5.4.0/drivers/ata/pata_macio.c
@@ -510,7 +510,7 @@
 	return ATA_CBL_PATA40;
 }
 
-static void pata_macio_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pata_macio_qc_prep(struct ata_queued_cmd *qc)
 {
 	unsigned int write = (qc->tf.flags & ATA_TFLAG_WRITE);
 	struct ata_port *ap = qc->ap;
@@ -523,7 +523,7 @@
 		   __func__, qc, qc->flags, write, qc->dev->devno);
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	table = (struct dbdma_cmd *) priv->dma_table_cpu;
 
@@ -568,6 +568,8 @@
 	table->command = cpu_to_le16(DBDMA_STOP);
 
 	dev_dbgdma(priv->dev, "%s: %d DMA list entries\n", __func__, pi);
+
+	return AC_ERR_OK;
 }
 
 
--- linux-ein-5.4.0.orig/drivers/ata/pata_marvell.c
+++ linux-ein-5.4.0/drivers/ata/pata_marvell.c
@@ -83,6 +83,8 @@
 	switch(ap->port_no)
 	{
 	case 0:
+		if (!ap->ioaddr.bmdma_addr)
+			return ATA_CBL_PATA_UNK;
 		if (ioread8(ap->ioaddr.bmdma_addr + 1) & 1)
 			return ATA_CBL_PATA40;
 		return ATA_CBL_PATA80;
--- linux-ein-5.4.0.orig/drivers/ata/pata_ns87415.c
+++ linux-ein-5.4.0/drivers/ata/pata_ns87415.c
@@ -261,7 +261,7 @@
  *	LOCKING:
  *	Inherited from caller.
  */
-void ns87560_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
+static void ns87560_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
 {
 	struct ata_ioports *ioaddr = &ap->ioaddr;
 
--- linux-ein-5.4.0.orig/drivers/ata/pata_octeon_cf.c
+++ linux-ein-5.4.0/drivers/ata/pata_octeon_cf.c
@@ -888,20 +888,24 @@
 				int i;
 				res_dma = platform_get_resource(dma_dev, IORESOURCE_MEM, 0);
 				if (!res_dma) {
+					put_device(&dma_dev->dev);
 					of_node_put(dma_node);
 					return -EINVAL;
 				}
 				cf_port->dma_base = (u64)devm_ioremap_nocache(&pdev->dev, res_dma->start,
 									 resource_size(res_dma));
 				if (!cf_port->dma_base) {
+					put_device(&dma_dev->dev);
 					of_node_put(dma_node);
 					return -EINVAL;
 				}
 
-				irq_handler = octeon_cf_interrupt;
 				i = platform_get_irq(dma_dev, 0);
-				if (i > 0)
+				if (i > 0) {
 					irq = i;
+					irq_handler = octeon_cf_interrupt;
+				}
+				put_device(&dma_dev->dev);
 			}
 			of_node_put(dma_node);
 		}
--- linux-ein-5.4.0.orig/drivers/ata/pata_pxa.c
+++ linux-ein-5.4.0/drivers/ata/pata_pxa.c
@@ -44,25 +44,27 @@
 /*
  * Prepare taskfile for submission.
  */
-static void pxa_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pxa_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct pata_pxa_data *pd = qc->ap->private_data;
 	struct dma_async_tx_descriptor *tx;
 	enum dma_transfer_direction dir;
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	dir = (qc->dma_dir == DMA_TO_DEVICE ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM);
 	tx = dmaengine_prep_slave_sg(pd->dma_chan, qc->sg, qc->n_elem, dir,
 				     DMA_PREP_INTERRUPT);
 	if (!tx) {
 		ata_dev_err(qc->dev, "prep_slave_sg() failed\n");
-		return;
+		return AC_ERR_OK;
 	}
 	tx->callback = pxa_ata_dma_irq;
 	tx->callback_param = pd;
 	pd->dma_cookie = dmaengine_submit(tx);
+
+	return AC_ERR_OK;
 }
 
 /*
--- linux-ein-5.4.0.orig/drivers/ata/pata_rb532_cf.c
+++ linux-ein-5.4.0/drivers/ata/pata_rb532_cf.c
@@ -115,10 +115,12 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
+	if (irq < 0) {
 		dev_err(&pdev->dev, "no IRQ resource found\n");
-		return -ENOENT;
+		return irq;
 	}
+	if (!irq)
+		return -EINVAL;
 
 	gpiod = devm_gpiod_get(&pdev->dev, NULL, GPIOD_IN);
 	if (IS_ERR(gpiod)) {
--- linux-ein-5.4.0.orig/drivers/ata/pdc_adma.c
+++ linux-ein-5.4.0/drivers/ata/pdc_adma.c
@@ -116,7 +116,7 @@
 				const struct pci_device_id *ent);
 static int adma_port_start(struct ata_port *ap);
 static void adma_port_stop(struct ata_port *ap);
-static void adma_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors adma_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int adma_qc_issue(struct ata_queued_cmd *qc);
 static int adma_check_atapi_dma(struct ata_queued_cmd *qc);
 static void adma_freeze(struct ata_port *ap);
@@ -295,7 +295,7 @@
 	return i;
 }
 
-static void adma_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors adma_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct adma_port_priv *pp = qc->ap->private_data;
 	u8  *buf = pp->pkt;
@@ -306,7 +306,7 @@
 
 	adma_enter_reg_mode(qc->ap);
 	if (qc->tf.protocol != ATA_PROT_DMA)
-		return;
+		return AC_ERR_OK;
 
 	buf[i++] = 0;	/* Response flags */
 	buf[i++] = 0;	/* reserved */
@@ -371,6 +371,7 @@
 			printk("%s\n", obuf);
 	}
 #endif
+	return AC_ERR_OK;
 }
 
 static inline void adma_packet_start(struct ata_queued_cmd *qc)
--- linux-ein-5.4.0.orig/drivers/ata/sata_dwc_460ex.c
+++ linux-ein-5.4.0/drivers/ata/sata_dwc_460ex.c
@@ -145,7 +145,11 @@
 #endif
 };
 
-#define SATA_DWC_QCMD_MAX	32
+/*
+ * Allow one extra special slot for commands and DMA management
+ * to account for libata internal commands.
+ */
+#define SATA_DWC_QCMD_MAX	(ATA_MAX_QUEUE + 1)
 
 struct sata_dwc_device_port {
 	struct sata_dwc_device	*hsdev;
@@ -1249,24 +1253,20 @@
 	irq = irq_of_parse_and_map(np, 0);
 	if (irq == NO_IRQ) {
 		dev_err(&ofdev->dev, "no SATA DMA irq\n");
-		err = -ENODEV;
-		goto error_out;
+		return -ENODEV;
 	}
 
 #ifdef CONFIG_SATA_DWC_OLD_DMA
 	if (!of_find_property(np, "dmas", NULL)) {
 		err = sata_dwc_dma_init_old(ofdev, hsdev);
 		if (err)
-			goto error_out;
+			return err;
 	}
 #endif
 
 	hsdev->phy = devm_phy_optional_get(hsdev->dev, "sata-phy");
-	if (IS_ERR(hsdev->phy)) {
-		err = PTR_ERR(hsdev->phy);
-		hsdev->phy = NULL;
-		goto error_out;
-	}
+	if (IS_ERR(hsdev->phy))
+		return PTR_ERR(hsdev->phy);
 
 	err = phy_init(hsdev->phy);
 	if (err)
--- linux-ein-5.4.0.orig/drivers/ata/sata_fsl.c
+++ linux-ein-5.4.0/drivers/ata/sata_fsl.c
@@ -502,7 +502,7 @@
 	return num_prde;
 }
 
-static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sata_fsl_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct sata_fsl_port_priv *pp = ap->private_data;
@@ -548,6 +548,8 @@
 
 	VPRINTK("SATA FSL : xx_qc_prep, di = 0x%x, ttl = %d, num_prde = %d\n",
 		desc_info, ttl_dwords, num_prde);
+
+	return AC_ERR_OK;
 }
 
 static unsigned int sata_fsl_qc_issue(struct ata_queued_cmd *qc)
@@ -1278,7 +1280,7 @@
 				     i, ioread32(hcr_base + CC),
 				     ioread32(hcr_base + CA));
 		}
-		ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+		ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 		return;
 
 	} else if ((ap->qc_active & (1ULL << ATA_TAG_INTERNAL))) {
@@ -1392,6 +1394,14 @@
 	return 0;
 }
 
+static void sata_fsl_host_stop(struct ata_host *host)
+{
+        struct sata_fsl_host_priv *host_priv = host->private_data;
+
+        iounmap(host_priv->hcr_base);
+        kfree(host_priv);
+}
+
 /*
  * scsi mid-layer and libata interface structures
  */
@@ -1424,6 +1434,8 @@
 	.port_start = sata_fsl_port_start,
 	.port_stop = sata_fsl_port_stop,
 
+	.host_stop      = sata_fsl_host_stop,
+
 	.pmp_attach = sata_fsl_pmp_attach,
 	.pmp_detach = sata_fsl_pmp_detach,
 };
@@ -1478,9 +1490,9 @@
 	host_priv->ssr_base = ssr_base;
 	host_priv->csr_base = csr_base;
 
-	irq = irq_of_parse_and_map(ofdev->dev.of_node, 0);
-	if (!irq) {
-		dev_err(&ofdev->dev, "invalid irq from platform\n");
+	irq = platform_get_irq(ofdev, 0);
+	if (irq < 0) {
+		retval = irq;
 		goto error_exit_with_cleanup;
 	}
 	host_priv->irq = irq;
@@ -1555,10 +1567,6 @@
 
 	ata_host_detach(host);
 
-	irq_dispose_mapping(host_priv->irq);
-	iounmap(host_priv->hcr_base);
-	kfree(host_priv);
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/ata/sata_gemini.c
+++ linux-ein-5.4.0/drivers/ata/sata_gemini.c
@@ -435,6 +435,7 @@
 };
 module_platform_driver(gemini_sata_driver);
 
+MODULE_DESCRIPTION("low level driver for Cortina Systems Gemini SATA bridge");
 MODULE_AUTHOR("Linus Walleij <linus.walleij@linaro.org>");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS("platform:" DRV_NAME);
--- linux-ein-5.4.0.orig/drivers/ata/sata_highbank.c
+++ linux-ein-5.4.0/drivers/ata/sata_highbank.c
@@ -469,10 +469,12 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
+	if (irq < 0) {
 		dev_err(dev, "no irq\n");
-		return -EINVAL;
+		return irq;
 	}
+	if (!irq)
+		return -EINVAL;
 
 	hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL);
 	if (!hpriv) {
--- linux-ein-5.4.0.orig/drivers/ata/sata_inic162x.c
+++ linux-ein-5.4.0/drivers/ata/sata_inic162x.c
@@ -478,7 +478,7 @@
 	prd[-1].flags |= PRD_END;
 }
 
-static void inic_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors inic_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct inic_port_priv *pp = qc->ap->private_data;
 	struct inic_pkt *pkt = pp->pkt;
@@ -538,6 +538,8 @@
 		inic_fill_sg(prd, qc);
 
 	pp->cpb_tbl[0] = pp->pkt_dma;
+
+	return AC_ERR_OK;
 }
 
 static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
--- linux-ein-5.4.0.orig/drivers/ata/sata_mv.c
+++ linux-ein-5.4.0/drivers/ata/sata_mv.c
@@ -592,8 +592,8 @@
 static int mv_port_start(struct ata_port *ap);
 static void mv_port_stop(struct ata_port *ap);
 static int mv_qc_defer(struct ata_queued_cmd *qc);
-static void mv_qc_prep(struct ata_queued_cmd *qc);
-static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
+static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc);
 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
 static int mv_hardreset(struct ata_link *link, unsigned int *class,
 			unsigned long deadline);
@@ -2031,7 +2031,7 @@
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors mv_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct mv_port_priv *pp = ap->private_data;
@@ -2043,15 +2043,15 @@
 	switch (tf->protocol) {
 	case ATA_PROT_DMA:
 		if (tf->command == ATA_CMD_DSM)
-			return;
+			return AC_ERR_OK;
 		/* fall-thru */
 	case ATA_PROT_NCQ:
 		break;	/* continue below */
 	case ATA_PROT_PIO:
 		mv_rw_multi_errata_sata24(qc);
-		return;
+		return AC_ERR_OK;
 	default:
-		return;
+		return AC_ERR_OK;
 	}
 
 	/* Fill in command request block
@@ -2098,12 +2098,10 @@
 		 * non-NCQ mode are: [RW] STREAM DMA and W DMA FUA EXT, none
 		 * of which are defined/used by Linux.  If we get here, this
 		 * driver needs work.
-		 *
-		 * FIXME: modify libata to give qc_prep a return value and
-		 * return error here.
 		 */
-		BUG_ON(tf->command);
-		break;
+		ata_port_err(ap, "%s: unsupported command: %.2x\n", __func__,
+				tf->command);
+		return AC_ERR_INVALID;
 	}
 	mv_crqb_pack_cmd(cw++, tf->nsect, ATA_REG_NSECT, 0);
 	mv_crqb_pack_cmd(cw++, tf->hob_lbal, ATA_REG_LBAL, 0);
@@ -2116,8 +2114,10 @@
 	mv_crqb_pack_cmd(cw++, tf->command, ATA_REG_CMD, 1);	/* last */
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 	mv_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 /**
@@ -2132,7 +2132,7 @@
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
+static enum ata_completion_errors mv_qc_prep_iie(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct mv_port_priv *pp = ap->private_data;
@@ -2143,9 +2143,9 @@
 
 	if ((tf->protocol != ATA_PROT_DMA) &&
 	    (tf->protocol != ATA_PROT_NCQ))
-		return;
+		return AC_ERR_OK;
 	if (tf->command == ATA_CMD_DSM)
-		return;  /* use bmdma for this */
+		return AC_ERR_OK;  /* use bmdma for this */
 
 	/* Fill in Gen IIE command request block */
 	if (!(tf->flags & ATA_TFLAG_WRITE))
@@ -2186,8 +2186,10 @@
 		);
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 	mv_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 /**
@@ -2827,7 +2829,7 @@
 	}
 
 	if (work_done) {
-		ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+		ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 
 		/* Update the software queue position index in hardware */
 		writelfl((pp->crpb_dma & EDMA_RSP_Q_BASE_LO_MASK) |
@@ -3890,8 +3892,8 @@
 		break;
 
 	default:
-		dev_err(host->dev, "BUG: invalid board index %u\n", board_idx);
-		return 1;
+		dev_alert(host->dev, "BUG: invalid board index %u\n", board_idx);
+		return -EINVAL;
 	}
 
 	hpriv->hp_flags = hp_flags;
@@ -4095,6 +4097,10 @@
 		n_ports = mv_platform_data->n_ports;
 		irq = platform_get_irq(pdev, 0);
 	}
+	if (irq < 0)
+		return irq;
+	if (!irq)
+		return -EINVAL;
 
 	host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports);
 	hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL);
--- linux-ein-5.4.0.orig/drivers/ata/sata_nv.c
+++ linux-ein-5.4.0/drivers/ata/sata_nv.c
@@ -297,7 +297,7 @@
 static void nv_ck804_thaw(struct ata_port *ap);
 static int nv_adma_slave_config(struct scsi_device *sdev);
 static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc);
-static void nv_adma_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors nv_adma_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc);
 static irqreturn_t nv_adma_interrupt(int irq, void *dev_instance);
 static void nv_adma_irq_clear(struct ata_port *ap);
@@ -319,7 +319,7 @@
 static void nv_swncq_error_handler(struct ata_port *ap);
 static int nv_swncq_slave_config(struct scsi_device *sdev);
 static int nv_swncq_port_start(struct ata_port *ap);
-static void nv_swncq_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors nv_swncq_qc_prep(struct ata_queued_cmd *qc);
 static void nv_swncq_fill_sg(struct ata_queued_cmd *qc);
 static unsigned int nv_swncq_qc_issue(struct ata_queued_cmd *qc);
 static void nv_swncq_irq_clear(struct ata_port *ap, u16 fis);
@@ -984,7 +984,7 @@
 					check_commands = 0;
 				check_commands &= ~(1 << pos);
 			}
-			ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+			ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 		}
 	}
 
@@ -1344,7 +1344,7 @@
 	return 1;
 }
 
-static void nv_adma_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors nv_adma_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct nv_adma_port_priv *pp = qc->ap->private_data;
 	struct nv_adma_cpb *cpb = &pp->cpb[qc->hw_tag];
@@ -1356,7 +1356,7 @@
 			(qc->flags & ATA_QCFLAG_DMAMAP));
 		nv_adma_register_mode(qc->ap);
 		ata_bmdma_qc_prep(qc);
-		return;
+		return AC_ERR_OK;
 	}
 
 	cpb->resp_flags = NV_CPB_RESP_DONE;
@@ -1388,6 +1388,8 @@
 	cpb->ctl_flags = ctl_flags;
 	wmb();
 	cpb->resp_flags = 0;
+
+	return AC_ERR_OK;
 }
 
 static unsigned int nv_adma_qc_issue(struct ata_queued_cmd *qc)
@@ -1950,17 +1952,19 @@
 	return 0;
 }
 
-static void nv_swncq_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors nv_swncq_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (qc->tf.protocol != ATA_PROT_NCQ) {
 		ata_bmdma_qc_prep(qc);
-		return;
+		return AC_ERR_OK;
 	}
 
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	nv_swncq_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static void nv_swncq_fill_sg(struct ata_queued_cmd *qc)
@@ -2096,7 +2100,7 @@
 	pp->dhfis_bits &= ~done_mask;
 	pp->dmafis_bits &= ~done_mask;
 	pp->sdbfis_bits |= done_mask;
-	ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+	ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 
 	if (!ap->qc_active) {
 		DPRINTK("over\n");
--- linux-ein-5.4.0.orig/drivers/ata/sata_promise.c
+++ linux-ein-5.4.0/drivers/ata/sata_promise.c
@@ -139,7 +139,7 @@
 static int pdc_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int pdc_common_port_start(struct ata_port *ap);
 static int pdc_sata_port_start(struct ata_port *ap);
-static void pdc_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static int pdc_check_atapi_dma(struct ata_queued_cmd *qc);
@@ -633,7 +633,7 @@
 	prd[idx - 1].flags_len |= cpu_to_le32(ATA_PRD_EOT);
 }
 
-static void pdc_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pdc_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct pdc_port_priv *pp = qc->ap->private_data;
 	unsigned int i;
@@ -665,6 +665,8 @@
 	default:
 		break;
 	}
+
+	return AC_ERR_OK;
 }
 
 static int pdc_is_sataii_tx4(unsigned long flags)
--- linux-ein-5.4.0.orig/drivers/ata/sata_qstor.c
+++ linux-ein-5.4.0/drivers/ata/sata_qstor.c
@@ -100,7 +100,7 @@
 static int qs_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static int qs_port_start(struct ata_port *ap);
 static void qs_host_stop(struct ata_host *host);
-static void qs_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors qs_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int qs_qc_issue(struct ata_queued_cmd *qc);
 static int qs_check_atapi_dma(struct ata_queued_cmd *qc);
 static void qs_freeze(struct ata_port *ap);
@@ -260,7 +260,7 @@
 	return si;
 }
 
-static void qs_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors qs_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct qs_port_priv *pp = qc->ap->private_data;
 	u8 dflags = QS_DF_PORD, *buf = pp->pkt;
@@ -272,7 +272,7 @@
 
 	qs_enter_reg_mode(qc->ap);
 	if (qc->tf.protocol != ATA_PROT_DMA)
-		return;
+		return AC_ERR_OK;
 
 	nelem = qs_fill_sg(qc);
 
@@ -295,6 +295,8 @@
 
 	/* frame information structure (FIS) */
 	ata_tf_to_fis(&qc->tf, 0, 1, &buf[32]);
+
+	return AC_ERR_OK;
 }
 
 static inline void qs_packet_start(struct ata_queued_cmd *qc)
--- linux-ein-5.4.0.orig/drivers/ata/sata_rcar.c
+++ linux-ein-5.4.0/drivers/ata/sata_rcar.c
@@ -120,7 +120,7 @@
 /* Descriptor table word 0 bit (when DTA32M = 1) */
 #define SATA_RCAR_DTEND			BIT(0)
 
-#define SATA_RCAR_DMA_BOUNDARY		0x1FFFFFFEUL
+#define SATA_RCAR_DMA_BOUNDARY		0x1FFFFFFFUL
 
 /* Gen2 Physical Layer Control Registers */
 #define RCAR_GEN2_PHY_CTL1_REG		0x1704
@@ -550,12 +550,14 @@
 	prd[si - 1].addr |= cpu_to_le32(SATA_RCAR_DTEND);
 }
 
-static void sata_rcar_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sata_rcar_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	sata_rcar_bmdma_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static void sata_rcar_bmdma_setup(struct ata_queued_cmd *qc)
@@ -905,7 +907,7 @@
 	pm_runtime_enable(dev);
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0)
-		goto err_pm_disable;
+		goto err_pm_put;
 
 	host = ata_host_alloc(dev, 1);
 	if (!host) {
@@ -935,7 +937,6 @@
 
 err_pm_put:
 	pm_runtime_put(dev);
-err_pm_disable:
 	pm_runtime_disable(dev);
 	return ret;
 }
@@ -989,8 +990,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put(dev);
 		return ret;
+	}
 
 	if (priv->type == RCAR_GEN3_SATA) {
 		sata_rcar_init_module(priv);
@@ -1015,8 +1018,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put(dev);
 		return ret;
+	}
 
 	sata_rcar_setup_port(host);
 
--- linux-ein-5.4.0.orig/drivers/ata/sata_sil.c
+++ linux-ein-5.4.0/drivers/ata/sata_sil.c
@@ -103,7 +103,7 @@
 static int sil_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
 static int sil_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
 static int sil_set_mode(struct ata_link *link, struct ata_device **r_failed);
-static void sil_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors sil_qc_prep(struct ata_queued_cmd *qc);
 static void sil_bmdma_setup(struct ata_queued_cmd *qc);
 static void sil_bmdma_start(struct ata_queued_cmd *qc);
 static void sil_bmdma_stop(struct ata_queued_cmd *qc);
@@ -317,12 +317,14 @@
 		last_prd->flags_len |= cpu_to_le32(ATA_PRD_EOT);
 }
 
-static void sil_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sil_qc_prep(struct ata_queued_cmd *qc)
 {
 	if (!(qc->flags & ATA_QCFLAG_DMAMAP))
-		return;
+		return AC_ERR_OK;
 
 	sil_fill_sg(qc);
+
+	return AC_ERR_OK;
 }
 
 static unsigned char sil_get_device_cache_line(struct pci_dev *pdev)
--- linux-ein-5.4.0.orig/drivers/ata/sata_sil24.c
+++ linux-ein-5.4.0/drivers/ata/sata_sil24.c
@@ -326,7 +326,7 @@
 static int sil24_scr_read(struct ata_link *link, unsigned sc_reg, u32 *val);
 static int sil24_scr_write(struct ata_link *link, unsigned sc_reg, u32 val);
 static int sil24_qc_defer(struct ata_queued_cmd *qc);
-static void sil24_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
 static bool sil24_qc_fill_rtf(struct ata_queued_cmd *qc);
 static void sil24_pmp_attach(struct ata_port *ap);
@@ -830,7 +830,7 @@
 	return ata_std_qc_defer(qc);
 }
 
-static void sil24_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors sil24_qc_prep(struct ata_queued_cmd *qc)
 {
 	struct ata_port *ap = qc->ap;
 	struct sil24_port_priv *pp = ap->private_data;
@@ -874,6 +874,8 @@
 
 	if (qc->flags & ATA_QCFLAG_DMAMAP)
 		sil24_fill_sg(qc, sge);
+
+	return AC_ERR_OK;
 }
 
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc)
--- linux-ein-5.4.0.orig/drivers/ata/sata_sx4.c
+++ linux-ein-5.4.0/drivers/ata/sata_sx4.c
@@ -202,7 +202,7 @@
 static void pdc_freeze(struct ata_port *ap);
 static void pdc_thaw(struct ata_port *ap);
 static int pdc_port_start(struct ata_port *ap);
-static void pdc20621_qc_prep(struct ata_queued_cmd *qc);
+static enum ata_completion_errors pdc20621_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
 static unsigned int pdc20621_dimm_init(struct ata_host *host);
@@ -530,7 +530,7 @@
 	VPRINTK("ata pkt buf ofs %u, mmio copied\n", i);
 }
 
-static void pdc20621_qc_prep(struct ata_queued_cmd *qc)
+static enum ata_completion_errors pdc20621_qc_prep(struct ata_queued_cmd *qc)
 {
 	switch (qc->tf.protocol) {
 	case ATA_PROT_DMA:
@@ -542,6 +542,8 @@
 	default:
 		break;
 	}
+
+	return AC_ERR_OK;
 }
 
 static void __pdc20621_push_hdma(struct ata_queued_cmd *qc,
--- linux-ein-5.4.0.orig/drivers/atm/atmtcp.c
+++ linux-ein-5.4.0/drivers/atm/atmtcp.c
@@ -433,9 +433,15 @@
 		return -EMEDIUMTYPE;
 	}
 	dev_data = PRIV(dev);
-	if (!dev_data->persist) return 0;
+	if (!dev_data->persist) {
+		atm_dev_put(dev);
+		return 0;
+	}
 	dev_data->persist = 0;
-	if (PRIV(dev)->vcc) return 0;
+	if (PRIV(dev)->vcc) {
+		atm_dev_put(dev);
+		return 0;
+	}
 	kfree(dev_data);
 	atm_dev_put(dev);
 	atm_dev_deregister(dev);
--- linux-ein-5.4.0.orig/drivers/atm/eni.c
+++ linux-ein-5.4.0/drivers/atm/eni.c
@@ -374,7 +374,7 @@
 		here = (eni_vcc->descr+skip) & (eni_vcc->words-1);
 		dma[j++] = (here << MID_DMA_COUNT_SHIFT) | (vcc->vci
 		    << MID_DMA_VCI_SHIFT) | MID_DT_JK;
-		j++;
+		dma[j++] = 0;
 	}
 	here = (eni_vcc->descr+size+skip) & (eni_vcc->words-1);
 	if (!eff) size += skip;
@@ -447,7 +447,7 @@
 	if (size != eff) {
 		dma[j++] = (here << MID_DMA_COUNT_SHIFT) |
 		    (vcc->vci << MID_DMA_VCI_SHIFT) | MID_DT_JK;
-		j++;
+		dma[j++] = 0;
 	}
 	if (!j || j > 2*RX_DMA_BUF) {
 		printk(KERN_CRIT DEV_LABEL "!j or j too big!!!\n");
@@ -1116,6 +1116,8 @@
 	}
 	paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len,
 			       DMA_TO_DEVICE);
+	if (dma_mapping_error(&eni_dev->pci_dev->dev, paddr))
+		return enq_next;
 	ENI_PRV_PADDR(skb) = paddr;
 	/* prepare DMA queue entries */
 	j = 0;
@@ -2245,7 +2247,7 @@
 
 	rc = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32));
 	if (rc < 0)
-		goto out;
+		goto err_disable;
 
 	rc = -ENOMEM;
 	eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL);
@@ -2281,7 +2283,8 @@
 	return rc;
 
 err_eni_release:
-	eni_do_release(dev);
+	dev->phy = NULL;
+	iounmap(ENI_DEV(dev)->ioaddr);
 err_unregister:
 	atm_dev_deregister(dev);
 err_free_consistent:
--- linux-ein-5.4.0.orig/drivers/atm/firestream.c
+++ linux-ein-5.4.0/drivers/atm/firestream.c
@@ -912,6 +912,7 @@
 			}
 			if (!to) {
 				printk ("No more free channels for FS50..\n");
+				kfree(vcc);
 				return -EBUSY;
 			}
 			vcc->channo = dev->channo;
@@ -922,6 +923,7 @@
 			if (((DO_DIRECTION(rxtp) && dev->atm_vccs[vcc->channo])) ||
 			    ( DO_DIRECTION(txtp) && test_bit (vcc->channo, dev->tx_inuse))) {
 				printk ("Channel is in use for FS155.\n");
+				kfree(vcc);
 				return -EBUSY;
 			}
 		}
@@ -935,6 +937,7 @@
 			    tc, sizeof (struct fs_transmit_config));
 		if (!tc) {
 			fs_dprintk (FS_DEBUG_OPEN, "fs: can't alloc transmit_config.\n");
+			kfree(vcc);
 			return -ENOMEM;
 		}
 
@@ -995,6 +998,7 @@
 				error = make_rate (pcr, r, &tmc0, NULL);
 				if (error) {
 					kfree(tc);
+					kfree(vcc);
 					return error;
 				}
 			}
@@ -1673,6 +1677,8 @@
 	dev->hw_base = pci_resource_start(pci_dev, 0);
 
 	dev->base = ioremap(dev->hw_base, 0x1000);
+	if (!dev->base)
+		return 1;
 
 	reset_chip (dev);
   
--- linux-ein-5.4.0.orig/drivers/atm/fore200e.c
+++ linux-ein-5.4.0/drivers/atm/fore200e.c
@@ -1414,12 +1414,14 @@
 static void
 fore200e_close(struct atm_vcc* vcc)
 {
-    struct fore200e*        fore200e = FORE200E_DEV(vcc->dev);
     struct fore200e_vcc*    fore200e_vcc;
+    struct fore200e*        fore200e;
     struct fore200e_vc_map* vc_map;
     unsigned long           flags;
 
     ASSERT(vcc);
+    fore200e = FORE200E_DEV(vcc->dev);
+
     ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
     ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
 
@@ -1464,10 +1466,10 @@
 static int
 fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
 {
-    struct fore200e*        fore200e     = FORE200E_DEV(vcc->dev);
-    struct fore200e_vcc*    fore200e_vcc = FORE200E_VCC(vcc);
+    struct fore200e*        fore200e;
+    struct fore200e_vcc*    fore200e_vcc;
     struct fore200e_vc_map* vc_map;
-    struct host_txq*        txq          = &fore200e->host_txq;
+    struct host_txq*        txq;
     struct host_txq_entry*  entry;
     struct tpd*             tpd;
     struct tpd_haddr        tpd_haddr;
@@ -1480,9 +1482,18 @@
     unsigned char*          data;
     unsigned long           flags;
 
-    ASSERT(vcc);
-    ASSERT(fore200e);
-    ASSERT(fore200e_vcc);
+    if (!vcc)
+        return -EINVAL;
+
+    fore200e = FORE200E_DEV(vcc->dev);
+    fore200e_vcc = FORE200E_VCC(vcc);
+
+    if (!fore200e)
+        return -EINVAL;
+
+    txq = &fore200e->host_txq;
+    if (!fore200e_vcc)
+        return -EINVAL;
 
     if (!test_bit(ATM_VF_READY, &vcc->flags)) {
 	DPRINTK(1, "VC %d.%d.%d not ready for tx\n", vcc->itf, vcc->vpi, vcc->vpi);
--- linux-ein-5.4.0.orig/drivers/atm/idt77105.c
+++ linux-ein-5.4.0/drivers/atm/idt77105.c
@@ -262,7 +262,7 @@
 {
 	unsigned long flags;
 
-	if (!(dev->dev_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
+	if (!(dev->phy_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
 		return -ENOMEM;
 	PRIV(dev)->dev = dev;
 	spin_lock_irqsave(&idt77105_priv_lock, flags);
@@ -337,7 +337,7 @@
                 else
                     idt77105_all = walk->next;
 	        dev->phy = NULL;
-                dev->dev_data = NULL;
+                dev->phy_data = NULL;
                 kfree(walk);
                 break;
             }
--- linux-ein-5.4.0.orig/drivers/atm/idt77252.c
+++ linux-ein-5.4.0/drivers/atm/idt77252.c
@@ -2914,6 +2914,7 @@
 
 				recycle_rx_pool_skb(card, &vc->rcv.rx_pool);
 			}
+			kfree(vc);
 		}
 	}
 }
@@ -2957,6 +2958,15 @@
 	return 0;
 }
 
+static void
+close_card_ubr0(struct idt77252_dev *card)
+{
+	struct vc_map *vc = card->vcs[0];
+
+	free_scq(card, vc->scq);
+	kfree(vc);
+}
+
 static int
 idt77252_dev_open(struct idt77252_dev *card)
 {
@@ -3006,6 +3016,7 @@
 	struct idt77252_dev *card = dev->dev_data;
 	u32 conf;
 
+	close_card_ubr0(card);
 	close_card_oam(card);
 
 	conf = SAR_CFG_RXPTH |	/* enable receive path           */
@@ -3606,7 +3617,7 @@
 
 	if ((err = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32)))) {
 		printk("idt77252: can't enable DMA for PCI device at %s\n", pci_name(pcidev));
-		return err;
+		goto err_out_disable_pdev;
 	}
 
 	card = kzalloc(sizeof(struct idt77252_dev), GFP_KERNEL);
@@ -3766,6 +3777,7 @@
 		card = idt77252_chain;
 		dev = card->atmdev;
 		idt77252_chain = card->next;
+		del_timer_sync(&card->tst_timer);
 
 		if (dev->phy->stop)
 			dev->phy->stop(dev);
--- linux-ein-5.4.0.orig/drivers/atm/iphase.c
+++ linux-ein-5.4.0/drivers/atm/iphase.c
@@ -3295,7 +3295,7 @@
 {
 	pci_unregister_driver(&ia_driver);
 
-        del_timer(&ia_timer);
+	del_timer_sync(&ia_timer);
 }
 
 module_init(ia_module_init);
--- linux-ein-5.4.0.orig/drivers/atm/lanai.c
+++ linux-ein-5.4.0/drivers/atm/lanai.c
@@ -2234,6 +2234,7 @@
 	conf1_write(lanai);
 #endif
 	iounmap(lanai->base);
+	lanai->base = NULL;
     error_pci:
 	pci_disable_device(lanai->pci);
     error:
@@ -2246,6 +2247,8 @@
 static void lanai_dev_close(struct atm_dev *atmdev)
 {
 	struct lanai_dev *lanai = (struct lanai_dev *) atmdev->dev_data;
+	if (lanai->base==NULL)
+		return;
 	printk(KERN_INFO DEV_LABEL "(itf %d): shutting down interface\n",
 	    lanai->number);
 	lanai_timed_poll_stop(lanai);
@@ -2555,7 +2558,7 @@
 	struct atm_dev *atmdev;
 	int result;
 
-	lanai = kmalloc(sizeof(*lanai), GFP_KERNEL);
+	lanai = kzalloc(sizeof(*lanai), GFP_KERNEL);
 	if (lanai == NULL) {
 		printk(KERN_ERR DEV_LABEL
 		       ": couldn't allocate dev_data structure!\n");
--- linux-ein-5.4.0.orig/drivers/atm/nicstar.c
+++ linux-ein-5.4.0/drivers/atm/nicstar.c
@@ -297,7 +297,7 @@
 {
 	XPRINTK("nicstar: nicstar_cleanup() called.\n");
 
-	del_timer(&ns_timer);
+	del_timer_sync(&ns_timer);
 
 	pci_unregister_driver(&nicstar_driver);
 
@@ -525,6 +525,15 @@
 	/* Set the VPI/VCI MSb mask to zero so we can receive OAM cells */
 	writel(0x00000000, card->membase + VPM);
 
+	card->intcnt = 0;
+	if (request_irq
+	    (pcidev->irq, &ns_irq_handler, IRQF_SHARED, "nicstar", card) != 0) {
+		pr_err("nicstar%d: can't allocate IRQ %d.\n", i, pcidev->irq);
+		error = 9;
+		ns_init_card_error(card, error);
+		return error;
+	}
+
 	/* Initialize TSQ */
 	card->tsq.org = dma_alloc_coherent(&card->pcidev->dev,
 					   NS_TSQSIZE + NS_TSQ_ALIGNMENT,
@@ -751,15 +760,6 @@
 
 	card->efbie = 1;
 
-	card->intcnt = 0;
-	if (request_irq
-	    (pcidev->irq, &ns_irq_handler, IRQF_SHARED, "nicstar", card) != 0) {
-		printk("nicstar%d: can't allocate IRQ %d.\n", i, pcidev->irq);
-		error = 9;
-		ns_init_card_error(card, error);
-		return error;
-	}
-
 	/* Register device */
 	card->atmdev = atm_dev_register("nicstar", &card->pcidev->dev, &atm_ops,
 					-1, NULL);
@@ -837,10 +837,12 @@
 			dev_kfree_skb_any(hb);
 	}
 	if (error >= 12) {
-		kfree(card->rsq.org);
+		dma_free_coherent(&card->pcidev->dev, NS_RSQSIZE + NS_RSQ_ALIGNMENT,
+				card->rsq.org, card->rsq.dma);
 	}
 	if (error >= 11) {
-		kfree(card->tsq.org);
+		dma_free_coherent(&card->pcidev->dev, NS_TSQSIZE + NS_TSQ_ALIGNMENT,
+				card->tsq.org, card->tsq.dma);
 	}
 	if (error >= 10) {
 		free_irq(card->pcidev->irq, card);
@@ -1706,6 +1708,8 @@
 
 	if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
 		atomic_inc(&vcc->stats->tx_err);
+		dma_unmap_single(&card->pcidev->dev, NS_PRV_DMA(skb), skb->len,
+				 DMA_TO_DEVICE);
 		dev_kfree_skb_any(skb);
 		return -EIO;
 	}
--- linux-ein-5.4.0.orig/drivers/atm/uPD98402.c
+++ linux-ein-5.4.0/drivers/atm/uPD98402.c
@@ -211,7 +211,7 @@
 static int uPD98402_start(struct atm_dev *dev)
 {
 	DPRINTK("phy_start\n");
-	if (!(dev->dev_data = kmalloc(sizeof(struct uPD98402_priv),GFP_KERNEL)))
+	if (!(dev->phy_data = kmalloc(sizeof(struct uPD98402_priv),GFP_KERNEL)))
 		return -ENOMEM;
 	spin_lock_init(&PRIV(dev)->lock);
 	memset(&PRIV(dev)->sonet_stats,0,sizeof(struct k_sonet_stats));
--- linux-ein-5.4.0.orig/drivers/atm/zatm.c
+++ linux-ein-5.4.0/drivers/atm/zatm.c
@@ -940,7 +940,7 @@
 	    vcc->qos.txtp.max_pcr >= ATM_OC3_PCR);
 	if (unlimited && zatm_dev->ubr != -1) zatm_vcc->shaper = zatm_dev->ubr;
 	else {
-		int uninitialized_var(pcr);
+		int pcr;
 
 		if (unlimited) vcc->qos.txtp.max_sdu = ATM_MAX_AAL5_PDU;
 		if ((zatm_vcc->shaper = alloc_shaper(vcc->dev,&pcr,
--- linux-ein-5.4.0.orig/drivers/auxdisplay/ht16k33.c
+++ linux-ein-5.4.0/drivers/auxdisplay/ht16k33.c
@@ -117,8 +117,7 @@
 {
 	struct ht16k33_fbdev *fbdev = &priv->fbdev;
 
-	schedule_delayed_work(&fbdev->work,
-			      msecs_to_jiffies(HZ / fbdev->refresh_rate));
+	schedule_delayed_work(&fbdev->work, HZ / fbdev->refresh_rate);
 }
 
 /*
@@ -220,6 +219,15 @@
 	.check_fb	= ht16k33_bl_check_fb,
 };
 
+/*
+ * Blank events will be passed to the actual device handling the backlight when
+ * we return zero here.
+ */
+static int ht16k33_blank(int blank, struct fb_info *info)
+{
+	return 0;
+}
+
 static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
 {
 	struct ht16k33_priv *priv = info->par;
@@ -232,6 +240,7 @@
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
+	.fb_blank = ht16k33_blank,
 	.fb_fillrect = sys_fillrect,
 	.fb_copyarea = sys_copyarea,
 	.fb_imageblit = sys_imageblit,
@@ -419,6 +428,33 @@
 	if (err)
 		return err;
 
+	/* Backlight */
+	memset(&bl_props, 0, sizeof(struct backlight_properties));
+	bl_props.type = BACKLIGHT_RAW;
+	bl_props.max_brightness = MAX_BRIGHTNESS;
+
+	bl = devm_backlight_device_register(&client->dev, DRIVER_NAME"-bl",
+					    &client->dev, priv,
+					    &ht16k33_bl_ops, &bl_props);
+	if (IS_ERR(bl)) {
+		dev_err(&client->dev, "failed to register backlight\n");
+		return PTR_ERR(bl);
+	}
+
+	err = of_property_read_u32(node, "default-brightness-level",
+				   &dft_brightness);
+	if (err) {
+		dft_brightness = MAX_BRIGHTNESS;
+	} else if (dft_brightness > MAX_BRIGHTNESS) {
+		dev_warn(&client->dev,
+			 "invalid default brightness level: %u, using %u\n",
+			 dft_brightness, MAX_BRIGHTNESS);
+		dft_brightness = MAX_BRIGHTNESS;
+	}
+
+	bl->props.brightness = dft_brightness;
+	ht16k33_bl_update_status(bl);
+
 	/* Framebuffer (2 bytes per column) */
 	BUILD_BUG_ON(PAGE_SIZE < HT16K33_FB_SIZE);
 	fbdev->buffer = (unsigned char *) get_zeroed_page(GFP_KERNEL);
@@ -451,6 +487,7 @@
 	fbdev->info->screen_size = HT16K33_FB_SIZE;
 	fbdev->info->fix = ht16k33_fb_fix;
 	fbdev->info->var = ht16k33_fb_var;
+	fbdev->info->bl_dev = bl;
 	fbdev->info->pseudo_palette = NULL;
 	fbdev->info->flags = FBINFO_FLAG_DEFAULT;
 	fbdev->info->par = priv;
@@ -463,34 +500,6 @@
 	if (err)
 		goto err_fbdev_unregister;
 
-	/* Backlight */
-	memset(&bl_props, 0, sizeof(struct backlight_properties));
-	bl_props.type = BACKLIGHT_RAW;
-	bl_props.max_brightness = MAX_BRIGHTNESS;
-
-	bl = devm_backlight_device_register(&client->dev, DRIVER_NAME"-bl",
-					    &client->dev, priv,
-					    &ht16k33_bl_ops, &bl_props);
-	if (IS_ERR(bl)) {
-		dev_err(&client->dev, "failed to register backlight\n");
-		err = PTR_ERR(bl);
-		goto err_fbdev_unregister;
-	}
-
-	err = of_property_read_u32(node, "default-brightness-level",
-				   &dft_brightness);
-	if (err) {
-		dft_brightness = MAX_BRIGHTNESS;
-	} else if (dft_brightness > MAX_BRIGHTNESS) {
-		dev_warn(&client->dev,
-			 "invalid default brightness level: %u, using %u\n",
-			 dft_brightness, MAX_BRIGHTNESS);
-		dft_brightness = MAX_BRIGHTNESS;
-	}
-
-	bl->props.brightness = dft_brightness;
-	ht16k33_bl_update_status(bl);
-
 	ht16k33_fb_queue(priv);
 	return 0;
 
--- linux-ein-5.4.0.orig/drivers/auxdisplay/img-ascii-lcd.c
+++ linux-ein-5.4.0/drivers/auxdisplay/img-ascii-lcd.c
@@ -280,6 +280,16 @@
 	if (msg[count - 1] == '\n')
 		count--;
 
+	if (!count) {
+		/* clear the LCD */
+		devm_kfree(&ctx->pdev->dev, ctx->message);
+		ctx->message = NULL;
+		ctx->message_len = 0;
+		memset(ctx->curr, ' ', ctx->cfg->num_chars);
+		ctx->cfg->update(ctx);
+		return 0;
+	}
+
 	new_msg = devm_kmalloc(&ctx->pdev->dev, count + 1, GFP_KERNEL);
 	if (!new_msg)
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/base/arch_topology.c
+++ linux-ein-5.4.0/drivers/base/arch_topology.c
@@ -48,7 +48,7 @@
 {
 	struct cpu *cpu = container_of(dev, struct cpu, dev);
 
-	return sprintf(buf, "%lu\n", topology_get_cpu_scale(cpu->dev.id));
+	return sysfs_emit(buf, "%lu\n", topology_get_cpu_scale(cpu->dev.id));
 }
 
 static void update_topology_flags_workfn(struct work_struct *work);
@@ -270,7 +270,7 @@
 static int __init parse_core(struct device_node *core, int package_id,
 			     int core_id)
 {
-	char name[10];
+	char name[20];
 	bool leaf = true;
 	int i = 0;
 	int cpu;
@@ -317,7 +317,7 @@
 
 static int __init parse_cluster(struct device_node *cluster, int depth)
 {
-	char name[10];
+	char name[20];
 	bool leaf = true;
 	bool has_cores = false;
 	struct device_node *c;
@@ -457,7 +457,7 @@
 	for_each_online_cpu(cpu) {
 		cpu_topo = &cpu_topology[cpu];
 
-		if (cpuid_topo->llc_id == cpu_topo->llc_id) {
+		if (cpu_topo->llc_id != -1 && cpuid_topo->llc_id == cpu_topo->llc_id) {
 			cpumask_set_cpu(cpu, &cpuid_topo->llc_sibling);
 			cpumask_set_cpu(cpuid, &cpu_topo->llc_sibling);
 		}
@@ -538,4 +538,23 @@
 	else if (of_have_populated_dt() && parse_dt_topology())
 		reset_cpu_topology();
 }
+
+void store_cpu_topology(unsigned int cpuid)
+{
+	struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
+
+	if (cpuid_topo->package_id != -1)
+		goto topology_populated;
+
+	cpuid_topo->thread_id = -1;
+	cpuid_topo->core_id = cpuid;
+	cpuid_topo->package_id = cpu_to_node(cpuid);
+
+	pr_debug("CPU%u: package %d core %d thread %d\n",
+		 cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
+		 cpuid_topo->thread_id);
+
+topology_populated:
+	update_siblings_masks(cpuid);
+}
 #endif
--- linux-ein-5.4.0.orig/drivers/base/bus.c
+++ linux-ein-5.4.0/drivers/base/bus.c
@@ -620,7 +620,7 @@
 	if (drv->bus->p->drivers_autoprobe) {
 		error = driver_attach(drv);
 		if (error)
-			goto out_unregister;
+			goto out_del_list;
 	}
 	module_add_driver(drv->owner, drv);
 
@@ -647,6 +647,8 @@
 
 	return 0;
 
+out_del_list:
+	klist_del(&priv->knode_bus);
 out_unregister:
 	kobject_put(&priv->kobj);
 	/* drv->p is freed in driver_release()  */
--- linux-ein-5.4.0.orig/drivers/base/cacheinfo.c
+++ linux-ein-5.4.0/drivers/base/cacheinfo.c
@@ -377,7 +377,7 @@
 {
 	struct cacheinfo *this_leaf = dev_get_drvdata(dev);
 
-	return sprintf(buf, "%uK\n", this_leaf->size >> 10);
+	return sysfs_emit(buf, "%uK\n", this_leaf->size >> 10);
 }
 
 static ssize_t shared_cpumap_show_func(struct device *dev, bool list, char *buf)
@@ -407,11 +407,11 @@
 
 	switch (this_leaf->type) {
 	case CACHE_TYPE_DATA:
-		return sprintf(buf, "Data\n");
+		return sysfs_emit(buf, "Data\n");
 	case CACHE_TYPE_INST:
-		return sprintf(buf, "Instruction\n");
+		return sysfs_emit(buf, "Instruction\n");
 	case CACHE_TYPE_UNIFIED:
-		return sprintf(buf, "Unified\n");
+		return sysfs_emit(buf, "Unified\n");
 	default:
 		return -EINVAL;
 	}
@@ -425,11 +425,11 @@
 	int n = 0;
 
 	if ((ci_attr & CACHE_READ_ALLOCATE) && (ci_attr & CACHE_WRITE_ALLOCATE))
-		n = sprintf(buf, "ReadWriteAllocate\n");
+		n = sysfs_emit(buf, "ReadWriteAllocate\n");
 	else if (ci_attr & CACHE_READ_ALLOCATE)
-		n = sprintf(buf, "ReadAllocate\n");
+		n = sysfs_emit(buf, "ReadAllocate\n");
 	else if (ci_attr & CACHE_WRITE_ALLOCATE)
-		n = sprintf(buf, "WriteAllocate\n");
+		n = sysfs_emit(buf, "WriteAllocate\n");
 	return n;
 }
 
@@ -441,9 +441,9 @@
 	int n = 0;
 
 	if (ci_attr & CACHE_WRITE_THROUGH)
-		n = sprintf(buf, "WriteThrough\n");
+		n = sysfs_emit(buf, "WriteThrough\n");
 	else if (ci_attr & CACHE_WRITE_BACK)
-		n = sprintf(buf, "WriteBack\n");
+		n = sysfs_emit(buf, "WriteBack\n");
 	return n;
 }
 
--- linux-ein-5.4.0.orig/drivers/base/class.c
+++ linux-ein-5.4.0/drivers/base/class.c
@@ -191,6 +191,11 @@
 	}
 	error = class_add_groups(class_get(cls), cls->class_groups);
 	class_put(cls);
+	if (error) {
+		kobject_del(&cp->subsys.kobj);
+		kfree_const(cp->subsys.kobj.name);
+		kfree(cp);
+	}
 	return error;
 }
 EXPORT_SYMBOL_GPL(__class_register);
--- linux-ein-5.4.0.orig/drivers/base/component.c
+++ linux-ein-5.4.0/drivers/base/component.c
@@ -102,11 +102,11 @@
 	seq_printf(s, "%-40s %20s\n", "device name", "status");
 	seq_puts(s, "-------------------------------------------------------------\n");
 	for (i = 0; i < match->num; i++) {
-		struct device *d = (struct device *)match->compare[i].data;
+		struct component *component = match->compare[i].component;
 
-		seq_printf(s, "%-40s %20s\n", dev_name(d),
-			   match->compare[i].component ?
-			   "registered" : "not registered");
+		seq_printf(s, "%-40s %20s\n",
+			   component ? dev_name(component->dev) : "(unknown)",
+			   component ? (component->bound ? "bound" : "not bound") : "not registered");
 	}
 	mutex_unlock(&component_mutex);
 
@@ -257,7 +257,8 @@
 	ret = master->ops->bind(master->dev);
 	if (ret < 0) {
 		devres_release_group(master->dev, NULL);
-		dev_info(master->dev, "master bind failed: %d\n", ret);
+		if (ret != -EPROBE_DEFER)
+			dev_info(master->dev, "master bind failed: %d\n", ret);
 		return ret;
 	}
 
@@ -611,8 +612,9 @@
 		devres_release_group(component->dev, NULL);
 		devres_release_group(master->dev, NULL);
 
-		dev_err(master->dev, "failed to bind %s (ops %ps): %d\n",
-			dev_name(component->dev), component->ops, ret);
+		if (ret != -EPROBE_DEFER)
+			dev_err(master->dev, "failed to bind %s (ops %ps): %d\n",
+				dev_name(component->dev), component->ops, ret);
 	}
 
 	return ret;
--- linux-ein-5.4.0.orig/drivers/base/core.c
+++ linux-ein-5.4.0/drivers/base/core.c
@@ -106,6 +106,16 @@
 #endif
 #endif /* !CONFIG_SRCU */
 
+static bool device_is_ancestor(struct device *dev, struct device *target)
+{
+	while (target->parent) {
+		target = target->parent;
+		if (dev == target)
+			return true;
+	}
+	return false;
+}
+
 /**
  * device_is_dependent - Check if one device depends on another one
  * @dev: Device to check dependencies for.
@@ -119,7 +129,12 @@
 	struct device_link *link;
 	int ret;
 
-	if (dev == target)
+	/*
+	 * The "ancestors" check is needed to catch the case when the target
+	 * device has not been completely initialized yet and it is still
+	 * missing from the list of children of its parent device.
+	 */
+	if (dev == target || device_is_ancestor(dev, target))
 		return 1;
 
 	ret = device_for_each_child(dev, target, device_is_dependent);
@@ -454,8 +469,7 @@
 	dev_dbg(link->consumer, "Dropping the link to %s\n",
 		dev_name(link->supplier));
 
-	if (link->flags & DL_FLAG_PM_RUNTIME)
-		pm_runtime_drop_link(link->consumer);
+	pm_runtime_drop_link(link);
 
 	list_del_rcu(&link->s_node);
 	list_del_rcu(&link->c_node);
@@ -469,8 +483,7 @@
 	dev_info(link->consumer, "Dropping the link to %s\n",
 		 dev_name(link->supplier));
 
-	if (link->flags & DL_FLAG_PM_RUNTIME)
-		pm_runtime_drop_link(link->consumer);
+	pm_runtime_drop_link(link);
 
 	list_del(&link->s_node);
 	list_del(&link->c_node);
@@ -1014,7 +1027,7 @@
 			  char *buf)
 {
 	struct dev_ext_attribute *ea = to_ext_attr(attr);
-	return snprintf(buf, PAGE_SIZE, "%lx\n", *(unsigned long *)(ea->var));
+	return sysfs_emit(buf, "%lx\n", *(unsigned long *)(ea->var));
 }
 EXPORT_SYMBOL_GPL(device_show_ulong);
 
@@ -1044,7 +1057,7 @@
 {
 	struct dev_ext_attribute *ea = to_ext_attr(attr);
 
-	return snprintf(buf, PAGE_SIZE, "%d\n", *(int *)(ea->var));
+	return sysfs_emit(buf, "%d\n", *(int *)(ea->var));
 }
 EXPORT_SYMBOL_GPL(device_show_int);
 
@@ -1065,7 +1078,7 @@
 {
 	struct dev_ext_attribute *ea = to_ext_attr(attr);
 
-	return snprintf(buf, PAGE_SIZE, "%d\n", *(bool *)(ea->var));
+	return sysfs_emit(buf, "%d\n", *(bool *)(ea->var));
 }
 EXPORT_SYMBOL_GPL(device_show_bool);
 
@@ -1297,7 +1310,7 @@
 	device_lock(dev);
 	val = !dev->offline;
 	device_unlock(dev);
-	return sprintf(buf, "%u\n", val);
+	return sysfs_emit(buf, "%u\n", val);
 }
 
 static ssize_t online_store(struct device *dev, struct device_attribute *attr,
@@ -1709,6 +1722,7 @@
 	device_pm_init(dev);
 	set_dev_node(dev, -1);
 #ifdef CONFIG_GENERIC_MSI_IRQ
+	raw_spin_lock_init(&dev->msi_lock);
 	INIT_LIST_HEAD(&dev->msi_list);
 #endif
 	INIT_LIST_HEAD(&dev->links.consumers);
@@ -3170,6 +3184,126 @@
 }
 EXPORT_SYMBOL_GPL(device_move);
 
+static int device_attrs_change_owner(struct device *dev, kuid_t kuid,
+				     kgid_t kgid)
+{
+	struct kobject *kobj = &dev->kobj;
+	struct class *class = dev->class;
+	const struct device_type *type = dev->type;
+	int error;
+
+	if (class) {
+		/*
+		 * Change the device groups of the device class for @dev to
+		 * @kuid/@kgid.
+		 */
+		error = sysfs_groups_change_owner(kobj, class->dev_groups, kuid,
+						  kgid);
+		if (error)
+			return error;
+	}
+
+	if (type) {
+		/*
+		 * Change the device groups of the device type for @dev to
+		 * @kuid/@kgid.
+		 */
+		error = sysfs_groups_change_owner(kobj, type->groups, kuid,
+						  kgid);
+		if (error)
+			return error;
+	}
+
+	/* Change the device groups of @dev to @kuid/@kgid. */
+	error = sysfs_groups_change_owner(kobj, dev->groups, kuid, kgid);
+	if (error)
+		return error;
+
+	if (device_supports_offline(dev) && !dev->offline_disabled) {
+		/* Change online device attributes of @dev to @kuid/@kgid. */
+		error = sysfs_file_change_owner(kobj, dev_attr_online.attr.name,
+						kuid, kgid);
+		if (error)
+			return error;
+	}
+
+	return 0;
+}
+
+/**
+ * device_change_owner - change the owner of an existing device.
+ * @dev: device.
+ * @kuid: new owner's kuid
+ * @kgid: new owner's kgid
+ *
+ * This changes the owner of @dev and its corresponding sysfs entries to
+ * @kuid/@kgid. This function closely mirrors how @dev was added via driver
+ * core.
+ *
+ * Returns 0 on success or error code on failure.
+ */
+int device_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid)
+{
+	int error;
+	struct kobject *kobj = &dev->kobj;
+
+	dev = get_device(dev);
+	if (!dev)
+		return -EINVAL;
+
+	/*
+	 * Change the kobject and the default attributes and groups of the
+	 * ktype associated with it to @kuid/@kgid.
+	 */
+	error = sysfs_change_owner(kobj, kuid, kgid);
+	if (error)
+		goto out;
+
+	/*
+	 * Change the uevent file for @dev to the new owner. The uevent file
+	 * was created in a separate step when @dev got added and we mirror
+	 * that step here.
+	 */
+	error = sysfs_file_change_owner(kobj, dev_attr_uevent.attr.name, kuid,
+					kgid);
+	if (error)
+		goto out;
+
+	/*
+	 * Change the device groups, the device groups associated with the
+	 * device class, and the groups associated with the device type of @dev
+	 * to @kuid/@kgid.
+	 */
+	error = device_attrs_change_owner(dev, kuid, kgid);
+	if (error)
+		goto out;
+
+	error = dpm_sysfs_change_owner(dev, kuid, kgid);
+	if (error)
+		goto out;
+
+#ifdef CONFIG_BLOCK
+	if (sysfs_deprecated && dev->class == &block_class)
+		goto out;
+#endif
+
+	/*
+	 * Change the owner of the symlink located in the class directory of
+	 * the device class associated with @dev which points to the actual
+	 * directory entry for @dev to @kuid/@kgid. This ensures that the
+	 * symlink shows the same permissions as its target.
+	 */
+	error = sysfs_link_change_owner(&dev->class->p->subsys.kobj, &dev->kobj,
+					dev_name(dev), kuid, kgid);
+	if (error)
+		goto out;
+
+out:
+	put_device(dev);
+	return error;
+}
+EXPORT_SYMBOL_GPL(device_change_owner);
+
 /**
  * device_shutdown - call ->shutdown() on each device to shutdown.
  */
@@ -3385,6 +3519,50 @@
 
 #endif
 
+/**
+ * dev_err_probe - probe error check and log helper
+ * @dev: the pointer to the struct device
+ * @err: error value to test
+ * @fmt: printf-style format string
+ * @...: arguments as specified in the format string
+ *
+ * This helper implements common pattern present in probe functions for error
+ * checking: print debug or error message depending if the error value is
+ * -EPROBE_DEFER and propagate error upwards.
+ * It replaces code sequence::
+ * 	if (err != -EPROBE_DEFER)
+ * 		dev_err(dev, ...);
+ * 	else
+ * 		dev_dbg(dev, ...);
+ * 	return err;
+ *
+ * with::
+ *
+ * 	return dev_err_probe(dev, err, ...);
+ *
+ * Returns @err.
+ *
+ */
+int dev_err_probe(const struct device *dev, int err, const char *fmt, ...)
+{
+	struct va_format vaf;
+	va_list args;
+
+	va_start(args, fmt);
+	vaf.fmt = fmt;
+	vaf.va = &args;
+
+	if (err != -EPROBE_DEFER)
+		dev_err(dev, "error %pe: %pV", ERR_PTR(err), &vaf);
+	else
+		dev_dbg(dev, "error %pe: %pV", ERR_PTR(err), &vaf);
+
+	va_end(args);
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(dev_err_probe);
+
 static inline bool fwnode_is_primary(struct fwnode_handle *fwnode)
 {
 	return fwnode && !IS_ERR(fwnode->secondary);
@@ -3400,9 +3578,10 @@
  */
 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 {
-	if (fwnode) {
-		struct fwnode_handle *fn = dev->fwnode;
+	struct device *parent = dev->parent;
+	struct fwnode_handle *fn = dev->fwnode;
 
+	if (fwnode) {
 		if (fwnode_is_primary(fn))
 			fn = fn->secondary;
 
@@ -3412,8 +3591,13 @@
 		}
 		dev->fwnode = fwnode;
 	} else {
-		dev->fwnode = fwnode_is_primary(dev->fwnode) ?
-			dev->fwnode->secondary : NULL;
+		if (fwnode_is_primary(fn)) {
+			dev->fwnode = fn->secondary;
+			if (!(parent && fn == parent->fwnode))
+				fn->secondary = NULL;
+		} else {
+			dev->fwnode = NULL;
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(set_primary_fwnode);
@@ -3454,6 +3638,13 @@
 }
 EXPORT_SYMBOL_GPL(device_set_of_node_from_dev);
 
+void device_set_node(struct device *dev, struct fwnode_handle *fwnode)
+{
+	dev->fwnode = fwnode;
+	dev->of_node = to_of_node(fwnode);
+}
+EXPORT_SYMBOL_GPL(device_set_node);
+
 int device_match_name(struct device *dev, const void *name)
 {
 	return sysfs_streq(dev_name(dev), name);
--- linux-ein-5.4.0.orig/drivers/base/cpu.c
+++ linux-ein-5.4.0/drivers/base/cpu.c
@@ -156,7 +156,7 @@
 	 * operation should be safe. No locking required.
 	 */
 	addr = per_cpu_ptr_to_phys(per_cpu_ptr(crash_notes, cpunum));
-	rc = sprintf(buf, "%Lx\n", addr);
+	rc = sysfs_emit(buf, "%Lx\n", addr);
 	return rc;
 }
 static DEVICE_ATTR(crash_notes, 0400, show_crash_notes, NULL);
@@ -167,7 +167,7 @@
 {
 	ssize_t rc;
 
-	rc = sprintf(buf, "%zu\n", sizeof(note_buf_t));
+	rc = sysfs_emit(buf, "%zu\n", sizeof(note_buf_t));
 	return rc;
 }
 static DEVICE_ATTR(crash_notes_size, 0400, show_crash_notes_size, NULL);
@@ -231,8 +231,7 @@
 static ssize_t print_cpus_kernel_max(struct device *dev,
 				     struct device_attribute *attr, char *buf)
 {
-	int n = snprintf(buf, PAGE_SIZE-2, "%d\n", NR_CPUS - 1);
-	return n;
+	return sprintf(buf, "%d\n", NR_CPUS - 1);
 }
 static DEVICE_ATTR(kernel_max, 0444, print_cpus_kernel_max, NULL);
 
@@ -272,7 +271,7 @@
 static ssize_t print_cpus_isolated(struct device *dev,
 				  struct device_attribute *attr, char *buf)
 {
-	int n = 0, len = PAGE_SIZE-2;
+	int n;
 	cpumask_var_t isolated;
 
 	if (!alloc_cpumask_var(&isolated, GFP_KERNEL))
@@ -280,7 +279,7 @@
 
 	cpumask_andnot(isolated, cpu_possible_mask,
 		       housekeeping_cpumask(HK_FLAG_DOMAIN));
-	n = scnprintf(buf, len, "%*pbl\n", cpumask_pr_args(isolated));
+	n = sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(isolated));
 
 	free_cpumask_var(isolated);
 
@@ -292,11 +291,7 @@
 static ssize_t print_cpus_nohz_full(struct device *dev,
 				  struct device_attribute *attr, char *buf)
 {
-	int n = 0, len = PAGE_SIZE-2;
-
-	n = scnprintf(buf, len, "%*pbl\n", cpumask_pr_args(tick_nohz_full_mask));
-
-	return n;
+	return sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(tick_nohz_full_mask));
 }
 static DEVICE_ATTR(nohz_full, 0444, print_cpus_nohz_full, NULL);
 #endif
@@ -328,8 +323,8 @@
 	ssize_t n;
 	u32 i;
 
-	n = sprintf(buf, "cpu:type:" CPU_FEATURE_TYPEFMT ":feature:",
-		    CPU_FEATURE_TYPEVAL);
+	n = sysfs_emit(buf, "cpu:type:" CPU_FEATURE_TYPEFMT ":feature:",
+		       CPU_FEATURE_TYPEVAL);
 
 	for (i = 0; i < MAX_CPU_FEATURES; i++)
 		if (cpu_have_feature(i)) {
@@ -496,7 +491,8 @@
 bool cpu_is_hotpluggable(unsigned cpu)
 {
 	struct device *dev = get_cpu_device(cpu);
-	return dev && container_of(dev, struct cpu, dev)->hotpluggable;
+	return dev && container_of(dev, struct cpu, dev)->hotpluggable
+		&& tick_nohz_cpu_hotpluggable(cpu);
 }
 EXPORT_SYMBOL_GPL(cpu_is_hotpluggable);
 
@@ -521,50 +517,74 @@
 ssize_t __weak cpu_show_meltdown(struct device *dev,
 				 struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_spectre_v1(struct device *dev,
 				   struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_spectre_v2(struct device *dev,
 				   struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_spec_store_bypass(struct device *dev,
 					  struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_l1tf(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_mds(struct device *dev,
 			    struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_tsx_async_abort(struct device *dev,
 					struct device_attribute *attr,
 					char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 ssize_t __weak cpu_show_itlb_multihit(struct device *dev,
 			    struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "Not affected\n");
+	return sysfs_emit(buf, "Not affected\n");
+}
+
+ssize_t __weak cpu_show_srbds(struct device *dev,
+			      struct device_attribute *attr, char *buf)
+{
+	return sysfs_emit(buf, "Not affected\n");
+}
+
+ssize_t __weak cpu_show_mmio_stale_data(struct device *dev,
+					struct device_attribute *attr, char *buf)
+{
+	return sysfs_emit(buf, "Not affected\n");
+}
+
+ssize_t __weak cpu_show_retbleed(struct device *dev,
+				 struct device_attribute *attr, char *buf)
+{
+	return sysfs_emit(buf, "Not affected\n");
+}
+
+ssize_t __weak cpu_show_gds(struct device *dev,
+			    struct device_attribute *attr, char *buf)
+{
+	return sysfs_emit(buf, "Not affected\n");
 }
 
 static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL);
@@ -575,6 +595,10 @@
 static DEVICE_ATTR(mds, 0444, cpu_show_mds, NULL);
 static DEVICE_ATTR(tsx_async_abort, 0444, cpu_show_tsx_async_abort, NULL);
 static DEVICE_ATTR(itlb_multihit, 0444, cpu_show_itlb_multihit, NULL);
+static DEVICE_ATTR(srbds, 0444, cpu_show_srbds, NULL);
+static DEVICE_ATTR(mmio_stale_data, 0444, cpu_show_mmio_stale_data, NULL);
+static DEVICE_ATTR(retbleed, 0444, cpu_show_retbleed, NULL);
+static DEVICE_ATTR(gather_data_sampling, 0444, cpu_show_gds, NULL);
 
 static struct attribute *cpu_root_vulnerabilities_attrs[] = {
 	&dev_attr_meltdown.attr,
@@ -585,6 +609,10 @@
 	&dev_attr_mds.attr,
 	&dev_attr_tsx_async_abort.attr,
 	&dev_attr_itlb_multihit.attr,
+	&dev_attr_srbds.attr,
+	&dev_attr_mmio_stale_data.attr,
+	&dev_attr_retbleed.attr,
+	&dev_attr_gather_data_sampling.attr,
 	NULL
 };
 
--- linux-ein-5.4.0.orig/drivers/base/dd.c
+++ linux-ein-5.4.0/drivers/base/dd.c
@@ -300,14 +300,16 @@
 
 static void deferred_probe_timeout_work_func(struct work_struct *work)
 {
-	struct device_private *private, *p;
+	struct device_private *p;
 
 	deferred_probe_timeout = 0;
 	driver_deferred_probe_trigger();
 	flush_work(&deferred_probe_work);
 
-	list_for_each_entry_safe(private, p, &deferred_probe_pending_list, deferred_probe)
-		dev_info(private->device, "deferred probe pending");
+	mutex_lock(&deferred_probe_mutex);
+	list_for_each_entry(p, &deferred_probe_pending_list, deferred_probe)
+		dev_info(p->device, "deferred probe pending\n");
+	mutex_unlock(&deferred_probe_mutex);
 }
 static DECLARE_DELAYED_WORK(deferred_probe_timeout_work, deferred_probe_timeout_work_func);
 
@@ -516,7 +518,11 @@
 	atomic_inc(&probe_count);
 	pr_debug("bus: '%s': %s: probing driver %s with device %s\n",
 		 drv->bus->name, __func__, drv->name, dev_name(dev));
-	WARN_ON(!list_empty(&dev->devres_head));
+	if (!list_empty(&dev->devres_head)) {
+		dev_crit(dev, "Resources present before probing\n");
+		ret = -EBUSY;
+		goto done;
+	}
 
 re_probe:
 	dev->driver = drv;
@@ -636,7 +642,7 @@
 	ret = 0;
 done:
 	atomic_dec(&probe_count);
-	wake_up(&probe_waitqueue);
+	wake_up_all(&probe_waitqueue);
 	return ret;
 }
 
@@ -741,7 +747,7 @@
 			"Too long list of driver names for 'driver_async_probe'!\n");
 
 	strlcpy(async_probe_drv_names, buf, ASYNC_DRV_NAMES_MAX_LEN);
-	return 0;
+	return 1;
 }
 __setup("driver_async_probe=", save_async_options);
 
@@ -812,6 +818,11 @@
 	} else if (ret == -EPROBE_DEFER) {
 		dev_dbg(dev, "Device match requests probe deferral\n");
 		driver_deferred_probe_add(dev);
+		/*
+		 * Device can't match with a driver right now, so don't attempt
+		 * to match or bind with other drivers on the bus.
+		 */
+		return ret;
 	} else if (ret < 0) {
 		dev_dbg(dev, "Bus failed to match device: %d", ret);
 		return ret;
@@ -867,9 +878,12 @@
 static int __device_attach(struct device *dev, bool allow_async)
 {
 	int ret = 0;
+	bool async = false;
 
 	device_lock(dev);
-	if (dev->driver) {
+	if (dev->p->dead) {
+		goto out_unlock;
+	} else if (dev->driver) {
 		if (device_is_bound(dev)) {
 			ret = 1;
 			goto out_unlock;
@@ -903,7 +917,7 @@
 			 */
 			dev_dbg(dev, "scheduling asynchronous probe\n");
 			get_device(dev);
-			async_schedule_dev(__device_attach_async_helper, dev);
+			async = true;
 		} else {
 			pm_request_idle(dev);
 		}
@@ -913,6 +927,8 @@
 	}
 out_unlock:
 	device_unlock(dev);
+	if (async)
+		async_schedule_dev(__device_attach_async_helper, dev);
 	return ret;
 }
 
@@ -1026,6 +1042,7 @@
 static int __driver_attach(struct device *dev, void *data)
 {
 	struct device_driver *drv = data;
+	bool async = false;
 	int ret;
 
 	/*
@@ -1045,9 +1062,18 @@
 	} else if (ret == -EPROBE_DEFER) {
 		dev_dbg(dev, "Device match requests probe deferral\n");
 		driver_deferred_probe_add(dev);
+		/*
+		 * Driver could not match with device, but may match with
+		 * another device on the bus.
+		 */
+		return 0;
 	} else if (ret < 0) {
-		dev_dbg(dev, "Bus failed to match device: %d", ret);
-		return ret;
+		dev_dbg(dev, "Bus failed to match device: %d\n", ret);
+		/*
+		 * Driver could not match with device, but may match with
+		 * another device on the bus.
+		 */
+		return 0;
 	} /* ret > 0 means positive match */
 
 	if (driver_allows_async_probing(drv)) {
@@ -1063,9 +1089,11 @@
 		if (!dev->driver) {
 			get_device(dev);
 			dev->p->async_driver = drv;
-			async_schedule_dev(__driver_attach_async_helper, dev);
+			async = true;
 		}
 		device_unlock(dev);
+		if (async)
+			async_schedule_dev(__driver_attach_async_helper, dev);
 		return 0;
 	}
 
@@ -1099,6 +1127,8 @@
 
 	drv = dev->driver;
 	if (drv) {
+		pm_runtime_get_sync(dev);
+
 		while (device_links_busy(dev)) {
 			__device_driver_unlock(dev, parent);
 
@@ -1110,13 +1140,12 @@
 			 * have released the driver successfully while this one
 			 * was waiting, so check for that.
 			 */
-			if (dev->driver != drv)
+			if (dev->driver != drv) {
+				pm_runtime_put(dev);
 				return;
+			}
 		}
 
-		pm_runtime_get_sync(dev);
-		pm_runtime_clean_up_links(dev);
-
 		driver_sysfs_remove(dev);
 
 		if (dev->bus)
@@ -1132,6 +1161,13 @@
 			dev->bus->remove(dev);
 		else if (drv->remove)
 			drv->remove(dev);
+		/*
+		 * A concurrent invocation of the same function might
+		 * have released the driver successfully while this one
+		 * was waiting, so check for that.
+		 */
+		if (dev->driver != drv)
+			return;
 
 		device_links_driver_cleanup(dev);
 
--- linux-ein-5.4.0.orig/drivers/base/devtmpfs.c
+++ linux-ein-5.4.0/drivers/base/devtmpfs.c
@@ -25,6 +25,7 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/kthread.h>
+#include <linux/fs_context.h>
 #include <uapi/linux/mount.h>
 #include "base.h"
 
@@ -62,8 +63,15 @@
 		      const char *dev_name, void *data)
 {
 	struct super_block *s = mnt->mnt_sb;
+	int err;
+
 	atomic_inc(&s->s_active);
 	down_write(&s->s_umount);
+	err = reconfigure_single(s, flags, data);
+	if (err < 0) {
+		deactivate_locked_super(s);
+		return ERR_PTR(err);
+	}
 	return dget(s->s_root);
 }
 
--- linux-ein-5.4.0.orig/drivers/base/firmware_loader/builtin/Makefile
+++ linux-ein-5.4.0/drivers/base/firmware_loader/builtin/Makefile
@@ -8,7 +8,8 @@
 obj-y  := $(addsuffix .gen.o, $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)))
 
 FWNAME    = $(patsubst $(obj)/%.gen.S,%,$@)
-FWSTR     = $(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME))))
+comma     := ,
+FWSTR     = $(subst $(comma),_,$(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME)))))
 ASM_WORD  = $(if $(CONFIG_64BIT),.quad,.long)
 ASM_ALIGN = $(if $(CONFIG_64BIT),3,2)
 PROGBITS  = $(if $(CONFIG_ARM),%,@)progbits
@@ -16,7 +17,7 @@
 filechk_fwbin = \
 	echo "/* Generated by $(src)/Makefile */"		;\
 	echo "    .section .rodata"				;\
-	echo "    .p2align $(ASM_ALIGN)"			;\
+	echo "    .p2align 4"					;\
 	echo "_fw_$(FWSTR)_bin:"				;\
 	echo "    .incbin \"$(fwdir)/$(FWNAME)\""		;\
 	echo "_fw_end:"						;\
--- linux-ein-5.4.0.orig/drivers/base/firmware_loader/fallback.c
+++ linux-ein-5.4.0/drivers/base/firmware_loader/fallback.c
@@ -86,12 +86,11 @@
 {
 	/*
 	 * There is a small window in which user can write to 'loading'
-	 * between loading done and disappearance of 'loading'
+	 * between loading done/aborted and disappearance of 'loading'
 	 */
-	if (fw_sysfs_done(fw_priv))
+	if (fw_state_is_aborted(fw_priv) || fw_sysfs_done(fw_priv))
 		return;
 
-	list_del_init(&fw_priv->pending_list);
 	fw_state_aborted(fw_priv);
 }
 
@@ -216,7 +215,7 @@
 		loading = fw_sysfs_loading(fw_sysfs->fw_priv);
 	mutex_unlock(&fw_lock);
 
-	return sprintf(buf, "%d\n", loading);
+	return sysfs_emit(buf, "%d\n", loading);
 }
 
 /**
@@ -277,7 +276,6 @@
 			 * Same logic as fw_load_abort, only the DONE bit
 			 * is ignored and we set ABORT only on failure.
 			 */
-			list_del_init(&fw_priv->pending_list);
 			if (rc) {
 				fw_state_aborted(fw_priv);
 				written = rc;
@@ -512,6 +510,11 @@
 	}
 
 	mutex_lock(&fw_lock);
+	if (fw_state_is_aborted(fw_priv)) {
+		mutex_unlock(&fw_lock);
+		retval = -EINTR;
+		goto out;
+	}
 	list_add(&fw_priv->pending_list, &pending_fw_head);
 	mutex_unlock(&fw_lock);
 
@@ -525,7 +528,7 @@
 	}
 
 	retval = fw_sysfs_wait_timeout(fw_priv, timeout);
-	if (retval < 0) {
+	if (retval < 0 && retval != -ENOENT) {
 		mutex_lock(&fw_lock);
 		fw_load_abort(fw_sysfs);
 		mutex_unlock(&fw_lock);
@@ -534,11 +537,10 @@
 	if (fw_state_is_aborted(fw_priv)) {
 		if (retval == -ERESTARTSYS)
 			retval = -EINTR;
-		else
-			retval = -EAGAIN;
 	} else if (fw_priv->is_paged_buf && !fw_priv->data)
 		retval = -ENOMEM;
 
+out:
 	device_del(f_dev);
 err_put_dev:
 	put_device(f_dev);
--- linux-ein-5.4.0.orig/drivers/base/firmware_loader/firmware.h
+++ linux-ein-5.4.0/drivers/base/firmware_loader/firmware.h
@@ -108,8 +108,16 @@
 
 	WRITE_ONCE(fw_st->status, status);
 
-	if (status == FW_STATUS_DONE || status == FW_STATUS_ABORTED)
+	if (status == FW_STATUS_DONE || status == FW_STATUS_ABORTED) {
+#ifdef CONFIG_FW_LOADER_USER_HELPER
+		/*
+		 * Doing this here ensures that the fw_priv is deleted from
+		 * the pending list in all abort/done paths.
+		 */
+		list_del_init(&fw_priv->pending_list);
+#endif
 		complete_all(&fw_st->completion);
+	}
 }
 
 static inline void fw_state_aborted(struct fw_priv *fw_priv)
@@ -139,10 +147,12 @@
 void fw_free_paged_buf(struct fw_priv *fw_priv);
 int fw_grow_paged_buf(struct fw_priv *fw_priv, int pages_needed);
 int fw_map_paged_buf(struct fw_priv *fw_priv);
+bool fw_is_paged_buf(struct fw_priv *fw_priv);
 #else
 static inline void fw_free_paged_buf(struct fw_priv *fw_priv) {}
 static inline int fw_grow_paged_buf(struct fw_priv *fw_priv, int pages_needed) { return -ENXIO; }
 static inline int fw_map_paged_buf(struct fw_priv *fw_priv) { return -ENXIO; }
+static inline bool fw_is_paged_buf(struct fw_priv *fw_priv) { return false; }
 #endif
 
 #endif /* __FIRMWARE_LOADER_H */
--- linux-ein-5.4.0.orig/drivers/base/firmware_loader/main.c
+++ linux-ein-5.4.0/drivers/base/firmware_loader/main.c
@@ -98,12 +98,15 @@
 extern struct builtin_fw __start_builtin_fw[];
 extern struct builtin_fw __end_builtin_fw[];
 
-static void fw_copy_to_prealloc_buf(struct firmware *fw,
+static bool fw_copy_to_prealloc_buf(struct firmware *fw,
 				    void *buf, size_t size)
 {
-	if (!buf || size < fw->size)
-		return;
+	if (!buf)
+		return true;
+	if (size < fw->size)
+		return false;
 	memcpy(buf, fw->data, fw->size);
+	return true;
 }
 
 static bool fw_get_builtin_firmware(struct firmware *fw, const char *name,
@@ -115,9 +118,7 @@
 		if (strcmp(name, b_fw->name) == 0) {
 			fw->size = b_fw->size;
 			fw->data = b_fw->data;
-			fw_copy_to_prealloc_buf(fw, buf, size);
-
-			return true;
+			return fw_copy_to_prealloc_buf(fw, buf, size);
 		}
 	}
 
@@ -252,9 +253,11 @@
 	list_del(&fw_priv->list);
 	spin_unlock(&fwc->lock);
 
-	fw_free_paged_buf(fw_priv); /* free leftover pages */
-	if (!fw_priv->allocated_size)
+	if (fw_is_paged_buf(fw_priv))
+		fw_free_paged_buf(fw_priv);
+	else if (!fw_priv->allocated_size)
 		vfree(fw_priv->data);
+
 	kfree_const(fw_priv->fw_name);
 	kfree(fw_priv);
 }
@@ -268,6 +271,11 @@
 }
 
 #ifdef CONFIG_FW_LOADER_PAGED_BUF
+bool fw_is_paged_buf(struct fw_priv *fw_priv)
+{
+	return fw_priv->is_paged_buf;
+}
+
 void fw_free_paged_buf(struct fw_priv *fw_priv)
 {
 	int i;
@@ -275,6 +283,8 @@
 	if (!fw_priv->pages)
 		return;
 
+	vunmap(fw_priv->data);
+
 	for (i = 0; i < fw_priv->nr_pages; i++)
 		__free_page(fw_priv->pages[i]);
 	kvfree(fw_priv->pages);
@@ -328,10 +338,6 @@
 	if (!fw_priv->data)
 		return -ENOMEM;
 
-	/* page table is no longer needed after mapping, let's free */
-	kvfree(fw_priv->pages);
-	fw_priv->pages = NULL;
-
 	return 0;
 }
 #endif
@@ -742,8 +748,10 @@
 		return;
 
 	fw_priv = fw->priv;
+	mutex_lock(&fw_lock);
 	if (!fw_state_is_aborted(fw_priv))
 		fw_state_aborted(fw_priv);
+	mutex_unlock(&fw_lock);
 }
 
 /* called from request_firmware() and request_firmware_work_func() */
@@ -753,6 +761,8 @@
 		  enum fw_opt opt_flags)
 {
 	struct firmware *fw = NULL;
+	struct cred *kern_cred = NULL;
+	const struct cred *old_cred;
 	int ret;
 
 	if (!firmware_p)
@@ -768,6 +778,18 @@
 	if (ret <= 0) /* error or already assigned */
 		goto out;
 
+	/*
+	 * We are about to try to access the firmware file. Because we may have been
+	 * called by a driver when serving an unrelated request from userland, we use
+	 * the kernel credentials to read the file.
+	 */
+	kern_cred = prepare_kernel_cred(NULL);
+	if (!kern_cred) {
+		ret = -ENOMEM;
+		goto out;
+	}
+	old_cred = override_creds(kern_cred);
+
 	ret = fw_get_filesystem_firmware(device, fw->priv, "", NULL);
 #ifdef CONFIG_FW_LOADER_COMPRESS
 	if (ret == -ENOENT)
@@ -784,6 +806,9 @@
 	} else
 		ret = assign_fw(fw, device, opt_flags);
 
+	revert_creds(old_cred);
+	put_cred(kern_cred);
+
  out:
 	if (ret < 0) {
 		fw_abort_batch_reqs(fw);
--- linux-ein-5.4.0.orig/drivers/base/memory.c
+++ linux-ein-5.4.0/drivers/base/memory.c
@@ -110,34 +110,17 @@
 	unsigned long phys_index;
 
 	phys_index = mem->start_section_nr / sections_per_block;
-	return sprintf(buf, "%08lx\n", phys_index);
+	return sysfs_emit(buf, "%08lx\n", phys_index);
 }
 
 /*
- * Show whether the memory block is likely to be offlineable (or is already
- * offline). Once offline, the memory block could be removed. The return
- * value does, however, not indicate that there is a way to remove the
- * memory block.
+ * Legacy interface that we cannot remove. Always indicate "removable"
+ * with CONFIG_MEMORY_HOTREMOVE - bad heuristic.
  */
 static ssize_t removable_show(struct device *dev, struct device_attribute *attr,
 			      char *buf)
 {
-	struct memory_block *mem = to_memory_block(dev);
-	unsigned long pfn;
-	int ret = 1, i;
-
-	if (mem->state != MEM_ONLINE)
-		goto out;
-
-	for (i = 0; i < sections_per_block; i++) {
-		if (!present_section_nr(mem->start_section_nr + i))
-			continue;
-		pfn = section_nr_to_pfn(mem->start_section_nr + i);
-		ret &= is_mem_section_removable(pfn, PAGES_PER_SECTION);
-	}
-
-out:
-	return sprintf(buf, "%d\n", ret);
+	return sysfs_emit(buf, "%d\n", (int)IS_ENABLED(CONFIG_MEMORY_HOTREMOVE));
 }
 
 /*
@@ -155,17 +138,17 @@
 	 */
 	switch (mem->state) {
 	case MEM_ONLINE:
-		len = sprintf(buf, "online\n");
+		len = sysfs_emit(buf, "online\n");
 		break;
 	case MEM_OFFLINE:
-		len = sprintf(buf, "offline\n");
+		len = sysfs_emit(buf, "offline\n");
 		break;
 	case MEM_GOING_OFFLINE:
-		len = sprintf(buf, "going-offline\n");
+		len = sysfs_emit(buf, "going-offline\n");
 		break;
 	default:
-		len = sprintf(buf, "ERROR-UNKNOWN-%ld\n",
-				mem->state);
+		len = sysfs_emit(buf, "ERROR-UNKNOWN-%ld\n",
+				 mem->state);
 		WARN_ON(1);
 		break;
 	}
@@ -375,7 +358,7 @@
 				struct device_attribute *attr, char *buf)
 {
 	struct memory_block *mem = to_memory_block(dev);
-	return sprintf(buf, "%d\n", mem->phys_device);
+	return sysfs_emit(buf, "%d\n", mem->phys_device);
 }
 
 #ifdef CONFIG_MEMORY_HOTREMOVE
@@ -413,7 +396,7 @@
 		 */
 		if (!test_pages_in_a_zone(start_pfn, start_pfn + nr_pages,
 					  &valid_start_pfn, &valid_end_pfn))
-			return sprintf(buf, "none\n");
+			return sysfs_emit(buf, "none\n");
 		start_pfn = valid_start_pfn;
 		strcat(buf, page_zone(pfn_to_page(start_pfn))->name);
 		goto out;
@@ -446,7 +429,7 @@
 static ssize_t block_size_bytes_show(struct device *dev,
 				     struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "%lx\n", memory_block_size_bytes());
+	return sysfs_emit(buf, "%lx\n", memory_block_size_bytes());
 }
 
 static DEVICE_ATTR_RO(block_size_bytes);
@@ -459,9 +442,9 @@
 				       struct device_attribute *attr, char *buf)
 {
 	if (memhp_auto_online)
-		return sprintf(buf, "online\n");
+		return sysfs_emit(buf, "online\n");
 	else
-		return sprintf(buf, "offline\n");
+		return sysfs_emit(buf, "offline\n");
 }
 
 static ssize_t auto_online_blocks_store(struct device *dev,
--- linux-ein-5.4.0.orig/drivers/base/node.c
+++ linux-ein-5.4.0/drivers/base/node.c
@@ -262,21 +262,20 @@
 	if (!dev)
 		return;
 
+	device_initialize(dev);
 	dev->parent = &node->dev;
 	dev->release = node_cache_release;
 	if (dev_set_name(dev, "memory_side_cache"))
-		goto free_dev;
+		goto put_device;
 
-	if (device_register(dev))
-		goto free_name;
+	if (device_add(dev))
+		goto put_device;
 
 	pm_runtime_no_callbacks(dev);
 	node->cache_dev = dev;
 	return;
-free_name:
-	kfree_const(dev->kobj.name);
-free_dev:
-	kfree(dev);
+put_device:
+	put_device(dev);
 }
 
 /**
@@ -313,25 +312,24 @@
 		return;
 
 	dev = &info->dev;
+	device_initialize(dev);
 	dev->parent = node->cache_dev;
 	dev->release = node_cacheinfo_release;
 	dev->groups = cache_groups;
 	if (dev_set_name(dev, "index%d", cache_attrs->level))
-		goto free_cache;
+		goto put_device;
 
 	info->cache_attrs = *cache_attrs;
-	if (device_register(dev)) {
+	if (device_add(dev)) {
 		dev_warn(&node->dev, "failed to add cache level:%d\n",
 			 cache_attrs->level);
-		goto free_name;
+		goto put_device;
 	}
 	pm_runtime_no_callbacks(dev);
 	list_add_tail(&info->node, &node->cache_attrs);
 	return;
-free_name:
-	kfree_const(dev->kobj.name);
-free_cache:
-	kfree(info);
+put_device:
+	put_device(dev);
 }
 
 static void node_remove_caches(struct node *node)
@@ -370,7 +368,7 @@
 	si_meminfo_node(&i, nid);
 	sreclaimable = node_page_state(pgdat, NR_SLAB_RECLAIMABLE);
 	sunreclaimable = node_page_state(pgdat, NR_SLAB_UNRECLAIMABLE);
-	n = sprintf(buf,
+	n = sysfs_emit(buf,
 		       "Node %d MemTotal:       %8lu kB\n"
 		       "Node %d MemFree:        %8lu kB\n"
 		       "Node %d MemUsed:        %8lu kB\n"
@@ -471,19 +469,19 @@
 static ssize_t node_read_numastat(struct device *dev,
 				struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf,
-		       "numa_hit %lu\n"
-		       "numa_miss %lu\n"
-		       "numa_foreign %lu\n"
-		       "interleave_hit %lu\n"
-		       "local_node %lu\n"
-		       "other_node %lu\n",
-		       sum_zone_numa_state(dev->id, NUMA_HIT),
-		       sum_zone_numa_state(dev->id, NUMA_MISS),
-		       sum_zone_numa_state(dev->id, NUMA_FOREIGN),
-		       sum_zone_numa_state(dev->id, NUMA_INTERLEAVE_HIT),
-		       sum_zone_numa_state(dev->id, NUMA_LOCAL),
-		       sum_zone_numa_state(dev->id, NUMA_OTHER));
+	return sysfs_emit(buf,
+			  "numa_hit %lu\n"
+			  "numa_miss %lu\n"
+			  "numa_foreign %lu\n"
+			  "interleave_hit %lu\n"
+			  "local_node %lu\n"
+			  "other_node %lu\n",
+			  sum_zone_numa_state(dev->id, NUMA_HIT),
+			  sum_zone_numa_state(dev->id, NUMA_MISS),
+			  sum_zone_numa_state(dev->id, NUMA_FOREIGN),
+			  sum_zone_numa_state(dev->id, NUMA_INTERLEAVE_HIT),
+			  sum_zone_numa_state(dev->id, NUMA_LOCAL),
+			  sum_zone_numa_state(dev->id, NUMA_OTHER));
 }
 static DEVICE_ATTR(numastat, S_IRUGO, node_read_numastat, NULL);
 
@@ -643,6 +641,7 @@
  */
 void unregister_node(struct node *node)
 {
+	compaction_unregister_node(node);
 	hugetlb_unregister_node(node);		/* no-op, if memoryless node */
 	node_remove_accesses(node);
 	node_remove_caches(node);
@@ -758,14 +757,36 @@
 	return pfn_to_nid(pfn);
 }
 
+static int do_register_memory_block_under_node(int nid,
+					       struct memory_block *mem_blk)
+{
+	int ret;
+
+	/*
+	 * If this memory block spans multiple nodes, we only indicate
+	 * the last processed node.
+	 */
+	mem_blk->nid = nid;
+
+	ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
+				       &mem_blk->dev.kobj,
+				       kobject_name(&mem_blk->dev.kobj));
+	if (ret)
+		return ret;
+
+	return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
+				&node_devices[nid]->dev.kobj,
+				kobject_name(&node_devices[nid]->dev.kobj));
+}
+
 /* register memory section under specified node if it spans that node */
-static int register_mem_sect_under_node(struct memory_block *mem_blk,
-					 void *arg)
+static int register_mem_block_under_node_early(struct memory_block *mem_blk,
+					       void *arg)
 {
 	unsigned long memory_block_pfns = memory_block_size_bytes() / PAGE_SIZE;
 	unsigned long start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
 	unsigned long end_pfn = start_pfn + memory_block_pfns - 1;
-	int ret, nid = *(int *)arg;
+	int nid = *(int *)arg;
 	unsigned long pfn;
 
 	for (pfn = start_pfn; pfn <= end_pfn; pfn++) {
@@ -782,39 +803,34 @@
 		}
 
 		/*
-		 * We need to check if page belongs to nid only for the boot
-		 * case, during hotplug we know that all pages in the memory
-		 * block belong to the same node.
-		 */
-		if (system_state == SYSTEM_BOOTING) {
-			page_nid = get_nid_for_pfn(pfn);
-			if (page_nid < 0)
-				continue;
-			if (page_nid != nid)
-				continue;
-		}
-
-		/*
-		 * If this memory block spans multiple nodes, we only indicate
-		 * the last processed node.
+		 * We need to check if page belongs to nid only at the boot
+		 * case because node's ranges can be interleaved.
 		 */
-		mem_blk->nid = nid;
-
-		ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
-					&mem_blk->dev.kobj,
-					kobject_name(&mem_blk->dev.kobj));
-		if (ret)
-			return ret;
+		page_nid = get_nid_for_pfn(pfn);
+		if (page_nid < 0)
+			continue;
+		if (page_nid != nid)
+			continue;
 
-		return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
-				&node_devices[nid]->dev.kobj,
-				kobject_name(&node_devices[nid]->dev.kobj));
+		return do_register_memory_block_under_node(nid, mem_blk);
 	}
 	/* mem section does not span the specified node */
 	return 0;
 }
 
 /*
+ * During hotplug we know that all pages in the memory block belong to the same
+ * node.
+ */
+static int register_mem_block_under_node_hotplug(struct memory_block *mem_blk,
+						 void *arg)
+{
+	int nid = *(int *)arg;
+
+	return do_register_memory_block_under_node(nid, mem_blk);
+}
+
+/*
  * Unregister a memory block device under the node it spans. Memory blocks
  * with multiple nodes cannot be offlined and therefore also never be removed.
  */
@@ -829,11 +845,19 @@
 			  kobject_name(&node_devices[mem_blk->nid]->dev.kobj));
 }
 
-int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn)
+int link_mem_sections(int nid, unsigned long start_pfn, unsigned long end_pfn,
+		      enum meminit_context context)
 {
+	walk_memory_blocks_func_t func;
+
+	if (context == MEMINIT_HOTPLUG)
+		func = register_mem_block_under_node_hotplug;
+	else
+		func = register_mem_block_under_node_early;
+
 	return walk_memory_blocks(PFN_PHYS(start_pfn),
 				  PFN_PHYS(end_pfn - start_pfn), (void *)&nid,
-				  register_mem_sect_under_node);
+				  func);
 }
 
 #ifdef CONFIG_HUGETLBFS
--- linux-ein-5.4.0.orig/drivers/base/platform.c
+++ linux-ein-5.4.0/drivers/base/platform.c
@@ -27,6 +27,7 @@
 #include <linux/limits.h>
 #include <linux/property.h>
 #include <linux/kmemleak.h>
+#include <linux/types.h>
 
 #include "base.h"
 #include "power/power.h"
@@ -48,7 +49,7 @@
 struct resource *platform_get_resource(struct platform_device *dev,
 				       unsigned int type, unsigned int num)
 {
-	int i;
+	u32 i;
 
 	for (i = 0; i < dev->num_resources; i++) {
 		struct resource *r = &dev->resource[i];
@@ -226,7 +227,7 @@
 					      unsigned int type,
 					      const char *name)
 {
-	int i;
+	u32 i;
 
 	for (i = 0; i < dev->num_resources; i++) {
 		struct resource *r = &dev->resource[i];
@@ -334,10 +335,10 @@
 {
 	if (!pdev->dev.coherent_dma_mask)
 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
-	if (!pdev->dma_mask)
-		pdev->dma_mask = DMA_BIT_MASK(32);
-	if (!pdev->dev.dma_mask)
-		pdev->dev.dma_mask = &pdev->dma_mask;
+	if (!pdev->dev.dma_mask) {
+		pdev->platform_dma_mask = DMA_BIT_MASK(32);
+		pdev->dev.dma_mask = &pdev->platform_dma_mask;
+	}
 };
 
 /**
@@ -473,7 +474,8 @@
  */
 int platform_device_add(struct platform_device *pdev)
 {
-	int i, ret;
+	u32 i;
+	int ret;
 
 	if (!pdev)
 		return -EINVAL;
@@ -541,7 +543,7 @@
 		pdev->id = PLATFORM_DEVID_AUTO;
 	}
 
-	while (--i >= 0) {
+	while (i--) {
 		struct resource *r = &pdev->resource[i];
 		if (r->parent)
 			release_resource(r);
@@ -562,7 +564,7 @@
  */
 void platform_device_del(struct platform_device *pdev)
 {
-	int i;
+	u32 i;
 
 	if (!IS_ERR_OR_NULL(pdev)) {
 		device_del(&pdev->dev);
@@ -632,20 +634,8 @@
 	pdev->dev.of_node_reused = pdevinfo->of_node_reused;
 
 	if (pdevinfo->dma_mask) {
-		/*
-		 * This memory isn't freed when the device is put,
-		 * I don't have a nice idea for that though.  Conceptually
-		 * dma_mask in struct device should not be a pointer.
-		 * See http://thread.gmane.org/gmane.linux.kernel.pci/9081
-		 */
-		pdev->dev.dma_mask =
-			kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
-		if (!pdev->dev.dma_mask)
-			goto err;
-
-		kmemleak_ignore(pdev->dev.dma_mask);
-
-		*pdev->dev.dma_mask = pdevinfo->dma_mask;
+		pdev->platform_dma_mask = pdevinfo->dma_mask;
+		pdev->dev.dma_mask = &pdev->platform_dma_mask;
 		pdev->dev.coherent_dma_mask = pdevinfo->dma_mask;
 	}
 
@@ -670,7 +660,6 @@
 	if (ret) {
 err:
 		ACPI_COMPANION_SET(&pdev->dev, NULL);
-		kfree(pdev->dev.dma_mask);
 		platform_device_put(pdev);
 		return ERR_PTR(ret);
 	}
@@ -813,6 +802,8 @@
 	/* temporary section violation during probe() */
 	drv->probe = probe;
 	retval = code = __platform_driver_register(drv, module);
+	if (retval)
+		return retval;
 
 	/*
 	 * Fixup that section violation, being paranoid about code scanning
@@ -1018,7 +1009,7 @@
 	ssize_t len;
 
 	device_lock(dev);
-	len = sprintf(buf, "%s\n", pdev->driver_override);
+	len = sysfs_emit(buf, "%s\n", pdev->driver_override);
 	device_unlock(dev);
 	return len;
 }
@@ -1278,6 +1269,11 @@
 };
 EXPORT_SYMBOL_GPL(platform_bus_type);
 
+static inline int __platform_match(struct device *dev, const void *drv)
+{
+	return platform_match(dev, (struct device_driver *)drv);
+}
+
 /**
  * platform_find_device_by_driver - Find a platform device with a given
  * driver.
@@ -1288,7 +1284,7 @@
 					      const struct device_driver *drv)
 {
 	return bus_find_device(&platform_bus_type, start, drv,
-			       (void *)platform_match);
+			       __platform_match);
 }
 EXPORT_SYMBOL_GPL(platform_find_device_by_driver);
 
--- linux-ein-5.4.0.orig/drivers/base/power/domain.c
+++ linux-ein-5.4.0/drivers/base/power/domain.c
@@ -263,18 +263,18 @@
 	/*
 	 * Traverse all sub-domains within the domain. This can be
 	 * done without any additional locking as the link->performance_state
-	 * field is protected by the master genpd->lock, which is already taken.
+	 * field is protected by the parent genpd->lock, which is already taken.
 	 *
 	 * Also note that link->performance_state (subdomain's performance state
-	 * requirement to master domain) is different from
-	 * link->slave->performance_state (current performance state requirement
+	 * requirement to parent domain) is different from
+	 * link->child->performance_state (current performance state requirement
 	 * of the devices/sub-domains of the subdomain) and so can have a
 	 * different value.
 	 *
 	 * Note that we also take vote from powered-off sub-domains into account
 	 * as the same is done for devices right now.
 	 */
-	list_for_each_entry(link, &genpd->master_links, master_node) {
+	list_for_each_entry(link, &genpd->parent_links, parent_node) {
 		if (link->performance_state > state)
 			state = link->performance_state;
 	}
@@ -285,40 +285,40 @@
 static int _genpd_set_performance_state(struct generic_pm_domain *genpd,
 					unsigned int state, int depth)
 {
-	struct generic_pm_domain *master;
+	struct generic_pm_domain *parent;
 	struct gpd_link *link;
-	int master_state, ret;
+	int parent_state, ret;
 
 	if (state == genpd->performance_state)
 		return 0;
 
-	/* Propagate to masters of genpd */
-	list_for_each_entry(link, &genpd->slave_links, slave_node) {
-		master = link->master;
+	/* Propagate to parents of genpd */
+	list_for_each_entry(link, &genpd->child_links, child_node) {
+		parent = link->parent;
 
-		if (!master->set_performance_state)
+		if (!parent->set_performance_state)
 			continue;
 
-		/* Find master's performance state */
+		/* Find parent's performance state */
 		ret = dev_pm_opp_xlate_performance_state(genpd->opp_table,
-							 master->opp_table,
+							 parent->opp_table,
 							 state);
 		if (unlikely(ret < 0))
 			goto err;
 
-		master_state = ret;
+		parent_state = ret;
 
-		genpd_lock_nested(master, depth + 1);
+		genpd_lock_nested(parent, depth + 1);
 
 		link->prev_performance_state = link->performance_state;
-		link->performance_state = master_state;
-		master_state = _genpd_reeval_performance_state(master,
-						master_state);
-		ret = _genpd_set_performance_state(master, master_state, depth + 1);
+		link->performance_state = parent_state;
+		parent_state = _genpd_reeval_performance_state(parent,
+						parent_state);
+		ret = _genpd_set_performance_state(parent, parent_state, depth + 1);
 		if (ret)
 			link->performance_state = link->prev_performance_state;
 
-		genpd_unlock(master);
+		genpd_unlock(parent);
 
 		if (ret)
 			goto err;
@@ -333,26 +333,26 @@
 
 err:
 	/* Encountered an error, lets rollback */
-	list_for_each_entry_continue_reverse(link, &genpd->slave_links,
-					     slave_node) {
-		master = link->master;
+	list_for_each_entry_continue_reverse(link, &genpd->child_links,
+					     child_node) {
+		parent = link->parent;
 
-		if (!master->set_performance_state)
+		if (!parent->set_performance_state)
 			continue;
 
-		genpd_lock_nested(master, depth + 1);
+		genpd_lock_nested(parent, depth + 1);
 
-		master_state = link->prev_performance_state;
-		link->performance_state = master_state;
+		parent_state = link->prev_performance_state;
+		link->performance_state = parent_state;
 
-		master_state = _genpd_reeval_performance_state(master,
-						master_state);
-		if (_genpd_set_performance_state(master, master_state, depth + 1)) {
+		parent_state = _genpd_reeval_performance_state(parent,
+						parent_state);
+		if (_genpd_set_performance_state(parent, parent_state, depth + 1)) {
 			pr_err("%s: Failed to roll back to %d performance state\n",
-			       master->name, master_state);
+			       parent->name, parent_state);
 		}
 
-		genpd_unlock(master);
+		genpd_unlock(parent);
 	}
 
 	return ret;
@@ -552,7 +552,7 @@
 
 		/*
 		 * If sd_count > 0 at this point, one of the subdomains hasn't
-		 * managed to call genpd_power_on() for the master yet after
+		 * managed to call genpd_power_on() for the parent yet after
 		 * incrementing it.  In that case genpd_power_on() will wait
 		 * for us to drop the lock, so we can call .power_off() and let
 		 * the genpd_power_on() restore power for us (this shouldn't
@@ -566,22 +566,22 @@
 	genpd->status = GPD_STATE_POWER_OFF;
 	genpd_update_accounting(genpd);
 
-	list_for_each_entry(link, &genpd->slave_links, slave_node) {
-		genpd_sd_counter_dec(link->master);
-		genpd_lock_nested(link->master, depth + 1);
-		genpd_power_off(link->master, false, depth + 1);
-		genpd_unlock(link->master);
+	list_for_each_entry(link, &genpd->child_links, child_node) {
+		genpd_sd_counter_dec(link->parent);
+		genpd_lock_nested(link->parent, depth + 1);
+		genpd_power_off(link->parent, false, depth + 1);
+		genpd_unlock(link->parent);
 	}
 
 	return 0;
 }
 
 /**
- * genpd_power_on - Restore power to a given PM domain and its masters.
+ * genpd_power_on - Restore power to a given PM domain and its parents.
  * @genpd: PM domain to power up.
  * @depth: nesting count for lockdep.
  *
- * Restore power to @genpd and all of its masters so that it is possible to
+ * Restore power to @genpd and all of its parents so that it is possible to
  * resume a device belonging to it.
  */
 static int genpd_power_on(struct generic_pm_domain *genpd, unsigned int depth)
@@ -594,20 +594,20 @@
 
 	/*
 	 * The list is guaranteed not to change while the loop below is being
-	 * executed, unless one of the masters' .power_on() callbacks fiddles
+	 * executed, unless one of the parents' .power_on() callbacks fiddles
 	 * with it.
 	 */
-	list_for_each_entry(link, &genpd->slave_links, slave_node) {
-		struct generic_pm_domain *master = link->master;
+	list_for_each_entry(link, &genpd->child_links, child_node) {
+		struct generic_pm_domain *parent = link->parent;
 
-		genpd_sd_counter_inc(master);
+		genpd_sd_counter_inc(parent);
 
-		genpd_lock_nested(master, depth + 1);
-		ret = genpd_power_on(master, depth + 1);
-		genpd_unlock(master);
+		genpd_lock_nested(parent, depth + 1);
+		ret = genpd_power_on(parent, depth + 1);
+		genpd_unlock(parent);
 
 		if (ret) {
-			genpd_sd_counter_dec(master);
+			genpd_sd_counter_dec(parent);
 			goto err;
 		}
 	}
@@ -623,12 +623,12 @@
 
  err:
 	list_for_each_entry_continue_reverse(link,
-					&genpd->slave_links,
-					slave_node) {
-		genpd_sd_counter_dec(link->master);
-		genpd_lock_nested(link->master, depth + 1);
-		genpd_power_off(link->master, false, depth + 1);
-		genpd_unlock(link->master);
+					&genpd->child_links,
+					child_node) {
+		genpd_sd_counter_dec(link->parent);
+		genpd_lock_nested(link->parent, depth + 1);
+		genpd_power_off(link->parent, false, depth + 1);
+		genpd_unlock(link->parent);
 	}
 
 	return ret;
@@ -943,13 +943,13 @@
 #ifdef CONFIG_PM_SLEEP
 
 /**
- * genpd_sync_power_off - Synchronously power off a PM domain and its masters.
+ * genpd_sync_power_off - Synchronously power off a PM domain and its parents.
  * @genpd: PM domain to power off, if possible.
  * @use_lock: use the lock.
  * @depth: nesting count for lockdep.
  *
  * Check if the given PM domain can be powered off (during system suspend or
- * hibernation) and do that if so.  Also, in that case propagate to its masters.
+ * hibernation) and do that if so.  Also, in that case propagate to its parents.
  *
  * This function is only called in "noirq" and "syscore" stages of system power
  * transitions. The "noirq" callbacks may be executed asynchronously, thus in
@@ -974,21 +974,21 @@
 
 	genpd->status = GPD_STATE_POWER_OFF;
 
-	list_for_each_entry(link, &genpd->slave_links, slave_node) {
-		genpd_sd_counter_dec(link->master);
+	list_for_each_entry(link, &genpd->child_links, child_node) {
+		genpd_sd_counter_dec(link->parent);
 
 		if (use_lock)
-			genpd_lock_nested(link->master, depth + 1);
+			genpd_lock_nested(link->parent, depth + 1);
 
-		genpd_sync_power_off(link->master, use_lock, depth + 1);
+		genpd_sync_power_off(link->parent, use_lock, depth + 1);
 
 		if (use_lock)
-			genpd_unlock(link->master);
+			genpd_unlock(link->parent);
 	}
 }
 
 /**
- * genpd_sync_power_on - Synchronously power on a PM domain and its masters.
+ * genpd_sync_power_on - Synchronously power on a PM domain and its parents.
  * @genpd: PM domain to power on.
  * @use_lock: use the lock.
  * @depth: nesting count for lockdep.
@@ -1005,16 +1005,16 @@
 	if (genpd_status_on(genpd))
 		return;
 
-	list_for_each_entry(link, &genpd->slave_links, slave_node) {
-		genpd_sd_counter_inc(link->master);
+	list_for_each_entry(link, &genpd->child_links, child_node) {
+		genpd_sd_counter_inc(link->parent);
 
 		if (use_lock)
-			genpd_lock_nested(link->master, depth + 1);
+			genpd_lock_nested(link->parent, depth + 1);
 
-		genpd_sync_power_on(link->master, use_lock, depth + 1);
+		genpd_sync_power_on(link->parent, use_lock, depth + 1);
 
 		if (use_lock)
-			genpd_unlock(link->master);
+			genpd_unlock(link->parent);
 	}
 
 	_genpd_power_on(genpd, false);
@@ -1454,12 +1454,12 @@
 	if (!genpd_is_cpu_domain(genpd))
 		return;
 
-	list_for_each_entry(link, &genpd->slave_links, slave_node) {
-		struct generic_pm_domain *master = link->master;
+	list_for_each_entry(link, &genpd->child_links, child_node) {
+		struct generic_pm_domain *parent = link->parent;
 
-		genpd_lock_nested(master, depth + 1);
-		genpd_update_cpumask(master, cpu, set, depth + 1);
-		genpd_unlock(master);
+		genpd_lock_nested(parent, depth + 1);
+		genpd_update_cpumask(parent, cpu, set, depth + 1);
+		genpd_unlock(parent);
 	}
 
 	if (set)
@@ -1647,17 +1647,17 @@
 		goto out;
 	}
 
-	list_for_each_entry(itr, &genpd->master_links, master_node) {
-		if (itr->slave == subdomain && itr->master == genpd) {
+	list_for_each_entry(itr, &genpd->parent_links, parent_node) {
+		if (itr->child == subdomain && itr->parent == genpd) {
 			ret = -EINVAL;
 			goto out;
 		}
 	}
 
-	link->master = genpd;
-	list_add_tail(&link->master_node, &genpd->master_links);
-	link->slave = subdomain;
-	list_add_tail(&link->slave_node, &subdomain->slave_links);
+	link->parent = genpd;
+	list_add_tail(&link->parent_node, &genpd->parent_links);
+	link->child = subdomain;
+	list_add_tail(&link->child_node, &subdomain->child_links);
 	if (genpd_status_on(subdomain))
 		genpd_sd_counter_inc(genpd);
 
@@ -1671,7 +1671,7 @@
 
 /**
  * pm_genpd_add_subdomain - Add a subdomain to an I/O PM domain.
- * @genpd: Master PM domain to add the subdomain to.
+ * @genpd: Leader PM domain to add the subdomain to.
  * @subdomain: Subdomain to be added.
  */
 int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
@@ -1689,7 +1689,7 @@
 
 /**
  * pm_genpd_remove_subdomain - Remove a subdomain from an I/O PM domain.
- * @genpd: Master PM domain to remove the subdomain from.
+ * @genpd: Leader PM domain to remove the subdomain from.
  * @subdomain: Subdomain to be removed.
  */
 int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
@@ -1704,19 +1704,19 @@
 	genpd_lock(subdomain);
 	genpd_lock_nested(genpd, SINGLE_DEPTH_NESTING);
 
-	if (!list_empty(&subdomain->master_links) || subdomain->device_count) {
+	if (!list_empty(&subdomain->parent_links) || subdomain->device_count) {
 		pr_warn("%s: unable to remove subdomain %s\n",
 			genpd->name, subdomain->name);
 		ret = -EBUSY;
 		goto out;
 	}
 
-	list_for_each_entry_safe(link, l, &genpd->master_links, master_node) {
-		if (link->slave != subdomain)
+	list_for_each_entry_safe(link, l, &genpd->parent_links, parent_node) {
+		if (link->child != subdomain)
 			continue;
 
-		list_del(&link->master_node);
-		list_del(&link->slave_node);
+		list_del(&link->parent_node);
+		list_del(&link->child_node);
 		kfree(link);
 		if (genpd_status_on(subdomain))
 			genpd_sd_counter_dec(genpd);
@@ -1781,8 +1781,8 @@
 	if (IS_ERR_OR_NULL(genpd))
 		return -EINVAL;
 
-	INIT_LIST_HEAD(&genpd->master_links);
-	INIT_LIST_HEAD(&genpd->slave_links);
+	INIT_LIST_HEAD(&genpd->parent_links);
+	INIT_LIST_HEAD(&genpd->child_links);
 	INIT_LIST_HEAD(&genpd->dev_list);
 	genpd_lock_init(genpd);
 	genpd->gov = gov;
@@ -1858,15 +1858,15 @@
 		return -EBUSY;
 	}
 
-	if (!list_empty(&genpd->master_links) || genpd->device_count) {
+	if (!list_empty(&genpd->parent_links) || genpd->device_count) {
 		genpd_unlock(genpd);
 		pr_err("%s: unable to remove %s\n", __func__, genpd->name);
 		return -EBUSY;
 	}
 
-	list_for_each_entry_safe(link, l, &genpd->slave_links, slave_node) {
-		list_del(&link->master_node);
-		list_del(&link->slave_node);
+	list_for_each_entry_safe(link, l, &genpd->child_links, child_node) {
+		list_del(&link->parent_node);
+		list_del(&link->child_node);
 		kfree(link);
 	}
 
@@ -2596,10 +2596,10 @@
 
 	err = of_property_read_u32(state_node, "min-residency-us", &residency);
 	if (!err)
-		genpd_state->residency_ns = 1000 * residency;
+		genpd_state->residency_ns = 1000LL * residency;
 
-	genpd_state->power_on_latency_ns = 1000 * exit_latency;
-	genpd_state->power_off_latency_ns = 1000 * entry_latency;
+	genpd_state->power_on_latency_ns = 1000LL * exit_latency;
+	genpd_state->power_off_latency_ns = 1000LL * entry_latency;
 	genpd_state->fwnode = &state_node->fwnode;
 
 	return 0;
@@ -2615,13 +2615,17 @@
 
 	ret = of_count_phandle_with_args(dn, "domain-idle-states", NULL);
 	if (ret <= 0)
-		return ret;
+		return ret == -ENOENT ? 0 : ret;
 
 	/* Loop over the phandles until all the requested entry is found */
 	of_for_each_phandle(&it, ret, dn, "domain-idle-states", NULL, 0) {
 		np = it.node;
 		if (!of_match_node(idle_state_match, np))
 			continue;
+
+		if (!of_device_is_available(np))
+			continue;
+
 		if (states) {
 			ret = genpd_parse_state(&states[i], np);
 			if (ret) {
@@ -2789,12 +2793,12 @@
 
 	/*
 	 * Modifications on the list require holding locks on both
-	 * master and slave, so we are safe.
+	 * parent and child, so we are safe.
 	 * Also genpd->name is immutable.
 	 */
-	list_for_each_entry(link, &genpd->master_links, master_node) {
-		seq_printf(s, "%s", link->slave->name);
-		if (!list_is_last(&link->master_node, &genpd->master_links))
+	list_for_each_entry(link, &genpd->parent_links, parent_node) {
+		seq_printf(s, "%s", link->child->name);
+		if (!list_is_last(&link->parent_node, &genpd->parent_links))
 			seq_puts(s, ", ");
 	}
 
@@ -2822,7 +2826,7 @@
 	struct generic_pm_domain *genpd;
 	int ret = 0;
 
-	seq_puts(s, "domain                          status          slaves\n");
+	seq_puts(s, "domain                          status          children\n");
 	seq_puts(s, "    /device                                             runtime status\n");
 	seq_puts(s, "----------------------------------------------------------------------\n");
 
@@ -2877,8 +2881,8 @@
 	if (ret)
 		return -ERESTARTSYS;
 
-	list_for_each_entry(link, &genpd->master_links, master_node)
-		seq_printf(s, "%s\n", link->slave->name);
+	list_for_each_entry(link, &genpd->parent_links, parent_node)
+		seq_printf(s, "%s\n", link->child->name);
 
 	genpd_unlock(genpd);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/base/power/domain_governor.c
+++ linux-ein-5.4.0/drivers/base/power/domain_governor.c
@@ -135,8 +135,8 @@
 	 *
 	 * All subdomains have been powered off already at this point.
 	 */
-	list_for_each_entry(link, &genpd->master_links, master_node) {
-		struct generic_pm_domain *sd = link->slave;
+	list_for_each_entry(link, &genpd->parent_links, parent_node) {
+		struct generic_pm_domain *sd = link->child;
 		s64 sd_max_off_ns = sd->max_off_time_ns;
 
 		if (sd_max_off_ns < 0)
@@ -217,13 +217,13 @@
 	}
 
 	/*
-	 * We have to invalidate the cached results for the masters, so
+	 * We have to invalidate the cached results for the parents, so
 	 * use the observation that default_power_down_ok() is not
-	 * going to be called for any master until this instance
+	 * going to be called for any parent until this instance
 	 * returns.
 	 */
-	list_for_each_entry(link, &genpd->slave_links, slave_node)
-		link->master->max_off_time_changed = true;
+	list_for_each_entry(link, &genpd->child_links, child_node)
+		link->parent->max_off_time_changed = true;
 
 	genpd->max_off_time_ns = -1;
 	genpd->max_off_time_changed = false;
--- linux-ein-5.4.0.orig/drivers/base/power/main.c
+++ linux-ein-5.4.0/drivers/base/power/main.c
@@ -273,10 +273,38 @@
 	device_links_read_unlock(idx);
 }
 
-static void dpm_wait_for_superior(struct device *dev, bool async)
+static bool dpm_wait_for_superior(struct device *dev, bool async)
 {
-	dpm_wait(dev->parent, async);
+	struct device *parent;
+
+	/*
+	 * If the device is resumed asynchronously and the parent's callback
+	 * deletes both the device and the parent itself, the parent object may
+	 * be freed while this function is running, so avoid that by reference
+	 * counting the parent once more unless the device has been deleted
+	 * already (in which case return right away).
+	 */
+	mutex_lock(&dpm_list_mtx);
+
+	if (!device_pm_initialized(dev)) {
+		mutex_unlock(&dpm_list_mtx);
+		return false;
+	}
+
+	parent = get_device(dev->parent);
+
+	mutex_unlock(&dpm_list_mtx);
+
+	dpm_wait(parent, async);
+	put_device(parent);
+
 	dpm_wait_for_suppliers(dev, async);
+
+	/*
+	 * If the parent's callback has deleted the device, attempting to resume
+	 * it would be invalid, so avoid doing that then.
+	 */
+	return device_pm_initialized(dev);
 }
 
 static void dpm_wait_for_consumers(struct device *dev, bool async)
@@ -621,7 +649,8 @@
 	if (!dev->power.is_noirq_suspended)
 		goto Out;
 
-	dpm_wait_for_superior(dev, async);
+	if (!dpm_wait_for_superior(dev, async))
+		goto Out;
 
 	skip_resume = dev_pm_may_skip_resume(dev);
 
@@ -697,7 +726,7 @@
 
 	if (is_async(dev)) {
 		get_device(dev);
-		async_schedule(func, dev);
+		async_schedule_dev(func, dev);
 		return true;
 	}
 
@@ -829,7 +858,8 @@
 	if (!dev->power.is_late_suspended)
 		goto Out;
 
-	dpm_wait_for_superior(dev, async);
+	if (!dpm_wait_for_superior(dev, async))
+		goto Out;
 
 	callback = dpm_subsys_resume_early_cb(dev, state, &info);
 
@@ -944,7 +974,9 @@
 		goto Complete;
 	}
 
-	dpm_wait_for_superior(dev, async);
+	if (!dpm_wait_for_superior(dev, async))
+		goto Complete;
+
 	dpm_watchdog_set(&wd, dev);
 	device_lock(dev);
 
@@ -1696,13 +1728,17 @@
 	}
 
 	/*
-	 * If a device configured to wake up the system from sleep states
-	 * has been suspended at run time and there's a resume request pending
-	 * for it, this is equivalent to the device signaling wakeup, so the
-	 * system suspend operation should be aborted.
+	 * Wait for possible runtime PM transitions of the device in progress
+	 * to complete and if there's a runtime resume request pending for it,
+	 * resume it before proceeding with invoking the system-wide suspend
+	 * callbacks for it.
+	 *
+	 * If the system-wide suspend callbacks below change the configuration
+	 * of the device, they must disable runtime PM for it or otherwise
+	 * ensure that its runtime-resume callbacks will not be confused by that
+	 * change in case they are invoked going forward.
 	 */
-	if (pm_runtime_barrier(dev) && device_may_wakeup(dev))
-		pm_wakeup_event(dev, 0);
+	pm_runtime_barrier(dev);
 
 	if (pm_wakeup_pending()) {
 		dev->power.direct_complete = false;
@@ -2085,7 +2121,9 @@
 
 void device_pm_check_callbacks(struct device *dev)
 {
-	spin_lock_irq(&dev->power.lock);
+	unsigned long flags;
+
+	spin_lock_irqsave(&dev->power.lock, flags);
 	dev->power.no_pm_callbacks =
 		(!dev->bus || (pm_ops_is_empty(dev->bus->pm) &&
 		 !dev->bus->suspend && !dev->bus->resume)) &&
@@ -2094,7 +2132,7 @@
 		(!dev->pm_domain || pm_ops_is_empty(&dev->pm_domain->ops)) &&
 		(!dev->driver || (pm_ops_is_empty(dev->driver->pm) &&
 		 !dev->driver->suspend && !dev->driver->resume));
-	spin_unlock_irq(&dev->power.lock);
+	spin_unlock_irqrestore(&dev->power.lock, flags);
 }
 
 bool dev_pm_smart_suspend_and_suspended(struct device *dev)
--- linux-ein-5.4.0.orig/drivers/base/power/power.h
+++ linux-ein-5.4.0/drivers/base/power/power.h
@@ -25,8 +25,11 @@
 
 #define WAKE_IRQ_DEDICATED_ALLOCATED	BIT(0)
 #define WAKE_IRQ_DEDICATED_MANAGED	BIT(1)
+#define WAKE_IRQ_DEDICATED_REVERSE	BIT(2)
 #define WAKE_IRQ_DEDICATED_MASK		(WAKE_IRQ_DEDICATED_ALLOCATED | \
-					 WAKE_IRQ_DEDICATED_MANAGED)
+					 WAKE_IRQ_DEDICATED_MANAGED | \
+					 WAKE_IRQ_DEDICATED_REVERSE)
+#define WAKE_IRQ_DEDICATED_ENABLED	BIT(3)
 
 struct wake_irq {
 	struct device *dev;
@@ -39,7 +42,8 @@
 extern void dev_pm_disarm_wake_irq(struct wake_irq *wirq);
 extern void dev_pm_enable_wake_irq_check(struct device *dev,
 					 bool can_change_status);
-extern void dev_pm_disable_wake_irq_check(struct device *dev);
+extern void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable);
+extern void dev_pm_enable_wake_irq_complete(struct device *dev);
 
 #ifdef CONFIG_PM_SLEEP
 
@@ -74,6 +78,7 @@
 extern void pm_qos_sysfs_remove_flags(struct device *dev);
 extern int pm_qos_sysfs_add_latency_tolerance(struct device *dev);
 extern void pm_qos_sysfs_remove_latency_tolerance(struct device *dev);
+extern int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid);
 
 #else /* CONFIG_PM */
 
@@ -88,6 +93,8 @@
 
 static inline int dpm_sysfs_add(struct device *dev) { return 0; }
 static inline void dpm_sysfs_remove(struct device *dev) {}
+static inline int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid,
+					 kgid_t kgid) { return 0; }
 
 #endif
 
--- linux-ein-5.4.0.orig/drivers/base/power/runtime.c
+++ linux-ein-5.4.0/drivers/base/power/runtime.c
@@ -291,8 +291,7 @@
 				device_links_read_lock_held()) {
 		int retval;
 
-		if (!(link->flags & DL_FLAG_PM_RUNTIME) ||
-		    READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND)
+		if (!(link->flags & DL_FLAG_PM_RUNTIME))
 			continue;
 
 		retval = pm_runtime_get_sync(link->supplier);
@@ -306,20 +305,38 @@
 	return 0;
 }
 
-static void rpm_put_suppliers(struct device *dev)
+static void __rpm_put_suppliers(struct device *dev, bool try_to_suspend)
 {
 	struct device_link *link;
 
 	list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
 				device_links_read_lock_held()) {
-		if (READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND)
-			continue;
 
 		while (refcount_dec_not_one(&link->rpm_active))
-			pm_runtime_put(link->supplier);
+			pm_runtime_put_noidle(link->supplier);
+
+		if (try_to_suspend)
+			pm_request_idle(link->supplier);
 	}
 }
 
+static void rpm_put_suppliers(struct device *dev)
+{
+	__rpm_put_suppliers(dev, true);
+}
+
+static void rpm_suspend_suppliers(struct device *dev)
+{
+	struct device_link *link;
+	int idx = device_links_read_lock();
+
+	list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
+				device_links_read_lock_held())
+		pm_request_idle(link->supplier);
+
+	device_links_read_unlock(idx);
+}
+
 /**
  * __rpm_callback - Run a given runtime PM callback for a given device.
  * @cb: Runtime PM callback to run.
@@ -347,8 +364,10 @@
 			idx = device_links_read_lock();
 
 			retval = rpm_get_suppliers(dev);
-			if (retval)
+			if (retval) {
+				rpm_put_suppliers(dev);
 				goto fail;
+			}
 
 			device_links_read_unlock(idx);
 		}
@@ -371,9 +390,9 @@
 		    || (dev->power.runtime_status == RPM_RESUMING && retval))) {
 			idx = device_links_read_lock();
 
- fail:
-			rpm_put_suppliers(dev);
+			__rpm_put_suppliers(dev, false);
 
+fail:
 			device_links_read_unlock(idx);
 		}
 
@@ -427,7 +446,10 @@
 	/* Pending requests need to be canceled. */
 	dev->power.request = RPM_REQ_NONE;
 
-	if (dev->power.no_callbacks)
+	callback = RPM_GET_CALLBACK(dev, runtime_idle);
+
+	/* If no callback assume success. */
+	if (!callback || dev->power.no_callbacks)
 		goto out;
 
 	/* Carry out an asynchronous or a synchronous idle notification. */
@@ -443,10 +465,17 @@
 
 	dev->power.idle_notification = true;
 
-	callback = RPM_GET_CALLBACK(dev, runtime_idle);
+	if (dev->power.irq_safe)
+		spin_unlock(&dev->power.lock);
+	else
+		spin_unlock_irq(&dev->power.lock);
 
-	if (callback)
-		retval = __rpm_callback(callback, dev);
+	retval = callback(dev);
+
+	if (dev->power.irq_safe)
+		spin_lock(&dev->power.lock);
+	else
+		spin_lock_irq(&dev->power.lock);
 
 	dev->power.idle_notification = false;
 	wake_up_all(&dev->power.wait_queue);
@@ -630,6 +659,8 @@
 	if (retval)
 		goto fail;
 
+	dev_pm_enable_wake_irq_complete(dev);
+
  no_callback:
 	__update_runtime_status(dev, RPM_SUSPENDED);
 	pm_runtime_deactivate_timer(dev);
@@ -647,8 +678,11 @@
 		goto out;
 	}
 
+	if (dev->power.irq_safe)
+		goto out;
+
 	/* Maybe the parent is now able to suspend. */
-	if (parent && !parent->power.ignore_children && !dev->power.irq_safe) {
+	if (parent && !parent->power.ignore_children) {
 		spin_unlock(&dev->power.lock);
 
 		spin_lock(&parent->power.lock);
@@ -657,6 +691,14 @@
 
 		spin_lock(&dev->power.lock);
 	}
+	/* Maybe the suppliers are now able to suspend. */
+	if (dev->power.links_count > 0) {
+		spin_unlock_irq(&dev->power.lock);
+
+		rpm_suspend_suppliers(dev);
+
+		spin_lock_irq(&dev->power.lock);
+	}
 
  out:
 	trace_rpm_return_int_rcuidle(dev, _THIS_IP_, retval);
@@ -664,7 +706,7 @@
 	return retval;
 
  fail:
-	dev_pm_disable_wake_irq_check(dev);
+	dev_pm_disable_wake_irq_check(dev, true);
 	__update_runtime_status(dev, RPM_ACTIVE);
 	dev->power.deferred_resume = false;
 	wake_up_all(&dev->power.wait_queue);
@@ -847,7 +889,7 @@
 
 	callback = RPM_GET_CALLBACK(dev, runtime_resume);
 
-	dev_pm_disable_wake_irq_check(dev);
+	dev_pm_disable_wake_irq_check(dev, false);
 	retval = rpm_callback(callback, dev);
 	if (retval) {
 		__update_runtime_status(dev, RPM_SUSPENDED);
@@ -1006,8 +1048,10 @@
 	int retval;
 
 	if (rpmflags & RPM_GET_PUT) {
-		if (!atomic_dec_and_test(&dev->power.usage_count))
+		if (!atomic_dec_and_test(&dev->power.usage_count)) {
+			trace_rpm_usage_rcuidle(dev, rpmflags);
 			return 0;
+		}
 	}
 
 	might_sleep_if(!(rpmflags & RPM_ASYNC) && !dev->power.irq_safe);
@@ -1038,8 +1082,10 @@
 	int retval;
 
 	if (rpmflags & RPM_GET_PUT) {
-		if (!atomic_dec_and_test(&dev->power.usage_count))
+		if (!atomic_dec_and_test(&dev->power.usage_count)) {
+			trace_rpm_usage_rcuidle(dev, rpmflags);
 			return 0;
+		}
 	}
 
 	might_sleep_if(!(rpmflags & RPM_ASYNC) && !dev->power.irq_safe);
@@ -1083,28 +1129,47 @@
 EXPORT_SYMBOL_GPL(__pm_runtime_resume);
 
 /**
- * pm_runtime_get_if_in_use - Conditionally bump up the device's usage counter.
+ * pm_runtime_get_if_active - Conditionally bump up the device's usage counter.
  * @dev: Device to handle.
  *
  * Return -EINVAL if runtime PM is disabled for the device.
  *
- * If that's not the case and if the device's runtime PM status is RPM_ACTIVE
- * and the runtime PM usage counter is nonzero, increment the counter and
- * return 1.  Otherwise return 0 without changing the counter.
+ * Otherwise, if the device's runtime PM status is RPM_ACTIVE and either
+ * ign_usage_count is true or the device's usage_count is non-zero, increment
+ * the counter and return 1. Otherwise return 0 without changing the counter.
+ *
+ * If ign_usage_count is true, the function can be used to prevent suspending
+ * the device when its runtime PM status is RPM_ACTIVE.
+ *
+ * If ign_usage_count is false, the function can be used to prevent suspending
+ * the device when both its runtime PM status is RPM_ACTIVE and its usage_count
+ * is non-zero.
+ *
+ * The caller is resposible for putting the device's usage count when ther
+ * return value is greater than zero.
  */
-int pm_runtime_get_if_in_use(struct device *dev)
+int pm_runtime_get_if_active(struct device *dev, bool ign_usage_count)
 {
 	unsigned long flags;
 	int retval;
 
 	spin_lock_irqsave(&dev->power.lock, flags);
-	retval = dev->power.disable_depth > 0 ? -EINVAL :
-		dev->power.runtime_status == RPM_ACTIVE
-			&& atomic_inc_not_zero(&dev->power.usage_count);
+	if (dev->power.disable_depth > 0) {
+		retval = -EINVAL;
+	} else if (dev->power.runtime_status != RPM_ACTIVE) {
+		retval = 0;
+	} else if (ign_usage_count) {
+		retval = 1;
+		atomic_inc(&dev->power.usage_count);
+	} else {
+		retval = atomic_inc_not_zero(&dev->power.usage_count);
+	}
+	trace_rpm_usage_rcuidle(dev, 0);
 	spin_unlock_irqrestore(&dev->power.lock, flags);
+
 	return retval;
 }
-EXPORT_SYMBOL_GPL(pm_runtime_get_if_in_use);
+EXPORT_SYMBOL_GPL(pm_runtime_get_if_active);
 
 /**
  * __pm_runtime_set_status - Set runtime PM status of a device.
@@ -1434,6 +1499,8 @@
 	dev->power.runtime_auto = true;
 	if (atomic_dec_and_test(&dev->power.usage_count))
 		rpm_idle(dev, RPM_AUTO | RPM_ASYNC);
+	else
+		trace_rpm_usage_rcuidle(dev, RPM_AUTO | RPM_ASYNC);
 
  out:
 	spin_unlock_irq(&dev->power.lock);
@@ -1501,6 +1568,8 @@
 		if (!old_use || old_delay >= 0) {
 			atomic_inc(&dev->power.usage_count);
 			rpm_resume(dev, 0);
+		} else {
+			trace_rpm_usage_rcuidle(dev, 0);
 		}
 	}
 
@@ -1580,6 +1649,7 @@
 	dev->power.request_pending = false;
 	dev->power.request = RPM_REQ_NONE;
 	dev->power.deferred_resume = false;
+	dev->power.needs_force_resume = 0;
 	INIT_WORK(&dev->power.work, pm_runtime_work);
 
 	dev->power.timer_expires = 0;
@@ -1619,42 +1689,6 @@
 }
 
 /**
- * pm_runtime_clean_up_links - Prepare links to consumers for driver removal.
- * @dev: Device whose driver is going to be removed.
- *
- * Check links from this device to any consumers and if any of them have active
- * runtime PM references to the device, drop the usage counter of the device
- * (as many times as needed).
- *
- * Links with the DL_FLAG_MANAGED flag unset are ignored.
- *
- * Since the device is guaranteed to be runtime-active at the point this is
- * called, nothing else needs to be done here.
- *
- * Moreover, this is called after device_links_busy() has returned 'false', so
- * the status of each link is guaranteed to be DL_STATE_SUPPLIER_UNBIND and
- * therefore rpm_active can't be manipulated concurrently.
- */
-void pm_runtime_clean_up_links(struct device *dev)
-{
-	struct device_link *link;
-	int idx;
-
-	idx = device_links_read_lock();
-
-	list_for_each_entry_rcu(link, &dev->links.consumers, s_node,
-				device_links_read_lock_held()) {
-		if (!(link->flags & DL_FLAG_MANAGED))
-			continue;
-
-		while (refcount_dec_not_one(&link->rpm_active))
-			pm_runtime_put_noidle(dev);
-	}
-
-	device_links_read_unlock(idx);
-}
-
-/**
  * pm_runtime_get_suppliers - Resume and reference-count supplier devices.
  * @dev: Consumer device.
  */
@@ -1669,8 +1703,8 @@
 				device_links_read_lock_held())
 		if (link->flags & DL_FLAG_PM_RUNTIME) {
 			link->supplier_preactivated = true;
-			refcount_inc(&link->rpm_active);
 			pm_runtime_get_sync(link->supplier);
+			refcount_inc(&link->rpm_active);
 		}
 
 	device_links_read_unlock(idx);
@@ -1683,6 +1717,8 @@
 void pm_runtime_put_suppliers(struct device *dev)
 {
 	struct device_link *link;
+	unsigned long flags;
+	bool put;
 	int idx;
 
 	idx = device_links_read_lock();
@@ -1691,7 +1727,11 @@
 				device_links_read_lock_held())
 		if (link->supplier_preactivated) {
 			link->supplier_preactivated = false;
-			if (refcount_dec_not_one(&link->rpm_active))
+			spin_lock_irqsave(&dev->power.lock, flags);
+			put = pm_runtime_status_suspended(dev) &&
+			      refcount_dec_not_one(&link->rpm_active);
+			spin_unlock_irqrestore(&dev->power.lock, flags);
+			if (put)
 				pm_runtime_put(link->supplier);
 		}
 
@@ -1705,7 +1745,7 @@
 	spin_unlock_irq(&dev->power.lock);
 }
 
-void pm_runtime_drop_link(struct device *dev)
+static void pm_runtime_drop_link_count(struct device *dev)
 {
 	spin_lock_irq(&dev->power.lock);
 	WARN_ON(dev->power.links_count == 0);
@@ -1713,6 +1753,25 @@
 	spin_unlock_irq(&dev->power.lock);
 }
 
+/**
+ * pm_runtime_drop_link - Prepare for device link removal.
+ * @link: Device link going away.
+ *
+ * Drop the link count of the consumer end of @link and decrement the supplier
+ * device's runtime PM usage counter as many times as needed to drop all of the
+ * PM runtime reference to it from the consumer.
+ */
+void pm_runtime_drop_link(struct device_link *link)
+{
+	if (!(link->flags & DL_FLAG_PM_RUNTIME))
+		return;
+
+	pm_runtime_drop_link_count(link->consumer);
+
+	while (refcount_dec_not_one(&link->rpm_active))
+		pm_runtime_put(link->supplier);
+}
+
 static bool pm_runtime_need_not_resume(struct device *dev)
 {
 	return atomic_read(&dev->power.usage_count) <= 1 &&
@@ -1758,10 +1817,12 @@
 	 * its parent, but set its status to RPM_SUSPENDED anyway in case this
 	 * function will be called again for it in the meantime.
 	 */
-	if (pm_runtime_need_not_resume(dev))
+	if (pm_runtime_need_not_resume(dev)) {
 		pm_runtime_set_suspended(dev);
-	else
+	} else {
 		__update_runtime_status(dev, RPM_SUSPENDED);
+		dev->power.needs_force_resume = 1;
+	}
 
 	return 0;
 
@@ -1788,7 +1849,7 @@
 	int (*callback)(struct device *);
 	int ret = 0;
 
-	if (!pm_runtime_status_suspended(dev) || pm_runtime_need_not_resume(dev))
+	if (!pm_runtime_status_suspended(dev) || !dev->power.needs_force_resume)
 		goto out;
 
 	/*
@@ -1807,6 +1868,7 @@
 
 	pm_runtime_mark_last_busy(dev);
 out:
+	dev->power.needs_force_resume = 0;
 	pm_runtime_enable(dev);
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/base/power/sysfs.c
+++ linux-ein-5.4.0/drivers/base/power/sysfs.c
@@ -100,7 +100,7 @@
 static ssize_t control_show(struct device *dev, struct device_attribute *attr,
 			    char *buf)
 {
-	return sprintf(buf, "%s\n",
+	return sysfs_emit(buf, "%s\n",
 				dev->power.runtime_auto ? ctrl_auto : ctrl_on);
 }
 
@@ -126,7 +126,7 @@
 	int ret;
 	u64 tmp = pm_runtime_active_time(dev);
 	do_div(tmp, NSEC_PER_MSEC);
-	ret = sprintf(buf, "%llu\n", tmp);
+	ret = sysfs_emit(buf, "%llu\n", tmp);
 	return ret;
 }
 
@@ -138,7 +138,7 @@
 	int ret;
 	u64 tmp = pm_runtime_suspended_time(dev);
 	do_div(tmp, NSEC_PER_MSEC);
-	ret = sprintf(buf, "%llu\n", tmp);
+	ret = sysfs_emit(buf, "%llu\n", tmp);
 	return ret;
 }
 
@@ -171,7 +171,7 @@
 			return -EIO;
 		}
 	}
-	return sprintf(buf, p);
+	return sysfs_emit(buf, p);
 }
 
 static DEVICE_ATTR_RO(runtime_status);
@@ -181,7 +181,7 @@
 {
 	if (!dev->power.use_autosuspend)
 		return -EIO;
-	return sprintf(buf, "%d\n", dev->power.autosuspend_delay);
+	return sysfs_emit(buf, "%d\n", dev->power.autosuspend_delay);
 }
 
 static ssize_t autosuspend_delay_ms_store(struct device *dev,
@@ -210,11 +210,11 @@
 	s32 value = dev_pm_qos_requested_resume_latency(dev);
 
 	if (value == 0)
-		return sprintf(buf, "n/a\n");
+		return sysfs_emit(buf, "n/a\n");
 	if (value == PM_QOS_RESUME_LATENCY_NO_CONSTRAINT)
 		value = 0;
 
-	return sprintf(buf, "%d\n", value);
+	return sysfs_emit(buf, "%d\n", value);
 }
 
 static ssize_t pm_qos_resume_latency_us_store(struct device *dev,
@@ -254,11 +254,11 @@
 	s32 value = dev_pm_qos_get_user_latency_tolerance(dev);
 
 	if (value < 0)
-		return sprintf(buf, "auto\n");
+		return sysfs_emit(buf, "auto\n");
 	if (value == PM_QOS_LATENCY_ANY)
-		return sprintf(buf, "any\n");
+		return sysfs_emit(buf, "any\n");
 
-	return sprintf(buf, "%d\n", value);
+	return sysfs_emit(buf, "%d\n", value);
 }
 
 static ssize_t pm_qos_latency_tolerance_us_store(struct device *dev,
@@ -290,8 +290,8 @@
 					struct device_attribute *attr,
 					char *buf)
 {
-	return sprintf(buf, "%d\n", !!(dev_pm_qos_requested_flags(dev)
-					& PM_QOS_FLAG_NO_POWER_OFF));
+	return sysfs_emit(buf, "%d\n", !!(dev_pm_qos_requested_flags(dev)
+					  & PM_QOS_FLAG_NO_POWER_OFF));
 }
 
 static ssize_t pm_qos_no_power_off_store(struct device *dev,
@@ -319,9 +319,9 @@
 static ssize_t wakeup_show(struct device *dev, struct device_attribute *attr,
 			   char *buf)
 {
-	return sprintf(buf, "%s\n", device_can_wakeup(dev)
-		? (device_may_wakeup(dev) ? _enabled : _disabled)
-		: "");
+	return sysfs_emit(buf, "%s\n", device_can_wakeup(dev)
+			  ? (device_may_wakeup(dev) ? _enabled : _disabled)
+			  : "");
 }
 
 static ssize_t wakeup_store(struct device *dev, struct device_attribute *attr,
@@ -480,6 +480,14 @@
 	return enabled ? sprintf(buf, "%lld\n", msec) : sprintf(buf, "\n");
 }
 
+static inline int dpm_sysfs_wakeup_change_owner(struct device *dev, kuid_t kuid,
+						kgid_t kgid)
+{
+	if (dev->power.wakeup && dev->power.wakeup->dev)
+		return device_change_owner(dev->power.wakeup->dev, kuid, kgid);
+	return 0;
+}
+
 static DEVICE_ATTR_RO(wakeup_last_time_ms);
 
 #ifdef CONFIG_PM_AUTOSLEEP
@@ -501,13 +509,19 @@
 
 static DEVICE_ATTR_RO(wakeup_prevent_sleep_time_ms);
 #endif /* CONFIG_PM_AUTOSLEEP */
-#endif /* CONFIG_PM_SLEEP */
+#else /* CONFIG_PM_SLEEP */
+static inline int dpm_sysfs_wakeup_change_owner(struct device *dev, kuid_t kuid,
+						kgid_t kgid)
+{
+	return 0;
+}
+#endif
 
 #ifdef CONFIG_PM_ADVANCED_DEBUG
 static ssize_t runtime_usage_show(struct device *dev,
 				  struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "%d\n", atomic_read(&dev->power.usage_count));
+	return sysfs_emit(buf, "%d\n", atomic_read(&dev->power.usage_count));
 }
 static DEVICE_ATTR_RO(runtime_usage);
 
@@ -515,8 +529,8 @@
 					struct device_attribute *attr,
 					char *buf)
 {
-	return sprintf(buf, "%d\n", dev->power.ignore_children ?
-		0 : atomic_read(&dev->power.child_count));
+	return sysfs_emit(buf, "%d\n", dev->power.ignore_children ?
+			  0 : atomic_read(&dev->power.child_count));
 }
 static DEVICE_ATTR_RO(runtime_active_kids);
 
@@ -524,12 +538,12 @@
 				    struct device_attribute *attr, char *buf)
 {
 	if (dev->power.disable_depth && (dev->power.runtime_auto == false))
-		return sprintf(buf, "disabled & forbidden\n");
+		return sysfs_emit(buf, "disabled & forbidden\n");
 	if (dev->power.disable_depth)
-		return sprintf(buf, "disabled\n");
+		return sysfs_emit(buf, "disabled\n");
 	if (dev->power.runtime_auto == false)
-		return sprintf(buf, "forbidden\n");
-	return sprintf(buf, "enabled\n");
+		return sysfs_emit(buf, "forbidden\n");
+	return sysfs_emit(buf, "enabled\n");
 }
 static DEVICE_ATTR_RO(runtime_enabled);
 
@@ -537,9 +551,9 @@
 static ssize_t async_show(struct device *dev, struct device_attribute *attr,
 			  char *buf)
 {
-	return sprintf(buf, "%s\n",
-			device_async_suspend_enabled(dev) ?
-				_enabled : _disabled);
+	return sysfs_emit(buf, "%s\n",
+			  device_async_suspend_enabled(dev) ?
+			  _enabled : _disabled);
 }
 
 static ssize_t async_store(struct device *dev, struct device_attribute *attr,
@@ -684,6 +698,45 @@
 	return rc;
 }
 
+int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid)
+{
+	int rc;
+
+	if (device_pm_not_required(dev))
+		return 0;
+
+	rc = sysfs_group_change_owner(&dev->kobj, &pm_attr_group, kuid, kgid);
+	if (rc)
+		return rc;
+
+	if (pm_runtime_callbacks_present(dev)) {
+		rc = sysfs_group_change_owner(
+			&dev->kobj, &pm_runtime_attr_group, kuid, kgid);
+		if (rc)
+			return rc;
+	}
+
+	if (device_can_wakeup(dev)) {
+		rc = sysfs_group_change_owner(&dev->kobj, &pm_wakeup_attr_group,
+					      kuid, kgid);
+		if (rc)
+			return rc;
+
+		rc = dpm_sysfs_wakeup_change_owner(dev, kuid, kgid);
+		if (rc)
+			return rc;
+	}
+
+	if (dev->power.set_latency_tolerance) {
+		rc = sysfs_group_change_owner(
+			&dev->kobj, &pm_qos_latency_tolerance_attr_group, kuid,
+			kgid);
+		if (rc)
+			return rc;
+	}
+	return 0;
+}
+
 int wakeup_sysfs_add(struct device *dev)
 {
 	return sysfs_merge_group(&dev->kobj, &pm_wakeup_attr_group);
--- linux-ein-5.4.0.orig/drivers/base/power/trace.c
+++ linux-ein-5.4.0/drivers/base/power/trace.c
@@ -13,6 +13,7 @@
 #include <linux/export.h>
 #include <linux/rtc.h>
 #include <linux/suspend.h>
+#include <linux/init.h>
 
 #include <linux/mc146818rtc.h>
 
@@ -165,6 +166,9 @@
 	const char *file = *(const char **)(tracedata + 2);
 	unsigned int user_hash_value, file_hash_value;
 
+	if (!x86_platform.legacy.rtc)
+		return;
+
 	user_hash_value = user % USERHASH;
 	file_hash_value = hash_string(lineno, file, FILEHASH);
 	set_magic_time(user_hash_value, file_hash_value, dev_hash_value);
@@ -267,6 +271,9 @@
 
 static int early_resume_init(void)
 {
+	if (!x86_platform.legacy.rtc)
+		return 0;
+
 	hash_value_early_read = read_magic_time();
 	register_pm_notifier(&pm_trace_nb);
 	return 0;
@@ -277,6 +284,9 @@
 	unsigned int val = hash_value_early_read;
 	unsigned int user, file, dev;
 
+	if (!x86_platform.legacy.rtc)
+		return 0;
+
 	user = val % USERHASH;
 	val = val / USERHASH;
 	file = val % FILEHASH;
--- linux-ein-5.4.0.orig/drivers/base/power/wakeirq.c
+++ linux-ein-5.4.0/drivers/base/power/wakeirq.c
@@ -145,24 +145,7 @@
 	return IRQ_HANDLED;
 }
 
-/**
- * dev_pm_set_dedicated_wake_irq - Request a dedicated wake-up interrupt
- * @dev: Device entry
- * @irq: Device wake-up interrupt
- *
- * Unless your hardware has separate wake-up interrupts in addition
- * to the device IO interrupts, you don't need this.
- *
- * Sets up a threaded interrupt handler for a device that has
- * a dedicated wake-up interrupt in addition to the device IO
- * interrupt.
- *
- * The interrupt starts disabled, and needs to be managed for
- * the device by the bus code or the device driver using
- * dev_pm_enable_wake_irq() and dev_pm_disable_wake_irq()
- * functions.
- */
-int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq)
+static int __dev_pm_set_dedicated_wake_irq(struct device *dev, int irq, unsigned int flag)
 {
 	struct wake_irq *wirq;
 	int err;
@@ -200,7 +183,7 @@
 	if (err)
 		goto err_free_irq;
 
-	wirq->status = WAKE_IRQ_DEDICATED_ALLOCATED;
+	wirq->status = WAKE_IRQ_DEDICATED_ALLOCATED | flag;
 
 	return err;
 
@@ -213,9 +196,58 @@
 
 	return err;
 }
+
+
+/**
+ * dev_pm_set_dedicated_wake_irq - Request a dedicated wake-up interrupt
+ * @dev: Device entry
+ * @irq: Device wake-up interrupt
+ *
+ * Unless your hardware has separate wake-up interrupts in addition
+ * to the device IO interrupts, you don't need this.
+ *
+ * Sets up a threaded interrupt handler for a device that has
+ * a dedicated wake-up interrupt in addition to the device IO
+ * interrupt.
+ *
+ * The interrupt starts disabled, and needs to be managed for
+ * the device by the bus code or the device driver using
+ * dev_pm_enable_wake_irq*() and dev_pm_disable_wake_irq*()
+ * functions.
+ */
+int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq)
+{
+	return __dev_pm_set_dedicated_wake_irq(dev, irq, 0);
+}
 EXPORT_SYMBOL_GPL(dev_pm_set_dedicated_wake_irq);
 
 /**
+ * dev_pm_set_dedicated_wake_irq_reverse - Request a dedicated wake-up interrupt
+ *                                         with reverse enable ordering
+ * @dev: Device entry
+ * @irq: Device wake-up interrupt
+ *
+ * Unless your hardware has separate wake-up interrupts in addition
+ * to the device IO interrupts, you don't need this.
+ *
+ * Sets up a threaded interrupt handler for a device that has a dedicated
+ * wake-up interrupt in addition to the device IO interrupt. It sets
+ * the status of WAKE_IRQ_DEDICATED_REVERSE to tell rpm_suspend()
+ * to enable dedicated wake-up interrupt after running the runtime suspend
+ * callback for @dev.
+ *
+ * The interrupt starts disabled, and needs to be managed for
+ * the device by the bus code or the device driver using
+ * dev_pm_enable_wake_irq*() and dev_pm_disable_wake_irq*()
+ * functions.
+ */
+int dev_pm_set_dedicated_wake_irq_reverse(struct device *dev, int irq)
+{
+	return __dev_pm_set_dedicated_wake_irq(dev, irq, WAKE_IRQ_DEDICATED_REVERSE);
+}
+EXPORT_SYMBOL_GPL(dev_pm_set_dedicated_wake_irq_reverse);
+
+/**
  * dev_pm_enable_wake_irq - Enable device wake-up interrupt
  * @dev: Device
  *
@@ -285,25 +317,56 @@
 	return;
 
 enable:
-	enable_irq(wirq->irq);
+	if (!can_change_status || !(wirq->status & WAKE_IRQ_DEDICATED_REVERSE)) {
+		enable_irq(wirq->irq);
+		wirq->status |= WAKE_IRQ_DEDICATED_ENABLED;
+	}
 }
 
 /**
  * dev_pm_disable_wake_irq_check - Checks and disables wake-up interrupt
  * @dev: Device
+ * @cond_disable: if set, also check WAKE_IRQ_DEDICATED_REVERSE
  *
  * Disables wake-up interrupt conditionally based on status.
  * Should be only called from rpm_suspend() and rpm_resume() path.
  */
-void dev_pm_disable_wake_irq_check(struct device *dev)
+void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable)
 {
 	struct wake_irq *wirq = dev->power.wakeirq;
 
 	if (!wirq || !((wirq->status & WAKE_IRQ_DEDICATED_MASK)))
 		return;
 
-	if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED)
+	if (cond_disable && (wirq->status & WAKE_IRQ_DEDICATED_REVERSE))
+		return;
+
+	if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED) {
+		wirq->status &= ~WAKE_IRQ_DEDICATED_ENABLED;
 		disable_irq_nosync(wirq->irq);
+	}
+}
+
+/**
+ * dev_pm_enable_wake_irq_complete - enable wake IRQ not enabled before
+ * @dev: Device using the wake IRQ
+ *
+ * Enable wake IRQ conditionally based on status, mainly used if want to
+ * enable wake IRQ after running ->runtime_suspend() which depends on
+ * WAKE_IRQ_DEDICATED_REVERSE.
+ *
+ * Should be only called from rpm_suspend() path.
+ */
+void dev_pm_enable_wake_irq_complete(struct device *dev)
+{
+	struct wake_irq *wirq = dev->power.wakeirq;
+
+	if (!wirq || !(wirq->status & WAKE_IRQ_DEDICATED_MASK))
+		return;
+
+	if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED &&
+	    wirq->status & WAKE_IRQ_DEDICATED_REVERSE)
+		enable_irq(wirq->irq);
 }
 
 /**
@@ -320,7 +383,7 @@
 
 	if (device_may_wakeup(wirq->dev)) {
 		if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED &&
-		    !pm_runtime_status_suspended(wirq->dev))
+		    !(wirq->status & WAKE_IRQ_DEDICATED_ENABLED))
 			enable_irq(wirq->irq);
 
 		enable_irq_wake(wirq->irq);
@@ -343,7 +406,7 @@
 		disable_irq_wake(wirq->irq);
 
 		if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED &&
-		    !pm_runtime_status_suspended(wirq->dev))
+		    !(wirq->status & WAKE_IRQ_DEDICATED_ENABLED))
 			disable_irq_nosync(wirq->irq);
 	}
 }
--- linux-ein-5.4.0.orig/drivers/base/power/wakeup.c
+++ linux-ein-5.4.0/drivers/base/power/wakeup.c
@@ -31,7 +31,8 @@
 bool events_check_enabled __read_mostly;
 
 /* First wakeup IRQ seen by the kernel in the last cycle. */
-unsigned int pm_wakeup_irq __read_mostly;
+static unsigned int wakeup_irq[2] __read_mostly;
+static DEFINE_RAW_SPINLOCK(wakeup_irq_lock);
 
 /* If greater than 0 and the system is suspending, terminate the suspend. */
 static atomic_t pm_abort_suspend __read_mostly;
@@ -241,7 +242,9 @@
 {
 	if (ws) {
 		wakeup_source_remove(ws);
-		wakeup_source_sysfs_remove(ws);
+		if (ws->dev)
+			wakeup_source_sysfs_remove(ws);
+
 		wakeup_source_destroy(ws);
 	}
 }
@@ -882,19 +885,45 @@
 	atomic_dec_if_positive(&pm_abort_suspend);
 }
 
-void pm_wakeup_clear(bool reset)
+void pm_wakeup_clear(unsigned int irq_number)
 {
-	pm_wakeup_irq = 0;
-	if (reset)
+	raw_spin_lock_irq(&wakeup_irq_lock);
+
+	if (irq_number && wakeup_irq[0] == irq_number)
+		wakeup_irq[0] = wakeup_irq[1];
+	else
+		wakeup_irq[0] = 0;
+
+	wakeup_irq[1] = 0;
+
+	raw_spin_unlock_irq(&wakeup_irq_lock);
+
+	if (!irq_number)
 		atomic_set(&pm_abort_suspend, 0);
 }
 
 void pm_system_irq_wakeup(unsigned int irq_number)
 {
-	if (pm_wakeup_irq == 0) {
-		pm_wakeup_irq = irq_number;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&wakeup_irq_lock, flags);
+
+	if (wakeup_irq[0] == 0)
+		wakeup_irq[0] = irq_number;
+	else if (wakeup_irq[1] == 0)
+		wakeup_irq[1] = irq_number;
+	else
+		irq_number = 0;
+
+	raw_spin_unlock_irqrestore(&wakeup_irq_lock, flags);
+
+	if (irq_number)
 		pm_system_wakeup();
-	}
+}
+
+unsigned int pm_wakeup_irq(void)
+{
+	return wakeup_irq[0];
 }
 
 /**
@@ -1071,6 +1100,9 @@
 		break;
 	}
 
+	if (!next_ws)
+		print_wakeup_source_stats(m, &deleted_ws);
+
 	return next_ws;
 }
 
--- linux-ein-5.4.0.orig/drivers/base/power/wakeup_stats.c
+++ linux-ein-5.4.0/drivers/base/power/wakeup_stats.c
@@ -42,7 +42,7 @@
 	ktime_t active_time =
 		ws->active ? ktime_sub(ktime_get(), ws->last_time) : 0;
 
-	return sprintf(buf, "%lld\n", ktime_to_ms(active_time));
+	return sysfs_emit(buf, "%lld\n", ktime_to_ms(active_time));
 }
 static DEVICE_ATTR_RO(active_time_ms);
 
@@ -57,7 +57,7 @@
 		active_time = ktime_sub(ktime_get(), ws->last_time);
 		total_time = ktime_add(total_time, active_time);
 	}
-	return sprintf(buf, "%lld\n", ktime_to_ms(total_time));
+	return sysfs_emit(buf, "%lld\n", ktime_to_ms(total_time));
 }
 static DEVICE_ATTR_RO(total_time_ms);
 
@@ -73,7 +73,7 @@
 		if (active_time > max_time)
 			max_time = active_time;
 	}
-	return sprintf(buf, "%lld\n", ktime_to_ms(max_time));
+	return sysfs_emit(buf, "%lld\n", ktime_to_ms(max_time));
 }
 static DEVICE_ATTR_RO(max_time_ms);
 
@@ -82,7 +82,7 @@
 {
 	struct wakeup_source *ws = dev_get_drvdata(dev);
 
-	return sprintf(buf, "%lld\n", ktime_to_ms(ws->last_time));
+	return sysfs_emit(buf, "%lld\n", ktime_to_ms(ws->last_time));
 }
 static DEVICE_ATTR_RO(last_change_ms);
 
@@ -91,7 +91,7 @@
 {
 	struct wakeup_source *ws = dev_get_drvdata(dev);
 
-	return sprintf(buf, "%s\n", ws->name);
+	return sysfs_emit(buf, "%s\n", ws->name);
 }
 static DEVICE_ATTR_RO(name);
 
@@ -106,7 +106,7 @@
 		prevent_sleep_time = ktime_add(prevent_sleep_time,
 			ktime_sub(ktime_get(), ws->start_prevent_time));
 	}
-	return sprintf(buf, "%lld\n", ktime_to_ms(prevent_sleep_time));
+	return sysfs_emit(buf, "%lld\n", ktime_to_ms(prevent_sleep_time));
 }
 static DEVICE_ATTR_RO(prevent_suspend_time_ms);
 
--- linux-ein-5.4.0.orig/drivers/base/regmap/internal.h
+++ linux-ein-5.4.0/drivers/base/regmap/internal.h
@@ -259,7 +259,7 @@
 int regcache_lookup_reg(struct regmap *map, unsigned int reg);
 
 int _regmap_raw_write(struct regmap *map, unsigned int reg,
-		      const void *val, size_t val_len);
+		      const void *val, size_t val_len, bool noinc);
 
 void regmap_async_complete_cb(struct regmap_async *async, int ret);
 
--- linux-ein-5.4.0.orig/drivers/base/regmap/regcache-rbtree.c
+++ linux-ein-5.4.0/drivers/base/regmap/regcache-rbtree.c
@@ -277,18 +277,18 @@
 
 	blk = krealloc(rbnode->block,
 		       blklen * map->cache_word_size,
-		       GFP_KERNEL);
+		       map->alloc_flags);
 	if (!blk)
 		return -ENOMEM;
 
+	rbnode->block = blk;
+
 	if (BITS_TO_LONGS(blklen) > BITS_TO_LONGS(rbnode->blklen)) {
 		present = krealloc(rbnode->cache_present,
 				   BITS_TO_LONGS(blklen) * sizeof(*present),
-				   GFP_KERNEL);
-		if (!present) {
-			kfree(blk);
+				   map->alloc_flags);
+		if (!present)
 			return -ENOMEM;
-		}
 
 		memset(present + BITS_TO_LONGS(rbnode->blklen), 0,
 		       (BITS_TO_LONGS(blklen) - BITS_TO_LONGS(rbnode->blklen))
@@ -305,7 +305,6 @@
 	}
 
 	/* update the rbnode block, its size and the base register */
-	rbnode->block = blk;
 	rbnode->blklen = blklen;
 	rbnode->base_reg = base_reg;
 	rbnode->cache_present = present;
@@ -321,7 +320,7 @@
 	const struct regmap_range *range;
 	int i;
 
-	rbnode = kzalloc(sizeof(*rbnode), GFP_KERNEL);
+	rbnode = kzalloc(sizeof(*rbnode), map->alloc_flags);
 	if (!rbnode)
 		return NULL;
 
@@ -347,13 +346,13 @@
 	}
 
 	rbnode->block = kmalloc_array(rbnode->blklen, map->cache_word_size,
-				      GFP_KERNEL);
+				      map->alloc_flags);
 	if (!rbnode->block)
 		goto err_free;
 
 	rbnode->cache_present = kcalloc(BITS_TO_LONGS(rbnode->blklen),
 					sizeof(*rbnode->cache_present),
-					GFP_KERNEL);
+					map->alloc_flags);
 	if (!rbnode->cache_present)
 		goto err_free_block;
 
@@ -454,7 +453,8 @@
 		if (!rbnode)
 			return -ENOMEM;
 		regcache_rbtree_set_register(map, rbnode,
-					     reg - rbnode->base_reg, value);
+					     (reg - rbnode->base_reg) / map->reg_stride,
+					     value);
 		regcache_rbtree_insert(map, &rbtree_ctx->root, rbnode);
 		rbtree_ctx->cached_rbnode = rbnode;
 	}
--- linux-ein-5.4.0.orig/drivers/base/regmap/regcache.c
+++ linux-ein-5.4.0/drivers/base/regmap/regcache.c
@@ -343,6 +343,9 @@
 	const char *name;
 	bool bypass;
 
+	if (WARN_ON(map->cache_type == REGCACHE_NONE))
+		return -EINVAL;
+
 	BUG_ON(!map->cache_ops);
 
 	map->lock(map->lock_arg);
@@ -412,6 +415,9 @@
 	const char *name;
 	bool bypass;
 
+	if (WARN_ON(map->cache_type == REGCACHE_NONE))
+		return -EINVAL;
+
 	BUG_ON(!map->cache_ops);
 
 	map->lock(map->lock_arg);
@@ -717,7 +723,7 @@
 
 	map->cache_bypass = true;
 
-	ret = _regmap_raw_write(map, base, *data, count * val_bytes);
+	ret = _regmap_raw_write(map, base, *data, count * val_bytes, false);
 	if (ret)
 		dev_err(map->dev, "Unable to sync registers %#x-%#x. %d\n",
 			base, cur - map->reg_stride, ret);
--- linux-ein-5.4.0.orig/drivers/base/regmap/regmap-debugfs.c
+++ linux-ein-5.4.0/drivers/base/regmap/regmap-debugfs.c
@@ -227,6 +227,9 @@
 	if (*ppos < 0 || !count)
 		return -EINVAL;
 
+	if (count > (PAGE_SIZE << (MAX_ORDER - 1)))
+		count = PAGE_SIZE << (MAX_ORDER - 1);
+
 	buf = kmalloc(count, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
@@ -371,6 +374,9 @@
 	if (*ppos < 0 || !count)
 		return -EINVAL;
 
+	if (count > (PAGE_SIZE << (MAX_ORDER - 1)))
+		count = PAGE_SIZE << (MAX_ORDER - 1);
+
 	buf = kmalloc(count, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
@@ -457,29 +463,31 @@
 {
 	struct regmap *map = container_of(file->private_data,
 					  struct regmap, cache_only);
-	ssize_t result;
-	bool was_enabled, require_sync = false;
+	bool new_val, require_sync = false;
 	int err;
 
-	map->lock(map->lock_arg);
-
-	was_enabled = map->cache_only;
+	err = kstrtobool_from_user(user_buf, count, &new_val);
+	/* Ignore malforned data like debugfs_write_file_bool() */
+	if (err)
+		return count;
+
+	err = debugfs_file_get(file->f_path.dentry);
+	if (err)
+		return err;
 
-	result = debugfs_write_file_bool(file, user_buf, count, ppos);
-	if (result < 0) {
-		map->unlock(map->lock_arg);
-		return result;
-	}
+	map->lock(map->lock_arg);
 
-	if (map->cache_only && !was_enabled) {
+	if (new_val && !map->cache_only) {
 		dev_warn(map->dev, "debugfs cache_only=Y forced\n");
 		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
-	} else if (!map->cache_only && was_enabled) {
+	} else if (!new_val && map->cache_only) {
 		dev_warn(map->dev, "debugfs cache_only=N forced: syncing cache\n");
 		require_sync = true;
 	}
+	map->cache_only = new_val;
 
 	map->unlock(map->lock_arg);
+	debugfs_file_put(file->f_path.dentry);
 
 	if (require_sync) {
 		err = regcache_sync(map);
@@ -487,7 +495,7 @@
 			dev_err(map->dev, "Failed to sync cache %d\n", err);
 	}
 
-	return result;
+	return count;
 }
 
 static const struct file_operations regmap_cache_only_fops = {
@@ -502,28 +510,32 @@
 {
 	struct regmap *map = container_of(file->private_data,
 					  struct regmap, cache_bypass);
-	ssize_t result;
-	bool was_enabled;
-
-	map->lock(map->lock_arg);
+	bool new_val;
+	int err;
 
-	was_enabled = map->cache_bypass;
+	err = kstrtobool_from_user(user_buf, count, &new_val);
+	/* Ignore malforned data like debugfs_write_file_bool() */
+	if (err)
+		return count;
+
+	err = debugfs_file_get(file->f_path.dentry);
+	if (err)
+		return err;
 
-	result = debugfs_write_file_bool(file, user_buf, count, ppos);
-	if (result < 0)
-		goto out;
+	map->lock(map->lock_arg);
 
-	if (map->cache_bypass && !was_enabled) {
+	if (new_val && !map->cache_bypass) {
 		dev_warn(map->dev, "debugfs cache_bypass=Y forced\n");
 		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
-	} else if (!map->cache_bypass && was_enabled) {
+	} else if (!new_val && map->cache_bypass) {
 		dev_warn(map->dev, "debugfs cache_bypass=N forced\n");
 	}
+	map->cache_bypass = new_val;
 
-out:
 	map->unlock(map->lock_arg);
+	debugfs_file_put(file->f_path.dentry);
 
-	return result;
+	return count;
 }
 
 static const struct file_operations regmap_cache_bypass_fops = {
@@ -571,8 +583,12 @@
 		devname = dev_name(map->dev);
 
 	if (name) {
-		map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
+		if (!map->debugfs_name) {
+			map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s",
 					      devname, name);
+			if (!map->debugfs_name)
+				return;
+		}
 		name = map->debugfs_name;
 	} else {
 		name = devname;
@@ -580,9 +596,10 @@
 
 	if (!strcmp(name, "dummy")) {
 		kfree(map->debugfs_name);
-
 		map->debugfs_name = kasprintf(GFP_KERNEL, "dummy%d",
 						dummy_index);
+		if (!map->debugfs_name)
+				return;
 		name = map->debugfs_name;
 		dummy_index++;
 	}
@@ -644,6 +661,7 @@
 		regmap_debugfs_free_dump_cache(map);
 		mutex_unlock(&map->cache_lock);
 		kfree(map->debugfs_name);
+		map->debugfs_name = NULL;
 	} else {
 		struct regmap_debugfs_node *node, *tmp;
 
--- linux-ein-5.4.0.orig/drivers/base/regmap/regmap-i2c.c
+++ linux-ein-5.4.0/drivers/base/regmap/regmap-i2c.c
@@ -242,6 +242,63 @@
 static struct regmap_bus regmap_i2c_smbus_i2c_block = {
 	.write = regmap_i2c_smbus_i2c_write,
 	.read = regmap_i2c_smbus_i2c_read,
+	.max_raw_read = I2C_SMBUS_BLOCK_MAX - 1,
+	.max_raw_write = I2C_SMBUS_BLOCK_MAX - 1,
+};
+
+static int regmap_i2c_smbus_i2c_write_reg16(void *context, const void *data,
+				      size_t count)
+{
+	struct device *dev = context;
+	struct i2c_client *i2c = to_i2c_client(dev);
+
+	if (count < 2)
+		return -EINVAL;
+
+	count--;
+	return i2c_smbus_write_i2c_block_data(i2c, ((u8 *)data)[0], count,
+					      (u8 *)data + 1);
+}
+
+static int regmap_i2c_smbus_i2c_read_reg16(void *context, const void *reg,
+				     size_t reg_size, void *val,
+				     size_t val_size)
+{
+	struct device *dev = context;
+	struct i2c_client *i2c = to_i2c_client(dev);
+	int ret, count, len = val_size;
+
+	if (reg_size != 2)
+		return -EINVAL;
+
+	ret = i2c_smbus_write_byte_data(i2c, ((u16 *)reg)[0] & 0xff,
+					((u16 *)reg)[0] >> 8);
+	if (ret < 0)
+		return ret;
+
+	count = 0;
+	do {
+		/* Current Address Read */
+		ret = i2c_smbus_read_byte(i2c);
+		if (ret < 0)
+			break;
+
+		*((u8 *)val++) = ret;
+		count++;
+		len--;
+	} while (len > 0);
+
+	if (count == val_size)
+		return 0;
+	else if (ret < 0)
+		return ret;
+	else
+		return -EIO;
+}
+
+static const struct regmap_bus regmap_i2c_smbus_i2c_block_reg16 = {
+	.write = regmap_i2c_smbus_i2c_write_reg16,
+	.read = regmap_i2c_smbus_i2c_read_reg16,
 	.max_raw_read = I2C_SMBUS_BLOCK_MAX,
 	.max_raw_write = I2C_SMBUS_BLOCK_MAX,
 };
@@ -255,6 +312,10 @@
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_I2C_BLOCK))
 		return &regmap_i2c_smbus_i2c_block;
+	else if (config->val_bits == 8 && config->reg_bits == 16 &&
+		i2c_check_functionality(i2c->adapter,
+					I2C_FUNC_SMBUS_I2C_BLOCK))
+		return &regmap_i2c_smbus_i2c_block_reg16;
 	else if (config->val_bits == 16 && config->reg_bits == 8 &&
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_WORD_DATA))
--- linux-ein-5.4.0.orig/drivers/base/regmap/regmap-irq.c
+++ linux-ein-5.4.0/drivers/base/regmap/regmap-irq.c
@@ -214,6 +214,7 @@
 	struct regmap_irq_chip_data *d = irq_data_get_irq_chip_data(data);
 	struct regmap *map = d->map;
 	const struct regmap_irq *irq_data = irq_to_regmap_irq(d, data->hwirq);
+	unsigned int reg = irq_data->reg_offset / map->reg_stride;
 	unsigned int mask, type;
 
 	type = irq_data->type.type_falling_val | irq_data->type.type_rising_val;
@@ -230,14 +231,14 @@
 	 * at the corresponding offset in regmap_irq_set_type().
 	 */
 	if (d->chip->type_in_mask && type)
-		mask = d->type_buf[irq_data->reg_offset / map->reg_stride];
+		mask = d->type_buf[reg] & irq_data->mask;
 	else
 		mask = irq_data->mask;
 
 	if (d->chip->clear_on_unmask)
 		d->clear_status = true;
 
-	d->mask_buf[irq_data->reg_offset / map->reg_stride] &= ~mask;
+	d->mask_buf[reg] &= ~mask;
 }
 
 static void regmap_irq_disable(struct irq_data *data)
@@ -493,7 +494,10 @@
 		if (data->status_buf[i] && (chip->ack_base || chip->use_ack)) {
 			reg = chip->ack_base +
 				(i * map->reg_stride * data->irq_reg_stride);
-			ret = regmap_write(map, reg, data->status_buf[i]);
+			ret = regmap_irq_update_bits(d, reg,
+						     data->status_buf[i],
+						     chip->ack_invert ?
+						     0x00 : 0xFF);
 			if (ret != 0)
 				dev_err(map->dev, "Failed to ack 0x%x: %d\n",
 					reg, ret);
--- linux-ein-5.4.0.orig/drivers/base/regmap/regmap-sdw.c
+++ linux-ein-5.4.0/drivers/base/regmap/regmap-sdw.c
@@ -12,7 +12,7 @@
 	struct device *dev = context;
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
 
-	return sdw_write(slave, reg, val);
+	return sdw_write_no_pm(slave, reg, val);
 }
 
 static int regmap_sdw_read(void *context, unsigned int reg, unsigned int *val)
@@ -21,7 +21,7 @@
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
 	int read;
 
-	read = sdw_read(slave, reg);
+	read = sdw_read_no_pm(slave, reg);
 	if (read < 0)
 		return read;
 
--- linux-ein-5.4.0.orig/drivers/base/regmap/regmap.c
+++ linux-ein-5.4.0/drivers/base/regmap/regmap.c
@@ -17,6 +17,7 @@
 #include <linux/delay.h>
 #include <linux/log2.h>
 #include <linux/hwspinlock.h>
+#include <asm/unaligned.h>
 
 #define CREATE_TRACE_POINTS
 #include "trace.h"
@@ -249,22 +250,20 @@
 
 static void regmap_format_16_be(void *buf, unsigned int val, unsigned int shift)
 {
-	__be16 *b = buf;
-
-	b[0] = cpu_to_be16(val << shift);
+	put_unaligned_be16(val << shift, buf);
 }
 
 static void regmap_format_16_le(void *buf, unsigned int val, unsigned int shift)
 {
-	__le16 *b = buf;
-
-	b[0] = cpu_to_le16(val << shift);
+	put_unaligned_le16(val << shift, buf);
 }
 
 static void regmap_format_16_native(void *buf, unsigned int val,
 				    unsigned int shift)
 {
-	*(u16 *)buf = val << shift;
+	u16 v = val << shift;
+
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_format_24(void *buf, unsigned int val, unsigned int shift)
@@ -280,43 +279,39 @@
 
 static void regmap_format_32_be(void *buf, unsigned int val, unsigned int shift)
 {
-	__be32 *b = buf;
-
-	b[0] = cpu_to_be32(val << shift);
+	put_unaligned_be32(val << shift, buf);
 }
 
 static void regmap_format_32_le(void *buf, unsigned int val, unsigned int shift)
 {
-	__le32 *b = buf;
-
-	b[0] = cpu_to_le32(val << shift);
+	put_unaligned_le32(val << shift, buf);
 }
 
 static void regmap_format_32_native(void *buf, unsigned int val,
 				    unsigned int shift)
 {
-	*(u32 *)buf = val << shift;
+	u32 v = val << shift;
+
+	memcpy(buf, &v, sizeof(v));
 }
 
 #ifdef CONFIG_64BIT
 static void regmap_format_64_be(void *buf, unsigned int val, unsigned int shift)
 {
-	__be64 *b = buf;
-
-	b[0] = cpu_to_be64((u64)val << shift);
+	put_unaligned_be64((u64) val << shift, buf);
 }
 
 static void regmap_format_64_le(void *buf, unsigned int val, unsigned int shift)
 {
-	__le64 *b = buf;
-
-	b[0] = cpu_to_le64((u64)val << shift);
+	put_unaligned_le64((u64) val << shift, buf);
 }
 
 static void regmap_format_64_native(void *buf, unsigned int val,
 				    unsigned int shift)
 {
-	*(u64 *)buf = (u64)val << shift;
+	u64 v = (u64) val << shift;
+
+	memcpy(buf, &v, sizeof(v));
 }
 #endif
 
@@ -333,35 +328,34 @@
 
 static unsigned int regmap_parse_16_be(const void *buf)
 {
-	const __be16 *b = buf;
-
-	return be16_to_cpu(b[0]);
+	return get_unaligned_be16(buf);
 }
 
 static unsigned int regmap_parse_16_le(const void *buf)
 {
-	const __le16 *b = buf;
-
-	return le16_to_cpu(b[0]);
+	return get_unaligned_le16(buf);
 }
 
 static void regmap_parse_16_be_inplace(void *buf)
 {
-	__be16 *b = buf;
+	u16 v = get_unaligned_be16(buf);
 
-	b[0] = be16_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_parse_16_le_inplace(void *buf)
 {
-	__le16 *b = buf;
+	u16 v = get_unaligned_le16(buf);
 
-	b[0] = le16_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static unsigned int regmap_parse_16_native(const void *buf)
 {
-	return *(u16 *)buf;
+	u16 v;
+
+	memcpy(&v, buf, sizeof(v));
+	return v;
 }
 
 static unsigned int regmap_parse_24(const void *buf)
@@ -376,69 +370,67 @@
 
 static unsigned int regmap_parse_32_be(const void *buf)
 {
-	const __be32 *b = buf;
-
-	return be32_to_cpu(b[0]);
+	return get_unaligned_be32(buf);
 }
 
 static unsigned int regmap_parse_32_le(const void *buf)
 {
-	const __le32 *b = buf;
-
-	return le32_to_cpu(b[0]);
+	return get_unaligned_le32(buf);
 }
 
 static void regmap_parse_32_be_inplace(void *buf)
 {
-	__be32 *b = buf;
+	u32 v = get_unaligned_be32(buf);
 
-	b[0] = be32_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_parse_32_le_inplace(void *buf)
 {
-	__le32 *b = buf;
+	u32 v = get_unaligned_le32(buf);
 
-	b[0] = le32_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static unsigned int regmap_parse_32_native(const void *buf)
 {
-	return *(u32 *)buf;
+	u32 v;
+
+	memcpy(&v, buf, sizeof(v));
+	return v;
 }
 
 #ifdef CONFIG_64BIT
 static unsigned int regmap_parse_64_be(const void *buf)
 {
-	const __be64 *b = buf;
-
-	return be64_to_cpu(b[0]);
+	return get_unaligned_be64(buf);
 }
 
 static unsigned int regmap_parse_64_le(const void *buf)
 {
-	const __le64 *b = buf;
-
-	return le64_to_cpu(b[0]);
+	return get_unaligned_le64(buf);
 }
 
 static void regmap_parse_64_be_inplace(void *buf)
 {
-	__be64 *b = buf;
+	u64 v =  get_unaligned_be64(buf);
 
-	b[0] = be64_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static void regmap_parse_64_le_inplace(void *buf)
 {
-	__le64 *b = buf;
+	u64 v = get_unaligned_le64(buf);
 
-	b[0] = le64_to_cpu(b[0]);
+	memcpy(buf, &v, sizeof(v));
 }
 
 static unsigned int regmap_parse_64_native(const void *buf)
 {
-	return *(u64 *)buf;
+	u64 v;
+
+	memcpy(&v, buf, sizeof(v));
+	return v;
 }
 #endif
 
@@ -1356,6 +1348,7 @@
 	if (map->hwlock)
 		hwspin_lock_free(map->hwlock);
 	kfree_const(map->name);
+	kfree(map->patch);
 	kfree(map);
 }
 EXPORT_SYMBOL_GPL(regmap_exit);
@@ -1370,7 +1363,7 @@
 
 	/* If the user didn't specify a name match any */
 	if (data)
-		return (*r)->name == data;
+		return (*r)->name && !strcmp((*r)->name, data);
 	else
 		return 1;
 }
@@ -1475,7 +1468,7 @@
 }
 
 static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
-				  const void *val, size_t val_len)
+				  const void *val, size_t val_len, bool noinc)
 {
 	struct regmap_range_node *range;
 	unsigned long flags;
@@ -1488,11 +1481,18 @@
 
 	WARN_ON(!map->bus);
 
-	/* Check for unwritable registers before we start */
-	for (i = 0; i < val_len / map->format.val_bytes; i++)
-		if (!regmap_writeable(map,
-				     reg + regmap_get_offset(map, i)))
-			return -EINVAL;
+	/* Check for unwritable or noinc registers in range
+	 * before we start
+	 */
+	if (!regmap_writeable_noinc(map, reg)) {
+		for (i = 0; i < val_len / map->format.val_bytes; i++) {
+			unsigned int element =
+				reg + regmap_get_offset(map, i);
+			if (!regmap_writeable(map, element) ||
+				regmap_writeable_noinc(map, element))
+				return -EINVAL;
+		}
+	}
 
 	if (!map->cache_bypass && map->format.parse_val) {
 		unsigned int ival;
@@ -1505,7 +1505,7 @@
 			if (ret) {
 				dev_err(map->dev,
 					"Error in caching of register: %x ret: %d\n",
-					reg + i, ret);
+					reg + regmap_get_offset(map, i), ret);
 				return ret;
 			}
 		}
@@ -1527,7 +1527,7 @@
 				win_residue, val_len / map->format.val_bytes);
 			ret = _regmap_raw_write_impl(map, reg, val,
 						     win_residue *
-						     map->format.val_bytes);
+						     map->format.val_bytes, noinc);
 			if (ret != 0)
 				return ret;
 
@@ -1541,7 +1541,7 @@
 			win_residue = range->window_len - win_offset;
 		}
 
-		ret = _regmap_select_page(map, &reg, range, val_num);
+		ret = _regmap_select_page(map, &reg, range, noinc ? 1 : val_num);
 		if (ret != 0)
 			return ret;
 	}
@@ -1749,7 +1749,8 @@
 				      map->work_buf +
 				      map->format.reg_bytes +
 				      map->format.pad_bytes,
-				      map->format.val_bytes);
+				      map->format.val_bytes,
+				      false);
 }
 
 static inline void *_regmap_map_get_context(struct regmap *map)
@@ -1843,12 +1844,14 @@
 EXPORT_SYMBOL_GPL(regmap_write_async);
 
 int _regmap_raw_write(struct regmap *map, unsigned int reg,
-		      const void *val, size_t val_len)
+		      const void *val, size_t val_len, bool noinc)
 {
 	size_t val_bytes = map->format.val_bytes;
 	size_t val_count = val_len / val_bytes;
 	size_t chunk_count, chunk_bytes;
 	size_t chunk_regs = val_count;
+	size_t max_data = map->max_raw_write - map->format.reg_bytes -
+			map->format.pad_bytes;
 	int ret, i;
 
 	if (!val_count)
@@ -1856,15 +1859,15 @@
 
 	if (map->use_single_write)
 		chunk_regs = 1;
-	else if (map->max_raw_write && val_len > map->max_raw_write)
-		chunk_regs = map->max_raw_write / val_bytes;
+	else if (map->max_raw_write && val_len > max_data)
+		chunk_regs = max_data / val_bytes;
 
 	chunk_count = val_count / chunk_regs;
 	chunk_bytes = chunk_regs * val_bytes;
 
 	/* Write as many bytes as possible with chunk_size */
 	for (i = 0; i < chunk_count; i++) {
-		ret = _regmap_raw_write_impl(map, reg, val, chunk_bytes);
+		ret = _regmap_raw_write_impl(map, reg, val, chunk_bytes, noinc);
 		if (ret)
 			return ret;
 
@@ -1875,7 +1878,7 @@
 
 	/* Write remaining bytes */
 	if (val_len)
-		ret = _regmap_raw_write_impl(map, reg, val, val_len);
+		ret = _regmap_raw_write_impl(map, reg, val, val_len, noinc);
 
 	return ret;
 }
@@ -1908,7 +1911,7 @@
 
 	map->lock(map->lock_arg);
 
-	ret = _regmap_raw_write(map, reg, val, val_len);
+	ret = _regmap_raw_write(map, reg, val, val_len, false);
 
 	map->unlock(map->lock_arg);
 
@@ -1966,7 +1969,7 @@
 			write_len = map->max_raw_write;
 		else
 			write_len = val_len;
-		ret = _regmap_raw_write(map, reg, val, write_len);
+		ret = _regmap_raw_write(map, reg, val, write_len, true);
 		if (ret)
 			goto out_unlock;
 		val = ((u8 *)val) + write_len;
@@ -2443,7 +2446,7 @@
 
 	map->async = true;
 
-	ret = _regmap_raw_write(map, reg, val, val_len);
+	ret = _regmap_raw_write(map, reg, val, val_len, false);
 
 	map->async = false;
 
@@ -2454,7 +2457,7 @@
 EXPORT_SYMBOL_GPL(regmap_raw_write_async);
 
 static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
-			    unsigned int val_len)
+			    unsigned int val_len, bool noinc)
 {
 	struct regmap_range_node *range;
 	int ret;
@@ -2467,7 +2470,7 @@
 	range = _regmap_range_lookup(map, reg);
 	if (range) {
 		ret = _regmap_select_page(map, &reg, range,
-					  val_len / map->format.val_bytes);
+					  noinc ? 1 : val_len / map->format.val_bytes);
 		if (ret != 0)
 			return ret;
 	}
@@ -2505,7 +2508,7 @@
 	if (!map->format.parse_val)
 		return -EINVAL;
 
-	ret = _regmap_raw_read(map, reg, work_val, map->format.val_bytes);
+	ret = _regmap_raw_read(map, reg, work_val, map->format.val_bytes, false);
 	if (ret == 0)
 		*val = map->format.parse_val(work_val);
 
@@ -2621,7 +2624,7 @@
 
 		/* Read bytes that fit into whole chunks */
 		for (i = 0; i < chunk_count; i++) {
-			ret = _regmap_raw_read(map, reg, val, chunk_bytes);
+			ret = _regmap_raw_read(map, reg, val, chunk_bytes, false);
 			if (ret != 0)
 				goto out;
 
@@ -2632,7 +2635,7 @@
 
 		/* Read remaining bytes */
 		if (val_len) {
-			ret = _regmap_raw_read(map, reg, val, val_len);
+			ret = _regmap_raw_read(map, reg, val, val_len, false);
 			if (ret != 0)
 				goto out;
 		}
@@ -2707,7 +2710,7 @@
 			read_len = map->max_raw_read;
 		else
 			read_len = val_len;
-		ret = _regmap_raw_read(map, reg, val, read_len);
+		ret = _regmap_raw_read(map, reg, val, read_len, true);
 		if (ret)
 			goto out_unlock;
 		val = ((u8 *)val) + read_len;
@@ -2929,6 +2932,28 @@
 }
 EXPORT_SYMBOL_GPL(regmap_update_bits_base);
 
+/**
+ * regmap_test_bits() - Check if all specified bits are set in a register.
+ *
+ * @map: Register map to operate on
+ * @reg: Register to read from
+ * @bits: Bits to test
+ *
+ * Returns -1 if the underlying regmap_read() fails, 0 if at least one of the
+ * tested bits is not set and 1 if all tested bits are set.
+ */
+int regmap_test_bits(struct regmap *map, unsigned int reg, unsigned int bits)
+{
+	unsigned int val, ret;
+
+	ret = regmap_read(map, reg, &val);
+	if (ret)
+		return ret;
+
+	return (val & bits) == bits;
+}
+EXPORT_SYMBOL_GPL(regmap_test_bits);
+
 void regmap_async_complete_cb(struct regmap_async *async, int ret)
 {
 	struct regmap *map = async->map;
--- linux-ein-5.4.0.orig/drivers/base/soc.c
+++ linux-ein-5.4.0/drivers/base/soc.c
@@ -76,15 +76,15 @@
 	struct soc_device *soc_dev = container_of(dev, struct soc_device, dev);
 
 	if (attr == &dev_attr_machine)
-		return sprintf(buf, "%s\n", soc_dev->attr->machine);
+		return sysfs_emit(buf, "%s\n", soc_dev->attr->machine);
 	if (attr == &dev_attr_family)
-		return sprintf(buf, "%s\n", soc_dev->attr->family);
+		return sysfs_emit(buf, "%s\n", soc_dev->attr->family);
 	if (attr == &dev_attr_revision)
-		return sprintf(buf, "%s\n", soc_dev->attr->revision);
+		return sysfs_emit(buf, "%s\n", soc_dev->attr->revision);
 	if (attr == &dev_attr_serial_number)
-		return sprintf(buf, "%s\n", soc_dev->attr->serial_number);
+		return sysfs_emit(buf, "%s\n", soc_dev->attr->serial_number);
 	if (attr == &dev_attr_soc_id)
-		return sprintf(buf, "%s\n", soc_dev->attr->soc_id);
+		return sysfs_emit(buf, "%s\n", soc_dev->attr->soc_id);
 
 	return -EINVAL;
 
--- linux-ein-5.4.0.orig/drivers/base/swnode.c
+++ linux-ein-5.4.0/drivers/base/swnode.c
@@ -520,7 +520,10 @@
 {
 	struct swnode *swnode = to_swnode(fwnode);
 
-	return swnode ? (swnode->parent ? &swnode->parent->fwnode : NULL) : NULL;
+	if (!swnode || !swnode->parent)
+		return NULL;
+
+	return fwnode_handle_get(&swnode->parent->fwnode);
 }
 
 static struct fwnode_handle *
@@ -531,14 +534,18 @@
 	struct swnode *c = to_swnode(child);
 
 	if (!p || list_empty(&p->children) ||
-	    (c && list_is_last(&c->entry, &p->children)))
+	    (c && list_is_last(&c->entry, &p->children))) {
+		fwnode_handle_put(child);
 		return NULL;
+	}
 
 	if (c)
 		c = list_next_entry(c, entry);
 	else
 		c = list_first_entry(&p->children, struct swnode, entry);
-	return &c->fwnode;
+
+	fwnode_handle_put(child);
+	return fwnode_handle_get(&c->fwnode);
 }
 
 static struct fwnode_handle *
@@ -676,6 +683,13 @@
 {
 	struct swnode *swnode = kobj_to_swnode(kobj);
 
+	if (swnode->parent) {
+		ida_simple_remove(&swnode->parent->child_ids, swnode->id);
+		list_del(&swnode->entry);
+	} else {
+		ida_simple_remove(&swnode_root_ids, swnode->id);
+	}
+
 	if (swnode->allocated) {
 		property_entries_free(swnode->node->properties);
 		kfree(swnode->node);
@@ -798,6 +812,9 @@
 	if (software_node_to_swnode(node))
 		return -EEXIST;
 
+	if (node->parent && !parent)
+		return -EINVAL;
+
 	return PTR_ERR_OR_ZERO(swnode_register(node, parent, 0));
 }
 EXPORT_SYMBOL_GPL(software_node_register);
@@ -841,13 +858,6 @@
 	if (!swnode)
 		return;
 
-	if (swnode->parent) {
-		ida_simple_remove(&swnode->parent->child_ids, swnode->id);
-		list_del(&swnode->entry);
-	} else {
-		ida_simple_remove(&swnode_root_ids, swnode->id);
-	}
-
 	kobject_put(&swnode->kobj);
 }
 EXPORT_SYMBOL_GPL(fwnode_remove_software_node);
--- linux-ein-5.4.0.orig/drivers/base/test/test_async_driver_probe.c
+++ linux-ein-5.4.0/drivers/base/test/test_async_driver_probe.c
@@ -44,7 +44,8 @@
 	 * performing an async init on that node.
 	 */
 	if (dev->driver->probe_type == PROBE_PREFER_ASYNCHRONOUS) {
-		if (dev_to_node(dev) != numa_node_id()) {
+		if (IS_ENABLED(CONFIG_NUMA) &&
+		    dev_to_node(dev) != numa_node_id()) {
 			dev_warn(dev, "NUMA node mismatch %d != %d\n",
 				 dev_to_node(dev), numa_node_id());
 			atomic_inc(&warnings);
@@ -83,7 +84,7 @@
 
 	pdev = platform_device_alloc(name, id);
 	if (!pdev)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	if (nid != NUMA_NO_NODE)
 		set_dev_node(&pdev->dev, nid);
@@ -145,7 +146,7 @@
 	calltime = ktime_get();
 	for_each_online_cpu(cpu) {
 		nid = cpu_to_node(cpu);
-		pdev = &sync_dev[sync_id];
+		pdev = &async_dev[async_id];
 
 		*pdev = test_platform_device_register_node("test_async_driver",
 							   async_id,
--- linux-ein-5.4.0.orig/drivers/bcma/main.c
+++ linux-ein-5.4.0/drivers/bcma/main.c
@@ -236,6 +236,7 @@
 
 void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core)
 {
+	device_initialize(&core->dev);
 	core->dev.release = bcma_release_core_dev;
 	core->dev.bus = &bcma_bus_type;
 	dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index);
@@ -277,11 +278,10 @@
 {
 	int err;
 
-	err = device_register(&core->dev);
+	err = device_add(&core->dev);
 	if (err) {
 		bcma_err(bus, "Could not register dev for core 0x%03X\n",
 			 core->id.id);
-		put_device(&core->dev);
 		return;
 	}
 	core->dev_registered = true;
@@ -372,7 +372,7 @@
 	/* Now noone uses internally-handled cores, we can free them */
 	list_for_each_entry_safe(core, tmp, &bus->cores, list) {
 		list_del(&core->list);
-		kfree(core);
+		put_device(&core->dev);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/block/Kconfig
+++ linux-ein-5.4.0/drivers/block/Kconfig
@@ -39,6 +39,22 @@
 	  To compile this driver as a module, choose M here: the
 	  module will be called floppy.
 
+config BLK_DEV_FD_RAWCMD
+	bool "Support for raw floppy disk commands (DEPRECATED)"
+	depends on BLK_DEV_FD
+	help
+	  If you want to use actual physical floppies and expect to do
+	  special low-level hardware accesses to them (access and use
+	  non-standard formats, for example), then enable this.
+
+	  Note that the code enabled by this option is rarely used and
+	  might be unstable or insecure, and distros should not enable it.
+
+	  Note: FDRAWCMD is deprecated and will be removed from the kernel
+	  in the near future.
+
+	  If unsure, say N.
+
 config AMIGA_FLOPPY
 	tristate "Amiga floppy support"
 	depends on AMIGA
@@ -230,7 +246,7 @@
 	  dynamically allocated with the /dev/loop-control interface.
 
 config BLK_DEV_CRYPTOLOOP
-	tristate "Cryptoloop Support"
+	tristate "Cryptoloop Support (DEPRECATED)"
 	select CRYPTO
 	select CRYPTO_CBC
 	depends on BLK_DEV_LOOP
@@ -242,7 +258,7 @@
 	  WARNING: This device is not safe for journaled file systems like
 	  ext3 or Reiserfs. Please use the Device Mapper crypto module
 	  instead, which can be configured to be on-disk compatible with the
-	  cryptoloop device.
+	  cryptoloop device.  cryptoloop support will be removed in Linux 5.16.
 
 source "drivers/block/drbd/Kconfig"
 
@@ -461,6 +477,7 @@
 config BLK_DEV_RSXX
 	tristate "IBM Flash Adapter 900GB Full Height PCIe Device Driver"
 	depends on PCI
+	select CRC32
 	help
 	  Device driver for IBM's high speed PCIe SSD
 	  storage device: Flash Adapter 900GB Full Height.
--- linux-ein-5.4.0.orig/drivers/block/ataflop.c
+++ linux-ein-5.4.0/drivers/block/ataflop.c
@@ -653,9 +653,6 @@
 		*p2++ = *p1++;
 }
 
-  
-  
-
 /* General Interrupt Handling */
 
 static void (*FloppyIRQHandler)( int status ) = NULL;
@@ -1225,6 +1222,7 @@
 	}
 	else {
 		/* all sectors finished */
+		finish_fdc();
 		fd_end_request_cur(BLK_STS_OK);
 	}
 	return;
@@ -1472,15 +1470,6 @@
 			ReqTrack, ReqSector, (unsigned long)ReqData ));
 }
 
-static void ataflop_commit_rqs(struct blk_mq_hw_ctx *hctx)
-{
-	spin_lock_irq(&ataflop_lock);
-	atari_disable_irq(IRQ_MFP_FDC);
-	finish_fdc();
-	atari_enable_irq(IRQ_MFP_FDC);
-	spin_unlock_irq(&ataflop_lock);
-}
-
 static blk_status_t ataflop_queue_rq(struct blk_mq_hw_ctx *hctx,
 				     const struct blk_mq_queue_data *bd)
 {
@@ -1488,6 +1477,8 @@
 	int drive = floppy - unit;
 	int type = floppy->type;
 
+	DPRINT(("Queue request: drive %d type %d last %d\n", drive, type, bd->last));
+
 	spin_lock_irq(&ataflop_lock);
 	if (fd_request) {
 		spin_unlock_irq(&ataflop_lock);
@@ -1547,8 +1538,6 @@
 	setup_req_params( drive );
 	do_fd_action( drive );
 
-	if (bd->last)
-		finish_fdc();
 	atari_enable_irq( IRQ_MFP_FDC );
 
 out:
@@ -1958,7 +1947,6 @@
 
 static const struct blk_mq_ops ataflop_mq_ops = {
 	.queue_rq = ataflop_queue_rq,
-	.commit_rqs = ataflop_commit_rqs,
 };
 
 static struct kobject *floppy_find(dev_t dev, int *part, void *data)
--- linux-ein-5.4.0.orig/drivers/block/brd.c
+++ linux-ein-5.4.0/drivers/block/brd.c
@@ -470,6 +470,25 @@
 	return kobj;
 }
 
+static inline void brd_check_and_reset_par(void)
+{
+	if (unlikely(!max_part))
+		max_part = 1;
+
+	/*
+	 * make sure 'max_part' can be divided exactly by (1U << MINORBITS),
+	 * otherwise, it is possiable to get same dev_t when adding partitions.
+	 */
+	if ((1U << MINORBITS) % max_part != 0)
+		max_part = 1UL << fls(max_part);
+
+	if (max_part > DISK_MAX_PARTS) {
+		pr_info("brd: max_part can't be larger than %d, reset max_part = %d.\n",
+			DISK_MAX_PARTS, DISK_MAX_PARTS);
+		max_part = DISK_MAX_PARTS;
+	}
+}
+
 static int __init brd_init(void)
 {
 	struct brd_device *brd, *next;
@@ -493,8 +512,7 @@
 	if (register_blkdev(RAMDISK_MAJOR, "ramdisk"))
 		return -EIO;
 
-	if (unlikely(!max_part))
-		max_part = 1;
+	brd_check_and_reset_par();
 
 	for (i = 0; i < rd_nr; i++) {
 		brd = brd_alloc(i);
--- linux-ein-5.4.0.orig/drivers/block/cryptoloop.c
+++ linux-ein-5.4.0/drivers/block/cryptoloop.c
@@ -189,6 +189,8 @@
 
 	if (rc)
 		printk(KERN_ERR "cryptoloop: loop_register_transfer failed\n");
+	else
+		pr_warn("the cryptoloop driver has been deprecated and will be removed in in Linux 5.16\n");
 	return rc;
 }
 
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_int.h
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_int.h
@@ -1673,22 +1673,22 @@
 };
 void drbd_bcast_event(struct drbd_device *device, const struct sib_info *sib);
 
-extern void notify_resource_state(struct sk_buff *,
+extern int notify_resource_state(struct sk_buff *,
 				  unsigned int,
 				  struct drbd_resource *,
 				  struct resource_info *,
 				  enum drbd_notification_type);
-extern void notify_device_state(struct sk_buff *,
+extern int notify_device_state(struct sk_buff *,
 				unsigned int,
 				struct drbd_device *,
 				struct device_info *,
 				enum drbd_notification_type);
-extern void notify_connection_state(struct sk_buff *,
+extern int notify_connection_state(struct sk_buff *,
 				    unsigned int,
 				    struct drbd_connection *,
 				    struct connection_info *,
 				    enum drbd_notification_type);
-extern void notify_peer_device_state(struct sk_buff *,
+extern int notify_peer_device_state(struct sk_buff *,
 				     unsigned int,
 				     struct drbd_peer_device *,
 				     struct peer_device_info *,
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_main.c
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_main.c
@@ -183,7 +183,7 @@
 		unsigned int set_size)
 {
 	struct drbd_request *r;
-	struct drbd_request *req = NULL;
+	struct drbd_request *req = NULL, *tmp = NULL;
 	int expect_epoch = 0;
 	int expect_size = 0;
 
@@ -237,8 +237,11 @@
 	 * to catch requests being barrier-acked "unexpectedly".
 	 * It usually should find the same req again, or some READ preceding it. */
 	list_for_each_entry(req, &connection->transfer_log, tl_requests)
-		if (req->epoch == expect_epoch)
+		if (req->epoch == expect_epoch) {
+			tmp = req;
 			break;
+		}
+	req = list_prepare_entry(tmp, &connection->transfer_log, tl_requests);
 	list_for_each_entry_safe_from(req, r, &connection->transfer_log, tl_requests) {
 		if (req->epoch != expect_epoch)
 			break;
@@ -2775,7 +2778,7 @@
 enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsigned int minor)
 {
 	struct drbd_resource *resource = adm_ctx->resource;
-	struct drbd_connection *connection;
+	struct drbd_connection *connection, *n;
 	struct drbd_device *device;
 	struct drbd_peer_device *peer_device, *tmp_peer_device;
 	struct gendisk *disk;
@@ -2903,7 +2906,7 @@
 out_idr_remove_vol:
 	idr_remove(&connection->peer_devices, vnr);
 out_idr_remove_from_resource:
-	for_each_connection(connection, resource) {
+	for_each_connection_safe(connection, n, resource) {
 		peer_device = idr_remove(&connection->peer_devices, vnr);
 		if (peer_device)
 			kref_put(&connection->kref, drbd_destroy_connection);
@@ -3706,9 +3709,8 @@
 	 * when we want to support more than
 	 * one PRO_VERSION */
 	static const char *cmdnames[] = {
+
 		[P_DATA]	        = "Data",
-		[P_WSAME]	        = "WriteSame",
-		[P_TRIM]	        = "Trim",
 		[P_DATA_REPLY]	        = "DataReply",
 		[P_RS_DATA_REPLY]	= "RSDataReply",
 		[P_BARRIER]	        = "Barrier",
@@ -3719,7 +3721,6 @@
 		[P_DATA_REQUEST]	= "DataRequest",
 		[P_RS_DATA_REQUEST]     = "RSDataRequest",
 		[P_SYNC_PARAM]	        = "SyncParam",
-		[P_SYNC_PARAM89]	= "SyncParam89",
 		[P_PROTOCOL]            = "ReportProtocol",
 		[P_UUIDS]	        = "ReportUUIDs",
 		[P_SIZES]	        = "ReportSizes",
@@ -3727,6 +3728,7 @@
 		[P_SYNC_UUID]           = "ReportSyncUUID",
 		[P_AUTH_CHALLENGE]      = "AuthChallenge",
 		[P_AUTH_RESPONSE]	= "AuthResponse",
+		[P_STATE_CHG_REQ]       = "StateChgRequest",
 		[P_PING]		= "Ping",
 		[P_PING_ACK]	        = "PingAck",
 		[P_RECV_ACK]	        = "RecvAck",
@@ -3737,24 +3739,26 @@
 		[P_NEG_DREPLY]	        = "NegDReply",
 		[P_NEG_RS_DREPLY]	= "NegRSDReply",
 		[P_BARRIER_ACK]	        = "BarrierAck",
-		[P_STATE_CHG_REQ]       = "StateChgRequest",
 		[P_STATE_CHG_REPLY]     = "StateChgReply",
 		[P_OV_REQUEST]          = "OVRequest",
 		[P_OV_REPLY]            = "OVReply",
 		[P_OV_RESULT]           = "OVResult",
 		[P_CSUM_RS_REQUEST]     = "CsumRSRequest",
 		[P_RS_IS_IN_SYNC]	= "CsumRSIsInSync",
+		[P_SYNC_PARAM89]	= "SyncParam89",
 		[P_COMPRESSED_BITMAP]   = "CBitmap",
 		[P_DELAY_PROBE]         = "DelayProbe",
 		[P_OUT_OF_SYNC]		= "OutOfSync",
-		[P_RETRY_WRITE]		= "RetryWrite",
 		[P_RS_CANCEL]		= "RSCancel",
 		[P_CONN_ST_CHG_REQ]	= "conn_st_chg_req",
 		[P_CONN_ST_CHG_REPLY]	= "conn_st_chg_reply",
 		[P_RETRY_WRITE]		= "retry_write",
 		[P_PROTOCOL_UPDATE]	= "protocol_update",
+		[P_TRIM]	        = "Trim",
 		[P_RS_THIN_REQ]         = "rs_thin_req",
 		[P_RS_DEALLOCATED]      = "rs_deallocated",
+		[P_WSAME]	        = "WriteSame",
+		[P_ZEROES]		= "Zeroes",
 
 		/* enum drbd_packet, but not commands - obsoleted flags:
 		 *	P_MAY_IGNORE
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_nl.c
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_nl.c
@@ -791,9 +791,11 @@
 	mutex_lock(&adm_ctx.resource->adm_mutex);
 
 	if (info->genlhdr->cmd == DRBD_ADM_PRIMARY)
-		retcode = drbd_set_role(adm_ctx.device, R_PRIMARY, parms.assume_uptodate);
+		retcode = (enum drbd_ret_code)drbd_set_role(adm_ctx.device,
+						R_PRIMARY, parms.assume_uptodate);
 	else
-		retcode = drbd_set_role(adm_ctx.device, R_SECONDARY, 0);
+		retcode = (enum drbd_ret_code)drbd_set_role(adm_ctx.device,
+						R_SECONDARY, 0);
 
 	mutex_unlock(&adm_ctx.resource->adm_mutex);
 	genl_lock();
@@ -1971,7 +1973,7 @@
 	drbd_flush_workqueue(&connection->sender_work);
 
 	rv = _drbd_request_state(device, NS(disk, D_ATTACHING), CS_VERBOSE);
-	retcode = rv;  /* FIXME: Type mismatch. */
+	retcode = (enum drbd_ret_code)rv;
 	drbd_resume_io(device);
 	if (rv < SS_SUCCESS)
 		goto fail;
@@ -2696,7 +2698,8 @@
 	}
 	rcu_read_unlock();
 
-	retcode = conn_request_state(connection, NS(conn, C_UNCONNECTED), CS_VERBOSE);
+	retcode = (enum drbd_ret_code)conn_request_state(connection,
+					NS(conn, C_UNCONNECTED), CS_VERBOSE);
 
 	conn_reconfig_done(connection);
 	mutex_unlock(&adm_ctx.resource->adm_mutex);
@@ -2809,7 +2812,7 @@
 	mutex_lock(&adm_ctx.resource->adm_mutex);
 	rv = conn_try_disconnect(connection, parms.force_disconnect);
 	if (rv < SS_SUCCESS)
-		retcode = rv;  /* FIXME: Type mismatch. */
+		retcode = (enum drbd_ret_code)rv;
 	else
 		retcode = NO_ERROR;
 	mutex_unlock(&adm_ctx.resource->adm_mutex);
@@ -3423,7 +3426,7 @@
 {
 	struct nlattr *resource_filter;
 	struct drbd_resource *resource;
-	struct drbd_device *uninitialized_var(device);
+	struct drbd_device *device;
 	int minor, err, retcode;
 	struct drbd_genlmsghdr *dh;
 	struct device_info device_info;
@@ -3512,7 +3515,7 @@
 {
 	struct nlattr *resource_filter;
 	struct drbd_resource *resource = NULL, *next_resource;
-	struct drbd_connection *uninitialized_var(connection);
+	struct drbd_connection *connection;
 	int err = 0, retcode;
 	struct drbd_genlmsghdr *dh;
 	struct connection_info connection_info;
@@ -3674,7 +3677,7 @@
 {
 	struct nlattr *resource_filter;
 	struct drbd_resource *resource;
-	struct drbd_device *uninitialized_var(device);
+	struct drbd_device *device;
 	struct drbd_peer_device *peer_device = NULL;
 	int minor, err, retcode;
 	struct drbd_genlmsghdr *dh;
@@ -4630,7 +4633,7 @@
 	return drbd_notification_header_to_skb(msg, &nh, true);
 }
 
-void notify_resource_state(struct sk_buff *skb,
+int notify_resource_state(struct sk_buff *skb,
 			   unsigned int seq,
 			   struct drbd_resource *resource,
 			   struct resource_info *resource_info,
@@ -4672,16 +4675,17 @@
 		if (err && err != -ESRCH)
 			goto failed;
 	}
-	return;
+	return 0;
 
 nla_put_failure:
 	nlmsg_free(skb);
 failed:
 	drbd_err(resource, "Error %d while broadcasting event. Event seq:%u\n",
 			err, seq);
+	return err;
 }
 
-void notify_device_state(struct sk_buff *skb,
+int notify_device_state(struct sk_buff *skb,
 			 unsigned int seq,
 			 struct drbd_device *device,
 			 struct device_info *device_info,
@@ -4721,16 +4725,17 @@
 		if (err && err != -ESRCH)
 			goto failed;
 	}
-	return;
+	return 0;
 
 nla_put_failure:
 	nlmsg_free(skb);
 failed:
 	drbd_err(device, "Error %d while broadcasting event. Event seq:%u\n",
 		 err, seq);
+	return err;
 }
 
-void notify_connection_state(struct sk_buff *skb,
+int notify_connection_state(struct sk_buff *skb,
 			     unsigned int seq,
 			     struct drbd_connection *connection,
 			     struct connection_info *connection_info,
@@ -4770,16 +4775,17 @@
 		if (err && err != -ESRCH)
 			goto failed;
 	}
-	return;
+	return 0;
 
 nla_put_failure:
 	nlmsg_free(skb);
 failed:
 	drbd_err(connection, "Error %d while broadcasting event. Event seq:%u\n",
 		 err, seq);
+	return err;
 }
 
-void notify_peer_device_state(struct sk_buff *skb,
+int notify_peer_device_state(struct sk_buff *skb,
 			      unsigned int seq,
 			      struct drbd_peer_device *peer_device,
 			      struct peer_device_info *peer_device_info,
@@ -4820,13 +4826,14 @@
 		if (err && err != -ESRCH)
 			goto failed;
 	}
-	return;
+	return 0;
 
 nla_put_failure:
 	nlmsg_free(skb);
 failed:
 	drbd_err(peer_device, "Error %d while broadcasting event. Event seq:%u\n",
 		 err, seq);
+	return err;
 }
 
 void notify_helper(enum drbd_notification_type type,
@@ -4877,7 +4884,7 @@
 		 err, seq);
 }
 
-static void notify_initial_state_done(struct sk_buff *skb, unsigned int seq)
+static int notify_initial_state_done(struct sk_buff *skb, unsigned int seq)
 {
 	struct drbd_genlmsghdr *dh;
 	int err;
@@ -4891,11 +4898,12 @@
 	if (nla_put_notification_header(skb, NOTIFY_EXISTS))
 		goto nla_put_failure;
 	genlmsg_end(skb, dh);
-	return;
+	return 0;
 
 nla_put_failure:
 	nlmsg_free(skb);
 	pr_err("Error %d sending event. Event seq:%u\n", err, seq);
+	return err;
 }
 
 static void free_state_changes(struct list_head *list)
@@ -4922,6 +4930,7 @@
 	unsigned int seq = cb->args[2];
 	unsigned int n;
 	enum drbd_notification_type flags = 0;
+	int err = 0;
 
 	/* There is no need for taking notification_mutex here: it doesn't
 	   matter if the initial state events mix with later state chage
@@ -4930,32 +4939,32 @@
 
 	cb->args[5]--;
 	if (cb->args[5] == 1) {
-		notify_initial_state_done(skb, seq);
+		err = notify_initial_state_done(skb, seq);
 		goto out;
 	}
 	n = cb->args[4]++;
 	if (cb->args[4] < cb->args[3])
 		flags |= NOTIFY_CONTINUES;
 	if (n < 1) {
-		notify_resource_state_change(skb, seq, state_change->resource,
+		err = notify_resource_state_change(skb, seq, state_change->resource,
 					     NOTIFY_EXISTS | flags);
 		goto next;
 	}
 	n--;
 	if (n < state_change->n_connections) {
-		notify_connection_state_change(skb, seq, &state_change->connections[n],
+		err = notify_connection_state_change(skb, seq, &state_change->connections[n],
 					       NOTIFY_EXISTS | flags);
 		goto next;
 	}
 	n -= state_change->n_connections;
 	if (n < state_change->n_devices) {
-		notify_device_state_change(skb, seq, &state_change->devices[n],
+		err = notify_device_state_change(skb, seq, &state_change->devices[n],
 					   NOTIFY_EXISTS | flags);
 		goto next;
 	}
 	n -= state_change->n_devices;
 	if (n < state_change->n_devices * state_change->n_connections) {
-		notify_peer_device_state_change(skb, seq, &state_change->peer_devices[n],
+		err = notify_peer_device_state_change(skb, seq, &state_change->peer_devices[n],
 						NOTIFY_EXISTS | flags);
 		goto next;
 	}
@@ -4970,7 +4979,10 @@
 		cb->args[4] = 0;
 	}
 out:
-	return skb->len;
+	if (err)
+		return err;
+	else
+		return skb->len;
 }
 
 int drbd_adm_get_initial_state(struct sk_buff *skb, struct netlink_callback *cb)
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_receiver.c
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_receiver.c
@@ -1298,7 +1298,7 @@
 	bio_set_dev(bio, device->ldev->backing_bdev);
 	bio->bi_private = octx;
 	bio->bi_end_io = one_flush_endio;
-	bio->bi_opf = REQ_OP_FLUSH | REQ_PREFLUSH;
+	bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
 
 	device->flush_jif = jiffies;
 	set_bit(FLUSH_PENDING, &device->flags);
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_req.c
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_req.c
@@ -195,7 +195,8 @@
 void complete_master_bio(struct drbd_device *device,
 		struct bio_and_error *m)
 {
-	m->bio->bi_status = errno_to_blk_status(m->error);
+	if (unlikely(m->error))
+		m->bio->bi_status = errno_to_blk_status(m->error);
 	bio_endio(m->bio);
 	dec_ap_bio(device);
 }
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_state.c
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_state.c
@@ -1537,7 +1537,7 @@
 	return rv;
 }
 
-void notify_resource_state_change(struct sk_buff *skb,
+int notify_resource_state_change(struct sk_buff *skb,
 				  unsigned int seq,
 				  struct drbd_resource_state_change *resource_state_change,
 				  enum drbd_notification_type type)
@@ -1550,10 +1550,10 @@
 		.res_susp_fen = resource_state_change->susp_fen[NEW],
 	};
 
-	notify_resource_state(skb, seq, resource, &resource_info, type);
+	return notify_resource_state(skb, seq, resource, &resource_info, type);
 }
 
-void notify_connection_state_change(struct sk_buff *skb,
+int notify_connection_state_change(struct sk_buff *skb,
 				    unsigned int seq,
 				    struct drbd_connection_state_change *connection_state_change,
 				    enum drbd_notification_type type)
@@ -1564,10 +1564,10 @@
 		.conn_role = connection_state_change->peer_role[NEW],
 	};
 
-	notify_connection_state(skb, seq, connection, &connection_info, type);
+	return notify_connection_state(skb, seq, connection, &connection_info, type);
 }
 
-void notify_device_state_change(struct sk_buff *skb,
+int notify_device_state_change(struct sk_buff *skb,
 				unsigned int seq,
 				struct drbd_device_state_change *device_state_change,
 				enum drbd_notification_type type)
@@ -1577,10 +1577,10 @@
 		.dev_disk_state = device_state_change->disk_state[NEW],
 	};
 
-	notify_device_state(skb, seq, device, &device_info, type);
+	return notify_device_state(skb, seq, device, &device_info, type);
 }
 
-void notify_peer_device_state_change(struct sk_buff *skb,
+int notify_peer_device_state_change(struct sk_buff *skb,
 				     unsigned int seq,
 				     struct drbd_peer_device_state_change *p,
 				     enum drbd_notification_type type)
@@ -1594,7 +1594,7 @@
 		.peer_resync_susp_dependency = p->resync_susp_dependency[NEW],
 	};
 
-	notify_peer_device_state(skb, seq, peer_device, &peer_device_info, type);
+	return notify_peer_device_state(skb, seq, peer_device, &peer_device_info, type);
 }
 
 static void broadcast_state_change(struct drbd_state_change *state_change)
@@ -1602,7 +1602,7 @@
 	struct drbd_resource_state_change *resource_state_change = &state_change->resource[0];
 	bool resource_state_has_changed;
 	unsigned int n_device, n_connection, n_peer_device, n_peer_devices;
-	void (*last_func)(struct sk_buff *, unsigned int, void *,
+	int (*last_func)(struct sk_buff *, unsigned int, void *,
 			  enum drbd_notification_type) = NULL;
 	void *uninitialized_var(last_arg);
 
--- linux-ein-5.4.0.orig/drivers/block/drbd/drbd_state_change.h
+++ linux-ein-5.4.0/drivers/block/drbd/drbd_state_change.h
@@ -44,19 +44,19 @@
 extern void copy_old_to_new_state_change(struct drbd_state_change *);
 extern void forget_state_change(struct drbd_state_change *);
 
-extern void notify_resource_state_change(struct sk_buff *,
+extern int notify_resource_state_change(struct sk_buff *,
 					 unsigned int,
 					 struct drbd_resource_state_change *,
 					 enum drbd_notification_type type);
-extern void notify_connection_state_change(struct sk_buff *,
+extern int notify_connection_state_change(struct sk_buff *,
 					   unsigned int,
 					   struct drbd_connection_state_change *,
 					   enum drbd_notification_type type);
-extern void notify_device_state_change(struct sk_buff *,
+extern int notify_device_state_change(struct sk_buff *,
 				       unsigned int,
 				       struct drbd_device_state_change *,
 				       enum drbd_notification_type type);
-extern void notify_peer_device_state_change(struct sk_buff *,
+extern int notify_peer_device_state_change(struct sk_buff *,
 					    unsigned int,
 					    struct drbd_peer_device_state_change *,
 					    enum drbd_notification_type type);
--- linux-ein-5.4.0.orig/drivers/block/floppy.c
+++ linux-ein-5.4.0/drivers/block/floppy.c
@@ -521,8 +521,8 @@
 static DECLARE_WAIT_QUEUE_HEAD(fdc_wait);
 static DECLARE_WAIT_QUEUE_HEAD(command_done);
 
-/* Errors during formatting are counted here. */
-static int format_errors;
+/* errors encountered on the current (or last) request */
+static int floppy_errors;
 
 /* Format request descriptor. */
 static struct format_descr format_req;
@@ -542,7 +542,6 @@
 static char *floppy_track_buffer;
 static int max_buffer_sectors;
 
-static int *errors;
 typedef void (*done_f)(int);
 static const struct cont_t {
 	void (*interrupt)(void);
@@ -853,14 +852,17 @@
 /* selects the fdc and drive, and enables the fdc's input/dma. */
 static void set_fdc(int drive)
 {
+	unsigned int new_fdc = fdc;
+
 	if (drive >= 0 && drive < N_DRIVE) {
-		fdc = FDC(drive);
+		new_fdc = FDC(drive);
 		current_drive = drive;
 	}
-	if (fdc != 1 && fdc != 0) {
+	if (new_fdc >= N_FDC) {
 		pr_info("bad fdc value\n");
 		return;
 	}
+	fdc = new_fdc;
 	set_dor(fdc, ~0, 8);
 #if N_FDC > 1
 	set_dor(1 - fdc, ~8, 0);
@@ -1000,7 +1002,7 @@
 static void cancel_activity(void)
 {
 	do_floppy = NULL;
-	cancel_delayed_work_sync(&fd_timer);
+	cancel_delayed_work(&fd_timer);
 	cancel_work_sync(&floppy_work);
 }
 
@@ -1432,7 +1434,7 @@
 			if (DP->flags & FTD_MSG)
 				DPRINT("Over/Underrun - retrying\n");
 			bad = 0;
-		} else if (*errors >= DP->max_errors.reporting) {
+		} else if (floppy_errors >= DP->max_errors.reporting) {
 			print_errors();
 		}
 		if (ST2 & ST2_WC || ST2 & ST2_BC)
@@ -2052,7 +2054,7 @@
 		if (!next_valid_format())
 			return;
 	}
-	err_count = ++(*errors);
+	err_count = ++floppy_errors;
 	INFBOUND(DRWE->badness, err_count);
 	if (err_count > DP->max_errors.abort)
 		cont->done(0);
@@ -2197,9 +2199,8 @@
 		return -EINVAL;
 	}
 	format_req = *tmp_format_req;
-	format_errors = 0;
 	cont = &format_cont;
-	errors = &format_errors;
+	floppy_errors = 0;
 	ret = wait_til_done(redo_format, true);
 	if (ret == -EINTR)
 		return -EINTR;
@@ -2674,7 +2675,7 @@
 		 */
 		if (!direct ||
 		    (indirect * 2 > direct * 3 &&
-		     *errors < DP->max_errors.read_track &&
+		     floppy_errors < DP->max_errors.read_track &&
 		     ((!probing ||
 		       (DP->read_track & (1 << DRS->probed_format)))))) {
 			max_size = blk_rq_sectors(current_req);
@@ -2798,10 +2799,11 @@
 	current_req = list_first_entry_or_null(&floppy_reqs, struct request,
 					       queuelist);
 	if (current_req) {
-		current_req->error_count = 0;
+		floppy_errors = 0;
 		list_del_init(&current_req->queuelist);
+		return 1;
 	}
-	return current_req != NULL;
+	return 0;
 }
 
 static void redo_fd_request(void)
@@ -2857,7 +2859,6 @@
 		_floppy = floppy_type + DP->autodetect[DRS->probed_format];
 	} else
 		probing = 0;
-	errors = &(current_req->error_count);
 	tmp = make_raw_rw_request();
 	if (tmp < 2) {
 		request_done(tmp);
@@ -2899,17 +2900,17 @@
 		 (unsigned long long) current_req->cmd_flags))
 		return BLK_STS_IOERR;
 
-	spin_lock_irq(&floppy_lock);
-	list_add_tail(&bd->rq->queuelist, &floppy_reqs);
-	spin_unlock_irq(&floppy_lock);
-
 	if (test_and_set_bit(0, &fdc_busy)) {
 		/* fdc busy, this new request will be treated when the
 		   current one is done */
 		is_alive(__func__, "old request running");
-		return BLK_STS_OK;
+		return BLK_STS_RESOURCE;
 	}
 
+	spin_lock_irq(&floppy_lock);
+	list_add_tail(&bd->rq->queuelist, &floppy_reqs);
+	spin_unlock_irq(&floppy_lock);
+
 	command_status = FD_COMMAND_NONE;
 	__reschedule_timeout(MAXTIMEOUT, "fd_request");
 	set_fdc(0);
@@ -3009,6 +3010,8 @@
 		return "(null)";
 }
 
+#ifdef CONFIG_BLK_DEV_FD_RAWCMD
+
 /* raw commands */
 static void raw_cmd_done(int flag)
 {
@@ -3109,6 +3112,8 @@
 	}
 }
 
+#define MAX_LEN (1UL << MAX_ORDER << PAGE_SHIFT)
+
 static int raw_cmd_copyin(int cmd, void __user *param,
 				 struct floppy_raw_cmd **rcmd)
 {
@@ -3146,7 +3151,7 @@
 	ptr->resultcode = 0;
 
 	if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) {
-		if (ptr->length <= 0)
+		if (ptr->length <= 0 || ptr->length >= MAX_LEN)
 			return -EINVAL;
 		ptr->kernel_data = (char *)fd_dma_mem_alloc(ptr->length);
 		fallback_on_nodma_alloc(&ptr->kernel_data, ptr->length);
@@ -3218,6 +3223,35 @@
 	return ret;
 }
 
+static int floppy_raw_cmd_ioctl(int type, int drive, int cmd,
+				void __user *param)
+{
+	int ret;
+
+	pr_warn_once("Note: FDRAWCMD is deprecated and will be removed from the kernel in the near future.\n");
+
+	if (type)
+		return -EINVAL;
+	if (lock_fdc(drive))
+		return -EINTR;
+	set_floppy(drive);
+	ret = raw_cmd_ioctl(cmd, param);
+	if (ret == -EINTR)
+		return -EINTR;
+	process_fd_request();
+	return ret;
+}
+
+#else /* CONFIG_BLK_DEV_FD_RAWCMD */
+
+static int floppy_raw_cmd_ioctl(int type, int drive, int cmd,
+				void __user *param)
+{
+	return -EOPNOTSUPP;
+}
+
+#endif
+
 static int invalidate_drive(struct block_device *bdev)
 {
 	/* invalidate the buffer track to force a reread */
@@ -3405,7 +3439,6 @@
 {
 	int drive = (long)bdev->bd_disk->private_data;
 	int type = ITYPE(UDRS->fd_device);
-	int i;
 	int ret;
 	int size;
 	union inparam {
@@ -3556,16 +3589,7 @@
 		outparam = UDRWE;
 		break;
 	case FDRAWCMD:
-		if (type)
-			return -EINVAL;
-		if (lock_fdc(drive))
-			return -EINTR;
-		set_floppy(drive);
-		i = raw_cmd_ioctl(cmd, (void __user *)param);
-		if (i == -EINTR)
-			return -EINTR;
-		process_fd_request();
-		return i;
+		return floppy_raw_cmd_ioctl(type, drive, cmd, (void __user *)param);
 	case FDTWADDLE:
 		if (lock_fdc(drive))
 			return -EINTR;
--- linux-ein-5.4.0.orig/drivers/block/loop.c
+++ linux-ein-5.4.0/drivers/block/loop.c
@@ -417,19 +417,22 @@
 	return ret;
 }
 
-static int lo_discard(struct loop_device *lo, struct request *rq, loff_t pos)
+static int lo_fallocate(struct loop_device *lo, struct request *rq, loff_t pos,
+			int mode)
 {
 	/*
-	 * We use punch hole to reclaim the free space used by the
-	 * image a.k.a. discard. However we do not support discard if
-	 * encryption is enabled, because it may give an attacker
-	 * useful information.
+	 * We use fallocate to manipulate the space mappings used by the image
+	 * a.k.a. discard/zerorange. However we do not support this if
+	 * encryption is enabled, because it may give an attacker useful
+	 * information.
 	 */
 	struct file *file = lo->lo_backing_file;
-	int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE;
+	struct request_queue *q = lo->lo_queue;
 	int ret;
 
-	if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
+	mode |= FALLOC_FL_KEEP_SIZE;
+
+	if (!blk_queue_discard(q)) {
 		ret = -EOPNOTSUPP;
 		goto out;
 	}
@@ -494,7 +497,8 @@
 		return;
 	kfree(cmd->bvec);
 	cmd->bvec = NULL;
-	blk_mq_complete_request(rq);
+	if (likely(!blk_should_fake_timeout(rq->q)))
+		blk_mq_complete_request(rq);
 }
 
 static void lo_rw_aio_complete(struct kiocb *iocb, long ret, long ret2)
@@ -596,9 +600,17 @@
 	switch (req_op(rq)) {
 	case REQ_OP_FLUSH:
 		return lo_req_flush(lo, rq);
-	case REQ_OP_DISCARD:
 	case REQ_OP_WRITE_ZEROES:
-		return lo_discard(lo, rq, pos);
+		/*
+		 * If the caller doesn't want deallocation, call zeroout to
+		 * write zeroes the range.  Otherwise, punch them out.
+		 */
+		return lo_fallocate(lo, rq, pos,
+			(rq->cmd_flags & REQ_NOUNMAP) ?
+				FALLOC_FL_ZERO_RANGE :
+				FALLOC_FL_PUNCH_HOLE);
+	case REQ_OP_DISCARD:
+		return lo_fallocate(lo, rq, pos, FALLOC_FL_PUNCH_HOLE);
 	case REQ_OP_WRITE:
 		if (lo->transfer)
 			return lo_write_transfer(lo, rq, pos);
@@ -625,6 +637,15 @@
 			lo->use_dio);
 }
 
+static struct file *loop_real_file(struct file *file)
+{
+	struct file *f = NULL;
+
+	if (file->f_path.dentry->d_sb->s_op->real_loop)
+		f = file->f_path.dentry->d_sb->s_op->real_loop(file);
+	return f;
+}
+
 static void loop_reread_partitions(struct loop_device *lo,
 				   struct block_device *bdev)
 {
@@ -678,6 +699,7 @@
 			  unsigned int arg)
 {
 	struct file	*file = NULL, *old_file;
+	struct file	*f, *virt_file = NULL, *old_virt_file;
 	int		error;
 	bool		partscan;
 
@@ -697,12 +719,19 @@
 	file = fget(arg);
 	if (!file)
 		goto out_err;
+	f = loop_real_file(file);
+	if (f) {
+		virt_file = file;
+		file = f;
+		get_file(file);
+	}
 
 	error = loop_validate_file(file, bdev);
 	if (error)
 		goto out_err;
 
 	old_file = lo->lo_backing_file;
+	old_virt_file = lo->lo_backing_virt_file;
 
 	error = -EINVAL;
 
@@ -714,6 +743,7 @@
 	blk_mq_freeze_queue(lo->lo_queue);
 	mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
 	lo->lo_backing_file = file;
+	lo->lo_backing_virt_file = virt_file;
 	lo->old_gfp_mask = mapping_gfp_mask(file->f_mapping);
 	mapping_set_gfp_mask(file->f_mapping,
 			     lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
@@ -727,6 +757,8 @@
 	 * dependency.
 	 */
 	fput(old_file);
+	if (old_virt_file)
+		fput(old_virt_file);
 	if (partscan)
 		loop_reread_partitions(lo, bdev);
 	return 0;
@@ -735,9 +767,29 @@
 	mutex_unlock(&loop_ctl_mutex);
 	if (file)
 		fput(file);
+	if (virt_file)
+		fput(virt_file);
 	return error;
 }
 
+/*
+ * for AUFS
+ * no get/put for file.
+ */
+struct file *loop_backing_file(struct super_block *sb)
+{
+	struct file *ret;
+	struct loop_device *l;
+
+	ret = NULL;
+	if (MAJOR(sb->s_dev) == LOOP_MAJOR) {
+		l = sb->s_bdev->bd_disk->private_data;
+		ret = l->lo_backing_file;
+	}
+	return ret;
+}
+EXPORT_SYMBOL_GPL(loop_backing_file);
+
 /* loop sysfs attributes */
 
 static ssize_t loop_attr_show(struct device *dev, char *page,
@@ -783,33 +835,33 @@
 
 static ssize_t loop_attr_offset_show(struct loop_device *lo, char *buf)
 {
-	return sprintf(buf, "%llu\n", (unsigned long long)lo->lo_offset);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)lo->lo_offset);
 }
 
 static ssize_t loop_attr_sizelimit_show(struct loop_device *lo, char *buf)
 {
-	return sprintf(buf, "%llu\n", (unsigned long long)lo->lo_sizelimit);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)lo->lo_sizelimit);
 }
 
 static ssize_t loop_attr_autoclear_show(struct loop_device *lo, char *buf)
 {
 	int autoclear = (lo->lo_flags & LO_FLAGS_AUTOCLEAR);
 
-	return sprintf(buf, "%s\n", autoclear ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", autoclear ? "1" : "0");
 }
 
 static ssize_t loop_attr_partscan_show(struct loop_device *lo, char *buf)
 {
 	int partscan = (lo->lo_flags & LO_FLAGS_PARTSCAN);
 
-	return sprintf(buf, "%s\n", partscan ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", partscan ? "1" : "0");
 }
 
 static ssize_t loop_attr_dio_show(struct loop_device *lo, char *buf)
 {
 	int dio = (lo->lo_flags & LO_FLAGS_DIRECT_IO);
 
-	return sprintf(buf, "%s\n", dio ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", dio ? "1" : "0");
 }
 
 LOOP_ATTR_RO(backing_file);
@@ -852,6 +904,23 @@
 	struct file *file = lo->lo_backing_file;
 	struct inode *inode = file->f_mapping->host;
 	struct request_queue *q = lo->lo_queue;
+	u32 granularity, max_discard_sectors;
+
+	/*
+	 * If the backing device is a block device, mirror its zeroing
+	 * capability. Set the discard sectors to the block device's zeroing
+	 * capabilities because loop discards result in blkdev_issue_zeroout(),
+	 * not blkdev_issue_discard(). This maintains consistent behavior with
+	 * file-backed loop devices: discarded regions read back as zero.
+	 */
+	if (S_ISBLK(inode->i_mode) && !lo->lo_encrypt_key_size) {
+		struct request_queue *backingq;
+
+		backingq = bdev_get_queue(inode->i_bdev);
+
+		max_discard_sectors = backingq->limits.max_write_zeroes_sectors;
+		granularity = backingq->limits.discard_granularity ?:
+			queue_physical_block_size(backingq);
 
 	/*
 	 * We use punch hole to reclaim the free space used by the
@@ -859,22 +928,27 @@
 	 * encryption is enabled, because it may give an attacker
 	 * useful information.
 	 */
-	if ((!file->f_op->fallocate) ||
-	    lo->lo_encrypt_key_size) {
+	} else if (!file->f_op->fallocate || lo->lo_encrypt_key_size) {
+		max_discard_sectors = 0;
+		granularity = 0;
+
+	} else {
+		max_discard_sectors = UINT_MAX >> 9;
+		granularity = inode->i_sb->s_blocksize;
+	}
+
+	if (max_discard_sectors) {
+		q->limits.discard_granularity = granularity;
+		blk_queue_max_discard_sectors(q, max_discard_sectors);
+		blk_queue_max_write_zeroes_sectors(q, max_discard_sectors);
+		blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
+	} else {
 		q->limits.discard_granularity = 0;
-		q->limits.discard_alignment = 0;
 		blk_queue_max_discard_sectors(q, 0);
 		blk_queue_max_write_zeroes_sectors(q, 0);
 		blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
-		return;
 	}
-
-	q->limits.discard_granularity = inode->i_sb->s_blocksize;
 	q->limits.discard_alignment = 0;
-
-	blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
-	blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
-	blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
 }
 
 static void loop_unprepare_queue(struct loop_device *lo)
@@ -921,7 +995,7 @@
 static int loop_set_fd(struct loop_device *lo, fmode_t mode,
 		       struct block_device *bdev, unsigned int arg)
 {
-	struct file	*file;
+	struct file	*file, *f, *virt_file = NULL;
 	struct inode	*inode;
 	struct address_space *mapping;
 	struct block_device *claimed_bdev = NULL;
@@ -937,6 +1011,12 @@
 	file = fget(arg);
 	if (!file)
 		goto out;
+	f = loop_real_file(file);
+	if (f) {
+		virt_file = file;
+		file = f;
+		get_file(file);
+	}
 
 	/*
 	 * If we don't hold exclusive handle for the device, upgrade to it
@@ -985,6 +1065,7 @@
 	lo->lo_device = bdev;
 	lo->lo_flags = lo_flags;
 	lo->lo_backing_file = file;
+	lo->lo_backing_virt_file = virt_file;
 	lo->transfer = NULL;
 	lo->ioctl = NULL;
 	lo->lo_sizelimit = 0;
@@ -1038,6 +1119,8 @@
 		bd_abort_claiming(bdev, claimed_bdev, loop_set_fd);
 out_putf:
 	fput(file);
+	if (virt_file)
+		fput(virt_file);
 out:
 	/* This is safe: open() is still holding a reference. */
 	module_put(THIS_MODULE);
@@ -1084,6 +1167,7 @@
 static int __loop_clr_fd(struct loop_device *lo, bool release)
 {
 	struct file *filp = NULL;
+	struct file *virt_filp = lo->lo_backing_virt_file;
 	gfp_t gfp = lo->old_gfp_mask;
 	struct block_device *bdev = lo->lo_device;
 	int err = 0;
@@ -1102,11 +1186,15 @@
 		goto out_unlock;
 	}
 
+	if (test_bit(QUEUE_FLAG_WC, &lo->lo_queue->queue_flags))
+		blk_queue_write_cache(lo->lo_queue, false, false);
+
 	/* freeze request queue during the transition */
 	blk_mq_freeze_queue(lo->lo_queue);
 
 	spin_lock_irq(&lo->lo_lock);
 	lo->lo_backing_file = NULL;
+	lo->lo_backing_virt_file = NULL;
 	spin_unlock_irq(&lo->lo_lock);
 
 	loop_release_xfer(lo);
@@ -1189,6 +1277,8 @@
 	 */
 	if (filp)
 		fput(filp);
+	if (virt_filp)
+		fput(virt_filp);
 	return err;
 }
 
@@ -1254,7 +1344,7 @@
 	if (lo->lo_offset != info->lo_offset ||
 	    lo->lo_sizelimit != info->lo_sizelimit) {
 		sync_blockdev(lo->lo_device);
-		kill_bdev(lo->lo_device);
+		invalidate_bdev(lo->lo_device);
 	}
 
 	/* I/O need to be drained during transfer transition */
@@ -1364,6 +1454,11 @@
 	info->lo_number = lo->lo_number;
 	info->lo_offset = lo->lo_offset;
 	info->lo_sizelimit = lo->lo_sizelimit;
+
+	/* loff_t vars have been assigned __u64 */
+	if (lo->lo_offset < 0 || lo->lo_sizelimit < 0)
+		return -EOVERFLOW;
+
 	info->lo_flags = lo->lo_flags;
 	memcpy(info->lo_file_name, lo->lo_file_name, LO_NAME_SIZE);
 	memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE);
@@ -1528,12 +1623,12 @@
 
 	if (lo->lo_queue->limits.logical_block_size != arg) {
 		sync_blockdev(lo->lo_device);
-		kill_bdev(lo->lo_device);
+		invalidate_bdev(lo->lo_device);
 	}
 
 	blk_mq_freeze_queue(lo->lo_queue);
 
-	/* kill_bdev should have truncated all the pages */
+	/* invalidate_bdev should have truncated all the pages */
 	if (lo->lo_queue->limits.logical_block_size != arg &&
 			lo->lo_device->bd_inode->i_mapping->nrpages) {
 		err = -EAGAIN;
@@ -1941,7 +2036,8 @@
 	/* complete non-aio request */
 	if (!cmd->use_aio || ret) {
 		cmd->ret = ret ? -EIO : 0;
-		blk_mq_complete_request(rq);
+		if (likely(!blk_should_fake_timeout(rq->q)))
+			blk_mq_complete_request(rq);
 	}
 }
 
@@ -1999,7 +2095,7 @@
 	lo->tag_set.queue_depth = 128;
 	lo->tag_set.numa_node = NUMA_NO_NODE;
 	lo->tag_set.cmd_size = sizeof(struct loop_cmd);
-	lo->tag_set.flags = BLK_MQ_F_SHOULD_MERGE;
+	lo->tag_set.flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_NO_SCHED;
 	lo->tag_set.driver_data = lo;
 
 	err = blk_mq_alloc_tag_set(&lo->tag_set);
@@ -2295,6 +2391,8 @@
 
 	range = max_loop ? max_loop << part_shift : 1UL << MINORBITS;
 
+	mutex_lock(&loop_ctl_mutex);
+
 	idr_for_each(&loop_index_idr, &loop_exit_cb, NULL);
 	idr_destroy(&loop_index_idr);
 
@@ -2302,6 +2400,8 @@
 	unregister_blkdev(LOOP_MAJOR, "loop");
 
 	misc_deregister(&loop_misc);
+
+	mutex_unlock(&loop_ctl_mutex);
 }
 
 module_init(loop_init);
--- linux-ein-5.4.0.orig/drivers/block/loop.h
+++ linux-ein-5.4.0/drivers/block/loop.h
@@ -46,7 +46,7 @@
 	int		(*ioctl)(struct loop_device *, int cmd, 
 				 unsigned long arg); 
 
-	struct file *	lo_backing_file;
+	struct file	*lo_backing_file, *lo_backing_virt_file;
 	struct block_device *lo_device;
 	void		*key_data; 
 
--- linux-ein-5.4.0.orig/drivers/block/mtip32xx/mtip32xx.c
+++ linux-ein-5.4.0/drivers/block/mtip32xx/mtip32xx.c
@@ -492,7 +492,8 @@
 	struct request *req = blk_mq_rq_from_pdu(cmd);
 
 	cmd->status = status;
-	blk_mq_complete_request(req);
+	if (likely(!blk_should_fake_timeout(req->q)))
+		blk_mq_complete_request(req);
 }
 
 /*
--- linux-ein-5.4.0.orig/drivers/block/nbd.c
+++ linux-ein-5.4.0/drivers/block/nbd.c
@@ -78,8 +78,7 @@
 #define NBD_RT_HAS_PID_FILE		3
 #define NBD_RT_HAS_CONFIG_REF		4
 #define NBD_RT_BOUND			5
-#define NBD_RT_DESTROY_ON_DISCONNECT	6
-#define NBD_RT_DISCONNECT_ON_CLOSE	7
+#define NBD_RT_DISCONNECT_ON_CLOSE	6
 
 #define NBD_DESTROY_ON_DISCONNECT	0
 #define NBD_DISCONNECT_REQUESTED	1
@@ -123,6 +122,12 @@
 };
 
 #define NBD_CMD_REQUEUED	1
+/*
+ * This flag will be set if nbd_queue_rq() succeed, and will be checked and
+ * cleared in completion. Both setting and clearing of the flag are protected
+ * by cmd->lock.
+ */
+#define NBD_CMD_INFLIGHT	2
 
 struct nbd_cmd {
 	struct nbd_device *nbd;
@@ -296,7 +301,7 @@
 	}
 }
 
-static void nbd_size_update(struct nbd_device *nbd)
+static void nbd_size_update(struct nbd_device *nbd, bool start)
 {
 	struct nbd_config *config = nbd->config;
 	struct block_device *bdev = bdget_disk(nbd->disk, 0);
@@ -312,7 +317,8 @@
 	if (bdev) {
 		if (bdev->bd_disk) {
 			bd_set_size(bdev, config->bytesize);
-			set_blocksize(bdev, config->blksize);
+			if (start)
+				set_blocksize(bdev, config->blksize);
 		} else
 			bdev->bd_invalidated = 1;
 		bdput(bdev);
@@ -327,7 +333,7 @@
 	config->blksize = blocksize;
 	config->bytesize = blocksize * nr_blocks;
 	if (nbd->task_recv != NULL)
-		nbd_size_update(nbd);
+		nbd_size_update(nbd, false);
 }
 
 static void nbd_complete_rq(struct request *req)
@@ -388,8 +394,14 @@
 	if (!mutex_trylock(&cmd->lock))
 		return BLK_EH_RESET_TIMER;
 
+	if (!test_bit(NBD_CMD_INFLIGHT, &cmd->flags)) {
+		mutex_unlock(&cmd->lock);
+		return BLK_EH_DONE;
+	}
+
 	if (!refcount_inc_not_zero(&nbd->config_refs)) {
 		cmd->status = BLK_STS_TIMEOUT;
+		__clear_bit(NBD_CMD_INFLIGHT, &cmd->flags);
 		mutex_unlock(&cmd->lock);
 		goto done;
 	}
@@ -445,6 +457,7 @@
 	dev_err_ratelimited(nbd_to_dev(nbd), "Connection timed out\n");
 	set_bit(NBD_RT_TIMEDOUT, &config->runtime_flags);
 	cmd->status = BLK_STS_IOERR;
+	__clear_bit(NBD_CMD_INFLIGHT, &cmd->flags);
 	mutex_unlock(&cmd->lock);
 	sock_shutdown(nbd);
 	nbd_config_put(nbd);
@@ -704,6 +717,12 @@
 	cmd = blk_mq_rq_to_pdu(req);
 
 	mutex_lock(&cmd->lock);
+	if (!test_bit(NBD_CMD_INFLIGHT, &cmd->flags)) {
+		dev_err(disk_to_dev(nbd->disk), "Suspicious reply %d (status %u flags %lu)",
+			tag, cmd->status, cmd->flags);
+		ret = -ENOENT;
+		goto out;
+	}
 	if (cmd->cmd_cookie != nbd_handle_to_cookie(handle)) {
 		dev_err(disk_to_dev(nbd->disk), "Double reply on req %p, cmd_cookie %u, handle cookie %u\n",
 			req, cmd->cmd_cookie, nbd_handle_to_cookie(handle));
@@ -773,6 +792,7 @@
 	struct nbd_device *nbd = args->nbd;
 	struct nbd_config *config = nbd->config;
 	struct nbd_cmd *cmd;
+	struct request *rq;
 
 	while (1) {
 		cmd = nbd_read_stat(nbd, args->index);
@@ -785,11 +805,21 @@
 			break;
 		}
 
-		blk_mq_complete_request(blk_mq_rq_from_pdu(cmd));
+		rq = blk_mq_rq_from_pdu(cmd);
+		if (likely(!blk_should_fake_timeout(rq->q))) {
+			bool complete;
+
+			mutex_lock(&cmd->lock);
+			complete = __test_and_clear_bit(NBD_CMD_INFLIGHT,
+							&cmd->flags);
+			mutex_unlock(&cmd->lock);
+			if (complete)
+				blk_mq_complete_request(rq);
+		}
 	}
+	nbd_config_put(nbd);
 	atomic_dec(&config->recv_threads);
 	wake_up(&config->recv_wq);
-	nbd_config_put(nbd);
 	kfree(args);
 }
 
@@ -797,7 +827,15 @@
 {
 	struct nbd_cmd *cmd = blk_mq_rq_to_pdu(req);
 
+	/* don't abort one completed request */
+	if (blk_mq_request_completed(req))
+		return true;
+
 	mutex_lock(&cmd->lock);
+	if (!__test_and_clear_bit(NBD_CMD_INFLIGHT, &cmd->flags)) {
+		mutex_unlock(&cmd->lock);
+		return true;
+	}
 	cmd->status = BLK_STS_IOERR;
 	mutex_unlock(&cmd->lock);
 
@@ -861,11 +899,15 @@
 	struct nbd_config *config = nbd->config;
 	if (!config->dead_conn_timeout)
 		return 0;
-	if (test_bit(NBD_RT_DISCONNECTED, &config->runtime_flags))
+
+	if (!wait_event_timeout(config->conn_wait,
+				test_bit(NBD_RT_DISCONNECTED,
+					 &config->runtime_flags) ||
+				atomic_read(&config->live_connections) > 0,
+				config->dead_conn_timeout))
 		return 0;
-	return wait_event_timeout(config->conn_wait,
-				  atomic_read(&config->live_connections) > 0,
-				  config->dead_conn_timeout) > 0;
+
+	return !test_bit(NBD_RT_DISCONNECTED, &config->runtime_flags);
 }
 
 static int nbd_handle_cmd(struct nbd_cmd *cmd, int index)
@@ -934,7 +976,13 @@
 	 * returns EAGAIN can be retried on a different socket.
 	 */
 	ret = nbd_send_cmd(nbd, cmd, index);
-	if (ret == -EAGAIN) {
+	/*
+	 * Access to this flag is protected by cmd->lock, thus it's safe to set
+	 * the flag after nbd_send_cmd() succeed to send request to server.
+	 */
+	if (!ret)
+		__set_bit(NBD_CMD_INFLIGHT, &cmd->flags);
+	else if (ret == -EAGAIN) {
 		dev_err_ratelimited(disk_to_dev(nbd->disk),
 				    "Request send failed, requeueing\n");
 		nbd_mark_nsock_dead(nbd, nsock, 1);
@@ -1013,6 +1061,12 @@
 	if (!sock)
 		return err;
 
+	/*
+	 * We need to make sure we don't get any errant requests while we're
+	 * reallocating the ->socks array.
+	 */
+	blk_mq_freeze_queue(nbd->disk->queue);
+
 	if (!netlink && !nbd->task_setup &&
 	    !test_bit(NBD_RT_BOUND, &config->runtime_flags))
 		nbd->task_setup = current;
@@ -1022,20 +1076,22 @@
 	     test_bit(NBD_RT_BOUND, &config->runtime_flags))) {
 		dev_err(disk_to_dev(nbd->disk),
 			"Device being setup by another task");
-		sockfd_put(sock);
-		return -EBUSY;
+		err = -EBUSY;
+		goto put_socket;
+	}
+
+	nsock = kzalloc(sizeof(*nsock), GFP_KERNEL);
+	if (!nsock) {
+		err = -ENOMEM;
+		goto put_socket;
 	}
 
 	socks = krealloc(config->socks, (config->num_connections + 1) *
 			 sizeof(struct nbd_sock *), GFP_KERNEL);
 	if (!socks) {
-		sockfd_put(sock);
-		return -ENOMEM;
-	}
-	nsock = kzalloc(sizeof(struct nbd_sock), GFP_KERNEL);
-	if (!nsock) {
-		sockfd_put(sock);
-		return -ENOMEM;
+		kfree(nsock);
+		err = -ENOMEM;
+		goto put_socket;
 	}
 
 	config->socks = socks;
@@ -1049,8 +1105,14 @@
 	nsock->cookie = 0;
 	socks[config->num_connections++] = nsock;
 	atomic_inc(&config->live_connections);
+	blk_mq_unfreeze_queue(nbd->disk->queue);
 
 	return 0;
+
+put_socket:
+	blk_mq_unfreeze_queue(nbd->disk->queue);
+	sockfd_put(sock);
+	return err;
 }
 
 static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
@@ -1264,6 +1326,16 @@
 		args = kzalloc(sizeof(*args), GFP_KERNEL);
 		if (!args) {
 			sock_shutdown(nbd);
+			/*
+			 * If num_connections is m (2 < m),
+			 * and NO.1 ~ NO.n(1 < n < m) kzallocs are successful.
+			 * But NO.(n + 1) failed. We still have n recv threads.
+			 * So, add flush_workqueue here to prevent recv threads
+			 * dropping the last config_refs and trying to destroy
+			 * the workqueue from inside the workqueue.
+			 */
+			if (i)
+				flush_workqueue(nbd->recv_workq);
 			return -ENOMEM;
 		}
 		sk_set_memalloc(config->socks[i]->sock->sk);
@@ -1277,7 +1349,7 @@
 		args->index = i;
 		queue_work(nbd->recv_workq, &args->work);
 	}
-	nbd_size_update(nbd);
+	nbd_size_update(nbd, true);
 	return error;
 }
 
@@ -1297,8 +1369,10 @@
 					 atomic_read(&config->recv_threads) == 0);
 	if (ret) {
 		sock_shutdown(nbd);
-		flush_workqueue(nbd->recv_workq);
+		nbd_clear_que(nbd);
 	}
+
+	flush_workqueue(nbd->recv_workq);
 	mutex_lock(&nbd->config_lock);
 	nbd_bdev_reset(bdev);
 	/* user requested, ignore socket errors */
@@ -1312,7 +1386,7 @@
 static void nbd_clear_sock_ioctl(struct nbd_device *nbd,
 				 struct block_device *bdev)
 {
-	sock_shutdown(nbd);
+	nbd_clear_sock(nbd);
 	__invalidate_device(bdev, true);
 	nbd_bdev_reset(bdev);
 	if (test_and_clear_bit(NBD_RT_HAS_CONFIG_REF,
@@ -1333,6 +1407,8 @@
 	nbd->tag_set.timeout = timeout * HZ;
 	if (timeout)
 		blk_queue_rq_timeout(nbd->disk->queue, timeout * HZ);
+	else
+		blk_queue_rq_timeout(nbd->disk->queue, 30 * HZ);
 }
 
 /* Must be called with config_lock held */
@@ -1423,15 +1499,20 @@
 {
 	struct nbd_config *config;
 
+	if (!try_module_get(THIS_MODULE))
+		return ERR_PTR(-ENODEV);
+
 	config = kzalloc(sizeof(struct nbd_config), GFP_NOFS);
-	if (!config)
-		return NULL;
+	if (!config) {
+		module_put(THIS_MODULE);
+		return ERR_PTR(-ENOMEM);
+	}
+
 	atomic_set(&config->recv_threads, 0);
 	init_waitqueue_head(&config->recv_wq);
 	init_waitqueue_head(&config->conn_wait);
 	config->blksize = NBD_DEF_BLKSIZE;
 	atomic_set(&config->live_connections, 0);
-	try_module_get(THIS_MODULE);
 	return config;
 }
 
@@ -1458,12 +1539,13 @@
 			mutex_unlock(&nbd->config_lock);
 			goto out;
 		}
-		config = nbd->config = nbd_alloc_config();
-		if (!config) {
-			ret = -ENOMEM;
+		config = nbd_alloc_config();
+		if (IS_ERR(config)) {
+			ret = PTR_ERR(config);
 			mutex_unlock(&nbd->config_lock);
 			goto out;
 		}
+		nbd->config = config;
 		refcount_set(&nbd->config_refs, 1);
 		refcount_inc(&nbd->refs);
 		mutex_unlock(&nbd->config_lock);
@@ -1484,6 +1566,7 @@
 	if (test_bit(NBD_RT_DISCONNECT_ON_CLOSE, &nbd->config->runtime_flags) &&
 			bdev->bd_openers == 0)
 		nbd_disconnect_and_put(nbd);
+	bdput(bdev);
 
 	nbd_config_put(nbd);
 	nbd_put(nbd);
@@ -1566,7 +1649,7 @@
 		return -EIO;
 
 	dir = debugfs_create_dir(nbd_name(nbd), nbd_dbg_dir);
-	if (!dir) {
+	if (IS_ERR(dir)) {
 		dev_err(nbd_to_dev(nbd), "Failed to create debugfs dir for '%s'\n",
 			nbd_name(nbd));
 		return -EIO;
@@ -1592,7 +1675,7 @@
 	struct dentry *dbg_dir;
 
 	dbg_dir = debugfs_create_dir("nbd", NULL);
-	if (!dbg_dir)
+	if (IS_ERR(dbg_dir))
 		return -EIO;
 
 	nbd_dbg_dir = dbg_dir;
@@ -1665,7 +1748,8 @@
 		if (err == -ENOSPC)
 			err = -EEXIST;
 	} else {
-		err = idr_alloc(&nbd_index_idr, nbd, 0, 0, GFP_KERNEL);
+		err = idr_alloc(&nbd_index_idr, nbd, 0,
+				(MINORMASK >> part_shift) + 1, GFP_KERNEL);
 		if (err >= 0)
 			index = err;
 	}
@@ -1884,13 +1968,14 @@
 		nbd_put(nbd);
 		return -EINVAL;
 	}
-	config = nbd->config = nbd_alloc_config();
-	if (!nbd->config) {
+	config = nbd_alloc_config();
+	if (IS_ERR(config)) {
 		mutex_unlock(&nbd->config_lock);
 		nbd_put(nbd);
 		printk(KERN_ERR "nbd: couldn't allocate config\n");
-		return -ENOMEM;
+		return PTR_ERR(config);
 	}
+	nbd->config = config;
 	refcount_set(&nbd->config_refs, 1);
 	set_bit(NBD_RT_BOUND, &config->runtime_flags);
 
@@ -1912,12 +1997,21 @@
 	if (info->attrs[NBD_ATTR_CLIENT_FLAGS]) {
 		u64 flags = nla_get_u64(info->attrs[NBD_ATTR_CLIENT_FLAGS]);
 		if (flags & NBD_CFLAG_DESTROY_ON_DISCONNECT) {
-			set_bit(NBD_RT_DESTROY_ON_DISCONNECT,
-				&config->runtime_flags);
-			set_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
-			put_dev = true;
+			/*
+			 * We have 1 ref to keep the device around, and then 1
+			 * ref for our current operation here, which will be
+			 * inherited by the config.  If we already have
+			 * DESTROY_ON_DISCONNECT set then we know we don't have
+			 * that extra ref already held so we don't need the
+			 * put_dev.
+			 */
+			if (!test_and_set_bit(NBD_DESTROY_ON_DISCONNECT,
+					      &nbd->flags))
+				put_dev = true;
 		} else {
-			clear_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
+			if (test_and_clear_bit(NBD_DESTROY_ON_DISCONNECT,
+					       &nbd->flags))
+				refcount_inc(&nbd->refs);
 		}
 		if (flags & NBD_CFLAG_DISCONNECT_ON_CLOSE) {
 			set_bit(NBD_RT_DISCONNECT_ON_CLOSE,
@@ -1973,14 +2067,20 @@
 {
 	mutex_lock(&nbd->config_lock);
 	nbd_disconnect(nbd);
-	nbd_clear_sock(nbd);
-	mutex_unlock(&nbd->config_lock);
+	sock_shutdown(nbd);
+	wake_up(&nbd->config->conn_wait);
 	/*
 	 * Make sure recv thread has finished, so it does not drop the last
 	 * config ref and try to destroy the workqueue from inside the work
-	 * queue.
+	 * queue. And this also ensure that we can safely call nbd_clear_que()
+	 * to cancel the inflight I/Os.
 	 */
-	flush_workqueue(nbd->recv_workq);
+	if (nbd->recv_workq)
+		flush_workqueue(nbd->recv_workq);
+	nbd_clear_que(nbd);
+	nbd->task_setup = NULL;
+	mutex_unlock(&nbd->config_lock);
+
 	if (test_and_clear_bit(NBD_RT_HAS_CONFIG_REF,
 			       &nbd->config->runtime_flags))
 		nbd_config_put(nbd);
@@ -2088,15 +2188,13 @@
 	if (info->attrs[NBD_ATTR_CLIENT_FLAGS]) {
 		u64 flags = nla_get_u64(info->attrs[NBD_ATTR_CLIENT_FLAGS]);
 		if (flags & NBD_CFLAG_DESTROY_ON_DISCONNECT) {
-			if (!test_and_set_bit(NBD_RT_DESTROY_ON_DISCONNECT,
-					      &config->runtime_flags))
+			if (!test_and_set_bit(NBD_DESTROY_ON_DISCONNECT,
+					      &nbd->flags))
 				put_dev = true;
-			set_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
 		} else {
-			if (test_and_clear_bit(NBD_RT_DESTROY_ON_DISCONNECT,
-					       &config->runtime_flags))
+			if (test_and_clear_bit(NBD_DESTROY_ON_DISCONNECT,
+					       &nbd->flags))
 				refcount_inc(&nbd->refs);
-			clear_bit(NBD_DESTROY_ON_DISCONNECT, &nbd->flags);
 		}
 
 		if (flags & NBD_CFLAG_DISCONNECT_ON_CLOSE) {
@@ -2255,6 +2353,12 @@
 	}
 
 	dev_list = nla_nest_start_noflag(reply, NBD_ATTR_DEVICE_LIST);
+	if (!dev_list) {
+		nlmsg_free(reply);
+		ret = -EMSGSIZE;
+		goto out;
+	}
+
 	if (index == -1) {
 		ret = idr_for_each(&nbd_index_idr, &status_cb, reply);
 		if (ret) {
@@ -2398,6 +2502,12 @@
 	struct nbd_device *nbd;
 	LIST_HEAD(del_list);
 
+	/*
+	 * Unregister netlink interface prior to waiting
+	 * for the completion of netlink commands.
+	 */
+	genl_unregister_family(&nbd_genl_family);
+
 	nbd_dbg_close();
 
 	mutex_lock(&nbd_index_mutex);
@@ -2407,13 +2517,15 @@
 	while (!list_empty(&del_list)) {
 		nbd = list_first_entry(&del_list, struct nbd_device, list);
 		list_del_init(&nbd->list);
+		if (refcount_read(&nbd->config_refs))
+			printk(KERN_ERR "nbd: possibly leaking nbd_config (ref %d)\n",
+					refcount_read(&nbd->config_refs));
 		if (refcount_read(&nbd->refs) != 1)
 			printk(KERN_ERR "nbd: possibly leaking a device\n");
 		nbd_put(nbd);
 	}
 
 	idr_destroy(&nbd_index_idr);
-	genl_unregister_family(&nbd_genl_family);
 	unregister_blkdev(NBD_MAJOR, "nbd");
 }
 
--- linux-ein-5.4.0.orig/drivers/block/null_blk_main.c
+++ linux-ein-5.4.0/drivers/block/null_blk_main.c
@@ -579,6 +579,7 @@
 	if (tag != -1U) {
 		cmd = &nq->cmds[tag];
 		cmd->tag = tag;
+		cmd->error = BLK_STS_OK;
 		cmd->nq = nq;
 		if (nq->dev->irqmode == NULL_IRQ_TIMER) {
 			hrtimer_init(&cmd->timer, CLOCK_MONOTONIC,
@@ -1071,7 +1072,7 @@
 		len = bvec.bv_len;
 		err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
 				     op_is_write(req_op(rq)), sector,
-				     req_op(rq) & REQ_FUA);
+				     rq->cmd_flags & REQ_FUA);
 		if (err) {
 			spin_unlock_irq(&nullb->lock);
 			return err;
@@ -1189,7 +1190,8 @@
 	case NULL_IRQ_SOFTIRQ:
 		switch (cmd->nq->dev->queue_mode) {
 		case NULL_Q_MQ:
-			blk_mq_complete_request(cmd->rq);
+			if (likely(!blk_should_fake_timeout(cmd->rq->q)))
+				blk_mq_complete_request(cmd->rq);
 			break;
 		case NULL_Q_BIO:
 			/*
@@ -1335,6 +1337,7 @@
 		cmd->timer.function = null_cmd_timer_expired;
 	}
 	cmd->rq = bd->rq;
+	cmd->error = BLK_STS_OK;
 	cmd->nq = nq;
 
 	blk_mq_start_request(bd->rq);
@@ -1382,7 +1385,12 @@
 
 static void null_del_dev(struct nullb *nullb)
 {
-	struct nullb_device *dev = nullb->dev;
+	struct nullb_device *dev;
+
+	if (!nullb)
+		return;
+
+	dev = nullb->dev;
 
 	ida_simple_remove(&nullb_indexes, nullb->index);
 
@@ -1704,8 +1712,13 @@
 	blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
 
 	mutex_lock(&lock);
-	nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
-	dev->index = nullb->index;
+	rv = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
+	if (rv < 0) {
+		mutex_unlock(&lock);
+		goto out_cleanup_zone;
+	}
+	nullb->index = rv;
+	dev->index = rv;
 	mutex_unlock(&lock);
 
 	blk_queue_logical_block_size(nullb->q, dev->blocksize);
@@ -1717,13 +1730,16 @@
 
 	rv = null_gendisk_register(nullb);
 	if (rv)
-		goto out_cleanup_zone;
+		goto out_ida_free;
 
 	mutex_lock(&lock);
 	list_add_tail(&nullb->list, &nullb_list);
 	mutex_unlock(&lock);
 
 	return 0;
+
+out_ida_free:
+	ida_free(&nullb_indexes, nullb->index);
 out_cleanup_zone:
 	if (dev->zoned)
 		null_zone_exit(dev);
@@ -1736,6 +1752,7 @@
 	cleanup_queues(nullb);
 out_free_nullb:
 	kfree(nullb);
+	dev->nullb = NULL;
 out:
 	return rv;
 }
--- linux-ein-5.4.0.orig/drivers/block/null_blk_zoned.c
+++ linux-ein-5.4.0/drivers/block/null_blk_zoned.c
@@ -2,8 +2,7 @@
 #include <linux/vmalloc.h>
 #include "null_blk.h"
 
-/* zone_size in MBs to sectors. */
-#define ZONE_SIZE_SHIFT		11
+#define MB_TO_SECTS(mb) (((sector_t)mb * SZ_1M) >> SECTOR_SHIFT)
 
 static inline unsigned int null_zone_no(struct nullb_device *dev, sector_t sect)
 {
@@ -12,7 +11,7 @@
 
 int null_zone_init(struct nullb_device *dev)
 {
-	sector_t dev_size = (sector_t)dev->size * 1024 * 1024;
+	sector_t dev_capacity_sects;
 	sector_t sector = 0;
 	unsigned int i;
 
@@ -20,10 +19,17 @@
 		pr_err("zone_size must be power-of-two\n");
 		return -EINVAL;
 	}
+	if (dev->zone_size > dev->size) {
+		pr_err("Zone size larger than device capacity\n");
+		return -EINVAL;
+	}
+
+	dev_capacity_sects = MB_TO_SECTS(dev->size);
+	dev->zone_size_sects = MB_TO_SECTS(dev->zone_size);
+	dev->nr_zones = dev_capacity_sects >> ilog2(dev->zone_size_sects);
+	if (dev_capacity_sects & (dev->zone_size_sects - 1))
+		dev->nr_zones++;
 
-	dev->zone_size_sects = dev->zone_size << ZONE_SIZE_SHIFT;
-	dev->nr_zones = dev_size >>
-				(SECTOR_SHIFT + ilog2(dev->zone_size_sects));
 	dev->zones = kvmalloc_array(dev->nr_zones, sizeof(struct blk_zone),
 			GFP_KERNEL | __GFP_ZERO);
 	if (!dev->zones)
@@ -51,7 +57,10 @@
 		struct blk_zone *zone = &dev->zones[i];
 
 		zone->start = zone->wp = sector;
-		zone->len = dev->zone_size_sects;
+		if (zone->start + dev->zone_size_sects > dev_capacity_sects)
+			zone->len = dev_capacity_sects - zone->start;
+		else
+			zone->len = dev->zone_size_sects;
 		zone->type = BLK_ZONE_TYPE_SEQWRITE_REQ;
 		zone->cond = BLK_ZONE_COND_EMPTY;
 
@@ -64,6 +73,7 @@
 void null_zone_exit(struct nullb_device *dev)
 {
 	kvfree(dev->zones);
+	dev->zones = NULL;
 }
 
 int null_zone_report(struct gendisk *disk, sector_t sector,
--- linux-ein-5.4.0.orig/drivers/block/ps3disk.c
+++ linux-ein-5.4.0/drivers/block/ps3disk.c
@@ -454,7 +454,6 @@
 	queue->queuedata = dev;
 
 	blk_queue_max_hw_sectors(queue, dev->bounce_size >> 9);
-	blk_queue_segment_boundary(queue, -1UL);
 	blk_queue_dma_alignment(queue, dev->blk_size-1);
 	blk_queue_logical_block_size(queue, dev->blk_size);
 
--- linux-ein-5.4.0.orig/drivers/block/rbd.c
+++ linux-ein-5.4.0/drivers/block/rbd.c
@@ -626,9 +626,8 @@
 static void rbd_dev_remove_parent(struct rbd_device *rbd_dev);
 
 static int rbd_dev_refresh(struct rbd_device *rbd_dev);
-static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev);
-static int rbd_dev_header_info(struct rbd_device *rbd_dev);
-static int rbd_dev_v2_parent_info(struct rbd_device *rbd_dev);
+static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev,
+				     struct rbd_image_header *header);
 static const char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev,
 					u64 snap_id);
 static int _rbd_dev_v2_snap_size(struct rbd_device *rbd_dev, u64 snap_id,
@@ -1098,15 +1097,24 @@
 	RCU_INIT_POINTER(rbd_dev->layout.pool_ns, NULL);
 }
 
+static void rbd_image_header_cleanup(struct rbd_image_header *header)
+{
+	kfree(header->object_prefix);
+	ceph_put_snap_context(header->snapc);
+	kfree(header->snap_sizes);
+	kfree(header->snap_names);
+
+	memset(header, 0, sizeof(*header));
+}
+
 /*
  * Fill an rbd image header with information from the given format 1
  * on-disk header.
  */
-static int rbd_header_from_disk(struct rbd_device *rbd_dev,
-				 struct rbd_image_header_ondisk *ondisk)
+static int rbd_header_from_disk(struct rbd_image_header *header,
+				struct rbd_image_header_ondisk *ondisk,
+				bool first_time)
 {
-	struct rbd_image_header *header = &rbd_dev->header;
-	bool first_time = header->object_prefix == NULL;
 	struct ceph_snap_context *snapc;
 	char *object_prefix = NULL;
 	char *snap_names = NULL;
@@ -1173,11 +1181,6 @@
 	if (first_time) {
 		header->object_prefix = object_prefix;
 		header->obj_order = ondisk->options.order;
-		rbd_init_layout(rbd_dev);
-	} else {
-		ceph_put_snap_context(header->snapc);
-		kfree(header->snap_names);
-		kfree(header->snap_sizes);
 	}
 
 	/* The remaining fields always get updated (when we refresh) */
@@ -1493,14 +1496,30 @@
 /*
  * Must be called after rbd_obj_calc_img_extents().
  */
-static bool rbd_obj_copyup_enabled(struct rbd_obj_request *obj_req)
+static void rbd_obj_set_copyup_enabled(struct rbd_obj_request *obj_req)
 {
-	if (!obj_req->num_img_extents ||
-	    (rbd_obj_is_entire(obj_req) &&
-	     !obj_req->img_request->snapc->num_snaps))
-		return false;
+	rbd_assert(obj_req->img_request->snapc);
 
-	return true;
+	if (obj_req->img_request->op_type == OBJ_OP_DISCARD) {
+		dout("%s %p objno %llu discard\n", __func__, obj_req,
+		     obj_req->ex.oe_objno);
+		return;
+	}
+
+	if (!obj_req->num_img_extents) {
+		dout("%s %p objno %llu not overlapping\n", __func__, obj_req,
+		     obj_req->ex.oe_objno);
+		return;
+	}
+
+	if (rbd_obj_is_entire(obj_req) &&
+	    !obj_req->img_request->snapc->num_snaps) {
+		dout("%s %p objno %llu entire\n", __func__, obj_req,
+		     obj_req->ex.oe_objno);
+		return;
+	}
+
+	obj_req->flags |= RBD_OBJ_FLAG_COPYUP_ENABLED;
 }
 
 static u64 rbd_obj_img_extents_bytes(struct rbd_obj_request *obj_req)
@@ -1599,6 +1618,7 @@
 static struct ceph_osd_request *
 rbd_obj_add_osd_request(struct rbd_obj_request *obj_req, int num_ops)
 {
+	rbd_assert(obj_req->img_request->snapc);
 	return __rbd_obj_add_osd_request(obj_req, obj_req->img_request->snapc,
 					 num_ops);
 }
@@ -1727,11 +1747,14 @@
  * Caller is responsible for filling in the list of object requests
  * that comprises the image request, and the Linux request pointer
  * (if there is one).
+ *
+ * Only snap_id is captured here, for reads.  For writes, snapshot
+ * context is captured in rbd_img_object_requests() after exclusive
+ * lock is ensured to be held.
  */
 static struct rbd_img_request *rbd_img_request_create(
 					struct rbd_device *rbd_dev,
-					enum obj_operation_type op_type,
-					struct ceph_snap_context *snapc)
+					enum obj_operation_type op_type)
 {
 	struct rbd_img_request *img_request;
 
@@ -1743,8 +1766,6 @@
 	img_request->op_type = op_type;
 	if (!rbd_img_is_write(img_request))
 		img_request->snap_id = rbd_dev->spec->snap_id;
-	else
-		img_request->snapc = snapc;
 
 	if (rbd_dev_parent_get(rbd_dev))
 		img_request_layered_set(img_request);
@@ -2087,7 +2108,7 @@
 	struct rbd_device *rbd_dev = obj_req->img_request->rbd_dev;
 	struct ceph_osd_data *osd_data;
 	u64 objno;
-	u8 state, new_state, uninitialized_var(current_state);
+	u8 state, new_state, current_state;
 	bool has_current_state;
 	void *p;
 
@@ -2389,9 +2410,6 @@
 	if (ret)
 		return ret;
 
-	if (rbd_obj_copyup_enabled(obj_req))
-		obj_req->flags |= RBD_OBJ_FLAG_COPYUP_ENABLED;
-
 	obj_req->write_state = RBD_OBJ_WRITE_START;
 	return 0;
 }
@@ -2497,8 +2515,6 @@
 	if (ret)
 		return ret;
 
-	if (rbd_obj_copyup_enabled(obj_req))
-		obj_req->flags |= RBD_OBJ_FLAG_COPYUP_ENABLED;
 	if (!obj_req->num_img_extents) {
 		obj_req->flags |= RBD_OBJ_FLAG_NOOP_FOR_NONEXISTENT;
 		if (rbd_obj_is_entire(obj_req))
@@ -2739,7 +2755,7 @@
 			       u64 off, u64 len)
 {
 	struct ceph_file_extent ex = { off, len };
-	union rbd_img_fill_iter dummy;
+	union rbd_img_fill_iter dummy = {};
 	struct rbd_img_fill_ctx fctx = {
 		.pos_type = OBJ_REQUEST_NODATA,
 		.pos = &dummy,
@@ -2935,7 +2951,7 @@
 	int ret;
 
 	child_img_req = rbd_img_request_create(img_req->rbd_dev->parent,
-					       OBJ_OP_READ, NULL);
+					       OBJ_OP_READ);
 	if (!child_img_req)
 		return -ENOMEM;
 
@@ -3439,6 +3455,7 @@
 	case RBD_OBJ_WRITE_START:
 		rbd_assert(!*result);
 
+		rbd_obj_set_copyup_enabled(obj_req);
 		if (rbd_obj_write_is_noop(obj_req))
 			return true;
 
@@ -3625,9 +3642,19 @@
 
 static void rbd_img_object_requests(struct rbd_img_request *img_req)
 {
+	struct rbd_device *rbd_dev = img_req->rbd_dev;
 	struct rbd_obj_request *obj_req;
 
 	rbd_assert(!img_req->pending.result && !img_req->pending.num_pending);
+	rbd_assert(!need_exclusive_lock(img_req) ||
+		   __rbd_is_lock_owner(rbd_dev));
+
+	if (rbd_img_is_write(img_req)) {
+		rbd_assert(!img_req->snapc);
+		down_read(&rbd_dev->header_rwsem);
+		img_req->snapc = ceph_get_snap_context(rbd_dev->header.snapc);
+		up_read(&rbd_dev->header_rwsem);
+	}
 
 	for_each_obj_request(img_req, obj_req) {
 		int result = 0;
@@ -3645,7 +3672,6 @@
 
 static bool rbd_img_advance(struct rbd_img_request *img_req, int *result)
 {
-	struct rbd_device *rbd_dev = img_req->rbd_dev;
 	int ret;
 
 again:
@@ -3666,9 +3692,6 @@
 		if (*result)
 			return true;
 
-		rbd_assert(!need_exclusive_lock(img_req) ||
-			   __rbd_is_lock_owner(rbd_dev));
-
 		rbd_img_object_requests(img_req);
 		if (!img_req->pending.num_pending) {
 			*result = img_req->pending.result;
@@ -4130,6 +4153,10 @@
 {
 	int ret;
 
+	ret = rbd_dev_refresh(rbd_dev);
+	if (ret)
+		return ret;
+
 	if (rbd_dev->header.features & RBD_FEATURE_OBJECT_MAP) {
 		ret = rbd_object_map_open(rbd_dev);
 		if (ret)
@@ -4239,8 +4266,6 @@
 
 static bool rbd_quiesce_lock(struct rbd_device *rbd_dev)
 {
-	bool need_wait;
-
 	dout("%s rbd_dev %p\n", __func__, rbd_dev);
 	lockdep_assert_held_write(&rbd_dev->lock_rwsem);
 
@@ -4252,11 +4277,11 @@
 	 */
 	rbd_dev->lock_state = RBD_LOCK_STATE_RELEASING;
 	rbd_assert(!completion_done(&rbd_dev->releasing_wait));
-	need_wait = !list_empty(&rbd_dev->running_list);
-	downgrade_write(&rbd_dev->lock_rwsem);
-	if (need_wait)
-		wait_for_completion(&rbd_dev->releasing_wait);
-	up_read(&rbd_dev->lock_rwsem);
+	if (list_empty(&rbd_dev->running_list))
+		return true;
+
+	up_write(&rbd_dev->lock_rwsem);
+	wait_for_completion(&rbd_dev->releasing_wait);
 
 	down_write(&rbd_dev->lock_rwsem);
 	if (rbd_dev->lock_state != RBD_LOCK_STATE_RELEASING)
@@ -4342,15 +4367,11 @@
 	if (!rbd_cid_equal(&cid, &rbd_empty_cid)) {
 		down_write(&rbd_dev->lock_rwsem);
 		if (rbd_cid_equal(&cid, &rbd_dev->owner_cid)) {
-			/*
-			 * we already know that the remote client is
-			 * the owner
-			 */
-			up_write(&rbd_dev->lock_rwsem);
-			return;
+			dout("%s rbd_dev %p cid %llu-%llu == owner_cid\n",
+			     __func__, rbd_dev, cid.gid, cid.handle);
+		} else {
+			rbd_set_owner_cid(rbd_dev, &cid);
 		}
-
-		rbd_set_owner_cid(rbd_dev, &cid);
 		downgrade_write(&rbd_dev->lock_rwsem);
 	} else {
 		down_read(&rbd_dev->lock_rwsem);
@@ -4375,14 +4396,12 @@
 	if (!rbd_cid_equal(&cid, &rbd_empty_cid)) {
 		down_write(&rbd_dev->lock_rwsem);
 		if (!rbd_cid_equal(&cid, &rbd_dev->owner_cid)) {
-			dout("%s rbd_dev %p unexpected owner, cid %llu-%llu != owner_cid %llu-%llu\n",
+			dout("%s rbd_dev %p cid %llu-%llu != owner_cid %llu-%llu\n",
 			     __func__, rbd_dev, cid.gid, cid.handle,
 			     rbd_dev->owner_cid.gid, rbd_dev->owner_cid.handle);
-			up_write(&rbd_dev->lock_rwsem);
-			return;
+		} else {
+			rbd_set_owner_cid(rbd_dev, &rbd_empty_cid);
 		}
-
-		rbd_set_owner_cid(rbd_dev, &rbd_empty_cid);
 		downgrade_write(&rbd_dev->lock_rwsem);
 	} else {
 		down_read(&rbd_dev->lock_rwsem);
@@ -4636,6 +4655,10 @@
 	cancel_work_sync(&rbd_dev->unlock_work);
 }
 
+/*
+ * header_rwsem must not be held to avoid a deadlock with
+ * rbd_dev_refresh() when flushing notifies.
+ */
 static void rbd_unregister_watch(struct rbd_device *rbd_dev)
 {
 	cancel_tasks_sync(rbd_dev);
@@ -4792,7 +4815,6 @@
 	struct request *rq = blk_mq_rq_from_pdu(work);
 	struct rbd_device *rbd_dev = rq->q->queuedata;
 	struct rbd_img_request *img_request;
-	struct ceph_snap_context *snapc = NULL;
 	u64 offset = (u64)blk_rq_pos(rq) << SECTOR_SHIFT;
 	u64 length = blk_rq_bytes(rq);
 	enum obj_operation_type op_type;
@@ -4857,10 +4879,6 @@
 
 	down_read(&rbd_dev->header_rwsem);
 	mapping_size = rbd_dev->mapping.size;
-	if (op_type != OBJ_OP_READ) {
-		snapc = rbd_dev->header.snapc;
-		ceph_get_snap_context(snapc);
-	}
 	up_read(&rbd_dev->header_rwsem);
 
 	if (offset + length > mapping_size) {
@@ -4870,13 +4888,12 @@
 		goto err_rq;
 	}
 
-	img_request = rbd_img_request_create(rbd_dev, op_type, snapc);
+	img_request = rbd_img_request_create(rbd_dev, op_type);
 	if (!img_request) {
 		result = -ENOMEM;
 		goto err_rq;
 	}
 	img_request->rq = rq;
-	snapc = NULL; /* img_request consumes a ref */
 
 	dout("%s rbd_dev %p img_req %p %s %llu~%llu\n", __func__, rbd_dev,
 	     img_request, obj_op_name(op_type), offset, length);
@@ -4898,7 +4915,6 @@
 	if (result)
 		rbd_warn(rbd_dev, "%s %llx at %llx result %d",
 			 obj_op_name(op_type), length, offset, result);
-	ceph_put_snap_context(snapc);
 err:
 	blk_mq_end_request(rq, errno_to_blk_status(result));
 }
@@ -4970,7 +4986,9 @@
  * return, the rbd_dev->header field will contain up-to-date
  * information about the image.
  */
-static int rbd_dev_v1_header_info(struct rbd_device *rbd_dev)
+static int rbd_dev_v1_header_info(struct rbd_device *rbd_dev,
+				  struct rbd_image_header *header,
+				  bool first_time)
 {
 	struct rbd_image_header_ondisk *ondisk = NULL;
 	u32 snap_count = 0;
@@ -5018,7 +5036,7 @@
 		snap_count = le32_to_cpu(ondisk->snap_count);
 	} while (snap_count != want_count);
 
-	ret = rbd_header_from_disk(rbd_dev, ondisk);
+	ret = rbd_header_from_disk(header, ondisk, first_time);
 out:
 	kfree(ondisk);
 
@@ -5062,43 +5080,6 @@
 	}
 }
 
-static int rbd_dev_refresh(struct rbd_device *rbd_dev)
-{
-	u64 mapping_size;
-	int ret;
-
-	down_write(&rbd_dev->header_rwsem);
-	mapping_size = rbd_dev->mapping.size;
-
-	ret = rbd_dev_header_info(rbd_dev);
-	if (ret)
-		goto out;
-
-	/*
-	 * If there is a parent, see if it has disappeared due to the
-	 * mapped image getting flattened.
-	 */
-	if (rbd_dev->parent) {
-		ret = rbd_dev_v2_parent_info(rbd_dev);
-		if (ret)
-			goto out;
-	}
-
-	if (rbd_dev->spec->snap_id == CEPH_NOSNAP) {
-		rbd_dev->mapping.size = rbd_dev->header.image_size;
-	} else {
-		/* validate mapped snapshot's EXISTS flag */
-		rbd_exists_validate(rbd_dev);
-	}
-
-out:
-	up_write(&rbd_dev->header_rwsem);
-	if (!ret && mapping_size != rbd_dev->mapping.size)
-		rbd_dev_update_size(rbd_dev);
-
-	return ret;
-}
-
 static int rbd_init_request(struct blk_mq_tag_set *set, struct request *rq,
 		unsigned int hctx_idx, unsigned int numa_node)
 {
@@ -5276,6 +5257,9 @@
 {
 	struct rbd_device *rbd_dev = dev_to_rbd_dev(dev);
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	return sprintf(buf, "%s\n", rbd_dev->config_info);
 }
 
@@ -5387,6 +5371,9 @@
 	struct rbd_device *rbd_dev = dev_to_rbd_dev(dev);
 	int ret;
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	ret = rbd_dev_refresh(rbd_dev);
 	if (ret)
 		return ret;
@@ -5527,8 +5514,7 @@
 		module_put(THIS_MODULE);
 }
 
-static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc,
-					   struct rbd_spec *spec)
+static struct rbd_device *__rbd_dev_create(struct rbd_spec *spec)
 {
 	struct rbd_device *rbd_dev;
 
@@ -5573,9 +5559,6 @@
 	rbd_dev->dev.parent = &rbd_root_dev;
 	device_initialize(&rbd_dev->dev);
 
-	rbd_dev->rbd_client = rbdc;
-	rbd_dev->spec = spec;
-
 	return rbd_dev;
 }
 
@@ -5588,12 +5571,10 @@
 {
 	struct rbd_device *rbd_dev;
 
-	rbd_dev = __rbd_dev_create(rbdc, spec);
+	rbd_dev = __rbd_dev_create(spec);
 	if (!rbd_dev)
 		return NULL;
 
-	rbd_dev->opts = opts;
-
 	/* get an id and fill in device name */
 	rbd_dev->dev_id = ida_simple_get(&rbd_dev_id_ida, 0,
 					 minor_to_rbd_dev_id(1 << MINORBITS),
@@ -5610,6 +5591,10 @@
 	/* we have a ref from do_rbd_add() */
 	__module_get(THIS_MODULE);
 
+	rbd_dev->rbd_client = rbdc;
+	rbd_dev->spec = spec;
+	rbd_dev->opts = opts;
+
 	dout("%s rbd_dev %p dev_id %d\n", __func__, rbd_dev, rbd_dev->dev_id);
 	return rbd_dev;
 
@@ -5664,17 +5649,12 @@
 	return 0;
 }
 
-static int rbd_dev_v2_image_size(struct rbd_device *rbd_dev)
-{
-	return _rbd_dev_v2_snap_size(rbd_dev, CEPH_NOSNAP,
-					&rbd_dev->header.obj_order,
-					&rbd_dev->header.image_size);
-}
-
-static int rbd_dev_v2_object_prefix(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_object_prefix(struct rbd_device *rbd_dev,
+				    char **pobject_prefix)
 {
 	size_t size;
 	void *reply_buf;
+	char *object_prefix;
 	int ret;
 	void *p;
 
@@ -5692,16 +5672,16 @@
 		goto out;
 
 	p = reply_buf;
-	rbd_dev->header.object_prefix = ceph_extract_encoded_string(&p,
-						p + ret, NULL, GFP_NOIO);
+	object_prefix = ceph_extract_encoded_string(&p, p + ret, NULL,
+						    GFP_NOIO);
+	if (IS_ERR(object_prefix)) {
+		ret = PTR_ERR(object_prefix);
+		goto out;
+	}
 	ret = 0;
 
-	if (IS_ERR(rbd_dev->header.object_prefix)) {
-		ret = PTR_ERR(rbd_dev->header.object_prefix);
-		rbd_dev->header.object_prefix = NULL;
-	} else {
-		dout("  object_prefix = %s\n", rbd_dev->header.object_prefix);
-	}
+	*pobject_prefix = object_prefix;
+	dout("  object_prefix = %s\n", object_prefix);
 out:
 	kfree(reply_buf);
 
@@ -5746,12 +5726,6 @@
 	return 0;
 }
 
-static int rbd_dev_v2_features(struct rbd_device *rbd_dev)
-{
-	return _rbd_dev_v2_snap_features(rbd_dev, CEPH_NOSNAP,
-						&rbd_dev->header.features);
-}
-
 /*
  * These are generic image flags, but since they are used only for
  * object map, store them in rbd_dev->object_map_flags.
@@ -5788,6 +5762,14 @@
 	u64		overlap;
 };
 
+static void rbd_parent_info_cleanup(struct parent_image_info *pii)
+{
+	kfree(pii->pool_ns);
+	kfree(pii->image_id);
+
+	memset(pii, 0, sizeof(*pii));
+}
+
 /*
  * The caller is responsible for @pii.
  */
@@ -5857,6 +5839,9 @@
 	if (pii->has_overlap)
 		ceph_decode_64_safe(&p, end, pii->overlap, e_inval);
 
+	dout("%s pool_id %llu pool_ns %s image_id %s snap_id %llu has_overlap %d overlap %llu\n",
+	     __func__, pii->pool_id, pii->pool_ns, pii->image_id, pii->snap_id,
+	     pii->has_overlap, pii->overlap);
 	return 0;
 
 e_inval:
@@ -5895,14 +5880,17 @@
 	pii->has_overlap = true;
 	ceph_decode_64_safe(&p, end, pii->overlap, e_inval);
 
+	dout("%s pool_id %llu pool_ns %s image_id %s snap_id %llu has_overlap %d overlap %llu\n",
+	     __func__, pii->pool_id, pii->pool_ns, pii->image_id, pii->snap_id,
+	     pii->has_overlap, pii->overlap);
 	return 0;
 
 e_inval:
 	return -EINVAL;
 }
 
-static int get_parent_info(struct rbd_device *rbd_dev,
-			   struct parent_image_info *pii)
+static int rbd_dev_v2_parent_info(struct rbd_device *rbd_dev,
+				  struct parent_image_info *pii)
 {
 	struct page *req_page, *reply_page;
 	void *p;
@@ -5930,7 +5918,7 @@
 	return ret;
 }
 
-static int rbd_dev_v2_parent_info(struct rbd_device *rbd_dev)
+static int rbd_dev_setup_parent(struct rbd_device *rbd_dev)
 {
 	struct rbd_spec *parent_spec;
 	struct parent_image_info pii = { 0 };
@@ -5940,37 +5928,12 @@
 	if (!parent_spec)
 		return -ENOMEM;
 
-	ret = get_parent_info(rbd_dev, &pii);
+	ret = rbd_dev_v2_parent_info(rbd_dev, &pii);
 	if (ret)
 		goto out_err;
 
-	dout("%s pool_id %llu pool_ns %s image_id %s snap_id %llu has_overlap %d overlap %llu\n",
-	     __func__, pii.pool_id, pii.pool_ns, pii.image_id, pii.snap_id,
-	     pii.has_overlap, pii.overlap);
-
-	if (pii.pool_id == CEPH_NOPOOL || !pii.has_overlap) {
-		/*
-		 * Either the parent never existed, or we have
-		 * record of it but the image got flattened so it no
-		 * longer has a parent.  When the parent of a
-		 * layered image disappears we immediately set the
-		 * overlap to 0.  The effect of this is that all new
-		 * requests will be treated as if the image had no
-		 * parent.
-		 *
-		 * If !pii.has_overlap, the parent image spec is not
-		 * applicable.  It's there to avoid duplication in each
-		 * snapshot record.
-		 */
-		if (rbd_dev->parent_overlap) {
-			rbd_dev->parent_overlap = 0;
-			rbd_dev_parent_put(rbd_dev);
-			pr_info("%s: clone image has been flattened\n",
-				rbd_dev->disk->disk_name);
-		}
-
+	if (pii.pool_id == CEPH_NOPOOL || !pii.has_overlap)
 		goto out;	/* No parent?  No problem. */
-	}
 
 	/* The ceph file layout needs to fit pool id in 32 bits */
 
@@ -5982,58 +5945,46 @@
 	}
 
 	/*
-	 * The parent won't change (except when the clone is
-	 * flattened, already handled that).  So we only need to
-	 * record the parent spec we have not already done so.
+	 * The parent won't change except when the clone is flattened,
+	 * so we only need to record the parent image spec once.
 	 */
-	if (!rbd_dev->parent_spec) {
-		parent_spec->pool_id = pii.pool_id;
-		if (pii.pool_ns && *pii.pool_ns) {
-			parent_spec->pool_ns = pii.pool_ns;
-			pii.pool_ns = NULL;
-		}
-		parent_spec->image_id = pii.image_id;
-		pii.image_id = NULL;
-		parent_spec->snap_id = pii.snap_id;
-
-		rbd_dev->parent_spec = parent_spec;
-		parent_spec = NULL;	/* rbd_dev now owns this */
-	}
+	parent_spec->pool_id = pii.pool_id;
+	if (pii.pool_ns && *pii.pool_ns) {
+		parent_spec->pool_ns = pii.pool_ns;
+		pii.pool_ns = NULL;
+	}
+	parent_spec->image_id = pii.image_id;
+	pii.image_id = NULL;
+	parent_spec->snap_id = pii.snap_id;
+
+	rbd_assert(!rbd_dev->parent_spec);
+	rbd_dev->parent_spec = parent_spec;
+	parent_spec = NULL;	/* rbd_dev now owns this */
 
 	/*
-	 * We always update the parent overlap.  If it's zero we issue
-	 * a warning, as we will proceed as if there was no parent.
+	 * Record the parent overlap.  If it's zero, issue a warning as
+	 * we will proceed as if there is no parent.
 	 */
-	if (!pii.overlap) {
-		if (parent_spec) {
-			/* refresh, careful to warn just once */
-			if (rbd_dev->parent_overlap)
-				rbd_warn(rbd_dev,
-				    "clone now standalone (overlap became 0)");
-		} else {
-			/* initial probe */
-			rbd_warn(rbd_dev, "clone is standalone (overlap 0)");
-		}
-	}
+	if (!pii.overlap)
+		rbd_warn(rbd_dev, "clone is standalone (overlap 0)");
 	rbd_dev->parent_overlap = pii.overlap;
 
 out:
 	ret = 0;
 out_err:
-	kfree(pii.pool_ns);
-	kfree(pii.image_id);
+	rbd_parent_info_cleanup(&pii);
 	rbd_spec_put(parent_spec);
 	return ret;
 }
 
-static int rbd_dev_v2_striping_info(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_striping_info(struct rbd_device *rbd_dev,
+				    u64 *stripe_unit, u64 *stripe_count)
 {
 	struct {
 		__le64 stripe_unit;
 		__le64 stripe_count;
 	} __attribute__ ((packed)) striping_info_buf = { 0 };
 	size_t size = sizeof (striping_info_buf);
-	void *p;
 	int ret;
 
 	ret = rbd_obj_method_sync(rbd_dev, &rbd_dev->header_oid,
@@ -6045,27 +5996,33 @@
 	if (ret < size)
 		return -ERANGE;
 
-	p = &striping_info_buf;
-	rbd_dev->header.stripe_unit = ceph_decode_64(&p);
-	rbd_dev->header.stripe_count = ceph_decode_64(&p);
+	*stripe_unit = le64_to_cpu(striping_info_buf.stripe_unit);
+	*stripe_count = le64_to_cpu(striping_info_buf.stripe_count);
+	dout("  stripe_unit = %llu stripe_count = %llu\n", *stripe_unit,
+	     *stripe_count);
+
 	return 0;
 }
 
-static int rbd_dev_v2_data_pool(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_data_pool(struct rbd_device *rbd_dev, s64 *data_pool_id)
 {
-	__le64 data_pool_id;
+	__le64 data_pool_buf;
 	int ret;
 
 	ret = rbd_obj_method_sync(rbd_dev, &rbd_dev->header_oid,
 				  &rbd_dev->header_oloc, "get_data_pool",
-				  NULL, 0, &data_pool_id, sizeof(data_pool_id));
+				  NULL, 0, &data_pool_buf,
+				  sizeof(data_pool_buf));
+	dout("%s: rbd_obj_method_sync returned %d\n", __func__, ret);
 	if (ret < 0)
 		return ret;
-	if (ret < sizeof(data_pool_id))
+	if (ret < sizeof(data_pool_buf))
 		return -EBADMSG;
 
-	rbd_dev->header.data_pool_id = le64_to_cpu(data_pool_id);
-	WARN_ON(rbd_dev->header.data_pool_id == CEPH_NOPOOL);
+	*data_pool_id = le64_to_cpu(data_pool_buf);
+	dout("  data_pool_id = %lld\n", *data_pool_id);
+	WARN_ON(*data_pool_id == CEPH_NOPOOL);
+
 	return 0;
 }
 
@@ -6257,7 +6214,8 @@
 	return ret;
 }
 
-static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev,
+				   struct ceph_snap_context **psnapc)
 {
 	size_t size;
 	int ret;
@@ -6318,9 +6276,7 @@
 	for (i = 0; i < snap_count; i++)
 		snapc->snaps[i] = ceph_decode_64(&p);
 
-	ceph_put_snap_context(rbd_dev->header.snapc);
-	rbd_dev->header.snapc = snapc;
-
+	*psnapc = snapc;
 	dout("  snap context seq = %llu, snap_count = %u\n",
 		(unsigned long long)seq, (unsigned int)snap_count);
 out:
@@ -6369,38 +6325,42 @@
 	return snap_name;
 }
 
-static int rbd_dev_v2_header_info(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_header_info(struct rbd_device *rbd_dev,
+				  struct rbd_image_header *header,
+				  bool first_time)
 {
-	bool first_time = rbd_dev->header.object_prefix == NULL;
 	int ret;
 
-	ret = rbd_dev_v2_image_size(rbd_dev);
+	ret = _rbd_dev_v2_snap_size(rbd_dev, CEPH_NOSNAP,
+				    first_time ? &header->obj_order : NULL,
+				    &header->image_size);
 	if (ret)
 		return ret;
 
 	if (first_time) {
-		ret = rbd_dev_v2_header_onetime(rbd_dev);
+		ret = rbd_dev_v2_header_onetime(rbd_dev, header);
 		if (ret)
 			return ret;
 	}
 
-	ret = rbd_dev_v2_snap_context(rbd_dev);
-	if (ret && first_time) {
-		kfree(rbd_dev->header.object_prefix);
-		rbd_dev->header.object_prefix = NULL;
-	}
+	ret = rbd_dev_v2_snap_context(rbd_dev, &header->snapc);
+	if (ret)
+		return ret;
 
-	return ret;
+	return 0;
 }
 
-static int rbd_dev_header_info(struct rbd_device *rbd_dev)
+static int rbd_dev_header_info(struct rbd_device *rbd_dev,
+			       struct rbd_image_header *header,
+			       bool first_time)
 {
 	rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
+	rbd_assert(!header->object_prefix && !header->snapc);
 
 	if (rbd_dev->image_format == 1)
-		return rbd_dev_v1_header_info(rbd_dev);
+		return rbd_dev_v1_header_info(rbd_dev, header, first_time);
 
-	return rbd_dev_v2_header_info(rbd_dev);
+	return rbd_dev_v2_header_info(rbd_dev, header, first_time);
 }
 
 /*
@@ -6750,60 +6710,49 @@
  */
 static void rbd_dev_unprobe(struct rbd_device *rbd_dev)
 {
-	struct rbd_image_header	*header;
-
 	rbd_dev_parent_put(rbd_dev);
 	rbd_object_map_free(rbd_dev);
 	rbd_dev_mapping_clear(rbd_dev);
 
 	/* Free dynamic fields from the header, then zero it out */
 
-	header = &rbd_dev->header;
-	ceph_put_snap_context(header->snapc);
-	kfree(header->snap_sizes);
-	kfree(header->snap_names);
-	kfree(header->object_prefix);
-	memset(header, 0, sizeof (*header));
+	rbd_image_header_cleanup(&rbd_dev->header);
 }
 
-static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev,
+				     struct rbd_image_header *header)
 {
 	int ret;
 
-	ret = rbd_dev_v2_object_prefix(rbd_dev);
+	ret = rbd_dev_v2_object_prefix(rbd_dev, &header->object_prefix);
 	if (ret)
-		goto out_err;
+		return ret;
 
 	/*
 	 * Get the and check features for the image.  Currently the
 	 * features are assumed to never change.
 	 */
-	ret = rbd_dev_v2_features(rbd_dev);
+	ret = _rbd_dev_v2_snap_features(rbd_dev, CEPH_NOSNAP,
+					&header->features);
 	if (ret)
-		goto out_err;
+		return ret;
 
 	/* If the image supports fancy striping, get its parameters */
 
-	if (rbd_dev->header.features & RBD_FEATURE_STRIPINGV2) {
-		ret = rbd_dev_v2_striping_info(rbd_dev);
-		if (ret < 0)
-			goto out_err;
+	if (header->features & RBD_FEATURE_STRIPINGV2) {
+		ret = rbd_dev_v2_striping_info(rbd_dev, &header->stripe_unit,
+					       &header->stripe_count);
+		if (ret)
+			return ret;
 	}
 
-	if (rbd_dev->header.features & RBD_FEATURE_DATA_POOL) {
-		ret = rbd_dev_v2_data_pool(rbd_dev);
+	if (header->features & RBD_FEATURE_DATA_POOL) {
+		ret = rbd_dev_v2_data_pool(rbd_dev, &header->data_pool_id);
 		if (ret)
-			goto out_err;
+			return ret;
 	}
 
-	rbd_init_layout(rbd_dev);
 	return 0;
-
-out_err:
-	rbd_dev->header.features = 0;
-	kfree(rbd_dev->header.object_prefix);
-	rbd_dev->header.object_prefix = NULL;
-	return ret;
 }
 
 /*
@@ -6825,7 +6774,7 @@
 		goto out_err;
 	}
 
-	parent = __rbd_dev_create(rbd_dev->rbd_client, rbd_dev->parent_spec);
+	parent = __rbd_dev_create(rbd_dev->parent_spec);
 	if (!parent) {
 		ret = -ENOMEM;
 		goto out_err;
@@ -6835,8 +6784,8 @@
 	 * Images related by parent/child relationships always share
 	 * rbd_client and spec/parent_spec, so bump their refcounts.
 	 */
-	__rbd_get_client(rbd_dev->rbd_client);
-	rbd_spec_get(rbd_dev->parent_spec);
+	parent->rbd_client = __rbd_get_client(rbd_dev->rbd_client);
+	parent->spec = rbd_spec_get(rbd_dev->parent_spec);
 
 	ret = rbd_dev_image_probe(parent, depth);
 	if (ret < 0)
@@ -6929,9 +6878,10 @@
 
 static void rbd_dev_image_release(struct rbd_device *rbd_dev)
 {
-	rbd_dev_unprobe(rbd_dev);
 	if (rbd_dev->opts)
 		rbd_unregister_watch(rbd_dev);
+
+	rbd_dev_unprobe(rbd_dev);
 	rbd_dev->image_format = 0;
 	kfree(rbd_dev->spec->image_id);
 	rbd_dev->spec->image_id = NULL;
@@ -6942,6 +6892,9 @@
  * device.  If this image is the one being mapped (i.e., not a
  * parent), initiate a watch on its header object before using that
  * object to get detailed information about the rbd image.
+ *
+ * On success, returns with header_rwsem held for write if called
+ * with @depth == 0.
  */
 static int rbd_dev_image_probe(struct rbd_device *rbd_dev, int depth)
 {
@@ -6974,9 +6927,14 @@
 		}
 	}
 
-	ret = rbd_dev_header_info(rbd_dev);
+	if (!depth)
+		down_write(&rbd_dev->header_rwsem);
+
+	ret = rbd_dev_header_info(rbd_dev, &rbd_dev->header, true);
 	if (ret)
-		goto err_out_watch;
+		goto err_out_probe;
+
+	rbd_init_layout(rbd_dev);
 
 	/*
 	 * If this image is the one being mapped, we have pool name and
@@ -7011,7 +6969,7 @@
 	}
 
 	if (rbd_dev->header.features & RBD_FEATURE_LAYERING) {
-		ret = rbd_dev_v2_parent_info(rbd_dev);
+		ret = rbd_dev_setup_parent(rbd_dev);
 		if (ret)
 			goto err_out_probe;
 	}
@@ -7025,10 +6983,11 @@
 	return 0;
 
 err_out_probe:
-	rbd_dev_unprobe(rbd_dev);
-err_out_watch:
+	if (!depth)
+		up_write(&rbd_dev->header_rwsem);
 	if (!depth)
 		rbd_unregister_watch(rbd_dev);
+	rbd_dev_unprobe(rbd_dev);
 err_out_format:
 	rbd_dev->image_format = 0;
 	kfree(rbd_dev->spec->image_id);
@@ -7036,6 +6995,112 @@
 	return ret;
 }
 
+static void rbd_dev_update_header(struct rbd_device *rbd_dev,
+				  struct rbd_image_header *header)
+{
+	rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
+	rbd_assert(rbd_dev->header.object_prefix); /* !first_time */
+
+	if (rbd_dev->header.image_size != header->image_size) {
+		rbd_dev->header.image_size = header->image_size;
+
+		if (rbd_dev->spec->snap_id == CEPH_NOSNAP) {
+			rbd_dev->mapping.size = header->image_size;
+			rbd_dev_update_size(rbd_dev);
+		}
+	}
+
+	if (rbd_dev->spec->snap_id != CEPH_NOSNAP) {
+		/* validate mapped snapshot's EXISTS flag */
+		rbd_exists_validate(rbd_dev);
+	}
+
+	ceph_put_snap_context(rbd_dev->header.snapc);
+	rbd_dev->header.snapc = header->snapc;
+	header->snapc = NULL;
+
+	if (rbd_dev->image_format == 1) {
+		kfree(rbd_dev->header.snap_names);
+		rbd_dev->header.snap_names = header->snap_names;
+		header->snap_names = NULL;
+
+		kfree(rbd_dev->header.snap_sizes);
+		rbd_dev->header.snap_sizes = header->snap_sizes;
+		header->snap_sizes = NULL;
+	}
+}
+
+static void rbd_dev_update_parent(struct rbd_device *rbd_dev,
+				  struct parent_image_info *pii)
+{
+	if (pii->pool_id == CEPH_NOPOOL || !pii->has_overlap) {
+		/*
+		 * Either the parent never existed, or we have
+		 * record of it but the image got flattened so it no
+		 * longer has a parent.  When the parent of a
+		 * layered image disappears we immediately set the
+		 * overlap to 0.  The effect of this is that all new
+		 * requests will be treated as if the image had no
+		 * parent.
+		 *
+		 * If !pii.has_overlap, the parent image spec is not
+		 * applicable.  It's there to avoid duplication in each
+		 * snapshot record.
+		 */
+		if (rbd_dev->parent_overlap) {
+			rbd_dev->parent_overlap = 0;
+			rbd_dev_parent_put(rbd_dev);
+			pr_info("%s: clone has been flattened\n",
+				rbd_dev->disk->disk_name);
+		}
+	} else {
+		rbd_assert(rbd_dev->parent_spec);
+
+		/*
+		 * Update the parent overlap.  If it became zero, issue
+		 * a warning as we will proceed as if there is no parent.
+		 */
+		if (!pii->overlap && rbd_dev->parent_overlap)
+			rbd_warn(rbd_dev,
+				 "clone has become standalone (overlap 0)");
+		rbd_dev->parent_overlap = pii->overlap;
+	}
+}
+
+static int rbd_dev_refresh(struct rbd_device *rbd_dev)
+{
+	struct rbd_image_header	header = { 0 };
+	struct parent_image_info pii = { 0 };
+	int ret;
+
+	dout("%s rbd_dev %p\n", __func__, rbd_dev);
+
+	ret = rbd_dev_header_info(rbd_dev, &header, false);
+	if (ret)
+		goto out;
+
+	/*
+	 * If there is a parent, see if it has disappeared due to the
+	 * mapped image getting flattened.
+	 */
+	if (rbd_dev->parent) {
+		ret = rbd_dev_v2_parent_info(rbd_dev, &pii);
+		if (ret)
+			goto out;
+	}
+
+	down_write(&rbd_dev->header_rwsem);
+	rbd_dev_update_header(rbd_dev, &header);
+	if (rbd_dev->parent)
+		rbd_dev_update_parent(rbd_dev, &pii);
+	up_write(&rbd_dev->header_rwsem);
+
+out:
+	rbd_parent_info_cleanup(&pii);
+	rbd_image_header_cleanup(&header);
+	return ret;
+}
+
 static ssize_t do_rbd_add(struct bus_type *bus,
 			  const char *buf,
 			  size_t count)
@@ -7047,6 +7112,9 @@
 	struct rbd_client *rbdc;
 	int rc;
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	if (!try_module_get(THIS_MODULE))
 		return -ENODEV;
 
@@ -7085,12 +7153,9 @@
 		goto err_out_rbd_dev;
 	}
 
-	down_write(&rbd_dev->header_rwsem);
 	rc = rbd_dev_image_probe(rbd_dev, 0);
-	if (rc < 0) {
-		up_write(&rbd_dev->header_rwsem);
+	if (rc < 0)
 		goto err_out_rbd_dev;
-	}
 
 	/* If we are mapping a snapshot it must be marked read-only */
 	if (rbd_dev->spec->snap_id != CEPH_NOSNAP)
@@ -7199,6 +7264,9 @@
 	bool force = false;
 	int ret;
 
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
 	dev_id = -1;
 	opt_buf[0] = '\0';
 	sscanf(buf, "%d %5s", &dev_id, opt_buf);
--- linux-ein-5.4.0.orig/drivers/block/rsxx/core.c
+++ linux-ein-5.4.0/drivers/block/rsxx/core.c
@@ -165,15 +165,17 @@
 {
 	struct rsxx_cardinfo *card = file_inode(fp)->i_private;
 	char *buf;
-	ssize_t st;
+	int st;
 
 	buf = kzalloc(cnt, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
 	st = rsxx_creg_read(card, CREG_ADD_CRAM + (u32)*ppos, cnt, buf, 1);
-	if (!st)
-		st = copy_to_user(ubuf, buf, cnt);
+	if (!st) {
+		if (copy_to_user(ubuf, buf, cnt))
+			st = -EFAULT;
+	}
 	kfree(buf);
 	if (st)
 		return st;
@@ -867,6 +869,7 @@
 	card->event_wq = create_singlethread_workqueue(DRIVER_NAME"_event");
 	if (!card->event_wq) {
 		dev_err(CARD_TO_DEV(card), "Failed card event setup.\n");
+		st = -ENOMEM;
 		goto failed_event_handler;
 	}
 
--- linux-ein-5.4.0.orig/drivers/block/skd_main.c
+++ linux-ein-5.4.0/drivers/block/skd_main.c
@@ -1417,7 +1417,8 @@
 	case SKD_CHECK_STATUS_REPORT_GOOD:
 	case SKD_CHECK_STATUS_REPORT_SMART_ALERT:
 		skreq->status = BLK_STS_OK;
-		blk_mq_complete_request(req);
+		if (likely(!blk_should_fake_timeout(req->q)))
+			blk_mq_complete_request(req);
 		break;
 
 	case SKD_CHECK_STATUS_BUSY_IMMINENT:
@@ -1440,7 +1441,8 @@
 	case SKD_CHECK_STATUS_REPORT_ERROR:
 	default:
 		skreq->status = BLK_STS_IOERR;
-		blk_mq_complete_request(req);
+		if (likely(!blk_should_fake_timeout(req->q)))
+			blk_mq_complete_request(req);
 		break;
 	}
 }
@@ -1560,7 +1562,8 @@
 		 */
 		if (likely(cmp_status == SAM_STAT_GOOD)) {
 			skreq->status = BLK_STS_OK;
-			blk_mq_complete_request(rq);
+			if (likely(!blk_should_fake_timeout(rq->q)))
+				blk_mq_complete_request(rq);
 		} else {
 			skd_resolve_req_exception(skdev, skreq, rq);
 		}
--- linux-ein-5.4.0.orig/drivers/block/sunvdc.c
+++ linux-ein-5.4.0/drivers/block/sunvdc.c
@@ -983,6 +983,8 @@
 	print_version();
 
 	hp = mdesc_grab();
+	if (!hp)
+		return -ENODEV;
 
 	err = -ENODEV;
 	if ((vdev->dev_no << PARTITION_SHIFT) & ~(u64)MINORMASK) {
--- linux-ein-5.4.0.orig/drivers/block/virtio_blk.c
+++ linux-ein-5.4.0/drivers/block/virtio_blk.c
@@ -33,6 +33,15 @@
 } ____cacheline_aligned_in_smp;
 
 struct virtio_blk {
+	/*
+	 * This mutex must be held by anything that may run after
+	 * virtblk_remove() sets vblk->vdev to NULL.
+	 *
+	 * blk-mq, virtqueue processing, and sysfs attribute code paths are
+	 * shut down before vblk->vdev is set to NULL and therefore do not need
+	 * to hold this mutex.
+	 */
+	struct mutex vdev_mutex;
 	struct virtio_device *vdev;
 
 	/* The disk structure for the kernel. */
@@ -44,6 +53,13 @@
 	/* Process context for config space updates */
 	struct work_struct config_work;
 
+	/*
+	 * Tracks references from block_device_operations open/release and
+	 * virtio_driver probe/remove so this object can be freed once no
+	 * longer in use.
+	 */
+	refcount_t refs;
+
 	/* What host tells us, plus 2 for header & tailer. */
 	unsigned int sg_elems;
 
@@ -189,16 +205,31 @@
 	if (!range)
 		return -ENOMEM;
 
-	__rq_for_each_bio(bio, req) {
-		u64 sector = bio->bi_iter.bi_sector;
-		u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
-
-		range[n].flags = cpu_to_le32(flags);
-		range[n].num_sectors = cpu_to_le32(num_sectors);
-		range[n].sector = cpu_to_le64(sector);
-		n++;
+	/*
+	 * Single max discard segment means multi-range discard isn't
+	 * supported, and block layer only runs contiguity merge like
+	 * normal RW request. So we can't reply on bio for retrieving
+	 * each range info.
+	 */
+	if (queue_max_discard_segments(req->q) == 1) {
+		range[0].flags = cpu_to_le32(flags);
+		range[0].num_sectors = cpu_to_le32(blk_rq_sectors(req));
+		range[0].sector = cpu_to_le64(blk_rq_pos(req));
+		n = 1;
+	} else {
+		__rq_for_each_bio(bio, req) {
+			u64 sector = bio->bi_iter.bi_sector;
+			u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
+
+			range[n].flags = cpu_to_le32(flags);
+			range[n].num_sectors = cpu_to_le32(num_sectors);
+			range[n].sector = cpu_to_le64(sector);
+			n++;
+		}
 	}
 
+	WARN_ON_ONCE(n != segments);
+
 	req->special_vec.bv_page = virt_to_page(range);
 	req->special_vec.bv_offset = offset_in_page(range);
 	req->special_vec.bv_len = sizeof(*range) * segments;
@@ -241,7 +272,8 @@
 		while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) {
 			struct request *req = blk_mq_rq_from_pdu(vbr);
 
-			blk_mq_complete_request(req);
+			if (likely(!blk_should_fake_timeout(req->q)))
+				blk_mq_complete_request(req);
 			req_done = true;
 		}
 		if (unlikely(virtqueue_is_broken(vq)))
@@ -339,13 +371,20 @@
 		err = virtblk_add_req(vblk->vqs[qid].vq, vbr, vbr->sg, num);
 	if (err) {
 		virtqueue_kick(vblk->vqs[qid].vq);
-		blk_mq_stop_hw_queue(hctx);
+		/* Don't stop the queue if -ENOMEM: we may have failed to
+		 * bounce the buffer due to global resource outage.
+		 */
+		if (err == -ENOSPC)
+			blk_mq_stop_hw_queue(hctx);
 		spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
-		/* Out of mem doesn't actually happen, since we fall back
-		 * to direct descriptors */
-		if (err == -ENOMEM || err == -ENOSPC)
+		switch (err) {
+		case -ENOSPC:
 			return BLK_STS_DEV_RESOURCE;
-		return BLK_STS_IOERR;
+		case -ENOMEM:
+			return BLK_STS_RESOURCE;
+		default:
+			return BLK_STS_IOERR;
+		}
 	}
 
 	if (bd->last && virtqueue_kick_prepare(vblk->vqs[qid].vq))
@@ -381,10 +420,55 @@
 	return err;
 }
 
+static void virtblk_get(struct virtio_blk *vblk)
+{
+	refcount_inc(&vblk->refs);
+}
+
+static void virtblk_put(struct virtio_blk *vblk)
+{
+	if (refcount_dec_and_test(&vblk->refs)) {
+		ida_simple_remove(&vd_index_ida, vblk->index);
+		mutex_destroy(&vblk->vdev_mutex);
+		kfree(vblk);
+	}
+}
+
+static int virtblk_open(struct block_device *bd, fmode_t mode)
+{
+	struct virtio_blk *vblk = bd->bd_disk->private_data;
+	int ret = 0;
+
+	mutex_lock(&vblk->vdev_mutex);
+
+	if (vblk->vdev)
+		virtblk_get(vblk);
+	else
+		ret = -ENXIO;
+
+	mutex_unlock(&vblk->vdev_mutex);
+	return ret;
+}
+
+static void virtblk_release(struct gendisk *disk, fmode_t mode)
+{
+	struct virtio_blk *vblk = disk->private_data;
+
+	virtblk_put(vblk);
+}
+
 /* We provide getgeo only to please some old bootloader/partitioning tools */
 static int virtblk_getgeo(struct block_device *bd, struct hd_geometry *geo)
 {
 	struct virtio_blk *vblk = bd->bd_disk->private_data;
+	int ret = 0;
+
+	mutex_lock(&vblk->vdev_mutex);
+
+	if (!vblk->vdev) {
+		ret = -ENXIO;
+		goto out;
+	}
 
 	/* see if the host passed in geometry config */
 	if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_GEOMETRY)) {
@@ -400,12 +484,16 @@
 		geo->sectors = 1 << 5;
 		geo->cylinders = get_capacity(bd->bd_disk) >> 11;
 	}
-	return 0;
+out:
+	mutex_unlock(&vblk->vdev_mutex);
+	return ret;
 }
 
 static const struct block_device_operations virtblk_fops = {
 	.ioctl  = virtblk_ioctl,
 	.owner  = THIS_MODULE,
+	.open = virtblk_open,
+	.release = virtblk_release,
 	.getgeo = virtblk_getgeo,
 };
 
@@ -760,6 +848,10 @@
 		goto out_free_index;
 	}
 
+	/* This reference is dropped in virtblk_remove(). */
+	refcount_set(&vblk->refs, 1);
+	mutex_init(&vblk->vdev_mutex);
+
 	vblk->vdev = vdev;
 	vblk->sg_elems = sg_elems;
 
@@ -845,9 +937,17 @@
 	err = virtio_cread_feature(vdev, VIRTIO_BLK_F_BLK_SIZE,
 				   struct virtio_blk_config, blk_size,
 				   &blk_size);
-	if (!err)
+	if (!err) {
+		err = blk_validate_block_size(blk_size);
+		if (err) {
+			dev_err(&vdev->dev,
+				"virtio_blk: invalid block size: 0x%x\n",
+				blk_size);
+			goto out_free_tags;
+		}
+
 		blk_queue_logical_block_size(q, blk_size);
-	else
+	} else
 		blk_size = queue_logical_block_size(q);
 
 	/* Use topology information if available */
@@ -877,11 +977,12 @@
 		blk_queue_io_opt(q, blk_size * opt_io_size);
 
 	if (virtio_has_feature(vdev, VIRTIO_BLK_F_DISCARD)) {
-		q->limits.discard_granularity = blk_size;
-
 		virtio_cread(vdev, struct virtio_blk_config,
 			     discard_sector_alignment, &v);
-		q->limits.discard_alignment = v ? v << SECTOR_SHIFT : 0;
+		if (v)
+			q->limits.discard_granularity = v << SECTOR_SHIFT;
+		else
+			q->limits.discard_granularity = blk_size;
 
 		virtio_cread(vdev, struct virtio_blk_config,
 			     max_discard_sectors, &v);
@@ -889,9 +990,15 @@
 
 		virtio_cread(vdev, struct virtio_blk_config, max_discard_seg,
 			     &v);
+
+		/*
+		 * max_discard_seg == 0 is out of spec but we always
+		 * handled it.
+		 */
+		if (!v)
+			v = sg_elems - 2;
 		blk_queue_max_discard_segments(q,
-					       min_not_zero(v,
-							    MAX_DISCARD_SEGMENTS));
+					       min(v, MAX_DISCARD_SEGMENTS));
 
 		blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
 	}
@@ -914,6 +1021,7 @@
 	put_disk(vblk->disk);
 out_free_vq:
 	vdev->config->del_vqs(vdev);
+	kfree(vblk->vqs);
 out_free_vblk:
 	kfree(vblk);
 out_free_index:
@@ -925,8 +1033,6 @@
 static void virtblk_remove(struct virtio_device *vdev)
 {
 	struct virtio_blk *vblk = vdev->priv;
-	int index = vblk->index;
-	int refc;
 
 	/* Make sure no work handler is accessing the device. */
 	flush_work(&vblk->config_work);
@@ -936,18 +1042,21 @@
 
 	blk_mq_free_tag_set(&vblk->tag_set);
 
+	mutex_lock(&vblk->vdev_mutex);
+
 	/* Stop all the virtqueues. */
 	vdev->config->reset(vdev);
 
-	refc = kref_read(&disk_to_dev(vblk->disk)->kobj.kref);
+	/* Virtqueues are stopped, nothing can use vblk->vdev anymore. */
+	vblk->vdev = NULL;
+
 	put_disk(vblk->disk);
 	vdev->config->del_vqs(vdev);
 	kfree(vblk->vqs);
-	kfree(vblk);
 
-	/* Only free device id if we don't have any users */
-	if (refc == 1)
-		ida_simple_remove(&vd_index_ida, index);
+	mutex_unlock(&vblk->vdev_mutex);
+
+	virtblk_put(vblk);
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -964,6 +1073,8 @@
 	blk_mq_quiesce_queue(vblk->disk->queue);
 
 	vdev->config->del_vqs(vdev);
+	kfree(vblk->vqs);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/block/xen-blkback/blkback.c
+++ linux-ein-5.4.0/drivers/block/xen-blkback/blkback.c
@@ -202,7 +202,7 @@
 
 #define vaddr(page) ((unsigned long)pfn_to_kaddr(page_to_pfn(page)))
 
-static int do_block_io_op(struct xen_blkif_ring *ring);
+static int do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags);
 static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 				struct blkif_request *req,
 				struct pending_req *pending_req);
@@ -615,6 +615,8 @@
 	struct xen_vbd *vbd = &blkif->vbd;
 	unsigned long timeout;
 	int ret;
+	bool do_eoi;
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
 	set_freezable();
 	while (!kthread_should_stop()) {
@@ -639,16 +641,23 @@
 		if (timeout == 0)
 			goto purge_gnt_list;
 
+		do_eoi = ring->waiting_reqs;
+
 		ring->waiting_reqs = 0;
 		smp_mb(); /* clear flag *before* checking for work */
 
-		ret = do_block_io_op(ring);
+		ret = do_block_io_op(ring, &eoi_flags);
 		if (ret > 0)
 			ring->waiting_reqs = 1;
 		if (ret == -EACCES)
 			wait_event_interruptible(ring->shutdown_wq,
 						 kthread_should_stop());
 
+		if (do_eoi && !ring->waiting_reqs) {
+			xen_irq_lateeoi(ring->irq, eoi_flags);
+			eoi_flags |= XEN_EOI_FLAG_SPURIOUS;
+		}
+
 purge_gnt_list:
 		if (blkif->vbd.feature_gnt_persistent &&
 		    time_after(jiffies, ring->next_lru)) {
@@ -841,8 +850,11 @@
 			pages[i]->page = persistent_gnt->page;
 			pages[i]->persistent_gnt = persistent_gnt;
 		} else {
-			if (get_free_page(ring, &pages[i]->page))
-				goto out_of_memory;
+			if (get_free_page(ring, &pages[i]->page)) {
+				put_free_pages(ring, pages_to_gnt, segs_to_map);
+				ret = -ENOMEM;
+				goto out;
+			}
 			addr = vaddr(pages[i]->page);
 			pages_to_gnt[segs_to_map] = pages[i]->page;
 			pages[i]->persistent_gnt = NULL;
@@ -858,10 +870,8 @@
 			break;
 	}
 
-	if (segs_to_map) {
+	if (segs_to_map)
 		ret = gnttab_map_refs(map, NULL, pages_to_gnt, segs_to_map);
-		BUG_ON(ret);
-	}
 
 	/*
 	 * Now swizzle the MFN in our domain with the MFN from the other domain
@@ -876,7 +886,7 @@
 				pr_debug("invalid buffer -- could not remap it\n");
 				put_free_pages(ring, &pages[seg_idx]->page, 1);
 				pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE;
-				ret |= 1;
+				ret |= !ret;
 				goto next;
 			}
 			pages[seg_idx]->handle = map[new_map_idx].handle;
@@ -928,15 +938,18 @@
 	}
 	segs_to_map = 0;
 	last_map = map_until;
-	if (map_until != num)
+	if (!ret && map_until != num)
 		goto again;
 
-	return ret;
+out:
+	for (i = last_map; i < num; i++) {
+		/* Don't zap current batch's valid persistent grants. */
+		if(i >= map_until)
+			pages[i]->persistent_gnt = NULL;
+		pages[i]->handle = BLKBACK_INVALID_HANDLE;
+	}
 
-out_of_memory:
-	pr_alert("%s: out of memory\n", __func__);
-	put_free_pages(ring, pages_to_gnt, segs_to_map);
-	return -ENOMEM;
+	return ret;
 }
 
 static int xen_blkbk_map_seg(struct pending_req *pending_req)
@@ -1119,7 +1132,7 @@
  * and transmute  it to the block API to hand it over to the proper block disk.
  */
 static int
-__do_block_io_op(struct xen_blkif_ring *ring)
+__do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	struct blkif_request req;
@@ -1142,6 +1155,9 @@
 		if (RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, rc))
 			break;
 
+		/* We've seen a request, so clear spurious eoi flag. */
+		*eoi_flags &= ~XEN_EOI_FLAG_SPURIOUS;
+
 		if (kthread_should_stop()) {
 			more_to_do = 1;
 			break;
@@ -1200,13 +1216,13 @@
 }
 
 static int
-do_block_io_op(struct xen_blkif_ring *ring)
+do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	int more_to_do;
 
 	do {
-		more_to_do = __do_block_io_op(ring);
+		more_to_do = __do_block_io_op(ring, eoi_flags);
 		if (more_to_do)
 			break;
 
--- linux-ein-5.4.0.orig/drivers/block/xen-blkback/common.h
+++ linux-ein-5.4.0/drivers/block/xen-blkback/common.h
@@ -316,6 +316,7 @@
 
 	struct work_struct	free_work;
 	unsigned int 		nr_ring_pages;
+	bool			multi_ref;
 	/* All rings for this device. */
 	struct xen_blkif_ring	*rings;
 	unsigned int		nr_rings;
--- linux-ein-5.4.0.orig/drivers/block/xen-blkback/xenbus.c
+++ linux-ein-5.4.0/drivers/block/xen-blkback/xenbus.c
@@ -171,6 +171,15 @@
 	blkif->domid = domid;
 	atomic_set(&blkif->refcnt, 1);
 	init_completion(&blkif->drain_complete);
+
+	/*
+	 * Because freeing back to the cache may be deferred, it is not
+	 * safe to unload the module (and hence destroy the cache) until
+	 * this has completed. To prevent premature unloading, take an
+	 * extra module reference here and release only when the object
+	 * has been freed back to the cache.
+	 */
+	__module_get(THIS_MODULE);
 	INIT_WORK(&blkif->free_work, xen_blkif_deferred_free);
 
 	return blkif;
@@ -220,9 +229,8 @@
 		BUG();
 	}
 
-	err = bind_interdomain_evtchn_to_irqhandler(blkif->domid, evtchn,
-						    xen_blkif_be_int, 0,
-						    "blkif-backend", ring);
+	err = bind_interdomain_evtchn_to_irqhandler_lateeoi(blkif->domid,
+			evtchn, xen_blkif_be_int, 0, "blkif-backend", ring);
 	if (err < 0) {
 		xenbus_unmap_ring_vfree(blkif->be->dev, ring->blk_ring);
 		ring->blk_rings.common.sring = NULL;
@@ -248,6 +256,7 @@
 
 		if (ring->xenblkd) {
 			kthread_stop(ring->xenblkd);
+			ring->xenblkd = NULL;
 			wake_up(&ring->shutdown_wq);
 		}
 
@@ -320,6 +329,7 @@
 
 	/* Make sure everything is drained before shutting down */
 	kmem_cache_free(xen_blkif_cachep, blkif);
+	module_put(THIS_MODULE);
 }
 
 int __init xen_blkif_interface_init(void)
@@ -634,7 +644,8 @@
 	/* setup back pointer */
 	be->blkif->be = be;
 
-	err = xenbus_watch_pathfmt(dev, &be->backend_watch, backend_changed,
+	err = xenbus_watch_pathfmt(dev, &be->backend_watch, NULL,
+				   backend_changed,
 				   "%s/%s", dev->nodename, "physical-device");
 	if (err)
 		goto fail;
@@ -938,14 +949,17 @@
 	for (i = 0; i < nr_grefs; i++) {
 		char ring_ref_name[RINGREF_NAME_LEN];
 
-		snprintf(ring_ref_name, RINGREF_NAME_LEN, "ring-ref%u", i);
+		if (blkif->multi_ref)
+			snprintf(ring_ref_name, RINGREF_NAME_LEN, "ring-ref%u", i);
+		else {
+			WARN_ON(i != 0);
+			snprintf(ring_ref_name, RINGREF_NAME_LEN, "ring-ref");
+		}
+
 		err = xenbus_scanf(XBT_NIL, dir, ring_ref_name,
 				   "%u", &ring_ref[i]);
 
 		if (err != 1) {
-			if (nr_grefs == 1)
-				break;
-
 			err = -EINVAL;
 			xenbus_dev_fatal(dev, err, "reading %s/%s",
 					 dir, ring_ref_name);
@@ -953,18 +967,6 @@
 		}
 	}
 
-	if (err != 1) {
-		WARN_ON(nr_grefs != 1);
-
-		err = xenbus_scanf(XBT_NIL, dir, "ring-ref", "%u",
-				   &ring_ref[0]);
-		if (err != 1) {
-			err = -EINVAL;
-			xenbus_dev_fatal(dev, err, "reading %s/ring-ref", dir);
-			return err;
-		}
-	}
-
 	err = -ENOMEM;
 	for (i = 0; i < nr_grefs * XEN_BLKIF_REQS_PER_PAGE; i++) {
 		req = kzalloc(sizeof(*req), GFP_KERNEL);
@@ -1068,10 +1070,15 @@
 		 blkif->nr_rings, blkif->blk_protocol, protocol,
 		 pers_grants ? "persistent grants" : "");
 
-	ring_page_order = xenbus_read_unsigned(dev->otherend,
-					       "ring-page-order", 0);
-
-	if (ring_page_order > xen_blkif_max_ring_order) {
+	err = xenbus_scanf(XBT_NIL, dev->otherend, "ring-page-order", "%u",
+			   &ring_page_order);
+	if (err != 1) {
+		blkif->nr_ring_pages = 1;
+		blkif->multi_ref = false;
+	} else if (ring_page_order <= xen_blkif_max_ring_order) {
+		blkif->nr_ring_pages = 1 << ring_page_order;
+		blkif->multi_ref = true;
+	} else {
 		err = -EINVAL;
 		xenbus_dev_fatal(dev, err,
 				 "requested ring page order %d exceed max:%d",
@@ -1080,8 +1087,6 @@
 		return err;
 	}
 
-	blkif->nr_ring_pages = 1 << ring_page_order;
-
 	if (blkif->nr_rings == 1)
 		return read_per_ring_refs(&blkif->rings[0], dev->otherend);
 	else {
--- linux-ein-5.4.0.orig/drivers/block/xen-blkfront.c
+++ linux-ein-5.4.0/drivers/block/xen-blkfront.c
@@ -47,6 +47,7 @@
 #include <linux/bitmap.h>
 #include <linux/list.h>
 #include <linux/workqueue.h>
+#include <linux/sched/mm.h>
 
 #include <xen/xen.h>
 #include <xen/xenbus.h>
@@ -79,6 +80,7 @@
 	BLKIF_STATE_DISCONNECTED,
 	BLKIF_STATE_CONNECTED,
 	BLKIF_STATE_SUSPENDED,
+	BLKIF_STATE_ERROR,
 };
 
 struct grant {
@@ -88,6 +90,7 @@
 };
 
 enum blk_req_status {
+	REQ_PROCESSING,
 	REQ_WAITING,
 	REQ_DONE,
 	REQ_ERROR,
@@ -148,6 +151,10 @@
 module_param_named(max_ring_page_order, xen_blkif_max_ring_order, int, 0444);
 MODULE_PARM_DESC(max_ring_page_order, "Maximum order of pages to be used for the shared ring");
 
+static bool __read_mostly xen_blkif_trusted = true;
+module_param_named(trusted, xen_blkif_trusted, bool, 0644);
+MODULE_PARM_DESC(trusted, "Is the backend trusted");
+
 #define BLK_RING_SIZE(info)	\
 	__CONST_RING_SIZE(blkif, XEN_PAGE_SIZE * (info)->nr_ring_pages)
 
@@ -208,6 +215,7 @@
 	unsigned int feature_discard:1;
 	unsigned int feature_secdiscard:1;
 	unsigned int feature_persistent:1;
+	unsigned int bounce:1;
 	unsigned int discard_granularity;
 	unsigned int discard_alignment;
 	/* Number of 4KB segments handled */
@@ -297,8 +305,8 @@
 		if (!gnt_list_entry)
 			goto out_of_memory;
 
-		if (info->feature_persistent) {
-			granted_page = alloc_page(GFP_NOIO);
+		if (info->bounce) {
+			granted_page = alloc_page(GFP_NOIO | __GFP_ZERO);
 			if (!granted_page) {
 				kfree(gnt_list_entry);
 				goto out_of_memory;
@@ -317,7 +325,7 @@
 	list_for_each_entry_safe(gnt_list_entry, n,
 	                         &rinfo->grants, node) {
 		list_del(&gnt_list_entry->node);
-		if (info->feature_persistent)
+		if (info->bounce)
 			__free_page(gnt_list_entry->page);
 		kfree(gnt_list_entry);
 		i--;
@@ -363,7 +371,7 @@
 	/* Assign a gref to this page */
 	gnt_list_entry->gref = gnttab_claim_grant_reference(gref_head);
 	BUG_ON(gnt_list_entry->gref == -ENOSPC);
-	if (info->feature_persistent)
+	if (info->bounce)
 		grant_foreign_access(gnt_list_entry, info);
 	else {
 		/* Grant access to the GFN passed by the caller */
@@ -387,7 +395,7 @@
 	/* Assign a gref to this page */
 	gnt_list_entry->gref = gnttab_claim_grant_reference(gref_head);
 	BUG_ON(gnt_list_entry->gref == -ENOSPC);
-	if (!info->feature_persistent) {
+	if (!info->bounce) {
 		struct page *indirect_page;
 
 		/* Fetch a pre-allocated page to use for indirect grefs */
@@ -532,10 +540,10 @@
 
 	id = get_id_from_freelist(rinfo);
 	rinfo->shadow[id].request = req;
-	rinfo->shadow[id].status = REQ_WAITING;
+	rinfo->shadow[id].status = REQ_PROCESSING;
 	rinfo->shadow[id].associated_id = NO_ASSOCIATED_ID;
 
-	(*ring_req)->u.rw.id = id;
+	rinfo->shadow[id].req.u.rw.id = id;
 
 	return id;
 }
@@ -543,11 +551,12 @@
 static int blkif_queue_discard_req(struct request *req, struct blkfront_ring_info *rinfo)
 {
 	struct blkfront_info *info = rinfo->dev_info;
-	struct blkif_request *ring_req;
+	struct blkif_request *ring_req, *final_ring_req;
 	unsigned long id;
 
 	/* Fill out a communications ring structure. */
-	id = blkif_ring_get_request(rinfo, req, &ring_req);
+	id = blkif_ring_get_request(rinfo, req, &final_ring_req);
+	ring_req = &rinfo->shadow[id].req;
 
 	ring_req->operation = BLKIF_OP_DISCARD;
 	ring_req->u.discard.nr_sectors = blk_rq_sectors(req);
@@ -558,8 +567,9 @@
 	else
 		ring_req->u.discard.flag = 0;
 
-	/* Keep a private copy so we can reissue requests when recovering. */
-	rinfo->shadow[id].req = *ring_req;
+	/* Copy the request to the ring page. */
+	*final_ring_req = *ring_req;
+	rinfo->shadow[id].status = REQ_WAITING;
 
 	return 0;
 }
@@ -692,6 +702,7 @@
 {
 	struct blkfront_info *info = rinfo->dev_info;
 	struct blkif_request *ring_req, *extra_ring_req = NULL;
+	struct blkif_request *final_ring_req, *final_extra_ring_req = NULL;
 	unsigned long id, extra_id = NO_ASSOCIATED_ID;
 	bool require_extra_req = false;
 	int i;
@@ -699,7 +710,7 @@
 		.grant_idx = 0,
 		.segments = NULL,
 		.rinfo = rinfo,
-		.need_copy = rq_data_dir(req) && info->feature_persistent,
+		.need_copy = rq_data_dir(req) && info->bounce,
 	};
 
 	/*
@@ -736,7 +747,8 @@
 	}
 
 	/* Fill out a communications ring structure. */
-	id = blkif_ring_get_request(rinfo, req, &ring_req);
+	id = blkif_ring_get_request(rinfo, req, &final_ring_req);
+	ring_req = &rinfo->shadow[id].req;
 
 	num_sg = blk_rq_map_sg(req->q, req, rinfo->shadow[id].sg);
 	num_grant = 0;
@@ -767,7 +779,8 @@
 		ring_req->u.rw.handle = info->handle;
 		ring_req->operation = rq_data_dir(req) ?
 			BLKIF_OP_WRITE : BLKIF_OP_READ;
-		if (req_op(req) == REQ_OP_FLUSH || req->cmd_flags & REQ_FUA) {
+		if (req_op(req) == REQ_OP_FLUSH ||
+		    (req_op(req) == REQ_OP_WRITE && (req->cmd_flags & REQ_FUA))) {
 			/*
 			 * Ideally we can do an unordered flush-to-disk.
 			 * In case the backend onlysupports barriers, use that.
@@ -787,7 +800,9 @@
 		ring_req->u.rw.nr_segments = num_grant;
 		if (unlikely(require_extra_req)) {
 			extra_id = blkif_ring_get_request(rinfo, req,
-							  &extra_ring_req);
+							  &final_extra_ring_req);
+			extra_ring_req = &rinfo->shadow[extra_id].req;
+
 			/*
 			 * Only the first request contains the scatter-gather
 			 * list.
@@ -829,10 +844,13 @@
 	if (setup.segments)
 		kunmap_atomic(setup.segments);
 
-	/* Keep a private copy so we can reissue requests when recovering. */
-	rinfo->shadow[id].req = *ring_req;
-	if (unlikely(require_extra_req))
-		rinfo->shadow[extra_id].req = *extra_ring_req;
+	/* Copy request(s) to the ring page. */
+	*final_ring_req = *ring_req;
+	rinfo->shadow[id].status = REQ_WAITING;
+	if (unlikely(require_extra_req)) {
+		*final_extra_ring_req = *extra_ring_req;
+		rinfo->shadow[extra_id].status = REQ_WAITING;
+	}
 
 	if (new_persistent_gnts)
 		gnttab_free_grant_references(setup.gref_head);
@@ -935,7 +953,8 @@
 	if (info->feature_discard) {
 		blk_queue_flag_set(QUEUE_FLAG_DISCARD, rq);
 		blk_queue_max_discard_sectors(rq, get_capacity(gd));
-		rq->limits.discard_granularity = info->discard_granularity;
+		rq->limits.discard_granularity = info->discard_granularity ?:
+						 info->physical_sector_size;
 		rq->limits.discard_alignment = info->discard_alignment;
 		if (info->feature_secdiscard)
 			blk_queue_flag_set(QUEUE_FLAG_SECERASE, rq);
@@ -1013,11 +1032,12 @@
 {
 	blk_queue_write_cache(info->rq, info->feature_flush ? true : false,
 			      info->feature_fua ? true : false);
-	pr_info("blkfront: %s: %s %s %s %s %s\n",
+	pr_info("blkfront: %s: %s %s %s %s %s %s %s\n",
 		info->gd->disk_name, flush_info(info),
 		"persistent grants:", info->feature_persistent ?
 		"enabled;" : "disabled;", "indirect descriptors:",
-		info->max_indirect_segments ? "enabled;" : "disabled;");
+		info->max_indirect_segments ? "enabled;" : "disabled;",
+		"bounce buffer:", info->bounce ? "enabled" : "disabled;");
 }
 
 static int xen_translate_vdev(int vdevice, int *minor, unsigned int *offset)
@@ -1113,8 +1133,8 @@
 	if (!VDEV_IS_EXTENDED(info->vdevice)) {
 		err = xen_translate_vdev(info->vdevice, &minor, &offset);
 		if (err)
-			return err;		
- 		nr_parts = PARTS_PER_DISK;
+			return err;
+		nr_parts = PARTS_PER_DISK;
 	} else {
 		minor = BLKIF_MINOR_EXT(info->vdevice);
 		nr_parts = PARTS_PER_EXT_DISK;
@@ -1252,7 +1272,7 @@
 	if (!list_empty(&rinfo->indirect_pages)) {
 		struct page *indirect_page, *n;
 
-		BUG_ON(info->feature_persistent);
+		BUG_ON(info->bounce);
 		list_for_each_entry_safe(indirect_page, n, &rinfo->indirect_pages, lru) {
 			list_del(&indirect_page->lru);
 			__free_page(indirect_page);
@@ -1269,7 +1289,7 @@
 							  0, 0UL);
 				rinfo->persistent_gnts_c--;
 			}
-			if (info->feature_persistent)
+			if (info->bounce)
 				__free_page(persistent_gnt->page);
 			kfree(persistent_gnt);
 		}
@@ -1290,7 +1310,7 @@
 		for (j = 0; j < segs; j++) {
 			persistent_gnt = rinfo->shadow[i].grants_used[j];
 			gnttab_end_foreign_access(persistent_gnt->gref, 0, 0UL);
-			if (info->feature_persistent)
+			if (info->bounce)
 				__free_page(persistent_gnt->page);
 			kfree(persistent_gnt);
 		}
@@ -1331,7 +1351,8 @@
 			rinfo->ring_ref[i] = GRANT_INVALID_REF;
 		}
 	}
-	free_pages((unsigned long)rinfo->ring.sring, get_order(info->nr_ring_pages * XEN_PAGE_SIZE));
+	free_pages_exact(rinfo->ring.sring,
+			 info->nr_ring_pages * XEN_PAGE_SIZE);
 	rinfo->ring.sring = NULL;
 
 	if (rinfo->irq)
@@ -1405,8 +1426,8 @@
 static int blkif_get_final_status(enum blk_req_status s1,
 				  enum blk_req_status s2)
 {
-	BUG_ON(s1 == REQ_WAITING);
-	BUG_ON(s2 == REQ_WAITING);
+	BUG_ON(s1 < REQ_DONE);
+	BUG_ON(s2 < REQ_DONE);
 
 	if (s1 == REQ_ERROR || s2 == REQ_ERROR)
 		return BLKIF_RSP_ERROR;
@@ -1415,9 +1436,15 @@
 	return BLKIF_RSP_OKAY;
 }
 
-static bool blkif_completion(unsigned long *id,
-			     struct blkfront_ring_info *rinfo,
-			     struct blkif_response *bret)
+/*
+ * Return values:
+ *  1 response processed.
+ *  0 missing further responses.
+ * -1 error while processing.
+ */
+static int blkif_completion(unsigned long *id,
+			    struct blkfront_ring_info *rinfo,
+			    struct blkif_response *bret)
 {
 	int i = 0;
 	struct scatterlist *sg;
@@ -1439,8 +1466,8 @@
 		s->status = blkif_rsp_to_req_status(bret->status);
 
 		/* Wait the second response if not yet here. */
-		if (s2->status == REQ_WAITING)
-			return false;
+		if (s2->status < REQ_DONE)
+			return 0;
 
 		bret->status = blkif_get_final_status(s->status,
 						      s2->status);
@@ -1473,7 +1500,7 @@
 	data.s = s;
 	num_sg = s->num_sg;
 
-	if (bret->operation == BLKIF_OP_READ && info->feature_persistent) {
+	if (bret->operation == BLKIF_OP_READ && info->bounce) {
 		for_each_sg(s->sg, sg, num_sg, i) {
 			BUG_ON(sg->offset + sg->length > PAGE_SIZE);
 
@@ -1491,47 +1518,48 @@
 	}
 	/* Add the persistent grant into the list of free grants */
 	for (i = 0; i < num_grant; i++) {
-		if (gnttab_query_foreign_access(s->grants_used[i]->gref)) {
+		if (!gnttab_try_end_foreign_access(s->grants_used[i]->gref)) {
 			/*
 			 * If the grant is still mapped by the backend (the
 			 * backend has chosen to make this grant persistent)
 			 * we add it at the head of the list, so it will be
 			 * reused first.
 			 */
-			if (!info->feature_persistent)
-				pr_alert_ratelimited("backed has not unmapped grant: %u\n",
-						     s->grants_used[i]->gref);
+			if (!info->feature_persistent) {
+				pr_alert("backed has not unmapped grant: %u\n",
+					 s->grants_used[i]->gref);
+				return -1;
+			}
 			list_add(&s->grants_used[i]->node, &rinfo->grants);
 			rinfo->persistent_gnts_c++;
 		} else {
 			/*
-			 * If the grant is not mapped by the backend we end the
-			 * foreign access and add it to the tail of the list,
-			 * so it will not be picked again unless we run out of
-			 * persistent grants.
+			 * If the grant is not mapped by the backend we add it
+			 * to the tail of the list, so it will not be picked
+			 * again unless we run out of persistent grants.
 			 */
-			gnttab_end_foreign_access(s->grants_used[i]->gref, 0, 0UL);
 			s->grants_used[i]->gref = GRANT_INVALID_REF;
 			list_add_tail(&s->grants_used[i]->node, &rinfo->grants);
 		}
 	}
 	if (s->req.operation == BLKIF_OP_INDIRECT) {
 		for (i = 0; i < INDIRECT_GREFS(num_grant); i++) {
-			if (gnttab_query_foreign_access(s->indirect_grants[i]->gref)) {
-				if (!info->feature_persistent)
-					pr_alert_ratelimited("backed has not unmapped grant: %u\n",
-							     s->indirect_grants[i]->gref);
+			if (!gnttab_try_end_foreign_access(s->indirect_grants[i]->gref)) {
+				if (!info->feature_persistent) {
+					pr_alert("backed has not unmapped grant: %u\n",
+						 s->indirect_grants[i]->gref);
+					return -1;
+				}
 				list_add(&s->indirect_grants[i]->node, &rinfo->grants);
 				rinfo->persistent_gnts_c++;
 			} else {
 				struct page *indirect_page;
 
-				gnttab_end_foreign_access(s->indirect_grants[i]->gref, 0, 0UL);
 				/*
 				 * Add the used indirect page back to the list of
 				 * available pages for indirect grefs.
 				 */
-				if (!info->feature_persistent) {
+				if (!info->bounce) {
 					indirect_page = s->indirect_grants[i]->page;
 					list_add(&indirect_page->lru, &rinfo->indirect_pages);
 				}
@@ -1541,71 +1569,103 @@
 		}
 	}
 
-	return true;
+	return 1;
 }
 
 static irqreturn_t blkif_interrupt(int irq, void *dev_id)
 {
 	struct request *req;
-	struct blkif_response *bret;
+	struct blkif_response bret;
 	RING_IDX i, rp;
 	unsigned long flags;
 	struct blkfront_ring_info *rinfo = (struct blkfront_ring_info *)dev_id;
 	struct blkfront_info *info = rinfo->dev_info;
+	unsigned int eoiflag = XEN_EOI_FLAG_SPURIOUS;
 
-	if (unlikely(info->connected != BLKIF_STATE_CONNECTED))
+	if (unlikely(info->connected != BLKIF_STATE_CONNECTED)) {
+		xen_irq_lateeoi(irq, XEN_EOI_FLAG_SPURIOUS);
 		return IRQ_HANDLED;
+	}
 
 	spin_lock_irqsave(&rinfo->ring_lock, flags);
  again:
-	rp = rinfo->ring.sring->rsp_prod;
-	rmb(); /* Ensure we see queued responses up to 'rp'. */
+	rp = READ_ONCE(rinfo->ring.sring->rsp_prod);
+	virt_rmb(); /* Ensure we see queued responses up to 'rp'. */
+	if (RING_RESPONSE_PROD_OVERFLOW(&rinfo->ring, rp)) {
+		pr_alert("%s: illegal number of responses %u\n",
+			 info->gd->disk_name, rp - rinfo->ring.rsp_cons);
+		goto err;
+	}
 
 	for (i = rinfo->ring.rsp_cons; i != rp; i++) {
 		unsigned long id;
+		unsigned int op;
+
+		eoiflag = 0;
+
+		RING_COPY_RESPONSE(&rinfo->ring, i, &bret);
+		id = bret.id;
 
-		bret = RING_GET_RESPONSE(&rinfo->ring, i);
-		id   = bret->id;
 		/*
 		 * The backend has messed up and given us an id that we would
 		 * never have given to it (we stamp it up to BLK_RING_SIZE -
 		 * look in get_id_from_freelist.
 		 */
 		if (id >= BLK_RING_SIZE(info)) {
-			WARN(1, "%s: response to %s has incorrect id (%ld)\n",
-			     info->gd->disk_name, op_name(bret->operation), id);
-			/* We can't safely get the 'struct request' as
-			 * the id is busted. */
-			continue;
+			pr_alert("%s: response has incorrect id (%ld)\n",
+				 info->gd->disk_name, id);
+			goto err;
 		}
+		if (rinfo->shadow[id].status != REQ_WAITING) {
+			pr_alert("%s: response references no pending request\n",
+				 info->gd->disk_name);
+			goto err;
+		}
+
+		rinfo->shadow[id].status = REQ_PROCESSING;
 		req  = rinfo->shadow[id].request;
 
-		if (bret->operation != BLKIF_OP_DISCARD) {
+		op = rinfo->shadow[id].req.operation;
+		if (op == BLKIF_OP_INDIRECT)
+			op = rinfo->shadow[id].req.u.indirect.indirect_op;
+		if (bret.operation != op) {
+			pr_alert("%s: response has wrong operation (%u instead of %u)\n",
+				 info->gd->disk_name, bret.operation, op);
+			goto err;
+		}
+
+		if (bret.operation != BLKIF_OP_DISCARD) {
+			int ret;
+
 			/*
 			 * We may need to wait for an extra response if the
 			 * I/O request is split in 2
 			 */
-			if (!blkif_completion(&id, rinfo, bret))
+			ret = blkif_completion(&id, rinfo, &bret);
+			if (!ret)
 				continue;
+			if (unlikely(ret < 0))
+				goto err;
 		}
 
 		if (add_id_to_freelist(rinfo, id)) {
 			WARN(1, "%s: response to %s (id %ld) couldn't be recycled!\n",
-			     info->gd->disk_name, op_name(bret->operation), id);
+			     info->gd->disk_name, op_name(bret.operation), id);
 			continue;
 		}
 
-		if (bret->status == BLKIF_RSP_OKAY)
+		if (bret.status == BLKIF_RSP_OKAY)
 			blkif_req(req)->error = BLK_STS_OK;
 		else
 			blkif_req(req)->error = BLK_STS_IOERR;
 
-		switch (bret->operation) {
+		switch (bret.operation) {
 		case BLKIF_OP_DISCARD:
-			if (unlikely(bret->status == BLKIF_RSP_EOPNOTSUPP)) {
+			if (unlikely(bret.status == BLKIF_RSP_EOPNOTSUPP)) {
 				struct request_queue *rq = info->rq;
-				printk(KERN_WARNING "blkfront: %s: %s op failed\n",
-					   info->gd->disk_name, op_name(bret->operation));
+
+				pr_warn_ratelimited("blkfront: %s: %s op failed\n",
+					   info->gd->disk_name, op_name(bret.operation));
 				blkif_req(req)->error = BLK_STS_NOTSUPP;
 				info->feature_discard = 0;
 				info->feature_secdiscard = 0;
@@ -1615,15 +1675,15 @@
 			break;
 		case BLKIF_OP_FLUSH_DISKCACHE:
 		case BLKIF_OP_WRITE_BARRIER:
-			if (unlikely(bret->status == BLKIF_RSP_EOPNOTSUPP)) {
-				printk(KERN_WARNING "blkfront: %s: %s op failed\n",
-				       info->gd->disk_name, op_name(bret->operation));
+			if (unlikely(bret.status == BLKIF_RSP_EOPNOTSUPP)) {
+				pr_warn_ratelimited("blkfront: %s: %s op failed\n",
+				       info->gd->disk_name, op_name(bret.operation));
 				blkif_req(req)->error = BLK_STS_NOTSUPP;
 			}
-			if (unlikely(bret->status == BLKIF_RSP_ERROR &&
+			if (unlikely(bret.status == BLKIF_RSP_ERROR &&
 				     rinfo->shadow[id].req.u.rw.nr_segments == 0)) {
-				printk(KERN_WARNING "blkfront: %s: empty %s op failed\n",
-				       info->gd->disk_name, op_name(bret->operation));
+				pr_warn_ratelimited("blkfront: %s: empty %s op failed\n",
+				       info->gd->disk_name, op_name(bret.operation));
 				blkif_req(req)->error = BLK_STS_NOTSUPP;
 			}
 			if (unlikely(blkif_req(req)->error)) {
@@ -1636,16 +1696,18 @@
 			/* fall through */
 		case BLKIF_OP_READ:
 		case BLKIF_OP_WRITE:
-			if (unlikely(bret->status != BLKIF_RSP_OKAY))
-				dev_dbg(&info->xbdev->dev, "Bad return from blkdev data "
-					"request: %x\n", bret->status);
+			if (unlikely(bret.status != BLKIF_RSP_OKAY))
+				dev_dbg_ratelimited(&info->xbdev->dev,
+					"Bad return from blkdev data request: %#x\n",
+					bret.status);
 
 			break;
 		default:
 			BUG();
 		}
 
-		blk_mq_complete_request(req);
+		if (likely(!blk_should_fake_timeout(req->q)))
+			blk_mq_complete_request(req);
 	}
 
 	rinfo->ring.rsp_cons = i;
@@ -1662,6 +1724,18 @@
 
 	spin_unlock_irqrestore(&rinfo->ring_lock, flags);
 
+	xen_irq_lateeoi(irq, eoiflag);
+
+	return IRQ_HANDLED;
+
+ err:
+	info->connected = BLKIF_STATE_ERROR;
+
+	spin_unlock_irqrestore(&rinfo->ring_lock, flags);
+
+	/* No EOI in order to avoid further interrupts. */
+
+	pr_alert("%s disabled for further use\n", info->gd->disk_name);
 	return IRQ_HANDLED;
 }
 
@@ -1678,8 +1752,7 @@
 	for (i = 0; i < info->nr_ring_pages; i++)
 		rinfo->ring_ref[i] = GRANT_INVALID_REF;
 
-	sring = (struct blkif_sring *)__get_free_pages(GFP_NOIO | __GFP_HIGH,
-						       get_order(ring_size));
+	sring = alloc_pages_exact(ring_size, GFP_NOIO | __GFP_ZERO);
 	if (!sring) {
 		xenbus_dev_fatal(dev, -ENOMEM, "allocating shared ring");
 		return -ENOMEM;
@@ -1689,7 +1762,7 @@
 
 	err = xenbus_grant_ring(dev, rinfo->ring.sring, info->nr_ring_pages, gref);
 	if (err < 0) {
-		free_pages((unsigned long)sring, get_order(ring_size));
+		free_pages_exact(sring, ring_size);
 		rinfo->ring.sring = NULL;
 		goto fail;
 	}
@@ -1700,8 +1773,8 @@
 	if (err)
 		goto fail;
 
-	err = bind_evtchn_to_irqhandler(rinfo->evtchn, blkif_interrupt, 0,
-					"blkif", rinfo);
+	err = bind_evtchn_to_irqhandler_lateeoi(rinfo->evtchn, blkif_interrupt,
+						0, "blkif", rinfo);
 	if (err <= 0) {
 		xenbus_dev_fatal(dev, err,
 				 "bind_evtchn_to_irqhandler failed");
@@ -1782,6 +1855,10 @@
 	if (!info)
 		return -ENODEV;
 
+	/* Check if backend is trusted. */
+	info->bounce = !xen_blkif_trusted ||
+		       !xenbus_read_unsigned(dev->nodename, "trusted", 1);
+
 	max_page_order = xenbus_read_unsigned(info->xbdev->otherend,
 					      "max-ring-page-order", 0);
 	ring_page_order = min(xen_blkif_max_ring_order, max_page_order);
@@ -2168,19 +2245,12 @@
 
 static void blkfront_setup_discard(struct blkfront_info *info)
 {
-	int err;
-	unsigned int discard_granularity;
-	unsigned int discard_alignment;
-
 	info->feature_discard = 1;
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-		"discard-granularity", "%u", &discard_granularity,
-		"discard-alignment", "%u", &discard_alignment,
-		NULL);
-	if (!err) {
-		info->discard_granularity = discard_granularity;
-		info->discard_alignment = discard_alignment;
-	}
+	info->discard_granularity = xenbus_read_unsigned(info->xbdev->otherend,
+							 "discard-granularity",
+							 0);
+	info->discard_alignment = xenbus_read_unsigned(info->xbdev->otherend,
+						       "discard-alignment", 0);
 	info->feature_secdiscard =
 		!!xenbus_read_unsigned(info->xbdev->otherend, "discard-secure",
 				       0);
@@ -2188,10 +2258,12 @@
 
 static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 {
-	unsigned int psegs, grants;
+	unsigned int psegs, grants, memflags;
 	int err, i;
 	struct blkfront_info *info = rinfo->dev_info;
 
+	memflags = memalloc_noio_save();
+
 	if (info->max_indirect_segments == 0) {
 		if (!HAS_EXTRA_REQ)
 			grants = BLKIF_MAX_SEGMENTS_PER_REQUEST;
@@ -2213,17 +2285,18 @@
 	if (err)
 		goto out_of_memory;
 
-	if (!info->feature_persistent && info->max_indirect_segments) {
+	if (!info->bounce && info->max_indirect_segments) {
 		/*
-		 * We are using indirect descriptors but not persistent
-		 * grants, we need to allocate a set of pages that can be
+		 * We are using indirect descriptors but don't have a bounce
+		 * buffer, we need to allocate a set of pages that can be
 		 * used for mapping indirect grefs
 		 */
 		int num = INDIRECT_GREFS(grants) * BLK_RING_SIZE(info);
 
 		BUG_ON(!list_empty(&rinfo->indirect_pages));
 		for (i = 0; i < num; i++) {
-			struct page *indirect_page = alloc_page(GFP_NOIO);
+			struct page *indirect_page = alloc_page(GFP_KERNEL |
+			                                        __GFP_ZERO);
 			if (!indirect_page)
 				goto out_of_memory;
 			list_add(&indirect_page->lru, &rinfo->indirect_pages);
@@ -2234,15 +2307,15 @@
 		rinfo->shadow[i].grants_used =
 			kvcalloc(grants,
 				 sizeof(rinfo->shadow[i].grants_used[0]),
-				 GFP_NOIO);
+				 GFP_KERNEL);
 		rinfo->shadow[i].sg = kvcalloc(psegs,
 					       sizeof(rinfo->shadow[i].sg[0]),
-					       GFP_NOIO);
+					       GFP_KERNEL);
 		if (info->max_indirect_segments)
 			rinfo->shadow[i].indirect_grants =
 				kvcalloc(INDIRECT_GREFS(grants),
 					 sizeof(rinfo->shadow[i].indirect_grants[0]),
-					 GFP_NOIO);
+					 GFP_KERNEL);
 		if ((rinfo->shadow[i].grants_used == NULL) ||
 			(rinfo->shadow[i].sg == NULL) ||
 		     (info->max_indirect_segments &&
@@ -2251,6 +2324,7 @@
 		sg_init_table(rinfo->shadow[i].sg, psegs);
 	}
 
+	memalloc_noio_restore(memflags);
 
 	return 0;
 
@@ -2270,6 +2344,9 @@
 			__free_page(indirect_page);
 		}
 	}
+
+	memalloc_noio_restore(memflags);
+
 	return -ENOMEM;
 }
 
@@ -2311,6 +2388,8 @@
 	info->feature_persistent =
 		!!xenbus_read_unsigned(info->xbdev->otherend,
 				       "feature-persistent", 0);
+	if (info->feature_persistent)
+		info->bounce = true;
 
 	indirect_segments = xenbus_read_unsigned(info->xbdev->otherend,
 					"feature-max-indirect-segments", 0);
@@ -2668,11 +2747,10 @@
 		list_for_each_entry_safe(gnt_list_entry, tmp, &rinfo->grants,
 					 node) {
 			if (gnt_list_entry->gref == GRANT_INVALID_REF ||
-			    gnttab_query_foreign_access(gnt_list_entry->gref))
+			    !gnttab_try_end_foreign_access(gnt_list_entry->gref))
 				continue;
 
 			list_del(&gnt_list_entry->node);
-			gnttab_end_foreign_access(gnt_list_entry->gref, 0, 0UL);
 			rinfo->persistent_gnts_c--;
 			gnt_list_entry->gref = GRANT_INVALID_REF;
 			list_add_tail(&gnt_list_entry->node, &rinfo->grants);
@@ -2687,6 +2765,13 @@
 	struct blkfront_info *info;
 	bool need_schedule_work = false;
 
+	/*
+	 * Note that when using bounce buffers but not persistent grants
+	 * there's no need to run blkfront_delay_work because grants are
+	 * revoked in blkif_completion or else an error is reported and the
+	 * connection is closed.
+	 */
+
 	mutex_lock(&blkfront_mutex);
 
 	list_for_each_entry(info, &info_list, info_list) {
--- linux-ein-5.4.0.orig/drivers/block/zram/zram_drv.c
+++ linux-ein-5.4.0/drivers/block/zram/zram_drv.c
@@ -626,8 +626,8 @@
 	struct bio bio;
 	struct bio_vec bio_vec;
 	struct page *page;
-	ssize_t ret;
-	int mode;
+	ssize_t ret = len;
+	int mode, err;
 	unsigned long blk_idx = 0;
 
 	if (sysfs_streq(buf, "idle"))
@@ -719,12 +719,17 @@
 		 * XXX: A single page IO would be inefficient for write
 		 * but it would be not bad as starter.
 		 */
-		ret = submit_bio_wait(&bio);
-		if (ret) {
+		err = submit_bio_wait(&bio);
+		if (err) {
 			zram_slot_lock(zram, index);
 			zram_clear_flag(zram, index, ZRAM_UNDER_WB);
 			zram_clear_flag(zram, index, ZRAM_IDLE);
 			zram_slot_unlock(zram, index);
+			/*
+			 * Return last IO error unless every IO were
+			 * not suceeded.
+			 */
+			ret = err;
 			continue;
 		}
 
@@ -762,7 +767,6 @@
 
 	if (blk_idx)
 		free_block_bdev(zram, blk_idx);
-	ret = len;
 	__free_page(page);
 release_init_lock:
 	up_read(&zram->init_lock);
@@ -897,7 +901,7 @@
 			zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.',
 			zram_test_flag(zram, index, ZRAM_IDLE) ? 'i' : '.');
 
-		if (count < copied) {
+		if (count <= copied) {
 			zram_slot_unlock(zram, index);
 			break;
 		}
@@ -1073,7 +1077,7 @@
 			zram->limit_pages << PAGE_SHIFT,
 			max_used << PAGE_SHIFT,
 			(u64)atomic64_read(&zram->stats.same_pages),
-			pool_stats.pages_compacted,
+			atomic_long_read(&pool_stats.pages_compacted),
 			(u64)atomic64_read(&zram->stats.huge_pages));
 	up_read(&zram->init_lock);
 
@@ -2024,7 +2028,8 @@
 		return ret;
 	return scnprintf(buf, PAGE_SIZE, "%d\n", ret);
 }
-static CLASS_ATTR_RO(hot_add);
+static struct class_attribute class_attr_hot_add =
+	__ATTR(hot_add, 0400, hot_add_show, NULL);
 
 static ssize_t hot_remove_store(struct class *class,
 			struct class_attribute *attr,
--- linux-ein-5.4.0.orig/drivers/bluetooth/Kconfig
+++ linux-ein-5.4.0/drivers/bluetooth/Kconfig
@@ -167,6 +167,17 @@
 
 	  Say Y here to compile support for HCILL protocol.
 
+config BT_HCIUART_IBS
+	bool "HCI_IBS protocol support"
+	depends on BT_HCIUART
+	default n
+	help
+	  HCI_IBS (HCI In-Band Sleep) is a serial protocol for communication
+	  between Bluetooth device and host. This protocol is required for
+	  UART clock control for some Qualcomm Bluetooth devices.
+
+	  Say Y here to compile support for HCI_IBS protocol.
+
 config BT_HCIUART_3WIRE
 	bool "Three-wire UART (H5) protocol support"
 	depends on BT_HCIUART
--- linux-ein-5.4.0.orig/drivers/bluetooth/Makefile
+++ linux-ein-5.4.0/drivers/bluetooth/Makefile
@@ -39,6 +39,7 @@
 hci_uart-$(CONFIG_BT_HCIUART_H4)	+= hci_h4.o
 hci_uart-$(CONFIG_BT_HCIUART_BCSP)	+= hci_bcsp.o
 hci_uart-$(CONFIG_BT_HCIUART_LL)	+= hci_ll.o
+hci_uart-$(CONFIG_BT_HCIUART_IBS)	+= hci_ibs.o
 hci_uart-$(CONFIG_BT_HCIUART_ATH3K)	+= hci_ath.o
 hci_uart-$(CONFIG_BT_HCIUART_3WIRE)	+= hci_h5.o
 hci_uart-$(CONFIG_BT_HCIUART_INTEL)	+= hci_intel.o
--- linux-ein-5.4.0.orig/drivers/bluetooth/bfusb.c
+++ linux-ein-5.4.0/drivers/bluetooth/bfusb.c
@@ -629,6 +629,9 @@
 	data->bulk_out_ep   = bulk_out_ep->desc.bEndpointAddress;
 	data->bulk_pkt_size = le16_to_cpu(bulk_out_ep->desc.wMaxPacketSize);
 
+	if (!data->bulk_pkt_size)
+		goto done;
+
 	rwlock_init(&data->lock);
 
 	data->reassembly = NULL;
--- linux-ein-5.4.0.orig/drivers/bluetooth/btbcm.c
+++ linux-ein-5.4.0/drivers/bluetooth/btbcm.c
@@ -329,6 +329,7 @@
 	{ 0x410e, "BCM43341B0"	},	/* 002.001.014 */
 	{ 0x4204, "BCM2076B1"	},	/* 002.002.004 */
 	{ 0x4406, "BCM4324B3"	},	/* 002.004.006 */
+	{ 0x4606, "BCM4324B5"	},	/* 002.006.006 */
 	{ 0x6109, "BCM4335C0"	},	/* 003.001.009 */
 	{ 0x610c, "BCM4354"	},	/* 003.001.012 */
 	{ 0x2122, "BCM4343A0"	},	/* 001.001.034 */
@@ -343,6 +344,7 @@
 };
 
 static const struct bcm_subver_table bcm_usb_subver_table[] = {
+	{ 0x2105, "BCM20703A1"	},	/* 001.001.005 */
 	{ 0x210b, "BCM43142A0"	},	/* 001.001.011 */
 	{ 0x2112, "BCM4314A0"	},	/* 001.001.018 */
 	{ 0x2118, "BCM20702A0"	},	/* 001.001.024 */
@@ -440,6 +442,12 @@
 
 	set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
 
+	/* Some devices ship with the controller default address.
+	 * Allow the bootloader to set a valid address through the
+	 * device tree.
+	 */
+	set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(btbcm_finalize);
--- linux-ein-5.4.0.orig/drivers/bluetooth/btmrvl_sdio.c
+++ linux-ein-5.4.0/drivers/bluetooth/btmrvl_sdio.c
@@ -328,7 +328,7 @@
 
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8977 = {
 	.helper         = NULL,
-	.firmware       = "mrvl/sd8977_uapsta.bin",
+	.firmware       = "mrvl/sdsd8977_combo_v2.bin",
 	.reg            = &btmrvl_reg_8977,
 	.support_pscan_win_report = true,
 	.sd_blksz_fw_dl = 256,
@@ -346,7 +346,7 @@
 
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8997 = {
 	.helper         = NULL,
-	.firmware       = "mrvl/sd8997_uapsta.bin",
+	.firmware       = "mrvl/sdsd8997_combo_v4.bin",
 	.reg            = &btmrvl_reg_8997,
 	.support_pscan_win_report = true,
 	.sd_blksz_fw_dl = 256,
@@ -1831,6 +1831,6 @@
 MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin");
 MODULE_FIRMWARE("mrvl/sd8887_uapsta.bin");
 MODULE_FIRMWARE("mrvl/sd8897_uapsta.bin");
-MODULE_FIRMWARE("mrvl/sd8977_uapsta.bin");
+MODULE_FIRMWARE("mrvl/sdsd8977_combo_v2.bin");
 MODULE_FIRMWARE("mrvl/sd8987_uapsta.bin");
-MODULE_FIRMWARE("mrvl/sd8997_uapsta.bin");
+MODULE_FIRMWARE("mrvl/sdsd8997_combo_v4.bin");
--- linux-ein-5.4.0.orig/drivers/bluetooth/btmtksdio.c
+++ linux-ein-5.4.0/drivers/bluetooth/btmtksdio.c
@@ -684,7 +684,7 @@
 	const u8 *fw_ptr;
 	size_t fw_size;
 	int err, dlen;
-	u8 flag;
+	u8 flag, param;
 
 	err = request_firmware(&fw, fwname, &hdev->dev);
 	if (err < 0) {
@@ -692,6 +692,20 @@
 		return err;
 	}
 
+	/* Power on data RAM the firmware relies on. */
+	param = 1;
+	wmt_params.op = MTK_WMT_FUNC_CTRL;
+	wmt_params.flag = 3;
+	wmt_params.dlen = sizeof(param);
+	wmt_params.data = &param;
+	wmt_params.status = NULL;
+
+	err = mtk_hci_wmt_sync(hdev, &wmt_params);
+	if (err < 0) {
+		bt_dev_err(hdev, "Failed to power on data RAM (%d)", err);
+		goto free_fw;
+	}
+
 	fw_ptr = fw->data;
 	fw_size = fw->size;
 
@@ -966,6 +980,8 @@
 	hdev->manufacturer = 70;
 	set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
 
+	sdio_set_drvdata(func, bdev);
+
 	err = hci_register_dev(hdev);
 	if (err < 0) {
 		dev_err(&func->dev, "Can't register HCI device\n");
@@ -973,8 +989,6 @@
 		return err;
 	}
 
-	sdio_set_drvdata(func, bdev);
-
 	/* pm_runtime_enable would be done after the firmware is being
 	 * downloaded because the core layer probably already enables
 	 * runtime PM for this func such as the case host->caps &
@@ -1027,6 +1041,8 @@
 	if (!bdev)
 		return 0;
 
+	sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
+
 	sdio_claim_host(bdev->func);
 
 	sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, &err);
--- linux-ein-5.4.0.orig/drivers/bluetooth/btmtkuart.c
+++ linux-ein-5.4.0/drivers/bluetooth/btmtkuart.c
@@ -158,8 +158,10 @@
 	int err;
 
 	hlen = sizeof(*hdr) + wmt_params->dlen;
-	if (hlen > 255)
-		return -EINVAL;
+	if (hlen > 255) {
+		err = -EINVAL;
+		goto err_free_skb;
+	}
 
 	hdr = (struct mtk_wmt_hdr *)&wc;
 	hdr->dir = 1;
@@ -173,7 +175,7 @@
 	err = __hci_cmd_send(hdev, 0xfc6f, hlen, &wc);
 	if (err < 0) {
 		clear_bit(BTMTKUART_TX_WAIT_VND_EVT, &bdev->tx_state);
-		return err;
+		goto err_free_skb;
 	}
 
 	/* The vendor specific WMT commands are all answered by a vendor
@@ -190,13 +192,14 @@
 	if (err == -EINTR) {
 		bt_dev_err(hdev, "Execution of wmt command interrupted");
 		clear_bit(BTMTKUART_TX_WAIT_VND_EVT, &bdev->tx_state);
-		return err;
+		goto err_free_skb;
 	}
 
 	if (err) {
 		bt_dev_err(hdev, "Execution of wmt command timed out");
 		clear_bit(BTMTKUART_TX_WAIT_VND_EVT, &bdev->tx_state);
-		return -ETIMEDOUT;
+		err = -ETIMEDOUT;
+		goto err_free_skb;
 	}
 
 	/* Parse and handle the return WMT event */
@@ -1015,7 +1018,7 @@
 	if (btmtkuart_is_standalone(bdev)) {
 		err = clk_prepare_enable(bdev->osc);
 		if (err < 0)
-			return err;
+			goto err_hci_free_dev;
 
 		if (bdev->boot) {
 			gpiod_set_value_cansleep(bdev->boot, 1);
@@ -1028,10 +1031,8 @@
 
 		/* Power on */
 		err = regulator_enable(bdev->vcc);
-		if (err < 0) {
-			clk_disable_unprepare(bdev->osc);
-			return err;
-		}
+		if (err < 0)
+			goto err_clk_disable_unprepare;
 
 		/* Reset if the reset-gpios is available otherwise the board
 		 * -level design should be guaranteed.
@@ -1063,7 +1064,6 @@
 	err = hci_register_dev(hdev);
 	if (err < 0) {
 		dev_err(&serdev->dev, "Can't register HCI device\n");
-		hci_free_dev(hdev);
 		goto err_regulator_disable;
 	}
 
@@ -1072,6 +1072,11 @@
 err_regulator_disable:
 	if (btmtkuart_is_standalone(bdev))
 		regulator_disable(bdev->vcc);
+err_clk_disable_unprepare:
+	if (btmtkuart_is_standalone(bdev))
+		clk_disable_unprepare(bdev->osc);
+err_hci_free_dev:
+	hci_free_dev(hdev);
 
 	return err;
 }
--- linux-ein-5.4.0.orig/drivers/bluetooth/btqcomsmd.c
+++ linux-ein-5.4.0/drivers/bluetooth/btqcomsmd.c
@@ -122,6 +122,21 @@
 	return 0;
 }
 
+static int btqcomsmd_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
+{
+	int ret;
+
+	ret = qca_set_bdaddr_rome(hdev, bdaddr);
+	if (ret)
+		return ret;
+
+	/* The firmware stops responding for a while after setting the bdaddr,
+	 * causing timeouts for subsequent commands. Sleep a bit to avoid this.
+	 */
+	usleep_range(1000, 10000);
+	return 0;
+}
+
 static int btqcomsmd_probe(struct platform_device *pdev)
 {
 	struct btqcomsmd *btq;
@@ -142,12 +157,16 @@
 
 	btq->cmd_channel = qcom_wcnss_open_channel(wcnss, "APPS_RIVA_BT_CMD",
 						   btqcomsmd_cmd_callback, btq);
-	if (IS_ERR(btq->cmd_channel))
-		return PTR_ERR(btq->cmd_channel);
+	if (IS_ERR(btq->cmd_channel)) {
+		ret = PTR_ERR(btq->cmd_channel);
+		goto destroy_acl_channel;
+	}
 
 	hdev = hci_alloc_dev();
-	if (!hdev)
-		return -ENOMEM;
+	if (!hdev) {
+		ret = -ENOMEM;
+		goto destroy_cmd_channel;
+	}
 
 	hci_set_drvdata(hdev, btq);
 	btq->hdev = hdev;
@@ -158,17 +177,24 @@
 	hdev->close = btqcomsmd_close;
 	hdev->send = btqcomsmd_send;
 	hdev->setup = btqcomsmd_setup;
-	hdev->set_bdaddr = qca_set_bdaddr_rome;
+	hdev->set_bdaddr = btqcomsmd_set_bdaddr;
 
 	ret = hci_register_dev(hdev);
-	if (ret < 0) {
-		hci_free_dev(hdev);
-		return ret;
-	}
+	if (ret < 0)
+		goto hci_free_dev;
 
 	platform_set_drvdata(pdev, btq);
 
 	return 0;
+
+hci_free_dev:
+	hci_free_dev(hdev);
+destroy_cmd_channel:
+	rpmsg_destroy_ept(btq->cmd_channel);
+destroy_acl_channel:
+	rpmsg_destroy_ept(btq->acl_channel);
+
+	return ret;
 }
 
 static int btqcomsmd_remove(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/bluetooth/btrtl.c
+++ linux-ein-5.4.0/drivers/bluetooth/btrtl.c
@@ -55,6 +55,7 @@
 	int fw_len;
 	u8 *cfg_data;
 	int cfg_len;
+	bool drop_fw;
 };
 
 static const struct id_table ic_id_table[] = {
@@ -130,12 +131,19 @@
 	  .cfg_name = "rtl_bt/rtl8821c_config" },
 
 	/* 8761A */
-	{ IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8761A, 0x0,
+	{ IC_INFO(RTL_ROM_LMP_8761A, 0xa),
 	  .config_needed = false,
 	  .has_rom_version = true,
 	  .fw_name  = "rtl_bt/rtl8761a_fw.bin",
 	  .cfg_name = "rtl_bt/rtl8761a_config" },
 
+	/* 8761B */
+	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb),
+	  .config_needed = false,
+	  .has_rom_version = true,
+	  .fw_name  = "rtl_bt/rtl8761b_fw.bin",
+	  .cfg_name = "rtl_bt/rtl8761b_config" },
+
 	/* 8822C with USB interface */
 	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc),
 	  .config_needed = false,
@@ -255,6 +263,7 @@
 		{ RTL_ROM_LMP_8723B, 9 },	/* 8723D */
 		{ RTL_ROM_LMP_8821A, 10 },	/* 8821C */
 		{ RTL_ROM_LMP_8822B, 13 },	/* 8822C */
+		{ RTL_ROM_LMP_8761A, 14 },	/* 8761B */
 	};
 
 	min_size = sizeof(struct rtl_epatch_header) + sizeof(extension_sig) + 3;
@@ -370,11 +379,11 @@
 	 * the end.
 	 */
 	len = patch_length;
-	buf = kmemdup(btrtl_dev->fw_data + patch_offset, patch_length,
-		      GFP_KERNEL);
+	buf = kvmalloc(patch_length, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
+	memcpy(buf, btrtl_dev->fw_data + patch_offset, patch_length - 4);
 	memcpy(buf + patch_length - 4, &epatch_info->fw_version, 4);
 
 	*_buf = buf;
@@ -460,8 +469,10 @@
 	if (ret < 0)
 		return ret;
 	ret = fw->size;
-	*buff = kmemdup(fw->data, ret, GFP_KERNEL);
-	if (!*buff)
+	*buff = kvmalloc(fw->size, GFP_KERNEL);
+	if (*buff)
+		memcpy(*buff, fw->data, ret);
+	else
 		ret = -ENOMEM;
 
 	release_firmware(fw);
@@ -499,14 +510,14 @@
 		goto out;
 
 	if (btrtl_dev->cfg_len > 0) {
-		tbuff = kzalloc(ret + btrtl_dev->cfg_len, GFP_KERNEL);
+		tbuff = kvzalloc(ret + btrtl_dev->cfg_len, GFP_KERNEL);
 		if (!tbuff) {
 			ret = -ENOMEM;
 			goto out;
 		}
 
 		memcpy(tbuff, fw_data, ret);
-		kfree(fw_data);
+		kvfree(fw_data);
 
 		memcpy(tbuff + ret, btrtl_dev->cfg_data, btrtl_dev->cfg_len);
 		ret += btrtl_dev->cfg_len;
@@ -519,14 +530,14 @@
 	ret = rtl_download_firmware(hdev, fw_data, ret);
 
 out:
-	kfree(fw_data);
+	kvfree(fw_data);
 	return ret;
 }
 
 void btrtl_free(struct btrtl_device_info *btrtl_dev)
 {
-	kfree(btrtl_dev->fw_data);
-	kfree(btrtl_dev->cfg_data);
+	kvfree(btrtl_dev->fw_data);
+	kvfree(btrtl_dev->cfg_data);
 	kfree(btrtl_dev);
 }
 EXPORT_SYMBOL_GPL(btrtl_free);
@@ -541,6 +552,8 @@
 	u16 hci_rev, lmp_subver;
 	u8 hci_ver;
 	int ret;
+	u16 opcode;
+	u8 cmd[2];
 
 	btrtl_dev = kzalloc(sizeof(*btrtl_dev), GFP_KERNEL);
 	if (!btrtl_dev) {
@@ -562,6 +575,49 @@
 	hci_ver = resp->hci_ver;
 	hci_rev = le16_to_cpu(resp->hci_rev);
 	lmp_subver = le16_to_cpu(resp->lmp_subver);
+
+	if (resp->hci_ver == 0x8 && le16_to_cpu(resp->hci_rev) == 0x826c &&
+	    resp->lmp_ver == 0x8 && le16_to_cpu(resp->lmp_subver) == 0xa99e)
+		btrtl_dev->drop_fw = true;
+
+	if (btrtl_dev->drop_fw) {
+		opcode = hci_opcode_pack(0x3f, 0x66);
+		cmd[0] = opcode & 0xff;
+		cmd[1] = opcode >> 8;
+
+		skb = bt_skb_alloc(sizeof(cmd), GFP_KERNEL);
+		if (!skb)
+			goto out_free;
+
+		skb_put_data(skb, cmd, sizeof(cmd));
+		hci_skb_pkt_type(skb) = HCI_COMMAND_PKT;
+
+		hdev->send(hdev, skb);
+
+		/* Ensure the above vendor command is sent to controller and
+		 * process has done.
+		 */
+		msleep(200);
+
+		/* Read the local version again. Expect to have the vanilla
+		 * version as cold boot.
+		 */
+		skb = btrtl_read_local_version(hdev);
+		if (IS_ERR(skb)) {
+			ret = PTR_ERR(skb);
+			goto err_free;
+		}
+
+		resp = (struct hci_rp_read_local_version *)skb->data;
+		rtl_dev_info(hdev, "examining hci_ver=%02x hci_rev=%04x lmp_ver=%02x lmp_subver=%04x",
+			     resp->hci_ver, resp->hci_rev,
+			     resp->lmp_ver, resp->lmp_subver);
+
+		hci_ver = resp->hci_ver;
+		hci_rev = le16_to_cpu(resp->hci_rev);
+		lmp_subver = le16_to_cpu(resp->lmp_subver);
+	}
+out_free:
 	kfree_skb(skb);
 
 	btrtl_dev->ic_info = btrtl_match_ic(lmp_subver, hci_rev, hci_ver,
--- linux-ein-5.4.0.orig/drivers/bluetooth/btsdio.c
+++ linux-ein-5.4.0/drivers/bluetooth/btsdio.c
@@ -346,6 +346,7 @@
 	if (!data)
 		return;
 
+	cancel_work_sync(&data->work);
 	hdev = data->hdev;
 
 	sdio_set_drvdata(func, NULL);
--- linux-ein-5.4.0.orig/drivers/bluetooth/btusb.c
+++ linux-ein-5.4.0/drivers/bluetooth/btusb.c
@@ -14,6 +14,7 @@
 #include <linux/iopoll.h>
 #include <linux/of_device.h>
 #include <linux/of_irq.h>
+#include <linux/pci.h>
 #include <linux/suspend.h>
 #include <linux/gpio/consumer.h>
 #include <asm/unaligned.h>
@@ -57,6 +58,7 @@
 #define BTUSB_IFNUM_2		0x80000
 #define BTUSB_CW6622		0x100000
 #define BTUSB_MEDIATEK		0x200000
+#define BTUSB_WIDEBAND_SPEECH	0x400000
 
 static const struct usb_device_id btusb_table[] = {
 	/* Generic Bluetooth USB device */
@@ -332,15 +334,21 @@
 	{ USB_DEVICE(0x1286, 0x204e), .driver_info = BTUSB_MARVELL },
 
 	/* Intel Bluetooth devices */
-	{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_NEW },
-	{ USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_NEW },
-	{ USB_DEVICE(0x8087, 0x0029), .driver_info = BTUSB_INTEL_NEW },
+	{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_NEW |
+						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_NEW |
+						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x8087, 0x0029), .driver_info = BTUSB_INTEL_NEW |
+						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x8087, 0x07da), .driver_info = BTUSB_CSR },
 	{ USB_DEVICE(0x8087, 0x07dc), .driver_info = BTUSB_INTEL },
 	{ USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL },
-	{ USB_DEVICE(0x8087, 0x0a2b), .driver_info = BTUSB_INTEL_NEW },
-	{ USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL },
-	{ USB_DEVICE(0x8087, 0x0aaa), .driver_info = BTUSB_INTEL_NEW },
+	{ USB_DEVICE(0x8087, 0x0a2b), .driver_info = BTUSB_INTEL_NEW |
+						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL |
+						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x8087, 0x0aaa), .driver_info = BTUSB_INTEL_NEW |
+						     BTUSB_WIDEBAND_SPEECH },
 
 	/* Other Intel Bluetooth devices */
 	{ USB_VENDOR_AND_INTERFACE_INFO(0x8087, 0xe0, 0x01, 0x01),
@@ -373,6 +381,10 @@
 	{ USB_DEVICE(0x0bda, 0xb009), .driver_info = BTUSB_REALTEK },
 	{ USB_DEVICE(0x2ff8, 0xb011), .driver_info = BTUSB_REALTEK },
 
+	/* Additional Realtek 8761BU Bluetooth devices */
+	{ USB_DEVICE(0x0b05, 0x190e), .driver_info = BTUSB_REALTEK |
+	  					     BTUSB_WIDEBAND_SPEECH },
+
 	/* Additional Realtek 8821AE Bluetooth devices */
 	{ USB_DEVICE(0x0b05, 0x17dc), .driver_info = BTUSB_REALTEK },
 	{ USB_DEVICE(0x13d3, 0x3414), .driver_info = BTUSB_REALTEK },
@@ -563,13 +575,13 @@
 
 	spin_lock_irqsave(&data->rxlock, flags);
 
-	kfree_skb(data->evt_skb);
+	dev_kfree_skb_irq(data->evt_skb);
 	data->evt_skb = NULL;
 
-	kfree_skb(data->acl_skb);
+	dev_kfree_skb_irq(data->acl_skb);
 	data->acl_skb = NULL;
 
-	kfree_skb(data->sco_skb);
+	dev_kfree_skb_irq(data->sco_skb);
 	data->sco_skb = NULL;
 
 	spin_unlock_irqrestore(&data->rxlock, flags);
@@ -1200,7 +1212,7 @@
 	if (data->setup_on_usb) {
 		err = data->setup_on_usb(hdev);
 		if (err < 0)
-			return err;
+			goto setup_fail;
 	}
 
 	data->intf->needs_remote_wakeup = 1;
@@ -1239,6 +1251,7 @@
 
 failed:
 	clear_bit(BTUSB_INTR_RUNNING, &data->flags);
+setup_fail:
 	usb_autopm_put_interface(data->intf);
 	return err;
 }
@@ -2567,7 +2580,8 @@
 		skb = bt_skb_alloc(HCI_WMT_MAX_EVENT_SIZE, GFP_ATOMIC);
 		if (!skb) {
 			hdev->stat.err_rx++;
-			goto err_out;
+			kfree(urb->setup_packet);
+			return;
 		}
 
 		hci_skb_pkt_type(skb) = HCI_EVENT_PKT;
@@ -2584,14 +2598,21 @@
 		 * and being processed the events from there then.
 		 */
 		if (test_bit(BTUSB_TX_WAIT_VND_EVT, &data->flags)) {
-			data->evt_skb = skb_clone(skb, GFP_KERNEL);
-			if (!data->evt_skb)
-				goto err_out;
+			data->evt_skb = skb_clone(skb, GFP_ATOMIC);
+			if (!data->evt_skb) {
+				kfree_skb(skb);
+				kfree(urb->setup_packet);
+				return;
+			}
 		}
 
 		err = hci_recv_frame(hdev, skb);
-		if (err < 0)
-			goto err_free_skb;
+		if (err < 0) {
+			kfree_skb(data->evt_skb);
+			data->evt_skb = NULL;
+			kfree(urb->setup_packet);
+			return;
+		}
 
 		if (test_and_clear_bit(BTUSB_TX_WAIT_VND_EVT,
 				       &data->flags)) {
@@ -2600,11 +2621,7 @@
 			wake_up_bit(&data->flags,
 				    BTUSB_TX_WAIT_VND_EVT);
 		}
-err_out:
-		return;
-err_free_skb:
-		kfree_skb(data->evt_skb);
-		data->evt_skb = NULL;
+		kfree(urb->setup_packet);
 		return;
 	} else if (urb->status == -ENOENT) {
 		/* Avoid suspend failed when usb_kill_urb */
@@ -2625,6 +2642,7 @@
 	usb_anchor_urb(urb, &data->ctrl_anchor);
 	err = usb_submit_urb(urb, GFP_ATOMIC);
 	if (err < 0) {
+		kfree(urb->setup_packet);
 		/* -EPERM: urb is being killed;
 		 * -ENODEV: device got disconnected
 		 */
@@ -2663,6 +2681,7 @@
 	buf = kmalloc(size, GFP_KERNEL);
 	if (!buf) {
 		kfree(dr);
+		usb_free_urb(urb);
 		return -ENOMEM;
 	}
 
@@ -2698,11 +2717,6 @@
 	struct btmtk_wmt_hdr *hdr;
 	int err;
 
-	/* Submit control IN URB on demand to process the WMT event */
-	err = btusb_mtk_submit_wmt_recv_urb(hdev);
-	if (err < 0)
-		return err;
-
 	/* Send the WMT command and wait until the WMT event returns */
 	hlen = sizeof(*hdr) + wmt_params->dlen;
 	if (hlen > 255)
@@ -2724,6 +2738,11 @@
 		return err;
 	}
 
+	/* Submit control IN URB on demand to process the WMT event */
+	err = btusb_mtk_submit_wmt_recv_urb(hdev);
+	if (err < 0)
+		return err;
+
 	/* The vendor specific WMT commands are all answered by a vendor
 	 * specific event and will have the Command Status or Command
 	 * Complete as with usual HCI command flow control.
@@ -2791,7 +2810,7 @@
 	const u8 *fw_ptr;
 	size_t fw_size;
 	int err, dlen;
-	u8 flag;
+	u8 flag, param;
 
 	err = request_firmware(&fw, fwname, &hdev->dev);
 	if (err < 0) {
@@ -2799,6 +2818,20 @@
 		return err;
 	}
 
+	/* Power on data RAM the firmware relies on. */
+	param = 1;
+	wmt_params.op = BTMTK_WMT_FUNC_CTRL;
+	wmt_params.flag = 3;
+	wmt_params.dlen = sizeof(param);
+	wmt_params.data = &param;
+	wmt_params.status = NULL;
+
+	err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
+	if (err < 0) {
+		bt_dev_err(hdev, "Failed to power on data RAM (%d)", err);
+		goto err_release_fw;
+	}
+
 	fw_ptr = fw->data;
 	fw_size = fw->size;
 
@@ -2849,7 +2882,7 @@
 	err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
 	if (err < 0) {
 		bt_dev_err(hdev, "Failed to send wmt rst (%d)", err);
-		return err;
+		goto err_release_fw;
 	}
 
 	/* Wait a few moments for firmware activation done */
@@ -3120,6 +3153,35 @@
 	return 0;
 }
 
+#define BTUSB_EDGE_LED_COMMAND		0xfc77
+
+static void btusb_edge_set_led(struct hci_dev *hdev, bool state)
+{
+	struct sk_buff *skb;
+	u8 config_led[] = { 0x09, 0x00, 0x01, 0x01 };
+
+	if (state)
+		config_led[1] = 0x01;
+
+	skb = __hci_cmd_sync(hdev, BTUSB_EDGE_LED_COMMAND, sizeof(config_led), config_led, HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb))
+		BT_ERR("%s fail to set LED (%ld)", hdev->name, PTR_ERR(skb));
+	else
+		kfree_skb(skb);
+}
+
+static int btusb_edge_post_init(struct hci_dev *hdev)
+{
+	btusb_edge_set_led(hdev, true);
+	return 0;
+}
+
+static int btusb_edge_shutdown(struct hci_dev *hdev)
+{
+	btusb_edge_set_led(hdev, false);
+	return 0;
+}
+
 static int btusb_set_bdaddr_ath3012(struct hci_dev *hdev,
 				    const bdaddr_t *bdaddr)
 {
@@ -3247,6 +3309,11 @@
 	sent += size;
 	count -= size;
 
+	/* ep2 need time to switch from function acl to function dfu,
+	 * so we add 20ms delay here.
+	 */
+	msleep(20);
+
 	while (count) {
 		size = min_t(size_t, count, QCA_DFU_PACKET_LEN);
 
@@ -3771,8 +3838,18 @@
 		set_bit(HCI_QUIRK_NON_PERSISTENT_DIAG, &hdev->quirks);
 	}
 
-	if (id->driver_info & BTUSB_MARVELL)
+	if (id->driver_info & BTUSB_MARVELL) {
+		struct pci_dev *pdev;
 		hdev->set_bdaddr = btusb_set_bdaddr_marvell;
+		pdev = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0720, NULL);
+		if (!pdev)
+			pdev = pci_get_subsys(PCI_ANY_ID, PCI_ANY_ID, 0x1028, 0x0733, NULL);
+		if (pdev) {
+			pci_dev_put(pdev);
+			hdev->post_init = btusb_edge_post_init;
+			hdev->shutdown = btusb_edge_shutdown;
+		}
+	}
 
 #ifdef CONFIG_BT_HCIBTUSB_MTK
 	if (id->driver_info & BTUSB_MEDIATEK) {
@@ -3807,8 +3884,8 @@
 		btusb_check_needs_reset_resume(intf);
 	}
 
-#ifdef CONFIG_BT_HCIBTUSB_RTL
-	if (id->driver_info & BTUSB_REALTEK) {
+	if (IS_ENABLED(CONFIG_BT_HCIBTUSB_RTL) &&
+	    (id->driver_info & BTUSB_REALTEK)) {
 		hdev->setup = btrtl_setup_realtek;
 		hdev->shutdown = btrtl_shutdown_realtek;
 		hdev->cmd_timeout = btusb_rtl_cmd_timeout;
@@ -3818,8 +3895,11 @@
 		 * (DEVICE_REMOTE_WAKEUP)
 		 */
 		set_bit(BTUSB_WAKEUP_DISABLE, &data->flags);
+
+		err = usb_autopm_get_interface(intf);
+		if (err < 0)
+			goto out_free_dev;
 	}
-#endif
 
 	if (id->driver_info & BTUSB_AMP) {
 		/* AMP controllers do not support SCO packets */
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_bcm.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_bcm.c
@@ -107,6 +107,7 @@
 	u32			oper_speed;
 	int			irq;
 	bool			irq_active_low;
+	bool			irq_acquired;
 
 #ifdef CONFIG_PM
 	struct hci_uart		*hu;
@@ -319,6 +320,8 @@
 		goto unlock;
 	}
 
+	bdev->irq_acquired = true;
+
 	device_init_wakeup(bdev->dev, true);
 
 	pm_runtime_set_autosuspend_delay(bdev->dev,
@@ -487,7 +490,7 @@
 	}
 
 	if (bdev) {
-		if (IS_ENABLED(CONFIG_PM) && bdev->irq > 0) {
+		if (IS_ENABLED(CONFIG_PM) && bdev->irq_acquired) {
 			devm_free_irq(bdev->dev, bdev->irq, bdev);
 			device_init_wakeup(bdev->dev, false);
 			pm_runtime_disable(bdev->dev);
@@ -1124,7 +1127,12 @@
 		return -ENOMEM;
 
 	dev->dev = &pdev->dev;
-	dev->irq = platform_get_irq(pdev, 0);
+
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		return ret;
+
+	dev->irq = ret;
 
 	if (has_acpi_companion(&pdev->dev)) {
 		ret = bcm_acpi_probe(dev);
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_bcsp.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_bcsp.c
@@ -378,7 +378,7 @@
 		i++;
 
 		__skb_unlink(skb, &bcsp->unack);
-		kfree_skb(skb);
+		dev_kfree_skb_irq(skb);
 	}
 
 	if (skb_queue_empty(&bcsp->unack))
@@ -591,6 +591,7 @@
 			if (*ptr == 0xc0) {
 				BT_ERR("Short BCSP packet");
 				kfree_skb(bcsp->rx_skb);
+				bcsp->rx_skb = NULL;
 				bcsp->rx_state = BCSP_W4_PKT_START;
 				bcsp->rx_count = 0;
 			} else
@@ -606,6 +607,7 @@
 			    bcsp->rx_skb->data[2])) != bcsp->rx_skb->data[3]) {
 				BT_ERR("Error in BCSP hdr checksum");
 				kfree_skb(bcsp->rx_skb);
+				bcsp->rx_skb = NULL;
 				bcsp->rx_state = BCSP_W4_PKT_DELIMITER;
 				bcsp->rx_count = 0;
 				continue;
@@ -630,6 +632,7 @@
 				       bscp_get_crc(bcsp));
 
 				kfree_skb(bcsp->rx_skb);
+				bcsp->rx_skb = NULL;
 				bcsp->rx_state = BCSP_W4_PKT_DELIMITER;
 				bcsp->rx_count = 0;
 				continue;
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_h5.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_h5.c
@@ -244,6 +244,9 @@
 	skb_queue_purge(&h5->rel);
 	skb_queue_purge(&h5->unrel);
 
+	kfree_skb(h5->rx_skb);
+	h5->rx_skb = NULL;
+
 	if (h5->vnd && h5->vnd->close)
 		h5->vnd->close(h5);
 
@@ -295,7 +298,7 @@
 			break;
 
 		__skb_unlink(skb, &h5->unack);
-		kfree_skb(skb);
+		dev_kfree_skb_irq(skb);
 	}
 
 	if (skb_queue_empty(&h5->unack))
@@ -790,7 +793,7 @@
 	if (!h5)
 		return -ENOMEM;
 
-	set_bit(HCI_UART_RESET_ON_INIT, &h5->serdev_hu.flags);
+	set_bit(HCI_UART_RESET_ON_INIT, &h5->serdev_hu.hdev_flags);
 
 	h5->hu = &h5->serdev_hu;
 	h5->serdev_hu.serdev = serdev;
@@ -891,6 +894,11 @@
 	/* Give the device some time before the hci-core sends it a reset */
 	usleep_range(10000, 20000);
 
+	/* Enable controller to do both LE scan and BR/EDR inquiry
+	 * simultaneously.
+	 */
+	set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &h5->hu->hdev->quirks);
+
 out_free:
 	btrtl_free(btrtl_dev);
 
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_ibs.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_ibs.c
@@ -0,0 +1,820 @@
+/*
+ *  Qualcomm's Bluetooth Software In-Band Sleep UART protocol
+ *
+ *  HCI_IBS (HCI In-Band Sleep) is Qualcomm's power management
+ *  protocol extension to H4.
+ *
+ *  Copyright (C) 2007 Texas Instruments, Inc.
+ *  Copyright (c) 2010, Code Aurora Forum. All rights reserved.
+ *
+ *  Acknowledgements:
+ *  This file is based on hci_ll.c, which was...
+ *  Written by Ohad Ben-Cohen <ohad@bencohen.org>
+ *  which was in turn based on hci_h4.c, which was written
+ *  by Maxim Krasnyansky and Marcel Holtmann.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2
+ *  as published by the Free Software Foundation
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/types.h>
+#include <linux/fcntl.h>
+#include <linux/interrupt.h>
+#include <linux/ptrace.h>
+#include <linux/poll.h>
+
+#include <linux/slab.h>
+#include <linux/tty.h>
+#include <linux/errno.h>
+#include <linux/string.h>
+#include <linux/signal.h>
+#include <linux/ioctl.h>
+#include <linux/timer.h>
+#include <linux/skbuff.h>
+#include <linux/serial_core.h>
+
+#ifdef CONFIG_SERIAL_MSM_HS
+#include <mach/msm_serial_hs.h>
+#endif
+
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "hci_uart.h"
+
+/* HCI_IBS protocol messages */
+#define HCI_IBS_SLEEP_IND	0xFE
+#define HCI_IBS_WAKE_IND	0xFD
+#define HCI_IBS_WAKE_ACK	0xFC
+
+/* HCI_IBS receiver States */
+#define HCI_IBS_W4_PACKET_TYPE	0
+#define HCI_IBS_W4_EVENT_HDR	1
+#define HCI_IBS_W4_ACL_HDR	2
+#define HCI_IBS_W4_SCO_HDR	3
+#define HCI_IBS_W4_DATA		4
+
+/* HCI_IBS transmit side sleep protocol states */
+enum tx_ibs_states_e {
+	HCI_IBS_TX_ASLEEP,
+	HCI_IBS_TX_WAKING,
+	HCI_IBS_TX_AWAKE,
+};
+
+/* HCI_IBS receive side sleep protocol states */
+enum rx_states_e {
+	HCI_IBS_RX_ASLEEP,
+	HCI_IBS_RX_AWAKE,
+};
+
+/* HCI_IBS transmit and receive side clock state vote */
+enum hci_ibs_clock_state_vote_e {
+	HCI_IBS_VOTE_STATS_UPDATE,
+	HCI_IBS_TX_VOTE_CLOCK_ON,
+	HCI_IBS_TX_VOTE_CLOCK_OFF,
+	HCI_IBS_RX_VOTE_CLOCK_ON,
+	HCI_IBS_RX_VOTE_CLOCK_OFF,
+};
+
+static unsigned long wake_retrans = 1;
+static unsigned long tx_idle_delay = (HZ * 2);
+
+struct hci_ibs_cmd {
+	u8 cmd;
+} __attribute__((packed));
+
+struct ibs_struct {
+	struct hci_uart *hu;
+	unsigned long rx_state;
+	unsigned long rx_count;
+	struct sk_buff *rx_skb;
+	struct sk_buff_head txq;
+	struct sk_buff_head tx_wait_q;	/* HCI_IBS wait queue	*/
+	spinlock_t hci_ibs_lock;	/* HCI_IBS state lock	*/
+	unsigned long tx_ibs_state;	/* HCI_IBS transmit side power state */
+	unsigned long rx_ibs_state;	/* HCI_IBS receive side power state */
+	unsigned long tx_vote;		/* clock must be on for TX */
+	unsigned long rx_vote;		/* clock must be on for RX */
+	struct	timer_list tx_idle_timer;
+	struct	timer_list wake_retrans_timer;
+	/* debug */
+	unsigned long ibs_sent_wacks;
+	unsigned long ibs_sent_slps;
+	unsigned long ibs_sent_wakes;
+	unsigned long ibs_recv_wacks;
+	unsigned long ibs_recv_slps;
+	unsigned long ibs_recv_wakes;
+	unsigned long vote_last_jif;
+	unsigned long vote_on_ticks;
+	unsigned long vote_off_ticks;
+	unsigned long tx_votes_on;
+	unsigned long rx_votes_on;
+	unsigned long tx_votes_off;
+	unsigned long rx_votes_off;
+	unsigned long votes_on;
+	unsigned long votes_off;
+};
+
+#ifdef CONFIG_SERIAL_MSM_HS
+static void __ibs_msm_serial_clock_on(struct tty_struct *tty)
+{
+	struct uart_state *state = tty->driver_data;
+	struct uart_port *port = state->uart_port;
+
+	msm_hs_request_clock_on(port);
+}
+
+static void __ibs_msm_serial_clock_request_off(struct tty_struct *tty)
+{
+	struct uart_state *state = tty->driver_data;
+	struct uart_port *port = state->uart_port;
+
+	msm_hs_request_clock_off(port);
+}
+#else
+static inline void __ibs_msm_serial_clock_on(struct tty_struct *tty) {}
+static inline void __ibs_msm_serial_clock_request_off(struct tty_struct *tty) {}
+#endif
+
+/* clock_vote needs to be called with the ibs lock held */
+static void ibs_msm_serial_clock_vote(unsigned long vote, struct hci_uart *hu)
+{
+	struct ibs_struct *ibs = hu->priv;
+
+	unsigned long old_vote = (ibs->tx_vote | ibs->rx_vote);
+	unsigned long new_vote;
+
+	switch (vote) {
+	default: /* error */
+		BT_ERR("voting irregularity");
+		return;
+	case HCI_IBS_VOTE_STATS_UPDATE:
+		if (old_vote)
+			ibs->vote_off_ticks += (jiffies - ibs->vote_last_jif);
+		else
+			ibs->vote_on_ticks += (jiffies - ibs->vote_last_jif);
+		return;
+	case HCI_IBS_TX_VOTE_CLOCK_ON:
+		ibs->tx_vote = 1;
+		ibs->tx_votes_on++;
+		new_vote = 1;
+		break;
+	case HCI_IBS_RX_VOTE_CLOCK_ON:
+		ibs->rx_vote = 1;
+		ibs->rx_votes_on++;
+		new_vote = 1;
+		break;
+	case HCI_IBS_TX_VOTE_CLOCK_OFF:
+		ibs->tx_vote = 0;
+		ibs->tx_votes_off++;
+		new_vote = ibs->rx_vote | ibs->tx_vote;
+		break;
+	case HCI_IBS_RX_VOTE_CLOCK_OFF:
+		ibs->rx_vote = 0;
+		ibs->rx_votes_off++;
+		new_vote = ibs->rx_vote | ibs->tx_vote;
+		break;
+	}
+	if (new_vote != old_vote) {
+		if (new_vote)
+			__ibs_msm_serial_clock_on(hu->tty);
+		else
+			__ibs_msm_serial_clock_request_off(hu->tty);
+
+		BT_DBG("HCIUART_IBS: vote msm_serial_hs clock %lu(%lu)",
+			new_vote, vote);
+		/* debug */
+		if (new_vote) {
+			ibs->votes_on++;
+			ibs->vote_off_ticks += (jiffies - ibs->vote_last_jif);
+		} else {
+			ibs->votes_off++;
+			ibs->vote_on_ticks += (jiffies - ibs->vote_last_jif);
+		}
+		ibs->vote_last_jif = jiffies;
+	}
+}
+
+/*
+ * Builds and sends an HCI_IBS command packet.
+ * These are very simple packets with only 1 cmd byte
+ */
+static int send_hci_ibs_cmd(u8 cmd, struct hci_uart *hu)
+{
+	int err = 0;
+	struct sk_buff *skb = NULL;
+	struct ibs_struct *ibs = hu->priv;
+	struct hci_ibs_cmd *hci_ibs_packet;
+
+	BT_DBG("hu %p cmd 0x%x", hu, cmd);
+
+	/* allocate packet */
+	skb = bt_skb_alloc(1, GFP_ATOMIC);
+	if (!skb) {
+		BT_ERR("cannot allocate memory for HCI_IBS packet");
+		err = -ENOMEM;
+		goto out;
+	}
+
+	/* prepare packet */
+	hci_ibs_packet = (struct hci_ibs_cmd *) skb_put(skb, 1);
+	hci_ibs_packet->cmd = cmd;
+	skb->dev = (void *) hu->hdev;
+
+	/* send packet */
+	skb_queue_tail(&ibs->txq, skb);
+out:
+	return err;
+}
+
+static void hci_ibs_tx_idle_timeout(struct timer_list *t)
+{
+	struct ibs_struct *ibs = from_timer(ibs, t, wake_retrans_timer);
+	struct hci_uart *hu = ibs->hu;
+	unsigned long flags;
+	unsigned long vote_tx_sleep = 0;
+
+	BT_DBG("hu %p idle timeout in %lu state", hu, ibs->tx_ibs_state);
+
+	spin_lock_irqsave_nested(&ibs->hci_ibs_lock,
+					flags, SINGLE_DEPTH_NESTING);
+
+	switch (ibs->tx_ibs_state) {
+	default:
+	case HCI_IBS_TX_ASLEEP:
+	case HCI_IBS_TX_WAKING:
+		BT_ERR("spurrious timeout in tx state %ld", ibs->tx_ibs_state);
+		goto out;
+	case HCI_IBS_TX_AWAKE: /* TX_IDLE, go to SLEEP */
+		if (send_hci_ibs_cmd(HCI_IBS_SLEEP_IND, hu) < 0) {
+			BT_ERR("cannot send SLEEP to device");
+			goto out;
+		}
+		ibs->tx_ibs_state = HCI_IBS_TX_ASLEEP;
+		ibs->ibs_sent_slps++; /* debug */
+		vote_tx_sleep = 1;
+		break;
+	}
+
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+
+	hci_uart_tx_wakeup(hu);  /* run HCI tx handling unlocked */
+
+	if (!vote_tx_sleep)
+		return;
+	/* now that message queued to tty driver, vote for tty clocks off */
+	/* It is up to the tty driver to pend the clocks off until tx done. */
+
+	spin_lock_irqsave_nested(&ibs->hci_ibs_lock,
+					flags, SINGLE_DEPTH_NESTING);
+	ibs_msm_serial_clock_vote(HCI_IBS_TX_VOTE_CLOCK_OFF, hu);
+out:
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+}
+
+static void hci_ibs_wake_retrans_timeout(struct timer_list *t)
+{
+	struct ibs_struct *ibs = from_timer(ibs, t, wake_retrans_timer);
+	struct hci_uart *hu = ibs->hu;
+	unsigned long flags;
+	unsigned long retransmit = 0;
+
+	BT_DBG("hu %p wake retransmit timeout in %lu state",
+		hu, ibs->tx_ibs_state);
+
+	spin_lock_irqsave_nested(&ibs->hci_ibs_lock,
+					flags, SINGLE_DEPTH_NESTING);
+
+	switch (ibs->tx_ibs_state) {
+	default:
+	case HCI_IBS_TX_ASLEEP:
+	case HCI_IBS_TX_AWAKE:
+		BT_ERR("spurrious timeout tx state %ld", ibs->tx_ibs_state);
+		goto out;
+	case HCI_IBS_TX_WAKING: /* No WAKE_ACK, retransmit WAKE */
+		retransmit = 1;
+		if (send_hci_ibs_cmd(HCI_IBS_WAKE_IND, hu) < 0) {
+			BT_ERR("cannot acknowledge device wake up");
+			goto out;
+		}
+		ibs->ibs_sent_wakes++; /* debug */
+		mod_timer(&ibs->wake_retrans_timer, jiffies + wake_retrans);
+		break;
+	}
+out:
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+	if (retransmit)
+		hci_uart_tx_wakeup(hu);
+}
+
+/* Initialize protocol */
+static int ibs_open(struct hci_uart *hu)
+{
+	struct ibs_struct *ibs;
+
+	BT_DBG("hu %p", hu);
+
+	ibs = kzalloc(sizeof(*ibs), GFP_ATOMIC);
+	if (!ibs)
+		return -ENOMEM;
+
+	skb_queue_head_init(&ibs->txq);
+	skb_queue_head_init(&ibs->tx_wait_q);
+	spin_lock_init(&ibs->hci_ibs_lock);
+
+	/* Assume we start with both sides asleep -- extra wakes OK */
+	ibs->tx_ibs_state = HCI_IBS_TX_ASLEEP;
+	ibs->rx_ibs_state = HCI_IBS_RX_ASLEEP;
+	/* clocks actually on, but we start votes off */
+	ibs->tx_vote = 0;
+	ibs->rx_vote = 0;
+
+	/* debug */
+	ibs->ibs_sent_wacks = 0;
+	ibs->ibs_sent_slps = 0;
+	ibs->ibs_sent_wakes = 0;
+	ibs->ibs_recv_wacks = 0;
+	ibs->ibs_recv_slps = 0;
+	ibs->ibs_recv_wakes = 0;
+	ibs->vote_last_jif = jiffies;
+	ibs->vote_on_ticks = 0;
+	ibs->vote_off_ticks = 0;
+	ibs->votes_on = 0;
+	ibs->votes_off = 0;
+	ibs->tx_votes_on = 0;
+	ibs->tx_votes_off = 0;
+	ibs->rx_votes_on = 0;
+	ibs->rx_votes_off = 0;
+
+	ibs->hu = hu;
+
+	hu->priv = ibs;
+
+	timer_setup(&ibs->wake_retrans_timer, hci_ibs_wake_retrans_timeout, 0);
+
+	timer_setup(&ibs->tx_idle_timer, hci_ibs_tx_idle_timeout, 0);
+
+	BT_INFO("HCI_IBS open, tx_idle_delay=%lu, wake_retrans=%lu",
+		tx_idle_delay, wake_retrans);
+
+	return 0;
+}
+
+void ibs_log_local_stats(struct ibs_struct *ibs)
+{
+	BT_INFO("HCI_IBS stats: tx_idle_delay=%lu, wake_retrans=%lu",
+		tx_idle_delay, wake_retrans);
+
+	BT_INFO("HCI_IBS stats: tx_ibs_state=%lu, rx_ibs_state=%lu",
+		ibs->tx_ibs_state, ibs->rx_ibs_state);
+	BT_INFO("HCI_IBS stats: sent: sleep=%lu, wake=%lu, wake_ack=%lu",
+		ibs->ibs_sent_slps, ibs->ibs_sent_wakes, ibs->ibs_sent_wacks);
+	BT_INFO("HCI_IBS stats: recv: sleep=%lu, wake=%lu, wake_ack=%lu",
+		ibs->ibs_recv_slps, ibs->ibs_recv_wakes, ibs->ibs_recv_wacks);
+
+	BT_INFO("HCI_IBS stats: queues: txq=%s, txwaitq=%s",
+		skb_queue_empty(&(ibs->txq)) ? "empty" : "full",
+		skb_queue_empty(&(ibs->tx_wait_q)) ? "empty" : "full");
+
+	BT_INFO("HCI_IBS stats: vote state: tx=%lu, rx=%lu",
+		ibs->tx_vote, ibs->rx_vote);
+	BT_INFO("HCI_IBS stats: tx votes cast: on=%lu, off=%lu",
+		ibs->tx_votes_on, ibs->tx_votes_off);
+	BT_INFO("HCI_IBS stats: rx votes cast: on=%lu, off=%lu",
+		ibs->rx_votes_on, ibs->rx_votes_off);
+	BT_INFO("HCI_IBS stats: msm_clock votes cast: on=%lu, off=%lu",
+		ibs->votes_on, ibs->votes_off);
+	BT_INFO("HCI_IBS stats: vote ticks: on=%lu, off=%lu",
+		ibs->vote_on_ticks, ibs->vote_off_ticks);
+}
+
+/* Flush protocol data */
+static int ibs_flush(struct hci_uart *hu)
+{
+	struct ibs_struct *ibs = hu->priv;
+
+	BT_DBG("hu %p", hu);
+
+	skb_queue_purge(&ibs->tx_wait_q);
+	skb_queue_purge(&ibs->txq);
+
+	return 0;
+}
+
+/* Close protocol */
+static int ibs_close(struct hci_uart *hu)
+{
+	struct ibs_struct *ibs = hu->priv;
+
+	BT_DBG("hu %p", hu);
+
+	ibs_msm_serial_clock_vote(HCI_IBS_VOTE_STATS_UPDATE, hu);
+	ibs_log_local_stats(ibs);
+
+	skb_queue_purge(&ibs->tx_wait_q);
+	skb_queue_purge(&ibs->txq);
+	del_timer(&ibs->tx_idle_timer);
+	del_timer(&ibs->wake_retrans_timer);
+
+	kfree_skb(ibs->rx_skb);
+
+	hu->priv = NULL;
+
+	kfree(ibs);
+
+	return 0;
+}
+
+/*
+ * Called upon a wake-up-indication from the device
+ */
+static void ibs_device_want_to_wakeup(struct hci_uart *hu)
+{
+	unsigned long flags;
+	struct ibs_struct *ibs = hu->priv;
+
+	BT_DBG("hu %p", hu);
+
+	/* lock hci_ibs state */
+	spin_lock_irqsave(&ibs->hci_ibs_lock, flags);
+
+	/* debug */
+	ibs->ibs_recv_wakes++;
+
+	switch (ibs->rx_ibs_state) {
+	case HCI_IBS_RX_ASLEEP:
+		/* Make sure clock is on - we may have turned clock off since
+		 * receiving the wake up indicator
+		 */
+		ibs_msm_serial_clock_vote(HCI_IBS_RX_VOTE_CLOCK_ON, hu);
+		ibs->rx_ibs_state = HCI_IBS_RX_AWAKE;
+		/* deliberate fall-through */
+	case HCI_IBS_RX_AWAKE:
+		/* Always acknowledge device wake up,
+		 * sending IBS message doesn't count as TX ON.
+		 */
+		if (send_hci_ibs_cmd(HCI_IBS_WAKE_ACK, hu) < 0) {
+			BT_ERR("cannot acknowledge device wake up");
+			goto out;
+		}
+		ibs->ibs_sent_wacks++; /* debug */
+		break;
+	default:
+		/* any other state is illegal */
+		BT_ERR("received HCI_IBS_WAKE_IND in rx state %ld",
+			ibs->rx_ibs_state);
+		break;
+	}
+
+out:
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+
+	/* actually send the packets */
+	hci_uart_tx_wakeup(hu);
+}
+
+/*
+ * Called upon a sleep-indication from the device
+ */
+static void ibs_device_want_to_sleep(struct hci_uart *hu)
+{
+	unsigned long flags;
+	struct ibs_struct *ibs = hu->priv;
+
+	BT_DBG("hu %p", hu);
+
+	/* lock hci_ibs state */
+	spin_lock_irqsave(&ibs->hci_ibs_lock, flags);
+
+	/* debug */
+	ibs->ibs_recv_slps++;
+
+	switch (ibs->rx_ibs_state) {
+	case HCI_IBS_RX_AWAKE:
+		/* update state */
+		ibs->rx_ibs_state = HCI_IBS_RX_ASLEEP;
+		ibs_msm_serial_clock_vote(HCI_IBS_RX_VOTE_CLOCK_OFF, hu);
+		break;
+	case HCI_IBS_RX_ASLEEP:
+		/* deliberate fall-through */
+	default:
+		/* any other state is illegal */
+		BT_ERR("received HCI_IBS_SLEEP_IND in rx state %ld",
+			ibs->rx_ibs_state);
+		break;
+	}
+
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+}
+
+/*
+ * Called upon wake-up-acknowledgement from the device
+ */
+static void ibs_device_woke_up(struct hci_uart *hu)
+{
+	unsigned long flags;
+	struct ibs_struct *ibs = hu->priv;
+	struct sk_buff *skb = NULL;
+
+	BT_DBG("hu %p", hu);
+
+	/* lock hci_ibs state */
+	spin_lock_irqsave(&ibs->hci_ibs_lock, flags);
+
+	/* debug */
+	ibs->ibs_recv_wacks++;
+
+	switch (ibs->tx_ibs_state) {
+	case HCI_IBS_TX_ASLEEP:
+		/* This could be spurrious rx wake on the BT chip.
+		 * Send it another SLEEP othwise it will stay awake. */
+	default:
+		BT_ERR("received HCI_IBS_WAKE_ACK in tx state %ld",
+			ibs->tx_ibs_state);
+		break;
+	case HCI_IBS_TX_AWAKE:
+		/* expect one if we send 2 WAKEs */
+		BT_DBG("received HCI_IBS_WAKE_ACK in tx state %ld",
+			ibs->tx_ibs_state);
+		break;
+	case HCI_IBS_TX_WAKING:
+		/* send pending packets */
+		while ((skb = skb_dequeue(&ibs->tx_wait_q)))
+			skb_queue_tail(&ibs->txq, skb);
+		/* switch timers and change state to HCI_IBS_TX_AWAKE */
+		del_timer(&ibs->wake_retrans_timer);
+		mod_timer(&ibs->tx_idle_timer, jiffies + tx_idle_delay);
+		ibs->tx_ibs_state = HCI_IBS_TX_AWAKE;
+	}
+
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+
+	/* actually send the packets */
+	hci_uart_tx_wakeup(hu);
+}
+
+/* Enqueue frame for transmittion (padding, crc, etc) */
+/* may be called from two simultaneous tasklets */
+static int ibs_enqueue(struct hci_uart *hu, struct sk_buff *skb)
+{
+	unsigned long flags = 0;
+	struct ibs_struct *ibs = hu->priv;
+
+	BT_DBG("hu %p skb %p", hu, skb);
+
+	/* Prepend skb with frame type */
+	memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1);
+
+	/* lock hci_ibs state */
+	spin_lock_irqsave(&ibs->hci_ibs_lock, flags);
+
+	/* act according to current state */
+	switch (ibs->tx_ibs_state) {
+	case HCI_IBS_TX_AWAKE:
+		BT_DBG("device awake, sending normally");
+		skb_queue_tail(&ibs->txq, skb);
+		mod_timer(&ibs->tx_idle_timer, jiffies + tx_idle_delay);
+		break;
+
+	case HCI_IBS_TX_ASLEEP:
+		BT_DBG("device asleep, waking up and queueing packet");
+		ibs_msm_serial_clock_vote(HCI_IBS_TX_VOTE_CLOCK_ON, hu);
+		/* save packet for later */
+		skb_queue_tail(&ibs->tx_wait_q, skb);
+		/* awake device */
+		if (send_hci_ibs_cmd(HCI_IBS_WAKE_IND, hu) < 0) {
+			BT_ERR("cannot send WAKE to device");
+			break;
+		}
+		ibs->ibs_sent_wakes++; /* debug */
+
+		/* start retransmit timer */
+		mod_timer(&ibs->wake_retrans_timer, jiffies + wake_retrans);
+
+		ibs->tx_ibs_state = HCI_IBS_TX_WAKING;
+		break;
+
+	case HCI_IBS_TX_WAKING:
+		BT_DBG("device waking up, queueing packet");
+		/* transient state; just keep packet for later */
+		skb_queue_tail(&ibs->tx_wait_q, skb);
+		break;
+
+	default:
+		BT_ERR("illegal tx state: %ld (losing packet)",
+			ibs->tx_ibs_state);
+		kfree_skb(skb);
+		break;
+	}
+
+	spin_unlock_irqrestore(&ibs->hci_ibs_lock, flags);
+
+	return 0;
+}
+
+static inline int ibs_check_data_len(struct hci_uart *hu, struct ibs_struct *ibs, int len)
+{
+	register int room = skb_tailroom(ibs->rx_skb);
+
+	BT_DBG("len %d room %d", len, room);
+
+	if (!len) {
+		hci_recv_frame(hu->hdev, ibs->rx_skb);
+	} else if (len > room) {
+		BT_ERR("Data length is too large");
+		kfree_skb(ibs->rx_skb);
+	} else {
+		ibs->rx_state = HCI_IBS_W4_DATA;
+		ibs->rx_count = len;
+		return len;
+	}
+
+	ibs->rx_state = HCI_IBS_W4_PACKET_TYPE;
+	ibs->rx_skb   = NULL;
+	ibs->rx_count = 0;
+
+	return 0;
+}
+
+/* Recv data */
+static int ibs_recv(struct hci_uart *hu, const void *data, int count)
+{
+	struct ibs_struct *ibs = hu->priv;
+	register char *ptr;
+	struct hci_event_hdr *eh;
+	struct hci_acl_hdr   *ah;
+	struct hci_sco_hdr   *sh;
+	register int len, type, dlen;
+
+	BT_DBG("hu %p count %d rx_state %ld rx_count %ld",
+			hu, count, ibs->rx_state, ibs->rx_count);
+
+	ptr = data;
+	while (count) {
+		if (ibs->rx_count) {
+			len = min_t(unsigned int, ibs->rx_count, count);
+			memcpy(skb_put(ibs->rx_skb, len), ptr, len);
+			ibs->rx_count -= len; count -= len; ptr += len;
+
+			if (ibs->rx_count)
+				continue;
+
+			switch (ibs->rx_state) {
+			case HCI_IBS_W4_DATA:
+				BT_DBG("Complete data");
+				hci_recv_frame(hu->hdev, ibs->rx_skb);
+
+				ibs->rx_state = HCI_IBS_W4_PACKET_TYPE;
+				ibs->rx_skb = NULL;
+				continue;
+
+			case HCI_IBS_W4_EVENT_HDR:
+				eh = (struct hci_event_hdr *) ibs->rx_skb->data;
+
+				BT_DBG("Event header: evt 0x%2.2x plen %d",
+					eh->evt, eh->plen);
+
+				ibs_check_data_len(hu, ibs, eh->plen);
+				continue;
+
+			case HCI_IBS_W4_ACL_HDR:
+				ah = (struct hci_acl_hdr *) ibs->rx_skb->data;
+				dlen = __le16_to_cpu(ah->dlen);
+
+				BT_DBG("ACL header: dlen %d", dlen);
+
+				ibs_check_data_len(hu, ibs, dlen);
+				continue;
+
+			case HCI_IBS_W4_SCO_HDR:
+				sh = (struct hci_sco_hdr *) ibs->rx_skb->data;
+
+				BT_DBG("SCO header: dlen %d", sh->dlen);
+
+				ibs_check_data_len(hu, ibs, sh->dlen);
+				continue;
+			}
+		}
+
+		/* HCI_IBS_W4_PACKET_TYPE */
+		switch (*ptr) {
+		case HCI_EVENT_PKT:
+			BT_DBG("Event packet");
+			ibs->rx_state = HCI_IBS_W4_EVENT_HDR;
+			ibs->rx_count = HCI_EVENT_HDR_SIZE;
+			type = HCI_EVENT_PKT;
+			break;
+
+		case HCI_ACLDATA_PKT:
+			BT_DBG("ACL packet");
+			ibs->rx_state = HCI_IBS_W4_ACL_HDR;
+			ibs->rx_count = HCI_ACL_HDR_SIZE;
+			type = HCI_ACLDATA_PKT;
+			break;
+
+		case HCI_SCODATA_PKT:
+			BT_DBG("SCO packet");
+			ibs->rx_state = HCI_IBS_W4_SCO_HDR;
+			ibs->rx_count = HCI_SCO_HDR_SIZE;
+			type = HCI_SCODATA_PKT;
+			break;
+
+		/* HCI_IBS signals */
+		case HCI_IBS_SLEEP_IND:
+			BT_DBG("HCI_IBS_SLEEP_IND packet");
+			ibs_device_want_to_sleep(hu);
+			ptr++; count--;
+			continue;
+
+		case HCI_IBS_WAKE_IND:
+			BT_DBG("HCI_IBS_WAKE_IND packet");
+			ibs_device_want_to_wakeup(hu);
+			ptr++; count--;
+			continue;
+
+		case HCI_IBS_WAKE_ACK:
+			BT_DBG("HCI_IBS_WAKE_ACK packet");
+			ibs_device_woke_up(hu);
+			ptr++; count--;
+			continue;
+
+		default:
+			BT_ERR("Unknown HCI packet type %2.2x", (__u8)*ptr);
+			hu->hdev->stat.err_rx++;
+			ptr++; count--;
+			continue;
+		};
+
+		ptr++; count--;
+
+		/* Allocate packet */
+		ibs->rx_skb = bt_skb_alloc(HCI_MAX_FRAME_SIZE, GFP_ATOMIC);
+		if (!ibs->rx_skb) {
+			BT_ERR("Can't allocate mem for new packet");
+			ibs->rx_state = HCI_IBS_W4_PACKET_TYPE;
+			ibs->rx_count = 0;
+			return 0;
+		}
+
+		ibs->rx_skb->dev = (void *) hu->hdev;
+		bt_cb(ibs->rx_skb)->pkt_type = type;
+	}
+
+	return count;
+}
+
+static struct sk_buff *ibs_dequeue(struct hci_uart *hu)
+{
+	struct ibs_struct *ibs = hu->priv;
+	return skb_dequeue(&ibs->txq);
+}
+
+static struct hci_uart_proto ibs_p = {
+	.id		= HCI_UART_IBS,
+	.open		= ibs_open,
+	.close		= ibs_close,
+	.recv		= ibs_recv,
+	.enqueue	= ibs_enqueue,
+	.dequeue	= ibs_dequeue,
+	.flush		= ibs_flush,
+};
+
+int ibs_init(void)
+{
+	int err = hci_uart_register_proto(&ibs_p);
+
+	if (!err)
+		BT_INFO("HCI_IBS protocol initialized");
+	else
+		BT_ERR("HCI_IBS protocol registration failed");
+
+	return err;
+}
+
+int ibs_deinit(void)
+{
+	return hci_uart_unregister_proto(&ibs_p);
+}
+
+module_param(wake_retrans, ulong, 0644);
+MODULE_PARM_DESC(wake_retrans, "Delay (1/HZ) to retransmit WAKE_IND");
+
+module_param(tx_idle_delay, ulong, 0644);
+MODULE_PARM_DESC(tx_idle_delay, "Delay (1/HZ) since last tx for SLEEP_IND");
+
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_intel.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_intel.c
@@ -1230,7 +1230,11 @@
 
 int __init intel_init(void)
 {
-	platform_driver_register(&intel_driver);
+	int err;
+
+	err = platform_driver_register(&intel_driver);
+	if (err)
+		return err;
 
 	return hci_uart_register_proto(&intel_proto);
 }
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_ldisc.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_ldisc.c
@@ -127,10 +127,9 @@
 	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
 		goto no_schedule;
 
-	if (test_and_set_bit(HCI_UART_SENDING, &hu->tx_state)) {
-		set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
+	set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
+	if (test_and_set_bit(HCI_UART_SENDING, &hu->tx_state))
 		goto no_schedule;
-	}
 
 	BT_DBG("");
 
@@ -174,10 +173,10 @@
 		kfree_skb(skb);
 	}
 
+	clear_bit(HCI_UART_SENDING, &hu->tx_state);
 	if (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state))
 		goto restart;
 
-	clear_bit(HCI_UART_SENDING, &hu->tx_state);
 	wake_up_bit(&hu->tx_state, HCI_UART_SENDING);
 }
 
@@ -480,6 +479,9 @@
 
 	BT_DBG("tty %p", tty);
 
+	if (!capable(CAP_NET_ADMIN))
+		return -EPERM;
+
 	/* Error if the tty has no write op instead of leaving an exploitable
 	 * hole
 	 */
@@ -538,6 +540,7 @@
 		clear_bit(HCI_UART_PROTO_READY, &hu->flags);
 		percpu_up_write(&hu->proto_lock);
 
+		cancel_work_sync(&hu->init_ready);
 		cancel_work_sync(&hu->write_work);
 
 		if (hdev) {
@@ -765,7 +768,8 @@
 		break;
 
 	case HCIUARTGETPROTO:
-		if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
+		if (test_bit(HCI_UART_PROTO_SET, &hu->flags) &&
+		    test_bit(HCI_UART_PROTO_READY, &hu->flags))
 			err = hu->proto->id;
 		else
 			err = -EUNATCH;
@@ -877,6 +881,9 @@
 #ifdef CONFIG_BT_HCIUART_MRVL
 	mrvl_init();
 #endif
+#ifdef CONFIG_BT_HCIUART_IBS
+	ibs_init();
+#endif
 
 	return 0;
 }
@@ -915,6 +922,9 @@
 #ifdef CONFIG_BT_HCIUART_MRVL
 	mrvl_deinit();
 #endif
+#ifdef CONFIG_BT_HCIUART_IBS
+	ibs_deinit();
+#endif
 
 	/* Release tty registration of line discipline */
 	err = tty_unregister_ldisc(N_HCI);
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_ll.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_ll.c
@@ -345,7 +345,7 @@
 	default:
 		BT_ERR("illegal hcill state: %ld (losing packet)",
 		       ll->hcill_state);
-		kfree_skb(skb);
+		dev_kfree_skb_irq(skb);
 		break;
 	}
 
@@ -621,13 +621,6 @@
 
 	serdev_device_set_flow_control(serdev, true);
 
-	if (hu->oper_speed)
-		speed = hu->oper_speed;
-	else if (hu->proto->oper_speed)
-		speed = hu->proto->oper_speed;
-	else
-		speed = 0;
-
 	do {
 		/* Reset the Bluetooth device */
 		gpiod_set_value_cansleep(lldev->enable_gpio, 0);
@@ -639,20 +632,6 @@
 			return err;
 		}
 
-		if (speed) {
-			__le32 speed_le = cpu_to_le32(speed);
-			struct sk_buff *skb;
-
-			skb = __hci_cmd_sync(hu->hdev,
-					     HCI_VS_UPDATE_UART_HCI_BAUDRATE,
-					     sizeof(speed_le), &speed_le,
-					     HCI_INIT_TIMEOUT);
-			if (!IS_ERR(skb)) {
-				kfree_skb(skb);
-				serdev_device_set_baudrate(serdev, speed);
-			}
-		}
-
 		err = download_firmware(lldev);
 		if (!err)
 			break;
@@ -677,7 +656,25 @@
 	}
 
 	/* Operational speed if any */
+	if (hu->oper_speed)
+		speed = hu->oper_speed;
+	else if (hu->proto->oper_speed)
+		speed = hu->proto->oper_speed;
+	else
+		speed = 0;
 
+	if (speed) {
+		__le32 speed_le = cpu_to_le32(speed);
+		struct sk_buff *skb;
+
+		skb = __hci_cmd_sync(hu->hdev, HCI_VS_UPDATE_UART_HCI_BAUDRATE,
+				     sizeof(speed_le), &speed_le,
+				     HCI_INIT_TIMEOUT);
+		if (!IS_ERR(skb)) {
+			kfree_skb(skb);
+			serdev_device_set_baudrate(serdev, speed);
+		}
+	}
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_nokia.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_nokia.c
@@ -734,7 +734,11 @@
 		return err;
 	}
 
-	clk_prepare_enable(sysclk);
+	err = clk_prepare_enable(sysclk);
+	if (err) {
+		dev_err(dev, "could not enable sysclk: %d", err);
+		return err;
+	}
 	btdev->sysclk_speed = clk_get_rate(sysclk);
 	clk_disable_unprepare(sysclk);
 
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_qca.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_qca.c
@@ -816,7 +816,7 @@
 	default:
 		BT_ERR("Illegal tx state: %d (losing packet)",
 		       qca->tx_ibs_state);
-		kfree_skb(skb);
+		dev_kfree_skb_irq(skb);
 		break;
 	}
 
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_serdev.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_serdev.c
@@ -85,9 +85,9 @@
 			hci_uart_tx_complete(hu, hci_skb_pkt_type(skb));
 			kfree_skb(skb);
 		}
-	} while (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state));
 
-	clear_bit(HCI_UART_SENDING, &hu->tx_state);
+		clear_bit(HCI_UART_SENDING, &hu->tx_state);
+	} while (test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state));
 }
 
 /* ------- Interface to HCI layer ------ */
@@ -279,6 +279,8 @@
 	if (err)
 		return err;
 
+	percpu_init_rwsem(&hu->proto_lock);
+
 	err = p->open(hu);
 	if (err)
 		goto err_open;
@@ -301,7 +303,6 @@
 
 	INIT_WORK(&hu->init_ready, hci_uart_init_work);
 	INIT_WORK(&hu->write_work, hci_uart_write_work);
-	percpu_init_rwsem(&hu->proto_lock);
 
 	/* Only when vendor specific setup callback is provided, consider
 	 * the manufacturer information valid. This avoids filling in the
@@ -357,7 +358,10 @@
 	struct hci_dev *hdev = hu->hdev;
 
 	clear_bit(HCI_UART_PROTO_READY, &hu->flags);
-	hci_unregister_dev(hdev);
+
+	cancel_work_sync(&hu->init_ready);
+	if (test_bit(HCI_UART_REGISTERED, &hu->flags))
+		hci_unregister_dev(hdev);
 	hci_free_dev(hdev);
 
 	cancel_work_sync(&hu->write_work);
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_uart.h
+++ linux-ein-5.4.0/drivers/bluetooth/hci_uart.h
@@ -20,7 +20,7 @@
 #define HCIUARTGETFLAGS		_IOR('U', 204, int)
 
 /* UART protocols */
-#define HCI_UART_MAX_PROTO	12
+#define HCI_UART_MAX_PROTO	13
 
 #define HCI_UART_H4	0
 #define HCI_UART_BCSP	1
@@ -34,6 +34,7 @@
 #define HCI_UART_AG6XX	9
 #define HCI_UART_NOKIA	10
 #define HCI_UART_MRVL	11
+#define HCI_UART_IBS	12
 
 #define HCI_UART_RAW_DEVICE	0
 #define HCI_UART_RESET_ON_INIT	1
@@ -192,3 +193,8 @@
 int mrvl_init(void);
 int mrvl_deinit(void);
 #endif
+
+#ifdef CONFIG_BT_HCIUART_IBS
+int ibs_init(void);
+int ibs_deinit(void);
+#endif
--- linux-ein-5.4.0.orig/drivers/bluetooth/hci_vhci.c
+++ linux-ein-5.4.0/drivers/bluetooth/hci_vhci.c
@@ -67,7 +67,10 @@
 	struct vhci_data *data = hci_get_drvdata(hdev);
 
 	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+
+	mutex_lock(&data->open_mutex);
 	skb_queue_tail(&data->readq, skb);
+	mutex_unlock(&data->open_mutex);
 
 	wake_up_interruptible(&data->read_wait);
 	return 0;
--- linux-ein-5.4.0.orig/drivers/bus/Kconfig
+++ linux-ein-5.4.0/drivers/bus/Kconfig
@@ -138,7 +138,6 @@
 	tristate "Tegra ACONNECT Bus Driver"
 	depends on ARCH_TEGRA_210_SOC
 	depends on OF && PM
-	select PM_CLK
 	help
 	  Driver for the Tegra ACONNECT bus which is used to interface with
 	  the devices inside the Audio Processing Engine (APE) for Tegra210.
--- linux-ein-5.4.0.orig/drivers/bus/fsl-mc/fsl-mc-allocator.c
+++ linux-ein-5.4.0/drivers/bus/fsl-mc/fsl-mc-allocator.c
@@ -292,8 +292,10 @@
 		goto error;
 
 	mc_adev = resource->data;
-	if (!mc_adev)
+	if (!mc_adev) {
+		error = -EINVAL;
 		goto error;
+	}
 
 	mc_adev->consumer_link = device_link_add(&mc_dev->dev,
 						 &mc_adev->dev,
--- linux-ein-5.4.0.orig/drivers/bus/fsl-mc/mc-io.c
+++ linux-ein-5.4.0/drivers/bus/fsl-mc/mc-io.c
@@ -129,7 +129,12 @@
  */
 void fsl_destroy_mc_io(struct fsl_mc_io *mc_io)
 {
-	struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev;
+	struct fsl_mc_device *dpmcp_dev;
+
+	if (!mc_io)
+		return;
+
+	dpmcp_dev = mc_io->dpmcp_dev;
 
 	if (dpmcp_dev)
 		fsl_mc_io_unset_dpmcp(mc_io);
--- linux-ein-5.4.0.orig/drivers/bus/hisi_lpc.c
+++ linux-ein-5.4.0/drivers/bus/hisi_lpc.c
@@ -359,6 +359,26 @@
 }
 
 /*
+ * Released firmware describes the IO port max address as 0x3fff, which is
+ * the max host bus address. Fixup to a proper range. This will probably
+ * never be fixed in firmware.
+ */
+static void hisi_lpc_acpi_fixup_child_resource(struct device *hostdev,
+					       struct resource *r)
+{
+	if (r->end != 0x3fff)
+		return;
+
+	if (r->start == 0xe4)
+		r->end = 0xe4 + 0x04 - 1;
+	else if (r->start == 0x2f8)
+		r->end = 0x2f8 + 0x08 - 1;
+	else
+		dev_warn(hostdev, "unrecognised resource %pR to fixup, ignoring\n",
+			 r);
+}
+
+/*
  * hisi_lpc_acpi_set_io_res - set the resources for a child
  * @child: the device node to be updated the I/O resource
  * @hostdev: the device node associated with host controller
@@ -419,8 +439,11 @@
 		return -ENOMEM;
 	}
 	count = 0;
-	list_for_each_entry(rentry, &resource_list, node)
-		resources[count++] = *rentry->res;
+	list_for_each_entry(rentry, &resource_list, node) {
+		resources[count] = *rentry->res;
+		hisi_lpc_acpi_fixup_child_resource(hostdev, &resources[count]);
+		count++;
+	}
 
 	acpi_dev_free_resource_list(&resource_list);
 
@@ -481,13 +504,13 @@
 {
 	struct acpi_device *adev = ACPI_COMPANION(hostdev);
 	struct acpi_device *child;
+	struct platform_device *pdev;
 	int ret;
 
 	/* Only consider the children of the host */
 	list_for_each_entry(child, &adev->children, node) {
 		const char *hid = acpi_device_hid(child);
 		const struct hisi_lpc_acpi_cell *cell;
-		struct platform_device *pdev;
 		const struct resource *res;
 		bool found = false;
 		int num_res;
@@ -549,22 +572,24 @@
 
 		ret = platform_device_add_resources(pdev, res, num_res);
 		if (ret)
-			goto fail;
+			goto fail_put_device;
 
 		ret = platform_device_add_data(pdev, cell->pdata,
 					       cell->pdata_size);
 		if (ret)
-			goto fail;
+			goto fail_put_device;
 
 		ret = platform_device_add(pdev);
 		if (ret)
-			goto fail;
+			goto fail_put_device;
 
 		acpi_device_set_enumerated(child);
 	}
 
 	return 0;
 
+fail_put_device:
+	platform_device_put(pdev);
 fail:
 	hisi_lpc_acpi_remove(hostdev);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/bus/imx-weim.c
+++ linux-ein-5.4.0/drivers/bus/imx-weim.c
@@ -192,8 +192,8 @@
 	const struct of_device_id *of_id = of_match_device(weim_id_table,
 							   &pdev->dev);
 	const struct imx_weim_devtype *devtype = of_id->data;
+	int ret = 0, have_child = 0;
 	struct device_node *child;
-	int ret, have_child = 0;
 	struct cs_timing_state ts = {};
 	u32 reg;
 
--- linux-ein-5.4.0.orig/drivers/bus/mips_cdmm.c
+++ linux-ein-5.4.0/drivers/bus/mips_cdmm.c
@@ -544,10 +544,8 @@
 		dev_set_name(&dev->dev, "cdmm%u-%u", cpu, id);
 		++id;
 		ret = device_register(&dev->dev);
-		if (ret) {
+		if (ret)
 			put_device(&dev->dev);
-			kfree(dev);
-		}
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/bus/moxtet.c
+++ linux-ein-5.4.0/drivers/bus/moxtet.c
@@ -466,7 +466,7 @@
 {
 	struct moxtet *moxtet = file->private_data;
 	u8 bin[TURRIS_MOX_MAX_MODULES];
-	u8 hex[sizeof(buf) * 2 + 1];
+	u8 hex[sizeof(bin) * 2 + 1];
 	int ret, n;
 
 	ret = moxtet_spi_read(moxtet, bin);
--- linux-ein-5.4.0.orig/drivers/bus/omap_l3_noc.c
+++ linux-ein-5.4.0/drivers/bus/omap_l3_noc.c
@@ -285,7 +285,7 @@
 	 */
 	l3->debug_irq = platform_get_irq(pdev, 0);
 	ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
-			       0x0, "l3-dbg-irq", l3);
+			       IRQF_NO_THREAD, "l3-dbg-irq", l3);
 	if (ret) {
 		dev_err(l3->dev, "request_irq failed for %d\n",
 			l3->debug_irq);
@@ -294,7 +294,7 @@
 
 	l3->app_irq = platform_get_irq(pdev, 1);
 	ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
-			       0x0, "l3-app-irq", l3);
+			       IRQF_NO_THREAD, "l3-app-irq", l3);
 	if (ret)
 		dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
 
--- linux-ein-5.4.0.orig/drivers/bus/qcom-ebi2.c
+++ linux-ein-5.4.0/drivers/bus/qcom-ebi2.c
@@ -353,8 +353,10 @@
 
 		/* Figure out the chipselect */
 		ret = of_property_read_u32(child, "reg", &csindex);
-		if (ret)
+		if (ret) {
+			of_node_put(child);
 			return ret;
+		}
 
 		if (csindex > 5) {
 			dev_err(dev,
--- linux-ein-5.4.0.orig/drivers/bus/sunxi-rsb.c
+++ linux-ein-5.4.0/drivers/bus/sunxi-rsb.c
@@ -224,6 +224,8 @@
 
 	dev_dbg(&rdev->dev, "device %s registered\n", dev_name(&rdev->dev));
 
+	return rdev;
+
 err_device_add:
 	put_device(&rdev->dev);
 
@@ -266,6 +268,9 @@
 /* common code that starts a transfer */
 static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
 {
+	u32 int_mask, status;
+	bool timeout;
+
 	if (readl(rsb->regs + RSB_CTRL) & RSB_CTRL_START_TRANS) {
 		dev_dbg(rsb->dev, "RSB transfer still in progress\n");
 		return -EBUSY;
@@ -273,13 +278,23 @@
 
 	reinit_completion(&rsb->complete);
 
-	writel(RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER,
-	       rsb->regs + RSB_INTE);
+	int_mask = RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER;
+	writel(int_mask, rsb->regs + RSB_INTE);
 	writel(RSB_CTRL_START_TRANS | RSB_CTRL_GLOBAL_INT_ENB,
 	       rsb->regs + RSB_CTRL);
 
-	if (!wait_for_completion_io_timeout(&rsb->complete,
-					    msecs_to_jiffies(100))) {
+	if (irqs_disabled()) {
+		timeout = readl_poll_timeout_atomic(rsb->regs + RSB_INTS,
+						    status, (status & int_mask),
+						    10, 100000);
+		writel(status, rsb->regs + RSB_INTS);
+	} else {
+		timeout = !wait_for_completion_io_timeout(&rsb->complete,
+							  msecs_to_jiffies(100));
+		status = rsb->status;
+	}
+
+	if (timeout) {
 		dev_dbg(rsb->dev, "RSB timeout\n");
 
 		/* abort the transfer */
@@ -291,18 +306,18 @@
 		return -ETIMEDOUT;
 	}
 
-	if (rsb->status & RSB_INTS_LOAD_BSY) {
+	if (status & RSB_INTS_LOAD_BSY) {
 		dev_dbg(rsb->dev, "RSB busy\n");
 		return -EBUSY;
 	}
 
-	if (rsb->status & RSB_INTS_TRANS_ERR) {
-		if (rsb->status & RSB_INTS_TRANS_ERR_ACK) {
+	if (status & RSB_INTS_TRANS_ERR) {
+		if (status & RSB_INTS_TRANS_ERR_ACK) {
 			dev_dbg(rsb->dev, "RSB slave nack\n");
 			return -EINVAL;
 		}
 
-		if (rsb->status & RSB_INTS_TRANS_ERR_DATA) {
+		if (status & RSB_INTS_TRANS_ERR_DATA) {
 			dev_dbg(rsb->dev, "RSB transfer data error\n");
 			return -EIO;
 		}
@@ -345,7 +360,7 @@
 	if (ret)
 		goto unlock;
 
-	*buf = readl(rsb->regs + RSB_DATA);
+	*buf = readl(rsb->regs + RSB_DATA) & GENMASK(len * 8 - 1, 0);
 
 unlock:
 	mutex_unlock(&rsb->lock);
@@ -766,7 +781,13 @@
 		return ret;
 	}
 
-	return platform_driver_register(&sunxi_rsb_driver);
+	ret = platform_driver_register(&sunxi_rsb_driver);
+	if (ret) {
+		bus_unregister(&sunxi_rsb_bus);
+		return ret;
+	}
+
+	return 0;
 }
 module_init(sunxi_rsb_init);
 
--- linux-ein-5.4.0.orig/drivers/bus/ti-sysc.c
+++ linux-ein-5.4.0/drivers/bus/ti-sysc.c
@@ -70,11 +70,13 @@
  * @child_needs_resume: runtime resume needed for child on resume from suspend
  * @disable_on_idle: status flag used for disabling modules with resets
  * @idle_work: work structure used to perform delayed idle on a module
- * @clk_enable_quirk: module specific clock enable quirk
- * @clk_disable_quirk: module specific clock disable quirk
+ * @pre_reset_quirk: module specific pre-reset quirk
+ * @post_reset_quirk: module specific post-reset quirk
  * @reset_done_quirk: module specific reset done quirk
  * @module_enable_quirk: module specific enable quirk
  * @module_disable_quirk: module specific disable quirk
+ * @module_unlock_quirk: module specific sysconfig unlock quirk
+ * @module_lock_quirk: module specific sysconfig lock quirk
  */
 struct sysc {
 	struct device *dev;
@@ -97,11 +99,13 @@
 	unsigned int needs_resume:1;
 	unsigned int child_needs_resume:1;
 	struct delayed_work idle_work;
-	void (*clk_enable_quirk)(struct sysc *sysc);
-	void (*clk_disable_quirk)(struct sysc *sysc);
+	void (*pre_reset_quirk)(struct sysc *sysc);
+	void (*post_reset_quirk)(struct sysc *sysc);
 	void (*reset_done_quirk)(struct sysc *sysc);
 	void (*module_enable_quirk)(struct sysc *sysc);
 	void (*module_disable_quirk)(struct sysc *sysc);
+	void (*module_unlock_quirk)(struct sysc *sysc);
+	void (*module_lock_quirk)(struct sysc *sysc);
 };
 
 static void sysc_parse_dts_quirks(struct sysc *ddata, struct device_node *np,
@@ -182,6 +186,37 @@
 	return sysc_read(ddata, offset);
 }
 
+/* Poll on reset status */
+static int sysc_wait_softreset(struct sysc *ddata)
+{
+	u32 sysc_mask, syss_done, rstval;
+	int syss_offset, error = 0;
+
+	if (ddata->cap->regbits->srst_shift < 0)
+		return 0;
+
+	syss_offset = ddata->offsets[SYSC_SYSSTATUS];
+	sysc_mask = BIT(ddata->cap->regbits->srst_shift);
+
+	if (ddata->cfg.quirks & SYSS_QUIRK_RESETDONE_INVERTED)
+		syss_done = 0;
+	else
+		syss_done = ddata->cfg.syss_mask;
+
+	if (syss_offset >= 0) {
+		error = readx_poll_timeout_atomic(sysc_read_sysstatus, ddata,
+				rstval, (rstval & ddata->cfg.syss_mask) ==
+				syss_done, 100, MAX_MODULE_SOFTRESET_WAIT);
+
+	} else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
+		error = readx_poll_timeout_atomic(sysc_read_sysconfig, ddata,
+				rstval, !(rstval & sysc_mask),
+				100, MAX_MODULE_SOFTRESET_WAIT);
+	}
+
+	return error;
+}
+
 static int sysc_add_named_clock_from_child(struct sysc *ddata,
 					   const char *name,
 					   const char *optfck_name)
@@ -343,6 +378,12 @@
 		return -EINVAL;
 	}
 
+	/* Always add a slot for main clocks fck and ick even if unused */
+	if (!nr_fck)
+		ddata->nr_clocks++;
+	if (!nr_ick)
+		ddata->nr_clocks++;
+
 	ddata->clocks = devm_kcalloc(ddata->dev,
 				     ddata->nr_clocks, sizeof(*ddata->clocks),
 				     GFP_KERNEL);
@@ -421,7 +462,7 @@
 	struct clk *clock;
 	int i, error;
 
-	if (!ddata->clocks)
+	if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
 		return 0;
 
 	for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
@@ -455,7 +496,7 @@
 	struct clk *clock;
 	int i;
 
-	if (!ddata->clocks)
+	if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
 		return;
 
 	for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
@@ -473,7 +514,7 @@
 {
 	struct ti_sysc_platform_data *pdata;
 
-	if (ddata->legacy_mode)
+	if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
 		return;
 
 	pdata = dev_get_platdata(ddata->dev);
@@ -485,7 +526,7 @@
 {
 	struct ti_sysc_platform_data *pdata;
 
-	if (ddata->legacy_mode)
+	if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
 		return;
 
 	pdata = dev_get_platdata(ddata->dev);
@@ -561,6 +602,51 @@
 	return 0;
 }
 
+/* Interconnect instances to probe before l4_per instances */
+static struct resource early_bus_ranges[] = {
+	/* am3/4 l4_wkup */
+	{ .start = 0x44c00000, .end = 0x44c00000 + 0x300000, },
+	/* omap4/5 and dra7 l4_cfg */
+	{ .start = 0x4a000000, .end = 0x4a000000 + 0x300000, },
+	/* omap4 l4_wkup */
+	{ .start = 0x4a300000, .end = 0x4a300000 + 0x30000,  },
+	/* omap5 and dra7 l4_wkup without dra7 dcan segment */
+	{ .start = 0x4ae00000, .end = 0x4ae00000 + 0x30000,  },
+};
+
+static atomic_t sysc_defer = ATOMIC_INIT(10);
+
+/**
+ * sysc_defer_non_critical - defer non_critical interconnect probing
+ * @ddata: device driver data
+ *
+ * We want to probe l4_cfg and l4_wkup interconnect instances before any
+ * l4_per instances as l4_per instances depend on resources on l4_cfg and
+ * l4_wkup interconnects.
+ */
+static int sysc_defer_non_critical(struct sysc *ddata)
+{
+	struct resource *res;
+	int i;
+
+	if (!atomic_read(&sysc_defer))
+		return 0;
+
+	for (i = 0; i < ARRAY_SIZE(early_bus_ranges); i++) {
+		res = &early_bus_ranges[i];
+		if (ddata->module_pa >= res->start &&
+		    ddata->module_pa <= res->end) {
+			atomic_set(&sysc_defer, 0);
+
+			return 0;
+		}
+	}
+
+	atomic_dec_if_positive(&sysc_defer);
+
+	return -EPROBE_DEFER;
+}
+
 static struct device_node *stdout_path;
 
 static void sysc_init_stdout_path(struct sysc *ddata)
@@ -785,6 +871,10 @@
 	if (error)
 		return error;
 
+	error = sysc_defer_non_critical(ddata);
+	if (error)
+		return error;
+
 	sysc_check_children(ddata);
 
 	error = sysc_parse_registers(ddata);
@@ -857,6 +947,22 @@
 		buf);
 }
 
+/**
+ * sysc_write_sysconfig - handle sysconfig quirks for register write
+ * @ddata: device driver data
+ * @value: register value
+ */
+static void sysc_write_sysconfig(struct sysc *ddata, u32 value)
+{
+	if (ddata->module_unlock_quirk)
+		ddata->module_unlock_quirk(ddata);
+
+	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], value);
+
+	if (ddata->module_lock_quirk)
+		ddata->module_lock_quirk(ddata);
+}
+
 #define SYSC_IDLE_MASK	(SYSC_NR_IDLEMODES - 1)
 #define SYSC_CLOCACT_ICK	2
 
@@ -866,18 +972,47 @@
 	struct sysc *ddata;
 	const struct sysc_regbits *regbits;
 	u32 reg, idlemodes, best_mode;
+	int error;
 
 	ddata = dev_get_drvdata(dev);
+
+	/*
+	 * Some modules like DSS reset automatically on idle. Enable optional
+	 * reset clocks and wait for OCP softreset to complete.
+	 */
+	if (ddata->cfg.quirks & SYSC_QUIRK_OPT_CLKS_IN_RESET) {
+		error = sysc_enable_opt_clocks(ddata);
+		if (error) {
+			dev_err(ddata->dev,
+				"Optional clocks failed for enable: %i\n",
+				error);
+			return error;
+		}
+	}
+	error = sysc_wait_softreset(ddata);
+	if (error)
+		dev_warn(ddata->dev, "OCP softreset timed out\n");
+	if (ddata->cfg.quirks & SYSC_QUIRK_OPT_CLKS_IN_RESET)
+		sysc_disable_opt_clocks(ddata);
+
+	/*
+	 * Some subsystem private interconnects, like DSS top level module,
+	 * need only the automatic OCP softreset handling with no sysconfig
+	 * register bits to configure.
+	 */
 	if (ddata->offsets[SYSC_SYSCONFIG] == -ENODEV)
 		return 0;
 
 	regbits = ddata->cap->regbits;
 	reg = sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
 
-	/* Set CLOCKACTIVITY, we only use it for ick */
+	/*
+	 * Set CLOCKACTIVITY, we only use it for ick. And we only configure it
+	 * based on the SYSC_QUIRK_USE_CLOCKACT flag, not based on the hardware
+	 * capabilities. See the old HWMOD_SET_DEFAULT_CLOCKACT flag.
+	 */
 	if (regbits->clkact_shift >= 0 &&
-	    (ddata->cfg.quirks & SYSC_QUIRK_USE_CLOCKACT ||
-	     ddata->cfg.sysc_val & BIT(regbits->clkact_shift)))
+	    (ddata->cfg.quirks & SYSC_QUIRK_USE_CLOCKACT))
 		reg |= SYSC_CLOCACT_ICK << regbits->clkact_shift;
 
 	/* Set SIDLE mode */
@@ -888,6 +1023,11 @@
 	if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_SIDLE |
 				 SYSC_QUIRK_SWSUP_SIDLE_ACT)) {
 		best_mode = SYSC_IDLE_NO;
+
+		/* Clear WAKEUP */
+		if (regbits->enwkup_shift >= 0 &&
+		    ddata->cfg.sysc_val & BIT(regbits->enwkup_shift))
+			reg &= ~BIT(regbits->enwkup_shift);
 	} else {
 		best_mode = fls(ddata->cfg.sidlemodes) - 1;
 		if (best_mode > SYSC_IDLE_MASK) {
@@ -903,7 +1043,7 @@
 
 	reg &= ~(SYSC_IDLE_MASK << regbits->sidle_shift);
 	reg |= best_mode << regbits->sidle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
 
 set_midle:
 	/* Set MIDLE mode */
@@ -917,18 +1057,24 @@
 		return -EINVAL;
 	}
 
+	if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_MSTANDBY)
+		best_mode = SYSC_IDLE_NO;
+
 	reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
 	reg |= best_mode << regbits->midle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
 
 set_autoidle:
 	/* Autoidle bit must enabled separately if available */
 	if (regbits->autoidle_shift >= 0 &&
 	    ddata->cfg.sysc_val & BIT(regbits->autoidle_shift)) {
 		reg |= 1 << regbits->autoidle_shift;
-		sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+		sysc_write_sysconfig(ddata, reg);
 	}
 
+	/* Flush posted write */
+	sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
+
 	if (ddata->module_enable_quirk)
 		ddata->module_enable_quirk(ddata);
 
@@ -978,9 +1124,13 @@
 		return ret;
 	}
 
+	if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_MSTANDBY) ||
+	    ddata->cfg.quirks & (SYSC_QUIRK_FORCE_MSTANDBY))
+		best_mode = SYSC_IDLE_FORCE;
+
 	reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
 	reg |= best_mode << regbits->midle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
 
 set_sidle:
 	/* Set SIDLE mode */
@@ -998,12 +1148,22 @@
 		}
 	}
 
+	if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_SIDLE_ACT) {
+		/* Set WAKEUP */
+		if (regbits->enwkup_shift >= 0 &&
+		    ddata->cfg.sysc_val & BIT(regbits->enwkup_shift))
+			reg |= BIT(regbits->enwkup_shift);
+	}
+
 	reg &= ~(SYSC_IDLE_MASK << regbits->sidle_shift);
 	reg |= best_mode << regbits->sidle_shift;
 	if (regbits->autoidle_shift >= 0 &&
 	    ddata->cfg.sysc_val & BIT(regbits->autoidle_shift))
 		reg |= 1 << regbits->autoidle_shift;
-	sysc_write(ddata, ddata->offsets[SYSC_SYSCONFIG], reg);
+	sysc_write_sysconfig(ddata, reg);
+
+	/* Flush posted write */
+	sysc_read(ddata, ddata->offsets[SYSC_SYSCONFIG]);
 
 	return 0;
 }
@@ -1149,7 +1309,8 @@
 
 	ddata = dev_get_drvdata(dev);
 
-	if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
+	if (ddata->cfg.quirks &
+	    (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
 		return 0;
 
 	return pm_runtime_force_suspend(dev);
@@ -1161,7 +1322,8 @@
 
 	ddata = dev_get_drvdata(dev);
 
-	if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
+	if (ddata->cfg.quirks &
+	    (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
 		return 0;
 
 	return pm_runtime_force_resume(dev);
@@ -1209,33 +1371,54 @@
 		   SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("sham", 0, 0x100, 0x110, 0x114, 0x40000c03, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
-	SYSC_QUIRK("smartreflex", 0, -1, 0x24, -1, 0x00000000, 0xffffffff,
+	SYSC_QUIRK("smartreflex", 0, -ENODEV, 0x24, -ENODEV, 0x00000000, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
-	SYSC_QUIRK("smartreflex", 0, -1, 0x38, -1, 0x00000000, 0xffffffff,
+	SYSC_QUIRK("smartreflex", 0, -ENODEV, 0x38, -ENODEV, 0x00000000, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("timer", 0, 0, 0x10, 0x14, 0x00000015, 0xffffffff,
 		   0),
 	/* Some timers on omap4 and later */
-	SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x50002100, 0xffffffff,
+	SYSC_QUIRK("timer", 0, 0, 0x10, -ENODEV, 0x50002100, 0xffffffff,
 		   0),
-	SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x4fff1301, 0xffff00ff,
+	SYSC_QUIRK("timer", 0, 0, 0x10, -ENODEV, 0x4fff1301, 0xffff00ff,
 		   0),
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000046, 0xffffffff,
-		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
+		   SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff,
-		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
+		   SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
 	/* Uarts on omap4 and later */
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x50411e03, 0xffff00ff,
 		   SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff,
 		   SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
+	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
 
 	/* Quirks that need to be set based on the module address */
-	SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -1, 0x50000800, 0xffffffff,
+	SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff,
 		   SYSC_QUIRK_EXT_OPT_CLOCK | SYSC_QUIRK_NO_RESET_ON_INIT |
 		   SYSC_QUIRK_SWSUP_SIDLE),
 
 	/* Quirks that need to be set based on detected module */
+	SYSC_QUIRK("aess", 0, 0, 0x10, -ENODEV, 0x40000000, 0xffffffff,
+		   SYSC_MODULE_QUIRK_AESS),
+	/* Errata i893 handling for dra7 dcan1 and 2 */
+	SYSC_QUIRK("dcan", 0x4ae3c000, 0x20, -ENODEV, -ENODEV, 0xa3170504, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dcan", 0x48480000, 0x20, -ENODEV, -ENODEV, 0xa3170504, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dss", 0x4832a000, 0, 0x10, 0x14, 0x00000020, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_IN_RESET),
+	SYSC_QUIRK("dss", 0x58000000, 0, -ENODEV, 0x14, 0x00000040, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_IN_RESET),
+	SYSC_QUIRK("dss", 0x58000000, 0, -ENODEV, 0x14, 0x00000061, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_IN_RESET),
+	SYSC_QUIRK("dwc3", 0x48880000, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dwc3", 0x488c0000, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50030200, 0xffffffff,
+		   SYSC_QUIRK_OPT_CLKS_NEEDED),
 	SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x00000006, 0xffffffff,
 		   SYSC_MODULE_QUIRK_HDQ1W),
 	SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x0000000a, 0xffffffff,
@@ -1248,9 +1431,23 @@
 		   SYSC_MODULE_QUIRK_I2C),
 	SYSC_QUIRK("i2c", 0, 0, 0x10, 0x90, 0x5040000a, 0xfffff0f0,
 		   SYSC_MODULE_QUIRK_I2C),
-	SYSC_QUIRK("gpu", 0x50000000, 0x14, -1, -1, 0x00010201, 0xffffffff, 0),
-	SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff,
+	SYSC_QUIRK("gpu", 0x50000000, 0x14, -ENODEV, -ENODEV, 0x00010201, 0xffffffff, 0),
+	SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -ENODEV, 0x40000000 , 0xffffffff,
 		   SYSC_MODULE_QUIRK_SGX),
+	SYSC_QUIRK("rtc", 0, 0x74, 0x78, -ENODEV, 0x4eb01908, 0xffff00f0,
+		   SYSC_MODULE_QUIRK_RTC_UNLOCK),
+	SYSC_QUIRK("tptc", 0, 0, 0x10, -ENODEV, 0x40006c00, 0xffffefff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("tptc", 0, 0, -ENODEV, -ENODEV, 0x40007c00, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -ENODEV, 0x50700101, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050,
+		   0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("usb_otg_hs", 0, 0, 0x10, -ENODEV, 0x4ea2080d, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
 	SYSC_QUIRK("wdt", 0, 0, 0x10, 0x14, 0x502a0500, 0xfffff0f0,
 		   SYSC_MODULE_QUIRK_WDT),
 	/* Watchdog on am3 and am4 */
@@ -1258,60 +1455,66 @@
 		   SYSC_MODULE_QUIRK_WDT | SYSC_QUIRK_SWSUP_SIDLE),
 
 #ifdef DEBUG
-	SYSC_QUIRK("adc", 0, 0, 0x10, -1, 0x47300001, 0xffffffff, 0),
-	SYSC_QUIRK("atl", 0, 0, -1, -1, 0x0a070100, 0xffffffff, 0),
-	SYSC_QUIRK("aess", 0, 0, 0x10, -1, 0x40000000, 0xffffffff, 0),
-	SYSC_QUIRK("cm", 0, 0, -1, -1, 0x40000301, 0xffffffff, 0),
-	SYSC_QUIRK("control", 0, 0, 0x10, -1, 0x40000900, 0xffffffff, 0),
+	SYSC_QUIRK("adc", 0, 0, 0x10, -ENODEV, 0x47300001, 0xffffffff, 0),
+	SYSC_QUIRK("atl", 0, 0, -ENODEV, -ENODEV, 0x0a070100, 0xffffffff, 0),
+	SYSC_QUIRK("cm", 0, 0, -ENODEV, -ENODEV, 0x40000301, 0xffffffff, 0),
+	SYSC_QUIRK("control", 0, 0, 0x10, -ENODEV, 0x40000900, 0xffffffff, 0),
 	SYSC_QUIRK("cpgmac", 0, 0x1200, 0x1208, 0x1204, 0x4edb1902,
 		   0xffff00f0, 0),
-	SYSC_QUIRK("dcan", 0, 0x20, -1, -1, 0xa3170504, 0xffffffff, 0),
-	SYSC_QUIRK("dcan", 0, 0x20, -1, -1, 0x4edb1902, 0xffffffff, 0),
-	SYSC_QUIRK("dmic", 0, 0, 0x10, -1, 0x50010000, 0xffffffff, 0),
-	SYSC_QUIRK("dwc3", 0, 0, 0x10, -1, 0x500a0200, 0xffffffff, 0),
+	SYSC_QUIRK("dcan", 0, 0x20, -ENODEV, -ENODEV, 0xa3170504, 0xffffffff, 0),
+	SYSC_QUIRK("dcan", 0, 0x20, -ENODEV, -ENODEV, 0x4edb1902, 0xffffffff, 0),
+	SYSC_QUIRK("dispc", 0x4832a400, 0, 0x10, 0x14, 0x00000030, 0xffffffff, 0),
+	SYSC_QUIRK("dispc", 0x58001000, 0, 0x10, 0x14, 0x00000040, 0xffffffff, 0),
+	SYSC_QUIRK("dispc", 0x58001000, 0, 0x10, 0x14, 0x00000051, 0xffffffff, 0),
+	SYSC_QUIRK("dmic", 0, 0, 0x10, -ENODEV, 0x50010000, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58004000, 0, 0x10, 0x14, 0x00000030, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58005000, 0, 0x10, 0x14, 0x00000030, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58005000, 0, 0x10, 0x14, 0x00000040, 0xffffffff, 0),
+	SYSC_QUIRK("dsi", 0x58009000, 0, 0x10, 0x14, 0x00000040, 0xffffffff, 0),
+	SYSC_QUIRK("dwc3", 0, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff, 0),
 	SYSC_QUIRK("d2d", 0x4a0b6000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
 	SYSC_QUIRK("d2d", 0x4a0cd000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
-	SYSC_QUIRK("epwmss", 0, 0, 0x4, -1, 0x47400001, 0xffffffff, 0),
-	SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -1, 0, 0, 0),
-	SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff, 0),
+	SYSC_QUIRK("epwmss", 0, 0, 0x4, -ENODEV, 0x47400001, 0xffffffff, 0),
+	SYSC_QUIRK("gpu", 0, 0x1fc00, 0x1fc10, -ENODEV, 0, 0, 0),
+	SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -ENODEV, 0x40000000 , 0xffffffff, 0),
+	SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50031d00, 0xffffffff, 0),
 	SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0),
-	SYSC_QUIRK("iss", 0, 0, 0x10, -1, 0x40000101, 0xffffffff, 0),
-	SYSC_QUIRK("lcdc", 0, 0, 0x54, -1, 0x4f201000, 0xffffffff, 0),
-	SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44306302, 0xffffffff, 0),
-	SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44307b02, 0xffffffff, 0),
-	SYSC_QUIRK("mcbsp", 0, -1, 0x8c, -1, 0, 0, 0),
-	SYSC_QUIRK("mcspi", 0, 0, 0x10, -1, 0x40300a0b, 0xffff00ff, 0),
+	SYSC_QUIRK("iss", 0, 0, 0x10, -ENODEV, 0x40000101, 0xffffffff, 0),
+	SYSC_QUIRK("lcdc", 0, 0, 0x54, -ENODEV, 0x4f201000, 0xffffffff, 0),
+	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44306302, 0xffffffff, 0),
+	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44307b02, 0xffffffff, 0),
+	SYSC_QUIRK("mcbsp", 0, -ENODEV, 0x8c, -ENODEV, 0, 0, 0),
+	SYSC_QUIRK("mcspi", 0, 0, 0x10, -ENODEV, 0x40300a0b, 0xffff00ff, 0),
 	SYSC_QUIRK("mcspi", 0, 0, 0x110, 0x114, 0x40300a0b, 0xffffffff, 0),
-	SYSC_QUIRK("mailbox", 0, 0, 0x10, -1, 0x00000400, 0xffffffff, 0),
-	SYSC_QUIRK("m3", 0, 0, -1, -1, 0x5f580105, 0x0fff0f00, 0),
+	SYSC_QUIRK("mailbox", 0, 0, 0x10, -ENODEV, 0x00000400, 0xffffffff, 0),
+	SYSC_QUIRK("m3", 0, 0, -ENODEV, -ENODEV, 0x5f580105, 0x0fff0f00, 0),
 	SYSC_QUIRK("ocp2scp", 0, 0, 0x10, 0x14, 0x50060005, 0xfffffff0, 0),
-	SYSC_QUIRK("ocp2scp", 0, 0, -1, -1, 0x50060007, 0xffffffff, 0),
-	SYSC_QUIRK("padconf", 0, 0, 0x10, -1, 0x4fff0800, 0xffffffff, 0),
-	SYSC_QUIRK("padconf", 0, 0, -1, -1, 0x40001100, 0xffffffff, 0),
-	SYSC_QUIRK("prcm", 0, 0, -1, -1, 0x40000100, 0xffffffff, 0),
-	SYSC_QUIRK("prcm", 0, 0, -1, -1, 0x00004102, 0xffffffff, 0),
-	SYSC_QUIRK("prcm", 0, 0, -1, -1, 0x40000400, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, 0x10, -1, 0x40000900, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, -1, -1, 0x4e8b0100, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, -1, -1, 0x4f000100, 0xffffffff, 0),
-	SYSC_QUIRK("scm", 0, 0, -1, -1, 0x40000900, 0xffffffff, 0),
-	SYSC_QUIRK("scrm", 0, 0, -1, -1, 0x00000010, 0xffffffff, 0),
-	SYSC_QUIRK("sdio", 0, 0, 0x10, -1, 0x40202301, 0xffff0ff0, 0),
+	SYSC_QUIRK("ocp2scp", 0, 0, -ENODEV, -ENODEV, 0x50060007, 0xffffffff, 0),
+	SYSC_QUIRK("padconf", 0, 0, 0x10, -ENODEV, 0x4fff0800, 0xffffffff, 0),
+	SYSC_QUIRK("padconf", 0, 0, -ENODEV, -ENODEV, 0x40001100, 0xffffffff, 0),
+	SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000100, 0xffffffff, 0),
+	SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x00004102, 0xffffffff, 0),
+	SYSC_QUIRK("prcm", 0, 0, -ENODEV, -ENODEV, 0x40000400, 0xffffffff, 0),
+	SYSC_QUIRK("rfbi", 0x4832a800, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
+	SYSC_QUIRK("rfbi", 0x58002000, 0, 0x10, 0x14, 0x00000010, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, 0x10, -ENODEV, 0x40000900, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x4e8b0100, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x4f000100, 0xffffffff, 0),
+	SYSC_QUIRK("scm", 0, 0, -ENODEV, -ENODEV, 0x40000900, 0xffffffff, 0),
+	SYSC_QUIRK("scrm", 0, 0, -ENODEV, -ENODEV, 0x00000010, 0xffffffff, 0),
+	SYSC_QUIRK("sdio", 0, 0, 0x10, -ENODEV, 0x40202301, 0xffff0ff0, 0),
 	SYSC_QUIRK("sdio", 0, 0x2fc, 0x110, 0x114, 0x31010000, 0xffffffff, 0),
 	SYSC_QUIRK("sdma", 0, 0, 0x2c, 0x28, 0x00010900, 0xffffffff, 0),
-	SYSC_QUIRK("slimbus", 0, 0, 0x10, -1, 0x40000902, 0xffffffff, 0),
-	SYSC_QUIRK("slimbus", 0, 0, 0x10, -1, 0x40002903, 0xffffffff, 0),
-	SYSC_QUIRK("spinlock", 0, 0, 0x10, -1, 0x50020000, 0xffffffff, 0),
-	SYSC_QUIRK("rng", 0, 0x1fe0, 0x1fe4, -1, 0x00000020, 0xffffffff, 0),
-	SYSC_QUIRK("rtc", 0, 0x74, 0x78, -1, 0x4eb01908, 0xffff00f0, 0),
-	SYSC_QUIRK("timer32k", 0, 0, 0x4, -1, 0x00000060, 0xffffffff, 0),
+	SYSC_QUIRK("slimbus", 0, 0, 0x10, -ENODEV, 0x40000902, 0xffffffff, 0),
+	SYSC_QUIRK("slimbus", 0, 0, 0x10, -ENODEV, 0x40002903, 0xffffffff, 0),
+	SYSC_QUIRK("spinlock", 0, 0, 0x10, -ENODEV, 0x50020000, 0xffffffff, 0),
+	SYSC_QUIRK("rng", 0, 0x1fe0, 0x1fe4, -ENODEV, 0x00000020, 0xffffffff, 0),
+	SYSC_QUIRK("timer32k", 0, 0, 0x4, -ENODEV, 0x00000060, 0xffffffff, 0),
+	SYSC_QUIRK("tpcc", 0, 0, -ENODEV, -ENODEV, 0x40014c00, 0xffffffff, 0),
 	SYSC_QUIRK("usbhstll", 0, 0, 0x10, 0x14, 0x00000004, 0xffffffff, 0),
 	SYSC_QUIRK("usbhstll", 0, 0, 0x10, 0x14, 0x00000008, 0xffffffff, 0),
-	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff, 0),
-	SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -1, 0x50700101, 0xffffffff, 0),
-	SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050,
-		   0xffffffff, 0),
-	SYSC_QUIRK("vfpe", 0, 0, 0x104, -1, 0x4d001200, 0xffffffff, 0),
+	SYSC_QUIRK("venc", 0x58003000, 0, -ENODEV, -ENODEV, 0x00000002, 0xffffffff, 0),
+	SYSC_QUIRK("vfpe", 0, 0, 0x104, -ENODEV, 0x4d001200, 0xffffffff, 0),
 #endif
 };
 
@@ -1333,16 +1536,13 @@
 		if (q->base != ddata->module_pa)
 			continue;
 
-		if (q->rev_offset >= 0 &&
-		    q->rev_offset != ddata->offsets[SYSC_REVISION])
+		if (q->rev_offset != ddata->offsets[SYSC_REVISION])
 			continue;
 
-		if (q->sysc_offset >= 0 &&
-		    q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
+		if (q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
 			continue;
 
-		if (q->syss_offset >= 0 &&
-		    q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
+		if (q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
 			continue;
 
 		ddata->name = q->name;
@@ -1362,16 +1562,13 @@
 		if (q->base && q->base != ddata->module_pa)
 			continue;
 
-		if (q->rev_offset >= 0 &&
-		    q->rev_offset != ddata->offsets[SYSC_REVISION])
+		if (q->rev_offset != ddata->offsets[SYSC_REVISION])
 			continue;
 
-		if (q->sysc_offset >= 0 &&
-		    q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
+		if (q->sysc_offset != ddata->offsets[SYSC_SYSCONFIG])
 			continue;
 
-		if (q->syss_offset >= 0 &&
-		    q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
+		if (q->syss_offset != ddata->offsets[SYSC_SYSSTATUS])
 			continue;
 
 		if (q->revision == ddata->revision ||
@@ -1384,7 +1581,7 @@
 }
 
 /* 1-wire needs module's internal clocks enabled for reset */
-static void sysc_clk_enable_quirk_hdq1w(struct sysc *ddata)
+static void sysc_pre_reset_quirk_hdq1w(struct sysc *ddata)
 {
 	int offset = 0x0c;	/* HDQ_CTRL_STATUS */
 	u16 val;
@@ -1394,7 +1591,15 @@
 	sysc_write(ddata, offset, val);
 }
 
-/* I2C needs extra enable bit toggling for reset */
+/* AESS (Audio Engine SubSystem) needs autogating set after enable */
+static void sysc_module_enable_quirk_aess(struct sysc *ddata)
+{
+	int offset = 0x7c;	/* AESS_AUTO_GATING_ENABLE */
+
+	sysc_write(ddata, offset, 1);
+}
+
+/* I2C needs to be disabled for reset */
 static void sysc_clk_quirk_i2c(struct sysc *ddata, bool enable)
 {
 	int offset;
@@ -1415,14 +1620,48 @@
 	sysc_write(ddata, offset, val);
 }
 
-static void sysc_clk_enable_quirk_i2c(struct sysc *ddata)
+static void sysc_pre_reset_quirk_i2c(struct sysc *ddata)
+{
+	sysc_clk_quirk_i2c(ddata, false);
+}
+
+static void sysc_post_reset_quirk_i2c(struct sysc *ddata)
 {
 	sysc_clk_quirk_i2c(ddata, true);
 }
 
-static void sysc_clk_disable_quirk_i2c(struct sysc *ddata)
+/* RTC on am3 and 4 needs to be unlocked and locked for sysconfig */
+static void sysc_quirk_rtc(struct sysc *ddata, bool lock)
 {
-	sysc_clk_quirk_i2c(ddata, false);
+	u32 val, kick0_val = 0, kick1_val = 0;
+	unsigned long flags;
+	int error;
+
+	if (!lock) {
+		kick0_val = 0x83e70b13;
+		kick1_val = 0x95a4f1e0;
+	}
+
+	local_irq_save(flags);
+	/* RTC_STATUS BUSY bit may stay active for 1/32768 seconds (~30 usec) */
+	error = readl_poll_timeout_atomic(ddata->module_va + 0x44, val,
+					  !(val & BIT(0)), 100, 50);
+	if (error)
+		dev_warn(ddata->dev, "rtc busy timeout\n");
+	/* Now we have ~15 microseconds to read/write various registers */
+	sysc_write(ddata, 0x6c, kick0_val);
+	sysc_write(ddata, 0x70, kick1_val);
+	local_irq_restore(flags);
+}
+
+static void sysc_module_unlock_quirk_rtc(struct sysc *ddata)
+{
+	sysc_quirk_rtc(ddata, false);
+}
+
+static void sysc_module_lock_quirk_rtc(struct sysc *ddata)
+{
+	sysc_quirk_rtc(ddata, true);
 }
 
 /* 36xx SGX needs a quirk for to bypass OCP IPG interrupt logic */
@@ -1464,14 +1703,24 @@
 		return;
 
 	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_HDQ1W) {
-		ddata->clk_enable_quirk = sysc_clk_enable_quirk_hdq1w;
+		ddata->pre_reset_quirk = sysc_pre_reset_quirk_hdq1w;
 
 		return;
 	}
 
 	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_I2C) {
-		ddata->clk_enable_quirk = sysc_clk_enable_quirk_i2c;
-		ddata->clk_disable_quirk = sysc_clk_disable_quirk_i2c;
+		ddata->pre_reset_quirk = sysc_pre_reset_quirk_i2c;
+		ddata->post_reset_quirk = sysc_post_reset_quirk_i2c;
+
+		return;
+	}
+
+	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_AESS)
+		ddata->module_enable_quirk = sysc_module_enable_quirk_aess;
+
+	if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_RTC_UNLOCK) {
+		ddata->module_unlock_quirk = sysc_module_unlock_quirk_rtc;
+		ddata->module_lock_quirk = sysc_module_lock_quirk_rtc;
 
 		return;
 	}
@@ -1569,46 +1818,39 @@
  */
 static int sysc_reset(struct sysc *ddata)
 {
-	int sysc_offset, syss_offset, sysc_val, rstval, error = 0;
-	u32 sysc_mask, syss_done;
+	int sysc_offset, sysc_val, error;
+	u32 sysc_mask;
 
 	sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
-	syss_offset = ddata->offsets[SYSC_SYSSTATUS];
 
-	if (ddata->legacy_mode || sysc_offset < 0 ||
+	if (ddata->legacy_mode ||
 	    ddata->cap->regbits->srst_shift < 0 ||
 	    ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
 		return 0;
 
 	sysc_mask = BIT(ddata->cap->regbits->srst_shift);
 
-	if (ddata->cfg.quirks & SYSS_QUIRK_RESETDONE_INVERTED)
-		syss_done = 0;
-	else
-		syss_done = ddata->cfg.syss_mask;
-
-	if (ddata->clk_disable_quirk)
-		ddata->clk_disable_quirk(ddata);
+	if (ddata->pre_reset_quirk)
+		ddata->pre_reset_quirk(ddata);
 
-	sysc_val = sysc_read_sysconfig(ddata);
-	sysc_val |= sysc_mask;
-	sysc_write(ddata, sysc_offset, sysc_val);
+	if (sysc_offset >= 0) {
+		sysc_val = sysc_read_sysconfig(ddata);
+		sysc_val |= sysc_mask;
+		sysc_write(ddata, sysc_offset, sysc_val);
+		/* Flush posted write */
+		sysc_val = sysc_read_sysconfig(ddata);
+	}
 
-	if (ddata->clk_enable_quirk)
-		ddata->clk_enable_quirk(ddata);
+	if (ddata->cfg.srst_udelay)
+		usleep_range(ddata->cfg.srst_udelay,
+			     ddata->cfg.srst_udelay * 2);
 
-	/* Poll on reset status */
-	if (syss_offset >= 0) {
-		error = readx_poll_timeout(sysc_read_sysstatus, ddata, rstval,
-					   (rstval & ddata->cfg.syss_mask) ==
-					   syss_done,
-					   100, MAX_MODULE_SOFTRESET_WAIT);
+	if (ddata->post_reset_quirk)
+		ddata->post_reset_quirk(ddata);
 
-	} else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) {
-		error = readx_poll_timeout(sysc_read_sysconfig, ddata, rstval,
-					   !(rstval & sysc_mask),
-					   100, MAX_MODULE_SOFTRESET_WAIT);
-	}
+	error = sysc_wait_softreset(ddata);
+	if (error)
+		dev_warn(ddata->dev, "OCP softreset timed out\n");
 
 	if (ddata->reset_done_quirk)
 		ddata->reset_done_quirk(ddata);
@@ -2500,7 +2742,9 @@
 	struct sysc *ddata = platform_get_drvdata(pdev);
 	int error;
 
-	cancel_delayed_work_sync(&ddata->idle_work);
+	/* Device can still be enabled, see deferred idle quirk in probe */
+	if (cancel_delayed_work_sync(&ddata->idle_work))
+		ti_sysc_idle(&ddata->idle_work.work);
 
 	error = pm_runtime_get_sync(ddata->dev);
 	if (error < 0) {
@@ -2513,7 +2757,9 @@
 
 	pm_runtime_put_sync(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
-	reset_control_assert(ddata->rsts);
+
+	if (!reset_control_status(ddata->rsts))
+		reset_control_assert(ddata->rsts);
 
 unprepare:
 	sysc_unprepare(ddata);
--- linux-ein-5.4.0.orig/drivers/cdrom/cdrom.c
+++ linux-ein-5.4.0/drivers/cdrom/cdrom.c
@@ -291,7 +291,7 @@
 /* default compatibility mode */
 static bool autoclose=1;
 static bool autoeject;
-static bool lockdoor = 1;
+static bool lockdoor = 0;
 /* will we ever get to use this... sigh. */
 static bool check_media_type;
 /* automatically restart mrw format */
@@ -996,6 +996,12 @@
 	tracks->xa = 0;
 	tracks->error = 0;
 	cd_dbg(CD_COUNT_TRACKS, "entering cdrom_count_tracks\n");
+
+	if (!CDROM_CAN(CDC_PLAY_AUDIO)) {
+		tracks->error = CDS_NO_INFO;
+		return;
+	}
+
 	/* Grab the TOC header so we can see how many tracks there are */
 	ret = cdi->ops->audio_ioctl(cdi, CDROMREADTOCHDR, &header);
 	if (ret) {
@@ -1162,7 +1168,8 @@
 		ret = open_for_data(cdi);
 		if (ret)
 			goto err;
-		cdrom_mmc3_profile(cdi);
+		if (CDROM_CAN(CDC_GENERIC_PACKET))
+			cdrom_mmc3_profile(cdi);
 		if (mode & FMODE_WRITE) {
 			ret = -EROFS;
 			if (cdrom_open_write(cdi))
@@ -2882,6 +2889,9 @@
 	   it doesn't give enough information or fails. then we return
 	   the toc contents. */
 use_toc:
+	if (!CDROM_CAN(CDC_PLAY_AUDIO))
+		return -ENOSYS;
+
 	toc.cdte_format = CDROM_MSF;
 	toc.cdte_track = CDROM_LEADOUT;
 	if ((ret = cdi->ops->audio_ioctl(cdi, CDROMREADTOCENTRY, &toc)))
--- linux-ein-5.4.0.orig/drivers/cdrom/gdrom.c
+++ linux-ein-5.4.0/drivers/cdrom/gdrom.c
@@ -740,6 +740,13 @@
 static int probe_gdrom(struct platform_device *devptr)
 {
 	int err;
+
+	/*
+	 * Ensure our "one" device is initialized properly in case of previous
+	 * usages of it
+	 */
+	memset(&gd, 0, sizeof(gd));
+
 	/* Start the device */
 	if (gdrom_execute_diagnostic() != 1) {
 		pr_warning("ATA Probe for GDROM failed\n");
@@ -828,6 +835,8 @@
 	if (gdrom_major)
 		unregister_blkdev(gdrom_major, GDROM_DEV_NAME);
 	unregister_cdrom(gd.cd_info);
+	kfree(gd.cd_info);
+	kfree(gd.toc);
 
 	return 0;
 }
@@ -843,7 +852,7 @@
 static int __init init_gdrom(void)
 {
 	int rc;
-	gd.toc = NULL;
+
 	rc = platform_driver_register(&gdrom_driver);
 	if (rc)
 		return rc;
@@ -859,8 +868,6 @@
 {
 	platform_device_unregister(pd);
 	platform_driver_unregister(&gdrom_driver);
-	kfree(gd.toc);
-	kfree(gd.cd_info);
 }
 
 module_init(init_gdrom);
--- linux-ein-5.4.0.orig/drivers/char/Kconfig
+++ linux-ein-5.4.0/drivers/char/Kconfig
@@ -535,28 +535,43 @@
 	  and SSM (Silicon Secured Memory).  Intended consumers of this
 	  driver include crash and makedumpfile.
 
-endmenu
+source "drivers/char/imx_amp/Kconfig"
 
 config RANDOM_TRUST_CPU
-	bool "Trust the CPU manufacturer to initialize Linux's CRNG"
-	depends on X86 || S390 || PPC
-	default n
+	bool "Initialize RNG using CPU RNG instructions"
+	default y
+	depends on ARCH_RANDOM
 	help
-	Assume that CPU manufacturer (e.g., Intel or AMD for RDSEED or
-	RDRAND, IBM for the S390 and Power PC architectures) is trustworthy
-	for the purposes of initializing Linux's CRNG.  Since this is not
-	something that can be independently audited, this amounts to trusting
-	that CPU manufacturer (perhaps with the insistence or mandate
-	of a Nation State's intelligence or law enforcement agencies)
-	has not installed a hidden back door to compromise the CPU's
-	random number generation facilities. This can also be configured
-	at boot with "random.trust_cpu=on/off".
+	  Initialize the RNG using random numbers supplied by the CPU's
+	  RNG instructions (e.g. RDRAND), if supported and available. These
+	  random numbers are never used directly, but are rather hashed into
+	  the main input pool, and this happens regardless of whether or not
+	  this option is enabled. Instead, this option controls whether the
+	  they are credited and hence can initialize the RNG. Additionally,
+	  other sources of randomness are always used, regardless of this
+	  setting.  Enabling this implies trusting that the CPU can supply high
+	  quality and non-backdoored random numbers.
+
+	  Say Y here unless you have reason to mistrust your CPU or believe
+	  its RNG facilities may be faulty. This may also be configured at
+	  boot time with "random.trust_cpu=on/off".
 
 config RANDOM_TRUST_BOOTLOADER
-	bool "Trust the bootloader to initialize Linux's CRNG"
+	bool "Initialize RNG using bootloader-supplied seed"
+	default y
 	help
-	Some bootloaders can provide entropy to increase the kernel's initial
-	device randomness. Say Y here to assume the entropy provided by the
-	booloader is trustworthy so it will be added to the kernel's entropy
-	pool. Otherwise, say N here so it will be regarded as device input that
-	only mixes the entropy pool.
\ No newline at end of file
+	  Initialize the RNG using a seed supplied by the bootloader or boot
+	  environment (e.g. EFI or a bootloader-generated device tree). This
+	  seed is not used directly, but is rather hashed into the main input
+	  pool, and this happens regardless of whether or not this option is
+	  enabled. Instead, this option controls whether the seed is credited
+	  and hence can initialize the RNG. Additionally, other sources of
+	  randomness are always used, regardless of this setting. Enabling
+	  this implies trusting that the bootloader can supply high quality and
+	  non-backdoored seeds.
+
+	  Say Y here unless you have reason to mistrust your bootloader or
+	  believe its RNG facilities may be faulty. This may also be configured
+	  at boot time with "random.trust_bootloader=on/off".
+
+endmenu
--- linux-ein-5.4.0.orig/drivers/char/Makefile
+++ linux-ein-5.4.0/drivers/char/Makefile
@@ -52,3 +52,4 @@
 obj-$(CONFIG_XILLYBUS)		+= xillybus/
 obj-$(CONFIG_POWERNV_OP_PANEL)	+= powernv-op-panel.o
 obj-$(CONFIG_ADI)		+= adi.o
+obj-$(CONFIG_HAVE_IMX_AMP)      += imx_amp/
--- linux-ein-5.4.0.orig/drivers/char/agp/Kconfig
+++ linux-ein-5.4.0/drivers/char/agp/Kconfig
@@ -125,7 +125,7 @@
 
 config AGP_PARISC
 	tristate "HP Quicksilver AGP support"
-	depends on AGP && PARISC && 64BIT
+	depends on AGP && PARISC && 64BIT && IOMMU_SBA
 	help
 	  This option gives you AGP GART support for the HP Quicksilver
 	  AGP bus adapter on HP PA-RISC machines (Ok, just on the C8000
--- linux-ein-5.4.0.orig/drivers/char/agp/intel-gtt.c
+++ linux-ein-5.4.0/drivers/char/agp/intel-gtt.c
@@ -304,8 +304,10 @@
 	if (intel_private.needs_dmar) {
 		dma_addr = pci_map_page(intel_private.pcidev, page, 0,
 				    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
+		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
+			__free_page(page);
 			return -EINVAL;
+		}
 
 		intel_private.scratch_page_dma = dma_addr;
 	} else
@@ -846,6 +848,7 @@
 			   unsigned int flags)
 {
 	intel_private.driver->write_entry(addr, pg, flags);
+	readl(intel_private.gtt + pg);
 	if (intel_private.driver->chipset_flush)
 		intel_private.driver->chipset_flush();
 }
@@ -871,7 +874,7 @@
 			j++;
 		}
 	}
-	wmb();
+	readl(intel_private.gtt + j - 1);
 	if (intel_private.driver->chipset_flush)
 		intel_private.driver->chipset_flush();
 }
@@ -1105,6 +1108,7 @@
 
 static void i9xx_chipset_flush(void)
 {
+	wmb();
 	if (intel_private.i9xx_flush_page)
 		writel(1, intel_private.i9xx_flush_page);
 }
--- linux-ein-5.4.0.orig/drivers/char/agp/parisc-agp.c
+++ linux-ein-5.4.0/drivers/char/agp/parisc-agp.c
@@ -90,6 +90,9 @@
 {
 	struct _parisc_agp_info *info = &parisc_agp_info;
 
+	/* force fdc ops to be visible to IOMMU */
+	asm_io_sync();
+
 	writeq(info->gart_base | ilog2(info->gart_size), info->ioc_regs+IOC_PCOM);
 	readq(info->ioc_regs+IOC_PCOM);	/* flush */
 }
@@ -158,6 +161,7 @@
 			info->gatt[j] =
 				parisc_agp_mask_memory(agp_bridge,
 					paddr, type);
+			asm_io_fdc(&info->gatt[j]);
 		}
 	}
 
@@ -191,7 +195,16 @@
 parisc_agp_mask_memory(struct agp_bridge_data *bridge, dma_addr_t addr,
 		       int type)
 {
-	return SBA_PDIR_VALID_BIT | addr;
+	unsigned ci;			/* coherent index */
+	dma_addr_t pa;
+
+	pa = addr & IOVP_MASK;
+	asm("lci 0(%1), %0" : "=r" (ci) : "r" (phys_to_virt(pa)));
+
+	pa |= (ci >> PAGE_SHIFT) & 0xff;/* move CI (8 bits) into lowest byte */
+	pa |= SBA_PDIR_VALID_BIT;	/* set "valid" bit */
+
+	return cpu_to_le64(pa);
 }
 
 static void
@@ -281,7 +294,7 @@
         return 0;
 }
 
-static int
+static int __init
 lba_find_capability(int cap)
 {
 	struct _parisc_agp_info *info = &parisc_agp_info;
@@ -366,7 +379,7 @@
 	return error;
 }
 
-static int
+static int __init
 find_quicksilver(struct device *dev, void *data)
 {
 	struct parisc_device **lba = data;
@@ -378,11 +391,9 @@
 	return 0;
 }
 
-static int
+static int __init
 parisc_agp_init(void)
 {
-	extern struct sba_device *sba_list;
-
 	int err = -1;
 	struct parisc_device *sba = NULL, *lba = NULL;
 	struct lba_device *lbadev = NULL;
--- linux-ein-5.4.0.orig/drivers/char/hpet.c
+++ linux-ein-5.4.0/drivers/char/hpet.c
@@ -855,7 +855,7 @@
 		return 0;
 	}
 
-	hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs - 1),
+	hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs),
 			GFP_KERNEL);
 
 	if (!hpetp)
@@ -984,6 +984,8 @@
 		hdp->hd_phys_address = fixmem32->address;
 		hdp->hd_address = ioremap(fixmem32->address,
 						HPET_RANGE_SIZE);
+		if (!hdp->hd_address)
+			return AE_ERROR;
 
 		if (hpet_is_known(hdp)) {
 			iounmap(hdp->hd_address);
--- linux-ein-5.4.0.orig/drivers/char/hw_random/Kconfig
+++ linux-ein-5.4.0/drivers/char/hw_random/Kconfig
@@ -308,6 +308,19 @@
 
 	  If unsure, say Y.
 
+config HW_RANDOM_HISI_V2
+	tristate "HiSilicon True Random Number Generator V2 support"
+	depends on HW_RANDOM && ARM64 && ACPI
+	default HW_RANDOM
+	help
+	  This driver provides kernel-side support for the True Random Number
+	  Generator V2 hardware found on HiSilicon Hi1620 SoC.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called hisi-trng-v2.
+
+	  If unsure, say Y.
+
 config HW_RANDOM_ST
 	tristate "ST Microelectronics HW Random Number Generator support"
 	depends on HW_RANDOM && ARCH_STI
--- linux-ein-5.4.0.orig/drivers/char/hw_random/Makefile
+++ linux-ein-5.4.0/drivers/char/hw_random/Makefile
@@ -27,6 +27,7 @@
 obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o
 obj-$(CONFIG_HW_RANDOM_POWERNV) += powernv-rng.o
 obj-$(CONFIG_HW_RANDOM_HISI)	+= hisi-rng.o
+obj-$(CONFIG_HW_RANDOM_HISI_V2) += hisi-trng-v2.o
 obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o
 obj-$(CONFIG_HW_RANDOM_IPROC_RNG200) += iproc-rng200.o
 obj-$(CONFIG_HW_RANDOM_ST) += st-rng.o
--- linux-ein-5.4.0.orig/drivers/char/hw_random/amd-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/amd-rng.c
@@ -143,15 +143,19 @@
 found:
 	err = pci_read_config_dword(pdev, 0x58, &pmbase);
 	if (err)
-		return err;
+		goto put_dev;
 
 	pmbase &= 0x0000FF00;
-	if (pmbase == 0)
-		return -EIO;
+	if (pmbase == 0) {
+		err = -EIO;
+		goto put_dev;
+	}
 
 	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
+	if (!priv) {
+		err = -ENOMEM;
+		goto put_dev;
+	}
 
 	if (!request_region(pmbase + PMBASE_OFFSET, PMBASE_SIZE, DRV_NAME)) {
 		dev_err(&pdev->dev, DRV_NAME " region 0x%x already in use!\n",
@@ -185,6 +189,8 @@
 	release_region(pmbase + PMBASE_OFFSET, PMBASE_SIZE);
 out:
 	kfree(priv);
+put_dev:
+	pci_dev_put(pdev);
 	return err;
 }
 
@@ -200,6 +206,8 @@
 
 	release_region(priv->pmbase + PMBASE_OFFSET, PMBASE_SIZE);
 
+	pci_dev_put(priv->pcidev);
+
 	kfree(priv);
 }
 
--- linux-ein-5.4.0.orig/drivers/char/hw_random/atmel-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/atmel-rng.c
@@ -96,6 +96,7 @@
 
 err_register:
 	clk_disable_unprepare(trng->clk);
+	atmel_trng_disable(trng);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/char/hw_random/core.c
+++ linux-ein-5.4.0/drivers/char/hw_random/core.c
@@ -15,6 +15,7 @@
 #include <linux/err.h>
 #include <linux/fs.h>
 #include <linux/hw_random.h>
+#include <linux/random.h>
 #include <linux/kernel.h>
 #include <linux/kthread.h>
 #include <linux/sched/signal.h>
--- linux-ein-5.4.0.orig/drivers/char/hw_random/exynos-trng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/exynos-trng.c
@@ -134,7 +134,7 @@
 		return PTR_ERR(trng->mem);
 
 	pm_runtime_enable(&pdev->dev);
-	ret = pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_resume_and_get(&pdev->dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Could not get runtime PM.\n");
 		goto err_pm_get;
@@ -167,7 +167,7 @@
 	clk_disable_unprepare(trng->clk);
 
 err_clock:
-	pm_runtime_put_sync(&pdev->dev);
+	pm_runtime_put_noidle(&pdev->dev);
 
 err_pm_get:
 	pm_runtime_disable(&pdev->dev);
--- linux-ein-5.4.0.orig/drivers/char/hw_random/geode-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/geode-rng.c
@@ -51,6 +51,10 @@
 };
 MODULE_DEVICE_TABLE(pci, pci_tbl);
 
+struct amd_geode_priv {
+	struct pci_dev *pcidev;
+	void __iomem *membase;
+};
 
 static int geode_rng_data_read(struct hwrng *rng, u32 *data)
 {
@@ -90,6 +94,7 @@
 	const struct pci_device_id *ent;
 	void __iomem *mem;
 	unsigned long rng_base;
+	struct amd_geode_priv *priv;
 
 	for_each_pci_dev(pdev) {
 		ent = pci_match_id(pci_tbl, pdev);
@@ -97,17 +102,26 @@
 			goto found;
 	}
 	/* Device not found. */
-	goto out;
+	return err;
 
 found:
+	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+	if (!priv) {
+		err = -ENOMEM;
+		goto put_dev;
+	}
+
 	rng_base = pci_resource_start(pdev, 0);
 	if (rng_base == 0)
-		goto out;
+		goto free_priv;
 	err = -ENOMEM;
 	mem = ioremap(rng_base, 0x58);
 	if (!mem)
-		goto out;
-	geode_rng.priv = (unsigned long)mem;
+		goto free_priv;
+
+	geode_rng.priv = (unsigned long)priv;
+	priv->membase = mem;
+	priv->pcidev = pdev;
 
 	pr_info("AMD Geode RNG detected\n");
 	err = hwrng_register(&geode_rng);
@@ -116,20 +130,26 @@
 		       err);
 		goto err_unmap;
 	}
-out:
 	return err;
 
 err_unmap:
 	iounmap(mem);
-	goto out;
+free_priv:
+	kfree(priv);
+put_dev:
+	pci_dev_put(pdev);
+	return err;
 }
 
 static void __exit mod_exit(void)
 {
-	void __iomem *mem = (void __iomem *)geode_rng.priv;
+	struct amd_geode_priv *priv;
 
+	priv = (struct amd_geode_priv *)geode_rng.priv;
 	hwrng_unregister(&geode_rng);
-	iounmap(mem);
+	iounmap(priv->membase);
+	pci_dev_put(priv->pcidev);
+	kfree(priv);
 }
 
 module_init(mod_init);
--- linux-ein-5.4.0.orig/drivers/char/hw_random/hisi-trng-v2.c
+++ linux-ein-5.4.0/drivers/char/hw_random/hisi-trng-v2.c
@@ -0,0 +1,99 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#include <linux/acpi.h>
+#include <linux/err.h>
+#include <linux/hw_random.h>
+#include <linux/io.h>
+#include <linux/iopoll.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/random.h>
+
+#define HISI_TRNG_REG		0x00F0
+#define HISI_TRNG_BYTES		4
+#define HISI_TRNG_QUALITY	512
+#define SLEEP_US		10
+#define TIMEOUT_US		10000
+
+struct hisi_trng {
+	void __iomem *base;
+	struct hwrng rng;
+};
+
+static int hisi_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
+{
+	struct hisi_trng *trng;
+	int currsize = 0;
+	u32 val = 0;
+	u32 ret;
+
+	trng = container_of(rng, struct hisi_trng, rng);
+
+	do {
+		ret = readl_poll_timeout(trng->base + HISI_TRNG_REG, val,
+					 val, SLEEP_US, TIMEOUT_US);
+		if (ret)
+			return currsize;
+
+		if (max - currsize >= HISI_TRNG_BYTES) {
+			memcpy(buf + currsize, &val, HISI_TRNG_BYTES);
+			currsize += HISI_TRNG_BYTES;
+			if (currsize == max)
+				return currsize;
+			continue;
+		}
+
+		/* copy remaining bytes */
+		memcpy(buf + currsize, &val, max - currsize);
+		currsize = max;
+	} while (currsize < max);
+
+	return currsize;
+}
+
+static int hisi_trng_probe(struct platform_device *pdev)
+{
+	struct hisi_trng *trng;
+	int ret;
+
+	trng = devm_kzalloc(&pdev->dev, sizeof(*trng), GFP_KERNEL);
+	if (!trng)
+		return -ENOMEM;
+
+	trng->base = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(trng->base))
+		return PTR_ERR(trng->base);
+
+	trng->rng.name = pdev->name;
+	trng->rng.read = hisi_trng_read;
+	trng->rng.quality = HISI_TRNG_QUALITY;
+
+	ret = devm_hwrng_register(&pdev->dev, &trng->rng);
+	if (ret)
+		dev_err(&pdev->dev, "failed to register hwrng!\n");
+
+	return ret;
+}
+
+static const struct acpi_device_id hisi_trng_acpi_match[] = {
+	{ "HISI02B3", 0 },
+	{ }
+};
+MODULE_DEVICE_TABLE(acpi, hisi_trng_acpi_match);
+
+static struct platform_driver hisi_trng_driver = {
+	.probe		= hisi_trng_probe,
+	.driver		= {
+		.name	= "hisi-trng-v2",
+		.acpi_match_table = ACPI_PTR(hisi_trng_acpi_match),
+	},
+};
+
+module_platform_driver(hisi_trng_driver);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Weili Qian <qianweili@huawei.com>");
+MODULE_AUTHOR("Zaibo Xu <xuzaibo@huawei.com>");
+MODULE_DESCRIPTION("HiSilicon true random number generator V2 driver");
--- linux-ein-5.4.0.orig/drivers/char/hw_random/imx-rngc.c
+++ linux-ein-5.4.0/drivers/char/hw_random/imx-rngc.c
@@ -99,14 +99,16 @@
 	cmd = readl(rngc->base + RNGC_COMMAND);
 	writel(cmd | RNGC_CMD_SELF_TEST, rngc->base + RNGC_COMMAND);
 
-	ret = wait_for_completion_timeout(&rngc->rng_op_done, RNGC_TIMEOUT);
+	ret = wait_for_completion_timeout(&rngc->rng_op_done, msecs_to_jiffies(RNGC_TIMEOUT));
 	if (!ret) {
 		imx_rngc_irq_mask_clear(rngc);
 		return -ETIMEDOUT;
 	}
 
-	if (rngc->err_reg != 0)
+	if (rngc->err_reg != 0) {
+		imx_rngc_irq_mask_clear(rngc);
 		return -EIO;
+	}
 
 	return 0;
 }
@@ -180,9 +182,7 @@
 		cmd = readl(rngc->base + RNGC_COMMAND);
 		writel(cmd | RNGC_CMD_SEED, rngc->base + RNGC_COMMAND);
 
-		ret = wait_for_completion_timeout(&rngc->rng_op_done,
-				RNGC_TIMEOUT);
-
+		ret = wait_for_completion_timeout(&rngc->rng_op_done, msecs_to_jiffies(RNGC_TIMEOUT));
 		if (!ret) {
 			imx_rngc_irq_mask_clear(rngc);
 			return -ETIMEDOUT;
--- linux-ein-5.4.0.orig/drivers/char/hw_random/iproc-rng200.c
+++ linux-ein-5.4.0/drivers/char/hw_random/iproc-rng200.c
@@ -202,10 +202,12 @@
 		return PTR_ERR(priv->base);
 	}
 
-	priv->rng.name = "iproc-rng200",
-	priv->rng.read = iproc_rng200_read,
-	priv->rng.init = iproc_rng200_init,
-	priv->rng.cleanup = iproc_rng200_cleanup,
+	dev_set_drvdata(dev, priv);
+
+	priv->rng.name = "iproc-rng200";
+	priv->rng.read = iproc_rng200_read;
+	priv->rng.init = iproc_rng200_init;
+	priv->rng.cleanup = iproc_rng200_cleanup;
 
 	/* Register driver */
 	ret = devm_hwrng_register(dev, &priv->rng);
@@ -219,6 +221,28 @@
 	return 0;
 }
 
+static int __maybe_unused iproc_rng200_suspend(struct device *dev)
+{
+	struct iproc_rng200_dev *priv = dev_get_drvdata(dev);
+
+	iproc_rng200_cleanup(&priv->rng);
+
+	return 0;
+}
+
+static int __maybe_unused iproc_rng200_resume(struct device *dev)
+{
+	struct iproc_rng200_dev *priv =  dev_get_drvdata(dev);
+
+	iproc_rng200_init(&priv->rng);
+
+	return 0;
+}
+
+static const struct dev_pm_ops iproc_rng200_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(iproc_rng200_suspend, iproc_rng200_resume)
+};
+
 static const struct of_device_id iproc_rng200_of_match[] = {
 	{ .compatible = "brcm,bcm7211-rng200", },
 	{ .compatible = "brcm,bcm7278-rng200", },
@@ -231,6 +255,7 @@
 	.driver = {
 		.name		= "iproc-rng200",
 		.of_match_table = iproc_rng200_of_match,
+		.pm		= &iproc_rng200_pm_ops,
 	},
 	.probe		= iproc_rng200_probe,
 };
--- linux-ein-5.4.0.orig/drivers/char/hw_random/ks-sa-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/ks-sa-rng.c
@@ -208,6 +208,7 @@
 	ret = pm_runtime_get_sync(dev);
 	if (ret < 0) {
 		dev_err(dev, "Failed to enable SA power-domain\n");
+		pm_runtime_put_noidle(dev);
 		pm_runtime_disable(dev);
 		return ret;
 	}
--- linux-ein-5.4.0.orig/drivers/char/hw_random/mtk-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/mtk-rng.c
@@ -173,8 +173,13 @@
 	return mtk_rng_init(&priv->rng);
 }
 
-static UNIVERSAL_DEV_PM_OPS(mtk_rng_pm_ops, mtk_rng_runtime_suspend,
-			    mtk_rng_runtime_resume, NULL);
+static const struct dev_pm_ops mtk_rng_pm_ops = {
+	SET_RUNTIME_PM_OPS(mtk_rng_runtime_suspend,
+			   mtk_rng_runtime_resume, NULL)
+	SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+				pm_runtime_force_resume)
+};
+
 #define MTK_RNG_PM_OPS (&mtk_rng_pm_ops)
 #else	/* CONFIG_PM */
 #define MTK_RNG_PM_OPS NULL
--- linux-ein-5.4.0.orig/drivers/char/hw_random/omap-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/omap-rng.c
@@ -66,6 +66,13 @@
 #define OMAP4_RNG_OUTPUT_SIZE			0x8
 #define EIP76_RNG_OUTPUT_SIZE			0x10
 
+/*
+ * EIP76 RNG takes approx. 700us to produce 16 bytes of output data
+ * as per testing results. And to account for the lack of udelay()'s
+ * reliability, we keep the timeout as 1000us.
+ */
+#define RNG_DATA_FILL_TIMEOUT			100
+
 enum {
 	RNG_OUTPUT_0_REG = 0,
 	RNG_OUTPUT_1_REG,
@@ -176,7 +183,7 @@
 	if (max < priv->pdata->data_size)
 		return 0;
 
-	for (i = 0; i < 20; i++) {
+	for (i = 0; i < RNG_DATA_FILL_TIMEOUT; i++) {
 		present = priv->pdata->data_present(priv);
 		if (present || !wait)
 			break;
--- linux-ein-5.4.0.orig/drivers/char/hw_random/omap3-rom-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/omap3-rom-rng.c
@@ -20,6 +20,8 @@
 #include <linux/workqueue.h>
 #include <linux/clk.h>
 #include <linux/err.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/platform_device.h>
 
 #define RNG_RESET			0x01
@@ -86,14 +88,18 @@
 
 static struct hwrng omap3_rom_rng_ops = {
 	.name		= "omap3-rom",
-	.read		= omap3_rom_rng_read,
 };
 
 static int omap3_rom_rng_probe(struct platform_device *pdev)
 {
 	int ret = 0;
 
-	pr_info("initializing\n");
+	omap3_rom_rng_ops.read = of_device_get_match_data(&pdev->dev);
+	if (!omap3_rom_rng_ops.read) {
+		dev_err(&pdev->dev, "missing rom code handler\n");
+
+		return -ENODEV;
+	}
 
 	omap3_rom_rng_call = pdev->dev.platform_data;
 	if (!omap3_rom_rng_call) {
@@ -121,13 +127,21 @@
 {
 	cancel_delayed_work_sync(&idle_work);
 	hwrng_unregister(&omap3_rom_rng_ops);
-	clk_disable_unprepare(rng_clk);
+	if (!rng_idle)
+		clk_disable_unprepare(rng_clk);
 	return 0;
 }
 
+static const struct of_device_id omap_rom_rng_match[] = {
+	{ .compatible = "nokia,n900-rom-rng", .data = omap3_rom_rng_read, },
+	{ /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, omap_rom_rng_match);
+
 static struct platform_driver omap3_rom_rng_driver = {
 	.driver = {
 		.name		= "omap3-rom-rng",
+		.of_match_table = omap_rom_rng_match,
 	},
 	.probe		= omap3_rom_rng_probe,
 	.remove		= omap3_rom_rng_remove,
--- linux-ein-5.4.0.orig/drivers/char/hw_random/optee-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/optee-rng.c
@@ -122,14 +122,14 @@
 	if (max > MAX_ENTROPY_REQ_SZ)
 		max = MAX_ENTROPY_REQ_SZ;
 
-	while (read == 0) {
+	while (read < max) {
 		rng_size = get_optee_rng_data(pvt_data, data, (max - read));
 
 		data += rng_size;
 		read += rng_size;
 
-		if (wait) {
-			if (timeout-- == 0)
+		if (wait && pvt_data->data_rate) {
+			if ((timeout-- == 0) || (read == max))
 				return read;
 			msleep((1000 * (max - read)) / pvt_data->data_rate);
 		} else {
--- linux-ein-5.4.0.orig/drivers/char/hw_random/st-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/st-rng.c
@@ -12,6 +12,7 @@
 #include <linux/delay.h>
 #include <linux/hw_random.h>
 #include <linux/io.h>
+#include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
@@ -41,7 +42,6 @@
 
 struct st_rng_data {
 	void __iomem	*base;
-	struct clk	*clk;
 	struct hwrng	ops;
 };
 
@@ -86,26 +86,18 @@
 	if (IS_ERR(base))
 		return PTR_ERR(base);
 
-	clk = devm_clk_get(&pdev->dev, NULL);
+	clk = devm_clk_get_enabled(&pdev->dev, NULL);
 	if (IS_ERR(clk))
 		return PTR_ERR(clk);
 
-	ret = clk_prepare_enable(clk);
-	if (ret)
-		return ret;
-
 	ddata->ops.priv	= (unsigned long)ddata;
 	ddata->ops.read	= st_rng_read;
 	ddata->ops.name	= pdev->name;
 	ddata->base	= base;
-	ddata->clk	= clk;
-
-	dev_set_drvdata(&pdev->dev, ddata);
 
 	ret = devm_hwrng_register(&pdev->dev, &ddata->ops);
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to register HW RNG\n");
-		clk_disable_unprepare(clk);
 		return ret;
 	}
 
@@ -114,16 +106,7 @@
 	return 0;
 }
 
-static int st_rng_remove(struct platform_device *pdev)
-{
-	struct st_rng_data *ddata = dev_get_drvdata(&pdev->dev);
-
-	clk_disable_unprepare(ddata->clk);
-
-	return 0;
-}
-
-static const struct of_device_id st_rng_match[] = {
+static const struct of_device_id st_rng_match[] __maybe_unused = {
 	{ .compatible = "st,rng" },
 	{},
 };
@@ -135,7 +118,6 @@
 		.of_match_table = of_match_ptr(st_rng_match),
 	},
 	.probe = st_rng_probe,
-	.remove = st_rng_remove
 };
 
 module_platform_driver(st_rng_driver);
--- linux-ein-5.4.0.orig/drivers/char/hw_random/timeriomem-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/timeriomem-rng.c
@@ -69,7 +69,7 @@
 		 */
 		if (retval > 0)
 			usleep_range(period_us,
-					period_us + min(1, period_us / 100));
+					period_us + max(1, period_us / 100));
 
 		*(u32 *)data = readl(priv->io_base);
 		retval += sizeof(u32);
--- linux-ein-5.4.0.orig/drivers/char/hw_random/virtio-rng.c
+++ linux-ein-5.4.0/drivers/char/hw_random/virtio-rng.c
@@ -4,6 +4,7 @@
  *  Copyright (C) 2007, 2008 Rusty Russell IBM Corporation
  */
 
+#include <asm/barrier.h>
 #include <linux/err.h>
 #include <linux/hw_random.h>
 #include <linux/scatterlist.h>
@@ -17,71 +18,111 @@
 struct virtrng_info {
 	struct hwrng hwrng;
 	struct virtqueue *vq;
-	struct completion have_data;
 	char name[25];
-	unsigned int data_avail;
 	int index;
-	bool busy;
 	bool hwrng_register_done;
 	bool hwrng_removed;
+	/* data transfer */
+	struct completion have_data;
+	unsigned int data_avail;
+	unsigned int data_idx;
+	/* minimal size returned by rng_buffer_size() */
+#if SMP_CACHE_BYTES < 32
+	u8 data[32];
+#else
+	u8 data[SMP_CACHE_BYTES];
+#endif
 };
 
 static void random_recv_done(struct virtqueue *vq)
 {
 	struct virtrng_info *vi = vq->vdev->priv;
+	unsigned int len;
 
 	/* We can get spurious callbacks, e.g. shared IRQs + virtio_pci. */
-	if (!virtqueue_get_buf(vi->vq, &vi->data_avail))
+	if (!virtqueue_get_buf(vi->vq, &len))
 		return;
 
+	smp_store_release(&vi->data_avail, len);
 	complete(&vi->have_data);
 }
 
-/* The host will fill any buffer we give it with sweet, sweet randomness. */
-static void register_buffer(struct virtrng_info *vi, u8 *buf, size_t size)
+static void request_entropy(struct virtrng_info *vi)
 {
 	struct scatterlist sg;
 
-	sg_init_one(&sg, buf, size);
+	reinit_completion(&vi->have_data);
+	vi->data_idx = 0;
+
+	sg_init_one(&sg, vi->data, sizeof(vi->data));
 
 	/* There should always be room for one buffer. */
-	virtqueue_add_inbuf(vi->vq, &sg, 1, buf, GFP_KERNEL);
+	virtqueue_add_inbuf(vi->vq, &sg, 1, vi->data, GFP_KERNEL);
 
 	virtqueue_kick(vi->vq);
 }
 
+static unsigned int copy_data(struct virtrng_info *vi, void *buf,
+			      unsigned int size)
+{
+	size = min_t(unsigned int, size, vi->data_avail);
+	memcpy(buf, vi->data + vi->data_idx, size);
+	vi->data_idx += size;
+	vi->data_avail -= size;
+	if (vi->data_avail == 0)
+		request_entropy(vi);
+	return size;
+}
+
 static int virtio_read(struct hwrng *rng, void *buf, size_t size, bool wait)
 {
 	int ret;
 	struct virtrng_info *vi = (struct virtrng_info *)rng->priv;
+	unsigned int chunk;
+	size_t read;
 
 	if (vi->hwrng_removed)
 		return -ENODEV;
 
-	if (!vi->busy) {
-		vi->busy = true;
-		reinit_completion(&vi->have_data);
-		register_buffer(vi, buf, size);
+	read = 0;
+
+	/* copy available data */
+	if (smp_load_acquire(&vi->data_avail)) {
+		chunk = copy_data(vi, buf, size);
+		size -= chunk;
+		read += chunk;
 	}
 
 	if (!wait)
-		return 0;
-
-	ret = wait_for_completion_killable(&vi->have_data);
-	if (ret < 0)
-		return ret;
+		return read;
 
-	vi->busy = false;
+	/* We have already copied available entropy,
+	 * so either size is 0 or data_avail is 0
+	 */
+	while (size != 0) {
+		/* data_avail is 0 but a request is pending */
+		ret = wait_for_completion_killable(&vi->have_data);
+		if (ret < 0)
+			return ret;
+		/* if vi->data_avail is 0, we have been interrupted
+		 * by a cleanup, but buffer stays in the queue
+		 */
+		if (vi->data_avail == 0)
+			return read;
+
+		chunk = copy_data(vi, buf + read, size);
+		size -= chunk;
+		read += chunk;
+	}
 
-	return vi->data_avail;
+	return read;
 }
 
 static void virtio_cleanup(struct hwrng *rng)
 {
 	struct virtrng_info *vi = (struct virtrng_info *)rng->priv;
 
-	if (vi->busy)
-		wait_for_completion(&vi->have_data);
+	complete(&vi->have_data);
 }
 
 static int probe_common(struct virtio_device *vdev)
@@ -117,6 +158,9 @@
 		goto err_find;
 	}
 
+	/* we always have a pending entropy request */
+	request_entropy(vi);
+
 	return 0;
 
 err_find:
@@ -132,9 +176,9 @@
 
 	vi->hwrng_removed = true;
 	vi->data_avail = 0;
+	vi->data_idx = 0;
 	complete(&vi->have_data);
 	vdev->config->reset(vdev);
-	vi->busy = false;
 	if (vi->hwrng_register_done)
 		hwrng_unregister(&vi->hwrng);
 	vdev->config->del_vqs(vdev);
--- linux-ein-5.4.0.orig/drivers/char/imx_amp/Kconfig
+++ linux-ein-5.4.0/drivers/char/imx_amp/Kconfig
@@ -0,0 +1,9 @@
+#
+# imx mcc
+#
+
+config IMX_SEMA4
+	bool "IMX SEMA4 driver"
+	depends on SOC_IMX6SX
+	help
+	  Support for IMX SEMA4 driver, most people should say N here.
--- linux-ein-5.4.0.orig/drivers/char/imx_amp/Makefile
+++ linux-ein-5.4.0/drivers/char/imx_amp/Makefile
@@ -0,0 +1,5 @@
+#
+# Makefile for imx mcc
+#
+#
+obj-$(CONFIG_IMX_SEMA4)		+= imx_sema4.o
--- linux-ein-5.4.0.orig/drivers/char/imx_amp/imx_sema4.c
+++ linux-ein-5.4.0/drivers/char/imx_amp/imx_sema4.c
@@ -0,0 +1,411 @@
+/*
+ * Copyright (C) 2014 Freescale Semiconductor, Inc.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include <linux/platform_device.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/err.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/wait.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/imx_sema4.h>
+
+static struct imx_sema4_mutex_device *imx6_sema4;
+
+/*!
+ * \brief mutex create function.
+ *
+ * This function allocates imx_sema4_mutex structure and returns a handle
+ * to it. The mutex to be created is identified by SEMA4 device number and mutex
+ * (gate) number. The handle is used to reference the created mutex in calls to
+ * other imx_sema4_mutex API functions. This function is to be called only
+ * once for each mutex.
+ *
+ * \param[in] dev_num     SEMA4 device (module) number.
+ * \param[in] mutex_num   Mutex (gate) number.
+ *
+ * \return NULL (Failure.)
+ * \return imx_sema4_mutex (Success.)
+ */
+struct imx_sema4_mutex *
+imx_sema4_mutex_create(u32 dev_num, u32 mutex_num)
+{
+	struct imx_sema4_mutex *mutex_ptr = NULL;
+
+	if ((mutex_num > SEMA4_NUM_GATES) || dev_num >= SEMA4_NUM_DEVICES)
+		goto out;
+
+	if (imx6_sema4->cpine_val & (1 < mutex_num)) {
+		pr_err("Error: requiring a allocated sema4.\n");
+		pr_err("mutex_num %d cpine_val 0x%08x.\n",
+				mutex_num, imx6_sema4->cpine_val);
+	}
+	mutex_ptr = kzalloc(sizeof(*mutex_ptr), GFP_KERNEL);
+	if (!mutex_ptr)
+		goto out;
+	imx6_sema4->mutex_ptr[mutex_num] = mutex_ptr;
+	imx6_sema4->alloced |= 1 < mutex_num;
+	imx6_sema4->cpine_val |= idx_sema4[mutex_num];
+	writew(imx6_sema4->cpine_val, imx6_sema4->ioaddr + SEMA4_CP0INE);
+
+	mutex_ptr->valid = CORE_MUTEX_VALID;
+	mutex_ptr->gate_num = mutex_num;
+	init_waitqueue_head(&mutex_ptr->wait_q);
+
+out:
+	return mutex_ptr;
+}
+EXPORT_SYMBOL(imx_sema4_mutex_create);
+
+/*!
+ * \brief mutex destroy function.
+ *
+ * This function destroys a mutex.
+ *
+ * \param[in] mutex_ptr   Pointer to mutex structure.
+ *
+ * \return MQX_COMPONENT_DOES_NOT_EXIST (mutex component not installed.)
+ * \return MQX_INVALID_PARAMETER (Wrong input parameter.)
+ * \return COREMUTEX_OK (Success.)
+ *
+ */
+int imx_sema4_mutex_destroy(struct imx_sema4_mutex *mutex_ptr)
+{
+	u32 mutex_num;
+
+	if ((mutex_ptr == NULL) || (mutex_ptr->valid != CORE_MUTEX_VALID))
+		return -EINVAL;
+
+	mutex_num = mutex_ptr->gate_num;
+	if ((imx6_sema4->cpine_val & idx_sema4[mutex_num]) == 0) {
+		pr_err("Error: trying to destroy a un-allocated sema4.\n");
+		pr_err("mutex_num %d cpine_val 0x%08x.\n",
+				mutex_num, imx6_sema4->cpine_val);
+	}
+	imx6_sema4->mutex_ptr[mutex_num] = NULL;
+	imx6_sema4->alloced &= ~(1 << mutex_num);
+	imx6_sema4->cpine_val &= ~(idx_sema4[mutex_num]);
+	writew(imx6_sema4->cpine_val, imx6_sema4->ioaddr + SEMA4_CP0INE);
+
+	kfree(mutex_ptr);
+
+	return 0;
+}
+EXPORT_SYMBOL(imx_sema4_mutex_destroy);
+
+/*!
+ * \brief Lock the mutex, shouldn't be interruted by INT.
+ *
+ * This function attempts to lock a mutex. If the mutex is already locked
+ * by another task the function return -EBUSY, and tell invoker wait until
+ * it is possible to lock the mutex.
+ *
+ * \param[in] mutex_ptr   Pointer to mutex structure.
+ *
+ * \return MQX_INVALID_POINTER (Wrong pointer to the mutex structure provided.)
+ * \return COREMUTEX_OK (mutex successfully locked.)
+ *
+ * \see imx_sema4_mutex_unlock
+ */
+int _imx_sema4_mutex_lock(struct imx_sema4_mutex *mutex_ptr)
+{
+	int ret = 0, i = mutex_ptr->gate_num;
+
+	if ((mutex_ptr == NULL) || (mutex_ptr->valid != CORE_MUTEX_VALID))
+		return -EINVAL;
+
+	mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+	mutex_ptr->gate_val &= SEMA4_GATE_MASK;
+	/* Check to see if this core already own it */
+	if (mutex_ptr->gate_val == SEMA4_A9_LOCK) {
+		/* return -EBUSY, invoker should be in sleep, and re-lock ag */
+		pr_err("%s -> %s %d already locked, wait! num %d val %d.\n",
+				__FILE__, __func__, __LINE__,
+				i, mutex_ptr->gate_val);
+		ret = -EBUSY;
+		goto out;
+	} else {
+		/* try to lock the mutex */
+		mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+		mutex_ptr->gate_val &= (~SEMA4_GATE_MASK);
+		mutex_ptr->gate_val |= SEMA4_A9_LOCK;
+		writeb(mutex_ptr->gate_val, imx6_sema4->ioaddr + i);
+		mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+		mutex_ptr->gate_val &= SEMA4_GATE_MASK;
+		/* double check the mutex is locked, otherwise, return -EBUSY */
+		if (mutex_ptr->gate_val != SEMA4_A9_LOCK) {
+			pr_debug("wait-locked num %d val %d.\n",
+					i, mutex_ptr->gate_val);
+			ret = -EBUSY;
+		}
+	}
+out:
+	return ret;
+}
+
+/* !
+ * \brief Try to lock the core mutex.
+ *
+ * This function attempts to lock a mutex. If the mutex is successfully locked
+ * for the calling task, SEMA4_A9_LOCK is returned. If the mutex is already
+ * locked by another task, the function does not block but rather returns
+ * negative immediately.
+ *
+ * \param[in] mutex_ptr  Pointer to core_mutex structure.
+ *
+ * \return SEMA4_A9_LOCK (mutex successfully locked.)
+ * \return negative (mutex not locked.)
+ *
+ */
+int imx_sema4_mutex_trylock(struct imx_sema4_mutex *mutex_ptr)
+{
+	int ret = 0;
+
+	ret = _imx_sema4_mutex_lock(mutex_ptr);
+	if (ret == 0)
+		return SEMA4_A9_LOCK;
+	else
+		return ret;
+}
+EXPORT_SYMBOL(imx_sema4_mutex_trylock);
+
+/*!
+ * \brief Invoke _imx_sema4_mutex_lock to lock the mutex.
+ *
+ * This function attempts to lock a mutex. If the mutex is already locked
+ * by another task the function, sleep itself and schedule out.
+ * Wait until it is possible to lock the mutex.
+ *
+ * Invoker should add its own wait queue into the wait queue header of the
+ * required semaphore, set TASK_INTERRUPTIBLE and sleep on itself by
+ * schedule() when the lock is failed. Re-try to lock the semaphore when
+ * it is woke up by the sema4 isr.
+ *
+ * \param[in] mutex_ptr  Pointer to mutex structure.
+ *
+ * \return SEMA4_A9_LOCK (mutex successfully locked.)
+ *
+ * \see imx_sema4_mutex_unlock
+ */
+int imx_sema4_mutex_lock(struct imx_sema4_mutex *mutex_ptr)
+{
+	int ret = 0;
+	unsigned long flags;
+
+	spin_lock_irqsave(&imx6_sema4->lock, flags);
+	ret = _imx_sema4_mutex_lock(mutex_ptr);
+	spin_unlock_irqrestore(&imx6_sema4->lock, flags);
+	while (-EBUSY == ret) {
+		spin_lock_irqsave(&imx6_sema4->lock, flags);
+		ret = _imx_sema4_mutex_lock(mutex_ptr);
+		spin_unlock_irqrestore(&imx6_sema4->lock, flags);
+		if (ret == 0)
+			break;
+	}
+
+	return ret;
+}
+EXPORT_SYMBOL(imx_sema4_mutex_lock);
+
+/*!
+ * \brief Unlock the mutex.
+ *
+ * This function unlocks the specified mutex.
+ *
+ * \param[in] mutex_ptr   Pointer to mutex structure.
+ *
+ * \return -EINVAL (Wrong pointer to the mutex structure provided.)
+ * \return -EINVAL (This mutex has not been locked by this core.)
+ * \return 0 (mutex successfully unlocked.)
+ *
+ * \see imx_sema4_mutex_lock
+ */
+int imx_sema4_mutex_unlock(struct imx_sema4_mutex *mutex_ptr)
+{
+	int ret = 0, i = mutex_ptr->gate_num;
+
+	if ((mutex_ptr == NULL) || (mutex_ptr->valid != CORE_MUTEX_VALID))
+		return -EINVAL;
+
+	mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+	mutex_ptr->gate_val &= SEMA4_GATE_MASK;
+	/* make sure it is locked by this core */
+	if (mutex_ptr->gate_val != SEMA4_A9_LOCK) {
+		pr_err("%d Trying to unlock an unlock mutex.\n", __LINE__);
+		ret = -EINVAL;
+		goto out;
+	}
+	/* unlock it */
+	mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+	mutex_ptr->gate_val &= (~SEMA4_GATE_MASK);
+	writeb(mutex_ptr->gate_val | SEMA4_UNLOCK, imx6_sema4->ioaddr + i);
+	mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+	mutex_ptr->gate_val &= SEMA4_GATE_MASK;
+	/* make sure it is locked by this core */
+	if (mutex_ptr->gate_val == SEMA4_A9_LOCK)
+		pr_err("%d ERROR, failed to unlock the mutex.\n", __LINE__);
+
+out:
+	return ret;
+}
+EXPORT_SYMBOL(imx_sema4_mutex_unlock);
+
+/*
+ * isr used by SEMA4, wake up the sleep tasks if there are the tasks waiting
+ * for locking semaphore.
+ * FIXME the bits order of the gatn, cpnie, cpnntf are not exact identified yet!
+ */
+static irqreturn_t imx_sema4_isr(int irq, void *dev_id)
+{
+	int i;
+	struct imx_sema4_mutex *mutex_ptr;
+	u32 mask;
+	struct imx_sema4_mutex_device *imx6_sema4 = dev_id;
+
+	imx6_sema4->cpntf_val = readw(imx6_sema4->ioaddr + SEMA4_CP0NTF);
+	for (i = 0; i < SEMA4_NUM_GATES; i++) {
+		mask = idx_sema4[i];
+		if ((imx6_sema4->cpntf_val) & mask) {
+			mutex_ptr = imx6_sema4->mutex_ptr[i];
+			/*
+			 * An interrupt is pending on this mutex, the only way
+			 * to clear it is to lock it (either by this core or
+			 * another).
+			 */
+			mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+			mutex_ptr->gate_val &= (~SEMA4_GATE_MASK);
+			mutex_ptr->gate_val |= SEMA4_A9_LOCK;
+			writeb(mutex_ptr->gate_val, imx6_sema4->ioaddr + i);
+			mutex_ptr->gate_val = readb(imx6_sema4->ioaddr + i);
+			mutex_ptr->gate_val &= SEMA4_GATE_MASK;
+			if (mutex_ptr->gate_val == SEMA4_A9_LOCK) {
+				/*
+				 * wake up the wait queue, whatever there
+				 * are wait task or not.
+				 * NOTE: check gate is locted or not in
+				 * sema4_lock func by wait task.
+				 */
+				mutex_ptr->gate_val =
+					readb(imx6_sema4->ioaddr + i);
+				mutex_ptr->gate_val &= (~SEMA4_GATE_MASK);
+				mutex_ptr->gate_val |= SEMA4_UNLOCK;
+
+				writeb(mutex_ptr->gate_val,
+						imx6_sema4->ioaddr + i);
+				wake_up(&mutex_ptr->wait_q);
+			} else {
+				pr_debug("can't lock gate%d %s retry!\n", i,
+						mutex_ptr->gate_val ?
+						"locked by m4" : "");
+			}
+		}
+	}
+
+	return IRQ_HANDLED;
+}
+
+static const struct of_device_id imx_sema4_dt_ids[] = {
+	{ .compatible = "fsl,imx6sx-sema4", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx_sema4_dt_ids);
+
+static int imx_sema4_probe(struct platform_device *pdev)
+{
+	struct resource *res;
+	int ret;
+
+	imx6_sema4 = devm_kzalloc(&pdev->dev, sizeof(*imx6_sema4), GFP_KERNEL);
+	if (!imx6_sema4)
+		return -ENOMEM;
+
+	imx6_sema4->dev = &pdev->dev;
+	imx6_sema4->cpine_val = 0;
+	spin_lock_init(&imx6_sema4->lock);
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (IS_ERR(res)) {
+		dev_err(&pdev->dev, "unable to get imx sema4 resource 0\n");
+		ret = -ENODEV;
+		goto err;
+	}
+
+	imx6_sema4->ioaddr = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(imx6_sema4->ioaddr)) {
+		ret = PTR_ERR(imx6_sema4->ioaddr);
+		goto err;
+	}
+
+	imx6_sema4->irq = platform_get_irq(pdev, 0);
+	if (!imx6_sema4->irq) {
+		dev_err(&pdev->dev, "failed to get irq\n");
+		ret = -ENODEV;
+		goto err;
+	}
+
+	ret = devm_request_irq(&pdev->dev, imx6_sema4->irq, imx_sema4_isr,
+				IRQF_SHARED, "imx6sx-sema4", imx6_sema4);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to request imx sema4 irq\n");
+		ret = -ENODEV;
+		goto err;
+	}
+
+	platform_set_drvdata(pdev, imx6_sema4);
+
+err:
+	return ret;
+}
+
+static int imx_sema4_remove(struct platform_device *pdev)
+{
+	return 0;
+}
+
+static struct platform_driver imx_sema4_driver = {
+	.driver = {
+		   .owner = THIS_MODULE,
+		   .name = "imx-sema4",
+		   .of_match_table = imx_sema4_dt_ids,
+		   },
+	.probe = imx_sema4_probe,
+	.remove = imx_sema4_remove,
+};
+
+static int __init imx_sema4_init(void)
+{
+	int ret;
+
+	ret = platform_driver_register(&imx_sema4_driver);
+	if (ret)
+		pr_err("Unable to initialize sema4 driver\n");
+	else
+		pr_info("imx sema4 driver is registered.\n");
+
+	return ret;
+}
+
+static void __exit imx_sema4_exit(void)
+{
+	pr_info("imx sema4 driver is unregistered.\n");
+	platform_driver_unregister(&imx_sema4_driver);
+}
+
+module_exit(imx_sema4_exit);
+module_init(imx_sema4_init);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("IMX SEMA4 driver");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/char/ipmi/bt-bmc.c
+++ linux-ein-5.4.0/drivers/char/ipmi/bt-bmc.c
@@ -399,15 +399,15 @@
 	struct device *dev = &pdev->dev;
 	int rc;
 
-	bt_bmc->irq = platform_get_irq(pdev, 0);
-	if (!bt_bmc->irq)
-		return -ENODEV;
+	bt_bmc->irq = platform_get_irq_optional(pdev, 0);
+	if (bt_bmc->irq < 0)
+		return bt_bmc->irq;
 
 	rc = devm_request_irq(dev, bt_bmc->irq, bt_bmc_irq, IRQF_SHARED,
 			      DEVICE_NAME, bt_bmc);
 	if (rc < 0) {
 		dev_warn(dev, "Unable to request IRQ %d\n", bt_bmc->irq);
-		bt_bmc->irq = 0;
+		bt_bmc->irq = rc;
 		return rc;
 	}
 
@@ -479,7 +479,7 @@
 
 	bt_bmc_config_irq(bt_bmc, pdev);
 
-	if (bt_bmc->irq) {
+	if (bt_bmc->irq >= 0) {
 		dev_info(dev, "Using IRQ %d\n", bt_bmc->irq);
 	} else {
 		dev_info(dev, "No IRQ; using timer\n");
@@ -505,7 +505,7 @@
 	struct bt_bmc *bt_bmc = dev_get_drvdata(&pdev->dev);
 
 	misc_deregister(&bt_bmc->miscdev);
-	if (!bt_bmc->irq)
+	if (bt_bmc->irq < 0)
 		del_timer_sync(&bt_bmc->poll_timer);
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/char/ipmi/ipmb_dev_int.c
+++ linux-ein-5.4.0/drivers/char/ipmi/ipmb_dev_int.c
@@ -265,7 +265,7 @@
 		break;
 
 	case I2C_SLAVE_WRITE_RECEIVED:
-		if (ipmb_dev->msg_idx >= sizeof(struct ipmb_msg))
+		if (ipmb_dev->msg_idx >= sizeof(struct ipmb_msg) - 1)
 			break;
 
 		buf[++ipmb_dev->msg_idx] = *val;
--- linux-ein-5.4.0.orig/drivers/char/ipmi/ipmi_msghandler.c
+++ linux-ein-5.4.0/drivers/char/ipmi/ipmi_msghandler.c
@@ -11,8 +11,8 @@
  * Copyright 2002 MontaVista Software Inc.
  */
 
-#define pr_fmt(fmt) "%s" fmt, "IPMI message handler: "
-#define dev_fmt pr_fmt
+#define pr_fmt(fmt) "IPMI message handler: " fmt
+#define dev_fmt(fmt) pr_fmt(fmt)
 
 #include <linux/module.h>
 #include <linux/errno.h>
@@ -33,6 +33,7 @@
 #include <linux/workqueue.h>
 #include <linux/uuid.h>
 #include <linux/nospec.h>
+#include <linux/vmalloc.h>
 
 #define IPMI_DRIVER_VERSION "39.2"
 
@@ -219,6 +220,8 @@
 	struct work_struct remove_work;
 };
 
+static struct workqueue_struct *remove_work_wq;
+
 static struct ipmi_user *acquire_ipmi_user(struct ipmi_user *user, int *index)
 	__acquires(user->release_barrier)
 {
@@ -448,6 +451,8 @@
 
 #define IPMI_IPMB_NUM_SEQ	64
 struct ipmi_smi {
+	struct module *owner;
+
 	/* What interface number are we? */
 	int intf_num;
 
@@ -1168,7 +1173,7 @@
 					      remove_work);
 
 	cleanup_srcu_struct(&user->release_barrier);
-	kfree(user);
+	vfree(user);
 }
 
 int ipmi_create_user(unsigned int          if_num,
@@ -1200,7 +1205,7 @@
 	if (rv)
 		return rv;
 
-	new_user = kmalloc(sizeof(*new_user), GFP_KERNEL);
+	new_user = vzalloc(sizeof(*new_user));
 	if (!new_user)
 		return -ENOMEM;
 
@@ -1220,6 +1225,11 @@
 	if (rv)
 		goto out_kfree;
 
+	if (!try_module_get(intf->owner)) {
+		rv = -ENODEV;
+		goto out_kfree;
+	}
+
 	/* Note that each existing user holds a refcount to the interface. */
 	kref_get(&intf->refcount);
 
@@ -1242,7 +1252,7 @@
 
 out_kfree:
 	srcu_read_unlock(&ipmi_interfaces_srcu, index);
-	kfree(new_user);
+	vfree(new_user);
 	return rv;
 }
 EXPORT_SYMBOL(ipmi_create_user);
@@ -1278,7 +1288,7 @@
 	struct ipmi_user *user = container_of(ref, struct ipmi_user, refcount);
 
 	/* SRCU cleanup must happen in task context. */
-	schedule_work(&user->remove_work);
+	queue_work(remove_work_wq, &user->remove_work);
 }
 
 static void _ipmi_destroy_user(struct ipmi_user *user)
@@ -1288,6 +1298,7 @@
 	unsigned long    flags;
 	struct cmd_rcvr  *rcvr;
 	struct cmd_rcvr  *rcvrs = NULL;
+	struct module    *owner;
 
 	if (!acquire_ipmi_user(user, &i)) {
 		/*
@@ -1348,7 +1359,9 @@
 		kfree(rcvr);
 	}
 
+	owner = intf->owner;
 	kref_put(&intf->refcount, intf_free);
+	module_put(owner);
 }
 
 int ipmi_destroy_user(struct ipmi_user *user)
@@ -2459,7 +2472,7 @@
  * been recently fetched, this will just use the cached data.  Otherwise
  * it will run a new fetch.
  *
- * Except for the first time this is called (in ipmi_register_smi()),
+ * Except for the first time this is called (in ipmi_add_smi()),
  * this will always return good data;
  */
 static int __bmc_get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc,
@@ -2927,7 +2940,7 @@
 	 * with removing the device attributes while reading a device
 	 * attribute.
 	 */
-	schedule_work(&bmc->remove_work);
+	queue_work(remove_work_wq, &bmc->remove_work);
 }
 
 /*
@@ -3031,8 +3044,11 @@
 		bmc->pdev.name = "ipmi_bmc";
 
 		rv = ida_simple_get(&ipmi_bmc_ida, 0, 0, GFP_KERNEL);
-		if (rv < 0)
+		if (rv < 0) {
+			kfree(bmc);
 			goto out;
+		}
+
 		bmc->pdev.dev.driver = &ipmidriver.driver;
 		bmc->pdev.id = rv;
 		bmc->pdev.dev.release = release_bmc_device;
@@ -3196,8 +3212,8 @@
 	if (rv)
 		/* Send failed, no GUID available. */
 		bmc->dyn_guid_set = 0;
-
-	wait_event(intf->waitq, bmc->dyn_guid_set != 2);
+	else
+		wait_event(intf->waitq, bmc->dyn_guid_set != 2);
 
 	/* dyn_guid_set makes the guid data available. */
 	smp_rmb();
@@ -3377,10 +3393,11 @@
 	kref_put(&intf->refcount, intf_free);
 }
 
-int ipmi_register_smi(const struct ipmi_smi_handlers *handlers,
-		      void		       *send_info,
-		      struct device            *si_dev,
-		      unsigned char            slave_addr)
+int ipmi_add_smi(struct module         *owner,
+		 const struct ipmi_smi_handlers *handlers,
+		 void		       *send_info,
+		 struct device         *si_dev,
+		 unsigned char         slave_addr)
 {
 	int              i, j;
 	int              rv;
@@ -3406,7 +3423,7 @@
 		return rv;
 	}
 
-
+	intf->owner = owner;
 	intf->bmc = &intf->tmp_bmc;
 	INIT_LIST_HEAD(&intf->bmc->intfs);
 	mutex_init(&intf->bmc->dyn_mutex);
@@ -3514,18 +3531,22 @@
 
 	return rv;
 }
-EXPORT_SYMBOL(ipmi_register_smi);
+EXPORT_SYMBOL(ipmi_add_smi);
 
 static void deliver_smi_err_response(struct ipmi_smi *intf,
 				     struct ipmi_smi_msg *msg,
 				     unsigned char err)
 {
+	int rv;
 	msg->rsp[0] = msg->data[0] | 4;
 	msg->rsp[1] = msg->data[1];
 	msg->rsp[2] = err;
 	msg->rsp_size = 3;
-	/* It's an error, so it will never requeue, no need to check return. */
-	handle_one_recv_msg(intf, msg);
+
+	/* This will never requeue, but it may ask us to free the message. */
+	rv = handle_one_recv_msg(intf, msg);
+	if (rv == 0)
+		ipmi_free_smi_msg(msg);
 }
 
 static void cleanup_smi_msgs(struct ipmi_smi *intf)
@@ -4784,7 +4805,9 @@
 static void free_smi_msg(struct ipmi_smi_msg *msg)
 {
 	atomic_dec(&smi_msg_inuse_count);
-	kfree(msg);
+	/* Try to keep as much stuff out of the panic path as possible. */
+	if (!oops_in_progress)
+		kfree(msg);
 }
 
 struct ipmi_smi_msg *ipmi_alloc_smi_msg(void)
@@ -4803,7 +4826,9 @@
 static void free_recv_msg(struct ipmi_recv_msg *msg)
 {
 	atomic_dec(&recv_msg_inuse_count);
-	kfree(msg);
+	/* Try to keep as much stuff out of the panic path as possible. */
+	if (!oops_in_progress)
+		kfree(msg);
 }
 
 static struct ipmi_recv_msg *ipmi_alloc_recv_msg(void)
@@ -4821,7 +4846,7 @@
 
 void ipmi_free_recv_msg(struct ipmi_recv_msg *msg)
 {
-	if (msg->user)
+	if (msg->user && !oops_in_progress)
 		kref_put(&msg->user->refcount, free_user);
 	msg->done(msg);
 }
@@ -5137,7 +5162,16 @@
 	if (initialized)
 		goto out;
 
-	init_srcu_struct(&ipmi_interfaces_srcu);
+	rv = init_srcu_struct(&ipmi_interfaces_srcu);
+	if (rv)
+		goto out;
+
+	remove_work_wq = create_singlethread_workqueue("ipmi-msghandler-remove-wq");
+	if (!remove_work_wq) {
+		pr_err("unable to create ipmi-msghandler-remove-wq workqueue");
+		rv = -ENOMEM;
+		goto out_wq;
+	}
 
 	timer_setup(&ipmi_timer, ipmi_timeout, 0);
 	mod_timer(&ipmi_timer, jiffies + IPMI_TIMEOUT_JIFFIES);
@@ -5146,6 +5180,9 @@
 
 	initialized = true;
 
+out_wq:
+	if (rv)
+		cleanup_srcu_struct(&ipmi_interfaces_srcu);
 out:
 	mutex_unlock(&ipmi_interfaces_mutex);
 	return rv;
@@ -5169,6 +5206,8 @@
 	int count;
 
 	if (initialized) {
+		destroy_workqueue(remove_work_wq);
+
 		atomic_notifier_chain_unregister(&panic_notifier_list,
 						 &panic_block);
 
--- linux-ein-5.4.0.orig/drivers/char/ipmi/ipmi_si_intf.c
+++ linux-ein-5.4.0/drivers/char/ipmi/ipmi_si_intf.c
@@ -1977,7 +1977,7 @@
 	/* Do this early so it's available for logs. */
 	if (!new_smi->io.dev) {
 		pr_err("IPMI interface added with no device\n");
-		rv = EIO;
+		rv = -EIO;
 		goto out_err;
 	}
 
@@ -2086,6 +2086,11 @@
 		new_smi->io.io_cleanup = NULL;
 	}
 
+	if (rv && new_smi->si_sm) {
+		kfree(new_smi->si_sm);
+		new_smi->si_sm = NULL;
+	}
+
 	return rv;
 }
 
@@ -2157,6 +2162,20 @@
 }
 module_init(init_ipmi_si);
 
+static void wait_msg_processed(struct smi_info *smi_info)
+{
+	unsigned long jiffies_now;
+	long time_diff;
+
+	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
+		jiffies_now = jiffies;
+		time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies)
+		     * SI_USEC_PER_JIFFY);
+		smi_event_handler(smi_info, time_diff);
+		schedule_timeout_uninterruptible(1);
+	}
+}
+
 static void shutdown_smi(void *send_info)
 {
 	struct smi_info *smi_info = send_info;
@@ -2191,16 +2210,13 @@
 	 * in the BMC.  Note that timers and CPU interrupts are off,
 	 * so no need for locks.
 	 */
-	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
-		poll(smi_info);
-		schedule_timeout_uninterruptible(1);
-	}
+	wait_msg_processed(smi_info);
+
 	if (smi_info->handlers)
 		disable_si_irq(smi_info);
-	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
-		poll(smi_info);
-		schedule_timeout_uninterruptible(1);
-	}
+
+	wait_msg_processed(smi_info);
+
 	if (smi_info->handlers)
 		smi_info->handlers->cleanup(smi_info->si_sm);
 
--- linux-ein-5.4.0.orig/drivers/char/ipmi/ipmi_si_platform.c
+++ linux-ein-5.4.0/drivers/char/ipmi/ipmi_si_platform.c
@@ -194,7 +194,7 @@
 	else
 		io.slave_addr = slave_addr;
 
-	io.irq = platform_get_irq(pdev, 0);
+	io.irq = platform_get_irq_optional(pdev, 0);
 	if (io.irq > 0)
 		io.irq_setup = ipmi_std_irq_setup;
 	else
@@ -378,7 +378,7 @@
 		io.irq = tmp;
 		io.irq_setup = acpi_gpe_irq_setup;
 	} else {
-		int irq = platform_get_irq(pdev, 0);
+		int irq = platform_get_irq_optional(pdev, 0);
 
 		if (irq > 0) {
 			io.irq = irq;
--- linux-ein-5.4.0.orig/drivers/char/ipmi/ipmi_ssif.c
+++ linux-ein-5.4.0/drivers/char/ipmi/ipmi_ssif.c
@@ -79,7 +79,8 @@
 /*
  * Timer values
  */
-#define SSIF_MSG_USEC		20000	/* 20ms between message tries. */
+#define SSIF_MSG_USEC		60000	/* 60ms between message tries (T3). */
+#define SSIF_REQ_RETRY_USEC	60000	/* 60ms between send retries (T6). */
 #define SSIF_MSG_PART_USEC	5000	/* 5ms for a message part */
 
 /* How many times to we retry sending/receiving the message. */
@@ -87,7 +88,9 @@
 #define	SSIF_RECV_RETRIES	250
 
 #define SSIF_MSG_MSEC		(SSIF_MSG_USEC / 1000)
+#define SSIF_REQ_RETRY_MSEC	(SSIF_REQ_RETRY_USEC / 1000)
 #define SSIF_MSG_JIFFIES	((SSIF_MSG_USEC * 1000) / TICK_NSEC)
+#define SSIF_REQ_RETRY_JIFFIES	((SSIF_REQ_RETRY_USEC * 1000) / TICK_NSEC)
 #define SSIF_MSG_PART_JIFFIES	((SSIF_MSG_PART_USEC * 1000) / TICK_NSEC)
 
 /*
@@ -97,7 +100,7 @@
 #define SSIF_WATCH_WATCHDOG_TIMEOUT	msecs_to_jiffies(250)
 
 enum ssif_intf_state {
-	SSIF_NORMAL,
+	SSIF_IDLE,
 	SSIF_GETTING_FLAGS,
 	SSIF_GETTING_EVENTS,
 	SSIF_CLEARING_FLAGS,
@@ -105,8 +108,8 @@
 	/* FIXME - add watchdog stuff. */
 };
 
-#define SSIF_IDLE(ssif)	 ((ssif)->ssif_state == SSIF_NORMAL \
-			  && (ssif)->curr_msg == NULL)
+#define IS_SSIF_IDLE(ssif) ((ssif)->ssif_state == SSIF_IDLE \
+			    && (ssif)->curr_msg == NULL)
 
 /*
  * Indexes into stats[] in ssif_info below.
@@ -236,6 +239,9 @@
 	bool		    got_alert;
 	bool		    waiting_alert;
 
+	/* Used to inform the timeout that it should do a resend. */
+	bool		    do_resend;
+
 	/*
 	 * If set to true, this will request events the next time the
 	 * state machine is idle.
@@ -248,12 +254,6 @@
 	 */
 	bool                req_flags;
 
-	/*
-	 * Used to perform timer operations when run-to-completion
-	 * mode is on.  This is a countdown timer.
-	 */
-	int                 rtc_us_timer;
-
 	/* Used for sending/receiving data.  +1 for the length. */
 	unsigned char data[IPMI_MAX_MSG_LENGTH + 1];
 	unsigned int  data_len;
@@ -353,9 +353,9 @@
 
 /*
  * Must be called with the message lock held.  This will release the
- * message lock.  Note that the caller will check SSIF_IDLE and start a
- * new operation, so there is no need to check for new messages to
- * start in here.
+ * message lock.  Note that the caller will check IS_SSIF_IDLE and
+ * start a new operation, so there is no need to check for new
+ * messages to start in here.
  */
 static void start_clear_flags(struct ssif_info *ssif_info, unsigned long *flags)
 {
@@ -372,7 +372,7 @@
 
 	if (start_send(ssif_info, msg, 3) != 0) {
 		/* Error, just go to normal state. */
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 	}
 }
 
@@ -387,7 +387,7 @@
 	mb[0] = (IPMI_NETFN_APP_REQUEST << 2);
 	mb[1] = IPMI_GET_MSG_FLAGS_CMD;
 	if (start_send(ssif_info, mb, 2) != 0)
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 }
 
 static void check_start_send(struct ssif_info *ssif_info, unsigned long *flags,
@@ -398,7 +398,7 @@
 
 		flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
 		ssif_info->curr_msg = NULL;
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 		ipmi_free_smi_msg(msg);
 	}
@@ -412,7 +412,7 @@
 
 	msg = ipmi_alloc_smi_msg();
 	if (!msg) {
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 		return;
 	}
@@ -435,7 +435,7 @@
 
 	msg = ipmi_alloc_smi_msg();
 	if (!msg) {
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 		return;
 	}
@@ -453,9 +453,9 @@
 
 /*
  * Must be called with the message lock held.  This will release the
- * message lock.  Note that the caller will check SSIF_IDLE and start a
- * new operation, so there is no need to check for new messages to
- * start in here.
+ * message lock.  Note that the caller will check IS_SSIF_IDLE and
+ * start a new operation, so there is no need to check for new
+ * messages to start in here.
  */
 static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags)
 {
@@ -471,7 +471,7 @@
 		/* Events available. */
 		start_event_fetch(ssif_info, flags);
 	else {
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 	}
 }
@@ -515,7 +515,7 @@
 	return 0;
 }
 
-static int ssif_i2c_send(struct ssif_info *ssif_info,
+static void ssif_i2c_send(struct ssif_info *ssif_info,
 			ssif_i2c_done handler,
 			int read_write, int command,
 			unsigned char *data, unsigned int size)
@@ -527,7 +527,6 @@
 	ssif_info->i2c_data = data;
 	ssif_info->i2c_size = size;
 	complete(&ssif_info->wake_thread);
-	return 0;
 }
 
 
@@ -536,40 +535,37 @@
 
 static void start_get(struct ssif_info *ssif_info)
 {
-	int rv;
-
-	ssif_info->rtc_us_timer = 0;
 	ssif_info->multi_pos = 0;
 
-	rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
-			  SSIF_IPMI_RESPONSE,
-			  ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
-	if (rv < 0) {
-		/* request failed, just return the error. */
-		if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
-			dev_dbg(&ssif_info->client->dev,
-				"Error from i2c_non_blocking_op(5)\n");
-
-		msg_done_handler(ssif_info, -EIO, NULL, 0);
-	}
+	ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
+		  SSIF_IPMI_RESPONSE,
+		  ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
 }
 
+static void start_resend(struct ssif_info *ssif_info);
+
 static void retry_timeout(struct timer_list *t)
 {
 	struct ssif_info *ssif_info = from_timer(ssif_info, t, retry_timer);
 	unsigned long oflags, *flags;
-	bool waiting;
+	bool waiting, resend;
 
 	if (ssif_info->stopping)
 		return;
 
 	flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
+	resend = ssif_info->do_resend;
+	ssif_info->do_resend = false;
 	waiting = ssif_info->waiting_alert;
 	ssif_info->waiting_alert = false;
 	ipmi_ssif_unlock_cond(ssif_info, flags);
 
 	if (waiting)
 		start_get(ssif_info);
+	if (resend) {
+		start_resend(ssif_info);
+		ssif_inc_stat(ssif_info, send_retries);
+	}
 }
 
 static void watch_timeout(struct timer_list *t)
@@ -584,7 +580,7 @@
 	if (ssif_info->watch_timeout) {
 		mod_timer(&ssif_info->watch_timer,
 			  jiffies + ssif_info->watch_timeout);
-		if (SSIF_IDLE(ssif_info)) {
+		if (IS_SSIF_IDLE(ssif_info)) {
 			start_flag_fetch(ssif_info, flags); /* Releases lock */
 			return;
 		}
@@ -618,14 +614,11 @@
 		start_get(ssif_info);
 }
 
-static int start_resend(struct ssif_info *ssif_info);
-
 static void msg_done_handler(struct ssif_info *ssif_info, int result,
 			     unsigned char *data, unsigned int len)
 {
 	struct ipmi_smi_msg *msg;
 	unsigned long oflags, *flags;
-	int rv;
 
 	/*
 	 * We are single-threaded here, so no need for a lock until we
@@ -639,7 +632,6 @@
 
 			flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
 			ssif_info->waiting_alert = true;
-			ssif_info->rtc_us_timer = SSIF_MSG_USEC;
 			if (!ssif_info->stopping)
 				mod_timer(&ssif_info->retry_timer,
 					  jiffies + SSIF_MSG_JIFFIES);
@@ -671,17 +663,10 @@
 		ssif_info->multi_len = len;
 		ssif_info->multi_pos = 1;
 
-		rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
-				  SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
-				  ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
-		if (rv < 0) {
-			if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
-				dev_dbg(&ssif_info->client->dev,
-					"Error from i2c_non_blocking_op(1)\n");
-
-			result = -EIO;
-		} else
-			return;
+		ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
+			 SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
+			 ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
+		return;
 	} else if (ssif_info->multi_pos) {
 		/* Middle of multi-part read.  Start the next transaction. */
 		int i;
@@ -743,19 +728,12 @@
 
 			ssif_info->multi_pos++;
 
-			rv = ssif_i2c_send(ssif_info, msg_done_handler,
-					   I2C_SMBUS_READ,
-					   SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
-					   ssif_info->recv,
-					   I2C_SMBUS_BLOCK_DATA);
-			if (rv < 0) {
-				if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
-					dev_dbg(&ssif_info->client->dev,
-						"Error from ssif_i2c_send\n");
-
-				result = -EIO;
-			} else
-				return;
+			ssif_i2c_send(ssif_info, msg_done_handler,
+				  I2C_SMBUS_READ,
+				  SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
+				  ssif_info->recv,
+				  I2C_SMBUS_BLOCK_DATA);
+			return;
 		}
 	}
 
@@ -775,15 +753,19 @@
 	flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
 	msg = ssif_info->curr_msg;
 	if (msg) {
+		if (data) {
+			if (len > IPMI_MAX_MSG_LENGTH)
+				len = IPMI_MAX_MSG_LENGTH;
+			memcpy(msg->rsp, data, len);
+		} else {
+			len = 0;
+		}
 		msg->rsp_size = len;
-		if (msg->rsp_size > IPMI_MAX_MSG_LENGTH)
-			msg->rsp_size = IPMI_MAX_MSG_LENGTH;
-		memcpy(msg->rsp, data, msg->rsp_size);
 		ssif_info->curr_msg = NULL;
 	}
 
 	switch (ssif_info->ssif_state) {
-	case SSIF_NORMAL:
+	case SSIF_IDLE:
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 		if (!msg)
 			break;
@@ -801,7 +783,7 @@
 			 * Error fetching flags, or invalid length,
 			 * just give up for now.
 			 */
-			ssif_info->ssif_state = SSIF_NORMAL;
+			ssif_info->ssif_state = SSIF_IDLE;
 			ipmi_ssif_unlock_cond(ssif_info, flags);
 			dev_warn(&ssif_info->client->dev,
 				 "Error getting flags: %d %d, %x\n",
@@ -809,9 +791,9 @@
 		} else if (data[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2
 			   || data[1] != IPMI_GET_MSG_FLAGS_CMD) {
 			/*
-			 * Don't abort here, maybe it was a queued
-			 * response to a previous command.
+			 * Recv error response, give up.
 			 */
+			ssif_info->ssif_state = SSIF_IDLE;
 			ipmi_ssif_unlock_cond(ssif_info, flags);
 			dev_warn(&ssif_info->client->dev,
 				 "Invalid response getting flags: %x %x\n",
@@ -836,11 +818,19 @@
 				 "Invalid response clearing flags: %x %x\n",
 				 data[0], data[1]);
 		}
-		ssif_info->ssif_state = SSIF_NORMAL;
+		ssif_info->ssif_state = SSIF_IDLE;
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 		break;
 
 	case SSIF_GETTING_EVENTS:
+		if (!msg) {
+			/* Should never happen, but just in case. */
+			dev_warn(&ssif_info->client->dev,
+				 "No message set while getting events\n");
+			ipmi_ssif_unlock_cond(ssif_info, flags);
+			break;
+		}
+
 		if ((result < 0) || (len < 3) || (msg->rsp[2] != 0)) {
 			/* Error getting event, probably done. */
 			msg->done(msg);
@@ -865,6 +855,14 @@
 		break;
 
 	case SSIF_GETTING_MESSAGES:
+		if (!msg) {
+			/* Should never happen, but just in case. */
+			dev_warn(&ssif_info->client->dev,
+				 "No message set while getting messages\n");
+			ipmi_ssif_unlock_cond(ssif_info, flags);
+			break;
+		}
+
 		if ((result < 0) || (len < 3) || (msg->rsp[2] != 0)) {
 			/* Error getting event, probably done. */
 			msg->done(msg);
@@ -888,10 +886,17 @@
 			deliver_recv_msg(ssif_info, msg);
 		}
 		break;
+
+	default:
+		/* Should never happen, but just in case. */
+		dev_warn(&ssif_info->client->dev,
+			 "Invalid state in message done handling: %d\n",
+			 ssif_info->ssif_state);
+		ipmi_ssif_unlock_cond(ssif_info, flags);
 	}
 
 	flags = ipmi_ssif_lock_cond(ssif_info, &oflags);
-	if (SSIF_IDLE(ssif_info) && !ssif_info->stopping) {
+	if (IS_SSIF_IDLE(ssif_info) && !ssif_info->stopping) {
 		if (ssif_info->req_events)
 			start_event_fetch(ssif_info, flags);
 		else if (ssif_info->req_flags)
@@ -909,37 +914,27 @@
 static void msg_written_handler(struct ssif_info *ssif_info, int result,
 				unsigned char *data, unsigned int len)
 {
-	int rv;
-
 	/* We are single-threaded here, so no need for a lock. */
 	if (result < 0) {
 		ssif_info->retries_left--;
 		if (ssif_info->retries_left > 0) {
-			if (!start_resend(ssif_info)) {
-				ssif_inc_stat(ssif_info, send_retries);
-				return;
-			}
-			/* request failed, just return the error. */
-			ssif_inc_stat(ssif_info, send_errors);
-
-			if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
-				dev_dbg(&ssif_info->client->dev,
-					"%s: Out of retries\n", __func__);
-			msg_done_handler(ssif_info, -EIO, NULL, 0);
+			/*
+			 * Wait the retry timeout time per the spec,
+			 * then redo the send.
+			 */
+			ssif_info->do_resend = true;
+			mod_timer(&ssif_info->retry_timer,
+				  jiffies + SSIF_REQ_RETRY_JIFFIES);
 			return;
 		}
 
 		ssif_inc_stat(ssif_info, send_errors);
 
-		/*
-		 * Got an error on transmit, let the done routine
-		 * handle it.
-		 */
 		if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
 			dev_dbg(&ssif_info->client->dev,
-				"%s: Error  %d\n", __func__, result);
+				"%s: Out of retries\n", __func__);
 
-		msg_done_handler(ssif_info, result, NULL, 0);
+		msg_done_handler(ssif_info, -EIO, NULL, 0);
 		return;
 	}
 
@@ -973,18 +968,9 @@
 			ssif_info->multi_data = NULL;
 		}
 
-		rv = ssif_i2c_send(ssif_info, msg_written_handler,
-				   I2C_SMBUS_WRITE, cmd,
-				   data_to_send, I2C_SMBUS_BLOCK_DATA);
-		if (rv < 0) {
-			/* request failed, just return the error. */
-			ssif_inc_stat(ssif_info, send_errors);
-
-			if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
-				dev_dbg(&ssif_info->client->dev,
-					"Error from i2c_non_blocking_op(3)\n");
-			msg_done_handler(ssif_info, -EIO, NULL, 0);
-		}
+		ssif_i2c_send(ssif_info, msg_written_handler,
+			  I2C_SMBUS_WRITE, cmd,
+			  data_to_send, I2C_SMBUS_BLOCK_DATA);
 	} else {
 		/* Ready to request the result. */
 		unsigned long oflags, *flags;
@@ -1002,7 +988,6 @@
 			/* Wait a jiffie then request the next message */
 			ssif_info->waiting_alert = true;
 			ssif_info->retries_left = SSIF_RECV_RETRIES;
-			ssif_info->rtc_us_timer = SSIF_MSG_PART_USEC;
 			if (!ssif_info->stopping)
 				mod_timer(&ssif_info->retry_timer,
 					  jiffies + SSIF_MSG_PART_JIFFIES);
@@ -1011,9 +996,8 @@
 	}
 }
 
-static int start_resend(struct ssif_info *ssif_info)
+static void start_resend(struct ssif_info *ssif_info)
 {
-	int rv;
 	int command;
 
 	ssif_info->got_alert = false;
@@ -1035,12 +1019,8 @@
 		ssif_info->data[0] = ssif_info->data_len;
 	}
 
-	rv = ssif_i2c_send(ssif_info, msg_written_handler, I2C_SMBUS_WRITE,
-			  command, ssif_info->data, I2C_SMBUS_BLOCK_DATA);
-	if (rv && (ssif_info->ssif_debug & SSIF_DEBUG_MSG))
-		dev_dbg(&ssif_info->client->dev,
-			"Error from i2c_non_blocking_op(4)\n");
-	return rv;
+	ssif_i2c_send(ssif_info, msg_written_handler, I2C_SMBUS_WRITE,
+		   command, ssif_info->data, I2C_SMBUS_BLOCK_DATA);
 }
 
 static int start_send(struct ssif_info *ssif_info,
@@ -1055,7 +1035,8 @@
 	ssif_info->retries_left = SSIF_SEND_RETRIES;
 	memcpy(ssif_info->data + 1, data, len);
 	ssif_info->data_len = len;
-	return start_resend(ssif_info);
+	start_resend(ssif_info);
+	return 0;
 }
 
 /* Must be called with the message lock held. */
@@ -1065,7 +1046,7 @@
 	unsigned long oflags;
 
  restart:
-	if (!SSIF_IDLE(ssif_info)) {
+	if (!IS_SSIF_IDLE(ssif_info)) {
 		ipmi_ssif_unlock_cond(ssif_info, flags);
 		return;
 	}
@@ -1288,7 +1269,7 @@
 	dev_set_drvdata(&ssif_info->client->dev, NULL);
 
 	/* make sure the driver is not looking for flags any more. */
-	while (ssif_info->ssif_state != SSIF_NORMAL)
+	while (ssif_info->ssif_state != SSIF_IDLE)
 		schedule_timeout(1);
 
 	ssif_info->stopping = true;
@@ -1355,8 +1336,10 @@
 	ret = i2c_smbus_write_block_data(client, SSIF_IPMI_REQUEST, len, msg);
 	if (ret) {
 		retry_cnt--;
-		if (retry_cnt > 0)
+		if (retry_cnt > 0) {
+			msleep(SSIF_REQ_RETRY_MSEC);
 			goto retry1;
+		}
 		return -ENODEV;
 	}
 
@@ -1427,7 +1410,7 @@
 restart:
 	list_for_each_entry(info, &ssif_infos, link) {
 		if (info->binfo.addr == addr) {
-			if (info->addr_src == SI_SMBIOS)
+			if (info->addr_src == SI_SMBIOS && !info->adapter_name)
 				info->adapter_name = kstrdup(adapter_name,
 							     GFP_KERNEL);
 
@@ -1496,8 +1479,10 @@
 					 32, msg);
 	if (ret) {
 		retry_cnt--;
-		if (retry_cnt > 0)
+		if (retry_cnt > 0) {
+			msleep(SSIF_REQ_RETRY_MSEC);
 			goto retry_write;
+		}
 		dev_err(&client->dev, "Could not write multi-part start, though the BMC said it could handle it.  Just limit sends to one part.\n");
 		return ret;
 	}
@@ -1624,6 +1609,11 @@
 	info->addr_src = SI_ACPI;
 	info->client = client;
 	info->adapter_name = kstrdup(client->adapter->name, GFP_KERNEL);
+	if (!info->adapter_name) {
+		kfree(info);
+		return -ENOMEM;
+	}
+
 	info->binfo.addr = client->addr;
 	list_add_tail(&info->link, &ssif_infos);
 	return 0;
@@ -1700,6 +1690,9 @@
 		}
 	}
 
+	ssif_info->client = client;
+	i2c_set_clientdata(client, ssif_info);
+
 	rv = ssif_check_and_remove(client, ssif_info);
 	/* If rv is 0 and addr source is not SI_ACPI, continue probing */
 	if (!rv && ssif_info->addr_source == SI_ACPI) {
@@ -1720,9 +1713,6 @@
 		ipmi_addr_src_to_str(ssif_info->addr_source),
 		client->addr, client->adapter->name, slave_addr);
 
-	ssif_info->client = client;
-	i2c_set_clientdata(client, ssif_info);
-
 	/* Now check for system interface capabilities */
 	msg[0] = IPMI_NETFN_APP_REQUEST << 2;
 	msg[1] = IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_CMD;
@@ -1859,7 +1849,7 @@
 	}
 
 	spin_lock_init(&ssif_info->lock);
-	ssif_info->ssif_state = SSIF_NORMAL;
+	ssif_info->ssif_state = SSIF_IDLE;
 	timer_setup(&ssif_info->retry_timer, retry_timeout, 0);
 	timer_setup(&ssif_info->watch_timer, watch_timeout, 0);
 
@@ -1922,6 +1912,7 @@
 
 		dev_err(&ssif_info->client->dev,
 			"Unable to start IPMI SSIF: %d\n", rv);
+		i2c_set_clientdata(client, NULL);
 		kfree(ssif_info);
 	}
 	kfree(resp);
--- linux-ein-5.4.0.orig/drivers/char/ipmi/ipmi_watchdog.c
+++ linux-ein-5.4.0/drivers/char/ipmi/ipmi_watchdog.c
@@ -337,13 +337,17 @@
 static DECLARE_COMPLETION(msg_wait);
 static void msg_free_smi(struct ipmi_smi_msg *msg)
 {
-	if (atomic_dec_and_test(&msg_tofree))
-		complete(&msg_wait);
+	if (atomic_dec_and_test(&msg_tofree)) {
+		if (!oops_in_progress)
+			complete(&msg_wait);
+	}
 }
 static void msg_free_recv(struct ipmi_recv_msg *msg)
 {
-	if (atomic_dec_and_test(&msg_tofree))
-		complete(&msg_wait);
+	if (atomic_dec_and_test(&msg_tofree)) {
+		if (!oops_in_progress)
+			complete(&msg_wait);
+	}
 }
 static struct ipmi_smi_msg smi_msg = {
 	.done = msg_free_smi
@@ -366,16 +370,18 @@
 	data[0] = 0;
 	WDOG_SET_TIMER_USE(data[0], WDOG_TIMER_USE_SMS_OS);
 
-	if ((ipmi_version_major > 1)
-	    || ((ipmi_version_major == 1) && (ipmi_version_minor >= 5))) {
-		/* This is an IPMI 1.5-only feature. */
-		data[0] |= WDOG_DONT_STOP_ON_SET;
-	} else if (ipmi_watchdog_state != WDOG_TIMEOUT_NONE) {
-		/*
-		 * In ipmi 1.0, setting the timer stops the watchdog, we
-		 * need to start it back up again.
-		 */
-		hbnow = 1;
+	if (ipmi_watchdog_state != WDOG_TIMEOUT_NONE) {
+		if ((ipmi_version_major > 1) ||
+		    ((ipmi_version_major == 1) && (ipmi_version_minor >= 5))) {
+			/* This is an IPMI 1.5-only feature. */
+			data[0] |= WDOG_DONT_STOP_ON_SET;
+		} else {
+			/*
+			 * In ipmi 1.0, setting the timer stops the watchdog, we
+			 * need to start it back up again.
+			 */
+			hbnow = 1;
+		}
 	}
 
 	data[1] = 0;
@@ -427,8 +433,10 @@
 	rv = __ipmi_set_timeout(&smi_msg,
 				&recv_msg,
 				&send_heartbeat_now);
-	if (rv)
+	if (rv) {
+		atomic_set(&msg_tofree, 0);
 		return rv;
+	}
 
 	wait_for_completion(&msg_wait);
 
@@ -490,7 +498,7 @@
 	msg.cmd = IPMI_WDOG_RESET_TIMER;
 	msg.data = NULL;
 	msg.data_len = 0;
-	atomic_add(1, &panic_done_count);
+	atomic_add(2, &panic_done_count);
 	rv = ipmi_request_supply_msgs(watchdog_user,
 				      (struct ipmi_addr *) &addr,
 				      0,
@@ -500,7 +508,7 @@
 				      &panic_halt_heartbeat_recv_msg,
 				      1);
 	if (rv)
-		atomic_sub(1, &panic_done_count);
+		atomic_sub(2, &panic_done_count);
 }
 
 static struct ipmi_smi_msg panic_halt_smi_msg = {
@@ -524,12 +532,12 @@
 	/* Wait for the messages to be free. */
 	while (atomic_read(&panic_done_count) != 0)
 		ipmi_poll_interface(watchdog_user);
-	atomic_add(1, &panic_done_count);
+	atomic_add(2, &panic_done_count);
 	rv = __ipmi_set_timeout(&panic_halt_smi_msg,
 				&panic_halt_recv_msg,
 				&send_heartbeat_now);
 	if (rv) {
-		atomic_sub(1, &panic_done_count);
+		atomic_sub(2, &panic_done_count);
 		pr_warn("Unable to extend the watchdog timeout\n");
 	} else {
 		if (send_heartbeat_now)
@@ -573,6 +581,7 @@
 				      &recv_msg,
 				      1);
 	if (rv) {
+		atomic_set(&msg_tofree, 0);
 		pr_warn("heartbeat send failure: %d\n", rv);
 		return rv;
 	}
--- linux-ein-5.4.0.orig/drivers/char/lp.c
+++ linux-ein-5.4.0/drivers/char/lp.c
@@ -713,6 +713,10 @@
 	if (copy_from_user(karg, arg, sizeof(karg)))
 		return -EFAULT;
 
+	/* sparc64 suseconds_t is 32-bit only */
+	if (IS_ENABLED(CONFIG_SPARC64) && !in_compat_syscall())
+		karg[1] >>= 32;
+
 	return lp_set_timeout(minor, karg[0], karg[1]);
 }
 
--- linux-ein-5.4.0.orig/drivers/char/mem.c
+++ linux-ein-5.4.0/drivers/char/mem.c
@@ -31,11 +31,15 @@
 #include <linux/uio.h>
 #include <linux/uaccess.h>
 #include <linux/security.h>
+#include <linux/pseudo_fs.h>
+#include <uapi/linux/magic.h>
+#include <linux/mount.h>
 
 #ifdef CONFIG_IA64
 # include <linux/efi.h>
 #endif
 
+#define DEVMEM_MINOR	1
 #define DEVPORT_MINOR	4
 
 static inline unsigned long size_inside_page(unsigned long start,
@@ -805,12 +809,65 @@
 	return ret;
 }
 
+static struct inode *devmem_inode;
+
+#ifdef CONFIG_IO_STRICT_DEVMEM
+void revoke_devmem(struct resource *res)
+{
+	/* pairs with smp_store_release() in devmem_init_inode() */
+	struct inode *inode = smp_load_acquire(&devmem_inode);
+
+	/*
+	 * Check that the initialization has completed. Losing the race
+	 * is ok because it means drivers are claiming resources before
+	 * the fs_initcall level of init and prevent /dev/mem from
+	 * establishing mappings.
+	 */
+	if (!inode)
+		return;
+
+	/*
+	 * The expectation is that the driver has successfully marked
+	 * the resource busy by this point, so devmem_is_allowed()
+	 * should start returning false, however for performance this
+	 * does not iterate the entire resource range.
+	 */
+	if (devmem_is_allowed(PHYS_PFN(res->start)) &&
+	    devmem_is_allowed(PHYS_PFN(res->end))) {
+		/*
+		 * *cringe* iomem=relaxed says "go ahead, what's the
+		 * worst that can happen?"
+		 */
+		return;
+	}
+
+	unmap_mapping_range(inode->i_mapping, res->start, resource_size(res), 1);
+}
+#endif
+
 static int open_port(struct inode *inode, struct file *filp)
 {
+	int rc;
+
 	if (!capable(CAP_SYS_RAWIO))
 		return -EPERM;
 
-	return security_locked_down(LOCKDOWN_DEV_MEM);
+	rc = security_locked_down(LOCKDOWN_DEV_MEM);
+	if (rc)
+		return rc;
+
+	if (iminor(inode) != DEVMEM_MINOR)
+		return 0;
+
+	/*
+	 * Use a unified address space to have a single point to manage
+	 * revocations when drivers want to take over a /dev/mem mapped
+	 * range.
+	 */
+	inode->i_mapping = devmem_inode->i_mapping;
+	filp->f_mapping = inode->i_mapping;
+
+	return 0;
 }
 
 #define zero_lseek	null_lseek
@@ -885,7 +942,7 @@
 	fmode_t fmode;
 } devlist[] = {
 #ifdef CONFIG_DEVMEM
-	 [1] = { "mem", 0, &mem_fops, FMODE_UNSIGNED_OFFSET },
+	 [DEVMEM_MINOR] = { "mem", 0, &mem_fops, FMODE_UNSIGNED_OFFSET },
 #endif
 #ifdef CONFIG_DEVKMEM
 	 [2] = { "kmem", 0, &kmem_fops, FMODE_UNSIGNED_OFFSET },
@@ -896,8 +953,8 @@
 #endif
 	 [5] = { "zero", 0666, &zero_fops, 0 },
 	 [7] = { "full", 0666, &full_fops, 0 },
-	 [8] = { "random", 0666, &random_fops, 0 },
-	 [9] = { "urandom", 0666, &urandom_fops, 0 },
+	 [8] = { "random", 0666, &random_fops, FMODE_NOWAIT },
+	 [9] = { "urandom", 0666, &urandom_fops, FMODE_NOWAIT },
 #ifdef CONFIG_PRINTK
 	[11] = { "kmsg", 0644, &kmsg_fops, 0 },
 #endif
@@ -939,6 +996,48 @@
 
 static struct class *mem_class;
 
+static int devmem_fs_init_fs_context(struct fs_context *fc)
+{
+	return init_pseudo(fc, DEVMEM_MAGIC) ? 0 : -ENOMEM;
+}
+
+static struct file_system_type devmem_fs_type = {
+	.name		= "devmem",
+	.owner		= THIS_MODULE,
+	.init_fs_context = devmem_fs_init_fs_context,
+	.kill_sb	= kill_anon_super,
+};
+
+static int devmem_init_inode(void)
+{
+	static struct vfsmount *devmem_vfs_mount;
+	static int devmem_fs_cnt;
+	struct inode *inode;
+	int rc;
+
+	rc = simple_pin_fs(&devmem_fs_type, &devmem_vfs_mount, &devmem_fs_cnt);
+	if (rc < 0) {
+		pr_err("Cannot mount /dev/mem pseudo filesystem: %d\n", rc);
+		return rc;
+	}
+
+	inode = alloc_anon_inode(devmem_vfs_mount->mnt_sb);
+	if (IS_ERR(inode)) {
+		rc = PTR_ERR(inode);
+		pr_err("Cannot allocate inode for /dev/mem: %d\n", rc);
+		simple_release_fs(&devmem_vfs_mount, &devmem_fs_cnt);
+		return rc;
+	}
+
+	/*
+	 * Publish /dev/mem initialized.
+	 * Pairs with smp_load_acquire() in revoke_devmem().
+	 */
+	smp_store_release(&devmem_inode, inode);
+
+	return 0;
+}
+
 static int __init chr_dev_init(void)
 {
 	int minor;
@@ -960,6 +1059,8 @@
 		 */
 		if ((minor == DEVPORT_MINOR) && !arch_has_dev_port())
 			continue;
+		if ((minor == DEVMEM_MINOR) && devmem_init_inode() != 0)
+			continue;
 
 		device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
 			      NULL, devlist[minor].name);
--- linux-ein-5.4.0.orig/drivers/char/mwave/3780i.h
+++ linux-ein-5.4.0/drivers/char/mwave/3780i.h
@@ -68,7 +68,7 @@
 	unsigned char ClockControl:1;	/* RW: Clock control: 0=normal, 1=stop 3780i clocks */
 	unsigned char SoftReset:1;	/* RW: Soft reset 0=normal, 1=soft reset active */
 	unsigned char ConfigMode:1;	/* RW: Configuration mode, 0=normal, 1=config mode */
-	unsigned char Reserved:5;	/* 0: Reserved */
+	unsigned short Reserved:13;	/* 0: Reserved */
 } DSP_ISA_SLAVE_CONTROL;
 
 
--- linux-ein-5.4.0.orig/drivers/char/pcmcia/cm4000_cs.c
+++ linux-ein-5.4.0/drivers/char/pcmcia/cm4000_cs.c
@@ -544,6 +544,10 @@
 		io_read_num_rec_bytes(iobase, &num_bytes_read);
 		if (num_bytes_read >= 4) {
 			DEBUGP(2, dev, "NumRecBytes = %i\n", num_bytes_read);
+			if (num_bytes_read > 4) {
+				rc = -EIO;
+				goto exit_setprotocol;
+			}
 			break;
 		}
 		usleep_range(10000, 11000);
--- linux-ein-5.4.0.orig/drivers/char/ppdev.c
+++ linux-ein-5.4.0/drivers/char/ppdev.c
@@ -619,20 +619,27 @@
 		if (copy_from_user(time32, argp, sizeof(time32)))
 			return -EFAULT;
 
+		if ((time32[0] < 0) || (time32[1] < 0))
+			return -EINVAL;
+
 		return pp_set_timeout(pp->pdev, time32[0], time32[1]);
 
 	case PPSETTIME64:
 		if (copy_from_user(time64, argp, sizeof(time64)))
 			return -EFAULT;
 
+		if ((time64[0] < 0) || (time64[1] < 0))
+			return -EINVAL;
+
+		if (IS_ENABLED(CONFIG_SPARC64) && !in_compat_syscall())
+			time64[1] >>= 32;
+
 		return pp_set_timeout(pp->pdev, time64[0], time64[1]);
 
 	case PPGETTIME32:
 		jiffies_to_timespec64(pp->pdev->timeout, &ts);
 		time32[0] = ts.tv_sec;
 		time32[1] = ts.tv_nsec / NSEC_PER_USEC;
-		if ((time32[0] < 0) || (time32[1] < 0))
-			return -EINVAL;
 
 		if (copy_to_user(argp, time32, sizeof(time32)))
 			return -EFAULT;
@@ -643,8 +650,9 @@
 		jiffies_to_timespec64(pp->pdev->timeout, &ts);
 		time64[0] = ts.tv_sec;
 		time64[1] = ts.tv_nsec / NSEC_PER_USEC;
-		if ((time64[0] < 0) || (time64[1] < 0))
-			return -EINVAL;
+
+		if (IS_ENABLED(CONFIG_SPARC64) && !in_compat_syscall())
+			time64[1] <<= 32;
 
 		if (copy_to_user(argp, time64, sizeof(time64)))
 			return -EFAULT;
--- linux-ein-5.4.0.orig/drivers/char/random.c
+++ linux-ein-5.4.0/drivers/char/random.c
@@ -1,312 +1,30 @@
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
 /*
- * random.c -- A strong random number generator
- *
- * Copyright (C) 2017 Jason A. Donenfeld <Jason@zx2c4.com>. All
- * Rights Reserved.
- *
+ * Copyright (C) 2017-2022 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
  * Copyright Matt Mackall <mpm@selenic.com>, 2003, 2004, 2005
+ * Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights reserved.
  *
- * Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999.  All
- * rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, and the entire permission notice in its entirety,
- *    including the disclaimer of warranties.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- *    products derived from this software without specific prior
- *    written permission.
- *
- * ALTERNATIVELY, this product may be distributed under the terms of
- * the GNU General Public License, in which case the provisions of the GPL are
- * required INSTEAD OF the above restrictions.  (This clause is
- * necessary due to a potential bad interaction between the GPL and
- * the restrictions contained in a BSD-style copyright.)
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
- * WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- */
-
-/*
- * (now, with legal B.S. out of the way.....)
- *
- * This routine gathers environmental noise from device drivers, etc.,
- * and returns good random numbers, suitable for cryptographic use.
- * Besides the obvious cryptographic uses, these numbers are also good
- * for seeding TCP sequence numbers, and other places where it is
- * desirable to have numbers which are not only random, but hard to
- * predict by an attacker.
- *
- * Theory of operation
- * ===================
- *
- * Computers are very predictable devices.  Hence it is extremely hard
- * to produce truly random numbers on a computer --- as opposed to
- * pseudo-random numbers, which can easily generated by using a
- * algorithm.  Unfortunately, it is very easy for attackers to guess
- * the sequence of pseudo-random number generators, and for some
- * applications this is not acceptable.  So instead, we must try to
- * gather "environmental noise" from the computer's environment, which
- * must be hard for outside attackers to observe, and use that to
- * generate random numbers.  In a Unix environment, this is best done
- * from inside the kernel.
- *
- * Sources of randomness from the environment include inter-keyboard
- * timings, inter-interrupt timings from some interrupts, and other
- * events which are both (a) non-deterministic and (b) hard for an
- * outside observer to measure.  Randomness from these sources are
- * added to an "entropy pool", which is mixed using a CRC-like function.
- * This is not cryptographically strong, but it is adequate assuming
- * the randomness is not chosen maliciously, and it is fast enough that
- * the overhead of doing it on every interrupt is very reasonable.
- * As random bytes are mixed into the entropy pool, the routines keep
- * an *estimate* of how many bits of randomness have been stored into
- * the random number generator's internal state.
- *
- * When random bytes are desired, they are obtained by taking the SHA
- * hash of the contents of the "entropy pool".  The SHA hash avoids
- * exposing the internal state of the entropy pool.  It is believed to
- * be computationally infeasible to derive any useful information
- * about the input of SHA from its output.  Even if it is possible to
- * analyze SHA in some clever way, as long as the amount of data
- * returned from the generator is less than the inherent entropy in
- * the pool, the output data is totally unpredictable.  For this
- * reason, the routine decreases its internal estimate of how many
- * bits of "true randomness" are contained in the entropy pool as it
- * outputs random numbers.
- *
- * If this estimate goes to zero, the routine can still generate
- * random numbers; however, an attacker may (at least in theory) be
- * able to infer the future output of the generator from prior
- * outputs.  This requires successful cryptanalysis of SHA, which is
- * not believed to be feasible, but there is a remote possibility.
- * Nonetheless, these numbers should be useful for the vast majority
- * of purposes.
- *
- * Exported interfaces ---- output
- * ===============================
- *
- * There are four exported interfaces; two for use within the kernel,
- * and two or use from userspace.
- *
- * Exported interfaces ---- userspace output
- * -----------------------------------------
- *
- * The userspace interfaces are two character devices /dev/random and
- * /dev/urandom.  /dev/random is suitable for use when very high
- * quality randomness is desired (for example, for key generation or
- * one-time pads), as it will only return a maximum of the number of
- * bits of randomness (as estimated by the random number generator)
- * contained in the entropy pool.
- *
- * The /dev/urandom device does not have this limit, and will return
- * as many bytes as are requested.  As more and more random bytes are
- * requested without giving time for the entropy pool to recharge,
- * this will result in random numbers that are merely cryptographically
- * strong.  For many applications, however, this is acceptable.
- *
- * Exported interfaces ---- kernel output
- * --------------------------------------
- *
- * The primary kernel interface is
- *
- * 	void get_random_bytes(void *buf, int nbytes);
- *
- * This interface will return the requested number of random bytes,
- * and place it in the requested buffer.  This is equivalent to a
- * read from /dev/urandom.
- *
- * For less critical applications, there are the functions:
- *
- * 	u32 get_random_u32()
- * 	u64 get_random_u64()
- * 	unsigned int get_random_int()
- * 	unsigned long get_random_long()
- *
- * These are produced by a cryptographic RNG seeded from get_random_bytes,
- * and so do not deplete the entropy pool as much.  These are recommended
- * for most in-kernel operations *if the result is going to be stored in
- * the kernel*.
- *
- * Specifically, the get_random_int() family do not attempt to do
- * "anti-backtracking".  If you capture the state of the kernel (e.g.
- * by snapshotting the VM), you can figure out previous get_random_int()
- * return values.  But if the value is stored in the kernel anyway,
- * this is not a problem.
- *
- * It *is* safe to expose get_random_int() output to attackers (e.g. as
- * network cookies); given outputs 1..n, it's not feasible to predict
- * outputs 0 or n+1.  The only concern is an attacker who breaks into
- * the kernel later; the get_random_int() engine is not reseeded as
- * often as the get_random_bytes() one.
- *
- * get_random_bytes() is needed for keys that need to stay secret after
- * they are erased from the kernel.  For example, any key that will
- * be wrapped and stored encrypted.  And session encryption keys: we'd
- * like to know that after the session is closed and the keys erased,
- * the plaintext is unrecoverable to someone who recorded the ciphertext.
- *
- * But for network ports/cookies, stack canaries, PRNG seeds, address
- * space layout randomization, session *authentication* keys, or other
- * applications where the sensitive data is stored in the kernel in
- * plaintext for as long as it's sensitive, the get_random_int() family
- * is just fine.
- *
- * Consider ASLR.  We want to keep the address space secret from an
- * outside attacker while the process is running, but once the address
- * space is torn down, it's of no use to an attacker any more.  And it's
- * stored in kernel data structures as long as it's alive, so worrying
- * about an attacker's ability to extrapolate it from the get_random_int()
- * CRNG is silly.
- *
- * Even some cryptographic keys are safe to generate with get_random_int().
- * In particular, keys for SipHash are generally fine.  Here, knowledge
- * of the key authorizes you to do something to a kernel object (inject
- * packets to a network connection, or flood a hash table), and the
- * key is stored with the object being protected.  Once it goes away,
- * we no longer care if anyone knows the key.
- *
- * prandom_u32()
- * -------------
- *
- * For even weaker applications, see the pseudorandom generator
- * prandom_u32(), prandom_max(), and prandom_bytes().  If the random
- * numbers aren't security-critical at all, these are *far* cheaper.
- * Useful for self-tests, random error simulation, randomized backoffs,
- * and any other application where you trust that nobody is trying to
- * maliciously mess with you by guessing the "random" numbers.
- *
- * Exported interfaces ---- input
- * ==============================
- *
- * The current exported interfaces for gathering environmental noise
- * from the devices are:
- *
- *	void add_device_randomness(const void *buf, unsigned int size);
- * 	void add_input_randomness(unsigned int type, unsigned int code,
- *                                unsigned int value);
- *	void add_interrupt_randomness(int irq, int irq_flags);
- * 	void add_disk_randomness(struct gendisk *disk);
- *
- * add_device_randomness() is for adding data to the random pool that
- * is likely to differ between two devices (or possibly even per boot).
- * This would be things like MAC addresses or serial numbers, or the
- * read-out of the RTC. This does *not* add any actual entropy to the
- * pool, but it initializes the pool to different values for devices
- * that might otherwise be identical and have very little entropy
- * available to them (particularly common in the embedded world).
- *
- * add_input_randomness() uses the input layer interrupt timing, as well as
- * the event type information from the hardware.
- *
- * add_interrupt_randomness() uses the interrupt timing as random
- * inputs to the entropy pool. Using the cycle counters and the irq source
- * as inputs, it feeds the randomness roughly once a second.
- *
- * add_disk_randomness() uses what amounts to the seek time of block
- * layer request events, on a per-disk_devt basis, as input to the
- * entropy pool. Note that high-speed solid state drives with very low
- * seek times do not make for good sources of entropy, as their seek
- * times are usually fairly consistent.
+ * This driver produces cryptographically secure pseudorandom data. It is divided
+ * into roughly six sections, each with a section header:
  *
- * All of these routines try to estimate how many bits of randomness a
- * particular randomness source.  They do this by keeping track of the
- * first and second order deltas of the event timings.
- *
- * Ensuring unpredictability at system startup
- * ============================================
- *
- * When any operating system starts up, it will go through a sequence
- * of actions that are fairly predictable by an adversary, especially
- * if the start-up does not involve interaction with a human operator.
- * This reduces the actual number of bits of unpredictability in the
- * entropy pool below the value in entropy_count.  In order to
- * counteract this effect, it helps to carry information in the
- * entropy pool across shut-downs and start-ups.  To do this, put the
- * following lines an appropriate script which is run during the boot
- * sequence:
- *
- *	echo "Initializing random number generator..."
- *	random_seed=/var/run/random-seed
- *	# Carry a random seed from start-up to start-up
- *	# Load and then save the whole entropy pool
- *	if [ -f $random_seed ]; then
- *		cat $random_seed >/dev/urandom
- *	else
- *		touch $random_seed
- *	fi
- *	chmod 600 $random_seed
- *	dd if=/dev/urandom of=$random_seed count=1 bs=512
- *
- * and the following lines in an appropriate script which is run as
- * the system is shutdown:
- *
- *	# Carry a random seed from shut-down to start-up
- *	# Save the whole entropy pool
- *	echo "Saving random seed..."
- *	random_seed=/var/run/random-seed
- *	touch $random_seed
- *	chmod 600 $random_seed
- *	dd if=/dev/urandom of=$random_seed count=1 bs=512
- *
- * For example, on most modern systems using the System V init
- * scripts, such code fragments would be found in
- * /etc/rc.d/init.d/random.  On older Linux systems, the correct script
- * location might be in /etc/rcb.d/rc.local or /etc/rc.d/rc.0.
- *
- * Effectively, these commands cause the contents of the entropy pool
- * to be saved at shut-down time and reloaded into the entropy pool at
- * start-up.  (The 'dd' in the addition to the bootup script is to
- * make sure that /etc/random-seed is different for every start-up,
- * even if the system crashes without executing rc.0.)  Even with
- * complete knowledge of the start-up activities, predicting the state
- * of the entropy pool requires knowledge of the previous history of
- * the system.
- *
- * Configuring the /dev/random driver under Linux
- * ==============================================
- *
- * The /dev/random driver under Linux uses minor numbers 8 and 9 of
- * the /dev/mem major number (#1).  So if your system does not have
- * /dev/random and /dev/urandom created already, they can be created
- * by using the commands:
- *
- * 	mknod /dev/random c 1 8
- * 	mknod /dev/urandom c 1 9
- *
- * Acknowledgements:
- * =================
- *
- * Ideas for constructing this random number generator were derived
- * from Pretty Good Privacy's random number generator, and from private
- * discussions with Phil Karn.  Colin Plumb provided a faster random
- * number generator, which speed up the mixing function of the entropy
- * pool, taken from PGPfone.  Dale Worley has also contributed many
- * useful ideas and suggestions to improve this driver.
- *
- * Any flaws in the design are solely my responsibility, and should
- * not be attributed to the Phil, Colin, or any of authors of PGP.
- *
- * Further background information on this topic may be obtained from
- * RFC 1750, "Randomness Recommendations for Security", by Donald
- * Eastlake, Steve Crocker, and Jeff Schiller.
+ *   - Initialization and readiness waiting.
+ *   - Fast key erasure RNG, the "crng".
+ *   - Entropy accumulation and extraction routines.
+ *   - Entropy collection routines.
+ *   - Userspace reader/writer interfaces.
+ *   - Sysctl interface.
+ *
+ * The high level overview is that there is one input pool, into which
+ * various pieces of data are hashed. Prior to initialization, some of that
+ * data is then "credited" as having a certain number of bits of entropy.
+ * When enough bits of entropy are available, the hash is finalized and
+ * handed as a key to a stream cipher that expands it indefinitely for
+ * various consumers. This key is periodically refreshed as the various
+ * entropy collectors, described below, add data to the input pool.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/utsname.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -325,8 +43,6 @@
 #include <linux/spinlock.h>
 #include <linux/kthread.h>
 #include <linux/percpu.h>
-#include <linux/cryptohash.h>
-#include <linux/fips.h>
 #include <linux/ptrace.h>
 #include <linux/workqueue.h>
 #include <linux/irq.h>
@@ -334,1403 +50,1085 @@
 #include <linux/syscalls.h>
 #include <linux/completion.h>
 #include <linux/uuid.h>
+#include <linux/uaccess.h>
+#include <linux/siphash.h>
+#include <linux/uio.h>
 #include <crypto/chacha.h>
-
+#include <crypto/blake2s.h>
 #include <asm/processor.h>
-#include <linux/uaccess.h>
 #include <asm/irq.h>
 #include <asm/irq_regs.h>
 #include <asm/io.h>
 
-#define CREATE_TRACE_POINTS
-#include <trace/events/random.h>
-
-/* #define ADD_INTERRUPT_BENCH */
-
-/*
- * Configuration information
- */
-#define INPUT_POOL_SHIFT	12
-#define INPUT_POOL_WORDS	(1 << (INPUT_POOL_SHIFT-5))
-#define OUTPUT_POOL_SHIFT	10
-#define OUTPUT_POOL_WORDS	(1 << (OUTPUT_POOL_SHIFT-5))
-#define SEC_XFER_SIZE		512
-#define EXTRACT_SIZE		10
-
-
-#define LONGS(x) (((x) + sizeof(unsigned long) - 1)/sizeof(unsigned long))
-
-/*
- * To allow fractional bits to be tracked, the entropy_count field is
- * denominated in units of 1/8th bits.
- *
- * 2*(ENTROPY_SHIFT + poolbitshift) must <= 31, or the multiply in
- * credit_entropy_bits() needs to be 64 bits wide.
- */
-#define ENTROPY_SHIFT 3
-#define ENTROPY_BITS(r) ((r)->entropy_count >> ENTROPY_SHIFT)
-
-/*
- * The minimum number of bits of entropy before we wake up a read on
- * /dev/random.  Should be enough to do a significant reseed.
- */
-static int random_read_wakeup_bits = 64;
-
-/*
- * If the entropy count falls under this number of bits, then we
- * should wake up processes which are selecting or polling on write
- * access to /dev/random.
- */
-static int random_write_wakeup_bits = 28 * OUTPUT_POOL_WORDS;
-
-/*
- * Originally, we used a primitive polynomial of degree .poolwords
- * over GF(2).  The taps for various sizes are defined below.  They
- * were chosen to be evenly spaced except for the last tap, which is 1
- * to get the twisting happening as fast as possible.
- *
- * For the purposes of better mixing, we use the CRC-32 polynomial as
- * well to make a (modified) twisted Generalized Feedback Shift
- * Register.  (See M. Matsumoto & Y. Kurita, 1992.  Twisted GFSR
- * generators.  ACM Transactions on Modeling and Computer Simulation
- * 2(3):179-194.  Also see M. Matsumoto & Y. Kurita, 1994.  Twisted
- * GFSR generators II.  ACM Transactions on Modeling and Computer
- * Simulation 4:254-266)
- *
- * Thanks to Colin Plumb for suggesting this.
- *
- * The mixing operation is much less sensitive than the output hash,
- * where we use SHA-1.  All that we want of mixing operation is that
- * it be a good non-cryptographic hash; i.e. it not produce collisions
- * when fed "random" data of the sort we expect to see.  As long as
- * the pool state differs for different inputs, we have preserved the
- * input entropy and done a good job.  The fact that an intelligent
- * attacker can construct inputs that will produce controlled
- * alterations to the pool's state is not important because we don't
- * consider such inputs to contribute any randomness.  The only
- * property we need with respect to them is that the attacker can't
- * increase his/her knowledge of the pool's state.  Since all
- * additions are reversible (knowing the final state and the input,
- * you can reconstruct the initial state), if an attacker has any
- * uncertainty about the initial state, he/she can only shuffle that
- * uncertainty about, but never cause any collisions (which would
- * decrease the uncertainty).
- *
- * Our mixing functions were analyzed by Lacharme, Roeck, Strubel, and
- * Videau in their paper, "The Linux Pseudorandom Number Generator
- * Revisited" (see: http://eprint.iacr.org/2012/251.pdf).  In their
- * paper, they point out that we are not using a true Twisted GFSR,
- * since Matsumoto & Kurita used a trinomial feedback polynomial (that
- * is, with only three taps, instead of the six that we are using).
- * As a result, the resulting polynomial is neither primitive nor
- * irreducible, and hence does not have a maximal period over
- * GF(2**32).  They suggest a slight change to the generator
- * polynomial which improves the resulting TGFSR polynomial to be
- * irreducible, which we have made here.
- */
-static const struct poolinfo {
-	int poolbitshift, poolwords, poolbytes, poolfracbits;
-#define S(x) ilog2(x)+5, (x), (x)*4, (x) << (ENTROPY_SHIFT+5)
-	int tap1, tap2, tap3, tap4, tap5;
-} poolinfo_table[] = {
-	/* was: x^128 + x^103 + x^76 + x^51 +x^25 + x + 1 */
-	/* x^128 + x^104 + x^76 + x^51 +x^25 + x + 1 */
-	{ S(128),	104,	76,	51,	25,	1 },
-	/* was: x^32 + x^26 + x^20 + x^14 + x^7 + x + 1 */
-	/* x^32 + x^26 + x^19 + x^14 + x^7 + x + 1 */
-	{ S(32),	26,	19,	14,	7,	1 },
-#if 0
-	/* x^2048 + x^1638 + x^1231 + x^819 + x^411 + x + 1  -- 115 */
-	{ S(2048),	1638,	1231,	819,	411,	1 },
-
-	/* x^1024 + x^817 + x^615 + x^412 + x^204 + x + 1 -- 290 */
-	{ S(1024),	817,	615,	412,	204,	1 },
-
-	/* x^1024 + x^819 + x^616 + x^410 + x^207 + x^2 + 1 -- 115 */
-	{ S(1024),	819,	616,	410,	207,	2 },
-
-	/* x^512 + x^411 + x^308 + x^208 + x^104 + x + 1 -- 225 */
-	{ S(512),	411,	308,	208,	104,	1 },
-
-	/* x^512 + x^409 + x^307 + x^206 + x^102 + x^2 + 1 -- 95 */
-	{ S(512),	409,	307,	206,	102,	2 },
-	/* x^512 + x^409 + x^309 + x^205 + x^103 + x^2 + 1 -- 95 */
-	{ S(512),	409,	309,	205,	103,	2 },
-
-	/* x^256 + x^205 + x^155 + x^101 + x^52 + x + 1 -- 125 */
-	{ S(256),	205,	155,	101,	52,	1 },
-
-	/* x^128 + x^103 + x^78 + x^51 + x^27 + x^2 + 1 -- 70 */
-	{ S(128),	103,	78,	51,	27,	2 },
-
-	/* x^64 + x^52 + x^39 + x^26 + x^14 + x + 1 -- 15 */
-	{ S(64),	52,	39,	26,	14,	1 },
-#endif
-};
+/*********************************************************************
+ *
+ * Initialization and readiness waiting.
+ *
+ * Much of the RNG infrastructure is devoted to various dependencies
+ * being able to wait until the RNG has collected enough entropy and
+ * is ready for safe consumption.
+ *
+ *********************************************************************/
 
 /*
- * Static global variables
+ * crng_init is protected by base_crng->lock, and only increases
+ * its value (from empty->early->ready).
  */
-static DECLARE_WAIT_QUEUE_HEAD(random_read_wait);
-static DECLARE_WAIT_QUEUE_HEAD(random_write_wait);
+static enum {
+	CRNG_EMPTY = 0, /* Little to no entropy collected */
+	CRNG_EARLY = 1, /* At least POOL_EARLY_BITS collected */
+	CRNG_READY = 2  /* Fully initialized with POOL_READY_BITS collected */
+} crng_init __read_mostly = CRNG_EMPTY;
+#define crng_ready() (likely(crng_init >= CRNG_READY))
+/* Various types of waiters for crng_init->CRNG_READY transition. */
+static DECLARE_WAIT_QUEUE_HEAD(crng_init_wait);
 static struct fasync_struct *fasync;
+static DEFINE_SPINLOCK(random_ready_chain_lock);
+static RAW_NOTIFIER_HEAD(random_ready_chain);
 
-static DEFINE_SPINLOCK(random_ready_list_lock);
-static LIST_HEAD(random_ready_list);
-
-struct crng_state {
-	__u32		state[16];
-	unsigned long	init_time;
-	spinlock_t	lock;
-};
-
-static struct crng_state primary_crng = {
-	.lock = __SPIN_LOCK_UNLOCKED(primary_crng.lock),
-};
-
-/*
- * crng_init =  0 --> Uninitialized
- *		1 --> Initialized
- *		2 --> Initialized from input_pool
- *
- * crng_init is protected by primary_crng->lock, and only increases
- * its value (from 0->1->2).
- */
-static int crng_init = 0;
-#define crng_ready() (likely(crng_init > 1))
-static int crng_init_cnt = 0;
-static unsigned long crng_global_init_time = 0;
-#define CRNG_INIT_CNT_THRESH (2*CHACHA_KEY_SIZE)
-static void _extract_crng(struct crng_state *crng, __u8 out[CHACHA_BLOCK_SIZE]);
-static void _crng_backtrack_protect(struct crng_state *crng,
-				    __u8 tmp[CHACHA_BLOCK_SIZE], int used);
-static void process_random_ready_list(void);
-static void _get_random_bytes(void *buf, int nbytes);
-
-static struct ratelimit_state unseeded_warning =
-	RATELIMIT_STATE_INIT("warn_unseeded_randomness", HZ, 3);
+/* Control how we warn userspace. */
 static struct ratelimit_state urandom_warning =
-	RATELIMIT_STATE_INIT("warn_urandom_randomness", HZ, 3);
-
-static int ratelimit_disable __read_mostly;
-
+	RATELIMIT_STATE_INIT_FLAGS("urandom_warning", HZ, 3, RATELIMIT_MSG_ON_RELEASE);
+static int ratelimit_disable __read_mostly =
+	IS_ENABLED(CONFIG_WARN_ALL_UNSEEDED_RANDOM);
 module_param_named(ratelimit_disable, ratelimit_disable, int, 0644);
 MODULE_PARM_DESC(ratelimit_disable, "Disable random ratelimit suppression");
 
-/**********************************************************************
- *
- * OS independent entropy store.   Here are the functions which handle
- * storing entropy in an entropy pool.
+/*
+ * Returns whether or not the input pool has been seeded and thus guaranteed
+ * to supply cryptographically secure random numbers. This applies to: the
+ * /dev/urandom device, the get_random_bytes function, and the get_random_{u32,
+ * ,u64,int,long} family of functions.
  *
- **********************************************************************/
-
-struct entropy_store;
-struct entropy_store {
-	/* read-only data: */
-	const struct poolinfo *poolinfo;
-	__u32 *pool;
-	const char *name;
-	struct entropy_store *pull;
-	struct work_struct push_work;
-
-	/* read-write data: */
-	unsigned long last_pulled;
-	spinlock_t lock;
-	unsigned short add_ptr;
-	unsigned short input_rotate;
-	int entropy_count;
-	unsigned int initialized:1;
-	unsigned int last_data_init:1;
-	__u8 last_data[EXTRACT_SIZE];
-};
-
-static ssize_t extract_entropy(struct entropy_store *r, void *buf,
-			       size_t nbytes, int min, int rsvd);
-static ssize_t _extract_entropy(struct entropy_store *r, void *buf,
-				size_t nbytes, int fips);
-
-static void crng_reseed(struct crng_state *crng, struct entropy_store *r);
-static void push_to_pool(struct work_struct *work);
-static __u32 input_pool_data[INPUT_POOL_WORDS] __latent_entropy;
-static __u32 blocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
-
-static struct entropy_store input_pool = {
-	.poolinfo = &poolinfo_table[0],
-	.name = "input",
-	.lock = __SPIN_LOCK_UNLOCKED(input_pool.lock),
-	.pool = input_pool_data
-};
-
-static struct entropy_store blocking_pool = {
-	.poolinfo = &poolinfo_table[1],
-	.name = "blocking",
-	.pull = &input_pool,
-	.lock = __SPIN_LOCK_UNLOCKED(blocking_pool.lock),
-	.pool = blocking_pool_data,
-	.push_work = __WORK_INITIALIZER(blocking_pool.push_work,
-					push_to_pool),
-};
+ * Returns: true if the input pool has been seeded.
+ *          false if the input pool has not been seeded.
+ */
+bool rng_is_initialized(void)
+{
+	return crng_ready();
+}
+EXPORT_SYMBOL(rng_is_initialized);
 
-static __u32 const twist_table[8] = {
-	0x00000000, 0x3b6e20c8, 0x76dc4190, 0x4db26158,
-	0xedb88320, 0xd6d6a3e8, 0x9b64c2b0, 0xa00ae278 };
+/* Used by wait_for_random_bytes(), and considered an entropy collector, below. */
+static void try_to_generate_entropy(void);
 
 /*
- * This function adds bytes into the entropy "pool".  It does not
- * update the entropy estimate.  The caller should call
- * credit_entropy_bits if this is appropriate.
+ * Wait for the input pool to be seeded and thus guaranteed to supply
+ * cryptographically secure random numbers. This applies to: the /dev/urandom
+ * device, the get_random_bytes function, and the get_random_{u32,u64,int,long}
+ * family of functions. Using any of these functions without first calling
+ * this function forfeits the guarantee of security.
  *
- * The pool is stirred with a primitive polynomial of the appropriate
- * degree, and then twisted.  We twist by three bits at a time because
- * it's cheap to do so and helps slightly in the expected case where
- * the entropy is concentrated in the low-order bits.
+ * Returns: 0 if the input pool has been seeded.
+ *          -ERESTARTSYS if the function was interrupted by a signal.
  */
-static void _mix_pool_bytes(struct entropy_store *r, const void *in,
-			    int nbytes)
+int wait_for_random_bytes(void)
 {
-	unsigned long i, tap1, tap2, tap3, tap4, tap5;
-	int input_rotate;
-	int wordmask = r->poolinfo->poolwords - 1;
-	const char *bytes = in;
-	__u32 w;
-
-	tap1 = r->poolinfo->tap1;
-	tap2 = r->poolinfo->tap2;
-	tap3 = r->poolinfo->tap3;
-	tap4 = r->poolinfo->tap4;
-	tap5 = r->poolinfo->tap5;
-
-	input_rotate = r->input_rotate;
-	i = r->add_ptr;
-
-	/* mix one byte at a time to simplify size handling and churn faster */
-	while (nbytes--) {
-		w = rol32(*bytes++, input_rotate);
-		i = (i - 1) & wordmask;
+	while (!crng_ready()) {
+		int ret;
 
-		/* XOR in the various taps */
-		w ^= r->pool[i];
-		w ^= r->pool[(i + tap1) & wordmask];
-		w ^= r->pool[(i + tap2) & wordmask];
-		w ^= r->pool[(i + tap3) & wordmask];
-		w ^= r->pool[(i + tap4) & wordmask];
-		w ^= r->pool[(i + tap5) & wordmask];
+		try_to_generate_entropy();
+		ret = wait_event_interruptible_timeout(crng_init_wait, crng_ready(), HZ);
+		if (ret)
+			return ret > 0 ? 0 : ret;
+	}
+	return 0;
+}
+EXPORT_SYMBOL(wait_for_random_bytes);
 
-		/* Mix the result back in with a twist */
-		r->pool[i] = (w >> 3) ^ twist_table[w & 7];
+/*
+ * Add a callback function that will be invoked when the input
+ * pool is initialised.
+ *
+ * returns: 0 if callback is successfully added
+ *	    -EALREADY if pool is already initialised (callback not called)
+ */
+int __cold register_random_ready_notifier(struct notifier_block *nb)
+{
+	unsigned long flags;
+	int ret = -EALREADY;
 
-		/*
-		 * Normally, we add 7 bits of rotation to the pool.
-		 * At the beginning of the pool, add an extra 7 bits
-		 * rotation, so that successive passes spread the
-		 * input bits across the pool evenly.
-		 */
-		input_rotate = (input_rotate + (i ? 7 : 14)) & 31;
-	}
+	if (crng_ready())
+		return ret;
 
-	r->input_rotate = input_rotate;
-	r->add_ptr = i;
+	spin_lock_irqsave(&random_ready_chain_lock, flags);
+	if (!crng_ready())
+		ret = raw_notifier_chain_register(&random_ready_chain, nb);
+	spin_unlock_irqrestore(&random_ready_chain_lock, flags);
+	return ret;
 }
 
-static void __mix_pool_bytes(struct entropy_store *r, const void *in,
-			     int nbytes)
+/*
+ * Delete a previously registered readiness callback function.
+ */
+int __cold unregister_random_ready_notifier(struct notifier_block *nb)
 {
-	trace_mix_pool_bytes_nolock(r->name, nbytes, _RET_IP_);
-	_mix_pool_bytes(r, in, nbytes);
+	unsigned long flags;
+	int ret;
+
+	spin_lock_irqsave(&random_ready_chain_lock, flags);
+	ret = raw_notifier_chain_unregister(&random_ready_chain, nb);
+	spin_unlock_irqrestore(&random_ready_chain_lock, flags);
+	return ret;
 }
 
-static void mix_pool_bytes(struct entropy_store *r, const void *in,
-			   int nbytes)
+static void __cold process_random_ready_list(void)
 {
 	unsigned long flags;
 
-	trace_mix_pool_bytes(r->name, nbytes, _RET_IP_);
-	spin_lock_irqsave(&r->lock, flags);
-	_mix_pool_bytes(r, in, nbytes);
-	spin_unlock_irqrestore(&r->lock, flags);
+	spin_lock_irqsave(&random_ready_chain_lock, flags);
+	raw_notifier_call_chain(&random_ready_chain, 0, NULL);
+	spin_unlock_irqrestore(&random_ready_chain_lock, flags);
 }
 
-struct fast_pool {
-	__u32		pool[4];
-	unsigned long	last;
-	unsigned short	reg_idx;
-	unsigned char	count;
-};
+#define warn_unseeded_randomness() \
+	if (IS_ENABLED(CONFIG_WARN_ALL_UNSEEDED_RANDOM) && !crng_ready()) \
+		printk_deferred(KERN_NOTICE "random: %s called from %pS with crng_init=%d\n", \
+				__func__, (void *)_RET_IP_, crng_init)
 
-/*
- * This is a fast mixing routine used by the interrupt randomness
- * collector.  It's hardcoded for an 128 bit pool and assumes that any
- * locks that might be needed are taken by the caller.
- */
-static void fast_mix(struct fast_pool *f)
-{
-	__u32 a = f->pool[0],	b = f->pool[1];
-	__u32 c = f->pool[2],	d = f->pool[3];
 
-	a += b;			c += d;
-	b = rol32(b, 6);	d = rol32(d, 27);
-	d ^= a;			b ^= c;
+/*********************************************************************
+ *
+ * Fast key erasure RNG, the "crng".
+ *
+ * These functions expand entropy from the entropy extractor into
+ * long streams for external consumption using the "fast key erasure"
+ * RNG described at <https://blog.cr.yp.to/20170723-random.html>.
+ *
+ * There are a few exported interfaces for use by other drivers:
+ *
+ *	void get_random_bytes(void *buf, size_t len)
+ *	u32 get_random_u32()
+ *	u64 get_random_u64()
+ *	unsigned int get_random_int()
+ *	unsigned long get_random_long()
+ *
+ * These interfaces will return the requested number of random bytes
+ * into the given buffer or as a return value. This is equivalent to
+ * a read from /dev/urandom. The u32, u64, int, and long family of
+ * functions may be higher performance for one-off random integers,
+ * because they do a bit of buffering and do not invoke reseeding
+ * until the buffer is emptied.
+ *
+ *********************************************************************/
+
+enum {
+	CRNG_RESEED_START_INTERVAL = HZ,
+	CRNG_RESEED_INTERVAL = 60 * HZ
+};
 
-	a += b;			c += d;
-	b = rol32(b, 16);	d = rol32(d, 14);
-	d ^= a;			b ^= c;
+static struct {
+	u8 key[CHACHA_KEY_SIZE] __aligned(__alignof__(long));
+	unsigned long birth;
+	unsigned long generation;
+	spinlock_t lock;
+} base_crng = {
+	.lock = __SPIN_LOCK_UNLOCKED(base_crng.lock)
+};
 
-	a += b;			c += d;
-	b = rol32(b, 6);	d = rol32(d, 27);
-	d ^= a;			b ^= c;
+struct crng {
+	u8 key[CHACHA_KEY_SIZE];
+	unsigned long generation;
+};
 
-	a += b;			c += d;
-	b = rol32(b, 16);	d = rol32(d, 14);
-	d ^= a;			b ^= c;
+static DEFINE_PER_CPU(struct crng, crngs) = {
+	.generation = ULONG_MAX
+};
 
-	f->pool[0] = a;  f->pool[1] = b;
-	f->pool[2] = c;  f->pool[3] = d;
-	f->count++;
-}
+/* Used by crng_reseed() and crng_make_state() to extract a new seed from the input pool. */
+static void extract_entropy(void *buf, size_t len);
 
-static void process_random_ready_list(void)
+/* This extracts a new crng key from the input pool. */
+static void crng_reseed(void)
 {
 	unsigned long flags;
-	struct random_ready_callback *rdy, *tmp;
+	unsigned long next_gen;
+	u8 key[CHACHA_KEY_SIZE];
 
-	spin_lock_irqsave(&random_ready_list_lock, flags);
-	list_for_each_entry_safe(rdy, tmp, &random_ready_list, list) {
-		struct module *owner = rdy->owner;
+	extract_entropy(key, sizeof(key));
 
-		list_del_init(&rdy->list);
-		rdy->func(rdy);
-		module_put(owner);
-	}
-	spin_unlock_irqrestore(&random_ready_list_lock, flags);
+	/*
+	 * We copy the new key into the base_crng, overwriting the old one,
+	 * and update the generation counter. We avoid hitting ULONG_MAX,
+	 * because the per-cpu crngs are initialized to ULONG_MAX, so this
+	 * forces new CPUs that come online to always initialize.
+	 */
+	spin_lock_irqsave(&base_crng.lock, flags);
+	memcpy(base_crng.key, key, sizeof(base_crng.key));
+	next_gen = base_crng.generation + 1;
+	if (next_gen == ULONG_MAX)
+		++next_gen;
+	WRITE_ONCE(base_crng.generation, next_gen);
+	WRITE_ONCE(base_crng.birth, jiffies);
+	if (!crng_ready())
+		crng_init = CRNG_READY;
+	spin_unlock_irqrestore(&base_crng.lock, flags);
+	memzero_explicit(key, sizeof(key));
 }
 
 /*
- * Credit (or debit) the entropy store with n bits of entropy.
- * Use credit_entropy_bits_safe() if the value comes from userspace
- * or otherwise should be checked for extreme values.
+ * This generates a ChaCha block using the provided key, and then
+ * immediately overwites that key with half the block. It returns
+ * the resultant ChaCha state to the user, along with the second
+ * half of the block containing 32 bytes of random data that may
+ * be used; random_data_len may not be greater than 32.
+ *
+ * The returned ChaCha state contains within it a copy of the old
+ * key value, at index 4, so the state should always be zeroed out
+ * immediately after using in order to maintain forward secrecy.
+ * If the state cannot be erased in a timely manner, then it is
+ * safer to set the random_data parameter to &chacha_state[4] so
+ * that this function overwrites it before returning.
  */
-static void credit_entropy_bits(struct entropy_store *r, int nbits)
+static void crng_fast_key_erasure(u8 key[CHACHA_KEY_SIZE],
+				  u32 chacha_state[CHACHA_BLOCK_SIZE / sizeof(u32)],
+				  u8 *random_data, size_t random_data_len)
 {
-	int entropy_count, orig, has_initialized = 0;
-	const int pool_size = r->poolinfo->poolfracbits;
-	int nfrac = nbits << ENTROPY_SHIFT;
+	u8 first_block[CHACHA_BLOCK_SIZE];
 
-	if (!nbits)
-		return;
+	BUG_ON(random_data_len > 32);
 
-retry:
-	entropy_count = orig = READ_ONCE(r->entropy_count);
-	if (nfrac < 0) {
-		/* Debit */
-		entropy_count += nfrac;
-	} else {
-		/*
-		 * Credit: we have to account for the possibility of
-		 * overwriting already present entropy.	 Even in the
-		 * ideal case of pure Shannon entropy, new contributions
-		 * approach the full value asymptotically:
-		 *
-		 * entropy <- entropy + (pool_size - entropy) *
-		 *	(1 - exp(-add_entropy/pool_size))
-		 *
-		 * For add_entropy <= pool_size/2 then
-		 * (1 - exp(-add_entropy/pool_size)) >=
-		 *    (add_entropy/pool_size)*0.7869...
-		 * so we can approximate the exponential with
-		 * 3/4*add_entropy/pool_size and still be on the
-		 * safe side by adding at most pool_size/2 at a time.
-		 *
-		 * The use of pool_size-2 in the while statement is to
-		 * prevent rounding artifacts from making the loop
-		 * arbitrarily long; this limits the loop to log2(pool_size)*2
-		 * turns no matter how large nbits is.
-		 */
-		int pnfrac = nfrac;
-		const int s = r->poolinfo->poolbitshift + ENTROPY_SHIFT + 2;
-		/* The +2 corresponds to the /4 in the denominator */
-
-		do {
-			unsigned int anfrac = min(pnfrac, pool_size/2);
-			unsigned int add =
-				((pool_size - entropy_count)*anfrac*3) >> s;
-
-			entropy_count += add;
-			pnfrac -= anfrac;
-		} while (unlikely(entropy_count < pool_size-2 && pnfrac));
-	}
-
-	if (unlikely(entropy_count < 0)) {
-		pr_warn("random: negative entropy/overflow: pool %s count %d\n",
-			r->name, entropy_count);
-		WARN_ON(1);
-		entropy_count = 0;
-	} else if (entropy_count > pool_size)
-		entropy_count = pool_size;
-	if ((r == &blocking_pool) && !r->initialized &&
-	    (entropy_count >> ENTROPY_SHIFT) > 128)
-		has_initialized = 1;
-	if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig)
-		goto retry;
-
-	if (has_initialized) {
-		r->initialized = 1;
-		wake_up_interruptible(&random_read_wait);
-		kill_fasync(&fasync, SIGIO, POLL_IN);
-	}
+	chacha_init_consts(chacha_state);
+	memcpy(&chacha_state[4], key, CHACHA_KEY_SIZE);
+	memset(&chacha_state[12], 0, sizeof(u32) * 4);
+	chacha20_block(chacha_state, first_block);
 
-	trace_credit_entropy_bits(r->name, nbits,
-				  entropy_count >> ENTROPY_SHIFT, _RET_IP_);
-
-	if (r == &input_pool) {
-		int entropy_bits = entropy_count >> ENTROPY_SHIFT;
-		struct entropy_store *other = &blocking_pool;
-
-		if (crng_init < 2) {
-			if (entropy_bits < 128)
-				return;
-			crng_reseed(&primary_crng, r);
-			entropy_bits = r->entropy_count >> ENTROPY_SHIFT;
-		}
-
-		/* initialize the blocking pool if necessary */
-		if (entropy_bits >= random_read_wakeup_bits &&
-		    !other->initialized) {
-			schedule_work(&other->push_work);
-			return;
-		}
-
-		/* should we wake readers? */
-		if (entropy_bits >= random_read_wakeup_bits &&
-		    wq_has_sleeper(&random_read_wait)) {
-			wake_up_interruptible(&random_read_wait);
-			kill_fasync(&fasync, SIGIO, POLL_IN);
-		}
-		/* If the input pool is getting full, and the blocking
-		 * pool has room, send some entropy to the blocking
-		 * pool.
-		 */
-		if (!work_pending(&other->push_work) &&
-		    (ENTROPY_BITS(r) > 6 * r->poolinfo->poolbytes) &&
-		    (ENTROPY_BITS(other) <= 6 * other->poolinfo->poolbytes))
-			schedule_work(&other->push_work);
-	}
+	memcpy(key, first_block, CHACHA_KEY_SIZE);
+	memcpy(random_data, first_block + CHACHA_KEY_SIZE, random_data_len);
+	memzero_explicit(first_block, sizeof(first_block));
 }
 
-static int credit_entropy_bits_safe(struct entropy_store *r, int nbits)
+/*
+ * Return whether the crng seed is considered to be sufficiently old
+ * that a reseeding is needed. This happens if the last reseeding
+ * was CRNG_RESEED_INTERVAL ago, or during early boot, at an interval
+ * proportional to the uptime.
+ */
+static bool crng_has_old_seed(void)
 {
-	const int nbits_max = r->poolinfo->poolwords * 32;
+	static bool early_boot = true;
+	unsigned long interval = CRNG_RESEED_INTERVAL;
 
-	if (nbits < 0)
-		return -EINVAL;
-
-	/* Cap the value to avoid overflows */
-	nbits = min(nbits,  nbits_max);
-
-	credit_entropy_bits(r, nbits);
-	return 0;
+	if (unlikely(READ_ONCE(early_boot))) {
+		time64_t uptime = ktime_get_seconds();
+		if (uptime >= CRNG_RESEED_INTERVAL / HZ * 2)
+			WRITE_ONCE(early_boot, false);
+		else
+			interval = max_t(unsigned int, CRNG_RESEED_START_INTERVAL,
+					 (unsigned int)uptime / 2 * HZ);
+	}
+	return time_is_before_jiffies(READ_ONCE(base_crng.birth) + interval);
 }
 
-/*********************************************************************
- *
- * CRNG using CHACHA20
- *
- *********************************************************************/
-
-#define CRNG_RESEED_INTERVAL (300*HZ)
-
-static DECLARE_WAIT_QUEUE_HEAD(crng_init_wait);
-
-#ifdef CONFIG_NUMA
 /*
- * Hack to deal with crazy userspace progams when they are all trying
- * to access /dev/urandom in parallel.  The programs are almost
- * certainly doing something terribly wrong, but we'll work around
- * their brain damage.
+ * This function returns a ChaCha state that you may use for generating
+ * random data. It also returns up to 32 bytes on its own of random data
+ * that may be used; random_data_len may not be greater than 32.
  */
-static struct crng_state **crng_node_pool __read_mostly;
-#endif
+static void crng_make_state(u32 chacha_state[CHACHA_BLOCK_SIZE / sizeof(u32)],
+			    u8 *random_data, size_t random_data_len)
+{
+	unsigned long flags;
+	struct crng *crng;
 
-static void invalidate_batched_entropy(void);
-static void numa_crng_init(void);
+	BUG_ON(random_data_len > 32);
 
-static bool trust_cpu __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU);
-static int __init parse_trust_cpu(char *arg)
-{
-	return kstrtobool(arg, &trust_cpu);
-}
-early_param("random.trust_cpu", parse_trust_cpu);
+	/*
+	 * For the fast path, we check whether we're ready, unlocked first, and
+	 * then re-check once locked later. In the case where we're really not
+	 * ready, we do fast key erasure with the base_crng directly, extracting
+	 * when crng_init is CRNG_EMPTY.
+	 */
+	if (!crng_ready()) {
+		bool ready;
 
-static void crng_initialize(struct crng_state *crng)
-{
-	int		i;
-	int		arch_init = 1;
-	unsigned long	rv;
-
-	memcpy(&crng->state[0], "expand 32-byte k", 16);
-	if (crng == &primary_crng)
-		_extract_entropy(&input_pool, &crng->state[4],
-				 sizeof(__u32) * 12, 0);
-	else
-		_get_random_bytes(&crng->state[4], sizeof(__u32) * 12);
-	for (i = 4; i < 16; i++) {
-		if (!arch_get_random_seed_long(&rv) &&
-		    !arch_get_random_long(&rv)) {
-			rv = random_get_entropy();
-			arch_init = 0;
+		spin_lock_irqsave(&base_crng.lock, flags);
+		ready = crng_ready();
+		if (!ready) {
+			if (crng_init == CRNG_EMPTY)
+				extract_entropy(base_crng.key, sizeof(base_crng.key));
+			crng_fast_key_erasure(base_crng.key, chacha_state,
+					      random_data, random_data_len);
 		}
-		crng->state[i] ^= rv;
+		spin_unlock_irqrestore(&base_crng.lock, flags);
+		if (!ready)
+			return;
 	}
-	if (trust_cpu && arch_init && crng == &primary_crng) {
-		invalidate_batched_entropy();
-		numa_crng_init();
-		crng_init = 2;
-		pr_notice("random: crng done (trusting CPU's manufacturer)\n");
+
+	/*
+	 * If the base_crng is old enough, we reseed, which in turn bumps the
+	 * generation counter that we check below.
+	 */
+	if (unlikely(crng_has_old_seed()))
+		crng_reseed();
+
+	local_irq_save(flags);
+	crng = raw_cpu_ptr(&crngs);
+
+	/*
+	 * If our per-cpu crng is older than the base_crng, then it means
+	 * somebody reseeded the base_crng. In that case, we do fast key
+	 * erasure on the base_crng, and use its output as the new key
+	 * for our per-cpu crng. This brings us up to date with base_crng.
+	 */
+	if (unlikely(crng->generation != READ_ONCE(base_crng.generation))) {
+		spin_lock(&base_crng.lock);
+		crng_fast_key_erasure(base_crng.key, chacha_state,
+				      crng->key, sizeof(crng->key));
+		crng->generation = base_crng.generation;
+		spin_unlock(&base_crng.lock);
 	}
-	crng->init_time = jiffies - CRNG_RESEED_INTERVAL - 1;
+
+	/*
+	 * Finally, when we've made it this far, our per-cpu crng has an up
+	 * to date key, and we can do fast key erasure with it to produce
+	 * some random data and a ChaCha state for the caller. All other
+	 * branches of this function are "unlikely", so most of the time we
+	 * should wind up here immediately.
+	 */
+	crng_fast_key_erasure(crng->key, chacha_state, random_data, random_data_len);
+	local_irq_restore(flags);
 }
 
-#ifdef CONFIG_NUMA
-static void do_numa_crng_init(struct work_struct *work)
+static void _get_random_bytes(void *buf, size_t len)
 {
-	int i;
-	struct crng_state *crng;
-	struct crng_state **pool;
+	u32 chacha_state[CHACHA_BLOCK_SIZE / sizeof(u32)];
+	u8 tmp[CHACHA_BLOCK_SIZE];
+	size_t first_block_len;
 
-	pool = kcalloc(nr_node_ids, sizeof(*pool), GFP_KERNEL|__GFP_NOFAIL);
-	for_each_online_node(i) {
-		crng = kmalloc_node(sizeof(struct crng_state),
-				    GFP_KERNEL | __GFP_NOFAIL, i);
-		spin_lock_init(&crng->lock);
-		crng_initialize(crng);
-		pool[i] = crng;
-	}
-	mb();
-	if (cmpxchg(&crng_node_pool, NULL, pool)) {
-		for_each_node(i)
-			kfree(pool[i]);
-		kfree(pool);
-	}
-}
+	if (!len)
+		return;
 
-static DECLARE_WORK(numa_crng_init_work, do_numa_crng_init);
+	first_block_len = min_t(size_t, 32, len);
+	crng_make_state(chacha_state, buf, first_block_len);
+	len -= first_block_len;
+	buf += first_block_len;
+
+	while (len) {
+		if (len < CHACHA_BLOCK_SIZE) {
+			chacha20_block(chacha_state, tmp);
+			memcpy(buf, tmp, len);
+			memzero_explicit(tmp, sizeof(tmp));
+			break;
+		}
 
-static void numa_crng_init(void)
-{
-	schedule_work(&numa_crng_init_work);
+		chacha20_block(chacha_state, buf);
+		if (unlikely(chacha_state[12] == 0))
+			++chacha_state[13];
+		len -= CHACHA_BLOCK_SIZE;
+		buf += CHACHA_BLOCK_SIZE;
+	}
+
+	memzero_explicit(chacha_state, sizeof(chacha_state));
 }
-#else
-static void numa_crng_init(void) {}
-#endif
 
 /*
- * crng_fast_load() can be called by code in the interrupt service
- * path.  So we can't afford to dilly-dally.
+ * This function is the exported kernel interface.  It returns some
+ * number of good random numbers, suitable for key generation, seeding
+ * TCP sequence numbers, etc.  It does not rely on the hardware random
+ * number generator.  For random bytes direct from the hardware RNG
+ * (when available), use get_random_bytes_arch(). In order to ensure
+ * that the randomness provided by this function is okay, the function
+ * wait_for_random_bytes() should be called and return 0 at least once
+ * at any point prior.
  */
-static int crng_fast_load(const char *cp, size_t len)
+void get_random_bytes(void *buf, size_t len)
 {
-	unsigned long flags;
-	char *p;
-
-	if (!spin_trylock_irqsave(&primary_crng.lock, flags))
-		return 0;
-	if (crng_init != 0) {
-		spin_unlock_irqrestore(&primary_crng.lock, flags);
-		return 0;
-	}
-	p = (unsigned char *) &primary_crng.state[4];
-	while (len > 0 && crng_init_cnt < CRNG_INIT_CNT_THRESH) {
-		p[crng_init_cnt % CHACHA_KEY_SIZE] ^= *cp;
-		cp++; crng_init_cnt++; len--;
-	}
-	spin_unlock_irqrestore(&primary_crng.lock, flags);
-	if (crng_init_cnt >= CRNG_INIT_CNT_THRESH) {
-		invalidate_batched_entropy();
-		crng_init = 1;
-		wake_up_interruptible(&crng_init_wait);
-		pr_notice("random: fast init done\n");
-	}
-	return 1;
+	warn_unseeded_randomness();
+	_get_random_bytes(buf, len);
 }
+EXPORT_SYMBOL(get_random_bytes);
 
-/*
- * crng_slow_load() is called by add_device_randomness, which has two
- * attributes.  (1) We can't trust the buffer passed to it is
- * guaranteed to be unpredictable (so it might not have any entropy at
- * all), and (2) it doesn't have the performance constraints of
- * crng_fast_load().
- *
- * So we do something more comprehensive which is guaranteed to touch
- * all of the primary_crng's state, and which uses a LFSR with a
- * period of 255 as part of the mixing algorithm.  Finally, we do
- * *not* advance crng_init_cnt since buffer we may get may be something
- * like a fixed DMI table (for example), which might very well be
- * unique to the machine, but is otherwise unvarying.
- */
-static int crng_slow_load(const char *cp, size_t len)
+static ssize_t get_random_bytes_user(struct iov_iter *iter)
 {
-	unsigned long		flags;
-	static unsigned char	lfsr = 1;
-	unsigned char		tmp;
-	unsigned		i, max = CHACHA_KEY_SIZE;
-	const char *		src_buf = cp;
-	char *			dest_buf = (char *) &primary_crng.state[4];
+	u32 chacha_state[CHACHA_BLOCK_SIZE / sizeof(u32)];
+	u8 block[CHACHA_BLOCK_SIZE];
+	size_t ret = 0, copied;
 
-	if (!spin_trylock_irqsave(&primary_crng.lock, flags))
-		return 0;
-	if (crng_init != 0) {
-		spin_unlock_irqrestore(&primary_crng.lock, flags);
+	if (unlikely(!iov_iter_count(iter)))
 		return 0;
+
+	/*
+	 * Immediately overwrite the ChaCha key at index 4 with random
+	 * bytes, in case userspace causes copy_to_iter() below to sleep
+	 * forever, so that we still retain forward secrecy in that case.
+	 */
+	crng_make_state(chacha_state, (u8 *)&chacha_state[4], CHACHA_KEY_SIZE);
+	/*
+	 * However, if we're doing a read of len <= 32, we don't need to
+	 * use chacha_state after, so we can simply return those bytes to
+	 * the user directly.
+	 */
+	if (iov_iter_count(iter) <= CHACHA_KEY_SIZE) {
+		ret = copy_to_iter(&chacha_state[4], CHACHA_KEY_SIZE, iter);
+		goto out_zero_chacha;
 	}
-	if (len > max)
-		max = len;
 
-	for (i = 0; i < max ; i++) {
-		tmp = lfsr;
-		lfsr >>= 1;
-		if (tmp & 1)
-			lfsr ^= 0xE1;
-		tmp = dest_buf[i % CHACHA_KEY_SIZE];
-		dest_buf[i % CHACHA_KEY_SIZE] ^= src_buf[i % len] ^ lfsr;
-		lfsr += (tmp << 3) | (tmp >> 5);
-	}
-	spin_unlock_irqrestore(&primary_crng.lock, flags);
-	return 1;
-}
-
-static void crng_reseed(struct crng_state *crng, struct entropy_store *r)
-{
-	unsigned long	flags;
-	int		i, num;
-	union {
-		__u8	block[CHACHA_BLOCK_SIZE];
-		__u32	key[8];
-	} buf;
-
-	if (r) {
-		num = extract_entropy(r, &buf, 32, 16, 0);
-		if (num == 0)
-			return;
-	} else {
-		_extract_crng(&primary_crng, buf.block);
-		_crng_backtrack_protect(&primary_crng, buf.block,
-					CHACHA_KEY_SIZE);
-	}
-	spin_lock_irqsave(&crng->lock, flags);
-	for (i = 0; i < 8; i++) {
-		unsigned long	rv;
-		if (!arch_get_random_seed_long(&rv) &&
-		    !arch_get_random_long(&rv))
-			rv = random_get_entropy();
-		crng->state[i+4] ^= buf.key[i] ^ rv;
-	}
-	memzero_explicit(&buf, sizeof(buf));
-	crng->init_time = jiffies;
-	spin_unlock_irqrestore(&crng->lock, flags);
-	if (crng == &primary_crng && crng_init < 2) {
-		invalidate_batched_entropy();
-		numa_crng_init();
-		crng_init = 2;
-		process_random_ready_list();
-		wake_up_interruptible(&crng_init_wait);
-		pr_notice("random: crng init done\n");
-		if (unseeded_warning.missed) {
-			pr_notice("random: %d get_random_xx warning(s) missed "
-				  "due to ratelimiting\n",
-				  unseeded_warning.missed);
-			unseeded_warning.missed = 0;
-		}
-		if (urandom_warning.missed) {
-			pr_notice("random: %d urandom warning(s) missed "
-				  "due to ratelimiting\n",
-				  urandom_warning.missed);
-			urandom_warning.missed = 0;
+	for (;;) {
+		chacha20_block(chacha_state, block);
+		if (unlikely(chacha_state[12] == 0))
+			++chacha_state[13];
+
+		copied = copy_to_iter(block, sizeof(block), iter);
+		ret += copied;
+		if (!iov_iter_count(iter) || copied != sizeof(block))
+			break;
+
+		BUILD_BUG_ON(PAGE_SIZE % sizeof(block) != 0);
+		if (ret % PAGE_SIZE == 0) {
+			if (signal_pending(current))
+				break;
+			cond_resched();
 		}
 	}
-}
 
-static void _extract_crng(struct crng_state *crng,
-			  __u8 out[CHACHA_BLOCK_SIZE])
-{
-	unsigned long v, flags;
-
-	if (crng_ready() &&
-	    (time_after(crng_global_init_time, crng->init_time) ||
-	     time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL)))
-		crng_reseed(crng, crng == &primary_crng ? &input_pool : NULL);
-	spin_lock_irqsave(&crng->lock, flags);
-	if (arch_get_random_long(&v))
-		crng->state[14] ^= v;
-	chacha20_block(&crng->state[0], out);
-	if (crng->state[12] == 0)
-		crng->state[13]++;
-	spin_unlock_irqrestore(&crng->lock, flags);
-}
-
-static void extract_crng(__u8 out[CHACHA_BLOCK_SIZE])
-{
-	struct crng_state *crng = NULL;
-
-#ifdef CONFIG_NUMA
-	if (crng_node_pool)
-		crng = crng_node_pool[numa_node_id()];
-	if (crng == NULL)
-#endif
-		crng = &primary_crng;
-	_extract_crng(crng, out);
-}
+	memzero_explicit(block, sizeof(block));
+out_zero_chacha:
+	memzero_explicit(chacha_state, sizeof(chacha_state));
+	return ret ? ret : -EFAULT;
+}
+
+/*
+ * Batched entropy returns random integers. The quality of the random
+ * number is good as /dev/urandom. In order to ensure that the randomness
+ * provided by this function is okay, the function wait_for_random_bytes()
+ * should be called and return 0 at least once at any point prior.
+ */
+
+#define DEFINE_BATCHED_ENTROPY(type)						\
+struct batch_ ##type {								\
+	/*									\
+	 * We make this 1.5x a ChaCha block, so that we get the			\
+	 * remaining 32 bytes from fast key erasure, plus one full		\
+	 * block from the detached ChaCha state. We can increase		\
+	 * the size of this later if needed so long as we keep the		\
+	 * formula of (integer_blocks + 0.5) * CHACHA_BLOCK_SIZE.		\
+	 */									\
+	type entropy[CHACHA_BLOCK_SIZE * 3 / (2 * sizeof(type))];		\
+	unsigned long generation;						\
+	unsigned int position;							\
+};										\
+										\
+static DEFINE_PER_CPU(struct batch_ ##type, batched_entropy_ ##type) = {	\
+	.position = UINT_MAX							\
+};										\
+										\
+type get_random_ ##type(void)							\
+{										\
+	type ret;								\
+	unsigned long flags;							\
+	struct batch_ ##type *batch;						\
+	unsigned long next_gen;							\
+										\
+	warn_unseeded_randomness();						\
+										\
+	if  (!crng_ready()) {							\
+		_get_random_bytes(&ret, sizeof(ret));				\
+		return ret;							\
+	}									\
+										\
+	local_irq_save(flags);		\
+	batch = raw_cpu_ptr(&batched_entropy_##type);				\
+										\
+	next_gen = READ_ONCE(base_crng.generation);				\
+	if (batch->position >= ARRAY_SIZE(batch->entropy) ||			\
+	    next_gen != batch->generation) {					\
+		_get_random_bytes(batch->entropy, sizeof(batch->entropy));	\
+		batch->position = 0;						\
+		batch->generation = next_gen;					\
+	}									\
+										\
+	ret = batch->entropy[batch->position];					\
+	batch->entropy[batch->position] = 0;					\
+	++batch->position;							\
+	local_irq_restore(flags);		\
+	return ret;								\
+}										\
+EXPORT_SYMBOL(get_random_ ##type);
+
+DEFINE_BATCHED_ENTROPY(u64)
+DEFINE_BATCHED_ENTROPY(u32)
 
+#ifdef CONFIG_SMP
 /*
- * Use the leftover bytes from the CRNG block output (if there is
- * enough) to mutate the CRNG key to provide backtracking protection.
+ * This function is called when the CPU is coming up, with entry
+ * CPUHP_RANDOM_PREPARE, which comes before CPUHP_WORKQUEUE_PREP.
  */
-static void _crng_backtrack_protect(struct crng_state *crng,
-				    __u8 tmp[CHACHA_BLOCK_SIZE], int used)
+int __cold random_prepare_cpu(unsigned int cpu)
 {
-	unsigned long	flags;
-	__u32		*s, *d;
-	int		i;
-
-	used = round_up(used, sizeof(__u32));
-	if (used + CHACHA_KEY_SIZE > CHACHA_BLOCK_SIZE) {
-		extract_crng(tmp);
-		used = 0;
-	}
-	spin_lock_irqsave(&crng->lock, flags);
-	s = (__u32 *) &tmp[used];
-	d = &crng->state[4];
-	for (i=0; i < 8; i++)
-		*d++ ^= *s++;
-	spin_unlock_irqrestore(&crng->lock, flags);
+	/*
+	 * When the cpu comes back online, immediately invalidate both
+	 * the per-cpu crng and all batches, so that we serve fresh
+	 * randomness.
+	 */
+	per_cpu_ptr(&crngs, cpu)->generation = ULONG_MAX;
+	per_cpu_ptr(&batched_entropy_u32, cpu)->position = UINT_MAX;
+	per_cpu_ptr(&batched_entropy_u64, cpu)->position = UINT_MAX;
+	return 0;
 }
-
-static void crng_backtrack_protect(__u8 tmp[CHACHA_BLOCK_SIZE], int used)
-{
-	struct crng_state *crng = NULL;
-
-#ifdef CONFIG_NUMA
-	if (crng_node_pool)
-		crng = crng_node_pool[numa_node_id()];
-	if (crng == NULL)
 #endif
-		crng = &primary_crng;
-	_crng_backtrack_protect(crng, tmp, used);
-}
 
-static ssize_t extract_crng_user(void __user *buf, size_t nbytes)
+/*
+ * This function will use the architecture-specific hardware random
+ * number generator if it is available. It is not recommended for
+ * use. Use get_random_bytes() instead. It returns the number of
+ * bytes filled in.
+ */
+size_t __must_check get_random_bytes_arch(void *buf, size_t len)
 {
-	ssize_t ret = 0, i = CHACHA_BLOCK_SIZE;
-	__u8 tmp[CHACHA_BLOCK_SIZE] __aligned(4);
-	int large_request = (nbytes > 256);
+	size_t left = len;
+	u8 *p = buf;
 
-	while (nbytes) {
-		if (large_request && need_resched()) {
-			if (signal_pending(current)) {
-				if (ret == 0)
-					ret = -ERESTARTSYS;
-				break;
-			}
-			schedule();
-		}
+	while (left) {
+		unsigned long v;
+		size_t block_len = min_t(size_t, left, sizeof(unsigned long));
 
-		extract_crng(tmp);
-		i = min_t(int, nbytes, CHACHA_BLOCK_SIZE);
-		if (copy_to_user(buf, tmp, i)) {
-			ret = -EFAULT;
+		if (!arch_get_random_long(&v))
 			break;
-		}
 
-		nbytes -= i;
-		buf += i;
-		ret += i;
+		memcpy(p, &v, block_len);
+		p += block_len;
+		left -= block_len;
 	}
-	crng_backtrack_protect(tmp, i);
-
-	/* Wipe data just written to memory */
-	memzero_explicit(tmp, sizeof(tmp));
 
-	return ret;
+	return len - left;
 }
+EXPORT_SYMBOL(get_random_bytes_arch);
 
 
-/*********************************************************************
+/**********************************************************************
  *
- * Entropy input management
+ * Entropy accumulation and extraction routines.
  *
- *********************************************************************/
+ * Callers may add entropy via:
+ *
+ *     static void mix_pool_bytes(const void *buf, size_t len)
+ *
+ * After which, if added entropy should be credited:
+ *
+ *     static void credit_init_bits(size_t bits)
+ *
+ * Finally, extract entropy via:
+ *
+ *     static void extract_entropy(void *buf, size_t len)
+ *
+ **********************************************************************/
 
-/* There is one of these per entropy source */
-struct timer_rand_state {
-	cycles_t last_time;
-	long last_delta, last_delta2;
+enum {
+	POOL_BITS = BLAKE2S_HASH_SIZE * 8,
+	POOL_READY_BITS = POOL_BITS, /* When crng_init->CRNG_READY */
+	POOL_EARLY_BITS = POOL_READY_BITS / 2 /* When crng_init->CRNG_EARLY */
+};
+
+static struct {
+	struct blake2s_state hash;
+	spinlock_t lock;
+	unsigned int init_bits;
+} input_pool = {
+	.hash.h = { BLAKE2S_IV0 ^ (0x01010000 | BLAKE2S_HASH_SIZE),
+		    BLAKE2S_IV1, BLAKE2S_IV2, BLAKE2S_IV3, BLAKE2S_IV4,
+		    BLAKE2S_IV5, BLAKE2S_IV6, BLAKE2S_IV7 },
+	.hash.outlen = BLAKE2S_HASH_SIZE,
+	.lock = __SPIN_LOCK_UNLOCKED(input_pool.lock),
 };
 
-#define INIT_TIMER_RAND_STATE { INITIAL_JIFFIES, };
+static void _mix_pool_bytes(const void *buf, size_t len)
+{
+	blake2s_update(&input_pool.hash, buf, len);
+}
 
 /*
- * Add device- or boot-specific data to the input pool to help
- * initialize it.
- *
- * None of this adds any entropy; it is meant to avoid the problem of
- * the entropy pool having similar initial state across largely
- * identical devices.
+ * This function adds bytes into the input pool. It does not
+ * update the initialization bit counter; the caller should call
+ * credit_init_bits if this is appropriate.
  */
-void add_device_randomness(const void *buf, unsigned int size)
+static void mix_pool_bytes(const void *buf, size_t len)
 {
-	unsigned long time = random_get_entropy() ^ jiffies;
 	unsigned long flags;
 
-	if (!crng_ready() && size)
-		crng_slow_load(buf, size);
-
-	trace_add_device_randomness(size, _RET_IP_);
 	spin_lock_irqsave(&input_pool.lock, flags);
-	_mix_pool_bytes(&input_pool, buf, size);
-	_mix_pool_bytes(&input_pool, &time, sizeof(time));
+	_mix_pool_bytes(buf, len);
 	spin_unlock_irqrestore(&input_pool.lock, flags);
 }
-EXPORT_SYMBOL(add_device_randomness);
-
-static struct timer_rand_state input_timer_state = INIT_TIMER_RAND_STATE;
 
 /*
- * This function adds entropy to the entropy "pool" by using timing
- * delays.  It uses the timer_rand_state structure to make an estimate
- * of how many bits of entropy this call has added to the pool.
- *
- * The number "num" is also added to the pool - it should somehow describe
- * the type of event which just happened.  This is currently 0-255 for
- * keyboard scan codes, and 256 upwards for interrupts.
- *
+ * This is an HKDF-like construction for using the hashed collected entropy
+ * as a PRF key, that's then expanded block-by-block.
  */
-static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
+static void extract_entropy(void *buf, size_t len)
 {
-	struct entropy_store	*r;
+	unsigned long flags;
+	u8 seed[BLAKE2S_HASH_SIZE], next_key[BLAKE2S_HASH_SIZE];
 	struct {
-		long jiffies;
-		unsigned cycles;
-		unsigned num;
-	} sample;
-	long delta, delta2, delta3;
-
-	sample.jiffies = jiffies;
-	sample.cycles = random_get_entropy();
-	sample.num = num;
-	r = &input_pool;
-	mix_pool_bytes(r, &sample, sizeof(sample));
-
-	/*
-	 * Calculate number of bits of randomness we probably added.
-	 * We take into account the first, second and third-order deltas
-	 * in order to make our estimate.
-	 */
-	delta = sample.jiffies - state->last_time;
-	state->last_time = sample.jiffies;
+		unsigned long rdseed[32 / sizeof(long)];
+		size_t counter;
+	} block;
+	size_t i;
+
+	for (i = 0; i < ARRAY_SIZE(block.rdseed); ++i) {
+		if (!arch_get_random_seed_long(&block.rdseed[i]) &&
+		    !arch_get_random_long(&block.rdseed[i]))
+			block.rdseed[i] = random_get_entropy();
+	}
 
-	delta2 = delta - state->last_delta;
-	state->last_delta = delta;
+	spin_lock_irqsave(&input_pool.lock, flags);
 
-	delta3 = delta2 - state->last_delta2;
-	state->last_delta2 = delta2;
+	/* seed = HASHPRF(last_key, entropy_input) */
+	blake2s_final(&input_pool.hash, seed);
 
-	if (delta < 0)
-		delta = -delta;
-	if (delta2 < 0)
-		delta2 = -delta2;
-	if (delta3 < 0)
-		delta3 = -delta3;
-	if (delta > delta2)
-		delta = delta2;
-	if (delta > delta3)
-		delta = delta3;
-
-	/*
-	 * delta is now minimum absolute delta.
-	 * Round down by 1 bit on general principles,
-	 * and limit entropy entimate to 12 bits.
-	 */
-	credit_entropy_bits(r, min_t(int, fls(delta>>1), 11));
-}
+	/* next_key = HASHPRF(seed, RDSEED || 0) */
+	block.counter = 0;
+	blake2s(next_key, (u8 *)&block, seed, sizeof(next_key), sizeof(block), sizeof(seed));
+	blake2s_init_key(&input_pool.hash, BLAKE2S_HASH_SIZE, next_key, sizeof(next_key));
 
-void add_input_randomness(unsigned int type, unsigned int code,
-				 unsigned int value)
-{
-	static unsigned char last_value;
+	spin_unlock_irqrestore(&input_pool.lock, flags);
+	memzero_explicit(next_key, sizeof(next_key));
 
-	/* ignore autorepeat and the like */
-	if (value == last_value)
-		return;
+	while (len) {
+		i = min_t(size_t, len, BLAKE2S_HASH_SIZE);
+		/* output = HASHPRF(seed, RDSEED || ++counter) */
+		++block.counter;
+		blake2s(buf, (u8 *)&block, seed, i, sizeof(block), sizeof(seed));
+		len -= i;
+		buf += i;
+	}
 
-	last_value = value;
-	add_timer_randomness(&input_timer_state,
-			     (type << 4) ^ code ^ (code >> 4) ^ value);
-	trace_add_input_randomness(ENTROPY_BITS(&input_pool));
+	memzero_explicit(seed, sizeof(seed));
+	memzero_explicit(&block, sizeof(block));
 }
-EXPORT_SYMBOL_GPL(add_input_randomness);
-
-static DEFINE_PER_CPU(struct fast_pool, irq_randomness);
-
-#ifdef ADD_INTERRUPT_BENCH
-static unsigned long avg_cycles, avg_deviation;
 
-#define AVG_SHIFT 8     /* Exponential average factor k=1/256 */
-#define FIXED_1_2 (1 << (AVG_SHIFT-1))
+#define credit_init_bits(bits) if (!crng_ready()) _credit_init_bits(bits)
 
-static void add_interrupt_bench(cycles_t start)
+static void __cold _credit_init_bits(size_t bits)
 {
-        long delta = random_get_entropy() - start;
-
-        /* Use a weighted moving average */
-        delta = delta - ((avg_cycles + FIXED_1_2) >> AVG_SHIFT);
-        avg_cycles += delta;
-        /* And average deviation */
-        delta = abs(delta) - ((avg_deviation + FIXED_1_2) >> AVG_SHIFT);
-        avg_deviation += delta;
-}
-#else
-#define add_interrupt_bench(x)
-#endif
-
-static __u32 get_reg(struct fast_pool *f, struct pt_regs *regs)
-{
-	__u32 *ptr = (__u32 *) regs;
-	unsigned int idx;
-
-	if (regs == NULL)
-		return 0;
-	idx = READ_ONCE(f->reg_idx);
-	if (idx >= sizeof(struct pt_regs) / sizeof(__u32))
-		idx = 0;
-	ptr += idx++;
-	WRITE_ONCE(f->reg_idx, idx);
-	return *ptr;
-}
-
-void add_interrupt_randomness(int irq, int irq_flags)
-{
-	struct entropy_store	*r;
-	struct fast_pool	*fast_pool = this_cpu_ptr(&irq_randomness);
-	struct pt_regs		*regs = get_irq_regs();
-	unsigned long		now = jiffies;
-	cycles_t		cycles = random_get_entropy();
-	__u32			c_high, j_high;
-	__u64			ip;
-	unsigned long		seed;
-	int			credit = 0;
-
-	if (cycles == 0)
-		cycles = get_reg(fast_pool, regs);
-	c_high = (sizeof(cycles) > 4) ? cycles >> 32 : 0;
-	j_high = (sizeof(now) > 4) ? now >> 32 : 0;
-	fast_pool->pool[0] ^= cycles ^ j_high ^ irq;
-	fast_pool->pool[1] ^= now ^ c_high;
-	ip = regs ? instruction_pointer(regs) : _RET_IP_;
-	fast_pool->pool[2] ^= ip;
-	fast_pool->pool[3] ^= (sizeof(ip) > 4) ? ip >> 32 :
-		get_reg(fast_pool, regs);
-
-	fast_mix(fast_pool);
-	add_interrupt_bench(cycles);
-
-	if (unlikely(crng_init == 0)) {
-		if ((fast_pool->count >= 64) &&
-		    crng_fast_load((char *) fast_pool->pool,
-				   sizeof(fast_pool->pool))) {
-			fast_pool->count = 0;
-			fast_pool->last = now;
-		}
-		return;
-	}
+	unsigned int new, orig, add;
+	unsigned long flags;
 
-	if ((fast_pool->count < 64) &&
-	    !time_after(now, fast_pool->last + HZ))
+	if (!bits)
 		return;
 
-	r = &input_pool;
-	if (!spin_trylock(&r->lock))
-		return;
+	add = min_t(size_t, bits, POOL_BITS);
 
-	fast_pool->last = now;
-	__mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool));
+	do {
+		orig = READ_ONCE(input_pool.init_bits);
+		new = min_t(unsigned int, POOL_BITS, orig + add);
+	} while (cmpxchg(&input_pool.init_bits, orig, new) != orig);
 
-	/*
-	 * If we have architectural seed generator, produce a seed and
-	 * add it to the pool.  For the sake of paranoia don't let the
-	 * architectural seed generator dominate the input from the
-	 * interrupt noise.
-	 */
-	if (arch_get_random_seed_long(&seed)) {
-		__mix_pool_bytes(r, &seed, sizeof(seed));
-		credit = 1;
+	if (orig < POOL_READY_BITS && new >= POOL_READY_BITS) {
+		crng_reseed(); /* Sets crng_init to CRNG_READY under base_crng.lock. */
+		process_random_ready_list();
+		wake_up_interruptible(&crng_init_wait);
+		kill_fasync(&fasync, SIGIO, POLL_IN);
+		pr_notice("crng init done\n");
+		if (urandom_warning.missed)
+			pr_notice("%d urandom warning(s) missed due to ratelimiting\n",
+				  urandom_warning.missed);
+	} else if (orig < POOL_EARLY_BITS && new >= POOL_EARLY_BITS) {
+		spin_lock_irqsave(&base_crng.lock, flags);
+		/* Check if crng_init is CRNG_EMPTY, to avoid race with crng_reseed(). */
+		if (crng_init == CRNG_EMPTY) {
+			extract_entropy(base_crng.key, sizeof(base_crng.key));
+			crng_init = CRNG_EARLY;
+		}
+		spin_unlock_irqrestore(&base_crng.lock, flags);
 	}
-	spin_unlock(&r->lock);
-
-	fast_pool->count = 0;
-
-	/* award one bit for the contents of the fast pool */
-	credit_entropy_bits(r, credit + 1);
 }
-EXPORT_SYMBOL_GPL(add_interrupt_randomness);
 
-#ifdef CONFIG_BLOCK
-void add_disk_randomness(struct gendisk *disk)
-{
-	if (!disk || !disk->random)
-		return;
-	/* first major is 1, so we get >= 0x200 here */
-	add_timer_randomness(disk->random, 0x100 + disk_devt(disk));
-	trace_add_disk_randomness(disk_devt(disk), ENTROPY_BITS(&input_pool));
-}
-EXPORT_SYMBOL_GPL(add_disk_randomness);
-#endif
 
-/*********************************************************************
+/**********************************************************************
  *
- * Entropy extraction routines
+ * Entropy collection routines.
  *
- *********************************************************************/
-
-/*
- * This utility inline function is responsible for transferring entropy
- * from the primary pool to the secondary extraction pool. We make
- * sure we pull enough for a 'catastrophic reseed'.
- */
-static void _xfer_secondary_pool(struct entropy_store *r, size_t nbytes);
-static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
-{
-	if (!r->pull ||
-	    r->entropy_count >= (nbytes << (ENTROPY_SHIFT + 3)) ||
-	    r->entropy_count > r->poolinfo->poolfracbits)
-		return;
+ * The following exported functions are used for pushing entropy into
+ * the above entropy accumulation routines:
+ *
+ *	void add_device_randomness(const void *buf, size_t len);
+ *	void add_hwgenerator_randomness(const void *buf, size_t len, size_t entropy);
+ *	void add_bootloader_randomness(const void *buf, size_t len);
+ *	void add_interrupt_randomness(int irq);
+ *	void add_input_randomness(unsigned int type, unsigned int code, unsigned int value);
+ *	void add_disk_randomness(struct gendisk *disk);
+ *
+ * add_device_randomness() adds data to the input pool that
+ * is likely to differ between two devices (or possibly even per boot).
+ * This would be things like MAC addresses or serial numbers, or the
+ * read-out of the RTC. This does *not* credit any actual entropy to
+ * the pool, but it initializes the pool to different values for devices
+ * that might otherwise be identical and have very little entropy
+ * available to them (particularly common in the embedded world).
+ *
+ * add_hwgenerator_randomness() is for true hardware RNGs, and will credit
+ * entropy as specified by the caller. If the entropy pool is full it will
+ * block until more entropy is needed.
+ *
+ * add_bootloader_randomness() is called by bootloader drivers, such as EFI
+ * and device tree, and credits its input depending on whether or not the
+ * configuration option CONFIG_RANDOM_TRUST_BOOTLOADER is set.
+ *
+ * add_interrupt_randomness() uses the interrupt timing as random
+ * inputs to the entropy pool. Using the cycle counters and the irq source
+ * as inputs, it feeds the input pool roughly once a second or after 64
+ * interrupts, crediting 1 bit of entropy for whichever comes first.
+ *
+ * add_input_randomness() uses the input layer interrupt timing, as well
+ * as the event type information from the hardware.
+ *
+ * add_disk_randomness() uses what amounts to the seek time of block
+ * layer request events, on a per-disk_devt basis, as input to the
+ * entropy pool. Note that high-speed solid state drives with very low
+ * seek times do not make for good sources of entropy, as their seek
+ * times are usually fairly consistent.
+ *
+ * The last two routines try to estimate how many bits of entropy
+ * to credit. They do this by keeping track of the first and second
+ * order deltas of the event timings.
+ *
+ **********************************************************************/
 
-	_xfer_secondary_pool(r, nbytes);
+static bool trust_cpu __initdata = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU);
+static bool trust_bootloader __initdata = IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER);
+static int __init parse_trust_cpu(char *arg)
+{
+	return kstrtobool(arg, &trust_cpu);
 }
+static int __init parse_trust_bootloader(char *arg)
+{
+	return kstrtobool(arg, &trust_bootloader);
+}
+early_param("random.trust_cpu", parse_trust_cpu);
+early_param("random.trust_bootloader", parse_trust_bootloader);
 
-static void _xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
+/*
+ * The first collection of entropy occurs at system boot while interrupts
+ * are still turned off. Here we push in latent entropy, RDSEED, a timestamp,
+ * utsname(), and the command line. Depending on the above configuration knob,
+ * RDSEED may be considered sufficient for initialization. Note that much
+ * earlier setup may already have pushed entropy into the input pool by the
+ * time we get here.
+ */
+int __init random_init(const char *command_line)
 {
-	__u32	tmp[OUTPUT_POOL_WORDS];
+	ktime_t now = ktime_get_real();
+	unsigned int i, arch_bits;
+	unsigned long entropy;
 
-	int bytes = nbytes;
+#if defined(LATENT_ENTROPY_PLUGIN)
+	static const u8 compiletime_seed[BLAKE2S_BLOCK_SIZE] __initconst __latent_entropy;
+	_mix_pool_bytes(compiletime_seed, sizeof(compiletime_seed));
+#endif
 
-	/* pull at least as much as a wakeup */
-	bytes = max_t(int, bytes, random_read_wakeup_bits / 8);
-	/* but never more than the buffer size */
-	bytes = min_t(int, bytes, sizeof(tmp));
+	for (i = 0, arch_bits = BLAKE2S_BLOCK_SIZE * 8;
+	     i < BLAKE2S_BLOCK_SIZE; i += sizeof(entropy)) {
+		if (!arch_get_random_seed_long_early(&entropy) &&
+		    !arch_get_random_long_early(&entropy)) {
+			entropy = random_get_entropy();
+			arch_bits -= sizeof(entropy) * 8;
+		}
+		_mix_pool_bytes(&entropy, sizeof(entropy));
+	}
+	_mix_pool_bytes(&now, sizeof(now));
+	_mix_pool_bytes(utsname(), sizeof(*(utsname())));
+	_mix_pool_bytes(command_line, strlen(command_line));
+	add_latent_entropy();
+
+	if (crng_ready())
+		crng_reseed();
+	else if (trust_cpu)
+		_credit_init_bits(arch_bits);
 
-	trace_xfer_secondary_pool(r->name, bytes * 8, nbytes * 8,
-				  ENTROPY_BITS(r), ENTROPY_BITS(r->pull));
-	bytes = extract_entropy(r->pull, tmp, bytes,
-				random_read_wakeup_bits / 8, 0);
-	mix_pool_bytes(r, tmp, bytes);
-	credit_entropy_bits(r, bytes*8);
+	return 0;
 }
 
 /*
- * Used as a workqueue function so that when the input pool is getting
- * full, we can "spill over" some entropy to the output pools.  That
- * way the output pools can store some of the excess entropy instead
- * of letting it go to waste.
+ * Add device- or boot-specific data to the input pool to help
+ * initialize it.
+ *
+ * None of this adds any entropy; it is meant to avoid the problem of
+ * the entropy pool having similar initial state across largely
+ * identical devices.
  */
-static void push_to_pool(struct work_struct *work)
+void add_device_randomness(const void *buf, size_t len)
 {
-	struct entropy_store *r = container_of(work, struct entropy_store,
-					      push_work);
-	BUG_ON(!r);
-	_xfer_secondary_pool(r, random_read_wakeup_bits/8);
-	trace_push_to_pool(r->name, r->entropy_count >> ENTROPY_SHIFT,
-			   r->pull->entropy_count >> ENTROPY_SHIFT);
+	unsigned long entropy = random_get_entropy();
+	unsigned long flags;
+
+	spin_lock_irqsave(&input_pool.lock, flags);
+	_mix_pool_bytes(&entropy, sizeof(entropy));
+	_mix_pool_bytes(buf, len);
+	spin_unlock_irqrestore(&input_pool.lock, flags);
 }
+EXPORT_SYMBOL(add_device_randomness);
 
 /*
- * This function decides how many bytes to actually take from the
- * given pool, and also debits the entropy count accordingly.
+ * Interface for in-kernel drivers of true hardware RNGs.
+ * Those devices may produce endless random bits and will be throttled
+ * when our pool is full.
  */
-static size_t account(struct entropy_store *r, size_t nbytes, int min,
-		      int reserved)
+void add_hwgenerator_randomness(const void *buf, size_t len, size_t entropy)
 {
-	int entropy_count, orig, have_bytes;
-	size_t ibytes, nfrac;
-
-	BUG_ON(r->entropy_count > r->poolinfo->poolfracbits);
+	mix_pool_bytes(buf, len);
+	credit_init_bits(entropy);
 
-	/* Can we pull enough? */
-retry:
-	entropy_count = orig = READ_ONCE(r->entropy_count);
-	ibytes = nbytes;
-	/* never pull more than available */
-	have_bytes = entropy_count >> (ENTROPY_SHIFT + 3);
+	/*
+	 * Throttle writing to once every CRNG_RESEED_INTERVAL, unless
+	 * we're not yet initialized.
+	 */
+	if (!kthread_should_stop() && crng_ready())
+		schedule_timeout_interruptible(CRNG_RESEED_INTERVAL);
+}
+EXPORT_SYMBOL_GPL(add_hwgenerator_randomness);
 
-	if ((have_bytes -= reserved) < 0)
-		have_bytes = 0;
-	ibytes = min_t(size_t, ibytes, have_bytes);
-	if (ibytes < min)
-		ibytes = 0;
+/*
+ * Handle random seed passed by bootloader, and credit it if
+ * CONFIG_RANDOM_TRUST_BOOTLOADER is set.
+ */
+void __init add_bootloader_randomness(const void *buf, size_t len)
+{
+	mix_pool_bytes(buf, len);
+	if (trust_bootloader)
+		credit_init_bits(len * 8);
+}
 
-	if (unlikely(entropy_count < 0)) {
-		pr_warn("random: negative entropy count: pool %s count %d\n",
-			r->name, entropy_count);
-		WARN_ON(1);
-		entropy_count = 0;
-	}
-	nfrac = ibytes << (ENTROPY_SHIFT + 3);
-	if ((size_t) entropy_count > nfrac)
-		entropy_count -= nfrac;
-	else
-		entropy_count = 0;
+struct fast_pool {
+	unsigned long pool[4];
+	unsigned long last;
+	unsigned int count;
+	struct timer_list mix;
+};
 
-	if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig)
-		goto retry;
+static void mix_interrupt_randomness(struct timer_list *work);
 
-	trace_debit_entropy(r->name, 8 * ibytes);
-	if (ibytes &&
-	    (r->entropy_count >> ENTROPY_SHIFT) < random_write_wakeup_bits) {
-		wake_up_interruptible(&random_write_wait);
-		kill_fasync(&fasync, SIGIO, POLL_OUT);
-	}
+static DEFINE_PER_CPU(struct fast_pool, irq_randomness) = {
+#ifdef CONFIG_64BIT
+#define FASTMIX_PERM SIPHASH_PERMUTATION
+	.pool = { SIPHASH_CONST_0, SIPHASH_CONST_1, SIPHASH_CONST_2, SIPHASH_CONST_3 },
+#else
+#define FASTMIX_PERM HSIPHASH_PERMUTATION
+	.pool = { HSIPHASH_CONST_0, HSIPHASH_CONST_1, HSIPHASH_CONST_2, HSIPHASH_CONST_3 },
+#endif
+	.mix = __TIMER_INITIALIZER(mix_interrupt_randomness, 0)
+};
 
-	return ibytes;
+/*
+ * This is [Half]SipHash-1-x, starting from an empty key. Because
+ * the key is fixed, it assumes that its inputs are non-malicious,
+ * and therefore this has no security on its own. s represents the
+ * four-word SipHash state, while v represents a two-word input.
+ */
+static void fast_mix(unsigned long s[4], unsigned long v1, unsigned long v2)
+{
+	s[3] ^= v1;
+	FASTMIX_PERM(s[0], s[1], s[2], s[3]);
+	s[0] ^= v1;
+	s[3] ^= v2;
+	FASTMIX_PERM(s[0], s[1], s[2], s[3]);
+	s[0] ^= v2;
 }
 
+#ifdef CONFIG_SMP
 /*
- * This function does the actual extraction for extract_entropy and
- * extract_entropy_user.
- *
- * Note: we assume that .poolwords is a multiple of 16 words.
+ * This function is called when the CPU has just come online, with
+ * entry CPUHP_AP_RANDOM_ONLINE, just after CPUHP_AP_WORKQUEUE_ONLINE.
  */
-static void extract_buf(struct entropy_store *r, __u8 *out)
+int __cold random_online_cpu(unsigned int cpu)
 {
-	int i;
-	union {
-		__u32 w[5];
-		unsigned long l[LONGS(20)];
-	} hash;
-	__u32 workspace[SHA_WORKSPACE_WORDS];
-	unsigned long flags;
-
 	/*
-	 * If we have an architectural hardware random number
-	 * generator, use it for SHA's initial vector
+	 * During CPU shutdown and before CPU onlining, add_interrupt_
+	 * randomness() may schedule mix_interrupt_randomness(), and
+	 * set the MIX_INFLIGHT flag. However, because the worker can
+	 * be scheduled on a different CPU during this period, that
+	 * flag will never be cleared. For that reason, we zero out
+	 * the flag here, which runs just after workqueues are onlined
+	 * for the CPU again. This also has the effect of setting the
+	 * irq randomness count to zero so that new accumulated irqs
+	 * are fresh.
 	 */
-	sha_init(hash.w);
-	for (i = 0; i < LONGS(20); i++) {
-		unsigned long v;
-		if (!arch_get_random_long(&v))
-			break;
-		hash.l[i] = v;
-	}
-
-	/* Generate a hash across the pool, 16 words (512 bits) at a time */
-	spin_lock_irqsave(&r->lock, flags);
-	for (i = 0; i < r->poolinfo->poolwords; i += 16)
-		sha_transform(hash.w, (__u8 *)(r->pool + i), workspace);
+	per_cpu_ptr(&irq_randomness, cpu)->count = 0;
+	return 0;
+}
+#endif
 
+static void mix_interrupt_randomness(struct timer_list *work)
+{
+	struct fast_pool *fast_pool = container_of(work, struct fast_pool, mix);
 	/*
-	 * We mix the hash back into the pool to prevent backtracking
-	 * attacks (where the attacker knows the state of the pool
-	 * plus the current outputs, and attempts to find previous
-	 * ouputs), unless the hash function can be inverted. By
-	 * mixing at least a SHA1 worth of hash data back, we make
-	 * brute-forcing the feedback as hard as brute-forcing the
-	 * hash.
+	 * The size of the copied stack pool is explicitly 2 longs so that we
+	 * only ever ingest half of the siphash output each time, retaining
+	 * the other half as the next "key" that carries over. The entropy is
+	 * supposed to be sufficiently dispersed between bits so on average
+	 * we don't wind up "losing" some.
 	 */
-	__mix_pool_bytes(r, hash.w, sizeof(hash.w));
-	spin_unlock_irqrestore(&r->lock, flags);
+	unsigned long pool[2];
+	unsigned int count;
 
-	memzero_explicit(workspace, sizeof(workspace));
+	/* Check to see if we're running on the wrong CPU due to hotplug. */
+	local_irq_disable();
+	if (fast_pool != this_cpu_ptr(&irq_randomness)) {
+		local_irq_enable();
+		return;
+	}
 
 	/*
-	 * In case the hash function has some recognizable output
-	 * pattern, we fold it in half. Thus, we always feed back
-	 * twice as much data as we output.
+	 * Copy the pool to the stack so that the mixer always has a
+	 * consistent view, before we reenable irqs again.
 	 */
-	hash.w[0] ^= hash.w[3];
-	hash.w[1] ^= hash.w[4];
-	hash.w[2] ^= rol32(hash.w[2], 16);
+	memcpy(pool, fast_pool->pool, sizeof(pool));
+	count = fast_pool->count;
+	fast_pool->count = 0;
+	fast_pool->last = jiffies;
+	local_irq_enable();
+
+	mix_pool_bytes(pool, sizeof(pool));
+	credit_init_bits(clamp_t(unsigned int, (count & U16_MAX) / 64, 1, sizeof(pool) * 8));
 
-	memcpy(out, &hash, EXTRACT_SIZE);
-	memzero_explicit(&hash, sizeof(hash));
+	memzero_explicit(pool, sizeof(pool));
 }
 
-static ssize_t _extract_entropy(struct entropy_store *r, void *buf,
-				size_t nbytes, int fips)
+void add_interrupt_randomness(int irq)
 {
-	ssize_t ret = 0, i;
-	__u8 tmp[EXTRACT_SIZE];
-	unsigned long flags;
+	enum { MIX_INFLIGHT = 1U << 31 };
+	unsigned long entropy = random_get_entropy();
+	struct fast_pool *fast_pool = this_cpu_ptr(&irq_randomness);
+	struct pt_regs *regs = get_irq_regs();
+	unsigned int new_count;
 
-	while (nbytes) {
-		extract_buf(r, tmp);
+	fast_mix(fast_pool->pool, entropy,
+		 (regs ? instruction_pointer(regs) : _RET_IP_) ^ swab(irq));
+	new_count = ++fast_pool->count;
 
-		if (fips) {
-			spin_lock_irqsave(&r->lock, flags);
-			if (!memcmp(tmp, r->last_data, EXTRACT_SIZE))
-				panic("Hardware RNG duplicated output!\n");
-			memcpy(r->last_data, tmp, EXTRACT_SIZE);
-			spin_unlock_irqrestore(&r->lock, flags);
-		}
-		i = min_t(int, nbytes, EXTRACT_SIZE);
-		memcpy(buf, tmp, i);
-		nbytes -= i;
-		buf += i;
-		ret += i;
-	}
+	if (new_count & MIX_INFLIGHT)
+		return;
 
-	/* Wipe data just returned from memory */
-	memzero_explicit(tmp, sizeof(tmp));
+	if (new_count < 1024 && !time_is_before_jiffies(fast_pool->last + HZ))
+		return;
 
-	return ret;
+	fast_pool->count |= MIX_INFLIGHT;
+	if (!timer_pending(&fast_pool->mix)) {
+		fast_pool->mix.expires = jiffies;
+		add_timer_on(&fast_pool->mix, raw_smp_processor_id());
+	}
 }
+EXPORT_SYMBOL_GPL(add_interrupt_randomness);
+
+/* There is one of these per entropy source */
+struct timer_rand_state {
+	unsigned long last_time;
+	long last_delta, last_delta2;
+};
 
 /*
- * This function extracts randomness from the "entropy pool", and
- * returns it in a buffer.
- *
- * The min parameter specifies the minimum amount we can pull before
- * failing to avoid races that defeat catastrophic reseeding while the
- * reserved parameter indicates how much entropy we must leave in the
- * pool after each pull to avoid starving other readers.
+ * This function adds entropy to the entropy "pool" by using timing
+ * delays. It uses the timer_rand_state structure to make an estimate
+ * of how many bits of entropy this call has added to the pool. The
+ * value "num" is also added to the pool; it should somehow describe
+ * the type of event that just happened.
  */
-static ssize_t extract_entropy(struct entropy_store *r, void *buf,
-				 size_t nbytes, int min, int reserved)
+static void add_timer_randomness(struct timer_rand_state *state, unsigned int num)
 {
-	__u8 tmp[EXTRACT_SIZE];
-	unsigned long flags;
+	unsigned long entropy = random_get_entropy(), now = jiffies, flags;
+	long delta, delta2, delta3;
+	unsigned int bits;
 
-	/* if last_data isn't primed, we need EXTRACT_SIZE extra bytes */
-	if (fips_enabled) {
-		spin_lock_irqsave(&r->lock, flags);
-		if (!r->last_data_init) {
-			r->last_data_init = 1;
-			spin_unlock_irqrestore(&r->lock, flags);
-			trace_extract_entropy(r->name, EXTRACT_SIZE,
-					      ENTROPY_BITS(r), _RET_IP_);
-			xfer_secondary_pool(r, EXTRACT_SIZE);
-			extract_buf(r, tmp);
-			spin_lock_irqsave(&r->lock, flags);
-			memcpy(r->last_data, tmp, EXTRACT_SIZE);
-		}
-		spin_unlock_irqrestore(&r->lock, flags);
+	/*
+	 * If we're in a hard IRQ, add_interrupt_randomness() will be called
+	 * sometime after, so mix into the fast pool.
+	 */
+	if (in_irq()) {
+		fast_mix(this_cpu_ptr(&irq_randomness)->pool, entropy, num);
+	} else {
+		spin_lock_irqsave(&input_pool.lock, flags);
+		_mix_pool_bytes(&entropy, sizeof(entropy));
+		_mix_pool_bytes(&num, sizeof(num));
+		spin_unlock_irqrestore(&input_pool.lock, flags);
 	}
 
-	trace_extract_entropy(r->name, nbytes, ENTROPY_BITS(r), _RET_IP_);
-	xfer_secondary_pool(r, nbytes);
-	nbytes = account(r, nbytes, min, reserved);
-
-	return _extract_entropy(r, buf, nbytes, fips_enabled);
-}
-
-/*
- * This function extracts randomness from the "entropy pool", and
- * returns it in a userspace buffer.
- */
-static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
-				    size_t nbytes)
-{
-	ssize_t ret = 0, i;
-	__u8 tmp[EXTRACT_SIZE];
-	int large_request = (nbytes > 256);
+	if (crng_ready())
+		return;
 
-	trace_extract_entropy_user(r->name, nbytes, ENTROPY_BITS(r), _RET_IP_);
-	if (!r->initialized && r->pull) {
-		xfer_secondary_pool(r, ENTROPY_BITS(r->pull)/8);
-		if (!r->initialized)
-			return 0;
-	}
-	xfer_secondary_pool(r, nbytes);
-	nbytes = account(r, nbytes, 0, 0);
+	/*
+	 * Calculate number of bits of randomness we probably added.
+	 * We take into account the first, second and third-order deltas
+	 * in order to make our estimate.
+	 */
+	delta = now - READ_ONCE(state->last_time);
+	WRITE_ONCE(state->last_time, now);
 
-	while (nbytes) {
-		if (large_request && need_resched()) {
-			if (signal_pending(current)) {
-				if (ret == 0)
-					ret = -ERESTARTSYS;
-				break;
-			}
-			schedule();
-		}
+	delta2 = delta - READ_ONCE(state->last_delta);
+	WRITE_ONCE(state->last_delta, delta);
 
-		extract_buf(r, tmp);
-		i = min_t(int, nbytes, EXTRACT_SIZE);
-		if (copy_to_user(buf, tmp, i)) {
-			ret = -EFAULT;
-			break;
-		}
+	delta3 = delta2 - READ_ONCE(state->last_delta2);
+	WRITE_ONCE(state->last_delta2, delta2);
 
-		nbytes -= i;
-		buf += i;
-		ret += i;
-	}
+	if (delta < 0)
+		delta = -delta;
+	if (delta2 < 0)
+		delta2 = -delta2;
+	if (delta3 < 0)
+		delta3 = -delta3;
+	if (delta > delta2)
+		delta = delta2;
+	if (delta > delta3)
+		delta = delta3;
 
-	/* Wipe data just returned from memory */
-	memzero_explicit(tmp, sizeof(tmp));
+	/*
+	 * delta is now minimum absolute delta. Round down by 1 bit
+	 * on general principles, and limit entropy estimate to 11 bits.
+	 */
+	bits = min(fls(delta >> 1), 11);
 
-	return ret;
+	/*
+	 * As mentioned above, if we're in a hard IRQ, add_interrupt_randomness()
+	 * will run after this, which uses a different crediting scheme of 1 bit
+	 * per every 64 interrupts. In order to let that function do accounting
+	 * close to the one in this function, we credit a full 64/64 bit per bit,
+	 * and then subtract one to account for the extra one added.
+	 */
+	if (in_irq())
+		this_cpu_ptr(&irq_randomness)->count += max(1u, bits * 64) - 1;
+	else
+		_credit_init_bits(bits);
 }
 
-#define warn_unseeded_randomness(previous) \
-	_warn_unseeded_randomness(__func__, (void *) _RET_IP_, (previous))
-
-static void _warn_unseeded_randomness(const char *func_name, void *caller,
-				      void **previous)
+void add_input_randomness(unsigned int type, unsigned int code, unsigned int value)
 {
-#ifdef CONFIG_WARN_ALL_UNSEEDED_RANDOM
-	const bool print_once = false;
-#else
-	static bool print_once __read_mostly;
-#endif
+	static unsigned char last_value;
+	static struct timer_rand_state input_timer_state = { INITIAL_JIFFIES };
 
-	if (print_once ||
-	    crng_ready() ||
-	    (previous && (caller == READ_ONCE(*previous))))
+	/* Ignore autorepeat and the like. */
+	if (value == last_value)
 		return;
-	WRITE_ONCE(*previous, caller);
-#ifndef CONFIG_WARN_ALL_UNSEEDED_RANDOM
-	print_once = true;
-#endif
-	if (__ratelimit(&unseeded_warning))
-		pr_notice("random: %s called from %pS with crng_init=%d\n",
-			  func_name, caller, crng_init);
+
+	last_value = value;
+	add_timer_randomness(&input_timer_state,
+			     (type << 4) ^ code ^ (code >> 4) ^ value);
 }
+EXPORT_SYMBOL_GPL(add_input_randomness);
 
-/*
- * This function is the exported kernel interface.  It returns some
- * number of good random numbers, suitable for key generation, seeding
- * TCP sequence numbers, etc.  It does not rely on the hardware random
- * number generator.  For random bytes direct from the hardware RNG
- * (when available), use get_random_bytes_arch(). In order to ensure
- * that the randomness provided by this function is okay, the function
- * wait_for_random_bytes() should be called and return 0 at least once
- * at any point prior.
- */
-static void _get_random_bytes(void *buf, int nbytes)
+#ifdef CONFIG_BLOCK
+void add_disk_randomness(struct gendisk *disk)
 {
-	__u8 tmp[CHACHA_BLOCK_SIZE] __aligned(4);
-
-	trace_get_random_bytes(nbytes, _RET_IP_);
-
-	while (nbytes >= CHACHA_BLOCK_SIZE) {
-		extract_crng(buf);
-		buf += CHACHA_BLOCK_SIZE;
-		nbytes -= CHACHA_BLOCK_SIZE;
-	}
-
-	if (nbytes > 0) {
-		extract_crng(tmp);
-		memcpy(buf, tmp, nbytes);
-		crng_backtrack_protect(tmp, nbytes);
-	} else
-		crng_backtrack_protect(tmp, CHACHA_BLOCK_SIZE);
-	memzero_explicit(tmp, sizeof(tmp));
+	if (!disk || !disk->random)
+		return;
+	/* First major is 1, so we get >= 0x200 here. */
+	add_timer_randomness(disk->random, 0x100 + disk_devt(disk));
 }
+EXPORT_SYMBOL_GPL(add_disk_randomness);
 
-void get_random_bytes(void *buf, int nbytes)
+void __cold rand_initialize_disk(struct gendisk *disk)
 {
-	static void *previous;
+	struct timer_rand_state *state;
 
-	warn_unseeded_randomness(&previous);
-	_get_random_bytes(buf, nbytes);
+	/*
+	 * If kzalloc returns null, we just won't use that entropy
+	 * source.
+	 */
+	state = kzalloc(sizeof(struct timer_rand_state), GFP_KERNEL);
+	if (state) {
+		state->last_time = INITIAL_JIFFIES;
+		disk->random = state;
+	}
 }
-EXPORT_SYMBOL(get_random_bytes);
-
+#endif
 
 /*
  * Each time the timer fires, we expect that we got an unpredictable
@@ -1745,371 +1143,181 @@
  *
  * So the re-arming always happens in the entropy loop itself.
  */
-static void entropy_timer(struct timer_list *t)
+static void __cold entropy_timer(struct timer_list *t)
 {
-	credit_entropy_bits(&input_pool, 1);
+	credit_init_bits(1);
 }
 
 /*
  * If we have an actual cycle counter, see if we can
  * generate enough entropy with timing noise
  */
-static void try_to_generate_entropy(void)
+static void __cold try_to_generate_entropy(void)
 {
 	struct {
-		unsigned long now;
+		unsigned long entropy;
 		struct timer_list timer;
 	} stack;
 
-	stack.now = random_get_entropy();
+	stack.entropy = random_get_entropy();
 
 	/* Slow counter - or none. Don't even bother */
-	if (stack.now == random_get_entropy())
+	if (stack.entropy == random_get_entropy())
 		return;
 
 	timer_setup_on_stack(&stack.timer, entropy_timer, 0);
-	while (!crng_ready()) {
+	while (!crng_ready() && !signal_pending(current)) {
 		if (!timer_pending(&stack.timer))
-			mod_timer(&stack.timer, jiffies+1);
-		mix_pool_bytes(&input_pool, &stack.now, sizeof(stack.now));
+			mod_timer(&stack.timer, jiffies + 1);
+		mix_pool_bytes(&stack.entropy, sizeof(stack.entropy));
 		schedule();
-		stack.now = random_get_entropy();
+		stack.entropy = random_get_entropy();
 	}
 
 	del_timer_sync(&stack.timer);
 	destroy_timer_on_stack(&stack.timer);
-	mix_pool_bytes(&input_pool, &stack.now, sizeof(stack.now));
+	mix_pool_bytes(&stack.entropy, sizeof(stack.entropy));
 }
 
-/*
- * Wait for the urandom pool to be seeded and thus guaranteed to supply
- * cryptographically secure random numbers. This applies to: the /dev/urandom
- * device, the get_random_bytes function, and the get_random_{u32,u64,int,long}
- * family of functions. Using any of these functions without first calling
- * this function forfeits the guarantee of security.
- *
- * Returns: 0 if the urandom pool has been seeded.
- *          -ERESTARTSYS if the function was interrupted by a signal.
- */
-int wait_for_random_bytes(void)
-{
-	if (likely(crng_ready()))
-		return 0;
-
-	do {
-		int ret;
-		ret = wait_event_interruptible_timeout(crng_init_wait, crng_ready(), HZ);
-		if (ret)
-			return ret > 0 ? 0 : ret;
-
-		try_to_generate_entropy();
-	} while (!crng_ready());
 
-	return 0;
-}
-EXPORT_SYMBOL(wait_for_random_bytes);
-
-/*
- * Returns whether or not the urandom pool has been seeded and thus guaranteed
- * to supply cryptographically secure random numbers. This applies to: the
- * /dev/urandom device, the get_random_bytes function, and the get_random_{u32,
- * ,u64,int,long} family of functions.
+/**********************************************************************
  *
- * Returns: true if the urandom pool has been seeded.
- *          false if the urandom pool has not been seeded.
- */
-bool rng_is_initialized(void)
-{
-	return crng_ready();
-}
-EXPORT_SYMBOL(rng_is_initialized);
-
-/*
- * Add a callback function that will be invoked when the nonblocking
- * pool is initialised.
+ * Userspace reader/writer interfaces.
  *
- * returns: 0 if callback is successfully added
- *	    -EALREADY if pool is already initialised (callback not called)
- *	    -ENOENT if module for callback is not alive
- */
-int add_random_ready_callback(struct random_ready_callback *rdy)
-{
-	struct module *owner;
-	unsigned long flags;
-	int err = -EALREADY;
-
-	if (crng_ready())
-		return err;
-
-	owner = rdy->owner;
-	if (!try_module_get(owner))
-		return -ENOENT;
-
-	spin_lock_irqsave(&random_ready_list_lock, flags);
-	if (crng_ready())
-		goto out;
-
-	owner = NULL;
-
-	list_add(&rdy->list, &random_ready_list);
-	err = 0;
-
-out:
-	spin_unlock_irqrestore(&random_ready_list_lock, flags);
-
-	module_put(owner);
-
-	return err;
-}
-EXPORT_SYMBOL(add_random_ready_callback);
-
-/*
- * Delete a previously registered readiness callback function.
- */
-void del_random_ready_callback(struct random_ready_callback *rdy)
-{
-	unsigned long flags;
-	struct module *owner = NULL;
-
-	spin_lock_irqsave(&random_ready_list_lock, flags);
-	if (!list_empty(&rdy->list)) {
-		list_del_init(&rdy->list);
-		owner = rdy->owner;
-	}
-	spin_unlock_irqrestore(&random_ready_list_lock, flags);
-
-	module_put(owner);
-}
-EXPORT_SYMBOL(del_random_ready_callback);
-
-/*
- * This function will use the architecture-specific hardware random
- * number generator if it is available.  The arch-specific hw RNG will
- * almost certainly be faster than what we can do in software, but it
- * is impossible to verify that it is implemented securely (as
- * opposed, to, say, the AES encryption of a sequence number using a
- * key known by the NSA).  So it's useful if we need the speed, but
- * only if we're willing to trust the hardware manufacturer not to
- * have put in a back door.
+ * getrandom(2) is the primary modern interface into the RNG and should
+ * be used in preference to anything else.
  *
- * Return number of bytes filled in.
- */
-int __must_check get_random_bytes_arch(void *buf, int nbytes)
-{
-	int left = nbytes;
-	char *p = buf;
-
-	trace_get_random_bytes_arch(left, _RET_IP_);
-	while (left) {
-		unsigned long v;
-		int chunk = min_t(int, left, sizeof(unsigned long));
-
-		if (!arch_get_random_long(&v))
-			break;
-
-		memcpy(p, &v, chunk);
-		p += chunk;
-		left -= chunk;
-	}
-
-	return nbytes - left;
-}
-EXPORT_SYMBOL(get_random_bytes_arch);
-
-/*
- * init_std_data - initialize pool with system data
+ * Reading from /dev/random has the same functionality as calling
+ * getrandom(2) with flags=0. In earlier versions, however, it had
+ * vastly different semantics and should therefore be avoided, to
+ * prevent backwards compatibility issues.
  *
- * @r: pool to initialize
+ * Reading from /dev/urandom has the same functionality as calling
+ * getrandom(2) with flags=GRND_INSECURE. Because it does not block
+ * waiting for the RNG to be ready, it should not be used.
  *
- * This function clears the pool's entropy count and mixes some system
- * data into the pool to prepare it for use. The pool is not cleared
- * as that can only decrease the entropy in the pool.
- */
-static void __init init_std_data(struct entropy_store *r)
+ * Writing to either /dev/random or /dev/urandom adds entropy to
+ * the input pool but does not credit it.
+ *
+ * Polling on /dev/random indicates when the RNG is initialized, on
+ * the read side, and when it wants new entropy, on the write side.
+ *
+ * Both /dev/random and /dev/urandom have the same set of ioctls for
+ * adding entropy, getting the entropy count, zeroing the count, and
+ * reseeding the crng.
+ *
+ **********************************************************************/
+
+SYSCALL_DEFINE3(getrandom, char __user *, ubuf, size_t, len, unsigned int, flags)
 {
-	int i;
-	ktime_t now = ktime_get_real();
-	unsigned long rv;
+	struct iov_iter iter;
+	struct iovec iov;
+	int ret;
 
-	r->last_pulled = jiffies;
-	mix_pool_bytes(r, &now, sizeof(now));
-	for (i = r->poolinfo->poolbytes; i > 0; i -= sizeof(rv)) {
-		if (!arch_get_random_seed_long(&rv) &&
-		    !arch_get_random_long(&rv))
-			rv = random_get_entropy();
-		mix_pool_bytes(r, &rv, sizeof(rv));
-	}
-	mix_pool_bytes(r, utsname(), sizeof(*(utsname())));
-}
+	if (flags & ~(GRND_NONBLOCK | GRND_RANDOM | GRND_INSECURE))
+		return -EINVAL;
 
-/*
- * Note that setup_arch() may call add_device_randomness()
- * long before we get here. This allows seeding of the pools
- * with some platform dependent data very early in the boot
- * process. But it limits our options here. We must use
- * statically allocated structures that already have all
- * initializations complete at compile time. We should also
- * take care not to overwrite the precious per platform data
- * we were given.
- */
-int __init rand_initialize(void)
-{
-	init_std_data(&input_pool);
-	init_std_data(&blocking_pool);
-	crng_initialize(&primary_crng);
-	crng_global_init_time = jiffies;
-	if (ratelimit_disable) {
-		urandom_warning.interval = 0;
-		unseeded_warning.interval = 0;
+	/*
+	 * Requesting insecure and blocking randomness at the same time makes
+	 * no sense.
+	 */
+	if ((flags & (GRND_INSECURE | GRND_RANDOM)) == (GRND_INSECURE | GRND_RANDOM))
+		return -EINVAL;
+
+	if (!crng_ready() && !(flags & GRND_INSECURE)) {
+		if (flags & GRND_NONBLOCK)
+			return -EAGAIN;
+		ret = wait_for_random_bytes();
+		if (unlikely(ret))
+			return ret;
 	}
-	return 0;
+
+	ret = import_single_range(READ, ubuf, len, &iov, &iter);
+	if (unlikely(ret))
+		return ret;
+	return get_random_bytes_user(&iter);
 }
 
-#ifdef CONFIG_BLOCK
-void rand_initialize_disk(struct gendisk *disk)
+static __poll_t random_poll(struct file *file, poll_table *wait)
 {
-	struct timer_rand_state *state;
-
-	/*
-	 * If kzalloc returns null, we just won't use that entropy
-	 * source.
-	 */
-	state = kzalloc(sizeof(struct timer_rand_state), GFP_KERNEL);
-	if (state) {
-		state->last_time = INITIAL_JIFFIES;
-		disk->random = state;
-	}
+	poll_wait(file, &crng_init_wait, wait);
+	return crng_ready() ? EPOLLIN | EPOLLRDNORM : EPOLLOUT | EPOLLWRNORM;
 }
-#endif
 
-static ssize_t
-_random_read(int nonblock, char __user *buf, size_t nbytes)
+static ssize_t write_pool_user(struct iov_iter *iter)
 {
-	ssize_t n;
+	u8 block[BLAKE2S_BLOCK_SIZE];
+	ssize_t ret = 0;
+	size_t copied;
 
-	if (nbytes == 0)
+	if (unlikely(!iov_iter_count(iter)))
 		return 0;
 
-	nbytes = min_t(size_t, nbytes, SEC_XFER_SIZE);
-	while (1) {
-		n = extract_entropy_user(&blocking_pool, buf, nbytes);
-		if (n < 0)
-			return n;
-		trace_random_read(n*8, (nbytes-n)*8,
-				  ENTROPY_BITS(&blocking_pool),
-				  ENTROPY_BITS(&input_pool));
-		if (n > 0)
-			return n;
-
-		/* Pool is (near) empty.  Maybe wait and retry. */
-		if (nonblock)
-			return -EAGAIN;
+	for (;;) {
+		copied = copy_from_iter(block, sizeof(block), iter);
+		ret += copied;
+		mix_pool_bytes(block, copied);
+		if (!iov_iter_count(iter) || copied != sizeof(block))
+			break;
 
-		wait_event_interruptible(random_read_wait,
-		    blocking_pool.initialized &&
-		    (ENTROPY_BITS(&input_pool) >= random_read_wakeup_bits));
-		if (signal_pending(current))
-			return -ERESTARTSYS;
+		BUILD_BUG_ON(PAGE_SIZE % sizeof(block) != 0);
+		if (ret % PAGE_SIZE == 0) {
+			if (signal_pending(current))
+				break;
+			cond_resched();
+		}
 	}
-}
-
-static ssize_t
-random_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
-{
-	return _random_read(file->f_flags & O_NONBLOCK, buf, nbytes);
-}
-
-static ssize_t
-urandom_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
-{
-	unsigned long flags;
-	static int maxwarn = 10;
-	int ret;
 
-	if (!crng_ready() && maxwarn > 0) {
-		maxwarn--;
-		if (__ratelimit(&urandom_warning))
-			printk(KERN_NOTICE "random: %s: uninitialized "
-			       "urandom read (%zd bytes read)\n",
-			       current->comm, nbytes);
-		spin_lock_irqsave(&primary_crng.lock, flags);
-		crng_init_cnt = 0;
-		spin_unlock_irqrestore(&primary_crng.lock, flags);
-	}
-	nbytes = min_t(size_t, nbytes, INT_MAX >> (ENTROPY_SHIFT + 3));
-	ret = extract_crng_user(buf, nbytes);
-	trace_urandom_read(8 * nbytes, 0, ENTROPY_BITS(&input_pool));
-	return ret;
+	memzero_explicit(block, sizeof(block));
+	return ret ? ret : -EFAULT;
 }
 
-static __poll_t
-random_poll(struct file *file, poll_table * wait)
+static ssize_t random_write_iter(struct kiocb *kiocb, struct iov_iter *iter)
 {
-	__poll_t mask;
-
-	poll_wait(file, &random_read_wait, wait);
-	poll_wait(file, &random_write_wait, wait);
-	mask = 0;
-	if (ENTROPY_BITS(&input_pool) >= random_read_wakeup_bits)
-		mask |= EPOLLIN | EPOLLRDNORM;
-	if (ENTROPY_BITS(&input_pool) < random_write_wakeup_bits)
-		mask |= EPOLLOUT | EPOLLWRNORM;
-	return mask;
+	return write_pool_user(iter);
 }
 
-static int
-write_pool(struct entropy_store *r, const char __user *buffer, size_t count)
+static ssize_t urandom_read_iter(struct kiocb *kiocb, struct iov_iter *iter)
 {
-	size_t bytes;
-	__u32 t, buf[16];
-	const char __user *p = buffer;
-
-	while (count > 0) {
-		int b, i = 0;
-
-		bytes = min(count, sizeof(buf));
-		if (copy_from_user(&buf, p, bytes))
-			return -EFAULT;
+	static int maxwarn = 10;
 
-		for (b = bytes ; b > 0 ; b -= sizeof(__u32), i++) {
-			if (!arch_get_random_int(&t))
-				break;
-			buf[i] ^= t;
+	if (!crng_ready()) {
+		if (!ratelimit_disable && maxwarn <= 0)
+			++urandom_warning.missed;
+		else if (ratelimit_disable || __ratelimit(&urandom_warning)) {
+			--maxwarn;
+			pr_notice("%s: uninitialized urandom read (%zu bytes read)\n",
+				  current->comm, iov_iter_count(iter));
 		}
-
-		count -= bytes;
-		p += bytes;
-
-		mix_pool_bytes(r, buf, bytes);
-		cond_resched();
 	}
 
-	return 0;
+	return get_random_bytes_user(iter);
 }
 
-static ssize_t random_write(struct file *file, const char __user *buffer,
-			    size_t count, loff_t *ppos)
+static ssize_t random_read_iter(struct kiocb *kiocb, struct iov_iter *iter)
 {
-	size_t ret;
+	int ret;
 
-	ret = write_pool(&input_pool, buffer, count);
-	if (ret)
-		return ret;
+	if (!crng_ready() &&
+	    ((kiocb->ki_flags & IOCB_NOWAIT) ||
+	     (kiocb->ki_filp->f_flags & O_NONBLOCK)))
+		return -EAGAIN;
 
-	return (ssize_t)count;
+	ret = wait_for_random_bytes();
+	if (ret != 0)
+		return ret;
+	return get_random_bytes_user(iter);
 }
 
 static long random_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
 {
-	int size, ent_count;
 	int __user *p = (int __user *)arg;
-	int retval;
+	int ent_count;
 
 	switch (cmd) {
 	case RNDGETENTCNT:
-		/* inherently racy, no point locking */
-		ent_count = ENTROPY_BITS(&input_pool);
-		if (put_user(ent_count, p))
+		/* Inherently racy, no point locking. */
+		if (put_user(input_pool.init_bits, p))
 			return -EFAULT;
 		return 0;
 	case RNDADDTOENTCNT:
@@ -2117,39 +1325,48 @@
 			return -EPERM;
 		if (get_user(ent_count, p))
 			return -EFAULT;
-		return credit_entropy_bits_safe(&input_pool, ent_count);
-	case RNDADDENTROPY:
+		if (ent_count < 0)
+			return -EINVAL;
+		credit_init_bits(ent_count);
+		return 0;
+	case RNDADDENTROPY: {
+		struct iov_iter iter;
+		struct iovec iov;
+		ssize_t ret;
+		int len;
+
 		if (!capable(CAP_SYS_ADMIN))
 			return -EPERM;
 		if (get_user(ent_count, p++))
 			return -EFAULT;
 		if (ent_count < 0)
 			return -EINVAL;
-		if (get_user(size, p++))
+		if (get_user(len, p++))
 			return -EFAULT;
-		retval = write_pool(&input_pool, (const char __user *)p,
-				    size);
-		if (retval < 0)
-			return retval;
-		return credit_entropy_bits_safe(&input_pool, ent_count);
+		ret = import_single_range(WRITE, p, len, &iov, &iter);
+		if (unlikely(ret))
+			return ret;
+		ret = write_pool_user(&iter);
+		if (unlikely(ret < 0))
+			return ret;
+		/* Since we're crediting, enforce that it was all written into the pool. */
+		if (unlikely(ret != len))
+			return -EFAULT;
+		credit_init_bits(ent_count);
+		return 0;
+	}
 	case RNDZAPENTCNT:
 	case RNDCLEARPOOL:
-		/*
-		 * Clear the entropy pool counters. We no longer clear
-		 * the entropy pool, as that's silly.
-		 */
+		/* No longer has any effect. */
 		if (!capable(CAP_SYS_ADMIN))
 			return -EPERM;
-		input_pool.entropy_count = 0;
-		blocking_pool.entropy_count = 0;
 		return 0;
 	case RNDRESEEDCRNG:
 		if (!capable(CAP_SYS_ADMIN))
 			return -EPERM;
-		if (crng_init < 2)
+		if (!crng_ready())
 			return -ENODATA;
-		crng_reseed(&primary_crng, NULL);
-		crng_global_init_time = jiffies - 1;
+		crng_reseed();
 		return 0;
 	default:
 		return -EINVAL;
@@ -2162,49 +1379,56 @@
 }
 
 const struct file_operations random_fops = {
-	.read  = random_read,
-	.write = random_write,
-	.poll  = random_poll,
+	.read_iter = random_read_iter,
+	.write_iter = random_write_iter,
+	.poll = random_poll,
 	.unlocked_ioctl = random_ioctl,
+	.compat_ioctl = compat_ptr_ioctl,
 	.fasync = random_fasync,
 	.llseek = noop_llseek,
+	.splice_read = generic_file_splice_read,
+	.splice_write = iter_file_splice_write,
 };
 
 const struct file_operations urandom_fops = {
-	.read  = urandom_read,
-	.write = random_write,
+	.read_iter = urandom_read_iter,
+	.write_iter = random_write_iter,
 	.unlocked_ioctl = random_ioctl,
+	.compat_ioctl = compat_ptr_ioctl,
 	.fasync = random_fasync,
 	.llseek = noop_llseek,
+	.splice_read = generic_file_splice_read,
+	.splice_write = iter_file_splice_write,
 };
 
-SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count,
-		unsigned int, flags)
-{
-	int ret;
-
-	if (flags & ~(GRND_NONBLOCK|GRND_RANDOM))
-		return -EINVAL;
-
-	if (count > INT_MAX)
-		count = INT_MAX;
-
-	if (flags & GRND_RANDOM)
-		return _random_read(flags & GRND_NONBLOCK, buf, count);
-
-	if (!crng_ready()) {
-		if (flags & GRND_NONBLOCK)
-			return -EAGAIN;
-		ret = wait_for_random_bytes();
-		if (unlikely(ret))
-			return ret;
-	}
-	return urandom_read(NULL, buf, count, NULL);
-}
 
 /********************************************************************
  *
- * Sysctl interface
+ * Sysctl interface.
+ *
+ * These are partly unused legacy knobs with dummy values to not break
+ * userspace and partly still useful things. They are usually accessible
+ * in /proc/sys/kernel/random/ and are as follows:
+ *
+ * - boot_id - a UUID representing the current boot.
+ *
+ * - uuid - a random UUID, different each time the file is read.
+ *
+ * - poolsize - the number of bits of entropy that the input pool can
+ *   hold, tied to the POOL_BITS constant.
+ *
+ * - entropy_avail - the number of bits of entropy currently in the
+ *   input pool. Always <= poolsize.
+ *
+ * - write_wakeup_threshold - the amount of entropy in the input pool
+ *   below which write polls to /dev/random will unblock, requesting
+ *   more entropy, tied to the POOL_READY_BITS constant. It is writable
+ *   to avoid breaking old userspaces, but writing to it does not
+ *   change any behavior of the RNG.
+ *
+ * - urandom_min_reseed_secs - fixed to the value CRNG_RESEED_INTERVAL.
+ *   It is writable to avoid breaking old userspaces, but writing
+ *   to it does not change any behavior of the RNG.
  *
  ********************************************************************/
 
@@ -2212,26 +1436,28 @@
 
 #include <linux/sysctl.h>
 
-static int min_read_thresh = 8, min_write_thresh;
-static int max_read_thresh = OUTPUT_POOL_WORDS * 32;
-static int max_write_thresh = INPUT_POOL_WORDS * 32;
-static int random_min_urandom_seed = 60;
-static char sysctl_bootid[16];
+static int sysctl_random_min_urandom_seed = CRNG_RESEED_INTERVAL / HZ;
+static int sysctl_random_write_wakeup_bits = POOL_READY_BITS;
+static int sysctl_poolsize = POOL_BITS;
+static u8 sysctl_bootid[UUID_SIZE];
 
 /*
  * This function is used to return both the bootid UUID, and random
- * UUID.  The difference is in whether table->data is NULL; if it is,
+ * UUID. The difference is in whether table->data is NULL; if it is,
  * then a new UUID is generated and returned to the user.
- *
- * If the user accesses this via the proc interface, the UUID will be
- * returned as an ASCII string in the standard UUID format; if via the
- * sysctl system call, as 16 bytes of binary data.
  */
-static int proc_do_uuid(struct ctl_table *table, int write,
-			void __user *buffer, size_t *lenp, loff_t *ppos)
+static int proc_do_uuid(struct ctl_table *table, int write, void __user *buf,
+			size_t *lenp, loff_t *ppos)
 {
-	struct ctl_table fake_table;
-	unsigned char buf[64], tmp_uuid[16], *uuid;
+	u8 tmp_uuid[UUID_SIZE], *uuid;
+	char uuid_string[UUID_STRING_LEN + 1];
+	struct ctl_table fake_table = {
+		.data = uuid_string,
+		.maxlen = UUID_STRING_LEN
+	};
+
+	if (write)
+		return -EPERM;
 
 	uuid = table->data;
 	if (!uuid) {
@@ -2246,32 +1472,17 @@
 		spin_unlock(&bootid_spinlock);
 	}
 
-	sprintf(buf, "%pU", uuid);
-
-	fake_table.data = buf;
-	fake_table.maxlen = sizeof(buf);
-
-	return proc_dostring(&fake_table, write, buffer, lenp, ppos);
+	snprintf(uuid_string, sizeof(uuid_string), "%pU", uuid);
+	return proc_dostring(&fake_table, 0, buf, lenp, ppos);
 }
 
-/*
- * Return entropy available scaled to integral bits
- */
-static int proc_do_entropy(struct ctl_table *table, int write,
-			   void __user *buffer, size_t *lenp, loff_t *ppos)
+/* The same as proc_dointvec, but writes don't change anything. */
+static int proc_do_rointvec(struct ctl_table *table, int write, void __user *buf,
+			    size_t *lenp, loff_t *ppos)
 {
-	struct ctl_table fake_table;
-	int entropy_count;
-
-	entropy_count = *(int *)table->data >> ENTROPY_SHIFT;
-
-	fake_table.data = &entropy_count;
-	fake_table.maxlen = sizeof(entropy_count);
-
-	return proc_dointvec(&fake_table, write, buffer, lenp, ppos);
+	return write ? 0 : proc_dointvec(table, 0, buf, lenp, ppos);
 }
 
-static int sysctl_poolsize = INPUT_POOL_WORDS * 32;
 extern struct ctl_table random_table[];
 struct ctl_table random_table[] = {
 	{
@@ -2283,239 +1494,36 @@
 	},
 	{
 		.procname	= "entropy_avail",
+		.data		= &input_pool.init_bits,
 		.maxlen		= sizeof(int),
 		.mode		= 0444,
-		.proc_handler	= proc_do_entropy,
-		.data		= &input_pool.entropy_count,
-	},
-	{
-		.procname	= "read_wakeup_threshold",
-		.data		= &random_read_wakeup_bits,
-		.maxlen		= sizeof(int),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec_minmax,
-		.extra1		= &min_read_thresh,
-		.extra2		= &max_read_thresh,
+		.proc_handler	= proc_dointvec,
 	},
 	{
 		.procname	= "write_wakeup_threshold",
-		.data		= &random_write_wakeup_bits,
+		.data		= &sysctl_random_write_wakeup_bits,
 		.maxlen		= sizeof(int),
 		.mode		= 0644,
-		.proc_handler	= proc_dointvec_minmax,
-		.extra1		= &min_write_thresh,
-		.extra2		= &max_write_thresh,
+		.proc_handler	= proc_do_rointvec,
 	},
 	{
 		.procname	= "urandom_min_reseed_secs",
-		.data		= &random_min_urandom_seed,
+		.data		= &sysctl_random_min_urandom_seed,
 		.maxlen		= sizeof(int),
 		.mode		= 0644,
-		.proc_handler	= proc_dointvec,
+		.proc_handler	= proc_do_rointvec,
 	},
 	{
 		.procname	= "boot_id",
 		.data		= &sysctl_bootid,
-		.maxlen		= 16,
 		.mode		= 0444,
 		.proc_handler	= proc_do_uuid,
 	},
 	{
 		.procname	= "uuid",
-		.maxlen		= 16,
 		.mode		= 0444,
 		.proc_handler	= proc_do_uuid,
 	},
-#ifdef ADD_INTERRUPT_BENCH
-	{
-		.procname	= "add_interrupt_avg_cycles",
-		.data		= &avg_cycles,
-		.maxlen		= sizeof(avg_cycles),
-		.mode		= 0444,
-		.proc_handler	= proc_doulongvec_minmax,
-	},
-	{
-		.procname	= "add_interrupt_avg_deviation",
-		.data		= &avg_deviation,
-		.maxlen		= sizeof(avg_deviation),
-		.mode		= 0444,
-		.proc_handler	= proc_doulongvec_minmax,
-	},
-#endif
 	{ }
 };
-#endif 	/* CONFIG_SYSCTL */
-
-struct batched_entropy {
-	union {
-		u64 entropy_u64[CHACHA_BLOCK_SIZE / sizeof(u64)];
-		u32 entropy_u32[CHACHA_BLOCK_SIZE / sizeof(u32)];
-	};
-	unsigned int position;
-	spinlock_t batch_lock;
-};
-
-/*
- * Get a random word for internal kernel use only. The quality of the random
- * number is either as good as RDRAND or as good as /dev/urandom, with the
- * goal of being quite fast and not depleting entropy. In order to ensure
- * that the randomness provided by this function is okay, the function
- * wait_for_random_bytes() should be called and return 0 at least once
- * at any point prior.
- */
-static DEFINE_PER_CPU(struct batched_entropy, batched_entropy_u64) = {
-	.batch_lock	= __SPIN_LOCK_UNLOCKED(batched_entropy_u64.lock),
-};
-
-u64 get_random_u64(void)
-{
-	u64 ret;
-	unsigned long flags;
-	struct batched_entropy *batch;
-	static void *previous;
-
-#if BITS_PER_LONG == 64
-	if (arch_get_random_long((unsigned long *)&ret))
-		return ret;
-#else
-	if (arch_get_random_long((unsigned long *)&ret) &&
-	    arch_get_random_long((unsigned long *)&ret + 1))
-	    return ret;
-#endif
-
-	warn_unseeded_randomness(&previous);
-
-	batch = raw_cpu_ptr(&batched_entropy_u64);
-	spin_lock_irqsave(&batch->batch_lock, flags);
-	if (batch->position % ARRAY_SIZE(batch->entropy_u64) == 0) {
-		extract_crng((u8 *)batch->entropy_u64);
-		batch->position = 0;
-	}
-	ret = batch->entropy_u64[batch->position++];
-	spin_unlock_irqrestore(&batch->batch_lock, flags);
-	return ret;
-}
-EXPORT_SYMBOL(get_random_u64);
-
-static DEFINE_PER_CPU(struct batched_entropy, batched_entropy_u32) = {
-	.batch_lock	= __SPIN_LOCK_UNLOCKED(batched_entropy_u32.lock),
-};
-u32 get_random_u32(void)
-{
-	u32 ret;
-	unsigned long flags;
-	struct batched_entropy *batch;
-	static void *previous;
-
-	if (arch_get_random_int(&ret))
-		return ret;
-
-	warn_unseeded_randomness(&previous);
-
-	batch = raw_cpu_ptr(&batched_entropy_u32);
-	spin_lock_irqsave(&batch->batch_lock, flags);
-	if (batch->position % ARRAY_SIZE(batch->entropy_u32) == 0) {
-		extract_crng((u8 *)batch->entropy_u32);
-		batch->position = 0;
-	}
-	ret = batch->entropy_u32[batch->position++];
-	spin_unlock_irqrestore(&batch->batch_lock, flags);
-	return ret;
-}
-EXPORT_SYMBOL(get_random_u32);
-
-/* It's important to invalidate all potential batched entropy that might
- * be stored before the crng is initialized, which we can do lazily by
- * simply resetting the counter to zero so that it's re-extracted on the
- * next usage. */
-static void invalidate_batched_entropy(void)
-{
-	int cpu;
-	unsigned long flags;
-
-	for_each_possible_cpu (cpu) {
-		struct batched_entropy *batched_entropy;
-
-		batched_entropy = per_cpu_ptr(&batched_entropy_u32, cpu);
-		spin_lock_irqsave(&batched_entropy->batch_lock, flags);
-		batched_entropy->position = 0;
-		spin_unlock(&batched_entropy->batch_lock);
-
-		batched_entropy = per_cpu_ptr(&batched_entropy_u64, cpu);
-		spin_lock(&batched_entropy->batch_lock);
-		batched_entropy->position = 0;
-		spin_unlock_irqrestore(&batched_entropy->batch_lock, flags);
-	}
-}
-
-/**
- * randomize_page - Generate a random, page aligned address
- * @start:	The smallest acceptable address the caller will take.
- * @range:	The size of the area, starting at @start, within which the
- *		random address must fall.
- *
- * If @start + @range would overflow, @range is capped.
- *
- * NOTE: Historical use of randomize_range, which this replaces, presumed that
- * @start was already page aligned.  We now align it regardless.
- *
- * Return: A page aligned address within [start, start + range).  On error,
- * @start is returned.
- */
-unsigned long
-randomize_page(unsigned long start, unsigned long range)
-{
-	if (!PAGE_ALIGNED(start)) {
-		range -= PAGE_ALIGN(start) - start;
-		start = PAGE_ALIGN(start);
-	}
-
-	if (start > ULONG_MAX - range)
-		range = ULONG_MAX - start;
-
-	range >>= PAGE_SHIFT;
-
-	if (range == 0)
-		return start;
-
-	return start + (get_random_long() % range << PAGE_SHIFT);
-}
-
-/* Interface for in-kernel drivers of true hardware RNGs.
- * Those devices may produce endless random bits and will be throttled
- * when our pool is full.
- */
-void add_hwgenerator_randomness(const char *buffer, size_t count,
-				size_t entropy)
-{
-	struct entropy_store *poolp = &input_pool;
-
-	if (unlikely(crng_init == 0)) {
-		crng_fast_load(buffer, count);
-		return;
-	}
-
-	/* Suspend writing if we're above the trickle threshold.
-	 * We'll be woken up again once below random_write_wakeup_thresh,
-	 * or when the calling thread is about to terminate.
-	 */
-	wait_event_interruptible(random_write_wait, kthread_should_stop() ||
-			ENTROPY_BITS(&input_pool) <= random_write_wakeup_bits);
-	mix_pool_bytes(poolp, buffer, count);
-	credit_entropy_bits(poolp, entropy);
-}
-EXPORT_SYMBOL_GPL(add_hwgenerator_randomness);
-
-/* Handle random seed passed by bootloader.
- * If the seed is trustworthy, it would be regarded as hardware RNGs. Otherwise
- * it would be regarded as device data.
- * The decision is controlled by CONFIG_RANDOM_TRUST_BOOTLOADER.
- */
-void add_bootloader_randomness(const void *buf, unsigned int size)
-{
-	if (IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER))
-		add_hwgenerator_randomness(buf, size, size * 8);
-	else
-		add_device_randomness(buf, size);
-}
-EXPORT_SYMBOL_GPL(add_bootloader_randomness);
+#endif	/* CONFIG_SYSCTL */
--- linux-ein-5.4.0.orig/drivers/char/tlclk.c
+++ linux-ein-5.4.0/drivers/char/tlclk.c
@@ -777,17 +777,21 @@
 {
 	int ret;
 
+	telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
+
+	alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
+	if (!alarm_events) {
+		ret = -ENOMEM;
+		goto out1;
+	}
+
 	ret = register_chrdev(tlclk_major, "telco_clock", &tlclk_fops);
 	if (ret < 0) {
 		printk(KERN_ERR "tlclk: can't get major %d.\n", tlclk_major);
+		kfree(alarm_events);
 		return ret;
 	}
 	tlclk_major = ret;
-	alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
-	if (!alarm_events) {
-		ret = -ENOMEM;
-		goto out1;
-	}
 
 	/* Read telecom clock IRQ number (Set by BIOS) */
 	if (!request_region(TLCLK_BASE, 8, "telco_clock")) {
@@ -796,7 +800,6 @@
 		ret = -EBUSY;
 		goto out2;
 	}
-	telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
 
 	if (0x0F == telclk_interrupt ) { /* not MCPBL0010 ? */
 		printk(KERN_ERR "telclk_interrupt = 0x%x non-mcpbl0010 hw.\n",
@@ -837,8 +840,8 @@
 	release_region(TLCLK_BASE, 8);
 out2:
 	kfree(alarm_events);
-out1:
 	unregister_chrdev(tlclk_major, "telco_clock");
+out1:
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/char/tpm/eventlog/common.c
+++ linux-ein-5.4.0/drivers/char/tpm/eventlog/common.c
@@ -99,20 +99,20 @@
  *
  * If an event log is found then the securityfs files are setup to
  * export it to userspace, otherwise nothing is done.
- *
- * Returns -ENODEV if the firmware has no event log or securityfs is not
- * supported.
  */
-int tpm_bios_log_setup(struct tpm_chip *chip)
+void tpm_bios_log_setup(struct tpm_chip *chip)
 {
 	const char *name = dev_name(&chip->dev);
 	unsigned int cnt;
 	int log_version;
 	int rc = 0;
 
+	if (chip->flags & TPM_CHIP_FLAG_VIRTUAL)
+		return;
+
 	rc = tpm_read_log(chip);
 	if (rc < 0)
-		return rc;
+		return;
 	log_version = rc;
 
 	cnt = 0;
@@ -158,13 +158,12 @@
 		cnt++;
 	}
 
-	return 0;
+	return;
 
 err:
-	rc = PTR_ERR(chip->bios_dir[cnt]);
 	chip->bios_dir[cnt] = NULL;
 	tpm_bios_log_teardown(chip);
-	return rc;
+	return;
 }
 
 void tpm_bios_log_teardown(struct tpm_chip *chip)
--- linux-ein-5.4.0.orig/drivers/char/tpm/eventlog/efi.c
+++ linux-ein-5.4.0/drivers/char/tpm/eventlog/efi.c
@@ -17,6 +17,7 @@
 {
 
 	struct efi_tcg2_final_events_table *final_tbl = NULL;
+	int final_events_log_size = efi_tpm_final_log_size;
 	struct linux_efi_tpm_eventlog *log_tbl;
 	struct tpm_bios_log *log;
 	u32 log_size;
@@ -41,6 +42,11 @@
 	log_size = log_tbl->size;
 	memunmap(log_tbl);
 
+	if (!log_size) {
+		pr_warn("UEFI TPM log area empty\n");
+		return -EIO;
+	}
+
 	log_tbl = memremap(efi.tpm_log, sizeof(*log_tbl) + log_size,
 			   MEMREMAP_WB);
 	if (!log_tbl) {
@@ -61,12 +67,12 @@
 	ret = tpm_log_version;
 
 	if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR ||
-	    efi_tpm_final_log_size == 0 ||
+	    final_events_log_size == 0 ||
 	    tpm_log_version != EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
 		goto out;
 
 	final_tbl = memremap(efi.tpm_final_log,
-			     sizeof(*final_tbl) + efi_tpm_final_log_size,
+			     sizeof(*final_tbl) + final_events_log_size,
 			     MEMREMAP_WB);
 	if (!final_tbl) {
 		pr_err("Could not map UEFI TPM final log\n");
@@ -75,10 +81,18 @@
 		goto out;
 	}
 
-	efi_tpm_final_log_size -= log_tbl->final_events_preboot_size;
+	/*
+	 * The 'final events log' size excludes the 'final events preboot log'
+	 * at its beginning.
+	 */
+	final_events_log_size -= log_tbl->final_events_preboot_size;
 
+	/*
+	 * Allocate memory for the 'combined log' where we will append the
+	 * 'final events log' to.
+	 */
 	tmp = krealloc(log->bios_event_log,
-		       log_size + efi_tpm_final_log_size,
+		       log_size + final_events_log_size,
 		       GFP_KERNEL);
 	if (!tmp) {
 		kfree(log->bios_event_log);
@@ -89,15 +103,19 @@
 	log->bios_event_log = tmp;
 
 	/*
-	 * Copy any of the final events log that didn't also end up in the
-	 * main log. Events can be logged in both if events are generated
+	 * Append any of the 'final events log' that didn't also end up in the
+	 * 'main log'. Events can be logged in both if events are generated
 	 * between GetEventLog() and ExitBootServices().
 	 */
 	memcpy((void *)log->bios_event_log + log_size,
 	       final_tbl->events + log_tbl->final_events_preboot_size,
-	       efi_tpm_final_log_size);
+	       final_events_log_size);
+	/*
+	 * The size of the 'combined log' is the size of the 'main log' plus
+	 * the size of the 'final events log'.
+	 */
 	log->bios_event_log_end = log->bios_event_log +
-		log_size + efi_tpm_final_log_size;
+		log_size + final_events_log_size;
 
 out:
 	memunmap(final_tbl);
--- linux-ein-5.4.0.orig/drivers/char/tpm/eventlog/tpm1.c
+++ linux-ein-5.4.0/drivers/char/tpm/eventlog/tpm1.c
@@ -115,6 +115,7 @@
 	u32 converted_event_size;
 	u32 converted_event_type;
 
+	(*pos)++;
 	converted_event_size = do_endian_conversion(event->event_size);
 
 	v += sizeof(struct tcpa_event) + converted_event_size;
@@ -132,7 +133,6 @@
 	    ((v + sizeof(struct tcpa_event) + converted_event_size) > limit))
 		return NULL;
 
-	(*pos)++;
 	return v;
 }
 
--- linux-ein-5.4.0.orig/drivers/char/tpm/eventlog/tpm2.c
+++ linux-ein-5.4.0/drivers/char/tpm/eventlog/tpm2.c
@@ -94,6 +94,7 @@
 	size_t event_size;
 	void *marker;
 
+	(*pos)++;
 	event_header = log->bios_event_log;
 
 	if (v == SEQ_START_TOKEN) {
@@ -118,7 +119,6 @@
 	if (((v + event_size) >= limit) || (event_size == 0))
 		return NULL;
 
-	(*pos)++;
 	return v;
 }
 
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm-chip.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm-chip.c
@@ -274,14 +274,6 @@
 	kfree(chip);
 }
 
-static void tpm_devs_release(struct device *dev)
-{
-	struct tpm_chip *chip = container_of(dev, struct tpm_chip, devs);
-
-	/* release the master device reference */
-	put_device(&chip->dev);
-}
-
 /**
  * tpm_class_shutdown() - prepare the TPM device for loss of power.
  * @dev: device to which the chip is associated.
@@ -344,7 +336,6 @@
 	chip->dev_num = rc;
 
 	device_initialize(&chip->dev);
-	device_initialize(&chip->devs);
 
 	chip->dev.class = tpm_class;
 	chip->dev.class->shutdown_pre = tpm_class_shutdown;
@@ -352,47 +343,23 @@
 	chip->dev.parent = pdev;
 	chip->dev.groups = chip->groups;
 
-	chip->devs.parent = pdev;
-	chip->devs.class = tpmrm_class;
-	chip->devs.release = tpm_devs_release;
-	/* get extra reference on main device to hold on
-	 * behalf of devs.  This holds the chip structure
-	 * while cdevs is in use.  The corresponding put
-	 * is in the tpm_devs_release (TPM2 only)
-	 */
-	if (chip->flags & TPM_CHIP_FLAG_TPM2)
-		get_device(&chip->dev);
-
 	if (chip->dev_num == 0)
 		chip->dev.devt = MKDEV(MISC_MAJOR, TPM_MINOR);
 	else
 		chip->dev.devt = MKDEV(MAJOR(tpm_devt), chip->dev_num);
 
-	chip->devs.devt =
-		MKDEV(MAJOR(tpm_devt), chip->dev_num + TPM_NUM_DEVICES);
-
 	rc = dev_set_name(&chip->dev, "tpm%d", chip->dev_num);
 	if (rc)
 		goto out;
-	rc = dev_set_name(&chip->devs, "tpmrm%d", chip->dev_num);
-	if (rc)
-		goto out;
 
 	if (!pdev)
 		chip->flags |= TPM_CHIP_FLAG_VIRTUAL;
 
 	cdev_init(&chip->cdev, &tpm_fops);
-	cdev_init(&chip->cdevs, &tpmrm_fops);
 	chip->cdev.owner = THIS_MODULE;
-	chip->cdevs.owner = THIS_MODULE;
 
-	chip->work_space.context_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
-	if (!chip->work_space.context_buf) {
-		rc = -ENOMEM;
-		goto out;
-	}
-	chip->work_space.session_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
-	if (!chip->work_space.session_buf) {
+	rc = tpm2_init_space(&chip->work_space, TPM2_SPACE_BUFFER_SIZE);
+	if (rc) {
 		rc = -ENOMEM;
 		goto out;
 	}
@@ -401,7 +368,6 @@
 	return chip;
 
 out:
-	put_device(&chip->devs);
 	put_device(&chip->dev);
 	return ERR_PTR(rc);
 }
@@ -450,14 +416,9 @@
 	}
 
 	if (chip->flags & TPM_CHIP_FLAG_TPM2) {
-		rc = cdev_device_add(&chip->cdevs, &chip->devs);
-		if (rc) {
-			dev_err(&chip->devs,
-				"unable to cdev_device_add() %s, major %d, minor %d, err=%d\n",
-				dev_name(&chip->devs), MAJOR(chip->devs.devt),
-				MINOR(chip->devs.devt), rc);
-			return rc;
-		}
+		rc = tpm_devs_add(chip);
+		if (rc)
+			goto err_del_cdev;
 	}
 
 	/* Make the chip available. */
@@ -465,6 +426,10 @@
 	idr_replace(&dev_nums_idr, chip, chip->dev_num);
 	mutex_unlock(&idr_lock);
 
+	return 0;
+
+err_del_cdev:
+	cdev_device_del(&chip->cdev, &chip->dev);
 	return rc;
 }
 
@@ -596,9 +561,7 @@
 
 	tpm_sysfs_add_device(chip);
 
-	rc = tpm_bios_log_setup(chip);
-	if (rc != 0 && rc != -ENODEV)
-		return rc;
+	tpm_bios_log_setup(chip);
 
 	tpm_add_ppi(chip);
 
@@ -648,7 +611,7 @@
 		hwrng_unregister(&chip->hwrng);
 	tpm_bios_log_teardown(chip);
 	if (chip->flags & TPM_CHIP_FLAG_TPM2)
-		cdev_device_del(&chip->cdevs, &chip->devs);
+		tpm_devs_remove(chip);
 	tpm_del_char_device(chip);
 }
 EXPORT_SYMBOL_GPL(tpm_chip_unregister);
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm-dev-common.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm-dev-common.c
@@ -61,13 +61,26 @@
 
 	mutex_lock(&priv->buffer_mutex);
 	priv->command_enqueued = false;
+	ret = tpm_try_get_ops(priv->chip);
+	if (ret) {
+		priv->response_length = ret;
+		goto out;
+	}
+
 	ret = tpm_dev_transmit(priv->chip, priv->space, priv->data_buffer,
 			       sizeof(priv->data_buffer));
 	tpm_put_ops(priv->chip);
-	if (ret > 0) {
+
+	/*
+	 * If ret is > 0 then tpm_dev_transmit returned the size of the
+	 * response. If ret is < 0 then tpm_dev_transmit failed and
+	 * returned an error code.
+	 */
+	if (ret != 0) {
 		priv->response_length = ret;
 		mod_timer(&priv->user_read_timer, jiffies + (120 * HZ));
 	}
+out:
 	mutex_unlock(&priv->buffer_mutex);
 	wake_up_interruptible(&priv->async_wait);
 }
@@ -123,7 +136,7 @@
 		priv->response_read = true;
 
 		ret_size = min_t(ssize_t, size, priv->response_length);
-		if (!ret_size) {
+		if (ret_size <= 0) {
 			priv->response_length = 0;
 			goto out;
 		}
@@ -182,15 +195,6 @@
 		goto out;
 	}
 
-	/* atomic tpm command send and result receive. We only hold the ops
-	 * lock during this period so that the tpm can be unregistered even if
-	 * the char dev is held open.
-	 */
-	if (tpm_try_get_ops(priv->chip)) {
-		ret = -EPIPE;
-		goto out;
-	}
-
 	priv->response_length = 0;
 	priv->response_read = false;
 	*off = 0;
@@ -208,6 +212,15 @@
 		return size;
 	}
 
+	/* atomic tpm command send and result receive. We only hold the ops
+	 * lock during this period so that the tpm can be unregistered even if
+	 * the char dev is held open.
+	 */
+	if (tpm_try_get_ops(priv->chip)) {
+		ret = -EPIPE;
+		goto out;
+	}
+
 	ret = tpm_dev_transmit(priv->chip, priv->space, priv->data_buffer,
 			       sizeof(priv->data_buffer));
 	tpm_put_ops(priv->chip);
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm-dev.h
+++ linux-ein-5.4.0/drivers/char/tpm/tpm-dev.h
@@ -14,7 +14,7 @@
 	struct work_struct timeout_work;
 	struct work_struct async_work;
 	wait_queue_head_t async_wait;
-	size_t response_length;
+	ssize_t response_length;
 	bool response_read;
 	bool command_enqueued;
 
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm-interface.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm-interface.c
@@ -322,7 +322,7 @@
 
 	for (i = 0; i < chip->nr_allocated_banks; i++) {
 		if (digests[i].alg_id != chip->allocated_banks[i].alg_id) {
-			rc = EINVAL;
+			rc = -EINVAL;
 			goto out;
 		}
 	}
@@ -396,13 +396,14 @@
 	if (chip->flags & TPM_CHIP_FLAG_ALWAYS_POWERED)
 		return 0;
 
-	if (!tpm_chip_start(chip)) {
+	rc = tpm_try_get_ops(chip);
+	if (!rc) {
 		if (chip->flags & TPM_CHIP_FLAG_TPM2)
 			tpm2_shutdown(chip, TPM2_SU_STATE);
 		else
 			rc = tpm1_pm_suspend(chip, tpm_suspend_pcr);
 
-		tpm_chip_stop(chip);
+		tpm_put_ops(chip);
 	}
 
 	return rc;
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm.h
+++ linux-ein-5.4.0/drivers/char/tpm/tpm.h
@@ -177,6 +177,9 @@
 
 #define TPM_TAG_RQU_COMMAND 193
 
+/* TPM2 specific constants. */
+#define TPM2_SPACE_BUFFER_SIZE		16384 /* 16 kB */
+
 struct	stclear_flags_t {
 	__be16	tag;
 	u8	deactivated;
@@ -456,15 +459,17 @@
 unsigned long tpm2_calc_ordinal_duration(struct tpm_chip *chip, u32 ordinal);
 int tpm2_probe(struct tpm_chip *chip);
 int tpm2_find_cc(struct tpm_chip *chip, u32 cc);
-int tpm2_init_space(struct tpm_space *space);
+int tpm2_init_space(struct tpm_space *space, unsigned int buf_size);
 void tpm2_del_space(struct tpm_chip *chip, struct tpm_space *space);
 void tpm2_flush_space(struct tpm_chip *chip);
 int tpm2_prepare_space(struct tpm_chip *chip, struct tpm_space *space, u8 *cmd,
 		       size_t cmdsiz);
 int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space, void *buf,
 		      size_t *bufsiz);
+int tpm_devs_add(struct tpm_chip *chip);
+void tpm_devs_remove(struct tpm_chip *chip);
 
-int tpm_bios_log_setup(struct tpm_chip *chip);
+void tpm_bios_log_setup(struct tpm_chip *chip);
 void tpm_bios_log_teardown(struct tpm_chip *chip);
 int tpm_dev_common_init(void);
 void tpm_dev_common_exit(void);
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm2-cmd.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm2-cmd.c
@@ -706,7 +706,16 @@
 	if (!rc) {
 		out = (struct tpm2_get_cap_out *)
 			&buf.data[TPM_HEADER_SIZE];
-		*value = be32_to_cpu(out->value);
+		/*
+		 * To prevent failing boot up of some systems, Infineon TPM2.0
+		 * returns SUCCESS on TPM2_Startup in field upgrade mode. Also
+		 * the TPM2_Getcapability command returns a zero length list
+		 * in field upgrade mode.
+		 */
+		if (be32_to_cpu(out->property_cnt) > 0)
+			*value = be32_to_cpu(out->value);
+		else
+			rc = -ENODATA;
 	}
 	tpm_buf_destroy(&buf);
 	return rc;
@@ -831,6 +840,8 @@
 		return 0;
 	}
 
+	bank->crypto_id = HASH_ALGO__LAST;
+
 	return tpm2_pcr_read(chip, 0, &digest, &bank->digest_size);
 }
 
@@ -939,6 +950,10 @@
 
 	chip->cc_attrs_tbl = devm_kcalloc(&chip->dev, 4, nr_commands,
 					  GFP_KERNEL);
+	if (!chip->cc_attrs_tbl) {
+		rc = -ENOMEM;
+		goto out;
+	}
 
 	rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_GET_CAPABILITY);
 	if (rc)
@@ -956,6 +971,7 @@
 
 	if (nr_commands !=
 	    be32_to_cpup((__be32 *)&buf.data[TPM_HEADER_SIZE + 5])) {
+		rc = -EFAULT;
 		tpm_buf_destroy(&buf);
 		goto out;
 	}
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm2-space.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm2-space.c
@@ -38,29 +38,32 @@
 	}
 }
 
-int tpm2_init_space(struct tpm_space *space)
+int tpm2_init_space(struct tpm_space *space, unsigned int buf_size)
 {
-	space->context_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
+	space->context_buf = kzalloc(buf_size, GFP_KERNEL);
 	if (!space->context_buf)
 		return -ENOMEM;
 
-	space->session_buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
+	space->session_buf = kzalloc(buf_size, GFP_KERNEL);
 	if (space->session_buf == NULL) {
 		kfree(space->context_buf);
+		/* Prevent caller getting a dangling pointer. */
+		space->context_buf = NULL;
 		return -ENOMEM;
 	}
 
+	space->buf_size = buf_size;
 	return 0;
 }
 
 void tpm2_del_space(struct tpm_chip *chip, struct tpm_space *space)
 {
-	mutex_lock(&chip->tpm_mutex);
-	if (!tpm_chip_start(chip)) {
+
+	if (tpm_try_get_ops(chip) == 0) {
 		tpm2_flush_sessions(chip, space);
-		tpm_chip_stop(chip);
+		tpm_put_ops(chip);
 	}
-	mutex_unlock(&chip->tpm_mutex);
+
 	kfree(space->context_buf);
 	kfree(space->session_buf);
 }
@@ -311,8 +314,10 @@
 	       sizeof(space->context_tbl));
 	memcpy(&chip->work_space.session_tbl, &space->session_tbl,
 	       sizeof(space->session_tbl));
-	memcpy(chip->work_space.context_buf, space->context_buf, PAGE_SIZE);
-	memcpy(chip->work_space.session_buf, space->session_buf, PAGE_SIZE);
+	memcpy(chip->work_space.context_buf, space->context_buf,
+	       space->buf_size);
+	memcpy(chip->work_space.session_buf, space->session_buf,
+	       space->buf_size);
 
 	rc = tpm2_load_space(chip);
 	if (rc) {
@@ -450,6 +455,9 @@
 	if (be32_to_cpu(data->capability) != TPM2_CAP_HANDLES)
 		return 0;
 
+	if (be32_to_cpu(data->count) > (UINT_MAX - TPM_HEADER_SIZE - 9) / 4)
+		return -EFAULT;
+
 	if (len != TPM_HEADER_SIZE + 9 + 4 * be32_to_cpu(data->count))
 		return -EFAULT;
 
@@ -492,7 +500,7 @@
 			continue;
 
 		rc = tpm2_save_context(chip, space->context_tbl[i],
-				       space->context_buf, PAGE_SIZE,
+				       space->context_buf, space->buf_size,
 				       &offset);
 		if (rc == -ENOENT) {
 			space->context_tbl[i] = 0;
@@ -509,9 +517,8 @@
 			continue;
 
 		rc = tpm2_save_context(chip, space->session_tbl[i],
-				       space->session_buf, PAGE_SIZE,
+				       space->session_buf, space->buf_size,
 				       &offset);
-
 		if (rc == -ENOENT) {
 			/* handle error saving session, just forget it */
 			space->session_tbl[i] = 0;
@@ -557,11 +564,78 @@
 	       sizeof(space->context_tbl));
 	memcpy(&space->session_tbl, &chip->work_space.session_tbl,
 	       sizeof(space->session_tbl));
-	memcpy(space->context_buf, chip->work_space.context_buf, PAGE_SIZE);
-	memcpy(space->session_buf, chip->work_space.session_buf, PAGE_SIZE);
+	memcpy(space->context_buf, chip->work_space.context_buf,
+	       space->buf_size);
+	memcpy(space->session_buf, chip->work_space.session_buf,
+	       space->buf_size);
 
 	return 0;
 out:
 	dev_err(&chip->dev, "%s: error %d\n", __func__, rc);
 	return rc;
 }
+
+/*
+ * Put the reference to the main device.
+ */
+static void tpm_devs_release(struct device *dev)
+{
+	struct tpm_chip *chip = container_of(dev, struct tpm_chip, devs);
+
+	/* release the master device reference */
+	put_device(&chip->dev);
+}
+
+/*
+ * Remove the device file for exposed TPM spaces and release the device
+ * reference. This may also release the reference to the master device.
+ */
+void tpm_devs_remove(struct tpm_chip *chip)
+{
+	cdev_device_del(&chip->cdevs, &chip->devs);
+	put_device(&chip->devs);
+}
+
+/*
+ * Add a device file to expose TPM spaces. Also take a reference to the
+ * main device.
+ */
+int tpm_devs_add(struct tpm_chip *chip)
+{
+	int rc;
+
+	device_initialize(&chip->devs);
+	chip->devs.parent = chip->dev.parent;
+	chip->devs.class = tpmrm_class;
+
+	/*
+	 * Get extra reference on main device to hold on behalf of devs.
+	 * This holds the chip structure while cdevs is in use. The
+	 * corresponding put is in the tpm_devs_release.
+	 */
+	get_device(&chip->dev);
+	chip->devs.release = tpm_devs_release;
+	chip->devs.devt = MKDEV(MAJOR(tpm_devt), chip->dev_num + TPM_NUM_DEVICES);
+	cdev_init(&chip->cdevs, &tpmrm_fops);
+	chip->cdevs.owner = THIS_MODULE;
+
+	rc = dev_set_name(&chip->devs, "tpmrm%d", chip->dev_num);
+	if (rc)
+		goto err_put_devs;
+
+	rc = cdev_device_add(&chip->cdevs, &chip->devs);
+	if (rc) {
+		dev_err(&chip->devs,
+			"unable to cdev_device_add() %s, major %d, minor %d, err=%d\n",
+			dev_name(&chip->devs), MAJOR(chip->devs.devt),
+			MINOR(chip->devs.devt), rc);
+		goto err_put_devs;
+	}
+
+	return 0;
+
+err_put_devs:
+	put_device(&chip->devs);
+
+	return rc;
+}
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_crb.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_crb.c
@@ -22,6 +22,7 @@
 #include "tpm.h"
 
 #define ACPI_SIG_TPM2 "TPM2"
+#define TPM_CRB_MAX_RESOURCES 3
 
 static const guid_t crb_acpi_start_guid =
 	GUID_INIT(0x6BBF6CAB, 0x5463, 0x4714,
@@ -91,7 +92,6 @@
 struct crb_priv {
 	u32 sm;
 	const char *hid;
-	void __iomem *iobase;
 	struct crb_regs_head __iomem *regs_h;
 	struct crb_regs_tail __iomem *regs_t;
 	u8 __iomem *cmd;
@@ -252,7 +252,7 @@
 	iowrite32(CRB_LOC_CTRL_RELINQUISH, &priv->regs_h->loc_ctrl);
 	if (!crb_wait_for_reg_32(&priv->regs_h->loc_state, mask, value,
 				 TPM2_TIMEOUT_C)) {
-		dev_warn(dev, "TPM_LOC_STATE_x.requestAccess timed out\n");
+		dev_warn(dev, "TPM_LOC_STATE_x.Relinquish timed out\n");
 		return -ETIME;
 	}
 
@@ -434,21 +434,27 @@
 
 static int crb_check_resource(struct acpi_resource *ares, void *data)
 {
-	struct resource *io_res = data;
+	struct resource *iores_array = data;
 	struct resource_win win;
 	struct resource *res = &(win.res);
+	int i;
 
 	if (acpi_dev_resource_memory(ares, res) ||
 	    acpi_dev_resource_address_space(ares, &win)) {
-		*io_res = *res;
-		io_res->name = NULL;
+		for (i = 0; i < TPM_CRB_MAX_RESOURCES + 1; ++i) {
+			if (resource_type(iores_array + i) != IORESOURCE_MEM) {
+				iores_array[i] = *res;
+				iores_array[i].name = NULL;
+				break;
+			}
+		}
 	}
 
 	return 1;
 }
 
-static void __iomem *crb_map_res(struct device *dev, struct crb_priv *priv,
-				 struct resource *io_res, u64 start, u32 size)
+static void __iomem *crb_map_res(struct device *dev, struct resource *iores,
+				 void __iomem **iobase_ptr, u64 start, u32 size)
 {
 	struct resource new_res = {
 		.start	= start,
@@ -460,10 +466,16 @@
 	if (start != new_res.start)
 		return (void __iomem *) ERR_PTR(-EINVAL);
 
-	if (!resource_contains(io_res, &new_res))
+	if (!iores)
 		return devm_ioremap_resource(dev, &new_res);
 
-	return priv->iobase + (new_res.start - io_res->start);
+	if (!*iobase_ptr) {
+		*iobase_ptr = devm_ioremap_resource(dev, iores);
+		if (IS_ERR(*iobase_ptr))
+			return *iobase_ptr;
+	}
+
+	return *iobase_ptr + (new_res.start - iores->start);
 }
 
 /*
@@ -490,9 +502,13 @@
 static int crb_map_io(struct acpi_device *device, struct crb_priv *priv,
 		      struct acpi_table_tpm2 *buf)
 {
-	struct list_head resources;
-	struct resource io_res;
+	struct list_head acpi_resource_list;
+	struct resource iores_array[TPM_CRB_MAX_RESOURCES + 1] = { {0} };
+	void __iomem *iobase_array[TPM_CRB_MAX_RESOURCES] = {NULL};
 	struct device *dev = &device->dev;
+	struct resource *iores;
+	void __iomem **iobase_ptr;
+	int i;
 	u32 pa_high, pa_low;
 	u64 cmd_pa;
 	u32 cmd_size;
@@ -501,21 +517,41 @@
 	u32 rsp_size;
 	int ret;
 
-	INIT_LIST_HEAD(&resources);
-	ret = acpi_dev_get_resources(device, &resources, crb_check_resource,
-				     &io_res);
+	INIT_LIST_HEAD(&acpi_resource_list);
+	ret = acpi_dev_get_resources(device, &acpi_resource_list,
+				     crb_check_resource, iores_array);
 	if (ret < 0)
 		return ret;
-	acpi_dev_free_resource_list(&resources);
+	acpi_dev_free_resource_list(&acpi_resource_list);
 
-	if (resource_type(&io_res) != IORESOURCE_MEM) {
+	if (resource_type(iores_array) != IORESOURCE_MEM) {
 		dev_err(dev, FW_BUG "TPM2 ACPI table does not define a memory resource\n");
 		return -EINVAL;
+	} else if (resource_type(iores_array + TPM_CRB_MAX_RESOURCES) ==
+		IORESOURCE_MEM) {
+		dev_warn(dev, "TPM2 ACPI table defines too many memory resources\n");
+		memset(iores_array + TPM_CRB_MAX_RESOURCES,
+		       0, sizeof(*iores_array));
+		iores_array[TPM_CRB_MAX_RESOURCES].flags = 0;
+	}
+
+	iores = NULL;
+	iobase_ptr = NULL;
+	for (i = 0; resource_type(iores_array + i) == IORESOURCE_MEM; ++i) {
+		if (buf->control_address >= iores_array[i].start &&
+		    buf->control_address + sizeof(struct crb_regs_tail) - 1 <=
+		    iores_array[i].end) {
+			iores = iores_array + i;
+			iobase_ptr = iobase_array + i;
+			break;
+		}
 	}
 
-	priv->iobase = devm_ioremap_resource(dev, &io_res);
-	if (IS_ERR(priv->iobase))
-		return PTR_ERR(priv->iobase);
+	priv->regs_t = crb_map_res(dev, iores, iobase_ptr, buf->control_address,
+				   sizeof(struct crb_regs_tail));
+
+	if (IS_ERR(priv->regs_t))
+		return PTR_ERR(priv->regs_t);
 
 	/* The ACPI IO region starts at the head area and continues to include
 	 * the control area, as one nice sane region except for some older
@@ -523,9 +559,10 @@
 	 */
 	if ((priv->sm == ACPI_TPM2_COMMAND_BUFFER) ||
 	    (priv->sm == ACPI_TPM2_MEMORY_MAPPED)) {
-		if (buf->control_address == io_res.start +
+		if (iores &&
+		    buf->control_address == iores->start +
 		    sizeof(*priv->regs_h))
-			priv->regs_h = priv->iobase;
+			priv->regs_h = *iobase_ptr;
 		else
 			dev_warn(dev, FW_BUG "Bad ACPI memory layout");
 	}
@@ -534,13 +571,6 @@
 	if (ret)
 		return ret;
 
-	priv->regs_t = crb_map_res(dev, priv, &io_res, buf->control_address,
-				   sizeof(struct crb_regs_tail));
-	if (IS_ERR(priv->regs_t)) {
-		ret = PTR_ERR(priv->regs_t);
-		goto out_relinquish_locality;
-	}
-
 	/*
 	 * PTT HW bug w/a: wake up the device to access
 	 * possibly not retained registers.
@@ -552,13 +582,26 @@
 	pa_high = ioread32(&priv->regs_t->ctrl_cmd_pa_high);
 	pa_low  = ioread32(&priv->regs_t->ctrl_cmd_pa_low);
 	cmd_pa = ((u64)pa_high << 32) | pa_low;
-	cmd_size = crb_fixup_cmd_size(dev, &io_res, cmd_pa,
-				      ioread32(&priv->regs_t->ctrl_cmd_size));
+	cmd_size = ioread32(&priv->regs_t->ctrl_cmd_size);
+
+	iores = NULL;
+	iobase_ptr = NULL;
+	for (i = 0; iores_array[i].end; ++i) {
+		if (cmd_pa >= iores_array[i].start &&
+		    cmd_pa <= iores_array[i].end) {
+			iores = iores_array + i;
+			iobase_ptr = iobase_array + i;
+			break;
+		}
+	}
+
+	if (iores)
+		cmd_size = crb_fixup_cmd_size(dev, iores, cmd_pa, cmd_size);
 
 	dev_dbg(dev, "cmd_hi = %X cmd_low = %X cmd_size %X\n",
 		pa_high, pa_low, cmd_size);
 
-	priv->cmd = crb_map_res(dev, priv, &io_res, cmd_pa, cmd_size);
+	priv->cmd = crb_map_res(dev, iores, iobase_ptr,	cmd_pa, cmd_size);
 	if (IS_ERR(priv->cmd)) {
 		ret = PTR_ERR(priv->cmd);
 		goto out;
@@ -566,11 +609,25 @@
 
 	memcpy_fromio(&__rsp_pa, &priv->regs_t->ctrl_rsp_pa, 8);
 	rsp_pa = le64_to_cpu(__rsp_pa);
-	rsp_size = crb_fixup_cmd_size(dev, &io_res, rsp_pa,
-				      ioread32(&priv->regs_t->ctrl_rsp_size));
+	rsp_size = ioread32(&priv->regs_t->ctrl_rsp_size);
+
+	iores = NULL;
+	iobase_ptr = NULL;
+	for (i = 0; resource_type(iores_array + i) == IORESOURCE_MEM; ++i) {
+		if (rsp_pa >= iores_array[i].start &&
+		    rsp_pa <= iores_array[i].end) {
+			iores = iores_array + i;
+			iobase_ptr = iobase_array + i;
+			break;
+		}
+	}
+
+	if (iores)
+		rsp_size = crb_fixup_cmd_size(dev, iores, rsp_pa, rsp_size);
 
 	if (cmd_pa != rsp_pa) {
-		priv->rsp = crb_map_res(dev, priv, &io_res, rsp_pa, rsp_size);
+		priv->rsp = crb_map_res(dev, iores, iobase_ptr,
+					rsp_pa, rsp_size);
 		ret = PTR_ERR_OR_ZERO(priv->rsp);
 		goto out;
 	}
@@ -619,12 +676,16 @@
 
 	/* Should the FIFO driver handle this? */
 	sm = buf->start_method;
-	if (sm == ACPI_TPM2_MEMORY_MAPPED)
-		return -ENODEV;
+	if (sm == ACPI_TPM2_MEMORY_MAPPED) {
+		rc = -ENODEV;
+		goto out;
+	}
 
 	priv = devm_kzalloc(dev, sizeof(struct crb_priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
+	if (!priv) {
+		rc = -ENOMEM;
+		goto out;
+	}
 
 	if (sm == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC) {
 		if (buf->header.length < (sizeof(*buf) + sizeof(*crb_smc))) {
@@ -632,7 +693,8 @@
 				FW_BUG "TPM2 ACPI table has wrong size %u for start method type %d\n",
 				buf->header.length,
 				ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC);
-			return -EINVAL;
+			rc = -EINVAL;
+			goto out;
 		}
 		crb_smc = ACPI_ADD_PTR(struct tpm2_crb_smc, buf, sizeof(*buf));
 		priv->smc_func_id = crb_smc->smc_func_id;
@@ -643,17 +705,23 @@
 
 	rc = crb_map_io(device, priv, buf);
 	if (rc)
-		return rc;
+		goto out;
 
 	chip = tpmm_chip_alloc(dev, &tpm_crb);
-	if (IS_ERR(chip))
-		return PTR_ERR(chip);
+	if (IS_ERR(chip)) {
+		rc = PTR_ERR(chip);
+		goto out;
+	}
 
 	dev_set_drvdata(&chip->dev, priv);
 	chip->acpi_dev_handle = device->handle;
 	chip->flags = TPM_CHIP_FLAG_TPM2;
 
-	return tpm_chip_register(chip);
+	rc = tpm_chip_register(chip);
+
+out:
+	acpi_put_table((struct acpi_table_header *)buf);
+	return rc;
 }
 
 static int crb_acpi_remove(struct acpi_device *device)
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_ftpm_tee.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_ftpm_tee.c
@@ -32,7 +32,7 @@
 		  0x82, 0xCB, 0x34, 0x3F, 0xB7, 0xF3, 0x78, 0x96);
 
 /**
- * ftpm_tee_tpm_op_recv - retrieve fTPM response.
+ * ftpm_tee_tpm_op_recv() - retrieve fTPM response.
  * @chip:	the tpm_chip description as specified in driver/char/tpm/tpm.h.
  * @buf:	the buffer to store data.
  * @count:	the number of bytes to read.
@@ -61,7 +61,7 @@
 }
 
 /**
- * ftpm_tee_tpm_op_send - send TPM commands through the TEE shared memory.
+ * ftpm_tee_tpm_op_send() - send TPM commands through the TEE shared memory.
  * @chip:	the tpm_chip description as specified in driver/char/tpm/tpm.h
  * @buf:	the buffer to send.
  * @len:	the number of bytes to send.
@@ -208,17 +208,16 @@
 }
 
 /**
- * ftpm_tee_probe - initialize the fTPM
+ * ftpm_tee_probe() - initialize the fTPM
  * @pdev: the platform_device description.
  *
  * Return:
  *	On success, 0. On failure, -errno.
  */
-static int ftpm_tee_probe(struct platform_device *pdev)
+static int ftpm_tee_probe(struct device *dev)
 {
 	int rc;
 	struct tpm_chip *chip;
-	struct device *dev = &pdev->dev;
 	struct ftpm_tee_private *pvt_data = NULL;
 	struct tee_ioctl_open_session_arg sess_arg;
 
@@ -255,11 +254,11 @@
 	pvt_data->session = sess_arg.session;
 
 	/* Allocate dynamic shared memory with fTPM TA */
-	pvt_data->shm = tee_shm_alloc(pvt_data->ctx,
-				      MAX_COMMAND_SIZE + MAX_RESPONSE_SIZE,
-				      TEE_SHM_MAPPED | TEE_SHM_DMA_BUF);
+	pvt_data->shm = tee_shm_alloc_kernel_buf(pvt_data->ctx,
+						 MAX_COMMAND_SIZE +
+						 MAX_RESPONSE_SIZE);
 	if (IS_ERR(pvt_data->shm)) {
-		dev_err(dev, "%s: tee_shm_alloc failed\n", __func__);
+		dev_err(dev, "%s: tee_shm_alloc_kernel_buf failed\n", __func__);
 		rc = -ENOMEM;
 		goto out_shm_alloc;
 	}
@@ -297,16 +296,23 @@
 	return rc;
 }
 
+static int ftpm_plat_tee_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+
+	return ftpm_tee_probe(dev);
+}
+
 /**
- * ftpm_tee_remove - remove the TPM device
+ * ftpm_tee_remove() - remove the TPM device
  * @pdev: the platform_device description.
  *
  * Return:
  *	0 always.
  */
-static int ftpm_tee_remove(struct platform_device *pdev)
+static int ftpm_tee_remove(struct device *dev)
 {
-	struct ftpm_tee_private *pvt_data = dev_get_drvdata(&pdev->dev);
+	struct ftpm_tee_private *pvt_data = dev_get_drvdata(dev);
 
 	/* Release the chip */
 	tpm_chip_unregister(pvt_data->chip);
@@ -328,22 +334,80 @@
 	return 0;
 }
 
+static int ftpm_plat_tee_remove(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+
+	return ftpm_tee_remove(dev);
+}
+
+/**
+ * ftpm_tee_shutdown() - shutdown the TPM device
+ * @pdev: the platform_device description.
+ */
+static void ftpm_plat_tee_shutdown(struct platform_device *pdev)
+{
+	struct ftpm_tee_private *pvt_data = dev_get_drvdata(&pdev->dev);
+
+	tee_shm_free(pvt_data->shm);
+	tee_client_close_session(pvt_data->ctx, pvt_data->session);
+	tee_client_close_context(pvt_data->ctx);
+}
+
 static const struct of_device_id of_ftpm_tee_ids[] = {
 	{ .compatible = "microsoft,ftpm" },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, of_ftpm_tee_ids);
 
-static struct platform_driver ftpm_tee_driver = {
+static struct platform_driver ftpm_tee_plat_driver = {
 	.driver = {
 		.name = "ftpm-tee",
 		.of_match_table = of_match_ptr(of_ftpm_tee_ids),
 	},
-	.probe = ftpm_tee_probe,
-	.remove = ftpm_tee_remove,
+	.shutdown = ftpm_plat_tee_shutdown,
+	.probe = ftpm_plat_tee_probe,
+	.remove = ftpm_plat_tee_remove,
+};
+
+/* UUID of the fTPM TA */
+static const struct tee_client_device_id optee_ftpm_id_table[] = {
+	{UUID_INIT(0xbc50d971, 0xd4c9, 0x42c4,
+		   0x82, 0xcb, 0x34, 0x3f, 0xb7, 0xf3, 0x78, 0x96)},
+	{}
+};
+
+MODULE_DEVICE_TABLE(tee, optee_ftpm_id_table);
+
+static struct tee_client_driver ftpm_tee_driver = {
+	.id_table	= optee_ftpm_id_table,
+	.driver		= {
+		.name		= "optee-ftpm",
+		.bus		= &tee_bus_type,
+		.probe		= ftpm_tee_probe,
+		.remove		= ftpm_tee_remove,
+	},
 };
 
-module_platform_driver(ftpm_tee_driver);
+static int __init ftpm_mod_init(void)
+{
+	int rc;
+
+	rc = platform_driver_register(&ftpm_tee_plat_driver);
+	if (rc)
+		return rc;
+
+	return driver_register(&ftpm_tee_driver.driver);
+}
+
+static void __exit ftpm_mod_exit(void)
+{
+	platform_driver_unregister(&ftpm_tee_plat_driver);
+	driver_unregister(&ftpm_tee_driver.driver);
+}
+
+module_init(ftpm_mod_init);
+module_exit(ftpm_mod_exit);
 
 MODULE_AUTHOR("Thirupathaiah Annapureddy <thiruan@microsoft.com>");
 MODULE_DESCRIPTION("TPM Driver for fTPM TA in TEE");
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_ibmvtpm.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_ibmvtpm.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (C) 2012 IBM Corporation
+ * Copyright (C) 2012-2020 IBM Corporation
  *
  * Author: Ashley Lai <ashleydlai@gmail.com>
  *
@@ -134,6 +134,64 @@
 }
 
 /**
+ * ibmvtpm_crq_send_init - Send a CRQ initialize message
+ * @ibmvtpm:	vtpm device struct
+ *
+ * Return:
+ *	0 on success.
+ *	Non-zero on failure.
+ */
+static int ibmvtpm_crq_send_init(struct ibmvtpm_dev *ibmvtpm)
+{
+	int rc;
+
+	rc = ibmvtpm_send_crq_word(ibmvtpm->vdev, INIT_CRQ_CMD);
+	if (rc != H_SUCCESS)
+		dev_err(ibmvtpm->dev,
+			"%s failed rc=%d\n", __func__, rc);
+
+	return rc;
+}
+
+/**
+ * tpm_ibmvtpm_resume - Resume from suspend
+ *
+ * @dev:	device struct
+ *
+ * Return: Always 0.
+ */
+static int tpm_ibmvtpm_resume(struct device *dev)
+{
+	struct tpm_chip *chip = dev_get_drvdata(dev);
+	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
+	int rc = 0;
+
+	do {
+		if (rc)
+			msleep(100);
+		rc = plpar_hcall_norets(H_ENABLE_CRQ,
+					ibmvtpm->vdev->unit_address);
+	} while (rc == H_IN_PROGRESS || rc == H_BUSY || H_IS_LONG_BUSY(rc));
+
+	if (rc) {
+		dev_err(dev, "Error enabling ibmvtpm rc=%d\n", rc);
+		return rc;
+	}
+
+	rc = vio_enable_interrupts(ibmvtpm->vdev);
+	if (rc) {
+		dev_err(dev, "Error vio_enable_interrupts rc=%d\n", rc);
+		return rc;
+	}
+
+	rc = ibmvtpm_crq_send_init(ibmvtpm);
+	if (rc)
+		dev_err(dev, "Error send_init rc=%d\n", rc);
+
+	return rc;
+}
+
+/**
  * tpm_ibmvtpm_send() - Send a TPM command
  * @chip:	tpm chip struct
  * @buf:	buffer contains data to send
@@ -146,6 +204,7 @@
 static int tpm_ibmvtpm_send(struct tpm_chip *chip, u8 *buf, size_t count)
 {
 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
+	bool retry = true;
 	int rc, sig;
 
 	if (!ibmvtpm->rtce_buf) {
@@ -179,18 +238,27 @@
 	 */
 	ibmvtpm->tpm_processing_cmd = true;
 
+again:
 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
 			IBMVTPM_VALID_CMD, VTPM_TPM_COMMAND,
 			count, ibmvtpm->rtce_dma_handle);
 	if (rc != H_SUCCESS) {
+		/*
+		 * H_CLOSED can be returned after LPM resume.  Call
+		 * tpm_ibmvtpm_resume() to re-enable the CRQ then retry
+		 * ibmvtpm_send_crq() once before failing.
+		 */
+		if (rc == H_CLOSED && retry) {
+			tpm_ibmvtpm_resume(ibmvtpm->dev);
+			retry = false;
+			goto again;
+		}
 		dev_err(ibmvtpm->dev, "tpm_ibmvtpm_send failed rc=%d\n", rc);
-		rc = 0;
 		ibmvtpm->tpm_processing_cmd = false;
-	} else
-		rc = 0;
+	}
 
 	spin_unlock(&ibmvtpm->rtce_lock);
-	return rc;
+	return 0;
 }
 
 static void tpm_ibmvtpm_cancel(struct tpm_chip *chip)
@@ -269,26 +337,6 @@
 }
 
 /**
- * ibmvtpm_crq_send_init - Send a CRQ initialize message
- * @ibmvtpm:	vtpm device struct
- *
- * Return:
- *	0 on success.
- *	Non-zero on failure.
- */
-static int ibmvtpm_crq_send_init(struct ibmvtpm_dev *ibmvtpm)
-{
-	int rc;
-
-	rc = ibmvtpm_send_crq_word(ibmvtpm->vdev, INIT_CRQ_CMD);
-	if (rc != H_SUCCESS)
-		dev_err(ibmvtpm->dev,
-			"ibmvtpm_crq_send_init failed rc=%d\n", rc);
-
-	return rc;
-}
-
-/**
  * tpm_ibmvtpm_remove - ibm vtpm remove entry point
  * @vdev:	vio device struct
  *
@@ -400,44 +448,6 @@
 				  ibmvtpm->crq_dma_handle, CRQ_RES_BUF_SIZE);
 }
 
-/**
- * tpm_ibmvtpm_resume - Resume from suspend
- *
- * @dev:	device struct
- *
- * Return: Always 0.
- */
-static int tpm_ibmvtpm_resume(struct device *dev)
-{
-	struct tpm_chip *chip = dev_get_drvdata(dev);
-	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
-	int rc = 0;
-
-	do {
-		if (rc)
-			msleep(100);
-		rc = plpar_hcall_norets(H_ENABLE_CRQ,
-					ibmvtpm->vdev->unit_address);
-	} while (rc == H_IN_PROGRESS || rc == H_BUSY || H_IS_LONG_BUSY(rc));
-
-	if (rc) {
-		dev_err(dev, "Error enabling ibmvtpm rc=%d\n", rc);
-		return rc;
-	}
-
-	rc = vio_enable_interrupts(ibmvtpm->vdev);
-	if (rc) {
-		dev_err(dev, "Error vio_enable_interrupts rc=%d\n", rc);
-		return rc;
-	}
-
-	rc = ibmvtpm_crq_send_init(ibmvtpm);
-	if (rc)
-		dev_err(dev, "Error send_init rc=%d\n", rc);
-
-	return rc;
-}
-
 static bool tpm_ibmvtpm_req_canceled(struct tpm_chip *chip, u8 status)
 {
 	return (status == 0);
@@ -571,6 +581,7 @@
 	 */
 	while ((crq = ibmvtpm_crq_get_next(ibmvtpm)) != NULL) {
 		ibmvtpm_crq_process(crq, ibmvtpm);
+		wake_up_interruptible(&ibmvtpm->crq_queue.wq);
 		crq->valid = 0;
 		smp_wmb();
 	}
@@ -618,6 +629,7 @@
 	}
 
 	crq_q->num_entry = CRQ_RES_BUF_SIZE / sizeof(*crq_q->crq_addr);
+	init_waitqueue_head(&crq_q->wq);
 	ibmvtpm->crq_dma_handle = dma_map_single(dev, crq_q->crq_addr,
 						 CRQ_RES_BUF_SIZE,
 						 DMA_BIDIRECTIONAL);
@@ -670,6 +682,14 @@
 	if (rc)
 		goto init_irq_cleanup;
 
+	if (!wait_event_timeout(ibmvtpm->crq_queue.wq,
+				ibmvtpm->rtce_buf != NULL,
+				HZ)) {
+		rc = -ENODEV;
+		dev_err(dev, "CRQ response timed out\n");
+		goto init_irq_cleanup;
+	}
+
 	return tpm_chip_register(chip);
 init_irq_cleanup:
 	do {
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_ibmvtpm.h
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_ibmvtpm.h
@@ -26,6 +26,7 @@
 	struct ibmvtpm_crq *crq_addr;
 	u32 index;
 	u32 num_entry;
+	wait_queue_head_t wq;
 };
 
 struct ibmvtpm_dev {
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_tis.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_tis.c
@@ -27,6 +27,7 @@
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/kernel.h>
+#include <linux/dmi.h>
 #include "tpm.h"
 #include "tpm_tis_core.h"
 
@@ -49,8 +50,8 @@
 	return container_of(data, struct tpm_tis_tcg_phy, priv);
 }
 
-static bool interrupts = true;
-module_param(interrupts, bool, 0444);
+static int interrupts = -1;
+module_param(interrupts, int, 0444);
 MODULE_PARM_DESC(interrupts, "Enable interrupts");
 
 static bool itpm;
@@ -63,6 +64,44 @@
 MODULE_PARM_DESC(force, "Force device probe rather than using ACPI entry");
 #endif
 
+static int tpm_tis_disable_irq(const struct dmi_system_id *d)
+{
+	if (interrupts == -1) {
+		pr_notice("tpm_tis: %s detected: disabling interrupts.\n", d->ident);
+		interrupts = 0;
+	}
+
+	return 0;
+}
+
+static const struct dmi_system_id tpm_tis_dmi_table[] = {
+	{
+		.callback = tpm_tis_disable_irq,
+		.ident = "ThinkPad T490s",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T490s"),
+		},
+	},
+	{
+		.callback = tpm_tis_disable_irq,
+		.ident = "ThinkStation P360 Tiny",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkStation P360 Tiny"),
+		},
+	},
+	{
+		.callback = tpm_tis_disable_irq,
+		.ident = "ThinkPad L490",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L490"),
+		},
+	},
+	{}
+};
+
 #if defined(CONFIG_PNP) && defined(CONFIG_ACPI)
 static int has_hid(struct acpi_device *dev, const char *hid)
 {
@@ -102,6 +141,7 @@
 	const struct acpi_device_id *aid = acpi_match_device(tpm_acpi_tbl, dev);
 	struct acpi_table_tpm2 *tbl;
 	acpi_status st;
+	int ret = 0;
 
 	if (!aid || aid->driver_data != DEVICE_IS_TPM2)
 		return 0;
@@ -109,8 +149,7 @@
 	/* If the ACPI TPM2 signature is matched then a global ACPI_SIG_TPM2
 	 * table is mandatory
 	 */
-	st =
-	    acpi_get_table(ACPI_SIG_TPM2, 1, (struct acpi_table_header **)&tbl);
+	st = acpi_get_table(ACPI_SIG_TPM2, 1, (struct acpi_table_header **)&tbl);
 	if (ACPI_FAILURE(st) || tbl->header.length < sizeof(*tbl)) {
 		dev_err(dev, FW_BUG "failed to get TPM2 ACPI table\n");
 		return -EINVAL;
@@ -118,9 +157,10 @@
 
 	/* The tpm2_crb driver handles this device */
 	if (tbl->start_method != ACPI_TPM2_MEMORY_MAPPED)
-		return -ENODEV;
+		ret = -ENODEV;
 
-	return 0;
+	acpi_put_table((struct acpi_table_header *)tbl);
+	return ret;
 }
 #else
 static int check_acpi_tpm2(struct device *dev)
@@ -192,6 +232,8 @@
 	int irq = -1;
 	int rc;
 
+	dmi_check_system(tpm_tis_dmi_table);
+
 	rc = check_acpi_tpm2(dev);
 	if (rc)
 		return rc;
@@ -286,7 +328,7 @@
 	}
 	tpm_info.res = *res;
 
-	tpm_info.irq = platform_get_irq(pdev, 0);
+	tpm_info.irq = platform_get_irq_optional(pdev, 0);
 	if (tpm_info.irq <= 0) {
 		if (pdev != force_pdev)
 			tpm_info.irq = -1;
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_tis_core.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_tis_core.c
@@ -125,7 +125,8 @@
 	if (rc < 0)
 		return false;
 
-	if ((access & (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) ==
+	if ((access & (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID
+		       | TPM_ACCESS_REQUEST_USE)) ==
 	    (TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) {
 		priv->locality = l;
 		return true;
@@ -134,58 +135,13 @@
 	return false;
 }
 
-static bool locality_inactive(struct tpm_chip *chip, int l)
-{
-	struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
-	int rc;
-	u8 access;
-
-	rc = tpm_tis_read8(priv, TPM_ACCESS(l), &access);
-	if (rc < 0)
-		return false;
-
-	if ((access & (TPM_ACCESS_VALID | TPM_ACCESS_ACTIVE_LOCALITY))
-	    == TPM_ACCESS_VALID)
-		return true;
-
-	return false;
-}
-
 static int release_locality(struct tpm_chip *chip, int l)
 {
 	struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
-	unsigned long stop, timeout;
-	long rc;
 
 	tpm_tis_write8(priv, TPM_ACCESS(l), TPM_ACCESS_ACTIVE_LOCALITY);
 
-	stop = jiffies + chip->timeout_a;
-
-	if (chip->flags & TPM_CHIP_FLAG_IRQ) {
-again:
-		timeout = stop - jiffies;
-		if ((long)timeout <= 0)
-			return -1;
-
-		rc = wait_event_interruptible_timeout(priv->int_queue,
-						      (locality_inactive(chip, l)),
-						      timeout);
-
-		if (rc > 0)
-			return 0;
-
-		if (rc == -ERESTARTSYS && freezing(current)) {
-			clear_thread_flag(TIF_SIGPENDING);
-			goto again;
-		}
-	} else {
-		do {
-			if (locality_inactive(chip, l))
-				return 0;
-			tpm_msleep(TPM_TIMEOUT);
-		} while (time_before(jiffies, stop));
-	}
-	return -1;
+	return 0;
 }
 
 static int request_locality(struct tpm_chip *chip, int l)
@@ -310,6 +266,7 @@
 	int size = 0;
 	int status;
 	u32 expected;
+	int rc;
 
 	if (count < TPM_HEADER_SIZE) {
 		size = -EIO;
@@ -329,8 +286,13 @@
 		goto out;
 	}
 
-	size += recv_data(chip, &buf[TPM_HEADER_SIZE],
-			  expected - TPM_HEADER_SIZE);
+	rc = recv_data(chip, &buf[TPM_HEADER_SIZE],
+		       expected - TPM_HEADER_SIZE);
+	if (rc < 0) {
+		size = rc;
+		goto out;
+	}
+	size += rc;
 	if (size < expected) {
 		dev_err(&chip->dev, "Unable to read remainder of result\n");
 		size = -ETIME;
@@ -433,6 +395,9 @@
 	u32 intmask;
 	int rc;
 
+	if (priv->irq == 0)
+		return;
+
 	rc = tpm_tis_read32(priv, TPM_INT_ENABLE(priv->locality), &intmask);
 	if (rc < 0)
 		intmask = 0;
@@ -456,10 +421,17 @@
 	int rc;
 	u32 ordinal;
 	unsigned long dur;
+	unsigned int try;
 
-	rc = tpm_tis_send_data(chip, buf, len);
-	if (rc < 0)
-		return rc;
+	for (try = 0; try < TPM_RETRY; try++) {
+		rc = tpm_tis_send_data(chip, buf, len);
+		if (rc >= 0)
+			/* Data transfer done successfully */
+			break;
+		else if (rc != -EIO)
+			/* Data transfer failed, not recoverable */
+			return rc;
+	}
 
 	/* go and do it */
 	rc = tpm_tis_write8(priv, TPM_STS(priv->locality), TPM_STS_GO);
@@ -654,17 +626,23 @@
 	return IRQ_HANDLED;
 }
 
-static int tpm_tis_gen_interrupt(struct tpm_chip *chip)
+static void tpm_tis_gen_interrupt(struct tpm_chip *chip)
 {
 	const char *desc = "attempting to generate an interrupt";
 	u32 cap2;
 	cap_t cap;
+	int ret;
+
+	ret = request_locality(chip, 0);
+	if (ret < 0)
+		return;
 
 	if (chip->flags & TPM_CHIP_FLAG_TPM2)
-		return tpm2_get_tpm_pt(chip, 0x100, &cap2, desc);
+		ret = tpm2_get_tpm_pt(chip, 0x100, &cap2, desc);
 	else
-		return tpm1_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap, desc,
-				  0);
+		ret = tpm1_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap, desc, 0);
+
+	release_locality(chip, 0);
 }
 
 /* Register the IRQ and issue a command that will cause an interrupt. If an
@@ -694,42 +672,37 @@
 
 	rc = tpm_tis_write8(priv, TPM_INT_VECTOR(priv->locality), irq);
 	if (rc < 0)
-		return rc;
+		goto restore_irqs;
 
 	rc = tpm_tis_read32(priv, TPM_INT_STATUS(priv->locality), &int_status);
 	if (rc < 0)
-		return rc;
+		goto restore_irqs;
 
 	/* Clear all existing */
 	rc = tpm_tis_write32(priv, TPM_INT_STATUS(priv->locality), int_status);
 	if (rc < 0)
-		return rc;
-
+		goto restore_irqs;
 	/* Turn on */
 	rc = tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality),
 			     intmask | TPM_GLOBAL_INT_ENABLE);
 	if (rc < 0)
-		return rc;
+		goto restore_irqs;
 
 	priv->irq_tested = false;
 
 	/* Generate an interrupt by having the core call through to
 	 * tpm_tis_send
 	 */
-	rc = tpm_tis_gen_interrupt(chip);
-	if (rc < 0)
-		return rc;
+	tpm_tis_gen_interrupt(chip);
 
+restore_irqs:
 	/* tpm_tis_send will either confirm the interrupt is working or it
 	 * will call disable_irq which undoes all of the above.
 	 */
 	if (!(chip->flags & TPM_CHIP_FLAG_IRQ)) {
-		rc = tpm_tis_write8(priv, original_int_vec,
-				TPM_INT_VECTOR(priv->locality));
-		if (rc < 0)
-			return rc;
-
-		return 1;
+		tpm_tis_write8(priv, original_int_vec,
+			       TPM_INT_VECTOR(priv->locality));
+		return -1;
 	}
 
 	return 0;
@@ -910,7 +883,15 @@
 	intmask |= TPM_INTF_CMD_READY_INT | TPM_INTF_LOCALITY_CHANGE_INT |
 		   TPM_INTF_DATA_AVAIL_INT | TPM_INTF_STS_VALID_INT;
 	intmask &= ~TPM_GLOBAL_INT_ENABLE;
+
+	rc = request_locality(chip, 0);
+	if (rc < 0) {
+		rc = -ENODEV;
+		goto out_err;
+	}
+
 	tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality), intmask);
+	release_locality(chip, 0);
 
 	rc = tpm_chip_start(chip);
 	if (rc)
@@ -970,28 +951,38 @@
 	init_waitqueue_head(&priv->read_queue);
 	init_waitqueue_head(&priv->int_queue);
 	if (irq != -1) {
-		/* Before doing irq testing issue a command to the TPM in polling mode
+		/*
+		 * Before doing irq testing issue a command to the TPM in polling mode
 		 * to make sure it works. May as well use that command to set the
 		 * proper timeouts for the driver.
 		 */
-		if (tpm_get_timeouts(chip)) {
+
+		rc = request_locality(chip, 0);
+		if (rc < 0)
+			goto out_err;
+
+		rc = tpm_get_timeouts(chip);
+
+		release_locality(chip, 0);
+
+		if (rc) {
 			dev_err(dev, "Could not get TPM timeouts and durations\n");
 			rc = -ENODEV;
 			goto out_err;
 		}
 
-		tpm_chip_start(chip);
-		chip->flags |= TPM_CHIP_FLAG_IRQ;
 		if (irq) {
 			tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED,
 						 irq);
-			if (!(chip->flags & TPM_CHIP_FLAG_IRQ))
+			if (!(chip->flags & TPM_CHIP_FLAG_IRQ)) {
 				dev_err(&chip->dev, FW_BUG
 					"TPM interrupt not working, polling instead\n");
+
+				disable_interrupts(chip);
+			}
 		} else {
 			tpm_tis_probe_irq(chip, intmask);
 		}
-		tpm_chip_stop(chip);
 	}
 
 	rc = tpm_chip_register(chip);
@@ -1003,7 +994,7 @@
 
 	return 0;
 out_err:
-	if ((chip->ops != NULL) && (chip->ops->clk_enable != NULL))
+	if (chip->ops->clk_enable != NULL)
 		chip->ops->clk_enable(chip, false);
 
 	tpm_tis_remove(chip);
@@ -1058,12 +1049,20 @@
 	if (ret)
 		return ret;
 
-	/* TPM 1.2 requires self-test on resume. This function actually returns
+	/*
+	 * TPM 1.2 requires self-test on resume. This function actually returns
 	 * an error code but for unknown reason it isn't handled.
 	 */
-	if (!(chip->flags & TPM_CHIP_FLAG_TPM2))
+	if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) {
+		ret = request_locality(chip, 0);
+		if (ret < 0)
+			return ret;
+
 		tpm1_do_selftest(chip);
 
+		release_locality(chip, 0);
+	}
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(tpm_tis_resume);
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpm_vtpm_proxy.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpm_vtpm_proxy.c
@@ -693,37 +693,21 @@
 	.fops = &vtpmx_fops,
 };
 
-static int vtpmx_init(void)
-{
-	return misc_register(&vtpmx_miscdev);
-}
-
-static void vtpmx_cleanup(void)
-{
-	misc_deregister(&vtpmx_miscdev);
-}
-
 static int __init vtpm_module_init(void)
 {
 	int rc;
 
-	rc = vtpmx_init();
-	if (rc) {
-		pr_err("couldn't create vtpmx device\n");
-		return rc;
-	}
-
 	workqueue = create_workqueue("tpm-vtpm");
 	if (!workqueue) {
 		pr_err("couldn't create workqueue\n");
-		rc = -ENOMEM;
-		goto err_vtpmx_cleanup;
+		return -ENOMEM;
 	}
 
-	return 0;
-
-err_vtpmx_cleanup:
-	vtpmx_cleanup();
+	rc = misc_register(&vtpmx_miscdev);
+	if (rc) {
+		pr_err("couldn't create vtpmx device\n");
+		destroy_workqueue(workqueue);
+	}
 
 	return rc;
 }
@@ -731,7 +715,7 @@
 static void __exit vtpm_module_exit(void)
 {
 	destroy_workqueue(workqueue);
-	vtpmx_cleanup();
+	misc_deregister(&vtpmx_miscdev);
 }
 
 module_init(vtpm_module_init);
--- linux-ein-5.4.0.orig/drivers/char/tpm/tpmrm-dev.c
+++ linux-ein-5.4.0/drivers/char/tpm/tpmrm-dev.c
@@ -21,7 +21,7 @@
 	if (priv == NULL)
 		return -ENOMEM;
 
-	rc = tpm2_init_space(&priv->space);
+	rc = tpm2_init_space(&priv->space, TPM2_SPACE_BUFFER_SIZE);
 	if (rc) {
 		kfree(priv);
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/char/ttyprintk.c
+++ linux-ein-5.4.0/drivers/char/ttyprintk.c
@@ -15,10 +15,11 @@
 #include <linux/serial.h>
 #include <linux/tty.h>
 #include <linux/module.h>
+#include <linux/spinlock.h>
 
 struct ttyprintk_port {
 	struct tty_port port;
-	struct mutex port_write_mutex;
+	spinlock_t spinlock;
 };
 
 static struct ttyprintk_port tpk_port;
@@ -99,11 +100,12 @@
 static void tpk_close(struct tty_struct *tty, struct file *filp)
 {
 	struct ttyprintk_port *tpkp = tty->driver_data;
+	unsigned long flags;
 
-	mutex_lock(&tpkp->port_write_mutex);
+	spin_lock_irqsave(&tpkp->spinlock, flags);
 	/* flush tpk_printk buffer */
 	tpk_printk(NULL, 0);
-	mutex_unlock(&tpkp->port_write_mutex);
+	spin_unlock_irqrestore(&tpkp->spinlock, flags);
 
 	tty_port_close(&tpkp->port, tty, filp);
 }
@@ -115,13 +117,14 @@
 		const unsigned char *buf, int count)
 {
 	struct ttyprintk_port *tpkp = tty->driver_data;
+	unsigned long flags;
 	int ret;
 
 
 	/* exclusive use of tpk_printk within this tty */
-	mutex_lock(&tpkp->port_write_mutex);
+	spin_lock_irqsave(&tpkp->spinlock, flags);
 	ret = tpk_printk(buf, count);
-	mutex_unlock(&tpkp->port_write_mutex);
+	spin_unlock_irqrestore(&tpkp->spinlock, flags);
 
 	return ret;
 }
@@ -155,12 +158,23 @@
 	return 0;
 }
 
+/*
+ * TTY operations hangup function.
+ */
+static void tpk_hangup(struct tty_struct *tty)
+{
+	struct ttyprintk_port *tpkp = tty->driver_data;
+
+	tty_port_hangup(&tpkp->port);
+}
+
 static const struct tty_operations ttyprintk_ops = {
 	.open = tpk_open,
 	.close = tpk_close,
 	.write = tpk_write,
 	.write_room = tpk_write_room,
 	.ioctl = tpk_ioctl,
+	.hangup = tpk_hangup,
 };
 
 static const struct tty_port_operations null_ops = { };
@@ -171,7 +185,7 @@
 {
 	int ret = -ENOMEM;
 
-	mutex_init(&tpk_port.port_write_mutex);
+	spin_lock_init(&tpk_port.spinlock);
 
 	ttyprintk_driver = tty_alloc_driver(1,
 			TTY_DRIVER_RESET_TERMIOS |
--- linux-ein-5.4.0.orig/drivers/char/virtio_console.c
+++ linux-ein-5.4.0/drivers/char/virtio_console.c
@@ -435,12 +435,12 @@
 		/*
 		 * Allocate DMA memory from ancestor. When a virtio
 		 * device is created by remoteproc, the DMA memory is
-		 * associated with the grandparent device:
-		 * vdev => rproc => platform-dev.
+		 * associated with the parent device:
+		 * virtioY => remoteprocX#vdevYbuffer.
 		 */
-		if (!vdev->dev.parent || !vdev->dev.parent->parent)
+		buf->dev = vdev->dev.parent;
+		if (!buf->dev)
 			goto free_buf;
-		buf->dev = vdev->dev.parent->parent;
 
 		/* Increase device refcnt to avoid freeing it */
 		get_device(buf->dev);
@@ -475,7 +475,7 @@
 
 	buf = virtqueue_get_buf(port->in_vq, &len);
 	if (buf) {
-		buf->len = len;
+		buf->len = min_t(size_t, len, buf->size);
 		buf->offset = 0;
 		port->stats.bytes_received += len;
 	}
@@ -1714,7 +1714,7 @@
 	while ((buf = virtqueue_get_buf(vq, &len))) {
 		spin_unlock(&portdev->c_ivq_lock);
 
-		buf->len = len;
+		buf->len = min_t(size_t, len, buf->size);
 		buf->offset = 0;
 
 		handle_control_message(vq->vdev, portdev, buf);
@@ -1961,6 +1961,13 @@
 	list_del(&portdev->list);
 	spin_unlock_irq(&pdrvdata_lock);
 
+	/* Device is going away, exit any polling for buffers */
+	virtio_break_device(vdev);
+	if (use_multiport(portdev))
+		flush_work(&portdev->control_work);
+	else
+		flush_work(&portdev->config_work);
+
 	/* Disable interrupts for vqs */
 	vdev->config->reset(vdev);
 	/* Finish up work that's lined up */
@@ -2118,6 +2125,7 @@
 	{ VIRTIO_ID_CONSOLE, VIRTIO_DEV_ANY_ID },
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, id_table);
 
 static unsigned int features[] = {
 	VIRTIO_CONSOLE_F_SIZE,
@@ -2130,6 +2138,7 @@
 #endif
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, rproc_serial_id_table);
 
 static unsigned int rproc_serial_features[] = {
 };
@@ -2232,7 +2241,7 @@
 	.remove =	virtcons_remove,
 };
 
-static int __init init(void)
+static int __init virtio_console_init(void)
 {
 	int err;
 
@@ -2269,7 +2278,7 @@
 	return err;
 }
 
-static void __exit fini(void)
+static void __exit virtio_console_fini(void)
 {
 	reclaim_dma_bufs();
 
@@ -2279,9 +2288,8 @@
 	class_destroy(pdrvdata.class);
 	debugfs_remove_recursive(pdrvdata.debugfs_dir);
 }
-module_init(init);
-module_exit(fini);
+module_init(virtio_console_init);
+module_exit(virtio_console_fini);
 
-MODULE_DEVICE_TABLE(virtio, id_table);
 MODULE_DESCRIPTION("Virtio console driver");
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/clk/Kconfig
+++ linux-ein-5.4.0/drivers/clk/Kconfig
@@ -63,7 +63,7 @@
 config COMMON_CLK_HI655X
 	tristate "Clock driver for Hi655x" if EXPERT
 	depends on (MFD_HI655X_PMIC || COMPILE_TEST)
-	depends on REGMAP
+	select REGMAP
 	default MFD_HI655X_PMIC
 	---help---
 	  This driver supports the hi655x PMIC clock. This
@@ -302,6 +302,7 @@
 config COMMON_CLK_FIXED_MMIO
 	bool "Clock driver for Memory Mapped Fixed values"
 	depends on COMMON_CLK && OF
+	depends on HAS_IOMEM
 	help
 	  Support for Memory Mapped IO Fixed clocks
 
--- linux-ein-5.4.0.orig/drivers/clk/actions/owl-s500.c
+++ linux-ein-5.4.0/drivers/clk/actions/owl-s500.c
@@ -125,8 +125,7 @@
 	{ 12, 1, 13 }, { 13, 1, 14 }, { 14, 1, 15 }, { 15, 1, 16 },
 	{ 16, 1, 17 }, { 17, 1, 18 }, { 18, 1, 19 }, { 19, 1, 20 },
 	{ 20, 1, 21 }, { 21, 1, 22 }, { 22, 1, 23 }, { 23, 1, 24 },
-	{ 24, 1, 25 }, { 25, 1, 26 }, { 26, 1, 27 }, { 27, 1, 28 },
-	{ 28, 1, 29 }, { 29, 1, 30 }, { 30, 1, 31 }, { 31, 1, 32 },
+	{ 24, 1, 25 },
 
 	/* bit8: /128 */
 	{ 256, 1, 1 * 128 }, { 257, 1, 2 * 128 }, { 258, 1, 3 * 128 }, { 259, 1, 4 * 128 },
@@ -135,14 +134,20 @@
 	{ 268, 1, 13 * 128 }, { 269, 1, 14 * 128 }, { 270, 1, 15 * 128 }, { 271, 1, 16 * 128 },
 	{ 272, 1, 17 * 128 }, { 273, 1, 18 * 128 }, { 274, 1, 19 * 128 }, { 275, 1, 20 * 128 },
 	{ 276, 1, 21 * 128 }, { 277, 1, 22 * 128 }, { 278, 1, 23 * 128 }, { 279, 1, 24 * 128 },
-	{ 280, 1, 25 * 128 }, { 281, 1, 26 * 128 }, { 282, 1, 27 * 128 }, { 283, 1, 28 * 128 },
-	{ 284, 1, 29 * 128 }, { 285, 1, 30 * 128 }, { 286, 1, 31 * 128 }, { 287, 1, 32 * 128 },
+	{ 280, 1, 25 * 128 },
 	{ 0, 0, 0 },
 };
 
-static struct clk_factor_table bisp_factor_table[] = {
-	{ 0, 1, 1 }, { 1, 1, 2 }, { 2, 1, 3 }, { 3, 1, 4 },
-	{ 4, 1, 5 }, { 5, 1, 6 }, { 6, 1, 7 }, { 7, 1, 8 },
+static struct clk_factor_table de_factor_table[] = {
+	{ 0, 1, 1 }, { 1, 2, 3 }, { 2, 1, 2 }, { 3, 2, 5 },
+	{ 4, 1, 3 }, { 5, 1, 4 }, { 6, 1, 6 }, { 7, 1, 8 },
+	{ 8, 1, 12 },
+	{ 0, 0, 0 },
+};
+
+static struct clk_factor_table hde_factor_table[] = {
+	{ 0, 1, 1 }, { 1, 2, 3 }, { 2, 1, 2 }, { 3, 2, 5 },
+	{ 4, 1, 3 }, { 5, 1, 4 }, { 6, 1, 6 }, { 7, 1, 8 },
 	{ 0, 0, 0 },
 };
 
@@ -156,6 +161,13 @@
 	{ 0, 0 },
 };
 
+static struct clk_div_table std12rate_div_table[] = {
+	{ 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 4 },
+	{ 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 8 },
+	{ 8, 9 }, { 9, 10 }, { 10, 11 }, { 11, 12 },
+	{ 0, 0 },
+};
+
 static struct clk_div_table i2s_div_table[] = {
 	{ 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 4 },
 	{ 4, 6 }, { 5, 8 }, { 6, 12 }, { 7, 16 },
@@ -183,44 +195,44 @@
 static OWL_GATE(hdmi_clk, "hdmi_clk", "hosc", CMU_DEVCLKEN1, 3, 0, 0);
 
 /* divider clocks */
-static OWL_DIVIDER(h_clk, "h_clk", "ahbprevdiv_clk", CMU_BUSCLK1, 12, 2, NULL, 0, 0);
+static OWL_DIVIDER(h_clk, "h_clk", "ahbprediv_clk", CMU_BUSCLK1, 12, 2, NULL, 0, 0);
 static OWL_DIVIDER(rmii_ref_clk, "rmii_ref_clk", "ethernet_pll_clk", CMU_ETHERNETPLL, 1, 1, rmii_ref_div_table, 0, 0);
 
 /* factor clocks */
 static OWL_FACTOR(ahb_clk, "ahb_clk", "h_clk", CMU_BUSCLK1, 2, 2, ahb_factor_table, 0, 0);
-static OWL_FACTOR(de1_clk, "de_clk1", "de_clk", CMU_DECLK, 0, 3, bisp_factor_table, 0, 0);
-static OWL_FACTOR(de2_clk, "de_clk2", "de_clk", CMU_DECLK, 4, 3, bisp_factor_table, 0, 0);
+static OWL_FACTOR(de1_clk, "de_clk1", "de_clk", CMU_DECLK, 0, 4, de_factor_table, 0, 0);
+static OWL_FACTOR(de2_clk, "de_clk2", "de_clk", CMU_DECLK, 4, 4, de_factor_table, 0, 0);
 
 /* composite clocks */
 static OWL_COMP_FACTOR(vce_clk, "vce_clk", hde_clk_mux_p,
 			OWL_MUX_HW(CMU_VCECLK, 4, 2),
 			OWL_GATE_HW(CMU_DEVCLKEN0, 26, 0),
-			OWL_FACTOR_HW(CMU_VCECLK, 0, 3, 0, bisp_factor_table),
+			OWL_FACTOR_HW(CMU_VCECLK, 0, 3, 0, hde_factor_table),
 			0);
 
 static OWL_COMP_FACTOR(vde_clk, "vde_clk", hde_clk_mux_p,
 			OWL_MUX_HW(CMU_VDECLK, 4, 2),
 			OWL_GATE_HW(CMU_DEVCLKEN0, 25, 0),
-			OWL_FACTOR_HW(CMU_VDECLK, 0, 3, 0, bisp_factor_table),
+			OWL_FACTOR_HW(CMU_VDECLK, 0, 3, 0, hde_factor_table),
 			0);
 
-static OWL_COMP_FACTOR(bisp_clk, "bisp_clk", bisp_clk_mux_p,
+static OWL_COMP_DIV(bisp_clk, "bisp_clk", bisp_clk_mux_p,
 			OWL_MUX_HW(CMU_BISPCLK, 4, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN0, 14, 0),
-			OWL_FACTOR_HW(CMU_BISPCLK, 0, 3, 0, bisp_factor_table),
+			OWL_DIVIDER_HW(CMU_BISPCLK, 0, 4, 0, std12rate_div_table),
 			0);
 
-static OWL_COMP_FACTOR(sensor0_clk, "sensor0_clk", sensor_clk_mux_p,
+static OWL_COMP_DIV(sensor0_clk, "sensor0_clk", sensor_clk_mux_p,
 			OWL_MUX_HW(CMU_SENSORCLK, 4, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN0, 14, 0),
-			OWL_FACTOR_HW(CMU_SENSORCLK, 0, 3, 0, bisp_factor_table),
-			CLK_IGNORE_UNUSED);
+			OWL_DIVIDER_HW(CMU_SENSORCLK, 0, 4, 0, std12rate_div_table),
+			0);
 
-static OWL_COMP_FACTOR(sensor1_clk, "sensor1_clk", sensor_clk_mux_p,
+static OWL_COMP_DIV(sensor1_clk, "sensor1_clk", sensor_clk_mux_p,
 			OWL_MUX_HW(CMU_SENSORCLK, 4, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN0, 14, 0),
-			OWL_FACTOR_HW(CMU_SENSORCLK, 8, 3, 0, bisp_factor_table),
-			CLK_IGNORE_UNUSED);
+			OWL_DIVIDER_HW(CMU_SENSORCLK, 8, 4, 0, std12rate_div_table),
+			0);
 
 static OWL_COMP_FACTOR(sd0_clk, "sd0_clk", sd_clk_mux_p,
 			OWL_MUX_HW(CMU_SD0CLK, 9, 1),
@@ -300,7 +312,7 @@
 static OWL_COMP_DIV(uart0_clk, "uart0_clk", uart_clk_mux_p,
 			OWL_MUX_HW(CMU_UART0CLK, 16, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN1, 6, 0),
-			OWL_DIVIDER_HW(CMU_UART1CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
+			OWL_DIVIDER_HW(CMU_UART0CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
 			CLK_IGNORE_UNUSED);
 
 static OWL_COMP_DIV(uart1_clk, "uart1_clk", uart_clk_mux_p,
@@ -312,31 +324,31 @@
 static OWL_COMP_DIV(uart2_clk, "uart2_clk", uart_clk_mux_p,
 			OWL_MUX_HW(CMU_UART2CLK, 16, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN1, 8, 0),
-			OWL_DIVIDER_HW(CMU_UART1CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
+			OWL_DIVIDER_HW(CMU_UART2CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
 			CLK_IGNORE_UNUSED);
 
 static OWL_COMP_DIV(uart3_clk, "uart3_clk", uart_clk_mux_p,
 			OWL_MUX_HW(CMU_UART3CLK, 16, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN1, 19, 0),
-			OWL_DIVIDER_HW(CMU_UART1CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
+			OWL_DIVIDER_HW(CMU_UART3CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
 			CLK_IGNORE_UNUSED);
 
 static OWL_COMP_DIV(uart4_clk, "uart4_clk", uart_clk_mux_p,
 			OWL_MUX_HW(CMU_UART4CLK, 16, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN1, 20, 0),
-			OWL_DIVIDER_HW(CMU_UART1CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
+			OWL_DIVIDER_HW(CMU_UART4CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
 			CLK_IGNORE_UNUSED);
 
 static OWL_COMP_DIV(uart5_clk, "uart5_clk", uart_clk_mux_p,
 			OWL_MUX_HW(CMU_UART5CLK, 16, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN1, 21, 0),
-			OWL_DIVIDER_HW(CMU_UART1CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
+			OWL_DIVIDER_HW(CMU_UART5CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
 			CLK_IGNORE_UNUSED);
 
 static OWL_COMP_DIV(uart6_clk, "uart6_clk", uart_clk_mux_p,
 			OWL_MUX_HW(CMU_UART6CLK, 16, 1),
 			OWL_GATE_HW(CMU_DEVCLKEN1, 18, 0),
-			OWL_DIVIDER_HW(CMU_UART1CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
+			OWL_DIVIDER_HW(CMU_UART6CLK, 0, 8, CLK_DIVIDER_ROUND_CLOSEST, NULL),
 			CLK_IGNORE_UNUSED);
 
 static OWL_COMP_DIV(i2srx_clk, "i2srx_clk", i2s_clk_mux_p,
--- linux-ein-5.4.0.orig/drivers/clk/actions/owl-s700.c
+++ linux-ein-5.4.0/drivers/clk/actions/owl-s700.c
@@ -162,6 +162,7 @@
 
 static struct clk_div_table rmii_div_table[] = {
 	{0, 4},   {1, 10},
+	{0, 0}
 };
 
 /* divider clocks */
--- linux-ein-5.4.0.orig/drivers/clk/actions/owl-s900.c
+++ linux-ein-5.4.0/drivers/clk/actions/owl-s900.c
@@ -140,7 +140,7 @@
 
 static struct clk_div_table usb3_mac_div_table[] = {
 	{ 1, 2 }, { 2, 3 }, { 3, 4 },
-	{ 0, 8 },
+	{ 0, 0 }
 };
 
 static struct clk_div_table i2s_div_table[] = {
--- linux-ein-5.4.0.orig/drivers/clk/at91/at91sam9260.c
+++ linux-ein-5.4.0/drivers/clk/at91/at91sam9260.c
@@ -348,7 +348,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/at91sam9rl.c
+++ linux-ein-5.4.0/drivers/clk/at91/at91sam9rl.c
@@ -83,7 +83,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/at91sam9x5.c
+++ linux-ein-5.4.0/drivers/clk/at91/at91sam9x5.c
@@ -146,7 +146,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/clk-generated.c
+++ linux-ein-5.4.0/drivers/clk/at91/clk-generated.c
@@ -18,8 +18,6 @@
 
 #define GENERATED_MAX_DIV	255
 
-#define GCK_INDEX_DT_AUDIO_PLL	5
-
 struct clk_generated {
 	struct clk_hw hw;
 	struct regmap *regmap;
@@ -29,7 +27,7 @@
 	u32 gckdiv;
 	const struct clk_pcr_layout *layout;
 	u8 parent_id;
-	bool audio_pll_allowed;
+	int chg_pid;
 };
 
 #define to_clk_generated(hw) \
@@ -107,9 +105,13 @@
 		tmp_rate = parent_rate;
 	else
 		tmp_rate = parent_rate / div;
+
+	if (tmp_rate < req->min_rate || tmp_rate > req->max_rate)
+		return;
+
 	tmp_diff = abs(req->rate - tmp_rate);
 
-	if (*best_diff < 0 || *best_diff > tmp_diff) {
+	if (*best_diff < 0 || *best_diff >= tmp_diff) {
 		*best_rate = tmp_rate;
 		*best_diff = tmp_diff;
 		req->best_parent_rate = parent_rate;
@@ -129,7 +131,16 @@
 	int i;
 	u32 div;
 
-	for (i = 0; i < clk_hw_get_num_parents(hw) - 1; i++) {
+	/* do not look for a rate that is outside of our range */
+	if (gck->range.max && req->rate > gck->range.max)
+		req->rate = gck->range.max;
+	if (gck->range.min && req->rate < gck->range.min)
+		req->rate = gck->range.min;
+
+	for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
+		if (gck->chg_pid == i)
+			continue;
+
 		parent = clk_hw_get_parent_by_index(hw, i);
 		if (!parent)
 			continue;
@@ -161,10 +172,10 @@
 	 * that the only clks able to modify gck rate are those of audio IPs.
 	 */
 
-	if (!gck->audio_pll_allowed)
+	if (gck->chg_pid < 0)
 		goto end;
 
-	parent = clk_hw_get_parent_by_index(hw, GCK_INDEX_DT_AUDIO_PLL);
+	parent = clk_hw_get_parent_by_index(hw, gck->chg_pid);
 	if (!parent)
 		goto end;
 
@@ -271,8 +282,8 @@
 at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
 			    const struct clk_pcr_layout *layout,
 			    const char *name, const char **parent_names,
-			    u8 num_parents, u8 id, bool pll_audio,
-			    const struct clk_range *range)
+			    u8 num_parents, u8 id,
+			    const struct clk_range *range, int chg_pid)
 {
 	struct clk_generated *gck;
 	struct clk_init_data init;
@@ -287,15 +298,16 @@
 	init.ops = &generated_ops;
 	init.parent_names = parent_names;
 	init.num_parents = num_parents;
-	init.flags = CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE |
-		CLK_SET_RATE_PARENT;
+	init.flags = CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE;
+	if (chg_pid >= 0)
+		init.flags |= CLK_SET_RATE_PARENT;
 
 	gck->id = id;
 	gck->hw.init = &init;
 	gck->regmap = regmap;
 	gck->lock = lock;
 	gck->range = *range;
-	gck->audio_pll_allowed = pll_audio;
+	gck->chg_pid = chg_pid;
 	gck->layout = layout;
 
 	clk_generated_startup(gck);
--- linux-ein-5.4.0.orig/drivers/clk/at91/clk-main.c
+++ linux-ein-5.4.0/drivers/clk/at91/clk-main.c
@@ -437,12 +437,17 @@
 		return -EINVAL;
 
 	regmap_read(regmap, AT91_CKGR_MOR, &tmp);
-	tmp &= ~MOR_KEY_MASK;
 
 	if (index && !(tmp & AT91_PMC_MOSCSEL))
-		regmap_write(regmap, AT91_CKGR_MOR, tmp | AT91_PMC_MOSCSEL);
+		tmp = AT91_PMC_MOSCSEL;
 	else if (!index && (tmp & AT91_PMC_MOSCSEL))
-		regmap_write(regmap, AT91_CKGR_MOR, tmp & ~AT91_PMC_MOSCSEL);
+		tmp = 0;
+	else
+		return 0;
+
+	regmap_update_bits(regmap, AT91_CKGR_MOR,
+			   AT91_PMC_MOSCSEL | MOR_KEY_MASK,
+			   tmp | AT91_PMC_KEY);
 
 	while (!clk_sam9x5_main_ready(regmap))
 		cpu_relax();
--- linux-ein-5.4.0.orig/drivers/clk/at91/clk-usb.c
+++ linux-ein-5.4.0/drivers/clk/at91/clk-usb.c
@@ -75,6 +75,9 @@
 			tmp_parent_rate = req->rate * div;
 			tmp_parent_rate = clk_hw_round_rate(parent,
 							   tmp_parent_rate);
+			if (!tmp_parent_rate)
+				continue;
+
 			tmp_rate = DIV_ROUND_CLOSEST(tmp_parent_rate, div);
 			if (tmp_rate < req->rate)
 				tmp_diff = req->rate - tmp_rate;
@@ -211,7 +214,7 @@
 
 	usb->hw.init = &init;
 	usb->regmap = regmap;
-	usb->usbs_mask = SAM9X5_USBS_MASK;
+	usb->usbs_mask = usbs_mask;
 
 	hw = &usb->hw;
 	ret = clk_hw_register(NULL, &usb->hw);
--- linux-ein-5.4.0.orig/drivers/clk/at91/dt-compat.c
+++ linux-ein-5.4.0/drivers/clk/at91/dt-compat.c
@@ -22,6 +22,8 @@
 
 #define SYSTEM_MAX_ID		31
 
+#define GCK_INDEX_DT_AUDIO_PLL	5
+
 #ifdef CONFIG_HAVE_AT91_AUDIO_PLL
 static void __init of_sama5d2_clk_audio_pll_frac_setup(struct device_node *np)
 {
@@ -135,7 +137,7 @@
 		return;
 
 	for_each_child_of_node(np, gcknp) {
-		bool pll_audio = false;
+		int chg_pid = INT_MIN;
 
 		if (of_property_read_u32(gcknp, "reg", &id))
 			continue;
@@ -152,12 +154,12 @@
 		if (of_device_is_compatible(np, "atmel,sama5d2-clk-generated") &&
 		    (id == GCK_ID_I2S0 || id == GCK_ID_I2S1 ||
 		     id == GCK_ID_CLASSD))
-			pll_audio = true;
+			chg_pid = GCK_INDEX_DT_AUDIO_PLL;
 
 		hw = at91_clk_register_generated(regmap, &pmc_pcr_lock,
 						 &dt_pcr_layout, name,
 						 parent_names, num_parents,
-						 id, pll_audio, &range);
+						 id, &range, chg_pid);
 		if (IS_ERR(hw))
 			continue;
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/pmc.c
+++ linux-ein-5.4.0/drivers/clk/at91/pmc.c
@@ -275,7 +275,12 @@
 
 	np = of_find_matching_node(NULL, sama5d2_pmc_dt_ids);
 
-	pmcreg = syscon_node_to_regmap(np);
+	if (!of_device_is_available(np)) {
+		of_node_put(np);
+		return -ENODEV;
+	}
+
+	pmcreg = device_node_to_regmap(np);
 	if (IS_ERR(pmcreg))
 		return PTR_ERR(pmcreg);
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/pmc.h
+++ linux-ein-5.4.0/drivers/clk/at91/pmc.h
@@ -118,8 +118,8 @@
 at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
 			    const struct clk_pcr_layout *layout,
 			    const char *name, const char **parent_names,
-			    u8 num_parents, u8 id, bool pll_audio,
-			    const struct clk_range *range);
+			    u8 num_parents, u8 id,
+			    const struct clk_range *range, int chg_pid);
 
 struct clk_hw * __init
 at91_clk_register_h32mx(struct regmap *regmap, const char *name,
--- linux-ein-5.4.0.orig/drivers/clk/at91/sam9x60.c
+++ linux-ein-5.4.0/drivers/clk/at91/sam9x60.c
@@ -47,6 +47,7 @@
 	.pres_shift = 8,
 	.css_mask = 0x1f,
 	.have_slck_mck = 0,
+	.is_pres_direct = 1,
 };
 
 static const struct clk_pcr_layout sam9x60_pcr_layout = {
@@ -123,7 +124,6 @@
 	char *n;
 	u8 id;
 	struct clk_range r;
-	bool pll;
 } sam9x60_gck[] = {
 	{ .n = "flex0_gclk",  .id = 5, },
 	{ .n = "flex1_gclk",  .id = 6, },
@@ -143,11 +143,9 @@
 	{ .n = "sdmmc1_gclk", .id = 26, .r = { .min = 0, .max = 105000000 }, },
 	{ .n = "flex11_gclk", .id = 32, },
 	{ .n = "flex12_gclk", .id = 33, },
-	{ .n = "i2s_gclk",    .id = 34, .r = { .min = 0, .max = 105000000 },
-		.pll = true, },
+	{ .n = "i2s_gclk",    .id = 34, .r = { .min = 0, .max = 105000000 }, },
 	{ .n = "pit64b_gclk", .id = 37, },
-	{ .n = "classd_gclk", .id = 42, .r = { .min = 0, .max = 100000000 },
-		.pll = true, },
+	{ .n = "classd_gclk", .id = 42, .r = { .min = 0, .max = 100000000 }, },
 	{ .n = "tcb1_gclk",   .id = 45, },
 	{ .n = "dbgu_gclk",   .id = 47, },
 };
@@ -161,7 +159,6 @@
 	struct regmap *regmap;
 	struct clk_hw *hw;
 	int i;
-	bool bypass;
 
 	i = of_property_match_string(np, "clock-names", "td_slck");
 	if (i < 0)
@@ -196,10 +193,7 @@
 	if (IS_ERR(hw))
 		goto err_free;
 
-	bypass = of_property_read_bool(np, "atmel,osc-bypass");
-
-	hw = at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name,
-					bypass);
+	hw = at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, 0);
 	if (IS_ERR(hw))
 		goto err_free;
 
@@ -236,9 +230,8 @@
 
 	parent_names[0] = "pllack";
 	parent_names[1] = "upllck";
-	parent_names[2] = "mainck";
-	parent_names[3] = "mainck";
-	hw = sam9x60_clk_register_usb(regmap, "usbck", parent_names, 4);
+	parent_names[2] = "main_osc";
+	hw = sam9x60_clk_register_usb(regmap, "usbck", parent_names, 3);
 	if (IS_ERR(hw))
 		goto err_free;
 
@@ -289,8 +282,7 @@
 						 sam9x60_gck[i].n,
 						 parent_names, 6,
 						 sam9x60_gck[i].id,
-						 sam9x60_gck[i].pll,
-						 &sam9x60_gck[i].r);
+						 &sam9x60_gck[i].r, INT_MIN);
 		if (IS_ERR(hw))
 			goto err_free;
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/sama5d2.c
+++ linux-ein-5.4.0/drivers/clk/at91/sama5d2.c
@@ -115,21 +115,20 @@
 	char *n;
 	u8 id;
 	struct clk_range r;
-	bool pll;
+	int chg_pid;
 } sama5d2_gck[] = {
-	{ .n = "sdmmc0_gclk", .id = 31, },
-	{ .n = "sdmmc1_gclk", .id = 32, },
-	{ .n = "tcb0_gclk",   .id = 35, .r = { .min = 0, .max = 83000000 }, },
-	{ .n = "tcb1_gclk",   .id = 36, .r = { .min = 0, .max = 83000000 }, },
-	{ .n = "pwm_gclk",    .id = 38, .r = { .min = 0, .max = 83000000 }, },
-	{ .n = "isc_gclk",    .id = 46, },
-	{ .n = "pdmic_gclk",  .id = 48, },
-	{ .n = "i2s0_gclk",   .id = 54, .pll = true },
-	{ .n = "i2s1_gclk",   .id = 55, .pll = true },
-	{ .n = "can0_gclk",   .id = 56, .r = { .min = 0, .max = 80000000 }, },
-	{ .n = "can1_gclk",   .id = 57, .r = { .min = 0, .max = 80000000 }, },
-	{ .n = "classd_gclk", .id = 59, .r = { .min = 0, .max = 100000000 },
-	  .pll = true },
+	{ .n = "sdmmc0_gclk", .id = 31, .chg_pid = INT_MIN, },
+	{ .n = "sdmmc1_gclk", .id = 32, .chg_pid = INT_MIN, },
+	{ .n = "tcb0_gclk",   .id = 35, .chg_pid = INT_MIN, .r = { .min = 0, .max = 83000000 }, },
+	{ .n = "tcb1_gclk",   .id = 36, .chg_pid = INT_MIN, .r = { .min = 0, .max = 83000000 }, },
+	{ .n = "pwm_gclk",    .id = 38, .chg_pid = INT_MIN, .r = { .min = 0, .max = 83000000 }, },
+	{ .n = "isc_gclk",    .id = 46, .chg_pid = INT_MIN, },
+	{ .n = "pdmic_gclk",  .id = 48, .chg_pid = INT_MIN, },
+	{ .n = "i2s0_gclk",   .id = 54, .chg_pid = 5, },
+	{ .n = "i2s1_gclk",   .id = 55, .chg_pid = 5, },
+	{ .n = "can0_gclk",   .id = 56, .chg_pid = INT_MIN, .r = { .min = 0, .max = 80000000 }, },
+	{ .n = "can1_gclk",   .id = 57, .chg_pid = INT_MIN, .r = { .min = 0, .max = 80000000 }, },
+	{ .n = "classd_gclk", .id = 59, .chg_pid = 5, .r = { .min = 0, .max = 100000000 }, },
 };
 
 static const struct clk_programmable_layout sama5d2_programmable_layout = {
@@ -162,7 +161,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
@@ -317,8 +316,8 @@
 						 sama5d2_gck[i].n,
 						 parent_names, 6,
 						 sama5d2_gck[i].id,
-						 sama5d2_gck[i].pll,
-						 &sama5d2_gck[i].r);
+						 &sama5d2_gck[i].r,
+						 sama5d2_gck[i].chg_pid);
 		if (IS_ERR(hw))
 			goto err_free;
 
--- linux-ein-5.4.0.orig/drivers/clk/at91/sama5d4.c
+++ linux-ein-5.4.0/drivers/clk/at91/sama5d4.c
@@ -136,7 +136,7 @@
 		return;
 	mainxtal_name = of_clk_get_parent_name(np, i);
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = device_node_to_regmap(np);
 	if (IS_ERR(regmap))
 		return;
 
--- linux-ein-5.4.0.orig/drivers/clk/bcm/clk-bcm2835.c
+++ linux-ein-5.4.0/drivers/clk/bcm/clk-bcm2835.c
@@ -314,6 +314,7 @@
 	struct device *dev;
 	void __iomem *regs;
 	spinlock_t regs_lock; /* spinlock for all clocks */
+	unsigned int soc;
 
 	/*
 	 * Real names of cprman clock parents looked up through
@@ -525,6 +526,20 @@
 		A2W_PLL_CTRL_PRST_DISABLE;
 }
 
+static u32 bcm2835_pll_get_prediv_mask(struct bcm2835_cprman *cprman,
+				       const struct bcm2835_pll_data *data)
+{
+	/*
+	 * On BCM2711 there isn't a pre-divisor available in the PLL feedback
+	 * loop. Bits 13:14 of ANA1 (PLLA,PLLB,PLLC,PLLD) have been re-purposed
+	 * for to for VCO RANGE bits.
+	 */
+	if (cprman->soc & SOC_BCM2711)
+		return 0;
+
+	return data->ana->fb_prediv_mask;
+}
+
 static void bcm2835_pll_choose_ndiv_and_fdiv(unsigned long rate,
 					     unsigned long parent_rate,
 					     u32 *ndiv, u32 *fdiv)
@@ -582,7 +597,7 @@
 	ndiv = (a2wctrl & A2W_PLL_CTRL_NDIV_MASK) >> A2W_PLL_CTRL_NDIV_SHIFT;
 	pdiv = (a2wctrl & A2W_PLL_CTRL_PDIV_MASK) >> A2W_PLL_CTRL_PDIV_SHIFT;
 	using_prediv = cprman_read(cprman, data->ana_reg_base + 4) &
-		data->ana->fb_prediv_mask;
+		       bcm2835_pll_get_prediv_mask(cprman, data);
 
 	if (using_prediv) {
 		ndiv *= 2;
@@ -665,6 +680,7 @@
 	struct bcm2835_pll *pll = container_of(hw, struct bcm2835_pll, hw);
 	struct bcm2835_cprman *cprman = pll->cprman;
 	const struct bcm2835_pll_data *data = pll->data;
+	u32 prediv_mask = bcm2835_pll_get_prediv_mask(cprman, data);
 	bool was_using_prediv, use_fb_prediv, do_ana_setup_first;
 	u32 ndiv, fdiv, a2w_ctl;
 	u32 ana[4];
@@ -682,7 +698,7 @@
 	for (i = 3; i >= 0; i--)
 		ana[i] = cprman_read(cprman, data->ana_reg_base + i * 4);
 
-	was_using_prediv = ana[1] & data->ana->fb_prediv_mask;
+	was_using_prediv = ana[1] & prediv_mask;
 
 	ana[0] &= ~data->ana->mask0;
 	ana[0] |= data->ana->set0;
@@ -692,10 +708,10 @@
 	ana[3] |= data->ana->set3;
 
 	if (was_using_prediv && !use_fb_prediv) {
-		ana[1] &= ~data->ana->fb_prediv_mask;
+		ana[1] &= ~prediv_mask;
 		do_ana_setup_first = true;
 	} else if (!was_using_prediv && use_fb_prediv) {
-		ana[1] |= data->ana->fb_prediv_mask;
+		ana[1] |= prediv_mask;
 		do_ana_setup_first = false;
 	} else {
 		do_ana_setup_first = true;
@@ -916,8 +932,7 @@
 
 static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
 				    unsigned long rate,
-				    unsigned long parent_rate,
-				    bool round_up)
+				    unsigned long parent_rate)
 {
 	struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
 	const struct bcm2835_clock_data *data = clock->data;
@@ -929,10 +944,6 @@
 
 	rem = do_div(temp, rate);
 	div = temp;
-
-	/* Round up and mask off the unused bits */
-	if (round_up && ((div & unused_frac_mask) != 0 || rem != 0))
-		div += unused_frac_mask + 1;
 	div &= ~unused_frac_mask;
 
 	/* different clamping limits apply for a mash clock */
@@ -956,9 +967,9 @@
 	return div;
 }
 
-static long bcm2835_clock_rate_from_divisor(struct bcm2835_clock *clock,
-					    unsigned long parent_rate,
-					    u32 div)
+static unsigned long bcm2835_clock_rate_from_divisor(struct bcm2835_clock *clock,
+						     unsigned long parent_rate,
+						     u32 div)
 {
 	const struct bcm2835_clock_data *data = clock->data;
 	u64 temp;
@@ -1063,7 +1074,7 @@
 	struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
 	struct bcm2835_cprman *cprman = clock->cprman;
 	const struct bcm2835_clock_data *data = clock->data;
-	u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false);
+	u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate);
 	u32 ctl;
 
 	spin_lock(&cprman->regs_lock);
@@ -1114,7 +1125,7 @@
 
 	if (!(BIT(parent_idx) & data->set_rate_parent)) {
 		*prate = clk_hw_get_rate(parent);
-		*div = bcm2835_clock_choose_div(hw, rate, *prate, true);
+		*div = bcm2835_clock_choose_div(hw, rate, *prate);
 
 		*avgrate = bcm2835_clock_rate_from_divisor(clock, *prate, *div);
 
@@ -1200,7 +1211,7 @@
 		rate = bcm2835_clock_choose_div_and_prate(hw, i, req->rate,
 							  &div, &prate,
 							  &avgrate);
-		if (rate > best_rate && rate <= req->rate) {
+		if (abs(req->rate - rate) < abs(req->rate - best_rate)) {
 			best_parent = parent;
 			best_prate = prate;
 			best_rate = rate;
@@ -1320,8 +1331,10 @@
 	pll->hw.init = &init;
 
 	ret = devm_clk_hw_register(cprman->dev, &pll->hw);
-	if (ret)
+	if (ret) {
+		kfree(pll);
 		return NULL;
+	}
 	return &pll->hw;
 }
 
@@ -1448,13 +1461,13 @@
 	return &clock->hw;
 }
 
-static struct clk *bcm2835_register_gate(struct bcm2835_cprman *cprman,
+static struct clk_hw *bcm2835_register_gate(struct bcm2835_cprman *cprman,
 					 const struct bcm2835_gate_data *data)
 {
-	return clk_register_gate(cprman->dev, data->name, data->parent,
-				 CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE,
-				 cprman->regs + data->ctl_reg,
-				 CM_GATE_BIT, 0, &cprman->regs_lock);
+	return clk_hw_register_gate(cprman->dev, data->name, data->parent,
+				    CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE,
+				    cprman->regs + data->ctl_reg,
+				    CM_GATE_BIT, 0, &cprman->regs_lock);
 }
 
 typedef struct clk_hw *(*bcm2835_clk_register)(struct bcm2835_cprman *cprman,
@@ -1743,7 +1756,7 @@
 		.load_mask = CM_PLLC_LOADPER,
 		.hold_mask = CM_PLLC_HOLDPER,
 		.fixed_divider = 1,
-		.flags = CLK_SET_RATE_PARENT),
+		.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT),
 
 	/*
 	 * PLLD is the display PLL, used to drive DSI display panels.
@@ -2234,6 +2247,7 @@
 	platform_set_drvdata(pdev, cprman);
 
 	cprman->onecell.num = asize;
+	cprman->soc = pdata->soc;
 	hws = cprman->onecell.hws;
 
 	for (i = 0; i < asize; i++) {
--- linux-ein-5.4.0.orig/drivers/clk/bcm/clk-bcm63xx-gate.c
+++ linux-ein-5.4.0/drivers/clk/bcm/clk-bcm63xx-gate.c
@@ -155,6 +155,7 @@
 
 	for (entry = table; entry->name; entry++)
 		maxbit = max_t(u8, maxbit, entry->bit);
+	maxbit++;
 
 	hw = devm_kzalloc(&pdev->dev, struct_size(hw, data.hws, maxbit),
 			  GFP_KERNEL);
--- linux-ein-5.4.0.orig/drivers/clk/bcm/clk-iproc-pll.c
+++ linux-ein-5.4.0/drivers/clk/bcm/clk-iproc-pll.c
@@ -736,6 +736,7 @@
 	const char *parent_name;
 	struct iproc_clk *iclk_array;
 	struct clk_hw_onecell_data *clk_data;
+	const char *clk_name;
 
 	if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl))
 		return;
@@ -783,7 +784,12 @@
 	iclk = &iclk_array[0];
 	iclk->pll = pll;
 
-	init.name = node->name;
+	ret = of_property_read_string_index(node, "clock-output-names",
+					    0, &clk_name);
+	if (WARN_ON(ret))
+		goto err_pll_register;
+
+	init.name = clk_name;
 	init.ops = &iproc_pll_ops;
 	init.flags = 0;
 	parent_name = of_clk_get_parent_name(node, 0);
@@ -803,13 +809,11 @@
 		goto err_pll_register;
 
 	clk_data->hws[0] = &iclk->hw;
+	parent_name = clk_name;
 
 	/* now initialize and register all leaf clocks */
 	for (i = 1; i < num_clks; i++) {
-		const char *clk_name;
-
 		memset(&init, 0, sizeof(init));
-		parent_name = node->name;
 
 		ret = of_property_read_string_index(node, "clock-output-names",
 						    i, &clk_name);
--- linux-ein-5.4.0.orig/drivers/clk/bcm/clk-raspberrypi.c
+++ linux-ein-5.4.0/drivers/clk/bcm/clk-raspberrypi.c
@@ -113,7 +113,7 @@
 					 RPI_FIRMWARE_ARM_CLK_ID,
 					 &val);
 	if (ret)
-		return ret;
+		return 0;
 
 	return val * RPI_FIRMWARE_PLLB_ARM_DIV_RATE;
 }
--- linux-ein-5.4.0.orig/drivers/clk/berlin/bg2.c
+++ linux-ein-5.4.0/drivers/clk/berlin/bg2.c
@@ -500,12 +500,15 @@
 	int n, ret;
 
 	clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
-	if (!clk_data)
+	if (!clk_data) {
+		of_node_put(parent_np);
 		return;
+	}
 	clk_data->num = MAX_CLKS;
 	hws = clk_data->hws;
 
 	gbase = of_iomap(parent_np, 0);
+	of_node_put(parent_np);
 	if (!gbase)
 		return;
 
--- linux-ein-5.4.0.orig/drivers/clk/berlin/bg2q.c
+++ linux-ein-5.4.0/drivers/clk/berlin/bg2q.c
@@ -286,19 +286,23 @@
 	int n, ret;
 
 	clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
-	if (!clk_data)
+	if (!clk_data) {
+		of_node_put(parent_np);
 		return;
+	}
 	clk_data->num = MAX_CLKS;
 	hws = clk_data->hws;
 
 	gbase = of_iomap(parent_np, 0);
 	if (!gbase) {
+		of_node_put(parent_np);
 		pr_err("%pOF: Unable to map global base\n", np);
 		return;
 	}
 
 	/* BG2Q CPU PLL is not part of global registers */
 	cpupll_base = of_iomap(parent_np, 1);
+	of_node_put(parent_np);
 	if (!cpupll_base) {
 		pr_err("%pOF: Unable to map cpupll base\n", np);
 		iounmap(gbase);
--- linux-ein-5.4.0.orig/drivers/clk/clk-ast2600.c
+++ linux-ein-5.4.0/drivers/clk/clk-ast2600.c
@@ -17,7 +17,8 @@
 
 #define ASPEED_G6_NUM_CLKS		67
 
-#define ASPEED_G6_SILICON_REV		0x004
+#define ASPEED_G6_SILICON_REV		0x014
+#define CHIP_REVISION_ID			GENMASK(23, 16)
 
 #define ASPEED_G6_RESET_CTRL		0x040
 #define ASPEED_G6_RESET_CTRL2		0x050
@@ -47,6 +48,8 @@
 static struct clk_hw_onecell_data *aspeed_g6_clk_data;
 
 static void __iomem *scu_g6_base;
+/* AST2600 revision: A0, A1, A2, etc */
+static u8 soc_rev;
 
 /*
  * Clocks marked with CLK_IS_CRITICAL:
@@ -57,10 +60,10 @@
 static const struct aspeed_gate_data aspeed_g6_gates[] = {
 	/*				    clk rst  name		parent	 flags */
 	[ASPEED_CLK_GATE_MCLK]		= {  0, -1, "mclk-gate",	"mpll",	 CLK_IS_CRITICAL }, /* SDRAM */
-	[ASPEED_CLK_GATE_ECLK]		= {  1, -1, "eclk-gate",	"eclk",	 0 },	/* Video Engine */
+	[ASPEED_CLK_GATE_ECLK]		= {  1,  6, "eclk-gate",	"eclk",	 0 },	/* Video Engine */
 	[ASPEED_CLK_GATE_GCLK]		= {  2,  7, "gclk-gate",	NULL,	 0 },	/* 2D engine */
 	/* vclk parent - dclk/d1clk/hclk/mclk */
-	[ASPEED_CLK_GATE_VCLK]		= {  3,  6, "vclk-gate",	NULL,	 0 },	/* Video Capture */
+	[ASPEED_CLK_GATE_VCLK]		= {  3, -1, "vclk-gate",	NULL,	 0 },	/* Video Capture */
 	[ASPEED_CLK_GATE_BCLK]		= {  4,  8, "bclk-gate",	"bclk",	 0 }, /* PCIe/PCI */
 	/* From dpll */
 	[ASPEED_CLK_GATE_DCLK]		= {  5, -1, "dclk-gate",	NULL,	 CLK_IS_CRITICAL }, /* DAC */
@@ -130,6 +133,18 @@
 	{ 0 }
 };
 
+static const struct clk_div_table ast2600_emmc_extclk_div_table[] = {
+	{ 0x0, 2 },
+	{ 0x1, 4 },
+	{ 0x2, 6 },
+	{ 0x3, 8 },
+	{ 0x4, 10 },
+	{ 0x5, 12 },
+	{ 0x6, 14 },
+	{ 0x7, 16 },
+	{ 0 }
+};
+
 static const struct clk_div_table ast2600_mac_div_table[] = {
 	{ 0x0, 4 },
 	{ 0x1, 4 },
@@ -178,17 +193,32 @@
 {
 	unsigned int mult, div;
 
-	if (val & BIT(20)) {
-		/* Pass through mode */
-		mult = div = 1;
+	if (soc_rev >= 2) {
+		if (val & BIT(24)) {
+			/* Pass through mode */
+			mult = div = 1;
+		} else {
+			/* F = 25Mhz * [(m + 1) / (n + 1)] / (p + 1) */
+			u32 m = val & 0x1fff;
+			u32 n = (val >> 13) & 0x3f;
+			u32 p = (val >> 19) & 0xf;
+
+			mult = (m + 1);
+			div = (n + 1) * (p + 1);
+		}
 	} else {
-		/* F = 25Mhz * (2-od) * [(m + 2) / (n + 1)] */
-		u32 m = (val >> 5) & 0x3f;
-		u32 od = (val >> 4) & 0x1;
-		u32 n = val & 0xf;
-
-		mult = (2 - od) * (m + 2);
-		div = n + 1;
+		if (val & BIT(20)) {
+			/* Pass through mode */
+			mult = div = 1;
+		} else {
+			/* F = 25Mhz * (2-od) * [(m + 2) / (n + 1)] */
+			u32 m = (val >> 5) & 0x3f;
+			u32 od = (val >> 4) & 0x1;
+			u32 n = val & 0xf;
+
+			mult = (2 - od) * (m + 2);
+			div = n + 1;
+		}
 	}
 	return clk_hw_register_fixed_factor(NULL, name, "clkin", 0,
 			mult, div);
@@ -389,6 +419,11 @@
 	return hw;
 }
 
+static const char *const emmc_extclk_parent_names[] = {
+	"emmc_extclk_hpll_in",
+	"mpll",
+};
+
 static const char * const vclk_parent_names[] = {
 	"dpll",
 	"d1pll",
@@ -458,16 +493,32 @@
 		return PTR_ERR(hw);
 	aspeed_g6_clk_data->hws[ASPEED_CLK_UARTX] = hw;
 
-	/* EMMC ext clock divider */
-	hw = clk_hw_register_gate(dev, "emmc_extclk_gate", "hpll", 0,
-			scu_g6_base + ASPEED_G6_CLK_SELECTION1, 15, 0,
-			&aspeed_g6_clk_lock);
+	/* EMMC ext clock */
+	hw = clk_hw_register_fixed_factor(dev, "emmc_extclk_hpll_in", "hpll",
+					  0, 1, 2);
 	if (IS_ERR(hw))
 		return PTR_ERR(hw);
-	hw = clk_hw_register_divider_table(dev, "emmc_extclk", "emmc_extclk_gate", 0,
-			scu_g6_base + ASPEED_G6_CLK_SELECTION1, 12, 3, 0,
-			ast2600_div_table,
-			&aspeed_g6_clk_lock);
+
+	hw = clk_hw_register_mux(dev, "emmc_extclk_mux",
+				 emmc_extclk_parent_names,
+				 ARRAY_SIZE(emmc_extclk_parent_names), 0,
+				 scu_g6_base + ASPEED_G6_CLK_SELECTION1, 11, 1,
+				 0, &aspeed_g6_clk_lock);
+	if (IS_ERR(hw))
+		return PTR_ERR(hw);
+
+	hw = clk_hw_register_gate(dev, "emmc_extclk_gate", "emmc_extclk_mux",
+				  0, scu_g6_base + ASPEED_G6_CLK_SELECTION1,
+				  15, 0, &aspeed_g6_clk_lock);
+	if (IS_ERR(hw))
+		return PTR_ERR(hw);
+
+	hw = clk_hw_register_divider_table(dev, "emmc_extclk",
+					   "emmc_extclk_gate", 0,
+					   scu_g6_base +
+						ASPEED_G6_CLK_SELECTION1, 12,
+					   3, 0, ast2600_emmc_extclk_div_table,
+					   &aspeed_g6_clk_lock);
 	if (IS_ERR(hw))
 		return PTR_ERR(hw);
 	aspeed_g6_clk_data->hws[ASPEED_CLK_EMMC] = hw;
@@ -528,7 +579,7 @@
 	regmap_write(map, 0x308, 0x12000); /* 3x3 = 9 */
 
 	/* P-Bus (BCLK) clock divider */
-	hw = clk_hw_register_divider_table(dev, "bclk", "hpll", 0,
+	hw = clk_hw_register_divider_table(dev, "bclk", "epll", 0,
 			scu_g6_base + ASPEED_G6_CLK_SELECTION1, 20, 3, 0,
 			ast2600_div_table,
 			&aspeed_g6_clk_lock);
@@ -599,14 +650,22 @@
 	2, 2, 3, 5,
 };
 
-static const u32 ast2600_a1_axi_ahb_div_table[] = {
-	4, 6, 2, 4,
+static const u32 ast2600_a1_axi_ahb_div0_tbl[] = {
+	3, 2, 3, 4,
+};
+
+static const u32 ast2600_a1_axi_ahb_div1_tbl[] = {
+	3, 4, 6, 8,
+};
+
+static const u32 ast2600_a1_axi_ahb200_tbl[] = {
+	3, 4, 3, 4, 2, 2, 2, 2,
 };
 
 static void __init aspeed_g6_cc(struct regmap *map)
 {
 	struct clk_hw *hw;
-	u32 val, div, chip_id, axi_div, ahb_div;
+	u32 val, div, divbits, axi_div, ahb_div;
 
 	clk_hw_register_fixed_rate(NULL, "clkin", NULL, 0, 25000000);
 
@@ -636,11 +695,21 @@
 	else
 		axi_div = 2;
 
-	regmap_read(map, ASPEED_G6_SILICON_REV, &chip_id);
-	if (chip_id & BIT(16))
-		ahb_div = ast2600_a1_axi_ahb_div_table[(val >> 11) & 0x3];
-	else
+	divbits = (val >> 11) & 0x3;
+	if (soc_rev >= 1) {
+		if (!divbits) {
+			ahb_div = ast2600_a1_axi_ahb200_tbl[(val >> 8) & 0x3];
+			if (val & BIT(16))
+				ahb_div *= 2;
+		} else {
+			if (val & BIT(16))
+				ahb_div = ast2600_a1_axi_ahb_div1_tbl[divbits];
+			else
+				ahb_div = ast2600_a1_axi_ahb_div0_tbl[divbits];
+		}
+	} else {
 		ahb_div = ast2600_a0_axi_ahb_div_table[(val >> 11) & 0x3];
+	}
 
 	hw = clk_hw_register_fixed_factor(NULL, "ahb", "hpll", 0, 1, axi_div * ahb_div);
 	aspeed_g6_clk_data->hws[ASPEED_CLK_AHB] = hw;
@@ -672,6 +741,8 @@
 	if (!scu_g6_base)
 		return;
 
+	soc_rev = (readl(scu_g6_base + ASPEED_G6_SILICON_REV) & CHIP_REVISION_ID) >> 16;
+
 	aspeed_g6_clk_data = kzalloc(struct_size(aspeed_g6_clk_data, hws,
 				      ASPEED_G6_NUM_CLKS), GFP_KERNEL);
 	if (!aspeed_g6_clk_data)
--- linux-ein-5.4.0.orig/drivers/clk/clk-cdce925.c
+++ linux-ein-5.4.0/drivers/clk/clk-cdce925.c
@@ -705,6 +705,10 @@
 	for (i = 0; i < data->chip_info->num_plls; ++i) {
 		pll_clk_name[i] = kasprintf(GFP_KERNEL, "%pOFn.pll%d",
 			client->dev.of_node, i);
+		if (!pll_clk_name[i]) {
+			err = -ENOMEM;
+			goto error;
+		}
 		init.name = pll_clk_name[i];
 		data->pll[i].chip = data;
 		data->pll[i].hw.init = &init;
@@ -746,6 +750,10 @@
 	init.num_parents = 1;
 	init.parent_names = &parent_name; /* Mux Y1 to input */
 	init.name = kasprintf(GFP_KERNEL, "%pOFn.Y1", client->dev.of_node);
+	if (!init.name) {
+		err = -ENOMEM;
+		goto error;
+	}
 	data->clk[0].chip = data;
 	data->clk[0].hw.init = &init;
 	data->clk[0].index = 0;
@@ -764,6 +772,10 @@
 	for (i = 1; i < data->chip_info->num_outputs; ++i) {
 		init.name = kasprintf(GFP_KERNEL, "%pOFn.Y%d",
 			client->dev.of_node, i+1);
+		if (!init.name) {
+			err = -ENOMEM;
+			goto error;
+		}
 		data->clk[i].chip = data;
 		data->clk[i].hw.init = &init;
 		data->clk[i].index = i;
--- linux-ein-5.4.0.orig/drivers/clk/clk-clps711x.c
+++ linux-ein-5.4.0/drivers/clk/clk-clps711x.c
@@ -28,11 +28,13 @@
 	{ .val = 1, .div = 8, },
 	{ .val = 2, .div = 2, },
 	{ .val = 3, .div = 1, },
+	{ /* sentinel */ }
 };
 
 static const struct clk_div_table timer_div_table[] = {
 	{ .val = 0, .div = 256, },
 	{ .val = 1, .div = 1, },
+	{ /* sentinel */ }
 };
 
 struct clps711x_clk {
--- linux-ein-5.4.0.orig/drivers/clk/clk-conf.c
+++ linux-ein-5.4.0/drivers/clk/clk-conf.c
@@ -33,9 +33,12 @@
 			else
 				return rc;
 		}
-		if (clkspec.np == node && !clk_supplier)
+		if (clkspec.np == node && !clk_supplier) {
+			of_node_put(clkspec.np);
 			return 0;
+		}
 		pclk = of_clk_get_from_provider(&clkspec);
+		of_node_put(clkspec.np);
 		if (IS_ERR(pclk)) {
 			if (PTR_ERR(pclk) != -EPROBE_DEFER)
 				pr_warn("clk: couldn't get parent clock %d for %pOF\n",
@@ -48,10 +51,12 @@
 		if (rc < 0)
 			goto err;
 		if (clkspec.np == node && !clk_supplier) {
+			of_node_put(clkspec.np);
 			rc = 0;
 			goto err;
 		}
 		clk = of_clk_get_from_provider(&clkspec);
+		of_node_put(clkspec.np);
 		if (IS_ERR(clk)) {
 			if (PTR_ERR(clk) != -EPROBE_DEFER)
 				pr_warn("clk: couldn't get assigned clock %d for %pOF\n",
@@ -93,10 +98,13 @@
 				else
 					return rc;
 			}
-			if (clkspec.np == node && !clk_supplier)
+			if (clkspec.np == node && !clk_supplier) {
+				of_node_put(clkspec.np);
 				return 0;
+			}
 
 			clk = of_clk_get_from_provider(&clkspec);
+			of_node_put(clkspec.np);
 			if (IS_ERR(clk)) {
 				if (PTR_ERR(clk) != -EPROBE_DEFER)
 					pr_warn("clk: couldn't get clock %d for %pOF\n",
--- linux-ein-5.4.0.orig/drivers/clk/clk-devres.c
+++ linux-ein-5.4.0/drivers/clk/clk-devres.c
@@ -4,42 +4,101 @@
 #include <linux/export.h>
 #include <linux/gfp.h>
 
+struct devm_clk_state {
+	struct clk *clk;
+	void (*exit)(struct clk *clk);
+};
+
 static void devm_clk_release(struct device *dev, void *res)
 {
-	clk_put(*(struct clk **)res);
+	struct devm_clk_state *state = res;
+
+	if (state->exit)
+		state->exit(state->clk);
+
+	clk_put(state->clk);
 }
 
-struct clk *devm_clk_get(struct device *dev, const char *id)
+static struct clk *__devm_clk_get(struct device *dev, const char *id,
+				  struct clk *(*get)(struct device *dev, const char *id),
+				  int (*init)(struct clk *clk),
+				  void (*exit)(struct clk *clk))
 {
-	struct clk **ptr, *clk;
+	struct devm_clk_state *state;
+	struct clk *clk;
+	int ret;
 
-	ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
-	if (!ptr)
+	state = devres_alloc(devm_clk_release, sizeof(*state), GFP_KERNEL);
+	if (!state)
 		return ERR_PTR(-ENOMEM);
 
-	clk = clk_get(dev, id);
-	if (!IS_ERR(clk)) {
-		*ptr = clk;
-		devres_add(dev, ptr);
-	} else {
-		devres_free(ptr);
+	clk = get(dev, id);
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		goto err_clk_get;
+	}
+
+	if (init) {
+		ret = init(clk);
+		if (ret)
+			goto err_clk_init;
 	}
 
+	state->clk = clk;
+	state->exit = exit;
+
+	devres_add(dev, state);
+
 	return clk;
+
+err_clk_init:
+
+	clk_put(clk);
+err_clk_get:
+
+	devres_free(state);
+	return ERR_PTR(ret);
+}
+
+struct clk *devm_clk_get(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get, NULL, NULL);
 }
 EXPORT_SYMBOL(devm_clk_get);
 
-struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+struct clk *devm_clk_get_prepared(struct device *dev, const char *id)
 {
-	struct clk *clk = devm_clk_get(dev, id);
+	return __devm_clk_get(dev, id, clk_get, clk_prepare, clk_unprepare);
+}
+EXPORT_SYMBOL_GPL(devm_clk_get_prepared);
 
-	if (clk == ERR_PTR(-ENOENT))
-		return NULL;
+struct clk *devm_clk_get_enabled(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get,
+			      clk_prepare_enable, clk_disable_unprepare);
+}
+EXPORT_SYMBOL_GPL(devm_clk_get_enabled);
 
-	return clk;
+struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get_optional, NULL, NULL);
 }
 EXPORT_SYMBOL(devm_clk_get_optional);
 
+struct clk *devm_clk_get_optional_prepared(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get_optional,
+			      clk_prepare, clk_unprepare);
+}
+EXPORT_SYMBOL_GPL(devm_clk_get_optional_prepared);
+
+struct clk *devm_clk_get_optional_enabled(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get_optional,
+			      clk_prepare_enable, clk_disable_unprepare);
+}
+EXPORT_SYMBOL_GPL(devm_clk_get_optional_enabled);
+
 struct clk_bulk_devres {
 	struct clk_bulk_data *clks;
 	int num_clks;
@@ -92,13 +151,20 @@
 }
 EXPORT_SYMBOL_GPL(devm_clk_bulk_get_optional);
 
+static void devm_clk_bulk_release_all(struct device *dev, void *res)
+{
+	struct clk_bulk_devres *devres = res;
+
+	clk_bulk_put_all(devres->num_clks, devres->clks);
+}
+
 int __must_check devm_clk_bulk_get_all(struct device *dev,
 				       struct clk_bulk_data **clks)
 {
 	struct clk_bulk_devres *devres;
 	int ret;
 
-	devres = devres_alloc(devm_clk_bulk_release,
+	devres = devres_alloc(devm_clk_bulk_release_all,
 			      sizeof(*devres), GFP_KERNEL);
 	if (!devres)
 		return -ENOMEM;
@@ -139,18 +205,19 @@
 struct clk *devm_get_clk_from_child(struct device *dev,
 				    struct device_node *np, const char *con_id)
 {
-	struct clk **ptr, *clk;
+	struct devm_clk_state *state;
+	struct clk *clk;
 
-	ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
-	if (!ptr)
+	state = devres_alloc(devm_clk_release, sizeof(*state), GFP_KERNEL);
+	if (!state)
 		return ERR_PTR(-ENOMEM);
 
 	clk = of_clk_get_by_name(np, con_id);
 	if (!IS_ERR(clk)) {
-		*ptr = clk;
-		devres_add(dev, ptr);
+		state->clk = clk;
+		devres_add(dev, state);
 	} else {
-		devres_free(ptr);
+		devres_free(state);
 	}
 
 	return clk;
--- linux-ein-5.4.0.orig/drivers/clk/clk-gate.c
+++ linux-ein-5.4.0/drivers/clk/clk-gate.c
@@ -56,7 +56,7 @@
 {
 	struct clk_gate *gate = to_clk_gate(hw);
 	int set = gate->flags & CLK_GATE_SET_TO_DISABLE ? 1 : 0;
-	unsigned long uninitialized_var(flags);
+	unsigned long flags;
 	u32 reg;
 
 	set ^= enable;
--- linux-ein-5.4.0.orig/drivers/clk/clk-gpio.c
+++ linux-ein-5.4.0/drivers/clk/clk-gpio.c
@@ -280,7 +280,7 @@
 	else
 		clk = clk_register_gpio_gate(&pdev->dev, node->name,
 				parent_names ?  parent_names[0] : NULL, gpiod,
-				0);
+				CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk))
 		return PTR_ERR(clk);
 
--- linux-ein-5.4.0.orig/drivers/clk/clk-oxnas.c
+++ linux-ein-5.4.0/drivers/clk/clk-oxnas.c
@@ -207,7 +207,7 @@
 
 static int oxnas_stdclk_probe(struct platform_device *pdev)
 {
-	struct device_node *np = pdev->dev.of_node;
+	struct device_node *np = pdev->dev.of_node, *parent_np;
 	const struct oxnas_stdclk_data *data;
 	const struct of_device_id *id;
 	struct regmap *regmap;
@@ -219,7 +219,9 @@
 		return -ENODEV;
 	data = id->data;
 
-	regmap = syscon_node_to_regmap(of_get_parent(np));
+	parent_np = of_get_parent(np);
+	regmap = syscon_node_to_regmap(parent_np);
+	of_node_put(parent_np);
 	if (IS_ERR(regmap)) {
 		dev_err(&pdev->dev, "failed to have parent regmap\n");
 		return PTR_ERR(regmap);
--- linux-ein-5.4.0.orig/drivers/clk/clk-s2mps11.c
+++ linux-ein-5.4.0/drivers/clk/clk-s2mps11.c
@@ -195,6 +195,7 @@
 	return ret;
 
 err_reg:
+	of_node_put(s2mps11_clks[0].clk_np);
 	while (--i >= 0)
 		clkdev_drop(s2mps11_clks[i].lookup);
 
--- linux-ein-5.4.0.orig/drivers/clk/clk-scmi.c
+++ linux-ein-5.4.0/drivers/clk/clk-scmi.c
@@ -103,6 +103,8 @@
 static int scmi_clk_ops_init(struct device *dev, struct scmi_clk *sclk)
 {
 	int ret;
+	unsigned long min_rate, max_rate;
+
 	struct clk_init_data init = {
 		.flags = CLK_GET_RATE_NOCACHE,
 		.num_parents = 0,
@@ -112,9 +114,23 @@
 
 	sclk->hw.init = &init;
 	ret = devm_clk_hw_register(dev, &sclk->hw);
-	if (!ret)
-		clk_hw_set_rate_range(&sclk->hw, sclk->info->range.min_rate,
-				      sclk->info->range.max_rate);
+	if (ret)
+		return ret;
+
+	if (sclk->info->rate_discrete) {
+		int num_rates = sclk->info->list.num_rates;
+
+		if (num_rates <= 0)
+			return -EINVAL;
+
+		min_rate = sclk->info->list.rates[0];
+		max_rate = sclk->info->list.rates[num_rates - 1];
+	} else {
+		min_rate = sclk->info->range.min_rate;
+		max_rate = sclk->info->range.max_rate;
+	}
+
+	clk_hw_set_rate_range(&sclk->hw, min_rate, max_rate);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/clk/clk-si5341.c
+++ linux-ein-5.4.0/drivers/clk/clk-si5341.c
@@ -304,6 +304,8 @@
 	{ 0x094A, 0x00 }, /* INx_TO_PFD_EN (disabled) */
 	{ 0x0A02, 0x00 }, /* Not in datasheet */
 	{ 0x0B44, 0x0F }, /* PDIV_ENB (datasheet does not mention what it is) */
+	{ 0x0B57, 0x10 }, /* VCO_RESET_CALCODE (not described in datasheet) */
+	{ 0x0B58, 0x05 }, /* VCO_RESET_CALCODE (not described in datasheet) */
 };
 
 /* Read and interpret a 44-bit followed by a 32-bit value in the regmap */
@@ -482,6 +484,9 @@
 			SI5341_SYNTH_N_NUM(synth->index), &n_num, &n_den);
 	if (err < 0)
 		return err;
+	/* Check for bogus/uninitialized settings */
+	if (!n_num || !n_den)
+		return 0;
 
 	/*
 	 * n_num and n_den are shifted left as much as possible, so to prevent
@@ -633,6 +638,15 @@
 	u32 r_divider;
 	u8 r[3];
 
+	err = regmap_read(output->data->regmap,
+			SI5341_OUT_CONFIG(output), &val);
+	if (err < 0)
+		return err;
+
+	/* If SI5341_OUT_CFG_RDIV_FORCE2 is set, r_divider is 2 */
+	if (val & SI5341_OUT_CFG_RDIV_FORCE2)
+		return parent_rate / 2;
+
 	err = regmap_bulk_read(output->data->regmap,
 			SI5341_OUT_R_REG(output), r, 3);
 	if (err < 0)
@@ -649,13 +663,6 @@
 	r_divider += 1;
 	r_divider <<= 1;
 
-	err = regmap_read(output->data->regmap,
-			SI5341_OUT_CONFIG(output), &val);
-	if (err < 0)
-		return err;
-
-	if (val & SI5341_OUT_CFG_RDIV_FORCE2)
-		r_divider = 2;
 
 	return parent_rate / r_divider;
 }
@@ -665,6 +672,9 @@
 {
 	unsigned long r;
 
+	if (!rate)
+		return 0;
+
 	r = *parent_rate >> 1;
 
 	/* If rate is an even divisor, no changes to parent required */
@@ -693,11 +703,16 @@
 		unsigned long parent_rate)
 {
 	struct clk_si5341_output *output = to_clk_si5341_output(hw);
-	/* Frequency divider is (r_div + 1) * 2 */
-	u32 r_div = (parent_rate / rate) >> 1;
+	u32 r_div;
 	int err;
 	u8 r[3];
 
+	if (!rate)
+		return -EINVAL;
+
+	/* Frequency divider is (r_div + 1) * 2 */
+	r_div = (parent_rate / rate) >> 1;
+
 	if (r_div <= 1)
 		r_div = 0;
 	else if (r_div >= BIT(24))
@@ -924,7 +939,7 @@
 	{ 0x0B25, 0x00 },
 	{ 0x0502, 0x01 },
 	{ 0x0505, 0x03 },
-	{ 0x0957, 0x1F },
+	{ 0x0957, 0x17 },
 	{ 0x0B4E, 0x1A },
 };
 
@@ -1290,7 +1305,7 @@
 			clk_prepare(data->clk[i].hw.clk);
 	}
 
-	err = of_clk_add_hw_provider(client->dev.of_node, of_clk_si5341_get,
+	err = devm_of_clk_add_hw_provider(&client->dev, of_clk_si5341_get,
 			data);
 	if (err) {
 		dev_err(&client->dev, "unable to add clk provider\n");
--- linux-ein-5.4.0.orig/drivers/clk/clk-stm32f4.c
+++ linux-ein-5.4.0/drivers/clk/clk-stm32f4.c
@@ -129,7 +129,6 @@
 	{ STM32F4_RCC_APB2ENR, 20,	"spi5",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 };
 
 static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
@@ -211,7 +210,6 @@
 	{ STM32F4_RCC_APB2ENR, 20,	"spi5",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 };
 
 static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
@@ -286,7 +284,6 @@
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 23,	"sai2",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 };
 
 static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
@@ -364,7 +361,6 @@
 	{ STM32F4_RCC_APB2ENR, 21,	"spi6",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 22,	"sai1",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 23,	"sai2",		"apb2_div" },
-	{ STM32F4_RCC_APB2ENR, 26,	"ltdc",		"apb2_div" },
 	{ STM32F4_RCC_APB2ENR, 30,	"mdio",		"apb2_div" },
 };
 
@@ -526,7 +522,7 @@
 
 struct stm32f4_pll_post_div_data {
 	int idx;
-	u8 pll_num;
+	int pll_idx;
 	const char *name;
 	const char *parent;
 	u8 flag;
@@ -557,13 +553,13 @@
 
 #define MAX_POST_DIV 3
 static const struct stm32f4_pll_post_div_data  post_div_data[MAX_POST_DIV] = {
-	{ CLK_I2SQ_PDIV, PLL_I2S, "plli2s-q-div", "plli2s-q",
+	{ CLK_I2SQ_PDIV, PLL_VCO_I2S, "plli2s-q-div", "plli2s-q",
 		CLK_SET_RATE_PARENT, STM32F4_RCC_DCKCFGR, 0, 5, 0, NULL},
 
-	{ CLK_SAIQ_PDIV, PLL_SAI, "pllsai-q-div", "pllsai-q",
+	{ CLK_SAIQ_PDIV, PLL_VCO_SAI, "pllsai-q-div", "pllsai-q",
 		CLK_SET_RATE_PARENT, STM32F4_RCC_DCKCFGR, 8, 5, 0, NULL },
 
-	{ NO_IDX, PLL_SAI, "pllsai-r-div", "pllsai-r", CLK_SET_RATE_PARENT,
+	{ NO_IDX, PLL_VCO_SAI, "pllsai-r-div", "pllsai-r", CLK_SET_RATE_PARENT,
 		STM32F4_RCC_DCKCFGR, 16, 2, 0, post_divr_table },
 };
 
@@ -1774,7 +1770,7 @@
 				post_div->width,
 				post_div->flag_div,
 				post_div->div_table,
-				clks[post_div->pll_num],
+				clks[post_div->pll_idx],
 				&stm32f4_clk_lock);
 
 		if (post_div->idx != NO_IDX)
--- linux-ein-5.4.0.orig/drivers/clk/clk.c
+++ linux-ein-5.4.0/drivers/clk/clk.c
@@ -114,7 +114,11 @@
 		return 0;
 
 	ret = pm_runtime_get_sync(core->dev);
-	return ret < 0 ? ret : 0;
+	if (ret < 0) {
+		pm_runtime_put_noidle(core->dev);
+		return ret;
+	}
+	return 0;
 }
 
 static void clk_pm_runtime_put(struct clk_core *core)
@@ -247,6 +251,17 @@
 		}
 	}
 
+	/*
+	 * This could be called with the enable lock held, or from atomic
+	 * context. If the parent isn't enabled already, we can't do
+	 * anything here. We can also assume this clock isn't enabled.
+	 */
+	if ((core->flags & CLK_OPS_PARENT_ENABLE) && core->parent)
+		if (!clk_core_is_enabled(core->parent)) {
+			ret = false;
+			goto done;
+		}
+
 	ret = core->ops->is_enabled(core->hw);
 done:
 	if (core->rpm_enabled)
@@ -633,6 +648,24 @@
 		*max_rate = min(*max_rate, clk_user->max_rate);
 }
 
+static bool clk_core_check_boundaries(struct clk_core *core,
+				      unsigned long min_rate,
+				      unsigned long max_rate)
+{
+	struct clk *user;
+
+	lockdep_assert_held(&prepare_lock);
+
+	if (min_rate > core->max_rate || max_rate < core->min_rate)
+		return false;
+
+	hlist_for_each_entry(user, &core->clks, clks_node)
+		if (min_rate > user->max_rate || max_rate < user->min_rate)
+			return false;
+
+	return true;
+}
+
 void clk_hw_set_rate_range(struct clk_hw *hw, unsigned long min_rate,
 			   unsigned long max_rate)
 {
@@ -830,10 +863,9 @@
 	if (core->ops->unprepare)
 		core->ops->unprepare(core->hw);
 
-	clk_pm_runtime_put(core);
-
 	trace_clk_unprepare_complete(core);
 	clk_core_unprepare(core->parent);
+	clk_pm_runtime_put(core);
 }
 
 static void clk_core_unprepare_lock(struct clk_core *core)
@@ -2302,6 +2334,11 @@
 	clk->min_rate = min;
 	clk->max_rate = max;
 
+	if (!clk_core_check_boundaries(clk->core, min, max)) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	rate = clk_core_get_rate_nolock(clk->core);
 	if (rate < min || rate > max) {
 		/*
@@ -2330,6 +2367,7 @@
 		}
 	}
 
+out:
 	if (clk->exclusive_count)
 		clk_core_rate_protect(clk->core);
 
@@ -2642,12 +2680,14 @@
 {
 	int ret;
 
-	clk_prepare_lock();
+	lockdep_assert_held(&prepare_lock);
+	if (!core->ops->get_phase)
+		return 0;
+
 	/* Always try to update cached phase if possible */
-	if (core->ops->get_phase)
-		core->phase = core->ops->get_phase(core->hw);
-	ret = core->phase;
-	clk_prepare_unlock();
+	ret = core->ops->get_phase(core->hw);
+	if (ret >= 0)
+		core->phase = ret;
 
 	return ret;
 }
@@ -2661,10 +2701,16 @@
  */
 int clk_get_phase(struct clk *clk)
 {
+	int ret;
+
 	if (!clk)
 		return 0;
 
-	return clk_core_get_phase(clk->core);
+	clk_prepare_lock();
+	ret = clk_core_get_phase(clk->core);
+	clk_prepare_unlock();
+
+	return ret;
 }
 EXPORT_SYMBOL_GPL(clk_get_phase);
 
@@ -2878,13 +2924,21 @@
 static void clk_summary_show_one(struct seq_file *s, struct clk_core *c,
 				 int level)
 {
-	seq_printf(s, "%*s%-*s %7d %8d %8d %11lu %10lu %5d %6d\n",
+	int phase;
+
+	seq_printf(s, "%*s%-*s %7d %8d %8d %11lu %10lu ",
 		   level * 3 + 1, "",
 		   30 - level * 3, c->name,
 		   c->enable_count, c->prepare_count, c->protect_count,
-		   clk_core_get_rate(c), clk_core_get_accuracy(c),
-		   clk_core_get_phase(c),
-		   clk_core_get_scaled_duty_cycle(c, 100000));
+		   clk_core_get_rate(c), clk_core_get_accuracy(c));
+
+	phase = clk_core_get_phase(c);
+	if (phase >= 0)
+		seq_printf(s, "%5d", phase);
+	else
+		seq_puts(s, "-----");
+
+	seq_printf(s, " %6d\n", clk_core_get_scaled_duty_cycle(c, 100000));
 }
 
 static void clk_summary_show_subtree(struct seq_file *s, struct clk_core *c,
@@ -2921,6 +2975,7 @@
 
 static void clk_dump_one(struct seq_file *s, struct clk_core *c, int level)
 {
+	int phase;
 	unsigned long min_rate, max_rate;
 
 	clk_core_get_boundaries(c, &min_rate, &max_rate);
@@ -2934,7 +2989,9 @@
 	seq_printf(s, "\"min_rate\": %lu,", min_rate);
 	seq_printf(s, "\"max_rate\": %lu,", max_rate);
 	seq_printf(s, "\"accuracy\": %lu,", clk_core_get_accuracy(c));
-	seq_printf(s, "\"phase\": %d,", clk_core_get_phase(c));
+	phase = clk_core_get_phase(c);
+	if (phase >= 0)
+		seq_printf(s, "\"phase\": %d,", phase);
 	seq_printf(s, "\"duty_cycle\": %u",
 		   clk_core_get_scaled_duty_cycle(c, 100000));
 }
@@ -3231,6 +3288,47 @@
 }
 #endif
 
+static void clk_core_reparent_orphans_nolock(void)
+{
+	struct clk_core *orphan;
+	struct hlist_node *tmp2;
+
+	/*
+	 * walk the list of orphan clocks and reparent any that newly finds a
+	 * parent.
+	 */
+	hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) {
+		struct clk_core *parent = __clk_init_parent(orphan);
+
+		/*
+		 * We need to use __clk_set_parent_before() and _after() to
+		 * to properly migrate any prepare/enable count of the orphan
+		 * clock. This is important for CLK_IS_CRITICAL clocks, which
+		 * are enabled during init but might not have a parent yet.
+		 */
+		if (parent) {
+			/* update the clk tree topology */
+			__clk_set_parent_before(orphan, parent);
+			__clk_set_parent_after(orphan, parent, NULL);
+			__clk_recalc_accuracies(orphan);
+			__clk_recalc_rates(orphan, 0);
+
+			/*
+			 * __clk_init_parent() will set the initial req_rate to
+			 * 0 if the clock doesn't have clk_ops::recalc_rate and
+			 * is an orphan when it's registered.
+			 *
+			 * 'req_rate' is used by clk_set_rate_range() and
+			 * clk_put() to trigger a clk_set_rate() call whenever
+			 * the boundaries are modified. Let's make sure
+			 * 'req_rate' is set to something non-zero so that
+			 * clk_set_rate_range() doesn't drop the frequency.
+			 */
+			orphan->req_rate = orphan->rate;
+		}
+	}
+}
+
 /**
  * __clk_core_init - initialize the data structures in a struct clk_core
  * @core:	clk_core being initialized
@@ -3241,8 +3339,6 @@
 static int __clk_core_init(struct clk_core *core)
 {
 	int ret;
-	struct clk_core *orphan;
-	struct hlist_node *tmp2;
 	unsigned long rate;
 
 	if (!core)
@@ -3250,6 +3346,14 @@
 
 	clk_prepare_lock();
 
+	/*
+	 * Set hw->core after grabbing the prepare_lock to synchronize with
+	 * callers of clk_core_fill_parent_index() where we treat hw->core
+	 * being NULL as the clk not being registered yet. This is crucial so
+	 * that clks aren't parented until their parent is fully registered.
+	 */
+	core->hw->core = core;
+
 	ret = clk_pm_runtime_get(core);
 	if (ret)
 		goto unlock;
@@ -3294,6 +3398,21 @@
 		goto out;
 	}
 
+	/*
+	 * optional platform-specific magic
+	 *
+	 * The .init callback is not used by any of the basic clock types, but
+	 * exists for weird hardware that must perform initialization magic.
+	 * Please consider other ways of solving initialization problems before
+	 * using this callback, as its use is discouraged.
+	 *
+	 * If it exist, this callback should called before any other callback of
+	 * the clock
+	 */
+	if (core->ops->init)
+		core->ops->init(core->hw);
+
+
 	core->parent = __clk_init_parent(core);
 
 	/*
@@ -3319,17 +3438,6 @@
 	}
 
 	/*
-	 * optional platform-specific magic
-	 *
-	 * The .init callback is not used by any of the basic clock types, but
-	 * exists for weird hardware that must perform initialization magic.
-	 * Please consider other ways of solving initialization problems before
-	 * using this callback, as its use is discouraged.
-	 */
-	if (core->ops->init)
-		core->ops->init(core->hw);
-
-	/*
 	 * Set clk's accuracy.  The preferred method is to use
 	 * .recalc_accuracy. For simple clocks and lazy developers the default
 	 * fallback is to use the parent's accuracy.  If a clock doesn't have a
@@ -3345,14 +3453,11 @@
 		core->accuracy = 0;
 
 	/*
-	 * Set clk's phase.
+	 * Set clk's phase by clk_core_get_phase() caching the phase.
 	 * Since a phase is by definition relative to its parent, just
 	 * query the current clock phase, or just assume it's in phase.
 	 */
-	if (core->ops->get_phase)
-		core->phase = core->ops->get_phase(core->hw);
-	else
-		core->phase = 0;
+	clk_core_get_phase(core);
 
 	/*
 	 * Set clk's duty cycle.
@@ -3382,39 +3487,31 @@
 	if (core->flags & CLK_IS_CRITICAL) {
 		unsigned long flags;
 
-		clk_core_prepare(core);
+		ret = clk_core_prepare(core);
+		if (ret)
+			goto out;
 
 		flags = clk_enable_lock();
-		clk_core_enable(core);
+		ret = clk_core_enable(core);
 		clk_enable_unlock(flags);
+		if (ret) {
+			clk_core_unprepare(core);
+			goto out;
+		}
 	}
 
-	/*
-	 * walk the list of orphan clocks and reparent any that newly finds a
-	 * parent.
-	 */
-	hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) {
-		struct clk_core *parent = __clk_init_parent(orphan);
+	clk_core_reparent_orphans_nolock();
 
-		/*
-		 * We need to use __clk_set_parent_before() and _after() to
-		 * to properly migrate any prepare/enable count of the orphan
-		 * clock. This is important for CLK_IS_CRITICAL clocks, which
-		 * are enabled during init but might not have a parent yet.
-		 */
-		if (parent) {
-			/* update the clk tree topology */
-			__clk_set_parent_before(orphan, parent);
-			__clk_set_parent_after(orphan, parent, NULL);
-			__clk_recalc_accuracies(orphan);
-			__clk_recalc_rates(orphan, 0);
-		}
-	}
 
 	kref_init(&core->ref);
 out:
 	clk_pm_runtime_put(core);
 unlock:
+	if (ret) {
+		hlist_del_init(&core->child_node);
+		core->hw->core = NULL;
+	}
+
 	clk_prepare_unlock();
 
 	if (!ret)
@@ -3659,7 +3756,6 @@
 	core->num_parents = init->num_parents;
 	core->min_rate = 0;
 	core->max_rate = ULONG_MAX;
-	hw->core = core;
 
 	ret = clk_core_populate_parent_map(core, init);
 	if (ret)
@@ -3677,7 +3773,7 @@
 		goto fail_create_clk;
 	}
 
-	clk_core_link_consumer(hw->core, hw->clk);
+	clk_core_link_consumer(core, hw->clk);
 
 	ret = __clk_core_init(core);
 	if (!ret)
@@ -3702,6 +3798,28 @@
 }
 
 /**
+ * dev_or_parent_of_node() - Get device node of @dev or @dev's parent
+ * @dev: Device to get device node of
+ *
+ * Return: device node pointer of @dev, or the device node pointer of
+ * @dev->parent if dev doesn't have a device node, or NULL if neither
+ * @dev or @dev->parent have a device node.
+ */
+static struct device_node *dev_or_parent_of_node(struct device *dev)
+{
+	struct device_node *np;
+
+	if (!dev)
+		return NULL;
+
+	np = dev_of_node(dev);
+	if (!np)
+		np = dev_of_node(dev->parent);
+
+	return np;
+}
+
+/**
  * clk_register - allocate a new clock, register it and return an opaque cookie
  * @dev: device that is registering this clock
  * @hw: link to hardware-specific clock data
@@ -3716,7 +3834,7 @@
  */
 struct clk *clk_register(struct device *dev, struct clk_hw *hw)
 {
-	return __clk_register(dev, dev_of_node(dev), hw);
+	return __clk_register(dev, dev_or_parent_of_node(dev), hw);
 }
 EXPORT_SYMBOL_GPL(clk_register);
 
@@ -3732,7 +3850,8 @@
  */
 int clk_hw_register(struct device *dev, struct clk_hw *hw)
 {
-	return PTR_ERR_OR_ZERO(__clk_register(dev, dev_of_node(dev), hw));
+	return PTR_ERR_OR_ZERO(__clk_register(dev, dev_or_parent_of_node(dev),
+			       hw));
 }
 EXPORT_SYMBOL_GPL(clk_hw_register);
 
@@ -3879,6 +3998,7 @@
 					__func__, clk->core->name);
 
 	kref_put(&clk->core->ref, __clk_release);
+	free_clk(clk);
 unlock:
 	clk_prepare_unlock();
 }
@@ -4087,20 +4207,19 @@
 	/* search the list of notifiers for this clk */
 	list_for_each_entry(cn, &clk_notifier_list, node)
 		if (cn->clk == clk)
-			break;
+			goto found;
 
 	/* if clk wasn't in the notifier list, allocate new clk_notifier */
-	if (cn->clk != clk) {
-		cn = kzalloc(sizeof(*cn), GFP_KERNEL);
-		if (!cn)
-			goto out;
+	cn = kzalloc(sizeof(*cn), GFP_KERNEL);
+	if (!cn)
+		goto out;
 
-		cn->clk = clk;
-		srcu_init_notifier_head(&cn->notifier_head);
+	cn->clk = clk;
+	srcu_init_notifier_head(&cn->notifier_head);
 
-		list_add(&cn->node, &clk_notifier_list);
-	}
+	list_add(&cn->node, &clk_notifier_list);
 
+found:
 	ret = srcu_notifier_chain_register(&cn->notifier_head, nb);
 
 	clk->core->notifier_count++;
@@ -4125,32 +4244,28 @@
  */
 int clk_notifier_unregister(struct clk *clk, struct notifier_block *nb)
 {
-	struct clk_notifier *cn = NULL;
-	int ret = -EINVAL;
+	struct clk_notifier *cn;
+	int ret = -ENOENT;
 
 	if (!clk || !nb)
 		return -EINVAL;
 
 	clk_prepare_lock();
 
-	list_for_each_entry(cn, &clk_notifier_list, node)
-		if (cn->clk == clk)
-			break;
-
-	if (cn->clk == clk) {
-		ret = srcu_notifier_chain_unregister(&cn->notifier_head, nb);
+	list_for_each_entry(cn, &clk_notifier_list, node) {
+		if (cn->clk == clk) {
+			ret = srcu_notifier_chain_unregister(&cn->notifier_head, nb);
 
-		clk->core->notifier_count--;
+			clk->core->notifier_count--;
 
-		/* XXX the notifier code should handle this better */
-		if (!cn->notifier_head.head) {
-			srcu_cleanup_notifier_head(&cn->notifier_head);
-			list_del(&cn->node);
-			kfree(cn);
+			/* XXX the notifier code should handle this better */
+			if (!cn->notifier_head.head) {
+				srcu_cleanup_notifier_head(&cn->notifier_head);
+				list_del(&cn->node);
+				kfree(cn);
+			}
+			break;
 		}
-
-	} else {
-		ret = -ENOENT;
 	}
 
 	clk_prepare_unlock();
@@ -4160,6 +4275,13 @@
 EXPORT_SYMBOL_GPL(clk_notifier_unregister);
 
 #ifdef CONFIG_OF
+static void clk_core_reparent_orphans(void)
+{
+	clk_prepare_lock();
+	clk_core_reparent_orphans_nolock();
+	clk_prepare_unlock();
+}
+
 /**
  * struct of_clk_provider - Clock provider registration structure
  * @link: Entry in global list of clock providers
@@ -4255,6 +4377,8 @@
 	mutex_unlock(&of_clk_mutex);
 	pr_debug("Added clock from %pOF\n", np);
 
+	clk_core_reparent_orphans();
+
 	ret = of_clk_set_defaults(np, true);
 	if (ret < 0)
 		of_clk_del_provider(np);
@@ -4290,6 +4414,8 @@
 	mutex_unlock(&of_clk_mutex);
 	pr_debug("Added clk_hw provider from %pOF\n", np);
 
+	clk_core_reparent_orphans();
+
 	ret = of_clk_set_defaults(np, true);
 	if (ret < 0)
 		of_clk_del_provider(np);
--- linux-ein-5.4.0.orig/drivers/clk/davinci/pll.c
+++ linux-ein-5.4.0/drivers/clk/davinci/pll.c
@@ -491,7 +491,7 @@
 		parent_name = postdiv_name;
 	}
 
-	pllen = kzalloc(sizeof(*pllout), GFP_KERNEL);
+	pllen = kzalloc(sizeof(*pllen), GFP_KERNEL);
 	if (!pllen) {
 		ret = -ENOMEM;
 		goto err_unregister_postdiv;
--- linux-ein-5.4.0.orig/drivers/clk/imx/Kconfig
+++ linux-ein-5.4.0/drivers/clk/imx/Kconfig
@@ -1,34 +1,104 @@
 # SPDX-License-Identifier: GPL-2.0
 # common clock support for NXP i.MX SoC family.
 config MXC_CLK
-	bool
-	def_bool ARCH_MXC
+	tristate "IMX clock"
+	depends on ARCH_MXC || COMPILE_TEST
 
 config MXC_CLK_SCU
-	bool
-	depends on IMX_SCU
+	tristate
+
+config CLK_IMX1
+	def_bool SOC_IMX1
+	select MXC_CLK
+
+config CLK_IMX21
+	def_bool SOC_IMX21
+	select MXC_CLK
+
+config CLK_IMX25
+	def_bool SOC_IMX25
+	select MXC_CLK
+
+config CLK_IMX27
+	def_bool SOC_IMX27
+	select MXC_CLK
+
+config CLK_IMX31
+	def_bool SOC_IMX31
+	select MXC_CLK
+
+config CLK_IMX35
+	def_bool SOC_IMX35
+	select MXC_CLK
+
+config CLK_IMX5
+	def_bool SOC_IMX5
+	select MXC_CLK
+
+config CLK_IMX6Q
+	def_bool SOC_IMX6Q
+	select MXC_CLK
+
+config CLK_IMX6SL
+	def_bool SOC_IMX6SL
+	select MXC_CLK
+
+config CLK_IMX6SLL
+	def_bool SOC_IMX6SLL
+	select MXC_CLK
+
+config CLK_IMX6SX
+	def_bool SOC_IMX6SX
+	select MXC_CLK
+
+config CLK_IMX6UL
+	def_bool SOC_IMX6UL
+	select MXC_CLK
+
+config CLK_IMX7D
+	def_bool SOC_IMX7D
+	select MXC_CLK
+
+config CLK_IMX7ULP
+	def_bool SOC_IMX7ULP
+	select MXC_CLK
+
+config CLK_VF610
+	def_bool SOC_VF610
+	select MXC_CLK
 
 config CLK_IMX8MM
-	bool "IMX8MM CCM Clock Driver"
-	depends on ARCH_MXC && ARM64
+	tristate "IMX8MM CCM Clock Driver"
+	depends on ARCH_MXC || COMPILE_TEST
+	select MXC_CLK
 	help
 	    Build the driver for i.MX8MM CCM Clock Driver
 
 config CLK_IMX8MN
-	bool "IMX8MN CCM Clock Driver"
-	depends on ARCH_MXC && ARM64
+	tristate "IMX8MN CCM Clock Driver"
+	depends on ARCH_MXC || COMPILE_TEST
+	select MXC_CLK
 	help
 	    Build the driver for i.MX8MN CCM Clock Driver
 
+config CLK_IMX8MP
+	tristate "IMX8MP CCM Clock Driver"
+	depends on ARCH_MXC || COMPILE_TEST
+	select MXC_CLK
+	help
+	    Build the driver for i.MX8MP CCM Clock Driver
+
 config CLK_IMX8MQ
-	bool "IMX8MQ CCM Clock Driver"
-	depends on ARCH_MXC && ARM64
+	tristate "IMX8MQ CCM Clock Driver"
+	depends on ARCH_MXC || COMPILE_TEST
+	select MXC_CLK
 	help
 	    Build the driver for i.MX8MQ CCM Clock Driver
 
 config CLK_IMX8QXP
-	bool "IMX8QXP SCU Clock"
-	depends on ARCH_MXC && IMX_SCU && ARM64
+	tristate "IMX8QXP SCU Clock"
+	depends on (ARCH_MXC && ARM64) || COMPILE_TEST
+	depends on IMX_SCU && HAVE_ARM_SMCCC
 	select MXC_CLK_SCU
 	help
 	  Build the driver for IMX8QXP SCU based clocks.
--- linux-ein-5.4.0.orig/drivers/clk/imx/Makefile
+++ linux-ein-5.4.0/drivers/clk/imx/Makefile
@@ -1,47 +1,47 @@
 # SPDX-License-Identifier: GPL-2.0
 
-obj-$(CONFIG_MXC_CLK) += \
-	clk.o \
-	clk-busy.o \
-	clk-composite-8m.o \
-	clk-cpu.o \
-	clk-composite-7ulp.o \
-	clk-divider-gate.o \
-	clk-fixup-div.o \
-	clk-fixup-mux.o \
-	clk-frac-pll.o \
-	clk-gate-exclusive.o \
-	clk-gate2.o \
-	clk-pfd.o \
-	clk-pfdv2.o \
-	clk-pllv1.o \
-	clk-pllv2.o \
-	clk-pllv3.o \
-	clk-pllv4.o \
-	clk-sccg-pll.o \
-	clk-pll14xx.o
-
-obj-$(CONFIG_MXC_CLK_SCU) += \
-	clk-scu.o \
-	clk-lpcg-scu.o
+mxc-clk-objs += clk.o
+mxc-clk-objs += clk-busy.o
+mxc-clk-objs += clk-composite-7ulp.o
+mxc-clk-objs += clk-composite-8m.o
+mxc-clk-objs += clk-cpu.o
+mxc-clk-objs += clk-divider-gate.o
+mxc-clk-objs += clk-fixup-div.o
+mxc-clk-objs += clk-fixup-mux.o
+mxc-clk-objs += clk-frac-pll.o
+mxc-clk-objs += clk-gate2.o
+mxc-clk-objs += clk-gate-exclusive.o
+mxc-clk-objs += clk-pfd.o
+mxc-clk-objs += clk-pfdv2.o
+mxc-clk-objs += clk-pllv1.o
+mxc-clk-objs += clk-pllv2.o
+mxc-clk-objs += clk-pllv3.o
+mxc-clk-objs += clk-pllv4.o
+mxc-clk-objs += clk-pll14xx.o
+mxc-clk-objs += clk-sscg-pll.o
+obj-$(CONFIG_MXC_CLK) += mxc-clk.o
 
 obj-$(CONFIG_CLK_IMX8MM) += clk-imx8mm.o
 obj-$(CONFIG_CLK_IMX8MN) += clk-imx8mn.o
+obj-$(CONFIG_CLK_IMX8MP) += clk-imx8mp.o clk-audiomix.o clk-hdmimix.o clk-gate-shared.o
 obj-$(CONFIG_CLK_IMX8MQ) += clk-imx8mq.o
-obj-$(CONFIG_CLK_IMX8QXP) += clk-imx8qxp.o clk-imx8qxp-lpcg.o
 
-obj-$(CONFIG_SOC_IMX1)   += clk-imx1.o
-obj-$(CONFIG_SOC_IMX21)  += clk-imx21.o
-obj-$(CONFIG_SOC_IMX25)  += clk-imx25.o
-obj-$(CONFIG_SOC_IMX27)  += clk-imx27.o
-obj-$(CONFIG_SOC_IMX31)  += clk-imx31.o
-obj-$(CONFIG_SOC_IMX35)  += clk-imx35.o
-obj-$(CONFIG_SOC_IMX5)   += clk-imx5.o
-obj-$(CONFIG_SOC_IMX6Q)  += clk-imx6q.o
-obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o
-obj-$(CONFIG_SOC_IMX6SLL) += clk-imx6sll.o
-obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
-obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
-obj-$(CONFIG_SOC_IMX7D)  += clk-imx7d.o
-obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
-obj-$(CONFIG_SOC_VF610)  += clk-vf610.o
+obj-$(CONFIG_MXC_CLK_SCU) += clk-imx-scu.o clk-imx-lpcg-scu.o
+clk-imx-scu-$(CONFIG_CLK_IMX8QXP) += clk-scu.o clk-imx8qxp.o
+clk-imx-lpcg-scu-$(CONFIG_CLK_IMX8QXP) += clk-lpcg-scu.o clk-imx8qxp-lpcg.o
+
+obj-$(CONFIG_CLK_IMX1)   += clk-imx1.o
+obj-$(CONFIG_CLK_IMX21)  += clk-imx21.o
+obj-$(CONFIG_CLK_IMX25)  += clk-imx25.o
+obj-$(CONFIG_CLK_IMX27)  += clk-imx27.o
+obj-$(CONFIG_CLK_IMX31)  += clk-imx31.o
+obj-$(CONFIG_CLK_IMX35)  += clk-imx35.o
+obj-$(CONFIG_CLK_IMX5)   += clk-imx5.o
+obj-$(CONFIG_CLK_IMX6Q)  += clk-imx6q.o
+obj-$(CONFIG_CLK_IMX6SL) += clk-imx6sl.o
+obj-$(CONFIG_CLK_IMX6SLL) += clk-imx6sll.o
+obj-$(CONFIG_CLK_IMX6SX) += clk-imx6sx.o
+obj-$(CONFIG_CLK_IMX6UL) += clk-imx6ul.o
+obj-$(CONFIG_CLK_IMX7D)  += clk-imx7d.o
+obj-$(CONFIG_CLK_IMX7ULP) += clk-imx7ulp.o
+obj-$(CONFIG_CLK_VF610)  += clk-vf610.o
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-audiomix.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-audiomix.c
@@ -0,0 +1,241 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/types.h>
+
+#include "clk.h"
+
+static int shared_count_pdm;
+static struct clk *clks[IMX8MP_CLK_AUDIOMIX_END];
+static struct clk_onecell_data clk_data;
+static uint32_t audiomix_clk_saved_regs[14];
+static struct clk *clk_audio_root;
+
+/* descending order */
+static const struct imx_pll14xx_rate_table imx_audiomix_sai_pll_tbl[] = {
+	PLL_1443X_RATE(245760000U, 328, 4, 3, 0xae15),
+	PLL_1443X_RATE(225792000U, 226, 3, 3, 0xcac1),
+	PLL_1443X_RATE(122880000U, 328, 4, 4, 0xae15),
+	PLL_1443X_RATE(112896000U, 226,	3, 4, 0xcac1),
+	PLL_1443X_RATE(61440000U, 328, 4, 5, 0xae15),
+	PLL_1443X_RATE(56448000U, 226, 3, 5, 0xcac1),
+	PLL_1443X_RATE(49152000U, 393, 3, 6, 0x374c),
+	PLL_1443X_RATE(45158400U, 241, 2, 6, 0xd845),
+	PLL_1443X_RATE(40960000U, 109, 1, 6, 0x3a07),
+};
+
+static const struct imx_pll14xx_clk imx_audiomix_sai_pll = {
+	.type = PLL_1443X,
+	.rate_table = imx_audiomix_sai_pll_tbl,
+	.rate_count = ARRAY_SIZE(imx_audiomix_sai_pll_tbl),
+};
+
+static const char *imx_sai_mclk2_sels[] = {"sai1", "sai2", "sai3", "dummy",
+					"sai5", "sai6", "sai7", "dummy",
+					"dummy", "dummy", "dummy",
+					"dummy", "dummy", "dummy", "dummy"};
+static const char *imx_sai1_mclk1_sels[] = {"sai1", "dummy", };
+static const char *imx_sai2_mclk1_sels[] = {"sai2", "dummy", };
+static const char *imx_sai3_mclk1_sels[] = {"sai3", "dummy", };
+static const char *imx_sai5_mclk1_sels[] = {"sai5", "dummy", };
+static const char *imx_sai6_mclk1_sels[] = {"sai6", "dummy", };
+static const char *imx_sai7_mclk1_sels[] = {"sai7", "dummy", };
+static const char *imx_pdm_sels[] = {"pdm", "sai_pll_div2", "dummy", "dummy" };
+static const char *imx_sai_pll_ref_sels[] = {"osc_24m", "dummy", "dummy", "dummy", };
+static const char *imx_sai_pll_bypass_sels[] = {"sai_pll", "sai_pll_ref_sel", };
+
+static int imx_audiomix_clk_runtime_suspend(struct device *dev)
+{
+	void __iomem *base;
+
+	base = dev_get_drvdata(dev->parent);
+
+	audiomix_clk_saved_regs[0] = readl(base);
+	audiomix_clk_saved_regs[1] = readl(base + 0x4);
+
+	audiomix_clk_saved_regs[2] = readl(base + 0x300);
+	audiomix_clk_saved_regs[3] = readl(base + 0x304);
+	audiomix_clk_saved_regs[4] = readl(base + 0x308);
+	audiomix_clk_saved_regs[5] = readl(base + 0x30C);
+	audiomix_clk_saved_regs[6] = readl(base + 0x310);
+	audiomix_clk_saved_regs[7] = readl(base + 0x314);
+	audiomix_clk_saved_regs[8] = readl(base + 0x318);
+
+	audiomix_clk_saved_regs[9] = readl(base + 0x400);
+	audiomix_clk_saved_regs[10] = readl(base + 0x404);
+	audiomix_clk_saved_regs[11] = readl(base + 0x408);
+	audiomix_clk_saved_regs[12] = readl(base + 0x40C);
+	audiomix_clk_saved_regs[13] = readl(base + 0x410);
+
+	clk_disable_unprepare(clk_audio_root);
+
+	return 0;
+}
+
+static int imx_audiomix_clk_runtime_resume(struct device *dev)
+{
+	void __iomem *base;
+
+	base = dev_get_drvdata(dev->parent);
+
+	clk_prepare_enable(clk_audio_root);
+
+	/*
+	 * Ignore bit26, which are clock gate for sdma clock root.
+	 * We need to keep it on as reset state for hardware issue
+	 * that sdma3' event logic depends on sdma2's clock gate.
+	 * keep it enabled can workaround the issue.
+	 */
+	writel(audiomix_clk_saved_regs[0] | 0x4000000, base);
+	writel(audiomix_clk_saved_regs[1], base + 0x4);
+
+	writel(audiomix_clk_saved_regs[2], base + 0x300);
+	writel(audiomix_clk_saved_regs[3], base + 0x304);
+	writel(audiomix_clk_saved_regs[4], base + 0x308);
+	writel(audiomix_clk_saved_regs[5], base + 0x30C);
+	writel(audiomix_clk_saved_regs[6], base + 0x310);
+	writel(audiomix_clk_saved_regs[7], base + 0x314);
+	writel(audiomix_clk_saved_regs[8], base + 0x318);
+
+	writel(audiomix_clk_saved_regs[9], base + 0x400);
+	writel(audiomix_clk_saved_regs[10], base + 0x404);
+	writel(audiomix_clk_saved_regs[11], base + 0x408);
+	writel(audiomix_clk_saved_regs[12], base + 0x40C);
+	writel(audiomix_clk_saved_regs[13], base + 0x410);
+
+	return 0;
+}
+
+static int imx_audiomix_clk_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct device_node *np = dev->of_node;
+	void __iomem *base;
+	int ret;
+
+	clk_audio_root = of_clk_get_by_name(np, "audio_root");
+	if (IS_ERR(clk_audio_root))
+		return PTR_ERR(clk_audio_root);
+
+	base = dev_get_drvdata(dev->parent);
+	if (IS_ERR(base))
+		return PTR_ERR(base);
+
+	pm_runtime_enable(dev);
+	pm_runtime_get_sync(dev);
+
+	clks[IMX8MP_CLK_AUDIOMIX_SAI_PLL_REF_SEL] = imx_dev_clk_mux(dev, "sai_pll_ref_sel", base + 0x400, 0, 2, imx_sai_pll_ref_sels, ARRAY_SIZE(imx_sai_pll_ref_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI_PLL] = imx_dev_clk_pll14xx(dev, "sai_pll", "sai_pll_ref_sel", base + 0x400, &imx_audiomix_sai_pll);
+
+	clks[IMX8MP_CLK_AUDIOMIX_SAI_PLL_BYPASS] = imx_dev_clk_mux_flags(dev, "sai_pll_bypass", base + 0x400, 4, 1, imx_sai_pll_bypass_sels, ARRAY_SIZE(imx_sai_pll_bypass_sels), CLK_SET_RATE_PARENT);
+
+	clks[IMX8MP_CLK_AUDIOMIX_SAI_PLL_OUT] = imx_dev_clk_gate(dev, "sai_pll_out", "sai_pll_bypass", base + 0x400, 13);
+
+	clks[IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1_SEL] = imx_dev_clk_mux_flags(dev, "sai1_mclk1_sel", base + 0x300, 0, 1, imx_sai1_mclk1_sels, ARRAY_SIZE(imx_sai1_mclk1_sels), CLK_SET_RATE_PARENT);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2_SEL] = imx_dev_clk_mux(dev, "sai1_mclk2_sel", base + 0x300, 1, 4, imx_sai_mclk2_sels, ARRAY_SIZE(imx_sai_mclk2_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1_SEL] = imx_dev_clk_mux_flags(dev, "sai2_mclk1_sel", base + 0x304, 0, 1, imx_sai2_mclk1_sels, ARRAY_SIZE(imx_sai2_mclk1_sels), CLK_SET_RATE_PARENT);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2_SEL] = imx_dev_clk_mux(dev, "sai2_mclk2_sel", base + 0x304, 1, 4, imx_sai_mclk2_sels, ARRAY_SIZE(imx_sai_mclk2_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1_SEL] = imx_dev_clk_mux_flags(dev, "sai3_mclk1_sel", base + 0x308, 0, 1, imx_sai3_mclk1_sels, ARRAY_SIZE(imx_sai3_mclk1_sels), CLK_SET_RATE_PARENT);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2_SEL] = imx_dev_clk_mux(dev, "sai3_mclk2_sel", base + 0x308, 1, 4, imx_sai_mclk2_sels, ARRAY_SIZE(imx_sai_mclk2_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1_SEL] = imx_dev_clk_mux(dev, "sai5_mclk1_sel", base + 0x30C, 0, 1, imx_sai5_mclk1_sels, ARRAY_SIZE(imx_sai5_mclk1_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2_SEL] = imx_dev_clk_mux(dev, "sai5_mclk2_sel", base + 0x30C, 1, 4, imx_sai_mclk2_sels, ARRAY_SIZE(imx_sai_mclk2_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1_SEL] = imx_dev_clk_mux(dev, "sai6_mclk1_sel", base + 0x310, 0, 1, imx_sai6_mclk1_sels, ARRAY_SIZE(imx_sai6_mclk1_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2_SEL] = imx_dev_clk_mux(dev, "sai6_mclk2_sel", base + 0x310, 1, 4, imx_sai_mclk2_sels, ARRAY_SIZE(imx_sai_mclk2_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1_SEL] = imx_dev_clk_mux(dev, "sai7_mclk1_sel", base + 0x314, 0, 1, imx_sai7_mclk1_sels, ARRAY_SIZE(imx_sai7_mclk1_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2_SEL] = imx_dev_clk_mux(dev, "sai7_mclk2_sel", base + 0x314, 1, 4, imx_sai_mclk2_sels, ARRAY_SIZE(imx_sai_mclk2_sels));
+	clks[IMX8MP_CLK_AUDIOMIX_PDM_SEL]        = imx_dev_clk_mux_flags(dev, "pdm_sel", base + 0x318, 0, 2, imx_pdm_sels, ARRAY_SIZE(imx_pdm_sels), CLK_SET_RATE_PARENT);
+
+	clks[IMX8MP_CLK_AUDIOMIX_SAI1_IPG]    = imx_dev_clk_gate(dev, "sai1_ipg_clk",   "ipg_audio_root", base, 0);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1]  = imx_dev_clk_gate(dev, "sai1_mclk1_clk", "sai1_mclk1_sel", base, 1);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2]  = imx_dev_clk_gate(dev, "sai1_mclk2_clk", "sai1_mclk2_sel", base, 2);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI1_MCLK3]  = imx_dev_clk_gate(dev, "sai1_mclk3_clk", "sai_pll_out", base, 3);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI2_IPG]    = imx_dev_clk_gate(dev, "sai2_ipg_clk",   "ipg_audio_root", base, 4);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1]  = imx_dev_clk_gate(dev, "sai2_mclk1_clk", "sai2_mclk1_sel", base, 5);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2]  = imx_dev_clk_gate(dev, "sai2_mclk2_clk", "sai2_mclk2_sel", base, 6);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI2_MCLK3]  = imx_dev_clk_gate(dev, "sai2_mclk3_clk", "sai_pll_out", base, 7);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI3_IPG]    = imx_dev_clk_gate(dev, "sai3_ipg_clk",   "ipg_audio_root", base, 8);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1]  = imx_dev_clk_gate(dev, "sai3_mclk1_clk", "sai3_mclk1_sel", base, 9);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2]  = imx_dev_clk_gate(dev, "sai3_mclk2_clk", "sai3_mclk2_sel", base, 10);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI3_MCLK3]  = imx_dev_clk_gate(dev, "sai3_mclk3_clk", "sai_pll_out", base, 11);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI5_IPG]    = imx_dev_clk_gate(dev, "sai5_ipg_clk",   "ipg_audio_root", base, 12);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1]  = imx_dev_clk_gate(dev, "sai5_mclk1_clk", "sai5_mclk1_sel", base, 13);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2]  = imx_dev_clk_gate(dev, "sai5_mclk2_clk", "sai5_mclk2_sel", base, 14);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI5_MCLK3]  = imx_dev_clk_gate(dev, "sai5_mclk3_clk", "sai_pll_out", base, 15);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI6_IPG]    = imx_dev_clk_gate(dev, "sai6_ipg_clk",   "ipg_audio_root", base, 16);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1]  = imx_dev_clk_gate(dev, "sai6_mclk1_clk", "sai6_mclk1_sel", base, 17);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2]  = imx_dev_clk_gate(dev, "sai6_mclk2_clk", "sai6_mclk2_sel", base, 18);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI6_MCLK3]  = imx_dev_clk_gate(dev, "sai6_mclk3_clk", "sai_pll_out", base, 19);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI7_IPG]    = imx_dev_clk_gate(dev, "sai7_ipg_clk",   "ipg_audio_root", base, 20);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1]  = imx_dev_clk_gate(dev, "sai7_mclk1_clk", "sai7_mclk1_sel", base, 21);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2]  = imx_dev_clk_gate(dev, "sai7_mclk2_clk", "sai7_mclk2_sel", base, 22);
+	clks[IMX8MP_CLK_AUDIOMIX_SAI7_MCLK3]  = imx_dev_clk_gate(dev, "sai7_mclk3_clk", "sai_pll_out", base, 23);
+	clks[IMX8MP_CLK_AUDIOMIX_ASRC_IPG]    = imx_dev_clk_gate(dev, "asrc_ipg_clk",   "ipg_audio_root", base, 24);
+	clks[IMX8MP_CLK_AUDIOMIX_PDM_IPG]     = imx_dev_clk_gate_shared(dev, "pdm_ipg_clk", "ipg_audio_root", base, 25, &shared_count_pdm);
+	clks[IMX8MP_CLK_AUDIOMIX_PDM_ROOT]    = imx_dev_clk_gate_shared(dev, "pdm_root_clk", "pdm_sel", base, 25, &shared_count_pdm);
+
+	clks[IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT]  = imx_dev_clk_gate(dev, "sdma3_root_clk", "ipg_audio_root", base, 27);
+	clks[IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT]  = imx_dev_clk_gate(dev, "spba2_root_clk", "ipg_audio_root", base, 28);
+	clks[IMX8MP_CLK_AUDIOMIX_DSP_ROOT]    = imx_dev_clk_gate(dev, "dsp_root_clk",   "ipg_audio_root", base, 29);
+	clks[IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT] = imx_dev_clk_gate(dev, "dsp_dbg_clk",    "ipg_audio_root", base, 30);
+	clks[IMX8MP_CLK_AUDIOMIX_EARC_IPG]    = imx_dev_clk_gate(dev, "earc_ipg_clk",   "ipg_audio_root", base, 31);
+
+	clks[IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG]  = imx_dev_clk_gate(dev, "ocram_a_ipg_clk", "ipg_audio_root", base + 4, 0);
+	clks[IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG] = imx_dev_clk_gate(dev, "aud2htx_ipg_clk", "ipg_audio_root", base + 4, 1);
+	clks[IMX8MP_CLK_AUDIOMIX_EDMA_ROOT]   = imx_dev_clk_gate(dev, "edma_root_clk",   "ipg_audio_root", base + 4, 2);
+	clks[IMX8MP_CLK_AUDIOMIX_AUDPLL_ROOT] = imx_dev_clk_gate(dev, "aud_pll_clk",  "ipg_audio_root", base + 4, 3);
+	clks[IMX8MP_CLK_AUDIOMIX_MU2_ROOT]    = imx_dev_clk_gate(dev, "mu2_root_clk", "ipg_audio_root", base + 4, 4);
+	clks[IMX8MP_CLK_AUDIOMIX_MU3_ROOT]    = imx_dev_clk_gate(dev, "mu3_root_clk", "ipg_audio_root", base + 4, 5);
+	clks[IMX8MP_CLK_AUDIOMIX_EARC_PHY]    = imx_dev_clk_gate(dev, "earc_phy_clk", "sai_pll_out", base + 4, 6);
+
+	/* unbypass the pll */
+	clk_set_parent(clks[IMX8MP_CLK_AUDIOMIX_SAI_PLL_BYPASS], clks[IMX8MP_CLK_AUDIOMIX_SAI_PLL]);
+
+	imx_check_clocks(clks, ARRAY_SIZE(clks));
+
+	clk_data.clks = clks;
+	clk_data.clk_num = ARRAY_SIZE(clks);
+	ret = of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+	if (ret < 0) {
+		pr_err("failed to register clks for i.MX8MP\n");
+		return -EINVAL;
+	}
+
+	pm_runtime_put_sync(dev);
+
+	return 0;
+}
+
+static const struct dev_pm_ops imx_audiomix_clk_pm_ops = {
+	SET_RUNTIME_PM_OPS(imx_audiomix_clk_runtime_suspend,
+			   imx_audiomix_clk_runtime_resume, NULL)
+	SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+				pm_runtime_force_resume)
+};
+
+static const struct of_device_id imx_audiomix_clk_of_match[] = {
+	{ .compatible = "fsl,imx8mp-audiomix-clk" },
+	{ /* Sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, imx_audiomix_clk_of_match);
+
+
+static struct platform_driver imx_audiomix_clk_driver = {
+	.probe = imx_audiomix_clk_probe,
+	.driver = {
+		.name = "imx-audiomix-clk",
+		.of_match_table = of_match_ptr(imx_audiomix_clk_of_match),
+		.pm = &imx_audiomix_clk_pm_ops,
+	},
+};
+module_platform_driver(imx_audiomix_clk_driver);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-busy.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-busy.c
@@ -4,6 +4,7 @@
  * Copyright 2012 Linaro Ltd.
  */
 
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
 #include <linux/io.h>
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-composite-7ulp.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-composite-7ulp.c
@@ -5,6 +5,7 @@
  *
  */
 
+#include <linux/bits.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/slab.h>
@@ -21,7 +22,7 @@
 #define PCG_PCD_WIDTH	3
 #define PCG_PCD_MASK	0x7
 
-struct clk_hw *imx7ulp_clk_composite(const char *name,
+struct clk_hw *imx7ulp_clk_hw_composite(const char *name,
 				     const char * const *parent_names,
 				     int num_parents, bool mux_present,
 				     bool rate_present, bool gate_present,
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-composite-8m.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-composite-8m.c
@@ -5,6 +5,7 @@
 
 #include <linux/clk-provider.h>
 #include <linux/errno.h>
+#include <linux/export.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 
@@ -15,6 +16,7 @@
 #define PCG_PREDIV_MAX		8
 
 #define PCG_DIV_SHIFT		0
+#define PCG_CORE_DIV_WIDTH	3
 #define PCG_DIV_WIDTH		6
 #define PCG_DIV_MAX		64
 
@@ -91,11 +93,11 @@
 					unsigned long parent_rate)
 {
 	struct clk_divider *divider = to_clk_divider(hw);
-	unsigned long flags = 0;
+	unsigned long flags;
 	int prediv_value;
 	int div_value;
 	int ret;
-	u32 val;
+	u32 orig, val;
 
 	ret = imx8m_clk_composite_compute_dividers(rate, parent_rate,
 						&prediv_value, &div_value);
@@ -104,13 +106,15 @@
 
 	spin_lock_irqsave(divider->lock, flags);
 
-	val = readl(divider->reg);
-	val &= ~((clk_div_mask(divider->width) << divider->shift) |
-			(clk_div_mask(PCG_DIV_WIDTH) << PCG_DIV_SHIFT));
+	orig = readl(divider->reg);
+	val = orig & ~((clk_div_mask(divider->width) << divider->shift) |
+		       (clk_div_mask(PCG_DIV_WIDTH) << PCG_DIV_SHIFT));
 
 	val |= (u32)(prediv_value  - 1) << divider->shift;
 	val |= (u32)(div_value - 1) << PCG_DIV_SHIFT;
-	writel(val, divider->reg);
+
+	if (val != orig)
+		writel(val, divider->reg);
 
 	spin_unlock_irqrestore(divider->lock, flags);
 
@@ -123,9 +127,56 @@
 	.set_rate = imx8m_clk_composite_divider_set_rate,
 };
 
-struct clk *imx8m_clk_composite_flags(const char *name,
+static u8 imx8m_clk_composite_mux_get_parent(struct clk_hw *hw)
+{
+	return clk_mux_ops.get_parent(hw);
+}
+
+static int imx8m_clk_composite_mux_set_parent(struct clk_hw *hw, u8 index)
+{
+	struct clk_mux *mux = to_clk_mux(hw);
+	u32 val = clk_mux_index_to_val(mux->table, mux->flags, index);
+	unsigned long flags = 0;
+	u32 reg;
+
+	if (mux->lock)
+		spin_lock_irqsave(mux->lock, flags);
+
+	reg = readl(mux->reg);
+	reg &= ~(mux->mask << mux->shift);
+	val = val << mux->shift;
+	reg |= val;
+	/*
+	 * write twice to make sure non-target interface
+	 * SEL_A/B point the same clk input.
+	 */
+	writel(reg, mux->reg);
+	writel(reg, mux->reg);
+
+	if (mux->lock)
+		spin_unlock_irqrestore(mux->lock, flags);
+
+	return 0;
+}
+
+static int
+imx8m_clk_composite_mux_determine_rate(struct clk_hw *hw,
+				       struct clk_rate_request *req)
+{
+	return clk_mux_ops.determine_rate(hw, req);
+}
+
+
+static const struct clk_ops imx8m_clk_composite_mux_ops = {
+	.get_parent = imx8m_clk_composite_mux_get_parent,
+	.set_parent = imx8m_clk_composite_mux_set_parent,
+	.determine_rate = imx8m_clk_composite_mux_determine_rate,
+};
+
+struct clk_hw *imx8m_clk_hw_composite_flags(const char *name,
 					const char * const *parent_names,
 					int num_parents, void __iomem *reg,
+					u32 composite_flags,
 					unsigned long flags)
 {
 	struct clk_hw *hw = ERR_PTR(-ENOMEM), *mux_hw;
@@ -133,6 +184,8 @@
 	struct clk_divider *div = NULL;
 	struct clk_gate *gate = NULL;
 	struct clk_mux *mux = NULL;
+	const struct clk_ops *divider_ops;
+	const struct clk_ops *mux_ops;
 
 	mux = kzalloc(sizeof(*mux), GFP_KERNEL);
 	if (!mux)
@@ -142,6 +195,7 @@
 	mux->reg = reg;
 	mux->shift = PCG_PCS_SHIFT;
 	mux->mask = PCG_PCS_MASK;
+	mux->lock = &imx_ccm_lock;
 
 	div = kzalloc(sizeof(*div), GFP_KERNEL);
 	if (!div)
@@ -149,8 +203,24 @@
 
 	div_hw = &div->hw;
 	div->reg = reg;
-	div->shift = PCG_PREDIV_SHIFT;
-	div->width = PCG_PREDIV_WIDTH;
+	if (composite_flags & IMX_COMPOSITE_CORE) {
+		div->shift = PCG_DIV_SHIFT;
+		div->width = PCG_CORE_DIV_WIDTH;
+		divider_ops = &clk_divider_ops;
+		mux_ops = &imx8m_clk_composite_mux_ops;
+	} else if (composite_flags & IMX_COMPOSITE_BUS) {
+		div->shift = PCG_PREDIV_SHIFT;
+		div->width = PCG_PREDIV_WIDTH;
+		divider_ops = &imx8m_clk_composite_divider_ops;
+		mux_ops = &imx8m_clk_composite_mux_ops;
+	} else {
+		div->shift = PCG_PREDIV_SHIFT;
+		div->width = PCG_PREDIV_WIDTH;
+		divider_ops = &imx8m_clk_composite_divider_ops;
+		mux_ops = &clk_mux_ops;
+		flags |= CLK_SET_PARENT_GATE;
+	}
+
 	div->lock = &imx_ccm_lock;
 	div->flags = CLK_DIVIDER_ROUND_CLOSEST;
 
@@ -161,15 +231,15 @@
 	gate_hw = &gate->hw;
 	gate->reg = reg;
 	gate->bit_idx = PCG_CGC_SHIFT;
+	gate->lock = &imx_ccm_lock;
 
 	hw = clk_hw_register_composite(NULL, name, parent_names, num_parents,
-			mux_hw, &clk_mux_ops, div_hw,
-			&imx8m_clk_composite_divider_ops,
-			gate_hw, &clk_gate_ops, flags);
+			mux_hw, mux_ops, div_hw,
+			divider_ops, gate_hw, &clk_gate_ops, flags);
 	if (IS_ERR(hw))
 		goto fail;
 
-	return hw->clk;
+	return hw;
 
 fail:
 	kfree(gate);
@@ -177,3 +247,4 @@
 	kfree(mux);
 	return ERR_CAST(hw);
 }
+EXPORT_SYMBOL_GPL(imx8m_clk_hw_composite_flags);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-cpu.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-cpu.c
@@ -5,6 +5,7 @@
 
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
+#include <linux/export.h>
 #include <linux/slab.h>
 #include "clk.h"
 
@@ -104,3 +105,4 @@
 
 	return hw;
 }
+EXPORT_SYMBOL_GPL(imx_clk_hw_cpu);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-divider-gate.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-divider-gate.c
@@ -43,7 +43,7 @@
 {
 	struct clk_divider_gate *div_gate = to_clk_divider_gate(hw);
 	struct clk_divider *div = to_clk_divider(hw);
-	unsigned long flags = 0;
+	unsigned long flags;
 	unsigned int val;
 
 	spin_lock_irqsave(div->lock, flags);
@@ -75,7 +75,7 @@
 {
 	struct clk_divider_gate *div_gate = to_clk_divider_gate(hw);
 	struct clk_divider *div = to_clk_divider(hw);
-	unsigned long flags = 0;
+	unsigned long flags;
 	int value;
 	u32 val;
 
@@ -104,7 +104,7 @@
 {
 	struct clk_divider_gate *div_gate = to_clk_divider_gate(hw);
 	struct clk_divider *div = to_clk_divider(hw);
-	unsigned long flags = 0;
+	unsigned long flags;
 	u32 val;
 
 	if (!div_gate->cached_val) {
@@ -127,7 +127,7 @@
 {
 	struct clk_divider_gate *div_gate = to_clk_divider_gate(hw);
 	struct clk_divider *div = to_clk_divider(hw);
-	unsigned long flags = 0;
+	unsigned long flags;
 	u32 val;
 
 	spin_lock_irqsave(div->lock, flags);
@@ -167,13 +167,13 @@
 };
 
 /*
- * NOTE: In order to resue the most code from the common divider,
+ * NOTE: In order to reuse the most code from the common divider,
  * we also design our divider following the way that provids an extra
  * clk_divider_flags, however it's fixed to CLK_DIVIDER_ONE_BASED by
  * default as our HW is. Besides that it supports only CLK_DIVIDER_READ_ONLY
  * flag which can be specified by user flexibly.
  */
-struct clk_hw *imx_clk_divider_gate(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_divider_gate(const char *name, const char *parent_name,
 				    unsigned long flags, void __iomem *reg,
 				    u8 shift, u8 width, u8 clk_divider_flags,
 				    const struct clk_div_table *table,
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-fixup-div.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-fixup-div.c
@@ -55,7 +55,7 @@
 	struct clk_fixup_div *fixup_div = to_clk_fixup_div(hw);
 	struct clk_divider *div = to_clk_divider(hw);
 	unsigned int divider, value;
-	unsigned long flags = 0;
+	unsigned long flags;
 	u32 val;
 
 	divider = parent_rate / rate;
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-fixup-mux.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-fixup-mux.c
@@ -3,6 +3,7 @@
  * Copyright (C) 2013 Freescale Semiconductor, Inc.
  */
 
+#include <linux/bits.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/io.h>
@@ -42,7 +43,7 @@
 {
 	struct clk_fixup_mux *fixup_mux = to_clk_fixup_mux(hw);
 	struct clk_mux *mux = to_clk_mux(hw);
-	unsigned long flags = 0;
+	unsigned long flags;
 	u32 val;
 
 	spin_lock_irqsave(mux->lock, flags);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-frac-pll.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-frac-pll.c
@@ -10,6 +10,7 @@
 
 #include <linux/clk-provider.h>
 #include <linux/err.h>
+#include <linux/export.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
 #include <linux/slab.h>
@@ -201,8 +202,9 @@
 	.set_rate	= clk_pll_set_rate,
 };
 
-struct clk *imx_clk_frac_pll(const char *name, const char *parent_name,
-			     void __iomem *base)
+struct clk_hw *imx_clk_hw_frac_pll(const char *name,
+				   const char *parent_name,
+				   void __iomem *base)
 {
 	struct clk_init_data init;
 	struct clk_frac_pll *pll;
@@ -230,5 +232,6 @@
 		return ERR_PTR(ret);
 	}
 
-	return hw->clk;
+	return hw;
 }
+EXPORT_SYMBOL_GPL(imx_clk_hw_frac_pll);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-gate-shared.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-gate-shared.c
@@ -0,0 +1,106 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/clk-provider.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/slab.h>
+#include "clk.h"
+
+/**
+ * struct clk_gate_shared - i.MX specific gate clock having the gate flag
+ * shared with other gate clocks
+ */
+struct clk_gate_shared {
+	struct clk_gate gate;
+	spinlock_t	*lock;
+	unsigned int	*share_count;
+};
+
+static int clk_gate_shared_enable(struct clk_hw *hw)
+{
+	struct clk_gate *gate = to_clk_gate(hw);
+	struct clk_gate_shared *shgate = container_of(gate,
+					struct clk_gate_shared, gate);
+	unsigned long flags = 0;
+	int ret = 0;
+
+	spin_lock_irqsave(shgate->lock, flags);
+
+	if (shgate->share_count && (*shgate->share_count)++ > 0)
+		goto out;
+
+	ret = clk_gate_ops.enable(hw);
+out:
+	spin_unlock_irqrestore(shgate->lock, flags);
+
+	return ret;
+}
+
+static void clk_gate_shared_disable(struct clk_hw *hw)
+{
+	struct clk_gate *gate = to_clk_gate(hw);
+	struct clk_gate_shared *shgate = container_of(gate,
+					struct clk_gate_shared, gate);
+	unsigned long flags = 0;
+
+	spin_lock_irqsave(shgate->lock, flags);
+
+	if (shgate->share_count) {
+		if (WARN_ON(*shgate->share_count == 0))
+			goto out;
+		else if (--(*shgate->share_count) > 0)
+			goto out;
+	}
+
+	clk_gate_ops.disable(hw);
+out:
+	spin_unlock_irqrestore(shgate->lock, flags);
+}
+
+static int clk_gate_shared_is_enabled(struct clk_hw *hw)
+{
+	return clk_gate_ops.is_enabled(hw);
+}
+
+static const struct clk_ops clk_gate_shared_ops = {
+	.enable = clk_gate_shared_enable,
+	.disable = clk_gate_shared_disable,
+	.is_enabled = clk_gate_shared_is_enabled,
+};
+
+struct clk *imx_dev_clk_gate_shared(struct device *dev, const char *name,
+				const char *parent, void __iomem *reg,
+				u8 shift, unsigned int *share_count)
+{
+	struct clk_gate_shared *shgate;
+	struct clk_gate *gate;
+	struct clk *clk;
+	struct clk_init_data init;
+
+	shgate = kzalloc(sizeof(*shgate), GFP_KERNEL);
+	if (!shgate)
+		return ERR_PTR(-ENOMEM);
+	gate = &shgate->gate;
+
+	init.name = name;
+	init.ops = &clk_gate_shared_ops;
+	init.flags = CLK_OPS_PARENT_ENABLE;
+	init.parent_names = parent ? &parent : NULL;
+	init.num_parents = parent ? 1 : 0;
+
+	gate->reg = reg;
+	gate->bit_idx = shift;
+	gate->lock = NULL;
+	gate->hw.init = &init;
+	shgate->lock = &imx_ccm_lock;
+	shgate->share_count = share_count;
+
+	clk = clk_register(NULL, &gate->hw);
+	if (IS_ERR(clk))
+		kfree(shgate);
+
+	return clk;
+}
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-gate2.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-gate2.c
@@ -7,6 +7,7 @@
  */
 
 #include <linux/clk-provider.h>
+#include <linux/export.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/io.h>
@@ -15,7 +16,7 @@
 #include "clk.h"
 
 /**
- * DOC: basic gatable clock which can gate and ungate it's ouput
+ * DOC: basic gateable clock which can gate and ungate its output
  *
  * Traits of this clock:
  * prepare - clk_(un)prepare only ensures parent is (un)prepared
@@ -29,6 +30,7 @@
 	void __iomem	*reg;
 	u8		bit_idx;
 	u8		cgr_val;
+	u8		cgr_mask;
 	u8		flags;
 	spinlock_t	*lock;
 	unsigned int	*share_count;
@@ -36,22 +38,29 @@
 
 #define to_clk_gate2(_hw) container_of(_hw, struct clk_gate2, hw)
 
-static int clk_gate2_enable(struct clk_hw *hw)
+static void clk_gate2_do_shared_clks(struct clk_hw *hw, bool enable)
 {
 	struct clk_gate2 *gate = to_clk_gate2(hw);
 	u32 reg;
-	unsigned long flags = 0;
+
+	reg = readl(gate->reg);
+	reg &= ~(gate->cgr_mask << gate->bit_idx);
+	if (enable)
+		reg |= (gate->cgr_val & gate->cgr_mask) << gate->bit_idx;
+	writel(reg, gate->reg);
+}
+
+static int clk_gate2_enable(struct clk_hw *hw)
+{
+	struct clk_gate2 *gate = to_clk_gate2(hw);
+	unsigned long flags;
 
 	spin_lock_irqsave(gate->lock, flags);
 
 	if (gate->share_count && (*gate->share_count)++ > 0)
 		goto out;
 
-	reg = readl(gate->reg);
-	reg &= ~(3 << gate->bit_idx);
-	reg |= gate->cgr_val << gate->bit_idx;
-	writel(reg, gate->reg);
-
+	clk_gate2_do_shared_clks(hw, true);
 out:
 	spin_unlock_irqrestore(gate->lock, flags);
 
@@ -61,8 +70,7 @@
 static void clk_gate2_disable(struct clk_hw *hw)
 {
 	struct clk_gate2 *gate = to_clk_gate2(hw);
-	u32 reg;
-	unsigned long flags = 0;
+	unsigned long flags;
 
 	spin_lock_irqsave(gate->lock, flags);
 
@@ -73,19 +81,17 @@
 			goto out;
 	}
 
-	reg = readl(gate->reg);
-	reg &= ~(3 << gate->bit_idx);
-	writel(reg, gate->reg);
-
+	clk_gate2_do_shared_clks(hw, false);
 out:
 	spin_unlock_irqrestore(gate->lock, flags);
 }
 
-static int clk_gate2_reg_is_enabled(void __iomem *reg, u8 bit_idx)
+static int clk_gate2_reg_is_enabled(void __iomem *reg, u8 bit_idx,
+					u8 cgr_val, u8 cgr_mask)
 {
 	u32 val = readl(reg);
 
-	if (((val >> bit_idx) & 1) == 1)
+	if (((val >> bit_idx) & cgr_mask) == cgr_val)
 		return 1;
 
 	return 0;
@@ -94,23 +100,28 @@
 static int clk_gate2_is_enabled(struct clk_hw *hw)
 {
 	struct clk_gate2 *gate = to_clk_gate2(hw);
+	unsigned long flags;
+	int ret = 0;
+
+	spin_lock_irqsave(gate->lock, flags);
 
-	return clk_gate2_reg_is_enabled(gate->reg, gate->bit_idx);
+	ret = clk_gate2_reg_is_enabled(gate->reg, gate->bit_idx,
+					gate->cgr_val, gate->cgr_mask);
+
+	spin_unlock_irqrestore(gate->lock, flags);
+
+	return ret;
 }
 
 static void clk_gate2_disable_unused(struct clk_hw *hw)
 {
 	struct clk_gate2 *gate = to_clk_gate2(hw);
-	unsigned long flags = 0;
-	u32 reg;
+	unsigned long flags;
 
 	spin_lock_irqsave(gate->lock, flags);
 
-	if (!gate->share_count || *gate->share_count == 0) {
-		reg = readl(gate->reg);
-		reg &= ~(3 << gate->bit_idx);
-		writel(reg, gate->reg);
-	}
+	if (!gate->share_count || *gate->share_count == 0)
+		clk_gate2_do_shared_clks(hw, false);
 
 	spin_unlock_irqrestore(gate->lock, flags);
 }
@@ -124,7 +135,7 @@
 
 struct clk_hw *clk_hw_register_gate2(struct device *dev, const char *name,
 		const char *parent_name, unsigned long flags,
-		void __iomem *reg, u8 bit_idx, u8 cgr_val,
+		void __iomem *reg, u8 bit_idx, u8 cgr_val, u8 cgr_mask,
 		u8 clk_gate2_flags, spinlock_t *lock,
 		unsigned int *share_count)
 {
@@ -141,6 +152,7 @@
 	gate->reg = reg;
 	gate->bit_idx = bit_idx;
 	gate->cgr_val = cgr_val;
+	gate->cgr_mask = cgr_mask;
 	gate->flags = clk_gate2_flags;
 	gate->lock = lock;
 	gate->share_count = share_count;
@@ -154,7 +166,7 @@
 	gate->hw.init = &init;
 	hw = &gate->hw;
 
-	ret = clk_hw_register(NULL, hw);
+	ret = clk_hw_register(dev, hw);
 	if (ret) {
 		kfree(gate);
 		return ERR_PTR(ret);
@@ -162,3 +174,4 @@
 
 	return hw;
 }
+EXPORT_SYMBOL_GPL(clk_hw_register_gate2);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-hdmimix.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-hdmimix.c
@@ -0,0 +1,150 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2020 NXP.
+ */
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/types.h>
+
+#include "clk.h"
+
+static struct clk *clks[IMX8MP_CLK_HDMIMIX_END];
+static struct clk_onecell_data clk_data;
+static uint32_t hdmimix_clk_saved_regs[2];
+
+static const char *imx_hdmi_phy_clks_sels[] = { "hdmi_glb_24m", "dummy",};
+static const char *imx_lcdif_clks_sels[] = { "dummy", "hdmi_glb_pix", };
+static const char *imx_hdmi_pipe_clks_sels[] = {"dummy","hdmi_glb_pix", };
+
+static int imx_hdmimix_clk_suspend(struct device *dev)
+{
+	void __iomem *base;
+
+	base = dev_get_drvdata(dev->parent);
+
+	hdmimix_clk_saved_regs[0] = readl(base + 0x40);
+	hdmimix_clk_saved_regs[1] = readl(base + 0x50);
+
+	return 0;
+}
+
+static int imx_hdmimix_clk_resume(struct device *dev)
+{
+	void __iomem *base;
+
+	base = dev_get_drvdata(dev->parent);
+
+	writel(hdmimix_clk_saved_regs[0], base + 0x40);
+	writel(hdmimix_clk_saved_regs[1], base + 0x50);
+
+	return 0;
+}
+
+static int imx_hdmimix_clk_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct device_node *np = dev->of_node;
+	void __iomem *base;
+	struct clk *clk_dummy;
+	int ret;
+
+	pm_runtime_enable(dev);
+	pm_runtime_get_sync(dev);
+
+	/* Defer until CCM driver is probed */
+	clk_dummy = of_clk_get_by_name(np, "dummy");
+	if (IS_ERR(clk_dummy))
+		return PTR_ERR(clk_dummy);
+
+	base = dev_get_drvdata(dev->parent);
+	if (IS_ERR(base))
+		return PTR_ERR(base);
+
+	clks[IMX8MP_CLK_HDMIMIX_GLOBAL_APB_CLK]	   = imx_dev_clk_gate(dev, "hdmi_glb_apb",     "hdmi_apb",      base + 0x40, 0);
+	clks[IMX8MP_CLK_HDMIMIX_GLOBAL_B_CLK]      = imx_dev_clk_gate(dev, "hdmi_glb_b",       "hdmi_axi",      base + 0x40, 1);
+	clks[IMX8MP_CLK_HDMIMIX_GLOBAL_REF266M_CLK]= imx_dev_clk_gate(dev, "hdmi_glb_ref_266m","hdmi_ref_266m", base + 0x40, 2);
+	clks[IMX8MP_CLK_HDMIMIX_GLOBAL_XTAL24M_CLK]= imx_dev_clk_gate(dev, "hdmi_glb_24m",     "hdmi_24m",      base + 0x40, 4);
+	clks[IMX8MP_CLK_HDMIMIX_GLOBAL_XTAL32K_CLK]= imx_dev_clk_gate(dev, "hdmi_glb_32k",     "osc_32k",       base + 0x40, 5);
+	clks[IMX8MP_CLK_HDMIMIX_GLOBAL_TX_PIX_CLK] = imx_dev_clk_gate(dev, "hdmi_glb_pix",     "hdmi_phy",      base + 0x40, 7);
+	clks[IMX8MP_CLK_HDMIMIX_IRQS_STEER_CLK]	   = imx_dev_clk_gate(dev, "hdmi_irq_steer",   "hdmi_glb_apb",  base + 0x40, 9);
+	clks[IMX8MP_CLK_HDMIMIX_NOC_HDMI_CLK]      = imx_dev_clk_gate(dev, "hdmi_noc",         "hdmi_glb_apb",  base + 0x40, 10);
+	clks[IMX8MP_CLK_HDMIMIX_NOC_HDCP_CLK]      = imx_dev_clk_gate(dev, "hdcp_noc",         "hdmi_glb_apb",  base + 0x40, 11);
+	clks[IMX8MP_CLK_HDMIMIX_LCDIF_APB_CLK]     = imx_dev_clk_gate(dev, "lcdif3_apb",       "hdmi_glb_apb",  base + 0x40, 16);
+	clks[IMX8MP_CLK_HDMIMIX_LCDIF_B_CLK]       = imx_dev_clk_gate(dev, "lcdif3_b",         "hdmi_glb_b",    base + 0x40, 17);
+	clks[IMX8MP_CLK_HDMIMIX_LCDIF_PDI_CLK]     = imx_dev_clk_gate(dev, "lcdif3_pdi",       "hdmi_glb_apb",  base + 0x40, 18);
+	clks[IMX8MP_CLK_HDMIMIX_LCDIF_PIX_CLK]     = imx_dev_clk_gate(dev, "lcdif3_pxl",       "hdmi_glb_pix",  base + 0x40, 19);
+	clks[IMX8MP_CLK_HDMIMIX_LCDIF_SPU_CLK]     = imx_dev_clk_gate(dev, "lcdif3_spu",       "hdmi_glb_apb",  base + 0x40, 20);
+
+	clks[IMX8MP_CLK_HDMIMIX_FDCC_REF_CLK]      = imx_dev_clk_gate(dev, "hdmi_fdcc_ref",    "hdmi_fdcc_tst", base + 0x50, 2);
+	clks[IMX8MP_CLK_HDMIMIX_HRV_MWR_APB_CLK]   = imx_dev_clk_gate(dev, "hrv_mwr_apb",       "hdmi_glb_apb", base + 0x50, 3);
+	clks[IMX8MP_CLK_HDMIMIX_HRV_MWR_B_CLK]     = imx_dev_clk_gate(dev, "hrv_mwr_b",         "hdmi_glb_axi", base + 0x50, 4);
+	clks[IMX8MP_CLK_HDMIMIX_HRV_MWR_CEA_CLK]   = imx_dev_clk_gate(dev, "hrv_mwr_cea",       "hdmi_glb_apb", base + 0x50, 5);
+	clks[IMX8MP_CLK_HDMIMIX_VSFD_CEA_CLK]      = imx_dev_clk_gate(dev, "vsfd_cea",          "hdmi_glb_apb", base + 0x50, 6);
+	clks[IMX8MP_CLK_HDMIMIX_TX_HPI_CLK]        = imx_dev_clk_gate(dev, "hdmi_tx_hpi",       "hdmi_glb_apb", base + 0x50, 13);
+	clks[IMX8MP_CLK_HDMIMIX_TX_APB_CLK]        = imx_dev_clk_gate(dev, "hdmi_tx_apb",       "hdmi_glb_apb", base + 0x50, 14);
+	clks[IMX8MP_CLK_HDMIMIX_TX_CEC_CLK]        = imx_dev_clk_gate(dev, "hdmi_cec",          "hdmi_glb_32k", base + 0x50, 15);
+	clks[IMX8MP_CLK_HDMIMIX_TX_ESM_CLK]        = imx_dev_clk_gate(dev, "hdmi_esm",     "hdmi_glb_ref_266m", base + 0x50, 16);
+	clks[IMX8MP_CLK_HDMIMIX_TX_GPA_CLK]        = imx_dev_clk_gate(dev, "hdmi_tx_gpa",       "hdmi_glb_apb", base + 0x50, 17);
+	clks[IMX8MP_CLK_HDMIMIX_TX_PIXEL_CLK]      = imx_dev_clk_gate(dev, "hdmi_tx_pix",       "hdmi_glb_pix", base + 0x50, 18);
+	clks[IMX8MP_CLK_HDMIMIX_TX_SFR_CLK]        = imx_dev_clk_gate(dev, "hdmi_tx_sfr",       "hdmi_glb_apb", base + 0x50, 19);
+	clks[IMX8MP_CLK_HDMIMIX_TX_SKP_CLK]        = imx_dev_clk_gate(dev, "hdmi_tx_skp",       "hdmi_glb_apb", base + 0x50, 20);
+	clks[IMX8MP_CLK_HDMIMIX_TX_PREP_CLK]       = imx_dev_clk_gate(dev, "hdmi_tx_prep",      "hdmi_glb_apb", base + 0x50, 21);
+	clks[IMX8MP_CLK_HDMIMIX_TX_PHY_APB_CLK]	   = imx_dev_clk_gate(dev, "hdmi_phy_apb",      "hdmi_glb_apb", base + 0x50, 22);
+	clks[IMX8MP_CLK_HDMIMIX_TX_PHY_INT_CLK]	   = imx_dev_clk_gate(dev, "hdmi_phy_int",      "hdmi_glb_apb", base + 0x50, 24);
+	clks[IMX8MP_CLK_HDMIMIX_TX_SEC_MEM_CLK]	   = imx_dev_clk_gate(dev, "hdmi_sec_mem", "hdmi_glb_ref_266m", base + 0x50, 25);
+	clks[IMX8MP_CLK_HDMIMIX_TX_TRNG_SKP_CLK]   = imx_dev_clk_gate(dev, "hdmi_trng_skp",     "hdmi_glb_apb", base + 0x50, 27);
+	clks[IMX8MP_CLK_HDMIMIX_TX_VID_LINK_PIX_CLK]= imx_dev_clk_gate(dev, "hdmi_vid_pix",     "hdmi_glb_pix", base + 0x50, 28);
+	clks[IMX8MP_CLK_HDMIMIX_TX_TRNG_APB_CLK]   = imx_dev_clk_gate(dev, "hdmi_trng_apb",     "hdmi_glb_apb", base + 0x50, 30);
+
+	clks[IMX8MP_CLK_HDMIMIX_HTXPHY_CLK_SEL]    = imx_dev_clk_mux(dev, "hdmi_phy_sel", base + 0x50, 10, 1, imx_hdmi_phy_clks_sels, ARRAY_SIZE(imx_hdmi_phy_clks_sels));
+	clks[IMX8MP_CLK_HDMIMIX_LCDIF_CLK_SEL]     = imx_dev_clk_mux(dev, "lcdif_clk_sel", base + 0x50, 11, 1, imx_lcdif_clks_sels, ARRAY_SIZE(imx_hdmi_phy_clks_sels));
+	clks[IMX8MP_CLK_HDMIMIX_TX_PIPE_CLK_SEL]   = imx_dev_clk_mux(dev, "hdmi_pipe_sel", base + 0x50, 12, 1, imx_hdmi_pipe_clks_sels, ARRAY_SIZE(imx_hdmi_pipe_clks_sels));
+
+	/* hdmi/lcdif pixel clock parent to hdmi phy */
+	clk_set_parent(clks[IMX8MP_CLK_HDMIMIX_TX_PIPE_CLK_SEL], clks[IMX8MP_CLK_HDMIMIX_GLOBAL_TX_PIX_CLK]);
+	clk_set_parent(clks[IMX8MP_CLK_HDMIMIX_LCDIF_CLK_SEL], clks[IMX8MP_CLK_HDMIMIX_GLOBAL_TX_PIX_CLK]);
+	/* hdmi ref clock from 24MHz */
+	clk_set_parent(clks[IMX8MP_CLK_HDMIMIX_HTXPHY_CLK_SEL], clks[IMX8MP_CLK_HDMIMIX_GLOBAL_XTAL24M_CLK]);
+
+	imx_check_clocks(clks, ARRAY_SIZE(clks));
+
+	clk_data.clks = clks;
+	clk_data.clk_num = ARRAY_SIZE(clks);
+	ret = of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+	if (ret < 0) {
+		pr_err("failed to register clks for i.MX8MP\n");
+		return -EINVAL;
+	}
+
+	pm_runtime_put(dev);
+
+	return 0;
+}
+
+UNIVERSAL_DEV_PM_OPS(imx_hdmimix_clk_pm_ops, imx_hdmimix_clk_suspend,
+			imx_hdmimix_clk_resume, NULL);
+
+static const struct of_device_id imx_hdmimix_clk_of_match[] = {
+	{ .compatible = "fsl,imx8mp-hdmimix-clk" },
+	{ /* Sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, imx_hdmimix_clk_of_match);
+
+
+static struct platform_driver imx_hdmimix_clk_driver = {
+	.probe = imx_hdmimix_clk_probe,
+	.driver = {
+		.name = "imx-hdmimix-clk",
+		.of_match_table = of_match_ptr(imx_hdmimix_clk_of_match),
+		.pm = &imx_hdmimix_clk_pm_ops,
+	},
+};
+module_platform_driver(imx_hdmimix_clk_driver);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx31.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx31.c
@@ -51,16 +51,6 @@
 static struct clk *clk[clk_max];
 static struct clk_onecell_data clk_data;
 
-static struct clk ** const uart_clks[] __initconst = {
-	&clk[ipg],
-	&clk[uart1_gate],
-	&clk[uart2_gate],
-	&clk[uart3_gate],
-	&clk[uart4_gate],
-	&clk[uart5_gate],
-	NULL
-};
-
 static void __init _mx31_clocks_init(void __iomem *base, unsigned long fref)
 {
 	clk[dummy] = imx_clk_fixed("dummy", 0);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx6q.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx6q.c
@@ -6,6 +6,7 @@
 
 #include <linux/init.h>
 #include <linux/types.h>
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
@@ -337,10 +338,10 @@
 	of_assigned_ldb_sels(np, &sel[0][3], &sel[1][3]);
 
 	for (i = 0; i < 2; i++) {
-		/* Warn if a glitch might have been introduced already */
+		/* Print a notice if a glitch might have been introduced already */
 		if (sel[i][0] != 3) {
-			pr_warn("ccm: ldb_di%d_sel already changed from reset value: %d\n",
-				i, sel[i][0]);
+			pr_notice("ccm: possible glitch: ldb_di%d_sel already changed from reset value: %d\n",
+				  i, sel[i][0]);
 		}
 
 		if (sel[i][0] == sel[i][3])
@@ -598,7 +599,10 @@
 	}
 
 	hws[IMX6QDL_CLK_PLL4_POST_DIV] = clk_hw_register_divider_table(NULL, "pll4_post_div", "pll4_audio", CLK_SET_RATE_PARENT, base + 0x70, 19, 2, 0, post_div_table, &imx_ccm_lock);
-	hws[IMX6QDL_CLK_PLL4_AUDIO_DIV] = clk_hw_register_divider(NULL, "pll4_audio_div", "pll4_post_div", CLK_SET_RATE_PARENT, base + 0x170, 15, 1, 0, &imx_ccm_lock);
+	if (clk_on_imx6q() || clk_on_imx6qp())
+		hws[IMX6QDL_CLK_PLL4_AUDIO_DIV] = imx_clk_hw_fixed_factor("pll4_audio_div", "pll4_post_div", 1, 1);
+	else
+		hws[IMX6QDL_CLK_PLL4_AUDIO_DIV] = clk_hw_register_divider(NULL, "pll4_audio_div", "pll4_post_div", CLK_SET_RATE_PARENT, base + 0x170, 15, 1, 0, &imx_ccm_lock);
 	hws[IMX6QDL_CLK_PLL5_POST_DIV] = clk_hw_register_divider_table(NULL, "pll5_post_div", "pll5_video", CLK_SET_RATE_PARENT, base + 0xa0, 19, 2, 0, post_div_table, &imx_ccm_lock);
 	hws[IMX6QDL_CLK_PLL5_VIDEO_DIV] = clk_hw_register_divider_table(NULL, "pll5_video_div", "pll5_post_div", CLK_SET_RATE_PARENT, base + 0x170, 30, 2, 0, video_div_table, &imx_ccm_lock);
 
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx6sl.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx6sl.c
@@ -3,8 +3,10 @@
  * Copyright 2013-2014 Freescale Semiconductor, Inc.
  */
 
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
+#include <linux/clk/imx.h>
 #include <linux/err.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
@@ -14,19 +16,19 @@
 #include "clk.h"
 
 #define CCSR			0xc
-#define BM_CCSR_PLL1_SW_CLK_SEL	(1 << 2)
+#define BM_CCSR_PLL1_SW_CLK_SEL	BIT(2)
 #define CACRR			0x10
 #define CDHIPR			0x48
-#define BM_CDHIPR_ARM_PODF_BUSY	(1 << 16)
+#define BM_CDHIPR_ARM_PODF_BUSY	BIT(16)
 #define ARM_WAIT_DIV_396M	2
 #define ARM_WAIT_DIV_792M	4
 #define ARM_WAIT_DIV_996M	6
 
 #define PLL_ARM			0x0
-#define BM_PLL_ARM_DIV_SELECT	(0x7f << 0)
-#define BM_PLL_ARM_POWERDOWN	(1 << 12)
-#define BM_PLL_ARM_ENABLE	(1 << 13)
-#define BM_PLL_ARM_LOCK		(1 << 31)
+#define BM_PLL_ARM_DIV_SELECT	0x7f
+#define BM_PLL_ARM_POWERDOWN	BIT(12)
+#define BM_PLL_ARM_ENABLE	BIT(13)
+#define BM_PLL_ARM_LOCK		BIT(31)
 #define PLL_ARM_DIV_792M	66
 
 static const char *step_sels[]		= { "osc", "pll2_pfd2", };
@@ -145,7 +147,7 @@
 		val |= BM_PLL_ARM_ENABLE;
 		val &= ~BM_PLL_ARM_POWERDOWN;
 		writel_relaxed(val, anatop_base + PLL_ARM);
-		while (!(__raw_readl(anatop_base + PLL_ARM) & BM_PLL_ARM_LOCK))
+		while (!(readl_relaxed(anatop_base + PLL_ARM) & BM_PLL_ARM_LOCK))
 			;
 	} else {
 		 writel_relaxed(saved_pll_arm, anatop_base + PLL_ARM);
@@ -208,6 +210,7 @@
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-anatop");
 	base = of_iomap(np, 0);
 	WARN_ON(!base);
+	of_node_put(np);
 	anatop_base = base;
 
 	hws[IMX6SL_PLL1_BYPASS_SRC] = imx_clk_hw_mux("pll1_bypass_src", base + 0x00, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx6sll.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx6sll.c
@@ -107,12 +107,12 @@
 
 	hws[IMX6SLL_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
 
-	hws[IMX6SLL_CLK_CKIL] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ckil"));
-	hws[IMX6SLL_CLK_OSC] = __clk_get_hw(of_clk_get_by_name(ccm_node, "osc"));
+	hws[IMX6SLL_CLK_CKIL] = imx_obtain_fixed_clk_hw(ccm_node, "ckil");
+	hws[IMX6SLL_CLK_OSC] = imx_obtain_fixed_clk_hw(ccm_node, "osc");
 
 	/* ipp_di clock is external input */
-	hws[IMX6SLL_CLK_IPP_DI0] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ipp_di0"));
-	hws[IMX6SLL_CLK_IPP_DI1] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ipp_di1"));
+	hws[IMX6SLL_CLK_IPP_DI0] = imx_obtain_fixed_clk_hw(ccm_node, "ipp_di0");
+	hws[IMX6SLL_CLK_IPP_DI1] = imx_obtain_fixed_clk_hw(ccm_node, "ipp_di1");
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx6sll-anatop");
 	base = of_iomap(np, 0);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx6sx.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx6sx.c
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/imx6sx-clock.h>
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
@@ -17,6 +18,8 @@
 
 #include "clk.h"
 
+#define CCM_CCGR_OFFSET(index)		(index * 2)
+
 static const char *step_sels[]		= { "osc", "pll2_pfd2_396m", };
 static const char *pll1_sw_sels[]	= { "pll1_sys", "step", };
 static const char *periph_pre_sels[]	= { "pll2_bus", "pll2_pfd2_396m", "pll2_pfd0_352m", "pll2_198m", };
@@ -139,16 +142,16 @@
 
 	hws[IMX6SX_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
 
-	hws[IMX6SX_CLK_CKIL] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ckil"));
-	hws[IMX6SX_CLK_OSC] = __clk_get_hw(of_clk_get_by_name(ccm_node, "osc"));
+	hws[IMX6SX_CLK_CKIL] = imx_obtain_fixed_clk_hw(ccm_node, "ckil");
+	hws[IMX6SX_CLK_OSC] = imx_obtain_fixed_clk_hw(ccm_node, "osc");
 
 	/* ipp_di clock is external input */
-	hws[IMX6SX_CLK_IPP_DI0] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ipp_di0"));
-	hws[IMX6SX_CLK_IPP_DI1] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ipp_di1"));
+	hws[IMX6SX_CLK_IPP_DI0] = imx_obtain_fixed_clk_hw(ccm_node, "ipp_di0");
+	hws[IMX6SX_CLK_IPP_DI1] = imx_obtain_fixed_clk_hw(ccm_node, "ipp_di1");
 
 	/* Clock source from external clock via CLK1/2 PAD */
-	hws[IMX6SX_CLK_ANACLK1] = __clk_get_hw(of_clk_get_by_name(ccm_node, "anaclk1"));
-	hws[IMX6SX_CLK_ANACLK2] = __clk_get_hw(of_clk_get_by_name(ccm_node, "anaclk2"));
+	hws[IMX6SX_CLK_ANACLK1] = imx_obtain_fixed_clk_hw(ccm_node, "anaclk1");
+	hws[IMX6SX_CLK_ANACLK2] = imx_obtain_fixed_clk_hw(ccm_node, "anaclk2");
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx6sx-anatop");
 	base = of_iomap(np, 0);
@@ -287,13 +290,13 @@
 	hws[IMX6SX_CLK_SSI3_SEL]           = imx_clk_hw_mux("ssi3_sel",         base + 0x1c,  14,     2,      ssi_sels,          ARRAY_SIZE(ssi_sels));
 	hws[IMX6SX_CLK_SSI2_SEL]           = imx_clk_hw_mux("ssi2_sel",         base + 0x1c,  12,     2,      ssi_sels,          ARRAY_SIZE(ssi_sels));
 	hws[IMX6SX_CLK_SSI1_SEL]           = imx_clk_hw_mux("ssi1_sel",         base + 0x1c,  10,     2,      ssi_sels,          ARRAY_SIZE(ssi_sels));
-	hws[IMX6SX_CLK_QSPI1_SEL]          = imx_clk_hw_mux_flags("qspi1_sel", base + 0x1c,  7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels), CLK_SET_RATE_PARENT);
+	hws[IMX6SX_CLK_QSPI1_SEL]          = imx_clk_hw_mux("qspi1_sel",        base + 0x1c,  7,      3,      qspi1_sels,        ARRAY_SIZE(qspi1_sels));
 	hws[IMX6SX_CLK_PERCLK_SEL]         = imx_clk_hw_mux("perclk_sel",       base + 0x1c,  6,      1,      perclk_sels,       ARRAY_SIZE(perclk_sels));
 	hws[IMX6SX_CLK_VID_SEL]            = imx_clk_hw_mux("vid_sel",          base + 0x20,  21,     3,      vid_sels,          ARRAY_SIZE(vid_sels));
 	hws[IMX6SX_CLK_ESAI_SEL]           = imx_clk_hw_mux("esai_sel",         base + 0x20,  19,     2,      audio_sels,        ARRAY_SIZE(audio_sels));
 	hws[IMX6SX_CLK_CAN_SEL]            = imx_clk_hw_mux("can_sel",          base + 0x20,  8,      2,      can_sels,          ARRAY_SIZE(can_sels));
 	hws[IMX6SX_CLK_UART_SEL]           = imx_clk_hw_mux("uart_sel",         base + 0x24,  6,      1,      uart_sels,         ARRAY_SIZE(uart_sels));
-	hws[IMX6SX_CLK_QSPI2_SEL]          = imx_clk_hw_mux_flags("qspi2_sel", base + 0x2c, 15, 3, qspi2_sels, ARRAY_SIZE(qspi2_sels), CLK_SET_RATE_PARENT);
+	hws[IMX6SX_CLK_QSPI2_SEL]          = imx_clk_hw_mux("qspi2_sel",        base + 0x2c,  15,     3,      qspi2_sels,        ARRAY_SIZE(qspi2_sels));
 	hws[IMX6SX_CLK_SPDIF_SEL]          = imx_clk_hw_mux("spdif_sel",        base + 0x30,  20,     2,      audio_sels,        ARRAY_SIZE(audio_sels));
 	hws[IMX6SX_CLK_AUDIO_SEL]          = imx_clk_hw_mux("audio_sel",        base + 0x30,  7,      2,      audio_sels,        ARRAY_SIZE(audio_sels));
 	hws[IMX6SX_CLK_ENET_PRE_SEL]       = imx_clk_hw_mux("enet_pre_sel",     base + 0x34,  15,     3,      enet_pre_sels,     ARRAY_SIZE(enet_pre_sels));
@@ -405,7 +408,7 @@
 	hws[IMX6SX_CLK_GPT_BUS]      = imx_clk_hw_gate2("gpt_bus",       "perclk",            base + 0x6c, 20);
 	hws[IMX6SX_CLK_GPT_SERIAL]   = imx_clk_hw_gate2("gpt_serial",    "perclk",            base + 0x6c, 22);
 	hws[IMX6SX_CLK_GPU]          = imx_clk_hw_gate2("gpu",           "gpu_core_podf",     base + 0x6c, 26);
-	hws[IMX6SX_CLK_OCRAM_S]      = imx_clk_hw_gate2("ocram_s",       "ahb",               base + 0x6c, 28);
+	hws[IMX6SX_CLK_OCRAM_S]      = imx_clk_hw_gate2_flags("ocram_s",       "ahb",               base + 0x6c, 28, CLK_IS_CRITICAL);
 	hws[IMX6SX_CLK_CANFD]        = imx_clk_hw_gate2("canfd",         "can_podf",          base + 0x6c, 30);
 
 	/* CCGR2 */
@@ -494,6 +497,16 @@
 
 	imx_check_clk_hws(hws, IMX6SX_CLK_CLK_END);
 
+	/*
+	 * QSPI2/GPMI_IO share the same clock source but with the
+	 * different gate, need explicitely gate the QSPI2 & GPMI_IO
+	 * during the clock init phase according to the SOC design.
+	 */
+	writel_relaxed(readl_relaxed(base + 0x78) &
+			~(3 << CCM_CCGR_OFFSET(5)), base + 0x78);
+	writel_relaxed(readl_relaxed(base + 0x78) &
+			~(3 << CCM_CCGR_OFFSET(14)), base + 0x78);
+
 	of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_hw_data);
 
 	if (IS_ENABLED(CONFIG_USB_MXS_PHY)) {
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx6ul.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx6ul.c
@@ -126,12 +126,12 @@
 
 	hws[IMX6UL_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
 
-	hws[IMX6UL_CLK_CKIL] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ckil"));
-	hws[IMX6UL_CLK_OSC] = __clk_get_hw(of_clk_get_by_name(ccm_node, "osc"));
+	hws[IMX6UL_CLK_CKIL] = imx_obtain_fixed_clk_hw(ccm_node, "ckil");
+	hws[IMX6UL_CLK_OSC] = imx_obtain_fixed_clk_hw(ccm_node, "osc");
 
 	/* ipp_di clock is external input */
-	hws[IMX6UL_CLK_IPP_DI0] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ipp_di0"));
-	hws[IMX6UL_CLK_IPP_DI1] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ipp_di1"));
+	hws[IMX6UL_CLK_IPP_DI0] = imx_obtain_fixed_clk_hw(ccm_node, "ipp_di0");
+	hws[IMX6UL_CLK_IPP_DI1] = imx_obtain_fixed_clk_hw(ccm_node, "ipp_di1");
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-anatop");
 	base = of_iomap(np, 0);
@@ -161,7 +161,6 @@
 	hws[IMX6UL_PLL5_BYPASS] = imx_clk_hw_mux_flags("pll5_bypass", base + 0xa0, 16, 1, pll5_bypass_sels, ARRAY_SIZE(pll5_bypass_sels), CLK_SET_RATE_PARENT);
 	hws[IMX6UL_PLL6_BYPASS] = imx_clk_hw_mux_flags("pll6_bypass", base + 0xe0, 16, 1, pll6_bypass_sels, ARRAY_SIZE(pll6_bypass_sels), CLK_SET_RATE_PARENT);
 	hws[IMX6UL_PLL7_BYPASS] = imx_clk_hw_mux_flags("pll7_bypass", base + 0x20, 16, 1, pll7_bypass_sels, ARRAY_SIZE(pll7_bypass_sels), CLK_SET_RATE_PARENT);
-	hws[IMX6UL_CLK_CSI_SEL] = imx_clk_hw_mux_flags("csi_sel", base + 0x3c, 9, 2, csi_sels, ARRAY_SIZE(csi_sels), CLK_SET_RATE_PARENT);
 
 	/* Do not bypass PLLs initially */
 	clk_set_parent(hws[IMX6UL_PLL1_BYPASS]->clk, hws[IMX6UL_CLK_PLL1]->clk);
@@ -270,6 +269,7 @@
 	hws[IMX6UL_CLK_ECSPI_SEL]	  = imx_clk_hw_mux("ecspi_sel",	base + 0x38, 18, 1, ecspi_sels, ARRAY_SIZE(ecspi_sels));
 	hws[IMX6UL_CLK_LCDIF_PRE_SEL]	  = imx_clk_hw_mux_flags("lcdif_pre_sel", base + 0x38, 15, 3, lcdif_pre_sels, ARRAY_SIZE(lcdif_pre_sels), CLK_SET_RATE_PARENT);
 	hws[IMX6UL_CLK_LCDIF_SEL]	  = imx_clk_hw_mux("lcdif_sel",	base + 0x38, 9, 3, lcdif_sels, ARRAY_SIZE(lcdif_sels));
+	hws[IMX6UL_CLK_CSI_SEL]		  = imx_clk_hw_mux("csi_sel", base + 0x3c, 9, 2, csi_sels, ARRAY_SIZE(csi_sels));
 
 	hws[IMX6UL_CLK_LDB_DI0_DIV_SEL]  = imx_clk_hw_mux("ldb_di0", base + 0x20, 10, 1, ldb_di0_div_sels, ARRAY_SIZE(ldb_di0_div_sels));
 	hws[IMX6UL_CLK_LDB_DI1_DIV_SEL]  = imx_clk_hw_mux("ldb_di1", base + 0x20, 11, 1, ldb_di1_div_sels, ARRAY_SIZE(ldb_di1_div_sels));
@@ -503,7 +503,7 @@
 		clk_prepare_enable(hws[IMX6UL_CLK_USBPHY2_GATE]->clk);
 	}
 
-	clk_set_parent(hws[IMX6UL_CLK_CAN_SEL]->clk, hws[IMX6UL_CLK_PLL3_60M]->clk);
+	clk_set_parent(hws[IMX6UL_CLK_CAN_SEL]->clk, hws[IMX6UL_CLK_PLL3_80M]->clk);
 	if (clk_on_imx6ul())
 		clk_set_parent(hws[IMX6UL_CLK_SIM_PRE_SEL]->clk, hws[IMX6UL_CLK_PLL3_USB_OTG]->clk);
 	else if (clk_on_imx6ull())
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx7d.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx7d.c
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/imx7d-clock.h>
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
@@ -14,6 +15,7 @@
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
 #include <linux/types.h>
+#include <soc/imx/src.h>
 
 #include "clk.h"
 
@@ -403,8 +405,8 @@
 	hws = clk_hw_data->hws;
 
 	hws[IMX7D_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
-	hws[IMX7D_OSC_24M_CLK] = __clk_get_hw(of_clk_get_by_name(ccm_node, "osc"));
-	hws[IMX7D_CKIL] = __clk_get_hw(of_clk_get_by_name(ccm_node, "ckil"));
+	hws[IMX7D_OSC_24M_CLK] = imx_obtain_fixed_clk_hw(ccm_node, "osc");
+	hws[IMX7D_CKIL] = imx_obtain_fixed_clk_hw(ccm_node, "ckil");
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx7d-anatop");
 	base = of_iomap(np, 0);
@@ -505,72 +507,73 @@
 	hws[IMX7D_ARM_M4_ROOT_SRC] = imx_clk_hw_mux2("arm_m4_src", base + 0x8080, 24, 3, arm_m4_sel, ARRAY_SIZE(arm_m4_sel));
 	hws[IMX7D_MAIN_AXI_ROOT_SRC] = imx_clk_hw_mux2("axi_src", base + 0x8800, 24, 3, axi_sel, ARRAY_SIZE(axi_sel));
 	hws[IMX7D_DISP_AXI_ROOT_SRC] = imx_clk_hw_mux2("disp_axi_src", base + 0x8880, 24, 3, disp_axi_sel, ARRAY_SIZE(disp_axi_sel));
-	hws[IMX7D_ENET_AXI_ROOT_SRC] = imx_clk_hw_mux2("enet_axi_src", base + 0x8900, 24, 3, enet_axi_sel, ARRAY_SIZE(enet_axi_sel));
-	hws[IMX7D_NAND_USDHC_BUS_ROOT_SRC] = imx_clk_hw_mux2("nand_usdhc_src", base + 0x8980, 24, 3, nand_usdhc_bus_sel, ARRAY_SIZE(nand_usdhc_bus_sel));
 	hws[IMX7D_AHB_CHANNEL_ROOT_SRC] = imx_clk_hw_mux2("ahb_src", base + 0x9000, 24, 3, ahb_channel_sel, ARRAY_SIZE(ahb_channel_sel));
-	hws[IMX7D_DRAM_PHYM_ROOT_SRC] = imx_clk_hw_mux2("dram_phym_src", base + 0x9800, 24, 1, dram_phym_sel, ARRAY_SIZE(dram_phym_sel));
-	hws[IMX7D_DRAM_ROOT_SRC] = imx_clk_hw_mux2("dram_src", base + 0x9880, 24, 1, dram_sel, ARRAY_SIZE(dram_sel));
-	hws[IMX7D_DRAM_PHYM_ALT_ROOT_SRC] = imx_clk_hw_mux2("dram_phym_alt_src", base + 0xa000, 24, 3, dram_phym_alt_sel, ARRAY_SIZE(dram_phym_alt_sel));
-	hws[IMX7D_DRAM_ALT_ROOT_SRC]  = imx_clk_hw_mux2("dram_alt_src", base + 0xa080, 24, 3, dram_alt_sel, ARRAY_SIZE(dram_alt_sel));
-	hws[IMX7D_USB_HSIC_ROOT_SRC] = imx_clk_hw_mux2("usb_hsic_src", base + 0xa100, 24, 3, usb_hsic_sel, ARRAY_SIZE(usb_hsic_sel));
-	hws[IMX7D_PCIE_CTRL_ROOT_SRC] = imx_clk_hw_mux2("pcie_ctrl_src", base + 0xa180, 24, 3, pcie_ctrl_sel, ARRAY_SIZE(pcie_ctrl_sel));
-	hws[IMX7D_PCIE_PHY_ROOT_SRC] = imx_clk_hw_mux2("pcie_phy_src", base + 0xa200, 24, 3, pcie_phy_sel, ARRAY_SIZE(pcie_phy_sel));
-	hws[IMX7D_EPDC_PIXEL_ROOT_SRC] = imx_clk_hw_mux2("epdc_pixel_src", base + 0xa280, 24, 3, epdc_pixel_sel, ARRAY_SIZE(epdc_pixel_sel));
-	hws[IMX7D_LCDIF_PIXEL_ROOT_SRC] = imx_clk_hw_mux2("lcdif_pixel_src", base + 0xa300, 24, 3, lcdif_pixel_sel, ARRAY_SIZE(lcdif_pixel_sel));
-	hws[IMX7D_MIPI_DSI_ROOT_SRC] = imx_clk_hw_mux2("mipi_dsi_src", base + 0xa380, 24, 3,  mipi_dsi_sel, ARRAY_SIZE(mipi_dsi_sel));
-	hws[IMX7D_MIPI_CSI_ROOT_SRC] = imx_clk_hw_mux2("mipi_csi_src", base + 0xa400, 24, 3, mipi_csi_sel, ARRAY_SIZE(mipi_csi_sel));
-	hws[IMX7D_MIPI_DPHY_ROOT_SRC] = imx_clk_hw_mux2("mipi_dphy_src", base + 0xa480, 24, 3, mipi_dphy_sel, ARRAY_SIZE(mipi_dphy_sel));
-	hws[IMX7D_SAI1_ROOT_SRC] = imx_clk_hw_mux2("sai1_src", base + 0xa500, 24, 3, sai1_sel, ARRAY_SIZE(sai1_sel));
-	hws[IMX7D_SAI2_ROOT_SRC] = imx_clk_hw_mux2("sai2_src", base + 0xa580, 24, 3, sai2_sel, ARRAY_SIZE(sai2_sel));
-	hws[IMX7D_SAI3_ROOT_SRC] = imx_clk_hw_mux2("sai3_src", base + 0xa600, 24, 3, sai3_sel, ARRAY_SIZE(sai3_sel));
-	hws[IMX7D_SPDIF_ROOT_SRC] = imx_clk_hw_mux2("spdif_src", base + 0xa680, 24, 3, spdif_sel, ARRAY_SIZE(spdif_sel));
-	hws[IMX7D_ENET1_REF_ROOT_SRC] = imx_clk_hw_mux2("enet1_ref_src", base + 0xa700, 24, 3, enet1_ref_sel, ARRAY_SIZE(enet1_ref_sel));
-	hws[IMX7D_ENET1_TIME_ROOT_SRC] = imx_clk_hw_mux2("enet1_time_src", base + 0xa780, 24, 3, enet1_time_sel, ARRAY_SIZE(enet1_time_sel));
-	hws[IMX7D_ENET2_REF_ROOT_SRC] = imx_clk_hw_mux2("enet2_ref_src", base + 0xa800, 24, 3, enet2_ref_sel, ARRAY_SIZE(enet2_ref_sel));
-	hws[IMX7D_ENET2_TIME_ROOT_SRC] = imx_clk_hw_mux2("enet2_time_src", base + 0xa880, 24, 3, enet2_time_sel, ARRAY_SIZE(enet2_time_sel));
-	hws[IMX7D_ENET_PHY_REF_ROOT_SRC] = imx_clk_hw_mux2("enet_phy_ref_src", base + 0xa900, 24, 3, enet_phy_ref_sel, ARRAY_SIZE(enet_phy_ref_sel));
-	hws[IMX7D_EIM_ROOT_SRC] = imx_clk_hw_mux2("eim_src", base + 0xa980, 24, 3, eim_sel, ARRAY_SIZE(eim_sel));
-	hws[IMX7D_NAND_ROOT_SRC] = imx_clk_hw_mux2("nand_src", base + 0xaa00, 24, 3, nand_sel, ARRAY_SIZE(nand_sel));
-	hws[IMX7D_QSPI_ROOT_SRC] = imx_clk_hw_mux2("qspi_src", base + 0xaa80, 24, 3, qspi_sel, ARRAY_SIZE(qspi_sel));
-	hws[IMX7D_USDHC1_ROOT_SRC] = imx_clk_hw_mux2("usdhc1_src", base + 0xab00, 24, 3, usdhc1_sel, ARRAY_SIZE(usdhc1_sel));
-	hws[IMX7D_USDHC2_ROOT_SRC] = imx_clk_hw_mux2("usdhc2_src", base + 0xab80, 24, 3, usdhc2_sel, ARRAY_SIZE(usdhc2_sel));
-	hws[IMX7D_USDHC3_ROOT_SRC] = imx_clk_hw_mux2("usdhc3_src", base + 0xac00, 24, 3, usdhc3_sel, ARRAY_SIZE(usdhc3_sel));
-	hws[IMX7D_CAN1_ROOT_SRC] = imx_clk_hw_mux2("can1_src", base + 0xac80, 24, 3, can1_sel, ARRAY_SIZE(can1_sel));
-	hws[IMX7D_CAN2_ROOT_SRC] = imx_clk_hw_mux2("can2_src", base + 0xad00, 24, 3, can2_sel, ARRAY_SIZE(can2_sel));
-	hws[IMX7D_I2C1_ROOT_SRC] = imx_clk_hw_mux2("i2c1_src", base + 0xad80, 24, 3, i2c1_sel, ARRAY_SIZE(i2c1_sel));
-	hws[IMX7D_I2C2_ROOT_SRC] = imx_clk_hw_mux2("i2c2_src", base + 0xae00, 24, 3, i2c2_sel, ARRAY_SIZE(i2c2_sel));
-	hws[IMX7D_I2C3_ROOT_SRC] = imx_clk_hw_mux2("i2c3_src", base + 0xae80, 24, 3, i2c3_sel, ARRAY_SIZE(i2c3_sel));
-	hws[IMX7D_I2C4_ROOT_SRC] = imx_clk_hw_mux2("i2c4_src", base + 0xaf00, 24, 3, i2c4_sel, ARRAY_SIZE(i2c4_sel));
-	hws[IMX7D_UART1_ROOT_SRC] = imx_clk_hw_mux2("uart1_src", base + 0xaf80, 24, 3, uart1_sel, ARRAY_SIZE(uart1_sel));
-	hws[IMX7D_UART2_ROOT_SRC] = imx_clk_hw_mux2("uart2_src", base + 0xb000, 24, 3, uart2_sel, ARRAY_SIZE(uart2_sel));
-	hws[IMX7D_UART3_ROOT_SRC] = imx_clk_hw_mux2("uart3_src", base + 0xb080, 24, 3, uart3_sel, ARRAY_SIZE(uart3_sel));
-	hws[IMX7D_UART4_ROOT_SRC] = imx_clk_hw_mux2("uart4_src", base + 0xb100, 24, 3, uart4_sel, ARRAY_SIZE(uart4_sel));
-	hws[IMX7D_UART5_ROOT_SRC] = imx_clk_hw_mux2("uart5_src", base + 0xb180, 24, 3, uart5_sel, ARRAY_SIZE(uart5_sel));
-	hws[IMX7D_UART6_ROOT_SRC] = imx_clk_hw_mux2("uart6_src", base + 0xb200, 24, 3, uart6_sel, ARRAY_SIZE(uart6_sel));
-	hws[IMX7D_UART7_ROOT_SRC] = imx_clk_hw_mux2("uart7_src", base + 0xb280, 24, 3, uart7_sel, ARRAY_SIZE(uart7_sel));
-	hws[IMX7D_ECSPI1_ROOT_SRC] = imx_clk_hw_mux2("ecspi1_src", base + 0xb300, 24, 3, ecspi1_sel, ARRAY_SIZE(ecspi1_sel));
-	hws[IMX7D_ECSPI2_ROOT_SRC] = imx_clk_hw_mux2("ecspi2_src", base + 0xb380, 24, 3, ecspi2_sel, ARRAY_SIZE(ecspi2_sel));
-	hws[IMX7D_ECSPI3_ROOT_SRC] = imx_clk_hw_mux2("ecspi3_src", base + 0xb400, 24, 3, ecspi3_sel, ARRAY_SIZE(ecspi3_sel));
-	hws[IMX7D_ECSPI4_ROOT_SRC] = imx_clk_hw_mux2("ecspi4_src", base + 0xb480, 24, 3, ecspi4_sel, ARRAY_SIZE(ecspi4_sel));
-	hws[IMX7D_PWM1_ROOT_SRC] = imx_clk_hw_mux2("pwm1_src", base + 0xb500, 24, 3, pwm1_sel, ARRAY_SIZE(pwm1_sel));
-	hws[IMX7D_PWM2_ROOT_SRC] = imx_clk_hw_mux2("pwm2_src", base + 0xb580, 24, 3, pwm2_sel, ARRAY_SIZE(pwm2_sel));
-	hws[IMX7D_PWM3_ROOT_SRC] = imx_clk_hw_mux2("pwm3_src", base + 0xb600, 24, 3, pwm3_sel, ARRAY_SIZE(pwm3_sel));
-	hws[IMX7D_PWM4_ROOT_SRC] = imx_clk_hw_mux2("pwm4_src", base + 0xb680, 24, 3, pwm4_sel, ARRAY_SIZE(pwm4_sel));
-	hws[IMX7D_FLEXTIMER1_ROOT_SRC] = imx_clk_hw_mux2("flextimer1_src", base + 0xb700, 24, 3, flextimer1_sel, ARRAY_SIZE(flextimer1_sel));
-	hws[IMX7D_FLEXTIMER2_ROOT_SRC] = imx_clk_hw_mux2("flextimer2_src", base + 0xb780, 24, 3, flextimer2_sel, ARRAY_SIZE(flextimer2_sel));
-	hws[IMX7D_SIM1_ROOT_SRC] = imx_clk_hw_mux2("sim1_src", base + 0xb800, 24, 3, sim1_sel, ARRAY_SIZE(sim1_sel));
-	hws[IMX7D_SIM2_ROOT_SRC] = imx_clk_hw_mux2("sim2_src", base + 0xb880, 24, 3, sim2_sel, ARRAY_SIZE(sim2_sel));
-	hws[IMX7D_GPT1_ROOT_SRC] = imx_clk_hw_mux2("gpt1_src", base + 0xb900, 24, 3, gpt1_sel, ARRAY_SIZE(gpt1_sel));
-	hws[IMX7D_GPT2_ROOT_SRC] = imx_clk_hw_mux2("gpt2_src", base + 0xb980, 24, 3, gpt2_sel, ARRAY_SIZE(gpt2_sel));
-	hws[IMX7D_GPT3_ROOT_SRC] = imx_clk_hw_mux2("gpt3_src", base + 0xba00, 24, 3, gpt3_sel, ARRAY_SIZE(gpt3_sel));
-	hws[IMX7D_GPT4_ROOT_SRC] = imx_clk_hw_mux2("gpt4_src", base + 0xba80, 24, 3, gpt4_sel, ARRAY_SIZE(gpt4_sel));
-	hws[IMX7D_TRACE_ROOT_SRC] = imx_clk_hw_mux2("trace_src", base + 0xbb00, 24, 3, trace_sel, ARRAY_SIZE(trace_sel));
-	hws[IMX7D_WDOG_ROOT_SRC] = imx_clk_hw_mux2("wdog_src", base + 0xbb80, 24, 3, wdog_sel, ARRAY_SIZE(wdog_sel));
-	hws[IMX7D_CSI_MCLK_ROOT_SRC] = imx_clk_hw_mux2("csi_mclk_src", base + 0xbc00, 24, 3, csi_mclk_sel, ARRAY_SIZE(csi_mclk_sel));
-	hws[IMX7D_AUDIO_MCLK_ROOT_SRC] = imx_clk_hw_mux2("audio_mclk_src", base + 0xbc80, 24, 3, audio_mclk_sel, ARRAY_SIZE(audio_mclk_sel));
-	hws[IMX7D_WRCLK_ROOT_SRC] = imx_clk_hw_mux2("wrclk_src", base + 0xbd00, 24, 3, wrclk_sel, ARRAY_SIZE(wrclk_sel));
-	hws[IMX7D_CLKO1_ROOT_SRC] = imx_clk_hw_mux2("clko1_src", base + 0xbd80, 24, 3, clko1_sel, ARRAY_SIZE(clko1_sel));
-	hws[IMX7D_CLKO2_ROOT_SRC] = imx_clk_hw_mux2("clko2_src", base + 0xbe00, 24, 3, clko2_sel, ARRAY_SIZE(clko2_sel));
+
+	hws[IMX7D_ENET_AXI_ROOT_SRC] = imx_clk_hw_mux2_flags("enet_axi_src", base + 0x8900, 24, 3, enet_axi_sel, ARRAY_SIZE(enet_axi_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_NAND_USDHC_BUS_ROOT_SRC] = imx_clk_hw_mux2_flags("nand_usdhc_src", base + 0x8980, 24, 3, nand_usdhc_bus_sel, ARRAY_SIZE(nand_usdhc_bus_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_DRAM_PHYM_ROOT_SRC] = imx_clk_hw_mux2_flags("dram_phym_src", base + 0x9800, 24, 1, dram_phym_sel, ARRAY_SIZE(dram_phym_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_DRAM_ROOT_SRC] = imx_clk_hw_mux2_flags("dram_src", base + 0x9880, 24, 1, dram_sel, ARRAY_SIZE(dram_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_DRAM_PHYM_ALT_ROOT_SRC] = imx_clk_hw_mux2_flags("dram_phym_alt_src", base + 0xa000, 24, 3, dram_phym_alt_sel, ARRAY_SIZE(dram_phym_alt_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_DRAM_ALT_ROOT_SRC]  = imx_clk_hw_mux2_flags("dram_alt_src", base + 0xa080, 24, 3, dram_alt_sel, ARRAY_SIZE(dram_alt_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_USB_HSIC_ROOT_SRC] = imx_clk_hw_mux2_flags("usb_hsic_src", base + 0xa100, 24, 3, usb_hsic_sel, ARRAY_SIZE(usb_hsic_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_PCIE_CTRL_ROOT_SRC] = imx_clk_hw_mux2_flags("pcie_ctrl_src", base + 0xa180, 24, 3, pcie_ctrl_sel, ARRAY_SIZE(pcie_ctrl_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_PCIE_PHY_ROOT_SRC] = imx_clk_hw_mux2_flags("pcie_phy_src", base + 0xa200, 24, 3, pcie_phy_sel, ARRAY_SIZE(pcie_phy_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_EPDC_PIXEL_ROOT_SRC] = imx_clk_hw_mux2_flags("epdc_pixel_src", base + 0xa280, 24, 3, epdc_pixel_sel, ARRAY_SIZE(epdc_pixel_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_LCDIF_PIXEL_ROOT_SRC] = imx_clk_hw_mux2_flags("lcdif_pixel_src", base + 0xa300, 24, 3, lcdif_pixel_sel, ARRAY_SIZE(lcdif_pixel_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_MIPI_DSI_ROOT_SRC] = imx_clk_hw_mux2_flags("mipi_dsi_src", base + 0xa380, 24, 3,  mipi_dsi_sel, ARRAY_SIZE(mipi_dsi_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_MIPI_CSI_ROOT_SRC] = imx_clk_hw_mux2_flags("mipi_csi_src", base + 0xa400, 24, 3, mipi_csi_sel, ARRAY_SIZE(mipi_csi_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_MIPI_DPHY_ROOT_SRC] = imx_clk_hw_mux2_flags("mipi_dphy_src", base + 0xa480, 24, 3, mipi_dphy_sel, ARRAY_SIZE(mipi_dphy_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_SAI1_ROOT_SRC] = imx_clk_hw_mux2_flags("sai1_src", base + 0xa500, 24, 3, sai1_sel, ARRAY_SIZE(sai1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_SAI2_ROOT_SRC] = imx_clk_hw_mux2_flags("sai2_src", base + 0xa580, 24, 3, sai2_sel, ARRAY_SIZE(sai2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_SAI3_ROOT_SRC] = imx_clk_hw_mux2_flags("sai3_src", base + 0xa600, 24, 3, sai3_sel, ARRAY_SIZE(sai3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_SPDIF_ROOT_SRC] = imx_clk_hw_mux2_flags("spdif_src", base + 0xa680, 24, 3, spdif_sel, ARRAY_SIZE(spdif_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ENET1_REF_ROOT_SRC] = imx_clk_hw_mux2_flags("enet1_ref_src", base + 0xa700, 24, 3, enet1_ref_sel, ARRAY_SIZE(enet1_ref_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ENET1_TIME_ROOT_SRC] = imx_clk_hw_mux2_flags("enet1_time_src", base + 0xa780, 24, 3, enet1_time_sel, ARRAY_SIZE(enet1_time_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ENET2_REF_ROOT_SRC] = imx_clk_hw_mux2_flags("enet2_ref_src", base + 0xa800, 24, 3, enet2_ref_sel, ARRAY_SIZE(enet2_ref_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ENET2_TIME_ROOT_SRC] = imx_clk_hw_mux2_flags("enet2_time_src", base + 0xa880, 24, 3, enet2_time_sel, ARRAY_SIZE(enet2_time_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ENET_PHY_REF_ROOT_SRC] = imx_clk_hw_mux2_flags("enet_phy_ref_src", base + 0xa900, 24, 3, enet_phy_ref_sel, ARRAY_SIZE(enet_phy_ref_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_EIM_ROOT_SRC] = imx_clk_hw_mux2_flags("eim_src", base + 0xa980, 24, 3, eim_sel, ARRAY_SIZE(eim_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_NAND_ROOT_SRC] = imx_clk_hw_mux2_flags("nand_src", base + 0xaa00, 24, 3, nand_sel, ARRAY_SIZE(nand_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_QSPI_ROOT_SRC] = imx_clk_hw_mux2_flags("qspi_src", base + 0xaa80, 24, 3, qspi_sel, ARRAY_SIZE(qspi_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_USDHC1_ROOT_SRC] = imx_clk_hw_mux2_flags("usdhc1_src", base + 0xab00, 24, 3, usdhc1_sel, ARRAY_SIZE(usdhc1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_USDHC2_ROOT_SRC] = imx_clk_hw_mux2_flags("usdhc2_src", base + 0xab80, 24, 3, usdhc2_sel, ARRAY_SIZE(usdhc2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_USDHC3_ROOT_SRC] = imx_clk_hw_mux2_flags("usdhc3_src", base + 0xac00, 24, 3, usdhc3_sel, ARRAY_SIZE(usdhc3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_CAN1_ROOT_SRC] = imx_clk_hw_mux2_flags("can1_src", base + 0xac80, 24, 3, can1_sel, ARRAY_SIZE(can1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_CAN2_ROOT_SRC] = imx_clk_hw_mux2_flags("can2_src", base + 0xad00, 24, 3, can2_sel, ARRAY_SIZE(can2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_I2C1_ROOT_SRC] = imx_clk_hw_mux2_flags("i2c1_src", base + 0xad80, 24, 3, i2c1_sel, ARRAY_SIZE(i2c1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_I2C2_ROOT_SRC] = imx_clk_hw_mux2_flags("i2c2_src", base + 0xae00, 24, 3, i2c2_sel, ARRAY_SIZE(i2c2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_I2C3_ROOT_SRC] = imx_clk_hw_mux2_flags("i2c3_src", base + 0xae80, 24, 3, i2c3_sel, ARRAY_SIZE(i2c3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_I2C4_ROOT_SRC] = imx_clk_hw_mux2_flags("i2c4_src", base + 0xaf00, 24, 3, i2c4_sel, ARRAY_SIZE(i2c4_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART1_ROOT_SRC] = imx_clk_hw_mux2_flags("uart1_src", base + 0xaf80, 24, 3, uart1_sel, ARRAY_SIZE(uart1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART2_ROOT_SRC] = imx_clk_hw_mux2_flags("uart2_src", base + 0xb000, 24, 3, uart2_sel, ARRAY_SIZE(uart2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART3_ROOT_SRC] = imx_clk_hw_mux2_flags("uart3_src", base + 0xb080, 24, 3, uart3_sel, ARRAY_SIZE(uart3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART4_ROOT_SRC] = imx_clk_hw_mux2_flags("uart4_src", base + 0xb100, 24, 3, uart4_sel, ARRAY_SIZE(uart4_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART5_ROOT_SRC] = imx_clk_hw_mux2_flags("uart5_src", base + 0xb180, 24, 3, uart5_sel, ARRAY_SIZE(uart5_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART6_ROOT_SRC] = imx_clk_hw_mux2_flags("uart6_src", base + 0xb200, 24, 3, uart6_sel, ARRAY_SIZE(uart6_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_UART7_ROOT_SRC] = imx_clk_hw_mux2_flags("uart7_src", base + 0xb280, 24, 3, uart7_sel, ARRAY_SIZE(uart7_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ECSPI1_ROOT_SRC] = imx_clk_hw_mux2_flags("ecspi1_src", base + 0xb300, 24, 3, ecspi1_sel, ARRAY_SIZE(ecspi1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ECSPI2_ROOT_SRC] = imx_clk_hw_mux2_flags("ecspi2_src", base + 0xb380, 24, 3, ecspi2_sel, ARRAY_SIZE(ecspi2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ECSPI3_ROOT_SRC] = imx_clk_hw_mux2_flags("ecspi3_src", base + 0xb400, 24, 3, ecspi3_sel, ARRAY_SIZE(ecspi3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_ECSPI4_ROOT_SRC] = imx_clk_hw_mux2_flags("ecspi4_src", base + 0xb480, 24, 3, ecspi4_sel, ARRAY_SIZE(ecspi4_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_PWM1_ROOT_SRC] = imx_clk_hw_mux2_flags("pwm1_src", base + 0xb500, 24, 3, pwm1_sel, ARRAY_SIZE(pwm1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_PWM2_ROOT_SRC] = imx_clk_hw_mux2_flags("pwm2_src", base + 0xb580, 24, 3, pwm2_sel, ARRAY_SIZE(pwm2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_PWM3_ROOT_SRC] = imx_clk_hw_mux2_flags("pwm3_src", base + 0xb600, 24, 3, pwm3_sel, ARRAY_SIZE(pwm3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_PWM4_ROOT_SRC] = imx_clk_hw_mux2_flags("pwm4_src", base + 0xb680, 24, 3, pwm4_sel, ARRAY_SIZE(pwm4_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_FLEXTIMER1_ROOT_SRC] = imx_clk_hw_mux2_flags("flextimer1_src", base + 0xb700, 24, 3, flextimer1_sel, ARRAY_SIZE(flextimer1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_FLEXTIMER2_ROOT_SRC] = imx_clk_hw_mux2_flags("flextimer2_src", base + 0xb780, 24, 3, flextimer2_sel, ARRAY_SIZE(flextimer2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_SIM1_ROOT_SRC] = imx_clk_hw_mux2_flags("sim1_src", base + 0xb800, 24, 3, sim1_sel, ARRAY_SIZE(sim1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_SIM2_ROOT_SRC] = imx_clk_hw_mux2_flags("sim2_src", base + 0xb880, 24, 3, sim2_sel, ARRAY_SIZE(sim2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_GPT1_ROOT_SRC] = imx_clk_hw_mux2_flags("gpt1_src", base + 0xb900, 24, 3, gpt1_sel, ARRAY_SIZE(gpt1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_GPT2_ROOT_SRC] = imx_clk_hw_mux2_flags("gpt2_src", base + 0xb980, 24, 3, gpt2_sel, ARRAY_SIZE(gpt2_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_GPT3_ROOT_SRC] = imx_clk_hw_mux2_flags("gpt3_src", base + 0xba00, 24, 3, gpt3_sel, ARRAY_SIZE(gpt3_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_GPT4_ROOT_SRC] = imx_clk_hw_mux2_flags("gpt4_src", base + 0xba80, 24, 3, gpt4_sel, ARRAY_SIZE(gpt4_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_TRACE_ROOT_SRC] = imx_clk_hw_mux2_flags("trace_src", base + 0xbb00, 24, 3, trace_sel, ARRAY_SIZE(trace_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_WDOG_ROOT_SRC] = imx_clk_hw_mux2_flags("wdog_src", base + 0xbb80, 24, 3, wdog_sel, ARRAY_SIZE(wdog_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_CSI_MCLK_ROOT_SRC] = imx_clk_hw_mux2_flags("csi_mclk_src", base + 0xbc00, 24, 3, csi_mclk_sel, ARRAY_SIZE(csi_mclk_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_AUDIO_MCLK_ROOT_SRC] = imx_clk_hw_mux2_flags("audio_mclk_src", base + 0xbc80, 24, 3, audio_mclk_sel, ARRAY_SIZE(audio_mclk_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_WRCLK_ROOT_SRC] = imx_clk_hw_mux2_flags("wrclk_src", base + 0xbd00, 24, 3, wrclk_sel, ARRAY_SIZE(wrclk_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_CLKO1_ROOT_SRC] = imx_clk_hw_mux2_flags("clko1_src", base + 0xbd80, 24, 3, clko1_sel, ARRAY_SIZE(clko1_sel), CLK_SET_PARENT_GATE);
+	hws[IMX7D_CLKO2_ROOT_SRC] = imx_clk_hw_mux2_flags("clko2_src", base + 0xbe00, 24, 3, clko2_sel, ARRAY_SIZE(clko2_sel), CLK_SET_PARENT_GATE);
 
 	hws[IMX7D_ARM_A7_ROOT_CG] = imx_clk_hw_gate3("arm_a7_cg", "arm_a7_src", base + 0x8000, 28);
 	hws[IMX7D_ARM_M4_ROOT_CG] = imx_clk_hw_gate3("arm_m4_cg", "arm_m4_src", base + 0x8080, 28);
@@ -802,6 +805,7 @@
 	hws[IMX7D_PCIE_PHY_ROOT_CLK] = imx_clk_hw_gate4("pcie_phy_root_clk", "pcie_phy_post_div", base + 0x4600, 0);
 	hws[IMX7D_EPDC_PIXEL_ROOT_CLK] = imx_clk_hw_gate4("epdc_pixel_root_clk", "epdc_pixel_post_div", base + 0x44a0, 0);
 	hws[IMX7D_LCDIF_PIXEL_ROOT_CLK] = imx_clk_hw_gate4("lcdif_pixel_root_clk", "lcdif_pixel_post_div", base + 0x44b0, 0);
+	hws[IMX7D_PXP_CLK] = imx_clk_hw_gate4("pxp_clk", "main_axi_root_clk", base + 0x44c0, 0);
 	hws[IMX7D_MIPI_DSI_ROOT_CLK] = imx_clk_hw_gate4("mipi_dsi_root_clk", "mipi_dsi_post_div", base + 0x4650, 0);
 	hws[IMX7D_MIPI_CSI_ROOT_CLK] = imx_clk_hw_gate4("mipi_csi_root_clk", "mipi_csi_post_div", base + 0x4640, 0);
 	hws[IMX7D_MIPI_DPHY_ROOT_CLK] = imx_clk_hw_gate4("mipi_dphy_root_clk", "mipi_dphy_post_div", base + 0x4660, 0);
@@ -859,7 +863,6 @@
 	hws[IMX7D_WDOG4_ROOT_CLK] = imx_clk_hw_gate4("wdog4_root_clk", "wdog_post_div", base + 0x49f0, 0);
 	hws[IMX7D_KPP_ROOT_CLK] = imx_clk_hw_gate4("kpp_root_clk", "ipg_root_clk", base + 0x4aa0, 0);
 	hws[IMX7D_CSI_MCLK_ROOT_CLK] = imx_clk_hw_gate4("csi_mclk_root_clk", "csi_mclk_post_div", base + 0x4490, 0);
-	hws[IMX7D_AUDIO_MCLK_ROOT_CLK] = imx_clk_hw_gate4("audio_mclk_root_clk", "audio_mclk_post_div", base + 0x4790, 0);
 	hws[IMX7D_WRCLK_ROOT_CLK] = imx_clk_hw_gate4("wrclk_root_clk", "wrclk_post_div", base + 0x47a0, 0);
 	hws[IMX7D_USB_CTRL_CLK] = imx_clk_hw_gate4("usb_ctrl_clk", "ahb_root_clk", base + 0x4680, 0);
 	hws[IMX7D_USB_PHY1_CLK] = imx_clk_hw_gate4("usb_phy1_clk", "pll_usb1_main_clk", base + 0x46a0, 0);
@@ -887,6 +890,11 @@
 
 	clk_set_parent(hws[IMX7D_MIPI_CSI_ROOT_SRC]->clk, hws[IMX7D_PLL_SYS_PFD3_CLK]->clk);
 
+	if (imx_src_is_m4_enabled()) {
+		clk_set_parent(hws[IMX7D_ARM_M4_ROOT_SRC]->clk, hws[IMX7D_PLL_SYS_MAIN_240M_CLK]->clk);
+		clk_prepare_enable(hws[IMX7D_ARM_M4_ROOT_CLK]->clk);
+	}
+
 	/* use old gpt clk setting, gpt1 root clk must be twice as gpt counter freq */
 	clk_set_parent(hws[IMX7D_GPT1_ROOT_SRC]->clk, hws[IMX7D_OSC_24M_CLK]->clk);
 
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx7ulp.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx7ulp.c
@@ -8,7 +8,7 @@
  */
 
 #include <dt-bindings/clock/imx7ulp-clock.h>
-#include <linux/clk.h>
+#include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/io.h>
@@ -24,8 +24,8 @@
 static const char * const spll_sels[]		= { "spll", "spll_pfd_sel", };
 static const char * const apll_pfd_sels[]	= { "apll_pfd0", "apll_pfd1", "apll_pfd2", "apll_pfd3", };
 static const char * const apll_sels[]		= { "apll", "apll_pfd_sel", };
-static const char * const scs_sels[]		= { "dummy", "sosc", "sirc", "firc", "dummy", "apll_sel", "spll_sel", "upll", };
-static const char * const ddr_sels[]		= { "apll_pfd_sel", "upll", };
+static const char * const scs_sels[]		= { "dummy", "sosc", "sirc", "firc", "dummy", "apll_sel", "spll_sel", "dummy", };
+static const char * const ddr_sels[]		= { "apll_pfd_sel", "dummy", "dummy", "dummy", };
 static const char * const nic_sels[]		= { "firc", "ddr_clk", };
 static const char * const periph_plat_sels[]	= { "dummy", "nic1_bus_clk", "nic1_clk", "ddr_clk", "apll_pfd2", "apll_pfd1", "apll_pfd0", "upll", };
 static const char * const periph_bus_sels[]	= { "dummy", "sosc_bus_clk", "mpll", "firc_bus_clk", "rosc", "nic1_bus_clk", "nic1_clk", "spll_bus_clk", };
@@ -40,6 +40,7 @@
 	{ .val = 5, .div = 16, },
 	{ .val = 6, .div = 32, },
 	{ .val = 7, .div = 64, },
+	{ /* sentinel */ },
 };
 
 static const int pcc2_uart_clk_ids[] __initconst = {
@@ -58,7 +59,7 @@
 static void __init imx7ulp_clk_scg1_init(struct device_node *np)
 {
 	struct clk_hw_onecell_data *clk_data;
-	struct clk_hw **clks;
+	struct clk_hw **hws;
 	void __iomem *base;
 
 	clk_data = kzalloc(struct_size(clk_data, hws, IMX7ULP_CLK_SCG1_END),
@@ -67,77 +68,76 @@
 		return;
 
 	clk_data->num = IMX7ULP_CLK_SCG1_END;
-	clks = clk_data->hws;
+	hws = clk_data->hws;
 
-	clks[IMX7ULP_CLK_DUMMY]		= imx_clk_hw_fixed("dummy", 0);
+	hws[IMX7ULP_CLK_DUMMY]		= imx_clk_hw_fixed("dummy", 0);
 
-	clks[IMX7ULP_CLK_ROSC]		= imx_obtain_fixed_clk_hw(np, "rosc");
-	clks[IMX7ULP_CLK_SOSC]		= imx_obtain_fixed_clk_hw(np, "sosc");
-	clks[IMX7ULP_CLK_SIRC]		= imx_obtain_fixed_clk_hw(np, "sirc");
-	clks[IMX7ULP_CLK_FIRC]		= imx_obtain_fixed_clk_hw(np, "firc");
-	clks[IMX7ULP_CLK_MIPI_PLL]	= imx_obtain_fixed_clk_hw(np, "mpll");
-	clks[IMX7ULP_CLK_UPLL]		= imx_obtain_fixed_clk_hw(np, "upll");
+	hws[IMX7ULP_CLK_ROSC]		= imx_obtain_fixed_clk_hw(np, "rosc");
+	hws[IMX7ULP_CLK_SOSC]		= imx_obtain_fixed_clk_hw(np, "sosc");
+	hws[IMX7ULP_CLK_SIRC]		= imx_obtain_fixed_clk_hw(np, "sirc");
+	hws[IMX7ULP_CLK_FIRC]		= imx_obtain_fixed_clk_hw(np, "firc");
+	hws[IMX7ULP_CLK_UPLL]		= imx_obtain_fixed_clk_hw(np, "upll");
 
 	/* SCG1 */
 	base = of_iomap(np, 0);
 	WARN_ON(!base);
 
 	/* NOTE: xPLL config can't be changed when xPLL is enabled */
-	clks[IMX7ULP_CLK_APLL_PRE_SEL]	= imx_clk_hw_mux_flags("apll_pre_sel", base + 0x508, 0, 1, pll_pre_sels, ARRAY_SIZE(pll_pre_sels), CLK_SET_PARENT_GATE);
-	clks[IMX7ULP_CLK_SPLL_PRE_SEL]	= imx_clk_hw_mux_flags("spll_pre_sel", base + 0x608, 0, 1, pll_pre_sels, ARRAY_SIZE(pll_pre_sels), CLK_SET_PARENT_GATE);
+	hws[IMX7ULP_CLK_APLL_PRE_SEL]	= imx_clk_hw_mux_flags("apll_pre_sel", base + 0x508, 0, 1, pll_pre_sels, ARRAY_SIZE(pll_pre_sels), CLK_SET_PARENT_GATE);
+	hws[IMX7ULP_CLK_SPLL_PRE_SEL]	= imx_clk_hw_mux_flags("spll_pre_sel", base + 0x608, 0, 1, pll_pre_sels, ARRAY_SIZE(pll_pre_sels), CLK_SET_PARENT_GATE);
 
 	/*							   name		    parent_name	   reg			shift	width	flags */
-	clks[IMX7ULP_CLK_APLL_PRE_DIV]	= imx_clk_hw_divider_flags("apll_pre_div", "apll_pre_sel", base + 0x508,	8,	3,	CLK_SET_RATE_GATE);
-	clks[IMX7ULP_CLK_SPLL_PRE_DIV]	= imx_clk_hw_divider_flags("spll_pre_div", "spll_pre_sel", base + 0x608,	8,	3,	CLK_SET_RATE_GATE);
+	hws[IMX7ULP_CLK_APLL_PRE_DIV]	= imx_clk_hw_divider_flags("apll_pre_div", "apll_pre_sel", base + 0x508,	8,	3,	CLK_SET_RATE_GATE);
+	hws[IMX7ULP_CLK_SPLL_PRE_DIV]	= imx_clk_hw_divider_flags("spll_pre_div", "spll_pre_sel", base + 0x608,	8,	3,	CLK_SET_RATE_GATE);
 
 	/*						name	 parent_name	 base */
-	clks[IMX7ULP_CLK_APLL]		= imx_clk_pllv4("apll",  "apll_pre_div", base + 0x500);
-	clks[IMX7ULP_CLK_SPLL]		= imx_clk_pllv4("spll",  "spll_pre_div", base + 0x600);
+	hws[IMX7ULP_CLK_APLL]		= imx_clk_hw_pllv4("apll",  "apll_pre_div", base + 0x500);
+	hws[IMX7ULP_CLK_SPLL]		= imx_clk_hw_pllv4("spll",  "spll_pre_div", base + 0x600);
 
 	/* APLL PFDs */
-	clks[IMX7ULP_CLK_APLL_PFD0]	= imx_clk_pfdv2("apll_pfd0", "apll", base + 0x50c, 0);
-	clks[IMX7ULP_CLK_APLL_PFD1]	= imx_clk_pfdv2("apll_pfd1", "apll", base + 0x50c, 1);
-	clks[IMX7ULP_CLK_APLL_PFD2]	= imx_clk_pfdv2("apll_pfd2", "apll", base + 0x50c, 2);
-	clks[IMX7ULP_CLK_APLL_PFD3]	= imx_clk_pfdv2("apll_pfd3", "apll", base + 0x50c, 3);
+	hws[IMX7ULP_CLK_APLL_PFD0]	= imx_clk_hw_pfdv2("apll_pfd0", "apll", base + 0x50c, 0);
+	hws[IMX7ULP_CLK_APLL_PFD1]	= imx_clk_hw_pfdv2("apll_pfd1", "apll", base + 0x50c, 1);
+	hws[IMX7ULP_CLK_APLL_PFD2]	= imx_clk_hw_pfdv2("apll_pfd2", "apll", base + 0x50c, 2);
+	hws[IMX7ULP_CLK_APLL_PFD3]	= imx_clk_hw_pfdv2("apll_pfd3", "apll", base + 0x50c, 3);
 
 	/* SPLL PFDs */
-	clks[IMX7ULP_CLK_SPLL_PFD0]	= imx_clk_pfdv2("spll_pfd0", "spll", base + 0x60C, 0);
-	clks[IMX7ULP_CLK_SPLL_PFD1]	= imx_clk_pfdv2("spll_pfd1", "spll", base + 0x60C, 1);
-	clks[IMX7ULP_CLK_SPLL_PFD2]	= imx_clk_pfdv2("spll_pfd2", "spll", base + 0x60C, 2);
-	clks[IMX7ULP_CLK_SPLL_PFD3]	= imx_clk_pfdv2("spll_pfd3", "spll", base + 0x60C, 3);
+	hws[IMX7ULP_CLK_SPLL_PFD0]	= imx_clk_hw_pfdv2("spll_pfd0", "spll", base + 0x60C, 0);
+	hws[IMX7ULP_CLK_SPLL_PFD1]	= imx_clk_hw_pfdv2("spll_pfd1", "spll", base + 0x60C, 1);
+	hws[IMX7ULP_CLK_SPLL_PFD2]	= imx_clk_hw_pfdv2("spll_pfd2", "spll", base + 0x60C, 2);
+	hws[IMX7ULP_CLK_SPLL_PFD3]	= imx_clk_hw_pfdv2("spll_pfd3", "spll", base + 0x60C, 3);
 
 	/* PLL Mux */
-	clks[IMX7ULP_CLK_APLL_PFD_SEL]	= imx_clk_hw_mux_flags("apll_pfd_sel", base + 0x508, 14, 2, apll_pfd_sels, ARRAY_SIZE(apll_pfd_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
-	clks[IMX7ULP_CLK_SPLL_PFD_SEL]	= imx_clk_hw_mux_flags("spll_pfd_sel", base + 0x608, 14, 2, spll_pfd_sels, ARRAY_SIZE(spll_pfd_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
-	clks[IMX7ULP_CLK_APLL_SEL]	= imx_clk_hw_mux_flags("apll_sel", base + 0x508, 1, 1, apll_sels, ARRAY_SIZE(apll_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
-	clks[IMX7ULP_CLK_SPLL_SEL]	= imx_clk_hw_mux_flags("spll_sel", base + 0x608, 1, 1, spll_sels, ARRAY_SIZE(spll_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
+	hws[IMX7ULP_CLK_APLL_PFD_SEL]	= imx_clk_hw_mux_flags("apll_pfd_sel", base + 0x508, 14, 2, apll_pfd_sels, ARRAY_SIZE(apll_pfd_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
+	hws[IMX7ULP_CLK_SPLL_PFD_SEL]	= imx_clk_hw_mux_flags("spll_pfd_sel", base + 0x608, 14, 2, spll_pfd_sels, ARRAY_SIZE(spll_pfd_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
+	hws[IMX7ULP_CLK_APLL_SEL]	= imx_clk_hw_mux_flags("apll_sel", base + 0x508, 1, 1, apll_sels, ARRAY_SIZE(apll_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
+	hws[IMX7ULP_CLK_SPLL_SEL]	= imx_clk_hw_mux_flags("spll_sel", base + 0x608, 1, 1, spll_sels, ARRAY_SIZE(spll_sels), CLK_SET_RATE_PARENT | CLK_SET_PARENT_GATE);
 
-	clks[IMX7ULP_CLK_SPLL_BUS_CLK]	= imx_clk_divider_gate("spll_bus_clk", "spll_sel", CLK_SET_RATE_GATE, base + 0x604, 8, 3, 0, ulp_div_table, &imx_ccm_lock);
+	hws[IMX7ULP_CLK_SPLL_BUS_CLK]	= imx_clk_hw_divider_gate("spll_bus_clk", "spll_sel", CLK_SET_RATE_GATE, base + 0x604, 8, 3, 0, ulp_div_table, &imx_ccm_lock);
 
 	/* scs/ddr/nic select different clock source requires that clock to be enabled first */
-	clks[IMX7ULP_CLK_SYS_SEL]	= imx_clk_hw_mux2("scs_sel", base + 0x14, 24, 4, scs_sels, ARRAY_SIZE(scs_sels));
-	clks[IMX7ULP_CLK_HSRUN_SYS_SEL] = imx_clk_hw_mux2("hsrun_scs_sel", base + 0x1c, 24, 4, scs_sels, ARRAY_SIZE(scs_sels));
-	clks[IMX7ULP_CLK_NIC_SEL]	= imx_clk_hw_mux2("nic_sel", base + 0x40, 28, 1, nic_sels, ARRAY_SIZE(nic_sels));
-	clks[IMX7ULP_CLK_DDR_SEL]	= imx_clk_hw_mux_flags("ddr_sel", base + 0x30, 24, 1, ddr_sels, ARRAY_SIZE(ddr_sels), CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
+	hws[IMX7ULP_CLK_SYS_SEL]	= imx_clk_hw_mux2("scs_sel", base + 0x14, 24, 4, scs_sels, ARRAY_SIZE(scs_sels));
+	hws[IMX7ULP_CLK_HSRUN_SYS_SEL] = imx_clk_hw_mux2("hsrun_scs_sel", base + 0x1c, 24, 4, scs_sels, ARRAY_SIZE(scs_sels));
+	hws[IMX7ULP_CLK_NIC_SEL]	= imx_clk_hw_mux2("nic_sel", base + 0x40, 28, 1, nic_sels, ARRAY_SIZE(nic_sels));
+	hws[IMX7ULP_CLK_DDR_SEL]	= imx_clk_hw_mux_flags("ddr_sel", base + 0x30, 24, 2, ddr_sels, ARRAY_SIZE(ddr_sels), CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
 
-	clks[IMX7ULP_CLK_CORE_DIV]	= imx_clk_hw_divider_flags("divcore",	"scs_sel",  base + 0x14, 16, 4, CLK_SET_RATE_PARENT);
-	clks[IMX7ULP_CLK_HSRUN_CORE_DIV] = imx_clk_hw_divider_flags("hsrun_divcore", "hsrun_scs_sel", base + 0x1c, 16, 4, CLK_SET_RATE_PARENT);
+	hws[IMX7ULP_CLK_CORE_DIV]	= imx_clk_hw_divider_flags("divcore",	"scs_sel",  base + 0x14, 16, 4, CLK_SET_RATE_PARENT);
+	hws[IMX7ULP_CLK_HSRUN_CORE_DIV] = imx_clk_hw_divider_flags("hsrun_divcore", "hsrun_scs_sel", base + 0x1c, 16, 4, CLK_SET_RATE_PARENT);
 
-	clks[IMX7ULP_CLK_DDR_DIV]	= imx_clk_divider_gate("ddr_clk", "ddr_sel", CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, base + 0x30, 0, 3,
+	hws[IMX7ULP_CLK_DDR_DIV]	= imx_clk_hw_divider_gate("ddr_clk", "ddr_sel", CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, base + 0x30, 0, 3,
 							       0, ulp_div_table, &imx_ccm_lock);
 
-	clks[IMX7ULP_CLK_NIC0_DIV]	= imx_clk_hw_divider_flags("nic0_clk",		"nic_sel",  base + 0x40, 24, 4, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL);
-	clks[IMX7ULP_CLK_NIC1_DIV]	= imx_clk_hw_divider_flags("nic1_clk",		"nic0_clk", base + 0x40, 16, 4, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL);
-	clks[IMX7ULP_CLK_NIC1_BUS_DIV]	= imx_clk_hw_divider_flags("nic1_bus_clk",	"nic0_clk", base + 0x40, 4,  4, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL);
+	hws[IMX7ULP_CLK_NIC0_DIV]	= imx_clk_hw_divider_flags("nic0_clk",		"nic_sel",  base + 0x40, 24, 4, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL);
+	hws[IMX7ULP_CLK_NIC1_DIV]	= imx_clk_hw_divider_flags("nic1_clk",		"nic0_clk", base + 0x40, 16, 4, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL);
+	hws[IMX7ULP_CLK_NIC1_BUS_DIV]	= imx_clk_hw_divider_flags("nic1_bus_clk",	"nic0_clk", base + 0x40, 4,  4, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL);
 
-	clks[IMX7ULP_CLK_GPU_DIV]	= imx_clk_hw_divider("gpu_clk", "nic0_clk", base + 0x40, 20, 4);
+	hws[IMX7ULP_CLK_GPU_DIV]	= imx_clk_hw_divider("gpu_clk", "nic0_clk", base + 0x40, 20, 4);
 
-	clks[IMX7ULP_CLK_SOSC_BUS_CLK]	= imx_clk_divider_gate("sosc_bus_clk", "sosc", 0, base + 0x104, 8, 3,
+	hws[IMX7ULP_CLK_SOSC_BUS_CLK]	= imx_clk_hw_divider_gate("sosc_bus_clk", "sosc", 0, base + 0x104, 8, 3,
 							       CLK_DIVIDER_READ_ONLY, ulp_div_table, &imx_ccm_lock);
-	clks[IMX7ULP_CLK_FIRC_BUS_CLK]	= imx_clk_divider_gate("firc_bus_clk", "firc", 0, base + 0x304, 8, 3,
+	hws[IMX7ULP_CLK_FIRC_BUS_CLK]	= imx_clk_hw_divider_gate("firc_bus_clk", "firc", 0, base + 0x304, 8, 3,
 							       CLK_DIVIDER_READ_ONLY, ulp_div_table, &imx_ccm_lock);
 
-	imx_check_clk_hws(clks, clk_data->num);
+	imx_check_clk_hws(hws, clk_data->num);
 
 	of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_data);
 }
@@ -146,7 +146,7 @@
 static void __init imx7ulp_clk_pcc2_init(struct device_node *np)
 {
 	struct clk_hw_onecell_data *clk_data;
-	struct clk_hw **clks;
+	struct clk_hw **hws;
 	void __iomem *base;
 	int i;
 
@@ -156,42 +156,42 @@
 		return;
 
 	clk_data->num = IMX7ULP_CLK_PCC2_END;
-	clks = clk_data->hws;
+	hws = clk_data->hws;
 
 	/* PCC2 */
 	base = of_iomap(np, 0);
 	WARN_ON(!base);
 
-	clks[IMX7ULP_CLK_DMA1]		= imx_clk_hw_gate("dma1", "nic1_clk", base + 0x20, 30);
-	clks[IMX7ULP_CLK_RGPIO2P1]	= imx_clk_hw_gate("rgpio2p1", "nic1_bus_clk", base + 0x3c, 30);
-	clks[IMX7ULP_CLK_DMA_MUX1]	= imx_clk_hw_gate("dma_mux1", "nic1_bus_clk", base + 0x84, 30);
-	clks[IMX7ULP_CLK_CAAM]		= imx_clk_hw_gate("caam", "nic1_clk", base + 0x90, 30);
-	clks[IMX7ULP_CLK_LPTPM4]	= imx7ulp_clk_composite("lptpm4",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x94);
-	clks[IMX7ULP_CLK_LPTPM5]	= imx7ulp_clk_composite("lptpm5",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x98);
-	clks[IMX7ULP_CLK_LPIT1]		= imx7ulp_clk_composite("lpit1",   periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x9c);
-	clks[IMX7ULP_CLK_LPSPI2]	= imx7ulp_clk_composite("lpspi2",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xa4);
-	clks[IMX7ULP_CLK_LPSPI3]	= imx7ulp_clk_composite("lpspi3",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xa8);
-	clks[IMX7ULP_CLK_LPI2C4]	= imx7ulp_clk_composite("lpi2c4",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xac);
-	clks[IMX7ULP_CLK_LPI2C5]	= imx7ulp_clk_composite("lpi2c5",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xb0);
-	clks[IMX7ULP_CLK_LPUART4]	= imx7ulp_clk_composite("lpuart4", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xb4);
-	clks[IMX7ULP_CLK_LPUART5]	= imx7ulp_clk_composite("lpuart5", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xb8);
-	clks[IMX7ULP_CLK_FLEXIO1]	= imx7ulp_clk_composite("flexio1", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xc4);
-	clks[IMX7ULP_CLK_USB0]		= imx7ulp_clk_composite("usb0",    periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xcc);
-	clks[IMX7ULP_CLK_USB1]		= imx7ulp_clk_composite("usb1",    periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xd0);
-	clks[IMX7ULP_CLK_USB_PHY]	= imx_clk_hw_gate("usb_phy", "nic1_bus_clk", base + 0xd4, 30);
-	clks[IMX7ULP_CLK_USDHC0]	= imx7ulp_clk_composite("usdhc0",  periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xdc);
-	clks[IMX7ULP_CLK_USDHC1]	= imx7ulp_clk_composite("usdhc1",  periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xe0);
-	clks[IMX7ULP_CLK_WDG1]		= imx7ulp_clk_composite("wdg1",    periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, true,  true, base + 0xf4);
-	clks[IMX7ULP_CLK_WDG2]		= imx7ulp_clk_composite("sdg2",    periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, true,  true, base + 0x10c);
+	hws[IMX7ULP_CLK_DMA1]		= imx_clk_hw_gate("dma1", "nic1_clk", base + 0x20, 30);
+	hws[IMX7ULP_CLK_RGPIO2P1]	= imx_clk_hw_gate("rgpio2p1", "nic1_bus_clk", base + 0x3c, 30);
+	hws[IMX7ULP_CLK_DMA_MUX1]	= imx_clk_hw_gate("dma_mux1", "nic1_bus_clk", base + 0x84, 30);
+	hws[IMX7ULP_CLK_CAAM]		= imx_clk_hw_gate("caam", "nic1_clk", base + 0x90, 30);
+	hws[IMX7ULP_CLK_LPTPM4]		= imx7ulp_clk_hw_composite("lptpm4",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x94);
+	hws[IMX7ULP_CLK_LPTPM5]		= imx7ulp_clk_hw_composite("lptpm5",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x98);
+	hws[IMX7ULP_CLK_LPIT1]		= imx7ulp_clk_hw_composite("lpit1",   periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x9c);
+	hws[IMX7ULP_CLK_LPSPI2]		= imx7ulp_clk_hw_composite("lpspi2",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xa4);
+	hws[IMX7ULP_CLK_LPSPI3]		= imx7ulp_clk_hw_composite("lpspi3",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xa8);
+	hws[IMX7ULP_CLK_LPI2C4]		= imx7ulp_clk_hw_composite("lpi2c4",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xac);
+	hws[IMX7ULP_CLK_LPI2C5]		= imx7ulp_clk_hw_composite("lpi2c5",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xb0);
+	hws[IMX7ULP_CLK_LPUART4]	= imx7ulp_clk_hw_composite("lpuart4", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xb4);
+	hws[IMX7ULP_CLK_LPUART5]	= imx7ulp_clk_hw_composite("lpuart5", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xb8);
+	hws[IMX7ULP_CLK_FLEXIO1]	= imx7ulp_clk_hw_composite("flexio1", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0xc4);
+	hws[IMX7ULP_CLK_USB0]		= imx7ulp_clk_hw_composite("usb0",    periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xcc);
+	hws[IMX7ULP_CLK_USB1]		= imx7ulp_clk_hw_composite("usb1",    periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xd0);
+	hws[IMX7ULP_CLK_USB_PHY]	= imx_clk_hw_gate("usb_phy", "nic1_bus_clk", base + 0xd4, 30);
+	hws[IMX7ULP_CLK_USDHC0]		= imx7ulp_clk_hw_composite("usdhc0",  periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xdc);
+	hws[IMX7ULP_CLK_USDHC1]		= imx7ulp_clk_hw_composite("usdhc1",  periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xe0);
+	hws[IMX7ULP_CLK_WDG1]		= imx7ulp_clk_hw_composite("wdg1",    periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, true,  true, base + 0xf4);
+	hws[IMX7ULP_CLK_WDG2]		= imx7ulp_clk_hw_composite("wdg2",    periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, true,  true, base + 0x10c);
 
-	imx_check_clk_hws(clks, clk_data->num);
+	imx_check_clk_hws(hws, clk_data->num);
 
 	of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_data);
 
 	for (i = 0; i < ARRAY_SIZE(pcc2_uart_clk_ids); i++) {
 		int index = pcc2_uart_clk_ids[i];
 
-		pcc2_uart_clks[i] = &clks[index]->clk;
+		pcc2_uart_clks[i] = &hws[index]->clk;
 	}
 
 	imx_register_uart_clocks(pcc2_uart_clks);
@@ -201,7 +201,7 @@
 static void __init imx7ulp_clk_pcc3_init(struct device_node *np)
 {
 	struct clk_hw_onecell_data *clk_data;
-	struct clk_hw **clks;
+	struct clk_hw **hws;
 	void __iomem *base;
 	int i;
 
@@ -211,41 +211,41 @@
 		return;
 
 	clk_data->num = IMX7ULP_CLK_PCC3_END;
-	clks = clk_data->hws;
+	hws = clk_data->hws;
 
 	/* PCC3 */
 	base = of_iomap(np, 0);
 	WARN_ON(!base);
 
-	clks[IMX7ULP_CLK_LPTPM6]	= imx7ulp_clk_composite("lptpm6",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x84);
-	clks[IMX7ULP_CLK_LPTPM7]	= imx7ulp_clk_composite("lptpm7",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x88);
+	hws[IMX7ULP_CLK_LPTPM6]	= imx7ulp_clk_hw_composite("lptpm6",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x84);
+	hws[IMX7ULP_CLK_LPTPM7]	= imx7ulp_clk_hw_composite("lptpm7",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x88);
 
-	clks[IMX7ULP_CLK_MMDC]		= clk_hw_register_gate(NULL, "mmdc", "nic1_clk", CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
+	hws[IMX7ULP_CLK_MMDC]		= clk_hw_register_gate(NULL, "mmdc", "nic1_clk", CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
 							       base + 0xac, 30, 0, &imx_ccm_lock);
-	clks[IMX7ULP_CLK_LPI2C6]	= imx7ulp_clk_composite("lpi2c6",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x90);
-	clks[IMX7ULP_CLK_LPI2C7]	= imx7ulp_clk_composite("lpi2c7",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x94);
-	clks[IMX7ULP_CLK_LPUART6]	= imx7ulp_clk_composite("lpuart6", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x98);
-	clks[IMX7ULP_CLK_LPUART7]	= imx7ulp_clk_composite("lpuart7", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x9c);
-	clks[IMX7ULP_CLK_DSI]		= imx7ulp_clk_composite("dsi",     periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, true,  true, base + 0xa4);
-	clks[IMX7ULP_CLK_LCDIF]		= imx7ulp_clk_composite("lcdif",   periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xa8);
-
-	clks[IMX7ULP_CLK_VIU]		= imx_clk_hw_gate("viu",   "nic1_clk",	   base + 0xa0, 30);
-	clks[IMX7ULP_CLK_PCTLC]		= imx_clk_hw_gate("pctlc", "nic1_bus_clk", base + 0xb8, 30);
-	clks[IMX7ULP_CLK_PCTLD]		= imx_clk_hw_gate("pctld", "nic1_bus_clk", base + 0xbc, 30);
-	clks[IMX7ULP_CLK_PCTLE]		= imx_clk_hw_gate("pctle", "nic1_bus_clk", base + 0xc0, 30);
-	clks[IMX7ULP_CLK_PCTLF]		= imx_clk_hw_gate("pctlf", "nic1_bus_clk", base + 0xc4, 30);
+	hws[IMX7ULP_CLK_LPI2C6]	= imx7ulp_clk_hw_composite("lpi2c6",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x90);
+	hws[IMX7ULP_CLK_LPI2C7]	= imx7ulp_clk_hw_composite("lpi2c7",  periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x94);
+	hws[IMX7ULP_CLK_LPUART6]	= imx7ulp_clk_hw_composite("lpuart6", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x98);
+	hws[IMX7ULP_CLK_LPUART7]	= imx7ulp_clk_hw_composite("lpuart7", periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, false, true, base + 0x9c);
+	hws[IMX7ULP_CLK_DSI]		= imx7ulp_clk_hw_composite("dsi",     periph_bus_sels, ARRAY_SIZE(periph_bus_sels), true, true,  true, base + 0xa4);
+	hws[IMX7ULP_CLK_LCDIF]		= imx7ulp_clk_hw_composite("lcdif",   periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, true,  true, base + 0xa8);
+
+	hws[IMX7ULP_CLK_VIU]		= imx_clk_hw_gate("viu",   "nic1_clk",	   base + 0xa0, 30);
+	hws[IMX7ULP_CLK_PCTLC]		= imx_clk_hw_gate("pctlc", "nic1_bus_clk", base + 0xb8, 30);
+	hws[IMX7ULP_CLK_PCTLD]		= imx_clk_hw_gate("pctld", "nic1_bus_clk", base + 0xbc, 30);
+	hws[IMX7ULP_CLK_PCTLE]		= imx_clk_hw_gate("pctle", "nic1_bus_clk", base + 0xc0, 30);
+	hws[IMX7ULP_CLK_PCTLF]		= imx_clk_hw_gate("pctlf", "nic1_bus_clk", base + 0xc4, 30);
 
-	clks[IMX7ULP_CLK_GPU3D]		= imx7ulp_clk_composite("gpu3d",   periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, false, true, base + 0x140);
-	clks[IMX7ULP_CLK_GPU2D]		= imx7ulp_clk_composite("gpu2d",   periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, false, true, base + 0x144);
+	hws[IMX7ULP_CLK_GPU3D]		= imx7ulp_clk_hw_composite("gpu3d",   periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, false, true, base + 0x140);
+	hws[IMX7ULP_CLK_GPU2D]		= imx7ulp_clk_hw_composite("gpu2d",   periph_plat_sels, ARRAY_SIZE(periph_plat_sels), true, false, true, base + 0x144);
 
-	imx_check_clk_hws(clks, clk_data->num);
+	imx_check_clk_hws(hws, clk_data->num);
 
 	of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_data);
 
 	for (i = 0; i < ARRAY_SIZE(pcc3_uart_clk_ids); i++) {
 		int index = pcc3_uart_clk_ids[i];
 
-		pcc3_uart_clks[i] = &clks[index]->clk;
+		pcc3_uart_clks[i] = &hws[index]->clk;
 	}
 
 	imx_register_uart_clocks(pcc3_uart_clks);
@@ -255,7 +255,7 @@
 static void __init imx7ulp_clk_smc1_init(struct device_node *np)
 {
 	struct clk_hw_onecell_data *clk_data;
-	struct clk_hw **clks;
+	struct clk_hw **hws;
 	void __iomem *base;
 
 	clk_data = kzalloc(struct_size(clk_data, hws, IMX7ULP_CLK_SMC1_END),
@@ -264,15 +264,15 @@
 		return;
 
 	clk_data->num = IMX7ULP_CLK_SMC1_END;
-	clks = clk_data->hws;
+	hws = clk_data->hws;
 
 	/* SMC1 */
 	base = of_iomap(np, 0);
 	WARN_ON(!base);
 
-	clks[IMX7ULP_CLK_ARM] = imx_clk_hw_mux_flags("arm", base + 0x10, 8, 2, arm_sels, ARRAY_SIZE(arm_sels), CLK_IS_CRITICAL);
+	hws[IMX7ULP_CLK_ARM] = imx_clk_hw_mux_flags("arm", base + 0x10, 8, 2, arm_sels, ARRAY_SIZE(arm_sels), CLK_IS_CRITICAL);
 
-	imx_check_clk_hws(clks, clk_data->num);
+	imx_check_clk_hws(hws, clk_data->num);
 
 	of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_data);
 }
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx8mm.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx8mm.c
@@ -4,14 +4,13 @@
  */
 
 #include <dt-bindings/clock/imx8mm-clock.h>
-#include <linux/clk.h>
+#include <linux/clk-provider.h>
 #include <linux/err.h>
-#include <linux/init.h>
 #include <linux/io.h>
 #include <linux/module.h>
-#include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/platform_device.h>
+#include <linux/slab.h>
 #include <linux/types.h>
 
 #include "clk.h"
@@ -26,73 +25,6 @@
 static u32 share_count_pdm;
 static u32 share_count_nand;
 
-static const struct imx_pll14xx_rate_table imx8mm_pll1416x_tbl[] = {
-	PLL_1416X_RATE(1800000000U, 225, 3, 0),
-	PLL_1416X_RATE(1600000000U, 200, 3, 0),
-	PLL_1416X_RATE(1200000000U, 300, 3, 1),
-	PLL_1416X_RATE(1000000000U, 250, 3, 1),
-	PLL_1416X_RATE(800000000U,  200, 3, 1),
-	PLL_1416X_RATE(750000000U,  250, 2, 2),
-	PLL_1416X_RATE(700000000U,  350, 3, 2),
-	PLL_1416X_RATE(600000000U,  300, 3, 2),
-};
-
-static const struct imx_pll14xx_rate_table imx8mm_audiopll_tbl[] = {
-	PLL_1443X_RATE(393216000U, 262, 2, 3, 9437),
-	PLL_1443X_RATE(361267200U, 361, 3, 3, 17511),
-};
-
-static const struct imx_pll14xx_rate_table imx8mm_videopll_tbl[] = {
-	PLL_1443X_RATE(650000000U, 325, 3, 2, 0),
-	PLL_1443X_RATE(594000000U, 198, 2, 2, 0),
-};
-
-static const struct imx_pll14xx_rate_table imx8mm_drampll_tbl[] = {
-	PLL_1443X_RATE(650000000U, 325, 3, 2, 0),
-};
-
-static struct imx_pll14xx_clk imx8mm_audio_pll = {
-		.type = PLL_1443X,
-		.rate_table = imx8mm_audiopll_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_audiopll_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mm_video_pll = {
-		.type = PLL_1443X,
-		.rate_table = imx8mm_videopll_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_videopll_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mm_dram_pll = {
-		.type = PLL_1443X,
-		.rate_table = imx8mm_drampll_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_drampll_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mm_arm_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mm_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_pll1416x_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mm_gpu_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mm_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_pll1416x_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mm_vpu_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mm_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_pll1416x_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mm_sys_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mm_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mm_pll1416x_tbl),
-};
-
 static const char *pll_ref_sels[] = { "osc_24m", "dummy", "dummy", "dummy", };
 static const char *audio_pll1_bypass_sels[] = {"audio_pll1", "audio_pll1_ref_sel", };
 static const char *audio_pll2_bypass_sels[] = {"audio_pll2", "audio_pll2_ref_sel", };
@@ -101,14 +33,14 @@
 static const char *gpu_pll_bypass_sels[] = {"gpu_pll", "gpu_pll_ref_sel", };
 static const char *vpu_pll_bypass_sels[] = {"vpu_pll", "vpu_pll_ref_sel", };
 static const char *arm_pll_bypass_sels[] = {"arm_pll", "arm_pll_ref_sel", };
-static const char *sys_pll1_bypass_sels[] = {"sys_pll1", "sys_pll1_ref_sel", };
-static const char *sys_pll2_bypass_sels[] = {"sys_pll2", "sys_pll2_ref_sel", };
 static const char *sys_pll3_bypass_sels[] = {"sys_pll3", "sys_pll3_ref_sel", };
 
 /* CCM ROOT */
 static const char *imx8mm_a53_sels[] = {"osc_24m", "arm_pll_out", "sys_pll2_500m", "sys_pll2_1000m",
 					"sys_pll1_800m", "sys_pll1_400m", "audio_pll1_out", "sys_pll3_out", };
 
+static const char * const imx8mm_a53_core_sels[] = {"arm_a53_div", "arm_pll_out", };
+
 static const char *imx8mm_m4_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll2_250m", "sys_pll1_266m",
 				       "sys_pll1_800m", "audio_pll1_out", "video_pll1_out", "sys_pll3_out", };
 
@@ -351,106 +283,128 @@
 
 static const char *imx8mm_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
 
-static const char *imx8mm_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "osc_27m", "sys_pll1_200m", "audio_pll2_out",
-					 "vpu_pll", "sys_pll1_80m", };
-
-static struct clk *clks[IMX8MM_CLK_END];
-static struct clk_onecell_data clk_data;
-
-static struct clk ** const uart_clks[] = {
-	&clks[IMX8MM_CLK_UART1_ROOT],
-	&clks[IMX8MM_CLK_UART2_ROOT],
-	&clks[IMX8MM_CLK_UART3_ROOT],
-	&clks[IMX8MM_CLK_UART4_ROOT],
-	NULL
+static const char *imx8mm_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "dummy", "sys_pll1_200m",
+					  "audio_pll2_out", "sys_pll2_500m", "vpu_pll", "sys_pll1_80m", };
+static const char *imx8mm_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m", "sys_pll2_166m",
+					  "sys_pll3_out", "audio_pll1_out", "video_pll1_out", "osc_32k", };
+
+static const char * const clkout_sels[] = {"audio_pll1_out", "audio_pll2_out", "video_pll1_out",
+					   "dummy", "dummy", "gpu_pll_out", "vpu_pll_out",
+					   "arm_pll_out", "sys_pll1", "sys_pll2", "sys_pll3",
+					   "dummy", "dummy", "osc_24m", "dummy", "osc_32k"};
+
+static struct clk_hw_onecell_data *clk_hw_data;
+static struct clk_hw **hws;
+
+static const int uart_clk_ids[] = {
+	IMX8MM_CLK_UART1_ROOT,
+	IMX8MM_CLK_UART2_ROOT,
+	IMX8MM_CLK_UART3_ROOT,
+	IMX8MM_CLK_UART4_ROOT,
 };
+static struct clk **uart_hws[ARRAY_SIZE(uart_clk_ids) + 1];
 
 static int imx8mm_clocks_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct device_node *np = dev->of_node;
 	void __iomem *base;
-	int ret;
+	int ret, i;
+
+	clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
+					  IMX8MM_CLK_END), GFP_KERNEL);
+	if (WARN_ON(!clk_hw_data))
+		return -ENOMEM;
+
+	clk_hw_data->num = IMX8MM_CLK_END;
+	hws = clk_hw_data->hws;
 
-	clks[IMX8MM_CLK_DUMMY] = imx_clk_fixed("dummy", 0);
-	clks[IMX8MM_CLK_24M] = of_clk_get_by_name(np, "osc_24m");
-	clks[IMX8MM_CLK_32K] = of_clk_get_by_name(np, "osc_32k");
-	clks[IMX8MM_CLK_EXT1] = of_clk_get_by_name(np, "clk_ext1");
-	clks[IMX8MM_CLK_EXT2] = of_clk_get_by_name(np, "clk_ext2");
-	clks[IMX8MM_CLK_EXT3] = of_clk_get_by_name(np, "clk_ext3");
-	clks[IMX8MM_CLK_EXT4] = of_clk_get_by_name(np, "clk_ext4");
+	hws[IMX8MM_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
+	hws[IMX8MM_CLK_24M] = imx_obtain_fixed_clk_hw(np, "osc_24m");
+	hws[IMX8MM_CLK_32K] = imx_obtain_fixed_clk_hw(np, "osc_32k");
+	hws[IMX8MM_CLK_EXT1] = imx_obtain_fixed_clk_hw(np, "clk_ext1");
+	hws[IMX8MM_CLK_EXT2] = imx_obtain_fixed_clk_hw(np, "clk_ext2");
+	hws[IMX8MM_CLK_EXT3] = imx_obtain_fixed_clk_hw(np, "clk_ext3");
+	hws[IMX8MM_CLK_EXT4] = imx_obtain_fixed_clk_hw(np, "clk_ext4");
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-anatop");
 	base = of_iomap(np, 0);
+	of_node_put(np);
 	if (WARN_ON(!base))
 		return -ENOMEM;
 
-	clks[IMX8MM_AUDIO_PLL1_REF_SEL] = imx_clk_mux("audio_pll1_ref_sel", base + 0x0, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_AUDIO_PLL2_REF_SEL] = imx_clk_mux("audio_pll2_ref_sel", base + 0x14, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_VIDEO_PLL1_REF_SEL] = imx_clk_mux("video_pll1_ref_sel", base + 0x28, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_DRAM_PLL_REF_SEL] = imx_clk_mux("dram_pll_ref_sel", base + 0x50, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_GPU_PLL_REF_SEL] = imx_clk_mux("gpu_pll_ref_sel", base + 0x64, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_VPU_PLL_REF_SEL] = imx_clk_mux("vpu_pll_ref_sel", base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_ARM_PLL_REF_SEL] = imx_clk_mux("arm_pll_ref_sel", base + 0x84, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_SYS_PLL1_REF_SEL] = imx_clk_mux("sys_pll1_ref_sel", base + 0x94, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_SYS_PLL2_REF_SEL] = imx_clk_mux("sys_pll2_ref_sel", base + 0x104, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MM_SYS_PLL3_REF_SEL] = imx_clk_mux("sys_pll3_ref_sel", base + 0x114, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-
-	clks[IMX8MM_AUDIO_PLL1] = imx_clk_pll14xx("audio_pll1", "audio_pll1_ref_sel", base, &imx8mm_audio_pll);
-	clks[IMX8MM_AUDIO_PLL2] = imx_clk_pll14xx("audio_pll2", "audio_pll2_ref_sel", base + 0x14, &imx8mm_audio_pll);
-	clks[IMX8MM_VIDEO_PLL1] = imx_clk_pll14xx("video_pll1", "video_pll1_ref_sel", base + 0x28, &imx8mm_video_pll);
-	clks[IMX8MM_DRAM_PLL] = imx_clk_pll14xx("dram_pll", "dram_pll_ref_sel", base + 0x50, &imx8mm_dram_pll);
-	clks[IMX8MM_GPU_PLL] = imx_clk_pll14xx("gpu_pll", "gpu_pll_ref_sel", base + 0x64, &imx8mm_gpu_pll);
-	clks[IMX8MM_VPU_PLL] = imx_clk_pll14xx("vpu_pll", "vpu_pll_ref_sel", base + 0x74, &imx8mm_vpu_pll);
-	clks[IMX8MM_ARM_PLL] = imx_clk_pll14xx("arm_pll", "arm_pll_ref_sel", base + 0x84, &imx8mm_arm_pll);
-	clks[IMX8MM_SYS_PLL1] = imx_clk_pll14xx("sys_pll1", "sys_pll1_ref_sel", base + 0x94, &imx8mm_sys_pll);
-	clks[IMX8MM_SYS_PLL2] = imx_clk_pll14xx("sys_pll2", "sys_pll2_ref_sel", base + 0x104, &imx8mm_sys_pll);
-	clks[IMX8MM_SYS_PLL3] = imx_clk_pll14xx("sys_pll3", "sys_pll3_ref_sel", base + 0x114, &imx8mm_sys_pll);
+	hws[IMX8MM_AUDIO_PLL1_REF_SEL] = imx_clk_hw_mux("audio_pll1_ref_sel", base + 0x0, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_AUDIO_PLL2_REF_SEL] = imx_clk_hw_mux("audio_pll2_ref_sel", base + 0x14, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_VIDEO_PLL1_REF_SEL] = imx_clk_hw_mux("video_pll1_ref_sel", base + 0x28, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_DRAM_PLL_REF_SEL] = imx_clk_hw_mux("dram_pll_ref_sel", base + 0x50, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", base + 0x64, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_VPU_PLL_REF_SEL] = imx_clk_hw_mux("vpu_pll_ref_sel", base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", base + 0x84, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MM_SYS_PLL3_REF_SEL] = imx_clk_hw_mux("sys_pll3_ref_sel", base + 0x114, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+
+	hws[IMX8MM_AUDIO_PLL1] = imx_clk_hw_pll14xx("audio_pll1", "audio_pll1_ref_sel", base, &imx_1443x_pll);
+	hws[IMX8MM_AUDIO_PLL2] = imx_clk_hw_pll14xx("audio_pll2", "audio_pll2_ref_sel", base + 0x14, &imx_1443x_pll);
+	hws[IMX8MM_VIDEO_PLL1] = imx_clk_hw_pll14xx("video_pll1", "video_pll1_ref_sel", base + 0x28, &imx_1443x_pll);
+	hws[IMX8MM_DRAM_PLL] = imx_clk_hw_pll14xx("dram_pll", "dram_pll_ref_sel", base + 0x50, &imx_1443x_dram_pll);
+	hws[IMX8MM_GPU_PLL] = imx_clk_hw_pll14xx("gpu_pll", "gpu_pll_ref_sel", base + 0x64, &imx_1416x_pll);
+	hws[IMX8MM_VPU_PLL] = imx_clk_hw_pll14xx("vpu_pll", "vpu_pll_ref_sel", base + 0x74, &imx_1416x_pll);
+	hws[IMX8MM_ARM_PLL] = imx_clk_hw_pll14xx("arm_pll", "arm_pll_ref_sel", base + 0x84, &imx_1416x_pll);
+	hws[IMX8MM_SYS_PLL1] = imx_clk_hw_fixed("sys_pll1", 800000000);
+	hws[IMX8MM_SYS_PLL2] = imx_clk_hw_fixed("sys_pll2", 1000000000);
+	hws[IMX8MM_SYS_PLL3] = imx_clk_hw_pll14xx("sys_pll3", "sys_pll3_ref_sel", base + 0x114, &imx_1416x_pll);
 
 	/* PLL bypass out */
-	clks[IMX8MM_AUDIO_PLL1_BYPASS] = imx_clk_mux_flags("audio_pll1_bypass", base, 16, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_AUDIO_PLL2_BYPASS] = imx_clk_mux_flags("audio_pll2_bypass", base + 0x14, 16, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_VIDEO_PLL1_BYPASS] = imx_clk_mux_flags("video_pll1_bypass", base + 0x28, 16, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_DRAM_PLL_BYPASS] = imx_clk_mux_flags("dram_pll_bypass", base + 0x50, 16, 1, dram_pll_bypass_sels, ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_GPU_PLL_BYPASS] = imx_clk_mux_flags("gpu_pll_bypass", base + 0x64, 28, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_VPU_PLL_BYPASS] = imx_clk_mux_flags("vpu_pll_bypass", base + 0x74, 28, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_ARM_PLL_BYPASS] = imx_clk_mux_flags("arm_pll_bypass", base + 0x84, 28, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_SYS_PLL1_BYPASS] = imx_clk_mux_flags("sys_pll1_bypass", base + 0x94, 28, 1, sys_pll1_bypass_sels, ARRAY_SIZE(sys_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_SYS_PLL2_BYPASS] = imx_clk_mux_flags("sys_pll2_bypass", base + 0x104, 28, 1, sys_pll2_bypass_sels, ARRAY_SIZE(sys_pll2_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MM_SYS_PLL3_BYPASS] = imx_clk_mux_flags("sys_pll3_bypass", base + 0x114, 28, 1, sys_pll3_bypass_sels, ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_AUDIO_PLL1_BYPASS] = imx_clk_hw_mux_flags("audio_pll1_bypass", base, 16, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_AUDIO_PLL2_BYPASS] = imx_clk_hw_mux_flags("audio_pll2_bypass", base + 0x14, 16, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_VIDEO_PLL1_BYPASS] = imx_clk_hw_mux_flags("video_pll1_bypass", base + 0x28, 16, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_DRAM_PLL_BYPASS] = imx_clk_hw_mux_flags("dram_pll_bypass", base + 0x50, 16, 1, dram_pll_bypass_sels, ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_GPU_PLL_BYPASS] = imx_clk_hw_mux_flags("gpu_pll_bypass", base + 0x64, 28, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_VPU_PLL_BYPASS] = imx_clk_hw_mux_flags("vpu_pll_bypass", base + 0x74, 28, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", base + 0x84, 28, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MM_SYS_PLL3_BYPASS] = imx_clk_hw_mux_flags("sys_pll3_bypass", base + 0x114, 28, 1, sys_pll3_bypass_sels, ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
 
 	/* PLL out gate */
-	clks[IMX8MM_AUDIO_PLL1_OUT] = imx_clk_gate("audio_pll1_out", "audio_pll1_bypass", base, 13);
-	clks[IMX8MM_AUDIO_PLL2_OUT] = imx_clk_gate("audio_pll2_out", "audio_pll2_bypass", base + 0x14, 13);
-	clks[IMX8MM_VIDEO_PLL1_OUT] = imx_clk_gate("video_pll1_out", "video_pll1_bypass", base + 0x28, 13);
-	clks[IMX8MM_DRAM_PLL_OUT] = imx_clk_gate("dram_pll_out", "dram_pll_bypass", base + 0x50, 13);
-	clks[IMX8MM_GPU_PLL_OUT] = imx_clk_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x64, 11);
-	clks[IMX8MM_VPU_PLL_OUT] = imx_clk_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x74, 11);
-	clks[IMX8MM_ARM_PLL_OUT] = imx_clk_gate("arm_pll_out", "arm_pll_bypass", base + 0x84, 11);
-	clks[IMX8MM_SYS_PLL1_OUT] = imx_clk_gate("sys_pll1_out", "sys_pll1_bypass", base + 0x94, 11);
-	clks[IMX8MM_SYS_PLL2_OUT] = imx_clk_gate("sys_pll2_out", "sys_pll2_bypass", base + 0x104, 11);
-	clks[IMX8MM_SYS_PLL3_OUT] = imx_clk_gate("sys_pll3_out", "sys_pll3_bypass", base + 0x114, 11);
-
-	/* SYS PLL fixed output */
-	clks[IMX8MM_SYS_PLL1_40M] = imx_clk_fixed_factor("sys_pll1_40m", "sys_pll1_out", 1, 20);
-	clks[IMX8MM_SYS_PLL1_80M] = imx_clk_fixed_factor("sys_pll1_80m", "sys_pll1_out", 1, 10);
-	clks[IMX8MM_SYS_PLL1_100M] = imx_clk_fixed_factor("sys_pll1_100m", "sys_pll1_out", 1, 8);
-	clks[IMX8MM_SYS_PLL1_133M] = imx_clk_fixed_factor("sys_pll1_133m", "sys_pll1_out", 1, 6);
-	clks[IMX8MM_SYS_PLL1_160M] = imx_clk_fixed_factor("sys_pll1_160m", "sys_pll1_out", 1, 5);
-	clks[IMX8MM_SYS_PLL1_200M] = imx_clk_fixed_factor("sys_pll1_200m", "sys_pll1_out", 1, 4);
-	clks[IMX8MM_SYS_PLL1_266M] = imx_clk_fixed_factor("sys_pll1_266m", "sys_pll1_out", 1, 3);
-	clks[IMX8MM_SYS_PLL1_400M] = imx_clk_fixed_factor("sys_pll1_400m", "sys_pll1_out", 1, 2);
-	clks[IMX8MM_SYS_PLL1_800M] = imx_clk_fixed_factor("sys_pll1_800m", "sys_pll1_out", 1, 1);
-
-	clks[IMX8MM_SYS_PLL2_50M] = imx_clk_fixed_factor("sys_pll2_50m", "sys_pll2_out", 1, 20);
-	clks[IMX8MM_SYS_PLL2_100M] = imx_clk_fixed_factor("sys_pll2_100m", "sys_pll2_out", 1, 10);
-	clks[IMX8MM_SYS_PLL2_125M] = imx_clk_fixed_factor("sys_pll2_125m", "sys_pll2_out", 1, 8);
-	clks[IMX8MM_SYS_PLL2_166M] = imx_clk_fixed_factor("sys_pll2_166m", "sys_pll2_out", 1, 6);
-	clks[IMX8MM_SYS_PLL2_200M] = imx_clk_fixed_factor("sys_pll2_200m", "sys_pll2_out", 1, 5);
-	clks[IMX8MM_SYS_PLL2_250M] = imx_clk_fixed_factor("sys_pll2_250m", "sys_pll2_out", 1, 4);
-	clks[IMX8MM_SYS_PLL2_333M] = imx_clk_fixed_factor("sys_pll2_333m", "sys_pll2_out", 1, 3);
-	clks[IMX8MM_SYS_PLL2_500M] = imx_clk_fixed_factor("sys_pll2_500m", "sys_pll2_out", 1, 2);
-	clks[IMX8MM_SYS_PLL2_1000M] = imx_clk_fixed_factor("sys_pll2_1000m", "sys_pll2_out", 1, 1);
+	hws[IMX8MM_AUDIO_PLL1_OUT] = imx_clk_hw_gate("audio_pll1_out", "audio_pll1_bypass", base, 13);
+	hws[IMX8MM_AUDIO_PLL2_OUT] = imx_clk_hw_gate("audio_pll2_out", "audio_pll2_bypass", base + 0x14, 13);
+	hws[IMX8MM_VIDEO_PLL1_OUT] = imx_clk_hw_gate("video_pll1_out", "video_pll1_bypass", base + 0x28, 13);
+	hws[IMX8MM_DRAM_PLL_OUT] = imx_clk_hw_gate("dram_pll_out", "dram_pll_bypass", base + 0x50, 13);
+	hws[IMX8MM_GPU_PLL_OUT] = imx_clk_hw_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x64, 11);
+	hws[IMX8MM_VPU_PLL_OUT] = imx_clk_hw_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x74, 11);
+	hws[IMX8MM_ARM_PLL_OUT] = imx_clk_hw_gate("arm_pll_out", "arm_pll_bypass", base + 0x84, 11);
+	hws[IMX8MM_SYS_PLL3_OUT] = imx_clk_hw_gate("sys_pll3_out", "sys_pll3_bypass", base + 0x114, 11);
+
+	/* SYS PLL1 fixed output */
+	hws[IMX8MM_SYS_PLL1_OUT] = imx_clk_hw_gate("sys_pll1_out", "sys_pll1", base + 0x94, 11);
+
+	hws[IMX8MM_SYS_PLL1_40M] = imx_clk_hw_fixed_factor("sys_pll1_40m", "sys_pll1_out", 1, 20);
+	hws[IMX8MM_SYS_PLL1_80M] = imx_clk_hw_fixed_factor("sys_pll1_80m", "sys_pll1_out", 1, 10);
+	hws[IMX8MM_SYS_PLL1_100M] = imx_clk_hw_fixed_factor("sys_pll1_100m", "sys_pll1_out", 1, 8);
+	hws[IMX8MM_SYS_PLL1_133M] = imx_clk_hw_fixed_factor("sys_pll1_133m", "sys_pll1_out", 1, 6);
+	hws[IMX8MM_SYS_PLL1_160M] = imx_clk_hw_fixed_factor("sys_pll1_160m", "sys_pll1_out", 1, 5);
+	hws[IMX8MM_SYS_PLL1_200M] = imx_clk_hw_fixed_factor("sys_pll1_200m", "sys_pll1_out", 1, 4);
+	hws[IMX8MM_SYS_PLL1_266M] = imx_clk_hw_fixed_factor("sys_pll1_266m", "sys_pll1_out", 1, 3);
+	hws[IMX8MM_SYS_PLL1_400M] = imx_clk_hw_fixed_factor("sys_pll1_400m", "sys_pll1_out", 1, 2);
+	hws[IMX8MM_SYS_PLL1_800M] = imx_clk_hw_fixed_factor("sys_pll1_800m", "sys_pll1_out", 1, 1);
+
+	/* SYS PLL2 fixed output */
+	hws[IMX8MM_SYS_PLL2_OUT] = imx_clk_hw_gate("sys_pll2_out", "sys_pll2", base + 0x104, 11);
+
+	hws[IMX8MM_SYS_PLL2_50M] = imx_clk_hw_fixed_factor("sys_pll2_50m", "sys_pll2_out", 1, 20);
+	hws[IMX8MM_SYS_PLL2_100M] = imx_clk_hw_fixed_factor("sys_pll2_100m", "sys_pll2_out", 1, 10);
+	hws[IMX8MM_SYS_PLL2_125M] = imx_clk_hw_fixed_factor("sys_pll2_125m", "sys_pll2_out", 1, 8);
+	hws[IMX8MM_SYS_PLL2_166M] = imx_clk_hw_fixed_factor("sys_pll2_166m", "sys_pll2_out", 1, 6);
+	hws[IMX8MM_SYS_PLL2_200M] = imx_clk_hw_fixed_factor("sys_pll2_200m", "sys_pll2_out", 1, 5);
+	hws[IMX8MM_SYS_PLL2_250M] = imx_clk_hw_fixed_factor("sys_pll2_250m", "sys_pll2_out", 1, 4);
+	hws[IMX8MM_SYS_PLL2_333M] = imx_clk_hw_fixed_factor("sys_pll2_333m", "sys_pll2_out", 1, 3);
+	hws[IMX8MM_SYS_PLL2_500M] = imx_clk_hw_fixed_factor("sys_pll2_500m", "sys_pll2_out", 1, 2);
+	hws[IMX8MM_SYS_PLL2_1000M] = imx_clk_hw_fixed_factor("sys_pll2_1000m", "sys_pll2_out", 1, 1);
+
+	hws[IMX8MM_CLK_CLKOUT1_SEL] = imx_clk_hw_mux("clkout1_sel", base + 0x128, 4, 4, clkout_sels, ARRAY_SIZE(clkout_sels));
+	hws[IMX8MM_CLK_CLKOUT1_DIV] = imx_clk_hw_divider("clkout1_div", "clkout1_sel", base + 0x128, 0, 4);
+	hws[IMX8MM_CLK_CLKOUT1] = imx_clk_hw_gate("clkout1", "clkout1_div", base + 0x128, 8);
+	hws[IMX8MM_CLK_CLKOUT2_SEL] = imx_clk_hw_mux("clkout2_sel", base + 0x128, 20, 4, clkout_sels, ARRAY_SIZE(clkout_sels));
+	hws[IMX8MM_CLK_CLKOUT2_DIV] = imx_clk_hw_divider("clkout2_div", "clkout2_sel", base + 0x128, 16, 4);
+	hws[IMX8MM_CLK_CLKOUT2] = imx_clk_hw_gate("clkout2", "clkout2_div", base + 0x128, 24);
 
 	np = dev->of_node;
 	base = devm_platform_ioremap_resource(pdev, 0);
@@ -458,204 +412,227 @@
 		return PTR_ERR(base);
 
 	/* Core Slice */
-	clks[IMX8MM_CLK_A53_SRC] = imx_clk_mux2("arm_a53_src", base + 0x8000, 24, 3, imx8mm_a53_sels, ARRAY_SIZE(imx8mm_a53_sels));
-	clks[IMX8MM_CLK_M4_SRC] = imx_clk_mux2("arm_m4_src", base + 0x8080, 24, 3, imx8mm_m4_sels, ARRAY_SIZE(imx8mm_m4_sels));
-	clks[IMX8MM_CLK_VPU_SRC] = imx_clk_mux2("vpu_src", base + 0x8100, 24, 3, imx8mm_vpu_sels, ARRAY_SIZE(imx8mm_vpu_sels));
-	clks[IMX8MM_CLK_GPU3D_SRC] = imx_clk_mux2("gpu3d_src", base + 0x8180, 24, 3,  imx8mm_gpu3d_sels, ARRAY_SIZE(imx8mm_gpu3d_sels));
-	clks[IMX8MM_CLK_GPU2D_SRC] = imx_clk_mux2("gpu2d_src", base + 0x8200, 24, 3, imx8mm_gpu2d_sels,  ARRAY_SIZE(imx8mm_gpu2d_sels));
-	clks[IMX8MM_CLK_A53_CG] = imx_clk_gate3("arm_a53_cg", "arm_a53_src", base + 0x8000, 28);
-	clks[IMX8MM_CLK_M4_CG] = imx_clk_gate3("arm_m4_cg", "arm_m4_src", base + 0x8080, 28);
-	clks[IMX8MM_CLK_VPU_CG] = imx_clk_gate3("vpu_cg", "vpu_src", base + 0x8100, 28);
-	clks[IMX8MM_CLK_GPU3D_CG] = imx_clk_gate3("gpu3d_cg", "gpu3d_src", base + 0x8180, 28);
-	clks[IMX8MM_CLK_GPU2D_CG] = imx_clk_gate3("gpu2d_cg", "gpu2d_src", base + 0x8200, 28);
-	clks[IMX8MM_CLK_A53_DIV] = imx_clk_divider2("arm_a53_div", "arm_a53_cg", base + 0x8000, 0, 3);
-	clks[IMX8MM_CLK_M4_DIV] = imx_clk_divider2("arm_m4_div", "arm_m4_cg", base + 0x8080, 0, 3);
-	clks[IMX8MM_CLK_VPU_DIV] = imx_clk_divider2("vpu_div", "vpu_cg", base + 0x8100, 0, 3);
-	clks[IMX8MM_CLK_GPU3D_DIV] = imx_clk_divider2("gpu3d_div", "gpu3d_cg", base + 0x8180, 0, 3);
-	clks[IMX8MM_CLK_GPU2D_DIV] = imx_clk_divider2("gpu2d_div", "gpu2d_cg", base + 0x8200, 0, 3);
+	hws[IMX8MM_CLK_A53_DIV] = imx8m_clk_hw_composite_core("arm_a53_div", imx8mm_a53_sels, base + 0x8000);
+	hws[IMX8MM_CLK_A53_CG] = hws[IMX8MM_CLK_A53_DIV];
+	hws[IMX8MM_CLK_A53_SRC] = hws[IMX8MM_CLK_A53_DIV];
+
+	hws[IMX8MM_CLK_M4_CORE] = imx8m_clk_hw_composite_core("arm_m4_core", imx8mm_m4_sels, base + 0x8080);
+	hws[IMX8MM_CLK_VPU_CORE] = imx8m_clk_hw_composite_core("vpu_core", imx8mm_vpu_sels, base + 0x8100);
+	hws[IMX8MM_CLK_GPU3D_CORE] = imx8m_clk_hw_composite_core("gpu3d_core", imx8mm_gpu3d_sels, base + 0x8180);
+	hws[IMX8MM_CLK_GPU2D_CORE] = imx8m_clk_hw_composite_core("gpu2d_core", imx8mm_gpu2d_sels, base + 0x8200);
+
+	/* For backwards compatibility */
+	hws[IMX8MM_CLK_M4_SRC] = hws[IMX8MM_CLK_M4_CORE];
+	hws[IMX8MM_CLK_M4_CG] = hws[IMX8MM_CLK_M4_CORE];
+	hws[IMX8MM_CLK_M4_DIV] = hws[IMX8MM_CLK_M4_CORE];
+	hws[IMX8MM_CLK_VPU_SRC] = hws[IMX8MM_CLK_VPU_CORE];
+	hws[IMX8MM_CLK_VPU_CG] = hws[IMX8MM_CLK_VPU_CORE];
+	hws[IMX8MM_CLK_VPU_DIV] = hws[IMX8MM_CLK_VPU_CORE];
+	hws[IMX8MM_CLK_GPU3D_SRC] = hws[IMX8MM_CLK_GPU3D_CORE];
+	hws[IMX8MM_CLK_GPU3D_CG] = hws[IMX8MM_CLK_GPU3D_CORE];
+	hws[IMX8MM_CLK_GPU3D_DIV] = hws[IMX8MM_CLK_GPU3D_CORE];
+	hws[IMX8MM_CLK_GPU2D_SRC] = hws[IMX8MM_CLK_GPU2D_CORE];
+	hws[IMX8MM_CLK_GPU2D_CG] = hws[IMX8MM_CLK_GPU2D_CORE];
+	hws[IMX8MM_CLK_GPU2D_DIV] = hws[IMX8MM_CLK_GPU2D_CORE];
+
+	/* CORE SEL */
+	hws[IMX8MM_CLK_A53_CORE] = imx_clk_hw_mux2("arm_a53_core", base + 0x9880, 24, 1, imx8mm_a53_core_sels, ARRAY_SIZE(imx8mm_a53_core_sels));
 
 	/* BUS */
-	clks[IMX8MM_CLK_MAIN_AXI] = imx8m_clk_composite_critical("main_axi",  imx8mm_main_axi_sels, base + 0x8800);
-	clks[IMX8MM_CLK_ENET_AXI] = imx8m_clk_composite("enet_axi", imx8mm_enet_axi_sels, base + 0x8880);
-	clks[IMX8MM_CLK_NAND_USDHC_BUS] = imx8m_clk_composite_critical("nand_usdhc_bus", imx8mm_nand_usdhc_sels, base + 0x8900);
-	clks[IMX8MM_CLK_VPU_BUS] = imx8m_clk_composite("vpu_bus", imx8mm_vpu_bus_sels, base + 0x8980);
-	clks[IMX8MM_CLK_DISP_AXI] = imx8m_clk_composite("disp_axi", imx8mm_disp_axi_sels, base + 0x8a00);
-	clks[IMX8MM_CLK_DISP_APB] = imx8m_clk_composite("disp_apb", imx8mm_disp_apb_sels, base + 0x8a80);
-	clks[IMX8MM_CLK_DISP_RTRM] = imx8m_clk_composite("disp_rtrm", imx8mm_disp_rtrm_sels, base + 0x8b00);
-	clks[IMX8MM_CLK_USB_BUS] = imx8m_clk_composite("usb_bus", imx8mm_usb_bus_sels, base + 0x8b80);
-	clks[IMX8MM_CLK_GPU_AXI] = imx8m_clk_composite("gpu_axi", imx8mm_gpu_axi_sels, base + 0x8c00);
-	clks[IMX8MM_CLK_GPU_AHB] = imx8m_clk_composite("gpu_ahb", imx8mm_gpu_ahb_sels, base + 0x8c80);
-	clks[IMX8MM_CLK_NOC] = imx8m_clk_composite_critical("noc", imx8mm_noc_sels, base + 0x8d00);
-	clks[IMX8MM_CLK_NOC_APB] = imx8m_clk_composite_critical("noc_apb", imx8mm_noc_apb_sels, base + 0x8d80);
+	hws[IMX8MM_CLK_MAIN_AXI] = imx8m_clk_hw_composite_bus_critical("main_axi",  imx8mm_main_axi_sels, base + 0x8800);
+	hws[IMX8MM_CLK_ENET_AXI] = imx8m_clk_hw_composite_bus("enet_axi", imx8mm_enet_axi_sels, base + 0x8880);
+	hws[IMX8MM_CLK_NAND_USDHC_BUS] = imx8m_clk_hw_composite_bus_critical("nand_usdhc_bus", imx8mm_nand_usdhc_sels, base + 0x8900);
+	hws[IMX8MM_CLK_VPU_BUS] = imx8m_clk_hw_composite_bus("vpu_bus", imx8mm_vpu_bus_sels, base + 0x8980);
+	hws[IMX8MM_CLK_DISP_AXI] = imx8m_clk_hw_composite_bus("disp_axi", imx8mm_disp_axi_sels, base + 0x8a00);
+	hws[IMX8MM_CLK_DISP_APB] = imx8m_clk_hw_composite_bus("disp_apb", imx8mm_disp_apb_sels, base + 0x8a80);
+	hws[IMX8MM_CLK_DISP_RTRM] = imx8m_clk_hw_composite_bus("disp_rtrm", imx8mm_disp_rtrm_sels, base + 0x8b00);
+	hws[IMX8MM_CLK_USB_BUS] = imx8m_clk_hw_composite_bus("usb_bus", imx8mm_usb_bus_sels, base + 0x8b80);
+	hws[IMX8MM_CLK_GPU_AXI] = imx8m_clk_hw_composite_bus("gpu_axi", imx8mm_gpu_axi_sels, base + 0x8c00);
+	hws[IMX8MM_CLK_GPU_AHB] = imx8m_clk_hw_composite_bus("gpu_ahb", imx8mm_gpu_ahb_sels, base + 0x8c80);
+	hws[IMX8MM_CLK_NOC] = imx8m_clk_hw_composite_bus_critical("noc", imx8mm_noc_sels, base + 0x8d00);
+	hws[IMX8MM_CLK_NOC_APB] = imx8m_clk_hw_composite_bus_critical("noc_apb", imx8mm_noc_apb_sels, base + 0x8d80);
 
 	/* AHB */
-	clks[IMX8MM_CLK_AHB] = imx8m_clk_composite_critical("ahb", imx8mm_ahb_sels, base + 0x9000);
-	clks[IMX8MM_CLK_AUDIO_AHB] = imx8m_clk_composite("audio_ahb", imx8mm_audio_ahb_sels, base + 0x9100);
+	hws[IMX8MM_CLK_AHB] = imx8m_clk_hw_composite_bus_critical("ahb", imx8mm_ahb_sels, base + 0x9000);
+	hws[IMX8MM_CLK_AUDIO_AHB] = imx8m_clk_hw_composite_bus("audio_ahb", imx8mm_audio_ahb_sels, base + 0x9100);
 
 	/* IPG */
-	clks[IMX8MM_CLK_IPG_ROOT] = imx_clk_divider2("ipg_root", "ahb", base + 0x9080, 0, 1);
-	clks[IMX8MM_CLK_IPG_AUDIO_ROOT] = imx_clk_divider2("ipg_audio_root", "audio_ahb", base + 0x9180, 0, 1);
+	hws[IMX8MM_CLK_IPG_ROOT] = imx_clk_hw_divider2("ipg_root", "ahb", base + 0x9080, 0, 1);
+	hws[IMX8MM_CLK_IPG_AUDIO_ROOT] = imx_clk_hw_divider2("ipg_audio_root", "audio_ahb", base + 0x9180, 0, 1);
+
+	/*
+	 * DRAM clocks are manipulated from TF-A outside clock framework.
+	 * Mark with GET_RATE_NOCACHE to always read div value from hardware
+	 */
+	hws[IMX8MM_CLK_DRAM_ALT] = __imx8m_clk_hw_composite("dram_alt", imx8mm_dram_alt_sels, base + 0xa000, CLK_GET_RATE_NOCACHE);
+	hws[IMX8MM_CLK_DRAM_APB] = __imx8m_clk_hw_composite("dram_apb", imx8mm_dram_apb_sels, base + 0xa080, CLK_IS_CRITICAL | CLK_GET_RATE_NOCACHE);
 
 	/* IP */
-	clks[IMX8MM_CLK_DRAM_ALT] = imx8m_clk_composite("dram_alt", imx8mm_dram_alt_sels, base + 0xa000);
-	clks[IMX8MM_CLK_DRAM_APB] = imx8m_clk_composite_critical("dram_apb", imx8mm_dram_apb_sels, base + 0xa080);
-	clks[IMX8MM_CLK_VPU_G1] = imx8m_clk_composite("vpu_g1", imx8mm_vpu_g1_sels, base + 0xa100);
-	clks[IMX8MM_CLK_VPU_G2] = imx8m_clk_composite("vpu_g2", imx8mm_vpu_g2_sels, base + 0xa180);
-	clks[IMX8MM_CLK_DISP_DTRC] = imx8m_clk_composite("disp_dtrc", imx8mm_disp_dtrc_sels, base + 0xa200);
-	clks[IMX8MM_CLK_DISP_DC8000] = imx8m_clk_composite("disp_dc8000", imx8mm_disp_dc8000_sels, base + 0xa280);
-	clks[IMX8MM_CLK_PCIE1_CTRL] = imx8m_clk_composite("pcie1_ctrl", imx8mm_pcie1_ctrl_sels, base + 0xa300);
-	clks[IMX8MM_CLK_PCIE1_PHY] = imx8m_clk_composite("pcie1_phy", imx8mm_pcie1_phy_sels, base + 0xa380);
-	clks[IMX8MM_CLK_PCIE1_AUX] = imx8m_clk_composite("pcie1_aux", imx8mm_pcie1_aux_sels, base + 0xa400);
-	clks[IMX8MM_CLK_DC_PIXEL] = imx8m_clk_composite("dc_pixel", imx8mm_dc_pixel_sels, base + 0xa480);
-	clks[IMX8MM_CLK_LCDIF_PIXEL] = imx8m_clk_composite("lcdif_pixel", imx8mm_lcdif_pixel_sels, base + 0xa500);
-	clks[IMX8MM_CLK_SAI1] = imx8m_clk_composite("sai1", imx8mm_sai1_sels, base + 0xa580);
-	clks[IMX8MM_CLK_SAI2] = imx8m_clk_composite("sai2", imx8mm_sai2_sels, base + 0xa600);
-	clks[IMX8MM_CLK_SAI3] = imx8m_clk_composite("sai3", imx8mm_sai3_sels, base + 0xa680);
-	clks[IMX8MM_CLK_SAI4] = imx8m_clk_composite("sai4", imx8mm_sai4_sels, base + 0xa700);
-	clks[IMX8MM_CLK_SAI5] = imx8m_clk_composite("sai5", imx8mm_sai5_sels, base + 0xa780);
-	clks[IMX8MM_CLK_SAI6] = imx8m_clk_composite("sai6", imx8mm_sai6_sels, base + 0xa800);
-	clks[IMX8MM_CLK_SPDIF1] = imx8m_clk_composite("spdif1", imx8mm_spdif1_sels, base + 0xa880);
-	clks[IMX8MM_CLK_SPDIF2] = imx8m_clk_composite("spdif2", imx8mm_spdif2_sels, base + 0xa900);
-	clks[IMX8MM_CLK_ENET_REF] = imx8m_clk_composite("enet_ref", imx8mm_enet_ref_sels, base + 0xa980);
-	clks[IMX8MM_CLK_ENET_TIMER] = imx8m_clk_composite("enet_timer", imx8mm_enet_timer_sels, base + 0xaa00);
-	clks[IMX8MM_CLK_ENET_PHY_REF] = imx8m_clk_composite("enet_phy", imx8mm_enet_phy_sels, base + 0xaa80);
-	clks[IMX8MM_CLK_NAND] = imx8m_clk_composite("nand", imx8mm_nand_sels, base + 0xab00);
-	clks[IMX8MM_CLK_QSPI] = imx8m_clk_composite("qspi", imx8mm_qspi_sels, base + 0xab80);
-	clks[IMX8MM_CLK_USDHC1] = imx8m_clk_composite("usdhc1", imx8mm_usdhc1_sels, base + 0xac00);
-	clks[IMX8MM_CLK_USDHC2] = imx8m_clk_composite("usdhc2", imx8mm_usdhc2_sels, base + 0xac80);
-	clks[IMX8MM_CLK_I2C1] = imx8m_clk_composite("i2c1", imx8mm_i2c1_sels, base + 0xad00);
-	clks[IMX8MM_CLK_I2C2] = imx8m_clk_composite("i2c2", imx8mm_i2c2_sels, base + 0xad80);
-	clks[IMX8MM_CLK_I2C3] = imx8m_clk_composite("i2c3", imx8mm_i2c3_sels, base + 0xae00);
-	clks[IMX8MM_CLK_I2C4] = imx8m_clk_composite("i2c4", imx8mm_i2c4_sels, base + 0xae80);
-	clks[IMX8MM_CLK_UART1] = imx8m_clk_composite("uart1", imx8mm_uart1_sels, base + 0xaf00);
-	clks[IMX8MM_CLK_UART2] = imx8m_clk_composite("uart2", imx8mm_uart2_sels, base + 0xaf80);
-	clks[IMX8MM_CLK_UART3] = imx8m_clk_composite("uart3", imx8mm_uart3_sels, base + 0xb000);
-	clks[IMX8MM_CLK_UART4] = imx8m_clk_composite("uart4", imx8mm_uart4_sels, base + 0xb080);
-	clks[IMX8MM_CLK_USB_CORE_REF] = imx8m_clk_composite("usb_core_ref", imx8mm_usb_core_sels, base + 0xb100);
-	clks[IMX8MM_CLK_USB_PHY_REF] = imx8m_clk_composite("usb_phy_ref", imx8mm_usb_phy_sels, base + 0xb180);
-	clks[IMX8MM_CLK_GIC] = imx8m_clk_composite_critical("gic", imx8mm_gic_sels, base + 0xb200);
-	clks[IMX8MM_CLK_ECSPI1] = imx8m_clk_composite("ecspi1", imx8mm_ecspi1_sels, base + 0xb280);
-	clks[IMX8MM_CLK_ECSPI2] = imx8m_clk_composite("ecspi2", imx8mm_ecspi2_sels, base + 0xb300);
-	clks[IMX8MM_CLK_PWM1] = imx8m_clk_composite("pwm1", imx8mm_pwm1_sels, base + 0xb380);
-	clks[IMX8MM_CLK_PWM2] = imx8m_clk_composite("pwm2", imx8mm_pwm2_sels, base + 0xb400);
-	clks[IMX8MM_CLK_PWM3] = imx8m_clk_composite("pwm3", imx8mm_pwm3_sels, base + 0xb480);
-	clks[IMX8MM_CLK_PWM4] = imx8m_clk_composite("pwm4", imx8mm_pwm4_sels, base + 0xb500);
-	clks[IMX8MM_CLK_GPT1] = imx8m_clk_composite("gpt1", imx8mm_gpt1_sels, base + 0xb580);
-	clks[IMX8MM_CLK_WDOG] = imx8m_clk_composite("wdog", imx8mm_wdog_sels, base + 0xb900);
-	clks[IMX8MM_CLK_WRCLK] = imx8m_clk_composite("wrclk", imx8mm_wrclk_sels, base + 0xb980);
-	clks[IMX8MM_CLK_CLKO1] = imx8m_clk_composite("clko1", imx8mm_clko1_sels, base + 0xba00);
-	clks[IMX8MM_CLK_DSI_CORE] = imx8m_clk_composite("dsi_core", imx8mm_dsi_core_sels, base + 0xbb00);
-	clks[IMX8MM_CLK_DSI_PHY_REF] = imx8m_clk_composite("dsi_phy_ref", imx8mm_dsi_phy_sels, base + 0xbb80);
-	clks[IMX8MM_CLK_DSI_DBI] = imx8m_clk_composite("dsi_dbi", imx8mm_dsi_dbi_sels, base + 0xbc00);
-	clks[IMX8MM_CLK_USDHC3] = imx8m_clk_composite("usdhc3", imx8mm_usdhc3_sels, base + 0xbc80);
-	clks[IMX8MM_CLK_CSI1_CORE] = imx8m_clk_composite("csi1_core", imx8mm_csi1_core_sels, base + 0xbd00);
-	clks[IMX8MM_CLK_CSI1_PHY_REF] = imx8m_clk_composite("csi1_phy_ref", imx8mm_csi1_phy_sels, base + 0xbd80);
-	clks[IMX8MM_CLK_CSI1_ESC] = imx8m_clk_composite("csi1_esc", imx8mm_csi1_esc_sels, base + 0xbe00);
-	clks[IMX8MM_CLK_CSI2_CORE] = imx8m_clk_composite("csi2_core", imx8mm_csi2_core_sels, base + 0xbe80);
-	clks[IMX8MM_CLK_CSI2_PHY_REF] = imx8m_clk_composite("csi2_phy_ref", imx8mm_csi2_phy_sels, base + 0xbf00);
-	clks[IMX8MM_CLK_CSI2_ESC] = imx8m_clk_composite("csi2_esc", imx8mm_csi2_esc_sels, base + 0xbf80);
-	clks[IMX8MM_CLK_PCIE2_CTRL] = imx8m_clk_composite("pcie2_ctrl", imx8mm_pcie2_ctrl_sels, base + 0xc000);
-	clks[IMX8MM_CLK_PCIE2_PHY] = imx8m_clk_composite("pcie2_phy", imx8mm_pcie2_phy_sels, base + 0xc080);
-	clks[IMX8MM_CLK_PCIE2_AUX] = imx8m_clk_composite("pcie2_aux", imx8mm_pcie2_aux_sels, base + 0xc100);
-	clks[IMX8MM_CLK_ECSPI3] = imx8m_clk_composite("ecspi3", imx8mm_ecspi3_sels, base + 0xc180);
-	clks[IMX8MM_CLK_PDM] = imx8m_clk_composite("pdm", imx8mm_pdm_sels, base + 0xc200);
-	clks[IMX8MM_CLK_VPU_H1] = imx8m_clk_composite("vpu_h1", imx8mm_vpu_h1_sels, base + 0xc280);
+	hws[IMX8MM_CLK_VPU_G1] = imx8m_clk_hw_composite("vpu_g1", imx8mm_vpu_g1_sels, base + 0xa100);
+	hws[IMX8MM_CLK_VPU_G2] = imx8m_clk_hw_composite("vpu_g2", imx8mm_vpu_g2_sels, base + 0xa180);
+	hws[IMX8MM_CLK_DISP_DTRC] = imx8m_clk_hw_composite("disp_dtrc", imx8mm_disp_dtrc_sels, base + 0xa200);
+	hws[IMX8MM_CLK_DISP_DC8000] = imx8m_clk_hw_composite("disp_dc8000", imx8mm_disp_dc8000_sels, base + 0xa280);
+	hws[IMX8MM_CLK_PCIE1_CTRL] = imx8m_clk_hw_composite("pcie1_ctrl", imx8mm_pcie1_ctrl_sels, base + 0xa300);
+	hws[IMX8MM_CLK_PCIE1_PHY] = imx8m_clk_hw_composite("pcie1_phy", imx8mm_pcie1_phy_sels, base + 0xa380);
+	hws[IMX8MM_CLK_PCIE1_AUX] = imx8m_clk_hw_composite("pcie1_aux", imx8mm_pcie1_aux_sels, base + 0xa400);
+	hws[IMX8MM_CLK_DC_PIXEL] = imx8m_clk_hw_composite("dc_pixel", imx8mm_dc_pixel_sels, base + 0xa480);
+	hws[IMX8MM_CLK_LCDIF_PIXEL] = imx8m_clk_hw_composite("lcdif_pixel", imx8mm_lcdif_pixel_sels, base + 0xa500);
+	hws[IMX8MM_CLK_SAI1] = imx8m_clk_hw_composite("sai1", imx8mm_sai1_sels, base + 0xa580);
+	hws[IMX8MM_CLK_SAI2] = imx8m_clk_hw_composite("sai2", imx8mm_sai2_sels, base + 0xa600);
+	hws[IMX8MM_CLK_SAI3] = imx8m_clk_hw_composite("sai3", imx8mm_sai3_sels, base + 0xa680);
+	hws[IMX8MM_CLK_SAI4] = imx8m_clk_hw_composite("sai4", imx8mm_sai4_sels, base + 0xa700);
+	hws[IMX8MM_CLK_SAI5] = imx8m_clk_hw_composite("sai5", imx8mm_sai5_sels, base + 0xa780);
+	hws[IMX8MM_CLK_SAI6] = imx8m_clk_hw_composite("sai6", imx8mm_sai6_sels, base + 0xa800);
+	hws[IMX8MM_CLK_SPDIF1] = imx8m_clk_hw_composite("spdif1", imx8mm_spdif1_sels, base + 0xa880);
+	hws[IMX8MM_CLK_SPDIF2] = imx8m_clk_hw_composite("spdif2", imx8mm_spdif2_sels, base + 0xa900);
+	hws[IMX8MM_CLK_ENET_REF] = imx8m_clk_hw_composite("enet_ref", imx8mm_enet_ref_sels, base + 0xa980);
+	hws[IMX8MM_CLK_ENET_TIMER] = imx8m_clk_hw_composite("enet_timer", imx8mm_enet_timer_sels, base + 0xaa00);
+	hws[IMX8MM_CLK_ENET_PHY_REF] = imx8m_clk_hw_composite("enet_phy", imx8mm_enet_phy_sels, base + 0xaa80);
+	hws[IMX8MM_CLK_NAND] = imx8m_clk_hw_composite("nand", imx8mm_nand_sels, base + 0xab00);
+	hws[IMX8MM_CLK_QSPI] = imx8m_clk_hw_composite("qspi", imx8mm_qspi_sels, base + 0xab80);
+	hws[IMX8MM_CLK_USDHC1] = imx8m_clk_hw_composite("usdhc1", imx8mm_usdhc1_sels, base + 0xac00);
+	hws[IMX8MM_CLK_USDHC2] = imx8m_clk_hw_composite("usdhc2", imx8mm_usdhc2_sels, base + 0xac80);
+	hws[IMX8MM_CLK_I2C1] = imx8m_clk_hw_composite("i2c1", imx8mm_i2c1_sels, base + 0xad00);
+	hws[IMX8MM_CLK_I2C2] = imx8m_clk_hw_composite("i2c2", imx8mm_i2c2_sels, base + 0xad80);
+	hws[IMX8MM_CLK_I2C3] = imx8m_clk_hw_composite("i2c3", imx8mm_i2c3_sels, base + 0xae00);
+	hws[IMX8MM_CLK_I2C4] = imx8m_clk_hw_composite("i2c4", imx8mm_i2c4_sels, base + 0xae80);
+	hws[IMX8MM_CLK_UART1] = imx8m_clk_hw_composite("uart1", imx8mm_uart1_sels, base + 0xaf00);
+	hws[IMX8MM_CLK_UART2] = imx8m_clk_hw_composite("uart2", imx8mm_uart2_sels, base + 0xaf80);
+	hws[IMX8MM_CLK_UART3] = imx8m_clk_hw_composite("uart3", imx8mm_uart3_sels, base + 0xb000);
+	hws[IMX8MM_CLK_UART4] = imx8m_clk_hw_composite("uart4", imx8mm_uart4_sels, base + 0xb080);
+	hws[IMX8MM_CLK_USB_CORE_REF] = imx8m_clk_hw_composite("usb_core_ref", imx8mm_usb_core_sels, base + 0xb100);
+	hws[IMX8MM_CLK_USB_PHY_REF] = imx8m_clk_hw_composite("usb_phy_ref", imx8mm_usb_phy_sels, base + 0xb180);
+	hws[IMX8MM_CLK_GIC] = imx8m_clk_hw_composite_critical("gic", imx8mm_gic_sels, base + 0xb200);
+	hws[IMX8MM_CLK_ECSPI1] = imx8m_clk_hw_composite("ecspi1", imx8mm_ecspi1_sels, base + 0xb280);
+	hws[IMX8MM_CLK_ECSPI2] = imx8m_clk_hw_composite("ecspi2", imx8mm_ecspi2_sels, base + 0xb300);
+	hws[IMX8MM_CLK_PWM1] = imx8m_clk_hw_composite("pwm1", imx8mm_pwm1_sels, base + 0xb380);
+	hws[IMX8MM_CLK_PWM2] = imx8m_clk_hw_composite("pwm2", imx8mm_pwm2_sels, base + 0xb400);
+	hws[IMX8MM_CLK_PWM3] = imx8m_clk_hw_composite("pwm3", imx8mm_pwm3_sels, base + 0xb480);
+	hws[IMX8MM_CLK_PWM4] = imx8m_clk_hw_composite("pwm4", imx8mm_pwm4_sels, base + 0xb500);
+	hws[IMX8MM_CLK_GPT1] = imx8m_clk_hw_composite("gpt1", imx8mm_gpt1_sels, base + 0xb580);
+	hws[IMX8MM_CLK_WDOG] = imx8m_clk_hw_composite("wdog", imx8mm_wdog_sels, base + 0xb900);
+	hws[IMX8MM_CLK_WRCLK] = imx8m_clk_hw_composite("wrclk", imx8mm_wrclk_sels, base + 0xb980);
+	hws[IMX8MM_CLK_CLKO1] = imx8m_clk_hw_composite("clko1", imx8mm_clko1_sels, base + 0xba00);
+	hws[IMX8MM_CLK_CLKO2] = imx8m_clk_hw_composite("clko2", imx8mm_clko2_sels, base + 0xba80);
+	hws[IMX8MM_CLK_DSI_CORE] = imx8m_clk_hw_composite("dsi_core", imx8mm_dsi_core_sels, base + 0xbb00);
+	hws[IMX8MM_CLK_DSI_PHY_REF] = imx8m_clk_hw_composite("dsi_phy_ref", imx8mm_dsi_phy_sels, base + 0xbb80);
+	hws[IMX8MM_CLK_DSI_DBI] = imx8m_clk_hw_composite("dsi_dbi", imx8mm_dsi_dbi_sels, base + 0xbc00);
+	hws[IMX8MM_CLK_USDHC3] = imx8m_clk_hw_composite("usdhc3", imx8mm_usdhc3_sels, base + 0xbc80);
+	hws[IMX8MM_CLK_CSI1_CORE] = imx8m_clk_hw_composite("csi1_core", imx8mm_csi1_core_sels, base + 0xbd00);
+	hws[IMX8MM_CLK_CSI1_PHY_REF] = imx8m_clk_hw_composite("csi1_phy_ref", imx8mm_csi1_phy_sels, base + 0xbd80);
+	hws[IMX8MM_CLK_CSI1_ESC] = imx8m_clk_hw_composite("csi1_esc", imx8mm_csi1_esc_sels, base + 0xbe00);
+	hws[IMX8MM_CLK_CSI2_CORE] = imx8m_clk_hw_composite("csi2_core", imx8mm_csi2_core_sels, base + 0xbe80);
+	hws[IMX8MM_CLK_CSI2_PHY_REF] = imx8m_clk_hw_composite("csi2_phy_ref", imx8mm_csi2_phy_sels, base + 0xbf00);
+	hws[IMX8MM_CLK_CSI2_ESC] = imx8m_clk_hw_composite("csi2_esc", imx8mm_csi2_esc_sels, base + 0xbf80);
+	hws[IMX8MM_CLK_PCIE2_CTRL] = imx8m_clk_hw_composite("pcie2_ctrl", imx8mm_pcie2_ctrl_sels, base + 0xc000);
+	hws[IMX8MM_CLK_PCIE2_PHY] = imx8m_clk_hw_composite("pcie2_phy", imx8mm_pcie2_phy_sels, base + 0xc080);
+	hws[IMX8MM_CLK_PCIE2_AUX] = imx8m_clk_hw_composite("pcie2_aux", imx8mm_pcie2_aux_sels, base + 0xc100);
+	hws[IMX8MM_CLK_ECSPI3] = imx8m_clk_hw_composite("ecspi3", imx8mm_ecspi3_sels, base + 0xc180);
+	hws[IMX8MM_CLK_PDM] = imx8m_clk_hw_composite("pdm", imx8mm_pdm_sels, base + 0xc200);
+	hws[IMX8MM_CLK_VPU_H1] = imx8m_clk_hw_composite("vpu_h1", imx8mm_vpu_h1_sels, base + 0xc280);
 
 	/* CCGR */
-	clks[IMX8MM_CLK_ECSPI1_ROOT] = imx_clk_gate4("ecspi1_root_clk", "ecspi1", base + 0x4070, 0);
-	clks[IMX8MM_CLK_ECSPI2_ROOT] = imx_clk_gate4("ecspi2_root_clk", "ecspi2", base + 0x4080, 0);
-	clks[IMX8MM_CLK_ECSPI3_ROOT] = imx_clk_gate4("ecspi3_root_clk", "ecspi3", base + 0x4090, 0);
-	clks[IMX8MM_CLK_ENET1_ROOT] = imx_clk_gate4("enet1_root_clk", "enet_axi", base + 0x40a0, 0);
-	clks[IMX8MM_CLK_GPIO1_ROOT] = imx_clk_gate4("gpio1_root_clk", "ipg_root", base + 0x40b0, 0);
-	clks[IMX8MM_CLK_GPIO2_ROOT] = imx_clk_gate4("gpio2_root_clk", "ipg_root", base + 0x40c0, 0);
-	clks[IMX8MM_CLK_GPIO3_ROOT] = imx_clk_gate4("gpio3_root_clk", "ipg_root", base + 0x40d0, 0);
-	clks[IMX8MM_CLK_GPIO4_ROOT] = imx_clk_gate4("gpio4_root_clk", "ipg_root", base + 0x40e0, 0);
-	clks[IMX8MM_CLK_GPIO5_ROOT] = imx_clk_gate4("gpio5_root_clk", "ipg_root", base + 0x40f0, 0);
-	clks[IMX8MM_CLK_GPT1_ROOT] = imx_clk_gate4("gpt1_root_clk", "gpt1", base + 0x4100, 0);
-	clks[IMX8MM_CLK_I2C1_ROOT] = imx_clk_gate4("i2c1_root_clk", "i2c1", base + 0x4170, 0);
-	clks[IMX8MM_CLK_I2C2_ROOT] = imx_clk_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);
-	clks[IMX8MM_CLK_I2C3_ROOT] = imx_clk_gate4("i2c3_root_clk", "i2c3", base + 0x4190, 0);
-	clks[IMX8MM_CLK_I2C4_ROOT] = imx_clk_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0);
-	clks[IMX8MM_CLK_MU_ROOT] = imx_clk_gate4("mu_root_clk", "ipg_root", base + 0x4210, 0);
-	clks[IMX8MM_CLK_OCOTP_ROOT] = imx_clk_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0);
-	clks[IMX8MM_CLK_PCIE1_ROOT] = imx_clk_gate4("pcie1_root_clk", "pcie1_ctrl", base + 0x4250, 0);
-	clks[IMX8MM_CLK_PWM1_ROOT] = imx_clk_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0);
-	clks[IMX8MM_CLK_PWM2_ROOT] = imx_clk_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0);
-	clks[IMX8MM_CLK_PWM3_ROOT] = imx_clk_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0);
-	clks[IMX8MM_CLK_PWM4_ROOT] = imx_clk_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0);
-	clks[IMX8MM_CLK_QSPI_ROOT] = imx_clk_gate4("qspi_root_clk", "qspi", base + 0x42f0, 0);
-	clks[IMX8MM_CLK_NAND_ROOT] = imx_clk_gate2_shared2("nand_root_clk", "nand", base + 0x4300, 0, &share_count_nand);
-	clks[IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", base + 0x4300, 0, &share_count_nand);
-	clks[IMX8MM_CLK_SAI1_ROOT] = imx_clk_gate2_shared2("sai1_root_clk", "sai1", base + 0x4330, 0, &share_count_sai1);
-	clks[IMX8MM_CLK_SAI1_IPG] = imx_clk_gate2_shared2("sai1_ipg_clk", "ipg_audio_root", base + 0x4330, 0, &share_count_sai1);
-	clks[IMX8MM_CLK_SAI2_ROOT] = imx_clk_gate2_shared2("sai2_root_clk", "sai2", base + 0x4340, 0, &share_count_sai2);
-	clks[IMX8MM_CLK_SAI2_IPG] = imx_clk_gate2_shared2("sai2_ipg_clk", "ipg_audio_root", base + 0x4340, 0, &share_count_sai2);
-	clks[IMX8MM_CLK_SAI3_ROOT] = imx_clk_gate2_shared2("sai3_root_clk", "sai3", base + 0x4350, 0, &share_count_sai3);
-	clks[IMX8MM_CLK_SAI3_IPG] = imx_clk_gate2_shared2("sai3_ipg_clk", "ipg_audio_root", base + 0x4350, 0, &share_count_sai3);
-	clks[IMX8MM_CLK_SAI4_ROOT] = imx_clk_gate2_shared2("sai4_root_clk", "sai4", base + 0x4360, 0, &share_count_sai4);
-	clks[IMX8MM_CLK_SAI4_IPG] = imx_clk_gate2_shared2("sai4_ipg_clk", "ipg_audio_root", base + 0x4360, 0, &share_count_sai4);
-	clks[IMX8MM_CLK_SAI5_ROOT] = imx_clk_gate2_shared2("sai5_root_clk", "sai5", base + 0x4370, 0, &share_count_sai5);
-	clks[IMX8MM_CLK_SAI5_IPG] = imx_clk_gate2_shared2("sai5_ipg_clk", "ipg_audio_root", base + 0x4370, 0, &share_count_sai5);
-	clks[IMX8MM_CLK_SAI6_ROOT] = imx_clk_gate2_shared2("sai6_root_clk", "sai6", base + 0x4380, 0, &share_count_sai6);
-	clks[IMX8MM_CLK_SAI6_IPG] = imx_clk_gate2_shared2("sai6_ipg_clk", "ipg_audio_root", base + 0x4380, 0, &share_count_sai6);
-	clks[IMX8MM_CLK_SNVS_ROOT] = imx_clk_gate4("snvs_root_clk", "ipg_root", base + 0x4470, 0);
-	clks[IMX8MM_CLK_UART1_ROOT] = imx_clk_gate4("uart1_root_clk", "uart1", base + 0x4490, 0);
-	clks[IMX8MM_CLK_UART2_ROOT] = imx_clk_gate4("uart2_root_clk", "uart2", base + 0x44a0, 0);
-	clks[IMX8MM_CLK_UART3_ROOT] = imx_clk_gate4("uart3_root_clk", "uart3", base + 0x44b0, 0);
-	clks[IMX8MM_CLK_UART4_ROOT] = imx_clk_gate4("uart4_root_clk", "uart4", base + 0x44c0, 0);
-	clks[IMX8MM_CLK_USB1_CTRL_ROOT] = imx_clk_gate4("usb1_ctrl_root_clk", "usb_bus", base + 0x44d0, 0);
-	clks[IMX8MM_CLK_GPU3D_ROOT] = imx_clk_gate4("gpu3d_root_clk", "gpu3d_div", base + 0x44f0, 0);
-	clks[IMX8MM_CLK_USDHC1_ROOT] = imx_clk_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0);
-	clks[IMX8MM_CLK_USDHC2_ROOT] = imx_clk_gate4("usdhc2_root_clk", "usdhc2", base + 0x4520, 0);
-	clks[IMX8MM_CLK_WDOG1_ROOT] = imx_clk_gate4("wdog1_root_clk", "wdog", base + 0x4530, 0);
-	clks[IMX8MM_CLK_WDOG2_ROOT] = imx_clk_gate4("wdog2_root_clk", "wdog", base + 0x4540, 0);
-	clks[IMX8MM_CLK_WDOG3_ROOT] = imx_clk_gate4("wdog3_root_clk", "wdog", base + 0x4550, 0);
-	clks[IMX8MM_CLK_VPU_G1_ROOT] = imx_clk_gate4("vpu_g1_root_clk", "vpu_g1", base + 0x4560, 0);
-	clks[IMX8MM_CLK_GPU_BUS_ROOT] = imx_clk_gate4("gpu_root_clk", "gpu_axi", base + 0x4570, 0);
-	clks[IMX8MM_CLK_VPU_H1_ROOT] = imx_clk_gate4("vpu_h1_root_clk", "vpu_h1", base + 0x4590, 0);
-	clks[IMX8MM_CLK_VPU_G2_ROOT] = imx_clk_gate4("vpu_g2_root_clk", "vpu_g2", base + 0x45a0, 0);
-	clks[IMX8MM_CLK_PDM_ROOT] = imx_clk_gate2_shared2("pdm_root_clk", "pdm", base + 0x45b0, 0, &share_count_pdm);
-	clks[IMX8MM_CLK_PDM_IPG]  = imx_clk_gate2_shared2("pdm_ipg_clk", "ipg_audio_root", base + 0x45b0, 0, &share_count_pdm);
-	clks[IMX8MM_CLK_DISP_ROOT] = imx_clk_gate2_shared2("disp_root_clk", "disp_dc8000", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MM_CLK_DISP_AXI_ROOT]  = imx_clk_gate2_shared2("disp_axi_root_clk", "disp_axi", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MM_CLK_DISP_APB_ROOT]  = imx_clk_gate2_shared2("disp_apb_root_clk", "disp_apb", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MM_CLK_DISP_RTRM_ROOT] = imx_clk_gate2_shared2("disp_rtrm_root_clk", "disp_rtrm", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MM_CLK_USDHC3_ROOT] = imx_clk_gate4("usdhc3_root_clk", "usdhc3", base + 0x45e0, 0);
-	clks[IMX8MM_CLK_TMU_ROOT] = imx_clk_gate4("tmu_root_clk", "ipg_root", base + 0x4620, 0);
-	clks[IMX8MM_CLK_VPU_DEC_ROOT] = imx_clk_gate4("vpu_dec_root_clk", "vpu_bus", base + 0x4630, 0);
-	clks[IMX8MM_CLK_SDMA1_ROOT] = imx_clk_gate4("sdma1_clk", "ipg_root", base + 0x43a0, 0);
-	clks[IMX8MM_CLK_SDMA2_ROOT] = imx_clk_gate4("sdma2_clk", "ipg_audio_root", base + 0x43b0, 0);
-	clks[IMX8MM_CLK_SDMA3_ROOT] = imx_clk_gate4("sdma3_clk", "ipg_audio_root", base + 0x45f0, 0);
-	clks[IMX8MM_CLK_GPU2D_ROOT] = imx_clk_gate4("gpu2d_root_clk", "gpu2d_div", base + 0x4660, 0);
-	clks[IMX8MM_CLK_CSI1_ROOT] = imx_clk_gate4("csi1_root_clk", "csi1_core", base + 0x4650, 0);
-
-	clks[IMX8MM_CLK_GPT_3M] = imx_clk_fixed_factor("gpt_3m", "osc_24m", 1, 8);
-
-	clks[IMX8MM_CLK_DRAM_ALT_ROOT] = imx_clk_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
-	clks[IMX8MM_CLK_DRAM_CORE] = imx_clk_mux2_flags("dram_core_clk", base + 0x9800, 24, 1, imx8mm_dram_core_sels, ARRAY_SIZE(imx8mm_dram_core_sels), CLK_IS_CRITICAL);
-
-	clks[IMX8MM_CLK_ARM] = imx_clk_cpu("arm", "arm_a53_div",
-					   clks[IMX8MM_CLK_A53_DIV],
-					   clks[IMX8MM_CLK_A53_SRC],
-					   clks[IMX8MM_ARM_PLL_OUT],
-					   clks[IMX8MM_SYS_PLL1_800M]);
-
-	imx_check_clocks(clks, ARRAY_SIZE(clks));
-
-	clk_data.clks = clks;
-	clk_data.clk_num = ARRAY_SIZE(clks);
-	ret = of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+	hws[IMX8MM_CLK_ECSPI1_ROOT] = imx_clk_hw_gate4("ecspi1_root_clk", "ecspi1", base + 0x4070, 0);
+	hws[IMX8MM_CLK_ECSPI2_ROOT] = imx_clk_hw_gate4("ecspi2_root_clk", "ecspi2", base + 0x4080, 0);
+	hws[IMX8MM_CLK_ECSPI3_ROOT] = imx_clk_hw_gate4("ecspi3_root_clk", "ecspi3", base + 0x4090, 0);
+	hws[IMX8MM_CLK_ENET1_ROOT] = imx_clk_hw_gate4("enet1_root_clk", "enet_axi", base + 0x40a0, 0);
+	hws[IMX8MM_CLK_GPIO1_ROOT] = imx_clk_hw_gate4("gpio1_root_clk", "ipg_root", base + 0x40b0, 0);
+	hws[IMX8MM_CLK_GPIO2_ROOT] = imx_clk_hw_gate4("gpio2_root_clk", "ipg_root", base + 0x40c0, 0);
+	hws[IMX8MM_CLK_GPIO3_ROOT] = imx_clk_hw_gate4("gpio3_root_clk", "ipg_root", base + 0x40d0, 0);
+	hws[IMX8MM_CLK_GPIO4_ROOT] = imx_clk_hw_gate4("gpio4_root_clk", "ipg_root", base + 0x40e0, 0);
+	hws[IMX8MM_CLK_GPIO5_ROOT] = imx_clk_hw_gate4("gpio5_root_clk", "ipg_root", base + 0x40f0, 0);
+	hws[IMX8MM_CLK_GPT1_ROOT] = imx_clk_hw_gate4("gpt1_root_clk", "gpt1", base + 0x4100, 0);
+	hws[IMX8MM_CLK_I2C1_ROOT] = imx_clk_hw_gate4("i2c1_root_clk", "i2c1", base + 0x4170, 0);
+	hws[IMX8MM_CLK_I2C2_ROOT] = imx_clk_hw_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);
+	hws[IMX8MM_CLK_I2C3_ROOT] = imx_clk_hw_gate4("i2c3_root_clk", "i2c3", base + 0x4190, 0);
+	hws[IMX8MM_CLK_I2C4_ROOT] = imx_clk_hw_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0);
+	hws[IMX8MM_CLK_MU_ROOT] = imx_clk_hw_gate4("mu_root_clk", "ipg_root", base + 0x4210, 0);
+	hws[IMX8MM_CLK_OCOTP_ROOT] = imx_clk_hw_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0);
+	hws[IMX8MM_CLK_PCIE1_ROOT] = imx_clk_hw_gate4("pcie1_root_clk", "pcie1_ctrl", base + 0x4250, 0);
+	hws[IMX8MM_CLK_PWM1_ROOT] = imx_clk_hw_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0);
+	hws[IMX8MM_CLK_PWM2_ROOT] = imx_clk_hw_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0);
+	hws[IMX8MM_CLK_PWM3_ROOT] = imx_clk_hw_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0);
+	hws[IMX8MM_CLK_PWM4_ROOT] = imx_clk_hw_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0);
+	hws[IMX8MM_CLK_QSPI_ROOT] = imx_clk_hw_gate4("qspi_root_clk", "qspi", base + 0x42f0, 0);
+	hws[IMX8MM_CLK_NAND_ROOT] = imx_clk_hw_gate2_shared2("nand_root_clk", "nand", base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_hw_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MM_CLK_SAI1_ROOT] = imx_clk_hw_gate2_shared2("sai1_root_clk", "sai1", base + 0x4330, 0, &share_count_sai1);
+	hws[IMX8MM_CLK_SAI1_IPG] = imx_clk_hw_gate2_shared2("sai1_ipg_clk", "ipg_audio_root", base + 0x4330, 0, &share_count_sai1);
+	hws[IMX8MM_CLK_SAI2_ROOT] = imx_clk_hw_gate2_shared2("sai2_root_clk", "sai2", base + 0x4340, 0, &share_count_sai2);
+	hws[IMX8MM_CLK_SAI2_IPG] = imx_clk_hw_gate2_shared2("sai2_ipg_clk", "ipg_audio_root", base + 0x4340, 0, &share_count_sai2);
+	hws[IMX8MM_CLK_SAI3_ROOT] = imx_clk_hw_gate2_shared2("sai3_root_clk", "sai3", base + 0x4350, 0, &share_count_sai3);
+	hws[IMX8MM_CLK_SAI3_IPG] = imx_clk_hw_gate2_shared2("sai3_ipg_clk", "ipg_audio_root", base + 0x4350, 0, &share_count_sai3);
+	hws[IMX8MM_CLK_SAI4_ROOT] = imx_clk_hw_gate2_shared2("sai4_root_clk", "sai4", base + 0x4360, 0, &share_count_sai4);
+	hws[IMX8MM_CLK_SAI4_IPG] = imx_clk_hw_gate2_shared2("sai4_ipg_clk", "ipg_audio_root", base + 0x4360, 0, &share_count_sai4);
+	hws[IMX8MM_CLK_SAI5_ROOT] = imx_clk_hw_gate2_shared2("sai5_root_clk", "sai5", base + 0x4370, 0, &share_count_sai5);
+	hws[IMX8MM_CLK_SAI5_IPG] = imx_clk_hw_gate2_shared2("sai5_ipg_clk", "ipg_audio_root", base + 0x4370, 0, &share_count_sai5);
+	hws[IMX8MM_CLK_SAI6_ROOT] = imx_clk_hw_gate2_shared2("sai6_root_clk", "sai6", base + 0x4380, 0, &share_count_sai6);
+	hws[IMX8MM_CLK_SAI6_IPG] = imx_clk_hw_gate2_shared2("sai6_ipg_clk", "ipg_audio_root", base + 0x4380, 0, &share_count_sai6);
+	hws[IMX8MM_CLK_SNVS_ROOT] = imx_clk_hw_gate4("snvs_root_clk", "ipg_root", base + 0x4470, 0);
+	hws[IMX8MM_CLK_UART1_ROOT] = imx_clk_hw_gate4("uart1_root_clk", "uart1", base + 0x4490, 0);
+	hws[IMX8MM_CLK_UART2_ROOT] = imx_clk_hw_gate4("uart2_root_clk", "uart2", base + 0x44a0, 0);
+	hws[IMX8MM_CLK_UART3_ROOT] = imx_clk_hw_gate4("uart3_root_clk", "uart3", base + 0x44b0, 0);
+	hws[IMX8MM_CLK_UART4_ROOT] = imx_clk_hw_gate4("uart4_root_clk", "uart4", base + 0x44c0, 0);
+	hws[IMX8MM_CLK_USB1_CTRL_ROOT] = imx_clk_hw_gate4("usb1_ctrl_root_clk", "usb_bus", base + 0x44d0, 0);
+	hws[IMX8MM_CLK_GPU3D_ROOT] = imx_clk_hw_gate4("gpu3d_root_clk", "gpu3d_core", base + 0x44f0, 0);
+	hws[IMX8MM_CLK_USDHC1_ROOT] = imx_clk_hw_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0);
+	hws[IMX8MM_CLK_USDHC2_ROOT] = imx_clk_hw_gate4("usdhc2_root_clk", "usdhc2", base + 0x4520, 0);
+	hws[IMX8MM_CLK_WDOG1_ROOT] = imx_clk_hw_gate4("wdog1_root_clk", "wdog", base + 0x4530, 0);
+	hws[IMX8MM_CLK_WDOG2_ROOT] = imx_clk_hw_gate4("wdog2_root_clk", "wdog", base + 0x4540, 0);
+	hws[IMX8MM_CLK_WDOG3_ROOT] = imx_clk_hw_gate4("wdog3_root_clk", "wdog", base + 0x4550, 0);
+	hws[IMX8MM_CLK_VPU_G1_ROOT] = imx_clk_hw_gate4("vpu_g1_root_clk", "vpu_g1", base + 0x4560, 0);
+	hws[IMX8MM_CLK_GPU_BUS_ROOT] = imx_clk_hw_gate4("gpu_root_clk", "gpu_axi", base + 0x4570, 0);
+	hws[IMX8MM_CLK_VPU_H1_ROOT] = imx_clk_hw_gate4("vpu_h1_root_clk", "vpu_h1", base + 0x4590, 0);
+	hws[IMX8MM_CLK_VPU_G2_ROOT] = imx_clk_hw_gate4("vpu_g2_root_clk", "vpu_g2", base + 0x45a0, 0);
+	hws[IMX8MM_CLK_PDM_ROOT] = imx_clk_hw_gate2_shared2("pdm_root_clk", "pdm", base + 0x45b0, 0, &share_count_pdm);
+	hws[IMX8MM_CLK_PDM_IPG]  = imx_clk_hw_gate2_shared2("pdm_ipg_clk", "ipg_audio_root", base + 0x45b0, 0, &share_count_pdm);
+	hws[IMX8MM_CLK_DISP_ROOT] = imx_clk_hw_gate2_shared2("disp_root_clk", "disp_dc8000", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MM_CLK_DISP_AXI_ROOT]  = imx_clk_hw_gate2_shared2("disp_axi_root_clk", "disp_axi", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MM_CLK_DISP_APB_ROOT]  = imx_clk_hw_gate2_shared2("disp_apb_root_clk", "disp_apb", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MM_CLK_DISP_RTRM_ROOT] = imx_clk_hw_gate2_shared2("disp_rtrm_root_clk", "disp_rtrm", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MM_CLK_USDHC3_ROOT] = imx_clk_hw_gate4("usdhc3_root_clk", "usdhc3", base + 0x45e0, 0);
+	hws[IMX8MM_CLK_TMU_ROOT] = imx_clk_hw_gate4("tmu_root_clk", "ipg_root", base + 0x4620, 0);
+	hws[IMX8MM_CLK_VPU_DEC_ROOT] = imx_clk_hw_gate4("vpu_dec_root_clk", "vpu_bus", base + 0x4630, 0);
+	hws[IMX8MM_CLK_SDMA1_ROOT] = imx_clk_hw_gate4("sdma1_clk", "ipg_root", base + 0x43a0, 0);
+	hws[IMX8MM_CLK_SDMA2_ROOT] = imx_clk_hw_gate4("sdma2_clk", "ipg_audio_root", base + 0x43b0, 0);
+	hws[IMX8MM_CLK_SDMA3_ROOT] = imx_clk_hw_gate4("sdma3_clk", "ipg_audio_root", base + 0x45f0, 0);
+	hws[IMX8MM_CLK_GPU2D_ROOT] = imx_clk_hw_gate4("gpu2d_root_clk", "gpu2d_core", base + 0x4660, 0);
+	hws[IMX8MM_CLK_CSI1_ROOT] = imx_clk_hw_gate4("csi1_root_clk", "csi1_core", base + 0x4650, 0);
+
+	hws[IMX8MM_CLK_GPT_3M] = imx_clk_hw_fixed_factor("gpt_3m", "osc_24m", 1, 8);
+
+	hws[IMX8MM_CLK_DRAM_ALT_ROOT] = imx_clk_hw_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
+	hws[IMX8MM_CLK_DRAM_CORE] = imx_clk_hw_mux2_flags("dram_core_clk", base + 0x9800, 24, 1, imx8mm_dram_core_sels, ARRAY_SIZE(imx8mm_dram_core_sels), CLK_IS_CRITICAL);
+
+	hws[IMX8MM_CLK_ARM] = imx_clk_hw_cpu("arm", "arm_a53_core",
+					   hws[IMX8MM_CLK_A53_CORE]->clk,
+					   hws[IMX8MM_CLK_A53_CORE]->clk,
+					   hws[IMX8MM_ARM_PLL_OUT]->clk,
+					   hws[IMX8MM_CLK_A53_DIV]->clk);
+
+	imx_check_clk_hws(hws, IMX8MM_CLK_END);
+
+	ret = of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_hw_data);
 	if (ret < 0) {
-		pr_err("failed to register clks for i.MX8MM\n");
-		goto unregister_clks;
+		dev_err(dev, "failed to register clks for i.MX8MM\n");
+		goto unregister_hws;
 	}
 
-	imx_register_uart_clocks(uart_clks);
+	for (i = 0; i < ARRAY_SIZE(uart_clk_ids); i++) {
+		int index = uart_clk_ids[i];
+
+		uart_hws[i] = &hws[index]->clk;
+	}
+
+	imx_register_uart_clocks(uart_hws);
+
+	clk_hw_set_parent(hws[IMX8MM_CLK_PCIE1_CTRL], hws[IMX8MM_SYS_PLL2_250M]);
+	clk_hw_set_parent(hws[IMX8MM_CLK_PCIE1_PHY], hws[IMX8MM_SYS_PLL2_100M]);
 
 	return 0;
 
-unregister_clks:
-	imx_unregister_clocks(clks, ARRAY_SIZE(clks));
+unregister_hws:
+	imx_unregister_hw_clocks(hws, IMX8MM_CLK_END);
 
 	return ret;
 }
@@ -670,7 +647,16 @@
 	.probe = imx8mm_clocks_probe,
 	.driver = {
 		.name = "imx8mm-ccm",
-		.of_match_table = of_match_ptr(imx8mm_clk_of_match),
+		/*
+		 * Disable bind attributes: clocks are not removed and
+		 * reloading the driver will crash or break devices.
+		 */
+		.suppress_bind_attrs = true,
+		.of_match_table = imx8mm_clk_of_match,
 	},
 };
 module_platform_driver(imx8mm_clk_driver);
+
+MODULE_AUTHOR("Bai Ping <ping.bai@nxp.com>");
+MODULE_DESCRIPTION("NXP i.MX8MM clock driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx8mn.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx8mn.c
@@ -4,14 +4,13 @@
  */
 
 #include <dt-bindings/clock/imx8mn-clock.h>
-#include <linux/clk.h>
+#include <linux/clk-provider.h>
 #include <linux/err.h>
-#include <linux/init.h>
 #include <linux/io.h>
 #include <linux/module.h>
-#include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/platform_device.h>
+#include <linux/slab.h>
 #include <linux/types.h>
 
 #include "clk.h"
@@ -25,89 +24,6 @@
 static u32 share_count_pdm;
 static u32 share_count_nand;
 
-enum {
-	ARM_PLL,
-	GPU_PLL,
-	VPU_PLL,
-	SYS_PLL1,
-	SYS_PLL2,
-	SYS_PLL3,
-	DRAM_PLL,
-	AUDIO_PLL1,
-	AUDIO_PLL2,
-	VIDEO_PLL2,
-	NR_PLLS,
-};
-
-static const struct imx_pll14xx_rate_table imx8mn_pll1416x_tbl[] = {
-	PLL_1416X_RATE(1800000000U, 225, 3, 0),
-	PLL_1416X_RATE(1600000000U, 200, 3, 0),
-	PLL_1416X_RATE(1500000000U, 375, 3, 1),
-	PLL_1416X_RATE(1400000000U, 350, 3, 1),
-	PLL_1416X_RATE(1200000000U, 300, 3, 1),
-	PLL_1416X_RATE(1000000000U, 250, 3, 1),
-	PLL_1416X_RATE(800000000U,  200, 3, 1),
-	PLL_1416X_RATE(750000000U,  250, 2, 2),
-	PLL_1416X_RATE(700000000U,  350, 3, 2),
-	PLL_1416X_RATE(600000000U,  300, 3, 2),
-};
-
-static const struct imx_pll14xx_rate_table imx8mn_audiopll_tbl[] = {
-	PLL_1443X_RATE(393216000U, 262, 2, 3, 9437),
-	PLL_1443X_RATE(361267200U, 361, 3, 3, 17511),
-};
-
-static const struct imx_pll14xx_rate_table imx8mn_videopll_tbl[] = {
-	PLL_1443X_RATE(650000000U, 325, 3, 2, 0),
-	PLL_1443X_RATE(594000000U, 198, 2, 2, 0),
-};
-
-static const struct imx_pll14xx_rate_table imx8mn_drampll_tbl[] = {
-	PLL_1443X_RATE(650000000U, 325, 3, 2, 0),
-};
-
-static struct imx_pll14xx_clk imx8mn_audio_pll = {
-		.type = PLL_1443X,
-		.rate_table = imx8mn_audiopll_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_audiopll_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mn_video_pll = {
-		.type = PLL_1443X,
-		.rate_table = imx8mn_videopll_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_videopll_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mn_dram_pll = {
-		.type = PLL_1443X,
-		.rate_table = imx8mn_drampll_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_drampll_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mn_arm_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mn_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_pll1416x_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mn_gpu_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mn_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_pll1416x_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mn_vpu_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mn_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_pll1416x_tbl),
-};
-
-static struct imx_pll14xx_clk imx8mn_sys_pll = {
-		.type = PLL_1416X,
-		.rate_table = imx8mn_pll1416x_tbl,
-		.rate_count = ARRAY_SIZE(imx8mn_pll1416x_tbl),
-};
-
 static const char * const pll_ref_sels[] = { "osc_24m", "dummy", "dummy", "dummy", };
 static const char * const audio_pll1_bypass_sels[] = {"audio_pll1", "audio_pll1_ref_sel", };
 static const char * const audio_pll2_bypass_sels[] = {"audio_pll2", "audio_pll2_ref_sel", };
@@ -116,14 +32,14 @@
 static const char * const gpu_pll_bypass_sels[] = {"gpu_pll", "gpu_pll_ref_sel", };
 static const char * const vpu_pll_bypass_sels[] = {"vpu_pll", "vpu_pll_ref_sel", };
 static const char * const arm_pll_bypass_sels[] = {"arm_pll", "arm_pll_ref_sel", };
-static const char * const sys_pll1_bypass_sels[] = {"sys_pll1", "sys_pll1_ref_sel", };
-static const char * const sys_pll2_bypass_sels[] = {"sys_pll2", "sys_pll2_ref_sel", };
 static const char * const sys_pll3_bypass_sels[] = {"sys_pll3", "sys_pll3_ref_sel", };
 
 static const char * const imx8mn_a53_sels[] = {"osc_24m", "arm_pll_out", "sys_pll2_500m",
 					       "sys_pll2_1000m", "sys_pll1_800m", "sys_pll1_400m",
 					       "audio_pll1_out", "sys_pll3_out", };
 
+static const char * const imx8mn_a53_core_sels[] = {"arm_a53_div", "arm_pll_out", };
+
 static const char * const imx8mn_gpu_core_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m",
 						    "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
 						    "video_pll1_out", "audio_pll2_out", };
@@ -189,27 +105,27 @@
 						      "sys_pll3_out", "clk_ext4", };
 
 static const char * const imx8mn_sai2_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
-						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"video_pll1_out", "sys_pll1_133m", "dummy",
 						"clk_ext3", "clk_ext4", };
 
 static const char * const imx8mn_sai3_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
-						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"video_pll1_out", "sys_pll1_133m", "dummy",
 						"clk_ext3", "clk_ext4", };
 
 static const char * const imx8mn_sai5_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
-						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"video_pll1_out", "sys_pll1_133m", "dummy",
 						"clk_ext2", "clk_ext3", };
 
 static const char * const imx8mn_sai6_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
-						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"video_pll1_out", "sys_pll1_133m", "dummy",
 						"clk_ext3", "clk_ext4", };
 
 static const char * const imx8mn_sai7_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
-						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"video_pll1_out", "sys_pll1_133m", "dummy",
 						"clk_ext3", "clk_ext4", };
 
 static const char * const imx8mn_spdif1_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
-						  "video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						  "video_pll1_out", "sys_pll1_133m", "dummy",
 						  "clk_ext2", "clk_ext3", };
 
 static const char * const imx8mn_enet_ref_sels[] = {"osc_24m", "sys_pll2_125m", "sys_pll2_50m",
@@ -358,276 +274,313 @@
 
 static const char * const imx8mn_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
 
-static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "osc_27m",
-						 "sys_pll1_200m", "audio_pll2_out", "vpu_pll",
-						 "sys_pll1_80m", };
+static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "dummy",
+						 "sys_pll1_200m", "audio_pll2_out", "sys_pll2_500m",
+						 "dummy", "sys_pll1_80m", };
 static const char * const imx8mn_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m",
 						 "sys_pll2_166m", "sys_pll3_out", "audio_pll1_out",
 						 "video_pll1_out", "osc_32k", };
 
-static struct clk *clks[IMX8MN_CLK_END];
-static struct clk_onecell_data clk_data;
-
-static struct clk ** const uart_clks[] = {
-	&clks[IMX8MN_CLK_UART1_ROOT],
-	&clks[IMX8MN_CLK_UART2_ROOT],
-	&clks[IMX8MN_CLK_UART3_ROOT],
-	&clks[IMX8MN_CLK_UART4_ROOT],
-	NULL
+static const char * const clkout_sels[] = {"audio_pll1_out", "audio_pll2_out", "video_pll1_out",
+					   "dummy", "dummy", "gpu_pll_out", "dummy",
+					   "arm_pll_out", "sys_pll1", "sys_pll2", "sys_pll3",
+					   "dummy", "dummy", "osc_24m", "dummy", "osc_32k"};
+
+static struct clk_hw_onecell_data *clk_hw_data;
+static struct clk_hw **hws;
+
+static const int uart_clk_ids[] = {
+	IMX8MN_CLK_UART1_ROOT,
+	IMX8MN_CLK_UART2_ROOT,
+	IMX8MN_CLK_UART3_ROOT,
+	IMX8MN_CLK_UART4_ROOT,
 };
+static struct clk **uart_hws[ARRAY_SIZE(uart_clk_ids) + 1];
 
 static int imx8mn_clocks_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct device_node *np = dev->of_node;
 	void __iomem *base;
-	int ret;
+	int ret, i;
 
-	clks[IMX8MN_CLK_DUMMY] = imx_clk_fixed("dummy", 0);
-	clks[IMX8MN_CLK_24M] = of_clk_get_by_name(np, "osc_24m");
-	clks[IMX8MN_CLK_32K] = of_clk_get_by_name(np, "osc_32k");
-	clks[IMX8MN_CLK_EXT1] = of_clk_get_by_name(np, "clk_ext1");
-	clks[IMX8MN_CLK_EXT2] = of_clk_get_by_name(np, "clk_ext2");
-	clks[IMX8MN_CLK_EXT3] = of_clk_get_by_name(np, "clk_ext3");
-	clks[IMX8MN_CLK_EXT4] = of_clk_get_by_name(np, "clk_ext4");
+	clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
+					  IMX8MN_CLK_END), GFP_KERNEL);
+	if (WARN_ON(!clk_hw_data))
+		return -ENOMEM;
+
+	clk_hw_data->num = IMX8MN_CLK_END;
+	hws = clk_hw_data->hws;
+
+	hws[IMX8MN_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
+	hws[IMX8MN_CLK_24M] = imx_obtain_fixed_clk_hw(np, "osc_24m");
+	hws[IMX8MN_CLK_32K] = imx_obtain_fixed_clk_hw(np, "osc_32k");
+	hws[IMX8MN_CLK_EXT1] = imx_obtain_fixed_clk_hw(np, "clk_ext1");
+	hws[IMX8MN_CLK_EXT2] = imx_obtain_fixed_clk_hw(np, "clk_ext2");
+	hws[IMX8MN_CLK_EXT3] = imx_obtain_fixed_clk_hw(np, "clk_ext3");
+	hws[IMX8MN_CLK_EXT4] = imx_obtain_fixed_clk_hw(np, "clk_ext4");
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx8mn-anatop");
 	base = of_iomap(np, 0);
+	of_node_put(np);
 	if (WARN_ON(!base)) {
 		ret = -ENOMEM;
-		goto unregister_clks;
+		goto unregister_hws;
 	}
 
-	clks[IMX8MN_AUDIO_PLL1_REF_SEL] = imx_clk_mux("audio_pll1_ref_sel", base + 0x0, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_AUDIO_PLL2_REF_SEL] = imx_clk_mux("audio_pll2_ref_sel", base + 0x14, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_VIDEO_PLL1_REF_SEL] = imx_clk_mux("video_pll1_ref_sel", base + 0x28, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_DRAM_PLL_REF_SEL] = imx_clk_mux("dram_pll_ref_sel", base + 0x50, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_GPU_PLL_REF_SEL] = imx_clk_mux("gpu_pll_ref_sel", base + 0x64, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_VPU_PLL_REF_SEL] = imx_clk_mux("vpu_pll_ref_sel", base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_ARM_PLL_REF_SEL] = imx_clk_mux("arm_pll_ref_sel", base + 0x84, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_SYS_PLL1_REF_SEL] = imx_clk_mux("sys_pll1_ref_sel", base + 0x94, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_SYS_PLL2_REF_SEL] = imx_clk_mux("sys_pll2_ref_sel", base + 0x104, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MN_SYS_PLL3_REF_SEL] = imx_clk_mux("sys_pll3_ref_sel", base + 0x114, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-
-	clks[IMX8MN_AUDIO_PLL1] = imx_clk_pll14xx("audio_pll1", "audio_pll1_ref_sel", base, &imx8mn_audio_pll);
-	clks[IMX8MN_AUDIO_PLL2] = imx_clk_pll14xx("audio_pll2", "audio_pll2_ref_sel", base + 0x14, &imx8mn_audio_pll);
-	clks[IMX8MN_VIDEO_PLL1] = imx_clk_pll14xx("video_pll1", "video_pll1_ref_sel", base + 0x28, &imx8mn_video_pll);
-	clks[IMX8MN_DRAM_PLL] = imx_clk_pll14xx("dram_pll", "dram_pll_ref_sel", base + 0x50, &imx8mn_dram_pll);
-	clks[IMX8MN_GPU_PLL] = imx_clk_pll14xx("gpu_pll", "gpu_pll_ref_sel", base + 0x64, &imx8mn_gpu_pll);
-	clks[IMX8MN_VPU_PLL] = imx_clk_pll14xx("vpu_pll", "vpu_pll_ref_sel", base + 0x74, &imx8mn_vpu_pll);
-	clks[IMX8MN_ARM_PLL] = imx_clk_pll14xx("arm_pll", "arm_pll_ref_sel", base + 0x84, &imx8mn_arm_pll);
-	clks[IMX8MN_SYS_PLL1] = imx_clk_pll14xx("sys_pll1", "sys_pll1_ref_sel", base + 0x94, &imx8mn_sys_pll);
-	clks[IMX8MN_SYS_PLL2] = imx_clk_pll14xx("sys_pll2", "sys_pll2_ref_sel", base + 0x104, &imx8mn_sys_pll);
-	clks[IMX8MN_SYS_PLL3] = imx_clk_pll14xx("sys_pll3", "sys_pll3_ref_sel", base + 0x114, &imx8mn_sys_pll);
+	hws[IMX8MN_AUDIO_PLL1_REF_SEL] = imx_clk_hw_mux("audio_pll1_ref_sel", base + 0x0, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_AUDIO_PLL2_REF_SEL] = imx_clk_hw_mux("audio_pll2_ref_sel", base + 0x14, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_VIDEO_PLL1_REF_SEL] = imx_clk_hw_mux("video_pll1_ref_sel", base + 0x28, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_DRAM_PLL_REF_SEL] = imx_clk_hw_mux("dram_pll_ref_sel", base + 0x50, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", base + 0x64, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_VPU_PLL_REF_SEL] = imx_clk_hw_mux("vpu_pll_ref_sel", base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", base + 0x84, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MN_SYS_PLL3_REF_SEL] = imx_clk_hw_mux("sys_pll3_ref_sel", base + 0x114, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+
+	hws[IMX8MN_AUDIO_PLL1] = imx_clk_hw_pll14xx("audio_pll1", "audio_pll1_ref_sel", base, &imx_1443x_pll);
+	hws[IMX8MN_AUDIO_PLL2] = imx_clk_hw_pll14xx("audio_pll2", "audio_pll2_ref_sel", base + 0x14, &imx_1443x_pll);
+	hws[IMX8MN_VIDEO_PLL1] = imx_clk_hw_pll14xx("video_pll1", "video_pll1_ref_sel", base + 0x28, &imx_1443x_pll);
+	hws[IMX8MN_DRAM_PLL] = imx_clk_hw_pll14xx("dram_pll", "dram_pll_ref_sel", base + 0x50, &imx_1443x_dram_pll);
+	hws[IMX8MN_GPU_PLL] = imx_clk_hw_pll14xx("gpu_pll", "gpu_pll_ref_sel", base + 0x64, &imx_1416x_pll);
+	hws[IMX8MN_VPU_PLL] = imx_clk_hw_pll14xx("vpu_pll", "vpu_pll_ref_sel", base + 0x74, &imx_1416x_pll);
+	hws[IMX8MN_ARM_PLL] = imx_clk_hw_pll14xx("arm_pll", "arm_pll_ref_sel", base + 0x84, &imx_1416x_pll);
+	hws[IMX8MN_SYS_PLL1] = imx_clk_hw_fixed("sys_pll1", 800000000);
+	hws[IMX8MN_SYS_PLL2] = imx_clk_hw_fixed("sys_pll2", 1000000000);
+	hws[IMX8MN_SYS_PLL3] = imx_clk_hw_pll14xx("sys_pll3", "sys_pll3_ref_sel", base + 0x114, &imx_1416x_pll);
 
 	/* PLL bypass out */
-	clks[IMX8MN_AUDIO_PLL1_BYPASS] = imx_clk_mux_flags("audio_pll1_bypass", base, 16, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_AUDIO_PLL2_BYPASS] = imx_clk_mux_flags("audio_pll2_bypass", base + 0x14, 16, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_VIDEO_PLL1_BYPASS] = imx_clk_mux_flags("video_pll1_bypass", base + 0x28, 16, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_DRAM_PLL_BYPASS] = imx_clk_mux_flags("dram_pll_bypass", base + 0x50, 16, 1, dram_pll_bypass_sels, ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_GPU_PLL_BYPASS] = imx_clk_mux_flags("gpu_pll_bypass", base + 0x64, 28, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_VPU_PLL_BYPASS] = imx_clk_mux_flags("vpu_pll_bypass", base + 0x74, 28, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_ARM_PLL_BYPASS] = imx_clk_mux_flags("arm_pll_bypass", base + 0x84, 28, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_SYS_PLL1_BYPASS] = imx_clk_mux_flags("sys_pll1_bypass", base + 0x94, 28, 1, sys_pll1_bypass_sels, ARRAY_SIZE(sys_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_SYS_PLL2_BYPASS] = imx_clk_mux_flags("sys_pll2_bypass", base + 0x104, 28, 1, sys_pll2_bypass_sels, ARRAY_SIZE(sys_pll2_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MN_SYS_PLL3_BYPASS] = imx_clk_mux_flags("sys_pll3_bypass", base + 0x114, 28, 1, sys_pll3_bypass_sels, ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_AUDIO_PLL1_BYPASS] = imx_clk_hw_mux_flags("audio_pll1_bypass", base, 16, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_AUDIO_PLL2_BYPASS] = imx_clk_hw_mux_flags("audio_pll2_bypass", base + 0x14, 16, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_VIDEO_PLL1_BYPASS] = imx_clk_hw_mux_flags("video_pll1_bypass", base + 0x28, 16, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_DRAM_PLL_BYPASS] = imx_clk_hw_mux_flags("dram_pll_bypass", base + 0x50, 16, 1, dram_pll_bypass_sels, ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_GPU_PLL_BYPASS] = imx_clk_hw_mux_flags("gpu_pll_bypass", base + 0x64, 28, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_VPU_PLL_BYPASS] = imx_clk_hw_mux_flags("vpu_pll_bypass", base + 0x74, 28, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", base + 0x84, 28, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MN_SYS_PLL3_BYPASS] = imx_clk_hw_mux_flags("sys_pll3_bypass", base + 0x114, 28, 1, sys_pll3_bypass_sels, ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
 
 	/* PLL out gate */
-	clks[IMX8MN_AUDIO_PLL1_OUT] = imx_clk_gate("audio_pll1_out", "audio_pll1_bypass", base, 13);
-	clks[IMX8MN_AUDIO_PLL2_OUT] = imx_clk_gate("audio_pll2_out", "audio_pll2_bypass", base + 0x14, 13);
-	clks[IMX8MN_VIDEO_PLL1_OUT] = imx_clk_gate("video_pll1_out", "video_pll1_bypass", base + 0x28, 13);
-	clks[IMX8MN_DRAM_PLL_OUT] = imx_clk_gate("dram_pll_out", "dram_pll_bypass", base + 0x50, 13);
-	clks[IMX8MN_GPU_PLL_OUT] = imx_clk_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x64, 11);
-	clks[IMX8MN_VPU_PLL_OUT] = imx_clk_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x74, 11);
-	clks[IMX8MN_ARM_PLL_OUT] = imx_clk_gate("arm_pll_out", "arm_pll_bypass", base + 0x84, 11);
-	clks[IMX8MN_SYS_PLL1_OUT] = imx_clk_gate("sys_pll1_out", "sys_pll1_bypass", base + 0x94, 11);
-	clks[IMX8MN_SYS_PLL2_OUT] = imx_clk_gate("sys_pll2_out", "sys_pll2_bypass", base + 0x104, 11);
-	clks[IMX8MN_SYS_PLL3_OUT] = imx_clk_gate("sys_pll3_out", "sys_pll3_bypass", base + 0x114, 11);
-
-	/* SYS PLL fixed output */
-	clks[IMX8MN_SYS_PLL1_40M] = imx_clk_fixed_factor("sys_pll1_40m", "sys_pll1_out", 1, 20);
-	clks[IMX8MN_SYS_PLL1_80M] = imx_clk_fixed_factor("sys_pll1_80m", "sys_pll1_out", 1, 10);
-	clks[IMX8MN_SYS_PLL1_100M] = imx_clk_fixed_factor("sys_pll1_100m", "sys_pll1_out", 1, 8);
-	clks[IMX8MN_SYS_PLL1_133M] = imx_clk_fixed_factor("sys_pll1_133m", "sys_pll1_out", 1, 6);
-	clks[IMX8MN_SYS_PLL1_160M] = imx_clk_fixed_factor("sys_pll1_160m", "sys_pll1_out", 1, 5);
-	clks[IMX8MN_SYS_PLL1_200M] = imx_clk_fixed_factor("sys_pll1_200m", "sys_pll1_out", 1, 4);
-	clks[IMX8MN_SYS_PLL1_266M] = imx_clk_fixed_factor("sys_pll1_266m", "sys_pll1_out", 1, 3);
-	clks[IMX8MN_SYS_PLL1_400M] = imx_clk_fixed_factor("sys_pll1_400m", "sys_pll1_out", 1, 2);
-	clks[IMX8MN_SYS_PLL1_800M] = imx_clk_fixed_factor("sys_pll1_800m", "sys_pll1_out", 1, 1);
-
-	clks[IMX8MN_SYS_PLL2_50M] = imx_clk_fixed_factor("sys_pll2_50m", "sys_pll2_out", 1, 20);
-	clks[IMX8MN_SYS_PLL2_100M] = imx_clk_fixed_factor("sys_pll2_100m", "sys_pll2_out", 1, 10);
-	clks[IMX8MN_SYS_PLL2_125M] = imx_clk_fixed_factor("sys_pll2_125m", "sys_pll2_out", 1, 8);
-	clks[IMX8MN_SYS_PLL2_166M] = imx_clk_fixed_factor("sys_pll2_166m", "sys_pll2_out", 1, 6);
-	clks[IMX8MN_SYS_PLL2_200M] = imx_clk_fixed_factor("sys_pll2_200m", "sys_pll2_out", 1, 5);
-	clks[IMX8MN_SYS_PLL2_250M] = imx_clk_fixed_factor("sys_pll2_250m", "sys_pll2_out", 1, 4);
-	clks[IMX8MN_SYS_PLL2_333M] = imx_clk_fixed_factor("sys_pll2_333m", "sys_pll2_out", 1, 3);
-	clks[IMX8MN_SYS_PLL2_500M] = imx_clk_fixed_factor("sys_pll2_500m", "sys_pll2_out", 1, 2);
-	clks[IMX8MN_SYS_PLL2_1000M] = imx_clk_fixed_factor("sys_pll2_1000m", "sys_pll2_out", 1, 1);
+	hws[IMX8MN_AUDIO_PLL1_OUT] = imx_clk_hw_gate("audio_pll1_out", "audio_pll1_bypass", base, 13);
+	hws[IMX8MN_AUDIO_PLL2_OUT] = imx_clk_hw_gate("audio_pll2_out", "audio_pll2_bypass", base + 0x14, 13);
+	hws[IMX8MN_VIDEO_PLL1_OUT] = imx_clk_hw_gate("video_pll1_out", "video_pll1_bypass", base + 0x28, 13);
+	hws[IMX8MN_DRAM_PLL_OUT] = imx_clk_hw_gate("dram_pll_out", "dram_pll_bypass", base + 0x50, 13);
+	hws[IMX8MN_GPU_PLL_OUT] = imx_clk_hw_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x64, 11);
+	hws[IMX8MN_VPU_PLL_OUT] = imx_clk_hw_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x74, 11);
+	hws[IMX8MN_ARM_PLL_OUT] = imx_clk_hw_gate("arm_pll_out", "arm_pll_bypass", base + 0x84, 11);
+	hws[IMX8MN_SYS_PLL3_OUT] = imx_clk_hw_gate("sys_pll3_out", "sys_pll3_bypass", base + 0x114, 11);
+
+	/* SYS PLL1 fixed output */
+	hws[IMX8MN_SYS_PLL1_OUT] = imx_clk_hw_gate("sys_pll1_out", "sys_pll1", base + 0x94, 11);
+
+	hws[IMX8MN_SYS_PLL1_40M] = imx_clk_hw_fixed_factor("sys_pll1_40m", "sys_pll1_out", 1, 20);
+	hws[IMX8MN_SYS_PLL1_80M] = imx_clk_hw_fixed_factor("sys_pll1_80m", "sys_pll1_out", 1, 10);
+	hws[IMX8MN_SYS_PLL1_100M] = imx_clk_hw_fixed_factor("sys_pll1_100m", "sys_pll1_out", 1, 8);
+	hws[IMX8MN_SYS_PLL1_133M] = imx_clk_hw_fixed_factor("sys_pll1_133m", "sys_pll1_out", 1, 6);
+	hws[IMX8MN_SYS_PLL1_160M] = imx_clk_hw_fixed_factor("sys_pll1_160m", "sys_pll1_out", 1, 5);
+	hws[IMX8MN_SYS_PLL1_200M] = imx_clk_hw_fixed_factor("sys_pll1_200m", "sys_pll1_out", 1, 4);
+	hws[IMX8MN_SYS_PLL1_266M] = imx_clk_hw_fixed_factor("sys_pll1_266m", "sys_pll1_out", 1, 3);
+	hws[IMX8MN_SYS_PLL1_400M] = imx_clk_hw_fixed_factor("sys_pll1_400m", "sys_pll1_out", 1, 2);
+	hws[IMX8MN_SYS_PLL1_800M] = imx_clk_hw_fixed_factor("sys_pll1_800m", "sys_pll1_out", 1, 1);
+
+	/* SYS PLL2 fixed output */
+	hws[IMX8MN_SYS_PLL2_OUT] = imx_clk_hw_gate("sys_pll2_out", "sys_pll2", base + 0x104, 11);
+
+	hws[IMX8MN_SYS_PLL2_50M] = imx_clk_hw_fixed_factor("sys_pll2_50m", "sys_pll2_out", 1, 20);
+	hws[IMX8MN_SYS_PLL2_100M] = imx_clk_hw_fixed_factor("sys_pll2_100m", "sys_pll2_out", 1, 10);
+	hws[IMX8MN_SYS_PLL2_125M] = imx_clk_hw_fixed_factor("sys_pll2_125m", "sys_pll2_out", 1, 8);
+	hws[IMX8MN_SYS_PLL2_166M] = imx_clk_hw_fixed_factor("sys_pll2_166m", "sys_pll2_out", 1, 6);
+	hws[IMX8MN_SYS_PLL2_200M] = imx_clk_hw_fixed_factor("sys_pll2_200m", "sys_pll2_out", 1, 5);
+	hws[IMX8MN_SYS_PLL2_250M] = imx_clk_hw_fixed_factor("sys_pll2_250m", "sys_pll2_out", 1, 4);
+	hws[IMX8MN_SYS_PLL2_333M] = imx_clk_hw_fixed_factor("sys_pll2_333m", "sys_pll2_out", 1, 3);
+	hws[IMX8MN_SYS_PLL2_500M] = imx_clk_hw_fixed_factor("sys_pll2_500m", "sys_pll2_out", 1, 2);
+	hws[IMX8MN_SYS_PLL2_1000M] = imx_clk_hw_fixed_factor("sys_pll2_1000m", "sys_pll2_out", 1, 1);
+
+	hws[IMX8MN_CLK_CLKOUT1_SEL] = imx_clk_hw_mux("clkout1_sel", base + 0x128, 4, 4, clkout_sels, ARRAY_SIZE(clkout_sels));
+	hws[IMX8MN_CLK_CLKOUT1_DIV] = imx_clk_hw_divider("clkout1_div", "clkout1_sel", base + 0x128, 0, 4);
+	hws[IMX8MN_CLK_CLKOUT1] = imx_clk_hw_gate("clkout1", "clkout1_div", base + 0x128, 8);
+	hws[IMX8MN_CLK_CLKOUT2_SEL] = imx_clk_hw_mux("clkout2_sel", base + 0x128, 20, 4, clkout_sels, ARRAY_SIZE(clkout_sels));
+	hws[IMX8MN_CLK_CLKOUT2_DIV] = imx_clk_hw_divider("clkout2_div", "clkout2_sel", base + 0x128, 16, 4);
+	hws[IMX8MN_CLK_CLKOUT2] = imx_clk_hw_gate("clkout2", "clkout2_div", base + 0x128, 24);
 
 	np = dev->of_node;
 	base = devm_platform_ioremap_resource(pdev, 0);
 	if (WARN_ON(IS_ERR(base))) {
 		ret = PTR_ERR(base);
-		goto unregister_clks;
+		goto unregister_hws;
 	}
 
 	/* CORE */
-	clks[IMX8MN_CLK_A53_SRC] = imx_clk_mux2("arm_a53_src", base + 0x8000, 24, 3, imx8mn_a53_sels, ARRAY_SIZE(imx8mn_a53_sels));
-	clks[IMX8MN_CLK_GPU_CORE_SRC] = imx_clk_mux2("gpu_core_src", base + 0x8180, 24, 3,  imx8mn_gpu_core_sels, ARRAY_SIZE(imx8mn_gpu_core_sels));
-	clks[IMX8MN_CLK_GPU_SHADER_SRC] = imx_clk_mux2("gpu_shader_src", base + 0x8200, 24, 3, imx8mn_gpu_shader_sels,  ARRAY_SIZE(imx8mn_gpu_shader_sels));
-	clks[IMX8MN_CLK_A53_CG] = imx_clk_gate3("arm_a53_cg", "arm_a53_src", base + 0x8000, 28);
-	clks[IMX8MN_CLK_GPU_CORE_CG] = imx_clk_gate3("gpu_core_cg", "gpu_core_src", base + 0x8180, 28);
-	clks[IMX8MN_CLK_GPU_SHADER_CG] = imx_clk_gate3("gpu_shader_cg", "gpu_shader_src", base + 0x8200, 28);
-
-	clks[IMX8MN_CLK_A53_DIV] = imx_clk_divider2("arm_a53_div", "arm_a53_cg", base + 0x8000, 0, 3);
-	clks[IMX8MN_CLK_GPU_CORE_DIV] = imx_clk_divider2("gpu_core_div", "gpu_core_cg", base + 0x8180, 0, 3);
-	clks[IMX8MN_CLK_GPU_SHADER_DIV] = imx_clk_divider2("gpu_shader_div", "gpu_shader_cg", base + 0x8200, 0, 3);
+	hws[IMX8MN_CLK_A53_DIV] = imx8m_clk_hw_composite_core("arm_a53_div", imx8mn_a53_sels, base + 0x8000);
+	hws[IMX8MN_CLK_A53_SRC] = hws[IMX8MN_CLK_A53_DIV];
+	hws[IMX8MN_CLK_A53_CG] = hws[IMX8MN_CLK_A53_DIV];
+
+	hws[IMX8MN_CLK_GPU_CORE] = imx8m_clk_hw_composite_core("gpu_core", imx8mn_gpu_core_sels, base + 0x8180);
+	hws[IMX8MN_CLK_GPU_SHADER] = imx8m_clk_hw_composite_core("gpu_shader", imx8mn_gpu_shader_sels, base + 0x8200);
+
+	hws[IMX8MN_CLK_GPU_CORE_SRC] = hws[IMX8MN_CLK_GPU_CORE];
+	hws[IMX8MN_CLK_GPU_CORE_CG] = hws[IMX8MN_CLK_GPU_CORE];
+	hws[IMX8MN_CLK_GPU_CORE_DIV] = hws[IMX8MN_CLK_GPU_CORE];
+	hws[IMX8MN_CLK_GPU_SHADER_SRC] = hws[IMX8MN_CLK_GPU_SHADER];
+	hws[IMX8MN_CLK_GPU_SHADER_CG] = hws[IMX8MN_CLK_GPU_SHADER];
+	hws[IMX8MN_CLK_GPU_SHADER_DIV] = hws[IMX8MN_CLK_GPU_SHADER];
+
+	/* CORE SEL */
+	hws[IMX8MN_CLK_A53_CORE] = imx_clk_hw_mux2("arm_a53_core", base + 0x9880, 24, 1, imx8mn_a53_core_sels, ARRAY_SIZE(imx8mn_a53_core_sels));
 
 	/* BUS */
-	clks[IMX8MN_CLK_MAIN_AXI] = imx8m_clk_composite_critical("main_axi", imx8mn_main_axi_sels, base + 0x8800);
-	clks[IMX8MN_CLK_ENET_AXI] = imx8m_clk_composite("enet_axi", imx8mn_enet_axi_sels, base + 0x8880);
-	clks[IMX8MN_CLK_NAND_USDHC_BUS] = imx8m_clk_composite("nand_usdhc_bus", imx8mn_nand_usdhc_sels, base + 0x8900);
-	clks[IMX8MN_CLK_DISP_AXI] = imx8m_clk_composite("disp_axi", imx8mn_disp_axi_sels, base + 0x8a00);
-	clks[IMX8MN_CLK_DISP_APB] = imx8m_clk_composite("disp_apb", imx8mn_disp_apb_sels, base + 0x8a80);
-	clks[IMX8MN_CLK_USB_BUS] = imx8m_clk_composite("usb_bus", imx8mn_usb_bus_sels, base + 0x8b80);
-	clks[IMX8MN_CLK_GPU_AXI] = imx8m_clk_composite("gpu_axi", imx8mn_gpu_axi_sels, base + 0x8c00);
-	clks[IMX8MN_CLK_GPU_AHB] = imx8m_clk_composite("gpu_ahb", imx8mn_gpu_ahb_sels, base + 0x8c80);
-	clks[IMX8MN_CLK_NOC] = imx8m_clk_composite_critical("noc", imx8mn_noc_sels, base + 0x8d00);
-
-	clks[IMX8MN_CLK_AHB] = imx8m_clk_composite_critical("ahb", imx8mn_ahb_sels, base + 0x9000);
-	clks[IMX8MN_CLK_AUDIO_AHB] = imx8m_clk_composite("audio_ahb", imx8mn_audio_ahb_sels, base + 0x9100);
-	clks[IMX8MN_CLK_IPG_ROOT] = imx_clk_divider2("ipg_root", "ahb", base + 0x9080, 0, 1);
-	clks[IMX8MN_CLK_IPG_AUDIO_ROOT] = imx_clk_divider2("ipg_audio_root", "audio_ahb", base + 0x9180, 0, 1);
-	clks[IMX8MN_CLK_DRAM_CORE] = imx_clk_mux2_flags("dram_core_clk", base + 0x9800, 24, 1, imx8mn_dram_core_sels, ARRAY_SIZE(imx8mn_dram_core_sels), CLK_IS_CRITICAL);
-	clks[IMX8MN_CLK_DRAM_ALT] = imx8m_clk_composite("dram_alt", imx8mn_dram_alt_sels, base + 0xa000);
-	clks[IMX8MN_CLK_DRAM_APB] = imx8m_clk_composite_critical("dram_apb", imx8mn_dram_apb_sels, base + 0xa080);
-	clks[IMX8MN_CLK_DISP_PIXEL] = imx8m_clk_composite("disp_pixel", imx8mn_disp_pixel_sels, base + 0xa500);
-	clks[IMX8MN_CLK_SAI2] = imx8m_clk_composite("sai2", imx8mn_sai2_sels, base + 0xa600);
-	clks[IMX8MN_CLK_SAI3] = imx8m_clk_composite("sai3", imx8mn_sai3_sels, base + 0xa680);
-	clks[IMX8MN_CLK_SAI5] = imx8m_clk_composite("sai5", imx8mn_sai5_sels, base + 0xa780);
-	clks[IMX8MN_CLK_SAI6] = imx8m_clk_composite("sai6", imx8mn_sai6_sels, base + 0xa800);
-	clks[IMX8MN_CLK_SPDIF1] = imx8m_clk_composite("spdif1", imx8mn_spdif1_sels, base + 0xa880);
-	clks[IMX8MN_CLK_ENET_REF] = imx8m_clk_composite("enet_ref", imx8mn_enet_ref_sels, base + 0xa980);
-	clks[IMX8MN_CLK_ENET_TIMER] = imx8m_clk_composite("enet_timer", imx8mn_enet_timer_sels, base + 0xaa00);
-	clks[IMX8MN_CLK_ENET_PHY_REF] = imx8m_clk_composite("enet_phy", imx8mn_enet_phy_sels, base + 0xaa80);
-	clks[IMX8MN_CLK_NAND] = imx8m_clk_composite("nand", imx8mn_nand_sels, base + 0xab00);
-	clks[IMX8MN_CLK_QSPI] = imx8m_clk_composite("qspi", imx8mn_qspi_sels, base + 0xab80);
-	clks[IMX8MN_CLK_USDHC1] = imx8m_clk_composite("usdhc1", imx8mn_usdhc1_sels, base + 0xac00);
-	clks[IMX8MN_CLK_USDHC2] = imx8m_clk_composite("usdhc2", imx8mn_usdhc2_sels, base + 0xac80);
-	clks[IMX8MN_CLK_I2C1] = imx8m_clk_composite("i2c1", imx8mn_i2c1_sels, base + 0xad00);
-	clks[IMX8MN_CLK_I2C2] = imx8m_clk_composite("i2c2", imx8mn_i2c2_sels, base + 0xad80);
-	clks[IMX8MN_CLK_I2C3] = imx8m_clk_composite("i2c3", imx8mn_i2c3_sels, base + 0xae00);
-	clks[IMX8MN_CLK_I2C4] = imx8m_clk_composite("i2c4", imx8mn_i2c4_sels, base + 0xae80);
-	clks[IMX8MN_CLK_UART1] = imx8m_clk_composite("uart1", imx8mn_uart1_sels, base + 0xaf00);
-	clks[IMX8MN_CLK_UART2] = imx8m_clk_composite("uart2", imx8mn_uart2_sels, base + 0xaf80);
-	clks[IMX8MN_CLK_UART3] = imx8m_clk_composite("uart3", imx8mn_uart3_sels, base + 0xb000);
-	clks[IMX8MN_CLK_UART4] = imx8m_clk_composite("uart4", imx8mn_uart4_sels, base + 0xb080);
-	clks[IMX8MN_CLK_USB_CORE_REF] = imx8m_clk_composite("usb_core_ref", imx8mn_usb_core_sels, base + 0xb100);
-	clks[IMX8MN_CLK_USB_PHY_REF] = imx8m_clk_composite("usb_phy_ref", imx8mn_usb_phy_sels, base + 0xb180);
-	clks[IMX8MN_CLK_GIC] = imx8m_clk_composite_critical("gic", imx8mn_gic_sels, base + 0xb200);
-	clks[IMX8MN_CLK_ECSPI1] = imx8m_clk_composite("ecspi1", imx8mn_ecspi1_sels, base + 0xb280);
-	clks[IMX8MN_CLK_ECSPI2] = imx8m_clk_composite("ecspi2", imx8mn_ecspi2_sels, base + 0xb300);
-	clks[IMX8MN_CLK_PWM1] = imx8m_clk_composite("pwm1", imx8mn_pwm1_sels, base + 0xb380);
-	clks[IMX8MN_CLK_PWM2] = imx8m_clk_composite("pwm2", imx8mn_pwm2_sels, base + 0xb400);
-	clks[IMX8MN_CLK_PWM3] = imx8m_clk_composite("pwm3", imx8mn_pwm3_sels, base + 0xb480);
-	clks[IMX8MN_CLK_PWM4] = imx8m_clk_composite("pwm4", imx8mn_pwm4_sels, base + 0xb500);
-	clks[IMX8MN_CLK_WDOG] = imx8m_clk_composite("wdog", imx8mn_wdog_sels, base + 0xb900);
-	clks[IMX8MN_CLK_WRCLK] = imx8m_clk_composite("wrclk", imx8mn_wrclk_sels, base + 0xb980);
-	clks[IMX8MN_CLK_CLKO1] = imx8m_clk_composite("clko1", imx8mn_clko1_sels, base + 0xba00);
-	clks[IMX8MN_CLK_CLKO2] = imx8m_clk_composite("clko2", imx8mn_clko2_sels, base + 0xba80);
-	clks[IMX8MN_CLK_DSI_CORE] = imx8m_clk_composite("dsi_core", imx8mn_dsi_core_sels, base + 0xbb00);
-	clks[IMX8MN_CLK_DSI_PHY_REF] = imx8m_clk_composite("dsi_phy_ref", imx8mn_dsi_phy_sels, base + 0xbb80);
-	clks[IMX8MN_CLK_DSI_DBI] = imx8m_clk_composite("dsi_dbi", imx8mn_dsi_dbi_sels, base + 0xbc00);
-	clks[IMX8MN_CLK_USDHC3] = imx8m_clk_composite("usdhc3", imx8mn_usdhc3_sels, base + 0xbc80);
-	clks[IMX8MN_CLK_CAMERA_PIXEL] = imx8m_clk_composite("camera_pixel", imx8mn_camera_pixel_sels, base + 0xbd00);
-	clks[IMX8MN_CLK_CSI1_PHY_REF] = imx8m_clk_composite("csi1_phy_ref", imx8mn_csi1_phy_sels, base + 0xbd80);
-	clks[IMX8MN_CLK_CSI2_PHY_REF] = imx8m_clk_composite("csi2_phy_ref", imx8mn_csi2_phy_sels, base + 0xbf00);
-	clks[IMX8MN_CLK_CSI2_ESC] = imx8m_clk_composite("csi2_esc", imx8mn_csi2_esc_sels, base + 0xbf80);
-	clks[IMX8MN_CLK_ECSPI3] = imx8m_clk_composite("ecspi3", imx8mn_ecspi3_sels, base + 0xc180);
-	clks[IMX8MN_CLK_PDM] = imx8m_clk_composite("pdm", imx8mn_pdm_sels, base + 0xc200);
-	clks[IMX8MN_CLK_SAI7] = imx8m_clk_composite("sai7", imx8mn_sai7_sels, base + 0xc300);
-
-	clks[IMX8MN_CLK_ECSPI1_ROOT] = imx_clk_gate4("ecspi1_root_clk", "ecspi1", base + 0x4070, 0);
-	clks[IMX8MN_CLK_ECSPI2_ROOT] = imx_clk_gate4("ecspi2_root_clk", "ecspi2", base + 0x4080, 0);
-	clks[IMX8MN_CLK_ECSPI3_ROOT] = imx_clk_gate4("ecspi3_root_clk", "ecspi3", base + 0x4090, 0);
-	clks[IMX8MN_CLK_ENET1_ROOT] = imx_clk_gate4("enet1_root_clk", "enet_axi", base + 0x40a0, 0);
-	clks[IMX8MN_CLK_GPIO1_ROOT] = imx_clk_gate4("gpio1_root_clk", "ipg_root", base + 0x40b0, 0);
-	clks[IMX8MN_CLK_GPIO2_ROOT] = imx_clk_gate4("gpio2_root_clk", "ipg_root", base + 0x40c0, 0);
-	clks[IMX8MN_CLK_GPIO3_ROOT] = imx_clk_gate4("gpio3_root_clk", "ipg_root", base + 0x40d0, 0);
-	clks[IMX8MN_CLK_GPIO4_ROOT] = imx_clk_gate4("gpio4_root_clk", "ipg_root", base + 0x40e0, 0);
-	clks[IMX8MN_CLK_GPIO5_ROOT] = imx_clk_gate4("gpio5_root_clk", "ipg_root", base + 0x40f0, 0);
-	clks[IMX8MN_CLK_I2C1_ROOT] = imx_clk_gate4("i2c1_root_clk", "i2c1", base + 0x4170, 0);
-	clks[IMX8MN_CLK_I2C2_ROOT] = imx_clk_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);
-	clks[IMX8MN_CLK_I2C3_ROOT] = imx_clk_gate4("i2c3_root_clk", "i2c3", base + 0x4190, 0);
-	clks[IMX8MN_CLK_I2C4_ROOT] = imx_clk_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0);
-	clks[IMX8MN_CLK_MU_ROOT] = imx_clk_gate4("mu_root_clk", "ipg_root", base + 0x4210, 0);
-	clks[IMX8MN_CLK_OCOTP_ROOT] = imx_clk_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0);
-	clks[IMX8MN_CLK_PWM1_ROOT] = imx_clk_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0);
-	clks[IMX8MN_CLK_PWM2_ROOT] = imx_clk_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0);
-	clks[IMX8MN_CLK_PWM3_ROOT] = imx_clk_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0);
-	clks[IMX8MN_CLK_PWM4_ROOT] = imx_clk_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0);
-	clks[IMX8MN_CLK_QSPI_ROOT] = imx_clk_gate4("qspi_root_clk", "qspi", base + 0x42f0, 0);
-	clks[IMX8MN_CLK_NAND_ROOT] = imx_clk_gate2_shared2("nand_root_clk", "nand", base + 0x4300, 0, &share_count_nand);
-	clks[IMX8MN_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", base + 0x4300, 0, &share_count_nand);
-	clks[IMX8MN_CLK_SAI2_ROOT] = imx_clk_gate2_shared2("sai2_root_clk", "sai2", base + 0x4340, 0, &share_count_sai2);
-	clks[IMX8MN_CLK_SAI2_IPG] = imx_clk_gate2_shared2("sai2_ipg_clk", "ipg_audio_root", base + 0x4340, 0, &share_count_sai2);
-	clks[IMX8MN_CLK_SAI3_ROOT] = imx_clk_gate2_shared2("sai3_root_clk", "sai3", base + 0x4350, 0, &share_count_sai3);
-	clks[IMX8MN_CLK_SAI3_IPG] = imx_clk_gate2_shared2("sai3_ipg_clk", "ipg_audio_root", base + 0x4350, 0, &share_count_sai3);
-	clks[IMX8MN_CLK_SAI5_ROOT] = imx_clk_gate2_shared2("sai5_root_clk", "sai5", base + 0x4370, 0, &share_count_sai5);
-	clks[IMX8MN_CLK_SAI5_IPG] = imx_clk_gate2_shared2("sai5_ipg_clk", "ipg_audio_root", base + 0x4370, 0, &share_count_sai5);
-	clks[IMX8MN_CLK_SAI6_ROOT] = imx_clk_gate2_shared2("sai6_root_clk", "sai6", base + 0x4380, 0, &share_count_sai6);
-	clks[IMX8MN_CLK_SAI6_IPG] = imx_clk_gate2_shared2("sai6_ipg_clk", "ipg_audio_root", base + 0x4380, 0, &share_count_sai6);
-	clks[IMX8MN_CLK_UART1_ROOT] = imx_clk_gate4("uart1_root_clk", "uart1", base + 0x4490, 0);
-	clks[IMX8MN_CLK_UART2_ROOT] = imx_clk_gate4("uart2_root_clk", "uart2", base + 0x44a0, 0);
-	clks[IMX8MN_CLK_UART3_ROOT] = imx_clk_gate4("uart3_root_clk", "uart3", base + 0x44b0, 0);
-	clks[IMX8MN_CLK_UART4_ROOT] = imx_clk_gate4("uart4_root_clk", "uart4", base + 0x44c0, 0);
-	clks[IMX8MN_CLK_USB1_CTRL_ROOT] = imx_clk_gate4("usb1_ctrl_root_clk", "usb_core_ref", base + 0x44d0, 0);
-	clks[IMX8MN_CLK_GPU_CORE_ROOT] = imx_clk_gate4("gpu_core_root_clk", "gpu_core_div", base + 0x44f0, 0);
-	clks[IMX8MN_CLK_USDHC1_ROOT] = imx_clk_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0);
-	clks[IMX8MN_CLK_USDHC2_ROOT] = imx_clk_gate4("usdhc2_root_clk", "usdhc2", base + 0x4520, 0);
-	clks[IMX8MN_CLK_WDOG1_ROOT] = imx_clk_gate4("wdog1_root_clk", "wdog", base + 0x4530, 0);
-	clks[IMX8MN_CLK_WDOG2_ROOT] = imx_clk_gate4("wdog2_root_clk", "wdog", base + 0x4540, 0);
-	clks[IMX8MN_CLK_WDOG3_ROOT] = imx_clk_gate4("wdog3_root_clk", "wdog", base + 0x4550, 0);
-	clks[IMX8MN_CLK_GPU_BUS_ROOT] = imx_clk_gate4("gpu_root_clk", "gpu_axi", base + 0x4570, 0);
-	clks[IMX8MN_CLK_ASRC_ROOT] = imx_clk_gate4("asrc_root_clk", "audio_ahb", base + 0x4580, 0);
-	clks[IMX8MN_CLK_PDM_ROOT] = imx_clk_gate2_shared2("pdm_root_clk", "pdm", base + 0x45b0, 0, &share_count_pdm);
-	clks[IMX8MN_CLK_PDM_IPG]  = imx_clk_gate2_shared2("pdm_ipg_clk", "ipg_audio_root", base + 0x45b0, 0, &share_count_pdm);
-	clks[IMX8MN_CLK_DISP_AXI_ROOT]  = imx_clk_gate2_shared2("disp_axi_root_clk", "disp_axi", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MN_CLK_DISP_APB_ROOT]  = imx_clk_gate2_shared2("disp_apb_root_clk", "disp_apb", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MN_CLK_CAMERA_PIXEL_ROOT] = imx_clk_gate2_shared2("camera_pixel_clk", "camera_pixel", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MN_CLK_DISP_PIXEL_ROOT] = imx_clk_gate2_shared2("disp_pixel_clk", "disp_pixel", base + 0x45d0, 0, &share_count_disp);
-	clks[IMX8MN_CLK_USDHC3_ROOT] = imx_clk_gate4("usdhc3_root_clk", "usdhc3", base + 0x45e0, 0);
-	clks[IMX8MN_CLK_TMU_ROOT] = imx_clk_gate4("tmu_root_clk", "ipg_root", base + 0x4620, 0);
-	clks[IMX8MN_CLK_SDMA1_ROOT] = imx_clk_gate4("sdma1_clk", "ipg_root", base + 0x43a0, 0);
-	clks[IMX8MN_CLK_SDMA2_ROOT] = imx_clk_gate4("sdma2_clk", "ipg_audio_root", base + 0x43b0, 0);
-	clks[IMX8MN_CLK_SDMA3_ROOT] = imx_clk_gate4("sdma3_clk", "ipg_audio_root", base + 0x45f0, 0);
-	clks[IMX8MN_CLK_SAI7_ROOT] = imx_clk_gate2_shared2("sai7_root_clk", "sai7", base + 0x4650, 0, &share_count_sai7);
-
-	clks[IMX8MN_CLK_DRAM_ALT_ROOT] = imx_clk_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
-
-	clks[IMX8MN_CLK_ARM] = imx_clk_cpu("arm", "arm_a53_div",
-					   clks[IMX8MN_CLK_A53_DIV],
-					   clks[IMX8MN_CLK_A53_SRC],
-					   clks[IMX8MN_ARM_PLL_OUT],
-					   clks[IMX8MN_SYS_PLL1_800M]);
-
-	imx_check_clocks(clks, ARRAY_SIZE(clks));
-
-	clk_data.clks = clks;
-	clk_data.clk_num = ARRAY_SIZE(clks);
-	ret = of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+	hws[IMX8MN_CLK_MAIN_AXI] = imx8m_clk_hw_composite_bus_critical("main_axi", imx8mn_main_axi_sels, base + 0x8800);
+	hws[IMX8MN_CLK_ENET_AXI] = imx8m_clk_hw_composite_bus("enet_axi", imx8mn_enet_axi_sels, base + 0x8880);
+	hws[IMX8MN_CLK_NAND_USDHC_BUS] = imx8m_clk_hw_composite_bus("nand_usdhc_bus", imx8mn_nand_usdhc_sels, base + 0x8900);
+	hws[IMX8MN_CLK_DISP_AXI] = imx8m_clk_hw_composite_bus("disp_axi", imx8mn_disp_axi_sels, base + 0x8a00);
+	hws[IMX8MN_CLK_DISP_APB] = imx8m_clk_hw_composite_bus("disp_apb", imx8mn_disp_apb_sels, base + 0x8a80);
+	hws[IMX8MN_CLK_USB_BUS] = imx8m_clk_hw_composite_bus("usb_bus", imx8mn_usb_bus_sels, base + 0x8b80);
+	hws[IMX8MN_CLK_GPU_AXI] = imx8m_clk_hw_composite_bus("gpu_axi", imx8mn_gpu_axi_sels, base + 0x8c00);
+	hws[IMX8MN_CLK_GPU_AHB] = imx8m_clk_hw_composite_bus("gpu_ahb", imx8mn_gpu_ahb_sels, base + 0x8c80);
+	hws[IMX8MN_CLK_NOC] = imx8m_clk_hw_composite_bus_critical("noc", imx8mn_noc_sels, base + 0x8d00);
+
+	hws[IMX8MN_CLK_AHB] = imx8m_clk_hw_composite_bus_critical("ahb", imx8mn_ahb_sels, base + 0x9000);
+	hws[IMX8MN_CLK_AUDIO_AHB] = imx8m_clk_hw_composite_bus("audio_ahb", imx8mn_audio_ahb_sels, base + 0x9100);
+	hws[IMX8MN_CLK_IPG_ROOT] = imx_clk_hw_divider2("ipg_root", "ahb", base + 0x9080, 0, 1);
+	hws[IMX8MN_CLK_IPG_AUDIO_ROOT] = imx_clk_hw_divider2("ipg_audio_root", "audio_ahb", base + 0x9180, 0, 1);
+	hws[IMX8MN_CLK_DRAM_CORE] = imx_clk_hw_mux2_flags("dram_core_clk", base + 0x9800, 24, 1, imx8mn_dram_core_sels, ARRAY_SIZE(imx8mn_dram_core_sels), CLK_IS_CRITICAL);
+
+	/*
+	 * DRAM clocks are manipulated from TF-A outside clock framework.
+	 * Mark with GET_RATE_NOCACHE to always read div value from hardware
+	 */
+	hws[IMX8MN_CLK_DRAM_ALT] = __imx8m_clk_hw_composite("dram_alt", imx8mn_dram_alt_sels, base + 0xa000, CLK_GET_RATE_NOCACHE);
+	hws[IMX8MN_CLK_DRAM_APB] = __imx8m_clk_hw_composite("dram_apb", imx8mn_dram_apb_sels, base + 0xa080, CLK_IS_CRITICAL | CLK_GET_RATE_NOCACHE);
+
+	hws[IMX8MN_CLK_DISP_PIXEL] = imx8m_clk_hw_composite("disp_pixel", imx8mn_disp_pixel_sels, base + 0xa500);
+	hws[IMX8MN_CLK_SAI2] = imx8m_clk_hw_composite("sai2", imx8mn_sai2_sels, base + 0xa600);
+	hws[IMX8MN_CLK_SAI3] = imx8m_clk_hw_composite("sai3", imx8mn_sai3_sels, base + 0xa680);
+	hws[IMX8MN_CLK_SAI5] = imx8m_clk_hw_composite("sai5", imx8mn_sai5_sels, base + 0xa780);
+	hws[IMX8MN_CLK_SAI6] = imx8m_clk_hw_composite("sai6", imx8mn_sai6_sels, base + 0xa800);
+	hws[IMX8MN_CLK_SPDIF1] = imx8m_clk_hw_composite("spdif1", imx8mn_spdif1_sels, base + 0xa880);
+	hws[IMX8MN_CLK_ENET_REF] = imx8m_clk_hw_composite("enet_ref", imx8mn_enet_ref_sels, base + 0xa980);
+	hws[IMX8MN_CLK_ENET_TIMER] = imx8m_clk_hw_composite("enet_timer", imx8mn_enet_timer_sels, base + 0xaa00);
+	hws[IMX8MN_CLK_ENET_PHY_REF] = imx8m_clk_hw_composite("enet_phy", imx8mn_enet_phy_sels, base + 0xaa80);
+	hws[IMX8MN_CLK_NAND] = imx8m_clk_hw_composite("nand", imx8mn_nand_sels, base + 0xab00);
+	hws[IMX8MN_CLK_QSPI] = imx8m_clk_hw_composite("qspi", imx8mn_qspi_sels, base + 0xab80);
+	hws[IMX8MN_CLK_USDHC1] = imx8m_clk_hw_composite("usdhc1", imx8mn_usdhc1_sels, base + 0xac00);
+	hws[IMX8MN_CLK_USDHC2] = imx8m_clk_hw_composite("usdhc2", imx8mn_usdhc2_sels, base + 0xac80);
+	hws[IMX8MN_CLK_I2C1] = imx8m_clk_hw_composite("i2c1", imx8mn_i2c1_sels, base + 0xad00);
+	hws[IMX8MN_CLK_I2C2] = imx8m_clk_hw_composite("i2c2", imx8mn_i2c2_sels, base + 0xad80);
+	hws[IMX8MN_CLK_I2C3] = imx8m_clk_hw_composite("i2c3", imx8mn_i2c3_sels, base + 0xae00);
+	hws[IMX8MN_CLK_I2C4] = imx8m_clk_hw_composite("i2c4", imx8mn_i2c4_sels, base + 0xae80);
+	hws[IMX8MN_CLK_UART1] = imx8m_clk_hw_composite("uart1", imx8mn_uart1_sels, base + 0xaf00);
+	hws[IMX8MN_CLK_UART2] = imx8m_clk_hw_composite("uart2", imx8mn_uart2_sels, base + 0xaf80);
+	hws[IMX8MN_CLK_UART3] = imx8m_clk_hw_composite("uart3", imx8mn_uart3_sels, base + 0xb000);
+	hws[IMX8MN_CLK_UART4] = imx8m_clk_hw_composite("uart4", imx8mn_uart4_sels, base + 0xb080);
+	hws[IMX8MN_CLK_USB_CORE_REF] = imx8m_clk_hw_composite("usb_core_ref", imx8mn_usb_core_sels, base + 0xb100);
+	hws[IMX8MN_CLK_USB_PHY_REF] = imx8m_clk_hw_composite("usb_phy_ref", imx8mn_usb_phy_sels, base + 0xb180);
+	hws[IMX8MN_CLK_GIC] = imx8m_clk_hw_composite_critical("gic", imx8mn_gic_sels, base + 0xb200);
+	hws[IMX8MN_CLK_ECSPI1] = imx8m_clk_hw_composite("ecspi1", imx8mn_ecspi1_sels, base + 0xb280);
+	hws[IMX8MN_CLK_ECSPI2] = imx8m_clk_hw_composite("ecspi2", imx8mn_ecspi2_sels, base + 0xb300);
+	hws[IMX8MN_CLK_PWM1] = imx8m_clk_hw_composite("pwm1", imx8mn_pwm1_sels, base + 0xb380);
+	hws[IMX8MN_CLK_PWM2] = imx8m_clk_hw_composite("pwm2", imx8mn_pwm2_sels, base + 0xb400);
+	hws[IMX8MN_CLK_PWM3] = imx8m_clk_hw_composite("pwm3", imx8mn_pwm3_sels, base + 0xb480);
+	hws[IMX8MN_CLK_PWM4] = imx8m_clk_hw_composite("pwm4", imx8mn_pwm4_sels, base + 0xb500);
+	hws[IMX8MN_CLK_WDOG] = imx8m_clk_hw_composite("wdog", imx8mn_wdog_sels, base + 0xb900);
+	hws[IMX8MN_CLK_WRCLK] = imx8m_clk_hw_composite("wrclk", imx8mn_wrclk_sels, base + 0xb980);
+	hws[IMX8MN_CLK_CLKO1] = imx8m_clk_hw_composite("clko1", imx8mn_clko1_sels, base + 0xba00);
+	hws[IMX8MN_CLK_CLKO2] = imx8m_clk_hw_composite("clko2", imx8mn_clko2_sels, base + 0xba80);
+	hws[IMX8MN_CLK_DSI_CORE] = imx8m_clk_hw_composite("dsi_core", imx8mn_dsi_core_sels, base + 0xbb00);
+	hws[IMX8MN_CLK_DSI_PHY_REF] = imx8m_clk_hw_composite("dsi_phy_ref", imx8mn_dsi_phy_sels, base + 0xbb80);
+	hws[IMX8MN_CLK_DSI_DBI] = imx8m_clk_hw_composite("dsi_dbi", imx8mn_dsi_dbi_sels, base + 0xbc00);
+	hws[IMX8MN_CLK_USDHC3] = imx8m_clk_hw_composite("usdhc3", imx8mn_usdhc3_sels, base + 0xbc80);
+	hws[IMX8MN_CLK_CAMERA_PIXEL] = imx8m_clk_hw_composite("camera_pixel", imx8mn_camera_pixel_sels, base + 0xbd00);
+	hws[IMX8MN_CLK_CSI1_PHY_REF] = imx8m_clk_hw_composite("csi1_phy_ref", imx8mn_csi1_phy_sels, base + 0xbd80);
+	hws[IMX8MN_CLK_CSI2_PHY_REF] = imx8m_clk_hw_composite("csi2_phy_ref", imx8mn_csi2_phy_sels, base + 0xbf00);
+	hws[IMX8MN_CLK_CSI2_ESC] = imx8m_clk_hw_composite("csi2_esc", imx8mn_csi2_esc_sels, base + 0xbf80);
+	hws[IMX8MN_CLK_ECSPI3] = imx8m_clk_hw_composite("ecspi3", imx8mn_ecspi3_sels, base + 0xc180);
+	hws[IMX8MN_CLK_PDM] = imx8m_clk_hw_composite("pdm", imx8mn_pdm_sels, base + 0xc200);
+	hws[IMX8MN_CLK_SAI7] = imx8m_clk_hw_composite("sai7", imx8mn_sai7_sels, base + 0xc300);
+
+	hws[IMX8MN_CLK_ECSPI1_ROOT] = imx_clk_hw_gate4("ecspi1_root_clk", "ecspi1", base + 0x4070, 0);
+	hws[IMX8MN_CLK_ECSPI2_ROOT] = imx_clk_hw_gate4("ecspi2_root_clk", "ecspi2", base + 0x4080, 0);
+	hws[IMX8MN_CLK_ECSPI3_ROOT] = imx_clk_hw_gate4("ecspi3_root_clk", "ecspi3", base + 0x4090, 0);
+	hws[IMX8MN_CLK_ENET1_ROOT] = imx_clk_hw_gate4("enet1_root_clk", "enet_axi", base + 0x40a0, 0);
+	hws[IMX8MN_CLK_GPIO1_ROOT] = imx_clk_hw_gate4("gpio1_root_clk", "ipg_root", base + 0x40b0, 0);
+	hws[IMX8MN_CLK_GPIO2_ROOT] = imx_clk_hw_gate4("gpio2_root_clk", "ipg_root", base + 0x40c0, 0);
+	hws[IMX8MN_CLK_GPIO3_ROOT] = imx_clk_hw_gate4("gpio3_root_clk", "ipg_root", base + 0x40d0, 0);
+	hws[IMX8MN_CLK_GPIO4_ROOT] = imx_clk_hw_gate4("gpio4_root_clk", "ipg_root", base + 0x40e0, 0);
+	hws[IMX8MN_CLK_GPIO5_ROOT] = imx_clk_hw_gate4("gpio5_root_clk", "ipg_root", base + 0x40f0, 0);
+	hws[IMX8MN_CLK_I2C1_ROOT] = imx_clk_hw_gate4("i2c1_root_clk", "i2c1", base + 0x4170, 0);
+	hws[IMX8MN_CLK_I2C2_ROOT] = imx_clk_hw_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);
+	hws[IMX8MN_CLK_I2C3_ROOT] = imx_clk_hw_gate4("i2c3_root_clk", "i2c3", base + 0x4190, 0);
+	hws[IMX8MN_CLK_I2C4_ROOT] = imx_clk_hw_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0);
+	hws[IMX8MN_CLK_MU_ROOT] = imx_clk_hw_gate4("mu_root_clk", "ipg_root", base + 0x4210, 0);
+	hws[IMX8MN_CLK_OCOTP_ROOT] = imx_clk_hw_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0);
+	hws[IMX8MN_CLK_PWM1_ROOT] = imx_clk_hw_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0);
+	hws[IMX8MN_CLK_PWM2_ROOT] = imx_clk_hw_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0);
+	hws[IMX8MN_CLK_PWM3_ROOT] = imx_clk_hw_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0);
+	hws[IMX8MN_CLK_PWM4_ROOT] = imx_clk_hw_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0);
+	hws[IMX8MN_CLK_QSPI_ROOT] = imx_clk_hw_gate4("qspi_root_clk", "qspi", base + 0x42f0, 0);
+	hws[IMX8MN_CLK_NAND_ROOT] = imx_clk_hw_gate2_shared2("nand_root_clk", "nand", base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MN_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_hw_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MN_CLK_SAI2_ROOT] = imx_clk_hw_gate2_shared2("sai2_root_clk", "sai2", base + 0x4340, 0, &share_count_sai2);
+	hws[IMX8MN_CLK_SAI2_IPG] = imx_clk_hw_gate2_shared2("sai2_ipg_clk", "ipg_audio_root", base + 0x4340, 0, &share_count_sai2);
+	hws[IMX8MN_CLK_SAI3_ROOT] = imx_clk_hw_gate2_shared2("sai3_root_clk", "sai3", base + 0x4350, 0, &share_count_sai3);
+	hws[IMX8MN_CLK_SAI3_IPG] = imx_clk_hw_gate2_shared2("sai3_ipg_clk", "ipg_audio_root", base + 0x4350, 0, &share_count_sai3);
+	hws[IMX8MN_CLK_SAI5_ROOT] = imx_clk_hw_gate2_shared2("sai5_root_clk", "sai5", base + 0x4370, 0, &share_count_sai5);
+	hws[IMX8MN_CLK_SAI5_IPG] = imx_clk_hw_gate2_shared2("sai5_ipg_clk", "ipg_audio_root", base + 0x4370, 0, &share_count_sai5);
+	hws[IMX8MN_CLK_SAI6_ROOT] = imx_clk_hw_gate2_shared2("sai6_root_clk", "sai6", base + 0x4380, 0, &share_count_sai6);
+	hws[IMX8MN_CLK_SAI6_IPG] = imx_clk_hw_gate2_shared2("sai6_ipg_clk", "ipg_audio_root", base + 0x4380, 0, &share_count_sai6);
+	hws[IMX8MN_CLK_SNVS_ROOT] = imx_clk_hw_gate4("snvs_root_clk", "ipg_root", base + 0x4470, 0);
+	hws[IMX8MN_CLK_UART1_ROOT] = imx_clk_hw_gate4("uart1_root_clk", "uart1", base + 0x4490, 0);
+	hws[IMX8MN_CLK_UART2_ROOT] = imx_clk_hw_gate4("uart2_root_clk", "uart2", base + 0x44a0, 0);
+	hws[IMX8MN_CLK_UART3_ROOT] = imx_clk_hw_gate4("uart3_root_clk", "uart3", base + 0x44b0, 0);
+	hws[IMX8MN_CLK_UART4_ROOT] = imx_clk_hw_gate4("uart4_root_clk", "uart4", base + 0x44c0, 0);
+	hws[IMX8MN_CLK_USB1_CTRL_ROOT] = imx_clk_hw_gate4("usb1_ctrl_root_clk", "usb_bus", base + 0x44d0, 0);
+	hws[IMX8MN_CLK_GPU_CORE_ROOT] = imx_clk_hw_gate4("gpu_core_root_clk", "gpu_core", base + 0x44f0, 0);
+	hws[IMX8MN_CLK_USDHC1_ROOT] = imx_clk_hw_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0);
+	hws[IMX8MN_CLK_USDHC2_ROOT] = imx_clk_hw_gate4("usdhc2_root_clk", "usdhc2", base + 0x4520, 0);
+	hws[IMX8MN_CLK_WDOG1_ROOT] = imx_clk_hw_gate4("wdog1_root_clk", "wdog", base + 0x4530, 0);
+	hws[IMX8MN_CLK_WDOG2_ROOT] = imx_clk_hw_gate4("wdog2_root_clk", "wdog", base + 0x4540, 0);
+	hws[IMX8MN_CLK_WDOG3_ROOT] = imx_clk_hw_gate4("wdog3_root_clk", "wdog", base + 0x4550, 0);
+	hws[IMX8MN_CLK_GPU_BUS_ROOT] = imx_clk_hw_gate4("gpu_root_clk", "gpu_axi", base + 0x4570, 0);
+	hws[IMX8MN_CLK_ASRC_ROOT] = imx_clk_hw_gate4("asrc_root_clk", "audio_ahb", base + 0x4580, 0);
+	hws[IMX8MN_CLK_PDM_ROOT] = imx_clk_hw_gate2_shared2("pdm_root_clk", "pdm", base + 0x45b0, 0, &share_count_pdm);
+	hws[IMX8MN_CLK_PDM_IPG]  = imx_clk_hw_gate2_shared2("pdm_ipg_clk", "ipg_audio_root", base + 0x45b0, 0, &share_count_pdm);
+	hws[IMX8MN_CLK_DISP_AXI_ROOT]  = imx_clk_hw_gate2_shared2("disp_axi_root_clk", "disp_axi", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MN_CLK_DISP_APB_ROOT]  = imx_clk_hw_gate2_shared2("disp_apb_root_clk", "disp_apb", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MN_CLK_CAMERA_PIXEL_ROOT] = imx_clk_hw_gate2_shared2("camera_pixel_clk", "camera_pixel", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MN_CLK_DISP_PIXEL_ROOT] = imx_clk_hw_gate2_shared2("disp_pixel_clk", "disp_pixel", base + 0x45d0, 0, &share_count_disp);
+	hws[IMX8MN_CLK_USDHC3_ROOT] = imx_clk_hw_gate4("usdhc3_root_clk", "usdhc3", base + 0x45e0, 0);
+	hws[IMX8MN_CLK_TMU_ROOT] = imx_clk_hw_gate4("tmu_root_clk", "ipg_root", base + 0x4620, 0);
+	hws[IMX8MN_CLK_SDMA1_ROOT] = imx_clk_hw_gate4("sdma1_clk", "ipg_root", base + 0x43a0, 0);
+	hws[IMX8MN_CLK_SDMA2_ROOT] = imx_clk_hw_gate4("sdma2_clk", "ipg_audio_root", base + 0x43b0, 0);
+	hws[IMX8MN_CLK_SDMA3_ROOT] = imx_clk_hw_gate4("sdma3_clk", "ipg_audio_root", base + 0x45f0, 0);
+	hws[IMX8MN_CLK_SAI7_ROOT] = imx_clk_hw_gate2_shared2("sai7_root_clk", "sai7", base + 0x4650, 0, &share_count_sai7);
+
+	hws[IMX8MN_CLK_DRAM_ALT_ROOT] = imx_clk_hw_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
+
+	hws[IMX8MN_CLK_ARM] = imx_clk_hw_cpu("arm", "arm_a53_core",
+					   hws[IMX8MN_CLK_A53_CORE]->clk,
+					   hws[IMX8MN_CLK_A53_CORE]->clk,
+					   hws[IMX8MN_ARM_PLL_OUT]->clk,
+					   hws[IMX8MN_CLK_A53_DIV]->clk);
+
+	imx_check_clk_hws(hws, IMX8MN_CLK_END);
+
+	ret = of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_hw_data);
 	if (ret < 0) {
-		dev_err(dev, "failed to register clks for i.MX8MN\n");
-		goto unregister_clks;
+		dev_err(dev, "failed to register hws for i.MX8MN\n");
+		goto unregister_hws;
 	}
 
-	imx_register_uart_clocks(uart_clks);
+	for (i = 0; i < ARRAY_SIZE(uart_clk_ids); i++) {
+		int index = uart_clk_ids[i];
+
+		uart_hws[i] = &hws[index]->clk;
+	}
+
+	imx_register_uart_clocks(uart_hws);
 
 	return 0;
 
-unregister_clks:
-	imx_unregister_clocks(clks, ARRAY_SIZE(clks));
+unregister_hws:
+	imx_unregister_hw_clocks(hws, IMX8MN_CLK_END);
 
 	return ret;
 }
@@ -642,7 +595,16 @@
 	.probe = imx8mn_clocks_probe,
 	.driver = {
 		.name = "imx8mn-ccm",
-		.of_match_table = of_match_ptr(imx8mn_clk_of_match),
+		/*
+		 * Disable bind attributes: clocks are not removed and
+		 * reloading the driver will crash or break devices.
+		 */
+		.suppress_bind_attrs = true,
+		.of_match_table = imx8mn_clk_of_match,
 	},
 };
 module_platform_driver(imx8mn_clk_driver);
+
+MODULE_AUTHOR("Anson Huang <Anson.Huang@nxp.com>");
+MODULE_DESCRIPTION("NXP i.MX8MN clock driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx8mp.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx8mp.c
@@ -0,0 +1,777 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <linux/clk-provider.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <linux/types.h>
+
+#include "clk.h"
+
+static u32 share_count_nand;
+static u32 share_count_media;
+
+static const char * const pll_ref_sels[] = { "osc_24m", "dummy", "dummy", "dummy", };
+static const char * const audio_pll1_bypass_sels[] = {"audio_pll1", "audio_pll1_ref_sel", };
+static const char * const audio_pll2_bypass_sels[] = {"audio_pll2", "audio_pll2_ref_sel", };
+static const char * const video_pll1_bypass_sels[] = {"video_pll1", "video_pll1_ref_sel", };
+static const char * const dram_pll_bypass_sels[] = {"dram_pll", "dram_pll_ref_sel", };
+static const char * const gpu_pll_bypass_sels[] = {"gpu_pll", "gpu_pll_ref_sel", };
+static const char * const vpu_pll_bypass_sels[] = {"vpu_pll", "vpu_pll_ref_sel", };
+static const char * const arm_pll_bypass_sels[] = {"arm_pll", "arm_pll_ref_sel", };
+static const char * const sys_pll1_bypass_sels[] = {"sys_pll1", "sys_pll1_ref_sel", };
+static const char * const sys_pll2_bypass_sels[] = {"sys_pll2", "sys_pll2_ref_sel", };
+static const char * const sys_pll3_bypass_sels[] = {"sys_pll3", "sys_pll3_ref_sel", };
+
+static const char * const imx8mp_a53_sels[] = {"osc_24m", "arm_pll_out", "sys_pll2_500m",
+					       "sys_pll2_1000m", "sys_pll1_800m", "sys_pll1_400m",
+					       "audio_pll1_out", "sys_pll3_out", };
+
+static const char * const imx8mp_a53_core_sels[] = {"arm_a53_div", "arm_pll_out", };
+
+static const char * const imx8mp_m7_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll2_250m",
+					      "vpu_pll_out", "sys_pll1_800m", "audio_pll1_out",
+					      "video_pll1_out", "sys_pll3_out", };
+
+static const char * const imx8mp_ml_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m",
+					      "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+					      "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_gpu3d_core_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m",
+						      "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						      "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_gpu3d_shader_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m",
+							"sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+							"video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_gpu2d_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m",
+						 "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						 "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_audio_axi_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m",
+						     "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						     "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_hsio_axi_sels[] = {"osc_24m", "sys_pll2_500m", "sys_pll1_800m",
+						    "sys_pll2_100m", "sys_pll2_200m", "clk_ext2",
+						    "clk_ext4", "audio_pll2_out", };
+
+static const char * const imx8mp_media_isp_sels[] = {"osc_24m", "sys_pll2_1000m", "sys_pll1_800m",
+						     "sys_pll3_out", "sys_pll1_400m", "audio_pll2_out",
+						     "clk_ext1", "sys_pll2_500m", };
+
+static const char * const imx8mp_main_axi_sels[] = {"osc_24m", "sys_pll2_333m", "sys_pll1_800m",
+						    "sys_pll2_250m", "sys_pll2_1000m", "audio_pll1_out",
+						    "video_pll1_out", "sys_pll1_100m",};
+
+static const char * const imx8mp_enet_axi_sels[] = {"osc_24m", "sys_pll1_266m", "sys_pll1_800m",
+						    "sys_pll2_250m", "sys_pll2_200m", "audio_pll1_out",
+						    "video_pll1_out", "sys_pll3_out", };
+
+static const char * const imx8mp_nand_usdhc_sels[] = {"osc_24m", "sys_pll1_266m", "sys_pll1_800m",
+						      "sys_pll2_200m", "sys_pll1_133m", "sys_pll3_out",
+						      "sys_pll2_250m", "audio_pll1_out", };
+
+static const char * const imx8mp_vpu_bus_sels[] = {"osc_24m", "sys_pll1_800m", "vpu_pll_out",
+						   "audio_pll2_out", "sys_pll3_out", "sys_pll2_1000m",
+						   "sys_pll2_200m", "sys_pll1_100m", };
+
+static const char * const imx8mp_media_axi_sels[] = {"osc_24m", "sys_pll2_1000m", "sys_pll1_800m",
+						     "sys_pll3_out", "sys_pll1_40m", "audio_pll2_out",
+						     "clk_ext1", "sys_pll2_500m", };
+
+static const char * const imx8mp_media_apb_sels[] = {"osc_24m", "sys_pll2_125m", "sys_pll1_800m",
+						     "sys_pll3_out", "sys_pll1_40m", "audio_pll2_out",
+						     "clk_ext1", "sys_pll1_133m", };
+
+static const char * const imx8mp_gpu_axi_sels[] = {"osc_24m", "sys_pll1_800m", "gpu_pll_out",
+						   "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						   "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_gpu_ahb_sels[] = {"osc_24m", "sys_pll1_800m", "gpu_pll_out",
+						   "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						   "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_noc_sels[] = {"osc_24m", "sys_pll1_800m", "sys_pll3_out",
+					       "sys_pll2_1000m", "sys_pll2_500m", "audio_pll1_out",
+					       "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_noc_io_sels[] = {"osc_24m", "sys_pll1_800m", "sys_pll3_out",
+						  "sys_pll2_1000m", "sys_pll2_500m", "audio_pll1_out",
+						  "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_ml_axi_sels[] = {"osc_24m", "sys_pll1_800m", "gpu_pll_out",
+						  "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						  "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_ml_ahb_sels[] = {"osc_24m", "sys_pll1_800m", "gpu_pll_out",
+						  "sys_pll3_out", "sys_pll2_1000m", "audio_pll1_out",
+						  "video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_ahb_sels[] = {"osc_24m", "sys_pll1_133m", "sys_pll1_800m",
+					       "sys_pll1_400m", "sys_pll2_125m", "sys_pll3_out",
+					       "audio_pll1_out", "video_pll1_out", };
+
+static const char * const imx8mp_audio_ahb_sels[] = {"osc_24m", "sys_pll2_500m", "sys_pll1_800m",
+						     "sys_pll2_1000m", "sys_pll2_166m", "sys_pll3_out",
+						     "audio_pll1_out", "video_pll1_out", };
+
+static const char *imx8mp_media_disp2_pix_sels[] = {"osc_24m", "video_pll1_out", "audio_pll2_out",
+						    "audio_pll1_out", "sys_pll1_800m", "sys_pll2_1000m",
+						    "sys_pll3_out", "clk_ext4", };
+
+static const char * const imx8mp_mipi_dsi_esc_rx_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_80m",
+							   "sys_pll1_800m", "sys_pll2_1000m",
+							   "sys_pll3_out", "clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_dram_alt_sels[] = {"osc_24m", "sys_pll1_800m", "sys_pll1_100m",
+						    "sys_pll2_500m", "sys_pll2_1000m", "sys_pll3_out",
+						    "audio_pll1_out", "sys_pll1_266m", };
+
+static const char * const imx8mp_dram_apb_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+						    "sys_pll1_160m", "sys_pll1_800m", "sys_pll3_out",
+						    "sys_pll2_250m", "audio_pll2_out", };
+
+static const char * const imx8mp_vpu_g1_sels[] = {"osc_24m", "vpu_pll_out", "sys_pll1_800m",
+						  "sys_pll2_1000m", "sys_pll1_100m", "sys_pll2_125m",
+						  "sys_pll3_out", "audio_pll1_out", };
+
+static const char * const imx8mp_vpu_g2_sels[] = {"osc_24m", "vpu_pll_out", "sys_pll1_800m",
+						  "sys_pll2_1000m", "sys_pll1_100m", "sys_pll2_125m",
+						  "sys_pll3_out", "audio_pll1_out", };
+
+static const char * const imx8mp_can1_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+						"sys_pll1_160m", "sys_pll1_800m", "sys_pll3_out",
+						"sys_pll2_250m", "audio_pll2_out", };
+
+static const char * const imx8mp_can2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+						"sys_pll1_160m", "sys_pll1_800m", "sys_pll3_out",
+						"sys_pll2_250m", "audio_pll2_out", };
+
+static const char * const imx8mp_pcie_aux_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll2_50m",
+						    "sys_pll3_out", "sys_pll2_100m", "sys_pll1_80m",
+						    "sys_pll1_160m", "sys_pll1_200m", };
+
+static const char * const imx8mp_i2c5_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						"sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						"audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_i2c6_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						"sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						"audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_sai1_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext1", "clk_ext2", };
+
+static const char * const imx8mp_sai2_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext2", "clk_ext3", };
+
+static const char * const imx8mp_sai3_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext3", "clk_ext4", };
+
+static const char * const imx8mp_sai4_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext1", "clk_ext2", };
+
+static const char * const imx8mp_sai5_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext2", "clk_ext3", };
+
+static const char * const imx8mp_sai6_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext3", "clk_ext4", };
+
+static const char * const imx8mp_enet_qos_sels[] = {"osc_24m", "sys_pll2_125m", "sys_pll2_50m",
+						    "sys_pll2_100m", "sys_pll1_160m", "audio_pll1_out",
+						    "video_pll1_out", "clk_ext4", };
+
+static const char * const imx8mp_enet_qos_timer_sels[] = {"osc_24m", "sys_pll2_100m", "audio_pll1_out",
+							  "clk_ext1", "clk_ext2", "clk_ext3",
+							  "clk_ext4", "video_pll1_out", };
+
+static const char * const imx8mp_enet_ref_sels[] = {"osc_24m", "sys_pll2_125m", "sys_pll2_50m",
+						    "sys_pll2_100m", "sys_pll1_160m", "audio_pll1_out",
+						    "video_pll1_out", "clk_ext4", };
+
+static const char * const imx8mp_enet_timer_sels[] = {"osc_24m", "sys_pll2_100m", "audio_pll1_out",
+						      "clk_ext1", "clk_ext2", "clk_ext3",
+						      "clk_ext4", "video_pll1_out", };
+
+static const char * const imx8mp_enet_phy_ref_sels[] = {"osc_24m", "sys_pll2_50m", "sys_pll2_125m",
+							"sys_pll2_200m", "sys_pll2_500m", "audio_pll1_out",
+							"video_pll1_out", "audio_pll2_out", };
+
+static const char * const imx8mp_nand_sels[] = {"osc_24m", "sys_pll2_500m", "audio_pll1_out",
+						"sys_pll1_400m", "audio_pll2_out", "sys_pll3_out",
+						"sys_pll2_250m", "video_pll1_out", };
+
+static const char * const imx8mp_qspi_sels[] = {"osc_24m", "sys_pll1_400m", "sys_pll2_333m",
+						"sys_pll2_500m", "audio_pll2_out", "sys_pll1_266m",
+						"sys_pll3_out", "sys_pll1_100m", };
+
+static const char * const imx8mp_usdhc1_sels[] = {"osc_24m", "sys_pll1_400m", "sys_pll1_800m",
+						  "sys_pll2_500m", "sys_pll3_out", "sys_pll1_266m",
+						  "audio_pll2_out", "sys_pll1_100m", };
+
+static const char * const imx8mp_usdhc2_sels[] = {"osc_24m", "sys_pll1_400m", "sys_pll1_800m",
+						  "sys_pll2_500m", "sys_pll3_out", "sys_pll1_266m",
+						  "audio_pll2_out", "sys_pll1_100m", };
+
+static const char * const imx8mp_i2c1_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						"sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						"audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_i2c2_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						"sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						"audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_i2c3_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						"sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						"audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_i2c4_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						"sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						"audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_uart1_sels[] = {"osc_24m", "sys_pll1_80m", "sys_pll2_200m",
+						 "sys_pll2_100m", "sys_pll3_out", "clk_ext2",
+						 "clk_ext4", "audio_pll2_out", };
+
+static const char * const imx8mp_uart2_sels[] = {"osc_24m", "sys_pll1_80m", "sys_pll2_200m",
+						 "sys_pll2_100m", "sys_pll3_out", "clk_ext2",
+						 "clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_uart3_sels[] = {"osc_24m", "sys_pll1_80m", "sys_pll2_200m",
+						 "sys_pll2_100m", "sys_pll3_out", "clk_ext2",
+						 "clk_ext4", "audio_pll2_out", };
+
+static const char * const imx8mp_uart4_sels[] = {"osc_24m", "sys_pll1_80m", "sys_pll2_200m",
+						 "sys_pll2_100m", "sys_pll3_out", "clk_ext2",
+						 "clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_usb_core_ref_sels[] = {"osc_24m", "sys_pll1_100m", "sys_pll1_40m",
+							"sys_pll2_100m", "sys_pll2_200m", "clk_ext2",
+							"clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_usb_phy_ref_sels[] = {"osc_24m", "sys_pll1_100m", "sys_pll1_40m",
+						       "sys_pll2_100m", "sys_pll2_200m", "clk_ext2",
+						       "clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_gic_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+					       "sys_pll2_100m", "sys_pll1_800m",
+					       "sys_pll2_500m", "clk_ext4", "audio_pll2_out" };
+
+static const char * const imx8mp_ecspi1_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+						  "sys_pll1_160m", "sys_pll1_800m", "sys_pll3_out",
+						  "sys_pll2_250m", "audio_pll2_out", };
+
+static const char * const imx8mp_ecspi2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+						  "sys_pll1_160m", "sys_pll1_800m", "sys_pll3_out",
+						  "sys_pll2_250m", "audio_pll2_out", };
+
+static const char * const imx8mp_pwm1_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_160m",
+						"sys_pll1_40m", "sys_pll3_out", "clk_ext1",
+						"sys_pll1_80m", "video_pll1_out", };
+
+static const char * const imx8mp_pwm2_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_160m",
+						"sys_pll1_40m", "sys_pll3_out", "clk_ext1",
+						"sys_pll1_80m", "video_pll1_out", };
+
+static const char * const imx8mp_pwm3_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_160m",
+						"sys_pll1_40m", "sys_pll3_out", "clk_ext2",
+						"sys_pll1_80m", "video_pll1_out", };
+
+static const char * const imx8mp_pwm4_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_160m",
+						"sys_pll1_40m", "sys_pll3_out", "clk_ext2",
+						"sys_pll1_80m", "video_pll1_out", };
+
+static const char * const imx8mp_gpt1_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_400m",
+						"sys_pll1_40m", "video_pll1_out", "sys_pll1_80m",
+						"audio_pll1_out", "clk_ext1" };
+
+static const char * const imx8mp_gpt2_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_400m",
+						"sys_pll1_40m", "video_pll1_out", "sys_pll1_80m",
+						"audio_pll1_out", "clk_ext2" };
+
+static const char * const imx8mp_gpt3_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_400m",
+						"sys_pll1_40m", "video_pll1_out", "sys_pll1_80m",
+						"audio_pll1_out", "clk_ext3" };
+
+static const char * const imx8mp_gpt4_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_400m",
+						"sys_pll1_40m", "video_pll1_out", "sys_pll1_80m",
+						"audio_pll1_out", "clk_ext1" };
+
+static const char * const imx8mp_gpt5_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_400m",
+						"sys_pll1_40m", "video_pll1_out", "sys_pll1_80m",
+						"audio_pll1_out", "clk_ext2" };
+
+static const char * const imx8mp_gpt6_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_400m",
+						"sys_pll1_40m", "video_pll1_out", "sys_pll1_80m",
+						"audio_pll1_out", "clk_ext3" };
+
+static const char * const imx8mp_wdog_sels[] = {"osc_24m", "sys_pll1_133m", "sys_pll1_160m",
+						"vpu_pll_out", "sys_pll2_125m", "sys_pll3_out",
+						"sys_pll1_80m", "sys_pll2_166m" };
+
+static const char * const imx8mp_wrclk_sels[] = {"osc_24m", "sys_pll1_40m", "vpu_pll_out",
+						 "sys_pll3_out", "sys_pll2_200m", "sys_pll1_266m",
+						 "sys_pll2_500m", "sys_pll1_100m" };
+
+static const char * const imx8mp_ipp_do_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "sys_pll1_133m",
+							"sys_pll1_200m", "audio_pll2_out", "sys_pll2_500m",
+							"vpu_pll_out", "sys_pll1_80m" };
+
+static const char * const imx8mp_ipp_do_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m",
+							"sys_pll1_166m", "sys_pll3_out", "audio_pll1_out",
+							"video_pll1_out", "osc_32k" };
+
+static const char * const imx8mp_hdmi_fdcc_tst_sels[] = {"osc_24m", "sys_pll1_266m", "sys_pll2_250m",
+							 "sys_pll1_800m", "sys_pll2_1000m", "sys_pll3_out",
+							 "audio_pll2_out", "video_pll1_out", };
+
+static const char * const imx8mp_hdmi_24m_sels[] = {"osc_24m", "sys_pll1_160m", "sys_pll2_50m",
+						    "sys_pll3_out", "audio_pll1_out", "video_pll1_out",
+						    "audio_pll2_out", "sys_pll1_133m", };
+
+static const char * const imx8mp_hdmi_ref_266m_sels[] = {"osc_24m", "sys_pll1_400m", "sys_pll3_out",
+							 "sys_pll2_333m", "sys_pll1_266m", "sys_pll2_200m",
+							 "audio_pll1_out", "video_pll1_out", };
+
+static const char * const imx8mp_usdhc3_sels[] = {"osc_24m", "sys_pll1_400m", "sys_pll1_800m",
+						  "sys_pll2_500m", "sys_pll3_out", "sys_pll1_266m",
+						  "audio_pll2_out", "sys_pll1_100m", };
+
+static const char * const imx8mp_media_cam1_pix_sels[] = {"osc_24m", "sys_pll1_266m", "sys_pll2_250m",
+							  "sys_pll1_800m", "sys_pll2_1000m",
+							  "sys_pll3_out", "audio_pll2_out",
+							  "video_pll1_out", };
+
+static const char * const imx8mp_media_mipi_phy1_ref_sels[] = {"osc_24m", "sys_pll2_333m", "sys_pll2_100m",
+							       "sys_pll1_800m", "sys_pll2_1000m",
+							       "clk_ext2", "audio_pll2_out",
+							       "video_pll1_out", };
+
+static const char * const imx8mp_media_disp1_pix_sels[] = {"osc_24m", "video_pll1_out", "audio_pll2_out",
+							   "audio_pll1_out", "sys_pll1_800m",
+							   "sys_pll2_1000m", "sys_pll3_out", "clk_ext4", };
+
+static const char * const imx8mp_media_cam2_pix_sels[] = {"osc_24m", "sys_pll1_266m", "sys_pll2_250m",
+							  "sys_pll1_800m", "sys_pll2_1000m",
+							  "sys_pll3_out", "audio_pll2_out",
+							  "video_pll1_out", };
+
+static const char * const imx8mp_media_ldb_sels[] = {"osc_24m", "sys_pll2_333m", "sys_pll2_100m",
+						     "sys_pll1_800m", "sys_pll2_1000m",
+						     "clk_ext2", "audio_pll2_out",
+						     "video_pll1_out", };
+
+static const char * const imx8mp_memrepair_sels[] = {"osc_24m", "sys_pll2_100m", "sys_pll1_80m",
+							"sys_pll1_800m", "sys_pll2_1000m", "sys_pll3_out",
+							"clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_media_mipi_test_byte_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll2_50m",
+								"sys_pll3_out", "sys_pll2_100m",
+								"sys_pll1_80m", "sys_pll1_160m",
+								"sys_pll1_200m", };
+
+static const char * const imx8mp_ecspi3_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_40m",
+						  "sys_pll1_160m", "sys_pll1_800m", "sys_pll3_out",
+						  "sys_pll2_250m", "audio_pll2_out", };
+
+static const char * const imx8mp_pdm_sels[] = {"osc_24m", "sys_pll2_100m", "audio_pll1_out",
+					       "sys_pll1_800m", "sys_pll2_1000m", "sys_pll3_out",
+					       "clk_ext3", "audio_pll2_out", };
+
+static const char * const imx8mp_vpu_vc8000e_sels[] = {"osc_24m", "vpu_pll_out", "sys_pll1_800m",
+						       "sys_pll2_1000m", "audio_pll2_out", "sys_pll2_125m",
+						       "sys_pll3_out", "audio_pll1_out", };
+
+static const char * const imx8mp_sai7_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out",
+						"video_pll1_out", "sys_pll1_133m", "osc_hdmi",
+						"clk_ext3", "clk_ext4", };
+
+static const char * const imx8mp_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
+
+static struct clk_hw **hws;
+static struct clk_hw_onecell_data *clk_hw_data;
+
+static const int uart_clk_ids[] = {
+	IMX8MP_CLK_UART1_ROOT,
+	IMX8MP_CLK_UART2_ROOT,
+	IMX8MP_CLK_UART3_ROOT,
+	IMX8MP_CLK_UART4_ROOT,
+};
+static struct clk **uart_clks[ARRAY_SIZE(uart_clk_ids) + 1];
+
+static int imx8mp_clocks_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct device_node *np;
+	void __iomem *anatop_base, *ccm_base;
+	int i;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx8mp-anatop");
+	anatop_base = of_iomap(np, 0);
+	of_node_put(np);
+	if (WARN_ON(!anatop_base))
+		return -ENOMEM;
+
+	np = dev->of_node;
+	ccm_base = devm_platform_ioremap_resource(pdev, 0);
+	if (WARN_ON(IS_ERR(ccm_base))) {
+		iounmap(anatop_base);
+		return PTR_ERR(ccm_base);
+	}
+
+	clk_hw_data = kzalloc(struct_size(clk_hw_data, hws, IMX8MP_CLK_END), GFP_KERNEL);
+	if (WARN_ON(!clk_hw_data)) {
+		iounmap(anatop_base);
+		return -ENOMEM;
+	}
+
+	clk_hw_data->num = IMX8MP_CLK_END;
+	hws = clk_hw_data->hws;
+
+	hws[IMX8MP_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
+	hws[IMX8MP_CLK_24M] = imx_obtain_fixed_clk_hw(np, "osc_24m");
+	hws[IMX8MP_CLK_32K] = imx_obtain_fixed_clk_hw(np, "osc_32k");
+	hws[IMX8MP_CLK_EXT1] = imx_obtain_fixed_clk_hw(np, "clk_ext1");
+	hws[IMX8MP_CLK_EXT2] = imx_obtain_fixed_clk_hw(np, "clk_ext2");
+	hws[IMX8MP_CLK_EXT3] = imx_obtain_fixed_clk_hw(np, "clk_ext3");
+	hws[IMX8MP_CLK_EXT4] = imx_obtain_fixed_clk_hw(np, "clk_ext4");
+
+	hws[IMX8MP_AUDIO_PLL1_REF_SEL] = imx_clk_hw_mux("audio_pll1_ref_sel", anatop_base + 0x0, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_AUDIO_PLL2_REF_SEL] = imx_clk_hw_mux("audio_pll2_ref_sel", anatop_base + 0x14, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_VIDEO_PLL1_REF_SEL] = imx_clk_hw_mux("video_pll1_ref_sel", anatop_base + 0x28, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_DRAM_PLL_REF_SEL] = imx_clk_hw_mux("dram_pll_ref_sel", anatop_base + 0x50, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", anatop_base + 0x64, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_VPU_PLL_REF_SEL] = imx_clk_hw_mux("vpu_pll_ref_sel", anatop_base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", anatop_base + 0x84, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_SYS_PLL1_REF_SEL] = imx_clk_hw_mux("sys_pll1_ref_sel", anatop_base + 0x94, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_SYS_PLL2_REF_SEL] = imx_clk_hw_mux("sys_pll2_ref_sel", anatop_base + 0x104, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MP_SYS_PLL3_REF_SEL] = imx_clk_hw_mux("sys_pll3_ref_sel", anatop_base + 0x114, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+
+	hws[IMX8MP_AUDIO_PLL1] = imx_clk_hw_pll14xx("audio_pll1", "audio_pll1_ref_sel", anatop_base, &imx_1443x_pll);
+	hws[IMX8MP_AUDIO_PLL2] = imx_clk_hw_pll14xx("audio_pll2", "audio_pll2_ref_sel", anatop_base + 0x14, &imx_1443x_pll);
+	hws[IMX8MP_VIDEO_PLL1] = imx_clk_hw_pll14xx("video_pll1", "video_pll1_ref_sel", anatop_base + 0x28, &imx_1443x_pll);
+	hws[IMX8MP_DRAM_PLL] = imx_clk_hw_pll14xx("dram_pll", "dram_pll_ref_sel", anatop_base + 0x50, &imx_1443x_dram_pll);
+	hws[IMX8MP_GPU_PLL] = imx_clk_hw_pll14xx("gpu_pll", "gpu_pll_ref_sel", anatop_base + 0x64, &imx_1416x_pll);
+	hws[IMX8MP_VPU_PLL] = imx_clk_hw_pll14xx("vpu_pll", "vpu_pll_ref_sel", anatop_base + 0x74, &imx_1416x_pll);
+	hws[IMX8MP_ARM_PLL] = imx_clk_hw_pll14xx("arm_pll", "arm_pll_ref_sel", anatop_base + 0x84, &imx_1416x_pll);
+	hws[IMX8MP_SYS_PLL1] = imx_clk_hw_pll14xx("sys_pll1", "sys_pll1_ref_sel", anatop_base + 0x94, &imx_1416x_pll);
+	hws[IMX8MP_SYS_PLL2] = imx_clk_hw_pll14xx("sys_pll2", "sys_pll2_ref_sel", anatop_base + 0x104, &imx_1416x_pll);
+	hws[IMX8MP_SYS_PLL3] = imx_clk_hw_pll14xx("sys_pll3", "sys_pll3_ref_sel", anatop_base + 0x114, &imx_1416x_pll);
+
+	hws[IMX8MP_AUDIO_PLL1_BYPASS] = imx_clk_hw_mux_flags("audio_pll1_bypass", anatop_base, 16, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_AUDIO_PLL2_BYPASS] = imx_clk_hw_mux_flags("audio_pll2_bypass", anatop_base + 0x14, 16, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_VIDEO_PLL1_BYPASS] = imx_clk_hw_mux_flags("video_pll1_bypass", anatop_base + 0x28, 16, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_DRAM_PLL_BYPASS] = imx_clk_hw_mux_flags("dram_pll_bypass", anatop_base + 0x50, 16, 1, dram_pll_bypass_sels, ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_GPU_PLL_BYPASS] = imx_clk_hw_mux_flags("gpu_pll_bypass", anatop_base + 0x64, 28, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_VPU_PLL_BYPASS] = imx_clk_hw_mux_flags("vpu_pll_bypass", anatop_base + 0x74, 28, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", anatop_base + 0x84, 28, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_SYS_PLL1_BYPASS] = imx_clk_hw_mux_flags("sys_pll1_bypass", anatop_base + 0x94, 28, 1, sys_pll1_bypass_sels, ARRAY_SIZE(sys_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_SYS_PLL2_BYPASS] = imx_clk_hw_mux_flags("sys_pll2_bypass", anatop_base + 0x104, 28, 1, sys_pll2_bypass_sels, ARRAY_SIZE(sys_pll2_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MP_SYS_PLL3_BYPASS] = imx_clk_hw_mux_flags("sys_pll3_bypass", anatop_base + 0x114, 28, 1, sys_pll3_bypass_sels, ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
+
+	hws[IMX8MP_AUDIO_PLL1_OUT] = imx_clk_hw_gate("audio_pll1_out", "audio_pll1_bypass", anatop_base, 13);
+	hws[IMX8MP_AUDIO_PLL2_OUT] = imx_clk_hw_gate("audio_pll2_out", "audio_pll2_bypass", anatop_base + 0x14, 13);
+	hws[IMX8MP_VIDEO_PLL1_OUT] = imx_clk_hw_gate("video_pll1_out", "video_pll1_bypass", anatop_base + 0x28, 13);
+	hws[IMX8MP_DRAM_PLL_OUT] = imx_clk_hw_gate("dram_pll_out", "dram_pll_bypass", anatop_base + 0x50, 13);
+	hws[IMX8MP_GPU_PLL_OUT] = imx_clk_hw_gate("gpu_pll_out", "gpu_pll_bypass", anatop_base + 0x64, 11);
+	hws[IMX8MP_VPU_PLL_OUT] = imx_clk_hw_gate("vpu_pll_out", "vpu_pll_bypass", anatop_base + 0x74, 11);
+	hws[IMX8MP_ARM_PLL_OUT] = imx_clk_hw_gate("arm_pll_out", "arm_pll_bypass", anatop_base + 0x84, 11);
+	hws[IMX8MP_SYS_PLL3_OUT] = imx_clk_hw_gate("sys_pll3_out", "sys_pll3_bypass", anatop_base + 0x114, 11);
+
+	hws[IMX8MP_SYS_PLL1_40M_CG] = imx_clk_hw_gate("sys_pll1_40m_cg", "sys_pll1_bypass", anatop_base + 0x94, 27);
+	hws[IMX8MP_SYS_PLL1_80M_CG] = imx_clk_hw_gate("sys_pll1_80m_cg", "sys_pll1_bypass", anatop_base + 0x94, 25);
+	hws[IMX8MP_SYS_PLL1_100M_CG] = imx_clk_hw_gate("sys_pll1_100m_cg", "sys_pll1_bypass", anatop_base + 0x94, 23);
+	hws[IMX8MP_SYS_PLL1_133M_CG] = imx_clk_hw_gate("sys_pll1_133m_cg", "sys_pll1_bypass", anatop_base + 0x94, 21);
+	hws[IMX8MP_SYS_PLL1_160M_CG] = imx_clk_hw_gate("sys_pll1_160m_cg", "sys_pll1_bypass", anatop_base + 0x94, 19);
+	hws[IMX8MP_SYS_PLL1_200M_CG] = imx_clk_hw_gate("sys_pll1_200m_cg", "sys_pll1_bypass", anatop_base + 0x94, 17);
+	hws[IMX8MP_SYS_PLL1_266M_CG] = imx_clk_hw_gate("sys_pll1_266m_cg", "sys_pll1_bypass", anatop_base + 0x94, 15);
+	hws[IMX8MP_SYS_PLL1_400M_CG] = imx_clk_hw_gate("sys_pll1_400m_cg", "sys_pll1_bypass", anatop_base + 0x94, 13);
+	hws[IMX8MP_SYS_PLL1_OUT] = imx_clk_hw_gate("sys_pll1_out", "sys_pll1_bypass", anatop_base + 0x94, 11);
+
+	hws[IMX8MP_SYS_PLL1_40M] = imx_clk_hw_fixed_factor("sys_pll1_40m", "sys_pll1_40m_cg", 1, 20);
+	hws[IMX8MP_SYS_PLL1_80M] = imx_clk_hw_fixed_factor("sys_pll1_80m", "sys_pll1_80m_cg", 1, 10);
+	hws[IMX8MP_SYS_PLL1_100M] = imx_clk_hw_fixed_factor("sys_pll1_100m", "sys_pll1_100m_cg", 1, 8);
+	hws[IMX8MP_SYS_PLL1_133M] = imx_clk_hw_fixed_factor("sys_pll1_133m", "sys_pll1_133m_cg", 1, 6);
+	hws[IMX8MP_SYS_PLL1_160M] = imx_clk_hw_fixed_factor("sys_pll1_160m", "sys_pll1_160m_cg", 1, 5);
+	hws[IMX8MP_SYS_PLL1_200M] = imx_clk_hw_fixed_factor("sys_pll1_200m", "sys_pll1_200m_cg", 1, 4);
+	hws[IMX8MP_SYS_PLL1_266M] = imx_clk_hw_fixed_factor("sys_pll1_266m", "sys_pll1_266m_cg", 1, 3);
+	hws[IMX8MP_SYS_PLL1_400M] = imx_clk_hw_fixed_factor("sys_pll1_400m", "sys_pll1_400m_cg", 1, 2);
+	hws[IMX8MP_SYS_PLL1_800M] = imx_clk_hw_fixed_factor("sys_pll1_800m", "sys_pll1_out", 1, 1);
+
+	hws[IMX8MP_SYS_PLL2_50M_CG] = imx_clk_hw_gate("sys_pll2_50m_cg", "sys_pll2_bypass", anatop_base + 0x104, 27);
+	hws[IMX8MP_SYS_PLL2_100M_CG] = imx_clk_hw_gate("sys_pll2_100m_cg", "sys_pll2_bypass", anatop_base + 0x104, 25);
+	hws[IMX8MP_SYS_PLL2_125M_CG] = imx_clk_hw_gate("sys_pll2_125m_cg", "sys_pll2_bypass", anatop_base + 0x104, 23);
+	hws[IMX8MP_SYS_PLL2_166M_CG] = imx_clk_hw_gate("sys_pll2_166m_cg", "sys_pll2_bypass", anatop_base + 0x104, 21);
+	hws[IMX8MP_SYS_PLL2_200M_CG] = imx_clk_hw_gate("sys_pll2_200m_cg", "sys_pll2_bypass", anatop_base + 0x104, 19);
+	hws[IMX8MP_SYS_PLL2_250M_CG] = imx_clk_hw_gate("sys_pll2_250m_cg", "sys_pll2_bypass", anatop_base + 0x104, 17);
+	hws[IMX8MP_SYS_PLL2_333M_CG] = imx_clk_hw_gate("sys_pll2_333m_cg", "sys_pll2_bypass", anatop_base + 0x104, 15);
+	hws[IMX8MP_SYS_PLL2_500M_CG] = imx_clk_hw_gate("sys_pll2_500m_cg", "sys_pll2_bypass", anatop_base + 0x104, 13);
+	hws[IMX8MP_SYS_PLL2_OUT] = imx_clk_hw_gate("sys_pll2_out", "sys_pll2_bypass", anatop_base + 0x104, 11);
+
+	hws[IMX8MP_SYS_PLL2_50M] = imx_clk_hw_fixed_factor("sys_pll2_50m", "sys_pll2_50m_cg", 1, 20);
+	hws[IMX8MP_SYS_PLL2_100M] = imx_clk_hw_fixed_factor("sys_pll2_100m", "sys_pll2_100m_cg", 1, 10);
+	hws[IMX8MP_SYS_PLL2_125M] = imx_clk_hw_fixed_factor("sys_pll2_125m", "sys_pll2_125m_cg", 1, 8);
+	hws[IMX8MP_SYS_PLL2_166M] = imx_clk_hw_fixed_factor("sys_pll2_166m", "sys_pll2_166m_cg", 1, 6);
+	hws[IMX8MP_SYS_PLL2_200M] = imx_clk_hw_fixed_factor("sys_pll2_200m", "sys_pll2_200m_cg", 1, 5);
+	hws[IMX8MP_SYS_PLL2_250M] = imx_clk_hw_fixed_factor("sys_pll2_250m", "sys_pll2_250m_cg", 1, 4);
+	hws[IMX8MP_SYS_PLL2_333M] = imx_clk_hw_fixed_factor("sys_pll2_333m", "sys_pll2_333m_cg", 1, 3);
+	hws[IMX8MP_SYS_PLL2_500M] = imx_clk_hw_fixed_factor("sys_pll2_500m", "sys_pll2_500m_cg", 1, 2);
+	hws[IMX8MP_SYS_PLL2_1000M] = imx_clk_hw_fixed_factor("sys_pll2_1000m", "sys_pll2_out", 1, 1);
+
+	hws[IMX8MP_CLK_A53_DIV] = imx8m_clk_hw_composite_core("arm_a53_div", imx8mp_a53_sels, ccm_base + 0x8000);
+	hws[IMX8MP_CLK_A53_SRC] = hws[IMX8MP_CLK_A53_DIV];
+	hws[IMX8MP_CLK_A53_CG] = hws[IMX8MP_CLK_A53_DIV];
+	hws[IMX8MP_CLK_M7_CORE] = imx8m_clk_hw_composite_core("m7_core", imx8mp_m7_sels, ccm_base + 0x8080);
+	hws[IMX8MP_CLK_ML_CORE] = imx8m_clk_hw_composite_core("ml_core", imx8mp_ml_sels, ccm_base + 0x8100);
+	hws[IMX8MP_CLK_ML_SRC] = hws[IMX8MP_CLK_ML_CORE];
+	hws[IMX8MP_CLK_ML_CG] = hws[IMX8MP_CLK_ML_CORE];
+	hws[IMX8MP_CLK_ML_DIV] = hws[IMX8MP_CLK_ML_CORE];
+	hws[IMX8MP_CLK_GPU3D_CORE] = imx8m_clk_hw_composite_core("gpu3d_core", imx8mp_gpu3d_core_sels, ccm_base + 0x8180);
+	hws[IMX8MP_CLK_GPU3D_CORE_SRC] = hws[IMX8MP_CLK_GPU3D_CORE];
+	hws[IMX8MP_CLK_GPU3D_CORE_CG] = hws[IMX8MP_CLK_GPU3D_CORE];
+	hws[IMX8MP_CLK_GPU3D_CORE_DIV] = hws[IMX8MP_CLK_GPU3D_CORE];
+	hws[IMX8MP_CLK_GPU3D_SHADER_CORE] = imx8m_clk_hw_composite_core("gpu3d_shader_core", imx8mp_gpu3d_shader_sels, ccm_base + 0x8200);
+	hws[IMX8MP_CLK_GPU3D_SHADER_SRC] = hws[IMX8MP_CLK_GPU3D_SHADER_CORE];
+	hws[IMX8MP_CLK_GPU3D_SHADER_CG] = hws[IMX8MP_CLK_GPU3D_SHADER_CORE];
+	hws[IMX8MP_CLK_GPU3D_SHADER_DIV] = hws[IMX8MP_CLK_GPU3D_SHADER_CORE];
+	hws[IMX8MP_CLK_GPU2D_CORE] = imx8m_clk_hw_composite_core("gpu2d_core", imx8mp_gpu2d_sels, ccm_base + 0x8280);
+	hws[IMX8MP_CLK_GPU2D_SRC] = hws[IMX8MP_CLK_GPU2D_CORE];
+	hws[IMX8MP_CLK_GPU2D_CG] = hws[IMX8MP_CLK_GPU2D_CORE];
+	hws[IMX8MP_CLK_GPU2D_DIV] = hws[IMX8MP_CLK_GPU2D_CORE];
+	hws[IMX8MP_CLK_AUDIO_AXI] = imx8m_clk_hw_composite_core("audio_axi", imx8mp_audio_axi_sels, ccm_base + 0x8300);
+	hws[IMX8MP_CLK_AUDIO_AXI_SRC] = hws[IMX8MP_CLK_AUDIO_AXI];
+	hws[IMX8MP_CLK_AUDIO_AXI_CG] = hws[IMX8MP_CLK_AUDIO_AXI];
+	hws[IMX8MP_CLK_AUDIO_AXI_DIV] = hws[IMX8MP_CLK_AUDIO_AXI];
+	hws[IMX8MP_CLK_HSIO_AXI] = imx8m_clk_hw_composite("hsio_axi", imx8mp_hsio_axi_sels, ccm_base + 0x8380);
+	hws[IMX8MP_CLK_MEDIA_ISP] = imx8m_clk_hw_composite("media_isp", imx8mp_media_isp_sels, ccm_base + 0x8400);
+
+	/* CORE SEL */
+	hws[IMX8MP_CLK_A53_CORE] = imx_clk_hw_mux2("arm_a53_core", ccm_base + 0x9880, 24, 1, imx8mp_a53_core_sels, ARRAY_SIZE(imx8mp_a53_core_sels));
+
+	hws[IMX8MP_CLK_MAIN_AXI] = imx8m_clk_hw_composite_bus_critical("main_axi", imx8mp_main_axi_sels, ccm_base + 0x8800);
+	hws[IMX8MP_CLK_ENET_AXI] = imx8m_clk_hw_composite_bus("enet_axi", imx8mp_enet_axi_sels, ccm_base + 0x8880);
+	hws[IMX8MP_CLK_NAND_USDHC_BUS] = imx8m_clk_hw_composite_bus_critical("nand_usdhc_bus", imx8mp_nand_usdhc_sels, ccm_base + 0x8900);
+	hws[IMX8MP_CLK_VPU_BUS] = imx8m_clk_hw_composite_bus("vpu_bus", imx8mp_vpu_bus_sels, ccm_base + 0x8980);
+	hws[IMX8MP_CLK_MEDIA_AXI] = imx8m_clk_hw_composite_bus("media_axi", imx8mp_media_axi_sels, ccm_base + 0x8a00);
+	hws[IMX8MP_CLK_MEDIA_APB] = imx8m_clk_hw_composite_bus("media_apb", imx8mp_media_apb_sels, ccm_base + 0x8a80);
+	hws[IMX8MP_CLK_HDMI_APB] = imx8m_clk_hw_composite_bus("hdmi_apb", imx8mp_media_apb_sels, ccm_base + 0x8b00);
+	hws[IMX8MP_CLK_HDMI_AXI] = imx8m_clk_hw_composite_bus("hdmi_axi", imx8mp_media_axi_sels, ccm_base + 0x8b80);
+	hws[IMX8MP_CLK_GPU_AXI] = imx8m_clk_hw_composite_bus("gpu_axi", imx8mp_gpu_axi_sels, ccm_base + 0x8c00);
+	hws[IMX8MP_CLK_GPU_AHB] = imx8m_clk_hw_composite_bus("gpu_ahb", imx8mp_gpu_ahb_sels, ccm_base + 0x8c80);
+	hws[IMX8MP_CLK_NOC] = imx8m_clk_hw_composite_bus_critical("noc", imx8mp_noc_sels, ccm_base + 0x8d00);
+	hws[IMX8MP_CLK_NOC_IO] = imx8m_clk_hw_composite_bus_critical("noc_io", imx8mp_noc_io_sels, ccm_base + 0x8d80);
+	hws[IMX8MP_CLK_ML_AXI] = imx8m_clk_hw_composite_bus("ml_axi", imx8mp_ml_axi_sels, ccm_base + 0x8e00);
+	hws[IMX8MP_CLK_ML_AHB] = imx8m_clk_hw_composite_bus("ml_ahb", imx8mp_ml_ahb_sels, ccm_base + 0x8e80);
+
+	hws[IMX8MP_CLK_AHB] = imx8m_clk_hw_composite_bus_critical("ahb_root", imx8mp_ahb_sels, ccm_base + 0x9000);
+	hws[IMX8MP_CLK_AUDIO_AHB] = imx8m_clk_hw_composite_bus("audio_ahb", imx8mp_audio_ahb_sels, ccm_base + 0x9100);
+	hws[IMX8MP_CLK_MIPI_DSI_ESC_RX] = imx8m_clk_hw_composite_bus("mipi_dsi_esc_rx", imx8mp_mipi_dsi_esc_rx_sels, ccm_base + 0x9200);
+	hws[IMX8MP_CLK_MEDIA_DISP2_PIX] = imx8m_clk_hw_composite("media_disp2_pix", imx8mp_media_disp2_pix_sels, ccm_base + 0x9300);
+
+	hws[IMX8MP_CLK_IPG_ROOT] = imx_clk_hw_divider2("ipg_root", "ahb_root", ccm_base + 0x9080, 0, 1);
+
+	hws[IMX8MP_CLK_DRAM_ALT] = imx8m_clk_hw_composite("dram_alt", imx8mp_dram_alt_sels, ccm_base + 0xa000);
+	hws[IMX8MP_CLK_DRAM_APB] = imx8m_clk_hw_composite_critical("dram_apb", imx8mp_dram_apb_sels, ccm_base + 0xa080);
+	hws[IMX8MP_CLK_VPU_G1] = imx8m_clk_hw_composite("vpu_g1", imx8mp_vpu_g1_sels, ccm_base + 0xa100);
+	hws[IMX8MP_CLK_VPU_G2] = imx8m_clk_hw_composite("vpu_g2", imx8mp_vpu_g2_sels, ccm_base + 0xa180);
+	hws[IMX8MP_CLK_CAN1] = imx8m_clk_hw_composite("can1", imx8mp_can1_sels, ccm_base + 0xa200);
+	hws[IMX8MP_CLK_CAN2] = imx8m_clk_hw_composite("can2", imx8mp_can2_sels, ccm_base + 0xa280);
+	hws[IMX8MP_CLK_PCIE_AUX] = imx8m_clk_hw_composite("pcie_aux", imx8mp_pcie_aux_sels, ccm_base + 0xa400);
+	hws[IMX8MP_CLK_I2C5] = imx8m_clk_hw_composite("i2c5", imx8mp_i2c5_sels, ccm_base + 0xa480);
+	hws[IMX8MP_CLK_I2C6] = imx8m_clk_hw_composite("i2c6", imx8mp_i2c6_sels, ccm_base + 0xa500);
+	hws[IMX8MP_CLK_SAI1] = imx8m_clk_hw_composite("sai1", imx8mp_sai1_sels, ccm_base + 0xa580);
+	hws[IMX8MP_CLK_SAI2] = imx8m_clk_hw_composite("sai2", imx8mp_sai2_sels, ccm_base + 0xa600);
+	hws[IMX8MP_CLK_SAI3] = imx8m_clk_hw_composite("sai3", imx8mp_sai3_sels, ccm_base + 0xa680);
+	hws[IMX8MP_CLK_SAI4] = imx8m_clk_hw_composite("sai4", imx8mp_sai4_sels, ccm_base + 0xa700);
+	hws[IMX8MP_CLK_SAI5] = imx8m_clk_hw_composite("sai5", imx8mp_sai5_sels, ccm_base + 0xa780);
+	hws[IMX8MP_CLK_SAI6] = imx8m_clk_hw_composite("sai6", imx8mp_sai6_sels, ccm_base + 0xa800);
+	hws[IMX8MP_CLK_ENET_QOS] = imx8m_clk_hw_composite("enet_qos", imx8mp_enet_qos_sels, ccm_base + 0xa880);
+	hws[IMX8MP_CLK_ENET_QOS_TIMER] = imx8m_clk_hw_composite("enet_qos_timer", imx8mp_enet_qos_timer_sels, ccm_base + 0xa900);
+	hws[IMX8MP_CLK_ENET_REF] = imx8m_clk_hw_composite("enet_ref", imx8mp_enet_ref_sels, ccm_base + 0xa980);
+	hws[IMX8MP_CLK_ENET_TIMER] = imx8m_clk_hw_composite("enet_timer", imx8mp_enet_timer_sels, ccm_base + 0xaa00);
+	hws[IMX8MP_CLK_ENET_PHY_REF] = imx8m_clk_hw_composite("enet_phy_ref", imx8mp_enet_phy_ref_sels, ccm_base + 0xaa80);
+	hws[IMX8MP_CLK_NAND] = imx8m_clk_hw_composite("nand", imx8mp_nand_sels, ccm_base + 0xab00);
+	hws[IMX8MP_CLK_QSPI] = imx8m_clk_hw_composite("qspi", imx8mp_qspi_sels, ccm_base + 0xab80);
+	hws[IMX8MP_CLK_USDHC1] = imx8m_clk_hw_composite("usdhc1", imx8mp_usdhc1_sels, ccm_base + 0xac00);
+	hws[IMX8MP_CLK_USDHC2] = imx8m_clk_hw_composite("usdhc2", imx8mp_usdhc2_sels, ccm_base + 0xac80);
+	hws[IMX8MP_CLK_I2C1] = imx8m_clk_hw_composite("i2c1", imx8mp_i2c1_sels, ccm_base + 0xad00);
+	hws[IMX8MP_CLK_I2C2] = imx8m_clk_hw_composite("i2c2", imx8mp_i2c2_sels, ccm_base + 0xad80);
+	hws[IMX8MP_CLK_I2C3] = imx8m_clk_hw_composite("i2c3", imx8mp_i2c3_sels, ccm_base + 0xae00);
+	hws[IMX8MP_CLK_I2C4] = imx8m_clk_hw_composite("i2c4", imx8mp_i2c4_sels, ccm_base + 0xae80);
+
+	hws[IMX8MP_CLK_UART1] = imx8m_clk_hw_composite("uart1", imx8mp_uart1_sels, ccm_base + 0xaf00);
+	hws[IMX8MP_CLK_UART2] = imx8m_clk_hw_composite("uart2", imx8mp_uart2_sels, ccm_base + 0xaf80);
+	hws[IMX8MP_CLK_UART3] = imx8m_clk_hw_composite("uart3", imx8mp_uart3_sels, ccm_base + 0xb000);
+	hws[IMX8MP_CLK_UART4] = imx8m_clk_hw_composite("uart4", imx8mp_uart4_sels, ccm_base + 0xb080);
+	hws[IMX8MP_CLK_USB_CORE_REF] = imx8m_clk_hw_composite("usb_core_ref", imx8mp_usb_core_ref_sels, ccm_base + 0xb100);
+	hws[IMX8MP_CLK_USB_PHY_REF] = imx8m_clk_hw_composite("usb_phy_ref", imx8mp_usb_phy_ref_sels, ccm_base + 0xb180);
+	hws[IMX8MP_CLK_GIC] = imx8m_clk_hw_composite_critical("gic", imx8mp_gic_sels, ccm_base + 0xb200);
+	hws[IMX8MP_CLK_ECSPI1] = imx8m_clk_hw_composite("ecspi1", imx8mp_ecspi1_sels, ccm_base + 0xb280);
+	hws[IMX8MP_CLK_ECSPI2] = imx8m_clk_hw_composite("ecspi2", imx8mp_ecspi2_sels, ccm_base + 0xb300);
+	hws[IMX8MP_CLK_PWM1] = imx8m_clk_hw_composite("pwm1", imx8mp_pwm1_sels, ccm_base + 0xb380);
+	hws[IMX8MP_CLK_PWM2] = imx8m_clk_hw_composite("pwm2", imx8mp_pwm2_sels, ccm_base + 0xb400);
+	hws[IMX8MP_CLK_PWM3] = imx8m_clk_hw_composite("pwm3", imx8mp_pwm3_sels, ccm_base + 0xb480);
+	hws[IMX8MP_CLK_PWM4] = imx8m_clk_hw_composite("pwm4", imx8mp_pwm4_sels, ccm_base + 0xb500);
+
+	hws[IMX8MP_CLK_GPT1] = imx8m_clk_hw_composite("gpt1", imx8mp_gpt1_sels, ccm_base + 0xb580);
+	hws[IMX8MP_CLK_GPT2] = imx8m_clk_hw_composite("gpt2", imx8mp_gpt2_sels, ccm_base + 0xb600);
+	hws[IMX8MP_CLK_GPT3] = imx8m_clk_hw_composite("gpt3", imx8mp_gpt3_sels, ccm_base + 0xb680);
+	hws[IMX8MP_CLK_GPT4] = imx8m_clk_hw_composite("gpt4", imx8mp_gpt4_sels, ccm_base + 0xb700);
+	hws[IMX8MP_CLK_GPT5] = imx8m_clk_hw_composite("gpt5", imx8mp_gpt5_sels, ccm_base + 0xb780);
+	hws[IMX8MP_CLK_GPT6] = imx8m_clk_hw_composite("gpt6", imx8mp_gpt6_sels, ccm_base + 0xb800);
+	hws[IMX8MP_CLK_WDOG] = imx8m_clk_hw_composite("wdog", imx8mp_wdog_sels, ccm_base + 0xb900);
+	hws[IMX8MP_CLK_WRCLK] = imx8m_clk_hw_composite("wrclk", imx8mp_wrclk_sels, ccm_base + 0xb980);
+	hws[IMX8MP_CLK_IPP_DO_CLKO1] = imx8m_clk_hw_composite("ipp_do_clko1", imx8mp_ipp_do_clko1_sels, ccm_base + 0xba00);
+	hws[IMX8MP_CLK_IPP_DO_CLKO2] = imx8m_clk_hw_composite("ipp_do_clko2", imx8mp_ipp_do_clko2_sels, ccm_base + 0xba80);
+	hws[IMX8MP_CLK_HDMI_FDCC_TST] = imx8m_clk_hw_composite("hdmi_fdcc_tst", imx8mp_hdmi_fdcc_tst_sels, ccm_base + 0xbb00);
+	hws[IMX8MP_CLK_HDMI_24M] = imx8m_clk_hw_composite("hdmi_24m", imx8mp_hdmi_24m_sels, ccm_base + 0xbb80);
+	hws[IMX8MP_CLK_HDMI_REF_266M] = imx8m_clk_hw_composite("hdmi_ref_266m", imx8mp_hdmi_ref_266m_sels, ccm_base + 0xbc00);
+	hws[IMX8MP_CLK_USDHC3] = imx8m_clk_hw_composite("usdhc3", imx8mp_usdhc3_sels, ccm_base + 0xbc80);
+	hws[IMX8MP_CLK_MEDIA_CAM1_PIX] = imx8m_clk_hw_composite("media_cam1_pix", imx8mp_media_cam1_pix_sels, ccm_base + 0xbd00);
+	hws[IMX8MP_CLK_MEDIA_MIPI_PHY1_REF] = imx8m_clk_hw_composite("media_mipi_phy1_ref", imx8mp_media_mipi_phy1_ref_sels, ccm_base + 0xbd80);
+	hws[IMX8MP_CLK_MEDIA_DISP1_PIX] = imx8m_clk_hw_composite("media_disp1_pix", imx8mp_media_disp1_pix_sels, ccm_base + 0xbe00);
+	hws[IMX8MP_CLK_MEDIA_CAM2_PIX] = imx8m_clk_hw_composite("media_cam2_pix", imx8mp_media_cam2_pix_sels, ccm_base + 0xbe80);
+	hws[IMX8MP_CLK_MEDIA_LDB] = imx8m_clk_hw_composite("media_ldb", imx8mp_media_ldb_sels, ccm_base + 0xbf00);
+	hws[IMX8MP_CLK_MEMREPAIR] = imx8m_clk_hw_composite_critical("mem_repair", imx8mp_memrepair_sels, ccm_base + 0xbf80);
+	hws[IMX8MP_CLK_MEDIA_MIPI_TEST_BYTE] = imx8m_clk_hw_composite("media_mipi_test_byte", imx8mp_media_mipi_test_byte_sels, ccm_base + 0xc100);
+	hws[IMX8MP_CLK_ECSPI3] = imx8m_clk_hw_composite("ecspi3", imx8mp_ecspi3_sels, ccm_base + 0xc180);
+	hws[IMX8MP_CLK_PDM] = imx8m_clk_hw_composite("pdm", imx8mp_pdm_sels, ccm_base + 0xc200);
+	hws[IMX8MP_CLK_VPU_VC8000E] = imx8m_clk_hw_composite("vpu_vc8000e", imx8mp_vpu_vc8000e_sels, ccm_base + 0xc280);
+	hws[IMX8MP_CLK_SAI7] = imx8m_clk_hw_composite("sai7", imx8mp_sai7_sels, ccm_base + 0xc300);
+
+	hws[IMX8MP_CLK_DRAM_ALT_ROOT] = imx_clk_hw_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
+	hws[IMX8MP_CLK_DRAM_CORE] = imx_clk_hw_mux2_flags("dram_core_clk", ccm_base + 0x9800, 24, 1, imx8mp_dram_core_sels, ARRAY_SIZE(imx8mp_dram_core_sels), CLK_IS_CRITICAL);
+
+	hws[IMX8MP_CLK_DRAM1_ROOT] = imx_clk_hw_gate4_flags("dram1_root_clk", "dram_core_clk", ccm_base + 0x4050, 0, CLK_IS_CRITICAL);
+	hws[IMX8MP_CLK_ECSPI1_ROOT] = imx_clk_hw_gate4("ecspi1_root_clk", "ecspi1", ccm_base + 0x4070, 0);
+	hws[IMX8MP_CLK_ECSPI2_ROOT] = imx_clk_hw_gate4("ecspi2_root_clk", "ecspi2", ccm_base + 0x4080, 0);
+	hws[IMX8MP_CLK_ECSPI3_ROOT] = imx_clk_hw_gate4("ecspi3_root_clk", "ecspi3", ccm_base + 0x4090, 0);
+	hws[IMX8MP_CLK_ENET1_ROOT] = imx_clk_hw_gate4("enet1_root_clk", "enet_axi", ccm_base + 0x40a0, 0);
+	hws[IMX8MP_CLK_GPIO1_ROOT] = imx_clk_hw_gate4("gpio1_root_clk", "ipg_root", ccm_base + 0x40b0, 0);
+	hws[IMX8MP_CLK_GPIO2_ROOT] = imx_clk_hw_gate4("gpio2_root_clk", "ipg_root", ccm_base + 0x40c0, 0);
+	hws[IMX8MP_CLK_GPIO3_ROOT] = imx_clk_hw_gate4("gpio3_root_clk", "ipg_root", ccm_base + 0x40d0, 0);
+	hws[IMX8MP_CLK_GPIO4_ROOT] = imx_clk_hw_gate4("gpio4_root_clk", "ipg_root", ccm_base + 0x40e0, 0);
+	hws[IMX8MP_CLK_GPIO5_ROOT] = imx_clk_hw_gate4("gpio5_root_clk", "ipg_root", ccm_base + 0x40f0, 0);
+	hws[IMX8MP_CLK_GPT1_ROOT] = imx_clk_hw_gate4("gpt1_root_clk", "gpt1", ccm_base + 0x4100, 0);
+	hws[IMX8MP_CLK_GPT2_ROOT] = imx_clk_hw_gate4("gpt2_root_clk", "gpt2", ccm_base + 0x4110, 0);
+	hws[IMX8MP_CLK_GPT3_ROOT] = imx_clk_hw_gate4("gpt3_root_clk", "gpt3", ccm_base + 0x4120, 0);
+	hws[IMX8MP_CLK_GPT4_ROOT] = imx_clk_hw_gate4("gpt4_root_clk", "gpt4", ccm_base + 0x4130, 0);
+	hws[IMX8MP_CLK_GPT5_ROOT] = imx_clk_hw_gate4("gpt5_root_clk", "gpt5", ccm_base + 0x4140, 0);
+	hws[IMX8MP_CLK_GPT6_ROOT] = imx_clk_hw_gate4("gpt6_root_clk", "gpt6", ccm_base + 0x4150, 0);
+	hws[IMX8MP_CLK_I2C1_ROOT] = imx_clk_hw_gate4("i2c1_root_clk", "i2c1", ccm_base + 0x4170, 0);
+	hws[IMX8MP_CLK_I2C2_ROOT] = imx_clk_hw_gate4("i2c2_root_clk", "i2c2", ccm_base + 0x4180, 0);
+	hws[IMX8MP_CLK_I2C3_ROOT] = imx_clk_hw_gate4("i2c3_root_clk", "i2c3", ccm_base + 0x4190, 0);
+	hws[IMX8MP_CLK_I2C4_ROOT] = imx_clk_hw_gate4("i2c4_root_clk", "i2c4", ccm_base + 0x41a0, 0);
+	hws[IMX8MP_CLK_MU_ROOT] = imx_clk_hw_gate4("mu_root_clk", "ipg_root", ccm_base + 0x4210, 0);
+	hws[IMX8MP_CLK_OCOTP_ROOT] = imx_clk_hw_gate4("ocotp_root_clk", "ipg_root", ccm_base + 0x4220, 0);
+	hws[IMX8MP_CLK_PCIE_ROOT] = imx_clk_hw_gate4("pcie_root_clk", "pcie_aux", ccm_base + 0x4250, 0);
+	hws[IMX8MP_CLK_PWM1_ROOT] = imx_clk_hw_gate4("pwm1_root_clk", "pwm1", ccm_base + 0x4280, 0);
+	hws[IMX8MP_CLK_PWM2_ROOT] = imx_clk_hw_gate4("pwm2_root_clk", "pwm2", ccm_base + 0x4290, 0);
+	hws[IMX8MP_CLK_PWM3_ROOT] = imx_clk_hw_gate4("pwm3_root_clk", "pwm3", ccm_base + 0x42a0, 0);
+	hws[IMX8MP_CLK_PWM4_ROOT] = imx_clk_hw_gate4("pwm4_root_clk", "pwm4", ccm_base + 0x42b0, 0);
+	hws[IMX8MP_CLK_QOS_ROOT] = imx_clk_hw_gate4("qos_root_clk", "ipg_root", ccm_base + 0x42c0, 0);
+	hws[IMX8MP_CLK_QOS_ENET_ROOT] = imx_clk_hw_gate4("qos_enet_root_clk", "ipg_root", ccm_base + 0x42e0, 0);
+	hws[IMX8MP_CLK_QSPI_ROOT] = imx_clk_hw_gate4("qspi_root_clk", "qspi", ccm_base + 0x42f0, 0);
+	hws[IMX8MP_CLK_NAND_ROOT] = imx_clk_hw_gate2_shared2("nand_root_clk", "nand", ccm_base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MP_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_hw_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", ccm_base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MP_CLK_I2C5_ROOT] = imx_clk_hw_gate2("i2c5_root_clk", "i2c5", ccm_base + 0x4330, 0);
+	hws[IMX8MP_CLK_I2C6_ROOT] = imx_clk_hw_gate2("i2c6_root_clk", "i2c6", ccm_base + 0x4340, 0);
+	hws[IMX8MP_CLK_CAN1_ROOT] = imx_clk_hw_gate2("can1_root_clk", "can1", ccm_base + 0x4350, 0);
+	hws[IMX8MP_CLK_CAN2_ROOT] = imx_clk_hw_gate2("can2_root_clk", "can2", ccm_base + 0x4360, 0);
+	hws[IMX8MP_CLK_SDMA1_ROOT] = imx_clk_hw_gate4("sdma1_root_clk", "ipg_root", ccm_base + 0x43a0, 0);
+	hws[IMX8MP_CLK_ENET_QOS_ROOT] = imx_clk_hw_gate4("enet_qos_root_clk", "sim_enet_root_clk", ccm_base + 0x43b0, 0);
+	hws[IMX8MP_CLK_SIM_ENET_ROOT] = imx_clk_hw_gate4("sim_enet_root_clk", "enet_axi", ccm_base + 0x4400, 0);
+	hws[IMX8MP_CLK_GPU2D_ROOT] = imx_clk_hw_gate4("gpu2d_root_clk", "gpu2d_core", ccm_base + 0x4450, 0);
+	hws[IMX8MP_CLK_GPU3D_ROOT] = imx_clk_hw_gate4("gpu3d_root_clk", "gpu3d_core", ccm_base + 0x4460, 0);
+	hws[IMX8MP_CLK_SNVS_ROOT] = imx_clk_hw_gate4("snvs_root_clk", "ipg_root", ccm_base + 0x4470, 0);
+	hws[IMX8MP_CLK_UART1_ROOT] = imx_clk_hw_gate4("uart1_root_clk", "uart1", ccm_base + 0x4490, 0);
+	hws[IMX8MP_CLK_UART2_ROOT] = imx_clk_hw_gate4("uart2_root_clk", "uart2", ccm_base + 0x44a0, 0);
+	hws[IMX8MP_CLK_UART3_ROOT] = imx_clk_hw_gate4("uart3_root_clk", "uart3", ccm_base + 0x44b0, 0);
+	hws[IMX8MP_CLK_UART4_ROOT] = imx_clk_hw_gate4("uart4_root_clk", "uart4", ccm_base + 0x44c0, 0);
+	hws[IMX8MP_CLK_USB_ROOT] = imx_clk_hw_gate4("usb_root_clk", "osc_32k", ccm_base + 0x44d0, 0);
+	hws[IMX8MP_CLK_USB_PHY_ROOT] = imx_clk_hw_gate4("usb_phy_root_clk", "usb_phy_ref", ccm_base + 0x44f0, 0);
+	hws[IMX8MP_CLK_USDHC1_ROOT] = imx_clk_hw_gate4("usdhc1_root_clk", "usdhc1", ccm_base + 0x4510, 0);
+	hws[IMX8MP_CLK_USDHC2_ROOT] = imx_clk_hw_gate4("usdhc2_root_clk", "usdhc2", ccm_base + 0x4520, 0);
+	hws[IMX8MP_CLK_WDOG1_ROOT] = imx_clk_hw_gate4("wdog1_root_clk", "wdog", ccm_base + 0x4530, 0);
+	hws[IMX8MP_CLK_WDOG2_ROOT] = imx_clk_hw_gate4("wdog2_root_clk", "wdog", ccm_base + 0x4540, 0);
+	hws[IMX8MP_CLK_WDOG3_ROOT] = imx_clk_hw_gate4("wdog3_root_clk", "wdog", ccm_base + 0x4550, 0);
+	hws[IMX8MP_CLK_VPU_G1_ROOT] = imx_clk_hw_gate4("vpu_g1_root_clk", "vpu_g1", ccm_base + 0x4560, 0);
+	hws[IMX8MP_CLK_GPU_ROOT] = imx_clk_hw_gate4("gpu_root_clk", "gpu_axi", ccm_base + 0x4570, 0);
+	hws[IMX8MP_CLK_VPU_VC8KE_ROOT] = imx_clk_hw_gate4("vpu_vc8ke_root_clk", "vpu_vc8000e", ccm_base + 0x4590, 0);
+	hws[IMX8MP_CLK_VPU_G2_ROOT] = imx_clk_hw_gate4("vpu_g2_root_clk", "vpu_g2", ccm_base + 0x45a0, 0);
+	hws[IMX8MP_CLK_NPU_ROOT] = imx_clk_hw_gate4("npu_root_clk", "ml_core", ccm_base + 0x45b0, 0);
+	hws[IMX8MP_CLK_HSIO_ROOT] = imx_clk_hw_gate4("hsio_root_clk", "ipg_root", ccm_base + 0x45c0, 0);
+	hws[IMX8MP_CLK_MEDIA_APB_ROOT] = imx_clk_hw_gate2_shared2("media_apb_root_clk", "media_apb", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_AXI_ROOT] = imx_clk_hw_gate2_shared2("media_axi_root_clk", "media_axi", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT] = imx_clk_hw_gate2_shared2("media_cam1_pix_root_clk", "media_cam1_pix", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT] = imx_clk_hw_gate2_shared2("media_cam2_pix_root_clk", "media_cam2_pix", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT] = imx_clk_hw_gate2_shared2("media_disp1_pix_root_clk", "media_disp1_pix", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT] = imx_clk_hw_gate2_shared2("media_disp2_pix_root_clk", "media_disp2_pix", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_LDB_ROOT] = imx_clk_hw_gate2_shared2("media_ldb_root_clk", "media_ldb", ccm_base + 0x45d0, 0, &share_count_media);
+	hws[IMX8MP_CLK_MEDIA_ISP_ROOT] = imx_clk_hw_gate2_shared2("media_isp_root_clk", "media_isp", ccm_base + 0x45d0, 0, &share_count_media);
+
+	hws[IMX8MP_CLK_USDHC3_ROOT] = imx_clk_hw_gate4("usdhc3_root_clk", "usdhc3", ccm_base + 0x45e0, 0);
+	hws[IMX8MP_CLK_HDMI_ROOT] = imx_clk_hw_gate4("hdmi_root_clk", "hdmi_axi", ccm_base + 0x45f0, 0);
+	hws[IMX8MP_CLK_TSENSOR_ROOT] = imx_clk_hw_gate4("tsensor_root_clk", "ipg_root", ccm_base + 0x4620, 0);
+	hws[IMX8MP_CLK_VPU_ROOT] = imx_clk_hw_gate4("vpu_root_clk", "vpu_bus", ccm_base + 0x4630, 0);
+	hws[IMX8MP_CLK_AUDIO_ROOT] = imx_clk_hw_gate4("audio_root_clk", "audio_ahb", ccm_base + 0x4650, 0);
+
+	hws[IMX8MP_CLK_ARM] = imx_clk_hw_cpu("arm", "arm_a53_core",
+					     hws[IMX8MP_CLK_A53_CORE]->clk,
+					     hws[IMX8MP_CLK_A53_CORE]->clk,
+					     hws[IMX8MP_ARM_PLL_OUT]->clk,
+					     hws[IMX8MP_CLK_A53_DIV]->clk);
+
+	imx_check_clk_hws(hws, IMX8MP_CLK_END);
+
+	of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_hw_data);
+
+	for (i = 0; i < ARRAY_SIZE(uart_clk_ids); i++) {
+		int index = uart_clk_ids[i];
+
+		uart_clks[i] = &hws[index]->clk;
+	}
+
+	imx_register_uart_clocks(uart_clks);
+
+	return 0;
+}
+
+static const struct of_device_id imx8mp_clk_of_match[] = {
+	{ .compatible = "fsl,imx8mp-ccm" },
+	{ /* Sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx8mp_clk_of_match);
+
+static struct platform_driver imx8mp_clk_driver = {
+	.probe = imx8mp_clocks_probe,
+	.driver = {
+		.name = "imx8mp-ccm",
+		/*
+		 * Disable bind attributes: clocks are not removed and
+		 * reloading the driver will crash or break devices.
+		 */
+		.suppress_bind_attrs = true,
+		.of_match_table = imx8mp_clk_of_match,
+	},
+};
+module_platform_driver(imx8mp_clk_driver);
+
+MODULE_AUTHOR("Anson Huang <Anson.Huang@nxp.com>");
+MODULE_DESCRIPTION("NXP i.MX8MP clock driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx8mq.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx8mq.c
@@ -5,12 +5,13 @@
  */
 
 #include <dt-bindings/clock/imx8mq-clock.h>
-#include <linux/clk.h>
+#include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/of_address.h>
 #include <linux/types.h>
+#include <linux/slab.h>
 #include <linux/platform_device.h>
 
 #include "clk.h"
@@ -24,9 +25,7 @@
 static u32 share_count_dcss;
 static u32 share_count_nand;
 
-static struct clk *clks[IMX8MQ_CLK_END];
-
-static const char * const pll_ref_sels[] = { "osc_25m", "osc_27m", "dummy", "dummy", };
+static const char * const pll_ref_sels[] = { "osc_25m", "osc_27m", "phy_27m", "dummy", };
 static const char * const arm_pll_bypass_sels[] = {"arm_pll", "arm_pll_ref_sel", };
 static const char * const gpu_pll_bypass_sels[] = {"gpu_pll", "gpu_pll_ref_sel", };
 static const char * const vpu_pll_bypass_sels[] = {"vpu_pll", "vpu_pll_ref_sel", };
@@ -34,15 +33,16 @@
 static const char * const audio_pll2_bypass_sels[] = {"audio_pll2", "audio_pll2_ref_sel", };
 static const char * const video_pll1_bypass_sels[] = {"video_pll1", "video_pll1_ref_sel", };
 
-static const char * const sys1_pll_out_sels[] = {"sys1_pll1_ref_sel", };
-static const char * const sys2_pll_out_sels[] = {"sys1_pll1_ref_sel", "sys2_pll1_ref_sel", };
-static const char * const sys3_pll_out_sels[] = {"sys3_pll1_ref_sel", "sys2_pll1_ref_sel", };
+static const char * const sys3_pll_out_sels[] = {"sys3_pll1_ref_sel", };
 static const char * const dram_pll_out_sels[] = {"dram_pll1_ref_sel", };
+static const char * const video2_pll_out_sels[] = {"video2_pll1_ref_sel", };
 
 /* CCM ROOT */
 static const char * const imx8mq_a53_sels[] = {"osc_25m", "arm_pll_out", "sys2_pll_500m", "sys2_pll_1000m",
 					"sys1_pll_800m", "sys1_pll_400m", "audio_pll1_out", "sys3_pll_out", };
 
+static const char * const imx8mq_a53_core_sels[] = {"arm_a53_div", "arm_pll_out", };
+
 static const char * const imx8mq_arm_m4_sels[] = {"osc_25m", "sys2_pll_200m", "sys2_pll_250m", "sys1_pll_266m",
 					"sys1_pll_800m", "audio_pll1_out", "video_pll1_out", "sys3_pll_out", };
 
@@ -113,12 +113,12 @@
 static const char * const imx8mq_disp_dc8000_sels[] = {"osc_25m", "vpu_pll_out", "sys1_pll_800m", "sys2_pll_1000m", "sys1_pll_160m", "sys2_pll_100m", "sys3_pll_out", "audio_pll2_out", };
 
 static const char * const imx8mq_pcie1_ctrl_sels[] = {"osc_25m", "sys2_pll_250m", "sys2_pll_200m", "sys1_pll_266m",
-					       "sys1_pll_800m", "sys2_pll_500m", "sys2_pll_250m", "sys3_pll_out", };
+					       "sys1_pll_800m", "sys2_pll_500m", "sys2_pll_333m", "sys3_pll_out", };
 
 static const char * const imx8mq_pcie1_phy_sels[] = {"osc_25m", "sys2_pll_100m", "sys2_pll_500m", "clk_ext1", "clk_ext2",
 					      "clk_ext3", "clk_ext4", };
 
-static const char * const imx8mq_pcie1_aux_sels[] = {"osc_25m", "sys2_pll_200m", "sys2_pll_500m", "sys3_pll_out",
+static const char * const imx8mq_pcie1_aux_sels[] = {"osc_25m", "sys2_pll_200m", "sys2_pll_50m", "sys3_pll_out",
 					      "sys2_pll_100m", "sys1_pll_80m", "sys1_pll_160m", "sys1_pll_200m", };
 
 static const char * const imx8mq_dc_pixel_sels[] = {"osc_25m", "video_pll1_out", "audio_pll2_out", "audio_pll1_out", "sys1_pll_800m", "sys2_pll_1000m", "sys3_pll_out", "clk_ext4", };
@@ -157,10 +157,10 @@
 					 "audio_pll2_out", "sys1_pll_266m", "sys3_pll_out", "sys1_pll_100m", };
 
 static const char * const imx8mq_usdhc1_sels[] = {"osc_25m", "sys1_pll_400m", "sys1_pll_800m", "sys2_pll_500m",
-					 "audio_pll2_out", "sys1_pll_266m", "sys3_pll_out", "sys1_pll_100m", };
+					 "sys3_pll_out", "sys1_pll_266m", "audio_pll2_out", "sys1_pll_100m", };
 
 static const char * const imx8mq_usdhc2_sels[] = {"osc_25m", "sys1_pll_400m", "sys1_pll_800m", "sys2_pll_500m",
-					 "audio_pll2_out", "sys1_pll_266m", "sys3_pll_out", "sys1_pll_100m", };
+					 "sys3_pll_out", "sys1_pll_266m", "audio_pll2_out", "sys1_pll_100m", };
 
 static const char * const imx8mq_i2c1_sels[] = {"osc_25m", "sys1_pll_160m", "sys2_pll_50m", "sys3_pll_out", "audio_pll1_out",
 					 "video_pll1_out", "audio_pll2_out", "sys1_pll_133m", };
@@ -270,102 +270,157 @@
 static const char * const imx8mq_clko2_sels[] = {"osc_25m", "sys2_pll_200m", "sys1_pll_400m", "sys2_pll_166m",
 					  "sys3_pll_out", "audio_pll1_out", "video_pll1_out", "ckil", };
 
-static struct clk_onecell_data clk_data;
-
-static struct clk ** const uart_clks[] = {
-	&clks[IMX8MQ_CLK_UART1_ROOT],
-	&clks[IMX8MQ_CLK_UART2_ROOT],
-	&clks[IMX8MQ_CLK_UART3_ROOT],
-	&clks[IMX8MQ_CLK_UART4_ROOT],
-	NULL
+static const char * const pllout_monitor_sels[] = {"osc_25m", "osc_27m", "dummy", "dummy", "ckil",
+						   "audio_pll1_out_monitor", "audio_pll2_out_monitor",
+						   "video_pll1_out_monitor", "gpu_pll_out_monitor",
+						   "vpu_pll_out_monitor", "arm_pll_out_monitor",
+						   "sys_pll1_out_monitor", "sys_pll2_out_monitor",
+						   "sys_pll3_out_monitor", "dram_pll_out_monitor",
+						   "video_pll2_out_monitor", };
+
+static struct clk_hw_onecell_data *clk_hw_data;
+static struct clk_hw **hws;
+
+static const int uart_clk_ids[] = {
+	IMX8MQ_CLK_UART1_ROOT,
+	IMX8MQ_CLK_UART2_ROOT,
+	IMX8MQ_CLK_UART3_ROOT,
+	IMX8MQ_CLK_UART4_ROOT,
 };
+static struct clk **uart_hws[ARRAY_SIZE(uart_clk_ids) + 1];
 
 static int imx8mq_clocks_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct device_node *np = dev->of_node;
 	void __iomem *base;
-	int err;
+	int err, i;
+
+	clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
+					  IMX8MQ_CLK_END), GFP_KERNEL);
+	if (WARN_ON(!clk_hw_data))
+		return -ENOMEM;
 
-	clks[IMX8MQ_CLK_DUMMY] = imx_clk_fixed("dummy", 0);
-	clks[IMX8MQ_CLK_32K] = of_clk_get_by_name(np, "ckil");
-	clks[IMX8MQ_CLK_25M] = of_clk_get_by_name(np, "osc_25m");
-	clks[IMX8MQ_CLK_27M] = of_clk_get_by_name(np, "osc_27m");
-	clks[IMX8MQ_CLK_EXT1] = of_clk_get_by_name(np, "clk_ext1");
-	clks[IMX8MQ_CLK_EXT2] = of_clk_get_by_name(np, "clk_ext2");
-	clks[IMX8MQ_CLK_EXT3] = of_clk_get_by_name(np, "clk_ext3");
-	clks[IMX8MQ_CLK_EXT4] = of_clk_get_by_name(np, "clk_ext4");
+	clk_hw_data->num = IMX8MQ_CLK_END;
+	hws = clk_hw_data->hws;
+
+	hws[IMX8MQ_CLK_DUMMY] = imx_clk_hw_fixed("dummy", 0);
+	hws[IMX8MQ_CLK_32K] = imx_obtain_fixed_clk_hw(np, "ckil");
+	hws[IMX8MQ_CLK_25M] = imx_obtain_fixed_clk_hw(np, "osc_25m");
+	hws[IMX8MQ_CLK_27M] = imx_obtain_fixed_clk_hw(np, "osc_27m");
+	hws[IMX8MQ_CLK_EXT1] = imx_obtain_fixed_clk_hw(np, "clk_ext1");
+	hws[IMX8MQ_CLK_EXT2] = imx_obtain_fixed_clk_hw(np, "clk_ext2");
+	hws[IMX8MQ_CLK_EXT3] = imx_obtain_fixed_clk_hw(np, "clk_ext3");
+	hws[IMX8MQ_CLK_EXT4] = imx_obtain_fixed_clk_hw(np, "clk_ext4");
+	hws[IMX8MQ_CLK_PHY_27MHZ] = imx_clk_hw_fixed("phy_27m", 27000000);
 
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-anatop");
 	base = of_iomap(np, 0);
+	of_node_put(np);
 	if (WARN_ON(!base))
 		return -ENOMEM;
 
-	clks[IMX8MQ_ARM_PLL_REF_SEL] = imx_clk_mux("arm_pll_ref_sel", base + 0x28, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_GPU_PLL_REF_SEL] = imx_clk_mux("gpu_pll_ref_sel", base + 0x18, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_VPU_PLL_REF_SEL] = imx_clk_mux("vpu_pll_ref_sel", base + 0x20, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_AUDIO_PLL1_REF_SEL] = imx_clk_mux("audio_pll1_ref_sel", base + 0x0, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_AUDIO_PLL2_REF_SEL] = imx_clk_mux("audio_pll2_ref_sel", base + 0x8, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_VIDEO_PLL1_REF_SEL] = imx_clk_mux("video_pll1_ref_sel", base + 0x10, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_SYS1_PLL1_REF_SEL]	= imx_clk_mux("sys1_pll1_ref_sel", base + 0x30, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_SYS2_PLL1_REF_SEL]	= imx_clk_mux("sys2_pll1_ref_sel", base + 0x3c, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_SYS3_PLL1_REF_SEL]	= imx_clk_mux("sys3_pll1_ref_sel", base + 0x48, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-	clks[IMX8MQ_DRAM_PLL1_REF_SEL]	= imx_clk_mux("dram_pll1_ref_sel", base + 0x60, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
-
-	clks[IMX8MQ_ARM_PLL_REF_DIV]	= imx_clk_divider("arm_pll_ref_div", "arm_pll_ref_sel", base + 0x28, 5, 6);
-	clks[IMX8MQ_GPU_PLL_REF_DIV]	= imx_clk_divider("gpu_pll_ref_div", "gpu_pll_ref_sel", base + 0x18, 5, 6);
-	clks[IMX8MQ_VPU_PLL_REF_DIV]	= imx_clk_divider("vpu_pll_ref_div", "vpu_pll_ref_sel", base + 0x20, 5, 6);
-	clks[IMX8MQ_AUDIO_PLL1_REF_DIV] = imx_clk_divider("audio_pll1_ref_div", "audio_pll1_ref_sel", base + 0x0, 5, 6);
-	clks[IMX8MQ_AUDIO_PLL2_REF_DIV] = imx_clk_divider("audio_pll2_ref_div", "audio_pll2_ref_sel", base + 0x8, 5, 6);
-	clks[IMX8MQ_VIDEO_PLL1_REF_DIV] = imx_clk_divider("video_pll1_ref_div", "video_pll1_ref_sel", base + 0x10, 5, 6);
-
-	clks[IMX8MQ_ARM_PLL] = imx_clk_frac_pll("arm_pll", "arm_pll_ref_div", base + 0x28);
-	clks[IMX8MQ_GPU_PLL] = imx_clk_frac_pll("gpu_pll", "gpu_pll_ref_div", base + 0x18);
-	clks[IMX8MQ_VPU_PLL] = imx_clk_frac_pll("vpu_pll", "vpu_pll_ref_div", base + 0x20);
-	clks[IMX8MQ_AUDIO_PLL1] = imx_clk_frac_pll("audio_pll1", "audio_pll1_ref_div", base + 0x0);
-	clks[IMX8MQ_AUDIO_PLL2] = imx_clk_frac_pll("audio_pll2", "audio_pll2_ref_div", base + 0x8);
-	clks[IMX8MQ_VIDEO_PLL1] = imx_clk_frac_pll("video_pll1", "video_pll1_ref_div", base + 0x10);
+	hws[IMX8MQ_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", base + 0x28, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", base + 0x18, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_VPU_PLL_REF_SEL] = imx_clk_hw_mux("vpu_pll_ref_sel", base + 0x20, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_AUDIO_PLL1_REF_SEL] = imx_clk_hw_mux("audio_pll1_ref_sel", base + 0x0, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_AUDIO_PLL2_REF_SEL] = imx_clk_hw_mux("audio_pll2_ref_sel", base + 0x8, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_VIDEO_PLL1_REF_SEL] = imx_clk_hw_mux("video_pll1_ref_sel", base + 0x10, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_SYS3_PLL1_REF_SEL]	= imx_clk_hw_mux("sys3_pll1_ref_sel", base + 0x48, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_DRAM_PLL1_REF_SEL]	= imx_clk_hw_mux("dram_pll1_ref_sel", base + 0x60, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+	hws[IMX8MQ_VIDEO2_PLL1_REF_SEL] = imx_clk_hw_mux("video2_pll1_ref_sel", base + 0x54, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
+
+	hws[IMX8MQ_ARM_PLL_REF_DIV]	= imx_clk_hw_divider("arm_pll_ref_div", "arm_pll_ref_sel", base + 0x28, 5, 6);
+	hws[IMX8MQ_GPU_PLL_REF_DIV]	= imx_clk_hw_divider("gpu_pll_ref_div", "gpu_pll_ref_sel", base + 0x18, 5, 6);
+	hws[IMX8MQ_VPU_PLL_REF_DIV]	= imx_clk_hw_divider("vpu_pll_ref_div", "vpu_pll_ref_sel", base + 0x20, 5, 6);
+	hws[IMX8MQ_AUDIO_PLL1_REF_DIV] = imx_clk_hw_divider("audio_pll1_ref_div", "audio_pll1_ref_sel", base + 0x0, 5, 6);
+	hws[IMX8MQ_AUDIO_PLL2_REF_DIV] = imx_clk_hw_divider("audio_pll2_ref_div", "audio_pll2_ref_sel", base + 0x8, 5, 6);
+	hws[IMX8MQ_VIDEO_PLL1_REF_DIV] = imx_clk_hw_divider("video_pll1_ref_div", "video_pll1_ref_sel", base + 0x10, 5, 6);
+
+	hws[IMX8MQ_ARM_PLL] = imx_clk_hw_frac_pll("arm_pll", "arm_pll_ref_div", base + 0x28);
+	hws[IMX8MQ_GPU_PLL] = imx_clk_hw_frac_pll("gpu_pll", "gpu_pll_ref_div", base + 0x18);
+	hws[IMX8MQ_VPU_PLL] = imx_clk_hw_frac_pll("vpu_pll", "vpu_pll_ref_div", base + 0x20);
+	hws[IMX8MQ_AUDIO_PLL1] = imx_clk_hw_frac_pll("audio_pll1", "audio_pll1_ref_div", base + 0x0);
+	hws[IMX8MQ_AUDIO_PLL2] = imx_clk_hw_frac_pll("audio_pll2", "audio_pll2_ref_div", base + 0x8);
+	hws[IMX8MQ_VIDEO_PLL1] = imx_clk_hw_frac_pll("video_pll1", "video_pll1_ref_div", base + 0x10);
 
 	/* PLL bypass out */
-	clks[IMX8MQ_ARM_PLL_BYPASS] = imx_clk_mux_flags("arm_pll_bypass", base + 0x28, 14, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
-	clks[IMX8MQ_GPU_PLL_BYPASS] = imx_clk_mux("gpu_pll_bypass", base + 0x18, 14, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels));
-	clks[IMX8MQ_VPU_PLL_BYPASS] = imx_clk_mux("vpu_pll_bypass", base + 0x20, 14, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels));
-	clks[IMX8MQ_AUDIO_PLL1_BYPASS] = imx_clk_mux("audio_pll1_bypass", base + 0x0, 14, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels));
-	clks[IMX8MQ_AUDIO_PLL2_BYPASS] = imx_clk_mux("audio_pll2_bypass", base + 0x8, 14, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels));
-	clks[IMX8MQ_VIDEO_PLL1_BYPASS] = imx_clk_mux("video_pll1_bypass", base + 0x10, 14, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels));
+	hws[IMX8MQ_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", base + 0x28, 14, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
+	hws[IMX8MQ_GPU_PLL_BYPASS] = imx_clk_hw_mux("gpu_pll_bypass", base + 0x18, 14, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels));
+	hws[IMX8MQ_VPU_PLL_BYPASS] = imx_clk_hw_mux("vpu_pll_bypass", base + 0x20, 14, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels));
+	hws[IMX8MQ_AUDIO_PLL1_BYPASS] = imx_clk_hw_mux("audio_pll1_bypass", base + 0x0, 14, 1, audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels));
+	hws[IMX8MQ_AUDIO_PLL2_BYPASS] = imx_clk_hw_mux("audio_pll2_bypass", base + 0x8, 14, 1, audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels));
+	hws[IMX8MQ_VIDEO_PLL1_BYPASS] = imx_clk_hw_mux("video_pll1_bypass", base + 0x10, 14, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels));
 
 	/* PLL OUT GATE */
-	clks[IMX8MQ_ARM_PLL_OUT] = imx_clk_gate("arm_pll_out", "arm_pll_bypass", base + 0x28, 21);
-	clks[IMX8MQ_GPU_PLL_OUT] = imx_clk_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x18, 21);
-	clks[IMX8MQ_VPU_PLL_OUT] = imx_clk_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x20, 21);
-	clks[IMX8MQ_AUDIO_PLL1_OUT] = imx_clk_gate("audio_pll1_out", "audio_pll1_bypass", base + 0x0, 21);
-	clks[IMX8MQ_AUDIO_PLL2_OUT] = imx_clk_gate("audio_pll2_out", "audio_pll2_bypass", base + 0x8, 21);
-	clks[IMX8MQ_VIDEO_PLL1_OUT] = imx_clk_gate("video_pll1_out", "video_pll1_bypass", base + 0x10, 21);
-
-	clks[IMX8MQ_SYS1_PLL_OUT] = imx_clk_sccg_pll("sys1_pll_out", sys1_pll_out_sels, ARRAY_SIZE(sys1_pll_out_sels), 0, 0, 0, base + 0x30, CLK_IS_CRITICAL);
-	clks[IMX8MQ_SYS2_PLL_OUT] = imx_clk_sccg_pll("sys2_pll_out", sys2_pll_out_sels, ARRAY_SIZE(sys2_pll_out_sels), 0, 0, 1, base + 0x3c, CLK_IS_CRITICAL);
-	clks[IMX8MQ_SYS3_PLL_OUT] = imx_clk_sccg_pll("sys3_pll_out", sys3_pll_out_sels, ARRAY_SIZE(sys3_pll_out_sels), 0, 0, 1, base + 0x48, CLK_IS_CRITICAL);
-	clks[IMX8MQ_DRAM_PLL_OUT] = imx_clk_sccg_pll("dram_pll_out", dram_pll_out_sels, ARRAY_SIZE(dram_pll_out_sels), 0, 0, 0, base + 0x60, CLK_IS_CRITICAL);
-	/* SYS PLL fixed output */
-	clks[IMX8MQ_SYS1_PLL_40M] = imx_clk_fixed_factor("sys1_pll_40m", "sys1_pll_out", 1, 20);
-	clks[IMX8MQ_SYS1_PLL_80M] = imx_clk_fixed_factor("sys1_pll_80m", "sys1_pll_out", 1, 10);
-	clks[IMX8MQ_SYS1_PLL_100M] = imx_clk_fixed_factor("sys1_pll_100m", "sys1_pll_out", 1, 8);
-	clks[IMX8MQ_SYS1_PLL_133M] = imx_clk_fixed_factor("sys1_pll_133m", "sys1_pll_out", 1, 6);
-	clks[IMX8MQ_SYS1_PLL_160M] = imx_clk_fixed_factor("sys1_pll_160m", "sys1_pll_out", 1, 5);
-	clks[IMX8MQ_SYS1_PLL_200M] = imx_clk_fixed_factor("sys1_pll_200m", "sys1_pll_out", 1, 4);
-	clks[IMX8MQ_SYS1_PLL_266M] = imx_clk_fixed_factor("sys1_pll_266m", "sys1_pll_out", 1, 3);
-	clks[IMX8MQ_SYS1_PLL_400M] = imx_clk_fixed_factor("sys1_pll_400m", "sys1_pll_out", 1, 2);
-	clks[IMX8MQ_SYS1_PLL_800M] = imx_clk_fixed_factor("sys1_pll_800m", "sys1_pll_out", 1, 1);
-
-	clks[IMX8MQ_SYS2_PLL_50M] = imx_clk_fixed_factor("sys2_pll_50m", "sys2_pll_out", 1, 20);
-	clks[IMX8MQ_SYS2_PLL_100M] = imx_clk_fixed_factor("sys2_pll_100m", "sys2_pll_out", 1, 10);
-	clks[IMX8MQ_SYS2_PLL_125M] = imx_clk_fixed_factor("sys2_pll_125m", "sys2_pll_out", 1, 8);
-	clks[IMX8MQ_SYS2_PLL_166M] = imx_clk_fixed_factor("sys2_pll_166m", "sys2_pll_out", 1, 6);
-	clks[IMX8MQ_SYS2_PLL_200M] = imx_clk_fixed_factor("sys2_pll_200m", "sys2_pll_out", 1, 5);
-	clks[IMX8MQ_SYS2_PLL_250M] = imx_clk_fixed_factor("sys2_pll_250m", "sys2_pll_out", 1, 4);
-	clks[IMX8MQ_SYS2_PLL_333M] = imx_clk_fixed_factor("sys2_pll_333m", "sys2_pll_out", 1, 3);
-	clks[IMX8MQ_SYS2_PLL_500M] = imx_clk_fixed_factor("sys2_pll_500m", "sys2_pll_out", 1, 2);
-	clks[IMX8MQ_SYS2_PLL_1000M] = imx_clk_fixed_factor("sys2_pll_1000m", "sys2_pll_out", 1, 1);
+	hws[IMX8MQ_ARM_PLL_OUT] = imx_clk_hw_gate("arm_pll_out", "arm_pll_bypass", base + 0x28, 21);
+	hws[IMX8MQ_GPU_PLL_OUT] = imx_clk_hw_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x18, 21);
+	hws[IMX8MQ_VPU_PLL_OUT] = imx_clk_hw_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x20, 21);
+	hws[IMX8MQ_AUDIO_PLL1_OUT] = imx_clk_hw_gate("audio_pll1_out", "audio_pll1_bypass", base + 0x0, 21);
+	hws[IMX8MQ_AUDIO_PLL2_OUT] = imx_clk_hw_gate("audio_pll2_out", "audio_pll2_bypass", base + 0x8, 21);
+	hws[IMX8MQ_VIDEO_PLL1_OUT] = imx_clk_hw_gate("video_pll1_out", "video_pll1_bypass", base + 0x10, 21);
+
+	hws[IMX8MQ_SYS1_PLL_OUT] = imx_clk_hw_fixed("sys1_pll_out", 800000000);
+	hws[IMX8MQ_SYS2_PLL_OUT] = imx_clk_hw_fixed("sys2_pll_out", 1000000000);
+	hws[IMX8MQ_SYS3_PLL_OUT] = imx_clk_hw_sscg_pll("sys3_pll_out", sys3_pll_out_sels, ARRAY_SIZE(sys3_pll_out_sels), 0, 0, 0, base + 0x48, CLK_IS_CRITICAL);
+	hws[IMX8MQ_DRAM_PLL_OUT] = imx_clk_hw_sscg_pll("dram_pll_out", dram_pll_out_sels, ARRAY_SIZE(dram_pll_out_sels), 0, 0, 0, base + 0x60, CLK_IS_CRITICAL | CLK_GET_RATE_NOCACHE);
+	hws[IMX8MQ_VIDEO2_PLL_OUT] = imx_clk_hw_sscg_pll("video2_pll_out", video2_pll_out_sels, ARRAY_SIZE(video2_pll_out_sels), 0, 0, 0, base + 0x54, 0);
+
+	/* SYS PLL1 fixed output */
+	hws[IMX8MQ_SYS1_PLL_40M_CG] = imx_clk_hw_gate("sys1_pll_40m_cg", "sys1_pll_out", base + 0x30, 9);
+	hws[IMX8MQ_SYS1_PLL_80M_CG] = imx_clk_hw_gate("sys1_pll_80m_cg", "sys1_pll_out", base + 0x30, 11);
+	hws[IMX8MQ_SYS1_PLL_100M_CG] = imx_clk_hw_gate("sys1_pll_100m_cg", "sys1_pll_out", base + 0x30, 13);
+	hws[IMX8MQ_SYS1_PLL_133M_CG] = imx_clk_hw_gate("sys1_pll_133m_cg", "sys1_pll_out", base + 0x30, 15);
+	hws[IMX8MQ_SYS1_PLL_160M_CG] = imx_clk_hw_gate("sys1_pll_160m_cg", "sys1_pll_out", base + 0x30, 17);
+	hws[IMX8MQ_SYS1_PLL_200M_CG] = imx_clk_hw_gate("sys1_pll_200m_cg", "sys1_pll_out", base + 0x30, 19);
+	hws[IMX8MQ_SYS1_PLL_266M_CG] = imx_clk_hw_gate("sys1_pll_266m_cg", "sys1_pll_out", base + 0x30, 21);
+	hws[IMX8MQ_SYS1_PLL_400M_CG] = imx_clk_hw_gate("sys1_pll_400m_cg", "sys1_pll_out", base + 0x30, 23);
+	hws[IMX8MQ_SYS1_PLL_800M_CG] = imx_clk_hw_gate("sys1_pll_800m_cg", "sys1_pll_out", base + 0x30, 25);
+
+	hws[IMX8MQ_SYS1_PLL_40M] = imx_clk_hw_fixed_factor("sys1_pll_40m", "sys1_pll_40m_cg", 1, 20);
+	hws[IMX8MQ_SYS1_PLL_80M] = imx_clk_hw_fixed_factor("sys1_pll_80m", "sys1_pll_80m_cg", 1, 10);
+	hws[IMX8MQ_SYS1_PLL_100M] = imx_clk_hw_fixed_factor("sys1_pll_100m", "sys1_pll_100m_cg", 1, 8);
+	hws[IMX8MQ_SYS1_PLL_133M] = imx_clk_hw_fixed_factor("sys1_pll_133m", "sys1_pll_133m_cg", 1, 6);
+	hws[IMX8MQ_SYS1_PLL_160M] = imx_clk_hw_fixed_factor("sys1_pll_160m", "sys1_pll_160m_cg", 1, 5);
+	hws[IMX8MQ_SYS1_PLL_200M] = imx_clk_hw_fixed_factor("sys1_pll_200m", "sys1_pll_200m_cg", 1, 4);
+	hws[IMX8MQ_SYS1_PLL_266M] = imx_clk_hw_fixed_factor("sys1_pll_266m", "sys1_pll_266m_cg", 1, 3);
+	hws[IMX8MQ_SYS1_PLL_400M] = imx_clk_hw_fixed_factor("sys1_pll_400m", "sys1_pll_400m_cg", 1, 2);
+	hws[IMX8MQ_SYS1_PLL_800M] = imx_clk_hw_fixed_factor("sys1_pll_800m", "sys1_pll_800m_cg", 1, 1);
+
+	/* SYS PLL2 fixed output */
+	hws[IMX8MQ_SYS2_PLL_50M_CG] = imx_clk_hw_gate("sys2_pll_50m_cg", "sys2_pll_out", base + 0x3c, 9);
+	hws[IMX8MQ_SYS2_PLL_100M_CG] = imx_clk_hw_gate("sys2_pll_100m_cg", "sys2_pll_out", base + 0x3c, 11);
+	hws[IMX8MQ_SYS2_PLL_125M_CG] = imx_clk_hw_gate("sys2_pll_125m_cg", "sys2_pll_out", base + 0x3c, 13);
+	hws[IMX8MQ_SYS2_PLL_166M_CG] = imx_clk_hw_gate("sys2_pll_166m_cg", "sys2_pll_out", base + 0x3c, 15);
+	hws[IMX8MQ_SYS2_PLL_200M_CG] = imx_clk_hw_gate("sys2_pll_200m_cg", "sys2_pll_out", base + 0x3c, 17);
+	hws[IMX8MQ_SYS2_PLL_250M_CG] = imx_clk_hw_gate("sys2_pll_250m_cg", "sys2_pll_out", base + 0x3c, 19);
+	hws[IMX8MQ_SYS2_PLL_333M_CG] = imx_clk_hw_gate("sys2_pll_333m_cg", "sys2_pll_out", base + 0x3c, 21);
+	hws[IMX8MQ_SYS2_PLL_500M_CG] = imx_clk_hw_gate("sys2_pll_500m_cg", "sys2_pll_out", base + 0x3c, 23);
+	hws[IMX8MQ_SYS2_PLL_1000M_CG] = imx_clk_hw_gate("sys2_pll_1000m_cg", "sys2_pll_out", base + 0x3c, 25);
+
+	hws[IMX8MQ_SYS2_PLL_50M] = imx_clk_hw_fixed_factor("sys2_pll_50m", "sys2_pll_50m_cg", 1, 20);
+	hws[IMX8MQ_SYS2_PLL_100M] = imx_clk_hw_fixed_factor("sys2_pll_100m", "sys2_pll_100m_cg", 1, 10);
+	hws[IMX8MQ_SYS2_PLL_125M] = imx_clk_hw_fixed_factor("sys2_pll_125m", "sys2_pll_125m_cg", 1, 8);
+	hws[IMX8MQ_SYS2_PLL_166M] = imx_clk_hw_fixed_factor("sys2_pll_166m", "sys2_pll_166m_cg", 1, 6);
+	hws[IMX8MQ_SYS2_PLL_200M] = imx_clk_hw_fixed_factor("sys2_pll_200m", "sys2_pll_200m_cg", 1, 5);
+	hws[IMX8MQ_SYS2_PLL_250M] = imx_clk_hw_fixed_factor("sys2_pll_250m", "sys2_pll_250m_cg", 1, 4);
+	hws[IMX8MQ_SYS2_PLL_333M] = imx_clk_hw_fixed_factor("sys2_pll_333m", "sys2_pll_333m_cg", 1, 3);
+	hws[IMX8MQ_SYS2_PLL_500M] = imx_clk_hw_fixed_factor("sys2_pll_500m", "sys2_pll_500m_cg", 1, 2);
+	hws[IMX8MQ_SYS2_PLL_1000M] = imx_clk_hw_fixed_factor("sys2_pll_1000m", "sys2_pll_1000m_cg", 1, 1);
+
+	hws[IMX8MQ_CLK_MON_AUDIO_PLL1_DIV] = imx_clk_hw_divider("audio_pll1_out_monitor", "audio_pll1_bypass", base + 0x78, 0, 3);
+	hws[IMX8MQ_CLK_MON_AUDIO_PLL2_DIV] = imx_clk_hw_divider("audio_pll2_out_monitor", "audio_pll2_bypass", base + 0x78, 4, 3);
+	hws[IMX8MQ_CLK_MON_VIDEO_PLL1_DIV] = imx_clk_hw_divider("video_pll1_out_monitor", "video_pll1_bypass", base + 0x78, 8, 3);
+	hws[IMX8MQ_CLK_MON_GPU_PLL_DIV] = imx_clk_hw_divider("gpu_pll_out_monitor", "gpu_pll_bypass", base + 0x78, 12, 3);
+	hws[IMX8MQ_CLK_MON_VPU_PLL_DIV] = imx_clk_hw_divider("vpu_pll_out_monitor", "vpu_pll_bypass", base + 0x78, 16, 3);
+	hws[IMX8MQ_CLK_MON_ARM_PLL_DIV] = imx_clk_hw_divider("arm_pll_out_monitor", "arm_pll_bypass", base + 0x78, 20, 3);
+	hws[IMX8MQ_CLK_MON_SYS_PLL1_DIV] = imx_clk_hw_divider("sys_pll1_out_monitor", "sys1_pll_out", base + 0x7c, 0, 3);
+	hws[IMX8MQ_CLK_MON_SYS_PLL2_DIV] = imx_clk_hw_divider("sys_pll2_out_monitor", "sys2_pll_out", base + 0x7c, 4, 3);
+	hws[IMX8MQ_CLK_MON_SYS_PLL3_DIV] = imx_clk_hw_divider("sys_pll3_out_monitor", "sys3_pll_out", base + 0x7c, 8, 3);
+	hws[IMX8MQ_CLK_MON_DRAM_PLL_DIV] = imx_clk_hw_divider("dram_pll_out_monitor", "dram_pll_out", base + 0x7c, 12, 3);
+	hws[IMX8MQ_CLK_MON_VIDEO_PLL2_DIV] = imx_clk_hw_divider("video_pll2_out_monitor", "video2_pll_out", base + 0x7c, 16, 3);
+	hws[IMX8MQ_CLK_MON_SEL] = imx_clk_hw_mux("pllout_monitor_sel", base + 0x74, 0, 4, pllout_monitor_sels, ARRAY_SIZE(pllout_monitor_sels));
+	hws[IMX8MQ_CLK_MON_CLK2_OUT] = imx_clk_hw_gate("pllout_monitor_clk2", "pllout_monitor_sel", base + 0x74, 4);
 
 	np = dev->of_node;
 	base = devm_platform_ioremap_resource(pdev, 0);
@@ -373,206 +428,220 @@
 		return PTR_ERR(base);
 
 	/* CORE */
-	clks[IMX8MQ_CLK_A53_SRC] = imx_clk_mux2("arm_a53_src", base + 0x8000, 24, 3, imx8mq_a53_sels, ARRAY_SIZE(imx8mq_a53_sels));
-	clks[IMX8MQ_CLK_M4_SRC] = imx_clk_mux2("arm_m4_src", base + 0x8080, 24, 3, imx8mq_arm_m4_sels, ARRAY_SIZE(imx8mq_arm_m4_sels));
-	clks[IMX8MQ_CLK_VPU_SRC] = imx_clk_mux2("vpu_src", base + 0x8100, 24, 3, imx8mq_vpu_sels, ARRAY_SIZE(imx8mq_vpu_sels));
-	clks[IMX8MQ_CLK_GPU_CORE_SRC] = imx_clk_mux2("gpu_core_src", base + 0x8180, 24, 3,  imx8mq_gpu_core_sels, ARRAY_SIZE(imx8mq_gpu_core_sels));
-	clks[IMX8MQ_CLK_GPU_SHADER_SRC] = imx_clk_mux2("gpu_shader_src", base + 0x8200, 24, 3, imx8mq_gpu_shader_sels,  ARRAY_SIZE(imx8mq_gpu_shader_sels));
-
-	clks[IMX8MQ_CLK_A53_CG] = imx_clk_gate3_flags("arm_a53_cg", "arm_a53_src", base + 0x8000, 28, CLK_IS_CRITICAL);
-	clks[IMX8MQ_CLK_M4_CG] = imx_clk_gate3("arm_m4_cg", "arm_m4_src", base + 0x8080, 28);
-	clks[IMX8MQ_CLK_VPU_CG] = imx_clk_gate3("vpu_cg", "vpu_src", base + 0x8100, 28);
-	clks[IMX8MQ_CLK_GPU_CORE_CG] = imx_clk_gate3("gpu_core_cg", "gpu_core_src", base + 0x8180, 28);
-	clks[IMX8MQ_CLK_GPU_SHADER_CG] = imx_clk_gate3("gpu_shader_cg", "gpu_shader_src", base + 0x8200, 28);
-
-	clks[IMX8MQ_CLK_A53_DIV] = imx_clk_divider2("arm_a53_div", "arm_a53_cg", base + 0x8000, 0, 3);
-	clks[IMX8MQ_CLK_M4_DIV] = imx_clk_divider2("arm_m4_div", "arm_m4_cg", base + 0x8080, 0, 3);
-	clks[IMX8MQ_CLK_VPU_DIV] = imx_clk_divider2("vpu_div", "vpu_cg", base + 0x8100, 0, 3);
-	clks[IMX8MQ_CLK_GPU_CORE_DIV] = imx_clk_divider2("gpu_core_div", "gpu_core_cg", base + 0x8180, 0, 3);
-	clks[IMX8MQ_CLK_GPU_SHADER_DIV] = imx_clk_divider2("gpu_shader_div", "gpu_shader_cg", base + 0x8200, 0, 3);
+	hws[IMX8MQ_CLK_A53_DIV] = imx8m_clk_hw_composite_core("arm_a53_div", imx8mq_a53_sels, base + 0x8000);
+	hws[IMX8MQ_CLK_A53_CG] = hws[IMX8MQ_CLK_A53_DIV];
+	hws[IMX8MQ_CLK_A53_SRC] = hws[IMX8MQ_CLK_A53_DIV];
+
+	hws[IMX8MQ_CLK_M4_CORE] = imx8m_clk_hw_composite_core("arm_m4_core", imx8mq_arm_m4_sels, base + 0x8080);
+	hws[IMX8MQ_CLK_VPU_CORE] = imx8m_clk_hw_composite_core("vpu_core", imx8mq_vpu_sels, base + 0x8100);
+	hws[IMX8MQ_CLK_GPU_CORE] = imx8m_clk_hw_composite_core("gpu_core", imx8mq_gpu_core_sels, base + 0x8180);
+	hws[IMX8MQ_CLK_GPU_SHADER] = imx8m_clk_hw_composite("gpu_shader", imx8mq_gpu_shader_sels, base + 0x8200);
+	/* For backwards compatibility */
+	hws[IMX8MQ_CLK_M4_SRC] = hws[IMX8MQ_CLK_M4_CORE];
+	hws[IMX8MQ_CLK_M4_CG] = hws[IMX8MQ_CLK_M4_CORE];
+	hws[IMX8MQ_CLK_M4_DIV] = hws[IMX8MQ_CLK_M4_CORE];
+	hws[IMX8MQ_CLK_VPU_SRC] = hws[IMX8MQ_CLK_VPU_CORE];
+	hws[IMX8MQ_CLK_VPU_CG] = hws[IMX8MQ_CLK_VPU_CORE];
+	hws[IMX8MQ_CLK_VPU_DIV] = hws[IMX8MQ_CLK_VPU_CORE];
+	hws[IMX8MQ_CLK_GPU_CORE_SRC] = hws[IMX8MQ_CLK_GPU_CORE];
+	hws[IMX8MQ_CLK_GPU_CORE_CG] = hws[IMX8MQ_CLK_GPU_CORE];
+	hws[IMX8MQ_CLK_GPU_CORE_DIV] = hws[IMX8MQ_CLK_GPU_CORE];
+	hws[IMX8MQ_CLK_GPU_SHADER_SRC] = hws[IMX8MQ_CLK_GPU_SHADER];
+	hws[IMX8MQ_CLK_GPU_SHADER_CG] = hws[IMX8MQ_CLK_GPU_SHADER];
+	hws[IMX8MQ_CLK_GPU_SHADER_DIV] = hws[IMX8MQ_CLK_GPU_SHADER];
+
+	/* CORE SEL */
+	hws[IMX8MQ_CLK_A53_CORE] = imx_clk_hw_mux2("arm_a53_core", base + 0x9880, 24, 1, imx8mq_a53_core_sels, ARRAY_SIZE(imx8mq_a53_core_sels));
 
 	/* BUS */
-	clks[IMX8MQ_CLK_MAIN_AXI] = imx8m_clk_composite_critical("main_axi", imx8mq_main_axi_sels, base + 0x8800);
-	clks[IMX8MQ_CLK_ENET_AXI] = imx8m_clk_composite("enet_axi", imx8mq_enet_axi_sels, base + 0x8880);
-	clks[IMX8MQ_CLK_NAND_USDHC_BUS] = imx8m_clk_composite("nand_usdhc_bus", imx8mq_nand_usdhc_sels, base + 0x8900);
-	clks[IMX8MQ_CLK_VPU_BUS] = imx8m_clk_composite("vpu_bus", imx8mq_vpu_bus_sels, base + 0x8980);
-	clks[IMX8MQ_CLK_DISP_AXI] = imx8m_clk_composite("disp_axi", imx8mq_disp_axi_sels, base + 0x8a00);
-	clks[IMX8MQ_CLK_DISP_APB] = imx8m_clk_composite("disp_apb", imx8mq_disp_apb_sels, base + 0x8a80);
-	clks[IMX8MQ_CLK_DISP_RTRM] = imx8m_clk_composite("disp_rtrm", imx8mq_disp_rtrm_sels, base + 0x8b00);
-	clks[IMX8MQ_CLK_USB_BUS] = imx8m_clk_composite("usb_bus", imx8mq_usb_bus_sels, base + 0x8b80);
-	clks[IMX8MQ_CLK_GPU_AXI] = imx8m_clk_composite("gpu_axi", imx8mq_gpu_axi_sels, base + 0x8c00);
-	clks[IMX8MQ_CLK_GPU_AHB] = imx8m_clk_composite("gpu_ahb", imx8mq_gpu_ahb_sels, base + 0x8c80);
-	clks[IMX8MQ_CLK_NOC] = imx8m_clk_composite_critical("noc", imx8mq_noc_sels, base + 0x8d00);
-	clks[IMX8MQ_CLK_NOC_APB] = imx8m_clk_composite_critical("noc_apb", imx8mq_noc_apb_sels, base + 0x8d80);
+	hws[IMX8MQ_CLK_MAIN_AXI] = imx8m_clk_hw_composite_bus_critical("main_axi", imx8mq_main_axi_sels, base + 0x8800);
+	hws[IMX8MQ_CLK_ENET_AXI] = imx8m_clk_hw_composite_bus("enet_axi", imx8mq_enet_axi_sels, base + 0x8880);
+	hws[IMX8MQ_CLK_NAND_USDHC_BUS] = imx8m_clk_hw_composite_bus("nand_usdhc_bus", imx8mq_nand_usdhc_sels, base + 0x8900);
+	hws[IMX8MQ_CLK_VPU_BUS] = imx8m_clk_hw_composite_bus("vpu_bus", imx8mq_vpu_bus_sels, base + 0x8980);
+	hws[IMX8MQ_CLK_DISP_AXI] = imx8m_clk_hw_composite_bus("disp_axi", imx8mq_disp_axi_sels, base + 0x8a00);
+	hws[IMX8MQ_CLK_DISP_APB] = imx8m_clk_hw_composite_bus("disp_apb", imx8mq_disp_apb_sels, base + 0x8a80);
+	hws[IMX8MQ_CLK_DISP_RTRM] = imx8m_clk_hw_composite_bus("disp_rtrm", imx8mq_disp_rtrm_sels, base + 0x8b00);
+	hws[IMX8MQ_CLK_USB_BUS] = imx8m_clk_hw_composite_bus("usb_bus", imx8mq_usb_bus_sels, base + 0x8b80);
+	hws[IMX8MQ_CLK_GPU_AXI] = imx8m_clk_hw_composite_bus("gpu_axi", imx8mq_gpu_axi_sels, base + 0x8c00);
+	hws[IMX8MQ_CLK_GPU_AHB] = imx8m_clk_hw_composite_bus("gpu_ahb", imx8mq_gpu_ahb_sels, base + 0x8c80);
+	hws[IMX8MQ_CLK_NOC] = imx8m_clk_hw_composite_bus_critical("noc", imx8mq_noc_sels, base + 0x8d00);
+	hws[IMX8MQ_CLK_NOC_APB] = imx8m_clk_hw_composite_bus_critical("noc_apb", imx8mq_noc_apb_sels, base + 0x8d80);
 
 	/* AHB */
 	/* AHB clock is used by the AHB bus therefore marked as critical */
-	clks[IMX8MQ_CLK_AHB] = imx8m_clk_composite_critical("ahb", imx8mq_ahb_sels, base + 0x9000);
-	clks[IMX8MQ_CLK_AUDIO_AHB] = imx8m_clk_composite("audio_ahb", imx8mq_audio_ahb_sels, base + 0x9100);
+	hws[IMX8MQ_CLK_AHB] = imx8m_clk_hw_composite_bus_critical("ahb", imx8mq_ahb_sels, base + 0x9000);
+	hws[IMX8MQ_CLK_AUDIO_AHB] = imx8m_clk_hw_composite_bus("audio_ahb", imx8mq_audio_ahb_sels, base + 0x9100);
 
 	/* IPG */
-	clks[IMX8MQ_CLK_IPG_ROOT] = imx_clk_divider2("ipg_root", "ahb", base + 0x9080, 0, 1);
-	clks[IMX8MQ_CLK_IPG_AUDIO_ROOT] = imx_clk_divider2("ipg_audio_root", "audio_ahb", base + 0x9180, 0, 1);
+	hws[IMX8MQ_CLK_IPG_ROOT] = imx_clk_hw_divider2("ipg_root", "ahb", base + 0x9080, 0, 1);
+	hws[IMX8MQ_CLK_IPG_AUDIO_ROOT] = imx_clk_hw_divider2("ipg_audio_root", "audio_ahb", base + 0x9180, 0, 1);
+
+	/*
+	 * DRAM clocks are manipulated from TF-A outside clock framework.
+	 * Mark with GET_RATE_NOCACHE to always read div value from hardware
+	 */
+	hws[IMX8MQ_CLK_DRAM_CORE] = imx_clk_hw_mux2_flags("dram_core_clk", base + 0x9800, 24, 1, imx8mq_dram_core_sels, ARRAY_SIZE(imx8mq_dram_core_sels), CLK_IS_CRITICAL);
+	hws[IMX8MQ_CLK_DRAM_ALT] = __imx8m_clk_hw_composite("dram_alt", imx8mq_dram_alt_sels, base + 0xa000, CLK_GET_RATE_NOCACHE);
+	hws[IMX8MQ_CLK_DRAM_APB] = __imx8m_clk_hw_composite("dram_apb", imx8mq_dram_apb_sels, base + 0xa080, CLK_IS_CRITICAL | CLK_GET_RATE_NOCACHE);
 
 	/* IP */
-	clks[IMX8MQ_CLK_DRAM_CORE] = imx_clk_mux2_flags("dram_core_clk", base + 0x9800, 24, 1, imx8mq_dram_core_sels, ARRAY_SIZE(imx8mq_dram_core_sels), CLK_IS_CRITICAL);
+	hws[IMX8MQ_CLK_VPU_G1] = imx8m_clk_hw_composite("vpu_g1", imx8mq_vpu_g1_sels, base + 0xa100);
+	hws[IMX8MQ_CLK_VPU_G2] = imx8m_clk_hw_composite("vpu_g2", imx8mq_vpu_g2_sels, base + 0xa180);
+	hws[IMX8MQ_CLK_DISP_DTRC] = imx8m_clk_hw_composite("disp_dtrc", imx8mq_disp_dtrc_sels, base + 0xa200);
+	hws[IMX8MQ_CLK_DISP_DC8000] = imx8m_clk_hw_composite("disp_dc8000", imx8mq_disp_dc8000_sels, base + 0xa280);
+	hws[IMX8MQ_CLK_PCIE1_CTRL] = imx8m_clk_hw_composite("pcie1_ctrl", imx8mq_pcie1_ctrl_sels, base + 0xa300);
+	hws[IMX8MQ_CLK_PCIE1_PHY] = imx8m_clk_hw_composite("pcie1_phy", imx8mq_pcie1_phy_sels, base + 0xa380);
+	hws[IMX8MQ_CLK_PCIE1_AUX] = imx8m_clk_hw_composite("pcie1_aux", imx8mq_pcie1_aux_sels, base + 0xa400);
+	hws[IMX8MQ_CLK_DC_PIXEL] = imx8m_clk_hw_composite("dc_pixel", imx8mq_dc_pixel_sels, base + 0xa480);
+	hws[IMX8MQ_CLK_LCDIF_PIXEL] = imx8m_clk_hw_composite("lcdif_pixel", imx8mq_lcdif_pixel_sels, base + 0xa500);
+	hws[IMX8MQ_CLK_SAI1] = imx8m_clk_hw_composite("sai1", imx8mq_sai1_sels, base + 0xa580);
+	hws[IMX8MQ_CLK_SAI2] = imx8m_clk_hw_composite("sai2", imx8mq_sai2_sels, base + 0xa600);
+	hws[IMX8MQ_CLK_SAI3] = imx8m_clk_hw_composite("sai3", imx8mq_sai3_sels, base + 0xa680);
+	hws[IMX8MQ_CLK_SAI4] = imx8m_clk_hw_composite("sai4", imx8mq_sai4_sels, base + 0xa700);
+	hws[IMX8MQ_CLK_SAI5] = imx8m_clk_hw_composite("sai5", imx8mq_sai5_sels, base + 0xa780);
+	hws[IMX8MQ_CLK_SAI6] = imx8m_clk_hw_composite("sai6", imx8mq_sai6_sels, base + 0xa800);
+	hws[IMX8MQ_CLK_SPDIF1] = imx8m_clk_hw_composite("spdif1", imx8mq_spdif1_sels, base + 0xa880);
+	hws[IMX8MQ_CLK_SPDIF2] = imx8m_clk_hw_composite("spdif2", imx8mq_spdif2_sels, base + 0xa900);
+	hws[IMX8MQ_CLK_ENET_REF] = imx8m_clk_hw_composite("enet_ref", imx8mq_enet_ref_sels, base + 0xa980);
+	hws[IMX8MQ_CLK_ENET_TIMER] = imx8m_clk_hw_composite("enet_timer", imx8mq_enet_timer_sels, base + 0xaa00);
+	hws[IMX8MQ_CLK_ENET_PHY_REF] = imx8m_clk_hw_composite("enet_phy", imx8mq_enet_phy_sels, base + 0xaa80);
+	hws[IMX8MQ_CLK_NAND] = imx8m_clk_hw_composite("nand", imx8mq_nand_sels, base + 0xab00);
+	hws[IMX8MQ_CLK_QSPI] = imx8m_clk_hw_composite("qspi", imx8mq_qspi_sels, base + 0xab80);
+	hws[IMX8MQ_CLK_USDHC1] = imx8m_clk_hw_composite("usdhc1", imx8mq_usdhc1_sels, base + 0xac00);
+	hws[IMX8MQ_CLK_USDHC2] = imx8m_clk_hw_composite("usdhc2", imx8mq_usdhc2_sels, base + 0xac80);
+	hws[IMX8MQ_CLK_I2C1] = imx8m_clk_hw_composite("i2c1", imx8mq_i2c1_sels, base + 0xad00);
+	hws[IMX8MQ_CLK_I2C2] = imx8m_clk_hw_composite("i2c2", imx8mq_i2c2_sels, base + 0xad80);
+	hws[IMX8MQ_CLK_I2C3] = imx8m_clk_hw_composite("i2c3", imx8mq_i2c3_sels, base + 0xae00);
+	hws[IMX8MQ_CLK_I2C4] = imx8m_clk_hw_composite("i2c4", imx8mq_i2c4_sels, base + 0xae80);
+	hws[IMX8MQ_CLK_UART1] = imx8m_clk_hw_composite("uart1", imx8mq_uart1_sels, base + 0xaf00);
+	hws[IMX8MQ_CLK_UART2] = imx8m_clk_hw_composite("uart2", imx8mq_uart2_sels, base + 0xaf80);
+	hws[IMX8MQ_CLK_UART3] = imx8m_clk_hw_composite("uart3", imx8mq_uart3_sels, base + 0xb000);
+	hws[IMX8MQ_CLK_UART4] = imx8m_clk_hw_composite("uart4", imx8mq_uart4_sels, base + 0xb080);
+	hws[IMX8MQ_CLK_USB_CORE_REF] = imx8m_clk_hw_composite("usb_core_ref", imx8mq_usb_core_sels, base + 0xb100);
+	hws[IMX8MQ_CLK_USB_PHY_REF] = imx8m_clk_hw_composite("usb_phy_ref", imx8mq_usb_phy_sels, base + 0xb180);
+	hws[IMX8MQ_CLK_GIC] = imx8m_clk_hw_composite_critical("gic", imx8mq_gic_sels, base + 0xb200);
+	hws[IMX8MQ_CLK_ECSPI1] = imx8m_clk_hw_composite("ecspi1", imx8mq_ecspi1_sels, base + 0xb280);
+	hws[IMX8MQ_CLK_ECSPI2] = imx8m_clk_hw_composite("ecspi2", imx8mq_ecspi2_sels, base + 0xb300);
+	hws[IMX8MQ_CLK_PWM1] = imx8m_clk_hw_composite("pwm1", imx8mq_pwm1_sels, base + 0xb380);
+	hws[IMX8MQ_CLK_PWM2] = imx8m_clk_hw_composite("pwm2", imx8mq_pwm2_sels, base + 0xb400);
+	hws[IMX8MQ_CLK_PWM3] = imx8m_clk_hw_composite("pwm3", imx8mq_pwm3_sels, base + 0xb480);
+	hws[IMX8MQ_CLK_PWM4] = imx8m_clk_hw_composite("pwm4", imx8mq_pwm4_sels, base + 0xb500);
+	hws[IMX8MQ_CLK_GPT1] = imx8m_clk_hw_composite("gpt1", imx8mq_gpt1_sels, base + 0xb580);
+	hws[IMX8MQ_CLK_WDOG] = imx8m_clk_hw_composite("wdog", imx8mq_wdog_sels, base + 0xb900);
+	hws[IMX8MQ_CLK_WRCLK] = imx8m_clk_hw_composite("wrclk", imx8mq_wrclk_sels, base + 0xb980);
+	hws[IMX8MQ_CLK_CLKO1] = imx8m_clk_hw_composite("clko1", imx8mq_clko1_sels, base + 0xba00);
+	hws[IMX8MQ_CLK_CLKO2] = imx8m_clk_hw_composite("clko2", imx8mq_clko2_sels, base + 0xba80);
+	hws[IMX8MQ_CLK_DSI_CORE] = imx8m_clk_hw_composite("dsi_core", imx8mq_dsi_core_sels, base + 0xbb00);
+	hws[IMX8MQ_CLK_DSI_PHY_REF] = imx8m_clk_hw_composite("dsi_phy_ref", imx8mq_dsi_phy_sels, base + 0xbb80);
+	hws[IMX8MQ_CLK_DSI_DBI] = imx8m_clk_hw_composite("dsi_dbi", imx8mq_dsi_dbi_sels, base + 0xbc00);
+	hws[IMX8MQ_CLK_DSI_ESC] = imx8m_clk_hw_composite("dsi_esc", imx8mq_dsi_esc_sels, base + 0xbc80);
+	hws[IMX8MQ_CLK_DSI_AHB] = imx8m_clk_hw_composite("dsi_ahb", imx8mq_dsi_ahb_sels, base + 0x9200);
+	hws[IMX8MQ_CLK_DSI_IPG_DIV] = imx_clk_hw_divider2("dsi_ipg_div", "dsi_ahb", base + 0x9280, 0, 6);
+	hws[IMX8MQ_CLK_CSI1_CORE] = imx8m_clk_hw_composite("csi1_core", imx8mq_csi1_core_sels, base + 0xbd00);
+	hws[IMX8MQ_CLK_CSI1_PHY_REF] = imx8m_clk_hw_composite("csi1_phy_ref", imx8mq_csi1_phy_sels, base + 0xbd80);
+	hws[IMX8MQ_CLK_CSI1_ESC] = imx8m_clk_hw_composite("csi1_esc", imx8mq_csi1_esc_sels, base + 0xbe00);
+	hws[IMX8MQ_CLK_CSI2_CORE] = imx8m_clk_hw_composite("csi2_core", imx8mq_csi2_core_sels, base + 0xbe80);
+	hws[IMX8MQ_CLK_CSI2_PHY_REF] = imx8m_clk_hw_composite("csi2_phy_ref", imx8mq_csi2_phy_sels, base + 0xbf00);
+	hws[IMX8MQ_CLK_CSI2_ESC] = imx8m_clk_hw_composite("csi2_esc", imx8mq_csi2_esc_sels, base + 0xbf80);
+	hws[IMX8MQ_CLK_PCIE2_CTRL] = imx8m_clk_hw_composite("pcie2_ctrl", imx8mq_pcie2_ctrl_sels, base + 0xc000);
+	hws[IMX8MQ_CLK_PCIE2_PHY] = imx8m_clk_hw_composite("pcie2_phy", imx8mq_pcie2_phy_sels, base + 0xc080);
+	hws[IMX8MQ_CLK_PCIE2_AUX] = imx8m_clk_hw_composite("pcie2_aux", imx8mq_pcie2_aux_sels, base + 0xc100);
+	hws[IMX8MQ_CLK_ECSPI3] = imx8m_clk_hw_composite("ecspi3", imx8mq_ecspi3_sels, base + 0xc180);
+
+	hws[IMX8MQ_CLK_ECSPI1_ROOT] = imx_clk_hw_gate4("ecspi1_root_clk", "ecspi1", base + 0x4070, 0);
+	hws[IMX8MQ_CLK_ECSPI2_ROOT] = imx_clk_hw_gate4("ecspi2_root_clk", "ecspi2", base + 0x4080, 0);
+	hws[IMX8MQ_CLK_ECSPI3_ROOT] = imx_clk_hw_gate4("ecspi3_root_clk", "ecspi3", base + 0x4090, 0);
+	hws[IMX8MQ_CLK_ENET1_ROOT] = imx_clk_hw_gate4("enet1_root_clk", "enet_axi", base + 0x40a0, 0);
+	hws[IMX8MQ_CLK_GPIO1_ROOT] = imx_clk_hw_gate4("gpio1_root_clk", "ipg_root", base + 0x40b0, 0);
+	hws[IMX8MQ_CLK_GPIO2_ROOT] = imx_clk_hw_gate4("gpio2_root_clk", "ipg_root", base + 0x40c0, 0);
+	hws[IMX8MQ_CLK_GPIO3_ROOT] = imx_clk_hw_gate4("gpio3_root_clk", "ipg_root", base + 0x40d0, 0);
+	hws[IMX8MQ_CLK_GPIO4_ROOT] = imx_clk_hw_gate4("gpio4_root_clk", "ipg_root", base + 0x40e0, 0);
+	hws[IMX8MQ_CLK_GPIO5_ROOT] = imx_clk_hw_gate4("gpio5_root_clk", "ipg_root", base + 0x40f0, 0);
+	hws[IMX8MQ_CLK_GPT1_ROOT] = imx_clk_hw_gate4("gpt1_root_clk", "gpt1", base + 0x4100, 0);
+	hws[IMX8MQ_CLK_I2C1_ROOT] = imx_clk_hw_gate4("i2c1_root_clk", "i2c1", base + 0x4170, 0);
+	hws[IMX8MQ_CLK_I2C2_ROOT] = imx_clk_hw_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);
+	hws[IMX8MQ_CLK_I2C3_ROOT] = imx_clk_hw_gate4("i2c3_root_clk", "i2c3", base + 0x4190, 0);
+	hws[IMX8MQ_CLK_I2C4_ROOT] = imx_clk_hw_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0);
+	hws[IMX8MQ_CLK_MU_ROOT] = imx_clk_hw_gate4("mu_root_clk", "ipg_root", base + 0x4210, 0);
+	hws[IMX8MQ_CLK_OCOTP_ROOT] = imx_clk_hw_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0);
+	hws[IMX8MQ_CLK_PCIE1_ROOT] = imx_clk_hw_gate4("pcie1_root_clk", "pcie1_ctrl", base + 0x4250, 0);
+	hws[IMX8MQ_CLK_PCIE2_ROOT] = imx_clk_hw_gate4("pcie2_root_clk", "pcie2_ctrl", base + 0x4640, 0);
+	hws[IMX8MQ_CLK_PWM1_ROOT] = imx_clk_hw_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0);
+	hws[IMX8MQ_CLK_PWM2_ROOT] = imx_clk_hw_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0);
+	hws[IMX8MQ_CLK_PWM3_ROOT] = imx_clk_hw_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0);
+	hws[IMX8MQ_CLK_PWM4_ROOT] = imx_clk_hw_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0);
+	hws[IMX8MQ_CLK_QSPI_ROOT] = imx_clk_hw_gate4("qspi_root_clk", "qspi", base + 0x42f0, 0);
+	hws[IMX8MQ_CLK_RAWNAND_ROOT] = imx_clk_hw_gate2_shared2("nand_root_clk", "nand", base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MQ_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_hw_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", base + 0x4300, 0, &share_count_nand);
+	hws[IMX8MQ_CLK_SAI1_ROOT] = imx_clk_hw_gate2_shared2("sai1_root_clk", "sai1", base + 0x4330, 0, &share_count_sai1);
+	hws[IMX8MQ_CLK_SAI1_IPG] = imx_clk_hw_gate2_shared2("sai1_ipg_clk", "ipg_audio_root", base + 0x4330, 0, &share_count_sai1);
+	hws[IMX8MQ_CLK_SAI2_ROOT] = imx_clk_hw_gate2_shared2("sai2_root_clk", "sai2", base + 0x4340, 0, &share_count_sai2);
+	hws[IMX8MQ_CLK_SAI2_IPG] = imx_clk_hw_gate2_shared2("sai2_ipg_clk", "ipg_root", base + 0x4340, 0, &share_count_sai2);
+	hws[IMX8MQ_CLK_SAI3_ROOT] = imx_clk_hw_gate2_shared2("sai3_root_clk", "sai3", base + 0x4350, 0, &share_count_sai3);
+	hws[IMX8MQ_CLK_SAI3_IPG] = imx_clk_hw_gate2_shared2("sai3_ipg_clk", "ipg_root", base + 0x4350, 0, &share_count_sai3);
+	hws[IMX8MQ_CLK_SAI4_ROOT] = imx_clk_hw_gate2_shared2("sai4_root_clk", "sai4", base + 0x4360, 0, &share_count_sai4);
+	hws[IMX8MQ_CLK_SAI4_IPG] = imx_clk_hw_gate2_shared2("sai4_ipg_clk", "ipg_audio_root", base + 0x4360, 0, &share_count_sai4);
+	hws[IMX8MQ_CLK_SAI5_ROOT] = imx_clk_hw_gate2_shared2("sai5_root_clk", "sai5", base + 0x4370, 0, &share_count_sai5);
+	hws[IMX8MQ_CLK_SAI5_IPG] = imx_clk_hw_gate2_shared2("sai5_ipg_clk", "ipg_audio_root", base + 0x4370, 0, &share_count_sai5);
+	hws[IMX8MQ_CLK_SAI6_ROOT] = imx_clk_hw_gate2_shared2("sai6_root_clk", "sai6", base + 0x4380, 0, &share_count_sai6);
+	hws[IMX8MQ_CLK_SAI6_IPG] = imx_clk_hw_gate2_shared2("sai6_ipg_clk", "ipg_audio_root", base + 0x4380, 0, &share_count_sai6);
+	hws[IMX8MQ_CLK_SNVS_ROOT] = imx_clk_hw_gate4("snvs_root_clk", "ipg_root", base + 0x4470, 0);
+	hws[IMX8MQ_CLK_UART1_ROOT] = imx_clk_hw_gate4("uart1_root_clk", "uart1", base + 0x4490, 0);
+	hws[IMX8MQ_CLK_UART2_ROOT] = imx_clk_hw_gate4("uart2_root_clk", "uart2", base + 0x44a0, 0);
+	hws[IMX8MQ_CLK_UART3_ROOT] = imx_clk_hw_gate4("uart3_root_clk", "uart3", base + 0x44b0, 0);
+	hws[IMX8MQ_CLK_UART4_ROOT] = imx_clk_hw_gate4("uart4_root_clk", "uart4", base + 0x44c0, 0);
+	hws[IMX8MQ_CLK_USB1_CTRL_ROOT] = imx_clk_hw_gate4("usb1_ctrl_root_clk", "usb_bus", base + 0x44d0, 0);
+	hws[IMX8MQ_CLK_USB2_CTRL_ROOT] = imx_clk_hw_gate4("usb2_ctrl_root_clk", "usb_bus", base + 0x44e0, 0);
+	hws[IMX8MQ_CLK_USB1_PHY_ROOT] = imx_clk_hw_gate4("usb1_phy_root_clk", "usb_phy_ref", base + 0x44f0, 0);
+	hws[IMX8MQ_CLK_USB2_PHY_ROOT] = imx_clk_hw_gate4("usb2_phy_root_clk", "usb_phy_ref", base + 0x4500, 0);
+	hws[IMX8MQ_CLK_USDHC1_ROOT] = imx_clk_hw_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0);
+	hws[IMX8MQ_CLK_USDHC2_ROOT] = imx_clk_hw_gate4("usdhc2_root_clk", "usdhc2", base + 0x4520, 0);
+	hws[IMX8MQ_CLK_WDOG1_ROOT] = imx_clk_hw_gate4("wdog1_root_clk", "wdog", base + 0x4530, 0);
+	hws[IMX8MQ_CLK_WDOG2_ROOT] = imx_clk_hw_gate4("wdog2_root_clk", "wdog", base + 0x4540, 0);
+	hws[IMX8MQ_CLK_WDOG3_ROOT] = imx_clk_hw_gate4("wdog3_root_clk", "wdog", base + 0x4550, 0);
+	hws[IMX8MQ_CLK_VPU_G1_ROOT] = imx_clk_hw_gate2_flags("vpu_g1_root_clk", "vpu_g1", base + 0x4560, 0, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
+	hws[IMX8MQ_CLK_GPU_ROOT] = imx_clk_hw_gate4("gpu_root_clk", "gpu_core", base + 0x4570, 0);
+	hws[IMX8MQ_CLK_VPU_G2_ROOT] = imx_clk_hw_gate2_flags("vpu_g2_root_clk", "vpu_g2", base + 0x45a0, 0, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
+	hws[IMX8MQ_CLK_DISP_ROOT] = imx_clk_hw_gate2_shared2("disp_root_clk", "disp_dc8000", base + 0x45d0, 0, &share_count_dcss);
+	hws[IMX8MQ_CLK_DISP_AXI_ROOT]  = imx_clk_hw_gate2_shared2("disp_axi_root_clk", "disp_axi", base + 0x45d0, 0, &share_count_dcss);
+	hws[IMX8MQ_CLK_DISP_APB_ROOT]  = imx_clk_hw_gate2_shared2("disp_apb_root_clk", "disp_apb", base + 0x45d0, 0, &share_count_dcss);
+	hws[IMX8MQ_CLK_DISP_RTRM_ROOT] = imx_clk_hw_gate2_shared2("disp_rtrm_root_clk", "disp_rtrm", base + 0x45d0, 0, &share_count_dcss);
+	hws[IMX8MQ_CLK_TMU_ROOT] = imx_clk_hw_gate4("tmu_root_clk", "ipg_root", base + 0x4620, 0);
+	hws[IMX8MQ_CLK_VPU_DEC_ROOT] = imx_clk_hw_gate2_flags("vpu_dec_root_clk", "vpu_bus", base + 0x4630, 0, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
+	hws[IMX8MQ_CLK_CSI1_ROOT] = imx_clk_hw_gate4("csi1_root_clk", "csi1_core", base + 0x4650, 0);
+	hws[IMX8MQ_CLK_CSI2_ROOT] = imx_clk_hw_gate4("csi2_root_clk", "csi2_core", base + 0x4660, 0);
+	hws[IMX8MQ_CLK_SDMA1_ROOT] = imx_clk_hw_gate4("sdma1_clk", "ipg_root", base + 0x43a0, 0);
+	hws[IMX8MQ_CLK_SDMA2_ROOT] = imx_clk_hw_gate4("sdma2_clk", "ipg_audio_root", base + 0x43b0, 0);
+
+	hws[IMX8MQ_GPT_3M_CLK] = imx_clk_hw_fixed_factor("gpt_3m", "osc_25m", 1, 8);
+	hws[IMX8MQ_CLK_DRAM_ALT_ROOT] = imx_clk_hw_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
+
+	hws[IMX8MQ_CLK_ARM] = imx_clk_hw_cpu("arm", "arm_a53_core",
+					   hws[IMX8MQ_CLK_A53_CORE]->clk,
+					   hws[IMX8MQ_CLK_A53_CORE]->clk,
+					   hws[IMX8MQ_ARM_PLL_OUT]->clk,
+					   hws[IMX8MQ_CLK_A53_DIV]->clk);
 
-	clks[IMX8MQ_CLK_DRAM_ALT] = imx8m_clk_composite("dram_alt", imx8mq_dram_alt_sels, base + 0xa000);
-	clks[IMX8MQ_CLK_DRAM_APB] = imx8m_clk_composite_critical("dram_apb", imx8mq_dram_apb_sels, base + 0xa080);
-	clks[IMX8MQ_CLK_VPU_G1] = imx8m_clk_composite("vpu_g1", imx8mq_vpu_g1_sels, base + 0xa100);
-	clks[IMX8MQ_CLK_VPU_G2] = imx8m_clk_composite("vpu_g2", imx8mq_vpu_g2_sels, base + 0xa180);
-	clks[IMX8MQ_CLK_DISP_DTRC] = imx8m_clk_composite("disp_dtrc", imx8mq_disp_dtrc_sels, base + 0xa200);
-	clks[IMX8MQ_CLK_DISP_DC8000] = imx8m_clk_composite("disp_dc8000", imx8mq_disp_dc8000_sels, base + 0xa280);
-	clks[IMX8MQ_CLK_PCIE1_CTRL] = imx8m_clk_composite("pcie1_ctrl", imx8mq_pcie1_ctrl_sels, base + 0xa300);
-	clks[IMX8MQ_CLK_PCIE1_PHY] = imx8m_clk_composite("pcie1_phy", imx8mq_pcie1_phy_sels, base + 0xa380);
-	clks[IMX8MQ_CLK_PCIE1_AUX] = imx8m_clk_composite("pcie1_aux", imx8mq_pcie1_aux_sels, base + 0xa400);
-	clks[IMX8MQ_CLK_DC_PIXEL] = imx8m_clk_composite("dc_pixel", imx8mq_dc_pixel_sels, base + 0xa480);
-	clks[IMX8MQ_CLK_LCDIF_PIXEL] = imx8m_clk_composite("lcdif_pixel", imx8mq_lcdif_pixel_sels, base + 0xa500);
-	clks[IMX8MQ_CLK_SAI1] = imx8m_clk_composite("sai1", imx8mq_sai1_sels, base + 0xa580);
-	clks[IMX8MQ_CLK_SAI2] = imx8m_clk_composite("sai2", imx8mq_sai2_sels, base + 0xa600);
-	clks[IMX8MQ_CLK_SAI3] = imx8m_clk_composite("sai3", imx8mq_sai3_sels, base + 0xa680);
-	clks[IMX8MQ_CLK_SAI4] = imx8m_clk_composite("sai4", imx8mq_sai4_sels, base + 0xa700);
-	clks[IMX8MQ_CLK_SAI5] = imx8m_clk_composite("sai5", imx8mq_sai5_sels, base + 0xa780);
-	clks[IMX8MQ_CLK_SAI6] = imx8m_clk_composite("sai6", imx8mq_sai6_sels, base + 0xa800);
-	clks[IMX8MQ_CLK_SPDIF1] = imx8m_clk_composite("spdif1", imx8mq_spdif1_sels, base + 0xa880);
-	clks[IMX8MQ_CLK_SPDIF2] = imx8m_clk_composite("spdif2", imx8mq_spdif2_sels, base + 0xa900);
-	clks[IMX8MQ_CLK_ENET_REF] = imx8m_clk_composite("enet_ref", imx8mq_enet_ref_sels, base + 0xa980);
-	clks[IMX8MQ_CLK_ENET_TIMER] = imx8m_clk_composite("enet_timer", imx8mq_enet_timer_sels, base + 0xaa00);
-	clks[IMX8MQ_CLK_ENET_PHY_REF] = imx8m_clk_composite("enet_phy", imx8mq_enet_phy_sels, base + 0xaa80);
-	clks[IMX8MQ_CLK_NAND] = imx8m_clk_composite("nand", imx8mq_nand_sels, base + 0xab00);
-	clks[IMX8MQ_CLK_QSPI] = imx8m_clk_composite("qspi", imx8mq_qspi_sels, base + 0xab80);
-	clks[IMX8MQ_CLK_USDHC1] = imx8m_clk_composite("usdhc1", imx8mq_usdhc1_sels, base + 0xac00);
-	clks[IMX8MQ_CLK_USDHC2] = imx8m_clk_composite("usdhc2", imx8mq_usdhc2_sels, base + 0xac80);
-	clks[IMX8MQ_CLK_I2C1] = imx8m_clk_composite("i2c1", imx8mq_i2c1_sels, base + 0xad00);
-	clks[IMX8MQ_CLK_I2C2] = imx8m_clk_composite("i2c2", imx8mq_i2c2_sels, base + 0xad80);
-	clks[IMX8MQ_CLK_I2C3] = imx8m_clk_composite("i2c3", imx8mq_i2c3_sels, base + 0xae00);
-	clks[IMX8MQ_CLK_I2C4] = imx8m_clk_composite("i2c4", imx8mq_i2c4_sels, base + 0xae80);
-	clks[IMX8MQ_CLK_UART1] = imx8m_clk_composite("uart1", imx8mq_uart1_sels, base + 0xaf00);
-	clks[IMX8MQ_CLK_UART2] = imx8m_clk_composite("uart2", imx8mq_uart2_sels, base + 0xaf80);
-	clks[IMX8MQ_CLK_UART3] = imx8m_clk_composite("uart3", imx8mq_uart3_sels, base + 0xb000);
-	clks[IMX8MQ_CLK_UART4] = imx8m_clk_composite("uart4", imx8mq_uart4_sels, base + 0xb080);
-	clks[IMX8MQ_CLK_USB_CORE_REF] = imx8m_clk_composite("usb_core_ref", imx8mq_usb_core_sels, base + 0xb100);
-	clks[IMX8MQ_CLK_USB_PHY_REF] = imx8m_clk_composite("usb_phy_ref", imx8mq_usb_phy_sels, base + 0xb180);
-	clks[IMX8MQ_CLK_GIC] = imx8m_clk_composite_critical("gic", imx8mq_gic_sels, base + 0xb200);
-	clks[IMX8MQ_CLK_ECSPI1] = imx8m_clk_composite("ecspi1", imx8mq_ecspi1_sels, base + 0xb280);
-	clks[IMX8MQ_CLK_ECSPI2] = imx8m_clk_composite("ecspi2", imx8mq_ecspi2_sels, base + 0xb300);
-	clks[IMX8MQ_CLK_PWM1] = imx8m_clk_composite("pwm1", imx8mq_pwm1_sels, base + 0xb380);
-	clks[IMX8MQ_CLK_PWM2] = imx8m_clk_composite("pwm2", imx8mq_pwm2_sels, base + 0xb400);
-	clks[IMX8MQ_CLK_PWM3] = imx8m_clk_composite("pwm3", imx8mq_pwm3_sels, base + 0xb480);
-	clks[IMX8MQ_CLK_PWM4] = imx8m_clk_composite("pwm4", imx8mq_pwm4_sels, base + 0xb500);
-	clks[IMX8MQ_CLK_GPT1] = imx8m_clk_composite("gpt1", imx8mq_gpt1_sels, base + 0xb580);
-	clks[IMX8MQ_CLK_WDOG] = imx8m_clk_composite("wdog", imx8mq_wdog_sels, base + 0xb900);
-	clks[IMX8MQ_CLK_WRCLK] = imx8m_clk_composite("wrclk", imx8mq_wrclk_sels, base + 0xb980);
-	clks[IMX8MQ_CLK_CLKO1] = imx8m_clk_composite("clko1", imx8mq_clko1_sels, base + 0xba00);
-	clks[IMX8MQ_CLK_CLKO2] = imx8m_clk_composite("clko2", imx8mq_clko2_sels, base + 0xba80);
-	clks[IMX8MQ_CLK_DSI_CORE] = imx8m_clk_composite("dsi_core", imx8mq_dsi_core_sels, base + 0xbb00);
-	clks[IMX8MQ_CLK_DSI_PHY_REF] = imx8m_clk_composite("dsi_phy_ref", imx8mq_dsi_phy_sels, base + 0xbb80);
-	clks[IMX8MQ_CLK_DSI_DBI] = imx8m_clk_composite("dsi_dbi", imx8mq_dsi_dbi_sels, base + 0xbc00);
-	clks[IMX8MQ_CLK_DSI_ESC] = imx8m_clk_composite("dsi_esc", imx8mq_dsi_esc_sels, base + 0xbc80);
-	clks[IMX8MQ_CLK_DSI_AHB] = imx8m_clk_composite("dsi_ahb", imx8mq_dsi_ahb_sels, base + 0x9200);
-	clks[IMX8MQ_CLK_DSI_IPG_DIV] = imx_clk_divider2("dsi_ipg_div", "dsi_ahb", base + 0x9280, 0, 6);
-	clks[IMX8MQ_CLK_CSI1_CORE] = imx8m_clk_composite("csi1_core", imx8mq_csi1_core_sels, base + 0xbd00);
-	clks[IMX8MQ_CLK_CSI1_PHY_REF] = imx8m_clk_composite("csi1_phy_ref", imx8mq_csi1_phy_sels, base + 0xbd80);
-	clks[IMX8MQ_CLK_CSI1_ESC] = imx8m_clk_composite("csi1_esc", imx8mq_csi1_esc_sels, base + 0xbe00);
-	clks[IMX8MQ_CLK_CSI2_CORE] = imx8m_clk_composite("csi2_core", imx8mq_csi2_core_sels, base + 0xbe80);
-	clks[IMX8MQ_CLK_CSI2_PHY_REF] = imx8m_clk_composite("csi2_phy_ref", imx8mq_csi2_phy_sels, base + 0xbf00);
-	clks[IMX8MQ_CLK_CSI2_ESC] = imx8m_clk_composite("csi2_esc", imx8mq_csi2_esc_sels, base + 0xbf80);
-	clks[IMX8MQ_CLK_PCIE2_CTRL] = imx8m_clk_composite("pcie2_ctrl", imx8mq_pcie2_ctrl_sels, base + 0xc000);
-	clks[IMX8MQ_CLK_PCIE2_PHY] = imx8m_clk_composite("pcie2_phy", imx8mq_pcie2_phy_sels, base + 0xc080);
-	clks[IMX8MQ_CLK_PCIE2_AUX] = imx8m_clk_composite("pcie2_aux", imx8mq_pcie2_aux_sels, base + 0xc100);
-	clks[IMX8MQ_CLK_ECSPI3] = imx8m_clk_composite("ecspi3", imx8mq_ecspi3_sels, base + 0xc180);
-
-	clks[IMX8MQ_CLK_ECSPI1_ROOT] = imx_clk_gate4("ecspi1_root_clk", "ecspi1", base + 0x4070, 0);
-	clks[IMX8MQ_CLK_ECSPI2_ROOT] = imx_clk_gate4("ecspi2_root_clk", "ecspi2", base + 0x4080, 0);
-	clks[IMX8MQ_CLK_ECSPI3_ROOT] = imx_clk_gate4("ecspi3_root_clk", "ecspi3", base + 0x4090, 0);
-	clks[IMX8MQ_CLK_ENET1_ROOT] = imx_clk_gate4("enet1_root_clk", "enet_axi", base + 0x40a0, 0);
-	clks[IMX8MQ_CLK_GPIO1_ROOT] = imx_clk_gate4("gpio1_root_clk", "ipg_root", base + 0x40b0, 0);
-	clks[IMX8MQ_CLK_GPIO2_ROOT] = imx_clk_gate4("gpio2_root_clk", "ipg_root", base + 0x40c0, 0);
-	clks[IMX8MQ_CLK_GPIO3_ROOT] = imx_clk_gate4("gpio3_root_clk", "ipg_root", base + 0x40d0, 0);
-	clks[IMX8MQ_CLK_GPIO4_ROOT] = imx_clk_gate4("gpio4_root_clk", "ipg_root", base + 0x40e0, 0);
-	clks[IMX8MQ_CLK_GPIO5_ROOT] = imx_clk_gate4("gpio5_root_clk", "ipg_root", base + 0x40f0, 0);
-	clks[IMX8MQ_CLK_GPT1_ROOT] = imx_clk_gate4("gpt1_root_clk", "gpt1", base + 0x4100, 0);
-	clks[IMX8MQ_CLK_I2C1_ROOT] = imx_clk_gate4("i2c1_root_clk", "i2c1", base + 0x4170, 0);
-	clks[IMX8MQ_CLK_I2C2_ROOT] = imx_clk_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);
-	clks[IMX8MQ_CLK_I2C3_ROOT] = imx_clk_gate4("i2c3_root_clk", "i2c3", base + 0x4190, 0);
-	clks[IMX8MQ_CLK_I2C4_ROOT] = imx_clk_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0);
-	clks[IMX8MQ_CLK_MU_ROOT] = imx_clk_gate4("mu_root_clk", "ipg_root", base + 0x4210, 0);
-	clks[IMX8MQ_CLK_OCOTP_ROOT] = imx_clk_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0);
-	clks[IMX8MQ_CLK_PCIE1_ROOT] = imx_clk_gate4("pcie1_root_clk", "pcie1_ctrl", base + 0x4250, 0);
-	clks[IMX8MQ_CLK_PCIE2_ROOT] = imx_clk_gate4("pcie2_root_clk", "pcie2_ctrl", base + 0x4640, 0);
-	clks[IMX8MQ_CLK_PWM1_ROOT] = imx_clk_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0);
-	clks[IMX8MQ_CLK_PWM2_ROOT] = imx_clk_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0);
-	clks[IMX8MQ_CLK_PWM3_ROOT] = imx_clk_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0);
-	clks[IMX8MQ_CLK_PWM4_ROOT] = imx_clk_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0);
-	clks[IMX8MQ_CLK_QSPI_ROOT] = imx_clk_gate4("qspi_root_clk", "qspi", base + 0x42f0, 0);
-	clks[IMX8MQ_CLK_RAWNAND_ROOT] = imx_clk_gate2_shared2("nand_root_clk", "nand", base + 0x4300, 0, &share_count_nand);
-	clks[IMX8MQ_CLK_NAND_USDHC_BUS_RAWNAND_CLK] = imx_clk_gate2_shared2("nand_usdhc_rawnand_clk", "nand_usdhc_bus", base + 0x4300, 0, &share_count_nand);
-	clks[IMX8MQ_CLK_SAI1_ROOT] = imx_clk_gate2_shared2("sai1_root_clk", "sai1", base + 0x4330, 0, &share_count_sai1);
-	clks[IMX8MQ_CLK_SAI1_IPG] = imx_clk_gate2_shared2("sai1_ipg_clk", "ipg_audio_root", base + 0x4330, 0, &share_count_sai1);
-	clks[IMX8MQ_CLK_SAI2_ROOT] = imx_clk_gate2_shared2("sai2_root_clk", "sai2", base + 0x4340, 0, &share_count_sai2);
-	clks[IMX8MQ_CLK_SAI2_IPG] = imx_clk_gate2_shared2("sai2_ipg_clk", "ipg_root", base + 0x4340, 0, &share_count_sai2);
-	clks[IMX8MQ_CLK_SAI3_ROOT] = imx_clk_gate2_shared2("sai3_root_clk", "sai3", base + 0x4350, 0, &share_count_sai3);
-	clks[IMX8MQ_CLK_SAI3_IPG] = imx_clk_gate2_shared2("sai3_ipg_clk", "ipg_root", base + 0x4350, 0, &share_count_sai3);
-	clks[IMX8MQ_CLK_SAI4_ROOT] = imx_clk_gate2_shared2("sai4_root_clk", "sai4", base + 0x4360, 0, &share_count_sai4);
-	clks[IMX8MQ_CLK_SAI4_IPG] = imx_clk_gate2_shared2("sai4_ipg_clk", "ipg_audio_root", base + 0x4360, 0, &share_count_sai4);
-	clks[IMX8MQ_CLK_SAI5_ROOT] = imx_clk_gate2_shared2("sai5_root_clk", "sai5", base + 0x4370, 0, &share_count_sai5);
-	clks[IMX8MQ_CLK_SAI5_IPG] = imx_clk_gate2_shared2("sai5_ipg_clk", "ipg_audio_root", base + 0x4370, 0, &share_count_sai5);
-	clks[IMX8MQ_CLK_SAI6_ROOT] = imx_clk_gate2_shared2("sai6_root_clk", "sai6", base + 0x4380, 0, &share_count_sai6);
-	clks[IMX8MQ_CLK_SAI6_IPG] = imx_clk_gate2_shared2("sai6_ipg_clk", "ipg_audio_root", base + 0x4380, 0, &share_count_sai6);
-	clks[IMX8MQ_CLK_SNVS_ROOT] = imx_clk_gate4("snvs_root_clk", "ipg_root", base + 0x4470, 0);
-	clks[IMX8MQ_CLK_UART1_ROOT] = imx_clk_gate4("uart1_root_clk", "uart1", base + 0x4490, 0);
-	clks[IMX8MQ_CLK_UART2_ROOT] = imx_clk_gate4("uart2_root_clk", "uart2", base + 0x44a0, 0);
-	clks[IMX8MQ_CLK_UART3_ROOT] = imx_clk_gate4("uart3_root_clk", "uart3", base + 0x44b0, 0);
-	clks[IMX8MQ_CLK_UART4_ROOT] = imx_clk_gate4("uart4_root_clk", "uart4", base + 0x44c0, 0);
-	clks[IMX8MQ_CLK_USB1_CTRL_ROOT] = imx_clk_gate4("usb1_ctrl_root_clk", "usb_bus", base + 0x44d0, 0);
-	clks[IMX8MQ_CLK_USB2_CTRL_ROOT] = imx_clk_gate4("usb2_ctrl_root_clk", "usb_bus", base + 0x44e0, 0);
-	clks[IMX8MQ_CLK_USB1_PHY_ROOT] = imx_clk_gate4("usb1_phy_root_clk", "usb_phy_ref", base + 0x44f0, 0);
-	clks[IMX8MQ_CLK_USB2_PHY_ROOT] = imx_clk_gate4("usb2_phy_root_clk", "usb_phy_ref", base + 0x4500, 0);
-	clks[IMX8MQ_CLK_USDHC1_ROOT] = imx_clk_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0);
-	clks[IMX8MQ_CLK_USDHC2_ROOT] = imx_clk_gate4("usdhc2_root_clk", "usdhc2", base + 0x4520, 0);
-	clks[IMX8MQ_CLK_WDOG1_ROOT] = imx_clk_gate4("wdog1_root_clk", "wdog", base + 0x4530, 0);
-	clks[IMX8MQ_CLK_WDOG2_ROOT] = imx_clk_gate4("wdog2_root_clk", "wdog", base + 0x4540, 0);
-	clks[IMX8MQ_CLK_WDOG3_ROOT] = imx_clk_gate4("wdog3_root_clk", "wdog", base + 0x4550, 0);
-	clks[IMX8MQ_CLK_VPU_G1_ROOT] = imx_clk_gate2_flags("vpu_g1_root_clk", "vpu_g1", base + 0x4560, 0, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
-	clks[IMX8MQ_CLK_GPU_ROOT] = imx_clk_gate4("gpu_root_clk", "gpu_core_div", base + 0x4570, 0);
-	clks[IMX8MQ_CLK_VPU_G2_ROOT] = imx_clk_gate2_flags("vpu_g2_root_clk", "vpu_g2", base + 0x45a0, 0, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
-	clks[IMX8MQ_CLK_DISP_ROOT] = imx_clk_gate2_shared2("disp_root_clk", "disp_dc8000", base + 0x45d0, 0, &share_count_dcss);
-	clks[IMX8MQ_CLK_DISP_AXI_ROOT]  = imx_clk_gate2_shared2("disp_axi_root_clk", "disp_axi", base + 0x45d0, 0, &share_count_dcss);
-	clks[IMX8MQ_CLK_DISP_APB_ROOT]  = imx_clk_gate2_shared2("disp_apb_root_clk", "disp_apb", base + 0x45d0, 0, &share_count_dcss);
-	clks[IMX8MQ_CLK_DISP_RTRM_ROOT] = imx_clk_gate2_shared2("disp_rtrm_root_clk", "disp_rtrm", base + 0x45d0, 0, &share_count_dcss);
-	clks[IMX8MQ_CLK_TMU_ROOT] = imx_clk_gate4("tmu_root_clk", "ipg_root", base + 0x4620, 0);
-	clks[IMX8MQ_CLK_VPU_DEC_ROOT] = imx_clk_gate2_flags("vpu_dec_root_clk", "vpu_bus", base + 0x4630, 0, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE);
-	clks[IMX8MQ_CLK_CSI1_ROOT] = imx_clk_gate4("csi1_root_clk", "csi1_core", base + 0x4650, 0);
-	clks[IMX8MQ_CLK_CSI2_ROOT] = imx_clk_gate4("csi2_root_clk", "csi2_core", base + 0x4660, 0);
-	clks[IMX8MQ_CLK_SDMA1_ROOT] = imx_clk_gate4("sdma1_clk", "ipg_root", base + 0x43a0, 0);
-	clks[IMX8MQ_CLK_SDMA2_ROOT] = imx_clk_gate4("sdma2_clk", "ipg_audio_root", base + 0x43b0, 0);
-
-	clks[IMX8MQ_GPT_3M_CLK] = imx_clk_fixed_factor("gpt_3m", "osc_25m", 1, 8);
-	clks[IMX8MQ_CLK_DRAM_ALT_ROOT] = imx_clk_fixed_factor("dram_alt_root", "dram_alt", 1, 4);
-
-	clks[IMX8MQ_CLK_ARM] = imx_clk_cpu("arm", "arm_a53_div",
-					   clks[IMX8MQ_CLK_A53_DIV],
-					   clks[IMX8MQ_CLK_A53_SRC],
-					   clks[IMX8MQ_ARM_PLL_OUT],
-					   clks[IMX8MQ_SYS1_PLL_800M]);
+	imx_check_clk_hws(hws, IMX8MQ_CLK_END);
 
-	imx_check_clocks(clks, ARRAY_SIZE(clks));
+	err = of_clk_add_hw_provider(np, of_clk_hw_onecell_get, clk_hw_data);
+	if (err < 0) {
+		dev_err(dev, "failed to register hws for i.MX8MQ\n");
+		goto unregister_hws;
+	}
 
-	clk_data.clks = clks;
-	clk_data.clk_num = ARRAY_SIZE(clks);
+	for (i = 0; i < ARRAY_SIZE(uart_clk_ids); i++) {
+		int index = uart_clk_ids[i];
 
-	err = of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
-	if (err < 0) {
-		dev_err(dev, "failed to register clks for i.MX8MQ\n");
-		goto unregister_clks;
+		uart_hws[i] = &hws[index]->clk;
 	}
 
-	imx_register_uart_clocks(uart_clks);
+	imx_register_uart_clocks(uart_hws);
 
 	return 0;
 
-unregister_clks:
-	imx_unregister_clocks(clks, ARRAY_SIZE(clks));
+unregister_hws:
+	imx_unregister_hw_clocks(hws, IMX8MQ_CLK_END);
 
 	return err;
 }
@@ -588,7 +657,16 @@
 	.probe = imx8mq_clocks_probe,
 	.driver = {
 		.name = "imx8mq-ccm",
-		.of_match_table = of_match_ptr(imx8mq_clk_of_match),
+		/*
+		 * Disable bind attributes: clocks are not removed and
+		 * reloading the driver will crash or break devices.
+		 */
+		.suppress_bind_attrs = true,
+		.of_match_table = imx8mq_clk_of_match,
 	},
 };
 module_platform_driver(imx8mq_clk_driver);
+
+MODULE_AUTHOR("Abel Vesa <abel.vesa@nxp.com>");
+MODULE_DESCRIPTION("NXP i.MX8MQ clock driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx8qxp-lpcg.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx8qxp-lpcg.c
@@ -9,8 +9,10 @@
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/of.h>
+#include <linux/of_address.h>
 #include <linux/of_device.h>
 #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
 #include <linux/slab.h>
 
 #include "clk-scu.h"
@@ -157,6 +159,135 @@
 	.num_max = IMX_LSIO_LPCG_CLK_END,
 };
 
+#define IMX_LPCG_MAX_CLKS	8
+
+static struct clk_hw *imx_lpcg_of_clk_src_get(struct of_phandle_args *clkspec,
+					      void *data)
+{
+	struct clk_hw_onecell_data *hw_data = data;
+	unsigned int idx = clkspec->args[0] / 4;
+
+	if (idx >= hw_data->num) {
+		pr_err("%s: invalid index %u\n", __func__, idx);
+		return ERR_PTR(-EINVAL);
+	}
+
+	return hw_data->hws[idx];
+}
+
+static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev,
+				       struct device_node *np)
+{
+	const char *output_names[IMX_LPCG_MAX_CLKS];
+	const char *parent_names[IMX_LPCG_MAX_CLKS];
+	unsigned int bit_offset[IMX_LPCG_MAX_CLKS];
+	struct clk_hw_onecell_data *clk_data;
+	struct clk_hw **clk_hws;
+	struct resource *res;
+	void __iomem *base;
+	int count;
+	int idx;
+	int ret;
+	int i;
+
+	if (!of_device_is_compatible(np, "fsl,imx8qxp-lpcg"))
+		return -EINVAL;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(base))
+		return PTR_ERR(base);
+
+	count = of_property_count_u32_elems(np, "clock-indices");
+	if (count < 0) {
+		dev_err(&pdev->dev, "failed to count clocks\n");
+		return -EINVAL;
+	}
+
+	/*
+	 * A trick here is that we set the num of clks to the MAX instead
+	 * of the count from clock-indices because one LPCG supports up to
+	 * 8 clock outputs which each of them is fixed to 4 bits. Then we can
+	 * easily get the clock by clk-indices (bit-offset) / 4.
+	 * And the cost is very limited few pointers.
+	 */
+
+	clk_data = devm_kzalloc(&pdev->dev, struct_size(clk_data, hws,
+				IMX_LPCG_MAX_CLKS), GFP_KERNEL);
+	if (!clk_data)
+		return -ENOMEM;
+
+	clk_data->num = IMX_LPCG_MAX_CLKS;
+	clk_hws = clk_data->hws;
+
+	ret = of_property_read_u32_array(np, "clock-indices", bit_offset,
+					 count);
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to read clock-indices\n");
+		return -EINVAL;
+	}
+
+	ret = of_clk_parent_fill(np, parent_names, count);
+	if (ret != count) {
+		dev_err(&pdev->dev, "failed to get clock parent names\n");
+		return count;
+	}
+
+	ret = of_property_read_string_array(np, "clock-output-names",
+					    output_names, count);
+	if (ret != count) {
+		dev_err(&pdev->dev, "failed to read clock-output-names\n");
+		return -EINVAL;
+	}
+
+	pm_runtime_get_noresume(&pdev->dev);
+	pm_runtime_set_active(&pdev->dev);
+	pm_runtime_set_autosuspend_delay(&pdev->dev, 500);
+	pm_runtime_use_autosuspend(&pdev->dev);
+	pm_runtime_enable(&pdev->dev);
+
+	for (i = 0; i < count; i++) {
+		idx = bit_offset[i] / 4;
+		if (idx > IMX_LPCG_MAX_CLKS) {
+			dev_warn(&pdev->dev, "invalid bit offset of clock %d\n",
+				 i);
+			ret = -EINVAL;
+			goto unreg;
+		}
+
+		clk_hws[idx] = imx_clk_lpcg_scu_dev(&pdev->dev, output_names[i],
+						    parent_names[i], 0, base,
+						    bit_offset[i], false);
+		if (IS_ERR(clk_hws[idx])) {
+			dev_warn(&pdev->dev, "failed to register clock %d\n",
+				 idx);
+			ret = PTR_ERR(clk_hws[idx]);
+			goto unreg;
+		}
+	}
+
+	ret = devm_of_clk_add_hw_provider(&pdev->dev, imx_lpcg_of_clk_src_get,
+					  clk_data);
+	if (ret)
+		goto unreg;
+
+	pm_runtime_mark_last_busy(&pdev->dev);
+	pm_runtime_put_autosuspend(&pdev->dev);
+
+	return 0;
+
+unreg:
+	while (--i >= 0) {
+		idx = bit_offset[i] / 4;
+		if (clk_hws[idx])
+			imx_clk_lpcg_scu_unregister(clk_hws[idx]);
+	}
+
+	pm_runtime_disable(&pdev->dev);
+
+	return ret;
+}
+
 static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -167,12 +298,29 @@
 	struct resource *res;
 	struct clk_hw **clks;
 	void __iomem *base;
+	int ret;
 	int i;
 
+	/* try new binding to parse clocks from device tree first */
+	ret = imx_lpcg_parse_clks_from_dt(pdev, np);
+	if (!ret)
+		return 0;
+
 	ss_lpcg = of_device_get_match_data(dev);
 	if (!ss_lpcg)
 		return -ENODEV;
 
+	/*
+	 * Please don't replace this with devm_platform_ioremap_resource.
+	 *
+	 * devm_platform_ioremap_resource calls devm_ioremap_resource which
+	 * differs from devm_ioremap by also calling devm_request_mem_region
+	 * and preventing other mappings in the same area.
+	 *
+	 * On imx8 the LPCG nodes map entire subsystems and overlap
+	 * peripherals, this means that using devm_platform_ioremap_resource
+	 * will cause many devices to fail to probe including serial ports.
+	 */
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!res)
 		return -EINVAL;
@@ -208,6 +356,7 @@
 	{ .compatible = "fsl,imx8qxp-lpcg-adma", &imx8qxp_ss_adma, },
 	{ .compatible = "fsl,imx8qxp-lpcg-conn", &imx8qxp_ss_conn, },
 	{ .compatible = "fsl,imx8qxp-lpcg-lsio", &imx8qxp_ss_lsio, },
+	{ .compatible = "fsl,imx8qxp-lpcg", NULL },
 	{ /* sentinel */ }
 };
 
@@ -215,9 +364,14 @@
 	.driver = {
 		.name = "imx8qxp-lpcg-clk",
 		.of_match_table = imx8qxp_lpcg_match,
+		.pm = &imx_clk_lpcg_scu_pm_ops,
 		.suppress_bind_attrs = true,
 	},
 	.probe = imx8qxp_lpcg_clk_probe,
 };
 
 builtin_platform_driver(imx8qxp_lpcg_clk_driver);
+
+MODULE_AUTHOR("Aisheng Dong <aisheng.dong@nxp.com>");
+MODULE_DESCRIPTION("NXP i.MX8QXP LPCG clock driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-imx8qxp.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-imx8qxp.c
@@ -17,14 +17,23 @@
 #include <dt-bindings/clock/imx8-clock.h>
 #include <dt-bindings/firmware/imx/rsrc.h>
 
+static const char *dc0_sels[] = {
+	"clk_dummy",
+	"clk_dummy",
+	"dc0_pll0_clk",
+	"dc0_pll1_clk",
+	"dc0_bypass0_clk",
+};
+
 static int imx8qxp_clk_probe(struct platform_device *pdev)
 {
 	struct device_node *ccm_node = pdev->dev.of_node;
 	struct clk_hw_onecell_data *clk_data;
 	struct clk_hw **clks;
+	u32 clk_cells;
 	int ret, i;
 
-	ret = imx_clk_scu_init();
+	ret = imx_clk_scu_init(ccm_node);
 	if (ret)
 		return ret;
 
@@ -33,6 +42,9 @@
 	if (!clk_data)
 		return -ENOMEM;
 
+	if (of_property_read_u32(ccm_node, "#clock-cells", &clk_cells))
+		return -EINVAL;
+
 	clk_data->num = IMX_SCU_CLK_END;
 	clks = clk_data->hws;
 
@@ -55,78 +67,92 @@
 	clks[IMX_LSIO_BUS_CLK]		= clk_hw_register_fixed_rate(NULL, "lsio_bus_clk_root", NULL, 0, 100000000);
 
 	/* ARM core */
-	clks[IMX_A35_CLK]		= imx_clk_scu("a35_clk", IMX_SC_R_A35, IMX_SC_PM_CLK_CPU);
+	clks[IMX_A35_CLK]		= imx_clk_scu("a35_clk", IMX_SC_R_A35, IMX_SC_PM_CLK_CPU, clk_cells);
 
 	/* LSIO SS */
-	clks[IMX_LSIO_PWM0_CLK]		= imx_clk_scu("pwm0_clk", IMX_SC_R_PWM_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM1_CLK]		= imx_clk_scu("pwm1_clk", IMX_SC_R_PWM_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM2_CLK]		= imx_clk_scu("pwm2_clk", IMX_SC_R_PWM_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM3_CLK]		= imx_clk_scu("pwm3_clk", IMX_SC_R_PWM_3, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM4_CLK]		= imx_clk_scu("pwm4_clk", IMX_SC_R_PWM_4, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM5_CLK]		= imx_clk_scu("pwm5_clk", IMX_SC_R_PWM_5, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM6_CLK]		= imx_clk_scu("pwm6_clk", IMX_SC_R_PWM_6, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_PWM7_CLK]		= imx_clk_scu("pwm7_clk", IMX_SC_R_PWM_7, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_GPT0_CLK]		= imx_clk_scu("gpt0_clk", IMX_SC_R_GPT_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_GPT1_CLK]		= imx_clk_scu("gpt1_clk", IMX_SC_R_GPT_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_GPT2_CLK]		= imx_clk_scu("gpt2_clk", IMX_SC_R_GPT_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_GPT3_CLK]		= imx_clk_scu("gpt3_clk", IMX_SC_R_GPT_3, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_GPT4_CLK]		= imx_clk_scu("gpt4_clk", IMX_SC_R_GPT_4, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_FSPI0_CLK]	= imx_clk_scu("fspi0_clk", IMX_SC_R_FSPI_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_LSIO_FSPI1_CLK]	= imx_clk_scu("fspi1_clk", IMX_SC_R_FSPI_1, IMX_SC_PM_CLK_PER);
+	clks[IMX_LSIO_PWM0_CLK]		= imx_clk_scu("pwm0_clk", IMX_SC_R_PWM_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM1_CLK]		= imx_clk_scu("pwm1_clk", IMX_SC_R_PWM_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM2_CLK]		= imx_clk_scu("pwm2_clk", IMX_SC_R_PWM_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM3_CLK]		= imx_clk_scu("pwm3_clk", IMX_SC_R_PWM_3, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM4_CLK]		= imx_clk_scu("pwm4_clk", IMX_SC_R_PWM_4, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM5_CLK]		= imx_clk_scu("pwm5_clk", IMX_SC_R_PWM_5, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM6_CLK]		= imx_clk_scu("pwm6_clk", IMX_SC_R_PWM_6, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_PWM7_CLK]		= imx_clk_scu("pwm7_clk", IMX_SC_R_PWM_7, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_GPT0_CLK]		= imx_clk_scu("gpt0_clk", IMX_SC_R_GPT_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_GPT1_CLK]		= imx_clk_scu("gpt1_clk", IMX_SC_R_GPT_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_GPT2_CLK]		= imx_clk_scu("gpt2_clk", IMX_SC_R_GPT_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_GPT3_CLK]		= imx_clk_scu("gpt3_clk", IMX_SC_R_GPT_3, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_GPT4_CLK]		= imx_clk_scu("gpt4_clk", IMX_SC_R_GPT_4, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_FSPI0_CLK]	= imx_clk_scu("fspi0_clk", IMX_SC_R_FSPI_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_LSIO_FSPI1_CLK]	= imx_clk_scu("fspi1_clk", IMX_SC_R_FSPI_1, IMX_SC_PM_CLK_PER, clk_cells);
 
 	/* ADMA SS */
-	clks[IMX_ADMA_UART0_CLK]	= imx_clk_scu("uart0_clk", IMX_SC_R_UART_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_UART1_CLK]	= imx_clk_scu("uart1_clk", IMX_SC_R_UART_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_UART2_CLK]	= imx_clk_scu("uart2_clk", IMX_SC_R_UART_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_UART3_CLK]	= imx_clk_scu("uart3_clk", IMX_SC_R_UART_3, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_SPI0_CLK]		= imx_clk_scu("spi0_clk",  IMX_SC_R_SPI_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_SPI1_CLK]		= imx_clk_scu("spi1_clk",  IMX_SC_R_SPI_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_SPI2_CLK]		= imx_clk_scu("spi2_clk",  IMX_SC_R_SPI_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_SPI3_CLK]		= imx_clk_scu("spi3_clk",  IMX_SC_R_SPI_3, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_CAN0_CLK]		= imx_clk_scu("can0_clk",  IMX_SC_R_CAN_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_I2C0_CLK]		= imx_clk_scu("i2c0_clk",  IMX_SC_R_I2C_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_I2C1_CLK]		= imx_clk_scu("i2c1_clk",  IMX_SC_R_I2C_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_I2C2_CLK]		= imx_clk_scu("i2c2_clk",  IMX_SC_R_I2C_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_I2C3_CLK]		= imx_clk_scu("i2c3_clk",  IMX_SC_R_I2C_3, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_FTM0_CLK]		= imx_clk_scu("ftm0_clk",  IMX_SC_R_FTM_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_FTM1_CLK]		= imx_clk_scu("ftm1_clk",  IMX_SC_R_FTM_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_ADC0_CLK]		= imx_clk_scu("adc0_clk",  IMX_SC_R_ADC_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_PWM_CLK]		= imx_clk_scu("pwm_clk",   IMX_SC_R_LCD_0_PWM_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_ADMA_LCD_CLK]		= imx_clk_scu("lcd_clk",   IMX_SC_R_LCD_0, IMX_SC_PM_CLK_PER);
+	clks[IMX_ADMA_UART0_CLK]	= imx_clk_scu("uart0_clk", IMX_SC_R_UART_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_UART1_CLK]	= imx_clk_scu("uart1_clk", IMX_SC_R_UART_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_UART2_CLK]	= imx_clk_scu("uart2_clk", IMX_SC_R_UART_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_UART3_CLK]	= imx_clk_scu("uart3_clk", IMX_SC_R_UART_3, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_SPI0_CLK]		= imx_clk_scu("spi0_clk",  IMX_SC_R_SPI_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_SPI1_CLK]		= imx_clk_scu("spi1_clk",  IMX_SC_R_SPI_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_SPI2_CLK]		= imx_clk_scu("spi2_clk",  IMX_SC_R_SPI_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_SPI3_CLK]		= imx_clk_scu("spi3_clk",  IMX_SC_R_SPI_3, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_CAN0_CLK]		= imx_clk_scu("can0_clk",  IMX_SC_R_CAN_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_I2C0_CLK]		= imx_clk_scu("i2c0_clk",  IMX_SC_R_I2C_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_I2C1_CLK]		= imx_clk_scu("i2c1_clk",  IMX_SC_R_I2C_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_I2C2_CLK]		= imx_clk_scu("i2c2_clk",  IMX_SC_R_I2C_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_I2C3_CLK]		= imx_clk_scu("i2c3_clk",  IMX_SC_R_I2C_3, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_FTM0_CLK]		= imx_clk_scu("ftm0_clk",  IMX_SC_R_FTM_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_FTM1_CLK]		= imx_clk_scu("ftm1_clk",  IMX_SC_R_FTM_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_ADC0_CLK]		= imx_clk_scu("adc0_clk",  IMX_SC_R_ADC_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_PWM_CLK]		= imx_clk_scu("pwm_clk",   IMX_SC_R_LCD_0_PWM_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_ADMA_LCD_CLK]		= imx_clk_scu("lcd_clk",   IMX_SC_R_LCD_0, IMX_SC_PM_CLK_PER, clk_cells);
 
 	/* Connectivity */
-	clks[IMX_CONN_SDHC0_CLK]	= imx_clk_scu("sdhc0_clk", IMX_SC_R_SDHC_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_SDHC1_CLK]	= imx_clk_scu("sdhc1_clk", IMX_SC_R_SDHC_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_SDHC2_CLK]	= imx_clk_scu("sdhc2_clk", IMX_SC_R_SDHC_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_ENET0_ROOT_CLK]	= imx_clk_scu("enet0_clk", IMX_SC_R_ENET_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_ENET0_BYPASS_CLK]	= imx_clk_scu("enet0_bypass_clk", IMX_SC_R_ENET_0, IMX_SC_PM_CLK_BYPASS);
-	clks[IMX_CONN_ENET0_RGMII_CLK]	= imx_clk_scu("enet0_rgmii_clk", IMX_SC_R_ENET_0, IMX_SC_PM_CLK_MISC0);
-	clks[IMX_CONN_ENET1_ROOT_CLK]	= imx_clk_scu("enet1_clk", IMX_SC_R_ENET_1, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_ENET1_BYPASS_CLK]	= imx_clk_scu("enet1_bypass_clk", IMX_SC_R_ENET_1, IMX_SC_PM_CLK_BYPASS);
-	clks[IMX_CONN_ENET1_RGMII_CLK]	= imx_clk_scu("enet1_rgmii_clk", IMX_SC_R_ENET_1, IMX_SC_PM_CLK_MISC0);
-	clks[IMX_CONN_GPMI_BCH_IO_CLK]	= imx_clk_scu("gpmi_io_clk", IMX_SC_R_NAND, IMX_SC_PM_CLK_MST_BUS);
-	clks[IMX_CONN_GPMI_BCH_CLK]	= imx_clk_scu("gpmi_bch_clk", IMX_SC_R_NAND, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_USB2_ACLK]	= imx_clk_scu("usb3_aclk_div", IMX_SC_R_USB_2, IMX_SC_PM_CLK_PER);
-	clks[IMX_CONN_USB2_BUS_CLK]	= imx_clk_scu("usb3_bus_div", IMX_SC_R_USB_2, IMX_SC_PM_CLK_MST_BUS);
-	clks[IMX_CONN_USB2_LPM_CLK]	= imx_clk_scu("usb3_lpm_div", IMX_SC_R_USB_2, IMX_SC_PM_CLK_MISC);
+	clks[IMX_CONN_SDHC0_CLK]	= imx_clk_scu("sdhc0_clk", IMX_SC_R_SDHC_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_SDHC1_CLK]	= imx_clk_scu("sdhc1_clk", IMX_SC_R_SDHC_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_SDHC2_CLK]	= imx_clk_scu("sdhc2_clk", IMX_SC_R_SDHC_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_ENET0_ROOT_CLK]	= imx_clk_scu("enet0_clk", IMX_SC_R_ENET_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_ENET0_BYPASS_CLK]	= imx_clk_scu("enet0_bypass_clk", IMX_SC_R_ENET_0, IMX_SC_PM_CLK_BYPASS, clk_cells);
+	clks[IMX_CONN_ENET0_RGMII_CLK]	= imx_clk_scu("enet0_rgmii_clk", IMX_SC_R_ENET_0, IMX_SC_PM_CLK_MISC0, clk_cells);
+	clks[IMX_CONN_ENET1_ROOT_CLK]	= imx_clk_scu("enet1_clk", IMX_SC_R_ENET_1, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_ENET1_BYPASS_CLK]	= imx_clk_scu("enet1_bypass_clk", IMX_SC_R_ENET_1, IMX_SC_PM_CLK_BYPASS, clk_cells);
+	clks[IMX_CONN_ENET1_RGMII_CLK]	= imx_clk_scu("enet1_rgmii_clk", IMX_SC_R_ENET_1, IMX_SC_PM_CLK_MISC0, clk_cells);
+	clks[IMX_CONN_GPMI_BCH_IO_CLK]	= imx_clk_scu("gpmi_io_clk", IMX_SC_R_NAND, IMX_SC_PM_CLK_MST_BUS, clk_cells);
+	clks[IMX_CONN_GPMI_BCH_CLK]	= imx_clk_scu("gpmi_bch_clk", IMX_SC_R_NAND, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_USB2_ACLK]	= imx_clk_scu("usb3_aclk_div", IMX_SC_R_USB_2, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CONN_USB2_BUS_CLK]	= imx_clk_scu("usb3_bus_div", IMX_SC_R_USB_2, IMX_SC_PM_CLK_MST_BUS, clk_cells);
+	clks[IMX_CONN_USB2_LPM_CLK]	= imx_clk_scu("usb3_lpm_div", IMX_SC_R_USB_2, IMX_SC_PM_CLK_MISC, clk_cells);
 
 	/* Display controller SS */
-	clks[IMX_DC0_DISP0_CLK]		= imx_clk_scu("dc0_disp0_clk", IMX_SC_R_DC_0, IMX_SC_PM_CLK_MISC0);
-	clks[IMX_DC0_DISP1_CLK]		= imx_clk_scu("dc0_disp1_clk", IMX_SC_R_DC_0, IMX_SC_PM_CLK_MISC1);
+	clks[IMX_DC0_DISP0_CLK]		= imx_clk_scu2("dc0_disp0_clk", dc0_sels, ARRAY_SIZE(dc0_sels), IMX_SC_R_DC_0, IMX_SC_PM_CLK_MISC0, clk_cells);
+	clks[IMX_DC0_DISP1_CLK]		= imx_clk_scu2("dc0_disp1_clk", dc0_sels, ARRAY_SIZE(dc0_sels), IMX_SC_R_DC_0, IMX_SC_PM_CLK_MISC1, clk_cells);
+	clks[IMX_DC0_PLL0_CLK]		= imx_clk_scu("dc0_pll0_clk", IMX_SC_R_DC_0_PLL_0, IMX_SC_PM_CLK_PLL, clk_cells);
+	clks[IMX_DC0_PLL1_CLK]		= imx_clk_scu("dc0_pll1_clk", IMX_SC_R_DC_0_PLL_1, IMX_SC_PM_CLK_PLL, clk_cells);
+	clks[IMX_DC0_BYPASS0_CLK]	= imx_clk_scu("dc0_bypass0_clk", IMX_SC_R_DC_0_VIDEO0, IMX_SC_PM_CLK_BYPASS, clk_cells);
+	clks[IMX_DC0_BYPASS1_CLK]	= imx_clk_scu("dc0_bypass1_clk", IMX_SC_R_DC_0_VIDEO1, IMX_SC_PM_CLK_BYPASS, clk_cells);
 
 	/* MIPI-LVDS SS */
-	clks[IMX_MIPI0_I2C0_CLK]	= imx_clk_scu("mipi0_i2c0_clk", IMX_SC_R_MIPI_0_I2C_0, IMX_SC_PM_CLK_MISC2);
-	clks[IMX_MIPI0_I2C1_CLK]	= imx_clk_scu("mipi0_i2c1_clk", IMX_SC_R_MIPI_0_I2C_1, IMX_SC_PM_CLK_MISC2);
+	clks[IMX_MIPI0_LVDS_PIXEL_CLK]	= imx_clk_scu("mipi0_lvds_pixel_clk", IMX_SC_R_LVDS_0, IMX_SC_PM_CLK_MISC2, clk_cells);
+	clks[IMX_MIPI0_LVDS_BYPASS_CLK]	= imx_clk_scu("mipi0_lvds_bypass_clk", IMX_SC_R_LVDS_0, IMX_SC_PM_CLK_BYPASS, clk_cells);
+	clks[IMX_MIPI0_LVDS_PHY_CLK]	= imx_clk_scu("mipi0_lvds_phy_clk", IMX_SC_R_LVDS_0, IMX_SC_PM_CLK_MISC3, clk_cells);
+	clks[IMX_MIPI0_I2C0_CLK]	= imx_clk_scu("mipi0_i2c0_clk", IMX_SC_R_MIPI_0_I2C_0, IMX_SC_PM_CLK_MISC2, clk_cells);
+	clks[IMX_MIPI0_I2C1_CLK]	= imx_clk_scu("mipi0_i2c1_clk", IMX_SC_R_MIPI_0_I2C_1, IMX_SC_PM_CLK_MISC2, clk_cells);
+	clks[IMX_MIPI0_PWM0_CLK]	= imx_clk_scu("mipi0_pwm0_clk", IMX_SC_R_MIPI_0_PWM_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_MIPI1_LVDS_PIXEL_CLK]	= imx_clk_scu("mipi1_lvds_pixel_clk", IMX_SC_R_LVDS_1, IMX_SC_PM_CLK_MISC2, clk_cells);
+	clks[IMX_MIPI1_LVDS_BYPASS_CLK]	= imx_clk_scu("mipi1_lvds_bypass_clk", IMX_SC_R_LVDS_1, IMX_SC_PM_CLK_BYPASS, clk_cells);
+	clks[IMX_MIPI1_LVDS_PHY_CLK]	= imx_clk_scu("mipi1_lvds_phy_clk", IMX_SC_R_LVDS_1, IMX_SC_PM_CLK_MISC3, clk_cells);
+	clks[IMX_MIPI1_I2C0_CLK]	= imx_clk_scu("mipi1_i2c0_clk", IMX_SC_R_MIPI_1_I2C_0, IMX_SC_PM_CLK_MISC2, clk_cells);
+	clks[IMX_MIPI1_I2C1_CLK]	= imx_clk_scu("mipi1_i2c1_clk", IMX_SC_R_MIPI_1_I2C_1, IMX_SC_PM_CLK_MISC2, clk_cells);
+	clks[IMX_MIPI1_PWM0_CLK]	= imx_clk_scu("mipi1_pwm0_clk", IMX_SC_R_MIPI_1_PWM_0, IMX_SC_PM_CLK_PER, clk_cells);
 
 	/* MIPI CSI SS */
-	clks[IMX_CSI0_CORE_CLK]		= imx_clk_scu("mipi_csi0_core_clk", IMX_SC_R_CSI_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_CSI0_ESC_CLK]		= imx_clk_scu("mipi_csi0_esc_clk",  IMX_SC_R_CSI_0, IMX_SC_PM_CLK_MISC);
-	clks[IMX_CSI0_I2C0_CLK]		= imx_clk_scu("mipi_csi0_i2c0_clk", IMX_SC_R_CSI_0_I2C_0, IMX_SC_PM_CLK_PER);
-	clks[IMX_CSI0_PWM0_CLK]		= imx_clk_scu("mipi_csi0_pwm0_clk", IMX_SC_R_CSI_0_PWM_0, IMX_SC_PM_CLK_PER);
+	clks[IMX_CSI0_CORE_CLK]		= imx_clk_scu("mipi_csi0_core_clk", IMX_SC_R_CSI_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CSI0_ESC_CLK]		= imx_clk_scu("mipi_csi0_esc_clk",  IMX_SC_R_CSI_0, IMX_SC_PM_CLK_MISC, clk_cells);
+	clks[IMX_CSI0_I2C0_CLK]		= imx_clk_scu("mipi_csi0_i2c0_clk", IMX_SC_R_CSI_0_I2C_0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_CSI0_PWM0_CLK]		= imx_clk_scu("mipi_csi0_pwm0_clk", IMX_SC_R_CSI_0_PWM_0, IMX_SC_PM_CLK_PER, clk_cells);
 
 	/* GPU SS */
-	clks[IMX_GPU0_CORE_CLK]		= imx_clk_scu("gpu_core0_clk",	 IMX_SC_R_GPU_0_PID0, IMX_SC_PM_CLK_PER);
-	clks[IMX_GPU0_SHADER_CLK]	= imx_clk_scu("gpu_shader0_clk", IMX_SC_R_GPU_0_PID0, IMX_SC_PM_CLK_MISC);
+	clks[IMX_GPU0_CORE_CLK]		= imx_clk_scu("gpu_core0_clk",	 IMX_SC_R_GPU_0_PID0, IMX_SC_PM_CLK_PER, clk_cells);
+	clks[IMX_GPU0_SHADER_CLK]	= imx_clk_scu("gpu_shader0_clk", IMX_SC_R_GPU_0_PID0, IMX_SC_PM_CLK_MISC, clk_cells);
 
 	for (i = 0; i < clk_data->num; i++) {
 		if (IS_ERR(clks[i]))
@@ -134,7 +160,19 @@
 				i, PTR_ERR(clks[i]));
 	}
 
-	return of_clk_add_hw_provider(ccm_node, of_clk_hw_onecell_get, clk_data);
+	if (clk_cells == 2) {
+		ret = of_clk_add_hw_provider(ccm_node, imx_scu_of_clk_src_get, imx_scu_clks);
+		if (ret)
+			imx_clk_scu_unregister();
+	} else {
+		/*
+		 * legacy binding code path doesn't unregister here because
+		 * it will be removed later.
+		 */
+		ret = of_clk_add_hw_provider(ccm_node, of_clk_hw_onecell_get, clk_data);
+	}
+
+	return ret;
 }
 
 static const struct of_device_id imx8qxp_match[] = {
@@ -152,3 +190,7 @@
 	.probe = imx8qxp_clk_probe,
 };
 builtin_platform_driver(imx8qxp_clk_driver);
+
+MODULE_AUTHOR("Aisheng Dong <aisheng.dong@nxp.com>");
+MODULE_DESCRIPTION("NXP i.MX8QXP clock driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-lpcg-scu.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-lpcg-scu.c
@@ -4,6 +4,7 @@
  *	Dong Aisheng <aisheng.dong@nxp.com>
  */
 
+#include <linux/bits.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/io.h>
@@ -33,6 +34,9 @@
 	void __iomem *reg;
 	u8 bit_idx;
 	bool hw_gate;
+
+	/* for state save&restore */
+	u32 state;
 };
 
 #define to_clk_lpcg_scu(_hw) container_of(_hw, struct clk_lpcg_scu, hw)
@@ -80,9 +84,9 @@
 	.disable = clk_lpcg_scu_disable,
 };
 
-struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
-				unsigned long flags, void __iomem *reg,
-				u8 bit_idx, bool hw_gate)
+struct clk_hw *__imx_clk_lpcg_scu(struct device *dev, const char *name,
+				  const char *parent_name, unsigned long flags,
+				  void __iomem *reg, u8 bit_idx, bool hw_gate)
 {
 	struct clk_lpcg_scu *clk;
 	struct clk_init_data init;
@@ -106,11 +110,53 @@
 	clk->hw.init = &init;
 
 	hw = &clk->hw;
-	ret = clk_hw_register(NULL, hw);
+	ret = clk_hw_register(dev, hw);
 	if (ret) {
 		kfree(clk);
 		hw = ERR_PTR(ret);
 	}
 
+	if (dev)
+		dev_set_drvdata(dev, clk);
+
 	return hw;
 }
+
+void imx_clk_lpcg_scu_unregister(struct clk_hw *hw)
+{
+	struct clk_lpcg_scu *clk = to_clk_lpcg_scu(hw);
+
+	clk_hw_unregister(&clk->hw);
+	kfree(clk);
+}
+
+static int __maybe_unused imx_clk_lpcg_scu_suspend(struct device *dev)
+{
+	struct clk_lpcg_scu *clk = dev_get_drvdata(dev);
+
+	clk->state = readl_relaxed(clk->reg);
+	dev_dbg(dev, "save lpcg state 0x%x\n", clk->state);
+
+	return 0;
+}
+
+static int __maybe_unused imx_clk_lpcg_scu_resume(struct device *dev)
+{
+	struct clk_lpcg_scu *clk = dev_get_drvdata(dev);
+
+	/*
+	 * FIXME: Sometimes writes don't work unless the CPU issues
+	 * them twice
+	 */
+
+	writel(clk->state, clk->reg);
+	writel(clk->state, clk->reg);
+	dev_dbg(dev, "restore lpcg state 0x%x\n", clk->state);
+
+	return 0;
+}
+
+const struct dev_pm_ops imx_clk_lpcg_scu_pm_ops = {
+	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(imx_clk_lpcg_scu_suspend,
+				      imx_clk_lpcg_scu_resume)
+};
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pfd.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pfd.c
@@ -12,7 +12,7 @@
 
 /**
  * struct clk_pfd - IMX PFD clock
- * @clk_hw:	clock source
+ * @hw:		clock source
  * @reg:	PFD register address
  * @idx:	the index of PFD encoded in the register
  *
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pfdv2.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pfdv2.c
@@ -17,7 +17,7 @@
 
 /**
  * struct clk_pfdv2 - IMX PFD clock
- * @clk_hw:	clock source
+ * @hw:		clock source
  * @reg:	PFD register address
  * @gate_bit:	Gate bit offset
  * @vld_bit:	Valid bit offset
@@ -98,26 +98,45 @@
 	return tmp;
 }
 
-static long clk_pfdv2_round_rate(struct clk_hw *hw, unsigned long rate,
-				 unsigned long *prate)
+static int clk_pfdv2_determine_rate(struct clk_hw *hw,
+				    struct clk_rate_request *req)
 {
-	u64 tmp = *prate;
+	unsigned long parent_rates[] = {
+					480000000,
+					528000000,
+					req->best_parent_rate
+				       };
+	unsigned long best_rate = -1UL, rate = req->rate;
+	unsigned long best_parent_rate = req->best_parent_rate;
+	u64 tmp;
 	u8 frac;
+	int i;
 
-	tmp = tmp * 18 + rate / 2;
-	do_div(tmp, rate);
-	frac = tmp;
-
-	if (frac < 12)
-		frac = 12;
-	else if (frac > 35)
-		frac = 35;
+	for (i = 0; i < ARRAY_SIZE(parent_rates); i++) {
+		tmp = parent_rates[i];
+		tmp = tmp * 18 + rate / 2;
+		do_div(tmp, rate);
+		frac = tmp;
+
+		if (frac < 12)
+			frac = 12;
+		else if (frac > 35)
+			frac = 35;
+
+		tmp = parent_rates[i];
+		tmp *= 18;
+		do_div(tmp, frac);
+
+		if (abs(tmp - req->rate) < abs(best_rate - req->rate)) {
+			best_rate = tmp;
+			best_parent_rate = parent_rates[i];
+		}
+	}
 
-	tmp = *prate;
-	tmp *= 18;
-	do_div(tmp, frac);
+	req->best_parent_rate = best_parent_rate;
+	req->rate = best_rate;
 
-	return tmp;
+	return 0;
 }
 
 static int clk_pfdv2_is_enabled(struct clk_hw *hw)
@@ -139,6 +158,12 @@
 	u32 val;
 	u8 frac;
 
+	if (!rate)
+		return -EINVAL;
+
+	/* PFD can NOT change rate without gating */
+	WARN_ON(clk_pfdv2_is_enabled(hw));
+
 	tmp = tmp * 18 + rate / 2;
 	do_div(tmp, rate);
 	frac = tmp;
@@ -161,12 +186,12 @@
 	.enable		= clk_pfdv2_enable,
 	.disable	= clk_pfdv2_disable,
 	.recalc_rate	= clk_pfdv2_recalc_rate,
-	.round_rate	= clk_pfdv2_round_rate,
+	.determine_rate	= clk_pfdv2_determine_rate,
 	.set_rate	= clk_pfdv2_set_rate,
 	.is_enabled     = clk_pfdv2_is_enabled,
 };
 
-struct clk_hw *imx_clk_pfdv2(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_pfdv2(const char *name, const char *parent_name,
 			     void __iomem *reg, u8 idx)
 {
 	struct clk_init_data init;
@@ -189,7 +214,7 @@
 	init.ops = &clk_pfdv2_ops;
 	init.parent_names = &parent_name;
 	init.num_parents = 1;
-	init.flags = CLK_SET_RATE_GATE;
+	init.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT;
 
 	pfd->hw.init = &init;
 
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pll14xx.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pll14xx.c
@@ -3,9 +3,10 @@
  * Copyright 2017-2018 NXP.
  */
 
-#include <linux/bitops.h>
+#include <linux/bits.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
+#include <linux/export.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
 #include <linux/slab.h>
@@ -41,6 +42,50 @@
 
 #define to_clk_pll14xx(_hw) container_of(_hw, struct clk_pll14xx, hw)
 
+static const struct imx_pll14xx_rate_table imx_pll1416x_tbl[] = {
+	PLL_1416X_RATE(1800000000U, 225, 3, 0),
+	PLL_1416X_RATE(1600000000U, 200, 3, 0),
+	PLL_1416X_RATE(1500000000U, 375, 3, 1),
+	PLL_1416X_RATE(1400000000U, 350, 3, 1),
+	PLL_1416X_RATE(1200000000U, 300, 3, 1),
+	PLL_1416X_RATE(1000000000U, 250, 3, 1),
+	PLL_1416X_RATE(800000000U,  200, 3, 1),
+	PLL_1416X_RATE(750000000U,  250, 2, 2),
+	PLL_1416X_RATE(700000000U,  350, 3, 2),
+	PLL_1416X_RATE(600000000U,  300, 3, 2),
+};
+
+static const struct imx_pll14xx_rate_table imx_pll1443x_tbl[] = {
+	PLL_1443X_RATE(1039500000U, 173, 2, 1, 16384),
+	PLL_1443X_RATE(650000000U, 325, 3, 2, 0),
+	PLL_1443X_RATE(594000000U, 198, 2, 2, 0),
+	PLL_1443X_RATE(519750000U, 173, 2, 2, 16384),
+	PLL_1443X_RATE(393216000U, 262, 2, 3, 9437),
+	PLL_1443X_RATE(361267200U, 361, 3, 3, 17511),
+};
+
+struct imx_pll14xx_clk imx_1443x_pll = {
+	.type = PLL_1443X,
+	.rate_table = imx_pll1443x_tbl,
+	.rate_count = ARRAY_SIZE(imx_pll1443x_tbl),
+};
+EXPORT_SYMBOL_GPL(imx_1443x_pll);
+
+struct imx_pll14xx_clk imx_1443x_dram_pll = {
+	.type = PLL_1443X,
+	.rate_table = imx_pll1443x_tbl,
+	.rate_count = ARRAY_SIZE(imx_pll1443x_tbl),
+	.flags = CLK_GET_RATE_NOCACHE,
+};
+EXPORT_SYMBOL_GPL(imx_1443x_dram_pll);
+
+struct imx_pll14xx_clk imx_1416x_pll = {
+	.type = PLL_1416X,
+	.rate_table = imx_pll1416x_tbl,
+	.rate_count = ARRAY_SIZE(imx_pll1416x_tbl),
+};
+EXPORT_SYMBOL_GPL(imx_1416x_pll);
+
 static const struct imx_pll14xx_rate_table *imx_get_pll_settings(
 		struct clk_pll14xx *pll, unsigned long rate)
 {
@@ -112,48 +157,22 @@
 	return fvco;
 }
 
-static inline bool clk_pll1416x_mp_change(const struct imx_pll14xx_rate_table *rate,
+static inline bool clk_pll14xx_mp_change(const struct imx_pll14xx_rate_table *rate,
 					  u32 pll_div)
 {
 	u32 old_mdiv, old_pdiv;
 
-	old_mdiv = (pll_div >> MDIV_SHIFT) & MDIV_MASK;
-	old_pdiv = (pll_div >> PDIV_SHIFT) & PDIV_MASK;
+	old_mdiv = (pll_div & MDIV_MASK) >> MDIV_SHIFT;
+	old_pdiv = (pll_div & PDIV_MASK) >> PDIV_SHIFT;
 
 	return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv;
 }
 
-static inline bool clk_pll1443x_mpk_change(const struct imx_pll14xx_rate_table *rate,
-					  u32 pll_div_ctl0, u32 pll_div_ctl1)
-{
-	u32 old_mdiv, old_pdiv, old_kdiv;
-
-	old_mdiv = (pll_div_ctl0 >> MDIV_SHIFT) & MDIV_MASK;
-	old_pdiv = (pll_div_ctl0 >> PDIV_SHIFT) & PDIV_MASK;
-	old_kdiv = (pll_div_ctl1 >> KDIV_SHIFT) & KDIV_MASK;
-
-	return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv ||
-		rate->kdiv != old_kdiv;
-}
-
-static inline bool clk_pll1443x_mp_change(const struct imx_pll14xx_rate_table *rate,
-					  u32 pll_div_ctl0, u32 pll_div_ctl1)
-{
-	u32 old_mdiv, old_pdiv, old_kdiv;
-
-	old_mdiv = (pll_div_ctl0 >> MDIV_SHIFT) & MDIV_MASK;
-	old_pdiv = (pll_div_ctl0 >> PDIV_SHIFT) & PDIV_MASK;
-	old_kdiv = (pll_div_ctl1 >> KDIV_SHIFT) & KDIV_MASK;
-
-	return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv ||
-		rate->kdiv != old_kdiv;
-}
-
 static int clk_pll14xx_wait_lock(struct clk_pll14xx *pll)
 {
 	u32 val;
 
-	return readl_poll_timeout(pll->base, val, val & LOCK_TIMEOUT_US, 0,
+	return readl_poll_timeout(pll->base, val, val & LOCK_STATUS, 0,
 			LOCK_TIMEOUT_US);
 }
 
@@ -174,7 +193,7 @@
 
 	tmp = readl_relaxed(pll->base + 4);
 
-	if (!clk_pll1416x_mp_change(rate, tmp)) {
+	if (!clk_pll14xx_mp_change(rate, tmp)) {
 		tmp &= ~(SDIV_MASK) << SDIV_SHIFT;
 		tmp |= rate->sdiv << SDIV_SHIFT;
 		writel_relaxed(tmp, pll->base + 4);
@@ -239,13 +258,15 @@
 	}
 
 	tmp = readl_relaxed(pll->base + 4);
-	div_val = readl_relaxed(pll->base + 8);
 
-	if (!clk_pll1443x_mpk_change(rate, tmp, div_val)) {
+	if (!clk_pll14xx_mp_change(rate, tmp)) {
 		tmp &= ~(SDIV_MASK) << SDIV_SHIFT;
 		tmp |= rate->sdiv << SDIV_SHIFT;
 		writel_relaxed(tmp, pll->base + 4);
 
+		tmp = rate->kdiv << KDIV_SHIFT;
+		writel_relaxed(tmp, pll->base + 8);
+
 		return 0;
 	}
 
@@ -361,13 +382,14 @@
 	.set_rate	= clk_pll1443x_set_rate,
 };
 
-struct clk *imx_clk_pll14xx(const char *name, const char *parent_name,
-			    void __iomem *base,
-			    const struct imx_pll14xx_clk *pll_clk)
+struct clk_hw *imx_dev_clk_hw_pll14xx(struct device *dev, const char *name,
+				const char *parent_name, void __iomem *base,
+				const struct imx_pll14xx_clk *pll_clk)
 {
 	struct clk_pll14xx *pll;
-	struct clk *clk;
+	struct clk_hw *hw;
 	struct clk_init_data init;
+	int ret;
 	u32 val;
 
 	pll = kzalloc(sizeof(*pll), GFP_KERNEL);
@@ -392,7 +414,9 @@
 	default:
 		pr_err("%s: Unknown pll type for pll clk %s\n",
 		       __func__, name);
-	};
+		kfree(pll);
+		return ERR_PTR(-EINVAL);
+	}
 
 	pll->base = base;
 	pll->hw.init = &init;
@@ -404,12 +428,16 @@
 	val &= ~BYPASS_MASK;
 	writel_relaxed(val, pll->base + GNRL_CTL);
 
-	clk = clk_register(NULL, &pll->hw);
-	if (IS_ERR(clk)) {
-		pr_err("%s: failed to register pll %s %lu\n",
-			__func__, name, PTR_ERR(clk));
+	hw = &pll->hw;
+
+	ret = clk_hw_register(dev, hw);
+	if (ret) {
+		pr_err("%s: failed to register pll %s %d\n",
+			__func__, name, ret);
 		kfree(pll);
+		return ERR_PTR(ret);
 	}
 
-	return clk;
+	return hw;
 }
+EXPORT_SYMBOL_GPL(imx_dev_clk_hw_pll14xx);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pllv1.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pllv1.c
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
+#include <linux/bits.h>
 #include <linux/clk-provider.h>
 #include <linux/io.h>
 #include <linux/slab.h>
@@ -111,12 +112,13 @@
 	.recalc_rate = clk_pllv1_recalc_rate,
 };
 
-struct clk *imx_clk_pllv1(enum imx_pllv1_type type, const char *name,
+struct clk_hw *imx_clk_hw_pllv1(enum imx_pllv1_type type, const char *name,
 		const char *parent, void __iomem *base)
 {
 	struct clk_pllv1 *pll;
-	struct clk *clk;
+	struct clk_hw *hw;
 	struct clk_init_data init;
+	int ret;
 
 	pll = kmalloc(sizeof(*pll), GFP_KERNEL);
 	if (!pll)
@@ -132,10 +134,13 @@
 	init.num_parents = 1;
 
 	pll->hw.init = &init;
+	hw = &pll->hw;
 
-	clk = clk_register(NULL, &pll->hw);
-	if (IS_ERR(clk))
+	ret = clk_hw_register(NULL, hw);
+	if (ret) {
 		kfree(pll);
+		return ERR_PTR(ret);
+	}
 
-	return clk;
+	return hw;
 }
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pllv2.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pllv2.c
@@ -239,12 +239,13 @@
 	.set_rate = clk_pllv2_set_rate,
 };
 
-struct clk *imx_clk_pllv2(const char *name, const char *parent,
+struct clk_hw *imx_clk_hw_pllv2(const char *name, const char *parent,
 		void __iomem *base)
 {
 	struct clk_pllv2 *pll;
-	struct clk *clk;
+	struct clk_hw *hw;
 	struct clk_init_data init;
+	int ret;
 
 	pll = kzalloc(sizeof(*pll), GFP_KERNEL);
 	if (!pll)
@@ -259,10 +260,13 @@
 	init.num_parents = 1;
 
 	pll->hw.init = &init;
+	hw = &pll->hw;
 
-	clk = clk_register(NULL, &pll->hw);
-	if (IS_ERR(clk))
+	ret = clk_hw_register(NULL, hw);
+	if (ret) {
 		kfree(pll);
+		return ERR_PTR(ret);
+	}
 
-	return clk;
+	return hw;
 }
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pllv3.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pllv3.c
@@ -7,6 +7,7 @@
 #include <linux/clk-provider.h>
 #include <linux/delay.h>
 #include <linux/io.h>
+#include <linux/iopoll.h>
 #include <linux/slab.h>
 #include <linux/jiffies.h>
 #include <linux/err.h>
@@ -25,14 +26,19 @@
 #define IMX7_ENET_PLL_POWER	(0x1 << 5)
 #define IMX7_DDR_PLL_POWER	(0x1 << 20)
 
+#define PLL_LOCK_TIMEOUT	10000
+
 /**
  * struct clk_pllv3 - IMX PLL clock version 3
- * @clk_hw:	 clock source
+ * @hw:		clock source
  * @base:	 base address of PLL registers
  * @power_bit:	 pll power bit mask
  * @powerup_set: set power_bit to power up the PLL
  * @div_mask:	 mask of divider bits
  * @div_shift:	 shift of divider bits
+ * @ref_clock:	reference clock rate
+ * @num_offset:	num register offset
+ * @denom_offset: denom register offset
  *
  * IMX PLL clock version 3, found on i.MX6 series.  Divider for pllv3
  * is actually a multiplier, and always sits at bit 0.
@@ -53,23 +59,14 @@
 
 static int clk_pllv3_wait_lock(struct clk_pllv3 *pll)
 {
-	unsigned long timeout = jiffies + msecs_to_jiffies(10);
 	u32 val = readl_relaxed(pll->base) & pll->power_bit;
 
 	/* No need to wait for lock when pll is not powered up */
 	if ((pll->powerup_set && !val) || (!pll->powerup_set && val))
 		return 0;
 
-	/* Wait for PLL to lock */
-	do {
-		if (readl_relaxed(pll->base) & BM_PLL_LOCK)
-			break;
-		if (time_after(jiffies, timeout))
-			break;
-		usleep_range(50, 500);
-	} while (1);
-
-	return readl_relaxed(pll->base) & BM_PLL_LOCK ? 0 : -ETIMEDOUT;
+	return readl_relaxed_poll_timeout(pll->base, val, val & BM_PLL_LOCK,
+					  500, PLL_LOCK_TIMEOUT);
 }
 
 static int clk_pllv3_prepare(struct clk_hw *hw)
@@ -439,7 +436,7 @@
 		break;
 	case IMX_PLLV3_USB_VF610:
 		pll->div_shift = 1;
-		/* fall through */
+		fallthrough;
 	case IMX_PLLV3_USB:
 		ops = &clk_pllv3_ops;
 		pll->powerup_set = true;
@@ -447,7 +444,7 @@
 	case IMX_PLLV3_AV_IMX7:
 		pll->num_offset = PLL_IMX7_NUM_OFFSET;
 		pll->denom_offset = PLL_IMX7_DENOM_OFFSET;
-		/* fall through */
+		fallthrough;
 	case IMX_PLLV3_AV:
 		ops = &clk_pllv3_av_ops;
 		break;
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-pllv4.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-pllv4.c
@@ -7,6 +7,7 @@
  *
  */
 
+#include <linux/bits.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/io.h>
@@ -54,7 +55,7 @@
 				  csr, csr & PLL_VLD, 0, LOCK_TIMEOUT_US);
 }
 
-static int clk_pllv4_is_enabled(struct clk_hw *hw)
+static int clk_pllv4_is_prepared(struct clk_hw *hw)
 {
 	struct clk_pllv4 *pll = to_clk_pllv4(hw);
 
@@ -175,7 +176,7 @@
 	return 0;
 }
 
-static int clk_pllv4_enable(struct clk_hw *hw)
+static int clk_pllv4_prepare(struct clk_hw *hw)
 {
 	u32 val;
 	struct clk_pllv4 *pll = to_clk_pllv4(hw);
@@ -187,7 +188,7 @@
 	return clk_pllv4_wait_lock(pll);
 }
 
-static void clk_pllv4_disable(struct clk_hw *hw)
+static void clk_pllv4_unprepare(struct clk_hw *hw)
 {
 	u32 val;
 	struct clk_pllv4 *pll = to_clk_pllv4(hw);
@@ -201,12 +202,12 @@
 	.recalc_rate	= clk_pllv4_recalc_rate,
 	.round_rate	= clk_pllv4_round_rate,
 	.set_rate	= clk_pllv4_set_rate,
-	.enable		= clk_pllv4_enable,
-	.disable	= clk_pllv4_disable,
-	.is_enabled	= clk_pllv4_is_enabled,
+	.prepare	= clk_pllv4_prepare,
+	.unprepare	= clk_pllv4_unprepare,
+	.is_prepared	= clk_pllv4_is_prepared,
 };
 
-struct clk_hw *imx_clk_pllv4(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_pllv4(const char *name, const char *parent_name,
 			  void __iomem *base)
 {
 	struct clk_pllv4 *pll;
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-scu.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-scu.c
@@ -8,6 +8,10 @@
 #include <linux/arm-smccc.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/pm_domain.h>
+#include <linux/pm_runtime.h>
 #include <linux/slab.h>
 
 #include "clk-scu.h"
@@ -16,6 +20,21 @@
 #define IMX_SIP_SET_CPUFREQ		0x00
 
 static struct imx_sc_ipc *ccm_ipc_handle;
+static struct device_node *pd_np;
+static struct platform_driver imx_clk_scu_driver;
+
+struct imx_scu_clk_node {
+	const char *name;
+	u32 rsrc;
+	u8 clk_type;
+	const char * const *parents;
+	int num_parents;
+
+	struct clk_hw *hw;
+	struct list_head node;
+};
+
+struct list_head imx_scu_clks[IMX_SC_R_LAST];
 
 /*
  * struct clk_scu - Description of one SCU clock
@@ -27,6 +46,10 @@
 	struct clk_hw hw;
 	u16 rsrc_id;
 	u8 clk_type;
+
+	/* for state save&restore */
+	bool is_enabled;
+	u32 rate;
 };
 
 /*
@@ -43,12 +66,12 @@
 	__le32 rate;
 	__le16 resource;
 	u8 clk;
-} __packed;
+} __packed __aligned(4);
 
 struct req_get_clock_rate {
 	__le16 resource;
 	u8 clk;
-} __packed;
+} __packed __aligned(4);
 
 struct resp_get_clock_rate {
 	__le32 rate;
@@ -84,7 +107,7 @@
 		struct req_get_clock_parent {
 			__le16 resource;
 			u8 clk;
-		} __packed req;
+		} __packed __aligned(4) req;
 		struct resp_get_clock_parent {
 			u8 parent;
 		} resp;
@@ -121,16 +144,35 @@
 	u8 clk;
 	u8 enable;
 	u8 autog;
-} __packed;
+} __packed __aligned(4);
 
 static inline struct clk_scu *to_clk_scu(struct clk_hw *hw)
 {
 	return container_of(hw, struct clk_scu, hw);
 }
 
-int imx_clk_scu_init(void)
+int imx_clk_scu_init(struct device_node *np)
 {
-	return imx_scu_get_handle(&ccm_ipc_handle);
+	u32 clk_cells;
+	int ret, i;
+
+	ret = imx_scu_get_handle(&ccm_ipc_handle);
+	if (ret)
+		return ret;
+
+	of_property_read_u32(np, "#clock-cells", &clk_cells);
+
+	if (clk_cells == 2) {
+		for (i = 0; i < IMX_SC_R_LAST; i++)
+			INIT_LIST_HEAD(&imx_scu_clks[i]);
+
+		/* pd_np will be used to attach power domains later */
+		pd_np = of_find_compatible_node(NULL, NULL, "fsl,scu-pd");
+		if (!pd_np)
+			return -EINVAL;
+	}
+
+	return platform_driver_register(&imx_clk_scu_driver);
 }
 
 /*
@@ -344,8 +386,9 @@
 	.unprepare = clk_scu_unprepare,
 };
 
-struct clk_hw *__imx_clk_scu(const char *name, const char * const *parents,
-			     int num_parents, u32 rsrc_id, u8 clk_type)
+struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
+			     const char * const *parents, int num_parents,
+			     u32 rsrc_id, u8 clk_type)
 {
 	struct clk_init_data init;
 	struct clk_scu *clk;
@@ -379,11 +422,185 @@
 	clk->hw.init = &init;
 
 	hw = &clk->hw;
-	ret = clk_hw_register(NULL, hw);
+	ret = clk_hw_register(dev, hw);
 	if (ret) {
 		kfree(clk);
 		hw = ERR_PTR(ret);
 	}
 
+	if (dev)
+		dev_set_drvdata(dev, clk);
+
 	return hw;
 }
+
+struct clk_hw *imx_scu_of_clk_src_get(struct of_phandle_args *clkspec,
+				      void *data)
+{
+	unsigned int rsrc = clkspec->args[0];
+	unsigned int idx = clkspec->args[1];
+	struct list_head *scu_clks = data;
+	struct imx_scu_clk_node *clk;
+
+	list_for_each_entry(clk, &scu_clks[rsrc], node) {
+		if (clk->clk_type == idx)
+			return clk->hw;
+	}
+
+	return ERR_PTR(-ENODEV);
+}
+
+static int imx_clk_scu_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct imx_scu_clk_node *clk = dev_get_platdata(dev);
+	struct clk_hw *hw;
+	int ret;
+
+	pm_runtime_set_suspended(dev);
+	pm_runtime_set_autosuspend_delay(dev, 50);
+	pm_runtime_use_autosuspend(&pdev->dev);
+	pm_runtime_enable(dev);
+
+	ret = pm_runtime_get_sync(dev);
+	if (ret) {
+		pm_runtime_disable(dev);
+		return ret;
+	}
+
+	hw = __imx_clk_scu(dev, clk->name, clk->parents, clk->num_parents,
+			   clk->rsrc, clk->clk_type);
+	if (IS_ERR(hw)) {
+		pm_runtime_disable(dev);
+		return PTR_ERR(hw);
+	}
+
+	clk->hw = hw;
+	list_add_tail(&clk->node, &imx_scu_clks[clk->rsrc]);
+
+	pm_runtime_mark_last_busy(&pdev->dev);
+	pm_runtime_put_autosuspend(&pdev->dev);
+
+	dev_dbg(dev, "register SCU clock rsrc:%d type:%d\n", clk->rsrc,
+		clk->clk_type);
+
+	return 0;
+}
+
+static int __maybe_unused imx_clk_scu_suspend(struct device *dev)
+{
+	struct clk_scu *clk = dev_get_drvdata(dev);
+
+	clk->rate = clk_hw_get_rate(&clk->hw);
+	clk->is_enabled = clk_hw_is_enabled(&clk->hw);
+
+	if (clk->rate)
+		dev_dbg(dev, "save rate %d\n", clk->rate);
+
+	if (clk->is_enabled)
+		dev_dbg(dev, "save enabled state\n");
+
+	return 0;
+}
+
+static int __maybe_unused imx_clk_scu_resume(struct device *dev)
+{
+	struct clk_scu *clk = dev_get_drvdata(dev);
+	int ret = 0;
+
+	if (clk->rate) {
+		ret = clk_scu_set_rate(&clk->hw, clk->rate, 0);
+		dev_dbg(dev, "restore rate %d %s\n", clk->rate,
+			!ret ? "success" : "failed");
+	}
+
+	if (clk->is_enabled) {
+		ret = clk_scu_prepare(&clk->hw);
+		dev_dbg(dev, "restore enabled state %s\n",
+			!ret ? "success" : "failed");
+	}
+
+	return ret;
+}
+
+static const struct dev_pm_ops imx_clk_scu_pm_ops = {
+	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(imx_clk_scu_suspend,
+				      imx_clk_scu_resume)
+};
+
+static struct platform_driver imx_clk_scu_driver = {
+	.driver = {
+		.name = "imx-scu-clk",
+		.suppress_bind_attrs = true,
+		.pm = &imx_clk_scu_pm_ops,
+	},
+	.probe = imx_clk_scu_probe,
+};
+
+static int imx_clk_scu_attach_pd(struct device *dev, u32 rsrc_id)
+{
+	struct of_phandle_args genpdspec = {
+		.np = pd_np,
+		.args_count = 1,
+		.args[0] = rsrc_id,
+	};
+
+	if (rsrc_id == IMX_SC_R_A35 || rsrc_id == IMX_SC_R_A53 ||
+	    rsrc_id == IMX_SC_R_A72)
+		return 0;
+
+	return of_genpd_add_device(&genpdspec, dev);
+}
+
+struct clk_hw *imx_clk_scu_alloc_dev(const char *name,
+				     const char * const *parents,
+				     int num_parents, u32 rsrc_id, u8 clk_type)
+{
+	struct imx_scu_clk_node clk = {
+		.name = name,
+		.rsrc = rsrc_id,
+		.clk_type = clk_type,
+		.parents = parents,
+		.num_parents = num_parents,
+	};
+	struct platform_device *pdev;
+	int ret;
+
+	pdev = platform_device_alloc(name, PLATFORM_DEVID_NONE);
+	if (!pdev) {
+		pr_err("%s: failed to allocate scu clk dev rsrc %d type %d\n",
+		       name, rsrc_id, clk_type);
+		return ERR_PTR(-ENOMEM);
+	}
+
+	ret = platform_device_add_data(pdev, &clk, sizeof(clk));
+	if (ret) {
+		platform_device_put(pdev);
+		return ERR_PTR(ret);
+	}
+
+	pdev->driver_override = "imx-scu-clk";
+
+	ret = imx_clk_scu_attach_pd(&pdev->dev, rsrc_id);
+	if (ret)
+		pr_warn("%s: failed to attached the power domain %d\n",
+			name, ret);
+
+	platform_device_add(pdev);
+
+	/* For API backwards compatiblilty, simply return NULL for success */
+	return NULL;
+}
+
+void imx_clk_scu_unregister(void)
+{
+	struct imx_scu_clk_node *clk;
+	int i;
+
+	for (i = 0; i < IMX_SC_R_LAST; i++) {
+		list_for_each_entry(clk, &imx_scu_clks[i], node) {
+			clk_hw_unregister(clk->hw);
+			kfree(clk);
+		}
+	}
+}
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-scu.h
+++ linux-ein-5.4.0/drivers/clk/imx/clk-scu.h
@@ -8,25 +8,61 @@
 #define __IMX_CLK_SCU_H
 
 #include <linux/firmware/imx/sci.h>
+#include <linux/of.h>
 
-int imx_clk_scu_init(void);
+extern struct list_head imx_scu_clks[];
+extern const struct dev_pm_ops imx_clk_lpcg_scu_pm_ops;
 
-struct clk_hw *__imx_clk_scu(const char *name, const char * const *parents,
-			     int num_parents, u32 rsrc_id, u8 clk_type);
+int imx_clk_scu_init(struct device_node *np);
+struct clk_hw *imx_scu_of_clk_src_get(struct of_phandle_args *clkspec,
+				      void *data);
+struct clk_hw *imx_clk_scu_alloc_dev(const char *name,
+				     const char * const *parents,
+				     int num_parents, u32 rsrc_id, u8 clk_type);
+
+struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
+			     const char * const *parents, int num_parents,
+			     u32 rsrc_id, u8 clk_type);
+
+void imx_clk_scu_unregister(void);
+
+struct clk_hw *__imx_clk_lpcg_scu(struct device *dev, const char *name,
+				  const char *parent_name, unsigned long flags,
+				  void __iomem *reg, u8 bit_idx, bool hw_gate);
+void imx_clk_lpcg_scu_unregister(struct clk_hw *hw);
 
 static inline struct clk_hw *imx_clk_scu(const char *name, u32 rsrc_id,
-					 u8 clk_type)
+					 u8 clk_type, u8 clk_cells)
 {
-	return __imx_clk_scu(name, NULL, 0, rsrc_id, clk_type);
+	if (clk_cells == 2)
+		return imx_clk_scu_alloc_dev(name, NULL, 0, rsrc_id, clk_type);
+	else
+		return __imx_clk_scu(NULL, name, NULL, 0, rsrc_id, clk_type);
 }
 
 static inline struct clk_hw *imx_clk_scu2(const char *name, const char * const *parents,
-					  int num_parents, u32 rsrc_id, u8 clk_type)
+					  int num_parents, u32 rsrc_id, u8 clk_type,
+					  u8 clk_cells)
 {
-	return __imx_clk_scu(name, parents, num_parents, rsrc_id, clk_type);
+	if (clk_cells == 2)
+		return imx_clk_scu_alloc_dev(name, parents, num_parents, rsrc_id, clk_type);
+	else
+		return __imx_clk_scu(NULL, name, parents, num_parents, rsrc_id, clk_type);
 }
 
-struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
-				unsigned long flags, void __iomem *reg,
-				u8 bit_idx, bool hw_gate);
+static inline struct clk_hw *imx_clk_lpcg_scu_dev(struct device *dev, const char *name,
+						  const char *parent_name, unsigned long flags,
+						  void __iomem *reg, u8 bit_idx, bool hw_gate)
+{
+	return __imx_clk_lpcg_scu(dev, name, parent_name, flags, reg,
+				  bit_idx, hw_gate);
+}
+
+static inline struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
+					      unsigned long flags, void __iomem *reg,
+					      u8 bit_idx, bool hw_gate)
+{
+	return __imx_clk_lpcg_scu(NULL, name, parent_name, flags, reg,
+				  bit_idx, hw_gate);
+}
 #endif
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-sscg-pll.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-sscg-pll.c
@@ -0,0 +1,541 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2018 NXP.
+ *
+ * This driver supports the SCCG plls found in the imx8m SOCs
+ *
+ * Documentation for this SCCG pll can be found at:
+ *   https://www.nxp.com/docs/en/reference-manual/IMX8MDQLQRM.pdf#page=834
+ */
+
+#include <linux/clk-provider.h>
+#include <linux/err.h>
+#include <linux/export.h>
+#include <linux/io.h>
+#include <linux/iopoll.h>
+#include <linux/slab.h>
+#include <linux/bitfield.h>
+
+#include "clk.h"
+
+/* PLL CFGs */
+#define PLL_CFG0		0x0
+#define PLL_CFG1		0x4
+#define PLL_CFG2		0x8
+
+#define PLL_DIVF1_MASK		GENMASK(18, 13)
+#define PLL_DIVF2_MASK		GENMASK(12, 7)
+#define PLL_DIVR1_MASK		GENMASK(27, 25)
+#define PLL_DIVR2_MASK		GENMASK(24, 19)
+#define PLL_DIVQ_MASK           GENMASK(6, 1)
+#define PLL_REF_MASK		GENMASK(2, 0)
+
+#define PLL_LOCK_MASK		BIT(31)
+#define PLL_PD_MASK		BIT(7)
+
+/* These are the specification limits for the SSCG PLL */
+#define PLL_REF_MIN_FREQ		25000000UL
+#define PLL_REF_MAX_FREQ		235000000UL
+
+#define PLL_STAGE1_MIN_FREQ		1600000000UL
+#define PLL_STAGE1_MAX_FREQ		2400000000UL
+
+#define PLL_STAGE1_REF_MIN_FREQ		25000000UL
+#define PLL_STAGE1_REF_MAX_FREQ		54000000UL
+
+#define PLL_STAGE2_MIN_FREQ		1200000000UL
+#define PLL_STAGE2_MAX_FREQ		2400000000UL
+
+#define PLL_STAGE2_REF_MIN_FREQ		54000000UL
+#define PLL_STAGE2_REF_MAX_FREQ		75000000UL
+
+#define PLL_OUT_MIN_FREQ		20000000UL
+#define PLL_OUT_MAX_FREQ		1200000000UL
+
+#define PLL_DIVR1_MAX			7
+#define PLL_DIVR2_MAX			63
+#define PLL_DIVF1_MAX			63
+#define PLL_DIVF2_MAX			63
+#define PLL_DIVQ_MAX			63
+
+#define PLL_BYPASS_NONE			0x0
+#define PLL_BYPASS1			0x2
+#define PLL_BYPASS2			0x1
+
+#define SSCG_PLL_BYPASS1_MASK           BIT(5)
+#define SSCG_PLL_BYPASS2_MASK           BIT(4)
+#define SSCG_PLL_BYPASS_MASK		GENMASK(5, 4)
+
+#define PLL_SCCG_LOCK_TIMEOUT		70
+
+struct clk_sscg_pll_setup {
+	int divr1, divf1;
+	int divr2, divf2;
+	int divq;
+	int bypass;
+	uint64_t vco1;
+	uint64_t vco2;
+	uint64_t fout;
+	uint64_t ref;
+	uint64_t ref_div1;
+	uint64_t ref_div2;
+	uint64_t fout_request;
+	int fout_error;
+};
+
+struct clk_sscg_pll {
+	struct clk_hw	hw;
+	const struct clk_ops  ops;
+	void __iomem *base;
+	struct clk_sscg_pll_setup setup;
+	u8 parent;
+	u8 bypass1;
+	u8 bypass2;
+};
+
+#define to_clk_sscg_pll(_hw) container_of(_hw, struct clk_sscg_pll, hw)
+
+static int clk_sscg_pll_wait_lock(struct clk_sscg_pll *pll)
+{
+	u32 val;
+
+	val = readl_relaxed(pll->base + PLL_CFG0);
+
+	/* don't wait for lock if all plls are bypassed */
+	if (!(val & SSCG_PLL_BYPASS2_MASK))
+		return readl_poll_timeout(pll->base, val, val & PLL_LOCK_MASK,
+						0, PLL_SCCG_LOCK_TIMEOUT);
+
+	return 0;
+}
+
+static int clk_sscg_pll2_check_match(struct clk_sscg_pll_setup *setup,
+					struct clk_sscg_pll_setup *temp_setup)
+{
+	int new_diff = temp_setup->fout - temp_setup->fout_request;
+	int diff = temp_setup->fout_error;
+
+	if (abs(diff) > abs(new_diff)) {
+		temp_setup->fout_error = new_diff;
+		memcpy(setup, temp_setup, sizeof(struct clk_sscg_pll_setup));
+
+		if (temp_setup->fout_request == temp_setup->fout)
+			return 0;
+	}
+	return -1;
+}
+
+static int clk_sscg_divq_lookup(struct clk_sscg_pll_setup *setup,
+				struct clk_sscg_pll_setup *temp_setup)
+{
+	int ret = -EINVAL;
+
+	for (temp_setup->divq = 0; temp_setup->divq <= PLL_DIVQ_MAX;
+	     temp_setup->divq++) {
+		temp_setup->vco2 = temp_setup->vco1;
+		do_div(temp_setup->vco2, temp_setup->divr2 + 1);
+		temp_setup->vco2 *= 2;
+		temp_setup->vco2 *= temp_setup->divf2 + 1;
+		if (temp_setup->vco2 >= PLL_STAGE2_MIN_FREQ &&
+				temp_setup->vco2 <= PLL_STAGE2_MAX_FREQ) {
+			temp_setup->fout = temp_setup->vco2;
+			do_div(temp_setup->fout, 2 * (temp_setup->divq + 1));
+
+			ret = clk_sscg_pll2_check_match(setup, temp_setup);
+			if (!ret) {
+				temp_setup->bypass = PLL_BYPASS1;
+				return ret;
+			}
+		}
+	}
+
+	return ret;
+}
+
+static int clk_sscg_divf2_lookup(struct clk_sscg_pll_setup *setup,
+					struct clk_sscg_pll_setup *temp_setup)
+{
+	int ret = -EINVAL;
+
+	for (temp_setup->divf2 = 0; temp_setup->divf2 <= PLL_DIVF2_MAX;
+	     temp_setup->divf2++) {
+		ret = clk_sscg_divq_lookup(setup, temp_setup);
+		if (!ret)
+			return ret;
+	}
+
+	return ret;
+}
+
+static int clk_sscg_divr2_lookup(struct clk_sscg_pll_setup *setup,
+				struct clk_sscg_pll_setup *temp_setup)
+{
+	int ret = -EINVAL;
+
+	for (temp_setup->divr2 = 0; temp_setup->divr2 <= PLL_DIVR2_MAX;
+	     temp_setup->divr2++) {
+		temp_setup->ref_div2 = temp_setup->vco1;
+		do_div(temp_setup->ref_div2, temp_setup->divr2 + 1);
+		if (temp_setup->ref_div2 >= PLL_STAGE2_REF_MIN_FREQ &&
+		    temp_setup->ref_div2 <= PLL_STAGE2_REF_MAX_FREQ) {
+			ret = clk_sscg_divf2_lookup(setup, temp_setup);
+			if (!ret)
+				return ret;
+		}
+	}
+
+	return ret;
+}
+
+static int clk_sscg_pll2_find_setup(struct clk_sscg_pll_setup *setup,
+					struct clk_sscg_pll_setup *temp_setup,
+					uint64_t ref)
+{
+	int ret;
+
+	if (ref < PLL_STAGE1_MIN_FREQ || ref > PLL_STAGE1_MAX_FREQ)
+		return -EINVAL;
+
+	temp_setup->vco1 = ref;
+
+	ret = clk_sscg_divr2_lookup(setup, temp_setup);
+	return ret;
+}
+
+static int clk_sscg_divf1_lookup(struct clk_sscg_pll_setup *setup,
+				struct clk_sscg_pll_setup *temp_setup)
+{
+	int ret = -EINVAL;
+
+	for (temp_setup->divf1 = 0; temp_setup->divf1 <= PLL_DIVF1_MAX;
+	     temp_setup->divf1++) {
+		uint64_t vco1 = temp_setup->ref;
+
+		do_div(vco1, temp_setup->divr1 + 1);
+		vco1 *= 2;
+		vco1 *= temp_setup->divf1 + 1;
+
+		ret = clk_sscg_pll2_find_setup(setup, temp_setup, vco1);
+		if (!ret) {
+			temp_setup->bypass = PLL_BYPASS_NONE;
+			return ret;
+		}
+	}
+
+	return ret;
+}
+
+static int clk_sscg_divr1_lookup(struct clk_sscg_pll_setup *setup,
+				struct clk_sscg_pll_setup *temp_setup)
+{
+	int ret = -EINVAL;
+
+	for (temp_setup->divr1 = 0; temp_setup->divr1 <= PLL_DIVR1_MAX;
+	     temp_setup->divr1++) {
+		temp_setup->ref_div1 = temp_setup->ref;
+		do_div(temp_setup->ref_div1, temp_setup->divr1 + 1);
+		if (temp_setup->ref_div1 >= PLL_STAGE1_REF_MIN_FREQ &&
+		    temp_setup->ref_div1 <= PLL_STAGE1_REF_MAX_FREQ) {
+			ret = clk_sscg_divf1_lookup(setup, temp_setup);
+			if (!ret)
+				return ret;
+		}
+	}
+
+	return ret;
+}
+
+static int clk_sscg_pll1_find_setup(struct clk_sscg_pll_setup *setup,
+					struct clk_sscg_pll_setup *temp_setup,
+					uint64_t ref)
+{
+	int ret;
+
+	if (ref < PLL_REF_MIN_FREQ || ref > PLL_REF_MAX_FREQ)
+		return -EINVAL;
+
+	temp_setup->ref = ref;
+
+	ret = clk_sscg_divr1_lookup(setup, temp_setup);
+
+	return ret;
+}
+
+static int clk_sscg_pll_find_setup(struct clk_sscg_pll_setup *setup,
+					uint64_t prate,
+					uint64_t rate, int try_bypass)
+{
+	struct clk_sscg_pll_setup temp_setup;
+	int ret = -EINVAL;
+
+	memset(&temp_setup, 0, sizeof(struct clk_sscg_pll_setup));
+	memset(setup, 0, sizeof(struct clk_sscg_pll_setup));
+
+	temp_setup.fout_error = PLL_OUT_MAX_FREQ;
+	temp_setup.fout_request = rate;
+
+	switch (try_bypass) {
+	case PLL_BYPASS2:
+		if (prate == rate) {
+			setup->bypass = PLL_BYPASS2;
+			setup->fout = rate;
+			ret = 0;
+		}
+		break;
+	case PLL_BYPASS1:
+		ret = clk_sscg_pll2_find_setup(setup, &temp_setup, prate);
+		break;
+	case PLL_BYPASS_NONE:
+		ret = clk_sscg_pll1_find_setup(setup, &temp_setup, prate);
+		break;
+	}
+
+	return ret;
+}
+
+static int clk_sscg_pll_is_prepared(struct clk_hw *hw)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+
+	u32 val = readl_relaxed(pll->base + PLL_CFG0);
+
+	return (val & PLL_PD_MASK) ? 0 : 1;
+}
+
+static int clk_sscg_pll_prepare(struct clk_hw *hw)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	u32 val;
+
+	val = readl_relaxed(pll->base + PLL_CFG0);
+	val &= ~PLL_PD_MASK;
+	writel_relaxed(val, pll->base + PLL_CFG0);
+
+	return clk_sscg_pll_wait_lock(pll);
+}
+
+static void clk_sscg_pll_unprepare(struct clk_hw *hw)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	u32 val;
+
+	val = readl_relaxed(pll->base + PLL_CFG0);
+	val |= PLL_PD_MASK;
+	writel_relaxed(val, pll->base + PLL_CFG0);
+}
+
+static unsigned long clk_sscg_pll_recalc_rate(struct clk_hw *hw,
+					 unsigned long parent_rate)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	u32 val, divr1, divf1, divr2, divf2, divq;
+	u64 temp64;
+
+	val = readl_relaxed(pll->base + PLL_CFG2);
+	divr1 = FIELD_GET(PLL_DIVR1_MASK, val);
+	divr2 = FIELD_GET(PLL_DIVR2_MASK, val);
+	divf1 = FIELD_GET(PLL_DIVF1_MASK, val);
+	divf2 = FIELD_GET(PLL_DIVF2_MASK, val);
+	divq = FIELD_GET(PLL_DIVQ_MASK, val);
+
+	temp64 = parent_rate;
+
+	val = readl(pll->base + PLL_CFG0);
+	if (val & SSCG_PLL_BYPASS2_MASK) {
+		temp64 = parent_rate;
+	} else if (val & SSCG_PLL_BYPASS1_MASK) {
+		temp64 *= divf2;
+		do_div(temp64, (divr2 + 1) * (divq + 1));
+	} else {
+		temp64 *= 2;
+		temp64 *= (divf1 + 1) * (divf2 + 1);
+		do_div(temp64, (divr1 + 1) * (divr2 + 1) * (divq + 1));
+	}
+
+	return temp64;
+}
+
+static int clk_sscg_pll_set_rate(struct clk_hw *hw, unsigned long rate,
+			    unsigned long parent_rate)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	struct clk_sscg_pll_setup *setup = &pll->setup;
+	u32 val;
+
+	/* set bypass here too since the parent might be the same */
+	val = readl(pll->base + PLL_CFG0);
+	val &= ~SSCG_PLL_BYPASS_MASK;
+	val |= FIELD_PREP(SSCG_PLL_BYPASS_MASK, setup->bypass);
+	writel(val, pll->base + PLL_CFG0);
+
+	val = readl_relaxed(pll->base + PLL_CFG2);
+	val &= ~(PLL_DIVF1_MASK | PLL_DIVF2_MASK);
+	val &= ~(PLL_DIVR1_MASK | PLL_DIVR2_MASK | PLL_DIVQ_MASK);
+	val |= FIELD_PREP(PLL_DIVF1_MASK, setup->divf1);
+	val |= FIELD_PREP(PLL_DIVF2_MASK, setup->divf2);
+	val |= FIELD_PREP(PLL_DIVR1_MASK, setup->divr1);
+	val |= FIELD_PREP(PLL_DIVR2_MASK, setup->divr2);
+	val |= FIELD_PREP(PLL_DIVQ_MASK, setup->divq);
+	writel_relaxed(val, pll->base + PLL_CFG2);
+
+	return clk_sscg_pll_wait_lock(pll);
+}
+
+static u8 clk_sscg_pll_get_parent(struct clk_hw *hw)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	u32 val;
+	u8 ret = pll->parent;
+
+	val = readl(pll->base + PLL_CFG0);
+	if (val & SSCG_PLL_BYPASS2_MASK)
+		ret = pll->bypass2;
+	else if (val & SSCG_PLL_BYPASS1_MASK)
+		ret = pll->bypass1;
+	return ret;
+}
+
+static int clk_sscg_pll_set_parent(struct clk_hw *hw, u8 index)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	u32 val;
+
+	val = readl(pll->base + PLL_CFG0);
+	val &= ~SSCG_PLL_BYPASS_MASK;
+	val |= FIELD_PREP(SSCG_PLL_BYPASS_MASK, pll->setup.bypass);
+	writel(val, pll->base + PLL_CFG0);
+
+	return clk_sscg_pll_wait_lock(pll);
+}
+
+static int __clk_sscg_pll_determine_rate(struct clk_hw *hw,
+					struct clk_rate_request *req,
+					uint64_t min,
+					uint64_t max,
+					uint64_t rate,
+					int bypass)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	struct clk_sscg_pll_setup *setup = &pll->setup;
+	struct clk_hw *parent_hw = NULL;
+	int bypass_parent_index;
+	int ret;
+
+	req->max_rate = max;
+	req->min_rate = min;
+
+	switch (bypass) {
+	case PLL_BYPASS2:
+		bypass_parent_index = pll->bypass2;
+		break;
+	case PLL_BYPASS1:
+		bypass_parent_index = pll->bypass1;
+		break;
+	default:
+		bypass_parent_index = pll->parent;
+		break;
+	}
+
+	parent_hw = clk_hw_get_parent_by_index(hw, bypass_parent_index);
+	ret = __clk_determine_rate(parent_hw, req);
+	if (!ret) {
+		ret = clk_sscg_pll_find_setup(setup, req->rate,
+						rate, bypass);
+	}
+
+	req->best_parent_hw = parent_hw;
+	req->best_parent_rate = req->rate;
+	req->rate = setup->fout;
+
+	return ret;
+}
+
+static int clk_sscg_pll_determine_rate(struct clk_hw *hw,
+				       struct clk_rate_request *req)
+{
+	struct clk_sscg_pll *pll = to_clk_sscg_pll(hw);
+	struct clk_sscg_pll_setup *setup = &pll->setup;
+	uint64_t rate = req->rate;
+	uint64_t min = req->min_rate;
+	uint64_t max = req->max_rate;
+	int ret;
+
+	if (rate < PLL_OUT_MIN_FREQ || rate > PLL_OUT_MAX_FREQ)
+		return -EINVAL;
+
+	ret = __clk_sscg_pll_determine_rate(hw, req, req->rate, req->rate,
+						rate, PLL_BYPASS2);
+	if (!ret)
+		return ret;
+
+	ret = __clk_sscg_pll_determine_rate(hw, req, PLL_STAGE1_REF_MIN_FREQ,
+						PLL_STAGE1_REF_MAX_FREQ, rate,
+						PLL_BYPASS1);
+	if (!ret)
+		return ret;
+
+	ret = __clk_sscg_pll_determine_rate(hw, req, PLL_REF_MIN_FREQ,
+						PLL_REF_MAX_FREQ, rate,
+						PLL_BYPASS_NONE);
+	if (!ret)
+		return ret;
+
+	if (setup->fout >= min && setup->fout <= max)
+		ret = 0;
+
+	return ret;
+}
+
+static const struct clk_ops clk_sscg_pll_ops = {
+	.prepare	= clk_sscg_pll_prepare,
+	.unprepare	= clk_sscg_pll_unprepare,
+	.is_prepared	= clk_sscg_pll_is_prepared,
+	.recalc_rate	= clk_sscg_pll_recalc_rate,
+	.set_rate	= clk_sscg_pll_set_rate,
+	.set_parent	= clk_sscg_pll_set_parent,
+	.get_parent	= clk_sscg_pll_get_parent,
+	.determine_rate	= clk_sscg_pll_determine_rate,
+};
+
+struct clk_hw *imx_clk_hw_sscg_pll(const char *name,
+				const char * const *parent_names,
+				u8 num_parents,
+				u8 parent, u8 bypass1, u8 bypass2,
+				void __iomem *base,
+				unsigned long flags)
+{
+	struct clk_sscg_pll *pll;
+	struct clk_init_data init;
+	struct clk_hw *hw;
+	int ret;
+
+	pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+	if (!pll)
+		return ERR_PTR(-ENOMEM);
+
+	pll->parent = parent;
+	pll->bypass1 = bypass1;
+	pll->bypass2 = bypass2;
+
+	pll->base = base;
+	init.name = name;
+	init.ops = &clk_sscg_pll_ops;
+
+	init.flags = flags;
+	init.parent_names = parent_names;
+	init.num_parents = num_parents;
+
+	pll->base = base;
+	pll->hw.init = &init;
+
+	hw = &pll->hw;
+
+	ret = clk_hw_register(NULL, hw);
+	if (ret) {
+		kfree(pll);
+		return ERR_PTR(ret);
+	}
+
+	return hw;
+}
+EXPORT_SYMBOL_GPL(imx_clk_hw_sscg_pll);
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk-vf610.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk-vf610.c
@@ -4,6 +4,7 @@
  */
 
 #include <linux/of_address.h>
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/syscore_ops.h>
 #include <dt-bindings/clock/vf610-clock.h>
@@ -328,6 +329,7 @@
 	clk[VF610_CLK_DSPI2] = imx_clk_gate2("dspi2", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(12));
 	clk[VF610_CLK_DSPI3] = imx_clk_gate2("dspi3", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(13));
 
+	clk[VF610_CLK_CRC] = imx_clk_gate2("crc", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(3));
 	clk[VF610_CLK_WDT] = imx_clk_gate2("wdt", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(14));
 
 	clk[VF610_CLK_ESDHC0_SEL] = imx_clk_mux("esdhc0_sel", CCM_CSCMR1, 16, 2, esdhc_sels, 4);
@@ -438,6 +440,7 @@
 	clk[VF610_CLK_SNVS] = imx_clk_gate2("snvs-rtc", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(7));
 	clk[VF610_CLK_DAP] = imx_clk_gate("dap", "platform_bus", CCM_CCSR, 24);
 	clk[VF610_CLK_OCOTP] = imx_clk_gate("ocotp", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(5));
+	clk[VF610_CLK_CAAM] = imx_clk_gate2("caam", "ipg_bus", CCM_CCGR11, CCM_CCGRx_CGn(0));
 
 	imx_check_clocks(clk, ARRAY_SIZE(clk));
 
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk.c
+++ linux-ein-5.4.0/drivers/clk/imx/clk.c
@@ -1,8 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/clk-provider.h>
 #include <linux/err.h>
 #include <linux/io.h>
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
@@ -13,6 +15,7 @@
 #define CCDR_MMDC_CH1_MASK		BIT(16)
 
 DEFINE_SPINLOCK(imx_ccm_lock);
+EXPORT_SYMBOL_GPL(imx_ccm_lock);
 
 void imx_unregister_clocks(struct clk *clks[], unsigned int count)
 {
@@ -22,7 +25,16 @@
 		clk_unregister(clks[i]);
 }
 
-void __init imx_mmdc_mask_handshake(void __iomem *ccm_base,
+void imx_unregister_hw_clocks(struct clk_hw *hws[], unsigned int count)
+{
+	unsigned int i;
+
+	for (i = 0; i < count; i++)
+		clk_hw_unregister(hws[i]);
+}
+EXPORT_SYMBOL_GPL(imx_unregister_hw_clocks);
+
+void imx_mmdc_mask_handshake(void __iomem *ccm_base,
 				    unsigned int chn)
 {
 	unsigned int reg;
@@ -51,8 +63,9 @@
 			pr_err("i.MX clk %u: register failed with %ld\n",
 			       i, PTR_ERR(clks[i]));
 }
+EXPORT_SYMBOL_GPL(imx_check_clk_hws);
 
-static struct clk * __init imx_obtain_fixed_clock_from_dt(const char *name)
+static struct clk *imx_obtain_fixed_clock_from_dt(const char *name)
 {
 	struct of_phandle_args phandle;
 	struct clk *clk = ERR_PTR(-ENODEV);
@@ -72,7 +85,7 @@
 	return clk;
 }
 
-struct clk * __init imx_obtain_fixed_clock(
+struct clk *imx_obtain_fixed_clock(
 			const char *name, unsigned long rate)
 {
 	struct clk *clk;
@@ -83,7 +96,7 @@
 	return clk;
 }
 
-struct clk_hw * __init imx_obtain_fixed_clock_hw(
+struct clk_hw *imx_obtain_fixed_clock_hw(
 			const char *name, unsigned long rate)
 {
 	struct clk *clk;
@@ -94,8 +107,8 @@
 	return __clk_get_hw(clk);
 }
 
-struct clk_hw * __init imx_obtain_fixed_clk_hw(struct device_node *np,
-					       const char *name)
+struct clk_hw * imx_obtain_fixed_clk_hw(struct device_node *np,
+					const char *name)
 {
 	struct clk *clk;
 
@@ -105,6 +118,7 @@
 
 	return __clk_get_hw(clk);
 }
+EXPORT_SYMBOL_GPL(imx_obtain_fixed_clk_hw);
 
 /*
  * This fixups the register CCM_CSCMR1 write value.
@@ -132,6 +146,7 @@
 	return;
 }
 
+#ifndef MODULE
 static int imx_keep_uart_clocks;
 static struct clk ** const *imx_uart_clocks;
 
@@ -159,6 +174,9 @@
 
 static int __init imx_clk_disable_uart(void)
 {
+	if (imx_src_is_m4_enabled())
+		return 0;
+
 	if (imx_keep_uart_clocks && imx_uart_clocks) {
 		int i;
 
@@ -169,3 +187,6 @@
 	return 0;
 }
 late_initcall_sync(imx_clk_disable_uart);
+#endif
+
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/clk/imx/clk.h
+++ linux-ein-5.4.0/drivers/clk/imx/clk.h
@@ -2,16 +2,25 @@
 #ifndef __MACH_IMX_CLK_H
 #define __MACH_IMX_CLK_H
 
+#include <linux/bits.h>
 #include <linux/spinlock.h>
 #include <linux/clk-provider.h>
+#include <soc/imx/src.h>
 
 extern spinlock_t imx_ccm_lock;
 
 void imx_check_clocks(struct clk *clks[], unsigned int count);
 void imx_check_clk_hws(struct clk_hw *clks[], unsigned int count);
+#ifndef MODULE
 void imx_register_uart_clocks(struct clk ** const clks[]);
+#else
+static inline void imx_register_uart_clocks(struct clk ** const clks[])
+{
+}
+#endif
 void imx_mmdc_mask_handshake(void __iomem *ccm_base, unsigned int chn);
 void imx_unregister_clocks(struct clk *clks[], unsigned int count);
+void imx_unregister_hw_clocks(struct clk_hw *hws[], unsigned int count);
 
 extern void imx_cscmr1_fixup(u32 *val);
 
@@ -24,7 +33,7 @@
 	IMX_PLLV1_IMX35,
 };
 
-enum imx_sccg_pll_type {
+enum imx_sscg_pll_type {
 	SCCG_PLL1,
 	SCCG_PLL2,
 };
@@ -50,63 +59,104 @@
 	int flags;
 };
 
+extern struct imx_pll14xx_clk imx_1416x_pll;
+extern struct imx_pll14xx_clk imx_1443x_pll;
+extern struct imx_pll14xx_clk imx_1443x_dram_pll;
+
 #define imx_clk_cpu(name, parent_name, div, mux, pll, step) \
-	imx_clk_hw_cpu(name, parent_name, div, mux, pll, step)->clk
+	to_clk(imx_clk_hw_cpu(name, parent_name, div, mux, pll, step))
 
 #define clk_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
-				cgr_val, clk_gate_flags, lock, share_count) \
-	clk_hw_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
-				cgr_val, clk_gate_flags, lock, share_count)->clk
+				cgr_val, cgr_mask, clk_gate_flags, lock, share_count) \
+	to_clk(clk_hw_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
+				cgr_val, cgr_mask, clk_gate_flags, lock, share_count))
 
 #define imx_clk_pllv3(type, name, parent_name, base, div_mask) \
-	imx_clk_hw_pllv3(type, name, parent_name, base, div_mask)->clk
+	to_clk(imx_clk_hw_pllv3(type, name, parent_name, base, div_mask))
 
 #define imx_clk_pfd(name, parent_name, reg, idx) \
-	imx_clk_hw_pfd(name, parent_name, reg, idx)->clk
+	to_clk(imx_clk_hw_pfd(name, parent_name, reg, idx))
 
 #define imx_clk_gate_exclusive(name, parent, reg, shift, exclusive_mask) \
-	imx_clk_hw_gate_exclusive(name, parent, reg, shift, exclusive_mask)->clk
+	to_clk(imx_clk_hw_gate_exclusive(name, parent, reg, shift, exclusive_mask))
+
+#define imx_clk_fixed(name, rate) \
+	to_clk(imx_clk_hw_fixed(name, rate))
 
 #define imx_clk_fixed_factor(name, parent, mult, div) \
-	imx_clk_hw_fixed_factor(name, parent, mult, div)->clk
+	to_clk(imx_clk_hw_fixed_factor(name, parent, mult, div))
+
+#define imx_clk_divider(name, parent, reg, shift, width) \
+	to_clk(imx_clk_hw_divider(name, parent, reg, shift, width))
 
 #define imx_clk_divider2(name, parent, reg, shift, width) \
-	imx_clk_hw_divider2(name, parent, reg, shift, width)->clk
+	to_clk(imx_clk_hw_divider2(name, parent, reg, shift, width))
+
+#define imx_clk_divider_flags(name, parent, reg, shift, width, flags) \
+	to_clk(imx_clk_hw_divider_flags(name, parent, reg, shift, width, flags))
+
+#define imx_clk_gate(name, parent, reg, shift) \
+	to_clk(imx_clk_hw_gate(name, parent, reg, shift))
 
 #define imx_clk_gate_dis(name, parent, reg, shift) \
-	imx_clk_hw_gate_dis(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate_dis(name, parent, reg, shift))
 
 #define imx_clk_gate2(name, parent, reg, shift) \
-	imx_clk_hw_gate2(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate2(name, parent, reg, shift))
 
 #define imx_clk_gate2_flags(name, parent, reg, shift, flags) \
-	imx_clk_hw_gate2_flags(name, parent, reg, shift, flags)->clk
+	to_clk(imx_clk_hw_gate2_flags(name, parent, reg, shift, flags))
 
 #define imx_clk_gate2_shared2(name, parent, reg, shift, share_count) \
-	imx_clk_hw_gate2_shared2(name, parent, reg, shift, share_count)->clk
+	to_clk(imx_clk_hw_gate2_shared2(name, parent, reg, shift, share_count))
 
 #define imx_clk_gate3(name, parent, reg, shift) \
-	imx_clk_hw_gate3(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate3(name, parent, reg, shift))
 
 #define imx_clk_gate4(name, parent, reg, shift) \
-	imx_clk_hw_gate4(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate4(name, parent, reg, shift))
 
 #define imx_clk_mux(name, reg, shift, width, parents, num_parents) \
-	imx_clk_hw_mux(name, reg, shift, width, parents, num_parents)->clk
+	to_clk(imx_clk_hw_mux(name, reg, shift, width, parents, num_parents))
+
+#define imx_clk_pllv1(type, name, parent, base) \
+	to_clk(imx_clk_hw_pllv1(type, name, parent, base))
+
+#define imx_clk_pllv2(name, parent, base) \
+	to_clk(imx_clk_hw_pllv2(name, parent, base))
+
+#define imx_clk_frac_pll(name, parent_name, base) \
+	to_clk(imx_clk_hw_frac_pll(name, parent_name, base))
+
+#define imx_clk_sscg_pll(name, parent_names, num_parents, parent,\
+				bypass1, bypass2, base, flags) \
+	to_clk(imx_clk_hw_sscg_pll(name, parent_names, num_parents, parent,\
+				bypass1, bypass2, base, flags))
 
 struct clk *imx_clk_pll14xx(const char *name, const char *parent_name,
 		 void __iomem *base, const struct imx_pll14xx_clk *pll_clk);
 
-struct clk *imx_clk_pllv1(enum imx_pllv1_type type, const char *name,
+#define imx_clk_pll14xx(name, parent_name, base, pll_clk) \
+	to_clk(imx_clk_hw_pll14xx(name, parent_name, base, pll_clk))
+
+struct clk_hw *imx_dev_clk_hw_pll14xx(struct device *dev, const char *name,
+				const char *parent_name, void __iomem *base,
+				const struct imx_pll14xx_clk *pll_clk);
+
+#define imx_dev_clk_pll14xx(dev, name, parent_name, base, pll_clk)	\
+	to_clk(imx_dev_clk_hw_pll14xx(dev, name, parent_name, base, pll_clk))
+
+
+struct clk_hw *imx_clk_hw_pllv1(enum imx_pllv1_type type, const char *name,
 		const char *parent, void __iomem *base);
 
-struct clk *imx_clk_pllv2(const char *name, const char *parent,
+struct clk_hw *imx_clk_hw_pllv2(const char *name, const char *parent,
 		void __iomem *base);
 
-struct clk *imx_clk_frac_pll(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_frac_pll(const char *name, const char *parent_name,
 			     void __iomem *base);
 
-struct clk *imx_clk_sccg_pll(const char *name,
+struct clk_hw *imx_clk_hw_sscg_pll(const char *name,
 				const char * const *parent_names,
 				u8 num_parents,
 				u8 parent, u8 bypass1, u8 bypass2,
@@ -146,12 +196,12 @@
 		.kdiv	=	(_k),			\
 	}
 
-struct clk_hw *imx_clk_pllv4(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_pllv4(const char *name, const char *parent_name,
 			     void __iomem *base);
 
 struct clk_hw *clk_hw_register_gate2(struct device *dev, const char *name,
 		const char *parent_name, unsigned long flags,
-		void __iomem *reg, u8 bit_idx, u8 cgr_val,
+		void __iomem *reg, u8 bit_idx, u8 cgr_val, u8 cgr_mask,
 		u8 clk_gate_flags, spinlock_t *lock,
 		unsigned int *share_count);
 
@@ -170,7 +220,7 @@
 struct clk_hw *imx_clk_hw_pfd(const char *name, const char *parent_name,
 		void __iomem *reg, u8 idx);
 
-struct clk_hw *imx_clk_pfdv2(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_pfdv2(const char *name, const char *parent_name,
 			     void __iomem *reg, u8 idx);
 
 struct clk_hw *imx_clk_hw_busy_divider(const char *name, const char *parent_name,
@@ -181,7 +231,7 @@
 			     u8 width, void __iomem *busy_reg, u8 busy_shift,
 			     const char * const *parent_names, int num_parents);
 
-struct clk_hw *imx7ulp_clk_composite(const char *name,
+struct clk_hw *imx7ulp_clk_hw_composite(const char *name,
 				     const char * const *parent_names,
 				     int num_parents, bool mux_present,
 				     bool rate_present, bool gate_present,
@@ -195,9 +245,18 @@
 			      u8 shift, u8 width, const char * const *parents,
 			      int num_parents, void (*fixup)(u32 *val));
 
-static inline struct clk *imx_clk_fixed(const char *name, int rate)
+static inline struct clk *to_clk(struct clk_hw *hw)
+{
+	if (IS_ERR_OR_NULL(hw))
+		return ERR_CAST(hw);
+	return hw->clk;
+}
+
+static inline struct clk_hw *imx_clk_hw_pll14xx(const char *name, const char *parent_name,
+				  void __iomem *base,
+				  const struct imx_pll14xx_clk *pll_clk)
 {
-	return clk_register_fixed_rate(NULL, name, NULL, 0, rate);
+	return imx_dev_clk_hw_pll14xx(NULL, name, parent_name, base, pll_clk);
 }
 
 static inline struct clk_hw *imx_clk_hw_fixed(const char *name, int rate)
@@ -221,13 +280,6 @@
 			CLK_SET_RATE_PARENT, mult, div);
 }
 
-static inline struct clk *imx_clk_divider(const char *name, const char *parent,
-		void __iomem *reg, u8 shift, u8 width)
-{
-	return clk_register_divider(NULL, name, parent, CLK_SET_RATE_PARENT,
-			reg, shift, width, 0, &imx_ccm_lock);
-}
-
 static inline struct clk_hw *imx_clk_hw_divider(const char *name,
 						const char *parent,
 						void __iomem *reg, u8 shift,
@@ -237,14 +289,6 @@
 				       reg, shift, width, 0, &imx_ccm_lock);
 }
 
-static inline struct clk *imx_clk_divider_flags(const char *name,
-		const char *parent, void __iomem *reg, u8 shift, u8 width,
-		unsigned long flags)
-{
-	return clk_register_divider(NULL, name, parent, flags,
-			reg, shift, width, 0, &imx_ccm_lock);
-}
-
 static inline struct clk_hw *imx_clk_hw_divider_flags(const char *name,
 						   const char *parent,
 						   void __iomem *reg, u8 shift,
@@ -271,13 +315,25 @@
 			reg, shift, width, 0, &imx_ccm_lock);
 }
 
-static inline struct clk *imx_clk_gate(const char *name, const char *parent,
+static inline struct clk *imx_dev_clk_gate(struct device *dev,
+		const char *name, const char *parent,
 		void __iomem *reg, u8 shift)
 {
-	return clk_register_gate(NULL, name, parent, CLK_SET_RATE_PARENT, reg,
+	return clk_register_gate(dev, name, parent, CLK_SET_RATE_PARENT, reg,
 			shift, 0, &imx_ccm_lock);
 }
 
+struct clk *imx_dev_clk_gate_shared(struct device *dev, const char *name,
+					const char *parent, void __iomem *reg,
+					u8 shift, unsigned int *share_count);
+
+static inline struct clk *imx_clk_gate_shared(const char *name,
+		const char *parent, void __iomem *reg, u8 shift,
+		unsigned int *share_count)
+{
+	return imx_dev_clk_gate_shared(NULL, name, parent, reg, shift, share_count);
+}
+
 static inline struct clk_hw *imx_clk_hw_gate_flags(const char *name, const char *parent,
 		void __iomem *reg, u8 shift, unsigned long flags)
 {
@@ -292,6 +348,13 @@
 				    shift, 0, &imx_ccm_lock);
 }
 
+static inline struct clk_hw *imx_dev_clk_hw_gate(struct device *dev, const char *name,
+						const char *parent, void __iomem *reg, u8 shift)
+{
+	return clk_hw_register_gate(dev, name, parent, CLK_SET_RATE_PARENT, reg,
+				    shift, 0, &imx_ccm_lock);
+}
+
 static inline struct clk_hw *imx_clk_hw_gate_dis(const char *name, const char *parent,
 		void __iomem *reg, u8 shift)
 {
@@ -310,14 +373,14 @@
 		void __iomem *reg, u8 shift)
 {
 	return clk_hw_register_gate2(NULL, name, parent, CLK_SET_RATE_PARENT, reg,
-			shift, 0x3, 0, &imx_ccm_lock, NULL);
+			shift, 0x3, 0x3, 0, &imx_ccm_lock, NULL);
 }
 
 static inline struct clk_hw *imx_clk_hw_gate2_flags(const char *name, const char *parent,
 		void __iomem *reg, u8 shift, unsigned long flags)
 {
 	return clk_hw_register_gate2(NULL, name, parent, flags | CLK_SET_RATE_PARENT, reg,
-			shift, 0x3, 0, &imx_ccm_lock, NULL);
+			shift, 0x3, 0x3, 0, &imx_ccm_lock, NULL);
 }
 
 static inline struct clk_hw *imx_clk_hw_gate2_shared(const char *name,
@@ -325,7 +388,7 @@
 		unsigned int *share_count)
 {
 	return clk_hw_register_gate2(NULL, name, parent, CLK_SET_RATE_PARENT, reg,
-			shift, 0x3, 0, &imx_ccm_lock, share_count);
+			shift, 0x3, 0x3, 0, &imx_ccm_lock, share_count);
 }
 
 static inline struct clk_hw *imx_clk_hw_gate2_shared2(const char *name,
@@ -333,51 +396,77 @@
 		unsigned int *share_count)
 {
 	return clk_hw_register_gate2(NULL, name, parent, CLK_SET_RATE_PARENT |
-				  CLK_OPS_PARENT_ENABLE, reg, shift, 0x3, 0,
+				  CLK_OPS_PARENT_ENABLE, reg, shift, 0x3, 0x3, 0,
 				  &imx_ccm_lock, share_count);
 }
 
+static inline struct clk_hw *imx_dev_clk_hw_gate_shared(struct device *dev,
+				const char *name, const char *parent,
+				void __iomem *reg, u8 shift,
+				unsigned int *share_count)
+{
+	return clk_hw_register_gate2(NULL, name, parent, CLK_SET_RATE_PARENT |
+					CLK_OPS_PARENT_ENABLE, reg, shift, 0x1,
+					0x1, 0, &imx_ccm_lock, share_count);
+}
+
 static inline struct clk *imx_clk_gate2_cgr(const char *name,
 		const char *parent, void __iomem *reg, u8 shift, u8 cgr_val)
 {
 	return clk_register_gate2(NULL, name, parent, CLK_SET_RATE_PARENT, reg,
-			shift, cgr_val, 0, &imx_ccm_lock, NULL);
+			shift, cgr_val, 0x3, 0, &imx_ccm_lock, NULL);
 }
 
 static inline struct clk_hw *imx_clk_hw_gate3(const char *name, const char *parent,
 		void __iomem *reg, u8 shift)
 {
-	return clk_hw_register_gate(NULL, name, parent,
+	/*
+	 * per design team's suggestion, clk root is NOT consuming
+	 * much power, and clk root enable/disable does NOT have domain
+	 * control, so they suggest to leave clk root always on when
+	 * M4 is enabled.
+	 */
+	if (imx_src_is_m4_enabled())
+		return clk_hw_register_fixed_factor(NULL, name, parent,
+						 CLK_SET_RATE_PARENT, 1, 1);
+	else
+		return clk_hw_register_gate(NULL, name, parent,
 			CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
 			reg, shift, 0, &imx_ccm_lock);
 }
 
-static inline struct clk *imx_clk_gate3_flags(const char *name,
+static inline struct clk_hw *imx_clk_hw_gate3_flags(const char *name,
 		const char *parent, void __iomem *reg, u8 shift,
 		unsigned long flags)
 {
-	return clk_register_gate(NULL, name, parent,
+	return clk_hw_register_gate(NULL, name, parent,
 			flags | CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
 			reg, shift, 0, &imx_ccm_lock);
 }
 
+#define imx_clk_gate3_flags(name, parent, reg, shift, flags) \
+	to_clk(imx_clk_hw_gate3_flags(name, parent, reg, shift, flags))
+
 static inline struct clk_hw *imx_clk_hw_gate4(const char *name, const char *parent,
 		void __iomem *reg, u8 shift)
 {
 	return clk_hw_register_gate2(NULL, name, parent,
 			CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
-			reg, shift, 0x3, 0, &imx_ccm_lock, NULL);
+			reg, shift, 0x3, 0x3, 0, &imx_ccm_lock, NULL);
 }
 
-static inline struct clk *imx_clk_gate4_flags(const char *name,
+static inline struct clk_hw *imx_clk_hw_gate4_flags(const char *name,
 		const char *parent, void __iomem *reg, u8 shift,
 		unsigned long flags)
 {
-	return clk_register_gate2(NULL, name, parent,
+	return clk_hw_register_gate2(NULL, name, parent,
 			flags | CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
-			reg, shift, 0x3, 0, &imx_ccm_lock, NULL);
+			reg, shift, 0x3, 0x3, 0, &imx_ccm_lock, NULL);
 }
 
+#define imx_clk_gate4_flags(name, parent, reg, shift, flags) \
+	to_clk(imx_clk_hw_gate4_flags(name, parent, reg, shift, flags))
+
 static inline struct clk_hw *imx_clk_hw_mux(const char *name, void __iomem *reg,
 			u8 shift, u8 width, const char * const *parents,
 			int num_parents)
@@ -387,6 +476,24 @@
 			width, 0, &imx_ccm_lock);
 }
 
+static inline struct clk *imx_dev_clk_mux(struct device *dev, const char *name,
+                       void __iomem *reg, u8 shift, u8 width,
+                       const char * const *parents, int num_parents)
+{
+	return clk_register_mux(dev, name, parents, num_parents,
+			CLK_SET_RATE_NO_REPARENT | CLK_SET_PARENT_GATE,
+			reg, shift, width, 0, &imx_ccm_lock);
+}
+
+static inline struct clk_hw *imx_dev_clk_hw_mux(struct device *dev,
+			const char *name, void __iomem *reg, u8 shift,
+			u8 width, const char * const *parents, int num_parents)
+{
+	return clk_hw_register_mux(dev, name, parents, num_parents,
+			CLK_SET_RATE_NO_REPARENT | CLK_SET_PARENT_GATE,
+			reg, shift, width, 0, &imx_ccm_lock);
+}
+
 static inline struct clk *imx_clk_mux2(const char *name, void __iomem *reg,
 			u8 shift, u8 width, const char * const *parents,
 			int num_parents)
@@ -417,6 +524,26 @@
 			&imx_ccm_lock);
 }
 
+static inline struct clk *imx_dev_clk_mux_flags(struct device *dev,
+                       const char *name, void __iomem *reg, u8 shift,
+                       u8 width, const char * const *parents, int num_parents,
+                       unsigned long flags)
+{
+       return clk_register_mux(dev, name, parents, num_parents,
+                       flags | CLK_SET_RATE_NO_REPARENT | CLK_SET_PARENT_GATE,
+                       reg, shift, width, 0, &imx_ccm_lock);
+}
+
+static inline struct clk_hw *imx_clk_hw_mux2_flags(const char *name,
+		void __iomem *reg, u8 shift, u8 width,
+		const char * const *parents,
+		int num_parents, unsigned long flags)
+{
+	return clk_hw_register_mux(NULL, name, parents, num_parents,
+			flags | CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE,
+			reg, shift, width, 0, &imx_ccm_lock);
+}
+
 static inline struct clk *imx_clk_mux2_flags(const char *name,
 		void __iomem *reg, u8 shift, u8 width,
 		const char * const *parents,
@@ -439,27 +566,76 @@
 				   reg, shift, width, 0, &imx_ccm_lock);
 }
 
+static inline struct clk_hw *imx_dev_clk_hw_mux_flags(struct device *dev,
+						  const char *name,
+						  void __iomem *reg, u8 shift,
+						  u8 width,
+						  const char * const *parents,
+						  int num_parents,
+						  unsigned long flags)
+{
+	return clk_hw_register_mux(dev, name, parents, num_parents,
+				   flags | CLK_SET_RATE_NO_REPARENT,
+				   reg, shift, width, 0, &imx_ccm_lock);
+}
+
 struct clk_hw *imx_clk_hw_cpu(const char *name, const char *parent_name,
 		struct clk *div, struct clk *mux, struct clk *pll,
 		struct clk *step);
 
-struct clk *imx8m_clk_composite_flags(const char *name,
-					const char * const *parent_names,
-					int num_parents, void __iomem *reg,
-					unsigned long flags);
+#define IMX_COMPOSITE_CORE	BIT(0)
+#define IMX_COMPOSITE_BUS	BIT(1)
 
-#define __imx8m_clk_composite(name, parent_names, reg, flags) \
-	imx8m_clk_composite_flags(name, parent_names, \
-		ARRAY_SIZE(parent_names), reg, \
+struct clk_hw *imx8m_clk_hw_composite_flags(const char *name,
+					    const char * const *parent_names,
+					    int num_parents,
+					    void __iomem *reg,
+					    u32 composite_flags,
+					    unsigned long flags);
+
+#define imx8m_clk_hw_composite_bus(name, parent_names, reg)	\
+	imx8m_clk_hw_composite_flags(name, parent_names, \
+			ARRAY_SIZE(parent_names), reg, \
+			IMX_COMPOSITE_BUS, \
+			CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE)
+
+#define imx8m_clk_hw_composite_bus_critical(name, parent_names, reg)	\
+	imx8m_clk_hw_composite_flags(name, parent_names, ARRAY_SIZE(parent_names), reg, \
+			IMX_COMPOSITE_BUS, \
+			CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE | CLK_IS_CRITICAL)
+
+#define imx8m_clk_hw_composite_core(name, parent_names, reg)	\
+	imx8m_clk_hw_composite_flags(name, parent_names, \
+			ARRAY_SIZE(parent_names), reg, \
+			IMX_COMPOSITE_CORE, \
+			CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE)
+
+#define imx8m_clk_composite_flags(name, parent_names, num_parents, reg, \
+				  flags) \
+	to_clk(imx8m_clk_hw_composite_flags(name, parent_names, \
+				num_parents, reg, 0, flags))
+
+#define __imx8m_clk_hw_composite(name, parent_names, reg, flags) \
+	imx8m_clk_hw_composite_flags(name, parent_names, \
+		ARRAY_SIZE(parent_names), reg, 0, \
 		flags | CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE)
 
+#define __imx8m_clk_composite(name, parent_names, reg, flags) \
+	to_clk(__imx8m_clk_hw_composite(name, parent_names, reg, flags))
+
+#define imx8m_clk_hw_composite(name, parent_names, reg) \
+	__imx8m_clk_hw_composite(name, parent_names, reg, 0)
+
 #define imx8m_clk_composite(name, parent_names, reg) \
 	__imx8m_clk_composite(name, parent_names, reg, 0)
 
+#define imx8m_clk_hw_composite_critical(name, parent_names, reg) \
+	__imx8m_clk_hw_composite(name, parent_names, reg, CLK_IS_CRITICAL)
+
 #define imx8m_clk_composite_critical(name, parent_names, reg) \
 	__imx8m_clk_composite(name, parent_names, reg, CLK_IS_CRITICAL)
 
-struct clk_hw *imx_clk_divider_gate(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_divider_gate(const char *name, const char *parent_name,
 		unsigned long flags, void __iomem *reg, u8 shift, u8 width,
 		u8 clk_divider_flags, const struct clk_div_table *table,
 		spinlock_t *lock);
--- linux-ein-5.4.0.orig/drivers/clk/ingenic/cgu.c
+++ linux-ein-5.4.0/drivers/clk/ingenic/cgu.c
@@ -393,15 +393,21 @@
 ingenic_clk_calc_hw_div(const struct ingenic_cgu_clk_info *clk_info,
 			unsigned int div)
 {
-	unsigned int i;
+	unsigned int i, best_i = 0, best = (unsigned int)-1;
 
 	for (i = 0; i < (1 << clk_info->div.bits)
 				&& clk_info->div.div_table[i]; i++) {
-		if (clk_info->div.div_table[i] >= div)
-			return i;
+		if (clk_info->div.div_table[i] >= div &&
+		    clk_info->div.div_table[i] < best) {
+			best = clk_info->div.div_table[i];
+			best_i = i;
+
+			if (div == best)
+				break;
+		}
 	}
 
-	return i - 1;
+	return best_i;
 }
 
 static unsigned
@@ -420,15 +426,15 @@
 	}
 
 	/* Impose hardware constraints */
-	div = min_t(unsigned, div, 1 << clk_info->div.bits);
-	div = max_t(unsigned, div, 1);
+	div = clamp_t(unsigned int, div, clk_info->div.div,
+		      clk_info->div.div << clk_info->div.bits);
 
 	/*
 	 * If the divider value itself must be divided before being written to
 	 * the divider register, we must ensure we don't have any bits set that
 	 * would be lost as a result of doing so.
 	 */
-	div /= clk_info->div.div;
+	div = DIV_ROUND_UP(div, clk_info->div.div);
 	div *= clk_info->div.div;
 
 	return div;
--- linux-ein-5.4.0.orig/drivers/clk/ingenic/jz4725b-cgu.c
+++ linux-ein-5.4.0/drivers/clk/ingenic/jz4725b-cgu.c
@@ -135,11 +135,10 @@
 	},
 
 	[JZ4725B_CLK_I2S] = {
-		"i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
+		"i2s", CGU_CLK_MUX | CGU_CLK_DIV,
 		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
 		.mux = { CGU_REG_CPCCR, 31, 1 },
 		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
-		.gate = { CGU_REG_CLKGR, 6 },
 	},
 
 	[JZ4725B_CLK_SPI] = {
--- linux-ein-5.4.0.orig/drivers/clk/ingenic/jz4770-cgu.c
+++ linux-ein-5.4.0/drivers/clk/ingenic/jz4770-cgu.c
@@ -432,8 +432,10 @@
 
 	cgu = ingenic_cgu_new(jz4770_cgu_clocks,
 			      ARRAY_SIZE(jz4770_cgu_clocks), np);
-	if (!cgu)
+	if (!cgu) {
 		pr_err("%s: failed to initialise CGU\n", __func__);
+		return;
+	}
 
 	retval = ingenic_cgu_register_clocks(cgu);
 	if (retval)
--- linux-ein-5.4.0.orig/drivers/clk/ingenic/tcu.c
+++ linux-ein-5.4.0/drivers/clk/ingenic/tcu.c
@@ -100,15 +100,11 @@
 	bool enabled = false;
 
 	/*
-	 * If the SoC has no global TCU clock, we must ungate the channel's
-	 * clock to be able to access its registers.
-	 * If we have a TCU clock, it will be enabled automatically as it has
-	 * been attached to the regmap.
+	 * According to the programming manual, a timer channel's registers can
+	 * only be accessed when the channel's stop bit is clear.
 	 */
-	if (!tcu->clk) {
-		enabled = !!ingenic_tcu_is_enabled(hw);
-		regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit));
-	}
+	enabled = !!ingenic_tcu_is_enabled(hw);
+	regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit));
 
 	return enabled;
 }
@@ -119,8 +115,7 @@
 	const struct ingenic_tcu_clk_info *info = tcu_clk->info;
 	struct ingenic_tcu *tcu = tcu_clk->tcu;
 
-	if (!tcu->clk)
-		regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit));
+	regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit));
 }
 
 static u8 ingenic_tcu_get_parent(struct clk_hw *hw)
@@ -189,7 +184,7 @@
 	u8 prescale;
 
 	if (req_rate > rate)
-		return -EINVAL;
+		return rate;
 
 	prescale = ingenic_tcu_get_prescale(rate, req_rate);
 
--- linux-ein-5.4.0.orig/drivers/clk/keystone/pll.c
+++ linux-ein-5.4.0/drivers/clk/keystone/pll.c
@@ -209,7 +209,7 @@
 	}
 
 	clk = clk_register_pll(NULL, node->name, parent_name, pll_data);
-	if (clk) {
+	if (!IS_ERR_OR_NULL(clk)) {
 		of_clk_add_provider(node, of_clk_src_simple_get, clk);
 		return;
 	}
--- linux-ein-5.4.0.orig/drivers/clk/keystone/sci-clk.c
+++ linux-ein-5.4.0/drivers/clk/keystone/sci-clk.c
@@ -287,6 +287,8 @@
 
 	name = kasprintf(GFP_KERNEL, "clk:%d:%d", sci_clk->dev_id,
 			 sci_clk->clk_id);
+	if (!name)
+		return -ENOMEM;
 
 	init.name = name;
 
@@ -522,7 +524,7 @@
 		np = of_find_node_with_property(np, *clk_name);
 		if (!np) {
 			clk_name++;
-			break;
+			continue;
 		}
 
 		if (!of_device_is_available(np))
--- linux-ein-5.4.0.orig/drivers/clk/loongson1/clk-loongson1c.c
+++ linux-ein-5.4.0/drivers/clk/loongson1/clk-loongson1c.c
@@ -37,6 +37,7 @@
 	[1] = { .val = 1, .div = 4 },
 	[2] = { .val = 2, .div = 3 },
 	[3] = { .val = 3, .div = 3 },
+	[4] = { /* sentinel */ }
 };
 
 void __init ls1x_clk_init(void)
--- linux-ein-5.4.0.orig/drivers/clk/mediatek/clk-mt6779.c
+++ linux-ein-5.4.0/drivers/clk/mediatek/clk-mt6779.c
@@ -919,6 +919,8 @@
 		    "pwm_sel", 19),
 	GATE_INFRA0(CLK_INFRA_PWM, "infra_pwm",
 		    "pwm_sel", 21),
+	GATE_INFRA0(CLK_INFRA_UART0, "infra_uart0",
+		    "uart_sel", 22),
 	GATE_INFRA0(CLK_INFRA_UART1, "infra_uart1",
 		    "uart_sel", 23),
 	GATE_INFRA0(CLK_INFRA_UART2, "infra_uart2",
--- linux-ein-5.4.0.orig/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
+++ linux-ein-5.4.0/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
@@ -18,9 +18,9 @@
 	.sta_ofs = 0x0,
 };
 
-#define GATE_MFG(_id, _name, _parent, _shift)			\
-	GATE_MTK(_id, _name, _parent, &mfg_cg_regs, _shift,	\
-		&mtk_clk_gate_ops_setclr)
+#define GATE_MFG(_id, _name, _parent, _shift)				\
+	GATE_MTK_FLAGS(_id, _name, _parent, &mfg_cg_regs, _shift,	\
+		       &mtk_clk_gate_ops_setclr, CLK_SET_RATE_PARENT)
 
 static const struct mtk_gate mfg_clks[] = {
 	GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "mfg_sel", 0)
--- linux-ein-5.4.0.orig/drivers/clk/mediatek/clk-mux.c
+++ linux-ein-5.4.0/drivers/clk/mediatek/clk-mux.c
@@ -160,7 +160,7 @@
 				 spinlock_t *lock)
 {
 	struct mtk_clk_mux *clk_mux;
-	struct clk_init_data init;
+	struct clk_init_data init = {};
 	struct clk *clk;
 
 	clk_mux = kzalloc(sizeof(*clk_mux), GFP_KERNEL);
--- linux-ein-5.4.0.orig/drivers/clk/mediatek/reset.c
+++ linux-ein-5.4.0/drivers/clk/mediatek/reset.c
@@ -25,7 +25,7 @@
 	struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
 	unsigned int reg = data->regofs + ((id / 32) << 4);
 
-	return regmap_write(data->regmap, reg, 1);
+	return regmap_write(data->regmap, reg, BIT(id % 32));
 }
 
 static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev,
@@ -34,7 +34,7 @@
 	struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
 	unsigned int reg = data->regofs + ((id / 32) << 4) + 0x4;
 
-	return regmap_write(data->regmap, reg, 1);
+	return regmap_write(data->regmap, reg, BIT(id % 32));
 }
 
 static int mtk_reset_assert(struct reset_controller_dev *rcdev,
--- linux-ein-5.4.0.orig/drivers/clk/meson/Kconfig
+++ linux-ein-5.4.0/drivers/clk/meson/Kconfig
@@ -103,6 +103,7 @@
 	select COMMON_CLK_MESON_AO_CLKC
 	select COMMON_CLK_MESON_EE_CLKC
 	select COMMON_CLK_MESON_CPU_DYNDIV
+	select COMMON_CLK_MESON_VID_PLL_DIV
 	select MFD_SYSCON
 	help
 	  Support for the clock controller on Amlogic S905D2, S905X2 and S905Y2
--- linux-ein-5.4.0.orig/drivers/clk/meson/axg-audio.c
+++ linux-ein-5.4.0/drivers/clk/meson/axg-audio.c
@@ -1001,7 +1001,7 @@
 	.reg_bits	= 32,
 	.val_bits	= 32,
 	.reg_stride	= 4,
-	.max_register	= AUDIO_CLK_PDMIN_CTRL1,
+	.max_register	= AUDIO_CLK_SPDIFOUT_B_CTRL,
 };
 
 struct audioclk_data {
--- linux-ein-5.4.0.orig/drivers/clk/meson/clk-pll.c
+++ linux-ein-5.4.0/drivers/clk/meson/clk-pll.c
@@ -77,6 +77,15 @@
 	unsigned int m, n, frac;
 
 	n = meson_parm_read(clk->map, &pll->n);
+
+	/*
+	 * On some HW, N is set to zero on init. This value is invalid as
+	 * it would result in a division by zero. The rate can't be
+	 * calculated in this case
+	 */
+	if (n == 0)
+		return 0;
+
 	m = meson_parm_read(clk->map, &pll->m);
 
 	frac = MESON_PARM_APPLICABLE(&pll->frac) ?
@@ -354,13 +363,14 @@
 {
 	struct clk_regmap *clk = to_clk_regmap(hw);
 	struct meson_clk_pll_data *pll = meson_clk_pll_data(clk);
-	unsigned int enabled, m, n, frac = 0, ret;
+	unsigned int enabled, m, n, frac = 0;
 	unsigned long old_rate;
+	int ret;
 
 	if (parent_rate == 0 || rate == 0)
 		return -EINVAL;
 
-	old_rate = rate;
+	old_rate = clk_hw_get_rate(hw);
 
 	ret = meson_clk_get_pll_settings(rate, parent_rate, &m, &n, pll);
 	if (ret)
@@ -382,7 +392,8 @@
 	if (!enabled)
 		return 0;
 
-	if (meson_clk_pll_enable(hw)) {
+	ret = meson_clk_pll_enable(hw);
+	if (ret) {
 		pr_warn("%s: pll did not lock, trying to restore old rate %lu\n",
 			__func__, old_rate);
 		/*
@@ -394,7 +405,7 @@
 		meson_clk_pll_set_rate(hw, old_rate, parent_rate);
 	}
 
-	return 0;
+	return ret;
 }
 
 /*
--- linux-ein-5.4.0.orig/drivers/clk/meson/g12a.c
+++ linux-ein-5.4.0/drivers/clk/meson/g12a.c
@@ -298,6 +298,17 @@
 			&g12a_fclk_div2_div.hw
 		},
 		.num_parents = 1,
+		/*
+		 * Similar to fclk_div3, it seems that this clock is used by
+		 * the resident firmware and is required by the platform to
+		 * operate correctly.
+		 * Until the following condition are met, we need this clock to
+		 * be marked as critical:
+		 * a) Mark the clock used by a firmware resource, if possible
+		 * b) CCF has a clock hand-off mechanism to make the sure the
+		 *    clock stays on until the proper driver comes along
+		 */
+		.flags = CLK_IS_CRITICAL,
 	},
 };
 
@@ -1591,7 +1602,7 @@
 };
 
 static const struct pll_mult_range g12a_gp0_pll_mult_range = {
-	.min = 55,
+	.min = 125,
 	.max = 255,
 };
 
@@ -4692,6 +4703,7 @@
 	&g12a_bt656,
 	&g12a_usb1_to_ddr,
 	&g12a_mmc_pclk,
+	&g12a_uart2,
 	&g12a_vpu_intr,
 	&g12a_gic,
 	&g12a_sd_emmc_a_clk0,
--- linux-ein-5.4.0.orig/drivers/clk/meson/gxbb.c
+++ linux-ein-5.4.0/drivers/clk/meson/gxbb.c
@@ -719,6 +719,35 @@
 			.width   = 14,
 		},
 		.sdm_en = {
+			.reg_off = HHI_MPLL_CNTL,
+			.shift   = 25,
+			.width	 = 1,
+		},
+		.n2 = {
+			.reg_off = HHI_MPLL_CNTL7,
+			.shift   = 16,
+			.width   = 9,
+		},
+		.lock = &meson_clk_lock,
+	},
+	.hw.init = &(struct clk_init_data){
+		.name = "mpll0_div",
+		.ops = &meson_clk_mpll_ops,
+		.parent_hws = (const struct clk_hw *[]) {
+			&gxbb_mpll_prediv.hw
+		},
+		.num_parents = 1,
+	},
+};
+
+static struct clk_regmap gxl_mpll0_div = {
+	.data = &(struct meson_clk_mpll_data){
+		.sdm = {
+			.reg_off = HHI_MPLL_CNTL7,
+			.shift   = 0,
+			.width   = 14,
+		},
+		.sdm_en = {
 			.reg_off = HHI_MPLL_CNTL7,
 			.shift   = 15,
 			.width	 = 1,
@@ -748,7 +777,16 @@
 	.hw.init = &(struct clk_init_data){
 		.name = "mpll0",
 		.ops = &clk_regmap_gate_ops,
-		.parent_hws = (const struct clk_hw *[]) { &gxbb_mpll0_div.hw },
+		.parent_data = &(const struct clk_parent_data) {
+			/*
+			 * Note:
+			 * GXL and GXBB have different SDM_EN registers. We
+			 * fallback to the global naming string mechanism so
+			 * mpll0_div picks up the appropriate one.
+			 */
+			.name = "mpll0_div",
+			.index = -1,
+		},
 		.num_parents = 1,
 		.flags = CLK_SET_RATE_PARENT,
 	},
@@ -3036,7 +3074,7 @@
 		[CLKID_VAPB_1]		    = &gxbb_vapb_1.hw,
 		[CLKID_VAPB_SEL]	    = &gxbb_vapb_sel.hw,
 		[CLKID_VAPB]		    = &gxbb_vapb.hw,
-		[CLKID_MPLL0_DIV]	    = &gxbb_mpll0_div.hw,
+		[CLKID_MPLL0_DIV]	    = &gxl_mpll0_div.hw,
 		[CLKID_MPLL1_DIV]	    = &gxbb_mpll1_div.hw,
 		[CLKID_MPLL2_DIV]	    = &gxbb_mpll2_div.hw,
 		[CLKID_MPLL_PREDIV]	    = &gxbb_mpll_prediv.hw,
@@ -3430,7 +3468,7 @@
 	&gxbb_mpll0,
 	&gxbb_mpll1,
 	&gxbb_mpll2,
-	&gxbb_mpll0_div,
+	&gxl_mpll0_div,
 	&gxbb_mpll1_div,
 	&gxbb_mpll2_div,
 	&gxbb_cts_amclk_div,
--- linux-ein-5.4.0.orig/drivers/clk/meson/meson-aoclk.c
+++ linux-ein-5.4.0/drivers/clk/meson/meson-aoclk.c
@@ -36,6 +36,7 @@
 	struct meson_aoclk_reset_controller *rstc;
 	struct meson_aoclk_data *data;
 	struct device *dev = &pdev->dev;
+	struct device_node *np;
 	struct regmap *regmap;
 	int ret, clkid;
 
@@ -47,7 +48,9 @@
 	if (!rstc)
 		return -ENOMEM;
 
-	regmap = syscon_node_to_regmap(of_get_parent(dev->of_node));
+	np = of_get_parent(dev->of_node);
+	regmap = syscon_node_to_regmap(np);
+	of_node_put(np);
 	if (IS_ERR(regmap)) {
 		dev_err(dev, "failed to get regmap\n");
 		return PTR_ERR(regmap);
--- linux-ein-5.4.0.orig/drivers/clk/meson/meson-eeclk.c
+++ linux-ein-5.4.0/drivers/clk/meson/meson-eeclk.c
@@ -17,6 +17,7 @@
 {
 	const struct meson_eeclkc_data *data;
 	struct device *dev = &pdev->dev;
+	struct device_node *np;
 	struct regmap *map;
 	int ret, i;
 
@@ -25,7 +26,9 @@
 		return -EINVAL;
 
 	/* Get the hhi system controller node */
-	map = syscon_node_to_regmap(of_get_parent(dev->of_node));
+	np = of_get_parent(dev->of_node);
+	map = syscon_node_to_regmap(np);
+	of_node_put(np);
 	if (IS_ERR(map)) {
 		dev_err(dev,
 			"failed to get HHI regmap\n");
--- linux-ein-5.4.0.orig/drivers/clk/meson/meson8b.c
+++ linux-ein-5.4.0/drivers/clk/meson/meson8b.c
@@ -1071,7 +1071,7 @@
 		 * Meson8m2: vid2_pll
 		 */
 		.parent_hws = (const struct clk_hw *[]) {
-			&meson8b_hdmi_pll_dco.hw
+			&meson8b_hdmi_pll_lvds_out.hw
 		},
 		.num_parents = 1,
 		.flags = CLK_SET_RATE_PARENT,
@@ -1207,7 +1207,7 @@
 
 static struct clk_regmap meson8b_vclk_div1_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 0,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1237,7 +1237,7 @@
 
 static struct clk_regmap meson8b_vclk_div2_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 1,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1267,7 +1267,7 @@
 
 static struct clk_regmap meson8b_vclk_div4_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 2,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1297,7 +1297,7 @@
 
 static struct clk_regmap meson8b_vclk_div6_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 3,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1327,7 +1327,7 @@
 
 static struct clk_regmap meson8b_vclk_div12_div_gate = {
 	.data = &(struct clk_regmap_gate_data){
-		.offset = HHI_VID_CLK_DIV,
+		.offset = HHI_VID_CLK_CNTL,
 		.bit_idx = 4,
 	},
 	.hw.init = &(struct clk_init_data){
@@ -1764,8 +1764,11 @@
 
 /*
  * The MALI IP is clocked by two identical clocks (mali_0 and mali_1)
- * muxed by a glitch-free switch on Meson8b and Meson8m2. Meson8 only
- * has mali_0 and no glitch-free mux.
+ * muxed by a glitch-free switch on Meson8b and Meson8m2. The CCF can
+ * actually manage this glitch-free mux because it does top-to-bottom
+ * updates the each clock tree and switches to the "inactive" one when
+ * CLK_SET_RATE_GATE is set.
+ * Meson8 only has mali_0 and no glitch-free mux.
  */
 static const struct clk_hw *meson8b_mali_0_1_parent_hws[] = {
 	&meson8b_xtal.hw,
@@ -1830,7 +1833,7 @@
 			&meson8b_mali_0_div.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT,
+		.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT,
 	},
 };
 
@@ -1885,7 +1888,7 @@
 			&meson8b_mali_1_div.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT,
+		.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT,
 	},
 };
 
@@ -1907,6 +1910,13 @@
 	},
 };
 
+static const struct reg_sequence meson8m2_gp_pll_init_regs[] = {
+	{ .reg = HHI_GP_PLL_CNTL2,	.def = 0x59c88000 },
+	{ .reg = HHI_GP_PLL_CNTL3,	.def = 0xca463823 },
+	{ .reg = HHI_GP_PLL_CNTL4,	.def = 0x0286a027 },
+	{ .reg = HHI_GP_PLL_CNTL5,	.def = 0x00003000 },
+};
+
 static const struct pll_params_table meson8m2_gp_pll_params_table[] = {
 	PLL_PARAMS(182, 3),
 	{ /* sentinel */ },
@@ -1940,6 +1950,8 @@
 			.width   = 1,
 		},
 		.table = meson8m2_gp_pll_params_table,
+		.init_regs = meson8m2_gp_pll_init_regs,
+		.init_count = ARRAY_SIZE(meson8m2_gp_pll_init_regs),
 	},
 	.hw.init = &(struct clk_init_data){
 		.name = "gp_pll_dco",
@@ -3488,54 +3500,87 @@
 static const struct meson8b_clk_reset_line {
 	u32 reg;
 	u8 bit_idx;
+	bool active_low;
 } meson8b_clk_reset_bits[] = {
 	[CLKC_RESET_L2_CACHE_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 30
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 30,
+		.active_low = false,
 	},
 	[CLKC_RESET_AXI_64_TO_128_BRIDGE_A5_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 29
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 29,
+		.active_low = false,
 	},
 	[CLKC_RESET_SCU_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 28
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 28,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU3_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 27
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 27,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU2_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 26
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 26,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU1_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 25
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 25,
+		.active_low = false,
 	},
 	[CLKC_RESET_CPU0_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 24
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 24,
+		.active_low = false,
 	},
 	[CLKC_RESET_A5_GLOBAL_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 18
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 18,
+		.active_low = false,
 	},
 	[CLKC_RESET_A5_AXI_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 17
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 17,
+		.active_low = false,
 	},
 	[CLKC_RESET_A5_ABP_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL0, .bit_idx = 16
+		.reg = HHI_SYS_CPU_CLK_CNTL0,
+		.bit_idx = 16,
+		.active_low = false,
 	},
 	[CLKC_RESET_AXI_64_TO_128_BRIDGE_MMC_SOFT_RESET] = {
-		.reg = HHI_SYS_CPU_CLK_CNTL1, .bit_idx = 30
+		.reg = HHI_SYS_CPU_CLK_CNTL1,
+		.bit_idx = 30,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_CLK_CNTL_SOFT_RESET] = {
-		.reg = HHI_VID_CLK_CNTL, .bit_idx = 15
+		.reg = HHI_VID_CLK_CNTL,
+		.bit_idx = 15,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_POST] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 7
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 7,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_PRE] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 3
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 3,
+		.active_low = false,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_POST] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 1
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 1,
+		.active_low = true,
 	},
 	[CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_PRE] = {
-		.reg = HHI_VID_DIVIDER_CNTL, .bit_idx = 0
+		.reg = HHI_VID_DIVIDER_CNTL,
+		.bit_idx = 0,
+		.active_low = true,
 	},
 };
 
@@ -3544,22 +3589,22 @@
 {
 	struct meson8b_clk_reset *meson8b_clk_reset =
 		container_of(rcdev, struct meson8b_clk_reset, reset);
-	unsigned long flags;
 	const struct meson8b_clk_reset_line *reset;
+	unsigned int value = 0;
+	unsigned long flags;
 
 	if (id >= ARRAY_SIZE(meson8b_clk_reset_bits))
 		return -EINVAL;
 
 	reset = &meson8b_clk_reset_bits[id];
 
+	if (assert != reset->active_low)
+		value = BIT(reset->bit_idx);
+
 	spin_lock_irqsave(&meson_clk_lock, flags);
 
-	if (assert)
-		regmap_update_bits(meson8b_clk_reset->regmap, reset->reg,
-				   BIT(reset->bit_idx), BIT(reset->bit_idx));
-	else
-		regmap_update_bits(meson8b_clk_reset->regmap, reset->reg,
-				   BIT(reset->bit_idx), 0);
+	regmap_update_bits(meson8b_clk_reset->regmap, reset->reg,
+			   BIT(reset->bit_idx), value);
 
 	spin_unlock_irqrestore(&meson_clk_lock, flags);
 
@@ -3639,13 +3684,16 @@
 			struct clk_hw_onecell_data *clk_hw_onecell_data)
 {
 	struct meson8b_clk_reset *rstc;
+	struct device_node *parent_np;
 	const char *notifier_clk_name;
 	struct clk *notifier_clk;
 	void __iomem *clk_base;
 	struct regmap *map;
 	int i, ret;
 
-	map = syscon_node_to_regmap(of_get_parent(np));
+	parent_np = of_get_parent(np);
+	map = syscon_node_to_regmap(parent_np);
+	of_node_put(parent_np);
 	if (IS_ERR(map)) {
 		pr_info("failed to get HHI regmap - Trying obsolete regs\n");
 
--- linux-ein-5.4.0.orig/drivers/clk/meson/meson8b.h
+++ linux-ein-5.4.0/drivers/clk/meson/meson8b.h
@@ -20,6 +20,10 @@
  * [0] http://dn.odroid.com/S805/Datasheet/S805_Datasheet%20V0.8%2020150126.pdf
  */
 #define HHI_GP_PLL_CNTL			0x40  /* 0x10 offset in data sheet */
+#define HHI_GP_PLL_CNTL2		0x44  /* 0x11 offset in data sheet */
+#define HHI_GP_PLL_CNTL3		0x48  /* 0x12 offset in data sheet */
+#define HHI_GP_PLL_CNTL4		0x4C  /* 0x13 offset in data sheet */
+#define HHI_GP_PLL_CNTL5		0x50  /* 0x14 offset in data sheet */
 #define HHI_VIID_CLK_DIV		0x128 /* 0x4a offset in data sheet */
 #define HHI_VIID_CLK_CNTL		0x12c /* 0x4b offset in data sheet */
 #define HHI_GCLK_MPEG0			0x140 /* 0x50 offset in data sheet */
--- linux-ein-5.4.0.orig/drivers/clk/mmp/clk-of-mmp2.c
+++ linux-ein-5.4.0/drivers/clk/mmp/clk-of-mmp2.c
@@ -134,7 +134,7 @@
 static const char *ssp_parent_names[] = {"vctcxo_4", "vctcxo_2", "vctcxo", "pll1_16"};
 
 static DEFINE_SPINLOCK(timer_lock);
-static const char *timer_parent_names[] = {"clk32", "vctcxo_2", "vctcxo_4", "vctcxo"};
+static const char *timer_parent_names[] = {"clk32", "vctcxo_4", "vctcxo_2", "vctcxo"};
 
 static DEFINE_SPINLOCK(reset_lock);
 
--- linux-ein-5.4.0.orig/drivers/clk/mvebu/Kconfig
+++ linux-ein-5.4.0/drivers/clk/mvebu/Kconfig
@@ -42,6 +42,7 @@
 
 config ARMADA_AP_CPU_CLK
 	bool
+	select ARMADA_AP_CP_HELPER
 
 config ARMADA_CP110_SYSCON
 	bool
--- linux-ein-5.4.0.orig/drivers/clk/mvebu/ap-cpu-clk.c
+++ linux-ein-5.4.0/drivers/clk/mvebu/ap-cpu-clk.c
@@ -256,12 +256,15 @@
 		int cpu, err;
 
 		err = of_property_read_u32(dn, "reg", &cpu);
-		if (WARN_ON(err))
+		if (WARN_ON(err)) {
+			of_node_put(dn);
 			return err;
+		}
 
 		/* If cpu2 or cpu3 is enabled */
 		if (cpu & APN806_CLUSTER_NUM_MASK) {
 			nclusters = 2;
+			of_node_put(dn);
 			break;
 		}
 	}
@@ -288,8 +291,10 @@
 		int cpu, err;
 
 		err = of_property_read_u32(dn, "reg", &cpu);
-		if (WARN_ON(err))
+		if (WARN_ON(err)) {
+			of_node_put(dn);
 			return err;
+		}
 
 		cluster_index = cpu & APN806_CLUSTER_NUM_MASK;
 		cluster_index >>= APN806_CLUSTER_NUM_OFFSET;
@@ -301,6 +306,7 @@
 		parent = of_clk_get(np, cluster_index);
 		if (IS_ERR(parent)) {
 			dev_err(dev, "Could not get the clock parent\n");
+			of_node_put(dn);
 			return -EINVAL;
 		}
 		parent_name =  __clk_get_name(parent);
@@ -319,8 +325,10 @@
 		init.parent_names = &parent_name;
 
 		ret = devm_clk_hw_register(dev, &ap_cpu_clk[cluster_index].hw);
-		if (ret)
+		if (ret) {
+			of_node_put(dn);
 			return ret;
+		}
 		ap_cpu_data->hws[cluster_index] = &ap_cpu_clk[cluster_index].hw;
 	}
 
--- linux-ein-5.4.0.orig/drivers/clk/mvebu/armada-37xx-periph.c
+++ linux-ein-5.4.0/drivers/clk/mvebu/armada-37xx-periph.c
@@ -84,6 +84,7 @@
 	void __iomem *reg_div;
 	u8 shift_div;
 	struct regmap *nb_pm_base;
+	unsigned long l1_expiration;
 };
 
 #define to_clk_double_div(_hw) container_of(_hw, struct clk_double_div, hw)
@@ -438,33 +439,6 @@
 	return val;
 }
 
-static int clk_pm_cpu_set_parent(struct clk_hw *hw, u8 index)
-{
-	struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
-	struct regmap *base = pm_cpu->nb_pm_base;
-	int load_level;
-
-	/*
-	 * We set the clock parent only if the DVFS is available but
-	 * not enabled.
-	 */
-	if (IS_ERR(base) || armada_3700_pm_dvfs_is_enabled(base))
-		return -EINVAL;
-
-	/* Set the parent clock for all the load level */
-	for (load_level = 0; load_level < LOAD_LEVEL_NR; load_level++) {
-		unsigned int reg, mask,  val,
-			offset = ARMADA_37XX_NB_TBG_SEL_OFF;
-
-		armada_3700_pm_dvfs_update_regs(load_level, &reg, &offset);
-
-		val = index << offset;
-		mask = ARMADA_37XX_NB_TBG_SEL_MASK << offset;
-		regmap_update_bits(base, reg, mask, val);
-	}
-	return 0;
-}
-
 static unsigned long clk_pm_cpu_recalc_rate(struct clk_hw *hw,
 					    unsigned long parent_rate)
 {
@@ -512,8 +486,10 @@
 }
 
 /*
- * Switching the CPU from the L2 or L3 frequencies (300 and 200 Mhz
- * respectively) to L0 frequency (1.2 Ghz) requires a significant
+ * Workaround when base CPU frequnecy is 1000 or 1200 MHz
+ *
+ * Switching the CPU from the L2 or L3 frequencies (250/300 or 200 MHz
+ * respectively) to L0 frequency (1/1.2 GHz) requires a significant
  * amount of time to let VDD stabilize to the appropriate
  * voltage. This amount of time is large enough that it cannot be
  * covered by the hardware countdown register. Due to this, the CPU
@@ -523,26 +499,56 @@
  * To work around this problem, we prevent switching directly from the
  * L2/L3 frequencies to the L0 frequency, and instead switch to the L1
  * frequency in-between. The sequence therefore becomes:
- * 1. First switch from L2/L3(200/300MHz) to L1(600MHZ)
+ * 1. First switch from L2/L3 (200/250/300 MHz) to L1 (500/600 MHz)
  * 2. Sleep 20ms for stabling VDD voltage
- * 3. Then switch from L1(600MHZ) to L0(1200Mhz).
+ * 3. Then switch from L1 (500/600 MHz) to L0 (1000/1200 MHz).
  */
-static void clk_pm_cpu_set_rate_wa(unsigned long rate, struct regmap *base)
+static void clk_pm_cpu_set_rate_wa(struct clk_pm_cpu *pm_cpu,
+				   unsigned int new_level, unsigned long rate,
+				   struct regmap *base)
 {
 	unsigned int cur_level;
 
-	if (rate != 1200 * 1000 * 1000)
-		return;
-
 	regmap_read(base, ARMADA_37XX_NB_CPU_LOAD, &cur_level);
 	cur_level &= ARMADA_37XX_NB_CPU_LOAD_MASK;
-	if (cur_level <= ARMADA_37XX_DVFS_LOAD_1)
+
+	if (cur_level == new_level)
+		return;
+
+	/*
+	 * System wants to go to L1 on its own. If we are going from L2/L3,
+	 * remember when 20ms will expire. If from L0, set the value so that
+	 * next switch to L0 won't have to wait.
+	 */
+	if (new_level == ARMADA_37XX_DVFS_LOAD_1) {
+		if (cur_level == ARMADA_37XX_DVFS_LOAD_0)
+			pm_cpu->l1_expiration = jiffies;
+		else
+			pm_cpu->l1_expiration = jiffies + msecs_to_jiffies(20);
 		return;
+	}
+
+	/*
+	 * If we are setting to L2/L3, just invalidate L1 expiration time,
+	 * sleeping is not needed.
+	 */
+	if (rate < 1000*1000*1000)
+		goto invalidate_l1_exp;
+
+	/*
+	 * We are going to L0 with rate >= 1GHz. Check whether we have been at
+	 * L1 for long enough time. If not, go to L1 for 20ms.
+	 */
+	if (pm_cpu->l1_expiration && jiffies >= pm_cpu->l1_expiration)
+		goto invalidate_l1_exp;
 
 	regmap_update_bits(base, ARMADA_37XX_NB_CPU_LOAD,
 			   ARMADA_37XX_NB_CPU_LOAD_MASK,
 			   ARMADA_37XX_DVFS_LOAD_1);
 	msleep(20);
+
+invalidate_l1_exp:
+	pm_cpu->l1_expiration = 0;
 }
 
 static int clk_pm_cpu_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -576,7 +582,9 @@
 			reg = ARMADA_37XX_NB_CPU_LOAD;
 			mask = ARMADA_37XX_NB_CPU_LOAD_MASK;
 
-			clk_pm_cpu_set_rate_wa(rate, base);
+			/* Apply workaround when base CPU frequency is 1000 or 1200 MHz */
+			if (parent_rate >= 1000*1000*1000)
+				clk_pm_cpu_set_rate_wa(pm_cpu, load_level, rate, base);
 
 			regmap_update_bits(base, reg, mask, load_level);
 
@@ -590,7 +598,6 @@
 
 static const struct clk_ops clk_pm_cpu_ops = {
 	.get_parent = clk_pm_cpu_get_parent,
-	.set_parent = clk_pm_cpu_set_parent,
 	.round_rate = clk_pm_cpu_round_rate,
 	.set_rate = clk_pm_cpu_set_rate,
 	.recalc_rate = clk_pm_cpu_recalc_rate,
--- linux-ein-5.4.0.orig/drivers/clk/mvebu/armada-37xx-xtal.c
+++ linux-ein-5.4.0/drivers/clk/mvebu/armada-37xx-xtal.c
@@ -13,8 +13,8 @@
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 
-#define NB_GPIO1_LATCH	0xC
-#define XTAL_MODE	    BIT(31)
+#define NB_GPIO1_LATCH	0x8
+#define XTAL_MODE	    BIT(9)
 
 static int armada_3700_xtal_clock_probe(struct platform_device *pdev)
 {
--- linux-ein-5.4.0.orig/drivers/clk/mvebu/kirkwood.c
+++ linux-ein-5.4.0/drivers/clk/mvebu/kirkwood.c
@@ -265,6 +265,7 @@
 static const struct clk_muxing_soc_desc kirkwood_mux_desc[] __initconst = {
 	{ "powersave", powersave_parents, ARRAY_SIZE(powersave_parents),
 		11, 1, 0 },
+	{ }
 };
 
 static struct clk *clk_muxing_get_src(
--- linux-ein-5.4.0.orig/drivers/clk/pxa/clk-pxa27x.c
+++ linux-ein-5.4.0/drivers/clk/pxa/clk-pxa27x.c
@@ -459,6 +459,7 @@
 };
 static struct dummy_clk dummy_clks[] __initdata = {
 	DUMMY_CLK(NULL, "pxa27x-gpio", "osc_32_768khz"),
+	DUMMY_CLK(NULL, "pxa-rtc", "osc_32_768khz"),
 	DUMMY_CLK(NULL, "sa1100-rtc", "osc_32_768khz"),
 	DUMMY_CLK("UARTCLK", "pxa2xx-ir", "STUART"),
 };
--- linux-ein-5.4.0.orig/drivers/clk/qcom/a53-pll.c
+++ linux-ein-5.4.0/drivers/clk/qcom/a53-pll.c
@@ -93,6 +93,7 @@
 	{ .compatible = "qcom,msm8916-a53pll" },
 	{ }
 };
+MODULE_DEVICE_TABLE(of, qcom_a53pll_match_table);
 
 static struct platform_driver qcom_a53pll_driver = {
 	.probe = qcom_a53pll_probe,
--- linux-ein-5.4.0.orig/drivers/clk/qcom/camcc-sdm845.c
+++ linux-ein-5.4.0/drivers/clk/qcom/camcc-sdm845.c
@@ -1521,6 +1521,8 @@
 	},
 };
 
+static struct gdsc titan_top_gdsc;
+
 static struct gdsc bps_gdsc = {
 	.gdscr = 0x6004,
 	.pd = {
@@ -1554,6 +1556,7 @@
 		.name = "ife_0_gdsc",
 	},
 	.flags = POLL_CFG_GDSCR,
+	.parent = &titan_top_gdsc.pd,
 	.pwrsts = PWRSTS_OFF_ON,
 };
 
@@ -1563,6 +1566,7 @@
 		.name = "ife_1_gdsc",
 	},
 	.flags = POLL_CFG_GDSCR,
+	.parent = &titan_top_gdsc.pd,
 	.pwrsts = PWRSTS_OFF_ON,
 };
 
--- linux-ein-5.4.0.orig/drivers/clk/qcom/clk-alpha-pll.c
+++ linux-ein-5.4.0/drivers/clk/qcom/clk-alpha-pll.c
@@ -55,7 +55,6 @@
 #define PLL_STATUS(p)		((p)->offset + (p)->regs[PLL_OFF_STATUS])
 #define PLL_OPMODE(p)		((p)->offset + (p)->regs[PLL_OFF_OPMODE])
 #define PLL_FRAC(p)		((p)->offset + (p)->regs[PLL_OFF_FRAC])
-#define PLL_CAL_VAL(p)		((p)->offset + (p)->regs[PLL_OFF_CAL_VAL])
 
 const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = {
 	[CLK_ALPHA_PLL_TYPE_DEFAULT] =  {
@@ -114,7 +113,6 @@
 		[PLL_OFF_STATUS] = 0x30,
 		[PLL_OFF_OPMODE] = 0x38,
 		[PLL_OFF_ALPHA_VAL] = 0x40,
-		[PLL_OFF_CAL_VAL] = 0x44,
 	},
 };
 EXPORT_SYMBOL_GPL(clk_alpha_pll_regs);
--- linux-ein-5.4.0.orig/drivers/clk/qcom/clk-krait.c
+++ linux-ein-5.4.0/drivers/clk/qcom/clk-krait.c
@@ -32,11 +32,16 @@
 		regval |= (sel & mux->mask) << (mux->shift + LPL_SHIFT);
 	}
 	krait_set_l2_indirect_reg(mux->offset, regval);
-	spin_unlock_irqrestore(&krait_clock_reg_lock, flags);
 
 	/* Wait for switch to complete. */
 	mb();
 	udelay(1);
+
+	/*
+	 * Unlock now to make sure the mux register is not
+	 * modified while switching to the new parent.
+	 */
+	spin_unlock_irqrestore(&krait_clock_reg_lock, flags);
 }
 
 static int krait_mux_set_parent(struct clk_hw *hw, u8 index)
@@ -93,6 +98,8 @@
 
 	if (d->lpl)
 		mask = mask << (d->shift + LPL_SHIFT) | mask << d->shift;
+	else
+		mask <<= d->shift;
 
 	spin_lock_irqsave(&krait_clock_reg_lock, flags);
 	val = krait_get_l2_indirect_reg(d->offset);
--- linux-ein-5.4.0.orig/drivers/clk/qcom/clk-rcg2.c
+++ linux-ein-5.4.0/drivers/clk/qcom/clk-rcg2.c
@@ -217,9 +217,14 @@
 
 	clk_flags = clk_hw_get_flags(hw);
 	p = clk_hw_get_parent_by_index(hw, index);
+	if (!p)
+		return -EINVAL;
+
 	if (clk_flags & CLK_SET_RATE_PARENT) {
 		rate = f->freq;
 		if (f->pre_div) {
+			if (!rate)
+				rate = req->rate;
 			rate /= 2;
 			rate *= f->pre_div + 1;
 		}
@@ -258,7 +263,7 @@
 
 static int __clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f)
 {
-	u32 cfg, mask;
+	u32 cfg, mask, d_val, not2d_val, n_minus_m;
 	struct clk_hw *hw = &rcg->clkr.hw;
 	int ret, index = qcom_find_src_index(hw, rcg->parent_map, f->src);
 
@@ -277,8 +282,17 @@
 		if (ret)
 			return ret;
 
+		/* Calculate 2d value */
+		d_val = f->n;
+
+		n_minus_m = f->n - f->m;
+		n_minus_m *= 2;
+
+		d_val = clamp_t(u32, d_val, f->m, n_minus_m);
+		not2d_val = ~d_val & mask;
+
 		ret = regmap_update_bits(rcg->clkr.regmap,
-				RCG_D_OFFSET(rcg), mask, ~f->n);
+				RCG_D_OFFSET(rcg), mask, not2d_val);
 		if (ret)
 			return ret;
 	}
@@ -633,6 +647,7 @@
 	{ 2, 9 },
 	{ 4, 9 },
 	{ 1, 1 },
+	{ 2, 3 },
 	{ }
 };
 
@@ -950,7 +965,7 @@
 	struct clk_rcg2 *rcg = to_clk_rcg2(hw);
 	struct clk_hw *p;
 	unsigned long prate = 0;
-	u32 val, mask, cfg, mode;
+	u32 val, mask, cfg, mode, src;
 	int i, num_parents;
 
 	regmap_read(rcg->clkr.regmap, rcg->cmd_rcgr + SE_PERF_DFSR(l), &cfg);
@@ -960,12 +975,12 @@
 	if (cfg & mask)
 		f->pre_div = cfg & mask;
 
-	cfg &= CFG_SRC_SEL_MASK;
-	cfg >>= CFG_SRC_SEL_SHIFT;
+	src = cfg & CFG_SRC_SEL_MASK;
+	src >>= CFG_SRC_SEL_SHIFT;
 
 	num_parents = clk_hw_get_num_parents(hw);
 	for (i = 0; i < num_parents; i++) {
-		if (cfg == rcg->parent_map[i].cfg) {
+		if (src == rcg->parent_map[i].cfg) {
 			f->src = rcg->parent_map[i].src;
 			p = clk_hw_get_parent_by_index(&rcg->clkr.hw, i);
 			prate = clk_hw_get_rate(p);
--- linux-ein-5.4.0.orig/drivers/clk/qcom/clk-regmap-mux.c
+++ linux-ein-5.4.0/drivers/clk/qcom/clk-regmap-mux.c
@@ -28,7 +28,7 @@
 	val &= mask;
 
 	if (mux->parent_map)
-		return qcom_find_src_index(hw, mux->parent_map, val);
+		return qcom_find_cfg_index(hw, mux->parent_map, val);
 
 	return val;
 }
--- linux-ein-5.4.0.orig/drivers/clk/qcom/clk-rpmh.c
+++ linux-ein-5.4.0/drivers/clk/qcom/clk-rpmh.c
@@ -143,12 +143,22 @@
 		!= (c->aggr_state & BIT(state));
 }
 
+static int clk_rpmh_send(struct clk_rpmh *c, enum rpmh_state state,
+			 struct tcs_cmd *cmd, bool wait)
+{
+	if (wait)
+		return rpmh_write(c->dev, state, cmd, 1);
+
+	return rpmh_write_async(c->dev, state, cmd, 1);
+}
+
 static int clk_rpmh_send_aggregate_command(struct clk_rpmh *c)
 {
 	struct tcs_cmd cmd = { 0 };
 	u32 cmd_state, on_val;
 	enum rpmh_state state = RPMH_SLEEP_STATE;
 	int ret;
+	bool wait;
 
 	cmd.addr = c->res_addr;
 	cmd_state = c->aggr_state;
@@ -159,7 +169,8 @@
 			if (cmd_state & BIT(state))
 				cmd.data = on_val;
 
-			ret = rpmh_write_async(c->dev, state, &cmd, 1);
+			wait = cmd_state && state == RPMH_ACTIVE_ONLY_STATE;
+			ret = clk_rpmh_send(c, state, &cmd, wait);
 			if (ret) {
 				dev_err(c->dev, "set %s state of %s failed: (%d)\n",
 					!state ? "sleep" :
@@ -267,7 +278,7 @@
 	cmd.addr = c->res_addr;
 	cmd.data = BCM_TCS_CMD(1, enable, 0, cmd_state);
 
-	ret = rpmh_write_async(c->dev, RPMH_ACTIVE_ONLY_STATE, &cmd, 1);
+	ret = clk_rpmh_send(c, RPMH_ACTIVE_ONLY_STATE, &cmd, enable);
 	if (ret) {
 		dev_err(c->dev, "set active state of %s failed: (%d)\n",
 			c->res_name, ret);
--- linux-ein-5.4.0.orig/drivers/clk/qcom/clk-smd-rpm.c
+++ linux-ein-5.4.0/drivers/clk/qcom/clk-smd-rpm.c
@@ -648,6 +648,8 @@
 };
 
 /* msm8998 */
+DEFINE_CLK_SMD_RPM(msm8998, bimc_clk, bimc_a_clk, QCOM_SMD_RPM_MEM_CLK, 0);
+DEFINE_CLK_SMD_RPM(msm8998, pcnoc_clk, pcnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 0);
 DEFINE_CLK_SMD_RPM(msm8998, snoc_clk, snoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 1);
 DEFINE_CLK_SMD_RPM(msm8998, cnoc_clk, cnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 2);
 DEFINE_CLK_SMD_RPM(msm8998, ce1_clk, ce1_a_clk, QCOM_SMD_RPM_CE_CLK, 0);
@@ -670,6 +672,10 @@
 DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk3, rf_clk3_a, 6);
 DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk3_pin, rf_clk3_a_pin, 6);
 static struct clk_smd_rpm *msm8998_clks[] = {
+	[RPM_SMD_BIMC_CLK] = &msm8998_bimc_clk,
+	[RPM_SMD_BIMC_A_CLK] = &msm8998_bimc_a_clk,
+	[RPM_SMD_PCNOC_CLK] = &msm8998_pcnoc_clk,
+	[RPM_SMD_PCNOC_A_CLK] = &msm8998_pcnoc_a_clk,
 	[RPM_SMD_SNOC_CLK] = &msm8998_snoc_clk,
 	[RPM_SMD_SNOC_A_CLK] = &msm8998_snoc_a_clk,
 	[RPM_SMD_CNOC_CLK] = &msm8998_cnoc_clk,
--- linux-ein-5.4.0.orig/drivers/clk/qcom/common.c
+++ linux-ein-5.4.0/drivers/clk/qcom/common.c
@@ -29,6 +29,9 @@
 	if (!f)
 		return NULL;
 
+	if (!f->freq)
+		return f;
+
 	for (; f->freq; f++)
 		if (rate <= f->freq)
 			return f;
@@ -66,6 +69,18 @@
 }
 EXPORT_SYMBOL_GPL(qcom_find_src_index);
 
+int qcom_find_cfg_index(struct clk_hw *hw, const struct parent_map *map, u8 cfg)
+{
+	int i, num_parents = clk_hw_get_num_parents(hw);
+
+	for (i = 0; i < num_parents; i++)
+		if (cfg == map[i].cfg)
+			return i;
+
+	return -ENOENT;
+}
+EXPORT_SYMBOL_GPL(qcom_find_cfg_index);
+
 struct regmap *
 qcom_cc_map(struct platform_device *pdev, const struct qcom_cc_desc *desc)
 {
--- linux-ein-5.4.0.orig/drivers/clk/qcom/common.h
+++ linux-ein-5.4.0/drivers/clk/qcom/common.h
@@ -49,6 +49,8 @@
 qcom_pll_set_fsm_mode(struct regmap *m, u32 reg, u8 bias_count, u8 lock_count);
 extern int qcom_find_src_index(struct clk_hw *hw, const struct parent_map *map,
 			       u8 src);
+extern int qcom_find_cfg_index(struct clk_hw *hw, const struct parent_map *map,
+			       u8 cfg);
 
 extern int qcom_cc_register_board_clk(struct device *dev, const char *path,
 				      const char *name, unsigned long rate);
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-ipq8074.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-ipq8074.c
@@ -667,6 +667,7 @@
 			},
 			.num_parents = 1,
 			.ops = &clk_branch2_ops,
+			.flags = CLK_IS_CRITICAL,
 		},
 	},
 };
@@ -1074,7 +1075,7 @@
 		.name = "sdcc1_apps_clk_src",
 		.parent_names = gcc_xo_gpll0_gpll2_gpll0_out_main_div2,
 		.num_parents = 4,
-		.ops = &clk_rcg2_ops,
+		.ops = &clk_rcg2_floor_ops,
 	},
 };
 
@@ -1788,8 +1789,10 @@
 static const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
 	F(25000000, P_UNIPHY1_RX, 12.5, 0, 0),
+	F(25000000, P_UNIPHY0_RX, 5, 0, 0),
 	F(78125000, P_UNIPHY1_RX, 4, 0, 0),
 	F(125000000, P_UNIPHY1_RX, 2.5, 0, 0),
+	F(125000000, P_UNIPHY0_RX, 1, 0, 0),
 	F(156250000, P_UNIPHY1_RX, 2, 0, 0),
 	F(312500000, P_UNIPHY1_RX, 1, 0, 0),
 	{ }
@@ -1828,8 +1831,10 @@
 static const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
 	F(25000000, P_UNIPHY1_TX, 12.5, 0, 0),
+	F(25000000, P_UNIPHY0_TX, 5, 0, 0),
 	F(78125000, P_UNIPHY1_TX, 4, 0, 0),
 	F(125000000, P_UNIPHY1_TX, 2.5, 0, 0),
+	F(125000000, P_UNIPHY0_TX, 1, 0, 0),
 	F(156250000, P_UNIPHY1_TX, 2, 0, 0),
 	F(312500000, P_UNIPHY1_TX, 1, 0, 0),
 	{ }
@@ -1867,8 +1872,10 @@
 
 static const struct freq_tbl ftbl_nss_port6_rx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
+	F(25000000, P_UNIPHY2_RX, 5, 0, 0),
 	F(25000000, P_UNIPHY2_RX, 12.5, 0, 0),
 	F(78125000, P_UNIPHY2_RX, 4, 0, 0),
+	F(125000000, P_UNIPHY2_RX, 1, 0, 0),
 	F(125000000, P_UNIPHY2_RX, 2.5, 0, 0),
 	F(156250000, P_UNIPHY2_RX, 2, 0, 0),
 	F(312500000, P_UNIPHY2_RX, 1, 0, 0),
@@ -1907,8 +1914,10 @@
 
 static const struct freq_tbl ftbl_nss_port6_tx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
+	F(25000000, P_UNIPHY2_TX, 5, 0, 0),
 	F(25000000, P_UNIPHY2_TX, 12.5, 0, 0),
 	F(78125000, P_UNIPHY2_TX, 4, 0, 0),
+	F(125000000, P_UNIPHY2_TX, 1, 0, 0),
 	F(125000000, P_UNIPHY2_TX, 2.5, 0, 0),
 	F(156250000, P_UNIPHY2_TX, 2, 0, 0),
 	F(312500000, P_UNIPHY2_TX, 1, 0, 0),
@@ -3346,6 +3355,7 @@
 
 static struct clk_branch gcc_ubi0_ahb_clk = {
 	.halt_reg = 0x6820c,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x6820c,
 		.enable_mask = BIT(0),
@@ -3363,6 +3373,7 @@
 
 static struct clk_branch gcc_ubi0_axi_clk = {
 	.halt_reg = 0x68200,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68200,
 		.enable_mask = BIT(0),
@@ -3380,6 +3391,7 @@
 
 static struct clk_branch gcc_ubi0_nc_axi_clk = {
 	.halt_reg = 0x68204,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68204,
 		.enable_mask = BIT(0),
@@ -3397,6 +3409,7 @@
 
 static struct clk_branch gcc_ubi0_core_clk = {
 	.halt_reg = 0x68210,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68210,
 		.enable_mask = BIT(0),
@@ -3414,6 +3427,7 @@
 
 static struct clk_branch gcc_ubi0_mpt_clk = {
 	.halt_reg = 0x68208,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68208,
 		.enable_mask = BIT(0),
@@ -3431,6 +3445,7 @@
 
 static struct clk_branch gcc_ubi1_ahb_clk = {
 	.halt_reg = 0x6822c,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x6822c,
 		.enable_mask = BIT(0),
@@ -3448,6 +3463,7 @@
 
 static struct clk_branch gcc_ubi1_axi_clk = {
 	.halt_reg = 0x68220,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68220,
 		.enable_mask = BIT(0),
@@ -3465,6 +3481,7 @@
 
 static struct clk_branch gcc_ubi1_nc_axi_clk = {
 	.halt_reg = 0x68224,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68224,
 		.enable_mask = BIT(0),
@@ -3482,6 +3499,7 @@
 
 static struct clk_branch gcc_ubi1_core_clk = {
 	.halt_reg = 0x68230,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68230,
 		.enable_mask = BIT(0),
@@ -3499,6 +3517,7 @@
 
 static struct clk_branch gcc_ubi1_mpt_clk = {
 	.halt_reg = 0x68228,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68228,
 		.enable_mask = BIT(0),
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-mdm9615.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-mdm9615.c
@@ -58,7 +58,7 @@
 	.enable_mask = BIT(0),
 	.hw.init = &(struct clk_init_data){
 		.name = "pll0_vote",
-		.parent_names = (const char *[]){ "pll8" },
+		.parent_names = (const char *[]){ "pll0" },
 		.num_parents = 1,
 		.ops = &clk_pll_vote_ops,
 	},
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-msm8916.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-msm8916.c
@@ -260,7 +260,7 @@
 	.l_reg = 0x21004,
 	.m_reg = 0x21008,
 	.n_reg = 0x2100c,
-	.config_reg = 0x21014,
+	.config_reg = 0x21010,
 	.mode_reg = 0x21000,
 	.status_reg = 0x2101c,
 	.status_bit = 17,
@@ -287,7 +287,7 @@
 	.l_reg = 0x20004,
 	.m_reg = 0x20008,
 	.n_reg = 0x2000c,
-	.config_reg = 0x20014,
+	.config_reg = 0x20010,
 	.mode_reg = 0x20000,
 	.status_reg = 0x2001c,
 	.status_bit = 17,
@@ -314,7 +314,7 @@
 	.l_reg = 0x4a004,
 	.m_reg = 0x4a008,
 	.n_reg = 0x4a00c,
-	.config_reg = 0x4a014,
+	.config_reg = 0x4a010,
 	.mode_reg = 0x4a000,
 	.status_reg = 0x4a01c,
 	.status_bit = 17,
@@ -341,7 +341,7 @@
 	.l_reg = 0x23004,
 	.m_reg = 0x23008,
 	.n_reg = 0x2300c,
-	.config_reg = 0x23014,
+	.config_reg = 0x23010,
 	.mode_reg = 0x23000,
 	.status_reg = 0x2301c,
 	.status_bit = 17,
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-msm8994.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-msm8994.c
@@ -107,6 +107,7 @@
 
 static struct clk_alpha_pll_postdiv gpll4 = {
 	.offset = 0x1dc0,
+	.width = 4,
 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
 	.clkr.hw.init = &(struct clk_init_data)
 	{
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-msm8996.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-msm8996.c
@@ -2937,20 +2937,6 @@
 	},
 };
 
-static struct clk_branch gcc_aggre1_pnoc_ahb_clk = {
-	.halt_reg = 0x82014,
-	.clkr = {
-		.enable_reg = 0x82014,
-		.enable_mask = BIT(0),
-		.hw.init = &(struct clk_init_data){
-			.name = "gcc_aggre1_pnoc_ahb_clk",
-			.parent_names = (const char *[]){ "periph_noc_clk_src" },
-			.num_parents = 1,
-			.ops = &clk_branch2_ops,
-		},
-	},
-};
-
 static struct clk_branch gcc_aggre2_ufs_axi_clk = {
 	.halt_reg = 0x83014,
 	.clkr = {
@@ -3453,7 +3439,6 @@
 	[GCC_AGGRE0_CNOC_AHB_CLK] = &gcc_aggre0_cnoc_ahb_clk.clkr,
 	[GCC_SMMU_AGGRE0_AXI_CLK] = &gcc_smmu_aggre0_axi_clk.clkr,
 	[GCC_SMMU_AGGRE0_AHB_CLK] = &gcc_smmu_aggre0_ahb_clk.clkr,
-	[GCC_AGGRE1_PNOC_AHB_CLK] = &gcc_aggre1_pnoc_ahb_clk.clkr,
 	[GCC_AGGRE2_UFS_AXI_CLK] = &gcc_aggre2_ufs_axi_clk.clkr,
 	[GCC_AGGRE2_USB3_AXI_CLK] = &gcc_aggre2_usb3_axi_clk.clkr,
 	[GCC_QSPI_AHB_CLK] = &gcc_qspi_ahb_clk.clkr,
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-msm8998.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-msm8998.c
@@ -135,7 +135,7 @@
 
 static struct clk_alpha_pll gpll0 = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -145,58 +145,58 @@
 			.name = "gpll0",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_even = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_even",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_main = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_main",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_odd = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_odd",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll0_out_test = {
 	.offset = 0x0,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_test",
 		.parent_names = (const char *[]){ "gpll0" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll1 = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -206,58 +206,58 @@
 			.name = "gpll1",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_even = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_even",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_main = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_main",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_odd = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_odd",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll1_out_test = {
 	.offset = 0x1000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll1_out_test",
 		.parent_names = (const char *[]){ "gpll1" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll2 = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -267,58 +267,58 @@
 			.name = "gpll2",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_even = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_even",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_main = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_main",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_odd = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_odd",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll2_out_test = {
 	.offset = 0x2000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll2_out_test",
 		.parent_names = (const char *[]){ "gpll2" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll3 = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -328,58 +328,58 @@
 			.name = "gpll3",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_even = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_even",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_main = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_main",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_odd = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_odd",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll3_out_test = {
 	.offset = 0x3000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll3_out_test",
 		.parent_names = (const char *[]){ "gpll3" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll gpll4 = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.vco_table = fabia_vco,
 	.num_vco = ARRAY_SIZE(fabia_vco),
 	.clkr = {
@@ -389,52 +389,52 @@
 			.name = "gpll4",
 			.parent_names = (const char *[]){ "xo" },
 			.num_parents = 1,
-			.ops = &clk_alpha_pll_ops,
+			.ops = &clk_alpha_pll_fixed_fabia_ops,
 		}
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_even = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_even",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_main = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_main",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_odd = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_odd",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
 static struct clk_alpha_pll_postdiv gpll4_out_test = {
 	.offset = 0x77000,
-	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll4_out_test",
 		.parent_names = (const char *[]){ "gpll4" },
 		.num_parents = 1,
-		.ops = &clk_alpha_pll_postdiv_ops,
+		.ops = &clk_alpha_pll_postdiv_fabia_ops,
 	},
 };
 
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-qcs404.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-qcs404.c
@@ -25,11 +25,9 @@
 	P_CORE_BI_PLL_TEST_SE,
 	P_DSI0_PHY_PLL_OUT_BYTECLK,
 	P_DSI0_PHY_PLL_OUT_DSICLK,
-	P_GPLL0_OUT_AUX,
 	P_GPLL0_OUT_MAIN,
 	P_GPLL1_OUT_MAIN,
 	P_GPLL3_OUT_MAIN,
-	P_GPLL4_OUT_AUX,
 	P_GPLL4_OUT_MAIN,
 	P_GPLL6_OUT_AUX,
 	P_HDMI_PHY_PLL_CLK,
@@ -109,28 +107,24 @@
 static const struct parent_map gcc_parent_map_5[] = {
 	{ P_XO, 0 },
 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 1 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_5[] = {
 	"cxo",
-	"dsi0pll_byteclk_src",
-	"gpll0_out_aux",
+	"dsi0pllbyte",
 	"core_bi_pll_test_se",
 };
 
 static const struct parent_map gcc_parent_map_6[] = {
 	{ P_XO, 0 },
 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
-	{ P_GPLL0_OUT_AUX, 3 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_6[] = {
 	"cxo",
-	"dsi0_phy_pll_out_byteclk",
-	"gpll0_out_aux",
+	"dsi0pllbyte",
 	"core_bi_pll_test_se",
 };
 
@@ -139,7 +133,6 @@
 	{ P_GPLL0_OUT_MAIN, 1 },
 	{ P_GPLL3_OUT_MAIN, 2 },
 	{ P_GPLL6_OUT_AUX, 3 },
-	{ P_GPLL4_OUT_AUX, 4 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
@@ -148,7 +141,6 @@
 	"gpll0_out_main",
 	"gpll3_out_main",
 	"gpll6_out_aux",
-	"gpll4_out_aux",
 	"core_bi_pll_test_se",
 };
 
@@ -175,7 +167,7 @@
 static const char * const gcc_parent_names_9[] = {
 	"cxo",
 	"gpll0_out_main",
-	"dsi0_phy_pll_out_dsiclk",
+	"dsi0pll",
 	"gpll6_out_aux",
 	"core_bi_pll_test_se",
 };
@@ -207,14 +199,12 @@
 static const struct parent_map gcc_parent_map_12[] = {
 	{ P_XO, 0 },
 	{ P_DSI0_PHY_PLL_OUT_DSICLK, 1 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_12[] = {
 	"cxo",
-	"dsi0pll_pclk_src",
-	"gpll0_out_aux",
+	"dsi0pll",
 	"core_bi_pll_test_se",
 };
 
@@ -237,40 +227,34 @@
 static const struct parent_map gcc_parent_map_14[] = {
 	{ P_XO, 0 },
 	{ P_GPLL0_OUT_MAIN, 1 },
-	{ P_GPLL4_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_14[] = {
 	"cxo",
 	"gpll0_out_main",
-	"gpll4_out_aux",
 	"core_bi_pll_test_se",
 };
 
 static const struct parent_map gcc_parent_map_15[] = {
 	{ P_XO, 0 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_15[] = {
 	"cxo",
-	"gpll0_out_aux",
 	"core_bi_pll_test_se",
 };
 
 static const struct parent_map gcc_parent_map_16[] = {
 	{ P_XO, 0 },
 	{ P_GPLL0_OUT_MAIN, 1 },
-	{ P_GPLL0_OUT_AUX, 2 },
 	{ P_CORE_BI_PLL_TEST_SE, 7 },
 };
 
 static const char * const gcc_parent_names_16[] = {
 	"cxo",
 	"gpll0_out_main",
-	"gpll0_out_aux",
 	"core_bi_pll_test_se",
 };
 
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-sdm660.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-sdm660.c
@@ -666,7 +666,7 @@
 	.cmd_rcgr = 0x48044,
 	.mnd_width = 0,
 	.hid_width = 5,
-	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
+	.parent_map = gcc_parent_map_xo_gpll0,
 	.freq_tbl = ftbl_hmss_rbcpr_clk_src,
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "hmss_rbcpr_clk_src",
@@ -1715,6 +1715,9 @@
 
 static struct clk_branch gcc_mss_mnoc_bimc_axi_clk = {
 	.halt_reg = 0x8a004,
+	.halt_check = BRANCH_HALT,
+	.hwcg_reg = 0x8a004,
+	.hwcg_bit = 1,
 	.clkr = {
 		.enable_reg = 0x8a004,
 		.enable_mask = BIT(0),
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-sdm845.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-sdm845.c
@@ -3255,6 +3255,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
@@ -3263,6 +3264,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
@@ -3271,6 +3273,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
@@ -3279,6 +3282,7 @@
 		.name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
@@ -3287,6 +3291,7 @@
 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
@@ -3295,6 +3300,7 @@
 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
@@ -3303,6 +3309,7 @@
 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
 	},
 	.pwrsts = PWRSTS_OFF_ON,
+	.flags = VOTABLE,
 };
 
 static struct clk_regmap *gcc_sdm845_clocks[] = {
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gcc-sm8150.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gcc-sm8150.c
@@ -75,8 +75,7 @@
 	.clkr.hw.init = &(struct clk_init_data){
 		.name = "gpll0_out_even",
 		.parent_data = &(const struct clk_parent_data){
-			.fw_name = "bi_tcxo",
-			.name = "bi_tcxo",
+			.hw = &gpll0.clkr.hw,
 		},
 		.num_parents = 1,
 		.ops = &clk_trion_pll_postdiv_ops,
@@ -1616,6 +1615,38 @@
 	},
 };
 
+static struct clk_branch gcc_gpu_gpll0_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(15),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_gpu_gpll0_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(16),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_gpu_gpll0_div_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0_out_even.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_gpu_iref_clk = {
 	.halt_reg = 0x8c010,
 	.halt_check = BRANCH_HALT,
@@ -1698,6 +1729,38 @@
 	},
 };
 
+static struct clk_branch gcc_npu_gpll0_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(18),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_npu_gpll0_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch gcc_npu_gpll0_div_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x52004,
+		.enable_mask = BIT(19),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_npu_gpll0_div_clk_src",
+			.parent_hws = (const struct clk_hw *[]){
+				&gpll0_out_even.clkr.hw },
+			.num_parents = 1,
+			.flags = CLK_SET_RATE_PARENT,
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_npu_trig_clk = {
 	.halt_reg = 0x4d00c,
 	.halt_check = BRANCH_VOTED,
@@ -2812,6 +2875,45 @@
 	},
 };
 
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x7501c,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_card_rx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x750ac,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_card_rx_symbol_1_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x75018,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_card_tx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_ufs_card_unipro_core_clk = {
 	.halt_reg = 0x75058,
 	.halt_check = BRANCH_HALT,
@@ -2992,6 +3094,45 @@
 	},
 };
 
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x7701c,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_phy_rx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x770ac,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_phy_rx_symbol_1_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* external clocks so add BRANCH_HALT_SKIP */
+static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
+	.halt_check = BRANCH_HALT_SKIP,
+	.clkr = {
+		.enable_reg = 0x77018,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "gcc_ufs_phy_tx_symbol_0_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
 	.halt_reg = 0x77058,
 	.halt_check = BRANCH_HALT,
@@ -3332,12 +3473,16 @@
 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
 	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
+	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
+	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
 	[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
 	[GCC_NPU_AT_CLK] = &gcc_npu_at_clk.clkr,
 	[GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr,
 	[GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr,
+	[GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr,
+	[GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr,
 	[GCC_NPU_TRIG_CLK] = &gcc_npu_trig_clk.clkr,
 	[GCC_PCIE0_PHY_REFGEN_CLK] = &gcc_pcie0_phy_refgen_clk.clkr,
 	[GCC_PCIE1_PHY_REFGEN_CLK] = &gcc_pcie1_phy_refgen_clk.clkr,
@@ -3442,6 +3587,9 @@
 	[GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
 	[GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] =
 		&gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
+	[GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
+	[GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
+	[GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
 	[GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
 	[GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] =
 		&gcc_ufs_card_unipro_core_clk_src.clkr,
@@ -3459,6 +3607,9 @@
 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
 	[GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
+	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
+	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
+	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
 		&gcc_ufs_phy_unipro_core_clk_src.clkr,
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gdsc.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gdsc.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2015, 2017-2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015, 2017-2018, 2022, The Linux Foundation. All rights reserved.
  */
 
 #include <linux/bitops.h>
@@ -31,9 +31,14 @@
 #define CFG_GDSCR_OFFSET		0x4
 
 /* Wait 2^n CXO cycles between all states. Here, n=2 (4 cycles). */
-#define EN_REST_WAIT_VAL	(0x2 << 20)
-#define EN_FEW_WAIT_VAL		(0x8 << 16)
-#define CLK_DIS_WAIT_VAL	(0x2 << 12)
+#define EN_REST_WAIT_VAL	0x2
+#define EN_FEW_WAIT_VAL		0x8
+#define CLK_DIS_WAIT_VAL	0x2
+
+/* Transition delay shifts */
+#define EN_REST_WAIT_SHIFT	20
+#define EN_FEW_WAIT_SHIFT	16
+#define CLK_DIS_WAIT_SHIFT	12
 
 #define RETAIN_MEM		BIT(14)
 #define RETAIN_PERIPH		BIT(13)
@@ -308,7 +313,18 @@
 	 */
 	mask = HW_CONTROL_MASK | SW_OVERRIDE_MASK |
 	       EN_REST_WAIT_MASK | EN_FEW_WAIT_MASK | CLK_DIS_WAIT_MASK;
-	val = EN_REST_WAIT_VAL | EN_FEW_WAIT_VAL | CLK_DIS_WAIT_VAL;
+
+	if (!sc->en_rest_wait_val)
+		sc->en_rest_wait_val = EN_REST_WAIT_VAL;
+	if (!sc->en_few_wait_val)
+		sc->en_few_wait_val = EN_FEW_WAIT_VAL;
+	if (!sc->clk_dis_wait_val)
+		sc->clk_dis_wait_val = CLK_DIS_WAIT_VAL;
+
+	val = sc->en_rest_wait_val << EN_REST_WAIT_SHIFT |
+		sc->en_few_wait_val << EN_FEW_WAIT_SHIFT |
+		sc->clk_dis_wait_val << CLK_DIS_WAIT_SHIFT;
+
 	ret = regmap_update_bits(sc->regmap, sc->gdscr, mask, val);
 	if (ret)
 		return ret;
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gdsc.h
+++ linux-ein-5.4.0/drivers/clk/qcom/gdsc.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * Copyright (c) 2015, 2017-2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015, 2017-2018, 2022, The Linux Foundation. All rights reserved.
  */
 
 #ifndef __QCOM_GDSC_H__
@@ -21,6 +21,9 @@
  * @cxcs: offsets of branch registers to toggle mem/periph bits in
  * @cxc_count: number of @cxcs
  * @pwrsts: Possible powerdomain power states
+ * @en_rest_wait_val: transition delay value for receiving enr ack signal
+ * @en_few_wait_val: transition delay value for receiving enf ack signal
+ * @clk_dis_wait_val: transition delay value for halting clock
  * @resets: ids of resets associated with this gdsc
  * @reset_count: number of @resets
  * @rcdev: reset controller
@@ -34,6 +37,9 @@
 	unsigned int			clamp_io_ctrl;
 	unsigned int			*cxcs;
 	unsigned int			cxc_count;
+	unsigned int			en_rest_wait_val;
+	unsigned int			en_few_wait_val;
+	unsigned int			clk_dis_wait_val;
 	const u8			pwrsts;
 /* Powerdomain allowable state bitfields */
 #define PWRSTS_OFF		BIT(0)
--- linux-ein-5.4.0.orig/drivers/clk/qcom/gpucc-sdm845.c
+++ linux-ein-5.4.0/drivers/clk/qcom/gpucc-sdm845.c
@@ -22,8 +22,6 @@
 #define CX_GMU_CBCR_SLEEP_SHIFT		4
 #define CX_GMU_CBCR_WAKE_MASK		0xf
 #define CX_GMU_CBCR_WAKE_SHIFT		8
-#define CLK_DIS_WAIT_SHIFT		12
-#define CLK_DIS_WAIT_MASK		(0xf << CLK_DIS_WAIT_SHIFT)
 
 enum {
 	P_BI_TCXO,
@@ -124,6 +122,7 @@
 static struct gdsc gpu_cx_gdsc = {
 	.gdscr = 0x106c,
 	.gds_hw_ctrl = 0x1540,
+	.clk_dis_wait_val = 0x8,
 	.pd = {
 		.name = "gpu_cx_gdsc",
 	},
@@ -221,10 +220,6 @@
 	value = 0xf << CX_GMU_CBCR_WAKE_SHIFT | 0xf << CX_GMU_CBCR_SLEEP_SHIFT;
 	regmap_update_bits(regmap, 0x1098, mask, value);
 
-	/* Configure clk_dis_wait for gpu_cx_gdsc */
-	regmap_update_bits(regmap, 0x106c, CLK_DIS_WAIT_MASK,
-						8 << CLK_DIS_WAIT_SHIFT);
-
 	return qcom_cc_really_probe(pdev, &gpu_cc_sdm845_desc, regmap);
 }
 
--- linux-ein-5.4.0.orig/drivers/clk/renesas/r7s9210-cpg-mssr.c
+++ linux-ein-5.4.0/drivers/clk/renesas/r7s9210-cpg-mssr.c
@@ -213,7 +213,7 @@
 	.cpg_clk_register = rza2_cpg_clk_register,
 
 	/* RZ/A2 has Standby Control Registers */
-	.stbyctrl = true,
+	.reg_layout = CLK_REG_LAYOUT_RZ_A,
 };
 
 static void __init r7s9210_cpg_mssr_early_init(struct device_node *np)
--- linux-ein-5.4.0.orig/drivers/clk/renesas/r8a77995-cpg-mssr.c
+++ linux-ein-5.4.0/drivers/clk/renesas/r8a77995-cpg-mssr.c
@@ -75,6 +75,7 @@
 	DEF_RATE(".oco",       CLK_OCO,            8 * 1000 * 1000),
 
 	/* Core Clock Outputs */
+	DEF_FIXED("za2",       R8A77995_CLK_ZA2,   CLK_PLL0D3,     2, 1),
 	DEF_FIXED("z2",        R8A77995_CLK_Z2,    CLK_PLL0D3,     1, 1),
 	DEF_FIXED("ztr",       R8A77995_CLK_ZTR,   CLK_PLL1,       6, 1),
 	DEF_FIXED("zt",        R8A77995_CLK_ZT,    CLK_PLL1,       4, 1),
--- linux-ein-5.4.0.orig/drivers/clk/renesas/r9a06g032-clocks.c
+++ linux-ein-5.4.0/drivers/clk/renesas/r9a06g032-clocks.c
@@ -55,7 +55,7 @@
 			u16 sel, g1, r1, g2, r2;
 		} dual;
 	};
-} __packed;
+};
 
 #define I_GATE(_clk, _rst, _rdy, _midle, _scon, _mirack, _mistat) \
 	{ .gate = _clk, .reset = _rst, \
@@ -286,8 +286,8 @@
 		.name = "uart_group_012",
 		.type = K_BITSEL,
 		.source = 1 + R9A06G032_DIV_UART,
-		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */
-		.dual.sel = ((0xec / 4) << 5) | 24,
+		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */
+		.dual.sel = ((0x34 / 4) << 5) | 30,
 		.dual.group = 0,
 	},
 	{
@@ -295,8 +295,8 @@
 		.name = "uart_group_34567",
 		.type = K_BITSEL,
 		.source = 1 + R9A06G032_DIV_P2_PG,
-		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */
-		.dual.sel = ((0x34 / 4) << 5) | 30,
+		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */
+		.dual.sel = ((0xec / 4) << 5) | 24,
 		.dual.group = 1,
 	},
 	D_UGATE(CLK_UART0, "clk_uart0", UART_GROUP_012, 0, 0, 0x1b2, 0x1b3, 0x1b4, 0x1b5),
@@ -386,7 +386,7 @@
 	int error;
 	int index;
 
-	while (!of_parse_phandle_with_args(np, "clocks", "#clock-cells", i,
+	while (!of_parse_phandle_with_args(np, "clocks", "#clock-cells", i++,
 					   &clkspec)) {
 		if (clkspec.np != pd->dev.of_node)
 			continue;
@@ -399,7 +399,6 @@
 			if (error)
 				return error;
 		}
-		i++;
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/clk/renesas/rcar-gen3-cpg.c
+++ linux-ein-5.4.0/drivers/clk/renesas/rcar-gen3-cpg.c
@@ -464,7 +464,8 @@
 
 	clk = clk_register_composite(NULL, name, &parent_name, 1, NULL, NULL,
 				     &rpc->div.hw,  &clk_divider_ops,
-				     &rpc->gate.hw, &clk_gate_ops, 0);
+				     &rpc->gate.hw, &clk_gate_ops,
+				     CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk)) {
 		kfree(rpc);
 		return clk;
@@ -500,7 +501,8 @@
 
 	clk = clk_register_composite(NULL, name, &parent_name, 1, NULL, NULL,
 				     &rpcd2->fixed.hw, &clk_fixed_factor_ops,
-				     &rpcd2->gate.hw, &clk_gate_ops, 0);
+				     &rpcd2->gate.hw, &clk_gate_ops,
+				     CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk))
 		kfree(rpcd2);
 
--- linux-ein-5.4.0.orig/drivers/clk/renesas/renesas-cpg-mssr.c
+++ linux-ein-5.4.0/drivers/clk/renesas/renesas-cpg-mssr.c
@@ -111,12 +111,12 @@
  * @rcdev: Optional reset controller entity
  * @dev: CPG/MSSR device
  * @base: CPG/MSSR register block base address
+ * @reg_layout: CPG/MSSR register layout
  * @rmw_lock: protects RMW register accesses
  * @np: Device node in DT for this CPG/MSSR module
  * @num_core_clks: Number of Core Clocks in clks[]
  * @num_mod_clks: Number of Module Clocks in clks[]
  * @last_dt_core_clk: ID of the last Core Clock exported to DT
- * @stbyctrl: This device has Standby Control Registers
  * @notifiers: Notifier chain to save/restore clock state for system resume
  * @smstpcr_saved[].mask: Mask of SMSTPCR[] bits under our control
  * @smstpcr_saved[].val: Saved values of SMSTPCR[]
@@ -128,13 +128,13 @@
 #endif
 	struct device *dev;
 	void __iomem *base;
+	enum clk_reg_layout reg_layout;
 	spinlock_t rmw_lock;
 	struct device_node *np;
 
 	unsigned int num_core_clks;
 	unsigned int num_mod_clks;
 	unsigned int last_dt_core_clk;
-	bool stbyctrl;
 
 	struct raw_notifier_head notifiers;
 	struct {
@@ -177,7 +177,7 @@
 		enable ? "ON" : "OFF");
 	spin_lock_irqsave(&priv->rmw_lock, flags);
 
-	if (priv->stbyctrl) {
+	if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A) {
 		value = readb(priv->base + STBCR(reg));
 		if (enable)
 			value &= ~bitmask;
@@ -199,7 +199,7 @@
 
 	spin_unlock_irqrestore(&priv->rmw_lock, flags);
 
-	if (!enable || priv->stbyctrl)
+	if (!enable || priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 		return 0;
 
 	for (i = 1000; i > 0; --i) {
@@ -233,7 +233,7 @@
 	struct cpg_mssr_priv *priv = clock->priv;
 	u32 value;
 
-	if (priv->stbyctrl)
+	if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 		value = readb(priv->base + STBCR(clock->index / 32));
 	else
 		value = readl(priv->base + MSTPSR(clock->index / 32));
@@ -272,7 +272,7 @@
 
 	case CPG_MOD:
 		type = "module";
-		if (priv->stbyctrl) {
+		if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A) {
 			idx = MOD_CLK_PACK_10(clkidx);
 			range_check = 7 - (clkidx % 10);
 		} else {
@@ -801,6 +801,8 @@
 	for (reg = 0; reg < ARRAY_SIZE(priv->smstpcr_saved); reg++) {
 		if (priv->smstpcr_saved[reg].mask)
 			priv->smstpcr_saved[reg].val =
+				priv->reg_layout == CLK_REG_LAYOUT_RZ_A ?
+				readb(priv->base + STBCR(reg)) :
 				readl(priv->base + SMSTPCR(reg));
 	}
 
@@ -829,7 +831,7 @@
 		if (!mask)
 			continue;
 
-		if (priv->stbyctrl)
+		if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 			oldval = readb(priv->base + STBCR(reg));
 		else
 			oldval = readl(priv->base + SMSTPCR(reg));
@@ -838,7 +840,7 @@
 		if (newval == oldval)
 			continue;
 
-		if (priv->stbyctrl) {
+		if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A) {
 			writeb(newval, priv->base + STBCR(reg));
 			/* dummy read to ensure write has completed */
 			readb(priv->base + STBCR(reg));
@@ -860,8 +862,8 @@
 		}
 
 		if (!i)
-			dev_warn(dev, "Failed to enable SMSTP %p[0x%x]\n",
-				 priv->base + SMSTPCR(reg), oldval & mask);
+			dev_warn(dev, "Failed to enable SMSTP%u[0x%x]\n", reg,
+				 oldval & mask);
 	}
 
 	return 0;
@@ -905,12 +907,11 @@
 		goto out_err;
 	}
 
-	cpg_mssr_priv = priv;
 	priv->num_core_clks = info->num_total_core_clks;
 	priv->num_mod_clks = info->num_hw_mod_clks;
 	priv->last_dt_core_clk = info->last_dt_core_clk;
 	RAW_INIT_NOTIFIER_HEAD(&priv->notifiers);
-	priv->stbyctrl = info->stbyctrl;
+	priv->reg_layout = info->reg_layout;
 
 	for (i = 0; i < nclks; i++)
 		priv->clks[i] = ERR_PTR(-ENOENT);
@@ -919,6 +920,8 @@
 	if (error)
 		goto out_err;
 
+	cpg_mssr_priv = priv;
+
 	return 0;
 
 out_err:
@@ -988,7 +991,7 @@
 		return error;
 
 	/* Reset Controller not supported for Standby Control SoCs */
-	if (info->stbyctrl)
+	if (priv->reg_layout == CLK_REG_LAYOUT_RZ_A)
 		return 0;
 
 	error = cpg_mssr_reset_controller_register(priv);
--- linux-ein-5.4.0.orig/drivers/clk/renesas/renesas-cpg-mssr.h
+++ linux-ein-5.4.0/drivers/clk/renesas/renesas-cpg-mssr.h
@@ -85,6 +85,11 @@
 
 struct device_node;
 
+enum clk_reg_layout {
+	CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0,
+	CLK_REG_LAYOUT_RZ_A,
+};
+
     /**
      * SoC-specific CPG/MSSR Description
      *
@@ -105,6 +110,7 @@
      * @crit_mod_clks: Array with Module Clock IDs of critical clocks that
      *                 should not be disabled without a knowledgeable driver
      * @num_crit_mod_clks: Number of entries in crit_mod_clks[]
+     * @reg_layout: CPG/MSSR register layout from enum clk_reg_layout
      *
      * @core_pm_clks: Array with IDs of Core Clocks that are suitable for Power
      *                Management, in addition to Module Clocks
@@ -112,10 +118,6 @@
      *
      * @init: Optional callback to perform SoC-specific initialization
      * @cpg_clk_register: Optional callback to handle special Core Clock types
-     *
-     * @stbyctrl: This device has Standby Control Registers which are 8-bits
-     *            wide, no status registers (MSTPSR) and have different address
-     *            offsets.
      */
 
 struct cpg_mssr_info {
@@ -130,7 +132,7 @@
 	unsigned int num_core_clks;
 	unsigned int last_dt_core_clk;
 	unsigned int num_total_core_clks;
-	bool stbyctrl;
+	enum clk_reg_layout reg_layout;
 
 	/* Module Clocks */
 	const struct mssr_mod_clk *mod_clks;
--- linux-ein-5.4.0.orig/drivers/clk/rockchip/clk-half-divider.c
+++ linux-ein-5.4.0/drivers/clk/rockchip/clk-half-divider.c
@@ -167,7 +167,7 @@
 					  unsigned long flags,
 					  spinlock_t *lock)
 {
-	struct clk *clk;
+	struct clk *clk = ERR_PTR(-ENOMEM);
 	struct clk_mux *mux = NULL;
 	struct clk_gate *gate = NULL;
 	struct clk_divider *div = NULL;
--- linux-ein-5.4.0.orig/drivers/clk/rockchip/clk-pll.c
+++ linux-ein-5.4.0/drivers/clk/rockchip/clk-pll.c
@@ -963,6 +963,7 @@
 	return mux_clk;
 
 err_pll:
+	kfree(pll->rate_table);
 	clk_unregister(mux_clk);
 	mux_clk = pll_clk;
 err_mux:
--- linux-ein-5.4.0.orig/drivers/clk/rockchip/clk-rk3188.c
+++ linux-ein-5.4.0/drivers/clk/rockchip/clk-rk3188.c
@@ -751,6 +751,7 @@
 	"pclk_peri",
 	"hclk_cpubus",
 	"hclk_vio_bus",
+	"sclk_mac_lbtest",
 };
 
 static struct rockchip_clk_provider *__init rk3188_common_clk_init(struct device_node *np)
--- linux-ein-5.4.0.orig/drivers/clk/rockchip/clk-rk3228.c
+++ linux-ein-5.4.0/drivers/clk/rockchip/clk-rk3228.c
@@ -137,7 +137,7 @@
 PNAME(mux_hdmiphy_p)		= { "hdmiphy_phy", "xin24m" };
 PNAME(mux_aclk_cpu_src_p)	= { "cpll_aclk_cpu", "gpll_aclk_cpu", "hdmiphy_aclk_cpu" };
 
-PNAME(mux_pll_src_4plls_p)	= { "cpll", "gpll", "hdmiphy" "usb480m" };
+PNAME(mux_pll_src_4plls_p)	= { "cpll", "gpll", "hdmiphy", "usb480m" };
 PNAME(mux_pll_src_3plls_p)	= { "cpll", "gpll", "hdmiphy" };
 PNAME(mux_pll_src_2plls_p)	= { "cpll", "gpll" };
 PNAME(mux_sclk_hdmi_cec_p)	= { "cpll", "gpll", "xin24m" };
@@ -156,8 +156,6 @@
 PNAME(mux_i2s2_p)		= { "i2s2_src", "i2s2_frac", "xin12m" };
 PNAME(mux_sclk_spdif_p)		= { "sclk_spdif_src", "spdif_frac", "xin12m" };
 
-PNAME(mux_aclk_gpu_pre_p)	= { "cpll_gpu", "gpll_gpu", "hdmiphy_gpu", "usb480m_gpu" };
-
 PNAME(mux_uart0_p)		= { "uart0_src", "uart0_frac", "xin24m" };
 PNAME(mux_uart1_p)		= { "uart1_src", "uart1_frac", "xin24m" };
 PNAME(mux_uart2_p)		= { "uart2_src", "uart2_frac", "xin24m" };
@@ -468,16 +466,9 @@
 			RK2928_CLKSEL_CON(24), 6, 10, DFLAGS,
 			RK2928_CLKGATE_CON(2), 8, GFLAGS),
 
-	GATE(0, "cpll_gpu", "cpll", 0,
-			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	GATE(0, "gpll_gpu", "gpll", 0,
-			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	GATE(0, "hdmiphy_gpu", "hdmiphy", 0,
-			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	GATE(0, "usb480m_gpu", "usb480m", 0,
+	COMPOSITE(0, "aclk_gpu_pre", mux_pll_src_4plls_p, 0,
+			RK2928_CLKSEL_CON(34), 5, 2, MFLAGS, 0, 5, DFLAGS,
 			RK2928_CLKGATE_CON(3), 13, GFLAGS),
-	COMPOSITE_NOGATE(0, "aclk_gpu_pre", mux_aclk_gpu_pre_p, 0,
-			RK2928_CLKSEL_CON(34), 5, 2, MFLAGS, 0, 5, DFLAGS),
 
 	COMPOSITE(SCLK_SPI0, "sclk_spi0", mux_pll_src_2plls_p, 0,
 			RK2928_CLKSEL_CON(25), 8, 1, MFLAGS, 0, 7, DFLAGS,
@@ -582,8 +573,8 @@
 	GATE(0, "pclk_peri_noc", "pclk_peri", CLK_IGNORE_UNUSED, RK2928_CLKGATE_CON(12), 2, GFLAGS),
 
 	/* PD_GPU */
-	GATE(ACLK_GPU, "aclk_gpu", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(13), 14, GFLAGS),
-	GATE(0, "aclk_gpu_noc", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(13), 15, GFLAGS),
+	GATE(ACLK_GPU, "aclk_gpu", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(7), 14, GFLAGS),
+	GATE(0, "aclk_gpu_noc", "aclk_gpu_pre", 0, RK2928_CLKGATE_CON(7), 15, GFLAGS),
 
 	/* PD_BUS */
 	GATE(0, "sclk_initmem_mbist", "aclk_cpu", 0, RK2928_CLKGATE_CON(8), 1, GFLAGS),
--- linux-ein-5.4.0.orig/drivers/clk/rockchip/clk-rk3399.c
+++ linux-ein-5.4.0/drivers/clk/rockchip/clk-rk3399.c
@@ -1259,7 +1259,7 @@
 			RK3399_CLKSEL_CON(56), 6, 2, MFLAGS,
 			RK3399_CLKGATE_CON(10), 7, GFLAGS),
 
-	COMPOSITE_NOGATE(SCLK_CIF_OUT, "clk_cifout", mux_clk_cif_p, 0,
+	COMPOSITE_NOGATE(SCLK_CIF_OUT, "clk_cifout", mux_clk_cif_p, CLK_SET_RATE_PARENT,
 			 RK3399_CLKSEL_CON(56), 5, 1, MFLAGS, 0, 5, DFLAGS),
 
 	/* gic */
--- linux-ein-5.4.0.orig/drivers/clk/samsung/clk-exynos4.c
+++ linux-ein-5.4.0/drivers/clk/samsung/clk-exynos4.c
@@ -927,7 +927,7 @@
 	GATE(CLK_PCIE, "pcie", "aclk133", GATE_IP_FSYS, 14, 0, 0),
 	GATE(CLK_SMMU_PCIE, "smmu_pcie", "aclk133", GATE_IP_FSYS, 18, 0, 0),
 	GATE(CLK_MODEMIF, "modemif", "aclk100", GATE_IP_PERIL, 28, 0, 0),
-	GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, 0, 0),
+	GATE(CLK_CHIPID, "chipid", "aclk100", E4210_GATE_IP_PERIR, 0, CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_SYSREG, "sysreg", "aclk100", E4210_GATE_IP_PERIR, 0,
 			CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4210_GATE_IP_PERIR, 11, 0,
@@ -969,7 +969,7 @@
 		0),
 	GATE(CLK_TSADC, "tsadc", "aclk133", E4X12_GATE_BUS_FSYS1, 16, 0, 0),
 	GATE(CLK_MIPI_HSI, "mipi_hsi", "aclk133", GATE_IP_FSYS, 10, 0, 0),
-	GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, 0, 0),
+	GATE(CLK_CHIPID, "chipid", "aclk100", E4X12_GATE_IP_PERIR, 0, CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_SYSREG, "sysreg", "aclk100", E4X12_GATE_IP_PERIR, 1,
 			CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk100", E4X12_GATE_IP_PERIR, 11, 0,
--- linux-ein-5.4.0.orig/drivers/clk/samsung/clk-exynos5420.c
+++ linux-ein-5.4.0/drivers/clk/samsung/clk-exynos5420.c
@@ -12,6 +12,7 @@
 #include <linux/clk-provider.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/clk.h>
 
 #include "clk.h"
 #include "clk-cpu.h"
@@ -165,6 +166,8 @@
 	GATE_BUS_CPU,
 	GATE_SCLK_CPU,
 	CLKOUT_CMU_CPU,
+	APLL_CON0,
+	KPLL_CON0,
 	CPLL_CON0,
 	DPLL_CON0,
 	EPLL_CON0,
@@ -537,7 +540,7 @@
 
 static const struct samsung_gate_clock exynos5800_gate_clks[] __initconst = {
 	GATE(CLK_ACLK550_CAM, "aclk550_cam", "mout_user_aclk550_cam",
-				GATE_BUS_TOP, 24, 0, 0),
+				GATE_BUS_TOP, 24, CLK_IS_CRITICAL, 0),
 	GATE(CLK_ACLK432_SCALER, "aclk432_scaler", "mout_user_aclk432_scaler",
 				GATE_BUS_TOP, 27, CLK_IS_CRITICAL, 0),
 };
@@ -937,25 +940,25 @@
 	GATE(0, "aclk300_jpeg", "mout_user_aclk300_jpeg",
 			GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk333_432_isp0", "mout_user_aclk333_432_isp0",
-			GATE_BUS_TOP, 5, 0, 0),
+			GATE_BUS_TOP, 5, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk300_gscl", "mout_user_aclk300_gscl",
 			GATE_BUS_TOP, 6, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk333_432_gscl", "mout_user_aclk333_432_gscl",
 			GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk333_432_isp", "mout_user_aclk333_432_isp",
-			GATE_BUS_TOP, 8, 0, 0),
+			GATE_BUS_TOP, 8, CLK_IS_CRITICAL, 0),
 	GATE(CLK_PCLK66_GPIO, "pclk66_gpio", "mout_user_pclk66_gpio",
 			GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk66_psgen", "mout_user_aclk66_psgen",
 			GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0),
 	GATE(0, "aclk266_isp", "mout_user_aclk266_isp",
-			GATE_BUS_TOP, 13, 0, 0),
+			GATE_BUS_TOP, 13, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk166", "mout_user_aclk166",
 			GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_ACLK333, "aclk333", "mout_user_aclk333",
 			GATE_BUS_TOP, 15, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk400_isp", "mout_user_aclk400_isp",
-			GATE_BUS_TOP, 16, 0, 0),
+			GATE_BUS_TOP, 16, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk400_mscl", "mout_user_aclk400_mscl",
 			GATE_BUS_TOP, 17, CLK_IS_CRITICAL, 0),
 	GATE(0, "aclk200_disp1", "mout_user_aclk200_disp1",
@@ -1155,8 +1158,10 @@
 			GATE_IP_GSCL1, 3, 0, 0),
 	GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "dout_gscl_blk_333",
 			GATE_IP_GSCL1, 4, 0, 0),
-	GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12, 0, 0),
-	GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13, 0, 0),
+	GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12,
+			CLK_IS_CRITICAL, 0),
+	GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13,
+			CLK_IS_CRITICAL, 0),
 	GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "dout_gscl_blk_333",
 			GATE_IP_GSCL1, 16, 0, 0),
 	GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
@@ -1628,6 +1633,13 @@
 				     exynos5x_subcmus);
 	}
 
+	/*
+	 * Keep top part of G3D clock path enabled permanently to ensure
+	 * that the internal busses get their clock regardless of the
+	 * main G3D clock enablement status.
+	 */
+	clk_prepare_enable(__clk_lookup("mout_sw_aclk_g3d"));
+
 	samsung_clk_of_add_provider(np, ctx);
 }
 
--- linux-ein-5.4.0.orig/drivers/clk/samsung/clk-exynos5433.c
+++ linux-ein-5.4.0/drivers/clk/samsung/clk-exynos5433.c
@@ -1706,7 +1706,8 @@
 	GATE(CLK_SCLK_PCM1, "sclk_pcm1", "sclk_pcm1_peric",
 			ENABLE_SCLK_PERIC, 7, CLK_SET_RATE_PARENT, 0),
 	GATE(CLK_SCLK_I2S1, "sclk_i2s1", "sclk_i2s1_peric",
-			ENABLE_SCLK_PERIC, 6, CLK_SET_RATE_PARENT, 0),
+			ENABLE_SCLK_PERIC, 6,
+			CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0),
 	GATE(CLK_SCLK_SPI2, "sclk_spi2", "sclk_spi2_peric", ENABLE_SCLK_PERIC,
 			5, CLK_SET_RATE_PARENT, 0),
 	GATE(CLK_SCLK_SPI1, "sclk_spi1", "sclk_spi1_peric", ENABLE_SCLK_PERIC,
--- linux-ein-5.4.0.orig/drivers/clk/samsung/clk-exynos7.c
+++ linux-ein-5.4.0/drivers/clk/samsung/clk-exynos7.c
@@ -537,8 +537,13 @@
 	GATE(CLK_ACLK_FSYS0_200, "aclk_fsys0_200", "dout_aclk_fsys0_200",
 		ENABLE_ACLK_TOP13, 28, CLK_SET_RATE_PARENT |
 		CLK_IS_CRITICAL, 0),
+	/*
+	 * This clock is required for the CMU_FSYS1 registers access, keep it
+	 * enabled permanently until proper runtime PM support is added.
+	 */
 	GATE(CLK_ACLK_FSYS1_200, "aclk_fsys1_200", "dout_aclk_fsys1_200",
-		ENABLE_ACLK_TOP13, 24, CLK_SET_RATE_PARENT, 0),
+		ENABLE_ACLK_TOP13, 24, CLK_SET_RATE_PARENT |
+		CLK_IS_CRITICAL, 0),
 
 	GATE(CLK_SCLK_PHY_FSYS1_26M, "sclk_phy_fsys1_26m",
 		"dout_sclk_phy_fsys1_26m", ENABLE_SCLK_TOP1_FSYS11,
--- linux-ein-5.4.0.orig/drivers/clk/samsung/clk-pll.c
+++ linux-ein-5.4.0/drivers/clk/samsung/clk-pll.c
@@ -1390,6 +1390,7 @@
 	if (ret) {
 		pr_err("%s: failed to register pll clock %s : %d\n",
 			__func__, pll_clk->name, ret);
+		kfree(pll->rate_table);
 		kfree(pll);
 		return;
 	}
--- linux-ein-5.4.0.orig/drivers/clk/sifive/fu540-prci.c
+++ linux-ein-5.4.0/drivers/clk/sifive/fu540-prci.c
@@ -586,7 +586,10 @@
 	struct __prci_data *pd;
 	int r;
 
-	pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
+	pd = devm_kzalloc(dev,
+			  struct_size(pd, hw_clks.hws,
+				      ARRAY_SIZE(__prci_init_clocks)),
+			  GFP_KERNEL);
 	if (!pd)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/drivers/clk/sirf/clk-atlas6.c
+++ linux-ein-5.4.0/drivers/clk/sirf/clk-atlas6.c
@@ -135,7 +135,7 @@
 
 	for (i = pll1; i < maxclk; i++) {
 		atlas6_clks[i] = clk_register(NULL, atlas6_clk_hw_array[i]);
-		BUG_ON(!atlas6_clks[i]);
+		BUG_ON(IS_ERR(atlas6_clks[i]));
 	}
 	clk_register_clkdev(atlas6_clks[cpu], NULL, "cpu");
 	clk_register_clkdev(atlas6_clks[io],  NULL, "io");
--- linux-ein-5.4.0.orig/drivers/clk/socfpga/clk-gate-a10.c
+++ linux-ein-5.4.0/drivers/clk/socfpga/clk-gate-a10.c
@@ -146,6 +146,7 @@
 		if (IS_ERR(socfpga_clk->sys_mgr_base_addr)) {
 			pr_err("%s: failed to find altr,sys-mgr regmap!\n",
 					__func__);
+			kfree(socfpga_clk);
 			return;
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/clk/socfpga/clk-gate.c
+++ linux-ein-5.4.0/drivers/clk/socfpga/clk-gate.c
@@ -99,7 +99,7 @@
 		val = readl(socfpgaclk->div_reg) >> socfpgaclk->shift;
 		val &= GENMASK(socfpgaclk->width - 1, 0);
 		/* Check for GPIO_DB_CLK by its offset */
-		if ((int) socfpgaclk->div_reg & SOCFPGA_GPIO_DB_CLK_OFFSET)
+		if ((uintptr_t) socfpgaclk->div_reg & SOCFPGA_GPIO_DB_CLK_OFFSET)
 			div = val + 1;
 		else
 			div = (1 << val);
@@ -174,21 +174,24 @@
 	u32 div_reg[3];
 	u32 clk_phase[2];
 	u32 fixed_div;
-	struct clk *clk;
+	struct clk_hw *hw_clk;
 	struct socfpga_gate_clk *socfpga_clk;
 	const char *clk_name = node->name;
 	const char *parent_name[SOCFPGA_MAX_PARENTS];
 	struct clk_init_data init;
 	struct clk_ops *ops;
 	int rc;
+	int err;
 
 	socfpga_clk = kzalloc(sizeof(*socfpga_clk), GFP_KERNEL);
 	if (WARN_ON(!socfpga_clk))
 		return;
 
 	ops = kmemdup(&gateclk_ops, sizeof(gateclk_ops), GFP_KERNEL);
-	if (WARN_ON(!ops))
+	if (WARN_ON(!ops)) {
+		kfree(socfpga_clk);
 		return;
+	}
 
 	rc = of_property_read_u32_array(node, "clk-gate", clk_gate, 2);
 	if (rc)
@@ -238,12 +241,15 @@
 	init.parent_names = parent_name;
 	socfpga_clk->hw.hw.init = &init;
 
-	clk = clk_register(NULL, &socfpga_clk->hw.hw);
-	if (WARN_ON(IS_ERR(clk))) {
+	hw_clk = &socfpga_clk->hw.hw;
+
+	err = clk_hw_register(NULL, hw_clk);
+	if (err) {
+		kfree(ops);
 		kfree(socfpga_clk);
 		return;
 	}
-	rc = of_clk_add_provider(node, of_clk_src_simple_get, clk);
+	rc = of_clk_add_provider(node, of_clk_src_simple_get, hw_clk);
 	if (WARN_ON(rc))
 		return;
 }
--- linux-ein-5.4.0.orig/drivers/clk/socfpga/clk-periph.c
+++ linux-ein-5.4.0/drivers/clk/socfpga/clk-periph.c
@@ -51,7 +51,7 @@
 	const struct clk_ops *ops)
 {
 	u32 reg;
-	struct clk *clk;
+	struct clk_hw *hw_clk;
 	struct socfpga_periph_clk *periph_clk;
 	const char *clk_name = node->name;
 	const char *parent_name[SOCFPGA_MAX_PARENTS];
@@ -94,13 +94,13 @@
 	init.parent_names = parent_name;
 
 	periph_clk->hw.hw.init = &init;
+	hw_clk = &periph_clk->hw.hw;
 
-	clk = clk_register(NULL, &periph_clk->hw.hw);
-	if (WARN_ON(IS_ERR(clk))) {
+	if (clk_hw_register(NULL, hw_clk)) {
 		kfree(periph_clk);
 		return;
 	}
-	rc = of_clk_add_provider(node, of_clk_src_simple_get, clk);
+	rc = of_clk_add_provider(node, of_clk_src_simple_get, hw_clk);
 }
 
 void __init socfpga_periph_init(struct device_node *node)
--- linux-ein-5.4.0.orig/drivers/clk/socfpga/clk-pll-s10.c
+++ linux-ein-5.4.0/drivers/clk/socfpga/clk-pll-s10.c
@@ -39,7 +39,9 @@
 	/* read VCO1 reg for numerator and denominator */
 	reg = readl(socfpgaclk->hw.reg);
 	refdiv = (reg & SOCFPGA_PLL_REFDIV_MASK) >> SOCFPGA_PLL_REFDIV_SHIFT;
-	vco_freq = (unsigned long long)parent_rate / refdiv;
+
+	vco_freq = parent_rate;
+	do_div(vco_freq, refdiv);
 
 	/* Read mdiv and fdiv from the fdbck register */
 	reg = readl(socfpgaclk->hw.reg + 0x4);
--- linux-ein-5.4.0.orig/drivers/clk/socfpga/clk-pll.c
+++ linux-ein-5.4.0/drivers/clk/socfpga/clk-pll.c
@@ -70,17 +70,18 @@
 	.get_parent = clk_pll_get_parent,
 };
 
-static __init struct clk *__socfpga_pll_init(struct device_node *node,
+static __init struct clk_hw *__socfpga_pll_init(struct device_node *node,
 	const struct clk_ops *ops)
 {
 	u32 reg;
-	struct clk *clk;
+	struct clk_hw *hw_clk;
 	struct socfpga_pll *pll_clk;
 	const char *clk_name = node->name;
 	const char *parent_name[SOCFPGA_MAX_PARENTS];
 	struct clk_init_data init;
 	struct device_node *clkmgr_np;
 	int rc;
+	int err;
 
 	of_property_read_u32(node, "reg", &reg);
 
@@ -108,13 +109,15 @@
 	clk_pll_ops.enable = clk_gate_ops.enable;
 	clk_pll_ops.disable = clk_gate_ops.disable;
 
-	clk = clk_register(NULL, &pll_clk->hw.hw);
-	if (WARN_ON(IS_ERR(clk))) {
+	hw_clk = &pll_clk->hw.hw;
+
+	err = clk_hw_register(NULL, hw_clk);
+	if (err) {
 		kfree(pll_clk);
-		return NULL;
+		return ERR_PTR(err);
 	}
-	rc = of_clk_add_provider(node, of_clk_src_simple_get, clk);
-	return clk;
+	rc = of_clk_add_provider(node, of_clk_src_simple_get, hw_clk);
+	return hw_clk;
 }
 
 void __init socfpga_pll_init(struct device_node *node)
--- linux-ein-5.4.0.orig/drivers/clk/socfpga/clk-s10.c
+++ linux-ein-5.4.0/drivers/clk/socfpga/clk-s10.c
@@ -107,7 +107,7 @@
 	{ STRATIX10_EMAC_B_FREE_CLK, "emacb_free_clk", NULL, emacb_free_mux, ARRAY_SIZE(emacb_free_mux),
 	  0, 0, 2, 0xB0, 1},
 	{ STRATIX10_EMAC_PTP_FREE_CLK, "emac_ptp_free_clk", NULL, emac_ptp_free_mux,
-	  ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 4, 0xB0, 2},
+	  ARRAY_SIZE(emac_ptp_free_mux), 0, 0, 2, 0xB0, 2},
 	{ STRATIX10_GPIO_DB_FREE_CLK, "gpio_db_free_clk", NULL, gpio_db_free_mux,
 	  ARRAY_SIZE(gpio_db_free_mux), 0, 0, 0, 0xB0, 3},
 	{ STRATIX10_SDMMC_FREE_CLK, "sdmmc_free_clk", NULL, sdmmc_free_mux,
--- linux-ein-5.4.0.orig/drivers/clk/sprd/common.c
+++ linux-ein-5.4.0/drivers/clk/sprd/common.c
@@ -46,7 +46,7 @@
 
 	if (of_find_property(node, "sprd,syscon", NULL)) {
 		regmap = syscon_regmap_lookup_by_phandle(node, "sprd,syscon");
-		if (IS_ERR_OR_NULL(regmap)) {
+		if (IS_ERR(regmap)) {
 			pr_err("%s: failed to get syscon regmap\n", __func__);
 			return PTR_ERR(regmap);
 		}
--- linux-ein-5.4.0.orig/drivers/clk/sprd/pll.c
+++ linux-ein-5.4.0/drivers/clk/sprd/pll.c
@@ -105,7 +105,7 @@
 
 	cfg = kcalloc(regs_num, sizeof(*cfg), GFP_KERNEL);
 	if (!cfg)
-		return -ENOMEM;
+		return parent_rate;
 
 	for (i = 0; i < regs_num; i++)
 		cfg[i] = sprd_pll_read(pll, i);
--- linux-ein-5.4.0.orig/drivers/clk/st/clk-flexgen.c
+++ linux-ein-5.4.0/drivers/clk/st/clk-flexgen.c
@@ -375,6 +375,7 @@
 			break;
 		}
 
+		flex_flags &= ~CLK_IS_CRITICAL;
 		of_clk_detect_critical(np, i, &flex_flags);
 
 		/*
--- linux-ein-5.4.0.orig/drivers/clk/st/clkgen-fsyn.c
+++ linux-ein-5.4.0/drivers/clk/st/clkgen-fsyn.c
@@ -943,9 +943,10 @@
 
 	clk = st_clk_register_quadfs_pll(pll_name, clk_parent_name, data,
 			reg, lock);
-	if (IS_ERR(clk))
+	if (IS_ERR(clk)) {
+		kfree(lock);
 		goto err_exit;
-	else
+	} else
 		pr_debug("%s: parent %s rate %u\n",
 			__clk_get_name(clk),
 			__clk_get_name(clk_get_parent(clk)),
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun50i-a64.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun50i-a64.c
@@ -389,6 +389,7 @@
 	{ .val = 1, .div = 2 },
 	{ .val = 2, .div = 4 },
 	{ .val = 3, .div = 6 },
+	{ /* Sentinel */ },
 };
 static const char * const ths_parents[] = { "osc24M" };
 static struct ccu_div ths_clk = {
@@ -921,11 +922,26 @@
 	.num_resets	= ARRAY_SIZE(sun50i_a64_ccu_resets),
 };
 
+static struct ccu_pll_nb sun50i_a64_pll_cpu_nb = {
+	.common	= &pll_cpux_clk.common,
+	/* copy from pll_cpux_clk */
+	.enable	= BIT(31),
+	.lock	= BIT(28),
+};
+
+static struct ccu_mux_nb sun50i_a64_cpu_nb = {
+	.common		= &cpux_clk.common,
+	.cm		= &cpux_clk.mux,
+	.delay_us	= 1, /* > 8 clock cycles at 24 MHz */
+	.bypass_index	= 1, /* index of 24 MHz oscillator */
+};
+
 static int sun50i_a64_ccu_probe(struct platform_device *pdev)
 {
 	struct resource *res;
 	void __iomem *reg;
 	u32 val;
+	int ret;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	reg = devm_ioremap_resource(&pdev->dev, res);
@@ -939,7 +955,18 @@
 
 	writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG);
 
-	return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
+	ret = sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
+	if (ret)
+		return ret;
+
+	/* Gate then ungate PLL CPU after any rate changes */
+	ccu_pll_notifier_register(&sun50i_a64_pll_cpu_nb);
+
+	/* Reparent CPU during PLL CPU rate changes */
+	ccu_mux_notifier_register(pll_cpux_clk.common.hw.clk,
+				  &sun50i_a64_cpu_nb);
+
+	return 0;
 }
 
 static const struct of_device_id sun50i_a64_ccu_ids[] = {
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c
@@ -23,9 +23,9 @@
  */
 
 static const char * const ar100_r_apb2_parents[] = { "osc24M", "osc32k",
-					     "pll-periph0", "iosc" };
+						     "iosc", "pll-periph0" };
 static const struct ccu_mux_var_prediv ar100_r_apb2_predivs[] = {
-	{ .index = 2, .shift = 0, .width = 5 },
+	{ .index = 3, .shift = 0, .width = 5 },
 };
 
 static struct ccu_div ar100_clk = {
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
@@ -228,7 +228,7 @@
 static SUNXI_CCU_MP_WITH_MUX(psi_ahb1_ahb2_clk, "psi-ahb1-ahb2",
 			     psi_ahb1_ahb2_parents,
 			     0x510,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
@@ -237,19 +237,19 @@
 						       "psi-ahb1-ahb2",
 						       "pll-periph0" };
 static SUNXI_CCU_MP_WITH_MUX(ahb3_clk, "ahb3", ahb3_apb1_apb2_parents, 0x51c,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
 
 static SUNXI_CCU_MP_WITH_MUX(apb1_clk, "apb1", ahb3_apb1_apb2_parents, 0x520,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
 
 static SUNXI_CCU_MP_WITH_MUX(apb2_clk, "apb2", ahb3_apb1_apb2_parents, 0x524,
-			     0, 5,	/* M */
+			     0, 2,	/* M */
 			     8, 2,	/* P */
 			     24, 2,	/* mux */
 			     0);
@@ -673,7 +673,7 @@
 
 	.common		= {
 		.reg		= 0xb10,
-		.features	= CCU_FEATURE_VARIABLE_PREDIV,
+		.features	= CCU_FEATURE_FIXED_PREDIV,
 		.hw.init	= CLK_HW_INIT_PARENTS("hdmi-cec",
 						      hdmi_cec_parents,
 						      &ccu_mux_ops,
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-h3.c
@@ -322,6 +322,7 @@
 	{ .val = 1, .div = 2 },
 	{ .val = 2, .div = 4 },
 	{ .val = 3, .div = 6 },
+	{ /* Sentinel */ },
 };
 static SUNXI_CCU_DIV_TABLE_WITH_GATE(ths_clk, "ths", "osc24M",
 				     0x074, 0, 2, ths_div_table, BIT(31), 0);
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-r.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-r.c
@@ -51,19 +51,7 @@
 
 static CLK_FIXED_FACTOR_HW(ahb0_clk, "ahb0", &ar100_clk.common.hw, 1, 1, 0);
 
-static struct ccu_div apb0_clk = {
-	.div		= _SUNXI_CCU_DIV_FLAGS(0, 2, CLK_DIVIDER_POWER_OF_TWO),
-
-	.common		= {
-		.reg		= 0x0c,
-		.hw.init	= CLK_HW_INIT_HW("apb0",
-						 &ahb0_clk.hw,
-						 &ccu_div_ops,
-						 0),
-	},
-};
-
-static SUNXI_CCU_M(a83t_apb0_clk, "apb0", "ahb0", 0x0c, 0, 2, 0);
+static SUNXI_CCU_M(apb0_clk, "apb0", "ahb0", 0x0c, 0, 2, 0);
 
 /*
  * Define the parent as an array that can be reused to save space
@@ -127,7 +115,7 @@
 
 static struct ccu_common *sun8i_a83t_r_ccu_clks[] = {
 	&ar100_clk.common,
-	&a83t_apb0_clk.common,
+	&apb0_clk.common,
 	&apb0_pio_clk.common,
 	&apb0_ir_clk.common,
 	&apb0_timer_clk.common,
@@ -167,7 +155,7 @@
 	.hws	= {
 		[CLK_AR100]		= &ar100_clk.common.hw,
 		[CLK_AHB0]		= &ahb0_clk.hw,
-		[CLK_APB0]		= &a83t_apb0_clk.common.hw,
+		[CLK_APB0]		= &apb0_clk.common.hw,
 		[CLK_APB0_PIO]		= &apb0_pio_clk.common.hw,
 		[CLK_APB0_IR]		= &apb0_ir_clk.common.hw,
 		[CLK_APB0_TIMER]	= &apb0_timer_clk.common.hw,
@@ -282,9 +270,6 @@
 
 static void __init sun8i_a83t_r_ccu_setup(struct device_node *node)
 {
-	/* Fix apb0 bus gate parents here */
-	apb0_gate_parent[0] = &a83t_apb0_clk.common.hw;
-
 	sunxi_r_ccu_init(node, &sun8i_a83t_r_ccu_desc);
 }
 CLK_OF_DECLARE(sun8i_a83t_r_ccu, "allwinner,sun8i-a83t-r-ccu",
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
@@ -761,7 +761,8 @@
 		.reg		= 0x1f0,
 		.features	= CCU_FEATURE_FIXED_PREDIV,
 		.hw.init	= CLK_HW_INIT_PARENTS("outa", out_parents,
-						      &ccu_mp_ops, 0),
+						      &ccu_mp_ops,
+						      CLK_SET_RATE_PARENT),
 	}
 };
 
@@ -779,7 +780,8 @@
 		.reg		= 0x1f4,
 		.features	= CCU_FEATURE_FIXED_PREDIV,
 		.hw.init	= CLK_HW_INIT_PARENTS("outb", out_parents,
-						      &ccu_mp_ops, 0),
+						      &ccu_mp_ops,
+						      CLK_SET_RATE_PARENT),
 	}
 };
 
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-v3s.c
@@ -618,7 +618,7 @@
 		[CLK_MBUS]		= &mbus_clk.common.hw,
 		[CLK_MIPI_CSI]		= &mipi_csi_clk.common.hw,
 	},
-	.num	= CLK_NUMBER,
+	.num	= CLK_PLL_DDR1 + 1,
 };
 
 static struct clk_hw_onecell_data sun8i_v3_hw_clks = {
@@ -700,7 +700,7 @@
 		[CLK_MBUS]		= &mbus_clk.common.hw,
 		[CLK_MIPI_CSI]		= &mipi_csi_clk.common.hw,
 	},
-	.num	= CLK_NUMBER,
+	.num	= CLK_I2S0 + 1,
 };
 
 static struct ccu_reset_map sun8i_v3s_ccu_resets[] = {
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu-sun8i-v3s.h
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu-sun8i-v3s.h
@@ -51,6 +51,4 @@
 
 #define CLK_PLL_DDR1		74
 
-#define CLK_NUMBER		(CLK_I2S0 + 1)
-
 #endif /* _CCU_SUN8I_H3_H_ */
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu_mmc_timing.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu_mmc_timing.c
@@ -43,7 +43,7 @@
 EXPORT_SYMBOL_GPL(sunxi_ccu_set_mmc_timing_mode);
 
 /**
- * sunxi_ccu_set_mmc_timing_mode: Get the current MMC clock timing mode
+ * sunxi_ccu_get_mmc_timing_mode: Get the current MMC clock timing mode
  * @clk: clock to query
  *
  * Returns 0 if the clock is in old timing mode, > 0 if it is in
--- linux-ein-5.4.0.orig/drivers/clk/sunxi-ng/ccu_mp.c
+++ linux-ein-5.4.0/drivers/clk/sunxi-ng/ccu_mp.c
@@ -108,7 +108,7 @@
 	max_m = cmp->m.max ?: 1 << cmp->m.width;
 	max_p = cmp->p.max ?: 1 << ((1 << cmp->p.width) - 1);
 
-	if (!(clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)) {
+	if (!clk_hw_can_set_rate_parent(&cmp->common.hw)) {
 		ccu_mp_find_best(*parent_rate, rate, max_m, max_p, &m, &p);
 		rate = *parent_rate / p / m;
 	} else {
--- linux-ein-5.4.0.orig/drivers/clk/sunxi/clk-sun9i-mmc.c
+++ linux-ein-5.4.0/drivers/clk/sunxi/clk-sun9i-mmc.c
@@ -109,6 +109,8 @@
 	spin_lock_init(&data->lock);
 
 	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!r)
+		return -EINVAL;
 	/* one clock/reset pair per word */
 	count = DIV_ROUND_UP((resource_size(r)), SUN9I_MMC_WIDTH);
 	data->membase = devm_ioremap_resource(&pdev->dev, r);
--- linux-ein-5.4.0.orig/drivers/clk/sunxi/clk-sunxi.c
+++ linux-ein-5.4.0/drivers/clk/sunxi/clk-sunxi.c
@@ -90,7 +90,7 @@
 	 * Round down the frequency to the closest multiple of either
 	 * 6 or 16
 	 */
-	u32 round_freq_6 = round_down(freq_mhz, 6);
+	u32 round_freq_6 = rounddown(freq_mhz, 6);
 	u32 round_freq_16 = round_down(freq_mhz, 16);
 
 	if (round_freq_6 > round_freq_16)
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-bpmp.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-bpmp.c
@@ -159,7 +159,7 @@
 
 	err = tegra_bpmp_clk_transfer(clk->bpmp, &msg);
 	if (err < 0)
-		return err;
+		return 0;
 
 	return response.rate;
 }
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-dfll.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-dfll.c
@@ -1801,13 +1801,13 @@
 			    &td->reg_init_uV);
 	if (!ret) {
 		dev_err(td->dev, "couldn't get initialized voltage\n");
-		return ret;
+		return -EINVAL;
 	}
 
 	ret = read_dt_param(td, "nvidia,pwm-period-nanoseconds", &pwm_period);
 	if (!ret) {
 		dev_err(td->dev, "couldn't get PWM period\n");
-		return ret;
+		return -EINVAL;
 	}
 	td->pwm_rate = (NSEC_PER_SEC / pwm_period) * (MAX_DFLL_VOLTAGES - 1);
 
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-emc.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-emc.c
@@ -191,6 +191,7 @@
 
 	tegra->emc = platform_get_drvdata(pdev);
 	if (!tegra->emc) {
+		put_device(&pdev->dev);
 		pr_err("%s: cannot find EMC driver\n", __func__);
 		return NULL;
 	}
@@ -458,6 +459,7 @@
 		err = load_one_timing_from_dt(tegra, timing, child);
 		if (err) {
 			of_node_put(child);
+			kfree(tegra->timings);
 			return err;
 		}
 
@@ -509,6 +511,7 @@
 		err = load_timings_from_dt(tegra, node, node_ram_code);
 		if (err) {
 			of_node_put(node);
+			kfree(tegra);
 			return ERR_PTR(err);
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-id.h
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-id.h
@@ -233,6 +233,7 @@
 	tegra_clk_sdmmc4,
 	tegra_clk_sdmmc4_8,
 	tegra_clk_se,
+	tegra_clk_se_10,
 	tegra_clk_soc_therm,
 	tegra_clk_soc_therm_8,
 	tegra_clk_sor0,
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-pll.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-pll.c
@@ -1089,7 +1089,8 @@
 	if (pll->lock)
 		spin_lock_irqsave(pll->lock, flags);
 
-	_clk_pll_enable(hw);
+	if (!clk_pll_is_enabled(hw))
+		_clk_pll_enable(hw);
 
 	ret = clk_pll_wait_for_lock(pll);
 	if (ret < 0)
@@ -1569,9 +1570,6 @@
 	unsigned long flags = 0;
 	unsigned long input_rate;
 
-	if (clk_pll_is_enabled(hw))
-		return 0;
-
 	input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));
 
 	if (_get_table_rate(hw, &sel, pll->params->fixed_rate, input_rate))
@@ -1709,15 +1707,13 @@
 		return -EINVAL;
 	}
 
-	if (clk_pll_is_enabled(hw))
-		return 0;
-
 	input_rate = clk_hw_get_rate(__clk_get_hw(osc));
 
 	if (pll->lock)
 		spin_lock_irqsave(pll->lock, flags);
 
-	_clk_pll_enable(hw);
+	if (!clk_pll_is_enabled(hw))
+		_clk_pll_enable(hw);
 
 	ret = clk_pll_wait_for_lock(pll);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-tegra-periph.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-tegra-periph.c
@@ -636,7 +636,7 @@
 	INT8("host1x", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_HOST1X, 28, 0, tegra_clk_host1x_8),
 	INT8("host1x", mux_pllc4_out1_pllc_pllc4_out2_pllp_clkm_plla_pllc4_out0, CLK_SOURCE_HOST1X, 28, 0, tegra_clk_host1x_9),
 	INT8("se", mux_pllp_pllc2_c_c3_pllm_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se),
-	INT8("se", mux_pllp_pllc2_c_c3_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se),
+	INT8("se", mux_pllp_pllc2_c_c3_clkm, CLK_SOURCE_SE, 127, TEGRA_PERIPH_ON_APB, tegra_clk_se_10),
 	INT8("2d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_2D, 21, 0, tegra_clk_gr2d_8),
 	INT8("3d", mux_pllm_pllc2_c_c3_pllp_plla, CLK_SOURCE_3D, 24, 0, tegra_clk_gr3d_8),
 	INT8("vic03", mux_pllm_pllc_pllp_plla_pllc2_c3_clkm, CLK_SOURCE_VIC03, 178, 0, tegra_clk_vic03),
@@ -785,7 +785,11 @@
 	GATE("ahbdma", "hclk", 33, 0, tegra_clk_ahbdma, 0),
 	GATE("apbdma", "pclk", 34, 0, tegra_clk_apbdma, 0),
 	GATE("kbc", "clk_32k", 36, TEGRA_PERIPH_ON_APB | TEGRA_PERIPH_NO_RESET, tegra_clk_kbc, 0),
-	GATE("fuse", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse, 0),
+	/*
+	 * Critical for RAM re-repair operation, which must occur on resume
+	 * from LP1 system suspend and as part of CCPLEX cluster switching.
+	 */
+	GATE("fuse", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse, CLK_IS_CRITICAL),
 	GATE("fuse_burn", "clk_m", 39, TEGRA_PERIPH_ON_APB, tegra_clk_fuse_burn, 0),
 	GATE("kfuse", "clk_m", 40, TEGRA_PERIPH_ON_APB, tegra_clk_kfuse, 0),
 	GATE("apbif", "clk_m", 107, TEGRA_PERIPH_ON_APB, tegra_clk_apbif, 0),
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-tegra-pmc.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-tegra-pmc.c
@@ -49,16 +49,16 @@
 
 static DEFINE_SPINLOCK(clk_out_lock);
 
-static const char *clk_out1_parents[] = { "clk_m", "clk_m_div2",
-	"clk_m_div4", "extern1",
+static const char *clk_out1_parents[] = { "osc", "osc_div2",
+	"osc_div4", "extern1",
 };
 
-static const char *clk_out2_parents[] = { "clk_m", "clk_m_div2",
-	"clk_m_div4", "extern2",
+static const char *clk_out2_parents[] = { "osc", "osc_div2",
+	"osc_div4", "extern2",
 };
 
-static const char *clk_out3_parents[] = { "clk_m", "clk_m_div2",
-	"clk_m_div4", "extern3",
+static const char *clk_out3_parents[] = { "osc", "osc_div2",
+	"osc_div4", "extern3",
 };
 
 static struct pmc_clk_init_data pmc_clks[] = {
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-tegra114.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-tegra114.c
@@ -1337,6 +1337,7 @@
 	}
 
 	pmc_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!pmc_base) {
 		pr_err("Can't map pmc registers\n");
 		WARN_ON(1);
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-tegra20.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-tegra20.c
@@ -18,24 +18,24 @@
 #define MISC_CLK_ENB 0x48
 
 #define OSC_CTRL 0x50
-#define OSC_CTRL_OSC_FREQ_MASK (3<<30)
-#define OSC_CTRL_OSC_FREQ_13MHZ (0<<30)
-#define OSC_CTRL_OSC_FREQ_19_2MHZ (1<<30)
-#define OSC_CTRL_OSC_FREQ_12MHZ (2<<30)
-#define OSC_CTRL_OSC_FREQ_26MHZ (3<<30)
-#define OSC_CTRL_MASK (0x3f2 | OSC_CTRL_OSC_FREQ_MASK)
-
-#define OSC_CTRL_PLL_REF_DIV_MASK (3<<28)
-#define OSC_CTRL_PLL_REF_DIV_1		(0<<28)
-#define OSC_CTRL_PLL_REF_DIV_2		(1<<28)
-#define OSC_CTRL_PLL_REF_DIV_4		(2<<28)
+#define OSC_CTRL_OSC_FREQ_MASK (3u<<30)
+#define OSC_CTRL_OSC_FREQ_13MHZ (0u<<30)
+#define OSC_CTRL_OSC_FREQ_19_2MHZ (1u<<30)
+#define OSC_CTRL_OSC_FREQ_12MHZ (2u<<30)
+#define OSC_CTRL_OSC_FREQ_26MHZ (3u<<30)
+#define OSC_CTRL_MASK (0x3f2u | OSC_CTRL_OSC_FREQ_MASK)
+
+#define OSC_CTRL_PLL_REF_DIV_MASK	(3u<<28)
+#define OSC_CTRL_PLL_REF_DIV_1		(0u<<28)
+#define OSC_CTRL_PLL_REF_DIV_2		(1u<<28)
+#define OSC_CTRL_PLL_REF_DIV_4		(2u<<28)
 
 #define OSC_FREQ_DET 0x58
-#define OSC_FREQ_DET_TRIG (1<<31)
+#define OSC_FREQ_DET_TRIG (1u<<31)
 
 #define OSC_FREQ_DET_STATUS 0x5c
-#define OSC_FREQ_DET_BUSY (1<<31)
-#define OSC_FREQ_DET_CNT_MASK 0xFFFF
+#define OSC_FREQ_DET_BUSYu (1<<31)
+#define OSC_FREQ_DET_CNT_MASK 0xFFFFu
 
 #define TEGRA20_CLK_PERIPH_BANKS	3
 
@@ -1151,6 +1151,7 @@
 	}
 
 	pmc_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!pmc_base) {
 		pr_err("Can't map pmc registers\n");
 		BUG();
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-tegra210.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-tegra210.c
@@ -3523,6 +3523,7 @@
 	}
 
 	pmc_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!pmc_base) {
 		pr_err("Can't map pmc registers\n");
 		WARN_ON(1);
--- linux-ein-5.4.0.orig/drivers/clk/tegra/clk-tegra30.c
+++ linux-ein-5.4.0/drivers/clk/tegra/clk-tegra30.c
@@ -1263,6 +1263,8 @@
 	{ TEGRA30_CLK_I2S3_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
 	{ TEGRA30_CLK_I2S4_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
 	{ TEGRA30_CLK_VIMCLK_SYNC, TEGRA30_CLK_CLK_MAX, 24000000, 0 },
+	{ TEGRA30_CLK_HDA, TEGRA30_CLK_PLL_P, 102000000, 0 },
+	{ TEGRA30_CLK_HDA2CODEC_2X, TEGRA30_CLK_PLL_P, 48000000, 0 },
 	/* must be the last entry */
 	{ TEGRA30_CLK_CLK_MAX, TEGRA30_CLK_CLK_MAX, 0, 0 },
 };
--- linux-ein-5.4.0.orig/drivers/clk/ti/adpll.c
+++ linux-ein-5.4.0/drivers/clk/ti/adpll.c
@@ -194,15 +194,8 @@
 		if (err)
 			return NULL;
 	} else {
-		const char *base_name = "adpll";
-		char *buf;
-
-		buf = devm_kzalloc(d->dev, 8 + 1 + strlen(base_name) + 1 +
-				    strlen(postfix), GFP_KERNEL);
-		if (!buf)
-			return NULL;
-		sprintf(buf, "%08lx.%s.%s", d->pa, base_name, postfix);
-		name = buf;
+		name = devm_kasprintf(d->dev, GFP_KERNEL, "%08lx.adpll.%s",
+				      d->pa, postfix);
 	}
 
 	return name;
--- linux-ein-5.4.0.orig/drivers/clk/ti/clk-33xx.c
+++ linux-ein-5.4.0/drivers/clk/ti/clk-33xx.c
@@ -212,7 +212,7 @@
 };
 
 static const struct omap_clkctrl_reg_data am3_l4_rtc_clkctrl_regs[] __initconst = {
-	{ AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" },
+	{ AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk-24mhz-clkctrl:0000:0" },
 	{ 0 },
 };
 
--- linux-ein-5.4.0.orig/drivers/clk/ti/clk-43xx.c
+++ linux-ein-5.4.0/drivers/clk/ti/clk-43xx.c
@@ -78,7 +78,7 @@
 };
 
 static const struct omap_clkctrl_reg_data am4_l4_rtc_clkctrl_regs[] __initconst = {
-	{ AM4_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" },
+	{ AM4_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clkdiv32k_ick" },
 	{ 0 },
 };
 
--- linux-ein-5.4.0.orig/drivers/clk/ti/clk-7xx.c
+++ linux-ein-5.4.0/drivers/clk/ti/clk-7xx.c
@@ -405,7 +405,7 @@
 };
 
 static const struct omap_clkctrl_reg_data dra7_gmac_clkctrl_regs[] __initconst = {
-	{ DRA7_GMAC_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "dpll_gmac_ck" },
+	{ DRA7_GMAC_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "gmac_main_clk" },
 	{ 0 },
 };
 
@@ -793,6 +793,7 @@
 	DT_CLK(NULL, "timer_32k_ck", "sys_32k_ck"),
 	DT_CLK(NULL, "sys_clkin_ck", "timer_sys_clk_div"),
 	DT_CLK(NULL, "sys_clkin", "sys_clkin1"),
+	DT_CLK(NULL, "timer_sys_ck", "timer_sys_clk_div"),
 	DT_CLK(NULL, "atl_dpll_clk_mux", "atl-clkctrl:0000:24"),
 	DT_CLK(NULL, "atl_gfclk_mux", "atl-clkctrl:0000:26"),
 	DT_CLK(NULL, "dcan1_sys_clk_mux", "wkupaon-clkctrl:0068:24"),
--- linux-ein-5.4.0.orig/drivers/clk/ti/clk-dra7-atl.c
+++ linux-ein-5.4.0/drivers/clk/ti/clk-dra7-atl.c
@@ -252,14 +252,16 @@
 		if (rc) {
 			pr_err("%s: failed to lookup atl clock %d\n", __func__,
 			       i);
-			return -EINVAL;
+			ret = -EINVAL;
+			goto pm_put;
 		}
 
 		clk = of_clk_get_from_provider(&clkspec);
 		if (IS_ERR(clk)) {
 			pr_err("%s: failed to get atl clock %d from provider\n",
 			       __func__, i);
-			return PTR_ERR(clk);
+			ret = PTR_ERR(clk);
+			goto pm_put;
 		}
 
 		cdesc = to_atl_desc(__clk_get_hw(clk));
@@ -292,8 +294,9 @@
 		if (cdesc->enabled)
 			atl_clk_enable(__clk_get_hw(clk));
 	}
-	pm_runtime_put_sync(cinfo->dev);
 
+pm_put:
+	pm_runtime_put_sync(cinfo->dev);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/clk/ti/clockdomain.c
+++ linux-ein-5.4.0/drivers/clk/ti/clockdomain.c
@@ -146,10 +146,12 @@
 		if (!omap2_clk_is_hw_omap(clk_hw)) {
 			pr_warn("can't setup clkdm for basic clk %s\n",
 				__clk_get_name(clk));
+			clk_put(clk);
 			continue;
 		}
 		to_clk_hw_omap(clk_hw)->clkdm_name = clkdm_name;
 		omap2_init_clk_clkdm(clk_hw);
+		clk_put(clk);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/clk/ti/composite.c
+++ linux-ein-5.4.0/drivers/clk/ti/composite.c
@@ -196,6 +196,7 @@
 		if (!cclk->comp_clks[i])
 			continue;
 		list_del(&cclk->comp_clks[i]->link);
+		kfree(cclk->comp_clks[i]->parent_names);
 		kfree(cclk->comp_clks[i]);
 	}
 
--- linux-ein-5.4.0.orig/drivers/clk/ti/fapll.c
+++ linux-ein-5.4.0/drivers/clk/ti/fapll.c
@@ -498,6 +498,7 @@
 {
 	struct clk_init_data *init;
 	struct fapll_synth *synth;
+	struct clk *clk = ERR_PTR(-ENOMEM);
 
 	init = kzalloc(sizeof(*init), GFP_KERNEL);
 	if (!init)
@@ -520,13 +521,19 @@
 	synth->hw.init = init;
 	synth->clk_pll = pll_clk;
 
-	return clk_register(NULL, &synth->hw);
+	clk = clk_register(NULL, &synth->hw);
+	if (IS_ERR(clk)) {
+		pr_err("failed to register clock\n");
+		goto free;
+	}
+
+	return clk;
 
 free:
 	kfree(synth);
 	kfree(init);
 
-	return ERR_PTR(-ENOMEM);
+	return clk;
 }
 
 static void __init ti_fapll_setup(struct device_node *node)
--- linux-ein-5.4.0.orig/drivers/clk/uniphier/clk-uniphier-fixed-rate.c
+++ linux-ein-5.4.0/drivers/clk/uniphier/clk-uniphier-fixed-rate.c
@@ -24,6 +24,7 @@
 
 	init.name = name;
 	init.ops = &clk_fixed_rate_ops;
+	init.flags = 0;
 	init.parent_names = NULL;
 	init.num_parents = 0;
 
--- linux-ein-5.4.0.orig/drivers/clk/uniphier/clk-uniphier-mux.c
+++ linux-ein-5.4.0/drivers/clk/uniphier/clk-uniphier-mux.c
@@ -31,10 +31,10 @@
 static u8 uniphier_clk_mux_get_parent(struct clk_hw *hw)
 {
 	struct uniphier_clk_mux *mux = to_uniphier_clk_mux(hw);
-	int num_parents = clk_hw_get_num_parents(hw);
+	unsigned int num_parents = clk_hw_get_num_parents(hw);
 	int ret;
 	unsigned int val;
-	u8 i;
+	unsigned int i;
 
 	ret = regmap_read(mux->regmap, mux->reg, &val);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/clk/uniphier/clk-uniphier-peri.c
+++ linux-ein-5.4.0/drivers/clk/uniphier/clk-uniphier-peri.c
@@ -18,8 +18,8 @@
 #define UNIPHIER_PERI_CLK_FI2C(idx, ch)					\
 	UNIPHIER_CLK_GATE("i2c" #ch, (idx), "i2c", 0x24, 24 + (ch))
 
-#define UNIPHIER_PERI_CLK_SCSSI(idx)					\
-	UNIPHIER_CLK_GATE("scssi", (idx), "spi", 0x20, 17)
+#define UNIPHIER_PERI_CLK_SCSSI(idx, ch)				\
+	UNIPHIER_CLK_GATE("scssi" #ch, (idx), "spi", 0x20, 17 + (ch))
 
 #define UNIPHIER_PERI_CLK_MCSSI(idx)					\
 	UNIPHIER_CLK_GATE("mcssi", (idx), "spi", 0x24, 14)
@@ -35,7 +35,7 @@
 	UNIPHIER_PERI_CLK_I2C(6, 2),
 	UNIPHIER_PERI_CLK_I2C(7, 3),
 	UNIPHIER_PERI_CLK_I2C(8, 4),
-	UNIPHIER_PERI_CLK_SCSSI(11),
+	UNIPHIER_PERI_CLK_SCSSI(11, 0),
 	{ /* sentinel */ }
 };
 
@@ -51,7 +51,10 @@
 	UNIPHIER_PERI_CLK_FI2C(8, 4),
 	UNIPHIER_PERI_CLK_FI2C(9, 5),
 	UNIPHIER_PERI_CLK_FI2C(10, 6),
-	UNIPHIER_PERI_CLK_SCSSI(11),
-	UNIPHIER_PERI_CLK_MCSSI(12),
+	UNIPHIER_PERI_CLK_SCSSI(11, 0),
+	UNIPHIER_PERI_CLK_SCSSI(12, 1),
+	UNIPHIER_PERI_CLK_SCSSI(13, 2),
+	UNIPHIER_PERI_CLK_SCSSI(14, 3),
+	UNIPHIER_PERI_CLK_MCSSI(15),
 	{ /* sentinel */ }
 };
--- linux-ein-5.4.0.orig/drivers/clk/zynqmp/clkc.c
+++ linux-ein-5.4.0/drivers/clk/zynqmp/clkc.c
@@ -558,7 +558,7 @@
 {
 	int j;
 	u32 num_nodes, clk_dev_id;
-	char *clk_out = NULL;
+	char *clk_out[MAX_NODES];
 	struct clock_topology *nodes;
 	struct clk_hw *hw = NULL;
 
@@ -572,16 +572,16 @@
 		 * Intermediate clock names are postfixed with type of clock.
 		 */
 		if (j != (num_nodes - 1)) {
-			clk_out = kasprintf(GFP_KERNEL, "%s%s", clk_name,
+			clk_out[j] = kasprintf(GFP_KERNEL, "%s%s", clk_name,
 					    clk_type_postfix[nodes[j].type]);
 		} else {
-			clk_out = kasprintf(GFP_KERNEL, "%s", clk_name);
+			clk_out[j] = kasprintf(GFP_KERNEL, "%s", clk_name);
 		}
 
 		if (!clk_topology[nodes[j].type])
 			continue;
 
-		hw = (*clk_topology[nodes[j].type])(clk_out, clk_dev_id,
+		hw = (*clk_topology[nodes[j].type])(clk_out[j], clk_dev_id,
 						    parent_names,
 						    num_parents,
 						    &nodes[j]);
@@ -590,9 +590,12 @@
 				     __func__,  clk_dev_id, clk_name,
 				     PTR_ERR(hw));
 
-		parent_names[0] = clk_out;
+		parent_names[0] = clk_out[j];
 	}
-	kfree(clk_out);
+
+	for (j = 0; j < num_nodes; j++)
+		kfree(clk_out[j]);
+
 	return hw;
 }
 
@@ -676,6 +679,13 @@
 				  FIELD_PREP(CLK_ATTR_NODE_INDEX, i);
 
 		zynqmp_pm_clock_get_name(clock[i].clk_id, &name);
+
+		/*
+		 * Terminate with NULL character in case name provided by firmware
+		 * is longer and truncated due to size limit.
+		 */
+		name.name[sizeof(name.name) - 1] = '\0';
+
 		if (!strcmp(name.name, RESERVED_CLK_NAME))
 			continue;
 		strncpy(clock[i].clk_name, name.name, MAX_NAME_LEN);
--- linux-ein-5.4.0.orig/drivers/clk/zynqmp/pll.c
+++ linux-ein-5.4.0/drivers/clk/zynqmp/pll.c
@@ -98,28 +98,25 @@
 				  unsigned long *prate)
 {
 	u32 fbdiv;
-	long rate_div, f;
+	u32 mult, div;
 
-	/* Enable the fractional mode if needed */
-	rate_div = (rate * FRAC_DIV) / *prate;
-	f = rate_div % FRAC_DIV;
-	zynqmp_pll_set_mode(hw, !!f);
-
-	if (zynqmp_pll_get_mode(hw) == PLL_MODE_FRAC) {
-		if (rate > PS_PLL_VCO_MAX) {
-			fbdiv = rate / PS_PLL_VCO_MAX;
-			rate = rate / (fbdiv + 1);
-		}
-		if (rate < PS_PLL_VCO_MIN) {
-			fbdiv = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate);
-			rate = rate * fbdiv;
-		}
-		return rate;
+	/* Let rate fall inside the range PS_PLL_VCO_MIN ~ PS_PLL_VCO_MAX */
+	if (rate > PS_PLL_VCO_MAX) {
+		div = DIV_ROUND_UP(rate, PS_PLL_VCO_MAX);
+		rate = rate / div;
+	}
+	if (rate < PS_PLL_VCO_MIN) {
+		mult = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate);
+		rate = rate * mult;
 	}
 
 	fbdiv = DIV_ROUND_CLOSEST(rate, *prate);
-	fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX);
-	return *prate * fbdiv;
+	if (fbdiv < PLL_FBDIV_MIN || fbdiv > PLL_FBDIV_MAX) {
+		fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX);
+		rate = *prate * fbdiv;
+	}
+
+	return rate;
 }
 
 /**
@@ -179,10 +176,12 @@
 	int ret;
 	const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
 
-	if (zynqmp_pll_get_mode(hw) == PLL_MODE_FRAC) {
-		rate_div = (rate * FRAC_DIV) / parent_rate;
+	rate_div = (rate * FRAC_DIV) / parent_rate;
+	f = rate_div % FRAC_DIV;
+	zynqmp_pll_set_mode(hw, !!f);
+
+	if (f) {
 		m = rate_div / FRAC_DIV;
-		f = rate_div % FRAC_DIV;
 		m = clamp_t(u32, m, (PLL_FBDIV_MIN), (PLL_FBDIV_MAX));
 		rate = parent_rate * m;
 		frac = (parent_rate * f) / FRAC_DIV;
--- linux-ein-5.4.0.orig/drivers/clocksource/Kconfig
+++ linux-ein-5.4.0/drivers/clocksource/Kconfig
@@ -24,6 +24,7 @@
 
 config OMAP_DM_TIMER
 	bool
+	select TIMER_OF
 
 config CLKBLD_I8253
 	def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
@@ -79,6 +80,7 @@
 	bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST
 	depends on HAS_IOMEM
 	select CLKSRC_MMIO
+	select TIMER_OF if OF
 	help
 	  Enables support for the Intel XScale IXP4xx SoC timer.
 
--- linux-ein-5.4.0.orig/drivers/clocksource/acpi_pm.c
+++ linux-ein-5.4.0/drivers/clocksource/acpi_pm.c
@@ -229,8 +229,10 @@
 	int ret;
 
 	ret = kstrtouint(arg, 16, &base);
-	if (ret)
-		return ret;
+	if (ret) {
+		pr_warn("PMTMR: invalid 'pmtmr=' value: '%s'\n", arg);
+		return 1;
+	}
 
 	pr_info("PMTMR IOPort override: 0x%04x -> 0x%04x\n", pmtmr_ioport,
 		base);
--- linux-ein-5.4.0.orig/drivers/clocksource/arm_arch_timer.c
+++ linux-ein-5.4.0/drivers/clocksource/arm_arch_timer.c
@@ -69,7 +69,7 @@
 static bool arch_timer_c3stop;
 static bool arch_timer_mem_use_virtual;
 static bool arch_counter_suspend_stop;
-static bool vdso_default = true;
+static enum vdso_arch_clockmode vdso_default = VDSO_CLOCKMODE_ARCHTIMER;
 
 static cpumask_t evtstrm_available = CPU_MASK_NONE;
 static bool evtstrm_enable = IS_ENABLED(CONFIG_ARM_ARCH_TIMER_EVTSTREAM);
@@ -348,7 +348,7 @@
 	do {								\
 		_val = read_sysreg(reg);				\
 		_retries--;						\
-	} while (((_val + 1) & GENMASK(9, 0)) <= 1 && _retries);	\
+	} while (((_val + 1) & GENMASK(8, 0)) <= 1 && _retries);	\
 									\
 	WARN_ON_ONCE(!_retries);					\
 	_val;								\
@@ -392,10 +392,10 @@
 	ctrl &= ~ARCH_TIMER_CTRL_IT_MASK;
 
 	if (access == ARCH_TIMER_PHYS_ACCESS) {
-		cval = evt + arch_counter_get_cntpct();
+		cval = evt + arch_counter_get_cntpct_stable();
 		write_sysreg(cval, cntp_cval_el0);
 	} else {
-		cval = evt + arch_counter_get_cntvct();
+		cval = evt + arch_counter_get_cntvct_stable();
 		write_sysreg(cval, cntv_cval_el0);
 	}
 
@@ -476,6 +476,14 @@
 		.set_next_event_virt = erratum_set_next_event_tval_virt,
 	},
 #endif
+#ifdef CONFIG_ARM64_ERRATUM_1418040
+	{
+		.match_type = ate_match_local_cap_id,
+		.id = (void *)ARM64_WORKAROUND_1418040,
+		.desc = "ARM erratum 1418040",
+		.disable_compat_vdso = true,
+	},
+#endif
 };
 
 typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *,
@@ -560,8 +568,11 @@
 	 * change both the default value and the vdso itself.
 	 */
 	if (wa->read_cntvct_el0) {
-		clocksource_counter.archdata.vdso_direct = false;
-		vdso_default = false;
+		clocksource_counter.archdata.clock_mode = VDSO_CLOCKMODE_NONE;
+		vdso_default = VDSO_CLOCKMODE_NONE;
+	} else if (wa->disable_compat_vdso && vdso_default != VDSO_CLOCKMODE_NONE) {
+		vdso_default = VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT;
+		clocksource_counter.archdata.clock_mode = vdso_default;
 	}
 }
 
@@ -807,15 +818,24 @@
 
 static void arch_timer_configure_evtstream(void)
 {
-	int evt_stream_div, pos;
+	int evt_stream_div, lsb;
+
+	/*
+	 * As the event stream can at most be generated at half the frequency
+	 * of the counter, use half the frequency when computing the divider.
+	 */
+	evt_stream_div = arch_timer_rate / ARCH_TIMER_EVT_STREAM_FREQ / 2;
+
+	/*
+	 * Find the closest power of two to the divisor. If the adjacent bit
+	 * of lsb (last set bit, starts from 0) is set, then we use (lsb + 1).
+	 */
+	lsb = fls(evt_stream_div) - 1;
+	if (lsb > 0 && (evt_stream_div & BIT(lsb - 1)))
+		lsb++;
 
-	/* Find the closest power of two to the divisor */
-	evt_stream_div = arch_timer_rate / ARCH_TIMER_EVT_STREAM_FREQ;
-	pos = fls(evt_stream_div);
-	if (pos > 1 && !(evt_stream_div & (1 << (pos - 2))))
-		pos--;
 	/* enable event stream */
-	arch_timer_evtstrm_enable(min(pos, 15));
+	arch_timer_evtstrm_enable(max(0, min(lsb, 15)));
 }
 
 static void arch_counter_set_user_access(void)
@@ -979,7 +999,7 @@
 		}
 
 		arch_timer_read_counter = rd;
-		clocksource_counter.archdata.vdso_direct = vdso_default;
+		clocksource_counter.archdata.clock_mode = vdso_default;
 	} else {
 		arch_timer_read_counter = arch_counter_get_cntvct_mem;
 	}
--- linux-ein-5.4.0.orig/drivers/clocksource/asm9260_timer.c
+++ linux-ein-5.4.0/drivers/clocksource/asm9260_timer.c
@@ -194,6 +194,10 @@
 	}
 
 	clk = of_clk_get(np, 0);
+	if (IS_ERR(clk)) {
+		pr_err("Failed to get clk!\n");
+		return PTR_ERR(clk);
+	}
 
 	ret = clk_prepare_enable(clk);
 	if (ret) {
--- linux-ein-5.4.0.orig/drivers/clocksource/bcm2835_timer.c
+++ linux-ein-5.4.0/drivers/clocksource/bcm2835_timer.c
@@ -121,7 +121,7 @@
 	ret = setup_irq(irq, &timer->act);
 	if (ret) {
 		pr_err("Can't set up timer IRQ\n");
-		goto err_iounmap;
+		goto err_timer_free;
 	}
 
 	clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff);
@@ -130,6 +130,9 @@
 
 	return 0;
 
+err_timer_free:
+	kfree(timer);
+
 err_iounmap:
 	iounmap(base);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/clocksource/dw_apb_timer.c
+++ linux-ein-5.4.0/drivers/clocksource/dw_apb_timer.c
@@ -222,7 +222,8 @@
 /**
  * dw_apb_clockevent_init() - use an APB timer as a clock_event_device
  *
- * @cpu:	The CPU the events will be targeted at.
+ * @cpu:	The CPU the events will be targeted at or -1 if CPU affiliation
+ *		isn't required.
  * @name:	The name used for the timer and the IRQ for it.
  * @rating:	The rating to give the timer.
  * @base:	I/O base for the timer registers.
@@ -257,7 +258,7 @@
 	dw_ced->ced.max_delta_ticks = 0x7fffffff;
 	dw_ced->ced.min_delta_ns = clockevent_delta2ns(5000, &dw_ced->ced);
 	dw_ced->ced.min_delta_ticks = 5000;
-	dw_ced->ced.cpumask = cpumask_of(cpu);
+	dw_ced->ced.cpumask = cpu < 0 ? cpu_possible_mask : cpumask_of(cpu);
 	dw_ced->ced.features = CLOCK_EVT_FEAT_PERIODIC |
 				CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_DYNIRQ;
 	dw_ced->ced.set_state_shutdown = apbt_shutdown;
--- linux-ein-5.4.0.orig/drivers/clocksource/dw_apb_timer_of.c
+++ linux-ein-5.4.0/drivers/clocksource/dw_apb_timer_of.c
@@ -147,10 +147,6 @@
 static int __init dw_apb_timer_init(struct device_node *timer)
 {
 	switch (num_called) {
-	case 0:
-		pr_debug("%s: found clockevent timer\n", __func__);
-		add_clockevent(timer);
-		break;
 	case 1:
 		pr_debug("%s: found clocksource timer\n", __func__);
 		add_clocksource(timer);
@@ -161,6 +157,8 @@
 #endif
 		break;
 	default:
+		pr_debug("%s: found clockevent timer\n", __func__);
+		add_clockevent(timer);
 		break;
 	}
 
--- linux-ein-5.4.0.orig/drivers/clocksource/h8300_timer8.c
+++ linux-ein-5.4.0/drivers/clocksource/h8300_timer8.c
@@ -169,7 +169,7 @@
 		return PTR_ERR(clk);
 	}
 
-	ret = ENXIO;
+	ret = -ENXIO;
 	base = of_iomap(node, 0);
 	if (!base) {
 		pr_err("failed to map registers for clockevent\n");
--- linux-ein-5.4.0.orig/drivers/clocksource/hyperv_timer.c
+++ linux-ein-5.4.0/drivers/clocksource/hyperv_timer.c
@@ -233,7 +233,8 @@
 
 static u64 read_hv_sched_clock_tsc(void)
 {
-	return read_hv_clock_tsc(NULL) - hv_sched_clock_offset;
+	return (read_hv_clock_tsc(NULL) - hv_sched_clock_offset) *
+		(NSEC_PER_SEC / HV_CLOCK_HZ);
 }
 
 static struct clocksource hyperv_cs_tsc = {
@@ -258,7 +259,8 @@
 
 static u64 read_hv_sched_clock_msr(void)
 {
-	return read_hv_clock_msr(NULL) - hv_sched_clock_offset;
+	return (read_hv_clock_msr(NULL) - hv_sched_clock_offset) *
+		(NSEC_PER_SEC / HV_CLOCK_HZ);
 }
 
 static struct clocksource hyperv_cs_msr = {
@@ -323,4 +325,3 @@
 	hv_sched_clock_offset = hyperv_cs->read(hyperv_cs);
 	hv_setup_sched_clock(read_hv_sched_clock_msr);
 }
-EXPORT_SYMBOL_GPL(hv_init_clocksource);
--- linux-ein-5.4.0.orig/drivers/clocksource/mxs_timer.c
+++ linux-ein-5.4.0/drivers/clocksource/mxs_timer.c
@@ -138,10 +138,7 @@
 
 	/* Clear pending interrupt */
 	timrot_irq_acknowledge();
-
-#ifdef DEBUG
-	pr_info("%s: changing mode to %s\n", __func__, state)
-#endif /* DEBUG */
+	pr_debug("%s: changing mode to %s\n", __func__, state);
 }
 
 static int mxs_shutdown(struct clock_event_device *evt)
--- linux-ein-5.4.0.orig/drivers/clocksource/sh_cmt.c
+++ linux-ein-5.4.0/drivers/clocksource/sh_cmt.c
@@ -231,6 +231,8 @@
 #define CMCNT 1 /* channel register */
 #define CMCOR 2 /* channel register */
 
+#define CMCLKE	0x1000	/* CLK Enable Register (R-Car Gen2) */
+
 static inline u32 sh_cmt_read_cmstr(struct sh_cmt_channel *ch)
 {
 	if (ch->iostart)
@@ -568,7 +570,8 @@
 	ch->flags |= flag;
 
 	/* setup timeout if no clockevent */
-	if ((flag == FLAG_CLOCKSOURCE) && (!(ch->flags & FLAG_CLOCKEVENT)))
+	if (ch->cmt->num_channels == 1 &&
+	    flag == FLAG_CLOCKSOURCE && (!(ch->flags & FLAG_CLOCKEVENT)))
 		__sh_cmt_set_next(ch, ch->max_match_value);
  out:
 	raw_spin_unlock_irqrestore(&ch->lock, flags);
@@ -604,20 +607,25 @@
 static u64 sh_cmt_clocksource_read(struct clocksource *cs)
 {
 	struct sh_cmt_channel *ch = cs_to_sh_cmt(cs);
-	unsigned long flags;
 	u32 has_wrapped;
-	u64 value;
-	u32 raw;
 
-	raw_spin_lock_irqsave(&ch->lock, flags);
-	value = ch->total_cycles;
-	raw = sh_cmt_get_counter(ch, &has_wrapped);
+	if (ch->cmt->num_channels == 1) {
+		unsigned long flags;
+		u64 value;
+		u32 raw;
 
-	if (unlikely(has_wrapped))
-		raw += ch->match_value + 1;
-	raw_spin_unlock_irqrestore(&ch->lock, flags);
+		raw_spin_lock_irqsave(&ch->lock, flags);
+		value = ch->total_cycles;
+		raw = sh_cmt_get_counter(ch, &has_wrapped);
 
-	return value + raw;
+		if (unlikely(has_wrapped))
+			raw += ch->match_value + 1;
+		raw_spin_unlock_irqrestore(&ch->lock, flags);
+
+		return value + raw;
+	}
+
+	return sh_cmt_get_counter(ch, &has_wrapped);
 }
 
 static int sh_cmt_clocksource_enable(struct clocksource *cs)
@@ -680,7 +688,7 @@
 	cs->disable = sh_cmt_clocksource_disable;
 	cs->suspend = sh_cmt_clocksource_suspend;
 	cs->resume = sh_cmt_clocksource_resume;
-	cs->mask = CLOCKSOURCE_MASK(sizeof(u64) * 8);
+	cs->mask = CLOCKSOURCE_MASK(ch->cmt->info->width);
 	cs->flags = CLOCK_SOURCE_IS_CONTINUOUS;
 
 	dev_info(&ch->cmt->pdev->dev, "ch%u: used as clock source\n",
@@ -839,6 +847,7 @@
 				unsigned int hwidx, bool clockevent,
 				bool clocksource, struct sh_cmt_device *cmt)
 {
+	u32 value;
 	int ret;
 
 	/* Skip unused channels. */
@@ -868,6 +877,11 @@
 		ch->iostart = cmt->mapbase + ch->hwidx * 0x100;
 		ch->ioctrl = ch->iostart + 0x10;
 		ch->timer_bit = 0;
+
+		/* Enable the clock supply to the channel */
+		value = ioread32(cmt->mapbase + CMCLKE);
+		value |= BIT(hwidx);
+		iowrite32(value, cmt->mapbase + CMCLKE);
 		break;
 	}
 
@@ -1000,12 +1014,10 @@
 	else
 		cmt->rate = clk_get_rate(cmt->clk) / 8;
 
-	clk_disable(cmt->clk);
-
 	/* Map the memory resource(s). */
 	ret = sh_cmt_map_memory(cmt);
 	if (ret < 0)
-		goto err_clk_unprepare;
+		goto err_clk_disable;
 
 	/* Allocate and setup the channels. */
 	cmt->num_channels = hweight8(cmt->hw_channels);
@@ -1033,6 +1045,8 @@
 		mask &= ~(1 << hwidx);
 	}
 
+	clk_disable(cmt->clk);
+
 	platform_set_drvdata(pdev, cmt);
 
 	return 0;
@@ -1040,6 +1054,8 @@
 err_unmap:
 	kfree(cmt->channels);
 	iounmap(cmt->mapbase);
+err_clk_disable:
+	clk_disable(cmt->clk);
 err_clk_unprepare:
 	clk_unprepare(cmt->clk);
 err_clk_put:
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-cadence-ttc.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-cadence-ttc.c
@@ -15,6 +15,8 @@
 #include <linux/of_irq.h>
 #include <linux/slab.h>
 #include <linux/sched_clock.h>
+#include <linux/module.h>
+#include <linux/of_platform.h>
 
 /*
  * This driver configures the 2 16/32-bit count-up timers as follows:
@@ -411,10 +413,8 @@
 	ttcce->ttc.clk = clk;
 
 	err = clk_prepare_enable(ttcce->ttc.clk);
-	if (err) {
-		kfree(ttcce);
-		return err;
-	}
+	if (err)
+		goto out_kfree;
 
 	ttcce->ttc.clk_rate_change_nb.notifier_call =
 		ttc_rate_change_clockevent_cb;
@@ -424,7 +424,7 @@
 				    &ttcce->ttc.clk_rate_change_nb);
 	if (err) {
 		pr_warn("Unable to register clock notifier.\n");
-		return err;
+		goto out_kfree;
 	}
 
 	ttcce->ttc.freq = clk_get_rate(ttcce->ttc.clk);
@@ -453,24 +453,20 @@
 
 	err = request_irq(irq, ttc_clock_event_interrupt,
 			  IRQF_TIMER, ttcce->ce.name, ttcce);
-	if (err) {
-		kfree(ttcce);
-		return err;
-	}
+	if (err)
+		goto out_kfree;
 
 	clockevents_config_and_register(&ttcce->ce,
 			ttcce->ttc.freq / PRESCALE, 1, 0xfffe);
 
 	return 0;
+
+out_kfree:
+	kfree(ttcce);
+	return err;
 }
 
-/**
- * ttc_timer_init - Initialize the timer
- *
- * Initializes the timer hardware and register the clock source and clock event
- * timers with Linux kernal timer framework
- */
-static int __init ttc_timer_init(struct device_node *timer)
+static int __init ttc_timer_probe(struct platform_device *pdev)
 {
 	unsigned int irq;
 	void __iomem *timer_baseaddr;
@@ -478,6 +474,7 @@
 	static int initialized;
 	int clksel, ret;
 	u32 timer_width = 16;
+	struct device_node *timer = pdev->dev.of_node;
 
 	if (initialized)
 		return 0;
@@ -489,10 +486,10 @@
 	 * and use it. Note that the event timer uses the interrupt and it's the
 	 * 2nd TTC hence the irq_of_parse_and_map(,1)
 	 */
-	timer_baseaddr = of_iomap(timer, 0);
-	if (!timer_baseaddr) {
+	timer_baseaddr = devm_of_iomap(&pdev->dev, timer, 0, NULL);
+	if (IS_ERR(timer_baseaddr)) {
 		pr_err("ERROR: invalid timer base address\n");
-		return -ENXIO;
+		return PTR_ERR(timer_baseaddr);
 	}
 
 	irq = irq_of_parse_and_map(timer, 1);
@@ -516,20 +513,40 @@
 	clk_ce = of_clk_get(timer, clksel);
 	if (IS_ERR(clk_ce)) {
 		pr_err("ERROR: timer input clock not found\n");
-		return PTR_ERR(clk_ce);
+		ret = PTR_ERR(clk_ce);
+		goto put_clk_cs;
 	}
 
 	ret = ttc_setup_clocksource(clk_cs, timer_baseaddr, timer_width);
 	if (ret)
-		return ret;
+		goto put_clk_ce;
 
 	ret = ttc_setup_clockevent(clk_ce, timer_baseaddr + 4, irq);
 	if (ret)
-		return ret;
+		goto put_clk_ce;
 
 	pr_info("%pOFn #0 at %p, irq=%d\n", timer, timer_baseaddr, irq);
 
 	return 0;
+
+put_clk_ce:
+	clk_put(clk_ce);
+put_clk_cs:
+	clk_put(clk_cs);
+	return ret;
 }
 
-TIMER_OF_DECLARE(ttc, "cdns,ttc", ttc_timer_init);
+static const struct of_device_id ttc_timer_of_match[] = {
+	{.compatible = "cdns,ttc"},
+	{},
+};
+
+MODULE_DEVICE_TABLE(of, ttc_timer_of_match);
+
+static struct platform_driver ttc_timer_driver = {
+	.driver = {
+		.name	= "cdns_ttc_timer",
+		.of_match_table = ttc_timer_of_match,
+	},
+};
+builtin_platform_driver_probe(ttc_timer_driver, ttc_timer_probe);
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-davinci.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-davinci.c
@@ -18,7 +18,7 @@
 #include <clocksource/timer-davinci.h>
 
 #undef pr_fmt
-#define pr_fmt(fmt) "%s: " fmt "\n", __func__
+#define pr_fmt(fmt) "%s: " fmt, __func__
 
 #define DAVINCI_TIMER_REG_TIM12			0x10
 #define DAVINCI_TIMER_REG_TIM34			0x14
@@ -250,30 +250,32 @@
 
 	rv = clk_prepare_enable(clk);
 	if (rv) {
-		pr_err("Unable to prepare and enable the timer clock");
+		pr_err("Unable to prepare and enable the timer clock\n");
 		return rv;
 	}
 
 	if (!request_mem_region(timer_cfg->reg.start,
 				resource_size(&timer_cfg->reg),
 				"davinci-timer")) {
-		pr_err("Unable to request memory region");
-		return -EBUSY;
+		pr_err("Unable to request memory region\n");
+		rv = -EBUSY;
+		goto exit_clk_disable;
 	}
 
 	base = ioremap(timer_cfg->reg.start, resource_size(&timer_cfg->reg));
 	if (!base) {
-		pr_err("Unable to map the register range");
-		return -ENOMEM;
+		pr_err("Unable to map the register range\n");
+		rv = -ENOMEM;
+		goto exit_mem_region;
 	}
 
 	davinci_timer_init(base);
 	tick_rate = clk_get_rate(clk);
 
-	clockevent = kzalloc(sizeof(*clockevent), GFP_KERNEL | __GFP_NOFAIL);
+	clockevent = kzalloc(sizeof(*clockevent), GFP_KERNEL);
 	if (!clockevent) {
-		pr_err("Error allocating memory for clockevent data");
-		return -ENOMEM;
+		rv = -ENOMEM;
+		goto exit_iounmap_base;
 	}
 
 	clockevent->dev.name = "tim12";
@@ -298,14 +300,10 @@
 			 davinci_timer_irq_timer, IRQF_TIMER,
 			 "clockevent/tim12", clockevent);
 	if (rv) {
-		pr_err("Unable to request the clockevent interrupt");
-		return rv;
+		pr_err("Unable to request the clockevent interrupt\n");
+		goto exit_free_clockevent;
 	}
 
-	clockevents_config_and_register(&clockevent->dev, tick_rate,
-					DAVINCI_TIMER_MIN_DELTA,
-					DAVINCI_TIMER_MAX_DELTA);
-
 	davinci_clocksource.dev.rating = 300;
 	davinci_clocksource.dev.read = davinci_clocksource_read;
 	davinci_clocksource.dev.mask =
@@ -323,16 +321,34 @@
 		davinci_clocksource_init_tim34(base);
 	}
 
+	clockevents_config_and_register(&clockevent->dev, tick_rate,
+					DAVINCI_TIMER_MIN_DELTA,
+					DAVINCI_TIMER_MAX_DELTA);
+
 	rv = clocksource_register_hz(&davinci_clocksource.dev, tick_rate);
 	if (rv) {
-		pr_err("Unable to register clocksource");
-		return rv;
+		pr_err("Unable to register clocksource\n");
+		goto exit_free_irq;
 	}
 
 	sched_clock_register(davinci_timer_read_sched_clock,
 			     DAVINCI_TIMER_CLKSRC_BITS, tick_rate);
 
 	return 0;
+
+exit_free_irq:
+	free_irq(timer_cfg->irq[DAVINCI_TIMER_CLOCKEVENT_IRQ].start,
+			clockevent);
+exit_free_clockevent:
+	kfree(clockevent);
+exit_iounmap_base:
+	iounmap(base);
+exit_mem_region:
+	release_mem_region(timer_cfg->reg.start,
+			   resource_size(&timer_cfg->reg));
+exit_clk_disable:
+	clk_disable_unprepare(clk);
+	return rv;
 }
 
 static int __init of_davinci_timer_register(struct device_node *np)
@@ -343,20 +359,20 @@
 
 	rv = of_address_to_resource(np, 0, &timer_cfg.reg);
 	if (rv) {
-		pr_err("Unable to get the register range for timer");
+		pr_err("Unable to get the register range for timer\n");
 		return rv;
 	}
 
 	rv = of_irq_to_resource_table(np, timer_cfg.irq,
 				      DAVINCI_TIMER_NUM_IRQS);
 	if (rv != DAVINCI_TIMER_NUM_IRQS) {
-		pr_err("Unable to get the interrupts for timer");
+		pr_err("Unable to get the interrupts for timer\n");
 		return rv;
 	}
 
 	clk = of_clk_get(np, 0);
 	if (IS_ERR(clk)) {
-		pr_err("Unable to get the timer clock");
+		pr_err("Unable to get the timer clock\n");
 		return PTR_ERR(clk);
 	}
 
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-gx6605s.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-gx6605s.c
@@ -28,6 +28,7 @@
 	void __iomem *base = timer_of_base(to_timer_of(ce));
 
 	writel_relaxed(GX6605S_STATUS_CLR, base + TIMER_STATUS);
+	writel_relaxed(0, base + TIMER_INI);
 
 	ce->event_handler(ce);
 
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-ixp4xx.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-ixp4xx.c
@@ -258,7 +258,6 @@
 	}
 	ixp4xx_timer_register(base, timer_irq, timer_freq);
 }
-EXPORT_SYMBOL_GPL(ixp4xx_timer_setup);
 
 #ifdef CONFIG_OF
 static __init int ixp4xx_of_timer_init(struct device_node *np)
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-of.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-of.c
@@ -157,9 +157,9 @@
 	of_base->base = of_base->name ?
 		of_io_request_and_map(np, of_base->index, of_base->name) :
 		of_iomap(np, of_base->index);
-	if (IS_ERR(of_base->base)) {
-		pr_err("Failed to iomap (%s)\n", of_base->name);
-		return PTR_ERR(of_base->base);
+	if (IS_ERR_OR_NULL(of_base->base)) {
+		pr_err("Failed to iomap (%s:%s)\n", np->name, of_base->name);
+		return of_base->base ? PTR_ERR(of_base->base) : -ENOMEM;
 	}
 
 	return 0;
@@ -192,7 +192,7 @@
 	}
 
 	if (!to->clkevt.name)
-		to->clkevt.name = np->name;
+		to->clkevt.name = np->full_name;
 
 	to->np = np;
 
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-orion.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-orion.c
@@ -149,7 +149,8 @@
 	irq = irq_of_parse_and_map(np, 1);
 	if (irq <= 0) {
 		pr_err("%pOFn: unable to parse timer1 irq\n", np);
-		return -EINVAL;
+		ret = -EINVAL;
+		goto out_unprep_clk;
 	}
 
 	rate = clk_get_rate(clk);
@@ -166,7 +167,7 @@
 				    clocksource_mmio_readl_down);
 	if (ret) {
 		pr_err("Failed to initialize mmio timer\n");
-		return ret;
+		goto out_unprep_clk;
 	}
 
 	sched_clock_register(orion_read_sched_clock, 32, rate);
@@ -175,7 +176,7 @@
 	ret = setup_irq(irq, &orion_clkevt_irq);
 	if (ret) {
 		pr_err("%pOFn: unable to setup irq\n", np);
-		return ret;
+		goto out_unprep_clk;
 	}
 
 	ticks_per_jiffy = (clk_get_rate(clk) + HZ/2) / HZ;
@@ -188,5 +189,9 @@
 	orion_delay_timer_init(rate);
 
 	return 0;
+
+out_unprep_clk:
+	clk_disable_unprepare(clk);
+	return ret;
 }
 TIMER_OF_DECLARE(orion_timer, "marvell,orion-timer", orion_timer_init);
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-oxnas-rps.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-oxnas-rps.c
@@ -236,7 +236,7 @@
 	}
 
 	rps->irq = irq_of_parse_and_map(np, 0);
-	if (rps->irq < 0) {
+	if (!rps->irq) {
 		ret = -EINVAL;
 		goto err_iomap;
 	}
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-riscv.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-riscv.c
@@ -41,7 +41,7 @@
 	return get_cycles64();
 }
 
-static u64 riscv_sched_clock(void)
+static u64 notrace riscv_sched_clock(void)
 {
 	return get_cycles64();
 }
--- linux-ein-5.4.0.orig/drivers/clocksource/timer-sp804.c
+++ linux-ein-5.4.0/drivers/clocksource/timer-sp804.c
@@ -215,6 +215,11 @@
 	struct clk *clk1, *clk2;
 	const char *name = of_get_property(np, "compatible", NULL);
 
+	if (initialized) {
+		pr_debug("%pOF: skipping further SP804 timer device\n", np);
+		return 0;
+	}
+
 	base = of_iomap(np, 0);
 	if (!base)
 		return -ENXIO;
@@ -223,11 +228,6 @@
 	writel(0, base + TIMER_CTRL);
 	writel(0, base + TIMER_2_BASE + TIMER_CTRL);
 
-	if (initialized || !of_device_is_available(np)) {
-		ret = -EINVAL;
-		goto err;
-	}
-
 	clk1 = of_clk_get(np, 0);
 	if (IS_ERR(clk1))
 		clk1 = NULL;
--- linux-ein-5.4.0.orig/drivers/counter/104-quad-8.c
+++ linux-ein-5.4.0/drivers/counter/104-quad-8.c
@@ -42,6 +42,7 @@
  * @base:		base port address of the IIO device
  */
 struct quad8_iio {
+	struct mutex lock;
 	struct counter_device counter;
 	unsigned int preset[QUAD8_NUM_COUNTERS];
 	unsigned int count_mode[QUAD8_NUM_COUNTERS];
@@ -56,10 +57,6 @@
 
 #define QUAD8_REG_CHAN_OP 0x11
 #define QUAD8_REG_INDEX_INPUT_LEVELS 0x16
-/* Borrow Toggle flip-flop */
-#define QUAD8_FLAG_BT BIT(0)
-/* Carry Toggle flip-flop */
-#define QUAD8_FLAG_CT BIT(1)
 /* Error flag */
 #define QUAD8_FLAG_E BIT(4)
 /* Up/Down flag */
@@ -96,9 +93,6 @@
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
 	const int base_offset = priv->base + 2 * chan->channel;
-	unsigned int flags;
-	unsigned int borrow;
-	unsigned int carry;
 	int i;
 
 	switch (mask) {
@@ -109,12 +103,9 @@
 			return IIO_VAL_INT;
 		}
 
-		flags = inb(base_offset + 1);
-		borrow = flags & QUAD8_FLAG_BT;
-		carry = !!(flags & QUAD8_FLAG_CT);
+		*val = 0;
 
-		/* Borrow XOR Carry effectively doubles count range */
-		*val = (borrow ^ carry) << 24;
+		mutex_lock(&priv->lock);
 
 		/* Reset Byte Pointer; transfer Counter to Output Latch */
 		outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_CNTR_OUT,
@@ -123,6 +114,8 @@
 		for (i = 0; i < 3; i++)
 			*val |= (unsigned int)inb(base_offset) << (8 * i);
 
+		mutex_unlock(&priv->lock);
+
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_ENABLE:
 		*val = priv->ab_enable[chan->channel];
@@ -153,6 +146,8 @@
 		if ((unsigned int)val > 0xFFFFFF)
 			return -EINVAL;
 
+		mutex_lock(&priv->lock);
+
 		/* Reset Byte Pointer */
 		outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
 
@@ -176,12 +171,16 @@
 		/* Reset Error flag */
 		outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, base_offset + 1);
 
+		mutex_unlock(&priv->lock);
+
 		return 0;
 	case IIO_CHAN_INFO_ENABLE:
 		/* only boolean values accepted */
 		if (val < 0 || val > 1)
 			return -EINVAL;
 
+		mutex_lock(&priv->lock);
+
 		priv->ab_enable[chan->channel] = val;
 
 		ior_cfg = val | priv->preset_enable[chan->channel] << 1;
@@ -189,11 +188,18 @@
 		/* Load I/O control configuration */
 		outb(QUAD8_CTR_IOR | ior_cfg, base_offset + 1);
 
+		mutex_unlock(&priv->lock);
+
 		return 0;
 	case IIO_CHAN_INFO_SCALE:
+		mutex_lock(&priv->lock);
+
 		/* Quadrature scaling only available in quadrature mode */
-		if (!priv->quadrature_mode[chan->channel] && (val2 || val != 1))
+		if (!priv->quadrature_mode[chan->channel] &&
+				(val2 || val != 1)) {
+			mutex_unlock(&priv->lock);
 			return -EINVAL;
+		}
 
 		/* Only three gain states (1, 0.5, 0.25) */
 		if (val == 1 && !val2)
@@ -207,11 +213,15 @@
 				priv->quadrature_scale[chan->channel] = 2;
 				break;
 			default:
+				mutex_unlock(&priv->lock);
 				return -EINVAL;
 			}
-		else
+		else {
+			mutex_unlock(&priv->lock);
 			return -EINVAL;
+		}
 
+		mutex_unlock(&priv->lock);
 		return 0;
 	}
 
@@ -248,6 +258,8 @@
 	if (preset > 0xFFFFFF)
 		return -EINVAL;
 
+	mutex_lock(&priv->lock);
+
 	priv->preset[chan->channel] = preset;
 
 	/* Reset Byte Pointer */
@@ -257,6 +269,8 @@
 	for (i = 0; i < 3; i++)
 		outb(preset >> (8 * i), base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -286,6 +300,8 @@
 	/* Preset enable is active low in Input/Output Control register */
 	preset_enable = !preset_enable;
 
+	mutex_lock(&priv->lock);
+
 	priv->preset_enable[chan->channel] = preset_enable;
 
 	ior_cfg = priv->ab_enable[chan->channel] |
@@ -294,6 +310,8 @@
 	/* Load I/O control configuration to Input / Output Control Register */
 	outb(QUAD8_CTR_IOR | ior_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -351,6 +369,8 @@
 	unsigned int mode_cfg = cnt_mode << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
 
+	mutex_lock(&priv->lock);
+
 	priv->count_mode[chan->channel] = cnt_mode;
 
 	/* Add quadrature mode configuration */
@@ -360,6 +380,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -387,19 +409,26 @@
 	const struct iio_chan_spec *chan, unsigned int synchronous_mode)
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
-	const unsigned int idr_cfg = synchronous_mode |
-		priv->index_polarity[chan->channel] << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
+	unsigned int idr_cfg = synchronous_mode;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->index_polarity[chan->channel] << 1;
 
 	/* Index function must be non-synchronous in non-quadrature mode */
-	if (synchronous_mode && !priv->quadrature_mode[chan->channel])
+	if (synchronous_mode && !priv->quadrature_mode[chan->channel]) {
+		mutex_unlock(&priv->lock);
 		return -EINVAL;
+	}
 
 	priv->synchronous_mode[chan->channel] = synchronous_mode;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -427,8 +456,12 @@
 	const struct iio_chan_spec *chan, unsigned int quadrature_mode)
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
-	unsigned int mode_cfg = priv->count_mode[chan->channel] << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
+	unsigned int mode_cfg;
+
+	mutex_lock(&priv->lock);
+
+	mode_cfg = priv->count_mode[chan->channel] << 1;
 
 	if (quadrature_mode)
 		mode_cfg |= (priv->quadrature_scale[chan->channel] + 1) << 3;
@@ -446,6 +479,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -473,15 +508,20 @@
 	const struct iio_chan_spec *chan, unsigned int index_polarity)
 {
 	struct quad8_iio *const priv = iio_priv(indio_dev);
-	const unsigned int idr_cfg = priv->synchronous_mode[chan->channel] |
-		index_polarity << 1;
 	const int base_offset = priv->base + 2 * chan->channel + 1;
+	unsigned int idr_cfg = index_polarity << 1;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->synchronous_mode[chan->channel];
 
 	priv->index_polarity[chan->channel] = index_polarity;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -585,20 +625,12 @@
 static int quad8_count_read(struct counter_device *counter,
 	struct counter_count *count, struct counter_count_read_value *val)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const int base_offset = priv->base + 2 * count->id;
-	unsigned int flags;
-	unsigned int borrow;
-	unsigned int carry;
-	unsigned long position;
+	unsigned long position = 0;
 	int i;
 
-	flags = inb(base_offset + 1);
-	borrow = flags & QUAD8_FLAG_BT;
-	carry = !!(flags & QUAD8_FLAG_CT);
-
-	/* Borrow XOR Carry effectively doubles count range */
-	position = (unsigned long)(borrow ^ carry) << 24;
+	mutex_lock(&priv->lock);
 
 	/* Reset Byte Pointer; transfer Counter to Output Latch */
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_CNTR_OUT,
@@ -609,13 +641,15 @@
 
 	counter_count_read_value_set(val, COUNTER_COUNT_POSITION, &position);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
 static int quad8_count_write(struct counter_device *counter,
 	struct counter_count *count, struct counter_count_write_value *val)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const int base_offset = priv->base + 2 * count->id;
 	int err;
 	unsigned long position;
@@ -630,6 +664,8 @@
 	if (position > 0xFFFFFF)
 		return -EINVAL;
 
+	mutex_lock(&priv->lock);
+
 	/* Reset Byte Pointer */
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
 
@@ -653,6 +689,8 @@
 	/* Reset Error flag */
 	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, base_offset + 1);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -673,13 +711,13 @@
 static int quad8_function_get(struct counter_device *counter,
 	struct counter_count *count, size_t *function)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
 	const int id = count->id;
-	const unsigned int quadrature_mode = priv->quadrature_mode[id];
-	const unsigned int scale = priv->quadrature_scale[id];
 
-	if (quadrature_mode)
-		switch (scale) {
+	mutex_lock(&priv->lock);
+
+	if (priv->quadrature_mode[id])
+		switch (priv->quadrature_scale[id]) {
 		case 0:
 			*function = QUAD8_COUNT_FUNCTION_QUADRATURE_X1;
 			break;
@@ -693,6 +731,8 @@
 	else
 		*function = QUAD8_COUNT_FUNCTION_PULSE_DIRECTION;
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -703,10 +743,15 @@
 	const int id = count->id;
 	unsigned int *const quadrature_mode = priv->quadrature_mode + id;
 	unsigned int *const scale = priv->quadrature_scale + id;
-	unsigned int mode_cfg = priv->count_mode[id] << 1;
 	unsigned int *const synchronous_mode = priv->synchronous_mode + id;
-	const unsigned int idr_cfg = priv->index_polarity[id] << 1;
 	const int base_offset = priv->base + 2 * id + 1;
+	unsigned int mode_cfg;
+	unsigned int idr_cfg;
+
+	mutex_lock(&priv->lock);
+
+	mode_cfg = priv->count_mode[id] << 1;
+	idr_cfg = priv->index_polarity[id] << 1;
 
 	if (function == QUAD8_COUNT_FUNCTION_PULSE_DIRECTION) {
 		*quadrature_mode = 0;
@@ -742,6 +787,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -858,15 +905,20 @@
 {
 	struct quad8_iio *const priv = counter->priv;
 	const size_t channel_id = signal->id - 16;
-	const unsigned int idr_cfg = priv->synchronous_mode[channel_id] |
-		index_polarity << 1;
 	const int base_offset = priv->base + 2 * channel_id + 1;
+	unsigned int idr_cfg = index_polarity << 1;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->synchronous_mode[channel_id];
 
 	priv->index_polarity[channel_id] = index_polarity;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -893,19 +945,26 @@
 {
 	struct quad8_iio *const priv = counter->priv;
 	const size_t channel_id = signal->id - 16;
-	const unsigned int idr_cfg = synchronous_mode |
-		priv->index_polarity[channel_id] << 1;
 	const int base_offset = priv->base + 2 * channel_id + 1;
+	unsigned int idr_cfg = synchronous_mode;
+
+	mutex_lock(&priv->lock);
+
+	idr_cfg |= priv->index_polarity[channel_id] << 1;
 
 	/* Index function must be non-synchronous in non-quadrature mode */
-	if (synchronous_mode && !priv->quadrature_mode[channel_id])
+	if (synchronous_mode && !priv->quadrature_mode[channel_id]) {
+		mutex_unlock(&priv->lock);
 		return -EINVAL;
+	}
 
 	priv->synchronous_mode[channel_id] = synchronous_mode;
 
 	/* Load Index Control configuration to Index Control Register */
 	outb(QUAD8_CTR_IDR | idr_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -970,6 +1029,8 @@
 		break;
 	}
 
+	mutex_lock(&priv->lock);
+
 	priv->count_mode[count->id] = cnt_mode;
 
 	/* Set count mode configuration value */
@@ -982,6 +1043,8 @@
 	/* Load mode configuration to Counter Mode Register */
 	outb(QUAD8_CTR_CMR | mode_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return 0;
 }
 
@@ -1023,6 +1086,8 @@
 	if (err)
 		return err;
 
+	mutex_lock(&priv->lock);
+
 	priv->ab_enable[count->id] = ab_enable;
 
 	ior_cfg = ab_enable | priv->preset_enable[count->id] << 1;
@@ -1030,6 +1095,8 @@
 	/* Load I/O control configuration */
 	outb(QUAD8_CTR_IOR | ior_cfg, base_offset + 1);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -1058,14 +1125,28 @@
 	return sprintf(buf, "%u\n", priv->preset[count->id]);
 }
 
+static void quad8_preset_register_set(struct quad8_iio *quad8iio, int id,
+		unsigned int preset)
+{
+	const unsigned int base_offset = quad8iio->base + 2 * id;
+	int i;
+
+	quad8iio->preset[id] = preset;
+
+	/* Reset Byte Pointer */
+	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
+
+	/* Set Preset Register */
+	for (i = 0; i < 3; i++)
+		outb(preset >> (8 * i), base_offset);
+}
+
 static ssize_t quad8_count_preset_write(struct counter_device *counter,
 	struct counter_count *count, void *private, const char *buf, size_t len)
 {
 	struct quad8_iio *const priv = counter->priv;
-	const int base_offset = priv->base + 2 * count->id;
 	unsigned int preset;
 	int ret;
-	int i;
 
 	ret = kstrtouint(buf, 0, &preset);
 	if (ret)
@@ -1075,14 +1156,11 @@
 	if (preset > 0xFFFFFF)
 		return -EINVAL;
 
-	priv->preset[count->id] = preset;
+	mutex_lock(&priv->lock);
 
-	/* Reset Byte Pointer */
-	outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1);
+	quad8_preset_register_set(priv, count->id, preset);
 
-	/* Set Preset Register */
-	for (i = 0; i < 3; i++)
-		outb(preset >> (8 * i), base_offset);
+	mutex_unlock(&priv->lock);
 
 	return len;
 }
@@ -1090,33 +1168,53 @@
 static ssize_t quad8_count_ceiling_read(struct counter_device *counter,
 	struct counter_count *count, void *private, char *buf)
 {
-	const struct quad8_iio *const priv = counter->priv;
+	struct quad8_iio *const priv = counter->priv;
+
+	mutex_lock(&priv->lock);
 
 	/* Range Limit and Modulo-N count modes use preset value as ceiling */
 	switch (priv->count_mode[count->id]) {
 	case 1:
 	case 3:
-		return quad8_count_preset_read(counter, count, private, buf);
+		mutex_unlock(&priv->lock);
+		return sprintf(buf, "%u\n", priv->preset[count->id]);
 	}
 
-	/* By default 0x1FFFFFF (25 bits unsigned) is maximum count */
-	return sprintf(buf, "33554431\n");
+	mutex_unlock(&priv->lock);
+
+	/* By default 0xFFFFFF (24 bits unsigned) is maximum count */
+	return sprintf(buf, "16777215\n");
 }
 
 static ssize_t quad8_count_ceiling_write(struct counter_device *counter,
 	struct counter_count *count, void *private, const char *buf, size_t len)
 {
 	struct quad8_iio *const priv = counter->priv;
+	unsigned int ceiling;
+	int ret;
+
+	ret = kstrtouint(buf, 0, &ceiling);
+	if (ret)
+		return ret;
+
+	/* Only 24-bit values are supported */
+	if (ceiling > 0xFFFFFF)
+		return -EINVAL;
+
+	mutex_lock(&priv->lock);
 
 	/* Range Limit and Modulo-N count modes use preset value as ceiling */
 	switch (priv->count_mode[count->id]) {
 	case 1:
 	case 3:
-		return quad8_count_preset_write(counter, count, private, buf,
-						len);
+		quad8_preset_register_set(priv, count->id, ceiling);
+		mutex_unlock(&priv->lock);
+		return len;
 	}
 
-	return len;
+	mutex_unlock(&priv->lock);
+
+	return -EINVAL;
 }
 
 static ssize_t quad8_count_preset_enable_read(struct counter_device *counter,
@@ -1143,6 +1241,8 @@
 	/* Preset enable is active low in Input/Output Control register */
 	preset_enable = !preset_enable;
 
+	mutex_lock(&priv->lock);
+
 	priv->preset_enable[count->id] = preset_enable;
 
 	ior_cfg = priv->ab_enable[count->id] | (unsigned int)preset_enable << 1;
@@ -1150,6 +1250,8 @@
 	/* Load I/O control configuration to Input / Output Control Register */
 	outb(QUAD8_CTR_IOR | ior_cfg, base_offset);
 
+	mutex_unlock(&priv->lock);
+
 	return len;
 }
 
@@ -1320,6 +1422,9 @@
 	quad8iio->counter.priv = quad8iio;
 	quad8iio->base = base[id];
 
+	/* Initialize mutex */
+	mutex_init(&quad8iio->lock);
+
 	/* Reset all counters and disable interrupt function */
 	outb(QUAD8_CHAN_OP_RESET_COUNTERS, base[id] + QUAD8_REG_CHAN_OP);
 	/* Set initial configuration for all counters */
--- linux-ein-5.4.0.orig/drivers/counter/stm32-lptimer-cnt.c
+++ linux-ein-5.4.0/drivers/counter/stm32-lptimer-cnt.c
@@ -69,7 +69,7 @@
 
 	/* ensure CMP & ARR registers are properly written */
 	ret = regmap_read_poll_timeout(priv->regmap, STM32_LPTIM_ISR, val,
-				       (val & STM32_LPTIM_CMPOK_ARROK),
+				       (val & STM32_LPTIM_CMPOK_ARROK) == STM32_LPTIM_CMPOK_ARROK,
 				       100, 1000);
 	if (ret)
 		return ret;
--- linux-ein-5.4.0.orig/drivers/counter/stm32-timer-cnt.c
+++ linux-ein-5.4.0/drivers/counter/stm32-timer-cnt.c
@@ -24,7 +24,7 @@
 	struct counter_device counter;
 	struct regmap *regmap;
 	struct clk *clk;
-	u32 ceiling;
+	u32 max_arr;
 };
 
 /**
@@ -35,13 +35,14 @@
  * @STM32_COUNT_ENCODER_MODE_3: counts on both TI1FP1 and TI2FP2 edges
  */
 enum stm32_count_function {
-	STM32_COUNT_SLAVE_MODE_DISABLED = -1,
+	STM32_COUNT_SLAVE_MODE_DISABLED,
 	STM32_COUNT_ENCODER_MODE_1,
 	STM32_COUNT_ENCODER_MODE_2,
 	STM32_COUNT_ENCODER_MODE_3,
 };
 
 static enum counter_count_function stm32_count_functions[] = {
+	[STM32_COUNT_SLAVE_MODE_DISABLED] = COUNTER_COUNT_FUNCTION_INCREASE,
 	[STM32_COUNT_ENCODER_MODE_1] = COUNTER_COUNT_FUNCTION_QUADRATURE_X2_A,
 	[STM32_COUNT_ENCODER_MODE_2] = COUNTER_COUNT_FUNCTION_QUADRATURE_X2_B,
 	[STM32_COUNT_ENCODER_MODE_3] = COUNTER_COUNT_FUNCTION_QUADRATURE_X4,
@@ -65,14 +66,15 @@
 			     struct counter_count_write_value *val)
 {
 	struct stm32_timer_cnt *const priv = counter->priv;
-	u32 cnt;
+	u32 cnt, ceiling;
 	int err;
 
 	err = counter_count_write_value_get(&cnt, COUNTER_COUNT_POSITION, val);
 	if (err)
 		return err;
 
-	if (cnt > priv->ceiling)
+	regmap_read(priv->regmap, TIM_ARR, &ceiling);
+	if (cnt > ceiling)
 		return -EINVAL;
 
 	return regmap_write(priv->regmap, TIM_CNT, cnt);
@@ -88,6 +90,9 @@
 	regmap_read(priv->regmap, TIM_SMCR, &smcr);
 
 	switch (smcr & TIM_SMCR_SMS) {
+	case 0:
+		*function = STM32_COUNT_SLAVE_MODE_DISABLED;
+		return 0;
 	case 1:
 		*function = STM32_COUNT_ENCODER_MODE_1;
 		return 0;
@@ -97,9 +102,9 @@
 	case 3:
 		*function = STM32_COUNT_ENCODER_MODE_3;
 		return 0;
+	default:
+		return -EINVAL;
 	}
-
-	return -EINVAL;
 }
 
 static int stm32_count_function_set(struct counter_device *counter,
@@ -110,6 +115,9 @@
 	u32 cr1, sms;
 
 	switch (function) {
+	case STM32_COUNT_SLAVE_MODE_DISABLED:
+		sms = 0;
+		break;
 	case STM32_COUNT_ENCODER_MODE_1:
 		sms = 1;
 		break;
@@ -120,8 +128,7 @@
 		sms = 3;
 		break;
 	default:
-		sms = 0;
-		break;
+		return -EINVAL;
 	}
 
 	/* Store enable status */
@@ -129,10 +136,6 @@
 
 	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_CEN, 0);
 
-	/* TIMx_ARR register shouldn't be buffered (ARPE=0) */
-	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0);
-	regmap_write(priv->regmap, TIM_ARR, priv->ceiling);
-
 	regmap_update_bits(priv->regmap, TIM_SMCR, TIM_SMCR_SMS, sms);
 
 	/* Make sure that registers are updated */
@@ -183,11 +186,13 @@
 	if (ret)
 		return ret;
 
+	if (ceiling > priv->max_arr)
+		return -ERANGE;
+
 	/* TIMx_ARR register shouldn't be buffered (ARPE=0) */
 	regmap_update_bits(priv->regmap, TIM_CR1, TIM_CR1_ARPE, 0);
 	regmap_write(priv->regmap, TIM_ARR, ceiling);
 
-	priv->ceiling = ceiling;
 	return len;
 }
 
@@ -269,31 +274,36 @@
 	size_t function;
 	int err;
 
-	/* Default action mode (e.g. STM32_COUNT_SLAVE_MODE_DISABLED) */
-	*action = STM32_SYNAPSE_ACTION_NONE;
-
 	err = stm32_count_function_get(counter, count, &function);
 	if (err)
-		return 0;
+		return err;
 
 	switch (function) {
+	case STM32_COUNT_SLAVE_MODE_DISABLED:
+		/* counts on internal clock when CEN=1 */
+		*action = STM32_SYNAPSE_ACTION_NONE;
+		return 0;
 	case STM32_COUNT_ENCODER_MODE_1:
 		/* counts up/down on TI1FP1 edge depending on TI2FP2 level */
 		if (synapse->signal->id == count->synapses[0].signal->id)
 			*action = STM32_SYNAPSE_ACTION_BOTH_EDGES;
-		break;
+		else
+			*action = STM32_SYNAPSE_ACTION_NONE;
+		return 0;
 	case STM32_COUNT_ENCODER_MODE_2:
 		/* counts up/down on TI2FP2 edge depending on TI1FP1 level */
 		if (synapse->signal->id == count->synapses[1].signal->id)
 			*action = STM32_SYNAPSE_ACTION_BOTH_EDGES;
-		break;
+		else
+			*action = STM32_SYNAPSE_ACTION_NONE;
+		return 0;
 	case STM32_COUNT_ENCODER_MODE_3:
 		/* counts up/down on both TI1FP1 and TI2FP2 edges */
 		*action = STM32_SYNAPSE_ACTION_BOTH_EDGES;
-		break;
+		return 0;
+	default:
+		return -EINVAL;
 	}
-
-	return 0;
 }
 
 static const struct counter_ops stm32_timer_cnt_ops = {
@@ -354,7 +364,7 @@
 
 	priv->regmap = ddata->regmap;
 	priv->clk = ddata->clk;
-	priv->ceiling = ddata->max_arr;
+	priv->max_arr = ddata->max_arr;
 
 	priv->counter.name = dev_name(dev);
 	priv->counter.parent = dev;
--- linux-ein-5.4.0.orig/drivers/cpufreq/Kconfig.arm
+++ linux-ein-5.4.0/drivers/cpufreq/Kconfig.arm
@@ -41,6 +41,7 @@
 config ARM_ARMADA_8K_CPUFREQ
 	tristate "Armada 8K CPUFreq driver"
 	depends on ARCH_MVEBU && CPUFREQ_DT
+	select ARMADA_AP_CPU_CLK
 	help
 	  This enables the CPUFreq driver support for Marvell
 	  Armada8k SOCs.
@@ -99,6 +100,7 @@
 	tristate "Freescale i.MX6 cpufreq support"
 	depends on ARCH_MXC
 	depends on REGULATOR_ANATOP
+	select NVMEM_IMX_OCOTP
 	select PM_OPP
 	help
 	  This adds cpufreq driver support for Freescale i.MX6 series SoCs.
--- linux-ein-5.4.0.orig/drivers/cpufreq/acpi-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/acpi-cpufreq.c
@@ -30,6 +30,7 @@
 #include <asm/msr.h>
 #include <asm/processor.h>
 #include <asm/cpufeature.h>
+#include <asm/cpu_device_id.h>
 
 MODULE_AUTHOR("Paul Diefenbaugh, Dominik Brodowski");
 MODULE_DESCRIPTION("ACPI Processor P-States Driver");
@@ -688,7 +689,8 @@
 		cpumask_copy(policy->cpus, topology_core_cpumask(cpu));
 	}
 
-	if (check_amd_hwpstate_cpu(cpu) && !acpi_pstate_strict) {
+	if (check_amd_hwpstate_cpu(cpu) && boot_cpu_data.x86 < 0x19 &&
+	    !acpi_pstate_strict) {
 		cpumask_clear(policy->cpus);
 		cpumask_set_cpu(cpu, policy->cpus);
 		cpumask_copy(data->freqdomain_cpus,
--- linux-ein-5.4.0.orig/drivers/cpufreq/amd_freq_sensitivity.c
+++ linux-ein-5.4.0/drivers/cpufreq/amd_freq_sensitivity.c
@@ -18,6 +18,7 @@
 
 #include <asm/msr.h>
 #include <asm/cpufeature.h>
+#include <asm/cpu_device_id.h>
 
 #include "cpufreq_ondemand.h"
 
@@ -123,6 +124,8 @@
 	if (!pcidev) {
 		if (!boot_cpu_has(X86_FEATURE_PROC_FEEDBACK))
 			return -ENODEV;
+	} else {
+		pci_dev_put(pcidev);
 	}
 
 	if (rdmsrl_safe(MSR_AMD64_FREQ_SENSITIVITY_ACTUAL, &val))
--- linux-ein-5.4.0.orig/drivers/cpufreq/armada-37xx-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/armada-37xx-cpufreq.c
@@ -25,6 +25,10 @@
 
 #include "cpufreq-dt.h"
 
+/* Clk register set */
+#define ARMADA_37XX_CLK_TBG_SEL		0
+#define ARMADA_37XX_CLK_TBG_SEL_CPU_OFF	22
+
 /* Power management in North Bridge register set */
 #define ARMADA_37XX_NB_L0L1	0x18
 #define ARMADA_37XX_NB_L2L3	0x1C
@@ -69,6 +73,8 @@
 #define LOAD_LEVEL_NR	4
 
 #define MIN_VOLT_MV 1000
+#define MIN_VOLT_MV_FOR_L1_1000MHZ 1108
+#define MIN_VOLT_MV_FOR_L1_1200MHZ 1155
 
 /*  AVS value for the corresponding voltage (in mV) */
 static int avs_map[] = {
@@ -96,7 +102,11 @@
 };
 
 static struct armada_37xx_dvfs armada_37xx_dvfs[] = {
-	{.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, 6} },
+	/*
+	 * The cpufreq scaling for 1.2 GHz variant of the SOC is currently
+	 * unstable because we do not know how to configure it properly.
+	 */
+	/* {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, 6} }, */
 	{.cpu_freq_max = 1000*1000*1000, .divider = {1, 2, 4, 5} },
 	{.cpu_freq_max = 800*1000*1000,  .divider = {1, 2, 3, 4} },
 	{.cpu_freq_max = 600*1000*1000,  .divider = {2, 4, 5, 6} },
@@ -120,10 +130,15 @@
  * will be configured then the DVFS will be enabled.
  */
 static void __init armada37xx_cpufreq_dvfs_setup(struct regmap *base,
-						 struct clk *clk, u8 *divider)
+						 struct regmap *clk_base, u8 *divider)
 {
+	u32 cpu_tbg_sel;
 	int load_lvl;
-	struct clk *parent;
+
+	/* Determine to which TBG clock is CPU connected */
+	regmap_read(clk_base, ARMADA_37XX_CLK_TBG_SEL, &cpu_tbg_sel);
+	cpu_tbg_sel >>= ARMADA_37XX_CLK_TBG_SEL_CPU_OFF;
+	cpu_tbg_sel &= ARMADA_37XX_NB_TBG_SEL_MASK;
 
 	for (load_lvl = 0; load_lvl < LOAD_LEVEL_NR; load_lvl++) {
 		unsigned int reg, mask, val, offset = 0;
@@ -142,6 +157,11 @@
 		mask = (ARMADA_37XX_NB_CLK_SEL_MASK
 			<< ARMADA_37XX_NB_CLK_SEL_OFF);
 
+		/* Set TBG index, for all levels we use the same TBG */
+		val = cpu_tbg_sel << ARMADA_37XX_NB_TBG_SEL_OFF;
+		mask = (ARMADA_37XX_NB_TBG_SEL_MASK
+			<< ARMADA_37XX_NB_TBG_SEL_OFF);
+
 		/*
 		 * Set cpu divider based on the pre-computed array in
 		 * order to have balanced step.
@@ -160,14 +180,6 @@
 
 		regmap_update_bits(base, reg, mask, val);
 	}
-
-	/*
-	 * Set cpu clock source, for all the level we keep the same
-	 * clock source that the one already configured. For this one
-	 * we need to use the clock framework
-	 */
-	parent = clk_get_parent(clk);
-	clk_set_parent(clk, parent);
 }
 
 /*
@@ -202,6 +214,8 @@
  * - L2 & L3 voltage should be about 150mv smaller than L0 voltage.
  * This function calculates L1 & L2 & L3 AVS values dynamically based
  * on L0 voltage and fill all AVS values to the AVS value table.
+ * When base CPU frequency is 1000 or 1200 MHz then there is additional
+ * minimal avs value for load L1.
  */
 static void __init armada37xx_cpufreq_avs_configure(struct regmap *base,
 						struct armada_37xx_dvfs *dvfs)
@@ -233,6 +247,19 @@
 		for (load_level = 1; load_level < LOAD_LEVEL_NR; load_level++)
 			dvfs->avs[load_level] = avs_min;
 
+		/*
+		 * Set the avs values for load L0 and L1 when base CPU frequency
+		 * is 1000/1200 MHz to its typical initial values according to
+		 * the Armada 3700 Hardware Specifications.
+		 */
+		if (dvfs->cpu_freq_max >= 1000*1000*1000) {
+			if (dvfs->cpu_freq_max >= 1200*1000*1000)
+				avs_min = armada_37xx_avs_val_match(MIN_VOLT_MV_FOR_L1_1200MHZ);
+			else
+				avs_min = armada_37xx_avs_val_match(MIN_VOLT_MV_FOR_L1_1000MHZ);
+			dvfs->avs[0] = dvfs->avs[1] = avs_min;
+		}
+
 		return;
 	}
 
@@ -252,6 +279,26 @@
 	target_vm = avs_map[l0_vdd_min] - 150;
 	target_vm = target_vm > MIN_VOLT_MV ? target_vm : MIN_VOLT_MV;
 	dvfs->avs[2] = dvfs->avs[3] = armada_37xx_avs_val_match(target_vm);
+
+	/*
+	 * Fix the avs value for load L1 when base CPU frequency is 1000/1200 MHz,
+	 * otherwise the CPU gets stuck when switching from load L1 to load L0.
+	 * Also ensure that avs value for load L1 is not higher than for L0.
+	 */
+	if (dvfs->cpu_freq_max >= 1000*1000*1000) {
+		u32 avs_min_l1;
+
+		if (dvfs->cpu_freq_max >= 1200*1000*1000)
+			avs_min_l1 = armada_37xx_avs_val_match(MIN_VOLT_MV_FOR_L1_1200MHZ);
+		else
+			avs_min_l1 = armada_37xx_avs_val_match(MIN_VOLT_MV_FOR_L1_1000MHZ);
+
+		if (avs_min_l1 > dvfs->avs[0])
+			avs_min_l1 = dvfs->avs[0];
+
+		if (dvfs->avs[1] < avs_min_l1)
+			dvfs->avs[1] = avs_min_l1;
+	}
 }
 
 static void __init armada37xx_cpufreq_avs_setup(struct regmap *base,
@@ -358,11 +405,16 @@
 	struct platform_device *pdev;
 	unsigned long freq;
 	unsigned int cur_frequency, base_frequency;
-	struct regmap *nb_pm_base, *avs_base;
+	struct regmap *nb_clk_base, *nb_pm_base, *avs_base;
 	struct device *cpu_dev;
 	int load_lvl, ret;
 	struct clk *clk, *parent;
 
+	nb_clk_base =
+		syscon_regmap_lookup_by_compatible("marvell,armada-3700-periph-clock-nb");
+	if (IS_ERR(nb_clk_base))
+		return -ENODEV;
+
 	nb_pm_base =
 		syscon_regmap_lookup_by_compatible("marvell,armada-3700-nb-pm");
 
@@ -391,7 +443,7 @@
 		return -ENODEV;
 	}
 
-	clk = clk_get(cpu_dev, 0);
+	clk = clk_get(cpu_dev, NULL);
 	if (IS_ERR(clk)) {
 		dev_err(cpu_dev, "Cannot get clock for CPU0\n");
 		return PTR_ERR(clk);
@@ -421,7 +473,7 @@
 		return -EINVAL;
 	}
 
-	dvfs = armada_37xx_cpu_freq_info_get(cur_frequency);
+	dvfs = armada_37xx_cpu_freq_info_get(base_frequency);
 	if (!dvfs) {
 		clk_put(clk);
 		return -EINVAL;
@@ -439,7 +491,7 @@
 	armada37xx_cpufreq_avs_configure(avs_base, dvfs);
 	armada37xx_cpufreq_avs_setup(avs_base, dvfs);
 
-	armada37xx_cpufreq_dvfs_setup(nb_pm_base, clk, dvfs->divider);
+	armada37xx_cpufreq_dvfs_setup(nb_pm_base, nb_clk_base, dvfs->divider);
 	clk_put(clk);
 
 	for (load_lvl = ARMADA_37XX_DVFS_LOAD_0; load_lvl < LOAD_LEVEL_NR;
@@ -456,6 +508,7 @@
 	/* Now that everything is setup, enable the DVFS at hardware level */
 	armada37xx_cpufreq_enable_dvfs(nb_pm_base);
 
+	memset(&pdata, 0, sizeof(pdata));
 	pdata.suspend = armada37xx_cpufreq_suspend;
 	pdata.resume = armada37xx_cpufreq_resume;
 
@@ -472,7 +525,7 @@
 remove_opp:
 	/* clean-up the already added opp before leaving */
 	while (load_lvl-- > ARMADA_37XX_DVFS_LOAD_0) {
-		freq = cur_frequency / dvfs->divider[load_lvl];
+		freq = base_frequency / dvfs->divider[load_lvl];
 		dev_pm_opp_remove(cpu_dev, freq);
 	}
 
@@ -483,6 +536,12 @@
 /* late_initcall, to guarantee the driver is loaded after A37xx clock driver */
 late_initcall(armada37xx_cpufreq_driver_init);
 
+static const struct of_device_id __maybe_unused armada37xx_cpufreq_of_match[] = {
+	{ .compatible = "marvell,armada-3700-nb-pm" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, armada37xx_cpufreq_of_match);
+
 MODULE_AUTHOR("Gregory CLEMENT <gregory.clement@free-electrons.com>");
 MODULE_DESCRIPTION("Armada 37xx cpufreq driver");
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/cpufreq/armada-8k-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/armada-8k-cpufreq.c
@@ -204,6 +204,12 @@
 }
 module_exit(armada_8k_cpufreq_exit);
 
+static const struct of_device_id __maybe_unused armada_8k_cpufreq_of_match[] = {
+	{ .compatible = "marvell,ap806-cpu-clock" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, armada_8k_cpufreq_of_match);
+
 MODULE_AUTHOR("Gregory Clement <gregory.clement@bootlin.com>");
 MODULE_DESCRIPTION("Armada 8K cpufreq driver");
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/cpufreq/brcmstb-avs-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/brcmstb-avs-cpufreq.c
@@ -410,7 +410,11 @@
 	if (ret)
 		return ERR_PTR(ret);
 
-	table = devm_kcalloc(dev, AVS_PSTATE_MAX + 1, sizeof(*table),
+	/*
+	 * We allocate space for the 5 different P-STATES AVS,
+	 * plus extra space for a terminating element.
+	 */
+	table = devm_kcalloc(dev, AVS_PSTATE_MAX + 1 + 1, sizeof(*table),
 			     GFP_KERNEL);
 	if (!table)
 		return ERR_PTR(-ENOMEM);
@@ -566,6 +570,16 @@
 	return ret;
 }
 
+static void brcm_avs_prepare_uninit(struct platform_device *pdev)
+{
+	struct private_data *priv;
+
+	priv = platform_get_drvdata(pdev);
+
+	iounmap(priv->avs_intr_base);
+	iounmap(priv->base);
+}
+
 static int brcm_avs_cpufreq_init(struct cpufreq_policy *policy)
 {
 	struct cpufreq_frequency_table *freq_table;
@@ -701,21 +715,21 @@
 
 	brcm_avs_driver.driver_data = pdev;
 
-	return cpufreq_register_driver(&brcm_avs_driver);
+	ret = cpufreq_register_driver(&brcm_avs_driver);
+	if (ret)
+		brcm_avs_prepare_uninit(pdev);
+
+	return ret;
 }
 
 static int brcm_avs_cpufreq_remove(struct platform_device *pdev)
 {
-	struct private_data *priv;
 	int ret;
 
 	ret = cpufreq_unregister_driver(&brcm_avs_driver);
-	if (ret)
-		return ret;
+	WARN_ON(ret);
 
-	priv = platform_get_drvdata(pdev);
-	iounmap(priv->base);
-	iounmap(priv->avs_intr_base);
+	brcm_avs_prepare_uninit(pdev);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/cpufreq/cppc_cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/cppc_cpufreq.c
@@ -217,7 +217,7 @@
 	return ret;
 }
 
-static int cppc_verify_policy(struct cpufreq_policy *policy)
+static int cppc_verify_policy(struct cpufreq_policy_data *policy)
 {
 	cpufreq_verify_within_cpu_limits(policy);
 	return 0;
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq-dt-platdev.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq-dt-platdev.c
@@ -103,13 +103,17 @@
 static const struct of_device_id blacklist[] __initconst = {
 	{ .compatible = "allwinner,sun50i-h6", },
 
+	{ .compatible = "arm,vexpress", },
+
 	{ .compatible = "calxeda,highbank", },
 	{ .compatible = "calxeda,ecx-2000", },
 
+	{ .compatible = "fsl,imx7ulp", },
 	{ .compatible = "fsl,imx7d", },
 	{ .compatible = "fsl,imx8mq", },
 	{ .compatible = "fsl,imx8mm", },
 	{ .compatible = "fsl,imx8mn", },
+	{ .compatible = "fsl,imx8mp", },
 
 	{ .compatible = "marvell,armadaxp", },
 
@@ -124,6 +128,7 @@
 
 	{ .compatible = "nvidia,tegra124", },
 	{ .compatible = "nvidia,tegra210", },
+	{ .compatible = "nvidia,tegra234", },
 
 	{ .compatible = "qcom,apq8096", },
 	{ .compatible = "qcom,msm8996", },
@@ -180,4 +185,4 @@
 			       -1, data,
 			       sizeof(struct cpufreq_dt_platform_data)));
 }
-device_initcall(cpufreq_dt_platdev_init);
+core_initcall(cpufreq_dt_platdev_init);
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq-dt.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq-dt.c
@@ -363,6 +363,10 @@
 		dt_cpufreq_driver.resume = data->resume;
 		if (data->suspend)
 			dt_cpufreq_driver.suspend = data->suspend;
+		if (data->get_intermediate) {
+			dt_cpufreq_driver.target_intermediate = data->target_intermediate;
+			dt_cpufreq_driver.get_intermediate = data->get_intermediate;
+		}
 	}
 
 	ret = cpufreq_register_driver(&dt_cpufreq_driver);
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq-dt.h
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq-dt.h
@@ -14,6 +14,10 @@
 struct cpufreq_dt_platform_data {
 	bool have_governor_per_policy;
 
+	unsigned int	(*get_intermediate)(struct cpufreq_policy *policy,
+					    unsigned int index);
+	int		(*target_intermediate)(struct cpufreq_policy *policy,
+					       unsigned int index);
 	int (*suspend)(struct cpufreq_policy *policy);
 	int (*resume)(struct cpufreq_policy *policy);
 };
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq-nforce2.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq-nforce2.c
@@ -291,7 +291,7 @@
  * nforce2_verify - verifies a new CPUFreq policy
  * @policy: new policy
  */
-static int nforce2_verify(struct cpufreq_policy *policy)
+static int nforce2_verify(struct cpufreq_policy_data *policy)
 {
 	unsigned int fsb_pol_max;
 
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq.c
@@ -74,6 +74,9 @@
 static int cpufreq_start_governor(struct cpufreq_policy *policy);
 static void cpufreq_stop_governor(struct cpufreq_policy *policy);
 static void cpufreq_governor_limits(struct cpufreq_policy *policy);
+static int cpufreq_set_policy(struct cpufreq_policy *policy,
+			      struct cpufreq_governor *new_gov,
+			      unsigned int new_pol);
 
 /**
  * Two notifier lists: the "policy" list is involved in the
@@ -102,6 +105,8 @@
 }
 EXPORT_SYMBOL_GPL(have_governor_per_policy);
 
+static struct kobject *cpufreq_global_kobject;
+
 struct kobject *get_governor_parent_kobj(struct cpufreq_policy *policy)
 {
 	if (have_governor_per_policy())
@@ -438,8 +443,10 @@
 
 	cpufreq_notify_post_transition(policy, freqs, transition_failed);
 
+	spin_lock(&policy->transition_lock);
 	policy->transition_ongoing = false;
 	policy->transition_task = NULL;
+	spin_unlock(&policy->transition_lock);
 
 	wake_up(&policy->transition_wait);
 }
@@ -613,55 +620,51 @@
 	return NULL;
 }
 
-static int cpufreq_parse_policy(char *str_governor,
-				struct cpufreq_policy *policy)
-{
-	if (!strncasecmp(str_governor, "performance", CPUFREQ_NAME_LEN)) {
-		policy->policy = CPUFREQ_POLICY_PERFORMANCE;
-		return 0;
-	}
-	if (!strncasecmp(str_governor, "powersave", CPUFREQ_NAME_LEN)) {
-		policy->policy = CPUFREQ_POLICY_POWERSAVE;
-		return 0;
-	}
-	return -EINVAL;
-}
-
-/**
- * cpufreq_parse_governor - parse a governor string only for has_target()
- */
-static int cpufreq_parse_governor(char *str_governor,
-				  struct cpufreq_policy *policy)
+static struct cpufreq_governor *get_governor(const char *str_governor)
 {
 	struct cpufreq_governor *t;
 
 	mutex_lock(&cpufreq_governor_mutex);
-
 	t = find_governor(str_governor);
-	if (!t) {
-		int ret;
+	if (!t)
+		goto unlock;
 
-		mutex_unlock(&cpufreq_governor_mutex);
+	if (!try_module_get(t->owner))
+		t = NULL;
 
-		ret = request_module("cpufreq_%s", str_governor);
-		if (ret)
-			return -EINVAL;
+unlock:
+	mutex_unlock(&cpufreq_governor_mutex);
 
-		mutex_lock(&cpufreq_governor_mutex);
+	return t;
+}
 
-		t = find_governor(str_governor);
-	}
-	if (t && !try_module_get(t->owner))
-		t = NULL;
+static unsigned int cpufreq_parse_policy(char *str_governor)
+{
+	if (!strncasecmp(str_governor, "performance", CPUFREQ_NAME_LEN))
+		return CPUFREQ_POLICY_PERFORMANCE;
 
-	mutex_unlock(&cpufreq_governor_mutex);
+	if (!strncasecmp(str_governor, "powersave", CPUFREQ_NAME_LEN))
+		return CPUFREQ_POLICY_POWERSAVE;
 
-	if (t) {
-		policy->governor = t;
-		return 0;
-	}
+	return CPUFREQ_POLICY_UNKNOWN;
+}
 
-	return -EINVAL;
+/**
+ * cpufreq_parse_governor - parse a governor string only for has_target()
+ * @str_governor: Governor name.
+ */
+static struct cpufreq_governor *cpufreq_parse_governor(char *str_governor)
+{
+	struct cpufreq_governor *t;
+
+	t = get_governor(str_governor);
+	if (t)
+		return t;
+
+	if (request_module("cpufreq_%s", str_governor))
+		return NULL;
+
+	return get_governor(str_governor);
 }
 
 /**
@@ -762,28 +765,33 @@
 static ssize_t store_scaling_governor(struct cpufreq_policy *policy,
 					const char *buf, size_t count)
 {
+	char str_governor[16];
 	int ret;
-	char	str_governor[16];
-	struct cpufreq_policy new_policy;
-
-	memcpy(&new_policy, policy, sizeof(*policy));
 
 	ret = sscanf(buf, "%15s", str_governor);
 	if (ret != 1)
 		return -EINVAL;
 
 	if (cpufreq_driver->setpolicy) {
-		if (cpufreq_parse_policy(str_governor, &new_policy))
+		unsigned int new_pol;
+
+		new_pol = cpufreq_parse_policy(str_governor);
+		if (!new_pol)
 			return -EINVAL;
+
+		ret = cpufreq_set_policy(policy, NULL, new_pol);
 	} else {
-		if (cpufreq_parse_governor(str_governor, &new_policy))
+		struct cpufreq_governor *new_gov;
+
+		new_gov = cpufreq_parse_governor(str_governor);
+		if (!new_gov)
 			return -EINVAL;
-	}
 
-	ret = cpufreq_set_policy(policy, &new_policy);
+		ret = cpufreq_set_policy(policy, new_gov,
+					 CPUFREQ_POLICY_UNKNOWN);
 
-	if (new_policy.governor)
-		module_put(new_policy.governor->owner);
+		module_put(new_gov->owner);
+	}
 
 	return ret ? ret : count;
 }
@@ -810,12 +818,14 @@
 		goto out;
 	}
 
+	mutex_lock(&cpufreq_governor_mutex);
 	for_each_governor(t) {
 		if (i >= (ssize_t) ((PAGE_SIZE / sizeof(char))
 		    - (CPUFREQ_NAME_LEN + 2)))
-			goto out;
+			break;
 		i += scnprintf(&buf[i], CPUFREQ_NAME_PLEN, "%s ", t->name);
 	}
+	mutex_unlock(&cpufreq_governor_mutex);
 out:
 	i += sprintf(&buf[i], "\n");
 	return i;
@@ -933,6 +943,9 @@
 	struct freq_attr *fattr = to_attr(attr);
 	ssize_t ret;
 
+	if (!fattr->show)
+		return -EIO;
+
 	down_read(&policy->rwsem);
 	ret = fattr->show(policy, buf);
 	up_read(&policy->rwsem);
@@ -947,6 +960,9 @@
 	struct freq_attr *fattr = to_attr(attr);
 	ssize_t ret = -EINVAL;
 
+	if (!fattr->store)
+		return -EIO;
+
 	/*
 	 * cpus_read_trylock() is used here to work around a circular lock
 	 * dependency problem with respect to the cpufreq_register_driver().
@@ -983,10 +999,9 @@
 	.release	= cpufreq_sysfs_release,
 };
 
-static void add_cpu_dev_symlink(struct cpufreq_policy *policy, unsigned int cpu)
+static void add_cpu_dev_symlink(struct cpufreq_policy *policy, unsigned int cpu,
+				struct device *dev)
 {
-	struct device *dev = get_cpu_device(cpu);
-
 	if (unlikely(!dev))
 		return;
 
@@ -1044,40 +1059,47 @@
 
 static int cpufreq_init_policy(struct cpufreq_policy *policy)
 {
-	struct cpufreq_governor *gov = NULL, *def_gov = NULL;
-	struct cpufreq_policy new_policy;
-
-	memcpy(&new_policy, policy, sizeof(*policy));
-
-	def_gov = cpufreq_default_governor();
+	struct cpufreq_governor *def_gov = cpufreq_default_governor();
+	struct cpufreq_governor *gov = NULL;
+	unsigned int pol = CPUFREQ_POLICY_UNKNOWN;
+	int ret;
 
 	if (has_target()) {
-		/*
-		 * Update governor of new_policy to the governor used before
-		 * hotplug
-		 */
-		gov = find_governor(policy->last_governor);
+		/* Update policy governor to the one used before hotplug. */
+		gov = get_governor(policy->last_governor);
 		if (gov) {
 			pr_debug("Restoring governor %s for cpu %d\n",
-				policy->governor->name, policy->cpu);
-		} else {
-			if (!def_gov)
-				return -ENODATA;
+				 policy->governor->name, policy->cpu);
+		} else if (def_gov) {
 			gov = def_gov;
+			__module_get(gov->owner);
+		} else {
+			return -ENODATA;
 		}
-		new_policy.governor = gov;
 	} else {
 		/* Use the default policy if there is no last_policy. */
 		if (policy->last_policy) {
-			new_policy.policy = policy->last_policy;
-		} else {
-			if (!def_gov)
-				return -ENODATA;
-			cpufreq_parse_policy(def_gov->name, &new_policy);
+			pol = policy->last_policy;
+		} else if (def_gov) {
+			pol = cpufreq_parse_policy(def_gov->name);
+			/*
+			 * In case the default governor is neiter "performance"
+			 * nor "powersave", fall back to the initial policy
+			 * value set by the driver.
+			 */
+			if (pol == CPUFREQ_POLICY_UNKNOWN)
+				pol = policy->policy;
 		}
+		if (pol != CPUFREQ_POLICY_PERFORMANCE &&
+		    pol != CPUFREQ_POLICY_POWERSAVE)
+			return -ENODATA;
 	}
 
-	return cpufreq_set_policy(policy, &new_policy);
+	ret = cpufreq_set_policy(policy, gov, pol);
+	if (gov)
+		module_put(gov->owner);
+
+	return ret;
 }
 
 static int cpufreq_add_policy_cpu(struct cpufreq_policy *policy, unsigned int cpu)
@@ -1105,13 +1127,10 @@
 
 void refresh_frequency_limits(struct cpufreq_policy *policy)
 {
-	struct cpufreq_policy new_policy;
-
 	if (!policy_is_inactive(policy)) {
-		new_policy = *policy;
 		pr_debug("updating policy for CPU %u\n", policy->cpu);
 
-		cpufreq_set_policy(policy, &new_policy);
+		cpufreq_set_policy(policy, policy->governor, policy->policy);
 	}
 }
 EXPORT_SYMBOL(refresh_frequency_limits);
@@ -1189,6 +1208,7 @@
 	if (!zalloc_cpumask_var(&policy->real_cpus, GFP_KERNEL))
 		goto err_free_rcpumask;
 
+	init_completion(&policy->kobj_unregister);
 	ret = kobject_init_and_add(&policy->kobj, &ktype_cpufreq,
 				   cpufreq_global_kobject, "policy%u", cpu);
 	if (ret) {
@@ -1227,7 +1247,6 @@
 	init_rwsem(&policy->rwsem);
 	spin_lock_init(&policy->transition_lock);
 	init_waitqueue_head(&policy->transition_wait);
-	init_completion(&policy->kobj_unregister);
 	INIT_WORK(&policy->update, handle_update);
 
 	policy->cpu = cpu;
@@ -1345,9 +1364,14 @@
 			goto out_free_policy;
 		}
 
+		/*
+		 * The initialization has succeeded and the policy is online.
+		 * If there is a problem with its frequency table, take it
+		 * offline and drop it.
+		 */
 		ret = cpufreq_table_validate_and_sort(policy);
 		if (ret)
-			goto out_exit_policy;
+			goto out_offline_policy;
 
 		/* related_cpus should at least include policy->cpus. */
 		cpumask_copy(policy->related_cpus, policy->cpus);
@@ -1363,7 +1387,7 @@
 	if (new_policy) {
 		for_each_cpu(j, policy->related_cpus) {
 			per_cpu(cpufreq_cpu_data, j) = policy;
-			add_cpu_dev_symlink(policy, j);
+			add_cpu_dev_symlink(policy, j, get_cpu_device(j));
 		}
 
 		policy->min_freq_req = kzalloc(2 * sizeof(*policy->min_freq_req),
@@ -1373,7 +1397,7 @@
 
 		ret = freq_qos_add_request(&policy->constraints,
 					   policy->min_freq_req, FREQ_QOS_MIN,
-					   policy->min);
+					   FREQ_QOS_MIN_DEFAULT_VALUE);
 		if (ret < 0) {
 			/*
 			 * So we don't call freq_qos_remove_request() for an
@@ -1393,7 +1417,7 @@
 
 		ret = freq_qos_add_request(&policy->constraints,
 					   policy->max_freq_req, FREQ_QOS_MAX,
-					   policy->max);
+					   FREQ_QOS_MAX_DEFAULT_VALUE);
 		if (ret < 0) {
 			policy->max_freq_req = NULL;
 			goto out_destroy_policy;
@@ -1491,6 +1515,10 @@
 
 	up_write(&policy->rwsem);
 
+out_offline_policy:
+	if (cpufreq_driver->offline)
+		cpufreq_driver->offline(policy);
+
 out_exit_policy:
 	if (cpufreq_driver->exit)
 		cpufreq_driver->exit(policy);
@@ -1522,7 +1550,7 @@
 	/* Create sysfs link on CPU registration */
 	policy = per_cpu(cpufreq_cpu_data, cpu);
 	if (policy)
-		add_cpu_dev_symlink(policy, cpu);
+		add_cpu_dev_symlink(policy, cpu, dev);
 
 	return 0;
 }
@@ -2355,43 +2383,46 @@
 /**
  * cpufreq_set_policy - Modify cpufreq policy parameters.
  * @policy: Policy object to modify.
- * @new_policy: New policy data.
+ * @new_gov: Policy governor pointer.
+ * @new_pol: Policy value (for drivers with built-in governors).
  *
- * Pass @new_policy to the cpufreq driver's ->verify() callback. Next, copy the
- * min and max parameters of @new_policy to @policy and either invoke the
- * driver's ->setpolicy() callback (if present) or carry out a governor update
- * for @policy.  That is, run the current governor's ->limits() callback (if the
- * governor field in @new_policy points to the same object as the one in
- * @policy) or replace the governor for @policy with the new one stored in
- * @new_policy.
+ * Invoke the cpufreq driver's ->verify() callback to sanity-check the frequency
+ * limits to be set for the policy, update @policy with the verified limits
+ * values and either invoke the driver's ->setpolicy() callback (if present) or
+ * carry out a governor update for @policy.  That is, run the current governor's
+ * ->limits() callback (if @new_gov points to the same object as the one in
+ * @policy) or replace the governor for @policy with @new_gov.
  *
  * The cpuinfo part of @policy is not updated by this function.
  */
-int cpufreq_set_policy(struct cpufreq_policy *policy,
-		       struct cpufreq_policy *new_policy)
+static int cpufreq_set_policy(struct cpufreq_policy *policy,
+			      struct cpufreq_governor *new_gov,
+			      unsigned int new_pol)
 {
+	struct cpufreq_policy_data new_data;
 	struct cpufreq_governor *old_gov;
 	int ret;
 
-	pr_debug("setting new policy for CPU %u: %u - %u kHz\n",
-		 new_policy->cpu, new_policy->min, new_policy->max);
-
-	memcpy(&new_policy->cpuinfo, &policy->cpuinfo, sizeof(policy->cpuinfo));
-
+	memcpy(&new_data.cpuinfo, &policy->cpuinfo, sizeof(policy->cpuinfo));
+	new_data.freq_table = policy->freq_table;
+	new_data.cpu = policy->cpu;
 	/*
 	 * PM QoS framework collects all the requests from users and provide us
 	 * the final aggregated value here.
 	 */
-	new_policy->min = freq_qos_read_value(&policy->constraints, FREQ_QOS_MIN);
-	new_policy->max = freq_qos_read_value(&policy->constraints, FREQ_QOS_MAX);
+	new_data.min = freq_qos_read_value(&policy->constraints, FREQ_QOS_MIN);
+	new_data.max = freq_qos_read_value(&policy->constraints, FREQ_QOS_MAX);
+
+	pr_debug("setting new policy for CPU %u: %u - %u kHz\n",
+		 new_data.cpu, new_data.min, new_data.max);
 
 	/* verify the cpu speed can be set within this limit */
-	ret = cpufreq_driver->verify(new_policy);
+	ret = cpufreq_driver->verify(&new_data);
 	if (ret)
 		return ret;
 
-	policy->min = new_policy->min;
-	policy->max = new_policy->max;
+	policy->min = new_data.min;
+	policy->max = new_data.max;
 	trace_cpu_frequency_limits(policy);
 
 	policy->cached_target_freq = UINT_MAX;
@@ -2400,12 +2431,12 @@
 		 policy->min, policy->max);
 
 	if (cpufreq_driver->setpolicy) {
-		policy->policy = new_policy->policy;
+		policy->policy = new_pol;
 		pr_debug("setting range\n");
 		return cpufreq_driver->setpolicy(policy);
 	}
 
-	if (new_policy->governor == policy->governor) {
+	if (new_gov == policy->governor) {
 		pr_debug("governor limits update\n");
 		cpufreq_governor_limits(policy);
 		return 0;
@@ -2422,7 +2453,7 @@
 	}
 
 	/* start new governor */
-	policy->governor = new_policy->governor;
+	policy->governor = new_gov;
 	ret = cpufreq_init_governor(policy);
 	if (!ret) {
 		ret = cpufreq_start_governor(policy);
@@ -2500,26 +2531,27 @@
 static int cpufreq_boost_set_sw(int state)
 {
 	struct cpufreq_policy *policy;
-	int ret = -EINVAL;
 
 	for_each_active_policy(policy) {
+		int ret;
+
 		if (!policy->freq_table)
-			continue;
+			return -ENXIO;
 
 		ret = cpufreq_frequency_table_cpuinfo(policy,
 						      policy->freq_table);
 		if (ret) {
 			pr_err("%s: Policy frequency update failed\n",
 			       __func__);
-			break;
+			return ret;
 		}
 
 		ret = freq_qos_update_request(policy->max_freq_req, policy->max);
 		if (ret < 0)
-			break;
+			return ret;
 	}
 
-	return ret;
+	return 0;
 }
 
 int cpufreq_boost_trigger_state(int state)
@@ -2610,6 +2642,20 @@
 	return 0;
 }
 
+static char cpufreq_driver_name[CPUFREQ_NAME_LEN];
+
+static int __init cpufreq_driver_setup(char *str)
+{
+	strlcpy(cpufreq_driver_name, str, CPUFREQ_NAME_LEN);
+	return 1;
+}
+
+/*
+ * Set this name to only allow one specific cpu freq driver, e.g.,
+ * cpufreq_driver=powernow-k8
+ */
+__setup("cpufreq_driver=", cpufreq_driver_setup);
+
 /**
  * cpufreq_register_driver - register a CPU Frequency driver
  * @driver_data: A struct cpufreq_driver containing the values#
@@ -2628,6 +2674,13 @@
 	if (cpufreq_disabled())
 		return -ENODEV;
 
+	/*
+	 * The cpufreq core depends heavily on the availability of device
+	 * structure, make sure they are available before proceeding further.
+	 */
+	if (!get_cpu_device(0))
+		return -EPROBE_DEFER;
+
 	if (!driver_data || !driver_data->verify || !driver_data->init ||
 	    !(driver_data->setpolicy || driver_data->target_index ||
 		    driver_data->target) ||
@@ -2637,7 +2690,13 @@
 	     (!driver_data->online != !driver_data->offline))
 		return -EINVAL;
 
-	pr_debug("trying to register driver %s\n", driver_data->name);
+	pr_debug("trying to register driver %s, cpufreq_driver=%s\n",
+		driver_data->name, cpufreq_driver_name);
+
+	if (cpufreq_driver_name[0])
+		if (!driver_data->name ||
+			strcmp(cpufreq_driver_name, driver_data->name))
+				return -EINVAL;
 
 	/* Protect against concurrent CPU online/offline. */
 	cpus_read_lock();
@@ -2733,9 +2792,6 @@
 }
 EXPORT_SYMBOL_GPL(cpufreq_unregister_driver);
 
-struct kobject *cpufreq_global_kobject;
-EXPORT_SYMBOL(cpufreq_global_kobject);
-
 static int __init cpufreq_core_init(void)
 {
 	if (cpufreq_disabled())
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq_conservative.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq_conservative.c
@@ -346,7 +346,7 @@
 	return CPU_FREQ_GOV_CONSERVATIVE;
 }
 
-fs_initcall(cpufreq_gov_dbs_init);
+core_initcall(cpufreq_gov_dbs_init);
 #else
 module_init(cpufreq_gov_dbs_init);
 #endif
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq_governor_attr_set.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq_governor_attr_set.c
@@ -74,8 +74,8 @@
 	if (count)
 		return count;
 
-	kobject_put(&attr_set->kobj);
 	mutex_destroy(&attr_set->update_lock);
+	kobject_put(&attr_set->kobj);
 	return 0;
 }
 EXPORT_SYMBOL_GPL(gov_attr_set_put);
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq_ondemand.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq_ondemand.c
@@ -483,7 +483,7 @@
 	return CPU_FREQ_GOV_ONDEMAND;
 }
 
-fs_initcall(cpufreq_gov_dbs_init);
+core_initcall(cpufreq_gov_dbs_init);
 #else
 module_init(cpufreq_gov_dbs_init);
 #endif
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq_performance.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq_performance.c
@@ -50,5 +50,5 @@
 MODULE_DESCRIPTION("CPUfreq policy governor 'performance'");
 MODULE_LICENSE("GPL");
 
-fs_initcall(cpufreq_gov_performance_init);
+core_initcall(cpufreq_gov_performance_init);
 module_exit(cpufreq_gov_performance_exit);
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq_powersave.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq_powersave.c
@@ -43,7 +43,7 @@
 	return &cpufreq_gov_powersave;
 }
 
-fs_initcall(cpufreq_gov_powersave_init);
+core_initcall(cpufreq_gov_powersave_init);
 #else
 module_init(cpufreq_gov_powersave_init);
 #endif
--- linux-ein-5.4.0.orig/drivers/cpufreq/cpufreq_userspace.c
+++ linux-ein-5.4.0/drivers/cpufreq/cpufreq_userspace.c
@@ -147,7 +147,7 @@
 	return &cpufreq_gov_userspace;
 }
 
-fs_initcall(cpufreq_gov_userspace_init);
+core_initcall(cpufreq_gov_userspace_init);
 #else
 module_init(cpufreq_gov_userspace_init);
 #endif
--- linux-ein-5.4.0.orig/drivers/cpufreq/freq_table.c
+++ linux-ein-5.4.0/drivers/cpufreq/freq_table.c
@@ -60,7 +60,7 @@
 		return 0;
 }
 
-int cpufreq_frequency_table_verify(struct cpufreq_policy *policy,
+int cpufreq_frequency_table_verify(struct cpufreq_policy_data *policy,
 				   struct cpufreq_frequency_table *table)
 {
 	struct cpufreq_frequency_table *pos;
@@ -100,7 +100,7 @@
  * Generic routine to verify policy & frequency table, requires driver to set
  * policy->freq_table prior to it.
  */
-int cpufreq_generic_frequency_table_verify(struct cpufreq_policy *policy)
+int cpufreq_generic_frequency_table_verify(struct cpufreq_policy_data *policy)
 {
 	if (!policy->freq_table)
 		return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/cpufreq/gx-suspmod.c
+++ linux-ein-5.4.0/drivers/cpufreq/gx-suspmod.c
@@ -328,7 +328,7 @@
  *      for the hardware supported by the driver.
  */
 
-static int cpufreq_gx_verify(struct cpufreq_policy *policy)
+static int cpufreq_gx_verify(struct cpufreq_policy_data *policy)
 {
 	unsigned int tmp_freq = 0;
 	u8 tmp1, tmp2;
--- linux-ein-5.4.0.orig/drivers/cpufreq/highbank-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/highbank-cpufreq.c
@@ -101,6 +101,13 @@
 }
 module_init(hb_cpufreq_driver_init);
 
+static const struct of_device_id __maybe_unused hb_cpufreq_of_match[] = {
+	{ .compatible = "calxeda,highbank" },
+	{ .compatible = "calxeda,ecx-2000" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, hb_cpufreq_of_match);
+
 MODULE_AUTHOR("Mark Langsdorf <mark.langsdorf@calxeda.com>");
 MODULE_DESCRIPTION("Calxeda Highbank cpufreq driver");
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/cpufreq/imx-cpufreq-dt.c
+++ linux-ein-5.4.0/drivers/cpufreq/imx-cpufreq-dt.c
@@ -3,7 +3,9 @@
  * Copyright 2019 NXP
  */
 
+#include <linux/clk.h>
 #include <linux/cpu.h>
+#include <linux/cpufreq.h>
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
@@ -12,51 +14,139 @@
 #include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/pm_opp.h>
+#include <linux/regulator/consumer.h>
 #include <linux/slab.h>
 
+#include "cpufreq-dt.h"
+
 #define OCOTP_CFG3_SPEED_GRADE_SHIFT	8
 #define OCOTP_CFG3_SPEED_GRADE_MASK	(0x3 << 8)
 #define IMX8MN_OCOTP_CFG3_SPEED_GRADE_MASK	(0xf << 8)
 #define OCOTP_CFG3_MKT_SEGMENT_SHIFT    6
 #define OCOTP_CFG3_MKT_SEGMENT_MASK     (0x3 << 6)
+#define IMX8MP_OCOTP_CFG3_MKT_SEGMENT_SHIFT    5
+#define IMX8MP_OCOTP_CFG3_MKT_SEGMENT_MASK     (0x3 << 5)
+
+#define IMX7ULP_MAX_RUN_FREQ	528000
 
 /* cpufreq-dt device registered by imx-cpufreq-dt */
 static struct platform_device *cpufreq_dt_pdev;
 static struct opp_table *cpufreq_opp_table;
+static struct device *cpu_dev;
+
+enum IMX7ULP_CPUFREQ_CLKS {
+	ARM,
+	CORE,
+	SCS_SEL,
+	HSRUN_CORE,
+	HSRUN_SCS_SEL,
+	FIRC,
+};
+
+static struct clk_bulk_data imx7ulp_clks[] = {
+	{ .id = "arm" },
+	{ .id = "core" },
+	{ .id = "scs_sel" },
+	{ .id = "hsrun_core" },
+	{ .id = "hsrun_scs_sel" },
+	{ .id = "firc" },
+};
+
+static unsigned int imx7ulp_get_intermediate(struct cpufreq_policy *policy,
+					     unsigned int index)
+{
+	return clk_get_rate(imx7ulp_clks[FIRC].clk);
+}
+
+static int imx7ulp_target_intermediate(struct cpufreq_policy *policy,
+					unsigned int index)
+{
+	unsigned int newfreq = policy->freq_table[index].frequency;
+
+	clk_set_parent(imx7ulp_clks[SCS_SEL].clk, imx7ulp_clks[FIRC].clk);
+	clk_set_parent(imx7ulp_clks[HSRUN_SCS_SEL].clk, imx7ulp_clks[FIRC].clk);
+
+	if (newfreq > IMX7ULP_MAX_RUN_FREQ)
+		clk_set_parent(imx7ulp_clks[ARM].clk,
+			       imx7ulp_clks[HSRUN_CORE].clk);
+	else
+		clk_set_parent(imx7ulp_clks[ARM].clk, imx7ulp_clks[CORE].clk);
+
+	return 0;
+}
+
+static struct cpufreq_dt_platform_data imx7ulp_data = {
+	.target_intermediate = imx7ulp_target_intermediate,
+	.get_intermediate = imx7ulp_get_intermediate,
+};
 
 static int imx_cpufreq_dt_probe(struct platform_device *pdev)
 {
-	struct device *cpu_dev = get_cpu_device(0);
+	struct platform_device *dt_pdev;
 	u32 cell_value, supported_hw[2];
 	int speed_grade, mkt_segment;
 	int ret;
 
+	cpu_dev = get_cpu_device(0);
+
+	if (!of_find_property(cpu_dev->of_node, "cpu-supply", NULL))
+		return -ENODEV;
+
+	if (of_machine_is_compatible("fsl,imx7ulp")) {
+		ret = clk_bulk_get(cpu_dev, ARRAY_SIZE(imx7ulp_clks),
+				   imx7ulp_clks);
+		if (ret)
+			return ret;
+
+		dt_pdev = platform_device_register_data(NULL, "cpufreq-dt",
+							-1, &imx7ulp_data,
+							sizeof(imx7ulp_data));
+		if (IS_ERR(dt_pdev)) {
+			clk_bulk_put(ARRAY_SIZE(imx7ulp_clks), imx7ulp_clks);
+			ret = PTR_ERR(dt_pdev);
+			dev_err(&pdev->dev, "Failed to register cpufreq-dt: %d\n", ret);
+			return ret;
+		}
+
+		cpufreq_dt_pdev = dt_pdev;
+
+		return 0;
+	}
+
 	ret = nvmem_cell_read_u32(cpu_dev, "speed_grade", &cell_value);
 	if (ret)
 		return ret;
 
-	if (of_machine_is_compatible("fsl,imx8mn"))
+	if (of_machine_is_compatible("fsl,imx8mn") ||
+	    of_machine_is_compatible("fsl,imx8mp"))
 		speed_grade = (cell_value & IMX8MN_OCOTP_CFG3_SPEED_GRADE_MASK)
 			      >> OCOTP_CFG3_SPEED_GRADE_SHIFT;
 	else
 		speed_grade = (cell_value & OCOTP_CFG3_SPEED_GRADE_MASK)
 			      >> OCOTP_CFG3_SPEED_GRADE_SHIFT;
-	mkt_segment = (cell_value & OCOTP_CFG3_MKT_SEGMENT_MASK) >> OCOTP_CFG3_MKT_SEGMENT_SHIFT;
+
+	if (of_machine_is_compatible("fsl,imx8mp"))
+		mkt_segment = (cell_value & IMX8MP_OCOTP_CFG3_MKT_SEGMENT_MASK)
+			       >> IMX8MP_OCOTP_CFG3_MKT_SEGMENT_SHIFT;
+	else
+		mkt_segment = (cell_value & OCOTP_CFG3_MKT_SEGMENT_MASK)
+			       >> OCOTP_CFG3_MKT_SEGMENT_SHIFT;
 
 	/*
-	 * Early samples without fuses written report "0 0" which means
-	 * consumer segment and minimum speed grading.
-	 *
-	 * According to datasheet minimum speed grading is not supported for
-	 * consumer parts so clamp to 1 to avoid warning for "no OPPs"
+	 * Early samples without fuses written report "0 0" which may NOT
+	 * match any OPP defined in DT. So clamp to minimum OPP defined in
+	 * DT to avoid warning for "no OPPs".
 	 *
 	 * Applies to i.MX8M series SoCs.
 	 */
-	if (mkt_segment == 0 && speed_grade == 0 && (
-			of_machine_is_compatible("fsl,imx8mm") ||
-			of_machine_is_compatible("fsl,imx8mn") ||
-			of_machine_is_compatible("fsl,imx8mq")))
-		speed_grade = 1;
+	if (mkt_segment == 0 && speed_grade == 0) {
+		if (of_machine_is_compatible("fsl,imx8mm") ||
+		    of_machine_is_compatible("fsl,imx8mq"))
+			speed_grade = 1;
+		if (of_machine_is_compatible("fsl,imx8mn") ||
+		    of_machine_is_compatible("fsl,imx8mp"))
+			speed_grade = 0xb;
+	}
 
 	supported_hw[0] = BIT(speed_grade);
 	supported_hw[1] = BIT(mkt_segment);
@@ -85,7 +175,10 @@
 static int imx_cpufreq_dt_remove(struct platform_device *pdev)
 {
 	platform_device_unregister(cpufreq_dt_pdev);
-	dev_pm_opp_put_supported_hw(cpufreq_opp_table);
+	if (!of_machine_is_compatible("fsl,imx7ulp"))
+		dev_pm_opp_put_supported_hw(cpufreq_opp_table);
+	else
+		clk_bulk_put(ARRAY_SIZE(imx7ulp_clks), imx7ulp_clks);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/cpufreq/imx6q-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/imx6q-cpufreq.c
@@ -48,7 +48,6 @@
 };
 
 static struct device *cpu_dev;
-static bool free_opp;
 static struct cpufreq_frequency_table *freq_table;
 static unsigned int max_freq;
 static unsigned int transition_latency;
@@ -216,31 +215,41 @@
 #define OCOTP_CFG3_SPEED_996MHZ		0x2
 #define OCOTP_CFG3_SPEED_852MHZ		0x1
 
-static void imx6q_opp_check_speed_grading(struct device *dev)
+static int imx6q_opp_check_speed_grading(struct device *dev)
 {
 	struct device_node *np;
 	void __iomem *base;
 	u32 val;
+	int ret;
 
-	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-ocotp");
-	if (!np)
-		return;
-
-	base = of_iomap(np, 0);
-	if (!base) {
-		dev_err(dev, "failed to map ocotp\n");
-		goto put_node;
+	if (of_find_property(dev->of_node, "nvmem-cells", NULL)) {
+		ret = nvmem_cell_read_u32(dev, "speed_grade", &val);
+		if (ret)
+			return ret;
+	} else {
+		np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-ocotp");
+		if (!np)
+			return -ENOENT;
+
+		base = of_iomap(np, 0);
+		of_node_put(np);
+		if (!base) {
+			dev_err(dev, "failed to map ocotp\n");
+			return -EFAULT;
+		}
+
+		/*
+		 * SPEED_GRADING[1:0] defines the max speed of ARM:
+		 * 2b'11: 1200000000Hz;
+		 * 2b'10: 996000000Hz;
+		 * 2b'01: 852000000Hz; -- i.MX6Q Only, exclusive with 996MHz.
+		 * 2b'00: 792000000Hz;
+		 * We need to set the max speed of ARM according to fuse map.
+		 */
+		val = readl_relaxed(base + OCOTP_CFG3);
+		iounmap(base);
 	}
 
-	/*
-	 * SPEED_GRADING[1:0] defines the max speed of ARM:
-	 * 2b'11: 1200000000Hz;
-	 * 2b'10: 996000000Hz;
-	 * 2b'01: 852000000Hz; -- i.MX6Q Only, exclusive with 996MHz.
-	 * 2b'00: 792000000Hz;
-	 * We need to set the max speed of ARM according to fuse map.
-	 */
-	val = readl_relaxed(base + OCOTP_CFG3);
 	val >>= OCOTP_CFG3_SPEED_SHIFT;
 	val &= 0x3;
 
@@ -257,9 +266,8 @@
 			if (dev_pm_opp_disable(dev, 1200000000))
 				dev_warn(dev, "failed to disable 1.2GHz OPP\n");
 	}
-	iounmap(base);
-put_node:
-	of_node_put(np);
+
+	return 0;
 }
 
 #define OCOTP_CFG3_6UL_SPEED_696MHZ	0x2
@@ -281,6 +289,9 @@
 
 		np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-ocotp");
 		if (!np)
+			np = of_find_compatible_node(NULL, NULL,
+						     "fsl,imx6ull-ocotp");
+		if (!np)
 			return -ENOENT;
 
 		base = of_iomap(np, 0);
@@ -381,20 +392,16 @@
 	if (of_machine_is_compatible("fsl,imx6ul") ||
 	    of_machine_is_compatible("fsl,imx6ull")) {
 		ret = imx6ul_opp_check_speed_grading(cpu_dev);
-		if (ret) {
-			if (ret == -EPROBE_DEFER)
-				goto put_node;
-
+	} else {
+		ret = imx6q_opp_check_speed_grading(cpu_dev);
+	}
+	if (ret) {
+		if (ret != -EPROBE_DEFER)
 			dev_err(cpu_dev, "failed to read ocotp: %d\n",
 				ret);
-			goto put_node;
-		}
-	} else {
-		imx6q_opp_check_speed_grading(cpu_dev);
+		goto out_free_opp;
 	}
 
-	/* Because we have added the OPPs here, we must free them */
-	free_opp = true;
 	num = dev_pm_opp_get_opp_count(cpu_dev);
 	if (num < 0) {
 		ret = num;
@@ -496,8 +503,7 @@
 free_freq_table:
 	dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
 out_free_opp:
-	if (free_opp)
-		dev_pm_opp_of_remove_table(cpu_dev);
+	dev_pm_opp_of_remove_table(cpu_dev);
 put_reg:
 	if (!IS_ERR(arm_reg))
 		regulator_put(arm_reg);
@@ -517,8 +523,7 @@
 {
 	cpufreq_unregister_driver(&imx6q_cpufreq_driver);
 	dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
-	if (free_opp)
-		dev_pm_opp_of_remove_table(cpu_dev);
+	dev_pm_opp_of_remove_table(cpu_dev);
 	regulator_put(arm_reg);
 	if (!IS_ERR(pu_reg))
 		regulator_put(pu_reg);
--- linux-ein-5.4.0.orig/drivers/cpufreq/intel_pstate.c
+++ linux-ein-5.4.0/drivers/cpufreq/intel_pstate.c
@@ -442,20 +442,6 @@
 			 (u32) cpu->acpi_perf_data.states[i].control);
 	}
 
-	/*
-	 * The _PSS table doesn't contain whole turbo frequency range.
-	 * This just contains +1 MHZ above the max non turbo frequency,
-	 * with control value corresponding to max turbo ratio. But
-	 * when cpufreq set policy is called, it will call with this
-	 * max frequency, which will cause a reduced performance as
-	 * this driver uses real max turbo frequency as the max
-	 * frequency. So correct this frequency in _PSS table to
-	 * correct max turbo frequency based on the turbo state.
-	 * Also need to convert to MHz as _PSS freq is in MHz.
-	 */
-	if (!global.turbo_disabled)
-		cpu->acpi_perf_data.states[0].core_frequency =
-					policy->cpuinfo.max_freq / 1000;
 	cpu->valid_pss_table = true;
 	pr_debug("_PPC limits will be enforced\n");
 
@@ -649,11 +635,12 @@
 	mutex_lock(&intel_pstate_limits_lock);
 
 	if (boot_cpu_has(X86_FEATURE_HWP_EPP)) {
-		u64 value;
-
-		ret = rdmsrl_on_cpu(cpu_data->cpu, MSR_HWP_REQUEST, &value);
-		if (ret)
-			goto return_pref;
+		/*
+		 * Use the cached HWP Request MSR value, because the register
+		 * itself may be updated by intel_pstate_hwp_boost_up() or
+		 * intel_pstate_hwp_boost_down() at any time.
+		 */
+		u64 value = READ_ONCE(cpu_data->hwp_req_cached);
 
 		value &= ~GENMASK_ULL(31, 24);
 
@@ -661,13 +648,18 @@
 			epp = epp_values[pref_index - 1];
 
 		value |= (u64)epp << 24;
+		/*
+		 * The only other updater of hwp_req_cached in the active mode,
+		 * intel_pstate_hwp_set(), is called under the same lock as this
+		 * function, so it cannot run in parallel with the update below.
+		 */
+		WRITE_ONCE(cpu_data->hwp_req_cached, value);
 		ret = wrmsrl_on_cpu(cpu_data->cpu, MSR_HWP_REQUEST, value);
 	} else {
 		if (epp == -EINVAL)
 			epp = (pref_index - 1) << 2;
 		ret = intel_pstate_set_epb(cpu_data->cpu, epp);
 	}
-return_pref:
 	mutex_unlock(&intel_pstate_limits_lock);
 
 	return ret;
@@ -756,7 +748,7 @@
 
 	rdmsrl_on_cpu(cpu, MSR_HWP_CAPABILITIES, &cap);
 	WRITE_ONCE(all_cpu_data[cpu]->hwp_cap_cached, cap);
-	if (global.no_turbo)
+	if (global.no_turbo || global.turbo_disabled)
 		*current_max = HWP_GUARANTEED_PERF(cap);
 	else
 		*current_max = HWP_HIGHEST_PERF(cap);
@@ -1058,7 +1050,7 @@
 
 	update_turbo_state();
 	if (global.turbo_disabled) {
-		pr_warn("Turbo disabled by BIOS or unavailable on processor\n");
+		pr_notice_once("Turbo disabled by BIOS or unavailable on processor\n");
 		mutex_unlock(&intel_pstate_limits_lock);
 		mutex_unlock(&intel_pstate_driver_lock);
 		return -EPERM;
@@ -1560,20 +1552,22 @@
 static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
 {
 	cpu->pstate.min_pstate = pstate_funcs.get_min();
-	cpu->pstate.max_pstate = pstate_funcs.get_max();
 	cpu->pstate.max_pstate_physical = pstate_funcs.get_max_physical();
 	cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
 	cpu->pstate.scaling = pstate_funcs.get_scaling();
-	cpu->pstate.max_freq = cpu->pstate.max_pstate * cpu->pstate.scaling;
 
 	if (hwp_active && !hwp_mode_bdw) {
 		unsigned int phy_max, current_max;
 
 		intel_pstate_get_hwp_max(cpu->cpu, &phy_max, &current_max);
 		cpu->pstate.turbo_freq = phy_max * cpu->pstate.scaling;
+		cpu->pstate.turbo_pstate = phy_max;
+		cpu->pstate.max_pstate = HWP_GUARANTEED_PERF(READ_ONCE(cpu->hwp_cap_cached));
 	} else {
 		cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * cpu->pstate.scaling;
+		cpu->pstate.max_pstate = pstate_funcs.get_max();
 	}
+	cpu->pstate.max_freq = cpu->pstate.max_pstate * cpu->pstate.scaling;
 
 	if (pstate_funcs.get_aperf_mperf_shift)
 		cpu->aperf_mperf_shift = pstate_funcs.get_aperf_mperf_shift();
@@ -2036,8 +2030,9 @@
 			cpu->pstate.max_freq : cpu->pstate.turbo_freq;
 }
 
-static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy,
-					    struct cpudata *cpu)
+static void intel_pstate_update_perf_limits(struct cpudata *cpu,
+					    unsigned int policy_min,
+					    unsigned int policy_max)
 {
 	int max_freq = intel_pstate_get_max_freq(cpu);
 	int32_t max_policy_perf, min_policy_perf;
@@ -2056,18 +2051,17 @@
 		turbo_max = cpu->pstate.turbo_pstate;
 	}
 
-	max_policy_perf = max_state * policy->max / max_freq;
-	if (policy->max == policy->min) {
+	max_policy_perf = max_state * policy_max / max_freq;
+	if (policy_max == policy_min) {
 		min_policy_perf = max_policy_perf;
 	} else {
-		min_policy_perf = max_state * policy->min / max_freq;
+		min_policy_perf = max_state * policy_min / max_freq;
 		min_policy_perf = clamp_t(int32_t, min_policy_perf,
 					  0, max_policy_perf);
 	}
 
 	pr_debug("cpu:%d max_state %d min_policy_perf:%d max_policy_perf:%d\n",
-		 policy->cpu, max_state,
-		 min_policy_perf, max_policy_perf);
+		 cpu->cpu, max_state, min_policy_perf, max_policy_perf);
 
 	/* Normalize user input to [min_perf, max_perf] */
 	if (per_cpu_limits) {
@@ -2081,7 +2075,7 @@
 		global_min = DIV_ROUND_UP(turbo_max * global.min_perf_pct, 100);
 		global_min = clamp_t(int32_t, global_min, 0, global_max);
 
-		pr_debug("cpu:%d global_min:%d global_max:%d\n", policy->cpu,
+		pr_debug("cpu:%d global_min:%d global_max:%d\n", cpu->cpu,
 			 global_min, global_max);
 
 		cpu->min_perf_ratio = max(min_policy_perf, global_min);
@@ -2094,7 +2088,7 @@
 					  cpu->max_perf_ratio);
 
 	}
-	pr_debug("cpu:%d max_perf_ratio:%d min_perf_ratio:%d\n", policy->cpu,
+	pr_debug("cpu:%d max_perf_ratio:%d min_perf_ratio:%d\n", cpu->cpu,
 		 cpu->max_perf_ratio,
 		 cpu->min_perf_ratio);
 }
@@ -2114,7 +2108,7 @@
 
 	mutex_lock(&intel_pstate_limits_lock);
 
-	intel_pstate_update_perf_limits(policy, cpu);
+	intel_pstate_update_perf_limits(cpu, policy->min, policy->max);
 
 	if (cpu->policy == CPUFREQ_POLICY_PERFORMANCE) {
 		/*
@@ -2143,8 +2137,8 @@
 	return 0;
 }
 
-static void intel_pstate_adjust_policy_max(struct cpufreq_policy *policy,
-					 struct cpudata *cpu)
+static void intel_pstate_adjust_policy_max(struct cpudata *cpu,
+					   struct cpufreq_policy_data *policy)
 {
 	if (!hwp_active &&
 	    cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
@@ -2155,7 +2149,7 @@
 	}
 }
 
-static int intel_pstate_verify_policy(struct cpufreq_policy *policy)
+static int intel_pstate_verify_policy(struct cpufreq_policy_data *policy)
 {
 	struct cpudata *cpu = all_cpu_data[policy->cpu];
 
@@ -2163,11 +2157,7 @@
 	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
 				     intel_pstate_get_max_freq(cpu));
 
-	if (policy->policy != CPUFREQ_POLICY_POWERSAVE &&
-	    policy->policy != CPUFREQ_POLICY_PERFORMANCE)
-		return -EINVAL;
-
-	intel_pstate_adjust_policy_max(policy, cpu);
+	intel_pstate_adjust_policy_max(cpu, policy);
 
 	return 0;
 }
@@ -2268,7 +2258,7 @@
 	.name		= "intel_pstate",
 };
 
-static int intel_cpufreq_verify_policy(struct cpufreq_policy *policy)
+static int intel_cpufreq_verify_policy(struct cpufreq_policy_data *policy)
 {
 	struct cpudata *cpu = all_cpu_data[policy->cpu];
 
@@ -2276,9 +2266,9 @@
 	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
 				     intel_pstate_get_max_freq(cpu));
 
-	intel_pstate_adjust_policy_max(policy, cpu);
+	intel_pstate_adjust_policy_max(cpu, policy);
 
-	intel_pstate_update_perf_limits(policy, cpu);
+	intel_pstate_update_perf_limits(cpu, policy->min, policy->max);
 
 	return 0;
 }
@@ -2530,9 +2520,15 @@
 {
 	int ret;
 
-	if (size == 3 && !strncmp(buf, "off", size))
-		return intel_pstate_driver ?
-			intel_pstate_unregister_driver() : -EINVAL;
+	if (size == 3 && !strncmp(buf, "off", size)) {
+		if (!intel_pstate_driver)
+			return -EINVAL;
+
+		if (hwp_active)
+			return -EBUSY;
+
+		return intel_pstate_unregister_driver();
+	}
 
 	if (size == 6 && !strncmp(buf, "active", size)) {
 		if (intel_pstate_driver) {
--- linux-ein-5.4.0.orig/drivers/cpufreq/longrun.c
+++ linux-ein-5.4.0/drivers/cpufreq/longrun.c
@@ -122,7 +122,7 @@
  * Validates a new CPUFreq policy. This function has to be called with
  * cpufreq_driver locked.
  */
-static int longrun_verify_policy(struct cpufreq_policy *policy)
+static int longrun_verify_policy(struct cpufreq_policy_data *policy)
 {
 	if (!policy)
 		return -EINVAL;
@@ -130,10 +130,6 @@
 	policy->cpu = 0;
 	cpufreq_verify_within_cpu_limits(policy);
 
-	if ((policy->policy != CPUFREQ_POLICY_POWERSAVE) &&
-	    (policy->policy != CPUFREQ_POLICY_PERFORMANCE))
-		return -EINVAL;
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/cpufreq/loongson1-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/loongson1-cpufreq.c
@@ -216,6 +216,7 @@
 
 module_platform_driver(ls1x_cpufreq_platdrv);
 
+MODULE_ALIAS("platform:ls1x-cpufreq");
 MODULE_AUTHOR("Kelvin Cheung <keguang.zhang@gmail.com>");
 MODULE_DESCRIPTION("Loongson1 CPUFreq driver");
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/cpufreq/mediatek-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/mediatek-cpufreq.c
@@ -540,6 +540,7 @@
 
 	{ }
 };
+MODULE_DEVICE_TABLE(of, mtk_cpufreq_machines);
 
 static int __init mtk_cpufreq_driver_init(void)
 {
--- linux-ein-5.4.0.orig/drivers/cpufreq/pcc-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/pcc-cpufreq.c
@@ -109,7 +109,7 @@
 
 static struct pcc_cpu __percpu *pcc_cpu_info;
 
-static int pcc_cpufreq_verify(struct cpufreq_policy *policy)
+static int pcc_cpufreq_verify(struct cpufreq_policy_data *policy)
 {
 	cpufreq_verify_within_cpu_limits(policy);
 	return 0;
--- linux-ein-5.4.0.orig/drivers/cpufreq/pmac32-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/pmac32-cpufreq.c
@@ -471,6 +471,10 @@
 	if (slew_done_gpio_np)
 		slew_done_gpio = read_gpio(slew_done_gpio_np);
 
+	of_node_put(volt_gpio_np);
+	of_node_put(freq_gpio_np);
+	of_node_put(slew_done_gpio_np);
+
 	/* If we use the frequency GPIOs, calculate the min/max speeds based
 	 * on the bus frequencies
 	 */
--- linux-ein-5.4.0.orig/drivers/cpufreq/powernow-k8.c
+++ linux-ein-5.4.0/drivers/cpufreq/powernow-k8.c
@@ -878,9 +878,9 @@
 
 /* Take a frequency, and issue the fid/vid transition command */
 static int transition_frequency_fidvid(struct powernow_k8_data *data,
-		unsigned int index)
+		unsigned int index,
+		struct cpufreq_policy *policy)
 {
-	struct cpufreq_policy *policy;
 	u32 fid = 0;
 	u32 vid = 0;
 	int res;
@@ -912,9 +912,6 @@
 	freqs.old = find_khz_freq_from_fid(data->currfid);
 	freqs.new = find_khz_freq_from_fid(fid);
 
-	policy = cpufreq_cpu_get(smp_processor_id());
-	cpufreq_cpu_put(policy);
-
 	cpufreq_freq_transition_begin(policy, &freqs);
 	res = transition_fid_vid(data, fid, vid);
 	cpufreq_freq_transition_end(policy, &freqs, res);
@@ -969,7 +966,7 @@
 
 	powernow_k8_acpi_pst_values(data, newstate);
 
-	ret = transition_frequency_fidvid(data, newstate);
+	ret = transition_frequency_fidvid(data, newstate, pol);
 
 	if (ret) {
 		pr_err("transition frequency failed\n");
@@ -1104,7 +1101,8 @@
 
 	kfree(data->powernow_table);
 	kfree(data);
-	for_each_cpu(cpu, pol->cpus)
+	/* pol->cpus will be empty here, use related_cpus instead. */
+	for_each_cpu(cpu, pol->related_cpus)
 		per_cpu(powernow_data, cpu) = NULL;
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/cpufreq/powernv-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/powernv-cpufreq.c
@@ -36,6 +36,7 @@
 #define MAX_PSTATE_SHIFT	32
 #define LPSTATE_SHIFT		48
 #define GPSTATE_SHIFT		56
+#define MAX_NR_CHIPS		32
 
 #define MAX_RAMP_DOWN_TIME				5120
 /*
@@ -884,12 +885,15 @@
 				unsigned long action, void *unused)
 {
 	int cpu;
-	struct cpufreq_policy cpu_policy;
+	struct cpufreq_policy *cpu_policy;
 
 	rebooting = true;
 	for_each_online_cpu(cpu) {
-		cpufreq_get_policy(&cpu_policy, cpu);
-		powernv_cpufreq_target_index(&cpu_policy, get_nominal_index());
+		cpu_policy = cpufreq_cpu_get(cpu);
+		if (!cpu_policy)
+			continue;
+		powernv_cpufreq_target_index(cpu_policy, get_nominal_index());
+		cpufreq_cpu_put(cpu_policy);
 	}
 
 	return NOTIFY_DONE;
@@ -902,6 +906,7 @@
 void powernv_cpufreq_work_fn(struct work_struct *work)
 {
 	struct chip *chip = container_of(work, struct chip, throttle);
+	struct cpufreq_policy *policy;
 	unsigned int cpu;
 	cpumask_t mask;
 
@@ -916,12 +921,14 @@
 	chip->restore = false;
 	for_each_cpu(cpu, &mask) {
 		int index;
-		struct cpufreq_policy policy;
 
-		cpufreq_get_policy(&policy, cpu);
-		index = cpufreq_table_find_index_c(&policy, policy.cur);
-		powernv_cpufreq_target_index(&policy, index);
-		cpumask_andnot(&mask, &mask, policy.cpus);
+		policy = cpufreq_cpu_get(cpu);
+		if (!policy)
+			continue;
+		index = cpufreq_table_find_index_c(policy, policy->cur);
+		powernv_cpufreq_target_index(policy, index);
+		cpumask_andnot(&mask, &mask, policy->cpus);
+		cpufreq_cpu_put(policy);
 	}
 out:
 	put_online_cpus();
@@ -1041,9 +1048,22 @@
 
 static int init_chip_info(void)
 {
-	unsigned int chip[256];
+	unsigned int *chip;
 	unsigned int cpu, i;
 	unsigned int prev_chip_id = UINT_MAX;
+	cpumask_t *chip_cpu_mask;
+	int ret = 0;
+
+	chip = kcalloc(num_possible_cpus(), sizeof(*chip), GFP_KERNEL);
+	if (!chip)
+		return -ENOMEM;
+
+	/* Allocate a chip cpu mask large enough to fit mask for all chips */
+	chip_cpu_mask = kcalloc(MAX_NR_CHIPS, sizeof(cpumask_t), GFP_KERNEL);
+	if (!chip_cpu_mask) {
+		ret = -ENOMEM;
+		goto free_and_return;
+	}
 
 	for_each_possible_cpu(cpu) {
 		unsigned int id = cpu_to_chip_id(cpu);
@@ -1052,25 +1072,38 @@
 			prev_chip_id = id;
 			chip[nr_chips++] = id;
 		}
+		cpumask_set_cpu(cpu, &chip_cpu_mask[nr_chips-1]);
 	}
 
 	chips = kcalloc(nr_chips, sizeof(struct chip), GFP_KERNEL);
-	if (!chips)
-		return -ENOMEM;
+	if (!chips) {
+		ret = -ENOMEM;
+		goto out_free_chip_cpu_mask;
+	}
 
 	for (i = 0; i < nr_chips; i++) {
 		chips[i].id = chip[i];
-		cpumask_copy(&chips[i].mask, cpumask_of_node(chip[i]));
+		cpumask_copy(&chips[i].mask, &chip_cpu_mask[i]);
 		INIT_WORK(&chips[i].throttle, powernv_cpufreq_work_fn);
 		for_each_cpu(cpu, &chips[i].mask)
 			per_cpu(chip_info, cpu) =  &chips[i];
 	}
 
-	return 0;
+out_free_chip_cpu_mask:
+	kfree(chip_cpu_mask);
+free_and_return:
+	kfree(chip);
+	return ret;
 }
 
 static inline void clean_chip_info(void)
 {
+	int i;
+
+	/* flush any pending work items */
+	if (chips)
+		for (i = 0; i < nr_chips; i++)
+			cancel_work_sync(&chips[i].throttle);
 	kfree(chips);
 }
 
--- linux-ein-5.4.0.orig/drivers/cpufreq/qcom-cpufreq-nvmem.c
+++ linux-ein-5.4.0/drivers/cpufreq/qcom-cpufreq-nvmem.c
@@ -305,6 +305,7 @@
 	{ .compatible = "qcom,qcs404", .data = &match_data_qcs404 },
 	{},
 };
+MODULE_DEVICE_TABLE(of, qcom_cpufreq_match_list);
 
 /*
  * Since the driver depends on smem and nvmem drivers, which may
--- linux-ein-5.4.0.orig/drivers/cpufreq/scpi-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/scpi-cpufreq.c
@@ -239,6 +239,7 @@
 };
 module_platform_driver(scpi_cpufreq_platdrv);
 
+MODULE_ALIAS("platform:scpi-cpufreq");
 MODULE_AUTHOR("Sudeep Holla <sudeep.holla@arm.com>");
 MODULE_DESCRIPTION("ARM SCPI CPUFreq interface driver");
 MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/cpufreq/sh-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/sh-cpufreq.c
@@ -87,7 +87,7 @@
 	return work_on_cpu(policy->cpu, __sh_cpufreq_target, &data);
 }
 
-static int sh_cpufreq_verify(struct cpufreq_policy *policy)
+static int sh_cpufreq_verify(struct cpufreq_policy_data *policy)
 {
 	struct clk *cpuclk = &per_cpu(sh_cpuclk, policy->cpu);
 	struct cpufreq_frequency_table *freq_table;
--- linux-ein-5.4.0.orig/drivers/cpufreq/sti-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/sti-cpufreq.c
@@ -141,7 +141,8 @@
 static const struct reg_field *sti_cpufreq_match(void)
 {
 	if (of_machine_is_compatible("st,stih407") ||
-	    of_machine_is_compatible("st,stih410"))
+	    of_machine_is_compatible("st,stih410") ||
+	    of_machine_is_compatible("st,stih418"))
 		return sti_stih407_dvfs_regfields;
 
 	return NULL;
@@ -258,7 +259,8 @@
 	int ret;
 
 	if ((!of_machine_is_compatible("st,stih407")) &&
-		(!of_machine_is_compatible("st,stih410")))
+		(!of_machine_is_compatible("st,stih410")) &&
+		(!of_machine_is_compatible("st,stih418")))
 		return -ENODEV;
 
 	ddata.cpu = get_cpu_device(0);
@@ -290,6 +292,13 @@
 }
 module_init(sti_cpufreq_init);
 
+static const struct of_device_id __maybe_unused sti_cpufreq_of_match[] = {
+	{ .compatible = "st,stih407" },
+	{ .compatible = "st,stih410" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, sti_cpufreq_of_match);
+
 MODULE_DESCRIPTION("STMicroelectronics CPUFreq/OPP driver");
 MODULE_AUTHOR("Ajitpal Singh <ajitpal.singh@st.com>");
 MODULE_AUTHOR("Lee Jones <lee.jones@linaro.org>");
--- linux-ein-5.4.0.orig/drivers/cpufreq/sun50i-cpufreq-nvmem.c
+++ linux-ein-5.4.0/drivers/cpufreq/sun50i-cpufreq-nvmem.c
@@ -25,7 +25,7 @@
 static struct platform_device *cpufreq_dt_pdev, *sun50i_cpufreq_pdev;
 
 /**
- * sun50i_cpufreq_get_efuse() - Parse and return efuse value present on SoC
+ * sun50i_cpufreq_get_efuse() - Determine speed grade from efuse value
  * @versions: Set to the value parsed from efuse
  *
  * Returns 0 if success.
@@ -69,21 +69,16 @@
 		return PTR_ERR(speedbin);
 
 	efuse_value = (*speedbin >> NVMEM_SHIFT) & NVMEM_MASK;
-	switch (efuse_value) {
-	case 0b0001:
-		*versions = 1;
-		break;
-	case 0b0011:
-		*versions = 2;
-		break;
-	default:
-		/*
-		 * For other situations, we treat it as bin0.
-		 * This vf table can be run for any good cpu.
-		 */
+
+	/*
+	 * We treat unexpected efuse values as if the SoC was from
+	 * the slowest bin. Expected efuse values are 1-3, slowest
+	 * to fastest.
+	 */
+	if (efuse_value >= 1 && efuse_value <= 3)
+		*versions = efuse_value - 1;
+	else
 		*versions = 0;
-		break;
-	}
 
 	kfree(speedbin);
 	return 0;
@@ -103,8 +98,10 @@
 		return -ENOMEM;
 
 	ret = sun50i_cpufreq_get_efuse(&speed);
-	if (ret)
+	if (ret) {
+		kfree(opp_tables);
 		return ret;
+	}
 
 	snprintf(name, MAX_NAME_LEN, "speed%d", speed);
 
@@ -172,6 +169,7 @@
 	{ .compatible = "allwinner,sun50i-h6" },
 	{}
 };
+MODULE_DEVICE_TABLE(of, sun50i_cpufreq_match_list);
 
 static const struct of_device_id *sun50i_cpufreq_match_node(void)
 {
--- linux-ein-5.4.0.orig/drivers/cpufreq/unicore2-cpufreq.c
+++ linux-ein-5.4.0/drivers/cpufreq/unicore2-cpufreq.c
@@ -22,7 +22,7 @@
 /* make sure that only the "userspace" governor is run
  * -- anything else wouldn't make sense on this platform, anyway.
  */
-static int ucv2_verify_speed(struct cpufreq_policy *policy)
+static int ucv2_verify_speed(struct cpufreq_policy_data *policy)
 {
 	if (policy->cpu)
 		return -EINVAL;
--- linux-ein-5.4.0.orig/drivers/cpuidle/cpuidle-powernv.c
+++ linux-ein-5.4.0/drivers/cpuidle/cpuidle-powernv.c
@@ -56,13 +56,10 @@
 		return default_snooze_timeout;
 
 	for (i = index + 1; i < drv->state_count; i++) {
-		struct cpuidle_state *s = &drv->states[i];
-		struct cpuidle_state_usage *su = &dev->states_usage[i];
-
-		if (s->disabled || su->disable)
+		if (dev->states_usage[i].disable)
 			continue;
 
-		return s->target_residency * tb_ticks_per_usec;
+		return drv->states[i].target_residency * tb_ticks_per_usec;
 	}
 
 	return default_snooze_timeout;
--- linux-ein-5.4.0.orig/drivers/cpuidle/cpuidle.c
+++ linux-ein-5.4.0/drivers/cpuidle/cpuidle.c
@@ -84,12 +84,12 @@
 
 	for (i = 1; i < drv->state_count; i++) {
 		struct cpuidle_state *s = &drv->states[i];
-		struct cpuidle_state_usage *su = &dev->states_usage[i];
 
-		if (s->disabled || su->disable || s->exit_latency <= latency_req
-		    || s->exit_latency > max_latency
-		    || (s->flags & forbidden_flags)
-		    || (s2idle && !s->enter_s2idle))
+		if (dev->states_usage[i].disable ||
+		    s->exit_latency <= latency_req ||
+		    s->exit_latency > max_latency ||
+		    (s->flags & forbidden_flags) ||
+		    (s2idle && !s->enter_s2idle))
 			continue;
 
 		latency_req = s->exit_latency;
@@ -148,7 +148,8 @@
 	 */
 	stop_critical_timings();
 	drv->states[index].enter_s2idle(dev, drv, index);
-	WARN_ON(!irqs_disabled());
+	if (WARN_ON_ONCE(!irqs_disabled()))
+		local_irq_disable();
 	/*
 	 * timekeeping_resume() that will be called by tick_unfreeze() for the
 	 * first CPU executing it calls functions containing RCU read-side
@@ -265,8 +266,7 @@
 
 		if (diff < drv->states[entered_state].target_residency) {
 			for (i = entered_state - 1; i >= 0; i--) {
-				if (drv->states[i].disabled ||
-				    dev->states_usage[i].disable)
+				if (dev->states_usage[i].disable)
 					continue;
 
 				/* Shallower states are enabled, so update. */
@@ -275,8 +275,7 @@
 			}
 		} else if (diff > delay) {
 			for (i = entered_state + 1; i < drv->state_count; i++) {
-				if (drv->states[i].disabled ||
-				    dev->states_usage[i].disable)
+				if (dev->states_usage[i].disable)
 					continue;
 
 				/*
@@ -380,10 +379,11 @@
 
 	limit_ns = TICK_NSEC;
 	for (i = 1; i < drv->state_count; i++) {
-		if (drv->states[i].disabled || dev->states_usage[i].disable)
+		if (dev->states_usage[i].disable)
 			continue;
 
 		limit_ns = (u64)drv->states[i].target_residency * NSEC_PER_USEC;
+		break;
 	}
 
 	dev->poll_limit_ns = limit_ns;
@@ -567,12 +567,16 @@
  */
 static int __cpuidle_register_device(struct cpuidle_device *dev)
 {
-	int ret;
 	struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
+	int i, ret;
 
 	if (!try_module_get(drv->owner))
 		return -EINVAL;
 
+	for (i = 0; i < drv->state_count; i++)
+		if (drv->states[i].disabled)
+			dev->states_usage[i].disable |= CPUIDLE_STATE_DISABLED_BY_DRIVER;
+
 	per_cpu(cpuidle_devices, dev->cpu) = dev;
 	list_add(&dev->device_list, &cpuidle_detected_devices);
 
--- linux-ein-5.4.0.orig/drivers/cpuidle/driver.c
+++ linux-ein-5.4.0/drivers/cpuidle/driver.c
@@ -62,24 +62,23 @@
  * __cpuidle_set_driver - set per CPU driver variables for the given driver.
  * @drv: a valid pointer to a struct cpuidle_driver
  *
- * For each CPU in the driver's cpumask, unset the registered driver per CPU
- * to @drv.
- *
- * Returns 0 on success, -EBUSY if the CPUs have driver(s) already.
+ * Returns 0 on success, -EBUSY if any CPU in the cpumask have a driver
+ * different from drv already.
  */
 static inline int __cpuidle_set_driver(struct cpuidle_driver *drv)
 {
 	int cpu;
 
 	for_each_cpu(cpu, drv->cpumask) {
+		struct cpuidle_driver *old_drv;
 
-		if (__cpuidle_get_cpu_driver(cpu)) {
-			__cpuidle_unset_driver(drv);
+		old_drv = __cpuidle_get_cpu_driver(cpu);
+		if (old_drv && old_drv != drv)
 			return -EBUSY;
-		}
+	}
 
+	for_each_cpu(cpu, drv->cpumask)
 		per_cpu(cpuidle_drivers, cpu) = drv;
-	}
 
 	return 0;
 }
@@ -379,3 +378,31 @@
 
 	spin_unlock(&cpuidle_driver_lock);
 }
+
+/**
+ * cpuidle_driver_state_disabled - Disable or enable an idle state
+ * @drv: cpuidle driver owning the state
+ * @idx: State index
+ * @disable: Whether or not to disable the state
+ */
+void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, int idx,
+				 bool disable)
+{
+	unsigned int cpu;
+
+	mutex_lock(&cpuidle_lock);
+
+	for_each_cpu(cpu, drv->cpumask) {
+		struct cpuidle_device *dev = per_cpu(cpuidle_devices, cpu);
+
+		if (!dev)
+			continue;
+
+		if (disable)
+			dev->states_usage[idx].disable |= CPUIDLE_STATE_DISABLED_BY_DRIVER;
+		else
+			dev->states_usage[idx].disable &= ~CPUIDLE_STATE_DISABLED_BY_DRIVER;
+	}
+
+	mutex_unlock(&cpuidle_lock);
+}
--- linux-ein-5.4.0.orig/drivers/cpuidle/dt_idle_states.c
+++ linux-ein-5.4.0/drivers/cpuidle/dt_idle_states.c
@@ -224,6 +224,6 @@
 	 * also be 0 on platforms with missing DT idle states or legacy DT
 	 * configuration predating the DT idle states bindings.
 	 */
-	return i;
+	return state_idx - start_idx;
 }
 EXPORT_SYMBOL_GPL(dt_init_idle_driver);
--- linux-ein-5.4.0.orig/drivers/cpuidle/governors/ladder.c
+++ linux-ein-5.4.0/drivers/cpuidle/governors/ladder.c
@@ -84,7 +84,6 @@
 
 	/* consider promotion */
 	if (last_idx < drv->state_count - 1 &&
-	    !drv->states[last_idx + 1].disabled &&
 	    !dev->states_usage[last_idx + 1].disable &&
 	    last_residency > last_state->threshold.promotion_time &&
 	    drv->states[last_idx + 1].exit_latency <= latency_req) {
@@ -98,8 +97,7 @@
 
 	/* consider demotion */
 	if (last_idx > first_idx &&
-	    (drv->states[last_idx].disabled ||
-	    dev->states_usage[last_idx].disable ||
+	    (dev->states_usage[last_idx].disable ||
 	    drv->states[last_idx].exit_latency > latency_req)) {
 		int i;
 
--- linux-ein-5.4.0.orig/drivers/cpuidle/governors/menu.c
+++ linux-ein-5.4.0/drivers/cpuidle/governors/menu.c
@@ -298,7 +298,7 @@
 	if (unlikely(drv->state_count <= 1 || latency_req == 0) ||
 	    ((data->next_timer_us < drv->states[1].target_residency ||
 	      latency_req < drv->states[1].exit_latency) &&
-	     !drv->states[0].disabled && !dev->states_usage[0].disable)) {
+	     !dev->states_usage[0].disable)) {
 		/*
 		 * In this case state[0] will be used no matter what, so return
 		 * it right away and keep the tick running if state[0] is a
@@ -349,9 +349,8 @@
 	idx = -1;
 	for (i = 0; i < drv->state_count; i++) {
 		struct cpuidle_state *s = &drv->states[i];
-		struct cpuidle_state_usage *su = &dev->states_usage[i];
 
-		if (s->disabled || su->disable)
+		if (dev->states_usage[i].disable)
 			continue;
 
 		if (idx == -1)
@@ -422,8 +421,7 @@
 			 * tick, so try to correct that.
 			 */
 			for (i = idx - 1; i >= 0; i--) {
-				if (drv->states[i].disabled ||
-				    dev->states_usage[i].disable)
+				if (dev->states_usage[i].disable)
 					continue;
 
 				idx = i;
--- linux-ein-5.4.0.orig/drivers/cpuidle/governors/teo.c
+++ linux-ein-5.4.0/drivers/cpuidle/governors/teo.c
@@ -194,7 +194,7 @@
 	 * pattern detection.
 	 */
 	cpu_data->intervals[cpu_data->interval_idx++] = measured_us;
-	if (cpu_data->interval_idx > INTERVALS)
+	if (cpu_data->interval_idx >= INTERVALS)
 		cpu_data->interval_idx = 0;
 }
 
@@ -212,7 +212,7 @@
 	int i;
 
 	for (i = state_idx - 1; i >= 0; i--) {
-		if (drv->states[i].disabled || dev->states_usage[i].disable)
+		if (dev->states_usage[i].disable)
 			continue;
 
 		state_idx = i;
@@ -233,8 +233,8 @@
 {
 	struct teo_cpu *cpu_data = per_cpu_ptr(&teo_cpus, dev->cpu);
 	int latency_req = cpuidle_governor_latency_req(dev->cpu);
-	unsigned int duration_us, count;
-	int max_early_idx, constraint_idx, idx, i;
+	unsigned int duration_us, hits, misses, early_hits;
+	int max_early_idx, prev_max_early_idx, constraint_idx, idx, i;
 	ktime_t delta_tick;
 
 	if (dev->last_state_idx >= 0) {
@@ -247,34 +247,75 @@
 	cpu_data->sleep_length_ns = tick_nohz_get_sleep_length(&delta_tick);
 	duration_us = ktime_to_us(cpu_data->sleep_length_ns);
 
-	count = 0;
+	hits = 0;
+	misses = 0;
+	early_hits = 0;
 	max_early_idx = -1;
+	prev_max_early_idx = -1;
 	constraint_idx = drv->state_count;
 	idx = -1;
 
 	for (i = 0; i < drv->state_count; i++) {
 		struct cpuidle_state *s = &drv->states[i];
-		struct cpuidle_state_usage *su = &dev->states_usage[i];
 
-		if (s->disabled || su->disable) {
+		if (dev->states_usage[i].disable) {
 			/*
-			 * If the "early hits" metric of a disabled state is
-			 * greater than the current maximum, it should be taken
-			 * into account, because it would be a mistake to select
-			 * a deeper state with lower "early hits" metric.  The
-			 * index cannot be changed to point to it, however, so
-			 * just increase the max count alone and let the index
-			 * still point to a shallower idle state.
+			 * Ignore disabled states with target residencies beyond
+			 * the anticipated idle duration.
 			 */
-			if (max_early_idx >= 0 &&
-			    count < cpu_data->states[i].early_hits)
-				count = cpu_data->states[i].early_hits;
+			if (s->target_residency > duration_us)
+				continue;
+
+			/*
+			 * This state is disabled, so the range of idle duration
+			 * values corresponding to it is covered by the current
+			 * candidate state, but still the "hits" and "misses"
+			 * metrics of the disabled state need to be used to
+			 * decide whether or not the state covering the range in
+			 * question is good enough.
+			 */
+			hits = cpu_data->states[i].hits;
+			misses = cpu_data->states[i].misses;
+
+			if (early_hits >= cpu_data->states[i].early_hits ||
+			    idx < 0)
+				continue;
+
+			/*
+			 * If the current candidate state has been the one with
+			 * the maximum "early hits" metric so far, the "early
+			 * hits" metric of the disabled state replaces the
+			 * current "early hits" count to avoid selecting a
+			 * deeper state with lower "early hits" metric.
+			 */
+			if (max_early_idx == idx) {
+				early_hits = cpu_data->states[i].early_hits;
+				continue;
+			}
+
+			/*
+			 * The current candidate state is closer to the disabled
+			 * one than the current maximum "early hits" state, so
+			 * replace the latter with it, but in case the maximum
+			 * "early hits" state index has not been set so far,
+			 * check if the current candidate state is not too
+			 * shallow for that role.
+			 */
+			if (!(tick_nohz_tick_stopped() &&
+			      drv->states[idx].target_residency < TICK_USEC)) {
+				prev_max_early_idx = max_early_idx;
+				early_hits = cpu_data->states[i].early_hits;
+				max_early_idx = idx;
+			}
 
 			continue;
 		}
 
-		if (idx < 0)
+		if (idx < 0) {
 			idx = i; /* first enabled state */
+			hits = cpu_data->states[i].hits;
+			misses = cpu_data->states[i].misses;
+		}
 
 		if (s->target_residency > duration_us)
 			break;
@@ -283,11 +324,14 @@
 			constraint_idx = i;
 
 		idx = i;
+		hits = cpu_data->states[i].hits;
+		misses = cpu_data->states[i].misses;
 
-		if (count < cpu_data->states[i].early_hits &&
+		if (early_hits < cpu_data->states[i].early_hits &&
 		    !(tick_nohz_tick_stopped() &&
 		      drv->states[i].target_residency < TICK_USEC)) {
-			count = cpu_data->states[i].early_hits;
+			prev_max_early_idx = max_early_idx;
+			early_hits = cpu_data->states[i].early_hits;
 			max_early_idx = i;
 		}
 	}
@@ -300,10 +344,19 @@
 	 * "early hits" metric, but if that cannot be determined, just use the
 	 * state selected so far.
 	 */
-	if (cpu_data->states[idx].hits <= cpu_data->states[idx].misses &&
-	    max_early_idx >= 0) {
-		idx = max_early_idx;
-		duration_us = drv->states[idx].target_residency;
+	if (hits <= misses) {
+		/*
+		 * The current candidate state is not suitable, so take the one
+		 * whose "early hits" metric is the maximum for the range of
+		 * shallower states.
+		 */
+		if (idx == max_early_idx)
+			max_early_idx = prev_max_early_idx;
+
+		if (max_early_idx >= 0) {
+			idx = max_early_idx;
+			duration_us = drv->states[idx].target_residency;
+		}
 	}
 
 	/*
@@ -316,10 +369,9 @@
 	if (idx < 0) {
 		idx = 0; /* No states enabled. Must use 0. */
 	} else if (idx > 0) {
+		unsigned int count = 0;
 		u64 sum = 0;
 
-		count = 0;
-
 		/*
 		 * Count and sum the most recent idle duration values less than
 		 * the current expected idle duration value.
--- linux-ein-5.4.0.orig/drivers/cpuidle/sysfs.c
+++ linux-ein-5.4.0/drivers/cpuidle/sysfs.c
@@ -255,25 +255,6 @@
 	return sprintf(buf, "%u\n", state->_name);\
 }
 
-#define define_store_state_ull_function(_name) \
-static ssize_t store_state_##_name(struct cpuidle_state *state, \
-				   struct cpuidle_state_usage *state_usage, \
-				   const char *buf, size_t size)	\
-{ \
-	unsigned long long value; \
-	int err; \
-	if (!capable(CAP_SYS_ADMIN)) \
-		return -EPERM; \
-	err = kstrtoull(buf, 0, &value); \
-	if (err) \
-		return err; \
-	if (value) \
-		state_usage->_name = 1; \
-	else \
-		state_usage->_name = 0; \
-	return size; \
-}
-
 #define define_show_state_ull_function(_name) \
 static ssize_t show_state_##_name(struct cpuidle_state *state, \
 				  struct cpuidle_state_usage *state_usage, \
@@ -299,11 +280,39 @@
 define_show_state_ull_function(time)
 define_show_state_str_function(name)
 define_show_state_str_function(desc)
-define_show_state_ull_function(disable)
-define_store_state_ull_function(disable)
 define_show_state_ull_function(above)
 define_show_state_ull_function(below)
 
+static ssize_t show_state_disable(struct cpuidle_state *state,
+				  struct cpuidle_state_usage *state_usage,
+				  char *buf)
+{
+	return sprintf(buf, "%llu\n",
+		       state_usage->disable & CPUIDLE_STATE_DISABLED_BY_USER);
+}
+
+static ssize_t store_state_disable(struct cpuidle_state *state,
+				   struct cpuidle_state_usage *state_usage,
+				   const char *buf, size_t size)
+{
+	unsigned int value;
+	int err;
+
+	if (!capable(CAP_SYS_ADMIN))
+		return -EPERM;
+
+	err = kstrtouint(buf, 0, &value);
+	if (err)
+		return err;
+
+	if (value)
+		state_usage->disable |= CPUIDLE_STATE_DISABLED_BY_USER;
+	else
+		state_usage->disable &= ~CPUIDLE_STATE_DISABLED_BY_USER;
+
+	return size;
+}
+
 define_one_state_ro(name, show_state_name);
 define_one_state_ro(desc, show_state_desc);
 define_one_state_ro(latency, show_state_exit_latency);
@@ -480,6 +489,7 @@
 		ret = kobject_init_and_add(&kobj->kobj, &ktype_state_cpuidle,
 					   &kdev->kobj, "state%d", i);
 		if (ret) {
+			kobject_put(&kobj->kobj);
 			kfree(kobj);
 			goto error_state;
 		}
@@ -611,6 +621,7 @@
 	ret = kobject_init_and_add(&kdrv->kobj, &ktype_driver_cpuidle,
 				   &kdev->kobj, "driver");
 	if (ret) {
+		kobject_put(&kdrv->kobj);
 		kfree(kdrv);
 		return ret;
 	}
@@ -698,17 +709,18 @@
 	if (!kdev)
 		return -ENOMEM;
 	kdev->dev = dev;
-	dev->kobj_dev = kdev;
 
 	init_completion(&kdev->kobj_unregister);
 
 	error = kobject_init_and_add(&kdev->kobj, &ktype_cpuidle, &cpu_dev->kobj,
 				   "cpuidle");
 	if (error) {
+		kobject_put(&kdev->kobj);
 		kfree(kdev);
 		return error;
 	}
 
+	dev->kobj_dev = kdev;
 	kobject_uevent(&kdev->kobj, KOBJ_ADD);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/crypto/Kconfig
+++ linux-ein-5.4.0/drivers/crypto/Kconfig
@@ -287,6 +287,7 @@
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
 	select CRYPTO_HASH
+	select CRYPTO_LIB_DES
 	select HW_RANDOM
 	depends on FSL_SOC
 	help
@@ -332,6 +333,7 @@
 	depends on PPC && 4xx
 	select CRYPTO_HASH
 	select CRYPTO_AEAD
+	select CRYPTO_AES
 	select CRYPTO_LIB_AES
 	select CRYPTO_CCM
 	select CRYPTO_CTR
@@ -489,11 +491,9 @@
 endif # if CRYPTO_DEV_UX500
 
 config CRYPTO_DEV_ATMEL_AUTHENC
-	tristate "Support for Atmel IPSEC/SSL hw accelerator"
+	bool "Support for Atmel IPSEC/SSL hw accelerator"
 	depends on ARCH_AT91 || COMPILE_TEST
-	select CRYPTO_AUTHENC
-	select CRYPTO_DEV_ATMEL_AES
-	select CRYPTO_DEV_ATMEL_SHA
+	depends on CRYPTO_DEV_ATMEL_AES
 	help
 	  Some Atmel processors can combine the AES and SHA hw accelerators
 	  to enhance support of IPSEC/SSL.
@@ -506,6 +506,8 @@
 	select CRYPTO_AES
 	select CRYPTO_AEAD
 	select CRYPTO_BLKCIPHER
+	select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
+	select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
 	help
 	  Some Atmel processors have AES hw accelerator.
 	  Select this if you want to use the Atmel module for
@@ -542,6 +544,7 @@
 
 config CRYPTO_DEV_ATMEL_I2C
 	tristate
+	select BITREVERSE
 
 config CRYPTO_DEV_ATMEL_ECC
 	tristate "Support for Microchip / Atmel ECC hw accelerator"
@@ -737,7 +740,7 @@
 
 config CRYPTO_DEV_SAFEXCEL
 	tristate "Inside Secure's SafeXcel cryptographic engine driver"
-	depends on OF || PCI || COMPILE_TEST
+	depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
 	select CRYPTO_LIB_AES
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
--- linux-ein-5.4.0.orig/drivers/crypto/amcc/crypto4xx_core.c
+++ linux-ein-5.4.0/drivers/crypto/amcc/crypto4xx_core.c
@@ -365,12 +365,8 @@
 		dma_alloc_coherent(dev->core_dev->device,
 			PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD,
 			&dev->scatter_buffer_pa, GFP_ATOMIC);
-	if (!dev->scatter_buffer_va) {
-		dma_free_coherent(dev->core_dev->device,
-				  sizeof(struct ce_sd) * PPC4XX_NUM_SD,
-				  dev->sdr, dev->sdr_pa);
+	if (!dev->scatter_buffer_va)
 		return -ENOMEM;
-	}
 
 	for (i = 0; i < PPC4XX_NUM_SD; i++) {
 		dev->sdr[i].ptr = dev->scatter_buffer_pa +
@@ -525,7 +521,6 @@
 {
 	struct skcipher_request *req;
 	struct scatterlist *dst;
-	dma_addr_t addr;
 
 	req = skcipher_request_cast(pd_uinfo->async_req);
 
@@ -534,8 +529,8 @@
 					  req->cryptlen, req->dst);
 	} else {
 		dst = pd_uinfo->dest_va;
-		addr = dma_map_page(dev->core_dev->device, sg_page(dst),
-				    dst->offset, dst->length, DMA_FROM_DEVICE);
+		dma_unmap_page(dev->core_dev->device, pd->dest, dst->length,
+			       DMA_FROM_DEVICE);
 	}
 
 	if (pd_uinfo->sa_va->sa_command_0.bf.save_iv == SA_SAVE_IV) {
@@ -560,10 +555,9 @@
 	struct ahash_request *ahash_req;
 
 	ahash_req = ahash_request_cast(pd_uinfo->async_req);
-	ctx  = crypto_tfm_ctx(ahash_req->base.tfm);
+	ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(ahash_req));
 
-	crypto4xx_copy_digest_to_dst(ahash_req->result, pd_uinfo,
-				     crypto_tfm_ctx(ahash_req->base.tfm));
+	crypto4xx_copy_digest_to_dst(ahash_req->result, pd_uinfo, ctx);
 	crypto4xx_ret_sg_desc(dev, pd_uinfo);
 
 	if (pd_uinfo->state & PD_ENTRY_BUSY)
@@ -920,7 +914,7 @@
 	}
 
 	pd->pd_ctl.w = PD_CTL_HOST_READY |
-		((crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AHASH) |
+		((crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AHASH) ||
 		 (crypto_tfm_alg_type(req->tfm) == CRYPTO_ALG_TYPE_AEAD) ?
 			PD_CTL_HASH_FINAL : 0);
 	pd->pd_ctl_len.w = 0x00400000 | (assoclen + datalen);
--- linux-ein-5.4.0.orig/drivers/crypto/atmel-aes.c
+++ linux-ein-5.4.0/drivers/crypto/atmel-aes.c
@@ -88,7 +88,6 @@
 struct atmel_aes_caps {
 	bool			has_dualbuff;
 	bool			has_cfb64;
-	bool			has_ctr32;
 	bool			has_gcm;
 	bool			has_xts;
 	bool			has_authenc;
@@ -145,7 +144,7 @@
 	u32			key2[AES_KEYSIZE_256 / sizeof(u32)];
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 struct atmel_aes_authenc_ctx {
 	struct atmel_aes_base_ctx	base;
 	struct atmel_sha_authenc_ctx	*auth;
@@ -157,7 +156,7 @@
 	u32			lastc[AES_BLOCK_SIZE / sizeof(u32)];
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 struct atmel_aes_authenc_reqctx {
 	struct atmel_aes_reqctx	base;
 
@@ -486,13 +485,36 @@
 	return (dd->flags & AES_FLAGS_ENCRYPT);
 }
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 static void atmel_aes_authenc_complete(struct atmel_aes_dev *dd, int err);
 #endif
 
+static void atmel_aes_set_iv_as_last_ciphertext_block(struct atmel_aes_dev *dd)
+{
+	struct ablkcipher_request *req = ablkcipher_request_cast(dd->areq);
+	struct atmel_aes_reqctx *rctx = ablkcipher_request_ctx(req);
+	struct crypto_ablkcipher *ablkcipher = crypto_ablkcipher_reqtfm(req);
+	unsigned int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+
+	if (req->nbytes < ivsize)
+		return;
+
+	if (rctx->mode & AES_FLAGS_ENCRYPT) {
+		scatterwalk_map_and_copy(req->info, req->dst,
+					 req->nbytes - ivsize, ivsize, 0);
+	} else {
+		if (req->src == req->dst)
+			memcpy(req->info, rctx->lastc, ivsize);
+		else
+			scatterwalk_map_and_copy(req->info, req->src,
+						 req->nbytes - ivsize,
+						 ivsize, 0);
+	}
+}
+
 static inline int atmel_aes_complete(struct atmel_aes_dev *dd, int err)
 {
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (dd->ctx->is_aead)
 		atmel_aes_authenc_complete(dd, err);
 #endif
@@ -500,26 +522,8 @@
 	clk_disable(dd->iclk);
 	dd->flags &= ~AES_FLAGS_BUSY;
 
-	if (!dd->ctx->is_aead) {
-		struct ablkcipher_request *req =
-			ablkcipher_request_cast(dd->areq);
-		struct atmel_aes_reqctx *rctx = ablkcipher_request_ctx(req);
-		struct crypto_ablkcipher *ablkcipher =
-			crypto_ablkcipher_reqtfm(req);
-		int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
-
-		if (rctx->mode & AES_FLAGS_ENCRYPT) {
-			scatterwalk_map_and_copy(req->info, req->dst,
-				req->nbytes - ivsize, ivsize, 0);
-		} else {
-			if (req->src == req->dst) {
-				memcpy(req->info, rctx->lastc, ivsize);
-			} else {
-				scatterwalk_map_and_copy(req->info, req->src,
-					req->nbytes - ivsize, ivsize, 0);
-			}
-		}
-	}
+	if (!dd->ctx->is_aead)
+		atmel_aes_set_iv_as_last_ciphertext_block(dd);
 
 	if (dd->is_async)
 		dd->areq->complete(dd->areq, err);
@@ -1008,8 +1012,9 @@
 	struct atmel_aes_ctr_ctx *ctx = atmel_aes_ctr_ctx_cast(dd->ctx);
 	struct ablkcipher_request *req = ablkcipher_request_cast(dd->areq);
 	struct scatterlist *src, *dst;
-	u32 ctr, blocks;
 	size_t datalen;
+	u32 ctr;
+	u16 blocks, start, end;
 	bool use_dma, fragmented = false;
 
 	/* Check for transfer completion. */
@@ -1021,27 +1026,17 @@
 	datalen = req->nbytes - ctx->offset;
 	blocks = DIV_ROUND_UP(datalen, AES_BLOCK_SIZE);
 	ctr = be32_to_cpu(ctx->iv[3]);
-	if (dd->caps.has_ctr32) {
-		/* Check 32bit counter overflow. */
-		u32 start = ctr;
-		u32 end = start + blocks - 1;
-
-		if (end < start) {
-			ctr |= 0xffffffff;
-			datalen = AES_BLOCK_SIZE * -start;
-			fragmented = true;
-		}
-	} else {
-		/* Check 16bit counter overflow. */
-		u16 start = ctr & 0xffff;
-		u16 end = start + (u16)blocks - 1;
-
-		if (blocks >> 16 || end < start) {
-			ctr |= 0xffff;
-			datalen = AES_BLOCK_SIZE * (0x10000-start);
-			fragmented = true;
-		}
+
+	/* Check 16bit counter overflow. */
+	start = ctr & 0xffff;
+	end = start + blocks - 1;
+
+	if (blocks >> 16 || end < start) {
+		ctr |= 0xffff;
+		datalen = AES_BLOCK_SIZE * (0x10000 - start);
+		fragmented = true;
 	}
+
 	use_dma = (datalen >= ATMEL_AES_DMA_THRESHOLD);
 
 	/* Jump to offset. */
@@ -1125,10 +1120,12 @@
 	rctx->mode = mode;
 
 	if (!(mode & AES_FLAGS_ENCRYPT) && (req->src == req->dst)) {
-		int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
+		unsigned int ivsize = crypto_ablkcipher_ivsize(ablkcipher);
 
-		scatterwalk_map_and_copy(rctx->lastc, req->src,
-			(req->nbytes - ivsize), ivsize, 0);
+		if (req->nbytes >= ivsize)
+			scatterwalk_map_and_copy(rctx->lastc, req->src,
+						 req->nbytes - ivsize,
+						 ivsize, 0);
 	}
 
 	return atmel_aes_handle_queue(dd, &req->base);
@@ -1973,7 +1970,7 @@
 	}
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 /* authenc aead functions */
 
 static int atmel_aes_authenc_start(struct atmel_aes_dev *dd);
@@ -2460,7 +2457,7 @@
 {
 	int i;
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (dd->caps.has_authenc)
 		for (i = 0; i < ARRAY_SIZE(aes_authenc_algs); i++)
 			crypto_unregister_aead(&aes_authenc_algs[i]);
@@ -2507,7 +2504,7 @@
 			goto err_aes_xts_alg;
 	}
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (dd->caps.has_authenc) {
 		for (i = 0; i < ARRAY_SIZE(aes_authenc_algs); i++) {
 			err = crypto_register_aead(&aes_authenc_algs[i]);
@@ -2519,7 +2516,7 @@
 
 	return 0;
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	/* i = ARRAY_SIZE(aes_authenc_algs); */
 err_aes_authenc_alg:
 	for (j = 0; j < i; j++)
@@ -2543,7 +2540,6 @@
 {
 	dd->caps.has_dualbuff = 0;
 	dd->caps.has_cfb64 = 0;
-	dd->caps.has_ctr32 = 0;
 	dd->caps.has_gcm = 0;
 	dd->caps.has_xts = 0;
 	dd->caps.has_authenc = 0;
@@ -2554,7 +2550,6 @@
 	case 0x500:
 		dd->caps.has_dualbuff = 1;
 		dd->caps.has_cfb64 = 1;
-		dd->caps.has_ctr32 = 1;
 		dd->caps.has_gcm = 1;
 		dd->caps.has_xts = 1;
 		dd->caps.has_authenc = 1;
@@ -2563,7 +2558,6 @@
 	case 0x200:
 		dd->caps.has_dualbuff = 1;
 		dd->caps.has_cfb64 = 1;
-		dd->caps.has_ctr32 = 1;
 		dd->caps.has_gcm = 1;
 		dd->caps.max_burst_size = 4;
 		break;
@@ -2709,7 +2703,7 @@
 
 	atmel_aes_get_cap(aes_dd);
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 	if (aes_dd->caps.has_authenc && !atmel_sha_authenc_is_ready()) {
 		err = -EPROBE_DEFER;
 		goto iclk_unprepare;
--- linux-ein-5.4.0.orig/drivers/crypto/atmel-authenc.h
+++ linux-ein-5.4.0/drivers/crypto/atmel-authenc.h
@@ -12,7 +12,7 @@
 #ifndef __ATMEL_AUTHENC_H__
 #define __ATMEL_AUTHENC_H__
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 
 #include <crypto/authenc.h>
 #include <crypto/hash.h>
--- linux-ein-5.4.0.orig/drivers/crypto/atmel-sha.c
+++ linux-ein-5.4.0/drivers/crypto/atmel-sha.c
@@ -1918,12 +1918,7 @@
 {
 	struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm);
 
-	if (atmel_sha_hmac_key_set(&hmac->hkey, key, keylen)) {
-		crypto_ahash_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
-		return -EINVAL;
-	}
-
-	return 0;
+	return atmel_sha_hmac_key_set(&hmac->hkey, key, keylen);
 }
 
 static int atmel_sha_hmac_init(struct ahash_request *req)
@@ -2212,7 +2207,7 @@
 },
 };
 
-#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC
+#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC)
 /* authenc functions */
 
 static int atmel_sha_authenc_init2(struct atmel_sha_dev *dd);
--- linux-ein-5.4.0.orig/drivers/crypto/axis/artpec6_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/axis/artpec6_crypto.c
@@ -1251,7 +1251,7 @@
 
 	if (len != 16 && len != 24 && len != 32) {
 		crypto_aead_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
-		return -1;
+		return -EINVAL;
 	}
 
 	ctx->key_length = len;
--- linux-ein-5.4.0.orig/drivers/crypto/bcm/cipher.c
+++ linux-ein-5.4.0/drivers/crypto/bcm/cipher.c
@@ -41,7 +41,7 @@
 
 /* ================= Device Structure ================== */
 
-struct device_private iproc_priv;
+struct bcm_device_private iproc_priv;
 
 /* ==================== Parameters ===================== */
 
@@ -2937,7 +2937,6 @@
 
 	ctx->enckeylen = keylen;
 	ctx->authkeylen = 0;
-	memcpy(ctx->enckey, key, ctx->enckeylen);
 
 	switch (ctx->enckeylen) {
 	case AES_KEYSIZE_128:
@@ -2953,6 +2952,8 @@
 		goto badkey;
 	}
 
+	memcpy(ctx->enckey, key, ctx->enckeylen);
+
 	flow_log("  enckeylen:%u authkeylen:%u\n", ctx->enckeylen,
 		 ctx->authkeylen);
 	flow_dump("  enc: ", ctx->enckey, ctx->enckeylen);
@@ -3013,6 +3014,10 @@
 	struct iproc_ctx_s *ctx = crypto_aead_ctx(cipher);
 
 	flow_log("%s\n", __func__);
+
+	if (keylen < GCM_ESP_SALT_SIZE)
+		return -EINVAL;
+
 	ctx->salt_len = GCM_ESP_SALT_SIZE;
 	ctx->salt_offset = GCM_ESP_SALT_OFFSET;
 	memcpy(ctx->salt, key + keylen - GCM_ESP_SALT_SIZE, GCM_ESP_SALT_SIZE);
@@ -3041,6 +3046,10 @@
 	struct iproc_ctx_s *ctx = crypto_aead_ctx(cipher);
 
 	flow_log("%s\n", __func__);
+
+	if (keylen < GCM_ESP_SALT_SIZE)
+		return -EINVAL;
+
 	ctx->salt_len = GCM_ESP_SALT_SIZE;
 	ctx->salt_offset = GCM_ESP_SALT_OFFSET;
 	memcpy(ctx->salt, key + keylen - GCM_ESP_SALT_SIZE, GCM_ESP_SALT_SIZE);
@@ -3070,6 +3079,10 @@
 	struct iproc_ctx_s *ctx = crypto_aead_ctx(cipher);
 
 	flow_log("%s\n", __func__);
+
+	if (keylen < CCM_ESP_SALT_SIZE)
+		return -EINVAL;
+
 	ctx->salt_len = CCM_ESP_SALT_SIZE;
 	ctx->salt_offset = CCM_ESP_SALT_OFFSET;
 	memcpy(ctx->salt, key + keylen - CCM_ESP_SALT_SIZE, CCM_ESP_SALT_SIZE);
--- linux-ein-5.4.0.orig/drivers/crypto/bcm/cipher.h
+++ linux-ein-5.4.0/drivers/crypto/bcm/cipher.h
@@ -418,7 +418,7 @@
 	u32 num_chan;
 };
 
-struct device_private {
+struct bcm_device_private {
 	struct platform_device *pdev;
 
 	struct spu_hw spu;
@@ -465,6 +465,6 @@
 	struct mbox_chan **mbox;
 };
 
-extern struct device_private iproc_priv;
+extern struct bcm_device_private iproc_priv;
 
 #endif
--- linux-ein-5.4.0.orig/drivers/crypto/bcm/util.c
+++ linux-ein-5.4.0/drivers/crypto/bcm/util.c
@@ -348,7 +348,7 @@
 static ssize_t spu_debugfs_read(struct file *filp, char __user *ubuf,
 				size_t count, loff_t *offp)
 {
-	struct device_private *ipriv;
+	struct bcm_device_private *ipriv;
 	char *buf;
 	ssize_t ret, out_offset, out_count;
 	int i;
--- linux-ein-5.4.0.orig/drivers/crypto/caam/Kconfig
+++ linux-ein-5.4.0/drivers/crypto/caam/Kconfig
@@ -8,6 +8,17 @@
 config CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC
 	tristate
 
+config CRYPTO_DEV_FSL_CAAM_KEYBLOB_API_DESC
+	tristate
+
+config CRYPTO_DEV_FSL_CAAM_SECVIO
+	tristate "CAAM/SNVS Security Violation Handler (EXPERIMENTAL)"
+	depends on ARCH_MXC
+	help
+	  Enables installation of an interrupt handler with registrable
+          handler functions which can be specified to act on the consequences
+          of a security violation.
+
 config CRYPTO_DEV_FSL_CAAM
 	tristate "Freescale CAAM-Multicore platform driver backend"
 	depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE
@@ -112,6 +123,7 @@
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
 	select CRYPTO_DES
+	select CRYPTO_XTS
 	help
 	  Selecting this will use CAAM Queue Interface (QI) for sending
 	  & receiving crypto jobs to/from CAAM. This gives better performance
@@ -147,6 +159,67 @@
 	  Selecting this will register the SEC4 hardware rng to
 	  the hw_random API for suppying the kernel entropy pool.
 
+config CRYPTO_DEV_FSL_CAAM_TK_API
+	bool "Register tagged key cryptography implementations with Crypto API"
+	default y
+	select CRYPTO_DEV_FSL_CAAM_CRYPTO_API
+	select CRYPTO_DEV_FSL_CAAM_KEYBLOB_API_DESC
+	help
+	  Selecting this will register algorithms supporting tagged key and
+	  generate black keys and encapsulate them into black blobs.
+
+	  Tagged keys are black keys that contain metadata indicating what
+	  they are and how to handle them.
+	  CAAM protects data in a data structure called a Blob, which provides
+	  both confidentiality and integrity protection.
+
+config CRYPTO_DEV_FSL_CAAM_TK_API_TEST
+	tristate "CAAM keys and blobs test"
+	depends on CRYPTO_DEV_FSL_CAAM_TK_API
+	depends on m
+	help
+	  Test to exercise black key generation and blob encapsulation and
+	  decapsulation.
+
+config CRYPTO_DEV_FSL_CAAM_RNG_TEST
+	bool "Test caam rng"
+	depends on CRYPTO_DEV_FSL_CAAM_RNG_API
+	help
+	  Selecting this will enable a self-test to run for the
+	  caam RNG. This test is several minutes long and executes
+	  just before the RNG is registered with the hw_random API.
+
+config CRYPTO_DEV_FSL_CAAM_SM
+	bool "CAAM Secure Memory / Keystore API (EXPERIMENTAL)"
+	help
+	  Enables use of a prototype kernel-level Keystore API with CAAM
+	  Secure Memory for insertion/extraction of bus-protected secrets.
+
+config CRYPTO_DEV_FSL_CAAM_SM_SLOTSIZE
+	int "Size of each keystore slot in Secure Memory"
+	depends on CRYPTO_DEV_FSL_CAAM_SM
+	range 5 9
+	default 7
+	help
+	  Select size of allocation units to divide Secure Memory pages into
+	  (the size of a "slot" as referenced inside the API code).
+	  Established as powers of two.
+	  Examples:
+		5 => 32 bytes
+		6 => 64 bytes
+		7 => 128 bytes
+		8 => 256 bytes
+		9 => 512 bytes
+
+config CRYPTO_DEV_FSL_CAAM_SM_TEST
+	tristate "CAAM Secure Memory - Keystore Test/Example (EXPERIMENTAL)"
+	depends on CRYPTO_DEV_FSL_CAAM_SM
+	depends on m
+	help
+	  Example thread to exercise the Keystore API and to verify that
+	  stored and recovered secrets can be used for general purpose
+	  encryption/decryption.
+
 endif # CRYPTO_DEV_FSL_CAAM_JR
 
 endif # CRYPTO_DEV_FSL_CAAM
--- linux-ein-5.4.0.orig/drivers/crypto/caam/Makefile
+++ linux-ein-5.4.0/drivers/crypto/caam/Makefile
@@ -13,14 +13,20 @@
 obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_JR) += caam_jr.o
 obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC) += caamalg_desc.o
 obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC) += caamhash_desc.o
+obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_KEYBLOB_API_DESC) += caamkeyblob_desc.o
 
 caam-y := ctrl.o
 caam_jr-y := jr.o key_gen.o
+caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) += tag_object.o caamkeyblob.o caamkeygen.o
 caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API) += caamalg.o
 caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI) += caamalg_qi.o
 caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API) += caamhash.o
 caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API) += caamrng.o
 caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API) += caampkc.o pkc_desc.o
+caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_SM) += sm_store.o
+obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST) += sm_test.o
+obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO) += secvio.o
+obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API_TEST) += caamkeyblob_test.o
 
 caam-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI) += qi.o
 ifneq ($(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI),)
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamalg.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamalg.c
@@ -3,7 +3,7 @@
  * caam - Freescale FSL CAAM support for crypto API
  *
  * Copyright 2008-2011 Freescale Semiconductor, Inc.
- * Copyright 2016-2019 NXP
+ * Copyright 2016-2020 NXP
  *
  * Based on talitos crypto API driver.
  *
@@ -57,6 +57,10 @@
 #include "key_gen.h"
 #include "caamalg_desc.h"
 
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
+#include "tag_object.h"
+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
+
 /*
  * crypto alg
  */
@@ -83,6 +87,7 @@
 	bool rfc3686;
 	bool geniv;
 	bool nodkp;
+	bool support_tagged_key;
 };
 
 struct caam_aead_alg {
@@ -732,12 +737,19 @@
 	u32 *desc;
 	const bool is_rfc3686 = alg->caam.rfc3686;
 
-	print_hex_dump_debug("key in @"__stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, key, keylen, 1);
+	/*
+	 * If the algorithm has support for tagged key,
+	 * this is already set in tk_skcipher_setkey().
+	 * Otherwise, set here the algorithm details.
+	 */
+	if (!alg->caam.support_tagged_key) {
+		ctx->cdata.keylen = keylen;
+		ctx->cdata.key_virt = key;
+		ctx->cdata.key_inline = true;
+	}
 
-	ctx->cdata.keylen = keylen;
-	ctx->cdata.key_virt = key;
-	ctx->cdata.key_inline = true;
+	print_hex_dump_debug("key in @" __stringify(__LINE__) ": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, key, keylen, 1);
 
 	/* skcipher_encrypt shared descriptor */
 	desc = ctx->sh_desc_enc;
@@ -818,11 +830,64 @@
 	return skcipher_setkey(skcipher, key, keylen, ctx1_iv_off);
 }
 
-static int arc4_skcipher_setkey(struct crypto_skcipher *skcipher,
-				const u8 *key, unsigned int keylen)
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
+static int tk_skcipher_setkey(struct crypto_skcipher *skcipher,
+			      const u8 *key, unsigned int keylen)
 {
-	return skcipher_setkey(skcipher, key, keylen, 0);
+	struct caam_ctx *ctx = crypto_skcipher_ctx(skcipher);
+	struct device *jrdev = ctx->jrdev;
+	struct header_conf *header;
+	struct tagged_object *tag_obj;
+	int ret;
+
+	ctx->cdata.key_inline = true;
+
+	/* Check if one can retrieve the tag object header configuration */
+	if (keylen <= TAG_OVERHEAD_SIZE)
+		return -EINVAL;
+
+	/* Retrieve the tag object */
+	tag_obj = (struct tagged_object *)key;
+
+	/*
+	 * Check tag object header configuration
+	 * and retrieve the tag object header configuration
+	 */
+	if (is_valid_header_conf(&tag_obj->header)) {
+		header = &tag_obj->header;
+	} else {
+		dev_err(jrdev,
+			"unable to get tag object header configuration\n");
+		return -EINVAL;
+	}
+
+	/* Check if the tag object header is a black key */
+	if (!is_black_key(header)) {
+		dev_err(jrdev,
+			"tagged key provided is not a black key\n");
+		return -EINVAL;
+	}
+
+	/* Retrieve the black key configuration */
+	get_key_conf(header,
+		     &ctx->cdata.key_real_len,
+		     &ctx->cdata.keylen,
+		     &ctx->cdata.key_cmd_opt);
+
+	/* Retrieve the address of the data of the tagged object */
+	ctx->cdata.key_virt = &tag_obj->object;
+
+	/* Validate key length for AES algorithms */
+	ret = aes_check_keylen(ctx->cdata.key_real_len);
+	if (ret) {
+		crypto_skcipher_set_flags(skcipher,
+					  CRYPTO_TFM_RES_BAD_KEY_LEN);
+		return ret;
+	}
+
+	return skcipher_setkey(skcipher, NULL, 0, 0);
 }
+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
 
 static int des_skcipher_setkey(struct crypto_skcipher *skcipher,
 			       const u8 *key, unsigned int keylen)
@@ -1810,7 +1875,7 @@
 
 	if (ivsize || mapped_dst_nents > 1)
 		sg_to_sec4_set_last(edesc->sec4_sg + dst_sg_idx +
-				    mapped_dst_nents);
+				    mapped_dst_nents - 1 + !!ivsize);
 
 	if (sec4_sg_bytes) {
 		edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg,
@@ -1924,6 +1989,25 @@
 		},
 		.caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
 	},
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
+	{
+		.skcipher = {
+			.base = {
+				.cra_name = "tk(cbc(aes))",
+				.cra_driver_name = "tk-cbc-aes-caam",
+				.cra_blocksize = AES_BLOCK_SIZE,
+			},
+			.setkey = tk_skcipher_setkey,
+			.encrypt = skcipher_encrypt,
+			.decrypt = skcipher_decrypt,
+			.min_keysize = TAG_MIN_SIZE,
+			.max_keysize = CAAM_MAX_KEY_SIZE,
+			.ivsize = AES_BLOCK_SIZE,
+		},
+		.caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
+		.caam.support_tagged_key = true,
+	},
+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
 	{
 		.skcipher = {
 			.base = {
@@ -2043,35 +2127,38 @@
 		},
 		.caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_ECB,
 	},
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
 	{
 		.skcipher = {
 			.base = {
-				.cra_name = "ecb(des3_ede)",
-				.cra_driver_name = "ecb-des3-caam",
-				.cra_blocksize = DES3_EDE_BLOCK_SIZE,
+				.cra_name = "tk(ecb(aes))",
+				.cra_driver_name = "tk-ecb-aes-caam",
+				.cra_blocksize = AES_BLOCK_SIZE,
 			},
-			.setkey = des3_skcipher_setkey,
+			.setkey = tk_skcipher_setkey,
 			.encrypt = skcipher_encrypt,
 			.decrypt = skcipher_decrypt,
-			.min_keysize = DES3_EDE_KEY_SIZE,
-			.max_keysize = DES3_EDE_KEY_SIZE,
+			.min_keysize = TAG_MIN_SIZE,
+			.max_keysize = CAAM_MAX_KEY_SIZE,
 		},
-		.caam.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_ECB,
+		.caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_ECB,
+		.caam.support_tagged_key = true,
 	},
+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
 	{
 		.skcipher = {
 			.base = {
-				.cra_name = "ecb(arc4)",
-				.cra_driver_name = "ecb-arc4-caam",
-				.cra_blocksize = ARC4_BLOCK_SIZE,
+				.cra_name = "ecb(des3_ede)",
+				.cra_driver_name = "ecb-des3-caam",
+				.cra_blocksize = DES3_EDE_BLOCK_SIZE,
 			},
-			.setkey = arc4_skcipher_setkey,
+			.setkey = des3_skcipher_setkey,
 			.encrypt = skcipher_encrypt,
 			.decrypt = skcipher_decrypt,
-			.min_keysize = ARC4_MIN_KEY_SIZE,
-			.max_keysize = ARC4_MAX_KEY_SIZE,
+			.min_keysize = DES3_EDE_KEY_SIZE,
+			.max_keysize = DES3_EDE_KEY_SIZE,
 		},
-		.caam.class1_alg_type = OP_ALG_ALGSEL_ARC4 | OP_ALG_AAI_ECB,
+		.caam.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_ECB,
 	},
 };
 
@@ -3533,7 +3620,6 @@
 	struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
 	int i = 0, err = 0;
 	u32 aes_vid, aes_inst, des_inst, md_vid, md_inst, ccha_inst, ptha_inst;
-	u32 arc4_inst;
 	unsigned int md_limit = SHA512_DIGEST_SIZE;
 	bool registered = false, gcm_support;
 
@@ -3542,40 +3628,38 @@
 	 * First, detect presence and attributes of DES, AES, and MD blocks.
 	 */
 	if (priv->era < 10) {
+		struct caam_perfmon __iomem *perfmon = &priv->jr[0]->perfmon;
 		u32 cha_vid, cha_inst, aes_rn;
 
-		cha_vid = rd_reg32(&priv->ctrl->perfmon.cha_id_ls);
+		cha_vid = rd_reg32(&perfmon->cha_id_ls);
 		aes_vid = cha_vid & CHA_ID_LS_AES_MASK;
 		md_vid = (cha_vid & CHA_ID_LS_MD_MASK) >> CHA_ID_LS_MD_SHIFT;
 
-		cha_inst = rd_reg32(&priv->ctrl->perfmon.cha_num_ls);
+		cha_inst = rd_reg32(&perfmon->cha_num_ls);
 		des_inst = (cha_inst & CHA_ID_LS_DES_MASK) >>
 			   CHA_ID_LS_DES_SHIFT;
 		aes_inst = cha_inst & CHA_ID_LS_AES_MASK;
 		md_inst = (cha_inst & CHA_ID_LS_MD_MASK) >> CHA_ID_LS_MD_SHIFT;
-		arc4_inst = (cha_inst & CHA_ID_LS_ARC4_MASK) >>
-			    CHA_ID_LS_ARC4_SHIFT;
 		ccha_inst = 0;
 		ptha_inst = 0;
 
-		aes_rn = rd_reg32(&priv->ctrl->perfmon.cha_rev_ls) &
-			 CHA_ID_LS_AES_MASK;
+		aes_rn = rd_reg32(&perfmon->cha_rev_ls) & CHA_ID_LS_AES_MASK;
 		gcm_support = !(aes_vid == CHA_VER_VID_AES_LP && aes_rn < 8);
 	} else {
+		struct version_regs __iomem *vreg = &priv->jr[0]->vreg;
 		u32 aesa, mdha;
 
-		aesa = rd_reg32(&priv->ctrl->vreg.aesa);
-		mdha = rd_reg32(&priv->ctrl->vreg.mdha);
+		aesa = rd_reg32(&vreg->aesa);
+		mdha = rd_reg32(&vreg->mdha);
 
 		aes_vid = (aesa & CHA_VER_VID_MASK) >> CHA_VER_VID_SHIFT;
 		md_vid = (mdha & CHA_VER_VID_MASK) >> CHA_VER_VID_SHIFT;
 
-		des_inst = rd_reg32(&priv->ctrl->vreg.desa) & CHA_VER_NUM_MASK;
+		des_inst = rd_reg32(&vreg->desa) & CHA_VER_NUM_MASK;
 		aes_inst = aesa & CHA_VER_NUM_MASK;
 		md_inst = mdha & CHA_VER_NUM_MASK;
-		ccha_inst = rd_reg32(&priv->ctrl->vreg.ccha) & CHA_VER_NUM_MASK;
-		ptha_inst = rd_reg32(&priv->ctrl->vreg.ptha) & CHA_VER_NUM_MASK;
-		arc4_inst = rd_reg32(&priv->ctrl->vreg.afha) & CHA_VER_NUM_MASK;
+		ccha_inst = rd_reg32(&vreg->ccha) & CHA_VER_NUM_MASK;
+		ptha_inst = rd_reg32(&vreg->ptha) & CHA_VER_NUM_MASK;
 
 		gcm_support = aesa & CHA_VER_MISC_AES_GCM;
 	}
@@ -3598,10 +3682,6 @@
 		if (!aes_inst && (alg_sel == OP_ALG_ALGSEL_AES))
 				continue;
 
-		/* Skip ARC4 algorithms if not supported by device */
-		if (!arc4_inst && alg_sel == OP_ALG_ALGSEL_ARC4)
-			continue;
-
 		/*
 		 * Check support for AES modes not available
 		 * on LP devices.
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamalg_desc.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamalg_desc.c
@@ -1379,6 +1379,9 @@
 				const u32 ctx1_iv_off)
 {
 	u32 *key_jump_cmd;
+	u32 options = cdata->algtype | OP_ALG_AS_INIT | OP_ALG_ENCRYPT;
+	bool is_chacha20 = ((cdata->algtype & OP_ALG_ALGSEL_MASK) ==
+			    OP_ALG_ALGSEL_CHACHA20);
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
 	/* Skip if already shared */
@@ -1386,8 +1389,18 @@
 				   JUMP_COND_SHRD);
 
 	/* Load class1 key only */
-	append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-			  cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
+	if (IS_ENABLED(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) &&
+	    cdata->key_cmd_opt)
+		/*
+		 * Black keys can be loaded using only a KEY command
+		 * with ENC=1 and the proper setting of the EKT bit.
+		 */
+		append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
+				  cdata->key_real_len, CLASS_1 |
+				  KEY_DEST_CLASS_REG | cdata->key_cmd_opt);
+	else
+		append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
+				  cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
 
 	/* Load nonce into CONTEXT1 reg */
 	if (is_rfc3686) {
@@ -1417,14 +1430,15 @@
 				      LDST_OFFSET_SHIFT));
 
 	/* Load operation */
-	append_operation(desc, cdata->algtype | OP_ALG_AS_INIT |
-			 OP_ALG_ENCRYPT);
+	if (is_chacha20)
+		options |= OP_ALG_AS_FINALIZE;
+	append_operation(desc, options);
 
 	/* Perform operation */
 	skcipher_append_src_dst(desc);
 
 	/* Store IV */
-	if (ivsize)
+	if (!is_chacha20 && ivsize)
 		append_seq_store(desc, ivsize, LDST_SRCDST_BYTE_CONTEXT |
 				 LDST_CLASS_1_CCB | (ctx1_iv_off <<
 				 LDST_OFFSET_SHIFT));
@@ -1451,6 +1465,8 @@
 				const u32 ctx1_iv_off)
 {
 	u32 *key_jump_cmd;
+	bool is_chacha20 = ((cdata->algtype & OP_ALG_ALGSEL_MASK) ==
+			    OP_ALG_ALGSEL_CHACHA20);
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
 	/* Skip if already shared */
@@ -1458,8 +1474,18 @@
 				   JUMP_COND_SHRD);
 
 	/* Load class1 key only */
-	append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-			  cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
+	if (IS_ENABLED(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) &&
+	    cdata->key_cmd_opt)
+		/*
+		 * Black keys can be loaded using only a KEY command
+		 * with ENC=1 and the proper setting of the EKT bit.
+		 */
+		append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
+				  cdata->key_real_len, CLASS_1 |
+				  KEY_DEST_CLASS_REG | cdata->key_cmd_opt);
+	else
+		append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
+				  cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
 
 	/* Load nonce into CONTEXT1 reg */
 	if (is_rfc3686) {
@@ -1499,7 +1525,7 @@
 	skcipher_append_src_dst(desc);
 
 	/* Store IV */
-	if (ivsize)
+	if (!is_chacha20 && ivsize)
 		append_seq_store(desc, ivsize, LDST_SRCDST_BYTE_CONTEXT |
 				 LDST_CLASS_1_CCB | (ctx1_iv_off <<
 				 LDST_OFFSET_SHIFT));
@@ -1518,7 +1544,13 @@
  */
 void cnstr_shdsc_xts_skcipher_encap(u32 * const desc, struct alginfo *cdata)
 {
-	__be64 sector_size = cpu_to_be64(512);
+	/*
+	 * Set sector size to a big value, practically disabling
+	 * sector size segmentation in xts implementation. We cannot
+	 * take full advantage of this HW feature with existing
+	 * crypto API / dm-crypt SW architecture.
+	 */
+	__be64 sector_size = cpu_to_be64(BIT(15));
 	u32 *key_jump_cmd;
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
@@ -1571,7 +1603,13 @@
  */
 void cnstr_shdsc_xts_skcipher_decap(u32 * const desc, struct alginfo *cdata)
 {
-	__be64 sector_size = cpu_to_be64(512);
+	/*
+	 * Set sector size to a big value, practically disabling
+	 * sector size segmentation in xts implementation. We cannot
+	 * take full advantage of this HW feature with existing
+	 * crypto API / dm-crypt SW architecture.
+	 */
+	__be64 sector_size = cpu_to_be64(BIT(15));
 	u32 *key_jump_cmd;
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamalg_qi.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamalg_qi.c
@@ -18,6 +18,7 @@
 #include "qi.h"
 #include "jr.h"
 #include "caamalg_desc.h"
+#include <asm/unaligned.h>
 
 /*
  * crypto alg
@@ -67,6 +68,11 @@
 	struct device *qidev;
 	spinlock_t lock;	/* Protects multiple init of driver context */
 	struct caam_drv_ctx *drv_ctx[NUM_OP];
+	struct crypto_skcipher *fallback;
+};
+
+struct caam_skcipher_req_ctx {
+	struct skcipher_request fallback_req;
 };
 
 static int aead_set_sh_desc(struct crypto_aead *aead)
@@ -745,12 +751,17 @@
 	struct caam_ctx *ctx = crypto_skcipher_ctx(skcipher);
 	struct device *jrdev = ctx->jrdev;
 	int ret = 0;
+	int err;
 
 	if (keylen != 2 * AES_MIN_KEY_SIZE  && keylen != 2 * AES_MAX_KEY_SIZE) {
 		dev_err(jrdev, "key size mismatch\n");
 		goto badkey;
 	}
 
+	err = crypto_skcipher_setkey(ctx->fallback, key, keylen);
+	if (err)
+		return err;
+
 	ctx->cdata.keylen = keylen;
 	ctx->cdata.key_virt = key;
 	ctx->cdata.key_inline = true;
@@ -1395,6 +1406,14 @@
 	return edesc;
 }
 
+static inline bool xts_skcipher_ivsize(struct skcipher_request *req)
+{
+	struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
+	unsigned int ivsize = crypto_skcipher_ivsize(skcipher);
+
+	return !!get_unaligned((u64 *)(req->iv + (ivsize / 2)));
+}
+
 static inline int skcipher_crypt(struct skcipher_request *req, bool encrypt)
 {
 	struct skcipher_edesc *edesc;
@@ -1405,6 +1424,21 @@
 	if (!req->cryptlen)
 		return 0;
 
+	if (ctx->fallback && xts_skcipher_ivsize(req)) {
+		struct caam_skcipher_req_ctx *rctx = skcipher_request_ctx(req);
+
+		skcipher_request_set_tfm(&rctx->fallback_req, ctx->fallback);
+		skcipher_request_set_callback(&rctx->fallback_req,
+					      req->base.flags,
+					      req->base.complete,
+					      req->base.data);
+		skcipher_request_set_crypt(&rctx->fallback_req, req->src,
+					   req->dst, req->cryptlen, req->iv);
+
+		return encrypt ? crypto_skcipher_encrypt(&rctx->fallback_req) :
+				 crypto_skcipher_decrypt(&rctx->fallback_req);
+	}
+
 	if (unlikely(caam_congested))
 		return -EAGAIN;
 
@@ -1529,6 +1563,7 @@
 			.base = {
 				.cra_name = "xts(aes)",
 				.cra_driver_name = "xts-aes-caam-qi",
+				.cra_flags = CRYPTO_ALG_NEED_FALLBACK,
 				.cra_blocksize = AES_BLOCK_SIZE,
 			},
 			.setkey = xts_skcipher_setkey,
@@ -2462,9 +2497,32 @@
 	struct skcipher_alg *alg = crypto_skcipher_alg(tfm);
 	struct caam_skcipher_alg *caam_alg =
 		container_of(alg, typeof(*caam_alg), skcipher);
+	struct caam_ctx *ctx = crypto_skcipher_ctx(tfm);
+	u32 alg_aai = caam_alg->caam.class1_alg_type & OP_ALG_AAI_MASK;
+	int ret = 0;
+
+	if (alg_aai == OP_ALG_AAI_XTS) {
+		const char *tfm_name = crypto_tfm_alg_name(&tfm->base);
+		struct crypto_skcipher *fallback;
+
+		fallback = crypto_alloc_skcipher(tfm_name, 0,
+						 CRYPTO_ALG_NEED_FALLBACK);
+		if (IS_ERR(fallback)) {
+			dev_err(ctx->jrdev, "Failed to allocate %s fallback: %ld\n",
+				tfm_name, PTR_ERR(fallback));
+			return PTR_ERR(fallback);
+		}
+
+		ctx->fallback = fallback;
+		crypto_skcipher_set_reqsize(tfm, sizeof(struct caam_skcipher_req_ctx) +
+					    crypto_skcipher_reqsize(fallback));
+	}
+
+	ret = caam_init_common(ctx, &caam_alg->caam, false);
+	if (ret && ctx->fallback)
+		crypto_free_skcipher(ctx->fallback);
 
-	return caam_init_common(crypto_skcipher_ctx(tfm), &caam_alg->caam,
-				false);
+	return ret;
 }
 
 static int caam_aead_init(struct crypto_aead *tfm)
@@ -2490,7 +2548,11 @@
 
 static void caam_cra_exit(struct crypto_skcipher *tfm)
 {
-	caam_exit_common(crypto_skcipher_ctx(tfm));
+	struct caam_ctx *ctx = crypto_skcipher_ctx(tfm);
+
+	if (ctx->fallback)
+		crypto_free_skcipher(ctx->fallback);
+	caam_exit_common(ctx);
 }
 
 static void caam_aead_exit(struct crypto_aead *tfm)
@@ -2524,7 +2586,7 @@
 	alg->base.cra_module = THIS_MODULE;
 	alg->base.cra_priority = CAAM_CRA_PRIORITY;
 	alg->base.cra_ctxsize = sizeof(struct caam_ctx);
-	alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
+	alg->base.cra_flags |= CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
 
 	alg->init = caam_cra_init;
 	alg->exit = caam_cra_exit;
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamalg_qi2.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamalg_qi2.c
@@ -2481,7 +2481,7 @@
 				.cra_name = "echainiv(authenc(hmac(sha256),"
 					    "cbc(des)))",
 				.cra_driver_name = "echainiv-authenc-"
-						   "hmac-sha256-cbc-desi-"
+						   "hmac-sha256-cbc-des-"
 						   "caam-qi2",
 				.cra_blocksize = DES_BLOCK_SIZE,
 			},
@@ -2998,15 +2998,13 @@
 	dma_addr_t buf_dma;
 	dma_addr_t ctx_dma;
 	int ctx_dma_len;
-	u8 buf_0[CAAM_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned;
-	int buflen_0;
-	u8 buf_1[CAAM_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned;
-	int buflen_1;
+	u8 buf[CAAM_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned;
+	int buflen;
+	int next_buflen;
 	u8 caam_ctx[MAX_CTX_LEN] ____cacheline_aligned;
 	int (*update)(struct ahash_request *req);
 	int (*final)(struct ahash_request *req);
 	int (*finup)(struct ahash_request *req);
-	int current_buf;
 };
 
 struct caam_export_state {
@@ -3018,42 +3016,17 @@
 	int (*finup)(struct ahash_request *req);
 };
 
-static inline void switch_buf(struct caam_hash_state *state)
-{
-	state->current_buf ^= 1;
-}
-
-static inline u8 *current_buf(struct caam_hash_state *state)
-{
-	return state->current_buf ? state->buf_1 : state->buf_0;
-}
-
-static inline u8 *alt_buf(struct caam_hash_state *state)
-{
-	return state->current_buf ? state->buf_0 : state->buf_1;
-}
-
-static inline int *current_buflen(struct caam_hash_state *state)
-{
-	return state->current_buf ? &state->buflen_1 : &state->buflen_0;
-}
-
-static inline int *alt_buflen(struct caam_hash_state *state)
-{
-	return state->current_buf ? &state->buflen_0 : &state->buflen_1;
-}
-
 /* Map current buffer in state (if length > 0) and put it in link table */
 static inline int buf_map_to_qm_sg(struct device *dev,
 				   struct dpaa2_sg_entry *qm_sg,
 				   struct caam_hash_state *state)
 {
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 
 	if (!buflen)
 		return 0;
 
-	state->buf_dma = dma_map_single(dev, current_buf(state), buflen,
+	state->buf_dma = dma_map_single(dev, state->buf, buflen,
 					DMA_TO_DEVICE);
 	if (dma_mapping_error(dev, state->buf_dma)) {
 		dev_err(dev, "unable to map buf\n");
@@ -3321,7 +3294,7 @@
 				 DMA_TO_DEVICE);
 
 	if (state->buf_dma) {
-		dma_unmap_single(dev, state->buf_dma, *current_buflen(state),
+		dma_unmap_single(dev, state->buf_dma, state->buflen,
 				 DMA_TO_DEVICE);
 		state->buf_dma = 0;
 	}
@@ -3383,9 +3356,17 @@
 		ecode = caam_qi2_strstatus(ctx->dev, status);
 
 	ahash_unmap_ctx(ctx->dev, edesc, req, DMA_BIDIRECTIONAL);
-	switch_buf(state);
 	qi_cache_free(edesc);
 
+	scatterwalk_map_and_copy(state->buf, req->src,
+				 req->nbytes - state->next_buflen,
+				 state->next_buflen, 0);
+	state->buflen = state->next_buflen;
+
+	print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, state->buf,
+			     state->buflen, 1);
+
 	print_hex_dump_debug("ctx@" __stringify(__LINE__)": ",
 			     DUMP_PREFIX_ADDRESS, 16, 4, state->caam_ctx,
 			     ctx->ctx_len, 1);
@@ -3440,9 +3421,17 @@
 		ecode = caam_qi2_strstatus(ctx->dev, status);
 
 	ahash_unmap_ctx(ctx->dev, edesc, req, DMA_FROM_DEVICE);
-	switch_buf(state);
 	qi_cache_free(edesc);
 
+	scatterwalk_map_and_copy(state->buf, req->src,
+				 req->nbytes - state->next_buflen,
+				 state->next_buflen, 0);
+	state->buflen = state->next_buflen;
+
+	print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, state->buf,
+			     state->buflen, 1);
+
 	print_hex_dump_debug("ctx@" __stringify(__LINE__)": ",
 			     DUMP_PREFIX_ADDRESS, 16, 4, state->caam_ctx,
 			     ctx->ctx_len, 1);
@@ -3464,16 +3453,14 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	u8 *buf = current_buf(state);
-	int *buflen = current_buflen(state);
-	u8 *next_buf = alt_buf(state);
-	int *next_buflen = alt_buflen(state), last_buflen;
+	u8 *buf = state->buf;
+	int *buflen = &state->buflen;
+	int *next_buflen = &state->next_buflen;
 	int in_len = *buflen + req->nbytes, to_hash;
 	int src_nents, mapped_nents, qm_sg_bytes, qm_sg_src_index;
 	struct ahash_edesc *edesc;
 	int ret = 0;
 
-	last_buflen = *next_buflen;
 	*next_buflen = in_len & (crypto_tfm_alg_blocksize(&ahash->base) - 1);
 	to_hash = in_len - *next_buflen;
 
@@ -3524,10 +3511,6 @@
 		if (mapped_nents) {
 			sg_to_qm_sg_last(req->src, src_len,
 					 sg_table + qm_sg_src_index, 0);
-			if (*next_buflen)
-				scatterwalk_map_and_copy(next_buf, req->src,
-							 to_hash - *buflen,
-							 *next_buflen, 0);
 		} else {
 			dpaa2_sg_set_final(sg_table + qm_sg_src_index - 1,
 					   true);
@@ -3566,14 +3549,11 @@
 		scatterwalk_map_and_copy(buf + *buflen, req->src, 0,
 					 req->nbytes, 0);
 		*buflen = *next_buflen;
-		*next_buflen = last_buflen;
-	}
 
-	print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, buf, *buflen, 1);
-	print_hex_dump_debug("next buf@" __stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, next_buf, *next_buflen,
-			     1);
+		print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, buf,
+				     *buflen, 1);
+	}
 
 	return ret;
 unmap_ctx:
@@ -3592,7 +3572,7 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 	int qm_sg_bytes;
 	int digestsize = crypto_ahash_digestsize(ahash);
 	struct ahash_edesc *edesc;
@@ -3663,7 +3643,7 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 	int qm_sg_bytes, qm_sg_src_index;
 	int src_nents, mapped_nents;
 	int digestsize = crypto_ahash_digestsize(ahash);
@@ -3852,8 +3832,8 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	u8 *buf = current_buf(state);
-	int buflen = *current_buflen(state);
+	u8 *buf = state->buf;
+	int buflen = state->buflen;
 	int digestsize = crypto_ahash_digestsize(ahash);
 	struct ahash_edesc *edesc;
 	int ret = -ENOMEM;
@@ -3925,10 +3905,9 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	u8 *buf = current_buf(state);
-	int *buflen = current_buflen(state);
-	u8 *next_buf = alt_buf(state);
-	int *next_buflen = alt_buflen(state);
+	u8 *buf = state->buf;
+	int *buflen = &state->buflen;
+	int *next_buflen = &state->next_buflen;
 	int in_len = *buflen + req->nbytes, to_hash;
 	int qm_sg_bytes, src_nents, mapped_nents;
 	struct ahash_edesc *edesc;
@@ -3977,11 +3956,6 @@
 
 		sg_to_qm_sg_last(req->src, src_len, sg_table + 1, 0);
 
-		if (*next_buflen)
-			scatterwalk_map_and_copy(next_buf, req->src,
-						 to_hash - *buflen,
-						 *next_buflen, 0);
-
 		edesc->qm_sg_dma = dma_map_single(ctx->dev, sg_table,
 						  qm_sg_bytes, DMA_TO_DEVICE);
 		if (dma_mapping_error(ctx->dev, edesc->qm_sg_dma)) {
@@ -4029,14 +4003,11 @@
 		scatterwalk_map_and_copy(buf + *buflen, req->src, 0,
 					 req->nbytes, 0);
 		*buflen = *next_buflen;
-		*next_buflen = 0;
-	}
 
-	print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, buf, *buflen, 1);
-	print_hex_dump_debug("next buf@" __stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, next_buf, *next_buflen,
-			     1);
+		print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, buf,
+				     *buflen, 1);
+	}
 
 	return ret;
 unmap_ctx:
@@ -4055,7 +4026,7 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 	int qm_sg_bytes, src_nents, mapped_nents;
 	int digestsize = crypto_ahash_digestsize(ahash);
 	struct ahash_edesc *edesc;
@@ -4151,8 +4122,9 @@
 	struct dpaa2_fl_entry *out_fle = &req_ctx->fd_flt[0];
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		      GFP_KERNEL : GFP_ATOMIC;
-	u8 *next_buf = alt_buf(state);
-	int *next_buflen = alt_buflen(state);
+	u8 *buf = state->buf;
+	int *buflen = &state->buflen;
+	int *next_buflen = &state->next_buflen;
 	int to_hash;
 	int src_nents, mapped_nents;
 	struct ahash_edesc *edesc;
@@ -4220,10 +4192,6 @@
 			dpaa2_fl_set_addr(in_fle, sg_dma_address(req->src));
 		}
 
-		if (*next_buflen)
-			scatterwalk_map_and_copy(next_buf, req->src, to_hash,
-						 *next_buflen, 0);
-
 		state->ctx_dma_len = ctx->ctx_len;
 		state->ctx_dma = dma_map_single(ctx->dev, state->caam_ctx,
 						ctx->ctx_len, DMA_FROM_DEVICE);
@@ -4257,14 +4225,14 @@
 		state->update = ahash_update_no_ctx;
 		state->finup = ahash_finup_no_ctx;
 		state->final = ahash_final_no_ctx;
-		scatterwalk_map_and_copy(next_buf, req->src, 0,
+		scatterwalk_map_and_copy(buf, req->src, 0,
 					 req->nbytes, 0);
-		switch_buf(state);
-	}
+		*buflen = *next_buflen;
 
-	print_hex_dump_debug("next buf@" __stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, next_buf, *next_buflen,
-			     1);
+		print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, buf,
+				     *buflen, 1);
+	}
 
 	return ret;
 unmap_ctx:
@@ -4288,10 +4256,9 @@
 
 	state->ctx_dma = 0;
 	state->ctx_dma_len = 0;
-	state->current_buf = 0;
 	state->buf_dma = 0;
-	state->buflen_0 = 0;
-	state->buflen_1 = 0;
+	state->buflen = 0;
+	state->next_buflen = 0;
 
 	return 0;
 }
@@ -4321,16 +4288,8 @@
 {
 	struct caam_hash_state *state = ahash_request_ctx(req);
 	struct caam_export_state *export = out;
-	int len;
-	u8 *buf;
-
-	if (state->current_buf) {
-		buf = state->buf_1;
-		len = state->buflen_1;
-	} else {
-		buf = state->buf_0;
-		len = state->buflen_0;
-	}
+	u8 *buf = state->buf;
+	int len = state->buflen;
 
 	memcpy(export->buf, buf, len);
 	memcpy(export->caam_ctx, state->caam_ctx, sizeof(export->caam_ctx));
@@ -4348,9 +4307,9 @@
 	const struct caam_export_state *export = in;
 
 	memset(state, 0, sizeof(*state));
-	memcpy(state->buf_0, export->buf, export->buflen);
+	memcpy(state->buf, export->buf, export->buflen);
 	memcpy(state->caam_ctx, export->caam_ctx, sizeof(state->caam_ctx));
-	state->buflen_0 = export->buflen;
+	state->buflen = export->buflen;
 	state->update = export->update;
 	state->final = export->final;
 	state->finup = export->finup;
@@ -5421,7 +5380,7 @@
 	dpaa2_fd_set_len(&fd, dpaa2_fl_get_len(&req->fd_flt[1]));
 	dpaa2_fd_set_flc(&fd, req->flc_dma);
 
-	ppriv = this_cpu_ptr(priv->ppriv);
+	ppriv = raw_cpu_ptr(priv->ppriv);
 	for (i = 0; i < (priv->dpseci_attr.num_tx_queues << 1); i++) {
 		err = dpaa2_io_service_enqueue_fq(ppriv->dpio, ppriv->req_fqid,
 						  &fd);
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamhash.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamhash.c
@@ -107,15 +107,13 @@
 	dma_addr_t buf_dma;
 	dma_addr_t ctx_dma;
 	int ctx_dma_len;
-	u8 buf_0[CAAM_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned;
-	int buflen_0;
-	u8 buf_1[CAAM_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned;
-	int buflen_1;
+	u8 buf[CAAM_MAX_HASH_BLOCK_SIZE] ____cacheline_aligned;
+	int buflen;
+	int next_buflen;
 	u8 caam_ctx[MAX_CTX_LEN] ____cacheline_aligned;
 	int (*update)(struct ahash_request *req);
 	int (*final)(struct ahash_request *req);
 	int (*finup)(struct ahash_request *req);
-	int current_buf;
 };
 
 struct caam_export_state {
@@ -127,31 +125,6 @@
 	int (*finup)(struct ahash_request *req);
 };
 
-static inline void switch_buf(struct caam_hash_state *state)
-{
-	state->current_buf ^= 1;
-}
-
-static inline u8 *current_buf(struct caam_hash_state *state)
-{
-	return state->current_buf ? state->buf_1 : state->buf_0;
-}
-
-static inline u8 *alt_buf(struct caam_hash_state *state)
-{
-	return state->current_buf ? state->buf_0 : state->buf_1;
-}
-
-static inline int *current_buflen(struct caam_hash_state *state)
-{
-	return state->current_buf ? &state->buflen_1 : &state->buflen_0;
-}
-
-static inline int *alt_buflen(struct caam_hash_state *state)
-{
-	return state->current_buf ? &state->buflen_0 : &state->buflen_1;
-}
-
 static inline bool is_cmac_aes(u32 algtype)
 {
 	return (algtype & (OP_ALG_ALGSEL_MASK | OP_ALG_AAI_MASK)) ==
@@ -183,12 +156,12 @@
 				     struct sec4_sg_entry *sec4_sg,
 				     struct caam_hash_state *state)
 {
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 
 	if (!buflen)
 		return 0;
 
-	state->buf_dma = dma_map_single(jrdev, current_buf(state), buflen,
+	state->buf_dma = dma_map_single(jrdev, state->buf, buflen,
 					DMA_TO_DEVICE);
 	if (dma_mapping_error(jrdev, state->buf_dma)) {
 		dev_err(jrdev, "unable to map buf\n");
@@ -578,7 +551,7 @@
 				 edesc->sec4_sg_bytes, DMA_TO_DEVICE);
 
 	if (state->buf_dma) {
-		dma_unmap_single(dev, state->buf_dma, *current_buflen(state),
+		dma_unmap_single(dev, state->buf_dma, state->buflen,
 				 DMA_TO_DEVICE);
 		state->buf_dma = 0;
 	}
@@ -643,9 +616,17 @@
 		ecode = caam_jr_strstatus(jrdev, err);
 
 	ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_BIDIRECTIONAL);
-	switch_buf(state);
 	kfree(edesc);
 
+	scatterwalk_map_and_copy(state->buf, req->src,
+				 req->nbytes - state->next_buflen,
+				 state->next_buflen, 0);
+	state->buflen = state->next_buflen;
+
+	print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, state->buf,
+			     state->buflen, 1);
+
 	print_hex_dump_debug("ctx@"__stringify(__LINE__)": ",
 			     DUMP_PREFIX_ADDRESS, 16, 4, state->caam_ctx,
 			     ctx->ctx_len, 1);
@@ -703,9 +684,17 @@
 		ecode = caam_jr_strstatus(jrdev, err);
 
 	ahash_unmap_ctx(jrdev, edesc, req, ctx->ctx_len, DMA_FROM_DEVICE);
-	switch_buf(state);
 	kfree(edesc);
 
+	scatterwalk_map_and_copy(state->buf, req->src,
+				 req->nbytes - state->next_buflen,
+				 state->next_buflen, 0);
+	state->buflen = state->next_buflen;
+
+	print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, state->buf,
+			     state->buflen, 1);
+
 	print_hex_dump_debug("ctx@"__stringify(__LINE__)": ",
 			     DUMP_PREFIX_ADDRESS, 16, 4, state->caam_ctx,
 			     ctx->ctx_len, 1);
@@ -786,18 +775,16 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	u8 *buf = current_buf(state);
-	int *buflen = current_buflen(state);
-	u8 *next_buf = alt_buf(state);
+	u8 *buf = state->buf;
+	int *buflen = &state->buflen;
+	int *next_buflen = &state->next_buflen;
 	int blocksize = crypto_ahash_blocksize(ahash);
-	int *next_buflen = alt_buflen(state), last_buflen;
 	int in_len = *buflen + req->nbytes, to_hash;
 	u32 *desc;
 	int src_nents, mapped_nents, sec4_sg_bytes, sec4_sg_src_index;
 	struct ahash_edesc *edesc;
 	int ret = 0;
 
-	last_buflen = *next_buflen;
 	*next_buflen = in_len & (blocksize - 1);
 	to_hash = in_len - *next_buflen;
 
@@ -868,10 +855,6 @@
 			sg_to_sec4_set_last(edesc->sec4_sg + sec4_sg_src_index -
 					    1);
 
-		if (*next_buflen)
-			scatterwalk_map_and_copy(next_buf, req->src,
-						 to_hash - *buflen,
-						 *next_buflen, 0);
 		desc = edesc->hw_desc;
 
 		edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg,
@@ -901,14 +884,11 @@
 		scatterwalk_map_and_copy(buf + *buflen, req->src, 0,
 					 req->nbytes, 0);
 		*buflen = *next_buflen;
-		*next_buflen = last_buflen;
-	}
 
-	print_hex_dump_debug("buf@"__stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, buf, *buflen, 1);
-	print_hex_dump_debug("next buf@"__stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, next_buf,
-			     *next_buflen, 1);
+		print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, buf,
+				     *buflen, 1);
+	}
 
 	return ret;
 unmap_ctx:
@@ -925,7 +905,7 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 	u32 *desc;
 	int sec4_sg_bytes;
 	int digestsize = crypto_ahash_digestsize(ahash);
@@ -991,7 +971,7 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 	u32 *desc;
 	int sec4_sg_src_index;
 	int src_nents, mapped_nents;
@@ -1148,8 +1128,8 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	u8 *buf = current_buf(state);
-	int buflen = *current_buflen(state);
+	u8 *buf = state->buf;
+	int buflen = state->buflen;
 	u32 *desc;
 	int digestsize = crypto_ahash_digestsize(ahash);
 	struct ahash_edesc *edesc;
@@ -1207,11 +1187,10 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	u8 *buf = current_buf(state);
-	int *buflen = current_buflen(state);
+	u8 *buf = state->buf;
+	int *buflen = &state->buflen;
+	int *next_buflen = &state->next_buflen;
 	int blocksize = crypto_ahash_blocksize(ahash);
-	u8 *next_buf = alt_buf(state);
-	int *next_buflen = alt_buflen(state);
 	int in_len = *buflen + req->nbytes, to_hash;
 	int sec4_sg_bytes, src_nents, mapped_nents;
 	struct ahash_edesc *edesc;
@@ -1278,12 +1257,6 @@
 
 		sg_to_sec4_sg_last(req->src, src_len, edesc->sec4_sg + 1, 0);
 
-		if (*next_buflen) {
-			scatterwalk_map_and_copy(next_buf, req->src,
-						 to_hash - *buflen,
-						 *next_buflen, 0);
-		}
-
 		desc = edesc->hw_desc;
 
 		edesc->sec4_sg_dma = dma_map_single(jrdev, edesc->sec4_sg,
@@ -1317,14 +1290,11 @@
 		scatterwalk_map_and_copy(buf + *buflen, req->src, 0,
 					 req->nbytes, 0);
 		*buflen = *next_buflen;
-		*next_buflen = 0;
-	}
 
-	print_hex_dump_debug("buf@"__stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, buf, *buflen, 1);
-	print_hex_dump_debug("next buf@"__stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, next_buf, *next_buflen,
-			     1);
+		print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, buf,
+				     *buflen, 1);
+	}
 
 	return ret;
  unmap_ctx:
@@ -1342,7 +1312,7 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	int buflen = *current_buflen(state);
+	int buflen = state->buflen;
 	u32 *desc;
 	int sec4_sg_bytes, sec4_sg_src_index, src_nents, mapped_nents;
 	int digestsize = crypto_ahash_digestsize(ahash);
@@ -1428,8 +1398,9 @@
 	struct device *jrdev = ctx->jrdev;
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
-	u8 *next_buf = alt_buf(state);
-	int *next_buflen = alt_buflen(state);
+	u8 *buf = state->buf;
+	int *buflen = &state->buflen;
+	int *next_buflen = &state->next_buflen;
 	int to_hash;
 	int blocksize = crypto_ahash_blocksize(ahash);
 	u32 *desc;
@@ -1491,10 +1462,6 @@
 		if (ret)
 			goto unmap_ctx;
 
-		if (*next_buflen)
-			scatterwalk_map_and_copy(next_buf, req->src, to_hash,
-						 *next_buflen, 0);
-
 		desc = edesc->hw_desc;
 
 		ret = map_seq_out_ptr_ctx(desc, jrdev, state, ctx->ctx_len);
@@ -1517,14 +1484,14 @@
 		state->update = ahash_update_no_ctx;
 		state->finup = ahash_finup_no_ctx;
 		state->final = ahash_final_no_ctx;
-		scatterwalk_map_and_copy(next_buf, req->src, 0,
+		scatterwalk_map_and_copy(buf, req->src, 0,
 					 req->nbytes, 0);
-		switch_buf(state);
-	}
+		*buflen = *next_buflen;
 
-	print_hex_dump_debug("next buf@"__stringify(__LINE__)": ",
-			     DUMP_PREFIX_ADDRESS, 16, 4, next_buf, *next_buflen,
-			     1);
+		print_hex_dump_debug("buf@" __stringify(__LINE__)": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, buf,
+				     *buflen, 1);
+	}
 
 	return ret;
  unmap_ctx:
@@ -1548,10 +1515,9 @@
 
 	state->ctx_dma = 0;
 	state->ctx_dma_len = 0;
-	state->current_buf = 0;
 	state->buf_dma = 0;
-	state->buflen_0 = 0;
-	state->buflen_1 = 0;
+	state->buflen = 0;
+	state->next_buflen = 0;
 
 	return 0;
 }
@@ -1581,16 +1547,8 @@
 {
 	struct caam_hash_state *state = ahash_request_ctx(req);
 	struct caam_export_state *export = out;
-	int len;
-	u8 *buf;
-
-	if (state->current_buf) {
-		buf = state->buf_1;
-		len = state->buflen_1;
-	} else {
-		buf = state->buf_0;
-		len = state->buflen_0;
-	}
+	u8 *buf = state->buf;
+	int len = state->buflen;
 
 	memcpy(export->buf, buf, len);
 	memcpy(export->caam_ctx, state->caam_ctx, sizeof(export->caam_ctx));
@@ -1608,9 +1566,9 @@
 	const struct caam_export_state *export = in;
 
 	memset(state, 0, sizeof(*state));
-	memcpy(state->buf_0, export->buf, export->buflen);
+	memcpy(state->buf, export->buf, export->buflen);
 	memcpy(state->caam_ctx, export->caam_ctx, sizeof(state->caam_ctx));
-	state->buflen_0 = export->buflen;
+	state->buflen = export->buflen;
 	state->update = export->update;
 	state->final = export->final;
 	state->finup = export->finup;
@@ -1991,12 +1949,14 @@
 	 * presence and attributes of MD block.
 	 */
 	if (priv->era < 10) {
-		md_vid = (rd_reg32(&priv->ctrl->perfmon.cha_id_ls) &
+		struct caam_perfmon __iomem *perfmon = &priv->jr[0]->perfmon;
+
+		md_vid = (rd_reg32(&perfmon->cha_id_ls) &
 			  CHA_ID_LS_MD_MASK) >> CHA_ID_LS_MD_SHIFT;
-		md_inst = (rd_reg32(&priv->ctrl->perfmon.cha_num_ls) &
+		md_inst = (rd_reg32(&perfmon->cha_num_ls) &
 			   CHA_ID_LS_MD_MASK) >> CHA_ID_LS_MD_SHIFT;
 	} else {
-		u32 mdha = rd_reg32(&priv->ctrl->vreg.mdha);
+		u32 mdha = rd_reg32(&priv->jr[0]->vreg.mdha);
 
 		md_vid = (mdha & CHA_VER_VID_MASK) >> CHA_VER_VID_SHIFT;
 		md_inst = mdha & CHA_VER_NUM_MASK;
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamkeyblob.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamkeyblob.c
@@ -0,0 +1,670 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Black key generation and blob encapsulation/decapsulation for CAAM
+ *
+ * Copyright 2018-2020 NXP
+ */
+#include "caamkeyblob.h"
+#include "error.h"
+
+/* Black key generation and blob encap/decap job completion handler */
+static void caam_key_blob_done(struct device *dev, u32 *desc, u32 err,
+			       void *context)
+{
+	struct jr_job_result *res = context;
+	int ecode = 0;
+
+	dev_dbg(dev, "%s %d: err 0x%x\n", __func__, __LINE__, err);
+
+	if (err)
+		ecode = caam_jr_strstatus(dev, err);
+
+	/* Save the error for post-processing */
+	res->error = ecode;
+	/* Mark job as complete */
+	complete(&res->completion);
+}
+
+/**
+ * map_write_data   - Prepare data to be written to CAAM
+ *
+ * @dev             : struct device of the job ring to be used
+ * @data            : The data to be prepared
+ * @size            : The size of data to be prepared
+ * @dma_addr        : The retrieve DMA address of the input data
+ * @allocated_data  : Pointer to a DMA-able address where the input
+ *                    data is copied and synchronized
+ *
+ * Return           : '0' on success, error code otherwise
+ */
+static int map_write_data(struct device *dev, const u8 *data, size_t size,
+			  dma_addr_t *dma_addr, u8 **allocated_data)
+{
+	int ret = 0;
+
+	/* Allocate memory for data and copy it to DMA zone */
+	*allocated_data = kmemdup(data, size, GFP_KERNEL | GFP_DMA);
+	if (!*allocated_data) {
+		ret = -ENOMEM;
+		goto exit;
+	}
+
+	*dma_addr = dma_map_single(dev, *allocated_data, size, DMA_TO_DEVICE);
+	if (dma_mapping_error(dev, *dma_addr)) {
+		dev_err(dev, "Unable to map write data\n");
+		ret = -ENOMEM;
+		goto free_alloc;
+	}
+
+	goto exit;
+
+free_alloc:
+	kfree(*allocated_data);
+
+exit:
+	return ret;
+}
+
+/**
+ * map_read_data   - Prepare data to be read from CAAM
+ *
+ * @dev             : struct device of the job ring to be used
+ * @size            : The size of data to be prepared
+ * @dma_addr        : The retrieve DMA address of the data to be read
+ * @allocated_data  : Pointer to a DMA-able address where the data
+ *                    to be read will be copied and synchronized
+ *
+ * Return           : '0' on success, error code otherwise
+ */
+static int map_read_data(struct device *dev, size_t size, dma_addr_t *dma_addr,
+			 u8 **allocated_data)
+{
+	int ret = 0;
+
+	/* Allocate memory for data compatible with DMA */
+	*allocated_data = kmalloc(size, GFP_KERNEL | GFP_DMA);
+	if (!*allocated_data) {
+		ret = -ENOMEM;
+		goto exit;
+	}
+
+	*dma_addr = dma_map_single(dev, *allocated_data, size, DMA_FROM_DEVICE);
+	if (dma_mapping_error(dev, *dma_addr)) {
+		dev_err(dev, "Unable to map read data\n");
+		ret = -ENOMEM;
+		goto free_alloc;
+	}
+
+	goto exit;
+
+free_alloc:
+	kfree(*allocated_data);
+
+exit:
+	return ret;
+}
+
+/**
+ * read_map_data   - Read the data from CAAM
+ *
+ * @dev             : struct device of the job ring to be used
+ * @data            : The read data from CAAM will be copied here
+ * @dma_addr        : The DMA address of the data to be read
+ * @allocated_data  : Pointer to a DMA-able address where the data
+ *                    to be read is
+ * @size            : The size of data to be read
+ */
+static void read_map_data(struct device *dev, u8 *data, dma_addr_t dma_addr,
+			  u8 *allocated_data, size_t size)
+{
+	/* Synchronize the DMA and copy the data */
+	dma_sync_single_for_cpu(dev, dma_addr, size, DMA_FROM_DEVICE);
+	memcpy(data, allocated_data, size);
+}
+
+/**
+ * unmap_read_write_data - Unmap the data needed for or from CAAM
+ *
+ * @dev             : struct device of the job ring to be used
+ * @dma_addr        : The DMA address of the data used for DMA transfer
+ * @allocated_data  : The data used for DMA transfer
+ * @size            : The size of data
+ * @dir             : The DMA_API direction
+ */
+static void unmap_read_write_data(struct device *dev, dma_addr_t dma_addr,
+				  u8 *allocated_data, size_t size,
+				  enum dma_data_direction dir)
+{
+	/* Free the resources and clear the data*/
+	dma_unmap_single(dev, dma_addr, size, dir);
+	kzfree(allocated_data);
+}
+
+/**
+ * get_caam_dma_addr - Get the CAAM DMA address of a physical address.
+ *
+ * @phy_address     : The physical address
+ *
+ * Return           : The CAAM DMA address
+ */
+static dma_addr_t get_caam_dma_addr(const void *phy_address)
+{
+	uintptr_t ptr_conv;
+	dma_addr_t caam_dma_address = 0;
+
+	/* Check if conversion is possible */
+	if (sizeof(caam_dma_address) < sizeof(phy_address)) {
+		/*
+		 * Check that all bits sets in the phy_address
+		 * can be stored in caam_dma_address
+		 */
+
+		/* Generate a mask of the representable bits */
+		u64 mask = GENMASK_ULL(sizeof(caam_dma_address) * 8 - 1, 0);
+
+		/*
+		 * Check that the bits not representable of
+		 * the physical address are not set
+		 */
+		if ((uintptr_t)phy_address & ~mask)
+			goto exit;
+	}
+
+	/* Convert address to caam_dma_address */
+	ptr_conv = (uintptr_t)phy_address;
+	caam_dma_address = (dma_addr_t)ptr_conv;
+
+exit:
+	return caam_dma_address;
+}
+
+/**
+ * generate_black_key - Generate a black key from a plaintext or random,
+ *                      based on the given input: a size for a random black
+ *                      key, or a plaintext (input key).
+ *
+ * If the memory type is Secure Memory, the key to cover is read
+ * directly by CAAM from Secure Memory without intermediate copy.
+ * The value of the input key (plaintext) must be a physical address
+ * in Secure Memory.
+ *
+ * Notes:
+ * Limited to Class 1 keys, at the present time.
+ * The input and output data are copied to temporary arrays
+ * except for the input key if the memory type is Secure Memory.
+ * For now, we have support for Black keys, stored in General Memory.
+ *
+ * @dev             : struct device of the job ring to be used
+ * @info            : keyblob_info structure, will be updated with
+ *                    the black key data from CAAM.
+ *                    This contains, also, all the data necessary to generate
+ *                    a black key from plaintext/random like: key encryption
+ *                    key, memory type, input key, etc.
+ *
+ * Return           : '0' on success, error code otherwise
+ */
+int generate_black_key(struct device *dev, struct keyblob_info *info)
+{
+	int ret = 0;
+	bool not_random = false;
+	u8 trusted_key, key_enc;
+	u32 *desc = NULL;
+	size_t black_key_length_req = 0;
+	dma_addr_t black_key_dma;
+	u8 *tmp_black_key = NULL;
+
+	/* Validate device */
+	if (!dev)
+		return -EINVAL;
+
+	/*
+	 * If an input key (plaintext) is given,
+	 * generate a black key from it, not from random
+	 */
+	if (info->key)
+		not_random = true;
+
+	/* Get trusted key and key encryption type from type */
+	trusted_key = (info->type >> TAG_OBJ_TK_OFFSET) & 0x1;
+	key_enc = (info->type >> TAG_OBJ_EKT_OFFSET) & 0x1;
+
+	dev_dbg(dev, "%s input: [key: (%zu) black_key: %p(%zu), key_enc: %x]\n",
+		__func__, info->key_len, info->black_key, info->black_key_len,
+		key_enc);
+	if (not_random)
+		print_hex_dump_debug("input key @" __stringify(__LINE__) ": ",
+				     DUMP_PREFIX_ADDRESS, 16, 4, info->key,
+				     info->key_len, 1);
+
+	/* Validate key type - only JDKEK keys are supported */
+	if (!is_key_type(info->type) || is_trusted_type(info->type))
+		return -EINVAL;
+
+	/*
+	 * Validate key size, expected values are
+	 * between 16 and 64 bytes.
+	 * See TODO from cnstr_desc_black_key().
+	 */
+	if (info->key_len < MIN_KEY_SIZE || info->key_len > MAX_KEY_SIZE)
+		return -EINVAL;
+
+	/*
+	 * Based on key encryption type (ecb or ccm),
+	 * compute the black key size
+	 */
+	if (key_enc == KEY_COVER_ECB)
+		/*
+		 * ECB-Black Key will be padded with zeros to make it a
+		 * multiple of 16 bytes long before it is encrypted,
+		 * and the resulting Black Key will be this length.
+		 */
+		black_key_length_req = ECB_BLACK_KEY_SIZE(info->key_len);
+	else if (key_enc == KEY_COVER_CCM)
+		/*
+		 * CCM-Black Key will always be at least 12 bytes longer,
+		 * since the encapsulation uses a 6-byte nonce and adds
+		 * a 6-byte ICV. But first, the key is padded as necessary so
+		 * that CCM-Black Key is a multiple of 8 bytes long.
+		 */
+		black_key_length_req = CCM_BLACK_KEY_SIZE(info->key_len);
+
+	/* Check if there is enough space for black key */
+	if (info->black_key_len < black_key_length_req) {
+		info->black_key_len = black_key_length_req;
+		return -EINVAL;
+	}
+
+	/* Black key will have at least the same length as the input key */
+	info->black_key_len = info->key_len;
+
+	dev_dbg(dev, "%s processing: [key: (%zu) black_key: %p(%zu)",
+		__func__, info->key_len, info->black_key, info->black_key_len);
+	dev_dbg(dev, "req:%zu, key_enc: 0x%x]\n", black_key_length_req, key_enc);
+
+	/* Map black key, this will be read from CAAM */
+	if (map_read_data(dev, black_key_length_req,
+			  &black_key_dma, &tmp_black_key)) {
+		dev_err(dev, "Unable to map black key\n");
+		ret = -ENOMEM;
+		goto exit;
+	}
+
+	/* Construct descriptor for black key */
+	if (not_random)
+		ret = cnstr_desc_black_key(&desc, info->key, info->key_len,
+					   black_key_dma, info->black_key_len,
+					   key_enc, trusted_key);
+	else
+		ret = cnstr_desc_random_black_key(&desc, info->key_len,
+						  black_key_dma,
+						  info->black_key_len,
+						  key_enc, trusted_key);
+
+	if (ret) {
+		dev_err(dev,
+			"Failed to construct the descriptor for black key\n");
+		goto unmap_black_key;
+	}
+
+	/* Execute descriptor and wait for its completion */
+	ret = caam_jr_run_and_wait_for_completion(dev, desc,
+						  caam_key_blob_done);
+	if (ret) {
+		dev_err(dev, "Failed to execute black key descriptor\n");
+		goto free_desc;
+	}
+
+	/* Read black key from CAAM */
+	read_map_data(dev, info->black_key, black_key_dma,
+		      tmp_black_key, black_key_length_req);
+
+	/* Update black key length with the correct size */
+	info->black_key_len = black_key_length_req;
+
+free_desc:
+	kfree(desc);
+
+unmap_black_key:
+	unmap_read_write_data(dev, black_key_dma, tmp_black_key,
+			      black_key_length_req, DMA_FROM_DEVICE);
+
+exit:
+	return ret;
+}
+EXPORT_SYMBOL(generate_black_key);
+
+/**
+ * caam_blob_encap - Encapsulate a black key into a blob
+ *
+ * If the memory type is Secure Memory, the key to encapsulate is read
+ * directly by CAAM from Secure Memory without intermediate copy.
+ * The value of the key (black key) must be a physical address
+ * in Secure Memory.
+ *
+ * Notes:
+ * For now, we have support for Black keys, stored in General Memory and
+ * encapsulated into black blobs.
+ *
+ * @dev             : struct device of the job ring to be used
+ * @info            : keyblob_info structure, will be updated with
+ *                    the blob data from CAAM.
+ *                    This contains, also, all the data necessary to
+ *                    encapsulate a black key into a blob: key encryption
+ *                    key, memory type, color, etc.
+ *
+ * Return           : '0' on success, error code otherwise
+ */
+int caam_blob_encap(struct device *dev, struct keyblob_info *info)
+{
+	int ret = 0;
+	u32 *desc = NULL;
+	size_t black_key_real_len = 0;
+	size_t blob_req_len = 0;
+	u8 mem_type, color, key_enc, trusted_key;
+	dma_addr_t black_key_dma, blob_dma;
+	unsigned char *blob = info->blob;
+	u8 *tmp_black_key = NULL, *tmp_blob = NULL;
+
+	/* Validate device */
+	if (!dev)
+		return -EINVAL;
+
+	/*
+	 * Get memory type, trusted key, key encryption
+	 * type and color from type
+	 */
+	mem_type = (info->type >> TAG_OBJ_MEM_OFFSET) & 0x1;
+	color = (info->type >> TAG_OBJ_COLOR_OFFSET) & 0x1;
+	key_enc = (info->type >> TAG_OBJ_EKT_OFFSET) & 0x1;
+	trusted_key = (info->type >> TAG_OBJ_TK_OFFSET) & 0x1;
+
+	/* Validate input data*/
+	if (!info->key_mod || !blob)
+		return -EINVAL;
+
+	/* Validate object type - only JDKEK keys are supported */
+	if (is_trusted_type(info->type))
+		return -EINVAL;
+
+	dev_dbg(dev, "%s input:[black_key: %p (%zu) color: %x, key_enc: %x",
+		__func__, info->black_key, info->black_key_len, color, key_enc);
+	dev_dbg(dev, ", key_mod: %p (%zu)", info->key_mod, info->key_mod_len);
+	dev_dbg(dev, "blob: %p (%zu)]\n", blob, info->blob_len);
+
+	/*
+	 * Based on memory type, the key modifier length
+	 * can be 8-byte or 16-byte.
+	 */
+	if (mem_type == DATA_SECMEM)
+		info->key_mod_len = KEYMOD_SIZE_SM;
+	else
+		info->key_mod_len = KEYMOD_SIZE_GM;
+
+	/* Adapt the size of the black key */
+	black_key_real_len = info->black_key_len;
+
+	blob_req_len = CCM_BLACK_KEY_SIZE(info->key_len);
+
+	/* Check if the blob can be stored */
+	if (info->blob_len < (blob_req_len + BLOB_OVERHEAD))
+		return -EINVAL;
+
+	/* Update the blob length */
+	info->blob_len = blob_req_len + BLOB_OVERHEAD;
+
+	dev_dbg(dev, "%s processing: [black_key: %p (%zu) cnstr: %zu",
+		__func__, info->black_key, info->black_key_len,
+		black_key_real_len);
+	dev_dbg(dev, " color: %x key_enc: %x, mem_type: %x,",
+		color, key_enc, mem_type);
+	dev_dbg(dev, ", key_mod: %p (%zu) ", info->key_mod, info->key_mod_len);
+	dev_dbg(dev, "blob: %p (%zu)]\n", blob, info->blob_len);
+
+	/* Map black key, this will be transferred to CAAM */
+	if (mem_type == DATA_GENMEM) {
+		if (map_write_data(dev, info->black_key, info->black_key_len,
+				   &black_key_dma, &tmp_black_key)) {
+			dev_err(dev, "Unable to map black key for blob\n");
+			ret = -ENOMEM;
+			goto exit;
+		}
+	} else {
+		black_key_dma = get_caam_dma_addr(info->black_key);
+		if (!black_key_dma)
+			return -ENOMEM;
+	}
+
+	/* Map blob, this will be read to CAAM */
+	if (mem_type == DATA_GENMEM) {
+		if (map_read_data(dev, info->blob_len, &blob_dma, &tmp_blob)) {
+			dev_err(dev, "Unable to map blob\n");
+			ret = -ENOMEM;
+			goto unmap_black_key;
+		}
+	} else {
+		blob_dma = get_caam_dma_addr(info->blob);
+		if (!blob_dma)
+			return -ENOMEM;
+	}
+
+	/* Construct descriptor for blob encapsulation */
+	ret = cnstr_desc_blob_encap(&desc, black_key_dma, info->key_len,
+				    color, key_enc, trusted_key, mem_type,
+				    info->key_mod, info->key_mod_len,
+				    blob_dma, info->blob_len);
+	if (ret) {
+		dev_err(dev,
+			"Failed to construct the descriptor for blob encap\n");
+		goto unmap_blob;
+	}
+
+	/* Execute descriptor and wait for its completion */
+	ret = caam_jr_run_and_wait_for_completion(dev, desc,
+						  caam_key_blob_done);
+	if (ret) {
+		dev_err(dev, "Failed to execute blob encap descriptor\n");
+		goto free_desc;
+	}
+
+	/* Read blob from CAAM */
+	if (mem_type == DATA_GENMEM)
+		read_map_data(dev, blob, blob_dma, tmp_blob, info->blob_len);
+
+	print_hex_dump_debug("blob @" __stringify(__LINE__) ": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, blob,
+			     info->blob_len, 1);
+free_desc:
+	kfree(desc);
+
+unmap_blob:
+	if (mem_type == DATA_GENMEM)
+		unmap_read_write_data(dev, blob_dma, tmp_blob,
+				      info->blob_len, DMA_FROM_DEVICE);
+
+unmap_black_key:
+	if (mem_type == DATA_GENMEM)
+		unmap_read_write_data(dev, black_key_dma, tmp_black_key,
+				      info->black_key_len, DMA_TO_DEVICE);
+
+exit:
+	return ret;
+}
+EXPORT_SYMBOL(caam_blob_encap);
+
+/**
+ * caam_blob_decap - Decapsulate a black key from a blob
+ *
+ * Notes:
+ * For now, we have support for Black blob, stored in General Memory and
+ * can be decapsulated into a black key.
+ *
+ * @dev             : struct device of the job ring to be used
+ * @info            : keyblob_info structure, will be updated with
+ *                    the black key decapsulated from the blob.
+ *                    This contains, also, all the data necessary to
+ *                    encapsulate a black key into a blob: key encryption
+ *                    key, memory type, color, etc.
+ *
+ * Return           : '0' on success, error code otherwise
+ */
+int caam_blob_decap(struct device *dev, struct keyblob_info *info)
+{
+	int ret = 0;
+	u32 *desc = NULL;
+	u8 mem_type, color, key_enc, trusted_key;
+	size_t black_key_real_len;
+	dma_addr_t black_key_dma, blob_dma;
+	unsigned char *blob = info->blob + TAG_OVERHEAD_SIZE;
+	u8 *tmp_black_key = NULL, *tmp_blob = NULL;
+
+	/* Validate device */
+	if (!dev)
+		return -EINVAL;
+
+	/*
+	 * Get memory type, trusted key, key encryption
+	 * type and color from type
+	 */
+	mem_type = (info->type >> TAG_OBJ_MEM_OFFSET) & 0x1;
+	color = (info->type >> TAG_OBJ_COLOR_OFFSET) & 0x1;
+	key_enc = (info->type >> TAG_OBJ_EKT_OFFSET) & 0x1;
+	trusted_key = (info->type >> TAG_OBJ_TK_OFFSET) & 0x1;
+
+	/* Validate input data*/
+	if (!info->key_mod || !blob)
+		return -EINVAL;
+
+	dev_dbg(dev, "%s input: [blob: %p (%zu), mem_type: %x, color: %x",
+		__func__, blob, info->blob_len, mem_type, color);
+	dev_dbg(dev, " keymod: %p (%zu)", info->key_mod, info->key_mod_len);
+	dev_dbg(dev, " secret: %p (%zu) key_enc: %x]\n",
+		info->black_key, info->black_key_len, key_enc);
+
+	/* Validate object type - only JDKEK keys are supported */
+	if (is_trusted_type(info->type))
+		return -EINVAL;
+
+	print_hex_dump_debug("blob @" __stringify(__LINE__) ": ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, blob,
+			     info->blob_len, 1);
+
+	/*
+	 * Based on memory type, the key modifier length
+	 * can be 8-byte or 16-byte.
+	 */
+	if (mem_type == DATA_SECMEM)
+		info->key_mod_len = KEYMOD_SIZE_SM;
+	else
+		info->key_mod_len = KEYMOD_SIZE_GM;
+
+	/* Check if the blob is valid */
+	if (info->blob_len <= BLOB_OVERHEAD)
+		return -EINVAL;
+
+	/* Initialize black key length */
+	black_key_real_len = info->blob_len - BLOB_OVERHEAD;
+
+	/* Check if the black key has enough space to be stored */
+	if (info->black_key_len < black_key_real_len)
+		return -EINVAL;
+
+	/*
+	 * Based on key encryption type (ecb or ccm),
+	 * compute the black key size
+	 */
+	if (key_enc == KEY_COVER_ECB)
+		/*
+		 * ECB-Black Key will be padded with zeros to make it a
+		 * multiple of 16 bytes long before it is encrypted,
+		 * and the resulting Black Key will be this length.
+		 */
+		black_key_real_len = ECB_BLACK_KEY_SIZE(info->key_len);
+	else if (key_enc == KEY_COVER_CCM)
+		/*
+		 * CCM-Black Key will always be at least 12 bytes longer,
+		 * since the encapsulation uses a 6-byte nonce and adds
+		 * a 6-byte ICV. But first, the key is padded as necessary so
+		 * that CCM-Black Key is a multiple of 8 bytes long.
+		 */
+		black_key_real_len = CCM_BLACK_KEY_SIZE(info->key_len);
+
+	/* Check if there is enough space for black key */
+	if (info->black_key_len < black_key_real_len)
+		return -EINVAL;
+
+	/* Update black key length with the one computed based on key_enc */
+	info->black_key_len = black_key_real_len;
+
+	dev_dbg(dev, "%s processing: [blob: %p (%zu), mem_type: %x, color: %x,",
+		__func__, blob, info->blob_len, mem_type, color);
+	dev_dbg(dev, " key_mod: %p (%zu), black_key: %p (%zu) real_len: %zu]\n",
+		info->key_mod, info->key_mod_len, info->black_key,
+		info->black_key_len, black_key_real_len);
+
+	/* Map blob, this will be transferred to CAAM */
+	if (mem_type == DATA_GENMEM) {
+		if (map_write_data(dev, blob, info->blob_len,
+				   &blob_dma, &tmp_blob)) {
+			dev_err(dev, "Unable to map blob for decap\n");
+			ret = -ENOMEM;
+			goto exit;
+		}
+	} else {
+		blob_dma = get_caam_dma_addr(blob);
+		if (!blob_dma)
+			return -ENOMEM;
+	}
+
+	/* Map black key, this will be read from CAAM */
+	if (mem_type == DATA_GENMEM) {
+		if (map_read_data(dev, info->black_key_len,
+				  &black_key_dma, &tmp_black_key)) {
+			dev_err(dev, "Unable to map black key for blob decap\n");
+			ret = -ENOMEM;
+			goto unmap_blob;
+		}
+	} else {
+		black_key_dma = get_caam_dma_addr(info->black_key);
+		if (!black_key_dma)
+			return -ENOMEM;
+	}
+
+	ret = cnstr_desc_blob_decap(&desc, blob_dma, info->blob_len,
+				    info->key_mod, info->key_mod_len,
+				    black_key_dma, info->key_len,
+				    color, key_enc, trusted_key, mem_type);
+	if (ret) {
+		dev_err(dev,
+			"Failed to construct the descriptor for blob decap\n");
+		goto unmap_black_key;
+	}
+
+	ret = caam_jr_run_and_wait_for_completion(dev, desc,
+						  caam_key_blob_done);
+	if (ret) {
+		dev_err(dev, "Failed to execute blob decap descriptor\n");
+		goto free_desc;
+	}
+
+	/* Read black key from CAAM */
+	if (mem_type == DATA_GENMEM)
+		read_map_data(dev, info->black_key, black_key_dma,
+			      tmp_black_key, info->black_key_len);
+
+free_desc:
+	kfree(desc);
+
+unmap_black_key:
+	if (mem_type == DATA_GENMEM)
+		unmap_read_write_data(dev, black_key_dma, tmp_black_key,
+				      info->black_key_len, DMA_FROM_DEVICE);
+
+unmap_blob:
+	if (mem_type == DATA_GENMEM)
+		unmap_read_write_data(dev, blob_dma, tmp_blob,
+				      info->blob_len, DMA_TO_DEVICE);
+
+exit:
+	return ret;
+}
+EXPORT_SYMBOL(caam_blob_decap);
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamkeyblob.h
+++ linux-ein-5.4.0/drivers/crypto/caam/caamkeyblob.h
@@ -0,0 +1,82 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/*
+ * Black key generation and blob encapsulation/decapsualtion for CAAM
+ *
+ * Copyright 2018-2020 NXP
+ */
+
+#ifndef _CAAMKEYBLOB_H_
+#define _CAAMKEYBLOB_H_
+
+#include <linux/device.h>
+#include "caamkeyblob_desc.h"
+
+/*
+ * Minimum key size to be used is 16 bytes and maximum key size fixed
+ * is 64 bytes.
+ * Blob size to be kept is Maximum key size + tag object header added by CAAM.
+ */
+
+#define MIN_KEY_SIZE			16
+#define MAX_KEY_SIZE			64
+
+#define MAX_BLACK_KEY_SIZE		(MAX_KEY_SIZE + CCM_OVERHEAD +\
+					TAG_OVERHEAD_SIZE)
+
+/*
+ * For blobs a randomly-generated, 256-bit blob key is used to
+ * encrypt the data using the AES-CCM cryptographic algorithm.
+ * Therefore, blob size is max key size, CCM_OVERHEAD, blob header
+ * added by CAAM and the tagged object header size.
+ */
+#define MAX_BLOB_SIZE			(MAX_KEY_SIZE + CCM_OVERHEAD +\
+					BLOB_OVERHEAD + TAG_OVERHEAD_SIZE)
+
+/* Key modifier for CAAM blobs, used as a revision number */
+static const char caam_key_modifier[KEYMOD_SIZE_GM] = {
+		'C', 'A', 'A', 'M', '_', 'K', 'E', 'Y',
+		'_', 'T', 'Y', 'P', 'E', '_', 'V', '1',
+};
+
+/**
+ * struct keyblob_info - Structure that contains all the data necessary
+ *                       to generate a black key and encapsulate it into a blob
+ *
+ * @key                : The plaintext used as input key
+ *                       for black key generation
+ * @key_len            : Size of plaintext or size of key in case of
+ *                       black key generated from random
+ * @type               : The type of data contained (e.g. black key, blob, etc.)
+ * @black_key_len      : Length of the generated black key
+ * @black_key          : Black key data obtained from CAAM
+ * @blob_len           : Length of the blob that encapsulates the black key
+ * @blob               : Blob data obtained from CAAM
+ * @key_modifier_len   : 8-byte or 16-byte Key_Modifier based on general or
+ *                       secure memory blob type
+ * @key_modifier       : can be either a secret value, or used as a revision
+ *                       number, revision date or nonce
+ *                       In this case is used as a revision number.
+ */
+struct keyblob_info {
+	char *key;
+	size_t key_len;
+
+	u32 type;
+
+	size_t black_key_len;
+	unsigned char black_key[MAX_BLACK_KEY_SIZE];
+
+	size_t blob_len;
+	unsigned char blob[MAX_BLOB_SIZE];
+
+	size_t key_mod_len;
+	const void *key_mod;
+};
+
+int generate_black_key(struct device *dev, struct keyblob_info *info);
+
+int caam_blob_encap(struct device *dev, struct keyblob_info *info);
+
+int caam_blob_decap(struct device *dev, struct keyblob_info *info);
+
+#endif /* _CAAMKEYBLOB_H_ */
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamkeyblob_desc.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamkeyblob_desc.c
@@ -0,0 +1,446 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Shared descriptors for CAAM black key
+ * and blob encapsulation/decapsulation
+ *
+ * Copyright 2018-2020 NXP
+ */
+#include "caamkeyblob_desc.h"
+
+/* Size of tmp buffer for descriptor const. */
+#define INITIAL_DESCSZ 64
+
+/*
+ * Construct a black key conversion job descriptor
+ *
+ * This function constructs a job descriptor capable of performing
+ * a key blackening operation on a plaintext secure memory resident object.
+ *
+ * @desc          : Pointer to a pointer to the descriptor generated by this
+ *                  function. Caller will be responsible to kfree() this
+ *                  descriptor after execution.
+ * @key           : Pointer to the plaintext, which will also hold
+ *                  the result. Since encryption occurs in place, caller must
+ *                  ensure that the space is large enough to accommodate the
+ *                  blackened key
+ * @key_len       : Size of the plaintext
+ * @black_key     : DMA address of the black key obtained from hardware
+ * @black_key_len : Size of the black key
+ * @key_enc       : Encrypted Key Type (AES-ECB or AES-CCM)
+ * @trusted_key   : Trusted Key (use Job Descriptor Key Encryption Key (JDKEK)
+ *                  or Trusted Descriptor Key Encryption Key (TDKEK) to
+ *                  decrypt the key to be loaded into a Key Register).
+ *
+ * Return         : '0' on success, error code otherwise
+ */
+int cnstr_desc_black_key(u32 **desc, char *key, size_t key_len,
+			 dma_addr_t black_key, size_t black_key_len,
+			 u8 key_enc, u8 trusted_key)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize;
+	u32 bk_store;
+	u32 key_length_for_desc = key_len;
+
+	/* Trusted key not supported */
+	if (trusted_key != UNTRUSTED_KEY)
+		return -ENOTSUPP;
+
+	memset(tmpdesc, 0, sizeof(tmpdesc));
+
+	init_job_desc(tmpdesc, 0);
+
+	/*
+	 * KEY commands seems limited to 32 bytes, so we should use the load
+	 * command instead which can load up to 64 bytes.
+	 * The size must also be loaded.
+	 *
+	 * TODO: The KEY command indicate it should be able to load key bigger
+	 * than 32bytes but it doesn't work in practice
+	 *
+	 * TODO: The LOAD command indicate it should be able to load up to 96
+	 * byte keys it doesn't work in practice and is limited to 64 bytes
+	 */
+
+	/* Load key to class 1 key register */
+	append_load_as_imm(tmpdesc, (void *)key, key_length_for_desc,
+			   LDST_CLASS_1_CCB | LDST_SRCDST_BYTE_KEY);
+
+	/* Load the size of the key */
+	append_load_imm_u32(tmpdesc, key_length_for_desc, LDST_CLASS_1_CCB |
+			    LDST_IMM | LDST_SRCDST_WORD_KEYSZ_REG);
+
+	/* ...and write back out via FIFO store*/
+	bk_store = CLASS_1;
+	if (key_enc == KEY_COVER_ECB)
+		bk_store |= FIFOST_TYPE_KEY_KEK;
+	else
+		bk_store |= FIFOST_TYPE_KEY_CCM_JKEK;
+
+	/* Save the key as black key in memory */
+	append_fifo_store(tmpdesc, black_key, black_key_len, bk_store);
+
+	dsize = desc_bytes(&tmpdesc);
+
+	/* Now allocate execution buffer and coat it with executable */
+	tdesc = kmemdup(tmpdesc, dsize, GFP_KERNEL | GFP_DMA);
+	if (!tdesc)
+		return -ENOMEM;
+
+	*desc = tdesc;
+
+	print_hex_dump_debug("black key desc@" __stringify(__LINE__) ":",
+			     DUMP_PREFIX_ADDRESS, 16, 4, *desc,
+			     desc_bytes(*desc), 1);
+
+	return 0;
+}
+EXPORT_SYMBOL(cnstr_desc_black_key);
+
+/*
+ * Construct a black key using RNG job descriptor
+ *
+ * This function constructs a job descriptor capable of performing
+ * a key blackening operation on RNG generated.
+ *
+ * @desc          : Pointer to a pointer to the descriptor generated by this
+ *                  function. Caller will be responsible to kfree() this
+ *                  descriptor after execution.
+ * @key_len       : Size of the random plaintext
+ * @black_key     : DMA address of the black key obtained from hardware
+ * @black_key_len : Size of the black key
+ * @key_enc       : Encrypted Key Type (AES-ECB or AES-CCM)
+ * @trusted_key   : Trusted Key (use Job Descriptor Key Encryption Key (JDKEK)
+ *                  or Trusted Descriptor Key Encryption Key (TDKEK) to
+ *                  decrypt the key to be loaded into a Key Register).
+ *
+ * Return         : '0' on success, error code otherwise
+ */
+int cnstr_desc_random_black_key(u32 **desc, size_t key_len,
+				dma_addr_t black_key, size_t black_key_len,
+				u8 key_enc, u8 trusted_key)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize;
+	u32 bk_store;
+
+	memset(tmpdesc, 0, sizeof(tmpdesc));
+
+	init_job_desc(tmpdesc, 0);
+
+	/* Prepare RNG */
+	append_operation(tmpdesc, OP_ALG_ALGSEL_RNG | OP_TYPE_CLASS1_ALG);
+
+	/* Generate RNG and left it in output data fifo */
+	append_cmd(tmpdesc, CMD_FIFO_STORE | FIFOST_TYPE_RNGFIFO | key_len);
+
+	/* Copy RNG from outfifo to class 1 Key register */
+	append_move(tmpdesc, MOVE_SRC_OUTFIFO | MOVE_DEST_CLASS1KEY |
+			MOVE_WAITCOMP | (key_len & MOVE_LEN_MASK));
+
+	/* Write the size of the key moved */
+	append_load_imm_u32(tmpdesc, key_len, LDST_CLASS_1_CCB |
+			    LDST_SRCDST_WORD_KEYSZ_REG | LDST_IMM);
+
+	bk_store = CLASS_1;
+	if (key_enc == KEY_COVER_ECB)
+		bk_store |= FIFOST_TYPE_KEY_KEK;
+	else
+		bk_store |= FIFOST_TYPE_KEY_CCM_JKEK;
+
+	/* Fifo store to save the key as black key in memory */
+	append_fifo_store(tmpdesc, black_key, black_key_len, bk_store);
+
+	dsize = desc_bytes(&tmpdesc);
+
+	/* Now allocate execution buffer and coat it with executable */
+	tdesc = kmemdup(tmpdesc, dsize, GFP_KERNEL | GFP_DMA);
+	if (!tdesc)
+		return -ENOMEM;
+
+	*desc = tdesc;
+
+	print_hex_dump_debug("black key random desc@" __stringify(__LINE__) ":",
+			     DUMP_PREFIX_ADDRESS, 16, 4, *desc,
+			     desc_bytes(*desc), 1);
+
+	return 0;
+}
+EXPORT_SYMBOL(cnstr_desc_random_black_key);
+
+/*
+ * Construct a blob encapsulation job descriptor
+ *
+ * This function dynamically constructs a blob encapsulation job descriptor
+ * from the following arguments:
+ *
+ * @desc          : Pointer to a pointer to the descriptor generated by this
+ *                  function. Caller will be responsible to kfree() this
+ *                  descriptor after execution.
+ * @black_key     : Physical pointer to a secret, normally a black or red key,
+ *                  possibly residing within an accessible secure memory page,
+ *                  of the secret to be encapsulated to an output blob.
+ * @black_key_len : Size of input secret, in bytes. This is limited to 65536
+ *                  less the size of blob overhead, since the length embeds
+ *                  into DECO pointer in/out instructions.
+ * @keycolor      : Determines if the source data is covered (black key) or
+ *                  plaintext (red key). RED_KEY or BLACK_KEY are defined in
+ *                  for this purpose.
+ * @key_enc       : If BLACK_KEY source is covered via AES-CCM, specify
+ *                  KEY_COVER_CCM, else uses AES-ECB (KEY_COVER_ECB).
+ * @trusted_key   : Trusted Key (use Job Descriptor Key Encryption Key (JDKEK)
+ *                  or Trusted Descriptor Key Encryption Key (TDKEK) to
+ *                  decrypt the key to be loaded into a Key Register).
+ * @mem_type      : Determine if encapsulated blob should be a secure memory
+ *                  blob (DATA_SECMEM), with partition data embedded with key
+ *                  material, or a general memory blob (DATA_GENMEM).
+ * @key_mod       : Pointer to a key modifier, which must reside in a
+ *                  contiguous piece of memory. Modifier will be assumed to be
+ *                  8 bytes long for a blob of type DATA_SECMEM, or 16 bytes
+ *                  long for a blob of type DATA_GENMEM
+ * @key_mod_len   : Modifier length is 8 bytes long for a blob of type
+ *                  DATA_SECMEM, or 16 bytes long for a blob of type DATA_GENMEM
+ * @blob          : Physical pointer to the destination buffer to receive the
+ *                  encapsulated output. This buffer will need to be 48 bytes
+ *                  larger than the input because of the added encapsulation
+ *                  data. The generated descriptor will account for the
+ *                  increase in size, but the caller must also account for
+ *                  this increase in the buffer allocator.
+ * @blob_len      : Size of the destination buffer to receive the
+ *                  encapsulated output.
+ * Return         : '0' on success, error code otherwise
+ *
+ * Upon completion, desc points to a buffer containing a CAAM job
+ * descriptor which encapsulates data into an externally-storable blob
+ * suitable for use across power cycles.
+ *
+ * This is an example of a black key encapsulation job into a general memory
+ * blob. Notice the 16-byte key modifier in the LOAD instruction. Also note
+ * the output 48 bytes longer than the input:
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400010           ld: ccb2-key len=16 offs=0
+ * [02] 08144891               ptr->@0x08144891
+ * [03] F800003A    seqoutptr: len=58
+ * [04] 01000000               out_ptr->@0x01000000
+ * [05] F000000A     seqinptr: len=10
+ * [06] 09745090               in_ptr->@0x09745090
+ * [07] 870D0004    operation: encap blob  reg=memory, black, format=normal
+ *
+ * This is an example of a red key encapsulation job for storing a red key
+ * into a secure memory blob. Note the 8 byte modifier on the 12 byte offset
+ * in the LOAD instruction; this accounts for blob permission storage:
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400C08           ld: ccb2-key len=8 offs=12
+ * [02] 087D0784               ptr->@0x087d0784
+ * [03] F8000050    seqoutptr: len=80
+ * [04] 09251BB2               out_ptr->@0x09251bb2
+ * [05] F0000020     seqinptr: len=32
+ * [06] 40000F31               in_ptr->@0x40000f31
+ * [07] 870D0008    operation: encap blob  reg=memory, red, sec_mem,
+ *                             format=normal
+ */
+int cnstr_desc_blob_encap(u32 **desc, dma_addr_t black_key,
+			  size_t key_len, u8 keycolor, u8 key_enc,
+			  u8 trusted_key, u8 mem_type, const void *key_mod,
+			  size_t key_mod_len, dma_addr_t blob, size_t blob_len)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize;
+	u32 bk_store;
+
+	/* Trusted key not supported */
+	if (trusted_key != UNTRUSTED_KEY)
+		return -ENOTSUPP;
+
+	memset(tmpdesc, 0, sizeof(tmpdesc));
+
+	init_job_desc(tmpdesc, 0);
+
+	/*
+	 * Key modifier works differently for secure/general memory blobs
+	 * This accounts for the permission/protection data encapsulated
+	 * within the blob if a secure memory blob is requested
+	 */
+	if (mem_type == DATA_SECMEM)
+		append_load_as_imm(tmpdesc, key_mod, key_mod_len,
+				   LDST_CLASS_2_CCB | LDST_SRCDST_BYTE_KEY |
+				   ((12 << LDST_OFFSET_SHIFT) &
+				    LDST_OFFSET_MASK));
+	else /* is general memory blob */
+		append_load_as_imm(tmpdesc, key_mod, key_mod_len,
+				   LDST_CLASS_2_CCB | LDST_SRCDST_BYTE_KEY);
+
+	/* Input data, should be somewhere in secure memory */
+	append_seq_in_ptr_intlen(tmpdesc, black_key, key_len, 0);
+
+	/*
+	 * Encapsulation output must include space for blob key encryption
+	 * key and MAC tag
+	 */
+	append_seq_out_ptr_intlen(tmpdesc, blob, CCM_BLACK_KEY_SIZE(key_len) +
+				  BLOB_OVERHEAD, 0);
+
+	bk_store = OP_PCLID_BLOB;
+	if (mem_type == DATA_SECMEM)
+		bk_store |= OP_PCL_BLOB_PTXT_SECMEM;
+
+	if (key_enc == KEY_COVER_CCM)
+		bk_store |= OP_PCL_BLOB_EKT;
+
+	/* An input black key cannot be stored in a red blob */
+	if (keycolor == BLACK_KEY)
+		bk_store |= OP_PCL_BLOB_BLACK;
+
+	/* Set blob encap, then color */
+	append_operation(tmpdesc, OP_TYPE_ENCAP_PROTOCOL | bk_store);
+
+	dsize = desc_bytes(&tmpdesc);
+
+	tdesc = kmemdup(tmpdesc, dsize, GFP_KERNEL | GFP_DMA);
+	if (!tdesc)
+		return -ENOMEM;
+
+	*desc = tdesc;
+
+	print_hex_dump_debug("blob encap desc@" __stringify(__LINE__) ":",
+			     DUMP_PREFIX_ADDRESS, 16, 4, *desc,
+			     desc_bytes(*desc), 1);
+	return 0;
+}
+EXPORT_SYMBOL(cnstr_desc_blob_encap);
+
+/*
+ * Construct a blob decapsulation job descriptor
+ *
+ * This function dynamically constructs a blob decapsulation job descriptor
+ * from the following arguments:
+ *
+ * @desc          : Pointer to a pointer to the descriptor generated by this
+ *                  function. Caller will be responsible to kfree() this
+ *                  descriptor after execution.
+ * @blob          : Physical pointer (into external memory) of the blob to
+ *                  be decapsulated. Blob must reside in a contiguous memory
+ *                  segment.
+ * @blob_len      : Size of the blob buffer to be decapsulated.
+ * @key_mod       : Pointer to a key modifier, which must reside in a
+ *                  contiguous piece of memory. Modifier will be assumed to be
+ *                  8 bytes long for a blob of type DATA_SECMEM, or 16 bytes
+ *                  long for a blob of type DATA_GENMEM
+ * @key_mod_len   : Modifier length is 8 bytes long for a blob of type
+ *                  DATA_SECMEM, or 16 bytes long for a blob of type DATA_GENMEM
+ * @black_key     : Physical pointer of the decapsulated output, possibly into
+ *                  a location within a secure memory page. Must be contiguous.
+ * @black_key_len : Size of encapsulated secret in bytes (not the size of the
+ *                  input blob).
+ * @keycolor      : Determines if the source data is covered (black key) or
+ *                  plaintext (red key). RED_KEY or BLACK_KEY are defined in
+ *                  for this purpose.
+ * @key_enc       : If BLACK_KEY source is covered via AES-CCM, specify
+ *                  KEY_COVER_CCM, else uses AES-ECB (KEY_COVER_ECB).
+ * @trusted_key   : Trusted Key (use Job Descriptor Key Encryption Key (JDKEK)
+ *                  or Trusted Descriptor Key Encryption Key (TDKEK) to
+ *                  decrypt the key to be loaded into a Key Register).
+ * @mem_type      : Determine if encapsulated blob should be a secure memory
+ *                  blob (DATA_SECMEM), with partition data embedded with key
+ *                  material, or a general memory blob (DATA_GENMEM).
+ * Return         : '0' on success, error code otherwise
+ *
+ * Upon completion, desc points to a buffer containing a CAAM job descriptor
+ * that decapsulates a key blob from external memory into a black (encrypted)
+ * key or red (plaintext) content.
+ *
+ * This is an example of a black key decapsulation job from a general memory
+ * blob. Notice the 16-byte key modifier in the LOAD instruction.
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400010           ld: ccb2-key len=16 offs=0
+ * [02] 08A63B7F               ptr->@0x08a63b7f
+ * [03] F8000010    seqoutptr: len=16
+ * [04] 01000000               out_ptr->@0x01000000
+ * [05] F000003A     seqinptr: len=58
+ * [06] 01000010               in_ptr->@0x01000010
+ * [07] 860D0004    operation: decap blob  reg=memory, black, format=normal
+ *
+ * This is an example of a red key decapsulation job for restoring a red key
+ * from a secure memory blob. Note the 8 byte modifier on the 12 byte offset
+ * in the LOAD instruction:
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400C08           ld: ccb2-key len=8 offs=12
+ * [02] 01000000               ptr->@0x01000000
+ * [03] F8000020    seqoutptr: len=32
+ * [04] 400000E6               out_ptr->@0x400000e6
+ * [05] F0000050     seqinptr: len=80
+ * [06] 08F0C0EA               in_ptr->@0x08f0c0ea
+ * [07] 860D0008    operation: decap blob  reg=memory, red, sec_mem,
+ *			       format=normal
+ */
+int cnstr_desc_blob_decap(u32 **desc, dma_addr_t blob, size_t blob_len,
+			  const void *key_mod, size_t key_mod_len,
+			  dma_addr_t black_key, size_t plaintext_len,
+			  u8 keycolor, u8 key_enc, u8 trusted_key, u8 mem_type)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize;
+	u32 bk_store;
+
+	/* Trusted key not supported */
+	if (trusted_key != UNTRUSTED_KEY)
+		return -ENOTSUPP;
+
+	memset(tmpdesc, 0, sizeof(tmpdesc));
+
+	init_job_desc(tmpdesc, 0);
+
+	/* Load key modifier */
+	if (mem_type == DATA_SECMEM)
+		append_load_as_imm(tmpdesc, key_mod, key_mod_len,
+				   LDST_CLASS_2_CCB | LDST_SRCDST_BYTE_KEY |
+				   ((12 << LDST_OFFSET_SHIFT) &
+				    LDST_OFFSET_MASK));
+	else /* is general memory blob */
+		append_load_as_imm(tmpdesc, key_mod, key_mod_len,
+				   LDST_CLASS_2_CCB | LDST_SRCDST_BYTE_KEY);
+
+	/* Compensate blob header + MAC tag over size of encapsulated secret */
+	append_seq_in_ptr_intlen(tmpdesc, blob, plaintext_len + BLOB_OVERHEAD,
+				 0);
+
+	append_seq_out_ptr_intlen(tmpdesc, black_key, plaintext_len, 0);
+
+	/* Decapsulate from secure memory partition to black blob */
+	bk_store = OP_PCLID_BLOB;
+	if (mem_type == DATA_SECMEM)
+		bk_store |= OP_PCL_BLOB_PTXT_SECMEM;
+
+	if (key_enc == KEY_COVER_CCM)
+		bk_store |= OP_PCL_BLOB_EKT;
+
+	/* An input black key cannot be stored in a red blob */
+	if (keycolor == BLACK_KEY)
+		bk_store |= OP_PCL_BLOB_BLACK;
+
+	/* Set blob encap, then color */
+	append_operation(tmpdesc, OP_TYPE_DECAP_PROTOCOL | bk_store);
+
+	dsize = desc_bytes(&tmpdesc);
+
+	tdesc = kmemdup(tmpdesc, dsize, GFP_KERNEL | GFP_DMA);
+	if (!tdesc)
+		return -ENOMEM;
+
+	*desc = tdesc;
+
+	print_hex_dump_debug("blob decap desc@" __stringify(__LINE__) ":",
+			     DUMP_PREFIX_ADDRESS, 16, 4, *desc,
+			     desc_bytes(*desc), 1);
+
+	return 0;
+}
+EXPORT_SYMBOL(cnstr_desc_blob_decap);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("NXP CAAM Black Key and Blob descriptors");
+MODULE_AUTHOR("NXP Semiconductors");
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamkeyblob_desc.h
+++ linux-ein-5.4.0/drivers/crypto/caam/caamkeyblob_desc.h
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/*
+ * Shared descriptors for CAAM black key and blob
+ *
+ * Copyright 2018-2020 NXP
+ */
+
+#ifndef _CAAMKEYBLOB_DESC_H_
+#define _CAAMKEYBLOB_DESC_H_
+
+#include <linux/types.h>
+
+#include "jr.h"
+#include "regs.h"
+#include "desc.h"
+
+#include "compat.h"
+#include "tag_object.h"
+#include "desc_constr.h"
+
+/* Defines for secure memory and general memory blobs */
+#define DATA_GENMEM 0
+#define DATA_SECMEM 1
+
+/* Encrypted key */
+#define BLACK_KEY 1
+
+/* Define key encryption/covering options */
+#define KEY_COVER_ECB 0	/* cover key in AES-ECB */
+#define KEY_COVER_CCM 1 /* cover key with AES-CCM */
+
+/* Define the trust in the key, to select either JDKEK or TDKEK */
+#define UNTRUSTED_KEY 0
+#define TRUSTED_KEY 1
+
+/* Define space required for BKEK + MAC tag storage in any blob */
+#define BLOB_OVERHEAD (32 + 16)
+
+#define PAD_16_BYTE(_key_size) (roundup(_key_size, 16))
+#define PAD_8_BYTE(_key_size) (roundup(_key_size, 8))
+
+/*
+ * ECB-Black Key will be padded with zeros to make it a
+ * multiple of 16 bytes long before it is encrypted,
+ * and the resulting Black Key will be this length.
+ */
+#define ECB_BLACK_KEY_SIZE(_key_size) (PAD_16_BYTE(_key_size))
+
+/*
+ * CCM-Black Key will always be at least 12 bytes longer,
+ * since the encapsulation uses a 6-byte nonce and adds
+ * a 6-byte ICV. But first, the key is padded as necessary so
+ * that CCM-Black Key is a multiple of 8 bytes long.
+ */
+#define NONCE_SIZE 6
+#define ICV_SIZE 6
+#define CCM_OVERHEAD (NONCE_SIZE + ICV_SIZE)
+#define CCM_BLACK_KEY_SIZE(_key_size) (PAD_8_BYTE(_key_size) \
+							+ CCM_OVERHEAD)
+
+static inline int secret_size_in_ccm_black_key(int key_size)
+{
+	return ((key_size >= CCM_OVERHEAD) ? key_size - CCM_OVERHEAD : 0);
+}
+
+#define SECRET_SIZE_IN_CCM_BLACK_KEY(_key_size) \
+	secret_size_in_ccm_black_key(_key_size)
+
+/* A red key is not encrypted so its size is the same */
+#define RED_KEY_SIZE(_key_size) (_key_size)
+
+/*
+ * Based on memory type, the key modifier length
+ * can be either 8-byte or 16-byte.
+ */
+#define KEYMOD_SIZE_SM 8
+#define KEYMOD_SIZE_GM 16
+
+/* Create job descriptor to cover key */
+int cnstr_desc_black_key(u32 **desc, char *key, size_t key_len,
+			 dma_addr_t black_key, size_t black_key_len,
+			 u8 key_enc, u8 trusted_key);
+
+/* Create job descriptor to generate a random key and cover it */
+int cnstr_desc_random_black_key(u32 **desc, size_t key_len,
+				dma_addr_t black_key, size_t black_key_len,
+				u8 key_enc, u8 trusted_key);
+
+/* Encapsulate data in a blob */
+int cnstr_desc_blob_encap(u32 **desc, dma_addr_t black_key,
+			  size_t black_key_len, u8 color, u8 key_enc,
+			  u8 trusted_key, u8 mem_type, const void *key_mod,
+			  size_t key_mod_len, dma_addr_t blob, size_t blob_len);
+
+/* Decapsulate data from a blob */
+int cnstr_desc_blob_decap(u32 **desc, dma_addr_t blob, size_t blob_len,
+			  const void *key_mod, size_t key_mod_len,
+			  dma_addr_t black_key, size_t black_key_len,
+			  u8 keycolor, u8 key_enc, u8 trusted_key, u8 mem_type);
+
+#endif /* _CAAMKEYBLOB_DESC_H_ */
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamkeyblob_test.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamkeyblob_test.c
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2018-2020 NXP
+ *
+ * Test of black key generation from a plaintext (of different size)
+ * and from random.
+ * The random black key is encapsulated into a blob.
+ * Next, the blob is decapsulated and the new obtained black key is
+ * compared to the random black key.
+ */
+#include <linux/module.h>
+#include "caamkeyblob.h"
+
+#define MAX_INPUT_SIZE 64
+#define KEY_ENCRYPTION_ECB 1
+#define KEY_ENCRYPTION_CCM 9
+
+static char input[MAX_INPUT_SIZE];
+
+static int create_black_key(struct device *dev, struct keyblob_info *info)
+{
+	int ret;
+
+	ret = generate_black_key(dev, info);
+	if (ret)
+		dev_err(dev, "black key of size: %zd, type: %d returned %d",
+			info->key_len, info->type, ret);
+
+	return (ret) ? 1 : 0;
+}
+
+static int black_key_test(void)
+{
+	struct device *dev;
+	struct keyblob_info *info;
+	int i, ret = 0, nb_errors = 0;
+	unsigned char tmp_black_key[MAX_BLACK_KEY_SIZE];
+	size_t tmp_black_key_len = 0;
+
+	dev = caam_jr_alloc();
+	if (!dev)
+		return -ENOMEM;
+
+	info = kmalloc(sizeof(*info), GFP_KERNEL);
+	if (!info)
+		return -ENOMEM;
+
+	info->key = input;
+
+	for (i = 1; i <= MAX_INPUT_SIZE; i++) {
+		info->key_len = i;
+
+		/* Create a black key encrypted with AES-ECB */
+		info->type = KEY_ENCRYPTION_ECB;
+		info->black_key_len = MAX_INPUT_SIZE;
+		nb_errors += create_black_key(dev, info);
+
+		/* Create a black key encrypted with AES-CCM */
+		info->type = KEY_ENCRYPTION_CCM;
+		info->black_key_len = MAX_INPUT_SIZE + CCM_OVERHEAD;
+		nb_errors += create_black_key(dev, info);
+	}
+
+	/* Create, from random, a black key encrypted with AES-ECB */
+	info->key = NULL;
+	info->type = KEY_ENCRYPTION_ECB;
+	info->black_key_len = MAX_INPUT_SIZE;
+	ret = create_black_key(dev, info);
+	nb_errors += (ret) ? 1 : 0;
+
+	/* Save it for later to compare it */
+	tmp_black_key_len = info->black_key_len;
+	memcpy(tmp_black_key, info->black_key, tmp_black_key_len);
+
+	/* Encapsulate the random black key into a black blob */
+	info->key = NULL;
+	/* Set key modifier, used as revision number, for blob */
+	info->key_mod = caam_key_modifier;
+	info->key_mod_len = ARRAY_SIZE(caam_key_modifier);
+	/* Black key, encrypted with ECB-AES, in General Memory */
+	info->type = KEY_ENCRYPTION_ECB;
+	info->key_len = MAX_INPUT_SIZE;
+	info->blob_len = MAX_BLOB_SIZE;
+	ret = caam_blob_encap(dev, info);
+	nb_errors += (ret) ? 1 : 0;
+
+	/* Decapsulate the black key from the above black blob */
+	ret = caam_blob_decap(dev, info);
+	nb_errors += (ret) ? 1 : 0;
+
+	/*
+	 * Compare the generated black key with
+	 * the one decapsulated from the blob
+	 */
+	if (info->black_key_len == tmp_black_key_len)
+		ret = memcmp(tmp_black_key, info->black_key, tmp_black_key_len);
+	else
+		ret = 1;
+	nb_errors += ret;
+
+	/*
+	 * Check number of errors.
+	 * If nb_errors > 0, at least one operation failed, success otherwise
+	 */
+	pr_info("Nb errors: %d\n", nb_errors);
+
+	caam_jr_free(dev);
+	kfree(info);
+
+	return nb_errors;
+}
+
+static int black_key_test_init(void)
+{
+	return black_key_test();
+}
+
+static void black_key_test_exit(void)
+{
+}
+
+module_init(black_key_test_init);
+module_exit(black_key_test_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("NXP CAAM Black Key and Blob Test");
+MODULE_AUTHOR("NXP Semiconductors");
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamkeygen.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamkeygen.c
@@ -0,0 +1,629 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2020 NXP
+ */
+
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/fs.h>
+#include <linux/miscdevice.h>
+#include <linux/device.h>
+#include <linux/slab.h>
+#include <linux/uaccess.h>
+#include <linux/ioctl.h>
+
+#include "caamkeyblob.h"
+#include "intern.h"
+#include <linux/caam_keygen.h>
+
+#define DEVICE_NAME "caam-keygen"
+
+static long caam_keygen_ioctl(struct file *file, unsigned int cmd,
+			      unsigned long arg);
+
+/**
+ * tag_black_obj      - Tag a black object (key/blob) with a tag object header.
+ *
+ * @info              : keyblob_info structure, which contains
+ *                      the black key/blob, obtained from CAAM,
+ *                      that needs to be tagged
+ * @black_max_len     : The maximum size of the black object (blob/key)
+ * @blob              : Used to determine if it's a blob or key object
+ *
+ * Return             : '0' on success, error code otherwise
+ */
+static int tag_black_obj(struct keyblob_info *info, size_t black_max_len,
+			 bool blob)
+{
+	struct header_conf tag;
+	u32 type;
+	int ret;
+	u32 size_tagged = black_max_len;
+
+	if (!info)
+		return -EINVAL;
+
+	type = info->type;
+
+	/* Prepare and set the tag */
+	if (blob) {
+		init_tag_object_header(&tag, 0, type, info->key_len,
+				       info->blob_len);
+		ret = set_tag_object_header_conf(&tag, info->blob,
+						 info->blob_len,
+						 &size_tagged);
+	} else {
+		init_tag_object_header(&tag, 0, type, info->key_len,
+				       info->black_key_len);
+		ret = set_tag_object_header_conf(&tag, info->black_key,
+						 info->black_key_len,
+						 &size_tagged);
+	}
+	if (ret)
+		return ret;
+
+	/* Update the size of the black key tagged */
+	if (blob)
+		info->blob_len = size_tagged;
+	else
+		info->black_key_len = size_tagged;
+
+	return ret;
+}
+/**
+ * send_err_msg      - Send the error message from kernel to user-space
+ *
+ * @msg              : The message to be sent
+ * @output           : The output buffer where we want to copy the error msg
+ * @size             : The size of output buffer
+ */
+static void send_err_msg(char *msg, void __user *output, size_t size)
+{
+	size_t min_s;
+	char null_ch = 0;
+
+	/* Not enough space to copy any message */
+	if (size <= 1)
+		return;
+
+	min_s = min(size - 1, strlen(msg));
+	/*
+	 * Avoid compile and checkpatch warnings, since we don't
+	 * care about return value from copy_to_user
+	 */
+	(void)(copy_to_user(output, msg, min_s) + 1);
+	/* Copy null terminator */
+	(void)(copy_to_user((output + min_s), &null_ch, 1) + 1);
+}
+
+/**
+ * validate_key_size - Validate the key size from user.
+ *                     This can be the exact size given by user when
+ *                     generating a black key from random (with -s),
+ *                     or the size of the plaintext (with -t).
+ *
+ * @key_len          : The size of key we want to validate
+ * @output           : The output buffer where we want to copy the error msg
+ * @size             : The size of output buffer
+ *
+ *Return             : '0' on success, error code otherwise
+ */
+static int validate_key_size(size_t key_len, void __user *output, size_t size)
+{
+	char *msg = NULL;
+
+	if (key_len < MIN_KEY_SIZE || key_len > MAX_KEY_SIZE) {
+		msg = "Invalid key size, expected values are between 16 and 64 bytes.\n";
+		send_err_msg(msg, output, size);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+/**
+ * validate_input    - Validate the input from user and set the
+ *                     keyblob_info structure.
+ *                     This contains the input key in case of black key
+ *                     generated from plaintext or size for random
+ *                     black key.
+ *
+ * @key_crt          : Structure with data from user
+ * @arg              : User-space argument from ioctl call
+ * @info             : keyblob_info structure, will be updated with all the
+ *                     data from user-space
+ * @create_key_op    : Used to determine if it's a create or import operation
+ *
+ * Return            : '0' on success, error code otherwise
+ */
+static int validate_input(struct caam_keygen_cmd *key_crt, unsigned long arg,
+			  struct keyblob_info *info, bool create_key_op)
+{
+	char *tmp, *msg;
+	size_t tmp_size;
+	bool random = false;
+	int ret = 0;
+	u32 tmp_len = 0;
+	char null_ch = 0;
+
+	/*
+	 * So far, we only support Black keys, encrypted with JDKEK,
+	 * kept in general memory, non-secure state.
+	 * Therefore, default value for type is 1.
+	 */
+	u32 type = 1;
+
+	if (copy_from_user(key_crt, (void __user *)arg,
+			   sizeof(struct caam_keygen_cmd)))
+		return -EFAULT;
+
+	/* Get blob_len from user. */
+	info->blob_len = key_crt->blob_len;
+	/* Get black_key_len from user. */
+	info->black_key_len = key_crt->black_key_len;
+
+	/*
+	 * Based on operation type validate a different set of input data.
+	 *
+	 * For key creation, validate the Encrypted Key Type,
+	 * the Key Mode and Key Value
+	 */
+	if (create_key_op) {
+		/*
+		 * Validate arguments received from user.
+		 * These must be at least 1 since
+		 * they have null terminator.
+		 */
+		if (key_crt->key_enc_len < 1 || key_crt->key_mode_len < 1 ||
+		    key_crt->key_value_len < 1) {
+			msg = "Invalid arguments.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			return -EFAULT;
+		}
+		/*
+		 * Allocate memory for temporary buffer used to
+		 * get the user arguments from user-space
+		 */
+		tmp_size = max_t(size_t, key_crt->key_enc_len,
+				 max_t(size_t, key_crt->key_mode_len,
+				       key_crt->key_value_len)) + 1;
+		tmp = kmalloc(tmp_size, GFP_KERNEL);
+		if (!tmp) {
+			msg = "Unable to allocate memory for temporary buffer.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			return -ENOMEM;
+		}
+		/* Add null terminator */
+		tmp[tmp_size - 1] = null_ch;
+		/*
+		 * Validate and set, in type, the Encrypted Key Type
+		 * given from user-space.
+		 * This must be ecb or ccm.
+		 */
+		if (copy_from_user(tmp, u64_to_user_ptr(key_crt->key_enc),
+				   key_crt->key_enc_len)) {
+			msg = "Unable to copy from user the Encrypted Key Type.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			ret = -EFAULT;
+			goto free_resource;
+		}
+		if (!strcmp(tmp, "ccm")) {
+			type |= BIT(TAG_OBJ_EKT_OFFSET);
+		} else if (strcmp(tmp, "ecb")) {
+			msg = "Invalid argument for Encrypted Key Type, expected ecb or ccm.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			ret = -EINVAL;
+			goto free_resource;
+		}
+		/*
+		 * Validate the Key Mode given from user-space.
+		 * This must be -t (text), for a black key generated
+		 * from a plaintext, or -s (size) for a black key
+		 * generated from random.
+		 */
+		if (copy_from_user(tmp, u64_to_user_ptr(key_crt->key_mode),
+				   key_crt->key_mode_len)) {
+			msg = "Unable to copy from user the Key Mode: random (-s) or plaintext (-t).\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			ret = -EFAULT;
+			goto free_resource;
+		}
+		if (!strcmp(tmp, "-s")) {
+			random = true; /* black key generated from random */
+		} else if (strcmp(tmp, "-t")) {
+			msg = "Invalid argument for Key Mode, expected -s or -t.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			ret = -EINVAL;
+			goto free_resource;
+		}
+		/*
+		 * Validate and set, into keyblob_info structure,
+		 * the plaintext or key size, based on Key Mode.
+		 */
+		if (copy_from_user(tmp, u64_to_user_ptr(key_crt->key_value),
+				   key_crt->key_value_len)) {
+			msg = "Unable to copy from user the Key Value: size or plaintext.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			ret = -EFAULT;
+			goto free_resource;
+		}
+		/* Black key generated from random, get its size */
+		if (random) {
+			info->key = NULL;
+			ret = kstrtou32(tmp, 10, &tmp_len);
+			if (ret != 0) {
+				msg = "Invalid key size.\n";
+				send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+					     key_crt->blob_len);
+				goto free_resource;
+			}
+			ret = validate_key_size(tmp_len,
+						u64_to_user_ptr(key_crt->blob),
+						key_crt->blob_len);
+			if (ret)
+				goto free_resource;
+
+			info->key_len = tmp_len;
+		} else {
+			/*
+			 * Black key generated from plaintext,
+			 * get the plaintext (input key) and its size
+			 */
+			ret = validate_key_size(strlen(tmp),
+						u64_to_user_ptr(key_crt->blob),
+						key_crt->blob_len);
+			if (ret)
+				goto free_resource;
+
+			info->key = tmp;
+			info->key_len = strlen(tmp);
+		}
+		info->type = type;
+	} else {
+		/* For key import, get the blob from user-space */
+		if (copy_from_user(info->blob, u64_to_user_ptr(key_crt->blob),
+				   info->blob_len)) {
+			msg = "Unable to copy from user the blob.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->black_key),
+				     key_crt->black_key_len);
+			return -EFAULT;
+		}
+	}
+
+	goto exit;
+
+free_resource:
+	kfree(tmp);
+
+exit:
+	return ret;
+}
+
+/**
+ * keygen_create_keyblob - Generate key and blob
+ *
+ * @info             : keyblob_info structure, will be updated with
+ *                     the black key and blob data from CAAM
+ *
+ * Return            : '0' on success, error code otherwise
+ */
+static int keygen_create_keyblob(struct keyblob_info *info)
+{
+	int ret = 0;
+	struct device *jrdev;
+
+	/* Allocate caam job ring for operation to be performed from CAAM */
+	jrdev = caam_jr_alloc();
+	if (IS_ERR(jrdev)) {
+		pr_err("Job Ring Device allocation failed\n");
+		return PTR_ERR(jrdev);
+	}
+
+	/* Create a black key */
+	ret = generate_black_key(jrdev, info);
+	if (ret) {
+		dev_err(jrdev, "Black key generation failed: (%d)\n", ret);
+		goto free_jr;
+	}
+
+	/* Clear the input key, if exists */
+	if (info->key)
+		memset(info->key, 0, info->key_len);
+
+	/* Set key modifier, used as revision number, for blob */
+	info->key_mod = caam_key_modifier;
+	info->key_mod_len = ARRAY_SIZE(caam_key_modifier);
+
+	/*
+	 * Encapsulate the key, into a black blob, in general memory
+	 * (the only memory type supported, right now)
+	 */
+	ret = caam_blob_encap(jrdev, info);
+	if (ret) {
+		dev_err(jrdev, "Blob encapsulation of black key failed: %d\n",
+			ret);
+		goto free_jr;
+	}
+
+	/* Tag the black key so it can be passed to CAAM Crypto API */
+	ret = tag_black_obj(info, sizeof(info->black_key), false);
+	if (ret) {
+		dev_err(jrdev, "Black key tagging failed: %d\n", ret);
+		goto free_jr;
+	}
+
+	/* Tag the black blob so it can be passed to CAAM Crypto API */
+	ret = tag_black_obj(info, sizeof(info->blob), true);
+	if (ret) {
+		dev_err(jrdev, "Black blob tagging failed: %d\n", ret);
+		goto free_jr;
+	}
+
+free_jr:
+	caam_jr_free(jrdev);
+
+	return ret;
+}
+
+/**
+ * keygen_import_key - Import a black key from a blob
+ *
+ * @info             : keyblob_info structure, will be updated with
+ *                     the black key obtained after blob decapsulation by CAAM
+ *
+ * Return            : '0' on success, error code otherwise
+ */
+static int keygen_import_key(struct keyblob_info *info)
+{
+	int ret = 0;
+	struct device *jrdev;
+	struct header_conf *header;
+	struct tagged_object *tag_obj;
+
+	/* Allocate CAAM Job Ring for operation to be performed from CAAM */
+	jrdev = caam_jr_alloc();
+	if (IS_ERR(jrdev)) {
+		pr_err("Job Ring Device allocation failed\n");
+		return PTR_ERR(jrdev);
+	}
+
+	/* Set key modifier, used as revision number, for blob */
+	info->key_mod = caam_key_modifier;
+	info->key_mod_len = ARRAY_SIZE(caam_key_modifier);
+
+	print_hex_dump_debug("input blob @ " __stringify(__LINE__) " : ",
+			     DUMP_PREFIX_ADDRESS, 16, 4, info->blob,
+			     info->blob_len, 1);
+
+	/* Check if one can retrieve the tag object header configuration */
+	if (info->blob_len <= TAG_OVERHEAD_SIZE) {
+		dev_err(jrdev, "Invalid blob length\n");
+		ret = -EINVAL;
+		goto free_jr;
+	}
+
+	/* Retrieve the tag object */
+	tag_obj = (struct tagged_object *)info->blob;
+
+	/*
+	 * Check tag object header configuration
+	 * and retrieve the tag object header configuration
+	 */
+	if (is_valid_header_conf(&tag_obj->header)) {
+		header = &tag_obj->header;
+	} else {
+		dev_err(jrdev,
+			"Unable to get tag object header configuration for blob\n");
+		ret = -EINVAL;
+		goto free_jr;
+	}
+
+	info->key_len = header->red_key_len;
+
+	/* Validate the red key size extracted from blob */
+	if (info->key_len < MIN_KEY_SIZE || info->key_len > MAX_KEY_SIZE) {
+		dev_err(jrdev,
+			"Invalid red key length extracted from blob, expected values are between 16 and 64 bytes\n");
+		ret = -EINVAL;
+		goto free_jr;
+	}
+
+	info->type = header->type;
+
+	/* Update blob length by removing the header size */
+	info->blob_len -= TAG_OVERHEAD_SIZE;
+
+	/*
+	 * Check the received, from user, blob length
+	 * with the one from tag header
+	 */
+	if (info->blob_len != header->obj_len) {
+		dev_err(jrdev, "Mismatch between received blob length and the one from tag header\n");
+		ret = -EINVAL;
+		goto free_jr;
+	}
+
+	/*
+	 * Decapsulate the blob into a black key,
+	 * in general memory (the only memory type supported, right now)
+	 */
+	ret = caam_blob_decap(jrdev, info);
+	if (ret) {
+		dev_err(jrdev, "Blob decapsulation failed: %d\n", ret);
+		goto free_jr;
+	}
+
+	/* Tag the black key so it can be passed to CAAM Crypto API */
+	ret = tag_black_obj(info, sizeof(info->black_key), false);
+	if (ret)
+		dev_err(jrdev, "Black key tagging failed: %d\n", ret);
+
+free_jr:
+	caam_jr_free(jrdev);
+
+	return ret;
+}
+
+/**
+ * send_output       - Send the output data (tagged key and blob)
+ *                     from kernel to user-space.
+ *
+ * @key_crt          : Structure used to transfer data
+ *                     from user-space to kernel
+ * @info             : keyblob_info structure, which contains all
+ *                     the data obtained from CAAM that needs to
+ *                     be transferred to user-space
+ * @create_key_op    : Used to determine if it's a create or import operation
+ * @err              : Error code received from previous operations
+ *
+ * Return            : '0' on success, error code otherwise
+ */
+static int send_output(struct caam_keygen_cmd *key_crt, unsigned long arg,
+		       struct keyblob_info *info, bool create_key_op, int err)
+{
+	int ret = 0;
+	char *msg;
+
+	/* Free resource used on validate_input */
+	kfree(info->key);
+
+	if (err)
+		return err;
+
+	/* Check if there's enough space to copy black key to user */
+	if (key_crt->black_key_len < info->black_key_len) {
+		msg = "Not enough space for black key.\n";
+		send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+			     key_crt->blob_len);
+		/* Send, to user, the necessary size for key */
+		key_crt->black_key_len = info->black_key_len;
+
+		ret = -EINVAL;
+		goto exit;
+	}
+	key_crt->black_key_len = info->black_key_len;
+
+	/* For key import, copy to user only the black key */
+	if (copy_to_user(u64_to_user_ptr(key_crt->black_key),
+			 info->black_key, info->black_key_len))
+		return -EFAULT;
+
+	/* For key creation, copy to user, also, the blob */
+	if (create_key_op) {
+		/* Check if there's enough space to copy blob user */
+		if (key_crt->blob_len < info->blob_len) {
+			msg = "Not enough space for blob key.\n";
+			send_err_msg(msg, u64_to_user_ptr(key_crt->blob),
+				     key_crt->blob_len);
+			/* Send, to user, the necessary size for blob */
+			key_crt->blob_len = info->blob_len;
+
+			ret = -EINVAL;
+			goto exit;
+		}
+
+		key_crt->blob_len = info->blob_len;
+
+		if (copy_to_user(u64_to_user_ptr(key_crt->blob), info->blob,
+				 info->blob_len))
+			return -EFAULT;
+	}
+
+exit:
+	if (copy_to_user((void __user *)arg, key_crt,
+			 sizeof(struct caam_keygen_cmd)))
+		return -EFAULT;
+
+	return ret;
+}
+
+static long caam_keygen_ioctl(struct file *file, unsigned int cmd,
+			      unsigned long arg)
+{
+	int ret = 0;
+	struct keyblob_info info = {.key = NULL};
+	struct caam_keygen_cmd key_crt;
+	/* Used to determine if it's a create or import operation */
+	bool create_key_op = false;
+
+	switch (cmd) {
+	case CAAM_KEYGEN_IOCTL_CREATE:
+	{
+		create_key_op = true;
+
+		/* Validate user-space input */
+		ret = validate_input(&key_crt, arg, &info, create_key_op);
+		if (ret)
+			break;
+
+		/* Create tagged key and blob */
+		ret = keygen_create_keyblob(&info);
+
+		/* Send data from kernel to user-space */
+		ret = send_output(&key_crt, arg, &info, create_key_op, ret);
+
+		break;
+	}
+	case CAAM_KEYGEN_IOCTL_IMPORT:
+	{
+		/* Validate user-space input */
+		ret = validate_input(&key_crt, arg, &info, create_key_op);
+		if (ret)
+			break;
+
+		/* Import tagged key from blob */
+		ret = keygen_import_key(&info);
+
+		/* Send data from kernel to user-space */
+		ret = send_output(&key_crt, arg, &info, create_key_op, ret);
+
+		break;
+	}
+	default:
+		ret = -ENOTTY;
+	}
+
+	return ret;
+}
+
+static const struct file_operations fops = {
+	.owner = THIS_MODULE,
+	.unlocked_ioctl = caam_keygen_ioctl,
+	.compat_ioctl = compat_ptr_ioctl,
+};
+
+static struct miscdevice caam_keygen_dev = {
+	.minor = MISC_DYNAMIC_MINOR,
+	.name = DEVICE_NAME,
+	.fops = &fops
+};
+
+int caam_keygen_init(void)
+{
+	int ret;
+
+	ret = misc_register(&caam_keygen_dev);
+	if (ret) {
+		pr_err("Failed to register device %s\n",
+		       caam_keygen_dev.name);
+		return ret;
+	}
+
+	pr_info("Device %s registered\n", caam_keygen_dev.name);
+
+	return 0;
+}
+
+void caam_keygen_exit(void)
+{
+	misc_deregister(&caam_keygen_dev);
+
+	pr_info("caam_keygen unregistered\n");
+}
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caampkc.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caampkc.c
@@ -225,7 +225,9 @@
 		if (len && *buff)
 			break;
 
-		sg_miter_next(&miter);
+		if (!sg_miter_next(&miter))
+			break;
+
 		buff = miter.addr;
 		len = miter.length;
 
@@ -252,9 +254,9 @@
 	gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
 		       GFP_KERNEL : GFP_ATOMIC;
 	int sg_flags = (flags == GFP_ATOMIC) ? SG_MITER_ATOMIC : 0;
-	int sgc;
 	int sec4_sg_index, sec4_sg_len = 0, sec4_sg_bytes;
 	int src_nents, dst_nents;
+	int mapped_src_nents, mapped_dst_nents;
 	unsigned int diff_size = 0;
 	int lzeros;
 
@@ -285,13 +287,27 @@
 				     req_ctx->fixup_src_len);
 	dst_nents = sg_nents_for_len(req->dst, req->dst_len);
 
-	if (!diff_size && src_nents == 1)
+	mapped_src_nents = dma_map_sg(dev, req_ctx->fixup_src, src_nents,
+				      DMA_TO_DEVICE);
+	if (unlikely(!mapped_src_nents)) {
+		dev_err(dev, "unable to map source\n");
+		return ERR_PTR(-ENOMEM);
+	}
+	mapped_dst_nents = dma_map_sg(dev, req->dst, dst_nents,
+				      DMA_FROM_DEVICE);
+	if (unlikely(!mapped_dst_nents)) {
+		dev_err(dev, "unable to map destination\n");
+		goto src_fail;
+	}
+
+	if (!diff_size && mapped_src_nents == 1)
 		sec4_sg_len = 0; /* no need for an input hw s/g table */
 	else
-		sec4_sg_len = src_nents + !!diff_size;
+		sec4_sg_len = mapped_src_nents + !!diff_size;
 	sec4_sg_index = sec4_sg_len;
-	if (dst_nents > 1)
-		sec4_sg_len += pad_sg_nents(dst_nents);
+
+	if (mapped_dst_nents > 1)
+		sec4_sg_len += pad_sg_nents(mapped_dst_nents);
 	else
 		sec4_sg_len = pad_sg_nents(sec4_sg_len);
 
@@ -301,19 +317,7 @@
 	edesc = kzalloc(sizeof(*edesc) + desclen + sec4_sg_bytes,
 			GFP_DMA | flags);
 	if (!edesc)
-		return ERR_PTR(-ENOMEM);
-
-	sgc = dma_map_sg(dev, req_ctx->fixup_src, src_nents, DMA_TO_DEVICE);
-	if (unlikely(!sgc)) {
-		dev_err(dev, "unable to map source\n");
-		goto src_fail;
-	}
-
-	sgc = dma_map_sg(dev, req->dst, dst_nents, DMA_FROM_DEVICE);
-	if (unlikely(!sgc)) {
-		dev_err(dev, "unable to map destination\n");
 		goto dst_fail;
-	}
 
 	edesc->sec4_sg = (void *)edesc + sizeof(*edesc) + desclen;
 	if (diff_size)
@@ -324,7 +328,7 @@
 		sg_to_sec4_sg_last(req_ctx->fixup_src, req_ctx->fixup_src_len,
 				   edesc->sec4_sg + !!diff_size, 0);
 
-	if (dst_nents > 1)
+	if (mapped_dst_nents > 1)
 		sg_to_sec4_sg_last(req->dst, req->dst_len,
 				   edesc->sec4_sg + sec4_sg_index, 0);
 
@@ -335,6 +339,9 @@
 	if (!sec4_sg_bytes)
 		return edesc;
 
+	edesc->mapped_src_nents = mapped_src_nents;
+	edesc->mapped_dst_nents = mapped_dst_nents;
+
 	edesc->sec4_sg_dma = dma_map_single(dev, edesc->sec4_sg,
 					    sec4_sg_bytes, DMA_TO_DEVICE);
 	if (dma_mapping_error(dev, edesc->sec4_sg_dma)) {
@@ -351,11 +358,11 @@
 	return edesc;
 
 sec4_sg_fail:
-	dma_unmap_sg(dev, req->dst, dst_nents, DMA_FROM_DEVICE);
+	kfree(edesc);
 dst_fail:
-	dma_unmap_sg(dev, req_ctx->fixup_src, src_nents, DMA_TO_DEVICE);
+	dma_unmap_sg(dev, req->dst, dst_nents, DMA_FROM_DEVICE);
 src_fail:
-	kfree(edesc);
+	dma_unmap_sg(dev, req_ctx->fixup_src, src_nents, DMA_TO_DEVICE);
 	return ERR_PTR(-ENOMEM);
 }
 
@@ -383,15 +390,15 @@
 		return -ENOMEM;
 	}
 
-	if (edesc->src_nents > 1) {
+	if (edesc->mapped_src_nents > 1) {
 		pdb->sgf |= RSA_PDB_SGF_F;
 		pdb->f_dma = edesc->sec4_sg_dma;
-		sec4_sg_index += edesc->src_nents;
+		sec4_sg_index += edesc->mapped_src_nents;
 	} else {
 		pdb->f_dma = sg_dma_address(req_ctx->fixup_src);
 	}
 
-	if (edesc->dst_nents > 1) {
+	if (edesc->mapped_dst_nents > 1) {
 		pdb->sgf |= RSA_PDB_SGF_G;
 		pdb->g_dma = edesc->sec4_sg_dma +
 			     sec4_sg_index * sizeof(struct sec4_sg_entry);
@@ -428,17 +435,18 @@
 		return -ENOMEM;
 	}
 
-	if (edesc->src_nents > 1) {
+	if (edesc->mapped_src_nents > 1) {
 		pdb->sgf |= RSA_PRIV_PDB_SGF_G;
 		pdb->g_dma = edesc->sec4_sg_dma;
-		sec4_sg_index += edesc->src_nents;
+		sec4_sg_index += edesc->mapped_src_nents;
+
 	} else {
 		struct caam_rsa_req_ctx *req_ctx = akcipher_request_ctx(req);
 
 		pdb->g_dma = sg_dma_address(req_ctx->fixup_src);
 	}
 
-	if (edesc->dst_nents > 1) {
+	if (edesc->mapped_dst_nents > 1) {
 		pdb->sgf |= RSA_PRIV_PDB_SGF_F;
 		pdb->f_dma = edesc->sec4_sg_dma +
 			     sec4_sg_index * sizeof(struct sec4_sg_entry);
@@ -493,17 +501,17 @@
 		goto unmap_tmp1;
 	}
 
-	if (edesc->src_nents > 1) {
+	if (edesc->mapped_src_nents > 1) {
 		pdb->sgf |= RSA_PRIV_PDB_SGF_G;
 		pdb->g_dma = edesc->sec4_sg_dma;
-		sec4_sg_index += edesc->src_nents;
+		sec4_sg_index += edesc->mapped_src_nents;
 	} else {
 		struct caam_rsa_req_ctx *req_ctx = akcipher_request_ctx(req);
 
 		pdb->g_dma = sg_dma_address(req_ctx->fixup_src);
 	}
 
-	if (edesc->dst_nents > 1) {
+	if (edesc->mapped_dst_nents > 1) {
 		pdb->sgf |= RSA_PRIV_PDB_SGF_F;
 		pdb->f_dma = edesc->sec4_sg_dma +
 			     sec4_sg_index * sizeof(struct sec4_sg_entry);
@@ -582,17 +590,17 @@
 		goto unmap_tmp1;
 	}
 
-	if (edesc->src_nents > 1) {
+	if (edesc->mapped_src_nents > 1) {
 		pdb->sgf |= RSA_PRIV_PDB_SGF_G;
 		pdb->g_dma = edesc->sec4_sg_dma;
-		sec4_sg_index += edesc->src_nents;
+		sec4_sg_index += edesc->mapped_src_nents;
 	} else {
 		struct caam_rsa_req_ctx *req_ctx = akcipher_request_ctx(req);
 
 		pdb->g_dma = sg_dma_address(req_ctx->fixup_src);
 	}
 
-	if (edesc->dst_nents > 1) {
+	if (edesc->mapped_dst_nents > 1) {
 		pdb->sgf |= RSA_PRIV_PDB_SGF_F;
 		pdb->f_dma = edesc->sec4_sg_dma +
 			     sec4_sg_index * sizeof(struct sec4_sg_entry);
@@ -1087,16 +1095,27 @@
 int caam_pkc_init(struct device *ctrldev)
 {
 	struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
-	u32 pk_inst;
+	u32 pk_inst, pkha;
 	int err;
 	init_done = false;
 
 	/* Determine public key hardware accelerator presence. */
-	if (priv->era < 10)
-		pk_inst = (rd_reg32(&priv->ctrl->perfmon.cha_num_ls) &
+	if (priv->era < 10) {
+		pk_inst = (rd_reg32(&priv->jr[0]->perfmon.cha_num_ls) &
 			   CHA_ID_LS_PK_MASK) >> CHA_ID_LS_PK_SHIFT;
-	else
-		pk_inst = rd_reg32(&priv->ctrl->vreg.pkha) & CHA_VER_NUM_MASK;
+	} else {
+		pkha = rd_reg32(&priv->jr[0]->vreg.pkha);
+		pk_inst = pkha & CHA_VER_NUM_MASK;
+
+		/*
+		 * Newer CAAMs support partially disabled functionality. If this is the
+		 * case, the number is non-zero, but this bit is set to indicate that
+		 * no encryption or decryption is supported. Only signing and verifying
+		 * is supported.
+		 */
+		if (pkha & CHA_VER_MISC_PKHA_NO_CRYPT)
+			pk_inst = 0;
+	}
 
 	/* Do not register algorithms if PKHA is not present. */
 	if (!pk_inst)
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caampkc.h
+++ linux-ein-5.4.0/drivers/crypto/caam/caampkc.h
@@ -112,8 +112,10 @@
 
 /**
  * rsa_edesc - s/w-extended rsa descriptor
- * @src_nents     : number of segments in input scatterlist
- * @dst_nents     : number of segments in output scatterlist
+ * @src_nents     : number of segments in input s/w scatterlist
+ * @dst_nents     : number of segments in output s/w scatterlist
+ * @mapped_src_nents: number of segments in input h/w link table
+ * @mapped_dst_nents: number of segments in output h/w link table
  * @sec4_sg_bytes : length of h/w link table
  * @sec4_sg_dma   : dma address of h/w link table
  * @sec4_sg       : pointer to h/w link table
@@ -123,6 +125,8 @@
 struct rsa_edesc {
 	int src_nents;
 	int dst_nents;
+	int mapped_src_nents;
+	int mapped_dst_nents;
 	int sec4_sg_bytes;
 	dma_addr_t sec4_sg_dma;
 	struct sec4_sg_entry *sec4_sg;
--- linux-ein-5.4.0.orig/drivers/crypto/caam/caamrng.c
+++ linux-ein-5.4.0/drivers/crypto/caam/caamrng.c
@@ -70,6 +70,7 @@
 
 /* rng per-device context */
 struct caam_rng_ctx {
+	struct hwrng rng;
 	struct device *jrdev;
 	dma_addr_t sh_desc_dma;
 	u32 sh_desc[DESC_RNG_LEN];
@@ -78,13 +79,10 @@
 	struct buf_data bufs[2];
 };
 
-static struct caam_rng_ctx *rng_ctx;
-
-/*
- * Variable used to avoid double free of resources in case
- * algorithm registration was unsuccessful
- */
-static bool init_done;
+static struct caam_rng_ctx *to_caam_rng_ctx(struct hwrng *r)
+{
+	return (struct caam_rng_ctx *)r->priv;
+}
 
 static inline void rng_unmap_buf(struct device *jrdev, struct buf_data *bd)
 {
@@ -143,7 +141,7 @@
 
 static int caam_read(struct hwrng *rng, void *data, size_t max, bool wait)
 {
-	struct caam_rng_ctx *ctx = rng_ctx;
+	struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng);
 	struct buf_data *bd = &ctx->bufs[ctx->current_buf];
 	int next_buf_idx, copied_idx;
 	int err;
@@ -246,18 +244,63 @@
 
 static void caam_cleanup(struct hwrng *rng)
 {
+	struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng);
 	int i;
 	struct buf_data *bd;
 
 	for (i = 0; i < 2; i++) {
-		bd = &rng_ctx->bufs[i];
+		bd = &ctx->bufs[i];
 		if (atomic_read(&bd->empty) == BUF_PENDING)
 			wait_for_completion(&bd->filled);
 	}
 
-	rng_unmap_ctx(rng_ctx);
+	rng_unmap_ctx(ctx);
+	caam_jr_free(ctx->jrdev);
+}
+
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST
+static inline void test_len(struct hwrng *rng, size_t len, bool wait)
+{
+	u8 *buf;
+	int real_len;
+
+	buf = kzalloc(sizeof(u8) * len, GFP_KERNEL);
+	real_len = rng->read(rng, buf, len, wait);
+	if (real_len == 0 && wait)
+		pr_err("WAITING FAILED\n");
+	pr_info("wanted %zu bytes, got %d\n", len, real_len);
+	print_hex_dump(KERN_INFO, "random bytes@: ", DUMP_PREFIX_ADDRESS,
+		       16, 4, buf, real_len, 1);
+	kfree(buf);
+}
+
+static inline void test_mode_once(struct hwrng *rng, bool wait)
+{
+#define TEST_CHUNK (RN_BUF_SIZE / 4)
+
+	test_len(rng, TEST_CHUNK, wait);
+	test_len(rng, RN_BUF_SIZE * 2, wait);
+	test_len(rng, RN_BUF_SIZE * 2 - TEST_CHUNK, wait);
 }
 
+static inline void test_mode(struct hwrng *rng, bool wait)
+{
+#define TEST_PASS 1
+	int i;
+
+	for (i = 0; i < TEST_PASS; i++)
+		test_mode_once(rng, wait);
+}
+
+static void self_test(struct hwrng *rng)
+{
+	pr_info("testing without waiting\n");
+	test_mode(rng, false);
+	pr_info("testing with waiting\n");
+	test_mode(rng, true);
+}
+#endif
+
 static int caam_init_buf(struct caam_rng_ctx *ctx, int buf_id)
 {
 	struct buf_data *bd = &ctx->bufs[buf_id];
@@ -274,85 +317,90 @@
 	return 0;
 }
 
-static int caam_init_rng(struct caam_rng_ctx *ctx, struct device *jrdev)
+static int caam_init(struct hwrng *rng)
 {
+	struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng);
 	int err;
 
-	ctx->jrdev = jrdev;
+	ctx->jrdev = caam_jr_alloc();
+	err = PTR_ERR_OR_ZERO(ctx->jrdev);
+	if (err) {
+		pr_err("Job Ring Device allocation for transform failed\n");
+		return err;
+	}
 
 	err = rng_create_sh_desc(ctx);
 	if (err)
-		return err;
+		goto free_jrdev;
 
 	ctx->current_buf = 0;
 	ctx->cur_buf_idx = 0;
 
 	err = caam_init_buf(ctx, 0);
 	if (err)
-		return err;
+		goto free_jrdev;
 
-	return caam_init_buf(ctx, 1);
+	err = caam_init_buf(ctx, 1);
+	if (err)
+		goto free_jrdev;
+
+	return 0;
+
+free_jrdev:
+	caam_jr_free(ctx->jrdev);
+	return err;
 }
 
-static struct hwrng caam_rng = {
-	.name		= "rng-caam",
-	.cleanup	= caam_cleanup,
-	.read		= caam_read,
-};
+int caam_rng_init(struct device *ctrldev);
 
-void caam_rng_exit(void)
+void caam_rng_exit(struct device *ctrldev)
 {
-	if (!init_done)
-		return;
-
-	caam_jr_free(rng_ctx->jrdev);
-	hwrng_unregister(&caam_rng);
-	kfree(rng_ctx);
+	devres_release_group(ctrldev, caam_rng_init);
 }
 
 int caam_rng_init(struct device *ctrldev)
 {
-	struct device *dev;
+	struct caam_rng_ctx *ctx;
 	u32 rng_inst;
 	struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
-	int err;
-	init_done = false;
+	int ret;
 
 	/* Check for an instantiated RNG before registration */
 	if (priv->era < 10)
-		rng_inst = (rd_reg32(&priv->ctrl->perfmon.cha_num_ls) &
+		rng_inst = (rd_reg32(&priv->jr[0]->perfmon.cha_num_ls) &
 			    CHA_ID_LS_RNG_MASK) >> CHA_ID_LS_RNG_SHIFT;
 	else
-		rng_inst = rd_reg32(&priv->ctrl->vreg.rng) & CHA_VER_NUM_MASK;
+		rng_inst = rd_reg32(&priv->jr[0]->vreg.rng) & CHA_VER_NUM_MASK;
 
 	if (!rng_inst)
 		return 0;
 
-	dev = caam_jr_alloc();
-	if (IS_ERR(dev)) {
-		pr_err("Job Ring Device allocation for transform failed\n");
-		return PTR_ERR(dev);
-	}
-	rng_ctx = kmalloc(sizeof(*rng_ctx), GFP_DMA | GFP_KERNEL);
-	if (!rng_ctx) {
-		err = -ENOMEM;
-		goto free_caam_alloc;
-	}
-	err = caam_init_rng(rng_ctx, dev);
-	if (err)
-		goto free_rng_ctx;
+	if (!devres_open_group(ctrldev, caam_rng_init, GFP_KERNEL))
+		return -ENOMEM;
 
-	dev_info(dev, "registering rng-caam\n");
+	ctx = devm_kzalloc(ctrldev, sizeof(*ctx), GFP_DMA | GFP_KERNEL);
+	if (!ctx)
+		return -ENOMEM;
 
-	err = hwrng_register(&caam_rng);
-	if (!err) {
-		init_done = true;
-		return err;
+	ctx->rng.name    = "rng-caam";
+	ctx->rng.init    = caam_init;
+	ctx->rng.cleanup = caam_cleanup;
+	ctx->rng.read    = caam_read;
+	ctx->rng.priv    = (unsigned long)ctx;
+
+	dev_info(ctrldev, "registering rng-caam\n");
+
+	ret = devm_hwrng_register(ctrldev, &ctx->rng);
+	if (ret) {
+		caam_rng_exit(ctrldev);
+		return ret;
 	}
 
-free_rng_ctx:
-	kfree(rng_ctx);
-free_caam_alloc:
-	caam_jr_free(dev);
-	return err;
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_TEST
+	dev_info(ctrldev, "Running self-test\n");
+	self_test(&ctx->rng);
+#endif
+
+	devres_close_group(ctrldev, caam_rng_init);
+	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/crypto/caam/compat.h
+++ linux-ein-5.4.0/drivers/crypto/caam/compat.h
@@ -43,7 +43,6 @@
 #include <crypto/akcipher.h>
 #include <crypto/scatterwalk.h>
 #include <crypto/skcipher.h>
-#include <crypto/arc4.h>
 #include <crypto/internal/skcipher.h>
 #include <crypto/internal/hash.h>
 #include <crypto/internal/rsa.h>
--- linux-ein-5.4.0.orig/drivers/crypto/caam/ctrl.c
+++ linux-ein-5.4.0/drivers/crypto/caam/ctrl.c
@@ -17,6 +17,7 @@
 #include "jr.h"
 #include "desc_constr.h"
 #include "ctrl.h"
+#include "sm.h"
 
 bool caam_dpaa2;
 EXPORT_SYMBOL(caam_dpaa2);
@@ -99,10 +100,13 @@
 
 	if (ctrlpriv->virt_en == 1 ||
 	    /*
-	     * Apparently on i.MX8MQ it doesn't matter if virt_en == 1
+	     * Apparently on i.MX8M{Q,M,N,P} it doesn't matter if virt_en == 1
 	     * and the following steps should be performed regardless
 	     */
-	    of_machine_is_compatible("fsl,imx8mq")) {
+	    of_machine_is_compatible("fsl,imx8mq") ||
+	    of_machine_is_compatible("fsl,imx8mm") ||
+	    of_machine_is_compatible("fsl,imx8mn") ||
+	    of_machine_is_compatible("fsl,imx8mp")) {
 		clrsetbits_32(&ctrl->deco_rsr, 0, DECORSR_JR0);
 
 		while (!(rd_reg32(&ctrl->deco_rsr) & DECORSR_VALID) &&
@@ -176,6 +180,73 @@
 }
 
 /*
+ * deinstantiate_rng - builds and executes a descriptor on DECO0,
+ *		       which deinitializes the RNG block.
+ * @ctrldev - pointer to device
+ * @state_handle_mask - bitmask containing the instantiation status
+ *			for the RNG4 state handles which exist in
+ *			the RNG4 block: 1 if it's been instantiated
+ *
+ * Return: - 0 if no error occurred
+ *	   - -ENOMEM if there isn't enough memory to allocate the descriptor
+ *	   - -ENODEV if DECO0 couldn't be acquired
+ *	   - -EAGAIN if an error occurred when executing the descriptor
+ */
+static int deinstantiate_rng(struct device *ctrldev, int state_handle_mask)
+{
+	u32 *desc, status;
+	int sh_idx, ret = 0;
+
+	desc = kmalloc(CAAM_CMD_SZ * 3, GFP_KERNEL | GFP_DMA);
+	if (!desc)
+		return -ENOMEM;
+
+	for (sh_idx = 0; sh_idx < RNG4_MAX_HANDLES; sh_idx++) {
+		/*
+		 * If the corresponding bit is set, then it means the state
+		 * handle was initialized by us, and thus it needs to be
+		 * deinitialized as well
+		 */
+		if ((1 << sh_idx) & state_handle_mask) {
+			/*
+			 * Create the descriptor for deinstantating this state
+			 * handle
+			 */
+			build_deinstantiation_desc(desc, sh_idx);
+
+			/* Try to run it through DECO0 */
+			ret = run_descriptor_deco0(ctrldev, desc, &status);
+
+			if (ret ||
+			    (status && status != JRSTA_SSRC_JUMP_HALT_CC)) {
+				dev_err(ctrldev,
+					"Failed to deinstantiate RNG4 SH%d\n",
+					sh_idx);
+				break;
+			}
+			dev_info(ctrldev, "Deinstantiated RNG4 SH%d\n", sh_idx);
+		}
+	}
+
+	kfree(desc);
+
+	return ret;
+}
+
+static void devm_deinstantiate_rng(void *data)
+{
+	struct device *ctrldev = data;
+	struct caam_drv_private *ctrlpriv = dev_get_drvdata(ctrldev);
+
+	/*
+	 * De-initialize RNG state handles initialized by this driver.
+	 * In case of SoCs with Management Complex, RNG is managed by MC f/w.
+	 */
+	if (ctrlpriv->rng4_sh_init)
+		deinstantiate_rng(ctrldev, ctrlpriv->rng4_sh_init);
+}
+
+/*
  * instantiate_rng - builds and executes a descriptor on DECO0,
  *		     which initializes the RNG block.
  * @ctrldev - pointer to device
@@ -203,7 +274,7 @@
 	int ret = 0, sh_idx;
 
 	ctrl = (struct caam_ctrl __iomem *)ctrlpriv->ctrl;
-	desc = kmalloc(CAAM_CMD_SZ * 7, GFP_KERNEL);
+	desc = kmalloc(CAAM_CMD_SZ * 7, GFP_KERNEL | GFP_DMA);
 	if (!desc)
 		return -ENOMEM;
 
@@ -247,99 +318,13 @@
 
 	kfree(desc);
 
-	return ret;
-}
-
-/*
- * deinstantiate_rng - builds and executes a descriptor on DECO0,
- *		       which deinitializes the RNG block.
- * @ctrldev - pointer to device
- * @state_handle_mask - bitmask containing the instantiation status
- *			for the RNG4 state handles which exist in
- *			the RNG4 block: 1 if it's been instantiated
- *
- * Return: - 0 if no error occurred
- *	   - -ENOMEM if there isn't enough memory to allocate the descriptor
- *	   - -ENODEV if DECO0 couldn't be acquired
- *	   - -EAGAIN if an error occurred when executing the descriptor
- */
-static int deinstantiate_rng(struct device *ctrldev, int state_handle_mask)
-{
-	u32 *desc, status;
-	int sh_idx, ret = 0;
-
-	desc = kmalloc(CAAM_CMD_SZ * 3, GFP_KERNEL);
-	if (!desc)
-		return -ENOMEM;
-
-	for (sh_idx = 0; sh_idx < RNG4_MAX_HANDLES; sh_idx++) {
-		/*
-		 * If the corresponding bit is set, then it means the state
-		 * handle was initialized by us, and thus it needs to be
-		 * deinitialized as well
-		 */
-		if ((1 << sh_idx) & state_handle_mask) {
-			/*
-			 * Create the descriptor for deinstantating this state
-			 * handle
-			 */
-			build_deinstantiation_desc(desc, sh_idx);
-
-			/* Try to run it through DECO0 */
-			ret = run_descriptor_deco0(ctrldev, desc, &status);
-
-			if (ret ||
-			    (status && status != JRSTA_SSRC_JUMP_HALT_CC)) {
-				dev_err(ctrldev,
-					"Failed to deinstantiate RNG4 SH%d\n",
-					sh_idx);
-				break;
-			}
-			dev_info(ctrldev, "Deinstantiated RNG4 SH%d\n", sh_idx);
-		}
-	}
-
-	kfree(desc);
+	if (!ret)
+		ret = devm_add_action_or_reset(ctrldev, devm_deinstantiate_rng,
+					       ctrldev);
 
 	return ret;
 }
 
-static int caam_remove(struct platform_device *pdev)
-{
-	struct device *ctrldev;
-	struct caam_drv_private *ctrlpriv;
-	struct caam_ctrl __iomem *ctrl;
-
-	ctrldev = &pdev->dev;
-	ctrlpriv = dev_get_drvdata(ctrldev);
-	ctrl = (struct caam_ctrl __iomem *)ctrlpriv->ctrl;
-
-	/* Remove platform devices under the crypto node */
-	of_platform_depopulate(ctrldev);
-
-#ifdef CONFIG_CAAM_QI
-	if (ctrlpriv->qi_init)
-		caam_qi_shutdown(ctrldev);
-#endif
-
-	/*
-	 * De-initialize RNG state handles initialized by this driver.
-	 * In case of SoCs with Management Complex, RNG is managed by MC f/w.
-	 */
-	if (!ctrlpriv->mc_en && ctrlpriv->rng4_sh_init)
-		deinstantiate_rng(ctrldev, ctrlpriv->rng4_sh_init);
-
-	/* Shut down debug views */
-#ifdef CONFIG_DEBUG_FS
-	debugfs_remove_recursive(ctrlpriv->dfs_root);
-#endif
-
-	/* Unmap controller region */
-	iounmap(ctrl);
-
-	return 0;
-}
-
 /*
  * kick_trng - sets the various parameters for enabling the initialization
  *	       of the RNG4 block in CAAM
@@ -357,8 +342,12 @@
 	ctrl = (struct caam_ctrl __iomem *)ctrlpriv->ctrl;
 	r4tst = &ctrl->r4tst[0];
 
-	/* put RNG4 into program mode */
-	clrsetbits_32(&r4tst->rtmctl, 0, RTMCTL_PRGM);
+	/*
+	 * Setting both RTMCTL:PRGM and RTMCTL:TRNG_ACC causes TRNG to
+	 * properly invalidate the entropy in the entropy register and
+	 * force re-generation.
+	 */
+	clrsetbits_32(&r4tst->rtmctl, 0, RTMCTL_PRGM | RTMCTL_ACC);
 
 	/*
 	 * Performance-wise, it does not make sense to
@@ -379,8 +368,8 @@
 	wr_reg32(&r4tst->rtsdctl, val);
 	/* min. freq. count, equal to 1/4 of the entropy sample length */
 	wr_reg32(&r4tst->rtfrqmin, ent_delay >> 2);
-	/* disable maximum frequency count */
-	wr_reg32(&r4tst->rtfrqmax, RTFRQMAX_DISABLE);
+	/* max. freq. count, equal to 16 times the entropy sample length */
+	wr_reg32(&r4tst->rtfrqmax, ent_delay << 4);
 	/* read the control register */
 	val = rd_reg32(&r4tst->rtmctl);
 start_rng:
@@ -388,10 +377,11 @@
 	 * select raw sampling in both entropy shifter
 	 * and statistical checker; ; put RNG4 into run mode
 	 */
-	clrsetbits_32(&r4tst->rtmctl, RTMCTL_PRGM, RTMCTL_SAMP_MODE_RAW_ES_SC);
+	clrsetbits_32(&r4tst->rtmctl, RTMCTL_PRGM | RTMCTL_ACC,
+		      RTMCTL_SAMP_MODE_RAW_ES_SC);
 }
 
-static int caam_get_era_from_hw(struct caam_ctrl __iomem *ctrl)
+static int caam_get_era_from_hw(struct caam_perfmon __iomem *perfmon)
 {
 	static const struct {
 		u16 ip_id;
@@ -417,12 +407,12 @@
 	u16 ip_id;
 	int i;
 
-	ccbvid = rd_reg32(&ctrl->perfmon.ccb_id);
+	ccbvid = rd_reg32(&perfmon->ccb_id);
 	era = (ccbvid & CCBVID_ERA_MASK) >> CCBVID_ERA_SHIFT;
 	if (era)	/* This is '0' prior to CAAM ERA-6 */
 		return era;
 
-	id_ms = rd_reg32(&ctrl->perfmon.caam_id_ms);
+	id_ms = rd_reg32(&perfmon->caam_id_ms);
 	ip_id = (id_ms & SECVID_MS_IPID_MASK) >> SECVID_MS_IPID_SHIFT;
 	maj_rev = (id_ms & SECVID_MS_MAJ_REV_MASK) >> SECVID_MS_MAJ_REV_SHIFT;
 
@@ -440,7 +430,7 @@
  * In case this property is not passed an attempt to retrieve the CAAM
  * era via register reads will be made.
  **/
-static int caam_get_era(struct caam_ctrl __iomem *ctrl)
+static int caam_get_era(struct caam_perfmon __iomem *perfmon)
 {
 	struct device_node *caam_node;
 	int ret;
@@ -453,7 +443,7 @@
 	if (!ret)
 		return prop;
 	else
-		return caam_get_era_from_hw(ctrl);
+		return caam_get_era_from_hw(perfmon);
 }
 
 /*
@@ -527,7 +517,7 @@
 	{ .soc_id = "i.MX6UL", .data = &caam_imx6ul_data },
 	{ .soc_id = "i.MX6*",  .data = &caam_imx6_data },
 	{ .soc_id = "i.MX7*",  .data = &caam_imx7_data },
-	{ .soc_id = "i.MX8MQ", .data = &caam_imx7_data },
+	{ .soc_id = "i.MX8M*", .data = &caam_imx7_data },
 	{ .family = "Freescale i.MX" },
 	{ /* sentinel */ }
 };
@@ -568,6 +558,13 @@
 	return devm_add_action_or_reset(dev, disable_clocks, ctrlpriv);
 }
 
+#ifdef CONFIG_DEBUG_FS
+static void caam_remove_debugfs(void *root)
+{
+	debugfs_remove_recursive(root);
+}
+#endif
+
 /* Probe routine for CAAM top (controller) level */
 static int caam_probe(struct platform_device *pdev)
 {
@@ -576,15 +573,18 @@
 	const struct soc_device_attribute *imx_soc_match;
 	struct device *dev;
 	struct device_node *nprop, *np;
+	struct resource res_regs;
 	struct caam_ctrl __iomem *ctrl;
 	struct caam_drv_private *ctrlpriv;
+	struct caam_perfmon __iomem *perfmon;
 #ifdef CONFIG_DEBUG_FS
-	struct caam_perfmon *perfmon;
+	struct dentry *dfs_root;
 #endif
 	u32 scfgr, comp_params;
 	u8 rng_vid;
 	int pg_size;
 	int BLOCK_OFFSET = 0;
+	bool reg_access = true;
 
 	ctrlpriv = devm_kzalloc(&pdev->dev, sizeof(*ctrlpriv), GFP_KERNEL);
 	if (!ctrlpriv)
@@ -598,6 +598,30 @@
 	caam_imx = (bool)imx_soc_match;
 
 	if (imx_soc_match) {
+		np = of_find_compatible_node(NULL, NULL, "fsl,imx-scu");
+		ctrlpriv->scu_en = !!np;
+		of_node_put(np);
+
+		reg_access = !ctrlpriv->scu_en;
+
+		/*
+		 * CAAM clocks cannot be controlled from kernel.
+		 * They are automatically turned on by SCU f/w.
+		 */
+		if (ctrlpriv->scu_en)
+			goto iomap_ctrl;
+
+		/*
+		 * Until Layerscape and i.MX OP-TEE get in sync,
+		 * only i.MX OP-TEE use cases disallow access to
+		 * caam page 0 (controller) registers.
+		 */
+		np = of_find_compatible_node(NULL, NULL, "linaro,optee-tz");
+		ctrlpriv->optee_en = !!np;
+		of_node_put(np);
+
+		reg_access = reg_access && !ctrlpriv->optee_en;
+
 		if (!imx_soc_match->data) {
 			dev_err(dev, "No clock data provided for i.MX SoC");
 			return -EINVAL;
@@ -608,19 +632,48 @@
 			return ret;
 	}
 
-
+iomap_ctrl:
 	/* Get configuration properties from device tree */
 	/* First, get register page */
-	ctrl = of_iomap(nprop, 0);
-	if (!ctrl) {
+	ctrl = devm_of_iomap(dev, nprop, 0, NULL);
+	ret = PTR_ERR_OR_ZERO(ctrl);
+	if (ret) {
 		dev_err(dev, "caam: of_iomap() failed\n");
-		return -ENOMEM;
+		return ret;
 	}
 
-	caam_little_end = !(bool)(rd_reg32(&ctrl->perfmon.status) &
+	ring = 0;
+	for_each_available_child_of_node(nprop, np)
+		if (of_device_is_compatible(np, "fsl,sec-v4.0-job-ring") ||
+		    of_device_is_compatible(np, "fsl,sec4.0-job-ring")) {
+			u32 reg;
+
+			if (of_property_read_u32_index(np, "reg", 0, &reg)) {
+				dev_err(dev, "%s read reg property error\n",
+					np->full_name);
+				continue;
+			}
+
+			ctrlpriv->jr[ring] = (struct caam_job_ring __iomem __force *)
+					     ((__force uint8_t *)ctrl + reg);
+
+			ctrlpriv->total_jobrs++;
+			ring++;
+		}
+
+	/*
+	 * Wherever possible, instead of accessing registers from the global page,
+	 * use the alias registers in the first (cf. DT nodes order)
+	 * job ring's page.
+	 */
+	perfmon = ring ? (struct caam_perfmon *)&ctrlpriv->jr[0]->perfmon :
+			 (struct caam_perfmon *)&ctrl->perfmon;
+
+	caam_little_end = !(bool)(rd_reg32(&perfmon->status) &
 				  (CSTA_PLEND | CSTA_ALT_PLEND));
-	comp_params = rd_reg32(&ctrl->perfmon.comp_parms_ms);
-	if (comp_params & CTPR_MS_PS && rd_reg32(&ctrl->mcr) & MCFGR_LONG_PTR)
+	comp_params = rd_reg32(&perfmon->comp_parms_ms);
+	if (reg_access && comp_params & CTPR_MS_PS &&
+	    rd_reg32(&ctrl->mcr) & MCFGR_LONG_PTR)
 		caam_ptr_sz = sizeof(u64);
 	else
 		caam_ptr_sz = sizeof(u32);
@@ -632,22 +685,18 @@
 	if (ctrlpriv->qi_present && !caam_dpaa2) {
 		ret = qman_is_probed();
 		if (!ret) {
-			ret = -EPROBE_DEFER;
-			goto iounmap_ctrl;
+			return -EPROBE_DEFER;
 		} else if (ret < 0) {
 			dev_err(dev, "failing probe due to qman probe error\n");
-			ret = -ENODEV;
-			goto iounmap_ctrl;
+			return -ENODEV;
 		}
 
 		ret = qman_portals_probed();
 		if (!ret) {
-			ret = -EPROBE_DEFER;
-			goto iounmap_ctrl;
+			return -EPROBE_DEFER;
 		} else if (ret < 0) {
 			dev_err(dev, "failing probe due to qman portals probe error\n");
-			ret = -ENODEV;
-			goto iounmap_ctrl;
+			return -ENODEV;
 		}
 	}
 #endif
@@ -671,9 +720,46 @@
 			 BLOCK_OFFSET * DECO_BLOCK_NUMBER
 			 );
 
-	/* Get the IRQ of the controller (for security violations only) */
-	ctrlpriv->secvio_irq = irq_of_parse_and_map(nprop, 0);
+	/* Only i.MX SoCs have sm */
+	if (!imx_soc_match)
+		goto mc_fw;
+
+	/* Get CAAM-SM node and of_iomap() and save */
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-caam-sm");
+	if (!np)
+		return -ENODEV;
 
+	/* Get CAAM SM registers base address from device tree */
+	ret = of_address_to_resource(np, 0, &res_regs);
+	if (ret) {
+		dev_err(dev, "failed to retrieve registers base from device tree\n");
+		of_node_put(np);
+		return -ENODEV;
+	}
+
+	ctrlpriv->sm_phy = res_regs.start;
+	ctrlpriv->sm_base = devm_ioremap_resource(dev, &res_regs);
+	if (IS_ERR(ctrlpriv->sm_base)) {
+		of_node_put(np);
+		return PTR_ERR(ctrlpriv->sm_base);
+	}
+
+	if (!of_machine_is_compatible("fsl,imx8mn") &&
+	    !of_machine_is_compatible("fsl,imx8mm") &&
+	    !of_machine_is_compatible("fsl,imx8mq") &&
+	    !of_machine_is_compatible("fsl,imx8qm") &&
+	    !of_machine_is_compatible("fsl,imx8qxp"))
+		ctrlpriv->sm_size = resource_size(&res_regs);
+	else
+		ctrlpriv->sm_size = PG_SIZE_64K;
+
+	ctrlpriv->sm_present = 1;
+	of_node_put(np);
+
+	if (!reg_access)
+		goto set_dma_mask;
+
+mc_fw:
 	/*
 	 * Enable DECO watchdogs and, if this is a PHYS_ADDR_T_64BIT kernel,
 	 * long pointers in master configuration register.
@@ -685,11 +771,9 @@
 	of_node_put(np);
 
 	if (!ctrlpriv->mc_en)
-		clrsetbits_32(&ctrl->mcr, MCFGR_AWCACHE_MASK | MCFGR_LONG_PTR,
+		clrsetbits_32(&ctrl->mcr, MCFGR_AWCACHE_MASK,
 			      MCFGR_AWCACHE_CACH | MCFGR_AWCACHE_BUFF |
-			      MCFGR_WDENABLE | MCFGR_LARGE_BURST |
-			      (sizeof(dma_addr_t) == sizeof(u64) ?
-			       MCFGR_LONG_PTR : 0));
+			      MCFGR_WDENABLE | MCFGR_LARGE_BURST);
 
 	handle_imx6_err005766(&ctrl->mcr);
 
@@ -719,13 +803,14 @@
 			      JRSTART_JR1_START | JRSTART_JR2_START |
 			      JRSTART_JR3_START);
 
+set_dma_mask:
 	ret = dma_set_mask_and_coherent(dev, caam_get_dma_mask(dev));
 	if (ret) {
 		dev_err(dev, "dma_set_mask_and_coherent failed (%d)\n", ret);
-		goto iounmap_ctrl;
+		return ret;
 	}
 
-	ctrlpriv->era = caam_get_era(ctrl);
+	ctrlpriv->era = caam_get_era(perfmon);
 	ctrlpriv->domain = iommu_get_domain_for_dev(dev);
 
 #ifdef CONFIG_DEBUG_FS
@@ -734,10 +819,12 @@
 	 * "caam" and nprop->full_name. The OF name isn't distinctive,
 	 * but does separate instances
 	 */
-	perfmon = (struct caam_perfmon __force *)&ctrl->perfmon;
+	dfs_root = debugfs_create_dir(dev_name(dev), NULL);
+	ret = devm_add_action_or_reset(dev, caam_remove_debugfs, dfs_root);
+	if (ret)
+		return ret;
 
-	ctrlpriv->dfs_root = debugfs_create_dir(dev_name(dev), NULL);
-	ctrlpriv->ctl = debugfs_create_dir("ctl", ctrlpriv->dfs_root);
+	ctrlpriv->ctl = debugfs_create_dir("ctl", dfs_root);
 #endif
 
 	/* Check to see if (DPAA 1.x) QI present. If so, enable */
@@ -757,38 +844,27 @@
 #endif
 	}
 
-	ret = of_platform_populate(nprop, caam_match, NULL, dev);
-	if (ret) {
-		dev_err(dev, "JR platform devices creation error\n");
-		goto shutdown_qi;
-	}
-
-	ring = 0;
-	for_each_available_child_of_node(nprop, np)
-		if (of_device_is_compatible(np, "fsl,sec-v4.0-job-ring") ||
-		    of_device_is_compatible(np, "fsl,sec4.0-job-ring")) {
-			ctrlpriv->jr[ring] = (struct caam_job_ring __iomem __force *)
-					     ((__force uint8_t *)ctrl +
-					     (ring + JR_BLOCK_NUMBER) *
-					      BLOCK_OFFSET
-					     );
-			ctrlpriv->total_jobrs++;
-			ring++;
-		}
-
 	/* If no QI and no rings specified, quit and go home */
 	if ((!ctrlpriv->qi_present) && (!ctrlpriv->total_jobrs)) {
 		dev_err(dev, "no queues configured, terminating\n");
-		ret = -ENOMEM;
-		goto caam_remove;
+		return -ENOMEM;
 	}
 
-	if (ctrlpriv->era < 10)
-		rng_vid = (rd_reg32(&ctrl->perfmon.cha_id_ls) &
+	if (!reg_access)
+		goto report_live;
+
+	if (ctrlpriv->era < 10) {
+		rng_vid = (rd_reg32(&perfmon->cha_id_ls) &
 			   CHA_ID_LS_RNG_MASK) >> CHA_ID_LS_RNG_SHIFT;
-	else
-		rng_vid = (rd_reg32(&ctrl->vreg.rng) & CHA_VER_VID_MASK) >>
+	} else {
+		struct version_regs __iomem *vreg;
+
+		vreg = ring ? (struct version_regs *)&ctrlpriv->jr[0]->vreg :
+			      (struct version_regs *)&ctrl->vreg;
+
+		rng_vid = (rd_reg32(&vreg->rng) & CHA_VER_VID_MASK) >>
 			   CHA_VER_VID_SHIFT;
+	}
 
 	/*
 	 * If SEC has RNG version >= 4 and RNG state handle has not been
@@ -843,7 +919,7 @@
 		} while ((ret == -EAGAIN) && (ent_delay < RTSDCTL_ENT_DLY_MAX));
 		if (ret) {
 			dev_err(dev, "failed to instantiate RNG");
-			goto caam_remove;
+			return ret;
 		}
 		/*
 		 * Set handles init'ed by this module as the complement of the
@@ -857,8 +933,9 @@
 
 	/* NOTE: RTIC detection ought to go here, around Si time */
 
-	caam_id = (u64)rd_reg32(&ctrl->perfmon.caam_id_ms) << 32 |
-		  (u64)rd_reg32(&ctrl->perfmon.caam_id_ls);
+report_live:
+	caam_id = (u64)rd_reg32(&perfmon->caam_id_ms) << 32 |
+		  (u64)rd_reg32(&perfmon->caam_id_ls);
 
 	/* Report "alive" for developer to see */
 	dev_info(dev, "device ID = 0x%016llx (Era %d)\n", caam_id,
@@ -900,6 +977,9 @@
 			    ctrlpriv->ctl, &perfmon->status,
 			    &caam_fops_u32_ro);
 
+	if (!reg_access)
+		goto probe_jrs;
+
 	/* Internal covering keys (useful in non-secure mode only) */
 	ctrlpriv->ctl_kek_wrap.data = (__force void *)&ctrlpriv->ctrl->kek[0];
 	ctrlpriv->ctl_kek_wrap.size = KEK_KEY_SIZE * sizeof(u32);
@@ -916,19 +996,12 @@
 	debugfs_create_blob("tdsk", S_IRUSR | S_IRGRP | S_IROTH, ctrlpriv->ctl,
 			    &ctrlpriv->ctl_tdsk_wrap);
 #endif
-	return 0;
 
-caam_remove:
-	caam_remove(pdev);
-	return ret;
+probe_jrs:
+	ret = devm_of_platform_populate(dev);
+	if (ret)
+		dev_err(dev, "JR platform devices creation error\n");
 
-shutdown_qi:
-#ifdef CONFIG_CAAM_QI
-	if (ctrlpriv->qi_init)
-		caam_qi_shutdown(dev);
-#endif
-iounmap_ctrl:
-	iounmap(ctrl);
 	return ret;
 }
 
@@ -938,7 +1011,6 @@
 		.of_match_table = caam_match,
 	},
 	.probe       = caam_probe,
-	.remove      = caam_remove,
 };
 
 module_platform_driver(caam_driver);
--- linux-ein-5.4.0.orig/drivers/crypto/caam/desc.h
+++ linux-ein-5.4.0/drivers/crypto/caam/desc.h
@@ -152,7 +152,7 @@
  * with the TDKEK if TK is set
  */
 #define KEY_ENC			0x00400000
-
+#define KEY_ENC_OFFSET		22
 /*
  * No Write Back - Do not allow key to be FIFO STOREd
  */
@@ -162,11 +162,13 @@
  * Enhanced Encryption of Key
  */
 #define KEY_EKT			0x00100000
+#define KEY_EKT_OFFSET		20
 
 /*
  * Encrypted with Trusted Key
  */
 #define KEY_TK			0x00008000
+#define KEY_TK_OFFSET		15
 
 /*
  * KDEST - Key Destination: 0 - class key register,
@@ -403,6 +405,10 @@
 #define FIFOST_TYPE_PKHA_N	 (0x08 << FIFOST_TYPE_SHIFT)
 #define FIFOST_TYPE_PKHA_A	 (0x0c << FIFOST_TYPE_SHIFT)
 #define FIFOST_TYPE_PKHA_B	 (0x0d << FIFOST_TYPE_SHIFT)
+#define FIFOST_TYPE_AF_SBOX_CCM_JKEK	(0x10 << FIFOST_TYPE_SHIFT)
+#define FIFOST_TYPE_AF_SBOX_CCM_TKEK	(0x11 << FIFOST_TYPE_SHIFT)
+#define FIFOST_TYPE_KEY_CCM_JKEK	(0x14 << FIFOST_TYPE_SHIFT)
+#define FIFOST_TYPE_KEY_CCM_TKEK	(0x15 << FIFOST_TYPE_SHIFT)
 #define FIFOST_TYPE_AF_SBOX_JKEK (0x20 << FIFOST_TYPE_SHIFT)
 #define FIFOST_TYPE_AF_SBOX_TKEK (0x21 << FIFOST_TYPE_SHIFT)
 #define FIFOST_TYPE_PKHA_E_JKEK	 (0x22 << FIFOST_TYPE_SHIFT)
@@ -1136,6 +1142,23 @@
 #define OP_PCL_PKPROT_ECC			 0x0002
 #define OP_PCL_PKPROT_F2M			 0x0001
 
+/* Blob protocol protinfo bits */
+#define OP_PCL_BLOB_TK			0x0200
+#define OP_PCL_BLOB_EKT			0x0100
+
+#define OP_PCL_BLOB_K2KR_MEM		0x0000
+#define OP_PCL_BLOB_K2KR_C1KR		0x0010
+#define OP_PCL_BLOB_K2KR_C2KR		0x0030
+#define OP_PCL_BLOB_K2KR_AFHAS		0x0050
+#define OP_PCL_BLOB_K2KR_C2KR_SPLIT	0x0070
+
+#define OP_PCL_BLOB_PTXT_SECMEM		0x0008
+#define OP_PCL_BLOB_BLACK		0x0004
+
+#define OP_PCL_BLOB_FMT_NORMAL		0x0000
+#define OP_PCL_BLOB_FMT_MSTR		0x0002
+#define OP_PCL_BLOB_FMT_TEST		0x0003
+
 /* For non-protocol/alg-only op commands */
 #define OP_ALG_TYPE_SHIFT	24
 #define OP_ALG_TYPE_MASK	(0x7 << OP_ALG_TYPE_SHIFT)
--- linux-ein-5.4.0.orig/drivers/crypto/caam/desc_constr.h
+++ linux-ein-5.4.0/drivers/crypto/caam/desc_constr.h
@@ -500,6 +500,8 @@
  * @key_virt: virtual address where algorithm key resides
  * @key_inline: true - key can be inlined in the descriptor; false - key is
  *              referenced by the descriptor
+ * @key_real_len: size of the key to be loaded by the CAAM
+ * @key_cmd_opt: optional parameters for KEY command
  */
 struct alginfo {
 	u32 algtype;
@@ -508,6 +510,8 @@
 	dma_addr_t key_dma;
 	const void *key_virt;
 	bool key_inline;
+	u32 key_real_len;
+	u32 key_cmd_opt;
 };
 
 /**
--- linux-ein-5.4.0.orig/drivers/crypto/caam/intern.h
+++ linux-ein-5.4.0/drivers/crypto/caam/intern.h
@@ -46,6 +46,7 @@
 	struct caam_job_ring __iomem *rregs;	/* JobR's register space */
 	struct tasklet_struct irqtask;
 	int irq;			/* One per queue */
+	bool hwrng;
 
 	/* Number of scatterlist crypt transforms active on the JobR */
 	atomic_t tfm_count ____cacheline_aligned;
@@ -66,12 +67,17 @@
  * Driver-private storage for a single CAAM block instance
  */
 struct caam_drv_private {
+	struct device *smdev;
+
 	/* Physical-presence section */
 	struct caam_ctrl __iomem *ctrl; /* controller region */
 	struct caam_deco __iomem *deco; /* DECO/CCB views */
 	struct caam_assurance __iomem *assure;
 	struct caam_queue_if __iomem *qi; /* QI control region */
 	struct caam_job_ring __iomem *jr[4];	/* JobR's register space */
+	dma_addr_t __iomem *sm_base;	/* Secure memory storage base */
+	phys_addr_t sm_phy;		/* Secure memory storage physical */
+	u32 sm_size;
 
 	struct iommu_domain *domain;
 
@@ -81,11 +87,10 @@
 	 */
 	u8 total_jobrs;		/* Total Job Rings in device */
 	u8 qi_present;		/* Nonzero if QI present in device */
-#ifdef CONFIG_CAAM_QI
-	u8 qi_init;		/* Nonzero if QI has been initialized */
-#endif
+	u8 sm_present;		/* Nonzero if Secure Memory is supported */
 	u8 mc_en;		/* Nonzero if MC f/w is active */
-	int secvio_irq;		/* Security violation interrupt number */
+	u8 scu_en;		/* Nonzero if SCU f/w is active */
+	u8 optee_en;		/* Nonzero if OP-TEE f/w is active */
 	int virt_en;		/* Virtualization enabled in CAAM */
 	int era;		/* CAAM Era (internal HW revision) */
 
@@ -102,7 +107,6 @@
 	 * variables at runtime.
 	 */
 #ifdef CONFIG_DEBUG_FS
-	struct dentry *dfs_root;
 	struct dentry *ctl; /* controller dir */
 	struct debugfs_blob_wrapper ctl_kek_wrap, ctl_tkek_wrap, ctl_tdsk_wrap;
 #endif
@@ -165,7 +169,7 @@
 #ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API
 
 int caam_rng_init(struct device *dev);
-void caam_rng_exit(void);
+void caam_rng_exit(struct device *dev);
 
 #else
 
@@ -174,9 +178,7 @@
 	return 0;
 }
 
-static inline void caam_rng_exit(void)
-{
-}
+static inline void caam_rng_exit(struct device *dev) {}
 
 #endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API */
 
@@ -198,6 +200,42 @@
 
 #endif /* CONFIG_CAAM_QI */
 
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_SM
+
+int caam_sm_startup(struct device *dev);
+void caam_sm_shutdown(struct device *dev);
+
+#else
+
+static inline int caam_sm_startup(struct device *dev)
+{
+	return 0;
+}
+
+static inline void caam_sm_shutdown(struct device *dev)
+{
+}
+
+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_SM */
+
+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
+
+int caam_keygen_init(void);
+void caam_keygen_exit(void);
+
+#else
+
+static inline int caam_keygen_init(void)
+{
+	return 0;
+}
+
+static inline void caam_keygen_exit(void)
+{
+}
+
+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
+
 #ifdef CONFIG_DEBUG_FS
 static int caam_debugfs_u64_get(void *data, u64 *val)
 {
--- linux-ein-5.4.0.orig/drivers/crypto/caam/jr.c
+++ linux-ein-5.4.0/drivers/crypto/caam/jr.c
@@ -4,7 +4,7 @@
  * JobR backend functionality
  *
  * Copyright 2008-2012 Freescale Semiconductor, Inc.
- * Copyright 2019 NXP
+ * Copyright 2019-2020 NXP
  */
 
 #include <linux/of_irq.h>
@@ -27,36 +27,40 @@
 static DEFINE_MUTEX(algs_lock);
 static unsigned int active_devs;
 
-static void register_algs(struct device *dev)
+static void register_algs(struct caam_drv_private_jr *jrpriv,
+			  struct device *dev)
 {
 	mutex_lock(&algs_lock);
 
 	if (++active_devs != 1)
 		goto algs_unlock;
 
+	caam_sm_startup(dev);
 	caam_algapi_init(dev);
 	caam_algapi_hash_init(dev);
 	caam_pkc_init(dev);
-	caam_rng_init(dev);
+	jrpriv->hwrng = !caam_rng_init(dev);
 	caam_qi_algapi_init(dev);
+	caam_keygen_init();
 
 algs_unlock:
 	mutex_unlock(&algs_lock);
 }
 
-static void unregister_algs(void)
+static void unregister_algs(struct device *dev)
 {
 	mutex_lock(&algs_lock);
 
 	if (--active_devs != 0)
 		goto algs_unlock;
 
+	caam_keygen_exit();
 	caam_qi_algapi_exit();
 
-	caam_rng_exit();
 	caam_pkc_exit();
 	caam_algapi_hash_exit();
 	caam_algapi_exit();
+	caam_sm_shutdown(dev);
 
 algs_unlock:
 	mutex_unlock(&algs_lock);
@@ -126,6 +130,9 @@
 	jrdev = &pdev->dev;
 	jrpriv = dev_get_drvdata(jrdev);
 
+	if (jrpriv->hwrng)
+		caam_rng_exit(jrdev->parent);
+
 	/*
 	 * Return EBUSY if job ring already allocated.
 	 */
@@ -135,7 +142,7 @@
 	}
 
 	/* Unregister JR-based RNG & crypto algorithms */
-	unregister_algs();
+	unregister_algs(jrdev->parent);
 
 	/* Remove the node from Physical JobR list maintained by driver */
 	spin_lock(&driver_data.jr_alloc_lock);
@@ -327,8 +334,7 @@
  * caam_jr_enqueue() - Enqueue a job descriptor head. Returns 0 if OK,
  * -EBUSY if the queue is full, -EIO if it cannot map the caller's
  * descriptor.
- * @dev:  device of the job ring to be used. This device should have
- *        been assigned prior by caam_jr_register().
+ * @dev:  struct device of the job ring to be used
  * @desc: points to a job descriptor that execute our request. All
  *        descriptors (and all referenced data) must be in a DMAable
  *        region, and all data references must be physical addresses
@@ -393,8 +399,16 @@
 	 * Guarantee that the descriptor's DMA address has been written to
 	 * the next slot in the ring before the write index is updated, since
 	 * other cores may update this index independently.
+	 *
+	 * Under heavy DDR load, smp_wmb() or dma_wmb() fail to make the input
+	 * ring be updated before the CAAM starts reading it. So, CAAM will
+	 * process, again, an old descriptor address and will put it in the
+	 * output ring. This will make caam_jr_dequeue() to fail, since this
+	 * old descriptor is not in the software ring.
+	 * To fix this, use wmb() which works on the full system instead of
+	 * inner/outer shareable domains.
 	 */
-	smp_wmb();
+	wmb();
 
 	jrp->head = (head + 1) & (JOBR_DEPTH - 1);
 
@@ -418,6 +432,80 @@
 }
 EXPORT_SYMBOL(caam_jr_enqueue);
 
+/**
+ * caam_jr_run_and_wait_for_completion() - Enqueue a job and wait for its
+ * completion. Returns 0 if OK, -ENOSPC if the queue is full,
+ * -EIO if it cannot map the caller's descriptor.
+ * @dev:  struct device of the job ring to be used
+ * @desc: points to a job descriptor that execute our request. All
+ *        descriptors (and all referenced data) must be in a DMAable
+ *        region, and all data references must be physical addresses
+ *        accessible to CAAM (i.e. within a PAMU window granted
+ *        to it).
+ * @cbk:  pointer to a callback function to be invoked upon completion
+ *        of this request. This has the form:
+ *        callback(struct device *dev, u32 *desc, u32 stat, void *arg)
+ *        where:
+ *        @dev:    contains the job ring device that processed this
+ *                 response.
+ *        @desc:   descriptor that initiated the request, same as
+ *                 "desc" being argued to caam_jr_enqueue().
+ *        @status: untranslated status received from CAAM. See the
+ *                 reference manual for a detailed description of
+ *                 error meaning, or see the JRSTA definitions in the
+ *                 register header file
+ *        @areq:   optional pointer to an argument passed with the
+ *                 original request
+ **/
+int caam_jr_run_and_wait_for_completion(struct device *dev, u32 *desc,
+					void (*cbk)(struct device *dev,
+						    u32 *desc, u32 status,
+						    void *areq))
+{
+	int ret = 0;
+	struct jr_job_result jobres = {0};
+
+	/* Initialize the completion structure */
+	init_completion(&jobres.completion);
+
+	/* Enqueue job for execution */
+	ret = caam_jr_enqueue(dev, desc, cbk, &jobres);
+	if (ret != -EINPROGRESS)
+		return ret;
+
+	/* Wait for job completion */
+	wait_for_completion(&jobres.completion);
+
+	/* Get return code processed in cbk */
+	ret = jobres.error;
+
+	return ret;
+}
+EXPORT_SYMBOL(caam_jr_run_and_wait_for_completion);
+
+static void caam_jr_init_hw(struct device *dev, dma_addr_t inpbusaddr,
+			    dma_addr_t outbusaddr)
+{
+	struct caam_drv_private_jr *jrp = dev_get_drvdata(dev);
+
+	wr_reg64(&jrp->rregs->inpring_base, inpbusaddr);
+	wr_reg64(&jrp->rregs->outring_base, outbusaddr);
+	wr_reg32(&jrp->rregs->inpring_size, JOBR_DEPTH);
+	wr_reg32(&jrp->rregs->outring_size, JOBR_DEPTH);
+
+	/* Select interrupt coalescing parameters */
+	clrsetbits_32(&jrp->rregs->rconfig_lo, 0, JOBR_INTC |
+		      (JOBR_INTC_COUNT_THLD << JRCFG_ICDCT_SHIFT) |
+		      (JOBR_INTC_TIME_THLD << JRCFG_ICTT_SHIFT));
+}
+
+static void caam_jr_reset_index(struct caam_drv_private_jr *jrp)
+{
+	jrp->out_ring_read_index = 0;
+	jrp->head = 0;
+	jrp->tail = 0;
+}
+
 /*
  * Init JobR independent of platform property detection
  */
@@ -505,7 +593,7 @@
 	int error;
 
 	jrdev = &pdev->dev;
-	jrpriv = devm_kmalloc(jrdev, sizeof(*jrpriv), GFP_KERNEL);
+	jrpriv = devm_kzalloc(jrdev, sizeof(*jrpriv), GFP_KERNEL);
 	if (!jrpriv)
 		return -ENOMEM;
 
@@ -562,11 +650,41 @@
 
 	atomic_set(&jrpriv->tfm_count, 0);
 
-	register_algs(jrdev->parent);
+	device_init_wakeup(&pdev->dev, 1);
+	device_set_wakeup_enable(&pdev->dev, false);
+
+	register_algs(jrpriv, jrdev->parent);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM
+static int caam_jr_suspend(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct caam_drv_private_jr *jrpriv = platform_get_drvdata(pdev);
+
+	if (device_may_wakeup(&pdev->dev))
+		enable_irq_wake(jrpriv->irq);
 
 	return 0;
 }
 
+static int caam_jr_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct caam_drv_private_jr *jrpriv = platform_get_drvdata(pdev);
+
+	if (device_may_wakeup(&pdev->dev))
+		disable_irq_wake(jrpriv->irq);
+
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(caam_jr_pm_ops, caam_jr_suspend,
+			 caam_jr_resume);
+#endif
+
 static const struct of_device_id caam_jr_match[] = {
 	{
 		.compatible = "fsl,sec-v4.0-job-ring",
@@ -582,6 +700,9 @@
 	.driver = {
 		.name = "caam_jr",
 		.of_match_table = caam_jr_match,
+#ifdef CONFIG_PM
+		.pm = &caam_jr_pm_ops,
+#endif
 	},
 	.probe       = caam_jr_probe,
 	.remove      = caam_jr_remove,
--- linux-ein-5.4.0.orig/drivers/crypto/caam/jr.h
+++ linux-ein-5.4.0/drivers/crypto/caam/jr.h
@@ -3,11 +3,26 @@
  * CAAM public-level include definitions for the JobR backend
  *
  * Copyright 2008-2011 Freescale Semiconductor, Inc.
+ * Copyright 2020 NXP
  */
 
 #ifndef JR_H
 #define JR_H
 
+#include <linux/completion.h>
+
+ /**
+  * struct jr_job_result - Job Ring result structure, used for requests
+  *                        that need to run and wait for their completion
+  *
+  * @error               : The result returned after request was executed
+  * @completion          : Structure used to maintain state for a "completion"
+  */
+struct jr_job_result {
+	int error;
+	struct completion completion;
+};
+
 /* Prototypes for backend-level services exposed to APIs */
 struct device *caam_jr_alloc(void);
 void caam_jr_free(struct device *rdev);
@@ -15,5 +30,9 @@
 		    void (*cbk)(struct device *dev, u32 *desc, u32 status,
 				void *areq),
 		    void *areq);
+int caam_jr_run_and_wait_for_completion(struct device *dev, u32 *desc,
+					void (*cbk)(struct device *dev,
+						    u32 *desc, u32 status,
+						    void *areq));
 
 #endif /* JR_H */
--- linux-ein-5.4.0.orig/drivers/crypto/caam/qi.c
+++ linux-ein-5.4.0/drivers/crypto/caam/qi.c
@@ -4,7 +4,7 @@
  * Queue Interface backend functionality
  *
  * Copyright 2013-2016 Freescale Semiconductor, Inc.
- * Copyright 2016-2017, 2019 NXP
+ * Copyright 2016-2017, 2019-2020 NXP
  */
 
 #include <linux/cpumask.h>
@@ -124,8 +124,10 @@
 
 	do {
 		ret = qman_enqueue(req->drv_ctx->req_fq, &fd);
-		if (likely(!ret))
+		if (likely(!ret)) {
+			refcount_inc(&req->drv_ctx->refcnt);
 			return 0;
+		}
 
 		if (ret != -EBUSY)
 			break;
@@ -148,11 +150,6 @@
 
 	fd = &msg->ern.fd;
 
-	if (qm_fd_get_format(fd) != qm_fd_compound) {
-		dev_err(qidev, "Non-compound FD from CAAM\n");
-		return;
-	}
-
 	drv_req = caam_iova_to_virt(priv->domain, qm_fd_addr_get64(fd));
 	if (!drv_req) {
 		dev_err(qidev,
@@ -160,6 +157,13 @@
 		return;
 	}
 
+	refcount_dec(&drv_req->drv_ctx->refcnt);
+
+	if (qm_fd_get_format(fd) != qm_fd_compound) {
+		dev_err(qidev, "Non-compound FD from CAAM\n");
+		return;
+	}
+
 	dma_unmap_single(drv_req->drv_ctx->qidev, qm_fd_addr(fd),
 			 sizeof(drv_req->fd_sgt), DMA_BIDIRECTIONAL);
 
@@ -287,9 +291,10 @@
 	return ret;
 }
 
-static int empty_caam_fq(struct qman_fq *fq)
+static int empty_caam_fq(struct qman_fq *fq, struct caam_drv_ctx *drv_ctx)
 {
 	int ret;
+	int retries = 10;
 	struct qm_mcr_queryfq_np np;
 
 	/* Wait till the older CAAM FQ get empty */
@@ -304,11 +309,18 @@
 		msleep(20);
 	} while (1);
 
-	/*
-	 * Give extra time for pending jobs from this FQ in holding tanks
-	 * to get processed
-	 */
-	msleep(20);
+	/* Wait until pending jobs from this FQ are processed by CAAM */
+	do {
+		if (refcount_read(&drv_ctx->refcnt) == 1)
+			break;
+
+		msleep(20);
+	} while (--retries);
+
+	if (!retries)
+		dev_warn_once(drv_ctx->qidev, "%d frames from FQID %u still pending in CAAM\n",
+			      refcount_read(&drv_ctx->refcnt), fq->fqid);
+
 	return 0;
 }
 
@@ -340,7 +352,7 @@
 	drv_ctx->req_fq = new_fq;
 
 	/* Empty and remove the older FQ */
-	ret = empty_caam_fq(old_fq);
+	ret = empty_caam_fq(old_fq, drv_ctx);
 	if (ret) {
 		dev_err(qidev, "Old CAAM FQ empty failed: %d\n", ret);
 
@@ -453,6 +465,9 @@
 		return ERR_PTR(-ENOMEM);
 	}
 
+	/* init reference counter used to track references to request FQ */
+	refcount_set(&drv_ctx->refcnt, 1);
+
 	drv_ctx->qidev = qidev;
 	return drv_ctx;
 }
@@ -500,9 +515,10 @@
 }
 EXPORT_SYMBOL(caam_drv_ctx_rel);
 
-void caam_qi_shutdown(struct device *qidev)
+static void caam_qi_shutdown(void *data)
 {
 	int i;
+	struct device *qidev = data;
 	struct caam_qi_priv *priv = &qipriv;
 	const cpumask_t *cpus = qman_affine_cpus();
 
@@ -570,6 +586,16 @@
 		return qman_cb_dqrr_stop;
 
 	fd = &dqrr->fd;
+
+	drv_req = caam_iova_to_virt(priv->domain, qm_fd_addr_get64(fd));
+	if (unlikely(!drv_req)) {
+		dev_err(qidev,
+			"Can't find original request for caam response\n");
+		return qman_cb_dqrr_consume;
+	}
+
+	refcount_dec(&drv_req->drv_ctx->refcnt);
+
 	status = be32_to_cpu(fd->status);
 	if (unlikely(status)) {
 		u32 ssrc = status & JRSTA_SSRC_MASK;
@@ -587,13 +613,6 @@
 		return qman_cb_dqrr_consume;
 	}
 
-	drv_req = caam_iova_to_virt(priv->domain, qm_fd_addr_get64(fd));
-	if (unlikely(!drv_req)) {
-		dev_err(qidev,
-			"Can't find original request for caam response\n");
-		return qman_cb_dqrr_consume;
-	}
-
 	dma_unmap_single(drv_req->drv_ctx->qidev, qm_fd_addr(fd),
 			 sizeof(drv_req->fd_sgt), DMA_BIDIRECTIONAL);
 
@@ -761,7 +780,10 @@
 			    &times_congested, &caam_fops_u64_ro);
 #endif
 
-	ctrlpriv->qi_init = 1;
+	err = devm_add_action_or_reset(qidev, caam_qi_shutdown, ctrlpriv);
+	if (err)
+		return err;
+
 	dev_info(qidev, "Linux CAAM Queue I/F driver initialised\n");
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/crypto/caam/qi.h
+++ linux-ein-5.4.0/drivers/crypto/caam/qi.h
@@ -3,7 +3,7 @@
  * Public definitions for the CAAM/QI (Queue Interface) backend.
  *
  * Copyright 2013-2016 Freescale Semiconductor, Inc.
- * Copyright 2016-2017 NXP
+ * Copyright 2016-2017, 2020 NXP
  */
 
 #ifndef __QI_H__
@@ -52,6 +52,7 @@
  * @context_a: shared descriptor dma address
  * @req_fq: to-CAAM request frame queue
  * @rsp_fq: from-CAAM response frame queue
+ * @refcnt: reference counter incremented for each frame enqueued in to-CAAM FQ
  * @cpu: cpu on which to receive CAAM response
  * @op_type: operation type
  * @qidev: device pointer for CAAM/QI backend
@@ -62,6 +63,7 @@
 	dma_addr_t context_a;
 	struct qman_fq *req_fq;
 	struct qman_fq *rsp_fq;
+	refcount_t refcnt;
 	int cpu;
 	enum optype op_type;
 	struct device *qidev;
@@ -147,7 +149,6 @@
 void caam_drv_ctx_rel(struct caam_drv_ctx *drv_ctx);
 
 int caam_qi_init(struct platform_device *pdev);
-void caam_qi_shutdown(struct device *dev);
 
 /**
  * qi_cache_alloc - Allocate buffers from CAAM-QI cache
--- linux-ein-5.4.0.orig/drivers/crypto/caam/regs.h
+++ linux-ein-5.4.0/drivers/crypto/caam/regs.h
@@ -173,9 +173,14 @@
 
 static inline u64 cpu_to_caam_dma64(dma_addr_t value)
 {
-	if (caam_imx)
-		return (((u64)cpu_to_caam32(lower_32_bits(value)) << 32) |
-			 (u64)cpu_to_caam32(upper_32_bits(value)));
+	if (caam_imx) {
+		u64 ret_val = (u64)cpu_to_caam32(lower_32_bits(value)) << 32;
+
+		if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
+			ret_val |= (u64)cpu_to_caam32(upper_32_bits(value));
+
+		return ret_val;
+	}
 
 	return cpu_to_caam64(value);
 }
@@ -317,6 +322,9 @@
 /* CHA Miscellaneous Information - AESA_MISC specific */
 #define CHA_VER_MISC_AES_GCM	BIT(1 + CHA_VER_MISC_SHIFT)
 
+/* CHA Miscellaneous Information - PKHA_MISC specific */
+#define CHA_VER_MISC_PKHA_NO_CRYPT	BIT(7 + CHA_VER_MISC_SHIFT)
+
 /*
  * caam_perfmon - Performance Monitor/Secure Memory Status/
  *                CAAM Global Status/Component Version IDs
@@ -377,6 +385,12 @@
 #define CHA_VER_VID_MD_LP512	0x1ull
 #define CHA_VER_VID_MD_HP	0x2ull
 
+/*
+ * caam_perfmon - Performance Monitor/Secure Memory Status/
+ *                CAAM Global Status/Component Version IDs
+ *
+ * Spans f00-fff wherever instantiated
+ */
 struct sec_vid {
 	u16 ip_id;
 	u8 maj_rev;
@@ -407,17 +421,22 @@
 #define CTPR_MS_PG_SZ_SHIFT	4
 	u32 comp_parms_ms;	/* CTPR - Compile Parameters Register	*/
 	u32 comp_parms_ls;	/* CTPR - Compile Parameters Register	*/
-	u64 rsvd1[2];
+	/* Secure Memory State Visibility */
+	u32 rsvd1;
+	u32 smstatus;	/* Secure memory status */
+	u32 rsvd2;
+	u32 smpartown;	/* Secure memory partition owner */
 
 	/* CAAM Global Status					fc0-fdf */
 	u64 faultaddr;	/* FAR  - Fault Address		*/
 	u32 faultliodn;	/* FALR - Fault Address LIODN	*/
 	u32 faultdetail;	/* FADR - Fault Addr Detail	*/
-	u32 rsvd2;
 #define CSTA_PLEND		BIT(10)
 #define CSTA_ALT_PLEND		BIT(18)
+	u32 rsvd3;
 	u32 status;		/* CSTA - CAAM Status */
-	u64 rsvd3;
+	u32 smpart;		/* Secure Memory Partition Parameters */
+	u32 smvid;		/* Secure Memory Version ID */
 
 	/* Component Instantiation Parameters			fe0-fff */
 	u32 rtic_id;		/* RVID - RTIC Version ID	*/
@@ -436,6 +455,62 @@
 	u32 caam_id_ls;		/* CAAMVID - CAAM Version ID LS	*/
 };
 
+#define SMSTATUS_PART_SHIFT	28
+#define SMSTATUS_PART_MASK	(0xf << SMSTATUS_PART_SHIFT)
+#define SMSTATUS_PAGE_SHIFT	16
+#define SMSTATUS_PAGE_MASK	(0x7ff << SMSTATUS_PAGE_SHIFT)
+#define SMSTATUS_MID_SHIFT	8
+#define SMSTATUS_MID_MASK	(0x3f << SMSTATUS_MID_SHIFT)
+#define SMSTATUS_ACCERR_SHIFT	4
+#define SMSTATUS_ACCERR_MASK	(0xf << SMSTATUS_ACCERR_SHIFT)
+#define SMSTATUS_ACCERR_NONE	0
+#define SMSTATUS_ACCERR_ALLOC	1	/* Page not allocated */
+#define SMSTATUS_ACCESS_ID	2	/* Not granted by ID */
+#define SMSTATUS_ACCESS_WRITE	3	/* Writes not allowed */
+#define SMSTATUS_ACCESS_READ	4	/* Reads not allowed */
+#define SMSTATUS_ACCESS_NONKEY	6	/* Non-key reads not allowed */
+#define SMSTATUS_ACCESS_BLOB	9	/* Blob access not allowed */
+#define SMSTATUS_ACCESS_DESCB	10	/* Descriptor Blob access spans pages */
+#define SMSTATUS_ACCESS_NON_SM	11	/* Outside Secure Memory range */
+#define SMSTATUS_ACCESS_XPAGE	12	/* Access crosses pages */
+#define SMSTATUS_ACCESS_INITPG	13	/* Page still initializing */
+#define SMSTATUS_STATE_SHIFT	0
+#define SMSTATUS_STATE_MASK	(0xf << SMSTATUS_STATE_SHIFT)
+#define SMSTATUS_STATE_RESET	0
+#define SMSTATUS_STATE_INIT	1
+#define SMSTATUS_STATE_NORMAL	2
+#define SMSTATUS_STATE_FAIL	3
+
+/* up to 15 rings, 2 bits shifted by ring number */
+#define SMPARTOWN_RING_SHIFT	2
+#define SMPARTOWN_RING_MASK	3
+#define SMPARTOWN_AVAILABLE	0
+#define SMPARTOWN_NOEXIST	1
+#define SMPARTOWN_UNAVAILABLE	2
+#define SMPARTOWN_OURS		3
+
+/* Maximum number of pages possible */
+#define SMPART_MAX_NUMPG_SHIFT	16
+#define SMPART_MAX_NUMPG_MASK	(0x3f << SMPART_MAX_NUMPG_SHIFT)
+
+/* Maximum partition number */
+#define SMPART_MAX_PNUM_SHIFT	12
+#define SMPART_MAX_PNUM_MASK	(0xf << SMPART_MAX_PNUM_SHIFT)
+
+/* Highest possible page number */
+#define SMPART_MAX_PG_SHIFT	0
+#define SMPART_MAX_PG_MASK	(0x3f << SMPART_MAX_PG_SHIFT)
+
+/* Max size of a page */
+#define SMVID_PG_SIZE_SHIFT	16
+#define SMVID_PG_SIZE_MASK	(0x7 << SMVID_PG_SIZE_SHIFT)
+
+/* Major/Minor Version ID */
+#define SMVID_MAJ_VERS_SHIFT	8
+#define SMVID_MAJ_VERS		(0xf << SMVID_MAJ_VERS_SHIFT)
+#define SMVID_MIN_VERS_SHIFT	0
+#define SMVID_MIN_VERS		(0xf << SMVID_MIN_VERS_SHIFT)
+
 /* LIODN programming for DMA configuration */
 #define MSTRID_LOCK_LIODN	0x80000000
 #define MSTRID_LOCK_MAKETRUSTED	0x00010000	/* only for JR masterid */
@@ -446,12 +521,6 @@
 	u32 liodn_ls;	/* LIODN for non-sequence and seq access */
 };
 
-/* Partition ID for DMA configuration */
-struct partid {
-	u32 rsvd1;
-	u32 pidr;	/* partition ID, DECO */
-};
-
 /* RNGB test mode (replicated twice in some configurations) */
 /* Padded out to 0x100 */
 struct rngtst {
@@ -487,7 +556,8 @@
 
 /* RNG4 TRNG test registers */
 struct rng4tst {
-#define RTMCTL_PRGM	0x00010000	/* 1 -> program mode, 0 -> run mode */
+#define RTMCTL_ACC  BIT(5)  /* TRNG access mode */
+#define RTMCTL_PRGM BIT(16) /* 1 -> program mode, 0 -> run mode */
 #define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_SC	0 /* use von Neumann data in
 						     both entropy shifter and
 						     statistical checker */
@@ -564,7 +634,7 @@
 	u32 deco_rsr;			/* DECORSR - Deco Request Source */
 	u32 rsvd11;
 	u32 deco_rq;			/* DECORR - DECO Request */
-	struct partid deco_mid[5];	/* DECOxLIODNR - 1 per DECO */
+	struct masterid deco_mid[5];	/* DECOxLIODNR - 1 per DECO */
 	u32 rsvd5[22];
 
 	/* DECO Availability/Reset Section			120-3ff */
@@ -639,6 +709,35 @@
 #define JRSTART_JR2_START       0x00000004 /* Start Job ring 2 */
 #define JRSTART_JR3_START       0x00000008 /* Start Job ring 3 */
 
+/* Secure Memory Configuration - if you have it */
+/* Secure Memory Register Offset from JR Base Reg*/
+#define SM_V1_OFFSET 0x0f4
+#define SM_V2_OFFSET 0xa00
+
+/* Minimum SM Version ID requiring v2 SM register mapping */
+#define SMVID_V2 0x20105
+
+struct caam_secure_mem_v1 {
+	u32 sm_cmd;	/* SMCJRx - Secure memory command */
+	u32 rsvd1;
+	u32 sm_status;	/* SMCSJRx - Secure memory status */
+	u32 rsvd2;
+
+	u32 sm_perm;	/* SMAPJRx - Secure memory access perms */
+	u32 sm_group2;	/* SMAP2JRx - Secure memory access group 2 */
+	u32 sm_group1;	/* SMAP1JRx - Secure memory access group 1 */
+};
+
+struct caam_secure_mem_v2 {
+	u32 sm_perm;	/* SMAPJRx - Secure memory access perms */
+	u32 sm_group2;	/* SMAP2JRx - Secure memory access group 2 */
+	u32 sm_group1;	/* SMAP1JRx - Secure memory access group 1 */
+	u32 rsvd1[118];
+	u32 sm_cmd;	/* SMCJRx - Secure memory command */
+	u32 rsvd2;
+	u32 sm_status;	/* SMCSJRx - Secure memory status */
+};
+
 /*
  * caam_job_ring - direct job ring setup
  * 1-4 possible per instantiation, base + 1000/2000/3000/4000
@@ -809,6 +908,62 @@
 
 #define JRCR_RESET                  0x01
 
+/* secure memory command */
+#define SMC_PAGE_SHIFT	16
+#define SMC_PAGE_MASK	(0xffff << SMC_PAGE_SHIFT)
+#define SMC_PART_SHIFT	8
+#define SMC_PART_MASK	(0x0f << SMC_PART_SHIFT)
+#define SMC_CMD_SHIFT	0
+#define SMC_CMD_MASK	(0x0f << SMC_CMD_SHIFT)
+
+#define SMC_CMD_ALLOC_PAGE	0x01	/* allocate page to this partition */
+#define SMC_CMD_DEALLOC_PAGE	0x02	/* deallocate page from partition */
+#define SMC_CMD_DEALLOC_PART	0x03	/* deallocate partition */
+#define SMC_CMD_PAGE_INQUIRY	0x05	/* find partition associate with page */
+
+/* secure memory (command) status */
+#define SMCS_PAGE_SHIFT		16
+#define SMCS_PAGE_MASK		(0x0fff << SMCS_PAGE_SHIFT)
+#define SMCS_CMDERR_SHIFT	14
+#define SMCS_CMDERR_MASK	(3 << SMCS_CMDERR_SHIFT)
+#define SMCS_ALCERR_SHIFT	12
+#define SMCS_ALCERR_MASK	(3 << SMCS_ALCERR_SHIFT)
+#define SMCS_PGOWN_SHIFT	6
+#define SMCS_PGWON_MASK		(3 << SMCS_PGOWN_SHIFT)
+#define SMCS_PART_SHIFT		0
+#define SMCS_PART_MASK		(0xf << SMCS_PART_SHIFT)
+
+#define SMCS_CMDERR_NONE	0
+#define SMCS_CMDERR_INCOMP	1	/* Command not yet complete */
+#define SMCS_CMDERR_SECFAIL	2	/* Security failure occurred */
+#define SMCS_CMDERR_OVERFLOW	3	/* Command overflow */
+
+#define SMCS_ALCERR_NONE	0
+#define SMCS_ALCERR_PSPERR	1	/* Partion marked PSP (dealloc only) */
+#define SMCS_ALCERR_PAGEAVAIL	2	/* Page not available */
+#define SMCS_ALCERR_PARTOWN	3	/* Partition ownership error */
+
+#define SMCS_PGOWN_AVAIL	0	/* Page is available */
+#define SMCS_PGOWN_NOEXIST	1	/* Page initializing or nonexistent */
+#define SMCS_PGOWN_NOOWN	2	/* Page owned by another processor */
+#define SMCS_PGOWN_OWNED	3	/* Page belongs to this processor */
+
+/* secure memory access permissions */
+#define SMCS_PERM_KEYMOD_SHIFT	16
+#define SMCA_PERM_KEYMOD_MASK	(0xff << SMCS_PERM_KEYMOD_SHIFT)
+#define SMCA_PERM_CSP_ZERO	0x8000	/* Zero when deallocated or released */
+#define SMCA_PERM_PSP_LOCK	0x4000	/* Part./pages can't be deallocated */
+#define SMCA_PERM_PERM_LOCK	0x2000	/* Lock permissions */
+#define SMCA_PERM_GRP_LOCK	0x1000	/* Lock access groups */
+#define SMCA_PERM_RINGID_SHIFT	10
+#define SMCA_PERM_RINGID_MASK	(3 << SMCA_PERM_RINGID_SHIFT)
+#define SMCA_PERM_G2_BLOB	0x0080	/* Group 2 blob import/export */
+#define SMCA_PERM_G2_WRITE	0x0020	/* Group 2 write */
+#define SMCA_PERM_G2_READ	0x0010	/* Group 2 read */
+#define SMCA_PERM_G1_BLOB	0x0008	/* Group 1... */
+#define SMCA_PERM_G1_WRITE	0x0002
+#define SMCA_PERM_G1_READ	0x0001
+
 /*
  * caam_assurance - Assurance Controller View
  * base + 0x6000 padded out to 0x1000
--- linux-ein-5.4.0.orig/drivers/crypto/caam/secvio.c
+++ linux-ein-5.4.0/drivers/crypto/caam/secvio.c
@@ -0,0 +1,340 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * SNVS Security Violation Handler
+ *
+ * Copyright 2012-2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ */
+
+#include "compat.h"
+#include "secvio.h"
+#include "regs.h"
+#include "intern.h"
+#include <linux/of.h>
+#include <linux/of_irq.h>
+#include <linux/of_address.h>
+
+/* The driver is matched with node caam_snvs to get regmap
+ * It will then retrieve interruption and tamper alarm configuration from
+ * node caam-secvio searching for the compat string "fsl,imx6q-caam-secvio"
+ */
+#define DRIVER_NAME "caam-snvs"
+
+/*
+ * These names are associated with each violation handler.
+ * The source names were taken from MX6, and are based on recommendations
+ * for most common SoCs.
+ */
+static const u8 *violation_src_name[] = {
+	"CAAM Internal Security Violation",
+	"JTAG Alarm",
+	"Watchdog",
+	"(reserved)",
+	"External Boot",
+	"External Tamper Detect",
+};
+
+/* These names help describe security monitor state for the console */
+static const u8 *snvs_ssm_state_name[] = {
+	"init",
+	"hard fail",
+	"(undef:2)",
+	"soft fail",
+	"(undef:4)",
+	"(undef:5)",
+	"(undef:6)",
+	"(undef:7)",
+	"transition",
+	"check",
+	"(undef:10)",
+	"non-secure",
+	"(undef:12)",
+	"trusted",
+	"(undef:14)",
+	"secure",
+};
+
+/* Top-level security violation interrupt */
+static irqreturn_t snvs_secvio_interrupt(int irq, void *snvsdev)
+{
+	struct device *dev = snvsdev;
+	struct snvs_secvio_drv_private *svpriv = dev_get_drvdata(dev);
+
+	clk_enable(svpriv->clk);
+	/* Check the HP secvio status register */
+	svpriv->irqcause = rd_reg32(&svpriv->svregs->hp.secvio_status) &
+				    HP_SECVIOST_SECVIOMASK;
+
+	if (!svpriv->irqcause) {
+		clk_disable(svpriv->clk);
+		return IRQ_NONE;
+	}
+
+	/* Now ACK cause */
+	clrsetbits_32(&svpriv->svregs->hp.secvio_status, 0, svpriv->irqcause);
+
+	/* And run deferred service */
+	preempt_disable();
+	tasklet_schedule(&svpriv->irqtask[smp_processor_id()]);
+	preempt_enable();
+
+	clk_disable(svpriv->clk);
+
+	return IRQ_HANDLED;
+}
+
+/* Deferred service handler. Tasklet arg is simply the SNVS dev */
+static void snvs_secvio_dispatch(unsigned long indev)
+{
+	struct device *dev = (struct device *)indev;
+	struct snvs_secvio_drv_private *svpriv = dev_get_drvdata(dev);
+	unsigned long flags;
+	int i;
+
+
+	/* Look through stored causes, call each handler if exists */
+	for (i = 0; i < MAX_SECVIO_SOURCES; i++)
+		if (svpriv->irqcause & (1 << i)) {
+			spin_lock_irqsave(&svpriv->svlock, flags);
+			svpriv->intsrc[i].handler(dev, i,
+						  svpriv->intsrc[i].ext);
+			spin_unlock_irqrestore(&svpriv->svlock, flags);
+		};
+
+	/* Re-enable now-serviced interrupts */
+	clrsetbits_32(&svpriv->svregs->hp.secvio_intcfg, 0, svpriv->irqcause);
+}
+
+/*
+ * Default cause handler, used in lieu of an application-defined handler.
+ * All it does at this time is print a console message. It could force a halt.
+ */
+static void snvs_secvio_default(struct device *dev, u32 cause, void *ext)
+{
+	struct snvs_secvio_drv_private *svpriv = dev_get_drvdata(dev);
+
+	dev_err(dev, "Unhandled Security Violation Interrupt %d = %s\n",
+		cause, svpriv->intsrc[cause].intname);
+}
+
+/*
+ * Install an application-defined handler for a specified cause
+ * Arguments:
+ * - dev        points to SNVS-owning device
+ * - cause      interrupt source cause
+ * - handler    application-defined handler, gets called with dev
+ *              source cause, and locally-defined handler argument
+ * - cause_description   points to a string to override the default cause
+ *                       name, this can be used as an alternate for error
+ *                       messages and such. If left NULL, the default
+ *                       description string is used.
+ * - ext        pointer to any extra data needed by the handler.
+ */
+int snvs_secvio_install_handler(struct device *dev, enum secvio_cause cause,
+				void (*handler)(struct device *dev, u32 cause,
+						void *ext),
+				u8 *cause_description, void *ext)
+{
+	unsigned long flags;
+	struct snvs_secvio_drv_private *svpriv;
+
+	svpriv = dev_get_drvdata(dev);
+
+	if ((handler == NULL) || (cause > SECVIO_CAUSE_SOURCE_5))
+		return -EINVAL;
+
+	spin_lock_irqsave(&svpriv->svlock, flags);
+	svpriv->intsrc[cause].handler = handler;
+	if (cause_description != NULL)
+		svpriv->intsrc[cause].intname = cause_description;
+	if (ext != NULL)
+		svpriv->intsrc[cause].ext = ext;
+	spin_unlock_irqrestore(&svpriv->svlock, flags);
+
+	return 0;
+}
+EXPORT_SYMBOL(snvs_secvio_install_handler);
+
+/*
+ * Remove an application-defined handler for a specified cause (and, by
+ * implication, restore the "default".
+ * Arguments:
+ * - dev	points to SNVS-owning device
+ * - cause	interrupt source cause
+ */
+int snvs_secvio_remove_handler(struct device *dev, enum secvio_cause cause)
+{
+	unsigned long flags;
+	struct snvs_secvio_drv_private *svpriv;
+
+	svpriv = dev_get_drvdata(dev);
+
+	if (cause > SECVIO_CAUSE_SOURCE_5)
+		return -EINVAL;
+
+	spin_lock_irqsave(&svpriv->svlock, flags);
+	svpriv->intsrc[cause].intname = violation_src_name[cause];
+	svpriv->intsrc[cause].handler = snvs_secvio_default;
+	svpriv->intsrc[cause].ext = NULL;
+	spin_unlock_irqrestore(&svpriv->svlock, flags);
+	return 0;
+}
+EXPORT_SYMBOL(snvs_secvio_remove_handler);
+
+static int snvs_secvio_remove(struct platform_device *pdev)
+{
+	struct device *svdev;
+	struct snvs_secvio_drv_private *svpriv;
+	int i;
+
+	svdev = &pdev->dev;
+	svpriv = dev_get_drvdata(svdev);
+
+	clk_enable(svpriv->clk);
+	/* Set all sources to nonfatal */
+	wr_reg32(&svpriv->svregs->hp.secvio_intcfg, 0);
+
+	/* Remove tasklets and release interrupt */
+	for_each_possible_cpu(i)
+		tasklet_kill(&svpriv->irqtask[i]);
+
+	clk_disable_unprepare(svpriv->clk);
+	free_irq(svpriv->irq, svdev);
+	iounmap(svpriv->svregs);
+	kfree(svpriv);
+
+	return 0;
+}
+
+static int snvs_secvio_probe(struct platform_device *pdev)
+{
+	struct device *svdev;
+	struct snvs_secvio_drv_private *svpriv;
+	struct device_node *np, *npirq;
+	struct snvs_full __iomem *snvsregs;
+	int i, error;
+	u32 hpstate;
+	const void *jtd, *wtd, *itd, *etd;
+	u32 td_en;
+
+	svpriv = kzalloc(sizeof(struct snvs_secvio_drv_private), GFP_KERNEL);
+	if (!svpriv)
+		return -ENOMEM;
+
+	svdev = &pdev->dev;
+	dev_set_drvdata(svdev, svpriv);
+	svpriv->pdev = pdev;
+	np = pdev->dev.of_node;
+
+	npirq = of_find_compatible_node(NULL, NULL, "fsl,imx6q-caam-secvio");
+	if (!npirq) {
+		dev_err(svdev, "can't find secvio node\n");
+		kfree(svpriv);
+		return -EINVAL;
+	}
+	svpriv->irq = irq_of_parse_and_map(npirq, 0);
+	if (svpriv->irq <= 0) {
+		dev_err(svdev, "can't identify secvio interrupt\n");
+		kfree(svpriv);
+		return -EINVAL;
+	}
+
+	jtd = of_get_property(npirq, "jtag-tamper", NULL);
+	wtd = of_get_property(npirq, "watchdog-tamper", NULL);
+	itd = of_get_property(npirq, "internal-boot-tamper", NULL);
+	etd = of_get_property(npirq, "external-pin-tamper", NULL);
+	if (!jtd | !wtd | !itd | !etd ) {
+		dev_err(svdev, "can't identify all tamper alarm configuration\n");
+		kfree(svpriv);
+		return -EINVAL;
+	}
+
+	/*
+	 * Configure all sources  according to device tree property.
+	 * If the property is enabled then the source is ser as
+	 * fatal violations except LP section,
+	 * source #5 (typically used as an external tamper detect), and
+	 * source #3 (typically unused). Whenever the transition to
+	 * secure mode has occurred, these will now be "fatal" violations
+	 */
+	td_en = HP_SECVIO_INTEN_SRC0;
+	if (!strcmp(jtd, "enabled"))
+		td_en |= HP_SECVIO_INTEN_SRC1;
+	if (!strcmp(wtd, "enabled"))
+		td_en |= HP_SECVIO_INTEN_SRC2;
+	if (!strcmp(itd, "enabled"))
+		td_en |= HP_SECVIO_INTEN_SRC4;
+	if (!strcmp(etd, "enabled"))
+		td_en |= HP_SECVIO_INTEN_SRC5;
+
+	snvsregs = of_iomap(np, 0);
+	if (!snvsregs) {
+		dev_err(svdev, "register mapping failed\n");
+		return -ENOMEM;
+	}
+	svpriv->svregs = (struct snvs_full __force *)snvsregs;
+
+	svpriv->clk = devm_clk_get_optional(&pdev->dev, "ipg");
+	if (IS_ERR(svpriv->clk))
+		return PTR_ERR(svpriv->clk);
+
+	clk_prepare_enable(svpriv->clk);
+
+	/* Write the Secvio Enable Config the SVCR */
+	wr_reg32(&svpriv->svregs->hp.secvio_ctl, td_en);
+	wr_reg32(&svpriv->svregs->hp.secvio_intcfg, td_en);
+
+	 /* Device data set up. Now init interrupt source descriptions */
+	for (i = 0; i < MAX_SECVIO_SOURCES; i++) {
+		svpriv->intsrc[i].intname = violation_src_name[i];
+		svpriv->intsrc[i].handler = snvs_secvio_default;
+	}
+	/* Connect main handler */
+	for_each_possible_cpu(i)
+		tasklet_init(&svpriv->irqtask[i], snvs_secvio_dispatch,
+			     (unsigned long)svdev);
+
+	error = request_irq(svpriv->irq, snvs_secvio_interrupt,
+			    IRQF_SHARED, DRIVER_NAME, svdev);
+	if (error) {
+		dev_err(svdev, "can't connect secvio interrupt\n");
+		irq_dispose_mapping(svpriv->irq);
+		svpriv->irq = 0;
+		iounmap(svpriv->svregs);
+		kfree(svpriv);
+		return -EINVAL;
+	}
+
+	hpstate = (rd_reg32(&svpriv->svregs->hp.status) &
+			    HP_STATUS_SSM_ST_MASK) >> HP_STATUS_SSM_ST_SHIFT;
+	dev_info(svdev, "violation handlers armed - %s state\n",
+		 snvs_ssm_state_name[hpstate]);
+
+	clk_disable(svpriv->clk);
+
+	return 0;
+}
+
+static struct of_device_id snvs_secvio_match[] = {
+	{
+		.compatible = "fsl,imx6q-caam-snvs",
+	},
+	{},
+};
+MODULE_DEVICE_TABLE(of, snvs_secvio_match);
+
+static struct platform_driver snvs_secvio_driver = {
+	.driver = {
+		.name = DRIVER_NAME,
+		.owner = THIS_MODULE,
+		.of_match_table = snvs_secvio_match,
+	},
+	.probe       = snvs_secvio_probe,
+	.remove      = snvs_secvio_remove,
+};
+
+module_platform_driver(snvs_secvio_driver);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("FSL SNVS Security Violation Handler");
+MODULE_AUTHOR("Freescale Semiconductor - MCU");
--- linux-ein-5.4.0.orig/drivers/crypto/caam/secvio.h
+++ linux-ein-5.4.0/drivers/crypto/caam/secvio.h
@@ -0,0 +1,69 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/*
+ * CAAM Security Violation Handler
+ *
+ * Copyright 2012-2015 Freescale Semiconductor, Inc.
+ * Copyright 2016-2019 NXP
+ */
+
+#ifndef SECVIO_H
+#define SECVIO_H
+
+#include "snvsregs.h"
+
+
+/*
+ * Defines the published interfaces to install/remove application-specified
+ * handlers for catching violations
+ */
+
+#define MAX_SECVIO_SOURCES 6
+
+/* these are the untranslated causes */
+enum secvio_cause {
+	SECVIO_CAUSE_SOURCE_0,
+	SECVIO_CAUSE_SOURCE_1,
+	SECVIO_CAUSE_SOURCE_2,
+	SECVIO_CAUSE_SOURCE_3,
+	SECVIO_CAUSE_SOURCE_4,
+	SECVIO_CAUSE_SOURCE_5
+};
+
+/* These are common "recommended" cause definitions for most devices */
+#define SECVIO_CAUSE_CAAM_VIOLATION	SECVIO_CAUSE_SOURCE_0
+#define SECVIO_CAUSE_JTAG_ALARM		SECVIO_CAUSE_SOURCE_1
+#define SECVIO_CAUSE_WATCHDOG		SECVIO_CAUSE_SOURCE_2
+#define SECVIO_CAUSE_EXTERNAL_BOOT	SECVIO_CAUSE_SOURCE_4
+#define SECVIO_CAUSE_TAMPER_DETECT	SECVIO_CAUSE_SOURCE_5
+
+int snvs_secvio_install_handler(struct device *dev, enum secvio_cause cause,
+				void (*handler)(struct device *dev, u32 cause,
+						void *ext),
+				u8 *cause_description, void *ext);
+int snvs_secvio_remove_handler(struct device *dev, enum  secvio_cause cause);
+
+/*
+ * Private data definitions for the secvio "driver"
+ */
+
+struct secvio_int_src {
+	const u8 *intname;	/* Points to a descriptive name for source */
+	void *ext;		/* Extended data to pass to the handler */
+	void (*handler)(struct device *dev, u32 cause, void *ext);
+};
+
+struct snvs_secvio_drv_private {
+	struct platform_device *pdev;
+	spinlock_t svlock ____cacheline_aligned;
+	struct tasklet_struct irqtask[NR_CPUS];
+	struct snvs_full __iomem *svregs;	/* both HP and LP domains */
+	struct clk *clk;
+	int irq;
+	u32 irqcause; /* stashed cause of violation interrupt */
+
+	/* Registered handlers for each violation */
+	struct secvio_int_src intsrc[MAX_SECVIO_SOURCES];
+
+};
+
+#endif /* SECVIO_H */
--- linux-ein-5.4.0.orig/drivers/crypto/caam/sm.h
+++ linux-ein-5.4.0/drivers/crypto/caam/sm.h
@@ -0,0 +1,126 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/*
+ * CAAM Secure Memory/Keywrap API Definitions
+ *
+ * Copyright 2008-2015 Freescale Semiconductor, Inc.
+ * Copyright 2016-2019 NXP
+ */
+
+#ifndef SM_H
+#define SM_H
+
+
+/* Storage access permissions */
+#define SM_PERM_READ 0x01
+#define SM_PERM_WRITE 0x02
+#define SM_PERM_BLOB 0x03
+
+/* Define treatment of secure memory vs. general memory blobs */
+#define SM_SECMEM 0
+#define SM_GENMEM 1
+
+/* Define treatment of red/black keys */
+#define RED_KEY 0
+#define BLACK_KEY 1
+
+/* Define key encryption/covering options */
+#define KEY_COVER_ECB 0	/* cover key in AES-ECB */
+#define KEY_COVER_CCM 1 /* cover key with AES-CCM */
+
+/*
+ * Round a key size up to an AES blocksize boundary so to allow for
+ * padding out to a full block
+ */
+#define AES_BLOCK_PAD(x) ((x % 16) ? ((x >> 4) + 1) << 4 : x)
+
+/* Define space required for BKEK + MAC tag storage in any blob */
+#define BLOB_OVERHEAD (32 + 16)
+
+/* Keystore maintenance functions */
+void sm_init_keystore(struct device *dev);
+u32 sm_detect_keystore_units(struct device *dev);
+int sm_establish_keystore(struct device *dev, u32 unit);
+void sm_release_keystore(struct device *dev, u32 unit);
+int caam_sm_example_init(struct platform_device *pdev);
+
+/* Keystore accessor functions */
+extern int sm_keystore_slot_alloc(struct device *dev, u32 unit, u32 size,
+				  u32 *slot);
+extern int sm_keystore_slot_dealloc(struct device *dev, u32 unit, u32 slot);
+extern int sm_keystore_slot_load(struct device *dev, u32 unit, u32 slot,
+				 const u8 *key_data, u32 key_length);
+extern int sm_keystore_slot_read(struct device *dev, u32 unit, u32 slot,
+				 u32 key_length, u8 *key_data);
+extern int sm_keystore_cover_key(struct device *dev, u32 unit, u32 slot,
+				 u16 key_length, u8 keyauth);
+extern int sm_keystore_slot_export(struct device *dev, u32 unit, u32 slot,
+				   u8 keycolor, u8 keyauth, u8 *outbuf,
+				   u16 keylen, u8 *keymod);
+extern int sm_keystore_slot_import(struct device *dev, u32 unit, u32 slot,
+				   u8 keycolor, u8 keyauth, u8 *inbuf,
+				   u16 keylen, u8 *keymod);
+
+/* Prior functions from legacy API, deprecated */
+extern int sm_keystore_slot_encapsulate(struct device *dev, u32 unit,
+					u32 inslot, u32 outslot, u16 secretlen,
+					u8 *keymod, u16 keymodlen);
+extern int sm_keystore_slot_decapsulate(struct device *dev, u32 unit,
+					u32 inslot, u32 outslot, u16 secretlen,
+					u8 *keymod, u16 keymodlen);
+
+/* Data structure to hold per-slot information */
+struct keystore_data_slot_info {
+	u8	allocated;	/* Track slot assignments */
+	u32	key_length;	/* Size of the key */
+};
+
+/* Data structure to hold keystore information */
+struct keystore_data {
+	void	*base_address;	/* Virtual base of secure memory pages */
+	void	*phys_address;	/* Physical base of secure memory pages */
+	u32	slot_count;	/* Number of slots in the keystore */
+	struct keystore_data_slot_info *slot; /* Per-slot information */
+};
+
+/* store the detected attributes of a secure memory page */
+struct sm_page_descriptor {
+	u16 phys_pagenum;	/* may be discontiguous */
+	u16 own_part;		/* Owning partition */
+	void *pg_base;		/* Calculated virtual address */
+	void *pg_phys;		/* Calculated physical address */
+	struct keystore_data *ksdata;
+};
+
+struct caam_drv_private_sm {
+	struct device *parentdev;	/* this ends up as the controller */
+	struct device *smringdev;	/* ring that owns this instance */
+	struct platform_device *sm_pdev;  /* Secure Memory platform device */
+	spinlock_t kslock ____cacheline_aligned;
+
+	/* SM Register offset from JR base address */
+	u32 sm_reg_offset;
+
+	/* Default parameters for geometry */
+	u32 max_pages;		/* maximum pages this instance can support */
+	u32 top_partition;	/* highest partition number in this instance */
+	u32 top_page;		/* highest page number in this instance */
+	u32 page_size;		/* page size */
+	u32 slot_size;		/* selected size of each storage block */
+
+	/* Partition/Page Allocation Map */
+	u32 localpages;		/* Number of pages we can access */
+	struct sm_page_descriptor *pagedesc;	/* Allocated per-page */
+
+	/* Installed handlers for keystore access */
+	int (*data_init)(struct device *dev, u32 unit);
+	void (*data_cleanup)(struct device *dev, u32 unit);
+	int (*slot_alloc)(struct device *dev, u32 unit, u32 size, u32 *slot);
+	int (*slot_dealloc)(struct device *dev, u32 unit, u32 slot);
+	void *(*slot_get_address)(struct device *dev, u32 unit, u32 handle);
+	void *(*slot_get_physical)(struct device *dev, u32 unit, u32 handle);
+	u32 (*slot_get_base)(struct device *dev, u32 unit, u32 handle);
+	u32 (*slot_get_offset)(struct device *dev, u32 unit, u32 handle);
+	u32 (*slot_get_slot_size)(struct device *dev, u32 unit, u32 handle);
+};
+
+#endif /* SM_H */
--- linux-ein-5.4.0.orig/drivers/crypto/caam/sm_store.c
+++ linux-ein-5.4.0/drivers/crypto/caam/sm_store.c
@@ -0,0 +1,1270 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * CAAM Secure Memory Storage Interface
+ *
+ * Copyright 2008-2015 Freescale Semiconductor, Inc.
+ * Copyright 2016-2019 NXP
+ *
+ * Loosely based on the SHW Keystore API for SCC/SCC2
+ * Experimental implementation and NOT intended for upstream use. Expect
+ * this interface to be amended significantly in the future once it becomes
+ * integrated into live applications.
+ *
+ * Known issues:
+ *
+ * - Executes one instance of an secure memory "driver". This is tied to the
+ *   fact that job rings can't run as standalone instances in the present
+ *   configuration.
+ *
+ * - It does not expose a userspace interface. The value of a userspace
+ *   interface for access to secrets is a point for further architectural
+ *   discussion.
+ *
+ * - Partition/permission management is not part of this interface. It
+ *   depends on some level of "knowledge" agreed upon between bootloader,
+ *   provisioning applications, and OS-hosted software (which uses this
+ *   driver).
+ *
+ * - No means of identifying the location or purpose of secrets managed by
+ *   this interface exists; "slot location" and format of a given secret
+ *   needs to be agreed upon between bootloader, provisioner, and OS-hosted
+ *   application.
+ */
+
+#include "compat.h"
+#include "regs.h"
+#include "jr.h"
+#include "desc.h"
+#include "intern.h"
+#include "error.h"
+#include "sm.h"
+#include <linux/of_address.h>
+
+#define SECMEM_KEYMOD_LEN 8
+#define GENMEM_KEYMOD_LEN 16
+
+#ifdef SM_DEBUG_CONT
+void sm_show_page(struct device *dev, struct sm_page_descriptor *pgdesc)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	u32 i, *smdata;
+
+	dev_info(dev, "physical page %d content at 0x%08x\n",
+		 pgdesc->phys_pagenum, pgdesc->pg_base);
+	smdata = pgdesc->pg_base;
+	for (i = 0; i < (smpriv->page_size / sizeof(u32)); i += 4)
+		dev_info(dev, "[0x%08x] 0x%08x 0x%08x 0x%08x 0x%08x\n",
+			 (u32)&smdata[i], smdata[i], smdata[i+1], smdata[i+2],
+			 smdata[i+3]);
+}
+#endif
+
+#define INITIAL_DESCSZ 16	/* size of tmp buffer for descriptor const. */
+
+static __always_inline u32 sm_send_cmd(struct caam_drv_private_sm *smpriv,
+					     struct caam_drv_private_jr *jrpriv,
+					     u32 cmd, u32 *status)
+{
+	void __iomem *write_address;
+	void __iomem *read_address;
+
+	if (smpriv->sm_reg_offset == SM_V1_OFFSET) {
+		struct caam_secure_mem_v1 *sm_regs_v1;
+
+		sm_regs_v1 = (struct caam_secure_mem_v1 *)
+			((void *)jrpriv->rregs + SM_V1_OFFSET);
+		write_address = &sm_regs_v1->sm_cmd;
+		read_address = &sm_regs_v1->sm_status;
+
+	} else if (smpriv->sm_reg_offset == SM_V2_OFFSET) {
+		struct caam_secure_mem_v2 *sm_regs_v2;
+
+		sm_regs_v2 = (struct caam_secure_mem_v2 *)
+			((void *)jrpriv->rregs + SM_V2_OFFSET);
+		write_address = &sm_regs_v2->sm_cmd;
+		read_address = &sm_regs_v2->sm_status;
+
+	} else {
+		return -EINVAL;
+	}
+
+	wr_reg32(write_address, cmd);
+
+	udelay(10);
+
+	/* Read until the command has terminated and the status is correct */
+	do {
+		*status = rd_reg32(read_address);
+	} while (((*status & SMCS_CMDERR_MASK) >>  SMCS_CMDERR_SHIFT)
+				   == SMCS_CMDERR_INCOMP);
+
+	return 0;
+}
+
+/*
+ * Construct a black key conversion job descriptor
+ *
+ * This function constructs a job descriptor capable of performing
+ * a key blackening operation on a plaintext secure memory resident object.
+ *
+ * - desc	pointer to a pointer to the descriptor generated by this
+ *		function. Caller will be responsible to kfree() this
+ *		descriptor after execution.
+ * - key	physical pointer to the plaintext, which will also hold
+ *		the result. Since encryption occurs in place, caller must
+ *              ensure that the space is large enough to accommodate the
+ *              blackened key
+ * - keysz	size of the plaintext
+ * - auth	if a CCM-covered key is required, use KEY_COVER_CCM, else
+ *		use KEY_COVER_ECB.
+ *
+ * KEY to key1 from @key_addr LENGTH 16 BYTES;
+ * FIFO STORE from key1[ecb] TO @key_addr LENGTH 16 BYTES;
+ *
+ * Note that this variant uses the JDKEK only; it does not accommodate the
+ * trusted key encryption key at this time.
+ *
+ */
+static int blacken_key_jobdesc(u32 **desc, void *key, u16 keysz, bool auth)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize, idx;
+
+	memset(tmpdesc, 0, INITIAL_DESCSZ * sizeof(u32));
+	idx = 1;
+
+	/* Load key to class 1 key register */
+	tmpdesc[idx++] = CMD_KEY | CLASS_1 | (keysz & KEY_LENGTH_MASK);
+	tmpdesc[idx++] = (uintptr_t)key;
+
+	/* ...and write back out via FIFO store*/
+	tmpdesc[idx] = CMD_FIFO_STORE | CLASS_1 | (keysz & KEY_LENGTH_MASK);
+
+	/* plus account for ECB/CCM option in FIFO_STORE */
+	if (auth == KEY_COVER_ECB)
+		tmpdesc[idx] |= FIFOST_TYPE_KEY_KEK;
+	else
+		tmpdesc[idx] |= FIFOST_TYPE_KEY_CCM_JKEK;
+
+	idx++;
+	tmpdesc[idx++] = (uintptr_t)key;
+
+	/* finish off the job header */
+	tmpdesc[0] = CMD_DESC_HDR | HDR_ONE | (idx & HDR_DESCLEN_MASK);
+	dsize = idx * sizeof(u32);
+
+	/* now allocate execution buffer and coat it with executable */
+	tdesc = kmalloc(dsize, GFP_KERNEL | GFP_DMA);
+	if (tdesc == NULL)
+		return 0;
+
+	memcpy(tdesc, tmpdesc, dsize);
+	*desc = tdesc;
+
+	return dsize;
+}
+
+/*
+ * Construct a blob encapsulation job descriptor
+ *
+ * This function dynamically constructs a blob encapsulation job descriptor
+ * from the following arguments:
+ *
+ * - desc	pointer to a pointer to the descriptor generated by this
+ *		function. Caller will be responsible to kfree() this
+ *		descriptor after execution.
+ * - keymod	Physical pointer to a key modifier, which must reside in a
+ *		contiguous piece of memory. Modifier will be assumed to be
+ *		8 bytes long for a blob of type SM_SECMEM, or 16 bytes long
+ *		for a blob of type SM_GENMEM (see blobtype argument).
+ * - secretbuf	Physical pointer to a secret, normally a black or red key,
+ *		possibly residing within an accessible secure memory page,
+ *		of the secret to be encapsulated to an output blob.
+ * - outbuf	Physical pointer to the destination buffer to receive the
+ *		encapsulated output. This buffer will need to be 48 bytes
+ *		larger than the input because of the added encapsulation data.
+ *		The generated descriptor will account for the increase in size,
+ *		but the caller must also account for this increase in the
+ *		buffer allocator.
+ * - secretsz	Size of input secret, in bytes. This is limited to 65536
+ *		less the size of blob overhead, since the length embeds into
+ *		DECO pointer in/out instructions.
+ * - keycolor   Determines if the source data is covered (black key) or
+ *		plaintext (red key). RED_KEY or BLACK_KEY are defined in
+ *		for this purpose.
+ * - blobtype	Determine if encapsulated blob should be a secure memory
+ *		blob (SM_SECMEM), with partition data embedded with key
+ *		material, or a general memory blob (SM_GENMEM).
+ * - auth	If BLACK_KEY source is covered via AES-CCM, specify
+ *		KEY_COVER_CCM, else uses AES-ECB (KEY_COVER_ECB).
+ *
+ * Upon completion, desc points to a buffer containing a CAAM job
+ * descriptor which encapsulates data into an externally-storable blob
+ * suitable for use across power cycles.
+ *
+ * This is an example of a black key encapsulation job into a general memory
+ * blob. Notice the 16-byte key modifier in the LOAD instruction. Also note
+ * the output 48 bytes longer than the input:
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400010           ld: ccb2-key len=16 offs=0
+ * [02] 08144891               ptr->@0x08144891
+ * [03] F800003A    seqoutptr: len=58
+ * [04] 01000000               out_ptr->@0x01000000
+ * [05] F000000A     seqinptr: len=10
+ * [06] 09745090               in_ptr->@0x09745090
+ * [07] 870D0004    operation: encap blob  reg=memory, black, format=normal
+ *
+ * This is an example of a red key encapsulation job for storing a red key
+ * into a secure memory blob. Note the 8 byte modifier on the 12 byte offset
+ * in the LOAD instruction; this accounts for blob permission storage:
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400C08           ld: ccb2-key len=8 offs=12
+ * [02] 087D0784               ptr->@0x087d0784
+ * [03] F8000050    seqoutptr: len=80
+ * [04] 09251BB2               out_ptr->@0x09251bb2
+ * [05] F0000020     seqinptr: len=32
+ * [06] 40000F31               in_ptr->@0x40000f31
+ * [07] 870D0008    operation: encap blob  reg=memory, red, sec_mem,
+ *                             format=normal
+ *
+ * Note: this function only generates 32-bit pointers at present, and should
+ * be refactored using a scheme that allows both 32 and 64 bit addressing
+ */
+
+static int blob_encap_jobdesc(u32 **desc, dma_addr_t keymod,
+			      void *secretbuf, dma_addr_t outbuf,
+			      u16 secretsz, u8 keycolor, u8 blobtype, u8 auth)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize, idx;
+
+	memset(tmpdesc, 0, INITIAL_DESCSZ * sizeof(u32));
+	idx = 1;
+
+	/*
+	 * Key modifier works differently for secure/general memory blobs
+	 * This accounts for the permission/protection data encapsulated
+	 * within the blob if a secure memory blob is requested
+	 */
+	if (blobtype == SM_SECMEM)
+		tmpdesc[idx++] = CMD_LOAD | LDST_CLASS_2_CCB |
+				 LDST_SRCDST_BYTE_KEY |
+				 ((12 << LDST_OFFSET_SHIFT) & LDST_OFFSET_MASK)
+				 | (8 & LDST_LEN_MASK);
+	else /* is general memory blob */
+		tmpdesc[idx++] = CMD_LOAD | LDST_CLASS_2_CCB |
+				 LDST_SRCDST_BYTE_KEY | (16 & LDST_LEN_MASK);
+
+	tmpdesc[idx++] = (u32)keymod;
+
+	/*
+	 * Encapsulation output must include space for blob key encryption
+	 * key and MAC tag
+	 */
+	tmpdesc[idx++] = CMD_SEQ_OUT_PTR | (secretsz + BLOB_OVERHEAD);
+	tmpdesc[idx++] = (u32)outbuf;
+
+	/* Input data, should be somewhere in secure memory */
+	tmpdesc[idx++] = CMD_SEQ_IN_PTR | secretsz;
+	tmpdesc[idx++] = (uintptr_t)secretbuf;
+
+	/* Set blob encap, then color */
+	tmpdesc[idx] = CMD_OPERATION | OP_TYPE_ENCAP_PROTOCOL | OP_PCLID_BLOB;
+
+	if (blobtype == SM_SECMEM)
+		tmpdesc[idx] |= OP_PCL_BLOB_PTXT_SECMEM;
+
+	if (auth == KEY_COVER_CCM)
+		tmpdesc[idx] |= OP_PCL_BLOB_EKT;
+
+	if (keycolor == BLACK_KEY)
+		tmpdesc[idx] |= OP_PCL_BLOB_BLACK;
+
+	idx++;
+	tmpdesc[0] = CMD_DESC_HDR | HDR_ONE | (idx & HDR_DESCLEN_MASK);
+	dsize = idx * sizeof(u32);
+
+	tdesc = kmalloc(dsize, GFP_KERNEL | GFP_DMA);
+	if (tdesc == NULL)
+		return 0;
+
+	memcpy(tdesc, tmpdesc, dsize);
+	*desc = tdesc;
+	return dsize;
+}
+
+/*
+ * Construct a blob decapsulation job descriptor
+ *
+ * This function dynamically constructs a blob decapsulation job descriptor
+ * from the following arguments:
+ *
+ * - desc	pointer to a pointer to the descriptor generated by this
+ *		function. Caller will be responsible to kfree() this
+ *		descriptor after execution.
+ * - keymod	Physical pointer to a key modifier, which must reside in a
+ *		contiguous piece of memory. Modifier will be assumed to be
+ *		8 bytes long for a blob of type SM_SECMEM, or 16 bytes long
+ *		for a blob of type SM_GENMEM (see blobtype argument).
+ * - blobbuf	Physical pointer (into external memory) of the blob to
+ *		be decapsulated. Blob must reside in a contiguous memory
+ *		segment.
+ * - outbuf	Physical pointer of the decapsulated output, possibly into
+ *		a location within a secure memory page. Must be contiguous.
+ * - secretsz	Size of encapsulated secret in bytes (not the size of the
+ *		input blob).
+ * - keycolor   Determines if decapsulated content is encrypted (BLACK_KEY)
+ *		or left as plaintext (RED_KEY).
+ * - blobtype	Determine if encapsulated blob should be a secure memory
+ *		blob (SM_SECMEM), with partition data embedded with key
+ *		material, or a general memory blob (SM_GENMEM).
+ * - auth	If decapsulation path is specified by BLACK_KEY, then if
+ *		AES-CCM is requested for key covering use KEY_COVER_CCM, else
+ *		use AES-ECB (KEY_COVER_ECB).
+ *
+ * Upon completion, desc points to a buffer containing a CAAM job descriptor
+ * that decapsulates a key blob from external memory into a black (encrypted)
+ * key or red (plaintext) content.
+ *
+ * This is an example of a black key decapsulation job from a general memory
+ * blob. Notice the 16-byte key modifier in the LOAD instruction.
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400010           ld: ccb2-key len=16 offs=0
+ * [02] 08A63B7F               ptr->@0x08a63b7f
+ * [03] F8000010    seqoutptr: len=16
+ * [04] 01000000               out_ptr->@0x01000000
+ * [05] F000003A     seqinptr: len=58
+ * [06] 01000010               in_ptr->@0x01000010
+ * [07] 860D0004    operation: decap blob  reg=memory, black, format=normal
+ *
+ * This is an example of a red key decapsulation job for restoring a red key
+ * from a secure memory blob. Note the 8 byte modifier on the 12 byte offset
+ * in the LOAD instruction:
+ *
+ * [00] B0800008       jobhdr: stidx=0 len=8
+ * [01] 14400C08           ld: ccb2-key len=8 offs=12
+ * [02] 01000000               ptr->@0x01000000
+ * [03] F8000020    seqoutptr: len=32
+ * [04] 400000E6               out_ptr->@0x400000e6
+ * [05] F0000050     seqinptr: len=80
+ * [06] 08F0C0EA               in_ptr->@0x08f0c0ea
+ * [07] 860D0008    operation: decap blob  reg=memory, red, sec_mem,
+ *			       format=normal
+ *
+ * Note: this function only generates 32-bit pointers at present, and should
+ * be refactored using a scheme that allows both 32 and 64 bit addressing
+ */
+
+static int blob_decap_jobdesc(u32 **desc, dma_addr_t keymod, dma_addr_t blobbuf,
+			      u8 *outbuf, u16 secretsz, u8 keycolor,
+			      u8 blobtype, u8 auth)
+{
+	u32 *tdesc, tmpdesc[INITIAL_DESCSZ];
+	u16 dsize, idx;
+
+	memset(tmpdesc, 0, INITIAL_DESCSZ * sizeof(u32));
+	idx = 1;
+
+	/* Load key modifier */
+	if (blobtype == SM_SECMEM)
+		tmpdesc[idx++] = CMD_LOAD | LDST_CLASS_2_CCB |
+				 LDST_SRCDST_BYTE_KEY |
+				 ((12 << LDST_OFFSET_SHIFT) & LDST_OFFSET_MASK)
+				 | (8 & LDST_LEN_MASK);
+	else /* is general memory blob */
+		tmpdesc[idx++] = CMD_LOAD | LDST_CLASS_2_CCB |
+				 LDST_SRCDST_BYTE_KEY | (16 & LDST_LEN_MASK);
+
+	tmpdesc[idx++] = (u32)keymod;
+
+	/* Compensate BKEK + MAC tag over size of encapsulated secret */
+	tmpdesc[idx++] = CMD_SEQ_IN_PTR | (secretsz + BLOB_OVERHEAD);
+	tmpdesc[idx++] = (u32)blobbuf;
+	tmpdesc[idx++] = CMD_SEQ_OUT_PTR | secretsz;
+	tmpdesc[idx++] = (uintptr_t)outbuf;
+
+	/* Decapsulate from secure memory partition to black blob */
+	tmpdesc[idx] = CMD_OPERATION | OP_TYPE_DECAP_PROTOCOL | OP_PCLID_BLOB;
+
+	if (blobtype == SM_SECMEM)
+		tmpdesc[idx] |= OP_PCL_BLOB_PTXT_SECMEM;
+
+	if (auth == KEY_COVER_CCM)
+		tmpdesc[idx] |= OP_PCL_BLOB_EKT;
+
+	if (keycolor == BLACK_KEY)
+		tmpdesc[idx] |= OP_PCL_BLOB_BLACK;
+
+	idx++;
+	tmpdesc[0] = CMD_DESC_HDR | HDR_ONE | (idx & HDR_DESCLEN_MASK);
+	dsize = idx * sizeof(u32);
+
+	tdesc = kmalloc(dsize, GFP_KERNEL | GFP_DMA);
+	if (tdesc == NULL)
+		return 0;
+
+	memcpy(tdesc, tmpdesc, dsize);
+	*desc = tdesc;
+	return dsize;
+}
+
+/*
+ * Pseudo-synchronous ring access functions for carrying out key
+ * encapsulation and decapsulation
+ */
+
+struct sm_key_job_result {
+	int error;
+	struct completion completion;
+};
+
+void sm_key_job_done(struct device *dev, u32 *desc, u32 err, void *context)
+{
+	struct sm_key_job_result *res = context;
+
+	if (err)
+		caam_jr_strstatus(dev, err);
+
+	res->error = err;	/* save off the error for postprocessing */
+
+	complete(&res->completion);	/* mark us complete */
+}
+
+static int sm_key_job(struct device *ksdev, u32 *jobdesc)
+{
+	struct sm_key_job_result testres = {0};
+	struct caam_drv_private_sm *kspriv;
+	int rtn = 0;
+
+	kspriv = dev_get_drvdata(ksdev);
+
+	init_completion(&testres.completion);
+
+	rtn = caam_jr_enqueue(kspriv->smringdev, jobdesc, sm_key_job_done,
+			      &testres);
+	if (rtn)
+		goto exit;
+
+	wait_for_completion_interruptible(&testres.completion);
+	rtn = testres.error;
+
+exit:
+	return rtn;
+}
+
+/*
+ * Following section establishes the default methods for keystore access
+ * They are NOT intended for use external to this module
+ *
+ * In the present version, these are the only means for the higher-level
+ * interface to deal with the mechanics of accessing the phyiscal keystore
+ */
+
+
+int slot_alloc(struct device *dev, u32 unit, u32 size, u32 *slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *ksdata = smpriv->pagedesc[unit].ksdata;
+	u32 i;
+#ifdef SM_DEBUG
+	dev_info(dev, "slot_alloc(): requesting slot for %d bytes\n", size);
+#endif
+
+	if (size > smpriv->slot_size)
+		return -EKEYREJECTED;
+
+	for (i = 0; i < ksdata->slot_count; i++) {
+		if (ksdata->slot[i].allocated == 0) {
+			ksdata->slot[i].allocated = 1;
+			(*slot) = i;
+#ifdef SM_DEBUG
+			dev_info(dev, "slot_alloc(): new slot %d allocated\n",
+				 *slot);
+#endif
+			return 0;
+		}
+	}
+
+	return -ENOSPC;
+}
+EXPORT_SYMBOL(slot_alloc);
+
+int slot_dealloc(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *ksdata = smpriv->pagedesc[unit].ksdata;
+	u8 __iomem *slotdata;
+
+#ifdef SM_DEBUG
+	dev_info(dev, "slot_dealloc(): releasing slot %d\n", slot);
+#endif
+	if (slot >= ksdata->slot_count)
+		return -EINVAL;
+	slotdata = ksdata->base_address + slot * smpriv->slot_size;
+
+	if (ksdata->slot[slot].allocated == 1) {
+		/* Forcibly overwrite the data from the keystore */
+		memset_io(ksdata->base_address + slot * smpriv->slot_size, 0,
+		       smpriv->slot_size);
+
+		ksdata->slot[slot].allocated = 0;
+#ifdef SM_DEBUG
+		dev_info(dev, "slot_dealloc(): slot %d released\n", slot);
+#endif
+		return 0;
+	}
+
+	return -EINVAL;
+}
+EXPORT_SYMBOL(slot_dealloc);
+
+void *slot_get_address(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *ksdata = smpriv->pagedesc[unit].ksdata;
+
+	if (slot >= ksdata->slot_count)
+		return NULL;
+
+#ifdef SM_DEBUG
+	dev_info(dev, "slot_get_address(): slot %d is 0x%08x\n", slot,
+		 (u32)ksdata->base_address + slot * smpriv->slot_size);
+#endif
+
+	return ksdata->base_address + slot * smpriv->slot_size;
+}
+
+void *slot_get_physical(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *ksdata = smpriv->pagedesc[unit].ksdata;
+
+	if (slot >= ksdata->slot_count)
+		return NULL;
+
+#ifdef SM_DEBUG
+	dev_info(dev, "%s: slot %d is 0x%08x\n", __func__, slot,
+		 (u32)ksdata->phys_address + slot * smpriv->slot_size);
+#endif
+
+	return ksdata->phys_address + slot * smpriv->slot_size;
+}
+
+u32 slot_get_base(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *ksdata = smpriv->pagedesc[unit].ksdata;
+
+	/*
+	 * There could potentially be more than one secure partition object
+	 * associated with this keystore.  For now, there is just one.
+	 */
+
+	(void)slot;
+
+#ifdef SM_DEBUG
+	dev_info(dev, "slot_get_base(): slot %d = 0x%08x\n",
+		slot, (u32)ksdata->base_address);
+#endif
+
+	return (uintptr_t)(ksdata->base_address);
+}
+
+u32 slot_get_offset(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *ksdata = smpriv->pagedesc[unit].ksdata;
+
+	if (slot >= ksdata->slot_count)
+		return -EINVAL;
+
+#ifdef SM_DEBUG
+	dev_info(dev, "slot_get_offset(): slot %d = %d\n", slot,
+		slot * smpriv->slot_size);
+#endif
+
+	return slot * smpriv->slot_size;
+}
+
+u32 slot_get_slot_size(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+
+
+#ifdef SM_DEBUG
+	dev_info(dev, "slot_get_slot_size(): slot %d = %d\n", slot,
+		 smpriv->slot_size);
+#endif
+	/* All slots are the same size in the default implementation */
+	return smpriv->slot_size;
+}
+
+
+
+int kso_init_data(struct device *dev, u32 unit)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *keystore_data = NULL;
+	u32 slot_count;
+	u32 keystore_data_size;
+
+	/*
+	 * Calculate the required size of the keystore data structure, based
+	 * on the number of keys that can fit in the partition.
+	 */
+	slot_count = smpriv->page_size / smpriv->slot_size;
+#ifdef SM_DEBUG
+	dev_info(dev, "kso_init_data: %d slots initializing\n", slot_count);
+#endif
+
+	keystore_data_size = sizeof(struct keystore_data) +
+				slot_count *
+				sizeof(struct keystore_data_slot_info);
+
+	keystore_data = kzalloc(keystore_data_size, GFP_KERNEL);
+
+	if (!keystore_data)
+		return -ENOMEM;
+
+#ifdef SM_DEBUG
+	dev_info(dev, "kso_init_data: keystore data size = %d\n",
+		 keystore_data_size);
+#endif
+
+	/*
+	 * Place the slot information structure directly after the keystore data
+	 * structure.
+	 */
+	keystore_data->slot = (struct keystore_data_slot_info *)
+			      (keystore_data + 1);
+	keystore_data->slot_count = slot_count;
+
+	smpriv->pagedesc[unit].ksdata = keystore_data;
+	smpriv->pagedesc[unit].ksdata->base_address =
+		smpriv->pagedesc[unit].pg_base;
+	smpriv->pagedesc[unit].ksdata->phys_address =
+		smpriv->pagedesc[unit].pg_phys;
+
+	return 0;
+}
+
+void kso_cleanup_data(struct device *dev, u32 unit)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	struct keystore_data *keystore_data = NULL;
+
+	if (smpriv->pagedesc[unit].ksdata != NULL)
+		keystore_data = smpriv->pagedesc[unit].ksdata;
+
+	/* Release the allocated keystore management data */
+	kfree(smpriv->pagedesc[unit].ksdata);
+
+	return;
+}
+
+
+
+/*
+ * Keystore management section
+ */
+
+void sm_init_keystore(struct device *dev)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+
+	smpriv->data_init = kso_init_data;
+	smpriv->data_cleanup = kso_cleanup_data;
+	smpriv->slot_alloc = slot_alloc;
+	smpriv->slot_dealloc = slot_dealloc;
+	smpriv->slot_get_address = slot_get_address;
+	smpriv->slot_get_physical = slot_get_physical;
+	smpriv->slot_get_base = slot_get_base;
+	smpriv->slot_get_offset = slot_get_offset;
+	smpriv->slot_get_slot_size = slot_get_slot_size;
+#ifdef SM_DEBUG
+	dev_info(dev, "sm_init_keystore(): handlers installed\n");
+#endif
+}
+EXPORT_SYMBOL(sm_init_keystore);
+
+/* Return available pages/units */
+u32 sm_detect_keystore_units(struct device *dev)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+
+	return smpriv->localpages;
+}
+EXPORT_SYMBOL(sm_detect_keystore_units);
+
+/*
+ * Do any keystore specific initializations
+ */
+int sm_establish_keystore(struct device *dev, u32 unit)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+
+#ifdef SM_DEBUG
+	dev_info(dev, "sm_establish_keystore(): unit %d initializing\n", unit);
+#endif
+
+	if (smpriv->data_init == NULL)
+		return -EINVAL;
+
+	/* Call the data_init function for any user setup */
+	return smpriv->data_init(dev, unit);
+}
+EXPORT_SYMBOL(sm_establish_keystore);
+
+void sm_release_keystore(struct device *dev, u32 unit)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+
+#ifdef SM_DEBUG
+	dev_info(dev, "sm_establish_keystore(): unit %d releasing\n", unit);
+#endif
+	if ((smpriv != NULL) && (smpriv->data_cleanup != NULL))
+		smpriv->data_cleanup(dev, unit);
+
+	return;
+}
+EXPORT_SYMBOL(sm_release_keystore);
+
+/*
+ * Subsequent interfacce (sm_keystore_*) forms the accessor interfacce to
+ * the keystore
+ */
+int sm_keystore_slot_alloc(struct device *dev, u32 unit, u32 size, u32 *slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = -EINVAL;
+
+	spin_lock(&smpriv->kslock);
+
+	if ((smpriv->slot_alloc == NULL) ||
+	    (smpriv->pagedesc[unit].ksdata == NULL))
+		goto out;
+
+	retval =  smpriv->slot_alloc(dev, unit, size, slot);
+
+out:
+	spin_unlock(&smpriv->kslock);
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_slot_alloc);
+
+int sm_keystore_slot_dealloc(struct device *dev, u32 unit, u32 slot)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = -EINVAL;
+
+	spin_lock(&smpriv->kslock);
+
+	if ((smpriv->slot_alloc == NULL) ||
+	    (smpriv->pagedesc[unit].ksdata == NULL))
+		goto out;
+
+	retval = smpriv->slot_dealloc(dev, unit, slot);
+out:
+	spin_unlock(&smpriv->kslock);
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_slot_dealloc);
+
+int sm_keystore_slot_load(struct device *dev, u32 unit, u32 slot,
+			  const u8 *key_data, u32 key_length)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = -EINVAL;
+	u32 slot_size;
+	u8 __iomem *slot_location;
+
+	spin_lock(&smpriv->kslock);
+
+	slot_size = smpriv->slot_get_slot_size(dev, unit, slot);
+
+	if (key_length > slot_size) {
+		retval = -EFBIG;
+		goto out;
+	}
+
+	slot_location = smpriv->slot_get_address(dev, unit, slot);
+
+	memcpy_toio(slot_location, key_data, key_length);
+
+	retval = 0;
+
+out:
+	spin_unlock(&smpriv->kslock);
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_slot_load);
+
+int sm_keystore_slot_read(struct device *dev, u32 unit, u32 slot,
+			  u32 key_length, u8 *key_data)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = -EINVAL;
+	u8 __iomem *slot_addr;
+	u32 slot_size;
+
+	spin_lock(&smpriv->kslock);
+
+	slot_addr = smpriv->slot_get_address(dev, unit, slot);
+	slot_size = smpriv->slot_get_slot_size(dev, unit, slot);
+
+	if (key_length > slot_size) {
+		retval = -EKEYREJECTED;
+		goto out;
+	}
+
+	memcpy_fromio(key_data, slot_addr, key_length);
+	retval = 0;
+
+out:
+	spin_unlock(&smpriv->kslock);
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_slot_read);
+
+/*
+ * Blacken a clear key in a slot. Operates "in place".
+ * Limited to class 1 keys at the present time
+ */
+int sm_keystore_cover_key(struct device *dev, u32 unit, u32 slot,
+			  u16 key_length, u8 keyauth)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = 0;
+	u8 __iomem *slotaddr;
+	void *slotphys;
+	u32 dsize, jstat;
+	u32 __iomem *coverdesc = NULL;
+
+	/* Get the address of the object in the slot */
+	slotaddr = (u8 *)smpriv->slot_get_address(dev, unit, slot);
+	slotphys = (u8 *)smpriv->slot_get_physical(dev, unit, slot);
+
+	dsize = blacken_key_jobdesc(&coverdesc, slotphys, key_length, keyauth);
+	if (!dsize)
+		return -ENOMEM;
+	jstat = sm_key_job(dev, coverdesc);
+	if (jstat)
+		retval = -EIO;
+
+	kfree(coverdesc);
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_cover_key);
+
+/* Export a black/red key to a blob in external memory */
+int sm_keystore_slot_export(struct device *dev, u32 unit, u32 slot, u8 keycolor,
+			    u8 keyauth, u8 *outbuf, u16 keylen, u8 *keymod)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = 0;
+	u8 __iomem *slotaddr, *lkeymod;
+	u8 __iomem *slotphys;
+	dma_addr_t keymod_dma, outbuf_dma;
+	u32 dsize, jstat;
+	u32 __iomem *encapdesc = NULL;
+	struct device *dev_for_dma_op;
+
+	/* Use the ring as device for DMA operations */
+	dev_for_dma_op = smpriv->smringdev;
+
+	/* Get the base address(es) of the specified slot */
+	slotaddr = (u8 *)smpriv->slot_get_address(dev, unit, slot);
+	slotphys = smpriv->slot_get_physical(dev, unit, slot);
+
+	/* Allocate memory for key modifier compatible with DMA */
+	lkeymod = kmalloc(SECMEM_KEYMOD_LEN, GFP_KERNEL | GFP_DMA);
+	if (!lkeymod) {
+		retval = (-ENOMEM);
+		goto exit;
+	}
+
+	/* Get DMA address for the key modifier */
+	keymod_dma = dma_map_single(dev_for_dma_op, lkeymod,
+					SECMEM_KEYMOD_LEN, DMA_TO_DEVICE);
+	if (dma_mapping_error(dev_for_dma_op, keymod_dma)) {
+		dev_err(dev, "unable to map keymod: %p\n", lkeymod);
+		retval = (-ENOMEM);
+		goto free_keymod;
+	}
+
+	/* Copy the keymod and synchronize the DMA */
+	memcpy(lkeymod, keymod, SECMEM_KEYMOD_LEN);
+	dma_sync_single_for_device(dev_for_dma_op, keymod_dma,
+					SECMEM_KEYMOD_LEN, DMA_TO_DEVICE);
+
+	/* Get DMA address for the destination */
+	outbuf_dma = dma_map_single(dev_for_dma_op, outbuf,
+				keylen + BLOB_OVERHEAD, DMA_FROM_DEVICE);
+	if (dma_mapping_error(dev_for_dma_op, outbuf_dma)) {
+		dev_err(dev, "unable to map outbuf: %p\n", outbuf);
+		retval = (-ENOMEM);
+		goto unmap_keymod;
+	}
+
+	/* Build the encapsulation job descriptor */
+	dsize = blob_encap_jobdesc(&encapdesc, keymod_dma, slotphys, outbuf_dma,
+				   keylen, keycolor, SM_SECMEM, keyauth);
+	if (!dsize) {
+		dev_err(dev, "can't alloc an encapsulation descriptor\n");
+		retval = -ENOMEM;
+		goto unmap_outbuf;
+	}
+
+	/* Run the job */
+	jstat = sm_key_job(dev, encapdesc);
+	if (jstat) {
+		retval = (-EIO);
+		goto free_desc;
+	}
+
+	/* Synchronize the data received */
+	dma_sync_single_for_cpu(dev_for_dma_op, outbuf_dma,
+			keylen + BLOB_OVERHEAD, DMA_FROM_DEVICE);
+
+free_desc:
+	kfree(encapdesc);
+
+unmap_outbuf:
+	dma_unmap_single(dev_for_dma_op, outbuf_dma, keylen + BLOB_OVERHEAD,
+			DMA_FROM_DEVICE);
+
+unmap_keymod:
+	dma_unmap_single(dev_for_dma_op, keymod_dma, SECMEM_KEYMOD_LEN,
+			DMA_TO_DEVICE);
+
+free_keymod:
+	kfree(lkeymod);
+
+exit:
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_slot_export);
+
+/* Import a black/red key from a blob residing in external memory */
+int sm_keystore_slot_import(struct device *dev, u32 unit, u32 slot, u8 keycolor,
+			    u8 keyauth, u8 *inbuf, u16 keylen, u8 *keymod)
+{
+	struct caam_drv_private_sm *smpriv = dev_get_drvdata(dev);
+	int retval = 0;
+	u8 __iomem *slotaddr, *lkeymod;
+	u8 __iomem *slotphys;
+	dma_addr_t keymod_dma, inbuf_dma;
+	u32 dsize, jstat;
+	u32 __iomem *decapdesc = NULL;
+	struct device *dev_for_dma_op;
+
+	/* Use the ring as device for DMA operations */
+	dev_for_dma_op = smpriv->smringdev;
+
+	/* Get the base address(es) of the specified slot */
+	slotaddr = (u8 *)smpriv->slot_get_address(dev, unit, slot);
+	slotphys = smpriv->slot_get_physical(dev, unit, slot);
+
+	/* Allocate memory for key modifier compatible with DMA */
+	lkeymod = kmalloc(SECMEM_KEYMOD_LEN, GFP_KERNEL | GFP_DMA);
+	if (!lkeymod) {
+		retval = (-ENOMEM);
+		goto exit;
+	}
+
+	/* Get DMA address for the key modifier */
+	keymod_dma = dma_map_single(dev_for_dma_op, lkeymod,
+					SECMEM_KEYMOD_LEN, DMA_TO_DEVICE);
+	if (dma_mapping_error(dev_for_dma_op, keymod_dma)) {
+		dev_err(dev, "unable to map keymod: %p\n", lkeymod);
+		retval = (-ENOMEM);
+		goto free_keymod;
+	}
+
+	/* Copy the keymod and synchronize the DMA */
+	memcpy(lkeymod, keymod, SECMEM_KEYMOD_LEN);
+	dma_sync_single_for_device(dev_for_dma_op, keymod_dma,
+					SECMEM_KEYMOD_LEN, DMA_TO_DEVICE);
+
+	/* Get DMA address for the input */
+	inbuf_dma = dma_map_single(dev_for_dma_op, inbuf,
+					keylen + BLOB_OVERHEAD, DMA_TO_DEVICE);
+	if (dma_mapping_error(dev_for_dma_op, inbuf_dma)) {
+		dev_err(dev, "unable to map inbuf: %p\n", (void *)inbuf_dma);
+		retval = (-ENOMEM);
+		goto unmap_keymod;
+	}
+
+	/* synchronize the DMA */
+	dma_sync_single_for_device(dev_for_dma_op, inbuf_dma,
+					keylen + BLOB_OVERHEAD, DMA_TO_DEVICE);
+
+	/* Build the encapsulation job descriptor */
+	dsize = blob_decap_jobdesc(&decapdesc, keymod_dma, inbuf_dma, slotphys,
+				   keylen, keycolor, SM_SECMEM, keyauth);
+	if (!dsize) {
+		dev_err(dev, "can't alloc a decapsulation descriptor\n");
+		retval = -ENOMEM;
+		goto unmap_inbuf;
+	}
+
+	/* Run the job */
+	jstat = sm_key_job(dev, decapdesc);
+
+	/*
+	 * May want to expand upon error meanings a bit. Any CAAM status
+	 * is reported as EIO, but we might want to look for something more
+	 * meaningful for something like an ICV error on restore, otherwise
+	 * the caller is left guessing.
+	 */
+	if (jstat) {
+		retval = (-EIO);
+		goto free_desc;
+	}
+
+free_desc:
+	kfree(decapdesc);
+
+unmap_inbuf:
+	dma_unmap_single(dev_for_dma_op, inbuf_dma, keylen + BLOB_OVERHEAD,
+			DMA_TO_DEVICE);
+
+unmap_keymod:
+	dma_unmap_single(dev_for_dma_op, keymod_dma, SECMEM_KEYMOD_LEN,
+			DMA_TO_DEVICE);
+
+free_keymod:
+	kfree(lkeymod);
+
+exit:
+	return retval;
+}
+EXPORT_SYMBOL(sm_keystore_slot_import);
+
+/*
+ * Initialization/shutdown subsystem
+ * Assumes statically-invoked startup/shutdown from the controller driver
+ * for the present time, to be reworked when a device tree becomes
+ * available. This code will not modularize in present form.
+ *
+ * Also, simply uses ring 0 for execution at the present
+ */
+
+int caam_sm_startup(struct device *ctrldev)
+{
+	struct device *smdev;
+	struct caam_drv_private *ctrlpriv;
+	struct caam_drv_private_sm *smpriv;
+	struct caam_drv_private_jr *jrpriv;	/* need this for reg page */
+	struct platform_device *sm_pdev;
+	struct sm_page_descriptor *lpagedesc;
+	u32 page, pgstat, lpagect, detectedpage, smvid, smpart;
+	int ret = 0;
+
+	struct device_node *np;
+	ctrlpriv = dev_get_drvdata(ctrldev);
+
+	if (!ctrlpriv->sm_present)
+		return 0;
+
+	/*
+	 * Set up the private block for secure memory
+	 * Only one instance is possible
+	 */
+	smpriv = kzalloc(sizeof(struct caam_drv_private_sm), GFP_KERNEL);
+	if (smpriv == NULL) {
+		dev_err(ctrldev, "can't alloc private mem for secure memory\n");
+		ret = -ENOMEM;
+		goto exit;
+	}
+	smpriv->parentdev = ctrldev; /* copy of parent dev is handy */
+	spin_lock_init(&smpriv->kslock);
+
+	/* Create the dev */
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-caam-sm");
+	if (np)
+		of_node_clear_flag(np, OF_POPULATED);
+	sm_pdev = of_platform_device_create(np, "caam_sm", ctrldev);
+
+	if (sm_pdev == NULL) {
+		ret = -EINVAL;
+		goto free_smpriv;
+	}
+
+	/* Save a pointer to the platform device for Secure Memory */
+	smpriv->sm_pdev = sm_pdev;
+	smdev = &sm_pdev->dev;
+	dev_set_drvdata(smdev, smpriv);
+	ctrlpriv->smdev = smdev;
+
+	/* Set the Secure Memory Register Map Version */
+	smvid = rd_reg32(&ctrlpriv->jr[0]->perfmon.smvid);
+	smpart = rd_reg32(&ctrlpriv->jr[0]->perfmon.smpart);
+
+	if (smvid < SMVID_V2)
+		smpriv->sm_reg_offset = SM_V1_OFFSET;
+	else
+		smpriv->sm_reg_offset = SM_V2_OFFSET;
+
+	/*
+	 * Collect configuration limit data for reference
+	 * This batch comes from the partition data/vid registers in perfmon
+	 */
+	smpriv->max_pages = ((smpart & SMPART_MAX_NUMPG_MASK) >>
+			    SMPART_MAX_NUMPG_SHIFT) + 1;
+	smpriv->top_partition = ((smpart & SMPART_MAX_PNUM_MASK) >>
+				SMPART_MAX_PNUM_SHIFT) + 1;
+	smpriv->top_page =  ((smpart & SMPART_MAX_PG_MASK) >>
+				SMPART_MAX_PG_SHIFT) + 1;
+	smpriv->page_size = 1024 << ((smvid & SMVID_PG_SIZE_MASK) >>
+				SMVID_PG_SIZE_SHIFT);
+	smpriv->slot_size = 1 << CONFIG_CRYPTO_DEV_FSL_CAAM_SM_SLOTSIZE;
+
+#ifdef SM_DEBUG
+	dev_info(smdev, "max pages = %d, top partition = %d\n",
+			smpriv->max_pages, smpriv->top_partition);
+	dev_info(smdev, "top page = %d, page size = %d (total = %d)\n",
+			smpriv->top_page, smpriv->page_size,
+			smpriv->top_page * smpriv->page_size);
+	dev_info(smdev, "selected slot size = %d\n", smpriv->slot_size);
+#endif
+
+	/*
+	 * Now probe for partitions/pages to which we have access. Note that
+	 * these have likely been set up by a bootloader or platform
+	 * provisioning application, so we have to assume that we "inherit"
+	 * a configuration and work within the constraints of what it might be.
+	 *
+	 * Assume use of the zeroth ring in the present iteration (until
+	 * we can divorce the controller and ring drivers, and then assign
+	 * an SM instance to any ring instance).
+	 */
+	smpriv->smringdev = caam_jr_alloc();
+	if (!smpriv->smringdev) {
+		dev_err(smdev, "Device for job ring not created\n");
+		ret = -ENODEV;
+		goto unregister_smpdev;
+	}
+
+	jrpriv = dev_get_drvdata(smpriv->smringdev);
+	lpagect = 0;
+	pgstat = 0;
+	lpagedesc = kzalloc(sizeof(struct sm_page_descriptor)
+			    * smpriv->max_pages, GFP_KERNEL);
+	if (lpagedesc == NULL) {
+		ret = -ENOMEM;
+		goto free_smringdev;
+	}
+
+	for (page = 0; page < smpriv->max_pages; page++) {
+		u32 page_ownership;
+
+		if (sm_send_cmd(smpriv, jrpriv,
+				((page << SMC_PAGE_SHIFT) & SMC_PAGE_MASK) |
+				(SMC_CMD_PAGE_INQUIRY & SMC_CMD_MASK),
+				&pgstat)) {
+			ret = -EINVAL;
+			goto free_lpagedesc;
+		}
+
+		page_ownership = (pgstat & SMCS_PGWON_MASK) >> SMCS_PGOWN_SHIFT;
+		if ((page_ownership == SMCS_PGOWN_OWNED)
+			|| (page_ownership == SMCS_PGOWN_NOOWN)) {
+			/* page allocated */
+			lpagedesc[page].phys_pagenum =
+				(pgstat & SMCS_PAGE_MASK) >> SMCS_PAGE_SHIFT;
+			lpagedesc[page].own_part =
+				(pgstat & SMCS_PART_SHIFT) >> SMCS_PART_MASK;
+			lpagedesc[page].pg_base = (u8 *)ctrlpriv->sm_base +
+				(smpriv->page_size * page);
+			if (ctrlpriv->scu_en) {
+/* FIXME: get different addresses viewed by CPU and CAAM from
+ * platform property
+ */
+				lpagedesc[page].pg_phys = (u8 *)0x20800000 +
+					(smpriv->page_size * page);
+			} else {
+				lpagedesc[page].pg_phys =
+					(u8 *) ctrlpriv->sm_phy +
+					(smpriv->page_size * page);
+			}
+			lpagect++;
+#ifdef SM_DEBUG
+			dev_info(smdev,
+				"physical page %d, owning partition = %d\n",
+				lpagedesc[page].phys_pagenum,
+				lpagedesc[page].own_part);
+#endif
+		}
+	}
+
+	smpriv->pagedesc = kzalloc(sizeof(struct sm_page_descriptor) * lpagect,
+				   GFP_KERNEL);
+	if (smpriv->pagedesc == NULL) {
+		ret = -ENOMEM;
+		goto free_lpagedesc;
+	}
+	smpriv->localpages = lpagect;
+
+	detectedpage = 0;
+	for (page = 0; page < smpriv->max_pages; page++) {
+		if (lpagedesc[page].pg_base != NULL) {	/* e.g. live entry */
+			memcpy(&smpriv->pagedesc[detectedpage],
+			       &lpagedesc[page],
+			       sizeof(struct sm_page_descriptor));
+#ifdef SM_DEBUG_CONT
+			sm_show_page(smdev, &smpriv->pagedesc[detectedpage]);
+#endif
+			detectedpage++;
+		}
+	}
+
+	kfree(lpagedesc);
+
+	sm_init_keystore(smdev);
+
+	goto exit;
+
+free_lpagedesc:
+	kfree(lpagedesc);
+free_smringdev:
+	caam_jr_free(smpriv->smringdev);
+unregister_smpdev:
+	of_device_unregister(smpriv->sm_pdev);
+free_smpriv:
+	kfree(smpriv);
+
+exit:
+	return ret;
+}
+
+void caam_sm_shutdown(struct device *ctrldev)
+{
+	struct device *smdev;
+	struct caam_drv_private *priv;
+	struct caam_drv_private_sm *smpriv;
+
+	priv = dev_get_drvdata(ctrldev);
+	if (!priv->sm_present)
+		return;
+
+	smdev = priv->smdev;
+
+	/* Return if resource not initialized by startup */
+	if (smdev == NULL)
+		return;
+
+	smpriv = dev_get_drvdata(smdev);
+
+	caam_jr_free(smpriv->smringdev);
+
+	/* Remove Secure Memory Platform Device */
+	of_device_unregister(smpriv->sm_pdev);
+
+	kfree(smpriv->pagedesc);
+	kfree(smpriv);
+}
+EXPORT_SYMBOL(caam_sm_shutdown);
--- linux-ein-5.4.0.orig/drivers/crypto/caam/sm_test.c
+++ linux-ein-5.4.0/drivers/crypto/caam/sm_test.c
@@ -0,0 +1,582 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Secure Memory / Keystore Exemplification Module
+ *
+ * Copyright 2012-2015 Freescale Semiconductor, Inc.
+ * Copyright 2016-2019 NXP
+ *
+ * This module has been overloaded as an example to show:
+ * - Secure memory subsystem initialization/shutdown
+ * - Allocation/deallocation of "slots" in a secure memory page
+ * - Loading and unloading of key material into slots
+ * - Covering of secure memory objects into "black keys" (ECB only at present)
+ * - Verification of key covering (by differentiation only)
+ * - Exportation of keys into secure memory blobs (with display of result)
+ * - Importation of keys from secure memory blobs (with display of result)
+ * - Verification of re-imported keys where possible.
+ *
+ * The module does not show the use of key objects as working key register
+ * source material at this time.
+ *
+ * This module can use a substantial amount of refactoring, which may occur
+ * after the API gets some mileage. Furthermore, expect this module to
+ * eventually disappear once the API is integrated into "real" software.
+ */
+
+#include "compat.h"
+#include "regs.h"
+#include "intern.h"
+#include "desc.h"
+#include "error.h"
+#include "jr.h"
+#include "sm.h"
+
+/* Fixed known pattern for a key modifier */
+static u8 skeymod[] = {
+	0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08,
+	0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00
+};
+
+/* Fixed known pattern for a key */
+static u8 clrkey[] = {
+	0x00, 0x01, 0x02, 0x03, 0x04, 0x0f, 0x06, 0x07,
+	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+	0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+	0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+	0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+	0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
+	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+	0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+	0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+	0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
+	0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
+	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+	0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
+	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
+	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+	0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
+	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
+	0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
+};
+
+static void key_display(struct device *dev, const char *label, u16 size,
+			u8 *key)
+{
+	unsigned i;
+
+	dev_dbg(dev, "%s", label);
+	for (i = 0; i < size; i += 8)
+		dev_dbg(dev,
+			"[%04d] %02x %02x %02x %02x %02x %02x %02x %02x\n",
+			i, key[i], key[i + 1], key[i + 2], key[i + 3],
+			key[i + 4], key[i + 5], key[i + 6], key[i + 7]);
+}
+
+int caam_sm_example_init(struct platform_device *pdev)
+{
+	struct device *ctrldev, *ksdev;
+	struct caam_drv_private *ctrlpriv;
+	struct caam_drv_private_sm *kspriv;
+	u32 unit, units;
+	int rtnval;
+	u8 clrkey8[8], clrkey16[16], clrkey24[24], clrkey32[32];
+	u8 blkkey8[AES_BLOCK_PAD(8)], blkkey16[AES_BLOCK_PAD(16)];
+	u8 blkkey24[AES_BLOCK_PAD(24)], blkkey32[AES_BLOCK_PAD(32)];
+	u8 rstkey8[AES_BLOCK_PAD(8)], rstkey16[AES_BLOCK_PAD(16)];
+	u8 rstkey24[AES_BLOCK_PAD(24)], rstkey32[AES_BLOCK_PAD(32)];
+	u8 __iomem *blob8, *blob16, *blob24, *blob32;
+	u32 keyslot8, keyslot16, keyslot24, keyslot32 = 0;
+
+	blob8 = blob16 = blob24 = blob32 = NULL;
+
+	/*
+	 * 3.5.x and later revs for MX6 should be able to ditch this
+	 * and detect via dts property
+	 */
+	ctrldev = &pdev->dev;
+	ctrlpriv = dev_get_drvdata(ctrldev);
+
+	/*
+	 * If ctrlpriv is NULL, it's probably because the caam driver wasn't
+	 * properly initialized (e.g. RNG4 init failed). Thus, bail out here.
+	 */
+	if (!ctrlpriv)
+		return -ENODEV;
+
+	ksdev = ctrlpriv->smdev;
+	kspriv = dev_get_drvdata(ksdev);
+	if (kspriv == NULL)
+		return -ENODEV;
+
+	/* What keystores are available ? */
+	units = sm_detect_keystore_units(ksdev);
+	if (!units)
+		dev_err(ksdev, "blkkey_ex: no keystore units available\n");
+
+	/*
+	 * MX6 bootloader stores some stuff in unit 0, so let's
+	 * use 1 or above
+	 */
+	if (units < 2) {
+		dev_err(ksdev, "blkkey_ex: insufficient keystore units\n");
+		return -ENODEV;
+	}
+	unit = 1;
+
+	dev_info(ksdev, "blkkey_ex: %d keystore units available\n", units);
+
+	/* Initialize/Establish Keystore */
+	sm_establish_keystore(ksdev, unit);	/* Initalize store in #1 */
+
+	/*
+	 * Now let's set up buffers for blobs in DMA-able memory. All are
+	 * larger than need to be so that blob size can be seen.
+	 */
+	blob8 = kzalloc(128, GFP_KERNEL | GFP_DMA);
+	blob16 = kzalloc(128, GFP_KERNEL | GFP_DMA);
+	blob24 = kzalloc(128, GFP_KERNEL | GFP_DMA);
+	blob32 = kzalloc(128, GFP_KERNEL | GFP_DMA);
+
+	if ((blob8 == NULL) || (blob16 == NULL) || (blob24 == NULL) ||
+	    (blob32 == NULL)) {
+		rtnval = -ENOMEM;
+		dev_err(ksdev, "blkkey_ex: can't get blob buffers\n");
+		goto freemem;
+	}
+
+	/* Initialize clear keys with a known and recognizable pattern */
+	memcpy(clrkey8, clrkey, 8);
+	memcpy(clrkey16, clrkey, 16);
+	memcpy(clrkey24, clrkey, 24);
+	memcpy(clrkey32, clrkey, 32);
+
+	memset(blkkey8, 0, AES_BLOCK_PAD(8));
+	memset(blkkey16, 0, AES_BLOCK_PAD(16));
+	memset(blkkey24, 0, AES_BLOCK_PAD(24));
+	memset(blkkey32, 0, AES_BLOCK_PAD(32));
+
+	memset(rstkey8, 0, AES_BLOCK_PAD(8));
+	memset(rstkey16, 0, AES_BLOCK_PAD(16));
+	memset(rstkey24, 0, AES_BLOCK_PAD(24));
+	memset(rstkey32, 0, AES_BLOCK_PAD(32));
+
+	/*
+	 * Allocate keyslots. Since we're going to blacken keys in-place,
+	 * we want slots big enough to pad out to the next larger AES blocksize
+	 * so pad them out.
+	 */
+	rtnval = sm_keystore_slot_alloc(ksdev, unit, AES_BLOCK_PAD(8),
+					&keyslot8);
+	if (rtnval)
+		goto freemem;
+
+	rtnval = sm_keystore_slot_alloc(ksdev, unit, AES_BLOCK_PAD(16),
+					&keyslot16);
+	if (rtnval)
+		goto dealloc_slot8;
+
+	rtnval = sm_keystore_slot_alloc(ksdev, unit, AES_BLOCK_PAD(24),
+					&keyslot24);
+	if (rtnval)
+		goto dealloc_slot16;
+
+	rtnval = sm_keystore_slot_alloc(ksdev, unit, AES_BLOCK_PAD(32),
+					&keyslot32);
+	if (rtnval)
+		goto dealloc_slot24;
+
+
+	/* Now load clear key data into the newly allocated slots */
+	rtnval = sm_keystore_slot_load(ksdev, unit, keyslot8, clrkey8, 8);
+	if (rtnval)
+		goto dealloc;
+
+	rtnval = sm_keystore_slot_load(ksdev, unit, keyslot16, clrkey16, 16);
+	if (rtnval)
+		goto dealloc;
+
+	rtnval = sm_keystore_slot_load(ksdev, unit, keyslot24, clrkey24, 24);
+	if (rtnval)
+		goto dealloc;
+
+	rtnval = sm_keystore_slot_load(ksdev, unit, keyslot32, clrkey32, 32);
+	if (rtnval)
+		goto dealloc;
+
+	/*
+	 * All cleartext keys are loaded into slots (in an unprotected
+	 * partition at this time)
+	 *
+	 * Cover keys in-place
+	 */
+	rtnval = sm_keystore_cover_key(ksdev, unit, keyslot8, 8, KEY_COVER_ECB);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't cover 64-bit key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_cover_key(ksdev, unit, keyslot16, 16,
+				       KEY_COVER_ECB);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't cover 128-bit key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_cover_key(ksdev, unit, keyslot24, 24,
+				       KEY_COVER_ECB);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't cover 192-bit key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_cover_key(ksdev, unit, keyslot32, 32,
+				       KEY_COVER_ECB);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't cover 256-bit key\n");
+		goto dealloc;
+	}
+
+	/*
+	 * Keys should be covered and appear sufficiently "random"
+	 * as a result of the covering (blackening) process. Assuming
+	 * non-secure mode, read them back out for examination; they should
+	 * appear as random data, completely differing from the clear
+	 * inputs. So, this will read them back from secure memory and
+	 * compare them. If they match the clear key, then the covering
+	 * operation didn't occur.
+	 */
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot8, AES_BLOCK_PAD(8),
+				       blkkey8);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't read 64-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot16,
+				       AES_BLOCK_PAD(16), blkkey16);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't read 128-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot24,
+				       AES_BLOCK_PAD(24), blkkey24);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't read 192-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot32,
+				       AES_BLOCK_PAD(32), blkkey32);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't read 256-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = -EINVAL;
+	if (!memcmp(blkkey8, clrkey8, 8)) {
+		dev_err(ksdev, "blkkey_ex: 64-bit key cover failed\n");
+		goto dealloc;
+	}
+
+	if (!memcmp(blkkey16, clrkey16, 16)) {
+		dev_err(ksdev, "blkkey_ex: 128-bit key cover failed\n");
+		goto dealloc;
+	}
+
+	if (!memcmp(blkkey24, clrkey24, 24)) {
+		dev_err(ksdev, "blkkey_ex: 192-bit key cover failed\n");
+		goto dealloc;
+	}
+
+	if (!memcmp(blkkey32, clrkey32, 32)) {
+		dev_err(ksdev, "blkkey_ex: 256-bit key cover failed\n");
+		goto dealloc;
+	}
+
+
+	key_display(ksdev, "64-bit clear key:", 8, clrkey8);
+	key_display(ksdev, "64-bit black key:", AES_BLOCK_PAD(8), blkkey8);
+
+	key_display(ksdev, "128-bit clear key:", 16, clrkey16);
+	key_display(ksdev, "128-bit black key:", AES_BLOCK_PAD(16), blkkey16);
+
+	key_display(ksdev, "192-bit clear key:", 24, clrkey24);
+	key_display(ksdev, "192-bit black key:", AES_BLOCK_PAD(24), blkkey24);
+
+	key_display(ksdev, "256-bit clear key:", 32, clrkey32);
+	key_display(ksdev, "256-bit black key:", AES_BLOCK_PAD(32), blkkey32);
+
+	/*
+	 * Now encapsulate all keys as SM blobs out to external memory
+	 * Blobs will appear as random-looking blocks of data different
+	 * from the original source key, and 48 bytes longer than the
+	 * original key, to account for the extra data encapsulated within.
+	 */
+	key_display(ksdev, "64-bit unwritten blob:", 96, blob8);
+	key_display(ksdev, "128-bit unwritten blob:", 96, blob16);
+	key_display(ksdev, "196-bit unwritten blob:", 96, blob24);
+	key_display(ksdev, "256-bit unwritten blob:", 96, blob32);
+
+	rtnval = sm_keystore_slot_export(ksdev, unit, keyslot8, BLACK_KEY,
+					 KEY_COVER_ECB, blob8, 8, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't encapsulate 64-bit key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_export(ksdev, unit, keyslot16, BLACK_KEY,
+					 KEY_COVER_ECB, blob16, 16, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't encapsulate 128-bit key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_export(ksdev, unit, keyslot24, BLACK_KEY,
+					 KEY_COVER_ECB, blob24, 24, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't encapsulate 192-bit key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_export(ksdev, unit, keyslot32, BLACK_KEY,
+					 KEY_COVER_ECB, blob32, 32, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't encapsulate 256-bit key\n");
+		goto dealloc;
+	}
+
+	key_display(ksdev, "64-bit black key in blob:", 96, blob8);
+	key_display(ksdev, "128-bit black key in blob:", 96, blob16);
+	key_display(ksdev, "192-bit black key in blob:", 96, blob24);
+	key_display(ksdev, "256-bit black key in blob:", 96, blob32);
+
+	/*
+	 * Now re-import black keys from secure-memory blobs stored
+	 * in general memory from the previous operation. Since we are
+	 * working with black keys, and since power has not cycled, the
+	 * restored black keys should match the original blackened keys
+	 * (this would not be true if the blobs were save in some non-volatile
+	 * store, and power was cycled between the save and restore)
+	 */
+	rtnval = sm_keystore_slot_import(ksdev, unit, keyslot8, BLACK_KEY,
+					 KEY_COVER_ECB, blob8, 8, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't decapsulate 64-bit blob\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_import(ksdev, unit, keyslot16, BLACK_KEY,
+					 KEY_COVER_ECB, blob16, 16, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't decapsulate 128-bit blob\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_import(ksdev, unit, keyslot24, BLACK_KEY,
+					 KEY_COVER_ECB, blob24, 24, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't decapsulate 196-bit blob\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_import(ksdev, unit, keyslot32, BLACK_KEY,
+					 KEY_COVER_ECB, blob32, 32, skeymod);
+	if (rtnval) {
+		dev_err(ksdev, "blkkey_ex: can't decapsulate 256-bit blob\n");
+		goto dealloc;
+	}
+
+
+	/*
+	 * Blobs are now restored as black keys. Read those black keys back
+	 * for a comparison with the original black key, they should match
+	 */
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot8, AES_BLOCK_PAD(8),
+				       rstkey8);
+	if (rtnval) {
+		dev_err(ksdev,
+			"blkkey_ex: can't read restored 64-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot16,
+				       AES_BLOCK_PAD(16), rstkey16);
+	if (rtnval) {
+		dev_err(ksdev,
+			"blkkey_ex: can't read restored 128-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot24,
+				       AES_BLOCK_PAD(24), rstkey24);
+	if (rtnval) {
+		dev_err(ksdev,
+			"blkkey_ex: can't read restored 196-bit black key\n");
+		goto dealloc;
+	}
+
+	rtnval = sm_keystore_slot_read(ksdev, unit, keyslot32,
+				       AES_BLOCK_PAD(32), rstkey32);
+	if (rtnval) {
+		dev_err(ksdev,
+			"blkkey_ex: can't read restored 256-bit black key\n");
+		goto dealloc;
+	}
+
+	key_display(ksdev, "restored 64-bit black key:", AES_BLOCK_PAD(8),
+		    rstkey8);
+	key_display(ksdev, "restored 128-bit black key:", AES_BLOCK_PAD(16),
+		    rstkey16);
+	key_display(ksdev, "restored 192-bit black key:", AES_BLOCK_PAD(24),
+		    rstkey24);
+	key_display(ksdev, "restored 256-bit black key:", AES_BLOCK_PAD(32),
+		    rstkey32);
+
+	/*
+	 * Compare the restored black keys with the original blackened keys
+	 * As long as we're operating within the same power cycle, a black key
+	 * restored from a blob should match the original black key IF the
+	 * key happens to be of a size that matches a multiple of the AES
+	 * blocksize. Any key that is padded to fill the block size will not
+	 * match, excepting a key that exceeds a block; only the first full
+	 * blocks will match (assuming ECB).
+	 *
+	 * Therefore, compare the 16 and 32 bit keys, they should match.
+	 * The 24 bit key can only match within the first 16 byte block.
+	 */
+
+	if (memcmp(rstkey16, blkkey16, AES_BLOCK_PAD(16))) {
+		dev_err(ksdev, "blkkey_ex: 128-bit restored key mismatch\n");
+		rtnval = -EINVAL;
+	}
+
+	/* Only first AES block will match, remainder subject to padding */
+	if (memcmp(rstkey24, blkkey24, 16)) {
+		dev_err(ksdev, "blkkey_ex: 192-bit restored key mismatch\n");
+		rtnval = -EINVAL;
+	}
+
+	if (memcmp(rstkey32, blkkey32, AES_BLOCK_PAD(32))) {
+		dev_err(ksdev, "blkkey_ex: 256-bit restored key mismatch\n");
+		rtnval = -EINVAL;
+	}
+
+
+	/* Remove keys from keystore */
+dealloc:
+	sm_keystore_slot_dealloc(ksdev, unit, keyslot32);
+dealloc_slot24:
+	sm_keystore_slot_dealloc(ksdev, unit, keyslot24);
+dealloc_slot16:
+	sm_keystore_slot_dealloc(ksdev, unit, keyslot16);
+dealloc_slot8:
+	sm_keystore_slot_dealloc(ksdev, unit, keyslot8);
+
+	/* Free resources */
+freemem:
+	kfree(blob8);
+	kfree(blob16);
+	kfree(blob24);
+	kfree(blob32);
+
+	/* Disconnect from keystore and leave */
+	sm_release_keystore(ksdev, unit);
+
+	return rtnval;
+}
+EXPORT_SYMBOL(caam_sm_example_init);
+
+void caam_sm_example_shutdown(void)
+{
+	/* unused in present version */
+	struct device_node *dev_node;
+	struct platform_device *pdev;
+
+	/*
+	 * Do of_find_compatible_node() then of_find_device_by_node()
+	 * once a functional device tree is available
+	 */
+	dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
+	if (!dev_node) {
+		dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec4.0");
+		if (!dev_node)
+			return;
+	}
+
+	pdev = of_find_device_by_node(dev_node);
+	if (!pdev)
+		return;
+
+	of_node_get(dev_node);
+
+}
+
+static int __init caam_sm_test_init(void)
+{
+	struct device_node *dev_node;
+	struct platform_device *pdev;
+	struct caam_drv_private *priv;
+	int ret;
+
+	/*
+	 * Do of_find_compatible_node() then of_find_device_by_node()
+	 * once a functional device tree is available
+	 */
+	dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
+	if (!dev_node) {
+		dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec4.0");
+		if (!dev_node)
+			return -ENODEV;
+	}
+
+	pdev = of_find_device_by_node(dev_node);
+	if (!pdev)
+		return -ENODEV;
+
+	of_node_put(dev_node);
+
+	priv = dev_get_drvdata(&pdev->dev);
+	if (!priv) {
+		dev_info(&pdev->dev, "SM driver not ready, aborting tests\n");
+		return -ENODEV;
+	}
+	if (!priv->sm_present) {
+		dev_info(&pdev->dev, "No SM support, skipping tests\n");
+		return -ENODEV;
+	}
+
+	ret = caam_sm_example_init(pdev);
+	if (ret)
+		dev_err(&pdev->dev, "SM test failed: %d\n", ret);
+	else
+		dev_info(&pdev->dev, "SM test passed\n");
+
+	return ret;
+}
+
+
+/* Module-based initialization needs to wait for dev tree */
+#ifdef CONFIG_OF
+module_init(caam_sm_test_init);
+module_exit(caam_sm_example_shutdown);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("FSL CAAM Black Key Usage Example");
+MODULE_AUTHOR("Freescale Semiconductor - NMSG/MAD");
+#endif
--- linux-ein-5.4.0.orig/drivers/crypto/caam/snvsregs.h
+++ linux-ein-5.4.0/drivers/crypto/caam/snvsregs.h
@@ -0,0 +1,239 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/*
+ * SNVS hardware register-level view
+ *
+ * Copyright 2012-2015 Freescale Semiconductor, Inc.
+ * Copyright 2016-2019 NXP
+ */
+
+#ifndef SNVSREGS_H
+#define SNVSREGS_H
+
+#include <linux/types.h>
+#include <linux/io.h>
+
+/*
+ * SNVS High Power Domain
+ * Includes security violations, HA counter, RTC, alarm
+ */
+struct snvs_hp {
+	u32 lock;		/* HPLR - HP Lock */
+	u32 cmd;		/* HPCOMR - HP Command */
+	u32 ctl;		/* HPCR - HP Control */
+	u32 secvio_intcfg;	/* HPSICR - Security Violation Int Config */
+	u32 secvio_ctl;		/* HPSVCR - Security Violation Control */
+	u32 status;		/* HPSR - HP Status */
+	u32 secvio_status;	/* HPSVSR - Security Violation Status */
+	u32 ha_counteriv;	/* High Assurance Counter IV */
+	u32 ha_counter;		/* High Assurance Counter */
+	u32 rtc_msb;		/* Real Time Clock/Counter MSB */
+	u32 rtc_lsb;		/* Real Time Counter LSB */
+	u32 time_alarm_msb;	/* Time Alarm MSB */
+	u32 time_alarm_lsb;	/* Time Alarm LSB */
+};
+
+#define HP_LOCK_HAC_LCK		0x00040000
+#define HP_LOCK_HPSICR_LCK	0x00020000
+#define HP_LOCK_HPSVCR_LCK	0x00010000
+#define HP_LOCK_MKEYSEL_LCK	0x00000200
+#define HP_LOCK_TAMPCFG_LCK	0x00000100
+#define HP_LOCK_TAMPFLT_LCK	0x00000080
+#define HP_LOCK_SECVIO_LCK	0x00000040
+#define HP_LOCK_GENP_LCK	0x00000020
+#define HP_LOCK_MONOCTR_LCK	0x00000010
+#define HP_LOCK_CALIB_LCK	0x00000008
+#define HP_LOCK_SRTC_LCK	0x00000004
+#define HP_LOCK_ZMK_RD_LCK	0x00000002
+#define HP_LOCK_ZMK_WT_LCK	0x00000001
+
+#define HP_CMD_NONPRIV_AXS	0x80000000
+#define HP_CMD_HAC_STOP		0x00080000
+#define HP_CMD_HAC_CLEAR	0x00040000
+#define HP_CMD_HAC_LOAD		0x00020000
+#define HP_CMD_HAC_CFG_EN	0x00010000
+#define HP_CMD_SNVS_MSTR_KEY	0x00002000
+#define HP_CMD_PROG_ZMK		0x00001000
+#define HP_CMD_SW_LPSV		0x00000400
+#define HP_CMD_SW_FSV		0x00000200
+#define HP_CMD_SW_SV		0x00000100
+#define HP_CMD_LP_SWR_DIS	0x00000020
+#define HP_CMD_LP_SWR		0x00000010
+#define HP_CMD_SSM_SFNS_DIS	0x00000004
+#define HP_CMD_SSM_ST_DIS	0x00000002
+#define HP_CMD_SMM_ST		0x00000001
+
+#define HP_CTL_TIME_SYNC	0x00010000
+#define HP_CTL_CAL_VAL_SHIFT	10
+#define HP_CTL_CAL_VAL_MASK	(0x1f << HP_CTL_CALIB_SHIFT)
+#define HP_CTL_CALIB_EN		0x00000100
+#define HP_CTL_PI_FREQ_SHIFT	4
+#define HP_CTL_PI_FREQ_MASK	(0xf << HP_CTL_PI_FREQ_SHIFT)
+#define HP_CTL_PI_EN		0x00000008
+#define HP_CTL_TIMEALARM_EN	0x00000002
+#define HP_CTL_RTC_EN		0x00000001
+
+#define HP_SECVIO_INTEN_EN	0x10000000
+#define HP_SECVIO_INTEN_SRC5	0x00000020
+#define HP_SECVIO_INTEN_SRC4	0x00000010
+#define HP_SECVIO_INTEN_SRC3	0x00000008
+#define HP_SECVIO_INTEN_SRC2	0x00000004
+#define HP_SECVIO_INTEN_SRC1	0x00000002
+#define HP_SECVIO_INTEN_SRC0	0x00000001
+#define HP_SECVIO_INTEN_ALL	0x8000003f
+
+#define HP_SECVIO_ICTL_CFG_SHIFT	30
+#define HP_SECVIO_ICTL_CFG_MASK		(0x3 << HP_SECVIO_ICTL_CFG_SHIFT)
+#define HP_SECVIO_ICTL_CFG5_SHIFT	5
+#define HP_SECVIO_ICTL_CFG5_MASK	(0x3 << HP_SECVIO_ICTL_CFG5_SHIFT)
+#define HP_SECVIO_ICTL_CFG_DISABLE	0
+#define HP_SECVIO_ICTL_CFG_NONFATAL	1
+#define HP_SECVIO_ICTL_CFG_FATAL	2
+#define HP_SECVIO_ICTL_CFG4_FATAL	0x00000010
+#define HP_SECVIO_ICTL_CFG3_FATAL	0x00000008
+#define HP_SECVIO_ICTL_CFG2_FATAL	0x00000004
+#define HP_SECVIO_ICTL_CFG1_FATAL	0x00000002
+#define HP_SECVIO_ICTL_CFG0_FATAL	0x00000001
+
+#define HP_STATUS_ZMK_ZERO		0x80000000
+#define HP_STATUS_OTPMK_ZERO		0x08000000
+#define HP_STATUS_OTPMK_SYN_SHIFT	16
+#define HP_STATUS_OTPMK_SYN_MASK	(0x1ff << HP_STATUS_OTPMK_SYN_SHIFT)
+#define HP_STATUS_SSM_ST_SHIFT		8
+#define HP_STATUS_SSM_ST_MASK		(0xf << HP_STATUS_SSM_ST_SHIFT)
+#define HP_STATUS_SSM_ST_INIT		0
+#define HP_STATUS_SSM_ST_HARDFAIL	1
+#define HP_STATUS_SSM_ST_SOFTFAIL	3
+#define HP_STATUS_SSM_ST_INITINT	8
+#define HP_STATUS_SSM_ST_CHECK		9
+#define HP_STATUS_SSM_ST_NONSECURE	11
+#define HP_STATUS_SSM_ST_TRUSTED	13
+#define HP_STATUS_SSM_ST_SECURE		15
+
+#define HP_SECVIOST_ZMK_ECC_FAIL	0x08000000	/* write to clear */
+#define HP_SECVIOST_ZMK_SYN_SHIFT	16
+#define HP_SECVIOST_ZMK_SYN_MASK	(0x1ff << HP_SECVIOST_ZMK_SYN_SHIFT)
+#define HP_SECVIOST_SECVIO5		0x00000020
+#define HP_SECVIOST_SECVIO4		0x00000010
+#define HP_SECVIOST_SECVIO3		0x00000008
+#define HP_SECVIOST_SECVIO2		0x00000004
+#define HP_SECVIOST_SECVIO1		0x00000002
+#define HP_SECVIOST_SECVIO0		0x00000001
+#define HP_SECVIOST_SECVIOMASK		0x0000003f
+
+/*
+ * SNVS Low Power Domain
+ * Includes glitch detector, SRTC, alarm, monotonic counter, ZMK
+ */
+struct snvs_lp {
+	u32 lock;
+	u32 ctl;
+	u32 mstr_key_ctl;	/* Master Key Control */
+	u32 secvio_ctl;		/* Security Violation Control */
+	u32 tamper_filt_cfg;	/* Tamper Glitch Filters Configuration */
+	u32 tamper_det_cfg;	/* Tamper Detectors Configuration */
+	u32 status;
+	u32 srtc_msb;		/* Secure Real Time Clock/Counter MSB */
+	u32 srtc_lsb;		/* Secure Real Time Clock/Counter LSB */
+	u32 time_alarm;		/* Time Alarm */
+	u32 smc_msb;		/* Secure Monotonic Counter MSB */
+	u32 smc_lsb;		/* Secure Monotonic Counter LSB */
+	u32 pwr_glitch_det;	/* Power Glitch Detector */
+	u32 gen_purpose;
+	u32 zmk[8];		/* Zeroizable Master Key */
+};
+
+#define LP_LOCK_MKEYSEL_LCK	0x00000200
+#define LP_LOCK_TAMPDET_LCK	0x00000100
+#define LP_LOCK_TAMPFLT_LCK	0x00000080
+#define LP_LOCK_SECVIO_LCK	0x00000040
+#define LP_LOCK_GENP_LCK	0x00000020
+#define LP_LOCK_MONOCTR_LCK	0x00000010
+#define LP_LOCK_CALIB_LCK	0x00000008
+#define LP_LOCK_SRTC_LCK	0x00000004
+#define LP_LOCK_ZMK_RD_LCK	0x00000002
+#define LP_LOCK_ZMK_WT_LCK	0x00000001
+
+#define LP_CTL_CAL_VAL_SHIFT	10
+#define LP_CTL_CAL_VAL_MASK	(0x1f << LP_CTL_CAL_VAL_SHIFT)
+#define LP_CTL_CALIB_EN		0x00000100
+#define LP_CTL_SRTC_INVAL_EN	0x00000010
+#define LP_CTL_WAKE_INT_EN	0x00000008
+#define LP_CTL_MONOCTR_EN	0x00000004
+#define LP_CTL_TIMEALARM_EN	0x00000002
+#define LP_CTL_SRTC_EN		0x00000001
+
+#define LP_MKEYCTL_ZMKECC_SHIFT	8
+#define LP_MKEYCTL_ZMKECC_MASK	(0xff << LP_MKEYCTL_ZMKECC_SHIFT)
+#define LP_MKEYCTL_ZMKECC_EN	0x00000010
+#define LP_MKEYCTL_ZMKECC_VAL	0x00000008
+#define LP_MKEYCTL_ZMKECC_PROG	0x00000004
+#define LP_MKEYCTL_MKSEL_SHIFT	0
+#define LP_MKEYCTL_MKSEL_MASK	(3 << LP_MKEYCTL_MKSEL_SHIFT)
+#define LP_MKEYCTL_MK_OTP	0
+#define LP_MKEYCTL_MK_ZMK	2
+#define LP_MKEYCTL_MK_COMB	3
+
+#define LP_SECVIO_CTL_SRC5	0x20
+#define LP_SECVIO_CTL_SRC4	0x10
+#define LP_SECVIO_CTL_SRC3	0x08
+#define LP_SECVIO_CTL_SRC2	0x04
+#define LP_SECVIO_CTL_SRC1	0x02
+#define LP_SECVIO_CTL_SRC0	0x01
+
+#define LP_TAMPFILT_EXT2_EN	0x80000000
+#define LP_TAMPFILT_EXT2_SHIFT	24
+#define LP_TAMPFILT_EXT2_MASK	(0x1f << LP_TAMPFILT_EXT2_SHIFT)
+#define LP_TAMPFILT_EXT1_EN	0x00800000
+#define LP_TAMPFILT_EXT1_SHIFT	16
+#define LP_TAMPFILT_EXT1_MASK	(0x1f << LP_TAMPFILT_EXT1_SHIFT)
+#define LP_TAMPFILT_WM_EN	0x00000080
+#define LP_TAMPFILT_WM_SHIFT	0
+#define LP_TAMPFILT_WM_MASK	(0x1f << LP_TAMPFILT_WM_SHIFT)
+
+#define LP_TAMPDET_OSC_BPS	0x10000000
+#define LP_TAMPDET_VRC_SHIFT	24
+#define LP_TAMPDET_VRC_MASK	(3 << LP_TAMPFILT_VRC_SHIFT)
+#define LP_TAMPDET_HTDC_SHIFT	20
+#define LP_TAMPDET_HTDC_MASK	(3 << LP_TAMPFILT_HTDC_SHIFT)
+#define LP_TAMPDET_LTDC_SHIFT	16
+#define LP_TAMPDET_LTDC_MASK	(3 << LP_TAMPFILT_LTDC_SHIFT)
+#define LP_TAMPDET_POR_OBS	0x00008000
+#define LP_TAMPDET_PFD_OBS	0x00004000
+#define LP_TAMPDET_ET2_EN	0x00000400
+#define LP_TAMPDET_ET1_EN	0x00000200
+#define LP_TAMPDET_WMT2_EN	0x00000100
+#define LP_TAMPDET_WMT1_EN	0x00000080
+#define LP_TAMPDET_VT_EN	0x00000040
+#define LP_TAMPDET_TT_EN	0x00000020
+#define LP_TAMPDET_CT_EN	0x00000010
+#define LP_TAMPDET_MCR_EN	0x00000004
+#define LP_TAMPDET_SRTCR_EN	0x00000002
+
+#define LP_STATUS_SECURE
+#define LP_STATUS_NONSECURE
+#define LP_STATUS_SCANEXIT	0x00100000	/* all write 1 clear here on */
+#define LP_STATUS_EXT_SECVIO	0x00010000
+#define LP_STATUS_ET2		0x00000400
+#define LP_STATUS_ET1		0x00000200
+#define LP_STATUS_WMT2		0x00000100
+#define LP_STATUS_WMT1		0x00000080
+#define LP_STATUS_VTD		0x00000040
+#define LP_STATUS_TTD		0x00000020
+#define LP_STATUS_CTD		0x00000010
+#define LP_STATUS_PGD		0x00000008
+#define LP_STATUS_MCR		0x00000004
+#define LP_STATUS_SRTCR		0x00000002
+#define LP_STATUS_LPTA		0x00000001
+
+/* Full SNVS register page, including version/options */
+struct snvs_full {
+	struct snvs_hp hp;
+	struct snvs_lp lp;
+	u32 rsvd[731];		/* deadspace 0x08c-0xbf7 */
+
+	/* Version / Revision / Option ID space - end of register page */
+	u32 vid;		/* 0xbf8 HP Version ID (VID 1) */
+	u32 opt_rev;		/* 0xbfc HP Options / Revision (VID 2) */
+};
+
+#endif /* SNVSREGS_H */
--- linux-ein-5.4.0.orig/drivers/crypto/caam/tag_object.c
+++ linux-ein-5.4.0/drivers/crypto/caam/tag_object.c
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2018-2020 NXP
+ */
+
+#include <linux/export.h>
+#include <linux/string.h>
+#include <linux/errno.h>
+
+#include "tag_object.h"
+#include "desc.h"
+
+/**
+ * is_key_type -	Check if the object is a key
+ *
+ * @type:		The object type
+ *
+ * Return:		True if the object is a key (of black or red color),
+ *			false otherwise
+ */
+bool is_key_type(u32 type)
+{
+	/* Check type bitfield from object type */
+	return ((type >> TAG_OBJ_TYPE_OFFSET) & TAG_OBJ_TYPE_MASK) == 0;
+}
+EXPORT_SYMBOL(is_key_type);
+
+/**
+ * is_trusted_type -	Check if the object is a trusted key
+ *			Trusted Descriptor Key Encryption Key (TDKEK)
+ *
+ * @type:		The object type
+ *
+ * Return:		True if the object is a trusted key,
+ *			false otherwise
+ */
+bool is_trusted_type(u32 type)
+{
+	/* Check type bitfield from object type */
+	return ((type >> TAG_OBJ_TK_OFFSET) & TAG_OBJ_TK_MASK) == 1;
+}
+EXPORT_SYMBOL(is_trusted_type);
+
+/**
+ * is_black_key -	Check if the tag object header is a black key
+ * @header:		The tag object header configuration
+ *
+ * Return:		True if is a black key, false otherwise
+ */
+bool is_black_key(const struct header_conf *header)
+{
+	u32 type = header->type;
+	/* Check type and color bitfields from tag object type */
+	return (type & (BIT(TAG_OBJ_COLOR_OFFSET) |
+			BIT(TAG_OBJ_TYPE_OFFSET))) == BIT(TAG_OBJ_COLOR_OFFSET);
+}
+EXPORT_SYMBOL(is_black_key);
+
+/**
+ * is_valid_header_conf - Check if the header configuration is valid
+ * @header:		The header configuration
+ *
+ * Return:		True if the header of the tag object configuration,
+ *			has the TAG_OBJECT_MAGIC number and a valid type,
+ *			false otherwise
+ */
+bool is_valid_header_conf(const struct header_conf *header)
+{
+	return (header->_magic_number == TAG_OBJECT_MAGIC);
+}
+EXPORT_SYMBOL(is_valid_header_conf);
+
+/**
+ * get_key_conf -	Retrieve the key configuration,
+ *			meaning the length of the black key and
+ *			the KEY command parameters needed for CAAM
+ * @header:		The tag object header configuration
+ * @red_key_len:	Red key length
+ * @obj_len:		Black/Red key/blob length
+ * @load_param:		Load parameters for KEY command:
+ *			- indicator for encrypted keys: plaintext or black
+ *			- indicator for encryption mode: AES-ECB or AES-CCM
+ *			- indicator for encryption keys: JDKEK or TDKEK
+ */
+void get_key_conf(const struct header_conf *header,
+		  u32 *red_key_len, u32 *obj_len, u32 *load_param)
+{
+	*red_key_len = header->red_key_len;
+	*obj_len = header->obj_len;
+	/* Based on the color of the key, set key encryption bit (ENC) */
+	*load_param = ((header->type >> TAG_OBJ_COLOR_OFFSET) &
+		       TAG_OBJ_COLOR_MASK) << KEY_ENC_OFFSET;
+	/*
+	 * For red keys, the TK and EKT bits are ignored.
+	 * So we set them anyway, to be valid when the key is black.
+	 */
+	*load_param |= ((header->type >> TAG_OBJ_TK_OFFSET) &
+			 TAG_OBJ_TK_MASK) << KEY_TK_OFFSET;
+	*load_param |= ((header->type >> TAG_OBJ_EKT_OFFSET) &
+			 TAG_OBJ_EKT_MASK) << KEY_EKT_OFFSET;
+}
+EXPORT_SYMBOL(get_key_conf);
+
+/**
+ * init_tag_object_header - Initialize the tag object header by setting up
+ *			the TAG_OBJECT_MAGIC number, tag object version,
+ *			a valid type and the object's length
+ * @header:		The header configuration to initialize
+ * @version:		The tag object version
+ * @type:		The tag object type
+ * @red_key_len:	The red key length
+ * @obj_len:		The object (actual data) length
+ */
+void init_tag_object_header(struct header_conf *header, u32 version,
+			    u32 type, size_t red_key_len, size_t obj_len)
+{
+	header->_magic_number = TAG_OBJECT_MAGIC;
+	header->version = version;
+	header->type = type;
+	header->red_key_len = red_key_len;
+	header->obj_len = obj_len;
+}
+EXPORT_SYMBOL(init_tag_object_header);
+
+/**
+ * set_tag_object_header_conf - Set tag object header configuration
+ * @header:			The tag object header configuration to set
+ * @buffer:			The buffer needed to be tagged
+ * @buf_size:			The buffer size
+ * @tag_obj_size:		The tagged object size
+ *
+ * Return:			'0' on success, error code otherwise
+ */
+int set_tag_object_header_conf(const struct header_conf *header,
+			       void *buffer, size_t buf_size, u32 *tag_obj_size)
+{
+	/* Retrieve the tag object */
+	struct tagged_object *tag_obj = (struct tagged_object *)buffer;
+	/*
+	 * Requested size for the tagged object is the buffer size
+	 * and the header configuration size (TAG_OVERHEAD_SIZE)
+	 */
+	size_t req_size = buf_size + TAG_OVERHEAD_SIZE;
+
+	/*
+	 * Check if the configuration can be set,
+	 * based on the size of the tagged object
+	 */
+	if (*tag_obj_size < req_size)
+		return -EINVAL;
+
+	/*
+	 * Buffers might overlap, use memmove to
+	 * copy the buffer into the tagged object
+	 */
+	memmove(&tag_obj->object, buffer, buf_size);
+	/* Copy the tag object header configuration into the tagged object */
+	memcpy(&tag_obj->header, header, TAG_OVERHEAD_SIZE);
+	/* Set tagged object size */
+	*tag_obj_size = req_size;
+
+	return 0;
+}
+EXPORT_SYMBOL(set_tag_object_header_conf);
--- linux-ein-5.4.0.orig/drivers/crypto/caam/tag_object.h
+++ linux-ein-5.4.0/drivers/crypto/caam/tag_object.h
@@ -0,0 +1,111 @@
+/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
+/*
+ * Copyright 2018-2020 NXP
+ */
+
+#ifndef _TAG_OBJECT_H_
+#define _TAG_OBJECT_H_
+
+#include <linux/types.h>
+#include <linux/bitops.h>
+
+/**
+ * Magic number to identify the tag object structure
+ * 0x54 = 'T'
+ * 0x61 = 'a'
+ * 0x67 = 'g'
+ * 0x4f = 'O'
+ */
+#define TAG_OBJECT_MAGIC	0x5461674f
+#define TAG_OVERHEAD_SIZE	sizeof(struct header_conf)
+#define MIN_KEY_SIZE		16
+#define TAG_MIN_SIZE		(MIN_KEY_SIZE + TAG_OVERHEAD_SIZE)
+/*
+ * Tag object type is a bitfield:
+ *
+ * EKT:	Encrypted Key Type (AES-ECB or AES-CCM)
+ * TK:	Trusted Key (use Job Descriptor Key Encryption Key (JDKEK)
+ *	or Trusted Descriptor Key Encryption Key (TDKEK) to
+ *	decrypt the key to be loaded into a Key Register).
+ *
+ *| Denomination | Security state | Memory  | EKT | TK    | Type | Color |
+ *| ------------ | -------------- | ------- | --- | ----- | ---- | ----- |
+ *| bit(s)       | 5-6            | 4       | 3   | 2     | 1    | 0     |
+ *| option 0     | non-secure     | general | ECB | JDKEK | key  | red   |
+ *| option 1     | secure         | secure  | CCM | TDKEK | blob | black |
+ *| option 2     | trusted        |         |     |       |      |       |
+ *
+ * CAAM supports two different Black Key encapsulation schemes,
+ * one intended for quick decryption (uses AES-ECB encryption),
+ * and another intended for high assurance (uses AES-CCM encryption).
+ *
+ * CAAM implements both Trusted and normal (non-Trusted) Black Keys,
+ * which are encrypted with different key-encryption keys.
+ * Both Trusted and normal Descriptors are allowed to encrypt or decrypt
+ * normal Black Keys, but only Trusted Descriptors are allowed to
+ * encrypt or decrypt Trusted Black Keys.
+ */
+#define TAG_OBJ_COLOR_OFFSET		0
+#define TAG_OBJ_COLOR_MASK		0x1
+#define TAG_OBJ_TYPE_OFFSET		1
+#define TAG_OBJ_TYPE_MASK		0x1
+#define TAG_OBJ_TK_OFFSET		2
+#define TAG_OBJ_TK_MASK			0x1
+#define TAG_OBJ_EKT_OFFSET		3
+#define TAG_OBJ_EKT_MASK		0x1
+#define TAG_OBJ_MEM_OFFSET		4
+#define TAG_OBJ_MEM_MASK		0x1
+#define TAG_OBJ_SEC_STATE_OFFSET	5
+
+/**
+ * struct header_conf - Header configuration structure, which represents
+ *			the metadata (or simply a header) applied to the
+ *			actual data (e.g. black key)
+ * @_magic_number     : A magic number to identify the structure
+ * @version           : The version of the data contained (e.g. tag object)
+ * @type              : The type of data contained (e.g. black key, blob, etc.)
+ * @red_key_len       : Length of the red key to be loaded by CAAM (for key
+ *                      generation or blob encapsulation)
+ * @obj_len           : The total length of the (black/red) object (key/blob),
+ *                      after encryption/encapsulation
+ */
+struct header_conf {
+	u32 _magic_number;
+	u32 version;
+	u32 type;
+	u32 red_key_len;
+	u32 obj_len;
+};
+
+/**
+ * struct tagged_object - Tag object structure, which represents the metadata
+ *                        (or simply a header) and the actual data
+ *                        (e.g. black key) obtained from hardware
+ * @tag                 : The configuration of the data (e.g. header)
+ * @object              : The actual data (e.g. black key)
+ */
+struct tagged_object {
+	struct header_conf header;
+	char object;
+};
+
+bool is_key_type(u32 type);
+
+bool is_trusted_type(u32 type);
+
+bool is_black_key(const struct header_conf * const header);
+
+bool is_black_key(const struct header_conf * const header);
+
+bool is_valid_header_conf(const struct header_conf *header);
+
+void get_key_conf(const struct header_conf *header,
+		  u32 *red_key_len, u32 *obj_len, u32 *load_param);
+
+void init_tag_object_header(struct header_conf *header, u32 version,
+			    u32 type, size_t red_key_len, size_t obj_len);
+
+int set_tag_object_header_conf(const struct header_conf *header,
+			       void *buffer, size_t obj_size, u32 *to_size);
+
+#endif /* _TAG_OBJECT_H_ */
--- linux-ein-5.4.0.orig/drivers/crypto/cavium/cpt/cptpf_main.c
+++ linux-ein-5.4.0/drivers/crypto/cavium/cpt/cptpf_main.c
@@ -254,6 +254,7 @@
 	const struct firmware *fw_entry;
 	struct device *dev = &cpt->pdev->dev;
 	struct ucode_header *ucode;
+	unsigned int code_length;
 	struct microcode *mcode;
 	int j, ret = 0;
 
@@ -264,11 +265,12 @@
 	ucode = (struct ucode_header *)fw_entry->data;
 	mcode = &cpt->mcode[cpt->next_mc_idx];
 	memcpy(mcode->version, (u8 *)fw_entry->data, CPT_UCODE_VERSION_SZ);
-	mcode->code_size = ntohl(ucode->code_length) * 2;
-	if (!mcode->code_size) {
+	code_length = ntohl(ucode->code_length);
+	if (code_length == 0 || code_length >= INT_MAX / 2) {
 		ret = -EINVAL;
 		goto fw_release;
 	}
+	mcode->code_size = code_length * 2;
 
 	mcode->is_ae = is_ae;
 	mcode->core_mask = 0ULL;
--- linux-ein-5.4.0.orig/drivers/crypto/cavium/cpt/cptvf_algs.c
+++ linux-ein-5.4.0/drivers/crypto/cavium/cpt/cptvf_algs.c
@@ -200,6 +200,7 @@
 	int status;
 
 	memset(req_info, 0, sizeof(struct cpt_request_info));
+	req_info->may_sleep = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) != 0;
 	memset(fctx, 0, sizeof(struct fc_context));
 	create_input_list(req, enc, enc_iv_len);
 	create_output_list(req, enc_iv_len);
--- linux-ein-5.4.0.orig/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
+++ linux-ein-5.4.0/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
@@ -133,7 +133,7 @@
 
 	/* Setup gather (input) components */
 	g_sz_bytes = ((req->incnt + 3) / 4) * sizeof(struct sglist_component);
-	info->gather_components = kzalloc(g_sz_bytes, GFP_KERNEL);
+	info->gather_components = kzalloc(g_sz_bytes, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->gather_components) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -150,7 +150,7 @@
 
 	/* Setup scatter (output) components */
 	s_sz_bytes = ((req->outcnt + 3) / 4) * sizeof(struct sglist_component);
-	info->scatter_components = kzalloc(s_sz_bytes, GFP_KERNEL);
+	info->scatter_components = kzalloc(s_sz_bytes, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->scatter_components) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -167,7 +167,7 @@
 
 	/* Create and initialize DPTR */
 	info->dlen = g_sz_bytes + s_sz_bytes + SG_LIST_HDR_SIZE;
-	info->in_buffer = kzalloc(info->dlen, GFP_KERNEL);
+	info->in_buffer = kzalloc(info->dlen, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->in_buffer) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -195,7 +195,7 @@
 	}
 
 	/* Create and initialize RPTR */
-	info->out_buffer = kzalloc(COMPLETION_CODE_SIZE, GFP_KERNEL);
+	info->out_buffer = kzalloc(COMPLETION_CODE_SIZE, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->out_buffer) {
 		ret = -ENOMEM;
 		goto scatter_gather_clean;
@@ -421,7 +421,7 @@
 	struct cpt_vq_command vq_cmd;
 	union cpt_inst_s cptinst;
 
-	info = kzalloc(sizeof(*info), GFP_KERNEL);
+	info = kzalloc(sizeof(*info), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (unlikely(!info)) {
 		dev_err(&pdev->dev, "Unable to allocate memory for info_buffer\n");
 		return -ENOMEM;
@@ -443,7 +443,7 @@
 	 * Get buffer for union cpt_res_s response
 	 * structure and its physical address
 	 */
-	info->completion_addr = kzalloc(sizeof(union cpt_res_s), GFP_KERNEL);
+	info->completion_addr = kzalloc(sizeof(union cpt_res_s), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (unlikely(!info->completion_addr)) {
 		dev_err(&pdev->dev, "Unable to allocate memory for completion_addr\n");
 		ret = -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/crypto/cavium/cpt/request_manager.h
+++ linux-ein-5.4.0/drivers/crypto/cavium/cpt/request_manager.h
@@ -62,6 +62,8 @@
 	union ctrl_info ctrl; /* User control information */
 	struct cptvf_request req; /* Request Information (Core specific) */
 
+	bool may_sleep;
+
 	struct buf_ptr in[MAX_BUF_CNT];
 	struct buf_ptr out[MAX_BUF_CNT];
 
--- linux-ein-5.4.0.orig/drivers/crypto/cavium/nitrox/nitrox_isr.c
+++ linux-ein-5.4.0/drivers/crypto/cavium/nitrox/nitrox_isr.c
@@ -306,6 +306,10 @@
 	 * Entry 192: NPS_CORE_INT_ACTIVE
 	 */
 	nr_vecs = pci_msix_vec_count(pdev);
+	if (nr_vecs < 0) {
+		dev_err(DEV(ndev), "Error in getting vec count %d\n", nr_vecs);
+		return nr_vecs;
+	}
 
 	/* Enable MSI-X */
 	ret = pci_alloc_irq_vectors(pdev, nr_vecs, nr_vecs, PCI_IRQ_MSIX);
--- linux-ein-5.4.0.orig/drivers/crypto/cavium/nitrox/nitrox_main.c
+++ linux-ein-5.4.0/drivers/crypto/cavium/nitrox/nitrox_main.c
@@ -103,8 +103,7 @@
 	offset = UCD_UCODE_LOAD_BLOCK_NUM;
 	nitrox_write_csr(ndev, offset, block_num);
 
-	code_size = ucode_size;
-	code_size = roundup(code_size, 8);
+	code_size = roundup(ucode_size, 16);
 	while (code_size) {
 		data = ucode_data[i];
 		/* write 8 bytes at a time */
@@ -220,11 +219,11 @@
 
 	/* write block number and firmware length
 	 * bit:<2:0> block number
-	 * bit:3 is set SE uses 32KB microcode
-	 * bit:3 is clear SE uses 64KB microcode
+	 * bit:3 is set AE uses 32KB microcode
+	 * bit:3 is clear AE uses 64KB microcode
 	 */
 	core_2_eid_val.value = 0ULL;
-	core_2_eid_val.ucode_blk = 0;
+	core_2_eid_val.ucode_blk = 2;
 	if (ucode_size <= CNN55XX_UCD_BLOCK_SIZE)
 		core_2_eid_val.ucode_len = 1;
 	else
@@ -279,7 +278,7 @@
 
 struct nitrox_device *nitrox_get_first_device(void)
 {
-	struct nitrox_device *ndev = NULL;
+	struct nitrox_device *ndev;
 
 	mutex_lock(&devlist_lock);
 	list_for_each_entry(ndev, &ndevlist, list) {
@@ -287,7 +286,7 @@
 			break;
 	}
 	mutex_unlock(&devlist_lock);
-	if (!ndev)
+	if (&ndev->list == &ndevlist)
 		return NULL;
 
 	refcount_inc(&ndev->refcnt);
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/Kconfig
+++ linux-ein-5.4.0/drivers/crypto/ccp/Kconfig
@@ -10,10 +10,9 @@
 config CRYPTO_DEV_SP_CCP
 	bool "Cryptographic Coprocessor device"
 	default y
-	depends on CRYPTO_DEV_CCP_DD
+	depends on CRYPTO_DEV_CCP_DD && DMADEVICES
 	select HW_RANDOM
 	select DMA_ENGINE
-	select DMADEVICES
 	select CRYPTO_SHA1
 	select CRYPTO_SHA256
 	help
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/ccp-dev-v3.c
+++ linux-ein-5.4.0/drivers/crypto/ccp/ccp-dev-v3.c
@@ -586,6 +586,7 @@
 	.setup = NULL,
 	.perform = &ccp3_actions,
 	.offset = 0,
+	.rsamax = CCP_RSA_MAX_WIDTH,
 };
 
 const struct ccp_vdata ccpv3 = {
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/ccp-dev.h
+++ linux-ein-5.4.0/drivers/crypto/ccp/ccp-dev.h
@@ -469,6 +469,7 @@
 	unsigned int sg_used;
 
 	struct scatterlist *dma_sg;
+	struct scatterlist *dma_sg_head;
 	struct device *dma_dev;
 	unsigned int dma_count;
 	enum dma_data_direction dma_dir;
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/ccp-dmaengine.c
+++ linux-ein-5.4.0/drivers/crypto/ccp/ccp-dmaengine.c
@@ -342,6 +342,7 @@
 	desc->tx_desc.flags = flags;
 	desc->tx_desc.tx_submit = ccp_tx_submit;
 	desc->ccp = chan->ccp;
+	INIT_LIST_HEAD(&desc->entry);
 	INIT_LIST_HEAD(&desc->pending);
 	INIT_LIST_HEAD(&desc->active);
 	desc->status = DMA_IN_PROGRESS;
@@ -632,6 +633,36 @@
 	return 0;
 }
 
+static void ccp_dma_release(struct ccp_device *ccp)
+{
+	struct ccp_dma_chan *chan;
+	struct dma_chan *dma_chan;
+	unsigned int i;
+
+	for (i = 0; i < ccp->cmd_q_count; i++) {
+		chan = ccp->ccp_dma_chan + i;
+		dma_chan = &chan->dma_chan;
+
+		tasklet_kill(&chan->cleanup_tasklet);
+		list_del_rcu(&dma_chan->device_node);
+	}
+}
+
+static void ccp_dma_release_channels(struct ccp_device *ccp)
+{
+	struct ccp_dma_chan *chan;
+	struct dma_chan *dma_chan;
+	unsigned int i;
+
+	for (i = 0; i < ccp->cmd_q_count; i++) {
+		chan = ccp->ccp_dma_chan + i;
+		dma_chan = &chan->dma_chan;
+
+		if (dma_chan->client_count)
+			dma_release_channel(dma_chan);
+	}
+}
+
 int ccp_dmaengine_register(struct ccp_device *ccp)
 {
 	struct ccp_dma_chan *chan;
@@ -736,6 +767,7 @@
 	return 0;
 
 err_reg:
+	ccp_dma_release(ccp);
 	kmem_cache_destroy(ccp->dma_desc_cache);
 
 err_cache:
@@ -751,7 +783,9 @@
 	if (!dmaengine)
 		return;
 
+	ccp_dma_release_channels(ccp);
 	dma_async_device_unregister(dma_dev);
+	ccp_dma_release(ccp);
 
 	kmem_cache_destroy(ccp->dma_desc_cache);
 	kmem_cache_destroy(ccp->dma_cmd_cache);
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/ccp-ops.c
+++ linux-ein-5.4.0/drivers/crypto/ccp/ccp-ops.c
@@ -63,7 +63,7 @@
 static void ccp_sg_free(struct ccp_sg_workarea *wa)
 {
 	if (wa->dma_count)
-		dma_unmap_sg(wa->dma_dev, wa->dma_sg, wa->nents, wa->dma_dir);
+		dma_unmap_sg(wa->dma_dev, wa->dma_sg_head, wa->nents, wa->dma_dir);
 
 	wa->dma_count = 0;
 }
@@ -92,6 +92,7 @@
 		return 0;
 
 	wa->dma_sg = sg;
+	wa->dma_sg_head = sg;
 	wa->dma_dev = dev;
 	wa->dma_dir = dma_dir;
 	wa->dma_count = dma_map_sg(dev, sg, wa->nents, dma_dir);
@@ -104,14 +105,28 @@
 static void ccp_update_sg_workarea(struct ccp_sg_workarea *wa, unsigned int len)
 {
 	unsigned int nbytes = min_t(u64, len, wa->bytes_left);
+	unsigned int sg_combined_len = 0;
 
 	if (!wa->sg)
 		return;
 
 	wa->sg_used += nbytes;
 	wa->bytes_left -= nbytes;
-	if (wa->sg_used == wa->sg->length) {
-		wa->sg = sg_next(wa->sg);
+	if (wa->sg_used == sg_dma_len(wa->dma_sg)) {
+		/* Advance to the next DMA scatterlist entry */
+		wa->dma_sg = sg_next(wa->dma_sg);
+
+		/* In the case that the DMA mapped scatterlist has entries
+		 * that have been merged, the non-DMA mapped scatterlist
+		 * must be advanced multiple times for each merged entry.
+		 * This ensures that the current non-DMA mapped entry
+		 * corresponds to the current DMA mapped entry.
+		 */
+		do {
+			sg_combined_len += wa->sg->length;
+			wa->sg = sg_next(wa->sg);
+		} while (wa->sg_used > sg_combined_len);
+
 		wa->sg_used = 0;
 	}
 }
@@ -299,7 +314,7 @@
 	/* Update the structures and generate the count */
 	buf_count = 0;
 	while (sg_wa->bytes_left && (buf_count < dm_wa->length)) {
-		nbytes = min(sg_wa->sg->length - sg_wa->sg_used,
+		nbytes = min(sg_dma_len(sg_wa->dma_sg) - sg_wa->sg_used,
 			     dm_wa->length - buf_count);
 		nbytes = min_t(u64, sg_wa->bytes_left, nbytes);
 
@@ -331,11 +346,11 @@
 	 * and destination. The resulting len values will always be <= UINT_MAX
 	 * because the dma length is an unsigned int.
 	 */
-	sg_src_len = sg_dma_len(src->sg_wa.sg) - src->sg_wa.sg_used;
+	sg_src_len = sg_dma_len(src->sg_wa.dma_sg) - src->sg_wa.sg_used;
 	sg_src_len = min_t(u64, src->sg_wa.bytes_left, sg_src_len);
 
 	if (dst) {
-		sg_dst_len = sg_dma_len(dst->sg_wa.sg) - dst->sg_wa.sg_used;
+		sg_dst_len = sg_dma_len(dst->sg_wa.dma_sg) - dst->sg_wa.sg_used;
 		sg_dst_len = min_t(u64, src->sg_wa.bytes_left, sg_dst_len);
 		op_len = min(sg_src_len, sg_dst_len);
 	} else {
@@ -365,7 +380,7 @@
 		/* Enough data in the sg element, but we need to
 		 * adjust for any previously copied data
 		 */
-		op->src.u.dma.address = sg_dma_address(src->sg_wa.sg);
+		op->src.u.dma.address = sg_dma_address(src->sg_wa.dma_sg);
 		op->src.u.dma.offset = src->sg_wa.sg_used;
 		op->src.u.dma.length = op_len & ~(block_size - 1);
 
@@ -386,7 +401,7 @@
 			/* Enough room in the sg element, but we need to
 			 * adjust for any previously used area
 			 */
-			op->dst.u.dma.address = sg_dma_address(dst->sg_wa.sg);
+			op->dst.u.dma.address = sg_dma_address(dst->sg_wa.dma_sg);
 			op->dst.u.dma.offset = dst->sg_wa.sg_used;
 			op->dst.u.dma.length = op->src.u.dma.length;
 		}
@@ -763,7 +778,7 @@
 				    in_place ? DMA_BIDIRECTIONAL
 					     : DMA_TO_DEVICE);
 		if (ret)
-			goto e_ctx;
+			goto e_aad;
 
 		if (in_place) {
 			dst = src;
@@ -848,7 +863,7 @@
 	op.u.aes.size = 0;
 	ret = cmd_q->ccp->vdata->perform->aes(&op);
 	if (ret)
-		goto e_dst;
+		goto e_final_wa;
 
 	if (aes->action == CCP_AES_ACTION_ENCRYPT) {
 		/* Put the ciphered tag after the ciphertext. */
@@ -858,17 +873,19 @@
 		ret = ccp_init_dm_workarea(&tag, cmd_q, authsize,
 					   DMA_BIDIRECTIONAL);
 		if (ret)
-			goto e_tag;
+			goto e_final_wa;
 		ret = ccp_set_dm_area(&tag, 0, p_tag, 0, authsize);
-		if (ret)
-			goto e_tag;
+		if (ret) {
+			ccp_dm_free(&tag);
+			goto e_final_wa;
+		}
 
 		ret = crypto_memneq(tag.address, final_wa.address,
 				    authsize) ? -EBADMSG : 0;
 		ccp_dm_free(&tag);
 	}
 
-e_tag:
+e_final_wa:
 	ccp_dm_free(&final_wa);
 
 e_dst:
@@ -1731,7 +1748,7 @@
 			break;
 		default:
 			ret = -EINVAL;
-			goto e_ctx;
+			goto e_data;
 		}
 	} else {
 		/* Stash the context */
@@ -1777,8 +1794,9 @@
 			       LSB_ITEM_SIZE);
 			break;
 		default:
+			kfree(hmac_buf);
 			ret = -EINVAL;
-			goto e_ctx;
+			goto e_data;
 		}
 
 		memset(&hmac_cmd, 0, sizeof(hmac_cmd));
@@ -2027,7 +2045,7 @@
 	dst.sg_wa.sg_used = 0;
 	for (i = 1; i <= src.sg_wa.dma_count; i++) {
 		if (!dst.sg_wa.sg ||
-		    (dst.sg_wa.sg->length < src.sg_wa.sg->length)) {
+		    (sg_dma_len(dst.sg_wa.sg) < sg_dma_len(src.sg_wa.sg))) {
 			ret = -EINVAL;
 			goto e_dst;
 		}
@@ -2053,8 +2071,8 @@
 			goto e_dst;
 		}
 
-		dst.sg_wa.sg_used += src.sg_wa.sg->length;
-		if (dst.sg_wa.sg_used == dst.sg_wa.sg->length) {
+		dst.sg_wa.sg_used += sg_dma_len(src.sg_wa.sg);
+		if (dst.sg_wa.sg_used == sg_dma_len(dst.sg_wa.sg)) {
 			dst.sg_wa.sg = sg_next(dst.sg_wa.sg);
 			dst.sg_wa.sg_used = 0;
 		}
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/psp-dev.c
+++ linux-ein-5.4.0/drivers/crypto/ccp/psp-dev.c
@@ -40,6 +40,10 @@
 module_param(psp_probe_timeout, int, 0644);
 MODULE_PARM_DESC(psp_probe_timeout, " default timeout value, in seconds, during PSP device probe");
 
+MODULE_FIRMWARE("amd/amd_sev_fam17h_model0xh.sbin"); /* 1st gen EPYC */
+MODULE_FIRMWARE("amd/amd_sev_fam17h_model3xh.sbin"); /* 2nd gen EPYC */
+MODULE_FIRMWARE("amd/amd_sev_fam19h_model0xh.sbin"); /* 3rd gen EPYC */
+
 static bool psp_dead;
 static int psp_timeout;
 
--- linux-ein-5.4.0.orig/drivers/crypto/ccp/sp-pci.c
+++ linux-ein-5.4.0/drivers/crypto/ccp/sp-pci.c
@@ -213,7 +213,7 @@
 		if (ret) {
 			dev_err(dev, "dma_set_mask_and_coherent failed (%d)\n",
 				ret);
-			goto e_err;
+			goto free_irqs;
 		}
 	}
 
@@ -221,10 +221,12 @@
 
 	ret = sp_init(sp);
 	if (ret)
-		goto e_err;
+		goto free_irqs;
 
 	return 0;
 
+free_irqs:
+	sp_free_irqs(sp);
 e_err:
 	dev_notice(dev, "initialization failed\n");
 	return ret;
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_aead.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_aead.c
@@ -237,7 +237,7 @@
 			 * revealed the decrypted message --> zero its memory.
 			 */
 			sg_zero_buffer(areq->dst, sg_nents(areq->dst),
-				       areq->cryptlen, 0);
+				       areq->cryptlen, areq->assoclen);
 			err = -EBADMSG;
 		}
 	/*ENCRYPT*/
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_buffer_mgr.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_buffer_mgr.c
@@ -87,6 +87,8 @@
 {
 	unsigned int nents = 0;
 
+	*lbytes = 0;
+
 	while (nbytes && sg_list) {
 		nents++;
 		/* get the number of bytes in the last entry */
@@ -95,6 +97,7 @@
 				nbytes : sg_list->length;
 		sg_list = sg_next(sg_list);
 	}
+
 	dev_dbg(dev, "nents %d last bytes %d\n", nents, *lbytes);
 	return nents;
 }
@@ -290,37 +293,32 @@
 		     unsigned int nbytes, int direction, u32 *nents,
 		     u32 max_sg_nents, u32 *lbytes, u32 *mapped_nents)
 {
-	if (sg_is_last(sg)) {
-		/* One entry only case -set to DLLI */
-		if (dma_map_sg(dev, sg, 1, direction) != 1) {
-			dev_err(dev, "dma_map_sg() single buffer failed\n");
-			return -ENOMEM;
-		}
-		dev_dbg(dev, "Mapped sg: dma_address=%pad page=%p addr=%pK offset=%u length=%u\n",
-			&sg_dma_address(sg), sg_page(sg), sg_virt(sg),
-			sg->offset, sg->length);
-		*lbytes = nbytes;
-		*nents = 1;
-		*mapped_nents = 1;
-	} else {  /*sg_is_last*/
-		*nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes);
-		if (*nents > max_sg_nents) {
-			*nents = 0;
-			dev_err(dev, "Too many fragments. current %d max %d\n",
-				*nents, max_sg_nents);
-			return -ENOMEM;
-		}
-		/* In case of mmu the number of mapped nents might
-		 * be changed from the original sgl nents
-		 */
-		*mapped_nents = dma_map_sg(dev, sg, *nents, direction);
-		if (*mapped_nents == 0) {
-			*nents = 0;
-			dev_err(dev, "dma_map_sg() sg buffer failed\n");
-			return -ENOMEM;
-		}
+	int ret = 0;
+
+	if (!nbytes) {
+		*mapped_nents = 0;
+		*lbytes = 0;
+		*nents = 0;
+		return 0;
 	}
 
+	*nents = cc_get_sgl_nents(dev, sg, nbytes, lbytes);
+	if (*nents > max_sg_nents) {
+		*nents = 0;
+		dev_err(dev, "Too many fragments. current %d max %d\n",
+			*nents, max_sg_nents);
+		return -ENOMEM;
+	}
+
+	ret = dma_map_sg(dev, sg, *nents, direction);
+	if (dma_mapping_error(dev, ret)) {
+		*nents = 0;
+		dev_err(dev, "dma_map_sg() sg buffer failed %d\n", ret);
+		return -ENOMEM;
+	}
+
+	*mapped_nents = ret;
+
 	return 0;
 }
 
@@ -555,11 +553,12 @@
 		sg_virt(req->src), areq_ctx->src.nents, areq_ctx->assoc.nents,
 		areq_ctx->assoclen, req->cryptlen);
 
-	dma_unmap_sg(dev, req->src, sg_nents(req->src), DMA_BIDIRECTIONAL);
+	dma_unmap_sg(dev, req->src, areq_ctx->src.mapped_nents,
+		     DMA_BIDIRECTIONAL);
 	if (req->src != req->dst) {
 		dev_dbg(dev, "Unmapping dst sgl: req->dst=%pK\n",
 			sg_virt(req->dst));
-		dma_unmap_sg(dev, req->dst, sg_nents(req->dst),
+		dma_unmap_sg(dev, req->dst, areq_ctx->dst.mapped_nents,
 			     DMA_BIDIRECTIONAL);
 	}
 	if (drvdata->coherent &&
@@ -881,7 +880,7 @@
 					    &src_last_bytes);
 	sg_index = areq_ctx->src_sgl->length;
 	//check where the data starts
-	while (sg_index <= size_to_skip) {
+	while (src_mapped_nents && (sg_index <= size_to_skip)) {
 		src_mapped_nents--;
 		offset -= areq_ctx->src_sgl->length;
 		sgl = sg_next(areq_ctx->src_sgl);
@@ -902,13 +901,17 @@
 
 	if (req->src != req->dst) {
 		size_for_map = areq_ctx->assoclen + req->cryptlen;
-		size_for_map += (direct == DRV_CRYPTO_DIRECTION_ENCRYPT) ?
-				authsize : 0;
+
+		if (direct == DRV_CRYPTO_DIRECTION_ENCRYPT)
+			size_for_map += authsize;
+		else
+			size_for_map -= authsize;
+
 		if (is_gcm4543)
 			size_for_map += crypto_aead_ivsize(tfm);
 
 		rc = cc_map_sg(dev, req->dst, size_for_map, DMA_BIDIRECTIONAL,
-			       &areq_ctx->dst.nents,
+			       &areq_ctx->dst.mapped_nents,
 			       LLI_MAX_NUM_OF_DATA_ENTRIES, &dst_last_bytes,
 			       &dst_mapped_nents);
 		if (rc)
@@ -921,7 +924,7 @@
 	offset = size_to_skip;
 
 	//check where the data starts
-	while (sg_index <= size_to_skip) {
+	while (dst_mapped_nents && sg_index <= size_to_skip) {
 		dst_mapped_nents--;
 		offset -= areq_ctx->dst_sgl->length;
 		sgl = sg_next(areq_ctx->dst_sgl);
@@ -1117,13 +1120,15 @@
 	}
 
 	size_to_map = req->cryptlen + areq_ctx->assoclen;
-	if (areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_ENCRYPT)
+	/* If we do in-place encryption, we also need the auth tag */
+	if ((areq_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_ENCRYPT) &&
+	   (req->src == req->dst)) {
 		size_to_map += authsize;
-
+	}
 	if (is_gcm4543)
 		size_to_map += crypto_aead_ivsize(tfm);
 	rc = cc_map_sg(dev, req->src, size_to_map, DMA_BIDIRECTIONAL,
-		       &areq_ctx->src.nents,
+		       &areq_ctx->src.mapped_nents,
 		       (LLI_MAX_NUM_OF_ASSOC_DATA_ENTRIES +
 			LLI_MAX_NUM_OF_DATA_ENTRIES),
 		       &dummy, &mapped_nents);
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_buffer_mgr.h
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_buffer_mgr.h
@@ -25,6 +25,7 @@
 
 struct cc_mlli {
 	cc_sram_addr_t sram_addr;
+	unsigned int mapped_nents;
 	unsigned int nents; //sg nents
 	unsigned int mlli_nents; //mlli nents might be different than the above
 };
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_cipher.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_cipher.c
@@ -163,7 +163,6 @@
 				     skcipher_alg.base);
 	struct device *dev = drvdata_to_dev(cc_alg->drvdata);
 	unsigned int max_key_buf_size = cc_alg->skcipher_alg.max_keysize;
-	int rc = 0;
 
 	dev_dbg(dev, "Initializing context @%p for %s\n", ctx_p,
 		crypto_tfm_alg_name(tfm));
@@ -175,10 +174,19 @@
 	ctx_p->flow_mode = cc_alg->flow_mode;
 	ctx_p->drvdata = cc_alg->drvdata;
 
+	if (ctx_p->cipher_mode == DRV_CIPHER_ESSIV) {
+		/* Alloc hash tfm for essiv */
+		ctx_p->shash_tfm = crypto_alloc_shash("sha256-generic", 0, 0);
+		if (IS_ERR(ctx_p->shash_tfm)) {
+			dev_err(dev, "Error allocating hash tfm for ESSIV.\n");
+			return PTR_ERR(ctx_p->shash_tfm);
+		}
+	}
+
 	/* Allocate key buffer, cache line aligned */
 	ctx_p->user.key = kmalloc(max_key_buf_size, GFP_KERNEL);
 	if (!ctx_p->user.key)
-		return -ENOMEM;
+		goto free_shash;
 
 	dev_dbg(dev, "Allocated key buffer in context. key=@%p\n",
 		ctx_p->user.key);
@@ -190,21 +198,19 @@
 	if (dma_mapping_error(dev, ctx_p->user.key_dma_addr)) {
 		dev_err(dev, "Mapping Key %u B at va=%pK for DMA failed\n",
 			max_key_buf_size, ctx_p->user.key);
-		return -ENOMEM;
+		goto free_key;
 	}
 	dev_dbg(dev, "Mapped key %u B at va=%pK to dma=%pad\n",
 		max_key_buf_size, ctx_p->user.key, &ctx_p->user.key_dma_addr);
 
-	if (ctx_p->cipher_mode == DRV_CIPHER_ESSIV) {
-		/* Alloc hash tfm for essiv */
-		ctx_p->shash_tfm = crypto_alloc_shash("sha256-generic", 0, 0);
-		if (IS_ERR(ctx_p->shash_tfm)) {
-			dev_err(dev, "Error allocating hash tfm for ESSIV.\n");
-			return PTR_ERR(ctx_p->shash_tfm);
-		}
-	}
+	return 0;
 
-	return rc;
+free_key:
+	kfree(ctx_p->user.key);
+free_shash:
+	crypto_free_shash(ctx_p->shash_tfm);
+
+	return -ENOMEM;
 }
 
 static void cc_cipher_exit(struct crypto_tfm *tfm)
@@ -523,6 +529,7 @@
 	}
 }
 
+
 static void cc_setup_state_desc(struct crypto_tfm *tfm,
 				 struct cipher_req_ctx *req_ctx,
 				 unsigned int ivsize, unsigned int nbytes,
@@ -534,8 +541,6 @@
 	int cipher_mode = ctx_p->cipher_mode;
 	int flow_mode = ctx_p->flow_mode;
 	int direction = req_ctx->gen_ctx.op_type;
-	dma_addr_t key_dma_addr = ctx_p->user.key_dma_addr;
-	unsigned int key_len = ctx_p->keylen;
 	dma_addr_t iv_dma_addr = req_ctx->gen_ctx.iv_dma_addr;
 	unsigned int du_size = nbytes;
 
@@ -571,6 +576,47 @@
 	case DRV_CIPHER_XTS:
 	case DRV_CIPHER_ESSIV:
 	case DRV_CIPHER_BITLOCKER:
+		break;
+	default:
+		dev_err(dev, "Unsupported cipher mode (%d)\n", cipher_mode);
+	}
+}
+
+
+static void cc_setup_xex_state_desc(struct crypto_tfm *tfm,
+				 struct cipher_req_ctx *req_ctx,
+				 unsigned int ivsize, unsigned int nbytes,
+				 struct cc_hw_desc desc[],
+				 unsigned int *seq_size)
+{
+	struct cc_cipher_ctx *ctx_p = crypto_tfm_ctx(tfm);
+	struct device *dev = drvdata_to_dev(ctx_p->drvdata);
+	int cipher_mode = ctx_p->cipher_mode;
+	int flow_mode = ctx_p->flow_mode;
+	int direction = req_ctx->gen_ctx.op_type;
+	dma_addr_t key_dma_addr = ctx_p->user.key_dma_addr;
+	unsigned int key_len = ctx_p->keylen;
+	dma_addr_t iv_dma_addr = req_ctx->gen_ctx.iv_dma_addr;
+	unsigned int du_size = nbytes;
+
+	struct cc_crypto_alg *cc_alg =
+		container_of(tfm->__crt_alg, struct cc_crypto_alg,
+			     skcipher_alg.base);
+
+	if (cc_alg->data_unit)
+		du_size = cc_alg->data_unit;
+
+	switch (cipher_mode) {
+	case DRV_CIPHER_ECB:
+		break;
+	case DRV_CIPHER_CBC:
+	case DRV_CIPHER_CBC_CTS:
+	case DRV_CIPHER_CTR:
+	case DRV_CIPHER_OFB:
+		break;
+	case DRV_CIPHER_XTS:
+	case DRV_CIPHER_ESSIV:
+	case DRV_CIPHER_BITLOCKER:
 		/* load XEX key */
 		hw_desc_init(&desc[*seq_size]);
 		set_cipher_mode(&desc[*seq_size], cipher_mode);
@@ -881,12 +927,14 @@
 
 	/* STAT_PHASE_2: Create sequence */
 
-	/* Setup IV and XEX key used */
+	/* Setup state (IV)  */
 	cc_setup_state_desc(tfm, req_ctx, ivsize, nbytes, desc, &seq_len);
 	/* Setup MLLI line, if needed */
 	cc_setup_mlli_desc(tfm, req_ctx, dst, src, nbytes, req, desc, &seq_len);
 	/* Setup key */
 	cc_setup_key_desc(tfm, req_ctx, nbytes, desc, &seq_len);
+	/* Setup state (IV and XEX key)  */
+	cc_setup_xex_state_desc(tfm, req_ctx, ivsize, nbytes, desc, &seq_len);
 	/* Data processing */
 	cc_setup_flow_desc(tfm, req_ctx, dst, src, nbytes, desc, &seq_len);
 	/* Read next IV */
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_debugfs.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_debugfs.c
@@ -59,7 +59,7 @@
 	cc_debugfs_dir = debugfs_create_dir("ccree", NULL);
 }
 
-void __exit cc_debugfs_global_fini(void)
+void cc_debugfs_global_fini(void)
 {
 	debugfs_remove(cc_debugfs_dir);
 }
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_driver.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_driver.c
@@ -653,10 +653,17 @@
 
 static int __init ccree_init(void)
 {
-	cc_hash_global_init();
+	int rc;
+
 	cc_debugfs_global_init();
 
-	return platform_driver_register(&ccree_driver);
+	rc = platform_driver_register(&ccree_driver);
+	if (rc) {
+		cc_debugfs_global_fini();
+		return rc;
+	}
+
+	return 0;
 }
 module_init(ccree_init);
 
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_driver.h
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_driver.h
@@ -161,6 +161,7 @@
 	int std_bodies;
 	bool sec_disabled;
 	u32 comp_mask;
+	bool pm_on;
 };
 
 struct cc_crypto_alg {
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_hash.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_hash.c
@@ -39,12 +39,19 @@
 	SHA256_H3, SHA256_H2, SHA256_H1, SHA256_H0 };
 static const u32 cc_digest_len_sha512_init[] = {
 	0x00000080, 0x00000000, 0x00000000, 0x00000000 };
-static u64 cc_sha384_init[] = {
-	SHA384_H7, SHA384_H6, SHA384_H5, SHA384_H4,
-	SHA384_H3, SHA384_H2, SHA384_H1, SHA384_H0 };
-static u64 cc_sha512_init[] = {
-	SHA512_H7, SHA512_H6, SHA512_H5, SHA512_H4,
-	SHA512_H3, SHA512_H2, SHA512_H1, SHA512_H0 };
+
+/*
+ * Due to the way the HW works, every double word in the SHA384 and SHA512
+ * larval hashes must be stored in hi/lo order
+ */
+#define hilo(x)	upper_32_bits(x), lower_32_bits(x)
+static const u32 cc_sha384_init[] = {
+	hilo(SHA384_H7), hilo(SHA384_H6), hilo(SHA384_H5), hilo(SHA384_H4),
+	hilo(SHA384_H3), hilo(SHA384_H2), hilo(SHA384_H1), hilo(SHA384_H0) };
+static const u32 cc_sha512_init[] = {
+	hilo(SHA512_H7), hilo(SHA512_H6), hilo(SHA512_H5), hilo(SHA512_H4),
+	hilo(SHA512_H3), hilo(SHA512_H2), hilo(SHA512_H1), hilo(SHA512_H0) };
+
 static const u32 cc_sm3_init[] = {
 	SM3_IVH, SM3_IVG, SM3_IVF, SM3_IVE,
 	SM3_IVD, SM3_IVC, SM3_IVB, SM3_IVA };
@@ -1948,8 +1955,8 @@
 	}
 
 	if (large_sha_supported) {
-		cc_set_sram_desc((u32 *)cc_sha384_init, sram_buff_ofs,
-				 (ARRAY_SIZE(cc_sha384_init) * 2), larval_seq,
+		cc_set_sram_desc(cc_sha384_init, sram_buff_ofs,
+				 ARRAY_SIZE(cc_sha384_init), larval_seq,
 				 &larval_seq_len);
 		rc = send_request_init(drvdata, larval_seq, larval_seq_len);
 		if (rc)
@@ -1957,8 +1964,8 @@
 		sram_buff_ofs += sizeof(cc_sha384_init);
 		larval_seq_len = 0;
 
-		cc_set_sram_desc((u32 *)cc_sha512_init, sram_buff_ofs,
-				 (ARRAY_SIZE(cc_sha512_init) * 2), larval_seq,
+		cc_set_sram_desc(cc_sha512_init, sram_buff_ofs,
+				 ARRAY_SIZE(cc_sha512_init), larval_seq,
 				 &larval_seq_len);
 		rc = send_request_init(drvdata, larval_seq, larval_seq_len);
 		if (rc)
@@ -1969,28 +1976,6 @@
 	return rc;
 }
 
-static void __init cc_swap_dwords(u32 *buf, unsigned long size)
-{
-	int i;
-	u32 tmp;
-
-	for (i = 0; i < size; i += 2) {
-		tmp = buf[i];
-		buf[i] = buf[i + 1];
-		buf[i + 1] = tmp;
-	}
-}
-
-/*
- * Due to the way the HW works we need to swap every
- * double word in the SHA384 and SHA512 larval hashes
- */
-void __init cc_hash_global_init(void)
-{
-	cc_swap_dwords((u32 *)&cc_sha384_init, (ARRAY_SIZE(cc_sha384_init) * 2));
-	cc_swap_dwords((u32 *)&cc_sha512_init, (ARRAY_SIZE(cc_sha512_init) * 2));
-}
-
 int cc_hash_alloc(struct cc_drvdata *drvdata)
 {
 	struct cc_hash_handle *hash_handle;
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_hash.h
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_hash.h
@@ -104,6 +104,4 @@
  */
 cc_sram_addr_t cc_larval_digest_addr(void *drvdata, u32 mode);
 
-void cc_hash_global_init(void);
-
 #endif /*__CC_HASH_H__*/
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_pm.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_pm.c
@@ -22,14 +22,8 @@
 int cc_pm_suspend(struct device *dev)
 {
 	struct cc_drvdata *drvdata = dev_get_drvdata(dev);
-	int rc;
 
 	dev_dbg(dev, "set HOST_POWER_DOWN_EN\n");
-	rc = cc_suspend_req_queue(drvdata);
-	if (rc) {
-		dev_err(dev, "cc_suspend_req_queue (%x)\n", rc);
-		return rc;
-	}
 	fini_cc_regs(drvdata);
 	cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE);
 	cc_clk_off(drvdata);
@@ -63,13 +57,6 @@
 	/* check if tee fips error occurred during power down */
 	cc_tee_handle_fips_error(drvdata);
 
-	rc = cc_resume_req_queue(drvdata);
-	if (rc) {
-		dev_err(dev, "cc_resume_req_queue (%x)\n", rc);
-		return rc;
-	}
-
-	/* must be after the queue resuming as it uses the HW queue*/
 	cc_init_hash_sram(drvdata);
 
 	return 0;
@@ -80,12 +67,10 @@
 	int rc = 0;
 	struct cc_drvdata *drvdata = dev_get_drvdata(dev);
 
-	if (cc_req_queue_suspended(drvdata))
+	if (drvdata->pm_on)
 		rc = pm_runtime_get_sync(dev);
-	else
-		pm_runtime_get_noresume(dev);
 
-	return rc;
+	return (rc == 1 ? 0 : rc);
 }
 
 int cc_pm_put_suspend(struct device *dev)
@@ -93,14 +78,11 @@
 	int rc = 0;
 	struct cc_drvdata *drvdata = dev_get_drvdata(dev);
 
-	if (!cc_req_queue_suspended(drvdata)) {
+	if (drvdata->pm_on) {
 		pm_runtime_mark_last_busy(dev);
 		rc = pm_runtime_put_autosuspend(dev);
-	} else {
-		/* Something wrong happens*/
-		dev_err(dev, "request to suspend already suspended queue");
-		rc = -EBUSY;
 	}
+
 	return rc;
 }
 
@@ -117,7 +99,7 @@
 	/* must be before the enabling to avoid resdundent suspending */
 	pm_runtime_set_autosuspend_delay(dev, CC_SUSPEND_TIMEOUT);
 	pm_runtime_use_autosuspend(dev);
-	/* activate the PM module */
+	/* set us as active - note we won't do PM ops until cc_pm_go()! */
 	return pm_runtime_set_active(dev);
 }
 
@@ -125,9 +107,11 @@
 void cc_pm_go(struct cc_drvdata *drvdata)
 {
 	pm_runtime_enable(drvdata_to_dev(drvdata));
+	drvdata->pm_on = true;
 }
 
 void cc_pm_fini(struct cc_drvdata *drvdata)
 {
 	pm_runtime_disable(drvdata_to_dev(drvdata));
+	drvdata->pm_on = false;
 }
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_request_mgr.c
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_request_mgr.c
@@ -41,7 +41,6 @@
 #else
 	struct tasklet_struct comptask;
 #endif
-	bool is_runtime_suspended;
 };
 
 struct cc_bl_item {
@@ -404,6 +403,7 @@
 		spin_lock(&mgr->bl_lock);
 		list_del(&bli->list);
 		--mgr->bl_len;
+		kfree(bli);
 	}
 
 	spin_unlock(&mgr->bl_lock);
@@ -677,52 +677,3 @@
 	cc_proc_backlog(drvdata);
 	dev_dbg(dev, "Comp. handler done.\n");
 }
-
-/*
- * resume the queue configuration - no need to take the lock as this happens
- * inside the spin lock protection
- */
-#if defined(CONFIG_PM)
-int cc_resume_req_queue(struct cc_drvdata *drvdata)
-{
-	struct cc_req_mgr_handle *request_mgr_handle =
-		drvdata->request_mgr_handle;
-
-	spin_lock_bh(&request_mgr_handle->hw_lock);
-	request_mgr_handle->is_runtime_suspended = false;
-	spin_unlock_bh(&request_mgr_handle->hw_lock);
-
-	return 0;
-}
-
-/*
- * suspend the queue configuration. Since it is used for the runtime suspend
- * only verify that the queue can be suspended.
- */
-int cc_suspend_req_queue(struct cc_drvdata *drvdata)
-{
-	struct cc_req_mgr_handle *request_mgr_handle =
-						drvdata->request_mgr_handle;
-
-	/* lock the send_request */
-	spin_lock_bh(&request_mgr_handle->hw_lock);
-	if (request_mgr_handle->req_queue_head !=
-	    request_mgr_handle->req_queue_tail) {
-		spin_unlock_bh(&request_mgr_handle->hw_lock);
-		return -EBUSY;
-	}
-	request_mgr_handle->is_runtime_suspended = true;
-	spin_unlock_bh(&request_mgr_handle->hw_lock);
-
-	return 0;
-}
-
-bool cc_req_queue_suspended(struct cc_drvdata *drvdata)
-{
-	struct cc_req_mgr_handle *request_mgr_handle =
-						drvdata->request_mgr_handle;
-
-	return	request_mgr_handle->is_runtime_suspended;
-}
-
-#endif
--- linux-ein-5.4.0.orig/drivers/crypto/ccree/cc_request_mgr.h
+++ linux-ein-5.4.0/drivers/crypto/ccree/cc_request_mgr.h
@@ -40,12 +40,4 @@
 
 void cc_req_mgr_fini(struct cc_drvdata *drvdata);
 
-#if defined(CONFIG_PM)
-int cc_resume_req_queue(struct cc_drvdata *drvdata);
-
-int cc_suspend_req_queue(struct cc_drvdata *drvdata);
-
-bool cc_req_queue_suspended(struct cc_drvdata *drvdata);
-#endif
-
 #endif /*__REQUEST_MGR_H__*/
--- linux-ein-5.4.0.orig/drivers/crypto/chelsio/chcr_algo.c
+++ linux-ein-5.4.0/drivers/crypto/chelsio/chcr_algo.c
@@ -2480,8 +2480,9 @@
 	else
 		reqctx->b0_dma = 0;
 	if (req->src == req->dst) {
-		error = dma_map_sg(dev, req->src, sg_nents(req->src),
-				   DMA_BIDIRECTIONAL);
+		error = dma_map_sg(dev, req->src,
+				sg_nents_for_len(req->src, dst_size),
+					DMA_BIDIRECTIONAL);
 		if (!error)
 			goto err;
 	} else {
@@ -2818,7 +2819,7 @@
 	unsigned int mac_mode = CHCR_SCMD_AUTH_MODE_CBCMAC;
 	unsigned int c_id = a_ctx(tfm)->tx_chan_id;
 	unsigned int ccm_xtra;
-	unsigned char tag_offset = 0, auth_offset = 0;
+	unsigned int tag_offset = 0, auth_offset = 0;
 	unsigned int assoclen;
 
 	if (get_aead_subtype(tfm) == CRYPTO_ALG_SUB_TYPE_AEAD_RFC4309)
@@ -3194,9 +3195,6 @@
 		aeadctx->mayverify = VERIFY_SW;
 		break;
 	default:
-
-		  crypto_tfm_set_flags((struct crypto_tfm *) tfm,
-			CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 	return crypto_aead_setauthsize(aeadctx->sw_cipher, authsize);
@@ -3221,8 +3219,6 @@
 		aeadctx->mayverify = VERIFY_HW;
 		break;
 	default:
-		crypto_tfm_set_flags((struct crypto_tfm *)tfm,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 	return crypto_aead_setauthsize(aeadctx->sw_cipher, authsize);
@@ -3263,8 +3259,6 @@
 		aeadctx->mayverify = VERIFY_HW;
 		break;
 	default:
-		crypto_tfm_set_flags((struct crypto_tfm *)tfm,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 	return crypto_aead_setauthsize(aeadctx->sw_cipher, authsize);
@@ -3289,8 +3283,7 @@
 		ck_size = CHCR_KEYCTX_CIPHER_KEY_SIZE_256;
 		mk_size = CHCR_KEYCTX_MAC_KEY_SIZE_256;
 	} else {
-		crypto_tfm_set_flags((struct crypto_tfm *)aead,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
+		crypto_aead_set_flags(aead, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		aeadctx->enckey_len = 0;
 		return	-EINVAL;
 	}
@@ -3328,8 +3321,7 @@
 	int error;
 
 	if (keylen < 3) {
-		crypto_tfm_set_flags((struct crypto_tfm *)aead,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
+		crypto_aead_set_flags(aead, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		aeadctx->enckey_len = 0;
 		return	-EINVAL;
 	}
@@ -3379,8 +3371,7 @@
 	} else if (keylen == AES_KEYSIZE_256) {
 		ck_size = CHCR_KEYCTX_CIPHER_KEY_SIZE_256;
 	} else {
-		crypto_tfm_set_flags((struct crypto_tfm *)aead,
-				     CRYPTO_TFM_RES_BAD_KEY_LEN);
+		crypto_aead_set_flags(aead, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		pr_err("GCM: Invalid key length %d\n", keylen);
 		ret = -EINVAL;
 		goto out;
--- linux-ein-5.4.0.orig/drivers/crypto/chelsio/chcr_core.c
+++ linux-ein-5.4.0/drivers/crypto/chelsio/chcr_core.c
@@ -125,8 +125,6 @@
 	atomic_set(&dev->inflight, 0);
 	mutex_lock(&drv_data.drv_mutex);
 	list_add_tail(&u_ctx->entry, &drv_data.inact_dev);
-	if (!drv_data.last_dev)
-		drv_data.last_dev = u_ctx;
 	mutex_unlock(&drv_data.drv_mutex);
 }
 
--- linux-ein-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_cm.c
+++ linux-ein-5.4.0/drivers/crypto/chelsio/chtls/chtls_cm.c
@@ -174,7 +174,7 @@
 {
 	if (likely(skb && !skb_shared(skb) && !skb_cloned(skb))) {
 		__skb_trim(skb, 0);
-		refcount_add(2, &skb->users);
+		refcount_inc(&skb->users);
 	} else {
 		skb = alloc_skb(len, GFP_KERNEL | __GFP_NOFAIL);
 	}
@@ -577,7 +577,7 @@
 
 	while (!skb_queue_empty(&listen_ctx->synq)) {
 		struct chtls_sock *csk =
-			container_of((struct synq *)__skb_dequeue
+			container_of((struct synq *)skb_peek
 				(&listen_ctx->synq), struct chtls_sock, synq);
 		struct sock *child = csk->sk;
 
@@ -692,14 +692,13 @@
 	if (rpl->status != CPL_ERR_NONE) {
 		pr_info("Unexpected PASS_OPEN_RPL status %u for STID %u\n",
 			rpl->status, stid);
-		return CPL_RET_BUF_DONE;
+	} else {
+		cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
+		sock_put(listen_ctx->lsk);
+		kfree(listen_ctx);
+		module_put(THIS_MODULE);
 	}
-	cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
-	sock_put(listen_ctx->lsk);
-	kfree(listen_ctx);
-	module_put(THIS_MODULE);
-
-	return 0;
+	return CPL_RET_BUF_DONE;
 }
 
 static int chtls_close_listsrv_rpl(struct chtls_dev *cdev, struct sk_buff *skb)
@@ -716,15 +715,21 @@
 	if (rpl->status != CPL_ERR_NONE) {
 		pr_info("Unexpected CLOSE_LISTSRV_RPL status %u for STID %u\n",
 			rpl->status, stid);
-		return CPL_RET_BUF_DONE;
+	} else {
+		cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
+		sock_put(listen_ctx->lsk);
+		kfree(listen_ctx);
+		module_put(THIS_MODULE);
 	}
+	return CPL_RET_BUF_DONE;
+}
 
-	cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
-	sock_put(listen_ctx->lsk);
-	kfree(listen_ctx);
-	module_put(THIS_MODULE);
+static void chtls_purge_wr_queue(struct sock *sk)
+{
+	struct sk_buff *skb;
 
-	return 0;
+	while ((skb = dequeue_wr(sk)) != NULL)
+		kfree_skb(skb);
 }
 
 static void chtls_release_resources(struct sock *sk)
@@ -741,6 +746,11 @@
 	kfree_skb(csk->txdata_skb_cache);
 	csk->txdata_skb_cache = NULL;
 
+	if (csk->wr_credits != csk->wr_max_credits) {
+		chtls_purge_wr_queue(sk);
+		chtls_reset_wr_list(csk);
+	}
+
 	if (csk->l2t_entry) {
 		cxgb4_l2t_release(csk->l2t_entry);
 		csk->l2t_entry = NULL;
@@ -1011,6 +1021,7 @@
 				    const struct cpl_pass_accept_req *req,
 				    struct chtls_dev *cdev)
 {
+	struct adapter *adap = pci_get_drvdata(cdev->pdev);
 	struct inet_sock *newinet;
 	const struct iphdr *iph;
 	struct tls_context *ctx;
@@ -1020,9 +1031,10 @@
 	struct neighbour *n;
 	struct tcp_sock *tp;
 	struct sock *newsk;
+	bool found = false;
 	u16 port_id;
 	int rxq_idx;
-	int step;
+	int step, i;
 
 	iph = (const struct iphdr *)network_hdr;
 	newsk = tcp_create_openreq_child(lsk, oreq, cdev->askb);
@@ -1034,12 +1046,20 @@
 		goto free_sk;
 
 	n = dst_neigh_lookup(dst, &iph->saddr);
-	if (!n)
-		goto free_sk;
+	if (!n || !n->dev)
+		goto free_dst;
 
 	ndev = n->dev;
-	if (!ndev)
+	if (is_vlan_dev(ndev))
+		ndev = vlan_dev_real_dev(ndev);
+
+	for_each_port(adap, i)
+		if (cdev->ports[i] == ndev)
+			found = true;
+
+	if (!found)
 		goto free_dst;
+
 	port_id = cxgb4_port_idx(ndev);
 
 	csk = chtls_sock_create(cdev);
@@ -1064,6 +1084,7 @@
 	sk_setup_caps(newsk, dst);
 	ctx = tls_get_ctx(lsk);
 	newsk->sk_destruct = ctx->sk_destruct;
+	newsk->sk_prot_creator = lsk->sk_prot_creator;
 	csk->sk = newsk;
 	csk->passive_reap_next = oreq;
 	csk->tx_chan = cxgb4_port_chan(ndev);
@@ -1082,8 +1103,8 @@
 	csk->sndbuf = newsk->sk_sndbuf;
 	csk->smac_idx = ((struct port_info *)netdev_priv(ndev))->smt_idx;
 	RCV_WSCALE(tp) = select_rcv_wscale(tcp_full_space(newsk),
-					   sock_net(newsk)->
-						ipv4.sysctl_tcp_window_scaling,
+					   READ_ONCE(sock_net(newsk)->
+						     ipv4.sysctl_tcp_window_scaling),
 					   tp->window_clamp);
 	neigh_release(n);
 	inet_inherit_port(&tcp_hashinfo, lsk, newsk);
@@ -1094,6 +1115,8 @@
 free_csk:
 	chtls_sock_release(&csk->kref);
 free_dst:
+	if (n)
+		neigh_release(n);
 	dst_release(dst);
 free_sk:
 	inet_csk_prepare_forced_close(newsk);
@@ -1212,7 +1235,7 @@
 	chtls_set_req_addr(oreq, iph->daddr, iph->saddr);
 	ip_dsfield = ipv4_get_dsfield(iph);
 	if (req->tcpopt.wsf <= 14 &&
-	    sock_net(sk)->ipv4.sysctl_tcp_window_scaling) {
+	    READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_window_scaling)) {
 		inet_rsk(oreq)->wscale_ok = 1;
 		inet_rsk(oreq)->snd_wscale = req->tcpopt.wsf;
 	}
@@ -1353,7 +1376,6 @@
 	struct chtls_sock *csk = sk->sk_user_data;
 
 	local_bh_disable();
-	bh_lock_sock(sk);
 	release_tcp_port(sk); /* release the port immediately */
 
 	spin_lock(&reap_list_lock);
@@ -1362,7 +1384,6 @@
 	if (!csk->passive_reap_next)
 		schedule_work(&reap_task);
 	spin_unlock(&reap_list_lock);
-	bh_unlock_sock(sk);
 	local_bh_enable();
 }
 
@@ -1431,6 +1452,11 @@
 			sk_wake_async(sk, 0, POLL_OUT);
 
 		data = lookup_stid(cdev->tids, stid);
+		if (!data) {
+			/* listening server close */
+			kfree_skb(skb);
+			goto unlock;
+		}
 		lsk = ((struct listen_ctx *)data)->lsk;
 
 		bh_lock_sock(lsk);
@@ -1735,6 +1761,7 @@
 		else
 			sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
 	}
+	kfree_skb(skb);
 }
 
 static void chtls_close_con_rpl(struct sock *sk, struct sk_buff *skb)
@@ -1815,39 +1842,6 @@
 	kfree_skb(skb);
 }
 
-static void send_abort_rpl(struct sock *sk, struct sk_buff *skb,
-			   struct chtls_dev *cdev, int status, int queue)
-{
-	struct cpl_abort_req_rss *req = cplhdr(skb);
-	struct sk_buff *reply_skb;
-	struct chtls_sock *csk;
-
-	csk = rcu_dereference_sk_user_data(sk);
-
-	reply_skb = alloc_skb(sizeof(struct cpl_abort_rpl),
-			      GFP_KERNEL);
-
-	if (!reply_skb) {
-		req->status = (queue << 1);
-		send_defer_abort_rpl(cdev, skb);
-		return;
-	}
-
-	set_abort_rpl_wr(reply_skb, GET_TID(req), status);
-	kfree_skb(skb);
-
-	set_wr_txq(reply_skb, CPL_PRIORITY_DATA, queue);
-	if (csk_conn_inline(csk)) {
-		struct l2t_entry *e = csk->l2t_entry;
-
-		if (e && sk->sk_state != TCP_SYN_RECV) {
-			cxgb4_l2t_send(csk->egress_dev, reply_skb, e);
-			return;
-		}
-	}
-	cxgb4_ofld_send(cdev->lldi->ports[0], reply_skb);
-}
-
 /*
  * Add an skb to the deferred skb queue for processing from process context.
  */
@@ -1910,9 +1904,9 @@
 	queue = csk->txq_idx;
 
 	skb->sk	= NULL;
+	chtls_send_abort_rpl(child, skb, BLOG_SKB_CB(skb)->cdev,
+			     CPL_ABORT_NO_RST, queue);
 	do_abort_syn_rcv(child, lsk);
-	send_abort_rpl(child, skb, BLOG_SKB_CB(skb)->cdev,
-		       CPL_ABORT_NO_RST, queue);
 }
 
 static int abort_syn_rcv(struct sock *sk, struct sk_buff *skb)
@@ -1942,8 +1936,8 @@
 	if (!sock_owned_by_user(psk)) {
 		int queue = csk->txq_idx;
 
+		chtls_send_abort_rpl(sk, skb, cdev, CPL_ABORT_NO_RST, queue);
 		do_abort_syn_rcv(sk, psk);
-		send_abort_rpl(sk, skb, cdev, CPL_ABORT_NO_RST, queue);
 	} else {
 		skb->sk = sk;
 		BLOG_SKB_CB(skb)->backlog_rcv = bl_abort_syn_rcv;
@@ -1961,9 +1955,6 @@
 	int queue = csk->txq_idx;
 
 	if (is_neg_adv(req->status)) {
-		if (sk->sk_state == TCP_SYN_RECV)
-			chtls_set_tcb_tflag(sk, 0, 0);
-
 		kfree_skb(skb);
 		return;
 	}
@@ -1989,12 +1980,11 @@
 
 		if (sk->sk_state == TCP_SYN_RECV && !abort_syn_rcv(sk, skb))
 			return;
-
-		chtls_release_resources(sk);
-		chtls_conn_done(sk);
 	}
 
 	chtls_send_abort_rpl(sk, skb, csk->cdev, rst_status, queue);
+	chtls_release_resources(sk);
+	chtls_conn_done(sk);
 }
 
 static void chtls_abort_rpl_rss(struct sock *sk, struct sk_buff *skb)
@@ -2062,19 +2052,6 @@
 	return 0;
 }
 
-static struct sk_buff *dequeue_wr(struct sock *sk)
-{
-	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
-	struct sk_buff *skb = csk->wr_skb_head;
-
-	if (likely(skb)) {
-	/* Don't bother clearing the tail */
-		csk->wr_skb_head = WR_SKB_CB(skb)->next_wr;
-		WR_SKB_CB(skb)->next_wr = NULL;
-	}
-	return skb;
-}
-
 static void chtls_rx_ack(struct sock *sk, struct sk_buff *skb)
 {
 	struct cpl_fw4_ack *hdr = cplhdr(skb) + RSS_HDR;
--- linux-ein-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_cm.h
+++ linux-ein-5.4.0/drivers/crypto/chelsio/chtls/chtls_cm.h
@@ -50,9 +50,6 @@
 #define MIN_RCV_WND (24 * 1024U)
 #define LOOPBACK(x)     (((x) & htonl(0xff000000)) == htonl(0x7f000000))
 
-/* ulp_mem_io + ulptx_idata + payload + padding */
-#define MAX_IMM_ULPTX_WR_LEN (32 + 8 + 256 + 8)
-
 /* for TX: a skb must have a headroom of at least TX_HEADER_LEN bytes */
 #define TX_HEADER_LEN \
 	(sizeof(struct fw_ofld_tx_data_wr) + sizeof(struct sge_opaque_hdr))
@@ -185,6 +182,12 @@
 	kfree_skb(skb);
 }
 
+static inline void chtls_reset_wr_list(struct chtls_sock *csk)
+{
+	csk->wr_skb_head = NULL;
+	csk->wr_skb_tail = NULL;
+}
+
 static inline void enqueue_wr(struct chtls_sock *csk, struct sk_buff *skb)
 {
 	WR_SKB_CB(skb)->next_wr = NULL;
@@ -197,4 +200,19 @@
 		WR_SKB_CB(csk->wr_skb_tail)->next_wr = skb;
 	csk->wr_skb_tail = skb;
 }
+
+static inline struct sk_buff *dequeue_wr(struct sock *sk)
+{
+	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
+	struct sk_buff *skb = NULL;
+
+	skb = csk->wr_skb_head;
+
+	if (likely(skb)) {
+	 /* Don't bother clearing the tail */
+		csk->wr_skb_head = WR_SKB_CB(skb)->next_wr;
+		WR_SKB_CB(skb)->next_wr = NULL;
+	}
+	return skb;
+}
 #endif
--- linux-ein-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_hw.c
+++ linux-ein-5.4.0/drivers/crypto/chelsio/chtls/chtls_hw.c
@@ -350,17 +350,22 @@
 	kwr->sc_imm.cmd_more = cpu_to_be32(ULPTX_CMD_V(ULP_TX_SC_IMM));
 	kwr->sc_imm.len = cpu_to_be32(klen);
 
+	lock_sock(sk);
 	/* key info */
 	kctx = (struct _key_ctx *)(kwr + 1);
 	ret = chtls_key_info(csk, kctx, keylen, optname);
 	if (ret)
 		goto out_notcb;
 
+	if (unlikely(csk_flag(sk, CSK_ABORT_SHUTDOWN)))
+		goto out_notcb;
+
 	set_wr_txq(skb, CPL_PRIORITY_DATA, csk->tlshws.txqid);
 	csk->wr_credits -= DIV_ROUND_UP(len, 16);
 	csk->wr_unacked += DIV_ROUND_UP(len, 16);
 	enqueue_wr(csk, skb);
 	cxgb4_ofld_send(csk->egress_dev, skb);
+	skb = NULL;
 
 	chtls_set_scmd(csk);
 	/* Clear quiesce for Rx key */
@@ -388,8 +393,10 @@
 		csk->tlshws.txkey = keyid;
 	}
 
+	release_sock(sk);
 	return ret;
 out_notcb:
+	release_sock(sk);
 	free_tls_keyid(sk);
 out_nokey:
 	kfree_skb(skb);
--- linux-ein-5.4.0.orig/drivers/crypto/chelsio/chtls/chtls_io.c
+++ linux-ein-5.4.0/drivers/crypto/chelsio/chtls/chtls_io.c
@@ -682,7 +682,7 @@
 				make_tx_data_wr(sk, skb, immdlen, len,
 						credits_needed, completion);
 			tp->snd_nxt += len;
-			tp->lsndtime = tcp_time_stamp(tp);
+			tp->lsndtime = tcp_jiffies32;
 			if (completion)
 				ULP_SKB_CB(skb)->flags &= ~ULPCB_FLAG_NEED_HDR;
 		} else {
@@ -910,9 +910,9 @@
 	return (__force int)cpu_to_be16(thdr->length);
 }
 
-static int csk_mem_free(struct chtls_dev *cdev, struct sock *sk)
+static bool csk_mem_free(struct chtls_dev *cdev, struct sock *sk)
 {
-	return (cdev->max_host_sndbuf - sk->sk_wmem_queued);
+	return (cdev->max_host_sndbuf - sk->sk_wmem_queued > 0);
 }
 
 static int csk_wait_memory(struct chtls_dev *cdev,
@@ -1210,6 +1210,7 @@
 	copied = 0;
 	csk = rcu_dereference_sk_user_data(sk);
 	cdev = csk->cdev;
+	lock_sock(sk);
 	timeo = sock_sndtimeo(sk, flags & MSG_DONTWAIT);
 
 	err = sk_stream_wait_connect(sk, &timeo);
@@ -1437,7 +1438,7 @@
 				      csk->wr_max_credits))
 			sk->sk_write_space(sk);
 
-		if (copied >= target && !sk->sk_backlog.tail)
+		if (copied >= target && !READ_ONCE(sk->sk_backlog.tail))
 			break;
 
 		if (copied) {
@@ -1470,7 +1471,7 @@
 				break;
 			}
 		}
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			release_sock(sk);
 			lock_sock(sk);
 			chtls_cleanup_rbuf(sk, copied);
@@ -1536,6 +1537,7 @@
 			tp->urg_data = 0;
 
 		if ((avail + offset) >= skb->len) {
+			struct sk_buff *next_skb;
 			if (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_TLS_HDR) {
 				tp->copied_seq += skb->len;
 				hws->rcvpld = skb->hdr_len;
@@ -1545,8 +1547,10 @@
 			chtls_free_skb(sk, skb);
 			buffers_freed++;
 			hws->copied_seq = 0;
-			if (copied >= target &&
-			    !skb_peek(&sk->sk_receive_queue))
+			next_skb = skb_peek(&sk->sk_receive_queue);
+			if (copied >= target && !next_skb)
+				break;
+			if (ULP_SKB_CB(next_skb)->flags & ULPCB_FLAG_TLS_HDR)
 				break;
 		}
 	} while (len > 0);
@@ -1615,7 +1619,7 @@
 			break;
 		}
 
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			/* Do not sleep, just process backlog. */
 			release_sock(sk);
 			lock_sock(sk);
@@ -1743,7 +1747,7 @@
 				      csk->wr_max_credits))
 			sk->sk_write_space(sk);
 
-		if (copied >= target && !sk->sk_backlog.tail)
+		if (copied >= target && !READ_ONCE(sk->sk_backlog.tail))
 			break;
 
 		if (copied) {
@@ -1774,7 +1778,7 @@
 			}
 		}
 
-		if (sk->sk_backlog.tail) {
+		if (READ_ONCE(sk->sk_backlog.tail)) {
 			release_sock(sk);
 			lock_sock(sk);
 			chtls_cleanup_rbuf(sk, copied);
--- linux-ein-5.4.0.orig/drivers/crypto/geode-aes.c
+++ linux-ein-5.4.0/drivers/crypto/geode-aes.c
@@ -10,6 +10,7 @@
 #include <linux/spinlock.h>
 #include <crypto/algapi.h>
 #include <crypto/aes.h>
+#include <crypto/internal/skcipher.h>
 
 #include <linux/io.h>
 #include <linux/delay.h>
@@ -23,12 +24,12 @@
 
 /* Write a 128 bit field (either a writable key or IV) */
 static inline void
-_writefield(u32 offset, void *value)
+_writefield(u32 offset, const void *value)
 {
 	int i;
 
 	for (i = 0; i < 4; i++)
-		iowrite32(((u32 *) value)[i], _iobase + offset + (i * 4));
+		iowrite32(((const u32 *) value)[i], _iobase + offset + (i * 4));
 }
 
 /* Read a 128 bit field (either a writable key or IV) */
@@ -42,12 +43,12 @@
 }
 
 static int
-do_crypt(void *src, void *dst, int len, u32 flags)
+do_crypt(const void *src, void *dst, u32 len, u32 flags)
 {
 	u32 status;
 	u32 counter = AES_OP_TIMEOUT;
 
-	iowrite32(virt_to_phys(src), _iobase + AES_SOURCEA_REG);
+	iowrite32(virt_to_phys((void *)src), _iobase + AES_SOURCEA_REG);
 	iowrite32(virt_to_phys(dst), _iobase + AES_DSTA_REG);
 	iowrite32(len,  _iobase + AES_LENA_REG);
 
@@ -64,16 +65,14 @@
 	return counter ? 0 : 1;
 }
 
-static unsigned int
-geode_aes_crypt(struct geode_aes_op *op)
+static void
+geode_aes_crypt(const struct geode_aes_tfm_ctx *tctx, const void *src,
+		void *dst, u32 len, u8 *iv, int mode, int dir)
 {
 	u32 flags = 0;
 	unsigned long iflags;
 	int ret;
 
-	if (op->len == 0)
-		return 0;
-
 	/* If the source and destination is the same, then
 	 * we need to turn on the coherent flags, otherwise
 	 * we don't need to worry
@@ -81,32 +80,28 @@
 
 	flags |= (AES_CTRL_DCA | AES_CTRL_SCA);
 
-	if (op->dir == AES_DIR_ENCRYPT)
+	if (dir == AES_DIR_ENCRYPT)
 		flags |= AES_CTRL_ENCRYPT;
 
 	/* Start the critical section */
 
 	spin_lock_irqsave(&lock, iflags);
 
-	if (op->mode == AES_MODE_CBC) {
+	if (mode == AES_MODE_CBC) {
 		flags |= AES_CTRL_CBC;
-		_writefield(AES_WRITEIV0_REG, op->iv);
+		_writefield(AES_WRITEIV0_REG, iv);
 	}
 
-	if (!(op->flags & AES_FLAGS_HIDDENKEY)) {
-		flags |= AES_CTRL_WRKEY;
-		_writefield(AES_WRITEKEY0_REG, op->key);
-	}
+	flags |= AES_CTRL_WRKEY;
+	_writefield(AES_WRITEKEY0_REG, tctx->key);
 
-	ret = do_crypt(op->src, op->dst, op->len, flags);
+	ret = do_crypt(src, dst, len, flags);
 	BUG_ON(ret);
 
-	if (op->mode == AES_MODE_CBC)
-		_readfield(AES_WRITEIV0_REG, op->iv);
+	if (mode == AES_MODE_CBC)
+		_readfield(AES_WRITEIV0_REG, iv);
 
 	spin_unlock_irqrestore(&lock, iflags);
-
-	return op->len;
 }
 
 /* CRYPTO-API Functions */
@@ -114,13 +109,13 @@
 static int geode_setkey_cip(struct crypto_tfm *tfm, const u8 *key,
 		unsigned int len)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 	unsigned int ret;
 
-	op->keylen = len;
+	tctx->keylen = len;
 
 	if (len == AES_KEYSIZE_128) {
-		memcpy(op->key, key, len);
+		memcpy(tctx->key, key, len);
 		return 0;
 	}
 
@@ -133,135 +128,93 @@
 	/*
 	 * The requested key size is not supported by HW, do a fallback
 	 */
-	op->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	op->fallback.cip->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
+	tctx->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
+	tctx->fallback.cip->base.crt_flags |=
+		(tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
 
-	ret = crypto_cipher_setkey(op->fallback.cip, key, len);
+	ret = crypto_cipher_setkey(tctx->fallback.cip, key, len);
 	if (ret) {
 		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (op->fallback.cip->base.crt_flags & CRYPTO_TFM_RES_MASK);
+		tfm->crt_flags |= (tctx->fallback.cip->base.crt_flags &
+				   CRYPTO_TFM_RES_MASK);
 	}
 	return ret;
 }
 
-static int geode_setkey_blk(struct crypto_tfm *tfm, const u8 *key,
-		unsigned int len)
+static int geode_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
+				 unsigned int len)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
 	unsigned int ret;
 
-	op->keylen = len;
+	tctx->keylen = len;
 
 	if (len == AES_KEYSIZE_128) {
-		memcpy(op->key, key, len);
+		memcpy(tctx->key, key, len);
 		return 0;
 	}
 
 	if (len != AES_KEYSIZE_192 && len != AES_KEYSIZE_256) {
 		/* not supported at all */
-		tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
+		crypto_skcipher_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
 		return -EINVAL;
 	}
 
 	/*
 	 * The requested key size is not supported by HW, do a fallback
 	 */
-	op->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	op->fallback.blk->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
-
-	ret = crypto_blkcipher_setkey(op->fallback.blk, key, len);
-	if (ret) {
-		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (op->fallback.blk->base.crt_flags & CRYPTO_TFM_RES_MASK);
-	}
-	return ret;
-}
-
-static int fallback_blk_dec(struct blkcipher_desc *desc,
-		struct scatterlist *dst, struct scatterlist *src,
-		unsigned int nbytes)
-{
-	unsigned int ret;
-	struct crypto_blkcipher *tfm;
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-
-	tfm = desc->tfm;
-	desc->tfm = op->fallback.blk;
-
-	ret = crypto_blkcipher_decrypt_iv(desc, dst, src, nbytes);
-
-	desc->tfm = tfm;
-	return ret;
-}
-static int fallback_blk_enc(struct blkcipher_desc *desc,
-		struct scatterlist *dst, struct scatterlist *src,
-		unsigned int nbytes)
-{
-	unsigned int ret;
-	struct crypto_blkcipher *tfm;
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-
-	tfm = desc->tfm;
-	desc->tfm = op->fallback.blk;
-
-	ret = crypto_blkcipher_encrypt_iv(desc, dst, src, nbytes);
-
-	desc->tfm = tfm;
+	crypto_skcipher_clear_flags(tctx->fallback.skcipher,
+				    CRYPTO_TFM_REQ_MASK);
+	crypto_skcipher_set_flags(tctx->fallback.skcipher,
+				  crypto_skcipher_get_flags(tfm) &
+				  CRYPTO_TFM_REQ_MASK);
+	ret = crypto_skcipher_setkey(tctx->fallback.skcipher, key, len);
+	crypto_skcipher_set_flags(tfm,
+				  crypto_skcipher_get_flags(tctx->fallback.skcipher) &
+				  CRYPTO_TFM_RES_MASK);
 	return ret;
 }
 
 static void
 geode_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	const struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	if (unlikely(op->keylen != AES_KEYSIZE_128)) {
-		crypto_cipher_encrypt_one(op->fallback.cip, out, in);
+	if (unlikely(tctx->keylen != AES_KEYSIZE_128)) {
+		crypto_cipher_encrypt_one(tctx->fallback.cip, out, in);
 		return;
 	}
 
-	op->src = (void *) in;
-	op->dst = (void *) out;
-	op->mode = AES_MODE_ECB;
-	op->flags = 0;
-	op->len = AES_BLOCK_SIZE;
-	op->dir = AES_DIR_ENCRYPT;
-
-	geode_aes_crypt(op);
+	geode_aes_crypt(tctx, in, out, AES_BLOCK_SIZE, NULL,
+			AES_MODE_ECB, AES_DIR_ENCRYPT);
 }
 
 
 static void
 geode_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	const struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	if (unlikely(op->keylen != AES_KEYSIZE_128)) {
-		crypto_cipher_decrypt_one(op->fallback.cip, out, in);
+	if (unlikely(tctx->keylen != AES_KEYSIZE_128)) {
+		crypto_cipher_decrypt_one(tctx->fallback.cip, out, in);
 		return;
 	}
 
-	op->src = (void *) in;
-	op->dst = (void *) out;
-	op->mode = AES_MODE_ECB;
-	op->flags = 0;
-	op->len = AES_BLOCK_SIZE;
-	op->dir = AES_DIR_DECRYPT;
-
-	geode_aes_crypt(op);
+	geode_aes_crypt(tctx, in, out, AES_BLOCK_SIZE, NULL,
+			AES_MODE_ECB, AES_DIR_DECRYPT);
 }
 
 static int fallback_init_cip(struct crypto_tfm *tfm)
 {
 	const char *name = crypto_tfm_alg_name(tfm);
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	op->fallback.cip = crypto_alloc_cipher(name, 0,
-					       CRYPTO_ALG_NEED_FALLBACK);
+	tctx->fallback.cip = crypto_alloc_cipher(name, 0,
+						 CRYPTO_ALG_NEED_FALLBACK);
 
-	if (IS_ERR(op->fallback.cip)) {
+	if (IS_ERR(tctx->fallback.cip)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.cip);
+		return PTR_ERR(tctx->fallback.cip);
 	}
 
 	return 0;
@@ -269,10 +222,9 @@
 
 static void fallback_exit_cip(struct crypto_tfm *tfm)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_tfm_ctx(tfm);
 
-	crypto_free_cipher(op->fallback.cip);
-	op->fallback.cip = NULL;
+	crypto_free_cipher(tctx->fallback.cip);
 }
 
 static struct crypto_alg geode_alg = {
@@ -285,7 +237,7 @@
 	.cra_init			=	fallback_init_cip,
 	.cra_exit			=	fallback_exit_cip,
 	.cra_blocksize		=	AES_BLOCK_SIZE,
-	.cra_ctxsize		=	sizeof(struct geode_aes_op),
+	.cra_ctxsize		=	sizeof(struct geode_aes_tfm_ctx),
 	.cra_module			=	THIS_MODULE,
 	.cra_u				=	{
 		.cipher	=	{
@@ -298,209 +250,126 @@
 	}
 };
 
-static int
-geode_cbc_decrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_dec(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-	op->iv = walk.iv;
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_CBC;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_DECRYPT;
-
-		ret = geode_aes_crypt(op);
-
-		nbytes -= ret;
-		err = blkcipher_walk_done(desc, &walk, nbytes);
-	}
-
-	return err;
-}
-
-static int
-geode_cbc_encrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_enc(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-	op->iv = walk.iv;
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_CBC;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_ENCRYPT;
-
-		ret = geode_aes_crypt(op);
-		nbytes -= ret;
-		err = blkcipher_walk_done(desc, &walk, nbytes);
-	}
-
-	return err;
-}
-
-static int fallback_init_blk(struct crypto_tfm *tfm)
+static int geode_init_skcipher(struct crypto_skcipher *tfm)
 {
-	const char *name = crypto_tfm_alg_name(tfm);
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
-
-	op->fallback.blk = crypto_alloc_blkcipher(name, 0,
-			CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
+	const char *name = crypto_tfm_alg_name(&tfm->base);
+	struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
 
-	if (IS_ERR(op->fallback.blk)) {
+	tctx->fallback.skcipher =
+		crypto_alloc_skcipher(name, 0, CRYPTO_ALG_NEED_FALLBACK |
+				      CRYPTO_ALG_ASYNC);
+	if (IS_ERR(tctx->fallback.skcipher)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.blk);
+		return PTR_ERR(tctx->fallback.skcipher);
 	}
 
+	crypto_skcipher_set_reqsize(tfm, sizeof(struct skcipher_request) +
+				    crypto_skcipher_reqsize(tctx->fallback.skcipher));
 	return 0;
 }
 
-static void fallback_exit_blk(struct crypto_tfm *tfm)
+static void geode_exit_skcipher(struct crypto_skcipher *tfm)
 {
-	struct geode_aes_op *op = crypto_tfm_ctx(tfm);
+	struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
 
-	crypto_free_blkcipher(op->fallback.blk);
-	op->fallback.blk = NULL;
+	crypto_free_skcipher(tctx->fallback.skcipher);
 }
 
-static struct crypto_alg geode_cbc_alg = {
-	.cra_name		=	"cbc(aes)",
-	.cra_driver_name	=	"cbc-aes-geode",
-	.cra_priority		=	400,
-	.cra_flags			=	CRYPTO_ALG_TYPE_BLKCIPHER |
-						CRYPTO_ALG_KERN_DRIVER_ONLY |
-						CRYPTO_ALG_NEED_FALLBACK,
-	.cra_init			=	fallback_init_blk,
-	.cra_exit			=	fallback_exit_blk,
-	.cra_blocksize		=	AES_BLOCK_SIZE,
-	.cra_ctxsize		=	sizeof(struct geode_aes_op),
-	.cra_alignmask		=	15,
-	.cra_type			=	&crypto_blkcipher_type,
-	.cra_module			=	THIS_MODULE,
-	.cra_u				=	{
-		.blkcipher	=	{
-			.min_keysize	=	AES_MIN_KEY_SIZE,
-			.max_keysize	=	AES_MAX_KEY_SIZE,
-			.setkey			=	geode_setkey_blk,
-			.encrypt		=	geode_cbc_encrypt,
-			.decrypt		=	geode_cbc_decrypt,
-			.ivsize			=	AES_BLOCK_SIZE,
-		}
+static int geode_skcipher_crypt(struct skcipher_request *req, int mode, int dir)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
+	const struct geode_aes_tfm_ctx *tctx = crypto_skcipher_ctx(tfm);
+	struct skcipher_walk walk;
+	unsigned int nbytes;
+	int err;
+
+	if (unlikely(tctx->keylen != AES_KEYSIZE_128)) {
+		struct skcipher_request *subreq = skcipher_request_ctx(req);
+
+		*subreq = *req;
+		skcipher_request_set_tfm(subreq, tctx->fallback.skcipher);
+		if (dir == AES_DIR_DECRYPT)
+			return crypto_skcipher_decrypt(subreq);
+		else
+			return crypto_skcipher_encrypt(subreq);
 	}
-};
 
-static int
-geode_ecb_decrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_dec(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_ECB;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_DECRYPT;
-
-		ret = geode_aes_crypt(op);
-		nbytes -= ret;
-		err = blkcipher_walk_done(desc, &walk, nbytes);
+	err = skcipher_walk_virt(&walk, req, false);
+
+	while ((nbytes = walk.nbytes) != 0) {
+		geode_aes_crypt(tctx, walk.src.virt.addr, walk.dst.virt.addr,
+				round_down(nbytes, AES_BLOCK_SIZE),
+				walk.iv, mode, dir);
+		err = skcipher_walk_done(&walk, nbytes % AES_BLOCK_SIZE);
 	}
 
 	return err;
 }
 
-static int
-geode_ecb_encrypt(struct blkcipher_desc *desc,
-		  struct scatterlist *dst, struct scatterlist *src,
-		  unsigned int nbytes)
-{
-	struct geode_aes_op *op = crypto_blkcipher_ctx(desc->tfm);
-	struct blkcipher_walk walk;
-	int err, ret;
-
-	if (unlikely(op->keylen != AES_KEYSIZE_128))
-		return fallback_blk_enc(desc, dst, src, nbytes);
-
-	blkcipher_walk_init(&walk, dst, src, nbytes);
-	err = blkcipher_walk_virt(desc, &walk);
-
-	while ((nbytes = walk.nbytes)) {
-		op->src = walk.src.virt.addr,
-		op->dst = walk.dst.virt.addr;
-		op->mode = AES_MODE_ECB;
-		op->len = nbytes - (nbytes % AES_BLOCK_SIZE);
-		op->dir = AES_DIR_ENCRYPT;
-
-		ret = geode_aes_crypt(op);
-		nbytes -= ret;
-		ret =  blkcipher_walk_done(desc, &walk, nbytes);
-	}
+static int geode_cbc_encrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_CBC, AES_DIR_ENCRYPT);
+}
 
-	return err;
+static int geode_cbc_decrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_CBC, AES_DIR_DECRYPT);
 }
 
-static struct crypto_alg geode_ecb_alg = {
-	.cra_name			=	"ecb(aes)",
-	.cra_driver_name	=	"ecb-aes-geode",
-	.cra_priority		=	400,
-	.cra_flags			=	CRYPTO_ALG_TYPE_BLKCIPHER |
-						CRYPTO_ALG_KERN_DRIVER_ONLY |
-						CRYPTO_ALG_NEED_FALLBACK,
-	.cra_init			=	fallback_init_blk,
-	.cra_exit			=	fallback_exit_blk,
-	.cra_blocksize		=	AES_BLOCK_SIZE,
-	.cra_ctxsize		=	sizeof(struct geode_aes_op),
-	.cra_alignmask		=	15,
-	.cra_type			=	&crypto_blkcipher_type,
-	.cra_module			=	THIS_MODULE,
-	.cra_u				=	{
-		.blkcipher	=	{
-			.min_keysize	=	AES_MIN_KEY_SIZE,
-			.max_keysize	=	AES_MAX_KEY_SIZE,
-			.setkey			=	geode_setkey_blk,
-			.encrypt		=	geode_ecb_encrypt,
-			.decrypt		=	geode_ecb_decrypt,
-		}
-	}
+static int geode_ecb_encrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_ECB, AES_DIR_ENCRYPT);
+}
+
+static int geode_ecb_decrypt(struct skcipher_request *req)
+{
+	return geode_skcipher_crypt(req, AES_MODE_ECB, AES_DIR_DECRYPT);
+}
+
+static struct skcipher_alg geode_skcipher_algs[] = {
+	{
+		.base.cra_name		= "cbc(aes)",
+		.base.cra_driver_name	= "cbc-aes-geode",
+		.base.cra_priority	= 400,
+		.base.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
+					  CRYPTO_ALG_NEED_FALLBACK,
+		.base.cra_blocksize	= AES_BLOCK_SIZE,
+		.base.cra_ctxsize	= sizeof(struct geode_aes_tfm_ctx),
+		.base.cra_alignmask	= 15,
+		.base.cra_module	= THIS_MODULE,
+		.init			= geode_init_skcipher,
+		.exit			= geode_exit_skcipher,
+		.setkey			= geode_setkey_skcipher,
+		.encrypt		= geode_cbc_encrypt,
+		.decrypt		= geode_cbc_decrypt,
+		.min_keysize		= AES_MIN_KEY_SIZE,
+		.max_keysize		= AES_MAX_KEY_SIZE,
+		.ivsize			= AES_BLOCK_SIZE,
+	}, {
+		.base.cra_name		= "ecb(aes)",
+		.base.cra_driver_name	= "ecb-aes-geode",
+		.base.cra_priority	= 400,
+		.base.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
+					  CRYPTO_ALG_NEED_FALLBACK,
+		.base.cra_blocksize	= AES_BLOCK_SIZE,
+		.base.cra_ctxsize	= sizeof(struct geode_aes_tfm_ctx),
+		.base.cra_alignmask	= 15,
+		.base.cra_module	= THIS_MODULE,
+		.init			= geode_init_skcipher,
+		.exit			= geode_exit_skcipher,
+		.setkey			= geode_setkey_skcipher,
+		.encrypt		= geode_ecb_encrypt,
+		.decrypt		= geode_ecb_decrypt,
+		.min_keysize		= AES_MIN_KEY_SIZE,
+		.max_keysize		= AES_MAX_KEY_SIZE,
+	},
 };
 
 static void geode_aes_remove(struct pci_dev *dev)
 {
 	crypto_unregister_alg(&geode_alg);
-	crypto_unregister_alg(&geode_ecb_alg);
-	crypto_unregister_alg(&geode_cbc_alg);
+	crypto_unregister_skciphers(geode_skcipher_algs,
+				    ARRAY_SIZE(geode_skcipher_algs));
 
 	pci_iounmap(dev, _iobase);
 	_iobase = NULL;
@@ -538,20 +407,14 @@
 	if (ret)
 		goto eiomap;
 
-	ret = crypto_register_alg(&geode_ecb_alg);
+	ret = crypto_register_skciphers(geode_skcipher_algs,
+					ARRAY_SIZE(geode_skcipher_algs));
 	if (ret)
 		goto ealg;
 
-	ret = crypto_register_alg(&geode_cbc_alg);
-	if (ret)
-		goto eecb;
-
 	dev_notice(&dev->dev, "GEODE AES engine enabled.\n");
 	return 0;
 
- eecb:
-	crypto_unregister_alg(&geode_ecb_alg);
-
  ealg:
 	crypto_unregister_alg(&geode_alg);
 
--- linux-ein-5.4.0.orig/drivers/crypto/geode-aes.h
+++ linux-ein-5.4.0/drivers/crypto/geode-aes.h
@@ -46,21 +46,10 @@
 
 #define AES_OP_TIMEOUT    0x50000
 
-struct geode_aes_op {
-
-	void *src;
-	void *dst;
-
-	u32 mode;
-	u32 dir;
-	u32 flags;
-	int len;
-
+struct geode_aes_tfm_ctx {
 	u8 key[AES_KEYSIZE_128];
-	u8 *iv;
-
 	union {
-		struct crypto_blkcipher *blk;
+		struct crypto_skcipher *skcipher;
 		struct crypto_cipher *cip;
 	} fallback;
 	u32 keylen;
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/Kconfig
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/Kconfig
@@ -14,26 +14,53 @@
 	  To compile this as a module, choose M here: the module
 	  will be called hisi_sec.
 
+config CRYPTO_DEV_HISI_SEC2
+	tristate "Support for HiSilicon SEC2 crypto block cipher accelerator"
+	select CRYPTO_BLKCIPHER
+	select CRYPTO_ALGAPI
+	select CRYPTO_LIB_DES
+	select CRYPTO_DEV_HISI_QM
+	select CRYPTO_AEAD
+	select CRYPTO_AUTHENC
+	select CRYPTO_HMAC
+	select CRYPTO_SHA1
+	select CRYPTO_SHA256
+	select CRYPTO_SHA512
+	depends on PCI && PCI_MSI
+	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	help
+	  Support for HiSilicon SEC Engine of version 2 in crypto subsystem.
+	  It provides AES, SM4, and 3DES algorithms with ECB
+	  CBC, and XTS cipher mode, and AEAD algorithms.
+
+	  To compile this as a module, choose M here: the module
+          will be called hisi_sec2.
+
 config CRYPTO_DEV_HISI_QM
 	tristate
-	depends on ARM64 && PCI && PCI_MSI
+	depends on ARM64 || COMPILE_TEST
+	depends on PCI && PCI_MSI
+	select NEED_SG_DMA_LENGTH
 	help
 	  HiSilicon accelerator engines use a common queue management
 	  interface. Specific engine driver may use this module.
 
-config CRYPTO_HISI_SGL
-	tristate
-	depends on ARM64
-	help
-	  HiSilicon accelerator engines use a common hardware scatterlist
-	  interface for data format. Specific engine driver may use this
-	  module.
-
 config CRYPTO_DEV_HISI_ZIP
 	tristate "Support for HiSilicon ZIP accelerator"
-	depends on ARM64 && PCI && PCI_MSI
+	depends on PCI && PCI_MSI
+	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	depends on !CPU_BIG_ENDIAN || COMPILE_TEST
 	select CRYPTO_DEV_HISI_QM
-	select CRYPTO_HISI_SGL
-	select SG_SPLIT
 	help
 	  Support for HiSilicon ZIP Driver
+
+config CRYPTO_DEV_HISI_HPRE
+	tristate "Support for HISI HPRE accelerator"
+	depends on PCI && PCI_MSI
+	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	select CRYPTO_DEV_HISI_QM
+	select CRYPTO_DH
+	select CRYPTO_RSA
+	help
+	  Support for HiSilicon HPRE(High Performance RSA Engine)
+	  accelerator, which can accelerate RSA and DH algorithms.
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/Makefile
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/Makefile
@@ -1,5 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_CRYPTO_DEV_HISI_HPRE) += hpre/
 obj-$(CONFIG_CRYPTO_DEV_HISI_SEC) += sec/
-obj-$(CONFIG_CRYPTO_DEV_HISI_QM) += qm.o
-obj-$(CONFIG_CRYPTO_HISI_SGL) += sgl.o
+obj-$(CONFIG_CRYPTO_DEV_HISI_SEC2) += sec2/
+obj-$(CONFIG_CRYPTO_DEV_HISI_QM) += hisi_qm.o
+hisi_qm-objs = qm.o sgl.o
 obj-$(CONFIG_CRYPTO_DEV_HISI_ZIP) += zip/
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/hpre/Makefile
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/hpre/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_CRYPTO_DEV_HISI_HPRE) += hisi_hpre.o
+hisi_hpre-objs = hpre_main.o hpre_crypto.o
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/hpre/hpre.h
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/hpre/hpre.h
@@ -0,0 +1,83 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2019 HiSilicon Limited. */
+#ifndef __HISI_HPRE_H
+#define __HISI_HPRE_H
+
+#include <linux/list.h>
+#include "../qm.h"
+
+#define HPRE_SQE_SIZE			sizeof(struct hpre_sqe)
+#define HPRE_PF_DEF_Q_NUM		64
+#define HPRE_PF_DEF_Q_BASE		0
+
+enum {
+	HPRE_CLUSTER0,
+	HPRE_CLUSTER1,
+	HPRE_CLUSTER2,
+	HPRE_CLUSTER3,
+	HPRE_CLUSTERS_NUM,
+};
+
+enum hpre_ctrl_dbgfs_file {
+	HPRE_CURRENT_QM,
+	HPRE_CLEAR_ENABLE,
+	HPRE_CLUSTER_CTRL,
+	HPRE_DEBUG_FILE_NUM,
+};
+
+#define HPRE_DEBUGFS_FILE_NUM    (HPRE_DEBUG_FILE_NUM + HPRE_CLUSTERS_NUM - 1)
+
+struct hpre_debugfs_file {
+	int index;
+	enum hpre_ctrl_dbgfs_file type;
+	spinlock_t lock;
+	struct hpre_debug *debug;
+};
+
+/*
+ * One HPRE controller has one PF and multiple VFs, some global configurations
+ * which PF has need this structure.
+ * Just relevant for PF.
+ */
+struct hpre_debug {
+	struct dentry *debug_root;
+	struct hpre_debugfs_file files[HPRE_DEBUGFS_FILE_NUM];
+};
+
+struct hpre {
+	struct hisi_qm qm;
+	struct list_head list;
+	struct hpre_debug debug;
+	u32 num_vfs;
+	unsigned long status;
+};
+
+enum hpre_alg_type {
+	HPRE_ALG_NC_NCRT = 0x0,
+	HPRE_ALG_NC_CRT = 0x1,
+	HPRE_ALG_KG_STD = 0x2,
+	HPRE_ALG_KG_CRT = 0x3,
+	HPRE_ALG_DH_G2 = 0x4,
+	HPRE_ALG_DH = 0x5,
+};
+
+struct hpre_sqe {
+	__le32 dw0;
+	__u8 task_len1;
+	__u8 task_len2;
+	__u8 mrttest_num;
+	__u8 resv1;
+	__le64 key;
+	__le64 in;
+	__le64 out;
+	__le16 tag;
+	__le16 resv2;
+#define _HPRE_SQE_ALIGN_EXT	7
+	__le32 rsvd1[_HPRE_SQE_ALIGN_EXT];
+};
+
+struct hpre *hpre_find_device(int node);
+int hpre_algs_register(void);
+void hpre_algs_unregister(void);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/hpre/hpre_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/hpre/hpre_crypto.c
@@ -0,0 +1,1134 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+#include <crypto/akcipher.h>
+#include <crypto/dh.h>
+#include <crypto/internal/akcipher.h>
+#include <crypto/internal/kpp.h>
+#include <crypto/internal/rsa.h>
+#include <crypto/kpp.h>
+#include <crypto/scatterwalk.h>
+#include <linux/dma-mapping.h>
+#include <linux/fips.h>
+#include <linux/module.h>
+#include "hpre.h"
+
+struct hpre_ctx;
+
+#define HPRE_CRYPTO_ALG_PRI	1000
+#define HPRE_ALIGN_SZ		64
+#define HPRE_BITS_2_BYTES_SHIFT	3
+#define HPRE_RSA_512BITS_KSZ	64
+#define HPRE_RSA_1536BITS_KSZ	192
+#define HPRE_CRT_PRMS		5
+#define HPRE_CRT_Q		2
+#define HPRE_CRT_P		3
+#define HPRE_CRT_INV		4
+#define HPRE_DH_G_FLAG		0x02
+#define HPRE_TRY_SEND_TIMES	100
+#define HPRE_INVLD_REQ_ID		(-1)
+#define HPRE_DEV(ctx)		(&((ctx)->qp->qm->pdev->dev))
+
+#define HPRE_SQE_ALG_BITS	5
+#define HPRE_SQE_DONE_SHIFT	30
+#define HPRE_DH_MAX_P_SZ	512
+
+typedef void (*hpre_cb)(struct hpre_ctx *ctx, void *sqe);
+
+struct hpre_rsa_ctx {
+	/* low address: e--->n */
+	char *pubkey;
+	dma_addr_t dma_pubkey;
+
+	/* low address: d--->n */
+	char *prikey;
+	dma_addr_t dma_prikey;
+
+	/* low address: dq->dp->q->p->qinv */
+	char *crt_prikey;
+	dma_addr_t dma_crt_prikey;
+
+	struct crypto_akcipher *soft_tfm;
+};
+
+struct hpre_dh_ctx {
+	/*
+	 * If base is g we compute the public key
+	 *	ya = g^xa mod p; [RFC2631 sec 2.1.1]
+	 * else if base if the counterpart public key we
+	 * compute the shared secret
+	 *	ZZ = yb^xa mod p; [RFC2631 sec 2.1.1]
+	 */
+	char *xa_p; /* low address: d--->n, please refer to Hisilicon HPRE UM */
+	dma_addr_t dma_xa_p;
+
+	char *g; /* m */
+	dma_addr_t dma_g;
+};
+
+struct hpre_ctx {
+	struct hisi_qp *qp;
+	struct hpre_asym_request **req_list;
+	spinlock_t req_lock;
+	unsigned int key_sz;
+	bool crt_g2_mode;
+	struct idr req_idr;
+	union {
+		struct hpre_rsa_ctx rsa;
+		struct hpre_dh_ctx dh;
+	};
+};
+
+struct hpre_asym_request {
+	char *src;
+	char *dst;
+	struct hpre_sqe req;
+	struct hpre_ctx *ctx;
+	union {
+		struct akcipher_request *rsa;
+		struct kpp_request *dh;
+	} areq;
+	int err;
+	int req_id;
+	hpre_cb cb;
+};
+
+static DEFINE_MUTEX(hpre_alg_lock);
+static unsigned int hpre_active_devs;
+
+static int hpre_alloc_req_id(struct hpre_ctx *ctx)
+{
+	unsigned long flags;
+	int id;
+
+	spin_lock_irqsave(&ctx->req_lock, flags);
+	id = idr_alloc(&ctx->req_idr, NULL, 0, QM_Q_DEPTH, GFP_ATOMIC);
+	spin_unlock_irqrestore(&ctx->req_lock, flags);
+
+	return id;
+}
+
+static void hpre_free_req_id(struct hpre_ctx *ctx, int req_id)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ctx->req_lock, flags);
+	idr_remove(&ctx->req_idr, req_id);
+	spin_unlock_irqrestore(&ctx->req_lock, flags);
+}
+
+static int hpre_add_req_to_ctx(struct hpre_asym_request *hpre_req)
+{
+	struct hpre_ctx *ctx;
+	int id;
+
+	ctx = hpre_req->ctx;
+	id = hpre_alloc_req_id(ctx);
+	if (unlikely(id < 0))
+		return -EINVAL;
+
+	ctx->req_list[id] = hpre_req;
+	hpre_req->req_id = id;
+
+	return id;
+}
+
+static void hpre_rm_req_from_ctx(struct hpre_asym_request *hpre_req)
+{
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	int id = hpre_req->req_id;
+
+	if (hpre_req->req_id >= 0) {
+		hpre_req->req_id = HPRE_INVLD_REQ_ID;
+		ctx->req_list[id] = NULL;
+		hpre_free_req_id(ctx, id);
+	}
+}
+
+static struct hisi_qp *hpre_get_qp_and_start(void)
+{
+	struct hisi_qp *qp;
+	struct hpre *hpre;
+	int ret;
+
+	/* find the proper hpre device, which is near the current CPU core */
+	hpre = hpre_find_device(cpu_to_node(smp_processor_id()));
+	if (!hpre) {
+		pr_err("Can not find proper hpre device!\n");
+		return ERR_PTR(-ENODEV);
+	}
+
+	qp = hisi_qm_create_qp(&hpre->qm, 0);
+	if (IS_ERR(qp)) {
+		pci_err(hpre->qm.pdev, "Can not create qp!\n");
+		return ERR_PTR(-ENODEV);
+	}
+
+	ret = hisi_qm_start_qp(qp, 0);
+	if (ret < 0) {
+		hisi_qm_release_qp(qp);
+		pci_err(hpre->qm.pdev, "Can not start qp!\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	return qp;
+}
+
+static int hpre_get_data_dma_addr(struct hpre_asym_request *hpre_req,
+				  struct scatterlist *data, unsigned int len,
+				  int is_src, dma_addr_t *tmp)
+{
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	struct device *dev = HPRE_DEV(ctx);
+	enum dma_data_direction dma_dir;
+
+	if (is_src) {
+		hpre_req->src = NULL;
+		dma_dir = DMA_TO_DEVICE;
+	} else {
+		hpre_req->dst = NULL;
+		dma_dir = DMA_FROM_DEVICE;
+	}
+	*tmp = dma_map_single(dev, sg_virt(data),
+			      len, dma_dir);
+	if (unlikely(dma_mapping_error(dev, *tmp))) {
+		dev_err(dev, "dma map data err!\n");
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+static int hpre_prepare_dma_buf(struct hpre_asym_request *hpre_req,
+				struct scatterlist *data, unsigned int len,
+				int is_src, dma_addr_t *tmp)
+{
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	struct device *dev = HPRE_DEV(ctx);
+	void *ptr;
+	int shift;
+
+	shift = ctx->key_sz - len;
+	if (unlikely(shift < 0))
+		return -EINVAL;
+
+	ptr = dma_alloc_coherent(dev, ctx->key_sz, tmp, GFP_KERNEL);
+	if (unlikely(!ptr))
+		return -ENOMEM;
+
+	if (is_src) {
+		scatterwalk_map_and_copy(ptr + shift, data, 0, len, 0);
+		hpre_req->src = ptr;
+	} else {
+		hpre_req->dst = ptr;
+	}
+
+	return 0;
+}
+
+static int hpre_hw_data_init(struct hpre_asym_request *hpre_req,
+			     struct scatterlist *data, unsigned int len,
+			     int is_src, int is_dh)
+{
+	struct hpre_sqe *msg = &hpre_req->req;
+	struct hpre_ctx *ctx = hpre_req->ctx;
+	dma_addr_t tmp = 0;
+	int ret;
+
+	/* when the data is dh's source, we should format it */
+	if ((sg_is_last(data) && len == ctx->key_sz) &&
+	    ((is_dh && !is_src) || !is_dh))
+		ret = hpre_get_data_dma_addr(hpre_req, data, len, is_src, &tmp);
+	else
+		ret = hpre_prepare_dma_buf(hpre_req, data, len,
+					  is_src, &tmp);
+	if (unlikely(ret))
+		return ret;
+
+	if (is_src)
+		msg->in = cpu_to_le64(tmp);
+	else
+		msg->out = cpu_to_le64(tmp);
+
+	return 0;
+}
+
+static void hpre_hw_data_clr_all(struct hpre_ctx *ctx,
+				 struct hpre_asym_request *req,
+				 struct scatterlist *dst,
+				 struct scatterlist *src)
+{
+	struct device *dev = HPRE_DEV(ctx);
+	struct hpre_sqe *sqe = &req->req;
+	dma_addr_t tmp;
+
+	tmp = le64_to_cpu(sqe->in);
+	if (unlikely(!tmp))
+		return;
+
+	if (src) {
+		if (req->src)
+			dma_free_coherent(dev, ctx->key_sz,
+					  req->src, tmp);
+		else
+			dma_unmap_single(dev, tmp,
+					 ctx->key_sz, DMA_TO_DEVICE);
+	}
+
+	tmp = le64_to_cpu(sqe->out);
+	if (unlikely(!tmp))
+		return;
+
+	if (req->dst) {
+		if (dst)
+			scatterwalk_map_and_copy(req->dst, dst, 0,
+						 ctx->key_sz, 1);
+		dma_free_coherent(dev, ctx->key_sz, req->dst, tmp);
+	} else {
+		dma_unmap_single(dev, tmp, ctx->key_sz, DMA_FROM_DEVICE);
+	}
+}
+
+static int hpre_alg_res_post_hf(struct hpre_ctx *ctx, struct hpre_sqe *sqe,
+				void **kreq)
+{
+	struct hpre_asym_request *req;
+	int err, id, done;
+
+#define HPRE_NO_HW_ERR		0
+#define HPRE_HW_TASK_DONE	3
+#define HREE_HW_ERR_MASK	0x7ff
+#define HREE_SQE_DONE_MASK	0x3
+	id = (int)le16_to_cpu(sqe->tag);
+	req = ctx->req_list[id];
+	hpre_rm_req_from_ctx(req);
+	*kreq = req;
+
+	err = (le32_to_cpu(sqe->dw0) >> HPRE_SQE_ALG_BITS) &
+		HREE_HW_ERR_MASK;
+
+	done = (le32_to_cpu(sqe->dw0) >> HPRE_SQE_DONE_SHIFT) &
+		HREE_SQE_DONE_MASK;
+
+	if (likely(err == HPRE_NO_HW_ERR && done == HPRE_HW_TASK_DONE))
+		return  0;
+
+	return -EINVAL;
+}
+
+static int hpre_ctx_set(struct hpre_ctx *ctx, struct hisi_qp *qp, int qlen)
+{
+	if (!ctx || !qp || qlen < 0)
+		return -EINVAL;
+
+	spin_lock_init(&ctx->req_lock);
+	ctx->qp = qp;
+
+	ctx->req_list = kcalloc(qlen, sizeof(void *), GFP_KERNEL);
+	if (!ctx->req_list)
+		return -ENOMEM;
+	ctx->key_sz = 0;
+	ctx->crt_g2_mode = false;
+	idr_init(&ctx->req_idr);
+
+	return 0;
+}
+
+static void hpre_ctx_clear(struct hpre_ctx *ctx, bool is_clear_all)
+{
+	if (is_clear_all) {
+		idr_destroy(&ctx->req_idr);
+		kfree(ctx->req_list);
+		hisi_qm_release_qp(ctx->qp);
+	}
+
+	ctx->crt_g2_mode = false;
+	ctx->key_sz = 0;
+}
+
+static void hpre_dh_cb(struct hpre_ctx *ctx, void *resp)
+{
+	struct hpre_asym_request *req;
+	struct kpp_request *areq;
+	int ret;
+
+	ret = hpre_alg_res_post_hf(ctx, resp, (void **)&req);
+	areq = req->areq.dh;
+	areq->dst_len = ctx->key_sz;
+	hpre_hw_data_clr_all(ctx, req, areq->dst, areq->src);
+	kpp_request_complete(areq, ret);
+}
+
+static void hpre_rsa_cb(struct hpre_ctx *ctx, void *resp)
+{
+	struct hpre_asym_request *req;
+	struct akcipher_request *areq;
+	int ret;
+
+	ret = hpre_alg_res_post_hf(ctx, resp, (void **)&req);
+	areq = req->areq.rsa;
+	areq->dst_len = ctx->key_sz;
+	hpre_hw_data_clr_all(ctx, req, areq->dst, areq->src);
+	akcipher_request_complete(areq, ret);
+}
+
+static void hpre_alg_cb(struct hisi_qp *qp, void *resp)
+{
+	struct hpre_ctx *ctx = qp->qp_ctx;
+	struct hpre_sqe *sqe = resp;
+
+	ctx->req_list[le16_to_cpu(sqe->tag)]->cb(ctx, resp);
+}
+
+static int hpre_ctx_init(struct hpre_ctx *ctx)
+{
+	struct hisi_qp *qp;
+
+	qp = hpre_get_qp_and_start();
+	if (IS_ERR(qp))
+		return PTR_ERR(qp);
+
+	qp->qp_ctx = ctx;
+	qp->req_cb = hpre_alg_cb;
+
+	return hpre_ctx_set(ctx, qp, QM_Q_DEPTH);
+}
+
+static int hpre_msg_request_set(struct hpre_ctx *ctx, void *req, bool is_rsa)
+{
+	struct hpre_asym_request *h_req;
+	struct hpre_sqe *msg;
+	int req_id;
+	void *tmp;
+
+	if (is_rsa) {
+		struct akcipher_request *akreq = req;
+
+		if (akreq->dst_len < ctx->key_sz) {
+			akreq->dst_len = ctx->key_sz;
+			return -EOVERFLOW;
+		}
+
+		tmp = akcipher_request_ctx(akreq);
+		h_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+		h_req->cb = hpre_rsa_cb;
+		h_req->areq.rsa = akreq;
+		msg = &h_req->req;
+		memset(msg, 0, sizeof(*msg));
+	} else {
+		struct kpp_request *kreq = req;
+
+		if (kreq->dst_len < ctx->key_sz) {
+			kreq->dst_len = ctx->key_sz;
+			return -EOVERFLOW;
+		}
+
+		tmp = kpp_request_ctx(kreq);
+		h_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+		h_req->cb = hpre_dh_cb;
+		h_req->areq.dh = kreq;
+		msg = &h_req->req;
+		memset(msg, 0, sizeof(*msg));
+		msg->key = cpu_to_le64((u64)ctx->dh.dma_xa_p);
+	}
+
+	msg->dw0 |= cpu_to_le32(0x1 << HPRE_SQE_DONE_SHIFT);
+	msg->task_len1 = (ctx->key_sz >> HPRE_BITS_2_BYTES_SHIFT) - 1;
+	h_req->ctx = ctx;
+
+	req_id = hpre_add_req_to_ctx(h_req);
+	if (req_id < 0)
+		return -EBUSY;
+
+	msg->tag = cpu_to_le16((u16)req_id);
+
+	return 0;
+}
+
+#ifdef CONFIG_CRYPTO_DH
+static int hpre_dh_compute_value(struct kpp_request *req)
+{
+	struct crypto_kpp *tfm = crypto_kpp_reqtfm(req);
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+	void *tmp = kpp_request_ctx(req);
+	struct hpre_asym_request *hpre_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+	struct hpre_sqe *msg = &hpre_req->req;
+	int ctr = 0;
+	int ret;
+
+	ret = hpre_msg_request_set(ctx, req, false);
+	if (unlikely(ret))
+		return ret;
+
+	if (req->src) {
+		ret = hpre_hw_data_init(hpre_req, req->src, req->src_len, 1, 1);
+		if (unlikely(ret))
+			goto clear_all;
+	}
+
+	ret = hpre_hw_data_init(hpre_req, req->dst, req->dst_len, 0, 1);
+	if (unlikely(ret))
+		goto clear_all;
+
+	if (ctx->crt_g2_mode && !req->src)
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) | HPRE_ALG_DH_G2);
+	else
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) | HPRE_ALG_DH);
+	do {
+		ret = hisi_qp_send(ctx->qp, msg);
+	} while (ret == -EBUSY && ctr++ < HPRE_TRY_SEND_TIMES);
+
+	/* success */
+	if (likely(!ret))
+		return -EINPROGRESS;
+
+clear_all:
+	hpre_rm_req_from_ctx(hpre_req);
+	hpre_hw_data_clr_all(ctx, hpre_req, req->dst, req->src);
+
+	return ret;
+}
+
+static int hpre_is_dh_params_length_valid(unsigned int key_sz)
+{
+#define _HPRE_DH_GRP1		768
+#define _HPRE_DH_GRP2		1024
+#define _HPRE_DH_GRP5		1536
+#define _HPRE_DH_GRP14		2048
+#define _HPRE_DH_GRP15		3072
+#define _HPRE_DH_GRP16		4096
+	switch (key_sz) {
+	case _HPRE_DH_GRP1:
+	case _HPRE_DH_GRP2:
+	case _HPRE_DH_GRP5:
+	case _HPRE_DH_GRP14:
+	case _HPRE_DH_GRP15:
+	case _HPRE_DH_GRP16:
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static int hpre_dh_set_params(struct hpre_ctx *ctx, struct dh *params)
+{
+	struct device *dev = HPRE_DEV(ctx);
+	unsigned int sz;
+
+	if (params->p_size > HPRE_DH_MAX_P_SZ)
+		return -EINVAL;
+
+	if (hpre_is_dh_params_length_valid(params->p_size <<
+					   HPRE_BITS_2_BYTES_SHIFT))
+		return -EINVAL;
+
+	sz = ctx->key_sz = params->p_size;
+	ctx->dh.xa_p = dma_alloc_coherent(dev, sz << 1,
+					  &ctx->dh.dma_xa_p, GFP_KERNEL);
+	if (!ctx->dh.xa_p)
+		return -ENOMEM;
+
+	memcpy(ctx->dh.xa_p + sz, params->p, sz);
+
+	/* If g equals 2 don't copy it */
+	if (params->g_size == 1 && *(char *)params->g == HPRE_DH_G_FLAG) {
+		ctx->crt_g2_mode = true;
+		return 0;
+	}
+
+	ctx->dh.g = dma_alloc_coherent(dev, sz, &ctx->dh.dma_g, GFP_KERNEL);
+	if (!ctx->dh.g) {
+		dma_free_coherent(dev, sz << 1, ctx->dh.xa_p,
+				  ctx->dh.dma_xa_p);
+		ctx->dh.xa_p = NULL;
+		return -ENOMEM;
+	}
+
+	memcpy(ctx->dh.g + (sz - params->g_size), params->g, params->g_size);
+
+	return 0;
+}
+
+static void hpre_dh_clear_ctx(struct hpre_ctx *ctx, bool is_clear_all)
+{
+	struct device *dev = HPRE_DEV(ctx);
+	unsigned int sz = ctx->key_sz;
+
+	if (is_clear_all)
+		hisi_qm_stop_qp(ctx->qp);
+
+	if (ctx->dh.g) {
+		dma_free_coherent(dev, sz, ctx->dh.g, ctx->dh.dma_g);
+		ctx->dh.g = NULL;
+	}
+
+	if (ctx->dh.xa_p) {
+		memzero_explicit(ctx->dh.xa_p, sz);
+		dma_free_coherent(dev, sz << 1, ctx->dh.xa_p,
+				  ctx->dh.dma_xa_p);
+		ctx->dh.xa_p = NULL;
+	}
+
+	hpre_ctx_clear(ctx, is_clear_all);
+}
+
+static int hpre_dh_set_secret(struct crypto_kpp *tfm, const void *buf,
+			      unsigned int len)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+	struct dh params;
+	int ret;
+
+	if (crypto_dh_decode_key(buf, len, &params) < 0)
+		return -EINVAL;
+
+	/* Free old secret if any */
+	hpre_dh_clear_ctx(ctx, false);
+
+	ret = hpre_dh_set_params(ctx, &params);
+	if (ret < 0)
+		goto err_clear_ctx;
+
+	memcpy(ctx->dh.xa_p + (ctx->key_sz - params.key_size), params.key,
+	       params.key_size);
+
+	return 0;
+
+err_clear_ctx:
+	hpre_dh_clear_ctx(ctx, false);
+	return ret;
+}
+
+static unsigned int hpre_dh_max_size(struct crypto_kpp *tfm)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+
+	return ctx->key_sz;
+}
+
+static int hpre_dh_init_tfm(struct crypto_kpp *tfm)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+
+	return hpre_ctx_init(ctx);
+}
+
+static void hpre_dh_exit_tfm(struct crypto_kpp *tfm)
+{
+	struct hpre_ctx *ctx = kpp_tfm_ctx(tfm);
+
+	hpre_dh_clear_ctx(ctx, true);
+}
+#endif
+
+static void hpre_rsa_drop_leading_zeros(const char **ptr, size_t *len)
+{
+	while (!**ptr && *len) {
+		(*ptr)++;
+		(*len)--;
+	}
+}
+
+static bool hpre_rsa_key_size_is_support(unsigned int len)
+{
+	unsigned int bits = len << HPRE_BITS_2_BYTES_SHIFT;
+
+#define _RSA_1024BITS_KEY_WDTH		1024
+#define _RSA_2048BITS_KEY_WDTH		2048
+#define _RSA_3072BITS_KEY_WDTH		3072
+#define _RSA_4096BITS_KEY_WDTH		4096
+
+	switch (bits) {
+	case _RSA_1024BITS_KEY_WDTH:
+	case _RSA_2048BITS_KEY_WDTH:
+	case _RSA_3072BITS_KEY_WDTH:
+	case _RSA_4096BITS_KEY_WDTH:
+		return true;
+	default:
+		return false;
+	}
+}
+
+static int hpre_rsa_enc(struct akcipher_request *req)
+{
+	struct crypto_akcipher *tfm = crypto_akcipher_reqtfm(req);
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	void *tmp = akcipher_request_ctx(req);
+	struct hpre_asym_request *hpre_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+	struct hpre_sqe *msg = &hpre_req->req;
+	int ctr = 0;
+	int ret;
+
+	/* For 512 and 1536 bits key size, use soft tfm instead */
+	if (ctx->key_sz == HPRE_RSA_512BITS_KSZ ||
+	    ctx->key_sz == HPRE_RSA_1536BITS_KSZ) {
+		akcipher_request_set_tfm(req, ctx->rsa.soft_tfm);
+		ret = crypto_akcipher_encrypt(req);
+		akcipher_request_set_tfm(req, tfm);
+		return ret;
+	}
+
+	if (unlikely(!ctx->rsa.pubkey))
+		return -EINVAL;
+
+	ret = hpre_msg_request_set(ctx, req, true);
+	if (unlikely(ret))
+		return ret;
+
+	msg->dw0 |= cpu_to_le32(HPRE_ALG_NC_NCRT);
+	msg->key = cpu_to_le64((u64)ctx->rsa.dma_pubkey);
+
+	ret = hpre_hw_data_init(hpre_req, req->src, req->src_len, 1, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	ret = hpre_hw_data_init(hpre_req, req->dst, req->dst_len, 0, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	do {
+		ret = hisi_qp_send(ctx->qp, msg);
+	} while (ret == -EBUSY && ctr++ < HPRE_TRY_SEND_TIMES);
+
+	/* success */
+	if (likely(!ret))
+		return -EINPROGRESS;
+
+clear_all:
+	hpre_rm_req_from_ctx(hpre_req);
+	hpre_hw_data_clr_all(ctx, hpre_req, req->dst, req->src);
+
+	return ret;
+}
+
+static int hpre_rsa_dec(struct akcipher_request *req)
+{
+	struct crypto_akcipher *tfm = crypto_akcipher_reqtfm(req);
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	void *tmp = akcipher_request_ctx(req);
+	struct hpre_asym_request *hpre_req = PTR_ALIGN(tmp, HPRE_ALIGN_SZ);
+	struct hpre_sqe *msg = &hpre_req->req;
+	int ctr = 0;
+	int ret;
+
+	/* For 512 and 1536 bits key size, use soft tfm instead */
+	if (ctx->key_sz == HPRE_RSA_512BITS_KSZ ||
+	    ctx->key_sz == HPRE_RSA_1536BITS_KSZ) {
+		akcipher_request_set_tfm(req, ctx->rsa.soft_tfm);
+		ret = crypto_akcipher_decrypt(req);
+		akcipher_request_set_tfm(req, tfm);
+		return ret;
+	}
+
+	if (unlikely(!ctx->rsa.prikey))
+		return -EINVAL;
+
+	ret = hpre_msg_request_set(ctx, req, true);
+	if (unlikely(ret))
+		return ret;
+
+	if (ctx->crt_g2_mode) {
+		msg->key = cpu_to_le64((u64)ctx->rsa.dma_crt_prikey);
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) |
+				       HPRE_ALG_NC_CRT);
+	} else {
+		msg->key = cpu_to_le64((u64)ctx->rsa.dma_prikey);
+		msg->dw0 = cpu_to_le32(le32_to_cpu(msg->dw0) |
+				       HPRE_ALG_NC_NCRT);
+	}
+
+	ret = hpre_hw_data_init(hpre_req, req->src, req->src_len, 1, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	ret = hpre_hw_data_init(hpre_req, req->dst, req->dst_len, 0, 0);
+	if (unlikely(ret))
+		goto clear_all;
+
+	do {
+		ret = hisi_qp_send(ctx->qp, msg);
+	} while (ret == -EBUSY && ctr++ < HPRE_TRY_SEND_TIMES);
+
+	/* success */
+	if (likely(!ret))
+		return -EINPROGRESS;
+
+clear_all:
+	hpre_rm_req_from_ctx(hpre_req);
+	hpre_hw_data_clr_all(ctx, hpre_req, req->dst, req->src);
+
+	return ret;
+}
+
+static int hpre_rsa_set_n(struct hpre_ctx *ctx, const char *value,
+			  size_t vlen, bool private)
+{
+	const char *ptr = value;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &vlen);
+
+	ctx->key_sz = vlen;
+
+	/* if invalid key size provided, we use software tfm */
+	if (!hpre_rsa_key_size_is_support(ctx->key_sz))
+		return 0;
+
+	ctx->rsa.pubkey = dma_alloc_coherent(HPRE_DEV(ctx), vlen << 1,
+					     &ctx->rsa.dma_pubkey,
+					     GFP_KERNEL);
+	if (!ctx->rsa.pubkey)
+		return -ENOMEM;
+
+	if (private) {
+		ctx->rsa.prikey = dma_alloc_coherent(HPRE_DEV(ctx), vlen << 1,
+						     &ctx->rsa.dma_prikey,
+						     GFP_KERNEL);
+		if (!ctx->rsa.prikey) {
+			dma_free_coherent(HPRE_DEV(ctx), vlen << 1,
+					  ctx->rsa.pubkey,
+					  ctx->rsa.dma_pubkey);
+			ctx->rsa.pubkey = NULL;
+			return -ENOMEM;
+		}
+		memcpy(ctx->rsa.prikey + vlen, ptr, vlen);
+	}
+	memcpy(ctx->rsa.pubkey + vlen, ptr, vlen);
+
+	/* Using hardware HPRE to do RSA */
+	return 1;
+}
+
+static int hpre_rsa_set_e(struct hpre_ctx *ctx, const char *value,
+			  size_t vlen)
+{
+	const char *ptr = value;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &vlen);
+
+	if (!ctx->key_sz || !vlen || vlen > ctx->key_sz)
+		return -EINVAL;
+
+	memcpy(ctx->rsa.pubkey + ctx->key_sz - vlen, ptr, vlen);
+
+	return 0;
+}
+
+static int hpre_rsa_set_d(struct hpre_ctx *ctx, const char *value,
+			  size_t vlen)
+{
+	const char *ptr = value;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &vlen);
+
+	if (!ctx->key_sz || !vlen || vlen > ctx->key_sz)
+		return -EINVAL;
+
+	memcpy(ctx->rsa.prikey + ctx->key_sz - vlen, ptr, vlen);
+
+	return 0;
+}
+
+static int hpre_crt_para_get(char *para, size_t para_sz,
+			     const char *raw, size_t raw_sz)
+{
+	const char *ptr = raw;
+	size_t len = raw_sz;
+
+	hpre_rsa_drop_leading_zeros(&ptr, &len);
+	if (!len || len > para_sz)
+		return -EINVAL;
+
+	memcpy(para + para_sz - len, ptr, len);
+
+	return 0;
+}
+
+static int hpre_rsa_setkey_crt(struct hpre_ctx *ctx, struct rsa_key *rsa_key)
+{
+	unsigned int hlf_ksz = ctx->key_sz >> 1;
+	struct device *dev = HPRE_DEV(ctx);
+	u64 offset;
+	int ret;
+
+	ctx->rsa.crt_prikey = dma_alloc_coherent(dev, hlf_ksz * HPRE_CRT_PRMS,
+					&ctx->rsa.dma_crt_prikey,
+					GFP_KERNEL);
+	if (!ctx->rsa.crt_prikey)
+		return -ENOMEM;
+
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey, hlf_ksz,
+				rsa_key->dq, rsa_key->dq_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->dp, rsa_key->dp_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz * HPRE_CRT_Q;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->q, rsa_key->q_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz * HPRE_CRT_P;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->p, rsa_key->p_sz);
+	if (ret)
+		goto free_key;
+
+	offset = hlf_ksz * HPRE_CRT_INV;
+	ret = hpre_crt_para_get(ctx->rsa.crt_prikey + offset, hlf_ksz,
+				rsa_key->qinv, rsa_key->qinv_sz);
+	if (ret)
+		goto free_key;
+
+	ctx->crt_g2_mode = true;
+
+	return 0;
+
+free_key:
+	offset = hlf_ksz * HPRE_CRT_PRMS;
+	memzero_explicit(ctx->rsa.crt_prikey, offset);
+	dma_free_coherent(dev, hlf_ksz * HPRE_CRT_PRMS, ctx->rsa.crt_prikey,
+			  ctx->rsa.dma_crt_prikey);
+	ctx->rsa.crt_prikey = NULL;
+	ctx->crt_g2_mode = false;
+
+	return ret;
+}
+
+/* If it is clear all, all the resources of the QP will be cleaned. */
+static void hpre_rsa_clear_ctx(struct hpre_ctx *ctx, bool is_clear_all)
+{
+	unsigned int half_key_sz = ctx->key_sz >> 1;
+	struct device *dev = HPRE_DEV(ctx);
+
+	if (is_clear_all)
+		hisi_qm_stop_qp(ctx->qp);
+
+	if (ctx->rsa.pubkey) {
+		dma_free_coherent(dev, ctx->key_sz << 1,
+				  ctx->rsa.pubkey, ctx->rsa.dma_pubkey);
+		ctx->rsa.pubkey = NULL;
+	}
+
+	if (ctx->rsa.crt_prikey) {
+		memzero_explicit(ctx->rsa.crt_prikey,
+				 half_key_sz * HPRE_CRT_PRMS);
+		dma_free_coherent(dev, half_key_sz * HPRE_CRT_PRMS,
+				  ctx->rsa.crt_prikey, ctx->rsa.dma_crt_prikey);
+		ctx->rsa.crt_prikey = NULL;
+	}
+
+	if (ctx->rsa.prikey) {
+		memzero_explicit(ctx->rsa.prikey, ctx->key_sz);
+		dma_free_coherent(dev, ctx->key_sz << 1, ctx->rsa.prikey,
+				  ctx->rsa.dma_prikey);
+		ctx->rsa.prikey = NULL;
+	}
+
+	hpre_ctx_clear(ctx, is_clear_all);
+}
+
+/*
+ * we should judge if it is CRT or not,
+ * CRT: return true,  N-CRT: return false .
+ */
+static bool hpre_is_crt_key(struct rsa_key *key)
+{
+	u16 len = key->p_sz + key->q_sz + key->dp_sz + key->dq_sz +
+		  key->qinv_sz;
+
+#define LEN_OF_NCRT_PARA	5
+
+	/* N-CRT less than 5 parameters */
+	return len > LEN_OF_NCRT_PARA;
+}
+
+static int hpre_rsa_setkey(struct hpre_ctx *ctx, const void *key,
+			   unsigned int keylen, bool private)
+{
+	struct rsa_key rsa_key;
+	int ret;
+
+	hpre_rsa_clear_ctx(ctx, false);
+
+	if (private)
+		ret = rsa_parse_priv_key(&rsa_key, key, keylen);
+	else
+		ret = rsa_parse_pub_key(&rsa_key, key, keylen);
+	if (ret < 0)
+		return ret;
+
+	ret = hpre_rsa_set_n(ctx, rsa_key.n, rsa_key.n_sz, private);
+	if (ret <= 0)
+		return ret;
+
+	if (private) {
+		ret = hpre_rsa_set_d(ctx, rsa_key.d, rsa_key.d_sz);
+		if (ret < 0)
+			goto free;
+
+		if (hpre_is_crt_key(&rsa_key)) {
+			ret = hpre_rsa_setkey_crt(ctx, &rsa_key);
+			if (ret < 0)
+				goto free;
+		}
+	}
+
+	ret = hpre_rsa_set_e(ctx, rsa_key.e, rsa_key.e_sz);
+	if (ret < 0)
+		goto free;
+
+	if ((private && !ctx->rsa.prikey) || !ctx->rsa.pubkey) {
+		ret = -EINVAL;
+		goto free;
+	}
+
+	return 0;
+
+free:
+	hpre_rsa_clear_ctx(ctx, false);
+	return ret;
+}
+
+static int hpre_rsa_setpubkey(struct crypto_akcipher *tfm, const void *key,
+			      unsigned int keylen)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	int ret;
+
+	ret = crypto_akcipher_set_pub_key(ctx->rsa.soft_tfm, key, keylen);
+	if (ret)
+		return ret;
+
+	return hpre_rsa_setkey(ctx, key, keylen, false);
+}
+
+static int hpre_rsa_setprivkey(struct crypto_akcipher *tfm, const void *key,
+			       unsigned int keylen)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	int ret;
+
+	ret = crypto_akcipher_set_priv_key(ctx->rsa.soft_tfm, key, keylen);
+	if (ret)
+		return ret;
+
+	return hpre_rsa_setkey(ctx, key, keylen, true);
+}
+
+static unsigned int hpre_rsa_max_size(struct crypto_akcipher *tfm)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+
+	/* For 512 and 1536 bits key size, use soft tfm instead */
+	if (ctx->key_sz == HPRE_RSA_512BITS_KSZ ||
+	    ctx->key_sz == HPRE_RSA_1536BITS_KSZ)
+		return crypto_akcipher_maxsize(ctx->rsa.soft_tfm);
+
+	return ctx->key_sz;
+}
+
+static int hpre_rsa_init_tfm(struct crypto_akcipher *tfm)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+	int ret;
+
+	ctx->rsa.soft_tfm = crypto_alloc_akcipher("rsa-generic", 0, 0);
+	if (IS_ERR(ctx->rsa.soft_tfm)) {
+		pr_err("Can not alloc_akcipher!\n");
+		return PTR_ERR(ctx->rsa.soft_tfm);
+	}
+
+	ret = hpre_ctx_init(ctx);
+	if (ret)
+		crypto_free_akcipher(ctx->rsa.soft_tfm);
+
+	return ret;
+}
+
+static void hpre_rsa_exit_tfm(struct crypto_akcipher *tfm)
+{
+	struct hpre_ctx *ctx = akcipher_tfm_ctx(tfm);
+
+	hpre_rsa_clear_ctx(ctx, true);
+	crypto_free_akcipher(ctx->rsa.soft_tfm);
+}
+
+static struct akcipher_alg rsa = {
+	.sign = hpre_rsa_dec,
+	.verify = hpre_rsa_enc,
+	.encrypt = hpre_rsa_enc,
+	.decrypt = hpre_rsa_dec,
+	.set_pub_key = hpre_rsa_setpubkey,
+	.set_priv_key = hpre_rsa_setprivkey,
+	.max_size = hpre_rsa_max_size,
+	.init = hpre_rsa_init_tfm,
+	.exit = hpre_rsa_exit_tfm,
+	.reqsize = sizeof(struct hpre_asym_request) + HPRE_ALIGN_SZ,
+	.base = {
+		.cra_ctxsize = sizeof(struct hpre_ctx),
+		.cra_priority = HPRE_CRYPTO_ALG_PRI,
+		.cra_name = "rsa",
+		.cra_driver_name = "hpre-rsa",
+		.cra_module = THIS_MODULE,
+	},
+};
+
+#ifdef CONFIG_CRYPTO_DH
+static struct kpp_alg dh = {
+	.set_secret = hpre_dh_set_secret,
+	.generate_public_key = hpre_dh_compute_value,
+	.compute_shared_secret = hpre_dh_compute_value,
+	.max_size = hpre_dh_max_size,
+	.init = hpre_dh_init_tfm,
+	.exit = hpre_dh_exit_tfm,
+	.reqsize = sizeof(struct hpre_asym_request) + HPRE_ALIGN_SZ,
+	.base = {
+		.cra_ctxsize = sizeof(struct hpre_ctx),
+		.cra_priority = HPRE_CRYPTO_ALG_PRI,
+		.cra_name = "dh",
+		.cra_driver_name = "hpre-dh",
+		.cra_module = THIS_MODULE,
+	},
+};
+#endif
+
+int hpre_algs_register(void)
+{
+	int ret = 0;
+
+	mutex_lock(&hpre_alg_lock);
+	if (++hpre_active_devs == 1) {
+		rsa.base.cra_flags = 0;
+		ret = crypto_register_akcipher(&rsa);
+		if (ret)
+			goto unlock;
+#ifdef CONFIG_CRYPTO_DH
+		ret = crypto_register_kpp(&dh);
+		if (ret) {
+			crypto_unregister_akcipher(&rsa);
+			goto unlock;
+		}
+#endif
+	}
+
+unlock:
+	mutex_unlock(&hpre_alg_lock);
+	return ret;
+}
+
+void hpre_algs_unregister(void)
+{
+	mutex_lock(&hpre_alg_lock);
+	if (--hpre_active_devs == 0) {
+		crypto_unregister_akcipher(&rsa);
+#ifdef CONFIG_CRYPTO_DH
+		crypto_unregister_kpp(&dh);
+#endif
+	}
+	mutex_unlock(&hpre_alg_lock);
+}
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/hpre/hpre_main.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/hpre/hpre_main.c
@@ -0,0 +1,1037 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2018-2019 HiSilicon Limited. */
+#include <linux/acpi.h>
+#include <linux/aer.h>
+#include <linux/bitops.h>
+#include <linux/debugfs.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+#include <linux/topology.h>
+#include "hpre.h"
+
+#define HPRE_VF_NUM			63
+#define HPRE_QUEUE_NUM_V2		1024
+#define HPRE_QM_ABNML_INT_MASK		0x100004
+#define HPRE_CTRL_CNT_CLR_CE_BIT	BIT(0)
+#define HPRE_COMM_CNT_CLR_CE		0x0
+#define HPRE_CTRL_CNT_CLR_CE		0x301000
+#define HPRE_FSM_MAX_CNT		0x301008
+#define HPRE_VFG_AXQOS			0x30100c
+#define HPRE_VFG_AXCACHE		0x301010
+#define HPRE_RDCHN_INI_CFG		0x301014
+#define HPRE_AWUSR_FP_CFG		0x301018
+#define HPRE_BD_ENDIAN			0x301020
+#define HPRE_ECC_BYPASS			0x301024
+#define HPRE_RAS_WIDTH_CFG		0x301028
+#define HPRE_POISON_BYPASS		0x30102c
+#define HPRE_BD_ARUSR_CFG		0x301030
+#define HPRE_BD_AWUSR_CFG		0x301034
+#define HPRE_TYPES_ENB			0x301038
+#define HPRE_DATA_RUSER_CFG		0x30103c
+#define HPRE_DATA_WUSER_CFG		0x301040
+#define HPRE_INT_MASK			0x301400
+#define HPRE_INT_STATUS			0x301800
+#define HPRE_CORE_INT_ENABLE		0
+#define HPRE_CORE_INT_DISABLE		0x003fffff
+#define HPRE_RAS_ECC_1BIT_TH		0x30140c
+#define HPRE_RDCHN_INI_ST		0x301a00
+#define HPRE_CLSTR_BASE			0x302000
+#define HPRE_CORE_EN_OFFSET		0x04
+#define HPRE_CORE_INI_CFG_OFFSET	0x20
+#define HPRE_CORE_INI_STATUS_OFFSET	0x80
+#define HPRE_CORE_HTBT_WARN_OFFSET	0x8c
+#define HPRE_CORE_IS_SCHD_OFFSET	0x90
+
+#define HPRE_RAS_CE_ENB			0x301410
+#define HPRE_HAC_RAS_CE_ENABLE		0x3f
+#define HPRE_RAS_NFE_ENB		0x301414
+#define HPRE_HAC_RAS_NFE_ENABLE		0x3fffc0
+#define HPRE_RAS_FE_ENB			0x301418
+#define HPRE_HAC_RAS_FE_ENABLE		0
+
+#define HPRE_CORE_ENB		(HPRE_CLSTR_BASE + HPRE_CORE_EN_OFFSET)
+#define HPRE_CORE_INI_CFG	(HPRE_CLSTR_BASE + HPRE_CORE_INI_CFG_OFFSET)
+#define HPRE_CORE_INI_STATUS (HPRE_CLSTR_BASE + HPRE_CORE_INI_STATUS_OFFSET)
+#define HPRE_HAC_ECC1_CNT		0x301a04
+#define HPRE_HAC_ECC2_CNT		0x301a08
+#define HPRE_HAC_INT_STATUS		0x301800
+#define HPRE_HAC_SOURCE_INT		0x301600
+#define MASTER_GLOBAL_CTRL_SHUTDOWN	1
+#define MASTER_TRANS_RETURN_RW		3
+#define HPRE_MASTER_TRANS_RETURN	0x300150
+#define HPRE_MASTER_GLOBAL_CTRL		0x300000
+#define HPRE_CLSTR_ADDR_INTRVL		0x1000
+#define HPRE_CLUSTER_INQURY		0x100
+#define HPRE_CLSTR_ADDR_INQRY_RSLT	0x104
+#define HPRE_TIMEOUT_ABNML_BIT		6
+#define HPRE_PASID_EN_BIT		9
+#define HPRE_REG_RD_INTVRL_US		10
+#define HPRE_REG_RD_TMOUT_US		1000
+#define HPRE_DBGFS_VAL_MAX_LEN		20
+#define HPRE_PCI_DEVICE_ID		0xa258
+#define HPRE_PCI_VF_DEVICE_ID		0xa259
+#define HPRE_ADDR(qm, offset)		((qm)->io_base + (offset))
+#define HPRE_QM_USR_CFG_MASK		0xfffffffe
+#define HPRE_QM_AXI_CFG_MASK		0xffff
+#define HPRE_QM_VFG_AX_MASK		0xff
+#define HPRE_BD_USR_MASK		0x3
+#define HPRE_CLUSTER_CORE_MASK		0xf
+
+#define HPRE_VIA_MSI_DSM		1
+
+static LIST_HEAD(hpre_list);
+static DEFINE_MUTEX(hpre_list_lock);
+static const char hpre_name[] = "hisi_hpre";
+static struct dentry *hpre_debugfs_root;
+static const struct pci_device_id hpre_dev_ids[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_DEVICE_ID) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_VF_DEVICE_ID) },
+	{ 0, }
+};
+
+MODULE_DEVICE_TABLE(pci, hpre_dev_ids);
+
+struct hpre_hw_error {
+	u32 int_msk;
+	const char *msg;
+};
+
+static const char * const hpre_debug_file_name[] = {
+	[HPRE_CURRENT_QM]   = "current_qm",
+	[HPRE_CLEAR_ENABLE] = "rdclr_en",
+	[HPRE_CLUSTER_CTRL] = "cluster_ctrl",
+};
+
+static const struct hpre_hw_error hpre_hw_errors[] = {
+	{ .int_msk = BIT(0), .msg = "core_ecc_1bit_err_int_set" },
+	{ .int_msk = BIT(1), .msg = "core_ecc_2bit_err_int_set" },
+	{ .int_msk = BIT(2), .msg = "dat_wb_poison_int_set" },
+	{ .int_msk = BIT(3), .msg = "dat_rd_poison_int_set" },
+	{ .int_msk = BIT(4), .msg = "bd_rd_poison_int_set" },
+	{ .int_msk = BIT(5), .msg = "ooo_ecc_2bit_err_int_set" },
+	{ .int_msk = BIT(6), .msg = "cluster1_shb_timeout_int_set" },
+	{ .int_msk = BIT(7), .msg = "cluster2_shb_timeout_int_set" },
+	{ .int_msk = BIT(8), .msg = "cluster3_shb_timeout_int_set" },
+	{ .int_msk = BIT(9), .msg = "cluster4_shb_timeout_int_set" },
+	{ .int_msk = GENMASK(15, 10), .msg = "ooo_rdrsp_err_int_set" },
+	{ .int_msk = GENMASK(21, 16), .msg = "ooo_wrrsp_err_int_set" },
+	{ /* sentinel */ }
+};
+
+static const u64 hpre_cluster_offsets[] = {
+	[HPRE_CLUSTER0] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER0 * HPRE_CLSTR_ADDR_INTRVL,
+	[HPRE_CLUSTER1] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER1 * HPRE_CLSTR_ADDR_INTRVL,
+	[HPRE_CLUSTER2] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER2 * HPRE_CLSTR_ADDR_INTRVL,
+	[HPRE_CLUSTER3] =
+		HPRE_CLSTR_BASE + HPRE_CLUSTER3 * HPRE_CLSTR_ADDR_INTRVL,
+};
+
+static struct debugfs_reg32 hpre_cluster_dfx_regs[] = {
+	{"CORES_EN_STATUS          ",  HPRE_CORE_EN_OFFSET},
+	{"CORES_INI_CFG              ",  HPRE_CORE_INI_CFG_OFFSET},
+	{"CORES_INI_STATUS         ",  HPRE_CORE_INI_STATUS_OFFSET},
+	{"CORES_HTBT_WARN         ",  HPRE_CORE_HTBT_WARN_OFFSET},
+	{"CORES_IS_SCHD               ",  HPRE_CORE_IS_SCHD_OFFSET},
+};
+
+static struct debugfs_reg32 hpre_com_dfx_regs[] = {
+	{"READ_CLR_EN          ",  HPRE_CTRL_CNT_CLR_CE},
+	{"AXQOS                   ",  HPRE_VFG_AXQOS},
+	{"AWUSR_CFG              ",  HPRE_AWUSR_FP_CFG},
+	{"QM_ARUSR_MCFG1           ",  QM_ARUSER_M_CFG_1},
+	{"QM_AWUSR_MCFG1           ",  QM_AWUSER_M_CFG_1},
+	{"BD_ENDIAN               ",  HPRE_BD_ENDIAN},
+	{"ECC_CHECK_CTRL       ",  HPRE_ECC_BYPASS},
+	{"RAS_INT_WIDTH       ",  HPRE_RAS_WIDTH_CFG},
+	{"POISON_BYPASS       ",  HPRE_POISON_BYPASS},
+	{"BD_ARUSER               ",  HPRE_BD_ARUSR_CFG},
+	{"BD_AWUSER               ",  HPRE_BD_AWUSR_CFG},
+	{"DATA_ARUSER            ",  HPRE_DATA_RUSER_CFG},
+	{"DATA_AWUSER           ",  HPRE_DATA_WUSER_CFG},
+	{"INT_STATUS               ",  HPRE_INT_STATUS},
+};
+
+static int hpre_pf_q_num_set(const char *val, const struct kernel_param *kp)
+{
+	struct pci_dev *pdev;
+	u32 n, q_num;
+	u8 rev_id;
+	int ret;
+
+	if (!val)
+		return -EINVAL;
+
+	pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_DEVICE_ID, NULL);
+	if (!pdev) {
+		q_num = HPRE_QUEUE_NUM_V2;
+		pr_info("No device found currently, suppose queue number is %d\n",
+			q_num);
+	} else {
+		rev_id = pdev->revision;
+		if (rev_id != QM_HW_V2)
+			return -EINVAL;
+
+		q_num = HPRE_QUEUE_NUM_V2;
+	}
+
+	ret = kstrtou32(val, 10, &n);
+	if (ret != 0 || n == 0 || n > q_num)
+		return -EINVAL;
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops hpre_pf_q_num_ops = {
+	.set = hpre_pf_q_num_set,
+	.get = param_get_int,
+};
+
+static u32 hpre_pf_q_num = HPRE_PF_DEF_Q_NUM;
+module_param_cb(hpre_pf_q_num, &hpre_pf_q_num_ops, &hpre_pf_q_num, 0444);
+MODULE_PARM_DESC(hpre_pf_q_num, "Number of queues in PF of CS(1-1024)");
+
+static inline void hpre_add_to_list(struct hpre *hpre)
+{
+	mutex_lock(&hpre_list_lock);
+	list_add_tail(&hpre->list, &hpre_list);
+	mutex_unlock(&hpre_list_lock);
+}
+
+static inline void hpre_remove_from_list(struct hpre *hpre)
+{
+	mutex_lock(&hpre_list_lock);
+	list_del(&hpre->list);
+	mutex_unlock(&hpre_list_lock);
+}
+
+struct hpre *hpre_find_device(int node)
+{
+	struct hpre *hpre, *ret = NULL;
+	int min_distance = INT_MAX;
+	struct device *dev;
+	int dev_node = 0;
+
+	mutex_lock(&hpre_list_lock);
+	list_for_each_entry(hpre, &hpre_list, list) {
+		dev = &hpre->qm.pdev->dev;
+#ifdef CONFIG_NUMA
+		dev_node = dev->numa_node;
+		if (dev_node < 0)
+			dev_node = 0;
+#endif
+		if (node_distance(dev_node, node) < min_distance) {
+			ret = hpre;
+			min_distance = node_distance(dev_node, node);
+		}
+	}
+	mutex_unlock(&hpre_list_lock);
+
+	return ret;
+}
+
+static int hpre_cfg_by_dsm(struct hisi_qm *qm)
+{
+	struct device *dev = &qm->pdev->dev;
+	union acpi_object *obj;
+	guid_t guid;
+
+	if (guid_parse("b06b81ab-0134-4a45-9b0c-483447b95fa7", &guid)) {
+		dev_err(dev, "Hpre GUID failed\n");
+		return -EINVAL;
+	}
+
+	/* Switch over to MSI handling due to non-standard PCI implementation */
+	obj = acpi_evaluate_dsm(ACPI_HANDLE(dev), &guid,
+				0, HPRE_VIA_MSI_DSM, NULL);
+	if (!obj) {
+		dev_err(dev, "ACPI handle failed!\n");
+		return -EIO;
+	}
+
+	ACPI_FREE(obj);
+
+	return 0;
+}
+
+static int hpre_set_user_domain_and_cache(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	unsigned long offset;
+	int ret, i;
+	u32 val;
+
+	writel(HPRE_QM_USR_CFG_MASK, HPRE_ADDR(qm, QM_ARUSER_M_CFG_ENABLE));
+	writel(HPRE_QM_USR_CFG_MASK, HPRE_ADDR(qm, QM_AWUSER_M_CFG_ENABLE));
+	writel_relaxed(HPRE_QM_AXI_CFG_MASK, HPRE_ADDR(qm, QM_AXI_M_CFG));
+
+	/* disable FLR triggered by BME(bus master enable) */
+	writel(PEH_AXUSER_CFG, HPRE_ADDR(qm, QM_PEH_AXUSER_CFG));
+	writel(PEH_AXUSER_CFG_ENABLE, HPRE_ADDR(qm, QM_PEH_AXUSER_CFG_ENABLE));
+
+	/* HPRE need more time, we close this interrupt */
+	val = readl_relaxed(HPRE_ADDR(qm, HPRE_QM_ABNML_INT_MASK));
+	val |= BIT(HPRE_TIMEOUT_ABNML_BIT);
+	writel_relaxed(val, HPRE_ADDR(qm, HPRE_QM_ABNML_INT_MASK));
+
+	writel(0x1, HPRE_ADDR(qm, HPRE_TYPES_ENB));
+	writel(HPRE_QM_VFG_AX_MASK, HPRE_ADDR(qm, HPRE_VFG_AXCACHE));
+	writel(0x0, HPRE_ADDR(qm, HPRE_BD_ENDIAN));
+	writel(0x0, HPRE_ADDR(qm, HPRE_INT_MASK));
+	writel(0x0, HPRE_ADDR(qm, HPRE_RAS_ECC_1BIT_TH));
+	writel(0x0, HPRE_ADDR(qm, HPRE_POISON_BYPASS));
+	writel(0x0, HPRE_ADDR(qm, HPRE_COMM_CNT_CLR_CE));
+	writel(0x0, HPRE_ADDR(qm, HPRE_ECC_BYPASS));
+
+	writel(HPRE_BD_USR_MASK, HPRE_ADDR(qm, HPRE_BD_ARUSR_CFG));
+	writel(HPRE_BD_USR_MASK, HPRE_ADDR(qm, HPRE_BD_AWUSR_CFG));
+	writel(0x1, HPRE_ADDR(qm, HPRE_RDCHN_INI_CFG));
+	ret = readl_relaxed_poll_timeout(HPRE_ADDR(qm, HPRE_RDCHN_INI_ST), val,
+			val & BIT(0),
+			HPRE_REG_RD_INTVRL_US,
+			HPRE_REG_RD_TMOUT_US);
+	if (ret) {
+		dev_err(dev, "read rd channel timeout fail!\n");
+		return -ETIMEDOUT;
+	}
+
+	for (i = 0; i < HPRE_CLUSTERS_NUM; i++) {
+		offset = i * HPRE_CLSTR_ADDR_INTRVL;
+
+		/* clusters initiating */
+		writel(HPRE_CLUSTER_CORE_MASK,
+		       HPRE_ADDR(qm, offset + HPRE_CORE_ENB));
+		writel(0x1, HPRE_ADDR(qm, offset + HPRE_CORE_INI_CFG));
+		ret = readl_relaxed_poll_timeout(HPRE_ADDR(qm, offset +
+					HPRE_CORE_INI_STATUS), val,
+					((val & HPRE_CLUSTER_CORE_MASK) ==
+					HPRE_CLUSTER_CORE_MASK),
+					HPRE_REG_RD_INTVRL_US,
+					HPRE_REG_RD_TMOUT_US);
+		if (ret) {
+			dev_err(dev,
+				"cluster %d int st status timeout!\n", i);
+			return -ETIMEDOUT;
+		}
+	}
+
+	ret = hpre_cfg_by_dsm(qm);
+	if (ret)
+		dev_err(dev, "acpi_evaluate_dsm err.\n");
+
+	return ret;
+}
+
+static void hpre_cnt_regs_clear(struct hisi_qm *qm)
+{
+	unsigned long offset;
+	int i;
+
+	/* clear current_qm */
+	writel(0x0, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(0x0, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	/* clear clusterX/cluster_ctrl */
+	for (i = 0; i < HPRE_CLUSTERS_NUM; i++) {
+		offset = HPRE_CLSTR_BASE + i * HPRE_CLSTR_ADDR_INTRVL;
+		writel(0x0, qm->io_base + offset + HPRE_CLUSTER_INQURY);
+	}
+
+	/* clear rdclr_en */
+	writel(0x0, qm->io_base + HPRE_CTRL_CNT_CLR_CE);
+
+	hisi_qm_debug_regs_clear(qm);
+}
+
+static void hpre_hw_error_disable(struct hisi_qm *qm)
+{
+	/* disable hpre hw error interrupts */
+	writel(HPRE_CORE_INT_DISABLE, qm->io_base + HPRE_INT_MASK);
+}
+
+static void hpre_hw_error_enable(struct hisi_qm *qm)
+{
+	/* enable hpre hw error interrupts */
+	writel(HPRE_CORE_INT_ENABLE, qm->io_base + HPRE_INT_MASK);
+	writel(HPRE_HAC_RAS_CE_ENABLE, qm->io_base + HPRE_RAS_CE_ENB);
+	writel(HPRE_HAC_RAS_NFE_ENABLE, qm->io_base + HPRE_RAS_NFE_ENB);
+	writel(HPRE_HAC_RAS_FE_ENABLE, qm->io_base + HPRE_RAS_FE_ENB);
+}
+
+static inline struct hisi_qm *hpre_file_to_qm(struct hpre_debugfs_file *file)
+{
+	struct hpre *hpre = container_of(file->debug, struct hpre, debug);
+
+	return &hpre->qm;
+}
+
+static u32 hpre_current_qm_read(struct hpre_debugfs_file *file)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+
+	return readl(qm->io_base + QM_DFX_MB_CNT_VF);
+}
+
+static int hpre_current_qm_write(struct hpre_debugfs_file *file, u32 val)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	struct hpre_debug *debug = file->debug;
+	struct hpre *hpre = container_of(debug, struct hpre, debug);
+	u32 num_vfs = hpre->num_vfs;
+	u32 vfq_num, tmp;
+
+
+	if (val > num_vfs)
+		return -EINVAL;
+
+	/* According PF or VF Dev ID to calculation curr_qm_qp_num and store */
+	if (val == 0) {
+		qm->debug.curr_qm_qp_num = qm->qp_num;
+	} else {
+		vfq_num = (qm->ctrl_qp_num - qm->qp_num) / num_vfs;
+		if (val == num_vfs) {
+			qm->debug.curr_qm_qp_num =
+			qm->ctrl_qp_num - qm->qp_num - (num_vfs - 1) * vfq_num;
+		} else {
+			qm->debug.curr_qm_qp_num = vfq_num;
+		}
+	}
+
+	writel(val, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(val, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_SQE_CNT_VF_SQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_SQE_CNT_VF_SQN);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_CQE_CNT_VF_CQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_CQE_CNT_VF_CQN);
+
+	return  0;
+}
+
+static u32 hpre_clear_enable_read(struct hpre_debugfs_file *file)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+
+	return readl(qm->io_base + HPRE_CTRL_CNT_CLR_CE) &
+	       HPRE_CTRL_CNT_CLR_CE_BIT;
+}
+
+static int hpre_clear_enable_write(struct hpre_debugfs_file *file, u32 val)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	u32 tmp;
+
+	if (val != 1 && val != 0)
+		return -EINVAL;
+
+	tmp = (readl(qm->io_base + HPRE_CTRL_CNT_CLR_CE) &
+	       ~HPRE_CTRL_CNT_CLR_CE_BIT) | val;
+	writel(tmp, qm->io_base + HPRE_CTRL_CNT_CLR_CE);
+
+	return  0;
+}
+
+static u32 hpre_cluster_inqry_read(struct hpre_debugfs_file *file)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	int cluster_index = file->index - HPRE_CLUSTER_CTRL;
+	unsigned long offset = HPRE_CLSTR_BASE +
+			       cluster_index * HPRE_CLSTR_ADDR_INTRVL;
+
+	return readl(qm->io_base + offset + HPRE_CLSTR_ADDR_INQRY_RSLT);
+}
+
+static int hpre_cluster_inqry_write(struct hpre_debugfs_file *file, u32 val)
+{
+	struct hisi_qm *qm = hpre_file_to_qm(file);
+	int cluster_index = file->index - HPRE_CLUSTER_CTRL;
+	unsigned long offset = HPRE_CLSTR_BASE + cluster_index *
+			       HPRE_CLSTR_ADDR_INTRVL;
+
+	writel(val, qm->io_base + offset + HPRE_CLUSTER_INQURY);
+
+	return  0;
+}
+
+static ssize_t hpre_ctrl_debug_read(struct file *filp, char __user *buf,
+			       size_t count, loff_t *pos)
+{
+	struct hpre_debugfs_file *file = filp->private_data;
+	char tbuf[HPRE_DBGFS_VAL_MAX_LEN];
+	u32 val;
+	int ret;
+
+	spin_lock_irq(&file->lock);
+	switch (file->type) {
+	case HPRE_CURRENT_QM:
+		val = hpre_current_qm_read(file);
+		break;
+	case HPRE_CLEAR_ENABLE:
+		val = hpre_clear_enable_read(file);
+		break;
+	case HPRE_CLUSTER_CTRL:
+		val = hpre_cluster_inqry_read(file);
+		break;
+	default:
+		spin_unlock_irq(&file->lock);
+		return -EINVAL;
+	}
+	spin_unlock_irq(&file->lock);
+	ret = snprintf(tbuf, HPRE_DBGFS_VAL_MAX_LEN, "%u\n", val);
+	return simple_read_from_buffer(buf, count, pos, tbuf, ret);
+}
+
+static ssize_t hpre_ctrl_debug_write(struct file *filp, const char __user *buf,
+				size_t count, loff_t *pos)
+{
+	struct hpre_debugfs_file *file = filp->private_data;
+	char tbuf[HPRE_DBGFS_VAL_MAX_LEN];
+	unsigned long val;
+	int len, ret;
+
+	if (*pos != 0)
+		return 0;
+
+	if (count >= HPRE_DBGFS_VAL_MAX_LEN)
+		return -ENOSPC;
+
+	len = simple_write_to_buffer(tbuf, HPRE_DBGFS_VAL_MAX_LEN - 1,
+				     pos, buf, count);
+	if (len < 0)
+		return len;
+
+	tbuf[len] = '\0';
+	if (kstrtoul(tbuf, 0, &val))
+		return -EFAULT;
+
+	spin_lock_irq(&file->lock);
+	switch (file->type) {
+	case HPRE_CURRENT_QM:
+		ret = hpre_current_qm_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	case HPRE_CLEAR_ENABLE:
+		ret = hpre_clear_enable_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	case HPRE_CLUSTER_CTRL:
+		ret = hpre_cluster_inqry_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	default:
+		ret = -EINVAL;
+		goto err_input;
+	}
+	spin_unlock_irq(&file->lock);
+
+	return count;
+
+err_input:
+	spin_unlock_irq(&file->lock);
+	return ret;
+}
+
+static const struct file_operations hpre_ctrl_debug_fops = {
+	.owner = THIS_MODULE,
+	.open = simple_open,
+	.read = hpre_ctrl_debug_read,
+	.write = hpre_ctrl_debug_write,
+};
+
+static int hpre_create_debugfs_file(struct hpre_debug *dbg, struct dentry *dir,
+				    enum hpre_ctrl_dbgfs_file type, int indx)
+{
+	struct dentry *file_dir;
+
+	if (dir)
+		file_dir = dir;
+	else
+		file_dir = dbg->debug_root;
+
+	if (type >= HPRE_DEBUG_FILE_NUM)
+		return -EINVAL;
+
+	spin_lock_init(&dbg->files[indx].lock);
+	dbg->files[indx].debug = dbg;
+	dbg->files[indx].type = type;
+	dbg->files[indx].index = indx;
+	debugfs_create_file(hpre_debug_file_name[type], 0600, file_dir,
+			    dbg->files + indx, &hpre_ctrl_debug_fops);
+
+	return 0;
+}
+
+static int hpre_pf_comm_regs_debugfs_init(struct hpre_debug *debug)
+{
+	struct hpre *hpre = container_of(debug, struct hpre, debug);
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	struct debugfs_regset32 *regset;
+
+	regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
+	if (!regset)
+		return -ENOMEM;
+
+	regset->regs = hpre_com_dfx_regs;
+	regset->nregs = ARRAY_SIZE(hpre_com_dfx_regs);
+	regset->base = qm->io_base;
+
+	debugfs_create_regset32("regs", 0444,  debug->debug_root, regset);
+	return 0;
+}
+
+static int hpre_cluster_debugfs_init(struct hpre_debug *debug)
+{
+	struct hpre *hpre = container_of(debug, struct hpre, debug);
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	char buf[HPRE_DBGFS_VAL_MAX_LEN];
+	struct debugfs_regset32 *regset;
+	struct dentry *tmp_d;
+	int i, ret;
+
+	for (i = 0; i < HPRE_CLUSTERS_NUM; i++) {
+		ret = snprintf(buf, HPRE_DBGFS_VAL_MAX_LEN, "cluster%d", i);
+		if (ret < 0)
+			return -EINVAL;
+		tmp_d = debugfs_create_dir(buf, debug->debug_root);
+
+		regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
+		if (!regset)
+			return -ENOMEM;
+
+		regset->regs = hpre_cluster_dfx_regs;
+		regset->nregs = ARRAY_SIZE(hpre_cluster_dfx_regs);
+		regset->base = qm->io_base + hpre_cluster_offsets[i];
+
+		debugfs_create_regset32("regs", 0444, tmp_d, regset);
+		ret = hpre_create_debugfs_file(debug, tmp_d, HPRE_CLUSTER_CTRL,
+					       i + HPRE_CLUSTER_CTRL);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static int hpre_ctrl_debug_init(struct hpre_debug *debug)
+{
+	int ret;
+
+	ret = hpre_create_debugfs_file(debug, NULL, HPRE_CURRENT_QM,
+				       HPRE_CURRENT_QM);
+	if (ret)
+		return ret;
+
+	ret = hpre_create_debugfs_file(debug, NULL, HPRE_CLEAR_ENABLE,
+				       HPRE_CLEAR_ENABLE);
+	if (ret)
+		return ret;
+
+	ret = hpre_pf_comm_regs_debugfs_init(debug);
+	if (ret)
+		return ret;
+
+	return hpre_cluster_debugfs_init(debug);
+}
+
+static int hpre_debugfs_init(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	struct device *dev = &qm->pdev->dev;
+	struct dentry *dir;
+	int ret;
+
+	dir = debugfs_create_dir(dev_name(dev), hpre_debugfs_root);
+	qm->debug.debug_root = dir;
+
+	ret = hisi_qm_debug_init(qm);
+	if (ret)
+		goto failed_to_create;
+
+	if (qm->pdev->device == HPRE_PCI_DEVICE_ID) {
+		hpre->debug.debug_root = dir;
+		ret = hpre_ctrl_debug_init(&hpre->debug);
+		if (ret)
+			goto failed_to_create;
+	}
+	return 0;
+
+failed_to_create:
+	debugfs_remove_recursive(qm->debug.debug_root);
+	return ret;
+}
+
+static void hpre_debugfs_exit(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+
+	debugfs_remove_recursive(qm->debug.debug_root);
+}
+
+static int hpre_qm_pre_init(struct hisi_qm *qm, struct pci_dev *pdev)
+{
+	enum qm_hw_ver rev_id;
+
+	rev_id = hisi_qm_get_hw_version(pdev);
+	if (rev_id < 0)
+		return -ENODEV;
+
+	if (rev_id == QM_HW_V1) {
+		pci_warn(pdev, "HPRE version 1 is not supported!\n");
+		return -EINVAL;
+	}
+
+	qm->pdev = pdev;
+	qm->ver = rev_id;
+	qm->sqe_size = HPRE_SQE_SIZE;
+	qm->dev_name = hpre_name;
+	qm->fun_type = (pdev->device == HPRE_PCI_DEVICE_ID) ?
+		       QM_HW_PF : QM_HW_VF;
+	if (pdev->is_physfn) {
+		qm->qp_base = HPRE_PF_DEF_Q_BASE;
+		qm->qp_num = hpre_pf_q_num;
+	}
+	qm->use_dma_api = true;
+
+	return 0;
+}
+
+static const struct hisi_qm_err_ini hpre_err_ini = {
+	.hw_err_enable	= hpre_hw_error_enable,
+	.hw_err_disable	= hpre_hw_error_disable,
+	.err_info	= {
+		.ce		= QM_BASE_CE,
+		.nfe		= QM_BASE_NFE | QM_ACC_DO_TASK_TIMEOUT,
+		.fe		= 0,
+		.msi		= QM_DB_RANDOM_INVALID,
+	}
+};
+
+static int hpre_pf_probe_init(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	int ret;
+
+	qm->ctrl_qp_num = HPRE_QUEUE_NUM_V2;
+
+	ret = hpre_set_user_domain_and_cache(hpre);
+	if (ret)
+		return ret;
+
+	qm->err_ini = &hpre_err_ini;
+	hisi_qm_dev_err_init(qm);
+
+	return 0;
+}
+
+static int hpre_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct hisi_qm *qm;
+	struct hpre *hpre;
+	int ret;
+
+	hpre = devm_kzalloc(&pdev->dev, sizeof(*hpre), GFP_KERNEL);
+	if (!hpre)
+		return -ENOMEM;
+
+	pci_set_drvdata(pdev, hpre);
+
+	qm = &hpre->qm;
+	ret = hpre_qm_pre_init(qm, pdev);
+	if (ret)
+		return ret;
+
+	ret = hisi_qm_init(qm);
+	if (ret)
+		return ret;
+
+	if (pdev->is_physfn) {
+		ret = hpre_pf_probe_init(hpre);
+		if (ret)
+			goto err_with_qm_init;
+	} else if (qm->fun_type == QM_HW_VF && qm->ver == QM_HW_V2) {
+		/* v2 starts to support get vft by mailbox */
+		ret = hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
+		if (ret)
+			goto err_with_qm_init;
+	}
+
+	ret = hisi_qm_start(qm);
+	if (ret)
+		goto err_with_err_init;
+
+	ret = hpre_debugfs_init(hpre);
+	if (ret)
+		dev_warn(&pdev->dev, "init debugfs fail!\n");
+
+	hpre_add_to_list(hpre);
+
+	ret = hpre_algs_register();
+	if (ret < 0) {
+		hpre_remove_from_list(hpre);
+		pci_err(pdev, "fail to register algs to crypto!\n");
+		goto err_with_qm_start;
+	}
+	return 0;
+
+err_with_qm_start:
+	hisi_qm_stop(qm);
+
+err_with_err_init:
+	hisi_qm_dev_err_uninit(qm);
+
+err_with_qm_init:
+	hisi_qm_uninit(qm);
+
+	return ret;
+}
+
+static int hpre_vf_q_assign(struct hpre *hpre, int num_vfs)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	u32 qp_num = qm->qp_num;
+	int q_num, remain_q_num, i;
+	u32 q_base = qp_num;
+	int ret;
+
+	if (!num_vfs)
+		return -EINVAL;
+
+	remain_q_num = qm->ctrl_qp_num - qp_num;
+
+	/* If remaining queues are not enough, return error. */
+	if (remain_q_num < num_vfs)
+		return -EINVAL;
+
+	q_num = remain_q_num / num_vfs;
+	for (i = 1; i <= num_vfs; i++) {
+		if (i == num_vfs)
+			q_num += remain_q_num % num_vfs;
+		ret = hisi_qm_set_vft(qm, i, q_base, (u32)q_num);
+		if (ret)
+			return ret;
+		q_base += q_num;
+	}
+
+	return 0;
+}
+
+static int hpre_clear_vft_config(struct hpre *hpre)
+{
+	struct hisi_qm *qm = &hpre->qm;
+	u32 num_vfs = hpre->num_vfs;
+	int ret;
+	u32 i;
+
+	for (i = 1; i <= num_vfs; i++) {
+		ret = hisi_qm_set_vft(qm, i, 0, 0);
+		if (ret)
+			return ret;
+	}
+	hpre->num_vfs = 0;
+
+	return 0;
+}
+
+static int hpre_sriov_enable(struct pci_dev *pdev, int max_vfs)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+	int pre_existing_vfs, num_vfs, ret;
+
+	pre_existing_vfs = pci_num_vf(pdev);
+	if (pre_existing_vfs) {
+		pci_err(pdev,
+			"Can't enable VF. Please disable pre-enabled VFs!\n");
+		return 0;
+	}
+
+	num_vfs = min_t(int, max_vfs, HPRE_VF_NUM);
+	ret = hpre_vf_q_assign(hpre, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't assign queues for VF!\n");
+		return ret;
+	}
+
+	hpre->num_vfs = num_vfs;
+
+	ret = pci_enable_sriov(pdev, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't enable VF!\n");
+		hpre_clear_vft_config(hpre);
+		return ret;
+	}
+
+	return num_vfs;
+}
+
+static int hpre_sriov_disable(struct pci_dev *pdev)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+
+	if (pci_vfs_assigned(pdev)) {
+		pci_err(pdev, "Failed to disable VFs while VFs are assigned!\n");
+		return -EPERM;
+	}
+
+	/* remove in hpre_pci_driver will be called to free VF resources */
+	pci_disable_sriov(pdev);
+
+	return hpre_clear_vft_config(hpre);
+}
+
+static int hpre_sriov_configure(struct pci_dev *pdev, int num_vfs)
+{
+	if (num_vfs)
+		return hpre_sriov_enable(pdev, num_vfs);
+	else
+		return hpre_sriov_disable(pdev);
+}
+
+static void hpre_remove(struct pci_dev *pdev)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+	struct hisi_qm *qm = &hpre->qm;
+	int ret;
+
+	hpre_algs_unregister();
+	hpre_remove_from_list(hpre);
+	if (qm->fun_type == QM_HW_PF && hpre->num_vfs != 0) {
+		ret = hpre_sriov_disable(pdev);
+		if (ret) {
+			pci_err(pdev, "Disable SRIOV fail!\n");
+			return;
+		}
+	}
+	if (qm->fun_type == QM_HW_PF) {
+		hpre_cnt_regs_clear(qm);
+		qm->debug.curr_qm_qp_num = 0;
+	}
+
+	hpre_debugfs_exit(hpre);
+	hisi_qm_stop(qm);
+	hisi_qm_dev_err_uninit(qm);
+	hisi_qm_uninit(qm);
+}
+
+static void hpre_log_hw_error(struct hpre *hpre, u32 err_sts)
+{
+	const struct hpre_hw_error *err = hpre_hw_errors;
+	struct device *dev = &hpre->qm.pdev->dev;
+
+	while (err->msg) {
+		if (err->int_msk & err_sts)
+			dev_warn(dev, "%s [error status=0x%x] found\n",
+				 err->msg, err->int_msk);
+		err++;
+	}
+}
+
+static pci_ers_result_t hpre_hw_error_handle(struct hpre *hpre)
+{
+	u32 err_sts;
+
+	/* read err sts */
+	err_sts = readl(hpre->qm.io_base + HPRE_HAC_INT_STATUS);
+	if (err_sts) {
+		hpre_log_hw_error(hpre, err_sts);
+
+		/* clear error interrupts */
+		writel(err_sts, hpre->qm.io_base + HPRE_HAC_SOURCE_INT);
+		return PCI_ERS_RESULT_NEED_RESET;
+	}
+
+	return PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t hpre_process_hw_error(struct pci_dev *pdev)
+{
+	struct hpre *hpre = pci_get_drvdata(pdev);
+	pci_ers_result_t qm_ret, hpre_ret;
+
+	/* log qm error */
+	qm_ret = hisi_qm_hw_error_handle(&hpre->qm);
+
+	/* log hpre error */
+	hpre_ret = hpre_hw_error_handle(hpre);
+
+	return (qm_ret == PCI_ERS_RESULT_NEED_RESET ||
+		hpre_ret == PCI_ERS_RESULT_NEED_RESET) ?
+		PCI_ERS_RESULT_NEED_RESET : PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t hpre_error_detected(struct pci_dev *pdev,
+					    pci_channel_state_t state)
+{
+	pci_info(pdev, "PCI error detected, state(=%d)!!\n", state);
+	if (state == pci_channel_io_perm_failure)
+		return PCI_ERS_RESULT_DISCONNECT;
+
+	return hpre_process_hw_error(pdev);
+}
+
+static const struct pci_error_handlers hpre_err_handler = {
+	.error_detected		= hpre_error_detected,
+};
+
+static struct pci_driver hpre_pci_driver = {
+	.name			= hpre_name,
+	.id_table		= hpre_dev_ids,
+	.probe			= hpre_probe,
+	.remove			= hpre_remove,
+	.sriov_configure	= hpre_sriov_configure,
+	.err_handler		= &hpre_err_handler,
+};
+
+static void hpre_register_debugfs(void)
+{
+	if (!debugfs_initialized())
+		return;
+
+	hpre_debugfs_root = debugfs_create_dir(hpre_name, NULL);
+}
+
+static void hpre_unregister_debugfs(void)
+{
+	debugfs_remove_recursive(hpre_debugfs_root);
+}
+
+static int __init hpre_init(void)
+{
+	int ret;
+
+	hpre_register_debugfs();
+
+	ret = pci_register_driver(&hpre_pci_driver);
+	if (ret) {
+		hpre_unregister_debugfs();
+		pr_err("hpre: can't register hisi hpre driver.\n");
+	}
+
+	return ret;
+}
+
+static void __exit hpre_exit(void)
+{
+	pci_unregister_driver(&hpre_pci_driver);
+	hpre_unregister_debugfs();
+}
+
+module_init(hpre_init);
+module_exit(hpre_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Zaibo Xu <xuzaibo@huawei.com>");
+MODULE_DESCRIPTION("Driver for HiSilicon HPRE accelerator");
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/qm.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/qm.c
@@ -59,17 +59,17 @@
 #define QM_CQ_PHASE_SHIFT		0
 #define QM_CQ_FLAG_SHIFT		1
 
-#define QM_CQE_PHASE(cqe)		((cqe)->w7 & 0x1)
+#define QM_CQE_PHASE(cqe)		(le16_to_cpu((cqe)->w7) & 0x1)
 #define QM_QC_CQE_SIZE			4
 
 /* eqc shift */
 #define QM_EQE_AEQE_SIZE		(2UL << 12)
 #define QM_EQC_PHASE_SHIFT		16
 
-#define QM_EQE_PHASE(eqe)		(((eqe)->dw0 >> 16) & 0x1)
+#define QM_EQE_PHASE(eqe)		((le32_to_cpu((eqe)->dw0) >> 16) & 0x1)
 #define QM_EQE_CQN_MASK			GENMASK(15, 0)
 
-#define QM_AEQE_PHASE(aeqe)		(((aeqe)->dw0 >> 16) & 0x1)
+#define QM_AEQE_PHASE(aeqe)		((le32_to_cpu((aeqe)->dw0) >> 16) & 0x1)
 #define QM_AEQE_TYPE_SHIFT		17
 
 #define QM_DOORBELL_CMD_SQ		0
@@ -169,17 +169,17 @@
 #define QM_MK_SQC_DW3_V2(sqe_sz) \
 	((QM_Q_DEPTH - 1) | ((u32)ilog2(sqe_sz) << QM_SQ_SQE_SIZE_SHIFT))
 
-#define INIT_QC_COMMON(qc, base, pasid) do {	\
-	(qc)->head = 0;				\
-	(qc)->tail = 0;				\
-	(qc)->base_l = lower_32_bits(base);	\
-	(qc)->base_h = upper_32_bits(base);	\
-	(qc)->dw3 = 0;				\
-	(qc)->w8 = 0;				\
-	(qc)->rsvd0 = 0;			\
-	(qc)->pasid = pasid;			\
-	(qc)->w11 = 0;				\
-	(qc)->rsvd1 = 0;			\
+#define INIT_QC_COMMON(qc, base, pasid) do {			\
+	(qc)->head = 0;						\
+	(qc)->tail = 0;						\
+	(qc)->base_l = cpu_to_le32(lower_32_bits(base));	\
+	(qc)->base_h = cpu_to_le32(upper_32_bits(base));	\
+	(qc)->dw3 = 0;						\
+	(qc)->w8 = 0;						\
+	(qc)->rsvd0 = 0;					\
+	(qc)->pasid = cpu_to_le16(pasid);			\
+	(qc)->w11 = 0;						\
+	(qc)->rsvd1 = 0;					\
 } while (0)
 
 enum vft_type {
@@ -277,6 +277,7 @@
 	int (*debug_init)(struct hisi_qm *qm);
 	void (*hw_error_init)(struct hisi_qm *qm, u32 ce, u32 nfe, u32 fe,
 			      u32 msi);
+	void (*hw_error_uninit)(struct hisi_qm *qm);
 	pci_ers_result_t (*hw_error_handle)(struct hisi_qm *qm);
 };
 
@@ -331,12 +332,18 @@
 	void __iomem *fun_base = qm->io_base + QM_MB_CMD_SEND_BASE;
 	unsigned long tmp0 = 0, tmp1 = 0;
 
+	if (!IS_ENABLED(CONFIG_ARM64)) {
+		memcpy_toio(fun_base, src, 16);
+		wmb();
+		return;
+	}
+
 	asm volatile("ldp %0, %1, %3\n"
 		     "stp %0, %1, %2\n"
 		     "dsb sy\n"
 		     : "=&r" (tmp0),
 		       "=&r" (tmp1),
-		       "+Q" (*((char *)fun_base))
+		       "+Q" (*((char __iomem *)fun_base))
 		     : "Q" (*((char *)src))
 		     : "memory");
 }
@@ -350,12 +357,12 @@
 	dev_dbg(&qm->pdev->dev, "QM mailbox request to q%u: %u-%llx\n",
 		queue, cmd, (unsigned long long)dma_addr);
 
-	mailbox.w0 = cmd |
+	mailbox.w0 = cpu_to_le16(cmd |
 		     (op ? 0x1 << QM_MB_OP_SHIFT : 0) |
-		     (0x1 << QM_MB_BUSY_SHIFT);
-	mailbox.queue_num = queue;
-	mailbox.base_l = lower_32_bits(dma_addr);
-	mailbox.base_h = upper_32_bits(dma_addr);
+		     (0x1 << QM_MB_BUSY_SHIFT));
+	mailbox.queue_num = cpu_to_le16(queue);
+	mailbox.base_l = cpu_to_le32(lower_32_bits(dma_addr));
+	mailbox.base_h = cpu_to_le32(upper_32_bits(dma_addr));
 	mailbox.rsvd = 0;
 
 	mutex_lock(&qm->mailbox_lock);
@@ -442,7 +449,7 @@
 
 static struct hisi_qp *qm_to_hisi_qp(struct hisi_qm *qm, struct qm_eqe *eqe)
 {
-	u16 cqn = eqe->dw0 & QM_EQE_CQN_MASK;
+	u16 cqn = le32_to_cpu(eqe->dw0) & QM_EQE_CQN_MASK;
 
 	return qm->qp_array[cqn];
 }
@@ -464,7 +471,8 @@
 	if (qp->req_cb) {
 		while (QM_CQE_PHASE(cqe) == qp->qp_status.cqc_phase) {
 			dma_rmb();
-			qp->req_cb(qp, qp->sqe + qm->sqe_size * cqe->sq_head);
+			qp->req_cb(qp, qp->sqe + qm->sqe_size *
+				   le16_to_cpu(cqe->sq_head));
 			qm_cq_head_update(qp);
 			cqe = qp->cqe + qp->qp_status.cq_head;
 			qm_db(qm, qp->qp_id, QM_DOORBELL_CMD_CQ,
@@ -478,17 +486,9 @@
 	}
 }
 
-static void qm_qp_work_func(struct work_struct *work)
-{
-	struct hisi_qp *qp;
-
-	qp = container_of(work, struct hisi_qp, work);
-	qm_poll_qp(qp, qp->qm);
-}
-
-static irqreturn_t qm_irq_handler(int irq, void *data)
+static void qm_work_process(struct work_struct *work)
 {
-	struct hisi_qm *qm = data;
+	struct hisi_qm *qm = container_of(work, struct hisi_qm, work);
 	struct qm_eqe *eqe = qm->eqe + qm->status.eq_head;
 	struct hisi_qp *qp;
 	int eqe_num = 0;
@@ -497,7 +497,7 @@
 		eqe_num++;
 		qp = qm_to_hisi_qp(qm, eqe);
 		if (qp)
-			queue_work(qp->wq, &qp->work);
+			qm_poll_qp(qp, qm);
 
 		if (qm->status.eq_head == QM_Q_DEPTH - 1) {
 			qm->status.eqc_phase = !qm->status.eqc_phase;
@@ -515,6 +515,17 @@
 	}
 
 	qm_db(qm, 0, QM_DOORBELL_CMD_EQ, qm->status.eq_head, 0);
+}
+
+static irqreturn_t do_qm_irq(int irq, void *data)
+{
+	struct hisi_qm *qm = (struct hisi_qm *)data;
+
+	/* the workqueue created by device driver of QM */
+	if (qm->wq)
+		queue_work(qm->wq, &qm->work);
+	else
+		schedule_work(&qm->work);
 
 	return IRQ_HANDLED;
 }
@@ -524,7 +535,7 @@
 	struct hisi_qm *qm = data;
 
 	if (readl(qm->io_base + QM_VF_EQ_INT_SOURCE))
-		return qm_irq_handler(irq, data);
+		return do_qm_irq(irq, data);
 
 	dev_err(&qm->pdev->dev, "invalid int source\n");
 	qm_db(qm, 0, QM_DOORBELL_CMD_EQ, qm->status.eq_head, 0);
@@ -542,7 +553,7 @@
 		return IRQ_NONE;
 
 	while (QM_AEQE_PHASE(aeqe) == qm->status.aeqc_phase) {
-		type = aeqe->dw0 >> QM_AEQE_TYPE_SHIFT;
+		type = le32_to_cpu(aeqe->dw0) >> QM_AEQE_TYPE_SHIFT;
 		if (type < ARRAY_SIZE(qm_fifo_overflow))
 			dev_err(&qm->pdev->dev, "%s overflow\n",
 				qm_fifo_overflow[type]);
@@ -646,7 +657,7 @@
 
 	qp_status->sq_tail = 0;
 	qp_status->cq_head = 0;
-	qp_status->cqc_phase = 1;
+	qp_status->cqc_phase = true;
 	qp_status->flags = 0;
 }
 
@@ -963,13 +974,11 @@
 
 static int qm_create_debugfs_file(struct hisi_qm *qm, enum qm_debug_file index)
 {
-	struct dentry *qm_d = qm->debug.qm_d, *tmp;
+	struct dentry *qm_d = qm->debug.qm_d;
 	struct debugfs_file *file = qm->debug.files + index;
 
-	tmp = debugfs_create_file(qm_debug_file_name[index], 0600, qm_d, file,
-				  &qm_debug_fops);
-	if (IS_ERR(tmp))
-		return -ENOENT;
+	debugfs_create_file(qm_debug_file_name[index], 0600, qm_d, file,
+			    &qm_debug_fops);
 
 	file->index = index;
 	mutex_init(&file->lock);
@@ -981,9 +990,6 @@
 static void qm_hw_error_init_v1(struct hisi_qm *qm, u32 ce, u32 nfe, u32 fe,
 				u32 msi)
 {
-	dev_info(&qm->pdev->dev,
-		 "QM v%d does not support hw error handle\n", qm->ver);
-
 	writel(QM_ABNORMAL_INT_MASK_VALUE, qm->io_base + QM_ABNORMAL_INT_MASK);
 }
 
@@ -1009,6 +1015,11 @@
 	writel(irq_unmask, qm->io_base + QM_ABNORMAL_INT_MASK);
 }
 
+static void qm_hw_error_uninit_v2(struct hisi_qm *qm)
+{
+	writel(QM_ABNORMAL_INT_MASK_VALUE, qm->io_base + QM_ABNORMAL_INT_MASK);
+}
+
 static void qm_log_hw_error(struct hisi_qm *qm, u32 error_status)
 {
 	const struct hisi_qm_hw_error *err = qm_hw_error;
@@ -1080,6 +1091,7 @@
 	.qm_db = qm_db_v2,
 	.get_irq_num = qm_get_irq_num_v2,
 	.hw_error_init = qm_hw_error_init_v2,
+	.hw_error_uninit = qm_hw_error_uninit_v2,
 	.hw_error_handle = qm_hw_error_handle_v2,
 };
 
@@ -1123,6 +1135,7 @@
 	}
 	set_bit(qp_id, qm->qp_bitmap);
 	qm->qp_array[qp_id] = qp;
+	qm->qp_in_used++;
 
 	write_unlock(&qm->qps_lock);
 
@@ -1144,20 +1157,9 @@
 
 	qp->qp_id = qp_id;
 	qp->alg_type = alg_type;
-	INIT_WORK(&qp->work, qm_qp_work_func);
-	qp->wq = alloc_workqueue("hisi_qm", WQ_UNBOUND | WQ_HIGHPRI |
-				 WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM, 0);
-	if (!qp->wq) {
-		ret = -EFAULT;
-		goto err_free_qp_mem;
-	}
 
 	return qp;
 
-err_free_qp_mem:
-	if (qm->use_dma_api)
-		dma_free_coherent(dev, qp->qdma.size, qp->qdma.va,
-				  qp->qdma.dma);
 err_clear_bit:
 	write_lock(&qm->qps_lock);
 	qm->qp_array[qp_id] = NULL;
@@ -1187,6 +1189,7 @@
 	write_lock(&qm->qps_lock);
 	qm->qp_array[qp->qp_id] = NULL;
 	clear_bit(qp->qp_id, qm->qp_bitmap);
+	qm->qp_in_used--;
 	write_unlock(&qm->qps_lock);
 
 	kfree(qp);
@@ -1218,14 +1221,14 @@
 
 	INIT_QC_COMMON(sqc, qp->sqe_dma, pasid);
 	if (ver == QM_HW_V1) {
-		sqc->dw3 = QM_MK_SQC_DW3_V1(0, 0, 0, qm->sqe_size);
-		sqc->w8 = QM_Q_DEPTH - 1;
+		sqc->dw3 = cpu_to_le32(QM_MK_SQC_DW3_V1(0, 0, 0, qm->sqe_size));
+		sqc->w8 = cpu_to_le16(QM_Q_DEPTH - 1);
 	} else if (ver == QM_HW_V2) {
-		sqc->dw3 = QM_MK_SQC_DW3_V2(qm->sqe_size);
+		sqc->dw3 = cpu_to_le32(QM_MK_SQC_DW3_V2(qm->sqe_size));
 		sqc->w8 = 0; /* rand_qc */
 	}
-	sqc->cq_num = qp_id;
-	sqc->w13 = QM_MK_SQC_W13(0, 1, qp->alg_type);
+	sqc->cq_num = cpu_to_le16(qp_id);
+	sqc->w13 = cpu_to_le16(QM_MK_SQC_W13(0, 1, qp->alg_type));
 
 	ret = qm_mb(qm, QM_MB_CMD_SQC, sqc_dma, qp_id, 0);
 	dma_unmap_single(dev, sqc_dma, sizeof(struct qm_sqc), DMA_TO_DEVICE);
@@ -1245,13 +1248,13 @@
 
 	INIT_QC_COMMON(cqc, qp->cqe_dma, pasid);
 	if (ver == QM_HW_V1) {
-		cqc->dw3 = QM_MK_CQC_DW3_V1(0, 0, 0, 4);
-		cqc->w8 = QM_Q_DEPTH - 1;
+		cqc->dw3 = cpu_to_le32(QM_MK_CQC_DW3_V1(0, 0, 0, 4));
+		cqc->w8 = cpu_to_le16(QM_Q_DEPTH - 1);
 	} else if (ver == QM_HW_V2) {
-		cqc->dw3 = QM_MK_CQC_DW3_V2(4);
+		cqc->dw3 = cpu_to_le32(QM_MK_CQC_DW3_V2(4));
 		cqc->w8 = 0;
 	}
-	cqc->dw6 = 1 << QM_CQ_PHASE_SHIFT | 1 << QM_CQ_FLAG_SHIFT;
+	cqc->dw6 = cpu_to_le32(1 << QM_CQ_PHASE_SHIFT | 1 << QM_CQ_FLAG_SHIFT);
 
 	ret = qm_mb(qm, QM_MB_CMD_CQC, cqc_dma, qp_id, 0);
 	dma_unmap_single(dev, cqc_dma, sizeof(struct qm_cqc), DMA_TO_DEVICE);
@@ -1392,6 +1395,24 @@
 }
 
 /**
+ * hisi_qm_get_free_qp_num() - Get free number of qp in qm.
+ * @qm: The qm which want to get free qp.
+ *
+ * This function return free number of qp in qm.
+ */
+int hisi_qm_get_free_qp_num(struct hisi_qm *qm)
+{
+	int ret;
+
+	read_lock(&qm->qps_lock);
+	ret = qm->qp_num - qm->qp_in_used;
+	read_unlock(&qm->qps_lock);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(hisi_qm_get_free_qp_num);
+
+/**
  * hisi_qm_init() - Initialize configures about qm.
  * @qm: The qm needing init.
  *
@@ -1454,8 +1475,10 @@
 	if (ret)
 		goto err_free_irq_vectors;
 
+	qm->qp_in_used = 0;
 	mutex_init(&qm->mailbox_lock);
 	rwlock_init(&qm->qps_lock);
+	INIT_WORK(&qm->work, qm_work_process);
 
 	dev_dbg(dev, "init qm %s with %s\n", pdev->is_physfn ? "pf" : "vf",
 		qm->use_dma_api ? "dma api" : "iommu api");
@@ -1560,8 +1583,8 @@
 
 	status->eq_head = 0;
 	status->aeq_head = 0;
-	status->eqc_phase = 1;
-	status->aeqc_phase = 1;
+	status->eqc_phase = true;
+	status->aeqc_phase = true;
 }
 
 static int qm_eq_ctx_cfg(struct hisi_qm *qm)
@@ -1585,11 +1608,11 @@
 		return -ENOMEM;
 	}
 
-	eqc->base_l = lower_32_bits(qm->eqe_dma);
-	eqc->base_h = upper_32_bits(qm->eqe_dma);
+	eqc->base_l = cpu_to_le32(lower_32_bits(qm->eqe_dma));
+	eqc->base_h = cpu_to_le32(upper_32_bits(qm->eqe_dma));
 	if (qm->ver == QM_HW_V1)
-		eqc->dw3 = QM_EQE_AEQE_SIZE;
-	eqc->dw6 = (QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT);
+		eqc->dw3 = cpu_to_le32(QM_EQE_AEQE_SIZE);
+	eqc->dw6 = cpu_to_le32((QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT));
 	ret = qm_mb(qm, QM_MB_CMD_EQC, eqc_dma, 0, 0);
 	dma_unmap_single(dev, eqc_dma, sizeof(struct qm_eqc), DMA_TO_DEVICE);
 	kfree(eqc);
@@ -1606,9 +1629,9 @@
 		return -ENOMEM;
 	}
 
-	aeqc->base_l = lower_32_bits(qm->aeqe_dma);
-	aeqc->base_h = upper_32_bits(qm->aeqe_dma);
-	aeqc->dw6 = (QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT);
+	aeqc->base_l = cpu_to_le32(lower_32_bits(qm->aeqe_dma));
+	aeqc->base_h = cpu_to_le32(upper_32_bits(qm->aeqe_dma));
+	aeqc->dw6 = cpu_to_le32((QM_Q_DEPTH - 1) | (1 << QM_EQC_PHASE_SHIFT));
 
 	ret = qm_mb(qm, QM_MB_CMD_AEQC, aeqc_dma, 0, 0);
 	dma_unmap_single(dev, aeqc_dma, sizeof(struct qm_aeqc), DMA_TO_DEVICE);
@@ -1780,12 +1803,10 @@
  */
 int hisi_qm_debug_init(struct hisi_qm *qm)
 {
-	struct dentry *qm_d, *qm_regs;
+	struct dentry *qm_d;
 	int i, ret;
 
 	qm_d = debugfs_create_dir("qm", qm->debug.debug_root);
-	if (IS_ERR(qm_d))
-		return -ENOENT;
 	qm->debug.qm_d = qm_d;
 
 	/* only show this in PF */
@@ -1796,12 +1817,7 @@
 				goto failed_to_create;
 			}
 
-	qm_regs = debugfs_create_file("qm_regs", 0444, qm->debug.qm_d, qm,
-				      &qm_regs_fops);
-	if (IS_ERR(qm_regs)) {
-		ret = -ENOENT;
-		goto failed_to_create;
-	}
+	debugfs_create_file("qm_regs", 0444, qm->debug.qm_d, qm, &qm_regs_fops);
 
 	return 0;
 
@@ -1840,36 +1856,28 @@
 }
 EXPORT_SYMBOL_GPL(hisi_qm_debug_regs_clear);
 
-/**
- * hisi_qm_hw_error_init() - Configure qm hardware error report method.
- * @qm: The qm which we want to configure.
- * @ce: Bit mask of correctable error configure.
- * @nfe: Bit mask of non-fatal error configure.
- * @fe: Bit mask of fatal error configure.
- * @msi: Bit mask of error reported by message signal interrupt.
- *
- * Hardware errors of qm can be reported either by RAS interrupts which will
- * be handled by UEFI and then PCIe AER or by device MSI. User can configure
- * each error to use either of above two methods. For RAS interrupts, we can
- * configure an error as one of correctable error, non-fatal error or
- * fatal error.
- *
- * Bits indicating errors can be configured to ce, nfe, fe and msi to enable
- * related report methods. Error report will be masked if related error bit
- * does not configure.
- */
-void hisi_qm_hw_error_init(struct hisi_qm *qm, u32 ce, u32 nfe, u32 fe,
-			   u32 msi)
+static void qm_hw_error_init(struct hisi_qm *qm)
 {
+	const struct hisi_qm_err_info *err_info = &qm->err_ini->err_info;
+
 	if (!qm->ops->hw_error_init) {
-		dev_err(&qm->pdev->dev, "QM version %d doesn't support hw error handling!\n",
-			qm->ver);
+		dev_err(&qm->pdev->dev, "QM doesn't support hw error handling!\n");
+		return;
+	}
+
+	qm->ops->hw_error_init(qm, err_info->ce, err_info->nfe,
+			       err_info->fe, err_info->msi);
+}
+
+static void qm_hw_error_uninit(struct hisi_qm *qm)
+{
+	if (!qm->ops->hw_error_uninit) {
+		dev_err(&qm->pdev->dev, "Unexpected QM hw error uninit!\n");
 		return;
 	}
 
-	qm->ops->hw_error_init(qm, ce, nfe, fe, msi);
+	qm->ops->hw_error_uninit(qm);
 }
-EXPORT_SYMBOL_GPL(hisi_qm_hw_error_init);
 
 /**
  * hisi_qm_hw_error_handle() - Handle qm non-fatal hardware errors.
@@ -1877,11 +1885,10 @@
  *
  * Accelerators use this function to handle qm non-fatal hardware errors.
  */
-int hisi_qm_hw_error_handle(struct hisi_qm *qm)
+pci_ers_result_t hisi_qm_hw_error_handle(struct hisi_qm *qm)
 {
 	if (!qm->ops->hw_error_handle) {
-		dev_err(&qm->pdev->dev, "QM version %d doesn't support hw error report!\n",
-			qm->ver);
+		dev_err(&qm->pdev->dev, "QM doesn't support hw error report!\n");
 		return PCI_ERS_RESULT_NONE;
 	}
 
@@ -1908,6 +1915,48 @@
 }
 EXPORT_SYMBOL_GPL(hisi_qm_get_hw_version);
 
+/**
+ * hisi_qm_dev_err_init() - Initialize device error configuration.
+ * @qm: The qm for which we want to do error initialization.
+ *
+ * Initialize QM and device error related configuration.
+ */
+void hisi_qm_dev_err_init(struct hisi_qm *qm)
+{
+	if (qm->fun_type == QM_HW_VF)
+		return;
+
+	qm_hw_error_init(qm);
+
+	if (!qm->err_ini->hw_err_enable) {
+		dev_err(&qm->pdev->dev, "Device doesn't support hw error init!\n");
+		return;
+	}
+	qm->err_ini->hw_err_enable(qm);
+}
+EXPORT_SYMBOL_GPL(hisi_qm_dev_err_init);
+
+/**
+ * hisi_qm_dev_err_uninit() - Uninitialize device error configuration.
+ * @qm: The qm for which we want to do error uninitialization.
+ *
+ * Uninitialize QM and device error related configuration.
+ */
+void hisi_qm_dev_err_uninit(struct hisi_qm *qm)
+{
+	if (qm->fun_type == QM_HW_VF)
+		return;
+
+	qm_hw_error_uninit(qm);
+
+	if (!qm->err_ini->hw_err_disable) {
+		dev_err(&qm->pdev->dev, "Unexpected device hw error uninit!\n");
+		return;
+	}
+	qm->err_ini->hw_err_disable(qm);
+}
+EXPORT_SYMBOL_GPL(hisi_qm_dev_err_uninit);
+
 MODULE_LICENSE("GPL v2");
 MODULE_AUTHOR("Zhou Wang <wangzhou1@hisilicon.com>");
 MODULE_DESCRIPTION("HiSilicon Accelerator queue manager driver");
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/qm.h
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/qm.h
@@ -40,6 +40,7 @@
 #define QM_AXI_M_CFG			0x1000ac
 #define AXI_M_CFG			0xffff
 #define QM_AXI_M_CFG_ENABLE		0x1000b0
+#define AM_CFG_SINGLE_PORT_MAX_TRANS	0x300014
 #define AXI_M_CFG_ENABLE		0xffffffff
 #define QM_PEH_AXUSER_CFG		0x1000cc
 #define QM_PEH_AXUSER_CFG_ENABLE	0x1000d0
@@ -75,6 +76,8 @@
 
 #define QM_Q_DEPTH			1024
 
+#define HISI_ACC_SGL_SGE_NR_MAX		255
+
 enum qp_state {
 	QP_STOP,
 };
@@ -123,6 +126,21 @@
 	unsigned long flags;
 };
 
+struct hisi_qm;
+
+struct hisi_qm_err_info {
+	u32 ce;
+	u32 nfe;
+	u32 fe;
+	u32 msi;
+};
+
+struct hisi_qm_err_ini {
+	void (*hw_err_enable)(struct hisi_qm *qm);
+	void (*hw_err_disable)(struct hisi_qm *qm);
+	struct hisi_qm_err_info err_info;
+};
+
 struct hisi_qm {
 	enum qm_hw_ver ver;
 	enum qm_fun_type fun_type;
@@ -132,6 +150,7 @@
 	u32 sqe_size;
 	u32 qp_base;
 	u32 qp_num;
+	u32 qp_in_used;
 	u32 ctrl_qp_num;
 
 	struct qm_dma qdma;
@@ -145,6 +164,7 @@
 	dma_addr_t aeqe_dma;
 
 	struct hisi_qm_status status;
+	const struct hisi_qm_err_ini *err_ini;
 
 	rwlock_t qps_lock;
 	unsigned long *qp_bitmap;
@@ -159,6 +179,8 @@
 	u32 error_mask;
 	u32 msi_mask;
 
+	struct workqueue_struct *wq;
+	struct work_struct work;
 	bool use_dma_api;
 };
 
@@ -189,8 +211,6 @@
 	struct hisi_qp_ops *hw_ops;
 	void *qp_ctx;
 	void (*req_cb)(struct hisi_qp *qp, void *data);
-	struct work_struct work;
-	struct workqueue_struct *wq;
 
 	struct hisi_qm *qm;
 };
@@ -204,12 +224,24 @@
 int hisi_qm_stop_qp(struct hisi_qp *qp);
 void hisi_qm_release_qp(struct hisi_qp *qp);
 int hisi_qp_send(struct hisi_qp *qp, const void *msg);
+int hisi_qm_get_free_qp_num(struct hisi_qm *qm);
 int hisi_qm_get_vft(struct hisi_qm *qm, u32 *base, u32 *number);
 int hisi_qm_set_vft(struct hisi_qm *qm, u32 fun_num, u32 base, u32 number);
 int hisi_qm_debug_init(struct hisi_qm *qm);
-void hisi_qm_hw_error_init(struct hisi_qm *qm, u32 ce, u32 nfe, u32 fe,
-			   u32 msi);
-int hisi_qm_hw_error_handle(struct hisi_qm *qm);
+pci_ers_result_t hisi_qm_hw_error_handle(struct hisi_qm *qm);
 enum qm_hw_ver hisi_qm_get_hw_version(struct pci_dev *pdev);
 void hisi_qm_debug_regs_clear(struct hisi_qm *qm);
+void hisi_qm_dev_err_init(struct hisi_qm *qm);
+void hisi_qm_dev_err_uninit(struct hisi_qm *qm);
+
+struct hisi_acc_sgl_pool;
+struct hisi_acc_hw_sgl *hisi_acc_sg_buf_map_to_hw_sgl(struct device *dev,
+	struct scatterlist *sgl, struct hisi_acc_sgl_pool *pool,
+	u32 index, dma_addr_t *hw_sgl_dma);
+void hisi_acc_sg_buf_unmap(struct device *dev, struct scatterlist *sgl,
+			   struct hisi_acc_hw_sgl *hw_sgl);
+struct hisi_acc_sgl_pool *hisi_acc_create_sgl_pool(struct device *dev,
+						   u32 count, u32 sge_nr);
+void hisi_acc_free_sgl_pool(struct device *dev,
+			    struct hisi_acc_sgl_pool *pool);
 #endif
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec/sec_algs.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec/sec_algs.c
@@ -175,7 +175,8 @@
 				     dma_addr_t *psec_sgl,
 				     struct scatterlist *sgl,
 				     int count,
-				     struct sec_dev_info *info)
+				     struct sec_dev_info *info,
+				     gfp_t gfp)
 {
 	struct sec_hw_sgl *sgl_current = NULL;
 	struct sec_hw_sgl *sgl_next;
@@ -190,7 +191,7 @@
 		sge_index = i % SEC_MAX_SGE_NUM;
 		if (sge_index == 0) {
 			sgl_next = dma_pool_zalloc(info->hw_sgl_pool,
-						   GFP_KERNEL, &sgl_next_dma);
+						   gfp, &sgl_next_dma);
 			if (!sgl_next) {
 				ret = -ENOMEM;
 				goto err_free_hw_sgls;
@@ -448,7 +449,7 @@
 		 */
 	}
 
-	mutex_lock(&ctx->queue->queuelock);
+	spin_lock_bh(&ctx->queue->queuelock);
 	/* Put the IV in place for chained cases */
 	switch (ctx->cipher_alg) {
 	case SEC_C_AES_CBC_128:
@@ -508,7 +509,7 @@
 			list_del(&backlog_req->backlog_head);
 		}
 	}
-	mutex_unlock(&ctx->queue->queuelock);
+	spin_unlock_bh(&ctx->queue->queuelock);
 
 	mutex_lock(&sec_req->lock);
 	list_del(&sec_req_el->head);
@@ -545,14 +546,14 @@
 }
 
 static int sec_alg_alloc_and_calc_split_sizes(int length, size_t **split_sizes,
-					      int *steps)
+					      int *steps, gfp_t gfp)
 {
 	size_t *sizes;
 	int i;
 
 	/* Split into suitable sized blocks */
 	*steps = roundup(length, SEC_REQ_LIMIT) / SEC_REQ_LIMIT;
-	sizes = kcalloc(*steps, sizeof(*sizes), GFP_KERNEL);
+	sizes = kcalloc(*steps, sizeof(*sizes), gfp);
 	if (!sizes)
 		return -ENOMEM;
 
@@ -568,7 +569,7 @@
 				int steps, struct scatterlist ***splits,
 				int **splits_nents,
 				int sgl_len_in,
-				struct device *dev)
+				struct device *dev, gfp_t gfp)
 {
 	int ret, count;
 
@@ -576,12 +577,12 @@
 	if (!count)
 		return -EINVAL;
 
-	*splits = kcalloc(steps, sizeof(struct scatterlist *), GFP_KERNEL);
+	*splits = kcalloc(steps, sizeof(struct scatterlist *), gfp);
 	if (!*splits) {
 		ret = -ENOMEM;
 		goto err_unmap_sg;
 	}
-	*splits_nents = kcalloc(steps, sizeof(int), GFP_KERNEL);
+	*splits_nents = kcalloc(steps, sizeof(int), gfp);
 	if (!*splits_nents) {
 		ret = -ENOMEM;
 		goto err_free_splits;
@@ -589,7 +590,7 @@
 
 	/* output the scatter list before and after this */
 	ret = sg_split(sgl, count, 0, steps, split_sizes,
-		       *splits, *splits_nents, GFP_KERNEL);
+		       *splits, *splits_nents, gfp);
 	if (ret) {
 		ret = -ENOMEM;
 		goto err_free_splits_nents;
@@ -630,13 +631,13 @@
 			   int el_size, bool different_dest,
 			   struct scatterlist *sgl_in, int n_ents_in,
 			   struct scatterlist *sgl_out, int n_ents_out,
-			   struct sec_dev_info *info)
+			   struct sec_dev_info *info, gfp_t gfp)
 {
 	struct sec_request_el *el;
 	struct sec_bd_info *req;
 	int ret;
 
-	el = kzalloc(sizeof(*el), GFP_KERNEL);
+	el = kzalloc(sizeof(*el), gfp);
 	if (!el)
 		return ERR_PTR(-ENOMEM);
 	el->el_length = el_size;
@@ -668,7 +669,7 @@
 	el->sgl_in = sgl_in;
 
 	ret = sec_alloc_and_fill_hw_sgl(&el->in, &el->dma_in, el->sgl_in,
-					n_ents_in, info);
+					n_ents_in, info, gfp);
 	if (ret)
 		goto err_free_el;
 
@@ -679,7 +680,7 @@
 		el->sgl_out = sgl_out;
 		ret = sec_alloc_and_fill_hw_sgl(&el->out, &el->dma_out,
 						el->sgl_out,
-						n_ents_out, info);
+						n_ents_out, info, gfp);
 		if (ret)
 			goto err_free_hw_sgl_in;
 
@@ -720,6 +721,7 @@
 	int *splits_out_nents = NULL;
 	struct sec_request_el *el, *temp;
 	bool split = skreq->src != skreq->dst;
+	gfp_t gfp = skreq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL : GFP_ATOMIC;
 
 	mutex_init(&sec_req->lock);
 	sec_req->req_base = &skreq->base;
@@ -728,13 +730,13 @@
 	sec_req->len_in = sg_nents(skreq->src);
 
 	ret = sec_alg_alloc_and_calc_split_sizes(skreq->cryptlen, &split_sizes,
-						 &steps);
+						 &steps, gfp);
 	if (ret)
 		return ret;
 	sec_req->num_elements = steps;
 	ret = sec_map_and_split_sg(skreq->src, split_sizes, steps, &splits_in,
 				   &splits_in_nents, sec_req->len_in,
-				   info->dev);
+				   info->dev, gfp);
 	if (ret)
 		goto err_free_split_sizes;
 
@@ -742,7 +744,7 @@
 		sec_req->len_out = sg_nents(skreq->dst);
 		ret = sec_map_and_split_sg(skreq->dst, split_sizes, steps,
 					   &splits_out, &splits_out_nents,
-					   sec_req->len_out, info->dev);
+					   sec_req->len_out, info->dev, gfp);
 		if (ret)
 			goto err_unmap_in_sg;
 	}
@@ -775,7 +777,7 @@
 					       splits_in[i], splits_in_nents[i],
 					       split ? splits_out[i] : NULL,
 					       split ? splits_out_nents[i] : 0,
-					       info);
+					       info, gfp);
 		if (IS_ERR(el)) {
 			ret = PTR_ERR(el);
 			goto err_free_elements;
@@ -796,7 +798,7 @@
 	 */
 
 	/* Grab a big lock for a long time to avoid concurrency issues */
-	mutex_lock(&queue->queuelock);
+	spin_lock_bh(&queue->queuelock);
 
 	/*
 	 * Can go on to queue if we have space in either:
@@ -812,15 +814,15 @@
 		ret = -EBUSY;
 		if ((skreq->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG)) {
 			list_add_tail(&sec_req->backlog_head, &ctx->backlog);
-			mutex_unlock(&queue->queuelock);
+			spin_unlock_bh(&queue->queuelock);
 			goto out;
 		}
 
-		mutex_unlock(&queue->queuelock);
+		spin_unlock_bh(&queue->queuelock);
 		goto err_free_elements;
 	}
 	ret = sec_send_request(sec_req, queue);
-	mutex_unlock(&queue->queuelock);
+	spin_unlock_bh(&queue->queuelock);
 	if (ret)
 		goto err_free_elements;
 
@@ -879,7 +881,7 @@
 	if (IS_ERR(ctx->queue))
 		return PTR_ERR(ctx->queue);
 
-	mutex_init(&ctx->queue->queuelock);
+	spin_lock_init(&ctx->queue->queuelock);
 	ctx->queue->havesoftqueue = false;
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec/sec_drv.h
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec/sec_drv.h
@@ -347,7 +347,7 @@
 	DECLARE_BITMAP(unprocessed, SEC_QUEUE_LEN);
 	DECLARE_KFIFO_PTR(softqueue, typeof(struct sec_request_el *));
 	bool havesoftqueue;
-	struct mutex queuelock;
+	spinlock_t queuelock;
 	void *shadow[SEC_QUEUE_LEN];
 };
 
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec2/Makefile
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec2/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_CRYPTO_DEV_HISI_SEC2) += hisi_sec2.o
+hisi_sec2-objs = sec_main.o sec_crypto.o
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec.h
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec2/sec.h
@@ -0,0 +1,175 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#ifndef __HISI_SEC_V2_H
+#define __HISI_SEC_V2_H
+
+#include <linux/list.h>
+
+#include "../qm.h"
+#include "sec_crypto.h"
+
+/* Algorithm resource per hardware SEC queue */
+struct sec_alg_res {
+	u8 *c_ivin;
+	dma_addr_t c_ivin_dma;
+	u8 *out_mac;
+	dma_addr_t out_mac_dma;
+};
+
+/* Cipher request of SEC private */
+struct sec_cipher_req {
+	struct hisi_acc_hw_sgl *c_in;
+	dma_addr_t c_in_dma;
+	struct hisi_acc_hw_sgl *c_out;
+	dma_addr_t c_out_dma;
+	struct skcipher_request *sk_req;
+	u32 c_len;
+	bool encrypt;
+};
+
+struct sec_aead_req {
+	u8 *out_mac;
+	dma_addr_t out_mac_dma;
+	struct aead_request *aead_req;
+};
+
+/* SEC request of Crypto */
+struct sec_req {
+	struct sec_sqe sec_sqe;
+	struct sec_ctx *ctx;
+	struct sec_qp_ctx *qp_ctx;
+
+	struct sec_cipher_req c_req;
+	struct sec_aead_req aead_req;
+
+	int err_type;
+	int req_id;
+
+	/* Status of the SEC request */
+	bool fake_busy;
+};
+
+/**
+ * struct sec_req_op - Operations for SEC request
+ * @buf_map: DMA map the SGL buffers of the request
+ * @buf_unmap: DMA unmap the SGL buffers of the request
+ * @bd_fill: Fill the SEC queue BD
+ * @bd_send: Send the SEC BD into the hardware queue
+ * @callback: Call back for the request
+ * @process: Main processing logic of Skcipher
+ */
+struct sec_req_op {
+	int (*buf_map)(struct sec_ctx *ctx, struct sec_req *req);
+	void (*buf_unmap)(struct sec_ctx *ctx, struct sec_req *req);
+	void (*do_transfer)(struct sec_ctx *ctx, struct sec_req *req);
+	int (*bd_fill)(struct sec_ctx *ctx, struct sec_req *req);
+	int (*bd_send)(struct sec_ctx *ctx, struct sec_req *req);
+	void (*callback)(struct sec_ctx *ctx, struct sec_req *req, int err);
+	int (*process)(struct sec_ctx *ctx, struct sec_req *req);
+};
+
+/* SEC auth context */
+struct sec_auth_ctx {
+	dma_addr_t a_key_dma;
+	u8 *a_key;
+	u8 a_key_len;
+	u8 mac_len;
+	u8 a_alg;
+	struct crypto_shash *hash_tfm;
+};
+
+/* SEC cipher context which cipher's relatives */
+struct sec_cipher_ctx {
+	u8 *c_key;
+	dma_addr_t c_key_dma;
+	sector_t iv_offset;
+	u32 c_gran_size;
+	u32 ivsize;
+	u8 c_mode;
+	u8 c_alg;
+	u8 c_key_len;
+};
+
+/* SEC queue context which defines queue's relatives */
+struct sec_qp_ctx {
+	struct hisi_qp *qp;
+	struct sec_req *req_list[QM_Q_DEPTH];
+	struct idr req_idr;
+	struct sec_alg_res res[QM_Q_DEPTH];
+	struct sec_ctx *ctx;
+	struct mutex req_lock;
+	struct hisi_acc_sgl_pool *c_in_pool;
+	struct hisi_acc_sgl_pool *c_out_pool;
+	atomic_t pending_reqs;
+};
+
+enum sec_alg_type {
+	SEC_SKCIPHER,
+	SEC_AEAD
+};
+
+/* SEC Crypto TFM context which defines queue and cipher .etc relatives */
+struct sec_ctx {
+	struct sec_qp_ctx *qp_ctx;
+	struct sec_dev *sec;
+	const struct sec_req_op *req_op;
+
+	/* Half queues for encipher, and half for decipher */
+	u32 hlf_q_num;
+
+	/* Threshold for fake busy, trigger to return -EBUSY to user */
+	u32 fake_req_limit;
+
+	/* Currrent cyclic index to select a queue for encipher */
+	atomic_t enc_qcyclic;
+
+	 /* Currrent cyclic index to select a queue for decipher */
+	atomic_t dec_qcyclic;
+
+	enum sec_alg_type alg_type;
+	struct sec_cipher_ctx c_ctx;
+	struct sec_auth_ctx a_ctx;
+};
+
+enum sec_endian {
+	SEC_LE = 0,
+	SEC_32BE,
+	SEC_64BE
+};
+
+enum sec_debug_file_index {
+	SEC_CURRENT_QM,
+	SEC_CLEAR_ENABLE,
+	SEC_DEBUG_FILE_NUM,
+};
+
+struct sec_debug_file {
+	enum sec_debug_file_index index;
+	spinlock_t lock;
+	struct hisi_qm *qm;
+};
+
+struct sec_dfx {
+	atomic64_t send_cnt;
+	atomic64_t recv_cnt;
+};
+
+struct sec_debug {
+	struct sec_dfx dfx;
+	struct sec_debug_file files[SEC_DEBUG_FILE_NUM];
+};
+
+struct sec_dev {
+	struct hisi_qm qm;
+	struct list_head list;
+	struct sec_debug debug;
+	u32 ctx_q_num;
+	u32 num_vfs;
+	unsigned long status;
+};
+
+struct sec_dev *sec_find_device(int node);
+int sec_register_to_crypto(void);
+void sec_unregister_from_crypto(void);
+#endif
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec2/sec_crypto.c
@@ -0,0 +1,1446 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#include <crypto/aes.h>
+#include <crypto/algapi.h>
+#include <crypto/authenc.h>
+#include <crypto/des.h>
+#include <crypto/hash.h>
+#include <crypto/internal/aead.h>
+#include <crypto/sha.h>
+#include <crypto/skcipher.h>
+#include <crypto/xts.h>
+#include <linux/crypto.h>
+#include <linux/dma-mapping.h>
+#include <linux/idr.h>
+
+#include "sec.h"
+#include "sec_crypto.h"
+
+#define SEC_PRIORITY		4001
+#define SEC_XTS_MIN_KEY_SIZE	(2 * AES_MIN_KEY_SIZE)
+#define SEC_XTS_MAX_KEY_SIZE	(2 * AES_MAX_KEY_SIZE)
+#define SEC_DES3_2KEY_SIZE	(2 * DES_KEY_SIZE)
+#define SEC_DES3_3KEY_SIZE	(3 * DES_KEY_SIZE)
+
+/* SEC sqe(bd) bit operational relative MACRO */
+#define SEC_DE_OFFSET		1
+#define SEC_CIPHER_OFFSET	4
+#define SEC_SCENE_OFFSET	3
+#define SEC_DST_SGL_OFFSET	2
+#define SEC_SRC_SGL_OFFSET	7
+#define SEC_CKEY_OFFSET		9
+#define SEC_CMODE_OFFSET	12
+#define SEC_AKEY_OFFSET         5
+#define SEC_AEAD_ALG_OFFSET     11
+#define SEC_AUTH_OFFSET		6
+
+#define SEC_FLAG_OFFSET		7
+#define SEC_FLAG_MASK		0x0780
+#define SEC_TYPE_MASK		0x0F
+#define SEC_DONE_MASK		0x0001
+
+#define SEC_TOTAL_IV_SZ		(SEC_IV_SIZE * QM_Q_DEPTH)
+#define SEC_SGL_SGE_NR		128
+#define SEC_CTX_DEV(ctx)	(&(ctx)->sec->qm.pdev->dev)
+#define SEC_CIPHER_AUTH		0xfe
+#define SEC_AUTH_CIPHER		0x1
+#define SEC_MAX_MAC_LEN		64
+#define SEC_TOTAL_MAC_SZ	(SEC_MAX_MAC_LEN * QM_Q_DEPTH)
+#define SEC_SQE_LEN_RATE	4
+#define SEC_SQE_CFLAG		2
+#define SEC_SQE_AEAD_FLAG	3
+#define SEC_SQE_DONE		0x1
+
+static atomic_t sec_active_devs;
+
+/* Get an en/de-cipher queue cyclically to balance load over queues of TFM */
+static inline int sec_alloc_queue_id(struct sec_ctx *ctx, struct sec_req *req)
+{
+	if (req->c_req.encrypt)
+		return (u32)atomic_inc_return(&ctx->enc_qcyclic) %
+				 ctx->hlf_q_num;
+
+	return (u32)atomic_inc_return(&ctx->dec_qcyclic) % ctx->hlf_q_num +
+				 ctx->hlf_q_num;
+}
+
+static inline void sec_free_queue_id(struct sec_ctx *ctx, struct sec_req *req)
+{
+	if (req->c_req.encrypt)
+		atomic_dec(&ctx->enc_qcyclic);
+	else
+		atomic_dec(&ctx->dec_qcyclic);
+}
+
+static int sec_alloc_req_id(struct sec_req *req, struct sec_qp_ctx *qp_ctx)
+{
+	int req_id;
+
+	mutex_lock(&qp_ctx->req_lock);
+
+	req_id = idr_alloc_cyclic(&qp_ctx->req_idr, NULL,
+				  0, QM_Q_DEPTH, GFP_ATOMIC);
+	mutex_unlock(&qp_ctx->req_lock);
+	if (unlikely(req_id < 0)) {
+		dev_err(SEC_CTX_DEV(req->ctx), "alloc req id fail!\n");
+		return req_id;
+	}
+
+	req->qp_ctx = qp_ctx;
+	qp_ctx->req_list[req_id] = req;
+	return req_id;
+}
+
+static void sec_free_req_id(struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+	int req_id = req->req_id;
+
+	if (unlikely(req_id < 0 || req_id >= QM_Q_DEPTH)) {
+		dev_err(SEC_CTX_DEV(req->ctx), "free request id invalid!\n");
+		return;
+	}
+
+	qp_ctx->req_list[req_id] = NULL;
+	req->qp_ctx = NULL;
+
+	mutex_lock(&qp_ctx->req_lock);
+	idr_remove(&qp_ctx->req_idr, req_id);
+	mutex_unlock(&qp_ctx->req_lock);
+}
+
+static int sec_aead_verify(struct sec_req *req, struct sec_qp_ctx *qp_ctx)
+{
+	struct aead_request *aead_req = req->aead_req.aead_req;
+	struct crypto_aead *tfm = crypto_aead_reqtfm(aead_req);
+	u8 *mac_out = qp_ctx->res[req->req_id].out_mac;
+	size_t authsize = crypto_aead_authsize(tfm);
+	u8 *mac = mac_out + SEC_MAX_MAC_LEN;
+	struct scatterlist *sgl = aead_req->src;
+	size_t sz;
+
+	sz = sg_pcopy_to_buffer(sgl, sg_nents(sgl), mac, authsize,
+				aead_req->cryptlen + aead_req->assoclen -
+				authsize);
+	if (unlikely(sz != authsize || memcmp(mac_out, mac, sz))) {
+		dev_err(SEC_CTX_DEV(req->ctx), "aead verify failure!\n");
+		return -EBADMSG;
+	}
+
+	return 0;
+}
+
+static void sec_req_cb(struct hisi_qp *qp, void *resp)
+{
+	struct sec_qp_ctx *qp_ctx = qp->qp_ctx;
+	struct sec_sqe *bd = resp;
+	struct sec_ctx *ctx;
+	struct sec_req *req;
+	u16 done, flag;
+	int err = 0;
+	u8 type;
+
+	type = bd->type_cipher_auth & SEC_TYPE_MASK;
+	if (unlikely(type != SEC_BD_TYPE2)) {
+		pr_err("err bd type [%d]\n", type);
+		return;
+	}
+
+	req = qp_ctx->req_list[le16_to_cpu(bd->type2.tag)];
+	req->err_type = bd->type2.error_type;
+	ctx = req->ctx;
+	done = le16_to_cpu(bd->type2.done_flag) & SEC_DONE_MASK;
+	flag = (le16_to_cpu(bd->type2.done_flag) &
+		SEC_FLAG_MASK) >> SEC_FLAG_OFFSET;
+	if (unlikely(req->err_type || done != SEC_SQE_DONE ||
+	    (ctx->alg_type == SEC_SKCIPHER && flag != SEC_SQE_CFLAG) ||
+	    (ctx->alg_type == SEC_AEAD && flag != SEC_SQE_AEAD_FLAG))) {
+		dev_err(SEC_CTX_DEV(ctx),
+			"err_type[%d],done[%d],flag[%d]\n",
+			req->err_type, done, flag);
+		err = -EIO;
+	}
+
+	if (ctx->alg_type == SEC_AEAD && !req->c_req.encrypt)
+		err = sec_aead_verify(req, qp_ctx);
+
+	atomic64_inc(&ctx->sec->debug.dfx.recv_cnt);
+
+	ctx->req_op->buf_unmap(ctx, req);
+
+	ctx->req_op->callback(ctx, req, err);
+}
+
+static int sec_bd_send(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+	int ret;
+
+	mutex_lock(&qp_ctx->req_lock);
+	ret = hisi_qp_send(qp_ctx->qp, &req->sec_sqe);
+	mutex_unlock(&qp_ctx->req_lock);
+	atomic64_inc(&ctx->sec->debug.dfx.send_cnt);
+
+	if (unlikely(ret == -EBUSY))
+		return -ENOBUFS;
+
+	if (!ret) {
+		if (req->fake_busy)
+			ret = -EBUSY;
+		else
+			ret = -EINPROGRESS;
+	}
+
+	return ret;
+}
+
+/* Get DMA memory resources */
+static int sec_alloc_civ_resource(struct device *dev, struct sec_alg_res *res)
+{
+	int i;
+
+	res->c_ivin = dma_alloc_coherent(dev, SEC_TOTAL_IV_SZ,
+					 &res->c_ivin_dma, GFP_KERNEL);
+	if (!res->c_ivin)
+		return -ENOMEM;
+
+	for (i = 1; i < QM_Q_DEPTH; i++) {
+		res[i].c_ivin_dma = res->c_ivin_dma + i * SEC_IV_SIZE;
+		res[i].c_ivin = res->c_ivin + i * SEC_IV_SIZE;
+	}
+
+	return 0;
+}
+
+static void sec_free_civ_resource(struct device *dev, struct sec_alg_res *res)
+{
+	if (res->c_ivin)
+		dma_free_coherent(dev, SEC_TOTAL_IV_SZ,
+				  res->c_ivin, res->c_ivin_dma);
+}
+
+static int sec_alloc_mac_resource(struct device *dev, struct sec_alg_res *res)
+{
+	int i;
+
+	res->out_mac = dma_alloc_coherent(dev, SEC_TOTAL_MAC_SZ << 1,
+					  &res->out_mac_dma, GFP_KERNEL);
+	if (!res->out_mac)
+		return -ENOMEM;
+
+	for (i = 1; i < QM_Q_DEPTH; i++) {
+		res[i].out_mac_dma = res->out_mac_dma +
+				     i * (SEC_MAX_MAC_LEN << 1);
+		res[i].out_mac = res->out_mac + i * (SEC_MAX_MAC_LEN << 1);
+	}
+
+	return 0;
+}
+
+static void sec_free_mac_resource(struct device *dev, struct sec_alg_res *res)
+{
+	if (res->out_mac)
+		dma_free_coherent(dev, SEC_TOTAL_MAC_SZ << 1,
+				  res->out_mac, res->out_mac_dma);
+}
+
+static int sec_alg_resource_alloc(struct sec_ctx *ctx,
+				  struct sec_qp_ctx *qp_ctx)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_alg_res *res = qp_ctx->res;
+	int ret;
+
+	ret = sec_alloc_civ_resource(dev, res);
+	if (ret)
+		return ret;
+
+	if (ctx->alg_type == SEC_AEAD) {
+		ret = sec_alloc_mac_resource(dev, res);
+		if (ret)
+			goto get_fail;
+	}
+
+	return 0;
+get_fail:
+	sec_free_civ_resource(dev, res);
+
+	return ret;
+}
+
+static void sec_alg_resource_free(struct sec_ctx *ctx,
+				  struct sec_qp_ctx *qp_ctx)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+
+	sec_free_civ_resource(dev, qp_ctx->res);
+
+	if (ctx->alg_type == SEC_AEAD)
+		sec_free_mac_resource(dev, qp_ctx->res);
+}
+
+static int sec_create_qp_ctx(struct hisi_qm *qm, struct sec_ctx *ctx,
+			     int qp_ctx_id, int alg_type)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_qp_ctx *qp_ctx;
+	struct hisi_qp *qp;
+	int ret = -ENOMEM;
+
+	qp = hisi_qm_create_qp(qm, alg_type);
+	if (IS_ERR(qp))
+		return PTR_ERR(qp);
+
+	qp_ctx = &ctx->qp_ctx[qp_ctx_id];
+	qp->req_type = 0;
+	qp->qp_ctx = qp_ctx;
+	qp->req_cb = sec_req_cb;
+	qp_ctx->qp = qp;
+	qp_ctx->ctx = ctx;
+
+	mutex_init(&qp_ctx->req_lock);
+	atomic_set(&qp_ctx->pending_reqs, 0);
+	idr_init(&qp_ctx->req_idr);
+
+	qp_ctx->c_in_pool = hisi_acc_create_sgl_pool(dev, QM_Q_DEPTH,
+						     SEC_SGL_SGE_NR);
+	if (IS_ERR(qp_ctx->c_in_pool)) {
+		dev_err(dev, "fail to create sgl pool for input!\n");
+		goto err_destroy_idr;
+	}
+
+	qp_ctx->c_out_pool = hisi_acc_create_sgl_pool(dev, QM_Q_DEPTH,
+						      SEC_SGL_SGE_NR);
+	if (IS_ERR(qp_ctx->c_out_pool)) {
+		dev_err(dev, "fail to create sgl pool for output!\n");
+		goto err_free_c_in_pool;
+	}
+
+	ret = sec_alg_resource_alloc(ctx, qp_ctx);
+	if (ret)
+		goto err_free_c_out_pool;
+
+	ret = hisi_qm_start_qp(qp, 0);
+	if (ret < 0)
+		goto err_queue_free;
+
+	return 0;
+
+err_queue_free:
+	sec_alg_resource_free(ctx, qp_ctx);
+err_free_c_out_pool:
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_out_pool);
+err_free_c_in_pool:
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_in_pool);
+err_destroy_idr:
+	idr_destroy(&qp_ctx->req_idr);
+	hisi_qm_release_qp(qp);
+
+	return ret;
+}
+
+static void sec_release_qp_ctx(struct sec_ctx *ctx,
+			       struct sec_qp_ctx *qp_ctx)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+
+	hisi_qm_stop_qp(qp_ctx->qp);
+	sec_alg_resource_free(ctx, qp_ctx);
+
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_out_pool);
+	hisi_acc_free_sgl_pool(dev, qp_ctx->c_in_pool);
+
+	idr_destroy(&qp_ctx->req_idr);
+	hisi_qm_release_qp(qp_ctx->qp);
+}
+
+static int sec_ctx_base_init(struct sec_ctx *ctx)
+{
+	struct sec_dev *sec;
+	int i, ret;
+
+	sec = sec_find_device(cpu_to_node(smp_processor_id()));
+	if (!sec) {
+		pr_err("Can not find proper Hisilicon SEC device!\n");
+		return -ENODEV;
+	}
+	ctx->sec = sec;
+	ctx->hlf_q_num = sec->ctx_q_num >> 1;
+
+	/* Half of queue depth is taken as fake requests limit in the queue. */
+	ctx->fake_req_limit = QM_Q_DEPTH >> 1;
+	ctx->qp_ctx = kcalloc(sec->ctx_q_num, sizeof(struct sec_qp_ctx),
+			      GFP_KERNEL);
+	if (!ctx->qp_ctx)
+		return -ENOMEM;
+
+	for (i = 0; i < sec->ctx_q_num; i++) {
+		ret = sec_create_qp_ctx(&sec->qm, ctx, i, 0);
+		if (ret)
+			goto err_sec_release_qp_ctx;
+	}
+
+	return 0;
+err_sec_release_qp_ctx:
+	for (i = i - 1; i >= 0; i--)
+		sec_release_qp_ctx(ctx, &ctx->qp_ctx[i]);
+
+	kfree(ctx->qp_ctx);
+	return ret;
+}
+
+static void sec_ctx_base_uninit(struct sec_ctx *ctx)
+{
+	int i;
+
+	for (i = 0; i < ctx->sec->ctx_q_num; i++)
+		sec_release_qp_ctx(ctx, &ctx->qp_ctx[i]);
+
+	kfree(ctx->qp_ctx);
+}
+
+static int sec_cipher_init(struct sec_ctx *ctx)
+{
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+
+	c_ctx->c_key = dma_alloc_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+					  &c_ctx->c_key_dma, GFP_KERNEL);
+	if (!c_ctx->c_key)
+		return -ENOMEM;
+
+	return 0;
+}
+
+static void sec_cipher_uninit(struct sec_ctx *ctx)
+{
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+
+	memzero_explicit(c_ctx->c_key, SEC_MAX_KEY_SIZE);
+	dma_free_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+			  c_ctx->c_key, c_ctx->c_key_dma);
+}
+
+static int sec_auth_init(struct sec_ctx *ctx)
+{
+	struct sec_auth_ctx *a_ctx = &ctx->a_ctx;
+
+	a_ctx->a_key = dma_alloc_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+					  &a_ctx->a_key_dma, GFP_KERNEL);
+	if (!a_ctx->a_key)
+		return -ENOMEM;
+
+	return 0;
+}
+
+static void sec_auth_uninit(struct sec_ctx *ctx)
+{
+	struct sec_auth_ctx *a_ctx = &ctx->a_ctx;
+
+	memzero_explicit(a_ctx->a_key, SEC_MAX_KEY_SIZE);
+	dma_free_coherent(SEC_CTX_DEV(ctx), SEC_MAX_KEY_SIZE,
+			  a_ctx->a_key, a_ctx->a_key_dma);
+}
+
+static int sec_skcipher_init(struct crypto_skcipher *tfm)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+	int ret;
+
+	ctx = crypto_skcipher_ctx(tfm);
+	ctx->alg_type = SEC_SKCIPHER;
+	crypto_skcipher_set_reqsize(tfm, sizeof(struct sec_req));
+	ctx->c_ctx.ivsize = crypto_skcipher_ivsize(tfm);
+	if (ctx->c_ctx.ivsize > SEC_IV_SIZE) {
+		dev_err(SEC_CTX_DEV(ctx), "get error skcipher iv size!\n");
+		return -EINVAL;
+	}
+
+	ret = sec_ctx_base_init(ctx);
+	if (ret)
+		return ret;
+
+	ret = sec_cipher_init(ctx);
+	if (ret)
+		goto err_cipher_init;
+
+	return 0;
+err_cipher_init:
+	sec_ctx_base_uninit(ctx);
+
+	return ret;
+}
+
+static void sec_skcipher_uninit(struct crypto_skcipher *tfm)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+
+	sec_cipher_uninit(ctx);
+	sec_ctx_base_uninit(ctx);
+}
+
+static int sec_skcipher_3des_setkey(struct sec_cipher_ctx *c_ctx,
+				    const u32 keylen,
+				    const enum sec_cmode c_mode)
+{
+	switch (keylen) {
+	case SEC_DES3_2KEY_SIZE:
+		c_ctx->c_key_len = SEC_CKEY_3DES_2KEY;
+		break;
+	case SEC_DES3_3KEY_SIZE:
+		c_ctx->c_key_len = SEC_CKEY_3DES_3KEY;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int sec_skcipher_aes_sm4_setkey(struct sec_cipher_ctx *c_ctx,
+				       const u32 keylen,
+				       const enum sec_cmode c_mode)
+{
+	if (c_mode == SEC_CMODE_XTS) {
+		switch (keylen) {
+		case SEC_XTS_MIN_KEY_SIZE:
+			c_ctx->c_key_len = SEC_CKEY_128BIT;
+			break;
+		case SEC_XTS_MAX_KEY_SIZE:
+			c_ctx->c_key_len = SEC_CKEY_256BIT;
+			break;
+		default:
+			pr_err("hisi_sec2: xts mode key error!\n");
+			return -EINVAL;
+		}
+	} else {
+		switch (keylen) {
+		case AES_KEYSIZE_128:
+			c_ctx->c_key_len = SEC_CKEY_128BIT;
+			break;
+		case AES_KEYSIZE_192:
+			c_ctx->c_key_len = SEC_CKEY_192BIT;
+			break;
+		case AES_KEYSIZE_256:
+			c_ctx->c_key_len = SEC_CKEY_256BIT;
+			break;
+		default:
+			pr_err("hisi_sec2: aes key error!\n");
+			return -EINVAL;
+		}
+	}
+
+	return 0;
+}
+
+static int sec_skcipher_setkey(struct crypto_skcipher *tfm, const u8 *key,
+			       const u32 keylen, const enum sec_calg c_alg,
+			       const enum sec_cmode c_mode)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+	int ret;
+
+	if (c_mode == SEC_CMODE_XTS) {
+		ret = xts_verify_key(tfm, key, keylen);
+		if (ret) {
+			dev_err(SEC_CTX_DEV(ctx), "xts mode key err!\n");
+			return ret;
+		}
+	}
+
+	c_ctx->c_alg  = c_alg;
+	c_ctx->c_mode = c_mode;
+
+	switch (c_alg) {
+	case SEC_CALG_3DES:
+		ret = sec_skcipher_3des_setkey(c_ctx, keylen, c_mode);
+		break;
+	case SEC_CALG_AES:
+	case SEC_CALG_SM4:
+		ret = sec_skcipher_aes_sm4_setkey(c_ctx, keylen, c_mode);
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	if (ret) {
+		dev_err(SEC_CTX_DEV(ctx), "set sec key err!\n");
+		return ret;
+	}
+
+	memcpy(c_ctx->c_key, key, keylen);
+
+	return 0;
+}
+
+#define GEN_SEC_SETKEY_FUNC(name, c_alg, c_mode)			\
+static int sec_setkey_##name(struct crypto_skcipher *tfm, const u8 *key,\
+	u32 keylen)							\
+{									\
+	return sec_skcipher_setkey(tfm, key, keylen, c_alg, c_mode);	\
+}
+
+GEN_SEC_SETKEY_FUNC(aes_ecb, SEC_CALG_AES, SEC_CMODE_ECB)
+GEN_SEC_SETKEY_FUNC(aes_cbc, SEC_CALG_AES, SEC_CMODE_CBC)
+GEN_SEC_SETKEY_FUNC(aes_xts, SEC_CALG_AES, SEC_CMODE_XTS)
+
+GEN_SEC_SETKEY_FUNC(3des_ecb, SEC_CALG_3DES, SEC_CMODE_ECB)
+GEN_SEC_SETKEY_FUNC(3des_cbc, SEC_CALG_3DES, SEC_CMODE_CBC)
+
+GEN_SEC_SETKEY_FUNC(sm4_xts, SEC_CALG_SM4, SEC_CMODE_XTS)
+GEN_SEC_SETKEY_FUNC(sm4_cbc, SEC_CALG_SM4, SEC_CMODE_CBC)
+
+static int sec_cipher_map(struct device *dev, struct sec_req *req,
+			  struct scatterlist *src, struct scatterlist *dst)
+{
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+
+	c_req->c_in = hisi_acc_sg_buf_map_to_hw_sgl(dev, src,
+						    qp_ctx->c_in_pool,
+						    req->req_id,
+						    &c_req->c_in_dma);
+
+	if (IS_ERR(c_req->c_in)) {
+		dev_err(dev, "fail to dma map input sgl buffers!\n");
+		return PTR_ERR(c_req->c_in);
+	}
+
+	if (dst == src) {
+		c_req->c_out = c_req->c_in;
+		c_req->c_out_dma = c_req->c_in_dma;
+	} else {
+		c_req->c_out = hisi_acc_sg_buf_map_to_hw_sgl(dev, dst,
+							     qp_ctx->c_out_pool,
+							     req->req_id,
+							     &c_req->c_out_dma);
+
+		if (IS_ERR(c_req->c_out)) {
+			dev_err(dev, "fail to dma map output sgl buffers!\n");
+			hisi_acc_sg_buf_unmap(dev, src, c_req->c_in);
+			return PTR_ERR(c_req->c_out);
+		}
+	}
+
+	return 0;
+}
+
+static void sec_cipher_unmap(struct device *dev, struct sec_cipher_req *req,
+			     struct scatterlist *src, struct scatterlist *dst)
+{
+	if (dst != src)
+		hisi_acc_sg_buf_unmap(dev, src, req->c_in);
+
+	hisi_acc_sg_buf_unmap(dev, dst, req->c_out);
+}
+
+static int sec_skcipher_sgl_map(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct skcipher_request *sq = req->c_req.sk_req;
+
+	return sec_cipher_map(SEC_CTX_DEV(ctx), req, sq->src, sq->dst);
+}
+
+static void sec_skcipher_sgl_unmap(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct skcipher_request *sk_req = c_req->sk_req;
+
+	sec_cipher_unmap(dev, c_req, sk_req->src, sk_req->dst);
+}
+
+static int sec_aead_aes_set_key(struct sec_cipher_ctx *c_ctx,
+				struct crypto_authenc_keys *keys)
+{
+	switch (keys->enckeylen) {
+	case AES_KEYSIZE_128:
+		c_ctx->c_key_len = SEC_CKEY_128BIT;
+		break;
+	case AES_KEYSIZE_192:
+		c_ctx->c_key_len = SEC_CKEY_192BIT;
+		break;
+	case AES_KEYSIZE_256:
+		c_ctx->c_key_len = SEC_CKEY_256BIT;
+		break;
+	default:
+		pr_err("hisi_sec2: aead aes key error!\n");
+		return -EINVAL;
+	}
+	memcpy(c_ctx->c_key, keys->enckey, keys->enckeylen);
+
+	return 0;
+}
+
+static int sec_aead_auth_set_key(struct sec_auth_ctx *ctx,
+				 struct crypto_authenc_keys *keys)
+{
+	struct crypto_shash *hash_tfm = ctx->hash_tfm;
+	SHASH_DESC_ON_STACK(shash, hash_tfm);
+	int blocksize, ret;
+
+	if (!keys->authkeylen) {
+		pr_err("hisi_sec2: aead auth key error!\n");
+		return -EINVAL;
+	}
+
+	blocksize = crypto_shash_blocksize(hash_tfm);
+	if (keys->authkeylen > blocksize) {
+		ret = crypto_shash_digest(shash, keys->authkey,
+					  keys->authkeylen, ctx->a_key);
+		if (ret) {
+			pr_err("hisi_sec2: aead auth digest error!\n");
+			return -EINVAL;
+		}
+		ctx->a_key_len = blocksize;
+	} else {
+		memcpy(ctx->a_key, keys->authkey, keys->authkeylen);
+		ctx->a_key_len = keys->authkeylen;
+	}
+
+	return 0;
+}
+
+static int sec_aead_setkey(struct crypto_aead *tfm, const u8 *key,
+			   const u32 keylen, const enum sec_hash_alg a_alg,
+			   const enum sec_calg c_alg,
+			   const enum sec_mac_len mac_len,
+			   const enum sec_cmode c_mode)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+	struct crypto_authenc_keys keys;
+	int ret;
+
+	ctx->a_ctx.a_alg = a_alg;
+	ctx->c_ctx.c_alg = c_alg;
+	ctx->a_ctx.mac_len = mac_len;
+	c_ctx->c_mode = c_mode;
+
+	if (crypto_authenc_extractkeys(&keys, key, keylen))
+		goto bad_key;
+
+	ret = sec_aead_aes_set_key(c_ctx, &keys);
+	if (ret) {
+		dev_err(SEC_CTX_DEV(ctx), "set sec cipher key err!\n");
+		goto bad_key;
+	}
+
+	ret = sec_aead_auth_set_key(&ctx->a_ctx, &keys);
+	if (ret) {
+		dev_err(SEC_CTX_DEV(ctx), "set sec auth key err!\n");
+		goto bad_key;
+	}
+
+	return 0;
+bad_key:
+	memzero_explicit(&keys, sizeof(struct crypto_authenc_keys));
+
+	return -EINVAL;
+}
+
+
+#define GEN_SEC_AEAD_SETKEY_FUNC(name, aalg, calg, maclen, cmode)	\
+static int sec_setkey_##name(struct crypto_aead *tfm, const u8 *key,	\
+	u32 keylen)							\
+{									\
+	return sec_aead_setkey(tfm, key, keylen, aalg, calg, maclen, cmode);\
+}
+
+GEN_SEC_AEAD_SETKEY_FUNC(aes_cbc_sha1, SEC_A_HMAC_SHA1,
+			 SEC_CALG_AES, SEC_HMAC_SHA1_MAC, SEC_CMODE_CBC)
+GEN_SEC_AEAD_SETKEY_FUNC(aes_cbc_sha256, SEC_A_HMAC_SHA256,
+			 SEC_CALG_AES, SEC_HMAC_SHA256_MAC, SEC_CMODE_CBC)
+GEN_SEC_AEAD_SETKEY_FUNC(aes_cbc_sha512, SEC_A_HMAC_SHA512,
+			 SEC_CALG_AES, SEC_HMAC_SHA512_MAC, SEC_CMODE_CBC)
+
+static int sec_aead_sgl_map(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct aead_request *aq = req->aead_req.aead_req;
+
+	return sec_cipher_map(SEC_CTX_DEV(ctx), req, aq->src, aq->dst);
+}
+
+static void sec_aead_sgl_unmap(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct device *dev = SEC_CTX_DEV(ctx);
+	struct sec_cipher_req *cq = &req->c_req;
+	struct aead_request *aq = req->aead_req.aead_req;
+
+	sec_cipher_unmap(dev, cq, aq->src, aq->dst);
+}
+
+static int sec_request_transfer(struct sec_ctx *ctx, struct sec_req *req)
+{
+	int ret;
+
+	ret = ctx->req_op->buf_map(ctx, req);
+	if (unlikely(ret))
+		return ret;
+
+	ctx->req_op->do_transfer(ctx, req);
+
+	ret = ctx->req_op->bd_fill(ctx, req);
+	if (unlikely(ret))
+		goto unmap_req_buf;
+
+	return ret;
+
+unmap_req_buf:
+	ctx->req_op->buf_unmap(ctx, req);
+
+	return ret;
+}
+
+static void sec_request_untransfer(struct sec_ctx *ctx, struct sec_req *req)
+{
+	ctx->req_op->buf_unmap(ctx, req);
+}
+
+static void sec_skcipher_copy_iv(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct skcipher_request *sk_req = req->c_req.sk_req;
+	u8 *c_ivin = req->qp_ctx->res[req->req_id].c_ivin;
+
+	memcpy(c_ivin, sk_req->iv, ctx->c_ctx.ivsize);
+}
+
+static int sec_skcipher_bd_fill(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_cipher_ctx *c_ctx = &ctx->c_ctx;
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct sec_sqe *sec_sqe = &req->sec_sqe;
+	u8 scene, sa_type, da_type;
+	u8 bd_type, cipher;
+	u8 de = 0;
+
+	memset(sec_sqe, 0, sizeof(struct sec_sqe));
+
+	sec_sqe->type2.c_key_addr = cpu_to_le64(c_ctx->c_key_dma);
+	sec_sqe->type2.c_ivin_addr =
+		cpu_to_le64(req->qp_ctx->res[req->req_id].c_ivin_dma);
+	sec_sqe->type2.data_src_addr = cpu_to_le64(c_req->c_in_dma);
+	sec_sqe->type2.data_dst_addr = cpu_to_le64(c_req->c_out_dma);
+
+	sec_sqe->type2.icvw_kmode |= cpu_to_le16(((u16)c_ctx->c_mode) <<
+						SEC_CMODE_OFFSET);
+	sec_sqe->type2.c_alg = c_ctx->c_alg;
+	sec_sqe->type2.icvw_kmode |= cpu_to_le16(((u16)c_ctx->c_key_len) <<
+						SEC_CKEY_OFFSET);
+
+	bd_type = SEC_BD_TYPE2;
+	if (c_req->encrypt)
+		cipher = SEC_CIPHER_ENC << SEC_CIPHER_OFFSET;
+	else
+		cipher = SEC_CIPHER_DEC << SEC_CIPHER_OFFSET;
+	sec_sqe->type_cipher_auth = bd_type | cipher;
+
+	sa_type = SEC_SGL << SEC_SRC_SGL_OFFSET;
+	scene = SEC_COMM_SCENE << SEC_SCENE_OFFSET;
+	if (c_req->c_in_dma != c_req->c_out_dma)
+		de = 0x1 << SEC_DE_OFFSET;
+
+	sec_sqe->sds_sa_type = (de | scene | sa_type);
+
+	/* Just set DST address type */
+	da_type = SEC_SGL << SEC_DST_SGL_OFFSET;
+	sec_sqe->sdm_addr_type |= da_type;
+
+	sec_sqe->type2.clen_ivhlen |= cpu_to_le32(c_req->c_len);
+	sec_sqe->type2.tag = cpu_to_le16((u16)req->req_id);
+
+	return 0;
+}
+
+static void sec_update_iv(struct sec_req *req, enum sec_alg_type alg_type)
+{
+	struct aead_request *aead_req = req->aead_req.aead_req;
+	struct skcipher_request *sk_req = req->c_req.sk_req;
+	u32 iv_size = req->ctx->c_ctx.ivsize;
+	struct scatterlist *sgl;
+	unsigned int cryptlen;
+	size_t sz;
+	u8 *iv;
+
+	if (req->c_req.encrypt)
+		sgl = alg_type == SEC_SKCIPHER ? sk_req->dst : aead_req->dst;
+	else
+		sgl = alg_type == SEC_SKCIPHER ? sk_req->src : aead_req->src;
+
+	if (alg_type == SEC_SKCIPHER) {
+		iv = sk_req->iv;
+		cryptlen = sk_req->cryptlen;
+	} else {
+		iv = aead_req->iv;
+		cryptlen = aead_req->cryptlen;
+	}
+
+	sz = sg_pcopy_to_buffer(sgl, sg_nents(sgl), iv, iv_size,
+				cryptlen - iv_size);
+	if (unlikely(sz != iv_size))
+		dev_err(SEC_CTX_DEV(req->ctx), "copy output iv error!\n");
+}
+
+static void sec_skcipher_callback(struct sec_ctx *ctx, struct sec_req *req,
+				  int err)
+{
+	struct skcipher_request *sk_req = req->c_req.sk_req;
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+
+	atomic_dec(&qp_ctx->pending_reqs);
+	sec_free_req_id(req);
+
+	/* IV output at encrypto of CBC mode */
+	if (!err && ctx->c_ctx.c_mode == SEC_CMODE_CBC && req->c_req.encrypt)
+		sec_update_iv(req, SEC_SKCIPHER);
+
+	if (req->fake_busy)
+		sk_req->base.complete(&sk_req->base, -EINPROGRESS);
+
+	sk_req->base.complete(&sk_req->base, err);
+}
+
+static void sec_aead_copy_iv(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct aead_request *aead_req = req->aead_req.aead_req;
+	u8 *c_ivin = req->qp_ctx->res[req->req_id].c_ivin;
+
+	memcpy(c_ivin, aead_req->iv, ctx->c_ctx.ivsize);
+}
+
+static void sec_auth_bd_fill_ex(struct sec_auth_ctx *ctx, int dir,
+			       struct sec_req *req, struct sec_sqe *sec_sqe)
+{
+	struct sec_aead_req *a_req = &req->aead_req;
+	struct sec_cipher_req *c_req = &req->c_req;
+	struct aead_request *aq = a_req->aead_req;
+
+	sec_sqe->type2.a_key_addr = cpu_to_le64(ctx->a_key_dma);
+
+	sec_sqe->type2.mac_key_alg =
+			cpu_to_le32(ctx->mac_len / SEC_SQE_LEN_RATE);
+
+	sec_sqe->type2.mac_key_alg |=
+			cpu_to_le32((u32)((ctx->a_key_len) /
+			SEC_SQE_LEN_RATE) << SEC_AKEY_OFFSET);
+
+	sec_sqe->type2.mac_key_alg |=
+			cpu_to_le32((u32)(ctx->a_alg) << SEC_AEAD_ALG_OFFSET);
+
+	sec_sqe->type_cipher_auth |= SEC_AUTH_TYPE1 << SEC_AUTH_OFFSET;
+
+	if (dir)
+		sec_sqe->sds_sa_type &= SEC_CIPHER_AUTH;
+	else
+		sec_sqe->sds_sa_type |= SEC_AUTH_CIPHER;
+
+	sec_sqe->type2.alen_ivllen = cpu_to_le32(c_req->c_len + aq->assoclen);
+
+	sec_sqe->type2.cipher_src_offset = cpu_to_le16((u16)aq->assoclen);
+
+	sec_sqe->type2.mac_addr =
+		cpu_to_le64(req->qp_ctx->res[req->req_id].out_mac_dma);
+}
+
+static int sec_aead_bd_fill(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_auth_ctx *auth_ctx = &ctx->a_ctx;
+	struct sec_sqe *sec_sqe = &req->sec_sqe;
+	int ret;
+
+	ret = sec_skcipher_bd_fill(ctx, req);
+	if (unlikely(ret)) {
+		dev_err(SEC_CTX_DEV(ctx), "skcipher bd fill is error!\n");
+		return ret;
+	}
+
+	sec_auth_bd_fill_ex(auth_ctx, req->c_req.encrypt, req, sec_sqe);
+
+	return 0;
+}
+
+static void sec_aead_callback(struct sec_ctx *c, struct sec_req *req, int err)
+{
+	struct aead_request *a_req = req->aead_req.aead_req;
+	struct crypto_aead *tfm = crypto_aead_reqtfm(a_req);
+	struct sec_cipher_req *c_req = &req->c_req;
+	size_t authsize = crypto_aead_authsize(tfm);
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+	size_t sz;
+
+	atomic_dec(&qp_ctx->pending_reqs);
+
+	if (!err && c->c_ctx.c_mode == SEC_CMODE_CBC && c_req->encrypt)
+		sec_update_iv(req, SEC_AEAD);
+
+	/* Copy output mac */
+	if (!err && c_req->encrypt) {
+		struct scatterlist *sgl = a_req->dst;
+
+		sz = sg_pcopy_from_buffer(sgl, sg_nents(sgl),
+					  qp_ctx->res[req->req_id].out_mac,
+					  authsize, a_req->cryptlen +
+					  a_req->assoclen);
+
+		if (unlikely(sz != authsize)) {
+			dev_err(SEC_CTX_DEV(req->ctx), "copy out mac err!\n");
+			err = -EINVAL;
+		}
+	}
+
+	sec_free_req_id(req);
+
+	if (req->fake_busy)
+		a_req->base.complete(&a_req->base, -EINPROGRESS);
+
+	a_req->base.complete(&a_req->base, err);
+}
+
+static void sec_request_uninit(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx = req->qp_ctx;
+
+	atomic_dec(&qp_ctx->pending_reqs);
+	sec_free_req_id(req);
+	sec_free_queue_id(ctx, req);
+}
+
+static int sec_request_init(struct sec_ctx *ctx, struct sec_req *req)
+{
+	struct sec_qp_ctx *qp_ctx;
+	int queue_id;
+
+	/* To load balance */
+	queue_id = sec_alloc_queue_id(ctx, req);
+	qp_ctx = &ctx->qp_ctx[queue_id];
+
+	req->req_id = sec_alloc_req_id(req, qp_ctx);
+	if (unlikely(req->req_id < 0)) {
+		sec_free_queue_id(ctx, req);
+		return req->req_id;
+	}
+
+	if (ctx->fake_req_limit <= atomic_inc_return(&qp_ctx->pending_reqs))
+		req->fake_busy = true;
+	else
+		req->fake_busy = false;
+
+	return 0;
+}
+
+static int sec_process(struct sec_ctx *ctx, struct sec_req *req)
+{
+	int ret;
+
+	ret = sec_request_init(ctx, req);
+	if (unlikely(ret))
+		return ret;
+
+	ret = sec_request_transfer(ctx, req);
+	if (unlikely(ret))
+		goto err_uninit_req;
+
+	/* Output IV as decrypto */
+	if (ctx->c_ctx.c_mode == SEC_CMODE_CBC && !req->c_req.encrypt)
+		sec_update_iv(req, ctx->alg_type);
+
+	ret = ctx->req_op->bd_send(ctx, req);
+	if (unlikely(ret != -EBUSY && ret != -EINPROGRESS)) {
+		dev_err_ratelimited(SEC_CTX_DEV(ctx), "send sec request failed!\n");
+		goto err_send_req;
+	}
+
+	return ret;
+
+err_send_req:
+	/* As failing, restore the IV from user */
+	if (ctx->c_ctx.c_mode == SEC_CMODE_CBC && !req->c_req.encrypt) {
+		if (ctx->alg_type == SEC_SKCIPHER)
+			memcpy(req->c_req.sk_req->iv,
+			       req->qp_ctx->res[req->req_id].c_ivin,
+			       ctx->c_ctx.ivsize);
+		else
+			memcpy(req->aead_req.aead_req->iv,
+			       req->qp_ctx->res[req->req_id].c_ivin,
+			       ctx->c_ctx.ivsize);
+	}
+
+	sec_request_untransfer(ctx, req);
+err_uninit_req:
+	sec_request_uninit(ctx, req);
+
+	return ret;
+}
+
+static const struct sec_req_op sec_skcipher_req_ops = {
+	.buf_map	= sec_skcipher_sgl_map,
+	.buf_unmap	= sec_skcipher_sgl_unmap,
+	.do_transfer	= sec_skcipher_copy_iv,
+	.bd_fill	= sec_skcipher_bd_fill,
+	.bd_send	= sec_bd_send,
+	.callback	= sec_skcipher_callback,
+	.process	= sec_process,
+};
+
+static const struct sec_req_op sec_aead_req_ops = {
+	.buf_map	= sec_aead_sgl_map,
+	.buf_unmap	= sec_aead_sgl_unmap,
+	.do_transfer	= sec_aead_copy_iv,
+	.bd_fill	= sec_aead_bd_fill,
+	.bd_send	= sec_bd_send,
+	.callback	= sec_aead_callback,
+	.process	= sec_process,
+};
+
+static int sec_skcipher_ctx_init(struct crypto_skcipher *tfm)
+{
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+
+	ctx->req_op = &sec_skcipher_req_ops;
+
+	return sec_skcipher_init(tfm);
+}
+
+static void sec_skcipher_ctx_exit(struct crypto_skcipher *tfm)
+{
+	sec_skcipher_uninit(tfm);
+}
+
+static int sec_aead_init(struct crypto_aead *tfm)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	int ret;
+
+	crypto_aead_set_reqsize(tfm, sizeof(struct sec_req));
+	ctx->alg_type = SEC_AEAD;
+	ctx->c_ctx.ivsize = crypto_aead_ivsize(tfm);
+	if (ctx->c_ctx.ivsize > SEC_IV_SIZE) {
+		dev_err(SEC_CTX_DEV(ctx), "get error aead iv size!\n");
+		return -EINVAL;
+	}
+
+	ctx->req_op = &sec_aead_req_ops;
+	ret = sec_ctx_base_init(ctx);
+	if (ret)
+		return ret;
+
+	ret = sec_auth_init(ctx);
+	if (ret)
+		goto err_auth_init;
+
+	ret = sec_cipher_init(ctx);
+	if (ret)
+		goto err_cipher_init;
+
+	return ret;
+
+err_cipher_init:
+	sec_auth_uninit(ctx);
+err_auth_init:
+	sec_ctx_base_uninit(ctx);
+
+	return ret;
+}
+
+static void sec_aead_exit(struct crypto_aead *tfm)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+
+	sec_cipher_uninit(ctx);
+	sec_auth_uninit(ctx);
+	sec_ctx_base_uninit(ctx);
+}
+
+static int sec_aead_ctx_init(struct crypto_aead *tfm, const char *hash_name)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	struct sec_auth_ctx *auth_ctx = &ctx->a_ctx;
+	int ret;
+
+	ret = sec_aead_init(tfm);
+	if (ret) {
+		pr_err("hisi_sec2: aead init error!\n");
+		return ret;
+	}
+
+	auth_ctx->hash_tfm = crypto_alloc_shash(hash_name, 0, 0);
+	if (IS_ERR(auth_ctx->hash_tfm)) {
+		dev_err(SEC_CTX_DEV(ctx), "aead alloc shash error!\n");
+		sec_aead_exit(tfm);
+		return PTR_ERR(auth_ctx->hash_tfm);
+	}
+
+	return 0;
+}
+
+static void sec_aead_ctx_exit(struct crypto_aead *tfm)
+{
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+
+	crypto_free_shash(ctx->a_ctx.hash_tfm);
+	sec_aead_exit(tfm);
+}
+
+static int sec_aead_sha1_ctx_init(struct crypto_aead *tfm)
+{
+	return sec_aead_ctx_init(tfm, "sha1");
+}
+
+static int sec_aead_sha256_ctx_init(struct crypto_aead *tfm)
+{
+	return sec_aead_ctx_init(tfm, "sha256");
+}
+
+static int sec_aead_sha512_ctx_init(struct crypto_aead *tfm)
+{
+	return sec_aead_ctx_init(tfm, "sha512");
+}
+
+static int sec_skcipher_param_check(struct sec_ctx *ctx, struct sec_req *sreq)
+{
+	struct skcipher_request *sk_req = sreq->c_req.sk_req;
+	struct device *dev = SEC_CTX_DEV(ctx);
+	u8 c_alg = ctx->c_ctx.c_alg;
+
+	if (unlikely(!sk_req->src || !sk_req->dst)) {
+		dev_err(dev, "skcipher input param error!\n");
+		return -EINVAL;
+	}
+	sreq->c_req.c_len = sk_req->cryptlen;
+	if (c_alg == SEC_CALG_3DES) {
+		if (unlikely(sk_req->cryptlen & (DES3_EDE_BLOCK_SIZE - 1))) {
+			dev_err(dev, "skcipher 3des input length error!\n");
+			return -EINVAL;
+		}
+		return 0;
+	} else if (c_alg == SEC_CALG_AES || c_alg == SEC_CALG_SM4) {
+		if (unlikely(sk_req->cryptlen & (AES_BLOCK_SIZE - 1))) {
+			dev_err(dev, "skcipher aes input length error!\n");
+			return -EINVAL;
+		}
+		return 0;
+	}
+
+	dev_err(dev, "skcipher algorithm error!\n");
+	return -EINVAL;
+}
+
+static int sec_skcipher_crypto(struct skcipher_request *sk_req, bool encrypt)
+{
+	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(sk_req);
+	struct sec_req *req = skcipher_request_ctx(sk_req);
+	struct sec_ctx *ctx = crypto_skcipher_ctx(tfm);
+	int ret;
+
+	if (!sk_req->cryptlen)
+		return 0;
+
+	req->c_req.sk_req = sk_req;
+	req->c_req.encrypt = encrypt;
+	req->ctx = ctx;
+
+	ret = sec_skcipher_param_check(ctx, req);
+	if (unlikely(ret))
+		return -EINVAL;
+
+	return ctx->req_op->process(ctx, req);
+}
+
+static int sec_skcipher_encrypt(struct skcipher_request *sk_req)
+{
+	return sec_skcipher_crypto(sk_req, true);
+}
+
+static int sec_skcipher_decrypt(struct skcipher_request *sk_req)
+{
+	return sec_skcipher_crypto(sk_req, false);
+}
+
+#define SEC_SKCIPHER_GEN_ALG(sec_cra_name, sec_set_key, sec_min_key_size, \
+	sec_max_key_size, ctx_init, ctx_exit, blk_size, iv_size)\
+{\
+	.base = {\
+		.cra_name = sec_cra_name,\
+		.cra_driver_name = "hisi_sec_"sec_cra_name,\
+		.cra_priority = SEC_PRIORITY,\
+		.cra_flags = CRYPTO_ALG_ASYNC,\
+		.cra_blocksize = blk_size,\
+		.cra_ctxsize = sizeof(struct sec_ctx),\
+		.cra_module = THIS_MODULE,\
+	},\
+	.init = ctx_init,\
+	.exit = ctx_exit,\
+	.setkey = sec_set_key,\
+	.decrypt = sec_skcipher_decrypt,\
+	.encrypt = sec_skcipher_encrypt,\
+	.min_keysize = sec_min_key_size,\
+	.max_keysize = sec_max_key_size,\
+	.ivsize = iv_size,\
+},
+
+#define SEC_SKCIPHER_ALG(name, key_func, min_key_size, \
+	max_key_size, blk_size, iv_size) \
+	SEC_SKCIPHER_GEN_ALG(name, key_func, min_key_size, max_key_size, \
+	sec_skcipher_ctx_init, sec_skcipher_ctx_exit, blk_size, iv_size)
+
+static struct skcipher_alg sec_skciphers[] = {
+	SEC_SKCIPHER_ALG("ecb(aes)", sec_setkey_aes_ecb,
+			 AES_MIN_KEY_SIZE, AES_MAX_KEY_SIZE,
+			 AES_BLOCK_SIZE, 0)
+
+	SEC_SKCIPHER_ALG("cbc(aes)", sec_setkey_aes_cbc,
+			 AES_MIN_KEY_SIZE, AES_MAX_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("xts(aes)", sec_setkey_aes_xts,
+			 SEC_XTS_MIN_KEY_SIZE, SEC_XTS_MAX_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("ecb(des3_ede)", sec_setkey_3des_ecb,
+			 SEC_DES3_2KEY_SIZE, SEC_DES3_3KEY_SIZE,
+			 DES3_EDE_BLOCK_SIZE, 0)
+
+	SEC_SKCIPHER_ALG("cbc(des3_ede)", sec_setkey_3des_cbc,
+			 SEC_DES3_2KEY_SIZE, SEC_DES3_3KEY_SIZE,
+			 DES3_EDE_BLOCK_SIZE, DES3_EDE_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("xts(sm4)", sec_setkey_sm4_xts,
+			 SEC_XTS_MIN_KEY_SIZE, SEC_XTS_MIN_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+
+	SEC_SKCIPHER_ALG("cbc(sm4)", sec_setkey_sm4_cbc,
+			 AES_MIN_KEY_SIZE, AES_MIN_KEY_SIZE,
+			 AES_BLOCK_SIZE, AES_BLOCK_SIZE)
+};
+
+static int sec_aead_param_check(struct sec_ctx *ctx, struct sec_req *sreq)
+{
+	u8 c_alg = ctx->c_ctx.c_alg;
+	struct aead_request *req = sreq->aead_req.aead_req;
+	struct crypto_aead *tfm = crypto_aead_reqtfm(req);
+	size_t authsize = crypto_aead_authsize(tfm);
+
+	if (unlikely(!req->src || !req->dst || !req->cryptlen)) {
+		dev_err(SEC_CTX_DEV(ctx), "aead input param error!\n");
+		return -EINVAL;
+	}
+
+	/* Support AES only */
+	if (unlikely(c_alg != SEC_CALG_AES)) {
+		dev_err(SEC_CTX_DEV(ctx), "aead crypto alg error!\n");
+		return -EINVAL;
+
+	}
+	if (sreq->c_req.encrypt)
+		sreq->c_req.c_len = req->cryptlen;
+	else
+		sreq->c_req.c_len = req->cryptlen - authsize;
+
+	if (unlikely(sreq->c_req.c_len & (AES_BLOCK_SIZE - 1))) {
+		dev_err(SEC_CTX_DEV(ctx), "aead crypto length error!\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int sec_aead_crypto(struct aead_request *a_req, bool encrypt)
+{
+	struct crypto_aead *tfm = crypto_aead_reqtfm(a_req);
+	struct sec_req *req = aead_request_ctx(a_req);
+	struct sec_ctx *ctx = crypto_aead_ctx(tfm);
+	int ret;
+
+	req->aead_req.aead_req = a_req;
+	req->c_req.encrypt = encrypt;
+	req->ctx = ctx;
+
+	ret = sec_aead_param_check(ctx, req);
+	if (unlikely(ret))
+		return -EINVAL;
+
+	return ctx->req_op->process(ctx, req);
+}
+
+static int sec_aead_encrypt(struct aead_request *a_req)
+{
+	return sec_aead_crypto(a_req, true);
+}
+
+static int sec_aead_decrypt(struct aead_request *a_req)
+{
+	return sec_aead_crypto(a_req, false);
+}
+
+#define SEC_AEAD_GEN_ALG(sec_cra_name, sec_set_key, ctx_init,\
+			 ctx_exit, blk_size, iv_size, max_authsize)\
+{\
+	.base = {\
+		.cra_name = sec_cra_name,\
+		.cra_driver_name = "hisi_sec_"sec_cra_name,\
+		.cra_priority = SEC_PRIORITY,\
+		.cra_flags = CRYPTO_ALG_ASYNC,\
+		.cra_blocksize = blk_size,\
+		.cra_ctxsize = sizeof(struct sec_ctx),\
+		.cra_module = THIS_MODULE,\
+	},\
+	.init = ctx_init,\
+	.exit = ctx_exit,\
+	.setkey = sec_set_key,\
+	.decrypt = sec_aead_decrypt,\
+	.encrypt = sec_aead_encrypt,\
+	.ivsize = iv_size,\
+	.maxauthsize = max_authsize,\
+}
+
+#define SEC_AEAD_ALG(algname, keyfunc, aead_init, blksize, ivsize, authsize)\
+	SEC_AEAD_GEN_ALG(algname, keyfunc, aead_init,\
+			sec_aead_ctx_exit, blksize, ivsize, authsize)
+
+static struct aead_alg sec_aeads[] = {
+	SEC_AEAD_ALG("authenc(hmac(sha1),cbc(aes))",
+		     sec_setkey_aes_cbc_sha1, sec_aead_sha1_ctx_init,
+		     AES_BLOCK_SIZE, AES_BLOCK_SIZE, SHA1_DIGEST_SIZE),
+
+	SEC_AEAD_ALG("authenc(hmac(sha256),cbc(aes))",
+		     sec_setkey_aes_cbc_sha256, sec_aead_sha256_ctx_init,
+		     AES_BLOCK_SIZE, AES_BLOCK_SIZE, SHA256_DIGEST_SIZE),
+
+	SEC_AEAD_ALG("authenc(hmac(sha512),cbc(aes))",
+		     sec_setkey_aes_cbc_sha512, sec_aead_sha512_ctx_init,
+		     AES_BLOCK_SIZE, AES_BLOCK_SIZE, SHA512_DIGEST_SIZE),
+};
+
+int sec_register_to_crypto(void)
+{
+	int ret = 0;
+
+	/* To avoid repeat register */
+	if (atomic_add_return(1, &sec_active_devs) == 1) {
+		ret = crypto_register_skciphers(sec_skciphers,
+						ARRAY_SIZE(sec_skciphers));
+		if (ret)
+			return ret;
+
+		ret = crypto_register_aeads(sec_aeads, ARRAY_SIZE(sec_aeads));
+		if (ret)
+			goto reg_aead_fail;
+	}
+
+	return ret;
+
+reg_aead_fail:
+	crypto_unregister_skciphers(sec_skciphers, ARRAY_SIZE(sec_skciphers));
+
+	return ret;
+}
+
+void sec_unregister_from_crypto(void)
+{
+	if (atomic_sub_return(1, &sec_active_devs) == 0) {
+		crypto_unregister_skciphers(sec_skciphers,
+					    ARRAY_SIZE(sec_skciphers));
+		crypto_unregister_aeads(sec_aeads, ARRAY_SIZE(sec_aeads));
+	}
+}
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec_crypto.h
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec2/sec_crypto.h
@@ -0,0 +1,216 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#ifndef __HISI_SEC_V2_CRYPTO_H
+#define __HISI_SEC_V2_CRYPTO_H
+
+#define SEC_IV_SIZE		24
+#define SEC_MAX_KEY_SIZE	64
+#define SEC_COMM_SCENE		0
+
+enum sec_calg {
+	SEC_CALG_3DES = 0x1,
+	SEC_CALG_AES  = 0x2,
+	SEC_CALG_SM4  = 0x3,
+};
+
+enum sec_hash_alg {
+	SEC_A_HMAC_SHA1   = 0x10,
+	SEC_A_HMAC_SHA256 = 0x11,
+	SEC_A_HMAC_SHA512 = 0x15,
+};
+
+enum sec_mac_len {
+	SEC_HMAC_SHA1_MAC   = 20,
+	SEC_HMAC_SHA256_MAC = 32,
+	SEC_HMAC_SHA512_MAC = 64,
+};
+
+enum sec_cmode {
+	SEC_CMODE_ECB    = 0x0,
+	SEC_CMODE_CBC    = 0x1,
+	SEC_CMODE_CTR    = 0x4,
+	SEC_CMODE_XTS    = 0x7,
+};
+
+enum sec_ckey_type {
+	SEC_CKEY_128BIT = 0x0,
+	SEC_CKEY_192BIT = 0x1,
+	SEC_CKEY_256BIT = 0x2,
+	SEC_CKEY_3DES_3KEY = 0x1,
+	SEC_CKEY_3DES_2KEY = 0x3,
+};
+
+enum sec_bd_type {
+	SEC_BD_TYPE1 = 0x1,
+	SEC_BD_TYPE2 = 0x2,
+};
+
+enum sec_auth {
+	SEC_NO_AUTH = 0x0,
+	SEC_AUTH_TYPE1 = 0x1,
+	SEC_AUTH_TYPE2 = 0x2,
+};
+
+enum sec_cipher_dir {
+	SEC_CIPHER_ENC = 0x1,
+	SEC_CIPHER_DEC = 0x2,
+};
+
+enum sec_addr_type {
+	SEC_PBUF = 0x0,
+	SEC_SGL  = 0x1,
+	SEC_PRP  = 0x2,
+};
+
+struct sec_sqe_type2 {
+
+	/*
+	 * mac_len: 0~4 bits
+	 * a_key_len: 5~10 bits
+	 * a_alg: 11~16 bits
+	 */
+	__le32 mac_key_alg;
+
+	/*
+	 * c_icv_len: 0~5 bits
+	 * c_width: 6~8 bits
+	 * c_key_len: 9~11 bits
+	 * c_mode: 12~15 bits
+	 */
+	__le16 icvw_kmode;
+
+	/* c_alg: 0~3 bits */
+	__u8 c_alg;
+	__u8 rsvd4;
+
+	/*
+	 * a_len: 0~23 bits
+	 * iv_offset_l: 24~31 bits
+	 */
+	__le32 alen_ivllen;
+
+	/*
+	 * c_len: 0~23 bits
+	 * iv_offset_h: 24~31 bits
+	 */
+	__le32 clen_ivhlen;
+
+	__le16 auth_src_offset;
+	__le16 cipher_src_offset;
+	__le16 cs_ip_header_offset;
+	__le16 cs_udp_header_offset;
+	__le16 pass_word_len;
+	__le16 dk_len;
+	__u8 salt3;
+	__u8 salt2;
+	__u8 salt1;
+	__u8 salt0;
+
+	__le16 tag;
+	__le16 rsvd5;
+
+	/*
+	 * c_pad_type: 0~3 bits
+	 * c_pad_len: 4~11 bits
+	 * c_pad_data_type: 12~15 bits
+	 */
+	__le16 cph_pad;
+
+	/* c_pad_len_field: 0~1 bits */
+	__le16 c_pad_len_field;
+
+
+	__le64 long_a_data_len;
+	__le64 a_ivin_addr;
+	__le64 a_key_addr;
+	__le64 mac_addr;
+	__le64 c_ivin_addr;
+	__le64 c_key_addr;
+
+	__le64 data_src_addr;
+	__le64 data_dst_addr;
+
+	/*
+	 * done: 0 bit
+	 * icv: 1~3 bits
+	 * csc: 4~6 bits
+	 * flag: 7-10 bits
+	 * dif_check: 11~13 bits
+	 */
+	__le16 done_flag;
+
+	__u8 error_type;
+	__u8 warning_type;
+	__u8 mac_i3;
+	__u8 mac_i2;
+	__u8 mac_i1;
+	__u8 mac_i0;
+	__le16 check_sum_i;
+	__u8 tls_pad_len_i;
+	__u8 rsvd12;
+	__le32 counter;
+};
+
+struct sec_sqe {
+	/*
+	 * type:	0~3 bits
+	 * cipher:	4~5 bits
+	 * auth:	6~7 bit s
+	 */
+	__u8 type_cipher_auth;
+
+	/*
+	 * seq:	0 bit
+	 * de:	1~2 bits
+	 * scene:	3~6 bits
+	 * src_addr_type: ~7 bit, with sdm_addr_type 0-1 bits
+	 */
+	__u8 sds_sa_type;
+
+	/*
+	 * src_addr_type: 0~1 bits, not used now,
+	 * if support PRP, set this field, or set zero.
+	 * dst_addr_type: 2~4 bits
+	 * mac_addr_type: 5~7 bits
+	 */
+	__u8 sdm_addr_type;
+	__u8 rsvd0;
+
+	/*
+	 * nonce_len(type2): 0~3 bits
+	 * huk(type2): 4 bit
+	 * key_s(type2): 5 bit
+	 * ci_gen: 6~7 bits
+	 */
+	__u8 huk_key_ci;
+
+	/*
+	 * ai_gen: 0~1 bits
+	 * a_pad(type2): 2~3 bits
+	 * c_s(type2): 4~5 bits
+	 */
+	__u8 ai_apd_cs;
+
+	/*
+	 * rhf(type2): 0 bit
+	 * c_key_type: 1~2 bits
+	 * a_key_type: 3~4 bits
+	 * write_frame_len(type2): 5~7 bits
+	 */
+	__u8 rca_key_frm;
+
+	/*
+	 * cal_iv_addr_en(type2): 0 bit
+	 * tls_up(type2): 1 bit
+	 * inveld: 7 bit
+	 */
+	__u8 iv_tls_ld;
+
+	/* Just using type2 BD now */
+	struct sec_sqe_type2 type2;
+};
+
+int sec_register_to_crypto(void);
+void sec_unregister_from_crypto(void);
+#endif
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sec2/sec_main.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sec2/sec_main.c
@@ -0,0 +1,1124 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2019 HiSilicon Limited. */
+
+#include <linux/acpi.h>
+#include <linux/aer.h>
+#include <linux/bitops.h>
+#include <linux/debugfs.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+#include <linux/seq_file.h>
+#include <linux/topology.h>
+
+#include "sec.h"
+
+#define SEC_VF_NUM			63
+#define SEC_QUEUE_NUM_V1		4096
+#define SEC_QUEUE_NUM_V2		1024
+#define SEC_PF_PCI_DEVICE_ID		0xa255
+#define SEC_VF_PCI_DEVICE_ID		0xa256
+
+#define SEC_BD_ERR_CHK_EN0		0xEFFFFFFF
+#define SEC_BD_ERR_CHK_EN1		0x7ffff7fd
+#define SEC_BD_ERR_CHK_EN3		0xffffbfff
+
+#define SEC_SQE_SIZE			128
+#define SEC_SQ_SIZE			(SEC_SQE_SIZE * QM_Q_DEPTH)
+#define SEC_PF_DEF_Q_NUM		256
+#define SEC_PF_DEF_Q_BASE		0
+#define SEC_CTX_Q_NUM_DEF		2
+#define SEC_CTX_Q_NUM_MAX		32
+
+#define SEC_CTRL_CNT_CLR_CE		0x301120
+#define SEC_CTRL_CNT_CLR_CE_BIT		BIT(0)
+#define SEC_ENGINE_PF_CFG_OFF		0x300000
+#define SEC_ACC_COMMON_REG_OFF		0x1000
+#define SEC_CORE_INT_SOURCE		0x301010
+#define SEC_CORE_INT_MASK		0x301000
+#define SEC_CORE_INT_STATUS		0x301008
+#define SEC_CORE_SRAM_ECC_ERR_INFO	0x301C14
+#define SEC_ECC_NUM(err)			(((err) >> 16) & 0xFF)
+#define SEC_ECC_ADDR(err)			((err) >> 0)
+#define SEC_CORE_INT_DISABLE		0x0
+#define SEC_CORE_INT_ENABLE		0x1ff
+#define SEC_CORE_INT_CLEAR		0x1ff
+#define SEC_SAA_ENABLE			0x17f
+
+#define SEC_RAS_CE_REG			0x301050
+#define SEC_RAS_FE_REG			0x301054
+#define SEC_RAS_NFE_REG			0x301058
+#define SEC_RAS_CE_ENB_MSK		0x88
+#define SEC_RAS_FE_ENB_MSK		0x0
+#define SEC_RAS_NFE_ENB_MSK		0x177
+#define SEC_RAS_DISABLE			0x0
+#define SEC_MEM_START_INIT_REG		0x0100
+#define SEC_MEM_INIT_DONE_REG		0x0104
+
+#define SEC_CONTROL_REG			0x0200
+#define SEC_TRNG_EN_SHIFT		8
+#define SEC_CLK_GATE_ENABLE		BIT(3)
+#define SEC_CLK_GATE_DISABLE		(~BIT(3))
+#define SEC_AXI_SHUTDOWN_ENABLE	BIT(12)
+#define SEC_AXI_SHUTDOWN_DISABLE	0xFFFFEFFF
+
+#define SEC_INTERFACE_USER_CTRL0_REG	0x0220
+#define SEC_INTERFACE_USER_CTRL1_REG	0x0224
+#define SEC_SAA_EN_REG					0x0270
+#define SEC_BD_ERR_CHK_EN_REG0		0x0380
+#define SEC_BD_ERR_CHK_EN_REG1		0x0384
+#define SEC_BD_ERR_CHK_EN_REG3		0x038c
+
+#define SEC_USER0_SMMU_NORMAL		(BIT(23) | BIT(15))
+#define SEC_USER1_SMMU_NORMAL		(BIT(31) | BIT(23) | BIT(15) | BIT(7))
+#define SEC_CORE_INT_STATUS_M_ECC	BIT(2)
+
+#define SEC_DELAY_10_US			10
+#define SEC_POLL_TIMEOUT_US		1000
+#define SEC_DBGFS_VAL_MAX_LEN		20
+#define SEC_SINGLE_PORT_MAX_TRANS	0x2060
+
+#define SEC_ADDR(qm, offset) ((qm)->io_base + (offset) + \
+			     SEC_ENGINE_PF_CFG_OFF + SEC_ACC_COMMON_REG_OFF)
+
+struct sec_hw_error {
+	u32 int_msk;
+	const char *msg;
+};
+
+static const char sec_name[] = "hisi_sec2";
+static struct dentry *sec_debugfs_root;
+static LIST_HEAD(sec_list);
+static DEFINE_MUTEX(sec_list_lock);
+
+static const struct sec_hw_error sec_hw_errors[] = {
+	{.int_msk = BIT(0), .msg = "sec_axi_rresp_err_rint"},
+	{.int_msk = BIT(1), .msg = "sec_axi_bresp_err_rint"},
+	{.int_msk = BIT(2), .msg = "sec_ecc_2bit_err_rint"},
+	{.int_msk = BIT(3), .msg = "sec_ecc_1bit_err_rint"},
+	{.int_msk = BIT(4), .msg = "sec_req_trng_timeout_rint"},
+	{.int_msk = BIT(5), .msg = "sec_fsm_hbeat_rint"},
+	{.int_msk = BIT(6), .msg = "sec_channel_req_rng_timeout_rint"},
+	{.int_msk = BIT(7), .msg = "sec_bd_err_rint"},
+	{.int_msk = BIT(8), .msg = "sec_chain_buff_err_rint"},
+	{ /* sentinel */ }
+};
+
+struct sec_dev *sec_find_device(int node)
+{
+#define SEC_NUMA_MAX_DISTANCE	100
+	int min_distance = SEC_NUMA_MAX_DISTANCE;
+	int dev_node = 0, free_qp_num = 0;
+	struct sec_dev *sec, *ret = NULL;
+	struct hisi_qm *qm;
+	struct device *dev;
+
+	mutex_lock(&sec_list_lock);
+	list_for_each_entry(sec, &sec_list, list) {
+		qm = &sec->qm;
+		dev = &qm->pdev->dev;
+#ifdef CONFIG_NUMA
+		dev_node = dev->numa_node;
+		if (dev_node < 0)
+			dev_node = 0;
+#endif
+		if (node_distance(dev_node, node) < min_distance) {
+			free_qp_num = hisi_qm_get_free_qp_num(qm);
+			if (free_qp_num >= sec->ctx_q_num) {
+				ret = sec;
+				min_distance = node_distance(dev_node, node);
+			}
+		}
+	}
+	mutex_unlock(&sec_list_lock);
+
+	return ret;
+}
+
+static const char * const sec_dbg_file_name[] = {
+	[SEC_CURRENT_QM] = "current_qm",
+	[SEC_CLEAR_ENABLE] = "clear_enable",
+};
+
+static struct debugfs_reg32 sec_dfx_regs[] = {
+	{"SEC_PF_ABNORMAL_INT_SOURCE    ",  0x301010},
+	{"SEC_SAA_EN                    ",  0x301270},
+	{"SEC_BD_LATENCY_MIN            ",  0x301600},
+	{"SEC_BD_LATENCY_MAX            ",  0x301608},
+	{"SEC_BD_LATENCY_AVG            ",  0x30160C},
+	{"SEC_BD_NUM_IN_SAA0            ",  0x301670},
+	{"SEC_BD_NUM_IN_SAA1            ",  0x301674},
+	{"SEC_BD_NUM_IN_SEC             ",  0x301680},
+	{"SEC_ECC_1BIT_CNT              ",  0x301C00},
+	{"SEC_ECC_1BIT_INFO             ",  0x301C04},
+	{"SEC_ECC_2BIT_CNT              ",  0x301C10},
+	{"SEC_ECC_2BIT_INFO             ",  0x301C14},
+	{"SEC_BD_SAA0                   ",  0x301C20},
+	{"SEC_BD_SAA1                   ",  0x301C24},
+	{"SEC_BD_SAA2                   ",  0x301C28},
+	{"SEC_BD_SAA3                   ",  0x301C2C},
+	{"SEC_BD_SAA4                   ",  0x301C30},
+	{"SEC_BD_SAA5                   ",  0x301C34},
+	{"SEC_BD_SAA6                   ",  0x301C38},
+	{"SEC_BD_SAA7                   ",  0x301C3C},
+	{"SEC_BD_SAA8                   ",  0x301C40},
+};
+
+static int sec_pf_q_num_set(const char *val, const struct kernel_param *kp)
+{
+	struct pci_dev *pdev;
+	u32 n, q_num;
+	u8 rev_id;
+	int ret;
+
+	if (!val)
+		return -EINVAL;
+
+	pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI,
+			      SEC_PF_PCI_DEVICE_ID, NULL);
+	if (!pdev) {
+		q_num = min_t(u32, SEC_QUEUE_NUM_V1, SEC_QUEUE_NUM_V2);
+		pr_info("No device, suppose queue number is %d!\n", q_num);
+	} else {
+		rev_id = pdev->revision;
+
+		switch (rev_id) {
+		case QM_HW_V1:
+			q_num = SEC_QUEUE_NUM_V1;
+			break;
+		case QM_HW_V2:
+			q_num = SEC_QUEUE_NUM_V2;
+			break;
+		default:
+			return -EINVAL;
+		}
+	}
+
+	ret = kstrtou32(val, 10, &n);
+	if (ret || !n || n > q_num)
+		return -EINVAL;
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops sec_pf_q_num_ops = {
+	.set = sec_pf_q_num_set,
+	.get = param_get_int,
+};
+static u32 pf_q_num = SEC_PF_DEF_Q_NUM;
+module_param_cb(pf_q_num, &sec_pf_q_num_ops, &pf_q_num, 0444);
+MODULE_PARM_DESC(pf_q_num, "Number of queues in PF(v1 0-4096, v2 0-1024)");
+
+static int sec_ctx_q_num_set(const char *val, const struct kernel_param *kp)
+{
+	u32 ctx_q_num;
+	int ret;
+
+	if (!val)
+		return -EINVAL;
+
+	ret = kstrtou32(val, 10, &ctx_q_num);
+	if (ret)
+		return -EINVAL;
+
+	if (!ctx_q_num || ctx_q_num > SEC_CTX_Q_NUM_MAX || ctx_q_num & 0x1) {
+		pr_err("ctx queue num[%u] is invalid!\n", ctx_q_num);
+		return -EINVAL;
+	}
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops sec_ctx_q_num_ops = {
+	.set = sec_ctx_q_num_set,
+	.get = param_get_int,
+};
+static u32 ctx_q_num = SEC_CTX_Q_NUM_DEF;
+module_param_cb(ctx_q_num, &sec_ctx_q_num_ops, &ctx_q_num, 0444);
+MODULE_PARM_DESC(ctx_q_num, "Queue num in ctx (2 default, 2, 4, ..., 32)");
+
+static const struct pci_device_id sec_dev_ids[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, SEC_PF_PCI_DEVICE_ID) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, SEC_VF_PCI_DEVICE_ID) },
+	{ 0, }
+};
+MODULE_DEVICE_TABLE(pci, sec_dev_ids);
+
+static inline void sec_add_to_list(struct sec_dev *sec)
+{
+	mutex_lock(&sec_list_lock);
+	list_add_tail(&sec->list, &sec_list);
+	mutex_unlock(&sec_list_lock);
+}
+
+static inline void sec_remove_from_list(struct sec_dev *sec)
+{
+	mutex_lock(&sec_list_lock);
+	list_del(&sec->list);
+	mutex_unlock(&sec_list_lock);
+}
+
+static u8 sec_get_endian(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 reg;
+
+	/*
+	 * As for VF, it is a wrong way to get endian setting by
+	 * reading a register of the engine
+	 */
+	if (qm->pdev->is_virtfn) {
+		dev_err_ratelimited(&qm->pdev->dev,
+				    "cannot access a register in VF!\n");
+		return SEC_LE;
+	}
+	reg = readl_relaxed(qm->io_base + SEC_ENGINE_PF_CFG_OFF +
+			    SEC_ACC_COMMON_REG_OFF + SEC_CONTROL_REG);
+
+	/* BD little endian mode */
+	if (!(reg & BIT(0)))
+		return SEC_LE;
+
+	/* BD 32-bits big endian mode */
+	else if (!(reg & BIT(1)))
+		return SEC_32BE;
+
+	/* BD 64-bits big endian mode */
+	else
+		return SEC_64BE;
+}
+
+static int sec_engine_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	int ret;
+	u32 reg;
+
+	/* disable clock gate control */
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg &= SEC_CLK_GATE_DISABLE;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	writel_relaxed(0x1, SEC_ADDR(qm, SEC_MEM_START_INIT_REG));
+
+	ret = readl_relaxed_poll_timeout(SEC_ADDR(qm, SEC_MEM_INIT_DONE_REG),
+					 reg, reg & 0x1, SEC_DELAY_10_US,
+					 SEC_POLL_TIMEOUT_US);
+	if (ret) {
+		dev_err(&qm->pdev->dev, "fail to init sec mem\n");
+		return ret;
+	}
+
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg |= (0x1 << SEC_TRNG_EN_SHIFT);
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL0_REG));
+	reg |= SEC_USER0_SMMU_NORMAL;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL0_REG));
+
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL1_REG));
+	reg |= SEC_USER1_SMMU_NORMAL;
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_INTERFACE_USER_CTRL1_REG));
+
+	writel(SEC_SINGLE_PORT_MAX_TRANS,
+	       qm->io_base + AM_CFG_SINGLE_PORT_MAX_TRANS);
+
+	writel(SEC_SAA_ENABLE, SEC_ADDR(qm, SEC_SAA_EN_REG));
+
+	/* Enable sm4 extra mode, as ctr/ecb */
+	writel_relaxed(SEC_BD_ERR_CHK_EN0,
+		       SEC_ADDR(qm, SEC_BD_ERR_CHK_EN_REG0));
+	/* Enable sm4 xts mode multiple iv */
+	writel_relaxed(SEC_BD_ERR_CHK_EN1,
+		       SEC_ADDR(qm, SEC_BD_ERR_CHK_EN_REG1));
+	writel_relaxed(SEC_BD_ERR_CHK_EN3,
+		       SEC_ADDR(qm, SEC_BD_ERR_CHK_EN_REG3));
+
+	/* config endian */
+	reg = readl_relaxed(SEC_ADDR(qm, SEC_CONTROL_REG));
+	reg |= sec_get_endian(sec);
+	writel_relaxed(reg, SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	return 0;
+}
+
+static int sec_set_user_domain_and_cache(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+
+	/* qm user domain */
+	writel(AXUSER_BASE, qm->io_base + QM_ARUSER_M_CFG_1);
+	writel(ARUSER_M_CFG_ENABLE, qm->io_base + QM_ARUSER_M_CFG_ENABLE);
+	writel(AXUSER_BASE, qm->io_base + QM_AWUSER_M_CFG_1);
+	writel(AWUSER_M_CFG_ENABLE, qm->io_base + QM_AWUSER_M_CFG_ENABLE);
+	writel(WUSER_M_CFG_ENABLE, qm->io_base + QM_WUSER_M_CFG_ENABLE);
+
+	/* qm cache */
+	writel(AXI_M_CFG, qm->io_base + QM_AXI_M_CFG);
+	writel(AXI_M_CFG_ENABLE, qm->io_base + QM_AXI_M_CFG_ENABLE);
+
+	/* disable FLR triggered by BME(bus master enable) */
+	writel(PEH_AXUSER_CFG, qm->io_base + QM_PEH_AXUSER_CFG);
+	writel(PEH_AXUSER_CFG_ENABLE, qm->io_base + QM_PEH_AXUSER_CFG_ENABLE);
+
+	/* enable sqc,cqc writeback */
+	writel(SQC_CACHE_ENABLE | CQC_CACHE_ENABLE | SQC_CACHE_WB_ENABLE |
+	       CQC_CACHE_WB_ENABLE | FIELD_PREP(SQC_CACHE_WB_THRD, 1) |
+	       FIELD_PREP(CQC_CACHE_WB_THRD, 1), qm->io_base + QM_CACHE_CTL);
+
+	return sec_engine_init(sec);
+}
+
+/* sec_debug_regs_clear() - clear the sec debug regs */
+static void sec_debug_regs_clear(struct hisi_qm *qm)
+{
+	/* clear current_qm */
+	writel(0x0, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(0x0, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	/* clear rdclr_en */
+	writel(0x0, qm->io_base + SEC_CTRL_CNT_CLR_CE);
+
+	hisi_qm_debug_regs_clear(qm);
+}
+
+static void sec_hw_error_enable(struct hisi_qm *qm)
+{
+	u32 val;
+
+	if (qm->ver == QM_HW_V1) {
+		writel(SEC_CORE_INT_DISABLE, qm->io_base + SEC_CORE_INT_MASK);
+		dev_info(&qm->pdev->dev, "V1 not support hw error handle\n");
+		return;
+	}
+
+	val = readl(SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	/* clear SEC hw error source if having */
+	writel(SEC_CORE_INT_CLEAR, qm->io_base + SEC_CORE_INT_SOURCE);
+
+	/* enable SEC hw error interrupts */
+	writel(SEC_CORE_INT_ENABLE, qm->io_base + SEC_CORE_INT_MASK);
+
+	/* enable RAS int */
+	writel(SEC_RAS_CE_ENB_MSK, qm->io_base + SEC_RAS_CE_REG);
+	writel(SEC_RAS_FE_ENB_MSK, qm->io_base + SEC_RAS_FE_REG);
+	writel(SEC_RAS_NFE_ENB_MSK, qm->io_base + SEC_RAS_NFE_REG);
+
+	/* enable SEC block master OOO when m-bit error occur */
+	val = val | SEC_AXI_SHUTDOWN_ENABLE;
+
+	writel(val, SEC_ADDR(qm, SEC_CONTROL_REG));
+}
+
+static void sec_hw_error_disable(struct hisi_qm *qm)
+{
+	u32 val;
+
+	val = readl(SEC_ADDR(qm, SEC_CONTROL_REG));
+
+	/* disable RAS int */
+	writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_CE_REG);
+	writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_FE_REG);
+	writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_NFE_REG);
+
+	/* disable SEC hw error interrupts */
+	writel(SEC_CORE_INT_DISABLE, qm->io_base + SEC_CORE_INT_MASK);
+
+	/* disable SEC block master OOO when m-bit error occur */
+	val = val & SEC_AXI_SHUTDOWN_DISABLE;
+
+	writel(val, SEC_ADDR(qm, SEC_CONTROL_REG));
+}
+
+static u32 sec_current_qm_read(struct sec_debug_file *file)
+{
+	struct hisi_qm *qm = file->qm;
+
+	return readl(qm->io_base + QM_DFX_MB_CNT_VF);
+}
+
+static int sec_current_qm_write(struct sec_debug_file *file, u32 val)
+{
+	struct hisi_qm *qm = file->qm;
+	struct sec_dev *sec = container_of(qm, struct sec_dev, qm);
+	u32 vfq_num;
+	u32 tmp;
+
+	if (val > sec->num_vfs)
+		return -EINVAL;
+
+	/* According PF or VF Dev ID to calculation curr_qm_qp_num and store */
+	if (!val) {
+		qm->debug.curr_qm_qp_num = qm->qp_num;
+	} else {
+		vfq_num = (qm->ctrl_qp_num - qm->qp_num) / sec->num_vfs;
+
+		if (val == sec->num_vfs)
+			qm->debug.curr_qm_qp_num =
+				qm->ctrl_qp_num - qm->qp_num -
+				(sec->num_vfs - 1) * vfq_num;
+		else
+			qm->debug.curr_qm_qp_num = vfq_num;
+	}
+
+	writel(val, qm->io_base + QM_DFX_MB_CNT_VF);
+	writel(val, qm->io_base + QM_DFX_DB_CNT_VF);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_SQE_CNT_VF_SQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_SQE_CNT_VF_SQN);
+
+	tmp = val |
+	      (readl(qm->io_base + QM_DFX_CQE_CNT_VF_CQN) & CURRENT_Q_MASK);
+	writel(tmp, qm->io_base + QM_DFX_CQE_CNT_VF_CQN);
+
+	return 0;
+}
+
+static u32 sec_clear_enable_read(struct sec_debug_file *file)
+{
+	struct hisi_qm *qm = file->qm;
+
+	return readl(qm->io_base + SEC_CTRL_CNT_CLR_CE) &
+			SEC_CTRL_CNT_CLR_CE_BIT;
+}
+
+static int sec_clear_enable_write(struct sec_debug_file *file, u32 val)
+{
+	struct hisi_qm *qm = file->qm;
+	u32 tmp;
+
+	if (val != 1 && val)
+		return -EINVAL;
+
+	tmp = (readl(qm->io_base + SEC_CTRL_CNT_CLR_CE) &
+	       ~SEC_CTRL_CNT_CLR_CE_BIT) | val;
+	writel(tmp, qm->io_base + SEC_CTRL_CNT_CLR_CE);
+
+	return 0;
+}
+
+static ssize_t sec_debug_read(struct file *filp, char __user *buf,
+			       size_t count, loff_t *pos)
+{
+	struct sec_debug_file *file = filp->private_data;
+	char tbuf[SEC_DBGFS_VAL_MAX_LEN];
+	u32 val;
+	int ret;
+
+	spin_lock_irq(&file->lock);
+
+	switch (file->index) {
+	case SEC_CURRENT_QM:
+		val = sec_current_qm_read(file);
+		break;
+	case SEC_CLEAR_ENABLE:
+		val = sec_clear_enable_read(file);
+		break;
+	default:
+		spin_unlock_irq(&file->lock);
+		return -EINVAL;
+	}
+
+	spin_unlock_irq(&file->lock);
+	ret = snprintf(tbuf, SEC_DBGFS_VAL_MAX_LEN, "%u\n", val);
+
+	return simple_read_from_buffer(buf, count, pos, tbuf, ret);
+}
+
+static ssize_t sec_debug_write(struct file *filp, const char __user *buf,
+			       size_t count, loff_t *pos)
+{
+	struct sec_debug_file *file = filp->private_data;
+	char tbuf[SEC_DBGFS_VAL_MAX_LEN];
+	unsigned long val;
+	int len, ret;
+
+	if (*pos != 0)
+		return 0;
+
+	if (count >= SEC_DBGFS_VAL_MAX_LEN)
+		return -ENOSPC;
+
+	len = simple_write_to_buffer(tbuf, SEC_DBGFS_VAL_MAX_LEN - 1,
+				     pos, buf, count);
+	if (len < 0)
+		return len;
+
+	tbuf[len] = '\0';
+	if (kstrtoul(tbuf, 0, &val))
+		return -EFAULT;
+
+	spin_lock_irq(&file->lock);
+
+	switch (file->index) {
+	case SEC_CURRENT_QM:
+		ret = sec_current_qm_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	case SEC_CLEAR_ENABLE:
+		ret = sec_clear_enable_write(file, val);
+		if (ret)
+			goto err_input;
+		break;
+	default:
+		ret = -EINVAL;
+		goto err_input;
+	}
+
+	spin_unlock_irq(&file->lock);
+
+	return count;
+
+ err_input:
+	spin_unlock_irq(&file->lock);
+	return ret;
+}
+
+static const struct file_operations sec_dbg_fops = {
+	.owner = THIS_MODULE,
+	.open = simple_open,
+	.read = sec_debug_read,
+	.write = sec_debug_write,
+};
+
+static int sec_debugfs_atomic64_get(void *data, u64 *val)
+{
+	*val = atomic64_read((atomic64_t *)data);
+	return 0;
+}
+DEFINE_DEBUGFS_ATTRIBUTE(sec_atomic64_ops, sec_debugfs_atomic64_get,
+			 NULL, "%lld\n");
+
+static int sec_core_debug_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	struct device *dev = &qm->pdev->dev;
+	struct sec_dfx *dfx = &sec->debug.dfx;
+	struct debugfs_regset32 *regset;
+	struct dentry *tmp_d;
+
+	tmp_d = debugfs_create_dir("sec_dfx", sec->qm.debug.debug_root);
+
+	regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
+	if (!regset)
+		return -ENOENT;
+
+	regset->regs = sec_dfx_regs;
+	regset->nregs = ARRAY_SIZE(sec_dfx_regs);
+	regset->base = qm->io_base;
+
+	debugfs_create_regset32("regs", 0444, tmp_d, regset);
+
+	debugfs_create_file("send_cnt", 0444, tmp_d,
+			    &dfx->send_cnt, &sec_atomic64_ops);
+
+	debugfs_create_file("recv_cnt", 0444, tmp_d,
+			    &dfx->recv_cnt, &sec_atomic64_ops);
+
+	return 0;
+}
+
+static int sec_debug_init(struct sec_dev *sec)
+{
+	int i;
+
+	for (i = SEC_CURRENT_QM; i < SEC_DEBUG_FILE_NUM; i++) {
+		spin_lock_init(&sec->debug.files[i].lock);
+		sec->debug.files[i].index = i;
+		sec->debug.files[i].qm = &sec->qm;
+
+		debugfs_create_file(sec_dbg_file_name[i], 0600,
+				    sec->qm.debug.debug_root,
+				    sec->debug.files + i,
+				    &sec_dbg_fops);
+	}
+
+	return sec_core_debug_init(sec);
+}
+
+static int sec_debugfs_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	struct device *dev = &qm->pdev->dev;
+	int ret;
+
+	qm->debug.debug_root = debugfs_create_dir(dev_name(dev),
+						  sec_debugfs_root);
+	ret = hisi_qm_debug_init(qm);
+	if (ret)
+		goto failed_to_create;
+
+	if (qm->pdev->device == SEC_PF_PCI_DEVICE_ID) {
+		ret = sec_debug_init(sec);
+		if (ret)
+			goto failed_to_create;
+	}
+
+	return 0;
+
+failed_to_create:
+	debugfs_remove_recursive(sec_debugfs_root);
+
+	return ret;
+}
+
+static void sec_debugfs_exit(struct sec_dev *sec)
+{
+	debugfs_remove_recursive(sec->qm.debug.debug_root);
+}
+
+static const struct hisi_qm_err_ini sec_err_ini = {
+	.hw_err_enable	= sec_hw_error_enable,
+	.hw_err_disable	= sec_hw_error_disable,
+	.err_info	= {
+		.ce		= QM_BASE_CE,
+		.nfe		= QM_BASE_NFE | QM_ACC_DO_TASK_TIMEOUT |
+				  QM_ACC_WB_NOT_READY_TIMEOUT,
+		.fe		= 0,
+		.msi		= QM_DB_RANDOM_INVALID,
+	}
+};
+
+static int sec_pf_probe_init(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	int ret;
+
+	switch (qm->ver) {
+	case QM_HW_V1:
+		qm->ctrl_qp_num = SEC_QUEUE_NUM_V1;
+		break;
+
+	case QM_HW_V2:
+		qm->ctrl_qp_num = SEC_QUEUE_NUM_V2;
+		break;
+
+	default:
+		return -EINVAL;
+	}
+
+	qm->err_ini = &sec_err_ini;
+
+	ret = sec_set_user_domain_and_cache(sec);
+	if (ret)
+		return ret;
+
+	hisi_qm_dev_err_init(qm);
+	sec_debug_regs_clear(qm);
+
+	return 0;
+}
+
+static int sec_qm_init(struct hisi_qm *qm, struct pci_dev *pdev)
+{
+	enum qm_hw_ver rev_id;
+
+	rev_id = hisi_qm_get_hw_version(pdev);
+	if (rev_id == QM_HW_UNKNOWN)
+		return -ENODEV;
+
+	qm->pdev = pdev;
+	qm->ver = rev_id;
+
+	qm->sqe_size = SEC_SQE_SIZE;
+	qm->dev_name = sec_name;
+	qm->fun_type = (pdev->device == SEC_PF_PCI_DEVICE_ID) ?
+			QM_HW_PF : QM_HW_VF;
+	qm->use_dma_api = true;
+
+	return hisi_qm_init(qm);
+}
+
+static void sec_qm_uninit(struct hisi_qm *qm)
+{
+	hisi_qm_uninit(qm);
+}
+
+static int sec_probe_init(struct hisi_qm *qm, struct sec_dev *sec)
+{
+	int ret;
+
+	/*
+	 * WQ_HIGHPRI: SEC request must be low delayed,
+	 * so need a high priority workqueue.
+	 * WQ_UNBOUND: SEC task is likely with long
+	 * running CPU intensive workloads.
+	 */
+	qm->wq = alloc_workqueue("%s", WQ_HIGHPRI |
+		WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus(),
+		pci_name(qm->pdev));
+	if (!qm->wq) {
+		pci_err(qm->pdev, "fail to alloc workqueue\n");
+		return -ENOMEM;
+	}
+
+	if (qm->fun_type == QM_HW_PF) {
+		qm->qp_base = SEC_PF_DEF_Q_BASE;
+		qm->qp_num = pf_q_num;
+		qm->debug.curr_qm_qp_num = pf_q_num;
+
+		ret = sec_pf_probe_init(sec);
+		if (ret)
+			goto err_probe_uninit;
+	} else if (qm->fun_type == QM_HW_VF) {
+		/*
+		 * have no way to get qm configure in VM in v1 hardware,
+		 * so currently force PF to uses SEC_PF_DEF_Q_NUM, and force
+		 * to trigger only one VF in v1 hardware.
+		 * v2 hardware has no such problem.
+		 */
+		if (qm->ver == QM_HW_V1) {
+			qm->qp_base = SEC_PF_DEF_Q_NUM;
+			qm->qp_num = SEC_QUEUE_NUM_V1 - SEC_PF_DEF_Q_NUM;
+		} else if (qm->ver == QM_HW_V2) {
+			/* v2 starts to support get vft by mailbox */
+			ret = hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
+			if (ret)
+				goto err_probe_uninit;
+		}
+	} else {
+		ret = -ENODEV;
+		goto err_probe_uninit;
+	}
+
+	return 0;
+err_probe_uninit:
+	destroy_workqueue(qm->wq);
+	return ret;
+}
+
+static void sec_probe_uninit(struct hisi_qm *qm)
+{
+	hisi_qm_dev_err_uninit(qm);
+
+	destroy_workqueue(qm->wq);
+}
+
+static int sec_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct sec_dev *sec;
+	struct hisi_qm *qm;
+	int ret;
+
+	sec = devm_kzalloc(&pdev->dev, sizeof(*sec), GFP_KERNEL);
+	if (!sec)
+		return -ENOMEM;
+
+	pci_set_drvdata(pdev, sec);
+
+	sec->ctx_q_num = ctx_q_num;
+
+	qm = &sec->qm;
+
+	ret = sec_qm_init(qm, pdev);
+	if (ret) {
+		pci_err(pdev, "Failed to pre init qm!\n");
+		return ret;
+	}
+
+	ret = sec_probe_init(qm, sec);
+	if (ret) {
+		pci_err(pdev, "Failed to probe!\n");
+		goto err_qm_uninit;
+	}
+
+	ret = hisi_qm_start(qm);
+	if (ret) {
+		pci_err(pdev, "Failed to start sec qm!\n");
+		goto err_probe_uninit;
+	}
+
+	ret = sec_debugfs_init(sec);
+	if (ret)
+		pci_warn(pdev, "Failed to init debugfs!\n");
+
+	sec_add_to_list(sec);
+
+	ret = sec_register_to_crypto();
+	if (ret < 0) {
+		pr_err("Failed to register driver to crypto.\n");
+		goto err_remove_from_list;
+	}
+
+	return 0;
+
+err_remove_from_list:
+	sec_remove_from_list(sec);
+	sec_debugfs_exit(sec);
+	hisi_qm_stop(qm);
+
+err_probe_uninit:
+	sec_probe_uninit(qm);
+
+err_qm_uninit:
+	sec_qm_uninit(qm);
+
+	return ret;
+}
+
+/* now we only support equal assignment */
+static int sec_vf_q_assign(struct sec_dev *sec, u32 num_vfs)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 qp_num = qm->qp_num;
+	u32 q_base = qp_num;
+	u32 q_num, remain_q_num;
+	int i, j, ret;
+
+	if (!num_vfs)
+		return -EINVAL;
+
+	remain_q_num = qm->ctrl_qp_num - qp_num;
+	q_num = remain_q_num / num_vfs;
+
+	for (i = 1; i <= num_vfs; i++) {
+		if (i == num_vfs)
+			q_num += remain_q_num % num_vfs;
+		ret = hisi_qm_set_vft(qm, i, q_base, q_num);
+		if (ret) {
+			for (j = i; j > 0; j--)
+				hisi_qm_set_vft(qm, j, 0, 0);
+			return ret;
+		}
+		q_base += q_num;
+	}
+
+	return 0;
+}
+
+static int sec_clear_vft_config(struct sec_dev *sec)
+{
+	struct hisi_qm *qm = &sec->qm;
+	u32 num_vfs = sec->num_vfs;
+	int ret;
+	u32 i;
+
+	for (i = 1; i <= num_vfs; i++) {
+		ret = hisi_qm_set_vft(qm, i, 0, 0);
+		if (ret)
+			return ret;
+	}
+
+	sec->num_vfs = 0;
+
+	return 0;
+}
+
+static int sec_sriov_enable(struct pci_dev *pdev, int max_vfs)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+	int pre_existing_vfs, ret;
+	u32 num_vfs;
+
+	pre_existing_vfs = pci_num_vf(pdev);
+
+	if (pre_existing_vfs) {
+		pci_err(pdev, "Can't enable VF. Please disable at first!\n");
+		return 0;
+	}
+
+	num_vfs = min_t(u32, max_vfs, SEC_VF_NUM);
+
+	ret = sec_vf_q_assign(sec, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't assign queues for VF!\n");
+		return ret;
+	}
+
+	sec->num_vfs = num_vfs;
+
+	ret = pci_enable_sriov(pdev, num_vfs);
+	if (ret) {
+		pci_err(pdev, "Can't enable VF!\n");
+		sec_clear_vft_config(sec);
+		return ret;
+	}
+
+	return num_vfs;
+}
+
+static int sec_sriov_disable(struct pci_dev *pdev)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+
+	if (pci_vfs_assigned(pdev)) {
+		pci_err(pdev, "Can't disable VFs while VFs are assigned!\n");
+		return -EPERM;
+	}
+
+	/* remove in sec_pci_driver will be called to free VF resources */
+	pci_disable_sriov(pdev);
+
+	return sec_clear_vft_config(sec);
+}
+
+static int sec_sriov_configure(struct pci_dev *pdev, int num_vfs)
+{
+	if (num_vfs)
+		return sec_sriov_enable(pdev, num_vfs);
+	else
+		return sec_sriov_disable(pdev);
+}
+
+static void sec_remove(struct pci_dev *pdev)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+	struct hisi_qm *qm = &sec->qm;
+
+	sec_unregister_from_crypto();
+
+	sec_remove_from_list(sec);
+
+	if (qm->fun_type == QM_HW_PF && sec->num_vfs)
+		(void)sec_sriov_disable(pdev);
+
+	sec_debugfs_exit(sec);
+
+	(void)hisi_qm_stop(qm);
+
+	if (qm->fun_type == QM_HW_PF)
+		sec_debug_regs_clear(qm);
+
+	sec_probe_uninit(qm);
+
+	sec_qm_uninit(qm);
+}
+
+static void sec_log_hw_error(struct sec_dev *sec, u32 err_sts)
+{
+	const struct sec_hw_error *errs = sec_hw_errors;
+	struct device *dev = &sec->qm.pdev->dev;
+	u32 err_val;
+
+	while (errs->msg) {
+		if (errs->int_msk & err_sts) {
+			dev_err(dev, "%s [error status=0x%x] found\n",
+				errs->msg, errs->int_msk);
+
+			if (SEC_CORE_INT_STATUS_M_ECC & err_sts) {
+				err_val = readl(sec->qm.io_base +
+						SEC_CORE_SRAM_ECC_ERR_INFO);
+				dev_err(dev, "multi ecc sram num=0x%x\n",
+					SEC_ECC_NUM(err_val));
+				dev_err(dev, "multi ecc sram addr=0x%x\n",
+					SEC_ECC_ADDR(err_val));
+			}
+		}
+		errs++;
+	}
+}
+
+static pci_ers_result_t sec_hw_error_handle(struct sec_dev *sec)
+{
+	u32 err_sts;
+
+	/* read err sts */
+	err_sts = readl(sec->qm.io_base + SEC_CORE_INT_STATUS);
+	if (err_sts) {
+		sec_log_hw_error(sec, err_sts);
+
+		/* clear error interrupts */
+		writel(err_sts, sec->qm.io_base + SEC_CORE_INT_SOURCE);
+
+		return PCI_ERS_RESULT_NEED_RESET;
+	}
+
+	return PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t sec_process_hw_error(struct pci_dev *pdev)
+{
+	struct sec_dev *sec = pci_get_drvdata(pdev);
+	pci_ers_result_t qm_ret, sec_ret;
+
+	if (!sec) {
+		pci_err(pdev, "Can't recover error during device init\n");
+		return PCI_ERS_RESULT_NONE;
+	}
+
+	/* log qm error */
+	qm_ret = hisi_qm_hw_error_handle(&sec->qm);
+
+	/* log sec error */
+	sec_ret = sec_hw_error_handle(sec);
+
+	return (qm_ret == PCI_ERS_RESULT_NEED_RESET ||
+		sec_ret == PCI_ERS_RESULT_NEED_RESET) ?
+		PCI_ERS_RESULT_NEED_RESET : PCI_ERS_RESULT_RECOVERED;
+}
+
+static pci_ers_result_t sec_error_detected(struct pci_dev *pdev,
+					   pci_channel_state_t state)
+{
+	if (pdev->is_virtfn)
+		return PCI_ERS_RESULT_NONE;
+
+	pci_info(pdev, "PCI error detected, state(=%d)!!\n", state);
+	if (state == pci_channel_io_perm_failure)
+		return PCI_ERS_RESULT_DISCONNECT;
+
+	return sec_process_hw_error(pdev);
+}
+
+static const struct pci_error_handlers sec_err_handler = {
+	.error_detected = sec_error_detected,
+};
+
+static struct pci_driver sec_pci_driver = {
+	.name = "hisi_sec2",
+	.id_table = sec_dev_ids,
+	.probe = sec_probe,
+	.remove = sec_remove,
+	.err_handler = &sec_err_handler,
+	.sriov_configure = sec_sriov_configure,
+};
+
+static void sec_register_debugfs(void)
+{
+	if (!debugfs_initialized())
+		return;
+
+	sec_debugfs_root = debugfs_create_dir("hisi_sec2", NULL);
+}
+
+static void sec_unregister_debugfs(void)
+{
+	debugfs_remove_recursive(sec_debugfs_root);
+}
+
+static int __init sec_init(void)
+{
+	int ret;
+
+	sec_register_debugfs();
+
+	ret = pci_register_driver(&sec_pci_driver);
+	if (ret < 0) {
+		sec_unregister_debugfs();
+		pr_err("Failed to register pci driver.\n");
+		return ret;
+	}
+
+	return 0;
+}
+
+static void __exit sec_exit(void)
+{
+	pci_unregister_driver(&sec_pci_driver);
+	sec_unregister_debugfs();
+}
+
+module_init(sec_init);
+module_exit(sec_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Zaibo Xu <xuzaibo@huawei.com>");
+MODULE_AUTHOR("Longfang Liu <liulongfang@huawei.com>");
+MODULE_AUTHOR("Wei Zhang <zhangwei375@huawei.com>");
+MODULE_DESCRIPTION("Driver for HiSilicon SEC accelerator");
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/sgl.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/sgl.c
@@ -2,37 +2,13 @@
 /* Copyright (c) 2019 HiSilicon Limited. */
 #include <linux/dma-mapping.h>
 #include <linux/module.h>
-#include "./sgl.h"
+#include <linux/slab.h>
+#include "qm.h"
 
 #define HISI_ACC_SGL_SGE_NR_MIN		1
-#define HISI_ACC_SGL_SGE_NR_MAX		255
-#define HISI_ACC_SGL_SGE_NR_DEF		10
 #define HISI_ACC_SGL_NR_MAX		256
 #define HISI_ACC_SGL_ALIGN_SIZE		64
-
-static int acc_sgl_sge_set(const char *val, const struct kernel_param *kp)
-{
-	int ret;
-	u32 n;
-
-	if (!val)
-		return -EINVAL;
-
-	ret = kstrtou32(val, 10, &n);
-	if (ret != 0 || n > HISI_ACC_SGL_SGE_NR_MAX || n == 0)
-		return -EINVAL;
-
-	return param_set_int(val, kp);
-}
-
-static const struct kernel_param_ops acc_sgl_sge_ops = {
-	.set = acc_sgl_sge_set,
-	.get = param_get_int,
-};
-
-static u32 acc_sgl_sge_nr = HISI_ACC_SGL_SGE_NR_DEF;
-module_param_cb(acc_sgl_sge_nr, &acc_sgl_sge_ops, &acc_sgl_sge_nr, 0444);
-MODULE_PARM_DESC(acc_sgl_sge_nr, "Number of sge in sgl(1-255)");
+#define HISI_ACC_MEM_BLOCK_NR		5
 
 struct acc_hw_sge {
 	dma_addr_t buf;
@@ -55,37 +31,91 @@
 	struct acc_hw_sge sge_entries[];
 } __aligned(1);
 
+struct hisi_acc_sgl_pool {
+	struct mem_block {
+		struct hisi_acc_hw_sgl *sgl;
+		dma_addr_t sgl_dma;
+		size_t size;
+	} mem_block[HISI_ACC_MEM_BLOCK_NR];
+	u32 sgl_num_per_block;
+	u32 block_num;
+	u32 count;
+	u32 sge_nr;
+	size_t sgl_size;
+};
+
 /**
  * hisi_acc_create_sgl_pool() - Create a hw sgl pool.
  * @dev: The device which hw sgl pool belongs to.
- * @pool: Pointer of pool.
  * @count: Count of hisi_acc_hw_sgl in pool.
+ * @sge_nr: The count of sge in hw_sgl
  *
  * This function creates a hw sgl pool, after this user can get hw sgl memory
  * from it.
  */
-int hisi_acc_create_sgl_pool(struct device *dev,
-			     struct hisi_acc_sgl_pool *pool, u32 count)
+struct hisi_acc_sgl_pool *hisi_acc_create_sgl_pool(struct device *dev,
+						   u32 count, u32 sge_nr)
 {
-	u32 sgl_size;
-	u32 size;
+	u32 sgl_size, block_size, sgl_num_per_block, block_num, remain_sgl = 0;
+	struct hisi_acc_sgl_pool *pool;
+	struct mem_block *block;
+	u32 i, j;
 
-	if (!dev || !pool || !count)
-		return -EINVAL;
+	if (!dev || !count || !sge_nr || sge_nr > HISI_ACC_SGL_SGE_NR_MAX)
+		return ERR_PTR(-EINVAL);
 
-	sgl_size = sizeof(struct acc_hw_sge) * acc_sgl_sge_nr +
+	sgl_size = sizeof(struct acc_hw_sge) * sge_nr +
 		   sizeof(struct hisi_acc_hw_sgl);
-	size = sgl_size * count;
+	block_size = PAGE_SIZE * (1 << (MAX_ORDER - 1));
+	sgl_num_per_block = block_size / sgl_size;
+	block_num = count / sgl_num_per_block;
+	remain_sgl = count % sgl_num_per_block;
+
+	if ((!remain_sgl && block_num > HISI_ACC_MEM_BLOCK_NR) ||
+	    (remain_sgl > 0 && block_num > HISI_ACC_MEM_BLOCK_NR - 1))
+		return ERR_PTR(-EINVAL);
+
+	pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+	if (!pool)
+		return ERR_PTR(-ENOMEM);
+	block = pool->mem_block;
+
+	for (i = 0; i < block_num; i++) {
+		block[i].sgl = dma_alloc_coherent(dev, block_size,
+						  &block[i].sgl_dma,
+						  GFP_KERNEL);
+		if (!block[i].sgl)
+			goto err_free_mem;
+
+		block[i].size = block_size;
+	}
 
-	pool->sgl = dma_alloc_coherent(dev, size, &pool->sgl_dma, GFP_KERNEL);
-	if (!pool->sgl)
-		return -ENOMEM;
+	if (remain_sgl > 0) {
+		block[i].sgl = dma_alloc_coherent(dev, remain_sgl * sgl_size,
+						  &block[i].sgl_dma,
+						  GFP_KERNEL);
+		if (!block[i].sgl)
+			goto err_free_mem;
 
-	pool->size = size;
+		block[i].size = remain_sgl * sgl_size;
+	}
+
+	pool->sgl_num_per_block = sgl_num_per_block;
+	pool->block_num = remain_sgl ? block_num + 1 : block_num;
 	pool->count = count;
 	pool->sgl_size = sgl_size;
+	pool->sge_nr = sge_nr;
+
+	return pool;
 
-	return 0;
+err_free_mem:
+	for (j = 0; j < i; j++) {
+		dma_free_coherent(dev, block_size, block[j].sgl,
+				  block[j].sgl_dma);
+		memset(block + j, 0, sizeof(*block));
+	}
+	kfree(pool);
+	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL_GPL(hisi_acc_create_sgl_pool);
 
@@ -98,38 +128,57 @@
  */
 void hisi_acc_free_sgl_pool(struct device *dev, struct hisi_acc_sgl_pool *pool)
 {
-	dma_free_coherent(dev, pool->size, pool->sgl, pool->sgl_dma);
-	memset(pool, 0, sizeof(struct hisi_acc_sgl_pool));
+	struct mem_block *block;
+	int i;
+
+	if (!dev || !pool)
+		return;
+
+	block = pool->mem_block;
+
+	for (i = 0; i < pool->block_num; i++)
+		dma_free_coherent(dev, block[i].size, block[i].sgl,
+				  block[i].sgl_dma);
+
+	kfree(pool);
 }
 EXPORT_SYMBOL_GPL(hisi_acc_free_sgl_pool);
 
-struct hisi_acc_hw_sgl *acc_get_sgl(struct hisi_acc_sgl_pool *pool, u32 index,
-				    dma_addr_t *hw_sgl_dma)
+static struct hisi_acc_hw_sgl *acc_get_sgl(struct hisi_acc_sgl_pool *pool,
+					   u32 index, dma_addr_t *hw_sgl_dma)
 {
-	if (!pool || !hw_sgl_dma || index >= pool->count || !pool->sgl)
+	struct mem_block *block;
+	u32 block_index, offset;
+
+	if (!pool || !hw_sgl_dma || index >= pool->count)
 		return ERR_PTR(-EINVAL);
 
-	*hw_sgl_dma = pool->sgl_dma + pool->sgl_size * index;
-	return (void *)pool->sgl + pool->sgl_size * index;
-}
+	block = pool->mem_block;
+	block_index = index / pool->sgl_num_per_block;
+	offset = index % pool->sgl_num_per_block;
 
-void acc_put_sgl(struct hisi_acc_sgl_pool *pool, u32 index) {}
+	*hw_sgl_dma = block[block_index].sgl_dma + pool->sgl_size * offset;
+	return (void *)block[block_index].sgl + pool->sgl_size * offset;
+}
 
 static void sg_map_to_hw_sg(struct scatterlist *sgl,
 			    struct acc_hw_sge *hw_sge)
 {
-	hw_sge->buf = sgl->dma_address;
-	hw_sge->len = sgl->dma_length;
+	hw_sge->buf = sg_dma_address(sgl);
+	hw_sge->len = cpu_to_le32(sg_dma_len(sgl));
 }
 
 static void inc_hw_sgl_sge(struct hisi_acc_hw_sgl *hw_sgl)
 {
-	hw_sgl->entry_sum_in_sgl++;
+	u16 var = le16_to_cpu(hw_sgl->entry_sum_in_sgl);
+
+	var++;
+	hw_sgl->entry_sum_in_sgl = cpu_to_le16(var);
 }
 
 static void update_hw_sgl_sum_sge(struct hisi_acc_hw_sgl *hw_sgl, u16 sum)
 {
-	hw_sgl->entry_sum_in_chain = sum;
+	hw_sgl->entry_sum_in_chain = cpu_to_le16(sum);
 }
 
 /**
@@ -153,10 +202,13 @@
 	dma_addr_t curr_sgl_dma = 0;
 	struct acc_hw_sge *curr_hw_sge;
 	struct scatterlist *sg;
-	int sg_n = sg_nents(sgl);
-	int i, ret;
+	int i, ret, sg_n;
+
+	if (!dev || !sgl || !pool || !hw_sgl_dma)
+		return ERR_PTR(-EINVAL);
 
-	if (!dev || !sgl || !pool || !hw_sgl_dma || sg_n > acc_sgl_sge_nr)
+	sg_n = sg_nents(sgl);
+	if (sg_n > pool->sge_nr)
 		return ERR_PTR(-EINVAL);
 
 	ret = dma_map_sg(dev, sgl, sg_n, DMA_BIDIRECTIONAL);
@@ -164,11 +216,12 @@
 		return ERR_PTR(-EINVAL);
 
 	curr_hw_sgl = acc_get_sgl(pool, index, &curr_sgl_dma);
-	if (!curr_hw_sgl) {
-		ret = -ENOMEM;
-		goto err_unmap_sg;
+	if (IS_ERR(curr_hw_sgl)) {
+		dma_unmap_sg(dev, sgl, sg_n, DMA_BIDIRECTIONAL);
+		return ERR_PTR(-ENOMEM);
+
 	}
-	curr_hw_sgl->entry_length_in_sgl = acc_sgl_sge_nr;
+	curr_hw_sgl->entry_length_in_sgl = cpu_to_le16(pool->sge_nr);
 	curr_hw_sge = curr_hw_sgl->sge_entries;
 
 	for_each_sg(sgl, sg, sg_n, i) {
@@ -177,14 +230,10 @@
 		curr_hw_sge++;
 	}
 
-	update_hw_sgl_sum_sge(curr_hw_sgl, acc_sgl_sge_nr);
+	update_hw_sgl_sum_sge(curr_hw_sgl, pool->sge_nr);
 	*hw_sgl_dma = curr_sgl_dma;
 
 	return curr_hw_sgl;
-
-err_unmap_sg:
-	dma_unmap_sg(dev, sgl, sg_n, DMA_BIDIRECTIONAL);
-	return ERR_PTR(ret);
 }
 EXPORT_SYMBOL_GPL(hisi_acc_sg_buf_map_to_hw_sgl);
 
@@ -201,6 +250,9 @@
 void hisi_acc_sg_buf_unmap(struct device *dev, struct scatterlist *sgl,
 			   struct hisi_acc_hw_sgl *hw_sgl)
 {
+	if (!dev || !sgl || !hw_sgl)
+		return;
+
 	dma_unmap_sg(dev, sgl, sg_nents(sgl), DMA_BIDIRECTIONAL);
 
 	hw_sgl->entry_sum_in_chain = 0;
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/zip/zip.h
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/zip/zip.h
@@ -8,10 +8,13 @@
 
 #include <linux/list.h>
 #include "../qm.h"
-#include "../sgl.h"
 
 /* hisi_zip_sqe dw3 */
 #define HZIP_BD_STATUS_M			GENMASK(7, 0)
+/* hisi_zip_sqe dw7 */
+#define HZIP_IN_SGE_DATA_OFFSET_M		GENMASK(23, 0)
+/* hisi_zip_sqe dw8 */
+#define HZIP_OUT_SGE_DATA_OFFSET_M		GENMASK(23, 0)
 /* hisi_zip_sqe dw9 */
 #define HZIP_REQ_TYPE_M				GENMASK(7, 0)
 #define HZIP_ALG_TYPE_ZLIB			0x02
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/zip/zip_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/zip/zip_crypto.c
@@ -22,6 +22,7 @@
 #define HZIP_CTX_Q_NUM				2
 #define HZIP_GZIP_HEAD_BUF			256
 #define HZIP_ALG_PRIORITY			300
+#define HZIP_SGL_SGE_NR				10
 
 static const u8 zlib_head[HZIP_ZLIB_HEAD_SIZE] = {0x78, 0x9c};
 static const u8 gzip_head[HZIP_GZIP_HEAD_SIZE] = {0x1f, 0x8b, 0x08, 0x0, 0x0,
@@ -41,14 +42,12 @@
 
 #define TO_HEAD(req_type)						\
 	(((req_type) == HZIP_ALG_TYPE_ZLIB) ? zlib_head :		\
-	 ((req_type) == HZIP_ALG_TYPE_GZIP) ? gzip_head : 0)		\
+	 ((req_type) == HZIP_ALG_TYPE_GZIP) ? gzip_head : NULL)		\
 
 struct hisi_zip_req {
 	struct acomp_req *req;
-	struct scatterlist *src;
-	struct scatterlist *dst;
-	size_t slen;
-	size_t dlen;
+	int sskip;
+	int dskip;
 	struct hisi_acc_hw_sgl *hw_src;
 	struct hisi_acc_hw_sgl *hw_dst;
 	dma_addr_t dma_src;
@@ -67,7 +66,7 @@
 	struct hisi_qp *qp;
 	struct hisi_zip_sqe zip_sqe;
 	struct hisi_zip_req_q req_q;
-	struct hisi_acc_sgl_pool sgl_pool;
+	struct hisi_acc_sgl_pool *sgl_pool;
 	struct hisi_zip *zip_dev;
 	struct hisi_zip_ctx *ctx;
 };
@@ -78,6 +77,30 @@
 	struct hisi_zip_qp_ctx qp_ctx[HZIP_CTX_Q_NUM];
 };
 
+static int sgl_sge_nr_set(const char *val, const struct kernel_param *kp)
+{
+	int ret;
+	u16 n;
+
+	if (!val)
+		return -EINVAL;
+
+	ret = kstrtou16(val, 10, &n);
+	if (ret || n == 0 || n > HISI_ACC_SGL_SGE_NR_MAX)
+		return -EINVAL;
+
+	return param_set_int(val, kp);
+}
+
+static const struct kernel_param_ops sgl_sge_nr_ops = {
+	.set = sgl_sge_nr_set,
+	.get = param_get_int,
+};
+
+static u16 sgl_sge_nr = HZIP_SGL_SGE_NR;
+module_param_cb(sgl_sge_nr, &sgl_sge_nr_ops, &sgl_sge_nr, 0444);
+MODULE_PARM_DESC(sgl_sge_nr, "Number of sge in sgl(1-255)");
+
 static void hisi_zip_config_buf_type(struct hisi_zip_sqe *sqe, u8 buf_type)
 {
 	u32 val;
@@ -94,13 +117,15 @@
 
 static void hisi_zip_fill_sqe(struct hisi_zip_sqe *sqe, u8 req_type,
 			      dma_addr_t s_addr, dma_addr_t d_addr, u32 slen,
-			      u32 dlen)
+			      u32 dlen, int sskip, int dskip)
 {
 	memset(sqe, 0, sizeof(struct hisi_zip_sqe));
 
-	sqe->input_data_length = slen;
+	sqe->input_data_length = slen - sskip;
+	sqe->dw7 = FIELD_PREP(HZIP_IN_SGE_DATA_OFFSET_M, sskip);
+	sqe->dw8 = FIELD_PREP(HZIP_OUT_SGE_DATA_OFFSET_M, dskip);
 	sqe->dw9 = FIELD_PREP(HZIP_REQ_TYPE_M, req_type);
-	sqe->dest_avail_out = dlen;
+	sqe->dest_avail_out = dlen - dskip;
 	sqe->source_addr_l = lower_32_bits(s_addr);
 	sqe->source_addr_h = upper_32_bits(s_addr);
 	sqe->dest_addr_l = lower_32_bits(d_addr);
@@ -265,14 +290,15 @@
 static int hisi_zip_create_sgl_pool(struct hisi_zip_ctx *ctx)
 {
 	struct hisi_zip_qp_ctx *tmp;
-	int i, ret;
+	struct device *dev;
+	int i;
 
 	for (i = 0; i < HZIP_CTX_Q_NUM; i++) {
 		tmp = &ctx->qp_ctx[i];
-		ret = hisi_acc_create_sgl_pool(&tmp->qp->qm->pdev->dev,
-					       &tmp->sgl_pool,
-					       QM_Q_DEPTH << 1);
-		if (ret < 0) {
+		dev = &tmp->qp->qm->pdev->dev;
+		tmp->sgl_pool = hisi_acc_create_sgl_pool(dev, QM_Q_DEPTH << 1,
+							 sgl_sge_nr);
+		if (IS_ERR(tmp->sgl_pool)) {
 			if (i == 1)
 				goto err_free_sgl_pool0;
 			return -ENOMEM;
@@ -283,7 +309,7 @@
 
 err_free_sgl_pool0:
 	hisi_acc_free_sgl_pool(&ctx->qp_ctx[QPC_COMP].qp->qm->pdev->dev,
-			       &ctx->qp_ctx[QPC_COMP].sgl_pool);
+			       ctx->qp_ctx[QPC_COMP].sgl_pool);
 	return -ENOMEM;
 }
 
@@ -293,7 +319,7 @@
 
 	for (i = 0; i < HZIP_CTX_Q_NUM; i++)
 		hisi_acc_free_sgl_pool(&ctx->qp_ctx[i].qp->qm->pdev->dev,
-				       &ctx->qp_ctx[i].sgl_pool);
+				       ctx->qp_ctx[i].sgl_pool);
 }
 
 static void hisi_zip_remove_req(struct hisi_zip_qp_ctx *qp_ctx,
@@ -301,11 +327,6 @@
 {
 	struct hisi_zip_req_q *req_q = &qp_ctx->req_q;
 
-	if (qp_ctx->qp->alg_type == HZIP_ALG_TYPE_COMP)
-		kfree(req->dst);
-	else
-		kfree(req->src);
-
 	write_lock(&req_q->req_lock);
 	clear_bit(req->req_id, req_q->req_bitmap);
 	memset(req, 0, sizeof(struct hisi_zip_req));
@@ -333,8 +354,8 @@
 	}
 	dlen = sqe->produced;
 
-	hisi_acc_sg_buf_unmap(dev, req->src, req->hw_src);
-	hisi_acc_sg_buf_unmap(dev, req->dst, req->hw_dst);
+	hisi_acc_sg_buf_unmap(dev, acomp_req->src, req->hw_src);
+	hisi_acc_sg_buf_unmap(dev, acomp_req->dst, req->hw_dst);
 
 	head_size = (qp->alg_type == 0) ? TO_HEAD_SIZE(qp->req_type) : 0;
 	acomp_req->dlen = dlen + head_size;
@@ -428,20 +449,6 @@
 	}
 }
 
-static int get_sg_skip_bytes(struct scatterlist *sgl, size_t bytes,
-			     size_t remains, struct scatterlist **out)
-{
-#define SPLIT_NUM 2
-	size_t split_sizes[SPLIT_NUM];
-	int out_mapped_nents[SPLIT_NUM];
-
-	split_sizes[0] = bytes;
-	split_sizes[1] = remains;
-
-	return sg_split(sgl, 0, 0, SPLIT_NUM, split_sizes, out,
-			out_mapped_nents, GFP_KERNEL);
-}
-
 static struct hisi_zip_req *hisi_zip_create_req(struct acomp_req *req,
 						struct hisi_zip_qp_ctx *qp_ctx,
 						size_t head_size, bool is_comp)
@@ -449,31 +456,7 @@
 	struct hisi_zip_req_q *req_q = &qp_ctx->req_q;
 	struct hisi_zip_req *q = req_q->q;
 	struct hisi_zip_req *req_cache;
-	struct scatterlist *out[2];
-	struct scatterlist *sgl;
-	size_t len;
-	int ret, req_id;
-
-	/*
-	 * remove/add zlib/gzip head, as hardware operations do not include
-	 * comp head. so split req->src to get sgl without heads in acomp, or
-	 * add comp head to req->dst ahead of that hardware output compressed
-	 * data in sgl splited from req->dst without comp head.
-	 */
-	if (is_comp) {
-		sgl = req->dst;
-		len = req->dlen - head_size;
-	} else {
-		sgl = req->src;
-		len = req->slen - head_size;
-	}
-
-	ret = get_sg_skip_bytes(sgl, head_size, len, out);
-	if (ret)
-		return ERR_PTR(ret);
-
-	/* sgl for comp head is useless, so free it now */
-	kfree(out[0]);
+	int req_id;
 
 	write_lock(&req_q->req_lock);
 
@@ -481,7 +464,6 @@
 	if (req_id >= req_q->size) {
 		write_unlock(&req_q->req_lock);
 		dev_dbg(&qp_ctx->qp->qm->pdev->dev, "req cache is full!\n");
-		kfree(out[1]);
 		return ERR_PTR(-EBUSY);
 	}
 	set_bit(req_id, req_q->req_bitmap);
@@ -489,16 +471,13 @@
 	req_cache = q + req_id;
 	req_cache->req_id = req_id;
 	req_cache->req = req;
+
 	if (is_comp) {
-		req_cache->src = req->src;
-		req_cache->dst = out[1];
-		req_cache->slen = req->slen;
-		req_cache->dlen = req->dlen - head_size;
+		req_cache->sskip = 0;
+		req_cache->dskip = head_size;
 	} else {
-		req_cache->src = out[1];
-		req_cache->dst = req->dst;
-		req_cache->slen = req->slen - head_size;
-		req_cache->dlen = req->dlen;
+		req_cache->sskip = head_size;
+		req_cache->dskip = 0;
 	}
 
 	write_unlock(&req_q->req_lock);
@@ -510,23 +489,24 @@
 			    struct hisi_zip_qp_ctx *qp_ctx)
 {
 	struct hisi_zip_sqe *zip_sqe = &qp_ctx->zip_sqe;
+	struct acomp_req *a_req = req->req;
 	struct hisi_qp *qp = qp_ctx->qp;
 	struct device *dev = &qp->qm->pdev->dev;
-	struct hisi_acc_sgl_pool *pool = &qp_ctx->sgl_pool;
+	struct hisi_acc_sgl_pool *pool = qp_ctx->sgl_pool;
 	dma_addr_t input;
 	dma_addr_t output;
 	int ret;
 
-	if (!req->src || !req->slen || !req->dst || !req->dlen)
+	if (!a_req->src || !a_req->slen || !a_req->dst || !a_req->dlen)
 		return -EINVAL;
 
-	req->hw_src = hisi_acc_sg_buf_map_to_hw_sgl(dev, req->src, pool,
+	req->hw_src = hisi_acc_sg_buf_map_to_hw_sgl(dev, a_req->src, pool,
 						    req->req_id << 1, &input);
 	if (IS_ERR(req->hw_src))
 		return PTR_ERR(req->hw_src);
 	req->dma_src = input;
 
-	req->hw_dst = hisi_acc_sg_buf_map_to_hw_sgl(dev, req->dst, pool,
+	req->hw_dst = hisi_acc_sg_buf_map_to_hw_sgl(dev, a_req->dst, pool,
 						    (req->req_id << 1) + 1,
 						    &output);
 	if (IS_ERR(req->hw_dst)) {
@@ -535,8 +515,8 @@
 	}
 	req->dma_dst = output;
 
-	hisi_zip_fill_sqe(zip_sqe, qp->req_type, input, output, req->slen,
-			  req->dlen);
+	hisi_zip_fill_sqe(zip_sqe, qp->req_type, input, output, a_req->slen,
+			  a_req->dlen, req->sskip, req->dskip);
 	hisi_zip_config_buf_type(zip_sqe, HZIP_SGL);
 	hisi_zip_config_tag(zip_sqe, req->req_id);
 
@@ -548,9 +528,9 @@
 	return -EINPROGRESS;
 
 err_unmap_output:
-	hisi_acc_sg_buf_unmap(dev, req->dst, req->hw_dst);
+	hisi_acc_sg_buf_unmap(dev, a_req->dst, req->hw_dst);
 err_unmap_input:
-	hisi_acc_sg_buf_unmap(dev, req->src, req->hw_src);
+	hisi_acc_sg_buf_unmap(dev, a_req->src, req->hw_src);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/crypto/hisilicon/zip/zip_main.c
+++ linux-ein-5.4.0/drivers/crypto/hisilicon/zip/zip_main.c
@@ -60,13 +60,13 @@
 #define HZIP_CORE_DEBUG_DECOMP_5	0x309000
 
 #define HZIP_CORE_INT_SOURCE		0x3010A0
-#define HZIP_CORE_INT_MASK		0x3010A4
+#define HZIP_CORE_INT_MASK_REG		0x3010A4
 #define HZIP_CORE_INT_STATUS		0x3010AC
 #define HZIP_CORE_INT_STATUS_M_ECC	BIT(1)
 #define HZIP_CORE_SRAM_ECC_ERR_INFO	0x301148
 #define SRAM_ECC_ERR_NUM_SHIFT		16
 #define SRAM_ECC_ERR_ADDR_SHIFT		24
-#define HZIP_CORE_INT_DISABLE		0x000007FF
+#define HZIP_CORE_INT_MASK_ALL		GENMASK(10, 0)
 #define HZIP_COMP_CORE_NUM		2
 #define HZIP_DECOMP_CORE_NUM		6
 #define HZIP_CORE_NUM			(HZIP_COMP_CORE_NUM + \
@@ -79,47 +79,80 @@
 #define HZIP_SOFT_CTRL_CNT_CLR_CE	0x301000
 #define SOFT_CTRL_CNT_CLR_CE_BIT	BIT(0)
 
-#define HZIP_NUMA_DISTANCE		100
 #define HZIP_BUF_SIZE			22
 
 static const char hisi_zip_name[] = "hisi_zip";
 static struct dentry *hzip_debugfs_root;
-LIST_HEAD(hisi_zip_list);
-DEFINE_MUTEX(hisi_zip_list_lock);
+static LIST_HEAD(hisi_zip_list);
+static DEFINE_MUTEX(hisi_zip_list_lock);
 
-#ifdef CONFIG_NUMA
-static struct hisi_zip *find_zip_device_numa(int node)
+struct hisi_zip_resource {
+	struct hisi_zip *hzip;
+	int distance;
+	struct list_head list;
+};
+
+static void free_list(struct list_head *head)
 {
-	struct hisi_zip *zip = NULL;
-	struct hisi_zip *hisi_zip;
-	int min_distance = HZIP_NUMA_DISTANCE;
-	struct device *dev;
+	struct hisi_zip_resource *res, *tmp;
 
-	list_for_each_entry(hisi_zip, &hisi_zip_list, list) {
-		dev = &hisi_zip->qm.pdev->dev;
-		if (node_distance(dev->numa_node, node) < min_distance) {
-			zip = hisi_zip;
-			min_distance = node_distance(dev->numa_node, node);
-		}
+	list_for_each_entry_safe(res, tmp, head, list) {
+		list_del(&res->list);
+		kfree(res);
 	}
-
-	return zip;
 }
-#endif
 
 struct hisi_zip *find_zip_device(int node)
 {
-	struct hisi_zip *zip = NULL;
+	struct hisi_zip_resource *res, *tmp;
+	struct hisi_zip *ret = NULL;
+	struct hisi_zip *hisi_zip;
+	struct list_head *n;
+	struct device *dev;
+	LIST_HEAD(head);
 
 	mutex_lock(&hisi_zip_list_lock);
-#ifdef CONFIG_NUMA
-	zip = find_zip_device_numa(node);
-#else
-	zip = list_first_entry(&hisi_zip_list, struct hisi_zip, list);
-#endif
+
+	if (IS_ENABLED(CONFIG_NUMA)) {
+		list_for_each_entry(hisi_zip, &hisi_zip_list, list) {
+			res = kzalloc(sizeof(*res), GFP_KERNEL);
+			if (!res)
+				goto err;
+
+			dev = &hisi_zip->qm.pdev->dev;
+			res->hzip = hisi_zip;
+			res->distance = node_distance(dev_to_node(dev), node);
+
+			n = &head;
+			list_for_each_entry(tmp, &head, list) {
+				if (res->distance < tmp->distance) {
+					n = &tmp->list;
+					break;
+				}
+			}
+			list_add_tail(&res->list, n);
+		}
+
+		list_for_each_entry(tmp, &head, list) {
+			if (hisi_qm_get_free_qp_num(&tmp->hzip->qm)) {
+				ret = tmp->hzip;
+				break;
+			}
+		}
+
+		free_list(&head);
+	} else {
+		ret = list_first_entry(&hisi_zip_list, struct hisi_zip, list);
+	}
+
 	mutex_unlock(&hisi_zip_list_lock);
 
-	return zip;
+	return ret;
+
+err:
+	free_list(&head);
+	mutex_unlock(&hisi_zip_list_lock);
+	return NULL;
 }
 
 struct hisi_zip_hw_error {
@@ -267,6 +300,10 @@
 static int uacce_mode;
 module_param(uacce_mode, int, 0);
 
+static u32 vfs_num;
+module_param(vfs_num, uint, 0444);
+MODULE_PARM_DESC(vfs_num, "Number of VFs to enable(1-63)");
+
 static const struct pci_device_id hisi_zip_dev_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, PCI_DEVICE_ID_ZIP_PF) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, PCI_DEVICE_ID_ZIP_VF) },
@@ -329,28 +366,26 @@
 	       FIELD_PREP(CQC_CACHE_WB_THRD, 1), base + QM_CACHE_CTL);
 }
 
-static void hisi_zip_hw_error_set_state(struct hisi_zip *hisi_zip, bool state)
+static void hisi_zip_hw_error_enable(struct hisi_qm *qm)
 {
-	struct hisi_qm *qm = &hisi_zip->qm;
-
 	if (qm->ver == QM_HW_V1) {
-		writel(HZIP_CORE_INT_DISABLE, qm->io_base + HZIP_CORE_INT_MASK);
-		dev_info(&qm->pdev->dev, "ZIP v%d does not support hw error handle\n",
-			 qm->ver);
+		writel(HZIP_CORE_INT_MASK_ALL,
+		       qm->io_base + HZIP_CORE_INT_MASK_REG);
+		dev_info(&qm->pdev->dev, "Does not support hw error handle\n");
 		return;
 	}
 
-	if (state) {
-		/* clear ZIP hw error source if having */
-		writel(HZIP_CORE_INT_DISABLE, hisi_zip->qm.io_base +
-					      HZIP_CORE_INT_SOURCE);
-		/* enable ZIP hw error interrupts */
-		writel(0, hisi_zip->qm.io_base + HZIP_CORE_INT_MASK);
-	} else {
-		/* disable ZIP hw error interrupts */
-		writel(HZIP_CORE_INT_DISABLE,
-		       hisi_zip->qm.io_base + HZIP_CORE_INT_MASK);
-	}
+	/* clear ZIP hw error source if having */
+	writel(HZIP_CORE_INT_MASK_ALL, qm->io_base + HZIP_CORE_INT_SOURCE);
+
+	/* enable ZIP hw error interrupts */
+	writel(0, qm->io_base + HZIP_CORE_INT_MASK_REG);
+}
+
+static void hisi_zip_hw_error_disable(struct hisi_qm *qm)
+{
+	/* disable ZIP hw error interrupts */
+	writel(HZIP_CORE_INT_MASK_ALL, qm->io_base + HZIP_CORE_INT_MASK_REG);
 }
 
 static inline struct hisi_qm *file_to_qm(struct ctrl_debug_file *file)
@@ -511,7 +546,7 @@
 	struct hisi_qm *qm = &hisi_zip->qm;
 	struct device *dev = &qm->pdev->dev;
 	struct debugfs_regset32 *regset;
-	struct dentry *tmp_d, *tmp;
+	struct dentry *tmp_d;
 	char buf[HZIP_BUF_SIZE];
 	int i;
 
@@ -521,10 +556,6 @@
 		else
 			sprintf(buf, "decomp_core%d", i - HZIP_COMP_CORE_NUM);
 
-		tmp_d = debugfs_create_dir(buf, ctrl->debug_root);
-		if (!tmp_d)
-			return -ENOENT;
-
 		regset = devm_kzalloc(dev, sizeof(*regset), GFP_KERNEL);
 		if (!regset)
 			return -ENOENT;
@@ -533,9 +564,8 @@
 		regset->nregs = ARRAY_SIZE(hzip_dfx_regs);
 		regset->base = qm->io_base + core_offsets[i];
 
-		tmp = debugfs_create_regset32("regs", 0444, tmp_d, regset);
-		if (!tmp)
-			return -ENOENT;
+		tmp_d = debugfs_create_dir(buf, ctrl->debug_root);
+		debugfs_create_regset32("regs", 0444, tmp_d, regset);
 	}
 
 	return 0;
@@ -543,7 +573,6 @@
 
 static int hisi_zip_ctrl_debug_init(struct hisi_zip_ctrl *ctrl)
 {
-	struct dentry *tmp;
 	int i;
 
 	for (i = HZIP_CURRENT_QM; i < HZIP_DEBUG_FILE_NUM; i++) {
@@ -551,11 +580,9 @@
 		ctrl->files[i].ctrl = ctrl;
 		ctrl->files[i].index = i;
 
-		tmp = debugfs_create_file(ctrl_debug_file_name[i], 0600,
-					  ctrl->debug_root, ctrl->files + i,
-					  &ctrl_debug_fops);
-		if (!tmp)
-			return -ENOENT;
+		debugfs_create_file(ctrl_debug_file_name[i], 0600,
+				    ctrl->debug_root, ctrl->files + i,
+				    &ctrl_debug_fops);
 	}
 
 	return hisi_zip_core_debug_init(ctrl);
@@ -569,8 +596,6 @@
 	int ret;
 
 	dev_d = debugfs_create_dir(dev_name(dev), hzip_debugfs_root);
-	if (!dev_d)
-		return -ENOENT;
 
 	qm->debug.debug_root = dev_d;
 	ret = hisi_qm_debug_init(qm);
@@ -612,13 +637,16 @@
 		hisi_zip_debug_regs_clear(hisi_zip);
 }
 
-static void hisi_zip_hw_error_init(struct hisi_zip *hisi_zip)
-{
-	hisi_qm_hw_error_init(&hisi_zip->qm, QM_BASE_CE,
-			      QM_BASE_NFE | QM_ACC_WB_NOT_READY_TIMEOUT, 0,
-			      QM_DB_RANDOM_INVALID);
-	hisi_zip_hw_error_set_state(hisi_zip, true);
-}
+static const struct hisi_qm_err_ini hisi_zip_err_ini = {
+	.hw_err_enable	= hisi_zip_hw_error_enable,
+	.hw_err_disable	= hisi_zip_hw_error_disable,
+	.err_info	= {
+		.ce		= QM_BASE_CE,
+		.nfe		= QM_BASE_NFE | QM_ACC_WB_NOT_READY_TIMEOUT,
+		.fe		= 0,
+		.msi		= QM_DB_RANDOM_INVALID,
+	}
+};
 
 static int hisi_zip_pf_probe_init(struct hisi_zip *hisi_zip)
 {
@@ -645,97 +673,15 @@
 		return -EINVAL;
 	}
 
+	qm->err_ini = &hisi_zip_err_ini;
+
 	hisi_zip_set_user_domain_and_cache(hisi_zip);
-	hisi_zip_hw_error_init(hisi_zip);
+	hisi_qm_dev_err_init(qm);
 	hisi_zip_debug_regs_clear(hisi_zip);
 
 	return 0;
 }
 
-static int hisi_zip_probe(struct pci_dev *pdev, const struct pci_device_id *id)
-{
-	struct hisi_zip *hisi_zip;
-	enum qm_hw_ver rev_id;
-	struct hisi_qm *qm;
-	int ret;
-
-	rev_id = hisi_qm_get_hw_version(pdev);
-	if (rev_id == QM_HW_UNKNOWN)
-		return -EINVAL;
-
-	hisi_zip = devm_kzalloc(&pdev->dev, sizeof(*hisi_zip), GFP_KERNEL);
-	if (!hisi_zip)
-		return -ENOMEM;
-	pci_set_drvdata(pdev, hisi_zip);
-
-	qm = &hisi_zip->qm;
-	qm->pdev = pdev;
-	qm->ver = rev_id;
-
-	qm->sqe_size = HZIP_SQE_SIZE;
-	qm->dev_name = hisi_zip_name;
-	qm->fun_type = (pdev->device == PCI_DEVICE_ID_ZIP_PF) ? QM_HW_PF :
-								QM_HW_VF;
-	switch (uacce_mode) {
-	case 0:
-		qm->use_dma_api = true;
-		break;
-	case 1:
-		qm->use_dma_api = false;
-		break;
-	case 2:
-		qm->use_dma_api = true;
-		break;
-	default:
-		return -EINVAL;
-	}
-
-	ret = hisi_qm_init(qm);
-	if (ret) {
-		dev_err(&pdev->dev, "Failed to init qm!\n");
-		return ret;
-	}
-
-	if (qm->fun_type == QM_HW_PF) {
-		ret = hisi_zip_pf_probe_init(hisi_zip);
-		if (ret)
-			return ret;
-
-		qm->qp_base = HZIP_PF_DEF_Q_BASE;
-		qm->qp_num = pf_q_num;
-	} else if (qm->fun_type == QM_HW_VF) {
-		/*
-		 * have no way to get qm configure in VM in v1 hardware,
-		 * so currently force PF to uses HZIP_PF_DEF_Q_NUM, and force
-		 * to trigger only one VF in v1 hardware.
-		 *
-		 * v2 hardware has no such problem.
-		 */
-		if (qm->ver == QM_HW_V1) {
-			qm->qp_base = HZIP_PF_DEF_Q_NUM;
-			qm->qp_num = HZIP_QUEUE_NUM_V1 - HZIP_PF_DEF_Q_NUM;
-		} else if (qm->ver == QM_HW_V2)
-			/* v2 starts to support get vft by mailbox */
-			hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
-	}
-
-	ret = hisi_qm_start(qm);
-	if (ret)
-		goto err_qm_uninit;
-
-	ret = hisi_zip_debugfs_init(hisi_zip);
-	if (ret)
-		dev_err(&pdev->dev, "Failed to init debugfs (%d)!\n", ret);
-
-	hisi_zip_add_to_list(hisi_zip);
-
-	return 0;
-
-err_qm_uninit:
-	hisi_qm_uninit(qm);
-	return ret;
-}
-
 /* Currently we only support equal assignment */
 static int hisi_zip_vf_q_assign(struct hisi_zip *hisi_zip, int num_vfs)
 {
@@ -832,6 +778,100 @@
 	return hisi_zip_clear_vft_config(hisi_zip);
 }
 
+static int hisi_zip_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct hisi_zip *hisi_zip;
+	enum qm_hw_ver rev_id;
+	struct hisi_qm *qm;
+	int ret;
+
+	rev_id = hisi_qm_get_hw_version(pdev);
+	if (rev_id == QM_HW_UNKNOWN)
+		return -EINVAL;
+
+	hisi_zip = devm_kzalloc(&pdev->dev, sizeof(*hisi_zip), GFP_KERNEL);
+	if (!hisi_zip)
+		return -ENOMEM;
+	pci_set_drvdata(pdev, hisi_zip);
+
+	qm = &hisi_zip->qm;
+	qm->pdev = pdev;
+	qm->ver = rev_id;
+
+	qm->sqe_size = HZIP_SQE_SIZE;
+	qm->dev_name = hisi_zip_name;
+	qm->fun_type = (pdev->device == PCI_DEVICE_ID_ZIP_PF) ? QM_HW_PF :
+								QM_HW_VF;
+	switch (uacce_mode) {
+	case 0:
+		qm->use_dma_api = true;
+		break;
+	case 1:
+		qm->use_dma_api = false;
+		break;
+	case 2:
+		qm->use_dma_api = true;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	ret = hisi_qm_init(qm);
+	if (ret) {
+		dev_err(&pdev->dev, "Failed to init qm!\n");
+		return ret;
+	}
+
+	if (qm->fun_type == QM_HW_PF) {
+		ret = hisi_zip_pf_probe_init(hisi_zip);
+		if (ret)
+			return ret;
+
+		qm->qp_base = HZIP_PF_DEF_Q_BASE;
+		qm->qp_num = pf_q_num;
+	} else if (qm->fun_type == QM_HW_VF) {
+		/*
+		 * have no way to get qm configure in VM in v1 hardware,
+		 * so currently force PF to uses HZIP_PF_DEF_Q_NUM, and force
+		 * to trigger only one VF in v1 hardware.
+		 *
+		 * v2 hardware has no such problem.
+		 */
+		if (qm->ver == QM_HW_V1) {
+			qm->qp_base = HZIP_PF_DEF_Q_NUM;
+			qm->qp_num = HZIP_QUEUE_NUM_V1 - HZIP_PF_DEF_Q_NUM;
+		} else if (qm->ver == QM_HW_V2)
+			/* v2 starts to support get vft by mailbox */
+			hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num);
+	}
+
+	ret = hisi_qm_start(qm);
+	if (ret)
+		goto err_qm_uninit;
+
+	ret = hisi_zip_debugfs_init(hisi_zip);
+	if (ret)
+		dev_err(&pdev->dev, "Failed to init debugfs (%d)!\n", ret);
+
+	hisi_zip_add_to_list(hisi_zip);
+
+	if (qm->fun_type == QM_HW_PF && vfs_num > 0) {
+		ret = hisi_zip_sriov_enable(pdev, vfs_num);
+		if (ret < 0)
+			goto err_remove_from_list;
+	}
+
+	return 0;
+
+err_remove_from_list:
+	hisi_zip_remove_from_list(hisi_zip);
+	hisi_zip_debugfs_exit(hisi_zip);
+	hisi_qm_stop(qm);
+err_qm_uninit:
+	hisi_qm_uninit(qm);
+	return ret;
+}
+
 static int hisi_zip_sriov_configure(struct pci_dev *pdev, int num_vfs)
 {
 	if (num_vfs == 0)
@@ -851,9 +891,7 @@
 	hisi_zip_debugfs_exit(hisi_zip);
 	hisi_qm_stop(qm);
 
-	if (qm->fun_type == QM_HW_PF)
-		hisi_zip_hw_error_set_state(hisi_zip, false);
-
+	hisi_qm_dev_err_uninit(qm);
 	hisi_qm_uninit(qm);
 	hisi_zip_remove_from_list(hisi_zip);
 }
@@ -945,7 +983,7 @@
 	.probe			= hisi_zip_probe,
 	.remove			= hisi_zip_remove,
 	.sriov_configure	= IS_ENABLED(CONFIG_PCI_IOV) ?
-					hisi_zip_sriov_configure : 0,
+					hisi_zip_sriov_configure : NULL,
 	.err_handler		= &hisi_zip_err_handler,
 };
 
@@ -955,8 +993,6 @@
 		return;
 
 	hzip_debugfs_root = debugfs_create_dir("hisi_zip", NULL);
-	if (IS_ERR_OR_NULL(hzip_debugfs_root))
-		hzip_debugfs_root = NULL;
 }
 
 static void hisi_zip_unregister_debugfs(void)
--- linux-ein-5.4.0.orig/drivers/crypto/img-hash.c
+++ linux-ein-5.4.0/drivers/crypto/img-hash.c
@@ -356,12 +356,16 @@
 static void img_hash_dma_task(unsigned long d)
 {
 	struct img_hash_dev *hdev = (struct img_hash_dev *)d;
-	struct img_hash_request_ctx *ctx = ahash_request_ctx(hdev->req);
+	struct img_hash_request_ctx *ctx;
 	u8 *addr;
 	size_t nbytes, bleft, wsend, len, tbc;
 	struct scatterlist tsg;
 
-	if (!hdev->req || !ctx->sg)
+	if (!hdev->req)
+		return;
+
+	ctx = ahash_request_ctx(hdev->req);
+	if (!ctx->sg)
 		return;
 
 	addr = sg_virt(ctx->sg);
--- linux-ein-5.4.0.orig/drivers/crypto/inside-secure/safexcel.c
+++ linux-ein-5.4.0/drivers/crypto/inside-secure/safexcel.c
@@ -221,9 +221,9 @@
 	/* Step #3: Determine log2 of hash table size */
 	cs_ht_sz = __fls(asize - cs_rc_max) - 2;
 	/* Step #4: determine current size of hash table in dwords */
-	cs_ht_wc = 16<<cs_ht_sz; /* dwords, not admin words */
+	cs_ht_wc = 16 << cs_ht_sz; /* dwords, not admin words */
 	/* Step #5: add back excess words and see if we can fit more records */
-	cs_rc_max = min_t(uint, cs_rc_abs_max, asize - (cs_ht_wc >> 4));
+	cs_rc_max = min_t(uint, cs_rc_abs_max, asize - (cs_ht_wc >> 2));
 
 	/* Clear the cache RAMs */
 	eip197_trc_cache_clear(priv, cs_rc_max, cs_ht_wc);
@@ -1090,11 +1090,12 @@
 
 static int safexcel_request_ring_irq(void *pdev, int irqid,
 				     int is_pci_dev,
+				     int ring_id,
 				     irq_handler_t handler,
 				     irq_handler_t threaded_handler,
 				     struct safexcel_ring_irq_data *ring_irq_priv)
 {
-	int ret, irq;
+	int ret, irq, cpu;
 	struct device *dev;
 
 	if (IS_ENABLED(CONFIG_PCI) && is_pci_dev) {
@@ -1120,6 +1121,8 @@
 				irq_name, irq);
 			return irq;
 		}
+	} else {
+		return -ENXIO;
 	}
 
 	ret = devm_request_threaded_irq(dev, irq, handler,
@@ -1130,6 +1133,10 @@
 		return ret;
 	}
 
+	/* Set affinity */
+	cpu = cpumask_local_spread(ring_id, NUMA_NO_NODE);
+	irq_set_affinity_hint(irq, get_cpu_mask(cpu));
+
 	return irq;
 }
 
@@ -1460,19 +1467,23 @@
 						     &priv->ring[i].rdr);
 		if (ret) {
 			dev_err(dev, "Failed to initialize rings\n");
-			return ret;
+			goto err_cleanup_rings;
 		}
 
 		priv->ring[i].rdr_req = devm_kcalloc(dev,
 			EIP197_DEFAULT_RING_SIZE,
-			sizeof(priv->ring[i].rdr_req),
+			sizeof(*priv->ring[i].rdr_req),
 			GFP_KERNEL);
-		if (!priv->ring[i].rdr_req)
-			return -ENOMEM;
+		if (!priv->ring[i].rdr_req) {
+			ret = -ENOMEM;
+			goto err_cleanup_rings;
+		}
 
 		ring_irq = devm_kzalloc(dev, sizeof(*ring_irq), GFP_KERNEL);
-		if (!ring_irq)
-			return -ENOMEM;
+		if (!ring_irq) {
+			ret = -ENOMEM;
+			goto err_cleanup_rings;
+		}
 
 		ring_irq->priv = priv;
 		ring_irq->ring = i;
@@ -1480,14 +1491,17 @@
 		irq = safexcel_request_ring_irq(pdev,
 						EIP197_IRQ_NUMBER(i, is_pci_dev),
 						is_pci_dev,
+						i,
 						safexcel_irq_ring,
 						safexcel_irq_ring_thread,
 						ring_irq);
 		if (irq < 0) {
 			dev_err(dev, "Failed to get IRQ ID for ring %d\n", i);
-			return irq;
+			ret = irq;
+			goto err_cleanup_rings;
 		}
 
+		priv->ring[i].irq = irq;
 		priv->ring[i].work_data.priv = priv;
 		priv->ring[i].work_data.ring = i;
 		INIT_WORK(&priv->ring[i].work_data.work,
@@ -1496,8 +1510,10 @@
 		snprintf(wq_name, 9, "wq_ring%d", i);
 		priv->ring[i].workqueue =
 			create_singlethread_workqueue(wq_name);
-		if (!priv->ring[i].workqueue)
-			return -ENOMEM;
+		if (!priv->ring[i].workqueue) {
+			ret = -ENOMEM;
+			goto err_cleanup_rings;
+		}
 
 		priv->ring[i].requests = 0;
 		priv->ring[i].busy = false;
@@ -1514,16 +1530,26 @@
 	ret = safexcel_hw_init(priv);
 	if (ret) {
 		dev_err(dev, "HW init failed (%d)\n", ret);
-		return ret;
+		goto err_cleanup_rings;
 	}
 
 	ret = safexcel_register_algorithms(priv);
 	if (ret) {
 		dev_err(dev, "Failed to register algorithms (%d)\n", ret);
-		return ret;
+		goto err_cleanup_rings;
 	}
 
 	return 0;
+
+err_cleanup_rings:
+	for (i = 0; i < priv->config.rings; i++) {
+		if (priv->ring[i].irq)
+			irq_set_affinity_hint(priv->ring[i].irq, NULL);
+		if (priv->ring[i].workqueue)
+			destroy_workqueue(priv->ring[i].workqueue);
+	}
+
+	return ret;
 }
 
 static void safexcel_hw_reset_rings(struct safexcel_crypto_priv *priv)
@@ -1625,8 +1651,10 @@
 
 	clk_disable_unprepare(priv->clk);
 
-	for (i = 0; i < priv->config.rings; i++)
+	for (i = 0; i < priv->config.rings; i++) {
+		irq_set_affinity_hint(priv->ring[i].irq, NULL);
 		destroy_workqueue(priv->ring[i].workqueue);
+	}
 
 	return 0;
 }
@@ -1656,6 +1684,8 @@
 	{},
 };
 
+MODULE_DEVICE_TABLE(of, safexcel_of_match_table);
+
 static struct platform_driver  crypto_safexcel = {
 	.probe		= safexcel_probe,
 	.remove		= safexcel_remove,
--- linux-ein-5.4.0.orig/drivers/crypto/inside-secure/safexcel.h
+++ linux-ein-5.4.0/drivers/crypto/inside-secure/safexcel.h
@@ -640,6 +640,9 @@
 	 */
 	struct crypto_async_request *req;
 	struct crypto_async_request *backlog;
+
+	/* irq of this ring */
+	int irq;
 };
 
 /* EIP integration context flags */
--- linux-ein-5.4.0.orig/drivers/crypto/ixp4xx_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/ixp4xx_crypto.c
@@ -329,7 +329,7 @@
 
 		buf1 = buf->next;
 		phys1 = buf->phys_next;
-		dma_unmap_single(dev, buf->phys_next, buf->buf_len, buf->dir);
+		dma_unmap_single(dev, buf->phys_addr, buf->buf_len, buf->dir);
 		dma_pool_free(buffer_pool, buf, phys);
 		buf = buf1;
 		phys = phys1;
@@ -527,7 +527,7 @@
 
 	if (crypt_virt) {
 		dma_free_coherent(dev,
-			NPE_QLEN_TOTAL * sizeof( struct crypt_ctl),
+			NPE_QLEN * sizeof(struct crypt_ctl),
 			crypt_virt, crypt_phys);
 	}
 }
--- linux-ein-5.4.0.orig/drivers/crypto/marvell/cipher.c
+++ linux-ein-5.4.0/drivers/crypto/marvell/cipher.c
@@ -287,7 +287,7 @@
 static int mv_cesa_des3_ede_setkey(struct crypto_skcipher *cipher,
 				   const u8 *key, unsigned int len)
 {
-	struct mv_cesa_des_ctx *ctx = crypto_skcipher_ctx(cipher);
+	struct mv_cesa_des3_ctx *ctx = crypto_skcipher_ctx(cipher);
 	int err;
 
 	err = verify_skcipher_des3_key(cipher, key);
@@ -610,7 +610,6 @@
 	.decrypt = mv_cesa_ecb_des3_ede_decrypt,
 	.min_keysize = DES3_EDE_KEY_SIZE,
 	.max_keysize = DES3_EDE_KEY_SIZE,
-	.ivsize = DES3_EDE_BLOCK_SIZE,
 	.base = {
 		.cra_name = "ecb(des3_ede)",
 		.cra_driver_name = "mv-ecb-des3-ede",
--- linux-ein-5.4.0.orig/drivers/crypto/mediatek/mtk-platform.c
+++ linux-ein-5.4.0/drivers/crypto/mediatek/mtk-platform.c
@@ -442,7 +442,7 @@
 static int mtk_desc_ring_alloc(struct mtk_cryp *cryp)
 {
 	struct mtk_ring **ring = cryp->ring;
-	int i, err = ENOMEM;
+	int i;
 
 	for (i = 0; i < MTK_RING_MAX; i++) {
 		ring[i] = kzalloc(sizeof(**ring), GFP_KERNEL);
@@ -469,14 +469,14 @@
 	return 0;
 
 err_cleanup:
-	for (; i--; ) {
+	do {
 		dma_free_coherent(cryp->dev, MTK_DESC_RING_SZ,
 				  ring[i]->res_base, ring[i]->res_dma);
 		dma_free_coherent(cryp->dev, MTK_DESC_RING_SZ,
 				  ring[i]->cmd_base, ring[i]->cmd_dma);
 		kfree(ring[i]);
-	}
-	return err;
+	} while (i--);
+	return -ENOMEM;
 }
 
 static int mtk_crypto_probe(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/crypto/mxs-dcp.c
+++ linux-ein-5.4.0/drivers/crypto/mxs-dcp.c
@@ -20,6 +20,7 @@
 #include <crypto/sha.h>
 #include <crypto/internal/hash.h>
 #include <crypto/internal/skcipher.h>
+#include <crypto/scatterwalk.h>
 
 #define DCP_MAX_CHANS	4
 #define DCP_BUF_SZ	PAGE_SIZE
@@ -167,15 +168,19 @@
 
 static int mxs_dcp_start_dma(struct dcp_async_ctx *actx)
 {
+	int dma_err;
 	struct dcp *sdcp = global_sdcp;
 	const int chan = actx->chan;
 	uint32_t stat;
 	unsigned long ret;
 	struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
-
 	dma_addr_t desc_phys = dma_map_single(sdcp->dev, desc, sizeof(*desc),
 					      DMA_TO_DEVICE);
 
+	dma_err = dma_mapping_error(sdcp->dev, desc_phys);
+	if (dma_err)
+		return dma_err;
+
 	reinit_completion(&sdcp->completion[chan]);
 
 	/* Clear status register. */
@@ -213,18 +218,29 @@
 static int mxs_dcp_run_aes(struct dcp_async_ctx *actx,
 			   struct ablkcipher_request *req, int init)
 {
+	dma_addr_t key_phys, src_phys, dst_phys;
 	struct dcp *sdcp = global_sdcp;
 	struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
 	struct dcp_aes_req_ctx *rctx = ablkcipher_request_ctx(req);
 	int ret;
 
-	dma_addr_t key_phys = dma_map_single(sdcp->dev, sdcp->coh->aes_key,
-					     2 * AES_KEYSIZE_128,
-					     DMA_TO_DEVICE);
-	dma_addr_t src_phys = dma_map_single(sdcp->dev, sdcp->coh->aes_in_buf,
-					     DCP_BUF_SZ, DMA_TO_DEVICE);
-	dma_addr_t dst_phys = dma_map_single(sdcp->dev, sdcp->coh->aes_out_buf,
-					     DCP_BUF_SZ, DMA_FROM_DEVICE);
+	key_phys = dma_map_single(sdcp->dev, sdcp->coh->aes_key,
+				  2 * AES_KEYSIZE_128, DMA_TO_DEVICE);
+	ret = dma_mapping_error(sdcp->dev, key_phys);
+	if (ret)
+		return ret;
+
+	src_phys = dma_map_single(sdcp->dev, sdcp->coh->aes_in_buf,
+				  DCP_BUF_SZ, DMA_TO_DEVICE);
+	ret = dma_mapping_error(sdcp->dev, src_phys);
+	if (ret)
+		goto err_src;
+
+	dst_phys = dma_map_single(sdcp->dev, sdcp->coh->aes_out_buf,
+				  DCP_BUF_SZ, DMA_FROM_DEVICE);
+	ret = dma_mapping_error(sdcp->dev, dst_phys);
+	if (ret)
+		goto err_dst;
 
 	if (actx->fill % AES_BLOCK_SIZE) {
 		dev_err(sdcp->dev, "Invalid block size!\n");
@@ -262,10 +278,12 @@
 	ret = mxs_dcp_start_dma(actx);
 
 aes_done_run:
+	dma_unmap_single(sdcp->dev, dst_phys, DCP_BUF_SZ, DMA_FROM_DEVICE);
+err_dst:
+	dma_unmap_single(sdcp->dev, src_phys, DCP_BUF_SZ, DMA_TO_DEVICE);
+err_src:
 	dma_unmap_single(sdcp->dev, key_phys, 2 * AES_KEYSIZE_128,
 			 DMA_TO_DEVICE);
-	dma_unmap_single(sdcp->dev, src_phys, DCP_BUF_SZ, DMA_TO_DEVICE);
-	dma_unmap_single(sdcp->dev, dst_phys, DCP_BUF_SZ, DMA_FROM_DEVICE);
 
 	return ret;
 }
@@ -280,21 +298,20 @@
 
 	struct scatterlist *dst = req->dst;
 	struct scatterlist *src = req->src;
-	const int nents = sg_nents(req->src);
+	int dst_nents = sg_nents(dst);
 
 	const int out_off = DCP_BUF_SZ;
 	uint8_t *in_buf = sdcp->coh->aes_in_buf;
 	uint8_t *out_buf = sdcp->coh->aes_out_buf;
 
-	uint8_t *out_tmp, *src_buf, *dst_buf = NULL;
 	uint32_t dst_off = 0;
+	uint8_t *src_buf = NULL;
 	uint32_t last_out_len = 0;
 
 	uint8_t *key = sdcp->coh->aes_key;
 
 	int ret = 0;
-	int split = 0;
-	unsigned int i, len, clen, rem = 0, tlen = 0;
+	unsigned int i, len, clen, tlen = 0;
 	int init = 0;
 	bool limit_hit = false;
 
@@ -312,7 +329,7 @@
 		memset(key + AES_KEYSIZE_128, 0, AES_KEYSIZE_128);
 	}
 
-	for_each_sg(req->src, src, nents, i) {
+	for_each_sg(req->src, src, sg_nents(req->src), i) {
 		src_buf = sg_virt(src);
 		len = sg_dma_len(src);
 		tlen += len;
@@ -337,34 +354,17 @@
 			 * submit the buffer.
 			 */
 			if (actx->fill == out_off || sg_is_last(src) ||
-				limit_hit) {
+			    limit_hit) {
 				ret = mxs_dcp_run_aes(actx, req, init);
 				if (ret)
 					return ret;
 				init = 0;
 
-				out_tmp = out_buf;
+				sg_pcopy_from_buffer(dst, dst_nents, out_buf,
+						     actx->fill, dst_off);
+				dst_off += actx->fill;
 				last_out_len = actx->fill;
-				while (dst && actx->fill) {
-					if (!split) {
-						dst_buf = sg_virt(dst);
-						dst_off = 0;
-					}
-					rem = min(sg_dma_len(dst) - dst_off,
-						  actx->fill);
-
-					memcpy(dst_buf + dst_off, out_tmp, rem);
-					out_tmp += rem;
-					dst_off += rem;
-					actx->fill -= rem;
-
-					if (dst_off == sg_dma_len(dst)) {
-						dst = sg_next(dst);
-						split = 0;
-					} else {
-						split = 1;
-					}
-				}
+				actx->fill = 0;
 			}
 		} while (len);
 
@@ -564,6 +564,10 @@
 	dma_addr_t buf_phys = dma_map_single(sdcp->dev, sdcp->coh->sha_in_buf,
 					     DCP_BUF_SZ, DMA_TO_DEVICE);
 
+	ret = dma_mapping_error(sdcp->dev, buf_phys);
+	if (ret)
+		return ret;
+
 	/* Fill in the DMA descriptor. */
 	desc->control0 = MXS_DCP_CONTROL0_DECR_SEMAPHORE |
 		    MXS_DCP_CONTROL0_INTERRUPT |
@@ -596,6 +600,10 @@
 	if (rctx->fini) {
 		digest_phys = dma_map_single(sdcp->dev, sdcp->coh->sha_out_buf,
 					     DCP_SHA_PAY_SZ, DMA_FROM_DEVICE);
+		ret = dma_mapping_error(sdcp->dev, digest_phys);
+		if (ret)
+			goto done_run;
+
 		desc->control0 |= MXS_DCP_CONTROL0_HASH_TERM;
 		desc->payload = digest_phys;
 	}
@@ -621,49 +629,46 @@
 	struct dcp_async_ctx *actx = crypto_ahash_ctx(tfm);
 	struct dcp_sha_req_ctx *rctx = ahash_request_ctx(req);
 	struct hash_alg_common *halg = crypto_hash_alg_common(tfm);
-	const int nents = sg_nents(req->src);
 
 	uint8_t *in_buf = sdcp->coh->sha_in_buf;
 	uint8_t *out_buf = sdcp->coh->sha_out_buf;
 
-	uint8_t *src_buf;
-
 	struct scatterlist *src;
 
-	unsigned int i, len, clen;
+	unsigned int i, len, clen, oft = 0;
 	int ret;
 
 	int fin = rctx->fini;
 	if (fin)
 		rctx->fini = 0;
 
-	for_each_sg(req->src, src, nents, i) {
-		src_buf = sg_virt(src);
-		len = sg_dma_len(src);
+	src = req->src;
+	len = req->nbytes;
 
-		do {
-			if (actx->fill + len > DCP_BUF_SZ)
-				clen = DCP_BUF_SZ - actx->fill;
-			else
-				clen = len;
+	while (len) {
+		if (actx->fill + len > DCP_BUF_SZ)
+			clen = DCP_BUF_SZ - actx->fill;
+		else
+			clen = len;
 
-			memcpy(in_buf + actx->fill, src_buf, clen);
-			len -= clen;
-			src_buf += clen;
-			actx->fill += clen;
+		scatterwalk_map_and_copy(in_buf + actx->fill, src, oft, clen,
+					 0);
 
-			/*
-			 * If we filled the buffer and still have some
-			 * more data, submit the buffer.
-			 */
-			if (len && actx->fill == DCP_BUF_SZ) {
-				ret = mxs_dcp_run_sha(req);
-				if (ret)
-					return ret;
-				actx->fill = 0;
-				rctx->init = 0;
-			}
-		} while (len);
+		len -= clen;
+		oft += clen;
+		actx->fill += clen;
+
+		/*
+		 * If we filled the buffer and still have some
+		 * more data, submit the buffer.
+		 */
+		if (len && actx->fill == DCP_BUF_SZ) {
+			ret = mxs_dcp_run_sha(req);
+			if (ret)
+				return ret;
+			actx->fill = 0;
+			rctx->init = 0;
+		}
 	}
 
 	if (fin) {
--- linux-ein-5.4.0.orig/drivers/crypto/n2_core.c
+++ linux-ein-5.4.0/drivers/crypto/n2_core.c
@@ -1278,6 +1278,7 @@
 	const u32	*hash_init;
 	u8		hw_op_hashsz;
 	u8		digest_size;
+	u8		statesize;
 	u8		block_size;
 	u8		auth_type;
 	u8		hmac_type;
@@ -1309,6 +1310,7 @@
 	  .hmac_type	= AUTH_TYPE_HMAC_MD5,
 	  .hw_op_hashsz	= MD5_DIGEST_SIZE,
 	  .digest_size	= MD5_DIGEST_SIZE,
+	  .statesize	= sizeof(struct md5_state),
 	  .block_size	= MD5_HMAC_BLOCK_SIZE },
 	{ .name		= "sha1",
 	  .hash_zero	= sha1_zero_message_hash,
@@ -1317,6 +1319,7 @@
 	  .hmac_type	= AUTH_TYPE_HMAC_SHA1,
 	  .hw_op_hashsz	= SHA1_DIGEST_SIZE,
 	  .digest_size	= SHA1_DIGEST_SIZE,
+	  .statesize	= sizeof(struct sha1_state),
 	  .block_size	= SHA1_BLOCK_SIZE },
 	{ .name		= "sha256",
 	  .hash_zero	= sha256_zero_message_hash,
@@ -1325,6 +1328,7 @@
 	  .hmac_type	= AUTH_TYPE_HMAC_SHA256,
 	  .hw_op_hashsz	= SHA256_DIGEST_SIZE,
 	  .digest_size	= SHA256_DIGEST_SIZE,
+	  .statesize	= sizeof(struct sha256_state),
 	  .block_size	= SHA256_BLOCK_SIZE },
 	{ .name		= "sha224",
 	  .hash_zero	= sha224_zero_message_hash,
@@ -1333,6 +1337,7 @@
 	  .hmac_type	= AUTH_TYPE_RESERVED,
 	  .hw_op_hashsz	= SHA256_DIGEST_SIZE,
 	  .digest_size	= SHA224_DIGEST_SIZE,
+	  .statesize	= sizeof(struct sha256_state),
 	  .block_size	= SHA224_BLOCK_SIZE },
 };
 #define NUM_HASH_TMPLS ARRAY_SIZE(hash_tmpls)
@@ -1474,6 +1479,7 @@
 
 	halg = &ahash->halg;
 	halg->digestsize = tmpl->digest_size;
+	halg->statesize = tmpl->statesize;
 
 	base = &halg->base;
 	snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "%s", tmpl->name);
--- linux-ein-5.4.0.orig/drivers/crypto/nx/Makefile
+++ linux-ein-5.4.0/drivers/crypto/nx/Makefile
@@ -1,7 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_CRYPTO_DEV_NX_ENCRYPT) += nx-crypto.o
 nx-crypto-objs := nx.o \
-		  nx_debugfs.o \
 		  nx-aes-cbc.o \
 		  nx-aes-ecb.o \
 		  nx-aes-gcm.o \
@@ -11,6 +10,7 @@
 		  nx-sha256.o \
 		  nx-sha512.o
 
+nx-crypto-$(CONFIG_DEBUG_FS) += nx_debugfs.o
 obj-$(CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES) += nx-compress-pseries.o nx-compress.o
 obj-$(CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV) += nx-compress-powernv.o nx-compress.o
 nx-compress-objs := nx-842.o
--- linux-ein-5.4.0.orig/drivers/crypto/nx/nx-842-pseries.c
+++ linux-ein-5.4.0/drivers/crypto/nx/nx-842-pseries.c
@@ -538,13 +538,15 @@
  * The status field indicates if the device is enabled when the status
  * is 'okay'.  Otherwise the device driver will be disabled.
  *
- * @prop - struct property point containing the maxsyncop for the update
+ * @devdata: struct nx842_devdata to use for dev_info
+ * @prop: struct property point containing the maxsyncop for the update
  *
  * Returns:
  *  0 - Device is available
  *  -ENODEV - Device is not available
  */
-static int nx842_OF_upd_status(struct property *prop)
+static int nx842_OF_upd_status(struct nx842_devdata *devdata,
+			       struct property *prop)
 {
 	const char *status = (const char *)prop->value;
 
@@ -758,7 +760,7 @@
 		goto out;
 
 	/* Perform property updates */
-	ret = nx842_OF_upd_status(status);
+	ret = nx842_OF_upd_status(new_devdata, status);
 	if (ret)
 		goto error_out;
 
@@ -1071,6 +1073,7 @@
 	{"ibm,compression-v1", "ibm,compression"},
 	{"", ""},
 };
+MODULE_DEVICE_TABLE(vio, nx842_vio_driver_ids);
 
 static struct vio_driver nx842_vio_driver = {
 	.name = KBUILD_MODNAME,
--- linux-ein-5.4.0.orig/drivers/crypto/nx/nx.h
+++ linux-ein-5.4.0/drivers/crypto/nx/nx.h
@@ -169,8 +169,8 @@
 void nx_debugfs_init(struct nx_crypto_driver *);
 void nx_debugfs_fini(struct nx_crypto_driver *);
 #else
-#define NX_DEBUGFS_INIT(drv)	(0)
-#define NX_DEBUGFS_FINI(drv)	(0)
+#define NX_DEBUGFS_INIT(drv)	do {} while (0)
+#define NX_DEBUGFS_FINI(drv)	do {} while (0)
 #endif
 
 #define NX_PAGE_NUM(x)		((u64)(x) & 0xfffffffffffff000ULL)
--- linux-ein-5.4.0.orig/drivers/crypto/omap-aes.c
+++ linux-ein-5.4.0/drivers/crypto/omap-aes.c
@@ -103,7 +103,7 @@
 		dd->err = 0;
 	}
 
-	err = pm_runtime_get_sync(dd->dev);
+	err = pm_runtime_resume_and_get(dd->dev);
 	if (err < 0) {
 		dev_err(dd->dev, "failed to get sync: %d\n", err);
 		return err;
@@ -1153,11 +1153,11 @@
 	pm_runtime_set_autosuspend_delay(dev, DEFAULT_AUTOSUSPEND_DELAY);
 
 	pm_runtime_enable(dev);
-	err = pm_runtime_get_sync(dev);
+	err = pm_runtime_resume_and_get(dev);
 	if (err < 0) {
 		dev_err(dev, "%s: failed to get_sync(%d)\n",
 			__func__, err);
-		goto err_res;
+		goto err_pm_disable;
 	}
 
 	omap_aes_dma_stop(dd);
@@ -1267,6 +1267,7 @@
 	omap_aes_dma_cleanup(dd);
 err_irq:
 	tasklet_kill(&dd->done_task);
+err_pm_disable:
 	pm_runtime_disable(dev);
 err_res:
 	dd = NULL;
--- linux-ein-5.4.0.orig/drivers/crypto/omap-sham.c
+++ linux-ein-5.4.0/drivers/crypto/omap-sham.c
@@ -165,8 +165,6 @@
 };
 
 struct omap_sham_ctx {
-	struct omap_sham_dev	*dd;
-
 	unsigned long		flags;
 
 	/* fallback stuff */
@@ -366,7 +364,7 @@
 {
 	int err;
 
-	err = pm_runtime_get_sync(dd->dev);
+	err = pm_runtime_resume_and_get(dd->dev);
 	if (err < 0) {
 		dev_err(dd->dev, "failed to get sync: %d\n", err);
 		return err;
@@ -455,6 +453,9 @@
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(dd->req);
 	u32 val, mask;
 
+	if (likely(ctx->digcnt))
+		omap_sham_write(dd, SHA_REG_DIGCNT(dd), ctx->digcnt);
+
 	/*
 	 * Setting ALGO_CONST only for the first iteration and
 	 * CLOSE_HASH only for the last one. Note that flags mode bits
@@ -918,27 +919,35 @@
 	return 0;
 }
 
+struct omap_sham_dev *omap_sham_find_dev(struct omap_sham_reqctx *ctx)
+{
+	struct omap_sham_dev *dd;
+
+	if (ctx->dd)
+		return ctx->dd;
+
+	spin_lock_bh(&sham.lock);
+	dd = list_first_entry(&sham.dev_list, struct omap_sham_dev, list);
+	list_move_tail(&dd->list, &sham.dev_list);
+	ctx->dd = dd;
+	spin_unlock_bh(&sham.lock);
+
+	return dd;
+}
+
 static int omap_sham_init(struct ahash_request *req)
 {
 	struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
 	struct omap_sham_ctx *tctx = crypto_ahash_ctx(tfm);
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(req);
-	struct omap_sham_dev *dd = NULL, *tmp;
+	struct omap_sham_dev *dd;
 	int bs = 0;
 
-	spin_lock_bh(&sham.lock);
-	if (!tctx->dd) {
-		list_for_each_entry(tmp, &sham.dev_list, list) {
-			dd = tmp;
-			break;
-		}
-		tctx->dd = dd;
-	} else {
-		dd = tctx->dd;
-	}
-	spin_unlock_bh(&sham.lock);
+	ctx->dd = NULL;
 
-	ctx->dd = dd;
+	dd = omap_sham_find_dev(ctx);
+	if (!dd)
+		return -ENODEV;
 
 	ctx->flags = 0;
 
@@ -1187,8 +1196,7 @@
 static int omap_sham_enqueue(struct ahash_request *req, unsigned int op)
 {
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(req);
-	struct omap_sham_ctx *tctx = crypto_tfm_ctx(req->base.tfm);
-	struct omap_sham_dev *dd = tctx->dd;
+	struct omap_sham_dev *dd = ctx->dd;
 
 	ctx->op = op;
 
@@ -1198,7 +1206,7 @@
 static int omap_sham_update(struct ahash_request *req)
 {
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(req);
-	struct omap_sham_dev *dd = ctx->dd;
+	struct omap_sham_dev *dd = omap_sham_find_dev(ctx);
 
 	if (!req->nbytes)
 		return 0;
@@ -1302,21 +1310,8 @@
 	struct omap_sham_hmac_ctx *bctx = tctx->base;
 	int bs = crypto_shash_blocksize(bctx->shash);
 	int ds = crypto_shash_digestsize(bctx->shash);
-	struct omap_sham_dev *dd = NULL, *tmp;
 	int err, i;
 
-	spin_lock_bh(&sham.lock);
-	if (!tctx->dd) {
-		list_for_each_entry(tmp, &sham.dev_list, list) {
-			dd = tmp;
-			break;
-		}
-		tctx->dd = dd;
-	} else {
-		dd = tctx->dd;
-	}
-	spin_unlock_bh(&sham.lock);
-
 	err = crypto_shash_setkey(tctx->fallback, key, keylen);
 	if (err)
 		return err;
@@ -1334,7 +1329,7 @@
 
 	memset(bctx->ipad + keylen, 0, bs - keylen);
 
-	if (!test_bit(FLAGS_AUTO_XOR, &dd->flags)) {
+	if (!test_bit(FLAGS_AUTO_XOR, &sham.flags)) {
 		memcpy(bctx->opad, bctx->ipad, bs);
 
 		for (i = 0; i < bs; i++) {
@@ -1739,7 +1734,7 @@
 		if (test_and_clear_bit(FLAGS_OUTPUT_READY, &dd->flags))
 			goto finish;
 	} else if (test_bit(FLAGS_DMA_READY, &dd->flags)) {
-		if (test_and_clear_bit(FLAGS_DMA_ACTIVE, &dd->flags)) {
+		if (test_bit(FLAGS_DMA_ACTIVE, &dd->flags)) {
 			omap_sham_update_dma_stop(dd);
 			if (dd->err) {
 				err = dd->err;
@@ -2136,6 +2131,7 @@
 	}
 
 	dd->flags |= dd->pdata->flags;
+	sham.flags |= dd->pdata->flags;
 
 	pm_runtime_use_autosuspend(dev);
 	pm_runtime_set_autosuspend_delay(dev, DEFAULT_AUTOSUSPEND_DELAY);
@@ -2145,7 +2141,7 @@
 	pm_runtime_enable(dev);
 	pm_runtime_irq_safe(dev);
 
-	err = pm_runtime_get_sync(dev);
+	err = pm_runtime_resume_and_get(dev);
 	if (err < 0) {
 		dev_err(dev, "failed to get sync: %d\n", err);
 		goto err_pm;
@@ -2163,6 +2159,9 @@
 	spin_unlock(&sham.lock);
 
 	for (i = 0; i < dd->pdata->algs_info_size; i++) {
+		if (dd->pdata->algs_info[i].registered)
+			break;
+
 		for (j = 0; j < dd->pdata->algs_info[i].size; j++) {
 			struct ahash_alg *alg;
 
@@ -2214,9 +2213,11 @@
 	list_del(&dd->list);
 	spin_unlock(&sham.lock);
 	for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
-		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
+		for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) {
 			crypto_unregister_ahash(
 					&dd->pdata->algs_info[i].algs_list[j]);
+			dd->pdata->algs_info[i].registered--;
+		}
 	tasklet_kill(&dd->done_task);
 	pm_runtime_disable(&pdev->dev);
 
@@ -2235,7 +2236,7 @@
 
 static int omap_sham_resume(struct device *dev)
 {
-	int err = pm_runtime_get_sync(dev);
+	int err = pm_runtime_resume_and_get(dev);
 	if (err < 0) {
 		dev_err(dev, "failed to get sync: %d\n", err);
 		return err;
--- linux-ein-5.4.0.orig/drivers/crypto/picoxcell_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/picoxcell_crypto.c
@@ -1613,6 +1613,11 @@
 MODULE_DEVICE_TABLE(of, spacc_of_id_table);
 #endif /* CONFIG_OF */
 
+static void spacc_tasklet_kill(void *data)
+{
+	tasklet_kill(data);
+}
+
 static int spacc_probe(struct platform_device *pdev)
 {
 	int i, err, ret;
@@ -1655,6 +1660,14 @@
 		return -ENXIO;
 	}
 
+	tasklet_init(&engine->complete, spacc_spacc_complete,
+		     (unsigned long)engine);
+
+	ret = devm_add_action(&pdev->dev, spacc_tasklet_kill,
+			      &engine->complete);
+	if (ret)
+		return ret;
+
 	if (devm_request_irq(&pdev->dev, irq->start, spacc_spacc_irq, 0,
 			     engine->name, engine)) {
 		dev_err(engine->dev, "failed to request IRQ\n");
@@ -1684,11 +1697,6 @@
 		goto err_clk_put;
 	}
 
-	ret = device_create_file(&pdev->dev, &dev_attr_stat_irq_thresh);
-	if (ret)
-		goto err_clk_disable;
-
-
 	/*
 	 * Use an IRQ threshold of 50% as a default. This seems to be a
 	 * reasonable trade off of latency against throughput but can be
@@ -1696,6 +1704,10 @@
 	 */
 	engine->stat_irq_thresh = (engine->fifo_sz / 2);
 
+	ret = device_create_file(&pdev->dev, &dev_attr_stat_irq_thresh);
+	if (ret)
+		goto err_clk_disable;
+
 	/*
 	 * Configure the interrupts. We only use the STAT_CNT interrupt as we
 	 * only submit a new packet for processing when we complete another in
@@ -1712,8 +1724,6 @@
 	INIT_LIST_HEAD(&engine->completed);
 	INIT_LIST_HEAD(&engine->in_progress);
 	engine->in_flight = 0;
-	tasklet_init(&engine->complete, spacc_spacc_complete,
-		     (unsigned long)engine);
 
 	platform_set_drvdata(pdev, engine);
 
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
@@ -123,10 +123,10 @@
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
@@ -233,12 +233,12 @@
 	if (ret)
 		goto out_err_free_reg;
 
-	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
-
 	ret = adf_dev_init(accel_dev);
 	if (ret)
 		goto out_err_dev_shutdown;
 
+	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
+
 	ret = adf_dev_start(accel_dev);
 	if (ret)
 		goto out_err_dev_stop;
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
@@ -123,10 +123,10 @@
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_c62xvf/adf_drv.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_c62xvf/adf_drv.c
@@ -233,12 +233,12 @@
 	if (ret)
 		goto out_err_free_reg;
 
-	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
-
 	ret = adf_dev_init(accel_dev);
 	if (ret)
 		goto out_err_dev_shutdown;
 
+	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
+
 	ret = adf_dev_start(accel_dev);
 	if (ret)
 		goto out_err_dev_stop;
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_common_drv.h
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_common_drv.h
@@ -239,8 +239,8 @@
 void adf_enable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
 void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
 
-int adf_vf2pf_init(struct adf_accel_dev *accel_dev);
-void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev);
+int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev);
+void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev);
 int adf_init_pf_wq(void);
 void adf_exit_pf_wq(void);
 int adf_init_vf_wq(void);
@@ -263,12 +263,12 @@
 {
 }
 
-static inline int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
+static inline int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
 {
 	return 0;
 }
 
-static inline void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
+static inline void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
 {
 }
 
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_init.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_init.c
@@ -105,6 +105,7 @@
 	struct service_hndl *service;
 	struct list_head *list_itr;
 	struct adf_hw_device_data *hw_data = accel_dev->hw_device;
+	int ret;
 
 	if (!hw_data) {
 		dev_err(&GET_DEV(accel_dev),
@@ -171,9 +172,9 @@
 	}
 
 	hw_data->enable_error_correction(accel_dev);
-	hw_data->enable_vf2pf_comms(accel_dev);
+	ret = hw_data->enable_vf2pf_comms(accel_dev);
 
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(adf_dev_init);
 
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_isr.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_isr.c
@@ -59,6 +59,8 @@
 #include "adf_transport_access_macros.h"
 #include "adf_transport_internal.h"
 
+#define ADF_MAX_NUM_VFS	32
+
 static int adf_enable_msix(struct adf_accel_dev *accel_dev)
 {
 	struct adf_accel_pci *pci_dev_info = &accel_dev->accel_pci_dev;
@@ -111,7 +113,7 @@
 		struct adf_bar *pmisc =
 			&GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
 		void __iomem *pmisc_bar_addr = pmisc->virt_addr;
-		u32 vf_mask;
+		unsigned long vf_mask;
 
 		/* Get the interrupt sources triggered by VFs */
 		vf_mask = ((ADF_CSR_RD(pmisc_bar_addr, ADF_ERRSOU5) &
@@ -132,8 +134,7 @@
 			 * unless the VF is malicious and is attempting to
 			 * flood the host OS with VF2PF interrupts.
 			 */
-			for_each_set_bit(i, (const unsigned long *)&vf_mask,
-					 (sizeof(vf_mask) * BITS_PER_BYTE)) {
+			for_each_set_bit(i, &vf_mask, ADF_MAX_NUM_VFS) {
 				vf_info = accel_dev->pf.vf_info + i;
 
 				if (!__ratelimit(&vf_info->vf2pf_ratelimit)) {
@@ -330,19 +331,32 @@
 
 	ret = adf_isr_alloc_msix_entry_table(accel_dev);
 	if (ret)
-		return ret;
-	if (adf_enable_msix(accel_dev))
 		goto err_out;
 
-	if (adf_setup_bh(accel_dev))
-		goto err_out;
+	ret = adf_enable_msix(accel_dev);
+	if (ret)
+		goto err_free_msix_table;
 
-	if (adf_request_irqs(accel_dev))
-		goto err_out;
+	ret = adf_setup_bh(accel_dev);
+	if (ret)
+		goto err_disable_msix;
+
+	ret = adf_request_irqs(accel_dev);
+	if (ret)
+		goto err_cleanup_bh;
 
 	return 0;
+
+err_cleanup_bh:
+	adf_cleanup_bh(accel_dev);
+
+err_disable_msix:
+	adf_disable_msix(&accel_dev->accel_pci_dev);
+
+err_free_msix_table:
+	adf_isr_free_msix_entry_table(accel_dev);
+
 err_out:
-	adf_isr_resource_free(accel_dev);
-	return -EFAULT;
+	return ret;
 }
 EXPORT_SYMBOL_GPL(adf_isr_resource_alloc);
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
@@ -195,6 +195,13 @@
 		val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
 	} while ((val & int_bit) && (count++ < ADF_IOV_MSG_ACK_MAX_RETRY));
 
+	if (val != msg) {
+		dev_dbg(&GET_DEV(accel_dev),
+			"Collision - PFVF CSR overwritten by remote function\n");
+		ret = -EIO;
+		goto out;
+	}
+
 	if (val & int_bit) {
 		dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
 		val &= ~int_bit;
@@ -231,7 +238,6 @@
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(adf_iov_putmsg);
 
 void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)
 {
@@ -244,6 +250,11 @@
 
 	/* Read message from the VF */
 	msg = ADF_CSR_RD(pmisc_addr, hw_data->get_pf2vf_offset(vf_nr));
+	if (!(msg & ADF_VF2PF_INT)) {
+		dev_info(&GET_DEV(accel_dev),
+			 "Spurious VF2PF interrupt, msg %X. Ignored\n", msg);
+		goto out;
+	}
 
 	/* To ACK, clear the VF2PFINT bit */
 	msg &= ~ADF_VF2PF_INT;
@@ -327,6 +338,7 @@
 	if (resp && adf_iov_putmsg(accel_dev, resp, vf_nr))
 		dev_err(&GET_DEV(accel_dev), "Failed to send response to VF\n");
 
+out:
 	/* re-enable interrupt on PF from this VF */
 	adf_enable_vf2pf_interrupts(accel_dev, (1 << vf_nr));
 	return;
@@ -361,6 +373,8 @@
 	msg |= ADF_PFVF_COMPATIBILITY_VERSION << ADF_VF2PF_COMPAT_VER_REQ_SHIFT;
 	BUILD_BUG_ON(ADF_PFVF_COMPATIBILITY_VERSION > 255);
 
+	reinit_completion(&accel_dev->vf.iov_msg_completion);
+
 	/* Send request from VF to PF */
 	ret = adf_iov_putmsg(accel_dev, msg, 0);
 	if (ret) {
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_transport.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_transport.c
@@ -197,6 +197,7 @@
 		dev_err(&GET_DEV(accel_dev), "Ring address not aligned\n");
 		dma_free_coherent(&GET_DEV(accel_dev), ring_size_bytes,
 				  ring->base_addr, ring->dma_addr);
+		ring->base_addr = NULL;
 		return -EFAULT;
 	}
 
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
@@ -49,14 +49,14 @@
 #include "adf_pf2vf_msg.h"
 
 /**
- * adf_vf2pf_init() - send init msg to PF
+ * adf_vf2pf_notify_init() - send init msg to PF
  * @accel_dev:  Pointer to acceleration VF device.
  *
  * Function sends an init messge from the VF to a PF
  *
  * Return: 0 on success, error code otherwise.
  */
-int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
+int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
 {
 	u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
 		(ADF_VF2PF_MSGTYPE_INIT << ADF_VF2PF_MSGTYPE_SHIFT));
@@ -69,17 +69,17 @@
 	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
 	return 0;
 }
-EXPORT_SYMBOL_GPL(adf_vf2pf_init);
+EXPORT_SYMBOL_GPL(adf_vf2pf_notify_init);
 
 /**
- * adf_vf2pf_shutdown() - send shutdown msg to PF
+ * adf_vf2pf_notify_shutdown() - send shutdown msg to PF
  * @accel_dev:  Pointer to acceleration VF device.
  *
  * Function sends a shutdown messge from the VF to a PF
  *
  * Return: void
  */
-void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
+void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
 {
 	u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
 	    (ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT));
@@ -89,4 +89,4 @@
 			dev_err(&GET_DEV(accel_dev),
 				"Failed to send Shutdown event to PF\n");
 }
-EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown);
+EXPORT_SYMBOL_GPL(adf_vf2pf_notify_shutdown);
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/adf_vf_isr.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/adf_vf_isr.c
@@ -123,6 +123,11 @@
 
 	/* Read the message from PF */
 	msg = ADF_CSR_RD(pmisc_bar_addr, hw_data->get_pf2vf_offset(0));
+	if (!(msg & ADF_PF2VF_INT)) {
+		dev_info(&GET_DEV(accel_dev),
+			 "Spurious PF2VF interrupt, msg %X. Ignored\n", msg);
+		goto out;
+	}
 
 	if (!(msg & ADF_PF2VF_MSGORIGIN_SYSTEM))
 		/* Ignore legacy non-system (non-kernel) PF2VF messages */
@@ -171,6 +176,7 @@
 	msg &= ~ADF_PF2VF_INT;
 	ADF_CSR_WR(pmisc_bar_addr, hw_data->get_pf2vf_offset(0), msg);
 
+out:
 	/* Re-enable PF2VF interrupts */
 	adf_enable_pf2vf_interrupts(accel_dev);
 	return;
@@ -203,6 +209,7 @@
 	struct adf_bar *pmisc =
 			&GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
 	void __iomem *pmisc_bar_addr = pmisc->virt_addr;
+	bool handled = false;
 	u32 v_int;
 
 	/* Read VF INT source CSR to determine the source of VF interrupt */
@@ -215,7 +222,7 @@
 
 		/* Schedule tasklet to handle interrupt BH */
 		tasklet_hi_schedule(&accel_dev->vf.pf2vf_bh_tasklet);
-		return IRQ_HANDLED;
+		handled = true;
 	}
 
 	/* Check bundle interrupt */
@@ -227,10 +234,10 @@
 		WRITE_CSR_INT_FLAG_AND_COL(bank->csr_addr, bank->bank_number,
 					   0);
 		tasklet_hi_schedule(&bank->resp_handler);
-		return IRQ_HANDLED;
+		handled = true;
 	}
 
-	return IRQ_NONE;
+	return handled ? IRQ_HANDLED : IRQ_NONE;
 }
 
 static int adf_request_msi_irq(struct adf_accel_dev *accel_dev)
@@ -304,17 +311,26 @@
 		goto err_out;
 
 	if (adf_setup_pf2vf_bh(accel_dev))
-		goto err_out;
+		goto err_disable_msi;
 
 	if (adf_setup_bh(accel_dev))
-		goto err_out;
+		goto err_cleanup_pf2vf_bh;
 
 	if (adf_request_msi_irq(accel_dev))
-		goto err_out;
+		goto err_cleanup_bh;
 
 	return 0;
+
+err_cleanup_bh:
+	adf_cleanup_bh(accel_dev);
+
+err_cleanup_pf2vf_bh:
+	adf_cleanup_pf2vf_bh(accel_dev);
+
+err_disable_msi:
+	adf_disable_msi(accel_dev);
+
 err_out:
-	adf_vf_isr_resource_free(accel_dev);
 	return -EFAULT;
 }
 EXPORT_SYMBOL_GPL(adf_vf_isr_resource_alloc);
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/qat_algs.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/qat_algs.c
@@ -715,7 +715,7 @@
 	struct qat_alg_buf_list *bufl;
 	struct qat_alg_buf_list *buflout = NULL;
 	dma_addr_t blp;
-	dma_addr_t bloutp = 0;
+	dma_addr_t bloutp;
 	struct scatterlist *sg;
 	size_t sz_out, sz = struct_size(bufl, bufers, n + 1);
 
@@ -727,6 +727,9 @@
 	if (unlikely(!bufl))
 		return -ENOMEM;
 
+	for_each_sg(sgl, sg, n, i)
+		bufl->bufers[i].addr = DMA_MAPPING_ERROR;
+
 	blp = dma_map_single(dev, bufl, sz, DMA_TO_DEVICE);
 	if (unlikely(dma_mapping_error(dev, blp)))
 		goto err_in;
@@ -760,10 +763,14 @@
 				       dev_to_node(&GET_DEV(inst->accel_dev)));
 		if (unlikely(!buflout))
 			goto err_in;
+
+		bufers = buflout->bufers;
+		for_each_sg(sglout, sg, n, i)
+			bufers[i].addr = DMA_MAPPING_ERROR;
+
 		bloutp = dma_map_single(dev, buflout, sz_out, DMA_TO_DEVICE);
 		if (unlikely(dma_mapping_error(dev, bloutp)))
 			goto err_out;
-		bufers = buflout->bufers;
 		for_each_sg(sglout, sg, n, i) {
 			int y = sg_nctr;
 
@@ -873,6 +880,11 @@
 	struct icp_qat_fw_la_bulk_req *msg;
 	int digst_size = crypto_aead_authsize(aead_tfm);
 	int ret, ctr = 0;
+	u32 cipher_len;
+
+	cipher_len = areq->cryptlen - digst_size;
+	if (cipher_len % AES_BLOCK_SIZE != 0)
+		return -EINVAL;
 
 	ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req);
 	if (unlikely(ret))
@@ -887,7 +899,7 @@
 	qat_req->req.comn_mid.src_data_addr = qat_req->buf.blp;
 	qat_req->req.comn_mid.dest_data_addr = qat_req->buf.bloutp;
 	cipher_param = (void *)&qat_req->req.serv_specif_rqpars;
-	cipher_param->cipher_length = areq->cryptlen - digst_size;
+	cipher_param->cipher_length = cipher_len;
 	cipher_param->cipher_offset = areq->assoclen;
 	memcpy(cipher_param->u.cipher_IV_array, areq->iv, AES_BLOCK_SIZE);
 	auth_param = (void *)((uint8_t *)cipher_param + sizeof(*cipher_param));
@@ -916,6 +928,9 @@
 	uint8_t *iv = areq->iv;
 	int ret, ctr = 0;
 
+	if (areq->cryptlen % AES_BLOCK_SIZE != 0)
+		return -EINVAL;
+
 	ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req);
 	if (unlikely(ret))
 		return ret;
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/qat_crypto.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/qat_crypto.c
@@ -170,6 +170,14 @@
 		goto err;
 	if (adf_cfg_section_add(accel_dev, "Accelerator0"))
 		goto err;
+
+	/* Temporarily set the number of crypto instances to zero to avoid
+	 * registering the crypto algorithms.
+	 * This will be removed when the algorithms will support the
+	 * CRYPTO_TFM_REQ_MAY_BACKLOG flag
+	 */
+	instances = 0;
+
 	for (i = 0; i < instances; i++) {
 		val = i;
 		snprintf(key, sizeof(key), ADF_CY "%d" ADF_RING_BANK_NUM, i);
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/qat_hal.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/qat_hal.c
@@ -1189,7 +1189,7 @@
 	unsigned short mask;
 	unsigned short dr_offset = 0x10;
 
-	status = ctx_enables = qat_hal_rd_ae_csr(handle, ae, CTX_ENABLES);
+	ctx_enables = qat_hal_rd_ae_csr(handle, ae, CTX_ENABLES);
 	if (CE_INUSE_CONTEXTS & ctx_enables) {
 		if (ctx & 0x1) {
 			pr_err("QAT: bad 4-ctx mode,ctx=0x%x\n", ctx);
@@ -1256,7 +1256,11 @@
 		pr_err("QAT: bad xfrAddr=0x%x\n", xfr_addr);
 		return -EINVAL;
 	}
-	qat_hal_rd_rel_reg(handle, ae, ctx, ICP_GPB_REL, gprnum, &gprval);
+	status = qat_hal_rd_rel_reg(handle, ae, ctx, ICP_GPB_REL, gprnum, &gprval);
+	if (status) {
+		pr_err("QAT: failed to read register");
+		return status;
+	}
 	gpr_addr = qat_hal_get_reg_addr(ICP_GPB_REL, gprnum);
 	data16low = 0xffff & data;
 	data16hi = 0xffff & (data >> 0x10);
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_common/qat_uclo.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_common/qat_uclo.c
@@ -332,13 +332,18 @@
 	}
 	return 0;
 out_err:
+	/* Do not free the list head unless we allocated it. */
+	tail_old = tail_old->next;
+	if (flag) {
+		kfree(*init_tab_base);
+		*init_tab_base = NULL;
+	}
+
 	while (tail_old) {
 		mem_init = tail_old->next;
 		kfree(tail_old);
 		tail_old = mem_init;
 	}
-	if (flag)
-		kfree(*init_tab_base);
 	return -ENOMEM;
 }
 
@@ -380,7 +385,6 @@
 	return 0;
 }
 
-#define ICP_DH895XCC_PESRAM_BAR_SIZE 0x80000
 static int qat_uclo_init_ae_memory(struct icp_qat_fw_loader_handle *handle,
 				   struct icp_qat_uof_initmem *init_mem)
 {
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
@@ -123,10 +123,10 @@
 	hw_data->enable_error_correction = adf_vf_void_noop;
 	hw_data->init_admin_comms = adf_vf_int_noop;
 	hw_data->exit_admin_comms = adf_vf_void_noop;
-	hw_data->send_admin_init = adf_vf2pf_init;
+	hw_data->send_admin_init = adf_vf2pf_notify_init;
 	hw_data->init_arb = adf_vf_int_noop;
 	hw_data->exit_arb = adf_vf_void_noop;
-	hw_data->disable_iov = adf_vf2pf_shutdown;
+	hw_data->disable_iov = adf_vf2pf_notify_shutdown;
 	hw_data->get_accel_mask = get_accel_mask;
 	hw_data->get_ae_mask = get_ae_mask;
 	hw_data->get_num_accels = get_num_accels;
--- linux-ein-5.4.0.orig/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
+++ linux-ein-5.4.0/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
@@ -233,12 +233,12 @@
 	if (ret)
 		goto out_err_free_reg;
 
-	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
-
 	ret = adf_dev_init(accel_dev);
 	if (ret)
 		goto out_err_dev_shutdown;
 
+	set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
+
 	ret = adf_dev_start(accel_dev);
 	if (ret)
 		goto out_err_dev_stop;
--- linux-ein-5.4.0.orig/drivers/crypto/qce/sha.c
+++ linux-ein-5.4.0/drivers/crypto/qce/sha.c
@@ -512,8 +512,8 @@
 
 	ret = crypto_register_ahash(alg);
 	if (ret) {
-		kfree(tmpl);
 		dev_err(qce->dev, "%s registration failed\n", base->cra_name);
+		kfree(tmpl);
 		return ret;
 	}
 
--- linux-ein-5.4.0.orig/drivers/crypto/qcom-rng.c
+++ linux-ein-5.4.0/drivers/crypto/qcom-rng.c
@@ -7,6 +7,7 @@
 #include <linux/acpi.h>
 #include <linux/clk.h>
 #include <linux/crypto.h>
+#include <linux/iopoll.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
@@ -42,16 +43,19 @@
 {
 	unsigned int currsize = 0;
 	u32 val;
+	int ret;
 
 	/* read random data from hardware */
 	do {
-		val = readl_relaxed(rng->base + PRNG_STATUS);
-		if (!(val & PRNG_STATUS_DATA_AVAIL))
-			break;
+		ret = readl_poll_timeout(rng->base + PRNG_STATUS, val,
+					 val & PRNG_STATUS_DATA_AVAIL,
+					 200, 10000);
+		if (ret)
+			return ret;
 
 		val = readl_relaxed(rng->base + PRNG_DATA_OUT);
 		if (!val)
-			break;
+			return -EINVAL;
 
 		if ((max - currsize) >= WORD_SZ) {
 			memcpy(data, &val, WORD_SZ);
@@ -64,7 +68,7 @@
 		}
 	} while (currsize < max);
 
-	return currsize;
+	return 0;
 }
 
 static int qcom_rng_generate(struct crypto_rng *tfm,
@@ -86,7 +90,7 @@
 	mutex_unlock(&rng->lock);
 	clk_disable_unprepare(rng->clk);
 
-	return 0;
+	return ret;
 }
 
 static int qcom_rng_seed(struct crypto_rng *tfm, const u8 *seed,
--- linux-ein-5.4.0.orig/drivers/crypto/s5p-sss.c
+++ linux-ein-5.4.0/drivers/crypto/s5p-sss.c
@@ -2208,6 +2208,8 @@
 
 	variant = find_s5p_sss_version(pdev);
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -EINVAL;
 
 	/*
 	 * Note: HASH and PRNG uses the same registers in secss, avoid
--- linux-ein-5.4.0.orig/drivers/crypto/stm32/stm32-crc32.c
+++ linux-ein-5.4.0/drivers/crypto/stm32/stm32-crc32.c
@@ -28,8 +28,10 @@
 
 /* Registers values */
 #define CRC_CR_RESET            BIT(0)
-#define CRC_CR_REVERSE          (BIT(7) | BIT(6) | BIT(5))
-#define CRC_INIT_DEFAULT        0xFFFFFFFF
+#define CRC_CR_REV_IN_WORD      (BIT(6) | BIT(5))
+#define CRC_CR_REV_IN_BYTE      BIT(5)
+#define CRC_CR_REV_OUT          BIT(7)
+#define CRC32C_INIT_DEFAULT     0xFFFFFFFF
 
 #define CRC_AUTOSUSPEND_DELAY	50
 
@@ -38,8 +40,6 @@
 	struct device    *dev;
 	void __iomem     *regs;
 	struct clk       *clk;
-	u8               pending_data[sizeof(u32)];
-	size_t           nb_pending_bytes;
 };
 
 struct stm32_crc_list {
@@ -59,14 +59,13 @@
 
 struct stm32_crc_desc_ctx {
 	u32    partial; /* crc32c: partial in first 4 bytes of that struct */
-	struct stm32_crc *crc;
 };
 
 static int stm32_crc32_cra_init(struct crypto_tfm *tfm)
 {
 	struct stm32_crc_ctx *mctx = crypto_tfm_ctx(tfm);
 
-	mctx->key = CRC_INIT_DEFAULT;
+	mctx->key = 0;
 	mctx->poly = CRC32_POLY_LE;
 	return 0;
 }
@@ -75,7 +74,7 @@
 {
 	struct stm32_crc_ctx *mctx = crypto_tfm_ctx(tfm);
 
-	mctx->key = CRC_INIT_DEFAULT;
+	mctx->key = CRC32C_INIT_DEFAULT;
 	mctx->poly = CRC32C_POLY_LE;
 	return 0;
 }
@@ -94,32 +93,42 @@
 	return 0;
 }
 
+static struct stm32_crc *stm32_crc_get_next_crc(void)
+{
+	struct stm32_crc *crc;
+
+	spin_lock_bh(&crc_list.lock);
+	crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list);
+	if (crc)
+		list_move_tail(&crc->list, &crc_list.dev_list);
+	spin_unlock_bh(&crc_list.lock);
+
+	return crc;
+}
+
 static int stm32_crc_init(struct shash_desc *desc)
 {
 	struct stm32_crc_desc_ctx *ctx = shash_desc_ctx(desc);
 	struct stm32_crc_ctx *mctx = crypto_shash_ctx(desc->tfm);
 	struct stm32_crc *crc;
 
-	spin_lock_bh(&crc_list.lock);
-	list_for_each_entry(crc, &crc_list.dev_list, list) {
-		ctx->crc = crc;
-		break;
-	}
-	spin_unlock_bh(&crc_list.lock);
+	crc = stm32_crc_get_next_crc();
+	if (!crc)
+		return -ENODEV;
 
-	pm_runtime_get_sync(ctx->crc->dev);
+	pm_runtime_get_sync(crc->dev);
 
 	/* Reset, set key, poly and configure in bit reverse mode */
-	writel_relaxed(bitrev32(mctx->key), ctx->crc->regs + CRC_INIT);
-	writel_relaxed(bitrev32(mctx->poly), ctx->crc->regs + CRC_POL);
-	writel_relaxed(CRC_CR_RESET | CRC_CR_REVERSE, ctx->crc->regs + CRC_CR);
+	writel_relaxed(bitrev32(mctx->key), crc->regs + CRC_INIT);
+	writel_relaxed(bitrev32(mctx->poly), crc->regs + CRC_POL);
+	writel_relaxed(CRC_CR_RESET | CRC_CR_REV_IN_WORD | CRC_CR_REV_OUT,
+		       crc->regs + CRC_CR);
 
 	/* Store partial result */
-	ctx->partial = readl_relaxed(ctx->crc->regs + CRC_DR);
-	ctx->crc->nb_pending_bytes = 0;
+	ctx->partial = readl_relaxed(crc->regs + CRC_DR);
 
-	pm_runtime_mark_last_busy(ctx->crc->dev);
-	pm_runtime_put_autosuspend(ctx->crc->dev);
+	pm_runtime_mark_last_busy(crc->dev);
+	pm_runtime_put_autosuspend(crc->dev);
 
 	return 0;
 }
@@ -128,31 +137,49 @@
 			    unsigned int length)
 {
 	struct stm32_crc_desc_ctx *ctx = shash_desc_ctx(desc);
-	struct stm32_crc *crc = ctx->crc;
-	u32 *d32;
-	unsigned int i;
+	struct stm32_crc_ctx *mctx = crypto_shash_ctx(desc->tfm);
+	struct stm32_crc *crc;
+
+	crc = stm32_crc_get_next_crc();
+	if (!crc)
+		return -ENODEV;
 
 	pm_runtime_get_sync(crc->dev);
 
-	if (unlikely(crc->nb_pending_bytes)) {
-		while (crc->nb_pending_bytes != sizeof(u32) && length) {
-			/* Fill in pending data */
-			crc->pending_data[crc->nb_pending_bytes++] = *(d8++);
+	/*
+	 * Restore previously calculated CRC for this context as init value
+	 * Restore polynomial configuration
+	 * Configure in register for word input data,
+	 * Configure out register in reversed bit mode data.
+	 */
+	writel_relaxed(bitrev32(ctx->partial), crc->regs + CRC_INIT);
+	writel_relaxed(bitrev32(mctx->poly), crc->regs + CRC_POL);
+	writel_relaxed(CRC_CR_RESET | CRC_CR_REV_IN_WORD | CRC_CR_REV_OUT,
+		       crc->regs + CRC_CR);
+
+	if (d8 != PTR_ALIGN(d8, sizeof(u32))) {
+		/* Configure for byte data */
+		writel_relaxed(CRC_CR_REV_IN_BYTE | CRC_CR_REV_OUT,
+			       crc->regs + CRC_CR);
+		while (d8 != PTR_ALIGN(d8, sizeof(u32)) && length) {
+			writeb_relaxed(*d8++, crc->regs + CRC_DR);
 			length--;
 		}
-
-		if (crc->nb_pending_bytes == sizeof(u32)) {
-			/* Process completed pending data */
-			writel_relaxed(*(u32 *)crc->pending_data,
-				       crc->regs + CRC_DR);
-			crc->nb_pending_bytes = 0;
-		}
+		/* Configure for word data */
+		writel_relaxed(CRC_CR_REV_IN_WORD | CRC_CR_REV_OUT,
+			       crc->regs + CRC_CR);
 	}
 
-	d32 = (u32 *)d8;
-	for (i = 0; i < length >> 2; i++)
-		/* Process 32 bits data */
-		writel_relaxed(*(d32++), crc->regs + CRC_DR);
+	for (; length >= sizeof(u32); d8 += sizeof(u32), length -= sizeof(u32))
+		writel_relaxed(*((u32 *)d8), crc->regs + CRC_DR);
+
+	if (length) {
+		/* Configure for byte data */
+		writel_relaxed(CRC_CR_REV_IN_BYTE | CRC_CR_REV_OUT,
+			       crc->regs + CRC_CR);
+		while (length--)
+			writeb_relaxed(*d8++, crc->regs + CRC_DR);
+	}
 
 	/* Store partial result */
 	ctx->partial = readl_relaxed(crc->regs + CRC_DR);
@@ -160,22 +187,6 @@
 	pm_runtime_mark_last_busy(crc->dev);
 	pm_runtime_put_autosuspend(crc->dev);
 
-	/* Check for pending data (non 32 bits) */
-	length &= 3;
-	if (likely(!length))
-		return 0;
-
-	if ((crc->nb_pending_bytes + length) >= sizeof(u32)) {
-		/* Shall not happen */
-		dev_err(crc->dev, "Pending data overflow\n");
-		return -EINVAL;
-	}
-
-	d8 = (const u8 *)d32;
-	for (i = 0; i < length; i++)
-		/* Store pending data */
-		crc->pending_data[crc->nb_pending_bytes++] = *(d8++);
-
 	return 0;
 }
 
@@ -204,6 +215,8 @@
 	return stm32_crc_init(desc) ?: stm32_crc_finup(desc, data, length, out);
 }
 
+static unsigned int refcnt;
+static DEFINE_MUTEX(refcnt_lock);
 static struct shash_alg algs[] = {
 	/* CRC-32 */
 	{
@@ -217,7 +230,7 @@
 		.digestsize     = CHKSUM_DIGEST_SIZE,
 		.base           = {
 			.cra_name               = "crc32",
-			.cra_driver_name        = DRIVER_NAME,
+			.cra_driver_name        = "stm32-crc32-crc32",
 			.cra_priority           = 200,
 			.cra_flags		= CRYPTO_ALG_OPTIONAL_KEY,
 			.cra_blocksize          = CHKSUM_BLOCK_SIZE,
@@ -239,7 +252,7 @@
 		.digestsize     = CHKSUM_DIGEST_SIZE,
 		.base           = {
 			.cra_name               = "crc32c",
-			.cra_driver_name        = DRIVER_NAME,
+			.cra_driver_name        = "stm32-crc32-crc32c",
 			.cra_priority           = 200,
 			.cra_flags		= CRYPTO_ALG_OPTIONAL_KEY,
 			.cra_blocksize          = CHKSUM_BLOCK_SIZE,
@@ -294,12 +307,18 @@
 	list_add(&crc->list, &crc_list.dev_list);
 	spin_unlock(&crc_list.lock);
 
-	ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
-	if (ret) {
-		dev_err(dev, "Failed to register\n");
-		clk_disable_unprepare(crc->clk);
-		return ret;
+	mutex_lock(&refcnt_lock);
+	if (!refcnt) {
+		ret = crypto_register_shashes(algs, ARRAY_SIZE(algs));
+		if (ret) {
+			mutex_unlock(&refcnt_lock);
+			dev_err(dev, "Failed to register\n");
+			clk_disable_unprepare(crc->clk);
+			return ret;
+		}
 	}
+	refcnt++;
+	mutex_unlock(&refcnt_lock);
 
 	dev_info(dev, "Initialized\n");
 
@@ -313,14 +332,19 @@
 	struct stm32_crc *crc = platform_get_drvdata(pdev);
 	int ret = pm_runtime_get_sync(crc->dev);
 
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(crc->dev);
 		return ret;
+	}
 
 	spin_lock(&crc_list.lock);
 	list_del(&crc->list);
 	spin_unlock(&crc_list.lock);
 
-	crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
+	mutex_lock(&refcnt_lock);
+	if (!--refcnt)
+		crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
+	mutex_unlock(&refcnt_lock);
 
 	pm_runtime_disable(crc->dev);
 	pm_runtime_put_noidle(crc->dev);
--- linux-ein-5.4.0.orig/drivers/crypto/stm32/stm32-cryp.c
+++ linux-ein-5.4.0/drivers/crypto/stm32/stm32-cryp.c
@@ -537,7 +537,7 @@
 	int ret;
 	u32 cfg, hw_mode;
 
-	pm_runtime_get_sync(cryp->dev);
+	pm_runtime_resume_and_get(cryp->dev);
 
 	/* Disable interrupt */
 	stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -639,7 +639,7 @@
 		/* Phase 4 : output tag */
 		err = stm32_cryp_read_auth_tag(cryp);
 
-	if (!err && (!(is_gcm(cryp) || is_ccm(cryp))))
+	if (!err && (!(is_gcm(cryp) || is_ccm(cryp) || is_ecb(cryp))))
 		stm32_cryp_get_iv(cryp);
 
 	if (cryp->sgs_copied) {
@@ -669,8 +669,6 @@
 	else
 		crypto_finalize_ablkcipher_request(cryp->engine, cryp->req,
 						   err);
-
-	memset(cryp->ctx->key, 0, cryp->ctx->keylen);
 }
 
 static int stm32_cryp_cpu_start(struct stm32_cryp *cryp)
@@ -2038,8 +2036,6 @@
 
 	pm_runtime_disable(dev);
 	pm_runtime_put_noidle(dev);
-	pm_runtime_disable(dev);
-	pm_runtime_put_noidle(dev);
 
 	clk_disable_unprepare(cryp->clk);
 
@@ -2054,7 +2050,7 @@
 	if (!cryp)
 		return -ENODEV;
 
-	ret = pm_runtime_get_sync(cryp->dev);
+	ret = pm_runtime_resume_and_get(cryp->dev);
 	if (ret < 0)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/crypto/stm32/stm32-hash.c
+++ linux-ein-5.4.0/drivers/crypto/stm32/stm32-hash.c
@@ -562,9 +562,9 @@
 	}
 
 	for_each_sg(rctx->sg, tsg, rctx->nents, i) {
+		sg[0] = *tsg;
 		len = sg->length;
 
-		sg[0] = *tsg;
 		if (sg_is_last(sg)) {
 			if (hdev->dma_mode == 1) {
 				len = (ALIGN(sg->length, 16) - 16);
@@ -810,7 +810,7 @@
 static int stm32_hash_hw_init(struct stm32_hash_dev *hdev,
 			      struct stm32_hash_request_ctx *rctx)
 {
-	pm_runtime_get_sync(hdev->dev);
+	pm_runtime_resume_and_get(hdev->dev);
 
 	if (!(HASH_FLAGS_INIT & hdev->flags)) {
 		stm32_hash_write(hdev, HASH_CR, HASH_CR_INIT);
@@ -959,7 +959,7 @@
 	u32 *preg;
 	unsigned int i;
 
-	pm_runtime_get_sync(hdev->dev);
+	pm_runtime_resume_and_get(hdev->dev);
 
 	while ((stm32_hash_read(hdev, HASH_SR) & HASH_SR_BUSY))
 		cpu_relax();
@@ -997,7 +997,7 @@
 
 	preg = rctx->hw_context;
 
-	pm_runtime_get_sync(hdev->dev);
+	pm_runtime_resume_and_get(hdev->dev);
 
 	stm32_hash_write(hdev, HASH_IMR, *preg++);
 	stm32_hash_write(hdev, HASH_STR, *preg++);
@@ -1554,8 +1554,6 @@
 		return -ENODEV;
 
 	ret = pm_runtime_get_sync(hdev->dev);
-	if (ret < 0)
-		return ret;
 
 	stm32_hash_unregister_algs(hdev);
 
@@ -1571,7 +1569,8 @@
 	pm_runtime_disable(hdev->dev);
 	pm_runtime_put_noidle(hdev->dev);
 
-	clk_disable_unprepare(hdev->clk);
+	if (ret >= 0)
+		clk_disable_unprepare(hdev->clk);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
+++ linux-ein-5.4.0/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
@@ -30,6 +30,8 @@
 	unsigned int ileft = areq->cryptlen;
 	unsigned int oleft = areq->cryptlen;
 	unsigned int todo;
+	unsigned long pi = 0, po = 0; /* progress for in and out */
+	bool miter_err;
 	struct sg_mapping_iter mi, mo;
 	unsigned int oi, oo; /* offset for in and out */
 	unsigned long flags;
@@ -44,59 +46,74 @@
 
 	spin_lock_irqsave(&ss->slock, flags);
 
-	for (i = 0; i < op->keylen; i += 4)
-		writel(*(op->key + i / 4), ss->base + SS_KEY0 + i);
+	for (i = 0; i < op->keylen / 4; i++)
+		writesl(ss->base + SS_KEY0 + i * 4, &op->key[i], 1);
 
 	if (areq->iv) {
 		for (i = 0; i < 4 && i < ivsize / 4; i++) {
 			v = *(u32 *)(areq->iv + i * 4);
-			writel(v, ss->base + SS_IV0 + i * 4);
+			writesl(ss->base + SS_IV0 + i * 4, &v, 1);
 		}
 	}
 	writel(mode, ss->base + SS_CTL);
 
-	sg_miter_start(&mi, areq->src, sg_nents(areq->src),
-		       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
-	sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
-		       SG_MITER_TO_SG | SG_MITER_ATOMIC);
-	sg_miter_next(&mi);
-	sg_miter_next(&mo);
-	if (!mi.addr || !mo.addr) {
-		dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
-		err = -EINVAL;
-		goto release_ss;
-	}
 
 	ileft = areq->cryptlen / 4;
 	oleft = areq->cryptlen / 4;
 	oi = 0;
 	oo = 0;
 	do {
-		todo = min3(rx_cnt, ileft, (mi.length - oi) / 4);
-		if (todo) {
-			ileft -= todo;
-			writesl(ss->base + SS_RXFIFO, mi.addr + oi, todo);
-			oi += todo * 4;
-		}
-		if (oi == mi.length) {
-			sg_miter_next(&mi);
-			oi = 0;
+		if (ileft) {
+			sg_miter_start(&mi, areq->src, sg_nents(areq->src),
+					SG_MITER_FROM_SG | SG_MITER_ATOMIC);
+			if (pi)
+				sg_miter_skip(&mi, pi);
+			miter_err = sg_miter_next(&mi);
+			if (!miter_err || !mi.addr) {
+				dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+				err = -EINVAL;
+				goto release_ss;
+			}
+			todo = min(rx_cnt, ileft);
+			todo = min_t(size_t, todo, (mi.length - oi) / 4);
+			if (todo) {
+				ileft -= todo;
+				writesl(ss->base + SS_RXFIFO, mi.addr + oi, todo);
+				oi += todo * 4;
+			}
+			if (oi == mi.length) {
+				pi += mi.length;
+				oi = 0;
+			}
+			sg_miter_stop(&mi);
 		}
 
 		spaces = readl(ss->base + SS_FCSR);
 		rx_cnt = SS_RXFIFO_SPACES(spaces);
 		tx_cnt = SS_TXFIFO_SPACES(spaces);
 
-		todo = min3(tx_cnt, oleft, (mo.length - oo) / 4);
+		sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
+			       SG_MITER_TO_SG | SG_MITER_ATOMIC);
+		if (po)
+			sg_miter_skip(&mo, po);
+		miter_err = sg_miter_next(&mo);
+		if (!miter_err || !mo.addr) {
+			dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+			err = -EINVAL;
+			goto release_ss;
+		}
+		todo = min(tx_cnt, oleft);
+		todo = min_t(size_t, todo, (mo.length - oo) / 4);
 		if (todo) {
 			oleft -= todo;
 			readsl(ss->base + SS_TXFIFO, mo.addr + oo, todo);
 			oo += todo * 4;
 		}
 		if (oo == mo.length) {
-			sg_miter_next(&mo);
 			oo = 0;
+			po += mo.length;
 		}
+		sg_miter_stop(&mo);
 	} while (oleft);
 
 	if (areq->iv) {
@@ -107,8 +124,6 @@
 	}
 
 release_ss:
-	sg_miter_stop(&mi);
-	sg_miter_stop(&mo);
 	writel(0, ss->base + SS_CTL);
 	spin_unlock_irqrestore(&ss->slock, flags);
 	return err;
@@ -162,12 +177,14 @@
 	unsigned int oleft = areq->cryptlen;
 	unsigned int todo;
 	struct sg_mapping_iter mi, mo;
+	unsigned long pi = 0, po = 0; /* progress for in and out */
+	bool miter_err;
 	unsigned int oi, oo;	/* offset for in and out */
 	unsigned int ob = 0;	/* offset in buf */
 	unsigned int obo = 0;	/* offset in bufo*/
 	unsigned int obl = 0;	/* length of data in bufo */
 	unsigned long flags;
-	bool need_fallback;
+	bool need_fallback = false;
 
 	if (!areq->cryptlen)
 		return 0;
@@ -186,12 +203,12 @@
 	 * we can use the SS optimized function
 	 */
 	while (in_sg && no_chunk == 1) {
-		if (in_sg->length % 4)
+		if ((in_sg->length | in_sg->offset) & 3u)
 			no_chunk = 0;
 		in_sg = sg_next(in_sg);
 	}
 	while (out_sg && no_chunk == 1) {
-		if (out_sg->length % 4)
+		if ((out_sg->length | out_sg->offset) & 3u)
 			no_chunk = 0;
 		out_sg = sg_next(out_sg);
 	}
@@ -204,28 +221,17 @@
 
 	spin_lock_irqsave(&ss->slock, flags);
 
-	for (i = 0; i < op->keylen; i += 4)
-		writel(*(op->key + i / 4), ss->base + SS_KEY0 + i);
+	for (i = 0; i < op->keylen / 4; i++)
+		writesl(ss->base + SS_KEY0 + i * 4, &op->key[i], 1);
 
 	if (areq->iv) {
 		for (i = 0; i < 4 && i < ivsize / 4; i++) {
 			v = *(u32 *)(areq->iv + i * 4);
-			writel(v, ss->base + SS_IV0 + i * 4);
+			writesl(ss->base + SS_IV0 + i * 4, &v, 1);
 		}
 	}
 	writel(mode, ss->base + SS_CTL);
 
-	sg_miter_start(&mi, areq->src, sg_nents(areq->src),
-		       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
-	sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
-		       SG_MITER_TO_SG | SG_MITER_ATOMIC);
-	sg_miter_next(&mi);
-	sg_miter_next(&mo);
-	if (!mi.addr || !mo.addr) {
-		dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
-		err = -EINVAL;
-		goto release_ss;
-	}
 	ileft = areq->cryptlen;
 	oleft = areq->cryptlen;
 	oi = 0;
@@ -233,13 +239,22 @@
 
 	while (oleft) {
 		if (ileft) {
-			char buf[4 * SS_RX_MAX];/* buffer for linearize SG src */
-
+			sg_miter_start(&mi, areq->src, sg_nents(areq->src),
+				       SG_MITER_FROM_SG | SG_MITER_ATOMIC);
+			if (pi)
+				sg_miter_skip(&mi, pi);
+			miter_err = sg_miter_next(&mi);
+			if (!miter_err || !mi.addr) {
+				dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+				err = -EINVAL;
+				goto release_ss;
+			}
 			/*
 			 * todo is the number of consecutive 4byte word that we
 			 * can read from current SG
 			 */
-			todo = min3(rx_cnt, ileft / 4, (mi.length - oi) / 4);
+			todo = min(rx_cnt, ileft / 4);
+			todo = min_t(size_t, todo, (mi.length - oi) / 4);
 			if (todo && !ob) {
 				writesl(ss->base + SS_RXFIFO, mi.addr + oi,
 					todo);
@@ -253,52 +268,59 @@
 				 * we need to be able to write all buf in one
 				 * pass, so it is why we min() with rx_cnt
 				 */
-				todo = min3(rx_cnt * 4 - ob, ileft,
-					    mi.length - oi);
-				memcpy(buf + ob, mi.addr + oi, todo);
+				todo = min(rx_cnt * 4 - ob, ileft);
+				todo = min_t(size_t, todo, mi.length - oi);
+				memcpy(ss->buf + ob, mi.addr + oi, todo);
 				ileft -= todo;
 				oi += todo;
 				ob += todo;
 				if (!(ob % 4)) {
-					writesl(ss->base + SS_RXFIFO, buf,
+					writesl(ss->base + SS_RXFIFO, ss->buf,
 						ob / 4);
 					ob = 0;
 				}
 			}
 			if (oi == mi.length) {
-				sg_miter_next(&mi);
+				pi += mi.length;
 				oi = 0;
 			}
+			sg_miter_stop(&mi);
 		}
 
 		spaces = readl(ss->base + SS_FCSR);
 		rx_cnt = SS_RXFIFO_SPACES(spaces);
 		tx_cnt = SS_TXFIFO_SPACES(spaces);
-		dev_dbg(ss->dev, "%x %u/%u %u/%u cnt=%u %u/%u %u/%u cnt=%u %u\n",
-			mode,
-			oi, mi.length, ileft, areq->cryptlen, rx_cnt,
-			oo, mo.length, oleft, areq->cryptlen, tx_cnt, ob);
 
 		if (!tx_cnt)
 			continue;
+		sg_miter_start(&mo, areq->dst, sg_nents(areq->dst),
+			       SG_MITER_TO_SG | SG_MITER_ATOMIC);
+		if (po)
+			sg_miter_skip(&mo, po);
+		miter_err = sg_miter_next(&mo);
+		if (!miter_err || !mo.addr) {
+			dev_err_ratelimited(ss->dev, "ERROR: sg_miter return null\n");
+			err = -EINVAL;
+			goto release_ss;
+		}
 		/* todo in 4bytes word */
-		todo = min3(tx_cnt, oleft / 4, (mo.length - oo) / 4);
+		todo = min(tx_cnt, oleft / 4);
+		todo = min_t(size_t, todo, (mo.length - oo) / 4);
+
 		if (todo) {
 			readsl(ss->base + SS_TXFIFO, mo.addr + oo, todo);
 			oleft -= todo * 4;
 			oo += todo * 4;
 			if (oo == mo.length) {
-				sg_miter_next(&mo);
+				po += mo.length;
 				oo = 0;
 			}
 		} else {
-			char bufo[4 * SS_TX_MAX]; /* buffer for linearize SG dst */
-
 			/*
 			 * read obl bytes in bufo, we read at maximum for
 			 * emptying the device
 			 */
-			readsl(ss->base + SS_TXFIFO, bufo, tx_cnt);
+			readsl(ss->base + SS_TXFIFO, ss->bufo, tx_cnt);
 			obl = tx_cnt * 4;
 			obo = 0;
 			do {
@@ -308,18 +330,21 @@
 				 * no more than remaining buffer
 				 * no need to test against oleft
 				 */
-				todo = min(mo.length - oo, obl - obo);
-				memcpy(mo.addr + oo, bufo + obo, todo);
+				todo = min_t(size_t,
+					     mo.length - oo, obl - obo);
+				memcpy(mo.addr + oo, ss->bufo + obo, todo);
 				oleft -= todo;
 				obo += todo;
 				oo += todo;
 				if (oo == mo.length) {
+					po += mo.length;
 					sg_miter_next(&mo);
 					oo = 0;
 				}
 			} while (obo < obl);
 			/* bufo must be fully used here */
 		}
+		sg_miter_stop(&mo);
 	}
 	if (areq->iv) {
 		for (i = 0; i < 4 && i < ivsize / 4; i++) {
@@ -329,8 +354,6 @@
 	}
 
 release_ss:
-	sg_miter_stop(&mi);
-	sg_miter_stop(&mo);
 	writel(0, ss->base + SS_CTL);
 	spin_unlock_irqrestore(&ss->slock, flags);
 
--- linux-ein-5.4.0.orig/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
+++ linux-ein-5.4.0/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
@@ -175,7 +175,7 @@
 	 */
 	unsigned int i = 0, end, fill, min_fill, nwait, nbw = 0, j = 0, todo;
 	unsigned int in_i = 0;
-	u32 spaces, rx_cnt = SS_RX_DEFAULT, bf[32] = {0}, wb = 0, v, ivmode = 0;
+	u32 spaces, rx_cnt = SS_RX_DEFAULT, bf[32] = {0}, v, ivmode = 0;
 	struct sun4i_req_ctx *op = ahash_request_ctx(areq);
 	struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
 	struct sun4i_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm);
@@ -184,6 +184,7 @@
 	struct sg_mapping_iter mi;
 	int in_r, err = 0;
 	size_t copied = 0;
+	__le32 wb = 0;
 
 	dev_dbg(ss->dev, "%s %s bc=%llu len=%u mode=%x wl=%u h0=%0x",
 		__func__, crypto_tfm_alg_name(areq->base.tfm),
@@ -272,8 +273,8 @@
 			 */
 			while (op->len < 64 && i < end) {
 				/* how many bytes we can read from current SG */
-				in_r = min3(mi.length - in_i, end - i,
-					    64 - op->len);
+				in_r = min(end - i, 64 - op->len);
+				in_r = min_t(size_t, mi.length - in_i, in_r);
 				memcpy(op->buf + op->len, mi.addr + in_i, in_r);
 				op->len += in_r;
 				i += in_r;
@@ -293,8 +294,8 @@
 		}
 		if (mi.length - in_i > 3 && i < end) {
 			/* how many bytes we can read from current SG */
-			in_r = min3(mi.length - in_i, areq->nbytes - i,
-				    ((mi.length - in_i) / 4) * 4);
+			in_r = min_t(size_t, mi.length - in_i, areq->nbytes - i);
+			in_r = min_t(size_t, ((mi.length - in_i) / 4) * 4, in_r);
 			/* how many bytes we can write in the device*/
 			todo = min3((u32)(end - i) / 4, rx_cnt, (u32)in_r / 4);
 			writesl(ss->base + SS_RXFIFO, mi.addr + in_i, todo);
@@ -320,8 +321,8 @@
 	if ((areq->nbytes - i) < 64) {
 		while (i < areq->nbytes && in_i < mi.length && op->len < 64) {
 			/* how many bytes we can read from current SG */
-			in_r = min3(mi.length - in_i, areq->nbytes - i,
-				    64 - op->len);
+			in_r = min(areq->nbytes - i, 64 - op->len);
+			in_r = min_t(size_t, mi.length - in_i, in_r);
 			memcpy(op->buf + op->len, mi.addr + in_i, in_r);
 			op->len += in_r;
 			i += in_r;
@@ -395,7 +396,7 @@
 
 		nbw = op->len - 4 * nwait;
 		if (nbw) {
-			wb = *(u32 *)(op->buf + nwait * 4);
+			wb = cpu_to_le32(*(u32 *)(op->buf + nwait * 4));
 			wb &= GENMASK((nbw * 8) - 1, 0);
 
 			op->byte_count += nbw;
@@ -404,7 +405,7 @@
 
 	/* write the remaining bytes of the nbw buffer */
 	wb |= ((1 << 7) << (nbw * 8));
-	bf[j++] = wb;
+	bf[j++] = le32_to_cpu(wb);
 
 	/*
 	 * number of space to pad to obtain 64o minus 8(size) minus 4 (final 1)
@@ -423,13 +424,13 @@
 
 	/* write the length of data */
 	if (op->mode == SS_OP_SHA1) {
-		__be64 bits = cpu_to_be64(op->byte_count << 3);
-		bf[j++] = lower_32_bits(bits);
-		bf[j++] = upper_32_bits(bits);
+		__be64 *bits = (__be64 *)&bf[j];
+		*bits = cpu_to_be64(op->byte_count << 3);
+		j += 2;
 	} else {
-		__le64 bits = op->byte_count << 3;
-		bf[j++] = lower_32_bits(bits);
-		bf[j++] = upper_32_bits(bits);
+		__le64 *bits = (__le64 *)&bf[j];
+		*bits = cpu_to_le64(op->byte_count << 3);
+		j += 2;
 	}
 	writesl(ss->base + SS_RXFIFO, bf, j);
 
@@ -471,7 +472,7 @@
 		}
 	} else {
 		for (i = 0; i < 4; i++) {
-			v = readl(ss->base + SS_MD0 + i * 4);
+			v = cpu_to_le32(readl(ss->base + SS_MD0 + i * 4));
 			memcpy(areq->result + i * 4, &v, 4);
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/crypto/sunxi-ss/sun4i-ss.h
+++ linux-ein-5.4.0/drivers/crypto/sunxi-ss/sun4i-ss.h
@@ -138,6 +138,8 @@
 	struct reset_control *reset;
 	struct device *dev;
 	struct resource *res;
+	char buf[4 * SS_RX_MAX];/* buffer for linearize SG src */
+	char bufo[4 * SS_TX_MAX]; /* buffer for linearize SG dst */
 	spinlock_t slock; /* control the use of the device */
 #ifdef CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG
 	u32 seed[SS_SEED_LEN / BITS_PER_LONG];
--- linux-ein-5.4.0.orig/drivers/crypto/talitos.c
+++ linux-ein-5.4.0/drivers/crypto/talitos.c
@@ -460,7 +460,7 @@
 /*
  * locate current (offending) descriptor
  */
-static u32 current_desc_hdr(struct device *dev, int ch)
+static __be32 current_desc_hdr(struct device *dev, int ch)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	int tail, iter;
@@ -478,7 +478,7 @@
 
 	iter = tail;
 	while (priv->chan[ch].fifo[iter].dma_desc != cur_desc &&
-	       priv->chan[ch].fifo[iter].desc->next_desc != cur_desc) {
+	       priv->chan[ch].fifo[iter].desc->next_desc != cpu_to_be32(cur_desc)) {
 		iter = (iter + 1) & (priv->fifo_len - 1);
 		if (iter == tail) {
 			dev_err(dev, "couldn't locate current descriptor\n");
@@ -486,7 +486,7 @@
 		}
 	}
 
-	if (priv->chan[ch].fifo[iter].desc->next_desc == cur_desc) {
+	if (priv->chan[ch].fifo[iter].desc->next_desc == cpu_to_be32(cur_desc)) {
 		struct talitos_edesc *edesc;
 
 		edesc = container_of(priv->chan[ch].fifo[iter].desc,
@@ -501,13 +501,13 @@
 /*
  * user diagnostics; report root cause of error based on execution unit status
  */
-static void report_eu_error(struct device *dev, int ch, u32 desc_hdr)
+static void report_eu_error(struct device *dev, int ch, __be32 desc_hdr)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	int i;
 
 	if (!desc_hdr)
-		desc_hdr = in_be32(priv->chan[ch].reg + TALITOS_DESCBUF);
+		desc_hdr = cpu_to_be32(in_be32(priv->chan[ch].reg + TALITOS_DESCBUF));
 
 	switch (desc_hdr & DESC_HDR_SEL0_MASK) {
 	case DESC_HDR_SEL0_AFEU:
@@ -1097,11 +1097,12 @@
  */
 static int sg_to_link_tbl_offset(struct scatterlist *sg, int sg_count,
 				 unsigned int offset, int datalen, int elen,
-				 struct talitos_ptr *link_tbl_ptr)
+				 struct talitos_ptr *link_tbl_ptr, int align)
 {
 	int n_sg = elen ? sg_count + 1 : sg_count;
 	int count = 0;
 	int cryptlen = datalen + elen;
+	int padding = ALIGN(cryptlen, align) - cryptlen;
 
 	while (cryptlen && sg && n_sg--) {
 		unsigned int len = sg_dma_len(sg);
@@ -1125,7 +1126,7 @@
 			offset += datalen;
 		}
 		to_talitos_ptr(link_tbl_ptr + count,
-			       sg_dma_address(sg) + offset, len, 0);
+			       sg_dma_address(sg) + offset, sg_next(sg) ? len : len + padding, 0);
 		to_talitos_ptr_ext_set(link_tbl_ptr + count, 0, 0);
 		count++;
 		cryptlen -= len;
@@ -1148,10 +1149,11 @@
 			      unsigned int len, struct talitos_edesc *edesc,
 			      struct talitos_ptr *ptr, int sg_count,
 			      unsigned int offset, int tbl_off, int elen,
-			      bool force)
+			      bool force, int align)
 {
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	bool is_sec1 = has_ftr_sec1(priv);
+	int aligned_len = ALIGN(len, align);
 
 	if (!src) {
 		to_talitos_ptr(ptr, 0, 0, is_sec1);
@@ -1159,22 +1161,22 @@
 	}
 	to_talitos_ptr_ext_set(ptr, elen, is_sec1);
 	if (sg_count == 1 && !force) {
-		to_talitos_ptr(ptr, sg_dma_address(src) + offset, len, is_sec1);
+		to_talitos_ptr(ptr, sg_dma_address(src) + offset, aligned_len, is_sec1);
 		return sg_count;
 	}
 	if (is_sec1) {
-		to_talitos_ptr(ptr, edesc->dma_link_tbl + offset, len, is_sec1);
+		to_talitos_ptr(ptr, edesc->dma_link_tbl + offset, aligned_len, is_sec1);
 		return sg_count;
 	}
 	sg_count = sg_to_link_tbl_offset(src, sg_count, offset, len, elen,
-					 &edesc->link_tbl[tbl_off]);
+					 &edesc->link_tbl[tbl_off], align);
 	if (sg_count == 1 && !force) {
 		/* Only one segment now, so no link tbl needed*/
 		copy_talitos_ptr(ptr, &edesc->link_tbl[tbl_off], is_sec1);
 		return sg_count;
 	}
 	to_talitos_ptr(ptr, edesc->dma_link_tbl +
-			    tbl_off * sizeof(struct talitos_ptr), len, is_sec1);
+			    tbl_off * sizeof(struct talitos_ptr), aligned_len, is_sec1);
 	to_talitos_ptr_ext_or(ptr, DESC_PTR_LNKTBL_JUMP, is_sec1);
 
 	return sg_count;
@@ -1186,7 +1188,7 @@
 			  unsigned int offset, int tbl_off)
 {
 	return talitos_sg_map_ext(dev, src, len, edesc, ptr, sg_count, offset,
-				  tbl_off, 0, false);
+				  tbl_off, 0, false, 1);
 }
 
 /*
@@ -1255,7 +1257,7 @@
 
 	ret = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[4],
 				 sg_count, areq->assoclen, tbl_off, elen,
-				 false);
+				 false, 1);
 
 	if (ret > 1) {
 		tbl_off += ret;
@@ -1275,7 +1277,7 @@
 		elen = 0;
 	ret = talitos_sg_map_ext(dev, areq->dst, cryptlen, edesc, &desc->ptr[5],
 				 sg_count, areq->assoclen, tbl_off, elen,
-				 is_ipsec_esp && !encrypt);
+				 is_ipsec_esp && !encrypt, 1);
 	tbl_off += ret;
 
 	if (!encrypt && is_ipsec_esp) {
@@ -1583,6 +1585,8 @@
 	bool sync_needed = false;
 	struct talitos_private *priv = dev_get_drvdata(dev);
 	bool is_sec1 = has_ftr_sec1(priv);
+	bool is_ctr = (desc->hdr & DESC_HDR_SEL0_MASK) == DESC_HDR_SEL0_AESU &&
+		      (desc->hdr & DESC_HDR_MODE0_AESU_MASK) == DESC_HDR_MODE0_AESU_CTR;
 
 	/* first DWORD empty */
 
@@ -1603,8 +1607,8 @@
 	/*
 	 * cipher in
 	 */
-	sg_count = talitos_sg_map(dev, areq->src, cryptlen, edesc,
-				  &desc->ptr[3], sg_count, 0, 0);
+	sg_count = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[3],
+				      sg_count, 0, 0, 0, false, is_ctr ? 16 : 1);
 	if (sg_count > 1)
 		sync_needed = true;
 
--- linux-ein-5.4.0.orig/drivers/crypto/talitos.h
+++ linux-ein-5.4.0/drivers/crypto/talitos.h
@@ -344,6 +344,7 @@
 
 /* primary execution unit mode (MODE0) and derivatives */
 #define	DESC_HDR_MODE0_ENCRYPT		cpu_to_be32(0x00100000)
+#define	DESC_HDR_MODE0_AESU_MASK	cpu_to_be32(0x00600000)
 #define	DESC_HDR_MODE0_AESU_CBC		cpu_to_be32(0x00200000)
 #define	DESC_HDR_MODE0_AESU_CTR		cpu_to_be32(0x00600000)
 #define	DESC_HDR_MODE0_DEU_CBC		cpu_to_be32(0x00400000)
--- linux-ein-5.4.0.orig/drivers/crypto/ux500/hash/hash_core.c
+++ linux-ein-5.4.0/drivers/crypto/ux500/hash/hash_core.c
@@ -1009,6 +1009,7 @@
 			goto out;
 		}
 	} else if (req->nbytes == 0 && ctx->keylen > 0) {
+		ret = -EPERM;
 		dev_err(device_data->dev, "%s: Empty message with keylength > 0, NOT supported\n",
 			__func__);
 		goto out;
--- linux-ein-5.4.0.orig/drivers/crypto/virtio/virtio_crypto_algs.c
+++ linux-ein-5.4.0/drivers/crypto/virtio/virtio_crypto_algs.c
@@ -105,8 +105,6 @@
 		*alg = VIRTIO_CRYPTO_CIPHER_AES_CBC;
 		break;
 	default:
-		pr_err("virtio_crypto: Unsupported key length: %d\n",
-			key_len);
 		return -EINVAL;
 	}
 	return 0;
@@ -355,13 +353,18 @@
 	int err;
 	unsigned long flags;
 	struct scatterlist outhdr, iv_sg, status_sg, **sgs;
-	int i;
 	u64 dst_len;
 	unsigned int num_out = 0, num_in = 0;
 	int sg_total;
 	uint8_t *iv;
+	struct scatterlist *sg;
 
 	src_nents = sg_nents_for_len(req->src, req->nbytes);
+	if (src_nents < 0) {
+		pr_err("Invalid number of src SG.\n");
+		return src_nents;
+	}
+
 	dst_nents = sg_nents(req->dst);
 
 	pr_debug("virtio_crypto: Number of sgs (src_nents: %d, dst_nents: %d)\n",
@@ -407,6 +410,7 @@
 		goto free;
 	}
 
+	dst_len = min_t(unsigned int, req->nbytes, dst_len);
 	pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n",
 			req->nbytes, dst_len);
 
@@ -437,17 +441,22 @@
 		goto free;
 	}
 	memcpy(iv, req->info, ivsize);
+	if (!vc_sym_req->encrypt)
+		scatterwalk_map_and_copy(req->info, req->src,
+					 req->nbytes - AES_BLOCK_SIZE,
+					 AES_BLOCK_SIZE, 0);
+
 	sg_init_one(&iv_sg, iv, ivsize);
 	sgs[num_out++] = &iv_sg;
 	vc_sym_req->iv = iv;
 
 	/* Source data */
-	for (i = 0; i < src_nents; i++)
-		sgs[num_out++] = &req->src[i];
+	for (sg = req->src; src_nents; sg = sg_next(sg), src_nents--)
+		sgs[num_out++] = sg;
 
 	/* Destination data */
-	for (i = 0; i < dst_nents; i++)
-		sgs[num_out + num_in++] = &req->dst[i];
+	for (sg = req->dst; sg; sg = sg_next(sg))
+		sgs[num_out + num_in++] = sg;
 
 	/* Status */
 	sg_init_one(&status_sg, &vc_req->status, sizeof(vc_req->status));
@@ -484,6 +493,11 @@
 	/* Use the first data virtqueue as default */
 	struct data_queue *data_vq = &vcrypto->data_vq[0];
 
+	if (!req->nbytes)
+		return 0;
+	if (req->nbytes % AES_BLOCK_SIZE)
+		return -EINVAL;
+
 	vc_req->dataq = data_vq;
 	vc_req->alg_cb = virtio_crypto_dataq_sym_callback;
 	vc_sym_req->ablkcipher_ctx = ctx;
@@ -504,6 +518,11 @@
 	/* Use the first data virtqueue as default */
 	struct data_queue *data_vq = &vcrypto->data_vq[0];
 
+	if (!req->nbytes)
+		return 0;
+	if (req->nbytes % AES_BLOCK_SIZE)
+		return -EINVAL;
+
 	vc_req->dataq = data_vq;
 	vc_req->alg_cb = virtio_crypto_dataq_sym_callback;
 	vc_sym_req->ablkcipher_ctx = ctx;
@@ -563,10 +582,15 @@
 	struct ablkcipher_request *req,
 	int err)
 {
-	crypto_finalize_ablkcipher_request(vc_sym_req->base.dataq->engine,
-					   req, err);
+	if (vc_sym_req->encrypt)
+		scatterwalk_map_and_copy(req->info, req->dst,
+					 req->nbytes - AES_BLOCK_SIZE,
+					 AES_BLOCK_SIZE, 0);
 	kzfree(vc_sym_req->iv);
 	virtcrypto_clear_request(&vc_sym_req->base);
+
+	crypto_finalize_ablkcipher_request(vc_sym_req->base.dataq->engine,
+					   req, err);
 }
 
 static struct virtio_crypto_algo virtio_crypto_algs[] = { {
--- linux-ein-5.4.0.orig/drivers/crypto/vmx/Kconfig
+++ linux-ein-5.4.0/drivers/crypto/vmx/Kconfig
@@ -2,7 +2,11 @@
 config CRYPTO_DEV_VMX_ENCRYPT
 	tristate "Encryption acceleration support on P8 CPU"
 	depends on CRYPTO_DEV_VMX
+	select CRYPTO_AES
+	select CRYPTO_CBC
+	select CRYPTO_CTR
 	select CRYPTO_GHASH
+	select CRYPTO_XTS
 	default m
 	help
 	  Support for VMX cryptographic acceleration instructions on Power8 CPU.
--- linux-ein-5.4.0.orig/drivers/crypto/vmx/Makefile
+++ linux-ein-5.4.0/drivers/crypto/vmx/Makefile
@@ -3,13 +3,13 @@
 vmx-crypto-objs := vmx.o aesp8-ppc.o ghashp8-ppc.o aes.o aes_cbc.o aes_ctr.o aes_xts.o ghash.o
 
 ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
-TARGET := linux-ppc64le
+override flavour := linux-ppc64le
 else
-TARGET := linux-ppc64
+override flavour := linux-ppc64
 endif
 
 quiet_cmd_perl = PERL $@
-      cmd_perl = $(PERL) $(<) $(TARGET) > $(@)
+      cmd_perl = $(PERL) $(<) $(flavour) > $(@)
 
 targets += aesp8-ppc.S ghashp8-ppc.S
 
--- linux-ein-5.4.0.orig/drivers/crypto/vmx/aes_xts.c
+++ linux-ein-5.4.0/drivers/crypto/vmx/aes_xts.c
@@ -84,6 +84,9 @@
 	u8 tweak[AES_BLOCK_SIZE];
 	int ret;
 
+	if (req->cryptlen < AES_BLOCK_SIZE)
+		return -EINVAL;
+
 	if (!crypto_simd_usable() || (req->cryptlen % XTS_BLOCK_SIZE) != 0) {
 		struct skcipher_request *subreq = skcipher_request_ctx(req);
 
--- linux-ein-5.4.0.orig/drivers/dax/bus.c
+++ linux-ein-5.4.0/drivers/dax/bus.c
@@ -227,7 +227,7 @@
 
 struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 		struct resource *res, int target_node, unsigned int align,
-		unsigned long pfn_flags)
+		unsigned long long pfn_flags)
 {
 	struct dax_region *dax_region;
 
--- linux-ein-5.4.0.orig/drivers/dax/bus.h
+++ linux-ein-5.4.0/drivers/dax/bus.h
@@ -11,7 +11,7 @@
 void dax_region_put(struct dax_region *dax_region);
 struct dax_region *alloc_dax_region(struct device *parent, int region_id,
 		struct resource *res, int target_node, unsigned int align,
-		unsigned long flags);
+		unsigned long long flags);
 
 enum dev_dax_subsys {
 	DEV_DAX_BUS,
--- linux-ein-5.4.0.orig/drivers/dax/dax-private.h
+++ linux-ein-5.4.0/drivers/dax/dax-private.h
@@ -32,7 +32,7 @@
 	struct device *dev;
 	unsigned int align;
 	struct resource res;
-	unsigned long pfn_flags;
+	unsigned long long pfn_flags;
 };
 
 /**
--- linux-ein-5.4.0.orig/drivers/dax/kmem.c
+++ linux-ein-5.4.0/drivers/dax/kmem.c
@@ -22,6 +22,7 @@
 	resource_size_t kmem_size;
 	resource_size_t kmem_end;
 	struct resource *new_res;
+	const char *new_res_name;
 	int numa_node;
 	int rc;
 
@@ -48,11 +49,16 @@
 	kmem_size &= ~(memory_block_size_bytes() - 1);
 	kmem_end = kmem_start + kmem_size;
 
-	/* Region is permanently reserved.  Hot-remove not yet implemented. */
-	new_res = request_mem_region(kmem_start, kmem_size, dev_name(dev));
+	new_res_name = kstrdup(dev_name(dev), GFP_KERNEL);
+	if (!new_res_name)
+		return -ENOMEM;
+
+	/* Region is permanently reserved if hotremove fails. */
+	new_res = request_mem_region(kmem_start, kmem_size, new_res_name);
 	if (!new_res) {
 		dev_warn(dev, "could not reserve region [%pa-%pa]\n",
 			 &kmem_start, &kmem_end);
+		kfree(new_res_name);
 		return -EBUSY;
 	}
 
@@ -63,12 +69,12 @@
 	 * unknown to us that will break add_memory() below.
 	 */
 	new_res->flags = IORESOURCE_SYSTEM_RAM;
-	new_res->name = dev_name(dev);
 
 	rc = add_memory(numa_node, new_res->start, resource_size(new_res));
 	if (rc) {
 		release_resource(new_res);
 		kfree(new_res);
+		kfree(new_res_name);
 		return rc;
 	}
 	dev_dax->dax_kmem_res = new_res;
@@ -83,6 +89,7 @@
 	struct resource *res = dev_dax->dax_kmem_res;
 	resource_size_t kmem_start = res->start;
 	resource_size_t kmem_size = resource_size(res);
+	const char *res_name = res->name;
 	int rc;
 
 	/*
@@ -102,6 +109,7 @@
 	/* Release and free dax resources */
 	release_resource(res);
 	kfree(res);
+	kfree(res_name);
 	dev_dax->dax_kmem_res = NULL;
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/dax/super.c
+++ linux-ein-5.4.0/drivers/dax/super.c
@@ -318,11 +318,15 @@
 bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
 		int blocksize, sector_t start, sector_t len)
 {
+	if (!dax_dev)
+		return false;
+
 	if (!dax_alive(dax_dev))
 		return false;
 
 	return dax_dev->ops->dax_supported(dax_dev, bdev, blocksize, start, len);
 }
+EXPORT_SYMBOL_GPL(dax_supported);
 
 size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
 		size_t bytes, struct iov_iter *i)
@@ -687,6 +691,7 @@
 static void dax_fs_exit(void)
 {
 	kern_unmount(dax_mnt);
+	rcu_barrier();
 	kmem_cache_destroy(dax_cache);
 }
 
@@ -716,6 +721,7 @@
 
 static void __exit dax_core_exit(void)
 {
+	dax_bus_exit();
 	unregister_chrdev_region(dax_devt, MINORMASK+1);
 	ida_destroy(&dax_minor_ida);
 	dax_fs_exit();
--- linux-ein-5.4.0.orig/drivers/devfreq/Kconfig
+++ linux-ein-5.4.0/drivers/devfreq/Kconfig
@@ -99,6 +99,7 @@
 		ARCH_TEGRA_210_SOC || \
 		COMPILE_TEST
 	select PM_OPP
+	depends on COMMON_CLK
 	help
 	  This adds the DEVFREQ driver for the Tegra family of SoCs.
 	  It reads ACTMON counters of memory controllers and adjusts the
@@ -117,7 +118,8 @@
 
 config ARM_RK3399_DMC_DEVFREQ
 	tristate "ARM RK3399 DMC DEVFREQ Driver"
-	depends on ARCH_ROCKCHIP
+	depends on (ARCH_ROCKCHIP && HAVE_ARM_SMCCC) || \
+		(COMPILE_TEST && HAVE_ARM_SMCCC)
 	select DEVFREQ_EVENT_ROCKCHIP_DFI
 	select DEVFREQ_GOV_SIMPLE_ONDEMAND
 	select PM_DEVFREQ_EVENT
--- linux-ein-5.4.0.orig/drivers/devfreq/devfreq.c
+++ linux-ein-5.4.0/drivers/devfreq/devfreq.c
@@ -160,6 +160,7 @@
 	int lev, prev_lev, ret = 0;
 	unsigned long cur_time;
 
+	lockdep_assert_held(&devfreq->lock);
 	cur_time = jiffies;
 
 	/* Immediately exit if previous_freq is not initialized yet. */
@@ -318,7 +319,7 @@
 	devfreq->previous_freq = new_freq;
 
 	if (devfreq->suspend_freq)
-		devfreq->resume_freq = cur_freq;
+		devfreq->resume_freq = new_freq;
 
 	return err;
 }
@@ -550,26 +551,30 @@
 				 void *devp)
 {
 	struct devfreq *devfreq = container_of(nb, struct devfreq, nb);
-	int ret;
+	int err = -EINVAL;
 
 	mutex_lock(&devfreq->lock);
 
 	devfreq->scaling_min_freq = find_available_min_freq(devfreq);
-	if (!devfreq->scaling_min_freq) {
-		mutex_unlock(&devfreq->lock);
-		return -EINVAL;
-	}
+	if (!devfreq->scaling_min_freq)
+		goto out;
 
 	devfreq->scaling_max_freq = find_available_max_freq(devfreq);
 	if (!devfreq->scaling_max_freq) {
-		mutex_unlock(&devfreq->lock);
-		return -EINVAL;
+		devfreq->scaling_max_freq = ULONG_MAX;
+		goto out;
 	}
 
-	ret = update_devfreq(devfreq);
+	err = update_devfreq(devfreq);
+
+out:
 	mutex_unlock(&devfreq->lock);
+	if (err)
+		dev_err(devfreq->dev.parent,
+			"failed to update frequency from OPP notifier (%d)\n",
+			err);
 
-	return ret;
+	return NOTIFY_OK;
 }
 
 /**
@@ -583,11 +588,6 @@
 	struct devfreq *devfreq = to_devfreq(dev);
 
 	mutex_lock(&devfreq_list_lock);
-	if (IS_ERR(find_device_devfreq(devfreq->dev.parent))) {
-		mutex_unlock(&devfreq_list_lock);
-		dev_warn(&devfreq->dev, "releasing devfreq which doesn't exist\n");
-		return;
-	}
 	list_del(&devfreq->node);
 	mutex_unlock(&devfreq_list_lock);
 
@@ -595,6 +595,7 @@
 		devfreq->profile->exit(devfreq->dev.parent);
 
 	mutex_destroy(&devfreq->lock);
+	srcu_cleanup_notifier_head(&devfreq->transition_notifier_list);
 	kfree(devfreq);
 }
 
@@ -603,8 +604,7 @@
  * @dev:	the device to add devfreq feature.
  * @profile:	device-specific profile to run devfreq.
  * @governor_name:	name of the policy to choose frequency.
- * @data:	private data for the governor. The devfreq framework does not
- *		touch this value.
+ * @data:	devfreq driver pass to governors, governor should not change it.
  */
 struct devfreq *devfreq_add_device(struct device *dev,
 				   struct devfreq_dev_profile *profile,
@@ -613,7 +613,6 @@
 {
 	struct devfreq *devfreq;
 	struct devfreq_governor *governor;
-	static atomic_t devfreq_no = ATOMIC_INIT(-1);
 	int err = 0;
 
 	if (!dev || !profile || !governor_name) {
@@ -642,6 +641,7 @@
 	devfreq->dev.parent = dev;
 	devfreq->dev.class = devfreq_class;
 	devfreq->dev.release = devfreq_dev_release;
+	INIT_LIST_HEAD(&devfreq->node);
 	devfreq->profile = profile;
 	strncpy(devfreq->governor_name, governor_name, DEVFREQ_NAME_LEN);
 	devfreq->previous_freq = profile->initial_freq;
@@ -676,8 +676,7 @@
 	devfreq->suspend_freq = dev_pm_opp_get_suspend_opp_freq(dev);
 	atomic_set(&devfreq->suspend_count, 0);
 
-	dev_set_name(&devfreq->dev, "devfreq%d",
-				atomic_inc_return(&devfreq_no));
+	dev_set_name(&devfreq->dev, "%s", dev_name(dev));
 	err = device_register(&devfreq->dev);
 	if (err) {
 		mutex_unlock(&devfreq->lock);
@@ -789,8 +788,7 @@
  * @dev:	the device to add devfreq feature.
  * @profile:	device-specific profile to run devfreq.
  * @governor_name:	name of the policy to choose frequency.
- * @data:	private data for the governor. The devfreq framework does not
- *		touch this value.
+ * @data:	 devfreq driver pass to governors, governor should not change it.
  *
  * This function manages automatically the memory of devfreq device using device
  * resource management and simplify the free operation for memory of devfreq
@@ -903,7 +901,9 @@
 	}
 
 	if (devfreq->suspend_freq) {
+		mutex_lock(&devfreq->lock);
 		ret = devfreq_set_target(devfreq, devfreq->suspend_freq, 0);
+		mutex_unlock(&devfreq->lock);
 		if (ret)
 			return ret;
 	}
@@ -931,7 +931,9 @@
 		return 0;
 
 	if (devfreq->resume_freq) {
+		mutex_lock(&devfreq->lock);
 		ret = devfreq_set_target(devfreq, devfreq->resume_freq, 0);
+		mutex_unlock(&devfreq->lock);
 		if (ret)
 			return ret;
 	}
@@ -1111,6 +1113,14 @@
 }
 EXPORT_SYMBOL(devfreq_remove_governor);
 
+static ssize_t name_show(struct device *dev,
+			struct device_attribute *attr, char *buf)
+{
+	struct devfreq *devfreq = to_devfreq(dev);
+	return sprintf(buf, "%s\n", dev_name(devfreq->dev.parent));
+}
+static DEVICE_ATTR_RO(name);
+
 static ssize_t governor_show(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
@@ -1195,7 +1205,7 @@
 	 * The devfreq with immutable governor (e.g., passive) shows
 	 * only own governor.
 	 */
-	if (df->governor->immutable) {
+	if (df->governor && df->governor->immutable) {
 		count = scnprintf(&buf[count], DEVFREQ_NAME_LEN,
 				  "%s ", df->governor_name);
 	/*
@@ -1397,12 +1407,17 @@
 	int i, j;
 	unsigned int max_state = devfreq->profile->max_state;
 
-	if (!devfreq->stop_polling &&
-			devfreq_update_status(devfreq, devfreq->previous_freq))
-		return 0;
 	if (max_state == 0)
 		return sprintf(buf, "Not Supported.\n");
 
+	mutex_lock(&devfreq->lock);
+	if (!devfreq->stop_polling &&
+			devfreq_update_status(devfreq, devfreq->previous_freq)) {
+		mutex_unlock(&devfreq->lock);
+		return 0;
+	}
+	mutex_unlock(&devfreq->lock);
+
 	len = sprintf(buf, "     From  :   To\n");
 	len += sprintf(buf + len, "           :");
 	for (i = 0; i < max_state; i++)
@@ -1434,6 +1449,7 @@
 static DEVICE_ATTR_RO(trans_stat);
 
 static struct attribute *devfreq_attrs[] = {
+	&dev_attr_name.attr,
 	&dev_attr_governor.attr,
 	&dev_attr_available_governors.attr,
 	&dev_attr_cur_freq.attr,
--- linux-ein-5.4.0.orig/drivers/devfreq/event/Kconfig
+++ linux-ein-5.4.0/drivers/devfreq/event/Kconfig
@@ -34,7 +34,7 @@
 
 config DEVFREQ_EVENT_ROCKCHIP_DFI
 	tristate "ROCKCHIP DFI DEVFREQ event Driver"
-	depends on ARCH_ROCKCHIP
+	depends on ARCH_ROCKCHIP || COMPILE_TEST
 	help
 	  This add the devfreq-event driver for Rockchip SoC. It provides DFI
 	  (DDR Monitor Module) driver to count ddr load.
--- linux-ein-5.4.0.orig/drivers/devfreq/event/exynos-ppmu.c
+++ linux-ein-5.4.0/drivers/devfreq/event/exynos-ppmu.c
@@ -101,17 +101,22 @@
 	PPMU_EVENT(dmc1_1),
 };
 
-static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
+static int __exynos_ppmu_find_ppmu_id(const char *edev_name)
 {
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(ppmu_events); i++)
-		if (!strcmp(edev->desc->name, ppmu_events[i].name))
+		if (!strcmp(edev_name, ppmu_events[i].name))
 			return ppmu_events[i].id;
 
 	return -EINVAL;
 }
 
+static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
+{
+	return __exynos_ppmu_find_ppmu_id(edev->desc->name);
+}
+
 /*
  * The devfreq-event ops structure for PPMU v1.1
  */
@@ -509,15 +514,19 @@
 
 	count = of_get_child_count(events_np);
 	desc = devm_kcalloc(dev, count, sizeof(*desc), GFP_KERNEL);
-	if (!desc)
+	if (!desc) {
+		of_node_put(events_np);
 		return -ENOMEM;
+	}
 	info->num_events = count;
 
 	of_id = of_match_device(exynos_ppmu_id_match, dev);
 	if (of_id)
 		info->ppmu_type = (enum exynos_ppmu_type)of_id->data;
-	else
+	else {
+		of_node_put(events_np);
 		return -EINVAL;
+	}
 
 	j = 0;
 	for_each_child_of_node(events_np, node) {
@@ -556,13 +565,11 @@
 			 * use default if not.
 			 */
 			if (info->ppmu_type == EXYNOS_TYPE_PPMU_V2) {
-				struct devfreq_event_dev edev;
 				int id;
 				/* Not all registers take the same value for
 				 * read+write data count.
 				 */
-				edev.desc = &desc[j];
-				id = exynos_ppmu_find_ppmu_id(&edev);
+				id = __exynos_ppmu_find_ppmu_id(desc[j].name);
 
 				switch (id) {
 				case PPMU_PMNCNT0:
--- linux-ein-5.4.0.orig/drivers/devfreq/governor_userspace.c
+++ linux-ein-5.4.0/drivers/devfreq/governor_userspace.c
@@ -21,7 +21,7 @@
 
 static int devfreq_userspace_func(struct devfreq *df, unsigned long *freq)
 {
-	struct userspace_data *data = df->data;
+	struct userspace_data *data = df->governor_data;
 
 	if (data->valid)
 		*freq = data->user_frequency;
@@ -40,7 +40,7 @@
 	int err = 0;
 
 	mutex_lock(&devfreq->lock);
-	data = devfreq->data;
+	data = devfreq->governor_data;
 
 	sscanf(buf, "%lu", &wanted);
 	data->user_frequency = wanted;
@@ -60,7 +60,7 @@
 	int err = 0;
 
 	mutex_lock(&devfreq->lock);
-	data = devfreq->data;
+	data = devfreq->governor_data;
 
 	if (data->valid)
 		err = sprintf(buf, "%lu\n", data->user_frequency);
@@ -91,7 +91,7 @@
 		goto out;
 	}
 	data->valid = false;
-	devfreq->data = data;
+	devfreq->governor_data = data;
 
 	err = sysfs_create_group(&devfreq->dev.kobj, &dev_attr_group);
 out:
@@ -107,8 +107,8 @@
 	if (devfreq->dev.kobj.sd)
 		sysfs_remove_group(&devfreq->dev.kobj, &dev_attr_group);
 
-	kfree(devfreq->data);
-	devfreq->data = NULL;
+	kfree(devfreq->governor_data);
+	devfreq->governor_data = NULL;
 }
 
 static int devfreq_userspace_handler(struct devfreq *devfreq,
--- linux-ein-5.4.0.orig/drivers/devfreq/rk3399_dmc.c
+++ linux-ein-5.4.0/drivers/devfreq/rk3399_dmc.c
@@ -95,18 +95,20 @@
 
 	mutex_lock(&dmcfreq->lock);
 
-	if (target_rate >= dmcfreq->odt_dis_freq)
-		odt_enable = true;
-
-	/*
-	 * This makes a SMC call to the TF-A to set the DDR PD (power-down)
-	 * timings and to enable or disable the ODT (on-die termination)
-	 * resistors.
-	 */
-	arm_smccc_smc(ROCKCHIP_SIP_DRAM_FREQ, dmcfreq->odt_pd_arg0,
-		      dmcfreq->odt_pd_arg1,
-		      ROCKCHIP_SIP_CONFIG_DRAM_SET_ODT_PD,
-		      odt_enable, 0, 0, 0, &res);
+	if (dmcfreq->regmap_pmu) {
+		if (target_rate >= dmcfreq->odt_dis_freq)
+			odt_enable = true;
+
+		/*
+		 * This makes a SMC call to the TF-A to set the DDR PD
+		 * (power-down) timings and to enable or disable the
+		 * ODT (on-die termination) resistors.
+		 */
+		arm_smccc_smc(ROCKCHIP_SIP_DRAM_FREQ, dmcfreq->odt_pd_arg0,
+			      dmcfreq->odt_pd_arg1,
+			      ROCKCHIP_SIP_CONFIG_DRAM_SET_ODT_PD,
+			      odt_enable, 0, 0, 0, &res);
+	}
 
 	/*
 	 * If frequency scaling from low to high, adjust voltage first.
@@ -364,16 +366,21 @@
 			if (res.a0) {
 				dev_err(dev, "Failed to set dram param: %ld\n",
 					res.a0);
-				return -EINVAL;
+				ret = -EINVAL;
+				goto err_edev;
 			}
 		}
 	}
 
 	node = of_parse_phandle(np, "rockchip,pmu", 0);
-	if (node) {
-		data->regmap_pmu = syscon_node_to_regmap(node);
-		if (IS_ERR(data->regmap_pmu))
-			return PTR_ERR(data->regmap_pmu);
+	if (!node)
+		goto no_pmu;
+
+	data->regmap_pmu = syscon_node_to_regmap(node);
+	of_node_put(node);
+	if (IS_ERR(data->regmap_pmu)) {
+		ret = PTR_ERR(data->regmap_pmu);
+		goto err_edev;
 	}
 
 	regmap_read(data->regmap_pmu, RK3399_PMUGRF_OS_REG2, &val);
@@ -391,9 +398,11 @@
 		data->odt_dis_freq = data->timing.lpddr4_odt_dis_freq;
 		break;
 	default:
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_edev;
 	};
 
+no_pmu:
 	arm_smccc_smc(ROCKCHIP_SIP_DRAM_FREQ, 0, 0,
 		      ROCKCHIP_SIP_CONFIG_DRAM_INIT,
 		      0, 0, 0, 0, &res);
@@ -425,7 +434,8 @@
 	 */
 	if (dev_pm_opp_of_add_table(dev)) {
 		dev_err(dev, "Invalid operating-points in device tree.\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_edev;
 	}
 
 	of_property_read_u32(np, "upthreshold",
@@ -465,6 +475,9 @@
 
 err_free_opp:
 	dev_pm_opp_of_remove_table(&pdev->dev);
+err_edev:
+	devfreq_event_disable_edev(data->edev);
+
 	return ret;
 }
 
@@ -472,6 +485,8 @@
 {
 	struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);
 
+	devfreq_event_disable_edev(dmcfreq->edev);
+
 	/*
 	 * Before remove the opp table we need to unregister the opp notifier.
 	 */
--- linux-ein-5.4.0.orig/drivers/devfreq/tegra30-devfreq.c
+++ linux-ein-5.4.0/drivers/devfreq/tegra30-devfreq.c
@@ -68,6 +68,8 @@
 
 #define KHZ							1000
 
+#define KHZ_MAX						(ULONG_MAX / KHZ)
+
 /* Assume that the bus is saturated if the utilization is 25% */
 #define BUS_SATURATION_RATIO					25
 
@@ -169,7 +171,7 @@
 };
 
 static struct tegra_actmon_emc_ratio actmon_emc_ratios[] = {
-	{ 1400000, ULONG_MAX },
+	{ 1400000,    KHZ_MAX },
 	{ 1200000,    750000 },
 	{ 1100000,    600000 },
 	{ 1000000,    500000 },
--- linux-ein-5.4.0.orig/drivers/dio/dio.c
+++ linux-ein-5.4.0/drivers/dio/dio.c
@@ -110,6 +110,12 @@
 
 #endif /* CONFIG_DIO_CONSTANTS */
 
+static void dio_dev_release(struct device *dev)
+{
+	struct dio_dev *ddev = container_of(dev, typeof(struct dio_dev), dev);
+	kfree(ddev);
+}
+
 int __init dio_find(int deviceid)
 {
 	/* Called to find a DIO device before the full bus scan has run.
@@ -222,6 +228,7 @@
 		dev->bus = &dio_bus;
 		dev->dev.parent = &dio_bus.dev;
 		dev->dev.bus = &dio_bus_type;
+		dev->dev.release = dio_dev_release;
 		dev->scode = scode;
 		dev->resource.start = pa;
 		dev->resource.end = pa + DIO_SIZE(scode, va);
@@ -249,6 +256,7 @@
 		if (error) {
 			pr_err("DIO: Error registering device %s\n",
 			       dev->name);
+			put_device(&dev->dev);
 			continue;
 		}
 		error = dio_create_sysfs_dev_files(dev);
--- linux-ein-5.4.0.orig/drivers/dma-buf/dma-buf.c
+++ linux-ein-5.4.0/drivers/dma-buf/dma-buf.c
@@ -25,6 +25,7 @@
 #include <linux/mm.h>
 #include <linux/mount.h>
 #include <linux/pseudo_fs.h>
+#include <linux/device.h>
 
 #include <uapi/linux/dma-buf.h>
 #include <uapi/linux/magic.h>
@@ -45,46 +46,22 @@
 	size_t ret = 0;
 
 	dmabuf = dentry->d_fsdata;
-	mutex_lock(&dmabuf->lock);
+	spin_lock(&dmabuf->name_lock);
 	if (dmabuf->name)
 		ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN);
-	mutex_unlock(&dmabuf->lock);
+	spin_unlock(&dmabuf->name_lock);
 
 	return dynamic_dname(dentry, buffer, buflen, "/%s:%s",
 			     dentry->d_name.name, ret > 0 ? name : "");
 }
 
-static const struct dentry_operations dma_buf_dentry_ops = {
-	.d_dname = dmabuffs_dname,
-};
-
-static struct vfsmount *dma_buf_mnt;
-
-static int dma_buf_fs_init_context(struct fs_context *fc)
-{
-	struct pseudo_fs_context *ctx;
-
-	ctx = init_pseudo(fc, DMA_BUF_MAGIC);
-	if (!ctx)
-		return -ENOMEM;
-	ctx->dops = &dma_buf_dentry_ops;
-	return 0;
-}
-
-static struct file_system_type dma_buf_fs_type = {
-	.name = "dmabuf",
-	.init_fs_context = dma_buf_fs_init_context,
-	.kill_sb = kill_anon_super,
-};
-
-static int dma_buf_release(struct inode *inode, struct file *file)
+static void dma_buf_release(struct dentry *dentry)
 {
 	struct dma_buf *dmabuf;
 
-	if (!is_dma_buf_file(file))
-		return -EINVAL;
-
-	dmabuf = file->private_data;
+	dmabuf = dentry->d_fsdata;
+	if (unlikely(!dmabuf))
+		return;
 
 	BUG_ON(dmabuf->vmapping_counter);
 
@@ -100,18 +77,55 @@
 
 	dmabuf->ops->release(dmabuf);
 
-	mutex_lock(&db_list.lock);
-	list_del(&dmabuf->list_node);
-	mutex_unlock(&db_list.lock);
-
 	if (dmabuf->resv == (struct dma_resv *)&dmabuf[1])
 		dma_resv_fini(dmabuf->resv);
 
+	WARN_ON(!list_empty(&dmabuf->attachments));
 	module_put(dmabuf->owner);
+	kfree(dmabuf->name);
 	kfree(dmabuf);
+}
+
+static int dma_buf_file_release(struct inode *inode, struct file *file)
+{
+	struct dma_buf *dmabuf;
+
+	if (!is_dma_buf_file(file))
+		return -EINVAL;
+
+	dmabuf = file->private_data;
+
+	mutex_lock(&db_list.lock);
+	list_del(&dmabuf->list_node);
+	mutex_unlock(&db_list.lock);
+
+	return 0;
+}
+
+static const struct dentry_operations dma_buf_dentry_ops = {
+	.d_dname = dmabuffs_dname,
+	.d_release = dma_buf_release,
+};
+
+static struct vfsmount *dma_buf_mnt;
+
+static int dma_buf_fs_init_context(struct fs_context *fc)
+{
+	struct pseudo_fs_context *ctx;
+
+	ctx = init_pseudo(fc, DMA_BUF_MAGIC);
+	if (!ctx)
+		return -ENOMEM;
+	ctx->dops = &dma_buf_dentry_ops;
 	return 0;
 }
 
+static struct file_system_type dma_buf_fs_type = {
+	.name = "dmabuf",
+	.init_fs_context = dma_buf_fs_init_context,
+	.kill_sb = kill_anon_super,
+};
+
 static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma)
 {
 	struct dma_buf *dmabuf;
@@ -340,8 +354,10 @@
 		kfree(name);
 		goto out_unlock;
 	}
+	spin_lock(&dmabuf->name_lock);
 	kfree(dmabuf->name);
 	dmabuf->name = name;
+	spin_unlock(&dmabuf->name_lock);
 
 out_unlock:
 	mutex_unlock(&dmabuf->lock);
@@ -359,6 +375,36 @@
 	dmabuf = file->private_data;
 
 	switch (cmd) {
+	case DMA_BUF_IOCTL_PHYS: {
+		struct dma_buf_attachment *attachment = NULL;
+		struct sg_table *sgt = NULL;
+		unsigned long phys = 0;
+		struct device dev;
+
+		if (!dmabuf || IS_ERR(dmabuf)) {
+			return -EFAULT;
+		}
+		memset(&dev, 0, sizeof(dev));
+		device_initialize(&dev);
+		dev.coherent_dma_mask = DMA_BIT_MASK(64);
+		dev.dma_mask = &dev.coherent_dma_mask;
+		arch_setup_dma_ops(&dev, 0, 0, NULL, false);
+		attachment = dma_buf_attach(dmabuf, &dev);
+		if (!attachment || IS_ERR(attachment)) {
+			return -EFAULT;
+		}
+
+		sgt = dma_buf_map_attachment(attachment, DMA_BIDIRECTIONAL);
+		if (sgt && !IS_ERR(sgt)) {
+			phys = sg_dma_address(sgt->sgl);
+			dma_buf_unmap_attachment(attachment, sgt,
+					DMA_BIDIRECTIONAL);
+		}
+		dma_buf_detach(dmabuf, attachment);
+		if (copy_to_user((void __user *) arg, &phys, sizeof(phys)))
+			return -EFAULT;
+		return 0;
+	}
 	case DMA_BUF_IOCTL_SYNC:
 		if (copy_from_user(&sync, (void __user *) arg, sizeof(sync)))
 			return -EFAULT;
@@ -387,7 +433,8 @@
 
 		return ret;
 
-	case DMA_BUF_SET_NAME:
+	case DMA_BUF_SET_NAME_A:
+	case DMA_BUF_SET_NAME_B:
 		return dma_buf_set_name(dmabuf, (const char __user *)arg);
 
 	default:
@@ -403,14 +450,14 @@
 	/* Don't count the temporary reference taken inside procfs seq_show */
 	seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1);
 	seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name);
-	mutex_lock(&dmabuf->lock);
+	spin_lock(&dmabuf->name_lock);
 	if (dmabuf->name)
 		seq_printf(m, "name:\t%s\n", dmabuf->name);
-	mutex_unlock(&dmabuf->lock);
+	spin_unlock(&dmabuf->name_lock);
 }
 
 static const struct file_operations dma_buf_fops = {
-	.release	= dma_buf_release,
+	.release	= dma_buf_file_release,
 	.mmap		= dma_buf_mmap_internal,
 	.llseek		= dma_buf_llseek,
 	.poll		= dma_buf_poll,
@@ -539,6 +586,7 @@
 	dmabuf->size = exp_info->size;
 	dmabuf->exp_name = exp_info->exp_name;
 	dmabuf->owner = exp_info->owner;
+	spin_lock_init(&dmabuf->name_lock);
 	init_waitqueue_head(&dmabuf->poll);
 	dmabuf->cb_excl.poll = dmabuf->cb_shared.poll = &dmabuf->poll;
 	dmabuf->cb_excl.active = dmabuf->cb_shared.active = 0;
--- linux-ein-5.4.0.orig/drivers/dma-buf/dma-fence-array.c
+++ linux-ein-5.4.0/drivers/dma-buf/dma-fence-array.c
@@ -104,7 +104,11 @@
 {
 	struct dma_fence_array *array = to_dma_fence_array(fence);
 
-	return atomic_read(&array->num_pending) <= 0;
+	if (atomic_read(&array->num_pending) > 0)
+		return false;
+
+	dma_fence_array_clear_pending_error(array);
+	return true;
 }
 
 static void dma_fence_array_release(struct dma_fence *fence)
--- linux-ein-5.4.0.orig/drivers/dma-buf/dma-fence.c
+++ linux-ein-5.4.0/drivers/dma-buf/dma-fence.c
@@ -273,6 +273,30 @@
 }
 EXPORT_SYMBOL(dma_fence_free);
 
+static bool __dma_fence_enable_signaling(struct dma_fence *fence)
+{
+	bool was_set;
+
+	lockdep_assert_held(fence->lock);
+
+	was_set = test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
+				   &fence->flags);
+
+	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
+		return false;
+
+	if (!was_set && fence->ops->enable_signaling) {
+		trace_dma_fence_enable_signal(fence);
+
+		if (!fence->ops->enable_signaling(fence)) {
+			dma_fence_signal_locked(fence);
+			return false;
+		}
+	}
+
+	return true;
+}
+
 /**
  * dma_fence_enable_sw_signaling - enable signaling on fence
  * @fence: the fence to enable
@@ -285,19 +309,12 @@
 {
 	unsigned long flags;
 
-	if (!test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-			      &fence->flags) &&
-	    !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags) &&
-	    fence->ops->enable_signaling) {
-		trace_dma_fence_enable_signal(fence);
-
-		spin_lock_irqsave(fence->lock, flags);
-
-		if (!fence->ops->enable_signaling(fence))
-			dma_fence_signal_locked(fence);
+	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
+		return;
 
-		spin_unlock_irqrestore(fence->lock, flags);
-	}
+	spin_lock_irqsave(fence->lock, flags);
+	__dma_fence_enable_signaling(fence);
+	spin_unlock_irqrestore(fence->lock, flags);
 }
 EXPORT_SYMBOL(dma_fence_enable_sw_signaling);
 
@@ -331,7 +348,6 @@
 {
 	unsigned long flags;
 	int ret = 0;
-	bool was_set;
 
 	if (WARN_ON(!fence || !func))
 		return -EINVAL;
@@ -343,25 +359,14 @@
 
 	spin_lock_irqsave(fence->lock, flags);
 
-	was_set = test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-				   &fence->flags);
-
-	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
-		ret = -ENOENT;
-	else if (!was_set && fence->ops->enable_signaling) {
-		trace_dma_fence_enable_signal(fence);
-
-		if (!fence->ops->enable_signaling(fence)) {
-			dma_fence_signal_locked(fence);
-			ret = -ENOENT;
-		}
-	}
-
-	if (!ret) {
+	if (__dma_fence_enable_signaling(fence)) {
 		cb->func = func;
 		list_add_tail(&cb->node, &fence->cb_list);
-	} else
+	} else {
 		INIT_LIST_HEAD(&cb->node);
+		ret = -ENOENT;
+	}
+
 	spin_unlock_irqrestore(fence->lock, flags);
 
 	return ret;
@@ -461,7 +466,6 @@
 	struct default_wait_cb cb;
 	unsigned long flags;
 	signed long ret = timeout ? timeout : 1;
-	bool was_set;
 
 	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
 		return ret;
@@ -473,21 +477,9 @@
 		goto out;
 	}
 
-	was_set = test_and_set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
-				   &fence->flags);
-
-	if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
+	if (!__dma_fence_enable_signaling(fence))
 		goto out;
 
-	if (!was_set && fence->ops->enable_signaling) {
-		trace_dma_fence_enable_signal(fence);
-
-		if (!fence->ops->enable_signaling(fence)) {
-			dma_fence_signal_locked(fence);
-			goto out;
-		}
-	}
-
 	if (!timeout) {
 		ret = 0;
 		goto out;
--- linux-ein-5.4.0.orig/drivers/dma-buf/dma-resv.c
+++ linux-ein-5.4.0/drivers/dma-buf/dma-resv.c
@@ -161,7 +161,7 @@
 			max = max(old->shared_count + num_fences,
 				  old->shared_max * 2);
 	} else {
-		max = 4;
+		max = max(4ul, roundup_pow_of_two(num_fences));
 	}
 
 	new = dma_resv_list_alloc(max);
--- linux-ein-5.4.0.orig/drivers/dma-buf/sw_sync.c
+++ linux-ein-5.4.0/drivers/dma-buf/sw_sync.c
@@ -191,6 +191,7 @@
  */
 static void sync_timeline_signal(struct sync_timeline *obj, unsigned int inc)
 {
+	LIST_HEAD(signalled);
 	struct sync_pt *pt, *next;
 
 	trace_sync_timeline(obj);
@@ -203,21 +204,20 @@
 		if (!timeline_fence_signaled(&pt->base))
 			break;
 
-		list_del_init(&pt->link);
+		dma_fence_get(&pt->base);
+
+		list_move_tail(&pt->link, &signalled);
 		rb_erase(&pt->node, &obj->pt_tree);
 
-		/*
-		 * A signal callback may release the last reference to this
-		 * fence, causing it to be freed. That operation has to be
-		 * last to avoid a use after free inside this loop, and must
-		 * be after we remove the fence from the timeline in order to
-		 * prevent deadlocking on timeline->lock inside
-		 * timeline_fence_release().
-		 */
 		dma_fence_signal_locked(&pt->base);
 	}
 
 	spin_unlock_irq(&obj->lock);
+
+	list_for_each_entry_safe(pt, next, &signalled, link) {
+		list_del_init(&pt->link);
+		dma_fence_put(&pt->base);
+	}
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/dma-buf/sync_file.c
+++ linux-ein-5.4.0/drivers/dma-buf/sync_file.c
@@ -211,8 +211,8 @@
 					 struct sync_file *b)
 {
 	struct sync_file *sync_file;
-	struct dma_fence **fences, **nfences, **a_fences, **b_fences;
-	int i, i_a, i_b, num_fences, a_num_fences, b_num_fences;
+	struct dma_fence **fences = NULL, **nfences, **a_fences, **b_fences;
+	int i = 0, i_a, i_b, num_fences, a_num_fences, b_num_fences;
 
 	sync_file = sync_file_alloc();
 	if (!sync_file)
@@ -221,7 +221,7 @@
 	a_fences = get_fences(a, &a_num_fences);
 	b_fences = get_fences(b, &b_num_fences);
 	if (a_num_fences > INT_MAX - b_num_fences)
-		return NULL;
+		goto err;
 
 	num_fences = a_num_fences + b_num_fences;
 
@@ -236,7 +236,7 @@
 	 * If a sync_file can only be created with sync_file_merge
 	 * and sync_file_create, this is a reasonable assumption.
 	 */
-	for (i = i_a = i_b = 0; i_a < a_num_fences && i_b < b_num_fences; ) {
+	for (i_a = i_b = 0; i_a < a_num_fences && i_b < b_num_fences; ) {
 		struct dma_fence *pt_a = a_fences[i_a];
 		struct dma_fence *pt_b = b_fences[i_b];
 
@@ -278,15 +278,16 @@
 		fences = nfences;
 	}
 
-	if (sync_file_set_fence(sync_file, fences, i) < 0) {
-		kfree(fences);
+	if (sync_file_set_fence(sync_file, fences, i) < 0)
 		goto err;
-	}
 
 	strlcpy(sync_file->user_name, name, sizeof(sync_file->user_name));
 	return sync_file;
 
 err:
+	while (i)
+		dma_fence_put(fences[--i]);
+	kfree(fences);
 	fput(sync_file->file);
 	return NULL;
 
--- linux-ein-5.4.0.orig/drivers/dma-buf/udmabuf.c
+++ linux-ein-5.4.0/drivers/dma-buf/udmabuf.c
@@ -24,8 +24,11 @@
 {
 	struct vm_area_struct *vma = vmf->vma;
 	struct udmabuf *ubuf = vma->vm_private_data;
+	pgoff_t pgoff = vmf->pgoff;
 
-	vmf->page = ubuf->pages[vmf->pgoff];
+	if (pgoff >= ubuf->pagecount)
+		return VM_FAULT_SIGBUS;
+	vmf->page = ubuf->pages[pgoff];
 	get_page(vmf->page);
 	return 0;
 }
@@ -145,6 +148,10 @@
 		if (ubuf->pagecount > pglimit)
 			goto err;
 	}
+
+	if (!ubuf->pagecount)
+		goto err;
+
 	ubuf->pages = kmalloc_array(ubuf->pagecount, sizeof(*ubuf->pages),
 				    GFP_KERNEL);
 	if (!ubuf->pages) {
@@ -280,7 +287,23 @@
 
 static int __init udmabuf_dev_init(void)
 {
-	return misc_register(&udmabuf_misc);
+	int ret;
+
+	ret = misc_register(&udmabuf_misc);
+	if (ret < 0) {
+		pr_err("Could not initialize udmabuf device\n");
+		return ret;
+	}
+
+	ret = dma_coerce_mask_and_coherent(udmabuf_misc.this_device,
+					   DMA_BIT_MASK(64));
+	if (ret < 0) {
+		pr_err("Could not setup DMA mask for udmabuf device\n");
+		misc_deregister(&udmabuf_misc);
+		return ret;
+	}
+
+	return 0;
 }
 
 static void __exit udmabuf_dev_exit(void)
--- linux-ein-5.4.0.orig/drivers/dma/Kconfig
+++ linux-ein-5.4.0/drivers/dma/Kconfig
@@ -59,6 +59,7 @@
 #devices
 config ALTERA_MSGDMA
 	tristate "Altera / Intel mSGDMA Engine"
+	depends on HAS_IOMEM
 	select DMA_ENGINE
 	help
 	  Enable support for Altera / Intel mSGDMA controller.
@@ -207,6 +208,7 @@
 config FSL_EDMA
 	tristate "Freescale eDMA engine support"
 	depends on OF
+	depends on HAS_IOMEM
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	help
@@ -239,6 +241,14 @@
           the capability to offload memcpy, xor and pq computation
 	  for raid5/6.
 
+config HISI_DMA
+	tristate "HiSilicon DMA Engine support"
+	depends on ARM64 || (COMPILE_TEST && PCI_MSI)
+	select DMA_ENGINE
+	select DMA_VIRTUAL_CHANNELS
+	help
+	  Support HiSilicon Kunpeng DMA engine.
+
 config IMG_MDC_DMA
 	tristate "IMG MDC support"
 	depends on MIPS || COMPILE_TEST
@@ -267,6 +277,7 @@
 
 config INTEL_IDMA64
 	tristate "Intel integrated DMA 64-bit support"
+	depends on HAS_IOMEM
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	help
@@ -275,7 +286,7 @@
 
 config INTEL_IOATDMA
 	tristate "Intel I/OAT DMA support"
-	depends on PCI && X86_64
+	depends on PCI && X86_64 && !UML
 	select DMA_ENGINE
 	select DMA_ENGINE_RAID
 	select DCA
--- linux-ein-5.4.0.orig/drivers/dma/Makefile
+++ linux-ein-5.4.0/drivers/dma/Makefile
@@ -35,6 +35,7 @@
 obj-$(CONFIG_MCF_EDMA) += mcf-edma.o fsl-edma-common.o
 obj-$(CONFIG_FSL_QDMA) += fsl-qdma.o
 obj-$(CONFIG_FSL_RAID) += fsl_raid.o
+obj-$(CONFIG_HISI_DMA) += hisi_dma.o
 obj-$(CONFIG_HSU_DMA) += hsu/
 obj-$(CONFIG_IMG_MDC_DMA) += img-mdc-dma.o
 obj-$(CONFIG_IMX_DMA) += imx-dma.o
--- linux-ein-5.4.0.orig/drivers/dma/acpi-dma.c
+++ linux-ein-5.4.0/drivers/dma/acpi-dma.c
@@ -70,10 +70,14 @@
 
 	si = (const struct acpi_csrt_shared_info *)&grp[1];
 
-	/* Match device by MMIO and IRQ */
+	/* Match device by MMIO */
 	if (si->mmio_base_low != lower_32_bits(mem) ||
-	    si->mmio_base_high != upper_32_bits(mem) ||
-	    si->gsi_interrupt != irq)
+	    si->mmio_base_high != upper_32_bits(mem))
+		return 0;
+
+	/* Match device by Linux vIRQ */
+	ret = acpi_register_gsi(NULL, si->gsi_interrupt, si->interrupt_mode, si->interrupt_polarity);
+	if (ret != irq)
 		return 0;
 
 	dev_dbg(&adev->dev, "matches with %.4s%04X (rev %u)\n",
@@ -135,11 +139,13 @@
 		if (ret < 0) {
 			dev_warn(&adev->dev,
 				 "error in parsing resource group\n");
-			return;
+			break;
 		}
 
 		grp = (struct acpi_csrt_group *)((void *)grp + grp->length);
 	}
+
+	acpi_put_table((struct acpi_table_header *)csrt);
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/dma/at_hdmac.c
+++ linux-ein-5.4.0/drivers/dma/at_hdmac.c
@@ -246,6 +246,8 @@
 		       ATC_SPIP_BOUNDARY(first->boundary));
 	channel_writel(atchan, DPIP, ATC_DPIP_HOLE(first->dst_hole) |
 		       ATC_DPIP_BOUNDARY(first->boundary));
+	/* Don't allow CPU to reorder channel enable. */
+	wmb();
 	dma_writel(atdma, CHER, atchan->mask);
 
 	vdbg_dump_regs(atchan);
@@ -306,7 +308,8 @@
 	struct at_desc *desc_first = atc_first_active(atchan);
 	struct at_desc *desc;
 	int ret;
-	u32 ctrla, dscr, trials;
+	u32 ctrla, dscr;
+	unsigned int i;
 
 	/*
 	 * If the cookie doesn't match to the currently running transfer then
@@ -376,7 +379,7 @@
 		dscr = channel_readl(atchan, DSCR);
 		rmb(); /* ensure DSCR is read before CTRLA */
 		ctrla = channel_readl(atchan, CTRLA);
-		for (trials = 0; trials < ATC_MAX_DSCR_TRIALS; ++trials) {
+		for (i = 0; i < ATC_MAX_DSCR_TRIALS; ++i) {
 			u32 new_dscr;
 
 			rmb(); /* ensure DSCR is read after CTRLA */
@@ -402,7 +405,7 @@
 			rmb(); /* ensure DSCR is read before CTRLA */
 			ctrla = channel_readl(atchan, CTRLA);
 		}
-		if (unlikely(trials >= ATC_MAX_DSCR_TRIALS))
+		if (unlikely(i == ATC_MAX_DSCR_TRIALS))
 			return -ETIMEDOUT;
 
 		/* for the first descriptor we can be more accurate */
@@ -550,10 +553,6 @@
 	bad_desc = atc_first_active(atchan);
 	list_del_init(&bad_desc->desc_node);
 
-	/* As we are stopped, take advantage to push queued descriptors
-	 * in active_list */
-	list_splice_init(&atchan->queue, atchan->active_list.prev);
-
 	/* Try to restart the controller */
 	if (!list_empty(&atchan->active_list))
 		atc_dostart(atchan, atc_first_active(atchan));
@@ -674,19 +673,11 @@
 	spin_lock_irqsave(&atchan->lock, flags);
 	cookie = dma_cookie_assign(tx);
 
-	if (list_empty(&atchan->active_list)) {
-		dev_vdbg(chan2dev(tx->chan), "tx_submit: started %u\n",
-				desc->txd.cookie);
-		atc_dostart(atchan, desc);
-		list_add_tail(&desc->desc_node, &atchan->active_list);
-	} else {
-		dev_vdbg(chan2dev(tx->chan), "tx_submit: queued %u\n",
-				desc->txd.cookie);
-		list_add_tail(&desc->desc_node, &atchan->queue);
-	}
-
+	list_add_tail(&desc->desc_node, &atchan->queue);
 	spin_unlock_irqrestore(&atchan->lock, flags);
 
+	dev_vdbg(chan2dev(tx->chan), "tx_submit: queued %u\n",
+		 desc->txd.cookie);
 	return cookie;
 }
 
@@ -1667,13 +1658,17 @@
 		return NULL;
 
 	dmac_pdev = of_find_device_by_node(dma_spec->np);
+	if (!dmac_pdev)
+		return NULL;
 
 	dma_cap_zero(mask);
 	dma_cap_set(DMA_SLAVE, mask);
 
-	atslave = kzalloc(sizeof(*atslave), GFP_KERNEL);
-	if (!atslave)
+	atslave = kmalloc(sizeof(*atslave), GFP_KERNEL);
+	if (!atslave) {
+		put_device(&dmac_pdev->dev);
 		return NULL;
+	}
 
 	atslave->cfg = ATC_DST_H2SEL_HW | ATC_SRC_H2SEL_HW;
 	/*
@@ -1702,8 +1697,11 @@
 	atslave->dma_dev = &dmac_pdev->dev;
 
 	chan = dma_request_channel(mask, at_dma_filter, atslave);
-	if (!chan)
+	if (!chan) {
+		put_device(&dmac_pdev->dev);
+		kfree(atslave);
 		return NULL;
+	}
 
 	atchan = to_at_dma_chan(chan);
 	atchan->per_if = dma_spec->args[0] & 0xff;
@@ -1950,7 +1948,11 @@
 	  dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask)  ? "slave " : "",
 	  plat_dat->nr_channels);
 
-	dma_async_device_register(&atdma->dma_common);
+	err = dma_async_device_register(&atdma->dma_common);
+	if (err) {
+		dev_err(&pdev->dev, "Unable to register: %d.\n", err);
+		goto err_dma_async_device_register;
+	}
 
 	/*
 	 * Do not return an error if the dmac node is not present in order to
@@ -1970,6 +1972,7 @@
 
 err_of_dma_controller_register:
 	dma_async_device_unregister(&atdma->dma_common);
+err_dma_async_device_register:
 	dma_pool_destroy(atdma->memset_pool);
 err_memset_pool_create:
 	dma_pool_destroy(atdma->dma_desc_pool);
--- linux-ein-5.4.0.orig/drivers/dma/at_hdmac_regs.h
+++ linux-ein-5.4.0/drivers/dma/at_hdmac_regs.h
@@ -164,13 +164,13 @@
 /* LLI == Linked List Item; aka DMA buffer descriptor */
 struct at_lli {
 	/* values that are not changed by hardware */
-	dma_addr_t	saddr;
-	dma_addr_t	daddr;
+	u32 saddr;
+	u32 daddr;
 	/* value that may get written back: */
-	u32		ctrla;
+	u32 ctrla;
 	/* more values that are not changed by hardware */
-	u32		ctrlb;
-	dma_addr_t	dscr;	/* chain to next lli */
+	u32 ctrlb;
+	u32 dscr;	/* chain to next lli */
 };
 
 /**
--- linux-ein-5.4.0.orig/drivers/dma/at_xdmac.c
+++ linux-ein-5.4.0/drivers/dma/at_xdmac.c
@@ -89,6 +89,7 @@
 #define		AT_XDMAC_CNDC_NDE		(0x1 << 0)		/* Channel x Next Descriptor Enable */
 #define		AT_XDMAC_CNDC_NDSUP		(0x1 << 1)		/* Channel x Next Descriptor Source Update */
 #define		AT_XDMAC_CNDC_NDDUP		(0x1 << 2)		/* Channel x Next Descriptor Destination Update */
+#define		AT_XDMAC_CNDC_NDVIEW_MASK	GENMASK(28, 27)
 #define		AT_XDMAC_CNDC_NDVIEW_NDV0	(0x0 << 3)		/* Channel x Next Descriptor View 0 */
 #define		AT_XDMAC_CNDC_NDVIEW_NDV1	(0x1 << 3)		/* Channel x Next Descriptor View 1 */
 #define		AT_XDMAC_CNDC_NDVIEW_NDV2	(0x2 << 3)		/* Channel x Next Descriptor View 2 */
@@ -145,7 +146,7 @@
 #define		AT_XDMAC_CC_WRIP	(0x1 << 23)	/* Write in Progress (read only) */
 #define			AT_XDMAC_CC_WRIP_DONE		(0x0 << 23)
 #define			AT_XDMAC_CC_WRIP_IN_PROGRESS	(0x1 << 23)
-#define		AT_XDMAC_CC_PERID(i)	(0x7f & (i) << 24)	/* Channel Peripheral Identifier */
+#define		AT_XDMAC_CC_PERID(i)	((0x7f & (i)) << 24)	/* Channel Peripheral Identifier */
 #define AT_XDMAC_CDS_MSP	0x2C	/* Channel Data Stride Memory Set Pattern */
 #define AT_XDMAC_CSUS		0x30	/* Channel Source Microblock Stride */
 #define AT_XDMAC_CDUS		0x34	/* Channel Destination Microblock Stride */
@@ -211,6 +212,7 @@
 	int			irq;
 	struct clk		*clk;
 	u32			save_gim;
+	u32			save_gs;
 	struct dma_pool		*at_xdmac_desc_pool;
 	struct at_xdmac_chan	chan[0];
 };
@@ -220,15 +222,15 @@
 
 /* Linked List Descriptor */
 struct at_xdmac_lld {
-	dma_addr_t	mbr_nda;	/* Next Descriptor Member */
-	u32		mbr_ubc;	/* Microblock Control Member */
-	dma_addr_t	mbr_sa;		/* Source Address Member */
-	dma_addr_t	mbr_da;		/* Destination Address Member */
-	u32		mbr_cfg;	/* Configuration Register */
-	u32		mbr_bc;		/* Block Control Register */
-	u32		mbr_ds;		/* Data Stride Register */
-	u32		mbr_sus;	/* Source Microblock Stride Register */
-	u32		mbr_dus;	/* Destination Microblock Stride Register */
+	u32 mbr_nda;	/* Next Descriptor Member */
+	u32 mbr_ubc;	/* Microblock Control Member */
+	u32 mbr_sa;	/* Source Address Member */
+	u32 mbr_da;	/* Destination Address Member */
+	u32 mbr_cfg;	/* Configuration Register */
+	u32 mbr_bc;	/* Block Control Register */
+	u32 mbr_ds;	/* Data Stride Register */
+	u32 mbr_sus;	/* Source Microblock Stride Register */
+	u32 mbr_dus;	/* Destination Microblock Stride Register */
 };
 
 /* 64-bit alignment needed to update CNDA and CUBC registers in an atomic way. */
@@ -338,9 +340,6 @@
 
 	dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, first);
 
-	if (at_xdmac_chan_is_enabled(atchan))
-		return;
-
 	/* Set transfer as active to not try to start it again. */
 	first->active_xfer = true;
 
@@ -356,7 +355,8 @@
 	 */
 	if (at_xdmac_chan_is_cyclic(atchan))
 		reg = AT_XDMAC_CNDC_NDVIEW_NDV1;
-	else if (first->lld.mbr_ubc & AT_XDMAC_MBR_UBC_NDV3)
+	else if ((first->lld.mbr_ubc &
+		  AT_XDMAC_CNDC_NDVIEW_MASK) == AT_XDMAC_MBR_UBC_NDV3)
 		reg = AT_XDMAC_CNDC_NDVIEW_NDV3;
 	else
 		reg = AT_XDMAC_CNDC_NDVIEW_NDV2;
@@ -427,13 +427,12 @@
 	spin_lock_irqsave(&atchan->lock, irqflags);
 	cookie = dma_cookie_assign(tx);
 
+	list_add_tail(&desc->xfer_node, &atchan->xfers_list);
+	spin_unlock_irqrestore(&atchan->lock, irqflags);
+
 	dev_vdbg(chan2dev(tx->chan), "%s: atchan 0x%p, add desc 0x%p to xfers_list\n",
 		 __func__, atchan, desc);
-	list_add_tail(&desc->xfer_node, &atchan->xfers_list);
-	if (list_is_singular(&atchan->xfers_list))
-		at_xdmac_start_xfer(atchan, desc);
 
-	spin_unlock_irqrestore(&atchan->lock, irqflags);
 	return cookie;
 }
 
@@ -1392,7 +1391,7 @@
 {
 	struct at_xdmac_chan	*atchan = to_at_xdmac_chan(chan);
 	struct at_xdmac		*atxdmac = to_at_xdmac(atchan->chan.device);
-	struct at_xdmac_desc	*desc, *_desc;
+	struct at_xdmac_desc	*desc, *_desc, *iter;
 	struct list_head	*descs_list;
 	enum dma_status		ret;
 	int			residue, retry;
@@ -1507,11 +1506,13 @@
 	 * microblock.
 	 */
 	descs_list = &desc->descs_list;
-	list_for_each_entry_safe(desc, _desc, descs_list, desc_node) {
-		dwidth = at_xdmac_get_dwidth(desc->lld.mbr_cfg);
-		residue -= (desc->lld.mbr_ubc & 0xffffff) << dwidth;
-		if ((desc->lld.mbr_nda & 0xfffffffc) == cur_nda)
+	list_for_each_entry_safe(iter, _desc, descs_list, desc_node) {
+		dwidth = at_xdmac_get_dwidth(iter->lld.mbr_cfg);
+		residue -= (iter->lld.mbr_ubc & 0xffffff) << dwidth;
+		if ((iter->lld.mbr_nda & 0xfffffffc) == cur_nda) {
+			desc = iter;
 			break;
+		}
 	}
 	residue += cur_ubc << dwidth;
 
@@ -1568,14 +1569,17 @@
 	struct at_xdmac_desc		*desc;
 	struct dma_async_tx_descriptor	*txd;
 
-	if (!list_empty(&atchan->xfers_list)) {
-		desc = list_first_entry(&atchan->xfers_list,
-					struct at_xdmac_desc, xfer_node);
-		txd = &desc->tx_dma_desc;
-
-		if (txd->flags & DMA_PREP_INTERRUPT)
-			dmaengine_desc_get_callback_invoke(txd, NULL);
+	spin_lock_irq(&atchan->lock);
+	if (list_empty(&atchan->xfers_list)) {
+		spin_unlock_irq(&atchan->lock);
+		return;
 	}
+	desc = list_first_entry(&atchan->xfers_list, struct at_xdmac_desc,
+				xfer_node);
+	spin_unlock_irq(&atchan->lock);
+	txd = &desc->tx_dma_desc;
+	if (txd->flags & DMA_PREP_INTERRUPT)
+		dmaengine_desc_get_callback_invoke(txd, NULL);
 }
 
 static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
@@ -1725,11 +1729,13 @@
 static void at_xdmac_issue_pending(struct dma_chan *chan)
 {
 	struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
+	unsigned long flags;
 
 	dev_dbg(chan2dev(&atchan->chan), "%s\n", __func__);
 
-	if (!at_xdmac_chan_is_cyclic(atchan))
-		at_xdmac_advance_work(atchan);
+	spin_lock_irqsave(&atchan->lock, flags);
+	at_xdmac_advance_work(atchan);
+	spin_unlock_irqrestore(&atchan->lock, flags);
 
 	return;
 }
@@ -1843,6 +1849,11 @@
 	for (i = 0; i < init_nr_desc_per_channel; i++) {
 		desc = at_xdmac_alloc_desc(chan, GFP_ATOMIC);
 		if (!desc) {
+			if (i == 0) {
+				dev_warn(chan2dev(chan),
+					 "can't allocate any descriptors\n");
+				return -EIO;
+			}
 			dev_warn(chan2dev(chan),
 				"only %d descriptors have been allocated\n", i);
 			break;
@@ -1912,6 +1923,7 @@
 		}
 	}
 	atxdmac->save_gim = at_xdmac_read(atxdmac, AT_XDMAC_GIM);
+	atxdmac->save_gs = at_xdmac_read(atxdmac, AT_XDMAC_GS);
 
 	at_xdmac_off(atxdmac);
 	clk_disable_unprepare(atxdmac->clk);
@@ -1948,7 +1960,8 @@
 			at_xdmac_chan_write(atchan, AT_XDMAC_CNDC, atchan->save_cndc);
 			at_xdmac_chan_write(atchan, AT_XDMAC_CIE, atchan->save_cim);
 			wmb();
-			at_xdmac_write(atxdmac, AT_XDMAC_GE, atchan->mask);
+			if (atxdmac->save_gs & atchan->mask)
+				at_xdmac_write(atxdmac, AT_XDMAC_GE, atchan->mask);
 		}
 	}
 	return 0;
--- linux-ein-5.4.0.orig/drivers/dma/coh901318.c
+++ linux-ein-5.4.0/drivers/dma/coh901318.c
@@ -1947,8 +1947,6 @@
 		return;
 	}
 
-	spin_lock(&cohc->lock);
-
 	/*
 	 * When we reach this point, at least one queue item
 	 * should have been moved over from cohc->queue to
@@ -1969,8 +1967,6 @@
 	if (coh901318_queue_start(cohc) == NULL)
 		cohc->busy = 0;
 
-	spin_unlock(&cohc->lock);
-
 	/*
 	 * This tasklet will remove items from cohc->active
 	 * and thus terminates them.
--- linux-ein-5.4.0.orig/drivers/dma/dma-axi-dmac.c
+++ linux-ein-5.4.0/drivers/dma/dma-axi-dmac.c
@@ -830,6 +830,7 @@
 	struct dma_device *dma_dev;
 	struct axi_dmac *dmac;
 	struct resource *res;
+	struct regmap *regmap;
 	int ret;
 
 	dmac = devm_kzalloc(&pdev->dev, sizeof(*dmac), GFP_KERNEL);
@@ -921,10 +922,17 @@
 
 	platform_set_drvdata(pdev, dmac);
 
-	devm_regmap_init_mmio(&pdev->dev, dmac->base, &axi_dmac_regmap_config);
+	regmap = devm_regmap_init_mmio(&pdev->dev, dmac->base,
+		 &axi_dmac_regmap_config);
+	if (IS_ERR(regmap)) {
+		ret = PTR_ERR(regmap);
+		goto err_free_irq;
+	}
 
 	return 0;
 
+err_free_irq:
+	free_irq(dmac->irq, dmac);
 err_unregister_of:
 	of_dma_controller_free(pdev->dev.of_node);
 err_unregister_device:
--- linux-ein-5.4.0.orig/drivers/dma/dma-jz4780.c
+++ linux-ein-5.4.0/drivers/dma/dma-jz4780.c
@@ -639,11 +639,11 @@
 	unsigned long flags;
 	unsigned long residue = 0;
 
+	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+
 	status = dma_cookie_status(chan, cookie, txstate);
 	if ((status == DMA_COMPLETE) || (txstate == NULL))
-		return status;
-
-	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+		goto out_unlock_irqrestore;
 
 	vdesc = vchan_find_desc(&jzchan->vchan, cookie);
 	if (vdesc) {
@@ -660,6 +660,7 @@
 	    && jzchan->desc->status & (JZ_DMA_DCS_AR | JZ_DMA_DCS_HLT))
 		status = DMA_ERROR;
 
+out_unlock_irqrestore:
 	spin_unlock_irqrestore(&jzchan->vchan.lock, flags);
 	return status;
 }
@@ -885,24 +886,11 @@
 		return -EINVAL;
 	}
 
-	ret = platform_get_irq(pdev, 0);
-	if (ret < 0)
-		return ret;
-
-	jzdma->irq = ret;
-
-	ret = request_irq(jzdma->irq, jz4780_dma_irq_handler, 0, dev_name(dev),
-			  jzdma);
-	if (ret) {
-		dev_err(dev, "failed to request IRQ %u!\n", jzdma->irq);
-		return ret;
-	}
-
 	jzdma->clk = devm_clk_get(dev, NULL);
 	if (IS_ERR(jzdma->clk)) {
 		dev_err(dev, "failed to get clock\n");
 		ret = PTR_ERR(jzdma->clk);
-		goto err_free_irq;
+		return ret;
 	}
 
 	clk_prepare_enable(jzdma->clk);
@@ -955,10 +943,23 @@
 		jzchan->vchan.desc_free = jz4780_dma_desc_free;
 	}
 
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		goto err_disable_clk;
+
+	jzdma->irq = ret;
+
+	ret = request_irq(jzdma->irq, jz4780_dma_irq_handler, 0, dev_name(dev),
+			  jzdma);
+	if (ret) {
+		dev_err(dev, "failed to request IRQ %u!\n", jzdma->irq);
+		goto err_disable_clk;
+	}
+
 	ret = dmaenginem_async_device_register(dd);
 	if (ret) {
 		dev_err(dev, "failed to register device\n");
-		goto err_disable_clk;
+		goto err_free_irq;
 	}
 
 	/* Register with OF DMA helpers. */
@@ -966,17 +967,17 @@
 					 jzdma);
 	if (ret) {
 		dev_err(dev, "failed to register OF DMA controller\n");
-		goto err_disable_clk;
+		goto err_free_irq;
 	}
 
 	dev_info(dev, "JZ4780 DMA controller initialised\n");
 	return 0;
 
-err_disable_clk:
-	clk_disable_unprepare(jzdma->clk);
-
 err_free_irq:
 	free_irq(jzdma->irq, jzdma);
+
+err_disable_clk:
+	clk_disable_unprepare(jzdma->clk);
 	return ret;
 }
 
@@ -1004,7 +1005,8 @@
 static const struct jz4780_dma_soc_data jz4725b_dma_soc_data = {
 	.nb_channels = 6,
 	.transfer_ord_max = 5,
-	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC,
+	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC |
+		 JZ_SOC_DATA_BREAK_LINKS,
 };
 
 static const struct jz4780_dma_soc_data jz4770_dma_soc_data = {
--- linux-ein-5.4.0.orig/drivers/dma/dmaengine.c
+++ linux-ein-5.4.0/drivers/dma/dmaengine.c
@@ -179,7 +179,7 @@
 
 static struct module *dma_chan_to_owner(struct dma_chan *chan)
 {
-	return chan->device->dev->driver->owner;
+	return chan->device->owner;
 }
 
 /**
@@ -212,7 +212,8 @@
 	/* The channel is already in use, update client count */
 	if (chan->client_count) {
 		__module_get(owner);
-		goto out;
+		chan->client_count++;
+		return 0;
 	}
 
 	if (!try_module_get(owner))
@@ -225,11 +226,11 @@
 			goto err_out;
 	}
 
+	chan->client_count++;
+
 	if (!dma_has_cap(DMA_PRIVATE, chan->device->cap_mask))
 		balance_ref_count(chan);
 
-out:
-	chan->client_count++;
 	return 0;
 
 err_out:
@@ -919,6 +920,8 @@
 		return -EIO;
 	}
 
+	device->owner = device->dev->driver->owner;
+
 	if (dma_has_cap(DMA_MEMCPY, device->cap_mask) && !device->device_prep_dma_memcpy) {
 		dev_err(device->dev,
 			"Device claims capability %s, but op is not defined\n",
--- linux-ein-5.4.0.orig/drivers/dma/dmaengine.h
+++ linux-ein-5.4.0/drivers/dma/dmaengine.h
@@ -168,7 +168,7 @@
 static inline bool
 dmaengine_desc_callback_valid(struct dmaengine_desc_callback *cb)
 {
-	return (cb->callback) ? true : false;
+	return cb->callback || cb->callback_result;
 }
 
 #endif
--- linux-ein-5.4.0.orig/drivers/dma/dmatest.c
+++ linux-ein-5.4.0/drivers/dma/dmatest.c
@@ -240,7 +240,7 @@
 		struct dmatest_thread *thread;
 
 		list_for_each_entry(thread, &dtc->threads, node) {
-			if (!thread->done)
+			if (!thread->done && !thread->pending)
 				return true;
 		}
 	}
@@ -662,8 +662,8 @@
 		flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
 
 	ktime = ktime_get();
-	while (!kthread_should_stop()
-	       && !(params->iterations && total_tests >= params->iterations)) {
+	while (!(kthread_should_stop() ||
+	       (params->iterations && total_tests >= params->iterations))) {
 		struct dma_async_tx_descriptor *tx = NULL;
 		struct dmaengine_unmap_data *um;
 		dma_addr_t *dsts;
@@ -1166,10 +1166,13 @@
 		mutex_unlock(&info->lock);
 		return ret;
 	} else if (dmatest_run) {
-		if (is_threaded_test_pending(info))
-			start_threaded_tests(info);
-		else
-			pr_info("Could not start test, no channels configured\n");
+		if (!is_threaded_test_pending(info)) {
+			pr_info("No channels configured, continue with any\n");
+			if (!is_threaded_test_run(info))
+				stop_threaded_test(info);
+			add_threaded_test(info);
+		}
+		start_threaded_tests(info);
 	} else {
 		stop_threaded_test(info);
 	}
@@ -1215,15 +1218,14 @@
 	add_threaded_test(info);
 
 	/* Check if channel was added successfully */
-	dtc = list_last_entry(&info->channels, struct dmatest_chan, node);
-
-	if (dtc->chan) {
+	if (!list_empty(&info->channels)) {
 		/*
 		 * if new channel was not successfully added, revert the
 		 * "test_channel" string to the name of the last successfully
 		 * added channel. exception for when users issues empty string
 		 * to channel parameter.
 		 */
+		dtc = list_last_entry(&info->channels, struct dmatest_chan, node);
 		if ((strcmp(dma_chan_name(dtc->chan), strim(test_channel)) != 0)
 		    && (strcmp("", strim(test_channel)) != 0)) {
 			ret = -EINVAL;
--- linux-ein-5.4.0.orig/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
+++ linux-ein-5.4.0/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
@@ -551,6 +551,11 @@
 
 	/* The bad descriptor currently is in the head of vc list */
 	vd = vchan_next_desc(&chan->vc);
+	if (!vd) {
+		dev_err(chan2dev(chan), "BUG: %s, IRQ with no descriptors\n",
+			axi_chan_name(chan));
+		goto out;
+	}
 	/* Remove the completed descriptor from issued list */
 	list_del(&vd->node);
 
@@ -565,6 +570,7 @@
 	/* Try to restart the controller */
 	axi_chan_start_first_queued(chan);
 
+out:
 	spin_unlock_irqrestore(&chan->vc.lock, flags);
 }
 
--- linux-ein-5.4.0.orig/drivers/dma/dw-edma/dw-edma-core.c
+++ linux-ein-5.4.0/drivers/dma/dw-edma/dw-edma-core.c
@@ -85,12 +85,12 @@
 
 	if (desc->chunk) {
 		/* Create and add new element into the linked list */
-		desc->chunks_alloc++;
-		list_add_tail(&chunk->list, &desc->chunk->list);
 		if (!dw_edma_alloc_burst(chunk)) {
 			kfree(chunk);
 			return NULL;
 		}
+		desc->chunks_alloc++;
+		list_add_tail(&chunk->list, &desc->chunk->list);
 	} else {
 		/* List head */
 		chunk->burst = NULL;
@@ -165,7 +165,7 @@
 	dw_edma_free_desc(vd2dw_edma_desc(vdesc));
 }
 
-static void dw_edma_start_transfer(struct dw_edma_chan *chan)
+static int dw_edma_start_transfer(struct dw_edma_chan *chan)
 {
 	struct dw_edma_chunk *child;
 	struct dw_edma_desc *desc;
@@ -173,16 +173,16 @@
 
 	vd = vchan_next_desc(&chan->vc);
 	if (!vd)
-		return;
+		return 0;
 
 	desc = vd2dw_edma_desc(vd);
 	if (!desc)
-		return;
+		return 0;
 
 	child = list_first_entry_or_null(&desc->chunk->list,
 					 struct dw_edma_chunk, list);
 	if (!child)
-		return;
+		return 0;
 
 	dw_edma_v0_core_start(child, !desc->xfer_sz);
 	desc->xfer_sz += child->ll_region.sz;
@@ -190,6 +190,8 @@
 	list_del(&child->list);
 	kfree(child);
 	desc->chunks_alloc--;
+
+	return 1;
 }
 
 static int dw_edma_device_config(struct dma_chan *dchan,
@@ -273,9 +275,12 @@
 	struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
 	unsigned long flags;
 
+	if (!chan->configured)
+		return;
+
 	spin_lock_irqsave(&chan->vc.lock, flags);
-	if (chan->configured && chan->request == EDMA_REQ_NONE &&
-	    chan->status == EDMA_ST_IDLE && vchan_issue_pending(&chan->vc)) {
+	if (vchan_issue_pending(&chan->vc) && chan->request == EDMA_REQ_NONE &&
+	    chan->status == EDMA_ST_IDLE) {
 		chan->status = EDMA_ST_BUSY;
 		dw_edma_start_transfer(chan);
 	}
@@ -391,7 +396,7 @@
 			if (xfer->cyclic) {
 				burst->dar = xfer->xfer.cyclic.paddr;
 			} else {
-				burst->dar = sg_dma_address(sg);
+				burst->dar = dst_addr;
 				/* Unlike the typical assumption by other
 				 * drivers/IPs the peripheral memory isn't
 				 * a FIFO memory, in this case, it's a
@@ -399,14 +404,13 @@
 				 * and destination addresses are increased
 				 * by the same portion (data length)
 				 */
-				src_addr += sg_dma_len(sg);
 			}
 		} else {
 			burst->dar = dst_addr;
 			if (xfer->cyclic) {
 				burst->sar = xfer->xfer.cyclic.paddr;
 			} else {
-				burst->sar = sg_dma_address(sg);
+				burst->sar = src_addr;
 				/* Unlike the typical assumption by other
 				 * drivers/IPs the peripheral memory isn't
 				 * a FIFO memory, in this case, it's a
@@ -414,12 +418,14 @@
 				 * and destination addresses are increased
 				 * by the same portion (data length)
 				 */
-				dst_addr += sg_dma_len(sg);
 			}
 		}
 
-		if (!xfer->cyclic)
+		if (!xfer->cyclic) {
+			src_addr += sg_dma_len(sg);
+			dst_addr += sg_dma_len(sg);
 			sg = sg_next(sg);
+		}
 	}
 
 	return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags);
@@ -482,14 +488,14 @@
 		switch (chan->request) {
 		case EDMA_REQ_NONE:
 			desc = vd2dw_edma_desc(vd);
-			if (desc->chunks_alloc) {
-				chan->status = EDMA_ST_BUSY;
-				dw_edma_start_transfer(chan);
-			} else {
+			if (!desc->chunks_alloc) {
 				list_del(&vd->node);
 				vchan_cookie_complete(vd);
-				chan->status = EDMA_ST_IDLE;
 			}
+
+			/* Continue transferring if there are remaining chunks or issued requests.
+			 */
+			chan->status = dw_edma_start_transfer(chan) ? EDMA_ST_BUSY : EDMA_ST_IDLE;
 			break;
 
 		case EDMA_REQ_STOP:
@@ -909,22 +915,21 @@
 	/* Power management */
 	pm_runtime_disable(dev);
 
+	/* Deregister eDMA device */
+	dma_async_device_unregister(&dw->wr_edma);
 	list_for_each_entry_safe(chan, _chan, &dw->wr_edma.channels,
 				 vc.chan.device_node) {
-		list_del(&chan->vc.chan.device_node);
 		tasklet_kill(&chan->vc.task);
+		list_del(&chan->vc.chan.device_node);
 	}
 
+	dma_async_device_unregister(&dw->rd_edma);
 	list_for_each_entry_safe(chan, _chan, &dw->rd_edma.channels,
 				 vc.chan.device_node) {
-		list_del(&chan->vc.chan.device_node);
 		tasklet_kill(&chan->vc.task);
+		list_del(&chan->vc.chan.device_node);
 	}
 
-	/* Deregister eDMA device */
-	dma_async_device_unregister(&dw->wr_edma);
-	dma_async_device_unregister(&dw->rd_edma);
-
 	/* Turn debugfs off */
 	dw_edma_v0_core_debugfs_off();
 
--- linux-ein-5.4.0.orig/drivers/dma/dw/Kconfig
+++ linux-ein-5.4.0/drivers/dma/dw/Kconfig
@@ -10,6 +10,7 @@
 
 config DW_DMAC
 	tristate "Synopsys DesignWare AHB DMA platform driver"
+	depends on HAS_IOMEM
 	select DW_DMAC_CORE
 	help
 	  Support the Synopsys DesignWare AHB DMA controller. This
@@ -18,6 +19,7 @@
 config DW_DMAC_PCI
 	tristate "Synopsys DesignWare AHB DMA PCI driver"
 	depends on PCI
+	depends on HAS_IOMEM
 	select DW_DMAC_CORE
 	help
 	  Support the Synopsys DesignWare AHB DMA controller on the
--- linux-ein-5.4.0.orig/drivers/dma/dw/core.c
+++ linux-ein-5.4.0/drivers/dma/dw/core.c
@@ -118,16 +118,11 @@
 {
 	struct dw_dma *dw = to_dw_dma(dwc->chan.device);
 
-	if (test_bit(DW_DMA_IS_INITIALIZED, &dwc->flags))
-		return;
-
 	dw->initialize_chan(dwc);
 
 	/* Enable interrupts */
 	channel_set_bit(dw, MASK.XFER, dwc->mask);
 	channel_set_bit(dw, MASK.ERROR, dwc->mask);
-
-	set_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
 }
 
 /*----------------------------------------------------------------------*/
@@ -777,6 +772,10 @@
 	if (dws->dma_dev != chan->device->dev)
 		return false;
 
+	/* permit channels in accordance with the channels mask */
+	if (dws->channels && !(dws->channels & dwc->mask))
+		return false;
+
 	/* We have to copy data since dws can be temporary storage */
 	memcpy(&dwc->dws, dws, sizeof(struct dw_dma_slave));
 
@@ -954,8 +953,6 @@
 
 void do_dw_dma_off(struct dw_dma *dw)
 {
-	unsigned int i;
-
 	dma_writel(dw, CFG, 0);
 
 	channel_clear_bit(dw, MASK.XFER, dw->all_chan_mask);
@@ -966,9 +963,6 @@
 
 	while (dma_readl(dw, CFG) & DW_CFG_DMA_EN)
 		cpu_relax();
-
-	for (i = 0; i < dw->dma.chancnt; i++)
-		clear_bit(DW_DMA_IS_INITIALIZED, &dw->chan[i].flags);
 }
 
 void do_dw_dma_on(struct dw_dma *dw)
@@ -1032,8 +1026,6 @@
 	/* Clear custom channel configuration */
 	memset(&dwc->dws, 0, sizeof(struct dw_dma_slave));
 
-	clear_bit(DW_DMA_IS_INITIALIZED, &dwc->flags);
-
 	/* Disable interrupts */
 	channel_clear_bit(dw, MASK.XFER, dwc->mask);
 	channel_clear_bit(dw, MASK.BLOCK, dwc->mask);
--- linux-ein-5.4.0.orig/drivers/dma/dw/dw.c
+++ linux-ein-5.4.0/drivers/dma/dw/dw.c
@@ -14,7 +14,7 @@
 static void dw_dma_initialize_chan(struct dw_dma_chan *dwc)
 {
 	struct dw_dma *dw = to_dw_dma(dwc->chan.device);
-	u32 cfghi = DWC_CFGH_FIFO_MODE;
+	u32 cfghi = is_slave_direction(dwc->direction) ? 0 : DWC_CFGH_FIFO_MODE;
 	u32 cfglo = DWC_CFGL_CH_PRIOR(dwc->priority);
 	bool hs_polarity = dwc->dws.hs_polarity;
 
--- linux-ein-5.4.0.orig/drivers/dma/dw/of.c
+++ linux-ein-5.4.0/drivers/dma/dw/of.c
@@ -22,18 +22,21 @@
 	};
 	dma_cap_mask_t cap;
 
-	if (dma_spec->args_count != 3)
+	if (dma_spec->args_count < 3 || dma_spec->args_count > 4)
 		return NULL;
 
 	slave.src_id = dma_spec->args[0];
 	slave.dst_id = dma_spec->args[0];
 	slave.m_master = dma_spec->args[1];
 	slave.p_master = dma_spec->args[2];
+	if (dma_spec->args_count >= 4)
+		slave.channels = dma_spec->args[3];
 
 	if (WARN_ON(slave.src_id >= DW_DMA_MAX_NR_REQUESTS ||
 		    slave.dst_id >= DW_DMA_MAX_NR_REQUESTS ||
 		    slave.m_master >= dw->pdata->nr_masters ||
-		    slave.p_master >= dw->pdata->nr_masters))
+		    slave.p_master >= dw->pdata->nr_masters ||
+		    slave.channels >= BIT(dw->pdata->nr_channels)))
 		return NULL;
 
 	dma_cap_zero(cap);
--- linux-ein-5.4.0.orig/drivers/dma/dw/platform.c
+++ linux-ein-5.4.0/drivers/dma/dw/platform.c
@@ -66,7 +66,7 @@
 
 	data->chip = chip;
 
-	chip->clk = devm_clk_get(chip->dev, "hclk");
+	chip->clk = devm_clk_get_optional(chip->dev, "hclk");
 	if (IS_ERR(chip->clk))
 		return PTR_ERR(chip->clk);
 	err = clk_prepare_enable(chip->clk);
--- linux-ein-5.4.0.orig/drivers/dma/fsl-edma-common.c
+++ linux-ein-5.4.0/drivers/dma/fsl-edma-common.c
@@ -347,26 +347,28 @@
 	/*
 	 * TCD parameters are stored in struct fsl_edma_hw_tcd in little
 	 * endian format. However, we need to load the TCD registers in
-	 * big- or little-endian obeying the eDMA engine model endian.
+	 * big- or little-endian obeying the eDMA engine model endian,
+	 * and this is performed from specific edma_write functions
 	 */
 	edma_writew(edma, 0,  &regs->tcd[ch].csr);
-	edma_writel(edma, le32_to_cpu(tcd->saddr), &regs->tcd[ch].saddr);
-	edma_writel(edma, le32_to_cpu(tcd->daddr), &regs->tcd[ch].daddr);
 
-	edma_writew(edma, le16_to_cpu(tcd->attr), &regs->tcd[ch].attr);
-	edma_writew(edma, le16_to_cpu(tcd->soff), &regs->tcd[ch].soff);
+	edma_writel(edma, (s32)tcd->saddr, &regs->tcd[ch].saddr);
+	edma_writel(edma, (s32)tcd->daddr, &regs->tcd[ch].daddr);
 
-	edma_writel(edma, le32_to_cpu(tcd->nbytes), &regs->tcd[ch].nbytes);
-	edma_writel(edma, le32_to_cpu(tcd->slast), &regs->tcd[ch].slast);
+	edma_writew(edma, (s16)tcd->attr, &regs->tcd[ch].attr);
+	edma_writew(edma, tcd->soff, &regs->tcd[ch].soff);
 
-	edma_writew(edma, le16_to_cpu(tcd->citer), &regs->tcd[ch].citer);
-	edma_writew(edma, le16_to_cpu(tcd->biter), &regs->tcd[ch].biter);
-	edma_writew(edma, le16_to_cpu(tcd->doff), &regs->tcd[ch].doff);
+	edma_writel(edma, (s32)tcd->nbytes, &regs->tcd[ch].nbytes);
+	edma_writel(edma, (s32)tcd->slast, &regs->tcd[ch].slast);
 
-	edma_writel(edma, le32_to_cpu(tcd->dlast_sga),
+	edma_writew(edma, (s16)tcd->citer, &regs->tcd[ch].citer);
+	edma_writew(edma, (s16)tcd->biter, &regs->tcd[ch].biter);
+	edma_writew(edma, (s16)tcd->doff, &regs->tcd[ch].doff);
+
+	edma_writel(edma, (s32)tcd->dlast_sga,
 			&regs->tcd[ch].dlast_sga);
 
-	edma_writew(edma, le16_to_cpu(tcd->csr), &regs->tcd[ch].csr);
+	edma_writew(edma, (s16)tcd->csr, &regs->tcd[ch].csr);
 }
 
 static inline
--- linux-ein-5.4.0.orig/drivers/dma/fsl-edma-common.h
+++ linux-ein-5.4.0/drivers/dma/fsl-edma-common.h
@@ -33,7 +33,7 @@
 #define EDMA_TCD_ATTR_DSIZE_16BIT	BIT(0)
 #define EDMA_TCD_ATTR_DSIZE_32BIT	BIT(1)
 #define EDMA_TCD_ATTR_DSIZE_64BIT	(BIT(0) | BIT(1))
-#define EDMA_TCD_ATTR_DSIZE_32BYTE	(BIT(3) | BIT(0))
+#define EDMA_TCD_ATTR_DSIZE_32BYTE	(BIT(2) | BIT(0))
 #define EDMA_TCD_ATTR_SSIZE_8BIT	0
 #define EDMA_TCD_ATTR_SSIZE_16BIT	(EDMA_TCD_ATTR_DSIZE_16BIT << 8)
 #define EDMA_TCD_ATTR_SSIZE_32BIT	(EDMA_TCD_ATTR_DSIZE_32BIT << 8)
--- linux-ein-5.4.0.orig/drivers/dma/fsl-edma.c
+++ linux-ein-5.4.0/drivers/dma/fsl-edma.c
@@ -45,6 +45,13 @@
 			fsl_chan = &fsl_edma->chans[ch];
 
 			spin_lock(&fsl_chan->vchan.lock);
+
+			if (!fsl_chan->edesc) {
+				/* terminate_all called before */
+				spin_unlock(&fsl_chan->vchan.lock);
+				continue;
+			}
+
 			if (!fsl_chan->edesc->iscyclic) {
 				list_del(&fsl_chan->edesc->vdesc.node);
 				vchan_cookie_complete(&fsl_chan->edesc->vdesc);
--- linux-ein-5.4.0.orig/drivers/dma/fsl-qdma.c
+++ linux-ein-5.4.0/drivers/dma/fsl-qdma.c
@@ -304,7 +304,7 @@
 
 	vchan_dma_desc_free_list(&fsl_chan->vchan, &head);
 
-	if (!fsl_queue->comp_pool && !fsl_queue->comp_pool)
+	if (!fsl_queue->comp_pool && !fsl_queue->desc_pool)
 		return;
 
 	list_for_each_entry_safe(comp_temp, _comp_temp,
@@ -1155,6 +1155,9 @@
 		return ret;
 
 	fsl_qdma->irq_base = platform_get_irq_byname(pdev, "qdma-queue0");
+	if (fsl_qdma->irq_base < 0)
+		return fsl_qdma->irq_base;
+
 	fsl_qdma->feature = of_property_read_bool(np, "big-endian");
 	INIT_LIST_HEAD(&fsl_qdma->dma_dev.channels);
 
@@ -1181,7 +1184,11 @@
 	fsl_qdma->dma_dev.device_synchronize = fsl_qdma_synchronize;
 	fsl_qdma->dma_dev.device_terminate_all = fsl_qdma_terminate_all;
 
-	dma_set_mask(&pdev->dev, DMA_BIT_MASK(40));
+	ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(40));
+	if (ret) {
+		dev_err(&pdev->dev, "dma_set_mask failure.\n");
+		return ret;
+	}
 
 	platform_set_drvdata(pdev, fsl_qdma);
 
--- linux-ein-5.4.0.orig/drivers/dma/fsldma.c
+++ linux-ein-5.4.0/drivers/dma/fsldma.c
@@ -1214,6 +1214,7 @@
 {
 	struct fsldma_device *fdev;
 	struct device_node *child;
+	unsigned int i;
 	int err;
 
 	fdev = kzalloc(sizeof(*fdev), GFP_KERNEL);
@@ -1292,6 +1293,10 @@
 	return 0;
 
 out_free_fdev:
+	for (i = 0; i < FSL_DMA_MAX_CHANS_PER_DEVICE; i++) {
+		if (fdev->chan[i])
+			fsl_dma_chan_remove(fdev->chan[i]);
+	}
 	irq_dispose_mapping(fdev->irq);
 	iounmap(fdev->regs);
 out_free:
@@ -1314,6 +1319,7 @@
 		if (fdev->chan[i])
 			fsl_dma_chan_remove(fdev->chan[i]);
 	}
+	irq_dispose_mapping(fdev->irq);
 
 	iounmap(fdev->regs);
 	kfree(fdev);
--- linux-ein-5.4.0.orig/drivers/dma/fsldma.h
+++ linux-ein-5.4.0/drivers/dma/fsldma.h
@@ -205,10 +205,10 @@
 #else
 static u64 fsl_ioread64(const u64 __iomem *addr)
 {
-	u32 fsl_addr = lower_32_bits(addr);
-	u64 fsl_addr_hi = (u64)in_le32((u32 *)(fsl_addr + 1)) << 32;
+	u32 val_lo = in_le32((u32 __iomem *)addr);
+	u32 val_hi = in_le32((u32 __iomem *)addr + 1);
 
-	return fsl_addr_hi | in_le32((u32 *)fsl_addr);
+	return ((u64)val_hi << 32) + val_lo;
 }
 
 static void fsl_iowrite64(u64 val, u64 __iomem *addr)
@@ -219,10 +219,10 @@
 
 static u64 fsl_ioread64be(const u64 __iomem *addr)
 {
-	u32 fsl_addr = lower_32_bits(addr);
-	u64 fsl_addr_hi = (u64)in_be32((u32 *)fsl_addr) << 32;
+	u32 val_hi = in_be32((u32 __iomem *)addr);
+	u32 val_lo = in_be32((u32 __iomem *)addr + 1);
 
-	return fsl_addr_hi | in_be32((u32 *)(fsl_addr + 1));
+	return ((u64)val_hi << 32) + val_lo;
 }
 
 static void fsl_iowrite64be(u64 val, u64 __iomem *addr)
--- linux-ein-5.4.0.orig/drivers/dma/hisi_dma.c
+++ linux-ein-5.4.0/drivers/dma/hisi_dma.c
@@ -0,0 +1,611 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* Copyright(c) 2019 HiSilicon Limited. */
+#include <linux/bitfield.h>
+#include <linux/dmaengine.h>
+#include <linux/init.h>
+#include <linux/iopoll.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+#include <linux/spinlock.h>
+#include "virt-dma.h"
+
+#define HISI_DMA_SQ_BASE_L		0x0
+#define HISI_DMA_SQ_BASE_H		0x4
+#define HISI_DMA_SQ_DEPTH		0x8
+#define HISI_DMA_SQ_TAIL_PTR		0xc
+#define HISI_DMA_CQ_BASE_L		0x10
+#define HISI_DMA_CQ_BASE_H		0x14
+#define HISI_DMA_CQ_DEPTH		0x18
+#define HISI_DMA_CQ_HEAD_PTR		0x1c
+#define HISI_DMA_CTRL0			0x20
+#define HISI_DMA_CTRL0_QUEUE_EN_S	0
+#define HISI_DMA_CTRL0_QUEUE_PAUSE_S	4
+#define HISI_DMA_CTRL1			0x24
+#define HISI_DMA_CTRL1_QUEUE_RESET_S	0
+#define HISI_DMA_Q_FSM_STS		0x30
+#define HISI_DMA_FSM_STS_MASK		GENMASK(3, 0)
+#define HISI_DMA_INT_STS		0x40
+#define HISI_DMA_INT_STS_MASK		GENMASK(12, 0)
+#define HISI_DMA_INT_MSK		0x44
+#define HISI_DMA_MODE			0x217c
+#define HISI_DMA_OFFSET			0x100
+
+#define HISI_DMA_MSI_NUM		30
+#define HISI_DMA_CHAN_NUM		30
+#define HISI_DMA_Q_DEPTH_VAL		1024
+
+#define PCI_BAR_2			2
+
+enum hisi_dma_mode {
+	EP = 0,
+	RC,
+};
+
+enum hisi_dma_chan_status {
+	DISABLE = -1,
+	IDLE = 0,
+	RUN,
+	CPL,
+	PAUSE,
+	HALT,
+	ABORT,
+	WAIT,
+	BUFFCLR,
+};
+
+struct hisi_dma_sqe {
+	__le32 dw0;
+#define OPCODE_MASK			GENMASK(3, 0)
+#define OPCODE_SMALL_PACKAGE		0x1
+#define OPCODE_M2M			0x4
+#define LOCAL_IRQ_EN			BIT(8)
+#define ATTR_SRC_MASK			GENMASK(14, 12)
+	__le32 dw1;
+	__le32 dw2;
+#define ATTR_DST_MASK			GENMASK(26, 24)
+	__le32 length;
+	__le64 src_addr;
+	__le64 dst_addr;
+};
+
+struct hisi_dma_cqe {
+	__le32 rsv0;
+	__le32 rsv1;
+	__le16 sq_head;
+	__le16 rsv2;
+	__le16 rsv3;
+	__le16 w0;
+#define STATUS_MASK			GENMASK(15, 1)
+#define STATUS_SUCC			0x0
+#define VALID_BIT			BIT(0)
+};
+
+struct hisi_dma_desc {
+	struct virt_dma_desc vd;
+	struct hisi_dma_sqe sqe;
+};
+
+struct hisi_dma_chan {
+	struct virt_dma_chan vc;
+	struct hisi_dma_dev *hdma_dev;
+	struct hisi_dma_sqe *sq;
+	struct hisi_dma_cqe *cq;
+	dma_addr_t sq_dma;
+	dma_addr_t cq_dma;
+	u32 sq_tail;
+	u32 cq_head;
+	u32 qp_num;
+	enum hisi_dma_chan_status status;
+	struct hisi_dma_desc *desc;
+};
+
+struct hisi_dma_dev {
+	struct pci_dev *pdev;
+	void __iomem *base;
+	struct dma_device dma_dev;
+	u32 chan_num;
+	u32 chan_depth;
+	struct hisi_dma_chan chan[];
+};
+
+static inline struct hisi_dma_chan *to_hisi_dma_chan(struct dma_chan *c)
+{
+	return container_of(c, struct hisi_dma_chan, vc.chan);
+}
+
+static inline struct hisi_dma_desc *to_hisi_dma_desc(struct virt_dma_desc *vd)
+{
+	return container_of(vd, struct hisi_dma_desc, vd);
+}
+
+static inline void hisi_dma_chan_write(void __iomem *base, u32 reg, u32 index,
+				       u32 val)
+{
+	writel_relaxed(val, base + reg + index * HISI_DMA_OFFSET);
+}
+
+static inline void hisi_dma_update_bit(void __iomem *addr, u32 pos, bool val)
+{
+	u32 tmp;
+
+	tmp = readl_relaxed(addr);
+	tmp = val ? tmp | BIT(pos) : tmp & ~BIT(pos);
+	writel_relaxed(tmp, addr);
+}
+
+static void hisi_dma_free_irq_vectors(void *data)
+{
+	pci_free_irq_vectors(data);
+}
+
+static void hisi_dma_pause_dma(struct hisi_dma_dev *hdma_dev, u32 index,
+			       bool pause)
+{
+	void __iomem *addr = hdma_dev->base + HISI_DMA_CTRL0 + index *
+			     HISI_DMA_OFFSET;
+
+	hisi_dma_update_bit(addr, HISI_DMA_CTRL0_QUEUE_PAUSE_S, pause);
+}
+
+static void hisi_dma_enable_dma(struct hisi_dma_dev *hdma_dev, u32 index,
+				bool enable)
+{
+	void __iomem *addr = hdma_dev->base + HISI_DMA_CTRL0 + index *
+			     HISI_DMA_OFFSET;
+
+	hisi_dma_update_bit(addr, HISI_DMA_CTRL0_QUEUE_EN_S, enable);
+}
+
+static void hisi_dma_mask_irq(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_INT_MSK, qp_index,
+			    HISI_DMA_INT_STS_MASK);
+}
+
+static void hisi_dma_unmask_irq(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	void __iomem *base = hdma_dev->base;
+
+	hisi_dma_chan_write(base, HISI_DMA_INT_STS, qp_index,
+			    HISI_DMA_INT_STS_MASK);
+	hisi_dma_chan_write(base, HISI_DMA_INT_MSK, qp_index, 0);
+}
+
+static void hisi_dma_do_reset(struct hisi_dma_dev *hdma_dev, u32 index)
+{
+	void __iomem *addr = hdma_dev->base + HISI_DMA_CTRL1 + index *
+			     HISI_DMA_OFFSET;
+
+	hisi_dma_update_bit(addr, HISI_DMA_CTRL1_QUEUE_RESET_S, 1);
+}
+
+static void hisi_dma_reset_qp_point(struct hisi_dma_dev *hdma_dev, u32 index)
+{
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_SQ_TAIL_PTR, index, 0);
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_CQ_HEAD_PTR, index, 0);
+}
+
+static void hisi_dma_reset_hw_chan(struct hisi_dma_chan *chan)
+{
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+	u32 index = chan->qp_num, tmp;
+	int ret;
+
+	hisi_dma_pause_dma(hdma_dev, index, true);
+	hisi_dma_enable_dma(hdma_dev, index, false);
+	hisi_dma_mask_irq(hdma_dev, index);
+
+	ret = readl_relaxed_poll_timeout(hdma_dev->base +
+		HISI_DMA_Q_FSM_STS + index * HISI_DMA_OFFSET, tmp,
+		FIELD_GET(HISI_DMA_FSM_STS_MASK, tmp) != RUN, 10, 1000);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "disable channel timeout!\n");
+		WARN_ON(1);
+	}
+
+	hisi_dma_do_reset(hdma_dev, index);
+	hisi_dma_reset_qp_point(hdma_dev, index);
+	hisi_dma_pause_dma(hdma_dev, index, false);
+	hisi_dma_enable_dma(hdma_dev, index, true);
+	hisi_dma_unmask_irq(hdma_dev, index);
+
+	ret = readl_relaxed_poll_timeout(hdma_dev->base +
+		HISI_DMA_Q_FSM_STS + index * HISI_DMA_OFFSET, tmp,
+		FIELD_GET(HISI_DMA_FSM_STS_MASK, tmp) == IDLE, 10, 1000);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "reset channel timeout!\n");
+		WARN_ON(1);
+	}
+}
+
+static void hisi_dma_free_chan_resources(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+
+	hisi_dma_reset_hw_chan(chan);
+	vchan_free_chan_resources(&chan->vc);
+
+	memset(chan->sq, 0, sizeof(struct hisi_dma_sqe) * hdma_dev->chan_depth);
+	memset(chan->cq, 0, sizeof(struct hisi_dma_cqe) * hdma_dev->chan_depth);
+	chan->sq_tail = 0;
+	chan->cq_head = 0;
+	chan->status = DISABLE;
+}
+
+static void hisi_dma_desc_free(struct virt_dma_desc *vd)
+{
+	kfree(to_hisi_dma_desc(vd));
+}
+
+static struct dma_async_tx_descriptor *
+hisi_dma_prep_dma_memcpy(struct dma_chan *c, dma_addr_t dst, dma_addr_t src,
+			 size_t len, unsigned long flags)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	struct hisi_dma_desc *desc;
+
+	desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+	if (!desc)
+		return NULL;
+
+	desc->sqe.length = cpu_to_le32(len);
+	desc->sqe.src_addr = cpu_to_le64(src);
+	desc->sqe.dst_addr = cpu_to_le64(dst);
+
+	return vchan_tx_prep(&chan->vc, &desc->vd, flags);
+}
+
+static enum dma_status
+hisi_dma_tx_status(struct dma_chan *c, dma_cookie_t cookie,
+		   struct dma_tx_state *txstate)
+{
+	return dma_cookie_status(c, cookie, txstate);
+}
+
+static void hisi_dma_start_transfer(struct hisi_dma_chan *chan)
+{
+	struct hisi_dma_sqe *sqe = chan->sq + chan->sq_tail;
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+	struct hisi_dma_desc *desc;
+	struct virt_dma_desc *vd;
+
+	vd = vchan_next_desc(&chan->vc);
+	if (!vd) {
+		dev_err(&hdma_dev->pdev->dev, "no issued task!\n");
+		chan->desc = NULL;
+		return;
+	}
+	list_del(&vd->node);
+	desc = to_hisi_dma_desc(vd);
+	chan->desc = desc;
+
+	memcpy(sqe, &desc->sqe, sizeof(struct hisi_dma_sqe));
+
+	/* update other field in sqe */
+	sqe->dw0 = cpu_to_le32(FIELD_PREP(OPCODE_MASK, OPCODE_M2M));
+	sqe->dw0 |= cpu_to_le32(LOCAL_IRQ_EN);
+
+	/* make sure data has been updated in sqe */
+	wmb();
+
+	/* update sq tail, point to new sqe position */
+	chan->sq_tail = (chan->sq_tail + 1) % hdma_dev->chan_depth;
+
+	/* update sq_tail to trigger a new task */
+	hisi_dma_chan_write(hdma_dev->base, HISI_DMA_SQ_TAIL_PTR, chan->qp_num,
+			    chan->sq_tail);
+}
+
+static void hisi_dma_issue_pending(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	unsigned long flags;
+
+	spin_lock_irqsave(&chan->vc.lock, flags);
+
+	if (vchan_issue_pending(&chan->vc))
+		hisi_dma_start_transfer(chan);
+
+	spin_unlock_irqrestore(&chan->vc.lock, flags);
+}
+
+static int hisi_dma_terminate_all(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+	unsigned long flags;
+	LIST_HEAD(head);
+
+	spin_lock_irqsave(&chan->vc.lock, flags);
+
+	hisi_dma_pause_dma(chan->hdma_dev, chan->qp_num, true);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vd);
+		chan->desc = NULL;
+	}
+
+	vchan_get_all_descriptors(&chan->vc, &head);
+
+	spin_unlock_irqrestore(&chan->vc.lock, flags);
+
+	vchan_dma_desc_free_list(&chan->vc, &head);
+	hisi_dma_pause_dma(chan->hdma_dev, chan->qp_num, false);
+
+	return 0;
+}
+
+static void hisi_dma_synchronize(struct dma_chan *c)
+{
+	struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
+
+	vchan_synchronize(&chan->vc);
+}
+
+static int hisi_dma_alloc_qps_mem(struct hisi_dma_dev *hdma_dev)
+{
+	size_t sq_size = sizeof(struct hisi_dma_sqe) * hdma_dev->chan_depth;
+	size_t cq_size = sizeof(struct hisi_dma_cqe) * hdma_dev->chan_depth;
+	struct device *dev = &hdma_dev->pdev->dev;
+	struct hisi_dma_chan *chan;
+	int i;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		chan = &hdma_dev->chan[i];
+		chan->sq = dmam_alloc_coherent(dev, sq_size, &chan->sq_dma,
+					       GFP_KERNEL);
+		if (!chan->sq)
+			return -ENOMEM;
+
+		chan->cq = dmam_alloc_coherent(dev, cq_size, &chan->cq_dma,
+					       GFP_KERNEL);
+		if (!chan->cq)
+			return -ENOMEM;
+	}
+
+	return 0;
+}
+
+static void hisi_dma_init_hw_qp(struct hisi_dma_dev *hdma_dev, u32 index)
+{
+	struct hisi_dma_chan *chan = &hdma_dev->chan[index];
+	u32 hw_depth = hdma_dev->chan_depth - 1;
+	void __iomem *base = hdma_dev->base;
+
+	/* set sq, cq base */
+	hisi_dma_chan_write(base, HISI_DMA_SQ_BASE_L, index,
+			    lower_32_bits(chan->sq_dma));
+	hisi_dma_chan_write(base, HISI_DMA_SQ_BASE_H, index,
+			    upper_32_bits(chan->sq_dma));
+	hisi_dma_chan_write(base, HISI_DMA_CQ_BASE_L, index,
+			    lower_32_bits(chan->cq_dma));
+	hisi_dma_chan_write(base, HISI_DMA_CQ_BASE_H, index,
+			    upper_32_bits(chan->cq_dma));
+
+	/* set sq, cq depth */
+	hisi_dma_chan_write(base, HISI_DMA_SQ_DEPTH, index, hw_depth);
+	hisi_dma_chan_write(base, HISI_DMA_CQ_DEPTH, index, hw_depth);
+
+	/* init sq tail and cq head */
+	hisi_dma_chan_write(base, HISI_DMA_SQ_TAIL_PTR, index, 0);
+	hisi_dma_chan_write(base, HISI_DMA_CQ_HEAD_PTR, index, 0);
+}
+
+static void hisi_dma_enable_qp(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	hisi_dma_init_hw_qp(hdma_dev, qp_index);
+	hisi_dma_unmask_irq(hdma_dev, qp_index);
+	hisi_dma_enable_dma(hdma_dev, qp_index, true);
+}
+
+static void hisi_dma_disable_qp(struct hisi_dma_dev *hdma_dev, u32 qp_index)
+{
+	hisi_dma_reset_hw_chan(&hdma_dev->chan[qp_index]);
+}
+
+static void hisi_dma_enable_qps(struct hisi_dma_dev *hdma_dev)
+{
+	int i;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		hdma_dev->chan[i].qp_num = i;
+		hdma_dev->chan[i].hdma_dev = hdma_dev;
+		hdma_dev->chan[i].vc.desc_free = hisi_dma_desc_free;
+		vchan_init(&hdma_dev->chan[i].vc, &hdma_dev->dma_dev);
+		hisi_dma_enable_qp(hdma_dev, i);
+	}
+}
+
+static void hisi_dma_disable_qps(struct hisi_dma_dev *hdma_dev)
+{
+	int i;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		hisi_dma_disable_qp(hdma_dev, i);
+		tasklet_kill(&hdma_dev->chan[i].vc.task);
+	}
+}
+
+static irqreturn_t hisi_dma_irq(int irq, void *data)
+{
+	struct hisi_dma_chan *chan = data;
+	struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
+	struct hisi_dma_desc *desc;
+	struct hisi_dma_cqe *cqe;
+	unsigned long flags;
+
+	spin_lock_irqsave(&chan->vc.lock, flags);
+
+	desc = chan->desc;
+	cqe = chan->cq + chan->cq_head;
+	if (desc) {
+		if (FIELD_GET(STATUS_MASK, cqe->w0) == STATUS_SUCC) {
+			chan->cq_head = (chan->cq_head + 1) %
+					hdma_dev->chan_depth;
+			hisi_dma_chan_write(hdma_dev->base,
+					    HISI_DMA_CQ_HEAD_PTR, chan->qp_num,
+					    chan->cq_head);
+			vchan_cookie_complete(&desc->vd);
+		} else {
+			dev_err(&hdma_dev->pdev->dev, "task error!\n");
+		}
+
+		chan->desc = NULL;
+	}
+
+	spin_unlock_irqrestore(&chan->vc.lock, flags);
+
+	return IRQ_HANDLED;
+}
+
+static int hisi_dma_request_qps_irq(struct hisi_dma_dev *hdma_dev)
+{
+	struct pci_dev *pdev = hdma_dev->pdev;
+	int i, ret;
+
+	for (i = 0; i < hdma_dev->chan_num; i++) {
+		ret = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, i),
+				       hisi_dma_irq, IRQF_SHARED, "hisi_dma",
+				       &hdma_dev->chan[i]);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+/* This function enables all hw channels in a device */
+static int hisi_dma_enable_hw_channels(struct hisi_dma_dev *hdma_dev)
+{
+	int ret;
+
+	ret = hisi_dma_alloc_qps_mem(hdma_dev);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "fail to allocate qp memory!\n");
+		return ret;
+	}
+
+	ret = hisi_dma_request_qps_irq(hdma_dev);
+	if (ret) {
+		dev_err(&hdma_dev->pdev->dev, "fail to request qp irq!\n");
+		return ret;
+	}
+
+	hisi_dma_enable_qps(hdma_dev);
+
+	return 0;
+}
+
+static void hisi_dma_disable_hw_channels(void *data)
+{
+	hisi_dma_disable_qps(data);
+}
+
+static void hisi_dma_set_mode(struct hisi_dma_dev *hdma_dev,
+			      enum hisi_dma_mode mode)
+{
+	writel_relaxed(mode == RC ? 1 : 0, hdma_dev->base + HISI_DMA_MODE);
+}
+
+static int hisi_dma_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	struct device *dev = &pdev->dev;
+	struct hisi_dma_dev *hdma_dev;
+	struct dma_device *dma_dev;
+	size_t dev_size;
+	int ret;
+
+	ret = pcim_enable_device(pdev);
+	if (ret) {
+		dev_err(dev, "failed to enable device mem!\n");
+		return ret;
+	}
+
+	ret = pcim_iomap_regions(pdev, 1 << PCI_BAR_2, pci_name(pdev));
+	if (ret) {
+		dev_err(dev, "failed to remap I/O region!\n");
+		return ret;
+	}
+
+	ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
+	if (ret)
+		return ret;
+
+	ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
+	if (ret)
+		return ret;
+
+	dev_size = sizeof(struct hisi_dma_chan) * HISI_DMA_CHAN_NUM +
+		   sizeof(*hdma_dev);
+	hdma_dev = devm_kzalloc(dev, dev_size, GFP_KERNEL);
+	if (!hdma_dev)
+		return -EINVAL;
+
+	hdma_dev->base = pcim_iomap_table(pdev)[PCI_BAR_2];
+	hdma_dev->pdev = pdev;
+	hdma_dev->chan_num = HISI_DMA_CHAN_NUM;
+	hdma_dev->chan_depth = HISI_DMA_Q_DEPTH_VAL;
+
+	pci_set_drvdata(pdev, hdma_dev);
+	pci_set_master(pdev);
+
+	ret = pci_alloc_irq_vectors(pdev, HISI_DMA_MSI_NUM, HISI_DMA_MSI_NUM,
+				    PCI_IRQ_MSI);
+	if (ret < 0) {
+		dev_err(dev, "Failed to allocate MSI vectors!\n");
+		return ret;
+	}
+
+	ret = devm_add_action_or_reset(dev, hisi_dma_free_irq_vectors, pdev);
+	if (ret)
+		return ret;
+
+	dma_dev = &hdma_dev->dma_dev;
+	dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
+	dma_dev->device_free_chan_resources = hisi_dma_free_chan_resources;
+	dma_dev->device_prep_dma_memcpy = hisi_dma_prep_dma_memcpy;
+	dma_dev->device_tx_status = hisi_dma_tx_status;
+	dma_dev->device_issue_pending = hisi_dma_issue_pending;
+	dma_dev->device_terminate_all = hisi_dma_terminate_all;
+	dma_dev->device_synchronize = hisi_dma_synchronize;
+	dma_dev->directions = BIT(DMA_MEM_TO_MEM);
+	dma_dev->dev = dev;
+	INIT_LIST_HEAD(&dma_dev->channels);
+
+	hisi_dma_set_mode(hdma_dev, RC);
+
+	ret = hisi_dma_enable_hw_channels(hdma_dev);
+	if (ret < 0) {
+		dev_err(dev, "failed to enable hw channel!\n");
+		return ret;
+	}
+
+	ret = devm_add_action_or_reset(dev, hisi_dma_disable_hw_channels,
+				       hdma_dev);
+	if (ret)
+		return ret;
+
+	ret = dmaenginem_async_device_register(dma_dev);
+	if (ret < 0)
+		dev_err(dev, "failed to register device!\n");
+
+	return ret;
+}
+
+static const struct pci_device_id hisi_dma_pci_tbl[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_HUAWEI, 0xa122) },
+	{ 0, }
+};
+
+static struct pci_driver hisi_dma_pci_driver = {
+	.name		= "hisi_dma",
+	.id_table	= hisi_dma_pci_tbl,
+	.probe		= hisi_dma_probe,
+};
+
+module_pci_driver(hisi_dma_pci_driver);
+
+MODULE_AUTHOR("Zhou Wang <wangzhou1@hisilicon.com>");
+MODULE_AUTHOR("Zhenfa Qiu <qiuzhenfa@hisilicon.com>");
+MODULE_DESCRIPTION("HiSilicon Kunpeng DMA controller driver");
+MODULE_LICENSE("GPL v2");
+MODULE_DEVICE_TABLE(pci, hisi_dma_pci_tbl);
--- linux-ein-5.4.0.orig/drivers/dma/hsu/pci.c
+++ linux-ein-5.4.0/drivers/dma/hsu/pci.c
@@ -26,22 +26,12 @@
 static irqreturn_t hsu_pci_irq(int irq, void *dev)
 {
 	struct hsu_dma_chip *chip = dev;
-	struct pci_dev *pdev = to_pci_dev(chip->dev);
 	u32 dmaisr;
 	u32 status;
 	unsigned short i;
 	int ret = 0;
 	int err;
 
-	/*
-	 * On Intel Tangier B0 and Anniedale the interrupt line, disregarding
-	 * to have different numbers, is shared between HSU DMA and UART IPs.
-	 * Thus on such SoCs we are expecting that IRQ handler is called in
-	 * UART driver only.
-	 */
-	if (pdev->device == PCI_DEVICE_ID_INTEL_MRFLD_HSU_DMA)
-		return IRQ_HANDLED;
-
 	dmaisr = readl(chip->regs + HSU_PCI_DMAISR);
 	for (i = 0; i < chip->hsu->nr_channels; i++) {
 		if (dmaisr & 0x1) {
@@ -105,6 +95,17 @@
 	if (ret)
 		goto err_register_irq;
 
+	/*
+	 * On Intel Tangier B0 and Anniedale the interrupt line, disregarding
+	 * to have different numbers, is shared between HSU DMA and UART IPs.
+	 * Thus on such SoCs we are expecting that IRQ handler is called in
+	 * UART driver only. Instead of handling the spurious interrupt
+	 * from HSU DMA here and waste CPU time and delay HSU UART interrupt
+	 * handling, disable the interrupt entirely.
+	 */
+	if (pdev->device == PCI_DEVICE_ID_INTEL_MRFLD_HSU_DMA)
+		disable_irq_nosync(chip->irq);
+
 	pci_set_drvdata(pdev, chip);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/dma/imx-dma.c
+++ linux-ein-5.4.0/drivers/dma/imx-dma.c
@@ -832,6 +832,8 @@
 		dma_length += sg_dma_len(sg);
 	}
 
+	imxdma_config_write(chan, &imxdmac->config, direction);
+
 	switch (imxdmac->word_size) {
 	case DMA_SLAVE_BUSWIDTH_4_BYTES:
 		if (sg_dma_len(sgl) & 3 || sgl->dma_address & 3)
--- linux-ein-5.4.0.orig/drivers/dma/imx-sdma.c
+++ linux-ein-5.4.0/drivers/dma/imx-sdma.c
@@ -8,7 +8,8 @@
 //
 // Based on code from Freescale:
 //
-// Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
+// Copyright 2004-2016 Freescale Semiconductor, Inc. All Rights Reserved.
+// Copyright 2018 NXP.
 
 #include <linux/init.h>
 #include <linux/iopoll.h>
@@ -23,10 +24,12 @@
 #include <linux/semaphore.h>
 #include <linux/spinlock.h>
 #include <linux/device.h>
+#include <linux/genalloc.h>
 #include <linux/dma-mapping.h>
 #include <linux/firmware.h>
 #include <linux/slab.h>
 #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
 #include <linux/dmaengine.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
@@ -74,6 +77,9 @@
 #define SDMA_CHNENBL0_IMX35	0x200
 #define SDMA_CHNENBL0_IMX31	0x080
 #define SDMA_CHNPRI_0		0x100
+#define SDMA_DONE0_CONFIG	0x1000
+#define SDMA_DONE0_CONFIG_DONE_SEL	0x7
+#define SDMA_DONE0_CONFIG_DONE_DIS	0x6
 
 /*
  * Buffer descriptor status values.
@@ -168,6 +174,8 @@
 #define SDMA_WATERMARK_LEVEL_SPDIF	BIT(10)
 #define SDMA_WATERMARK_LEVEL_SP		BIT(11)
 #define SDMA_WATERMARK_LEVEL_DP		BIT(12)
+#define SDMA_WATERMARK_LEVEL_SD		BIT(13)
+#define SDMA_WATERMARK_LEVEL_DD		BIT(14)
 #define SDMA_WATERMARK_LEVEL_HWML	(0xFF << 16)
 #define SDMA_WATERMARK_LEVEL_LWE	BIT(28)
 #define SDMA_WATERMARK_LEVEL_HWE	BIT(29)
@@ -175,12 +183,17 @@
 
 #define SDMA_DMA_BUSWIDTHS	(BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | \
 				 BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | \
+				 BIT(DMA_SLAVE_BUSWIDTH_3_BYTES) | \
 				 BIT(DMA_SLAVE_BUSWIDTH_4_BYTES))
 
 #define SDMA_DMA_DIRECTIONS	(BIT(DMA_DEV_TO_MEM) | \
 				 BIT(DMA_MEM_TO_DEV) | \
 				 BIT(DMA_DEV_TO_DEV))
 
+#define SDMA_WATERMARK_LEVEL_FIFOS_OFF	12
+#define SDMA_WATERMARK_LEVEL_SW_DONE	BIT(23)
+#define SDMA_WATERMARK_LEVEL_SW_DONE_SEL_OFF 24
+
 /*
  * Mode/Count of data node descriptors - IPCv2
  */
@@ -360,6 +373,7 @@
 struct sdma_channel {
 	struct virt_dma_chan		vc;
 	struct sdma_desc		*desc;
+	struct list_head                terminated_node;
 	struct sdma_engine		*sdma;
 	unsigned int			channel;
 	enum dma_transfer_direction		direction;
@@ -377,9 +391,14 @@
 	unsigned long			watermark_level;
 	u32				shp_addr, per_addr;
 	enum dma_status			status;
-	bool				context_loaded;
 	struct imx_dma_data		data;
 	struct work_struct		terminate_worker;
+	bool				is_ram_script;
+	bool				src_dualfifo;
+	bool				dst_dualfifo;
+	unsigned int			fifo_num;
+	bool				sw_done;
+	u32				sw_done_sel;
 };
 
 #define IMX_DMA_SG_LOOP		BIT(0)
@@ -389,6 +408,15 @@
 #define MXC_SDMA_MIN_PRIORITY 1
 #define MXC_SDMA_MAX_PRIORITY 7
 
+/*
+ * 0x78(SDMA_XTRIG_CONF2+4)~0x100(SDMA_CHNPRI_O) registers are reserved and
+ * can't be accessed. Skip these register touch in suspend/resume. Also below
+ * two macros are only used on i.mx6sx.
+ */
+#define MXC_SDMA_RESERVED_REG (SDMA_CHNPRI_0 - SDMA_XTRIG_CONF2 - 4)
+#define MXC_SDMA_SAVED_REG_NUM (((SDMA_CHNENBL0_IMX35 + 4 * 48) - \
+				MXC_SDMA_RESERVED_REG) / 4)
+
 #define SDMA_FIRMWARE_MAGIC 0x414d4453
 
 /**
@@ -420,6 +448,15 @@
 	int num_events;
 	struct sdma_script_start_addrs	*script_addrs;
 	bool check_ratio;
+	/*
+	 * ecspi ERR009165 fixed should be done in sdma script
+	 * and it be fixed in soc from i.mx6ul.
+	 * please get more information from below link:
+	 * https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf
+	 */
+	bool ecspi_fixed;
+	bool has_done0;
+	bool pm_runtime;
 };
 
 struct sdma_engine {
@@ -427,9 +464,14 @@
 	struct device_dma_parameters	dma_parms;
 	struct sdma_channel		channel[MAX_DMA_CHANNELS];
 	struct sdma_channel_control	*channel_control;
+	u32				save_regs[MXC_SDMA_SAVED_REG_NUM];
+	u32				save_done0_regs[2];
+	const char			*fw_name;
 	void __iomem			*regs;
 	struct sdma_context_data	*context;
 	dma_addr_t			context_phys;
+	dma_addr_t			ccb_phys;
+	bool				is_on;
 	struct dma_device		dma_device;
 	struct clk			*clk_ipg;
 	struct clk			*clk_ahb;
@@ -444,12 +486,21 @@
 	struct sdma_buffer_descriptor	*bd0;
 	/* clock ratio for AHB:SDMA core. 1:1 is 1, 2:1 is 0*/
 	bool				clk_ratio;
+	struct gen_pool			*iram_pool;
+	bool				fw_loaded;
+	u32				fw_fail;
+	unsigned short			ram_code_start;
 };
 
 static int sdma_config_write(struct dma_chan *chan,
 		       struct dma_slave_config *dmaengine_cfg,
 		       enum dma_transfer_direction direction);
 
+static int sdma_get_firmware(struct sdma_engine *sdma,
+		const char *fw_name);
+static int sdma_get_firmware_wait(struct sdma_engine *sdma,
+		const char *fw_name);
+
 static struct sdma_driver_data sdma_imx31 = {
 	.chnenbl0 = SDMA_CHNENBL0_IMX31,
 	.num_events = 32,
@@ -540,6 +591,31 @@
 	.script_addrs = &sdma_script_imx6q,
 };
 
+static struct sdma_script_start_addrs sdma_script_imx6sx = {
+	.ap_2_ap_addr = 642,
+	.uart_2_mcu_addr = 817,
+	.mcu_2_app_addr = 747,
+	.uartsh_2_mcu_addr = 1032,
+	.mcu_2_shp_addr = 960,
+	.app_2_mcu_addr = 683,
+	.shp_2_mcu_addr = 891,
+	.spdif_2_mcu_addr = 1100,
+	.mcu_2_spdif_addr = 1134,
+};
+
+static struct sdma_driver_data sdma_imx6sx = {
+	.chnenbl0 = SDMA_CHNENBL0_IMX35,
+	.num_events = 48,
+	.script_addrs = &sdma_script_imx6sx,
+};
+
+static struct sdma_driver_data sdma_imx6ul = {
+	.chnenbl0 = SDMA_CHNENBL0_IMX35,
+	.num_events = 48,
+	.script_addrs = &sdma_script_imx6sx,
+	.ecspi_fixed = true,
+};
+
 static struct sdma_script_start_addrs sdma_script_imx7d = {
 	.ap_2_ap_addr = 644,
 	.uart_2_mcu_addr = 819,
@@ -565,6 +641,16 @@
 	.check_ratio = 1,
 };
 
+static struct sdma_driver_data sdma_imx8mp = {
+	.chnenbl0 = SDMA_CHNENBL0_IMX35,
+	.num_events = 48,
+	.script_addrs = &sdma_script_imx7d,
+	.check_ratio = 1,
+	.ecspi_fixed = true,
+	.has_done0 = true,
+/*	.pm_runtime = true, */
+};
+
 static const struct platform_device_id sdma_devtypes[] = {
 	{
 		.name = "imx25-sdma",
@@ -585,12 +671,21 @@
 		.name = "imx6q-sdma",
 		.driver_data = (unsigned long)&sdma_imx6q,
 	}, {
+		.name = "imx6sx-sdma",
+		.driver_data = (unsigned long)&sdma_imx6sx,
+	}, {
 		.name = "imx7d-sdma",
 		.driver_data = (unsigned long)&sdma_imx7d,
 	}, {
+		.name = "imx6ul-sdma",
+		.driver_data = (unsigned long)&sdma_imx6ul,
+	}, {
 		.name = "imx8mq-sdma",
 		.driver_data = (unsigned long)&sdma_imx8mq,
 	}, {
+		.name = "imx8mp-sdma",
+		.driver_data = (unsigned long)&sdma_imx8mp,
+	}, {
 		/* sentinel */
 	}
 };
@@ -603,8 +698,11 @@
 	{ .compatible = "fsl,imx35-sdma", .data = &sdma_imx35, },
 	{ .compatible = "fsl,imx31-sdma", .data = &sdma_imx31, },
 	{ .compatible = "fsl,imx25-sdma", .data = &sdma_imx25, },
+	{ .compatible = "fsl,imx6sx-sdma", .data = &sdma_imx6sx, },
 	{ .compatible = "fsl,imx7d-sdma", .data = &sdma_imx7d, },
+	{ .compatible = "fsl,imx6ul-sdma", .data = &sdma_imx6ul, },
 	{ .compatible = "fsl,imx8mq-sdma", .data = &sdma_imx8mq, },
+	{ .compatible = "fsl,imx8mp-sdma", .data = &sdma_imx8mp, },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, sdma_dt_ids);
@@ -656,6 +754,11 @@
 	return 0;
 }
 
+static int is_sdma_channel_enabled(struct sdma_engine *sdma, int channel)
+{
+	return !!(readl(sdma->regs + SDMA_H_STATSTOP) & BIT(channel));
+}
+
 static void sdma_enable_channel(struct sdma_engine *sdma, int channel)
 {
 	writel(BIT(channel), sdma->regs + SDMA_H_START);
@@ -672,7 +775,7 @@
 	sdma_enable_channel(sdma, 0);
 
 	ret = readl_relaxed_poll_timeout_atomic(sdma->regs + SDMA_H_STATSTOP,
-						reg, !(reg & 1), 1, 500);
+						reg, !(reg & 1), 1, 5000);
 	if (ret)
 		dev_err(sdma->dev, "Timeout waiting for CH0 ready\n");
 
@@ -695,10 +798,10 @@
 	int ret;
 	unsigned long flags;
 
-	buf_virt = dma_alloc_coherent(sdma->dev, size, &buf_phys, GFP_KERNEL);
-	if (!buf_virt) {
+	buf_virt = dma_alloc_coherent(sdma->dev, size, &buf_phys,
+					      GFP_KERNEL);
+	if (!buf_virt)
 		return -ENOMEM;
-	}
 
 	spin_lock_irqsave(&sdma->channel_0_lock, flags);
 
@@ -729,6 +832,21 @@
 	val = readl_relaxed(sdma->regs + chnenbl);
 	__set_bit(channel, &val);
 	writel_relaxed(val, sdma->regs + chnenbl);
+
+	/* Set SDMA_DONEx_CONFIG is sw_done enabled */
+	if (sdmac->sw_done) {
+		u32 offset = SDMA_DONE0_CONFIG + sdmac->sw_done_sel / 4;
+		u32 done_sel = SDMA_DONE0_CONFIG_DONE_SEL +
+				((sdmac->sw_done_sel % 4) << 3);
+		u32 sw_done_dis = SDMA_DONE0_CONFIG_DONE_DIS +
+				((sdmac->sw_done_sel % 4) << 3);
+
+		val = readl_relaxed(sdma->regs + offset);
+		__set_bit(done_sel, &val);
+		__clear_bit(sw_done_dis, &val);
+		writel_relaxed(val, sdma->regs + offset);
+	}
+
 }
 
 static void sdma_event_disable(struct sdma_channel *sdmac, unsigned int event)
@@ -802,7 +920,6 @@
 		*/
 
 		desc->chn_real_count = bd->mode.count;
-		bd->mode.status |= BD_DONE;
 		bd->mode.count = desc->period_len;
 		desc->buf_ptail = desc->buf_tail;
 		desc->buf_tail = (desc->buf_tail + 1) % desc->num_bd;
@@ -817,9 +934,21 @@
 		dmaengine_desc_get_callback_invoke(&desc->vd.tx, NULL);
 		spin_lock(&sdmac->vc.lock);
 
+		/* Assign buffer ownership to SDMA */
+		bd->mode.status |= BD_DONE;
+
 		if (error)
 			sdmac->status = old_status;
 	}
+
+	/*
+	 * SDMA stops cyclic channel when DMA request triggers a channel and no SDMA
+	 * owned buffer is available (i.e. BD_DONE was set too late).
+	 */
+	if (sdmac->desc && !is_sdma_channel_enabled(sdmac->sdma, sdmac->channel)) {
+		dev_warn(sdmac->sdma->dev, "restart cyclic channel %d\n", sdmac->channel);
+		sdma_enable_channel(sdmac->sdma, sdmac->channel);
+	}
 }
 
 static void mxc_sdma_handle_channel_normal(struct sdma_channel *data)
@@ -852,6 +981,9 @@
 	struct sdma_engine *sdma = dev_id;
 	unsigned long stat;
 
+	clk_enable(sdma->clk_ipg);
+	clk_enable(sdma->clk_ahb);
+
 	stat = readl_relaxed(sdma->regs + SDMA_H_INTR);
 	writel_relaxed(stat, sdma->regs + SDMA_H_INTR);
 	/* channel 0 is special and not handled here, see run_channel0() */
@@ -866,7 +998,10 @@
 		desc = sdmac->desc;
 		if (desc) {
 			if (sdmac->flags & IMX_DMA_SG_LOOP) {
-				sdma_update_channel_loop(sdmac);
+				if (sdmac->peripheral_type != IMX_DMATYPE_HDMI)
+					sdma_update_channel_loop(sdmac);
+				else
+					vchan_cyclic_callback(&desc->vd);
 			} else {
 				mxc_sdma_handle_channel_normal(sdmac);
 				vchan_cookie_complete(&desc->vd);
@@ -878,6 +1013,9 @@
 		__clear_bit(channel, &stat);
 	}
 
+	clk_disable(sdma->clk_ipg);
+	clk_disable(sdma->clk_ahb);
+
 	return IRQ_HANDLED;
 }
 
@@ -925,6 +1063,10 @@
 		emi_2_per = sdma->script_addrs->mcu_2_ata_addr;
 		break;
 	case IMX_DMATYPE_CSPI:
+		per_2_emi = sdma->script_addrs->app_2_mcu_addr;
+		emi_2_per = sdma->script_addrs->mcu_2_ecspi_addr;
+		sdmac->is_ram_script = true;
+		break;
 	case IMX_DMATYPE_EXT:
 	case IMX_DMATYPE_SSI:
 	case IMX_DMATYPE_SAI:
@@ -934,6 +1076,7 @@
 	case IMX_DMATYPE_SSI_DUAL:
 		per_2_emi = sdma->script_addrs->ssish_2_mcu_addr;
 		emi_2_per = sdma->script_addrs->mcu_2_ssish_addr;
+		sdmac->is_ram_script = true;
 		break;
 	case IMX_DMATYPE_SSI_SP:
 	case IMX_DMATYPE_MMC:
@@ -948,11 +1091,13 @@
 		per_2_emi = sdma->script_addrs->asrc_2_mcu_addr;
 		emi_2_per = sdma->script_addrs->asrc_2_mcu_addr;
 		per_2_per = sdma->script_addrs->per_2_per_addr;
+		sdmac->is_ram_script = true;
 		break;
 	case IMX_DMATYPE_ASRC_SP:
 		per_2_emi = sdma->script_addrs->shp_2_mcu_addr;
 		emi_2_per = sdma->script_addrs->mcu_2_shp_addr;
 		per_2_per = sdma->script_addrs->per_2_per_addr;
+		sdmac->is_ram_script = true;
 		break;
 	case IMX_DMATYPE_MSHC:
 		per_2_emi = sdma->script_addrs->mshc_2_mcu_addr;
@@ -968,6 +1113,14 @@
 	case IMX_DMATYPE_IPU_MEMORY:
 		emi_2_per = sdma->script_addrs->ext_mem_2_ipu_addr;
 		break;
+	case IMX_DMATYPE_HDMI:
+		emi_2_per = sdma->script_addrs->hdmi_dma_addr;
+		sdmac->is_ram_script = true;
+		break;
+	case IMX_DMATYPE_MULTI_SAI:
+		per_2_emi = sdma->script_addrs->sai_2_mcu_addr;
+		emi_2_per = sdma->script_addrs->mcu_2_sai_addr;
+		sdmac->is_ram_script = true;
 	default:
 		break;
 	}
@@ -988,9 +1141,6 @@
 	int ret;
 	unsigned long flags;
 
-	if (sdmac->context_loaded)
-		return 0;
-
 	if (sdmac->direction == DMA_DEV_TO_MEM)
 		load_address = sdmac->pc_from_device;
 	else if (sdmac->direction == DMA_DEV_TO_DEV)
@@ -1018,11 +1168,16 @@
 	/* Send by context the event mask,base address for peripheral
 	 * and watermark level
 	 */
-	context->gReg[0] = sdmac->event_mask[1];
-	context->gReg[1] = sdmac->event_mask[0];
-	context->gReg[2] = sdmac->per_addr;
-	context->gReg[6] = sdmac->shp_addr;
-	context->gReg[7] = sdmac->watermark_level;
+	if (sdmac->peripheral_type == IMX_DMATYPE_HDMI) {
+		context->gReg[4] = sdmac->per_addr;
+		context->gReg[6] = sdmac->shp_addr;
+	} else {
+		context->gReg[0] = sdmac->event_mask[1];
+		context->gReg[1] = sdmac->event_mask[0];
+		context->gReg[2] = sdmac->per_addr;
+		context->gReg[6] = sdmac->shp_addr;
+		context->gReg[7] = sdmac->watermark_level;
+	}
 
 	bd0->mode.command = C0_SETDM;
 	bd0->mode.status = BD_DONE | BD_WRAP | BD_EXTD;
@@ -1033,7 +1188,30 @@
 
 	spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
 
-	sdmac->context_loaded = true;
+	return ret;
+}
+
+static int sdma_save_restore_context(struct sdma_engine *sdma, bool save)
+{
+	struct sdma_context_data *context = sdma->context;
+	struct sdma_buffer_descriptor *bd0 = sdma->bd0;
+	unsigned long flags;
+	int ret;
+
+	spin_lock_irqsave(&sdma->channel_0_lock, flags);
+
+	if (save)
+		bd0->mode.command = C0_GETDM;
+	else
+		bd0->mode.command = C0_SETDM;
+
+	bd0->mode.status = BD_DONE | BD_WRAP | BD_EXTD;
+	bd0->mode.count = MAX_DMA_CHANNELS * sizeof(*context) / 4;
+	bd0->buffer_addr = sdma->context_phys;
+	bd0->ext_buffer_addr = 2048;
+	ret = sdma_run_channel0(sdma);
+
+	spin_unlock_irqrestore(&sdma->channel_0_lock, flags);
 
 	return ret;
 }
@@ -1058,9 +1236,6 @@
 {
 	struct sdma_channel *sdmac = container_of(work, struct sdma_channel,
 						  terminate_worker);
-	unsigned long flags;
-	LIST_HEAD(head);
-
 	/*
 	 * According to NXP R&D team a delay of one BD SDMA cost time
 	 * (maximum is 1ms) should be added after disable of the channel
@@ -1069,22 +1244,25 @@
 	 */
 	usleep_range(1000, 2000);
 
-	spin_lock_irqsave(&sdmac->vc.lock, flags);
-	vchan_get_all_descriptors(&sdmac->vc, &head);
-	sdmac->desc = NULL;
-	spin_unlock_irqrestore(&sdmac->vc.lock, flags);
-	vchan_dma_desc_free_list(&sdmac->vc, &head);
-	sdmac->context_loaded = false;
+	vchan_dma_desc_free_list(&sdmac->vc, &sdmac->terminated_node);
 }
 
 static int sdma_disable_channel_async(struct dma_chan *chan)
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
+	unsigned long flags;
 
 	sdma_disable_channel(chan);
 
-	if (sdmac->desc)
+	spin_lock_irqsave(&sdmac->vc.lock, flags);
+	if (sdmac->desc) {
+		vchan_get_all_descriptors(&sdmac->vc, &sdmac->terminated_node);
+		sdmac->desc = NULL;
+		spin_unlock_irqrestore(&sdmac->vc.lock, flags);
 		schedule_work(&sdmac->terminate_worker);
+		return 0;
+	}
+	spin_unlock_irqrestore(&sdmac->vc.lock, flags);
 
 	return 0;
 }
@@ -1136,12 +1314,36 @@
 		sdmac->watermark_level |= SDMA_WATERMARK_LEVEL_DP;
 
 	sdmac->watermark_level |= SDMA_WATERMARK_LEVEL_CONT;
+
+	if (sdmac->src_dualfifo)
+		sdmac->watermark_level |= SDMA_WATERMARK_LEVEL_SD;
+	if (sdmac->dst_dualfifo)
+		sdmac->watermark_level |= SDMA_WATERMARK_LEVEL_DD;
+}
+
+static void sdma_set_watermarklevel_for_sais(struct sdma_channel *sdmac)
+{
+	sdmac->watermark_level &= ~(0xFF << SDMA_WATERMARK_LEVEL_FIFOS_OFF |
+				    SDMA_WATERMARK_LEVEL_SW_DONE |
+				    0xf << SDMA_WATERMARK_LEVEL_SW_DONE_SEL_OFF);
+
+	if (sdmac->sw_done)
+		sdmac->watermark_level |= SDMA_WATERMARK_LEVEL_SW_DONE |
+			sdmac->sw_done_sel <<
+			SDMA_WATERMARK_LEVEL_SW_DONE_SEL_OFF;
+
+	/* For fifo_num
+	 * bit 12-15 is the fifo number;
+	 * bit 16-19 is the fifo offset,
+	 * so here only need to shift left fifo_num 12 bit for watermake_level
+	 */
+	sdmac->watermark_level |= sdmac->fifo_num<<
+				SDMA_WATERMARK_LEVEL_FIFOS_OFF;
 }
 
 static int sdma_config_channel(struct dma_chan *chan)
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
-	int ret;
 
 	sdma_disable_channel(chan);
 
@@ -1171,8 +1373,21 @@
 			if (sdmac->peripheral_type == IMX_DMATYPE_ASRC_SP ||
 			    sdmac->peripheral_type == IMX_DMATYPE_ASRC)
 				sdma_set_watermarklevel_for_p2p(sdmac);
-		} else
+		} else {
+			/*
+			 * ERR009165 fixed from i.mx6ul, no errata need,
+			 * set bit31 to let sdma script skip the errata.
+			 */
+			if (sdmac->peripheral_type == IMX_DMATYPE_CSPI &&
+			    sdmac->direction == DMA_MEM_TO_DEV &&
+			    sdmac->sdma->drvdata->ecspi_fixed)
+				__set_bit(31, &sdmac->watermark_level);
+			else if (sdmac->peripheral_type ==
+					IMX_DMATYPE_MULTI_SAI)
+				sdma_set_watermarklevel_for_sais(sdmac);
+
 			__set_bit(sdmac->event_id0, sdmac->event_mask);
+		}
 
 		/* Address */
 		sdmac->shp_addr = sdmac->per_address;
@@ -1181,9 +1396,7 @@
 		sdmac->watermark_level = 0; /* FIXME: M3_BASE_ADDRESS */
 	}
 
-	ret = sdma_load_context(sdmac);
-
-	return ret;
+	return 0;
 }
 
 static int sdma_set_channel_priority(struct sdma_channel *sdmac,
@@ -1206,8 +1419,14 @@
 {
 	int ret = -EBUSY;
 
-	sdma->bd0 = dma_alloc_coherent(sdma->dev, PAGE_SIZE, &sdma->bd0_phys,
-					GFP_NOWAIT);
+	if (sdma->iram_pool)
+		sdma->bd0 = gen_pool_dma_alloc(sdma->iram_pool,
+					sizeof(struct sdma_buffer_descriptor),
+					&sdma->bd0_phys);
+	else
+		sdma->bd0 = dma_alloc_coherent(sdma->dev,
+					sizeof(struct sdma_buffer_descriptor),
+					&sdma->bd0_phys, GFP_NOWAIT);
 	if (!sdma->bd0) {
 		ret = -ENOMEM;
 		goto out;
@@ -1227,10 +1446,15 @@
 static int sdma_alloc_bd(struct sdma_desc *desc)
 {
 	u32 bd_size = desc->num_bd * sizeof(struct sdma_buffer_descriptor);
+	struct sdma_engine *sdma = desc->sdmac->sdma;
 	int ret = 0;
 
-	desc->bd = dma_alloc_coherent(desc->sdmac->sdma->dev, bd_size,
-				       &desc->bd_phys, GFP_NOWAIT);
+	if (sdma->iram_pool)
+		desc->bd = gen_pool_dma_alloc(sdma->iram_pool, bd_size,
+					      &desc->bd_phys);
+	else
+		desc->bd = dma_alloc_coherent(sdma->dev, bd_size,
+					      &desc->bd_phys, GFP_NOWAIT);
 	if (!desc->bd) {
 		ret = -ENOMEM;
 		goto out;
@@ -1242,9 +1466,14 @@
 static void sdma_free_bd(struct sdma_desc *desc)
 {
 	u32 bd_size = desc->num_bd * sizeof(struct sdma_buffer_descriptor);
+	struct sdma_engine *sdma = desc->sdmac->sdma;
 
-	dma_free_coherent(desc->sdmac->sdma->dev, bd_size, desc->bd,
-			  desc->bd_phys);
+	if (sdma->iram_pool)
+		gen_pool_free(sdma->iram_pool, (unsigned long)desc->bd,
+			      bd_size);
+	else
+		dma_free_coherent(desc->sdmac->sdma->dev, bd_size, desc->bd,
+				  desc->bd_phys);
 }
 
 static void sdma_desc_free(struct virt_dma_desc *vd)
@@ -1255,6 +1484,91 @@
 	kfree(desc);
 }
 
+static int sdma_runtime_suspend(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct sdma_engine *sdma = platform_get_drvdata(pdev);
+
+	sdma->fw_loaded = false;
+	sdma->is_on = false;
+
+	clk_disable(sdma->clk_ipg);
+	clk_disable(sdma->clk_ahb);
+
+	/* free channel0 bd */
+	if (sdma->iram_pool)
+		gen_pool_free(sdma->iram_pool, (unsigned long)sdma->bd0,
+			      sizeof(struct sdma_buffer_descriptor));
+	else
+		dma_free_coherent(sdma->dev,
+				  sizeof(struct sdma_buffer_descriptor),
+				  sdma->bd0, sdma->bd0_phys);
+
+	return 0;
+}
+
+static int sdma_runtime_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct sdma_engine *sdma = platform_get_drvdata(pdev);
+	int i, ret;
+
+	ret = clk_enable(sdma->clk_ipg);
+	if (ret)
+		return ret;
+	ret = clk_enable(sdma->clk_ahb);
+	if (ret)
+		goto disable_clk_ipg;
+
+	/* Be sure SDMA has not started yet */
+	writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
+
+	/* disable all channels */
+	for (i = 0; i < sdma->drvdata->num_events; i++)
+		writel_relaxed(0, sdma->regs + chnenbl_ofs(sdma, i));
+
+	/* All channels have priority 0 */
+	for (i = 0; i < MAX_DMA_CHANNELS; i++)
+		writel_relaxed(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);
+
+	ret = sdma_request_channel0(sdma);
+	if (ret)
+		return ret;
+
+	sdma_config_ownership(&sdma->channel[0], false, true, false);
+
+	/* Set Command Channel (Channel Zero) */
+	writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR);
+
+	/* Set bits of CONFIG register but with static context switching */
+	if (sdma->clk_ratio)
+		writel_relaxed(SDMA_H_CONFIG_ACR, sdma->regs + SDMA_H_CONFIG);
+	else
+		writel_relaxed(0, sdma->regs + SDMA_H_CONFIG);
+
+	writel_relaxed(sdma->ccb_phys, sdma->regs + SDMA_H_C0PTR);
+
+	/* Initializes channel's priorities */
+	sdma_set_channel_priority(&sdma->channel[0], 7);
+
+	if (sdma->drvdata->pm_runtime)
+		ret = sdma_get_firmware_wait(sdma, sdma->fw_name);
+	else
+		ret = sdma_get_firmware(sdma, sdma->fw_name);
+	if (ret)
+		dev_warn(sdma->dev, "failed to get firmware.\n");
+
+	sdma->is_on = true;
+
+	return 0;
+
+disable_clk_ipg:
+	clk_disable(sdma->clk_ipg);
+	dev_err(sdma->dev, "initialisation failed with %d\n", ret);
+
+	return ret;
+}
+
 static int sdma_alloc_chan_resources(struct dma_chan *chan)
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
@@ -1298,25 +1612,21 @@
 	sdmac->peripheral_type = data->peripheral_type;
 	sdmac->event_id0 = data->dma_request;
 	sdmac->event_id1 = data->dma_request2;
+	sdmac->src_dualfifo = data->src_dualfifo;
+	sdmac->dst_dualfifo = data->dst_dualfifo;
+	/* Get software done selector if sw_done enabled */
+	if (data->done_sel & BIT(31)) {
+		sdmac->sw_done = true;
+		sdmac->sw_done_sel = (data->done_sel >> 8) & 0xff;
+	}
 
-	ret = clk_enable(sdmac->sdma->clk_ipg);
-	if (ret)
-		return ret;
-	ret = clk_enable(sdmac->sdma->clk_ahb);
-	if (ret)
-		goto disable_clk_ipg;
+	pm_runtime_get_sync(sdmac->sdma->dev);
 
 	ret = sdma_set_channel_priority(sdmac, prio);
 	if (ret)
-		goto disable_clk_ahb;
+		return ret;
 
 	return 0;
-
-disable_clk_ahb:
-	clk_disable(sdmac->sdma->clk_ahb);
-disable_clk_ipg:
-	clk_disable(sdmac->sdma->clk_ipg);
-	return ret;
 }
 
 static void sdma_free_chan_resources(struct dma_chan *chan)
@@ -1328,8 +1638,9 @@
 
 	sdma_channel_synchronize(chan);
 
-	if (sdmac->event_id0)
+	if (sdmac->event_id0 >= 0)
 		sdma_event_disable(sdmac, sdmac->event_id0);
+
 	if (sdmac->event_id1)
 		sdma_event_disable(sdmac, sdmac->event_id1);
 
@@ -1338,8 +1649,7 @@
 
 	sdma_set_channel_priority(sdmac, 0);
 
-	clk_disable(sdma->clk_ipg);
-	clk_disable(sdma->clk_ahb);
+	pm_runtime_put_sync(sdma->dev);
 }
 
 static struct sdma_desc *sdma_transfer_init(struct sdma_channel *sdmac,
@@ -1347,6 +1657,11 @@
 {
 	struct sdma_desc *desc;
 
+	if (!sdmac->sdma->fw_loaded && sdmac->is_ram_script) {
+		dev_err(sdmac->sdma->dev, "sdma firmware not ready!\n");
+		goto err_out;
+	}
+
 	desc = kzalloc((sizeof(*desc)), GFP_NOWAIT);
 	if (!desc)
 		goto err_out;
@@ -1362,7 +1677,7 @@
 	desc->sdmac = sdmac;
 	desc->num_bd = bds;
 
-	if (sdma_alloc_bd(desc))
+	if (bds && sdma_alloc_bd(desc))
 		goto err_desc_out;
 
 	/* No slave_config called in MEMCPY case, so do here */
@@ -1370,10 +1685,12 @@
 		sdma_config_ownership(sdmac, false, true, false);
 
 	if (sdma_load_context(sdmac))
-		goto err_desc_out;
+		goto err_bd_out;
 
 	return desc;
 
+err_bd_out:
+	sdma_free_bd(desc);
 err_desc_out:
 	kfree(desc);
 err_out:
@@ -1483,6 +1800,9 @@
 			if (count & 3 || sg->dma_address & 3)
 				goto err_bd_out;
 			break;
+		case DMA_SLAVE_BUSWIDTH_3_BYTES:
+			bd->mode.command = 3;
+			break;
 		case DMA_SLAVE_BUSWIDTH_2_BYTES:
 			bd->mode.command = 2;
 			if (count & 1 || sg->dma_address & 1)
@@ -1527,13 +1847,16 @@
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
 	struct sdma_engine *sdma = sdmac->sdma;
-	int num_periods = buf_len / period_len;
+	int num_periods = 0;
 	int channel = sdmac->channel;
 	int i = 0, buf = 0;
 	struct sdma_desc *desc;
 
 	dev_dbg(sdma->dev, "%s channel: %d\n", __func__, channel);
 
+	if (sdmac->peripheral_type != IMX_DMATYPE_HDMI)
+		num_periods = buf_len / period_len;
+
 	sdma_config_write(chan, &sdmac->slave_config, direction);
 
 	desc = sdma_transfer_init(sdmac, direction, num_periods);
@@ -1550,6 +1873,9 @@
 		goto err_bd_out;
 	}
 
+	if (sdmac->peripheral_type == IMX_DMATYPE_HDMI)
+		return vchan_tx_prep(&sdmac->vc, &desc->vd, flags);
+
 	while (buf < buf_len) {
 		struct sdma_buffer_descriptor *bd = &desc->bd[i];
 		int param;
@@ -1597,11 +1923,15 @@
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
 
+	sdmac->watermark_level = 0;
+	sdmac->is_ram_script = false;
+
 	if (direction == DMA_DEV_TO_MEM) {
 		sdmac->per_address = dmaengine_cfg->src_addr;
 		sdmac->watermark_level = dmaengine_cfg->src_maxburst *
 			dmaengine_cfg->src_addr_width;
 		sdmac->word_size = dmaengine_cfg->src_addr_width;
+		sdmac->fifo_num =  dmaengine_cfg->src_fifo_num;
 	} else if (direction == DMA_DEV_TO_DEV) {
 		sdmac->per_address2 = dmaengine_cfg->src_addr;
 		sdmac->per_address = dmaengine_cfg->dst_addr;
@@ -1610,11 +1940,16 @@
 		sdmac->watermark_level |= (dmaengine_cfg->dst_maxburst << 16) &
 			SDMA_WATERMARK_LEVEL_HWML;
 		sdmac->word_size = dmaengine_cfg->dst_addr_width;
+	} else if (sdmac->peripheral_type == IMX_DMATYPE_HDMI) {
+			sdmac->per_address = dmaengine_cfg->dst_addr;
+			sdmac->per_address2 = dmaengine_cfg->src_addr;
+			sdmac->watermark_level = 0;
 	} else {
 		sdmac->per_address = dmaengine_cfg->dst_addr;
 		sdmac->watermark_level = dmaengine_cfg->dst_maxburst *
 			dmaengine_cfg->dst_addr_width;
 		sdmac->word_size = dmaengine_cfg->dst_addr_width;
+		sdmac->fifo_num =  dmaengine_cfg->dst_fifo_num;
 	}
 	sdmac->direction = direction;
 	return sdma_config_channel(chan);
@@ -1628,7 +1963,7 @@
 	memcpy(&sdmac->slave_config, dmaengine_cfg, sizeof(*dmaengine_cfg));
 
 	/* Set ENBLn earlier to make sure dma request triggered after that */
-	if (sdmac->event_id0) {
+	if (sdmac->event_id0 >= 0) {
 		if (sdmac->event_id0 >= sdmac->sdma->drvdata->num_events)
 			return -EINVAL;
 		sdma_event_enable(sdmac, sdmac->event_id0);
@@ -1693,8 +2028,8 @@
 
 #define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1	34
 #define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V2	38
-#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V3	41
-#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V4	42
+#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V3	45
+#define SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V4	46
 
 static void sdma_add_scripts(struct sdma_engine *sdma,
 		const struct sdma_script_start_addrs *addr)
@@ -1728,12 +2063,21 @@
 	unsigned short *ram_code;
 
 	if (!fw) {
-		dev_info(sdma->dev, "external firmware not found, using ROM firmware\n");
-		/* In this case we just use the ROM firmware. */
+		/* Load firmware once more time if timeout */
+		if (sdma->fw_fail)
+			dev_info(sdma->dev, "external firmware not found, using ROM firmware\n");
+		else {
+			request_firmware_nowait(THIS_MODULE,
+					FW_ACTION_HOTPLUG, sdma->fw_name,
+					sdma->dev, GFP_KERNEL, sdma,
+					sdma_load_firmware);
+			sdma->fw_fail++;
+		}
+
 		return;
 	}
 
-	if (fw->size < sizeof(*header))
+	if (fw->size < sizeof(*header) || sdma->fw_loaded)
 		goto err_firmware;
 
 	header = (struct sdma_firmware_header *)fw->data;
@@ -1762,19 +2106,18 @@
 
 	addr = (void *)header + header->script_addrs_start;
 	ram_code = (void *)header + header->ram_code_start;
+	sdma->ram_code_start = header->ram_code_start;
 
-	clk_enable(sdma->clk_ipg);
-	clk_enable(sdma->clk_ahb);
 	/* download the RAM image for SDMA */
 	sdma_load_script(sdma, ram_code,
 			header->ram_code_size,
 			addr->ram_code_start_addr);
-	clk_disable(sdma->clk_ipg);
-	clk_disable(sdma->clk_ahb);
 
 	sdma_add_scripts(sdma, addr);
 
-	dev_info(sdma->dev, "loaded firmware %d.%d\n",
+	sdma->fw_loaded = true;
+
+	dev_info_once(sdma->dev, "loaded firmware %d.%d\n",
 			header->version_major,
 			header->version_minor);
 
@@ -1794,7 +2137,7 @@
 	u32 reg, val, shift, num_map, i;
 	int ret = 0;
 
-	if (IS_ERR(np) || IS_ERR(gpr_np))
+	if (IS_ERR(np) || !gpr_np)
 		goto out;
 
 	event_remap = of_find_property(np, propname, NULL);
@@ -1842,7 +2185,7 @@
 	}
 
 out:
-	if (!IS_ERR(gpr_np))
+	if (gpr_np)
 		of_node_put(gpr_np);
 
 	return ret;
@@ -1860,79 +2203,51 @@
 	return ret;
 }
 
-static int sdma_init(struct sdma_engine *sdma)
+static int sdma_get_firmware_wait(struct sdma_engine *sdma,
+		const char *fw_name)
 {
-	int i, ret;
-	dma_addr_t ccb_phys;
+	const struct firmware *fw = NULL;
+	int ret;
 
-	ret = clk_enable(sdma->clk_ipg);
-	if (ret)
+	ret = request_firmware(&fw, fw_name, sdma->dev);
+	if (ret < 0 || !fw) {
+		dev_err(sdma->dev, "unable to find firmware\n");
 		return ret;
-	ret = clk_enable(sdma->clk_ahb);
-	if (ret)
-		goto disable_clk_ipg;
+	}
+
+	sdma_load_firmware(fw, (void *)sdma);
+
+	return 0;
+}
+
+static int sdma_init_sw(struct sdma_engine *sdma)
+{
+	int ret, ccbsize;
 
 	if (sdma->drvdata->check_ratio &&
 	    (clk_get_rate(sdma->clk_ahb) == clk_get_rate(sdma->clk_ipg)))
 		sdma->clk_ratio = 1;
 
-	/* Be sure SDMA has not started yet */
-	writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);
-
-	sdma->channel_control = dma_alloc_coherent(sdma->dev,
-			MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control) +
-			sizeof(struct sdma_context_data),
-			&ccb_phys, GFP_KERNEL);
+	ccbsize = MAX_DMA_CHANNELS * (sizeof(struct sdma_channel_control)
+		+ sizeof(struct sdma_context_data));
 
+	if (sdma->iram_pool)
+		sdma->channel_control = gen_pool_dma_alloc(sdma->iram_pool,
+							   ccbsize, &sdma->ccb_phys);
+	else
+		sdma->channel_control = dma_alloc_coherent(sdma->dev, ccbsize,
+						&sdma->ccb_phys, GFP_KERNEL);
 	if (!sdma->channel_control) {
 		ret = -ENOMEM;
-		goto err_dma_alloc;
+		return ret;
 	}
 
 	sdma->context = (void *)sdma->channel_control +
 		MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control);
-	sdma->context_phys = ccb_phys +
+	sdma->context_phys = sdma->ccb_phys +
 		MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control);
 
-	/* disable all channels */
-	for (i = 0; i < sdma->drvdata->num_events; i++)
-		writel_relaxed(0, sdma->regs + chnenbl_ofs(sdma, i));
-
-	/* All channels have priority 0 */
-	for (i = 0; i < MAX_DMA_CHANNELS; i++)
-		writel_relaxed(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);
-
-	ret = sdma_request_channel0(sdma);
-	if (ret)
-		goto err_dma_alloc;
-
-	sdma_config_ownership(&sdma->channel[0], false, true, false);
-
-	/* Set Command Channel (Channel Zero) */
-	writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR);
-
-	/* Set bits of CONFIG register but with static context switching */
-	if (sdma->clk_ratio)
-		writel_relaxed(SDMA_H_CONFIG_ACR, sdma->regs + SDMA_H_CONFIG);
-	else
-		writel_relaxed(0, sdma->regs + SDMA_H_CONFIG);
-
-	writel_relaxed(ccb_phys, sdma->regs + SDMA_H_C0PTR);
-
-	/* Initializes channel's priorities */
-	sdma_set_channel_priority(&sdma->channel[0], 7);
-
-	clk_disable(sdma->clk_ipg);
-	clk_disable(sdma->clk_ahb);
-
 	return 0;
-
-err_dma_alloc:
-	clk_disable(sdma->clk_ahb);
-disable_clk_ipg:
-	clk_disable(sdma->clk_ipg);
-	dev_err(sdma->dev, "initialisation failed with %d\n", ret);
-	return ret;
 }
 
 static bool sdma_filter_fn(struct dma_chan *chan, void *fn_param)
@@ -1959,9 +2274,14 @@
 	if (dma_spec->args_count != 3)
 		return NULL;
 
+	memset(&data, 0, sizeof(data));
+
 	data.dma_request = dma_spec->args[0];
 	data.peripheral_type = dma_spec->args[1];
-	data.priority = dma_spec->args[2];
+	/* Get sw_done setting if sw_done enabled */
+	if (dma_spec->args[2] & BIT(31))
+		data.done_sel = dma_spec->args[2];
+	data.priority = dma_spec->args[2] & 0xff;
 	/*
 	 * init dma_request2 to zero, which is not used by the dts.
 	 * For P2P, dma_request2 is init from dma_request_channel(),
@@ -2071,6 +2391,7 @@
 
 		sdmac->channel = i;
 		sdmac->vc.desc_free = sdma_desc_free;
+		INIT_LIST_HEAD(&sdmac->terminated_node);
 		INIT_WORK(&sdmac->terminate_worker,
 				sdma_channel_terminate_work);
 		/*
@@ -2082,7 +2403,13 @@
 			vchan_init(&sdmac->vc, &sdma->dma_device);
 	}
 
-	ret = sdma_init(sdma);
+	if (np) {
+		sdma->iram_pool = of_gen_pool_get(np, "iram", 0);
+		if (sdma->iram_pool)
+			dev_info(&pdev->dev, "alloc bd from iram.\n");
+	}
+
+	ret = sdma_init_sw(sdma);
 	if (ret)
 		goto err_init;
 
@@ -2139,16 +2466,8 @@
 		of_node_put(spba_bus);
 	}
 
-	/*
-	 * Kick off firmware loading as the very last step:
-	 * attempt to load firmware only if we're not on the error path, because
-	 * the firmware callback requires a fully functional and allocated sdma
-	 * instance.
-	 */
 	if (pdata) {
-		ret = sdma_get_firmware(sdma, pdata->fw_name);
-		if (ret)
-			dev_warn(&pdev->dev, "failed to get firmware from platform data\n");
+		sdma->fw_name = pdata->fw_name;
 	} else {
 		/*
 		 * Because that device tree does not encode ROM script address,
@@ -2157,15 +2476,16 @@
 		 */
 		ret = of_property_read_string(np, "fsl,sdma-ram-script-name",
 					      &fw_name);
-		if (ret) {
+		if (ret)
 			dev_warn(&pdev->dev, "failed to get firmware name\n");
-		} else {
-			ret = sdma_get_firmware(sdma, fw_name);
-			if (ret)
-				dev_warn(&pdev->dev, "failed to get firmware from device tree\n");
-		}
+		else
+			sdma->fw_name = fw_name;
 	}
 
+	pm_runtime_enable(&pdev->dev);
+	if (!sdma->drvdata->pm_runtime)
+		pm_runtime_get_sync(&pdev->dev);
+
 	return 0;
 
 err_register:
@@ -2187,6 +2507,7 @@
 	devm_free_irq(&pdev->dev, sdma->irq, sdma);
 	dma_async_device_unregister(&sdma->dma_device);
 	kfree(sdma->script_addrs);
+	pm_runtime_put_sync_suspend(sdma->dev);
 	clk_unprepare(sdma->clk_ahb);
 	clk_unprepare(sdma->clk_ipg);
 	/* Kill the tasklet */
@@ -2201,10 +2522,131 @@
 	return 0;
 }
 
+#ifdef CONFIG_PM_SLEEP
+static int sdma_suspend(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct sdma_engine *sdma = platform_get_drvdata(pdev);
+	int i, ret = 0;
+
+	/* Do nothing if not i.MX6SX or i.MX7D, i.MX8MP */
+	if (sdma->drvdata != &sdma_imx6sx && sdma->drvdata != &sdma_imx7d
+	   && sdma->drvdata != &sdma_imx6ul && sdma->drvdata != &sdma_imx8mp)
+		return 0;
+
+	if (!sdma->is_on)
+		return 0;
+
+	ret = sdma_save_restore_context(sdma, true);
+	if (ret) {
+		dev_err(sdma->dev, "save context error!\n");
+		return ret;
+	}
+
+	/* save regs */
+	for (i = 0; i < MXC_SDMA_SAVED_REG_NUM; i++) {
+		/*
+		 * 0x78(SDMA_XTRIG_CONF2+4)~0x100(SDMA_CHNPRI_O) registers are
+		 * reserved and can't be touched. Skip these regs.
+		 */
+		if (i > SDMA_XTRIG_CONF2 / 4)
+			sdma->save_regs[i] = readl_relaxed(sdma->regs +
+							   MXC_SDMA_RESERVED_REG
+							   + 4 * i);
+		else
+			sdma->save_regs[i] = readl_relaxed(sdma->regs + 4 * i);
+	}
+
+	if (sdma->drvdata->has_done0) {
+		for (i = 0; i < 2; i++)
+			sdma->save_done0_regs[i] =
+			readl_relaxed(sdma->regs + SDMA_DONE0_CONFIG + 4 * i);
+	}
+
+	return 0;
+}
+
+static int sdma_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct sdma_engine *sdma = platform_get_drvdata(pdev);
+	unsigned long timeout = jiffies + msecs_to_jiffies(2);
+	int i, ret;
+
+	/* Do nothing if not i.MX6SX or i.MX7D, i.MX8MP*/
+	if (sdma->drvdata != &sdma_imx6sx && sdma->drvdata != &sdma_imx7d
+	    && sdma->drvdata != &sdma_imx6ul && sdma->drvdata != &sdma_imx8mp)
+		return 0;
+
+	if (!sdma->is_on)
+		return 0;
+
+	/* Do nothing if mega/fast mix not turned off */
+	if (readl_relaxed(sdma->regs + SDMA_H_C0PTR))
+		return 0;
+
+	/* Firmware was lost, mark as "not ready" */
+	sdma->fw_loaded = false;
+
+	/* restore regs and load firmware */
+	for (i = 0; i < MXC_SDMA_SAVED_REG_NUM; i++) {
+		/*
+		 * 0x78(SDMA_XTRIG_CONF2+4)~0x100(SDMA_CHNPRI_O) registers are
+		 * reserved and can't be touched. Skip these regs.
+		 */
+		if (i > SDMA_XTRIG_CONF2 / 4)
+			writel_relaxed(sdma->save_regs[i], sdma->regs +
+				       MXC_SDMA_RESERVED_REG + 4 * i);
+		/* set static context switch  mode before channel0 running */
+		else if (i == SDMA_H_CONFIG / 4)
+			writel_relaxed(sdma->save_regs[i] & ~SDMA_H_CONFIG_CSM,
+					sdma->regs + SDMA_H_CONFIG);
+		else
+			writel_relaxed(sdma->save_regs[i], sdma->regs + 4 * i);
+	}
+
+	/* restore SDMA_DONEx_CONFIG */
+	if (sdma->drvdata->has_done0) {
+		for (i = 0; i < 2; i++)
+			writel_relaxed(sdma->save_done0_regs[i],
+				sdma->regs + SDMA_DONE0_CONFIG + 4 * i);
+	}
+
+	/* prepare priority for channel0 to start */
+	sdma_set_channel_priority(&sdma->channel[0], MXC_SDMA_MAX_PRIORITY);
+
+	ret = sdma_get_firmware(sdma, sdma->fw_name);
+	if (ret) {
+		dev_warn(&pdev->dev, "failed to get firmware\n");
+		return ret;
+	}
+	/* wait firmware loaded */
+	do {
+		if (time_after(jiffies, timeout)) {
+			dev_warn(&pdev->dev, "failed to load firmware\n");
+			break;
+		}
+		usleep_range(50, 500);
+	} while (!sdma->fw_loaded);
+
+	ret = sdma_save_restore_context(sdma, false);
+	if (ret)
+		dev_err(sdma->dev, "restore context error!\n");
+
+	return ret;
+}
+#endif
+
+static const struct dev_pm_ops sdma_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(sdma_suspend, sdma_resume)
+	SET_RUNTIME_PM_OPS(sdma_runtime_suspend, sdma_runtime_resume, NULL)
+};
+
 static struct platform_driver sdma_driver = {
 	.driver		= {
 		.name	= "imx-sdma",
 		.of_match_table = sdma_dt_ids,
+		.pm = &sdma_pm_ops,
 	},
 	.id_table	= sdma_devtypes,
 	.remove		= sdma_remove,
@@ -2218,7 +2660,7 @@
 #if IS_ENABLED(CONFIG_SOC_IMX6Q)
 MODULE_FIRMWARE("imx/sdma/sdma-imx6q.bin");
 #endif
-#if IS_ENABLED(CONFIG_SOC_IMX7D)
+#if IS_ENABLED(CONFIG_SOC_IMX7D) || IS_ENABLED(CONFIG_SOC_IMX8M)
 MODULE_FIRMWARE("imx/sdma/sdma-imx7d.bin");
 #endif
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/dma/ioat/dma.c
+++ linux-ein-5.4.0/drivers/dma/ioat/dma.c
@@ -26,6 +26,18 @@
 
 #include "../dmaengine.h"
 
+int completion_timeout = 200;
+module_param(completion_timeout, int, 0644);
+MODULE_PARM_DESC(completion_timeout,
+		"set ioat completion timeout [msec] (default 200 [msec])");
+int idle_timeout = 2000;
+module_param(idle_timeout, int, 0644);
+MODULE_PARM_DESC(idle_timeout,
+		"set ioat idel timeout [msec] (default 2000 [msec])");
+
+#define IDLE_TIMEOUT msecs_to_jiffies(idle_timeout)
+#define COMPLETION_TIMEOUT msecs_to_jiffies(completion_timeout)
+
 static char *chanerr_str[] = {
 	"DMA Transfer Source Address Error",
 	"DMA Transfer Destination Address Error",
@@ -377,10 +389,11 @@
 
 		descs->virt = dma_alloc_coherent(to_dev(ioat_chan),
 						 SZ_2M, &descs->hw, flags);
-		if (!descs->virt && (i > 0)) {
+		if (!descs->virt) {
 			int idx;
 
 			for (idx = 0; idx < i; idx++) {
+				descs = &ioat_chan->descs[idx];
 				dma_free_coherent(to_dev(ioat_chan), SZ_2M,
 						  descs->virt, descs->hw);
 				descs->virt = NULL;
@@ -640,7 +653,7 @@
 	if (active - i == 0) {
 		dev_dbg(to_dev(ioat_chan), "%s: cancel completion timeout\n",
 			__func__);
-		mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
+		mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
 	}
 
 	/* microsecond delay by sysfs variable  per pending descriptor */
@@ -666,7 +679,7 @@
 
 		if (chanerr &
 		    (IOAT_CHANERR_HANDLE_MASK | IOAT_CHANERR_RECOVER_MASK)) {
-			mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
+			mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
 			ioat_eh(ioat_chan);
 		}
 	}
@@ -863,7 +876,7 @@
 	}
 
 	if (test_and_clear_bit(IOAT_CHAN_ACTIVE, &ioat_chan->state))
-		mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
+		mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
 }
 
 void ioat_timer_event(struct timer_list *t)
--- linux-ein-5.4.0.orig/drivers/dma/ioat/dma.h
+++ linux-ein-5.4.0/drivers/dma/ioat/dma.h
@@ -99,8 +99,6 @@
 	#define IOAT_RUN 5
 	#define IOAT_CHAN_ACTIVE 6
 	struct timer_list timer;
-	#define COMPLETION_TIMEOUT msecs_to_jiffies(100)
-	#define IDLE_TIMEOUT msecs_to_jiffies(2000)
 	#define RESET_DELAY msecs_to_jiffies(100)
 	struct ioatdma_device *ioat_dma;
 	dma_addr_t completion_dma;
--- linux-ein-5.4.0.orig/drivers/dma/k3dma.c
+++ linux-ein-5.4.0/drivers/dma/k3dma.c
@@ -229,9 +229,11 @@
 			c = p->vchan;
 			if (c && (tc1 & BIT(i))) {
 				spin_lock_irqsave(&c->vc.lock, flags);
-				vchan_cookie_complete(&p->ds_run->vd);
-				p->ds_done = p->ds_run;
-				p->ds_run = NULL;
+				if (p->ds_run != NULL) {
+					vchan_cookie_complete(&p->ds_run->vd);
+					p->ds_done = p->ds_run;
+					p->ds_run = NULL;
+				}
 				spin_unlock_irqrestore(&c->vc.lock, flags);
 			}
 			if (c && (tc2 & BIT(i))) {
@@ -271,6 +273,10 @@
 	if (BIT(c->phy->idx) & k3_dma_get_chan_stat(d))
 		return -EAGAIN;
 
+	/* Avoid losing track of  ds_run if a transaction is in flight */
+	if (c->phy->ds_run)
+		return -EAGAIN;
+
 	if (vd) {
 		struct k3_dma_desc_sw *ds =
 			container_of(vd, struct k3_dma_desc_sw, vd);
--- linux-ein-5.4.0.orig/drivers/dma/mcf-edma.c
+++ linux-ein-5.4.0/drivers/dma/mcf-edma.c
@@ -35,6 +35,13 @@
 			mcf_chan = &mcf_edma->chans[ch];
 
 			spin_lock(&mcf_chan->vchan.lock);
+
+			if (!mcf_chan->edesc) {
+				/* terminate_all called before */
+				spin_unlock(&mcf_chan->vchan.lock);
+				continue;
+			}
+
 			if (!mcf_chan->edesc->iscyclic) {
 				list_del(&mcf_chan->edesc->vdesc.node);
 				vchan_cookie_complete(&mcf_chan->edesc->vdesc);
@@ -184,7 +191,13 @@
 		return -EINVAL;
 	}
 
-	chans = pdata->dma_channels;
+	if (!pdata->dma_channels) {
+		dev_info(&pdev->dev, "setting default channel number to 64");
+		chans = 64;
+	} else {
+		chans = pdata->dma_channels;
+	}
+
 	len = sizeof(*mcf_edma) + sizeof(*mcf_chan) * chans;
 	mcf_edma = devm_kzalloc(&pdev->dev, len, GFP_KERNEL);
 	if (!mcf_edma)
@@ -196,11 +209,6 @@
 	mcf_edma->drvdata = &mcf_data;
 	mcf_edma->big_endian = 1;
 
-	if (!mcf_edma->n_chans) {
-		dev_info(&pdev->dev, "setting default channel number to 64");
-		mcf_edma->n_chans = 64;
-	}
-
 	mutex_init(&mcf_edma->fsl_edma_mutex);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--- linux-ein-5.4.0.orig/drivers/dma/mediatek/mtk-hsdma.c
+++ linux-ein-5.4.0/drivers/dma/mediatek/mtk-hsdma.c
@@ -997,7 +997,7 @@
 	if (err) {
 		dev_err(&pdev->dev,
 			"request_irq failed with err %d\n", err);
-		goto err_unregister;
+		goto err_free;
 	}
 
 	platform_set_drvdata(pdev, hsdma);
@@ -1006,6 +1006,9 @@
 
 	return 0;
 
+err_free:
+	mtk_hsdma_hw_deinit(hsdma);
+	of_dma_controller_free(pdev->dev.of_node);
 err_unregister:
 	dma_async_device_unregister(dd);
 
--- linux-ein-5.4.0.orig/drivers/dma/mediatek/mtk-uart-apdma.c
+++ linux-ein-5.4.0/drivers/dma/mediatek/mtk-uart-apdma.c
@@ -131,10 +131,7 @@
 
 static void mtk_uart_apdma_desc_free(struct virt_dma_desc *vd)
 {
-	struct dma_chan *chan = vd->tx.chan;
-	struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
-
-	kfree(c->desc);
+	kfree(container_of(vd, struct mtk_uart_apdma_desc, vd));
 }
 
 static void mtk_uart_apdma_start_tx(struct mtk_chan *c)
@@ -207,14 +204,9 @@
 
 static void mtk_uart_apdma_tx_handler(struct mtk_chan *c)
 {
-	struct mtk_uart_apdma_desc *d = c->desc;
-
 	mtk_uart_apdma_write(c, VFF_INT_FLAG, VFF_TX_INT_CLR_B);
 	mtk_uart_apdma_write(c, VFF_INT_EN, VFF_INT_EN_CLR_B);
 	mtk_uart_apdma_write(c, VFF_EN, VFF_EN_CLR_B);
-
-	list_del(&d->vd.node);
-	vchan_cookie_complete(&d->vd);
 }
 
 static void mtk_uart_apdma_rx_handler(struct mtk_chan *c)
@@ -245,9 +237,17 @@
 
 	c->rx_status = d->avail_len - cnt;
 	mtk_uart_apdma_write(c, VFF_RPT, wg);
+}
+
+static void mtk_uart_apdma_chan_complete_handler(struct mtk_chan *c)
+{
+	struct mtk_uart_apdma_desc *d = c->desc;
 
-	list_del(&d->vd.node);
-	vchan_cookie_complete(&d->vd);
+	if (d) {
+		list_del(&d->vd.node);
+		vchan_cookie_complete(&d->vd);
+		c->desc = NULL;
+	}
 }
 
 static irqreturn_t mtk_uart_apdma_irq_handler(int irq, void *dev_id)
@@ -261,6 +261,7 @@
 		mtk_uart_apdma_rx_handler(c);
 	else if (c->dir == DMA_MEM_TO_DEV)
 		mtk_uart_apdma_tx_handler(c);
+	mtk_uart_apdma_chan_complete_handler(c);
 	spin_unlock_irqrestore(&c->vc.lock, flags);
 
 	return IRQ_HANDLED;
@@ -273,7 +274,7 @@
 	unsigned int status;
 	int ret;
 
-	ret = pm_runtime_get_sync(mtkd->ddev.dev);
+	ret = pm_runtime_resume_and_get(mtkd->ddev.dev);
 	if (ret < 0) {
 		pm_runtime_put_noidle(chan->device->dev);
 		return ret;
@@ -287,18 +288,21 @@
 	ret = readx_poll_timeout(readl, c->base + VFF_EN,
 			  status, !status, 10, 100);
 	if (ret)
-		return ret;
+		goto err_pm;
 
 	ret = request_irq(c->irq, mtk_uart_apdma_irq_handler,
 			  IRQF_TRIGGER_NONE, KBUILD_MODNAME, chan);
 	if (ret < 0) {
 		dev_err(chan->device->dev, "Can't request dma IRQ\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_pm;
 	}
 
 	if (mtkd->support_33bits)
 		mtk_uart_apdma_write(c, VFF_4G_SUPPORT, VFF_4G_SUPPORT_CLR_B);
 
+err_pm:
+	pm_runtime_put_noidle(mtkd->ddev.dev);
 	return ret;
 }
 
@@ -348,7 +352,7 @@
 		return NULL;
 
 	/* Now allocate and setup the descriptor */
-	d = kzalloc(sizeof(*d), GFP_ATOMIC);
+	d = kzalloc(sizeof(*d), GFP_NOWAIT);
 	if (!d)
 		return NULL;
 
@@ -366,7 +370,7 @@
 	unsigned long flags;
 
 	spin_lock_irqsave(&c->vc.lock, flags);
-	if (vchan_issue_pending(&c->vc)) {
+	if (vchan_issue_pending(&c->vc) && !c->desc) {
 		vd = vchan_next_desc(&c->vc);
 		c->desc = to_mtk_uart_apdma_desc(&vd->tx);
 
@@ -446,9 +450,8 @@
 	mtk_uart_apdma_write(c, VFF_EN, VFF_EN_CLR_B);
 	mtk_uart_apdma_write(c, VFF_INT_EN, VFF_INT_EN_CLR_B);
 
-	synchronize_irq(c->irq);
-
 	spin_unlock_irqrestore(&c->vc.lock, flags);
+	synchronize_irq(c->irq);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/dma/mmp_pdma.c
+++ linux-ein-5.4.0/drivers/dma/mmp_pdma.c
@@ -728,12 +728,6 @@
 
 	chan->dir = direction;
 	chan->dev_addr = addr;
-	/* FIXME: drivers should be ported over to use the filter
-	 * function. Once that's done, the following two lines can
-	 * be removed.
-	 */
-	if (cfg->slave_id)
-		chan->drcmr = cfg->slave_id;
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/dma/mmp_tdma.c
+++ linux-ein-5.4.0/drivers/dma/mmp_tdma.c
@@ -363,6 +363,8 @@
 		gen_pool_free(gpool, (unsigned long)tdmac->desc_arr,
 				size);
 	tdmac->desc_arr = NULL;
+	if (tdmac->status == DMA_ERROR)
+		tdmac->status = DMA_COMPLETE;
 
 	return;
 }
@@ -443,7 +445,8 @@
 	if (!desc)
 		goto err_out;
 
-	mmp_tdma_config_write(chan, direction, &tdmac->slave_config);
+	if (mmp_tdma_config_write(chan, direction, &tdmac->slave_config))
+		goto err_out;
 
 	while (buf < buf_len) {
 		desc = &tdmac->desc_arr[i];
--- linux-ein-5.4.0.orig/drivers/dma/mv_xor_v2.c
+++ linux-ein-5.4.0/drivers/dma/mv_xor_v2.c
@@ -751,7 +751,7 @@
 
 	xor_dev->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(xor_dev->clk) && PTR_ERR(xor_dev->clk) == -EPROBE_DEFER) {
-		ret = EPROBE_DEFER;
+		ret = -EPROBE_DEFER;
 		goto disable_reg_clk;
 	}
 	if (!IS_ERR(xor_dev->clk)) {
@@ -766,8 +766,10 @@
 		goto disable_clk;
 
 	msi_desc = first_msi_entry(&pdev->dev);
-	if (!msi_desc)
+	if (!msi_desc) {
+		ret = -ENODEV;
 		goto free_msi_irqs;
+	}
 	xor_dev->msi_desc = msi_desc;
 
 	ret = devm_request_irq(&pdev->dev, msi_desc->irq,
@@ -893,6 +895,7 @@
 	tasklet_kill(&xor_dev->irq_tasklet);
 
 	clk_disable_unprepare(xor_dev->clk);
+	clk_disable_unprepare(xor_dev->reg_clk);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/dma/of-dma.c
+++ linux-ein-5.4.0/drivers/dma/of-dma.c
@@ -65,18 +65,23 @@
 		return NULL;
 
 	ofdma_target = of_dma_find_controller(&dma_spec_target);
-	if (!ofdma_target)
-		return NULL;
+	if (!ofdma_target) {
+		ofdma->dma_router->route_free(ofdma->dma_router->dev,
+					      route_data);
+		chan = ERR_PTR(-EPROBE_DEFER);
+		goto err;
+	}
 
 	chan = ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target);
-	if (chan) {
-		chan->router = ofdma->dma_router;
-		chan->route_data = route_data;
-	} else {
+	if (IS_ERR_OR_NULL(chan)) {
 		ofdma->dma_router->route_free(ofdma->dma_router->dev,
 					      route_data);
+	} else {
+		chan->router = ofdma->dma_router;
+		chan->route_data = route_data;
 	}
 
+err:
 	/*
 	 * Need to put the node back since the ofdma->of_dma_route_allocate
 	 * has taken it for generating the new, translated dma_spec
--- linux-ein-5.4.0.orig/drivers/dma/owl-dma.c
+++ linux-ein-5.4.0/drivers/dma/owl-dma.c
@@ -175,13 +175,11 @@
  * @id: physical index to this channel
  * @base: virtual memory base for the dma channel
  * @vchan: the virtual channel currently being served by this physical channel
- * @lock: a lock to use when altering an instance of this struct
  */
 struct owl_dma_pchan {
 	u32			id;
 	void __iomem		*base;
 	struct owl_dma_vchan	*vchan;
-	spinlock_t		lock;
 };
 
 /**
@@ -437,14 +435,14 @@
 	for (i = 0; i < od->nr_pchans; i++) {
 		pchan = &od->pchans[i];
 
-		spin_lock_irqsave(&pchan->lock, flags);
+		spin_lock_irqsave(&od->lock, flags);
 		if (!pchan->vchan) {
 			pchan->vchan = vchan;
-			spin_unlock_irqrestore(&pchan->lock, flags);
+			spin_unlock_irqrestore(&od->lock, flags);
 			break;
 		}
 
-		spin_unlock_irqrestore(&pchan->lock, flags);
+		spin_unlock_irqrestore(&od->lock, flags);
 	}
 
 	return pchan;
@@ -1203,6 +1201,7 @@
 	owl_dma_free(od);
 
 	clk_disable_unprepare(od->clk);
+	dma_pool_destroy(od->lli_pool);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/dma/pch_dma.c
+++ linux-ein-5.4.0/drivers/dma/pch_dma.c
@@ -865,6 +865,7 @@
 	}
 
 	pci_set_master(pdev);
+	pd->dma.dev = &pdev->dev;
 
 	err = request_irq(pdev->irq, pd_irq, IRQF_SHARED, DRV_NAME, pd);
 	if (err) {
@@ -880,7 +881,6 @@
 		goto err_free_irq;
 	}
 
-	pd->dma.dev = &pdev->dev;
 
 	INIT_LIST_HEAD(&pd->dma.channels);
 
--- linux-ein-5.4.0.orig/drivers/dma/pl330.c
+++ linux-ein-5.4.0/drivers/dma/pl330.c
@@ -403,6 +403,12 @@
 	 */
 	BUSY,
 	/*
+	 * Pause was called while descriptor was BUSY. Due to hardware
+	 * limitations, only termination is possible for descriptors
+	 * that have been paused.
+	 */
+	PAUSED,
+	/*
 	 * Sitting on the channel work_list but xfer done
 	 * by PL330 core
 	 */
@@ -1048,7 +1054,7 @@
 	return true;
 }
 
-static bool _start(struct pl330_thread *thrd)
+static bool pl330_start_thread(struct pl330_thread *thrd)
 {
 	switch (_state(thrd)) {
 	case PL330_STATE_FAULT_COMPLETING:
@@ -1696,7 +1702,7 @@
 			thrd->req_running = -1;
 
 			/* Get going again ASAP */
-			_start(thrd);
+			pl330_start_thread(thrd);
 
 			/* For now, just make a list of callbacks to be done */
 			list_add_tail(&descdone->rqd, &pl330->req_done);
@@ -2035,7 +2041,7 @@
 	list_for_each_entry(desc, &pch->work_list, node) {
 
 		/* If already submitted */
-		if (desc->status == BUSY)
+		if (desc->status == BUSY || desc->status == PAUSED)
 			continue;
 
 		ret = pl330_submit_req(pch->thread, desc);
@@ -2083,7 +2089,7 @@
 	} else {
 		/* Make sure the PL330 Channel thread is active */
 		spin_lock(&pch->thread->dmac->lock);
-		_start(pch->thread);
+		pl330_start_thread(pch->thread);
 		spin_unlock(&pch->thread->dmac->lock);
 	}
 
@@ -2101,7 +2107,7 @@
 			if (power_down) {
 				pch->active = true;
 				spin_lock(&pch->thread->dmac->lock);
-				_start(pch->thread);
+				pl330_start_thread(pch->thread);
 				spin_unlock(&pch->thread->dmac->lock);
 				power_down = false;
 			}
@@ -2322,6 +2328,7 @@
 {
 	struct dma_pl330_chan *pch = to_pchan(chan);
 	struct pl330_dmac *pl330 = pch->dmac;
+	struct dma_pl330_desc *desc;
 	unsigned long flags;
 
 	pm_runtime_get_sync(pl330->ddma.dev);
@@ -2331,6 +2338,10 @@
 	_stop(pch->thread);
 	spin_unlock(&pl330->lock);
 
+	list_for_each_entry(desc, &pch->work_list, node) {
+		if (desc->status == BUSY)
+			desc->status = PAUSED;
+	}
 	spin_unlock_irqrestore(&pch->lock, flags);
 	pm_runtime_mark_last_busy(pl330->ddma.dev);
 	pm_runtime_put_autosuspend(pl330->ddma.dev);
@@ -2421,7 +2432,7 @@
 		else if (running && desc == running)
 			transferred =
 				pl330_get_current_xferred_count(pch, desc);
-		else if (desc->status == BUSY)
+		else if (desc->status == BUSY || desc->status == PAUSED)
 			/*
 			 * Busy but not running means either just enqueued,
 			 * or finished and not yet marked done
@@ -2438,6 +2449,9 @@
 			case DONE:
 				ret = DMA_COMPLETE;
 				break;
+			case PAUSED:
+				ret = DMA_PAUSED;
+				break;
 			case PREP:
 			case BUSY:
 				ret = DMA_IN_PROGRESS;
@@ -2585,7 +2599,7 @@
 
 	/* If the DMAC pool is empty, alloc new */
 	if (!desc) {
-		DEFINE_SPINLOCK(lock);
+		static DEFINE_SPINLOCK(lock);
 		LIST_HEAD(pool);
 
 		if (!add_desc(&pool, &lock, GFP_ATOMIC, 1))
@@ -2690,13 +2704,15 @@
 	for (i = 0; i < len / period_len; i++) {
 		desc = pl330_get_desc(pch);
 		if (!desc) {
+			unsigned long iflags;
+
 			dev_err(pch->dmac->ddma.dev, "%s:%d Unable to fetch desc\n",
 				__func__, __LINE__);
 
 			if (!first)
 				return NULL;
 
-			spin_lock_irqsave(&pl330->pool_lock, flags);
+			spin_lock_irqsave(&pl330->pool_lock, iflags);
 
 			while (!list_empty(&first->node)) {
 				desc = list_entry(first->node.next,
@@ -2706,7 +2722,7 @@
 
 			list_move_tail(&first->node, &pl330->desc_pool);
 
-			spin_unlock_irqrestore(&pl330->pool_lock, flags);
+			spin_unlock_irqrestore(&pl330->pool_lock, iflags);
 
 			return NULL;
 		}
@@ -2788,14 +2804,14 @@
 	while (burst != (1 << desc->rqcfg.brst_size))
 		desc->rqcfg.brst_size++;
 
+	desc->rqcfg.brst_len = get_burst_len(desc, len);
 	/*
 	 * If burst size is smaller than bus width then make sure we only
 	 * transfer one at a time to avoid a burst stradling an MFIFO entry.
 	 */
-	if (desc->rqcfg.brst_size * 8 < pl330->pcfg.data_bus_width)
+	if (burst * 8 < pl330->pcfg.data_bus_width)
 		desc->rqcfg.brst_len = 1;
 
-	desc->rqcfg.brst_len = get_burst_len(desc, len);
 	desc->bytes_requested = len;
 
 	desc->txd.flags = flags;
--- linux-ein-5.4.0.orig/drivers/dma/pxa_dma.c
+++ linux-ein-5.4.0/drivers/dma/pxa_dma.c
@@ -911,13 +911,6 @@
 		*dcmd |= PXA_DCMD_BURST16;
 	else if (maxburst == 32)
 		*dcmd |= PXA_DCMD_BURST32;
-
-	/* FIXME: drivers should be ported over to use the filter
-	 * function. Once that's done, the following two lines can
-	 * be removed.
-	 */
-	if (chan->cfg.slave_id)
-		chan->drcmr = chan->cfg.slave_id;
 }
 
 static struct dma_async_tx_descriptor *
@@ -1256,14 +1249,14 @@
 		return -ENOMEM;
 
 	for (i = 0; i < nb_phy_chans; i++)
-		if (platform_get_irq(op, i) > 0)
+		if (platform_get_irq_optional(op, i) > 0)
 			nr_irq++;
 
 	for (i = 0; i < nb_phy_chans; i++) {
 		phy = &pdev->phys[i];
 		phy->base = pdev->base;
 		phy->idx = i;
-		irq = platform_get_irq(op, i);
+		irq = platform_get_irq_optional(op, i);
 		if ((nr_irq > 1) && (irq > 0))
 			ret = devm_request_irq(&op->dev, irq,
 					       pxad_chan_handler,
--- linux-ein-5.4.0.orig/drivers/dma/qcom/Kconfig
+++ linux-ein-5.4.0/drivers/dma/qcom/Kconfig
@@ -10,6 +10,7 @@
 
 config QCOM_HIDMA_MGMT
 	tristate "Qualcomm Technologies HIDMA Management support"
+	depends on HAS_IOMEM
 	select DMA_ENGINE
 	help
 	  Enable support for the Qualcomm Technologies HIDMA Management.
--- linux-ein-5.4.0.orig/drivers/dma/qcom/hidma_mgmt.c
+++ linux-ein-5.4.0/drivers/dma/qcom/hidma_mgmt.c
@@ -418,8 +418,23 @@
 		hidma_mgmt_of_populate_channels(child);
 	}
 #endif
-	return platform_driver_register(&hidma_mgmt_driver);
+	/*
+	 * We do not check for return value here, as it is assumed that
+	 * platform_driver_register must not fail. The reason for this is that
+	 * the (potential) hidma_mgmt_of_populate_channels calls above are not
+	 * cleaned up if it does fail, and to do this work is quite
+	 * complicated. In particular, various calls of of_address_to_resource,
+	 * of_irq_to_resource, platform_device_register_full, of_dma_configure,
+	 * and of_msi_configure which then call other functions and so on, must
+	 * be cleaned up - this is not a trivial exercise.
+	 *
+	 * Currently, this module is not intended to be unloaded, and there is
+	 * no module_exit function defined which does the needed cleanup. For
+	 * this reason, we have to assume success here.
+	 */
+	platform_driver_register(&hidma_mgmt_driver);
 
+	return 0;
 }
 module_init(hidma_mgmt_init);
 MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/dma/sh/rcar-dmac.c
+++ linux-ein-5.4.0/drivers/dma/sh/rcar-dmac.c
@@ -1824,8 +1824,13 @@
 	dmac->dev = &pdev->dev;
 	platform_set_drvdata(pdev, dmac);
 	dmac->dev->dma_parms = &dmac->parms;
-	dma_set_max_seg_size(dmac->dev, RCAR_DMATCR_MASK);
-	dma_set_mask_and_coherent(dmac->dev, DMA_BIT_MASK(40));
+	ret = dma_set_max_seg_size(dmac->dev, RCAR_DMATCR_MASK);
+	if (ret)
+		return ret;
+
+	ret = dma_set_mask_and_coherent(dmac->dev, DMA_BIT_MASK(40));
+	if (ret)
+		return ret;
 
 	ret = rcar_dmac_parse_of(&pdev->dev, dmac);
 	if (ret < 0)
@@ -1855,7 +1860,7 @@
 
 	/* Enable runtime PM and initialize the device. */
 	pm_runtime_enable(&pdev->dev);
-	ret = pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_resume_and_get(&pdev->dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "runtime PM get sync failed (%d)\n", ret);
 		return ret;
--- linux-ein-5.4.0.orig/drivers/dma/sh/usb-dmac.c
+++ linux-ein-5.4.0/drivers/dma/sh/usb-dmac.c
@@ -586,6 +586,8 @@
 		desc->residue = usb_dmac_get_current_residue(chan, desc,
 							desc->sg_index - 1);
 		desc->done_cookie = desc->vd.tx.cookie;
+		desc->vd.tx_result.result = DMA_TRANS_NOERROR;
+		desc->vd.tx_result.residue = desc->residue;
 		vchan_cookie_complete(&desc->vd);
 
 		/* Restart the next transfer if this driver has a next desc */
@@ -853,8 +855,8 @@
 
 error:
 	of_dma_controller_free(pdev->dev.of_node);
-	pm_runtime_put(&pdev->dev);
 error_pm:
+	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/dma/sprd-dma.c
+++ linux-ein-5.4.0/drivers/dma/sprd-dma.c
@@ -1201,11 +1201,8 @@
 {
 	struct sprd_dma_dev *sdev = platform_get_drvdata(pdev);
 	struct sprd_dma_chn *c, *cn;
-	int ret;
 
-	ret = pm_runtime_get_sync(&pdev->dev);
-	if (ret < 0)
-		return ret;
+	pm_runtime_get_sync(&pdev->dev);
 
 	/* explicitly free the irq */
 	if (sdev->irq > 0)
@@ -1230,6 +1227,7 @@
 	{ .compatible = "sprd,sc9860-dma", },
 	{},
 };
+MODULE_DEVICE_TABLE(of, sprd_dma_match);
 
 static int __maybe_unused sprd_dma_runtime_suspend(struct device *dev)
 {
--- linux-ein-5.4.0.orig/drivers/dma/st_fdma.c
+++ linux-ein-5.4.0/drivers/dma/st_fdma.c
@@ -873,4 +873,4 @@
 MODULE_DESCRIPTION("STMicroelectronics FDMA engine driver");
 MODULE_AUTHOR("Ludovic.barre <Ludovic.barre@st.com>");
 MODULE_AUTHOR("Peter Griffin <peter.griffin@linaro.org>");
-MODULE_ALIAS("platform: " DRIVER_NAME);
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- linux-ein-5.4.0.orig/drivers/dma/ste_dma40.c
+++ linux-ein-5.4.0/drivers/dma/ste_dma40.c
@@ -3599,6 +3599,10 @@
 	spin_lock_init(&base->lcla_pool.lock);
 
 	base->irq = platform_get_irq(pdev, 0);
+	if (base->irq < 0) {
+		ret = base->irq;
+		goto destroy_cache;
+	}
 
 	ret = request_irq(base->irq, d40_handle_interrupt, 0, D40_NAME, base);
 	if (ret) {
@@ -3678,6 +3682,9 @@
 
 	kfree(base->lcla_pool.base_unaligned);
 
+	if (base->lcpa_base)
+		iounmap(base->lcpa_base);
+
 	if (base->phy_lcpa)
 		release_mem_region(base->phy_lcpa,
 				   base->lcpa_size);
--- linux-ein-5.4.0.orig/drivers/dma/stm32-dma.c
+++ linux-ein-5.4.0/drivers/dma/stm32-dma.c
@@ -488,8 +488,10 @@
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
 
-	if (chan->busy) {
-		stm32_dma_stop(chan);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vdesc);
+		if (chan->busy)
+			stm32_dma_stop(chan);
 		chan->desc = NULL;
 	}
 
@@ -545,6 +547,8 @@
 		if (!vdesc)
 			return;
 
+		list_del(&vdesc->node);
+
 		chan->desc = to_stm32_dma_desc(vdesc);
 		chan->next_sg = 0;
 	}
@@ -622,7 +626,6 @@
 		} else {
 			chan->busy = false;
 			if (chan->next_sg == chan->desc->num_sgs) {
-				list_del(&chan->desc->vdesc.node);
 				vchan_cookie_complete(&chan->desc->vdesc);
 				chan->desc = NULL;
 			}
--- linux-ein-5.4.0.orig/drivers/dma/stm32-mdma.c
+++ linux-ein-5.4.0/drivers/dma/stm32-mdma.c
@@ -40,7 +40,6 @@
 					 STM32_MDMA_SHIFT(mask))
 
 #define STM32_MDMA_GISR0		0x0000 /* MDMA Int Status Reg 1 */
-#define STM32_MDMA_GISR1		0x0004 /* MDMA Int Status Reg 2 */
 
 /* MDMA Channel x interrupt/status register */
 #define STM32_MDMA_CISR(x)		(0x40 + 0x40 * (x)) /* x = 0..62 */
@@ -184,7 +183,7 @@
 #define STM32_MDMA_CTBR(x)		(0x68 + 0x40 * (x))
 #define STM32_MDMA_CTBR_DBUS		BIT(17)
 #define STM32_MDMA_CTBR_SBUS		BIT(16)
-#define STM32_MDMA_CTBR_TSEL_MASK	GENMASK(7, 0)
+#define STM32_MDMA_CTBR_TSEL_MASK	GENMASK(5, 0)
 #define STM32_MDMA_CTBR_TSEL(n)		STM32_MDMA_SET(n, \
 						      STM32_MDMA_CTBR_TSEL_MASK)
 
@@ -196,7 +195,7 @@
 
 #define STM32_MDMA_MAX_BUF_LEN		128
 #define STM32_MDMA_MAX_BLOCK_LEN	65536
-#define STM32_MDMA_MAX_CHANNELS		63
+#define STM32_MDMA_MAX_CHANNELS		32
 #define STM32_MDMA_MAX_REQUESTS		256
 #define STM32_MDMA_MAX_BURST		128
 #define STM32_MDMA_VERY_HIGH_PRIORITY	0x11
@@ -1127,6 +1126,8 @@
 		return;
 	}
 
+	list_del(&vdesc->node);
+
 	chan->desc = to_stm32_mdma_desc(vdesc);
 	hwdesc = chan->desc->node[0].hwdesc;
 	chan->curr_hwdesc = 0;
@@ -1206,6 +1207,10 @@
 	unsigned long flags;
 	u32 status, reg;
 
+	/* Transfer can be terminated */
+	if (!chan->desc || (stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)) & STM32_MDMA_CCR_EN))
+		return -EPERM;
+
 	hwdesc = chan->desc->node[chan->curr_hwdesc].hwdesc;
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
@@ -1242,8 +1247,10 @@
 	LIST_HEAD(head);
 
 	spin_lock_irqsave(&chan->vchan.lock, flags);
-	if (chan->busy) {
-		stm32_mdma_stop(chan);
+	if (chan->desc) {
+		vchan_terminate_vdesc(&chan->desc->vdesc);
+		if (chan->busy)
+			stm32_mdma_stop(chan);
 		chan->desc = NULL;
 	}
 	vchan_get_all_descriptors(&chan->vchan, &head);
@@ -1331,7 +1338,6 @@
 
 static void stm32_mdma_xfer_end(struct stm32_mdma_chan *chan)
 {
-	list_del(&chan->desc->vdesc.node);
 	vchan_cookie_complete(&chan->desc->vdesc);
 	chan->desc = NULL;
 	chan->busy = false;
@@ -1348,21 +1354,11 @@
 
 	/* Find out which channel generates the interrupt */
 	status = readl_relaxed(dmadev->base + STM32_MDMA_GISR0);
-	if (status) {
-		id = __ffs(status);
-	} else {
-		status = readl_relaxed(dmadev->base + STM32_MDMA_GISR1);
-		if (!status) {
-			dev_dbg(mdma2dev(dmadev), "spurious it\n");
-			return IRQ_NONE;
-		}
-		id = __ffs(status);
-		/*
-		 * As GISR0 provides status for channel id from 0 to 31,
-		 * so GISR1 provides status for channel id from 32 to 62
-		 */
-		id += 32;
+	if (!status) {
+		dev_dbg(mdma2dev(dmadev), "spurious it\n");
+		return IRQ_NONE;
 	}
+	id = __ffs(status);
 
 	chan = &dmadev->chan[id];
 	if (!chan) {
--- linux-ein-5.4.0.orig/drivers/dma/tegra20-apb-dma.c
+++ linux-ein-5.4.0/drivers/dma/tegra20-apb-dma.c
@@ -281,7 +281,7 @@
 
 	/* Do not allocate if desc are waiting for ack */
 	list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) {
-		if (async_tx_test_ack(&dma_desc->txd)) {
+		if (async_tx_test_ack(&dma_desc->txd) && !dma_desc->cb_count) {
 			list_del(&dma_desc->node);
 			spin_unlock_irqrestore(&tdc->lock, flags);
 			dma_desc->txd.flags = 0;
@@ -756,10 +756,6 @@
 	bool was_busy;
 
 	spin_lock_irqsave(&tdc->lock, flags);
-	if (list_empty(&tdc->pending_sg_req)) {
-		spin_unlock_irqrestore(&tdc->lock, flags);
-		return 0;
-	}
 
 	if (!tdc->busy)
 		goto skip_dma_stop;
@@ -1291,8 +1287,7 @@
 
 	dev_dbg(tdc2dev(tdc), "Freeing channel %d\n", tdc->id);
 
-	if (tdc->busy)
-		tegra_dma_terminate_all(dc);
+	tegra_dma_terminate_all(dc);
 
 	spin_lock_irqsave(&tdc->lock, flags);
 	list_splice_init(&tdc->pending_sg_req, &sg_req_list);
--- linux-ein-5.4.0.orig/drivers/dma/tegra210-adma.c
+++ linux-ein-5.4.0/drivers/dma/tegra210-adma.c
@@ -224,7 +224,7 @@
 	int ret;
 
 	/* Clear any interrupts */
-	tdma_write(tdma, tdma->cdata->global_int_clear, 0x1);
+	tdma_write(tdma, tdma->cdata->ch_base_offset + tdma->cdata->global_int_clear, 0x1);
 
 	/* Assert soft reset */
 	tdma_write(tdma, ADMA_GLOBAL_SOFT_RESET, 0x1);
@@ -658,6 +658,7 @@
 
 	ret = pm_runtime_get_sync(tdc2dev(tdc));
 	if (ret < 0) {
+		pm_runtime_put_noidle(tdc2dev(tdc));
 		free_irq(tdc->irq, tdc);
 		return ret;
 	}
@@ -869,8 +870,10 @@
 	pm_runtime_enable(&pdev->dev);
 
 	ret = pm_runtime_get_sync(&pdev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(&pdev->dev);
 		goto rpm_disable;
+	}
 
 	ret = tegra_adma_init(tdma);
 	if (ret)
@@ -900,7 +903,7 @@
 	ret = dma_async_device_register(&tdma->dma_dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "ADMA registration failed: %d\n", ret);
-		goto irq_dispose;
+		goto rpm_put;
 	}
 
 	ret = of_dma_controller_register(pdev->dev.of_node,
--- linux-ein-5.4.0.orig/drivers/dma/ti/dma-crossbar.c
+++ linux-ein-5.4.0/drivers/dma/ti/dma-crossbar.c
@@ -247,6 +247,7 @@
 	if (dma_spec->args[0] >= xbar->xbar_requests) {
 		dev_err(&pdev->dev, "Invalid XBAR request number: %d\n",
 			dma_spec->args[0]);
+		put_device(&pdev->dev);
 		return ERR_PTR(-EINVAL);
 	}
 
@@ -254,12 +255,14 @@
 	dma_spec->np = of_parse_phandle(ofdma->of_node, "dma-masters", 0);
 	if (!dma_spec->np) {
 		dev_err(&pdev->dev, "Can't get DMA master\n");
+		put_device(&pdev->dev);
 		return ERR_PTR(-EINVAL);
 	}
 
 	map = kzalloc(sizeof(*map), GFP_KERNEL);
 	if (!map) {
 		of_node_put(dma_spec->np);
+		put_device(&pdev->dev);
 		return ERR_PTR(-ENOMEM);
 	}
 
@@ -270,6 +273,8 @@
 		mutex_unlock(&xbar->mutex);
 		dev_err(&pdev->dev, "Run out of free DMA requests\n");
 		kfree(map);
+		of_node_put(dma_spec->np);
+		put_device(&pdev->dev);
 		return ERR_PTR(-ENOMEM);
 	}
 	set_bit(map->xbar_out, xbar->dma_inuse);
--- linux-ein-5.4.0.orig/drivers/dma/ti/edma.c
+++ linux-ein-5.4.0/drivers/dma/ti/edma.c
@@ -2403,8 +2403,10 @@
 
 		ecc->tc_list = devm_kcalloc(dev, ecc->num_tc,
 					    sizeof(*ecc->tc_list), GFP_KERNEL);
-		if (!ecc->tc_list)
-			return -ENOMEM;
+		if (!ecc->tc_list) {
+			ret = -ENOMEM;
+			goto err_reg1;
+		}
 
 		for (i = 0;; i++) {
 			ret = of_parse_phandle_with_fixed_args(node, "ti,tptcs",
--- linux-ein-5.4.0.orig/drivers/dma/virt-dma.c
+++ linux-ein-5.4.0/drivers/dma/virt-dma.c
@@ -104,9 +104,8 @@
 		dmaengine_desc_get_callback(&vd->tx, &cb);
 
 		list_del(&vd->node);
-		vchan_vdesc_fini(vd);
-
 		dmaengine_desc_callback_invoke(&cb, &vd->tx_result);
+		vchan_vdesc_fini(vd);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/dma/xilinx/xilinx_dma.c
+++ linux-ein-5.4.0/drivers/dma/xilinx/xilinx_dma.c
@@ -333,6 +333,7 @@
  * @genlock: Support genlock mode
  * @err: Channel has errors
  * @idle: Check for channel idle
+ * @terminating: Check for channel being synchronized by user
  * @tasklet: Cleanup work after irq
  * @config: Device configuration info
  * @flush_on_fsync: Flush on Frame sync
@@ -370,6 +371,7 @@
 	bool genlock;
 	bool err;
 	bool idle;
+	bool terminating;
 	struct tasklet_struct tasklet;
 	struct xilinx_vdma_config config;
 	bool flush_on_fsync;
@@ -454,8 +456,8 @@
 #define to_dma_tx_descriptor(tx) \
 	container_of(tx, struct xilinx_dma_tx_descriptor, async_tx)
 #define xilinx_dma_poll_timeout(chan, reg, val, cond, delay_us, timeout_us) \
-	readl_poll_timeout(chan->xdev->regs + chan->ctrl_offset + reg, val, \
-			   cond, delay_us, timeout_us)
+	readl_poll_timeout_atomic(chan->xdev->regs + chan->ctrl_offset + reg, \
+				  val, cond, delay_us, timeout_us)
 
 /* IO accessors */
 static inline u32 dma_read(struct xilinx_dma_chan *chan, u32 reg)
@@ -844,6 +846,13 @@
 		/* Run any dependencies, then free the descriptor */
 		dma_run_dependencies(&desc->async_tx);
 		xilinx_dma_free_tx_descriptor(chan, desc);
+
+		/*
+		 * While we ran a callback the user called a terminate function,
+		 * which takes care of cleaning up any remaining descriptors
+		 */
+		if (chan->terminating)
+			break;
 	}
 
 	spin_unlock_irqrestore(&chan->lock, flags);
@@ -1433,6 +1442,7 @@
 
 	chan->err = false;
 	chan->idle = true;
+	chan->desc_pendingcount = 0;
 	chan->desc_submitcount = 0;
 
 	return err;
@@ -1617,6 +1627,8 @@
 	if (desc->cyclic)
 		chan->cyclic = true;
 
+	chan->terminating = false;
+
 	spin_unlock_irqrestore(&chan->lock, flags);
 
 	return cookie;
@@ -2073,6 +2085,7 @@
 	}
 
 	/* Remove and free all of the descriptors in the lists */
+	chan->terminating = true;
 	xilinx_dma_free_descriptors(chan);
 	chan->idle = true;
 
@@ -2430,7 +2443,7 @@
 		has_dre = false;
 
 	if (!has_dre)
-		xdev->common.copy_align = fls(width - 1);
+		xdev->common.copy_align = (enum dmaengine_alignment)fls(width - 1);
 
 	if (of_device_is_compatible(node, "xlnx,axi-vdma-mm2s-channel") ||
 	    of_device_is_compatible(node, "xlnx,axi-dma-mm2s-channel") ||
@@ -2542,7 +2555,8 @@
 static int xilinx_dma_child_probe(struct xilinx_dma_device *xdev,
 				    struct device_node *node)
 {
-	int ret, i, nr_channels = 1;
+	int ret, i;
+	u32 nr_channels = 1;
 
 	ret = of_property_read_u32(node, "dma-channels", &nr_channels);
 	if ((ret < 0) && xdev->mcdma)
@@ -2612,7 +2626,6 @@
 	struct device_node *node = pdev->dev.of_node;
 	struct xilinx_dma_device *xdev;
 	struct device_node *child, *np = pdev->dev.of_node;
-	struct resource *io;
 	u32 num_frames, addr_width, len_width;
 	int i, err;
 
@@ -2638,11 +2651,11 @@
 		return err;
 
 	/* Request and map I/O memory */
-	io = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	xdev->regs = devm_ioremap_resource(&pdev->dev, io);
-	if (IS_ERR(xdev->regs))
-		return PTR_ERR(xdev->regs);
-
+	xdev->regs = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(xdev->regs)) {
+		err = PTR_ERR(xdev->regs);
+		goto disable_clks;
+	}
 	/* Retrieve the DMA engine properties from the device tree */
 	xdev->max_buffer_len = GENMASK(XILINX_DMA_MAX_TRANS_LEN_MAX - 1, 0);
 
@@ -2669,7 +2682,7 @@
 		if (err < 0) {
 			dev_err(xdev->dev,
 				"missing xlnx,num-fstores property\n");
-			return err;
+			goto disable_clks;
 		}
 
 		err = of_property_read_u32(node, "xlnx,flush-fsync",
@@ -2689,7 +2702,11 @@
 		xdev->ext_addr = false;
 
 	/* Set the dma mask bits */
-	dma_set_mask(xdev->dev, DMA_BIT_MASK(addr_width));
+	err = dma_set_mask_and_coherent(xdev->dev, DMA_BIT_MASK(addr_width));
+	if (err < 0) {
+		dev_err(xdev->dev, "DMA mask error %d\n", err);
+		goto disable_clks;
+	}
 
 	/* Initialize the DMA engine */
 	xdev->common.dev = &pdev->dev;
@@ -2730,8 +2747,10 @@
 	/* Initialize the channels */
 	for_each_child_of_node(node, child) {
 		err = xilinx_dma_child_probe(xdev, child);
-		if (err < 0)
-			goto disable_clks;
+		if (err < 0) {
+			of_node_put(child);
+			goto error;
+		}
 	}
 
 	if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
@@ -2741,7 +2760,11 @@
 	}
 
 	/* Register the DMA engine with the core */
-	dma_async_device_register(&xdev->common);
+	err = dma_async_device_register(&xdev->common);
+	if (err) {
+		dev_err(xdev->dev, "failed to register the dma device\n");
+		goto error;
+	}
 
 	err = of_dma_controller_register(node, of_dma_xilinx_xlate,
 					 xdev);
@@ -2760,12 +2783,12 @@
 
 	return 0;
 
-disable_clks:
-	xdma_disable_allclks(xdev);
 error:
 	for (i = 0; i < xdev->nr_channels; i++)
 		if (xdev->chan[i])
 			xilinx_dma_chan_remove(xdev->chan[i]);
+disable_clks:
+	xdma_disable_allclks(xdev);
 
 	return err;
 }
--- linux-ein-5.4.0.orig/drivers/dma/xilinx/zynqmp_dma.c
+++ linux-ein-5.4.0/drivers/dma/xilinx/zynqmp_dma.c
@@ -123,10 +123,12 @@
 /* Max transfer size per descriptor */
 #define ZYNQMP_DMA_MAX_TRANS_LEN	0x40000000
 
+/* Max burst lengths */
+#define ZYNQMP_DMA_MAX_DST_BURST_LEN    32768U
+#define ZYNQMP_DMA_MAX_SRC_BURST_LEN    32768U
+
 /* Reset values for data attributes */
 #define ZYNQMP_DMA_AXCACHE_VAL		0xF
-#define ZYNQMP_DMA_ARLEN_RST_VAL	0xF
-#define ZYNQMP_DMA_AWLEN_RST_VAL	0xF
 
 #define ZYNQMP_DMA_SRC_ISSUE_RST_VAL	0x1F
 
@@ -230,7 +232,7 @@
 	bool is_dmacoherent;
 	struct tasklet_struct tasklet;
 	bool idle;
-	u32 desc_size;
+	size_t desc_size;
 	bool err;
 	u32 bus_width;
 	u32 src_burst_len;
@@ -465,7 +467,7 @@
 	struct zynqmp_dma_desc_sw *desc;
 	int i, ret;
 
-	ret = pm_runtime_get_sync(chan->dev);
+	ret = pm_runtime_resume_and_get(chan->dev);
 	if (ret < 0)
 		return ret;
 
@@ -487,7 +489,8 @@
 	}
 
 	chan->desc_pool_v = dma_alloc_coherent(chan->dev,
-					       (2 * chan->desc_size * ZYNQMP_DMA_NUM_DESCS),
+					       (2 * ZYNQMP_DMA_DESC_SIZE(chan) *
+					       ZYNQMP_DMA_NUM_DESCS),
 					       &chan->desc_pool_p, GFP_KERNEL);
 	if (!chan->desc_pool_v)
 		return -ENOMEM;
@@ -534,17 +537,19 @@
 
 static void zynqmp_dma_config(struct zynqmp_dma_chan *chan)
 {
-	u32 val;
+	u32 val, burst_val;
 
 	val = readl(chan->regs + ZYNQMP_DMA_CTRL0);
 	val |= ZYNQMP_DMA_POINT_TYPE_SG;
 	writel(val, chan->regs + ZYNQMP_DMA_CTRL0);
 
 	val = readl(chan->regs + ZYNQMP_DMA_DATA_ATTR);
+	burst_val = __ilog2_u32(chan->src_burst_len);
 	val = (val & ~ZYNQMP_DMA_ARLEN) |
-		(chan->src_burst_len << ZYNQMP_DMA_ARLEN_OFST);
+		((burst_val << ZYNQMP_DMA_ARLEN_OFST) & ZYNQMP_DMA_ARLEN);
+	burst_val = __ilog2_u32(chan->dst_burst_len);
 	val = (val & ~ZYNQMP_DMA_AWLEN) |
-		(chan->dst_burst_len << ZYNQMP_DMA_AWLEN_OFST);
+		((burst_val << ZYNQMP_DMA_AWLEN_OFST) & ZYNQMP_DMA_AWLEN);
 	writel(val, chan->regs + ZYNQMP_DMA_DATA_ATTR);
 }
 
@@ -560,8 +565,10 @@
 {
 	struct zynqmp_dma_chan *chan = to_chan(dchan);
 
-	chan->src_burst_len = config->src_maxburst;
-	chan->dst_burst_len = config->dst_maxburst;
+	chan->src_burst_len = clamp(config->src_maxburst, 1U,
+		ZYNQMP_DMA_MAX_SRC_BURST_LEN);
+	chan->dst_burst_len = clamp(config->dst_maxburst, 1U,
+		ZYNQMP_DMA_MAX_DST_BURST_LEN);
 
 	return 0;
 }
@@ -887,8 +894,8 @@
 		return PTR_ERR(chan->regs);
 
 	chan->bus_width = ZYNQMP_DMA_BUS_WIDTH_64;
-	chan->dst_burst_len = ZYNQMP_DMA_AWLEN_RST_VAL;
-	chan->src_burst_len = ZYNQMP_DMA_ARLEN_RST_VAL;
+	chan->dst_burst_len = ZYNQMP_DMA_MAX_DST_BURST_LEN;
+	chan->src_burst_len = ZYNQMP_DMA_MAX_SRC_BURST_LEN;
 	err = of_property_read_u32(node, "xlnx,bus-width", &chan->bus_width);
 	if (err < 0) {
 		dev_err(&pdev->dev, "missing xlnx,bus-width property\n");
--- linux-ein-5.4.0.orig/drivers/edac/altera_edac.c
+++ linux-ein-5.4.0/drivers/edac/altera_edac.c
@@ -349,7 +349,7 @@
 	if (irq < 0) {
 		edac_printk(KERN_ERR, EDAC_MC,
 			    "No irq %d in DT\n", irq);
-		return -ENODEV;
+		return irq;
 	}
 
 	/* Arria10 has a 2nd IRQ */
@@ -560,6 +560,7 @@
 	.reg_write = s10_protected_reg_write,
 	.use_single_read = true,
 	.use_single_write = true,
+	.fast_io = true,
 };
 
 /************** </Stratix10 EDAC Memory Controller Functions> ***********/
--- linux-ein-5.4.0.orig/drivers/edac/amd64_edac.c
+++ linux-ein-5.4.0/drivers/edac/amd64_edac.c
@@ -22,6 +22,9 @@
 /* Number of Unified Memory Controllers */
 static u8 num_umcs;
 
+/* Device for the PCI component */
+static struct device *pci_ctl_dev;
+
 /*
  * Valid scrub rates for the K8 hardware memory scrubber. We map the scrubbing
  * bandwidth to a valid bit pattern. The 'set' operation finds the 'matching-
@@ -215,7 +218,7 @@
 
 	scrubval = scrubrates[i].scrubval;
 
-	if (pvt->fam == 0x17 || pvt->fam == 0x18) {
+	if (pvt->umc) {
 		__f17h_set_scrubval(pvt, scrubval);
 	} else if (pvt->fam == 0x15 && pvt->model == 0x60) {
 		f15h_select_dct(pvt, 0);
@@ -257,18 +260,7 @@
 	int i, retval = -EINVAL;
 	u32 scrubval = 0;
 
-	switch (pvt->fam) {
-	case 0x15:
-		/* Erratum #505 */
-		if (pvt->model < 0x10)
-			f15h_select_dct(pvt, 0);
-
-		if (pvt->model == 0x60)
-			amd64_read_pci_cfg(pvt->F2, F15H_M60H_SCRCTRL, &scrubval);
-		break;
-
-	case 0x17:
-	case 0x18:
+	if (pvt->umc) {
 		amd64_read_pci_cfg(pvt->F6, F17H_SCR_BASE_ADDR, &scrubval);
 		if (scrubval & BIT(0)) {
 			amd64_read_pci_cfg(pvt->F6, F17H_SCR_LIMIT_ADDR, &scrubval);
@@ -277,11 +269,17 @@
 		} else {
 			scrubval = 0;
 		}
-		break;
+	} else if (pvt->fam == 0x15) {
+		/* Erratum #505 */
+		if (pvt->model < 0x10)
+			f15h_select_dct(pvt, 0);
 
-	default:
+		if (pvt->model == 0x60)
+			amd64_read_pci_cfg(pvt->F2, F15H_M60H_SCRCTRL, &scrubval);
+		else
+			amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
+	} else {
 		amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
-		break;
 	}
 
 	scrubval = scrubval & 0x001F;
@@ -792,12 +790,14 @@
 #define CS_ODD_PRIMARY		BIT(1)
 #define CS_EVEN_SECONDARY	BIT(2)
 #define CS_ODD_SECONDARY	BIT(3)
+#define CS_3R_INTERLEAVE	BIT(4)
 
 #define CS_EVEN			(CS_EVEN_PRIMARY | CS_EVEN_SECONDARY)
 #define CS_ODD			(CS_ODD_PRIMARY | CS_ODD_SECONDARY)
 
 static int f17_get_cs_mode(int dimm, u8 ctrl, struct amd64_pvt *pvt)
 {
+	u8 base, count = 0;
 	int cs_mode = 0;
 
 	if (csrow_enabled(2 * dimm, ctrl, pvt))
@@ -810,6 +810,20 @@
 	if (csrow_sec_enabled(2 * dimm + 1, ctrl, pvt))
 		cs_mode |= CS_ODD_SECONDARY;
 
+	/*
+	 * 3 Rank inteleaving support.
+	 * There should be only three bases enabled and their two masks should
+	 * be equal.
+	 */
+	for_each_chip_select(base, ctrl, pvt)
+		count += csrow_enabled(base, ctrl, pvt);
+
+	if (count == 3 &&
+	    pvt->csels[ctrl].csmasks[0] == pvt->csels[ctrl].csmasks[1]) {
+		edac_dbg(1, "3R interleaving in use.\n");
+		cs_mode |= CS_3R_INTERLEAVE;
+	}
+
 	return cs_mode;
 }
 
@@ -1056,6 +1070,16 @@
 {
 	u32 dram_ctrl, dcsm;
 
+	if (pvt->umc) {
+		if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5))
+			pvt->dram_type = MEM_LRDDR4;
+		else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4))
+			pvt->dram_type = MEM_RDDR4;
+		else
+			pvt->dram_type = MEM_DDR4;
+		return;
+	}
+
 	switch (pvt->fam) {
 	case 0xf:
 		if (pvt->ext_model >= K8_REV_F)
@@ -1101,16 +1125,6 @@
 	case 0x16:
 		goto ddr3;
 
-	case 0x17:
-	case 0x18:
-		if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5))
-			pvt->dram_type = MEM_LRDDR4;
-		else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4))
-			pvt->dram_type = MEM_RDDR4;
-		else
-			pvt->dram_type = MEM_DDR4;
-		return;
-
 	default:
 		WARN(1, KERN_ERR "%s: Family??? 0x%x\n", __func__, pvt->fam);
 		pvt->dram_type = MEM_EMPTY;
@@ -1618,10 +1632,14 @@
 	 *
 	 * The MSB is the number of bits in the full mask because BIT[0] is
 	 * always 0.
+	 *
+	 * In the special 3 Rank interleaving case, a single bit is flipped
+	 * without swapping with the most significant bit. This can be handled
+	 * by keeping the MSB where it is and ignoring the single zero bit.
 	 */
 	msb = fls(addr_mask_orig) - 1;
 	weight = hweight_long(addr_mask_orig);
-	num_zero_bits = msb - weight;
+	num_zero_bits = msb - weight - !!(cs_mode & CS_3R_INTERLEAVE);
 
 	/* Take the number of zero bits off from the top of the mask. */
 	addr_mask_deinterleaved = GENMASK_ULL(msb - num_zero_bits, 1);
@@ -2317,6 +2335,15 @@
 			.dbam_to_cs		= f17_addr_mask_to_cs_size,
 		}
 	},
+	[F17_M60H_CPUS] = {
+		.ctl_name = "F17h_M60h",
+		.f0_id = PCI_DEVICE_ID_AMD_17H_M60H_DF_F0,
+		.f6_id = PCI_DEVICE_ID_AMD_17H_M60H_DF_F6,
+		.ops = {
+			.early_channel_count	= f17_early_channel_count,
+			.dbam_to_cs		= f17_addr_mask_to_cs_size,
+		}
+	},
 	[F17_M70H_CPUS] = {
 		.ctl_name = "F17h_M70h",
 		.f0_id = PCI_DEVICE_ID_AMD_17H_M70H_DF_F0,
@@ -2326,6 +2353,15 @@
 			.dbam_to_cs		= f17_addr_mask_to_cs_size,
 		}
 	},
+	[F19_CPUS] = {
+		.ctl_name = "F19h",
+		.f0_id = PCI_DEVICE_ID_AMD_19H_DF_F0,
+		.f6_id = PCI_DEVICE_ID_AMD_19H_DF_F6,
+		.ops = {
+			.early_channel_count	= f17_early_channel_count,
+			.dbam_to_cs		= f17_addr_mask_to_cs_size,
+		}
+	},
 };
 
 /*
@@ -2661,6 +2697,9 @@
 			return -ENODEV;
 		}
 
+		if (!pci_ctl_dev)
+			pci_ctl_dev = &pvt->F0->dev;
+
 		edac_dbg(1, "F0: %s\n", pci_name(pvt->F0));
 		edac_dbg(1, "F3: %s\n", pci_name(pvt->F3));
 		edac_dbg(1, "F6: %s\n", pci_name(pvt->F6));
@@ -2685,6 +2724,9 @@
 		return -ENODEV;
 	}
 
+	if (!pci_ctl_dev)
+		pci_ctl_dev = &pvt->F2->dev;
+
 	edac_dbg(1, "F1: %s\n", pci_name(pvt->F1));
 	edac_dbg(1, "F2: %s\n", pci_name(pvt->F2));
 	edac_dbg(1, "F3: %s\n", pci_name(pvt->F3));
@@ -2936,6 +2978,7 @@
 			dimm->mtype = pvt->dram_type;
 			dimm->edac_mode = edac_mode;
 			dimm->dtype = dev_type;
+			dimm->grain = 64;
 		}
 	}
 
@@ -3012,6 +3055,7 @@
 			dimm = csrow->channels[j]->dimm;
 			dimm->mtype = pvt->dram_type;
 			dimm->edac_mode = edac_mode;
+			dimm->grain = 64;
 		}
 	}
 
@@ -3364,6 +3408,10 @@
 			fam_type = &family_types[F17_M30H_CPUS];
 			pvt->ops = &family_types[F17_M30H_CPUS].ops;
 			break;
+		} else if (pvt->model >= 0x60 && pvt->model <= 0x6f) {
+			fam_type = &family_types[F17_M60H_CPUS];
+			pvt->ops = &family_types[F17_M60H_CPUS].ops;
+			break;
 		} else if (pvt->model >= 0x70 && pvt->model <= 0x7f) {
 			fam_type = &family_types[F17_M70H_CPUS];
 			pvt->ops = &family_types[F17_M70H_CPUS].ops;
@@ -3378,6 +3426,12 @@
 			family_types[F17_CPUS].ctl_name = "F18h";
 		break;
 
+	case 0x19:
+		fam_type	= &family_types[F19_CPUS];
+		pvt->ops	= &family_types[F19_CPUS].ops;
+		family_types[F19_CPUS].ctl_name = "F19h";
+		break;
+
 	default:
 		amd64_err("Unsupported family!\n");
 		return NULL;
@@ -3609,21 +3663,10 @@
 
 static void setup_pci_device(void)
 {
-	struct mem_ctl_info *mci;
-	struct amd64_pvt *pvt;
-
 	if (pci_ctl)
 		return;
 
-	mci = edac_mc_find(0);
-	if (!mci)
-		return;
-
-	pvt = mci->pvt_info;
-	if (pvt->umc)
-		pci_ctl = edac_pci_create_generic_ctl(&pvt->F0->dev, EDAC_MOD_STR);
-	else
-		pci_ctl = edac_pci_create_generic_ctl(&pvt->F2->dev, EDAC_MOD_STR);
+	pci_ctl = edac_pci_create_generic_ctl(pci_ctl_dev, EDAC_MOD_STR);
 	if (!pci_ctl) {
 		pr_warn("%s(): Unable to create PCI control\n", __func__);
 		pr_warn("%s(): PCI error report via EDAC not set\n", __func__);
@@ -3637,6 +3680,7 @@
 	{ X86_VENDOR_AMD, 0x16, X86_MODEL_ANY,	X86_FEATURE_ANY, 0 },
 	{ X86_VENDOR_AMD, 0x17, X86_MODEL_ANY,	X86_FEATURE_ANY, 0 },
 	{ X86_VENDOR_HYGON, 0x18, X86_MODEL_ANY, X86_FEATURE_ANY, 0 },
+	{ X86_VENDOR_AMD, 0x19, X86_MODEL_ANY,	X86_FEATURE_ANY, 0 },
 	{ }
 };
 MODULE_DEVICE_TABLE(x86cpu, amd64_cpuids);
@@ -3706,6 +3750,8 @@
 	return 0;
 
 err_pci:
+	pci_ctl_dev = NULL;
+
 	msrs_free(msrs);
 	msrs = NULL;
 
@@ -3737,6 +3783,8 @@
 	kfree(ecc_stngs);
 	ecc_stngs = NULL;
 
+	pci_ctl_dev = NULL;
+
 	msrs_free(msrs);
 	msrs = NULL;
 }
--- linux-ein-5.4.0.orig/drivers/edac/amd64_edac.h
+++ linux-ein-5.4.0/drivers/edac/amd64_edac.h
@@ -120,8 +120,12 @@
 #define PCI_DEVICE_ID_AMD_17H_M10H_DF_F6 0x15ee
 #define PCI_DEVICE_ID_AMD_17H_M30H_DF_F0 0x1490
 #define PCI_DEVICE_ID_AMD_17H_M30H_DF_F6 0x1496
+#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F0 0x1448
+#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F6 0x144e
 #define PCI_DEVICE_ID_AMD_17H_M70H_DF_F0 0x1440
 #define PCI_DEVICE_ID_AMD_17H_M70H_DF_F6 0x1446
+#define PCI_DEVICE_ID_AMD_19H_DF_F0	0x1650
+#define PCI_DEVICE_ID_AMD_19H_DF_F6	0x1656
 
 /*
  * Function 1 - Address Map
@@ -291,7 +295,9 @@
 	F17_CPUS,
 	F17_M10H_CPUS,
 	F17_M30H_CPUS,
+	F17_M60H_CPUS,
 	F17_M70H_CPUS,
+	F19_CPUS,
 	NUM_FAMILIES,
 };
 
--- linux-ein-5.4.0.orig/drivers/edac/armada_xp_edac.c
+++ linux-ein-5.4.0/drivers/edac/armada_xp_edac.c
@@ -178,7 +178,7 @@
 				     "details unavailable (multiple errors)");
 	if (cnt_dbe)
 		edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
-				     cnt_sbe, /* error count */
+				     cnt_dbe, /* error count */
 				     0, 0, 0, /* pfn, offset, syndrome */
 				     -1, -1, -1, /* top, mid, low layer */
 				     mci->ctl_name,
--- linux-ein-5.4.0.orig/drivers/edac/aspeed_edac.c
+++ linux-ein-5.4.0/drivers/edac/aspeed_edac.c
@@ -209,8 +209,8 @@
 	/* register interrupt handler */
 	irq = platform_get_irq(pdev, 0);
 	dev_dbg(&pdev->dev, "got irq %d\n", irq);
-	if (!irq)
-		return -ENODEV;
+	if (irq < 0)
+		return irq;
 
 	rc = devm_request_irq(&pdev->dev, irq, mcr_isr, IRQF_TRIGGER_HIGH,
 			      DRV_NAME, ctx);
--- linux-ein-5.4.0.orig/drivers/edac/edac_device.c
+++ linux-ein-5.4.0/drivers/edac/edac_device.c
@@ -34,6 +34,9 @@
 static DEFINE_MUTEX(device_ctls_mutex);
 static LIST_HEAD(edac_device_list);
 
+/* Default workqueue processing interval on this instance, in msecs */
+#define DEFAULT_POLL_INTERVAL 1000
+
 #ifdef CONFIG_EDAC_DEBUG
 static void edac_device_dump_device(struct edac_device_ctl_info *edac_dev)
 {
@@ -366,7 +369,7 @@
 	 * whole one second to save timers firing all over the period
 	 * between integral seconds
 	 */
-	if (edac_dev->poll_msec == 1000)
+	if (edac_dev->poll_msec == DEFAULT_POLL_INTERVAL)
 		edac_queue_work(&edac_dev->work, round_jiffies_relative(edac_dev->delay));
 	else
 		edac_queue_work(&edac_dev->work, edac_dev->delay);
@@ -396,7 +399,7 @@
 	 * timers firing on sub-second basis, while they are happy
 	 * to fire together on the 1 second exactly
 	 */
-	if (edac_dev->poll_msec == 1000)
+	if (edac_dev->poll_msec == DEFAULT_POLL_INTERVAL)
 		edac_queue_work(&edac_dev->work, round_jiffies_relative(edac_dev->delay));
 	else
 		edac_queue_work(&edac_dev->work, edac_dev->delay);
@@ -424,17 +427,16 @@
  *	Then restart the workq on the new delay
  */
 void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev,
-					unsigned long value)
+				    unsigned long msec)
 {
-	unsigned long jiffs = msecs_to_jiffies(value);
-
-	if (value == 1000)
-		jiffs = round_jiffies_relative(value);
-
-	edac_dev->poll_msec = value;
-	edac_dev->delay	    = jiffs;
+	edac_dev->poll_msec = msec;
+	edac_dev->delay	    = msecs_to_jiffies(msec);
 
-	edac_mod_work(&edac_dev->work, jiffs);
+	/* See comment in edac_device_workq_setup() above */
+	if (edac_dev->poll_msec == DEFAULT_POLL_INTERVAL)
+		edac_mod_work(&edac_dev->work, round_jiffies_relative(edac_dev->delay));
+	else
+		edac_mod_work(&edac_dev->work, edac_dev->delay);
 }
 
 int edac_device_alloc_index(void)
@@ -473,11 +475,7 @@
 		/* This instance is NOW RUNNING */
 		edac_dev->op_state = OP_RUNNING_POLL;
 
-		/*
-		 * enable workq processing on this instance,
-		 * default = 1000 msec
-		 */
-		edac_device_workq_setup(edac_dev, 1000);
+		edac_device_workq_setup(edac_dev, edac_dev->poll_msec ?: DEFAULT_POLL_INTERVAL);
 	} else {
 		edac_dev->op_state = OP_RUNNING_INTERRUPT;
 	}
--- linux-ein-5.4.0.orig/drivers/edac/edac_device_sysfs.c
+++ linux-ein-5.4.0/drivers/edac/edac_device_sysfs.c
@@ -275,6 +275,7 @@
 
 	/* Error exit stack */
 err_kobj_reg:
+	kobject_put(&edac_dev->kobj);
 	module_put(edac_dev->owner);
 
 err_out:
--- linux-ein-5.4.0.orig/drivers/edac/edac_mc.c
+++ linux-ein-5.4.0/drivers/edac/edac_mc.c
@@ -263,7 +263,7 @@
 	else
 		return (char *)ptr;
 
-	r = (unsigned long)p % align;
+	r = (unsigned long)ptr % align;
 
 	if (r == 0)
 		return (char *)ptr;
@@ -503,16 +503,10 @@
 {
 	edac_dbg(1, "\n");
 
-	/* If we're not yet registered with sysfs free only what was allocated
-	 * in edac_mc_alloc().
-	 */
-	if (!device_is_registered(&mci->dev)) {
-		_edac_mc_free(mci);
-		return;
-	}
+	if (device_is_registered(&mci->dev))
+		edac_unregister_sysfs(mci);
 
-	/* the mci instance is freed here, when the sysfs object is dropped */
-	edac_unregister_sysfs(mci);
+	_edac_mc_free(mci);
 }
 EXPORT_SYMBOL_GPL(edac_mc_free);
 
--- linux-ein-5.4.0.orig/drivers/edac/edac_mc_sysfs.c
+++ linux-ein-5.4.0/drivers/edac/edac_mc_sysfs.c
@@ -276,10 +276,7 @@
 
 static void csrow_attr_release(struct device *dev)
 {
-	struct csrow_info *csrow = container_of(dev, struct csrow_info, dev);
-
-	edac_dbg(1, "device %s released\n", dev_name(dev));
-	kfree(csrow);
+	/* release device with _edac_mc_free() */
 }
 
 static const struct device_type csrow_attr_type = {
@@ -447,8 +444,7 @@
 		csrow = mci->csrows[i];
 		if (!nr_pages_per_csrow(csrow))
 			continue;
-
-		device_del(&mci->csrows[i]->dev);
+		device_unregister(&mci->csrows[i]->dev);
 	}
 
 	return err;
@@ -620,10 +616,7 @@
 
 static void dimm_attr_release(struct device *dev)
 {
-	struct dimm_info *dimm = container_of(dev, struct dimm_info, dev);
-
-	edac_dbg(1, "device %s released\n", dev_name(dev));
-	kfree(dimm);
+	/* release device with _edac_mc_free() */
 }
 
 static const struct device_type dimm_attr_type = {
@@ -906,10 +899,7 @@
 
 static void mci_attr_release(struct device *dev)
 {
-	struct mem_ctl_info *mci = container_of(dev, struct mem_ctl_info, dev);
-
-	edac_dbg(1, "device %s released\n", dev_name(dev));
-	kfree(mci);
+	/* release device with _edac_mc_free() */
 }
 
 static const struct device_type mci_attr_type = {
--- linux-ein-5.4.0.orig/drivers/edac/edac_module.h
+++ linux-ein-5.4.0/drivers/edac/edac_module.h
@@ -57,7 +57,7 @@
 bool edac_mod_work(struct delayed_work *work, unsigned long delay);
 
 extern void edac_device_reset_delay_period(struct edac_device_ctl_info
-					   *edac_dev, unsigned long value);
+					   *edac_dev, unsigned long msec);
 extern void edac_mc_reset_delay_period(unsigned long value);
 
 extern void *edac_align_ptr(void **p, unsigned size, int n_elems);
--- linux-ein-5.4.0.orig/drivers/edac/edac_pci_sysfs.c
+++ linux-ein-5.4.0/drivers/edac/edac_pci_sysfs.c
@@ -386,7 +386,7 @@
 
 	/* Error unwind statck */
 kobject_init_and_add_fail:
-	kfree(edac_pci_top_main_kobj);
+	kobject_put(edac_pci_top_main_kobj);
 
 kzalloc_fail:
 	module_put(THIS_MODULE);
--- linux-ein-5.4.0.orig/drivers/edac/ghes_edac.c
+++ linux-ein-5.4.0/drivers/edac/ghes_edac.c
@@ -26,9 +26,18 @@
 	char msg[80];
 };
 
-static atomic_t ghes_init = ATOMIC_INIT(0);
+static refcount_t ghes_refcount = REFCOUNT_INIT(0);
+
+/*
+ * Access to ghes_pvt must be protected by ghes_lock. The spinlock
+ * also provides the necessary (implicit) memory barrier for the SMP
+ * case to make the pointer visible on another CPU.
+ */
 static struct ghes_edac_pvt *ghes_pvt;
 
+/* GHES registration mutex */
+static DEFINE_MUTEX(ghes_reg_mutex);
+
 /*
  * Sync with other, potentially concurrent callers of
  * ghes_edac_report_mem_error(). We don't know what the
@@ -79,9 +88,8 @@
 		(*num_dimm)++;
 }
 
-static int get_dimm_smbios_index(u16 handle)
+static int get_dimm_smbios_index(struct mem_ctl_info *mci, u16 handle)
 {
-	struct mem_ctl_info *mci = ghes_pvt->mci;
 	int i;
 
 	for (i = 0; i < mci->tot_dimms; i++) {
@@ -198,14 +206,11 @@
 	enum hw_event_mc_err_type type;
 	struct edac_raw_error_desc *e;
 	struct mem_ctl_info *mci;
-	struct ghes_edac_pvt *pvt = ghes_pvt;
+	struct ghes_edac_pvt *pvt;
 	unsigned long flags;
 	char *p;
 	u8 grain_bits;
 
-	if (!pvt)
-		return;
-
 	/*
 	 * We can do the locking below because GHES defers error processing
 	 * from NMI to IRQ context. Whenever that changes, we'd at least
@@ -216,12 +221,17 @@
 
 	spin_lock_irqsave(&ghes_lock, flags);
 
+	pvt = ghes_pvt;
+	if (!pvt)
+		goto unlock;
+
 	mci = pvt->mci;
 	e = &mci->error_desc;
 
 	/* Cleans the error report buffer */
 	memset(e, 0, sizeof (*e));
 	e->error_count = 1;
+	e->grain = 1;
 	strcpy(e->label, "unknown label");
 	e->msg = pvt->msg;
 	e->other_detail = pvt->other_detail;
@@ -317,7 +327,7 @@
 
 	/* Error grain */
 	if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK)
-		e->grain = ~(mem_err->physical_addr_mask & ~PAGE_MASK);
+		e->grain = ~mem_err->physical_addr_mask + 1;
 
 	/* Memory error location, mapped on e->location */
 	p = e->location;
@@ -348,7 +358,7 @@
 			p += sprintf(p, "DIMM DMI handle: 0x%.4x ",
 				     mem_err->mem_dev_handle);
 
-		index = get_dimm_smbios_index(mem_err->mem_dev_handle);
+		index = get_dimm_smbios_index(mci, mem_err->mem_dev_handle);
 		if (index >= 0) {
 			e->top_layer = index;
 			e->enable_per_layer_report = true;
@@ -433,8 +443,13 @@
 	if (p > pvt->other_detail)
 		*(p - 1) = '\0';
 
+	/* Sanity-check driver-supplied grain value. */
+	if (WARN_ON_ONCE(!e->grain))
+		e->grain = 1;
+
+	grain_bits = fls_long(e->grain - 1);
+
 	/* Generate the trace event */
-	grain_bits = fls_long(e->grain);
 	snprintf(pvt->detail_location, sizeof(pvt->detail_location),
 		 "APEI location: %s %s", e->location, e->other_detail);
 	trace_mc_event(type, e->msg, e->label, e->error_count,
@@ -443,6 +458,8 @@
 		       grain_bits, e->syndrome, pvt->detail_location);
 
 	edac_raw_mc_handle_error(type, mci, e);
+
+unlock:
 	spin_unlock_irqrestore(&ghes_lock, flags);
 }
 
@@ -457,10 +474,12 @@
 int ghes_edac_register(struct ghes *ghes, struct device *dev)
 {
 	bool fake = false;
-	int rc, num_dimm = 0;
+	int rc = 0, num_dimm = 0;
 	struct mem_ctl_info *mci;
+	struct ghes_edac_pvt *pvt;
 	struct edac_mc_layer layers[1];
 	struct ghes_edac_dimm_fill dimm_fill;
+	unsigned long flags;
 	int idx = -1;
 
 	if (IS_ENABLED(CONFIG_X86)) {
@@ -469,14 +488,18 @@
 		if (!force_load && idx < 0)
 			return -ENODEV;
 	} else {
+		force_load = true;
 		idx = 0;
 	}
 
+	/* finish another registration/unregistration instance first */
+	mutex_lock(&ghes_reg_mutex);
+
 	/*
 	 * We have only one logical memory controller to which all DIMMs belong.
 	 */
-	if (atomic_inc_return(&ghes_init) > 1)
-		return 0;
+	if (refcount_inc_not_zero(&ghes_refcount))
+		goto unlock;
 
 	/* Get the number of DIMMs */
 	dmi_walk(ghes_edac_count_dimms, &num_dimm);
@@ -494,12 +517,13 @@
 	mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct ghes_edac_pvt));
 	if (!mci) {
 		pr_info("Can't allocate memory for EDAC data\n");
-		return -ENOMEM;
+		rc = -ENOMEM;
+		goto unlock;
 	}
 
-	ghes_pvt	= mci->pvt_info;
-	ghes_pvt->ghes	= ghes;
-	ghes_pvt->mci	= mci;
+	pvt		= mci->pvt_info;
+	pvt->ghes	= ghes;
+	pvt->mci	= mci;
 
 	mci->pdev = dev;
 	mci->mtype_cap = MEM_FLAG_EMPTY;
@@ -541,23 +565,51 @@
 	if (rc < 0) {
 		pr_info("Can't register at EDAC core\n");
 		edac_mc_free(mci);
-		return -ENODEV;
+		rc = -ENODEV;
+		goto unlock;
 	}
-	return 0;
+
+	spin_lock_irqsave(&ghes_lock, flags);
+	ghes_pvt = pvt;
+	spin_unlock_irqrestore(&ghes_lock, flags);
+
+	/* only set on success */
+	refcount_set(&ghes_refcount, 1);
+
+unlock:
+	mutex_unlock(&ghes_reg_mutex);
+
+	return rc;
 }
 
 void ghes_edac_unregister(struct ghes *ghes)
 {
 	struct mem_ctl_info *mci;
+	unsigned long flags;
 
-	if (!ghes_pvt)
+	if (!force_load)
 		return;
 
-	if (atomic_dec_return(&ghes_init))
-		return;
+	mutex_lock(&ghes_reg_mutex);
 
-	mci = ghes_pvt->mci;
+	if (!refcount_dec_and_test(&ghes_refcount))
+		goto unlock;
+
+	/*
+	 * Wait for the irq handler being finished.
+	 */
+	spin_lock_irqsave(&ghes_lock, flags);
+	mci = ghes_pvt ? ghes_pvt->mci : NULL;
 	ghes_pvt = NULL;
-	edac_mc_del_mc(mci->pdev);
-	edac_mc_free(mci);
+	spin_unlock_irqrestore(&ghes_lock, flags);
+
+	if (!mci)
+		goto unlock;
+
+	mci = edac_mc_del_mc(mci->pdev);
+	if (mci)
+		edac_mc_free(mci);
+
+unlock:
+	mutex_unlock(&ghes_reg_mutex);
 }
--- linux-ein-5.4.0.orig/drivers/edac/highbank_mc_edac.c
+++ linux-ein-5.4.0/drivers/edac/highbank_mc_edac.c
@@ -174,8 +174,10 @@
 	drvdata = mci->pvt_info;
 	platform_set_drvdata(pdev, mci);
 
-	if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL))
-		return -ENOMEM;
+	if (!devres_open_group(&pdev->dev, NULL, GFP_KERNEL)) {
+		res = -ENOMEM;
+		goto free;
+	}
 
 	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!r) {
@@ -243,6 +245,7 @@
 	edac_mc_del_mc(&pdev->dev);
 err:
 	devres_release_group(&pdev->dev, NULL);
+free:
 	edac_mc_free(mci);
 	return res;
 }
--- linux-ein-5.4.0.orig/drivers/edac/i10nm_base.c
+++ linux-ein-5.4.0/drivers/edac/i10nm_base.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/io.h>
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
 #include <asm/mce.h>
@@ -19,14 +20,16 @@
 #define i10nm_printk(level, fmt, arg...)	\
 	edac_printk(level, "i10nm", fmt, ##arg)
 
-#define I10NM_GET_SCK_BAR(d, reg)		\
+#define I10NM_GET_SCK_BAR(d, reg)	\
 	pci_read_config_dword((d)->uracu, 0xd0, &(reg))
 #define I10NM_GET_IMC_BAR(d, i, reg)	\
 	pci_read_config_dword((d)->uracu, 0xd8 + (i) * 4, &(reg))
 #define I10NM_GET_DIMMMTR(m, i, j)	\
-	(*(u32 *)((m)->mbase + 0x2080c + (i) * 0x4000 + (j) * 4))
-#define I10NM_GET_MCDDRTCFG(m, i, j)	\
-	(*(u32 *)((m)->mbase + 0x20970 + (i) * 0x4000 + (j) * 4))
+	readl((m)->mbase + 0x2080c + (i) * 0x4000 + (j) * 4)
+#define I10NM_GET_MCDDRTCFG(m, i)	\
+	readl((m)->mbase + 0x20970 + (i) * 0x4000)
+#define I10NM_GET_MCMTR(m, i)		\
+	readl((m)->mbase + 0x20ef8 + (i) * 0x4000)
 
 #define I10NM_GET_SCK_MMIO_BASE(reg)	(GET_BITFIELD(reg, 0, 28) << 23)
 #define I10NM_GET_IMC_MMIO_OFFSET(reg)	(GET_BITFIELD(reg, 0, 10) << 12)
@@ -50,11 +53,10 @@
 	if (unlikely(pci_enable_device(pdev) < 0)) {
 		edac_dbg(2, "Failed to enable device %02x:%02x.%x\n",
 			 bus, dev, fun);
+		pci_dev_put(pdev);
 		return NULL;
 	}
 
-	pci_dev_get(pdev);
-
 	return pdev;
 }
 
@@ -134,7 +136,7 @@
 {
 	u32 mcmtr;
 
-	mcmtr = *(u32 *)(imc->mbase + 0x20ef8 + chan * 0x4000);
+	mcmtr = I10NM_GET_MCMTR(imc, chan);
 	edac_dbg(1, "ch%d mcmtr reg %x\n", chan, mcmtr);
 
 	return !!GET_BITFIELD(mcmtr, 2, 2);
@@ -153,16 +155,16 @@
 			continue;
 
 		ndimms = 0;
+		mcddrtcfg = I10NM_GET_MCDDRTCFG(imc, i);
 		for (j = 0; j < I10NM_NUM_DIMMS; j++) {
 			dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms,
 					     mci->n_layers, i, j, 0);
 			mtr = I10NM_GET_DIMMMTR(imc, i, j);
-			mcddrtcfg = I10NM_GET_MCDDRTCFG(imc, i, j);
 			edac_dbg(1, "dimmmtr 0x%x mcddrtcfg 0x%x (mc%d ch%d dimm%d)\n",
 				 mtr, mcddrtcfg, imc->mc, i, j);
 
 			if (IS_DIMM_PRESENT(mtr))
-				ndimms += skx_get_dimm_info(mtr, 0, dimm,
+				ndimms += skx_get_dimm_info(mtr, 0, 0, dimm,
 							    imc, i, j);
 			else if (IS_NVDIMM_PRESENT(mcddrtcfg, j))
 				ndimms += skx_get_nvdimm_info(dimm, imc, i, j,
@@ -246,6 +248,9 @@
 	if (owner && strncmp(owner, EDAC_MOD_STR, sizeof(EDAC_MOD_STR)))
 		return -EBUSY;
 
+	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+		return -ENODEV;
+
 	id = x86_match_cpu(i10nm_cpuids);
 	if (!id)
 		return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/edac/i5100_edac.c
+++ linux-ein-5.4.0/drivers/edac/i5100_edac.c
@@ -1074,16 +1074,15 @@
 				    PCI_DEVICE_ID_INTEL_5100_19, 0);
 	if (!einj) {
 		ret = -ENODEV;
-		goto bail_einj;
+		goto bail_mc_free;
 	}
 
 	rc = pci_enable_device(einj);
 	if (rc < 0) {
 		ret = rc;
-		goto bail_disable_einj;
+		goto bail_einj;
 	}
 
-
 	mci->pdev = &pdev->dev;
 
 	priv = mci->pvt_info;
@@ -1149,14 +1148,14 @@
 bail_scrub:
 	priv->scrub_enable = 0;
 	cancel_delayed_work_sync(&(priv->i5100_scrubbing));
-	edac_mc_free(mci);
-
-bail_disable_einj:
 	pci_disable_device(einj);
 
 bail_einj:
 	pci_dev_put(einj);
 
+bail_mc_free:
+	edac_mc_free(mci);
+
 bail_disable_ch1:
 	pci_disable_device(ch1mm);
 
--- linux-ein-5.4.0.orig/drivers/edac/i7core_edac.c
+++ linux-ein-5.4.0/drivers/edac/i7core_edac.c
@@ -1711,9 +1711,9 @@
 	if (uncorrected_error) {
 		core_err_cnt = 1;
 		if (ripv)
-			tp_event = HW_EVENT_ERR_FATAL;
-		else
 			tp_event = HW_EVENT_ERR_UNCORRECTED;
+		else
+			tp_event = HW_EVENT_ERR_FATAL;
 	} else {
 		tp_event = HW_EVENT_ERR_CORRECTED;
 	}
--- linux-ein-5.4.0.orig/drivers/edac/ie31200_edac.c
+++ linux-ein-5.4.0/drivers/edac/ie31200_edac.c
@@ -170,6 +170,8 @@
 	(n << (28 + (2 * skl) - PAGE_SHIFT))
 
 static int nr_channels;
+static struct pci_dev *mci_pdev;
+static int ie31200_registered = 1;
 
 struct ie31200_priv {
 	void __iomem *window;
@@ -541,12 +543,16 @@
 static int ie31200_init_one(struct pci_dev *pdev,
 			    const struct pci_device_id *ent)
 {
-	edac_dbg(0, "MC:\n");
+	int rc;
 
+	edac_dbg(0, "MC:\n");
 	if (pci_enable_device(pdev) < 0)
 		return -EIO;
+	rc = ie31200_probe1(pdev, ent->driver_data);
+	if (rc == 0 && !mci_pdev)
+		mci_pdev = pci_dev_get(pdev);
 
-	return ie31200_probe1(pdev, ent->driver_data);
+	return rc;
 }
 
 static void ie31200_remove_one(struct pci_dev *pdev)
@@ -555,6 +561,8 @@
 	struct ie31200_priv *priv;
 
 	edac_dbg(0, "\n");
+	pci_dev_put(mci_pdev);
+	mci_pdev = NULL;
 	mci = edac_mc_del_mc(&pdev->dev);
 	if (!mci)
 		return;
@@ -596,17 +604,53 @@
 
 static int __init ie31200_init(void)
 {
+	int pci_rc, i;
+
 	edac_dbg(3, "MC:\n");
 	/* Ensure that the OPSTATE is set correctly for POLL or NMI */
 	opstate_init();
 
-	return pci_register_driver(&ie31200_driver);
+	pci_rc = pci_register_driver(&ie31200_driver);
+	if (pci_rc < 0)
+		goto fail0;
+
+	if (!mci_pdev) {
+		ie31200_registered = 0;
+		for (i = 0; ie31200_pci_tbl[i].vendor != 0; i++) {
+			mci_pdev = pci_get_device(ie31200_pci_tbl[i].vendor,
+						  ie31200_pci_tbl[i].device,
+						  NULL);
+			if (mci_pdev)
+				break;
+		}
+		if (!mci_pdev) {
+			edac_dbg(0, "ie31200 pci_get_device fail\n");
+			pci_rc = -ENODEV;
+			goto fail1;
+		}
+		pci_rc = ie31200_init_one(mci_pdev, &ie31200_pci_tbl[i]);
+		if (pci_rc < 0) {
+			edac_dbg(0, "ie31200 init fail\n");
+			pci_rc = -ENODEV;
+			goto fail1;
+		}
+	}
+	return 0;
+
+fail1:
+	pci_unregister_driver(&ie31200_driver);
+fail0:
+	pci_dev_put(mci_pdev);
+
+	return pci_rc;
 }
 
 static void __exit ie31200_exit(void)
 {
 	edac_dbg(3, "MC:\n");
 	pci_unregister_driver(&ie31200_driver);
+	if (!ie31200_registered)
+		ie31200_remove_one(mci_pdev);
 }
 
 module_init(ie31200_init);
--- linux-ein-5.4.0.orig/drivers/edac/mce_amd.c
+++ linux-ein-5.4.0/drivers/edac/mce_amd.c
@@ -175,6 +175,33 @@
 	"L2 Fill Data error",
 };
 
+static const char * const smca_ls2_mce_desc[] = {
+	"An ECC error was detected on a data cache read by a probe or victimization",
+	"An ECC error or L2 poison was detected on a data cache read by a load",
+	"An ECC error was detected on a data cache read-modify-write by a store",
+	"An ECC error or poison bit mismatch was detected on a tag read by a probe or victimization",
+	"An ECC error or poison bit mismatch was detected on a tag read by a load",
+	"An ECC error or poison bit mismatch was detected on a tag read by a store",
+	"An ECC error was detected on an EMEM read by a load",
+	"An ECC error was detected on an EMEM read-modify-write by a store",
+	"A parity error was detected in an L1 TLB entry by any access",
+	"A parity error was detected in an L2 TLB entry by any access",
+	"A parity error was detected in a PWC entry by any access",
+	"A parity error was detected in an STQ entry by any access",
+	"A parity error was detected in an LDQ entry by any access",
+	"A parity error was detected in a MAB entry by any access",
+	"A parity error was detected in an SCB entry state field by any access",
+	"A parity error was detected in an SCB entry address field by any access",
+	"A parity error was detected in an SCB entry data field by any access",
+	"A parity error was detected in a WCB entry by any access",
+	"A poisoned line was detected in an SCB entry by any access",
+	"A SystemReadDataError error was reported on read data returned from L2 for a load",
+	"A SystemReadDataError error was reported on read data returned from L2 for an SCB store",
+	"A SystemReadDataError error was reported on read data returned from L2 for a WCB store",
+	"A hardware assertion error was reported",
+	"A parity error was detected in an STLF, SCB EMEM entry or SRB store data by any access",
+};
+
 static const char * const smca_if_mce_desc[] = {
 	"Op Cache Microtag Probe Port Parity Error",
 	"IC Microtag or Full Tag Multi-hit Error",
@@ -378,6 +405,7 @@
 
 static struct smca_mce_desc smca_mce_descs[] = {
 	[SMCA_LS]	= { smca_ls_mce_desc,	ARRAY_SIZE(smca_ls_mce_desc)	},
+	[SMCA_LS_V2]	= { smca_ls2_mce_desc,	ARRAY_SIZE(smca_ls2_mce_desc)	},
 	[SMCA_IF]	= { smca_if_mce_desc,	ARRAY_SIZE(smca_if_mce_desc)	},
 	[SMCA_L2_CACHE]	= { smca_l2_mce_desc,	ARRAY_SIZE(smca_l2_mce_desc)	},
 	[SMCA_DE]	= { smca_de_mce_desc,	ARRAY_SIZE(smca_de_mce_desc)	},
@@ -975,7 +1003,7 @@
 	}
 
 	if (bank_type == SMCA_UMC && xec == 0 && decode_dram_ecc)
-		decode_dram_ecc(cpu_to_node(m->extcpu), m);
+		decode_dram_ecc(topology_die_id(m->extcpu), m);
 }
 
 static inline void amd_decode_err_code(u16 ec)
@@ -1161,6 +1189,11 @@
 	if (!fam_ops)
 		return -ENOMEM;
 
+	if (boot_cpu_has(X86_FEATURE_SMCA)) {
+		xec_mask = 0x3f;
+		goto out;
+	}
+
 	switch (c->x86) {
 	case 0xf:
 		fam_ops->mc0_mce = k8_mc0_mce;
@@ -1209,11 +1242,8 @@
 
 	case 0x17:
 	case 0x18:
-		xec_mask = 0x3f;
-		if (!boot_cpu_has(X86_FEATURE_SMCA)) {
-			printk(KERN_WARNING "Decoding supported only on Scalable MCA processors.\n");
-			goto err_out;
-		}
+		pr_warn("Decoding supported only on Scalable MCA processors.\n");
+		goto err_out;
 		break;
 
 	default:
@@ -1221,6 +1251,7 @@
 		goto err_out;
 	}
 
+out:
 	pr_info("MCE: In-kernel MCE decoding enabled.\n");
 
 	mce_register_decode_chain(&amd_mce_dec_nb);
--- linux-ein-5.4.0.orig/drivers/edac/pnd2_edac.c
+++ linux-ein-5.4.0/drivers/edac/pnd2_edac.c
@@ -1155,7 +1155,7 @@
 	u32 optypenum = GET_BITFIELD(m->status, 4, 6);
 	int rc;
 
-	tp_event = uc_err ? (ripv ? HW_EVENT_ERR_FATAL : HW_EVENT_ERR_UNCORRECTED) :
+	tp_event = uc_err ? (ripv ? HW_EVENT_ERR_UNCORRECTED : HW_EVENT_ERR_FATAL) :
 						 HW_EVENT_ERR_CORRECTED;
 
 	/*
@@ -1555,6 +1555,9 @@
 	if (owner && strncmp(owner, EDAC_MOD_STR, sizeof(EDAC_MOD_STR)))
 		return -EBUSY;
 
+	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+		return -ENODEV;
+
 	id = x86_match_cpu(pnd2_cpuids);
 	if (!id)
 		return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/edac/qcom_edac.c
+++ linux-ein-5.4.0/drivers/edac/qcom_edac.c
@@ -252,7 +252,7 @@
 static int
 dump_syn_reg(struct edac_device_ctl_info *edev_ctl, int err_type, u32 bank)
 {
-	struct llcc_drv_data *drv = edev_ctl->pvt_info;
+	struct llcc_drv_data *drv = edev_ctl->dev->platform_data;
 	int ret;
 
 	ret = dump_syn_reg_values(drv, bank, err_type);
@@ -289,7 +289,7 @@
 llcc_ecc_irq_handler(int irq, void *edev_ctl)
 {
 	struct edac_device_ctl_info *edac_dev_ctl = edev_ctl;
-	struct llcc_drv_data *drv = edac_dev_ctl->pvt_info;
+	struct llcc_drv_data *drv = edac_dev_ctl->dev->platform_data;
 	irqreturn_t irq_rc = IRQ_NONE;
 	u32 drp_error, trp_error, i;
 	int ret;
@@ -358,7 +358,6 @@
 	edev_ctl->dev_name = dev_name(dev);
 	edev_ctl->ctl_name = "llcc";
 	edev_ctl->panic_on_ue = LLCC_ERP_PANIC_ON_UE;
-	edev_ctl->pvt_info = llcc_driv_data;
 
 	rc = edac_device_add_device(edev_ctl);
 	if (rc)
--- linux-ein-5.4.0.orig/drivers/edac/sb_edac.c
+++ linux-ein-5.4.0/drivers/edac/sb_edac.c
@@ -254,18 +254,20 @@
  * FIXME: Implement the error count reads directly
  */
 
-static const u32 correrrcnt[] = {
-	0x104, 0x108, 0x10c, 0x110,
-};
-
 #define RANK_ODD_OV(reg)		GET_BITFIELD(reg, 31, 31)
 #define RANK_ODD_ERR_CNT(reg)		GET_BITFIELD(reg, 16, 30)
 #define RANK_EVEN_OV(reg)		GET_BITFIELD(reg, 15, 15)
 #define RANK_EVEN_ERR_CNT(reg)		GET_BITFIELD(reg,  0, 14)
 
+#if 0 /* Currently unused*/
+static const u32 correrrcnt[] = {
+	0x104, 0x108, 0x10c, 0x110,
+};
+
 static const u32 correrrthrsld[] = {
 	0x11c, 0x120, 0x124, 0x128,
 };
+#endif
 
 #define RANK_ODD_ERR_THRSLD(reg)	GET_BITFIELD(reg, 16, 30)
 #define RANK_EVEN_ERR_THRSLD(reg)	GET_BITFIELD(reg,  0, 14)
@@ -1053,7 +1055,7 @@
 	pci_read_config_dword(pvt->info.pci_vtd, HASWELL_TOHM_1, &reg);
 	rc = ((reg << 6) | rc) << 26;
 
-	return rc | 0x1ffffff;
+	return rc | 0x3ffffff;
 }
 
 static u64 knl_get_tolm(struct sbridge_pvt *pvt)
@@ -1340,7 +1342,7 @@
  */
 static int knl_get_dimm_capacity(struct sbridge_pvt *pvt, u64 *mc_sizes)
 {
-	u64 sad_base, sad_size, sad_limit = 0;
+	u64 sad_base, sad_limit = 0;
 	u64 tad_base, tad_size, tad_limit, tad_deadspace, tad_livespace;
 	int sad_rule = 0;
 	int tad_rule = 0;
@@ -1427,7 +1429,6 @@
 		edram_only = KNL_EDRAM_ONLY(dram_rule);
 
 		sad_limit = pvt->info.sad_limit(dram_rule)+1;
-		sad_size = sad_limit - sad_base;
 
 		pci_read_config_dword(pvt->pci_sad0,
 			pvt->info.interleave_list[sad_rule], &interleave_reg);
@@ -2952,7 +2953,7 @@
 	struct mem_ctl_info *new_mci;
 	struct sbridge_pvt *pvt = mci->pvt_info;
 	enum hw_event_mc_err_type tp_event;
-	char *type, *optype, msg[256];
+	char *optype, msg[256];
 	bool ripv = GET_BITFIELD(m->mcgstatus, 0, 0);
 	bool overflow = GET_BITFIELD(m->status, 62, 62);
 	bool uncorrected_error = GET_BITFIELD(m->status, 61, 61);
@@ -2981,14 +2982,11 @@
 	if (uncorrected_error) {
 		core_err_cnt = 1;
 		if (ripv) {
-			type = "FATAL";
-			tp_event = HW_EVENT_ERR_FATAL;
-		} else {
-			type = "NON_FATAL";
 			tp_event = HW_EVENT_ERR_UNCORRECTED;
+		} else {
+			tp_event = HW_EVENT_ERR_FATAL;
 		}
 	} else {
-		type = "CORRECTED";
 		tp_event = HW_EVENT_ERR_CORRECTED;
 	}
 
@@ -3200,7 +3198,6 @@
 static void sbridge_unregister_mci(struct sbridge_dev *sbridge_dev)
 {
 	struct mem_ctl_info *mci = sbridge_dev->mci;
-	struct sbridge_pvt *pvt;
 
 	if (unlikely(!mci || !mci->pvt_info)) {
 		edac_dbg(0, "MC: dev = %p\n", &sbridge_dev->pdev[0]->dev);
@@ -3209,8 +3206,6 @@
 		return;
 	}
 
-	pvt = mci->pvt_info;
-
 	edac_dbg(0, "MC: mci = %p, dev = %p\n",
 		 mci, &sbridge_dev->pdev[0]->dev);
 
@@ -3517,6 +3512,9 @@
 	if (owner && strncmp(owner, EDAC_MOD_STR, sizeof(EDAC_MOD_STR)))
 		return -EBUSY;
 
+	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+		return -ENODEV;
+
 	id = x86_match_cpu(sbridge_cpuids);
 	if (!id)
 		return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/edac/sifive_edac.c
+++ linux-ein-5.4.0/drivers/edac/sifive_edac.c
@@ -54,8 +54,8 @@
 	p->dci = edac_device_alloc_ctl_info(0, "sifive_ecc", 1, "sifive_ecc",
 					    1, 1, NULL, 0,
 					    edac_device_alloc_index());
-	if (IS_ERR(p->dci))
-		return PTR_ERR(p->dci);
+	if (!p->dci)
+		return -ENOMEM;
 
 	p->dci->dev = &pdev->dev;
 	p->dci->mod_name = "Sifive ECC Manager";
--- linux-ein-5.4.0.orig/drivers/edac/skx_base.c
+++ linux-ein-5.4.0/drivers/edac/skx_base.c
@@ -151,27 +151,23 @@
 };
 MODULE_DEVICE_TABLE(x86cpu, skx_cpuids);
 
-#define SKX_GET_MTMTR(dev, reg) \
-	pci_read_config_dword((dev), 0x87c, &(reg))
-
-static bool skx_check_ecc(struct pci_dev *pdev)
+static bool skx_check_ecc(u32 mcmtr)
 {
-	u32 mtmtr;
-
-	SKX_GET_MTMTR(pdev, mtmtr);
-
-	return !!GET_BITFIELD(mtmtr, 2, 2);
+	return !!GET_BITFIELD(mcmtr, 2, 2);
 }
 
 static int skx_get_dimm_config(struct mem_ctl_info *mci)
 {
 	struct skx_pvt *pvt = mci->pvt_info;
+	u32 mtr, mcmtr, amap, mcddrtcfg;
 	struct skx_imc *imc = pvt->imc;
-	u32 mtr, amap, mcddrtcfg;
 	struct dimm_info *dimm;
 	int i, j;
 	int ndimms;
 
+	/* Only the mcmtr on the first channel is effective */
+	pci_read_config_dword(imc->chan[0].cdev, 0x87c, &mcmtr);
+
 	for (i = 0; i < SKX_NUM_CHANNELS; i++) {
 		ndimms = 0;
 		pci_read_config_dword(imc->chan[i].cdev, 0x8C, &amap);
@@ -182,14 +178,14 @@
 			pci_read_config_dword(imc->chan[i].cdev,
 					      0x80 + 4 * j, &mtr);
 			if (IS_DIMM_PRESENT(mtr)) {
-				ndimms += skx_get_dimm_info(mtr, amap, dimm, imc, i, j);
+				ndimms += skx_get_dimm_info(mtr, mcmtr, amap, dimm, imc, i, j);
 			} else if (IS_NVDIMM_PRESENT(mcddrtcfg, j)) {
 				ndimms += skx_get_nvdimm_info(dimm, imc, i, j,
 							      EDAC_MOD_STR);
 				nvdimm_count++;
 			}
 		}
-		if (ndimms && !skx_check_ecc(imc->chan[0].cdev)) {
+		if (ndimms && !skx_check_ecc(mcmtr)) {
 			skx_printk(KERN_ERR, "ECC is disabled on imc %d\n", imc->mc);
 			return -ENODEV;
 		}
@@ -463,7 +459,7 @@
 }
 
 static u8 skx_close_row[] = {
-	15, 16, 17, 18, 20, 21, 22, 28, 10, 11, 12, 13, 29, 30, 31, 32, 33
+	15, 16, 17, 18, 20, 21, 22, 28, 10, 11, 12, 13, 29, 30, 31, 32, 33, 34
 };
 
 static u8 skx_close_column[] = {
@@ -471,7 +467,7 @@
 };
 
 static u8 skx_open_row[] = {
-	14, 15, 16, 20, 28, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33
+	14, 15, 16, 20, 28, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34
 };
 
 static u8 skx_open_column[] = {
@@ -609,6 +605,9 @@
 	if (owner && strncmp(owner, EDAC_MOD_STR, sizeof(EDAC_MOD_STR)))
 		return -EBUSY;
 
+	if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR))
+		return -ENODEV;
+
 	id = x86_match_cpu(skx_cpuids);
 	if (!id)
 		return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/edac/skx_common.c
+++ linux-ein-5.4.0/drivers/edac/skx_common.c
@@ -235,7 +235,7 @@
 
 	pdev = pci_get_device(PCI_VENDOR_ID_INTEL, did, NULL);
 	if (!pdev) {
-		skx_printk(KERN_ERR, "Can't get tolm/tohm\n");
+		edac_dbg(2, "Can't get tolm/tohm\n");
 		return -ENODEV;
 	}
 
@@ -283,7 +283,7 @@
 #define numrow(reg)	skx_get_dimm_attr(reg, 2, 4, 12, 1, 6, "rows")
 #define numcol(reg)	skx_get_dimm_attr(reg, 0, 1, 10, 0, 2, "cols")
 
-int skx_get_dimm_info(u32 mtr, u32 amap, struct dimm_info *dimm,
+int skx_get_dimm_info(u32 mtr, u32 mcmtr, u32 amap, struct dimm_info *dimm,
 		      struct skx_imc *imc, int chan, int dimmno)
 {
 	int  banks = 16, ranks, rows, cols, npages;
@@ -303,8 +303,8 @@
 		 imc->mc, chan, dimmno, size, npages,
 		 banks, 1 << ranks, rows, cols);
 
-	imc->chan[chan].dimms[dimmno].close_pg = GET_BITFIELD(mtr, 0, 0);
-	imc->chan[chan].dimms[dimmno].bank_xor_enable = GET_BITFIELD(mtr, 9, 9);
+	imc->chan[chan].dimms[dimmno].close_pg = GET_BITFIELD(mcmtr, 0, 0);
+	imc->chan[chan].dimms[dimmno].bank_xor_enable = GET_BITFIELD(mcmtr, 9, 9);
 	imc->chan[chan].dimms[dimmno].fine_grain_bank = GET_BITFIELD(amap, 0, 0);
 	imc->chan[chan].dimms[dimmno].rowbits = rows;
 	imc->chan[chan].dimms[dimmno].colbits = cols;
@@ -475,7 +475,7 @@
 				 struct decoded_addr *res)
 {
 	enum hw_event_mc_err_type tp_event;
-	char *type, *optype;
+	char *optype;
 	bool ripv = GET_BITFIELD(m->mcgstatus, 0, 0);
 	bool overflow = GET_BITFIELD(m->status, 62, 62);
 	bool uncorrected_error = GET_BITFIELD(m->status, 61, 61);
@@ -490,14 +490,11 @@
 	if (uncorrected_error) {
 		core_err_cnt = 1;
 		if (ripv) {
-			type = "FATAL";
-			tp_event = HW_EVENT_ERR_FATAL;
-		} else {
-			type = "NON_FATAL";
 			tp_event = HW_EVENT_ERR_UNCORRECTED;
+		} else {
+			tp_event = HW_EVENT_ERR_FATAL;
 		}
 	} else {
-		type = "CORRECTED";
 		tp_event = HW_EVENT_ERR_CORRECTED;
 	}
 
--- linux-ein-5.4.0.orig/drivers/edac/skx_common.h
+++ linux-ein-5.4.0/drivers/edac/skx_common.h
@@ -126,7 +126,7 @@
 
 int skx_get_hi_lo(unsigned int did, int off[], u64 *tolm, u64 *tohm);
 
-int skx_get_dimm_info(u32 mtr, u32 amap, struct dimm_info *dimm,
+int skx_get_dimm_info(u32 mtr, u32 mcmtr, u32 amap, struct dimm_info *dimm,
 		      struct skx_imc *imc, int chan, int dimmno);
 
 int skx_get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc,
--- linux-ein-5.4.0.orig/drivers/edac/synopsys_edac.c
+++ linux-ein-5.4.0/drivers/edac/synopsys_edac.c
@@ -163,6 +163,11 @@
 #define ECC_STAT_CECNT_SHIFT		8
 #define ECC_STAT_BITNUM_MASK		0x7F
 
+/* ECC error count register definitions */
+#define ECC_ERRCNT_UECNT_MASK		0xFFFF0000
+#define ECC_ERRCNT_UECNT_SHIFT		16
+#define ECC_ERRCNT_CECNT_MASK		0xFFFF
+
 /* DDR QOS Interrupt register definitions */
 #define DDR_QOS_IRQ_STAT_OFST		0x20200
 #define DDR_QOSUE_MASK			0x4
@@ -418,15 +423,16 @@
 	base = priv->baseaddr;
 	p = &priv->stat;
 
+	regval = readl(base + ECC_ERRCNT_OFST);
+	p->ce_cnt = regval & ECC_ERRCNT_CECNT_MASK;
+	p->ue_cnt = (regval & ECC_ERRCNT_UECNT_MASK) >> ECC_ERRCNT_UECNT_SHIFT;
+	if (!p->ce_cnt)
+		goto ue_err;
+
 	regval = readl(base + ECC_STAT_OFST);
 	if (!regval)
 		return 1;
 
-	p->ce_cnt = (regval & ECC_STAT_CECNT_MASK) >> ECC_STAT_CECNT_SHIFT;
-	p->ue_cnt = (regval & ECC_STAT_UECNT_MASK) >> ECC_STAT_UECNT_SHIFT;
-	if (!p->ce_cnt)
-		goto ue_err;
-
 	p->ceinfo.bitpos = (regval & ECC_STAT_BITNUM_MASK);
 
 	regval = readl(base + ECC_CEADDR0_OFST);
@@ -479,20 +485,14 @@
 		pinf = &p->ceinfo;
 		if (!priv->p_data->quirks) {
 			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "DDR ECC error type:%s Row %d Bank %d Col %d ",
-				  "CE", pinf->row, pinf->bank, pinf->col);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "Bit Position: %d Data: 0x%08x\n",
+				 "DDR ECC error type:%s Row %d Bank %d Col %d Bit Position: %d Data: 0x%08x",
+				 "CE", pinf->row, pinf->bank, pinf->col,
 				 pinf->bitpos, pinf->data);
 		} else {
 			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "DDR ECC error type:%s Row %d Bank %d Col %d ",
-				  "CE", pinf->row, pinf->bank, pinf->col);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "BankGroup Number %d Block Number %d ",
-				 pinf->bankgrpnr, pinf->blknr);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "Bit Position: %d Data: 0x%08x\n",
+				 "DDR ECC error type:%s Row %d Bank %d Col %d BankGroup Number %d Block Number %d Bit Position: %d Data: 0x%08x",
+				 "CE", pinf->row, pinf->bank, pinf->col,
+				 pinf->bankgrpnr, pinf->blknr,
 				 pinf->bitpos, pinf->data);
 		}
 
@@ -509,10 +509,8 @@
 				"UE", pinf->row, pinf->bank, pinf->col);
 		} else {
 			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "DDR ECC error type :%s Row %d Bank %d Col %d ",
-				 "UE", pinf->row, pinf->bank, pinf->col);
-			snprintf(priv->message, SYNPS_EDAC_MSG_SIZE,
-				 "BankGroup Number %d Block Number %d",
+				 "DDR ECC error type :%s Row %d Bank %d Col %d BankGroup Number %d Block Number %d",
+				 "UE", pinf->row, pinf->bank, pinf->col,
 				 pinf->bankgrpnr, pinf->blknr);
 		}
 
@@ -790,7 +788,7 @@
 
 		for (j = 0; j < csi->nr_channels; j++) {
 			dimm		= csi->channels[j]->dimm;
-			dimm->edac_mode	= EDAC_FLAG_SECDED;
+			dimm->edac_mode	= EDAC_SECDED;
 			dimm->mtype	= p_data->get_mtype(priv->baseaddr);
 			dimm->nr_pages	= (size >> PAGE_SHIFT) / csi->nr_channels;
 			dimm->grain	= SYNPS_EDAC_ERR_GRAIN;
@@ -1359,8 +1357,7 @@
 		}
 	}
 
-	if (of_device_is_compatible(pdev->dev.of_node,
-				    "xlnx,zynqmp-ddrc-2.40a"))
+	if (priv->p_data->quirks & DDR_ECC_INTR_SUPPORT)
 		setup_address_map(priv);
 #endif
 
--- linux-ein-5.4.0.orig/drivers/edac/ti_edac.c
+++ linux-ein-5.4.0/drivers/edac/ti_edac.c
@@ -197,6 +197,7 @@
 	{ .compatible = "ti,emif-dra7xx", .data = (void *)EMIF_TYPE_DRA7 },
 	{},
 };
+MODULE_DEVICE_TABLE(of, ti_edac_of_match);
 
 static int _emif_get_id(struct device_node *node)
 {
@@ -278,7 +279,8 @@
 
 	/* add EMIF ECC error handler */
 	error_irq = platform_get_irq(pdev, 0);
-	if (!error_irq) {
+	if (error_irq < 0) {
+		ret = error_irq;
 		edac_printk(KERN_ERR, EDAC_MOD_NAME,
 			    "EMIF irq number not defined.\n");
 		goto err;
--- linux-ein-5.4.0.orig/drivers/edac/xgene_edac.c
+++ linux-ein-5.4.0/drivers/edac/xgene_edac.c
@@ -1922,7 +1922,7 @@
 			irq = platform_get_irq(pdev, i);
 			if (irq < 0) {
 				dev_err(&pdev->dev, "No IRQ resource\n");
-				rc = -EINVAL;
+				rc = irq;
 				goto out_err;
 			}
 			rc = devm_request_irq(&pdev->dev, irq,
--- linux-ein-5.4.0.orig/drivers/extcon/Kconfig
+++ linux-ein-5.4.0/drivers/extcon/Kconfig
@@ -142,6 +142,14 @@
 	  Say Y here to enable support for USB peripheral and USB host
 	  detection by NXP PTN5150 CC (Configuration Channel) logic chip.
 
+config EXTCON_IT5201
+	tristate "ITE IT5201 CC Logic For Type-C Applications"
+	depends on I2C && GPIOLIB
+	select REGMAP_I2C
+	help
+	  Say Y here to enable ITE IT5201 CC logic for Type-C applications,
+	  this chip can supply the CC flip, attach and detach detection.
+
 config EXTCON_QCOM_SPMI_MISC
 	tristate "Qualcomm USB extcon support"
 	depends on ARCH_QCOM || COMPILE_TEST
--- linux-ein-5.4.0.orig/drivers/extcon/Makefile
+++ linux-ein-5.4.0/drivers/extcon/Makefile
@@ -20,6 +20,7 @@
 obj-$(CONFIG_EXTCON_MAX8997)	+= extcon-max8997.o
 obj-$(CONFIG_EXTCON_PALMAS)	+= extcon-palmas.o
 obj-$(CONFIG_EXTCON_PTN5150)	+= extcon-ptn5150.o
+obj-$(CONFIG_EXTCON_IT5201)	+= extcon-it5201.o
 obj-$(CONFIG_EXTCON_QCOM_SPMI_MISC) += extcon-qcom-spmi-misc.o
 obj-$(CONFIG_EXTCON_RT8973A)	+= extcon-rt8973a.o
 obj-$(CONFIG_EXTCON_SM5502)	+= extcon-sm5502.o
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-adc-jack.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-adc-jack.c
@@ -124,7 +124,7 @@
 	for (i = 0; data->adc_conditions[i].id != EXTCON_NONE; i++);
 	data->num_conditions = i;
 
-	data->chan = iio_channel_get(&pdev->dev, pdata->consumer_channel);
+	data->chan = devm_iio_channel_get(&pdev->dev, pdata->consumer_channel);
 	if (IS_ERR(data->chan))
 		return PTR_ERR(data->chan);
 
@@ -164,7 +164,6 @@
 
 	free_irq(data->irq, data);
 	cancel_work_sync(&data->handler.work);
-	iio_channel_release(data->chan);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-arizona.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-arizona.c
@@ -597,7 +597,7 @@
 	struct arizona *arizona = info->arizona;
 	int id_gpio = arizona->pdata.hpdet_id_gpio;
 	unsigned int report = EXTCON_JACK_HEADPHONE;
-	int ret, reading;
+	int ret, reading, state;
 	bool mic = false;
 
 	mutex_lock(&info->lock);
@@ -610,12 +610,11 @@
 	}
 
 	/* If the cable was removed while measuring ignore the result */
-	ret = extcon_get_state(info->edev, EXTCON_MECHANICAL);
-	if (ret < 0) {
-		dev_err(arizona->dev, "Failed to check cable state: %d\n",
-			ret);
+	state = extcon_get_state(info->edev, EXTCON_MECHANICAL);
+	if (state < 0) {
+		dev_err(arizona->dev, "Failed to check cable state: %d\n", state);
 		goto out;
-	} else if (!ret) {
+	} else if (!state) {
 		dev_dbg(arizona->dev, "Ignoring HPDET for removed cable\n");
 		goto done;
 	}
@@ -668,7 +667,7 @@
 			   ARIZONA_ACCDET_MODE_MASK, ARIZONA_ACCDET_MODE_MIC);
 
 	/* If we have a mic then reenable MICDET */
-	if (mic || info->mic)
+	if (state && (mic || info->mic))
 		arizona_start_mic(info);
 
 	if (info->hpdet_active) {
@@ -676,7 +675,9 @@
 		info->hpdet_active = false;
 	}
 
-	info->hpdet_done = true;
+	/* Do not set hp_det done when the cable has been unplugged */
+	if (state)
+		info->hpdet_done = true;
 
 out:
 	mutex_unlock(&info->lock);
@@ -1724,25 +1725,6 @@
 	bool change;
 	int ret;
 
-	ret = regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1,
-				       ARIZONA_MICD_ENA, 0,
-				       &change);
-	if (ret < 0) {
-		dev_err(&pdev->dev, "Failed to disable micd on remove: %d\n",
-			ret);
-	} else if (change) {
-		regulator_disable(info->micvdd);
-		pm_runtime_put(info->dev);
-	}
-
-	gpiod_put(info->micd_pol_gpio);
-
-	pm_runtime_disable(&pdev->dev);
-
-	regmap_update_bits(arizona->regmap,
-			   ARIZONA_MICD_CLAMP_CONTROL,
-			   ARIZONA_MICD_CLAMP_MODE_MASK, 0);
-
 	if (info->micd_clamp) {
 		jack_irq_rise = ARIZONA_IRQ_MICD_CLAMP_RISE;
 		jack_irq_fall = ARIZONA_IRQ_MICD_CLAMP_FALL;
@@ -1758,10 +1740,31 @@
 	arizona_free_irq(arizona, jack_irq_rise, info);
 	arizona_free_irq(arizona, jack_irq_fall, info);
 	cancel_delayed_work_sync(&info->hpdet_work);
+	cancel_delayed_work_sync(&info->micd_detect_work);
+	cancel_delayed_work_sync(&info->micd_timeout_work);
+
+	ret = regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1,
+				       ARIZONA_MICD_ENA, 0,
+				       &change);
+	if (ret < 0) {
+		dev_err(&pdev->dev, "Failed to disable micd on remove: %d\n",
+			ret);
+	} else if (change) {
+		regulator_disable(info->micvdd);
+		pm_runtime_put(info->dev);
+	}
+
+	regmap_update_bits(arizona->regmap,
+			   ARIZONA_MICD_CLAMP_CONTROL,
+			   ARIZONA_MICD_CLAMP_MODE_MASK, 0);
 	regmap_update_bits(arizona->regmap, ARIZONA_JACK_DETECT_ANALOGUE,
 			   ARIZONA_JD1_ENA, 0);
 	arizona_clk32k_disable(arizona);
 
+	gpiod_put(info->micd_pol_gpio);
+
+	pm_runtime_disable(&pdev->dev);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-axp288.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-axp288.c
@@ -423,9 +423,40 @@
 	/* Start charger cable type detection */
 	axp288_extcon_enable(info);
 
+	device_init_wakeup(dev, true);
+	platform_set_drvdata(pdev, info);
+
+	return 0;
+}
+
+static int __maybe_unused axp288_extcon_suspend(struct device *dev)
+{
+	struct axp288_extcon_info *info = dev_get_drvdata(dev);
+
+	if (device_may_wakeup(dev))
+		enable_irq_wake(info->irq[VBUS_RISING_IRQ]);
+
 	return 0;
 }
 
+static int __maybe_unused axp288_extcon_resume(struct device *dev)
+{
+	struct axp288_extcon_info *info = dev_get_drvdata(dev);
+
+	/*
+	 * Wakeup when a charger is connected to do charger-type
+	 * connection and generate an extcon event which makes the
+	 * axp288 charger driver set the input current limit.
+	 */
+	if (device_may_wakeup(dev))
+		disable_irq_wake(info->irq[VBUS_RISING_IRQ]);
+
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(axp288_extcon_pm_ops, axp288_extcon_suspend,
+			 axp288_extcon_resume);
+
 static const struct platform_device_id axp288_extcon_table[] = {
 	{ .name = "axp288_extcon" },
 	{},
@@ -437,6 +468,7 @@
 	.id_table = axp288_extcon_table,
 	.driver = {
 		.name = "axp288_extcon",
+		.pm = &axp288_extcon_pm_ops,
 	},
 };
 
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-intel-cht-wc.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-intel-cht-wc.c
@@ -338,6 +338,7 @@
 	struct intel_soc_pmic *pmic = dev_get_drvdata(pdev->dev.parent);
 	struct cht_wc_extcon_data *ext;
 	unsigned long mask = ~(CHT_WC_PWRSRC_VBUS | CHT_WC_PWRSRC_USBID_MASK);
+	int pwrsrc_sts, id;
 	int irq, ret;
 
 	irq = platform_get_irq(pdev, 0);
@@ -387,8 +388,19 @@
 		goto disable_sw_control;
 	}
 
-	/* Route D+ and D- to PMIC for initial charger detection */
-	cht_wc_extcon_set_phymux(ext, MUX_SEL_PMIC);
+	ret = regmap_read(ext->regmap, CHT_WC_PWRSRC_STS, &pwrsrc_sts);
+	if (ret) {
+		dev_err(ext->dev, "Error reading pwrsrc status: %d\n", ret);
+		goto disable_sw_control;
+	}
+
+	/*
+	 * If no USB host or device connected, route D+ and D- to PMIC for
+	 * initial charger detection
+	 */
+	id = cht_wc_extcon_get_id(ext, pwrsrc_sts);
+	if (id != INTEL_USB_ID_GND)
+		cht_wc_extcon_set_phymux(ext, MUX_SEL_PMIC);
 
 	/* Get initial state */
 	cht_wc_extcon_pwrsrc_event(ext);
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-intel-mrfld.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-intel-mrfld.c
@@ -197,6 +197,7 @@
 	struct intel_soc_pmic *pmic = dev_get_drvdata(dev->parent);
 	struct regmap *regmap = pmic->regmap;
 	struct mrfld_extcon_data *data;
+	unsigned int status;
 	unsigned int id;
 	int irq, ret;
 
@@ -244,6 +245,14 @@
 	/* Get initial state */
 	mrfld_extcon_role_detect(data);
 
+	/*
+	 * Cached status value is used for cable detection, see comments
+	 * in mrfld_extcon_cable_detect(), we need to sync cached value
+	 * with a real state of the hardware.
+	 */
+	regmap_read(regmap, BCOVE_SCHGRIRQ1, &status);
+	data->status = status;
+
 	mrfld_extcon_clear(data, BCOVE_MIRQLVL1, BCOVE_LVL1_CHGR);
 	mrfld_extcon_clear(data, BCOVE_MCHGRIRQ1, BCOVE_CHGRIRQ_ALL);
 
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-it5201.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-it5201.c
@@ -0,0 +1,290 @@
+/*
+ * extcon-it5201.c - ITE CC logic for USB Type-C applications
+ *
+ * Copyright 2017 NXP
+ * Author: Peter Chen <peter.chen@nxp.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2  of
+ * the License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/err.h>
+#include <linux/extcon-provider.h>
+#include <linux/gpio/consumer.h>
+#include <linux/gpio.h>
+#include <linux/i2c.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/regmap.h>
+#include <linux/usb/typec.h>
+
+
+/* IT5201_REG_GCR */
+#define VBUS_INTERRUPT (1 << 6)
+/* IT5201_REG_IOCPCR */
+#define TYPEC_INTERRUPT (1 << 7)
+/* IT5201_REG_CC_STATUS */
+#define IS_NOT_CONNECTED(val) (val == 0)
+#define IS_UFP_ATTATCHED(val) (val&0x1)
+#define IS_DFP_ATTATCHED(val) (val&0x2)
+
+struct it5201_info {
+	struct device *dev;
+	struct extcon_dev *edev;
+	struct work_struct wq_detect_cable;
+	struct regmap *regmap;
+	struct mutex mutex;
+};
+
+/* List of detectable cables */
+static const unsigned int it5201_extcon_cable[] = {
+	EXTCON_USB,
+	EXTCON_USB_HOST,
+	EXTCON_NONE,
+};
+
+enum it5201_reg {
+	IT5201_REG_CID7R = 0x0,
+	IT5201_REG_CID6R = 0x1,
+	IT5201_REG_CID5R = 0x2,
+	IT5201_REG_CID4R = 0x3,
+	IT5201_REG_CID3R = 0x4,
+	IT5201_REG_CID2R = 0x5,
+	IT5201_REG_CID1R = 0x6,
+	IT5201_REG_CID0R = 0x7,
+	IT5201_REG_CVR = 0xf,
+	IT5201_REG_GCR = 0x10,
+	IT5201_REG_VCR = 0x13,
+	IT5201_REG_TCFSMCR0 = 0x14,
+	IT5201_REG_TCFSMCR1 = 0x15,
+	IT5201_REG_TCASR = 0x16,
+	IT5201_REG_CCSRCVR = 0x18,
+	IT5201_REG_CCSNKVR = 0x19,
+	IT5201_REG_IOCPCR = 0x1a,
+	IT5201_REG_SPSR = 0x1b,
+};
+
+static const struct regmap_config it5201_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.max_register = IT5201_REG_SPSR,
+	.cache_type = REGCACHE_NONE,
+};
+
+static int it5201_clear_interrupt(struct it5201_info *info)
+{
+	unsigned int val;
+	int ret;
+
+	mutex_lock(&info->mutex);
+
+	ret = regmap_write(info->regmap, IT5201_REG_IOCPCR, TYPEC_INTERRUPT);
+	if (ret) {
+		dev_err(info->dev, "failed to clear interrupt status:%d\n",
+			ret);
+	}
+
+	ret = regmap_read(info->regmap, IT5201_REG_IOCPCR, &val);
+	if (ret) {
+		dev_err(info->dev, "failed to get interrupt status:%d\n",
+			ret);
+	}
+	dev_info(info->dev, "ITE IT5201: clear IOCPCR status:0x%x\n", val);
+
+	mutex_unlock(&info->mutex);
+
+	return (ret < 0) ? ret : (int)val;
+}
+
+static irqreturn_t it5201_i2c_irq_handler(int irq, void *dev_id)
+{
+	struct it5201_info *info = dev_id;
+
+	queue_work(system_power_efficient_wq, &info->wq_detect_cable);
+
+	it5201_clear_interrupt(info);
+
+	return IRQ_HANDLED;
+}
+
+static void it5201_detect_cable(struct work_struct *work)
+{
+	struct it5201_info *info =
+		container_of(work, struct it5201_info, wq_detect_cable);
+	int ret;
+	unsigned int val;
+
+	mutex_lock(&info->mutex);
+	ret = regmap_read(info->regmap, IT5201_REG_TCASR, &val);
+	if (ret) {
+		dev_err(info->dev, "failed to get CC status:%d\n", ret);
+	}
+	dev_info(info->dev, "ITE IT5201: CC status in detect_cable:0x%x\n", val);
+
+	if (IS_UFP_ATTATCHED(val)) {
+		dev_info(info->dev, "ITE IT5201: UFP_ATTATCHED\n");
+		extcon_set_state_sync(info->edev, EXTCON_USB, false);
+		extcon_set_state_sync(info->edev, EXTCON_USB_HOST, true);
+	} else if (IS_DFP_ATTATCHED(val)) {
+		dev_info(info->dev, "ITE IT5201: DFP_ATTATCHED\n");
+		extcon_set_state_sync(info->edev, EXTCON_USB_HOST, false);
+		extcon_set_state_sync(info->edev, EXTCON_USB, true);
+	} else if (IS_NOT_CONNECTED(val)) {
+		dev_info(info->dev, "ITE IT5201: NOT_CONNECTED\n");
+		extcon_set_state_sync(info->edev, EXTCON_USB, false);
+		extcon_set_state_sync(info->edev, EXTCON_USB_HOST, false);
+	} else {
+		dev_dbg(info->dev, "other CC status is :0x%x\n", val);
+	}
+	mutex_unlock(&info->mutex);
+}
+
+static int it5201_setup_i2c_det(
+	struct it5201_info *info, struct i2c_client *i2c)
+{
+	int ret;
+	unsigned int val = 0;
+
+	/* Set VBUS detect */
+	ret = regmap_update_bits(info->regmap, IT5201_REG_GCR,
+		VBUS_INTERRUPT, VBUS_INTERRUPT);
+	if (ret) {
+		dev_err(info->dev, "failed to enable vbus interrupt:%d\n", ret);
+	}
+
+	ret = regmap_read(info->regmap, IT5201_REG_GCR, &val);
+	if (ret) {
+		dev_err(info->dev, "failed to get General Control Reg:%d\n", ret);
+		return ret;
+	}
+        dev_info(info->dev, "ITE IT5201: General Control Reg:0x%x\n", val);
+
+	/* Clear chip interrupt status */
+	ret = it5201_clear_interrupt(info);
+	if (ret < 0) {
+		dev_err(info->dev, "Failed to clear interrupt: %d\n", ret);
+		return ret;
+	}
+
+	ret = devm_request_threaded_irq(info->dev, i2c->irq, NULL,
+		it5201_i2c_irq_handler, IRQF_TRIGGER_LOW | IRQF_ONESHOT,
+		dev_name(info->dev), info);
+	if (ret < 0) {
+		dev_err(info->dev, "Failed to register i2c interrupt: %d", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int it5201_i2c_probe(
+	struct i2c_client *i2c, const struct i2c_device_id *id)
+{
+
+	struct device_node *np = i2c->dev.of_node;
+	struct it5201_info *info;
+	int ret;
+	struct gpio_desc *connect_gpiod;
+
+	if (!np) {
+		return -EINVAL;
+	}
+
+	info = devm_kzalloc(&i2c->dev, sizeof(*info), GFP_KERNEL);
+	if (!info) {
+		return -ENOMEM;
+	}
+
+	i2c_set_clientdata(i2c, info);
+	info->dev = &i2c->dev;
+
+	info->regmap = devm_regmap_init_i2c(i2c, &it5201_regmap_config);
+	if (IS_ERR(info->regmap)) {
+		ret = PTR_ERR(info->regmap);
+		dev_err(info->dev, "failed to allocate register map: %d\n",
+			ret);
+		return ret;
+	}
+
+	/* Allocate extcon device */
+	info->edev = devm_extcon_dev_allocate(info->dev, it5201_extcon_cable);
+	if (IS_ERR(info->edev)) {
+		dev_err(info->dev, "failed to allocate memory for extcon\n");
+		return -ENOMEM;
+	}
+
+	/* Register extcon device */
+	ret = devm_extcon_dev_register(info->dev, info->edev);
+	if (ret) {
+		dev_err(info->dev, "failed to register extcon device\n");
+		return ret;
+	}
+
+	mutex_init(&info->mutex);
+	INIT_WORK(&info->wq_detect_cable, it5201_detect_cable);
+
+	/* Register interrupt */
+	if (i2c->irq) {
+		ret = it5201_setup_i2c_det(info, i2c);
+		if (ret) {
+			dev_err(info->dev,
+				"Failed to configure i2c interrupts: %d\n",
+				ret);
+			return ret;
+		}
+	}
+
+	device_set_wakeup_capable(info->dev, true);
+
+	/* Do cable detect now */
+	it5201_detect_cable(&info->wq_detect_cable);
+
+	return ret;
+}
+
+static int it5201_i2c_remove(struct i2c_client *i2c)
+{
+	return 0;
+}
+
+static const struct i2c_device_id it5201_id[] = {
+	{ "it5201", 0 },
+	{},
+};
+MODULE_DEVICE_TABLE(i2c, it5201_id);
+
+#ifdef CONFIG_OF
+static const struct of_device_id it5201_of_match[] = {
+	{
+		.compatible = "ite,it5201",
+	},
+	{},
+};
+MODULE_DEVICE_TABLE(of, it5201_of_match);
+#endif
+
+static struct i2c_driver it5201_i2c_driver = {
+    .driver =
+        {
+            .name = "it5201",
+            .of_match_table = of_match_ptr(it5201_of_match),
+        },
+    .probe = it5201_i2c_probe,
+    .remove = it5201_i2c_remove,
+    .id_table = it5201_id,
+};
+module_i2c_driver(it5201_i2c_driver);
+
+MODULE_DESCRIPTION("ITE IT5201 CC logic driver for USB Type-C");
+MODULE_AUTHOR("TzuWen Chang <TzuWen_Chang@asus.com>");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-max77693.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-max77693.c
@@ -1277,4 +1277,4 @@
 MODULE_DESCRIPTION("Maxim MAX77693 Extcon driver");
 MODULE_AUTHOR("Chanwoo Choi <cw00.choi@samsung.com>");
 MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:extcon-max77693");
+MODULE_ALIAS("platform:max77693-muic");
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-max8997.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-max8997.c
@@ -729,7 +729,7 @@
 				2, info->status);
 	if (ret) {
 		dev_err(info->dev, "failed to read MUIC register\n");
-		return ret;
+		goto err_irq;
 	}
 	cable_type = max8997_muic_get_cable_type(info,
 					   MAX8997_CABLE_GROUP_ADC, &attached);
@@ -784,3 +784,4 @@
 MODULE_DESCRIPTION("Maxim MAX8997 Extcon driver");
 MODULE_AUTHOR("Donggeun Kim <dg77.kim@samsung.com>");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:max8997-muic");
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-ptn5150.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-ptn5150.c
@@ -5,6 +5,7 @@
 // Based on extcon-sm5502.c driver
 // Copyright (c) 2018-2019 by Vijai Kumar K
 // Author: Vijai Kumar K <vijaikumar.kanagarajan@gmail.com>
+// Copyright (c) 2020 Krzysztof Kozlowski <krzk@kernel.org>
 
 #include <linux/err.h>
 #include <linux/i2c.h>
@@ -17,18 +18,16 @@
 #include <linux/gpio/consumer.h>
 
 /* PTN5150 registers */
-enum ptn5150_reg {
-	PTN5150_REG_DEVICE_ID = 0x01,
-	PTN5150_REG_CONTROL,
-	PTN5150_REG_INT_STATUS,
-	PTN5150_REG_CC_STATUS,
-	PTN5150_REG_CON_DET = 0x09,
-	PTN5150_REG_VCONN_STATUS,
-	PTN5150_REG_RESET,
-	PTN5150_REG_INT_MASK = 0x18,
-	PTN5150_REG_INT_REG_STATUS,
-	PTN5150_REG_END,
-};
+#define PTN5150_REG_DEVICE_ID			0x01
+#define PTN5150_REG_CONTROL			0x02
+#define PTN5150_REG_INT_STATUS			0x03
+#define PTN5150_REG_CC_STATUS			0x04
+#define PTN5150_REG_CON_DET			0x09
+#define PTN5150_REG_VCONN_STATUS		0x0a
+#define PTN5150_REG_RESET			0x0b
+#define PTN5150_REG_INT_MASK			0x18
+#define PTN5150_REG_INT_REG_STATUS		0x19
+#define PTN5150_REG_END				PTN5150_REG_INT_REG_STATUS
 
 #define PTN5150_DFP_ATTACHED			0x1
 #define PTN5150_UFP_ATTACHED			0x2
@@ -58,6 +57,8 @@
 #define PTN5150_REG_INT_CABLE_DETACH_MASK	\
 	(0x1 << PTN5150_REG_CC_CABLE_DETACH_SHIFT)
 
+#define CABLE_ATTACH_TIMEOUT 1000
+
 struct ptn5150_info {
 	struct device *dev;
 	struct extcon_dev *edev;
@@ -66,6 +67,7 @@
 	struct gpio_desc *int_gpiod;
 	struct gpio_desc *vbus_gpiod;
 	int irq;
+	struct timer_list timer;
 	struct work_struct irq_work;
 	struct mutex mutex;
 };
@@ -83,12 +85,49 @@
 	.max_register	= PTN5150_REG_END,
 };
 
+static void ptn5150_check_state(struct ptn5150_info *info)
+{
+	unsigned int port_status, reg_data, vbus;
+	int ret;
+
+	ret = regmap_read(info->regmap, PTN5150_REG_CC_STATUS, &reg_data);
+	if (ret) {
+		dev_err(info->dev, "failed to read CC STATUS %d\n", ret);
+		return;
+	}
+
+	port_status = ((reg_data &
+			PTN5150_REG_CC_PORT_ATTACHMENT_MASK) >>
+			PTN5150_REG_CC_PORT_ATTACHMENT_SHIFT);
+
+	switch (port_status) {
+	case PTN5150_DFP_ATTACHED:
+		extcon_set_state_sync(info->edev, EXTCON_USB_HOST, false);
+		gpiod_set_value_cansleep(info->vbus_gpiod, 0);
+		extcon_set_state_sync(info->edev, EXTCON_USB, true);
+		break;
+	case PTN5150_UFP_ATTACHED:
+		extcon_set_state_sync(info->edev, EXTCON_USB, false);
+		vbus = ((reg_data & PTN5150_REG_CC_VBUS_DETECTION_MASK) >>
+			PTN5150_REG_CC_VBUS_DETECTION_SHIFT);
+		if (vbus)
+			gpiod_set_value_cansleep(info->vbus_gpiod, 0);
+		else
+			gpiod_set_value_cansleep(info->vbus_gpiod, 1);
+
+		extcon_set_state_sync(info->edev, EXTCON_USB_HOST, true);
+		break;
+	default:
+		dev_err(info->dev, "Unknown Port status : %x\n", port_status);
+		break;
+	}
+}
+
 static void ptn5150_irq_work(struct work_struct *work)
 {
 	struct ptn5150_info *info = container_of(work,
 			struct ptn5150_info, irq_work);
 	int ret = 0;
-	unsigned int reg_data;
 	unsigned int int_status;
 
 	if (!info->edev)
@@ -96,13 +135,6 @@
 
 	mutex_lock(&info->mutex);
 
-	ret = regmap_read(info->regmap, PTN5150_REG_CC_STATUS, &reg_data);
-	if (ret) {
-		dev_err(info->dev, "failed to read CC STATUS %d\n", ret);
-		mutex_unlock(&info->mutex);
-		return;
-	}
-
 	/* Clear interrupt. Read would clear the register */
 	ret = regmap_read(info->regmap, PTN5150_REG_INT_STATUS, &int_status);
 	if (ret) {
@@ -116,47 +148,13 @@
 
 		cable_attach = int_status & PTN5150_REG_INT_CABLE_ATTACH_MASK;
 		if (cable_attach) {
-			unsigned int port_status;
-			unsigned int vbus;
-
-			port_status = ((reg_data &
-					PTN5150_REG_CC_PORT_ATTACHMENT_MASK) >>
-					PTN5150_REG_CC_PORT_ATTACHMENT_SHIFT);
-
-			switch (port_status) {
-			case PTN5150_DFP_ATTACHED:
-				extcon_set_state_sync(info->edev,
-						EXTCON_USB_HOST, false);
-				gpiod_set_value(info->vbus_gpiod, 0);
-				extcon_set_state_sync(info->edev, EXTCON_USB,
-						true);
-				break;
-			case PTN5150_UFP_ATTACHED:
-				extcon_set_state_sync(info->edev, EXTCON_USB,
-						false);
-				vbus = ((reg_data &
-					PTN5150_REG_CC_VBUS_DETECTION_MASK) >>
-					PTN5150_REG_CC_VBUS_DETECTION_SHIFT);
-				if (vbus)
-					gpiod_set_value(info->vbus_gpiod, 0);
-				else
-					gpiod_set_value(info->vbus_gpiod, 1);
-
-				extcon_set_state_sync(info->edev,
-						EXTCON_USB_HOST, true);
-				break;
-			default:
-				dev_err(info->dev,
-					"Unknown Port status : %x\n",
-					port_status);
-				break;
-			}
+			ptn5150_check_state(info);
 		} else {
 			extcon_set_state_sync(info->edev,
 					EXTCON_USB_HOST, false);
 			extcon_set_state_sync(info->edev,
 					EXTCON_USB, false);
-			gpiod_set_value(info->vbus_gpiod, 0);
+			gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 		}
 	}
 
@@ -183,6 +181,17 @@
 	return IRQ_HANDLED;
 }
 
+static void ptn5150_conn_poll(struct timer_list *t)
+{
+	struct ptn5150_info *info = from_timer(info, t , timer);
+	unsigned long flags;
+
+	schedule_work(&info->irq_work);
+
+	mod_timer(&info->timer,
+		jiffies + msecs_to_jiffies(CABLE_ATTACH_TIMEOUT));
+}
+
 static int ptn5150_init_dev_type(struct ptn5150_info *info)
 {
 	unsigned int reg_data, vendor_id, version_id;
@@ -199,8 +208,8 @@
 	version_id = ((reg_data & PTN5150_REG_DEVICE_ID_VERSION_MASK) >>
 				PTN5150_REG_DEVICE_ID_VERSION_SHIFT);
 
-	dev_info(info->dev, "Device type: version: 0x%x, vendor: 0x%x\n",
-			    version_id, vendor_id);
+	dev_dbg(info->dev, "Device type: version: 0x%x, vendor: 0x%x\n",
+		version_id, vendor_id);
 
 	/* Clear any existing interrupts */
 	ret = regmap_read(info->regmap, PTN5150_REG_INT_STATUS, &reg_data);
@@ -239,25 +248,22 @@
 
 	info->dev = &i2c->dev;
 	info->i2c = i2c;
-	info->int_gpiod = devm_gpiod_get(&i2c->dev, "int", GPIOD_IN);
-	if (IS_ERR(info->int_gpiod)) {
-		dev_err(dev, "failed to get INT GPIO\n");
-		return PTR_ERR(info->int_gpiod);
-	}
-	info->vbus_gpiod = devm_gpiod_get(&i2c->dev, "vbus", GPIOD_IN);
+	info->vbus_gpiod = devm_gpiod_get(&i2c->dev, "vbus", GPIOD_OUT_LOW);
 	if (IS_ERR(info->vbus_gpiod)) {
-		dev_err(dev, "failed to get VBUS GPIO\n");
-		return PTR_ERR(info->vbus_gpiod);
-	}
-	ret = gpiod_direction_output(info->vbus_gpiod, 0);
-	if (ret) {
-		dev_err(dev, "failed to set VBUS GPIO direction\n");
-		return -EINVAL;
+		ret = PTR_ERR(info->vbus_gpiod);
+		if (ret == -ENOENT) {
+			dev_info(dev, "No VBUS GPIO, ignoring VBUS control\n");
+			info->vbus_gpiod = NULL;
+		} else {
+			dev_err(dev, "failed to get VBUS GPIO\n");
+			return ret;
+		}
 	}
 
 	mutex_init(&info->mutex);
 
 	INIT_WORK(&info->irq_work, ptn5150_irq_work);
+	timer_setup(&info->timer, ptn5150_conn_poll, 0);
 
 	info->regmap = devm_regmap_init_i2c(i2c, &ptn5150_regmap_config);
 	if (IS_ERR(info->regmap)) {
@@ -267,13 +273,25 @@
 		return ret;
 	}
 
-	if (info->int_gpiod) {
-		info->irq = gpiod_to_irq(info->int_gpiod);
-		if (info->irq < 0) {
-			dev_err(dev, "failed to get INTB IRQ\n");
-			return info->irq;
+	if (i2c->irq > 0) {
+		info->irq = i2c->irq;
+	} else {
+		info->int_gpiod = devm_gpiod_get_optional(&i2c->dev, "int", GPIOD_IN);
+		if (IS_ERR(info->int_gpiod)) {
+			dev_err(dev, "failed to get INT GPIO\n");
+			return PTR_ERR(info->int_gpiod);
+		}
+
+		if (info->int_gpiod > 0) {
+			info->irq = gpiod_to_irq(info->int_gpiod);
+			if (info->irq < 0) {
+				dev_err(dev, "failed to get INTB IRQ\n");
+				return info->irq;
+			}
 		}
+	}
 
+	if (info->irq > 0) {
 		ret = devm_request_threaded_irq(dev, info->irq, NULL,
 						ptn5150_irq_handler,
 						IRQF_TRIGGER_FALLING |
@@ -283,28 +301,54 @@
 			dev_err(dev, "failed to request handler for INTB IRQ\n");
 			return ret;
 		}
+	} else {
+		dev_warn(dev, "No IRQ configured, switch to polling\n");
+		mod_timer(&info->timer,
+			jiffies + jiffies_to_msecs(CABLE_ATTACH_TIMEOUT));
 	}
 
 	/* Allocate extcon device */
 	info->edev = devm_extcon_dev_allocate(info->dev, ptn5150_extcon_cable);
 	if (IS_ERR(info->edev)) {
 		dev_err(info->dev, "failed to allocate memory for extcon\n");
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto err_fail;
 	}
 
 	/* Register extcon device */
 	ret = devm_extcon_dev_register(info->dev, info->edev);
 	if (ret) {
 		dev_err(info->dev, "failed to register extcon device\n");
-		return ret;
+		goto err_fail;
 	}
 
+	extcon_set_property_capability(info->edev, EXTCON_USB,
+					EXTCON_PROP_USB_VBUS);
+	extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
+					EXTCON_PROP_USB_VBUS);
+	extcon_set_property_capability(info->edev, EXTCON_USB_HOST,
+					EXTCON_PROP_USB_TYPEC_POLARITY);
+
 	/* Initialize PTN5150 device and print vendor id and version id */
 	ret = ptn5150_init_dev_type(info);
-	if (ret)
-		return -EINVAL;
+	if (ret) {
+		ret = -EINVAL;
+		goto err_fail;
+	}
+
+	/*
+	 * Update current extcon state if for example OTG connection was there
+	 * before the probe
+	 */
+	mutex_lock(&info->mutex);
+	ptn5150_check_state(info);
+	mutex_unlock(&info->mutex);
 
 	return 0;
+
+err_fail:
+	del_timer_sync(&info->timer);
+	return ret;
 }
 
 static const struct of_device_id ptn5150_dt_match[] = {
@@ -327,13 +371,9 @@
 	.probe	= ptn5150_i2c_probe,
 	.id_table = ptn5150_i2c_id,
 };
-
-static int __init ptn5150_i2c_init(void)
-{
-	return i2c_add_driver(&ptn5150_i2c_driver);
-}
-subsys_initcall(ptn5150_i2c_init);
+module_i2c_driver(ptn5150_i2c_driver);
 
 MODULE_DESCRIPTION("NXP PTN5150 CC logic Extcon driver");
 MODULE_AUTHOR("Vijai Kumar K <vijaikumar.kanagarajan@gmail.com>");
+MODULE_AUTHOR("Krzysztof Kozlowski <krzk@kernel.org>");
 MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-sm5502.c
+++ linux-ein-5.4.0/drivers/extcon/extcon-sm5502.c
@@ -65,6 +65,10 @@
 /* Default value of SM5502 register to bring up MUIC device. */
 static struct reg_data sm5502_reg_data[] = {
 	{
+		.reg = SM5502_REG_RESET,
+		.val = SM5502_REG_RESET_MASK,
+		.invert = true,
+	}, {
 		.reg = SM5502_REG_CONTROL,
 		.val = SM5502_REG_CONTROL_MASK_INT_MASK,
 		.invert = false,
@@ -84,7 +88,6 @@
 			| SM5502_REG_INTM2_MHL_MASK,
 		.invert = true,
 	},
-	{ }
 };
 
 /* List of detectable cables */
--- linux-ein-5.4.0.orig/drivers/extcon/extcon-sm5502.h
+++ linux-ein-5.4.0/drivers/extcon/extcon-sm5502.h
@@ -237,6 +237,8 @@
 #define DM_DP_SWITCH_UART			((DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DP_SHIFT) \
 						| (DM_DP_CON_SWITCH_UART <<SM5502_REG_MANUAL_SW1_DM_SHIFT))
 
+#define SM5502_REG_RESET_MASK			(0x1)
+
 /* SM5502 Interrupts */
 enum sm5502_irq {
 	/* INT1 */
--- linux-ein-5.4.0.orig/drivers/extcon/extcon.c
+++ linux-ein-5.4.0/drivers/extcon/extcon.c
@@ -196,6 +196,14 @@
  * @attr_name:		"name" sysfs entry
  * @attr_state:		"state" sysfs entry
  * @attrs:		the array pointing to attr_name and attr_state for attr_g
+ * @usb_propval:	the array of USB connector properties
+ * @chg_propval:	the array of charger connector properties
+ * @jack_propval:	the array of jack connector properties
+ * @disp_propval:	the array of display connector properties
+ * @usb_bits:		the bit array of the USB connector property capabilities
+ * @chg_bits:		the bit array of the charger connector property capabilities
+ * @jack_bits:		the bit array of the jack connector property capabilities
+ * @disp_bits:		the bit array of the display connector property capabilities
  */
 struct extcon_cable {
 	struct extcon_dev *edev;
@@ -1230,18 +1238,14 @@
 		edev->dev.type = &edev->extcon_dev_type;
 	}
 
-	ret = device_register(&edev->dev);
-	if (ret) {
-		put_device(&edev->dev);
-		goto err_dev;
-	}
-
 	spin_lock_init(&edev->lock);
-	edev->nh = devm_kcalloc(&edev->dev, edev->max_supported,
-				sizeof(*edev->nh), GFP_KERNEL);
-	if (!edev->nh) {
-		ret = -ENOMEM;
-		goto err_dev;
+	if (edev->max_supported) {
+		edev->nh = kcalloc(edev->max_supported, sizeof(*edev->nh),
+				GFP_KERNEL);
+		if (!edev->nh) {
+			ret = -ENOMEM;
+			goto err_alloc_nh;
+		}
 	}
 
 	for (index = 0; index < edev->max_supported; index++)
@@ -1252,6 +1256,12 @@
 	dev_set_drvdata(&edev->dev, edev);
 	edev->state = 0;
 
+	ret = device_register(&edev->dev);
+	if (ret) {
+		put_device(&edev->dev);
+		goto err_dev;
+	}
+
 	mutex_lock(&extcon_dev_list_lock);
 	list_add(&edev->entry, &extcon_dev_list);
 	mutex_unlock(&extcon_dev_list_lock);
@@ -1260,6 +1270,9 @@
 
 err_dev:
 	if (edev->max_supported)
+		kfree(edev->nh);
+err_alloc_nh:
+	if (edev->max_supported)
 		kfree(edev->extcon_dev_type.groups);
 err_alloc_groups:
 	if (edev->max_supported && edev->mutually_exclusive) {
@@ -1319,6 +1332,7 @@
 	if (edev->max_supported) {
 		kfree(edev->extcon_dev_type.groups);
 		kfree(edev->cables);
+		kfree(edev->nh);
 	}
 
 	put_device(&edev->dev);
--- linux-ein-5.4.0.orig/drivers/firewire/core-card.c
+++ linux-ein-5.4.0/drivers/firewire/core-card.c
@@ -668,6 +668,7 @@
 void fw_core_remove_card(struct fw_card *card)
 {
 	struct fw_card_driver dummy_driver = dummy_driver_template;
+	unsigned long flags;
 
 	card->driver->update_phy_reg(card, 4,
 				     PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
@@ -682,7 +683,9 @@
 	dummy_driver.stop_iso		= card->driver->stop_iso;
 	card->driver = &dummy_driver;
 
+	spin_lock_irqsave(&card->lock, flags);
 	fw_destroy_nodes(card);
+	spin_unlock_irqrestore(&card->lock, flags);
 
 	/* Wait for all users, especially device workqueue jobs, to finish. */
 	fw_card_put(card);
--- linux-ein-5.4.0.orig/drivers/firewire/core-cdev.c
+++ linux-ein-5.4.0/drivers/firewire/core-cdev.c
@@ -818,8 +818,10 @@
 
 	r = container_of(resource, struct inbound_transaction_resource,
 			 resource);
-	if (is_fcp_request(r->request))
+	if (is_fcp_request(r->request)) {
+		kfree(r->data);
 		goto out;
+	}
 
 	if (a->length != fw_get_response_length(r->request)) {
 		ret = -EINVAL;
@@ -1482,6 +1484,7 @@
 {
 	struct outbound_phy_packet_event *e =
 		container_of(packet, struct outbound_phy_packet_event, p);
+	struct client *e_client;
 
 	switch (status) {
 	/* expected: */
@@ -1498,9 +1501,10 @@
 	}
 	e->phy_packet.data[0] = packet->timestamp;
 
+	e_client = e->client;
 	queue_event(e->client, &e->event, &e->phy_packet,
 		    sizeof(e->phy_packet) + e->phy_packet.length, NULL, 0);
-	client_put(e->client);
+	client_put(e_client);
 }
 
 static int ioctl_send_phy_packet(struct client *client, union ioctl_arg *arg)
--- linux-ein-5.4.0.orig/drivers/firewire/core-topology.c
+++ linux-ein-5.4.0/drivers/firewire/core-topology.c
@@ -374,16 +374,13 @@
 	card->bm_retries = 0;
 }
 
+/* Must be called with card->lock held */
 void fw_destroy_nodes(struct fw_card *card)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&card->lock, flags);
 	card->color++;
 	if (card->local_node != NULL)
 		for_each_fw_node(card, card->local_node, report_lost_node);
 	card->local_node = NULL;
-	spin_unlock_irqrestore(&card->lock, flags);
 }
 
 static void move_tree(struct fw_node *node0, struct fw_node *node1, int port)
@@ -509,6 +506,8 @@
 	struct fw_node *local_node;
 	unsigned long flags;
 
+	spin_lock_irqsave(&card->lock, flags);
+
 	/*
 	 * If the selfID buffer is not the immediate successor of the
 	 * previously processed one, we cannot reliably compare the
@@ -520,8 +519,6 @@
 		card->bm_retries = 0;
 	}
 
-	spin_lock_irqsave(&card->lock, flags);
-
 	card->broadcast_channel_allocated = card->broadcast_channel_auto_allocated;
 	card->node_id = node_id;
 	/*
--- linux-ein-5.4.0.orig/drivers/firewire/core-transaction.c
+++ linux-ein-5.4.0/drivers/firewire/core-transaction.c
@@ -73,24 +73,25 @@
 static int close_transaction(struct fw_transaction *transaction,
 			     struct fw_card *card, int rcode)
 {
-	struct fw_transaction *t;
+	struct fw_transaction *t = NULL, *iter;
 	unsigned long flags;
 
 	spin_lock_irqsave(&card->lock, flags);
-	list_for_each_entry(t, &card->transaction_list, link) {
-		if (t == transaction) {
-			if (!try_cancel_split_timeout(t)) {
+	list_for_each_entry(iter, &card->transaction_list, link) {
+		if (iter == transaction) {
+			if (!try_cancel_split_timeout(iter)) {
 				spin_unlock_irqrestore(&card->lock, flags);
 				goto timed_out;
 			}
-			list_del_init(&t->link);
-			card->tlabel_mask &= ~(1ULL << t->tlabel);
+			list_del_init(&iter->link);
+			card->tlabel_mask &= ~(1ULL << iter->tlabel);
+			t = iter;
 			break;
 		}
 	}
 	spin_unlock_irqrestore(&card->lock, flags);
 
-	if (&t->link != &card->transaction_list) {
+	if (t) {
 		t->callback(card, rcode, NULL, 0, t->callback_data);
 		return 0;
 	}
@@ -935,7 +936,7 @@
 
 void fw_core_handle_response(struct fw_card *card, struct fw_packet *p)
 {
-	struct fw_transaction *t;
+	struct fw_transaction *t = NULL, *iter;
 	unsigned long flags;
 	u32 *data;
 	size_t data_length;
@@ -947,20 +948,21 @@
 	rcode	= HEADER_GET_RCODE(p->header[1]);
 
 	spin_lock_irqsave(&card->lock, flags);
-	list_for_each_entry(t, &card->transaction_list, link) {
-		if (t->node_id == source && t->tlabel == tlabel) {
-			if (!try_cancel_split_timeout(t)) {
+	list_for_each_entry(iter, &card->transaction_list, link) {
+		if (iter->node_id == source && iter->tlabel == tlabel) {
+			if (!try_cancel_split_timeout(iter)) {
 				spin_unlock_irqrestore(&card->lock, flags);
 				goto timed_out;
 			}
-			list_del_init(&t->link);
-			card->tlabel_mask &= ~(1ULL << t->tlabel);
+			list_del_init(&iter->link);
+			card->tlabel_mask &= ~(1ULL << iter->tlabel);
+			t = iter;
 			break;
 		}
 	}
 	spin_unlock_irqrestore(&card->lock, flags);
 
-	if (&t->link == &card->transaction_list) {
+	if (!t) {
  timed_out:
 		fw_notice(card, "unsolicited response (source %x, tlabel %x)\n",
 			  source, tlabel);
--- linux-ein-5.4.0.orig/drivers/firewire/net.c
+++ linux-ein-5.4.0/drivers/firewire/net.c
@@ -250,7 +250,11 @@
 	h = (struct fwnet_header *)((u8 *)hh->hh_data + HH_DATA_OFF(sizeof(*h)));
 	h->h_proto = type;
 	memcpy(h->h_dest, neigh->ha, net->addr_len);
-	hh->hh_len = FWNET_HLEN;
+
+	/* Pairs with the READ_ONCE() in neigh_resolve_output(),
+	 * neigh_hh_output() and neigh_update_hhs().
+	 */
+	smp_store_release(&hh->hh_len, FWNET_HLEN);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/firewire/nosy.c
+++ linux-ein-5.4.0/drivers/firewire/nosy.c
@@ -346,6 +346,7 @@
 	struct client *client = file->private_data;
 	spinlock_t *client_list_lock = &client->lynx->client_list_lock;
 	struct nosy_stats stats;
+	int ret;
 
 	switch (cmd) {
 	case NOSY_IOC_GET_STATS:
@@ -360,11 +361,15 @@
 			return 0;
 
 	case NOSY_IOC_START:
+		ret = -EBUSY;
 		spin_lock_irq(client_list_lock);
-		list_add_tail(&client->link, &client->lynx->client_list);
+		if (list_empty(&client->link)) {
+			list_add_tail(&client->link, &client->lynx->client_list);
+			ret = 0;
+		}
 		spin_unlock_irq(client_list_lock);
 
-		return 0;
+		return ret;
 
 	case NOSY_IOC_STOP:
 		spin_lock_irq(client_list_lock);
--- linux-ein-5.4.0.orig/drivers/firewire/ohci.c
+++ linux-ein-5.4.0/drivers/firewire/ohci.c
@@ -1099,7 +1099,7 @@
 static int context_add_buffer(struct context *ctx)
 {
 	struct descriptor_buffer *desc;
-	dma_addr_t uninitialized_var(bus_addr);
+	dma_addr_t bus_addr;
 	int offset;
 
 	/*
@@ -1289,7 +1289,7 @@
 				   struct fw_packet *packet)
 {
 	struct fw_ohci *ohci = ctx->ohci;
-	dma_addr_t d_bus, uninitialized_var(payload_bus);
+	dma_addr_t d_bus, payload_bus;
 	struct driver_data *driver_data;
 	struct descriptor *d, *last;
 	__le32 *header;
@@ -2445,7 +2445,7 @@
 {
 	struct fw_ohci *ohci;
 	__be32 *next_config_rom;
-	dma_addr_t uninitialized_var(next_config_rom_bus);
+	dma_addr_t next_config_rom_bus;
 
 	ohci = fw_ohci(card);
 
@@ -2933,10 +2933,10 @@
 				int type, int channel, size_t header_size)
 {
 	struct fw_ohci *ohci = fw_ohci(card);
-	struct iso_context *uninitialized_var(ctx);
-	descriptor_callback_t uninitialized_var(callback);
-	u64 *uninitialized_var(channels);
-	u32 *uninitialized_var(mask), uninitialized_var(regs);
+	struct iso_context *ctx;
+	descriptor_callback_t callback;
+	u64 *channels;
+	u32 *mask, regs;
 	int index, ret = -EBUSY;
 
 	spin_lock_irq(&ohci->lock);
--- linux-ein-5.4.0.orig/drivers/firewire/sbp2.c
+++ linux-ein-5.4.0/drivers/firewire/sbp2.c
@@ -408,7 +408,7 @@
 			      void *payload, size_t length, void *callback_data)
 {
 	struct sbp2_logical_unit *lu = callback_data;
-	struct sbp2_orb *orb;
+	struct sbp2_orb *orb = NULL, *iter;
 	struct sbp2_status status;
 	unsigned long flags;
 
@@ -433,17 +433,18 @@
 
 	/* Lookup the orb corresponding to this status write. */
 	spin_lock_irqsave(&lu->tgt->lock, flags);
-	list_for_each_entry(orb, &lu->orb_list, link) {
+	list_for_each_entry(iter, &lu->orb_list, link) {
 		if (STATUS_GET_ORB_HIGH(status) == 0 &&
-		    STATUS_GET_ORB_LOW(status) == orb->request_bus) {
-			orb->rcode = RCODE_COMPLETE;
-			list_del(&orb->link);
+		    STATUS_GET_ORB_LOW(status) == iter->request_bus) {
+			iter->rcode = RCODE_COMPLETE;
+			list_del(&iter->link);
+			orb = iter;
 			break;
 		}
 	}
 	spin_unlock_irqrestore(&lu->tgt->lock, flags);
 
-	if (&orb->link != &lu->orb_list) {
+	if (orb) {
 		orb->callback(orb, &status);
 		kref_put(&orb->kref, free_orb); /* orb callback reference */
 	} else {
--- linux-ein-5.4.0.orig/drivers/firmware/Kconfig
+++ linux-ein-5.4.0/drivers/firmware/Kconfig
@@ -237,6 +237,7 @@
 config QCOM_SCM
 	bool
 	depends on ARM || ARM64
+	depends on HAVE_ARM_SMCCC
 	select RESET_CONTROLLER
 
 config QCOM_SCM_32
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/base.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/base.c
@@ -164,7 +164,7 @@
 			break;
 
 		loop_num_ret = le32_to_cpu(*num_ret);
-		if (tot_num_ret + loop_num_ret > MAX_PROTOCOLS_IMP) {
+		if (loop_num_ret > MAX_PROTOCOLS_IMP - tot_num_ret) {
 			dev_err(dev, "No. of Protocol > MAX_PROTOCOLS_IMP");
 			break;
 		}
@@ -173,6 +173,8 @@
 			protocols_imp[tot_num_ret + loop] = *(list + loop);
 
 		tot_num_ret += loop_num_ret;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 	} while (loop_num_ret);
 
 	scmi_xfer_put(handle, t);
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/bus.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/bus.c
@@ -100,6 +100,9 @@
 {
 	int retval;
 
+	if (!driver->probe)
+		return -EINVAL;
+
 	driver->driver.bus = &scmi_bus_type;
 	driver->driver.name = driver->name;
 	driver->driver.owner = owner;
@@ -135,8 +138,10 @@
 		return NULL;
 
 	id = ida_simple_get(&scmi_bus_id, 1, 0, GFP_KERNEL);
-	if (id < 0)
-		goto free_mem;
+	if (id < 0) {
+		kfree(scmi_dev);
+		return NULL;
+	}
 
 	scmi_dev->id = id;
 	scmi_dev->protocol_id = protocol;
@@ -154,8 +159,6 @@
 put_dev:
 	put_device(&scmi_dev->dev);
 	ida_simple_remove(&scmi_bus_id, id);
-free_mem:
-	kfree(scmi_dev);
 	return NULL;
 }
 
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/clock.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/clock.c
@@ -177,6 +177,8 @@
 		}
 
 		tot_rate_cnt += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/common.h
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/common.h
@@ -103,6 +103,8 @@
 			       struct scmi_xfer *xfer);
 int scmi_xfer_get_init(const struct scmi_handle *h, u8 msg_id, u8 prot_id,
 		       size_t tx_size, size_t rx_size, struct scmi_xfer **p);
+void scmi_reset_rx_to_maxsz(const struct scmi_handle *handle,
+			    struct scmi_xfer *xfer);
 int scmi_handle_put(const struct scmi_handle *handle);
 struct scmi_handle *scmi_handle_get(struct device *dev);
 void scmi_set_handle(struct scmi_device *scmi_dev);
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/driver.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/driver.c
@@ -54,7 +54,6 @@
 	SCMI_ERR_GENERIC = -8,	/* Generic Error */
 	SCMI_ERR_HARDWARE = -9,	/* Hardware Error */
 	SCMI_ERR_PROTOCOL = -10,/* Protocol Error */
-	SCMI_ERR_MAX
 };
 
 /* List of all SCMI devices active in system */
@@ -176,8 +175,10 @@
 
 static inline int scmi_to_linux_errno(int errno)
 {
-	if (errno < SCMI_SUCCESS && errno > SCMI_ERR_MAX)
-		return scmi_linux_errmap[-errno];
+	int err_idx = -errno;
+
+	if (err_idx >= SCMI_SUCCESS && err_idx < ARRAY_SIZE(scmi_linux_errmap))
+		return scmi_linux_errmap[err_idx];
 	return -EIO;
 }
 
@@ -370,6 +371,10 @@
 
 	xfer = &minfo->xfer_block[xfer_id];
 
+	/* rx.len could be shrunk in the sync do_xfer, so reset to maxsz */
+	if (msg_type == MSG_TYPE_DELAYED_RESP)
+		xfer->rx.len = info->desc->max_msg_size;
+
 	scmi_dump_header_dbg(dev, &xfer->hdr);
 
 	scmi_fetch_response(xfer, mem);
@@ -481,6 +486,14 @@
 	return ret;
 }
 
+void scmi_reset_rx_to_maxsz(const struct scmi_handle *handle,
+			    struct scmi_xfer *xfer)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	xfer->rx.len = info->desc->max_msg_size;
+}
+
 #define SCMI_MAX_RESPONSE_TIMEOUT	(2 * MSEC_PER_SEC)
 
 /**
@@ -502,8 +515,12 @@
 	xfer->async_done = &async_response;
 
 	ret = scmi_do_xfer(handle, xfer);
-	if (!ret && !wait_for_completion_timeout(xfer->async_done, timeout))
-		ret = -ETIMEDOUT;
+	if (!ret) {
+		if (!wait_for_completion_timeout(xfer->async_done, timeout))
+			ret = -ETIMEDOUT;
+		else if (xfer->hdr.status)
+			ret = scmi_to_linux_errno(xfer->hdr.status);
+	}
 
 	xfer->async_done = NULL;
 	return ret;
@@ -681,8 +698,9 @@
 	struct scmi_xfers_info *info = &sinfo->tx_minfo;
 
 	/* Pre-allocated messages, no more than what hdr.seq can support */
-	if (WARN_ON(desc->max_msg >= MSG_TOKEN_MAX)) {
-		dev_err(dev, "Maximum message of %d exceeds supported %ld\n",
+	if (WARN_ON(!desc->max_msg || desc->max_msg > MSG_TOKEN_MAX)) {
+		dev_err(dev,
+			"Invalid maximum messages %d, not in range [1 - %lu]\n",
 			desc->max_msg, MSG_TOKEN_MAX);
 		return -EINVAL;
 	}
@@ -719,6 +737,39 @@
 					  idx, NULL);
 }
 
+static int scmi_mailbox_chan_validate(struct device *cdev)
+{
+	int num_mb, num_sh, ret = 0;
+	struct device_node *np = cdev->of_node;
+
+	num_mb = of_count_phandle_with_args(np, "mboxes", "#mbox-cells");
+	num_sh = of_count_phandle_with_args(np, "shmem", NULL);
+	/* Bail out if mboxes and shmem descriptors are inconsistent */
+	if (num_mb <= 0 || num_sh > 2 || num_mb != num_sh) {
+		dev_warn(cdev, "Invalid channel descriptor for '%s'\n",
+			 of_node_full_name(np));
+		return -EINVAL;
+	}
+
+	if (num_sh > 1) {
+		struct device_node *np_tx, *np_rx;
+
+		np_tx = of_parse_phandle(np, "shmem", 0);
+		np_rx = of_parse_phandle(np, "shmem", 1);
+		/* SCMI Tx and Rx shared mem areas have to be distinct */
+		if (!np_tx || !np_rx || np_tx == np_rx) {
+			dev_warn(cdev, "Invalid shmem descriptor for '%s'\n",
+				 of_node_full_name(np));
+			ret = -EINVAL;
+		}
+
+		of_node_put(np_tx);
+		of_node_put(np_rx);
+	}
+
+	return ret;
+}
+
 static int scmi_mbox_chan_setup(struct scmi_info *info, struct device *dev,
 				int prot_id, bool tx)
 {
@@ -742,6 +793,10 @@
 		goto idr_alloc;
 	}
 
+	ret = scmi_mailbox_chan_validate(dev);
+	if (ret)
+		return ret;
+
 	cinfo = devm_kzalloc(info->dev, sizeof(*cinfo), GFP_KERNEL);
 	if (!cinfo)
 		return -ENOMEM;
@@ -965,7 +1020,7 @@
 
 module_platform_driver(scmi_driver);
 
-MODULE_ALIAS("platform: arm-scmi");
+MODULE_ALIAS("platform:arm-scmi");
 MODULE_AUTHOR("Sudeep Holla <sudeep.holla@arm.com>");
 MODULE_DESCRIPTION("ARM SCMI protocol driver");
 MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/perf.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/perf.c
@@ -281,6 +281,8 @@
 		}
 
 		tot_opp_cnt += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
@@ -323,7 +325,7 @@
 
 		if (db->mask)
 			val = ioread64_hi_lo(db->addr) & db->mask;
-		iowrite64_hi_lo(db->set, db->addr);
+		iowrite64_hi_lo(db->set | val, db->addr);
 	}
 #endif
 }
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/reset.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/reset.c
@@ -35,9 +35,7 @@
 #define EXPLICIT_RESET_ASSERT	BIT(1)
 #define ASYNCHRONOUS_RESET	BIT(2)
 	__le32 reset_state;
-#define ARCH_RESET_TYPE		BIT(31)
-#define COLD_RESET_STATE	BIT(0)
-#define ARCH_COLD_RESET		(ARCH_RESET_TYPE | COLD_RESET_STATE)
+#define ARCH_COLD_RESET		0
 };
 
 struct reset_dom_info {
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/scmi_pm_domain.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/scmi_pm_domain.c
@@ -85,7 +85,10 @@
 	for (i = 0; i < num_domains; i++, scmi_pd++) {
 		u32 state;
 
-		domains[i] = &scmi_pd->genpd;
+		if (handle->power_ops->state_get(handle, i, &state)) {
+			dev_warn(dev, "failed to get state for domain %d\n", i);
+			continue;
+		}
 
 		scmi_pd->domain = i;
 		scmi_pd->handle = handle;
@@ -94,21 +97,35 @@
 		scmi_pd->genpd.power_off = scmi_pd_power_off;
 		scmi_pd->genpd.power_on = scmi_pd_power_on;
 
-		if (handle->power_ops->state_get(handle, i, &state)) {
-			dev_warn(dev, "failed to get state for domain %d\n", i);
-			continue;
-		}
-
 		pm_genpd_init(&scmi_pd->genpd, NULL,
 			      state == SCMI_POWER_STATE_GENERIC_OFF);
+
+		domains[i] = &scmi_pd->genpd;
 	}
 
 	scmi_pd_data->domains = domains;
 	scmi_pd_data->num_domains = num_domains;
 
-	of_genpd_add_provider_onecell(np, scmi_pd_data);
+	dev_set_drvdata(dev, scmi_pd_data);
 
-	return 0;
+	return of_genpd_add_provider_onecell(np, scmi_pd_data);
+}
+
+static void scmi_pm_domain_remove(struct scmi_device *sdev)
+{
+	int i;
+	struct genpd_onecell_data *scmi_pd_data;
+	struct device *dev = &sdev->dev;
+	struct device_node *np = dev->of_node;
+
+	of_genpd_del_provider(np);
+
+	scmi_pd_data = dev_get_drvdata(dev);
+	for (i = 0; i < scmi_pd_data->num_domains; i++) {
+		if (!scmi_pd_data->domains[i])
+			continue;
+		pm_genpd_remove(scmi_pd_data->domains[i]);
+	}
 }
 
 static const struct scmi_device_id scmi_id_table[] = {
@@ -120,6 +137,7 @@
 static struct scmi_driver scmi_power_domain_driver = {
 	.name = "scmi-power-domain",
 	.probe = scmi_pm_domain_probe,
+	.remove = scmi_pm_domain_remove,
 	.id_table = scmi_id_table,
 };
 module_scmi_driver(scmi_power_domain_driver);
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scmi/sensors.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scmi/sensors.c
@@ -154,6 +154,8 @@
 		}
 
 		desc_index += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
--- linux-ein-5.4.0.orig/drivers/firmware/arm_scpi.c
+++ linux-ein-5.4.0/drivers/firmware/arm_scpi.c
@@ -552,8 +552,10 @@
 
 	ret = scpi_send_message(CMD_GET_CLOCK_VALUE, &le_clk_id,
 				sizeof(le_clk_id), &rate, sizeof(rate));
+	if (ret)
+		return 0;
 
-	return ret ? ret : le32_to_cpu(rate);
+	return le32_to_cpu(rate);
 }
 
 static int scpi_clk_set_val(u16 clk_id, unsigned long rate)
@@ -813,7 +815,7 @@
 		info->firmware_version = le32_to_cpu(caps.platform_version);
 	}
 	/* Ignore error if not implemented */
-	if (scpi_info->is_legacy && ret == -EOPNOTSUPP)
+	if (info->is_legacy && ret == -EOPNOTSUPP)
 		return 0;
 
 	return ret;
@@ -903,13 +905,14 @@
 	struct resource res;
 	struct device *dev = &pdev->dev;
 	struct device_node *np = dev->of_node;
+	struct scpi_drvinfo *scpi_drvinfo;
 
-	scpi_info = devm_kzalloc(dev, sizeof(*scpi_info), GFP_KERNEL);
-	if (!scpi_info)
+	scpi_drvinfo = devm_kzalloc(dev, sizeof(*scpi_drvinfo), GFP_KERNEL);
+	if (!scpi_drvinfo)
 		return -ENOMEM;
 
 	if (of_match_device(legacy_scpi_of_match, &pdev->dev))
-		scpi_info->is_legacy = true;
+		scpi_drvinfo->is_legacy = true;
 
 	count = of_count_phandle_with_args(np, "mboxes", "#mbox-cells");
 	if (count < 0) {
@@ -917,19 +920,19 @@
 		return -ENODEV;
 	}
 
-	scpi_info->channels = devm_kcalloc(dev, count, sizeof(struct scpi_chan),
-					   GFP_KERNEL);
-	if (!scpi_info->channels)
+	scpi_drvinfo->channels =
+		devm_kcalloc(dev, count, sizeof(struct scpi_chan), GFP_KERNEL);
+	if (!scpi_drvinfo->channels)
 		return -ENOMEM;
 
-	ret = devm_add_action(dev, scpi_free_channels, scpi_info);
+	ret = devm_add_action(dev, scpi_free_channels, scpi_drvinfo);
 	if (ret)
 		return ret;
 
-	for (; scpi_info->num_chans < count; scpi_info->num_chans++) {
+	for (; scpi_drvinfo->num_chans < count; scpi_drvinfo->num_chans++) {
 		resource_size_t size;
-		int idx = scpi_info->num_chans;
-		struct scpi_chan *pchan = scpi_info->channels + idx;
+		int idx = scpi_drvinfo->num_chans;
+		struct scpi_chan *pchan = scpi_drvinfo->channels + idx;
 		struct mbox_client *cl = &pchan->cl;
 		struct device_node *shmem = of_parse_phandle(np, "shmem", idx);
 
@@ -973,45 +976,53 @@
 		return ret;
 	}
 
-	scpi_info->commands = scpi_std_commands;
+	scpi_drvinfo->commands = scpi_std_commands;
 
-	platform_set_drvdata(pdev, scpi_info);
+	platform_set_drvdata(pdev, scpi_drvinfo);
 
-	if (scpi_info->is_legacy) {
+	if (scpi_drvinfo->is_legacy) {
 		/* Replace with legacy variants */
 		scpi_ops.clk_set_val = legacy_scpi_clk_set_val;
-		scpi_info->commands = scpi_legacy_commands;
+		scpi_drvinfo->commands = scpi_legacy_commands;
 
 		/* Fill priority bitmap */
 		for (idx = 0; idx < ARRAY_SIZE(legacy_hpriority_cmds); idx++)
 			set_bit(legacy_hpriority_cmds[idx],
-				scpi_info->cmd_priority);
+				scpi_drvinfo->cmd_priority);
 	}
 
-	ret = scpi_init_versions(scpi_info);
+	scpi_info = scpi_drvinfo;
+
+	ret = scpi_init_versions(scpi_drvinfo);
 	if (ret) {
 		dev_err(dev, "incorrect or no SCP firmware found\n");
+		scpi_info = NULL;
 		return ret;
 	}
 
-	if (scpi_info->is_legacy && !scpi_info->protocol_version &&
-	    !scpi_info->firmware_version)
+	if (scpi_drvinfo->is_legacy && !scpi_drvinfo->protocol_version &&
+	    !scpi_drvinfo->firmware_version)
 		dev_info(dev, "SCP Protocol legacy pre-1.0 firmware\n");
 	else
 		dev_info(dev, "SCP Protocol %lu.%lu Firmware %lu.%lu.%lu version\n",
 			 FIELD_GET(PROTO_REV_MAJOR_MASK,
-				   scpi_info->protocol_version),
+				   scpi_drvinfo->protocol_version),
 			 FIELD_GET(PROTO_REV_MINOR_MASK,
-				   scpi_info->protocol_version),
+				   scpi_drvinfo->protocol_version),
 			 FIELD_GET(FW_REV_MAJOR_MASK,
-				   scpi_info->firmware_version),
+				   scpi_drvinfo->firmware_version),
 			 FIELD_GET(FW_REV_MINOR_MASK,
-				   scpi_info->firmware_version),
+				   scpi_drvinfo->firmware_version),
 			 FIELD_GET(FW_REV_PATCH_MASK,
-				   scpi_info->firmware_version));
-	scpi_info->scpi_ops = &scpi_ops;
+				   scpi_drvinfo->firmware_version));
+
+	scpi_drvinfo->scpi_ops = &scpi_ops;
 
-	return devm_of_platform_populate(dev);
+	ret = devm_of_platform_populate(dev);
+	if (ret)
+		scpi_info = NULL;
+
+	return ret;
 }
 
 static const struct of_device_id scpi_of_match[] = {
--- linux-ein-5.4.0.orig/drivers/firmware/arm_sdei.c
+++ linux-ein-5.4.0/drivers/firmware/arm_sdei.c
@@ -44,6 +44,8 @@
 /* entry point from firmware to arch asm code */
 static unsigned long sdei_entry_point;
 
+static int sdei_hp_state;
+
 struct sdei_event {
 	/* These three are protected by the sdei_list_lock */
 	struct list_head	list;
@@ -305,8 +307,6 @@
 {
 	int err;
 
-	WARN_ON_ONCE(preemptible());
-
 	err = invoke_sdei_fn(SDEI_1_0_FN_SDEI_PE_MASK, 0, 0, 0, 0, 0, NULL);
 	if (err && err != -EIO) {
 		pr_warn_once("failed to mask CPU[%u]: %d\n",
@@ -319,6 +319,7 @@
 
 static void _ipi_mask_cpu(void *ignored)
 {
+	WARN_ON_ONCE(preemptible());
 	sdei_mask_local_cpu();
 }
 
@@ -326,8 +327,6 @@
 {
 	int err;
 
-	WARN_ON_ONCE(preemptible());
-
 	err = invoke_sdei_fn(SDEI_1_0_FN_SDEI_PE_UNMASK, 0, 0, 0, 0, 0, NULL);
 	if (err && err != -EIO) {
 		pr_warn_once("failed to unmask CPU[%u]: %d\n",
@@ -340,6 +339,7 @@
 
 static void _ipi_unmask_cpu(void *ignored)
 {
+	WARN_ON_ONCE(preemptible());
 	sdei_unmask_local_cpu();
 }
 
@@ -347,6 +347,8 @@
 {
 	int err;
 
+	WARN_ON_ONCE(preemptible());
+
 	err = invoke_sdei_fn(SDEI_1_0_FN_SDEI_PRIVATE_RESET, 0, 0, 0, 0, 0,
 			     NULL);
 	if (err && err != -EIO)
@@ -393,8 +395,6 @@
 	int err;
 	struct sdei_crosscall_args *arg = data;
 
-	WARN_ON_ONCE(preemptible());
-
 	err = sdei_api_event_enable(arg->event->event_num);
 
 	sdei_cross_call_return(arg, err);
@@ -412,14 +412,19 @@
 		return -ENOENT;
 	}
 
-	spin_lock(&sdei_list_lock);
-	event->reenable = true;
-	spin_unlock(&sdei_list_lock);
 
+	cpus_read_lock();
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		err = sdei_api_event_enable(event->event_num);
 	else
 		err = sdei_do_cross_call(_local_event_enable, event);
+
+	if (!err) {
+		spin_lock(&sdei_list_lock);
+		event->reenable = true;
+		spin_unlock(&sdei_list_lock);
+	}
+	cpus_read_unlock();
 	mutex_unlock(&sdei_events_lock);
 
 	return err;
@@ -480,8 +485,6 @@
 	int err;
 	struct sdei_crosscall_args *arg = data;
 
-	WARN_ON_ONCE(preemptible());
-
 	err = sdei_api_event_unregister(arg->event->event_num);
 
 	sdei_cross_call_return(arg, err);
@@ -491,11 +494,6 @@
 {
 	lockdep_assert_held(&sdei_events_lock);
 
-	spin_lock(&sdei_list_lock);
-	event->reregister = false;
-	event->reenable = false;
-	spin_unlock(&sdei_list_lock);
-
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		return sdei_api_event_unregister(event->event_num);
 
@@ -518,6 +516,11 @@
 			break;
 		}
 
+		spin_lock(&sdei_list_lock);
+		event->reregister = false;
+		event->reenable = false;
+		spin_unlock(&sdei_list_lock);
+
 		err = _sdei_event_unregister(event);
 		if (err)
 			break;
@@ -570,8 +573,6 @@
 	struct sdei_registered_event *reg;
 	struct sdei_crosscall_args *arg = data;
 
-	WARN_ON(preemptible());
-
 	reg = per_cpu_ptr(arg->event->private_registered, smp_processor_id());
 	err = sdei_api_event_register(arg->event->event_num, sdei_entry_point,
 				      reg, 0, 0);
@@ -585,26 +586,15 @@
 
 	lockdep_assert_held(&sdei_events_lock);
 
-	spin_lock(&sdei_list_lock);
-	event->reregister = true;
-	spin_unlock(&sdei_list_lock);
-
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		return sdei_api_event_register(event->event_num,
 					       sdei_entry_point,
 					       event->registered,
 					       SDEI_EVENT_REGISTER_RM_ANY, 0);
 
-
 	err = sdei_do_cross_call(_local_event_register, event);
-	if (err) {
-		spin_lock(&sdei_list_lock);
-		event->reregister = false;
-		event->reenable = false;
-		spin_unlock(&sdei_list_lock);
-
+	if (err)
 		sdei_do_cross_call(_local_event_unregister, event);
-	}
 
 	return err;
 }
@@ -632,12 +622,18 @@
 			break;
 		}
 
+		cpus_read_lock();
 		err = _sdei_event_register(event);
 		if (err) {
 			sdei_event_destroy(event);
 			pr_warn("Failed to register event %u: %d\n", event_num,
 				err);
+		} else {
+			spin_lock(&sdei_list_lock);
+			event->reregister = true;
+			spin_unlock(&sdei_list_lock);
 		}
+		cpus_read_unlock();
 	} while (0);
 	mutex_unlock(&sdei_events_lock);
 
@@ -756,6 +752,8 @@
 {
 	int rv;
 
+	WARN_ON_ONCE(preemptible());
+
 	switch (action) {
 	case CPU_PM_ENTER:
 		rv = sdei_mask_local_cpu();
@@ -804,7 +802,7 @@
 	int err;
 
 	/* unregister private events */
-	cpuhp_remove_state(CPUHP_AP_ARM_SDEI_STARTING);
+	cpuhp_remove_state(sdei_entry_point);
 
 	err = sdei_unregister_shared();
 	if (err)
@@ -825,12 +823,15 @@
 		return err;
 	}
 
-	err = cpuhp_setup_state(CPUHP_AP_ARM_SDEI_STARTING, "SDEI",
+	err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "SDEI",
 				&sdei_cpuhp_up, &sdei_cpuhp_down);
-	if (err)
+	if (err < 0) {
 		pr_warn("Failed to re-register CPU hotplug notifier...\n");
+		return err;
+	}
 
-	return err;
+	sdei_hp_state = err;
+	return 0;
 }
 
 static int sdei_device_restore(struct device *dev)
@@ -862,7 +863,7 @@
 	 * We are going to reset the interface, after this there is no point
 	 * doing work when we take CPUs offline.
 	 */
-	cpuhp_remove_state(CPUHP_AP_ARM_SDEI_STARTING);
+	cpuhp_remove_state(sdei_hp_state);
 
 	sdei_platform_reset();
 
@@ -1044,13 +1045,15 @@
 		goto remove_cpupm;
 	}
 
-	err = cpuhp_setup_state(CPUHP_AP_ARM_SDEI_STARTING, "SDEI",
+	err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "SDEI",
 				&sdei_cpuhp_up, &sdei_cpuhp_down);
-	if (err) {
+	if (err < 0) {
 		pr_warn("Failed to register CPU hotplug notifier...\n");
 		goto remove_reboot;
 	}
 
+	sdei_hp_state = err;
+
 	return 0;
 
 remove_reboot:
--- linux-ein-5.4.0.orig/drivers/firmware/dmi-sysfs.c
+++ linux-ein-5.4.0/drivers/firmware/dmi-sysfs.c
@@ -603,7 +603,7 @@
 				    "%d-%d", dh->type, entry->instance);
 
 	if (*ret) {
-		kfree(entry);
+		kobject_put(&entry->kobj);
 		return;
 	}
 
--- linux-ein-5.4.0.orig/drivers/firmware/efi/Kconfig
+++ linux-ein-5.4.0/drivers/firmware/efi/Kconfig
@@ -216,6 +216,17 @@
 
 config EFI_EARLYCON
 	def_bool y
-	depends on SERIAL_EARLYCON && !ARM && !IA64
+	depends on EFI && SERIAL_EARLYCON && !ARM && !IA64
 	select FONT_SUPPORT
 	select ARCH_USE_MEMREMAP_PROT
+
+config EFI_CUSTOM_SSDT_OVERLAYS
+	bool "Load custom ACPI SSDT overlay from an EFI variable"
+	depends on EFI_VARS && ACPI
+	default ACPI_TABLE_UPGRADE
+	help
+	  Allow loading of an ACPI SSDT overlay from an EFI variable specified
+	  by a kernel command line option.
+
+	  See Documentation/admin-guide/acpi/ssdt-overlays.rst for more
+	  information.
--- linux-ein-5.4.0.orig/drivers/firmware/efi/Makefile
+++ linux-ein-5.4.0/drivers/firmware/efi/Makefile
@@ -24,8 +24,10 @@
 obj-$(CONFIG_EFI_BOOTLOADER_CONTROL)	+= efibc.o
 obj-$(CONFIG_EFI_TEST)			+= test/
 obj-$(CONFIG_EFI_DEV_PATH_PARSER)	+= dev-path-parser.o
+obj-$(CONFIG_EFI)			+= secureboot.o
 obj-$(CONFIG_APPLE_PROPERTIES)		+= apple-properties.o
 obj-$(CONFIG_EFI_RCI2_TABLE)		+= rci2-table.o
+obj-$(CONFIG_LOAD_UEFI_KEYS)		+= mokvar-table.o
 
 arm-obj-$(CONFIG_EFI)			:= arm-init.o arm-runtime.o
 obj-$(CONFIG_ARM)			+= $(arm-obj-y)
--- linux-ein-5.4.0.orig/drivers/firmware/efi/apple-properties.c
+++ linux-ein-5.4.0/drivers/firmware/efi/apple-properties.c
@@ -23,7 +23,7 @@
 static int __init dump_properties_enable(char *arg)
 {
 	dump_properties = true;
-	return 0;
+	return 1;
 }
 
 __setup("dump_apple_properties", dump_properties_enable);
--- linux-ein-5.4.0.orig/drivers/firmware/efi/arm-init.c
+++ linux-ein-5.4.0/drivers/firmware/efi/arm-init.c
@@ -17,6 +17,7 @@
 #include <linux/of_fdt.h>
 #include <linux/platform_device.h>
 #include <linux/screen_info.h>
+#include <linux/security.h>
 
 #include <asm/efi.h>
 
@@ -253,8 +254,16 @@
 		return;
 	}
 
+	efi_set_secure_boot(params.secure_boot);
+
+#ifdef CONFIG_LOCK_DOWN_IN_SECURE_BOOT
+	if (efi_enabled(EFI_SECURE_BOOT))
+		security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX);
+#endif
+
 	reserve_regions();
 	efi_esrt_init();
+	efi_mokvar_table_init();
 
 	memblock_reserve(params.mmap & PAGE_MASK,
 			 PAGE_ALIGN(params.mmap_size +
--- linux-ein-5.4.0.orig/drivers/firmware/efi/capsule-loader.c
+++ linux-ein-5.4.0/drivers/firmware/efi/capsule-loader.c
@@ -242,29 +242,6 @@
 }
 
 /**
- * efi_capsule_flush - called by file close or file flush
- * @file: file pointer
- * @id: not used
- *
- *	If a capsule is being partially uploaded then calling this function
- *	will be treated as upload termination and will free those completed
- *	buffer pages and -ECANCELED will be returned.
- **/
-static int efi_capsule_flush(struct file *file, fl_owner_t id)
-{
-	int ret = 0;
-	struct capsule_info *cap_info = file->private_data;
-
-	if (cap_info->index > 0) {
-		pr_err("capsule upload not complete\n");
-		efi_free_all_buff_pages(cap_info);
-		ret = -ECANCELED;
-	}
-
-	return ret;
-}
-
-/**
  * efi_capsule_release - called by file close
  * @inode: not used
  * @file: file pointer
@@ -276,6 +253,13 @@
 {
 	struct capsule_info *cap_info = file->private_data;
 
+	if (cap_info->index > 0 &&
+	    (cap_info->header.headersize == 0 ||
+	     cap_info->count < cap_info->total_size)) {
+		pr_err("capsule upload not complete\n");
+		efi_free_all_buff_pages(cap_info);
+	}
+
 	kfree(cap_info->pages);
 	kfree(cap_info->phys);
 	kfree(file->private_data);
@@ -323,7 +307,6 @@
 	.owner = THIS_MODULE,
 	.open = efi_capsule_open,
 	.write = efi_capsule_write,
-	.flush = efi_capsule_flush,
 	.release = efi_capsule_release,
 	.llseek = no_llseek,
 };
--- linux-ein-5.4.0.orig/drivers/firmware/efi/cper.c
+++ linux-ein-5.4.0/drivers/firmware/efi/cper.c
@@ -25,8 +25,6 @@
 #include <acpi/ghes.h>
 #include <ras/ras_event.h>
 
-static char rcd_decode_str[CPER_REC_LEN];
-
 /*
  * CPER record ID need to be unique even after reboot, because record
  * ID is used as index for ERST storage, while CPER records from
@@ -263,8 +261,7 @@
 	if (!msg || !(mem->validation_bits & CPER_MEM_VALID_MODULE_HANDLE))
 		return 0;
 
-	n = 0;
-	len = CPER_REC_LEN - 1;
+	len = CPER_REC_LEN;
 	dmi_memdev_name(mem->mem_dev_handle, &bank, &device);
 	if (bank && device)
 		n = snprintf(msg, len, "DIMM location: %s %s ", bank, device);
@@ -273,7 +270,6 @@
 			     "DIMM location: not present. DMI handle: 0x%.4x ",
 			     mem->mem_dev_handle);
 
-	msg[n] = '\0';
 	return n;
 }
 
@@ -301,6 +297,7 @@
 				struct cper_mem_err_compact *cmem)
 {
 	const char *ret = trace_seq_buffer_ptr(p);
+	char rcd_decode_str[CPER_REC_LEN];
 
 	if (cper_mem_err_location(cmem, rcd_decode_str))
 		trace_seq_printf(p, "%s", rcd_decode_str);
@@ -315,6 +312,7 @@
 	int len)
 {
 	struct cper_mem_err_compact cmem;
+	char rcd_decode_str[CPER_REC_LEN];
 
 	/* Don't trust UEFI 2.1/2.2 structure with bad validation bits */
 	if (len == sizeof(struct cper_sec_mem_err_old) &&
--- linux-ein-5.4.0.orig/drivers/firmware/efi/earlycon.c
+++ linux-ein-5.4.0/drivers/firmware/efi/earlycon.c
@@ -13,18 +13,58 @@
 
 #include <asm/early_ioremap.h>
 
+static const struct console *earlycon_console __initdata;
 static const struct font_desc *font;
 static u32 efi_x, efi_y;
 static u64 fb_base;
-static pgprot_t fb_prot;
+static bool fb_wb;
+static void *efi_fb;
+
+/*
+ * EFI earlycon needs to use early_memremap() to map the framebuffer.
+ * But early_memremap() is not usable for 'earlycon=efifb keep_bootcon',
+ * memremap() should be used instead. memremap() will be available after
+ * paging_init() which is earlier than initcall callbacks. Thus adding this
+ * early initcall function early_efi_map_fb() to map the whole EFI framebuffer.
+ */
+static int __init efi_earlycon_remap_fb(void)
+{
+	/* bail if there is no bootconsole or it has been disabled already */
+	if (!earlycon_console || !(earlycon_console->flags & CON_ENABLED))
+		return 0;
+
+	efi_fb = memremap(fb_base, screen_info.lfb_size,
+			  fb_wb ? MEMREMAP_WB : MEMREMAP_WC);
+
+	return efi_fb ? 0 : -ENOMEM;
+}
+early_initcall(efi_earlycon_remap_fb);
+
+static int __init efi_earlycon_unmap_fb(void)
+{
+	/* unmap the bootconsole fb unless keep_bootcon has left it enabled */
+	if (efi_fb && !(earlycon_console->flags & CON_ENABLED))
+		memunmap(efi_fb);
+	return 0;
+}
+late_initcall(efi_earlycon_unmap_fb);
 
 static __ref void *efi_earlycon_map(unsigned long start, unsigned long len)
 {
+	pgprot_t fb_prot;
+
+	if (efi_fb)
+		return efi_fb + start;
+
+	fb_prot = fb_wb ? PAGE_KERNEL : pgprot_writecombine(PAGE_KERNEL);
 	return early_memremap_prot(fb_base + start, len, pgprot_val(fb_prot));
 }
 
 static __ref void efi_earlycon_unmap(void *addr, unsigned long len)
 {
+	if (efi_fb)
+		return;
+
 	early_memunmap(addr, len);
 }
 
@@ -176,10 +216,7 @@
 	if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE)
 		fb_base |= (u64)screen_info.ext_lfb_base << 32;
 
-	if (opt && !strcmp(opt, "ram"))
-		fb_prot = PAGE_KERNEL;
-	else
-		fb_prot = pgprot_writecombine(PAGE_KERNEL);
+	fb_wb = opt && !strcmp(opt, "ram");
 
 	si = &screen_info;
 	xres = si->lfb_width;
@@ -201,6 +238,7 @@
 		efi_earlycon_scroll_up();
 
 	device->con->write = efi_earlycon_write;
+	earlycon_console = device->con;
 	return 0;
 }
 EARLYCON_DECLARE(efifb, efi_earlycon_setup);
--- linux-ein-5.4.0.orig/drivers/firmware/efi/efi.c
+++ linux-ein-5.4.0/drivers/firmware/efi/efi.c
@@ -31,6 +31,7 @@
 #include <linux/ucs2_string.h>
 #include <linux/memblock.h>
 #include <linux/security.h>
+#include <linux/bsearch.h>
 
 #include <asm/early_ioremap.h>
 
@@ -52,6 +53,9 @@
 	.rng_seed		= EFI_INVALID_TABLE_ADDR,
 	.tpm_log		= EFI_INVALID_TABLE_ADDR,
 	.tpm_final_log		= EFI_INVALID_TABLE_ADDR,
+#ifdef CONFIG_LOAD_UEFI_KEYS
+	.mokvar_table		= EFI_INVALID_TABLE_ADDR,
+#endif
 	.mem_reserve		= EFI_INVALID_TABLE_ADDR,
 };
 EXPORT_SYMBOL(efi);
@@ -217,7 +221,7 @@
 	efivars_unregister(&generic_efivars);
 }
 
-#if IS_ENABLED(CONFIG_ACPI)
+#ifdef CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
 #define EFIVAR_SSDT_NAME_MAX	16
 static char efivar_ssdt[EFIVAR_SSDT_NAME_MAX] __initdata;
 static int __init efivar_ssdt_setup(char *str)
@@ -231,7 +235,7 @@
 		memcpy(efivar_ssdt, str, strlen(str));
 	else
 		pr_warn("efivar_ssdt: name too long: %s\n", str);
-	return 0;
+	return 1;
 }
 __setup("efivar_ssdt=", efivar_ssdt_setup);
 
@@ -345,7 +349,8 @@
 	efi_kobj = kobject_create_and_add("efi", firmware_kobj);
 	if (!efi_kobj) {
 		pr_err("efi: Firmware registration failed.\n");
-		return -ENOMEM;
+		error = -ENOMEM;
+		goto err_destroy_wq;
 	}
 
 	error = generic_ops_register();
@@ -381,6 +386,10 @@
 	generic_ops_unregister();
 err_put:
 	kobject_put(efi_kobj);
+err_destroy_wq:
+	if (efi_rts_wq)
+		destroy_workqueue(efi_rts_wq);
+
 	return error;
 }
 
@@ -477,6 +486,9 @@
 #ifdef CONFIG_EFI_RCI2_TABLE
 	{DELLEMC_EFI_RCI2_TABLE_GUID, NULL, &rci2_table_phys},
 #endif
+#ifdef CONFIG_LOAD_UEFI_KEYS
+	{LINUX_EFI_MOK_VARIABLE_TABLE_GUID, "MOKvar", &efi.mokvar_table},
+#endif
 	{NULL_GUID, NULL, NULL},
 };
 
@@ -544,7 +556,7 @@
 
 		seed = early_memremap(efi.rng_seed, sizeof(*seed));
 		if (seed != NULL) {
-			size = seed->size;
+			size = min(seed->size, EFI_RANDOM_SEED_SIZE);
 			early_memunmap(seed, sizeof(*seed));
 		} else {
 			pr_err("Could not map UEFI random seed!\n");
@@ -554,7 +566,7 @@
 					      sizeof(*seed) + size);
 			if (seed != NULL) {
 				pr_notice("seeding entropy pool\n");
-				add_bootloader_randomness(seed->bits, seed->size);
+				add_bootloader_randomness(seed->bits, size);
 				early_memunmap(seed, sizeof(*seed) + size);
 			} else {
 				pr_err("Could not map UEFI random seed!\n");
@@ -562,7 +574,7 @@
 		}
 	}
 
-	if (efi_enabled(EFI_MEMMAP))
+	if (!IS_ENABLED(CONFIG_X86_32) && efi_enabled(EFI_MEMMAP))
 		efi_memattr_init();
 
 	efi_tpm_eventlog_init();
@@ -688,7 +700,8 @@
 	UEFI_PARAM("MemMap Address", "linux,uefi-mmap-start", mmap),
 	UEFI_PARAM("MemMap Size", "linux,uefi-mmap-size", mmap_size),
 	UEFI_PARAM("MemMap Desc. Size", "linux,uefi-mmap-desc-size", desc_size),
-	UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver)
+	UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver),
+	UEFI_PARAM("Secure Boot Enabled", "linux,uefi-secure-boot", secure_boot)
 };
 
 static __initdata struct params xen_fdt_params[] = {
@@ -918,40 +931,101 @@
 }
 #endif
 
+struct efi_error_code {
+	efi_status_t status;
+	int errno;
+	const char *description;
+};
+
+static const struct efi_error_code efi_error_codes[] = {
+	{ EFI_SUCCESS, 0, "Success"},
+#if 0
+	{ EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"},
+#endif
+	{ EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"},
+	{ EFI_UNSUPPORTED, -ENOSYS, "Unsupported"},
+	{ EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"},
+	{ EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"},
+	{ EFI_NOT_READY, -EAGAIN, "Not Ready"},
+	{ EFI_DEVICE_ERROR, -EIO, "Device Error"},
+	{ EFI_WRITE_PROTECTED, -EROFS, "Write Protected"},
+	{ EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"},
+#if 0
+	{ EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"},
+	{ EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"},
+	{ EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"},
+	{ EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"},
+#endif
+	{ EFI_NOT_FOUND, -ENOENT, "Not Found"},
+#if 0
+	{ EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"},
+	{ EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"},
+	{ EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"},
+	{ EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"},
+	{ EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"},
+	{ EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"},
+#endif
+	{ EFI_ABORTED, -EINTR, "Aborted"},
+#if 0
+	{ EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"},
+	{ EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"},
+	{ EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"},
+	{ EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"},
+#endif
+	{ EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"},
+#if 0
+	{ EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"},
+	{ EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"},
+	{ EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"},
+	{ EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"},
+	{ EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"},
+
+	// warnings
+	{ EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"},
+	{ EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"},
+	{ EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"},
+	{ EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"},
+#endif
+};
+
+static int
+efi_status_cmp_bsearch(const void *key, const void *item)
+{
+	u64 status = (u64)(uintptr_t)key;
+	struct efi_error_code *code = (struct efi_error_code *)item;
+
+	if (status < code->status)
+		return -1;
+	if (status > code->status)
+		return 1;
+	return 0;
+}
+
 int efi_status_to_err(efi_status_t status)
 {
-	int err;
+	struct efi_error_code *found;
+	size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code);
 
-	switch (status) {
-	case EFI_SUCCESS:
-		err = 0;
-		break;
-	case EFI_INVALID_PARAMETER:
-		err = -EINVAL;
-		break;
-	case EFI_OUT_OF_RESOURCES:
-		err = -ENOSPC;
-		break;
-	case EFI_DEVICE_ERROR:
-		err = -EIO;
-		break;
-	case EFI_WRITE_PROTECTED:
-		err = -EROFS;
-		break;
-	case EFI_SECURITY_VIOLATION:
-		err = -EACCES;
-		break;
-	case EFI_NOT_FOUND:
-		err = -ENOENT;
-		break;
-	case EFI_ABORTED:
-		err = -EINTR;
-		break;
-	default:
-		err = -EINVAL;
-	}
+	found = bsearch((void *)(uintptr_t)status, efi_error_codes,
+			sizeof(struct efi_error_code), num,
+			efi_status_cmp_bsearch);
+	if (!found)
+		return -EINVAL;
+	return found->errno;
+}
+
+const char *
+efi_status_to_str(efi_status_t status)
+{
+	struct efi_error_code *found;
+	size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code);
 
-	return err;
+	found = bsearch((void *)(uintptr_t)status, efi_error_codes,
+			sizeof(struct efi_error_code), num,
+			efi_status_cmp_bsearch);
+	if (!found)
+		return "Unknown error code";
+	return found->description;
 }
 
 static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock);
@@ -970,6 +1044,35 @@
 	return 0;
 }
 
+static int efi_mem_reserve_iomem(phys_addr_t addr, u64 size)
+{
+	struct resource *res, *parent;
+	int ret;
+
+	res = kzalloc(sizeof(struct resource), GFP_ATOMIC);
+	if (!res)
+		return -ENOMEM;
+
+	res->name	= "reserved";
+	res->flags	= IORESOURCE_MEM;
+	res->start	= addr;
+	res->end	= addr + size - 1;
+
+	/* we expect a conflict with a 'System RAM' region */
+	parent = request_resource_conflict(&iomem_resource, res);
+	ret = parent ? request_resource(parent, res) : 0;
+
+	/*
+	 * Given that efi_mem_reserve_iomem() can be called at any
+	 * time, only call memblock_reserve() if the architecture
+	 * keeps the infrastructure around.
+	 */
+	if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK) && !ret)
+		memblock_reserve(addr, size);
+
+	return ret;
+}
+
 int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size)
 {
 	struct linux_efi_memreserve *rsv;
@@ -986,16 +1089,19 @@
 	}
 
 	/* first try to find a slot in an existing linked list entry */
-	for (prsv = efi_memreserve_root->next; prsv; prsv = rsv->next) {
+	for (prsv = efi_memreserve_root->next; prsv; ) {
 		rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB);
+		if (!rsv)
+			return -ENOMEM;
 		index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size);
 		if (index < rsv->size) {
 			rsv->entry[index].base = addr;
 			rsv->entry[index].size = size;
 
 			memunmap(rsv);
-			return 0;
+			return efi_mem_reserve_iomem(addr, size);
 		}
+		prsv = rsv->next;
 		memunmap(rsv);
 	}
 
@@ -1004,6 +1110,12 @@
 	if (!rsv)
 		return -ENOMEM;
 
+	rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K);
+	if (rc) {
+		free_page((unsigned long)rsv);
+		return rc;
+	}
+
 	/*
 	 * The memremap() call above assumes that a linux_efi_memreserve entry
 	 * never crosses a page boundary, so let's ensure that this remains true
@@ -1020,7 +1132,7 @@
 	efi_memreserve_root->next = __pa(rsv);
 	spin_unlock(&efi_mem_reserve_persistent_lock);
 
-	return 0;
+	return efi_mem_reserve_iomem(addr, size);
 }
 
 static int __init efi_memreserve_root_init(void)
--- linux-ein-5.4.0.orig/drivers/firmware/efi/efivars.c
+++ linux-ein-5.4.0/drivers/firmware/efi/efivars.c
@@ -83,13 +83,16 @@
 efivar_attr_read(struct efivar_entry *entry, char *buf)
 {
 	struct efi_variable *var = &entry->var;
+	unsigned long size = sizeof(var->Data);
 	char *str = buf;
+	int ret;
 
 	if (!entry || !buf)
 		return -EINVAL;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &var->Attributes, &var->DataSize, var->Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &size, var->Data);
+	var->DataSize = size;
+	if (ret)
 		return -EIO;
 
 	if (var->Attributes & EFI_VARIABLE_NON_VOLATILE)
@@ -116,13 +119,16 @@
 efivar_size_read(struct efivar_entry *entry, char *buf)
 {
 	struct efi_variable *var = &entry->var;
+	unsigned long size = sizeof(var->Data);
 	char *str = buf;
+	int ret;
 
 	if (!entry || !buf)
 		return -EINVAL;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &var->Attributes, &var->DataSize, var->Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &size, var->Data);
+	var->DataSize = size;
+	if (ret)
 		return -EIO;
 
 	str += sprintf(str, "0x%lx\n", var->DataSize);
@@ -133,12 +139,15 @@
 efivar_data_read(struct efivar_entry *entry, char *buf)
 {
 	struct efi_variable *var = &entry->var;
+	unsigned long size = sizeof(var->Data);
+	int ret;
 
 	if (!entry || !buf)
 		return -EINVAL;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &var->Attributes, &var->DataSize, var->Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &size, var->Data);
+	var->DataSize = size;
+	if (ret)
 		return -EIO;
 
 	memcpy(buf, var->Data, var->DataSize);
@@ -199,6 +208,9 @@
 	u8 *data;
 	int err;
 
+	if (!entry || !buf)
+		return -EINVAL;
+
 	if (in_compat_syscall()) {
 		struct compat_efi_variable *compat;
 
@@ -250,14 +262,16 @@
 {
 	struct efi_variable *var = &entry->var;
 	struct compat_efi_variable *compat;
+	unsigned long datasize = sizeof(var->Data);
 	size_t size;
+	int ret;
 
 	if (!entry || !buf)
 		return 0;
 
-	var->DataSize = 1024;
-	if (efivar_entry_get(entry, &entry->var.Attributes,
-			     &entry->var.DataSize, entry->var.Data))
+	ret = efivar_entry_get(entry, &var->Attributes, &datasize, var->Data);
+	var->DataSize = datasize;
+	if (ret)
 		return -EIO;
 
 	if (in_compat_syscall()) {
@@ -508,8 +522,10 @@
 	ret = kobject_init_and_add(&new_var->kobj, &efivar_ktype,
 				   NULL, "%s", short_name);
 	kfree(short_name);
-	if (ret)
+	if (ret) {
+		kobject_put(&new_var->kobj);
 		return ret;
+	}
 
 	kobject_uevent(&new_var->kobj, KOBJ_ADD);
 	if (efivar_entry_add(new_var, &efivar_sysfs_list)) {
--- linux-ein-5.4.0.orig/drivers/firmware/efi/esrt.c
+++ linux-ein-5.4.0/drivers/firmware/efi/esrt.c
@@ -181,7 +181,7 @@
 		rc = kobject_init_and_add(&entry->kobj, &esre1_ktype, NULL,
 					  "entry%d", entry_num);
 		if (rc) {
-			kfree(entry);
+			kobject_put(&entry->kobj);
 			return rc;
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/Makefile
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/Makefile
@@ -28,6 +28,7 @@
 				   -D__NO_FORTIFY \
 				   $(call cc-option,-ffreestanding) \
 				   $(call cc-option,-fno-stack-protector) \
+				   $(call cc-option,-fno-addrsig) \
 				   -D__DISABLE_EXPORTS
 
 GCOV_PROFILE			:= n
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/arm-stub.c
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/arm-stub.c
@@ -189,6 +189,8 @@
 		goto fail_free_cmdline;
 	}
 
+	efi_retrieve_tpm2_eventlog(sys_table);
+
 	/* Ask the firmware to clear memory on unclean shutdown */
 	efi_enable_reset_attack_mitigation(sys_table);
 
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/efi-stub-helper.c
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/efi-stub-helper.c
@@ -46,7 +46,7 @@
 	return __novamap;
 }
 
-#define EFI_MMAP_NR_SLACK_SLOTS	8
+#define EFI_MMAP_NR_SLACK_SLOTS	16
 
 struct file_info {
 	efi_file_handle_t *handle;
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/fdt.c
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/fdt.c
@@ -151,6 +151,12 @@
 		}
 	}
 
+	fdt_val32 = cpu_to_fdt32(efi_get_secureboot(sys_table));
+	status = fdt_setprop(fdt, node, "linux,uefi-secure-boot",
+			     &fdt_val32, sizeof(fdt_val32));
+	if (status)
+		goto fdt_set_fail;
+
 	/* Shrink the FDT back to its minimum size: */
 	fdt_pack(fdt);
 
@@ -291,14 +297,6 @@
 		goto fail;
 	}
 
-	/*
-	 * Now that we have done our final memory allocation (and free)
-	 * we can get the memory map key needed for exit_boot_services().
-	 */
-	status = efi_get_memory_map(sys_table, &map);
-	if (status != EFI_SUCCESS)
-		goto fail_free_new_fdt;
-
 	status = update_fdt(sys_table, (void *)fdt_addr, fdt_size,
 			    (void *)*new_fdt_addr, MAX_FDT_SIZE, cmdline_ptr,
 			    initrd_addr, initrd_size);
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/gop.c
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/gop.c
@@ -84,30 +84,6 @@
 }
 
 static efi_status_t
-__gop_query32(efi_system_table_t *sys_table_arg,
-	      struct efi_graphics_output_protocol_32 *gop32,
-	      struct efi_graphics_output_mode_info **info,
-	      unsigned long *size, u64 *fb_base)
-{
-	struct efi_graphics_output_protocol_mode_32 *mode;
-	efi_graphics_output_protocol_query_mode query_mode;
-	efi_status_t status;
-	unsigned long m;
-
-	m = gop32->mode;
-	mode = (struct efi_graphics_output_protocol_mode_32 *)m;
-	query_mode = (void *)(unsigned long)gop32->query_mode;
-
-	status = __efi_call_early(query_mode, (void *)gop32, mode->mode, size,
-				  info);
-	if (status != EFI_SUCCESS)
-		return status;
-
-	*fb_base = mode->frame_buffer_base;
-	return status;
-}
-
-static efi_status_t
 setup_gop32(efi_system_table_t *sys_table_arg, struct screen_info *si,
             efi_guid_t *proto, unsigned long size, void **gop_handle)
 {
@@ -119,7 +95,7 @@
 	u64 fb_base;
 	struct efi_pixel_bitmask pixel_info;
 	int pixel_format;
-	efi_status_t status = EFI_NOT_FOUND;
+	efi_status_t status;
 	u32 *handles = (u32 *)(unsigned long)gop_handle;
 	int i;
 
@@ -128,6 +104,7 @@
 
 	nr_gops = size / sizeof(u32);
 	for (i = 0; i < nr_gops; i++) {
+		struct efi_graphics_output_protocol_mode_32 *mode;
 		struct efi_graphics_output_mode_info *info = NULL;
 		efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
 		bool conout_found = false;
@@ -145,9 +122,11 @@
 		if (status == EFI_SUCCESS)
 			conout_found = true;
 
-		status = __gop_query32(sys_table_arg, gop32, &info, &size,
-				       &current_fb_base);
-		if (status == EFI_SUCCESS && (!first_gop || conout_found) &&
+		mode = (void *)(unsigned long)gop32->mode;
+		info = (void *)(unsigned long)mode->info;
+		current_fb_base = mode->frame_buffer_base;
+
+		if ((!first_gop || conout_found) &&
 		    info->pixel_format != PIXEL_BLT_ONLY) {
 			/*
 			 * Systems that use the UEFI Console Splitter may
@@ -175,7 +154,7 @@
 
 	/* Did we find any GOPs? */
 	if (!first_gop)
-		goto out;
+		return EFI_NOT_FOUND;
 
 	/* EFI framebuffer */
 	si->orig_video_isVGA = VIDEO_TYPE_EFI;
@@ -197,32 +176,8 @@
 	si->lfb_size = si->lfb_linelength * si->lfb_height;
 
 	si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS;
-out:
-	return status;
-}
-
-static efi_status_t
-__gop_query64(efi_system_table_t *sys_table_arg,
-	      struct efi_graphics_output_protocol_64 *gop64,
-	      struct efi_graphics_output_mode_info **info,
-	      unsigned long *size, u64 *fb_base)
-{
-	struct efi_graphics_output_protocol_mode_64 *mode;
-	efi_graphics_output_protocol_query_mode query_mode;
-	efi_status_t status;
-	unsigned long m;
 
-	m = gop64->mode;
-	mode = (struct efi_graphics_output_protocol_mode_64 *)m;
-	query_mode = (void *)(unsigned long)gop64->query_mode;
-
-	status = __efi_call_early(query_mode, (void *)gop64, mode->mode, size,
-				  info);
-	if (status != EFI_SUCCESS)
-		return status;
-
-	*fb_base = mode->frame_buffer_base;
-	return status;
+	return EFI_SUCCESS;
 }
 
 static efi_status_t
@@ -237,7 +192,7 @@
 	u64 fb_base;
 	struct efi_pixel_bitmask pixel_info;
 	int pixel_format;
-	efi_status_t status = EFI_NOT_FOUND;
+	efi_status_t status;
 	u64 *handles = (u64 *)(unsigned long)gop_handle;
 	int i;
 
@@ -246,6 +201,7 @@
 
 	nr_gops = size / sizeof(u64);
 	for (i = 0; i < nr_gops; i++) {
+		struct efi_graphics_output_protocol_mode_64 *mode;
 		struct efi_graphics_output_mode_info *info = NULL;
 		efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
 		bool conout_found = false;
@@ -263,9 +219,11 @@
 		if (status == EFI_SUCCESS)
 			conout_found = true;
 
-		status = __gop_query64(sys_table_arg, gop64, &info, &size,
-				       &current_fb_base);
-		if (status == EFI_SUCCESS && (!first_gop || conout_found) &&
+		mode = (void *)(unsigned long)gop64->mode;
+		info = (void *)(unsigned long)mode->info;
+		current_fb_base = mode->frame_buffer_base;
+
+		if ((!first_gop || conout_found) &&
 		    info->pixel_format != PIXEL_BLT_ONLY) {
 			/*
 			 * Systems that use the UEFI Console Splitter may
@@ -293,7 +251,7 @@
 
 	/* Did we find any GOPs? */
 	if (!first_gop)
-		goto out;
+		return EFI_NOT_FOUND;
 
 	/* EFI framebuffer */
 	si->orig_video_isVGA = VIDEO_TYPE_EFI;
@@ -315,8 +273,8 @@
 	si->lfb_size = si->lfb_linelength * si->lfb_height;
 
 	si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS;
-out:
-	return status;
+
+	return EFI_SUCCESS;
 }
 
 /*
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/secureboot.c
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/secureboot.c
@@ -19,7 +19,7 @@
 
 /* SHIM variables */
 static const efi_guid_t shim_guid = EFI_SHIM_LOCK_GUID;
-static const efi_char16_t shim_MokSBState_name[] = L"MokSBState";
+static const efi_char16_t shim_MokSBState_name[] = L"MokSBStateRT";
 
 #define get_efi_var(name, vendor, ...) \
 	efi_call_runtime(get_variable, \
@@ -58,8 +58,8 @@
 
 	/*
 	 * See if a user has put the shim into insecure mode. If so, and if the
-	 * variable doesn't have the runtime attribute set, we might as well
-	 * honor that.
+	 * variable doesn't have the non-volatile attribute set, we might as
+	 * well honor that.
 	 */
 	size = sizeof(moksbstate);
 	status = get_efi_var(shim_MokSBState_name, &shim_guid,
@@ -68,7 +68,7 @@
 	/* If it fails, we don't care why. Default to secure */
 	if (status != EFI_SUCCESS)
 		goto secure_boot_enabled;
-	if (!(attr & EFI_VARIABLE_RUNTIME_ACCESS) && moksbstate == 1)
+	if (!(attr & EFI_VARIABLE_NON_VOLATILE) && moksbstate == 1)
 		return efi_secureboot_mode_disabled;
 
 secure_boot_enabled:
--- linux-ein-5.4.0.orig/drivers/firmware/efi/libstub/tpm.c
+++ linux-ein-5.4.0/drivers/firmware/efi/libstub/tpm.c
@@ -64,7 +64,7 @@
 	efi_status_t status;
 	efi_physical_addr_t log_location = 0, log_last_entry = 0;
 	struct linux_efi_tpm_eventlog *log_tbl = NULL;
-	struct efi_tcg2_final_events_table *final_events_table;
+	struct efi_tcg2_final_events_table *final_events_table = NULL;
 	unsigned long first_entry_addr, last_entry_addr;
 	size_t log_size, last_entry_size;
 	efi_bool_t truncated;
@@ -140,7 +140,8 @@
 	 * Figure out whether any events have already been logged to the
 	 * final events structure, and if so how much space they take up
 	 */
-	final_events_table = get_efi_config_table(sys_table_arg,
+	if (version == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
+		final_events_table = get_efi_config_table(sys_table_arg,
 						LINUX_EFI_TPM_FINAL_LOG_GUID);
 	if (final_events_table && final_events_table->nr_events) {
 		struct tcg_pcr_event2_head *header;
--- linux-ein-5.4.0.orig/drivers/firmware/efi/memattr.c
+++ linux-ein-5.4.0/drivers/firmware/efi/memattr.c
@@ -32,7 +32,7 @@
 		return -ENOMEM;
 	}
 
-	if (tbl->version > 1) {
+	if (tbl->version > 2) {
 		pr_warn("Unexpected EFI Memory Attributes table version %d\n",
 			tbl->version);
 		goto unmap;
@@ -66,11 +66,6 @@
 		return false;
 	}
 
-	if (!(in->attribute & (EFI_MEMORY_RO | EFI_MEMORY_XP))) {
-		pr_warn("Entry attributes invalid: RO and XP bits both cleared\n");
-		return false;
-	}
-
 	if (PAGE_SIZE > EFI_PAGE_SIZE &&
 	    (!PAGE_ALIGNED(in->phys_addr) ||
 	     !PAGE_ALIGNED(in->num_pages << EFI_PAGE_SHIFT))) {
--- linux-ein-5.4.0.orig/drivers/firmware/efi/mokvar-table.c
+++ linux-ein-5.4.0/drivers/firmware/efi/mokvar-table.c
@@ -0,0 +1,362 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * mokvar-table.c
+ *
+ * Copyright (c) 2020 Red Hat
+ * Author: Lenny Szubowicz <lszubowi@redhat.com>
+ *
+ * This module contains the kernel support for the Linux EFI Machine
+ * Owner Key (MOK) variable configuration table, which is identified by
+ * the LINUX_EFI_MOK_VARIABLE_TABLE_GUID.
+ *
+ * This EFI configuration table provides a more robust alternative to
+ * EFI volatile variables by which an EFI boot loader can pass the
+ * contents of the Machine Owner Key (MOK) certificate stores to the
+ * kernel during boot. If both the EFI MOK config table and corresponding
+ * EFI MOK variables are present, the table should be considered as
+ * more authoritative.
+ *
+ * This module includes code that validates and maps the EFI MOK table,
+ * if it's presence was detected very early in boot.
+ *
+ * Kernel interface routines are provided to walk through all the
+ * entries in the MOK config table or to search for a specific named
+ * entry.
+ *
+ * The contents of the individual named MOK config table entries are
+ * made available to user space via read-only sysfs binary files under:
+ *
+ * /sys/firmware/efi/mok-variables/
+ *
+ */
+#define pr_fmt(fmt) "mokvar: " fmt
+
+#include <linux/capability.h>
+#include <linux/efi.h>
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/kobject.h>
+#include <linux/list.h>
+#include <linux/slab.h>
+
+#include <asm/early_ioremap.h>
+
+/*
+ * The LINUX_EFI_MOK_VARIABLE_TABLE_GUID config table is a packed
+ * sequence of struct efi_mokvar_table_entry, one for each named
+ * MOK variable. The sequence is terminated by an entry with a
+ * completely NULL name and 0 data size.
+ *
+ * efi_mokvar_table_size is set to the computed size of the
+ * MOK config table by efi_mokvar_table_init(). This will be
+ * non-zero if and only if the table if present and has been
+ * validated by efi_mokvar_table_init().
+ */
+static size_t efi_mokvar_table_size;
+
+/*
+ * efi_mokvar_table_va is the kernel virtual address at which the
+ * EFI MOK config table has been mapped by efi_mokvar_sysfs_init().
+ */
+static struct efi_mokvar_table_entry *efi_mokvar_table_va;
+
+/*
+ * Each /sys/firmware/efi/mok-variables/ sysfs file is represented by
+ * an instance of struct efi_mokvar_sysfs_attr on efi_mokvar_sysfs_list.
+ * bin_attr.private points to the associated EFI MOK config table entry.
+ *
+ * This list is created during boot and then remains unchanged.
+ * So no synchronization is currently required to walk the list.
+ */
+struct efi_mokvar_sysfs_attr {
+	struct bin_attribute bin_attr;
+	struct list_head node;
+};
+
+static LIST_HEAD(efi_mokvar_sysfs_list);
+static struct kobject *mokvar_kobj;
+
+/*
+ * efi_mokvar_table_init() - Early boot validation of EFI MOK config table
+ *
+ * If present, validate and compute the size of the EFI MOK variable
+ * configuration table. This table may be provided by an EFI boot loader
+ * as an alternative to ordinary EFI variables, due to platform-dependent
+ * limitations. The memory occupied by this table is marked as reserved.
+ *
+ * This routine must be called before efi_free_boot_services() in order
+ * to guarantee that it can mark the table as reserved.
+ *
+ * Implicit inputs:
+ * efi.mokvar_table:	Physical address of EFI MOK variable config table
+ *			or special value that indicates no such table.
+ *
+ * Implicit outputs:
+ * efi_mokvar_table_size: Computed size of EFI MOK variable config table.
+ *			The table is considered present and valid if this
+ *			is non-zero.
+ */
+void __init efi_mokvar_table_init(void)
+{
+	efi_memory_desc_t md;
+	void *va = NULL;
+	unsigned long cur_offset = 0;
+	unsigned long offset_limit;
+	unsigned long map_size = 0;
+	unsigned long map_size_needed = 0;
+	unsigned long size;
+	struct efi_mokvar_table_entry *mokvar_entry;
+	int err;
+
+	if (!efi_enabled(EFI_MEMMAP))
+		return;
+
+	if (efi.mokvar_table == EFI_INVALID_TABLE_ADDR)
+		return;
+	/*
+	 * The EFI MOK config table must fit within a single EFI memory
+	 * descriptor range.
+	 */
+	err = efi_mem_desc_lookup(efi.mokvar_table, &md);
+	if (err) {
+		pr_warn("EFI MOKvar config table is not within the EFI memory map\n");
+		return;
+	}
+
+	offset_limit = efi_mem_desc_end(&md) - efi.mokvar_table;
+
+	/*
+	 * Validate the MOK config table. Since there is no table header
+	 * from which we could get the total size of the MOK config table,
+	 * we compute the total size as we validate each variably sized
+	 * entry, remapping as necessary.
+	 */
+	err = -EINVAL;
+	while (cur_offset + sizeof(*mokvar_entry) <= offset_limit) {
+		mokvar_entry = va + cur_offset;
+		map_size_needed = cur_offset + sizeof(*mokvar_entry);
+		if (map_size_needed > map_size) {
+			if (va)
+				early_memunmap(va, map_size);
+			/*
+			 * Map a little more than the fixed size entry
+			 * header, anticipating some data. It's safe to
+			 * do so as long as we stay within current memory
+			 * descriptor.
+			 */
+			map_size = min(map_size_needed + 2*EFI_PAGE_SIZE,
+				       offset_limit);
+			va = early_memremap(efi.mokvar_table, map_size);
+			if (!va) {
+				pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%lu.\n",
+				       efi.mokvar_table, map_size);
+				return;
+			}
+			mokvar_entry = va + cur_offset;
+		}
+
+		/* Check for last sentinel entry */
+		if (mokvar_entry->name[0] == '\0') {
+			if (mokvar_entry->data_size != 0)
+				break;
+			err = 0;
+			break;
+		}
+
+		/* Sanity check that the name is null terminated */
+		size = strnlen(mokvar_entry->name,
+			       sizeof(mokvar_entry->name));
+		if (size >= sizeof(mokvar_entry->name))
+			break;
+
+		/* Advance to the next entry */
+		cur_offset = map_size_needed + mokvar_entry->data_size;
+	}
+
+	if (va)
+		early_memunmap(va, map_size);
+	if (err) {
+		pr_err("EFI MOKvar config table is not valid\n");
+		return;
+	}
+
+	if (md.type == EFI_BOOT_SERVICES_DATA)
+		efi_mem_reserve(efi.mokvar_table, map_size_needed);
+
+	efi_mokvar_table_size = map_size_needed;
+}
+
+/*
+ * efi_mokvar_entry_next() - Get next entry in the EFI MOK config table
+ *
+ * mokvar_entry:	Pointer to current EFI MOK config table entry
+ *			or null. Null indicates get first entry.
+ *			Passed by reference. This is updated to the
+ *			same value as the return value.
+ *
+ * Returns:		Pointer to next EFI MOK config table entry
+ *			or null, if there are no more entries.
+ *			Same value is returned in the mokvar_entry
+ *			parameter.
+ *
+ * This routine depends on the EFI MOK config table being entirely
+ * mapped with it's starting virtual address in efi_mokvar_table_va.
+ */
+struct efi_mokvar_table_entry *efi_mokvar_entry_next(
+			struct efi_mokvar_table_entry **mokvar_entry)
+{
+	struct efi_mokvar_table_entry *mokvar_cur;
+	struct efi_mokvar_table_entry *mokvar_next;
+	size_t size_cur;
+
+	mokvar_cur = *mokvar_entry;
+	*mokvar_entry = NULL;
+
+	if (efi_mokvar_table_va == NULL)
+		return NULL;
+
+	if (mokvar_cur == NULL) {
+		mokvar_next = efi_mokvar_table_va;
+	} else {
+		if (mokvar_cur->name[0] == '\0')
+			return NULL;
+		size_cur = sizeof(*mokvar_cur) + mokvar_cur->data_size;
+		mokvar_next = (void *)mokvar_cur + size_cur;
+	}
+
+	if (mokvar_next->name[0] == '\0')
+		return NULL;
+
+	*mokvar_entry = mokvar_next;
+	return mokvar_next;
+}
+
+/*
+ * efi_mokvar_entry_find() - Find EFI MOK config entry by name
+ *
+ * name:	Name of the entry to look for.
+ *
+ * Returns:	Pointer to EFI MOK config table entry if found;
+ *		null otherwise.
+ *
+ * This routine depends on the EFI MOK config table being entirely
+ * mapped with it's starting virtual address in efi_mokvar_table_va.
+ */
+struct efi_mokvar_table_entry *efi_mokvar_entry_find(const char *name)
+{
+	struct efi_mokvar_table_entry *mokvar_entry = NULL;
+
+	while (efi_mokvar_entry_next(&mokvar_entry)) {
+		if (!strncmp(name, mokvar_entry->name,
+			     sizeof(mokvar_entry->name)))
+			return mokvar_entry;
+	}
+	return NULL;
+}
+
+/*
+ * efi_mokvar_sysfs_read() - sysfs binary file read routine
+ *
+ * Returns:	Count of bytes read.
+ *
+ * Copy EFI MOK config table entry data for this mokvar sysfs binary file
+ * to the supplied buffer, starting at the specified offset into mokvar table
+ * entry data, for the specified count bytes. The copy is limited by the
+ * amount of data in this mokvar config table entry.
+ */
+static ssize_t efi_mokvar_sysfs_read(struct file *file, struct kobject *kobj,
+				 struct bin_attribute *bin_attr, char *buf,
+				 loff_t off, size_t count)
+{
+	struct efi_mokvar_table_entry *mokvar_entry = bin_attr->private;
+
+	if (!capable(CAP_SYS_ADMIN))
+		return 0;
+
+	if (off >= mokvar_entry->data_size)
+		return 0;
+	if (count >  mokvar_entry->data_size - off)
+		count = mokvar_entry->data_size - off;
+
+	memcpy(buf, mokvar_entry->data + off, count);
+	return count;
+}
+
+/*
+ * efi_mokvar_sysfs_init() - Map EFI MOK config table and create sysfs
+ *
+ * Map the EFI MOK variable config table for run-time use by the kernel
+ * and create the sysfs entries in /sys/firmware/efi/mok-variables/
+ *
+ * This routine just returns if a valid EFI MOK variable config table
+ * was not found earlier during boot.
+ *
+ * This routine must be called during a "middle" initcall phase, i.e.
+ * after efi_mokvar_table_init() but before UEFI certs are loaded
+ * during late init.
+ *
+ * Implicit inputs:
+ * efi.mokvar_table:	Physical address of EFI MOK variable config table
+ *			or special value that indicates no such table.
+ *
+ * efi_mokvar_table_size: Computed size of EFI MOK variable config table.
+ *			The table is considered present and valid if this
+ *			is non-zero.
+ *
+ * Implicit outputs:
+ * efi_mokvar_table_va:	Start virtual address of the EFI MOK config table.
+ */
+static int __init efi_mokvar_sysfs_init(void)
+{
+	void *config_va;
+	struct efi_mokvar_table_entry *mokvar_entry = NULL;
+	struct efi_mokvar_sysfs_attr *mokvar_sysfs = NULL;
+	int err = 0;
+
+	if (efi_mokvar_table_size == 0)
+		return -ENOENT;
+
+	config_va = memremap(efi.mokvar_table, efi_mokvar_table_size,
+			     MEMREMAP_WB);
+	if (!config_va) {
+		pr_err("Failed to map EFI MOKvar config table\n");
+		return -ENOMEM;
+	}
+	efi_mokvar_table_va = config_va;
+
+	mokvar_kobj = kobject_create_and_add("mok-variables", efi_kobj);
+	if (!mokvar_kobj) {
+		pr_err("Failed to create EFI mok-variables sysfs entry\n");
+		return -ENOMEM;
+	}
+
+	while (efi_mokvar_entry_next(&mokvar_entry)) {
+		mokvar_sysfs = kzalloc(sizeof(*mokvar_sysfs), GFP_KERNEL);
+		if (!mokvar_sysfs) {
+			err = -ENOMEM;
+			break;
+		}
+
+		sysfs_bin_attr_init(&mokvar_sysfs->bin_attr);
+		mokvar_sysfs->bin_attr.private = mokvar_entry;
+		mokvar_sysfs->bin_attr.attr.name = mokvar_entry->name;
+		mokvar_sysfs->bin_attr.attr.mode = 0400;
+		mokvar_sysfs->bin_attr.size = mokvar_entry->data_size;
+		mokvar_sysfs->bin_attr.read = efi_mokvar_sysfs_read;
+
+		err = sysfs_create_bin_file(mokvar_kobj,
+					   &mokvar_sysfs->bin_attr);
+		if (err)
+			break;
+
+		list_add_tail(&mokvar_sysfs->node, &efi_mokvar_sysfs_list);
+	}
+
+	if (err) {
+		pr_err("Failed to create some EFI mok-variables sysfs entries\n");
+		kfree(mokvar_sysfs);
+	}
+	return err;
+}
+device_initcall(efi_mokvar_sysfs_init);
--- linux-ein-5.4.0.orig/drivers/firmware/efi/rci2-table.c
+++ linux-ein-5.4.0/drivers/firmware/efi/rci2-table.c
@@ -81,6 +81,9 @@
 	struct kobject *tables_kobj;
 	int ret = -ENOMEM;
 
+	if (rci2_table_phys == EFI_INVALID_TABLE_ADDR)
+		return 0;
+
 	rci2_base = memremap(rci2_table_phys,
 			     sizeof(struct rci2_table_global_hdr),
 			     MEMREMAP_WB);
--- linux-ein-5.4.0.orig/drivers/firmware/efi/runtime-wrappers.c
+++ linux-ein-5.4.0/drivers/firmware/efi/runtime-wrappers.c
@@ -62,6 +62,7 @@
 									\
 	if (!efi_enabled(EFI_RUNTIME_SERVICES)) {			\
 		pr_warn_once("EFI Runtime Services are disabled!\n");	\
+		efi_rts_work.status = EFI_DEVICE_ERROR;			\
 		goto exit;						\
 	}								\
 									\
@@ -414,7 +415,7 @@
 				  unsigned long data_size,
 				  efi_char16_t *data)
 {
-	if (down_interruptible(&efi_runtime_lock)) {
+	if (down_trylock(&efi_runtime_lock)) {
 		pr_warn("failed to invoke the reset_system() runtime service:\n"
 			"could not get exclusive access to the firmware\n");
 		return;
--- linux-ein-5.4.0.orig/drivers/firmware/efi/secureboot.c
+++ linux-ein-5.4.0/drivers/firmware/efi/secureboot.c
@@ -0,0 +1,38 @@
+/* Core kernel secure boot support.
+ *
+ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public Licence
+ * as published by the Free Software Foundation; either version
+ * 2 of the Licence, or (at your option) any later version.
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/efi.h>
+#include <linux/kernel.h>
+#include <linux/printk.h>
+
+/*
+ * Decide what to do when UEFI secure boot mode is enabled.
+ */
+void __init efi_set_secure_boot(enum efi_secureboot_mode mode)
+{
+	if (efi_enabled(EFI_BOOT)) {
+		switch (mode) {
+		case efi_secureboot_mode_disabled:
+			pr_info("Secure boot disabled\n");
+			break;
+		case efi_secureboot_mode_enabled:
+			set_bit(EFI_SECURE_BOOT, &efi.flags);
+			pr_info("Secure boot enabled\n");
+			break;
+		default:
+			pr_warning("Secure boot could not be determined (mode %u)\n",
+				   mode);
+			break;
+		}
+	}
+}
--- linux-ein-5.4.0.orig/drivers/firmware/efi/tpm.c
+++ linux-ein-5.4.0/drivers/firmware/efi/tpm.c
@@ -16,7 +16,7 @@
 int efi_tpm_final_log_size;
 EXPORT_SYMBOL(efi_tpm_final_log_size);
 
-static int tpm2_calc_event_log_size(void *data, int count, void *size_info)
+static int __init tpm2_calc_event_log_size(void *data, int count, void *size_info)
 {
 	struct tcg_pcr_event2_head *header;
 	int event_size, size = 0;
@@ -62,8 +62,13 @@
 	tbl_size = sizeof(*log_tbl) + log_tbl->size;
 	memblock_reserve(efi.tpm_log, tbl_size);
 
-	if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR)
+	if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR) {
+		pr_info("TPM Final Events table not present\n");
 		goto out;
+	} else if (log_tbl->version != EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) {
+		pr_warn(FW_BUG "TPM Final Events table invalid\n");
+		goto out;
+	}
 
 	final_tbl = early_memremap(efi.tpm_final_log, sizeof(*final_tbl));
 
--- linux-ein-5.4.0.orig/drivers/firmware/efi/vars.c
+++ linux-ein-5.4.0/drivers/firmware/efi/vars.c
@@ -750,6 +750,7 @@
 {
 	const struct efivar_operations *ops;
 	efi_status_t status;
+	unsigned long varsize;
 
 	if (!__efivars)
 		return -EINVAL;
@@ -772,15 +773,17 @@
 		return efivar_entry_set_nonblocking(name, vendor, attributes,
 						    size, data);
 
+	varsize = size + ucs2_strsize(name, 1024);
 	if (!block) {
 		if (down_trylock(&efivars_lock))
 			return -EBUSY;
+		status = check_var_size_nonblocking(attributes, varsize);
 	} else {
 		if (down_interruptible(&efivars_lock))
 			return -EINTR;
+		status = check_var_size(attributes, varsize);
 	}
 
-	status = check_var_size(attributes, size + ucs2_strsize(name, 1024));
 	if (status != EFI_SUCCESS) {
 		up(&efivars_lock);
 		return -ENOSPC;
--- linux-ein-5.4.0.orig/drivers/firmware/google/Kconfig
+++ linux-ein-5.4.0/drivers/firmware/google/Kconfig
@@ -3,9 +3,9 @@
 	bool "Google Firmware Drivers"
 	default n
 	help
-	  These firmware drivers are used by Google's servers.  They are
-	  only useful if you are working directly on one of their
-	  proprietary servers.  If in doubt, say "N".
+	  These firmware drivers are used by Google servers,
+	  Chromebooks and other devices using coreboot firmware.
+	  If in doubt, say "N".
 
 if GOOGLE_FIRMWARE
 
@@ -21,7 +21,7 @@
 
 config GOOGLE_COREBOOT_TABLE
 	tristate "Coreboot Table Access"
-	depends on ACPI || OF
+	depends on HAS_IOMEM && (ACPI || OF)
 	help
 	  This option enables the coreboot_table module, which provides other
 	  firmware modules access to the coreboot table. The coreboot table
--- linux-ein-5.4.0.orig/drivers/firmware/google/coreboot_table.c
+++ linux-ein-5.4.0/drivers/firmware/google/coreboot_table.c
@@ -152,20 +152,22 @@
 	if (!ptr)
 		return -ENOMEM;
 
-	ret = bus_register(&coreboot_bus_type);
-	if (!ret) {
-		ret = coreboot_table_populate(dev, ptr);
-		if (ret)
-			bus_unregister(&coreboot_bus_type);
-	}
+	ret = coreboot_table_populate(dev, ptr);
+
 	memunmap(ptr);
 
 	return ret;
 }
 
+static int __cb_dev_unregister(struct device *dev, void *dummy)
+{
+	device_unregister(dev);
+	return 0;
+}
+
 static int coreboot_table_remove(struct platform_device *pdev)
 {
-	bus_unregister(&coreboot_bus_type);
+	bus_for_each_dev(&coreboot_bus_type, NULL, NULL, __cb_dev_unregister);
 	return 0;
 }
 
@@ -195,6 +197,32 @@
 		.of_match_table = of_match_ptr(coreboot_of_match),
 	},
 };
-module_platform_driver(coreboot_table_driver);
+
+static int __init coreboot_table_driver_init(void)
+{
+	int ret;
+
+	ret = bus_register(&coreboot_bus_type);
+	if (ret)
+		return ret;
+
+	ret = platform_driver_register(&coreboot_table_driver);
+	if (ret) {
+		bus_unregister(&coreboot_bus_type);
+		return ret;
+	}
+
+	return 0;
+}
+
+static void __exit coreboot_table_driver_exit(void)
+{
+	platform_driver_unregister(&coreboot_table_driver);
+	bus_unregister(&coreboot_bus_type);
+}
+
+module_init(coreboot_table_driver_init);
+module_exit(coreboot_table_driver_exit);
+
 MODULE_AUTHOR("Google, Inc.");
 MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/firmware/google/framebuffer-coreboot.c
+++ linux-ein-5.4.0/drivers/firmware/google/framebuffer-coreboot.c
@@ -43,9 +43,7 @@
 		    fb->green_mask_pos     == formats[i].green.offset &&
 		    fb->green_mask_size    == formats[i].green.length &&
 		    fb->blue_mask_pos      == formats[i].blue.offset &&
-		    fb->blue_mask_size     == formats[i].blue.length &&
-		    fb->reserved_mask_pos  == formats[i].transp.offset &&
-		    fb->reserved_mask_size == formats[i].transp.length)
+		    fb->blue_mask_size     == formats[i].blue.length)
 			pdata.format = formats[i].name;
 	}
 	if (!pdata.format)
--- linux-ein-5.4.0.orig/drivers/firmware/google/gsmi.c
+++ linux-ein-5.4.0/drivers/firmware/google/gsmi.c
@@ -359,9 +359,10 @@
 		memcpy(data, gsmi_dev.data_buf->start, *data_size);
 
 		/* All variables are have the following attributes */
-		*attr = EFI_VARIABLE_NON_VOLATILE |
-			EFI_VARIABLE_BOOTSERVICE_ACCESS |
-			EFI_VARIABLE_RUNTIME_ACCESS;
+		if (attr)
+			*attr = EFI_VARIABLE_NON_VOLATILE |
+				EFI_VARIABLE_BOOTSERVICE_ACCESS |
+				EFI_VARIABLE_RUNTIME_ACCESS;
 	}
 
 	spin_unlock_irqrestore(&gsmi_dev.lock, flags);
@@ -679,6 +680,15 @@
 static int gsmi_panic_callback(struct notifier_block *nb,
 			       unsigned long reason, void *arg)
 {
+
+	/*
+	 * Panic callbacks are executed with all other CPUs stopped,
+	 * so we must not attempt to spin waiting for gsmi_dev.lock
+	 * to be released.
+	 */
+	if (spin_is_locked(&gsmi_dev.lock))
+		return NOTIFY_DONE;
+
 	gsmi_shutdown_reason(GSMI_SHUTDOWN_PANIC);
 	return NOTIFY_DONE;
 }
--- linux-ein-5.4.0.orig/drivers/firmware/imx/Kconfig
+++ linux-ein-5.4.0/drivers/firmware/imx/Kconfig
@@ -13,6 +13,7 @@
 config IMX_SCU
 	bool "IMX SCU Protocol driver"
 	depends on IMX_MBOX
+	select SOC_BUS
 	help
 	  The System Controller Firmware (SCFW) is a low-level system function
 	  which runs on a dedicated Cortex-M core to provide power, clock, and
--- linux-ein-5.4.0.orig/drivers/firmware/imx/imx-dsp.c
+++ linux-ein-5.4.0/drivers/firmware/imx/imx-dsp.c
@@ -114,7 +114,7 @@
 
 	dev_info(dev, "NXP i.MX DSP IPC initialized\n");
 
-	return devm_of_platform_populate(dev);
+	return 0;
 out:
 	kfree(chan_name);
 	for (j = 0; j < i; j++) {
--- linux-ein-5.4.0.orig/drivers/firmware/imx/imx-scu.c
+++ linux-ein-5.4.0/drivers/firmware/imx/imx-scu.c
@@ -8,7 +8,6 @@
  */
 
 #include <linux/err.h>
-#include <linux/firmware/imx/types.h>
 #include <linux/firmware/imx/ipc.h>
 #include <linux/firmware/imx/sci.h>
 #include <linux/interrupt.h>
@@ -29,6 +28,7 @@
 	struct mbox_client cl;
 	struct mbox_chan *ch;
 	int idx;
+	struct completion tx_done;
 };
 
 struct imx_sc_ipc {
@@ -37,6 +37,7 @@
 	struct device *dev;
 	struct mutex lock;
 	struct completion done;
+	bool fast_ipc;
 
 	/* temporarily store the SCU msg */
 	u32 *msg;
@@ -100,12 +101,40 @@
 }
 EXPORT_SYMBOL(imx_scu_get_handle);
 
+/* Callback called when the word of a message is ack-ed, eg read by SCU */
+static void imx_scu_tx_done(struct mbox_client *cl, void *mssg, int r)
+{
+	struct imx_sc_chan *sc_chan = container_of(cl, struct imx_sc_chan, cl);
+
+	complete(&sc_chan->tx_done);
+}
+
 static void imx_scu_rx_callback(struct mbox_client *c, void *msg)
 {
 	struct imx_sc_chan *sc_chan = container_of(c, struct imx_sc_chan, cl);
 	struct imx_sc_ipc *sc_ipc = sc_chan->sc_ipc;
 	struct imx_sc_rpc_msg *hdr;
 	u32 *data = msg;
+	int i;
+
+	if (!sc_ipc->msg) {
+		dev_warn(sc_ipc->dev, "unexpected rx idx %d 0x%08x, ignore!\n",
+				sc_chan->idx, *data);
+		return;
+	}
+
+	if (sc_ipc->fast_ipc) {
+		hdr = msg;
+		sc_ipc->rx_size = hdr->size;
+		sc_ipc->msg[0] = *data++;
+
+		for (i = 1; i < sc_ipc->rx_size; i++)
+			sc_ipc->msg[i] = *data++;
+
+		complete(&sc_ipc->done);
+
+		return;
+	}
 
 	if (sc_chan->idx == 0) {
 		hdr = msg;
@@ -128,21 +157,38 @@
 
 static int imx_scu_ipc_write(struct imx_sc_ipc *sc_ipc, void *msg)
 {
-	struct imx_sc_rpc_msg *hdr = msg;
+	struct imx_sc_rpc_msg hdr = *(struct imx_sc_rpc_msg *)msg;
 	struct imx_sc_chan *sc_chan;
 	u32 *data = msg;
 	int ret;
+	int size;
 	int i;
 
 	/* Check size */
-	if (hdr->size > IMX_SC_RPC_MAX_MSG)
+	if (hdr.size > IMX_SC_RPC_MAX_MSG)
 		return -EINVAL;
 
-	dev_dbg(sc_ipc->dev, "RPC SVC %u FUNC %u SIZE %u\n", hdr->svc,
-		hdr->func, hdr->size);
+	dev_dbg(sc_ipc->dev, "RPC SVC %u FUNC %u SIZE %u\n", hdr.svc,
+		hdr.func, hdr.size);
 
-	for (i = 0; i < hdr->size; i++) {
+	size = sc_ipc->fast_ipc ? 1 : hdr.size;
+	for (i = 0; i < size; i++) {
 		sc_chan = &sc_ipc->chans[i % 4];
+
+		/*
+		 * SCU requires that all messages words are written
+		 * sequentially but linux MU driver implements multiple
+		 * independent channels for each register so ordering between
+		 * different channels must be ensured by SCU API interface.
+		 *
+		 * Wait for tx_done before every send to ensure that no
+		 * queueing happens at the mailbox channel level.
+		 */
+		if (!sc_ipc->fast_ipc) {
+			wait_for_completion(&sc_chan->tx_done);
+			reinit_completion(&sc_chan->tx_done);
+		}
+
 		ret = mbox_send_message(sc_chan->ch, &data[i]);
 		if (ret < 0)
 			return ret;
@@ -165,7 +211,8 @@
 	mutex_lock(&sc_ipc->lock);
 	reinit_completion(&sc_ipc->done);
 
-	sc_ipc->msg = msg;
+	if (have_resp)
+		sc_ipc->msg = msg;
 	sc_ipc->count = 0;
 	ret = imx_scu_ipc_write(sc_ipc, msg);
 	if (ret < 0) {
@@ -187,6 +234,7 @@
 	}
 
 out:
+	sc_ipc->msg = NULL;
 	mutex_unlock(&sc_ipc->lock);
 
 	dev_dbg(sc_ipc->dev, "RPC SVC done\n");
@@ -202,6 +250,8 @@
 	struct imx_sc_chan *sc_chan;
 	struct mbox_client *cl;
 	char *chan_name;
+	struct of_phandle_args args;
+	int num_channel;
 	int ret;
 	int i;
 
@@ -209,11 +259,20 @@
 	if (!sc_ipc)
 		return -ENOMEM;
 
-	for (i = 0; i < SCU_MU_CHAN_NUM; i++) {
-		if (i < 4)
+	ret = of_parse_phandle_with_args(pdev->dev.of_node, "mboxes",
+					 "#mbox-cells", 0, &args);
+	if (ret)
+		return ret;
+
+	sc_ipc->fast_ipc = of_device_is_compatible(args.np, "fsl,imx8-mu-scu");
+
+	num_channel = sc_ipc->fast_ipc ? 2 : SCU_MU_CHAN_NUM;
+	for (i = 0; i < num_channel; i++) {
+		if (i < num_channel / 2)
 			chan_name = kasprintf(GFP_KERNEL, "tx%d", i);
 		else
-			chan_name = kasprintf(GFP_KERNEL, "rx%d", i - 4);
+			chan_name = kasprintf(GFP_KERNEL, "rx%d",
+					      i - num_channel / 2);
 
 		if (!chan_name)
 			return -ENOMEM;
@@ -225,14 +284,22 @@
 		cl->knows_txdone = true;
 		cl->rx_callback = imx_scu_rx_callback;
 
+		if (!sc_ipc->fast_ipc) {
+			/* Initial tx_done completion as "done" */
+			cl->tx_done = imx_scu_tx_done;
+			init_completion(&sc_chan->tx_done);
+			complete(&sc_chan->tx_done);
+		}
+
 		sc_chan->sc_ipc = sc_ipc;
-		sc_chan->idx = i % 4;
+		sc_chan->idx = i % (num_channel / 2);
 		sc_chan->ch = mbox_request_channel_byname(cl, chan_name);
 		if (IS_ERR(sc_chan->ch)) {
 			ret = PTR_ERR(sc_chan->ch);
 			if (ret != -EPROBE_DEFER)
 				dev_err(dev, "Failed to request mbox chan %s ret %d\n",
 					chan_name, ret);
+			kfree(chan_name);
 			return ret;
 		}
 
--- linux-ein-5.4.0.orig/drivers/firmware/imx/misc.c
+++ linux-ein-5.4.0/drivers/firmware/imx/misc.c
@@ -16,7 +16,7 @@
 	u32 ctrl;
 	u32 val;
 	u16 resource;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_req_cpu_start {
 	struct imx_sc_rpc_msg hdr;
@@ -24,18 +24,18 @@
 	u32 address_lo;
 	u16 resource;
 	u8 enable;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_req_misc_get_ctrl {
 	struct imx_sc_rpc_msg hdr;
 	u32 ctrl;
 	u16 resource;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_resp_misc_get_ctrl {
 	struct imx_sc_rpc_msg hdr;
 	u32 val;
-} __packed;
+} __packed __aligned(4);
 
 /*
  * This function sets a miscellaneous control value.
--- linux-ein-5.4.0.orig/drivers/firmware/imx/scu-pd.c
+++ linux-ein-5.4.0/drivers/firmware/imx/scu-pd.c
@@ -61,7 +61,7 @@
 	struct imx_sc_rpc_msg hdr;
 	u16 resource;
 	u8 mode;
-} __packed;
+} __packed __aligned(4);
 
 #define IMX_SCU_PD_NAME_SIZE 20
 struct imx_sc_pm_domain {
--- linux-ein-5.4.0.orig/drivers/firmware/psci/psci.c
+++ linux-ein-5.4.0/drivers/firmware/psci/psci.c
@@ -57,6 +57,21 @@
 	.smccc_version = SMCCC_VERSION_1_0,
 };
 
+enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void)
+{
+	if (psci_ops.smccc_version < SMCCC_VERSION_1_1)
+		return SMCCC_CONDUIT_NONE;
+
+	switch (psci_ops.conduit) {
+	case PSCI_CONDUIT_SMC:
+		return SMCCC_CONDUIT_SMC;
+	case PSCI_CONDUIT_HVC:
+		return SMCCC_CONDUIT_HVC;
+	default:
+		return SMCCC_CONDUIT_NONE;
+	}
+}
+
 typedef unsigned long (psci_fn)(unsigned long, unsigned long,
 				unsigned long, unsigned long);
 static psci_fn *invoke_psci_fn;
--- linux-ein-5.4.0.orig/drivers/firmware/psci/psci_checker.c
+++ linux-ein-5.4.0/drivers/firmware/psci/psci_checker.c
@@ -155,10 +155,12 @@
 	if (!alloc_cpumask_var(&tmp, GFP_KERNEL))
 		return -ENOMEM;
 
-	cpu_groups = kcalloc(nb_available_cpus, sizeof(cpu_groups),
+	cpu_groups = kcalloc(nb_available_cpus, sizeof(*cpu_groups),
 			     GFP_KERNEL);
-	if (!cpu_groups)
+	if (!cpu_groups) {
+		free_cpumask_var(tmp);
 		return -ENOMEM;
+	}
 
 	cpumask_copy(tmp, cpu_online_mask);
 
@@ -167,6 +169,7 @@
 			topology_core_cpumask(cpumask_any(tmp));
 
 		if (!alloc_cpumask_var(&cpu_groups[num_groups], GFP_KERNEL)) {
+			free_cpumask_var(tmp);
 			free_cpu_groups(num_groups, &cpu_groups);
 			return -ENOMEM;
 		}
--- linux-ein-5.4.0.orig/drivers/firmware/qcom_scm-64.c
+++ linux-ein-5.4.0/drivers/firmware/qcom_scm-64.c
@@ -150,7 +150,7 @@
 		kfree(args_virt);
 	}
 
-	if (res->a0 < 0)
+	if ((long)res->a0 < 0)
 		return qcom_scm_remap_error(res->a0);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/firmware/qcom_scm.c
+++ linux-ein-5.4.0/drivers/firmware/qcom_scm.c
@@ -9,7 +9,6 @@
 #include <linux/init.h>
 #include <linux/cpumask.h>
 #include <linux/export.h>
-#include <linux/dma-direct.h>
 #include <linux/dma-mapping.h>
 #include <linux/module.h>
 #include <linux/types.h>
@@ -441,8 +440,7 @@
 	struct qcom_scm_mem_map_info *mem_to_map;
 	phys_addr_t mem_to_map_phys;
 	phys_addr_t dest_phys;
-	phys_addr_t ptr_phys;
-	dma_addr_t ptr_dma;
+	dma_addr_t ptr_phys;
 	size_t mem_to_map_sz;
 	size_t dest_sz;
 	size_t src_sz;
@@ -459,10 +457,9 @@
 	ptr_sz = ALIGN(src_sz, SZ_64) + ALIGN(mem_to_map_sz, SZ_64) +
 			ALIGN(dest_sz, SZ_64);
 
-	ptr = dma_alloc_coherent(__scm->dev, ptr_sz, &ptr_dma, GFP_KERNEL);
+	ptr = dma_alloc_coherent(__scm->dev, ptr_sz, &ptr_phys, GFP_KERNEL);
 	if (!ptr)
 		return -ENOMEM;
-	ptr_phys = dma_to_phys(__scm->dev, ptr_dma);
 
 	/* Fill source vmid detail */
 	src = ptr;
@@ -490,7 +487,7 @@
 
 	ret = __qcom_scm_assign_mem(__scm->dev, mem_to_map_phys, mem_to_map_sz,
 				    ptr_phys, src_sz, dest_phys, dest_sz);
-	dma_free_coherent(__scm->dev, ptr_sz, ptr, ptr_dma);
+	dma_free_coherent(__scm->dev, ptr_sz, ptr, ptr_phys);
 	if (ret) {
 		dev_err(__scm->dev,
 			"Assign memory protection call failed %d\n", ret);
@@ -588,8 +585,7 @@
 static void qcom_scm_shutdown(struct platform_device *pdev)
 {
 	/* Clean shutdown, disable download mode to allow normal restart */
-	if (download_mode)
-		qcom_scm_set_download_mode(false);
+	qcom_scm_set_download_mode(false);
 }
 
 static const struct of_device_id qcom_scm_dt_match[] = {
--- linux-ein-5.4.0.orig/drivers/firmware/qemu_fw_cfg.c
+++ linux-ein-5.4.0/drivers/firmware/qemu_fw_cfg.c
@@ -296,15 +296,13 @@
 	return 0;
 }
 
-static ssize_t fw_cfg_showrev(struct kobject *k, struct attribute *a, char *buf)
+static ssize_t fw_cfg_showrev(struct kobject *k, struct kobj_attribute *a,
+			      char *buf)
 {
 	return sprintf(buf, "%u\n", fw_cfg_rev);
 }
 
-static const struct {
-	struct attribute attr;
-	ssize_t (*show)(struct kobject *k, struct attribute *a, char *buf);
-} fw_cfg_rev_attr = {
+static const struct kobj_attribute fw_cfg_rev_attr = {
 	.attr = { .name = "rev", .mode = S_IRUSR },
 	.show = fw_cfg_showrev,
 };
@@ -387,9 +385,7 @@
 	struct fw_cfg_sysfs_entry *entry, *next;
 
 	list_for_each_entry_safe(entry, next, &fw_cfg_entry_cache, list) {
-		/* will end up invoking fw_cfg_sysfs_cache_delist()
-		 * via each object's release() method (i.e. destructor)
-		 */
+		fw_cfg_sysfs_cache_delist(entry);
 		kobject_put(&entry->kobj);
 	}
 }
@@ -447,7 +443,6 @@
 {
 	struct fw_cfg_sysfs_entry *entry = to_entry(kobj);
 
-	fw_cfg_sysfs_cache_delist(entry);
 	kfree(entry);
 }
 
@@ -600,18 +595,18 @@
 	/* set file entry information */
 	entry->size = be32_to_cpu(f->size);
 	entry->select = be16_to_cpu(f->select);
-	memcpy(entry->name, f->name, FW_CFG_MAX_FILE_PATH);
+	strscpy(entry->name, f->name, FW_CFG_MAX_FILE_PATH);
 
 	/* register entry under "/sys/firmware/qemu_fw_cfg/by_key/" */
 	err = kobject_init_and_add(&entry->kobj, &fw_cfg_sysfs_entry_ktype,
 				   fw_cfg_sel_ko, "%d", entry->select);
 	if (err)
-		goto err_register;
+		goto err_put_entry;
 
 	/* add raw binary content access */
 	err = sysfs_create_bin_file(&entry->kobj, &fw_cfg_sysfs_attr_raw);
 	if (err)
-		goto err_add_raw;
+		goto err_del_entry;
 
 	/* try adding "/sys/firmware/qemu_fw_cfg/by_name/" symlink */
 	fw_cfg_build_symlink(fw_cfg_fname_kset, &entry->kobj, entry->name);
@@ -620,10 +615,10 @@
 	fw_cfg_sysfs_cache_enlist(entry);
 	return 0;
 
-err_add_raw:
+err_del_entry:
 	kobject_del(&entry->kobj);
-err_register:
-	kfree(entry);
+err_put_entry:
+	kobject_put(&entry->kobj);
 	return err;
 }
 
--- linux-ein-5.4.0.orig/drivers/firmware/raspberrypi.c
+++ linux-ein-5.4.0/drivers/firmware/raspberrypi.c
@@ -7,6 +7,7 @@
  */
 
 #include <linux/dma-mapping.h>
+#include <linux/kref.h>
 #include <linux/mailbox_client.h>
 #include <linux/module.h>
 #include <linux/of_platform.h>
@@ -27,6 +28,8 @@
 	struct mbox_chan *chan; /* The property channel. */
 	struct completion c;
 	u32 enabled;
+
+	struct kref consumers;
 };
 
 static DEFINE_MUTEX(transaction_lock);
@@ -214,12 +217,38 @@
 						-1, NULL, 0);
 }
 
+static void rpi_firmware_delete(struct kref *kref)
+{
+	struct rpi_firmware *fw = container_of(kref, struct rpi_firmware,
+					       consumers);
+
+	mbox_free_channel(fw->chan);
+	kfree(fw);
+}
+
+void rpi_firmware_put(struct rpi_firmware *fw)
+{
+	kref_put(&fw->consumers, rpi_firmware_delete);
+}
+EXPORT_SYMBOL_GPL(rpi_firmware_put);
+
+static void devm_rpi_firmware_put(void *data)
+{
+	struct rpi_firmware *fw = data;
+
+	rpi_firmware_put(fw);
+}
+
 static int rpi_firmware_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct rpi_firmware *fw;
 
-	fw = devm_kzalloc(dev, sizeof(*fw), GFP_KERNEL);
+	/*
+	 * Memory will be freed by rpi_firmware_delete() once all users have
+	 * released their firmware handles. Don't use devm_kzalloc() here.
+	 */
+	fw = kzalloc(sizeof(*fw), GFP_KERNEL);
 	if (!fw)
 		return -ENOMEM;
 
@@ -232,10 +261,12 @@
 		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;
 	}
 
 	init_completion(&fw->c);
+	kref_init(&fw->consumers);
 
 	platform_set_drvdata(pdev, fw);
 
@@ -264,7 +295,8 @@
 	rpi_hwmon = NULL;
 	platform_device_unregister(rpi_clk);
 	rpi_clk = NULL;
-	mbox_free_channel(fw->chan);
+
+	rpi_firmware_put(fw);
 
 	return 0;
 }
@@ -273,19 +305,51 @@
  * rpi_firmware_get - Get pointer to rpi_firmware structure.
  * @firmware_node:    Pointer to the firmware Device Tree node.
  *
+ * The reference to rpi_firmware has to be released with rpi_firmware_put().
+ *
  * Returns NULL is the firmware device is not ready.
  */
 struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
 {
 	struct platform_device *pdev = of_find_device_by_node(firmware_node);
+	struct rpi_firmware *fw;
 
 	if (!pdev)
 		return NULL;
 
-	return platform_get_drvdata(pdev);
+	fw = platform_get_drvdata(pdev);
+	if (!fw)
+		return NULL;
+
+	if (!kref_get_unless_zero(&fw->consumers))
+		return NULL;
+
+	return fw;
 }
 EXPORT_SYMBOL_GPL(rpi_firmware_get);
 
+/**
+ * devm_rpi_firmware_get - Get pointer to rpi_firmware structure.
+ * @firmware_node:    Pointer to the firmware Device Tree node.
+ *
+ * Returns NULL is the firmware device is not ready.
+ */
+struct rpi_firmware *devm_rpi_firmware_get(struct device *dev,
+					   struct device_node *firmware_node)
+{
+	struct rpi_firmware *fw;
+
+	fw = rpi_firmware_get(firmware_node);
+	if (!fw)
+		return NULL;
+
+	if (devm_add_action_or_reset(dev, devm_rpi_firmware_put, fw))
+		return NULL;
+
+	return fw;
+}
+EXPORT_SYMBOL_GPL(devm_rpi_firmware_get);
+
 static const struct of_device_id rpi_firmware_of_match[] = {
 	{ .compatible = "raspberrypi,bcm2835-firmware", },
 	{},
--- linux-ein-5.4.0.orig/drivers/firmware/scpi_pm_domain.c
+++ linux-ein-5.4.0/drivers/firmware/scpi_pm_domain.c
@@ -16,7 +16,6 @@
 	struct generic_pm_domain genpd;
 	struct scpi_ops *ops;
 	u32 domain;
-	char name[30];
 };
 
 /*
@@ -110,8 +109,13 @@
 
 		scpi_pd->domain = i;
 		scpi_pd->ops = scpi_ops;
-		sprintf(scpi_pd->name, "%pOFn.%d", np, i);
-		scpi_pd->genpd.name = scpi_pd->name;
+		scpi_pd->genpd.name = devm_kasprintf(dev, GFP_KERNEL,
+						     "%pOFn.%d", np, i);
+		if (!scpi_pd->genpd.name) {
+			dev_err(dev, "Failed to allocate genpd name:%pOFn.%d\n",
+				np, i);
+			continue;
+		}
 		scpi_pd->genpd.power_off = scpi_pd_power_off;
 		scpi_pd->genpd.power_on = scpi_pd_power_on;
 
--- linux-ein-5.4.0.orig/drivers/firmware/stratix10-svc.c
+++ linux-ein-5.4.0/drivers/firmware/stratix10-svc.c
@@ -615,8 +615,8 @@
 	end = rounddown(sh_memory->addr + sh_memory->size, PAGE_SIZE);
 	paddr = begin;
 	size = end - begin;
-	va = memremap(paddr, size, MEMREMAP_WC);
-	if (!va) {
+	va = devm_memremap(dev, paddr, size, MEMREMAP_WC);
+	if (IS_ERR(va)) {
 		dev_err(dev, "fail to remap shared memory\n");
 		return ERR_PTR(-EINVAL);
 	}
@@ -934,17 +934,17 @@
 void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr)
 {
 	struct stratix10_svc_data_mem *pmem;
-	size_t size = 0;
 
 	list_for_each_entry(pmem, &svc_data_mem, node)
 		if (pmem->vaddr == kaddr) {
-			size = pmem->size;
-			break;
+			gen_pool_free(chan->ctrl->genpool,
+				       (unsigned long)kaddr, pmem->size);
+			pmem->vaddr = NULL;
+			list_del(&pmem->node);
+			return;
 		}
 
-	gen_pool_free(chan->ctrl->genpool, (unsigned long)kaddr, size);
-	pmem->vaddr = NULL;
-	list_del(&pmem->node);
+	list_del(&svc_data_mem);
 }
 EXPORT_SYMBOL_GPL(stratix10_svc_free_memory);
 
@@ -981,8 +981,8 @@
 		return ret;
 
 	genpool = svc_create_memory_pool(pdev, sh_memory);
-	if (!genpool)
-		return -ENOMEM;
+	if (IS_ERR(genpool))
+		return PTR_ERR(genpool);
 
 	/* allocate service controller and supporting channel */
 	controller = devm_kzalloc(dev, sizeof(*controller), GFP_KERNEL);
@@ -1026,24 +1026,32 @@
 
 	/* add svc client device(s) */
 	svc = devm_kzalloc(dev, sizeof(*svc), GFP_KERNEL);
-	if (!svc)
-		return -ENOMEM;
+	if (!svc) {
+		ret = -ENOMEM;
+		goto err_free_kfifo;
+	}
 
 	svc->stratix10_svc_rsu = platform_device_alloc(STRATIX10_RSU, 0);
 	if (!svc->stratix10_svc_rsu) {
 		dev_err(dev, "failed to allocate %s device\n", STRATIX10_RSU);
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto err_free_kfifo;
 	}
 
 	ret = platform_device_add(svc->stratix10_svc_rsu);
-	if (ret) {
-		platform_device_put(svc->stratix10_svc_rsu);
-		return ret;
-	}
+	if (ret)
+		goto err_put_device;
+
 	dev_set_drvdata(dev, svc);
 
 	pr_info("Intel Service Layer Driver Initialized\n");
 
+	return 0;
+
+err_put_device:
+	platform_device_put(svc->stratix10_svc_rsu);
+err_free_kfifo:
+	kfifo_free(&controller->svc_fifo);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/firmware/tegra/Makefile
+++ linux-ein-5.4.0/drivers/firmware/tegra/Makefile
@@ -3,6 +3,7 @@
 tegra-bpmp-$(CONFIG_ARCH_TEGRA_210_SOC)	+= bpmp-tegra210.o
 tegra-bpmp-$(CONFIG_ARCH_TEGRA_186_SOC)	+= bpmp-tegra186.o
 tegra-bpmp-$(CONFIG_ARCH_TEGRA_194_SOC)	+= bpmp-tegra186.o
+tegra-bpmp-$(CONFIG_ARCH_TEGRA_234_SOC)	+= bpmp-tegra186.o
 tegra-bpmp-$(CONFIG_DEBUG_FS)	+= bpmp-debugfs.o
 obj-$(CONFIG_TEGRA_BPMP)	+= tegra-bpmp.o
 obj-$(CONFIG_TEGRA_IVC)		+= ivc.o
--- linux-ein-5.4.0.orig/drivers/firmware/tegra/bpmp-private.h
+++ linux-ein-5.4.0/drivers/firmware/tegra/bpmp-private.h
@@ -24,7 +24,8 @@
 };
 
 #if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || \
-    IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
+    IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
+    IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC)
 extern const struct tegra_bpmp_ops tegra186_bpmp_ops;
 #endif
 #if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
--- linux-ein-5.4.0.orig/drivers/firmware/tegra/bpmp-tegra210.c
+++ linux-ein-5.4.0/drivers/firmware/tegra/bpmp-tegra210.c
@@ -210,7 +210,7 @@
 	priv->tx_irq_data = irq_get_irq_data(err);
 	if (!priv->tx_irq_data) {
 		dev_err(&pdev->dev, "failed to get IRQ data for TX IRQ\n");
-		return err;
+		return -ENOENT;
 	}
 
 	err = platform_get_irq_byname(pdev, "rx");
--- linux-ein-5.4.0.orig/drivers/firmware/tegra/bpmp.c
+++ linux-ein-5.4.0/drivers/firmware/tegra/bpmp.c
@@ -808,7 +808,8 @@
 };
 
 #if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || \
-    IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
+    IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
+    IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC)
 static const struct tegra_bpmp_soc tegra186_soc = {
 	.channels = {
 		.cpu_tx = {
--- linux-ein-5.4.0.orig/drivers/firmware/turris-mox-rwtm.c
+++ linux-ein-5.4.0/drivers/firmware/turris-mox-rwtm.c
@@ -134,11 +134,14 @@
 
 static int mox_get_status(enum mbox_cmd cmd, u32 retval)
 {
-	if (MBOX_STS_CMD(retval) != cmd ||
-	    MBOX_STS_ERROR(retval) != MBOX_STS_SUCCESS)
+	if (MBOX_STS_CMD(retval) != cmd)
 		return -EIO;
 	else if (MBOX_STS_ERROR(retval) == MBOX_STS_FAIL)
 		return -(int)MBOX_STS_VALUE(retval);
+	else if (MBOX_STS_ERROR(retval) == MBOX_STS_BADCMD)
+		return -ENOSYS;
+	else if (MBOX_STS_ERROR(retval) != MBOX_STS_SUCCESS)
+		return -EIO;
 	else
 		return MBOX_STS_VALUE(retval);
 }
@@ -188,11 +191,14 @@
 		return ret;
 
 	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
-	if (ret < 0 && ret != -ENODATA) {
-		return ret;
-	} else if (ret == -ENODATA) {
+	if (ret == -ENODATA) {
 		dev_warn(rwtm->dev,
 			 "Board does not have manufacturing information burned!\n");
+	} else if (ret == -ENOSYS) {
+		dev_notice(rwtm->dev,
+			   "Firmware does not support the BOARD_INFO command\n");
+	} else if (ret < 0) {
+		return ret;
 	} else {
 		rwtm->serial_number = reply->status[1];
 		rwtm->serial_number <<= 32;
@@ -221,10 +227,13 @@
 		return ret;
 
 	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
-	if (ret < 0 && ret != -ENODATA) {
-		return ret;
-	} else if (ret == -ENODATA) {
+	if (ret == -ENODATA) {
 		dev_warn(rwtm->dev, "Board has no public key burned!\n");
+	} else if (ret == -ENOSYS) {
+		dev_notice(rwtm->dev,
+			   "Firmware does not support the ECDSA_PUB_KEY command\n");
+	} else if (ret < 0) {
+		return ret;
 	} else {
 		u32 *s = reply->status;
 
@@ -238,6 +247,27 @@
 	return 0;
 }
 
+static int check_get_random_support(struct mox_rwtm *rwtm)
+{
+	struct armada_37xx_rwtm_tx_msg msg;
+	int ret;
+
+	msg.command = MBOX_CMD_GET_RANDOM;
+	msg.args[0] = 1;
+	msg.args[1] = rwtm->buf_phys;
+	msg.args[2] = 4;
+
+	ret = mbox_send_message(rwtm->mbox, &msg);
+	if (ret < 0)
+		return ret;
+
+	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
+	if (ret < 0)
+		return ret;
+
+	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
+}
+
 static int mox_hwrng_read(struct hwrng *rng, void *data, size_t max, bool wait)
 {
 	struct mox_rwtm *rwtm = (struct mox_rwtm *) rng->priv;
@@ -329,6 +359,13 @@
 	if (ret < 0)
 		dev_warn(dev, "Cannot read board information: %i\n", ret);
 
+	ret = check_get_random_support(rwtm);
+	if (ret < 0) {
+		dev_notice(dev,
+			   "Firmware does not support the GET_RANDOM command\n");
+		goto free_channel;
+	}
+
 	rwtm->hwrng.name = DRIVER_NAME "_hwrng";
 	rwtm->hwrng.read = mox_hwrng_read;
 	rwtm->hwrng.priv = (unsigned long) rwtm;
@@ -364,6 +401,7 @@
 
 static const struct of_device_id turris_mox_rwtm_match[] = {
 	{ .compatible = "cznic,turris-mox-rwtm", },
+	{ .compatible = "marvell,armada-3700-rwtm-firmware", },
 	{ },
 };
 
--- linux-ein-5.4.0.orig/drivers/fpga/altera-pr-ip-core.c
+++ linux-ein-5.4.0/drivers/fpga/altera-pr-ip-core.c
@@ -108,7 +108,7 @@
 	u32 *buffer_32 = (u32 *)buf;
 	size_t i = 0;
 
-	if (count <= 0)
+	if (!count)
 		return -EINVAL;
 
 	/* Write out the complete 32-bit chunks */
--- linux-ein-5.4.0.orig/drivers/fpga/dfl-afu-dma-region.c
+++ linux-ein-5.4.0/drivers/fpga/dfl-afu-dma-region.c
@@ -61,10 +61,10 @@
 				     region->pages);
 	if (pinned < 0) {
 		ret = pinned;
-		goto put_pages;
+		goto free_pages;
 	} else if (pinned != npages) {
 		ret = -EFAULT;
-		goto free_pages;
+		goto put_pages;
 	}
 
 	dev_dbg(dev, "%d pages pinned\n", pinned);
--- linux-ein-5.4.0.orig/drivers/fpga/dfl-afu-main.c
+++ linux-ein-5.4.0/drivers/fpga/dfl-afu-main.c
@@ -83,7 +83,8 @@
 	 * on this port and minimum soft reset pulse width has elapsed.
 	 * Driver polls port_soft_reset_ack to determine if reset done by HW.
 	 */
-	if (readq_poll_timeout(base + PORT_HDR_CTRL, v, v & PORT_CTRL_SFTRST,
+	if (readq_poll_timeout(base + PORT_HDR_CTRL, v,
+			       v & PORT_CTRL_SFTRST_ACK,
 			       RST_POLL_INVL, RST_POLL_TIMEOUT)) {
 		dev_err(&pdev->dev, "timeout, fail to reset device\n");
 		return -ETIMEDOUT;
--- linux-ein-5.4.0.orig/drivers/fpga/dfl-pci.c
+++ linux-ein-5.4.0/drivers/fpga/dfl-pci.c
@@ -227,7 +227,6 @@
 {
 	struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
 	struct dfl_fpga_cdev *cdev = drvdata->cdev;
-	int ret = 0;
 
 	if (!num_vfs) {
 		/*
@@ -239,6 +238,8 @@
 		dfl_fpga_cdev_config_ports_pf(cdev);
 
 	} else {
+		int ret;
+
 		/*
 		 * before enable SRIOV, put released ports into VF access mode
 		 * first of all.
@@ -248,11 +249,13 @@
 			return ret;
 
 		ret = pci_enable_sriov(pcidev, num_vfs);
-		if (ret)
+		if (ret) {
 			dfl_fpga_cdev_config_ports_pf(cdev);
+			return ret;
+		}
 	}
 
-	return ret;
+	return num_vfs;
 }
 
 static void cci_pci_remove(struct pci_dev *pcidev)
--- linux-ein-5.4.0.orig/drivers/fpga/fpga-bridge.c
+++ linux-ein-5.4.0/drivers/fpga/fpga-bridge.c
@@ -115,7 +115,7 @@
 /**
  * fpga_bridge_get - get an exclusive reference to a fpga bridge
  * @dev:	parent device that fpga bridge was registered with
- * @info:	fpga manager info
+ * @info:	fpga image specific information
  *
  * Given a device, get an exclusive reference to a fpga bridge.
  *
--- linux-ein-5.4.0.orig/drivers/fpga/machxo2-spi.c
+++ linux-ein-5.4.0/drivers/fpga/machxo2-spi.c
@@ -223,8 +223,10 @@
 		goto fail;
 
 	get_status(spi, &status);
-	if (test_bit(FAIL, &status))
+	if (test_bit(FAIL, &status)) {
+		ret = -EINVAL;
 		goto fail;
+	}
 	dump_status_reg(&status);
 
 	spi_message_init(&msg);
@@ -310,6 +312,7 @@
 	dump_status_reg(&status);
 	if (!test_bit(DONE, &status)) {
 		machxo2_cleanup(mgr);
+		ret = -EINVAL;
 		goto fail;
 	}
 
@@ -331,6 +334,7 @@
 			break;
 		if (++refreshloop == MACHXO2_MAX_REFRESH_LOOP) {
 			machxo2_cleanup(mgr);
+			ret = -EINVAL;
 			goto fail;
 		}
 	} while (1);
--- linux-ein-5.4.0.orig/drivers/fpga/stratix10-soc.c
+++ linux-ein-5.4.0/drivers/fpga/stratix10-soc.c
@@ -218,9 +218,9 @@
 	/* Allocate buffers from the service layer's pool. */
 	for (i = 0; i < NUM_SVC_BUFS; i++) {
 		kbuf = stratix10_svc_allocate_memory(priv->chan, SVC_BUF_SIZE);
-		if (!kbuf) {
+		if (IS_ERR(kbuf)) {
 			s10_free_buffers(mgr);
-			ret = -ENOMEM;
+			ret = PTR_ERR(kbuf);
 			goto init_done;
 		}
 
@@ -476,6 +476,7 @@
 	struct s10_priv *priv = mgr->priv;
 
 	fpga_mgr_unregister(mgr);
+	fpga_mgr_free(mgr);
 	stratix10_svc_free_channel(priv->chan);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/fsi/fsi-core.c
+++ linux-ein-5.4.0/drivers/fsi/fsi-core.c
@@ -544,6 +544,31 @@
 	return 0;
 }
 
+static unsigned long aligned_access_size(size_t offset, size_t count)
+{
+	unsigned long offset_unit, count_unit;
+
+	/* Criteria:
+	 *
+	 * 1. Access size must be less than or equal to the maximum access
+	 *    width or the highest power-of-two factor of offset
+	 * 2. Access size must be less than or equal to the amount specified by
+	 *    count
+	 *
+	 * The access width is optimal if we can calculate 1 to be strictly
+	 * equal while still satisfying 2.
+	 */
+
+	/* Find 1 by the bottom bit of offset (with a 4 byte access cap) */
+	offset_unit = BIT(__builtin_ctzl(offset | 4));
+
+	/* Find 2 by the top bit of count */
+	count_unit = BIT(8 * sizeof(unsigned long) - 1 - __builtin_clzl(count));
+
+	/* Constrain the maximum access width to the minimum of both criteria */
+	return BIT(__builtin_ctzl(offset_unit | count_unit));
+}
+
 static ssize_t fsi_slave_sysfs_raw_read(struct file *file,
 		struct kobject *kobj, struct bin_attribute *attr, char *buf,
 		loff_t off, size_t count)
@@ -559,8 +584,7 @@
 		return -EINVAL;
 
 	for (total_len = 0; total_len < count; total_len += read_len) {
-		read_len = min_t(size_t, count, 4);
-		read_len -= off & 0x3;
+		read_len = aligned_access_size(off, count - total_len);
 
 		rc = fsi_slave_read(slave, off, buf + total_len, read_len);
 		if (rc)
@@ -587,8 +611,7 @@
 		return -EINVAL;
 
 	for (total_len = 0; total_len < count; total_len += write_len) {
-		write_len = min_t(size_t, count, 4);
-		write_len -= off & 0x3;
+		write_len = aligned_access_size(off, count - total_len);
 
 		rc = fsi_slave_write(slave, off, buf + total_len, write_len);
 		if (rc)
@@ -695,7 +718,7 @@
 	rc = count;
  fail:
 	*offset = off;
-	return count;
+	return rc;
 }
 
 static ssize_t cfam_write(struct file *filep, const char __user *buf,
@@ -732,7 +755,7 @@
 	rc = count;
  fail:
 	*offset = off;
-	return count;
+	return rc;
 }
 
 static loff_t cfam_llseek(struct file *file, loff_t offset, int whence)
@@ -1248,6 +1271,9 @@
 
 	mutex_init(&master->scan_lock);
 	master->idx = ida_simple_get(&master_ida, 0, INT_MAX, GFP_KERNEL);
+	if (master->idx < 0)
+		return master->idx;
+
 	dev_set_name(&master->dev, "fsi%d", master->idx);
 
 	rc = device_register(&master->dev);
--- linux-ein-5.4.0.orig/drivers/fsi/fsi-master-ast-cf.c
+++ linux-ein-5.4.0/drivers/fsi/fsi-master-ast-cf.c
@@ -1438,3 +1438,4 @@
 
 module_platform_driver(fsi_master_acf);
 MODULE_LICENSE("GPL");
+MODULE_FIRMWARE(FW_FILE_NAME);
--- linux-ein-5.4.0.orig/drivers/fsi/fsi-occ.c
+++ linux-ein-5.4.0/drivers/fsi/fsi-occ.c
@@ -445,6 +445,7 @@
 			goto done;
 
 		if (resp->return_status == OCC_RESP_CMD_IN_PRG ||
+		    resp->return_status == OCC_RESP_CRIT_INIT ||
 		    resp->seq_no != seq_no) {
 			rc = -ETIMEDOUT;
 
--- linux-ein-5.4.0.orig/drivers/fsi/fsi-sbefifo.c
+++ linux-ein-5.4.0/drivers/fsi/fsi-sbefifo.c
@@ -325,7 +325,8 @@
 static int sbefifo_request_reset(struct sbefifo *sbefifo)
 {
 	struct device *dev = &sbefifo->fsi_dev->dev;
-	u32 status, timeout;
+	unsigned long end_time;
+	u32 status;
 	int rc;
 
 	dev_dbg(dev, "Requesting FIFO reset\n");
@@ -341,7 +342,8 @@
 	}
 
 	/* Wait for it to complete */
-	for (timeout = 0; timeout < SBEFIFO_RESET_TIMEOUT; timeout++) {
+	end_time = jiffies + msecs_to_jiffies(SBEFIFO_RESET_TIMEOUT);
+	while (!time_after(jiffies, end_time)) {
 		rc = sbefifo_regr(sbefifo, SBEFIFO_UP | SBEFIFO_STS, &status);
 		if (rc) {
 			dev_err(dev, "Failed to read UP fifo status during reset"
@@ -355,7 +357,7 @@
 			return 0;
 		}
 
-		msleep(1);
+		cond_resched();
 	}
 	dev_err(dev, "FIFO reset timed out\n");
 
@@ -400,7 +402,7 @@
 	/* The FIFO already contains a reset request from the SBE ? */
 	if (down_status & SBEFIFO_STS_RESET_REQ) {
 		dev_info(dev, "Cleanup: FIFO reset request set, resetting\n");
-		rc = sbefifo_regw(sbefifo, SBEFIFO_UP, SBEFIFO_PERFORM_RESET);
+		rc = sbefifo_regw(sbefifo, SBEFIFO_DOWN, SBEFIFO_PERFORM_RESET);
 		if (rc) {
 			sbefifo->broken = true;
 			dev_err(dev, "Cleanup: Reset reg write failed, rc=%d\n", rc);
@@ -638,7 +640,7 @@
 	}
         ffdc_iov.iov_base = ffdc;
 	ffdc_iov.iov_len = SBEFIFO_MAX_FFDC_SIZE;
-        iov_iter_kvec(&ffdc_iter, WRITE, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
+        iov_iter_kvec(&ffdc_iter, READ, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
 	cmd[0] = cpu_to_be32(2);
 	cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC);
 	rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter);
@@ -735,7 +737,7 @@
 	rbytes = (*resp_len) * sizeof(__be32);
 	resp_iov.iov_base = response;
 	resp_iov.iov_len = rbytes;
-        iov_iter_kvec(&resp_iter, WRITE, &resp_iov, 1, rbytes);
+        iov_iter_kvec(&resp_iter, READ, &resp_iov, 1, rbytes);
 
 	/* Perform the command */
 	mutex_lock(&sbefifo->lock);
@@ -815,7 +817,7 @@
 	/* Prepare iov iterator */
 	resp_iov.iov_base = buf;
 	resp_iov.iov_len = len;
-	iov_iter_init(&resp_iter, WRITE, &resp_iov, 1, len);
+	iov_iter_init(&resp_iter, READ, &resp_iov, 1, len);
 
 	/* Perform the command */
 	mutex_lock(&sbefifo->lock);
--- linux-ein-5.4.0.orig/drivers/fsi/fsi-scom.c
+++ linux-ein-5.4.0/drivers/fsi/fsi-scom.c
@@ -38,9 +38,10 @@
 #define SCOM_STATUS_PIB_RESP_MASK	0x00007000
 #define SCOM_STATUS_PIB_RESP_SHIFT	12
 
-#define SCOM_STATUS_ANY_ERR		(SCOM_STATUS_PROTECTION | \
-					 SCOM_STATUS_PARITY |	  \
-					 SCOM_STATUS_PIB_ABORT | \
+#define SCOM_STATUS_FSI2PIB_ERROR	(SCOM_STATUS_PROTECTION |	\
+					 SCOM_STATUS_PARITY |		\
+					 SCOM_STATUS_PIB_ABORT)
+#define SCOM_STATUS_ANY_ERR		(SCOM_STATUS_FSI2PIB_ERROR |	\
 					 SCOM_STATUS_PIB_RESP_MASK)
 /* SCOM address encodings */
 #define XSCOM_ADDR_IND_FLAG		BIT_ULL(63)
@@ -240,13 +241,14 @@
 {
 	uint32_t dummy = -1;
 
-	if (status & SCOM_STATUS_PROTECTION)
-		return -EPERM;
-	if (status & SCOM_STATUS_PARITY) {
+	if (status & SCOM_STATUS_FSI2PIB_ERROR)
 		fsi_device_write(scom->fsi_dev, SCOM_FSI2PIB_RESET_REG, &dummy,
 				 sizeof(uint32_t));
+
+	if (status & SCOM_STATUS_PROTECTION)
+		return -EPERM;
+	if (status & SCOM_STATUS_PARITY)
 		return -EIO;
-	}
 	/* Return -EBUSY on PIB abort to force a retry */
 	if (status & SCOM_STATUS_PIB_ABORT)
 		return -EBUSY;
--- linux-ein-5.4.0.orig/drivers/gnss/sirf.c
+++ linux-ein-5.4.0/drivers/gnss/sirf.c
@@ -439,14 +439,18 @@
 
 	data->on_off = devm_gpiod_get_optional(dev, "sirf,onoff",
 			GPIOD_OUT_LOW);
-	if (IS_ERR(data->on_off))
+	if (IS_ERR(data->on_off)) {
+		ret = PTR_ERR(data->on_off);
 		goto err_put_device;
+	}
 
 	if (data->on_off) {
 		data->wakeup = devm_gpiod_get_optional(dev, "sirf,wakeup",
 				GPIOD_IN);
-		if (IS_ERR(data->wakeup))
+		if (IS_ERR(data->wakeup)) {
+			ret = PTR_ERR(data->wakeup);
 			goto err_put_device;
+		}
 
 		ret = regulator_enable(data->vcc);
 		if (ret)
--- linux-ein-5.4.0.orig/drivers/gpio/Kconfig
+++ linux-ein-5.4.0/drivers/gpio/Kconfig
@@ -378,7 +378,7 @@
 	select REGMAP_MMIO
 
 config GPIO_MXC
-	def_bool y
+	tristate "i.MX GPIO support"
 	depends on ARCH_MXC
 	select GPIO_GENERIC
 	select GENERIC_IRQ_CHIP
@@ -546,7 +546,6 @@
 	tristate "Cavium ThunderX/OCTEON-TX GPIO"
 	depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
 	depends on PCI_MSI
-	select GPIOLIB_IRQCHIP
 	select IRQ_DOMAIN_HIERARCHY
 	select IRQ_FASTEOI_HIERARCHY_HANDLERS
 	help
@@ -1121,6 +1120,7 @@
 config GPIO_MAX77620
 	tristate "GPIO support for PMIC MAX77620 and MAX20024"
 	depends on MFD_MAX77620
+	select GPIOLIB_IRQCHIP
 	help
 	  GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
 	  MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
@@ -1232,6 +1232,7 @@
 config GPIO_TQMX86
 	tristate "TQ-Systems QTMX86 GPIO"
 	depends on MFD_TQMX86 || COMPILE_TEST
+	depends on HAS_IOPORT_MAP
 	select GPIOLIB_IRQCHIP
 	help
 	  This driver supports GPIO on the TQMX86 IO controller.
@@ -1299,6 +1300,7 @@
 config GPIO_AMD8111
 	tristate "AMD 8111 GPIO driver"
 	depends on X86 || COMPILE_TEST
+	depends on HAS_IOPORT_MAP
 	help
 	  The AMD 8111 south bridge contains 32 GPIO pins which can be used.
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-amd8111.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-amd8111.c
@@ -231,7 +231,10 @@
 		ioport_unmap(gp.pm);
 		goto out;
 	}
+	return 0;
+
 out:
+	pci_dev_put(pdev);
 	return err;
 }
 
@@ -239,6 +242,7 @@
 {
 	gpiochip_remove(&gp.chip);
 	ioport_unmap(gp.pm);
+	pci_dev_put(gp.pdev);
 }
 
 module_init(amd_gpio_init);
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-arizona.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-arizona.c
@@ -64,6 +64,7 @@
 		ret = pm_runtime_get_sync(chip->parent);
 		if (ret < 0) {
 			dev_err(chip->parent, "Failed to resume: %d\n", ret);
+			pm_runtime_put_autosuspend(chip->parent);
 			return ret;
 		}
 
@@ -72,12 +73,15 @@
 		if (ret < 0) {
 			dev_err(chip->parent, "Failed to drop cache: %d\n",
 				ret);
+			pm_runtime_put_autosuspend(chip->parent);
 			return ret;
 		}
 
 		ret = regmap_read(arizona->regmap, reg, &val);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put_autosuspend(chip->parent);
 			return ret;
+		}
 
 		pm_runtime_mark_last_busy(chip->parent);
 		pm_runtime_put_autosuspend(chip->parent);
@@ -106,6 +110,7 @@
 		ret = pm_runtime_get_sync(chip->parent);
 		if (ret < 0) {
 			dev_err(chip->parent, "Failed to resume: %d\n", ret);
+			pm_runtime_put(chip->parent);
 			return ret;
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-aspeed.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-aspeed.c
@@ -53,7 +53,7 @@
 struct aspeed_gpio {
 	struct gpio_chip chip;
 	struct irq_chip irqc;
-	spinlock_t lock;
+	raw_spinlock_t lock;
 	void __iomem *base;
 	int irq;
 	const struct aspeed_gpio_config *config;
@@ -413,14 +413,14 @@
 	unsigned long flags;
 	bool copro;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 	copro = aspeed_gpio_copro_request(gpio, offset);
 
 	__aspeed_gpio_set(gc, offset, val);
 
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 }
 
 static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
@@ -435,7 +435,7 @@
 	if (!have_input(gpio, offset))
 		return -ENOTSUPP;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	reg = ioread32(addr);
 	reg &= ~GPIO_BIT(offset);
@@ -445,7 +445,7 @@
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
 
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	return 0;
 }
@@ -463,7 +463,7 @@
 	if (!have_output(gpio, offset))
 		return -ENOTSUPP;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	reg = ioread32(addr);
 	reg |= GPIO_BIT(offset);
@@ -474,7 +474,7 @@
 
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	return 0;
 }
@@ -492,11 +492,11 @@
 	if (!have_output(gpio, offset))
 		return 1;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	val = ioread32(bank_reg(gpio, bank, reg_dir)) & GPIO_BIT(offset);
 
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	return !val;
 
@@ -540,14 +540,14 @@
 
 	status_addr = bank_reg(gpio, bank, reg_irq_status);
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 	copro = aspeed_gpio_copro_request(gpio, offset);
 
 	iowrite32(bit, status_addr);
 
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 }
 
 static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
@@ -566,7 +566,7 @@
 
 	addr = bank_reg(gpio, bank, reg_irq_enable);
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 	copro = aspeed_gpio_copro_request(gpio, offset);
 
 	reg = ioread32(addr);
@@ -578,7 +578,7 @@
 
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 }
 
 static void aspeed_gpio_irq_mask(struct irq_data *d)
@@ -630,7 +630,7 @@
 		return -EINVAL;
 	}
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 	copro = aspeed_gpio_copro_request(gpio, offset);
 
 	addr = bank_reg(gpio, bank, reg_irq_type0);
@@ -650,7 +650,7 @@
 
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	irq_set_handler_locked(d, handler);
 
@@ -720,7 +720,7 @@
 
 	treg = bank_reg(gpio, to_bank(offset), reg_tolerance);
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 	copro = aspeed_gpio_copro_request(gpio, offset);
 
 	val = readl(treg);
@@ -734,7 +734,7 @@
 
 	if (copro)
 		aspeed_gpio_copro_release(gpio, offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	return 0;
 }
@@ -860,7 +860,7 @@
 		return rc;
 	}
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	if (timer_allocation_registered(gpio, offset)) {
 		rc = unregister_allocated_timer(gpio, offset);
@@ -920,7 +920,7 @@
 	configure_timer(gpio, offset, i);
 
 out:
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	return rc;
 }
@@ -931,13 +931,13 @@
 	unsigned long flags;
 	int rc;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	rc = unregister_allocated_timer(gpio, offset);
 	if (!rc)
 		configure_timer(gpio, offset, 0);
 
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
 	return rc;
 }
@@ -967,7 +967,7 @@
 	else if (param == PIN_CONFIG_BIAS_DISABLE ||
 			param == PIN_CONFIG_BIAS_PULL_DOWN ||
 			param == PIN_CONFIG_DRIVE_STRENGTH)
-		return pinctrl_gpio_set_config(offset, config);
+		return pinctrl_gpio_set_config(chip->base + offset, config);
 	else if (param == PIN_CONFIG_DRIVE_OPEN_DRAIN ||
 			param == PIN_CONFIG_DRIVE_OPEN_SOURCE)
 		/* Return -ENOTSUPP to trigger emulation, as per datasheet */
@@ -1019,7 +1019,7 @@
 		return -EINVAL;
 	bindex = offset >> 3;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	/* Sanity check, this shouldn't happen */
 	if (gpio->cf_copro_bankmap[bindex] == 0xff) {
@@ -1040,7 +1040,7 @@
 	if (bit)
 		*bit = GPIO_OFFSET(offset);
  bail:
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 	return rc;
 }
 EXPORT_SYMBOL_GPL(aspeed_gpio_copro_grab_gpio);
@@ -1064,7 +1064,7 @@
 		return -EINVAL;
 	bindex = offset >> 3;
 
-	spin_lock_irqsave(&gpio->lock, flags);
+	raw_spin_lock_irqsave(&gpio->lock, flags);
 
 	/* Sanity check, this shouldn't happen */
 	if (gpio->cf_copro_bankmap[bindex] == 0) {
@@ -1078,7 +1078,7 @@
 		aspeed_gpio_change_cmd_source(gpio, bank, bindex,
 					      GPIO_CMDSRC_ARM);
  bail:
-	spin_unlock_irqrestore(&gpio->lock, flags);
+	raw_spin_unlock_irqrestore(&gpio->lock, flags);
 	return rc;
 }
 EXPORT_SYMBOL_GPL(aspeed_gpio_copro_release_gpio);
@@ -1115,8 +1115,8 @@
 
 static const struct aspeed_bank_props ast2600_bank_props[] = {
 	/*     input	  output   */
-	{5, 0xffffffff,  0x0000ffff}, /* U/V/W/X */
-	{6, 0xffff0000,  0x0fff0000}, /* Y/Z */
+	{5, 0xffffffff,  0xffffff00}, /* U/V/W/X */
+	{6, 0x0000ffff,  0x0000ffff}, /* Y/Z */
 	{ },
 };
 
@@ -1151,7 +1151,7 @@
 	if (IS_ERR(gpio->base))
 		return PTR_ERR(gpio->base);
 
-	spin_lock_init(&gpio->lock);
+	raw_spin_lock_init(&gpio->lock);
 
 	gpio_id = of_match_node(aspeed_gpio_of_table, pdev->dev.of_node);
 	if (!gpio_id)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-bcm-kona.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-bcm-kona.c
@@ -619,7 +619,7 @@
 
 	kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(kona_gpio->reg_base)) {
-		ret = -ENXIO;
+		ret = PTR_ERR(kona_gpio->reg_base);
 		goto err_irq_domain;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-cadence.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-cadence.c
@@ -278,6 +278,7 @@
 	{ .compatible = "cdns,gpio-r1p02" },
 	{ /* sentinel */ },
 };
+MODULE_DEVICE_TABLE(of, cdns_of_ids);
 
 static struct platform_driver cdns_gpio_driver = {
 	.driver = {
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-davinci.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-davinci.c
@@ -333,7 +333,7 @@
 	.irq_enable	= gpio_irq_enable,
 	.irq_disable	= gpio_irq_disable,
 	.irq_set_type	= gpio_irq_type,
-	.flags		= IRQCHIP_SET_TYPE_MASKED,
+	.flags		= IRQCHIP_SET_TYPE_MASKED | IRQCHIP_SKIP_SET_WAKE,
 };
 
 static void gpio_irq_handler(struct irq_desc *desc)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-dwapb.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-dwapb.c
@@ -49,7 +49,9 @@
 #define GPIO_EXT_PORTC		0x58
 #define GPIO_EXT_PORTD		0x5c
 
+#define DWAPB_DRIVER_NAME	"gpio-dwapb"
 #define DWAPB_MAX_PORTS		4
+
 #define GPIO_EXT_PORT_STRIDE	0x04 /* register stride 32 bits */
 #define GPIO_SWPORT_DR_STRIDE	0x0c /* register stride 3*32 bits */
 #define GPIO_SWPORT_DDR_STRIDE	0x0c /* register stride 3*32 bits */
@@ -398,7 +400,7 @@
 		return;
 
 	err = irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2,
-					     "gpio-dwapb", handle_level_irq,
+					     DWAPB_DRIVER_NAME, handle_level_irq,
 					     IRQ_NOREQUEST, 0,
 					     IRQ_GC_INIT_NESTED_LOCK);
 	if (err) {
@@ -455,7 +457,7 @@
 		 */
 		err = devm_request_irq(gpio->dev, pp->irq[0],
 				       dwapb_irq_handler_mfd,
-				       IRQF_SHARED, "gpio-dwapb-mfd", gpio);
+				       IRQF_SHARED, DWAPB_DRIVER_NAME, gpio);
 		if (err) {
 			dev_err(gpio->dev, "error requesting IRQ\n");
 			irq_domain_remove(gpio->domain);
@@ -533,26 +535,33 @@
 		dwapb_configure_irqs(gpio, port, pp);
 
 	err = gpiochip_add_data(&port->gc, port);
-	if (err)
+	if (err) {
 		dev_err(gpio->dev, "failed to register gpiochip for port%d\n",
 			port->idx);
-	else
-		port->is_registered = true;
+		return err;
+	}
 
 	/* Add GPIO-signaled ACPI event support */
-	if (pp->has_irq)
-		acpi_gpiochip_request_interrupts(&port->gc);
+	acpi_gpiochip_request_interrupts(&port->gc);
 
-	return err;
+	port->is_registered = true;
+
+	return 0;
 }
 
 static void dwapb_gpio_unregister(struct dwapb_gpio *gpio)
 {
 	unsigned int m;
 
-	for (m = 0; m < gpio->nr_ports; ++m)
-		if (gpio->ports[m].is_registered)
-			gpiochip_remove(&gpio->ports[m].gc);
+	for (m = 0; m < gpio->nr_ports; ++m) {
+		struct dwapb_gpio_port *port = &gpio->ports[m];
+
+		if (!port->is_registered)
+			continue;
+
+		acpi_gpiochip_free_interrupts(&port->gc);
+		gpiochip_remove(&port->gc);
+	}
 }
 
 static struct dwapb_platform_data *
@@ -836,7 +845,7 @@
 
 static struct platform_driver dwapb_gpio_driver = {
 	.driver		= {
-		.name	= "gpio-dwapb",
+		.name	= DWAPB_DRIVER_NAME,
 		.pm	= &dwapb_gpio_pm_ops,
 		.of_match_table = of_match_ptr(dwapb_of_match),
 		.acpi_match_table = ACPI_PTR(dwapb_acpi_match),
@@ -850,3 +859,4 @@
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Jamie Iles");
 MODULE_DESCRIPTION("Synopsys DesignWare APB GPIO driver");
+MODULE_ALIAS("platform:" DWAPB_DRIVER_NAME);
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-eic-sprd.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-eic-sprd.c
@@ -569,6 +569,7 @@
 	const struct sprd_eic_variant_data *pdata;
 	struct gpio_irq_chip *irq;
 	struct sprd_eic *sprd_eic;
+	struct resource *res;
 	int ret, i;
 
 	pdata = of_device_get_match_data(&pdev->dev);
@@ -595,9 +596,13 @@
 		 * have one bank EIC, thus base[1] and base[2] can be
 		 * optional.
 		 */
-		sprd_eic->base[i] = devm_platform_ioremap_resource(pdev, i);
+		res = platform_get_resource(pdev, IORESOURCE_MEM, i);
+		if (!res)
+			break;
+
+		sprd_eic->base[i] = devm_ioremap_resource(&pdev->dev, res);
 		if (IS_ERR(sprd_eic->base[i]))
-			continue;
+			return PTR_ERR(sprd_eic->base[i]);
 	}
 
 	sprd_eic->chip.label = sprd_eic_label_name[sprd_eic->type];
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-ep93xx.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-ep93xx.c
@@ -25,6 +25,9 @@
 /* Maximum value for gpio line identifiers */
 #define EP93XX_GPIO_LINE_MAX 63
 
+/* Number of GPIO chips in EP93XX */
+#define EP93XX_GPIO_CHIP_NUM 8
+
 /* Maximum value for irq capable line identifiers */
 #define EP93XX_GPIO_LINE_MAX_IRQ 23
 
@@ -34,74 +37,75 @@
  */
 #define EP93XX_GPIO_F_IRQ_BASE 80
 
+struct ep93xx_gpio_irq_chip {
+	struct irq_chip ic;
+	u8 irq_offset;
+	u8 int_unmasked;
+	u8 int_enabled;
+	u8 int_type1;
+	u8 int_type2;
+	u8 int_debounce;
+};
+
+struct ep93xx_gpio_chip {
+	struct gpio_chip		gc;
+	struct ep93xx_gpio_irq_chip	*eic;
+};
+
 struct ep93xx_gpio {
 	void __iomem		*base;
-	struct gpio_chip	gc[8];
+	struct ep93xx_gpio_chip	gc[EP93XX_GPIO_CHIP_NUM];
 };
 
-/*************************************************************************
- * Interrupt handling for EP93xx on-chip GPIOs
- *************************************************************************/
-static unsigned char gpio_int_unmasked[3];
-static unsigned char gpio_int_enabled[3];
-static unsigned char gpio_int_type1[3];
-static unsigned char gpio_int_type2[3];
-static unsigned char gpio_int_debounce[3];
-
-/* Port ordering is: A B F */
-static const u8 int_type1_register_offset[3]	= { 0x90, 0xac, 0x4c };
-static const u8 int_type2_register_offset[3]	= { 0x94, 0xb0, 0x50 };
-static const u8 eoi_register_offset[3]		= { 0x98, 0xb4, 0x54 };
-static const u8 int_en_register_offset[3]	= { 0x9c, 0xb8, 0x58 };
-static const u8 int_debounce_register_offset[3]	= { 0xa8, 0xc4, 0x64 };
+#define to_ep93xx_gpio_chip(x) container_of(x, struct ep93xx_gpio_chip, gc)
 
-static void ep93xx_gpio_update_int_params(struct ep93xx_gpio *epg, unsigned port)
+static struct ep93xx_gpio_irq_chip *to_ep93xx_gpio_irq_chip(struct gpio_chip *gc)
 {
-	BUG_ON(port > 2);
-
-	writeb_relaxed(0, epg->base + int_en_register_offset[port]);
+	struct ep93xx_gpio_chip *egc = to_ep93xx_gpio_chip(gc);
 
-	writeb_relaxed(gpio_int_type2[port],
-		       epg->base + int_type2_register_offset[port]);
-
-	writeb_relaxed(gpio_int_type1[port],
-		       epg->base + int_type1_register_offset[port]);
-
-	writeb(gpio_int_unmasked[port] & gpio_int_enabled[port],
-	       epg->base + int_en_register_offset[port]);
+	return egc->eic;
 }
 
-static int ep93xx_gpio_port(struct gpio_chip *gc)
-{
-	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = 0;
+/*************************************************************************
+ * Interrupt handling for EP93xx on-chip GPIOs
+ *************************************************************************/
+#define EP93XX_INT_TYPE1_OFFSET		0x00
+#define EP93XX_INT_TYPE2_OFFSET		0x04
+#define EP93XX_INT_EOI_OFFSET		0x08
+#define EP93XX_INT_EN_OFFSET		0x0c
+#define EP93XX_INT_STATUS_OFFSET	0x10
+#define EP93XX_INT_RAW_STATUS_OFFSET	0x14
+#define EP93XX_INT_DEBOUNCE_OFFSET	0x18
+
+static void ep93xx_gpio_update_int_params(struct ep93xx_gpio *epg,
+					  struct ep93xx_gpio_irq_chip *eic)
+{
+	writeb_relaxed(0, epg->base + eic->irq_offset + EP93XX_INT_EN_OFFSET);
 
-	while (port < ARRAY_SIZE(epg->gc) && gc != &epg->gc[port])
-		port++;
+	writeb_relaxed(eic->int_type2,
+		       epg->base + eic->irq_offset + EP93XX_INT_TYPE2_OFFSET);
 
-	/* This should not happen but is there as a last safeguard */
-	if (port == ARRAY_SIZE(epg->gc)) {
-		pr_crit("can't find the GPIO port\n");
-		return 0;
-	}
+	writeb_relaxed(eic->int_type1,
+		       epg->base + eic->irq_offset + EP93XX_INT_TYPE1_OFFSET);
 
-	return port;
+	writeb_relaxed(eic->int_unmasked & eic->int_enabled,
+		       epg->base + eic->irq_offset + EP93XX_INT_EN_OFFSET);
 }
 
 static void ep93xx_gpio_int_debounce(struct gpio_chip *gc,
 				     unsigned int offset, bool enable)
 {
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	int port_mask = BIT(offset);
 
 	if (enable)
-		gpio_int_debounce[port] |= port_mask;
+		eic->int_debounce |= port_mask;
 	else
-		gpio_int_debounce[port] &= ~port_mask;
+		eic->int_debounce &= ~port_mask;
 
-	writeb(gpio_int_debounce[port],
-	       epg->base + int_debounce_register_offset[port]);
+	writeb(eic->int_debounce,
+	       epg->base + eic->irq_offset + EP93XX_INT_DEBOUNCE_OFFSET);
 }
 
 static void ep93xx_gpio_ab_irq_handler(struct irq_desc *desc)
@@ -122,12 +126,12 @@
 	 */
 	stat = readb(epg->base + EP93XX_GPIO_A_INT_STATUS);
 	for_each_set_bit(offset, &stat, 8)
-		generic_handle_irq(irq_find_mapping(epg->gc[0].irq.domain,
+		generic_handle_irq(irq_find_mapping(epg->gc[0].gc.irq.domain,
 						    offset));
 
 	stat = readb(epg->base + EP93XX_GPIO_B_INT_STATUS);
 	for_each_set_bit(offset, &stat, 8)
-		generic_handle_irq(irq_find_mapping(epg->gc[1].irq.domain,
+		generic_handle_irq(irq_find_mapping(epg->gc[1].gc.irq.domain,
 						    offset));
 
 	chained_irq_exit(irqchip, desc);
@@ -153,52 +157,52 @@
 static void ep93xx_gpio_irq_ack(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 	int port_mask = BIT(d->irq & 7);
 
 	if (irqd_get_trigger_type(d) == IRQ_TYPE_EDGE_BOTH) {
-		gpio_int_type2[port] ^= port_mask; /* switch edge direction */
-		ep93xx_gpio_update_int_params(epg, port);
+		eic->int_type2 ^= port_mask; /* switch edge direction */
+		ep93xx_gpio_update_int_params(epg, eic);
 	}
 
-	writeb(port_mask, epg->base + eoi_register_offset[port]);
+	writeb(port_mask, epg->base + eic->irq_offset + EP93XX_INT_EOI_OFFSET);
 }
 
 static void ep93xx_gpio_irq_mask_ack(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 	int port_mask = BIT(d->irq & 7);
 
 	if (irqd_get_trigger_type(d) == IRQ_TYPE_EDGE_BOTH)
-		gpio_int_type2[port] ^= port_mask; /* switch edge direction */
+		eic->int_type2 ^= port_mask; /* switch edge direction */
 
-	gpio_int_unmasked[port] &= ~port_mask;
-	ep93xx_gpio_update_int_params(epg, port);
+	eic->int_unmasked &= ~port_mask;
+	ep93xx_gpio_update_int_params(epg, eic);
 
-	writeb(port_mask, epg->base + eoi_register_offset[port]);
+	writeb(port_mask, epg->base + eic->irq_offset + EP93XX_INT_EOI_OFFSET);
 }
 
 static void ep93xx_gpio_irq_mask(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 
-	gpio_int_unmasked[port] &= ~BIT(d->irq & 7);
-	ep93xx_gpio_update_int_params(epg, port);
+	eic->int_unmasked &= ~BIT(d->irq & 7);
+	ep93xx_gpio_update_int_params(epg, eic);
 }
 
 static void ep93xx_gpio_irq_unmask(struct irq_data *d)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 
-	gpio_int_unmasked[port] |= BIT(d->irq & 7);
-	ep93xx_gpio_update_int_params(epg, port);
+	eic->int_unmasked |= BIT(d->irq & 7);
+	ep93xx_gpio_update_int_params(epg, eic);
 }
 
 /*
@@ -209,8 +213,8 @@
 static int ep93xx_gpio_irq_type(struct irq_data *d, unsigned int type)
 {
 	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
+	struct ep93xx_gpio_irq_chip *eic = to_ep93xx_gpio_irq_chip(gc);
 	struct ep93xx_gpio *epg = gpiochip_get_data(gc);
-	int port = ep93xx_gpio_port(gc);
 	int offset = d->irq & 7;
 	int port_mask = BIT(offset);
 	irq_flow_handler_t handler;
@@ -219,32 +223,32 @@
 
 	switch (type) {
 	case IRQ_TYPE_EDGE_RISING:
-		gpio_int_type1[port] |= port_mask;
-		gpio_int_type2[port] |= port_mask;
+		eic->int_type1 |= port_mask;
+		eic->int_type2 |= port_mask;
 		handler = handle_edge_irq;
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
-		gpio_int_type1[port] |= port_mask;
-		gpio_int_type2[port] &= ~port_mask;
+		eic->int_type1 |= port_mask;
+		eic->int_type2 &= ~port_mask;
 		handler = handle_edge_irq;
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
-		gpio_int_type1[port] &= ~port_mask;
-		gpio_int_type2[port] |= port_mask;
+		eic->int_type1 &= ~port_mask;
+		eic->int_type2 |= port_mask;
 		handler = handle_level_irq;
 		break;
 	case IRQ_TYPE_LEVEL_LOW:
-		gpio_int_type1[port] &= ~port_mask;
-		gpio_int_type2[port] &= ~port_mask;
+		eic->int_type1 &= ~port_mask;
+		eic->int_type2 &= ~port_mask;
 		handler = handle_level_irq;
 		break;
 	case IRQ_TYPE_EDGE_BOTH:
-		gpio_int_type1[port] |= port_mask;
+		eic->int_type1 |= port_mask;
 		/* set initial polarity based on current input level */
 		if (gc->get(gc, offset))
-			gpio_int_type2[port] &= ~port_mask; /* falling */
+			eic->int_type2 &= ~port_mask; /* falling */
 		else
-			gpio_int_type2[port] |= port_mask; /* rising */
+			eic->int_type2 |= port_mask; /* rising */
 		handler = handle_edge_irq;
 		break;
 	default:
@@ -253,22 +257,13 @@
 
 	irq_set_handler_locked(d, handler);
 
-	gpio_int_enabled[port] |= port_mask;
+	eic->int_enabled |= port_mask;
 
-	ep93xx_gpio_update_int_params(epg, port);
+	ep93xx_gpio_update_int_params(epg, eic);
 
 	return 0;
 }
 
-static struct irq_chip ep93xx_gpio_irq_chip = {
-	.name		= "GPIO",
-	.irq_ack	= ep93xx_gpio_irq_ack,
-	.irq_mask_ack	= ep93xx_gpio_irq_mask_ack,
-	.irq_mask	= ep93xx_gpio_irq_mask,
-	.irq_unmask	= ep93xx_gpio_irq_unmask,
-	.irq_set_type	= ep93xx_gpio_irq_type,
-};
-
 /*************************************************************************
  * gpiolib interface for EP93xx on-chip GPIOs
  *************************************************************************/
@@ -276,17 +271,19 @@
 	const char	*label;
 	int		data;
 	int		dir;
+	int		irq;
 	int		base;
 	bool		has_irq;
 	bool		has_hierarchical_irq;
 	unsigned int	irq_base;
 };
 
-#define EP93XX_GPIO_BANK(_label, _data, _dir, _base, _has_irq, _has_hier, _irq_base) \
+#define EP93XX_GPIO_BANK(_label, _data, _dir, _irq, _base, _has_irq, _has_hier, _irq_base) \
 	{							\
 		.label		= _label,			\
 		.data		= _data,			\
 		.dir		= _dir,				\
+		.irq		= _irq,				\
 		.base		= _base,			\
 		.has_irq	= _has_irq,			\
 		.has_hierarchical_irq = _has_hier,		\
@@ -295,16 +292,16 @@
 
 static struct ep93xx_gpio_bank ep93xx_gpio_banks[] = {
 	/* Bank A has 8 IRQs */
-	EP93XX_GPIO_BANK("A", 0x00, 0x10, 0, true, false, 64),
+	EP93XX_GPIO_BANK("A", 0x00, 0x10, 0x90, 0, true, false, 64),
 	/* Bank B has 8 IRQs */
-	EP93XX_GPIO_BANK("B", 0x04, 0x14, 8, true, false, 72),
-	EP93XX_GPIO_BANK("C", 0x08, 0x18, 40, false, false, 0),
-	EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24, false, false, 0),
-	EP93XX_GPIO_BANK("E", 0x20, 0x24, 32, false, false, 0),
+	EP93XX_GPIO_BANK("B", 0x04, 0x14, 0xac, 8, true, false, 72),
+	EP93XX_GPIO_BANK("C", 0x08, 0x18, 0x00, 40, false, false, 0),
+	EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 0x00, 24, false, false, 0),
+	EP93XX_GPIO_BANK("E", 0x20, 0x24, 0x00, 32, false, false, 0),
 	/* Bank F has 8 IRQs */
-	EP93XX_GPIO_BANK("F", 0x30, 0x34, 16, false, true, 0),
-	EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48, false, false, 0),
-	EP93XX_GPIO_BANK("H", 0x40, 0x44, 56, false, false, 0),
+	EP93XX_GPIO_BANK("F", 0x30, 0x34, 0x4c, 16, false, true, 0),
+	EP93XX_GPIO_BANK("G", 0x38, 0x3c, 0x00, 48, false, false, 0),
+	EP93XX_GPIO_BANK("H", 0x40, 0x44, 0x00, 56, false, false, 0),
 };
 
 static int ep93xx_gpio_set_config(struct gpio_chip *gc, unsigned offset,
@@ -326,13 +323,23 @@
 	return EP93XX_GPIO_F_IRQ_BASE + offset;
 }
 
-static int ep93xx_gpio_add_bank(struct gpio_chip *gc,
+static void ep93xx_init_irq_chip(struct device *dev, struct irq_chip *ic)
+{
+	ic->irq_ack = ep93xx_gpio_irq_ack;
+	ic->irq_mask_ack = ep93xx_gpio_irq_mask_ack;
+	ic->irq_mask = ep93xx_gpio_irq_mask;
+	ic->irq_unmask = ep93xx_gpio_irq_unmask;
+	ic->irq_set_type = ep93xx_gpio_irq_type;
+}
+
+static int ep93xx_gpio_add_bank(struct ep93xx_gpio_chip *egc,
 				struct platform_device *pdev,
 				struct ep93xx_gpio *epg,
 				struct ep93xx_gpio_bank *bank)
 {
 	void __iomem *data = epg->base + bank->data;
 	void __iomem *dir = epg->base + bank->dir;
+	struct gpio_chip *gc = &egc->gc;
 	struct device *dev = &pdev->dev;
 	struct gpio_irq_chip *girq;
 	int err;
@@ -346,8 +353,21 @@
 
 	girq = &gc->irq;
 	if (bank->has_irq || bank->has_hierarchical_irq) {
+		struct irq_chip *ic;
+
 		gc->set_config = ep93xx_gpio_set_config;
-		girq->chip = &ep93xx_gpio_irq_chip;
+		egc->eic = devm_kcalloc(dev, 1,
+					sizeof(*egc->eic),
+					GFP_KERNEL);
+		if (!egc->eic)
+			return -ENOMEM;
+		egc->eic->irq_offset = bank->irq;
+		ic = &egc->eic->ic;
+		ic->name = devm_kasprintf(dev, GFP_KERNEL, "gpio-irq-%s", bank->label);
+		if (!ic->name)
+			return -ENOMEM;
+		ep93xx_init_irq_chip(dev, ic);
+		girq->chip = ic;
 	}
 
 	if (bank->has_irq) {
@@ -389,7 +409,7 @@
 			gpio_irq = EP93XX_GPIO_F_IRQ_BASE + i;
 			irq_set_chip_data(gpio_irq, &epg->gc[5]);
 			irq_set_chip_and_handler(gpio_irq,
-						 &ep93xx_gpio_irq_chip,
+						 girq->chip,
 						 handle_level_irq);
 			irq_clear_status_flags(gpio_irq, IRQ_NOREQUEST);
 		}
@@ -415,7 +435,7 @@
 		return PTR_ERR(epg->base);
 
 	for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) {
-		struct gpio_chip *gc = &epg->gc[i];
+		struct ep93xx_gpio_chip *gc = &epg->gc[i];
 		struct ep93xx_gpio_bank *bank = &ep93xx_gpio_banks[i];
 
 		if (ep93xx_gpio_add_bank(gc, pdev, epg, bank))
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-exar.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-exar.c
@@ -145,8 +145,10 @@
 	mutex_init(&exar_gpio->lock);
 
 	index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
-	if (index < 0)
-		goto err_destroy;
+	if (index < 0) {
+		ret = index;
+		goto err_mutex_destroy;
+	}
 
 	sprintf(exar_gpio->name, "exar_gpio%d", index);
 	exar_gpio->gpio_chip.label = exar_gpio->name;
@@ -173,6 +175,7 @@
 
 err_destroy:
 	ida_simple_remove(&ida_index, index);
+err_mutex_destroy:
 	mutex_destroy(&exar_gpio->lock);
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-grgpio.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-grgpio.c
@@ -253,17 +253,16 @@
 	lirq->irq = irq;
 	uirq = &priv->uirqs[lirq->index];
 	if (uirq->refcnt == 0) {
+		spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 		ret = request_irq(uirq->uirq, grgpio_irq_handler, 0,
 				  dev_name(priv->dev), priv);
 		if (ret) {
 			dev_err(priv->dev,
 				"Could not request underlying irq %d\n",
 				uirq->uirq);
-
-			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
-
 			return ret;
 		}
+		spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 	}
 	uirq->refcnt++;
 
@@ -309,8 +308,11 @@
 	if (index >= 0) {
 		uirq = &priv->uirqs[lirq->index];
 		uirq->refcnt--;
-		if (uirq->refcnt == 0)
+		if (uirq->refcnt == 0) {
+			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 			free_irq(uirq->uirq, priv);
+			return;
+		}
 	}
 
 	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-lynxpoint.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-lynxpoint.c
@@ -164,6 +164,12 @@
 		value |= TRIG_SEL_BIT | INT_INV_BIT;
 
 	outl(value, reg);
+
+	if (type & IRQ_TYPE_EDGE_BOTH)
+		irq_set_handler_locked(d, handle_edge_irq);
+	else if (type & IRQ_TYPE_LEVEL_MASK)
+		irq_set_handler_locked(d, handle_level_irq);
+
 	spin_unlock_irqrestore(&lg->lock, flags);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-mockup.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-mockup.c
@@ -339,7 +339,7 @@
 		priv->offset = i;
 		priv->desc = &gc->gpiodev->descs[i];
 
-		debugfs_create_file(name, 0200, chip->dbg_dir, priv,
+		debugfs_create_file(name, 0600, chip->dbg_dir, priv,
 				    &gpio_mockup_debugfs_ops);
 	}
 
@@ -497,6 +497,7 @@
 	err = platform_driver_register(&gpio_mockup_driver);
 	if (err) {
 		gpio_mockup_err("error registering platform driver\n");
+		debugfs_remove_recursive(gpio_mockup_dbg_dir);
 		return err;
 	}
 
@@ -527,6 +528,7 @@
 			gpio_mockup_err("error registering device");
 			platform_driver_unregister(&gpio_mockup_driver);
 			gpio_mockup_unregister_pdevs();
+			debugfs_remove_recursive(gpio_mockup_dbg_dir);
 			return PTR_ERR(pdev);
 		}
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-mpc8xxx.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-mpc8xxx.c
@@ -190,6 +190,7 @@
 
 	switch (flow_type) {
 	case IRQ_TYPE_EDGE_FALLING:
+	case IRQ_TYPE_LEVEL_LOW:
 		raw_spin_lock_irqsave(&mpc8xxx_gc->lock, flags);
 		gc->write_reg(mpc8xxx_gc->regs + GPIO_ICR,
 			gc->read_reg(mpc8xxx_gc->regs + GPIO_ICR)
@@ -346,6 +347,7 @@
 		return -ENOMEM;
 
 	gc = &mpc8xxx_gc->gc;
+	gc->parent = &pdev->dev;
 
 	if (of_property_read_bool(np, "little-endian")) {
 		ret = bgpio_init(gc, &pdev->dev, 4,
@@ -377,7 +379,8 @@
 	 * It's assumed that only a single type of gpio controller is available
 	 * on the current machine, so overwriting global data is fine.
 	 */
-	mpc8xxx_irq_chip.irq_set_type = devtype->irq_set_type;
+	if (devtype->irq_set_type)
+		mpc8xxx_irq_chip.irq_set_type = devtype->irq_set_type;
 
 	if (devtype->gpio_dir_out)
 		gc->direction_output = devtype->gpio_dir_out;
@@ -386,6 +389,9 @@
 
 	gc->to_irq = mpc8xxx_gpio_to_irq;
 
+	if (of_device_is_compatible(np, "fsl,qoriq-gpio"))
+		gc->write_reg(mpc8xxx_gc->regs + GPIO_IBE, 0xffffffff);
+
 	ret = gpiochip_add_data(gc, mpc8xxx_gc);
 	if (ret) {
 		pr_err("%pOF: GPIO chip registration failed with status %d\n",
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-mvebu.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-mvebu.c
@@ -657,9 +657,8 @@
 
 	spin_lock_irqsave(&mvpwm->lock, flags);
 
-	val = (unsigned long long)
-		readl_relaxed(mvebu_pwmreg_blink_on_duration(mvpwm));
-	val *= NSEC_PER_SEC;
+	u = readl_relaxed(mvebu_pwmreg_blink_on_duration(mvpwm));
+	val = (unsigned long long) u * NSEC_PER_SEC;
 	do_div(val, mvpwm->clk_rate);
 	if (val > UINT_MAX)
 		state->duty_cycle = UINT_MAX;
@@ -668,21 +667,17 @@
 	else
 		state->duty_cycle = 1;
 
-	val = (unsigned long long)
-		readl_relaxed(mvebu_pwmreg_blink_off_duration(mvpwm));
+	val = (unsigned long long) u; /* on duration */
+	/* period = on + off duration */
+	val += readl_relaxed(mvebu_pwmreg_blink_off_duration(mvpwm));
 	val *= NSEC_PER_SEC;
 	do_div(val, mvpwm->clk_rate);
-	if (val < state->duty_cycle) {
+	if (val > UINT_MAX)
+		state->period = UINT_MAX;
+	else if (val)
+		state->period = val;
+	else
 		state->period = 1;
-	} else {
-		val -= state->duty_cycle;
-		if (val > UINT_MAX)
-			state->period = UINT_MAX;
-		else if (val)
-			state->period = val;
-		else
-			state->period = 1;
-	}
 
 	regmap_read(mvchip->regs, GPIO_BLINK_EN_OFF + mvchip->offset, &u);
 	if (u)
@@ -702,6 +697,9 @@
 	unsigned long flags;
 	unsigned int on, off;
 
+	if (state->polarity != PWM_POLARITY_NORMAL)
+		return -EINVAL;
+
 	val = (unsigned long long) mvpwm->clk_rate * state->duty_cycle;
 	do_div(val, NSEC_PER_SEC);
 	if (val > UINT_MAX)
@@ -1196,6 +1194,13 @@
 
 	devm_gpiochip_add_data(&pdev->dev, &mvchip->chip, mvchip);
 
+	/* Some MVEBU SoCs have simple PWM support for GPIO lines */
+	if (IS_ENABLED(CONFIG_PWM)) {
+		err = mvebu_pwm_probe(pdev, mvchip, id);
+		if (err)
+			return err;
+	}
+
 	/* Some gpio controllers do not provide irq support */
 	if (!have_irqs)
 		return 0;
@@ -1205,7 +1210,8 @@
 	if (!mvchip->domain) {
 		dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n",
 			mvchip->chip.label);
-		return -ENODEV;
+		err = -ENODEV;
+		goto err_pwm;
 	}
 
 	err = irq_alloc_domain_generic_chips(
@@ -1253,14 +1259,12 @@
 						 mvchip);
 	}
 
-	/* Some MVEBU SoCs have simple PWM support for GPIO lines */
-	if (IS_ENABLED(CONFIG_PWM))
-		return mvebu_pwm_probe(pdev, mvchip, id);
-
 	return 0;
 
 err_domain:
 	irq_domain_remove(mvchip->domain);
+err_pwm:
+	pwmchip_remove(&mvchip->mvpwm->chip);
 
 	return err;
 }
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-mxc.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-mxc.c
@@ -15,6 +15,7 @@
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
 #include <linux/irqchip/chained_irq.h>
+#include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/syscore_ops.h>
@@ -158,6 +159,7 @@
 	{ .compatible = "fsl,imx7d-gpio", .data = &mxc_gpio_devtype[IMX35_GPIO], },
 	{ /* sentinel */ }
 };
+MODULE_DEVICE_TABLE(of, mxc_gpio_dt_ids);
 
 /*
  * MX2 has one interrupt *for all* gpio ports. The list is used
@@ -229,7 +231,7 @@
 
 	writel(1 << gpio_idx, port->base + GPIO_ISR);
 
-	return 0;
+	return port->gc.direction_input(&port->gc, gpio_idx);
 }
 
 static void mxc_flip_edge(struct mxc_gpio_port *port, u32 gpio)
@@ -411,6 +413,7 @@
 {
 	struct device_node *np = pdev->dev.of_node;
 	struct mxc_gpio_port *port;
+	int irq_count;
 	int irq_base;
 	int err;
 
@@ -426,9 +429,15 @@
 	if (IS_ERR(port->base))
 		return PTR_ERR(port->base);
 
-	port->irq_high = platform_get_irq(pdev, 1);
-	if (port->irq_high < 0)
-		port->irq_high = 0;
+	irq_count = platform_irq_count(pdev);
+	if (irq_count < 0)
+		return irq_count;
+
+	if (irq_count > 1) {
+		port->irq_high = platform_get_irq(pdev, 1);
+		if (port->irq_high < 0)
+			port->irq_high = 0;
+	}
 
 	port->irq = platform_get_irq(pdev, 0);
 	if (port->irq < 0)
@@ -600,3 +609,7 @@
 	return platform_driver_register(&mxc_gpio_driver);
 }
 subsys_initcall(gpio_mxc_init);
+
+MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
+MODULE_DESCRIPTION("i.MX GPIO Driver");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-omap.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-omap.c
@@ -29,6 +29,7 @@
 #define OMAP4_GPIO_DEBOUNCINGTIME_MASK 0xFF
 
 struct gpio_regs {
+	u32 sysconfig;
 	u32 irqenable1;
 	u32 irqenable2;
 	u32 wake_en;
@@ -1058,6 +1059,7 @@
 	const struct omap_gpio_reg_offs *regs = p->regs;
 	void __iomem *base = p->base;
 
+	p->context.sysconfig	= readl_relaxed(base + regs->sysconfig);
 	p->context.ctrl		= readl_relaxed(base + regs->ctrl);
 	p->context.oe		= readl_relaxed(base + regs->direction);
 	p->context.wake_en	= readl_relaxed(base + regs->wkup_en);
@@ -1077,6 +1079,7 @@
 	const struct omap_gpio_reg_offs *regs = bank->regs;
 	void __iomem *base = bank->base;
 
+	writel_relaxed(bank->context.sysconfig, base + regs->sysconfig);
 	writel_relaxed(bank->context.wake_en, base + regs->wkup_en);
 	writel_relaxed(bank->context.ctrl, base + regs->ctrl);
 	writel_relaxed(bank->context.leveldetect0, base + regs->leveldetect0);
@@ -1104,6 +1107,10 @@
 
 	bank->saved_datain = readl_relaxed(base + bank->regs->datain);
 
+	/* Save syconfig, it's runtime value can be different from init value */
+	if (bank->loses_context)
+		bank->context.sysconfig = readl_relaxed(base + bank->regs->sysconfig);
+
 	if (!bank->enabled_non_wakeup_gpios)
 		goto update_gpio_context_count;
 
@@ -1259,6 +1266,7 @@
 
 static const struct omap_gpio_reg_offs omap2_gpio_regs = {
 	.revision =		OMAP24XX_GPIO_REVISION,
+	.sysconfig =		OMAP24XX_GPIO_SYSCONFIG,
 	.direction =		OMAP24XX_GPIO_OE,
 	.datain =		OMAP24XX_GPIO_DATAIN,
 	.dataout =		OMAP24XX_GPIO_DATAOUT,
@@ -1282,6 +1290,7 @@
 
 static const struct omap_gpio_reg_offs omap4_gpio_regs = {
 	.revision =		OMAP4_GPIO_REVISION,
+	.sysconfig =		OMAP4_GPIO_SYSCONFIG,
 	.direction =		OMAP4_GPIO_OE,
 	.datain =		OMAP4_GPIO_DATAIN,
 	.dataout =		OMAP4_GPIO_DATAOUT,
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-pca953x.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-pca953x.c
@@ -20,6 +20,7 @@
 #include <linux/platform_data/pca953x.h>
 #include <linux/regmap.h>
 #include <linux/regulator/consumer.h>
+#include <linux/reset.h>
 #include <linux/slab.h>
 
 #include <asm/unaligned.h>
@@ -107,6 +108,84 @@
 };
 MODULE_DEVICE_TABLE(i2c, pca953x_id);
 
+#ifdef CONFIG_GPIO_PCA953X_IRQ
+
+#include <linux/dmi.h>
+#include <linux/gpio.h>
+#include <linux/list.h>
+
+static const struct dmi_system_id pca953x_dmi_acpi_irq_info[] = {
+	{
+		/*
+		 * On Intel Galileo Gen 2 board the IRQ pin of one of
+		 * the I²C GPIO expanders, which has GpioInt() resource,
+		 * is provided as an absolute number instead of being
+		 * relative. Since first controller (gpio-sch.c) and
+		 * second (gpio-dwapb.c) are at the fixed bases, we may
+		 * safely refer to the number in the global space to get
+		 * an IRQ out of it.
+		 */
+		.matches = {
+			DMI_EXACT_MATCH(DMI_BOARD_NAME, "GalileoGen2"),
+		},
+	},
+	{}
+};
+
+#ifdef CONFIG_ACPI
+static int pca953x_acpi_get_pin(struct acpi_resource *ares, void *data)
+{
+	struct acpi_resource_gpio *agpio;
+	int *pin = data;
+
+	if (acpi_gpio_get_irq_resource(ares, &agpio))
+		*pin = agpio->pin_table[0];
+	return 1;
+}
+
+static int pca953x_acpi_find_pin(struct device *dev)
+{
+	struct acpi_device *adev = ACPI_COMPANION(dev);
+	int pin = -ENOENT, ret;
+	LIST_HEAD(r);
+
+	ret = acpi_dev_get_resources(adev, &r, pca953x_acpi_get_pin, &pin);
+	acpi_dev_free_resource_list(&r);
+	if (ret < 0)
+		return ret;
+
+	return pin;
+}
+#else
+static inline int pca953x_acpi_find_pin(struct device *dev) { return -ENXIO; }
+#endif
+
+static int pca953x_acpi_get_irq(struct device *dev)
+{
+	int pin, ret;
+
+	pin = pca953x_acpi_find_pin(dev);
+	if (pin < 0)
+		return pin;
+
+	dev_info(dev, "Applying ACPI interrupt quirk (GPIO %d)\n", pin);
+
+	if (!gpio_is_valid(pin))
+		return -EINVAL;
+
+	ret = gpio_request(pin, "pca953x interrupt");
+	if (ret)
+		return ret;
+
+	ret = gpio_to_irq(pin);
+
+	/* When pin is used as an IRQ, no need to keep it requested */
+	gpio_free(pin);
+
+	return ret;
+}
+#endif
+
 static const struct acpi_device_id pca953x_acpi_ids[] = {
 	{ "INT3491", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
 	{ }
@@ -301,13 +380,31 @@
 	.reg_bits = 8,
 	.val_bits = 8,
 
+	.use_single_read = true,
+	.use_single_write = true,
+
+	.readable_reg = pca953x_readable_register,
+	.writeable_reg = pca953x_writeable_register,
+	.volatile_reg = pca953x_volatile_register,
+
+	.cache_type = REGCACHE_RBTREE,
+	.max_register = 0x7f,
+};
+
+static const struct regmap_config pca953x_ai_i2c_regmap = {
+	.reg_bits = 8,
+	.val_bits = 8,
+
+	.read_flag_mask = REG_ADDR_AI,
+	.write_flag_mask = REG_ADDR_AI,
+
 	.readable_reg = pca953x_readable_register,
 	.writeable_reg = pca953x_writeable_register,
 	.volatile_reg = pca953x_volatile_register,
 
+	.disable_locking = true,
 	.cache_type = REGCACHE_RBTREE,
-	/* REVISIT: should be 0x7f but some 24 bit chips use REG_ADDR_AI */
-	.max_register = 0xff,
+	.max_register = 0x7f,
 };
 
 static u8 pca953x_recalc_addr(struct pca953x_chip *chip, int reg, int off,
@@ -318,18 +415,6 @@
 	int pinctrl = (reg & PCAL_PINCTRL_MASK) << 1;
 	u8 regaddr = pinctrl | addr | (off / BANK_SZ);
 
-	/* Single byte read doesn't need AI bit set. */
-	if (!addrinc)
-		return regaddr;
-
-	/* Chips with 24 and more GPIOs always support Auto Increment */
-	if (write && NBANK(chip) > 2)
-		regaddr |= REG_ADDR_AI;
-
-	/* PCA9575 needs address-increment on multi-byte writes */
-	if (PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE)
-		regaddr |= REG_ADDR_AI;
-
 	return regaddr;
 }
 
@@ -502,21 +587,21 @@
 
 	mutex_lock(&chip->i2c_lock);
 
-	/* Disable pull-up/pull-down */
-	ret = regmap_write_bits(chip->regmap, pull_en_reg, bit, 0);
-	if (ret)
-		goto exit;
-
 	/* Configure pull-up/pull-down */
 	if (config == PIN_CONFIG_BIAS_PULL_UP)
 		ret = regmap_write_bits(chip->regmap, pull_sel_reg, bit, bit);
 	else if (config == PIN_CONFIG_BIAS_PULL_DOWN)
 		ret = regmap_write_bits(chip->regmap, pull_sel_reg, bit, 0);
+	else
+		ret = 0;
 	if (ret)
 		goto exit;
 
-	/* Enable pull-up/pull-down */
-	ret = regmap_write_bits(chip->regmap, pull_en_reg, bit, bit);
+	/* Disable/Enable pull-up/pull-down */
+	if (config == PIN_CONFIG_BIAS_DISABLE)
+		ret = regmap_write_bits(chip->regmap, pull_en_reg, bit, 0);
+	else
+		ret = regmap_write_bits(chip->regmap, pull_en_reg, bit, bit);
 
 exit:
 	mutex_unlock(&chip->i2c_lock);
@@ -528,9 +613,11 @@
 {
 	struct pca953x_chip *chip = gpiochip_get_data(gc);
 
-	switch (config) {
+	switch (pinconf_to_config_param(config)) {
 	case PIN_CONFIG_BIAS_PULL_UP:
+	case PIN_CONFIG_BIAS_PULL_PIN_DEFAULT:
 	case PIN_CONFIG_BIAS_PULL_DOWN:
+	case PIN_CONFIG_BIAS_DISABLE:
 		return pca953x_gpio_set_pull_up_down(chip, offset, config);
 	default:
 		return -ENOTSUPP;
@@ -770,6 +857,12 @@
 	u8 reg_direction[MAX_BANK];
 	int ret, i;
 
+	if (dmi_first_match(pca953x_dmi_acpi_irq_info)) {
+		ret = pca953x_acpi_get_irq(&client->dev);
+		if (ret > 0)
+			client->irq = ret;
+	}
+
 	if (!client->irq)
 		return 0;
 
@@ -897,6 +990,7 @@
 	int ret;
 	u32 invert = 0;
 	struct regulator *reg;
+	const struct regmap_config *regmap_config;
 
 	chip = devm_kzalloc(&client->dev,
 			sizeof(struct pca953x_chip), GFP_KERNEL);
@@ -930,17 +1024,21 @@
 
 	chip->client = client;
 
-	reg = devm_regulator_get(&client->dev, "vcc");
+	reg = devm_regulator_get_optional(&client->dev, "vcc");
 	if (IS_ERR(reg)) {
 		ret = PTR_ERR(reg);
-		if (ret != -EPROBE_DEFER)
-			dev_err(&client->dev, "reg get err: %d\n", ret);
-		return ret;
+		if (ret == -EPROBE_DEFER)
+			return ret;
+		dev_dbg(&client->dev, "reg get err: %d\n", ret);
+		reg = NULL;
 	}
-	ret = regulator_enable(reg);
-	if (ret) {
-		dev_err(&client->dev, "reg en err: %d\n", ret);
-		return ret;
+
+	if (reg) {
+		ret = regulator_enable(reg);
+		if (ret) {
+			dev_err(&client->dev, "reg en err: %d\n", ret);
+			return ret;
+		}
 	}
 	chip->regulator = reg;
 
@@ -960,7 +1058,17 @@
 
 	i2c_set_clientdata(client, chip);
 
-	chip->regmap = devm_regmap_init_i2c(client, &pca953x_i2c_regmap);
+	pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK);
+
+	if (NBANK(chip) > 2 || PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE) {
+		dev_info(&client->dev, "using AI\n");
+		regmap_config = &pca953x_ai_i2c_regmap;
+	} else {
+		dev_info(&client->dev, "using no AI\n");
+		regmap_config = &pca953x_i2c_regmap;
+	}
+
+	chip->regmap = devm_regmap_init_i2c(client, regmap_config);
 	if (IS_ERR(chip->regmap)) {
 		ret = PTR_ERR(chip->regmap);
 		goto err_exit;
@@ -988,10 +1096,13 @@
 	lockdep_set_subclass(&chip->i2c_lock,
 			     i2c_adapter_depth(client->adapter));
 
+	ret = device_reset(&client->dev);
+	if (ret == -EPROBE_DEFER)
+		return -EPROBE_DEFER;
+
 	/* initialize cached registers from their original values.
 	 * we can't share this chip with another i2c master.
 	 */
-	pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK);
 
 	if (PCA_CHIP_TYPE(chip->driver_data) == PCA953X_TYPE) {
 		chip->regs = &pca953x_regs;
@@ -1021,7 +1132,8 @@
 	return 0;
 
 err_exit:
-	regulator_disable(chip->regulator);
+	if (chip->regulator)
+		regulator_disable(chip->regulator);
 	return ret;
 }
 
@@ -1040,7 +1152,8 @@
 		ret = 0;
 	}
 
-	regulator_disable(chip->regulator);
+	if (chip->regulator)
+		regulator_disable(chip->regulator);
 
 	return ret;
 }
@@ -1096,12 +1209,15 @@
 {
 	struct pca953x_chip *chip = dev_get_drvdata(dev);
 
+	mutex_lock(&chip->i2c_lock);
 	regcache_cache_only(chip->regmap, true);
+	mutex_unlock(&chip->i2c_lock);
 
 	if (atomic_read(&chip->wakeup_path))
 		device_set_wakeup_path(dev);
 	else
-		regulator_disable(chip->regulator);
+		if (chip->regulator)
+			regulator_disable(chip->regulator);
 
 	return 0;
 }
@@ -1111,21 +1227,30 @@
 	struct pca953x_chip *chip = dev_get_drvdata(dev);
 	int ret;
 
+	regcache_cache_only(chip->regmap, false);
+
 	if (!atomic_read(&chip->wakeup_path)) {
-		ret = regulator_enable(chip->regulator);
-		if (ret) {
-			dev_err(dev, "Failed to enable regulator: %d\n", ret);
+		if (chip->regulator) {
+			ret = regulator_enable(chip->regulator);
+			if (ret) {
+				dev_err(dev, "Failed to enable regulator: %d\n", ret);
+				return 0;
+			}
+		} else {
 			return 0;
 		}
 	}
 
-	regcache_cache_only(chip->regmap, false);
+	mutex_lock(&chip->i2c_lock);
 	regcache_mark_dirty(chip->regmap);
 	ret = pca953x_regcache_sync(dev);
-	if (ret)
+	if (ret) {
+		mutex_unlock(&chip->i2c_lock);
 		return ret;
+	}
 
 	ret = regcache_sync(chip->regmap);
+	mutex_unlock(&chip->i2c_lock);
 	if (ret) {
 		dev_err(dev, "Failed to restore register map: %d\n", ret);
 		return ret;
@@ -1175,6 +1300,7 @@
 
 	{ .compatible = "onnn,cat9554", .data = OF_953X( 8, PCA_INT), },
 	{ .compatible = "onnn,pca9654", .data = OF_953X( 8, PCA_INT), },
+	{ .compatible = "onnn,pca9655", .data = OF_953X(16, PCA_INT), },
 
 	{ .compatible = "exar,xra1202", .data = OF_953X( 8, 0), },
 	{ }
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-pcf857x.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-pcf857x.c
@@ -332,7 +332,7 @@
 	 * reset state.  Otherwise it flags pins to be driven low.
 	 */
 	gpio->out = ~n_latch;
-	gpio->status = gpio->out;
+	gpio->status = gpio->read(gpio->client);
 
 	status = devm_gpiochip_add_data(&client->dev, &gpio->chip, gpio);
 	if (status < 0)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-pcie-idio-24.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-pcie-idio-24.c
@@ -28,6 +28,47 @@
 #include <linux/spinlock.h>
 #include <linux/types.h>
 
+/*
+ * PLX PEX8311 PCI LCS_INTCSR Interrupt Control/Status
+ *
+ * Bit: Description
+ *   0: Enable Interrupt Sources (Bit 0)
+ *   1: Enable Interrupt Sources (Bit 1)
+ *   2: Generate Internal PCI Bus Internal SERR# Interrupt
+ *   3: Mailbox Interrupt Enable
+ *   4: Power Management Interrupt Enable
+ *   5: Power Management Interrupt
+ *   6: Slave Read Local Data Parity Check Error Enable
+ *   7: Slave Read Local Data Parity Check Error Status
+ *   8: Internal PCI Wire Interrupt Enable
+ *   9: PCI Express Doorbell Interrupt Enable
+ *  10: PCI Abort Interrupt Enable
+ *  11: Local Interrupt Input Enable
+ *  12: Retry Abort Enable
+ *  13: PCI Express Doorbell Interrupt Active
+ *  14: PCI Abort Interrupt Active
+ *  15: Local Interrupt Input Active
+ *  16: Local Interrupt Output Enable
+ *  17: Local Doorbell Interrupt Enable
+ *  18: DMA Channel 0 Interrupt Enable
+ *  19: DMA Channel 1 Interrupt Enable
+ *  20: Local Doorbell Interrupt Active
+ *  21: DMA Channel 0 Interrupt Active
+ *  22: DMA Channel 1 Interrupt Active
+ *  23: Built-In Self-Test (BIST) Interrupt Active
+ *  24: Direct Master was the Bus Master during a Master or Target Abort
+ *  25: DMA Channel 0 was the Bus Master during a Master or Target Abort
+ *  26: DMA Channel 1 was the Bus Master during a Master or Target Abort
+ *  27: Target Abort after internal 256 consecutive Master Retrys
+ *  28: PCI Bus wrote data to LCS_MBOX0
+ *  29: PCI Bus wrote data to LCS_MBOX1
+ *  30: PCI Bus wrote data to LCS_MBOX2
+ *  31: PCI Bus wrote data to LCS_MBOX3
+ */
+#define PLX_PEX8311_PCI_LCS_INTCSR  0x68
+#define INTCSR_INTERNAL_PCI_WIRE    BIT(8)
+#define INTCSR_LOCAL_INPUT          BIT(11)
+
 /**
  * struct idio_24_gpio_reg - GPIO device registers structure
  * @out0_7:	Read: FET Outputs 0-7
@@ -92,6 +133,7 @@
 struct idio_24_gpio {
 	struct gpio_chip chip;
 	raw_spinlock_t lock;
+	__u8 __iomem *plx;
 	struct idio_24_gpio_reg __iomem *reg;
 	unsigned long irq_mask;
 };
@@ -360,13 +402,13 @@
 	unsigned long flags;
 	const unsigned long bit_offset = irqd_to_hwirq(data) - 24;
 	unsigned char new_irq_mask;
-	const unsigned long bank_offset = bit_offset/8 * 8;
+	const unsigned long bank_offset = bit_offset / 8;
 	unsigned char cos_enable_state;
 
 	raw_spin_lock_irqsave(&idio24gpio->lock, flags);
 
-	idio24gpio->irq_mask &= BIT(bit_offset);
-	new_irq_mask = idio24gpio->irq_mask >> bank_offset;
+	idio24gpio->irq_mask &= ~BIT(bit_offset);
+	new_irq_mask = idio24gpio->irq_mask >> bank_offset * 8;
 
 	if (!new_irq_mask) {
 		cos_enable_state = ioread8(&idio24gpio->reg->cos_enable);
@@ -389,12 +431,12 @@
 	unsigned long flags;
 	unsigned char prev_irq_mask;
 	const unsigned long bit_offset = irqd_to_hwirq(data) - 24;
-	const unsigned long bank_offset = bit_offset/8 * 8;
+	const unsigned long bank_offset = bit_offset / 8;
 	unsigned char cos_enable_state;
 
 	raw_spin_lock_irqsave(&idio24gpio->lock, flags);
 
-	prev_irq_mask = idio24gpio->irq_mask >> bank_offset;
+	prev_irq_mask = idio24gpio->irq_mask >> bank_offset * 8;
 	idio24gpio->irq_mask |= BIT(bit_offset);
 
 	if (!prev_irq_mask) {
@@ -481,6 +523,7 @@
 	struct device *const dev = &pdev->dev;
 	struct idio_24_gpio *idio24gpio;
 	int err;
+	const size_t pci_plx_bar_index = 1;
 	const size_t pci_bar_index = 2;
 	const char *const name = pci_name(pdev);
 
@@ -494,12 +537,13 @@
 		return err;
 	}
 
-	err = pcim_iomap_regions(pdev, BIT(pci_bar_index), name);
+	err = pcim_iomap_regions(pdev, BIT(pci_plx_bar_index) | BIT(pci_bar_index), name);
 	if (err) {
 		dev_err(dev, "Unable to map PCI I/O addresses (%d)\n", err);
 		return err;
 	}
 
+	idio24gpio->plx = pcim_iomap_table(pdev)[pci_plx_bar_index];
 	idio24gpio->reg = pcim_iomap_table(pdev)[pci_bar_index];
 
 	idio24gpio->chip.label = name;
@@ -520,6 +564,12 @@
 
 	/* Software board reset */
 	iowrite8(0, &idio24gpio->reg->soft_reset);
+	/*
+	 * enable PLX PEX8311 internal PCI wire interrupt and local interrupt
+	 * input
+	 */
+	iowrite8((INTCSR_INTERNAL_PCI_WIRE | INTCSR_LOCAL_INPUT) >> 8,
+		 idio24gpio->plx + PLX_PEX8311_PCI_LCS_INTCSR + 1);
 
 	err = devm_gpiochip_add_data(dev, &idio24gpio->chip, idio24gpio);
 	if (err) {
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-pmic-eic-sprd.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-pmic-eic-sprd.c
@@ -338,6 +338,7 @@
 	pmic_eic->chip.set_config = sprd_pmic_eic_set_config;
 	pmic_eic->chip.set = sprd_pmic_eic_set;
 	pmic_eic->chip.get = sprd_pmic_eic_get;
+	pmic_eic->chip.can_sleep = true;
 
 	pmic_eic->intc.name = dev_name(&pdev->dev);
 	pmic_eic->intc.irq_mask = sprd_pmic_eic_irq_mask;
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-pxa.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-pxa.c
@@ -243,6 +243,7 @@
 	switch (gpio_type) {
 	case PXA3XX_GPIO:
 	case MMP2_GPIO:
+	case MMP_GPIO:
 		return false;
 
 	default:
@@ -663,8 +664,8 @@
 	pchip->irq1 = irq1;
 
 	gpio_reg_base = devm_platform_ioremap_resource(pdev, 0);
-	if (!gpio_reg_base)
-		return -EINVAL;
+	if (IS_ERR(gpio_reg_base))
+		return PTR_ERR(gpio_reg_base);
 
 	clk = clk_get(&pdev->dev, NULL);
 	if (IS_ERR(clk)) {
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-rcar.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-rcar.c
@@ -250,8 +250,10 @@
 	int error;
 
 	error = pm_runtime_get_sync(p->dev);
-	if (error < 0)
+	if (error < 0) {
+		pm_runtime_put(p->dev);
 		return error;
+	}
 
 	error = pinctrl_gpio_request(chip->base + offset);
 	if (error)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-siox.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-siox.c
@@ -245,6 +245,7 @@
 	girq->chip = &ddata->ichip;
 	girq->default_type = IRQ_TYPE_NONE;
 	girq->handler = handle_level_irq;
+	girq->threaded = true;
 
 	ret = devm_gpiochip_add_data(dev, &ddata->gchip, NULL);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-sprd.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-sprd.c
@@ -149,17 +149,20 @@
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 1);
+		sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
 		irq_set_handler_locked(data, handle_edge_irq);
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IEV, 0);
+		sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
 		irq_set_handler_locked(data, handle_edge_irq);
 		break;
 	case IRQ_TYPE_EDGE_BOTH:
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IS, 0);
 		sprd_gpio_update(chip, offset, SPRD_GPIO_IBE, 1);
+		sprd_gpio_update(chip, offset, SPRD_GPIO_IC, 1);
 		irq_set_handler_locked(data, handle_edge_irq);
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-tb10x.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-tb10x.c
@@ -195,7 +195,7 @@
 				handle_edge_irq, IRQ_NOREQUEST, IRQ_NOPROBE,
 				IRQ_GC_INIT_MASK_CACHE);
 		if (ret)
-			return ret;
+			goto err_remove_domain;
 
 		gc = tb10x_gpio->domain->gc->gc[0];
 		gc->reg_base                         = tb10x_gpio->base;
@@ -209,6 +209,10 @@
 	}
 
 	return 0;
+
+err_remove_domain:
+	irq_domain_remove(tb10x_gpio->domain);
+	return ret;
 }
 
 static int tb10x_gpio_remove(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-tc3589x.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-tc3589x.c
@@ -209,7 +209,7 @@
 				continue;
 
 			tc3589x_gpio->oldregs[i][j] = new;
-			tc3589x_reg_write(tc3589x, regmap[i] + j * 8, new);
+			tc3589x_reg_write(tc3589x, regmap[i] + j, new);
 		}
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-tegra.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-tegra.c
@@ -365,6 +365,7 @@
 	struct tegra_gpio_info *tgi = bank->tgi;
 	unsigned int gpio = d->hwirq;
 
+	tegra_gpio_irq_mask(d);
 	gpiochip_unlock_as_irq(&tgi->gc, gpio);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-tegra186.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-tegra186.c
@@ -234,9 +234,12 @@
 	return offset + pin;
 }
 
+#define to_tegra_gpio(x) container_of((x), struct tegra_gpio, gpio)
+
 static void tegra186_irq_ack(struct irq_data *data)
 {
-	struct tegra_gpio *gpio = irq_data_get_irq_chip_data(data);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(data);
+	struct tegra_gpio *gpio = to_tegra_gpio(gc);
 	void __iomem *base;
 
 	base = tegra186_gpio_get_base(gpio, data->hwirq);
@@ -248,7 +251,8 @@
 
 static void tegra186_irq_mask(struct irq_data *data)
 {
-	struct tegra_gpio *gpio = irq_data_get_irq_chip_data(data);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(data);
+	struct tegra_gpio *gpio = to_tegra_gpio(gc);
 	void __iomem *base;
 	u32 value;
 
@@ -263,7 +267,8 @@
 
 static void tegra186_irq_unmask(struct irq_data *data)
 {
-	struct tegra_gpio *gpio = irq_data_get_irq_chip_data(data);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(data);
+	struct tegra_gpio *gpio = to_tegra_gpio(gc);
 	void __iomem *base;
 	u32 value;
 
@@ -278,7 +283,8 @@
 
 static int tegra186_irq_set_type(struct irq_data *data, unsigned int type)
 {
-	struct tegra_gpio *gpio = irq_data_get_irq_chip_data(data);
+	struct gpio_chip *gc = irq_data_get_irq_chip_data(data);
+	struct tegra_gpio *gpio = to_tegra_gpio(gc);
 	void __iomem *base;
 	u32 value;
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-thunderx.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-thunderx.c
@@ -53,6 +53,7 @@
 struct thunderx_gpio {
 	struct gpio_chip	chip;
 	u8 __iomem		*register_base;
+	struct irq_domain	*irqd;
 	struct msix_entry	*msix_entries;	/* per line MSI-X */
 	struct thunderx_line	*line_entries;	/* per line irq info */
 	raw_spinlock_t		lock;
@@ -282,60 +283,54 @@
 	}
 }
 
-static void thunderx_gpio_irq_ack(struct irq_data *d)
+static void thunderx_gpio_irq_ack(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_INTR,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static void thunderx_gpio_irq_mask(struct irq_data *d)
+static void thunderx_gpio_irq_mask(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_ENA_W1C,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static void thunderx_gpio_irq_mask_ack(struct irq_data *d)
+static void thunderx_gpio_irq_mask_ack(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_ENA_W1C | GPIO_INTR_INTR,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static void thunderx_gpio_irq_unmask(struct irq_data *d)
+static void thunderx_gpio_irq_unmask(struct irq_data *data)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
 
 	writeq(GPIO_INTR_ENA_W1S,
-	       txgpio->register_base + intr_reg(irqd_to_hwirq(d)));
+	       txline->txgpio->register_base + intr_reg(txline->line));
 }
 
-static int thunderx_gpio_irq_set_type(struct irq_data *d,
+static int thunderx_gpio_irq_set_type(struct irq_data *data,
 				      unsigned int flow_type)
 {
-	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
-	struct thunderx_line *txline =
-		&txgpio->line_entries[irqd_to_hwirq(d)];
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
+	struct thunderx_gpio *txgpio = txline->txgpio;
 	u64 bit_cfg;
 
-	irqd_set_trigger_type(d, flow_type);
+	irqd_set_trigger_type(data, flow_type);
 
 	bit_cfg = txline->fil_bits | GPIO_BIT_CFG_INT_EN;
 
 	if (flow_type & IRQ_TYPE_EDGE_BOTH) {
-		irq_set_handler_locked(d, handle_fasteoi_ack_irq);
+		irq_set_handler_locked(data, handle_fasteoi_ack_irq);
 		bit_cfg |= GPIO_BIT_CFG_INT_TYPE;
 	} else {
-		irq_set_handler_locked(d, handle_fasteoi_mask_irq);
+		irq_set_handler_locked(data, handle_fasteoi_mask_irq);
 	}
 
 	raw_spin_lock(&txgpio->lock);
@@ -364,6 +359,33 @@
 	irq_chip_disable_parent(data);
 }
 
+static int thunderx_gpio_irq_request_resources(struct irq_data *data)
+{
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
+	struct thunderx_gpio *txgpio = txline->txgpio;
+	int r;
+
+	r = gpiochip_lock_as_irq(&txgpio->chip, txline->line);
+	if (r)
+		return r;
+
+	r = irq_chip_request_resources_parent(data);
+	if (r)
+		gpiochip_unlock_as_irq(&txgpio->chip, txline->line);
+
+	return r;
+}
+
+static void thunderx_gpio_irq_release_resources(struct irq_data *data)
+{
+	struct thunderx_line *txline = irq_data_get_irq_chip_data(data);
+	struct thunderx_gpio *txgpio = txline->txgpio;
+
+	irq_chip_release_resources_parent(data);
+
+	gpiochip_unlock_as_irq(&txgpio->chip, txline->line);
+}
+
 /*
  * Interrupts are chained from underlying MSI-X vectors.  We have
  * these irq_chip functions to be able to handle level triggering
@@ -380,22 +402,48 @@
 	.irq_unmask		= thunderx_gpio_irq_unmask,
 	.irq_eoi		= irq_chip_eoi_parent,
 	.irq_set_affinity	= irq_chip_set_affinity_parent,
+	.irq_request_resources	= thunderx_gpio_irq_request_resources,
+	.irq_release_resources	= thunderx_gpio_irq_release_resources,
 	.irq_set_type		= thunderx_gpio_irq_set_type,
 
 	.flags			= IRQCHIP_SET_TYPE_MASKED
 };
 
-static int thunderx_gpio_child_to_parent_hwirq(struct gpio_chip *gc,
-					       unsigned int child,
-					       unsigned int child_type,
-					       unsigned int *parent,
-					       unsigned int *parent_type)
+static int thunderx_gpio_irq_translate(struct irq_domain *d,
+				       struct irq_fwspec *fwspec,
+				       irq_hw_number_t *hwirq,
+				       unsigned int *type)
+{
+	struct thunderx_gpio *txgpio = d->host_data;
+
+	if (WARN_ON(fwspec->param_count < 2))
+		return -EINVAL;
+	if (fwspec->param[0] >= txgpio->chip.ngpio)
+		return -EINVAL;
+	*hwirq = fwspec->param[0];
+	*type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK;
+	return 0;
+}
+
+static int thunderx_gpio_irq_alloc(struct irq_domain *d, unsigned int virq,
+				   unsigned int nr_irqs, void *arg)
 {
-	struct thunderx_gpio *txgpio = gpiochip_get_data(gc);
+	struct thunderx_line *txline = arg;
 
-	*parent = txgpio->base_msi + (2 * child);
-	*parent_type = IRQ_TYPE_LEVEL_HIGH;
-	return 0;
+	return irq_domain_set_hwirq_and_chip(d, virq, txline->line,
+					     &thunderx_gpio_irq_chip, txline);
+}
+
+static const struct irq_domain_ops thunderx_gpio_irqd_ops = {
+	.alloc		= thunderx_gpio_irq_alloc,
+	.translate	= thunderx_gpio_irq_translate
+};
+
+static int thunderx_gpio_to_irq(struct gpio_chip *chip, unsigned int offset)
+{
+	struct thunderx_gpio *txgpio = gpiochip_get_data(chip);
+
+	return irq_find_mapping(txgpio->irqd, offset);
 }
 
 static int thunderx_gpio_probe(struct pci_dev *pdev,
@@ -405,7 +453,6 @@
 	struct device *dev = &pdev->dev;
 	struct thunderx_gpio *txgpio;
 	struct gpio_chip *chip;
-	struct gpio_irq_chip *girq;
 	int ngpio, i;
 	int err = 0;
 
@@ -450,8 +497,8 @@
 	}
 
 	txgpio->msix_entries = devm_kcalloc(dev,
-					    ngpio, sizeof(struct msix_entry),
-					    GFP_KERNEL);
+					  ngpio, sizeof(struct msix_entry),
+					  GFP_KERNEL);
 	if (!txgpio->msix_entries) {
 		err = -ENOMEM;
 		goto out;
@@ -492,6 +539,27 @@
 	if (err < 0)
 		goto out;
 
+	/*
+	 * Push GPIO specific irqdomain on hierarchy created as a side
+	 * effect of the pci_enable_msix()
+	 */
+	txgpio->irqd = irq_domain_create_hierarchy(irq_get_irq_data(txgpio->msix_entries[0].vector)->domain,
+						   0, 0, of_node_to_fwnode(dev->of_node),
+						   &thunderx_gpio_irqd_ops, txgpio);
+	if (!txgpio->irqd) {
+		err = -ENOMEM;
+		goto out;
+	}
+
+	/* Push on irq_data and the domain for each line. */
+	for (i = 0; i < ngpio; i++) {
+		err = irq_domain_push_irq(txgpio->irqd,
+					  txgpio->msix_entries[i].vector,
+					  &txgpio->line_entries[i]);
+		if (err < 0)
+			dev_err(dev, "irq_domain_push_irq: %d\n", err);
+	}
+
 	chip->label = KBUILD_MODNAME;
 	chip->parent = dev;
 	chip->owner = THIS_MODULE;
@@ -506,28 +574,11 @@
 	chip->set = thunderx_gpio_set;
 	chip->set_multiple = thunderx_gpio_set_multiple;
 	chip->set_config = thunderx_gpio_set_config;
-	girq = &chip->irq;
-	girq->chip = &thunderx_gpio_irq_chip;
-	girq->fwnode = of_node_to_fwnode(dev->of_node);
-	girq->parent_domain =
-		irq_get_irq_data(txgpio->msix_entries[0].vector)->domain;
-	girq->child_to_parent_hwirq = thunderx_gpio_child_to_parent_hwirq;
-	girq->handler = handle_bad_irq;
-	girq->default_type = IRQ_TYPE_NONE;
-
+	chip->to_irq = thunderx_gpio_to_irq;
 	err = devm_gpiochip_add_data(dev, chip, txgpio);
 	if (err)
 		goto out;
 
-	/* Push on irq_data and the domain for each line. */
-	for (i = 0; i < ngpio; i++) {
-		err = irq_domain_push_irq(chip->irq.domain,
-					  txgpio->msix_entries[i].vector,
-					  chip);
-		if (err < 0)
-			dev_err(dev, "irq_domain_push_irq: %d\n", err);
-	}
-
 	dev_info(dev, "ThunderX GPIO: %d lines with base %d.\n",
 		 ngpio, chip->base);
 	return 0;
@@ -542,10 +593,10 @@
 	struct thunderx_gpio *txgpio = pci_get_drvdata(pdev);
 
 	for (i = 0; i < txgpio->chip.ngpio; i++)
-		irq_domain_pop_irq(txgpio->chip.irq.domain,
+		irq_domain_pop_irq(txgpio->irqd,
 				   txgpio->msix_entries[i].vector);
 
-	irq_domain_remove(txgpio->chip.irq.domain);
+	irq_domain_remove(txgpio->irqd);
 
 	pci_set_drvdata(pdev, NULL);
 }
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-timberdale.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-timberdale.c
@@ -43,9 +43,10 @@
 	unsigned offset, bool enabled)
 {
 	struct timbgpio *tgpio = gpiochip_get_data(gpio);
+	unsigned long flags;
 	u32 reg;
 
-	spin_lock(&tgpio->lock);
+	spin_lock_irqsave(&tgpio->lock, flags);
 	reg = ioread32(tgpio->membase + offset);
 
 	if (enabled)
@@ -54,7 +55,7 @@
 		reg &= ~(1 << index);
 
 	iowrite32(reg, tgpio->membase + offset);
-	spin_unlock(&tgpio->lock);
+	spin_unlock_irqrestore(&tgpio->lock, flags);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-tps68470.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-tps68470.c
@@ -91,13 +91,13 @@
 	struct tps68470_gpio_data *tps68470_gpio = gpiochip_get_data(gc);
 	struct regmap *regmap = tps68470_gpio->tps68470_regmap;
 
+	/* Set the initial value */
+	tps68470_gpio_set(gc, offset, value);
+
 	/* rest are always outputs */
 	if (offset >= TPS68470_N_REGULAR_GPIO)
 		return 0;
 
-	/* Set the initial value */
-	tps68470_gpio_set(gc, offset, value);
-
 	return regmap_update_bits(regmap, TPS68470_GPIO_CTL_REG_A(offset),
 				 TPS68470_GPIO_MODE_MASK,
 				 TPS68470_GPIO_MODE_OUT_CMOS);
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-tqmx86.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-tqmx86.c
@@ -235,8 +235,8 @@
 	struct resource *res;
 	int ret, irq;
 
-	irq = platform_get_irq(pdev, 0);
-	if (irq < 0)
+	irq = platform_get_irq_optional(pdev, 0);
+	if (irq < 0 && irq != -ENXIO)
 		return irq;
 
 	res = platform_get_resource(pdev, IORESOURCE_IO, 0);
@@ -275,7 +275,7 @@
 
 	pm_runtime_enable(&pdev->dev);
 
-	if (irq) {
+	if (irq > 0) {
 		struct irq_chip *irq_chip = &gpio->irq_chip;
 		u8 irq_status;
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-ts4900.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-ts4900.c
@@ -1,7 +1,7 @@
 /*
  * Digital I/O driver for Technologic Systems I2C FPGA Core
  *
- * Copyright (C) 2015 Technologic Systems
+ * Copyright (C) 2015, 2018 Technologic Systems
  * Copyright (C) 2016 Savoir-Faire Linux
  *
  * This program is free software; you can redistribute it and/or
@@ -52,19 +52,33 @@
 {
 	struct ts4900_gpio_priv *priv = gpiochip_get_data(chip);
 
-	/*
-	 * This will clear the output enable bit, the other bits are
-	 * dontcare when this is cleared
+	/* Only clear the OE bit here, requires a RMW. Prevents potential issue
+	 * with OE and data getting to the physical pin at different times.
 	 */
-	return regmap_write(priv->regmap, offset, 0);
+	return regmap_update_bits(priv->regmap, offset, TS4900_GPIO_OE, 0);
 }
 
 static int ts4900_gpio_direction_output(struct gpio_chip *chip,
 					unsigned int offset, int value)
 {
 	struct ts4900_gpio_priv *priv = gpiochip_get_data(chip);
+	unsigned int reg;
 	int ret;
 
+	/* If changing from an input to an output, we need to first set the
+	 * proper data bit to what is requested and then set OE bit. This
+	 * prevents a glitch that can occur on the IO line
+	 */
+	regmap_read(priv->regmap, offset, &reg);
+	if (!(reg & TS4900_GPIO_OE)) {
+		if (value)
+			reg = TS4900_GPIO_OUT;
+		else
+			reg &= ~TS4900_GPIO_OUT;
+
+		regmap_write(priv->regmap, offset, reg);
+	}
+
 	if (value)
 		ret = regmap_write(priv->regmap, offset, TS4900_GPIO_OE |
 							 TS4900_GPIO_OUT);
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-uniphier.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-uniphier.c
@@ -188,7 +188,7 @@
 
 	uniphier_gpio_reg_update(priv, UNIPHIER_GPIO_IRQ_EN, mask, 0);
 
-	return irq_chip_mask_parent(data);
+	irq_chip_mask_parent(data);
 }
 
 static void uniphier_gpio_irq_unmask(struct irq_data *data)
@@ -198,7 +198,7 @@
 
 	uniphier_gpio_reg_update(priv, UNIPHIER_GPIO_IRQ_EN, mask, mask);
 
-	return irq_chip_unmask_parent(data);
+	irq_chip_unmask_parent(data);
 }
 
 static int uniphier_gpio_irq_set_type(struct irq_data *data, unsigned int type)
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-vf610.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-vf610.c
@@ -125,12 +125,16 @@
 {
 	struct vf610_gpio_port *port = gpiochip_get_data(chip);
 	unsigned long mask = BIT(gpio);
-
-	if (port->sdata && port->sdata->have_paddr)
-		vf610_gpio_writel(mask, port->gpio_base + GPIO_PDDR);
+	u32 val;
 
 	vf610_gpio_set(chip, gpio, value);
 
+	if (port->sdata && port->sdata->have_paddr) {
+		val = vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
+		val |= mask;
+		vf610_gpio_writel(val, port->gpio_base + GPIO_PDDR);
+	}
+
 	return pinctrl_gpio_direction_output(chip->base + gpio);
 }
 
@@ -300,7 +304,7 @@
 	gc = &port->gc;
 	gc->of_node = np;
 	gc->parent = dev;
-	gc->label = "vf610-gpio";
+	gc->label = dev_name(dev);
 	gc->ngpio = VF610_GPIO_PER_PORT;
 	gc->base = of_alias_get_id(np, "gpio") * VF610_GPIO_PER_PORT;
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-vr41xx.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-vr41xx.c
@@ -217,8 +217,6 @@
 	printk(KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n",
 	       maskl, pendl, maskh, pendh);
 
-	atomic_inc(&irq_err_count);
-
 	return -EINVAL;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-winbond.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-winbond.c
@@ -385,12 +385,13 @@
 	unsigned long *base = gpiochip_get_data(gc);
 	const struct winbond_gpio_info *info;
 	bool val;
+	int ret;
 
 	winbond_gpio_get_info(&offset, &info);
 
-	val = winbond_sio_enter(*base);
-	if (val)
-		return val;
+	ret = winbond_sio_enter(*base);
+	if (ret)
+		return ret;
 
 	winbond_sio_select_logical(*base, info->dev);
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-xilinx.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-xilinx.c
@@ -147,9 +147,10 @@
 	for (i = 0; i < gc->ngpio; i++) {
 		if (*mask == 0)
 			break;
+		/* Once finished with an index write it out to the register */
 		if (index !=  xgpio_index(chip, i)) {
 			xgpio_writereg(chip->regs + XGPIO_DATA_OFFSET +
-				       xgpio_regoffset(chip, i),
+				       index * XGPIO_CHANNEL_OFFSET,
 				       chip->gpio_state[index]);
 			spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
 			index =  xgpio_index(chip, i);
@@ -165,7 +166,7 @@
 	}
 
 	xgpio_writereg(chip->regs + XGPIO_DATA_OFFSET +
-		       xgpio_regoffset(chip, i), chip->gpio_state[index]);
+		       index * XGPIO_CHANNEL_OFFSET, chip->gpio_state[index]);
 
 	spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
 }
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-xtensa.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-xtensa.c
@@ -44,15 +44,14 @@
 	unsigned long flags;
 
 	local_irq_save(flags);
-	RSR_CPENABLE(*cpenable);
-	WSR_CPENABLE(*cpenable | BIT(XCHAL_CP_ID_XTIOP));
-
+	*cpenable = xtensa_get_sr(cpenable);
+	xtensa_set_sr(*cpenable | BIT(XCHAL_CP_ID_XTIOP), cpenable);
 	return flags;
 }
 
 static inline void disable_cp(unsigned long flags, unsigned long cpenable)
 {
-	WSR_CPENABLE(cpenable);
+	xtensa_set_sr(cpenable, cpenable);
 	local_irq_restore(flags);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpio-zynq.c
+++ linux-ein-5.4.0/drivers/gpio/gpio-zynq.c
@@ -556,7 +556,7 @@
 	struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
 	int ret;
 
-	ret = pm_runtime_get_sync(chip->parent);
+	ret = pm_runtime_resume_and_get(chip->parent);
 	if (ret < 0)
 		return ret;
 
@@ -681,6 +681,8 @@
 	unsigned int bank_num;
 
 	for (bank_num = 0; bank_num < gpio->p_data->max_bank; bank_num++) {
+		writel_relaxed(ZYNQ_GPIO_IXR_DISABLE_ALL, gpio->base_addr +
+				ZYNQ_GPIO_INTDIS_OFFSET(bank_num));
 		writel_relaxed(gpio->context.datalsw[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_DATA_LSW_OFFSET(bank_num));
@@ -690,9 +692,6 @@
 		writel_relaxed(gpio->context.dirm[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_DIRM_OFFSET(bank_num));
-		writel_relaxed(gpio->context.int_en[bank_num],
-			       gpio->base_addr +
-			       ZYNQ_GPIO_INTEN_OFFSET(bank_num));
 		writel_relaxed(gpio->context.int_type[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_INTTYPE_OFFSET(bank_num));
@@ -702,6 +701,9 @@
 		writel_relaxed(gpio->context.int_any[bank_num],
 			       gpio->base_addr +
 			       ZYNQ_GPIO_INTANY_OFFSET(bank_num));
+		writel_relaxed(~(gpio->context.int_en[bank_num]),
+			       gpio->base_addr +
+			       ZYNQ_GPIO_INTEN_OFFSET(bank_num));
 	}
 }
 
@@ -882,7 +884,7 @@
 
 	pm_runtime_set_active(&pdev->dev);
 	pm_runtime_enable(&pdev->dev);
-	ret = pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_resume_and_get(&pdev->dev);
 	if (ret < 0)
 		goto err_pm_dis;
 
@@ -936,8 +938,11 @@
 static int zynq_gpio_remove(struct platform_device *pdev)
 {
 	struct zynq_gpio *gpio = platform_get_drvdata(pdev);
+	int ret;
 
-	pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_get_sync(&pdev->dev);
+	if (ret < 0)
+		dev_warn(&pdev->dev, "pm_runtime_get_sync() Failed\n");
 	gpiochip_remove(&gpio->chip);
 	clk_disable_unprepare(gpio->clk);
 	device_set_wakeup_capable(&pdev->dev, 0);
--- linux-ein-5.4.0.orig/drivers/gpio/gpiolib-acpi.c
+++ linux-ein-5.4.0/drivers/gpio/gpiolib-acpi.c
@@ -26,6 +26,17 @@
 MODULE_PARM_DESC(run_edge_events_on_boot,
 		 "Run edge _AEI event-handlers at boot: 0=no, 1=yes, -1=auto");
 
+static char *ignore_wake;
+module_param(ignore_wake, charp, 0444);
+MODULE_PARM_DESC(ignore_wake,
+		 "controller@pin combos on which to ignore the ACPI wake flag "
+		 "ignore_wake=controller@pin[,controller@pin[,...]]");
+
+struct acpi_gpiolib_dmi_quirk {
+	bool no_edge_events_on_boot;
+	char *ignore_wake;
+};
+
 /**
  * struct acpi_gpio_event - ACPI GPIO event handler data
  *
@@ -163,7 +174,7 @@
 	int ret, value;
 
 	ret = request_threaded_irq(event->irq, NULL, event->handler,
-				   event->irqflags, "ACPI:Event", event);
+				   event->irqflags | IRQF_ONESHOT, "ACPI:Event", event);
 	if (ret) {
 		dev_err(acpi_gpio->chip->parent,
 			"Failed to setup interrupt handler for %d\n",
@@ -194,6 +205,57 @@
 		acpi_gpiochip_request_irq(acpi_gpio, event);
 }
 
+static bool acpi_gpio_in_ignore_list(const char *controller_in, int pin_in)
+{
+	const char *controller, *pin_str;
+	int len, pin;
+	char *endp;
+
+	controller = ignore_wake;
+	while (controller) {
+		pin_str = strchr(controller, '@');
+		if (!pin_str)
+			goto err;
+
+		len = pin_str - controller;
+		if (len == strlen(controller_in) &&
+		    strncmp(controller, controller_in, len) == 0) {
+			pin = simple_strtoul(pin_str + 1, &endp, 10);
+			if (*endp != 0 && *endp != ',')
+				goto err;
+
+			if (pin == pin_in)
+				return true;
+		}
+
+		controller = strchr(controller, ',');
+		if (controller)
+			controller++;
+	}
+
+	return false;
+err:
+	pr_err_once("Error invalid value for gpiolib_acpi.ignore_wake: %s\n",
+		    ignore_wake);
+	return false;
+}
+
+static bool acpi_gpio_irq_is_wake(struct device *parent,
+				  struct acpi_resource_gpio *agpio)
+{
+	int pin = agpio->pin_table[0];
+
+	if (agpio->wake_capable != ACPI_WAKE_CAPABLE)
+		return false;
+
+	if (acpi_gpio_in_ignore_list(dev_name(parent), pin)) {
+		dev_info(parent, "Ignoring wakeup on pin %d\n", pin);
+		return false;
+	}
+
+	return true;
+}
+
 static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
 					     void *context)
 {
@@ -213,8 +275,8 @@
 	pin = agpio->pin_table[0];
 
 	if (pin <= 255) {
-		char ev_name[5];
-		sprintf(ev_name, "_%c%02hhX",
+		char ev_name[8];
+		sprintf(ev_name, "_%c%02X",
 			agpio->triggering == ACPI_EDGE_SENSITIVE ? 'E' : 'L',
 			pin);
 		if (ACPI_SUCCESS(acpi_get_handle(handle, ev_name, &evt_handle)))
@@ -274,7 +336,7 @@
 	event->handle = evt_handle;
 	event->handler = handler;
 	event->irq = irq;
-	event->irq_is_wake = agpio->wake_capable == ACPI_WAKE_CAPABLE;
+	event->irq_is_wake = acpi_gpio_irq_is_wake(chip->parent, agpio);
 	event->pin = pin;
 	event->desc = desc;
 
@@ -891,10 +953,17 @@
 			irq_flags = acpi_dev_get_irq_type(info.triggering,
 							  info.polarity);
 
-			/* Set type if specified and different than the current one */
-			if (irq_flags != IRQ_TYPE_NONE &&
-			    irq_flags != irq_get_trigger_type(irq))
-				irq_set_irq_type(irq, irq_flags);
+			/*
+			 * If the IRQ is not already in use then set type
+			 * if specified and different than the current one.
+			 */
+			if (can_request_irq(irq, irq_flags)) {
+				if (irq_flags != IRQ_TYPE_NONE &&
+				    irq_flags != irq_get_trigger_type(irq))
+					irq_set_irq_type(irq, irq_flags);
+			} else {
+				dev_dbg(&adev->dev, "IRQ %d already in use\n", irq);
+			}
 
 			return irq;
 		}
@@ -1302,7 +1371,7 @@
 /* We must use _sync so that this runs after the first deferred_probe run */
 late_initcall_sync(acpi_gpio_handle_deferred_request_irqs);
 
-static const struct dmi_system_id run_edge_events_on_boot_blacklist[] = {
+static const struct dmi_system_id gpiolib_acpi_quirks[] = {
 	{
 		/*
 		 * The Minix Neo Z83-4 has a micro-USB-B id-pin handler for
@@ -1312,7 +1381,10 @@
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "MINIX"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "Z83-4"),
-		}
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.no_edge_events_on_boot = true,
+		},
 	},
 	{
 		/*
@@ -1324,20 +1396,98 @@
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Wortmann_AG"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "TERRA_PAD_1061"),
-		}
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.no_edge_events_on_boot = true,
+		},
+	},
+	{
+		/*
+		 * The Dell Venue 10 Pro 5055, with Bay Trail SoC + TI PMIC uses an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FFC:02 pin 12, causing spurious wakeups.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Venue 10 Pro 5055"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FC:02@12",
+		},
+	},
+	{
+		/*
+		 * HP X2 10 models with Cherry Trail SoC + TI PMIC use an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FF:01 pin 0, causing spurious wakeups.
+		 * When suspending by closing the LID, the power to the USB
+		 * keyboard is turned off, causing INT0002 ACPI events to
+		 * trigger once the XHCI controller notices the keyboard is
+		 * gone. So INT0002 events cause spurious wakeups too. Ignoring
+		 * EC wakes breaks wakeup when opening the lid, the user needs
+		 * to press the power-button to wakeup the system. The
+		 * alternative is suspend simply not working, which is worse.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP x2 Detachable 10-p0XX"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FF:01@0,INT0002:00@2",
+		},
+	},
+	{
+		/*
+		 * HP X2 10 models with Bay Trail SoC + AXP288 PMIC use an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FC:02 pin 28, causing spurious wakeups.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
+			DMI_MATCH(DMI_BOARD_NAME, "815D"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FC:02@28",
+		},
+	},
+	{
+		/*
+		 * HP X2 10 models with Cherry Trail SoC + AXP288 PMIC use an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FF:01 pin 0, causing spurious wakeups.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
+			DMI_MATCH(DMI_BOARD_NAME, "813E"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FF:01@0",
+		},
 	},
 	{} /* Terminating entry */
 };
 
 static int acpi_gpio_setup_params(void)
 {
+	const struct acpi_gpiolib_dmi_quirk *quirk = NULL;
+	const struct dmi_system_id *id;
+
+	id = dmi_first_match(gpiolib_acpi_quirks);
+	if (id)
+		quirk = id->driver_data;
+
 	if (run_edge_events_on_boot < 0) {
-		if (dmi_check_system(run_edge_events_on_boot_blacklist))
+		if (quirk && quirk->no_edge_events_on_boot)
 			run_edge_events_on_boot = 0;
 		else
 			run_edge_events_on_boot = 1;
 	}
 
+	if (ignore_wake == NULL && quirk && quirk->ignore_wake)
+		ignore_wake = quirk->ignore_wake;
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpio/gpiolib-of.c
+++ linux-ein-5.4.0/drivers/gpio/gpiolib-of.c
@@ -23,6 +23,29 @@
 #include "gpiolib.h"
 #include "gpiolib-of.h"
 
+/**
+ * of_gpio_spi_cs_get_count() - special GPIO counting for SPI
+ * Some elder GPIO controllers need special quirks. Currently we handle
+ * the Freescale GPIO controller with bindings that doesn't use the
+ * established "cs-gpios" for chip selects but instead rely on
+ * "gpios" for the chip select lines. If we detect this, we redirect
+ * the counting of "cs-gpios" to count "gpios" transparent to the
+ * driver.
+ */
+int of_gpio_spi_cs_get_count(struct device *dev, const char *con_id)
+{
+	struct device_node *np = dev->of_node;
+
+	if (!IS_ENABLED(CONFIG_SPI_MASTER))
+		return 0;
+	if (!con_id || strcmp(con_id, "cs"))
+		return 0;
+	if (!of_device_is_compatible(np, "fsl,spi") &&
+	    !of_device_is_compatible(np, "aeroflexgaisler,spictrl"))
+		return 0;
+	return of_gpio_named_count(np, "gpios");
+}
+
 /*
  * This is used by external users of of_gpio_count() from <linux/of_gpio.h>
  *
@@ -35,6 +58,10 @@
 	char propname[32];
 	unsigned int i;
 
+	ret = of_gpio_spi_cs_get_count(dev, con_id);
+	if (ret > 0)
+		return ret;
+
 	for (i = 0; i < ARRAY_SIZE(gpio_suffixes); i++) {
 		if (con_id)
 			snprintf(propname, sizeof(propname), "%s-%s",
@@ -119,10 +146,6 @@
 			if (of_property_read_bool(np, "cd-inverted"))
 				*flags ^= OF_GPIO_ACTIVE_LOW;
 		}
-		if (!strcmp(propname, "wp-gpios")) {
-			if (of_property_read_bool(np, "wp-inverted"))
-				*flags ^= OF_GPIO_ACTIVE_LOW;
-		}
 	}
 	/*
 	 * Some GPIO fixed regulator quirks.
@@ -711,7 +734,8 @@
 	if (mm_gc->save_regs)
 		mm_gc->save_regs(mm_gc);
 
-	mm_gc->gc.of_node = np;
+	of_node_put(mm_gc->gc.of_node);
+	mm_gc->gc.of_node = of_node_get(np);
 
 	ret = gpiochip_add_data(gc, data);
 	if (ret)
@@ -719,6 +743,7 @@
 
 	return 0;
 err2:
+	of_node_put(np);
 	iounmap(mm_gc->regs);
 err1:
 	kfree(gc->label);
@@ -760,7 +785,7 @@
 					   i, &start);
 		of_property_read_u32_index(np, "gpio-reserved-ranges",
 					   i + 1, &count);
-		if (start >= chip->ngpio || start + count >= chip->ngpio)
+		if (start >= chip->ngpio || start + count > chip->ngpio)
 			continue;
 
 		bitmap_clear(chip->valid_mask, start, count);
@@ -882,16 +907,13 @@
 	of_node_get(chip->of_node);
 
 	ret = of_gpiochip_scan_gpios(chip);
-	if (ret) {
+	if (ret)
 		of_node_put(chip->of_node);
-		gpiochip_remove_pin_ranges(chip);
-	}
 
 	return ret;
 }
 
 void of_gpiochip_remove(struct gpio_chip *chip)
 {
-	gpiochip_remove_pin_ranges(chip);
 	of_node_put(chip->of_node);
 }
--- linux-ein-5.4.0.orig/drivers/gpio/gpiolib-sysfs.c
+++ linux-ein-5.4.0/drivers/gpio/gpiolib-sysfs.c
@@ -457,6 +457,8 @@
 	long			gpio;
 	struct gpio_desc	*desc;
 	int			status;
+	struct gpio_chip	*gc;
+	int			offset;
 
 	status = kstrtol(buf, 0, &gpio);
 	if (status < 0)
@@ -468,6 +470,12 @@
 		pr_warn("%s: invalid GPIO %ld\n", __func__, gpio);
 		return -EINVAL;
 	}
+	gc = desc->gdev->chip;
+	offset = gpio_chip_hwgpio(desc);
+	if (!gpiochip_line_is_valid(gc, offset)) {
+		pr_warn("%s: GPIO %ld masked\n", __func__, gpio);
+		return -EINVAL;
+	}
 
 	/* No extra locking here; FLAG_SYSFS just signifies that the
 	 * request and export were done by on behalf of userspace, so
--- linux-ein-5.4.0.orig/drivers/gpio/gpiolib.c
+++ linux-ein-5.4.0/drivers/gpio/gpiolib.c
@@ -220,6 +220,14 @@
 	chip = gpiod_to_chip(desc);
 	offset = gpio_chip_hwgpio(desc);
 
+	/*
+	 * Open drain emulation using input mode may incorrectly report
+	 * input here, fix that up.
+	 */
+	if (test_bit(FLAG_OPEN_DRAIN, &desc->flags) &&
+	    test_bit(FLAG_IS_OUT, &desc->flags))
+		return 0;
+
 	if (!chip->get_direction)
 		return -ENOTSUPP;
 
@@ -1444,6 +1452,7 @@
 	gpiochip_free_hogs(chip);
 	of_gpiochip_remove(chip);
 err_free_gpiochip_mask:
+	gpiochip_remove_pin_ranges(chip);
 	gpiochip_free_valid_mask(chip);
 err_remove_from_list:
 	spin_lock_irqsave(&gpio_lock, flags);
@@ -1499,8 +1508,8 @@
 	gdev->chip = NULL;
 	gpiochip_irqchip_remove(chip);
 	acpi_gpiochip_remove(chip);
-	gpiochip_remove_pin_ranges(chip);
 	of_gpiochip_remove(chip);
+	gpiochip_remove_pin_ranges(chip);
 	gpiochip_free_valid_mask(chip);
 	/*
 	 * We accept no more calls into the driver from this point, so
@@ -1915,6 +1924,7 @@
 				     parent_type);
 	chip_info(gc, "alloc_irqs_parent for %d parent hwirq %d\n",
 		  irq, parent_hwirq);
+	irq_set_lockdep_class(irq, gc->irq.lock_key, gc->irq.request_key);
 	ret = irq_domain_alloc_irqs_parent(d, irq, 1, &parent_fwspec);
 	if (ret)
 		chip_err(gc,
@@ -2184,9 +2194,16 @@
 {
 	struct gpio_chip *chip = irq_data_get_irq_chip_data(d);
 
+	/*
+	 * Since we override .irq_disable() we need to mimic the
+	 * behaviour of __irq_disable() in irq/chip.c.
+	 * First call .irq_disable() if it exists, else mimic the
+	 * behaviour of mask_irq() which calls .irq_mask() if
+	 * it exists.
+	 */
 	if (chip->irq.irq_disable)
 		chip->irq.irq_disable(d);
-	else
+	else if (chip->irq.chip->irq_mask)
 		chip->irq.chip->irq_mask(d);
 	gpiochip_disable_irq(chip, d->hwirq);
 }
@@ -3211,6 +3228,17 @@
 }
 EXPORT_SYMBOL_GPL(gpiod_is_active_low);
 
+/**
+ * gpiod_toggle_active_low - toggle whether a GPIO is active-low or not
+ * @desc: the gpio descriptor to change
+ */
+void gpiod_toggle_active_low(struct gpio_desc *desc)
+{
+	VALIDATE_DESC_VOID(desc);
+	change_bit(FLAG_ACTIVE_LOW, &desc->flags);
+}
+EXPORT_SYMBOL_GPL(gpiod_toggle_active_low);
+
 /* I/O calls are only valid after configuration completed; the relevant
  * "is this a valid GPIO" error checks should already have been done.
  *
@@ -3866,7 +3894,9 @@
 		}
 	}
 
-	if (test_bit(FLAG_IS_OUT, &desc->flags)) {
+	/* To be valid for IRQ the line needs to be input or open drain */
+	if (test_bit(FLAG_IS_OUT, &desc->flags) &&
+	    !test_bit(FLAG_OPEN_DRAIN, &desc->flags)) {
 		chip_err(chip,
 			 "%s: tried to flag a GPIO set as output for IRQ\n",
 			 __func__);
@@ -3929,7 +3959,12 @@
 
 	if (!IS_ERR(desc) &&
 	    !WARN_ON(!test_bit(FLAG_USED_AS_IRQ, &desc->flags))) {
-		WARN_ON(test_bit(FLAG_IS_OUT, &desc->flags));
+		/*
+		 * We must not be output when using IRQ UNLESS we are
+		 * open drain.
+		 */
+		WARN_ON(test_bit(FLAG_IS_OUT, &desc->flags) &&
+			!test_bit(FLAG_OPEN_DRAIN, &desc->flags));
 		set_bit(FLAG_IRQ_IS_ENABLED, &desc->flags);
 	}
 }
@@ -4320,8 +4355,9 @@
 
 		if (chip->ngpio <= p->chip_hwnum) {
 			dev_err(dev,
-				"requested GPIO %d is out of range [0..%d] for chip %s\n",
-				idx, chip->ngpio, chip->label);
+				"requested GPIO %u (%u) is out of range [0..%u] for chip %s\n",
+				idx, p->chip_hwnum, chip->ngpio - 1,
+				chip->label);
 			return ERR_PTR(-EINVAL);
 		}
 
--- linux-ein-5.4.0.orig/drivers/gpio/sgpio-aspeed.c
+++ linux-ein-5.4.0/drivers/gpio/sgpio-aspeed.c
@@ -17,7 +17,17 @@
 #include <linux/spinlock.h>
 #include <linux/string.h>
 
-#define MAX_NR_SGPIO			80
+/*
+ * MAX_NR_HW_GPIO represents the number of actual hardware-supported GPIOs (ie,
+ * slots within the clocked serial GPIO data). Since each HW GPIO is both an
+ * input and an output, we provide MAX_NR_HW_GPIO * 2 lines on our gpiochip
+ * device.
+ *
+ * We use SGPIO_OUTPUT_OFFSET to define the split between the inputs and
+ * outputs; the inputs start at line 0, the outputs start at OUTPUT_OFFSET.
+ */
+#define MAX_NR_HW_SGPIO			80
+#define SGPIO_OUTPUT_OFFSET		MAX_NR_HW_SGPIO
 
 #define ASPEED_SGPIO_CTRL		0x54
 
@@ -30,8 +40,8 @@
 	struct clk *pclk;
 	spinlock_t lock;
 	void __iomem *base;
-	uint32_t dir_in[3];
 	int irq;
+	int n_sgpio;
 };
 
 struct aspeed_sgpio_bank {
@@ -107,35 +117,73 @@
 		return gpio->base + bank->irq_regs + GPIO_IRQ_STATUS;
 	default:
 		/* acturally if code runs to here, it's an error case */
-		BUG_ON(1);
+		BUG();
 	}
 }
 
-#define GPIO_BANK(x)    ((x) >> 5)
-#define GPIO_OFFSET(x)  ((x) & 0x1f)
+#define GPIO_BANK(x)    ((x % SGPIO_OUTPUT_OFFSET) >> 5)
+#define GPIO_OFFSET(x)  ((x % SGPIO_OUTPUT_OFFSET) & 0x1f)
 #define GPIO_BIT(x)     BIT(GPIO_OFFSET(x))
 
 static const struct aspeed_sgpio_bank *to_bank(unsigned int offset)
 {
-	unsigned int bank = GPIO_BANK(offset);
+	unsigned int bank;
+
+	bank = GPIO_BANK(offset);
 
 	WARN_ON(bank >= ARRAY_SIZE(aspeed_sgpio_banks));
 	return &aspeed_sgpio_banks[bank];
 }
 
+static int aspeed_sgpio_init_valid_mask(struct gpio_chip *gc,
+		unsigned long *valid_mask, unsigned int ngpios)
+{
+	struct aspeed_sgpio *sgpio = gpiochip_get_data(gc);
+	int n = sgpio->n_sgpio;
+	int c = SGPIO_OUTPUT_OFFSET - n;
+
+	WARN_ON(ngpios < MAX_NR_HW_SGPIO * 2);
+
+	/* input GPIOs in the lower range */
+	bitmap_set(valid_mask, 0, n);
+	bitmap_clear(valid_mask, n, c);
+
+	/* output GPIOS above SGPIO_OUTPUT_OFFSET */
+	bitmap_set(valid_mask, SGPIO_OUTPUT_OFFSET, n);
+	bitmap_clear(valid_mask, SGPIO_OUTPUT_OFFSET + n, c);
+
+	return 0;
+}
+
+static void aspeed_sgpio_irq_init_valid_mask(struct gpio_chip *gc,
+		unsigned long *valid_mask, unsigned int ngpios)
+{
+	struct aspeed_sgpio *sgpio = gpiochip_get_data(gc);
+	int n = sgpio->n_sgpio;
+
+	WARN_ON(ngpios < MAX_NR_HW_SGPIO * 2);
+
+	/* input GPIOs in the lower range */
+	bitmap_set(valid_mask, 0, n);
+	bitmap_clear(valid_mask, n, ngpios - n);
+}
+
+static bool aspeed_sgpio_is_input(unsigned int offset)
+{
+	return offset < SGPIO_OUTPUT_OFFSET;
+}
+
 static int aspeed_sgpio_get(struct gpio_chip *gc, unsigned int offset)
 {
 	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
 	const struct aspeed_sgpio_bank *bank = to_bank(offset);
 	unsigned long flags;
 	enum aspeed_sgpio_reg reg;
-	bool is_input;
 	int rc = 0;
 
 	spin_lock_irqsave(&gpio->lock, flags);
 
-	is_input = gpio->dir_in[GPIO_BANK(offset)] & GPIO_BIT(offset);
-	reg = is_input ? reg_val : reg_rdata;
+	reg = aspeed_sgpio_is_input(offset) ? reg_val : reg_rdata;
 	rc = !!(ioread32(bank_reg(gpio, bank, reg)) & GPIO_BIT(offset));
 
 	spin_unlock_irqrestore(&gpio->lock, flags);
@@ -143,22 +191,31 @@
 	return rc;
 }
 
-static void sgpio_set_value(struct gpio_chip *gc, unsigned int offset, int val)
+static int sgpio_set_value(struct gpio_chip *gc, unsigned int offset, int val)
 {
 	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
 	const struct aspeed_sgpio_bank *bank = to_bank(offset);
-	void __iomem *addr;
+	void __iomem *addr_r, *addr_w;
 	u32 reg = 0;
 
-	addr = bank_reg(gpio, bank, reg_val);
-	reg = ioread32(addr);
+	if (aspeed_sgpio_is_input(offset))
+		return -EINVAL;
+
+	/* Since this is an output, read the cached value from rdata, then
+	 * update val. */
+	addr_r = bank_reg(gpio, bank, reg_rdata);
+	addr_w = bank_reg(gpio, bank, reg_val);
+
+	reg = ioread32(addr_r);
 
 	if (val)
 		reg |= GPIO_BIT(offset);
 	else
 		reg &= ~GPIO_BIT(offset);
 
-	iowrite32(reg, addr);
+	iowrite32(reg, addr_w);
+
+	return 0;
 }
 
 static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val)
@@ -175,43 +232,28 @@
 
 static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset)
 {
-	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
-	unsigned long flags;
-
-	spin_lock_irqsave(&gpio->lock, flags);
-	gpio->dir_in[GPIO_BANK(offset)] |= GPIO_BIT(offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
-
-	return 0;
+	return aspeed_sgpio_is_input(offset) ? 0 : -EINVAL;
 }
 
 static int aspeed_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val)
 {
 	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
 	unsigned long flags;
+	int rc;
 
-	spin_lock_irqsave(&gpio->lock, flags);
-
-	gpio->dir_in[GPIO_BANK(offset)] &= ~GPIO_BIT(offset);
-	sgpio_set_value(gc, offset, val);
+	/* No special action is required for setting the direction; we'll
+	 * error-out in sgpio_set_value if this isn't an output GPIO */
 
+	spin_lock_irqsave(&gpio->lock, flags);
+	rc = sgpio_set_value(gc, offset, val);
 	spin_unlock_irqrestore(&gpio->lock, flags);
 
-	return 0;
+	return rc;
 }
 
 static int aspeed_sgpio_get_direction(struct gpio_chip *gc, unsigned int offset)
 {
-	int dir_status;
-	struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
-	unsigned long flags;
-
-	spin_lock_irqsave(&gpio->lock, flags);
-	dir_status = gpio->dir_in[GPIO_BANK(offset)] & GPIO_BIT(offset);
-	spin_unlock_irqrestore(&gpio->lock, flags);
-
-	return dir_status;
-
+	return !!aspeed_sgpio_is_input(offset);
 }
 
 static void irqd_to_aspeed_sgpio_data(struct irq_data *d,
@@ -402,6 +444,7 @@
 
 	irq = &gpio->chip.irq;
 	irq->chip = &aspeed_sgpio_irqchip;
+	irq->init_valid_mask = aspeed_sgpio_irq_init_valid_mask;
 	irq->handler = handle_bad_irq;
 	irq->default_type = IRQ_TYPE_NONE;
 	irq->parent_handler = aspeed_sgpio_irq_handler;
@@ -409,17 +452,15 @@
 	irq->parents = &gpio->irq;
 	irq->num_parents = 1;
 
-	/* set IRQ settings and Enable Interrupt */
+	/* Apply default IRQ settings */
 	for (i = 0; i < ARRAY_SIZE(aspeed_sgpio_banks); i++) {
 		bank = &aspeed_sgpio_banks[i];
 		/* set falling or level-low irq */
 		iowrite32(0x00000000, bank_reg(gpio, bank, reg_irq_type0));
 		/* trigger type is edge */
 		iowrite32(0x00000000, bank_reg(gpio, bank, reg_irq_type1));
-		/* dual edge trigger mode. */
-		iowrite32(0xffffffff, bank_reg(gpio, bank, reg_irq_type2));
-		/* enable irq */
-		iowrite32(0xffffffff, bank_reg(gpio, bank, reg_irq_enable));
+		/* single edge trigger */
+		iowrite32(0x00000000, bank_reg(gpio, bank, reg_irq_type2));
 	}
 
 	return 0;
@@ -452,11 +493,12 @@
 	if (rc < 0) {
 		dev_err(&pdev->dev, "Could not read ngpios property\n");
 		return -EINVAL;
-	} else if (nr_gpios > MAX_NR_SGPIO) {
+	} else if (nr_gpios > MAX_NR_HW_SGPIO) {
 		dev_err(&pdev->dev, "Number of GPIOs exceeds the maximum of %d: %d\n",
-			MAX_NR_SGPIO, nr_gpios);
+			MAX_NR_HW_SGPIO, nr_gpios);
 		return -EINVAL;
 	}
+	gpio->n_sgpio = nr_gpios;
 
 	rc = of_property_read_u32(pdev->dev.of_node, "bus-frequency", &sgpio_freq);
 	if (rc < 0) {
@@ -497,7 +539,8 @@
 	spin_lock_init(&gpio->lock);
 
 	gpio->chip.parent = &pdev->dev;
-	gpio->chip.ngpio = nr_gpios;
+	gpio->chip.ngpio = MAX_NR_HW_SGPIO * 2;
+	gpio->chip.init_valid_mask = aspeed_sgpio_init_valid_mask;
 	gpio->chip.direction_input = aspeed_sgpio_dir_in;
 	gpio->chip.direction_output = aspeed_sgpio_dir_out;
 	gpio->chip.get_direction = aspeed_sgpio_get_direction;
@@ -509,9 +552,6 @@
 	gpio->chip.label = dev_name(&pdev->dev);
 	gpio->chip.base = -1;
 
-	/* set all SGPIO pins as input (1). */
-	memset(gpio->dir_in, 0xff, sizeof(gpio->dir_in));
-
 	aspeed_sgpio_setup_irqs(gpio, pdev);
 
 	rc = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio);
--- linux-ein-5.4.0.orig/drivers/gpu/Makefile
+++ linux-ein-5.4.0/drivers/gpu/Makefile
@@ -3,5 +3,6 @@
 # taken to initialize them in the correct order. Link order is the only way
 # to ensure this currently.
 obj-$(CONFIG_TEGRA_HOST1X)	+= host1x/
+obj-y			+= imx/
 obj-y			+= drm/ vga/
 obj-$(CONFIG_IMX_IPUV3_CORE)	+= ipu-v3/
--- linux-ein-5.4.0.orig/drivers/gpu/drm/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/Kconfig
@@ -27,6 +27,7 @@
 config DRM_MIPI_DBI
 	tristate
 	depends on DRM
+	select DRM_KMS_HELPER
 
 config DRM_MIPI_DSI
 	bool
@@ -206,6 +207,7 @@
 config DRM_RADEON
 	tristate "ATI Radeon"
 	depends on DRM && PCI && MMU
+	depends on AGP || !AGP
 	select FW_LOADER
         select DRM_KMS_HELPER
         select DRM_TTM
--- linux-ein-5.4.0.orig/drivers/gpu/drm/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/Makefile
@@ -98,7 +98,7 @@
 obj-$(CONFIG_DRM_TEGRA) += tegra/
 obj-$(CONFIG_DRM_STM) += stm/
 obj-$(CONFIG_DRM_STI) += sti/
-obj-$(CONFIG_DRM_IMX) += imx/
+obj-y 			+= imx/
 obj-$(CONFIG_DRM_INGENIC) += ingenic/
 obj-$(CONFIG_DRM_MEDIATEK) += mediatek/
 obj-$(CONFIG_DRM_MESON)	+= meson/
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/ObjectID.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/ObjectID.h
@@ -119,6 +119,7 @@
 #define CONNECTOR_OBJECT_ID_eDP                   0x14
 #define CONNECTOR_OBJECT_ID_MXM                   0x15
 #define CONNECTOR_OBJECT_ID_LVDS_eDP              0x16
+#define CONNECTOR_OBJECT_ID_USBC                  0x17
 
 /* deleted */
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -762,7 +762,7 @@
 	MAX_HWIP
 };
 
-#define HWIP_MAX_INSTANCE	8
+#define HWIP_MAX_INSTANCE	10
 
 struct amd_powerplay {
 	void *pp_handle;
@@ -813,6 +813,7 @@
 	uint8_t				*bios;
 	uint32_t			bios_size;
 	struct amdgpu_bo		*stolen_vga_memory;
+	struct amdgpu_bo		*discovery_memory;
 	uint32_t			bios_scratch_reg_offset;
 	uint32_t			bios_scratch[AMDGPU_BIOS_NUM_SCRATCH];
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
@@ -163,17 +163,28 @@
 	return 0;
 }
 
-static struct device *get_mfd_cell_dev(const char *device_name, int r)
+static int acp_genpd_add_device(struct device *dev, void *data)
 {
-	char auto_dev_name[25];
-	struct device *dev;
+	struct generic_pm_domain *gpd = data;
+	int ret;
 
-	snprintf(auto_dev_name, sizeof(auto_dev_name),
-		 "%s.%d.auto", device_name, r);
-	dev = bus_find_device_by_name(&platform_bus_type, NULL, auto_dev_name);
-	dev_info(dev, "device %s added to pm domain\n", auto_dev_name);
+	ret = pm_genpd_add_device(gpd, dev);
+	if (ret)
+		dev_err(dev, "Failed to add dev to genpd %d\n", ret);
 
-	return dev;
+	return ret;
+}
+
+static int acp_genpd_remove_device(struct device *dev, void *data)
+{
+	int ret;
+
+	ret = pm_genpd_remove_device(dev);
+	if (ret)
+		dev_err(dev, "Failed to remove dev from genpd %d\n", ret);
+
+	/* Continue to remove */
+	return 0;
 }
 
 /**
@@ -184,11 +195,10 @@
  */
 static int acp_hw_init(void *handle)
 {
-	int r, i;
+	int r;
 	uint64_t acp_base;
 	u32 val = 0;
 	u32 count = 0;
-	struct device *dev;
 	struct i2s_platform_data *i2s_pdata = NULL;
 
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -344,15 +354,10 @@
 	if (r)
 		goto failure;
 
-	for (i = 0; i < ACP_DEVS ; i++) {
-		dev = get_mfd_cell_dev(adev->acp.acp_cell[i].name, i);
-		r = pm_genpd_add_device(&adev->acp.acp_genpd->gpd, dev);
-		if (r) {
-			dev_err(dev, "Failed to add dev to genpd\n");
-			goto failure;
-		}
-	}
-
+	r = device_for_each_child(adev->acp.parent, &adev->acp.acp_genpd->gpd,
+				  acp_genpd_add_device);
+	if (r)
+		goto failure;
 
 	/* Assert Soft reset of ACP */
 	val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET);
@@ -413,10 +418,8 @@
  */
 static int acp_hw_fini(void *handle)
 {
-	int i, ret;
 	u32 val = 0;
 	u32 count = 0;
-	struct device *dev;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
 	/* return early if no ACP */
@@ -461,13 +464,8 @@
 		udelay(100);
 	}
 
-	for (i = 0; i < ACP_DEVS ; i++) {
-		dev = get_mfd_cell_dev(adev->acp.acp_cell[i].name, i);
-		ret = pm_genpd_remove_device(dev);
-		/* If removal fails, dont giveup and try rest */
-		if (ret)
-			dev_err(dev, "remove dev from genpd failed\n");
-	}
+	device_for_each_child(adev->acp.parent, NULL,
+			      acp_genpd_remove_device);
 
 	mfd_remove_devices(adev->acp.parent);
 	kfree(adev->acp.acp_res);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
@@ -165,7 +165,7 @@
 	.get_tile_config = amdgpu_amdkfd_get_tile_config,
 };
 
-struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions()
+struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions(void)
 {
 	return (struct kfd2kgd_calls *)&kfd2kgd;
 }
@@ -644,6 +644,9 @@
 	uint32_t temp;
 	struct v10_compute_mqd *m = get_mqd(mqd);
 
+	if (amdgpu_sriov_vf(adev) && adev->in_gpu_reset)
+		return 0;
+
 #if 0
 	unsigned long flags;
 	int retry;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
@@ -540,6 +540,9 @@
 	uint32_t temp;
 	struct v9_mqd *m = get_mqd(mqd);
 
+	if (amdgpu_sriov_vf(adev) && adev->in_gpu_reset)
+		return 0;
+
 	if (adev->in_gpu_reset)
 		return -EIO;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -55,12 +55,6 @@
 	spinlock_t mem_limit_lock;
 } kfd_mem_limit;
 
-/* Struct used for amdgpu_amdkfd_bo_validate */
-struct amdgpu_vm_parser {
-	uint32_t        domain;
-	bool            wait;
-};
-
 static const char * const domain_bit_to_string[] = {
 		"CPU",
 		"GTT",
@@ -293,11 +287,9 @@
 	return ret;
 }
 
-static int amdgpu_amdkfd_validate(void *param, struct amdgpu_bo *bo)
+static int amdgpu_amdkfd_validate_vm_bo(void *_unused, struct amdgpu_bo *bo)
 {
-	struct amdgpu_vm_parser *p = param;
-
-	return amdgpu_amdkfd_bo_validate(bo, p->domain, p->wait);
+	return amdgpu_amdkfd_bo_validate(bo, bo->allowed_domains, false);
 }
 
 /* vm_validate_pt_pd_bos - Validate page table and directory BOs
@@ -311,20 +303,15 @@
 {
 	struct amdgpu_bo *pd = vm->root.base.bo;
 	struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
-	struct amdgpu_vm_parser param;
 	int ret;
 
-	param.domain = AMDGPU_GEM_DOMAIN_VRAM;
-	param.wait = false;
-
-	ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate,
-					&param);
+	ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate_vm_bo, NULL);
 	if (ret) {
 		pr_err("amdgpu: failed to validate PT BOs\n");
 		return ret;
 	}
 
-	ret = amdgpu_amdkfd_validate(&param, pd);
+	ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
 	if (ret) {
 		pr_err("amdgpu: failed to validate PD\n");
 		return ret;
@@ -964,11 +951,15 @@
 					   struct dma_fence **ef)
 {
 	struct amdgpu_device *adev = get_amdgpu_device(kgd);
-	struct drm_file *drm_priv = filp->private_data;
-	struct amdgpu_fpriv *drv_priv = drm_priv->driver_priv;
-	struct amdgpu_vm *avm = &drv_priv->vm;
+	struct amdgpu_fpriv *drv_priv;
+	struct amdgpu_vm *avm;
 	int ret;
 
+	ret = amdgpu_file_to_fpriv(filp, &drv_priv);
+	if (ret)
+		return ret;
+	avm = &drv_priv->vm;
+
 	/* Already a compute VM? */
 	if (avm->process_info)
 		return -EINVAL;
@@ -1247,15 +1238,15 @@
 	 * be freed anyway
 	 */
 
-	/* No more MMU notifiers */
-	amdgpu_mn_unregister(mem->bo);
-
 	/* Make sure restore workers don't access the BO any more */
 	bo_list_entry = &mem->validate_list;
 	mutex_lock(&process_info->lock);
 	list_del(&bo_list_entry->head);
 	mutex_unlock(&process_info->lock);
 
+	/* No more MMU notifiers */
+	amdgpu_mn_unregister(mem->bo);
+
 	ret = reserve_bo_and_cond_vms(mem, NULL, BO_VM_ALL, &ctx);
 	if (unlikely(ret))
 		return ret;
@@ -1288,7 +1279,7 @@
 	}
 
 	/* Free the BO*/
-	amdgpu_bo_unref(&mem->bo);
+	drm_gem_object_put_unlocked(&mem->bo->tbo.base);
 	mutex_destroy(&mem->lock);
 	kfree(mem);
 
@@ -1630,7 +1621,8 @@
 		AMDGPU_VM_PAGE_READABLE | AMDGPU_VM_PAGE_WRITEABLE |
 		AMDGPU_VM_PAGE_EXECUTABLE | AMDGPU_VM_MTYPE_NC;
 
-	(*mem)->bo = amdgpu_bo_ref(bo);
+	drm_gem_object_get(&bo->tbo.base);
+	(*mem)->bo = bo;
 	(*mem)->va = va;
 	(*mem)->domain = (bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ?
 		AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -338,17 +338,9 @@
 		path_size += le16_to_cpu(path->usSize);
 
 		if (device_support & le16_to_cpu(path->usDeviceTag)) {
-			uint8_t con_obj_id, con_obj_num, con_obj_type;
-
-			con_obj_id =
+			uint8_t con_obj_id =
 			    (le16_to_cpu(path->usConnObjectId) & OBJECT_ID_MASK)
 			    >> OBJECT_ID_SHIFT;
-			con_obj_num =
-			    (le16_to_cpu(path->usConnObjectId) & ENUM_ID_MASK)
-			    >> ENUM_ID_SHIFT;
-			con_obj_type =
-			    (le16_to_cpu(path->usConnObjectId) &
-			     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
 
 			/* Skip TV/CV support */
 			if ((le16_to_cpu(path->usDeviceTag) ==
@@ -373,15 +365,7 @@
 			router.ddc_valid = false;
 			router.cd_valid = false;
 			for (j = 0; j < ((le16_to_cpu(path->usSize) - 8) / 2); j++) {
-				uint8_t grph_obj_id, grph_obj_num, grph_obj_type;
-
-				grph_obj_id =
-				    (le16_to_cpu(path->usGraphicObjIds[j]) &
-				     OBJECT_ID_MASK) >> OBJECT_ID_SHIFT;
-				grph_obj_num =
-				    (le16_to_cpu(path->usGraphicObjIds[j]) &
-				     ENUM_ID_MASK) >> ENUM_ID_SHIFT;
-				grph_obj_type =
+				uint8_t grph_obj_type =
 				    (le16_to_cpu(path->usGraphicObjIds[j]) &
 				     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
@@ -150,6 +150,7 @@
 				(mode_info->atom_context->bios + data_offset);
 			switch (crev) {
 			case 11:
+			case 12:
 				mem_channel_number = igp_info->v11.umachannelnumber;
 				/* channel width is 64 */
 				return mem_channel_number * 64;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c
@@ -192,30 +192,35 @@
 
 static bool amdgpu_read_platform_bios(struct amdgpu_device *adev)
 {
-	uint8_t __iomem *bios;
-	size_t size;
+	phys_addr_t rom = adev->pdev->rom;
+	size_t romlen = adev->pdev->romlen;
+	void __iomem *bios;
 
 	adev->bios = NULL;
 
-	bios = pci_platform_rom(adev->pdev, &size);
-	if (!bios) {
+	if (!rom || romlen == 0)
 		return false;
-	}
 
-	adev->bios = kzalloc(size, GFP_KERNEL);
-	if (adev->bios == NULL)
+	adev->bios = kzalloc(romlen, GFP_KERNEL);
+	if (!adev->bios)
 		return false;
 
-	memcpy_fromio(adev->bios, bios, size);
+	bios = ioremap(rom, romlen);
+	if (!bios)
+		goto free_bios;
 
-	if (!check_atom_bios(adev->bios, size)) {
-		kfree(adev->bios);
-		return false;
-	}
+	memcpy_fromio(adev->bios, bios, romlen);
+	iounmap(bios);
+
+	if (!check_atom_bios(adev->bios, romlen))
+		goto free_bios;
 
-	adev->bios_size = size;
+	adev->bios_size = romlen;
 
 	return true;
+free_bios:
+	kfree(adev->bios);
+	return false;
 }
 
 #ifdef CONFIG_ACPI
@@ -308,6 +313,7 @@
 
 	if (!found)
 		return false;
+	pci_dev_put(pdev);
 
 	adev->bios = kmalloc(size, GFP_KERNEL);
 	if (!adev->bios) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
@@ -61,7 +61,7 @@
 
 int amdgpu_bo_list_create(struct amdgpu_device *adev, struct drm_file *filp,
 			  struct drm_amdgpu_bo_list_entry *info,
-			  unsigned num_entries, struct amdgpu_bo_list **result)
+			  size_t num_entries, struct amdgpu_bo_list **result)
 {
 	unsigned last_entry = 0, first_userptr = num_entries;
 	struct amdgpu_bo_list_entry *array;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
@@ -60,7 +60,7 @@
 int amdgpu_bo_list_create(struct amdgpu_device *adev,
 				 struct drm_file *filp,
 				 struct drm_amdgpu_bo_list_entry *info,
-				 unsigned num_entries,
+				 size_t num_entries,
 				 struct amdgpu_bo_list **list);
 
 static inline struct amdgpu_bo_list_entry *
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -316,8 +316,10 @@
 	if (!amdgpu_connector->edid) {
 		/* some laptops provide a hardcoded edid in rom for LCDs */
 		if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) ||
-		     (connector->connector_type == DRM_MODE_CONNECTOR_eDP)))
+		     (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) {
 			amdgpu_connector->edid = amdgpu_connector_get_hardcoded_edid(adev);
+			drm_connector_update_edid_property(connector, amdgpu_connector->edid);
+		}
 	}
 }
 
@@ -389,6 +391,9 @@
 	    native_mode->vdisplay != 0 &&
 	    native_mode->clock != 0) {
 		mode = drm_mode_duplicate(dev, native_mode);
+		if (!mode)
+			return NULL;
+
 		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
 		drm_mode_set_name(mode);
 
@@ -403,6 +408,9 @@
 		 * simpler.
 		 */
 		mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+		if (!mode)
+			return NULL;
+
 		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
 		DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
 	}
@@ -719,8 +727,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (encoder) {
@@ -827,6 +837,7 @@
 
 	amdgpu_connector_get_edid(connector);
 	ret = amdgpu_connector_ddc_get_modes(connector);
+	amdgpu_get_native_mode(connector);
 
 	return ret;
 }
@@ -857,8 +868,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = amdgpu_connector_best_single_encoder(connector);
@@ -980,8 +993,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) {
@@ -1330,8 +1345,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) {
@@ -1631,10 +1648,12 @@
 						   adev->mode_info.dither_property,
 						   AMDGPU_FMT_DITHER_DISABLE);
 
-			if (amdgpu_audio != 0)
+			if (amdgpu_audio != 0) {
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
+			}
 
 			subpixel_order = SubPixelHorizontalRGB;
 			connector->interlace_allowed = true;
@@ -1756,6 +1775,7 @@
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
 			}
 			drm_object_attach_property(&amdgpu_connector->base.base,
 						   adev->mode_info.dither_property,
@@ -1809,6 +1829,7 @@
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
 			}
 			drm_object_attach_property(&amdgpu_connector->base.base,
 						   adev->mode_info.dither_property,
@@ -1859,6 +1880,7 @@
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
 			}
 			drm_object_attach_property(&amdgpu_connector->base.base,
 						   adev->mode_info.dither_property,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -43,7 +43,6 @@
 	struct drm_gem_object *gobj;
 	struct amdgpu_bo *bo;
 	unsigned long size;
-	int r;
 
 	gobj = drm_gem_object_lookup(p->filp, data->handle);
 	if (gobj == NULL)
@@ -58,23 +57,14 @@
 	drm_gem_object_put_unlocked(gobj);
 
 	size = amdgpu_bo_size(bo);
-	if (size != PAGE_SIZE || (data->offset + 8) > size) {
-		r = -EINVAL;
-		goto error_unref;
-	}
+	if (size != PAGE_SIZE || data->offset > (size - 8))
+		return -EINVAL;
 
-	if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm)) {
-		r = -EINVAL;
-		goto error_unref;
-	}
+	if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm))
+		return -EINVAL;
 
 	*offset = data->offset;
-
 	return 0;
-
-error_unref:
-	amdgpu_bo_unref(&bo);
-	return r;
 }
 
 static int amdgpu_cs_bo_handles_chunk(struct amdgpu_cs_parser *p,
@@ -114,7 +104,7 @@
 	int ret;
 
 	if (cs->in.num_chunks == 0)
-		return 0;
+		return -EINVAL;
 
 	chunk_array = kmalloc_array(cs->in.num_chunks, sizeof(uint64_t), GFP_KERNEL);
 	if (!chunk_array)
@@ -1542,6 +1532,7 @@
 		return 0;
 
 	default:
+		dma_fence_put(fence);
 		return -EINVAL;
 	}
 }
@@ -1574,15 +1565,15 @@
 			continue;
 
 		r = dma_fence_wait_timeout(fence, true, timeout);
+		if (r > 0 && fence->error)
+			r = fence->error;
+
 		dma_fence_put(fence);
 		if (r < 0)
 			return r;
 
 		if (r == 0)
 			break;
-
-		if (fence->error)
-			return fence->error;
 	}
 
 	memset(wait, 0, sizeof(*wait));
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
@@ -351,7 +351,6 @@
 {
 	struct amdgpu_ctx *ctx;
 	struct amdgpu_ctx_mgr *mgr;
-	unsigned long ras_counter;
 
 	if (!fpriv)
 		return -EINVAL;
@@ -376,21 +375,6 @@
 	if (atomic_read(&ctx->guilty))
 		out->state.flags |= AMDGPU_CTX_QUERY2_FLAGS_GUILTY;
 
-	/*query ue count*/
-	ras_counter = amdgpu_ras_query_error_count(adev, false);
-	/*ras counter is monotonic increasing*/
-	if (ras_counter != ctx->ras_counter_ue) {
-		out->state.flags |= AMDGPU_CTX_QUERY2_FLAGS_RAS_UE;
-		ctx->ras_counter_ue = ras_counter;
-	}
-
-	/*query ce count*/
-	ras_counter = amdgpu_ras_query_error_count(adev, true);
-	if (ras_counter != ctx->ras_counter_ce) {
-		out->state.flags |= AMDGPU_CTX_QUERY2_FLAGS_RAS_CE;
-		ctx->ras_counter_ce = ras_counter;
-	}
-
 	mutex_unlock(&mgr->lock);
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
@@ -240,7 +240,7 @@
 	while (size) {
 		uint32_t value;
 
-		value = RREG32_PCIE(*pos >> 2);
+		value = RREG32_PCIE(*pos);
 		r = put_user(value, (uint32_t *)buf);
 		if (r)
 			return r;
@@ -283,7 +283,7 @@
 		if (r)
 			return r;
 
-		WREG32_PCIE(*pos >> 2, value);
+		WREG32_PCIE(*pos, value);
 
 		result += 4;
 		buf += 4;
@@ -694,11 +694,11 @@
 	ssize_t result = 0;
 	uint32_t offset, se, sh, cu, wave, simd, thread, bank, *data;
 
-	if (size & 3 || *pos & 3)
+	if (size > 4096 || size & 3 || *pos & 3)
 		return -EINVAL;
 
 	/* decode offset */
-	offset = *pos & GENMASK_ULL(11, 0);
+	offset = (*pos & GENMASK_ULL(11, 0)) >> 2;
 	se = (*pos & GENMASK_ULL(19, 12)) >> 12;
 	sh = (*pos & GENMASK_ULL(27, 20)) >> 20;
 	cu = (*pos & GENMASK_ULL(35, 28)) >> 28;
@@ -729,7 +729,7 @@
 	while (size) {
 		uint32_t value;
 
-		value = data[offset++];
+		value = data[result >> 2];
 		r = put_user(value, (uint32_t *)buf);
 		if (r) {
 			result = r;
@@ -859,6 +859,9 @@
 	struct amdgpu_device *adev = dev->dev_private;
 	int r = 0, i;
 
+	/* Avoid accidently unparking the sched thread during GPU reset */
+	mutex_lock(&adev->lock_reset);
+
 	/* hold on the scheduler */
 	for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
 		struct amdgpu_ring *ring = adev->rings[i];
@@ -884,6 +887,8 @@
 		kthread_unpark(ring->sched.thread);
 	}
 
+	mutex_unlock(&adev->lock_reset);
+
 	return 0;
 }
 
@@ -985,27 +990,37 @@
 static void amdgpu_ib_preempt_mark_partial_job(struct amdgpu_ring *ring)
 {
 	struct amdgpu_job *job;
-	struct drm_sched_job *s_job;
+	struct drm_sched_job *s_job, *tmp;
 	uint32_t preempt_seq;
 	struct dma_fence *fence, **ptr;
 	struct amdgpu_fence_driver *drv = &ring->fence_drv;
 	struct drm_gpu_scheduler *sched = &ring->sched;
+	bool preempted = true;
 
 	if (ring->funcs->type != AMDGPU_RING_TYPE_GFX)
 		return;
 
 	preempt_seq = le32_to_cpu(*(drv->cpu_addr + 2));
-	if (preempt_seq <= atomic_read(&drv->last_seq))
-		return;
+	if (preempt_seq <= atomic_read(&drv->last_seq)) {
+		preempted = false;
+		goto no_preempt;
+	}
 
 	preempt_seq &= drv->num_fences_mask;
 	ptr = &drv->fences[preempt_seq];
 	fence = rcu_dereference_protected(*ptr, 1);
 
+no_preempt:
 	spin_lock(&sched->job_list_lock);
-	list_for_each_entry(s_job, &sched->ring_mirror_list, node) {
+	list_for_each_entry_safe(s_job, tmp, &sched->ring_mirror_list, node) {
+		if (dma_fence_is_signaled(&s_job->s_fence->finished)) {
+			/* remove job from ring_mirror_list */
+			list_del_init(&s_job->node);
+			sched->ops->free_job(s_job);
+			continue;
+		}
 		job = to_amdgpu_job(s_job);
-		if (job->fence == fence)
+		if (preempted && job->fence == fence)
 			/* mark the job as preempted */
 			job->preemption_status |= AMDGPU_IB_PREEMPTED;
 	}
@@ -1036,6 +1051,9 @@
 	if (!fences)
 		return -ENOMEM;
 
+	/* Avoid accidently unparking the sched thread during GPU reset */
+	mutex_lock(&adev->lock_reset);
+
 	/* stop the scheduler */
 	kthread_park(ring->sched.thread);
 
@@ -1075,6 +1093,8 @@
 	/* restart the scheduler */
 	kthread_unpark(ring->sched.thread);
 
+	mutex_unlock(&adev->lock_reset);
+
 	ttm_bo_unlock_delayed_workqueue(&adev->mman.bdev, resched);
 
 	if (fences)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -70,11 +70,9 @@
 MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/picasso_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/raven2_gpu_info.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/renoir_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/navi10_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/navi14_gpu_info.bin");
-MODULE_FIRMWARE("amdgpu/navi12_gpu_info.bin");
 
 #define AMDGPU_RESUME_MS		2000
 
@@ -759,6 +757,9 @@
 	u16 cmd;
 	int r;
 
+	if (!IS_ENABLED(CONFIG_PHYS_ADDR_T_64BIT))
+		return 0;
+
 	/* Bypass for VF */
 	if (amdgpu_sriov_vf(adev))
 		return 0;
@@ -2057,11 +2058,11 @@
 	if (adev->gmc.xgmi.num_physical_nodes > 1)
 		amdgpu_xgmi_remove_device(adev);
 
-	amdgpu_amdkfd_device_fini(adev);
-
 	amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
 	amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
 
+	amdgpu_amdkfd_device_fini(adev);
+
 	/* need to disable SMC first */
 	for (i = 0; i < adev->num_ip_blocks; i++) {
 		if (!adev->ip_blocks[i].status.hw)
@@ -2291,7 +2292,7 @@
 		AMD_IP_BLOCK_TYPE_IH,
 	};
 
-	for (i = 0; i < ARRAY_SIZE(ip_order); i++) {
+	for (i = 0; i < adev->num_ip_blocks; i++) {
 		int j;
 		struct amdgpu_ip_block *block;
 
@@ -3070,12 +3071,12 @@
 		}
 	}
 
-	amdgpu_amdkfd_suspend(adev);
-
 	amdgpu_ras_suspend(adev);
 
 	r = amdgpu_device_ip_suspend_phase1(adev);
 
+	amdgpu_amdkfd_suspend(adev);
+
 	/* evict vram memory */
 	amdgpu_bo_evict_vram(adev);
 
@@ -3704,7 +3705,6 @@
 			r = amdgpu_ib_ring_tests(tmp_adev);
 			if (r) {
 				dev_err(tmp_adev->dev, "ib ring test failed (%d).\n", r);
-				r = amdgpu_device_ip_suspend(tmp_adev);
 				need_full_reset = true;
 				r = -EAGAIN;
 				goto end;
@@ -3890,7 +3890,7 @@
 
 		amdgpu_device_lock_adev(tmp_adev, false);
 		r = amdgpu_device_pre_asic_reset(tmp_adev,
-						 NULL,
+						 (tmp_adev == adev) ? job : NULL,
 						 &need_full_reset);
 		/*TODO Should we stop ?*/
 		if (r) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -136,7 +136,7 @@
 {
 	uint32_t *p = (uint32_t *)binary;
 	uint64_t vram_size = (uint64_t)RREG32(mmRCC_CONFIG_MEMSIZE) << 20;
-	uint64_t pos = vram_size - BINARY_MAX_SIZE;
+	uint64_t pos = vram_size - DISCOVERY_TMR_SIZE;
 	unsigned long flags;
 
 	while (pos < vram_size) {
@@ -179,7 +179,7 @@
 	uint16_t checksum;
 	int r;
 
-	adev->discovery = kzalloc(BINARY_MAX_SIZE, GFP_KERNEL);
+	adev->discovery = kzalloc(DISCOVERY_TMR_SIZE, GFP_KERNEL);
 	if (!adev->discovery)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
@@ -24,6 +24,8 @@
 #ifndef __AMDGPU_DISCOVERY__
 #define __AMDGPU_DISCOVERY__
 
+#define DISCOVERY_TMR_SIZE  (64 << 10)
+
 int amdgpu_discovery_init(struct amdgpu_device *adev);
 void amdgpu_discovery_fini(struct amdgpu_device *adev);
 int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -282,7 +282,7 @@
 
 	ret = pm_runtime_get_sync(dev->dev);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	ret = drm_crtc_helper_set_config(set, ctx);
 
@@ -306,6 +306,7 @@
 		adev->have_disp_power_ref = false;
 	}
 
+out:
 	/* drop the power reference we got coming in here */
 	pm_runtime_put_autosuspend(dev->dev);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -145,7 +145,7 @@
 int amdgpu_mcbp = 0;
 int amdgpu_discovery = -1;
 int amdgpu_mes = 0;
-int amdgpu_noretry = 1;
+int amdgpu_noretry;
 
 struct amdgpu_mgpu_info mgpu_info = {
 	.mutex = __MUTEX_INITIALIZER(mgpu_info.mutex),
@@ -613,7 +613,7 @@
 module_param_named(mes, amdgpu_mes, int, 0444);
 
 MODULE_PARM_DESC(noretry,
-	"Disable retry faults (0 = retry enabled, 1 = retry disabled (default))");
+	"Disable retry faults (0 = retry enabled (default), 1 = retry disabled)");
 module_param_named(noretry, amdgpu_noretry, int, 0644);
 
 #ifdef CONFIG_HSA_AMD
@@ -633,7 +633,7 @@
  * Maximum number of processes that HWS can schedule concurrently. The maximum is the
  * number of VMIDs assigned to the HWS, which is also the default.
  */
-int hws_max_conc_proc = 8;
+int hws_max_conc_proc = -1;
 module_param(hws_max_conc_proc, int, 0444);
 MODULE_PARM_DESC(hws_max_conc_proc,
 	"Max # processes HWS can execute concurrently when sched_policy=0 (0 = no concurrency, #VMIDs for KFD = Maximum(default))");
@@ -1011,6 +1011,7 @@
 	{0x1002, 0x7319, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	{0x1002, 0x731A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	{0x1002, 0x731B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
+	{0x1002, 0x731E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	{0x1002, 0x731F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI10},
 	/* Navi14 */
 	{0x1002, 0x7340, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI14},
@@ -1023,6 +1024,7 @@
 
 	/* Navi12 */
 	{0x1002, 0x7360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI12|AMD_EXP_HW_SUPPORT},
+	{0x1002, 0x7362, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_NAVI12|AMD_EXP_HW_SUPPORT},
 
 	{0, 0, 0}
 };
@@ -1285,11 +1287,12 @@
 	dev = file_priv->minor->dev;
 	ret = pm_runtime_get_sync(dev->dev);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	ret = drm_ioctl(filp, cmd, arg);
 
 	pm_runtime_mark_last_busy(dev->dev);
+out:
 	pm_runtime_put_autosuspend(dev->dev);
 	return ret;
 }
@@ -1420,7 +1423,7 @@
 
 static struct drm_driver kms_driver = {
 	.driver_features =
-	    DRIVER_USE_AGP | DRIVER_ATOMIC |
+	    DRIVER_ATOMIC |
 	    DRIVER_GEM |
 	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ,
 	.load = amdgpu_driver_load_kms,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -133,8 +133,7 @@
 	u32 cpp;
 	u64 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
 			       AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS     |
-			       AMDGPU_GEM_CREATE_VRAM_CLEARED 	     |
-			       AMDGPU_GEM_CREATE_CPU_GTT_USWC;
+			       AMDGPU_GEM_CREATE_VRAM_CLEARED;
 
 	info = drm_get_format_info(adev->ddev, mode_cmd);
 	cpp = info->cpp[0];
@@ -147,7 +146,7 @@
 	size = mode_cmd->pitches[0] * height;
 	aligned_size = ALIGN(size, PAGE_SIZE);
 	ret = amdgpu_gem_object_create(adev, aligned_size, 0, domain, flags,
-				       ttm_bo_type_kernel, NULL, &gobj);
+				       ttm_bo_type_device, NULL, &gobj);
 	if (ret) {
 		pr_err("failed to allocate framebuffer (%d)\n", aligned_size);
 		return -ENOMEM;
@@ -290,10 +289,13 @@
 static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfbdev)
 {
 	struct amdgpu_framebuffer *rfb = &rfbdev->rfb;
+	int i;
 
 	drm_fb_helper_unregister_fbi(&rfbdev->helper);
 
 	if (rfb->base.obj[0]) {
+		for (i = 0; i < rfb->base.format->num_planes; i++)
+			drm_gem_object_put(rfb->base.obj[0]);
 		amdgpufb_destroy_pinned_object(rfb->base.obj[0]);
 		rfb->base.obj[0] = NULL;
 		drm_framebuffer_unregister_private(&rfb->base);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -404,7 +404,9 @@
 		ring->fence_drv.gpu_addr = adev->uvd.inst[ring->me].gpu_addr + index;
 	}
 	amdgpu_fence_write(ring, atomic_read(&ring->fence_drv.last_seq));
-	amdgpu_irq_get(adev, irq_src, irq_type);
+
+	if (irq_src)
+		amdgpu_irq_get(adev, irq_src, irq_type);
 
 	ring->fence_drv.irq_src = irq_src;
 	ring->fence_drv.irq_type = irq_type;
@@ -539,8 +541,9 @@
 			/* no need to trigger GPU reset as we are unloading */
 			amdgpu_fence_driver_force_completion(ring);
 		}
-		amdgpu_irq_put(adev, ring->fence_drv.irq_src,
-			       ring->fence_drv.irq_type);
+		if (ring->fence_drv.irq_src)
+			amdgpu_irq_put(adev, ring->fence_drv.irq_src,
+				       ring->fence_drv.irq_type);
 		drm_sched_fini(&ring->sched);
 		del_timer_sync(&ring->fence_drv.fallback_timer);
 		for (j = 0; j <= ring->fence_drv.num_fences_mask; ++j)
@@ -576,8 +579,9 @@
 		}
 
 		/* disable the interrupt */
-		amdgpu_irq_put(adev, ring->fence_drv.irq_src,
-			       ring->fence_drv.irq_type);
+		if (ring->fence_drv.irq_src)
+			amdgpu_irq_put(adev, ring->fence_drv.irq_src,
+				       ring->fence_drv.irq_type);
 	}
 }
 
@@ -603,8 +607,9 @@
 			continue;
 
 		/* enable the interrupt */
-		amdgpu_irq_get(adev, ring->fence_drv.irq_src,
-			       ring->fence_drv.irq_type);
+		if (ring->fence_drv.irq_src)
+			amdgpu_irq_get(adev, ring->fence_drv.irq_src,
+				       ring->fence_drv.irq_type);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -161,16 +161,17 @@
 
 	struct amdgpu_bo_list_entry vm_pd;
 	struct list_head list, duplicates;
+	struct dma_fence *fence = NULL;
 	struct ttm_validate_buffer tv;
 	struct ww_acquire_ctx ticket;
 	struct amdgpu_bo_va *bo_va;
-	int r;
+	long r;
 
 	INIT_LIST_HEAD(&list);
 	INIT_LIST_HEAD(&duplicates);
 
 	tv.bo = &bo->tbo;
-	tv.num_shared = 1;
+	tv.num_shared = 2;
 	list_add(&tv.head, &list);
 
 	amdgpu_vm_get_pd_bo(vm, &list, &vm_pd);
@@ -178,28 +179,34 @@
 	r = ttm_eu_reserve_buffers(&ticket, &list, false, &duplicates, false);
 	if (r) {
 		dev_err(adev->dev, "leaking bo va because "
-			"we fail to reserve bo (%d)\n", r);
+			"we fail to reserve bo (%ld)\n", r);
 		return;
 	}
 	bo_va = amdgpu_vm_bo_find(vm, bo);
-	if (bo_va && --bo_va->ref_count == 0) {
-		amdgpu_vm_bo_rmv(adev, bo_va);
+	if (!bo_va || --bo_va->ref_count)
+		goto out_unlock;
 
-		if (amdgpu_vm_ready(vm)) {
-			struct dma_fence *fence = NULL;
+	amdgpu_vm_bo_rmv(adev, bo_va);
+	if (!amdgpu_vm_ready(vm))
+		goto out_unlock;
 
-			r = amdgpu_vm_clear_freed(adev, vm, &fence);
-			if (unlikely(r)) {
-				dev_err(adev->dev, "failed to clear page "
-					"tables on GEM object close (%d)\n", r);
-			}
-
-			if (fence) {
-				amdgpu_bo_fence(bo, fence, true);
-				dma_fence_put(fence);
-			}
-		}
+	fence = dma_resv_get_excl(bo->tbo.base.resv);
+	if (fence) {
+		amdgpu_bo_fence(bo, fence, true);
+		fence = NULL;
 	}
+
+	r = amdgpu_vm_clear_freed(adev, vm, &fence);
+	if (r || !fence)
+		goto out_unlock;
+
+	amdgpu_bo_fence(bo, fence, true);
+	dma_fence_put(fence);
+
+out_unlock:
+	if (unlikely(r < 0))
+		dev_err(adev->dev, "failed to clear page "
+			"tables on GEM object close (%ld)\n", r);
 	ttm_eu_backoff_reservation(&ticket, &list);
 }
 
@@ -322,11 +329,9 @@
 	if (r)
 		goto release_object;
 
-	if (args->flags & AMDGPU_GEM_USERPTR_REGISTER) {
-		r = amdgpu_mn_register(bo, args->addr);
-		if (r)
-			goto release_object;
-	}
+	r = amdgpu_mn_register(bo, args->addr);
+	if (r)
+		goto release_object;
 
 	if (args->flags & AMDGPU_GEM_USERPTR_VALIDATE) {
 		r = amdgpu_ttm_tt_get_user_pages(bo, bo->tbo.ttm->pages);
@@ -554,6 +559,7 @@
 	struct ww_acquire_ctx ticket;
 	struct list_head list, duplicates;
 	uint64_t va_flags;
+	uint64_t vm_size;
 	int r = 0;
 
 	if (args->va_address < AMDGPU_VA_RESERVED_SIZE) {
@@ -574,6 +580,15 @@
 
 	args->va_address &= AMDGPU_GMC_HOLE_MASK;
 
+	vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
+	vm_size -= AMDGPU_VA_RESERVED_SIZE;
+	if (args->va_address + args->map_size > vm_size) {
+		dev_dbg(&dev->pdev->dev,
+			"va_address 0x%llx is in top reserved area 0x%llx\n",
+			args->va_address + args->map_size, vm_size);
+		return -EINVAL;
+	}
+
 	if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
 		dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n",
 			args->flags);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -263,7 +263,7 @@
 		    * adev->gfx.mec.num_pipe_per_mec
 		    * adev->gfx.mec.num_queue_per_pipe;
 
-	while (queue_bit-- >= 0) {
+	while (--queue_bit >= 0) {
 		if (test_bit(queue_bit, adev->gfx.mec.queue_bitmap))
 			continue;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
@@ -77,6 +77,7 @@
 struct amdgpu_vmhub {
 	uint32_t	ctx0_ptb_addr_lo32;
 	uint32_t	ctx0_ptb_addr_hi32;
+	uint32_t	vm_inv_eng0_sem;
 	uint32_t	vm_inv_eng0_req;
 	uint32_t	vm_inv_eng0_ack;
 	uint32_t	vm_context0_cntl;
@@ -156,6 +157,7 @@
 	uint32_t                srbm_soft_reset;
 	bool			prt_warning;
 	uint64_t		stolen_size;
+	uint32_t		sdpif_register;
 	/* apertures */
 	u64			shared_aperture_start;
 	u64			shared_aperture_end;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c
@@ -339,7 +339,7 @@
 void
 amdgpu_i2c_router_select_ddc_port(const struct amdgpu_connector *amdgpu_connector)
 {
-	u8 val;
+	u8 val = 0;
 
 	if (!amdgpu_connector->router.ddc_valid)
 		return;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
@@ -469,7 +469,7 @@
 		for (j = 0; j < AMDGPU_MAX_IRQ_SRC_ID; ++j) {
 			struct amdgpu_irq_src *src = adev->irq.client[i].sources[j];
 
-			if (!src)
+			if (!src || !src->funcs || !src->funcs->set)
 				continue;
 			for (k = 0; k < src->num_types; k++)
 				amdgpu_irq_update(adev, src, k);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -36,7 +36,8 @@
 
 	memset(&ti, 0, sizeof(struct amdgpu_task_info));
 
-	if (amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) {
+	if (amdgpu_gpu_recovery &&
+	    amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) {
 		DRM_ERROR("ring %s timeout, but soft recovered\n",
 			  s_job->sched->name);
 		return;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -471,6 +471,7 @@
 			crtc = (struct drm_crtc *)minfo->crtcs[i];
 			if (crtc && crtc->base.id == info->mode_crtc.id) {
 				struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
+
 				ui32 = amdgpu_crtc->crtc_id;
 				found = 1;
 				break;
@@ -489,7 +490,7 @@
 		if (ret)
 			return ret;
 
-		ret = copy_to_user(out, &ip, min((size_t)size, sizeof(ip)));
+		ret = copy_to_user(out, &ip, min_t(size_t, size, sizeof(ip)));
 		return ret ? -EFAULT : 0;
 	}
 	case AMDGPU_INFO_HW_IP_COUNT: {
@@ -625,21 +626,26 @@
 				    ? -EFAULT : 0;
 	}
 	case AMDGPU_INFO_READ_MMR_REG: {
-		unsigned n, alloc_size;
+		unsigned int n, alloc_size;
 		uint32_t *regs;
-		unsigned se_num = (info->read_mmr_reg.instance >>
+		unsigned int se_num = (info->read_mmr_reg.instance >>
 				   AMDGPU_INFO_MMR_SE_INDEX_SHIFT) &
 				  AMDGPU_INFO_MMR_SE_INDEX_MASK;
-		unsigned sh_num = (info->read_mmr_reg.instance >>
+		unsigned int sh_num = (info->read_mmr_reg.instance >>
 				   AMDGPU_INFO_MMR_SH_INDEX_SHIFT) &
 				  AMDGPU_INFO_MMR_SH_INDEX_MASK;
 
 		/* set full masks if the userspace set all bits
-		 * in the bitfields */
+		 * in the bitfields
+		 */
 		if (se_num == AMDGPU_INFO_MMR_SE_INDEX_MASK)
 			se_num = 0xffffffff;
+		else if (se_num >= AMDGPU_GFX_MAX_SE)
+			return -EINVAL;
 		if (sh_num == AMDGPU_INFO_MMR_SH_INDEX_MASK)
 			sh_num = 0xffffffff;
+		else if (sh_num >= AMDGPU_GFX_MAX_SH_PER_SE)
+			return -EINVAL;
 
 		if (info->read_mmr_reg.count > 128)
 			return -EINVAL;
@@ -667,9 +673,10 @@
 		return n ? -EFAULT : 0;
 	}
 	case AMDGPU_INFO_DEV_INFO: {
-		struct drm_amdgpu_info_device dev_info = {};
+		struct drm_amdgpu_info_device dev_info;
 		uint64_t vm_size;
 
+		memset(&dev_info, 0, sizeof(dev_info));
 		dev_info.device_id = dev->pdev->device;
 		dev_info.chip_rev = adev->rev_id;
 		dev_info.external_rev = adev->external_rev_id;
@@ -761,7 +768,7 @@
 				    min((size_t)size, sizeof(dev_info))) ? -EFAULT : 0;
 	}
 	case AMDGPU_INFO_VCE_CLOCK_TABLE: {
-		unsigned i;
+		unsigned int i;
 		struct drm_amdgpu_info_vce_clock_table vce_clk_table = {};
 		struct amd_vce_state *vce_state;
 
@@ -975,7 +982,7 @@
 
 	r = pm_runtime_get_sync(dev->dev);
 	if (r < 0)
-		return r;
+		goto pm_put;
 
 	fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
 	if (unlikely(!fpriv)) {
@@ -1026,6 +1033,7 @@
 
 out_suspend:
 	pm_runtime_mark_last_busy(dev->dev);
+pm_put:
 	pm_runtime_put_autosuspend(dev->dev);
 
 	return r;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -200,7 +200,7 @@
 		c++;
 	}
 
-	BUG_ON(c >= AMDGPU_BO_MAX_PLACEMENTS);
+	BUG_ON(c > AMDGPU_BO_MAX_PLACEMENTS);
 
 	placement->num_placement = c;
 	placement->placement = places;
@@ -343,6 +343,67 @@
 }
 
 /**
+ * amdgpu_bo_create_kernel_at - create BO for kernel use at specific location
+ *
+ * @adev: amdgpu device object
+ * @offset: offset of the BO
+ * @size: size of the BO
+ * @domain: where to place it
+ * @bo_ptr:  used to initialize BOs in structures
+ * @cpu_addr: optional CPU address mapping
+ *
+ * Creates a kernel BO at a specific offset in the address space of the domain.
+ *
+ * Returns:
+ * 0 on success, negative error code otherwise.
+ */
+int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev,
+			       uint64_t offset, uint64_t size, uint32_t domain,
+			       struct amdgpu_bo **bo_ptr, void **cpu_addr)
+{
+	struct ttm_operation_ctx ctx = { false, false };
+	unsigned int i;
+	int r;
+
+	offset &= PAGE_MASK;
+	size = ALIGN(size, PAGE_SIZE);
+
+	r = amdgpu_bo_create_reserved(adev, size, PAGE_SIZE, domain, bo_ptr,
+				      NULL, NULL);
+	if (r)
+		return r;
+
+	/*
+	 * Remove the original mem node and create a new one at the request
+	 * position.
+	 */
+	for (i = 0; i < (*bo_ptr)->placement.num_placement; ++i) {
+		(*bo_ptr)->placements[i].fpfn = offset >> PAGE_SHIFT;
+		(*bo_ptr)->placements[i].lpfn = (offset + size) >> PAGE_SHIFT;
+	}
+
+	ttm_bo_mem_put(&(*bo_ptr)->tbo, &(*bo_ptr)->tbo.mem);
+	r = ttm_bo_mem_space(&(*bo_ptr)->tbo, &(*bo_ptr)->placement,
+			     &(*bo_ptr)->tbo.mem, &ctx);
+	if (r)
+		goto error;
+
+	if (cpu_addr) {
+		r = amdgpu_bo_kmap(*bo_ptr, cpu_addr);
+		if (r)
+			goto error;
+	}
+
+	amdgpu_bo_unreserve(*bo_ptr);
+	return 0;
+
+error:
+	amdgpu_bo_unreserve(*bo_ptr);
+	amdgpu_bo_unref(bo_ptr);
+	return r;
+}
+
+/**
  * amdgpu_bo_free_kernel - free BO for kernel use
  *
  * @bo: amdgpu BO to free
@@ -831,6 +892,10 @@
 	if (WARN_ON_ONCE(min_offset > max_offset))
 		return -EINVAL;
 
+	/* Check domain to be pinned to against preferred domains */
+	if (bo->preferred_domains & domain)
+		domain = bo->preferred_domains & domain;
+
 	/* A shared bo cannot be migrated to VRAM */
 	if (bo->prime_shared_count) {
 		if (domain & AMDGPU_GEM_DOMAIN_GTT)
@@ -1244,7 +1309,8 @@
 	    !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE))
 		return;
 
-	dma_resv_lock(bo->base.resv, NULL);
+	if (WARN_ON_ONCE(!dma_resv_trylock(bo->base.resv)))
+		return;
 
 	r = amdgpu_fill_buffer(abo, AMDGPU_POISON, bo->base.resv, &fence);
 	if (!WARN_ON(r)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
@@ -237,6 +237,9 @@
 			    unsigned long size, int align,
 			    u32 domain, struct amdgpu_bo **bo_ptr,
 			    u64 *gpu_addr, void **cpu_addr);
+int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev,
+			       uint64_t offset, uint64_t size, uint32_t domain,
+			       struct amdgpu_bo **bo_ptr, void **cpu_addr);
 void amdgpu_bo_free_kernel(struct amdgpu_bo **bo, u64 *gpu_addr,
 			   void **cpu_addr);
 int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -90,7 +90,8 @@
 			adev->pm.ac_power = true;
 		else
 			adev->pm.ac_power = false;
-		if (adev->powerplay.pp_funcs->enable_bapm)
+		if (adev->powerplay.pp_funcs &&
+		    adev->powerplay.pp_funcs->enable_bapm)
 			amdgpu_dpm_enable_bapm(adev, adev->pm.ac_power);
 		mutex_unlock(&adev->pm.mutex);
 	}
@@ -369,6 +370,15 @@
 	if (current_level == level)
 		return count;
 
+	if (adev->asic_type == CHIP_RAVEN) {
+		if (adev->rev_id < 8) {
+			if (current_level != AMD_DPM_FORCED_LEVEL_MANUAL && level == AMD_DPM_FORCED_LEVEL_MANUAL)
+				amdgpu_gfx_off_ctrl(adev, false);
+			else if (current_level == AMD_DPM_FORCED_LEVEL_MANUAL && level != AMD_DPM_FORCED_LEVEL_MANUAL)
+				amdgpu_gfx_off_ctrl(adev, true);
+		}
+	}
+
 	/* profile_exit setting is valid only when current mode is in profile mode */
 	if (!(current_level & (AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD |
 	    AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK |
@@ -415,8 +425,11 @@
 		ret = smu_get_power_num_states(&adev->smu, &data);
 		if (ret)
 			return ret;
-	} else if (adev->powerplay.pp_funcs->get_pp_num_states)
+	} else if (adev->powerplay.pp_funcs->get_pp_num_states) {
 		amdgpu_dpm_get_pp_num_states(adev, &data);
+	} else {
+		memset(&data, 0, sizeof(data));
+	}
 
 	buf_len = snprintf(buf, PAGE_SIZE, "states: %d\n", data.nums);
 	for (i = 0; i < data.nums; i++)
@@ -857,7 +870,7 @@
 static ssize_t amdgpu_read_mask(const char *buf, size_t count, uint32_t *mask)
 {
 	int ret;
-	long level;
+	unsigned long level;
 	char *sub_str = NULL;
 	char *tmp;
 	char buf_cpy[AMDGPU_MASK_BUF_MAX + 1];
@@ -873,8 +886,8 @@
 	while (tmp[0]) {
 		sub_str = strsep(&tmp, delimiter);
 		if (strlen(sub_str)) {
-			ret = kstrtol(sub_str, 0, &level);
-			if (ret)
+			ret = kstrtoul(sub_str, 0, &level);
+			if (ret || level > 31)
 				return -EINVAL;
 			*mask |= 1 << level;
 		} else
@@ -2088,7 +2101,7 @@
 	if (r)
 		return r;
 
-	return snprintf(buf, PAGE_SIZE, "%d\n", sclk * 10 * 1000);
+	return snprintf(buf, PAGE_SIZE, "%u\n", sclk * 10 * 1000);
 }
 
 static ssize_t amdgpu_hwmon_show_sclk_label(struct device *dev,
@@ -2118,7 +2131,7 @@
 	if (r)
 		return r;
 
-	return snprintf(buf, PAGE_SIZE, "%d\n", mclk * 10 * 1000);
+	return snprintf(buf, PAGE_SIZE, "%u\n", mclk * 10 * 1000);
 }
 
 static ssize_t amdgpu_hwmon_show_mclk_label(struct device *dev,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -65,12 +65,6 @@
 /* inject address is 52 bits */
 #define	RAS_UMC_INJECT_ADDR_LIMIT	(0x1ULL << 52)
 
-static int amdgpu_ras_reserve_vram(struct amdgpu_device *adev,
-		uint64_t offset, uint64_t size,
-		struct amdgpu_bo **bo_ptr);
-static int amdgpu_ras_release_vram(struct amdgpu_device *adev,
-		struct amdgpu_bo **bo_ptr);
-
 static ssize_t amdgpu_ras_debugfs_read(struct file *f, char __user *buf,
 					size_t size, loff_t *pos)
 {
@@ -1214,75 +1208,6 @@
 	atomic_set(&ras->in_recovery, 0);
 }
 
-static int amdgpu_ras_release_vram(struct amdgpu_device *adev,
-		struct amdgpu_bo **bo_ptr)
-{
-	/* no need to free it actually. */
-	amdgpu_bo_free_kernel(bo_ptr, NULL, NULL);
-	return 0;
-}
-
-/* reserve vram with size@offset */
-static int amdgpu_ras_reserve_vram(struct amdgpu_device *adev,
-		uint64_t offset, uint64_t size,
-		struct amdgpu_bo **bo_ptr)
-{
-	struct ttm_operation_ctx ctx = { false, false };
-	struct amdgpu_bo_param bp;
-	int r = 0;
-	int i;
-	struct amdgpu_bo *bo;
-
-	if (bo_ptr)
-		*bo_ptr = NULL;
-	memset(&bp, 0, sizeof(bp));
-	bp.size = size;
-	bp.byte_align = PAGE_SIZE;
-	bp.domain = AMDGPU_GEM_DOMAIN_VRAM;
-	bp.flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS |
-		AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
-	bp.type = ttm_bo_type_kernel;
-	bp.resv = NULL;
-
-	r = amdgpu_bo_create(adev, &bp, &bo);
-	if (r)
-		return -EINVAL;
-
-	r = amdgpu_bo_reserve(bo, false);
-	if (r)
-		goto error_reserve;
-
-	offset = ALIGN(offset, PAGE_SIZE);
-	for (i = 0; i < bo->placement.num_placement; ++i) {
-		bo->placements[i].fpfn = offset >> PAGE_SHIFT;
-		bo->placements[i].lpfn = (offset + size) >> PAGE_SHIFT;
-	}
-
-	ttm_bo_mem_put(&bo->tbo, &bo->tbo.mem);
-	r = ttm_bo_mem_space(&bo->tbo, &bo->placement, &bo->tbo.mem, &ctx);
-	if (r)
-		goto error_pin;
-
-	r = amdgpu_bo_pin_restricted(bo,
-			AMDGPU_GEM_DOMAIN_VRAM,
-			offset,
-			offset + size);
-	if (r)
-		goto error_pin;
-
-	if (bo_ptr)
-		*bo_ptr = bo;
-
-	amdgpu_bo_unreserve(bo);
-	return r;
-
-error_pin:
-	amdgpu_bo_unreserve(bo);
-error_reserve:
-	amdgpu_bo_unref(&bo);
-	return r;
-}
-
 /* alloc/realloc bps array */
 static int amdgpu_ras_realloc_eh_data_space(struct amdgpu_device *adev,
 		struct ras_err_handler_data *data, int pages)
@@ -1345,7 +1270,7 @@
 	struct amdgpu_ras *con = amdgpu_ras_get_context(adev);
 	struct ras_err_handler_data *data;
 	uint64_t bp;
-	struct amdgpu_bo *bo;
+	struct amdgpu_bo *bo = NULL;
 	int i;
 
 	if (!con || !con->eh_data)
@@ -1359,12 +1284,14 @@
 	for (i = data->last_reserved; i < data->count; i++) {
 		bp = data->bps[i].bp;
 
-		if (amdgpu_ras_reserve_vram(adev, bp << PAGE_SHIFT,
-					PAGE_SIZE, &bo))
+		if (amdgpu_bo_create_kernel_at(adev, bp << PAGE_SHIFT, PAGE_SIZE,
+					       AMDGPU_GEM_DOMAIN_VRAM,
+					       &bo, NULL))
 			DRM_ERROR("RAS ERROR: reserve vram %llx fail\n", bp);
 
 		data->bps[i].bo = bo;
 		data->last_reserved = i + 1;
+		bo = NULL;
 	}
 out:
 	mutex_unlock(&con->recovery_lock);
@@ -1390,7 +1317,7 @@
 	for (i = data->last_reserved - 1; i >= 0; i--) {
 		bo = data->bps[i].bo;
 
-		amdgpu_ras_release_vram(adev, &bo);
+		amdgpu_bo_free_kernel(&bo, NULL, NULL);
 
 		data->bps[i].bo = bo;
 		data->last_reserved = i;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
@@ -138,7 +138,7 @@
 		return ret;
 	}
 
-	__decode_table_header_from_buff(hdr, &buff[2]);
+	__decode_table_header_from_buff(hdr, buff);
 
 	if (hdr->header == EEPROM_TABLE_HDR_VAL) {
 		control->num_recs = (hdr->tbl_size - EEPROM_TABLE_HEADER_SIZE) /
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c
@@ -124,13 +124,12 @@
  */
 int amdgpu_gfx_rlc_init_csb(struct amdgpu_device *adev)
 {
-	volatile u32 *dst_ptr;
 	u32 dws;
 	int r;
 
 	/* allocate clear state block */
 	adev->gfx.rlc.clear_state_size = dws = adev->gfx.rlc.funcs->get_csb_size(adev);
-	r = amdgpu_bo_create_reserved(adev, dws * 4, PAGE_SIZE,
+	r = amdgpu_bo_create_kernel(adev, dws * 4, PAGE_SIZE,
 				      AMDGPU_GEM_DOMAIN_VRAM,
 				      &adev->gfx.rlc.clear_state_obj,
 				      &adev->gfx.rlc.clear_state_gpu_addr,
@@ -141,13 +140,6 @@
 		return r;
 	}
 
-	/* set up the cs buffer */
-	dst_ptr = adev->gfx.rlc.cs_ptr;
-	adev->gfx.rlc.funcs->get_csb_buffer(adev, dst_ptr);
-	amdgpu_bo_kunmap(adev->gfx.rlc.clear_state_obj);
-	amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
@@ -58,6 +58,7 @@
 {
 	struct fd f = fdget(fd);
 	struct amdgpu_fpriv *fpriv;
+	struct amdgpu_ctx_mgr *mgr;
 	struct amdgpu_ctx *ctx;
 	uint32_t id;
 	int r;
@@ -71,8 +72,11 @@
 		return r;
 	}
 
-	idr_for_each_entry(&fpriv->ctx_mgr.ctx_handles, ctx, id)
+	mgr = &fpriv->ctx_mgr;
+	mutex_lock(&mgr->lock);
+	idr_for_each_entry(&mgr->ctx_handles, ctx, id)
 		amdgpu_ctx_priority_override(ctx, priority);
+	mutex_unlock(&mgr->lock);
 
 	fdput(f);
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c
@@ -138,6 +138,7 @@
 		}
 
 		dma_fence_put(fence);
+		fence = NULL;
 
 		r = amdgpu_bo_kmap(vram_obj, &vram_map);
 		if (r) {
@@ -183,6 +184,7 @@
 		}
 
 		dma_fence_put(fence);
+		fence = NULL;
 
 		r = amdgpu_bo_kmap(gtt_obj[i], &gtt_map);
 		if (r) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -21,7 +21,7 @@
  *
  */
 
-#if !defined(_AMDGPU_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
+#if !defined(_AMDGPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
 #define _AMDGPU_TRACE_H_
 
 #include <linux/stringify.h>
@@ -170,7 +170,7 @@
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
 			     __field(struct dma_fence *, fence)
-			     __field(char *, ring_name)
+			     __string(ring, to_amdgpu_ring(job->base.sched)->name)
 			     __field(u32, num_ibs)
 			     ),
 
@@ -179,12 +179,12 @@
 			   __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
-			   __entry->ring_name = to_amdgpu_ring(job->base.sched)->name;
+			   __assign_str(ring, to_amdgpu_ring(job->base.sched)->name)
 			   __entry->num_ibs = job->num_ibs;
 			   ),
 	    TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
 		      __entry->sched_job_id, __get_str(timeline), __entry->context,
-		      __entry->seqno, __entry->ring_name, __entry->num_ibs)
+		      __entry->seqno, __get_str(ring), __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,
@@ -195,7 +195,7 @@
 			     __string(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job))
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
-			     __field(char *, ring_name)
+			     __string(ring, to_amdgpu_ring(job->base.sched)->name)
 			     __field(u32, num_ibs)
 			     ),
 
@@ -204,12 +204,12 @@
 			   __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
-			   __entry->ring_name = to_amdgpu_ring(job->base.sched)->name;
+			   __assign_str(ring, to_amdgpu_ring(job->base.sched)->name)
 			   __entry->num_ibs = job->num_ibs;
 			   ),
 	    TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
 		      __entry->sched_job_id, __get_str(timeline), __entry->context,
-		      __entry->seqno, __entry->ring_name, __entry->num_ibs)
+		      __entry->seqno, __get_str(ring), __entry->num_ibs)
 );
 
 
@@ -468,7 +468,7 @@
 	    TP_PROTO(struct amdgpu_job *sched_job, struct dma_fence *fence),
 	    TP_ARGS(sched_job, fence),
 	    TP_STRUCT__entry(
-			     __field(const char *,name)
+			     __string(ring, sched_job->base.sched->name);
 			     __field(uint64_t, id)
 			     __field(struct dma_fence *, fence)
 			     __field(uint64_t, ctx)
@@ -476,14 +476,14 @@
 			     ),
 
 	    TP_fast_assign(
-			   __entry->name = sched_job->base.sched->name;
+			   __assign_str(ring, sched_job->base.sched->name)
 			   __entry->id = sched_job->base.id;
 			   __entry->fence = fence;
 			   __entry->ctx = fence->context;
 			   __entry->seqno = fence->seqno;
 			   ),
 	    TP_printk("job ring=%s, id=%llu, need pipe sync to fence=%p, context=%llu, seq=%u",
-		      __entry->name, __entry->id,
+		      __get_str(ring), __entry->id,
 		      __entry->fence, __entry->ctx,
 		      __entry->seqno)
 );
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -35,6 +35,7 @@
 #include <linux/hmm.h>
 #include <linux/pagemap.h>
 #include <linux/sched/task.h>
+#include <linux/sched/mm.h>
 #include <linux/seq_file.h>
 #include <linux/slab.h>
 #include <linux/swap.h>
@@ -788,7 +789,7 @@
 	struct hmm_mirror *mirror = bo->mn ? &bo->mn->mirror : NULL;
 	struct ttm_tt *ttm = bo->tbo.ttm;
 	struct amdgpu_ttm_tt *gtt = (void *)ttm;
-	struct mm_struct *mm = gtt->usertask->mm;
+	struct mm_struct *mm;
 	unsigned long start = gtt->userptr;
 	struct vm_area_struct *vma;
 	struct hmm_range *range;
@@ -796,25 +797,14 @@
 	uint64_t *pfns;
 	int r = 0;
 
-	if (!mm) /* Happens during process shutdown */
-		return -ESRCH;
-
 	if (unlikely(!mirror)) {
 		DRM_DEBUG_DRIVER("Failed to get hmm_mirror\n");
-		r = -EFAULT;
-		goto out;
+		return -EFAULT;
 	}
 
-	vma = find_vma(mm, start);
-	if (unlikely(!vma || start < vma->vm_start)) {
-		r = -EFAULT;
-		goto out;
-	}
-	if (unlikely((gtt->userflags & AMDGPU_GEM_USERPTR_ANONONLY) &&
-		vma->vm_file)) {
-		r = -EPERM;
-		goto out;
-	}
+	mm = mirror->hmm->mmu_notifier.mm;
+	if (!mmget_not_zero(mm)) /* Happens during process shutdown */
+		return -ESRCH;
 
 	range = kzalloc(sizeof(*range), GFP_KERNEL);
 	if (unlikely(!range)) {
@@ -847,6 +837,17 @@
 	hmm_range_wait_until_valid(range, HMM_RANGE_DEFAULT_TIMEOUT);
 
 	down_read(&mm->mmap_sem);
+	vma = find_vma(mm, start);
+	if (unlikely(!vma || start < vma->vm_start)) {
+		r = -EFAULT;
+		goto out_unlock;
+	}
+	if (unlikely((gtt->userflags & AMDGPU_GEM_USERPTR_ANONONLY) &&
+		vma->vm_file)) {
+		r = -EPERM;
+		goto out_unlock;
+	}
+
 	r = hmm_range_fault(range, 0);
 	up_read(&mm->mmap_sem);
 
@@ -865,15 +866,19 @@
 	}
 
 	gtt->range = range;
+	mmput(mm);
 
 	return 0;
 
+out_unlock:
+	up_read(&mm->mmap_sem);
 out_free_pfns:
 	hmm_range_unregister(range);
 	kvfree(pfns);
 out_free_ranges:
 	kfree(range);
 out:
+	mmput(mm);
 	return r;
 }
 
@@ -962,6 +967,7 @@
 
 release_sg:
 	kfree(ttm->sg);
+	ttm->sg = NULL;
 	return r;
 }
 
@@ -978,7 +984,7 @@
 		DMA_BIDIRECTIONAL : DMA_TO_DEVICE;
 
 	/* double check that we don't free the table twice */
-	if (!ttm->sg->sgl)
+	if (!ttm->sg || !ttm->sg->sgl)
 		return;
 
 	/* unmap the pages mapped to the device */
@@ -1294,6 +1300,7 @@
 	if (gtt && gtt->userptr) {
 		amdgpu_ttm_tt_set_user_pages(ttm, NULL);
 		kfree(ttm->sg);
+		ttm->sg = NULL;
 		ttm->page_flags &= ~TTM_PAGE_FLAG_SG;
 		return;
 	}
@@ -1634,81 +1641,25 @@
  */
 static int amdgpu_ttm_fw_reserve_vram_init(struct amdgpu_device *adev)
 {
-	struct ttm_operation_ctx ctx = { false, false };
-	struct amdgpu_bo_param bp;
-	int r = 0;
-	int i;
-	u64 vram_size = adev->gmc.visible_vram_size;
-	u64 offset = adev->fw_vram_usage.start_offset;
-	u64 size = adev->fw_vram_usage.size;
-	struct amdgpu_bo *bo;
-
-	memset(&bp, 0, sizeof(bp));
-	bp.size = adev->fw_vram_usage.size;
-	bp.byte_align = PAGE_SIZE;
-	bp.domain = AMDGPU_GEM_DOMAIN_VRAM;
-	bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
-		AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
-	bp.type = ttm_bo_type_kernel;
-	bp.resv = NULL;
+	uint64_t vram_size = adev->gmc.visible_vram_size;
+	int r;
+
 	adev->fw_vram_usage.va = NULL;
 	adev->fw_vram_usage.reserved_bo = NULL;
 
-	if (adev->fw_vram_usage.size > 0 &&
-		adev->fw_vram_usage.size <= vram_size) {
-
-		r = amdgpu_bo_create(adev, &bp,
-				     &adev->fw_vram_usage.reserved_bo);
-		if (r)
-			goto error_create;
-
-		r = amdgpu_bo_reserve(adev->fw_vram_usage.reserved_bo, false);
-		if (r)
-			goto error_reserve;
-
-		/* remove the original mem node and create a new one at the
-		 * request position
-		 */
-		bo = adev->fw_vram_usage.reserved_bo;
-		offset = ALIGN(offset, PAGE_SIZE);
-		for (i = 0; i < bo->placement.num_placement; ++i) {
-			bo->placements[i].fpfn = offset >> PAGE_SHIFT;
-			bo->placements[i].lpfn = (offset + size) >> PAGE_SHIFT;
-		}
-
-		ttm_bo_mem_put(&bo->tbo, &bo->tbo.mem);
-		r = ttm_bo_mem_space(&bo->tbo, &bo->placement,
-				     &bo->tbo.mem, &ctx);
-		if (r)
-			goto error_pin;
-
-		r = amdgpu_bo_pin_restricted(adev->fw_vram_usage.reserved_bo,
-			AMDGPU_GEM_DOMAIN_VRAM,
-			adev->fw_vram_usage.start_offset,
-			(adev->fw_vram_usage.start_offset +
-			adev->fw_vram_usage.size));
-		if (r)
-			goto error_pin;
-		r = amdgpu_bo_kmap(adev->fw_vram_usage.reserved_bo,
-			&adev->fw_vram_usage.va);
-		if (r)
-			goto error_kmap;
-
-		amdgpu_bo_unreserve(adev->fw_vram_usage.reserved_bo);
-	}
-	return r;
+	if (adev->fw_vram_usage.size == 0 ||
+	    adev->fw_vram_usage.size > vram_size)
+		return 0;
 
-error_kmap:
-	amdgpu_bo_unpin(adev->fw_vram_usage.reserved_bo);
-error_pin:
-	amdgpu_bo_unreserve(adev->fw_vram_usage.reserved_bo);
-error_reserve:
-	amdgpu_bo_unref(&adev->fw_vram_usage.reserved_bo);
-error_create:
-	adev->fw_vram_usage.va = NULL;
-	adev->fw_vram_usage.reserved_bo = NULL;
+	return amdgpu_bo_create_kernel_at(adev,
+					  adev->fw_vram_usage.start_offset,
+					  adev->fw_vram_usage.size,
+					  AMDGPU_GEM_DOMAIN_VRAM,
+					  &adev->fw_vram_usage.reserved_bo,
+					  &adev->fw_vram_usage.va);
 	return r;
 }
+
 /**
  * amdgpu_ttm_init - Init the memory management (ttm) as well as various
  * gtt/vram related fields.
@@ -1781,6 +1732,20 @@
 				    NULL, &stolen_vga_buf);
 	if (r)
 		return r;
+
+	/*
+	 * reserve one TMR (64K) memory at the top of VRAM which holds
+	 * IP Discovery data and is protected by PSP.
+	 */
+	r = amdgpu_bo_create_kernel_at(adev,
+				       adev->gmc.real_vram_size - DISCOVERY_TMR_SIZE,
+				       DISCOVERY_TMR_SIZE,
+				       AMDGPU_GEM_DOMAIN_VRAM,
+				       &adev->discovery_memory,
+				       NULL);
+	if (r)
+		return r;
+
 	DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
 		 (unsigned) (adev->gmc.real_vram_size / (1024 * 1024)));
 
@@ -1845,6 +1810,9 @@
 	void *stolen_vga_buf;
 	/* return the VGA stolen memory (if any) back to VRAM */
 	amdgpu_bo_free_kernel(&adev->stolen_vga_memory, NULL, &stolen_vga_buf);
+
+	/* return the IP Discovery TMR memory back to VRAM */
+	amdgpu_bo_free_kernel(&adev->discovery_memory, NULL, NULL);
 }
 
 /**
@@ -2008,7 +1976,7 @@
 	unsigned i;
 	int r;
 
-	if (direct_submit && !ring->sched.ready) {
+	if (!direct_submit && !ring->sched.ready) {
 		DRM_ERROR("Trying to move memory with ring turned off.\n");
 		return -EINVAL;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
@@ -568,8 +568,7 @@
 
 void amdgpu_ucode_free_bo(struct amdgpu_device *adev)
 {
-	if (adev->firmware.load_type != AMDGPU_FW_LOAD_DIRECT)
-		amdgpu_bo_free_kernel(&adev->firmware.fw_buf,
+	amdgpu_bo_free_kernel(&adev->firmware.fw_buf,
 		&adev->firmware.fw_buf_mc,
 		&adev->firmware.fw_buf_ptr);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
@@ -231,7 +231,7 @@
 		if ((adev->asic_type == CHIP_POLARIS10 ||
 		     adev->asic_type == CHIP_POLARIS11) &&
 		    (adev->uvd.fw_version < FW_1_66_16))
-			DRM_ERROR("POLARIS10/11 UVD firmware version %hu.%hu is too old.\n",
+			DRM_ERROR("POLARIS10/11 UVD firmware version %u.%u is too old.\n",
 				  version_major, version_minor);
 	} else {
 		unsigned int enc_major, enc_minor, dec_minor;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -55,11 +55,9 @@
 MODULE_FIRMWARE(FIRMWARE_RAVEN);
 MODULE_FIRMWARE(FIRMWARE_PICASSO);
 MODULE_FIRMWARE(FIRMWARE_RAVEN2);
-MODULE_FIRMWARE(FIRMWARE_ARCTURUS);
 MODULE_FIRMWARE(FIRMWARE_RENOIR);
 MODULE_FIRMWARE(FIRMWARE_NAVI10);
 MODULE_FIRMWARE(FIRMWARE_NAVI14);
-MODULE_FIRMWARE(FIRMWARE_NAVI12);
 
 static void amdgpu_vcn_idle_work_handler(struct work_struct *work);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1034,10 +1034,8 @@
 		id->oa_base != job->oa_base ||
 		id->oa_size != job->oa_size);
 	bool vm_flush_needed = job->vm_needs_flush;
-	bool pasid_mapping_needed = id->pasid != job->pasid ||
-		!id->pasid_mapping ||
-		!dma_fence_is_signaled(id->pasid_mapping);
 	struct dma_fence *fence = NULL;
+	bool pasid_mapping_needed = false;
 	unsigned patch_offset = 0;
 	int r;
 
@@ -1047,6 +1045,12 @@
 		pasid_mapping_needed = true;
 	}
 
+	mutex_lock(&id_mgr->lock);
+	if (id->pasid != job->pasid || !id->pasid_mapping ||
+	    !dma_fence_is_signaled(id->pasid_mapping))
+		pasid_mapping_needed = true;
+	mutex_unlock(&id_mgr->lock);
+
 	gds_switch_needed &= !!ring->funcs->emit_gds_switch;
 	vm_flush_needed &= !!ring->funcs->emit_vm_flush  &&
 			job->vm_pd_addr != AMDGPU_BO_INVALID_OFFSET;
@@ -1086,9 +1090,11 @@
 	}
 
 	if (pasid_mapping_needed) {
+		mutex_lock(&id_mgr->lock);
 		id->pasid = job->pasid;
 		dma_fence_put(id->pasid_mapping);
 		id->pasid_mapping = dma_fence_get(fence);
+		mutex_unlock(&id_mgr->lock);
 	}
 	dma_fence_put(fence);
 
@@ -2117,8 +2123,8 @@
 	uint64_t eaddr;
 
 	/* validate the parameters */
-	if (saddr & AMDGPU_GPU_PAGE_MASK || offset & AMDGPU_GPU_PAGE_MASK ||
-	    size == 0 || size & AMDGPU_GPU_PAGE_MASK)
+	if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK ||
+	    size == 0 || size & ~PAGE_MASK)
 		return -EINVAL;
 
 	/* make sure object fit at this offset */
@@ -2182,8 +2188,8 @@
 	int r;
 
 	/* validate the parameters */
-	if (saddr & AMDGPU_GPU_PAGE_MASK || offset & AMDGPU_GPU_PAGE_MASK ||
-	    size == 0 || size & AMDGPU_GPU_PAGE_MASK)
+	if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK ||
+	    size == 0 || size & ~PAGE_MASK)
 		return -EINVAL;
 
 	/* make sure object fit at this offset */
@@ -2327,7 +2333,7 @@
 			after->start = eaddr + 1;
 			after->last = tmp->last;
 			after->offset = tmp->offset;
-			after->offset += after->start - tmp->start;
+			after->offset += (after->start - tmp->start) << PAGE_SHIFT;
 			after->flags = tmp->flags;
 			after->bo_va = tmp->bo_va;
 			list_add(&after->list, &tmp->bo_va->invalids);
@@ -2861,10 +2867,17 @@
 	WARN_ONCE((vm->use_cpu_for_update && !amdgpu_gmc_vram_full_visible(&adev->gmc)),
 		  "CPU update of VM recommended only for large BAR system\n");
 
-	if (vm->use_cpu_for_update)
+	if (vm->use_cpu_for_update) {
+		/* Sync with last SDMA update/clear before switching to CPU */
+		r = amdgpu_bo_sync_wait(vm->root.base.bo,
+					AMDGPU_FENCE_OWNER_UNDEFINED, true);
+		if (r)
+			goto free_idr;
+
 		vm->update_funcs = &amdgpu_vm_cpu_funcs;
-	else
+	} else {
 		vm->update_funcs = &amdgpu_vm_sdma_funcs;
+	}
 	dma_fence_put(vm->last_update);
 	vm->last_update = NULL;
 
@@ -3063,6 +3076,10 @@
 	struct amdgpu_fpriv *fpriv = filp->driver_priv;
 	int r;
 
+	/* No valid flags defined yet */
+	if (args->in.flags)
+		return -EINVAL;
+
 	switch (args->in.op) {
 	case AMDGPU_VM_OP_RESERVE_VMID:
 		/* current, we only have requirement to reserve vmid from gfxhub */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
@@ -105,8 +105,8 @@
 #define AMDGPU_MMHUB_0				1
 #define AMDGPU_MMHUB_1				2
 
-/* hardcode that limit for now */
-#define AMDGPU_VA_RESERVED_SIZE			(1ULL << 20)
+/* Reserve 2MB at top/bottom of address space for kernel use */
+#define AMDGPU_VA_RESERVED_SIZE			(2ULL << 20)
 
 /* max vmids dedicated for process */
 #define AMDGPU_VM_MAX_RESERVED_VMID	1
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -311,15 +311,22 @@
 }
 
 
+/*
+ * NOTE psp_xgmi_node_info.num_hops layout is as follows:
+ * num_hops[7:6] = link type (0 = xGMI2, 1 = xGMI3, 2/3 = reserved)
+ * num_hops[5:3] = reserved
+ * num_hops[2:0] = number of hops
+ */
 int amdgpu_xgmi_get_hops_count(struct amdgpu_device *adev,
 		struct amdgpu_device *peer_adev)
 {
 	struct psp_xgmi_topology_info *top = &adev->psp.xgmi_context.top_info;
+	uint8_t num_hops_mask = 0x7;
 	int i;
 
 	for (i = 0 ; i < top->num_nodes; ++i)
 		if (top->nodes[i].node_id == peer_adev->gmc.xgmi.node_id)
-			return top->nodes[i].num_hops;
+			return top->nodes[i].num_hops & num_hops_mask;
 	return	-EINVAL;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/atom.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/atom.c
@@ -744,8 +744,8 @@
 			cjiffies = jiffies;
 			if (time_after(cjiffies, ctx->last_jump_jiffies)) {
 				cjiffies -= ctx->last_jump_jiffies;
-				if ((jiffies_to_msecs(cjiffies) > 5000)) {
-					DRM_ERROR("atombios stuck in loop for more than 5secs aborting\n");
+				if ((jiffies_to_msecs(cjiffies) > 10000)) {
+					DRM_ERROR("atombios stuck in loop for more than 10secs aborting\n");
 					ctx->abort = true;
 				}
 			} else {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/cik.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -1384,7 +1384,6 @@
 static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
 {
 	struct pci_dev *root = adev->pdev->bus->self;
-	int bridge_pos, gpu_pos;
 	u32 speed_cntl, current_data_rate;
 	int i;
 	u16 tmp16;
@@ -1419,12 +1418,7 @@
 		DRM_INFO("enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
 	}
 
-	bridge_pos = pci_pcie_cap(root);
-	if (!bridge_pos)
-		return;
-
-	gpu_pos = pci_pcie_cap(adev->pdev);
-	if (!gpu_pos)
+	if (!pci_is_pcie(root) || !pci_is_pcie(adev->pdev))
 		return;
 
 	if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) {
@@ -1434,14 +1428,8 @@
 			u16 bridge_cfg2, gpu_cfg2;
 			u32 max_lw, current_lw, tmp;
 
-			pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-			pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-			tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-			tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+			pcie_capability_set_word(root, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
+			pcie_capability_set_word(adev->pdev, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
 
 			tmp = RREG32_PCIE(ixPCIE_LC_STATUS1);
 			max_lw = (tmp & PCIE_LC_STATUS1__LC_DETECTED_LINK_WIDTH_MASK) >>
@@ -1465,15 +1453,23 @@
 
 			for (i = 0; i < 10; i++) {
 				/* check status */
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_DEVSTA,
+							  &tmp16);
 				if (tmp16 & PCI_EXP_DEVSTA_TRPND)
 					break;
 
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL,
+							  &bridge_cfg);
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_LNKCTL,
+							  &gpu_cfg);
+
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &bridge_cfg2);
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &gpu_cfg2);
 
 				tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
 				tmp |= PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
@@ -1486,26 +1482,38 @@
 				msleep(100);
 
 				/* linkctl */
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+				pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   bridge_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
+				pcie_capability_clear_and_set_word(adev->pdev, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   gpu_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
 
 				/* linkctl2 */
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
-
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (bridge_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(root,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
+
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (gpu_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(adev->pdev,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
 
 				tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
 				tmp &= ~PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
@@ -1520,15 +1528,16 @@
 	speed_cntl &= ~PCIE_LC_SPEED_CNTL__LC_FORCE_DIS_SW_SPEED_CHANGE_MASK;
 	WREG32_PCIE(ixPCIE_LC_SPEED_CNTL, speed_cntl);
 
-	pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-	tmp16 &= ~0xf;
+	pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL2, &tmp16);
+	tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
+
 	if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
-		tmp16 |= 3; /* gen3 */
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
 	else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
-		tmp16 |= 2; /* gen2 */
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
 	else
-		tmp16 |= 1; /* gen1 */
-	pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
+	pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL2, tmp16);
 
 	speed_cntl = RREG32_PCIE(ixPCIE_LC_SPEED_CNTL);
 	speed_cntl |= PCIE_LC_SPEED_CNTL__LC_INITIATE_LINK_SPEED_CHANGE_MASK;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
@@ -228,7 +228,7 @@
 	u32 extra_bits = vmid & 0xf;
 
 	/* IB packet must end on a 8 DW boundary */
-	cik_sdma_ring_insert_nop(ring, (12 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	cik_sdma_ring_insert_nop(ring, (4 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_INDIRECT_BUFFER, 0, extra_bits));
 	amdgpu_ring_write(ring, ib->gpu_addr & 0xffffffe0); /* base must be 32 byte aligned */
@@ -811,7 +811,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
@@ -1071,22 +1071,19 @@
 {
 	u32 srbm_soft_reset = 0;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-	u32 tmp = RREG32(mmSRBM_STATUS2);
+	u32 tmp;
 
-	if (tmp & SRBM_STATUS2__SDMA_BUSY_MASK) {
-		/* sdma0 */
-		tmp = RREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET);
-		tmp |= SDMA0_F32_CNTL__HALT_MASK;
-		WREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET, tmp);
-		srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA_MASK;
-	}
-	if (tmp & SRBM_STATUS2__SDMA1_BUSY_MASK) {
-		/* sdma1 */
-		tmp = RREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET);
-		tmp |= SDMA0_F32_CNTL__HALT_MASK;
-		WREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET, tmp);
-		srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA1_MASK;
-	}
+	/* sdma0 */
+	tmp = RREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET);
+	tmp |= SDMA0_F32_CNTL__HALT_MASK;
+	WREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET, tmp);
+	srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA_MASK;
+
+	/* sdma1 */
+	tmp = RREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET);
+	tmp |= SDMA0_F32_CNTL__HALT_MASK;
+	WREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET, tmp);
+	srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA1_MASK;
 
 	if (srbm_soft_reset) {
 		tmp = RREG32(mmSRBM_SOFT_RESET);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/cz_ih.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/cz_ih.c
@@ -193,19 +193,30 @@
 
 	wptr = le32_to_cpu(*ih->wptr_cpu);
 
-	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
-		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
-		/* When a ring buffer overflow happen start parsing interrupt
-		 * from the last not overwritten vector (wptr + 16). Hopefully
-		 * this should allow us to catchup.
-		 */
-		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
-			wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
-		ih->rptr = (wptr + 16) & ih->ptr_mask;
-		tmp = RREG32(mmIH_RB_CNTL);
-		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
-		WREG32(mmIH_RB_CNTL, tmp);
-	}
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	/* Double check that the overflow wasn't already cleared. */
+	wptr = RREG32(mmIH_RB_WPTR);
+
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
+
+	/* When a ring buffer overflow happen start parsing interrupt
+	 * from the last not overwritten vector (wptr + 16). Hopefully
+	 * this should allow us to catchup.
+	 */
+	dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
+		wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
+	ih->rptr = (wptr + 16) & ih->ptr_mask;
+	tmp = RREG32(mmIH_RB_CNTL);
+	tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
+	WREG32(mmIH_RB_CNTL, tmp);
+
+
+out:
 	return (wptr & ih->ptr_mask);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/df_v3_6.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/df_v3_6.c
@@ -261,23 +261,29 @@
 {
 	u32 tmp;
 
-	/* Put DF on broadcast mode */
-	adev->df_funcs->enable_broadcast_mode(adev, true);
+	if (adev->cg_flags & AMD_CG_SUPPORT_DF_MGCG) {
+		/* Put DF on broadcast mode */
+		adev->df_funcs->enable_broadcast_mode(adev, true);
 
-	if (enable && (adev->cg_flags & AMD_CG_SUPPORT_DF_MGCG)) {
-		tmp = RREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater);
-		tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
-		tmp |= DF_V3_6_MGCG_ENABLE_15_CYCLE_DELAY;
-		WREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater, tmp);
-	} else {
-		tmp = RREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater);
-		tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
-		tmp |= DF_V3_6_MGCG_DISABLE;
-		WREG32_SOC15(DF, 0, mmDF_PIE_AON0_DfGlobalClkGater, tmp);
-	}
+		if (enable) {
+			tmp = RREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater);
+			tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
+			tmp |= DF_V3_6_MGCG_ENABLE_15_CYCLE_DELAY;
+			WREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater, tmp);
+		} else {
+			tmp = RREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater);
+			tmp &= ~DF_PIE_AON0_DfGlobalClkGater__MGCGMode_MASK;
+			tmp |= DF_V3_6_MGCG_DISABLE;
+			WREG32_SOC15(DF, 0,
+					mmDF_PIE_AON0_DfGlobalClkGater, tmp);
+		}
 
-	/* Exit broadcast mode */
-	adev->df_funcs->enable_broadcast_mode(adev, false);
+		/* Exit broadcast mode */
+		adev->df_funcs->enable_broadcast_mode(adev, false);
+	}
 }
 
 static void df_v3_6_get_clockgating_state(struct amdgpu_device *adev,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
@@ -82,13 +82,6 @@
 MODULE_FIRMWARE("amdgpu/navi14_mec2.bin");
 MODULE_FIRMWARE("amdgpu/navi14_rlc.bin");
 
-MODULE_FIRMWARE("amdgpu/navi12_ce.bin");
-MODULE_FIRMWARE("amdgpu/navi12_pfp.bin");
-MODULE_FIRMWARE("amdgpu/navi12_me.bin");
-MODULE_FIRMWARE("amdgpu/navi12_mec.bin");
-MODULE_FIRMWARE("amdgpu/navi12_mec2.bin");
-MODULE_FIRMWARE("amdgpu/navi12_rlc.bin");
-
 static const struct soc15_reg_golden golden_settings_gc_10_1[] =
 {
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmCB_HW_CONTROL_4, 0xffffffff, 0x00400014),
@@ -190,9 +183,10 @@
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG, 0xffffffff, 0x20000000),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG2, 0xffffffff, 0x00000420),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG3, 0xffffffff, 0x00000200),
-	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG4, 0xffffffff, 0x04800000),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG4, 0xffffffff, 0x04900000),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DFSM_TILES_IN_FLIGHT, 0x0000ffff, 0x0000003f),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_LAST_OF_BURST_CONFIG, 0xffffffff, 0x03860204),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmGB_ADDR_CONFIG, 0x0c1800ff, 0x00000044),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmGCR_GENERAL_CNTL, 0x1ff0ffff, 0x00000500),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmGE_PRIV_CONTROL, 0x00007fff, 0x000001fe),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmGL1_PIPE_STEER, 0xffffffff, 0xe4e4e4e4),
@@ -210,12 +204,13 @@
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmPA_SC_ENHANCE_2, 0x00000820, 0x00000820),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmPA_SC_LINE_STIPPLE_STATE, 0x0000ff0f, 0x00000000),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmRMI_SPARE, 0xffffffff, 0xffff3101),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSPI_CONFIG_CNTL_1, 0x001f0000, 0x00070104),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_ALU_CLK_CTRL, 0xffffffff, 0xffffffff),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_ARB_CONFIG, 0x00000133, 0x00000130),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_LDS_CLK_CTRL, 0xffffffff, 0xffffffff),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmTA_CNTL_AUX, 0xfff7ffff, 0x01030000),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmTCP_CNTL, 0xffdf80ff, 0x479c0010),
-	SOC15_REG_GOLDEN_VALUE(GC, 0, mmUTCL1_CTRL, 0xffffffff, 0x00800000)
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmUTCL1_CTRL, 0xffffffff, 0x00c00000)
 };
 
 static const struct soc15_reg_golden golden_settings_gc_10_1_nv14[] =
@@ -993,39 +988,6 @@
 	return 0;
 }
 
-static int gfx_v10_0_csb_vram_pin(struct amdgpu_device *adev)
-{
-	int r;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false);
-	if (unlikely(r != 0))
-		return r;
-
-	r = amdgpu_bo_pin(adev->gfx.rlc.clear_state_obj,
-			AMDGPU_GEM_DOMAIN_VRAM);
-	if (!r)
-		adev->gfx.rlc.clear_state_gpu_addr =
-			amdgpu_bo_gpu_offset(adev->gfx.rlc.clear_state_obj);
-
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-	return r;
-}
-
-static void gfx_v10_0_csb_vram_unpin(struct amdgpu_device *adev)
-{
-	int r;
-
-	if (!adev->gfx.rlc.clear_state_obj)
-		return;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-	if (likely(r == 0)) {
-		amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-		amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-	}
-}
-
 static void gfx_v10_0_mec_fini(struct amdgpu_device *adev)
 {
 	amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
@@ -1785,27 +1747,34 @@
 	WREG32_SOC15(GC, 0, mmCP_INT_CNTL_RING0, tmp);
 }
 
-static void gfx_v10_0_init_csb(struct amdgpu_device *adev)
+static int gfx_v10_0_init_csb(struct amdgpu_device *adev)
 {
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
+
 	/* csib */
 	WREG32_SOC15(GC, 0, mmRLC_CSIB_ADDR_HI,
 		     adev->gfx.rlc.clear_state_gpu_addr >> 32);
 	WREG32_SOC15(GC, 0, mmRLC_CSIB_ADDR_LO,
 		     adev->gfx.rlc.clear_state_gpu_addr & 0xfffffffc);
 	WREG32_SOC15(GC, 0, mmRLC_CSIB_LENGTH, adev->gfx.rlc.clear_state_size);
+
+	return 0;
 }
 
-static void gfx_v10_0_init_pg(struct amdgpu_device *adev)
+static int gfx_v10_0_init_pg(struct amdgpu_device *adev)
 {
 	int i;
+	int r;
 
-	gfx_v10_0_init_csb(adev);
+	r = gfx_v10_0_init_csb(adev);
+	if (r)
+		return r;
 
 	for (i = 0; i < adev->num_vmhubs; i++)
 		amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
 
 	/* TODO: init power gating */
-	return;
+	return 0;
 }
 
 void gfx_v10_0_rlc_stop(struct amdgpu_device *adev)
@@ -1907,7 +1876,10 @@
 		r = gfx_v10_0_wait_for_rlc_autoload_complete(adev);
 		if (r)
 			return r;
-		gfx_v10_0_init_pg(adev);
+
+		r = gfx_v10_0_init_pg(adev);
+		if (r)
+			return r;
 
 		/* enable RLC SRM */
 		gfx_v10_0_rlc_enable_srm(adev);
@@ -1933,7 +1905,10 @@
 				return r;
 		}
 
-		gfx_v10_0_init_pg(adev);
+		r = gfx_v10_0_init_pg(adev);
+		if (r)
+			return r;
+
 		adev->gfx.rlc.funcs->start(adev);
 
 		if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) {
@@ -2400,7 +2375,7 @@
 	return 0;
 }
 
-static void gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable)
+static int gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable)
 {
 	int i;
 	u32 tmp = RREG32_SOC15(GC, 0, mmCP_ME_CNTL);
@@ -2413,7 +2388,17 @@
 			adev->gfx.gfx_ring[i].sched.ready = false;
 	}
 	WREG32_SOC15(GC, 0, mmCP_ME_CNTL, tmp);
-	udelay(50);
+
+	for (i = 0; i < adev->usec_timeout; i++) {
+		if (RREG32_SOC15(GC, 0, mmCP_STAT) == 0)
+			break;
+		udelay(1);
+	}
+
+	if (i >= adev->usec_timeout)
+		DRM_ERROR("failed to %s cp gfx\n", enable ? "unhalt" : "halt");
+
+	return 0;
 }
 
 static int gfx_v10_0_cp_gfx_load_pfp_microcode(struct amdgpu_device *adev)
@@ -3514,6 +3499,7 @@
 
 		/* reset ring buffer */
 		ring->wptr = 0;
+		atomic64_set((atomic64_t *)&adev->wb.wb[ring->wptr_offs], 0);
 		amdgpu_ring_clear_ring(ring);
 	} else {
 		amdgpu_ring_clear_ring(ring);
@@ -3534,8 +3520,10 @@
 		return r;
 
 	r = amdgpu_bo_kmap(ring->mqd_obj, (void **)&ring->mqd_ptr);
-	if (unlikely(r != 0))
+	if (unlikely(r != 0)) {
+		amdgpu_bo_unreserve(ring->mqd_obj);
 		return r;
+	}
 
 	gfx_v10_0_kiq_init_queue(ring);
 	amdgpu_bo_kunmap(ring->mqd_obj);
@@ -3732,10 +3720,6 @@
 	int r;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	r = gfx_v10_0_csb_vram_pin(adev);
-	if (r)
-		return r;
-
 	if (!amdgpu_emu_mode)
 		gfx_v10_0_init_golden_registers(adev);
 
@@ -3823,7 +3807,6 @@
 	}
 	gfx_v10_0_cp_enable(adev, false);
 	gfx_v10_0_enable_gui_idle_interrupt(adev, false);
-	gfx_v10_0_csb_vram_unpin(adev);
 
 	return 0;
 }
@@ -3936,11 +3919,13 @@
 {
 	uint64_t clock;
 
+	amdgpu_gfx_off_ctrl(adev, false);
 	mutex_lock(&adev->gfx.gpu_clock_mutex);
 	WREG32_SOC15(GC, 0, mmRLC_CAPTURE_GPU_CLOCK_COUNT, 1);
 	clock = (uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_LSB) |
 		((uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_MSB) << 32ULL);
 	mutex_unlock(&adev->gfx.gpu_clock_mutex);
+	amdgpu_gfx_off_ctrl(adev, true);
 	return clock;
 }
 
@@ -4050,10 +4035,8 @@
 		def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
 		data &= ~(RLC_CGTT_MGCG_OVERRIDE__GRBM_CGTT_SCLK_OVERRIDE_MASK |
 			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGCG_OVERRIDE_MASK |
-			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK);
-
-		/* only for Vega10 & Raven1 */
-		data |= RLC_CGTT_MGCG_OVERRIDE__RLC_CGTT_SCLK_OVERRIDE_MASK;
+			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK |
+			  RLC_CGTT_MGCG_OVERRIDE__ENABLE_CGTS_LEGACY_MASK);
 
 		if (def != data)
 			WREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE, data);
@@ -4246,11 +4229,7 @@
 	switch (adev->asic_type) {
 	case CHIP_NAVI10:
 	case CHIP_NAVI14:
-		if (!enable) {
-			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		} else
-			amdgpu_gfx_off_ctrl(adev, true);
+		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	default:
 		break;
@@ -4643,12 +4622,17 @@
 	struct amdgpu_device *adev = ring->adev;
 	struct amdgpu_kiq *kiq = &adev->gfx.kiq;
 	struct amdgpu_ring *kiq_ring = &kiq->ring;
+	unsigned long flags;
 
 	if (!kiq->pmf || !kiq->pmf->kiq_unmap_queues)
 		return -EINVAL;
 
-	if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size))
+	spin_lock_irqsave(&kiq->ring_lock, flags);
+
+	if (amdgpu_ring_alloc(kiq_ring, kiq->pmf->unmap_queues_size)) {
+		spin_unlock_irqrestore(&kiq->ring_lock, flags);
 		return -ENOMEM;
+	}
 
 	/* assert preemption condition */
 	amdgpu_ring_set_preempt_cond_exec(ring, false);
@@ -4659,6 +4643,8 @@
 				   ++ring->trail_seq);
 	amdgpu_ring_commit(kiq_ring);
 
+	spin_unlock_irqrestore(&kiq->ring_lock, flags);
+
 	/* poll the trailing fence */
 	for (i = 0; i < adev->usec_timeout; i++) {
 		if (ring->trail_seq ==
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -4554,6 +4554,8 @@
 
 	gfx_v7_0_constants_init(adev);
 
+	/* init CSB */
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
 	/* init rlc */
 	r = adev->gfx.rlc.funcs->resume(adev);
 	if (r)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -1321,39 +1321,6 @@
 	return 0;
 }
 
-static int gfx_v8_0_csb_vram_pin(struct amdgpu_device *adev)
-{
-	int r;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false);
-	if (unlikely(r != 0))
-		return r;
-
-	r = amdgpu_bo_pin(adev->gfx.rlc.clear_state_obj,
-			AMDGPU_GEM_DOMAIN_VRAM);
-	if (!r)
-		adev->gfx.rlc.clear_state_gpu_addr =
-			amdgpu_bo_gpu_offset(adev->gfx.rlc.clear_state_obj);
-
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-	return r;
-}
-
-static void gfx_v8_0_csb_vram_unpin(struct amdgpu_device *adev)
-{
-	int r;
-
-	if (!adev->gfx.rlc.clear_state_obj)
-		return;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-	if (likely(r == 0)) {
-		amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-		amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-	}
-}
-
 static void gfx_v8_0_mec_fini(struct amdgpu_device *adev)
 {
 	amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
@@ -3917,6 +3884,7 @@
 
 static void gfx_v8_0_init_csb(struct amdgpu_device *adev)
 {
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
 	/* csib */
 	WREG32(mmRLC_CSIB_ADDR_HI,
 			adev->gfx.rlc.clear_state_gpu_addr >> 32);
@@ -4837,10 +4805,6 @@
 	gfx_v8_0_init_golden_registers(adev);
 	gfx_v8_0_constants_init(adev);
 
-	r = gfx_v8_0_csb_vram_pin(adev);
-	if (r)
-		return r;
-
 	r = adev->gfx.rlc.funcs->resume(adev);
 	if (r)
 		return r;
@@ -4958,8 +4922,6 @@
 		pr_err("rlc is busy, skip halt rlc\n");
 	amdgpu_gfx_rlc_exit_safe_mode(adev);
 
-	gfx_v8_0_csb_vram_unpin(adev);
-
 	return 0;
 }
 
@@ -6184,7 +6146,23 @@
 	bool write64bit = flags & AMDGPU_FENCE_FLAG_64BIT;
 	bool int_sel = flags & AMDGPU_FENCE_FLAG_INT;
 
-	/* EVENT_WRITE_EOP - flush caches, send int */
+	/* Workaround for cache flush problems. First send a dummy EOP
+	 * event down the pipe with seq one below.
+	 */
+	amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE_EOP, 4));
+	amdgpu_ring_write(ring, (EOP_TCL1_ACTION_EN |
+				 EOP_TC_ACTION_EN |
+				 EOP_TC_WB_ACTION_EN |
+				 EVENT_TYPE(CACHE_FLUSH_AND_INV_TS_EVENT) |
+				 EVENT_INDEX(5)));
+	amdgpu_ring_write(ring, addr & 0xfffffffc);
+	amdgpu_ring_write(ring, (upper_32_bits(addr) & 0xffff) |
+				DATA_SEL(1) | INT_SEL(0));
+	amdgpu_ring_write(ring, lower_32_bits(seq - 1));
+	amdgpu_ring_write(ring, upper_32_bits(seq - 1));
+
+	/* Then send the real EOP event down the pipe:
+	 * EVENT_WRITE_EOP - flush caches, send int */
 	amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE_EOP, 4));
 	amdgpu_ring_write(ring, (EOP_TCL1_ACTION_EN |
 				 EOP_TC_ACTION_EN |
@@ -6926,7 +6904,7 @@
 		5 +  /* COND_EXEC */
 		7 +  /* PIPELINE_SYNC */
 		VI_FLUSH_GPU_TLB_NUM_WREG * 5 + 9 + /* VM_FLUSH */
-		8 +  /* FENCE for VM_FLUSH */
+		12 +  /* FENCE for VM_FLUSH */
 		20 + /* GDS switch */
 		4 + /* double SWITCH_BUFFER,
 		       the first COND_EXEC jump to the place just
@@ -6938,7 +6916,7 @@
 		31 + /*	DE_META */
 		3 + /* CNTX_CTRL */
 		5 + /* HDP_INVL */
-		8 + 8 + /* FENCE x2 */
+		12 + 12 + /* FENCE x2 */
 		2, /* SWITCH_BUFFER */
 	.emit_ib_size =	4, /* gfx_v8_0_ring_emit_ib_gfx */
 	.emit_ib = gfx_v8_0_ring_emit_ib_gfx,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -107,10 +107,6 @@
 MODULE_FIRMWARE("amdgpu/raven2_rlc.bin");
 MODULE_FIRMWARE("amdgpu/raven_kicker_rlc.bin");
 
-MODULE_FIRMWARE("amdgpu/arcturus_mec.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_mec2.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_rlc.bin");
-
 MODULE_FIRMWARE("amdgpu/renoir_ce.bin");
 MODULE_FIRMWARE("amdgpu/renoir_pfp.bin");
 MODULE_FIRMWARE("amdgpu/renoir_me.bin");
@@ -1026,6 +1022,8 @@
 			adev->gfx.mec_fw_write_wait = true;
 		break;
 	default:
+		adev->gfx.me_fw_write_wait = true;
+		adev->gfx.mec_fw_write_wait = true;
 		break;
 	}
 }
@@ -1038,17 +1036,10 @@
 	case CHIP_VEGA20:
 		break;
 	case CHIP_RAVEN:
-		/* Disable GFXOFF on original raven.  There are combinations
-		 * of sbios and platforms that are not stable.
-		 */
-		if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8))
-			adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
-		else if (!(adev->rev_id >= 0x8 || adev->pdev->device == 0x15d8)
-			 &&((adev->gfx.rlc_fw_version != 106 &&
-			     adev->gfx.rlc_fw_version < 531) ||
-			    (adev->gfx.rlc_fw_version == 53815) ||
-			    (adev->gfx.rlc_feature_version < 1) ||
-			    !adev->gfx.rlc.is_rlc_v2_1))
+		if (!(adev->rev_id >= 0x8 ||
+		      adev->pdev->device == 0x15d8) &&
+		    (adev->pm.fw_version < 0x41e2b || /* not raven1 fresh */
+		     !adev->gfx.rlc.is_rlc_v2_1)) /* without rlc save restore ucodes */
 			adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
 
 		if (adev->pm.pp_feature & PP_GFXOFF_MASK)
@@ -1680,39 +1671,6 @@
 	return 0;
 }
 
-static int gfx_v9_0_csb_vram_pin(struct amdgpu_device *adev)
-{
-	int r;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false);
-	if (unlikely(r != 0))
-		return r;
-
-	r = amdgpu_bo_pin(adev->gfx.rlc.clear_state_obj,
-			AMDGPU_GEM_DOMAIN_VRAM);
-	if (!r)
-		adev->gfx.rlc.clear_state_gpu_addr =
-			amdgpu_bo_gpu_offset(adev->gfx.rlc.clear_state_obj);
-
-	amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-	return r;
-}
-
-static void gfx_v9_0_csb_vram_unpin(struct amdgpu_device *adev)
-{
-	int r;
-
-	if (!adev->gfx.rlc.clear_state_obj)
-		return;
-
-	r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-	if (likely(r == 0)) {
-		amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-		amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-	}
-}
-
 static void gfx_v9_0_mec_fini(struct amdgpu_device *adev)
 {
 	amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
@@ -2510,7 +2468,8 @@
 
 	gfx_v9_0_tiling_mode_table_init(adev);
 
-	gfx_v9_0_setup_rb(adev);
+	if (adev->gfx.num_gfx_rings)
+		gfx_v9_0_setup_rb(adev);
 	gfx_v9_0_get_cu_info(adev, &adev->gfx.cu_info);
 	adev->gfx.config.db_debug2 = RREG32_SOC15(GC, 0, mmDB_DEBUG2);
 
@@ -2601,6 +2560,7 @@
 
 static void gfx_v9_0_init_csb(struct amdgpu_device *adev)
 {
+	adev->gfx.rlc.funcs->get_csb_buffer(adev, adev->gfx.rlc.cs_ptr);
 	/* csib */
 	WREG32_RLC(SOC15_REG_OFFSET(GC, 0, mmRLC_CSIB_ADDR_HI),
 			adev->gfx.rlc.clear_state_gpu_addr >> 32);
@@ -2930,7 +2890,10 @@
 	 * And it's needed by gfxoff feature.
 	 */
 	if (adev->gfx.rlc.is_rlc_v2_1) {
-		gfx_v9_1_init_rlc_save_restore_list(adev);
+		if (adev->asic_type == CHIP_VEGA12 ||
+		    (adev->asic_type == CHIP_RAVEN &&
+		     adev->rev_id >= 8))
+			gfx_v9_1_init_rlc_save_restore_list(adev);
 		gfx_v9_0_enable_save_restore_machine(adev);
 	}
 
@@ -2940,8 +2903,8 @@
 			      AMD_PG_SUPPORT_CP |
 			      AMD_PG_SUPPORT_GDS |
 			      AMD_PG_SUPPORT_RLC_SMU_HS)) {
-		WREG32(mmRLC_JUMP_TABLE_RESTORE,
-		       adev->gfx.rlc.cp_table_gpu_addr >> 8);
+		WREG32_SOC15(GC, 0, mmRLC_JUMP_TABLE_RESTORE,
+			     adev->gfx.rlc.cp_table_gpu_addr >> 8);
 		gfx_v9_0_init_gfx_power_gating(adev);
 	}
 }
@@ -3760,6 +3723,7 @@
 
 		/* reset ring buffer */
 		ring->wptr = 0;
+		atomic64_set((atomic64_t *)&adev->wb.wb[ring->wptr_offs], 0);
 		amdgpu_ring_clear_ring(ring);
 	} else {
 		amdgpu_ring_clear_ring(ring);
@@ -3780,8 +3744,10 @@
 		return r;
 
 	r = amdgpu_bo_kmap(ring->mqd_obj, (void **)&ring->mqd_ptr);
-	if (unlikely(r != 0))
+	if (unlikely(r != 0)) {
+		amdgpu_bo_unreserve(ring->mqd_obj);
 		return r;
+	}
 
 	gfx_v9_0_kiq_init_queue(ring);
 	amdgpu_bo_kunmap(ring->mqd_obj);
@@ -3889,10 +3855,6 @@
 
 	gfx_v9_0_constants_init(adev);
 
-	r = gfx_v9_0_csb_vram_pin(adev);
-	if (r)
-		return r;
-
 	r = adev->gfx.rlc.funcs->resume(adev);
 	if (r)
 		return r;
@@ -3944,7 +3906,8 @@
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	amdgpu_irq_put(adev, &adev->gfx.cp_ecc_error_irq, 0);
+	if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__GFX))
+		amdgpu_irq_put(adev, &adev->gfx.cp_ecc_error_irq, 0);
 	amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
 	amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0);
 
@@ -3978,8 +3941,6 @@
 	gfx_v9_0_cp_enable(adev, false);
 	adev->gfx.rlc.funcs->stop(adev);
 
-	gfx_v9_0_csb_vram_unpin(adev);
-
 	return 0;
 }
 
@@ -4084,11 +4045,13 @@
 {
 	uint64_t clock;
 
+	amdgpu_gfx_off_ctrl(adev, false);
 	mutex_lock(&adev->gfx.gpu_clock_mutex);
 	WREG32_SOC15(GC, 0, mmRLC_CAPTURE_GPU_CLOCK_COUNT, 1);
 	clock = (uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_LSB) |
 		((uint64_t)RREG32_SOC15(GC, 0, mmRLC_GPU_CLOCK_COUNT_MSB) << 32ULL);
 	mutex_unlock(&adev->gfx.gpu_clock_mutex);
+	amdgpu_gfx_off_ctrl(adev, true);
 	return clock;
 }
 
@@ -4698,7 +4661,7 @@
 	amdgpu_gfx_rlc_enter_safe_mode(adev);
 
 	/* Enable 3D CGCG/CGLS */
-	if (enable && (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)) {
+	if (enable) {
 		/* write cmd to clear cgcg/cgls ov */
 		def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
 		/* unset CGCG override */
@@ -4710,8 +4673,12 @@
 		/* enable 3Dcgcg FSM(0x0000363f) */
 		def = RREG32_SOC15(GC, 0, mmRLC_CGCG_CGLS_CTRL_3D);
 
-		data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
-			RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
+		if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)
+			data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
+				RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
+		else
+			data = 0x0 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT;
+
 		if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGLS)
 			data |= (0x000F << RLC_CGCG_CGLS_CTRL_3D__CGLS_REP_COMPANSAT_DELAY__SHIFT) |
 				RLC_CGCG_CGLS_CTRL_3D__CGLS_EN_MASK;
@@ -4838,10 +4805,9 @@
 	switch (adev->asic_type) {
 	case CHIP_RAVEN:
 	case CHIP_RENOIR:
-		if (!enable) {
+		if (!enable)
 			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		}
+
 		if (adev->pg_flags & AMD_PG_SUPPORT_RLC_SMU_HS) {
 			gfx_v9_0_enable_sck_slow_down_on_power_up(adev, true);
 			gfx_v9_0_enable_sck_slow_down_on_power_down(adev, true);
@@ -4867,12 +4833,7 @@
 			amdgpu_gfx_off_ctrl(adev, true);
 		break;
 	case CHIP_VEGA12:
-		if (!enable) {
-			amdgpu_gfx_off_ctrl(adev, false);
-			cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
-		} else {
-			amdgpu_gfx_off_ctrl(adev, true);
-		}
+		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	default:
 		break;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
@@ -365,6 +365,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(GC, 0,
 				 mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(GC, 0, mmVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(GC, 0, mmVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
@@ -350,6 +350,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(GC, 0,
 				 mmGCVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(GC, 0, mmGCVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(GC, 0, mmGCVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -230,12 +230,36 @@
 				   unsigned int vmhub, uint32_t flush_type)
 {
 	struct amdgpu_vmhub *hub = &adev->vmhub[vmhub];
-	u32 tmp = gmc_v10_0_get_invalidate_req(vmid, flush_type);
+	u32 inv_req = gmc_v10_0_get_invalidate_req(vmid, flush_type);
+	u32 tmp;
 	/* Use register 17 for GART */
 	const unsigned eng = 17;
 	unsigned int i;
 
-	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp);
+	spin_lock(&adev->gmc.invalidate_lock);
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (vmhub == AMDGPU_MMHUB_0 ||
+	    vmhub == AMDGPU_MMHUB_1) {
+		for (i = 0; i < adev->usec_timeout; i++) {
+			/* a read return value of 1 means semaphore acuqire */
+			tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng);
+			if (tmp & 0x1)
+				break;
+			udelay(1);
+		}
+
+		if (i >= adev->usec_timeout)
+			DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n");
+	}
+
+	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, inv_req);
 
 	/*
 	 * Issue a dummy read to wait for the ACK register to be cleared
@@ -254,6 +278,17 @@
 		udelay(1);
 	}
 
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (vmhub == AMDGPU_MMHUB_0 ||
+	    vmhub == AMDGPU_MMHUB_1)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		WREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng, 0);
+
+	spin_unlock(&adev->gmc.invalidate_lock);
+
 	if (i < adev->usec_timeout)
 		return;
 
@@ -338,6 +373,20 @@
 	uint32_t req = gmc_v10_0_get_invalidate_req(vmid, 0);
 	unsigned eng = ring->vm_inv_eng;
 
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (ring->funcs->vmhub == AMDGPU_MMHUB_0 ||
+	    ring->funcs->vmhub == AMDGPU_MMHUB_1)
+		/* a read return value of 1 means semaphore acuqire */
+		amdgpu_ring_emit_reg_wait(ring,
+					  hub->vm_inv_eng0_sem + eng, 0x1, 0x1);
+
 	amdgpu_ring_emit_wreg(ring, hub->ctx0_ptb_addr_lo32 + (2 * vmid),
 			      lower_32_bits(pd_addr));
 
@@ -348,6 +397,15 @@
 					    hub->vm_inv_eng0_ack + eng,
 					    req, 1 << vmid);
 
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (ring->funcs->vmhub == AMDGPU_MMHUB_0 ||
+	    ring->funcs->vmhub == AMDGPU_MMHUB_1)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		amdgpu_ring_emit_wreg(ring, hub->vm_inv_eng0_sem + eng, 0);
+
 	return pd_addr;
 }
 
@@ -845,6 +903,8 @@
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	gmc_v10_0_gart_disable(adev);
+
 	if (amdgpu_sriov_vf(adev)) {
 		/* full access mode, so don't touch any GMC register */
 		DRM_DEBUG("For SRIOV client, shouldn't do anything.\n");
@@ -852,7 +912,6 @@
 	}
 
 	amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
-	gmc_v10_0_gart_disable(adev);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
@@ -863,12 +863,12 @@
 
 	adev->gmc.mc_mask = 0xffffffffffULL;
 
-	r = dma_set_mask_and_coherent(adev->dev, DMA_BIT_MASK(44));
+	r = dma_set_mask_and_coherent(adev->dev, DMA_BIT_MASK(40));
 	if (r) {
 		dev_warn(adev->dev, "amdgpu: No suitable DMA available.\n");
 		return r;
 	}
-	adev->need_swiotlb = drm_need_swiotlb(44);
+	adev->need_swiotlb = drm_need_swiotlb(40);
 
 	r = gmc_v6_0_init_microcode(adev);
 	if (r) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -524,10 +524,10 @@
 static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
 {
 	int r;
+	u32 tmp;
 
 	adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
 	if (!adev->gmc.vram_width) {
-		u32 tmp;
 		int chansize, numchan;
 
 		/* Get VRAM informations */
@@ -571,8 +571,15 @@
 		adev->gmc.vram_width = numchan * chansize;
 	}
 	/* size in MB on si */
-	adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
-	adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+	tmp = RREG32(mmCONFIG_MEMSIZE);
+	/* some boards may have garbage in the upper 16 bits */
+	if (tmp & 0xffff0000) {
+		DRM_INFO("Probable bad vram size: 0x%08x\n", tmp);
+		if (tmp & 0xffff)
+			tmp &= 0xffff;
+	}
+	adev->gmc.mc_vram_size = tmp * 1024ULL * 1024ULL;
+	adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
 
 	if (!(adev->flags & AMD_IS_APU)) {
 		r = amdgpu_device_resize_fb_bar(adev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -448,6 +448,24 @@
 	return req;
 }
 
+/**
+ * gmc_v9_0_use_invalidate_semaphore - judge whether to use semaphore
+ *
+ * @adev: amdgpu_device pointer
+ * @vmhub: vmhub type
+ *
+ */
+static bool gmc_v9_0_use_invalidate_semaphore(struct amdgpu_device *adev,
+				       uint32_t vmhub)
+{
+	return ((vmhub == AMDGPU_MMHUB_0 ||
+		 vmhub == AMDGPU_MMHUB_1) &&
+		(!amdgpu_sriov_vf(adev)) &&
+		(!(adev->asic_type == CHIP_RAVEN &&
+		   adev->rev_id < 0x8 &&
+		   adev->pdev->device == 0x15d8)));
+}
+
 /*
  * GART
  * VMID 0 is the physical GPU addresses as used by the kernel.
@@ -467,14 +485,15 @@
 static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid,
 					uint32_t vmhub, uint32_t flush_type)
 {
+	bool use_semaphore = gmc_v9_0_use_invalidate_semaphore(adev, vmhub);
 	const unsigned eng = 17;
-	u32 j, tmp;
+	u32 j, inv_req, tmp;
 	struct amdgpu_vmhub *hub;
 
 	BUG_ON(vmhub >= adev->num_vmhubs);
 
 	hub = &adev->vmhub[vmhub];
-	tmp = gmc_v9_0_get_invalidate_req(vmid, flush_type);
+	inv_req = gmc_v9_0_get_invalidate_req(vmid, flush_type);
 
 	/* This is necessary for a HW workaround under SRIOV as well
 	 * as GFXOFF under bare metal
@@ -485,13 +504,35 @@
 		uint32_t req = hub->vm_inv_eng0_req + eng;
 		uint32_t ack = hub->vm_inv_eng0_ack + eng;
 
-		amdgpu_virt_kiq_reg_write_reg_wait(adev, req, ack, tmp,
+		amdgpu_virt_kiq_reg_write_reg_wait(adev, req, ack, inv_req,
 				1 << vmid);
 		return;
 	}
 
 	spin_lock(&adev->gmc.invalidate_lock);
-	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp);
+
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore) {
+		for (j = 0; j < adev->usec_timeout; j++) {
+			/* a read return value of 1 means semaphore acuqire */
+			tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng);
+			if (tmp & 0x1)
+				break;
+			udelay(1);
+		}
+
+		if (j >= adev->usec_timeout)
+			DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n");
+	}
+
+	WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, inv_req);
 
 	/*
 	 * Issue a dummy read to wait for the ACK register to be cleared
@@ -506,7 +547,17 @@
 			break;
 		udelay(1);
 	}
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		WREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng, 0);
+
 	spin_unlock(&adev->gmc.invalidate_lock);
+
 	if (j < adev->usec_timeout)
 		return;
 
@@ -516,11 +567,25 @@
 static uint64_t gmc_v9_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring,
 					    unsigned vmid, uint64_t pd_addr)
 {
+	bool use_semaphore = gmc_v9_0_use_invalidate_semaphore(ring->adev, ring->funcs->vmhub);
 	struct amdgpu_device *adev = ring->adev;
 	struct amdgpu_vmhub *hub = &adev->vmhub[ring->funcs->vmhub];
 	uint32_t req = gmc_v9_0_get_invalidate_req(vmid, 0);
 	unsigned eng = ring->vm_inv_eng;
 
+	/*
+	 * It may lose gpuvm invalidate acknowldege state across power-gating
+	 * off cycle, add semaphore acquire before invalidation and semaphore
+	 * release after invalidation to avoid entering power gated state
+	 * to WA the Issue
+	 */
+
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore)
+		/* a read return value of 1 means semaphore acuqire */
+		amdgpu_ring_emit_reg_wait(ring,
+					  hub->vm_inv_eng0_sem + eng, 0x1, 0x1);
+
 	amdgpu_ring_emit_wreg(ring, hub->ctx0_ptb_addr_lo32 + (2 * vmid),
 			      lower_32_bits(pd_addr));
 
@@ -531,6 +596,14 @@
 					    hub->vm_inv_eng0_ack + eng,
 					    req, 1 << vmid);
 
+	/* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */
+	if (use_semaphore)
+		/*
+		 * add semaphore release after invalidation,
+		 * write with 0 means semaphore release
+		 */
+		amdgpu_ring_emit_wreg(ring, hub->vm_inv_eng0_sem + eng, 0);
+
 	return pd_addr;
 }
 
@@ -1310,6 +1383,19 @@
 }
 
 /**
+ * gmc_v9_0_restore_registers - restores regs
+ *
+ * @adev: amdgpu_device pointer
+ *
+ * This restores register values, saved at suspend.
+ */
+static void gmc_v9_0_restore_registers(struct amdgpu_device *adev)
+{
+	if (adev->asic_type == CHIP_RAVEN)
+		WREG32(mmDCHUBBUB_SDPIF_MMIO_CNTRL_0, adev->gmc.sdpif_register);
+}
+
+/**
  * gmc_v9_0_gart_enable - gart enable
  *
  * @adev: amdgpu_device pointer
@@ -1406,6 +1492,20 @@
 }
 
 /**
+ * gmc_v9_0_save_registers - saves regs
+ *
+ * @adev: amdgpu_device pointer
+ *
+ * This saves potential register values that should be
+ * restored upon resume
+ */
+static void gmc_v9_0_save_registers(struct amdgpu_device *adev)
+{
+	if (adev->asic_type == CHIP_RAVEN)
+		adev->gmc.sdpif_register = RREG32(mmDCHUBBUB_SDPIF_MMIO_CNTRL_0);
+}
+
+/**
  * gmc_v9_0_gart_disable - gart disable
  *
  * @adev: amdgpu_device pointer
@@ -1426,24 +1526,31 @@
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	gmc_v9_0_gart_disable(adev);
+
 	if (amdgpu_sriov_vf(adev)) {
 		/* full access mode, so don't touch any GMC register */
 		DRM_DEBUG("For SRIOV client, shouldn't do anything.\n");
 		return 0;
 	}
 
-	amdgpu_irq_put(adev, &adev->gmc.ecc_irq, 0);
 	amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
-	gmc_v9_0_gart_disable(adev);
 
 	return 0;
 }
 
 static int gmc_v9_0_suspend(void *handle)
 {
+	int r;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	return gmc_v9_0_hw_fini(adev);
+	r = gmc_v9_0_hw_fini(adev);
+	if (r)
+		return r;
+
+	gmc_v9_0_save_registers(adev);
+
+	return 0;
 }
 
 static int gmc_v9_0_resume(void *handle)
@@ -1451,6 +1558,7 @@
 	int r;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	gmc_v9_0_restore_registers(adev);
 	r = gmc_v9_0_hw_init(adev);
 	if (r)
 		return r;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/iceland_ih.c
@@ -193,19 +193,29 @@
 
 	wptr = le32_to_cpu(*ih->wptr_cpu);
 
-	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
-		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
-		/* When a ring buffer overflow happen start parsing interrupt
-		 * from the last not overwritten vector (wptr + 16). Hopefully
-		 * this should allow us to catchup.
-		 */
-		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
-			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
-		ih->rptr = (wptr + 16) & ih->ptr_mask;
-		tmp = RREG32(mmIH_RB_CNTL);
-		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
-		WREG32(mmIH_RB_CNTL, tmp);
-	}
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	/* Double check that the overflow wasn't already cleared. */
+	wptr = RREG32(mmIH_RB_WPTR);
+
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
+	/* When a ring buffer overflow happen start parsing interrupt
+	 * from the last not overwritten vector (wptr + 16). Hopefully
+	 * this should allow us to catchup.
+	 */
+	dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
+		wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
+	ih->rptr = (wptr + 16) & ih->ptr_mask;
+	tmp = RREG32(mmIH_RB_CNTL);
+	tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
+	WREG32(mmIH_RB_CNTL, tmp);
+
+
+out:
 	return (wptr & ih->ptr_mask);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/kv_dpm.c
@@ -1609,19 +1609,7 @@
 
 static u8 kv_get_acp_boot_level(struct amdgpu_device *adev)
 {
-	u8 i;
-	struct amdgpu_clock_voltage_dependency_table *table =
-		&adev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table;
-
-	for (i = 0; i < table->count; i++) {
-		if (table->entries[i].clk >= 0) /* XXX */
-			break;
-	}
-
-	if (i >= table->count)
-		i = table->count - 1;
-
-	return i;
+	return 0;
 }
 
 static void kv_update_acp_boot_level(struct amdgpu_device *adev)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/mes_v10_1.c
@@ -29,8 +29,6 @@
 #include "gc/gc_10_1_0_offset.h"
 #include "gc/gc_10_1_0_sh_mask.h"
 
-MODULE_FIRMWARE("amdgpu/navi10_mes.bin");
-
 static int mes_v10_1_add_hw_queue(struct amdgpu_mes *mes,
 				  struct mes_add_queue_input *input)
 {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
@@ -182,6 +182,7 @@
 	tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1);
 	WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL2, tmp);
 
+	tmp = mmVM_L2_CNTL3_DEFAULT;
 	if (adev->gmc.translate_further) {
 		tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 12);
 		tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3,
@@ -418,6 +419,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(MMHUB, 0,
 				 mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(MMHUB, 0, mmVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(MMHUB, 0, mmVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
@@ -341,6 +341,8 @@
 	hub->ctx0_ptb_addr_hi32 =
 		SOC15_REG_OFFSET(MMHUB, 0,
 				 mmMMVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
+	hub->vm_inv_eng0_sem =
+		SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_INVALIDATE_ENG0_SEM);
 	hub->vm_inv_eng0_req =
 		SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_INVALIDATE_ENG0_REQ);
 	hub->vm_inv_eng0_ack =
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
@@ -502,6 +502,10 @@
 			SOC15_REG_OFFSET(MMHUB, 0,
 			    mmVML2VC0_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32) +
 			    i * MMHUB_INSTANCE_REGISTER_OFFSET;
+		hub[i]->vm_inv_eng0_sem =
+			SOC15_REG_OFFSET(MMHUB, 0,
+					 mmVML2VC0_VM_INVALIDATE_ENG0_SEM) +
+					 i * MMHUB_INSTANCE_REGISTER_OFFSET;
 		hub[i]->vm_inv_eng0_req =
 			SOC15_REG_OFFSET(MMHUB, 0,
 					 mmVML2VC0_VM_INVALIDATE_ENG0_REQ) +
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/navi10_sdma_pkt_open.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/navi10_sdma_pkt_open.h
@@ -73,6 +73,22 @@
 #define SDMA_OP_AQL_COPY  0
 #define SDMA_OP_AQL_BARRIER_OR  0
 
+#define SDMA_GCR_RANGE_IS_PA		(1 << 18)
+#define SDMA_GCR_SEQ(x)			(((x) & 0x3) << 16)
+#define SDMA_GCR_GL2_WB			(1 << 15)
+#define SDMA_GCR_GL2_INV		(1 << 14)
+#define SDMA_GCR_GL2_DISCARD		(1 << 13)
+#define SDMA_GCR_GL2_RANGE(x)		(((x) & 0x3) << 11)
+#define SDMA_GCR_GL2_US			(1 << 10)
+#define SDMA_GCR_GL1_INV		(1 << 9)
+#define SDMA_GCR_GLV_INV		(1 << 8)
+#define SDMA_GCR_GLK_INV		(1 << 7)
+#define SDMA_GCR_GLK_WB			(1 << 6)
+#define SDMA_GCR_GLM_INV		(1 << 5)
+#define SDMA_GCR_GLM_WB			(1 << 4)
+#define SDMA_GCR_GL1_RANGE(x)		(((x) & 0x3) << 2)
+#define SDMA_GCR_GLI_INV(x)		(((x) & 0x3) << 0)
+
 /*define for op field*/
 #define SDMA_PKT_HEADER_op_offset 0
 #define SDMA_PKT_HEADER_op_mask   0x000000FF
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/nv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/nv.c
@@ -660,6 +660,12 @@
 		adev->pg_flags = AMD_PG_SUPPORT_VCN |
 			AMD_PG_SUPPORT_VCN_DPG |
 			AMD_PG_SUPPORT_ATHUB;
+		/* guest vm gets 0xffffffff when reading RCC_DEV0_EPF0_STRAP0,
+		 * as a consequence, the rev_id and external_rev_id are wrong.
+		 * workaround it by hardcoding rev_id to 0 (default value).
+		 */
+		if (amdgpu_sriov_vf(adev))
+			adev->rev_id = 0;
 		adev->external_rev_id = adev->rev_id + 0xa;
 		break;
 	default:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h
@@ -44,7 +44,7 @@
     GFX_CTRL_CMD_ID_DISABLE_INT     = 0x00060000,   /* disable PSP-to-Gfx interrupt */
     GFX_CTRL_CMD_ID_MODE1_RST       = 0x00070000,   /* trigger the Mode 1 reset */
     GFX_CTRL_CMD_ID_GBR_IH_SET      = 0x00080000,   /* set Gbr IH_RB_CNTL registers */
-    GFX_CTRL_CMD_ID_CONSUME_CMD     = 0x000A0000,   /* send interrupt to psp for updating write pointer of vf */
+    GFX_CTRL_CMD_ID_CONSUME_CMD     = 0x00090000,   /* send interrupt to psp for updating write pointer of vf */
     GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING = 0x000C0000, /* destroy GPCOM ring */
 
     GFX_CTRL_CMD_ID_MAX             = 0x000F0000,   /* max command ID */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
@@ -40,15 +40,10 @@
 
 MODULE_FIRMWARE("amdgpu/vega20_sos.bin");
 MODULE_FIRMWARE("amdgpu/vega20_asd.bin");
-MODULE_FIRMWARE("amdgpu/vega20_ta.bin");
 MODULE_FIRMWARE("amdgpu/navi10_sos.bin");
 MODULE_FIRMWARE("amdgpu/navi10_asd.bin");
 MODULE_FIRMWARE("amdgpu/navi14_sos.bin");
 MODULE_FIRMWARE("amdgpu/navi14_asd.bin");
-MODULE_FIRMWARE("amdgpu/navi12_sos.bin");
-MODULE_FIRMWARE("amdgpu/navi12_asd.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_sos.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_asd.bin");
 
 /* address block */
 #define smnMP1_FIRMWARE_FLAGS		0x3010024
@@ -398,6 +393,34 @@
 	return false;
 }
 
+static int psp_v11_0_ring_stop(struct psp_context *psp,
+			      enum psp_ring_type ring_type)
+{
+	int ret = 0;
+	struct amdgpu_device *adev = psp->adev;
+
+	/* Write the ring destroy command*/
+	if (psp_v11_0_support_vmr_ring(psp))
+		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101,
+				     GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING);
+	else
+		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64,
+				     GFX_CTRL_CMD_ID_DESTROY_RINGS);
+
+	/* there might be handshake issue with hardware which needs delay */
+	mdelay(20);
+
+	/* Wait for response flag (bit 31) */
+	if (psp_v11_0_support_vmr_ring(psp))
+		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
+				   0x80000000, 0x80000000, false);
+	else
+		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
+				   0x80000000, 0x80000000, false);
+
+	return ret;
+}
+
 static int psp_v11_0_ring_create(struct psp_context *psp,
 				enum psp_ring_type ring_type)
 {
@@ -407,6 +430,12 @@
 	struct amdgpu_device *adev = psp->adev;
 
 	if (psp_v11_0_support_vmr_ring(psp)) {
+		ret = psp_v11_0_ring_stop(psp, ring_type);
+		if (ret) {
+			DRM_ERROR("psp_v11_0_ring_stop_sriov failed!\n");
+			return ret;
+		}
+
 		/* Write low address of the ring to C2PMSG_102 */
 		psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr);
 		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_102, psp_ring_reg);
@@ -451,33 +480,6 @@
 	return ret;
 }
 
-static int psp_v11_0_ring_stop(struct psp_context *psp,
-			      enum psp_ring_type ring_type)
-{
-	int ret = 0;
-	struct amdgpu_device *adev = psp->adev;
-
-	/* Write the ring destroy command*/
-	if (psp_v11_0_support_vmr_ring(psp))
-		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101,
-				     GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING);
-	else
-		WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64,
-				     GFX_CTRL_CMD_ID_DESTROY_RINGS);
-
-	/* there might be handshake issue with hardware which needs delay */
-	mdelay(20);
-
-	/* Wait for response flag (bit 31) */
-	if (psp_v11_0_support_vmr_ring(psp))
-		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-				   0x80000000, 0x80000000, false);
-	else
-		ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-				   0x80000000, 0x80000000, false);
-
-	return ret;
-}
 
 static int psp_v11_0_ring_destroy(struct psp_context *psp,
 				 enum psp_ring_type ring_type)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
@@ -255,7 +255,7 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 
 	/* IB packet must end on a 8 DW boundary */
-	sdma_v2_4_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	sdma_v2_4_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -750,7 +750,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -429,7 +429,7 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 
 	/* IB packet must end on a 8 DW boundary */
-	sdma_v3_0_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	sdma_v3_0_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -1021,7 +1021,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
@@ -67,7 +67,6 @@
 MODULE_FIRMWARE("amdgpu/raven_sdma.bin");
 MODULE_FIRMWARE("amdgpu/picasso_sdma.bin");
 MODULE_FIRMWARE("amdgpu/raven2_sdma.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_sdma.bin");
 MODULE_FIRMWARE("amdgpu/renoir_sdma.bin");
 
 #define SDMA0_POWER_CNTL__ON_OFF_CONDITION_HOLD_TIME_MASK  0x000000F8L
@@ -698,7 +697,7 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 
 	/* IB packet must end on a 8 DW boundary */
-	sdma_v4_0_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	sdma_v4_0_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -1579,7 +1578,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
@@ -1911,9 +1910,11 @@
 	if (amdgpu_sriov_vf(adev))
 		return 0;
 
-	for (i = 0; i < adev->sdma.num_instances; i++) {
-		amdgpu_irq_put(adev, &adev->sdma.ecc_irq,
-			       AMDGPU_SDMA_IRQ_INSTANCE0 + i);
+	if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__SDMA)) {
+		for (i = 0; i < adev->sdma.num_instances; i++) {
+			amdgpu_irq_put(adev, &adev->sdma.ecc_irq,
+				       AMDGPU_SDMA_IRQ_INSTANCE0 + i);
+		}
 	}
 
 	sdma_v4_0_ctx_switch_enable(adev, false);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
@@ -48,9 +48,6 @@
 MODULE_FIRMWARE("amdgpu/navi14_sdma.bin");
 MODULE_FIRMWARE("amdgpu/navi14_sdma1.bin");
 
-MODULE_FIRMWARE("amdgpu/navi12_sdma.bin");
-MODULE_FIRMWARE("amdgpu/navi12_sdma1.bin");
-
 #define SDMA1_REG_OFFSET 0x600
 #define SDMA0_HYP_DEC_REG_START 0x5880
 #define SDMA0_HYP_DEC_REG_END 0x5893
@@ -100,6 +97,10 @@
 
 static const struct soc15_reg_golden golden_settings_sdma_nv12[] = {
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA0_RLC3_RB_WPTR_POLL_CNTL, 0xfffffff7, 0x00403000),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA0_GB_ADDR_CONFIG, 0x001877ff, 0x00000044),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA0_GB_ADDR_CONFIG_READ, 0x001877ff, 0x00000044),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA1_GB_ADDR_CONFIG, 0x001877ff, 0x00000044),
+	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA1_GB_ADDR_CONFIG_READ, 0x001877ff, 0x00000044),
 	SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA1_RLC3_RB_WPTR_POLL_CNTL, 0xfffffff7, 0x00403000),
 };
 
@@ -286,30 +287,20 @@
 static uint64_t sdma_v5_0_ring_get_wptr(struct amdgpu_ring *ring)
 {
 	struct amdgpu_device *adev = ring->adev;
-	u64 *wptr = NULL;
-	uint64_t local_wptr = 0;
+	u64 wptr;
 
 	if (ring->use_doorbell) {
 		/* XXX check if swapping is necessary on BE */
-		wptr = ((u64 *)&adev->wb.wb[ring->wptr_offs]);
-		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", *wptr);
-		*wptr = (*wptr) >> 2;
-		DRM_DEBUG("wptr/doorbell after shift == 0x%016llx\n", *wptr);
+		wptr = READ_ONCE(*((u64 *)&adev->wb.wb[ring->wptr_offs]));
+		DRM_DEBUG("wptr/doorbell before shift == 0x%016llx\n", wptr);
 	} else {
-		u32 lowbit, highbit;
-
-		wptr = &local_wptr;
-		lowbit = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR)) >> 2;
-		highbit = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI)) >> 2;
-
-		DRM_DEBUG("wptr [%i]high== 0x%08x low==0x%08x\n",
-				ring->me, highbit, lowbit);
-		*wptr = highbit;
-		*wptr = (*wptr) << 32;
-		*wptr |= lowbit;
+		wptr = RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI));
+		wptr = wptr << 32;
+		wptr |= RREG32(sdma_v5_0_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR));
+		DRM_DEBUG("wptr before shift [%i] wptr == 0x%016llx\n", ring->me, wptr);
 	}
 
-	return *wptr;
+	return wptr >> 2;
 }
 
 /**
@@ -382,8 +373,27 @@
 	unsigned vmid = AMDGPU_JOB_GET_VMID(job);
 	uint64_t csa_mc_addr = amdgpu_sdma_get_csa_mc_addr(ring, vmid);
 
-	/* IB packet must end on a 8 DW boundary */
-	sdma_v5_0_ring_insert_nop(ring, (10 - (lower_32_bits(ring->wptr) & 7)) % 8);
+	/* Invalidate L2, because if we don't do it, we might get stale cache
+	 * lines from previous IBs.
+	 */
+	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_GCR_REQ));
+	amdgpu_ring_write(ring, 0);
+	amdgpu_ring_write(ring, (SDMA_GCR_GL2_INV |
+				 SDMA_GCR_GL2_WB |
+				 SDMA_GCR_GLM_INV |
+				 SDMA_GCR_GLM_WB) << 16);
+	amdgpu_ring_write(ring, 0xffffff80);
+	amdgpu_ring_write(ring, 0xffff);
+
+	/* An IB packet must end on a 8 DW boundary--the next dword
+	 * must be on a 8-dword boundary. Our IB packet below is 6
+	 * dwords long, thus add x number of NOPs, such that, in
+	 * modular arithmetic,
+	 * wptr + 6 + x = 8k, k >= 0, which in C is,
+	 * (wptr + 6 + x) % 8 = 0.
+	 * The expression below, is a solution of x.
+	 */
+	sdma_v5_0_ring_insert_nop(ring, (2 - lower_32_bits(ring->wptr)) & 7);
 
 	amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_INDIRECT) |
 			  SDMA_PKT_INDIRECT_HEADER_VMID(vmid & 0xf));
@@ -1086,10 +1096,10 @@
 }
 
 /**
- * sdma_v5_0_ring_pad_ib - pad the IB to the required number of dw
- *
+ * sdma_v5_0_ring_pad_ib - pad the IB
  * @ib: indirect buffer to fill with padding
  *
+ * Pad the IB with NOPs to a boundary multiple of 8.
  */
 static void sdma_v5_0_ring_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib)
 {
@@ -1097,7 +1107,7 @@
 	u32 pad_count;
 	int i;
 
-	pad_count = (8 - (ib->length_dw & 0x7)) % 8;
+	pad_count = (-ib->length_dw) & 0x7;
 	for (i = 0; i < pad_count; i++)
 		if (sdma && sdma->burst_nop && (i == 0))
 			ib->ptr[ib->length_dw++] =
@@ -1254,8 +1264,12 @@
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	int i;
 
-	for (i = 0; i < adev->sdma.num_instances; i++)
+	for (i = 0; i < adev->sdma.num_instances; i++) {
+		if (adev->sdma.instance[i].fw != NULL)
+			release_firmware(adev->sdma.instance[i].fw);
+
 		amdgpu_ring_fini(&adev->sdma.instance[i].ring);
+	}
 
 	return 0;
 }
@@ -1600,7 +1614,7 @@
 		SOC15_FLUSH_GPU_TLB_NUM_WREG * 3 +
 		SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT * 6 * 2 +
 		10 + 10 + 10, /* sdma_v5_0_ring_emit_fence x3 for user fence, vm fence */
-	.emit_ib_size = 7 + 6, /* sdma_v5_0_ring_emit_ib */
+	.emit_ib_size = 5 + 7 + 6, /* sdma_v5_0_ring_emit_ib */
 	.emit_ib = sdma_v5_0_ring_emit_ib,
 	.emit_fence = sdma_v5_0_ring_emit_fence,
 	.emit_pipeline_sync = sdma_v5_0_ring_emit_pipeline_sync,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/si.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/si.c
@@ -1633,7 +1633,6 @@
 static void si_pcie_gen3_enable(struct amdgpu_device *adev)
 {
 	struct pci_dev *root = adev->pdev->bus->self;
-	int bridge_pos, gpu_pos;
 	u32 speed_cntl, current_data_rate;
 	int i;
 	u16 tmp16;
@@ -1668,12 +1667,7 @@
 		DRM_INFO("enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
 	}
 
-	bridge_pos = pci_pcie_cap(root);
-	if (!bridge_pos)
-		return;
-
-	gpu_pos = pci_pcie_cap(adev->pdev);
-	if (!gpu_pos)
+	if (!pci_is_pcie(root) || !pci_is_pcie(adev->pdev))
 		return;
 
 	if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) {
@@ -1682,14 +1676,8 @@
 			u16 bridge_cfg2, gpu_cfg2;
 			u32 max_lw, current_lw, tmp;
 
-			pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-			pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-			tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-			tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+			pcie_capability_set_word(root, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
+			pcie_capability_set_word(adev->pdev, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
 
 			tmp = RREG32_PCIE(PCIE_LC_STATUS1);
 			max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
@@ -1706,15 +1694,23 @@
 			}
 
 			for (i = 0; i < 10; i++) {
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_DEVSTA,
+							  &tmp16);
 				if (tmp16 & PCI_EXP_DEVSTA_TRPND)
 					break;
 
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL,
+							  &bridge_cfg);
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_LNKCTL,
+							  &gpu_cfg);
+
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &bridge_cfg2);
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &gpu_cfg2);
 
 				tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
 				tmp |= LC_SET_QUIESCE;
@@ -1726,25 +1722,37 @@
 
 				mdelay(100);
 
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
-
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
-
-				pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+				pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   bridge_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
+				pcie_capability_clear_and_set_word(adev->pdev, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   gpu_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
+
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (bridge_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(root,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
+
+				pcie_capability_read_word(adev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (gpu_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(adev->pdev,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
 
 				tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
 				tmp &= ~LC_SET_QUIESCE;
@@ -1757,15 +1765,16 @@
 	speed_cntl &= ~LC_FORCE_DIS_SW_SPEED_CHANGE;
 	WREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL, speed_cntl);
 
-	pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-	tmp16 &= ~0xf;
+	pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL2, &tmp16);
+	tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
+
 	if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
-		tmp16 |= 3;
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
 	else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
-		tmp16 |= 2;
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
 	else
-		tmp16 |= 1;
-	pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
+	pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL2, tmp16);
 
 	speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
 	speed_cntl |= LC_INITIATE_LINK_SPEED_CHANGE;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/si_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/si_dpm.c
@@ -7250,17 +7250,15 @@
 	if (!adev->pm.dpm.ps)
 		return -ENOMEM;
 	power_state_offset = (u8 *)state_array->states;
-	for (i = 0; i < state_array->ucNumEntries; i++) {
+	for (adev->pm.dpm.num_ps = 0, i = 0; i < state_array->ucNumEntries; i++) {
 		u8 *idx;
 		power_state = (union pplib_power_state *)power_state_offset;
 		non_clock_array_index = power_state->v2.nonClockInfoIndex;
 		non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
 			&non_clock_info_array->nonClockInfo[non_clock_array_index];
 		ps = kzalloc(sizeof(struct  si_ps), GFP_KERNEL);
-		if (ps == NULL) {
-			kfree(adev->pm.dpm.ps);
+		if (ps == NULL)
 			return -ENOMEM;
-		}
 		adev->pm.dpm.ps[i].ps_priv = ps;
 		si_parse_pplib_non_clock_info(adev, &adev->pm.dpm.ps[i],
 					      non_clock_info,
@@ -7282,8 +7280,8 @@
 			k++;
 		}
 		power_state_offset += 2 + power_state->v2.ucNumDPMLevels;
+		adev->pm.dpm.num_ps++;
 	}
-	adev->pm.dpm.num_ps = state_array->ucNumEntries;
 
 	/* fill in the vce power states */
 	for (i = 0; i < adev->pm.dpm.num_of_vce_states; i++) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/si_ih.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/si_ih.c
@@ -64,7 +64,8 @@
 	u32 interrupt_cntl, ih_cntl, ih_rb_cntl;
 
 	si_ih_disable_interrupts(adev);
-	WREG32(INTERRUPT_CNTL2, adev->irq.ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, adev->dummy_page_addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	interrupt_cntl &= ~IH_DUMMY_RD_OVERRIDE;
 	interrupt_cntl &= ~IH_REQ_NONSNOOP_EN;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -84,6 +84,13 @@
 #define HDP_MEM_POWER_CTRL__RC_MEM_POWER_CTRL_EN_MASK	0x00010000L
 #define HDP_MEM_POWER_CTRL__RC_MEM_POWER_LS_EN_MASK		0x00020000L
 #define mmHDP_MEM_POWER_CTRL_BASE_IDX	0
+
+/* for Vega20/arcturus regiter offset change */
+#define	mmROM_INDEX_VG20				0x00e4
+#define	mmROM_INDEX_VG20_BASE_IDX			0
+#define	mmROM_DATA_VG20					0x00e5
+#define	mmROM_DATA_VG20_BASE_IDX			0
+
 /*
  * Indirect registers accessor
  */
@@ -267,7 +274,14 @@
 
 static u32 soc15_get_xclk(struct amdgpu_device *adev)
 {
-	return adev->clock.spll.reference_freq;
+	u32 reference_clock = adev->clock.spll.reference_freq;
+
+	if (adev->asic_type == CHIP_RENOIR)
+		return 10000;
+	if (adev->asic_type == CHIP_RAVEN)
+		return reference_clock / 4;
+
+	return reference_clock;
 }
 
 
@@ -299,6 +313,8 @@
 {
 	u32 *dw_ptr;
 	u32 i, length_dw;
+	uint32_t rom_index_offset;
+	uint32_t rom_data_offset;
 
 	if (bios == NULL)
 		return false;
@@ -311,11 +327,23 @@
 	dw_ptr = (u32 *)bios;
 	length_dw = ALIGN(length_bytes, 4) / 4;
 
+	switch (adev->asic_type) {
+	case CHIP_VEGA20:
+	case CHIP_ARCTURUS:
+		rom_index_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX_VG20);
+		rom_data_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA_VG20);
+		break;
+	default:
+		rom_index_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX);
+		rom_data_offset = SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA);
+		break;
+	}
+
 	/* set rom index to 0 */
-	WREG32(SOC15_REG_OFFSET(SMUIO, 0, mmROM_INDEX), 0);
+	WREG32(rom_index_offset, 0);
 	/* read out the rom data */
 	for (i = 0; i < length_dw; i++)
-		dw_ptr[i] = RREG32(SOC15_REG_OFFSET(SMUIO, 0, mmROM_DATA));
+		dw_ptr[i] = RREG32(rom_data_offset);
 
 	return true;
 }
@@ -1104,7 +1132,6 @@
 			adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
 				AMD_CG_SUPPORT_GFX_MGLS |
 				AMD_CG_SUPPORT_GFX_CP_LS |
-				AMD_CG_SUPPORT_GFX_3D_CGCG |
 				AMD_CG_SUPPORT_GFX_3D_CGLS |
 				AMD_CG_SUPPORT_GFX_CGCG |
 				AMD_CG_SUPPORT_GFX_CGLS |
@@ -1116,16 +1143,17 @@
 				AMD_CG_SUPPORT_SDMA_MGCG |
 				AMD_CG_SUPPORT_SDMA_LS;
 
+			/*
+			 * MMHUB PG needs to be disabled for Picasso for
+			 * stability reasons.
+			 */
 			adev->pg_flags = AMD_PG_SUPPORT_SDMA |
-				AMD_PG_SUPPORT_MMHUB |
-				AMD_PG_SUPPORT_VCN |
-				AMD_PG_SUPPORT_VCN_DPG;
+				AMD_PG_SUPPORT_VCN;
 		} else {
 			adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
 				AMD_CG_SUPPORT_GFX_MGLS |
 				AMD_CG_SUPPORT_GFX_RLC_LS |
 				AMD_CG_SUPPORT_GFX_CP_LS |
-				AMD_CG_SUPPORT_GFX_3D_CGCG |
 				AMD_CG_SUPPORT_GFX_3D_CGLS |
 				AMD_CG_SUPPORT_GFX_CGCG |
 				AMD_CG_SUPPORT_GFX_CGLS |
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/soc15.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/soc15.h
@@ -28,8 +28,8 @@
 #include "nbio_v7_0.h"
 #include "nbio_v7_4.h"
 
-#define SOC15_FLUSH_GPU_TLB_NUM_WREG		4
-#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT	1
+#define SOC15_FLUSH_GPU_TLB_NUM_WREG		6
+#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT	3
 
 extern const struct amd_ip_funcs soc15_common_ip_funcs;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/soc15_common.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/soc15_common.h
@@ -52,6 +52,7 @@
 		uint32_t old_ = 0;	\
 		uint32_t tmp_ = RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg); \
 		uint32_t loop = adev->usec_timeout;		\
+		ret = 0;					\
 		while ((tmp_ & (mask)) != (expected_value)) {	\
 			if (old_ != tmp_) {			\
 				loop = adev->usec_timeout;	\
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
@@ -195,19 +195,30 @@
 
 	wptr = le32_to_cpu(*ih->wptr_cpu);
 
-	if (REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW)) {
-		wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
-		/* When a ring buffer overflow happen start parsing interrupt
-		 * from the last not overwritten vector (wptr + 16). Hopefully
-		 * this should allow us to catchup.
-		 */
-		dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
-			 wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
-		ih->rptr = (wptr + 16) & ih->ptr_mask;
-		tmp = RREG32(mmIH_RB_CNTL);
-		tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
-		WREG32(mmIH_RB_CNTL, tmp);
-	}
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	/* Double check that the overflow wasn't already cleared. */
+	wptr = RREG32(mmIH_RB_WPTR);
+
+	if (!REG_GET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW))
+		goto out;
+
+	wptr = REG_SET_FIELD(wptr, IH_RB_WPTR, RB_OVERFLOW, 0);
+
+	/* When a ring buffer overflow happen start parsing interrupt
+	 * from the last not overwritten vector (wptr + 16). Hopefully
+	 * this should allow us to catchup.
+	 */
+
+	dev_warn(adev->dev, "IH ring buffer overflow (0x%08X, 0x%08X, 0x%08X)\n",
+		wptr, ih->rptr, (wptr + 16) & ih->ptr_mask);
+	ih->rptr = (wptr + 16) & ih->ptr_mask;
+	tmp = RREG32(mmIH_RB_CNTL);
+	tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, WPTR_OVERFLOW_CLEAR, 1);
+	WREG32(mmIH_RB_CNTL, tmp);
+
+out:
 	return (wptr & ih->ptr_mask);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
@@ -354,6 +354,7 @@
 
 error:
 	dma_fence_put(fence);
+	amdgpu_bo_unpin(bo);
 	amdgpu_bo_unreserve(bo);
 	amdgpu_bo_unref(&bo);
 	return r;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
@@ -233,9 +233,13 @@
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||
-		RREG32_SOC15(VCN, 0, mmUVD_STATUS))
+		(adev->vcn.cur_state != AMD_PG_STATE_GATE &&
+		 RREG32_SOC15(VCN, 0, mmUVD_STATUS))) {
 		vcn_v1_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
+	}
 
 	ring->sched.ready = false;
 
@@ -1375,7 +1379,7 @@
 
 	if (enable) {
 		/* wait for STATUS to clear */
-		if (vcn_v1_0_is_idle(handle))
+		if (!vcn_v1_0_is_idle(handle))
 			return -EBUSY;
 		vcn_v1_0_enable_clock_gating(adev);
 	} else {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
@@ -293,6 +293,8 @@
 	struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
 	int i;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||
 	    (adev->vcn.cur_state != AMD_PG_STATE_GATE &&
 	      RREG32_SOC15(VCN, 0, mmUVD_STATUS)))
@@ -1026,6 +1028,10 @@
 	tmp = REG_SET_FIELD(tmp, UVD_RBC_RB_CNTL, RB_RPTR_WR_EN, 1);
 	WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_CNTL, tmp);
 
+	/* Stall DPG before WPTR/RPTR reset */
+	WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+		UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK,
+		~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 	/* set the write pointer delay */
 	WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_WPTR_CNTL, 0);
 
@@ -1048,6 +1054,9 @@
 	WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_WPTR,
 		lower_32_bits(ring->wptr));
 
+	/* Unstall DPG */
+	WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+		0, ~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 	return 0;
 }
 
@@ -1357,8 +1366,13 @@
 					   UVD_DPG_PAUSE__NJ_PAUSE_DPG_ACK_MASK,
 					   UVD_DPG_PAUSE__NJ_PAUSE_DPG_ACK_MASK, ret_code);
 
+				/* Stall DPG before WPTR/RPTR reset */
+				WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+					   UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK,
+					   ~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 				/* Restore */
 				ring = &adev->vcn.inst->ring_enc[0];
+				ring->wptr = 0;
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_LO, ring->gpu_addr);
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_HI, upper_32_bits(ring->gpu_addr));
 				WREG32_SOC15(UVD, 0, mmUVD_RB_SIZE, ring->ring_size / 4);
@@ -1366,6 +1380,7 @@
 				WREG32_SOC15(UVD, 0, mmUVD_RB_WPTR, lower_32_bits(ring->wptr));
 
 				ring = &adev->vcn.inst->ring_enc[1];
+				ring->wptr = 0;
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_LO2, ring->gpu_addr);
 				WREG32_SOC15(UVD, 0, mmUVD_RB_BASE_HI2, upper_32_bits(ring->gpu_addr));
 				WREG32_SOC15(UVD, 0, mmUVD_RB_SIZE2, ring->ring_size / 4);
@@ -1374,6 +1389,9 @@
 
 				WREG32_SOC15(UVD, 0, mmUVD_RBC_RB_WPTR,
 					   RREG32_SOC15(UVD, 0, mmUVD_SCRATCH2) & 0x7FFFFFFF);
+				/* Unstall DPG */
+				WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_POWER_STATUS),
+					   0, ~UVD_POWER_STATUS__STALL_DPG_POWER_UP_MASK);
 
 				SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS,
 					   UVD_PGFSM_CONFIG__UVDM_UVDU_PWR_ON,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
@@ -302,6 +302,8 @@
 	struct amdgpu_ring *ring;
 	int i;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
 		if (adev->vcn.harvest_config & (1 << i))
 			continue;
@@ -423,7 +425,6 @@
  * vcn_v2_5_disable_clock_gating - disable VCN clock gating
  *
  * @adev: amdgpu_device pointer
- * @sw: enable SW clock gating
  *
  * Disable clock gating for VCN block
  */
@@ -542,7 +543,6 @@
  * vcn_v2_5_enable_clock_gating - enable VCN clock gating
  *
  * @adev: amdgpu_device pointer
- * @sw: enable SW clock gating
  *
  * Enable clock gating for VCN block
  */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdgpu/vi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -329,8 +329,15 @@
 	u32 reference_clock = adev->clock.spll.reference_freq;
 	u32 tmp;
 
-	if (adev->flags & AMD_IS_APU)
-		return reference_clock;
+	if (adev->flags & AMD_IS_APU) {
+		switch (adev->asic_type) {
+		case CHIP_STONEY:
+			/* vbios says 48Mhz, but the actual freq is 100Mhz */
+			return 10000;
+		default:
+			return reference_clock;
+		}
+	}
 
 	tmp = RREG32_SMC(ixCG_CLKPIN_CNTL_2);
 	if (REG_GET_FIELD(tmp, CG_CLKPIN_CNTL_2, MUX_TCLK_TO_XCLK))
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h
@@ -905,7 +905,7 @@
 	0x7a5d0000, 0x807c817c,
 	0x807aff7a, 0x00000080,
 	0xbf0a717c, 0xbf85fff8,
-	0xbf820141, 0xbef4037e,
+	0xbf820142, 0xbef4037e,
 	0x8775ff7f, 0x0000ffff,
 	0x8875ff75, 0x00040000,
 	0xbef60380, 0xbef703ff,
@@ -967,7 +967,7 @@
 	0x725d0000, 0xe0304080,
 	0x725d0100, 0xe0304100,
 	0x725d0200, 0xe0304180,
-	0x725d0300, 0xbf820031,
+	0x725d0300, 0xbf820032,
 	0xbef603ff, 0x01000000,
 	0xbef20378, 0x8078ff78,
 	0x00000400, 0xbefc0384,
@@ -992,83 +992,84 @@
 	0x725d0000, 0xe0304100,
 	0x725d0100, 0xe0304200,
 	0x725d0200, 0xe0304300,
-	0x725d0300, 0xb9782a05,
-	0x80788178, 0x907c9973,
-	0x877c817c, 0xbf06817c,
-	0xbf850002, 0x8f788978,
-	0xbf820001, 0x8f788a78,
-	0xb9721e06, 0x8f728a72,
-	0x80787278, 0x8078ff78,
-	0x00000200, 0x80f8ff78,
-	0x00000050, 0xbef603ff,
-	0x01000000, 0xbefc03ff,
-	0x0000006c, 0x80f89078,
-	0xf429003a, 0xf0000000,
-	0xbf8cc07f, 0x80fc847c,
-	0xbf800000, 0xbe803100,
-	0xbe823102, 0x80f8a078,
-	0xf42d003a, 0xf0000000,
-	0xbf8cc07f, 0x80fc887c,
-	0xbf800000, 0xbe803100,
-	0xbe823102, 0xbe843104,
-	0xbe863106, 0x80f8c078,
-	0xf431003a, 0xf0000000,
-	0xbf8cc07f, 0x80fc907c,
-	0xbf800000, 0xbe803100,
-	0xbe823102, 0xbe843104,
-	0xbe863106, 0xbe883108,
-	0xbe8a310a, 0xbe8c310c,
-	0xbe8e310e, 0xbf06807c,
-	0xbf84fff0, 0xb9782a05,
-	0x80788178, 0x907c9973,
-	0x877c817c, 0xbf06817c,
-	0xbf850002, 0x8f788978,
-	0xbf820001, 0x8f788a78,
-	0xb9721e06, 0x8f728a72,
-	0x80787278, 0x8078ff78,
-	0x00000200, 0xbef603ff,
-	0x01000000, 0xf4211bfa,
+	0x725d0300, 0xbf8c3f70,
+	0xb9782a05, 0x80788178,
+	0x907c9973, 0x877c817c,
+	0xbf06817c, 0xbf850002,
+	0x8f788978, 0xbf820001,
+	0x8f788a78, 0xb9721e06,
+	0x8f728a72, 0x80787278,
+	0x8078ff78, 0x00000200,
+	0x80f8ff78, 0x00000050,
+	0xbef603ff, 0x01000000,
+	0xbefc03ff, 0x0000006c,
+	0x80f89078, 0xf429003a,
+	0xf0000000, 0xbf8cc07f,
+	0x80fc847c, 0xbf800000,
+	0xbe803100, 0xbe823102,
+	0x80f8a078, 0xf42d003a,
+	0xf0000000, 0xbf8cc07f,
+	0x80fc887c, 0xbf800000,
+	0xbe803100, 0xbe823102,
+	0xbe843104, 0xbe863106,
+	0x80f8c078, 0xf431003a,
+	0xf0000000, 0xbf8cc07f,
+	0x80fc907c, 0xbf800000,
+	0xbe803100, 0xbe823102,
+	0xbe843104, 0xbe863106,
+	0xbe883108, 0xbe8a310a,
+	0xbe8c310c, 0xbe8e310e,
+	0xbf06807c, 0xbf84fff0,
+	0xb9782a05, 0x80788178,
+	0x907c9973, 0x877c817c,
+	0xbf06817c, 0xbf850002,
+	0x8f788978, 0xbf820001,
+	0x8f788a78, 0xb9721e06,
+	0x8f728a72, 0x80787278,
+	0x8078ff78, 0x00000200,
+	0xbef603ff, 0x01000000,
+	0xf4211bfa, 0xf0000000,
+	0x80788478, 0xf4211b3a,
 	0xf0000000, 0x80788478,
-	0xf4211b3a, 0xf0000000,
-	0x80788478, 0xf4211b7a,
+	0xf4211b7a, 0xf0000000,
+	0x80788478, 0xf4211eba,
 	0xf0000000, 0x80788478,
-	0xf4211eba, 0xf0000000,
-	0x80788478, 0xf4211efa,
+	0xf4211efa, 0xf0000000,
+	0x80788478, 0xf4211c3a,
 	0xf0000000, 0x80788478,
-	0xf4211c3a, 0xf0000000,
-	0x80788478, 0xf4211c7a,
+	0xf4211c7a, 0xf0000000,
+	0x80788478, 0xf4211e7a,
 	0xf0000000, 0x80788478,
-	0xf4211e7a, 0xf0000000,
-	0x80788478, 0xf4211cfa,
+	0xf4211cfa, 0xf0000000,
+	0x80788478, 0xf4211bba,
 	0xf0000000, 0x80788478,
+	0xbf8cc07f, 0xb9eef814,
 	0xf4211bba, 0xf0000000,
 	0x80788478, 0xbf8cc07f,
-	0xb9eef814, 0xf4211bba,
-	0xf0000000, 0x80788478,
-	0xbf8cc07f, 0xb9eef815,
-	0xbef2036d, 0x876dff72,
-	0x0000ffff, 0xbefc036f,
-	0xbefe037a, 0xbeff037b,
-	0x876f71ff, 0x000003ff,
-	0xb9ef4803, 0xb9f9f816,
-	0x876f71ff, 0xfffff800,
-	0x906f8b6f, 0xb9efa2c3,
-	0xb9f3f801, 0x876fff72,
-	0xfc000000, 0x906f9a6f,
-	0x8f6f906f, 0xbef30380,
+	0xb9eef815, 0xbef2036d,
+	0x876dff72, 0x0000ffff,
+	0xbefc036f, 0xbefe037a,
+	0xbeff037b, 0x876f71ff,
+	0x000003ff, 0xb9ef4803,
+	0xb9f9f816, 0x876f71ff,
+	0xfffff800, 0x906f8b6f,
+	0xb9efa2c3, 0xb9f3f801,
+	0x876fff72, 0xfc000000,
+	0x906f9a6f, 0x8f6f906f,
+	0xbef30380, 0x88736f73,
+	0x876fff72, 0x02000000,
+	0x906f996f, 0x8f6f8f6f,
 	0x88736f73, 0x876fff72,
-	0x02000000, 0x906f996f,
-	0x8f6f8f6f, 0x88736f73,
-	0x876fff72, 0x01000000,
-	0x906f986f, 0x8f6f996f,
-	0x88736f73, 0x876fff70,
-	0x00800000, 0x906f976f,
-	0xb9f3f807, 0x87fe7e7e,
-	0x87ea6a6a, 0xb9f0f802,
-	0xbf8a0000, 0xbe80226c,
-	0xbf810000, 0xbf9f0000,
+	0x01000000, 0x906f986f,
+	0x8f6f996f, 0x88736f73,
+	0x876fff70, 0x00800000,
+	0x906f976f, 0xb9f3f807,
+	0x87fe7e7e, 0x87ea6a6a,
+	0xb9f0f802, 0xbf8a0000,
+	0xbe80226c, 0xbf810000,
 	0xbf9f0000, 0xbf9f0000,
 	0xbf9f0000, 0xbf9f0000,
+	0xbf9f0000, 0x00000000,
 };
 static const uint32_t cwsr_trap_arcturus_hex[] = {
 	0xbf820001, 0xbf8202c4,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm
@@ -758,6 +758,7 @@
 	buffer_load_dword	v1, v0, s_restore_buf_rsrc0, s_restore_mem_offset_save slc:1 glc:1 offset:256
 	buffer_load_dword	v2, v0, s_restore_buf_rsrc0, s_restore_mem_offset_save slc:1 glc:1 offset:256*2
 	buffer_load_dword	v3, v0, s_restore_buf_rsrc0, s_restore_mem_offset_save slc:1 glc:1 offset:256*3
+	s_waitcnt	vmcnt(0)
 
 	/* restore SGPRs */
 	//will be 2+8+16*6
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -1664,6 +1664,7 @@
 	}
 
 	mutex_unlock(&p->mutex);
+	dma_buf_put(dmabuf);
 
 	args->handle = MAKE_HANDLE(args->gpu_id, idr_handle);
 
@@ -1673,6 +1674,7 @@
 	amdgpu_amdkfd_gpuvm_free_memory_of_gpu(dev->kgd, (struct kgd_mem *)mem);
 err_unlock:
 	mutex_unlock(&p->mutex);
+	dma_buf_put(dmabuf);
 	return r;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -407,6 +407,9 @@
 			return -ENODEV;
 		/* same everything but the other direction */
 		props2 = kmemdup(props, sizeof(*props2), GFP_KERNEL);
+		if (!props2)
+			return -ENOMEM;
+
 		props2->node_from = id_to;
 		props2->node_to = id_from;
 		props2->kobj = NULL;
@@ -758,7 +761,7 @@
 	/* Fetch the CRAT table from ACPI */
 	status = acpi_get_table(CRAT_SIGNATURE, 0, &crat_table);
 	if (status == AE_NOT_FOUND) {
-		pr_warn("CRAT table not found\n");
+		pr_info("CRAT table not found\n");
 		return -ENODATA;
 	} else if (ACPI_FAILURE(status)) {
 		const char *err = acpi_format_exception(status);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
@@ -33,6 +33,11 @@
 
 	return single_open(file, show, NULL);
 }
+static int kfd_debugfs_hang_hws_read(struct seq_file *m, void *data)
+{
+	seq_printf(m, "echo gpu_id > hang_hws\n");
+	return 0;
+}
 
 static ssize_t kfd_debugfs_hang_hws_write(struct file *file,
 	const char __user *user_buf, size_t size, loff_t *ppos)
@@ -93,8 +98,8 @@
 			    kfd_debugfs_hqds_by_device, &kfd_debugfs_fops);
 	debugfs_create_file("rls", S_IFREG | 0444, debugfs_root,
 			    kfd_debugfs_rls_by_device, &kfd_debugfs_fops);
-	debugfs_create_file("hang_hws", S_IFREG | 0644, debugfs_root,
-			    NULL, &kfd_debugfs_hang_hws_fops);
+	debugfs_create_file("hang_hws", S_IFREG | 0200, debugfs_root,
+			    kfd_debugfs_hang_hws_read, &kfd_debugfs_hang_hws_fops);
 }
 
 void kfd_debugfs_fini(void)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -609,15 +609,10 @@
 			- kfd->vm_info.first_vmid_kfd + 1;
 
 	/* Verify module parameters regarding mapped process number*/
-	if ((hws_max_conc_proc < 0)
-			|| (hws_max_conc_proc > kfd->vm_info.vmid_num_kfd)) {
-		dev_err(kfd_device,
-			"hws_max_conc_proc %d must be between 0 and %d, use %d instead\n",
-			hws_max_conc_proc, kfd->vm_info.vmid_num_kfd,
-			kfd->vm_info.vmid_num_kfd);
+	if (hws_max_conc_proc >= 0)
+		kfd->max_proc_per_quantum = min((u32)hws_max_conc_proc, kfd->vm_info.vmid_num_kfd);
+	else
 		kfd->max_proc_per_quantum = kfd->vm_info.vmid_num_kfd;
-	} else
-		kfd->max_proc_per_quantum = hws_max_conc_proc;
 
 	/* Allocate global GWS that is shared by all KFD processes */
 	if (hws_gws_support && amdgpu_amdkfd_alloc_gws(kfd->kgd,
@@ -1112,9 +1107,9 @@
 	return 0;
 
 kfd_gtt_no_free_chunk:
-	pr_debug("Allocation failed with mem_obj = %p\n", mem_obj);
+	pr_debug("Allocation failed with mem_obj = %p\n", *mem_obj);
 	mutex_unlock(&kfd->gtt_sa_lock);
-	kfree(mem_obj);
+	kfree(*mem_obj);
 	return -ENOMEM;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1011,6 +1011,9 @@
 
 static int initialize_cpsch(struct device_queue_manager *dqm)
 {
+	uint64_t num_sdma_queues;
+	uint64_t num_xgmi_sdma_queues;
+
 	pr_debug("num of pipes: %d\n", get_pipes_per_mec(dqm));
 
 	mutex_init(&dqm->lock_hidden);
@@ -1019,8 +1022,18 @@
 	dqm->sdma_queue_count = 0;
 	dqm->xgmi_sdma_queue_count = 0;
 	dqm->active_runlist = false;
-	dqm->sdma_bitmap = ~0ULL >> (64 - get_num_sdma_queues(dqm));
-	dqm->xgmi_sdma_bitmap = ~0ULL >> (64 - get_num_xgmi_sdma_queues(dqm));
+
+	num_sdma_queues = get_num_sdma_queues(dqm);
+	if (num_sdma_queues >= BITS_PER_TYPE(dqm->sdma_bitmap))
+		dqm->sdma_bitmap = ULLONG_MAX;
+	else
+		dqm->sdma_bitmap = (BIT_ULL(num_sdma_queues) - 1);
+
+	num_xgmi_sdma_queues = get_num_xgmi_sdma_queues(dqm);
+	if (num_xgmi_sdma_queues >= BITS_PER_TYPE(dqm->xgmi_sdma_bitmap))
+		dqm->xgmi_sdma_bitmap = ULLONG_MAX;
+	else
+		dqm->xgmi_sdma_bitmap = (BIT_ULL(num_xgmi_sdma_queues) - 1);
 
 	INIT_WORK(&dqm->hw_exception_work, kfd_process_hw_exception);
 
@@ -1075,6 +1088,8 @@
 	unmap_queues_cpsch(dqm, KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES, 0);
 	dqm_unlock(dqm);
 
+	pm_release_ib(&dqm->packets);
+
 	kfd_gtt_sa_free(dqm->dev, dqm->fence_mem);
 	pm_uninit(&dqm->packets);
 
@@ -1181,16 +1196,18 @@
 
 	list_add(&q->list, &qpd->queues_list);
 	qpd->queue_count++;
+
+	if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
+		dqm->sdma_queue_count++;
+	else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
+		dqm->xgmi_sdma_queue_count++;
+
 	if (q->properties.is_active) {
 		dqm->queue_count++;
 		retval = execute_queues_cpsch(dqm,
 				KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0);
 	}
 
-	if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
-		dqm->sdma_queue_count++;
-	else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
-		dqm->xgmi_sdma_queue_count++;
 	/*
 	 * Unconditionally increment this counter, regardless of the queue's
 	 * type or whether the queue is active.
@@ -1567,7 +1584,7 @@
 		struct qcm_process_device *qpd)
 {
 	int retval;
-	struct queue *q, *next;
+	struct queue *q;
 	struct kernel_queue *kq, *kq_next;
 	struct mqd_manager *mqd_mgr;
 	struct device_process_node *cur, *next_dpn;
@@ -1622,24 +1639,26 @@
 		qpd->reset_wavefronts = false;
 	}
 
-	dqm_unlock(dqm);
-
-	/* Outside the DQM lock because under the DQM lock we can't do
-	 * reclaim or take other locks that others hold while reclaiming.
-	 */
-	if (found)
-		kfd_dec_compute_active(dqm->dev);
-
 	/* Lastly, free mqd resources.
 	 * Do free_mqd() after dqm_unlock to avoid circular locking.
 	 */
-	list_for_each_entry_safe(q, next, &qpd->queues_list, list) {
+	while (!list_empty(&qpd->queues_list)) {
+		q = list_first_entry(&qpd->queues_list, struct queue, list);
 		mqd_mgr = dqm->mqd_mgrs[get_mqd_type_from_queue_type(
 				q->properties.type)];
 		list_del(&q->list);
 		qpd->queue_count--;
+		dqm_unlock(dqm);
 		mqd_mgr->free_mqd(mqd_mgr, q->mqd, q->mqd_mem_obj);
+		dqm_lock(dqm);
 	}
+	dqm_unlock(dqm);
+
+	/* Outside the DQM lock because under the DQM lock we can't do
+	 * reclaim or take other locks that others hold while reclaiming.
+	 */
+	if (found)
+		kfd_dec_compute_active(dqm->dev);
 
 	return retval;
 }
@@ -1676,7 +1695,8 @@
 	struct kfd_dev *dev = dqm->dev;
 	struct kfd_mem_obj *mem_obj = &dqm->hiq_sdma_mqd;
 	uint32_t size = dqm->mqd_mgrs[KFD_MQD_TYPE_SDMA]->mqd_size *
-		dev->device_info->num_sdma_engines *
+		(dev->device_info->num_sdma_engines +
+		dev->device_info->num_xgmi_sdma_engines) *
 		dev->device_info->num_sdma_queues_per_engine +
 		dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c
@@ -58,8 +58,9 @@
 	/* check if sh_mem_config register already configured */
 	if (qpd->sh_mem_config == 0) {
 		qpd->sh_mem_config =
-				SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
-					SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT;
+			(SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
+				SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT) |
+			(3 << SH_MEM_CONFIG__INITIAL_INST_PREFETCH__SHIFT);
 #if 0
 		/* TODO:
 		 *    This shouldn't be an issue with Navi10.  Verify.
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_events.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_events.c
@@ -529,14 +529,13 @@
 	struct kfd_event_waiter *event_waiters;
 	uint32_t i;
 
-	event_waiters = kmalloc_array(num_events,
-					sizeof(struct kfd_event_waiter),
-					GFP_KERNEL);
+	event_waiters = kcalloc(num_events, sizeof(struct kfd_event_waiter),
+				GFP_KERNEL);
+	if (!event_waiters)
+		return NULL;
 
-	for (i = 0; (event_waiters) && (i < num_events) ; i++) {
+	for (i = 0; i < num_events; i++)
 		init_wait(&event_waiters[i].wait);
-		event_waiters[i].activated = false;
-	}
 
 	return event_waiters;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
@@ -62,6 +62,11 @@
 	}
 
 	kfd->ih_wq = alloc_workqueue("KFD IH", WQ_HIGHPRI, 1);
+	if (unlikely(!kfd->ih_wq)) {
+		kfifo_free(&kfd->ih_fifo);
+		dev_err(kfd_chardev(), "Failed to allocate KFD IH workqueue\n");
+		return -ENOMEM;
+	}
 	spin_lock_init(&kfd->interrupt_lock);
 
 	INIT_WORK(&kfd->interrupt_work, interrupt_wq);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
@@ -20,6 +20,10 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/kconfig.h>
+
+#if IS_REACHABLE(CONFIG_AMD_IOMMU_V2)
+
 #include <linux/printk.h>
 #include <linux/device.h>
 #include <linux/slab.h>
@@ -358,3 +362,5 @@
 
 	return 0;
 }
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_iommu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_iommu.h
@@ -23,7 +23,9 @@
 #ifndef __KFD_IOMMU_H__
 #define __KFD_IOMMU_H__
 
-#if defined(CONFIG_AMD_IOMMU_V2_MODULE) || defined(CONFIG_AMD_IOMMU_V2)
+#include <linux/kconfig.h>
+
+#if IS_REACHABLE(CONFIG_AMD_IOMMU_V2)
 
 #define KFD_SUPPORT_IOMMU_V2
 
@@ -46,6 +48,9 @@
 }
 static inline int kfd_iommu_device_init(struct kfd_dev *kfd)
 {
+#if IS_MODULE(CONFIG_AMD_IOMMU_V2)
+	WARN_ONCE(1, "iommu_v2 module is not usable by built-in KFD");
+#endif
 	return 0;
 }
 
@@ -73,6 +78,6 @@
 	return 0;
 }
 
-#endif /* defined(CONFIG_AMD_IOMMU_V2) */
+#endif /* IS_REACHABLE(CONFIG_AMD_IOMMU_V2) */
 
 #endif /* __KFD_IOMMU_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_module.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_module.c
@@ -82,7 +82,7 @@
 	kfd_chardev_exit();
 }
 
-int kgd2kfd_init()
+int kgd2kfd_init(void)
 {
 	return kfd_init();
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
@@ -98,36 +98,78 @@
 		uint32_t *se_mask)
 {
 	struct kfd_cu_info cu_info;
-	uint32_t cu_per_se[KFD_MAX_NUM_SE] = {0};
-	int i, se, sh, cu = 0;
-
+	uint32_t cu_per_sh[KFD_MAX_NUM_SE][KFD_MAX_NUM_SH_PER_SE] = {0};
+	int i, se, sh, cu;
 	amdgpu_amdkfd_get_cu_info(mm->dev->kgd, &cu_info);
 
 	if (cu_mask_count > cu_info.cu_active_number)
 		cu_mask_count = cu_info.cu_active_number;
 
+	/* Exceeding these bounds corrupts the stack and indicates a coding error.
+	 * Returning with no CU's enabled will hang the queue, which should be
+	 * attention grabbing.
+	 */
+	if (cu_info.num_shader_engines > KFD_MAX_NUM_SE) {
+		pr_err("Exceeded KFD_MAX_NUM_SE, chip reports %d\n", cu_info.num_shader_engines);
+		return;
+	}
+	if (cu_info.num_shader_arrays_per_engine > KFD_MAX_NUM_SH_PER_SE) {
+		pr_err("Exceeded KFD_MAX_NUM_SH, chip reports %d\n",
+			cu_info.num_shader_arrays_per_engine * cu_info.num_shader_engines);
+		return;
+	}
+	/* Count active CUs per SH.
+	 *
+	 * Some CUs in an SH may be disabled.	HW expects disabled CUs to be
+	 * represented in the high bits of each SH's enable mask (the upper and lower
+	 * 16 bits of se_mask) and will take care of the actual distribution of
+	 * disabled CUs within each SH automatically.
+	 * Each half of se_mask must be filled only on bits 0-cu_per_sh[se][sh]-1.
+	 *
+	 * See note on Arcturus cu_bitmap layout in gfx_v9_0_get_cu_info.
+	 */
 	for (se = 0; se < cu_info.num_shader_engines; se++)
 		for (sh = 0; sh < cu_info.num_shader_arrays_per_engine; sh++)
-			cu_per_se[se] += hweight32(cu_info.cu_bitmap[se % 4][sh + (se / 4)]);
+			cu_per_sh[se][sh] = hweight32(cu_info.cu_bitmap[se % 4][sh + (se / 4)]);
 
-	/* Symmetrically map cu_mask to all SEs:
-	 * cu_mask[0] bit0 -> se_mask[0] bit0;
-	 * cu_mask[0] bit1 -> se_mask[1] bit0;
-	 * ... (if # SE is 4)
-	 * cu_mask[0] bit4 -> se_mask[0] bit1;
+	/* Symmetrically map cu_mask to all SEs & SHs:
+	 * se_mask programs up to 2 SH in the upper and lower 16 bits.
+	 *
+	 * Examples
+	 * Assuming 1 SH/SE, 4 SEs:
+	 * cu_mask[0] bit0 -> se_mask[0] bit0
+	 * cu_mask[0] bit1 -> se_mask[1] bit0
+	 * ...
+	 * cu_mask[0] bit4 -> se_mask[0] bit1
+	 * ...
+	 *
+	 * Assuming 2 SH/SE, 4 SEs
+	 * cu_mask[0] bit0 -> se_mask[0] bit0 (SE0,SH0,CU0)
+	 * cu_mask[0] bit1 -> se_mask[1] bit0 (SE1,SH0,CU0)
+	 * ...
+	 * cu_mask[0] bit4 -> se_mask[0] bit16 (SE0,SH1,CU0)
+	 * cu_mask[0] bit5 -> se_mask[1] bit16 (SE1,SH1,CU0)
+	 * ...
+	 * cu_mask[0] bit8 -> se_mask[0] bit1 (SE0,SH0,CU1)
 	 * ...
+	 *
+	 * First ensure all CUs are disabled, then enable user specified CUs.
 	 */
-	se = 0;
-	for (i = 0; i < cu_mask_count; i++) {
-		if (cu_mask[i / 32] & (1 << (i % 32)))
-			se_mask[se] |= 1 << cu;
+	for (i = 0; i < cu_info.num_shader_engines; i++)
+		se_mask[i] = 0;
 
-		do {
-			se++;
-			if (se == cu_info.num_shader_engines) {
-				se = 0;
-				cu++;
+	i = 0;
+	for (cu = 0; cu < 16; cu++) {
+		for (sh = 0; sh < cu_info.num_shader_arrays_per_engine; sh++) {
+			for (se = 0; se < cu_info.num_shader_engines; se++) {
+				if (cu_per_sh[se][sh] > cu) {
+					if (cu_mask[i / 32] & (1 << (i % 32)))
+						se_mask[se] |= 1 << (cu + sh * 16);
+					i++;
+					if (i == cu_mask_count)
+						return;
+				}
 			}
-		} while (cu >= cu_per_se[se] && cu < 32);
+		}
 	}
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h
@@ -27,6 +27,7 @@
 #include "kfd_priv.h"
 
 #define KFD_MAX_NUM_SE 8
+#define KFD_MAX_NUM_SH_PER_SE 2
 
 /**
  * struct mqd_manager
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
@@ -101,18 +101,19 @@
 			&(mqd_mem_obj->gtt_mem),
 			&(mqd_mem_obj->gpu_addr),
 			(void *)&(mqd_mem_obj->cpu_ptr), true);
+
+		if (retval) {
+			kfree(mqd_mem_obj);
+			return NULL;
+		}
 	} else {
 		retval = kfd_gtt_sa_allocate(kfd, sizeof(struct v9_mqd),
 				&mqd_mem_obj);
-	}
-
-	if (retval) {
-		kfree(mqd_mem_obj);
-		return NULL;
+		if (retval)
+			return NULL;
 	}
 
 	return mqd_mem_obj;
-
 }
 
 static void init_mqd(struct mqd_manager *mm, void **mqd,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -312,6 +312,7 @@
 					   (int)process->lead_thread->pid);
 		if (ret) {
 			pr_warn("Creating procfs pid directory failed");
+			kobject_put(process->kobj);
 			goto out;
 		}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -612,8 +612,10 @@
 
 	ret = kobject_init_and_add(dev->kobj_node, &node_type,
 			sys_props.kobj_nodes, "%d", id);
-	if (ret < 0)
+	if (ret < 0) {
+		kobject_put(dev->kobj_node);
 		return ret;
+	}
 
 	dev->kobj_mem = kobject_create_and_add("mem_banks", dev->kobj_node);
 	if (!dev->kobj_mem)
@@ -660,8 +662,10 @@
 			return -ENOMEM;
 		ret = kobject_init_and_add(mem->kobj, &mem_type,
 				dev->kobj_mem, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(mem->kobj);
 			return ret;
+		}
 
 		mem->attr.name = "properties";
 		mem->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -679,8 +683,10 @@
 			return -ENOMEM;
 		ret = kobject_init_and_add(cache->kobj, &cache_type,
 				dev->kobj_cache, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(cache->kobj);
 			return ret;
+		}
 
 		cache->attr.name = "properties";
 		cache->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -698,8 +704,10 @@
 			return -ENOMEM;
 		ret = kobject_init_and_add(iolink->kobj, &iolink_type,
 				dev->kobj_iolink, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(iolink->kobj);
 			return ret;
+		}
 
 		iolink->attr.name = "properties";
 		iolink->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -779,8 +787,10 @@
 		ret = kobject_init_and_add(sys_props.kobj_topology,
 				&sysprops_type,  &kfd_device->kobj,
 				"topology");
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(sys_props.kobj_topology);
 			return ret;
+		}
 
 		sys_props.kobj_nodes = kobject_create_and_add("nodes",
 				sys_props.kobj_topology);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -664,6 +664,7 @@
 
 	init_data.asic_id.pci_revision_id = adev->rev_id;
 	init_data.asic_id.hw_internal_rev = adev->external_rev_id;
+	init_data.asic_id.chip_id = adev->pdev->device;
 
 	init_data.asic_id.vram_width = adev->gmc.vram_width;
 	/* TODO: initialize init_data.asic_id.vram_type here!!!! */
@@ -928,8 +929,13 @@
 	struct dmcu_iram_parameters params;
 	unsigned int linear_lut[16];
 	int i;
-	struct dmcu *dmcu = adev->dm.dc->res_pool->dmcu;
-	bool ret = false;
+	struct dmcu *dmcu = NULL;
+	bool ret;
+
+	if (!adev->dm.fw_dmcu)
+		return detect_mst_link_for_all_connectors(adev->ddev);
+
+	dmcu = adev->dm.dc->res_pool->dmcu;
 
 	for (i = 0; i < 16; i++)
 		linear_lut[i] = 0xFFFF * i / 15;
@@ -940,13 +946,15 @@
 	params.backlight_lut_array_size = 16;
 	params.backlight_lut_array = linear_lut;
 
-	/* todo will enable for navi10 */
-	if (adev->asic_type <= CHIP_RAVEN) {
-		ret = dmcu_load_iram(dmcu, params);
+	/* Min backlight level after ABM reduction,  Don't allow below 1%
+	 * 0xFFFF x 0.01 = 0x28F
+	 */
+	params.min_abm_backlight = 0x28F;
 
-		if (!ret)
-			return -EINVAL;
-	}
+	ret = dmcu_load_iram(dmcu, params);
+
+	if (!ret)
+		return -EINVAL;
 
 	return detect_mst_link_for_all_connectors(adev->ddev);
 }
@@ -1086,8 +1094,8 @@
 	link->type = dc_connection_none;
 	prev_sink = link->local_sink;
 
-	if (prev_sink != NULL)
-		dc_sink_retain(prev_sink);
+	if (prev_sink)
+		dc_sink_release(prev_sink);
 
 	switch (link->connector_signal) {
 	case SIGNAL_TYPE_HDMI_TYPE_A: {
@@ -1198,11 +1206,14 @@
 	list_for_each_entry(connector, &ddev->mode_config.connector_list, head) {
 		aconnector = to_amdgpu_dm_connector(connector);
 
+		if (!aconnector->dc_link)
+			continue;
+
 		/*
 		 * this is the case when traversing through already created
 		 * MST connectors, should be skipped
 		 */
-		if (aconnector->mst_port)
+		if (aconnector->dc_link->type == dc_connection_mst_branch)
 			continue;
 
 		mutex_lock(&aconnector->hpd_lock);
@@ -1410,24 +1421,29 @@
 		 * TODO: check if we still need the S3 mode update workaround.
 		 * If yes, put it here.
 		 */
-		if (aconnector->dc_sink)
+		if (aconnector->dc_sink) {
 			amdgpu_dm_update_freesync_caps(connector, NULL);
+			dc_sink_release(aconnector->dc_sink);
+		}
 
 		aconnector->dc_sink = sink;
 		dc_sink_retain(aconnector->dc_sink);
 		if (sink->dc_edid.length == 0) {
 			aconnector->edid = NULL;
-			drm_dp_cec_unset_edid(&aconnector->dm_dp_aux.aux);
+			if (aconnector->dc_link->aux_mode) {
+				drm_dp_cec_unset_edid(
+					&aconnector->dm_dp_aux.aux);
+			}
 		} else {
 			aconnector->edid =
-				(struct edid *) sink->dc_edid.raw_edid;
-
+				(struct edid *)sink->dc_edid.raw_edid;
 
-			drm_connector_update_edid_property(connector,
-					aconnector->edid);
-			drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
-					    aconnector->edid);
+			if (aconnector->dc_link->aux_mode)
+				drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux,
+						    aconnector->edid);
 		}
+
+		drm_connector_update_edid_property(connector, aconnector->edid);
 		amdgpu_dm_update_freesync_caps(connector, aconnector->edid);
 
 	} else {
@@ -2030,12 +2046,18 @@
 				    &dm_atomic_state_funcs);
 
 	r = amdgpu_display_modeset_create_props(adev);
-	if (r)
+	if (r) {
+		dc_release_state(state->context);
+		kfree(state);
 		return r;
+	}
 
 	r = amdgpu_dm_audio_init(adev);
-	if (r)
+	if (r) {
+		dc_release_state(state->context);
+		kfree(state);
 		return r;
+	}
 
 	return 0;
 }
@@ -2051,6 +2073,8 @@
 #if defined(CONFIG_ACPI)
 	struct amdgpu_dm_backlight_caps caps;
 
+	memset(&caps, 0, sizeof(caps));
+
 	if (dm->backlight_caps.caps_valid)
 		return;
 
@@ -2611,6 +2635,23 @@
 	scaling_info->src_rect.x = state->src_x >> 16;
 	scaling_info->src_rect.y = state->src_y >> 16;
 
+	/*
+	 * For reasons we don't (yet) fully understand a non-zero
+	 * src_y coordinate into an NV12 buffer can cause a
+	 * system hang. To avoid hangs (and maybe be overly cautious)
+	 * let's reject both non-zero src_x and src_y.
+	 *
+	 * We currently know of only one use-case to reproduce a
+	 * scenario with non-zero src_x and src_y for NV12, which
+	 * is to gesture the YouTube Android app into full screen
+	 * on ChromeOS.
+	 */
+	if (state->fb &&
+	    state->fb->format->format == DRM_FORMAT_NV12 &&
+	    (scaling_info->src_rect.x != 0 ||
+	     scaling_info->src_rect.y != 0))
+		return -EINVAL;
+
 	scaling_info->src_rect.width = state->src_w >> 16;
 	if (scaling_info->src_rect.width == 0)
 		return -EINVAL;
@@ -2693,7 +2734,8 @@
 			  const union dc_tiling_info *tiling_info,
 			  const uint64_t info,
 			  struct dc_plane_dcc_param *dcc,
-			  struct dc_plane_address *address)
+			  struct dc_plane_address *address,
+			  bool force_disable_dcc)
 {
 	struct dc *dc = adev->dm.dc;
 	struct dc_dcc_surface_param input;
@@ -2705,6 +2747,9 @@
 	memset(&input, 0, sizeof(input));
 	memset(&output, 0, sizeof(output));
 
+	if (force_disable_dcc)
+		return 0;
+
 	if (!offset)
 		return 0;
 
@@ -2754,7 +2799,8 @@
 			     union dc_tiling_info *tiling_info,
 			     struct plane_size *plane_size,
 			     struct dc_plane_dcc_param *dcc,
-			     struct dc_plane_address *address)
+			     struct dc_plane_address *address,
+			     bool force_disable_dcc)
 {
 	const struct drm_framebuffer *fb = &afb->base;
 	int ret;
@@ -2864,7 +2910,8 @@
 
 		ret = fill_plane_dcc_attributes(adev, afb, format, rotation,
 						plane_size, tiling_info,
-						tiling_flags, dcc, address);
+						tiling_flags, dcc, address,
+						force_disable_dcc);
 		if (ret)
 			return ret;
 	}
@@ -2956,7 +3003,8 @@
 			    const struct drm_plane_state *plane_state,
 			    const uint64_t tiling_flags,
 			    struct dc_plane_info *plane_info,
-			    struct dc_plane_address *address)
+			    struct dc_plane_address *address,
+			    bool force_disable_dcc)
 {
 	const struct drm_framebuffer *fb = plane_state->fb;
 	const struct amdgpu_framebuffer *afb =
@@ -3035,7 +3083,8 @@
 					   plane_info->rotation, tiling_flags,
 					   &plane_info->tiling_info,
 					   &plane_info->plane_size,
-					   &plane_info->dcc, address);
+					   &plane_info->dcc, address,
+					   force_disable_dcc);
 	if (ret)
 		return ret;
 
@@ -3058,6 +3107,7 @@
 	struct dc_plane_info plane_info;
 	uint64_t tiling_flags;
 	int ret;
+	bool force_disable_dcc = false;
 
 	ret = fill_dc_scaling_info(plane_state, &scaling_info);
 	if (ret)
@@ -3072,9 +3122,11 @@
 	if (ret)
 		return ret;
 
+	force_disable_dcc = adev->asic_type == CHIP_RAVEN && adev->in_suspend;
 	ret = fill_dc_plane_info_and_addr(adev, plane_state, tiling_flags,
 					  &plane_info,
-					  &dc_plane_state->address);
+					  &dc_plane_state->address,
+					  force_disable_dcc);
 	if (ret)
 		return ret;
 
@@ -3261,27 +3313,21 @@
 	return color_space;
 }
 
-static void reduce_mode_colour_depth(struct dc_crtc_timing *timing_out)
-{
-	if (timing_out->display_color_depth <= COLOR_DEPTH_888)
-		return;
-
-	timing_out->display_color_depth--;
-}
-
-static void adjust_colour_depth_from_display_info(struct dc_crtc_timing *timing_out,
-						const struct drm_display_info *info)
+static bool adjust_colour_depth_from_display_info(
+	struct dc_crtc_timing *timing_out,
+	const struct drm_display_info *info)
 {
+	enum dc_color_depth depth = timing_out->display_color_depth;
 	int normalized_clk;
-	if (timing_out->display_color_depth <= COLOR_DEPTH_888)
-		return;
 	do {
 		normalized_clk = timing_out->pix_clk_100hz / 10;
 		/* YCbCr 4:2:0 requires additional adjustment of 1/2 */
 		if (timing_out->pixel_encoding == PIXEL_ENCODING_YCBCR420)
 			normalized_clk /= 2;
 		/* Adjusting pix clock following on HDMI spec based on colour depth */
-		switch (timing_out->display_color_depth) {
+		switch (depth) {
+		case COLOR_DEPTH_888:
+			break;
 		case COLOR_DEPTH_101010:
 			normalized_clk = (normalized_clk * 30) / 24;
 			break;
@@ -3292,14 +3338,15 @@
 			normalized_clk = (normalized_clk * 48) / 24;
 			break;
 		default:
-			return;
+			/* The above depths are the only ones valid for HDMI. */
+			return false;
 		}
-		if (normalized_clk <= info->max_tmds_clock)
-			return;
-		reduce_mode_colour_depth(timing_out);
-
-	} while (timing_out->display_color_depth > COLOR_DEPTH_888);
-
+		if (normalized_clk <= info->max_tmds_clock) {
+			timing_out->display_color_depth = depth;
+			return true;
+		}
+	} while (--depth > COLOR_DEPTH_666);
+	return false;
 }
 
 static void fill_stream_properties_from_drm_display_mode(
@@ -3365,8 +3412,14 @@
 
 	stream->out_transfer_func->type = TF_TYPE_PREDEFINED;
 	stream->out_transfer_func->tf = TRANSFER_FUNCTION_SRGB;
-	if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
-		adjust_colour_depth_from_display_info(timing_out, info);
+	if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A) {
+		if (!adjust_colour_depth_from_display_info(timing_out, info) &&
+		    drm_mode_is_420_also(info, mode_in) &&
+		    timing_out->pixel_encoding != PIXEL_ENCODING_YCBCR420) {
+			timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR420;
+			adjust_colour_depth_from_display_info(timing_out, info);
+		}
+	}
 }
 
 static void fill_audio_info(struct audio_info *audio_info,
@@ -3923,6 +3976,13 @@
 	struct amdgpu_device *adev = connector->dev->dev_private;
 	struct amdgpu_display_manager *dm = &adev->dm;
 
+	/*
+	 * Call only if mst_mgr was iniitalized before since it's not done
+	 * for all connector types.
+	 */
+	if (aconnector->mst_mgr.dev)
+		drm_dp_mst_topology_mgr_destroy(&aconnector->mst_mgr);
+
 #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) ||\
 	defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)
 
@@ -4266,19 +4326,6 @@
 {
 }
 
-static bool does_crtc_have_active_cursor(struct drm_crtc_state *new_crtc_state)
-{
-	struct drm_device *dev = new_crtc_state->crtc->dev;
-	struct drm_plane *plane;
-
-	drm_for_each_plane_mask(plane, dev, new_crtc_state->plane_mask) {
-		if (plane->type == DRM_PLANE_TYPE_CURSOR)
-			return true;
-	}
-
-	return false;
-}
-
 static int count_crtc_active_planes(struct drm_crtc_state *new_crtc_state)
 {
 	struct drm_atomic_state *state = new_crtc_state->state;
@@ -4358,19 +4405,20 @@
 		return ret;
 	}
 
-	/* In some use cases, like reset, no stream is attached */
-	if (!dm_crtc_state->stream)
-		return 0;
-
 	/*
-	 * We want at least one hardware plane enabled to use
-	 * the stream with a cursor enabled.
+	 * We require the primary plane to be enabled whenever the CRTC is, otherwise
+	 * drm_mode_cursor_universal may end up trying to enable the cursor plane while all other
+	 * planes are disabled, which is not supported by the hardware. And there is legacy
+	 * userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
 	 */
-	if (state->enable && state->active &&
-	    does_crtc_have_active_cursor(state) &&
-	    dm_crtc_state->active_planes == 0)
+	if (state->enable &&
+	    !(state->plane_mask & drm_plane_mask(crtc->primary)))
 		return -EINVAL;
 
+	/* In some use cases, like reset, no stream is attached */
+	if (!dm_crtc_state->stream)
+		return 0;
+
 	if (dc_validate_stream(dc, dm_crtc_state->stream) == DC_OK)
 		return 0;
 
@@ -4475,6 +4523,7 @@
 	uint64_t tiling_flags;
 	uint32_t domain;
 	int r;
+	bool force_disable_dcc = false;
 
 	dm_plane_state_old = to_dm_plane_state(plane->state);
 	dm_plane_state_new = to_dm_plane_state(new_state);
@@ -4533,11 +4582,13 @@
 			dm_plane_state_old->dc_state != dm_plane_state_new->dc_state) {
 		struct dc_plane_state *plane_state = dm_plane_state_new->dc_state;
 
+		force_disable_dcc = adev->asic_type == CHIP_RAVEN && adev->in_suspend;
 		fill_plane_buffer_attributes(
 			adev, afb, plane_state->format, plane_state->rotation,
 			tiling_flags, &plane_state->tiling_info,
 			&plane_state->plane_size, &plane_state->dcc,
-			&plane_state->address);
+			&plane_state->address,
+			force_disable_dcc);
 	}
 
 	return 0;
@@ -4947,6 +4998,9 @@
 		mode = amdgpu_dm_create_common_mode(encoder,
 				common_modes[i].name, common_modes[i].w,
 				common_modes[i].h);
+		if (!mode)
+			continue;
+
 		drm_mode_probed_add(connector, mode);
 		amdgpu_dm_connector->num_modes++;
 	}
@@ -5341,10 +5395,6 @@
 	int x, y;
 	int xorigin = 0, yorigin = 0;
 
-	position->enable = false;
-	position->x = 0;
-	position->y = 0;
-
 	if (!crtc || !plane->state->fb)
 		return 0;
 
@@ -5396,7 +5446,7 @@
 	struct dm_crtc_state *crtc_state = crtc ? to_dm_crtc_state(crtc->state) : NULL;
 	struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
 	uint64_t address = afb ? afb->address : 0;
-	struct dc_cursor_position position;
+	struct dc_cursor_position position = {0};
 	struct dc_cursor_attributes attributes;
 	int ret;
 
@@ -5709,6 +5759,8 @@
 			continue;
 
 		dc_plane = dm_new_plane_state->dc_state;
+		if (!dc_plane)
+			continue;
 
 		bundle->surface_updates[planes_count].surface = dc_plane;
 		if (new_pcrtc_state->color_mgmt_changed) {
@@ -5761,7 +5813,12 @@
 		fill_dc_plane_info_and_addr(
 			dm->adev, new_plane_state, tiling_flags,
 			&bundle->plane_infos[planes_count],
-			&bundle->flip_addrs[planes_count].address);
+			&bundle->flip_addrs[planes_count].address,
+			false);
+
+		DRM_DEBUG_DRIVER("plane: id=%d dcc_en=%d\n",
+				 new_plane_state->plane->index,
+				 bundle->plane_infos[planes_count].dcc.enable);
 
 		bundle->surface_updates[planes_count].plane_info =
 			&bundle->plane_infos[planes_count];
@@ -6429,14 +6486,14 @@
 
 	ret = PTR_ERR_OR_ZERO(conn_state);
 	if (ret)
-		goto err;
+		goto out;
 
 	/* Attach crtc to drm_atomic_state*/
 	crtc_state = drm_atomic_get_crtc_state(state, &disconnected_acrtc->base);
 
 	ret = PTR_ERR_OR_ZERO(crtc_state);
 	if (ret)
-		goto err;
+		goto out;
 
 	/* force a restore */
 	crtc_state->mode_changed = true;
@@ -6446,17 +6503,15 @@
 
 	ret = PTR_ERR_OR_ZERO(plane_state);
 	if (ret)
-		goto err;
-
+		goto out;
 
 	/* Call commit internally with the state we just constructed */
 	ret = drm_atomic_commit(state);
-	if (!ret)
-		return 0;
 
-err:
-	DRM_ERROR("Restoring old state failed with %i\n", ret);
+out:
 	drm_atomic_state_put(state);
+	if (ret)
+		DRM_ERROR("Restoring old state failed with %i\n", ret);
 
 	return ret;
 }
@@ -6785,7 +6840,8 @@
 	BUG_ON(dm_new_crtc_state->stream == NULL);
 
 	/* Scaling or underscan settings */
-	if (is_scaling_state_different(dm_old_conn_state, dm_new_conn_state))
+	if (is_scaling_state_different(dm_old_conn_state, dm_new_conn_state) ||
+				drm_atomic_crtc_needs_modeset(new_crtc_state))
 		update_stream_scaling_settings(
 			&new_crtc_state->mode, dm_new_conn_state, dm_new_crtc_state->stream);
 
@@ -6896,6 +6952,7 @@
 	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
 	struct dm_crtc_state *dm_new_crtc_state, *dm_old_crtc_state;
 	struct dm_plane_state *dm_new_plane_state, *dm_old_plane_state;
+	struct amdgpu_crtc *new_acrtc;
 	bool needs_reset;
 	int ret = 0;
 
@@ -6905,9 +6962,23 @@
 	dm_new_plane_state = to_dm_plane_state(new_plane_state);
 	dm_old_plane_state = to_dm_plane_state(old_plane_state);
 
-	/*TODO Implement atomic check for cursor plane */
-	if (plane->type == DRM_PLANE_TYPE_CURSOR)
+	/*TODO Implement better atomic check for cursor plane */
+	if (plane->type == DRM_PLANE_TYPE_CURSOR) {
+		if (!enable || !new_plane_crtc ||
+			drm_atomic_plane_disabling(plane->state, new_plane_state))
+			return 0;
+
+		new_acrtc = to_amdgpu_crtc(new_plane_crtc);
+
+		if ((new_plane_state->crtc_w > new_acrtc->max_cursor_width) ||
+			(new_plane_state->crtc_h > new_acrtc->max_cursor_height)) {
+			DRM_DEBUG_ATOMIC("Bad cursor size %d x %d\n",
+							 new_plane_state->crtc_w, new_plane_state->crtc_h);
+			return -EINVAL;
+		}
+
 		return 0;
+	}
 
 	needs_reset = should_reset_plane(state, plane, old_plane_state,
 					 new_plane_state);
@@ -6940,12 +7011,12 @@
 				dm_old_plane_state->dc_state,
 				dm_state->context)) {
 
-			ret = EINVAL;
-			return ret;
+			return -EINVAL;
 		}
 
+		if (dm_old_plane_state->dc_state)
+			dc_plane_state_release(dm_old_plane_state->dc_state);
 
-		dc_plane_state_release(dm_old_plane_state->dc_state);
 		dm_new_plane_state->dc_state = NULL;
 
 		*lock_and_validation_needed = true;
@@ -7132,7 +7203,8 @@
 				ret = fill_dc_plane_info_and_addr(
 					dm->adev, new_plane_state, tiling_flags,
 					&plane_info,
-					&flip_addr.address);
+					&flip_addr.address,
+					false);
 				if (ret)
 					goto cleanup;
 
@@ -7180,6 +7252,80 @@
 	*out_type = update_type;
 	return ret;
 }
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+static int add_affected_mst_dsc_crtcs(struct drm_atomic_state *state, struct drm_crtc *crtc)
+{
+	struct drm_connector *connector;
+	struct drm_connector_state *conn_state, *old_conn_state;
+	struct amdgpu_dm_connector *aconnector = NULL;
+	int i;
+	for_each_oldnew_connector_in_state(state, connector, old_conn_state, conn_state, i) {
+		if (!conn_state->crtc)
+			conn_state = old_conn_state;
+
+		if (conn_state->crtc != crtc)
+			continue;
+
+		aconnector = to_amdgpu_dm_connector(connector);
+		if (!aconnector->port || !aconnector->mst_port)
+			aconnector = NULL;
+		else
+			break;
+	}
+
+	if (!aconnector)
+		return 0;
+
+	return drm_dp_mst_add_affected_dsc_crtcs(state, &aconnector->mst_port->mst_mgr);
+}
+#endif
+
+static int validate_overlay(struct drm_atomic_state *state)
+{
+	int i;
+	struct drm_plane *plane;
+	struct drm_plane_state *old_plane_state, *new_plane_state;
+	struct drm_plane_state *primary_state, *overlay_state = NULL;
+
+	/* Check if primary plane is contained inside overlay */
+	for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, new_plane_state, i) {
+		if (plane->type == DRM_PLANE_TYPE_OVERLAY) {
+			if (drm_atomic_plane_disabling(plane->state, new_plane_state))
+				return 0;
+
+			overlay_state = new_plane_state;
+			continue;
+		}
+	}
+
+	/* check if we're making changes to the overlay plane */
+	if (!overlay_state)
+		return 0;
+
+	/* check if overlay plane is enabled */
+	if (!overlay_state->crtc)
+		return 0;
+
+	/* find the primary plane for the CRTC that the overlay is enabled on */
+	primary_state = drm_atomic_get_plane_state(state, overlay_state->crtc->primary);
+	if (IS_ERR(primary_state))
+		return PTR_ERR(primary_state);
+
+	/* check if primary plane is enabled */
+	if (!primary_state->crtc)
+		return 0;
+
+	/* Perform the bounds check to ensure the overlay plane covers the primary */
+	if (primary_state->crtc_x < overlay_state->crtc_x ||
+	    primary_state->crtc_y < overlay_state->crtc_y ||
+	    primary_state->crtc_x + primary_state->crtc_w > overlay_state->crtc_x + overlay_state->crtc_w ||
+	    primary_state->crtc_y + primary_state->crtc_h > overlay_state->crtc_y + overlay_state->crtc_h) {
+		DRM_DEBUG_ATOMIC("Overlay plane is enabled with hardware cursor but does not fully cover primary plane\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
 
 /**
  * amdgpu_dm_atomic_check() - Atomic check implementation for AMDgpu DM.
@@ -7233,12 +7379,50 @@
 	if (ret)
 		goto fail;
 
+	/* Check connector changes */
+	for_each_oldnew_connector_in_state(state, connector, old_con_state, new_con_state, i) {
+		struct dm_connector_state *dm_old_con_state = to_dm_connector_state(old_con_state);
+		struct dm_connector_state *dm_new_con_state = to_dm_connector_state(new_con_state);
+
+		/* Skip connectors that are disabled or part of modeset already. */
+		if (!old_con_state->crtc && !new_con_state->crtc)
+			continue;
+
+		if (!new_con_state->crtc)
+			continue;
+
+		new_crtc_state = drm_atomic_get_crtc_state(state, new_con_state->crtc);
+		if (IS_ERR(new_crtc_state)) {
+			ret = PTR_ERR(new_crtc_state);
+			goto fail;
+		}
+
+		if (dm_old_con_state->abm_level != dm_new_con_state->abm_level ||
+		    dm_old_con_state->scaling != dm_new_con_state->scaling)
+			new_crtc_state->connectors_changed = true;
+	}
+
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+	if (dc_resource_is_dsc_encoding_supported(dc)) {
+		for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
+			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
+				ret = add_affected_mst_dsc_crtcs(state, crtc);
+				if (ret)
+					goto fail;
+			}
+		}
+	}
+#endif
 	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
 		if (!drm_atomic_crtc_needs_modeset(new_crtc_state) &&
 		    !new_crtc_state->color_mgmt_changed &&
 		    old_crtc_state->vrr_enabled == new_crtc_state->vrr_enabled)
 			continue;
 
+		ret = amdgpu_dm_verify_lut_sizes(new_crtc_state);
+		if (ret)
+			goto fail;
+
 		if (!new_crtc_state->enable)
 			continue;
 
@@ -7320,6 +7504,10 @@
 			goto fail;
 	}
 
+	ret = validate_overlay(state);
+	if (ret)
+		goto fail;
+
 	/* Add new/modified planes */
 	for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, new_plane_state, i) {
 		ret = dm_update_plane_state(dc, state, plane,
@@ -7416,20 +7604,38 @@
 		 * the same resource. If we have a new DC context as part of
 		 * the DM atomic state from validation we need to free it and
 		 * retain the existing one instead.
+		 *
+		 * Furthermore, since the DM atomic state only contains the DC
+		 * context and can safely be annulled, we can free the state
+		 * and clear the associated private object now to free
+		 * some memory and avoid a possible use-after-free later.
 		 */
-		struct dm_atomic_state *new_dm_state, *old_dm_state;
 
-		new_dm_state = dm_atomic_get_new_state(state);
-		old_dm_state = dm_atomic_get_old_state(state);
+		for (i = 0; i < state->num_private_objs; i++) {
+			struct drm_private_obj *obj = state->private_objs[i].ptr;
 
-		if (new_dm_state && old_dm_state) {
-			if (new_dm_state->context)
-				dc_release_state(new_dm_state->context);
+			if (obj->funcs == adev->dm.atomic_obj.funcs) {
+				int j = state->num_private_objs-1;
 
-			new_dm_state->context = old_dm_state->context;
+				dm_atomic_destroy_state(obj,
+						state->private_objs[i].state);
 
-			if (old_dm_state->context)
-				dc_retain_state(old_dm_state->context);
+				/* If i is not at the end of the array then the
+				 * last element needs to be moved to where i was
+				 * before the array can safely be truncated.
+				 */
+				if (i != j)
+					state->private_objs[i] =
+						state->private_objs[j];
+
+				state->private_objs[j].ptr = NULL;
+				state->private_objs[j].state = NULL;
+				state->private_objs[j].old_state = NULL;
+				state->private_objs[j].new_state = NULL;
+
+				state->num_private_objs = j;
+				break;
+			}
 		}
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
@@ -387,6 +387,7 @@
 #define MAX_COLOR_LEGACY_LUT_ENTRIES 256
 
 void amdgpu_dm_init_color_mod(void);
+int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state);
 int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc);
 int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc,
 				      struct dc_plane_state *dc_plane_state);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
@@ -210,6 +210,8 @@
 	res = mod_color_calculate_regamma_params(func, gamma, true, has_rom,
 						 NULL);
 
+	dc_gamma_release(&gamma);
+
 	return res ? 0 : -ENOMEM;
 }
 
@@ -276,6 +278,37 @@
 }
 
 /**
+ * Verifies that the Degamma and Gamma LUTs attached to the |crtc_state| are of
+ * the expected size.
+ * Returns 0 on success.
+ */
+int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state)
+{
+	const struct drm_color_lut *lut = NULL;
+	uint32_t size = 0;
+
+	lut = __extract_blob_lut(crtc_state->degamma_lut, &size);
+	if (lut && size != MAX_COLOR_LUT_ENTRIES) {
+		DRM_DEBUG_DRIVER(
+			"Invalid Degamma LUT size. Should be %u but got %u.\n",
+			MAX_COLOR_LUT_ENTRIES, size);
+		return -EINVAL;
+	}
+
+	lut = __extract_blob_lut(crtc_state->gamma_lut, &size);
+	if (lut && size != MAX_COLOR_LUT_ENTRIES &&
+	    size != MAX_COLOR_LEGACY_LUT_ENTRIES) {
+		DRM_DEBUG_DRIVER(
+			"Invalid Gamma LUT size. Should be %u (or %u for legacy) but got %u.\n",
+			MAX_COLOR_LUT_ENTRIES, MAX_COLOR_LEGACY_LUT_ENTRIES,
+			size);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+/**
  * amdgpu_dm_update_crtc_color_mgmt: Maps DRM color management to DC stream.
  * @crtc: amdgpu_dm crtc state
  *
@@ -309,14 +342,12 @@
 	bool is_legacy;
 	int r;
 
-	degamma_lut = __extract_blob_lut(crtc->base.degamma_lut, &degamma_size);
-	if (degamma_lut && degamma_size != MAX_COLOR_LUT_ENTRIES)
-		return -EINVAL;
+	r = amdgpu_dm_verify_lut_sizes(&crtc->base);
+	if (r)
+		return r;
 
+	degamma_lut = __extract_blob_lut(crtc->base.degamma_lut, &degamma_size);
 	regamma_lut = __extract_blob_lut(crtc->base.gamma_lut, &regamma_size);
-	if (regamma_lut && regamma_size != MAX_COLOR_LUT_ENTRIES &&
-	    regamma_size != MAX_COLOR_LEGACY_LUT_ENTRIES)
-		return -EINVAL;
 
 	has_degamma =
 		degamma_lut && !__is_lut_linear(degamma_lut, degamma_size);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
@@ -113,7 +113,7 @@
 	mutex_lock(&adev->dm.dc_lock);
 
 	/* Enable CRTC CRC generation if necessary. */
-	if (dm_is_crc_source_crtc(source)) {
+	if (dm_is_crc_source_crtc(source) || source == AMDGPU_DM_PIPE_CRC_SOURCE_NONE) {
 		if (!dc_stream_configure_crc(stream_state->ctx->dc,
 					     stream_state, enable, enable)) {
 			ret = -EINVAL;
@@ -221,6 +221,14 @@
 			ret = -EINVAL;
 			goto cleanup;
 		}
+
+		if ((aconn->base.connector_type != DRM_MODE_CONNECTOR_DisplayPort) &&
+				(aconn->base.connector_type != DRM_MODE_CONNECTOR_eDP)) {
+			DRM_DEBUG_DRIVER("No DP connector available for CRC source\n");
+			ret = -EINVAL;
+			goto cleanup;
+		}
+
 	}
 
 	if (amdgpu_dm_crtc_configure_crc_source(crtc, crtc_state, source)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -95,29 +95,29 @@
 
 	rd_buf_ptr = rd_buf;
 
-	str_len = strlen("Current:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Current:  %d  %d  %d  ",
+	str_len = strlen("Current:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Current:  %d  0x%x  %d  ",
 			link->cur_link_settings.lane_count,
 			link->cur_link_settings.link_rate,
 			link->cur_link_settings.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Verified:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Verified:  %d  %d  %d  ",
+	str_len = strlen("Verified:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Verified:  %d  0x%x  %d  ",
 			link->verified_link_cap.lane_count,
 			link->verified_link_cap.link_rate,
 			link->verified_link_cap.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Reported:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Reported:  %d  %d  %d  ",
+	str_len = strlen("Reported:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Reported:  %d  0x%x  %d  ",
 			link->reported_link_cap.lane_count,
 			link->reported_link_cap.link_rate,
 			link->reported_link_cap.link_spread);
 	rd_buf_ptr += str_len;
 
-	str_len = strlen("Preferred:  %d  %d  %d  ");
-	snprintf(rd_buf_ptr, str_len, "Preferred:  %d  %d  %d\n",
+	str_len = strlen("Preferred:  %d  0x%x  %d  ");
+	snprintf(rd_buf_ptr, str_len, "Preferred:  %d  0x%x  %d\n",
 			link->preferred_link_setting.lane_count,
 			link->preferred_link_setting.link_rate,
 			link->preferred_link_setting.link_spread);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
@@ -247,7 +247,8 @@
 		drm_dp_mst_reset_vcpi_slots(mst_mgr, mst_port);
 	}
 
-	ret = drm_dp_update_payload_part1(mst_mgr);
+	/* It's OK for this to fail */
+	drm_dp_update_payload_part1(mst_mgr);
 
 	/* mst_mgr->->payloads are VC payload notify MST branch using DPCD or
 	 * AUX message. The sequence is slot 1-63 allocated sequence for each
@@ -256,9 +257,6 @@
 
 	get_payload_table(aconnector, proposed_table);
 
-	if (ret)
-		return false;
-
 	return true;
 }
 
@@ -316,7 +314,6 @@
 	struct amdgpu_dm_connector *aconnector;
 	struct drm_dp_mst_topology_mgr *mst_mgr;
 	struct drm_dp_mst_port *mst_port;
-	int ret;
 
 	aconnector = (struct amdgpu_dm_connector *)stream->dm_stream_context;
 
@@ -330,10 +327,8 @@
 	if (!mst_mgr->mst_state)
 		return false;
 
-	ret = drm_dp_update_payload_part2(mst_mgr);
-
-	if (ret)
-		return false;
+	/* It's OK for this to fail */
+	drm_dp_update_payload_part2(mst_mgr);
 
 	if (!enable)
 		drm_dp_mst_deallocate_vcpi(mst_mgr, mst_port);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -101,7 +101,7 @@
 	result = dc_link_aux_transfer_raw(TO_DM_AUX(aux)->ddc_service, &payload,
 				      &operation_result);
 
-	if (payload.write)
+	if (payload.write && result >= 0)
 		result = msg->size;
 
 	if (result < 0)
@@ -379,6 +379,7 @@
 					   aconnector->dc_sink);
 		dc_sink_release(aconnector->dc_sink);
 		aconnector->dc_sink = NULL;
+		aconnector->dc_link->cur_link_settings.lane_count = 0;
 	}
 
 	drm_connector_unregister(connector);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
@@ -342,7 +342,8 @@
 	if (adev->powerplay.pp_funcs && adev->powerplay.pp_funcs->get_clock_by_type) {
 		if (adev->powerplay.pp_funcs->get_clock_by_type(pp_handle,
 			dc_to_pp_clock_type(clk_type), &pp_clks)) {
-		/* Error in pplib. Provide default values. */
+			/* Error in pplib. Provide default values. */
+			get_default_clock_levels(clk_type, dc_clks);
 			return true;
 		}
 	} else if (adev->smu.funcs && adev->smu.funcs->get_clock_by_type) {
@@ -529,6 +530,8 @@
 			&pp_clk_info);
 	else if (adev->smu.funcs)
 		ret = smu_get_current_clocks(&adev->smu, &pp_clk_info);
+	else
+		return false;
 	if (ret)
 		return false;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
@@ -2543,7 +2543,6 @@
 
 	/* Sort voltage table from low to high*/
 	if (result == BP_RESULT_OK) {
-		struct clock_voltage_caps temp = {0, 0};
 		uint32_t i;
 		uint32_t j;
 
@@ -2553,10 +2552,8 @@
 						info->disp_clk_voltage[j].max_supported_clk <
 						info->disp_clk_voltage[j-1].max_supported_clk) {
 					/* swap j and j - 1*/
-					temp = info->disp_clk_voltage[j-1];
-					info->disp_clk_voltage[j-1] =
-							info->disp_clk_voltage[j];
-					info->disp_clk_voltage[j] = temp;
+					swap(info->disp_clk_voltage[j - 1],
+					     info->disp_clk_voltage[j]);
 				}
 			}
 		}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
@@ -1613,8 +1613,6 @@
 
 	struct atom_common_table_header *header;
 	struct atom_data_revision revision;
-
-	struct clock_voltage_caps temp = {0, 0};
 	uint32_t i;
 	uint32_t j;
 
@@ -1644,10 +1642,8 @@
 				info->disp_clk_voltage[j-1].max_supported_clk
 				) {
 				/* swap j and j - 1*/
-				temp = info->disp_clk_voltage[j-1];
-				info->disp_clk_voltage[j-1] =
-					info->disp_clk_voltage[j];
-				info->disp_clk_voltage[j] = temp;
+				swap(info->disp_clk_voltage[j - 1],
+				     info->disp_clk_voltage[j]);
 			}
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/bios/command_table.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/bios/command_table.c
@@ -245,6 +245,23 @@
 					cntl->enable_dp_audio);
 	params.ucLaneNum = (uint8_t)(cntl->lanes_number);
 
+	switch (cntl->color_depth) {
+	case COLOR_DEPTH_888:
+		params.ucBitPerColor = PANEL_8BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_101010:
+		params.ucBitPerColor = PANEL_10BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_121212:
+		params.ucBitPerColor = PANEL_12BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_161616:
+		params.ucBitPerColor = PANEL_16BIT_PER_COLOR;
+		break;
+	default:
+		break;
+	}
+
 	if (EXEC_BIOS_CMD_TABLE(DIGxEncoderControl, params))
 		result = BP_RESULT_OK;
 
@@ -274,6 +291,23 @@
 					cntl->enable_dp_audio));
 	params.ucLaneNum = (uint8_t)(cntl->lanes_number);
 
+	switch (cntl->color_depth) {
+	case COLOR_DEPTH_888:
+		params.ucBitPerColor = PANEL_8BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_101010:
+		params.ucBitPerColor = PANEL_10BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_121212:
+		params.ucBitPerColor = PANEL_12BIT_PER_COLOR;
+		break;
+	case COLOR_DEPTH_161616:
+		params.ucBitPerColor = PANEL_16BIT_PER_COLOR;
+		break;
+	default:
+		break;
+	}
+
 	if (EXEC_BIOS_CMD_TABLE(DIGxEncoderControl, params))
 		result = BP_RESULT_OK;
 
@@ -1057,6 +1091,19 @@
 		 * driver choose program it itself, i.e. here we program it
 		 * to 888 by default.
 		 */
+		if (bp_params->signal_type == SIGNAL_TYPE_HDMI_TYPE_A)
+			switch (bp_params->color_depth) {
+			case TRANSMITTER_COLOR_DEPTH_30:
+				/* yes this is correct, the atom define is wrong */
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_32BPP;
+				break;
+			case TRANSMITTER_COLOR_DEPTH_36:
+				/* yes this is correct, the atom define is wrong */
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_30BPP;
+				break;
+			default:
+				break;
+			}
 
 		if (EXEC_BIOS_CMD_TABLE(SetPixelClock, clk))
 			result = BP_RESULT_OK;
@@ -1135,6 +1182,20 @@
 		 * driver choose program it itself, i.e. here we pass required
 		 * target rate that includes deep color.
 		 */
+		if (bp_params->signal_type == SIGNAL_TYPE_HDMI_TYPE_A)
+			switch (bp_params->color_depth) {
+			case TRANSMITTER_COLOR_DEPTH_30:
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6;
+				break;
+			case TRANSMITTER_COLOR_DEPTH_36:
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6;
+				break;
+			case TRANSMITTER_COLOR_DEPTH_48:
+				clk.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_48BPP;
+				break;
+			default:
+				break;
+			}
 
 		if (EXEC_BIOS_CMD_TABLE(SetPixelClock, clk))
 			result = BP_RESULT_OK;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/calcs/bw_fixed.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/calcs/bw_fixed.c
@@ -26,12 +26,12 @@
 #include "bw_fixed.h"
 
 
-#define MIN_I64 \
-	(int64_t)(-(1LL << 63))
-
 #define MAX_I64 \
 	(int64_t)((1ULL << 63) - 1)
 
+#define MIN_I64 \
+	(-MAX_I64 - 1)
+
 #define FRACTIONAL_PART_MASK \
 	((1ULL << BW_FIXED_BITS_PER_FRACTIONAL_PART) - 1)
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
@@ -1438,6 +1438,7 @@
 	struct dc_context *ctx = dc->ctx;
 	struct dm_pp_clock_levels_with_voltage fclks = {0}, dcfclks = {0};
 	bool res;
+	unsigned vmin0p65_idx, vmid0p72_idx, vnom0p8_idx, vmax0p9_idx;
 
 	/* TODO: This is not the proper way to obtain fabric_and_dram_bandwidth, should be min(fclk, memclk) */
 	res = dm_pp_get_clock_levels_by_type_with_voltage(
@@ -1449,17 +1450,28 @@
 		res = verify_clock_values(&fclks);
 
 	if (res) {
-		ASSERT(fclks.num_levels >= 3);
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 = 32 * (fclks.data[0].clocks_in_khz / 1000.0) / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - (fclks.num_levels > 2 ? 3 : 2)].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - 2].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - 1].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
+		ASSERT(fclks.num_levels);
+
+		vmin0p65_idx = 0;
+		vmid0p72_idx = fclks.num_levels -
+			(fclks.num_levels > 2 ? 3 : (fclks.num_levels > 1 ? 2 : 1));
+		vnom0p8_idx = fclks.num_levels - (fclks.num_levels > 1 ? 2 : 1);
+		vmax0p9_idx = fclks.num_levels - 1;
+
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 =
+			32 * (fclks.data[vmin0p65_idx].clocks_in_khz / 1000.0) / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vmid0p72_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vnom0p8_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vmax0p9_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
 	} else
 		BREAK_TO_DEBUGGER();
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile
@@ -91,6 +91,12 @@
 ###############################################################################
 CLK_MGR_DCN21 = rn_clk_mgr.o rn_clk_mgr_vbios_smu.o
 
+# prevent build errors regarding soft-float vs hard-float FP ABI tags
+# this code is currently unused on ppc64, as it applies to Renoir APUs only
+ifdef CONFIG_PPC64
+CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn21/rn_clk_mgr.o := $(call cc-option,-mno-gnu-attribute)
+endif
+
 AMD_DAL_CLK_MGR_DCN21 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn21/,$(CLK_MGR_DCN21))
 
 AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN21)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
@@ -85,12 +85,77 @@
 	return disp_clk_threshold;
 }
 
-static void ramp_up_dispclk_with_dpp(struct clk_mgr_internal *clk_mgr, struct dc *dc, struct dc_clocks *new_clocks)
+static void ramp_up_dispclk_with_dpp(
+		struct clk_mgr_internal *clk_mgr,
+		struct dc *dc,
+		struct dc_clocks *new_clocks,
+		bool safe_to_lower)
 {
 	int i;
 	int dispclk_to_dpp_threshold = rv1_determine_dppclk_threshold(clk_mgr, new_clocks);
 	bool request_dpp_div = new_clocks->dispclk_khz > new_clocks->dppclk_khz;
 
+	/* this function is to change dispclk, dppclk and dprefclk according to
+	 * bandwidth requirement. Its call stack is rv1_update_clocks -->
+	 * update_clocks --> dcn10_prepare_bandwidth / dcn10_optimize_bandwidth
+	 * --> prepare_bandwidth / optimize_bandwidth. before change dcn hw,
+	 * prepare_bandwidth will be called first to allow enough clock,
+	 * watermark for change, after end of dcn hw change, optimize_bandwidth
+	 * is executed to lower clock to save power for new dcn hw settings.
+	 *
+	 * below is sequence of commit_planes_for_stream:
+	 *
+	 * step 1: prepare_bandwidth - raise clock to have enough bandwidth
+	 * step 2: lock_doublebuffer_enable
+	 * step 3: pipe_control_lock(true) - make dchubp register change will
+	 * not take effect right way
+	 * step 4: apply_ctx_for_surface - program dchubp
+	 * step 5: pipe_control_lock(false) - dchubp register change take effect
+	 * step 6: optimize_bandwidth --> dc_post_update_surfaces_to_stream
+	 * for full_date, optimize clock to save power
+	 *
+	 * at end of step 1, dcn clocks (dprefclk, dispclk, dppclk) may be
+	 * changed for new dchubp configuration. but real dcn hub dchubps are
+	 * still running with old configuration until end of step 5. this need
+	 * clocks settings at step 1 should not less than that before step 1.
+	 * this is checked by two conditions: 1. if (should_set_clock(safe_to_lower
+	 * , new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz) ||
+	 * new_clocks->dispclk_khz == clk_mgr_base->clks.dispclk_khz)
+	 * 2. request_dpp_div = new_clocks->dispclk_khz > new_clocks->dppclk_khz
+	 *
+	 * the second condition is based on new dchubp configuration. dppclk
+	 * for new dchubp may be different from dppclk before step 1.
+	 * for example, before step 1, dchubps are as below:
+	 * pipe 0: recout=(0,40,1920,980) viewport=(0,0,1920,979)
+	 * pipe 1: recout=(0,0,1920,1080) viewport=(0,0,1920,1080)
+	 * for dppclk for pipe0 need dppclk = dispclk
+	 *
+	 * new dchubp pipe split configuration:
+	 * pipe 0: recout=(0,0,960,1080) viewport=(0,0,960,1080)
+	 * pipe 1: recout=(960,0,960,1080) viewport=(960,0,960,1080)
+	 * dppclk only needs dppclk = dispclk /2.
+	 *
+	 * dispclk, dppclk are not lock by otg master lock. they take effect
+	 * after step 1. during this transition, dispclk are the same, but
+	 * dppclk is changed to half of previous clock for old dchubp
+	 * configuration between step 1 and step 6. This may cause p-state
+	 * warning intermittently.
+	 *
+	 * for new_clocks->dispclk_khz == clk_mgr_base->clks.dispclk_khz, we
+	 * need make sure dppclk are not changed to less between step 1 and 6.
+	 * for new_clocks->dispclk_khz > clk_mgr_base->clks.dispclk_khz,
+	 * new display clock is raised, but we do not know ratio of
+	 * new_clocks->dispclk_khz and clk_mgr_base->clks.dispclk_khz,
+	 * new_clocks->dispclk_khz /2 does not guarantee equal or higher than
+	 * old dppclk. we could ignore power saving different between
+	 * dppclk = displck and dppclk = dispclk / 2 between step 1 and step 6.
+	 * as long as safe_to_lower = false, set dpclk = dispclk to simplify
+	 * condition check.
+	 * todo: review this change for other asic.
+	 **/
+	if (!safe_to_lower)
+		request_dpp_div = false;
+
 	/* set disp clk to dpp clk threshold */
 
 	clk_mgr->funcs->set_dispclk(clk_mgr, dispclk_to_dpp_threshold);
@@ -206,7 +271,7 @@
 	/* program dispclk on = as a w/a for sleep resume clock ramping issues */
 	if (should_set_clock(safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)
 			|| new_clocks->dispclk_khz == clk_mgr_base->clks.dispclk_khz) {
-		ramp_up_dispclk_with_dpp(clk_mgr, dc, new_clocks);
+		ramp_up_dispclk_with_dpp(clk_mgr, dc, new_clocks, safe_to_lower);
 		clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz;
 		send_request_to_lower = true;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
@@ -320,6 +320,8 @@
 		struct dc_state *context,
 		bool safe_to_lower)
 {
+	struct clk_mgr_internal *clk_mgr_int = TO_CLK_MGR_INTERNAL(clk_mgr);
+
 	struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;
 	/* Min fclk = 1.2GHz since all the extra scemi logic seems to run off of it */
 	int fclk_adj = new_clocks->fclk_khz > 1200000 ? new_clocks->fclk_khz : 1200000;
@@ -357,14 +359,18 @@
 		clk_mgr->clks.dispclk_khz = new_clocks->dispclk_khz;
 	}
 
-	/* Both fclk and dppclk ref are run on the same scemi clock so we
-	 * need to keep the same value for both
+	/* Both fclk and ref_dppclk run on the same scemi clock.
+	 * So take the higher value since the DPP DTO is typically programmed
+	 * such that max dppclk is 1:1 with ref_dppclk.
 	 */
 	if (clk_mgr->clks.fclk_khz > clk_mgr->clks.dppclk_khz)
 		clk_mgr->clks.dppclk_khz = clk_mgr->clks.fclk_khz;
 	if (clk_mgr->clks.dppclk_khz > clk_mgr->clks.fclk_khz)
 		clk_mgr->clks.fclk_khz = clk_mgr->clks.dppclk_khz;
 
+	// Both fclk and ref_dppclk run on the same scemi clock.
+	clk_mgr_int->dccg->ref_dppclk = clk_mgr->clks.fclk_khz;
+
 	dm_set_dcn_clocks(clk_mgr->ctx, &clk_mgr->clks);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
@@ -91,8 +91,23 @@
 		rn_vbios_smu_set_min_deep_sleep_dcfclk(clk_mgr, clk_mgr_base->clks.dcfclk_deep_sleep_khz);
 	}
 
-	if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) {
-		if (clk_mgr->base.clks.dppclk_khz > new_clocks->dppclk_khz)
+	// workaround: Limit dppclk to 100Mhz to avoid lower eDP panel switch to plus 4K monitor underflow.
+	if (!IS_DIAG_DC(dc->ctx->dce_environment)) {
+		if (new_clocks->dppclk_khz < 100000)
+			new_clocks->dppclk_khz = 100000;
+	}
+
+	/*
+	 * Temporally ignore thew 0 cases for disp and dpp clks.
+	 * We may have a new feature that requires 0 clks in the future.
+	 */
+	if (new_clocks->dppclk_khz == 0 || new_clocks->dispclk_khz == 0) {
+		new_clocks->dppclk_khz = clk_mgr_base->clks.dppclk_khz;
+		new_clocks->dispclk_khz = clk_mgr_base->clks.dispclk_khz;
+	}
+
+	if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr_base->clks.dppclk_khz)) {
+		if (clk_mgr_base->clks.dppclk_khz > new_clocks->dppclk_khz)
 			dpp_clock_lowered = true;
 		clk_mgr_base->clks.dppclk_khz = new_clocks->dppclk_khz;
 		update_dppclk = true;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c
@@ -33,7 +33,7 @@
 #include "mp/mp_12_0_0_sh_mask.h"
 
 #define REG(reg_name) \
-	(MP1_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name)
+	(MP0_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name)
 
 #define FN(reg_name, field) \
 	FD(reg_name##__##field)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -283,6 +283,8 @@
 	int i = 0;
 	bool ret = false;
 
+	stream->adjust = *adjust;
+
 	for (i = 0; i < MAX_PIPES; i++) {
 		struct pipe_ctx *pipe = &dc->current_state->res_ctx.pipe_ctx[i];
 
@@ -905,15 +907,11 @@
 
 		/* set first pipe with plane as master */
 		for (j = 0; j < group_size; j++) {
-			struct pipe_ctx *temp;
-
 			if (pipe_set[j]->plane_state) {
 				if (j == 0)
 					break;
 
-				temp = pipe_set[0];
-				pipe_set[0] = pipe_set[j];
-				pipe_set[j] = temp;
+				swap(pipe_set[0], pipe_set[j]);
 				break;
 			}
 		}
@@ -1180,6 +1178,26 @@
 	return (result == DC_OK);
 }
 
+static bool is_flip_pending_in_pipes(struct dc *dc, struct dc_state *context)
+{
+	int i;
+	struct pipe_ctx *pipe;
+
+	for (i = 0; i < MAX_PIPES; i++) {
+		pipe = &context->res_ctx.pipe_ctx[i];
+
+		if (!pipe->plane_state)
+			continue;
+
+		/* Must set to false to start with, due to OR in update function */
+		pipe->plane_state->status.is_flip_pending = false;
+		dc->hwss.update_pending_status(pipe);
+		if (pipe->plane_state->status.is_flip_pending)
+			return true;
+	}
+	return false;
+}
+
 bool dc_post_update_surfaces_to_stream(struct dc *dc)
 {
 	int i;
@@ -1190,6 +1208,9 @@
 
 	post_surface_trace(dc);
 
+	if (is_flip_pending_in_pipes(dc, context))
+		return true;
+
 	for (i = 0; i < dc->res_pool->pipe_count; i++)
 		if (context->res_ctx.pipe_ctx[i].stream == NULL ||
 		    context->res_ctx.pipe_ctx[i].plane_state == NULL) {
@@ -1940,7 +1961,8 @@
 					if (pipe_ctx->stream_res.audio && !dc->debug.az_endpoint_mute_only)
 						pipe_ctx->stream_res.audio->funcs->az_disable(pipe_ctx->stream_res.audio);
 
-					dc->hwss.optimize_bandwidth(dc, dc->current_state);
+					dc->optimized_required = true;
+
 				} else {
 					if (!dc->optimize_seamless_boot)
 						dc->hwss.prepare_bandwidth(dc, dc->current_state);
@@ -2028,6 +2050,10 @@
 						plane_state->triplebuffer_flips = true;
 				}
 			}
+			if (update_type == UPDATE_TYPE_FULL) {
+				/* force vsync flip when reconfiguring pipes to prevent underflow */
+				plane_state->flip_immediate = false;
+			}
 		}
 	}
 #endif
@@ -2152,7 +2178,7 @@
 	enum surface_update_type update_type;
 	struct dc_state *context;
 	struct dc_context *dc_ctx = dc->ctx;
-	int i;
+	int i, j;
 
 	stream_status = dc_stream_get_status(stream);
 	context = dc->current_state;
@@ -2190,10 +2216,29 @@
 
 		copy_surface_update_to_plane(surface, &srf_updates[i]);
 
+		if (update_type >= UPDATE_TYPE_MED) {
+			for (j = 0; j < dc->res_pool->pipe_count; j++) {
+				struct pipe_ctx *pipe_ctx =
+					&context->res_ctx.pipe_ctx[j];
+
+				if (pipe_ctx->plane_state != surface)
+					continue;
+
+				resource_build_scaling_params(pipe_ctx);
+			}
+		}
 	}
 
 	copy_stream_update_to_stream(dc, context, stream, stream_update);
 
+	if (update_type > UPDATE_TYPE_FAST) {
+		if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) {
+			DC_ERROR("Mode validation failed for stream update!\n");
+			dc_release_state(context);
+			return;
+		}
+	}
+
 	commit_planes_for_stream(
 				dc,
 				srf_updates,
@@ -2267,12 +2312,7 @@
 	enum dc_acpi_cm_power_state power_state)
 {
 	struct kref refcount;
-	struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib),
-						GFP_KERNEL);
-
-	ASSERT(dml);
-	if (!dml)
-		return;
+	struct display_mode_lib *dml;
 
 	switch (power_state) {
 	case DC_ACPI_CM_POWER_STATE_D0:
@@ -2294,6 +2334,12 @@
 		 * clean state, and dc hw programming optimizations will not
 		 * cause any trouble.
 		 */
+		dml = kzalloc(sizeof(struct display_mode_lib),
+				GFP_KERNEL);
+
+		ASSERT(dml);
+		if (!dml)
+			return;
 
 		/* Preserve refcount */
 		refcount = dc->current_state->refcount;
@@ -2307,10 +2353,10 @@
 		dc->current_state->refcount = refcount;
 		dc->current_state->bw_ctx.dml = *dml;
 
+		kfree(dml);
+
 		break;
 	}
-
-	kfree(dml);
 }
 
 void dc_resume(struct dc *dc)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
@@ -92,8 +92,8 @@
 		{ 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3,
 				0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} },
 	{ COLOR_SPACE_YCBCR2020_TYPE,
-		{ 0x1000, 0xF149, 0xFEB7, 0x0000, 0x0868, 0x15B2,
-				0x01E6, 0x0000, 0xFB88, 0xF478, 0x1000, 0x0000} },
+		{ 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, 0x15B2,
+				0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} },
 	{ COLOR_SPACE_YCBCR709_BLACK_TYPE,
 		{ 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000,
 				0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x1000} },
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -373,7 +373,7 @@
 
 	if (GPIO_RESULT_OK != dal_ddc_open(
 		ddc, GPIO_MODE_INPUT, GPIO_DDC_CONFIG_TYPE_MODE_I2C)) {
-		dal_gpio_destroy_ddc(&ddc);
+		dal_ddc_close(ddc);
 
 		return present;
 	}
@@ -809,8 +809,8 @@
 		}
 
 		case SIGNAL_TYPE_EDP: {
-			read_edp_current_link_settings_on_detect(link);
 			detect_edp_sink_caps(link);
+			read_edp_current_link_settings_on_detect(link);
 			sink_caps.transaction_type =
 				DDC_TRANSACTION_TYPE_I2C_OVER_AUX;
 			sink_caps.signal = SIGNAL_TYPE_EDP;
@@ -936,6 +936,24 @@
 			    dc_is_dvi_signal(link->connector_signal)) {
 				if (prev_sink != NULL)
 					dc_sink_release(prev_sink);
+				link_disconnect_sink(link);
+
+				return false;
+			}
+			/*
+			 * Abort detection for DP connectors if we have
+			 * no EDID and connector is active converter
+			 * as there are no display downstream
+			 *
+			 */
+			if (dc_is_dp_sst_signal(link->connector_signal) &&
+				(link->dpcd_caps.dongle_type ==
+						DISPLAY_DONGLE_DP_VGA_CONVERTER ||
+				link->dpcd_caps.dongle_type ==
+						DISPLAY_DONGLE_DP_DVI_CONVERTER)) {
+				if (prev_sink)
+					dc_sink_release(prev_sink);
+				link_disconnect_sink(link);
 
 				return false;
 			}
@@ -948,8 +966,7 @@
 			same_edid = is_same_edid(&prev_sink->dc_edid, &sink->dc_edid);
 
 		if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
-			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX &&
-			reason != DETECT_REASON_HPDRX) {
+			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX) {
 			/*
 			 * TODO debug why Dell 2413 doesn't like
 			 *  two link trainings
@@ -1304,6 +1321,11 @@
 		goto ddc_create_fail;
 	}
 
+	if (!link->ddc->ddc_pin) {
+		DC_ERROR("Failed to get I2C info for connector!\n");
+		goto ddc_create_fail;
+	}
+
 	link->ddc_hw_inst =
 		dal_ddc_get_line(
 			dal_ddc_service_get_ddc_pin(link->ddc));
@@ -1734,8 +1756,7 @@
 				slave_address, buffer[0], buffer[1], i2c_success?1:0);
 
 			if (!i2c_success)
-				/* Write failure */
-				ASSERT(i2c_success);
+				goto i2c_write_fail;
 
 			/* Based on DP159 specs, APPLY_RX_TX_CHANGE bit in 0x0A
 			 * needs to be set to 1 on every 0xA-0xC write.
@@ -1753,8 +1774,7 @@
 						pipe_ctx->stream->link->ddc,
 						slave_address, &offset, 1, &value, 1);
 					if (!i2c_success)
-						/* Write failure */
-						ASSERT(i2c_success);
+						goto i2c_write_fail;
 				}
 
 				buffer[0] = offset;
@@ -1766,8 +1786,7 @@
 					offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 					slave_address, buffer[0], buffer[1], i2c_success?1:0);
 				if (!i2c_success)
-					/* Write failure */
-					ASSERT(i2c_success);
+					goto i2c_write_fail;
 			}
 		}
 	}
@@ -1787,8 +1806,7 @@
 					slave_address, buffer[0], buffer[1], i2c_success?1:0);
 
 				if (!i2c_success)
-					/* Write failure */
-					ASSERT(i2c_success);
+					goto i2c_write_fail;
 
 				/* Based on DP159 specs, APPLY_RX_TX_CHANGE bit in 0x0A
 				 * needs to be set to 1 on every 0xA-0xC write.
@@ -1806,8 +1824,7 @@
 								pipe_ctx->stream->link->ddc,
 								slave_address, &offset, 1, &value, 1);
 						if (!i2c_success)
-							/* Write failure */
-							ASSERT(i2c_success);
+							goto i2c_write_fail;
 					}
 
 					buffer[0] = offset;
@@ -1819,8 +1836,7 @@
 						offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 						slave_address, buffer[0], buffer[1], i2c_success?1:0);
 					if (!i2c_success)
-						/* Write failure */
-						ASSERT(i2c_success);
+						goto i2c_write_fail;
 				}
 			}
 		}
@@ -1838,8 +1854,7 @@
 				offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 				slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0x00 to 0x23 */
 		buffer[0] = 0x00;
@@ -1850,8 +1865,7 @@
 			offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0xff to 0x00 */
 		buffer[0] = 0xff;
@@ -1862,10 +1876,14 @@
 			offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 	}
+
+	return;
+
+i2c_write_fail:
+	DC_LOG_DEBUG("Set retimer failed");
 }
 
 static void write_i2c_default_retimer_setting(
@@ -1890,8 +1908,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0A to 0x17 */
 	buffer[0] = 0x0A;
@@ -1902,8 +1919,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0B to 0xDA or 0xD8 */
 	buffer[0] = 0x0B;
@@ -1914,8 +1930,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0A to 0x17 */
 	buffer[0] = 0x0A;
@@ -1926,8 +1941,7 @@
 		offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0C to 0x1D or 0x91 */
 	buffer[0] = 0x0C;
@@ -1938,8 +1952,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 	/* Write offset 0x0A to 0x17 */
 	buffer[0] = 0x0A;
@@ -1950,8 +1963,7 @@
 		offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 		slave_address, buffer[0], buffer[1], i2c_success?1:0);
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		goto i2c_write_fail;
 
 
 	if (is_vga_mode) {
@@ -1966,8 +1978,7 @@
 			offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0x00 to 0x23 */
 		buffer[0] = 0x00;
@@ -1978,8 +1989,7 @@
 			offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 
 		/* Write offset 0xff to 0x00 */
 		buffer[0] = 0xff;
@@ -1990,9 +2000,13 @@
 			offset = 0x%x, reg_val= 0x%x, i2c_success = %d end here\n",
 			slave_address, buffer[0], buffer[1], i2c_success?1:0);
 		if (!i2c_success)
-			/* Write failure */
-			ASSERT(i2c_success);
+			goto i2c_write_fail;
 	}
+
+	return;
+
+i2c_write_fail:
+	DC_LOG_DEBUG("Set default retimer failed");
 }
 
 static void write_i2c_redriver_setting(
@@ -2021,8 +2035,7 @@
 		slave_address, buffer[3], buffer[4], buffer[5], buffer[6], i2c_success?1:0);
 
 	if (!i2c_success)
-		/* Write failure */
-		ASSERT(i2c_success);
+		DC_LOG_DEBUG("Set redriver failed");
 }
 
 static void enable_link_hdmi(struct pipe_ctx *pipe_ctx)
@@ -2169,8 +2182,10 @@
 			dp_set_fec_ready(link, false);
 		}
 #endif
-	} else
-		link->link_enc->funcs->disable_output(link->link_enc, signal);
+	} else {
+		if (signal != SIGNAL_TYPE_VIRTUAL)
+			link->link_enc->funcs->disable_output(link->link_enc, signal);
+	}
 
 	if (signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
 		/* MST disable link only when no stream use the link */
@@ -2217,7 +2232,7 @@
 		break;
 	}
 
-	if (dongle_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER ||
+	if (dpcd_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER ||
 		dongle_caps->extendedCapValid == false)
 		return true;
 
@@ -2276,7 +2291,7 @@
 	/* A hack to avoid failing any modes for EDID override feature on
 	 * topology change such as lower quality cable for DP or different dongle
 	 */
-	if (link->remote_sinks[0])
+	if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL)
 		return DC_OK;
 
 	/* Passive Dongle */
@@ -2917,8 +2932,12 @@
 
 #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
 	if (timing->flags.DSC) {
-		kbps = (timing->pix_clk_100hz * timing->dsc_cfg.bits_per_pixel);
-		kbps = kbps / 160 + ((kbps % 160) ? 1 : 0);
+		struct fixed31_32 link_bw_kbps;
+
+		link_bw_kbps = dc_fixpt_from_int(timing->pix_clk_100hz);
+		link_bw_kbps = dc_fixpt_div_int(link_bw_kbps, 160);
+		link_bw_kbps = dc_fixpt_mul_int(link_bw_kbps, timing->dsc_cfg.bits_per_pixel);
+		kbps = dc_fixpt_ceil(link_bw_kbps);
 		return kbps;
 	}
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
@@ -126,22 +126,16 @@
 	struct vector payloads;
 };
 
-static struct i2c_payloads *dal_ddc_i2c_payloads_create(struct dc_context *ctx, uint32_t count)
+static bool dal_ddc_i2c_payloads_create(
+		struct dc_context *ctx,
+		struct i2c_payloads *payloads,
+		uint32_t count)
 {
-	struct i2c_payloads *payloads;
-
-	payloads = kzalloc(sizeof(struct i2c_payloads), GFP_KERNEL);
-
-	if (!payloads)
-		return NULL;
-
 	if (dal_vector_construct(
 		&payloads->payloads, ctx, count, sizeof(struct i2c_payload)))
-		return payloads;
-
-	kfree(payloads);
-	return NULL;
+		return true;
 
+	return false;
 }
 
 static struct i2c_payload *dal_ddc_i2c_payloads_get(struct i2c_payloads *p)
@@ -154,14 +148,12 @@
 	return p->payloads.count;
 }
 
-static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads **p)
+static void dal_ddc_i2c_payloads_destroy(struct i2c_payloads *p)
 {
-	if (!p || !*p)
+	if (!p)
 		return;
-	dal_vector_destruct(&(*p)->payloads);
-	kfree(*p);
-	*p = NULL;
 
+	dal_vector_destruct(&p->payloads);
 }
 
 #define DDC_MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -521,9 +513,13 @@
 
 	uint32_t payloads_num = write_payloads + read_payloads;
 
+
 	if (write_size > EDID_SEGMENT_SIZE || read_size > EDID_SEGMENT_SIZE)
 		return false;
 
+	if (!payloads_num)
+		return false;
+
 	/*TODO: len of payload data for i2c and aux is uint8!!!!,
 	 *  but we want to read 256 over i2c!!!!*/
 	if (dal_ddc_service_is_in_aux_transaction_mode(ddc)) {
@@ -556,23 +552,25 @@
 
 		ret = dc_link_aux_transfer_with_retries(ddc, &read_payload);
 	} else {
-		struct i2c_payloads *payloads =
-			dal_ddc_i2c_payloads_create(ddc->ctx, payloads_num);
+		struct i2c_command command = {0};
+		struct i2c_payloads payloads;
+
+		if (!dal_ddc_i2c_payloads_create(ddc->ctx, &payloads, payloads_num))
+			return false;
 
-		struct i2c_command command = {
-			.payloads = dal_ddc_i2c_payloads_get(payloads),
-			.number_of_payloads = 0,
-			.engine = DDC_I2C_COMMAND_ENGINE,
-			.speed = ddc->ctx->dc->caps.i2c_speed_in_khz };
+		command.payloads = dal_ddc_i2c_payloads_get(&payloads);
+		command.number_of_payloads = 0;
+		command.engine = DDC_I2C_COMMAND_ENGINE;
+		command.speed = ddc->ctx->dc->caps.i2c_speed_in_khz;
 
 		dal_ddc_i2c_payloads_add(
-			payloads, address, write_size, write_buf, true);
+			&payloads, address, write_size, write_buf, true);
 
 		dal_ddc_i2c_payloads_add(
-			payloads, address, read_size, read_buf, false);
+			&payloads, address, read_size, read_buf, false);
 
 		command.number_of_payloads =
-			dal_ddc_i2c_payloads_get_count(payloads);
+			dal_ddc_i2c_payloads_get_count(&payloads);
 
 		ret = dm_helpers_submit_i2c(
 				ddc->ctx,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -1284,6 +1284,8 @@
 		link->type = dc_connection_single;
 		link->local_sink = link->remote_sinks[0];
 		link->local_sink->sink_signal = SIGNAL_TYPE_DISPLAY_PORT;
+		dc_sink_retain(link->local_sink);
+		dm_helpers_dp_mst_stop_top_mgr(link->ctx, link);
 	} else if (mst_enable == true &&
 			link->type == dc_connection_single &&
 			link->remote_sinks[0] != NULL) {
@@ -1914,6 +1916,9 @@
 			initial_link_setting;
 	uint32_t link_bw;
 
+	if (req_bw > dc_link_bandwidth_kbps(link, &link->verified_link_cap))
+		return false;
+
 	/* search for the minimum link setting that:
 	 * 1. is supported according to the link training result
 	 * 2. could support the b/w requested by the timing
@@ -2545,6 +2550,7 @@
 	uint8_t data, struct dc_link *link)
 {
 	union dp_downstream_port_present ds_port = { .byte = data };
+	memset(&link->dpcd_caps.dongle_caps, 0, sizeof(link->dpcd_caps.dongle_caps));
 
 	/* decode converter info*/
 	if (!ds_port.fields.PORT_PRESENT) {
@@ -2691,6 +2697,7 @@
 		 * keep receiver powered all the time.*/
 		case DP_BRANCH_DEVICE_ID_0010FA:
 		case DP_BRANCH_DEVICE_ID_0080E1:
+		case DP_BRANCH_DEVICE_ID_00E04C:
 			link->wa_flags.dp_keep_receiver_powered = true;
 			break;
 
@@ -2877,6 +2884,17 @@
 		sink_id.ieee_device_id,
 		sizeof(sink_id.ieee_device_id));
 
+	/* Quirk Apple MBP 2017 15" Retina panel: Wrong DP_MAX_LINK_RATE */
+	{
+		uint8_t str_mbp_2017[] = { 101, 68, 21, 101, 98, 97 };
+
+		if ((link->dpcd_caps.sink_dev_id == 0x0010fa) &&
+		    !memcmp(link->dpcd_caps.sink_dev_id_str, str_mbp_2017,
+			    sizeof(str_mbp_2017))) {
+			link->reported_link_cap.link_rate = 0x0c;
+		}
+	}
+
 	core_link_read_dpcd(
 		link,
 		DP_SINK_HW_REVISION_START,
@@ -3365,7 +3383,7 @@
 
 		if (edp_config_set.bits.PANEL_MODE_EDP
 			!= panel_mode_edp) {
-			enum ddc_result result = DDC_RESULT_UNKNOWN;
+			enum dc_status result = DC_ERROR_UNEXPECTED;
 
 			edp_config_set.bits.PANEL_MODE_EDP =
 			panel_mode_edp;
@@ -3375,7 +3393,7 @@
 				&edp_config_set.raw,
 				sizeof(edp_config_set.raw));
 
-			ASSERT(result == DDC_RESULT_SUCESSFULL);
+			ASSERT(result == DC_OK);
 		}
 	}
 	DC_LOG_DETECTION_DP_CAPS("Link: %d eDP panel mode supported: %d "
@@ -3490,7 +3508,14 @@
 	if (link_enc->funcs->fec_set_enable &&
 			link->dpcd_caps.fec_cap.bits.FEC_CAPABLE) {
 		if (link->fec_state == dc_link_fec_ready && enable) {
-			msleep(1);
+			/* Accord to DP spec, FEC enable sequence can first
+			 * be transmitted anytime after 1000 LL codes have
+			 * been transmitted on the link after link training
+			 * completion. Using 1 lane RBR should have the maximum
+			 * time for transmitting 1000 LL codes which is 6.173 us.
+			 * So use 7 microseconds delay instead.
+			 */
+			udelay(7);
 			link_enc->funcs->fec_set_enable(link_enc, true);
 			link->fec_state = dc_link_fec_enabled;
 		} else if (link->fec_state == dc_link_fec_enabled && !enable) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c
@@ -277,7 +277,8 @@
 		if (pipes[i].stream != NULL &&
 			!pipes[i].top_pipe && !pipes[i].prev_odm_pipe &&
 			pipes[i].stream->link != NULL &&
-			pipes[i].stream_res.stream_enc != NULL) {
+			pipes[i].stream_res.stream_enc != NULL &&
+			pipes[i].stream->link == link) {
 			udelay(100);
 
 			pipes[i].stream_res.stream_enc->funcs->dp_blank(
@@ -399,6 +400,7 @@
 		dsc_cfg.pic_height = stream->timing.v_addressable + stream->timing.v_border_top + stream->timing.v_border_bottom;
 		dsc_cfg.pixel_encoding = stream->timing.pixel_encoding;
 		dsc_cfg.color_depth = stream->timing.display_color_depth;
+		dsc_cfg.is_odm = pipe_ctx->next_odm_pipe ? true : false;
 		dsc_cfg.dc_dsc_cfg = stream->timing.dsc_cfg;
 		ASSERT(dsc_cfg.dc_dsc_cfg.num_slices_h % opp_cnt == 0);
 		dsc_cfg.dc_dsc_cfg.num_slices_h /= opp_cnt;
@@ -495,11 +497,15 @@
 		struct dsc_config dsc_cfg;
 		uint8_t dsc_packed_pps[128];
 
+		memset(&dsc_cfg, 0, sizeof(dsc_cfg));
+		memset(dsc_packed_pps, 0, 128);
+
 		/* Enable DSC hw block */
 		dsc_cfg.pic_width = stream->timing.h_addressable + stream->timing.h_border_left + stream->timing.h_border_right;
 		dsc_cfg.pic_height = stream->timing.v_addressable + stream->timing.v_border_top + stream->timing.v_border_bottom;
 		dsc_cfg.pixel_encoding = stream->timing.pixel_encoding;
 		dsc_cfg.color_depth = stream->timing.display_color_depth;
+		dsc_cfg.is_odm = pipe_ctx->next_odm_pipe ? true : false;
 		dsc_cfg.dc_dsc_cfg = stream->timing.dsc_cfg;
 
 		DC_LOG_DSC(" ");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
@@ -1315,6 +1315,9 @@
 	struct dc_stream_status *stream_status = NULL;
 	struct resource_pool *pool = dc->res_pool;
 
+	if (!plane_state)
+		return true;
+
 	for (i = 0; i < context->stream_count; i++)
 		if (context->streams[i] == stream) {
 			stream_status = &context->stream_status[i];
@@ -1546,6 +1549,10 @@
 	if (old_stream->ignore_msa_timing_param != stream->ignore_msa_timing_param)
 		return false;
 
+	/*compare audio info*/
+	if (memcmp(&old_stream->audio_info, &stream->audio_info, sizeof(stream->audio_info)) != 0)
+		return false;
+
 	return true;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -423,10 +423,10 @@
 
 		if (dwb->funcs->is_enabled(dwb)) {
 			/* writeback pipe already enabled, only need to update */
-			dc->hwss.update_writeback(dc, stream_status, wb_info);
+			dc->hwss.update_writeback(dc, stream_status, wb_info, dc->current_state);
 		} else {
 			/* Enable writeback pipe from scratch*/
-			dc->hwss.enable_writeback(dc, stream_status, wb_info);
+			dc->hwss.enable_writeback(dc, stream_status, wb_info, dc->current_state);
 		}
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
@@ -77,6 +77,9 @@
 	/* notifyDMCUMsg */
 	REG_UPDATE(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 1);
 
+	REG_WAIT(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 0,
+			1, 80000);
+
 	return true;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
@@ -386,7 +386,7 @@
 {
 	enum gpio_result result;
 
-	if (!is_engine_available(engine))
+	if ((engine == NULL) || !is_engine_available(engine))
 		return false;
 
 	result = dal_ddc_open(ddc, GPIO_MODE_HARDWARE,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
@@ -546,9 +546,11 @@
 		switch (pix_clk_params->color_depth) {
 		case COLOR_DEPTH_101010:
 			actual_pixel_clock_100hz = (actual_pixel_clock_100hz * 5) >> 2;
+			actual_pixel_clock_100hz -= actual_pixel_clock_100hz % 10;
 			break;
 		case COLOR_DEPTH_121212:
 			actual_pixel_clock_100hz = (actual_pixel_clock_100hz * 6) >> 2;
+			actual_pixel_clock_100hz -= actual_pixel_clock_100hz % 10;
 			break;
 		case COLOR_DEPTH_161616:
 			actual_pixel_clock_100hz = actual_pixel_clock_100hz * 2;
@@ -871,6 +873,20 @@
 	bp_pc_params.flags.SET_EXTERNAL_REF_DIV_SRC =
 					pll_settings->use_external_clk;
 
+	switch (pix_clk_params->color_depth) {
+	case COLOR_DEPTH_101010:
+		bp_pc_params.color_depth = TRANSMITTER_COLOR_DEPTH_30;
+		break;
+	case COLOR_DEPTH_121212:
+		bp_pc_params.color_depth = TRANSMITTER_COLOR_DEPTH_36;
+		break;
+	case COLOR_DEPTH_161616:
+		bp_pc_params.color_depth = TRANSMITTER_COLOR_DEPTH_48;
+		break;
+	default:
+		break;
+	}
+
 	if (clk_src->bios->funcs->set_pixel_clock(
 			clk_src->bios, &bp_pc_params) != BP_RESULT_OK)
 		return false;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
@@ -563,6 +563,7 @@
 	cntl.enable_dp_audio = enable_audio;
 	cntl.pixel_clock = actual_pix_clk_khz;
 	cntl.lanes_number = LANE_COUNT_FOUR;
+	cntl.color_depth = crtc_timing->display_color_depth;
 
 	if (enc110->base.bp->funcs->encoder_control(
 			enc110->base.bp, &cntl) != BP_RESULT_OK)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_transform.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dce/dce_transform.c
@@ -429,12 +429,12 @@
 		clamp_max = 0x3FC0;
 		break;
 	case COLOR_DEPTH_101010:
-		/* 10bit MSB aligned on 14 bit bus '11 1111 1111 1100' */
-		clamp_max = 0x3FFC;
+		/* 10bit MSB aligned on 14 bit bus '11 1111 1111 0000' */
+		clamp_max = 0x3FF0;
 		break;
 	case COLOR_DEPTH_121212:
-		/* 12bit MSB aligned on 14 bit bus '11 1111 1111 1111' */
-		clamp_max = 0x3FFF;
+		/* 12bit MSB aligned on 14 bit bus '11 1111 1111 1100' */
+		clamp_max = 0x3FFC;
 		break;
 	default:
 		clamp_max = 0x3FC0;
@@ -778,7 +778,7 @@
 		color_depth = COLOR_DEPTH_101010;
 		pixel_depth = 0;
 		expan_mode  = 1;
-		BREAK_TO_DEBUGGER();
+		DC_LOG_DC("The pixel depth %d is not valid, set COLOR_DEPTH_101010 instead.", depth);
 		break;
 	}
 
@@ -792,8 +792,7 @@
 	if (!(xfm_dce->lb_pixel_depth_supported & depth)) {
 		/*we should use unsupported capabilities
 		 *  unless it is required by w/a*/
-		DC_LOG_WARNING("%s: Capability not supported",
-			__func__);
+		DC_LOG_DC("%s: Capability not supported", __func__);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
@@ -340,7 +340,8 @@
 	audio_regs(2),
 	audio_regs(3),
 	audio_regs(4),
-	audio_regs(5)
+	audio_regs(5),
+	audio_regs(6),
 };
 
 #define DCE120_AUD_COMMON_MASK_SH_LIST(mask_sh)\
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c
@@ -484,10 +484,13 @@
 	int vtaps_c = scl_data->taps.v_taps_c;
 	int ceil_vratio = dc_fixpt_ceil(scl_data->ratios.vert);
 	int ceil_vratio_c = dc_fixpt_ceil(scl_data->ratios.vert_c);
-	enum lb_memory_config mem_cfg = LB_MEMORY_CONFIG_0;
 
-	if (dpp->base.ctx->dc->debug.use_max_lb)
-		return mem_cfg;
+	if (dpp->base.ctx->dc->debug.use_max_lb) {
+		if (scl_data->format == PIXEL_FORMAT_420BPP8
+				|| scl_data->format == PIXEL_FORMAT_420BPP10)
+			return LB_MEMORY_CONFIG_3;
+		return LB_MEMORY_CONFIG_0;
+	}
 
 	dpp->base.caps->dscl_calc_lb_num_partitions(
 			scl_data, LB_MEMORY_CONFIG_1, &num_part_y, &num_part_c);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c
@@ -840,8 +840,8 @@
 
 	hubbub1_get_blk256_size(&blk256_width, &blk256_height, bpe);
 
-	swath_bytes_horz_wc = height * blk256_height * bpe;
-	swath_bytes_vert_wc = width * blk256_width * bpe;
+	swath_bytes_horz_wc = width * blk256_height * bpe;
+	swath_bytes_vert_wc = height * blk256_width * bpe;
 
 	*req128_horz_wc = (2 * swath_bytes_horz_wc <= detile_buf_size) ?
 			false : /* full 256B request */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
@@ -2202,14 +2202,18 @@
 				&blnd_cfg.black_color);
 	}
 
-	if (per_pixel_alpha)
-		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA;
-	else
-		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA;
-
 	blnd_cfg.overlap_only = false;
 	blnd_cfg.global_gain = 0xff;
 
+	if (per_pixel_alpha && pipe_ctx->plane_state->global_alpha) {
+		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN;
+		blnd_cfg.global_gain = pipe_ctx->plane_state->global_alpha_value;
+	} else if (per_pixel_alpha) {
+		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA;
+	} else {
+		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA;
+	}
+
 	if (pipe_ctx->plane_state->global_alpha)
 		blnd_cfg.global_alpha = pipe_ctx->plane_state->global_alpha_value;
 	else
@@ -2898,7 +2902,9 @@
 		if (pipe_ctx->stream_res.opp->mpcc_disconnect_pending[mpcc_inst]) {
 			struct hubp *hubp = get_hubp_by_inst(res_pool, mpcc_inst);
 
-			res_pool->mpc->funcs->wait_for_idle(res_pool->mpc, mpcc_inst);
+			if (pipe_ctx->stream_res.tg &&
+				pipe_ctx->stream_res.tg->funcs->is_tg_enabled(pipe_ctx->stream_res.tg))
+				res_pool->mpc->funcs->wait_for_idle(res_pool->mpc, mpcc_inst);
 			pipe_ctx->stream_res.opp->mpcc_disconnect_pending[mpcc_inst] = false;
 			hubp->funcs->set_blank(hubp, true);
 		}
@@ -3264,13 +3270,12 @@
 	struct dc_clock_config clock_cfg = {0};
 	struct dc_clocks *current_clocks = &context->bw_ctx.bw.dcn.clk;
 
-	if (dc->clk_mgr && dc->clk_mgr->funcs->get_clock)
-				dc->clk_mgr->funcs->get_clock(dc->clk_mgr,
-						context, clock_type, &clock_cfg);
-
-	if (!dc->clk_mgr->funcs->get_clock)
+	if (!dc->clk_mgr || !dc->clk_mgr->funcs->get_clock)
 		return DC_FAIL_UNSUPPORTED_1;
 
+	dc->clk_mgr->funcs->get_clock(dc->clk_mgr,
+		context, clock_type, &clock_cfg);
+
 	if (clk_khz > clock_cfg.max_clock_khz)
 		return DC_FAIL_CLK_EXCEED_MAX;
 
@@ -3288,7 +3293,7 @@
 	else
 		return DC_ERROR_UNEXPECTED;
 
-	if (dc->clk_mgr && dc->clk_mgr->funcs->update_clocks)
+	if (dc->clk_mgr->funcs->update_clocks)
 				dc->clk_mgr->funcs->update_clocks(dc->clk_mgr,
 				context, true);
 	return DC_OK;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
@@ -118,6 +118,12 @@
 	while (tmp_mpcc != NULL) {
 		if (tmp_mpcc->dpp_id == dpp_id)
 			return tmp_mpcc;
+
+		/* avoid circular linked list */
+		ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot);
+		if (tmp_mpcc == tmp_mpcc->mpcc_bot)
+			break;
+
 		tmp_mpcc = tmp_mpcc->mpcc_bot;
 	}
 	return NULL;
@@ -193,8 +199,9 @@
 		/* check insert_above_mpcc exist in tree->opp_list */
 		struct mpcc *temp_mpcc = tree->opp_list;
 
-		while (temp_mpcc && temp_mpcc->mpcc_bot != insert_above_mpcc)
-			temp_mpcc = temp_mpcc->mpcc_bot;
+		if (temp_mpcc != insert_above_mpcc)
+			while (temp_mpcc && temp_mpcc->mpcc_bot != insert_above_mpcc)
+				temp_mpcc = temp_mpcc->mpcc_bot;
 		if (temp_mpcc == NULL)
 			return NULL;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c
@@ -425,6 +425,11 @@
 				OTG_CLOCK_ON, 1,
 				1, 1000);
 	} else  {
+
+		//last chance to clear underflow, otherwise, it will always there due to clock is off.
+		if (optc->funcs->is_optc_underflow_occurred(optc) == true)
+			optc->funcs->clear_optc_underflow(optc);
+
 		REG_UPDATE_2(OTG_CLOCK_CONTROL,
 				OTG_CLOCK_GATE_DIS, 0,
 				OTG_CLOCK_EN, 0);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
@@ -1151,6 +1151,7 @@
 	bool video_large = false;
 	bool desktop_large = false;
 	bool dcc_disabled = false;
+	bool mpo_enabled = false;
 
 	for (i = 0; i < context->stream_count; i++) {
 		if (context->stream_status[i].plane_count == 0)
@@ -1159,6 +1160,9 @@
 		if (context->stream_status[i].plane_count > 2)
 			return DC_FAIL_UNSUPPORTED_1;
 
+		if (context->stream_status[i].plane_count > 1)
+			mpo_enabled = true;
+
 		for (j = 0; j < context->stream_status[i].plane_count; j++) {
 			struct dc_plane_state *plane =
 				context->stream_status[i].plane_states[j];
@@ -1182,6 +1186,10 @@
 		}
 	}
 
+	/* Disable MPO in multi-display configurations. */
+	if (context->stream_count > 1 && mpo_enabled)
+		return DC_FAIL_UNSUPPORTED_1;
+
 	/*
 	 * Workaround: On DCN10 there is UMC issue that causes underflow when
 	 * playing 4k video on 4k desktop with video downscaled and single channel
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c
@@ -121,35 +121,35 @@
 	switch (packet_index) {
 	case 0:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC0_FRAME_UPDATE, 1);
+				AFMT_GENERIC0_IMMEDIATE_UPDATE, 1);
 		break;
 	case 1:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC1_FRAME_UPDATE, 1);
+				AFMT_GENERIC1_IMMEDIATE_UPDATE, 1);
 		break;
 	case 2:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC2_FRAME_UPDATE, 1);
+				AFMT_GENERIC2_IMMEDIATE_UPDATE, 1);
 		break;
 	case 3:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC3_FRAME_UPDATE, 1);
+				AFMT_GENERIC3_IMMEDIATE_UPDATE, 1);
 		break;
 	case 4:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC4_FRAME_UPDATE, 1);
+				AFMT_GENERIC4_IMMEDIATE_UPDATE, 1);
 		break;
 	case 5:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC5_FRAME_UPDATE, 1);
+				AFMT_GENERIC5_IMMEDIATE_UPDATE, 1);
 		break;
 	case 6:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC6_FRAME_UPDATE, 1);
+				AFMT_GENERIC6_IMMEDIATE_UPDATE, 1);
 		break;
 	case 7:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC7_FRAME_UPDATE, 1);
+				AFMT_GENERIC7_IMMEDIATE_UPDATE, 1);
 		break;
 	default:
 		break;
@@ -898,10 +898,10 @@
 	 */
 	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_DIS_DEFER, 2);
 	/* Larger delay to wait until VBLANK - use max retry of
-	 * 10us*5000=50ms. This covers 41.7ms of minimum 24 Hz mode +
+	 * 10us*10200=102ms. This covers 100.0ms of minimum 10 Hz mode +
 	 * a little more because we may not trust delay accuracy.
 	 */
-	max_retries = DP_BLANK_MAX_RETRY * 250;
+	max_retries = DP_BLANK_MAX_RETRY * 501;
 
 	/* disable DP stream */
 	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, 0);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h
@@ -275,7 +275,14 @@
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_IMMEDIATE_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_IMMEDIATE_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE, mask_sh),\
@@ -339,7 +346,14 @@
 	type AFMT_GENERIC2_FRAME_UPDATE;\
 	type AFMT_GENERIC3_FRAME_UPDATE;\
 	type AFMT_GENERIC4_FRAME_UPDATE;\
+	type AFMT_GENERIC0_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC1_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC2_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC3_IMMEDIATE_UPDATE;\
 	type AFMT_GENERIC4_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC5_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC6_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC7_IMMEDIATE_UPDATE;\
 	type AFMT_GENERIC5_FRAME_UPDATE;\
 	type AFMT_GENERIC6_FRAME_UPDATE;\
 	type AFMT_GENERIC7_FRAME_UPDATE;\
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c
@@ -119,32 +119,6 @@
 
 void dccg2_init(struct dccg *dccg)
 {
-	struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg);
-
-	// Fallthrough intentional to program all available dpp_dto's
-	switch (dccg_dcn->base.ctx->dc->res_pool->pipe_count) {
-	case 6:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[5], 1);
-		/* Fall through */
-	case 5:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[4], 1);
-		/* Fall through */
-	case 4:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[3], 1);
-		/* Fall through */
-	case 3:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[2], 1);
-		/* Fall through */
-	case 2:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[1], 1);
-		/* Fall through */
-	case 1:
-		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[0], 1);
-		break;
-	default:
-		ASSERT(false);
-		break;
-	}
 }
 
 static const struct dccg_funcs dccg2_funcs = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c
@@ -207,6 +207,9 @@
 	struct dsc_reg_values dsc_reg_vals;
 	struct dsc_optc_config dsc_optc_cfg;
 
+	memset(&dsc_reg_vals, 0, sizeof(dsc_reg_vals));
+	memset(&dsc_optc_cfg, 0, sizeof(dsc_optc_cfg));
+
 	DC_LOG_DSC("Getting packed DSC PPS for DSC Config:");
 	dsc_config_log(dsc, dsc_cfg);
 	DC_LOG_DSC("DSC Picture Parameter Set (PPS):");
@@ -348,6 +351,7 @@
 	dsc_reg_vals->pps.block_pred_enable = dsc_cfg->dc_dsc_cfg.block_pred_enable;
 	dsc_reg_vals->pps.line_buf_depth = dsc_cfg->dc_dsc_cfg.linebuf_depth;
 	dsc_reg_vals->alternate_ich_encoding_en = dsc_reg_vals->pps.dsc_version_minor == 1 ? 0 : 1;
+	dsc_reg_vals->ich_reset_at_eol = (dsc_cfg->is_odm || dsc_reg_vals->num_slices_h > 1) ? 0xF : 0;
 
 	// TODO: in addition to validating slice height (pic height must be divisible by slice height),
 	// see what happens when the same condition doesn't apply for slice_width/pic_width.
@@ -510,7 +514,6 @@
 		reg_vals->pps.rc_buf_thresh[i] = reg_vals->pps.rc_buf_thresh[i] >> 6;
 
 	reg_vals->rc_buffer_model_size = dsc_params->rc_buffer_model_size;
-	reg_vals->ich_reset_at_eol = reg_vals->num_slices_h == 1 ? 0 : 0xf;
 }
 
 static void dsc_write_to_registers(struct display_stream_compressor *dsc, const struct dsc_reg_values *reg_vals)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2012-17 Advanced Micro Devices, Inc.
+ * Copyright 2012-2021 Advanced Micro Devices, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -179,11 +179,14 @@
 	else
 		Set HUBP_VREADY_AT_OR_AFTER_VSYNC = 0
 	*/
-	if ((pipe_dest->vstartup_start - (pipe_dest->vready_offset+pipe_dest->vupdate_width
-		+ pipe_dest->vupdate_offset) / pipe_dest->htotal) <= pipe_dest->vblank_end) {
-		value = 1;
-	} else
-		value = 0;
+	if (pipe_dest->htotal != 0) {
+		if ((pipe_dest->vstartup_start - (pipe_dest->vready_offset+pipe_dest->vupdate_width
+			+ pipe_dest->vupdate_offset) / pipe_dest->htotal) <= pipe_dest->vblank_end) {
+			value = 1;
+		} else
+			value = 0;
+	}
+
 	REG_UPDATE(DCHUBP_CNTL, HUBP_VREADY_AT_OR_AFTER_VSYNC, value);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
@@ -126,7 +126,7 @@
 	REG_WRITE(MILLISECOND_TIME_BASE_DIV, 0x1186a0);
 
 	/* This value is dependent on the hardware pipeline delay so set once per SOC */
-	REG_WRITE(DISPCLK_FREQ_CHANGE_CNTL, 0x801003c);
+	REG_WRITE(DISPCLK_FREQ_CHANGE_CNTL, 0xe01003c);
 }
 void dcn20_display_init(struct dc *dc)
 {
@@ -493,7 +493,6 @@
 	dpp->funcs->dpp_dppclk_control(dpp, false, false);
 
 	hubp->power_gated = true;
-	dc->optimized_required = false; /* We're powering off, no need to optimize */
 
 	dc->hwss.plane_atomic_power_down(dc,
 			pipe_ctx->plane_res.dpp,
@@ -1103,6 +1102,25 @@
 	if (pipe->plane_state != NULL)
 		flip_immediate = pipe->plane_state->flip_immediate;
 
+	if (flip_immediate && lock) {
+		const int TIMEOUT_FOR_FLIP_PENDING = 100000;
+		int i;
+
+		for (i = 0; i < TIMEOUT_FOR_FLIP_PENDING; ++i) {
+			if (!pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->plane_res.hubp))
+				break;
+			udelay(1);
+		}
+
+		if (pipe->bottom_pipe != NULL) {
+			for (i = 0; i < TIMEOUT_FOR_FLIP_PENDING; ++i) {
+				if (!pipe->bottom_pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->bottom_pipe->plane_res.hubp))
+					break;
+				udelay(1);
+			}
+		}
+	}
+
 	/* In flip immediate and pipe splitting case, we need to use GSL
 	 * for synchronization. Only do setup on locking and on flip type change.
 	 */
@@ -1337,7 +1355,8 @@
 static void dcn20_enable_writeback(
 		struct dc *dc,
 		const struct dc_stream_status *stream_status,
-		struct dc_writeback_info *wb_info)
+		struct dc_writeback_info *wb_info,
+		struct dc_state *context)
 {
 	struct dwbc *dwb;
 	struct mcif_wb *mcif_wb;
@@ -1354,7 +1373,7 @@
 	optc->funcs->set_dwb_source(optc, wb_info->dwb_pipe_inst);
 	/* set MCIF_WB buffer and arbitration configuration */
 	mcif_wb->funcs->config_mcif_buf(mcif_wb, &wb_info->mcif_buf_params, wb_info->dwb_params.dest_height);
-	mcif_wb->funcs->config_mcif_arb(mcif_wb, &dc->current_state->bw_ctx.bw.dcn.bw_writeback.mcif_wb_arb[wb_info->dwb_pipe_inst]);
+	mcif_wb->funcs->config_mcif_arb(mcif_wb, &context->bw_ctx.bw.dcn.bw_writeback.mcif_wb_arb[wb_info->dwb_pipe_inst]);
 	/* Enable MCIF_WB */
 	mcif_wb->funcs->enable_mcif(mcif_wb);
 	/* Enable DWB */
@@ -1721,14 +1740,18 @@
 				pipe_ctx, &blnd_cfg.black_color);
 	}
 
-	if (per_pixel_alpha)
-		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA;
-	else
-		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA;
-
 	blnd_cfg.overlap_only = false;
 	blnd_cfg.global_gain = 0xff;
 
+	if (per_pixel_alpha && pipe_ctx->plane_state->global_alpha) {
+		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN;
+		blnd_cfg.global_gain = pipe_ctx->plane_state->global_alpha_value;
+	} else if (per_pixel_alpha) {
+		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_PER_PIXEL_ALPHA;
+	} else {
+		blnd_cfg.alpha_mode = MPCC_ALPHA_BLEND_MODE_GLOBAL_ALPHA;
+	}
+
 	if (pipe_ctx->plane_state->global_alpha)
 		blnd_cfg.global_alpha = pipe_ctx->plane_state->global_alpha_value;
 	else
@@ -1996,7 +2019,8 @@
 
 	REG_UPDATE(DCHUBBUB_GLOBAL_TIMER_CNTL, DCHUBBUB_GLOBAL_TIMER_REFDIV, 2);
 	REG_UPDATE(DCHUBBUB_GLOBAL_TIMER_CNTL, DCHUBBUB_GLOBAL_TIMER_ENABLE, 1);
-	REG_WRITE(REFCLK_CNTL, 0);
+	if (REG(REFCLK_CNTL))
+		REG_WRITE(REFCLK_CNTL, 0);
 	//
 
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c
@@ -488,6 +488,12 @@
 	while (tmp_mpcc != NULL) {
 		if (tmp_mpcc->dpp_id == 0xf || tmp_mpcc->dpp_id == dpp_id)
 			return tmp_mpcc;
+
+		/* avoid circular linked list */
+		ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot);
+		if (tmp_mpcc == tmp_mpcc->mpcc_bot)
+			break;
+
 		tmp_mpcc = tmp_mpcc->mpcc_bot;
 	}
 	return NULL;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c
@@ -233,12 +233,13 @@
 		struct dc_crtc_timing *timing)
 {
 	struct optc *optc1 = DCN10TG_FROM_TG(optc);
-	/* 2 pieces of memory required for up to 5120 displays, 4 for up to 8192 */
 	int mpcc_hactive = (timing->h_addressable + timing->h_border_left + timing->h_border_right)
 			/ opp_cnt;
-	int memory_mask = mpcc_hactive <= 2560 ? 0x3 : 0xf;
+	uint32_t memory_mask;
 	uint32_t data_fmt = 0;
 
+	ASSERT(opp_cnt == 2);
+
 	/* TODO: In pseudocode but does not affect maximus, delete comment if we dont need on asic
 	 * REG_SET(OTG_GLOBAL_CONTROL2, 0, GLOBAL_UPDATE_LOCK_EN, 1);
 	 * Program OTG register MASTER_UPDATE_LOCK_DB_X/Y to the position before DP frame start
@@ -246,9 +247,17 @@
 	 *		MASTER_UPDATE_LOCK_DB_X, 160,
 	 *		MASTER_UPDATE_LOCK_DB_Y, 240);
 	 */
+
+	/* 2 pieces of memory required for up to 5120 displays, 4 for up to 8192,
+	 * however, for ODM combine we can simplify by always using 4.
+	 * To make sure there's no overlap, each instance "reserves" 2 memories and
+	 * they are uniquely combined here.
+	 */
+	memory_mask = 0x3 << (opp_id[0] * 2) | 0x3 << (opp_id[1] * 2);
+
 	if (REG(OPTC_MEMORY_CONFIG))
 		REG_SET(OPTC_MEMORY_CONFIG, 0,
-			OPTC_MEM_SEL, memory_mask << (optc->inst * 4));
+			OPTC_MEM_SEL, memory_mask);
 
 	if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422)
 		data_fmt = 1;
@@ -257,7 +266,6 @@
 
 	REG_UPDATE(OPTC_DATA_FORMAT_CONTROL, OPTC_DATA_FORMAT, data_fmt);
 
-	ASSERT(opp_cnt == 2);
 	REG_SET_3(OPTC_DATA_SOURCE_SELECT, 0,
 			OPTC_NUM_OF_INPUT_SEGMENT, 1,
 			OPTC_SEG0_SRC_SEL, opp_id[0],
@@ -287,6 +295,10 @@
 		*num_of_src_opp = 2;
 	else
 		*num_of_src_opp = 1;
+
+	/* Work around VBIOS not updating OPTC_NUM_OF_INPUT_SEGMENT */
+	if (*src_opp_id_1 == 0xf)
+		*num_of_src_opp = 1;
 }
 
 void optc2_set_dwb_source(struct timing_generator *optc,
@@ -350,7 +362,7 @@
 
 	REG_UPDATE_2(OTG_GLOBAL_CONTROL1,
 			MASTER_UPDATE_LOCK_DB_X,
-			h_blank_start - 200 - 1,
+			(h_blank_start - 200 - 1) / optc1->opp_count,
 			MASTER_UPDATE_LOCK_DB_Y,
 			v_blank_start - 1);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
@@ -269,6 +269,117 @@
 	.use_urgent_burst_bw = 0
 };
 
+struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv14_soc = {
+	.clock_limits = {
+			{
+				.state = 0,
+				.dcfclk_mhz = 560.0,
+				.fabricclk_mhz = 560.0,
+				.dispclk_mhz = 513.0,
+				.dppclk_mhz = 513.0,
+				.phyclk_mhz = 540.0,
+				.socclk_mhz = 560.0,
+				.dscclk_mhz = 171.0,
+				.dram_speed_mts = 8960.0,
+			},
+			{
+				.state = 1,
+				.dcfclk_mhz = 694.0,
+				.fabricclk_mhz = 694.0,
+				.dispclk_mhz = 642.0,
+				.dppclk_mhz = 642.0,
+				.phyclk_mhz = 600.0,
+				.socclk_mhz = 694.0,
+				.dscclk_mhz = 214.0,
+				.dram_speed_mts = 11104.0,
+			},
+			{
+				.state = 2,
+				.dcfclk_mhz = 875.0,
+				.fabricclk_mhz = 875.0,
+				.dispclk_mhz = 734.0,
+				.dppclk_mhz = 734.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 875.0,
+				.dscclk_mhz = 245.0,
+				.dram_speed_mts = 14000.0,
+			},
+			{
+				.state = 3,
+				.dcfclk_mhz = 1000.0,
+				.fabricclk_mhz = 1000.0,
+				.dispclk_mhz = 1100.0,
+				.dppclk_mhz = 1100.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 1000.0,
+				.dscclk_mhz = 367.0,
+				.dram_speed_mts = 16000.0,
+			},
+			{
+				.state = 4,
+				.dcfclk_mhz = 1200.0,
+				.fabricclk_mhz = 1200.0,
+				.dispclk_mhz = 1284.0,
+				.dppclk_mhz = 1284.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 1200.0,
+				.dscclk_mhz = 428.0,
+				.dram_speed_mts = 16000.0,
+			},
+			/*Extra state, no dispclk ramping*/
+			{
+				.state = 5,
+				.dcfclk_mhz = 1200.0,
+				.fabricclk_mhz = 1200.0,
+				.dispclk_mhz = 1284.0,
+				.dppclk_mhz = 1284.0,
+				.phyclk_mhz = 810.0,
+				.socclk_mhz = 1200.0,
+				.dscclk_mhz = 428.0,
+				.dram_speed_mts = 16000.0,
+			},
+		},
+	.num_states = 5,
+	.sr_exit_time_us = 11.6,
+	.sr_enter_plus_exit_time_us = 13.9,
+	.urgent_latency_us = 4.0,
+	.urgent_latency_pixel_data_only_us = 4.0,
+	.urgent_latency_pixel_mixed_with_vm_data_us = 4.0,
+	.urgent_latency_vm_data_only_us = 4.0,
+	.urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096,
+	.urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096,
+	.urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
+	.pct_ideal_dram_sdp_bw_after_urgent_pixel_only = 40.0,
+	.pct_ideal_dram_sdp_bw_after_urgent_pixel_and_vm = 40.0,
+	.pct_ideal_dram_sdp_bw_after_urgent_vm_only = 40.0,
+	.max_avg_sdp_bw_use_normal_percent = 40.0,
+	.max_avg_dram_bw_use_normal_percent = 40.0,
+	.writeback_latency_us = 12.0,
+	.ideal_dram_bw_after_urgent_percent = 40.0,
+	.max_request_size_bytes = 256,
+	.dram_channel_width_bytes = 2,
+	.fabric_datapath_to_dcn_data_return_bytes = 64,
+	.dcn_downspread_percent = 0.5,
+	.downspread_percent = 0.38,
+	.dram_page_open_time_ns = 50.0,
+	.dram_rw_turnaround_time_ns = 17.5,
+	.dram_return_buffer_per_channel_bytes = 8192,
+	.round_trip_ping_latency_dcfclk_cycles = 131,
+	.urgent_out_of_order_return_per_channel_bytes = 256,
+	.channel_interleave_bytes = 256,
+	.num_banks = 8,
+	.num_chans = 8,
+	.vmm_page_size_bytes = 4096,
+	.dram_clock_change_latency_us = 404.0,
+	.dummy_pstate_latency_us = 5.0,
+	.writeback_dram_clock_change_latency_us = 23.0,
+	.return_bus_width_bytes = 64,
+	.dispclk_dppclk_vco_speed_mhz = 3850,
+	.xfc_bus_transport_time_us = 20,
+	.xfc_xbuf_latency_tolerance_us = 4,
+	.use_urgent_burst_bw = 0
+};
+
 struct _vcs_dpi_soc_bounding_box_st dcn2_0_nv12_soc = { 0 };
 
 #ifndef mmDP0_DP_DPHY_INTERNAL_CTRL
@@ -1419,13 +1530,20 @@
 
 static void acquire_dsc(struct resource_context *res_ctx,
 			const struct resource_pool *pool,
-			struct display_stream_compressor **dsc)
+			struct display_stream_compressor **dsc,
+			int pipe_idx)
 {
 	int i;
 
 	ASSERT(*dsc == NULL);
 	*dsc = NULL;
 
+	if (pool->res_cap->num_dsc == pool->res_cap->num_opp) {
+		*dsc = pool->dscs[pipe_idx];
+		res_ctx->is_dsc_acquired[pipe_idx] = true;
+		return;
+	}
+
 	/* Find first free DSC */
 	for (i = 0; i < pool->res_cap->num_dsc; i++)
 		if (!res_ctx->is_dsc_acquired[i]) {
@@ -1468,7 +1586,7 @@
 		if (pipe_ctx->stream != dc_stream)
 			continue;
 
-		acquire_dsc(&dc_ctx->res_ctx, pool, &pipe_ctx->stream_res.dsc);
+		acquire_dsc(&dc_ctx->res_ctx, pool, &pipe_ctx->stream_res.dsc, i);
 
 		/* The number of DSCs can be less than the number of pipes */
 		if (!pipe_ctx->stream_res.dsc) {
@@ -1669,7 +1787,7 @@
 	next_odm_pipe->stream_res.opp = pool->opps[next_odm_pipe->pipe_idx];
 #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
 	if (next_odm_pipe->stream->timing.flags.DSC == 1) {
-		acquire_dsc(res_ctx, pool, &next_odm_pipe->stream_res.dsc);
+		acquire_dsc(res_ctx, pool, &next_odm_pipe->stream_res.dsc, next_odm_pipe->pipe_idx);
 		ASSERT(next_odm_pipe->stream_res.dsc);
 		if (next_odm_pipe->stream_res.dsc == NULL)
 			return false;
@@ -1765,7 +1883,7 @@
 			pipe_cnt = i;
 			continue;
 		}
-		if (!resource_are_streams_timing_synchronizable(
+		if (dc->debug.disable_timing_sync || !resource_are_streams_timing_synchronizable(
 				res_ctx->pipe_ctx[pipe_cnt].stream,
 				res_ctx->pipe_ctx[i].stream)) {
 			synchronized_vblank = false;
@@ -2114,7 +2232,7 @@
 				wb_arb_params->cli_watermark[k] = get_wm_writeback_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
 				wb_arb_params->pstate_watermark[k] = get_wm_writeback_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
 			}
-			wb_arb_params->time_per_pixel = 16.0 / context->res_ctx.pipe_ctx[i].stream->phy_pix_clk; /* 4 bit fraction, ms */
+			wb_arb_params->time_per_pixel = 16.0 * 1000 / (context->res_ctx.pipe_ctx[i].stream->phy_pix_clk / 1000); /* 4 bit fraction, ms */
 			wb_arb_params->slice_lines = 32;
 			wb_arb_params->arbitration_slice = 2;
 			wb_arb_params->max_scaled_time = dcn20_calc_max_scaled_time(wb_arb_params->time_per_pixel,
@@ -2157,6 +2275,7 @@
 				+ stream->timing.v_border_bottom;
 		dsc_cfg.pixel_encoding = stream->timing.pixel_encoding;
 		dsc_cfg.color_depth = stream->timing.display_color_depth;
+		dsc_cfg.is_odm = pipe_ctx->next_odm_pipe ? true : false;
 		dsc_cfg.dc_dsc_cfg = stream->timing.dsc_cfg;
 		dsc_cfg.dc_dsc_cfg.num_slices_h /= opp_cnt;
 
@@ -2474,6 +2593,7 @@
 							&context->res_ctx, dc->res_pool,
 							pipe, hsplit_pipe))
 						goto validate_fail;
+					dcn20_build_mapped_resource(dc, context, pipe->stream);
 				} else
 					dcn20_split_stream_for_mpc(
 						&context->res_ctx, dc->res_pool,
@@ -2726,7 +2846,7 @@
 	int vlevel = 0;
 	int pipe_split_from[MAX_PIPES];
 	int pipe_cnt = 0;
-	display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+	display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_ATOMIC);
 	DC_LOGGER_INIT(dc->ctx->logger);
 
 	BW_VAL_TRACE_COUNT();
@@ -2797,7 +2917,7 @@
 	voltage_supported = dcn20_validate_bandwidth_internal(dc, context, false);
 	dummy_pstate_supported = context->bw_ctx.bw.dcn.clk.p_state_change_support;
 
-	if (voltage_supported && dummy_pstate_supported) {
+	if (voltage_supported && (dummy_pstate_supported || !(context->stream_count))) {
 		context->bw_ctx.bw.dcn.clk.p_state_change_support = false;
 		goto restore_dml_state;
 	}
@@ -3040,7 +3160,7 @@
 static void update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st *bb,
 		struct pp_smu_nv_clock_table *max_clocks, unsigned int *uclk_states, unsigned int num_states)
 {
-	struct _vcs_dpi_voltage_scaling_st calculated_states[MAX_CLOCK_LIMIT_STATES] = {0};
+	struct _vcs_dpi_voltage_scaling_st calculated_states[MAX_CLOCK_LIMIT_STATES];
 	int i;
 	int num_calculated_states = 0;
 	int min_dcfclk = 0;
@@ -3048,6 +3168,8 @@
 	if (num_states == 0)
 		return;
 
+	memset(calculated_states, 0, sizeof(calculated_states));
+
 	if (dc->bb_overrides.min_dcfclk_mhz > 0)
 		min_dcfclk = dc->bb_overrides.min_dcfclk_mhz;
 	else
@@ -3125,6 +3247,9 @@
 static struct _vcs_dpi_soc_bounding_box_st *get_asic_rev_soc_bb(
 	uint32_t hw_internal_rev)
 {
+	if (ASICREV_IS_NAVI14_M(hw_internal_rev))
+		return &dcn2_0_nv14_soc;
+
 	if (ASICREV_IS_NAVI12_P(hw_internal_rev))
 		return &dcn2_0_nv12_soc;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_stream_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_stream_encoder.c
@@ -492,15 +492,23 @@
 				DP_VID_N_MUL, n_multiply);
 	}
 
-	/* set DIG_START to 0x1 to reset FIFO */
+	/* make sure stream is disabled before resetting steer fifo */
+	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, false);
+	REG_WAIT(DP_VID_STREAM_CNTL, DP_VID_STREAM_STATUS, 0, 10, 5000);
 
+	/* set DIG_START to 0x1 to reset FIFO */
 	REG_UPDATE(DIG_FE_CNTL, DIG_START, 1);
+	udelay(1);
 
 	/* write 0 to take the FIFO out of reset */
 
 	REG_UPDATE(DIG_FE_CNTL, DIG_START, 0);
 
-	/* switch DP encoder to CRTC data */
+	/* switch DP encoder to CRTC data, but reset it the fifo first. It may happen
+	 * that it overflows during mode transition, and sometimes doesn't recover.
+	 */
+	REG_UPDATE(DP_STEER_FIFO, DP_STEER_FIFO_RESET, 1);
+	udelay(10);
 
 	REG_UPDATE(DP_STEER_FIFO, DP_STEER_FIFO_RESET, 0);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c
@@ -22,6 +22,7 @@
  * Authors: AMD
  *
  */
+#include <linux/delay.h>
 #include "dm_services.h"
 #include "dcn20/dcn20_hubbub.h"
 #include "dcn21_hubbub.h"
@@ -71,30 +72,39 @@
 void dcn21_dchvm_init(struct hubbub *hubbub)
 {
 	struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub);
+	uint32_t riommu_active;
+	int i;
 
 	//Init DCHVM block
 	REG_UPDATE(DCHVM_CTRL0, HOSTVM_INIT_REQ, 1);
 
 	//Poll until RIOMMU_ACTIVE = 1
-	//TODO: Figure out interval us and retry count
-	REG_WAIT(DCHVM_RIOMMU_STAT0, RIOMMU_ACTIVE, 1, 5, 100);
+	for (i = 0; i < 100; i++) {
+		REG_GET(DCHVM_RIOMMU_STAT0, RIOMMU_ACTIVE, &riommu_active);
 
-	//Reflect the power status of DCHUBBUB
-	REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_POWERSTATUS, 1);
-
-	//Start rIOMMU prefetching
-	REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_PREFETCH_REQ, 1);
-
-	// Enable dynamic clock gating
-	REG_UPDATE_4(DCHVM_CLK_CTRL,
-					HVM_DISPCLK_R_GATE_DIS, 0,
-					HVM_DISPCLK_G_GATE_DIS, 0,
-					HVM_DCFCLK_R_GATE_DIS, 0,
-					HVM_DCFCLK_G_GATE_DIS, 0);
-
-	//Poll until HOSTVM_PREFETCH_DONE = 1
-	//TODO: Figure out interval us and retry count
-	REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100);
+		if (riommu_active)
+			break;
+		else
+			udelay(5);
+	}
+
+	if (riommu_active) {
+		//Reflect the power status of DCHUBBUB
+		REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_POWERSTATUS, 1);
+
+		//Start rIOMMU prefetching
+		REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_PREFETCH_REQ, 1);
+
+		// Enable dynamic clock gating
+		REG_UPDATE_4(DCHVM_CLK_CTRL,
+						HVM_DISPCLK_R_GATE_DIS, 0,
+						HVM_DISPCLK_G_GATE_DIS, 0,
+						HVM_DCFCLK_R_GATE_DIS, 0,
+						HVM_DCFCLK_G_GATE_DIS, 0);
+
+		//Poll until HOSTVM_PREFETCH_DONE = 1
+		REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100);
+	}
 }
 
 static int hubbub21_init_dchub(struct hubbub *hubbub,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
@@ -73,32 +73,47 @@
 		struct _vcs_dpi_display_dlg_regs_st *dlg_attr)
 {
 	struct dcn21_hubp *hubp21 = TO_DCN21_HUBP(hubp);
-	uint32_t cur_value;
+	uint32_t refcyc_per_vm_group_vblank;
+	uint32_t refcyc_per_vm_req_vblank;
+	uint32_t refcyc_per_vm_group_flip;
+	uint32_t refcyc_per_vm_req_flip;
+	const uint32_t uninitialized_hw_default = 0;
 
-	REG_GET(VBLANK_PARAMETERS_5, REFCYC_PER_VM_GROUP_VBLANK, &cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_group_vblank)
+	REG_GET(VBLANK_PARAMETERS_5,
+			REFCYC_PER_VM_GROUP_VBLANK, &refcyc_per_vm_group_vblank);
+
+	if (refcyc_per_vm_group_vblank == uninitialized_hw_default ||
+			refcyc_per_vm_group_vblank > dlg_attr->refcyc_per_vm_group_vblank)
 		REG_SET(VBLANK_PARAMETERS_5, 0,
 				REFCYC_PER_VM_GROUP_VBLANK, dlg_attr->refcyc_per_vm_group_vblank);
 
 	REG_GET(VBLANK_PARAMETERS_6,
-			REFCYC_PER_VM_REQ_VBLANK,
-			&cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_req_vblank)
+			REFCYC_PER_VM_REQ_VBLANK, &refcyc_per_vm_req_vblank);
+
+	if (refcyc_per_vm_req_vblank == uninitialized_hw_default ||
+			refcyc_per_vm_req_vblank > dlg_attr->refcyc_per_vm_req_vblank)
 		REG_SET(VBLANK_PARAMETERS_6, 0,
 				REFCYC_PER_VM_REQ_VBLANK, dlg_attr->refcyc_per_vm_req_vblank);
 
-	REG_GET(FLIP_PARAMETERS_3, REFCYC_PER_VM_GROUP_FLIP, &cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_group_flip)
+	REG_GET(FLIP_PARAMETERS_3,
+			REFCYC_PER_VM_GROUP_FLIP, &refcyc_per_vm_group_flip);
+
+	if (refcyc_per_vm_group_flip == uninitialized_hw_default ||
+			refcyc_per_vm_group_flip > dlg_attr->refcyc_per_vm_group_flip)
 		REG_SET(FLIP_PARAMETERS_3, 0,
 				REFCYC_PER_VM_GROUP_FLIP, dlg_attr->refcyc_per_vm_group_flip);
 
-	REG_GET(FLIP_PARAMETERS_4, REFCYC_PER_VM_REQ_FLIP, &cur_value);
-	if (cur_value > dlg_attr->refcyc_per_vm_req_flip)
+	REG_GET(FLIP_PARAMETERS_4,
+			REFCYC_PER_VM_REQ_FLIP, &refcyc_per_vm_req_flip);
+
+	if (refcyc_per_vm_req_flip == uninitialized_hw_default ||
+			refcyc_per_vm_req_flip > dlg_attr->refcyc_per_vm_req_flip)
 		REG_SET(FLIP_PARAMETERS_4, 0,
 					REFCYC_PER_VM_REQ_FLIP, dlg_attr->refcyc_per_vm_req_flip);
 
 	REG_SET(FLIP_PARAMETERS_5, 0,
 			REFCYC_PER_PTE_GROUP_FLIP_C, dlg_attr->refcyc_per_pte_group_flip_c);
+
 	REG_SET(FLIP_PARAMETERS_6, 0,
 			REFCYC_PER_META_CHUNK_FLIP_C, dlg_attr->refcyc_per_meta_chunk_flip_c);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
@@ -57,6 +57,7 @@
 #include "dcn20/dcn20_dccg.h"
 #include "dcn21_hubbub.h"
 #include "dcn10/dcn10_resource.h"
+#include "dce110/dce110_resource.h"
 
 #include "dcn20/dcn20_dwb.h"
 #include "dcn20/dcn20_mmhubbub.h"
@@ -246,7 +247,7 @@
 	.dram_channel_width_bytes = 4,
 	.fabric_datapath_to_dcn_data_return_bytes = 32,
 	.dcn_downspread_percent = 0.5,
-	.downspread_percent = 0.5,
+	.downspread_percent = 0.38,
 	.dram_page_open_time_ns = 50.0,
 	.dram_rw_turnaround_time_ns = 17.5,
 	.dram_return_buffer_per_channel_bytes = 8192,
@@ -258,7 +259,7 @@
 	.vmm_page_size_bytes = 4096,
 	.dram_clock_change_latency_us = 23.84,
 	.return_bus_width_bytes = 64,
-	.dispclk_dppclk_vco_speed_mhz = 3550,
+	.dispclk_dppclk_vco_speed_mhz = 3600,
 	.xfc_bus_transport_time_us = 4,
 	.xfc_xbuf_latency_tolerance_us = 4,
 	.use_urgent_burst_bw = 1,
@@ -824,6 +825,9 @@
 enum dcn20_clk_src_array_id {
 	DCN20_CLK_SRC_PLL0,
 	DCN20_CLK_SRC_PLL1,
+	DCN20_CLK_SRC_PLL2,
+	DCN20_CLK_SRC_PLL3,
+	DCN20_CLK_SRC_PLL4,
 	DCN20_CLK_SRC_TOTAL_DCN21
 };
 
@@ -1136,6 +1140,7 @@
 		return &clk_src->base;
 	}
 
+	kfree(clk_src);
 	BREAK_TO_DEBUGGER();
 	return NULL;
 }
@@ -1492,6 +1497,18 @@
 			dcn21_clock_source_create(ctx, ctx->dc_bios,
 				CLOCK_SOURCE_COMBO_PHY_PLL1,
 				&clk_src_regs[1], false);
+	pool->base.clock_sources[DCN20_CLK_SRC_PLL2] =
+			dcn21_clock_source_create(ctx, ctx->dc_bios,
+				CLOCK_SOURCE_COMBO_PHY_PLL2,
+				&clk_src_regs[2], false);
+	pool->base.clock_sources[DCN20_CLK_SRC_PLL3] =
+			dcn21_clock_source_create(ctx, ctx->dc_bios,
+				CLOCK_SOURCE_COMBO_PHY_PLL3,
+				&clk_src_regs[3], false);
+	pool->base.clock_sources[DCN20_CLK_SRC_PLL4] =
+			dcn21_clock_source_create(ctx, ctx->dc_bios,
+				CLOCK_SOURCE_COMBO_PHY_PLL4,
+				&clk_src_regs[4], false);
 
 	pool->base.clk_src_count = DCN20_CLK_SRC_TOTAL_DCN21;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c
@@ -3435,6 +3435,7 @@
 			mode_lib->vba.DCCEnabledInAnyPlane = true;
 		}
 	}
+	mode_lib->vba.UrgentLatency = mode_lib->vba.UrgentLatencyPixelDataOnly;
 	for (i = 0; i <= mode_lib->vba.soc.num_states; i++) {
 		locals->FabricAndDRAMBandwidthPerState[i] = dml_min(
 				mode_lib->vba.DRAMSpeedPerState[i] * mode_lib->vba.NumberOfChannels
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c
@@ -3467,6 +3467,7 @@
 			mode_lib->vba.DCCEnabledInAnyPlane = true;
 		}
 	}
+	mode_lib->vba.UrgentLatency = mode_lib->vba.UrgentLatencyPixelDataOnly;
 	for (i = 0; i <= mode_lib->vba.soc.num_states; i++) {
 		locals->FabricAndDRAMBandwidthPerState[i] = dml_min(
 				mode_lib->vba.DRAMSpeedPerState[i] * mode_lib->vba.NumberOfChannels
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dml/dml_common_defs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dml/dml_common_defs.c
@@ -24,7 +24,7 @@
  */
 
 #include "dml_common_defs.h"
-#include "../calcs/dcn_calc_math.h"
+#include "dcn_calc_math.h"
 
 #include "dml_inline_defs.h"
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h
@@ -27,7 +27,7 @@
 #define __DML_INLINE_DEFS_H__
 
 #include "dml_common_defs.h"
-#include "../calcs/dcn_calc_math.h"
+#include "dcn_calc_math.h"
 #include "dml_logger.h"
 
 static inline double dml_min(double a, double b)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
@@ -63,13 +63,13 @@
 	enum gpio_mode mode)
 {
 	if (gpio->pin) {
-		ASSERT_CRITICAL(false);
+		BREAK_TO_DEBUGGER();
 		return GPIO_RESULT_ALREADY_OPENED;
 	}
 
 	// No action if allocation failed during gpio construct
 	if (!gpio->hw_container.ddc) {
-		ASSERT_CRITICAL(false);
+		BREAK_TO_DEBUGGER();
 		return GPIO_RESULT_NON_SPECIFIC_ERROR;
 	}
 	gpio->mode = mode;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
@@ -53,8 +53,8 @@
  */
 
 struct gpio_service *dal_gpio_service_create(
-	enum dce_version dce_version_major,
-	enum dce_version dce_version_minor,
+	enum dce_version dce_version,
+	enum dce_environment dce_environment,
 	struct dc_context *ctx)
 {
 	struct gpio_service *service;
@@ -67,14 +67,14 @@
 		return NULL;
 	}
 
-	if (!dal_hw_translate_init(&service->translate, dce_version_major,
-			dce_version_minor)) {
+	if (!dal_hw_translate_init(&service->translate, dce_version,
+			dce_environment)) {
 		BREAK_TO_DEBUGGER();
 		goto failure_1;
 	}
 
-	if (!dal_hw_factory_init(&service->factory, dce_version_major,
-			dce_version_minor)) {
+	if (!dal_hw_factory_init(&service->factory, dce_version,
+			dce_environment)) {
 		BREAK_TO_DEBUGGER();
 		goto failure_1;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/inc/dcn_calc_math.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/inc/dcn_calc_math.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2017 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors: AMD
+ *
+ */
+
+#ifndef _DCN_CALC_MATH_H_
+#define _DCN_CALC_MATH_H_
+
+float dcn_bw_mod(const float arg1, const float arg2);
+float dcn_bw_min2(const float arg1, const float arg2);
+unsigned int dcn_bw_max(const unsigned int arg1, const unsigned int arg2);
+float dcn_bw_max2(const float arg1, const float arg2);
+float dcn_bw_floor2(const float arg, const float significance);
+float dcn_bw_floor(const float arg);
+float dcn_bw_ceil2(const float arg, const float significance);
+float dcn_bw_ceil(const float arg);
+float dcn_bw_max3(float v1, float v2, float v3);
+float dcn_bw_max5(float v1, float v2, float v3, float v4, float v5);
+float dcn_bw_pow(float a, float exp);
+float dcn_bw_log(float a, float b);
+double dcn_bw_fabs(double a);
+
+#endif /* _DCN_CALC_MATH_H_ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h
@@ -36,6 +36,7 @@
 	uint32_t pic_height;
 	enum dc_pixel_encoding pixel_encoding;
 	enum dc_color_depth color_depth;  /* Bits per component */
+	bool is_odm;
 	struct dc_dsc_config dc_dsc_cfg;
 };
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
@@ -321,10 +321,12 @@
 			struct dc_state *context);
 	void (*update_writeback)(struct dc *dc,
 			const struct dc_stream_status *stream_status,
-			struct dc_writeback_info *wb_info);
+			struct dc_writeback_info *wb_info,
+			struct dc_state *context);
 	void (*enable_writeback)(struct dc *dc,
 			const struct dc_stream_status *stream_status,
-			struct dc_writeback_info *wb_info);
+			struct dc_writeback_info *wb_info,
+			struct dc_state *context);
 	void (*disable_writeback)(struct dc *dc,
 			unsigned int dwb_pipe_inst);
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
@@ -299,8 +299,8 @@
 	pflip_int_entry(1),
 	pflip_int_entry(2),
 	pflip_int_entry(3),
-	[DC_IRQ_SOURCE_PFLIP5] = dummy_irq_entry(),
-	[DC_IRQ_SOURCE_PFLIP6] = dummy_irq_entry(),
+	pflip_int_entry(4),
+	pflip_int_entry(5),
 	[DC_IRQ_SOURCE_PFLIP_UNDERLAY0] = dummy_irq_entry(),
 	gpio_pad_int_entry(0),
 	gpio_pad_int_entry(1),
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
@@ -168,6 +168,11 @@
 	.ack = NULL
 };
 
+static const struct irq_source_info_funcs vupdate_no_lock_irq_info_funcs = {
+	.set = NULL,
+	.ack = NULL
+};
+
 #undef BASE_INNER
 #define BASE_INNER(seg) DMU_BASE__INST0_SEG ## seg
 
@@ -222,12 +227,15 @@
 		.funcs = &pflip_irq_info_funcs\
 	}
 
-#define vupdate_int_entry(reg_num)\
+/* vupdate_no_lock_int_entry maps to DC_IRQ_SOURCE_VUPDATEx, to match semantic
+ * of DCE's DC_IRQ_SOURCE_VUPDATEx.
+ */
+#define vupdate_no_lock_int_entry(reg_num)\
 	[DC_IRQ_SOURCE_VUPDATE1 + reg_num] = {\
 		IRQ_REG_ENTRY(OTG, reg_num,\
-			OTG_GLOBAL_SYNC_STATUS, VUPDATE_INT_EN,\
-			OTG_GLOBAL_SYNC_STATUS, VUPDATE_EVENT_CLEAR),\
-		.funcs = &vblank_irq_info_funcs\
+			OTG_GLOBAL_SYNC_STATUS, VUPDATE_NO_LOCK_INT_EN,\
+			OTG_GLOBAL_SYNC_STATUS, VUPDATE_NO_LOCK_EVENT_CLEAR),\
+		.funcs = &vupdate_no_lock_irq_info_funcs\
 	}
 
 #define vblank_int_entry(reg_num)\
@@ -332,12 +340,12 @@
 	dc_underflow_int_entry(6),
 	[DC_IRQ_SOURCE_DMCU_SCP] = dummy_irq_entry(),
 	[DC_IRQ_SOURCE_VBIOS_SW] = dummy_irq_entry(),
-	vupdate_int_entry(0),
-	vupdate_int_entry(1),
-	vupdate_int_entry(2),
-	vupdate_int_entry(3),
-	vupdate_int_entry(4),
-	vupdate_int_entry(5),
+	vupdate_no_lock_int_entry(0),
+	vupdate_no_lock_int_entry(1),
+	vupdate_no_lock_int_entry(2),
+	vupdate_no_lock_int_entry(3),
+	vupdate_no_lock_int_entry(4),
+	vupdate_no_lock_int_entry(5),
 	vblank_int_entry(0),
 	vblank_int_entry(1),
 	vblank_int_entry(2),
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/irq_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/irq_types.h
@@ -163,7 +163,7 @@
 };
 
 #define DAL_VALID_IRQ_SRC_NUM(src) \
-	((src) <= DAL_IRQ_SOURCES_NUMBER && (src) > DC_IRQ_SOURCE_INVALID)
+	((src) < DAL_IRQ_SOURCES_NUMBER && (src) > DC_IRQ_SOURCE_INVALID)
 
 /* Number of Page Flip IRQ Sources. */
 #define DAL_PFLIP_IRQ_SRC_NUM \
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/dc/os_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/dc/os_types.h
@@ -57,7 +57,7 @@
  * general debug capabilities
  *
  */
-#if defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB)
+#if defined(CONFIG_DEBUG_KERNEL_DC) && (defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB))
 #define ASSERT_CRITICAL(expr) do {	\
 	if (WARN_ON(!(expr))) { \
 		kgdb_breakpoint(); \
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/include/ddc_service_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/include/ddc_service_types.h
@@ -31,6 +31,8 @@
 #define DP_BRANCH_DEVICE_ID_0022B9 0x0022B9
 #define DP_BRANCH_DEVICE_ID_00001A 0x00001A
 #define DP_BRANCH_DEVICE_ID_0080E1 0x0080e1
+#define DP_BRANCH_DEVICE_ID_90CC24 0x90CC24
+#define DP_BRANCH_DEVICE_ID_00E04C 0x00E04C
 
 enum ddc_result {
 	DDC_RESULT_UNKNOWN = 0,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/include/fixed31_32.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/include/fixed31_32.h
@@ -431,6 +431,9 @@
  */
 static inline struct fixed31_32 dc_fixpt_pow(struct fixed31_32 arg1, struct fixed31_32 arg2)
 {
+	if (arg1.value == 0)
+		return arg2.value == 0 ? dc_fixpt_one : dc_fixpt_zero;
+
 	return dc_fixpt_exp(
 		dc_fixpt_mul(
 			dc_fixpt_log(arg1),
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/include/gpio_service_interface.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/include/gpio_service_interface.h
@@ -42,8 +42,8 @@
 	struct gpio **ptr);
 
 struct gpio_service *dal_gpio_service_create(
-	enum dce_version dce_version_major,
-	enum dce_version dce_version_minor,
+	enum dce_version dce_version,
+	enum dce_environment dce_environment,
 	struct dc_context *ctx);
 
 struct gpio *dal_gpio_service_create_irq(
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
@@ -799,7 +799,7 @@
 	pow_buffer_ptr = -1; // reset back to no optimize
 	ret = true;
 release:
-	kfree(coeff);
+	kvfree(coeff);
 	return ret;
 }
 
@@ -1486,6 +1486,7 @@
 	struct fixed31_32 lut2;
 	struct fixed31_32 delta_lut;
 	struct fixed31_32 delta_index;
+	const struct fixed31_32 one = dc_fixpt_from_int(1);
 
 	i = 0;
 	/* fixed_pt library has problems handling too small values */
@@ -1514,6 +1515,9 @@
 			} else
 				hw_x = coordinates_x[i].x;
 
+			if (dc_fixpt_le(one, hw_x))
+				hw_x = one;
+
 			norm_x = dc_fixpt_mul(norm_factor, hw_x);
 			index = dc_fixpt_floor(norm_x);
 			if (index < 0 || index > 255)
@@ -1576,7 +1580,7 @@
 	struct pwl_float_data_ex *rgb = rgb_regamma;
 	const struct hw_x_point *coord_x = coordinates_x;
 
-	build_coefficients(&coeff, true);
+	build_coefficients(&coeff, TRANSFER_FUNCTION_SRGB);
 
 	i = 0;
 	while (i != hw_points_num + 1) {
@@ -1862,7 +1866,7 @@
 
 	kfree(rgb_regamma);
 rgb_regamma_alloc_fail:
-	kvfree(rgb_user);
+	kfree(rgb_user);
 rgb_user_alloc_fail:
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -37,8 +37,8 @@
 #define STATIC_SCREEN_RAMP_DELTA_REFRESH_RATE_PER_FRAME ((1000 / 60) * 65)
 /* Number of elements in the render times cache array */
 #define RENDER_TIMES_MAX_COUNT 10
-/* Threshold to exit BTR (to avoid frequent enter-exits at the lower limit) */
-#define BTR_EXIT_MARGIN 2000
+/* Threshold to exit/exit BTR (to avoid frequent enter-exits at the lower limit) */
+#define BTR_MAX_MARGIN 2500
 /* Threshold to change BTR multiplier (to avoid frequent changes) */
 #define BTR_DRIFT_MARGIN 2000
 /*Threshold to exit fixed refresh rate*/
@@ -250,24 +250,22 @@
 	unsigned int delta_from_mid_point_in_us_1 = 0xFFFFFFFF;
 	unsigned int delta_from_mid_point_in_us_2 = 0xFFFFFFFF;
 	unsigned int frames_to_insert = 0;
-	unsigned int min_frame_duration_in_ns = 0;
-	unsigned int max_render_time_in_us = in_out_vrr->max_duration_in_us;
 	unsigned int delta_from_mid_point_delta_in_us;
-
-	min_frame_duration_in_ns = ((unsigned int) (div64_u64(
-		(1000000000ULL * 1000000),
-		in_out_vrr->max_refresh_in_uhz)));
+	unsigned int max_render_time_in_us =
+			in_out_vrr->max_duration_in_us - in_out_vrr->btr.margin_in_us;
 
 	/* Program BTR */
-	if (last_render_time_in_us + BTR_EXIT_MARGIN < max_render_time_in_us) {
+	if ((last_render_time_in_us + in_out_vrr->btr.margin_in_us / 2) < max_render_time_in_us) {
 		/* Exit Below the Range */
 		if (in_out_vrr->btr.btr_active) {
 			in_out_vrr->btr.frame_counter = 0;
 			in_out_vrr->btr.btr_active = false;
 		}
-	} else if (last_render_time_in_us > max_render_time_in_us) {
+	} else if (last_render_time_in_us > (max_render_time_in_us + in_out_vrr->btr.margin_in_us / 2)) {
 		/* Enter Below the Range */
-		in_out_vrr->btr.btr_active = true;
+		if (!in_out_vrr->btr.btr_active) {
+			in_out_vrr->btr.btr_active = true;
+		}
 	}
 
 	/* BTR set to "not active" so disengage */
@@ -322,24 +320,50 @@
 
 		/* Choose number of frames to insert based on how close it
 		 * can get to the mid point of the variable range.
+		 *  - Delta for CEIL: delta_from_mid_point_in_us_1
+		 *  - Delta for FLOOR: delta_from_mid_point_in_us_2
 		 */
-		if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
+		if (mid_point_frames_ceil &&
+		    (last_render_time_in_us / mid_point_frames_ceil) <
+		    in_out_vrr->min_duration_in_us) {
+			/* Check for out of range.
+			 * If using CEIL produces a value that is out of range,
+			 * then we are forced to use FLOOR.
+			 */
+			frames_to_insert = mid_point_frames_floor;
+		} else if (mid_point_frames_floor < 2) {
+			/* Check if FLOOR would result in non-LFC. In this case
+			 * choose to use CEIL
+			 */
+			frames_to_insert = mid_point_frames_ceil;
+		} else if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
+			/* If choosing CEIL results in a frame duration that is
+			 * closer to the mid point of the range.
+			 * Choose CEIL
+			 */
 			frames_to_insert = mid_point_frames_ceil;
-			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_2 -
-					delta_from_mid_point_in_us_1;
 		} else {
+			/* If choosing FLOOR results in a frame duration that is
+			 * closer to the mid point of the range.
+			 * Choose FLOOR
+			 */
 			frames_to_insert = mid_point_frames_floor;
-			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_1 -
-					delta_from_mid_point_in_us_2;
 		}
 
 		/* Prefer current frame multiplier when BTR is enabled unless it drifts
 		 * too far from the midpoint
 		 */
+		if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
+			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_2 -
+					delta_from_mid_point_in_us_1;
+		} else {
+			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_1 -
+					delta_from_mid_point_in_us_2;
+		}
 		if (in_out_vrr->btr.frames_to_insert != 0 &&
 				delta_from_mid_point_delta_in_us < BTR_DRIFT_MARGIN) {
 			if (((last_render_time_in_us / in_out_vrr->btr.frames_to_insert) <
-					in_out_vrr->max_duration_in_us) &&
+					max_render_time_in_us) &&
 				((last_render_time_in_us / in_out_vrr->btr.frames_to_insert) >
 					in_out_vrr->min_duration_in_us))
 				frames_to_insert = in_out_vrr->btr.frames_to_insert;
@@ -348,8 +372,9 @@
 		/* Either we've calculated the number of frames to insert,
 		 * or we need to insert min duration frames
 		 */
-		if (last_render_time_in_us / frames_to_insert <
-				in_out_vrr->min_duration_in_us){
+		if (frames_to_insert &&
+		    (last_render_time_in_us / frames_to_insert) <
+		    in_out_vrr->min_duration_in_us){
 			frames_to_insert -= (frames_to_insert > 1) ?
 					1 : 0;
 		}
@@ -743,6 +768,10 @@
 	nominal_field_rate_in_uhz =
 			mod_freesync_calc_nominal_field_rate(stream);
 
+	/* Rounded to the nearest Hz */
+	nominal_field_rate_in_uhz = 1000000ULL *
+			div_u64(nominal_field_rate_in_uhz + 500000, 1000000);
+
 	min_refresh_in_uhz = in_config->min_refresh_in_uhz;
 	max_refresh_in_uhz = in_config->max_refresh_in_uhz;
 
@@ -788,6 +817,11 @@
 		refresh_range = in_out_vrr->max_refresh_in_uhz -
 				in_out_vrr->min_refresh_in_uhz;
 
+		in_out_vrr->btr.margin_in_us = in_out_vrr->max_duration_in_us -
+				2 * in_out_vrr->min_duration_in_us;
+		if (in_out_vrr->btr.margin_in_us > BTR_MAX_MARGIN)
+			in_out_vrr->btr.margin_in_us = BTR_MAX_MARGIN;
+
 		in_out_vrr->supported = true;
 	}
 
@@ -799,10 +833,12 @@
 			2 * in_out_vrr->min_refresh_in_uhz)
 		in_out_vrr->btr.btr_enabled = false;
 
+	in_out_vrr->fixed.fixed_active = false;
 	in_out_vrr->btr.btr_active = false;
 	in_out_vrr->btr.inserted_duration_in_us = 0;
 	in_out_vrr->btr.frames_to_insert = 0;
 	in_out_vrr->btr.frame_counter = 0;
+
 	in_out_vrr->btr.mid_point_in_us =
 				(in_out_vrr->min_duration_in_us +
 				 in_out_vrr->max_duration_in_us) / 2;
@@ -818,6 +854,7 @@
 		in_out_vrr->adjust.v_total_max = stream->timing.v_total;
 	} else if (in_out_vrr->state == VRR_STATE_ACTIVE_VARIABLE &&
 			refresh_range >= MIN_REFRESH_RANGE_IN_US) {
+
 		in_out_vrr->adjust.v_total_min =
 			calc_v_total_from_refresh(stream,
 				in_out_vrr->max_refresh_in_uhz);
@@ -996,14 +1033,13 @@
 			const struct dc_stream_state *stream)
 {
 	unsigned long long nominal_field_rate_in_uhz = 0;
+	unsigned int total = stream->timing.h_total * stream->timing.v_total;
 
-	/* Calculate nominal field rate for stream */
+	/* Calculate nominal field rate for stream, rounded up to nearest integer */
 	nominal_field_rate_in_uhz = stream->timing.pix_clk_100hz / 10;
 	nominal_field_rate_in_uhz *= 1000ULL * 1000ULL * 1000ULL;
-	nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz,
-						stream->timing.h_total);
-	nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz,
-						stream->timing.v_total);
+
+	nominal_field_rate_in_uhz =	div_u64(nominal_field_rate_in_uhz, total);
 
 	return nominal_field_rate_in_uhz;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h
@@ -92,6 +92,7 @@
 	uint32_t inserted_duration_in_us;
 	uint32_t frames_to_insert;
 	uint32_t frame_counter;
+	uint32_t margin_in_us;
 };
 
 struct mod_vrr_params_fixed_refresh {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
@@ -85,7 +85,8 @@
 //PB7 = MD0
 #define MASK_VTEM_MD0__VRR_EN         0x01
 #define MASK_VTEM_MD0__M_CONST        0x02
-#define MASK_VTEM_MD0__RESERVED2      0x0C
+#define MASK_VTEM_MD0__QMS_EN         0x04
+#define MASK_VTEM_MD0__RESERVED2      0x08
 #define MASK_VTEM_MD0__FVA_FACTOR_M1  0xF0
 
 //MD1
@@ -94,7 +95,7 @@
 //MD2
 #define MASK_VTEM_MD2__BASE_REFRESH_RATE_98  0x03
 #define MASK_VTEM_MD2__RB                    0x04
-#define MASK_VTEM_MD2__RESERVED3             0xF8
+#define MASK_VTEM_MD2__NEXT_TFR              0xF8
 
 //MD3
 #define MASK_VTEM_MD3__BASE_REFRESH_RATE_07  0xFF
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/modules/power/power_helpers.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/modules/power/power_helpers.c
@@ -115,7 +115,7 @@
 /* NOTE: iRAM is 256B in size */
 struct iram_table_v_2 {
 	/* flags                      */
-	uint16_t flags;							/* 0x00 U16  */
+	uint16_t min_abm_backlight;					/* 0x00 U16  */
 
 	/* parameters for ABM2.0 algorithm */
 	uint8_t min_reduction[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];		/* 0x02 U0.8 */
@@ -140,10 +140,10 @@
 
 	/* For reading PSR State directly from IRAM */
 	uint8_t psr_state;						/* 0xf0       */
-	uint8_t dmcu_mcp_interface_version;							/* 0xf1       */
-	uint8_t dmcu_abm_feature_version;							/* 0xf2       */
-	uint8_t dmcu_psr_feature_version;							/* 0xf3       */
-	uint16_t dmcu_version;										/* 0xf4       */
+	uint8_t dmcu_mcp_interface_version;				/* 0xf1       */
+	uint8_t dmcu_abm_feature_version;				/* 0xf2       */
+	uint8_t dmcu_psr_feature_version;				/* 0xf3       */
+	uint16_t dmcu_version;						/* 0xf4       */
 	uint8_t dmcu_state;						/* 0xf6       */
 
 	uint16_t blRampReduction;					/* 0xf7       */
@@ -164,42 +164,43 @@
 	uint8_t max_reduction[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];		/* 0x16 U0.8 */
 	uint8_t bright_pos_gain[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];	/* 0x2a U2.6 */
 	uint8_t dark_pos_gain[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL];		/* 0x3e U2.6 */
-	uint8_t hybrid_factor[NUM_AGGR_LEVEL];						/* 0x52 U0.8 */
-	uint8_t contrast_factor[NUM_AGGR_LEVEL];					/* 0x56 U0.8 */
-	uint8_t deviation_gain[NUM_AGGR_LEVEL];						/* 0x5a U0.8 */
-	uint8_t iir_curve[NUM_AMBI_LEVEL];							/* 0x5e U0.8 */
-	uint8_t min_knee[NUM_AGGR_LEVEL];							/* 0x63 U0.8 */
-	uint8_t max_knee[NUM_AGGR_LEVEL];							/* 0x67 U0.8 */
-	uint8_t pad[21];											/* 0x6b U0.8 */
+	uint8_t hybrid_factor[NUM_AGGR_LEVEL];				/* 0x52 U0.8 */
+	uint8_t contrast_factor[NUM_AGGR_LEVEL];			/* 0x56 U0.8 */
+	uint8_t deviation_gain[NUM_AGGR_LEVEL];				/* 0x5a U0.8 */
+	uint8_t iir_curve[NUM_AMBI_LEVEL];				/* 0x5e U0.8 */
+	uint8_t min_knee[NUM_AGGR_LEVEL];				/* 0x63 U0.8 */
+	uint8_t max_knee[NUM_AGGR_LEVEL];				/* 0x67 U0.8 */
+	uint16_t min_abm_backlight;					/* 0x6b U16  */
+	uint8_t pad[19];						/* 0x6d U0.8 */
 
 	/* parameters for crgb conversion */
-	uint16_t crgb_thresh[NUM_POWER_FN_SEGS];					/* 0x80 U3.13 */
-	uint16_t crgb_offset[NUM_POWER_FN_SEGS];					/* 0x90 U1.15 */
-	uint16_t crgb_slope[NUM_POWER_FN_SEGS];						/* 0xa0 U4.12 */
+	uint16_t crgb_thresh[NUM_POWER_FN_SEGS];			/* 0x80 U3.13 */
+	uint16_t crgb_offset[NUM_POWER_FN_SEGS];			/* 0x90 U1.15 */
+	uint16_t crgb_slope[NUM_POWER_FN_SEGS];				/* 0xa0 U4.12 */
 
 	/* parameters for custom curve */
 	/* thresholds for brightness --> backlight */
-	uint16_t backlight_thresholds[NUM_BL_CURVE_SEGS];			/* 0xb0 U16.0 */
+	uint16_t backlight_thresholds[NUM_BL_CURVE_SEGS];		/* 0xb0 U16.0 */
 	/* offsets for brightness --> backlight */
-	uint16_t backlight_offsets[NUM_BL_CURVE_SEGS];				/* 0xd0 U16.0 */
+	uint16_t backlight_offsets[NUM_BL_CURVE_SEGS];			/* 0xd0 U16.0 */
 
 	/* For reading PSR State directly from IRAM */
-	uint8_t psr_state;											/* 0xf0       */
-	uint8_t dmcu_mcp_interface_version;							/* 0xf1       */
-	uint8_t dmcu_abm_feature_version;							/* 0xf2       */
-	uint8_t dmcu_psr_feature_version;							/* 0xf3       */
-	uint16_t dmcu_version;										/* 0xf4       */
-	uint8_t dmcu_state;											/* 0xf6       */
-
-	uint8_t dummy1;												/* 0xf7       */
-	uint8_t dummy2;												/* 0xf8       */
-	uint8_t dummy3;												/* 0xf9       */
-	uint8_t dummy4;												/* 0xfa       */
-	uint8_t dummy5;												/* 0xfb       */
-	uint8_t dummy6;												/* 0xfc       */
-	uint8_t dummy7;												/* 0xfd       */
-	uint8_t dummy8;												/* 0xfe       */
-	uint8_t dummy9;												/* 0xff       */
+	uint8_t psr_state;						/* 0xf0       */
+	uint8_t dmcu_mcp_interface_version;				/* 0xf1       */
+	uint8_t dmcu_abm_feature_version;				/* 0xf2       */
+	uint8_t dmcu_psr_feature_version;				/* 0xf3       */
+	uint16_t dmcu_version;						/* 0xf4       */
+	uint8_t dmcu_state;						/* 0xf6       */
+
+	uint8_t dummy1;							/* 0xf7       */
+	uint8_t dummy2;							/* 0xf8       */
+	uint8_t dummy3;							/* 0xf9       */
+	uint8_t dummy4;							/* 0xfa       */
+	uint8_t dummy5;							/* 0xfb       */
+	uint8_t dummy6;							/* 0xfc       */
+	uint8_t dummy7;							/* 0xfd       */
+	uint8_t dummy8;							/* 0xfe       */
+	uint8_t dummy9;							/* 0xff       */
 };
 #pragma pack(pop)
 
@@ -271,7 +272,8 @@
 {
 	unsigned int set = params.set;
 
-	ram_table->flags = 0x0;
+	ram_table->min_abm_backlight =
+			cpu_to_be16(params.min_abm_backlight);
 	ram_table->deviation_gain = 0xb3;
 
 	ram_table->blRampReduction =
@@ -445,6 +447,9 @@
 
 	ram_table->flags = 0x0;
 
+	ram_table->min_abm_backlight =
+			cpu_to_be16(params.min_abm_backlight);
+
 	ram_table->deviation_gain[0] = 0xb3;
 	ram_table->deviation_gain[1] = 0xa8;
 	ram_table->deviation_gain[2] = 0x98;
@@ -588,6 +593,10 @@
 	unsigned int set = params.set;
 
 	ram_table->flags = 0x0;
+
+	ram_table->min_abm_backlight =
+			cpu_to_be16(params.min_abm_backlight);
+
 	for (i = 0; i < NUM_AGGR_LEVEL; i++) {
 		ram_table->hybrid_factor[i] = abm_settings[set][i].brightness_gain;
 		ram_table->contrast_factor[i] = abm_settings[set][i].contrast_factor;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/display/modules/power/power_helpers.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/display/modules/power/power_helpers.h
@@ -38,6 +38,7 @@
 	unsigned int backlight_lut_array_size;
 	unsigned int backlight_ramping_reduction;
 	unsigned int backlight_ramping_start;
+	unsigned int min_abm_backlight;
 	unsigned int set;
 };
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_offset.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_offset.h
@@ -7376,6 +7376,8 @@
 #define mmCRTC4_CRTC_DRR_CONTROL                                                                       0x0f3e
 #define mmCRTC4_CRTC_DRR_CONTROL_BASE_IDX                                                              2
 
+#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0                                                                  0x395d
+#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0_BASE_IDX                                                         2
 
 // addressBlock: dce_dc_fmt4_dispdec
 // base address: 0x2000
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/include/discovery.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/include/discovery.h
@@ -25,7 +25,6 @@
 #define _DISCOVERY_H_
 
 #define PSP_HEADER_SIZE                 256
-#define BINARY_MAX_SIZE                 (64 << 10)
 #define BINARY_SIGNATURE                0x28211407
 #define DISCOVERY_TABLE_SIGNATURE       0x53445049
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/include/navi10_enum.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/include/navi10_enum.h
@@ -430,7 +430,7 @@
  */
 
 typedef enum ENUM_NUM_SIMD_PER_CU {
-NUM_SIMD_PER_CU                          = 0x00000004,
+NUM_SIMD_PER_CU                          = 0x00000002,
 } ENUM_NUM_SIMD_PER_CU;
 
 /*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
@@ -320,12 +320,12 @@
 		if (*level & profile_mode_mask) {
 			hwmgr->saved_dpm_level = hwmgr->dpm_level;
 			hwmgr->en_umd_pstate = true;
-			amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
-						AMD_IP_BLOCK_TYPE_GFX,
-						AMD_CG_STATE_UNGATE);
 			amdgpu_device_ip_set_powergating_state(hwmgr->adev,
 					AMD_IP_BLOCK_TYPE_GFX,
 					AMD_PG_STATE_UNGATE);
+			amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
+						AMD_IP_BLOCK_TYPE_GFX,
+						AMD_CG_STATE_UNGATE);
 		}
 	} else {
 		/* exit umd pstate, restore level, enable gfx cg*/
@@ -1421,10 +1421,12 @@
 {
 	struct pp_hwmgr *hwmgr = handle;
 
+	*cap = false;
 	if (!hwmgr)
 		return -EINVAL;
 
-	if (!hwmgr->pm_en || !hwmgr->hwmgr_func->get_asic_baco_capability)
+	if (!(hwmgr->not_vf && amdgpu_dpm) ||
+		!hwmgr->hwmgr_func->get_asic_baco_capability)
 		return 0;
 
 	mutex_lock(&hwmgr->smu_lock);
@@ -1458,7 +1460,8 @@
 	if (!hwmgr)
 		return -EINVAL;
 
-	if (!hwmgr->pm_en || !hwmgr->hwmgr_func->set_asic_baco_state)
+	if (!(hwmgr->not_vf && amdgpu_dpm) ||
+		!hwmgr->hwmgr_func->set_asic_baco_state)
 		return 0;
 
 	mutex_lock(&hwmgr->smu_lock);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -844,6 +844,7 @@
 	smu->smu_baco.platform_support = false;
 
 	mutex_init(&smu->sensor_lock);
+	mutex_init(&smu->metrics_lock);
 
 	smu->watermarks_bitmap = 0;
 	smu->power_profile_mode = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT;
@@ -1344,7 +1345,10 @@
 	int ret;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	struct smu_context *smu = &adev->smu;
-	bool baco_feature_is_enabled = smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT);
+	bool baco_feature_is_enabled = false;
+
+	if(!(adev->flags & AMD_IS_APU))
+		baco_feature_is_enabled = smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT);
 
 	ret = smu_system_features_control(smu, false);
 	if (ret)
@@ -1537,12 +1541,12 @@
 		if (*level & profile_mode_mask) {
 			smu_dpm_ctx->saved_dpm_level = smu_dpm_ctx->dpm_level;
 			smu_dpm_ctx->enable_umd_pstate = true;
-			amdgpu_device_ip_set_clockgating_state(smu->adev,
-							       AMD_IP_BLOCK_TYPE_GFX,
-							       AMD_CG_STATE_UNGATE);
 			amdgpu_device_ip_set_powergating_state(smu->adev,
 							       AMD_IP_BLOCK_TYPE_GFX,
 							       AMD_PG_STATE_UNGATE);
+			amdgpu_device_ip_set_clockgating_state(smu->adev,
+							       AMD_IP_BLOCK_TYPE_GFX,
+							       AMD_CG_STATE_UNGATE);
 		}
 	} else {
 		/* exit umd pstate, restore level, enable gfx cg*/
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
@@ -910,18 +910,21 @@
 	struct smu_table_context *smu_table= &smu->smu_table;
 	int ret = 0;
 
+	mutex_lock(&smu->metrics_lock);
 	if (!smu_table->metrics_time ||
 	     time_after(jiffies, smu_table->metrics_time + HZ / 1000)) {
 		ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 				(void *)smu_table->metrics_table, false);
 		if (ret) {
 			pr_info("Failed to export SMU metrics table!\n");
+			mutex_unlock(&smu->metrics_lock);
 			return ret;
 		}
 		smu_table->metrics_time = jiffies;
 	}
 
 	memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));
+	mutex_unlock(&smu->metrics_lock);
 
 	return ret;
 }
@@ -1388,12 +1391,17 @@
 					"VR",
 					"COMPUTE",
 					"CUSTOM"};
+	static const char *title[] = {
+			"PROFILE_INDEX(NAME)"};
 	uint32_t i, size = 0;
 	int16_t workload_type = 0;
 
 	if (!smu->pm_enabled || !buf)
 		return -EINVAL;
 
+	size += sprintf(buf + size, "%16s\n",
+			title[0]);
+
 	for (i = 0; i <= PP_SMC_POWER_PROFILE_CUSTOM; i++) {
 		/*
 		 * Conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c
@@ -984,6 +984,32 @@
 			struct pp_hwmgr *hwmgr,
 			const ATOM_PPLIB_POWERPLAYTABLE *powerplay_table)
 {
+	hwmgr->thermal_controller.ucType =
+			powerplay_table->sThermalController.ucType;
+	hwmgr->thermal_controller.ucI2cLine =
+			powerplay_table->sThermalController.ucI2cLine;
+	hwmgr->thermal_controller.ucI2cAddress =
+			powerplay_table->sThermalController.ucI2cAddress;
+
+	hwmgr->thermal_controller.fanInfo.bNoFan =
+		(0 != (powerplay_table->sThermalController.ucFanParameters &
+			ATOM_PP_FANPARAMETERS_NOFAN));
+
+	hwmgr->thermal_controller.fanInfo.ucTachometerPulsesPerRevolution =
+		powerplay_table->sThermalController.ucFanParameters &
+		ATOM_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK;
+
+	hwmgr->thermal_controller.fanInfo.ulMinRPM
+		= powerplay_table->sThermalController.ucFanMinRPM * 100UL;
+	hwmgr->thermal_controller.fanInfo.ulMaxRPM
+		= powerplay_table->sThermalController.ucFanMaxRPM * 100UL;
+
+	set_hw_cap(hwmgr,
+		   ATOM_PP_THERMALCONTROLLER_NONE != hwmgr->thermal_controller.ucType,
+		   PHM_PlatformCaps_ThermalController);
+
+	hwmgr->thermal_controller.use_hw_fan_control = 1;
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c
@@ -209,8 +209,7 @@
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->need_min_deep_sleep_dcefclk &&
-		smu10_data->deep_sleep_dcefclk != clock) {
+	if (clock && smu10_data->deep_sleep_dcefclk != clock) {
 		smu10_data->deep_sleep_dcefclk = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetMinDeepSleepDcefclk,
@@ -223,8 +222,7 @@
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->dcf_actual_hard_min_freq &&
-		smu10_data->dcf_actual_hard_min_freq != clock) {
+	if (clock && smu10_data->dcf_actual_hard_min_freq != clock) {
 		smu10_data->dcf_actual_hard_min_freq = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetHardMinDcefclkByFreq,
@@ -237,8 +235,7 @@
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->f_actual_hard_min_freq &&
-		smu10_data->f_actual_hard_min_freq != clock) {
+	if (clock && smu10_data->f_actual_hard_min_freq != clock) {
 		smu10_data->f_actual_hard_min_freq = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetHardMinFclkByFreq,
@@ -1026,12 +1023,15 @@
 
 	clocks->num_levels = 0;
 	for (i = 0; i < pclk_vol_table->count; i++) {
-		clocks->data[i].clocks_in_khz = pclk_vol_table->entries[i].clk * 10;
-		clocks->data[i].latency_in_us = latency_required ?
-						smu10_get_mem_latency(hwmgr,
-						pclk_vol_table->entries[i].clk) :
-						0;
-		clocks->num_levels++;
+		if (pclk_vol_table->entries[i].clk) {
+			clocks->data[clocks->num_levels].clocks_in_khz =
+				pclk_vol_table->entries[i].clk * 10;
+			clocks->data[clocks->num_levels].latency_in_us = latency_required ?
+				smu10_get_mem_latency(hwmgr,
+						      pclk_vol_table->entries[i].clk) :
+				0;
+			clocks->num_levels++;
+		}
 	}
 
 	return 0;
@@ -1077,9 +1077,11 @@
 
 	clocks->num_levels = 0;
 	for (i = 0; i < pclk_vol_table->count; i++) {
-		clocks->data[i].clocks_in_khz = pclk_vol_table->entries[i].clk  * 10;
-		clocks->data[i].voltage_in_mv = pclk_vol_table->entries[i].vol;
-		clocks->num_levels++;
+		if (pclk_vol_table->entries[i].clk) {
+			clocks->data[clocks->num_levels].clocks_in_khz = pclk_vol_table->entries[i].clk  * 10;
+			clocks->data[clocks->num_levels].voltage_in_mv = pclk_vol_table->entries[i].vol;
+			clocks->num_levels++;
+		}
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
@@ -1533,6 +1533,10 @@
 	PP_ASSERT_WITH_CODE((tmp_result == 0),
 			"Failed to reset to default!", result = tmp_result);
 
+	tmp_result = smum_stop_smc(hwmgr);
+	PP_ASSERT_WITH_CODE((tmp_result == 0),
+			"Failed to stop smc!", result = tmp_result);
+
 	tmp_result = smu7_force_switch_to_arbf0(hwmgr);
 	PP_ASSERT_WITH_CODE((tmp_result == 0),
 			"Failed to force to switch arbf0!", result = tmp_result);
@@ -2864,7 +2868,7 @@
 		if (hwmgr->is_kicker)
 			switch_limit_us = data->is_memory_gddr5 ? 450 : 150;
 		else
-			switch_limit_us = data->is_memory_gddr5 ? 190 : 150;
+			switch_limit_us = data->is_memory_gddr5 ? 200 : 150;
 		break;
 	case CHIP_VEGAM:
 		switch_limit_us = 30;
@@ -3575,7 +3579,8 @@
 	case AMDGPU_PP_SENSOR_GPU_POWER:
 		return smu7_get_gpu_power(hwmgr, (uint32_t *)value);
 	case AMDGPU_PP_SENSOR_VDDGFX:
-		if ((data->vr_config & 0xff) == 0x2)
+		if ((data->vr_config & VRCONF_VDDGFX_MASK) ==
+		    (VR_SVI2_PLANE_2 << VRCONF_VDDGFX_SHIFT))
 			val_vid = PHM_READ_INDIRECT_FIELD(hwmgr->device,
 					CGS_IND_REG__SMC, PWR_SVI2_STATUS, PLANE2_VID);
 		else
@@ -3805,9 +3810,12 @@
 {
 	uint32_t i;
 
+	/* force the trim if mclk_switching is disabled to prevent flicker */
+	bool force_trim = (low_limit == high_limit);
 	for (i = 0; i < dpm_table->count; i++) {
 	/*skip the trim if od is enabled*/
-		if (!hwmgr->od_enabled && (dpm_table->dpm_levels[i].value < low_limit
+		if ((!hwmgr->od_enabled || force_trim)
+			&& (dpm_table->dpm_levels[i].value < low_limit
 			|| dpm_table->dpm_levels[i].value > high_limit))
 			dpm_table->dpm_levels[i].enabled = false;
 		else
@@ -3983,6 +3991,13 @@
 			"Failed to populate and upload SCLK MCLK DPM levels!",
 			result = tmp_result);
 
+	/*
+	 * If a custom pp table is loaded, set DPMTABLE_OD_UPDATE_VDDC flag.
+	 * That effectively disables AVFS feature.
+	 */
+	if (hwmgr->hardcode_pp_table != NULL)
+		data->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
+
 	tmp_result = smu7_update_avfs(hwmgr);
 	PP_ASSERT_WITH_CODE((0 == tmp_result),
 			"Failed to update avfs voltages!",
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -3691,6 +3691,13 @@
 	PP_ASSERT_WITH_CODE(!result,
 			"Failed to upload PPtable!", return result);
 
+	/*
+	 * If a custom pp table is loaded, set DPMTABLE_OD_UPDATE_VDDC flag.
+	 * That effectively disables AVFS feature.
+	 */
+	if(hwmgr->hardcode_pp_table != NULL)
+		data->need_update_dpm_table |= DPMTABLE_OD_UPDATE_VDDC;
+
 	vega10_update_avfs(hwmgr);
 
 	/*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
@@ -364,17 +364,29 @@
 static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v2_information *pp_table_info =
+		(struct phm_ppt_v2_information *)(hwmgr->pptable);
+	struct phm_tdp_table *tdp_table = pp_table_info->tdp_table;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+
+	/*
+	 * As a common sense, usSoftwareShutdownTemp should be bigger
+	 * than ThotspotLimit. For any invalid usSoftwareShutdownTemp,
+	 * we will just use the max possible setting VEGA10_THERMAL_MAXIMUM_ALERT_TEMP
+	 * to avoid false alarms.
+	 */
+	if ((tdp_table->usSoftwareShutdownTemp >
+	     range->hotspot_crit_max / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)) {
+		if (high > tdp_table->usSoftwareShutdownTemp)
+			high = tdp_table->usSoftwareShutdownTemp;
+	}
 
 	if (low > high)
 		return -EINVAL;
@@ -383,8 +395,8 @@
 
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val &= (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK) &
 			(~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK) &
 			(~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c
@@ -170,17 +170,18 @@
 static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v3_information *pptable_information =
+		(struct phm_ppt_v3_information *)hwmgr->pptable;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > pptable_information->us_software_shutdown_temp)
+		high = pptable_information->us_software_shutdown_temp;
 
 	if (low > high)
 		return -EINVAL;
@@ -189,8 +190,8 @@
 
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
 
 	WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c
@@ -29,7 +29,7 @@
 #include "vega20_baco.h"
 #include "vega20_smumgr.h"
 
-
+#include "amdgpu_ras.h"
 
 static const struct soc15_baco_cmd_entry clean_baco_tbl[] =
 {
@@ -74,6 +74,7 @@
 int vega20_baco_set_state(struct pp_hwmgr *hwmgr, enum BACO_STATE state)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)(hwmgr->adev);
+	struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);
 	enum BACO_STATE cur_state;
 	uint32_t data;
 
@@ -84,10 +85,11 @@
 		return 0;
 
 	if (state == BACO_STATE_IN) {
-		data = RREG32_SOC15(THM, 0, mmTHM_BACO_CNTL);
-		data |= 0x80000000;
-		WREG32_SOC15(THM, 0, mmTHM_BACO_CNTL, data);
-
+		if (!ras || !ras->supported) {
+			data = RREG32_SOC15(THM, 0, mmTHM_BACO_CNTL);
+			data |= 0x80000000;
+			WREG32_SOC15(THM, 0, mmTHM_BACO_CNTL, data);
+		}
 
 		if(smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_EnterBaco, 0))
 			return -EINVAL;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
@@ -981,27 +981,15 @@
 {
 	struct vega20_hwmgr *data =
 			(struct vega20_hwmgr *)(hwmgr->backend);
-	uint64_t features_enabled;
-	int i;
-	bool enabled;
-	int ret = 0;
+	int i, ret = 0;
 
 	PP_ASSERT_WITH_CODE((ret = smum_send_msg_to_smc(hwmgr,
 			PPSMC_MSG_DisableAllSmuFeatures)) == 0,
 			"[DisableAllSMUFeatures] Failed to disable all smu features!",
 			return ret);
 
-	ret = vega20_get_enabled_smc_features(hwmgr, &features_enabled);
-	PP_ASSERT_WITH_CODE(!ret,
-			"[DisableAllSMUFeatures] Failed to get enabled smc features!",
-			return ret);
-
-	for (i = 0; i < GNLD_FEATURES_MAX; i++) {
-		enabled = (features_enabled & data->smu_features[i].smu_feature_bitmap) ?
-			true : false;
-		data->smu_features[i].enabled = enabled;
-		data->smu_features[i].supported = enabled;
-	}
+	for (i = 0; i < GNLD_FEATURES_MAX; i++)
+		data->smu_features[i].enabled = 0;
 
 	return 0;
 }
@@ -1652,12 +1640,6 @@
 
 	data->uvd_power_gated = true;
 	data->vce_power_gated = true;
-
-	if (data->smu_features[GNLD_DPM_UVD].enabled)
-		data->uvd_power_gated = false;
-
-	if (data->smu_features[GNLD_DPM_VCE].enabled)
-		data->vce_power_gated = false;
 }
 
 static int vega20_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
@@ -2912,7 +2894,8 @@
 			data->od8_settings.od8_settings_array;
 	OverDriveTable_t *od_table =
 			&(data->smc_state_table.overdrive_table);
-	int32_t input_index, input_clk, input_vol, i;
+	int32_t input_clk, input_vol, i;
+	uint32_t input_index;
 	int od8_id;
 	int ret;
 
@@ -3211,10 +3194,11 @@
 
 static int vega20_set_ppfeature_status(struct pp_hwmgr *hwmgr, uint64_t new_ppfeature_masks)
 {
-	uint64_t features_enabled;
-	uint64_t features_to_enable;
-	uint64_t features_to_disable;
-	int ret = 0;
+	struct vega20_hwmgr *data =
+			(struct vega20_hwmgr *)(hwmgr->backend);
+	uint64_t features_enabled, features_to_enable, features_to_disable;
+	int i, ret = 0;
+	bool enabled;
 
 	if (new_ppfeature_masks >= (1ULL << GNLD_FEATURES_MAX))
 		return -EINVAL;
@@ -3243,6 +3227,17 @@
 			return ret;
 	}
 
+	/* Update the cached feature enablement state */
+	ret = vega20_get_enabled_smc_features(hwmgr, &features_enabled);
+	if (ret)
+		return ret;
+
+	for (i = 0; i < GNLD_FEATURES_MAX; i++) {
+		enabled = (features_enabled & data->smu_features[i].smu_feature_bitmap) ?
+			true : false;
+		data->smu_features[i].enabled = enabled;
+	}
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c
@@ -240,17 +240,18 @@
 static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v3_information *pptable_information =
+		(struct phm_ppt_v3_information *)hwmgr->pptable;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > pptable_information->us_software_shutdown_temp)
+		high = pptable_information->us_software_shutdown_temp;
 
 	if (low > high)
 		return -EINVAL;
@@ -259,8 +260,8 @@
 
 	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
 
 	WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
@@ -345,6 +345,7 @@
 	const struct pptable_funcs	*ppt_funcs;
 	struct mutex			mutex;
 	struct mutex			sensor_lock;
+	struct mutex			metrics_lock;
 	uint64_t pool_size;
 
 	struct smu_table_context	smu_table;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -229,6 +229,7 @@
 	bool (*is_hw_avfs_present)(struct pp_hwmgr  *hwmgr);
 	int (*update_dpm_settings)(struct pp_hwmgr *hwmgr, void *profile_setting);
 	int (*smc_table_manager)(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t table_id, bool rw); /*rw: true for read, false for write */
+	int (*stop_smc)(struct pp_hwmgr *hwmgr);
 };
 
 struct pp_hwmgr_func {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/inc/smumgr.h
@@ -114,4 +114,6 @@
 
 extern int smum_smc_table_manager(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t table_id, bool rw);
 
+extern int smum_stop_smc(struct pp_hwmgr *hwmgr);
+
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
@@ -547,17 +547,20 @@
 	struct smu_table_context *smu_table= &smu->smu_table;
 	int ret = 0;
 
+	mutex_lock(&smu->metrics_lock);
 	if (!smu_table->metrics_time || time_after(jiffies, smu_table->metrics_time + msecs_to_jiffies(100))) {
 		ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 				(void *)smu_table->metrics_table, false);
 		if (ret) {
 			pr_info("Failed to export SMU metrics table!\n");
+			mutex_unlock(&smu->metrics_lock);
 			return ret;
 		}
 		smu_table->metrics_time = jiffies;
 	}
 
 	memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));
+	mutex_unlock(&smu->metrics_lock);
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
@@ -183,11 +183,14 @@
 	int i, size = 0, ret = 0;
 	uint32_t cur_value = 0, value = 0, count = 0, min = 0, max = 0;
 	DpmClocks_t *clk_table = smu->smu_table.clocks_table;
-	SmuMetrics_t metrics = {0};
+	SmuMetrics_t metrics;
+	bool cur_value_match_level = false;
 
 	if (!clk_table || clk_type >= SMU_CLK_COUNT)
 		return -EINVAL;
 
+	memset(&metrics, 0, sizeof(metrics));
+
 	ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 			       (void *)&metrics, false);
 	if (ret)
@@ -241,8 +244,13 @@
 		GET_DPM_CUR_FREQ(clk_table, clk_type, i, value);
 		size += sprintf(buf + size, "%d: %uMhz %s\n", i, value,
 				cur_value == value ? "*" : "");
+		if (cur_value == value)
+			cur_value_match_level = true;
 	}
 
+	if (!cur_value_match_level)
+		size += sprintf(buf + size, "   %uMhz *\n", cur_value);
+
 	return size;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/renoir_ppt.h
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/renoir_ppt.h
@@ -37,7 +37,7 @@
 			freq = table->SocClocks[dpm_level].Freq;	\
 			break;						\
 		case SMU_MCLK:						\
-			freq = table->MemClocks[dpm_level].Freq;	\
+			freq = table->FClocks[dpm_level].Freq;	\
 			break;						\
 		case SMU_DCEFCLK:					\
 			freq = table->DcfClocks[dpm_level].Freq;	\
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
@@ -46,10 +46,8 @@
 #include "asic_reg/smuio/smuio_11_0_0_sh_mask.h"
 
 MODULE_FIRMWARE("amdgpu/vega20_smc.bin");
-MODULE_FIRMWARE("amdgpu/arcturus_smc.bin");
 MODULE_FIRMWARE("amdgpu/navi10_smc.bin");
 MODULE_FIRMWARE("amdgpu/navi14_smc.bin");
-MODULE_FIRMWARE("amdgpu/navi12_smc.bin");
 
 #define SMU11_VOLTAGE_SCALE 4
 
@@ -171,7 +169,8 @@
 		chip_name = "navi12";
 		break;
 	default:
-		BUG();
+		dev_err(adev->dev, "Unsupported ASIC type %d\n", adev->asic_type);
+		return -EINVAL;
 	}
 
 	snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_smc.bin", chip_name);
@@ -988,8 +987,12 @@
 	struct smu_11_0_max_sustainable_clocks *max_sustainable_clocks;
 	int ret = 0;
 
-	max_sustainable_clocks = kzalloc(sizeof(struct smu_11_0_max_sustainable_clocks),
+	if (!smu->smu_table.max_sustainable_clocks)
+		max_sustainable_clocks = kzalloc(sizeof(struct smu_11_0_max_sustainable_clocks),
 					 GFP_KERNEL);
+	else
+		max_sustainable_clocks = smu->smu_table.max_sustainable_clocks;
+
 	smu->smu_table.max_sustainable_clocks = (void *)max_sustainable_clocks;
 
 	max_sustainable_clocks->uclock = smu->smu_table.boot_values.uclk / 100;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
@@ -239,7 +239,7 @@
 
 	switch (dev_id) {
 	case 0x67BA:
-	case 0x66B1:
+	case 0x67B1:
 		smu_data->power_tune_defaults = &defaults_hawaii_pro;
 		break;
 	case 0x67B8:
@@ -2933,6 +2933,29 @@
 	return 0;
 }
 
+static void ci_reset_smc(struct pp_hwmgr *hwmgr)
+{
+	PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
+				  SMC_SYSCON_RESET_CNTL,
+				  rst_reg, 1);
+}
+
+
+static void ci_stop_smc_clock(struct pp_hwmgr *hwmgr)
+{
+	PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
+				  SMC_SYSCON_CLOCK_CNTL_0,
+				  ck_disable, 1);
+}
+
+static int ci_stop_smc(struct pp_hwmgr *hwmgr)
+{
+	ci_reset_smc(hwmgr);
+	ci_stop_smc_clock(hwmgr);
+
+	return 0;
+}
+
 const struct pp_smumgr_func ci_smu_funcs = {
 	.name = "ci_smu",
 	.smu_init = ci_smu_init,
@@ -2957,4 +2980,5 @@
 	.is_dpm_running = ci_is_dpm_running,
 	.update_dpm_settings = ci_update_dpm_settings,
 	.update_smc_table = ci_update_smc_table,
+	.stop_smc = ci_stop_smc,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
@@ -217,3 +217,11 @@
 
 	return -EINVAL;
 }
+
+int smum_stop_smc(struct pp_hwmgr *hwmgr)
+{
+	if (hwmgr->smumgr_funcs->stop_smc)
+		return hwmgr->smumgr_funcs->stop_smc(hwmgr);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c
@@ -642,9 +642,6 @@
 
 	/* sclk is bigger than max sclk in the dependence table */
 	*voltage |= (dep_table->entries[i - 1].vddc * VOLTAGE_SCALE) << VDDC_SHIFT;
-	vddci = phm_find_closest_vddci(&(data->vddci_voltage_table),
-			(dep_table->entries[i - 1].vddc -
-					(uint16_t)VDDC_VDDCI_DELTA));
 
 	if (SMU7_VOLTAGE_CONTROL_NONE == data->vddci_control)
 		*voltage |= (data->vbios_boot_state.vddci_bootup_value *
@@ -652,8 +649,13 @@
 	else if (dep_table->entries[i - 1].vddci)
 		*voltage |= (dep_table->entries[i - 1].vddci *
 				VOLTAGE_SCALE) << VDDC_SHIFT;
-	else
+	else {
+		vddci = phm_find_closest_vddci(&(data->vddci_voltage_table),
+				(dep_table->entries[i - 1].vddc -
+						(uint16_t)VDDC_VDDCI_DELTA));
+
 		*voltage |= (vddci * VOLTAGE_SCALE) << VDDCI_SHIFT;
+	}
 
 	if (SMU7_VOLTAGE_CONTROL_NONE == data->mvdd_control)
 		*mvdd = data->vbios_boot_state.mvdd_bootup_value * VOLTAGE_SCALE;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
@@ -1691,17 +1691,20 @@
 	struct smu_table_context *smu_table= &smu->smu_table;
 	int ret = 0;
 
+	mutex_lock(&smu->metrics_lock);
 	if (!smu_table->metrics_time || time_after(jiffies, smu_table->metrics_time + HZ / 1000)) {
 		ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,
 				(void *)smu_table->metrics_table, false);
 		if (ret) {
 			pr_info("Failed to export SMU metrics table!\n");
+			mutex_unlock(&smu->metrics_lock);
 			return ret;
 		}
 		smu_table->metrics_time = jiffies;
 	}
 
 	memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));
+	mutex_unlock(&smu->metrics_lock);
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
@@ -250,6 +250,7 @@
 {
 	komeda_crtc_prepare(to_kcrtc(crtc));
 	drm_crtc_vblank_on(crtc);
+	WARN_ON(drm_crtc_vblank_get(crtc));
 	komeda_crtc_do_flush(crtc, old);
 }
 
@@ -319,6 +320,7 @@
 		}
 	}
 
+	drm_crtc_vblank_put(crtc);
 	drm_crtc_vblank_off(crtc);
 	komeda_crtc_unprepare(kcrtc);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
@@ -264,6 +264,10 @@
 
 	formats = komeda_get_layer_fourcc_list(&mdev->fmt_tbl,
 					       layer->layer_type, &n_formats);
+	if (!formats) {
+		kfree(kplane);
+		return -ENOMEM;
+	}
 
 	err = drm_universal_plane_init(&kms->base, plane,
 			get_possible_crtcs(kms, c->pipeline),
@@ -274,8 +278,10 @@
 
 	komeda_put_fourcc_list(formats);
 
-	if (err)
-		goto cleanup;
+	if (err) {
+		kfree(kplane);
+		return err;
+	}
 
 	drm_plane_helper_add(plane, &komeda_plane_helper_funcs);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/arm/malidp_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/arm/malidp_crtc.c
@@ -483,7 +483,10 @@
 	if (crtc->state)
 		malidp_crtc_destroy_state(crtc, crtc->state);
 
-	__drm_atomic_helper_crtc_reset(crtc, &state->base);
+	if (state)
+		__drm_atomic_helper_crtc_reset(crtc, &state->base);
+	else
+		__drm_atomic_helper_crtc_reset(crtc, NULL);
 }
 
 static int malidp_crtc_enable_vblank(struct drm_crtc *crtc)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/arm/malidp_mw.c
+++ linux-ein-5.4.0/drivers/gpu/drm/arm/malidp_mw.c
@@ -56,7 +56,7 @@
 	return MODE_OK;
 }
 
-const struct drm_connector_helper_funcs malidp_mw_connector_helper_funcs = {
+static const struct drm_connector_helper_funcs malidp_mw_connector_helper_funcs = {
 	.get_modes = malidp_mw_connector_get_modes,
 	.mode_valid = malidp_mw_connector_mode_valid,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/arm/malidp_planes.c
+++ linux-ein-5.4.0/drivers/gpu/drm/arm/malidp_planes.c
@@ -922,13 +922,18 @@
 	.atomic_disable = malidp_de_plane_disable,
 };
 
+static const uint64_t linear_only_modifiers[] = {
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID
+};
+
 int malidp_de_planes_init(struct drm_device *drm)
 {
 	struct malidp_drm *malidp = drm->dev_private;
 	const struct malidp_hw_regmap *map = &malidp->dev->hw->map;
 	struct malidp_plane *plane = NULL;
 	enum drm_plane_type plane_type;
-	unsigned long crtcs = 1 << drm->mode_config.num_crtc;
+	unsigned long crtcs = BIT(drm->mode_config.num_crtc);
 	unsigned long flags = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_180 |
 			      DRM_MODE_ROTATE_270 | DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y;
 	unsigned int blend_caps = BIT(DRM_MODE_BLEND_PIXEL_NONE) |
@@ -985,8 +990,8 @@
 		 */
 		ret = drm_universal_plane_init(drm, &plane->base, crtcs,
 				&malidp_de_plane_funcs, formats, n,
-				(id == DE_SMART) ? NULL : modifiers, plane_type,
-				NULL);
+				(id == DE_SMART) ? linear_only_modifiers : modifiers,
+				plane_type, NULL);
 
 		if (ret < 0)
 			goto cleanup;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/armada/armada_overlay.c
+++ linux-ein-5.4.0/drivers/gpu/drm/armada/armada_overlay.c
@@ -4,6 +4,8 @@
  *  Rewritten from the dovefb driver, and Armada510 manuals.
  */
 
+#include <linux/bitfield.h>
+
 #include <drm/armada_drm.h>
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -446,8 +448,8 @@
 			     drm_to_overlay_state(state)->colorkey_ug,
 			     drm_to_overlay_state(state)->colorkey_vb, 0);
 	} else if (property == priv->colorkey_mode_prop) {
-		*val = (drm_to_overlay_state(state)->colorkey_mode &
-			CFG_CKMODE_MASK) >> ffs(CFG_CKMODE_MASK);
+		*val = FIELD_GET(CFG_CKMODE_MASK,
+				 drm_to_overlay_state(state)->colorkey_mode);
 	} else if (property == priv->brightness_prop) {
 		*val = drm_to_overlay_state(state)->brightness + 256;
 	} else if (property == priv->contrast_prop) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/aspeed/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/aspeed/Kconfig
@@ -3,6 +3,7 @@
 	tristate "ASPEED BMC Display Controller"
 	depends on DRM && OF
 	depends on (COMPILE_TEST || ARCH_ASPEED)
+	depends on MMU
 	select DRM_KMS_HELPER
 	select DRM_KMS_CMA_HELPER
 	select DMA_CMA if HAVE_DMA_CONTIGUOUS
--- linux-ein-5.4.0.orig/drivers/gpu/drm/ast/ast_post.c
+++ linux-ein-5.4.0/drivers/gpu/drm/ast/ast_post.c
@@ -294,7 +294,7 @@
 				;
 			} while (ast_read32(ast, 0x10100) != 0xa8);
 		} else {/* AST2100/1100 */
-			if (ast->chip == AST2100 || ast->chip == 2200)
+			if (ast->chip == AST2100 || ast->chip == AST2200)
 				dram_reg_info = ast2100_dram_table_data;
 			else
 				dram_reg_info = ast1100_dram_table_data;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -73,7 +73,11 @@
 	unsigned long prate;
 	unsigned int mask = ATMEL_HLCDC_CLKDIV_MASK | ATMEL_HLCDC_CLKPOL;
 	unsigned int cfg = 0;
-	int div;
+	int div, ret;
+
+	ret = clk_prepare_enable(crtc->dc->hlcdc->sys_clk);
+	if (ret)
+		return;
 
 	vm.vfront_porch = adj->crtc_vsync_start - adj->crtc_vdisplay;
 	vm.vback_porch = adj->crtc_vtotal - adj->crtc_vsync_end;
@@ -95,14 +99,14 @@
 		     (adj->crtc_hdisplay - 1) |
 		     ((adj->crtc_vdisplay - 1) << 16));
 
+	prate = clk_get_rate(crtc->dc->hlcdc->sys_clk);
+	mode_rate = adj->crtc_clock * 1000;
 	if (!crtc->dc->desc->fixed_clksrc) {
+		prate *= 2;
 		cfg |= ATMEL_HLCDC_CLKSEL;
 		mask |= ATMEL_HLCDC_CLKSEL;
 	}
 
-	prate = 2 * clk_get_rate(crtc->dc->hlcdc->sys_clk);
-	mode_rate = adj->crtc_clock * 1000;
-
 	div = DIV_ROUND_UP(prate, mode_rate);
 	if (div < 2) {
 		div = 2;
@@ -117,8 +121,8 @@
 		int div_low = prate / mode_rate;
 
 		if (div_low >= 2 &&
-		    ((prate / div_low - mode_rate) <
-		     10 * (mode_rate - prate / div)))
+		    (10 * (prate / div_low - mode_rate) <
+		     (mode_rate - prate / div)))
 			/*
 			 * At least 10 times better when using a higher
 			 * frequency than requested, instead of a lower.
@@ -147,6 +151,8 @@
 			   ATMEL_HLCDC_VSPSU | ATMEL_HLCDC_VSPHO |
 			   ATMEL_HLCDC_GUARDTIME_MASK | ATMEL_HLCDC_MODE_MASK,
 			   cfg);
+
+	clk_disable_unprepare(crtc->dc->hlcdc->sys_clk);
 }
 
 static enum drm_mode_status
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bochs/bochs_hw.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bochs/bochs_hw.c
@@ -156,10 +156,8 @@
 		size = min(size, mem);
 	}
 
-	if (pci_request_region(pdev, 0, "bochs-drm") != 0) {
-		DRM_ERROR("Cannot request framebuffer\n");
-		return -EBUSY;
-	}
+	if (pci_request_region(pdev, 0, "bochs-drm") != 0)
+		DRM_WARN("Cannot request framebuffer, boot fb still active?\n");
 
 	bochs->fb_map = ioremap(addr, size);
 	if (bochs->fb_map == NULL) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bochs/bochs_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bochs/bochs_kms.c
@@ -194,6 +194,7 @@
 	bochs->dev->mode_config.preferred_depth = 24;
 	bochs->dev->mode_config.prefer_shadow = 0;
 	bochs->dev->mode_config.prefer_shadow_fbdev = 1;
+	bochs->dev->mode_config.fbdev_use_iomem = true;
 	bochs->dev->mode_config.quirk_addfb_prefer_host_byte_order = true;
 
 	bochs->dev->mode_config.funcs = &bochs_mode_funcs;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/Kconfig
@@ -45,6 +45,15 @@
 	  Support for non-programmable RGB to VGA DAC bridges, such as ADI
 	  ADV7123, TI THS8134 and THS8135 or passive resistor ladder DACs.
 
+config DRM_FSL_IMX_LVDS_BRIDGE
+	tristate "Freescale i.MX LVDS display bridge"
+	depends on MFD_SYSCON
+	depends on OF
+	select DRM_PANEL_BRIDGE
+	help
+	  Support Freescale i.MX parallel to LVDS Display Bridge (LDB).
+	  This bridge is embedded in a SoC.
+
 config DRM_LVDS_ENCODER
 	tristate "Transparent parallel to LVDS encoder support"
 	depends on OF
@@ -65,6 +74,20 @@
           to DP++. This is used with the i.MX6 imx-ldb
           driver. You are likely to say N here.
 
+config DRM_SEC_MIPI_DSIM
+	tristate "Samsung MIPI DSIM Bridge"
+	depends on OF
+	select DRM_KMS_HELPER
+	select DRM_MIPI_DSI
+	select DRM_PANEL
+	help
+	  The Samsung MPI DSIM Bridge driver.
+
+config DRM_NXP_SEIKO_43WVFIG
+	tristate "Legacy Freescale Seiko 43WVFIG panel DPI adapter bridge"
+	select DRM_KMS_HELPER
+	select DRM_PANEL
+
 config DRM_NXP_PTN3460
 	tristate "NXP PTN3460 DP/LVDS bridge"
 	depends on OF
@@ -154,6 +177,19 @@
 
 source "drivers/gpu/drm/bridge/adv7511/Kconfig"
 
+source "drivers/gpu/drm/bridge/nwl-dsi/Kconfig"
+
+source "drivers/gpu/drm/bridge/cadence/Kconfig"
+
 source "drivers/gpu/drm/bridge/synopsys/Kconfig"
 
+config DRM_ITE_IT6263
+	tristate "ITE IT6263 LVDS/HDMI bridge"
+	depends on OF
+	select DRM_KMS_HELPER
+	select REGMAP_I2C
+	select OF_DYNAMIC
+	---help---
+	  ITE IT6263 bridge chip driver.
+
 endmenu
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/Makefile
@@ -2,6 +2,7 @@
 obj-$(CONFIG_DRM_ANALOGIX_ANX78XX) += analogix-anx78xx.o
 obj-$(CONFIG_DRM_CDNS_DSI) += cdns-dsi.o
 obj-$(CONFIG_DRM_DUMB_VGA_DAC) += dumb-vga-dac.o
+obj-$(CONFIG_DRM_FSL_IMX_LVDS_BRIDGE) += fsl-imx-ldb.o
 obj-$(CONFIG_DRM_LVDS_ENCODER) += lvds-encoder.o
 obj-$(CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW) += megachips-stdpxxxx-ge-b850v3-fw.o
 obj-$(CONFIG_DRM_NXP_PTN3460) += nxp-ptn3460.o
@@ -16,4 +17,9 @@
 obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511/
 obj-$(CONFIG_DRM_TI_SN65DSI86) += ti-sn65dsi86.o
 obj-$(CONFIG_DRM_TI_TFP410) += ti-tfp410.o
+obj-$(CONFIG_DRM_NWL_MIPI_DSI) += nwl-dsi/
+obj-y += cadence/
 obj-y += synopsys/
+obj-$(CONFIG_DRM_ITE_IT6263) += it6263.o
+obj-$(CONFIG_DRM_SEC_MIPI_DSIM) += sec-dsim.o
+obj-$(CONFIG_DRM_NXP_SEIKO_43WVFIG) += nxp-seiko-43wvfig.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/Kconfig
@@ -4,6 +4,7 @@
 	depends on OF
 	select DRM_KMS_HELPER
 	select REGMAP_I2C
+	select OF_DYNAMIC
 	help
 	  Support for the Analog Device ADV7511(W) and ADV7513 HDMI encoders.
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/Makefile
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
-adv7511-y := adv7511_drv.o
-adv7511-$(CONFIG_DRM_I2C_ADV7511_AUDIO) += adv7511_audio.o
-adv7511-$(CONFIG_DRM_I2C_ADV7511_CEC) += adv7511_cec.o
-adv7511-$(CONFIG_DRM_I2C_ADV7533) += adv7533.o
-obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511.o
+adv7511_drm-y := adv7511_drv.o
+adv7511_drm-$(CONFIG_DRM_I2C_ADV7511_AUDIO) += adv7511_audio.o
+adv7511_drm-$(CONFIG_DRM_I2C_ADV7511_CEC) += adv7511_cec.o
+adv7511_drm-$(CONFIG_DRM_I2C_ADV7533) += adv7533.o
+obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511_drm.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511.h
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/adv7511.h
@@ -219,6 +219,9 @@
 #define ADV7511_REG_CEC_SOFT_RESET	0x50
 
 #define ADV7533_REG_CEC_OFFSET		0x70
+#define FORMAT_RATIO(x, y) (((x) * 100) / (y))
+#define RATIO_16_9 FORMAT_RATIO(16, 9)
+#define RATIO_4_3  FORMAT_RATIO(4, 3)
 
 enum adv7511_input_clock {
 	ADV7511_INPUT_CLOCK_1X,
@@ -320,6 +323,7 @@
 enum adv7511_type {
 	ADV7511,
 	ADV7533,
+	ADV7535,
 };
 
 #define ADV7511_MAX_ADDRS 3
@@ -330,6 +334,10 @@
 	struct i2c_client *i2c_packet;
 	struct i2c_client *i2c_cec;
 
+	u32 addr_cec;
+	u32 addr_edid;
+	u32 addr_pkt;
+
 	struct regmap *regmap;
 	struct regmap *regmap_cec;
 	enum drm_connector_status status;
@@ -365,6 +373,7 @@
 	struct device_node *host_node;
 	struct mipi_dsi_device *dsi;
 	u8 num_dsi_lanes;
+	u8 channel_id;
 	bool use_timing_gen;
 
 	enum adv7511_type type;
@@ -384,10 +393,7 @@
 #else
 static inline int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511)
 {
-	unsigned int offset = adv7511->type == ADV7533 ?
-						ADV7533_REG_CEC_OFFSET : 0;
-
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset,
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL,
 		     ADV7511_CEC_CTRL_POWER_DOWN);
 	return 0;
 }
@@ -396,7 +402,6 @@
 #ifdef CONFIG_DRM_I2C_ADV7533
 void adv7533_dsi_power_on(struct adv7511 *adv);
 void adv7533_dsi_power_off(struct adv7511 *adv);
-void adv7533_mode_set(struct adv7511 *adv, const struct drm_display_mode *mode);
 int adv7533_patch_registers(struct adv7511 *adv);
 int adv7533_patch_cec_registers(struct adv7511 *adv);
 int adv7533_attach_dsi(struct adv7511 *adv);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
@@ -19,13 +19,15 @@
 {
 	switch (fs) {
 	case 32000:
-		*n = 4096;
+	case 48000:
+	case 96000:
+	case 192000:
+		*n = fs * 128 / 1000;
 		break;
 	case 44100:
-		*n = 6272;
-		break;
-	case 48000:
-		*n = 6144;
+	case 88200:
+	case 176400:
+		*n = fs * 128 / 900;
 		break;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c
@@ -302,7 +302,8 @@
 
 int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511)
 {
-	unsigned int offset = adv7511->type == ADV7533 ?
+	unsigned int offset = (adv7511->type == ADV7533 ||
+			       adv7511->type == ADV7535) ?
 						ADV7533_REG_CEC_OFFSET : 0;
 	int ret = adv7511_cec_parse_dt(dev, adv7511);
 
@@ -316,7 +317,7 @@
 		goto err_cec_alloc;
 	}
 
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, 0);
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL, 0);
 	/* cec soft reset */
 	regmap_write(adv7511->regmap_cec,
 		     ADV7511_REG_CEC_SOFT_RESET + offset, 0x01);
@@ -343,7 +344,7 @@
 	dev_info(dev, "Initializing CEC failed with error %d, disabling CEC\n",
 		 ret);
 err_cec_parse_dt:
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset,
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL,
 		     ADV7511_CEC_CTRL_POWER_DOWN);
 	return ret == -EPROBE_DEFER ? ret : 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -9,7 +9,9 @@
 #include <linux/device.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
+#include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/of_graph.h>
 #include <linux/slab.h>
 
 #include <media/cec.h>
@@ -74,6 +76,26 @@
 	0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 };
 
+/*
+ * TODO: Currently, filter-out unsupported modes by their clocks.
+ * Need to find a better way to do this.
+ * These are the pixel clocks that the converter can handle successfully.
+ */
+
+static const int valid_clocks[] = {
+	148500,
+	135000,
+	132000,
+	119000,
+	108000,
+	78750,
+	74250,
+	65000,
+	49500,
+	40000,
+	31500,
+};
+
 static bool adv7511_register_volatile(struct device *dev, unsigned int reg)
 {
 	switch (reg) {
@@ -329,6 +351,7 @@
 {
 	adv7511->current_edid_segment = -1;
 
+	/* 01-02 Power */
 	regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER,
 			   ADV7511_POWER_POWER_DOWN, 0);
 	if (adv7511->i2c_main->irq) {
@@ -346,6 +369,7 @@
 	}
 
 	/*
+	 * 01-01 HPD Manual Override
 	 * Per spec it is allowed to pulse the HPD signal to indicate that the
 	 * EDID information has changed. Some monitors do this when they wakeup
 	 * from standby or are enabled. When the HPD goes low the adv7511 is
@@ -367,7 +391,7 @@
 	 */
 	regcache_sync(adv7511->regmap);
 
-	if (adv7511->type == ADV7533)
+	if (adv7511->type == ADV7533 || adv7511->type == ADV7535)
 		adv7533_dsi_power_on(adv7511);
 	adv7511->powered = true;
 }
@@ -387,7 +411,7 @@
 static void adv7511_power_off(struct adv7511 *adv7511)
 {
 	__adv7511_power_off(adv7511);
-	if (adv7511->type == ADV7533)
+	if (adv7511->type == ADV7533 || adv7511->type == ADV7535)
 		adv7533_dsi_power_off(adv7511);
 	adv7511->powered = false;
 }
@@ -417,17 +441,16 @@
 static void adv7511_hpd_work(struct work_struct *work)
 {
 	struct adv7511 *adv7511 = container_of(work, struct adv7511, hpd_work);
-	enum drm_connector_status status;
+	enum drm_connector_status status = connector_status_disconnected;
 	unsigned int val;
 	int ret;
 
 	ret = regmap_read(adv7511->regmap, ADV7511_REG_STATUS, &val);
-	if (ret < 0)
-		status = connector_status_disconnected;
-	else if (val & ADV7511_STATUS_HPD)
+	if (ret >= 0 && (val & ADV7511_STATUS_HPD))
 		status = connector_status_connected;
-	else
-		status = connector_status_disconnected;
+
+	DRM_DEV_DEBUG_DRIVER(adv7511->connector.kdev, "HDMI HPD event: %s\n",
+		drm_get_connector_status_name(status));
 
 	/*
 	 * The bridge resets its registers on unplug. So when we get a plug
@@ -594,6 +617,8 @@
 {
 	struct edid *edid;
 	unsigned int count;
+	u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+	int ret;
 
 	/* Reading the EDID only works if the device is powered */
 	if (!adv7511->powered) {
@@ -623,6 +648,14 @@
 
 	kfree(edid);
 
+	connector->display_info.bus_flags = DRM_BUS_FLAG_DE_LOW |
+					    DRM_BUS_FLAG_PIXDATA_NEGEDGE;
+
+	ret = drm_display_info_set_bus_formats(&connector->display_info,
+					       &bus_format, 1);
+	if (ret)
+		return ret;
+
 	return count;
 }
 
@@ -669,9 +702,21 @@
 static enum drm_mode_status adv7511_mode_valid(struct adv7511 *adv7511,
 			      struct drm_display_mode *mode)
 {
+	size_t i, num_modes = ARRAY_SIZE(valid_clocks);
+	bool clock_ok = false;
+
 	if (mode->clock > 165000)
 		return MODE_CLOCK_HIGH;
 
+	for (i = 0; i < num_modes; i++)
+		if (mode->clock == valid_clocks[i]) {
+			clock_ok = true;
+			break;
+		}
+
+	if (!clock_ok)
+		return MODE_NOCLOCK;
+
 	return MODE_OK;
 }
 
@@ -756,14 +801,16 @@
 	else
 		low_refresh_rate = ADV7511_LOW_REFRESH_RATE_NONE;
 
-	regmap_update_bits(adv7511->regmap, 0xfb,
-		0x6, low_refresh_rate << 1);
+	if (adv7511->type == ADV7511)
+		regmap_update_bits(adv7511->regmap, 0xfb,
+				   0x6, low_refresh_rate << 1);
+	else
+		regmap_update_bits(adv7511->regmap, 0x4a,
+				   0xc, low_refresh_rate << 2);
+
 	regmap_update_bits(adv7511->regmap, 0x17,
 		0x60, (vsync_polarity << 6) | (hsync_polarity << 5));
 
-	if (adv7511->type == ADV7533)
-		adv7533_mode_set(adv7511, adj_mode);
-
 	drm_mode_copy(&adv7511->curr_mode, adj_mode);
 
 	/*
@@ -874,7 +921,7 @@
 				 &adv7511_connector_helper_funcs);
 	drm_connector_attach_encoder(&adv->connector, bridge->encoder);
 
-	if (adv->type == ADV7533)
+	if (adv->type == ADV7533 || adv->type == ADV7535)
 		ret = adv7533_attach_dsi(adv);
 
 	if (adv->i2c_main->irq)
@@ -982,9 +1029,13 @@
 	int ret;
 
 	adv->i2c_cec = i2c_new_ancillary_device(adv->i2c_main, "cec",
-						ADV7511_CEC_I2C_ADDR_DEFAULT);
+						adv->addr_cec);
 	if (IS_ERR(adv->i2c_cec))
 		return PTR_ERR(adv->i2c_cec);
+
+	regmap_write(adv->regmap, ADV7511_REG_CEC_I2C_ADDR,
+		     adv->i2c_cec->addr << 1);
+
 	i2c_set_clientdata(adv->i2c_cec, adv);
 
 	adv->regmap_cec = devm_regmap_init_i2c(adv->i2c_cec,
@@ -994,7 +1045,7 @@
 		goto err;
 	}
 
-	if (adv->type == ADV7533) {
+	if (adv->type == ADV7533 || adv->type == ADV7535) {
 		ret = adv7533_patch_cec_registers(adv);
 		if (ret)
 			goto err;
@@ -1094,6 +1145,12 @@
 	struct adv7511_link_config link_config;
 	struct adv7511 *adv7511;
 	struct device *dev = &i2c->dev;
+	struct device_node *remote_node = NULL, *endpoint = NULL;
+	struct of_changeset ocs;
+	unsigned int main_i2c_addr = i2c->addr << 1;
+	unsigned int edid_i2c_addr = main_i2c_addr + 4;
+	unsigned int cec_i2c_addr = main_i2c_addr - 2;
+	unsigned int pkt_i2c_addr = main_i2c_addr - 0xa;
 	unsigned int val;
 	int ret;
 
@@ -1128,6 +1185,21 @@
 		return ret;
 	}
 
+	if (adv7511->addr_cec != 0)
+		cec_i2c_addr = adv7511->addr_cec << 1;
+	else
+		adv7511->addr_cec = cec_i2c_addr >> 1;
+
+	if (adv7511->addr_edid != 0)
+		edid_i2c_addr = adv7511->addr_edid << 1;
+	else
+		adv7511->addr_edid = edid_i2c_addr >> 1;
+
+	if (adv7511->addr_pkt != 0)
+		pkt_i2c_addr = adv7511->addr_pkt << 1;
+	else
+		adv7511->addr_pkt = pkt_i2c_addr >> 1;
+
 	/*
 	 * The power down GPIO is optional. If present, toggle it from active to
 	 * inactive to wake up the encoder.
@@ -1165,33 +1237,33 @@
 
 	adv7511_packet_disable(adv7511, 0xffff);
 
+	regmap_write(adv7511->regmap, ADV7511_REG_EDID_I2C_ADDR,
+			edid_i2c_addr);
+
 	adv7511->i2c_edid = i2c_new_ancillary_device(i2c, "edid",
-					ADV7511_EDID_I2C_ADDR_DEFAULT);
+					adv7511->addr_edid);
 	if (IS_ERR(adv7511->i2c_edid)) {
 		ret = PTR_ERR(adv7511->i2c_edid);
 		goto uninit_regulators;
 	}
 
-	regmap_write(adv7511->regmap, ADV7511_REG_EDID_I2C_ADDR,
-		     adv7511->i2c_edid->addr << 1);
+	regmap_write(adv7511->regmap, ADV7511_REG_PACKET_I2C_ADDR,
+			pkt_i2c_addr);
 
 	adv7511->i2c_packet = i2c_new_ancillary_device(i2c, "packet",
-					ADV7511_PACKET_I2C_ADDR_DEFAULT);
+					adv7511->addr_pkt);
 	if (IS_ERR(adv7511->i2c_packet)) {
 		ret = PTR_ERR(adv7511->i2c_packet);
 		goto err_i2c_unregister_edid;
 	}
 
-	regmap_write(adv7511->regmap, ADV7511_REG_PACKET_I2C_ADDR,
-		     adv7511->i2c_packet->addr << 1);
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_I2C_ADDR,
+			cec_i2c_addr);
 
 	ret = adv7511_init_cec_regmap(adv7511);
 	if (ret)
 		goto err_i2c_unregister_packet;
 
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_I2C_ADDR,
-		     adv7511->i2c_cec->addr << 1);
-
 	INIT_WORK(&adv7511->hpd_work, adv7511_hpd_work);
 
 	if (i2c->irq) {
@@ -1225,6 +1297,7 @@
 	return 0;
 
 err_unregister_cec:
+	cec_unregister_adapter(adv7511->cec_adap);
 	i2c_unregister_device(adv7511->i2c_cec);
 	if (adv7511->cec_clk)
 		clk_disable_unprepare(adv7511->cec_clk);
@@ -1234,6 +1307,35 @@
 	i2c_unregister_device(adv7511->i2c_edid);
 uninit_regulators:
 	adv7511_uninit_regulators(adv7511);
+	endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
+	if (endpoint)
+		remote_node = of_graph_get_remote_port_parent(endpoint);
+
+	if (!remote_node)
+		return ret;
+
+	/* Find remote's endpoint connected to us and detach it */
+	endpoint = NULL;
+	while ((endpoint = of_graph_get_next_endpoint(remote_node,
+						      endpoint))) {
+		struct device_node *us;
+
+		us = of_graph_get_remote_port_parent(endpoint);
+		if (us == dev->of_node)
+			break;
+	}
+	of_node_put(remote_node);
+
+	if (!endpoint)
+		return ret;
+
+	of_changeset_init(&ocs);
+	of_changeset_detach_node(&ocs, endpoint);
+	ret = of_changeset_apply(&ocs);
+	if (!ret)
+		dev_warn(dev,
+			 "Probe failed. Remote port '%s' disabled\n",
+			 remote_node->full_name);
 
 	return ret;
 }
@@ -1242,7 +1344,7 @@
 {
 	struct adv7511 *adv7511 = i2c_get_clientdata(i2c);
 
-	if (adv7511->type == ADV7533)
+	if (adv7511->type == ADV7533 || adv7511->type == ADV7535)
 		adv7533_detach_dsi(adv7511);
 	i2c_unregister_device(adv7511->i2c_cec);
 	if (adv7511->cec_clk)
@@ -1268,6 +1370,7 @@
 	{ "adv7513", ADV7511 },
 #ifdef CONFIG_DRM_I2C_ADV7533
 	{ "adv7533", ADV7533 },
+	{ "adv7535", ADV7535 },
 #endif
 	{ }
 };
@@ -1279,6 +1382,7 @@
 	{ .compatible = "adi,adv7513", .data = (void *)ADV7511 },
 #ifdef CONFIG_DRM_I2C_ADV7533
 	{ .compatible = "adi,adv7533", .data = (void *)ADV7533 },
+	{ .compatible = "adi,adv7535", .data = (void *)ADV7535 },
 #endif
 	{ }
 };
@@ -1300,10 +1404,21 @@
 
 static int __init adv7511_init(void)
 {
-	if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
-		mipi_dsi_driver_register(&adv7533_dsi_driver);
+	int ret;
 
-	return i2c_add_driver(&adv7511_driver);
+	if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) {
+		ret = mipi_dsi_driver_register(&adv7533_dsi_driver);
+		if (ret)
+			return ret;
+	}
+
+	ret = i2c_add_driver(&adv7511_driver);
+	if (ret) {
+		if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
+			mipi_dsi_driver_unregister(&adv7533_dsi_driver);
+	}
+
+	return ret;
 }
 module_init(adv7511_init);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/adv7511/adv7533.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/adv7511/adv7533.c
@@ -26,10 +26,8 @@
 
 static void adv7511_dsi_config_timing_gen(struct adv7511 *adv)
 {
-	struct mipi_dsi_device *dsi = adv->dsi;
 	struct drm_display_mode *mode = &adv->curr_mode;
 	unsigned int hsw, hfp, hbp, vsw, vfp, vbp;
-	u8 clock_div_by_lanes[] = { 6, 4, 3 };	/* 2, 3, 4 lanes */
 
 	hsw = mode->hsync_end - mode->hsync_start;
 	hfp = mode->hsync_start - mode->hdisplay;
@@ -38,9 +36,10 @@
 	vfp = mode->vsync_start - mode->vdisplay;
 	vbp = mode->vtotal - mode->vsync_end;
 
-	/* set pixel clock divider mode */
-	regmap_write(adv->regmap_cec, 0x16,
-		     clock_div_by_lanes[dsi->lanes - 2] << 3);
+	/* 03-01 Enable Internal Timing Generator */
+	regmap_write(adv->regmap_cec, 0x27, 0xcb);
+
+	/* 03-08 Timing Configuration */
 
 	/* horizontal porch params */
 	regmap_write(adv->regmap_cec, 0x28, mode->htotal >> 4);
@@ -61,35 +60,66 @@
 	regmap_write(adv->regmap_cec, 0x35, (vfp << 4) & 0xff);
 	regmap_write(adv->regmap_cec, 0x36, vbp >> 4);
 	regmap_write(adv->regmap_cec, 0x37, (vbp << 4) & 0xff);
+
+	/* 03-03 Reset Internal Timing Generator */
+	regmap_write(adv->regmap_cec, 0x27, 0xcb);
+	regmap_write(adv->regmap_cec, 0x27, 0x8b);
+	regmap_write(adv->regmap_cec, 0x27, 0xcb);
+
 }
 
 void adv7533_dsi_power_on(struct adv7511 *adv)
 {
 	struct mipi_dsi_device *dsi = adv->dsi;
+	struct drm_display_mode *mode = &adv->curr_mode;
+	u8 clock_div_by_lanes[] = { 6, 4, 3 };	/* 2, 3, 4 lanes */
 
-	if (adv->use_timing_gen)
-		adv7511_dsi_config_timing_gen(adv);
+	/* Gate DSI LP Oscillator */
+	regmap_update_bits(adv->regmap_cec, 0x03, 0x02, 0x00);
 
-	/* set number of dsi lanes */
+	/* 01-03 Initialisation (Fixed) Registers */
+	regmap_register_patch(adv->regmap_cec, adv7533_cec_fixed_registers,
+			      ARRAY_SIZE(adv7533_cec_fixed_registers));
+
+	/* 02-04 DSI Lanes */
 	regmap_write(adv->regmap_cec, 0x1c, dsi->lanes << 4);
 
-	if (adv->use_timing_gen) {
-		/* reset internal timing generator */
-		regmap_write(adv->regmap_cec, 0x27, 0xcb);
-		regmap_write(adv->regmap_cec, 0x27, 0x8b);
-		regmap_write(adv->regmap_cec, 0x27, 0xcb);
-	} else {
-		/* disable internal timing generator */
+	/* 02-05 DSI Pixel Clock Divider */
+	regmap_write(adv->regmap_cec, 0x16,
+		     clock_div_by_lanes[dsi->lanes - 2] << 3);
+
+	if (adv->use_timing_gen)
+		adv7511_dsi_config_timing_gen(adv);
+	else
 		regmap_write(adv->regmap_cec, 0x27, 0x0b);
-	}
 
-	/* enable hdmi */
+	/* 04-01 HDMI Output */
+	regmap_write(adv->regmap, 0xaf, 0x16);
+
+	/* 09-03 AVI Infoframe - RGB - 16-9 Aspect Ratio */
+	regmap_write(adv->regmap, ADV7511_REG_AVI_INFOFRAME(0), 0x10);
+	if (FORMAT_RATIO(mode->hdisplay, mode->vdisplay) == RATIO_16_9)
+		regmap_write(adv->regmap, ADV7511_REG_AVI_INFOFRAME(1), 0x28);
+	else if (FORMAT_RATIO(mode->hdisplay, mode->vdisplay) == RATIO_4_3)
+		regmap_write(adv->regmap, ADV7511_REG_AVI_INFOFRAME(1), 0x18);
+
+	/* 04-04 GC Packet Enable */
+	regmap_write(adv->regmap, ADV7511_REG_PACKET_ENABLE0, 0x80);
+
+	/* 04-06 GC Colour Depth - 24 Bit */
+	regmap_write(adv->regmap, 0x4c, 0x04);
+
+	/* 04-09 Down Dither Output Colour Depth - 8 Bit (default) */
+	regmap_write(adv->regmap, 0x49, 0x00);
+
+	/* 07-01 CEC Power Mode - Always Active */
+	regmap_write(adv->regmap_cec, 0xbe, 0x3d);
+
+	/* 04-03 HDMI Output Enable  */
 	regmap_write(adv->regmap_cec, 0x03, 0x89);
 	/* disable test mode */
 	regmap_write(adv->regmap_cec, 0x55, 0x00);
 
-	regmap_register_patch(adv->regmap_cec, adv7533_cec_fixed_registers,
-			      ARRAY_SIZE(adv7533_cec_fixed_registers));
 }
 
 void adv7533_dsi_power_off(struct adv7511 *adv)
@@ -100,28 +130,6 @@
 	regmap_write(adv->regmap_cec, 0x27, 0x0b);
 }
 
-void adv7533_mode_set(struct adv7511 *adv, const struct drm_display_mode *mode)
-{
-	struct mipi_dsi_device *dsi = adv->dsi;
-	int lanes, ret;
-
-	if (adv->num_dsi_lanes != 4)
-		return;
-
-	if (mode->clock > 80000)
-		lanes = 4;
-	else
-		lanes = 3;
-
-	if (lanes != dsi->lanes) {
-		mipi_dsi_detach(dsi);
-		dsi->lanes = lanes;
-		ret = mipi_dsi_attach(dsi);
-		if (ret)
-			dev_err(&dsi->dev, "failed to change host lanes\n");
-	}
-}
-
 int adv7533_patch_registers(struct adv7511 *adv)
 {
 	return regmap_register_patch(adv->regmap,
@@ -143,7 +151,7 @@
 	struct mipi_dsi_device *dsi;
 	int ret = 0;
 	const struct mipi_dsi_device_info info = { .type = "adv7533",
-						   .channel = 0,
+						   .channel = adv->channel_id,
 						   .node = NULL,
 						 };
 
@@ -189,14 +197,24 @@
 
 int adv7533_parse_dt(struct device_node *np, struct adv7511 *adv)
 {
-	u32 num_lanes;
+	struct device *dev = &adv->i2c_main->dev;
+	u32 num_lanes = 0, channel_id = 0;
 
+	of_property_read_u32(np, "adi,dsi-channel", &channel_id);
 	of_property_read_u32(np, "adi,dsi-lanes", &num_lanes);
 
-	if (num_lanes < 1 || num_lanes > 4)
+	if (num_lanes < 1 || num_lanes > 4) {
+		dev_err(dev, "Invalid dsi-lanes: %d\n", num_lanes);
 		return -EINVAL;
+	}
+
+	if (channel_id > 3) {
+		dev_err(dev, "Invalid dsi-channel: %d\n", channel_id);
+		return -EINVAL;
+	}
 
 	adv->num_dsi_lanes = num_lanes;
+	adv->channel_id = channel_id;
 
 	adv->host_node = of_graph_get_remote_node(np, 0, 0);
 	if (!adv->host_node)
@@ -207,6 +225,10 @@
 	adv->use_timing_gen = !of_property_read_bool(np,
 						"adi,disable-timing-generator");
 
+	of_property_read_u32(np, "adi,addr-cec", &adv->addr_cec);
+	of_property_read_u32(np, "adi,addr-edid", &adv->addr_edid);
+	of_property_read_u32(np, "adi,addr-pkt", &adv->addr_pkt);
+
 	/* TODO: Check if these need to be parsed by DT or not */
 	adv->rgb = true;
 	adv->embedded_sync = false;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/analogix-anx78xx.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/analogix-anx78xx.c
@@ -715,7 +715,9 @@
 	/* 1.0V digital core power regulator  */
 	pdata->dvdd10 = devm_regulator_get(dev, "dvdd10");
 	if (IS_ERR(pdata->dvdd10)) {
-		DRM_ERROR("DVDD10 regulator not found\n");
+		if (PTR_ERR(pdata->dvdd10) != -EPROBE_DEFER)
+			DRM_ERROR("DVDD10 regulator not found\n");
+
 		return PTR_ERR(pdata->dvdd10);
 	}
 
@@ -1332,7 +1334,9 @@
 
 	err = anx78xx_init_pdata(anx78xx);
 	if (err) {
-		DRM_ERROR("Failed to initialize pdata: %d\n", err);
+		if (err != -EPROBE_DEFER)
+			DRM_ERROR("Failed to initialize pdata: %d\n", err);
+
 		return err;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1630,13 +1630,23 @@
 				       struct drm_dp_aux_msg *msg)
 {
 	struct analogix_dp_device *dp = to_dp(aux);
+	int ret;
+
+	pm_runtime_get_sync(dp->dev);
+
+	ret = analogix_dp_detect_hpd(dp);
+	if (ret)
+		goto out;
+
+	ret = analogix_dp_transfer(dp, msg);
+out:
+	pm_runtime_put(dp->dev);
 
-	return analogix_dp_transfer(dp, msg);
+	return ret;
 }
 
 struct analogix_dp_device *
-analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
-		 struct analogix_dp_plat_data *plat_data)
+analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
 {
 	struct platform_device *pdev = to_platform_device(dev);
 	struct analogix_dp_device *dp;
@@ -1697,8 +1707,10 @@
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
 	dp->reg_base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(dp->reg_base))
-		return ERR_CAST(dp->reg_base);
+	if (IS_ERR(dp->reg_base)) {
+		ret = PTR_ERR(dp->reg_base);
+		goto err_disable_clk;
+	}
 
 	dp->force_hpd = of_property_read_bool(dev->of_node, "force-hpd");
 
@@ -1710,7 +1722,8 @@
 	if (IS_ERR(dp->hpd_gpiod)) {
 		dev_err(dev, "error getting HDP GPIO: %ld\n",
 			PTR_ERR(dp->hpd_gpiod));
-		return ERR_CAST(dp->hpd_gpiod);
+		ret = PTR_ERR(dp->hpd_gpiod);
+		goto err_disable_clk;
 	}
 
 	if (dp->hpd_gpiod) {
@@ -1730,7 +1743,8 @@
 
 	if (dp->irq == -ENXIO) {
 		dev_err(&pdev->dev, "failed to get irq\n");
-		return ERR_PTR(-ENODEV);
+		ret = -ENODEV;
+		goto err_disable_clk;
 	}
 
 	ret = devm_request_threaded_irq(&pdev->dev, dp->irq,
@@ -1739,22 +1753,34 @@
 					irq_flags, "analogix-dp", dp);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to request irq\n");
-		goto err_disable_pm_runtime;
+		goto err_disable_clk;
 	}
 	disable_irq(dp->irq);
 
+	return dp;
+
+err_disable_clk:
+	clk_disable_unprepare(dp->clock);
+	return ERR_PTR(ret);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_probe);
+
+int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev)
+{
+	int ret;
+
 	dp->drm_dev = drm_dev;
 	dp->encoder = dp->plat_data->encoder;
 
 	dp->aux.name = "DP-AUX";
 	dp->aux.transfer = analogix_dpaux_transfer;
-	dp->aux.dev = &pdev->dev;
+	dp->aux.dev = dp->dev;
 
 	ret = drm_dp_aux_register(&dp->aux);
 	if (ret)
-		return ERR_PTR(ret);
+		return ret;
 
-	pm_runtime_enable(dev);
+	pm_runtime_enable(dp->dev);
 
 	ret = analogix_dp_create_bridge(drm_dev, dp);
 	if (ret) {
@@ -1762,13 +1788,12 @@
 		goto err_disable_pm_runtime;
 	}
 
-	return dp;
+	return 0;
 
 err_disable_pm_runtime:
+	pm_runtime_disable(dp->dev);
 
-	pm_runtime_disable(dev);
-
-	return ERR_PTR(ret);
+	return ret;
 }
 EXPORT_SYMBOL_GPL(analogix_dp_bind);
 
@@ -1785,20 +1810,19 @@
 
 	drm_dp_aux_unregister(&dp->aux);
 	pm_runtime_disable(dp->dev);
-	clk_disable_unprepare(dp->clock);
 }
 EXPORT_SYMBOL_GPL(analogix_dp_unbind);
 
+void analogix_dp_remove(struct analogix_dp_device *dp)
+{
+	clk_disable_unprepare(dp->clock);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_remove);
+
 #ifdef CONFIG_PM
 int analogix_dp_suspend(struct analogix_dp_device *dp)
 {
 	clk_disable_unprepare(dp->clock);
-
-	if (dp->plat_data->panel) {
-		if (drm_panel_unprepare(dp->plat_data->panel))
-			DRM_ERROR("failed to turnoff the panel\n");
-	}
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(analogix_dp_suspend);
@@ -1813,13 +1837,6 @@
 		return ret;
 	}
 
-	if (dp->plat_data->panel) {
-		if (drm_panel_prepare(dp->plat_data->panel)) {
-			DRM_ERROR("failed to setup the panel\n");
-			return -EBUSY;
-		}
-	}
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(analogix_dp_resume);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
@@ -1086,11 +1086,21 @@
 	if (!blocking)
 		return 0;
 
+	/*
+	 * db[1]!=0: entering PSR, wait for fully active remote frame buffer.
+	 * db[1]==0: exiting PSR, wait for either
+	 *  (a) ACTIVE_RESYNC - the sink "must display the
+	 *      incoming active frames from the Source device with no visible
+	 *      glitches and/or artifacts", even though timings may still be
+	 *      re-synchronizing; or
+	 *  (b) INACTIVE - the transition is fully complete.
+	 */
 	ret = readx_poll_timeout(analogix_dp_get_psr_status, dp, psr_status,
 		psr_status >= 0 &&
 		((vsc->db[1] && psr_status == DP_PSR_SINK_ACTIVE_RFB) ||
-		(!vsc->db[1] && psr_status == DP_PSR_SINK_INACTIVE)), 1500,
-		DP_TIMEOUT_PSR_LOOP_MS * 1000);
+		(!vsc->db[1] && (psr_status == DP_PSR_SINK_ACTIVE_RESYNC ||
+				 psr_status == DP_PSR_SINK_INACTIVE))),
+		1500, DP_TIMEOUT_PSR_LOOP_MS * 1000);
 	if (ret) {
 		dev_warn(dp->dev, "Failed to apply PSR %d\n", ret);
 		return ret;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/Kconfig
@@ -0,0 +1,25 @@
+config DRM_CDNS_MHDP
+	tristate "Cadence MHDP COMMON API driver"
+	select DRM_KMS_HELPER
+	select DRM_PANEL_BRIDGE
+	depends on OF
+	help
+	  Support Cadence MHDP API library.
+
+config DRM_CDNS_HDMI
+	tristate "Cadence HDMI DRM driver"
+	depends on DRM_CDNS_MHDP
+
+config DRM_CDNS_DP
+	tristate "Cadence DP DRM driver"
+	depends on DRM_CDNS_MHDP
+
+config DRM_CDNS_AUDIO
+	tristate "Cadence MHDP Audio driver"
+	depends on DRM_CDNS_MHDP
+
+config DRM_CDNS_HDMI_CEC
+	tristate "Cadence MHDP HDMI CEC driver"
+	depends on DRM_CDNS_HDMI
+	select CEC_CORE
+	select CEC_NOTIFIER
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/Makefile
@@ -0,0 +1,9 @@
+
+cdns_mhdp_drmcore-y := cdns-mhdp-common.o cdns-mhdp-dp.o cdns-mhdp-hdmi.o
+
+cdns_mhdp_drmcore-$(CONFIG_DRM_CDNS_HDMI) += cdns-hdmi-core.o
+cdns_mhdp_drmcore-$(CONFIG_DRM_CDNS_DP) += cdns-dp-core.o
+cdns_mhdp_drmcore-$(CONFIG_DRM_CDNS_AUDIO) += cdns-mhdp-audio.o
+cdns_mhdp_drmcore-$(CONFIG_DRM_CDNS_HDMI_CEC) += cdns-mhdp-cec.o
+
+obj-$(CONFIG_DRM_CDNS_MHDP)		+= cdns_mhdp_drmcore.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
@@ -0,0 +1,654 @@
+/*
+ * Cadence Display Port Interface (DP) driver
+ *
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ */
+#include <drm/bridge/cdns-mhdp.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc_helper.h>
+#include <drm/drm_edid.h>
+#include <drm/drm_encoder_slave.h>
+#include <drm/drm_of.h>
+#include <drm/drm_probe_helper.h>
+#include <drm/drm_vblank.h>
+#include <drm/drm_print.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/irq.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/of_device.h>
+
+/*
+ * This function only implements native DPDC reads and writes
+ */
+static ssize_t dp_aux_transfer(struct drm_dp_aux *aux,
+		struct drm_dp_aux_msg *msg)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(aux->dev);
+	bool native = msg->request & (DP_AUX_NATIVE_WRITE & DP_AUX_NATIVE_READ);
+	int ret;
+
+	/* Ignore address only message , for native */
+	if ((native == true) && ((msg->size == 0) || (msg->buffer == NULL))) {
+		msg->reply = DP_AUX_NATIVE_REPLY_ACK;
+		return msg->size;
+	}
+
+	/* msg sanity check */
+	if (msg->size > DP_AUX_MAX_PAYLOAD_BYTES) {
+		dev_err(mhdp->dev, "%s: invalid msg: size(%zu), request(%x)\n",
+			__func__, msg->size, (unsigned int)msg->request);
+		return -EINVAL;
+	}
+
+	if (msg->request == DP_AUX_NATIVE_WRITE) {
+		const u8 *buf = msg->buffer;
+		int i;
+		for (i = 0; i < msg->size; ++i) {
+			ret = cdns_mhdp_dpcd_write(mhdp,
+						   msg->address + i, buf[i]);
+			if (!ret)
+				continue;
+
+			DRM_DEV_ERROR(mhdp->dev, "Failed to write DPCD\n");
+
+			return ret;
+		}
+		msg->reply = DP_AUX_NATIVE_REPLY_ACK;
+		return msg->size;
+	}
+
+	if (msg->request == DP_AUX_NATIVE_READ) {
+		ret = cdns_mhdp_dpcd_read(mhdp, msg->address, msg->buffer,
+					  msg->size);
+		if (ret < 0)
+			return -EIO;
+		msg->reply = DP_AUX_NATIVE_REPLY_ACK;
+		return msg->size;
+	}
+
+	if (((msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_I2C_WRITE)
+	    || ((msg->request & ~DP_AUX_I2C_MOT) ==
+		DP_AUX_I2C_WRITE_STATUS_UPDATE)) {
+
+		u8 i2c_status = 0u;
+		u16 respSize = 0u;
+
+		ret =  cdns_mhdp_i2c_write(mhdp, msg->address,
+					   msg->buffer,
+					   !!(msg->request & DP_AUX_I2C_MOT),
+					   msg->size, &respSize);
+
+		if (ret < 0) {
+			dev_err(aux->dev, "cdns_mhdp_i2c_write status %d\n",
+				ret);
+			return -EIO;
+		}
+
+		ret = cdns_mhdp_get_last_i2c_status(mhdp, &i2c_status);
+		if (ret < 0) {
+			dev_err(aux->dev,
+				"cdns_mhdp_get_last_i2c_status status %d\n",
+				ret);
+			return -EIO;
+		}
+
+		switch (i2c_status) {
+		case 0u:
+			msg->reply = DP_AUX_I2C_REPLY_ACK;
+			break;
+		case 1u:
+			msg->reply = DP_AUX_I2C_REPLY_NACK;
+			break;
+		case 2u:
+			msg->reply = DP_AUX_I2C_REPLY_DEFER;
+			break;
+		default:
+			msg->reply = DP_AUX_I2C_REPLY_NACK;
+			break;
+		}
+
+		return respSize;
+	}
+
+	if ((msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_I2C_READ) {
+
+		u8 i2c_status = 0u;
+		u16 respSize = 0u;
+
+		ret = cdns_mhdp_i2c_read(mhdp, msg->address, msg->buffer,
+					 msg->size,
+					 !!(msg->request & DP_AUX_I2C_MOT),
+					 &respSize);
+		if (ret < 0)
+			return -EIO;
+
+		ret = cdns_mhdp_get_last_i2c_status(mhdp, &i2c_status);
+
+		if (ret < 0) {
+			dev_err(aux->dev,
+				"cdns_mhdp_get_last_i2c_status ret %d\n", ret);
+			return -EIO;
+		}
+
+		switch (i2c_status) {
+		case 0u:
+			msg->reply = DP_AUX_I2C_REPLY_ACK;
+			break;
+		case 1u:
+			msg->reply = DP_AUX_I2C_REPLY_NACK;
+			break;
+		case 2u:
+			msg->reply = DP_AUX_I2C_REPLY_DEFER;
+			break;
+		default:
+			msg->reply = DP_AUX_I2C_REPLY_NACK;
+			break;
+		}
+
+		return respSize;
+	}
+
+	return 0;
+}
+
+static int dp_aux_init(struct cdns_mhdp_device *mhdp,
+		  struct device *dev)
+{
+	int ret;
+
+	mhdp->dp.aux.name = "imx_dp_aux";
+	mhdp->dp.aux.dev = dev;
+	mhdp->dp.aux.transfer = dp_aux_transfer;
+
+	ret = drm_dp_aux_register(&mhdp->dp.aux);
+
+	return ret;
+}
+
+static int dp_aux_destroy(struct cdns_mhdp_device *mhdp)
+{
+	drm_dp_aux_unregister(&mhdp->dp.aux);
+	return 0;
+}
+
+static void dp_pixel_clk_reset(struct cdns_mhdp_device *mhdp)
+{
+	u32 val;
+
+	/* reset pixel clk */
+	val = cdns_mhdp_reg_read(mhdp, SOURCE_HDTX_CAR);
+	cdns_mhdp_reg_write(mhdp, SOURCE_HDTX_CAR, val & 0xFD);
+	cdns_mhdp_reg_write(mhdp, SOURCE_HDTX_CAR, val);
+}
+
+static void cdns_dp_mode_set(struct cdns_mhdp_device *mhdp)
+{
+	u32 lane_mapping = mhdp->lane_mapping;
+	int ret;
+
+	cdns_mhdp_plat_call(mhdp, pclk_rate);
+
+	/* delay for DP FW stable after pixel clock relock */
+	msleep(50);
+
+	dp_pixel_clk_reset(mhdp);
+
+	/* Get DP Caps  */
+	ret = drm_dp_dpcd_read(&mhdp->dp.aux, DP_DPCD_REV, mhdp->dp.dpcd,
+			       DP_RECEIVER_CAP_SIZE);
+	if (ret < 0) {
+		DRM_ERROR("Failed to get caps %d\n", ret);
+		return;
+	}
+
+	mhdp->dp.rate = drm_dp_max_link_rate(mhdp->dp.dpcd);
+	mhdp->dp.num_lanes = drm_dp_max_lane_count(mhdp->dp.dpcd);
+
+	/* check the max link rate */
+	if (mhdp->dp.rate > CDNS_DP_MAX_LINK_RATE)
+		mhdp->dp.rate = CDNS_DP_MAX_LINK_RATE;
+
+	/* Initialize link rate/num_lanes as panel max link rate/max_num_lanes */
+	cdns_mhdp_plat_call(mhdp, phy_set);
+
+	/* Video off */
+	ret = cdns_mhdp_set_video_status(mhdp, CONTROL_VIDEO_IDLE);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed to valid video %d\n", ret);
+		return;
+	}
+
+	/* Line swaping */
+	cdns_mhdp_reg_write(mhdp, LANES_CONFIG, 0x00400000 | lane_mapping);
+
+	/* Set DP host capability */
+	ret = cdns_mhdp_set_host_cap(mhdp);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed to set host cap %d\n", ret);
+		return;
+	}
+
+	ret = cdns_mhdp_config_video(mhdp);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed to config video %d\n", ret);
+		return;
+	}
+
+	return;
+}
+
+/* -----------------------------------------------------------------------------
+ * dp TX Setup
+ */
+static enum drm_connector_status
+cdns_dp_connector_detect(struct drm_connector *connector, bool force)
+{
+	struct cdns_mhdp_device *mhdp = container_of(connector,
+					struct cdns_mhdp_device, connector.base);
+	u8 hpd = 0xf;
+
+	hpd = cdns_mhdp_read_hpd(mhdp);
+	if (hpd == 1)
+		/* Cable Connected */
+		return connector_status_connected;
+	else if (hpd == 0)
+		/* Cable Disconnedted */
+		return connector_status_disconnected;
+	else {
+		/* Cable status unknown */
+		DRM_INFO("Unknow cable status, hdp=%u\n", hpd);
+		return connector_status_unknown;
+	}
+}
+
+static int cdns_dp_connector_get_modes(struct drm_connector *connector)
+{
+	struct cdns_mhdp_device *mhdp = container_of(connector,
+					struct cdns_mhdp_device, connector.base);
+	int num_modes = 0;
+	struct edid *edid;
+
+	edid = drm_do_get_edid(&mhdp->connector.base,
+				   cdns_mhdp_get_edid_block, mhdp);
+	if (edid) {
+		dev_info(mhdp->dev, "%x,%x,%x,%x,%x,%x,%x,%x\n",
+			 edid->header[0], edid->header[1],
+			 edid->header[2], edid->header[3],
+			 edid->header[4], edid->header[5],
+			 edid->header[6], edid->header[7]);
+		drm_connector_update_edid_property(connector, edid);
+		num_modes = drm_add_edid_modes(connector, edid);
+		kfree(edid);
+	}
+
+	if (num_modes == 0)
+		DRM_ERROR("Invalid edid\n");
+	return num_modes;
+}
+
+static const struct drm_connector_funcs cdns_dp_connector_funcs = {
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.detect = cdns_dp_connector_detect,
+	.destroy = drm_connector_cleanup,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static const struct drm_connector_helper_funcs cdns_dp_connector_helper_funcs = {
+	.get_modes = cdns_dp_connector_get_modes,
+};
+
+static int cdns_dp_bridge_attach(struct drm_bridge *bridge)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	struct drm_encoder *encoder = bridge->encoder;
+	struct drm_connector *connector = &mhdp->connector.base;
+
+	connector->interlace_allowed = 1;
+
+	if (mhdp->is_hpd)
+		connector->polled = DRM_CONNECTOR_POLL_HPD;
+	else
+		connector->polled = DRM_CONNECTOR_POLL_CONNECT |
+		DRM_CONNECTOR_POLL_DISCONNECT;
+
+	drm_connector_helper_add(connector, &cdns_dp_connector_helper_funcs);
+
+	drm_connector_init(bridge->dev, connector, &cdns_dp_connector_funcs,
+			   DRM_MODE_CONNECTOR_DisplayPort);
+
+	drm_connector_attach_encoder(connector, encoder);
+
+	return 0;
+}
+
+static enum drm_mode_status
+cdns_dp_bridge_mode_valid(struct drm_bridge *bridge,
+			  const struct drm_display_mode *mode)
+{
+	enum drm_mode_status mode_status = MODE_OK;
+
+	/* We don't support double-clocked modes */
+	if (mode->flags & DRM_MODE_FLAG_DBLCLK ||
+			mode->flags & DRM_MODE_FLAG_INTERLACE)
+		return MODE_BAD;
+
+	/* MAX support pixel clock rate 594MHz */
+	if (mode->clock > 594000)
+		return MODE_CLOCK_HIGH;
+
+	/* 5120 x 2160 is the maximum supported resulution */
+	if (mode->hdisplay > 5120)
+		return MODE_BAD_HVALUE;
+
+	if (mode->vdisplay > 2160)
+		return MODE_BAD_VVALUE;
+
+	return mode_status;
+}
+
+static void cdns_dp_bridge_mode_set(struct drm_bridge *bridge,
+				    const struct drm_display_mode *orig_mode,
+				    const struct drm_display_mode *mode)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	struct drm_display_info *display_info = &mhdp->connector.base.display_info;
+	struct video_info *video = &mhdp->video_info;
+
+	switch (display_info->bpc) {
+	case 10:
+		video->color_depth = 10;
+		break;
+	case 6:
+		video->color_depth = 6;
+		break;
+	default:
+		video->color_depth = 8;
+		break;
+	}
+
+	video->color_fmt = PXL_RGB;
+	video->v_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NVSYNC);
+	video->h_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NHSYNC);
+
+	DRM_INFO("Mode: %dx%dp%d\n", mode->hdisplay, mode->vdisplay, mode->clock); 
+	memcpy(&mhdp->mode, mode, sizeof(struct drm_display_mode));
+
+	mutex_lock(&mhdp->lock);
+	cdns_dp_mode_set(mhdp);
+	mutex_unlock(&mhdp->lock);
+
+	/* reset force mode set flag */
+	mhdp->force_mode_set = false;
+}
+
+static void cdn_dp_bridge_enable(struct drm_bridge *bridge)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	int ret;
+
+	/* Link trainning */
+	ret = cdns_mhdp_train_link(mhdp);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed link train %d\n", ret);
+		return;
+	}
+
+	ret = cdns_mhdp_set_video_status(mhdp, CONTROL_VIDEO_VALID);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed to valid video %d\n", ret);
+		return;
+	}
+}
+
+static void cdn_dp_bridge_disable(struct drm_bridge *bridge)
+{	
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+
+	cdns_mhdp_set_video_status(mhdp, CONTROL_VIDEO_IDLE);
+}
+
+static const struct drm_bridge_funcs cdns_dp_bridge_funcs = {
+	.attach = cdns_dp_bridge_attach,
+	.enable = cdn_dp_bridge_enable,
+	.disable = cdn_dp_bridge_disable,
+	.mode_set = cdns_dp_bridge_mode_set,
+	.mode_valid = cdns_dp_bridge_mode_valid,
+};
+
+static void hotplug_work_func(struct work_struct *work)
+{
+	struct cdns_mhdp_device *mhdp = container_of(work,
+					   struct cdns_mhdp_device, hotplug_work.work);
+	struct drm_connector *connector = &mhdp->connector.base;
+
+	drm_helper_hpd_irq_event(connector->dev);
+
+	if (connector->status == connector_status_connected) {
+		/* Cable connedted  */
+		DRM_INFO("HDMI/DP Cable Plug In\n");
+		enable_irq(mhdp->irq[IRQ_OUT]);
+	} else if (connector->status == connector_status_disconnected) {
+		/* Cable Disconnedted  */
+		DRM_INFO("HDMI/DP Cable Plug Out\n");
+		/* force mode set for cable replugin to recovery DP video modes */
+		mhdp->force_mode_set = true;
+		enable_irq(mhdp->irq[IRQ_IN]);
+	}
+}
+
+static irqreturn_t cdns_dp_irq_thread(int irq, void *data)
+{
+	struct cdns_mhdp_device *mhdp = data;
+
+	disable_irq_nosync(irq);
+
+	mod_delayed_work(system_wq, &mhdp->hotplug_work,
+			msecs_to_jiffies(HOTPLUG_DEBOUNCE_MS));
+
+	return IRQ_HANDLED;
+}
+
+static void cdns_dp_parse_dt(struct cdns_mhdp_device *mhdp)
+{
+	struct device_node *of_node = mhdp->dev->of_node;
+	int ret;
+
+	ret = of_property_read_u32(of_node, "lane-mapping",
+						&mhdp->lane_mapping);
+	if (ret) {
+		mhdp->lane_mapping = 0xc6;
+		dev_warn(mhdp->dev, "Failed to get lane_mapping - using default 0xc6\n");
+	}
+	dev_info(mhdp->dev, "lane-mapping 0x%02x\n", mhdp->lane_mapping);
+}
+
+static int __cdns_dp_probe(struct platform_device *pdev,
+		struct cdns_mhdp_device *mhdp)
+{
+	struct device *dev = &pdev->dev;
+	struct resource *iores = NULL;
+	int ret;
+
+	mutex_init(&mhdp->lock);
+	mutex_init(&mhdp->iolock);
+
+	INIT_DELAYED_WORK(&mhdp->hotplug_work, hotplug_work_func);
+
+	iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (iores) {
+		mhdp->regs_base = devm_ioremap(dev, iores->start,
+					       resource_size(iores));
+		if (IS_ERR(mhdp->regs_base))
+			return -ENOMEM;
+	}
+
+	iores = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+	if (iores) {
+		mhdp->regs_sec = devm_ioremap(dev, iores->start,
+					      resource_size(iores));
+		if (IS_ERR(mhdp->regs_sec))
+			return -ENOMEM;
+	}
+
+	mhdp->is_hpd = true;
+	mhdp->is_ls1028a = false;
+
+	mhdp->irq[IRQ_IN] = platform_get_irq_byname(pdev, "plug_in");
+	if (mhdp->irq[IRQ_IN] < 0) {
+		mhdp->is_hpd = false;
+		dev_info(dev, "No plug_in irq number\n");
+	}
+
+	mhdp->irq[IRQ_OUT] = platform_get_irq_byname(pdev, "plug_out");
+	if (mhdp->irq[IRQ_OUT] < 0) {
+		mhdp->is_hpd = false;
+		dev_info(dev, "No plug_out irq number\n");
+	}
+
+	cdns_dp_parse_dt(mhdp);
+
+	if (of_device_is_compatible(dev->of_node, "cdn,ls1028a-dp"))
+		mhdp->is_ls1028a = true;
+
+	cdns_mhdp_plat_call(mhdp, power_on);
+
+	cdns_mhdp_plat_call(mhdp, firmware_init);
+
+	/* DP FW alive check */
+	ret = cdns_mhdp_check_alive(mhdp);
+	if (ret == false) {
+		DRM_ERROR("NO dp FW running\n");
+		return -ENXIO;
+	}
+
+	/* DP PHY init before AUX init */
+	cdns_mhdp_plat_call(mhdp, phy_set);
+
+	/* Enable Hotplug Detect IRQ thread */
+	if (mhdp->is_hpd) {
+		irq_set_status_flags(mhdp->irq[IRQ_IN], IRQ_NOAUTOEN);
+		ret = devm_request_threaded_irq(dev, mhdp->irq[IRQ_IN],
+						NULL, cdns_dp_irq_thread,
+						IRQF_ONESHOT, dev_name(dev),
+						mhdp);
+	
+		if (ret) {
+			dev_err(dev, "can't claim irq %d\n",
+					mhdp->irq[IRQ_IN]);
+			return -EINVAL;
+		}
+
+		irq_set_status_flags(mhdp->irq[IRQ_OUT], IRQ_NOAUTOEN);
+		ret = devm_request_threaded_irq(dev, mhdp->irq[IRQ_OUT],
+						NULL, cdns_dp_irq_thread,
+						IRQF_ONESHOT, dev_name(dev),
+						mhdp);
+
+		if (ret) {
+			dev_err(dev, "can't claim irq %d\n",
+					mhdp->irq[IRQ_OUT]);
+			return -EINVAL;
+		}
+
+		if (cdns_mhdp_read_hpd(mhdp))
+			enable_irq(mhdp->irq[IRQ_OUT]);
+		else
+			enable_irq(mhdp->irq[IRQ_IN]);
+	}
+
+	mhdp->bridge.base.driver_private = mhdp;
+	mhdp->bridge.base.funcs = &cdns_dp_bridge_funcs;
+#ifdef CONFIG_OF
+	mhdp->bridge.base.of_node = dev->of_node;
+#endif
+
+	dev_set_drvdata(dev, mhdp);
+	
+	/* register audio driver */
+	cdns_mhdp_register_audio_driver(dev);
+
+	dp_aux_init(mhdp, dev);
+
+	return 0;
+}
+
+static void __cdns_dp_remove(struct cdns_mhdp_device *mhdp)
+{
+	cdns_mhdp_plat_call(mhdp, power_off);
+	dp_aux_destroy(mhdp);
+	cdns_mhdp_unregister_audio_driver(mhdp->dev);
+}
+
+/* -----------------------------------------------------------------------------
+ * Probe/remove API, used from platforms based on the DRM bridge API.
+ */
+int cdns_dp_probe(struct platform_device *pdev,
+		  struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	ret = __cdns_dp_probe(pdev, mhdp);
+	if (ret)
+		return ret;
+
+	drm_bridge_add(&mhdp->bridge.base);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cdns_dp_probe);
+
+void cdns_dp_remove(struct platform_device *pdev)
+{
+	struct cdns_mhdp_device *mhdp = platform_get_drvdata(pdev);
+
+	drm_bridge_remove(&mhdp->bridge.base);
+
+	__cdns_dp_remove(mhdp);
+}
+EXPORT_SYMBOL_GPL(cdns_dp_remove);
+
+/* -----------------------------------------------------------------------------
+ * Bind/unbind API, used from platforms based on the component framework.
+ */
+int cdns_dp_bind(struct platform_device *pdev, struct drm_encoder *encoder,
+		struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	ret = __cdns_dp_probe(pdev, mhdp);
+	if (ret < 0)
+		return ret;
+
+	ret = drm_bridge_attach(encoder, &mhdp->bridge.base, NULL);
+	if (ret) {
+		cdns_dp_remove(pdev);
+		DRM_ERROR("Failed to initialize bridge with drm\n");
+		return ret;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cdns_dp_bind);
+
+void cdns_dp_unbind(struct device *dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+
+	__cdns_dp_remove(mhdp);
+}
+EXPORT_SYMBOL_GPL(cdns_dp_unbind);
+
+MODULE_AUTHOR("Sandor Yu <sandor.yu@nxp.com>");
+MODULE_DESCRIPTION("Cadence Display Port transmitter driver");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:cdn-dp");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
@@ -0,0 +1,755 @@
+/*
+ * Cadence High-Definition Multimedia Interface (HDMI) driver
+ *
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ */
+#include <drm/bridge/cdns-mhdp.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_edid.h>
+#include <drm/drm_encoder_slave.h>
+#include <drm/drm_of.h>
+#include <drm/drm_probe_helper.h>
+#include <drm/drm_print.h>
+#include <drm/drm_scdc_helper.h>
+#include <drm/drm_vblank.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/hdmi.h>
+#include <linux/irq.h>
+#include <linux/module.h>
+#include <linux/mfd/syscon.h>
+#include <linux/mutex.h>
+#include <linux/of_device.h>
+
+static void hdmi_sink_config(struct cdns_mhdp_device *mhdp)
+{
+	struct drm_scdc *scdc = &mhdp->connector.base.display_info.hdmi.scdc;
+	u8 buff = 0;
+
+	/* return if hdmi work in DVI mode */
+	if (mhdp->hdmi.hdmi_type == MODE_DVI)
+		return;
+
+	/* check sink support SCDC or not */
+	if (scdc->supported != true) {
+		DRM_INFO("Sink Not Support SCDC\n");
+		return;
+	}
+
+	if (mhdp->hdmi.char_rate > 340000) {
+		/*
+		 * TMDS Character Rate above 340MHz should working in HDMI2.0
+		 * Enable scrambling and TMDS_Bit_Clock_Ratio
+		 */
+		buff = SCDC_TMDS_BIT_CLOCK_RATIO_BY_40 | SCDC_SCRAMBLING_ENABLE;
+		mhdp->hdmi.hdmi_type = MODE_HDMI_2_0;
+	} else  if (scdc->scrambling.low_rates) {
+		/*
+		 * Enable scrambling and HDMI2.0 when scrambling capability of sink
+		 * be indicated in the HF-VSDB LTE_340Mcsc_scramble bit
+		 */
+		buff = SCDC_SCRAMBLING_ENABLE;
+		mhdp->hdmi.hdmi_type = MODE_HDMI_2_0;
+	}
+
+	/* TMDS config */
+	cdns_hdmi_scdc_write(mhdp, 0x20, buff);
+}
+
+static void hdmi_lanes_config(struct cdns_mhdp_device *mhdp)
+{
+	/* Line swaping */
+	cdns_mhdp_reg_write(mhdp, LANES_CONFIG, 0x00400000 | mhdp->lane_mapping);
+}
+
+static int hdmi_avi_info_set(struct cdns_mhdp_device *mhdp,
+			     struct drm_display_mode *mode)
+{
+	struct hdmi_avi_infoframe frame;
+	int format = mhdp->video_info.color_fmt;
+	struct drm_connector_state *conn_state = mhdp->connector.base.state;
+	struct drm_display_mode *adj_mode;
+	enum hdmi_quantization_range qr;
+	u8 buf[32];
+	int ret;
+
+	/* Initialise info frame from DRM mode */
+	drm_hdmi_avi_infoframe_from_display_mode(&frame, &mhdp->connector.base,
+						 mode);
+
+	switch (format) {
+	case YCBCR_4_4_4:
+		frame.colorspace = HDMI_COLORSPACE_YUV444;
+		break;
+	case YCBCR_4_2_2:
+		frame.colorspace = HDMI_COLORSPACE_YUV422;
+		break;
+	case YCBCR_4_2_0:
+		frame.colorspace = HDMI_COLORSPACE_YUV420;
+		break;
+	default:
+		frame.colorspace = HDMI_COLORSPACE_RGB;
+		break;
+	}
+
+	drm_hdmi_avi_infoframe_colorspace(&frame, conn_state);
+
+	adj_mode = &mhdp->bridge.base.encoder->crtc->state->adjusted_mode;
+
+	qr = drm_default_rgb_quant_range(adj_mode);
+
+	drm_hdmi_avi_infoframe_quant_range(&frame, &mhdp->connector.base,
+					   adj_mode, qr);
+
+	ret = hdmi_avi_infoframe_check(&frame);
+	if (WARN_ON(ret))
+		return false;
+
+	ret = hdmi_avi_infoframe_pack(&frame, buf + 1, sizeof(buf) - 1);
+	if (ret < 0) {
+		DRM_ERROR("failed to pack AVI infoframe: %d\n", ret);
+		return -1;
+	}
+
+	buf[0] = 0;
+	cdns_mhdp_infoframe_set(mhdp, 0, sizeof(buf), buf, HDMI_INFOFRAME_TYPE_AVI);
+	return 0;
+}
+
+static void hdmi_vendor_info_set(struct cdns_mhdp_device *mhdp,
+				struct drm_display_mode *mode)
+{
+	struct hdmi_vendor_infoframe frame;
+	u8 buf[32];
+	int ret;
+
+	/* Initialise vendor frame from DRM mode */
+	ret = drm_hdmi_vendor_infoframe_from_display_mode(&frame, &mhdp->connector.base, mode);
+	if (ret < 0) {
+		DRM_INFO("No vendor infoframe\n");
+		return;
+	}
+
+	ret = hdmi_vendor_infoframe_pack(&frame, buf + 1, sizeof(buf) - 1);
+	if (ret < 0) {
+		DRM_WARN("Unable to pack vendor infoframe: %d\n", ret);
+		return;
+	}
+
+	buf[0] = 0;
+	cdns_mhdp_infoframe_set(mhdp, 3, sizeof(buf), buf, HDMI_INFOFRAME_TYPE_VENDOR);
+}
+
+static void hdmi_drm_info_set(struct cdns_mhdp_device *mhdp)
+{
+	struct drm_connector_state *conn_state;
+	struct hdmi_drm_infoframe frame;
+	u8 buf[32];
+	int ret;
+
+	conn_state = mhdp->connector.base.state;
+
+	if (!conn_state->hdr_output_metadata)
+		return;
+
+	ret = drm_hdmi_infoframe_set_hdr_metadata(&frame, conn_state);
+	if (ret < 0) {
+		DRM_DEBUG_KMS("couldn't set HDR metadata in infoframe\n");
+		return;
+	}
+
+	ret = hdmi_drm_infoframe_pack(&frame, buf + 1, sizeof(buf) - 1);
+	if (ret < 0) {
+		DRM_DEBUG_KMS("couldn't pack HDR infoframe\n");
+		return;
+	}
+
+	buf[0] = 0;
+	cdns_mhdp_infoframe_set(mhdp, 3, sizeof(buf),
+				buf, HDMI_INFOFRAME_TYPE_DRM);
+}
+
+void cdns_hdmi_mode_set(struct cdns_mhdp_device *mhdp)
+{
+	struct drm_display_mode *mode = &mhdp->mode;
+	int ret;
+
+	/* video mode valid check */
+	if (mode->clock == 0 || mode->hdisplay == 0 ||  mode->vdisplay == 0)
+		return;
+
+	hdmi_lanes_config(mhdp);
+
+	cdns_mhdp_plat_call(mhdp, pclk_rate);
+
+	/* delay for HDMI FW stable after pixel clock relock */
+	msleep(20);
+
+	cdns_mhdp_plat_call(mhdp, phy_set);
+
+	hdmi_sink_config(mhdp);
+
+	ret = cdns_hdmi_ctrl_init(mhdp, mhdp->hdmi.hdmi_type, mhdp->hdmi.char_rate);
+	if (ret < 0) {
+		DRM_ERROR("%s, ret = %d\n", __func__, ret);
+		return;
+	}
+
+	/* Config GCP */
+	if (mhdp->video_info.color_depth == 8)
+		cdns_hdmi_disable_gcp(mhdp);
+	else
+		cdns_hdmi_enable_gcp(mhdp);
+
+	ret = hdmi_avi_info_set(mhdp, mode);
+	if (ret < 0) {
+		DRM_ERROR("%s ret = %d\n", __func__, ret);
+		return;
+	}
+
+	/* vendor info frame is enable only  when HDMI1.4 4K mode */
+	hdmi_vendor_info_set(mhdp, mode);
+
+	hdmi_drm_info_set(mhdp);
+
+	ret = cdns_hdmi_mode_config(mhdp, mode, &mhdp->video_info);
+	if (ret < 0) {
+		DRM_ERROR("CDN_API_HDMITX_SetVic_blocking ret = %d\n", ret);
+		return;
+	}
+}
+
+static void handle_plugged_change(struct cdns_mhdp_device *mhdp, bool plugged)
+{
+	if (mhdp->plugged_cb && mhdp->codec_dev)
+		mhdp->plugged_cb(mhdp->codec_dev, plugged);
+}
+
+int cdns_hdmi_set_plugged_cb(struct cdns_mhdp_device *mhdp,
+			     hdmi_codec_plugged_cb fn,
+			     struct device *codec_dev)
+{
+	bool plugged;
+
+	mutex_lock(&mhdp->lock);
+	mhdp->plugged_cb = fn;
+	mhdp->codec_dev = codec_dev;
+	plugged = mhdp->last_connector_result == connector_status_connected;
+	handle_plugged_change(mhdp, plugged);
+	mutex_unlock(&mhdp->lock);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cdns_hdmi_set_plugged_cb);
+
+static enum drm_connector_status
+cdns_hdmi_connector_detect(struct drm_connector *connector, bool force)
+{
+	struct cdns_mhdp_device *mhdp =
+				container_of(connector, struct cdns_mhdp_device, connector.base);
+	enum drm_connector_status result;
+
+	u8 hpd = 0xf;
+
+	hpd = cdns_mhdp_read_hpd(mhdp);
+
+	if (hpd == 1)
+		/* Cable Connected */
+		result = connector_status_connected;
+	else if (hpd == 0)
+		/* Cable Disconnedted */
+		result = connector_status_disconnected;
+	else {
+		/* Cable status unknown */
+		DRM_INFO("Unknow cable status, hdp=%u\n", hpd);
+		result = connector_status_unknown;
+	}
+
+	mutex_lock(&mhdp->lock);
+	if (result != mhdp->last_connector_result) {
+		handle_plugged_change(mhdp,
+				      result == connector_status_connected);
+		mhdp->last_connector_result = result;
+	}
+	mutex_unlock(&mhdp->lock);
+
+	return result;
+}
+
+static int cdns_hdmi_connector_get_modes(struct drm_connector *connector)
+{
+	struct cdns_mhdp_device *mhdp =
+				container_of(connector, struct cdns_mhdp_device, connector.base);
+	int num_modes = 0;
+	struct edid *edid;
+	struct cec_adapter *adap;
+	bool set_pa = false;
+	u16 pa = CEC_PHYS_ADDR_INVALID;
+
+	if (of_get_property(mhdp->dev->of_node, "init-cec-pa-from-edid", NULL))
+		set_pa = true;
+
+	edid = drm_do_get_edid(&mhdp->connector.base,
+				   cdns_hdmi_get_edid_block, mhdp);
+	if (edid) {
+		if (set_pa)
+			pa = cec_get_edid_phys_addr((const u8 *)edid, EDID_LENGTH * (edid->extensions + 1), NULL);
+		dev_info(mhdp->dev, "%x,%x,%x,%x,%x,%x,%x,%x\n",
+			 edid->header[0], edid->header[1],
+			 edid->header[2], edid->header[3],
+			 edid->header[4], edid->header[5],
+			 edid->header[6], edid->header[7]);
+		drm_connector_update_edid_property(connector, edid);
+		num_modes = drm_add_edid_modes(connector, edid);
+		mhdp->hdmi.hdmi_type = drm_detect_hdmi_monitor(edid) ?
+						MODE_HDMI_1_4 : MODE_DVI;
+		kfree(edid);
+	}
+
+	if (num_modes == 0)
+		DRM_ERROR("Invalid edid\n");
+
+	if (set_pa) {
+		DRM_INFO("HDMI/DP physical address: %x.%x.%x.%x\n",cec_phys_addr_exp(pa));
+		adap = mhdp->hdmi.cec.adap;
+		if (PTR_ERR_OR_ZERO(adap))
+			DRM_INFO("Get cec adapter fail!\n");
+		else
+			cec_s_phys_addr(adap, pa, false);
+	}
+
+	return num_modes;
+}
+
+static bool blob_equal(const struct drm_property_blob *a,
+		       const struct drm_property_blob *b)
+{
+	if (a && b)
+		return a->length == b->length &&
+			!memcmp(a->data, b->data, a->length);
+
+	return !a == !b;
+}
+
+static int cdns_hdmi_connector_atomic_check(struct drm_connector *connector,
+					    struct drm_atomic_state *state)
+{
+	struct drm_connector_state *new_con_state =
+		drm_atomic_get_new_connector_state(state, connector);
+	struct drm_connector_state *old_con_state =
+		drm_atomic_get_old_connector_state(state, connector);
+	struct drm_crtc *crtc = new_con_state->crtc;
+	struct drm_crtc_state *new_crtc_state;
+
+	if (!blob_equal(new_con_state->hdr_output_metadata,
+			old_con_state->hdr_output_metadata) ||
+	    new_con_state->colorspace != old_con_state->colorspace) {
+		new_crtc_state = drm_atomic_get_crtc_state(state, crtc);
+		if (IS_ERR(new_crtc_state))
+			return PTR_ERR(new_crtc_state);
+
+		new_crtc_state->mode_changed =
+			!new_con_state->hdr_output_metadata ||
+			!old_con_state->hdr_output_metadata ||
+			new_con_state->colorspace != old_con_state->colorspace;
+	}
+
+	return 0;
+}
+
+static const struct drm_connector_funcs cdns_hdmi_connector_funcs = {
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.detect = cdns_hdmi_connector_detect,
+	.destroy = drm_connector_cleanup,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static const struct drm_connector_helper_funcs cdns_hdmi_connector_helper_funcs = {
+	.get_modes = cdns_hdmi_connector_get_modes,
+	.atomic_check = cdns_hdmi_connector_atomic_check,
+};
+
+static int cdns_hdmi_bridge_attach(struct drm_bridge *bridge)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	struct drm_mode_config *config = &bridge->dev->mode_config;
+	struct drm_encoder *encoder = bridge->encoder;
+	struct drm_connector *connector = &mhdp->connector.base;
+
+	connector->interlace_allowed = 1;
+	connector->polled = DRM_CONNECTOR_POLL_HPD;
+
+	drm_connector_helper_add(connector, &cdns_hdmi_connector_helper_funcs);
+
+	drm_connector_init(bridge->dev, connector, &cdns_hdmi_connector_funcs,
+			   DRM_MODE_CONNECTOR_HDMIA);
+
+	if (!strncmp("imx8mq-hdmi", mhdp->plat_data->plat_name, 11)) {
+		drm_object_attach_property(&connector->base,
+					   config->hdr_output_metadata_property,
+					   0);
+
+		if (!drm_mode_create_colorspace_property(connector))
+			drm_object_attach_property(&connector->base,
+						connector->colorspace_property,
+						0);
+	}
+
+	drm_connector_attach_encoder(connector, encoder);
+
+	return 0;
+}
+
+static enum drm_mode_status
+cdns_hdmi_bridge_mode_valid(struct drm_bridge *bridge,
+			  const struct drm_display_mode *mode)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	enum drm_mode_status mode_status = MODE_OK;
+	u32 vic;
+	int ret;
+
+	/* We don't support double-clocked and Interlaced modes */
+	if (mode->flags & DRM_MODE_FLAG_DBLCLK ||
+			mode->flags & DRM_MODE_FLAG_INTERLACE)
+		return MODE_BAD;
+
+	/* MAX support pixel clock rate 594MHz */
+	if (mode->clock > 594000)
+		return MODE_CLOCK_HIGH;
+
+	/* 5120 x 2160 is the maximum supported resolution */
+	if (mode->hdisplay > 5120 || mode->vdisplay > 2160)
+		return MODE_BAD_HVALUE;
+
+	/* imx8mq-hdmi does not support non CEA modes */
+	if (!strncmp("imx8mq-hdmi", mhdp->plat_data->plat_name, 11)) {
+		vic = drm_match_cea_mode(mode);
+		if (vic == 0)
+			return MODE_BAD;
+	}
+
+	mhdp->valid_mode = mode;
+	ret = cdns_mhdp_plat_call(mhdp, phy_video_valid);
+	if (ret == false)
+		return MODE_CLOCK_RANGE;
+
+	return mode_status;
+}
+
+static void cdns_hdmi_bridge_mode_set(struct drm_bridge *bridge,
+				    const struct drm_display_mode *orig_mode,
+				    const struct drm_display_mode *mode)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	struct video_info *video = &mhdp->video_info;
+
+	video->v_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NVSYNC);
+	video->h_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NHSYNC);
+
+	DRM_INFO("Mode: %dx%dp%d\n", mode->hdisplay, mode->vdisplay, mode->clock); 
+	memcpy(&mhdp->mode, mode, sizeof(struct drm_display_mode));
+
+	mutex_lock(&mhdp->lock);
+	cdns_hdmi_mode_set(mhdp);
+	mutex_unlock(&mhdp->lock);
+	/* reset force mode set flag */
+	mhdp->force_mode_set = false;
+}
+
+bool cdns_hdmi_bridge_mode_fixup(struct drm_bridge *bridge,
+				 const struct drm_display_mode *mode,
+				 struct drm_display_mode *adjusted_mode)
+{
+	struct cdns_mhdp_device *mhdp = bridge->driver_private;
+	struct drm_display_info *di = &mhdp->connector.base.display_info;
+	struct video_info *video = &mhdp->video_info;
+	int vic = drm_match_cea_mode(mode);
+
+	video->color_depth = 8;
+	video->color_fmt = PXL_RGB;
+
+	/* for all other platforms, other than imx8mq */
+	if (strncmp("imx8mq-hdmi", mhdp->plat_data->plat_name, 11)) {
+		if (di->bpc == 10 || di->bpc == 6)
+			video->color_depth = di->bpc;
+
+		return true;
+	}
+
+	/* imx8mq */
+	if (vic == 97 || vic == 96) {
+		if (di->hdmi.y420_dc_modes & DRM_EDID_YCBCR420_DC_36)
+			video->color_depth = 12;
+		else if (di->hdmi.y420_dc_modes & DRM_EDID_YCBCR420_DC_30)
+			video->color_depth = 10;
+
+		if (drm_mode_is_420_only(di, mode) ||
+		    (drm_mode_is_420_also(di, mode) &&
+		     video->color_depth > 8)) {
+			video->color_fmt = YCBCR_4_2_0;
+
+			adjusted_mode->private_flags = 1;
+			return true;
+		}
+
+		video->color_depth = 8;
+		return true;
+	}
+
+	/* Any defined maximum tmds clock limit we must not exceed*/
+	if ((di->edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_36) &&
+	    (mode->clock * 3 / 2 <= di->max_tmds_clock))
+		video->color_depth = 12;
+	else if ((di->edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) &&
+		 (mode->clock * 5 / 4 <= di->max_tmds_clock))
+		video->color_depth = 10;
+
+	/* 10-bit color depth for the following modes is not supported */
+	if ((vic == 95 || vic == 94 || vic == 93) && video->color_depth == 10)
+		video->color_depth = 8;
+
+	return true;
+}
+
+static const struct drm_bridge_funcs cdns_hdmi_bridge_funcs = {
+	.attach = cdns_hdmi_bridge_attach,
+	.mode_set = cdns_hdmi_bridge_mode_set,
+	.mode_valid = cdns_hdmi_bridge_mode_valid,
+	.mode_fixup = cdns_hdmi_bridge_mode_fixup,
+};
+
+static void hotplug_work_func(struct work_struct *work)
+{
+	struct cdns_mhdp_device *mhdp = container_of(work,
+					   struct cdns_mhdp_device, hotplug_work.work);
+	struct drm_connector *connector = &mhdp->connector.base;
+
+	drm_helper_hpd_irq_event(connector->dev);
+
+	if (connector->status == connector_status_connected) {
+		DRM_INFO("HDMI Cable Plug In\n");
+		mhdp->force_mode_set = true;
+		enable_irq(mhdp->irq[IRQ_OUT]);
+	} else if (connector->status == connector_status_disconnected) {
+		/* Cable Disconnedted  */
+		DRM_INFO("HDMI Cable Plug Out\n");
+		/* force mode set for cable replugin to recovery HDMI2.0 video modes */
+		mhdp->force_mode_set = true;
+		enable_irq(mhdp->irq[IRQ_IN]);
+	}
+}
+
+static irqreturn_t cdns_hdmi_irq_thread(int irq, void *data)
+{
+	struct cdns_mhdp_device *mhdp = data;
+
+	disable_irq_nosync(irq);
+
+	mod_delayed_work(system_wq, &mhdp->hotplug_work,
+			msecs_to_jiffies(HOTPLUG_DEBOUNCE_MS));
+
+	return IRQ_HANDLED;
+}
+
+static void cdns_hdmi_parse_dt(struct cdns_mhdp_device *mhdp)
+{
+	struct device_node *of_node = mhdp->dev->of_node;
+	int ret;
+
+	ret = of_property_read_u32(of_node, "lane-mapping", &mhdp->lane_mapping);
+	if (ret) {
+		mhdp->lane_mapping = 0xc6;
+		dev_warn(mhdp->dev, "Failed to get lane_mapping - using default 0xc6\n");
+	}
+	dev_info(mhdp->dev, "lane-mapping 0x%02x\n", mhdp->lane_mapping);
+}
+
+static int __cdns_hdmi_probe(struct platform_device *pdev,
+		  struct cdns_mhdp_device *mhdp)
+{
+	struct device *dev = &pdev->dev;
+	struct platform_device_info pdevinfo;
+	struct resource *iores = NULL;
+	int ret;
+
+	mutex_init(&mhdp->lock);
+	mutex_init(&mhdp->iolock);
+
+	INIT_DELAYED_WORK(&mhdp->hotplug_work, hotplug_work_func);
+
+	iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	mhdp->regs_base = devm_ioremap(dev, iores->start, resource_size(iores));
+	if (IS_ERR(mhdp->regs_base)) {
+		dev_err(dev, "No regs_base memory\n");
+		return -ENOMEM;
+	}
+
+	/* sec register base */
+	iores = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+	mhdp->regs_sec = devm_ioremap(dev, iores->start, resource_size(iores));
+	if (IS_ERR(mhdp->regs_sec)) {
+		dev_err(dev, "No regs_sec memory\n");
+		return -ENOMEM;
+	}
+
+	mhdp->irq[IRQ_IN] = platform_get_irq_byname(pdev, "plug_in");
+	if (mhdp->irq[IRQ_IN] < 0) {
+		dev_info(dev, "No plug_in irq number\n");
+		return -EPROBE_DEFER;
+	}
+
+	mhdp->irq[IRQ_OUT] = platform_get_irq_byname(pdev, "plug_out");
+	if (mhdp->irq[IRQ_OUT] < 0) {
+		dev_info(dev, "No plug_out irq number\n");
+		return -EPROBE_DEFER;
+	}
+
+	cdns_mhdp_plat_call(mhdp, power_on);
+
+	/* Initialize FW */
+	cdns_mhdp_plat_call(mhdp, firmware_init);
+
+	/* HDMI FW alive check */
+	ret = cdns_mhdp_check_alive(mhdp);
+	if (ret == false) {
+		dev_err(dev, "NO HDMI FW running\n");
+		return -ENXIO;
+	}
+
+	/* Enable Hotplug Detect thread */
+	irq_set_status_flags(mhdp->irq[IRQ_IN], IRQ_NOAUTOEN);
+	ret = devm_request_threaded_irq(dev, mhdp->irq[IRQ_IN],
+					NULL, cdns_hdmi_irq_thread,
+					IRQF_ONESHOT, dev_name(dev),
+					mhdp);
+	if (ret < 0) {
+		dev_err(dev, "can't claim irq %d\n",
+						mhdp->irq[IRQ_IN]);
+		return -EINVAL;
+	}
+	
+	irq_set_status_flags(mhdp->irq[IRQ_OUT], IRQ_NOAUTOEN);
+	ret = devm_request_threaded_irq(dev, mhdp->irq[IRQ_OUT],
+					NULL, cdns_hdmi_irq_thread,
+					IRQF_ONESHOT, dev_name(dev),
+					mhdp);
+	if (ret < 0) {
+		dev_err(dev, "can't claim irq %d\n",
+						mhdp->irq[IRQ_OUT]);
+		return -EINVAL;
+	}
+
+	cdns_hdmi_parse_dt(mhdp);
+
+	if (cdns_mhdp_read_hpd(mhdp))
+		enable_irq(mhdp->irq[IRQ_OUT]);
+	else
+		enable_irq(mhdp->irq[IRQ_IN]);
+
+	mhdp->bridge.base.driver_private = mhdp;
+	mhdp->bridge.base.funcs = &cdns_hdmi_bridge_funcs;
+#ifdef CONFIG_OF
+	mhdp->bridge.base.of_node = dev->of_node;
+#endif
+	mhdp->last_connector_result = connector_status_disconnected;
+
+	memset(&pdevinfo, 0, sizeof(pdevinfo));
+	pdevinfo.parent = dev;
+	pdevinfo.id = PLATFORM_DEVID_AUTO;
+
+	dev_set_drvdata(dev, mhdp);
+
+	/* register audio driver */
+	cdns_mhdp_register_audio_driver(dev);
+
+	/* register cec driver */
+#if IS_ENABLED(CONFIG_DRM_CDNS_HDMI_CEC)
+	cdns_mhdp_register_cec_driver(dev);
+#endif
+
+	return 0;
+}
+
+static void __cdns_hdmi_remove(struct cdns_mhdp_device *mhdp)
+{
+	cdns_mhdp_plat_call(mhdp, power_off);
+
+	/* unregister cec driver */
+#if IS_ENABLED(CONFIG_DRM_CDNS_HDMI_CEC)
+	cdns_mhdp_unregister_cec_driver(mhdp->dev);
+#endif
+	cdns_mhdp_unregister_audio_driver(mhdp->dev);
+}
+
+/* -----------------------------------------------------------------------------
+ * Probe/remove API, used from platforms based on the DRM bridge API.
+ */
+int cdns_hdmi_probe(struct platform_device *pdev,
+		struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	ret  = __cdns_hdmi_probe(pdev, mhdp);
+	if (ret < 0)
+		return ret;
+
+	drm_bridge_add(&mhdp->bridge.base);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cdns_hdmi_probe);
+
+void cdns_hdmi_remove(struct platform_device *pdev)
+{
+	struct cdns_mhdp_device *mhdp = platform_get_drvdata(pdev);
+
+	drm_bridge_remove(&mhdp->bridge.base);
+
+	__cdns_hdmi_remove(mhdp);
+}
+EXPORT_SYMBOL_GPL(cdns_hdmi_remove);
+
+/* -----------------------------------------------------------------------------
+ * Bind/unbind API, used from platforms based on the component framework.
+ */
+int cdns_hdmi_bind(struct platform_device *pdev, struct drm_encoder *encoder,
+			struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	ret = __cdns_hdmi_probe(pdev, mhdp);
+	if (ret)
+		return ret;
+
+	ret = drm_bridge_attach(encoder, &mhdp->bridge.base, NULL);
+	if (ret) {
+		cdns_hdmi_remove(pdev);
+		DRM_ERROR("Failed to initialize bridge with drm\n");
+		return ret;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(cdns_hdmi_bind);
+
+void cdns_hdmi_unbind(struct device *dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+
+	__cdns_hdmi_remove(mhdp);
+}
+EXPORT_SYMBOL_GPL(cdns_hdmi_unbind);
+
+MODULE_AUTHOR("Sandor Yu <sandor.yu@nxp.com>");
+MODULE_DESCRIPTION("Cadence HDMI transmitter driver");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:cdn-hdmi");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-mhdp-audio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-mhdp-audio.c
@@ -0,0 +1,422 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
+ * Author: Chris Zhong <zyw@rock-chips.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+#include <linux/clk.h>
+#include <linux/reset.h>
+#include <drm/bridge/cdns-mhdp.h>
+#include <sound/hdmi-codec.h>
+#include <drm/drm_of.h>
+#include <drm/drm_vblank.h>
+#include <drm/drm_print.h>
+
+#define CDNS_DP_SPDIF_CLK		200000000
+
+static u32 TMDS_rate_table[7] = {
+	25200, 27000, 54000, 74250, 148500, 297000, 594000,
+};
+
+static u32 N_table_32k[7] = {
+/* 25200/27000/54000/74250/148500/297000/594000 */
+	4096, 4096, 4096, 4096, 4096, 3072, 3072,
+};
+
+static u32 N_table_44k[7] = {
+	6272, 6272, 6272, 6272, 6272, 4704, 9408,
+};
+
+static u32 N_table_48k[7] = {
+	6144, 6144, 6144, 6144, 6144, 5120, 6144,
+};
+
+static int select_N_index(u32 pclk)
+{
+	int num = sizeof(TMDS_rate_table)/sizeof(int);
+	int i = 0;
+
+	for (i = 0; i < num ; i++)
+		if (pclk == TMDS_rate_table[i])
+			break;
+
+	if (i == num) {
+		DRM_WARN("pclkc %d is not supported!\n", pclk);
+		return num-1;
+	}
+
+	return i;
+}
+
+static void hdmi_audio_avi_set(struct cdns_mhdp_device *mhdp,
+						u32 channels)
+{
+	struct hdmi_audio_infoframe frame;
+	u8 buf[32];
+	int ret;
+
+	hdmi_audio_infoframe_init(&frame);
+
+	frame.channels = channels;
+	frame.coding_type = HDMI_AUDIO_CODING_TYPE_STREAM;
+
+	if (channels == 2)
+		frame.channel_allocation = 0;
+	else if (channels == 4)
+		frame.channel_allocation = 0x3;
+	else if (channels == 6)
+		frame.channel_allocation = 0xB;
+	else if (channels == 8)
+		frame.channel_allocation = 0x13;
+
+	ret = hdmi_audio_infoframe_pack(&frame, buf + 1, sizeof(buf) - 1);
+	if (ret < 0) {
+		DRM_ERROR("failed to pack audio infoframe: %d\n", ret);
+		return;
+	}
+
+	buf[0] = 0;
+
+	cdns_mhdp_infoframe_set(mhdp, 1, sizeof(buf), buf, HDMI_INFOFRAME_TYPE_AUDIO);
+}
+
+int cdns_mhdp_audio_stop(struct cdns_mhdp_device *mhdp,
+			 struct audio_info *audio)
+{
+	int ret;
+
+	if (audio->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
+		ret = cdns_mhdp_reg_write(mhdp, AUDIO_PACK_CONTROL, 0);
+		if (ret) {
+			DRM_DEV_ERROR(mhdp->dev, "audio stop failed: %d\n", ret);
+			return ret;
+		}
+	}
+
+	cdns_mhdp_bus_write(0, mhdp, SPDIF_CTRL_ADDR);
+
+	/* clearn the audio config and reset */
+	cdns_mhdp_bus_write(0, mhdp, AUDIO_SRC_CNTL);
+	cdns_mhdp_bus_write(0, mhdp, AUDIO_SRC_CNFG);
+	cdns_mhdp_bus_write(AUDIO_SW_RST, mhdp, AUDIO_SRC_CNTL);
+	cdns_mhdp_bus_write(0, mhdp, AUDIO_SRC_CNTL);
+
+	/* reset smpl2pckt component  */
+	cdns_mhdp_bus_write(0, mhdp, SMPL2PKT_CNTL);
+	cdns_mhdp_bus_write(AUDIO_SW_RST, mhdp, SMPL2PKT_CNTL);
+	cdns_mhdp_bus_write(0, mhdp, SMPL2PKT_CNTL);
+
+	/* reset FIFO */
+	cdns_mhdp_bus_write(AUDIO_SW_RST, mhdp, FIFO_CNTL);
+	cdns_mhdp_bus_write(0, mhdp, FIFO_CNTL);
+
+	if (audio->format == AFMT_SPDIF_INT)
+		clk_disable_unprepare(mhdp->spdif_clk);
+
+	return 0;
+}
+EXPORT_SYMBOL(cdns_mhdp_audio_stop);
+
+int cdns_mhdp_audio_mute(struct cdns_mhdp_device *mhdp, bool enable)
+{
+	struct audio_info *audio = &mhdp->audio_info;
+	int ret = true;
+
+	if (audio->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
+		ret = cdns_mhdp_reg_write_bit(mhdp, DP_VB_ID, 4, 1, enable);
+		if (ret)
+			DRM_DEV_ERROR(mhdp->dev, "audio mute failed: %d\n", ret);
+	}
+
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_audio_mute);
+
+static void cdns_mhdp_audio_config_i2s(struct cdns_mhdp_device *mhdp,
+				       struct audio_info *audio)
+{
+	int sub_pckt_num = 1, i2s_port_en_val = 0xf, i;
+	int idx = select_N_index(mhdp->mode.clock);
+	int numofchannels = audio->channels;
+	u32 val, ncts;
+	u32 disable_port3 = 0;
+	u32 audio_type = 0x2; /* L-PCM */
+	u32 transmission_type = 0; /* not required for L-PCM */
+
+	if (numofchannels == 2) {
+		if (mhdp->dp.num_lanes == 1)
+			sub_pckt_num = 2;
+		else
+			sub_pckt_num = 4;
+
+		i2s_port_en_val = 1;
+	} else if (numofchannels == 4) {
+		i2s_port_en_val = 3;
+	} else if (numofchannels == 6) {
+		numofchannels = 8;
+		disable_port3 = 1;
+	} else if ((numofchannels == 8) && (audio->non_pcm)) {
+		audio_type = 0x9;         /* HBR packet type */
+		transmission_type = 0x9;  /* HBR packet type */
+	}
+
+	cdns_mhdp_bus_write(0x0, mhdp, SPDIF_CTRL_ADDR);
+
+	val = SYNC_WR_TO_CH_ZERO;
+	val |= disable_port3 << 4;
+	cdns_mhdp_bus_write(val, mhdp, FIFO_CNTL);
+
+	val = MAX_NUM_CH(numofchannels);
+	val |= NUM_OF_I2S_PORTS(numofchannels);
+	val |= audio_type << 7;
+	val |= CFG_SUB_PCKT_NUM(sub_pckt_num);
+	cdns_mhdp_bus_write(val, mhdp, SMPL2PKT_CNFG);
+
+	if (audio->sample_width == 16)
+		val = 0;
+	else if (audio->sample_width == 24)
+		val = 1 << 9;
+	else
+		val = 2 << 9;
+
+	val |= AUDIO_CH_NUM(numofchannels);
+	val |= I2S_DEC_PORT_EN(i2s_port_en_val);
+	val |= TRANS_SMPL_WIDTH_32;
+	val |= transmission_type << 13;
+	cdns_mhdp_bus_write(val, mhdp, AUDIO_SRC_CNFG);
+
+	for (i = 0; i < (numofchannels + 1) / 2; i++) {
+		if (audio->sample_width == 16)
+			val = (0x02 << 8) | (0x02 << 20);
+		else if (audio->sample_width == 24)
+			val = (0x0b << 8) | (0x0b << 20);
+
+		val |= ((2 * i) << 4) | ((2 * i + 1) << 16);
+		cdns_mhdp_bus_write(val, mhdp, STTS_BIT_CH(i));
+	}
+
+	switch (audio->sample_rate) {
+	case 32000:
+		val = SAMPLING_FREQ(3) |
+		      ORIGINAL_SAMP_FREQ(0xc);
+		ncts = N_table_32k[idx];
+		break;
+	case 44100:
+		val = SAMPLING_FREQ(0) |
+		      ORIGINAL_SAMP_FREQ(0xf);
+		ncts = N_table_44k[idx];
+		break;
+	case 48000:
+		val = SAMPLING_FREQ(2) |
+		      ORIGINAL_SAMP_FREQ(0xd);
+		ncts = N_table_48k[idx];
+		break;
+	case 88200:
+		val = SAMPLING_FREQ(8) |
+		      ORIGINAL_SAMP_FREQ(0x7);
+		ncts = N_table_44k[idx] * 2;
+		break;
+	case 96000:
+		val = SAMPLING_FREQ(0xa) |
+		      ORIGINAL_SAMP_FREQ(5);
+		ncts = N_table_48k[idx] * 2;
+		break;
+	case 176400:
+		val = SAMPLING_FREQ(0xc) |
+		      ORIGINAL_SAMP_FREQ(3);
+		ncts = N_table_44k[idx] * 4;
+		break;
+	case 192000:
+	default:
+		val = SAMPLING_FREQ(0xe) |
+		      ORIGINAL_SAMP_FREQ(1);
+		ncts = N_table_48k[idx] * 4;
+		break;
+	}
+	val |= 4;
+	cdns_mhdp_bus_write(val, mhdp, COM_CH_STTS_BITS);
+
+	if (audio->connector_type == DRM_MODE_CONNECTOR_HDMIA)
+		cdns_mhdp_reg_write(mhdp, CM_I2S_CTRL, ncts | 0x4000000);
+
+	cdns_mhdp_bus_write(SMPL2PKT_EN, mhdp, SMPL2PKT_CNTL);
+	cdns_mhdp_bus_write(I2S_DEC_START, mhdp, AUDIO_SRC_CNTL);
+}
+
+static void cdns_mhdp_audio_config_spdif(struct cdns_mhdp_device *mhdp)
+{
+	u32 val;
+
+	cdns_mhdp_bus_write(SYNC_WR_TO_CH_ZERO, mhdp, FIFO_CNTL);
+
+	val = MAX_NUM_CH(2) | AUDIO_TYPE_LPCM | CFG_SUB_PCKT_NUM(4);
+	cdns_mhdp_bus_write(val, mhdp, SMPL2PKT_CNFG);
+	cdns_mhdp_bus_write(SMPL2PKT_EN, mhdp, SMPL2PKT_CNTL);
+
+	val = SPDIF_ENABLE | SPDIF_AVG_SEL | SPDIF_JITTER_BYPASS;
+	cdns_mhdp_bus_write(val, mhdp, SPDIF_CTRL_ADDR);
+
+	clk_prepare_enable(mhdp->spdif_clk);
+	clk_set_rate(mhdp->spdif_clk, CDNS_DP_SPDIF_CLK);
+}
+
+int cdns_mhdp_audio_config(struct cdns_mhdp_device *mhdp,
+			   struct audio_info *audio)
+{
+	int ret;
+
+	/* reset the spdif clk before config */
+	if (audio->format == AFMT_SPDIF_INT) {
+		reset_control_assert(mhdp->spdif_rst);
+		reset_control_deassert(mhdp->spdif_rst);
+	}
+
+	if (audio->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
+		ret = cdns_mhdp_reg_write(mhdp, CM_LANE_CTRL, LANE_REF_CYC);
+		if (ret)
+			goto err_audio_config;
+
+		ret = cdns_mhdp_reg_write(mhdp, CM_CTRL, 0);
+		if (ret)
+			goto err_audio_config;
+	} else {
+		/* HDMI Mode */
+		ret = cdns_mhdp_reg_write(mhdp, CM_CTRL, 8);
+		if (ret)
+			goto err_audio_config;
+	}
+
+	if (audio->format == AFMT_I2S)
+		cdns_mhdp_audio_config_i2s(mhdp, audio);
+	else if (audio->format == AFMT_SPDIF_INT)
+		cdns_mhdp_audio_config_spdif(mhdp);
+
+	if (audio->connector_type == DRM_MODE_CONNECTOR_DisplayPort)
+		ret = cdns_mhdp_reg_write(mhdp, AUDIO_PACK_CONTROL, AUDIO_PACK_EN);
+
+	if (audio->connector_type == DRM_MODE_CONNECTOR_HDMIA)
+		hdmi_audio_avi_set(mhdp, audio->channels);
+
+err_audio_config:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "audio config failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_audio_config);
+
+static int audio_hw_params(struct device *dev,  void *data,
+				  struct hdmi_codec_daifmt *daifmt,
+				  struct hdmi_codec_params *params)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+	struct audio_info audio = {
+		.sample_width = params->sample_width,
+		.sample_rate = params->sample_rate,
+		.channels = params->channels,
+		.connector_type = mhdp->connector.base.connector_type,
+	};
+	int ret;
+
+	switch (daifmt->fmt) {
+	case HDMI_I2S:
+		audio.format = AFMT_I2S;
+		break;
+	case HDMI_SPDIF:
+		audio.format = AFMT_SPDIF_EXT;
+		break;
+	default:
+		DRM_DEV_ERROR(dev, "Invalid format %d\n", daifmt->fmt);
+		ret = -EINVAL;
+		goto out;
+	}
+
+	audio.non_pcm = params->iec.status[0] & IEC958_AES0_NONAUDIO;
+
+	ret = cdns_mhdp_audio_config(mhdp, &audio);
+	if (!ret)
+		mhdp->audio_info = audio;
+
+out:
+	return ret;
+}
+
+static void audio_shutdown(struct device *dev, void *data)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+	int ret;
+
+	ret = cdns_mhdp_audio_stop(mhdp, &mhdp->audio_info);
+	if (!ret)
+		mhdp->audio_info.format = AFMT_UNUSED;
+}
+
+static int audio_digital_mute(struct device *dev, void *data,
+				     bool enable)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+	int ret;
+
+	ret = cdns_mhdp_audio_mute(mhdp, enable);
+
+	return ret;
+}
+
+static int audio_get_eld(struct device *dev, void *data,
+				u8 *buf, size_t len)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+
+	memcpy(buf, mhdp->connector.base.eld,
+	       min(sizeof(mhdp->connector.base.eld), len));
+
+	return 0;
+}
+
+static int audio_hook_plugged_cb(struct device *dev, void *data,
+				 hdmi_codec_plugged_cb fn,
+				 struct device *codec_dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+
+	return cdns_hdmi_set_plugged_cb(mhdp, fn, codec_dev);
+}
+
+static const struct hdmi_codec_ops audio_codec_ops = {
+	.hw_params = audio_hw_params,
+	.audio_shutdown = audio_shutdown,
+	.digital_mute = audio_digital_mute,
+	.get_eld = audio_get_eld,
+	.hook_plugged_cb = audio_hook_plugged_cb,
+};
+
+int cdns_mhdp_register_audio_driver(struct device *dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+	struct hdmi_codec_pdata codec_data = {
+		.i2s = 1,
+		.spdif = 1,
+		.ops = &audio_codec_ops,
+		.max_i2s_channels = 8,
+	};
+
+	mhdp->audio_pdev = platform_device_register_data(
+			      dev, HDMI_CODEC_DRV_NAME, 1,
+			      &codec_data, sizeof(codec_data));
+
+	return PTR_ERR_OR_ZERO(mhdp->audio_pdev);
+}
+
+void cdns_mhdp_unregister_audio_driver(struct device *dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+
+	platform_device_unregister(mhdp->audio_pdev);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-mhdp-cec.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-mhdp-cec.c
@@ -0,0 +1,343 @@
+/*
+ * Copyright 2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+#include <linux/module.h>
+#include <linux/workqueue.h>
+#include <linux/kthread.h>
+#include <linux/freezer.h>
+#include <drm/bridge/cdns-mhdp.h>
+
+#define CEC_NAME	"cdns-mhdp-cec"
+
+#define REG_ADDR_OFF 4
+
+/* regsiter define */
+#define TX_MSG_HEADER 0x33800
+#define TX_MSG_LENGTH 0x33840
+#define TX_MSG_CMD 0x33844
+#define RX_MSG_CMD 0x33850
+#define RX_CLEAR_BUF 0x33854
+#define LOGICAL_ADDRESS_LA0 0x33858
+
+#define CLK_DIV_MSB 0x3386c
+#define CLK_DIV_LSB 0x33870
+#define RX_MSG_DATA1 0x33900
+#define RX_MSG_LENGTH 0x33940
+#define RX_MSG_STATUS 0x33944
+#define NUM_OF_MSG_RX_BUF 0x33948
+#define TX_MSG_STATUS 0x3394c
+#define DB_L_TIMER 0x33980
+
+/**
+ * CEC Transceiver operation.
+ */
+enum {
+	CEC_TX_STOP,
+	CEC_TX_TRANSMIT,
+	CEC_TX_ABORT,
+	CEC_TX_ABORT_AND_TRANSMIT
+};
+
+/**
+ * CEC Transceiver status.
+ */
+enum {
+	CEC_STS_IDLE,
+	CEC_STS_BUSY,
+	CEC_STS_SUCCESS,
+	CEC_STS_ERROR
+};
+
+/**
+ * CEC Receiver operation.
+ */
+enum {
+	CEC_RX_STOP,
+	CEC_RX_READ,
+	CEC_RX_DISABLE,
+	CEC_RX_ABORT_AND_CLR_FIFO
+};
+/**
+ * Maximum number of Messages in the RX Buffers.
+ */
+#define CEC_MAX_RX_MSGS 2
+
+static u32 mhdp_cec_read(struct cdns_mhdp_cec *cec, u32 offset)
+{
+	struct cdns_mhdp_device *mhdp =
+			container_of(cec, struct cdns_mhdp_device, hdmi.cec);
+	return cdns_mhdp_bus_read(mhdp, offset);
+}
+
+static void mhdp_cec_write(struct cdns_mhdp_cec *cec, u32 offset, u32 val)
+{
+	struct cdns_mhdp_device *mhdp =
+			container_of(cec, struct cdns_mhdp_device, hdmi.cec);
+	cdns_mhdp_bus_write(val, mhdp, offset);
+}
+
+static void mhdp_cec_clear_rx_buffer(struct cdns_mhdp_cec *cec)
+{
+	mhdp_cec_write(cec, RX_CLEAR_BUF, 1);
+	mhdp_cec_write(cec, RX_CLEAR_BUF, 0);
+}
+
+static void mhdp_cec_set_divider(struct cdns_mhdp_cec *cec)
+{
+	struct cdns_mhdp_device *mhdp =
+			container_of(cec, struct cdns_mhdp_device, hdmi.cec);
+	u32 clk_div;
+
+	/* Set clock divider */
+	clk_div = cdns_mhdp_get_fw_clk(mhdp) * 10;
+
+	mhdp_cec_write(cec, CLK_DIV_MSB,
+			  (clk_div >> 8) & 0xFF);
+	mhdp_cec_write(cec, CLK_DIV_LSB, clk_div & 0xFF);
+}
+
+static u32 mhdp_cec_read_message(struct cdns_mhdp_cec *cec)
+{
+	struct cec_msg *msg = &cec->msg;
+	int len;
+	int i;
+
+	mhdp_cec_write(cec, RX_MSG_CMD, CEC_RX_READ);
+
+	len = mhdp_cec_read(cec, RX_MSG_LENGTH);
+	msg->len = len + 1;
+	dev_dbg(cec->dev, "RX MSG len =%d\n", len);
+
+	/* Read RX MSG bytes */
+	for (i = 0; i < msg->len; ++i) {
+		msg->msg[i] = (u8) mhdp_cec_read(cec, RX_MSG_DATA1 + (i * REG_ADDR_OFF));
+		dev_dbg(cec->dev, "RX MSG[%d]=0x%x\n", i, msg->msg[i]);
+	}
+
+	mhdp_cec_write(cec, RX_MSG_CMD, CEC_RX_STOP);
+
+	return true;
+}
+
+static u32 mhdp_cec_write_message(struct cdns_mhdp_cec *cec, struct cec_msg *msg)
+{
+	u8 i;
+
+	mhdp_cec_write(cec, TX_MSG_CMD, CEC_TX_STOP);
+
+	if (msg->len > CEC_MAX_MSG_SIZE) {
+		dev_err(cec->dev, "Invalid MSG size!\n");
+		return -EINVAL;
+	}
+
+	for (i = 0; i < msg->len; ++i)
+		printk("msg[%d]=0x%x\n",i, msg->msg[i]);
+
+	/* Write Message to register */
+	for (i = 0; i < msg->len; ++i) {
+		mhdp_cec_write(cec, TX_MSG_HEADER + (i * REG_ADDR_OFF),
+			  msg->msg[i]);
+	}
+	/* Write Message Length (payload + opcode) */
+	mhdp_cec_write(cec, TX_MSG_LENGTH, msg->len - 1);
+
+	mhdp_cec_write(cec, TX_MSG_CMD, CEC_TX_TRANSMIT);
+
+	return true;
+}
+
+static int mhdp_cec_set_logical_addr(struct cdns_mhdp_cec *cec, u32 la)
+{
+	u8 la_reg;
+	u8 i;
+
+	if (la == CEC_LOG_ADDR_INVALID)
+		/* invalid all LA address */
+		for (i = 0; i < CEC_MAX_LOG_ADDRS; i++) {
+			mhdp_cec_write(cec, LOGICAL_ADDRESS_LA0 + (i * REG_ADDR_OFF), 0);
+			return 0;
+		}
+
+	/* In fact cdns mhdp cec could support max 5 La address */
+	for (i = 0; i < CEC_MAX_LOG_ADDRS; i++) {
+		la_reg = mhdp_cec_read(cec, LOGICAL_ADDRESS_LA0 + (i * REG_ADDR_OFF));
+		/* Check LA already used */
+		if (la_reg & 0x10)
+			continue;
+
+		if ((la_reg & 0xF) == la) {
+			dev_warn(cec->dev, "Warning. LA already in use.\n");
+			return 0;
+		}
+
+		la = (la & 0xF) | (1 << 4);
+
+		mhdp_cec_write(cec, LOGICAL_ADDRESS_LA0 + (i * REG_ADDR_OFF), la);
+		return 0;
+	}
+
+	dev_warn(cec->dev, "All LA in use\n");
+
+	return -ENXIO;
+}
+
+static int mhdp_cec_poll_worker(void *_cec)
+{
+	struct cdns_mhdp_cec *cec = (struct cdns_mhdp_cec *)_cec;
+	int num_rx_msgs, i;
+	int sts;
+
+	set_freezable();
+
+	for (;;) {
+		if (kthread_freezable_should_stop(NULL))
+			break;
+
+		/* Check TX State */
+		sts = mhdp_cec_read(cec, TX_MSG_STATUS);
+		switch (sts) {
+		case CEC_STS_SUCCESS:
+			cec_transmit_done(cec->adap, CEC_TX_STATUS_OK, 0, 0, 0,
+					  0);
+			mhdp_cec_write(cec, TX_MSG_CMD, CEC_TX_STOP);
+			break;
+		case CEC_STS_ERROR:
+			mhdp_cec_write(cec, TX_MSG_CMD, CEC_TX_STOP);
+			cec_transmit_done(cec->adap,
+					  CEC_TX_STATUS_MAX_RETRIES |
+					  CEC_TX_STATUS_NACK, 0, 1, 0, 0);
+			break;
+		case CEC_STS_BUSY:
+		default:
+			break;
+		}
+
+		/* Check RX State */
+		sts = mhdp_cec_read(cec, RX_MSG_STATUS);
+		num_rx_msgs = mhdp_cec_read(cec, NUM_OF_MSG_RX_BUF);
+		switch (sts) {
+		case CEC_STS_SUCCESS:
+			if (num_rx_msgs == 0xf)
+				num_rx_msgs = CEC_MAX_RX_MSGS;
+
+			if (num_rx_msgs > CEC_MAX_RX_MSGS) {
+				dev_err(cec->dev, "Error rx msg num %d\n",
+					num_rx_msgs);
+				mhdp_cec_clear_rx_buffer(cec);
+				break;
+			}
+
+			/* Rx FIFO Depth 2 RX MSG */
+			for (i = 0; i < num_rx_msgs; i++) {
+				mhdp_cec_read_message(cec);
+				cec->msg.rx_status = CEC_RX_STATUS_OK;
+				cec_received_msg(cec->adap, &cec->msg);
+			}
+			break;
+		default:
+			break;
+		}
+
+		if (!kthread_should_stop())
+			schedule_timeout_idle(20);
+	}
+
+	return 0;
+}
+
+static int mhdp_cec_adap_enable(struct cec_adapter *adap, bool enable)
+{
+	struct cdns_mhdp_cec *cec = cec_get_drvdata(adap);
+
+	if (enable) {
+		mhdp_cec_write(cec, DB_L_TIMER, 0x10);
+		mhdp_cec_set_divider(cec);
+	} else
+		mhdp_cec_set_divider(cec);
+
+	return 0;
+}
+
+static int mhdp_cec_adap_log_addr(struct cec_adapter *adap, u8 addr)
+{
+	struct cdns_mhdp_cec *cec = cec_get_drvdata(adap);
+
+	return mhdp_cec_set_logical_addr(cec, addr);
+}
+
+static int mhdp_cec_adap_transmit(struct cec_adapter *adap, u8 attempts,
+				 u32 signal_free_time, struct cec_msg *msg)
+{
+	struct cdns_mhdp_cec *cec = cec_get_drvdata(adap);
+
+	mhdp_cec_write_message(cec, msg);
+
+	return 0;
+}
+
+static const struct cec_adap_ops cdns_mhdp_cec_adap_ops = {
+	.adap_enable = mhdp_cec_adap_enable,
+	.adap_log_addr = mhdp_cec_adap_log_addr,
+	.adap_transmit = mhdp_cec_adap_transmit,
+};
+
+int cdns_mhdp_register_cec_driver(struct device *dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+	struct cdns_mhdp_cec *cec = &mhdp->hdmi.cec;
+	int ret;
+	u32 caps = CEC_CAP_PHYS_ADDR | CEC_CAP_LOG_ADDRS | CEC_CAP_TRANSMIT |
+		   CEC_CAP_PASSTHROUGH | CEC_CAP_RC;
+
+	if (of_get_property(mhdp->dev->of_node, "init-cec-pa-from-edid", NULL))
+		caps &= (~CEC_CAP_PHYS_ADDR);
+
+	cec->adap = cec_allocate_adapter(&cdns_mhdp_cec_adap_ops, cec,
+					 CEC_NAME, caps, CEC_MAX_LOG_ADDRS);
+	ret = PTR_ERR_OR_ZERO(cec->adap);
+	if (ret)
+		return ret;
+	ret = cec_register_adapter(cec->adap, dev);
+	if (ret) {
+		cec_delete_adapter(cec->adap);
+		return ret;
+	}
+
+	cec->dev = dev;
+
+	cec->cec_worker = kthread_create(mhdp_cec_poll_worker, cec, "cdns-mhdp-cec");
+	if (IS_ERR(cec->cec_worker))
+		dev_err(cec->dev, "failed  create hdp cec thread\n");
+
+	wake_up_process(cec->cec_worker);
+
+	dev_dbg(dev, "CEC successfuly probed\n");
+	return 0;
+}
+
+int cdns_mhdp_unregister_cec_driver(struct device *dev)
+{
+	struct cdns_mhdp_device *mhdp = dev_get_drvdata(dev);
+	struct cdns_mhdp_cec *cec = &mhdp->hdmi.cec;
+
+	if (cec->cec_worker) {
+		kthread_stop(cec->cec_worker);
+		cec->cec_worker = NULL;
+	}
+	cec_unregister_adapter(cec->adap);
+	return 0;
+}
+
+MODULE_AUTHOR("Sandor.Yu@NXP.com");
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("NXP CDNS MHDP HDMI CEC driver");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-mhdp-common.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-mhdp-common.c
@@ -0,0 +1,795 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
+ * Author: Chris Zhong <zyw@rock-chips.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/io.h>
+#include <linux/iopoll.h>
+#include <linux/reset.h>
+
+#include <asm/unaligned.h>
+
+#include <drm/bridge/cdns-mhdp.h>
+#include <drm/drm_modes.h>
+#include <drm/drm_print.h>
+#include <linux/regmap.h>
+
+#define CDNS_DP_SPDIF_CLK		200000000
+#define FW_ALIVE_TIMEOUT_US		1000000
+#define MAILBOX_RETRY_US		1000
+#define MAILBOX_TIMEOUT_US		5000000
+
+#define mhdp_readx_poll_timeout(op, addr, offset, val, cond, sleep_us, timeout_us)	\
+({ \
+	u64 __timeout_us = (timeout_us); \
+	unsigned long __sleep_us = (sleep_us); \
+	ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
+	might_sleep_if((__sleep_us) != 0); \
+	for (;;) { \
+		(val) = op(addr, offset); \
+		if (cond) \
+			break; \
+		if (__timeout_us && \
+		    ktime_compare(ktime_get(), __timeout) > 0) { \
+			(val) = op(addr, offset); \
+			break; \
+		} \
+		if (__sleep_us) \
+			usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
+	} \
+	(cond) ? 0 : -ETIMEDOUT; \
+})
+
+u32 cdns_mhdp_bus_read(struct cdns_mhdp_device *mhdp, u32 offset)
+{
+	u32 val;
+
+	mutex_lock(&mhdp->iolock);
+
+	if (mhdp->bus_type == BUS_TYPE_LOW4K_SAPB) {
+		/* Remap address to low 4K SAPB bus */
+		writel(offset >> 12, mhdp->regs_sec + 0xc);
+		val = readl((offset & 0xfff) + mhdp->regs_base);
+	} else if (mhdp->bus_type == BUS_TYPE_LOW4K_APB) {
+		/* Remap address to low 4K memory */
+		writel(offset >> 12, mhdp->regs_sec + 8);
+		val = readl((offset & 0xfff) + mhdp->regs_base);
+	} else if (mhdp->bus_type == BUS_TYPE_NORMAL_SAPB)
+		val = readl(mhdp->regs_sec + offset);
+	else
+		val = readl(mhdp->regs_base + offset);
+
+	mutex_unlock(&mhdp->iolock);
+
+	return val;
+}
+EXPORT_SYMBOL(cdns_mhdp_bus_read);
+
+void cdns_mhdp_bus_write(u32 val, struct cdns_mhdp_device *mhdp, u32 offset)
+{
+	mutex_lock(&mhdp->iolock);
+
+	if (mhdp->bus_type == BUS_TYPE_LOW4K_SAPB) {
+		/* Remap address to low 4K SAPB bus */
+		writel(offset >> 12, mhdp->regs_sec + 0xc);
+		writel(val, (offset & 0xfff) + mhdp->regs_base);
+	} else if (mhdp->bus_type == BUS_TYPE_LOW4K_APB) {
+		/* Remap address to low 4K memory */
+		writel(offset >> 12, mhdp->regs_sec + 8);
+		writel(val, (offset & 0xfff) + mhdp->regs_base);
+	} else if (mhdp->bus_type == BUS_TYPE_NORMAL_SAPB)
+		writel(val, mhdp->regs_sec + offset);
+	else
+		writel(val, mhdp->regs_base + offset);
+
+	mutex_unlock(&mhdp->iolock);
+}
+EXPORT_SYMBOL(cdns_mhdp_bus_write);
+
+u32 cdns_mhdp_get_fw_clk(struct cdns_mhdp_device *mhdp)
+{
+	return cdns_mhdp_bus_read(mhdp, SW_CLK_H);
+}
+EXPORT_SYMBOL(cdns_mhdp_get_fw_clk);
+
+void cdns_mhdp_set_fw_clk(struct cdns_mhdp_device *mhdp, unsigned long clk)
+{
+	cdns_mhdp_bus_write(clk / 1000000, mhdp, SW_CLK_H);
+}
+EXPORT_SYMBOL(cdns_mhdp_set_fw_clk);
+
+void cdns_mhdp_clock_reset(struct cdns_mhdp_device *mhdp)
+{
+	u32 val;
+
+	val = DPTX_FRMR_DATA_CLK_RSTN_EN |
+	      DPTX_FRMR_DATA_CLK_EN |
+	      DPTX_PHY_DATA_RSTN_EN |
+	      DPTX_PHY_DATA_CLK_EN |
+	      DPTX_PHY_CHAR_RSTN_EN |
+	      DPTX_PHY_CHAR_CLK_EN |
+	      SOURCE_AUX_SYS_CLK_RSTN_EN |
+	      SOURCE_AUX_SYS_CLK_EN |
+	      DPTX_SYS_CLK_RSTN_EN |
+	      DPTX_SYS_CLK_EN |
+	      CFG_DPTX_VIF_CLK_RSTN_EN |
+	      CFG_DPTX_VIF_CLK_EN;
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_DPTX_CAR);
+
+	val = SOURCE_PHY_RSTN_EN | SOURCE_PHY_CLK_EN;
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_PHY_CAR);
+
+	val = SOURCE_PKT_SYS_RSTN_EN |
+	      SOURCE_PKT_SYS_CLK_EN |
+	      SOURCE_PKT_DATA_RSTN_EN |
+	      SOURCE_PKT_DATA_CLK_EN;
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_PKT_CAR);
+
+	val = SPDIF_CDR_CLK_RSTN_EN |
+	      SPDIF_CDR_CLK_EN |
+	      SOURCE_AIF_SYS_RSTN_EN |
+	      SOURCE_AIF_SYS_CLK_EN |
+	      SOURCE_AIF_CLK_RSTN_EN |
+	      SOURCE_AIF_CLK_EN;
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_AIF_CAR);
+
+	val = SOURCE_CIPHER_SYSTEM_CLK_RSTN_EN |
+	      SOURCE_CIPHER_SYS_CLK_EN |
+	      SOURCE_CIPHER_CHAR_CLK_RSTN_EN |
+	      SOURCE_CIPHER_CHAR_CLK_EN;
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_CIPHER_CAR);
+
+	val = SOURCE_CRYPTO_SYS_CLK_RSTN_EN |
+	      SOURCE_CRYPTO_SYS_CLK_EN;
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_CRYPTO_CAR);
+
+	/* enable Mailbox and PIF interrupt */
+	cdns_mhdp_bus_write(0, mhdp, APB_INT_MASK);
+}
+EXPORT_SYMBOL(cdns_mhdp_clock_reset);
+
+bool cdns_mhdp_check_alive(struct cdns_mhdp_device *mhdp)
+{
+	u32  alive, newalive;
+	u8 retries_left = 50;
+
+	alive = cdns_mhdp_bus_read(mhdp, KEEP_ALIVE);
+
+	while (retries_left--) {
+		udelay(2);
+
+		newalive = cdns_mhdp_bus_read(mhdp, KEEP_ALIVE);
+		if (alive == newalive)
+			continue;
+		return true;
+	}
+	return false;
+}
+EXPORT_SYMBOL(cdns_mhdp_check_alive);
+
+static int mhdp_mailbox_read(struct cdns_mhdp_device *mhdp)
+{
+	int val, ret;
+
+	ret = mhdp_readx_poll_timeout(cdns_mhdp_bus_read, mhdp, MAILBOX_EMPTY_ADDR,
+				 val, !val, MAILBOX_RETRY_US,
+				 MAILBOX_TIMEOUT_US);
+	if (ret < 0)
+		return ret;
+
+	return cdns_mhdp_bus_read(mhdp, MAILBOX0_RD_DATA) & 0xff;
+}
+
+static int mhdp_mailbox_write(struct cdns_mhdp_device *mhdp, u8 val)
+{
+	int ret, full;
+
+	ret = mhdp_readx_poll_timeout(cdns_mhdp_bus_read, mhdp, MAILBOX_FULL_ADDR,
+				 full, !full, MAILBOX_RETRY_US,
+				 MAILBOX_TIMEOUT_US);
+	if (ret < 0)
+		return ret;
+
+	cdns_mhdp_bus_write(val, mhdp, MAILBOX0_WR_DATA);
+
+	return 0;
+}
+
+int cdns_mhdp_mailbox_validate_receive(struct cdns_mhdp_device *mhdp,
+					      u8 module_id, u8 opcode,
+					      u16 req_size)
+{
+	u32 mbox_size, i;
+	u8 header[4];
+	int ret;
+
+	/* read the header of the message */
+	for (i = 0; i < 4; i++) {
+		ret = mhdp_mailbox_read(mhdp);
+		if (ret < 0)
+			return ret;
+
+		header[i] = ret;
+	}
+
+	mbox_size = get_unaligned_be16(header + 2);
+
+	if (opcode != header[0] || module_id != header[1] ||
+	    req_size != mbox_size) {
+		/*
+		 * If the message in mailbox is not what we want, we need to
+		 * clear the mailbox by reading its contents.
+		 */
+		for (i = 0; i < mbox_size; i++)
+			if (mhdp_mailbox_read(mhdp) < 0)
+				break;
+
+		return -EINVAL;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL(cdns_mhdp_mailbox_validate_receive);
+
+int cdns_mhdp_mailbox_read_receive(struct cdns_mhdp_device *mhdp,
+					  u8 *buff, u16 buff_size)
+{
+	u32 i;
+	int ret;
+
+	for (i = 0; i < buff_size; i++) {
+		ret = mhdp_mailbox_read(mhdp);
+		if (ret < 0)
+			return ret;
+
+		buff[i] = ret;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL(cdns_mhdp_mailbox_read_receive);
+
+int cdns_mhdp_mailbox_send(struct cdns_mhdp_device *mhdp, u8 module_id,
+				  u8 opcode, u16 size, u8 *message)
+{
+	u8 header[4];
+	int ret, i;
+
+	header[0] = opcode;
+	header[1] = module_id;
+	put_unaligned_be16(size, header + 2);
+
+	for (i = 0; i < 4; i++) {
+		ret = mhdp_mailbox_write(mhdp, header[i]);
+		if (ret)
+			return ret;
+	}
+
+	for (i = 0; i < size; i++) {
+		ret = mhdp_mailbox_write(mhdp, message[i]);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL(cdns_mhdp_mailbox_send);
+
+int cdns_mhdp_reg_read(struct cdns_mhdp_device *mhdp, u32 addr)
+{
+	u8 msg[4], resp[8];
+	u32 val;
+	int ret;
+
+	if (addr == 0) {
+		ret = -EINVAL;
+		goto err_reg_read;
+	}
+
+	put_unaligned_be32(addr, msg);
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_GENERAL,
+				     GENERAL_READ_REGISTER,
+				     sizeof(msg), msg);
+	if (ret)
+		goto err_reg_read;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_GENERAL,
+						 GENERAL_READ_REGISTER,
+						 sizeof(resp));
+	if (ret)
+		goto err_reg_read;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, resp, sizeof(resp));
+	if (ret)
+		goto err_reg_read;
+
+	/* Returned address value should be the same as requested */
+	if (memcmp(msg, resp, sizeof(msg))) {
+		ret = -EINVAL;
+		goto err_reg_read;
+	}
+
+	val = get_unaligned_be32(resp + 4);
+
+	return val;
+err_reg_read:
+	DRM_DEV_ERROR(mhdp->dev, "Failed to read register.\n");
+
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_reg_read);
+
+int cdns_mhdp_reg_write(struct cdns_mhdp_device *mhdp, u32 addr, u32 val)
+{
+	u8 msg[8];
+
+	put_unaligned_be32(addr, msg);
+	put_unaligned_be32(val, msg + 4);
+
+	return cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_GENERAL,
+				      GENERAL_WRITE_REGISTER, sizeof(msg), msg);
+}
+EXPORT_SYMBOL(cdns_mhdp_reg_write);
+
+int cdns_mhdp_reg_write_bit(struct cdns_mhdp_device *mhdp, u16 addr,
+				   u8 start_bit, u8 bits_no, u32 val)
+{
+	u8 field[8];
+
+	put_unaligned_be16(addr, field);
+	field[2] = start_bit;
+	field[3] = bits_no;
+	put_unaligned_be32(val, field + 4);
+
+	return cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				      DPTX_WRITE_FIELD, sizeof(field), field);
+}
+EXPORT_SYMBOL(cdns_mhdp_reg_write_bit);
+
+int cdns_mhdp_load_firmware(struct cdns_mhdp_device *mhdp, const u32 *i_mem,
+			    u32 i_size, const u32 *d_mem, u32 d_size)
+{
+	u32 reg;
+	int i, ret;
+
+	/* reset ucpu before load firmware*/
+	cdns_mhdp_bus_write(APB_IRAM_PATH | APB_DRAM_PATH | APB_XT_RESET,
+	       mhdp, APB_CTRL);
+
+	for (i = 0; i < i_size; i += 4)
+		cdns_mhdp_bus_write(*i_mem++, mhdp, ADDR_IMEM + i);
+
+	for (i = 0; i < d_size; i += 4)
+		cdns_mhdp_bus_write(*d_mem++, mhdp, ADDR_DMEM + i);
+
+	/* un-reset ucpu */
+	cdns_mhdp_bus_write(0, mhdp, APB_CTRL);
+
+	/* check the keep alive register to make sure fw working */
+	ret = mhdp_readx_poll_timeout(cdns_mhdp_bus_read, mhdp, KEEP_ALIVE,
+				 reg, reg, 2000, FW_ALIVE_TIMEOUT_US);
+	if (ret < 0) {
+		DRM_DEV_ERROR(mhdp->dev, "failed to loaded the FW reg = %x\n",
+			      reg);
+		return -EINVAL;
+	}
+
+	reg = cdns_mhdp_bus_read(mhdp, VER_L) & 0xff;
+	mhdp->fw_version = reg;
+	reg = cdns_mhdp_bus_read(mhdp, VER_H) & 0xff;
+	mhdp->fw_version |= reg << 8;
+	reg = cdns_mhdp_bus_read(mhdp, VER_LIB_L_ADDR) & 0xff;
+	mhdp->fw_version |= reg << 16;
+	reg = cdns_mhdp_bus_read(mhdp, VER_LIB_H_ADDR) & 0xff;
+	mhdp->fw_version |= reg << 24;
+
+	DRM_DEV_DEBUG(mhdp->dev, "firmware version: %x\n", mhdp->fw_version);
+
+	return 0;
+}
+EXPORT_SYMBOL(cdns_mhdp_load_firmware);
+
+int cdns_mhdp_set_firmware_active(struct cdns_mhdp_device *mhdp, bool enable)
+{
+	u8 msg[5];
+	int ret, i;
+
+	msg[0] = GENERAL_MAIN_CONTROL;
+	msg[1] = MB_MODULE_ID_GENERAL;
+	msg[2] = 0;
+	msg[3] = 1;
+	msg[4] = enable ? FW_ACTIVE : FW_STANDBY;
+
+	for (i = 0; i < sizeof(msg); i++) {
+		ret = mhdp_mailbox_write(mhdp, msg[i]);
+		if (ret)
+			goto err_set_firmware_active;
+	}
+
+	/* read the firmware state */
+	for (i = 0; i < sizeof(msg); i++)  {
+		ret = mhdp_mailbox_read(mhdp);
+		if (ret < 0)
+			goto err_set_firmware_active;
+
+		msg[i] = ret;
+	}
+
+	ret = 0;
+
+err_set_firmware_active:
+	if (ret < 0)
+		DRM_DEV_ERROR(mhdp->dev, "set firmware active failed\n");
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_set_firmware_active);
+
+int cdns_mhdp_set_host_cap(struct cdns_mhdp_device *mhdp)
+{
+	u8 msg[8];
+	int ret;
+
+	msg[0] = drm_dp_link_rate_to_bw_code(mhdp->dp.rate);
+	msg[1] = mhdp->dp.num_lanes | SCRAMBLER_EN;
+	msg[2] = VOLTAGE_LEVEL_3;
+	msg[3] = PRE_EMPHASIS_LEVEL_2;
+	msg[4] = PTS1 | PTS2 | PTS3 | PTS4;
+	msg[5] = FAST_LT_NOT_SUPPORT;
+	msg[6] = mhdp->lane_mapping;
+	msg[7] = ENHANCED;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_SET_HOST_CAPABILITIES,
+				     sizeof(msg), msg);
+	if (ret)
+		goto err_set_host_cap;
+
+/* TODO Sandor */
+//	ret = cdns_mhdp_reg_write(mhdp, DP_AUX_SWAP_INVERSION_CONTROL,
+//				  AUX_HOST_INVERT);
+
+err_set_host_cap:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "set host cap failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_set_host_cap);
+
+int cdns_mhdp_event_config(struct cdns_mhdp_device *mhdp)
+{
+	u8 msg[5];
+	int ret;
+
+	memset(msg, 0, sizeof(msg));
+
+	msg[0] = MHDP_EVENT_ENABLE_HPD | MHDP_EVENT_ENABLE_TRAINING;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_ENABLE_EVENT, sizeof(msg), msg);
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "set event config failed: %d\n", ret);
+
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_event_config);
+
+u32 cdns_mhdp_get_event(struct cdns_mhdp_device *mhdp)
+{
+	return cdns_mhdp_bus_read(mhdp, SW_EVENTS0);
+}
+EXPORT_SYMBOL(cdns_mhdp_get_event);
+
+int cdns_mhdp_read_hpd(struct cdns_mhdp_device *mhdp)
+{
+	u8 status;
+	int ret;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_GENERAL, GENERAL_GET_HPD_STATE,
+				  0, NULL);
+	if (ret)
+		goto err_get_hpd;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_GENERAL,
+							GENERAL_GET_HPD_STATE, sizeof(status));
+	if (ret)
+		goto err_get_hpd;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, &status, sizeof(status));
+	if (ret)
+		goto err_get_hpd;
+
+	return status;
+
+err_get_hpd:
+	DRM_ERROR("read hpd  failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_read_hpd);
+
+int cdns_mhdp_get_edid_block(void *data, u8 *edid,
+			  unsigned int block, size_t length)
+{
+	struct cdns_mhdp_device *mhdp = data;
+	u8 msg[2], reg[2], i;
+	int ret;
+
+	for (i = 0; i < 4; i++) {
+		msg[0] = block / 2;
+		msg[1] = block % 2;
+
+		ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+					     DPTX_GET_EDID, sizeof(msg), msg);
+		if (ret)
+			continue;
+
+		ret = cdns_mhdp_mailbox_validate_receive(mhdp,
+							 MB_MODULE_ID_DP_TX,
+							 DPTX_GET_EDID,
+							 sizeof(reg) + length);
+		if (ret)
+			continue;
+
+		ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+		if (ret)
+			continue;
+
+		ret = cdns_mhdp_mailbox_read_receive(mhdp, edid, length);
+		if (ret)
+			continue;
+
+		if (reg[0] == length && reg[1] == block / 2)
+			break;
+	}
+
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "get block[%d] edid failed: %d\n",
+			      block, ret);
+
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_get_edid_block);
+
+int cdns_mhdp_set_video_status(struct cdns_mhdp_device *mhdp, int active)
+{
+	u8 msg;
+	int ret;
+
+	msg = !!active;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_SET_VIDEO, sizeof(msg), &msg);
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "set video status failed: %d\n", ret);
+
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_set_video_status);
+
+static int mhdp_get_msa_misc(struct video_info *video,
+				  struct drm_display_mode *mode)
+{
+	u32 msa_misc;
+	u8 val[2] = {0};
+
+	switch (video->color_fmt) {
+	case PXL_RGB:
+	case Y_ONLY:
+		val[0] = 0;
+		break;
+	/* set YUV default color space conversion to BT601 */
+	case YCBCR_4_4_4:
+		val[0] = 6 + BT_601 * 8;
+		break;
+	case YCBCR_4_2_2:
+		val[0] = 5 + BT_601 * 8;
+		break;
+	case YCBCR_4_2_0:
+		val[0] = 5;
+		break;
+	}
+
+	switch (video->color_depth) {
+	case 6:
+		val[1] = 0;
+		break;
+	case 8:
+		val[1] = 1;
+		break;
+	case 10:
+		val[1] = 2;
+		break;
+	case 12:
+		val[1] = 3;
+		break;
+	case 16:
+		val[1] = 4;
+		break;
+	}
+
+	msa_misc = 2 * val[0] + 32 * val[1] +
+		   ((video->color_fmt == Y_ONLY) ? (1 << 14) : 0);
+
+	return msa_misc;
+}
+
+int cdns_mhdp_config_video(struct cdns_mhdp_device *mhdp)
+{
+	struct video_info *video = &mhdp->video_info;
+	struct drm_display_mode *mode = &mhdp->mode;
+	u64 symbol;
+	u32 val, link_rate, rem;
+	u8 bit_per_pix, tu_size_reg = TU_SIZE;
+	int ret;
+
+	bit_per_pix = (video->color_fmt == YCBCR_4_2_2) ?
+		      (video->color_depth * 2) : (video->color_depth * 3);
+
+	link_rate = mhdp->dp.rate / 1000;
+
+	ret = cdns_mhdp_reg_write(mhdp, BND_HSYNC2VSYNC, VIF_BYPASS_INTERLACE);
+	if (ret)
+		goto err_config_video;
+
+	ret = cdns_mhdp_reg_write(mhdp, HSYNC2VSYNC_POL_CTRL, 0);
+	if (ret)
+		goto err_config_video;
+
+	/*
+	 * get a best tu_size and valid symbol:
+	 * 1. chose Lclk freq(162Mhz, 270Mhz, 540Mhz), set TU to 32
+	 * 2. calculate VS(valid symbol) = TU * Pclk * Bpp / (Lclk * Lanes)
+	 * 3. if VS > *.85 or VS < *.1 or VS < 2 or TU < VS + 4, then set
+	 *    TU += 2 and repeat 2nd step.
+	 */
+	do {
+		tu_size_reg += 2;
+		symbol = (u64) tu_size_reg * mode->clock * bit_per_pix;
+		do_div(symbol, mhdp->dp.num_lanes * link_rate * 8);
+		rem = do_div(symbol, 1000);
+		if (tu_size_reg > 64) {
+			ret = -EINVAL;
+			DRM_DEV_ERROR(mhdp->dev,
+				      "tu error, clk:%d, lanes:%d, rate:%d\n",
+				      mode->clock, mhdp->dp.num_lanes,
+				      link_rate);
+			goto err_config_video;
+		}
+	} while ((symbol <= 1) || (tu_size_reg - symbol < 4) ||
+		 (rem > 850) || (rem < 100));
+
+	val = symbol + (tu_size_reg << 8);
+	val |= TU_CNT_RST_EN;
+	ret = cdns_mhdp_reg_write(mhdp, DP_FRAMER_TU, val);
+	if (ret)
+		goto err_config_video;
+
+	/* set the FIFO Buffer size */
+	val = div_u64(mode->clock * (symbol + 1), 1000) + link_rate;
+	val /= (mhdp->dp.num_lanes * link_rate);
+	val = div_u64(8 * (symbol + 1), bit_per_pix) - val;
+	val += 2;
+	ret = cdns_mhdp_reg_write(mhdp, DP_VC_TABLE(15), val);
+
+	switch (video->color_depth) {
+	case 6:
+		val = BCS_6;
+		break;
+	case 8:
+		val = BCS_8;
+		break;
+	case 10:
+		val = BCS_10;
+		break;
+	case 12:
+		val = BCS_12;
+		break;
+	case 16:
+		val = BCS_16;
+		break;
+	}
+
+	val += video->color_fmt << 8;
+	ret = cdns_mhdp_reg_write(mhdp, DP_FRAMER_PXL_REPR, val);
+	if (ret)
+		goto err_config_video;
+
+	val = video->h_sync_polarity ? DP_FRAMER_SP_HSP : 0;
+	val |= video->v_sync_polarity ? DP_FRAMER_SP_VSP : 0;
+	ret = cdns_mhdp_reg_write(mhdp, DP_FRAMER_SP, val);
+	if (ret)
+		goto err_config_video;
+
+	val = (mode->hsync_start - mode->hdisplay) << 16;
+	val |= mode->htotal - mode->hsync_end;
+	ret = cdns_mhdp_reg_write(mhdp, DP_FRONT_BACK_PORCH, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->hdisplay * bit_per_pix / 8;
+	ret = cdns_mhdp_reg_write(mhdp, DP_BYTE_COUNT, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->htotal | ((mode->htotal - mode->hsync_start) << 16);
+	ret = cdns_mhdp_reg_write(mhdp, MSA_HORIZONTAL_0, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->hsync_end - mode->hsync_start;
+	val |= (mode->hdisplay << 16) | (video->h_sync_polarity << 15);
+	ret = cdns_mhdp_reg_write(mhdp, MSA_HORIZONTAL_1, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->vtotal;
+	val |= (mode->vtotal - mode->vsync_start) << 16;
+	ret = cdns_mhdp_reg_write(mhdp, MSA_VERTICAL_0, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->vsync_end - mode->vsync_start;
+	val |= (mode->vdisplay << 16) | (video->v_sync_polarity << 15);
+	ret = cdns_mhdp_reg_write(mhdp, MSA_VERTICAL_1, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mhdp_get_msa_misc(video, mode);
+	ret = cdns_mhdp_reg_write(mhdp, MSA_MISC, val);
+	if (ret)
+		goto err_config_video;
+
+	ret = cdns_mhdp_reg_write(mhdp, STREAM_CONFIG, 1);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->hsync_end - mode->hsync_start;
+	val |= mode->hdisplay << 16;
+	ret = cdns_mhdp_reg_write(mhdp, DP_HORIZONTAL, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->vdisplay;
+	val |= (mode->vtotal - mode->vsync_start) << 16;
+	ret = cdns_mhdp_reg_write(mhdp, DP_VERTICAL_0, val);
+	if (ret)
+		goto err_config_video;
+
+	val = mode->vtotal;
+	ret = cdns_mhdp_reg_write(mhdp, DP_VERTICAL_1, val);
+	if (ret)
+		goto err_config_video;
+
+	ret = cdns_mhdp_reg_write_bit(mhdp, DP_VB_ID, 2, 1, 0);
+
+err_config_video:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "config video failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_config_video);
+
+int cdns_phy_reg_write(struct cdns_mhdp_device *mhdp, u32 addr, u32 val)
+{
+	return cdns_mhdp_reg_write(mhdp, ADDR_PHY_AFE + (addr << 2), val);
+}
+EXPORT_SYMBOL(cdns_phy_reg_write);
+
+u32 cdns_phy_reg_read(struct cdns_mhdp_device *mhdp, u32 addr)
+{
+	return cdns_mhdp_reg_read(mhdp, ADDR_PHY_AFE + (addr << 2));
+}
+EXPORT_SYMBOL(cdns_phy_reg_read);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-mhdp-dp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-mhdp-dp.c
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <asm/unaligned.h>
+#include <drm/bridge/cdns-mhdp.h>
+#include <drm/drm_print.h>
+#include <linux/io.h>
+
+#define LINK_TRAINING_TIMEOUT_MS	500
+#define LINK_TRAINING_RETRY_MS		20
+
+static inline u32 get_unaligned_be24(const void *p)
+{
+       const u8 *_p = p;
+
+       return _p[0] << 16 | _p[1] << 8 | _p[2];
+}
+
+static inline void put_unaligned_be24(u32 val, void *p)
+{
+       u8 *_p = p;
+
+       _p[0] = val >> 16;
+       _p[1] = val >> 8;
+       _p[2] = val;
+}
+
+int cdns_mhdp_dpcd_read(struct cdns_mhdp_device *mhdp,
+			u32 addr, u8 *data, u16 len)
+{
+	u8 msg[5], reg[5];
+	int ret;
+
+	put_unaligned_be16(len, msg);
+	put_unaligned_be24(addr, msg + 2);
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_READ_DPCD, sizeof(msg), msg);
+	if (ret)
+		goto err_dpcd_read;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_DP_TX,
+						 DPTX_READ_DPCD,
+						 sizeof(reg) + len);
+	if (ret)
+		goto err_dpcd_read;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+	if (ret)
+		goto err_dpcd_read;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, data, len);
+
+err_dpcd_read:
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_dpcd_read);
+
+int cdns_mhdp_i2c_read(struct cdns_mhdp_device *mhdp, u8 addr, u8 *data,
+	 u16 len, u8 mot, u16 *respLength)
+{
+	u8 msg[5], reg[3];
+	int ret;
+
+	put_unaligned_be16(len, msg);
+	msg[2] = addr;
+	msg[3] = mot;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_I2C_READ, sizeof(msg), msg);
+	if (ret)
+		goto err_i2c_read;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_DP_TX,
+						 DPTX_I2C_READ,
+						 sizeof(reg) + len);
+	if (ret)
+		goto err_i2c_read;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+	if (ret)
+		goto err_i2c_read;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, data, len);
+	*respLength = (reg[0] << 8u) + reg[1];
+
+err_i2c_read:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "i2c read failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_i2c_read);
+
+int cdns_mhdp_dpcd_write(struct cdns_mhdp_device *mhdp, u32 addr, u8 value)
+{
+	u8 msg[6], reg[5];
+	int ret;
+
+	put_unaligned_be16(1, msg);
+	put_unaligned_be24(addr, msg + 2);
+	msg[5] = value;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_WRITE_DPCD, sizeof(msg), msg);
+	if (ret)
+		goto err_dpcd_write;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_DP_TX,
+						 DPTX_WRITE_DPCD, sizeof(reg));
+	if (ret)
+		goto err_dpcd_write;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+	if (ret)
+		goto err_dpcd_write;
+
+	if (addr != get_unaligned_be24(reg + 2))
+		ret = -EINVAL;
+
+err_dpcd_write:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "dpcd write failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_dpcd_write);
+
+int cdns_mhdp_i2c_write(struct cdns_mhdp_device *mhdp, u8 addr, u8 *value,
+	 u8 mot, u16 len, u16 *respLength)
+{
+	u8 msg[4+DP_AUX_MAX_PAYLOAD_BYTES], reg[3];
+	int ret;
+
+	put_unaligned_be16(len, msg);
+	msg[2] = addr;
+	msg[3] = mot;
+	memcpy(&msg[4], value, len);
+
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_I2C_WRITE, sizeof(msg), msg);
+	if (ret)
+		goto err_i2c_write;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_DP_TX,
+						 DPTX_I2C_WRITE, sizeof(reg));
+	if (ret)
+		goto err_i2c_write;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+	if (ret)
+		goto err_i2c_write;
+
+	if (addr != reg[2])
+		ret = -EINVAL;
+
+	*respLength = (reg[0]<<8u) + reg[1];
+
+err_i2c_write:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "i2c write failed: %d\n", ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_i2c_write);
+
+
+int cdns_mhdp_get_last_i2c_status(struct cdns_mhdp_device *mhdp, u8 *resp)
+{
+	u8 status[1];
+	int ret;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_GET_LAST_I2C_STATUS, 0, NULL);
+	if (ret)
+		goto err_get_i2c_status;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_DP_TX,
+						 DPTX_GET_LAST_I2C_STATUS,
+						 sizeof(status));
+	if (ret)
+		goto err_get_i2c_status;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, status, sizeof(status));
+	if (ret)
+		goto err_get_i2c_status;
+
+	*resp = status[0];
+
+err_get_i2c_status:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "get i2c status failed: %d\n",
+			      ret);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_get_last_i2c_status);
+
+static int cdns_mhdp_training_start(struct cdns_mhdp_device *mhdp)
+{
+	unsigned long timeout;
+	u8 msg, event[2];
+	int ret;
+
+	msg = LINK_TRAINING_RUN;
+
+	/* start training */
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_TRAINING_CONTROL, sizeof(msg), &msg);
+	if (ret)
+		goto err_training_start;
+
+	timeout = jiffies + msecs_to_jiffies(LINK_TRAINING_TIMEOUT_MS);
+	while (time_before(jiffies, timeout)) {
+		msleep(LINK_TRAINING_RETRY_MS);
+		ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+					     DPTX_READ_EVENT, 0, NULL);
+		if (ret)
+			goto err_training_start;
+
+		ret = cdns_mhdp_mailbox_validate_receive(mhdp,
+							 MB_MODULE_ID_DP_TX,
+							 DPTX_READ_EVENT,
+							 sizeof(event));
+		if (ret)
+			goto err_training_start;
+
+		ret = cdns_mhdp_mailbox_read_receive(mhdp, event,
+						     sizeof(event));
+		if (ret)
+			goto err_training_start;
+
+		if (event[1] & CLK_RECOVERY_FAILED)
+			DRM_DEV_ERROR(mhdp->dev, "clock recovery failed\n");
+		else if (event[1] & EQ_PHASE_FINISHED)
+			return 0;
+	}
+
+	ret = -ETIMEDOUT;
+
+err_training_start:
+	DRM_DEV_ERROR(mhdp->dev, "training failed: %d\n", ret);
+	return ret;
+}
+
+static int cdns_mhdp_get_training_status(struct cdns_mhdp_device *mhdp)
+{
+	u8 status[10];
+	int ret;
+
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_DP_TX,
+				     DPTX_READ_LINK_STAT, 0, NULL);
+	if (ret)
+		goto err_get_training_status;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_DP_TX,
+						 DPTX_READ_LINK_STAT,
+						 sizeof(status));
+	if (ret)
+		goto err_get_training_status;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, status, sizeof(status));
+	if (ret)
+		goto err_get_training_status;
+
+	mhdp->dp.rate = drm_dp_bw_code_to_link_rate(status[0]);
+	mhdp->dp.num_lanes = status[1];
+
+err_get_training_status:
+	if (ret)
+		DRM_DEV_ERROR(mhdp->dev, "get training status failed: %d\n",
+			      ret);
+	return ret;
+}
+
+int cdns_mhdp_train_link(struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	ret = cdns_mhdp_training_start(mhdp);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed to start training %d\n",
+			      ret);
+		return ret;
+	}
+
+	ret = cdns_mhdp_get_training_status(mhdp);
+	if (ret) {
+		DRM_DEV_ERROR(mhdp->dev, "Failed to get training stat %d\n",
+			      ret);
+		return ret;
+	}
+
+	DRM_DEV_DEBUG_KMS(mhdp->dev, "rate:0x%x, lanes:%d\n", mhdp->dp.rate,
+			  mhdp->dp.num_lanes);
+	return ret;
+}
+EXPORT_SYMBOL(cdns_mhdp_train_link);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-mhdp-hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-mhdp-hdmi.c
@@ -0,0 +1,332 @@
+/*
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <drm/drm_vblank.h>
+#include <drm/drm_print.h>
+#include <linux/io.h>
+#include <drm/bridge/cdns-mhdp.h>
+#include <linux/regmap.h>
+
+void cdns_mhdp_infoframe_set(struct cdns_mhdp_device *mhdp,
+					u8 entry_id, u8 packet_len, u8 *packet, u8 packet_type)
+{
+	u32 *packet32, len32;
+	u32 val, i;
+
+	/* invalidate entry */
+	val = F_ACTIVE_IDLE_TYPE(1) | F_PKT_ALLOC_ADDRESS(entry_id);
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_PIF_PKT_ALLOC_REG);
+	cdns_mhdp_bus_write(F_PKT_ALLOC_WR_EN(1), mhdp, SOURCE_PIF_PKT_ALLOC_WR_EN);
+
+	/* flush fifo 1 */
+	cdns_mhdp_bus_write(F_FIFO1_FLUSH(1), mhdp, SOURCE_PIF_FIFO1_FLUSH);
+
+	/* write packet into memory */
+	packet32 = (u32 *)packet;
+	len32 = packet_len / 4;
+	for (i = 0; i < len32; i++)
+		cdns_mhdp_bus_write(F_DATA_WR(packet32[i]), mhdp, SOURCE_PIF_DATA_WR);
+
+	/* write entry id */
+	cdns_mhdp_bus_write(F_WR_ADDR(entry_id), mhdp, SOURCE_PIF_WR_ADDR);
+
+	/* write request */
+	cdns_mhdp_bus_write(F_HOST_WR(1), mhdp, SOURCE_PIF_WR_REQ);
+
+	/* update entry */
+	val =  F_ACTIVE_IDLE_TYPE(1) | F_TYPE_VALID(1) |
+			F_PACKET_TYPE(packet_type) | F_PKT_ALLOC_ADDRESS(entry_id);
+	cdns_mhdp_bus_write(val, mhdp, SOURCE_PIF_PKT_ALLOC_REG);
+
+	cdns_mhdp_bus_write(F_PKT_ALLOC_WR_EN(1), mhdp, SOURCE_PIF_PKT_ALLOC_WR_EN);
+}
+
+int cdns_hdmi_get_edid_block(void *data, u8 *edid,
+			  u32 block, size_t length)
+{
+	struct cdns_mhdp_device *mhdp = data;
+	u8 msg[2], reg[5], i;
+	int ret;
+
+	for (i = 0; i < 4; i++) {
+		msg[0] = block / 2;
+		msg[1] = block % 2;
+
+		ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_HDMI_TX, HDMI_TX_EDID,
+					  sizeof(msg), msg);
+		if (ret)
+			continue;
+
+		ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_HDMI_TX,
+						      HDMI_TX_EDID, sizeof(reg) + length);
+		if (ret)
+			continue;
+
+		ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+		if (ret)
+			continue;
+
+		ret = cdns_mhdp_mailbox_read_receive(mhdp, edid, length);
+		if (ret)
+			continue;
+
+		if ((reg[3] << 8 | reg[4]) == length)
+			break;
+	}
+
+	if (ret)
+		DRM_ERROR("get block[%d] edid failed: %d\n", block, ret);
+	return ret;
+}
+
+int cdns_hdmi_scdc_read(struct cdns_mhdp_device *mhdp, u8 addr, u8 *data)
+{
+	u8 msg[4], reg[6];
+	int ret;
+
+	msg[0] = 0x54;
+	msg[1] = addr;
+	msg[2] = 0;
+	msg[3] = 1;
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_HDMI_TX, HDMI_TX_READ,
+				  sizeof(msg), msg);
+	if (ret)
+		goto err_scdc_read;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_HDMI_TX,
+					      HDMI_TX_READ, sizeof(reg));
+	if (ret)
+		goto err_scdc_read;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+	if (ret)
+		goto err_scdc_read;
+
+	*data = reg[5];
+
+err_scdc_read:
+	if (ret)
+		DRM_ERROR("scdc read failed: %d\n", ret);
+	return ret;
+}
+
+int cdns_hdmi_scdc_write(struct cdns_mhdp_device *mhdp, u8 addr, u8 value)
+{
+	u8 msg[5], reg[5];
+	int ret;
+
+	msg[0] = 0x54;
+	msg[1] = addr;
+	msg[2] = 0;
+	msg[3] = 1;
+	msg[4] = value;
+	ret = cdns_mhdp_mailbox_send(mhdp, MB_MODULE_ID_HDMI_TX, HDMI_TX_WRITE,
+				  sizeof(msg), msg);
+	if (ret)
+		goto err_scdc_write;
+
+	ret = cdns_mhdp_mailbox_validate_receive(mhdp, MB_MODULE_ID_HDMI_TX,
+					      HDMI_TX_WRITE, sizeof(reg));
+	if (ret)
+		goto err_scdc_write;
+
+	ret = cdns_mhdp_mailbox_read_receive(mhdp, reg, sizeof(reg));
+	if (ret)
+		goto err_scdc_write;
+
+	if (reg[0] != 0)
+		ret = -EINVAL;
+
+err_scdc_write:
+	if (ret)
+		DRM_ERROR("scdc write failed: %d\n", ret);
+	return ret;
+}
+
+int cdns_hdmi_ctrl_init(struct cdns_mhdp_device *mhdp,
+				 int protocol,
+				 u32 char_rate)
+{
+	u32 reg0;
+	u32 reg1;
+	u32 val;
+	int ret;
+
+	/* Set PHY to HDMI data */
+	ret = cdns_mhdp_reg_write(mhdp, PHY_DATA_SEL, F_SOURCE_PHY_MHDP_SEL(1));
+	if (ret < 0)
+		return ret;
+
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_HPD,
+					F_HPD_VALID_WIDTH(4) | F_HPD_GLITCH_WIDTH(0));
+	if (ret < 0)
+		return ret;
+
+	/* open CARS */
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_PHY_CAR, 0xF);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_HDTX_CAR, 0xFF);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_PKT_CAR, 0xF);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_AIF_CAR, 0xF);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_CIPHER_CAR, 0xF);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_CRYPTO_CAR, 0xF);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, SOURCE_CEC_CAR, 3);
+	if (ret < 0)
+		return ret;
+
+	reg0 = reg1 = 0x7c1f;
+	if (protocol == MODE_HDMI_2_0 && char_rate >= 340000) {
+		reg0 = 0;
+		reg1 = 0xFFFFF;
+	}
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_CLOCK_REG_0, reg0);
+	if (ret < 0)
+		return ret;
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_CLOCK_REG_1, reg1);
+	if (ret < 0)
+		return ret;
+
+	/* set hdmi mode and preemble mode data enable */
+	val = F_HDMI_MODE(protocol) | F_HDMI2_PREAMBLE_EN(1) |  F_DATA_EN(1) |
+			F_HDMI2_CTRL_IL_MODE(1) | F_BCH_EN(1) | F_PIC_3D(0XF);
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_CONTROLLER, val);
+
+	return ret;
+}
+
+int cdns_hdmi_mode_config(struct cdns_mhdp_device *mhdp,
+					      struct drm_display_mode *mode,
+						  struct video_info *video_info)
+{
+	int ret;
+	u32 val;
+	u32 vsync_lines = mode->vsync_end - mode->vsync_start;
+	u32 eof_lines = mode->vsync_start - mode->vdisplay;
+	u32 sof_lines = mode->vtotal - mode->vsync_end;
+	u32 hblank = mode->htotal - mode->hdisplay;
+	u32 hactive = mode->hdisplay;
+	u32 vblank = mode->vtotal - mode->vdisplay;
+	u32 vactive = mode->vdisplay;
+	u32 hfront = mode->hsync_start - mode->hdisplay;
+	u32 hback = mode->htotal - mode->hsync_end;
+	u32 vfront = eof_lines;
+	u32 hsync = hblank - hfront - hback;
+	u32 vsync = vsync_lines;
+	u32 vback = sof_lines;
+	u32 v_h_polarity = ((mode->flags & DRM_MODE_FLAG_NHSYNC) ? 0 : 1) +
+						((mode->flags & DRM_MODE_FLAG_NVSYNC) ? 0 : 2);
+
+	ret = cdns_mhdp_reg_write(mhdp, SCHEDULER_H_SIZE, (hactive << 16) + hblank);
+	if (ret < 0)
+		return ret;
+
+	ret = cdns_mhdp_reg_write(mhdp, SCHEDULER_V_SIZE, (vactive << 16) + vblank);
+	if (ret < 0)
+		return ret;
+
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_SIGNAL_FRONT_WIDTH, (vfront << 16) + hfront);
+	if (ret < 0)
+		return ret;
+
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_SIGNAL_SYNC_WIDTH, (vsync << 16) + hsync);
+	if (ret < 0)
+		return ret;
+
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_SIGNAL_BACK_WIDTH, (vback << 16) + hback);
+	if (ret < 0)
+		return ret;
+
+	ret = cdns_mhdp_reg_write(mhdp, HSYNC2VSYNC_POL_CTRL, v_h_polarity);
+	if (ret < 0)
+		return ret;
+
+	/* Reset Data Enable */
+	val = cdns_mhdp_reg_read(mhdp, HDTX_CONTROLLER);
+	val &= ~F_DATA_EN(1);
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_CONTROLLER, val);
+	if (ret < 0)
+		return ret;
+
+	/* Set bpc */
+	val &= ~F_VIF_DATA_WIDTH(3);
+	switch (video_info->color_depth) {
+	case 10:
+		val |= F_VIF_DATA_WIDTH(1);
+		break;
+	case 12:
+		val |= F_VIF_DATA_WIDTH(2);
+		break;
+	case 16:
+		val |= F_VIF_DATA_WIDTH(3);
+		break;
+	case 8:
+	default:
+		val |= F_VIF_DATA_WIDTH(0);
+		break;
+	}
+
+	/* select color encoding */
+	val &= ~F_HDMI_ENCODING(3);
+	switch (video_info->color_fmt) {
+	case YCBCR_4_4_4:
+		val |= F_HDMI_ENCODING(2);
+		break;
+	case YCBCR_4_2_2:
+		val |= F_HDMI_ENCODING(1);
+		break;
+	case YCBCR_4_2_0:
+		val |= F_HDMI_ENCODING(3);
+		break;
+	case PXL_RGB:
+	default:
+		val |= F_HDMI_ENCODING(0);
+		break;
+	}
+
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_CONTROLLER, val);
+	if (ret < 0)
+		return ret;
+
+	/* set data enable */
+	val |= F_DATA_EN(1);
+	ret = cdns_mhdp_reg_write(mhdp, HDTX_CONTROLLER, val);
+
+	return ret;
+}
+
+int cdns_hdmi_disable_gcp(struct cdns_mhdp_device *mhdp)
+{
+	u32 val;
+
+	val = cdns_mhdp_reg_read(mhdp, HDTX_CONTROLLER);
+	val &= ~F_GCP_EN(1);
+
+	return cdns_mhdp_reg_write(mhdp, HDTX_CONTROLLER, val);
+}
+
+int cdns_hdmi_enable_gcp(struct cdns_mhdp_device *mhdp)
+{
+	u32 val;
+
+	val = cdns_mhdp_reg_read(mhdp, HDTX_CONTROLLER);
+	val |= F_GCP_EN(1);
+
+	return cdns_mhdp_reg_write(mhdp, HDTX_CONTROLLER, val);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cadence/cdns-mhdp.h
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cadence/cdns-mhdp.h
@@ -0,0 +1,209 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Cadence MHDP DP MST bridge driver.
+ *
+ * Copyright: 2018 Cadence Design Systems, Inc.
+ *
+ * Author: Quentin Schulz <quentin.schulz@free-electrons.com>
+ */
+
+
+#ifndef CDNS_MHDP_H
+#define CDNS_MHDP_H
+
+#include <drm/drm_dp_mst_helper.h>
+
+#define CDNS_APB_CFG				0x00000
+#define CDNS_APB_CTRL				(CDNS_APB_CFG + 0x00)
+#define CDNS_MAILBOX_FULL			(CDNS_APB_CFG + 0x08)
+#define CDNS_MAILBOX_EMPTY			(CDNS_APB_CFG + 0x0c)
+#define CDNS_MAILBOX_TX_DATA			(CDNS_APB_CFG + 0x10)
+#define CDNS_MAILBOX_RX_DATA			(CDNS_APB_CFG + 0x14)
+#define CDNS_KEEP_ALIVE				(CDNS_APB_CFG + 0x18)
+#define CDNS_KEEP_ALIVE_MASK			GENMASK(7, 0)
+
+#define CDNS_MB_INT_MASK			(CDNS_APB_CFG + 0x34)
+
+#define CDNS_SW_CLK_L				(CDNS_APB_CFG + 0x3c)
+#define CDNS_SW_CLK_H				(CDNS_APB_CFG + 0x40)
+#define CDNS_SW_EVENT0				(CDNS_APB_CFG + 0x44)
+#define CDNS_DPTX_HPD				BIT(0)
+
+#define CDNS_SW_EVENT1				(CDNS_APB_CFG + 0x48)
+#define CDNS_SW_EVENT2				(CDNS_APB_CFG + 0x4c)
+#define CDNS_SW_EVENT3				(CDNS_APB_CFG + 0x50)
+
+#define CDNS_APB_INT_MASK			(CDNS_APB_CFG + 0x6C)
+#define CDNS_APB_INT_MASK_MAILBOX_INT		BIT(0)
+#define CDNS_APB_INT_MASK_SW_EVENT_INT		BIT(1)
+
+#define CDNS_DPTX_CAR				(CDNS_APB_CFG + 0x904)
+#define CDNS_VIF_CLK_EN				BIT(0)
+#define CDNS_VIF_CLK_RSTN			BIT(1)
+
+#define CDNS_SOURCE_VIDEO_IF(s)			(0x00b00 + (s * 0x20))
+#define CDNS_BND_HSYNC2VSYNC(s)			(CDNS_SOURCE_VIDEO_IF(s) + \
+						 0x00)
+#define CDNS_IP_DTCT_WIN			GENMASK(11, 0)
+#define CDNS_IP_DET_INTERLACE_FORMAT		BIT(12)
+#define CDNS_IP_BYPASS_V_INTERFACE		BIT(13)
+
+#define CDNS_HSYNC2VSYNC_POL_CTRL(s)		(CDNS_SOURCE_VIDEO_IF(s) + \
+						 0x10)
+#define CDNS_H2V_HSYNC_POL_ACTIVE_LOW		BIT(1)
+#define CDNS_H2V_VSYNC_POL_ACTIVE_LOW		BIT(2)
+
+#define CDNS_DPTX_PHY_CONFIG			0x02000
+#define CDNS_PHY_TRAINING_EN			BIT(0)
+#define CDNS_PHY_TRAINING_TYPE(x)		(((x) & GENMASK(3, 0)) << 1)
+#define CDNS_PHY_SCRAMBLER_BYPASS		BIT(5)
+#define CDNS_PHY_ENCODER_BYPASS			BIT(6)
+#define CDNS_PHY_SKEW_BYPASS			BIT(7)
+#define CDNS_PHY_TRAINING_AUTO			BIT(8)
+#define CDNS_PHY_LANE0_SKEW(x)			(((x) & GENMASK(2, 0)) << 9)
+#define CDNS_PHY_LANE1_SKEW(x)			(((x) & GENMASK(2, 0)) << 12)
+#define CDNS_PHY_LANE2_SKEW(x)			(((x) & GENMASK(2, 0)) << 15)
+#define CDNS_PHY_LANE3_SKEW(x)			(((x) & GENMASK(2, 0)) << 18)
+#define CDNS_PHY_COMMON_CONFIG			(CDNS_PHY_LANE1_SKEW(1) | \
+						CDNS_PHY_LANE2_SKEW(2) |  \
+						CDNS_PHY_LANE3_SKEW(3))
+#define CDNS_PHY_10BIT_EN			BIT(21)
+
+#define CDNS_DPTX_FRAMER			0x02200
+#define CDNS_DP_FRAMER_GLOBAL_CONFIG		(CDNS_DPTX_FRAMER + 0x00)
+#define CDNS_DP_NUM_LANES(x)			(x - 1)
+#define CDNS_DP_MST_EN				BIT(2)
+#define CDNS_DP_FRAMER_EN			BIT(3)
+#define CDNS_DP_RATE_GOVERNOR_EN		BIT(4)
+#define CDNS_DP_NO_VIDEO_MODE			BIT(5)
+#define CDNS_DP_DISABLE_PHY_RST			BIT(6)
+#define CDNS_DP_WR_FAILING_EDGE_VSYNC		BIT(7)
+
+#define CDNS_DP_SW_RESET			(CDNS_DPTX_FRAMER + 0x04)
+#define CDNS_DP_FRAMER_TU			(CDNS_DPTX_FRAMER + 0x08)
+#define CDNS_DP_FRAMER_TU_SIZE(x)		(((x) & GENMASK(6, 0)) << 8)
+#define CDNS_DP_FRAMER_TU_VS(x)			((x) & GENMASK(5, 0))
+#define CDNS_DP_FRAMER_TU_CNT_RST_EN		BIT(15)
+
+#define CDNS_DPTX_STREAM(s)			(0x03000 + s * 0x80)
+#define CDNS_DP_MSA_HORIZONTAL_0(s)		(CDNS_DPTX_STREAM(s) + 0x00)
+#define CDNS_DP_MSAH0_H_TOTAL(x)		(x)
+#define CDNS_DP_MSAH0_HSYNC_START(x)		((x) << 16)
+
+#define CDNS_DP_MSA_HORIZONTAL_1(s)		(CDNS_DPTX_STREAM(s) + 0x04)
+#define CDNS_DP_MSAH1_HSYNC_WIDTH(x)		(x)
+#define CDNS_DP_MSAH1_HSYNC_POL_LOW		BIT(15)
+#define CDNS_DP_MSAH1_HDISP_WIDTH(x)		((x) << 16)
+
+#define CDNS_DP_MSA_VERTICAL_0(s)		(CDNS_DPTX_STREAM(s) + 0x08)
+#define CDNS_DP_MSAV0_V_TOTAL(x)		(x)
+#define CDNS_DP_MSAV0_VSYNC_START(x)		((x) << 16)
+
+#define CDNS_DP_MSA_VERTICAL_1(s)		(CDNS_DPTX_STREAM(s) + 0x0c)
+#define CDNS_DP_MSAV1_VSYNC_WIDTH(x)		(x)
+#define CDNS_DP_MSAV1_VSYNC_POL_LOW		BIT(15)
+#define CDNS_DP_MSAV1_VDISP_WIDTH(x)		((x) << 16)
+
+#define CDNS_DP_MSA_MISC(s)			(CDNS_DPTX_STREAM(s) + 0x10)
+#define CDNS_DP_STREAM_CONFIGs(s)		(CDNS_DPTX_STREAM(s) + 0x14)
+#define CDNS_DP_STREAM_CONFIG_2(s)		(CDNS_DPTX_STREAM(s) + 0x2c)
+#define CDNS_DP_SC2_TU_VS_DIFF(x)		((x) << 8)
+
+#define CDNS_DP_HORIZONTAL(s)			(CDNS_DPTX_STREAM(s) + 0x30)
+#define CDNS_DP_H_HSYNC_WIDTH(x)		(x)
+#define CDNS_DP_H_H_TOTAL(x)			((x) << 16)
+
+#define CDNS_DP_VERTICAL_0(s)			(CDNS_DPTX_STREAM(s) + 0x34)
+#define CDNS_DP_V0_VHEIGHT(x)			(x)
+#define CDNS_DP_V0_VSTART(x)			((x) << 16)
+
+#define CDNS_DP_VERTICAL_1(s)			(CDNS_DPTX_STREAM(s) + 0x38)
+#define CDNS_DP_V1_VTOTAL(x)			(x)
+#define CDNS_DP_V1_VTOTAL_EVEN			BIT(16)
+
+#define CDNS_DP_FRAMER_PXL_REPR(s)		(CDNS_DPTX_STREAM(s) + 0x4c)
+#define CDNS_DP_FRAMER_6_BPC			BIT(0)
+#define CDNS_DP_FRAMER_8_BPC			BIT(1)
+#define CDNS_DP_FRAMER_10_BPC			BIT(2)
+#define CDNS_DP_FRAMER_12_BPC			BIT(3)
+#define CDNS_DP_FRAMER_16_BPC			BIT(4)
+#define CDNS_DP_FRAMER_PXL_FORMAT		0x8
+#define CDNS_DP_FRAMER_RGB			BIT(0)
+#define CDNS_DP_FRAMER_YCBCR444			BIT(1)
+#define CDNS_DP_FRAMER_YCBCR422			BIT(2)
+#define CDNS_DP_FRAMER_YCBCR420			BIT(3)
+#define CDNS_DP_FRAMER_Y_ONLY			BIT(4)
+
+#define CDNS_DP_FRAMER_SP(s)			(CDNS_DPTX_STREAM(s) + 0x10)
+#define CDNS_DP_FRAMER_VSYNC_POL_LOW		BIT(0)
+#define CDNS_DP_FRAMER_HSYNC_POL_LOW		BIT(1)
+#define CDNS_DP_FRAMER_INTERLACE		BIT(2)
+
+#define CDNS_DP_LINE_THRESH(s)			(CDNS_DPTX_STREAM(s) + 0x64)
+#define CDNS_DP_ACTIVE_LINE_THRESH(x)		(x)
+
+#define CDNS_DP_VB_ID(s)			(CDNS_DPTX_STREAM(s) + 0x68)
+#define CDNS_DP_VB_ID_INTERLACED		BIT(2)
+#define CDNS_DP_VB_ID_COMPRESSED		BIT(6)
+
+#define CDNS_DP_FRONT_BACK_PORCH(s)		(CDNS_DPTX_STREAM(s) + 0x78)
+#define CDNS_DP_BACK_PORCH(x)			(x)
+#define CDNS_DP_FRONT_PORCH(x)			((x) << 16)
+
+#define CDNS_DP_BYTE_COUNT(s)			(CDNS_DPTX_STREAM(s) + 0x7c)
+#define CDNS_DP_BYTE_COUNT_BYTES_IN_CHUNK_SHIFT	16
+
+#define CDNS_DP_MST_STREAM_CONFIG(s)		(CDNS_DPTX_STREAM(s) + 0x14)
+#define CDNS_DP_MST_STRM_CFG_STREAM_EN		BIT(0)
+#define CDNS_DP_MST_STRM_CFG_NO_VIDEO		BIT(1)
+
+#define CDNS_DP_MST_SLOT_ALLOCATE(s)		(CDNS_DPTX_STREAM(s) + 0x44)
+#define CDNS_DP_S_ALLOC_START_SLOT(x)		(x)
+#define CDNS_DP_S_ALLOC_END_SLOT(x)		((x) << 8)
+
+#define CDNS_DP_RATE_GOVERNING(s)		(CDNS_DPTX_STREAM(s) + 0x48)
+#define CDNS_DP_RG_TARG_AV_SLOTS_Y(x)		(x)
+#define CDNS_DP_RG_TARG_AV_SLOTS_X(x)		(x << 4)
+#define CDNS_DP_RG_ENABLE			BIT(10)
+
+#define CDNS_DP_MTPH_CONTROL			0x2264
+#define CDNS_DP_MTPH_ECF_EN			BIT(0)
+#define CDNS_DP_MTPH_ACT_EN			BIT(1)
+#define CDNS_DP_MTPH_LVP_EN			BIT(2)
+
+#define CDNS_DP_MTPH_STATUS			0x226C
+#define CDNS_DP_MTPH_ACT_STATUS			BIT(0)
+
+
+#define CDNS_DPTX_GLOBAL			0x02300
+#define CDNS_DP_LANE_EN				(CDNS_DPTX_GLOBAL + 0x00)
+#define CDNS_DP_LANE_EN_LANES(x)		GENMASK(x - 1, 0)
+#define CDNS_DP_ENHNCD				(CDNS_DPTX_GLOBAL + 0x04)
+
+
+#define to_mhdp_connector(x) container_of(x, struct cdns_mhdp_connector, base)
+#define to_mhdp_bridge(x) container_of(x, struct cdns_mhdp_bridge, base)
+#define mgr_to_mhdp(x) container_of(x, struct cdns_mhdp_device, mst_mgr)
+
+#define CDNS_MHDP_MAX_STREAMS   4
+
+enum pixel_format {
+	PIXEL_FORMAT_RGB = 1,
+	PIXEL_FORMAT_YCBCR_444 = 2,
+	PIXEL_FORMAT_YCBCR_422 = 4,
+	PIXEL_FORMAT_YCBCR_420 = 8,
+	PIXEL_FORMAT_Y_ONLY = 16,
+};
+
+
+int cdns_mhdp_mst_init(struct cdns_mhdp_device *mhdp);
+void cdns_mhdp_mst_deinit(struct cdns_mhdp_device *mhdp);
+bool cdns_mhdp_mst_probe(struct cdns_mhdp_device *mhdp);
+enum pixel_format cdns_mhdp_get_pxlfmt(u32 color_formats);
+u32 cdns_mhdp_get_bpp(u32 bpc, u32 color_formats);
+void cdns_mhdp_configure_video(struct drm_bridge *bridge);
+void cdns_mhdp_mst_enable(struct drm_bridge *bridge);
+void cdns_mhdp_mst_disable(struct drm_bridge *bridge);
+void cdns_mhdp_enable(struct drm_bridge *bridge);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/cdns-dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/cdns-dsi.c
@@ -1026,7 +1026,7 @@
 	struct mipi_dsi_packet packet;
 	int ret, i, tx_len, rx_len;
 
-	ret = pm_runtime_get_sync(host->dev);
+	ret = pm_runtime_resume_and_get(host->dev);
 	if (ret < 0)
 		return ret;
 
@@ -1284,6 +1284,7 @@
 	{ .compatible = "cdns,dsi" },
 	{ },
 };
+MODULE_DEVICE_TABLE(of, cdns_dsi_of_match);
 
 static struct platform_driver cdns_dsi_platform_driver = {
 	.probe  = cdns_dsi_drm_probe,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/fsl-imx-ldb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/fsl-imx-ldb.c
@@ -0,0 +1,283 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2012 Sascha Hauer, Pengutronix
+ * Copyright 2020 NXP
+ */
+
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/regmap.h>
+#include <drm/bridge/fsl_imx_ldb.h>
+#include <drm/drmP.h>
+#include <drm/drm_of.h>
+#include <drm/drm_panel.h>
+
+#define LDB_CH0_MODE_EN_TO_DI0		(1 << 0)
+#define LDB_CH0_MODE_EN_TO_DI1		(3 << 0)
+#define LDB_CH0_MODE_EN_MASK		(3 << 0)
+#define LDB_CH1_MODE_EN_TO_DI0		(1 << 2)
+#define LDB_CH1_MODE_EN_TO_DI1		(3 << 2)
+#define LDB_CH1_MODE_EN_MASK		(3 << 2)
+#define LDB_SPLIT_MODE_EN		(1 << 4)
+#define LDB_DATA_WIDTH_CH0_24		(1 << 5)
+#define LDB_BIT_MAP_CH0_JEIDA		(1 << 6)
+#define LDB_DATA_WIDTH_CH1_24		(1 << 7)
+#define LDB_BIT_MAP_CH1_JEIDA		(1 << 8)
+#define LDB_DI0_VS_POL_ACT_LOW		(1 << 9)
+#define LDB_DI1_VS_POL_ACT_LOW		(1 << 10)
+
+struct ldb_bit_mapping {
+	u32 bus_format;
+	u32 datawidth;
+	const char * const mapping;
+};
+
+static const struct ldb_bit_mapping ldb_bit_mappings[] = {
+	{ MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,  18, "spwg" },
+	{ MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,  24, "spwg" },
+	{ MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, 24, "jeida" },
+};
+
+static u32 of_get_bus_format(struct device *dev, struct device_node *np)
+{
+	const char *bm;
+	u32 datawidth = 0;
+	int ret, i;
+
+	ret = of_property_read_string(np, "fsl,data-mapping", &bm);
+	if (ret < 0)
+		return ret;
+
+	of_property_read_u32(np, "fsl,data-width", &datawidth);
+
+	for (i = 0; i < ARRAY_SIZE(ldb_bit_mappings); i++) {
+		if (!strcasecmp(bm, ldb_bit_mappings[i].mapping) &&
+		    datawidth == ldb_bit_mappings[i].datawidth)
+			return ldb_bit_mappings[i].bus_format;
+	}
+
+	dev_err(dev, "invalid data mapping: %d-bit \"%s\"\n", datawidth, bm);
+
+	return -ENOENT;
+}
+
+static inline struct ldb_channel *bridge_to_ldb_ch(struct drm_bridge *b)
+{
+	return container_of(b, struct ldb_channel, bridge);
+}
+
+static void ldb_ch_set_bus_format(struct ldb_channel *ldb_ch, u32 bus_format)
+{
+	struct ldb *ldb = ldb_ch->ldb;
+
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24 |
+					 LDB_BIT_MAP_CH0_JEIDA;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24 |
+					 LDB_BIT_MAP_CH1_JEIDA;
+		break;
+	}
+}
+
+static void ldb_bridge_mode_set(struct drm_bridge *bridge,
+				const struct drm_display_mode *mode,
+				const struct drm_display_mode *adjusted_mode)
+{
+	struct ldb_channel *ldb_ch = bridge_to_ldb_ch(bridge);
+	struct ldb *ldb = ldb_ch->ldb;
+
+	/* FIXME - assumes straight connections DI0 --> CH0, DI1 --> CH1 */
+	if (ldb_ch == ldb->channel[0] || ldb->dual) {
+		if (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC)
+			ldb->ldb_ctrl |= LDB_DI0_VS_POL_ACT_LOW;
+		else if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
+			ldb->ldb_ctrl &= ~LDB_DI0_VS_POL_ACT_LOW;
+	}
+	if (ldb_ch == ldb->channel[1] || ldb->dual) {
+		if (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC)
+			ldb->ldb_ctrl |= LDB_DI1_VS_POL_ACT_LOW;
+		else if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
+			ldb->ldb_ctrl &= ~LDB_DI1_VS_POL_ACT_LOW;
+	}
+
+	ldb_ch_set_bus_format(ldb_ch, ldb_ch->bus_format);
+}
+
+static void ldb_bridge_enable(struct drm_bridge *bridge)
+{
+	struct ldb_channel *ldb_ch = bridge_to_ldb_ch(bridge);
+	struct ldb *ldb = ldb_ch->ldb;
+
+	if (pm_runtime_enabled(ldb->dev))
+		pm_runtime_get_sync(ldb->dev);
+
+	regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl);
+}
+
+static void ldb_bridge_disable(struct drm_bridge *bridge)
+{
+	struct ldb_channel *ldb_ch = bridge_to_ldb_ch(bridge);
+	struct ldb *ldb = ldb_ch->ldb;
+
+	if (ldb_ch == ldb->channel[0] || ldb->dual)
+		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
+	if (ldb_ch == ldb->channel[1] || ldb->dual)
+		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
+
+	regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl);
+
+	if (pm_runtime_enabled(ldb->dev))
+		pm_runtime_put(ldb->dev);
+}
+
+static int ldb_bridge_attach(struct drm_bridge *bridge)
+{
+	struct ldb_channel *ldb_ch = bridge_to_ldb_ch(bridge);
+	struct ldb *ldb = ldb_ch->ldb;
+
+	if (!bridge->encoder) {
+		dev_err(ldb->dev, "failed to find encoder object\n");
+		return -ENODEV;
+	}
+
+	if (!ldb_ch->next_bridge)
+		return 0;
+
+	return drm_bridge_attach(bridge->encoder,
+				ldb_ch->next_bridge, &ldb_ch->bridge);
+}
+
+static const struct drm_bridge_funcs ldb_bridge_funcs = {
+	.mode_set   = ldb_bridge_mode_set,
+	.enable	    = ldb_bridge_enable,
+	.disable    = ldb_bridge_disable,
+	.attach	    = ldb_bridge_attach,
+};
+
+int ldb_bind(struct ldb *ldb, struct drm_encoder **encoder)
+{
+	struct device *dev = ldb->dev;
+	struct device_node *np = dev->of_node;
+	struct device_node *child;
+	int ret = 0;
+	int i;
+
+	ldb->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");
+	if (IS_ERR(ldb->regmap)) {
+		dev_err(dev, "failed to get parent regmap\n");
+		return PTR_ERR(ldb->regmap);
+	}
+
+	if (pm_runtime_enabled(dev))
+		pm_runtime_get_sync(dev);
+
+	/* disable LDB by resetting the control register to POR default */
+	regmap_write(ldb->regmap, ldb->ctrl_reg, 0);
+
+	if (pm_runtime_enabled(dev))
+		pm_runtime_put(dev);
+
+	ldb->dual = of_property_read_bool(np, "fsl,dual-channel");
+	if (ldb->dual)
+		ldb->ldb_ctrl |= LDB_SPLIT_MODE_EN;
+
+	for_each_child_of_node(np, child) {
+		struct ldb_channel *ldb_ch;
+		int bus_format;
+
+		ret = of_property_read_u32(child, "reg", &i);
+		if (ret || i < 0 || i > 1) {
+			ret = -EINVAL;
+			goto free_child;
+		}
+
+		if (!of_device_is_available(child))
+			continue;
+
+		if (ldb->dual && i > 0) {
+			dev_warn(dev, "dual-channel mode, ignoring second output\n");
+			continue;
+		}
+
+		ldb_ch = ldb->channel[i];
+		ldb_ch->ldb = ldb;
+		ldb_ch->chno = i;
+		ldb_ch->is_valid = false;
+
+		ret = drm_of_find_panel_or_bridge(child,
+						  ldb->output_port, 0,
+						  &ldb_ch->panel,
+						  &ldb_ch->next_bridge);
+		if (ret && ret != -ENODEV)
+			goto free_child;
+
+		bus_format = of_get_bus_format(dev, child);
+		if (bus_format == -EINVAL) {
+			/*
+			 * If no bus format was specified in the device tree,
+			 * we can still get it from the connected panel later.
+			 */
+			if (ldb_ch->panel && ldb_ch->panel->funcs &&
+			    ldb_ch->panel->funcs->get_modes)
+				bus_format = 0;
+		}
+		if (bus_format < 0) {
+			dev_err(dev, "could not determine data mapping: %d\n",
+				bus_format);
+			ret = bus_format;
+			goto free_child;
+		}
+		ldb_ch->bus_format = bus_format;
+		ldb_ch->child = child;
+
+		if (ldb_ch->panel) {
+			ldb_ch->next_bridge =
+					devm_drm_panel_bridge_add(dev,
+						ldb_ch->panel,
+						DRM_MODE_CONNECTOR_LVDS);
+			if (IS_ERR(ldb_ch->next_bridge)) {
+				ret = PTR_ERR(ldb_ch->next_bridge);
+				goto free_child;
+			}
+		}
+
+		ldb_ch->bridge.driver_private = ldb_ch;
+		ldb_ch->bridge.funcs = &ldb_bridge_funcs;
+		ldb_ch->bridge.of_node = child;
+
+		ret = drm_bridge_attach(encoder[i], &ldb_ch->bridge, NULL);
+		if (ret) {
+			dev_err(dev,
+				"failed to attach bridge with encoder: %d\n",
+				ret);
+			goto free_child;
+		}
+
+		ldb_ch->is_valid = true;
+	}
+
+	return 0;
+
+free_child:
+	of_node_put(child);
+	return ret;
+}
+EXPORT_SYMBOL_GPL(ldb_bind);
+
+MODULE_DESCRIPTION("Freescale i.MX LVDS display bridge driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform: fsl-imx-ldb");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/it6263.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/it6263.c
@@ -0,0 +1,1027 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc_helper.h>
+#include <drm/drm_edid.h>
+#include <drm/drm_probe_helper.h>
+#include <linux/gpio/consumer.h>
+#include <linux/i2c.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_graph.h>
+#include <linux/regmap.h>
+
+#define REG_VENDOR_ID(n)	(0x00 + (n))	/* n: 0/1 */
+#define REG_DEVICE_ID(n)	(0x02 + (n))	/* n: 0/1 */
+#define LVDS_VENDER_ID_LOW	0x15
+#define LVDS_VENDER_ID_HIGH	0xCA
+#define LVDS_DEVICE_ID_LOW	0x61
+#define LVDS_DEVICE_ID_HIGH	0x62
+#define HDMI_VENDER_ID_LOW	0x01
+#define HDMI_VENDER_ID_HIGH	0xCA
+#define HDMI_DEVICE_ID_LOW	0x13
+#define HDMI_DEVICE_ID_HIGH	0x76
+
+/* LVDS registers */
+#define LVDS_REG_SW_RST		0x05
+#define SOFT_REFCLK_DM_RST	BIT(0)
+#define SOFT_PCLK_DM_RST	BIT(1)
+
+#define LVDS_REG_MODE		0x2C
+#define LVDS_COLOR_DEPTH	0x3
+enum {
+	LVDS_COLOR_DEPTH_18,
+	LVDS_COLOR_DEPTH_24,
+	LVDS_COLOR_DEPTH_30,
+	LVDS_COLOR_DEPTH_36,
+};
+#define LVDS_OUT_MAP		BIT(4)
+#define VESA			BIT(4)
+#define JEIDA			0
+#define DMODE			BIT(7)
+#define SPLIT_MODE		BIT(7)
+#define SINGLE_MODE		0
+
+#define LVDS_REG_STABLE		0x30
+#define VIDEO_STABLE		BIT(0)
+#define PCLK_LOCK		BIT(1)
+
+#define LVDS_REG_39		0x39
+
+#define LVDS_REG_PLL		0x3C
+#define LVDS_REG_AFE_3E		0x3E
+#define LVDS_REG_AFE_3F		0x3F
+#define LVDS_REG_AFE_47		0x47
+#define LVDS_REG_AFE_48		0x48
+#define LVDS_REG_AFE_4F		0x4F
+#define LVDS_REG_52		0x52
+#define LVDS_REG_PCLK_CNT_HIGH	0x57
+#define LVDS_REG_PCLK_CNT_LOW	0x58
+
+/*
+ * HDMI registers
+ *
+ * Registers are separated into three banks:
+ * 1) common bank: 0x00 ~ 0x2F
+ * 2) bank0: 0x30  ~ 0xFF
+ * 3) bank1: 0x130 ~ 0x1FF	(HDMI packet registers)
+ *
+ * Use register HDMI_REG_BANK_CTRL @ 0x0F[1:0] to select bank0/1:
+ * 2b'00 - bank0
+ * 2b'01 - bank1
+ */
+
+/******************************/
+/* HDMI register common bank  */
+/******************************/
+
+/* HDMI genernal registers */
+#define HDMI_REG_SW_RST		0x04
+#define SOFTREF_RST		BIT(5)
+#define SOFTA_RST		BIT(4)
+#define SOFTV_RST		BIT(3)
+#define AUD_RST			BIT(2)
+#define HDCP_RST		BIT(0)
+#define HDMI_RST_ALL		(SOFTREF_RST | SOFTA_RST | SOFTV_RST | \
+				 AUD_RST | HDCP_RST)
+
+#define HDMI_REG_INT_CTRL	0x05
+#define INTPOL_ACTH		BIT(7)
+#define INTPOL_ACTL		0
+#define INTIOMODE_OPENDRAIN	BIT(6)
+#define INTIOMODE_PUSHPULL	0
+#define SELXTAL			BIT(5)	/* REFCLK <= XTALCLK */
+#define SELXTAL_QUARTER		0	/* REFCLK <= OSCCLK/4 */
+#define PDREFCNT(n)		(((n) >> 2) << 2)	/* REFCLK Div(n) */
+#define PDREFCLK		BIT(1)
+#define PDTXCLK_GATED		BIT(0)
+#define PDTXCLK_ACTIVE		0
+
+#define HDMI_REG_INT_STAT(n)	(0x05 + (n))	/* n: 1/2/3 */
+#define HDMI_REG_INT_MASK(n)	(0x08 + (n))	/* n: 1/2/3 */
+
+/* INT1 */
+#define INT_AUD_OVERFLOW	BIT(7)
+#define INT_RDDC_NOACK		BIT(5)
+#define INT_DDCFIFO_ERR		BIT(4)
+#define INT_DDC_BUS_HANG	BIT(2)
+#define INT_RX_SENSE		BIT(1)
+#define INT_HPD			BIT(0)
+
+/* INT2 */
+#define INT_VID_UNSTABLE	BIT(6)
+#define INT_PKTACP		BIT(5)
+#define INT_PKTNULL		BIT(4)
+#define INT_PKTGEN		BIT(3)
+#define INT_KSVLIST_CHK		BIT(2)
+#define INT_AUTH_DONE		BIT(1)
+#define INT_AUTH_FAIL		BIT(0)
+
+/* INT3 */
+#define INT_AUD_CTS		BIT(6)
+#define INT_VSYNC		BIT(5)
+#define INT_VIDSTABLE		BIT(4)
+#define INT_PKTMPG		BIT(3)
+#define INT_PKTGBD		BIT(2)
+#define INT_PKTAUD		BIT(1)
+#define INT_PKTAVI		BIT(0)
+
+#define INT_MASK_AUD_CTS	BIT(5)
+#define INT_MASK_VSYNC		BIT(4)
+#define INT_MASK_VIDSTABLE	BIT(3)
+#define INT_MASK_PKTMPG		BIT(2)
+#define INT_MASK_PKTGBD		BIT(1)
+#define INT_MASK_PKTAUD		BIT(0)
+
+#define HDMI_REG_INT_CLR(n)	(0x0C + (n))	/* n: 0/1 */
+
+/* CLR0 */
+#define INT_CLR_PKTACP		BIT(7)
+#define INT_CLR_PKTNULL		BIT(6)
+#define INT_CLR_PKTGEN		BIT(5)
+#define INT_CLR_KSVLIST_CHK	BIT(4)
+#define INT_CLR_AUTH_DONE	BIT(3)
+#define INT_CLR_AUTH_FAIL	BIT(2)
+#define INT_CLR_RXSENSE		BIT(1)
+#define INT_CLR_HPD		BIT(0)
+
+/* CLR1 */
+#define INT_CLR_VSYNC		BIT(7)
+#define INT_CLR_VIDSTABLE	BIT(6)
+#define INT_CLR_PKTMPG		BIT(5)
+#define INT_CLR_PKTGBD		BIT(4)
+#define INT_CLR_PKTAUD		BIT(3)
+#define INT_CLR_PKTAVI		BIT(2)
+#define INT_CLR_VID_UNSTABLE	BIT(0)
+
+#define HDMI_REG_SYS_STATUS	0x0E
+#define INT_ACTIVE		BIT(7)
+#define HPDETECT		BIT(6)
+#define RXSENDETECT		BIT(5)
+#define TXVIDSTABLE		BIT(4)
+#define CTSINTSTEP		0xC
+#define CLR_AUD_CTS		BIT(1)
+#define INTACTDONE		BIT(0)
+
+#define HDMI_REG_BANK_CTRL	0x0F
+#define BANK_SEL(n)		((n) ? 1 : 0)
+
+/* HDMI System DDC control registers */
+#define HDMI_REG_DDC_MASTER_CTRL	0x10
+#define MASTER_SEL_HOST			BIT(0)
+#define MASTER_SEL_HDCP			0
+
+#define HDMI_REG_DDC_HEADER		0x11
+#define DDC_HDCP_ADDRESS		0x74
+
+#define HDMI_REG_DDC_REQOFF		0x12
+#define HDMI_REG_DDC_REQCOUNT		0x13
+#define HDMI_REG_DDC_EDIDSEG		0x14
+
+#define HDMI_REG_DDC_CMD		0x15
+#define DDC_CMD_SEQ_BURSTREAD		0x0
+#define DDC_CMD_LINK_CHKREAD		0x2
+#define DDC_CMD_EDID_READ		0x3
+#define DDC_CMD_FIFO_CLR		0x9
+#define DDC_CMD_GEN_SCLCLK		0xA
+#define DDC_CMD_ABORT			0xF
+
+#define HDMI_REG_DDC_STATUS		0x16
+#define DDC_DONE			BIT(7)
+#define DDC_ACT				BIT(6)
+#define DDC_NOACK			BIT(5)
+#define DDC_WAITBUS			BIT(4)
+#define DDC_ARBILOSE			BIT(3)
+#define DDC_ERROR			(DDC_NOACK | DDC_WAITBUS | DDC_ARBILOSE)
+#define DDC_FIFOFULL			BIT(2)
+#define DDC_FIFOEMPTY			BIT(1)
+
+#define HDMI_DDC_FIFO_SIZE		32	/* bytes */
+#define HDMI_REG_DDC_READFIFO		0x17
+#define HDMI_REG_ROM_STAT		0x1C
+#define HDMI_REG_LVDS_PORT		0x1D	/* LVDS input ctrl i2c addr */
+#define HDMI_REG_LVDS_PORT_EN		0x1E	/* and to enable */
+#define LVDS_INPUT_CTRL_I2C_ADDR	0x33
+
+/***********************/
+/* HDMI register bank0 */
+/***********************/
+
+/* HDMI clock control registers */
+#define HDMI_REG_CLK_CTRL1		0x59
+#define EN_TXCLK_COUNT			BIT(5)
+#define VDO_LATCH_EDGE			BIT(3)
+
+/* HDMI AFE registers */
+#define HDMI_REG_AFE_DRV_CTRL		0x61
+#define AFE_DRV_PWD			BIT(5)
+#define AFE_DRV_RST			BIT(4)
+#define AFE_DRV_PDRXDET			BIT(2)
+#define AFE_DRV_TERMON			BIT(1)
+#define AFE_DRV_ENCAL			BIT(0)
+
+#define HDMI_REG_AFE_XP_CTRL		0x62
+#define AFE_XP_GAINBIT			BIT(7)
+#define AFE_XP_PWDPLL			BIT(6)
+#define AFE_XP_ENI			BIT(5)
+#define AFE_XP_ER0			BIT(4)
+#define AFE_XP_RESETB			BIT(3)
+#define AFE_XP_PWDI			BIT(2)
+#define AFE_XP_DEI			BIT(1)
+#define AFE_XP_DER			BIT(0)
+
+#define HDMI_REG_AFE_ISW_CTRL		0x63
+#define AFE_RTERM_SEL			BIT(7)
+#define AFE_IP_BYPASS			BIT(6)
+#define AFE_DRV_ISW			0x38
+#define AFE_DRV_ISWK			7
+
+#define HDMI_REG_AFE_IP_CTRL		0x64
+#define AFE_IP_GAINBIT			BIT(7)
+#define AFE_IP_PWDPLL			BIT(6)
+#define AFE_IP_CKSEL			0x30
+#define AFE_IP_ER0			BIT(3)
+#define AFE_IP_RESETB			BIT(2)
+#define AFE_IP_ENC			BIT(1)
+#define AFE_IP_EC1			BIT(0)
+
+/* HDMI input data format registers */
+#define HDMI_REG_INPUT_MODE		0x70
+#define IN_RGB				0x00
+#define IN_YUV422			0x40
+#define IN_YUV444			0x80
+
+#define HDMI_REG_TXFIFO_RST		0x71
+#define ENAVMUTERST			BIT(0)
+#define TXFFRST				BIT(1)
+
+/* HDMI pattern generation SYNC/DE registers */
+#define HDMI_REG_9X(n)			(0x90 + (n))	/* n: 0x0 ~ 0xF */
+#define HDMI_REG_AX(n)			(0xA0 + (n))	/* n: 0x0 ~ 0xF */
+#define HDMI_REG_B0			0xB0
+
+/* HDMI general control registers */
+#define HDMI_REG_HDMI_MODE		0xC0
+#define TX_HDMI_MODE			1
+#define TX_DVI_MODE			0
+
+#define HDMI_REG_GCP			0xC1
+#define AVMUTE				BIT(0)
+#define BLUE_SCR_MUTE			BIT(1)
+#define NODEF_PHASE			BIT(2)
+#define PHASE_RESYNC			BIT(3)
+#define HDMI_COLOR_DEPTH		0x70
+enum {
+	HDMI_COLOR_DEPTH_DEF = 0x0,	/* default as 24bit */
+	HDMI_COLOR_DEPTH_24  = 0x40,
+	HDMI_COLOR_DEPTH_30  = 0x50,
+	HDMI_COLOR_DEPTH_36  = 0x60,
+	HDMI_COLOR_DEPTH_48  = 0x70,
+};
+
+#define HDMI_REG_OESS_CYCLE		0xC3
+#define HDMI_REG_ENCRYPTION		0xC4	/* HDCP */
+
+#define HDMI_REG_PKT_SINGLE_CTRL	0xC5
+#define SINGLE_PKT			BIT(0)
+#define BURST_PKT			0
+
+#define HDMI_REG_PKT_GENERAL_CTRL	0xC6
+#define HDMI_REG_NULL_CTRL		0xC9
+#define HDMI_REG_ACP_CTRL		0xCA
+#define HDMI_REG_ISRC1_CTRL		0xCB
+#define HDMI_REG_ISRC2_CTRL		0xCC
+#define HDMI_REG_AVI_INFOFRM_CTRL	0xCD
+#define HDMI_REG_AUD_INFOFRM_CTRL	0xCE
+#define HDMI_REG_SPD_INFOFRM_CTRL	0xCF
+#define HDMI_REG_MPG_INFOFRM_CTRL	0xD0
+#define ENABLE_PKT			BIT(0)
+#define REPEAT_PKT			BIT(1)
+
+/***********************/
+/* HDMI register bank1 */
+/***********************/
+
+/* AVI packet registers */
+#define HDMI_REG_AVI_DB1		0x58
+#define AVI_DB1_COLOR_SPACE		0x60
+enum {
+	AVI_COLOR_SPACE_RGB    = 0x00,
+	AVI_COLOR_SPACE_YUV422 = 0x20,
+	AVI_COLOR_SPACE_YUV444 = 0x40,
+};
+
+struct it6263 {
+	struct i2c_client *hdmi_i2c;
+	struct i2c_client *lvds_i2c;
+	struct regmap *hdmi_regmap;
+	struct regmap *lvds_regmap;
+	struct drm_bridge bridge;
+	struct drm_connector connector;
+	struct gpio_desc *reset_gpio;
+	bool is_hdmi;
+	bool split_mode;
+};
+
+struct it6263_minimode {
+	int hdisplay;
+	int vdisplay;
+	int vrefresh;
+};
+
+static const struct it6263_minimode it6263_bad_mode_db[] = {
+	{1600, 900,  60},
+	{1280, 1024, 60},
+	{1280, 720,  30},
+	{1280, 720,  25},
+	{1280, 720,  24},
+	{1152, 864,  75},
+};
+
+static inline struct it6263 *bridge_to_it6263(struct drm_bridge *bridge)
+{
+	return container_of(bridge, struct it6263, bridge);
+}
+
+static inline struct it6263 *connector_to_it6263(struct drm_connector *con)
+{
+	return container_of(con, struct it6263, connector);
+}
+
+static inline void lvds_update_bits(struct it6263 *it6263, unsigned int reg,
+				    unsigned int mask, unsigned int val)
+{
+	regmap_update_bits(it6263->lvds_regmap, reg, mask, val);
+}
+
+static inline void hdmi_update_bits(struct it6263 *it6263, unsigned int reg,
+				    unsigned int mask, unsigned int val)
+{
+	regmap_update_bits(it6263->hdmi_regmap, reg, mask, val);
+}
+
+static void it6263_reset(struct it6263 *it6263)
+{
+	if (!it6263->reset_gpio)
+		return;
+
+	gpiod_set_value_cansleep(it6263->reset_gpio, 0);
+
+	usleep_range(1000, 2000);
+
+	gpiod_set_value_cansleep(it6263->reset_gpio, 1);
+
+	/*
+	 * The chip maker says the low pulse should be at least 40ms,
+	 * so 41ms is sure to be enough.
+	 */
+	usleep_range(41000, 45000);
+
+	gpiod_set_value_cansleep(it6263->reset_gpio, 0);
+
+	/* somehow, addtional time to wait the high voltage to be stable */
+	usleep_range(5000, 6000);
+}
+
+static void it6263_lvds_reset(struct it6263 *it6263)
+{
+	/* AFE PLL reset */
+	lvds_update_bits(it6263, LVDS_REG_PLL, 0x1, 0x0);
+	usleep_range(1000, 2000);
+	lvds_update_bits(it6263, LVDS_REG_PLL, 0x1, 0x1);
+
+	/* pclk reset */
+	lvds_update_bits(it6263, LVDS_REG_SW_RST,
+				SOFT_PCLK_DM_RST, SOFT_PCLK_DM_RST);
+	usleep_range(1000, 2000);
+	lvds_update_bits(it6263, LVDS_REG_SW_RST, SOFT_PCLK_DM_RST, 0x0);
+
+	usleep_range(1000, 2000);
+}
+
+static void it6263_lvds_set_interface(struct it6263 *it6263)
+{
+	/* color depth */
+	lvds_update_bits(it6263, LVDS_REG_MODE, LVDS_COLOR_DEPTH,
+						LVDS_COLOR_DEPTH_24);
+
+	/* jeida mapping */
+	lvds_update_bits(it6263, LVDS_REG_MODE, LVDS_OUT_MAP, JEIDA);
+
+	if (it6263->split_mode) {
+		lvds_update_bits(it6263, LVDS_REG_MODE, DMODE, SPLIT_MODE);
+		lvds_update_bits(it6263, LVDS_REG_52, BIT(1), BIT(1));
+	} else {
+		lvds_update_bits(it6263, LVDS_REG_MODE, DMODE, SINGLE_MODE);
+		lvds_update_bits(it6263, LVDS_REG_52, BIT(1), 0);
+	}
+}
+
+static void it6263_lvds_set_afe(struct it6263 *it6263)
+{
+	struct regmap *regmap = it6263->lvds_regmap;
+
+	regmap_write(regmap, LVDS_REG_AFE_3E, 0xaa);
+	regmap_write(regmap, LVDS_REG_AFE_3F, 0x02);
+	regmap_write(regmap, LVDS_REG_AFE_47, 0xaa);
+	regmap_write(regmap, LVDS_REG_AFE_48, 0x02);
+	regmap_write(regmap, LVDS_REG_AFE_4F, 0x11);
+
+	lvds_update_bits(it6263, LVDS_REG_PLL, 0x07, 0);
+}
+
+static void it6263_lvds_config(struct it6263 *it6263)
+{
+	it6263_lvds_reset(it6263);
+	it6263_lvds_set_interface(it6263);
+	it6263_lvds_set_afe(it6263);
+}
+
+static void it6263_hdmi_config(struct it6263 *it6263)
+{
+	regmap_write(it6263->hdmi_regmap, HDMI_REG_INPUT_MODE, IN_RGB);
+
+	hdmi_update_bits(it6263, HDMI_REG_GCP, HDMI_COLOR_DEPTH,
+						HDMI_COLOR_DEPTH_24);
+}
+
+static bool it6263_hpd_is_connected(struct it6263 *it6263)
+{
+	unsigned int status;
+
+	regmap_read(it6263->hdmi_regmap, HDMI_REG_SYS_STATUS, &status);
+
+	return !!(status & HPDETECT);
+}
+
+static enum drm_connector_status
+it6263_connector_detect(struct drm_connector *connector, bool force)
+{
+	struct it6263 *it6263 = connector_to_it6263(connector);
+	int i;
+
+	if (force) {
+		/*
+		 * FIXME: We read status tens of times to workaround
+		 * cable detection failure issue at boot time on some
+		 * platforms.
+		 * Spin on this for up to one second.
+		 */
+		for (i = 0; i < 100; i++) {
+			if (it6263_hpd_is_connected(it6263))
+				return connector_status_connected;
+			usleep_range(5000, 10000);
+		}
+	} else {
+		if (it6263_hpd_is_connected(it6263))
+			return connector_status_connected;
+	}
+
+	return connector_status_disconnected;
+}
+
+static const struct drm_connector_funcs it6263_connector_funcs = {
+	.detect = it6263_connector_detect,
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.destroy = drm_connector_cleanup,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static int
+it6263_read_edid(void *data, u8 *buf, unsigned int block, size_t len)
+{
+	struct it6263 *it6263 = data;
+	struct regmap *regmap = it6263->hdmi_regmap;
+	unsigned long timeout;
+	unsigned int status, count, val;
+	unsigned int segment = block >> 1;
+	unsigned int start = (block % 2) * EDID_LENGTH;
+
+	regmap_write(regmap, HDMI_REG_DDC_MASTER_CTRL, MASTER_SEL_HOST);
+	regmap_write(regmap, HDMI_REG_DDC_HEADER, DDC_ADDR << 1);
+	regmap_write(regmap, HDMI_REG_DDC_EDIDSEG, segment);
+
+	while (len) {
+		/* clear DDC FIFO */
+		regmap_write(regmap, HDMI_REG_DDC_CMD, DDC_CMD_FIFO_CLR);
+
+		timeout = jiffies + msecs_to_jiffies(10);
+		do {
+			regmap_read(regmap, HDMI_REG_DDC_STATUS, &status);
+		} while (!(status & DDC_DONE) && time_before(jiffies, timeout));
+
+		if (!(status & DDC_DONE)) {
+			dev_err(&it6263->hdmi_i2c->dev,
+						"failed to clear DDC FIFO\n");
+			return -ETIMEDOUT;
+		}
+
+		count = len > HDMI_DDC_FIFO_SIZE ? HDMI_DDC_FIFO_SIZE : len;
+
+		/* fire the read command */
+		regmap_write(regmap, HDMI_REG_DDC_REQOFF, start);
+		regmap_write(regmap, HDMI_REG_DDC_REQCOUNT, count);
+		regmap_write(regmap, HDMI_REG_DDC_CMD, DDC_CMD_EDID_READ);
+
+		start += count;
+		len -= count;
+
+		/* wait for reading done */
+		timeout = jiffies + msecs_to_jiffies(250);
+		do {
+			regmap_read(regmap, HDMI_REG_DDC_STATUS, &status);
+			if (status & DDC_ERROR) {
+				dev_err(&it6263->hdmi_i2c->dev, "DDC error\n");
+				return -EIO;
+			}
+		} while (!(status & DDC_DONE) && time_before(jiffies, timeout));
+
+		if (!(status & DDC_DONE)) {
+			dev_err(&it6263->hdmi_i2c->dev,
+						"failed to read EDID\n");
+			return -ETIMEDOUT;
+		}
+
+		/* cache to buffer */
+		for (; count > 0; count--) {
+			regmap_read(regmap, HDMI_REG_DDC_READFIFO, &val);
+			*(buf++) = val;
+		}
+	}
+
+	return 0;
+}
+
+static int it6263_get_modes(struct drm_connector *connector)
+{
+	struct it6263 *it6263 = connector_to_it6263(connector);
+	u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+	struct edid *edid;
+	int num = 0;
+	int ret;
+
+	edid = drm_do_get_edid(connector, it6263_read_edid, it6263);
+	drm_connector_update_edid_property(connector, edid);
+	if (edid) {
+		num = drm_add_edid_modes(connector, edid);
+		it6263->is_hdmi = drm_detect_hdmi_monitor(edid);
+		kfree(edid);
+	}
+
+	ret = drm_display_info_set_bus_formats(&connector->display_info,
+					       &bus_format, 1);
+	if (ret)
+		dev_dbg(&it6263->hdmi_i2c->dev,
+			"failed to set the supported bus format %d\n", ret);
+
+	return num;
+}
+
+static enum drm_mode_status it6263_mode_valid(struct drm_connector *connector,
+					      struct drm_display_mode *mode)
+{
+	const struct it6263_minimode *m;
+	int i, vrefresh = drm_mode_vrefresh(mode);
+
+	if (mode->clock > 150000)
+		return MODE_CLOCK_HIGH;
+
+	for (i = 0; i < ARRAY_SIZE(it6263_bad_mode_db); i++) {
+		m = &it6263_bad_mode_db[i];
+		if ((mode->hdisplay == m->hdisplay) &&
+		    (mode->vdisplay == m->vdisplay) &&
+		    (vrefresh == m->vrefresh))
+			return MODE_BAD;
+	}
+
+	return MODE_OK;
+}
+
+static const struct drm_connector_helper_funcs it6263_connector_helper_funcs = {
+	.get_modes = it6263_get_modes,
+	.mode_valid = it6263_mode_valid,
+};
+
+static void it6263_bridge_disable(struct drm_bridge *bridge)
+{
+	struct it6263 *it6263 = bridge_to_it6263(bridge);
+	struct regmap *regmap = it6263->hdmi_regmap;
+
+	/* AV mute */
+	hdmi_update_bits(it6263, HDMI_REG_GCP, AVMUTE, AVMUTE);
+
+	if (it6263->is_hdmi)
+		regmap_write(regmap, HDMI_REG_PKT_GENERAL_CTRL, 0);
+
+	hdmi_update_bits(it6263, HDMI_REG_SW_RST, SOFTV_RST, SOFTV_RST);
+	regmap_write(regmap, HDMI_REG_AFE_DRV_CTRL, AFE_DRV_RST | AFE_DRV_PWD);
+}
+
+static void it6263_bridge_enable(struct drm_bridge *bridge)
+{
+	struct it6263 *it6263 = bridge_to_it6263(bridge);
+	struct regmap *regmap = it6263->hdmi_regmap;
+	unsigned long timeout;
+	unsigned int status;
+	bool is_stable = false;
+	int i;
+
+	regmap_write(it6263->hdmi_regmap, HDMI_REG_BANK_CTRL, BANK_SEL(1));
+	/* set the color space to RGB in the AVI packet */
+	hdmi_update_bits(it6263, HDMI_REG_AVI_DB1, AVI_DB1_COLOR_SPACE,
+							AVI_COLOR_SPACE_RGB);
+	regmap_write(it6263->hdmi_regmap, HDMI_REG_BANK_CTRL, BANK_SEL(0));
+
+	/* software video reset */
+	hdmi_update_bits(it6263, HDMI_REG_SW_RST, SOFTV_RST, SOFTV_RST);
+	usleep_range(1000, 2000);
+	hdmi_update_bits(it6263, HDMI_REG_SW_RST, SOFTV_RST, 0);
+
+	/* reconfigure LVDS and retry several times in case video is instable */
+	for (i = 0; i < 3; i++) {
+		timeout = jiffies + msecs_to_jiffies(500);
+		do {
+			regmap_read(regmap, HDMI_REG_SYS_STATUS, &status);
+		} while (!(status & TXVIDSTABLE) &&
+					time_before(jiffies, timeout));
+
+		if (status & TXVIDSTABLE) {
+			is_stable = true;
+			break;
+		}
+
+		it6263_lvds_config(it6263);
+
+		dev_dbg(&it6263->hdmi_i2c->dev,
+					"retry to lock input video %d\n", i);
+	}
+
+	if (!is_stable)
+		dev_warn(&it6263->hdmi_i2c->dev,
+				"failed to wait for video stable\n");
+
+	regmap_write(regmap, HDMI_REG_AFE_DRV_CTRL, 0);
+
+	/* AV unmute */
+	hdmi_update_bits(it6263, HDMI_REG_GCP, AVMUTE, 0);
+
+	if (it6263->is_hdmi)
+		regmap_write(regmap, HDMI_REG_PKT_GENERAL_CTRL,
+						ENABLE_PKT | REPEAT_PKT);
+}
+
+static void it6263_bridge_mode_set(struct drm_bridge *bridge,
+				    const struct drm_display_mode *mode,
+				    const struct drm_display_mode *adj)
+{
+	struct it6263 *it6263 = bridge_to_it6263(bridge);
+	struct regmap *regmap = it6263->hdmi_regmap;
+	bool pclk_high = adj->clock > 80000 ? true : false;
+
+	regmap_write(regmap, HDMI_REG_HDMI_MODE,
+				it6263->is_hdmi ? TX_HDMI_MODE : TX_DVI_MODE);
+
+	dev_dbg(&it6263->hdmi_i2c->dev, "%s mode\n",
+				it6263->is_hdmi ? "HDMI" : "DVI");
+
+	/* setup AFE */
+	regmap_write(regmap, HDMI_REG_AFE_DRV_CTRL, AFE_DRV_RST);
+	if (pclk_high)
+		regmap_write(regmap, HDMI_REG_AFE_XP_CTRL,
+						AFE_XP_GAINBIT | AFE_XP_RESETB);
+	else
+		regmap_write(regmap, HDMI_REG_AFE_XP_CTRL,
+						AFE_XP_ER0 | AFE_XP_RESETB);
+	regmap_write(regmap, HDMI_REG_AFE_ISW_CTRL, 0x10);
+	if (pclk_high)
+		regmap_write(regmap, HDMI_REG_AFE_IP_CTRL,
+						AFE_IP_GAINBIT | AFE_IP_RESETB);
+	else
+		regmap_write(regmap, HDMI_REG_AFE_IP_CTRL,
+						AFE_IP_ER0 | AFE_IP_RESETB);
+}
+
+static int it6263_bridge_attach(struct drm_bridge *bridge)
+{
+	struct it6263 *it6263 = bridge_to_it6263(bridge);
+	struct drm_device *drm = bridge->dev;
+	int ret;
+
+	if (!drm_core_check_feature(drm, DRIVER_ATOMIC)) {
+		dev_err(&it6263->hdmi_i2c->dev,
+			"it6263 driver only copes with atomic updates\n");
+		return -ENOTSUPP;
+	}
+
+	it6263->connector.polled = DRM_CONNECTOR_POLL_CONNECT |
+				   DRM_CONNECTOR_POLL_DISCONNECT;
+	ret = drm_connector_init(drm, &it6263->connector,
+				 &it6263_connector_funcs,
+				 DRM_MODE_CONNECTOR_HDMIA);
+	if (ret) {
+		dev_err(&it6263->hdmi_i2c->dev,
+				"Failed to initialize connector with drm\n");
+		return ret;
+	}
+
+	drm_connector_helper_add(&it6263->connector,
+				 &it6263_connector_helper_funcs);
+	drm_connector_attach_encoder(&it6263->connector, bridge->encoder);
+
+	return ret;
+}
+
+static const struct drm_bridge_funcs it6263_bridge_funcs = {
+	.attach = it6263_bridge_attach,
+	.mode_set = it6263_bridge_mode_set,
+	.disable = it6263_bridge_disable,
+	.enable = it6263_bridge_enable,
+};
+
+static int it6263_check_chipid(struct it6263 *it6263)
+{
+	struct device *dev = &it6263->hdmi_i2c->dev;
+	u8 vendor_id[2], device_id[2];
+	int ret;
+
+	ret = regmap_bulk_read(it6263->hdmi_regmap, REG_VENDOR_ID(0),
+				&vendor_id, 2);
+	if (ret) {
+		dev_err(dev, "regmap_bulk_read failed %d\n", ret);
+		return ret;
+	}
+
+	if (vendor_id[0] != HDMI_VENDER_ID_LOW ||
+	    vendor_id[1] != HDMI_VENDER_ID_HIGH) {
+		dev_err(dev,
+			"Invalid hdmi vendor id %02x %02x(expect 0x01 0xca)\n",
+			vendor_id[0], vendor_id[1]);
+		return -EINVAL;
+	}
+
+	ret = regmap_bulk_read(it6263->hdmi_regmap, REG_DEVICE_ID(0),
+				&device_id, 2);
+	if (ret) {
+		dev_err(dev, "regmap_bulk_read failed %d\n", ret);
+		return ret;
+	}
+
+	if (device_id[0] != HDMI_DEVICE_ID_LOW ||
+	    device_id[1] != HDMI_DEVICE_ID_HIGH) {
+		dev_err(dev,
+			"Invalid hdmi device id %02x %02x(expect 0x13 0x76)\n",
+			device_id[0], device_id[1]);
+		return -EINVAL;
+	}
+
+	ret = regmap_bulk_read(it6263->lvds_regmap, REG_VENDOR_ID(0),
+				&vendor_id, 2);
+	if (ret) {
+		dev_err(dev, "regmap_bulk_read failed %d\n", ret);
+		return ret;
+	}
+
+	if (vendor_id[0] != LVDS_VENDER_ID_LOW ||
+	    vendor_id[1] != LVDS_VENDER_ID_HIGH) {
+		dev_err(dev,
+			"Invalid lvds vendor id %02x %02x(expect 0x15 0xca)\n",
+			vendor_id[0], vendor_id[1]);
+		return -EINVAL;
+	}
+
+	ret = regmap_bulk_read(it6263->lvds_regmap, REG_DEVICE_ID(0),
+				&device_id, 2);
+	if (ret) {
+		dev_err(dev, "regmap_bulk_read failed %d\n", ret);
+		return ret;
+	}
+
+	if (device_id[0] != LVDS_DEVICE_ID_LOW ||
+	    device_id[1] != LVDS_DEVICE_ID_HIGH) {
+		dev_err(dev,
+			"Invalid lvds device id %02x %02x(expect 0x61 0x62)\n",
+			device_id[0], device_id[1]);
+		return -EINVAL;
+	}
+
+	return ret;
+}
+
+static const struct regmap_range it6263_hdmi_volatile_ranges[] = {
+	{ .range_min = 0, .range_max = 0x1ff },
+};
+
+static const struct regmap_access_table it6263_hdmi_volatile_table = {
+	.yes_ranges = it6263_hdmi_volatile_ranges,
+	.n_yes_ranges = ARRAY_SIZE(it6263_hdmi_volatile_ranges),
+};
+
+static const struct regmap_config it6263_hdmi_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.volatile_table = &it6263_hdmi_volatile_table,
+	.cache_type = REGCACHE_NONE,
+};
+
+static const struct regmap_range it6263_lvds_volatile_ranges[] = {
+	{ .range_min = 0, .range_max = 0xff },
+};
+
+static const struct regmap_access_table it6263_lvds_volatile_table = {
+	.yes_ranges = it6263_lvds_volatile_ranges,
+	.n_yes_ranges = ARRAY_SIZE(it6263_lvds_volatile_ranges),
+};
+
+static const struct regmap_config it6263_lvds_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.volatile_table = &it6263_lvds_volatile_table,
+	.cache_type = REGCACHE_NONE,
+};
+
+static int it6263_probe(struct i2c_client *client,
+			const struct i2c_device_id *id)
+{
+	struct device *dev = &client->dev;
+	struct device_node *np = dev->of_node;
+	struct device_node *remote_node = NULL, *endpoint = NULL;
+	struct of_changeset ocs;
+	struct property *prop;
+	struct it6263 *it6263;
+	int ret;
+
+	it6263 = devm_kzalloc(dev, sizeof(*it6263), GFP_KERNEL);
+	if (!it6263)
+		return -ENOMEM;
+
+	it6263->split_mode = of_property_read_bool(np, "split-mode");
+
+	it6263->hdmi_i2c = client;
+	it6263->lvds_i2c = i2c_new_dummy(client->adapter,
+						LVDS_INPUT_CTRL_I2C_ADDR);
+	if (!it6263->lvds_i2c) {
+		ret = -ENODEV;
+		goto of_reconfig;
+	}
+
+	it6263->hdmi_regmap = devm_regmap_init_i2c(client,
+						&it6263_hdmi_regmap_config);
+	if (IS_ERR(it6263->hdmi_regmap)) {
+		ret = PTR_ERR(it6263->hdmi_regmap);
+		goto unregister_lvds_i2c;
+	}
+
+	it6263->lvds_regmap = devm_regmap_init_i2c(it6263->lvds_i2c,
+						&it6263_lvds_regmap_config);
+	if (IS_ERR(it6263->lvds_regmap)) {
+		ret = PTR_ERR(it6263->lvds_regmap);
+		goto unregister_lvds_i2c;
+	}
+
+	it6263->reset_gpio = devm_gpiod_get_optional(dev, "reset",
+							GPIOD_OUT_LOW);
+	if (IS_ERR(it6263->reset_gpio)) {
+		ret = PTR_ERR(it6263->reset_gpio);
+
+		if (ret != -EPROBE_DEFER)
+			dev_err(dev, "Failed to get reset gpio: %d\n", ret);
+
+		goto unregister_lvds_i2c;
+	}
+
+	it6263_reset(it6263);
+
+	ret = regmap_write(it6263->hdmi_regmap, HDMI_REG_SW_RST, HDMI_RST_ALL);
+	if (ret)
+		goto unregister_lvds_i2c;
+
+	usleep_range(1000, 2000);
+
+	ret = regmap_write(it6263->hdmi_regmap, HDMI_REG_LVDS_PORT,
+				LVDS_INPUT_CTRL_I2C_ADDR << 1);
+	if (ret)
+		goto unregister_lvds_i2c;
+
+	ret = regmap_write(it6263->hdmi_regmap, HDMI_REG_LVDS_PORT_EN, 0x01);
+	if (ret)
+		goto unregister_lvds_i2c;
+
+	/* select HDMI bank0 */
+	ret = regmap_write(it6263->hdmi_regmap, HDMI_REG_BANK_CTRL,
+				BANK_SEL(0));
+	if (ret)
+		goto unregister_lvds_i2c;
+
+	ret = it6263_check_chipid(it6263);
+	if (ret)
+		goto unregister_lvds_i2c;
+
+	it6263_lvds_config(it6263);
+	it6263_hdmi_config(it6263);
+
+	it6263->bridge.funcs = &it6263_bridge_funcs;
+	it6263->bridge.of_node = np;
+	drm_bridge_add(&it6263->bridge);
+
+	i2c_set_clientdata(client, it6263);
+
+	return ret;
+
+unregister_lvds_i2c:
+	i2c_unregister_device(it6263->lvds_i2c);
+	if (ret == -EPROBE_DEFER)
+		return ret;
+
+of_reconfig:
+	endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
+	if (endpoint)
+		remote_node = of_graph_get_remote_port_parent(endpoint);
+
+	if (remote_node) {
+		int num_endpoints = 0;
+
+		/*
+		 * Remote node should have two endpoints (input and output: us)
+		 * If remote node has more than two endpoints, probably that it
+		 * has more outputs, so there is no need to disable it.
+		 */
+		endpoint = NULL;
+		while ((endpoint = of_graph_get_next_endpoint(remote_node,
+							      endpoint)))
+			num_endpoints++;
+
+		if (num_endpoints > 2) {
+			of_node_put(remote_node);
+			return ret;
+		}
+
+		prop = devm_kzalloc(dev, sizeof(*prop), GFP_KERNEL);
+		prop->name = devm_kstrdup(dev, "status", GFP_KERNEL);
+		prop->value = devm_kstrdup(dev, "disabled", GFP_KERNEL);
+		prop->length = 9;
+		of_changeset_init(&ocs);
+		of_changeset_update_property(&ocs, remote_node, prop);
+		ret = of_changeset_apply(&ocs);
+		if (!ret)
+			dev_warn(dev,
+				"Probe failed. Remote port '%s' disabled\n",
+				remote_node->full_name);
+
+		of_node_put(remote_node);
+	};
+
+	return ret;
+}
+
+static int it6263_remove(struct i2c_client *client)
+
+{
+	struct it6263 *it6263 = i2c_get_clientdata(client);
+
+	drm_bridge_remove(&it6263->bridge);
+	i2c_unregister_device(it6263->lvds_i2c);
+
+	return 0;
+}
+
+static const struct of_device_id it6263_dt_ids[] = {
+	{ .compatible = "ite,it6263", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, it6263_dt_ids);
+
+static const struct i2c_device_id it6263_i2c_ids[] = {
+	{ "it6263", 0 },
+	{ },
+};
+MODULE_DEVICE_TABLE(i2c, it6263_i2c_ids);
+
+static struct i2c_driver it6263_driver = {
+	.probe = it6263_probe,
+	.remove = it6263_remove,
+	.driver = {
+		.name = "it6263",
+		.of_match_table = it6263_dt_ids,
+	},
+	.id_table = it6263_i2c_ids,
+};
+module_i2c_driver(it6263_driver);
+
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_DESCRIPTION("ITE Tech. Inc. IT6263 LVDS->HDMI bridge");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -279,7 +279,9 @@
 	 * This check is to avoid both the drivers
 	 * removing the bridge in their remove() function
 	 */
-	if (!ge_b850v3_lvds_ptr)
+	if (!ge_b850v3_lvds_ptr ||
+	    !ge_b850v3_lvds_ptr->stdp2690_i2c ||
+		!ge_b850v3_lvds_ptr->stdp4028_i2c)
 		goto out;
 
 	drm_bridge_remove(&ge_b850v3_lvds_ptr->bridge);
@@ -291,16 +293,11 @@
 	mutex_unlock(&ge_b850v3_lvds_dev_mutex);
 }
 
-static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
-				       const struct i2c_device_id *id)
+static int ge_b850v3_register(void)
 {
+	struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;
 	struct device *dev = &stdp4028_i2c->dev;
 
-	ge_b850v3_lvds_init(dev);
-
-	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
-	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
-
 	/* drm bridge initialization */
 	ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
 	ge_b850v3_lvds_ptr->bridge.of_node = dev->of_node;
@@ -321,6 +318,27 @@
 			"ge-b850v3-lvds-dp", ge_b850v3_lvds_ptr);
 }
 
+static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
+				       const struct i2c_device_id *id)
+{
+	struct device *dev = &stdp4028_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
+
+	if (ret)
+		return ret;
+
+	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
+	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
+
+	/* Only register after both bridges are probed */
+	if (!ge_b850v3_lvds_ptr->stdp2690_i2c)
+		return 0;
+
+	return ge_b850v3_register();
+}
+
 static int stdp4028_ge_b850v3_fw_remove(struct i2c_client *stdp4028_i2c)
 {
 	ge_b850v3_lvds_remove();
@@ -354,13 +372,21 @@
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp2690_i2c->dev;
+	int ret;
 
-	ge_b850v3_lvds_init(dev);
+	ret = ge_b850v3_lvds_init(dev);
+
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
 	i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
 
-	return 0;
+	/* Only register after both bridges are probed */
+	if (!ge_b850v3_lvds_ptr->stdp4028_i2c)
+		return 0;
+
+	return ge_b850v3_register();
 }
 
 static int stdp2690_ge_b850v3_fw_remove(struct i2c_client *stdp2690_i2c)
@@ -400,7 +426,11 @@
 	if (ret)
 		return ret;
 
-	return i2c_add_driver(&stdp2690_ge_b850v3_fw_driver);
+	ret = i2c_add_driver(&stdp2690_ge_b850v3_fw_driver);
+	if (ret)
+		i2c_del_driver(&stdp4028_ge_b850v3_fw_driver);
+
+	return ret;
 }
 module_init(stdpxxxx_ge_b850v3_init);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nwl-dsi/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nwl-dsi/Kconfig
@@ -0,0 +1,16 @@
+config DRM_NWL_MIPI_DSI
+	tristate "Support for Northwest Logic MIPI DSI Host controller"
+	depends on DRM
+	depends on COMMON_CLK
+	depends on OF && HAS_IOMEM
+	select DRM_KMS_HELPER
+	select DRM_MIPI_DSI
+	select DRM_PANEL_BRIDGE
+	select GENERIC_PHY_MIPI_DPHY
+	select MFD_SYSCON
+	select MULTIPLEXER
+	select REGMAP_MMIO
+	help
+	  This enables the Northwest Logic MIPI DSI Host controller as
+	  for example found on NXP's i.MX8 Processors.
+
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nwl-dsi/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nwl-dsi/Makefile
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0
+nwl-mipi-dsi-y := nwl-drv.o nwl-dsi.o
+obj-$(CONFIG_DRM_NWL_MIPI_DSI) += nwl-mipi-dsi.o
+header-test-y += nwl-drv.h nwl-dsi.h
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nwl-dsi/nwl-drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nwl-dsi/nwl-drv.c
@@ -0,0 +1,1285 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * i.MX8 NWL MIPI DSI host driver
+ *
+ * Copyright (C) 2017 NXP
+ * Copyright (C) 2019 Purism SPC
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/irq.h>
+#include <linux/firmware/imx/sci.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/mux/consumer.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <linux/phy/phy.h>
+#include <linux/reset.h>
+#include <linux/regmap.h>
+#include <linux/sys_soc.h>
+
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_of.h>
+#include <drm/drm_print.h>
+#include <drm/drm_probe_helper.h>
+
+
+#include "nwl-drv.h"
+#include "nwl-dsi.h"
+
+#define DRV_NAME "nwl-dsi"
+
+/* Possible platform specific clocks */
+#define NWL_DSI_CLK_CORE	"core"
+#define NWL_DSI_CLK_BYPASS	"bypass"
+#define NWL_DSI_CLK_PIXEL	"pixel"
+
+/* Maximum Video PLL frequency */
+#define MAX_PLL_FREQ 1200000000
+
+#define MBPS(x) ((x) * 1000000)
+#define MIN_PHY_RATE MBPS(24)
+#define MAX_PHY_RATE MBPS(30)
+
+#define DC_ID(x)	IMX_SC_R_DC_ ## x
+#define MIPI_ID(x)	IMX_SC_R_MIPI_ ## x
+#define SYNC_CTRL(x)	IMX_SC_C_SYNC_CTRL ## x
+#define PXL_VLD(x)	IMX_SC_C_PXL_LINK_MST ## x ## _VLD
+#define PXL_ADDR(x)	IMX_SC_C_PXL_LINK_MST ## x ## _ADDR
+
+/* Possible valid PHY reference clock rates*/
+static u32 phyref_rates[] = {
+	27000000,
+	25000000,
+	24000000,
+};
+
+/*
+ * TODO: find a better way to access imx_crtc_state
+ */
+struct imx_crtc_state {
+	struct drm_crtc_state			base;
+	u32					bus_format;
+	u32					bus_flags;
+	int					di_hsync_pin;
+	int					di_vsync_pin;
+};
+
+static inline struct imx_crtc_state *to_imx_crtc_state(struct drm_crtc_state *s)
+{
+	return container_of(s, struct imx_crtc_state, base);
+}
+
+enum nwl_dsi_ext_regs {
+       NWL_DSI_IMX_REG_GPR = BIT(1),
+};
+
+static const struct regmap_config nwl_dsi_regmap_config = {
+	.reg_bits = 16,
+	.val_bits = 32,
+	.reg_stride = 4,
+	.max_register = NWL_DSI_IRQ_MASK2,
+	.name = DRV_NAME,
+};
+
+struct nwl_dsi_platform_data {
+	int (*pclk_reset)(struct nwl_dsi *dsi, bool reset);
+	int (*mipi_reset)(struct nwl_dsi *dsi, bool reset);
+	int (*dpi_reset)(struct nwl_dsi *dsi, bool reset);
+	int (*select_input)(struct nwl_dsi *dsi);
+	int (*deselect_input)(struct nwl_dsi *dsi);
+	struct nwl_dsi_plat_clk_config clk_config[NWL_DSI_MAX_PLATFORM_CLOCKS];
+	u32 reg_tx_ulps;
+	u32 reg_pxl2dpi;
+	u32 max_instances;
+	u32 tx_clk_rate;
+	u32 rx_clk_rate;
+	bool mux_present;
+	bool shared_phy;
+};
+
+static inline struct nwl_dsi *bridge_to_dsi(struct drm_bridge *bridge)
+{
+	return container_of(bridge, struct nwl_dsi, bridge);
+}
+
+static unsigned long nwl_dsi_get_bit_clock(struct nwl_dsi *dsi,
+		unsigned long pixclock, u32 lanes)
+{
+	int bpp;
+
+	if (lanes < 1 || lanes > 4)
+		return 0;
+
+	bpp = mipi_dsi_pixel_format_to_bpp(dsi->format);
+
+	return (pixclock * bpp) / lanes;
+}
+
+/*
+ * Utility function to calculate least commom multiple, using an improved
+ * version of the Euclidean algorithm for greatest common factor.
+ */
+static unsigned long nwl_dsi_get_lcm(unsigned long a, unsigned long b)
+{
+	u32 gcf = 0; /* greatest common factor */
+	unsigned long tmp_a = a;
+	unsigned long tmp_b = b;
+
+	if (!a || !b)
+		return 0;
+
+	while (tmp_a % tmp_b) {
+		gcf = tmp_a % tmp_b;
+		tmp_a = tmp_b;
+		tmp_b = gcf;
+	}
+
+	if (!gcf)
+		return a;
+
+	return ((unsigned long long)a * b) / gcf;
+}
+
+/*
+ * This function tries to adjust the crtc_clock for a DSI device in such a way
+ * that the video pll will be able to satisfy both Display Controller pixel
+ * clock (feeding out DPI interface) and our input phy_ref clock.
+ * Also, the DC pixel clock must be lower than the actual clock in order to
+ * have enough blanking space to send DSI commands, if the device is a panel.
+ */
+static void nwl_dsi_setup_pll_config(struct mode_config *config, u32 lvl)
+{
+	unsigned long pll_rate;
+	int div;
+	size_t i, num_rates = ARRAY_SIZE(config->phy_rates);
+
+	config->crtc_clock = 0;
+
+	for (i = 0; i < num_rates; i++) {
+		int crtc_clock;
+
+		if (!config->phy_rates[i])
+			break;
+		/*
+		 * First, we need to check if phy_ref can actually be obtained
+		 * from pixel clock. To do this, we check their lowest common
+		 * multiple, which has to be in PLL range.
+		 */
+		pll_rate = nwl_dsi_get_lcm(config->clock, config->phy_rates[i]);
+		if (pll_rate > MAX_PLL_FREQ) {
+			/* Drop pll_rate to a realistic value */
+			while (pll_rate > MAX_PLL_FREQ)
+				pll_rate >>= 1;
+			/* Make sure pll_rate can provide phy_ref rate */
+			div = DIV_ROUND_UP(pll_rate, config->phy_rates[i]);
+			pll_rate = config->phy_rates[i] * div;
+		} else {
+			/*
+			 * Increase the pll rate to highest possible rate for
+			 * better accuracy.
+			 */
+			while (pll_rate <= MAX_PLL_FREQ)
+				pll_rate <<= 1;
+			pll_rate >>= 1;
+		}
+
+		/*
+		 * Next, we need to tweak the pll_rate to a value that can also
+		 * satisfy the crtc_clock.
+		 */
+		div = DIV_ROUND_CLOSEST(pll_rate, config->clock);
+		if (lvl)
+			pll_rate -= config->phy_rates[i] * lvl;
+		crtc_clock = pll_rate / div;
+		config->pll_rates[i] = pll_rate;
+
+		/*
+		 * Pick a crtc_clock which is closest to pixel clock.
+		 * Also, make sure that the pixel clock is a multiply of
+		 * 50Hz.
+		 */
+		if (!(crtc_clock % 50) &&
+		    abs(config->clock - crtc_clock) <
+		    abs(config->clock - config->crtc_clock)) {
+			config->crtc_clock = crtc_clock;
+			config->phy_rate_idx = i;
+		}
+	}
+}
+
+/*
+ * This function will try the required phy speed for current mode
+ * If the phy speed can be achieved, the phy will save the speed
+ * configuration
+ */
+static struct mode_config *nwl_dsi_mode_probe(struct nwl_dsi *dsi,
+			    const struct drm_display_mode *mode)
+{
+	struct device *dev = dsi->dev;
+	struct mode_config *config;
+	union phy_configure_opts phy_opts;
+	unsigned long clock = mode->clock * 1000;
+	unsigned long bit_clk = 0;
+	unsigned long phy_rates[3] = {0};
+	int match_rates = 0;
+	u32 lanes = dsi->lanes;
+	size_t i = 0, num_rates = ARRAY_SIZE(phyref_rates);
+
+	list_for_each_entry(config, &dsi->valid_modes, list)
+		if (config->clock == clock)
+			return config;
+
+	phy_mipi_dphy_get_default_config(clock,
+			mipi_dsi_pixel_format_to_bpp(dsi->format),
+			lanes, &phy_opts.mipi_dphy);
+	phy_opts.mipi_dphy.lp_clk_rate = clk_get_rate(dsi->tx_esc_clk);
+
+	while (i < num_rates) {
+		int ret;
+
+		bit_clk = nwl_dsi_get_bit_clock(dsi, clock, lanes);
+
+		clk_set_rate(dsi->pll_clk, phyref_rates[i] * 32);
+		clk_set_rate(dsi->phy_ref_clk, phyref_rates[i]);
+		ret = phy_validate(dsi->phy, PHY_MODE_MIPI_DPHY, 0, &phy_opts);
+
+		/* Pick the non-failing rate, and search for more */
+		if (!ret) {
+			phy_rates[match_rates++] = phyref_rates[i++];
+			continue;
+		}
+
+		if (match_rates)
+			break;
+
+		/* Reached the end of phyref_rates, try another lane config */
+		if ((i++ == num_rates - 1) && (--lanes > 2)) {
+			i = 0;
+			continue;
+		}
+	}
+
+	/*
+	 * Try swinging between min and max pll rates and see what rate (in terms
+	 * of kHz) we can custom use to get the required bit-clock.
+	 */
+	if (!match_rates) {
+		int min_div, max_div;
+		int bit_clk_khz;
+
+		lanes = dsi->lanes;
+		bit_clk = nwl_dsi_get_bit_clock(dsi, clock, lanes);
+
+		min_div = DIV_ROUND_UP(bit_clk, MAX_PHY_RATE);
+		max_div = DIV_ROUND_DOWN_ULL(bit_clk, MIN_PHY_RATE);
+		bit_clk_khz = bit_clk / 1000;
+
+		for (i = max_div; i > min_div; i--) {
+			if (!(bit_clk_khz % i)) {
+				phy_rates[0] = bit_clk / i;
+				match_rates = 1;
+				break;
+			}
+		}
+	}
+
+	if (!match_rates) {
+		DRM_DEV_DEBUG_DRIVER(dev,
+			"Cannot setup PHY for mode: %ux%u @%d kHz\n",
+			mode->hdisplay,
+			mode->vdisplay,
+			mode->clock);
+
+		return NULL;
+	}
+
+	config = devm_kzalloc(dsi->dev, sizeof(struct mode_config), GFP_KERNEL);
+	config->clock = clock;
+	config->lanes = lanes;
+	config->bitclock = bit_clk;
+	memcpy(&config->phy_rates, &phy_rates, sizeof(phy_rates));
+	list_add(&config->list, &dsi->valid_modes);
+
+	return config;
+}
+
+static int nwl_dsi_set_platform_clocks(struct nwl_dsi *dsi, bool enable)
+{
+	struct device *dev = dsi->dev;
+	const char *id;
+	struct clk *clk;
+	size_t i;
+	unsigned long rate;
+	int ret, result = 0;
+
+	DRM_DEV_DEBUG_DRIVER(dev, "%s platform clocks\n",
+			     enable ? "enabling" : "disabling");
+	for (i = 0; i < ARRAY_SIZE(dsi->pdata->clk_config); i++) {
+		if (!dsi->clk_config[i].present)
+			continue;
+		id = dsi->clk_config[i].id;
+		clk = dsi->clk_config[i].clk;
+
+		if (enable) {
+			ret = clk_prepare_enable(clk);
+			if (ret < 0) {
+				DRM_DEV_ERROR(dev,
+					      "Failed to enable %s clk: %d\n",
+					      id, ret);
+				result = result ?: ret;
+			}
+			rate = clk_get_rate(clk);
+			DRM_DEV_DEBUG_DRIVER(dev, "Enabled %s clk @%lu Hz\n",
+					     id, rate);
+		} else {
+			clk_disable_unprepare(clk);
+			DRM_DEV_DEBUG_DRIVER(dev, "Disabled %s clk\n", id);
+		}
+	}
+
+	return result;
+}
+
+static void nwl_dsi_bridge_pre_enable(struct drm_bridge *bridge)
+{
+	struct nwl_dsi *dsi = bridge_to_dsi(bridge);
+	int ret;
+
+	pm_runtime_get_sync(dsi->dev);
+
+	dsi->pdata->dpi_reset(dsi, true);
+	dsi->pdata->mipi_reset(dsi, true);
+	dsi->pdata->pclk_reset(dsi, true);
+
+	if (dsi->lcdif_clk)
+		clk_prepare_enable(dsi->lcdif_clk);
+
+	if (nwl_dsi_set_platform_clocks(dsi, true) < 0)
+		return;
+
+	/* Perform Step 1 from DSI reset-out instructions */
+	ret = dsi->pdata->pclk_reset(dsi, false);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to deassert PCLK: %d\n", ret);
+		return;
+	}
+
+	/* Perform Step 2 from DSI reset-out instructions */
+	nwl_dsi_enable(dsi);
+
+	/* Perform Step 3 from DSI reset-out instructions */
+	ret = dsi->pdata->mipi_reset(dsi, false);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to deassert MIPI: %d\n", ret);
+		return;
+	}
+
+	/*
+	 * We need to force call enable for the panel here, in order to
+	 * make the panel initialization execute before our call to
+	 * bridge_enable, where we will enable the DPI and start streaming
+	 * pixels on the data lanes.
+	 */
+	drm_bridge_chain_enable(dsi->panel_bridge);
+}
+
+static void nwl_dsi_bridge_enable(struct drm_bridge *bridge)
+{
+	struct nwl_dsi *dsi = bridge_to_dsi(bridge);
+	int ret;
+
+	/* Perform Step 5 from DSI reset-out instructions */
+	ret = dsi->pdata->dpi_reset(dsi, false);
+	if (ret < 0)
+		DRM_DEV_ERROR(dsi->dev, "Failed to deassert DPI: %d\n", ret);
+
+}
+
+static void nwl_dsi_bridge_disable(struct drm_bridge *bridge)
+{
+	struct nwl_dsi *dsi = bridge_to_dsi(bridge);
+
+	nwl_dsi_disable(dsi);
+
+	dsi->pdata->dpi_reset(dsi, true);
+	dsi->pdata->mipi_reset(dsi, true);
+	dsi->pdata->pclk_reset(dsi, true);
+
+	nwl_dsi_set_platform_clocks(dsi, false);
+
+	if (dsi->lcdif_clk)
+		clk_disable_unprepare(dsi->lcdif_clk);
+
+	pm_runtime_put(dsi->dev);
+}
+
+static int nwl_dsi_get_dphy_params(struct nwl_dsi *dsi,
+				   const struct drm_display_mode *mode,
+				   union phy_configure_opts *phy_opts)
+{
+	unsigned long rate;
+	int ret;
+
+	if (dsi->lanes < 1 || dsi->lanes > 4)
+		return -EINVAL;
+
+	/*
+	 * So far the DPHY spec minimal timings work for both mixel
+	 * dphy and nwl dsi host
+	 */
+	ret = phy_mipi_dphy_get_default_config(
+		mode->clock * 1000,
+		mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes,
+		&phy_opts->mipi_dphy);
+	if (ret < 0)
+		return ret;
+
+	rate = clk_get_rate(dsi->tx_esc_clk);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "LP clk is @%lu Hz\n", rate);
+	phy_opts->mipi_dphy.lp_clk_rate = rate;
+
+	return 0;
+}
+
+static bool nwl_dsi_bridge_mode_fixup(struct drm_bridge *bridge,
+				      const struct drm_display_mode *mode,
+				      struct drm_display_mode *adjusted)
+{
+	struct nwl_dsi *dsi = bridge_to_dsi(bridge);
+	struct mode_config *config;
+	unsigned long pll_rate;
+
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "Fixup mode:\n");
+	drm_mode_debug_printmodeline(adjusted);
+
+	config = nwl_dsi_mode_probe(dsi, adjusted);
+	if (!config)
+		return false;
+
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "lanes=%u, data_rate=%lu\n",
+			     config->lanes, config->bitclock);
+	if (config->lanes < 2 || config->lanes > 4)
+		return false;
+
+	/* Max data rate for this controller is 1.5Gbps */
+	if (config->bitclock > 1500000000)
+		return false;
+
+	pll_rate = config->pll_rates[config->phy_rate_idx];
+	if (dsi->pll_clk && pll_rate) {
+		clk_set_rate(dsi->pll_clk, pll_rate);
+		DRM_DEV_DEBUG_DRIVER(dsi->dev,
+				     "Video pll rate: %lu (actual: %lu)",
+				     pll_rate, clk_get_rate(dsi->pll_clk));
+	}
+	/* Update the crtc_clock to be used by display controller */
+	if (config->crtc_clock)
+		adjusted->crtc_clock = config->crtc_clock / 1000;
+	else if (dsi->clk_drop_lvl) {
+		int div;
+		unsigned long phy_ref_rate;
+
+		phy_ref_rate = config->phy_rates[config->phy_rate_idx];
+		pll_rate = config->bitclock;
+		div = DIV_ROUND_CLOSEST(pll_rate, config->clock);
+		pll_rate -= phy_ref_rate * dsi->clk_drop_lvl;
+		adjusted->crtc_clock = (pll_rate / div) / 1000;
+	}
+
+	if (!dsi->use_dcss) {
+		/* LCDIF + NWL needs active high sync */
+		adjusted->flags |= (DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
+		adjusted->flags &= ~(DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC);
+	} else {
+		adjusted->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
+		adjusted->flags |= (DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC);
+	}
+
+	return true;
+}
+
+static enum drm_mode_status
+nwl_dsi_bridge_mode_valid(struct drm_bridge *bridge,
+			  const struct drm_display_mode *mode)
+{
+	struct nwl_dsi *dsi = bridge_to_dsi(bridge);
+	struct mode_config *config;
+	unsigned long pll_rate;
+	int bit_rate;
+
+	bit_rate = nwl_dsi_get_bit_clock(dsi, mode->clock * 1000, dsi->lanes);
+
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "Validating mode:");
+	drm_mode_debug_printmodeline(mode);
+
+	if (bit_rate > MBPS(1500))
+		return MODE_CLOCK_HIGH;
+
+	if (bit_rate < MBPS(80))
+		return MODE_CLOCK_LOW;
+
+	config = nwl_dsi_mode_probe(dsi, mode);
+	if (!config)
+		return MODE_NOCLOCK;
+
+	pll_rate = config->pll_rates[config->phy_rate_idx];
+	if (dsi->pll_clk && !pll_rate)
+		nwl_dsi_setup_pll_config(config, dsi->clk_drop_lvl);
+
+	return MODE_OK;
+}
+
+static void
+nwl_dsi_bridge_mode_set(struct drm_bridge *bridge,
+			const struct drm_display_mode *mode,
+			const struct drm_display_mode *adjusted)
+{
+	struct nwl_dsi *dsi = bridge_to_dsi(bridge);
+	struct device *dev = dsi->dev;
+	union phy_configure_opts new_cfg;
+	unsigned long phy_ref_rate;
+	struct mode_config *config;
+	size_t i;
+	const char *id;
+	struct clk *clk;
+	int ret;
+
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "Setting mode:\n");
+	drm_mode_debug_printmodeline(adjusted);
+
+	config = nwl_dsi_mode_probe(dsi, adjusted);
+	/* New mode? This should NOT happen */
+	if (!config) {
+		DRM_DEV_ERROR(dsi->dev, "Unsupported mode provided:\n");
+		drm_mode_debug_printmodeline(adjusted);
+		return;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(dsi->pdata->clk_config); i++) {
+		if (!dsi->clk_config[i].present)
+			continue;
+		id = dsi->clk_config[i].id;
+		clk = dsi->clk_config[i].clk;
+
+		/* Set bypass and pixel clocks to mode clock rate */
+		if (!strcmp(id, NWL_DSI_CLK_BYPASS) ||
+		    !strcmp(id, NWL_DSI_CLK_PIXEL))
+			clk_set_rate(clk, adjusted->crtc_clock * 1000);
+	}
+
+	memcpy(&dsi->mode, adjusted, sizeof(dsi->mode));
+
+	phy_ref_rate = config->phy_rates[config->phy_rate_idx];
+	clk_set_rate(dsi->phy_ref_clk, phy_ref_rate);
+	ret = nwl_dsi_get_dphy_params(dsi, adjusted, &new_cfg);
+	if (ret < 0)
+		return;
+
+	/*
+	 * If hs clock is unchanged, we're all good - all parameters are
+	 * derived from it atm.
+	 */
+	if (new_cfg.mipi_dphy.hs_clk_rate == dsi->phy_cfg.mipi_dphy.hs_clk_rate)
+		return;
+
+	DRM_DEV_DEBUG_DRIVER(dev,
+			     "PHY at ref rate: %lu (actual: %lu)\n",
+			     phy_ref_rate, clk_get_rate(dsi->phy_ref_clk));
+	/* Save the new desired phy config */
+	memcpy(&dsi->phy_cfg, &new_cfg, sizeof(new_cfg));
+
+}
+
+static int nwl_dsi_bridge_attach(struct drm_bridge *bridge)
+{
+	struct nwl_dsi *dsi = bridge->driver_private;
+	struct drm_bridge *panel_bridge;
+	struct drm_panel *panel;
+	struct clk *phy_parent;
+	int ret;
+
+	ret = drm_of_find_panel_or_bridge(dsi->dev->of_node, 1, 0, &panel,
+					  &panel_bridge);
+	if (ret)
+		return ret;
+
+	if (panel) {
+		panel_bridge = drm_panel_bridge_add(panel,
+						    DRM_MODE_CONNECTOR_DSI);
+		if (IS_ERR(panel_bridge))
+			return PTR_ERR(panel_bridge);
+	}
+
+	dsi->panel_bridge = panel_bridge;
+
+	if (!dsi->panel_bridge)
+		return -EPROBE_DEFER;
+
+	phy_parent = devm_clk_get(dsi->dev, "phy_parent");
+	if (!IS_ERR_OR_NULL(phy_parent)) {
+		ret = clk_set_parent(dsi->phy_ref_clk, phy_parent);
+		ret |= clk_set_parent(dsi->tx_esc_clk, phy_parent);
+		ret |= clk_set_parent(dsi->rx_esc_clk, phy_parent);
+
+		if (ret) {
+			dev_err(dsi->dev,
+				 "Error re-parenting phy/tx/rx clocks: %d",
+				 ret);
+
+			return ret;
+		}
+
+		if (dsi->pdata->tx_clk_rate)
+			clk_set_rate(dsi->tx_esc_clk, dsi->pdata->tx_clk_rate);
+
+		if (dsi->pdata->rx_clk_rate)
+			clk_set_rate(dsi->rx_esc_clk, dsi->pdata->rx_clk_rate);
+	}
+
+	return drm_bridge_attach(bridge->encoder, dsi->panel_bridge, bridge);
+}
+
+static void nwl_dsi_bridge_detach(struct drm_bridge *bridge)
+{
+	struct nwl_dsi *dsi = bridge->driver_private;
+
+	drm_of_panel_bridge_remove(dsi->dev->of_node, 1, 0);
+}
+
+static const struct drm_bridge_funcs nwl_dsi_bridge_funcs = {
+	.pre_enable = nwl_dsi_bridge_pre_enable,
+	.enable     = nwl_dsi_bridge_enable,
+	.disable    = nwl_dsi_bridge_disable,
+	.mode_fixup = nwl_dsi_bridge_mode_fixup,
+	.mode_set   = nwl_dsi_bridge_mode_set,
+	.mode_valid = nwl_dsi_bridge_mode_valid,
+	.attach	    = nwl_dsi_bridge_attach,
+	.detach	    = nwl_dsi_bridge_detach,
+};
+
+static void nwl_dsi_encoder_destroy(struct drm_encoder *encoder)
+{
+	drm_encoder_cleanup(encoder);
+}
+
+static const struct drm_encoder_funcs nwl_dsi_encoder_funcs = {
+	.destroy = nwl_dsi_encoder_destroy,
+};
+
+static int nwl_dsi_parse_dt(struct nwl_dsi *dsi)
+{
+	struct device_node *np = dsi->dev->of_node;
+	struct platform_device *pdev = to_platform_device(dsi->dev);
+	struct clk *clk;
+	const char *clk_id;
+	void __iomem *base;
+	int i, ret, id;
+
+	dsi->phy = devm_phy_get(dsi->dev, "dphy");
+	if (IS_ERR(dsi->phy)) {
+		ret = PTR_ERR(dsi->phy);
+		if (ret != -EPROBE_DEFER)
+			DRM_DEV_ERROR(dsi->dev, "Could not get PHY: %d\n", ret);
+		return ret;
+	}
+
+	id = of_alias_get_id(np, "mipi_dsi");
+	if (id > 0) {
+		if (id > dsi->pdata->max_instances - 1) {
+			dev_err(dsi->dev,
+				"Too many instances! (cur: %d, max: %d)\n",
+				id, dsi->pdata->max_instances);
+			return -ENODEV;
+		}
+		dsi->instance = id;
+	}
+
+	/* Platform dependent clocks */
+	memcpy(dsi->clk_config, dsi->pdata->clk_config,
+	       sizeof(dsi->pdata->clk_config));
+
+	for (i = 0; i < ARRAY_SIZE(dsi->pdata->clk_config); i++) {
+		if (!dsi->clk_config[i].present)
+			continue;
+
+		clk_id = dsi->clk_config[i].id;
+		clk = devm_clk_get(dsi->dev, clk_id);
+		if (IS_ERR(clk)) {
+			ret = PTR_ERR(clk);
+			DRM_DEV_ERROR(dsi->dev, "Failed to get %s clock: %d\n",
+				      clk_id, ret);
+			return ret;
+		}
+		DRM_DEV_DEBUG_DRIVER(dsi->dev, "Setup clk %s (rate: %lu)\n",
+				     clk_id, clk_get_rate(clk));
+		dsi->clk_config[i].clk = clk;
+	}
+
+	/* DSI clocks */
+	clk = devm_clk_get(dsi->dev, "phy_ref");
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		DRM_DEV_ERROR(dsi->dev, "Failed to get phy_ref clock: %d\n",
+			      ret);
+		return ret;
+	}
+	dsi->phy_ref_clk = clk;
+
+	clk = devm_clk_get(dsi->dev, "rx_esc");
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		DRM_DEV_ERROR(dsi->dev, "Failed to get rx_esc clock: %d\n",
+			      ret);
+		return ret;
+	}
+	dsi->rx_esc_clk = clk;
+
+	clk = devm_clk_get(dsi->dev, "tx_esc");
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		DRM_DEV_ERROR(dsi->dev, "Failed to get tx_esc clock: %d\n",
+			      ret);
+		return ret;
+	}
+	dsi->tx_esc_clk = clk;
+
+	/* The video_pll clock is optional */
+	clk = devm_clk_get(dsi->dev, "video_pll");
+	if (!IS_ERR(clk))
+		dsi->pll_clk = clk;
+
+	/*
+	 * Usually, we don't need this clock here, but due to a design issue,
+	 * the MIPI Reset Synchronizer block depends on this clock. So, we will
+	 * use this clock when we need to reset (or take out of reset) MIPI PHY
+	 */
+	dsi->lcdif_clk = devm_clk_get(dsi->dev, "lcdif");
+	if (IS_ERR(dsi->lcdif_clk))
+		dsi->lcdif_clk = NULL;
+
+	if (dsi->pdata->mux_present) {
+		dsi->mux = devm_mux_control_get(dsi->dev, NULL);
+		if (IS_ERR(dsi->mux)) {
+			ret = PTR_ERR(dsi->mux);
+			if (ret != -EPROBE_DEFER)
+				DRM_DEV_ERROR(dsi->dev,
+					      "Failed to get mux: %d\n", ret);
+			return ret;
+		}
+	}
+
+	base = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(base))
+		return PTR_ERR(base);
+
+	dsi->regmap =
+		devm_regmap_init_mmio(dsi->dev, base, &nwl_dsi_regmap_config);
+	if (IS_ERR(dsi->regmap)) {
+		ret = PTR_ERR(dsi->regmap);
+		DRM_DEV_ERROR(dsi->dev, "Failed to create NWL DSI regmap: %d\n",
+			      ret);
+		return ret;
+	}
+
+	/* For these two regs we need a mapping to MIPI-DSI CSR */
+	if (dsi->pdata->reg_tx_ulps || dsi->pdata->reg_pxl2dpi) {
+		dsi->csr = syscon_regmap_lookup_by_phandle(np, "csr");
+		if (IS_ERR(dsi->csr)) {
+			ret = PTR_ERR(dsi->csr);
+			dev_err(dsi->dev,
+				"Failed to get CSR regmap: %d\n", ret);
+			return ret;
+		}
+	}
+
+	dsi->irq = platform_get_irq(pdev, 0);
+	if (dsi->irq < 0) {
+		if (dsi->irq != -EPROBE_DEFER)
+			DRM_DEV_ERROR(dsi->dev,
+				      "Failed to get device IRQ: %d\n",
+				      dsi->irq);
+		return dsi->irq;
+	}
+
+	/*
+	 * Wee need to manage individual resets, since the order of their usage
+	 * really matters to DSI Host Controller. The order of operation,
+	 * should be like this:
+	 * 1. Deassert pclk reset (this is needed to have access to DSI regs)
+	 * 2. Configure DSI Host and DPHY and enable DPHY
+	 * 3. Deassert ESC and BYTE resets (needed for Host TX operations)
+	 * 4. Send DSI cmds (if the DSI peripheral needs configuration)
+	 * 5. Deassert DPI reset (deasserting DPI reset, enables DPI to receive
+	 *    DPI pixels and start streamming DSI data)
+	 */
+	dsi->rst_pclk = __devm_reset_control_get(dsi->dev,
+						 "pclk", 0, false, true, true);
+	if (IS_ERR(dsi->rst_pclk)) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to get pclk reset: %ld\n",
+			      PTR_ERR(dsi->rst_pclk));
+		return PTR_ERR(dsi->rst_pclk);
+	}
+	dsi->rst_byte = __devm_reset_control_get(dsi->dev,
+						 "byte", 0, false, true, true);
+	if (IS_ERR(dsi->rst_byte)) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to get byte reset: %ld\n",
+			      PTR_ERR(dsi->rst_byte));
+		return PTR_ERR(dsi->rst_byte);
+	}
+	dsi->rst_esc = __devm_reset_control_get(dsi->dev,
+						"esc", 0, false, true, true);
+	if (IS_ERR(dsi->rst_esc)) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to get esc reset: %ld\n",
+			      PTR_ERR(dsi->rst_esc));
+		return PTR_ERR(dsi->rst_esc);
+	}
+	dsi->rst_dpi = __devm_reset_control_get(dsi->dev,
+						"dpi", 0, false, true, true);
+	if (IS_ERR(dsi->rst_dpi)) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to get dpi reset: %ld\n",
+			      PTR_ERR(dsi->rst_dpi));
+		return PTR_ERR(dsi->rst_dpi);
+	}
+
+	of_property_read_u32(np, "fsl,clock-drop-level", &dsi->clk_drop_lvl);
+
+	return 0;
+}
+
+static int imx8mq_dsi_pclk_reset(struct nwl_dsi *dsi, bool reset)
+{
+	int ret = 0;
+
+	if (dsi->rst_pclk) {
+		if (reset)
+			ret = reset_control_assert(dsi->rst_pclk);
+		else
+			ret = reset_control_deassert(dsi->rst_pclk);
+	}
+
+	return ret;
+
+}
+
+static int imx8mq_dsi_mipi_reset(struct nwl_dsi *dsi, bool reset)
+{
+	int ret = 0;
+
+	if (dsi->rst_esc) {
+		if (reset)
+			ret = reset_control_assert(dsi->rst_esc);
+		else
+			ret = reset_control_deassert(dsi->rst_esc);
+	}
+
+	if (dsi->rst_byte) {
+		if (reset)
+			ret = reset_control_assert(dsi->rst_byte);
+		else
+			ret = reset_control_deassert(dsi->rst_byte);
+	}
+
+	return ret;
+
+}
+
+static int imx8mq_dsi_dpi_reset(struct nwl_dsi *dsi, bool reset)
+{
+	int ret = 0;
+
+	if (dsi->rst_dpi) {
+		if (reset)
+			ret = reset_control_assert(dsi->rst_dpi);
+		else
+			ret = reset_control_deassert(dsi->rst_dpi);
+	}
+
+	return ret;
+
+}
+
+static int imx8mq_dsi_select_input(struct nwl_dsi *dsi)
+{
+	struct device_node *remote;
+	u32 use_dcss = 1;
+	int ret;
+
+	remote = of_graph_get_remote_node(dsi->dev->of_node, 0, 0);
+	if (remote && strcmp(remote->name, "lcdif") == 0)
+		use_dcss = 0;
+
+	DRM_DEV_INFO(dsi->dev, "Using %s as input source\n",
+		     (use_dcss) ? "DCSS" : "LCDIF");
+
+	ret = mux_control_try_select(dsi->mux, use_dcss);
+	if (ret < 0)
+		DRM_DEV_ERROR(dsi->dev, "Failed to select input: %d\n", ret);
+
+	of_node_put(remote);
+
+	dsi->use_dcss = use_dcss;
+
+	return ret;
+}
+
+static int imx8mq_dsi_deselect_input(struct nwl_dsi *dsi)
+{
+	int ret;
+
+	ret = mux_control_deselect(dsi->mux);
+	if (ret < 0)
+		DRM_DEV_ERROR(dsi->dev, "Failed to deselect input: %d\n", ret);
+
+	return ret;
+}
+
+static int imx8q_dsi_pclk_reset(struct nwl_dsi *dsi, bool reset)
+{
+	struct imx_sc_ipc *handle;
+	u32 mipi_id, dc_id;
+	u8 ctrl;
+	bool shared_phy = dsi->pdata->shared_phy;
+	int ret = 0;
+
+	ret = imx_scu_get_handle(&handle);
+	if (ret) {
+		DRM_DEV_ERROR(dsi->dev,
+			      "Failed to get scu ipc handle (%d)\n", ret);
+		return ret;
+	}
+
+	mipi_id = (dsi->instance)?MIPI_ID(1):MIPI_ID(0);
+	dc_id = (!shared_phy && dsi->instance)?DC_ID(1):DC_ID(0);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev,
+			     "Power %s PCLK MIPI:%u DC:%u\n",
+			     (reset)?"OFF":"ON", mipi_id, dc_id);
+
+	if (shared_phy) {
+		ret |= imx_sc_misc_set_control(handle,
+				mipi_id, IMX_SC_C_MODE, reset);
+		ret |= imx_sc_misc_set_control(handle,
+				mipi_id, IMX_SC_C_DUAL_MODE, reset);
+		ret |= imx_sc_misc_set_control(handle,
+				mipi_id, IMX_SC_C_PXL_LINK_SEL, reset);
+	}
+
+	/* Initialize Pixel Link */
+	ctrl = (shared_phy && dsi->instance)?PXL_ADDR(2):PXL_ADDR(1);
+	ret |= imx_sc_misc_set_control(handle, dc_id, ctrl, reset);
+
+	ctrl = (shared_phy && dsi->instance)?PXL_VLD(2):PXL_VLD(1);
+	ret |= imx_sc_misc_set_control(handle, dc_id, ctrl, !reset);
+
+	ctrl = (shared_phy && dsi->instance)?SYNC_CTRL(1):SYNC_CTRL(0);
+	ret |= imx_sc_misc_set_control(handle, dc_id, ctrl, !reset);
+
+	return ret;
+}
+
+static int imx8q_dsi_mipi_reset(struct nwl_dsi *dsi, bool reset)
+{
+	struct imx_sc_ipc *handle;
+	u32 mipi_id;
+	int ret = 0;
+
+	ret = imx_scu_get_handle(&handle);
+	if (ret) {
+		DRM_DEV_ERROR(dsi->dev,
+			      "Failed to get scu ipc handle (%d)\n", ret);
+		return ret;
+	}
+
+	mipi_id = (dsi->instance)?MIPI_ID(1):MIPI_ID(0);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev,
+			     "Power %s HOST MIPI:%u\n",
+			     (reset)?"OFF":"ON", mipi_id);
+
+	ret |= imx_sc_misc_set_control(handle, mipi_id,
+				       IMX_SC_C_PHY_RESET, !reset);
+	ret |= imx_sc_misc_set_control(handle, mipi_id,
+				       IMX_SC_C_MIPI_RESET, !reset);
+
+	return ret;
+}
+
+static int imx8q_dsi_dpi_reset(struct nwl_dsi *dsi, bool reset)
+{
+	struct imx_sc_ipc *handle;
+	u32 mipi_id;
+	int ret = 0;
+
+	ret = imx_scu_get_handle(&handle);
+	if (ret) {
+		DRM_DEV_ERROR(dsi->dev,
+			      "Failed to get scu ipc handle (%d)\n", ret);
+		return ret;
+	}
+
+	mipi_id = (dsi->instance)?MIPI_ID(1):MIPI_ID(0);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev,
+			     "Power %s DPI MIPI:%u\n",
+			     (reset)?"OFF":"ON", mipi_id);
+
+	regmap_write(dsi->csr, dsi->pdata->reg_tx_ulps, 0);
+	regmap_write(dsi->csr, dsi->pdata->reg_pxl2dpi, NWL_DSI_DPI_24_BIT);
+
+	ret |= imx_sc_misc_set_control(handle, mipi_id,
+				       IMX_SC_C_DPI_RESET, !reset);
+
+	return ret;
+}
+
+static const struct drm_bridge_timings nwl_dsi_timings = {
+	.input_bus_flags = DRM_BUS_FLAG_DE_LOW,
+};
+
+static const struct nwl_dsi_platform_data imx8mq_dev = {
+	.pclk_reset = &imx8mq_dsi_pclk_reset,
+	.mipi_reset = &imx8mq_dsi_mipi_reset,
+	.dpi_reset = &imx8mq_dsi_dpi_reset,
+	.select_input = &imx8mq_dsi_select_input,
+	.deselect_input = &imx8mq_dsi_deselect_input,
+	.clk_config = {
+		{ .id = NWL_DSI_CLK_CORE, .present = true },
+	},
+	.mux_present = true,
+};
+
+static const struct nwl_dsi_platform_data imx8qm_dev = {
+	.pclk_reset = &imx8q_dsi_pclk_reset,
+	.mipi_reset = &imx8q_dsi_mipi_reset,
+	.dpi_reset = &imx8q_dsi_dpi_reset,
+	.clk_config = {
+		{ .id = NWL_DSI_CLK_BYPASS, .present = true },
+		{ .id = NWL_DSI_CLK_PIXEL, .present = true },
+	},
+	.reg_tx_ulps = 0x00,
+	.reg_pxl2dpi = 0x04,
+	.max_instances = 2,
+	.tx_clk_rate = 18000000,
+	.rx_clk_rate = 72000000,
+	.shared_phy = false,
+};
+
+static const struct nwl_dsi_platform_data imx8qx_dev = {
+	.pclk_reset = &imx8q_dsi_pclk_reset,
+	.mipi_reset = &imx8q_dsi_mipi_reset,
+	.dpi_reset = &imx8q_dsi_dpi_reset,
+	.clk_config = {
+		{ .id = NWL_DSI_CLK_BYPASS, .present = true },
+		{ .id = NWL_DSI_CLK_PIXEL, .present = true },
+	},
+	.reg_tx_ulps = 0x30,
+	.reg_pxl2dpi = 0x40,
+	.max_instances = 2,
+	.tx_clk_rate = 18000000,
+	.rx_clk_rate = 72000000,
+	.shared_phy = true,
+};
+
+static const struct of_device_id nwl_dsi_dt_ids[] = {
+	{ .compatible = "fsl,imx8mq-nwl-dsi", .data = &imx8mq_dev, },
+	{ .compatible = "fsl,imx8qm-nwl-dsi", .data = &imx8qm_dev, },
+	{ .compatible = "fsl,imx8qx-nwl-dsi", .data = &imx8qx_dev, },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, nwl_dsi_dt_ids);
+
+static const struct soc_device_attribute nwl_dsi_quirks_match[] = {
+	{ .soc_id = "i.MX8MQ", .revision = "2.0",
+	  .data = (void *)(E11418_HS_MODE_QUIRK | SRC_RESET_QUIRK) },
+	{ /* sentinel. */ },
+};
+
+static int nwl_dsi_encoder_atomic_check(struct drm_encoder *encoder,
+					struct drm_crtc_state *crtc_state,
+					struct drm_connector_state *conn_state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+
+	imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB101010_1X30;
+
+	return 0;
+}
+
+static const struct drm_encoder_helper_funcs nwl_dsi_encoder_helper_funcs = {
+	.atomic_check = nwl_dsi_encoder_atomic_check,
+};
+
+static int nwl_dsi_bind(struct device *dev,
+			struct device *master,
+			void *data)
+{
+	struct drm_device *drm = data;
+	uint32_t crtc_mask;
+	struct nwl_dsi *dsi = dev_get_drvdata(dev);
+	int ret = 0;
+
+	crtc_mask = drm_of_find_possible_crtcs(drm, dev->of_node);
+	/*
+	 * If we failed to find the CRTC(s) which this encoder is
+	 * supposed to be connected to, it's because the CRTC has
+	 * not been registered yet.  Defer probing, and hope that
+	 * the required CRTC is added later.
+	 */
+	if (crtc_mask == 0)
+		return -EPROBE_DEFER;
+
+	DRM_DEV_DEBUG_DRIVER(dev, "id = %s\n", (dsi->instance)?"DSI1":"DSI0");
+
+	dsi->encoder.possible_crtcs = crtc_mask;
+	dsi->encoder.possible_clones = ~0;
+
+	drm_encoder_helper_add(&dsi->encoder,
+			       &nwl_dsi_encoder_helper_funcs);
+	ret = drm_encoder_init(drm,
+			       &dsi->encoder,
+			       &nwl_dsi_encoder_funcs,
+			       DRM_MODE_ENCODER_DSI,
+			       NULL);
+	if (ret) {
+		DRM_DEV_ERROR(dev, "failed to init DSI encoder (%d)\n", ret);
+		return ret;
+	}
+
+	ret = drm_bridge_attach(&dsi->encoder, &dsi->bridge, NULL);
+	if (ret)
+		drm_encoder_cleanup(&dsi->encoder);
+
+	/*
+	 *  -ENODEV is returned when there is no node connected to us. Since
+	 *  it might be disabled because the device is not actually connected,
+	 *  just cleanup and return 0.
+	 */
+	if (ret == -ENODEV)
+		return 0;
+
+	return ret;
+}
+
+static void nwl_dsi_unbind(struct device *dev,
+			   struct device *master,
+			   void *data)
+{
+	struct nwl_dsi *dsi = dev_get_drvdata(dev);
+
+	DRM_DEV_DEBUG_DRIVER(dev, "id = %s\n", (dsi->instance)?"DSI1":"DSI0");
+
+	if (dsi->encoder.dev)
+		drm_encoder_cleanup(&dsi->encoder);
+}
+
+static const struct component_ops nwl_dsi_component_ops = {
+	.bind	= nwl_dsi_bind,
+	.unbind	= nwl_dsi_unbind,
+};
+
+static int nwl_dsi_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	const struct of_device_id *of_id = of_match_device(nwl_dsi_dt_ids, dev);
+	const struct soc_device_attribute *attr;
+	struct nwl_dsi *dsi;
+	int ret;
+
+	if (!of_id || !of_id->data)
+		return -ENODEV;
+
+	dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL);
+	if (!dsi)
+		return -ENOMEM;
+
+	dsi->dev = dev;
+	dsi->pdata = of_id->data;
+
+	attr = soc_device_match(nwl_dsi_quirks_match);
+	if (attr)
+		dsi->quirks = (uintptr_t)attr->data;
+
+	ret = nwl_dsi_parse_dt(dsi);
+	if (ret)
+		return ret;
+
+	ret = devm_request_irq(dev, dsi->irq, nwl_dsi_irq_handler, 0,
+			       dev_name(dev), dsi);
+	if (ret < 0) {
+		if (ret != -EPROBE_DEFER)
+			DRM_DEV_ERROR(dev, "Failed to request IRQ %d: %d\n",
+				      dsi->irq, ret);
+		return ret;
+	}
+
+	dsi->dsi_host.ops = &nwl_dsi_host_ops;
+	dsi->dsi_host.dev = dev;
+	ret = mipi_dsi_host_register(&dsi->dsi_host);
+	if (ret) {
+		DRM_DEV_ERROR(dev, "Failed to register MIPI host: %d\n", ret);
+		return ret;
+	}
+
+	dsi->bridge.driver_private = dsi;
+	dsi->bridge.funcs = &nwl_dsi_bridge_funcs;
+	dsi->bridge.of_node = dev->of_node;
+	dsi->bridge.timings = &nwl_dsi_timings;
+
+	if (dsi->pdata->select_input)
+		dsi->pdata->select_input(dsi);
+
+	drm_bridge_add(&dsi->bridge);
+
+	INIT_LIST_HEAD(&dsi->valid_modes);
+
+	dev_set_drvdata(dev, dsi);
+	pm_runtime_enable(dev);
+
+	if (of_property_read_bool(dev->of_node, "use-disp-ss"))
+		ret = component_add(&pdev->dev, &nwl_dsi_component_ops);
+
+	if (ret) {
+		pm_runtime_disable(dev);
+		drm_bridge_remove(&dsi->bridge);
+		mipi_dsi_host_unregister(&dsi->dsi_host);
+		return ret;
+	}
+
+	return ret;
+}
+
+static int nwl_dsi_remove(struct platform_device *pdev)
+{
+	struct nwl_dsi *dsi = platform_get_drvdata(pdev);
+	struct mode_config *config;
+	struct list_head *pos, *tmp;
+
+	list_for_each_safe(pos, tmp, &dsi->valid_modes) {
+		config = list_entry(pos, struct mode_config, list);
+		list_del(pos);
+		devm_kfree(dsi->dev, config);
+	}
+
+	pm_runtime_disable(&pdev->dev);
+	drm_bridge_remove(&dsi->bridge);
+	mipi_dsi_host_unregister(&dsi->dsi_host);
+
+	return 0;
+}
+
+static struct platform_driver nwl_dsi_driver = {
+	.probe		= nwl_dsi_probe,
+	.remove		= nwl_dsi_remove,
+	.driver		= {
+		.of_match_table = nwl_dsi_dt_ids,
+		.name	= DRV_NAME,
+	},
+};
+
+module_platform_driver(nwl_dsi_driver);
+
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_AUTHOR("Purism SPC");
+MODULE_DESCRIPTION("Northwest Logic MIPI-DSI driver");
+MODULE_LICENSE("GPL"); /* GPLv2 or later */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nwl-dsi/nwl-drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nwl-dsi/nwl-drv.h
@@ -0,0 +1,97 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * NWL MIPI DSI host driver
+ *
+ * Copyright (C) 2017 NXP
+ * Copyright (C) 2019 Purism SPC
+ */
+
+#ifndef __NWL_DRV_H__
+#define __NWL_DRV_H__
+
+#include <linux/mux/consumer.h>
+#include <linux/phy/phy.h>
+
+#include <drm/drm_bridge.h>
+#include <drm/drm_mipi_dsi.h>
+
+struct nwl_dsi_platform_data;
+
+/* i.MX8 NWL quirks */
+/* i.MX8MQ errata E11418 */
+#define E11418_HS_MODE_QUIRK	    BIT(0)
+/* Skip DSI bits in SRC on disable to avoid blank display on enable */
+#define SRC_RESET_QUIRK		    BIT(1)
+
+/* * DPI color coding */
+#define NWL_DSI_DPI_16_BIT_565_PACKED	0
+#define NWL_DSI_DPI_16_BIT_565_ALIGNED	1
+#define NWL_DSI_DPI_16_BIT_565_SHIFTED	2
+#define NWL_DSI_DPI_18_BIT_PACKED	3
+#define NWL_DSI_DPI_18_BIT_ALIGNED	4
+#define NWL_DSI_DPI_24_BIT		5
+
+
+#define NWL_DSI_MAX_PLATFORM_CLOCKS 2
+struct nwl_dsi_plat_clk_config {
+	const char *id;
+	struct clk *clk;
+	bool present;
+};
+
+struct mode_config {
+	int				clock;
+	int				crtc_clock;
+	unsigned int			lanes;
+	unsigned long			bitclock;
+	unsigned long			phy_rates[3];
+	unsigned long			pll_rates[3];
+	int				phy_rate_idx;
+	struct list_head		list;
+};
+
+struct nwl_dsi {
+	struct drm_encoder encoder;
+	struct drm_bridge bridge;
+	struct mipi_dsi_host dsi_host;
+	struct drm_bridge *panel_bridge;
+	struct device *dev;
+	struct phy *phy;
+	union phy_configure_opts phy_cfg;
+	unsigned int quirks;
+	unsigned int instance;
+
+	struct regmap *regmap;
+	struct regmap *csr;
+	int irq;
+	struct reset_control *rst_byte;
+	struct reset_control *rst_esc;
+	struct reset_control *rst_dpi;
+	struct reset_control *rst_pclk;
+	struct mux_control *mux;
+
+	/* DSI clocks */
+	struct clk *phy_ref_clk;
+	struct clk *rx_esc_clk;
+	struct clk *tx_esc_clk;
+	struct clk *pll_clk;
+	struct clk *lcdif_clk;
+	/* Platform dependent clocks */
+	struct nwl_dsi_plat_clk_config clk_config[NWL_DSI_MAX_PLATFORM_CLOCKS];
+
+	struct list_head valid_modes;
+	/* dsi lanes */
+	u32 lanes;
+	u32 clk_drop_lvl;
+	enum mipi_dsi_pixel_format format;
+	struct drm_display_mode mode;
+	unsigned long dsi_mode_flags;
+
+	struct nwl_dsi_transfer *xfer;
+
+	const struct nwl_dsi_platform_data *pdata;
+
+	bool use_dcss;
+};
+
+#endif /* __NWL_DRV_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nwl-dsi/nwl-dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nwl-dsi/nwl-dsi.c
@@ -0,0 +1,684 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * NWL MIPI DSI host driver
+ *
+ * Copyright (C) 2017 NXP
+ * Copyright (C) 2019 Purism SPC
+ */
+
+#include <linux/bitfield.h>
+#include <linux/clk.h>
+#include <linux/irq.h>
+#include <linux/regmap.h>
+#include <linux/time64.h>
+
+#include <video/mipi_display.h>
+#include <video/videomode.h>
+
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc_helper.h>
+#include <drm/drm_of.h>
+#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+
+#include "nwl-drv.h"
+#include "nwl-dsi.h"
+
+#define NWL_DSI_MIPI_FIFO_TIMEOUT msecs_to_jiffies(500)
+
+/*
+ * PKT_CONTROL format:
+ * [15: 0] - word count
+ * [17:16] - virtual channel
+ * [23:18] - data type
+ * [24]	   - LP or HS select (0 - LP, 1 - HS)
+ * [25]	   - perform BTA after packet is sent
+ * [26]	   - perform BTA only, no packet tx
+ */
+#define NWL_DSI_WC(x)		FIELD_PREP(GENMASK(15, 0), (x))
+#define NWL_DSI_TX_VC(x)	FIELD_PREP(GENMASK(17, 16), (x))
+#define NWL_DSI_TX_DT(x)	FIELD_PREP(GENMASK(23, 18), (x))
+#define NWL_DSI_HS_SEL(x)	FIELD_PREP(GENMASK(24, 24), (x))
+#define NWL_DSI_BTA_TX(x)	FIELD_PREP(GENMASK(25, 25), (x))
+#define NWL_DSI_BTA_NO_TX(x)	FIELD_PREP(GENMASK(26, 26), (x))
+
+/*
+ * RX_PKT_HEADER format:
+ * [15: 0] - word count
+ * [21:16] - data type
+ * [23:22] - virtual channel
+ */
+#define NWL_DSI_RX_DT(x)	FIELD_GET(GENMASK(21, 16), (x))
+#define NWL_DSI_RX_VC(x)	FIELD_GET(GENMASK(23, 22), (x))
+
+/* DSI Video mode */
+#define NWL_DSI_VM_BURST_MODE_WITH_SYNC_PULSES		0
+#define NWL_DSI_VM_NON_BURST_MODE_WITH_SYNC_EVENTS	BIT(0)
+#define NWL_DSI_VM_BURST_MODE				BIT(1)
+
+/* * DPI color coding */
+#define NWL_DSI_DPI_16_BIT_565_PACKED	0
+#define NWL_DSI_DPI_16_BIT_565_ALIGNED	1
+#define NWL_DSI_DPI_16_BIT_565_SHIFTED	2
+#define NWL_DSI_DPI_18_BIT_PACKED	3
+#define NWL_DSI_DPI_18_BIT_ALIGNED	4
+#define NWL_DSI_DPI_24_BIT		5
+
+/* * DPI Pixel format */
+#define NWL_DSI_PIXEL_FORMAT_16  0
+#define NWL_DSI_PIXEL_FORMAT_18  BIT(0)
+#define NWL_DSI_PIXEL_FORMAT_18L BIT(1)
+#define NWL_DSI_PIXEL_FORMAT_24  (BIT(0) | BIT(1))
+
+enum transfer_direction {
+	DSI_PACKET_SEND,
+	DSI_PACKET_RECEIVE,
+};
+
+struct nwl_dsi_transfer {
+	const struct mipi_dsi_msg *msg;
+	struct mipi_dsi_packet packet;
+	struct completion completed;
+
+	int status; /* status of transmission */
+	enum transfer_direction direction;
+	bool need_bta;
+	u8 cmd;
+	u16 rx_word_count;
+	size_t tx_len; /* in bytes */
+	size_t rx_len; /* in bytes */
+};
+
+static int nwl_dsi_write(struct nwl_dsi *dsi, unsigned int reg, u32 val)
+{
+	int ret;
+
+	ret = regmap_write(dsi->regmap, reg, val);
+	if (ret < 0)
+		DRM_DEV_ERROR(dsi->dev,
+			      "Failed to write NWL DSI reg 0x%x: %d\n", reg,
+			      ret);
+	return ret;
+}
+
+static u32 nwl_dsi_read(struct nwl_dsi *dsi, u32 reg)
+{
+	unsigned int val;
+	int ret;
+
+	ret = regmap_read(dsi->regmap, reg, &val);
+	if (ret < 0)
+		DRM_DEV_ERROR(dsi->dev, "Failed to read NWL DSI reg 0x%x: %d\n",
+			      reg, ret);
+
+	return val;
+}
+
+static u32 nwl_dsi_get_dpi_pixel_format(enum mipi_dsi_pixel_format format)
+{
+	switch (format) {
+	case MIPI_DSI_FMT_RGB565:
+		return NWL_DSI_PIXEL_FORMAT_16;
+	case MIPI_DSI_FMT_RGB666:
+		return NWL_DSI_PIXEL_FORMAT_18L;
+	case MIPI_DSI_FMT_RGB666_PACKED:
+		return NWL_DSI_PIXEL_FORMAT_18;
+	case MIPI_DSI_FMT_RGB888:
+		return NWL_DSI_PIXEL_FORMAT_24;
+	default:
+		return -EINVAL;
+	}
+}
+
+#define PSEC_PER_SEC 1000000000000LL
+/*
+ * ps2bc - Picoseconds to byte clock cycles
+ */
+static u32 ps2bc(struct nwl_dsi *dsi, unsigned long long ps)
+{
+	int bpp = mipi_dsi_pixel_format_to_bpp(dsi->format);
+
+	return DIV_ROUND_UP(ps * dsi->mode.clock * 1000 * bpp,
+			    dsi->lanes * 8 * PSEC_PER_SEC);
+}
+
+/*
+ * ui2bc - UI time periods to byte clock cycles
+ */
+static u32 ui2bc(struct nwl_dsi *dsi, unsigned long long ui)
+{
+	int bpp = mipi_dsi_pixel_format_to_bpp(dsi->format);
+
+	return DIV_ROUND_UP(ui * dsi->lanes, dsi->mode.clock * 1000 * bpp);
+}
+
+/*
+ * us2bc - micro seconds to lp clock cycles
+ */
+static u32 us2lp(u32 lp_clk_rate, unsigned long us)
+{
+	return DIV_ROUND_UP(us * lp_clk_rate, USEC_PER_SEC);
+}
+
+static int nwl_dsi_config_host(struct nwl_dsi *dsi)
+{
+	u32 cycles;
+	struct phy_configure_opts_mipi_dphy *cfg = &dsi->phy_cfg.mipi_dphy;
+
+	if (dsi->lanes < 1 || dsi->lanes > 4)
+		return -EINVAL;
+
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "DSI Lanes %d\n", dsi->lanes);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_NUM_LANES, dsi->lanes - 1);
+
+	if (dsi->dsi_mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
+		nwl_dsi_write(dsi, NWL_DSI_CFG_NONCONTINUOUS_CLK, 0x01);
+		nwl_dsi_write(dsi, NWL_DSI_CFG_AUTOINSERT_EOTP, 0x01);
+	} else {
+		nwl_dsi_write(dsi, NWL_DSI_CFG_NONCONTINUOUS_CLK, 0x00);
+		nwl_dsi_write(dsi, NWL_DSI_CFG_AUTOINSERT_EOTP, 0x00);
+	}
+
+	/* values in byte clock cycles */
+	cycles = ui2bc(dsi, cfg->clk_pre);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_t_pre: 0x%x\n", cycles);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_T_PRE, cycles);
+	cycles = ps2bc(dsi, cfg->lpx + cfg->clk_prepare + cfg->clk_zero);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_tx_gap (pre): 0x%x\n", cycles);
+	cycles += ui2bc(dsi, cfg->clk_pre);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_tx_gap: 0x%x\n", cycles);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_T_POST, cycles);
+	cycles = ps2bc(dsi, cfg->hs_exit);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_tx_gap: 0x%x\n", cycles);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_TX_GAP, cycles);
+
+	nwl_dsi_write(dsi, NWL_DSI_CFG_EXTRA_CMDS_AFTER_EOTP, 0x01);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_HTX_TO_COUNT, 0x00);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_LRX_H_TO_COUNT, 0x00);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_BTA_H_TO_COUNT, 0x00);
+	/* In LP clock cycles */
+	cycles = us2lp(cfg->lp_clk_rate, cfg->wakeup);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "cfg_twakeup: 0x%x\n", cycles);
+	nwl_dsi_write(dsi, NWL_DSI_CFG_TWAKEUP, cycles);
+
+	return 0;
+}
+
+static int nwl_dsi_config_dpi(struct nwl_dsi *dsi)
+{
+	u32 color_format, mode;
+	bool burst_mode;
+	int hfront_porch, hback_porch, vfront_porch, vback_porch;
+	int hsync_len, vsync_len;
+
+	hfront_porch = dsi->mode.hsync_start - dsi->mode.hdisplay;
+	hsync_len = dsi->mode.hsync_end - dsi->mode.hsync_start;
+	hback_porch = dsi->mode.htotal - dsi->mode.hsync_end;
+
+	vfront_porch = dsi->mode.vsync_start - dsi->mode.vdisplay;
+	vsync_len = dsi->mode.vsync_end - dsi->mode.vsync_start;
+	vback_porch = dsi->mode.vtotal - dsi->mode.vsync_end;
+
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "hfront_porch = %d\n", hfront_porch);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "hback_porch = %d\n", hback_porch);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "hsync_len = %d\n", hsync_len);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "hdisplay = %d\n", dsi->mode.hdisplay);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "vfront_porch = %d\n", vfront_porch);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "vback_porch = %d\n", vback_porch);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "vsync_len = %d\n", vsync_len);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "vactive = %d\n", dsi->mode.vdisplay);
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "clock = %d kHz\n", dsi->mode.clock);
+
+	color_format = nwl_dsi_get_dpi_pixel_format(dsi->format);
+	if (color_format < 0) {
+		DRM_DEV_ERROR(dsi->dev, "Invalid color format 0x%x\n",
+			      dsi->format);
+		return color_format;
+	}
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "pixel fmt = %d\n", dsi->format);
+
+	nwl_dsi_write(dsi, NWL_DSI_INTERFACE_COLOR_CODING, NWL_DSI_DPI_24_BIT);
+	nwl_dsi_write(dsi, NWL_DSI_PIXEL_FORMAT, color_format);
+	/*
+	 * Adjusting input polarity based on the video mode results in
+	 * a black screen so always pick active low:
+	 */
+	nwl_dsi_write(dsi, NWL_DSI_VSYNC_POLARITY,
+		      NWL_DSI_VSYNC_POLARITY_ACTIVE_LOW);
+	nwl_dsi_write(dsi, NWL_DSI_HSYNC_POLARITY,
+		      NWL_DSI_HSYNC_POLARITY_ACTIVE_LOW);
+
+	burst_mode = (dsi->dsi_mode_flags & MIPI_DSI_MODE_VIDEO_BURST) &&
+		     !(dsi->dsi_mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE);
+
+	if (burst_mode) {
+		nwl_dsi_write(dsi, NWL_DSI_VIDEO_MODE, NWL_DSI_VM_BURST_MODE);
+		nwl_dsi_write(dsi, NWL_DSI_PIXEL_FIFO_SEND_LEVEL, 256);
+	} else {
+		mode = ((dsi->dsi_mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) ?
+				NWL_DSI_VM_BURST_MODE_WITH_SYNC_PULSES :
+				NWL_DSI_VM_NON_BURST_MODE_WITH_SYNC_EVENTS);
+		nwl_dsi_write(dsi, NWL_DSI_VIDEO_MODE, mode);
+		nwl_dsi_write(dsi, NWL_DSI_PIXEL_FIFO_SEND_LEVEL,
+			      dsi->mode.hdisplay);
+	}
+
+	nwl_dsi_write(dsi, NWL_DSI_HFP, hfront_porch);
+	nwl_dsi_write(dsi, NWL_DSI_HBP, hback_porch);
+	nwl_dsi_write(dsi, NWL_DSI_HSA, hsync_len);
+
+	nwl_dsi_write(dsi, NWL_DSI_ENABLE_MULT_PKTS, 0x0);
+	nwl_dsi_write(dsi, NWL_DSI_BLLP_MODE, 0x1);
+	nwl_dsi_write(dsi, NWL_DSI_ENABLE_MULT_PKTS, 0x0);
+	nwl_dsi_write(dsi, NWL_DSI_USE_NULL_PKT_BLLP, 0x0);
+	nwl_dsi_write(dsi, NWL_DSI_VC, 0x0);
+
+	nwl_dsi_write(dsi, NWL_DSI_PIXEL_PAYLOAD_SIZE, dsi->mode.hdisplay);
+	nwl_dsi_write(dsi, NWL_DSI_VACTIVE, dsi->mode.vdisplay - 1);
+	nwl_dsi_write(dsi, NWL_DSI_VBP, vback_porch);
+	nwl_dsi_write(dsi, NWL_DSI_VFP, vfront_porch);
+
+	return 0;
+}
+
+static void nwl_dsi_init_interrupts(struct nwl_dsi *dsi)
+{
+	u32 irq_enable;
+
+	nwl_dsi_write(dsi, NWL_DSI_IRQ_MASK, 0xffffffff);
+	nwl_dsi_write(dsi, NWL_DSI_IRQ_MASK2, 0x7);
+
+	irq_enable = ~(u32)(NWL_DSI_TX_PKT_DONE_MASK |
+			    NWL_DSI_RX_PKT_HDR_RCVD_MASK |
+			    NWL_DSI_TX_FIFO_OVFLW_MASK |
+			    NWL_DSI_HS_TX_TIMEOUT_MASK);
+
+	nwl_dsi_write(dsi, NWL_DSI_IRQ_MASK, irq_enable);
+}
+
+static int nwl_dsi_host_attach(struct mipi_dsi_host *dsi_host,
+			       struct mipi_dsi_device *device)
+{
+	struct nwl_dsi *dsi = container_of(dsi_host, struct nwl_dsi, dsi_host);
+	struct device *dev = dsi->dev;
+
+	DRM_DEV_INFO(dev, "lanes=%u, format=0x%x flags=0x%lx\n", device->lanes,
+		     device->format, device->mode_flags);
+
+	if (device->lanes < 1 || device->lanes > 4)
+		return -EINVAL;
+
+	dsi->lanes = device->lanes;
+	dsi->format = device->format;
+	dsi->dsi_mode_flags = device->mode_flags;
+
+	return 0;
+}
+
+static int nwl_dsi_host_detach(struct mipi_dsi_host *dsi_host,
+			       struct mipi_dsi_device *device)
+{
+	struct nwl_dsi *dsi = container_of(dsi_host, struct nwl_dsi, dsi_host);
+
+	dsi->lanes = 0;
+	dsi->format = 0;
+	dsi->dsi_mode_flags = 0;
+
+	return 0;
+}
+
+static bool nwl_dsi_read_packet(struct nwl_dsi *dsi, u32 status)
+{
+	struct device *dev = dsi->dev;
+	struct nwl_dsi_transfer *xfer = dsi->xfer;
+	u8 *payload = xfer->msg->rx_buf;
+	u32 val;
+	u16 word_count;
+	u8 channel;
+	u8 data_type;
+
+	xfer->status = 0;
+
+	if (xfer->rx_word_count == 0) {
+		if (!(status & NWL_DSI_RX_PKT_HDR_RCVD))
+			return false;
+		/* Get the RX header and parse it */
+		val = nwl_dsi_read(dsi, NWL_DSI_RX_PKT_HEADER);
+		word_count = NWL_DSI_WC(val);
+		channel = NWL_DSI_RX_VC(val);
+		data_type = NWL_DSI_RX_DT(val);
+
+		if (channel != xfer->msg->channel) {
+			DRM_DEV_ERROR(dev,
+				      "[%02X] Channel mismatch (%u != %u)\n",
+				      xfer->cmd, channel, xfer->msg->channel);
+			return true;
+		}
+
+		switch (data_type) {
+		case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE:
+			/* Fall through */
+		case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE:
+			if (xfer->msg->rx_len > 1) {
+				/* read second byte */
+				payload[1] = word_count >> 8;
+				++xfer->rx_len;
+			}
+			/* Fall through */
+		case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE:
+			/* Fall through */
+		case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE:
+			if (xfer->msg->rx_len > 0) {
+				/* read first byte */
+				payload[0] = word_count & 0xff;
+				++xfer->rx_len;
+			}
+			xfer->status = xfer->rx_len;
+			return true;
+		case MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT:
+			word_count &= 0xff;
+			DRM_DEV_ERROR(dev, "[%02X] DSI error report: 0x%02x\n",
+				      xfer->cmd, word_count);
+			xfer->status = -EPROTO;
+			return true;
+		}
+
+		if (word_count > xfer->msg->rx_len) {
+			DRM_DEV_ERROR(
+				dev,
+				"[%02X] Receive buffer too small: %lu (< %u)\n",
+				xfer->cmd, xfer->msg->rx_len, word_count);
+			return true;
+		}
+
+		xfer->rx_word_count = word_count;
+	} else {
+		/* Set word_count from previous header read */
+		word_count = xfer->rx_word_count;
+	}
+
+	/* If RX payload is not yet received, wait for it */
+	if (!(status & NWL_DSI_RX_PKT_PAYLOAD_DATA_RCVD))
+		return false;
+
+	/* Read the RX payload */
+	while (word_count >= 4) {
+		val = nwl_dsi_read(dsi, NWL_DSI_RX_PAYLOAD);
+		payload[0] = (val >> 0) & 0xff;
+		payload[1] = (val >> 8) & 0xff;
+		payload[2] = (val >> 16) & 0xff;
+		payload[3] = (val >> 24) & 0xff;
+		payload += 4;
+		xfer->rx_len += 4;
+		word_count -= 4;
+	}
+
+	if (word_count > 0) {
+		val = nwl_dsi_read(dsi, NWL_DSI_RX_PAYLOAD);
+		switch (word_count) {
+		case 3:
+			payload[2] = (val >> 16) & 0xff;
+			++xfer->rx_len;
+			/* Fall through */
+		case 2:
+			payload[1] = (val >> 8) & 0xff;
+			++xfer->rx_len;
+			/* Fall through */
+		case 1:
+			payload[0] = (val >> 0) & 0xff;
+			++xfer->rx_len;
+			break;
+		}
+	}
+
+	xfer->status = xfer->rx_len;
+
+	return true;
+}
+
+static void nwl_dsi_finish_transmission(struct nwl_dsi *dsi, u32 status)
+{
+	struct nwl_dsi_transfer *xfer = dsi->xfer;
+	bool end_packet = false;
+
+	if (!xfer)
+		return;
+
+	if (status & NWL_DSI_TX_FIFO_OVFLW) {
+		DRM_DEV_ERROR_RATELIMITED(dsi->dev, "tx fifo overflow\n");
+		return;
+	}
+
+	if (status & NWL_DSI_HS_TX_TIMEOUT) {
+		DRM_DEV_ERROR_RATELIMITED(dsi->dev, "HS tx timeout\n");
+		return;
+	}
+
+	if (xfer->direction == DSI_PACKET_SEND &&
+	    status & NWL_DSI_TX_PKT_DONE) {
+		xfer->status = xfer->tx_len;
+		end_packet = true;
+	} else if (status & NWL_DSI_DPHY_DIRECTION &&
+		   ((status & (NWL_DSI_RX_PKT_HDR_RCVD |
+			       NWL_DSI_RX_PKT_PAYLOAD_DATA_RCVD)))) {
+		end_packet = nwl_dsi_read_packet(dsi, status);
+	}
+
+	if (end_packet)
+		complete(&xfer->completed);
+}
+
+static void nwl_dsi_begin_transmission(struct nwl_dsi *dsi)
+{
+	struct nwl_dsi_transfer *xfer = dsi->xfer;
+	struct mipi_dsi_packet *pkt = &xfer->packet;
+	const u8 *payload;
+	size_t length;
+	u16 word_count;
+	u8 hs_mode;
+	u32 val;
+	u32 hs_workaround = 0;
+
+	/* Send the payload, if any */
+	length = pkt->payload_length;
+	payload = pkt->payload;
+
+	while (length >= 4) {
+		val = *(u32 *)payload;
+		hs_workaround |= !(val & 0xFFFF00);
+		nwl_dsi_write(dsi, NWL_DSI_TX_PAYLOAD, val);
+		payload += 4;
+		length -= 4;
+	}
+	/* Send the rest of the payload */
+	val = 0;
+	switch (length) {
+	case 3:
+		val |= payload[2] << 16;
+		/* Fall through */
+	case 2:
+		val |= payload[1] << 8;
+		hs_workaround |= !(val & 0xFFFF00);
+		/* Fall through */
+	case 1:
+		val |= payload[0];
+		nwl_dsi_write(dsi, NWL_DSI_TX_PAYLOAD, val);
+		break;
+	}
+	xfer->tx_len = pkt->payload_length;
+
+	/*
+	 * Send the header
+	 * header[0] = Virtual Channel + Data Type
+	 * header[1] = Word Count LSB (LP) or first param (SP)
+	 * header[2] = Word Count MSB (LP) or second param (SP)
+	 */
+	word_count = pkt->header[1] | (pkt->header[2] << 8);
+	if (hs_workaround && (dsi->quirks & E11418_HS_MODE_QUIRK)) {
+		DRM_DEV_DEBUG_DRIVER(dsi->dev,
+				     "Using hs mode workaround for cmd 0x%x\n",
+				     xfer->cmd);
+		hs_mode = 1;
+	} else {
+		hs_mode = (xfer->msg->flags & MIPI_DSI_MSG_USE_LPM) ? 0 : 1;
+	}
+	val = NWL_DSI_WC(word_count) | NWL_DSI_TX_VC(xfer->msg->channel) |
+	      NWL_DSI_TX_DT(xfer->msg->type) | NWL_DSI_HS_SEL(hs_mode) |
+	      NWL_DSI_BTA_TX(xfer->need_bta);
+	nwl_dsi_write(dsi, NWL_DSI_PKT_CONTROL, val);
+
+	/* Send packet command */
+	nwl_dsi_write(dsi, NWL_DSI_SEND_PACKET, 0x1);
+}
+
+static ssize_t nwl_dsi_host_transfer(struct mipi_dsi_host *dsi_host,
+				     const struct mipi_dsi_msg *msg)
+{
+	struct nwl_dsi *dsi = container_of(dsi_host, struct nwl_dsi, dsi_host);
+	struct nwl_dsi_transfer xfer;
+	ssize_t ret = 0;
+
+	/* Create packet to be sent */
+	dsi->xfer = &xfer;
+	ret = mipi_dsi_create_packet(&xfer.packet, msg);
+	if (ret < 0) {
+		dsi->xfer = NULL;
+		return ret;
+	}
+
+	if ((msg->type & MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM ||
+	     msg->type & MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM ||
+	     msg->type & MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM ||
+	     msg->type & MIPI_DSI_DCS_READ) &&
+	    msg->rx_len > 0 && msg->rx_buf != NULL)
+		xfer.direction = DSI_PACKET_RECEIVE;
+	else
+		xfer.direction = DSI_PACKET_SEND;
+
+	xfer.need_bta = (xfer.direction == DSI_PACKET_RECEIVE);
+	xfer.need_bta |= (msg->flags & MIPI_DSI_MSG_REQ_ACK) ? 1 : 0;
+	xfer.msg = msg;
+	xfer.status = -ETIMEDOUT;
+	xfer.rx_word_count = 0;
+	xfer.rx_len = 0;
+	xfer.cmd = 0x00;
+	if (msg->tx_len > 0)
+		xfer.cmd = ((u8 *)(msg->tx_buf))[0];
+	init_completion(&xfer.completed);
+
+	ret = clk_prepare_enable(dsi->rx_esc_clk);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to enable rx_esc clk: %zd\n",
+			      ret);
+		return ret;
+	}
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "Enabled rx_esc clk @%lu Hz\n",
+			     clk_get_rate(dsi->rx_esc_clk));
+
+	/* Initiate the DSI packet transmision */
+	nwl_dsi_begin_transmission(dsi);
+
+	if (!wait_for_completion_timeout(&xfer.completed,
+					 NWL_DSI_MIPI_FIFO_TIMEOUT)) {
+		DRM_DEV_ERROR(dsi_host->dev, "[%02X] DSI transfer timed out\n",
+			      xfer.cmd);
+		ret = -ETIMEDOUT;
+	} else {
+		ret = xfer.status;
+	}
+
+	clk_disable_unprepare(dsi->rx_esc_clk);
+
+	return ret;
+}
+
+const struct mipi_dsi_host_ops nwl_dsi_host_ops = {
+	.attach = nwl_dsi_host_attach,
+	.detach = nwl_dsi_host_detach,
+	.transfer = nwl_dsi_host_transfer,
+};
+
+irqreturn_t nwl_dsi_irq_handler(int irq, void *data)
+{
+	u32 irq_status;
+	struct nwl_dsi *dsi = data;
+
+	irq_status = nwl_dsi_read(dsi, NWL_DSI_IRQ_STATUS);
+
+	if (irq_status & NWL_DSI_TX_PKT_DONE ||
+	    irq_status & NWL_DSI_RX_PKT_HDR_RCVD ||
+	    irq_status & NWL_DSI_RX_PKT_PAYLOAD_DATA_RCVD)
+		nwl_dsi_finish_transmission(dsi, irq_status);
+
+	return IRQ_HANDLED;
+}
+
+int nwl_dsi_enable(struct nwl_dsi *dsi)
+{
+	struct device *dev = dsi->dev;
+	union phy_configure_opts *phy_cfg = &dsi->phy_cfg;
+	int ret;
+
+	if (!dsi->lanes) {
+		DRM_DEV_ERROR(dev, "Need DSI lanes: %d\n", dsi->lanes);
+		return -EINVAL;
+	}
+
+	ret = phy_init(dsi->phy);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev, "Failed to init DSI phy: %d\n", ret);
+		return ret;
+	}
+
+	ret = phy_configure(dsi->phy, phy_cfg);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev, "Failed to configure DSI phy: %d\n", ret);
+		return ret;
+	}
+
+	ret = clk_prepare_enable(dsi->tx_esc_clk);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to enable tx_esc clk: %d\n",
+			      ret);
+		return ret;
+	}
+	DRM_DEV_DEBUG_DRIVER(dsi->dev, "Enabled tx_esc clk @%lu Hz\n",
+			     clk_get_rate(dsi->tx_esc_clk));
+
+	ret = nwl_dsi_config_host(dsi);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev, "Failed to set up DSI: %d", ret);
+		return ret;
+	}
+
+	ret = nwl_dsi_config_dpi(dsi);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev, "Failed to set up DPI: %d", ret);
+		return ret;
+	}
+
+	ret = phy_power_on(dsi->phy);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev, "Failed to power on DPHY (%d)\n", ret);
+		return ret;
+	}
+
+	nwl_dsi_init_interrupts(dsi);
+
+	return 0;
+}
+
+int nwl_dsi_disable(struct nwl_dsi *dsi)
+{
+	struct device *dev = dsi->dev;
+
+	DRM_DEV_DEBUG_DRIVER(dev, "Disabling clocks and phy\n");
+
+	phy_power_off(dsi->phy);
+	phy_exit(dsi->phy);
+
+	/* Disabling the clock before the phy breaks enabling dsi again */
+	clk_disable_unprepare(dsi->tx_esc_clk);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nwl-dsi/nwl-dsi.h
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nwl-dsi/nwl-dsi.h
@@ -0,0 +1,112 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * NWL MIPI DSI host driver
+ *
+ * Copyright (C) 2017 NXP
+ * Copyright (C) 2019 Purism SPC
+ */
+#ifndef __NWL_DSI_H__
+#define __NWL_DSI_H__
+
+#include <linux/irqreturn.h>
+
+#include <drm/drm_mipi_dsi.h>
+
+#include "nwl-drv.h"
+
+/* DSI HOST registers */
+#define NWL_DSI_CFG_NUM_LANES			0x0
+#define NWL_DSI_CFG_NONCONTINUOUS_CLK		0x4
+#define NWL_DSI_CFG_T_PRE			0x8
+#define NWL_DSI_CFG_T_POST			0xc
+#define NWL_DSI_CFG_TX_GAP			0x10
+#define NWL_DSI_CFG_AUTOINSERT_EOTP		0x14
+#define NWL_DSI_CFG_EXTRA_CMDS_AFTER_EOTP	0x18
+#define NWL_DSI_CFG_HTX_TO_COUNT		0x1c
+#define NWL_DSI_CFG_LRX_H_TO_COUNT		0x20
+#define NWL_DSI_CFG_BTA_H_TO_COUNT		0x24
+#define NWL_DSI_CFG_TWAKEUP			0x28
+#define NWL_DSI_CFG_STATUS_OUT			0x2c
+#define NWL_DSI_RX_ERROR_STATUS			0x30
+
+/* DSI DPI registers */
+#define NWL_DSI_PIXEL_PAYLOAD_SIZE		0x200
+#define NWL_DSI_PIXEL_FIFO_SEND_LEVEL		0x204
+#define NWL_DSI_INTERFACE_COLOR_CODING		0x208
+#define NWL_DSI_PIXEL_FORMAT			0x20c
+#define NWL_DSI_VSYNC_POLARITY			0x210
+#define NWL_DSI_VSYNC_POLARITY_ACTIVE_LOW	0
+#define NWL_DSI_VSYNC_POLARITY_ACTIVE_HIGH	BIT(1)
+
+#define NWL_DSI_HSYNC_POLARITY			0x214
+#define NWL_DSI_HSYNC_POLARITY_ACTIVE_LOW	0
+#define NWL_DSI_HSYNC_POLARITY_ACTIVE_HIGH	BIT(1)
+
+#define NWL_DSI_VIDEO_MODE			0x218
+#define NWL_DSI_HFP				0x21c
+#define NWL_DSI_HBP				0x220
+#define NWL_DSI_HSA				0x224
+#define NWL_DSI_ENABLE_MULT_PKTS		0x228
+#define NWL_DSI_VBP				0x22c
+#define NWL_DSI_VFP				0x230
+#define NWL_DSI_BLLP_MODE			0x234
+#define NWL_DSI_USE_NULL_PKT_BLLP		0x238
+#define NWL_DSI_VACTIVE				0x23c
+#define NWL_DSI_VC				0x240
+
+/* DSI APB PKT control */
+#define NWL_DSI_TX_PAYLOAD			0x280
+#define NWL_DSI_PKT_CONTROL			0x284
+#define NWL_DSI_SEND_PACKET			0x288
+#define NWL_DSI_PKT_STATUS			0x28c
+#define NWL_DSI_PKT_FIFO_WR_LEVEL		0x290
+#define NWL_DSI_PKT_FIFO_RD_LEVEL		0x294
+#define NWL_DSI_RX_PAYLOAD			0x298
+#define NWL_DSI_RX_PKT_HEADER			0x29c
+
+/* DSI IRQ handling */
+#define NWL_DSI_IRQ_STATUS			0x2a0
+#define NWL_DSI_SM_NOT_IDLE			BIT(0)
+#define NWL_DSI_TX_PKT_DONE			BIT(1)
+#define NWL_DSI_DPHY_DIRECTION			BIT(2)
+#define NWL_DSI_TX_FIFO_OVFLW			BIT(3)
+#define NWL_DSI_TX_FIFO_UDFLW			BIT(4)
+#define NWL_DSI_RX_FIFO_OVFLW			BIT(5)
+#define NWL_DSI_RX_FIFO_UDFLW			BIT(6)
+#define NWL_DSI_RX_PKT_HDR_RCVD			BIT(7)
+#define NWL_DSI_RX_PKT_PAYLOAD_DATA_RCVD	BIT(8)
+#define NWL_DSI_BTA_TIMEOUT			BIT(29)
+#define NWL_DSI_LP_RX_TIMEOUT			BIT(30)
+#define NWL_DSI_HS_TX_TIMEOUT			BIT(31)
+
+#define NWL_DSI_IRQ_STATUS2			0x2a4
+#define NWL_DSI_SINGLE_BIT_ECC_ERR		BIT(0)
+#define NWL_DSI_MULTI_BIT_ECC_ERR		BIT(1)
+#define NWL_DSI_CRC_ERR				BIT(2)
+
+#define NWL_DSI_IRQ_MASK			0x2a8
+#define NWL_DSI_SM_NOT_IDLE_MASK		BIT(0)
+#define NWL_DSI_TX_PKT_DONE_MASK		BIT(1)
+#define NWL_DSI_DPHY_DIRECTION_MASK		BIT(2)
+#define NWL_DSI_TX_FIFO_OVFLW_MASK		BIT(3)
+#define NWL_DSI_TX_FIFO_UDFLW_MASK		BIT(4)
+#define NWL_DSI_RX_FIFO_OVFLW_MASK		BIT(5)
+#define NWL_DSI_RX_FIFO_UDFLW_MASK		BIT(6)
+#define NWL_DSI_RX_PKT_HDR_RCVD_MASK		BIT(7)
+#define NWL_DSI_RX_PKT_PAYLOAD_DATA_RCVD_MASK	BIT(8)
+#define NWL_DSI_BTA_TIMEOUT_MASK		BIT(29)
+#define NWL_DSI_LP_RX_TIMEOUT_MASK		BIT(30)
+#define NWL_DSI_HS_TX_TIMEOUT_MASK		BIT(31)
+
+#define NWL_DSI_IRQ_MASK2			0x2ac
+#define NWL_DSI_SINGLE_BIT_ECC_ERR_MASK		BIT(0)
+#define NWL_DSI_MULTI_BIT_ECC_ERR_MASK		BIT(1)
+#define NWL_DSI_CRC_ERR_MASK			BIT(2)
+
+extern const struct mipi_dsi_host_ops nwl_dsi_host_ops;
+
+irqreturn_t nwl_dsi_irq_handler(int irq, void *data);
+int nwl_dsi_enable(struct nwl_dsi *dsi);
+int nwl_dsi_disable(struct nwl_dsi *dsi);
+
+#endif /* __NWL_DSI_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/nxp-seiko-43wvfig.c
@@ -0,0 +1,245 @@
+/*
+ * DRM driver for the legacy Freescale adapter card holding
+ * Seiko RA169Z20 43WVFIG LCD panel
+ *
+ * Copyright (C) 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc_helper.h>
+#include <drm/drm_of.h>
+#include <drm/drm_panel.h>
+#include <drm/drm_probe_helper.h>
+#include <linux/of.h>
+#include <linux/of_graph.h>
+#include <linux/of_platform.h>
+
+struct seiko_adapter {
+	struct device		*dev;
+	struct drm_panel	*panel;
+	struct drm_bridge	bridge;
+	struct drm_connector	connector;
+
+	u32			bpc;
+	u32			bus_format;
+};
+
+static enum drm_connector_status seiko_adapter_connector_detect(
+	struct drm_connector *connector, bool force)
+{
+	return connector_status_connected;
+}
+
+static int seiko_adapter_connector_get_modes(struct drm_connector *connector)
+{
+	int num_modes;
+
+	struct seiko_adapter *adap = container_of(connector,
+						struct seiko_adapter,
+						connector);
+
+	num_modes = drm_panel_get_modes(adap->panel);
+
+	/*
+	 * The panel will populate the connector display_info properties with
+	 * fixed numbers, but we need to change them according to our
+	 * configuration.
+	 */
+	connector->display_info.bpc = adap->bpc;
+	drm_display_info_set_bus_formats(&connector->display_info,
+						 &adap->bus_format, 1);
+
+	return num_modes;
+}
+
+static const struct drm_connector_funcs seiko_adapter_connector_funcs = {
+	.detect = seiko_adapter_connector_detect,
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.destroy = drm_connector_cleanup,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static const struct drm_connector_helper_funcs
+	seiko_adapter_connector_helper_funcs = {
+	.get_modes = seiko_adapter_connector_get_modes,
+};
+
+static int seiko_adapter_bridge_attach(struct drm_bridge *bridge)
+{
+	struct seiko_adapter *adap = bridge->driver_private;
+	struct device *dev = adap->dev;
+	struct drm_encoder *encoder = bridge->encoder;
+	struct drm_device *drm;
+	int ret = 0;
+
+	if (!encoder) {
+		DRM_DEV_ERROR(dev, "Parent encoder object not found\n");
+		return -ENODEV;
+	}
+
+	drm = encoder->dev;
+
+	/*
+	 * Create the connector for our panel
+	 */
+
+	ret = drm_connector_init(drm, &adap->connector,
+				 &seiko_adapter_connector_funcs,
+				 DRM_MODE_CONNECTOR_DPI);
+	if (ret) {
+		DRM_DEV_ERROR(dev, "Failed to init drm connector: %d\n", ret);
+		return ret;
+	}
+
+	drm_connector_helper_add(&adap->connector,
+				 &seiko_adapter_connector_helper_funcs);
+
+	adap->connector.dpms = DRM_MODE_DPMS_OFF;
+	drm_connector_attach_encoder(&adap->connector, encoder);
+
+	ret = drm_panel_attach(adap->panel, &adap->connector);
+	if (ret) {
+		DRM_DEV_ERROR(dev, "Failed to attach panel: %d\n", ret);
+		drm_connector_cleanup(&adap->connector);
+		return ret;
+	}
+
+	return ret;
+}
+
+static void seiko_adapter_bridge_detach(struct drm_bridge *bridge)
+{
+	struct seiko_adapter *adap = bridge->driver_private;
+
+	drm_panel_detach(adap->panel);
+	drm_connector_cleanup(&adap->connector);
+}
+
+static void seiko_adapter_bridge_enable(struct drm_bridge *bridge)
+{
+	struct seiko_adapter *adap = bridge->driver_private;
+	struct device *dev = adap->dev;
+
+	if (drm_panel_prepare(adap->panel)) {
+		DRM_DEV_ERROR(dev, "Failed to prepare panel\n");
+		return;
+	}
+
+	if (drm_panel_enable(adap->panel)) {
+		DRM_DEV_ERROR(dev, "Failed to enable panel\n");
+		drm_panel_unprepare(adap->panel);
+	}
+}
+
+static void seiko_adapter_bridge_disable(struct drm_bridge *bridge)
+{
+	struct seiko_adapter *adap = bridge->driver_private;
+	struct device *dev = adap->dev;
+
+	if (drm_panel_disable(adap->panel)) {
+		DRM_DEV_ERROR(dev, "failed to disable panel\n");
+		return;
+	}
+
+	if (drm_panel_unprepare(adap->panel))
+		DRM_DEV_ERROR(dev, "failed to unprepare panel\n");
+}
+
+static const struct drm_bridge_funcs seiko_adapter_bridge_funcs = {
+	.enable = seiko_adapter_bridge_enable,
+	.disable = seiko_adapter_bridge_disable,
+	.attach = seiko_adapter_bridge_attach,
+	.detach = seiko_adapter_bridge_detach,
+};
+
+static int seiko_adapter_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct seiko_adapter *adap;
+	struct device_node *remote;
+	u32 bus_mode;
+	int port;
+
+	adap = devm_kzalloc(dev, sizeof(*adap), GFP_KERNEL);
+	if (!adap)
+		return -ENOMEM;
+
+	of_property_read_u32(dev->of_node, "bus_mode", &bus_mode);
+	if (bus_mode != 18 && bus_mode != 24) {
+		dev_err(dev, "Invalid bus_mode: %d\n", bus_mode);
+		return -EINVAL;
+	}
+
+	switch (bus_mode) {
+	case 18:
+		adap->bpc = 6;
+		adap->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
+		break;
+	case 24:
+		adap->bpc = 8;
+		adap->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+		break;
+	}
+
+	for (port = 0; port < 2; port++) {
+		remote = of_graph_get_remote_node(dev->of_node, port, -1);
+		if (!remote) {
+			dev_err(dev, "No remote for port %d\n", port);
+			return -ENODEV;
+		}
+		adap->panel = of_drm_find_panel(remote);
+		if (!IS_ERR(adap->panel))
+			break;
+	}
+	if (IS_ERR(adap->panel)) {
+		dev_err(dev, "No panel found: %ld\n", PTR_ERR(adap->panel));
+		return PTR_ERR(adap->panel);
+	}
+
+	adap->dev = dev;
+	adap->bridge.driver_private = adap;
+	adap->bridge.funcs = &seiko_adapter_bridge_funcs;
+	adap->bridge.of_node = dev->of_node;
+
+	drm_bridge_add(&adap->bridge);
+
+	return 0;
+}
+
+static int seiko_adapter_remove(struct platform_device *pdev)
+{
+	return 0;
+}
+
+static const struct of_device_id seiko_adapter_dt_ids[] = {
+	{ .compatible = "nxp,seiko-43wvfig" },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, seiko_adapter_dt_ids);
+
+static struct platform_driver seiko_adapter_driver = {
+	.probe		= seiko_adapter_probe,
+	.remove		= seiko_adapter_remove,
+	.driver		= {
+		.of_match_table = seiko_adapter_dt_ids,
+		.name	= "nxp-seiko-adapter",
+	},
+};
+
+module_platform_driver(seiko_adapter_driver);
+
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_DESCRIPTION("Seiko 43WVFIG adapter card driver");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/sec-dsim.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/sec-dsim.c
@@ -0,0 +1,2013 @@
+/*
+ * Samsung MIPI DSIM Bridge
+ *
+ * Copyright 2018-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <asm/unaligned.h>
+#include <linux/clk.h>
+#include <linux/completion.h>
+#include <linux/delay.h>
+#include <linux/gcd.h>
+#include <linux/log2.h>
+#include <linux/module.h>
+#include <linux/of_graph.h>
+#include <linux/pm_runtime.h>
+#include <drm/bridge/sec_mipi_dsim.h>
+#include <drm/drmP.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_bridge.h>
+#include <drm/drm_connector.h>
+#include <drm/drm_probe_helper.h>
+#include <drm/drm_encoder.h>
+#include <drm/drm_fourcc.h>
+#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_panel.h>
+#include <video/videomode.h>
+#include <video/mipi_display.h>
+
+/* dsim registers */
+#define DSIM_VERSION			0x00
+#define DSIM_STATUS			0x04
+#define DSIM_RGB_STATUS			0x08
+#define DSIM_SWRST			0x0c
+#define DSIM_CLKCTRL			0x10
+#define DSIM_TIMEOUT			0x14
+#define DSIM_CONFIG			0x18
+#define DSIM_ESCMODE			0x1c
+#define DSIM_MDRESOL			0x20
+#define DSIM_MVPORCH			0x24
+#define DSIM_MHPORCH			0x28
+#define DSIM_MSYNC			0x2c
+#define DSIM_SDRESOL			0x30
+#define DSIM_INTSRC			0x34
+#define DSIM_INTMSK			0x38
+
+/* packet */
+#define DSIM_PKTHDR			0x3c
+#define DSIM_PAYLOAD			0x40
+#define DSIM_RXFIFO			0x44
+#define DSIM_FIFOTHLD			0x48
+#define DSIM_FIFOCTRL			0x4c
+#define DSIM_MEMACCHR			0x50
+#define DSIM_MULTI_PKT			0x78
+
+/* pll control */
+#define DSIM_PLLCTRL_1G			0x90
+#define DSIM_PLLCTRL			0x94
+#define DSIM_PLLCTRL1			0x98
+#define DSIM_PLLCTRL2			0x9c
+#define DSIM_PLLTMR			0xa0
+
+/* dphy */
+#define DSIM_PHYTIMING			0xb4
+#define DSIM_PHYTIMING1			0xb8
+#define DSIM_PHYTIMING2			0xbc
+
+/* reg bit manipulation */
+#define REG_MASK(e, s) (((1 << ((e) - (s) + 1)) - 1) << (s))
+#define REG_PUT(x, e, s) (((x) << (s)) & REG_MASK(e, s))
+#define REG_GET(x, e, s) (((x) & REG_MASK(e, s)) >> (s))
+
+/* register bit fields */
+#define STATUS_PLLSTABLE		BIT(31)
+#define STATUS_SWRSTRLS			BIT(20)
+#define STATUS_TXREADYHSCLK		BIT(10)
+#define STATUS_ULPSCLK			BIT(9)
+#define STATUS_STOPSTATECLK		BIT(8)
+#define STATUS_GET_ULPSDAT(x)		REG_GET(x,  7,  4)
+#define STATUS_GET_STOPSTATEDAT(x)	REG_GET(x,  3,  0)
+
+#define RGB_STATUS_CMDMODE_INSEL	BIT(31)
+#define RGB_STATUS_GET_RGBSTATE(x)	REG_GET(x, 12,  0)
+
+#define CLKCTRL_TXREQUESTHSCLK		BIT(31)
+#define CLKCTRL_DPHY_SEL_1G		BIT(29)
+#define CLKCTRL_DPHY_SEL_1P5G		(0x0 << 29)
+#define CLKCTRL_ESCCLKEN		BIT(28)
+#define CLKCTRL_PLLBYPASS		BIT(29)
+#define CLKCTRL_BYTECLKSRC_DPHY_PLL	REG_PUT(0, 26, 25)
+#define CLKCTRL_BYTECLKEN		BIT(24)
+#define CLKCTRL_SET_LANEESCCLKEN(x)	REG_PUT(x, 23, 19)
+#define CLKCTRL_SET_ESCPRESCALER(x)	REG_PUT(x, 15,  0)
+
+#define TIMEOUT_SET_BTAOUT(x)		REG_PUT(x, 23, 16)
+#define TIMEOUT_SET_LPDRTOUT(x)		REG_PUT(x, 15,  0)
+
+#define CONFIG_NON_CONTINUOUS_CLOCK_LANE	BIT(31)
+#define CONFIG_CLKLANE_STOP_START	BIT(30)
+#define CONFIG_MFLUSH_VS		BIT(29)
+#define CONFIG_EOT_R03			BIT(28)
+#define CONFIG_SYNCINFORM		BIT(27)
+#define CONFIG_BURSTMODE		BIT(26)
+#define CONFIG_VIDEOMODE		BIT(25)
+#define CONFIG_AUTOMODE			BIT(24)
+#define CONFIG_HSEDISABLEMODE		BIT(23)
+#define CONFIG_HFPDISABLEMODE		BIT(22)
+#define CONFIG_HBPDISABLEMODE		BIT(21)
+#define CONFIG_HSADISABLEMODE		BIT(20)
+#define CONFIG_SET_MAINVC(x)		REG_PUT(x, 19, 18)
+#define CONFIG_SET_SUBVC(x)		REG_PUT(x, 17, 16)
+#define CONFIG_SET_MAINPIXFORMAT(x)	REG_PUT(x, 14, 12)
+#define CONFIG_SET_SUBPIXFORMAT(x)	REG_PUT(x, 10,  8)
+#define CONFIG_SET_NUMOFDATLANE(x)	REG_PUT(x,  6,  5)
+#define CONFIG_SET_LANEEN(x)		REG_PUT(x,  4,  0)
+
+#define ESCMODE_SET_STOPSTATE_CNT(X)	REG_PUT(x, 31, 21)
+#define ESCMODE_FORCESTOPSTATE		BIT(20)
+#define ESCMODE_FORCEBTA		BIT(16)
+#define ESCMODE_CMDLPDT			BIT(7)
+#define ESCMODE_TXLPDT			BIT(6)
+#define ESCMODE_TXTRIGGERRST		BIT(5)
+
+#define MDRESOL_MAINSTANDBY		BIT(31)
+#define MDRESOL_SET_MAINVRESOL(x)	REG_PUT(x, 27, 16)
+#define MDRESOL_SET_MAINHRESOL(x)	REG_PUT(x, 11,  0)
+
+#define MVPORCH_SET_CMDALLOW(x)		REG_PUT(x, 31, 28)
+#define MVPORCH_SET_STABLEVFP(x)	REG_PUT(x, 26, 16)
+#define MVPORCH_SET_MAINVBP(x)		REG_PUT(x, 10,  0)
+
+#define MHPORCH_SET_MAINHFP(x)		REG_PUT(x, 31, 16)
+#define MHPORCH_SET_MAINHBP(x)		REG_PUT(x, 15,  0)
+
+#define MSYNC_SET_MAINVSA(x)		REG_PUT(x, 31, 22)
+#define MSYNC_SET_MAINHSA(x)		REG_PUT(x, 15,  0)
+
+#define INTSRC_PLLSTABLE		BIT(31)
+#define INTSRC_SWRSTRELEASE		BIT(30)
+#define INTSRC_SFRPLFIFOEMPTY		BIT(29)
+#define INTSRC_SFRPHFIFOEMPTY		BIT(28)
+#define INTSRC_FRAMEDONE		BIT(24)
+#define INTSRC_LPDRTOUT			BIT(21)
+#define INTSRC_TATOUT			BIT(20)
+#define INTSRC_RXDATDONE		BIT(18)
+#define INTSRC_RXTE			BIT(17)
+#define INTSRC_RXACK			BIT(16)
+#define INTSRC_MASK			(INTSRC_PLLSTABLE	|	\
+					 INTSRC_SWRSTRELEASE	|	\
+					 INTSRC_SFRPLFIFOEMPTY	|	\
+					 INTSRC_SFRPHFIFOEMPTY	|	\
+					 INTSRC_FRAMEDONE	|	\
+					 INTSRC_LPDRTOUT	|	\
+					 INTSRC_TATOUT		|	\
+					 INTSRC_RXDATDONE	|	\
+					 INTSRC_RXTE		|	\
+					 INTSRC_RXACK)
+
+#define INTMSK_MSKPLLSTABLE		BIT(31)
+#define INTMSK_MSKSWRELEASE		BIT(30)
+#define INTMSK_MSKSFRPLFIFOEMPTY	BIT(29)
+#define INTMSK_MSKSFRPHFIFOEMPTY	BIT(28)
+#define INTMSK_MSKFRAMEDONE		BIT(24)
+#define INTMSK_MSKLPDRTOUT		BIT(21)
+#define INTMSK_MSKTATOUT		BIT(20)
+#define INTMSK_MSKRXDATDONE		BIT(18)
+#define INTMSK_MSKRXTE			BIT(17)
+#define INTMSK_MSKRXACK			BIT(16)
+
+#define PKTHDR_SET_DATA1(x)		REG_PUT(x, 23, 16)
+#define PKTHDR_GET_DATA1(x)		REG_GET(x, 23, 16)
+#define PKTHDR_SET_DATA0(x)		REG_PUT(x, 15,  8)
+#define PKTHDR_GET_DATA0(x)		REG_GET(x, 15,  8)
+#define PKTHDR_GET_WC(x)		REG_GET(x, 23,  8)
+#define PKTHDR_SET_DI(x)		REG_PUT(x,  7,  0)
+#define PKTHDR_GET_DI(x)		REG_GET(x,  7,  0)
+#define PKTHDR_SET_DT(x)		REG_PUT(x,  5,  0)
+#define PKTHDR_GET_DT(x)		REG_GET(x,  5,  0)
+#define PKTHDR_SET_VC(x)		REG_PUT(x,  7,  6)
+#define PKTHDR_GET_VC(x)		REG_GET(x,  7,  6)
+
+#define FIFOCTRL_FULLRX			BIT(25)
+#define FIFOCTRL_EMPTYRX		BIT(24)
+#define FIFOCTRL_FULLHSFR		BIT(23)
+#define FIFOCTRL_EMPTYHSFR		BIT(22)
+#define FIFOCTRL_FULLLSFR		BIT(21)
+#define FIFOCTRL_EMPTYLSFR		BIT(20)
+#define FIFOCTRL_FULLHMAIN		BIT(11)
+#define FIFOCTRL_EMPTYHMAIN		BIT(10)
+#define FIFOCTRL_FULLLMAIN		BIT(9)
+#define FIFOCTRL_EMPTYLMAIN		BIT(8)
+#define FIFOCTRL_NINITRX		BIT(4)
+#define FIFOCTRL_NINITSFR		BIT(3)
+#define FIFOCTRL_NINITI80		BIT(2)
+#define FIFOCTRL_NINITSUB		BIT(1)
+#define FIFOCTRL_NINITMAIN		BIT(0)
+
+#define PLLCTRL_DPDNSWAP_CLK		BIT(25)
+#define PLLCTRL_DPDNSWAP_DAT		BIT(24)
+#define PLLCTRL_PLLEN			BIT(23)
+#define PLLCTRL_SET_PMS(x)		REG_PUT(x, 19,  1)
+   #define PLLCTRL_SET_P(x)		REG_PUT(x, 18, 13)
+   #define PLLCTRL_SET_M(x)		REG_PUT(x, 12,  3)
+   #define PLLCTRL_SET_S(x)		REG_PUT(x,  2,  0)
+
+#define PHYTIMING_SET_M_TLPXCTL(x)	REG_PUT(x, 15,  8)
+#define PHYTIMING_SET_M_THSEXITCTL(x)	REG_PUT(x,  7,  0)
+
+#define PHYTIMING1_SET_M_TCLKPRPRCTL(x)	 REG_PUT(x, 31, 24)
+#define PHYTIMING1_SET_M_TCLKZEROCTL(x)	 REG_PUT(x, 23, 16)
+#define PHYTIMING1_SET_M_TCLKPOSTCTL(x)	 REG_PUT(x, 15,  8)
+#define PHYTIMING1_SET_M_TCLKTRAILCTL(x) REG_PUT(x,  7,  0)
+
+#define PHYTIMING2_SET_M_THSPRPRCTL(x)	REG_PUT(x, 23, 16)
+#define PHYTIMING2_SET_M_THSZEROCTL(x)	REG_PUT(x, 15,  8)
+#define PHYTIMING2_SET_M_THSTRAILCTL(x)	REG_PUT(x,  7,  0)
+
+#define dsim_read(dsim, reg)		readl(dsim->base + reg)
+#define dsim_write(dsim, val, reg)	writel(val, dsim->base + reg)
+
+/* fixed phy ref clk rate */
+#define PHY_REF_CLK		12000
+
+#define MAX_MAIN_HRESOL		2047
+#define MAX_MAIN_VRESOL		2047
+#define MAX_SUB_HRESOL		1024
+#define MAX_SUB_VRESOL		1024
+
+/* in KHZ */
+#define MAX_ESC_CLK_FREQ	20000
+
+/* dsim all irqs index */
+#define PLLSTABLE		1
+#define SWRSTRELEASE		2
+#define SFRPLFIFOEMPTY		3
+#define SFRPHFIFOEMPTY		4
+#define SYNCOVERRIDE		5
+#define BUSTURNOVER		6
+#define FRAMEDONE		7
+#define LPDRTOUT		8
+#define TATOUT			9
+#define RXDATDONE		10
+#define RXTE			11
+#define RXACK			12
+#define ERRRXECC		13
+#define ERRRXCRC		14
+#define ERRESC3			15
+#define ERRESC2			16
+#define ERRESC1			17
+#define ERRESC0			18
+#define ERRSYNC3		19
+#define ERRSYNC2		20
+#define ERRSYNC1		21
+#define ERRSYNC0		22
+#define ERRCONTROL3		23
+#define ERRCONTROL2		24
+#define ERRCONTROL1		25
+#define ERRCONTROL0		26
+
+#define MIPI_FIFO_TIMEOUT	msecs_to_jiffies(250)
+
+#define MIPI_HFP_PKT_OVERHEAD	6
+#define MIPI_HBP_PKT_OVERHEAD	6
+#define MIPI_HSA_PKT_OVERHEAD	6
+
+#define to_sec_mipi_dsim(dsi) container_of(dsi, struct sec_mipi_dsim, dsi_host)
+#define conn_to_sec_mipi_dsim(conn)		\
+	container_of(conn, struct sec_mipi_dsim, connector)
+
+/* used for CEA standard modes */
+struct dsim_hblank_par {
+	char *name;		/* drm display mode name */
+	int vrefresh;
+	int hfp_wc;
+	int hbp_wc;
+	int hsa_wc;
+	int lanes;
+};
+
+struct dsim_pll_pms {
+	uint32_t bit_clk;	/* kHz */
+	uint32_t p;
+	uint32_t m;
+	uint32_t s;
+	uint32_t k;
+};
+
+struct sec_mipi_dsim {
+	struct mipi_dsi_host dsi_host;
+	struct drm_connector connector;
+	struct drm_encoder *encoder;
+	struct drm_bridge *bridge;
+	struct drm_bridge *next;
+	struct drm_panel *panel;
+	struct device *dev;
+
+	void __iomem *base;
+	int irq;
+
+	struct clk *clk_cfg;
+	struct clk *clk_pllref;
+	struct clk *pclk;			/* pixel clock */
+
+	/* kHz clocks */
+	uint32_t pix_clk;
+	uint32_t bit_clk;
+	uint32_t pref_clk;			/* phy ref clock rate in KHz */
+
+	unsigned int lanes;
+	unsigned int channel;			/* virtual channel */
+	enum mipi_dsi_pixel_format format;
+	unsigned long mode_flags;
+	const struct dsim_hblank_par *hpar;
+	unsigned int pms;
+	unsigned int p;
+	unsigned int m;
+	unsigned int s;
+	unsigned long long lp_data_rate;
+	unsigned long long hs_data_rate;
+	struct videomode vmode;
+
+	struct completion pll_stable;
+	struct completion ph_tx_done;
+	struct completion pl_tx_done;
+	struct completion rx_done;
+	const struct sec_mipi_dsim_plat_data *pdata;
+};
+
+#define DSIM_HBLANK_PARAM(nm, vf, hfp, hbp, hsa, num)	\
+	.name	  = (nm),				\
+	.vrefresh = (vf),				\
+	.hfp_wc   = (hfp),				\
+	.hbp_wc   = (hbp),				\
+	.hsa_wc   = (hsa),				\
+	.lanes	  = (num)
+
+#define DSIM_PLL_PMS(c, pp, mm, ss)			\
+	.bit_clk = (c),					\
+	.p = (pp),					\
+	.m = (mm),					\
+	.s = (ss)
+
+static const struct dsim_hblank_par hblank_4lanes[] = {
+	/* {  88, 148, 44 } */
+	{ DSIM_HBLANK_PARAM("1920x1080", 60,  60, 105,  27, 4), },
+	/* { 528, 148, 44 } */
+	{ DSIM_HBLANK_PARAM("1920x1080", 50, 390, 105,  27, 4), },
+	/* {  88, 148, 44 } */
+	{ DSIM_HBLANK_PARAM("1920x1080", 30,  60, 105,  27, 4), },
+	/* { 110, 220, 40 } */
+	{ DSIM_HBLANK_PARAM("1280x720" , 60,  78, 159,  24, 4), },
+	/* { 440, 220, 40 } */
+	{ DSIM_HBLANK_PARAM("1280x720" , 50, 324, 159,  24, 4), },
+	/* {  16,  60, 62 } */
+	{ DSIM_HBLANK_PARAM("720x480"  , 60,   6,  39,  40, 4), },
+	/* {  12,  68, 64 } */
+	{ DSIM_HBLANK_PARAM("720x576"  , 50,   3,  45,  42, 4), },
+	/* {  16,  48, 96 } */
+	{ DSIM_HBLANK_PARAM("640x480"  , 60,   6,  30,  66, 4), },
+};
+
+static const struct dsim_hblank_par hblank_2lanes[] = {
+	/* {  88, 148, 44 } */
+	{ DSIM_HBLANK_PARAM("1920x1080", 30, 114, 210,  60, 2), },
+	/* { 110, 220, 40 } */
+	{ DSIM_HBLANK_PARAM("1280x720" , 60, 159, 320,  40, 2), },
+	/* { 440, 220, 40 } */
+	{ DSIM_HBLANK_PARAM("1280x720" , 50, 654, 320,  40, 2), },
+	/* {  16,  60, 62 } */
+	{ DSIM_HBLANK_PARAM("720x480"  , 60,  16,  66,  88, 2), },
+	/* {  12,  68, 64 } */
+	{ DSIM_HBLANK_PARAM("720x576"  , 50,  12,  96,  72, 2), },
+	/* {  16,  48, 96 } */
+	{ DSIM_HBLANK_PARAM("640x480"  , 60,  18,  66, 138, 2), },
+};
+
+static const struct dsim_hblank_par *sec_mipi_dsim_get_hblank_par(const char *name,
+								  int vrefresh,
+								  int lanes)
+{
+	int i, size;
+	const struct dsim_hblank_par *hpar, *hblank;
+
+	if (unlikely(!name))
+		return NULL;
+
+	switch (lanes) {
+	case 2:
+		hblank = hblank_2lanes;
+		size   = ARRAY_SIZE(hblank_2lanes);
+		break;
+	case 4:
+		hblank = hblank_4lanes;
+		size   = ARRAY_SIZE(hblank_4lanes);
+		break;
+	default:
+		pr_err("No hblank data for mode %s with %d lanes\n",
+		       name, lanes);
+		return NULL;
+	}
+
+	for (i = 0; i < size; i++) {
+		hpar = &hblank[i];
+
+		if (!strcmp(name, hpar->name)) {
+			if (vrefresh != hpar->vrefresh)
+				continue;
+
+			/* found */
+			return hpar;
+		}
+	}
+
+	return NULL;
+}
+
+static int sec_mipi_dsim_set_pref_rate(struct sec_mipi_dsim *dsim)
+{
+	int ret;
+	uint32_t rate;
+	struct device *dev = dsim->dev;
+	const struct sec_mipi_dsim_plat_data *pdata = dsim->pdata;
+	const struct sec_mipi_dsim_pll *dpll = pdata->dphy_pll;
+	const struct sec_mipi_dsim_range *fin_range = &dpll->fin;
+
+	ret = of_property_read_u32(dev->of_node, "pref-rate", &rate);
+	if (ret < 0) {
+		dev_dbg(dev, "no valid rate assigned for pref clock\n");
+		dsim->pref_clk = PHY_REF_CLK;
+	} else {
+		if (unlikely(rate < fin_range->min || rate > fin_range->max)) {
+			dev_warn(dev, "pref-rate get is invalid: %uKHz\n",
+				 rate);
+			dsim->pref_clk = PHY_REF_CLK;
+		} else
+			dsim->pref_clk = rate;
+	}
+
+set_rate:
+	ret = clk_set_rate(dsim->clk_pllref,
+			   ((unsigned long)dsim->pref_clk) * 1000);
+	if (ret) {
+		dev_err(dev, "failed to set pll ref clock rate\n");
+		return ret;
+	}
+
+	rate = clk_get_rate(dsim->clk_pllref) / 1000;
+	if (unlikely(!rate)) {
+		dev_err(dev, "failed to get pll ref clock rate\n");
+		return -EINVAL;
+	}
+
+	if (rate != dsim->pref_clk) {
+		if (unlikely(dsim->pref_clk == PHY_REF_CLK)) {
+			/* set default rate failed */
+			dev_err(dev, "no valid pll ref clock rate\n");
+			return -EINVAL;
+		}
+
+		dev_warn(dev, "invalid assigned rate for pref: %uKHz\n",
+			 dsim->pref_clk);
+		dev_warn(dev, "use default pref rate instead: %uKHz\n",
+			 PHY_REF_CLK);
+
+		dsim->pref_clk = PHY_REF_CLK;
+		goto set_rate;
+	}
+
+	return 0;
+}
+
+static void sec_mipi_dsim_irq_init(struct sec_mipi_dsim *dsim);
+
+/* For now, dsim only support one device attached */
+static int sec_mipi_dsim_host_attach(struct mipi_dsi_host *host,
+				     struct mipi_dsi_device *dsi)
+{
+	struct sec_mipi_dsim *dsim = to_sec_mipi_dsim(host);
+	const struct sec_mipi_dsim_plat_data *pdata = dsim->pdata;
+	struct device *dev = dsim->dev;
+	struct drm_panel *panel;
+
+	if (!dsi->lanes || dsi->lanes > pdata->max_data_lanes) {
+		dev_err(dev, "invalid data lanes number\n");
+		return -EINVAL;
+	}
+
+	if (dsim->channel)
+		return -EINVAL;
+
+	if (!(dsi->mode_flags & MIPI_DSI_MODE_VIDEO)		||
+	    !((dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST)	||
+	      (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE))) {
+		dev_err(dev, "unsupported dsi mode\n");
+		return -EINVAL;
+	}
+
+	if (dsi->format != MIPI_DSI_FMT_RGB888 &&
+	    dsi->format != MIPI_DSI_FMT_RGB565 &&
+	    dsi->format != MIPI_DSI_FMT_RGB666 &&
+	    dsi->format != MIPI_DSI_FMT_RGB666_PACKED) {
+		dev_err(dev, "unsupported pixel format: %#x\n", dsi->format);
+		return -EINVAL;
+	}
+
+	if (!dsim->next) {
+		/* 'dsi' must be panel device */
+		panel = of_drm_find_panel(dsi->dev.of_node);
+
+		if (!panel) {
+			dev_err(dev, "refuse unknown dsi device attach\n");
+			WARN_ON(!panel);
+			return -ENODEV;
+		}
+
+		/* Don't support multiple panels */
+		if (dsim->panel && panel && dsim->panel != panel) {
+			dev_err(dev, "don't support multiple panels\n");
+			return -EBUSY;
+		}
+
+		dsim->panel = panel;
+	}
+
+	/* TODO: DSIM 3 lanes has some display issue, so
+	 * avoid 3 lanes enable, and force data lanes to
+	 * be 2.
+	 */
+	if (dsi->lanes == 3)
+		dsi->lanes = 2;
+
+	dsim->lanes	 = dsi->lanes;
+	dsim->channel	 = dsi->channel;
+	dsim->format	 = dsi->format;
+	dsim->mode_flags = dsi->mode_flags;
+
+	/* TODO: support later */
+#if 0
+	if (dsim->connector.dev)
+		drm_helper_hpd_irq_event(dsim->connector.dev);
+#endif
+
+	return 0;
+}
+
+static int sec_mipi_dsim_host_detach(struct mipi_dsi_host *host,
+				     struct mipi_dsi_device *dsi)
+{
+	struct sec_mipi_dsim *dsim = to_sec_mipi_dsim(host);
+
+	if (WARN_ON(!dsim->next && !dsim->panel))
+		return -ENODEV;
+
+	/* clear the saved dsi parameters */
+	dsim->lanes	 = 0;
+	dsim->channel	 = 0;
+	dsim->format	 = 0;
+	dsim->mode_flags = 0;
+
+	/* detached panel should be NULL */
+	dsim->panel = NULL;
+
+	return 0;
+}
+
+static void sec_mipi_dsim_config_cmd_lpm(struct sec_mipi_dsim *dsim,
+					 bool enable)
+{
+	uint32_t escmode;
+
+	escmode = dsim_read(dsim, DSIM_ESCMODE);
+
+	if (enable)
+		escmode |= ESCMODE_CMDLPDT;
+	else
+		escmode &= ~ESCMODE_CMDLPDT;
+
+	dsim_write(dsim, escmode, DSIM_ESCMODE);
+}
+
+static void sec_mipi_dsim_write_pl_to_sfr_fifo(struct sec_mipi_dsim *dsim,
+					       const void *payload,
+					       size_t length)
+{
+	uint32_t pl_data;
+
+	if (!length)
+		return;
+
+	while (length >= 4) {
+		pl_data = get_unaligned_le32(payload);
+		dsim_write(dsim, pl_data, DSIM_PAYLOAD);
+		payload += 4;
+		length -= 4;
+	}
+
+	pl_data = 0;
+	switch (length) {
+	case 3:
+		pl_data |= ((u8 *)payload)[2] << 16;
+		/* fall through */
+	case 2:
+		pl_data |= ((u8 *)payload)[1] << 8;
+		/* fall through */
+	case 1:
+		pl_data |= ((u8 *)payload)[0];
+		dsim_write(dsim, pl_data, DSIM_PAYLOAD);
+		break;
+	}
+}
+
+static void sec_mipi_dsim_write_ph_to_sfr_fifo(struct sec_mipi_dsim *dsim,
+					       void *header,
+					       bool use_lpm)
+{
+	uint32_t pkthdr;
+
+	pkthdr = PKTHDR_SET_DATA1(((u8 *)header)[2])	| /* WC MSB  */
+		 PKTHDR_SET_DATA0(((u8 *)header)[1])	| /* WC LSB  */
+		 PKTHDR_SET_DI(((u8 *)header)[0]);	  /* Data ID */
+
+	dsim_write(dsim, pkthdr, DSIM_PKTHDR);
+}
+
+static int sec_mipi_dsim_read_pl_from_sfr_fifo(struct sec_mipi_dsim *dsim,
+					       void *payload,
+					       size_t length)
+{
+	uint8_t data_type;
+	uint16_t word_count = 0;
+	uint32_t fifoctrl, ph, pl;
+
+	fifoctrl = dsim_read(dsim, DSIM_FIFOCTRL);
+
+	if (WARN_ON(fifoctrl & FIFOCTRL_EMPTYRX))
+		return -EINVAL;
+
+	ph = dsim_read(dsim, DSIM_RXFIFO);
+	data_type = PKTHDR_GET_DT(ph);
+	switch (data_type) {
+	case MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT:
+		dev_err(dsim->dev, "peripheral report error: (0-7)%x, (8-15)%x\n",
+			PKTHDR_GET_DATA0(ph), PKTHDR_GET_DATA1(ph));
+		return -EPROTO;
+	case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE:
+	case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE:
+		if (!WARN_ON(length < 2)) {
+			((u8 *)payload)[1] = PKTHDR_GET_DATA1(ph);
+			word_count++;
+		}
+		/* fall through */
+	case MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE:
+	case MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE:
+		((u8 *)payload)[0] = PKTHDR_GET_DATA0(ph);
+		word_count++;
+		length = word_count;
+		break;
+	case MIPI_DSI_RX_DCS_LONG_READ_RESPONSE:
+	case MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE:
+		word_count = PKTHDR_GET_WC(ph);
+		if (word_count > length) {
+			dev_err(dsim->dev, "invalid receive buffer length\n");
+			return -EINVAL;
+		}
+
+		length = word_count;
+
+		while (word_count >= 4) {
+			pl = dsim_read(dsim, DSIM_RXFIFO);
+			((u8 *)payload)[0] = pl & 0xff;
+			((u8 *)payload)[1] = (pl >> 8)  & 0xff;
+			((u8 *)payload)[2] = (pl >> 16) & 0xff;
+			((u8 *)payload)[3] = (pl >> 24) & 0xff;
+			payload += 4;
+			word_count -= 4;
+		}
+
+		if (word_count > 0) {
+			pl = dsim_read(dsim, DSIM_RXFIFO);
+
+			switch (word_count) {
+			case 3:
+				((u8 *)payload)[2] = (pl >> 16) & 0xff;
+				/* fall through */
+			case 2:
+				((u8 *)payload)[1] = (pl >> 8) & 0xff;
+				/* fall through */
+			case 1:
+				((u8 *)payload)[0] = pl & 0xff;
+				break;
+			}
+		}
+
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return length;
+}
+
+static ssize_t sec_mipi_dsim_host_transfer(struct mipi_dsi_host *host,
+					   const struct mipi_dsi_msg *msg)
+{
+	int ret;
+	bool use_lpm;
+	struct mipi_dsi_packet packet;
+	struct sec_mipi_dsim *dsim = to_sec_mipi_dsim(host);
+
+	if ((msg->rx_buf && !msg->rx_len) || (msg->rx_len && !msg->rx_buf))
+		return -EINVAL;
+
+	ret = mipi_dsi_create_packet(&packet, msg);
+	if (ret) {
+		dev_err(dsim->dev, "failed to create dsi packet: %d\n", ret);
+		return ret;
+	}
+
+	/* need to read data from peripheral */
+	if (unlikely(msg->rx_buf))
+		reinit_completion(&dsim->rx_done);
+
+	/* config LPM for CMD TX */
+	use_lpm = msg->flags & MIPI_DSI_MSG_USE_LPM ? true : false;
+	sec_mipi_dsim_config_cmd_lpm(dsim, use_lpm);
+
+	if (packet.payload_length) {		/* Long Packet case */
+		reinit_completion(&dsim->pl_tx_done);
+
+		/* write packet payload */
+		sec_mipi_dsim_write_pl_to_sfr_fifo(dsim,
+						   packet.payload,
+						   packet.payload_length);
+
+		/* write packet header */
+		sec_mipi_dsim_write_ph_to_sfr_fifo(dsim,
+						   packet.header,
+						   use_lpm);
+
+		ret = wait_for_completion_timeout(&dsim->ph_tx_done,
+						  MIPI_FIFO_TIMEOUT);
+		if (!ret) {
+			dev_err(dsim->dev, "wait payload tx done time out\n");
+			return -EBUSY;
+		}
+	} else {
+		reinit_completion(&dsim->ph_tx_done);
+
+		/* write packet header */
+		sec_mipi_dsim_write_ph_to_sfr_fifo(dsim,
+						   packet.header,
+						   use_lpm);
+
+		ret = wait_for_completion_timeout(&dsim->ph_tx_done,
+						  MIPI_FIFO_TIMEOUT);
+		if (!ret) {
+			dev_err(dsim->dev, "wait pkthdr tx done time out\n");
+			return -EBUSY;
+		}
+	}
+
+	/* read packet payload */
+	if (unlikely(msg->rx_buf)) {
+		ret = wait_for_completion_timeout(&dsim->rx_done,
+						  MIPI_FIFO_TIMEOUT);
+		if (!ret) {
+			dev_err(dsim->dev, "wait rx done time out\n");
+			return -EBUSY;
+		}
+
+		ret = sec_mipi_dsim_read_pl_from_sfr_fifo(dsim,
+							  msg->rx_buf,
+							  msg->rx_len);
+		if (ret < 0)
+			return ret;
+	}
+
+	return 0;
+}
+
+static const struct mipi_dsi_host_ops sec_mipi_dsim_host_ops = {
+	.attach   = sec_mipi_dsim_host_attach,
+	.detach   = sec_mipi_dsim_host_detach,
+	.transfer = sec_mipi_dsim_host_transfer,
+};
+
+static int sec_mipi_dsim_bridge_attach(struct drm_bridge *bridge)
+{
+	int ret;
+	bool attach_bridge = false;
+	struct sec_mipi_dsim *dsim = bridge->driver_private;
+	struct device *dev = dsim->dev;
+	struct device_node *np = dev->of_node;
+	struct device_node *endpoint, *remote = NULL;
+	struct drm_bridge *next = ERR_PTR(-ENODEV);
+	struct drm_encoder *encoder = dsim->encoder;
+
+	/* TODO: All bridges and planes should have already been added */
+
+	/* A panel has been found, ignor other dsi devices */
+	if (dsim->panel)
+		return 0;
+
+	/* find next bridge */
+	endpoint = of_graph_get_next_endpoint(np, NULL);
+	/* At least one endpoint should be existed */
+	if (!endpoint)
+		return -ENODEV;
+
+	while (endpoint) {
+		/* check the endpoint can attach bridge or not */
+		attach_bridge = of_property_read_bool(endpoint, "attach-bridge");
+		if (!attach_bridge) {
+			endpoint = of_graph_get_next_endpoint(np, endpoint);
+			continue;
+		}
+
+		remote = of_graph_get_remote_port_parent(endpoint);
+
+		if (!remote || !of_device_is_available(remote)) {
+			of_node_put(remote);
+			endpoint = of_graph_get_next_endpoint(np, endpoint);
+			continue;
+		}
+
+		next = of_drm_find_bridge(remote);
+		if (next) {
+			/* Found */
+			of_node_put(endpoint);
+			break;
+		}
+
+		endpoint = of_graph_get_next_endpoint(np, endpoint);
+	}
+
+	/* No workable bridge exists */
+	if (IS_ERR(next))
+		return PTR_ERR(next);
+
+	/* For the panel driver loading is after dsim bridge,
+	 * defer bridge binding to wait for panel driver ready.
+	 * The disadvantage of probe defer is endless probing
+	 * in some cases.
+	 */
+	if (!next)
+		return -EPROBE_DEFER;
+
+	/* duplicate bridges or next bridge exists */
+	WARN_ON(bridge == next || bridge->next || dsim->next);
+
+	dsim->next = next;
+	next->encoder = encoder;
+	ret = drm_bridge_attach(encoder, next, bridge);
+	if (ret) {
+		dev_err(dev, "Unable to attach bridge %s: %d\n",
+			remote->name, ret);
+		dsim->next = NULL;
+		return ret;
+	}
+
+	/* bridge chains */
+	bridge->next = next;
+
+	return 0;
+}
+
+static int sec_mipi_dsim_config_pll(struct sec_mipi_dsim *dsim)
+{
+	int ret;
+	uint32_t pllctrl = 0, status, data_lanes_en, stop;
+
+	dsim_write(dsim, 0x8000, DSIM_PLLTMR);
+
+	/* TODO: config dp/dn swap if requires */
+
+	pllctrl |= PLLCTRL_SET_PMS(dsim->pms) | PLLCTRL_PLLEN;
+	dsim_write(dsim, pllctrl, DSIM_PLLCTRL);
+
+	ret = wait_for_completion_timeout(&dsim->pll_stable, HZ / 10);
+	if (!ret) {
+		dev_err(dsim->dev, "wait for pll stable time out\n");
+		return -EBUSY;
+	}
+
+	/* wait for clk & data lanes to go to stop state */
+	mdelay(1);
+
+	data_lanes_en = (0x1 << dsim->lanes) - 1;
+	status = dsim_read(dsim, DSIM_STATUS);
+	if (!(status & STATUS_STOPSTATECLK)) {
+		dev_err(dsim->dev, "clock is not in stop state\n");
+		return -EBUSY;
+	}
+
+	stop = STATUS_GET_STOPSTATEDAT(status);
+	if ((stop & data_lanes_en) != data_lanes_en) {
+		dev_err(dsim->dev,
+			"one or more data lanes is not in stop state\n");
+		return -EBUSY;
+	}
+
+	return 0;
+}
+
+static void sec_mipi_dsim_set_main_mode(struct sec_mipi_dsim *dsim)
+{
+	uint32_t bpp, hfp_wc, hbp_wc, hsa_wc, wc;
+	uint32_t mdresol = 0, mvporch = 0, mhporch = 0, msync = 0;
+	struct videomode *vmode = &dsim->vmode;
+
+	mdresol |= MDRESOL_SET_MAINVRESOL(vmode->vactive) |
+		   MDRESOL_SET_MAINHRESOL(vmode->hactive);
+	dsim_write(dsim, mdresol, DSIM_MDRESOL);
+
+	mvporch |= MVPORCH_SET_MAINVBP(vmode->vback_porch)    |
+		   MVPORCH_SET_STABLEVFP(vmode->vfront_porch) |
+		   MVPORCH_SET_CMDALLOW(0x0);
+	dsim_write(dsim, mvporch, DSIM_MVPORCH);
+
+	bpp = mipi_dsi_pixel_format_to_bpp(dsim->format);
+
+	/* calculate hfp & hbp word counts */
+	if (!dsim->hpar) {
+		wc = DIV_ROUND_UP(vmode->hfront_porch * (bpp >> 3),
+				  dsim->lanes);
+		hfp_wc = wc > MIPI_HFP_PKT_OVERHEAD ?
+			 wc - MIPI_HFP_PKT_OVERHEAD : vmode->hfront_porch;
+		wc = DIV_ROUND_UP(vmode->hback_porch * (bpp >> 3),
+				  dsim->lanes);
+		hbp_wc = wc > MIPI_HBP_PKT_OVERHEAD ?
+			 wc - MIPI_HBP_PKT_OVERHEAD : vmode->hback_porch;
+	} else {
+		hfp_wc = dsim->hpar->hfp_wc;
+		hbp_wc = dsim->hpar->hbp_wc;
+	}
+
+	mhporch |= MHPORCH_SET_MAINHFP(hfp_wc) |
+		   MHPORCH_SET_MAINHBP(hbp_wc);
+
+	dsim_write(dsim, mhporch, DSIM_MHPORCH);
+
+	/* calculate hsa word counts */
+	if (!dsim->hpar) {
+		wc = DIV_ROUND_UP(vmode->hsync_len * (bpp >> 3),
+				  dsim->lanes);
+		hsa_wc = wc > MIPI_HSA_PKT_OVERHEAD ?
+			 wc - MIPI_HSA_PKT_OVERHEAD : vmode->hsync_len;
+	} else
+		hsa_wc = dsim->hpar->hsa_wc;
+
+	msync |= MSYNC_SET_MAINVSA(vmode->vsync_len) |
+		 MSYNC_SET_MAINHSA(hsa_wc);
+
+	dsim_write(dsim, msync, DSIM_MSYNC);
+}
+
+static void sec_mipi_dsim_config_dpi(struct sec_mipi_dsim *dsim)
+{
+	uint32_t config = 0, rgb_status = 0, data_lanes_en;
+
+	if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO)
+		rgb_status &= ~RGB_STATUS_CMDMODE_INSEL;
+	else
+		rgb_status |= RGB_STATUS_CMDMODE_INSEL;
+
+	dsim_write(dsim, rgb_status, DSIM_RGB_STATUS);
+
+	if (dsim->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
+		config |= CONFIG_NON_CONTINUOUS_CLOCK_LANE;
+		config |= CONFIG_CLKLANE_STOP_START;
+	}
+
+	if (dsim->mode_flags & MIPI_DSI_MODE_VSYNC_FLUSH)
+		config |= CONFIG_MFLUSH_VS;
+
+	/* disable EoT packets in HS mode */
+	if (dsim->mode_flags & MIPI_DSI_MODE_EOT_PACKET)
+		config |= CONFIG_EOT_R03;
+
+	if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO) {
+		config |= CONFIG_VIDEOMODE;
+
+		if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_BURST)
+			config |= CONFIG_BURSTMODE;
+
+		else if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)
+			config |= CONFIG_SYNCINFORM;
+
+		if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_AUTO_VERT)
+			config |= CONFIG_AUTOMODE;
+
+		if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_HSE)
+			config |= CONFIG_HSEDISABLEMODE;
+
+		if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_HFP)
+			config |= CONFIG_HFPDISABLEMODE;
+
+		if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_HBP)
+			config |= CONFIG_HBPDISABLEMODE;
+
+		if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_HSA)
+			config |= CONFIG_HSADISABLEMODE;
+	}
+
+	config |= CONFIG_SET_MAINVC(dsim->channel);
+
+	if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO) {
+		switch (dsim->format) {
+		case MIPI_DSI_FMT_RGB565:
+			config |= CONFIG_SET_MAINPIXFORMAT(0x4);
+			break;
+		case MIPI_DSI_FMT_RGB666_PACKED:
+			config |= CONFIG_SET_MAINPIXFORMAT(0x5);
+			break;
+		case MIPI_DSI_FMT_RGB666:
+			config |= CONFIG_SET_MAINPIXFORMAT(0x6);
+			break;
+		case MIPI_DSI_FMT_RGB888:
+			config |= CONFIG_SET_MAINPIXFORMAT(0x7);
+			break;
+		default:
+			config |= CONFIG_SET_MAINPIXFORMAT(0x7);
+			break;
+		}
+	}
+
+	/* config data lanes number and enable lanes */
+	data_lanes_en = (0x1 << dsim->lanes) - 1;
+	config |= CONFIG_SET_NUMOFDATLANE(dsim->lanes - 1);
+	config |= CONFIG_SET_LANEEN(0x1 | data_lanes_en << 1);
+
+	dsim_write(dsim, config, DSIM_CONFIG);
+}
+
+static void sec_mipi_dsim_config_dphy(struct sec_mipi_dsim *dsim)
+{
+	struct sec_mipi_dsim_dphy_timing key = { 0 };
+	const struct sec_mipi_dsim_dphy_timing *match = NULL;
+	const struct sec_mipi_dsim_plat_data *pdata = dsim->pdata;
+	uint32_t phytiming = 0, phytiming1 = 0, phytiming2 = 0, timeout = 0;
+	uint32_t hactive, vactive;
+	struct videomode *vmode = &dsim->vmode;
+	struct drm_display_mode mode;
+
+	key.bit_clk = DIV_ROUND_CLOSEST_ULL(dsim->bit_clk, 1000);
+
+	/* '1280x720@60Hz' mode with 2 data lanes
+	 * requires special fine tuning for DPHY
+	 * TIMING config according to the tests.
+	 */
+	if (dsim->lanes == 2) {
+		hactive = vmode->hactive;
+		vactive = vmode->vactive;
+
+		if (hactive == 1280 && vactive == 720) {
+			memset(&mode, 0x0, sizeof(mode));
+			drm_display_mode_from_videomode(vmode, &mode);
+
+			if (drm_mode_vrefresh(&mode) == 60)
+				key.bit_clk >>= 1;
+		}
+	}
+
+	match = bsearch(&key, pdata->dphy_timing, pdata->num_dphy_timing,
+			sizeof(struct sec_mipi_dsim_dphy_timing),
+			pdata->dphy_timing_cmp);
+	if (WARN_ON(!match))
+		return;
+
+	phytiming  |= PHYTIMING_SET_M_TLPXCTL(match->lpx)	|
+		      PHYTIMING_SET_M_THSEXITCTL(match->hs_exit);
+	dsim_write(dsim, phytiming, DSIM_PHYTIMING);
+
+	phytiming1 |= PHYTIMING1_SET_M_TCLKPRPRCTL(match->clk_prepare)	|
+		      PHYTIMING1_SET_M_TCLKZEROCTL(match->clk_zero)	|
+		      PHYTIMING1_SET_M_TCLKPOSTCTL(match->clk_post)	|
+		      PHYTIMING1_SET_M_TCLKTRAILCTL(match->clk_trail);
+	dsim_write(dsim, phytiming1, DSIM_PHYTIMING1);
+
+	phytiming2 |= PHYTIMING2_SET_M_THSPRPRCTL(match->hs_prepare)	|
+		      PHYTIMING2_SET_M_THSZEROCTL(match->hs_zero)	|
+		      PHYTIMING2_SET_M_THSTRAILCTL(match->hs_trail);
+	dsim_write(dsim, phytiming2, DSIM_PHYTIMING2);
+
+	timeout |= TIMEOUT_SET_BTAOUT(0xff)	|
+		   TIMEOUT_SET_LPDRTOUT(0xff);
+	dsim_write(dsim, timeout, DSIM_TIMEOUT);
+}
+
+static void sec_mipi_dsim_init_fifo_pointers(struct sec_mipi_dsim *dsim)
+{
+	uint32_t fifoctrl, fifo_ptrs;
+
+	fifoctrl = dsim_read(dsim, DSIM_FIFOCTRL);
+
+	fifo_ptrs = FIFOCTRL_NINITRX	|
+		    FIFOCTRL_NINITSFR	|
+		    FIFOCTRL_NINITI80	|
+		    FIFOCTRL_NINITSUB	|
+		    FIFOCTRL_NINITMAIN;
+
+	fifoctrl &= ~fifo_ptrs;
+	dsim_write(dsim, fifoctrl, DSIM_FIFOCTRL);
+	udelay(500);
+
+	fifoctrl |= fifo_ptrs;
+	dsim_write(dsim, fifoctrl, DSIM_FIFOCTRL);
+	udelay(500);
+}
+
+static void sec_mipi_dsim_config_clkctrl(struct sec_mipi_dsim *dsim)
+{
+	uint32_t clkctrl = 0, data_lanes_en;
+	uint32_t byte_clk, esc_prescaler;
+
+	clkctrl |= CLKCTRL_TXREQUESTHSCLK;
+
+	/* using 1.5Gbps PHY */
+	clkctrl |= CLKCTRL_DPHY_SEL_1P5G;
+
+	clkctrl |= CLKCTRL_ESCCLKEN;
+
+	clkctrl &= ~CLKCTRL_PLLBYPASS;
+
+	clkctrl |= CLKCTRL_BYTECLKSRC_DPHY_PLL;
+
+	clkctrl |= CLKCTRL_BYTECLKEN;
+
+	data_lanes_en = (0x1 << dsim->lanes) - 1;
+	clkctrl |= CLKCTRL_SET_LANEESCCLKEN(0x1 | data_lanes_en << 1);
+
+	/* calculate esc prescaler from byte clock:
+	 * EscClk = ByteClk / EscPrescaler;
+	 */
+	byte_clk = dsim->bit_clk >> 3;
+	esc_prescaler = DIV_ROUND_UP(byte_clk, MAX_ESC_CLK_FREQ);
+	clkctrl |= CLKCTRL_SET_ESCPRESCALER(esc_prescaler);
+
+	dsim_write(dsim, clkctrl, DSIM_CLKCTRL);
+}
+
+static void sec_mipi_dsim_set_standby(struct sec_mipi_dsim *dsim,
+				      bool standby)
+{
+	uint32_t mdresol = 0;
+
+	mdresol = dsim_read(dsim, DSIM_MDRESOL);
+
+	if (standby)
+		mdresol |= MDRESOL_MAINSTANDBY;
+	else
+		mdresol &= ~MDRESOL_MAINSTANDBY;
+
+	dsim_write(dsim, mdresol, DSIM_MDRESOL);
+}
+
+struct dsim_pll_pms *sec_mipi_dsim_calc_pmsk(struct sec_mipi_dsim *dsim)
+{
+	uint32_t p, m, s;
+	uint32_t best_p = 0, best_m = 0, best_s = 0;
+	uint32_t fin, fout;
+	uint32_t s_pow_2, raw_s;
+	uint64_t mfin, pfvco, pfout, psfout;
+	uint32_t delta, best_delta = ~0U;
+	struct dsim_pll_pms *pll_pms;
+	struct device *dev = dsim->dev;
+	const struct sec_mipi_dsim_plat_data *pdata = dsim->pdata;
+	struct sec_mipi_dsim_pll dpll = *pdata->dphy_pll;
+	struct sec_mipi_dsim_range *prange = &dpll.p;
+	struct sec_mipi_dsim_range *mrange = &dpll.m;
+	struct sec_mipi_dsim_range *srange = &dpll.s;
+	struct sec_mipi_dsim_range *krange = &dpll.k;
+	struct sec_mipi_dsim_range *fvco_range  = &dpll.fvco;
+	struct sec_mipi_dsim_range *fpref_range = &dpll.fpref;
+	struct sec_mipi_dsim_range pr_new = *prange;
+	struct sec_mipi_dsim_range sr_new = *srange;
+
+	pll_pms = devm_kzalloc(dev, sizeof(*pll_pms), GFP_KERNEL);
+	if (!pll_pms) {
+		dev_err(dev, "Unable to allocate 'pll_pms'\n");
+		return ERR_PTR(-ENOMEM);
+	}
+
+	fout = dsim->bit_clk;
+	fin  = dsim->pref_clk;
+
+	/* TODO: ignore 'k' for PMS calculation,
+	 * only use 'p', 'm' and 's' to generate
+	 * the requested PLL output clock.
+	 */
+	krange->min = 0;
+	krange->max = 0;
+
+	/* narrow 'p' range via 'Fpref' limitation:
+	 * Fpref : [2MHz ~ 30MHz] (Fpref = Fin / p)
+	 */
+	prange->min = max(prange->min, DIV_ROUND_UP(fin, fpref_range->max));
+	prange->max = min(prange->max, fin / fpref_range->min);
+
+	/* narrow 'm' range via 'Fvco' limitation:
+	 * Fvco: [1050MHz ~ 2100MHz] (Fvco = ((m + k / 65536) * Fin) / p)
+	 * So, m = Fvco * p / Fin and Fvco > Fin;
+	 */
+	pfvco = (uint64_t)fvco_range->min * prange->min;
+	mrange->min = max_t(uint32_t, mrange->min,
+			    DIV_ROUND_UP_ULL(pfvco, fin));
+	pfvco = (uint64_t)fvco_range->max * prange->max;
+	mrange->max = min_t(uint32_t, mrange->max,
+			    DIV_ROUND_UP_ULL(pfvco, fin));
+
+	dev_dbg(dev, "p: min = %u, max = %u, "
+		     "m: min = %u, max = %u, "
+		     "s: min = %u, max = %u\n",
+		prange->min, prange->max, mrange->min,
+		mrange->max, srange->min, srange->max);
+
+	/* first determine 'm', then can determine 'p', last determine 's' */
+	for (m = mrange->min; m <= mrange->max; m++) {
+		/* p = m * Fin / Fvco */
+		mfin = (uint64_t)m * fin;
+		pr_new.min = max_t(uint32_t, prange->min,
+				   DIV_ROUND_UP_ULL(mfin, fvco_range->max));
+		pr_new.max = min_t(uint32_t, prange->max,
+				   (mfin / fvco_range->min));
+
+		if (pr_new.max < pr_new.min || pr_new.min < prange->min)
+			continue;
+
+		for (p = pr_new.min; p <= pr_new.max; p++) {
+			/* s = order_pow_of_two((m * Fin) / (p * Fout)) */
+			pfout = (uint64_t)p * fout;
+			raw_s = DIV_ROUND_CLOSEST_ULL(mfin, pfout);
+
+			s_pow_2 = rounddown_pow_of_two(raw_s);
+			sr_new.min = max_t(uint32_t, srange->min,
+					   order_base_2(s_pow_2));
+
+			s_pow_2 = roundup_pow_of_two(DIV_ROUND_CLOSEST_ULL(mfin, pfout));
+			sr_new.max = min_t(uint32_t, srange->max,
+					   order_base_2(s_pow_2));
+
+			if (sr_new.max < sr_new.min || sr_new.min < srange->min)
+				continue;
+
+			for (s = sr_new.min; s <= sr_new.max; s++) {
+				/* fout = m * Fin / (p * 2^s) */
+				psfout = pfout * (1 << s);
+				delta = abs(psfout - mfin);
+				if (delta < best_delta) {
+					best_p = p;
+					best_m = m;
+					best_s = s;
+					best_delta = delta;
+				}
+			}
+		}
+	}
+
+	if (best_delta == ~0U) {
+		devm_kfree(dev, pll_pms);
+		return ERR_PTR(-EINVAL);
+	}
+
+	pll_pms->p = best_p;
+	pll_pms->m = best_m;
+	pll_pms->s = best_s;
+
+	dev_dbg(dev, "fout = %u, fin = %u, m = %u, "
+		     "p = %u, s = %u, best_delta = %u\n",
+		fout, fin, pll_pms->m, pll_pms->p, pll_pms->s, best_delta);
+
+	return pll_pms;
+}
+
+int sec_mipi_dsim_check_pll_out(void *driver_private,
+				const struct drm_display_mode *mode)
+{
+	int bpp;
+	uint32_t pix_clk, bit_clk;
+	struct sec_mipi_dsim *dsim = driver_private;
+	const struct sec_mipi_dsim_plat_data *pdata = dsim->pdata;
+	const struct dsim_hblank_par *hpar;
+	const struct dsim_pll_pms *pmsk;
+
+	bpp = mipi_dsi_pixel_format_to_bpp(dsim->format);
+	if (bpp < 0)
+		return -EINVAL;
+
+	pix_clk = mode->clock;
+	bit_clk = DIV_ROUND_UP(pix_clk * bpp, dsim->lanes);
+
+	if (bit_clk * 1000 > pdata->max_data_rate) {
+		dev_err(dsim->dev,
+			"reuest bit clk freq exceeds lane's maximum value\n");
+		return -EINVAL;
+	}
+
+	dsim->pix_clk = pix_clk;
+	dsim->bit_clk = bit_clk;
+	dsim->hpar = NULL;
+
+	pmsk = sec_mipi_dsim_calc_pmsk(dsim);
+	if (IS_ERR(pmsk)) {
+		dev_err(dsim->dev,
+			"failed to get pmsk for: fin = %u, fout = %u\n",
+			dsim->pref_clk, dsim->bit_clk);
+		return -EINVAL;
+	}
+
+	dsim->pms = PLLCTRL_SET_P(pmsk->p) |
+		    PLLCTRL_SET_M(pmsk->m) |
+		    PLLCTRL_SET_S(pmsk->s);
+
+	/* free 'dsim_pll_pms' structure data which is
+	 * allocated in 'sec_mipi_dsim_calc_pmsk()'.
+	 */
+	devm_kfree(dsim->dev, (void *)pmsk);
+
+	if (dsim->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) {
+		hpar = sec_mipi_dsim_get_hblank_par(mode->name,
+						    mode->vrefresh,
+						    dsim->lanes);
+		dsim->hpar = hpar;
+		if (!hpar)
+			dev_dbg(dsim->dev, "no pre-exist hpar can be used\n");
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL(sec_mipi_dsim_check_pll_out);
+
+static void sec_mipi_dsim_bridge_enable(struct drm_bridge *bridge)
+{
+	int ret;
+	struct sec_mipi_dsim *dsim = bridge->driver_private;
+
+	/* At this moment, the dsim bridge's preceding encoder has
+	 * already been enabled. So the dsim can be configed here
+	 */
+
+	/* config main display mode */
+	sec_mipi_dsim_set_main_mode(dsim);
+
+	/* config dsim dpi */
+	sec_mipi_dsim_config_dpi(dsim);
+
+	/* config dsim pll */
+	ret = sec_mipi_dsim_config_pll(dsim);
+	if (ret) {
+		dev_err(dsim->dev, "dsim pll config failed: %d\n", ret);
+		return;
+	}
+
+	/* config dphy timings */
+	sec_mipi_dsim_config_dphy(dsim);
+
+	/* initialize FIFO pointers */
+	sec_mipi_dsim_init_fifo_pointers(dsim);
+
+	/* prepare panel if exists */
+	if (dsim->panel) {
+		ret = drm_panel_prepare(dsim->panel);
+		if (unlikely(ret)) {
+			dev_err(dsim->dev, "panel prepare failed: %d\n", ret);
+			return;
+		}
+	}
+
+	/* config esc clock, byte clock and etc */
+	sec_mipi_dsim_config_clkctrl(dsim);
+
+	/* enable panel if exists */
+	if (dsim->panel) {
+		ret = drm_panel_enable(dsim->panel);
+		if (unlikely(ret)) {
+			dev_err(dsim->dev, "panel enable failed: %d\n", ret);
+			goto panel_unprepare;
+		}
+	}
+
+	/* enable data transfer of dsim */
+	sec_mipi_dsim_set_standby(dsim, true);
+
+	return;
+
+panel_unprepare:
+	ret = drm_panel_unprepare(dsim->panel);
+	if (unlikely(ret))
+		dev_err(dsim->dev, "panel unprepare failed: %d\n", ret);
+}
+
+static void sec_mipi_dsim_disable_clkctrl(struct sec_mipi_dsim *dsim)
+{
+	uint32_t clkctrl;
+
+	clkctrl = dsim_read(dsim, DSIM_CLKCTRL);
+
+	clkctrl &= ~CLKCTRL_TXREQUESTHSCLK;
+
+	clkctrl &= ~CLKCTRL_ESCCLKEN;
+
+	clkctrl &= ~CLKCTRL_BYTECLKEN;
+
+	dsim_write(dsim, clkctrl, DSIM_CLKCTRL);
+}
+
+static void sec_mipi_dsim_disable_pll(struct sec_mipi_dsim *dsim)
+{
+	uint32_t pllctrl;
+
+	pllctrl  = dsim_read(dsim, DSIM_PLLCTRL);
+
+	pllctrl &= ~PLLCTRL_PLLEN;
+
+	dsim_write(dsim, pllctrl, DSIM_PLLCTRL);
+}
+
+static void sec_mipi_dsim_bridge_disable(struct drm_bridge *bridge)
+{
+	int ret;
+	struct sec_mipi_dsim *dsim = bridge->driver_private;
+
+	/* disable panel if exists */
+	if (dsim->panel) {
+		ret = drm_panel_disable(dsim->panel);
+		if (unlikely(ret))
+			dev_err(dsim->dev, "panel disable failed: %d\n", ret);
+	}
+
+	/* disable data transfer of dsim */
+	sec_mipi_dsim_set_standby(dsim, false);
+
+	/* disable esc clock & byte clock */
+	sec_mipi_dsim_disable_clkctrl(dsim);
+
+	/* disable dsim pll */
+	sec_mipi_dsim_disable_pll(dsim);
+
+	/* unprepare panel if exists */
+	if (dsim->panel) {
+		ret = drm_panel_unprepare(dsim->panel);
+		if (unlikely(ret))
+			dev_err(dsim->dev, "panel unprepare failed: %d\n", ret);
+	}
+}
+
+static bool sec_mipi_dsim_bridge_mode_fixup(struct drm_bridge *bridge,
+					    const struct drm_display_mode *mode,
+					    struct drm_display_mode *adjusted_mode)
+{
+	int private_flags;
+	struct sec_mipi_dsim *dsim = bridge->driver_private;
+
+	/* Since mipi dsi cannot do color conversion,
+	 * so the pixel format output by mipi dsi should
+	 * be the same with the pixel format recieved by
+	 * mipi dsi. And the pixel format information needs
+	 * to be passed to CRTC to be checked with the CRTC
+	 * attached plane fb pixel format.
+	 */
+	switch (dsim->format) {
+	case MIPI_DSI_FMT_RGB888:
+		private_flags = MEDIA_BUS_FMT_RGB888_1X24;
+		break;
+	case MIPI_DSI_FMT_RGB666:
+		private_flags = MEDIA_BUS_FMT_RGB666_1X24_CPADHI;
+		break;
+	case MIPI_DSI_FMT_RGB666_PACKED:
+		private_flags = MEDIA_BUS_FMT_RGB666_1X18;
+		break;
+	case MIPI_DSI_FMT_RGB565:
+		private_flags = MEDIA_BUS_FMT_RGB565_1X16;
+		break;
+	default:
+		return false;
+	}
+
+	adjusted_mode->private_flags = private_flags;
+
+	/* the 'bus_flags' in connector's display_info is useless
+	 * for mipi dsim, since dsim only sends packets with no
+	 * polarities information in the packets. But the dsim
+	 * host has some polarities requirements for the CRTC:
+	 * dsim only can accpet active high Vsync, Hsync and DE
+	 * signals.
+	 */
+	if (adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC) {
+		adjusted_mode->flags &= ~DRM_MODE_FLAG_NHSYNC;
+		adjusted_mode->flags |= DRM_MODE_FLAG_PHSYNC;
+	}
+
+	if (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC) {
+		adjusted_mode->flags &= ~DRM_MODE_FLAG_NVSYNC;
+		adjusted_mode->flags |= DRM_MODE_FLAG_PVSYNC;
+	}
+
+	/* workaround for CEA standard mode "1280x720@60"
+	 * display on 4 data lanes with Non-burst with sync
+	 * pulse DSI mode, since use the standard horizontal
+	 * timings cannot display correctly. And this code
+	 * cannot be put into the dsim Bridge's mode_fixup,
+	 * since the DSI device lane number change always
+	 * happens after that.
+	 */
+	if (!strcmp(mode->name, "1280x720") &&
+	    mode->vrefresh == 60	    &&
+	    dsim->lanes == 4		    &&
+	    dsim->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) {
+		adjusted_mode->hsync_start += 2;
+		adjusted_mode->hsync_end   += 2;
+		adjusted_mode->htotal      += 2;
+	}
+
+	return true;
+}
+
+static void sec_mipi_dsim_bridge_mode_set(struct drm_bridge *bridge,
+					  const struct drm_display_mode *mode,
+					  const struct drm_display_mode *adjusted_mode)
+{
+	struct sec_mipi_dsim *dsim = bridge->driver_private;
+
+	/* This hook is called when the display pipe is completely
+	 * off. And since the pm runtime is implemented, the dsim
+	 * hardware cannot be accessed at this moment. So move all
+	 * the mode_set config to ->enable() hook.
+	 * And this hook is called only when 'mode_changed' is true,
+	 * so it is called not every time atomic commit.
+	 */
+
+	drm_display_mode_to_videomode(adjusted_mode, &dsim->vmode);
+}
+
+static const struct drm_bridge_funcs sec_mipi_dsim_bridge_funcs = {
+	.attach     = sec_mipi_dsim_bridge_attach,
+	.enable     = sec_mipi_dsim_bridge_enable,
+	.disable    = sec_mipi_dsim_bridge_disable,
+	.mode_set   = sec_mipi_dsim_bridge_mode_set,
+	.mode_fixup = sec_mipi_dsim_bridge_mode_fixup,
+};
+
+void sec_mipi_dsim_suspend(struct device *dev)
+{
+	struct sec_mipi_dsim *dsim = dev_get_drvdata(dev);
+
+	/* TODO: add dsim reset */
+
+	clk_disable_unprepare(dsim->clk_cfg);
+
+	clk_disable_unprepare(dsim->clk_pllref);
+}
+EXPORT_SYMBOL(sec_mipi_dsim_suspend);
+
+void sec_mipi_dsim_resume(struct device *dev)
+{
+	struct sec_mipi_dsim *dsim = dev_get_drvdata(dev);
+
+	clk_prepare_enable(dsim->clk_pllref);
+
+	clk_prepare_enable(dsim->clk_cfg);
+
+	sec_mipi_dsim_irq_init(dsim);
+
+	/* TODO: add dsim de-reset */
+}
+EXPORT_SYMBOL(sec_mipi_dsim_resume);
+
+static void __maybe_unused sec_mipi_dsim_irq_mask(struct sec_mipi_dsim *dsim,
+						  int irq_idx)
+{
+	uint32_t intmsk;
+
+	intmsk = dsim_read(dsim, DSIM_INTMSK);
+
+	switch (irq_idx) {
+	case PLLSTABLE:
+		intmsk |= INTMSK_MSKPLLSTABLE;
+		break;
+	case SWRSTRELEASE:
+		intmsk |= INTMSK_MSKSWRELEASE;
+		break;
+	case SFRPLFIFOEMPTY:
+		intmsk |= INTMSK_MSKSFRPLFIFOEMPTY;
+		break;
+	case SFRPHFIFOEMPTY:
+		intmsk |= INTMSK_MSKSFRPHFIFOEMPTY;
+		break;
+	case FRAMEDONE:
+		intmsk |= INTMSK_MSKFRAMEDONE;
+		break;
+	case LPDRTOUT:
+		intmsk |= INTMSK_MSKLPDRTOUT;
+		break;
+	case TATOUT:
+		intmsk |= INTMSK_MSKTATOUT;
+		break;
+	case RXDATDONE:
+		intmsk |= INTMSK_MSKRXDATDONE;
+		break;
+	case RXTE:
+		intmsk |= INTMSK_MSKRXTE;
+		break;
+	case RXACK:
+		intmsk |= INTMSK_MSKRXACK;
+		break;
+	default:
+		/* unsupported irq */
+		return;
+	}
+
+	writel(intmsk, dsim->base + DSIM_INTMSK);
+}
+
+static void sec_mipi_dsim_irq_unmask(struct sec_mipi_dsim *dsim,
+				     int irq_idx)
+{
+	uint32_t intmsk;
+
+	intmsk = dsim_read(dsim, DSIM_INTMSK);
+
+	switch (irq_idx) {
+	case PLLSTABLE:
+		intmsk &= ~INTMSK_MSKPLLSTABLE;
+		break;
+	case SWRSTRELEASE:
+		intmsk &= ~INTMSK_MSKSWRELEASE;
+		break;
+	case SFRPLFIFOEMPTY:
+		intmsk &= ~INTMSK_MSKSFRPLFIFOEMPTY;
+		break;
+	case SFRPHFIFOEMPTY:
+		intmsk &= ~INTMSK_MSKSFRPHFIFOEMPTY;
+		break;
+	case FRAMEDONE:
+		intmsk &= ~INTMSK_MSKFRAMEDONE;
+		break;
+	case LPDRTOUT:
+		intmsk &= ~INTMSK_MSKLPDRTOUT;
+		break;
+	case TATOUT:
+		intmsk &= ~INTMSK_MSKTATOUT;
+		break;
+	case RXDATDONE:
+		intmsk &= ~INTMSK_MSKRXDATDONE;
+		break;
+	case RXTE:
+		intmsk &= ~INTMSK_MSKRXTE;
+		break;
+	case RXACK:
+		intmsk &= ~INTMSK_MSKRXACK;
+		break;
+	default:
+		/* unsupported irq */
+		return;
+	}
+
+	dsim_write(dsim, intmsk, DSIM_INTMSK);
+}
+
+/* write 1 clear irq */
+static void sec_mipi_dsim_irq_clear(struct sec_mipi_dsim *dsim,
+				    int irq_idx)
+{
+	uint32_t intsrc = 0;
+
+	switch (irq_idx) {
+	case PLLSTABLE:
+		intsrc |= INTSRC_PLLSTABLE;
+		break;
+	case SWRSTRELEASE:
+		intsrc |= INTSRC_SWRSTRELEASE;
+		break;
+	case SFRPLFIFOEMPTY:
+		intsrc |= INTSRC_SFRPLFIFOEMPTY;
+		break;
+	case SFRPHFIFOEMPTY:
+		intsrc |= INTSRC_SFRPHFIFOEMPTY;
+		break;
+	case FRAMEDONE:
+		intsrc |= INTSRC_FRAMEDONE;
+		break;
+	case LPDRTOUT:
+		intsrc |= INTSRC_LPDRTOUT;
+		break;
+	case TATOUT:
+		intsrc |= INTSRC_TATOUT;
+		break;
+	case RXDATDONE:
+		intsrc |= INTSRC_RXDATDONE;
+		break;
+	case RXTE:
+		intsrc |= INTSRC_RXTE;
+		break;
+	case RXACK:
+		intsrc |= INTSRC_RXACK;
+		break;
+	default:
+		/* unsupported irq */
+		return;
+	}
+
+	dsim_write(dsim, intsrc, DSIM_INTSRC);
+}
+
+static void sec_mipi_dsim_irq_init(struct sec_mipi_dsim *dsim)
+{
+	sec_mipi_dsim_irq_unmask(dsim, PLLSTABLE);
+	sec_mipi_dsim_irq_unmask(dsim, SWRSTRELEASE);
+
+	if (dsim->panel) {
+		sec_mipi_dsim_irq_unmask(dsim, SFRPLFIFOEMPTY);
+		sec_mipi_dsim_irq_unmask(dsim, SFRPHFIFOEMPTY);
+		sec_mipi_dsim_irq_unmask(dsim, LPDRTOUT);
+		sec_mipi_dsim_irq_unmask(dsim, TATOUT);
+		sec_mipi_dsim_irq_unmask(dsim, RXDATDONE);
+		sec_mipi_dsim_irq_unmask(dsim, RXTE);
+		sec_mipi_dsim_irq_unmask(dsim, RXACK);
+	}
+}
+
+static irqreturn_t sec_mipi_dsim_irq_handler(int irq, void *data)
+{
+	uint32_t intsrc, status;
+	struct sec_mipi_dsim *dsim = data;
+
+	intsrc = dsim_read(dsim, DSIM_INTSRC);
+	status = dsim_read(dsim, DSIM_STATUS);
+
+	if (WARN_ON(!intsrc)) {
+		dev_err(dsim->dev, "interrupt is not from dsim\n");
+		return IRQ_NONE;
+	}
+
+	if (WARN_ON(!(intsrc & INTSRC_MASK))) {
+		dev_warn(dsim->dev, "unenable irq happens: %#x\n", intsrc);
+		/* just clear irqs */
+		dsim_write(dsim, intsrc, DSIM_INTSRC);
+		return IRQ_NONE;
+	}
+
+	if (intsrc & INTSRC_PLLSTABLE) {
+		WARN_ON(!(status & STATUS_PLLSTABLE));
+		sec_mipi_dsim_irq_clear(dsim, PLLSTABLE);
+		complete(&dsim->pll_stable);
+	}
+
+	if (intsrc & INTSRC_SWRSTRELEASE)
+		sec_mipi_dsim_irq_clear(dsim, SWRSTRELEASE);
+
+	if (intsrc & INTSRC_SFRPLFIFOEMPTY) {
+		sec_mipi_dsim_irq_clear(dsim, SFRPLFIFOEMPTY);
+		complete(&dsim->pl_tx_done);
+	}
+
+	if (intsrc & INTSRC_SFRPHFIFOEMPTY) {
+		sec_mipi_dsim_irq_clear(dsim, SFRPHFIFOEMPTY);
+		complete(&dsim->ph_tx_done);
+	}
+
+	if (WARN_ON(intsrc & INTSRC_LPDRTOUT)) {
+		sec_mipi_dsim_irq_clear(dsim, LPDRTOUT);
+		dev_warn(dsim->dev, "LP RX timeout\n");
+	}
+
+	if (WARN_ON(intsrc & INTSRC_TATOUT)) {
+		sec_mipi_dsim_irq_clear(dsim, TATOUT);
+		dev_warn(dsim->dev, "Turns around Acknowledge timeout\n");
+	}
+
+	if (intsrc & INTSRC_RXDATDONE) {
+		sec_mipi_dsim_irq_clear(dsim, RXDATDONE);
+		complete(&dsim->rx_done);
+	}
+
+	if (intsrc & INTSRC_RXTE) {
+		sec_mipi_dsim_irq_clear(dsim, RXTE);
+		dev_dbg(dsim->dev, "TE Rx trigger received\n");
+	}
+
+	if (intsrc & INTSRC_RXACK) {
+		sec_mipi_dsim_irq_clear(dsim, RXACK);
+		dev_dbg(dsim->dev, "ACK Rx trigger received\n");
+	}
+
+	return IRQ_HANDLED;
+}
+
+static int sec_mipi_dsim_connector_get_modes(struct drm_connector *connector)
+{
+	struct sec_mipi_dsim *dsim = conn_to_sec_mipi_dsim(connector);
+
+	if (WARN_ON(!dsim->panel))
+		return -ENODEV;
+
+	return drm_panel_get_modes(dsim->panel);
+}
+
+static const struct drm_connector_helper_funcs
+	sec_mipi_dsim_connector_helper_funcs = {
+	.get_modes = sec_mipi_dsim_connector_get_modes,
+};
+
+static enum drm_connector_status
+	sec_mipi_dsim_connector_detect(struct drm_connector *connector,
+				       bool force)
+{
+	/* TODO: add support later */
+
+	return connector_status_connected;
+}
+
+static const struct drm_connector_funcs sec_mipi_dsim_connector_funcs = {
+	.detect     = sec_mipi_dsim_connector_detect,
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.destroy    = drm_connector_cleanup,
+	.reset      = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state   = drm_atomic_helper_connector_destroy_state,
+};
+
+int sec_mipi_dsim_bind(struct device *dev, struct device *master, void *data,
+		       struct drm_encoder *encoder, struct resource *res,
+		       int irq, const struct sec_mipi_dsim_plat_data *pdata)
+{
+	int ret, version;
+	struct drm_device *drm_dev = data;
+	struct drm_bridge *bridge;
+	struct drm_connector *connector;
+	struct sec_mipi_dsim *dsim;
+	struct device_node *node = NULL;
+
+	dev_dbg(dev, "sec-dsim bridge bind begin\n");
+
+	dsim = devm_kzalloc(dev, sizeof(*dsim), GFP_KERNEL);
+	if (!dsim) {
+		dev_err(dev, "Unable to allocate 'dsim'\n");
+		return -ENOMEM;
+	}
+
+	dsim->dev = dev;
+	dsim->irq = irq;
+	dsim->pdata = pdata;
+	dsim->encoder = encoder;
+
+	dsim->dsi_host.ops = &sec_mipi_dsim_host_ops;
+	dsim->dsi_host.dev = dev;
+
+	dsim->base = devm_ioremap_resource(dev, res);
+	if (IS_ERR(dsim->base))
+		return PTR_ERR(dsim->base);
+
+	dsim->clk_pllref = devm_clk_get(dev, "pll-ref");
+	if (IS_ERR(dsim->clk_pllref)) {
+		ret = PTR_ERR(dsim->clk_pllref);
+		dev_err(dev, "Unable to get phy pll reference clock: %d\n", ret);
+		return ret;
+	}
+
+	dsim->clk_cfg = devm_clk_get(dev, "cfg");
+	if (IS_ERR(dsim->clk_cfg)) {
+		ret = PTR_ERR(dsim->clk_cfg);
+		dev_err(dev, "Unable to get configuration clock: %d\n", ret);
+		return ret;
+	}
+
+	dev_set_drvdata(dev, dsim);
+
+	pm_runtime_get_sync(dev);
+	version = dsim_read(dsim, DSIM_VERSION);
+	WARN_ON(version != pdata->version);
+	pm_runtime_put_sync(dev);
+
+	dev_info(dev, "version number is %#x\n", version);
+
+	/* set suitable rate for phy ref clock */
+	ret = sec_mipi_dsim_set_pref_rate(dsim);
+	if (ret) {
+		dev_err(dev, "failed to set pll ref clock rate\n");
+		return ret;
+	}
+
+	ret = devm_request_irq(dev, dsim->irq,
+			       sec_mipi_dsim_irq_handler,
+			       0, dev_name(dev), dsim);
+	if (ret) {
+		dev_err(dev, "failed to request dsim irq: %d\n", ret);
+		return ret;
+	}
+
+	init_completion(&dsim->pll_stable);
+	init_completion(&dsim->ph_tx_done);
+	init_completion(&dsim->pl_tx_done);
+	init_completion(&dsim->rx_done);
+
+	/* Initialize and attach sec dsim bridge */
+	bridge = devm_kzalloc(dev, sizeof(*bridge), GFP_KERNEL);
+	if (!bridge) {
+		dev_err(dev, "Unable to allocate 'bridge'\n");
+		return -ENOMEM;
+	}
+
+	/* mipi dsi host needs to be registered before bridge attach, since:
+	 * 1. Have Panel
+	 *    The 'mipi_dsi_host_register' will allocate a mipi_dsi_device
+	 *    if the dsi host node has a panel child node in DTB. And dsi
+	 *    host ->attach() will be called in panel's probe().
+	 *
+	 * 2. Have Bridge
+	 *    The dsi host ->attach() will be called through the below
+	 *    'drm_bridge_attach()' which will attach next bridge in a
+	 *    chain.
+	 */
+	ret = mipi_dsi_host_register(&dsim->dsi_host);
+	if (ret) {
+		dev_err(dev, "Unable to register mipi dsi host: %d\n", ret);
+		return ret;
+	}
+
+	dsim->bridge = bridge;
+	bridge->driver_private = dsim;
+	bridge->funcs = &sec_mipi_dsim_bridge_funcs;
+	bridge->of_node = dev->of_node;
+	bridge->encoder = encoder;
+
+	/* attach sec dsim bridge and its next bridge if exists */
+	ret = drm_bridge_attach(encoder, bridge, NULL);
+	if (ret) {
+		dev_err(dev, "Failed to attach bridge: %s\n", dev_name(dev));
+
+		/* no bridge exists, so defer probe to wait
+		 * panel driver loading
+		 */
+		if (ret != -EPROBE_DEFER) {
+			for_each_available_child_of_node(dev->of_node, node) {
+				/* skip nodes without reg property */
+				if (!of_find_property(node, "reg", NULL))
+					continue;
+
+				/* error codes only ENODEV or EPROBE_DEFER */
+				dsim->panel = of_drm_find_panel(node);
+				if (!IS_ERR(dsim->panel))
+					goto panel;
+
+				ret = PTR_ERR(dsim->panel);
+			}
+		}
+
+		mipi_dsi_host_unregister(&dsim->dsi_host);
+		return ret;
+	}
+
+panel:
+	if (dsim->panel) {
+		/* A panel has been attached */
+		connector = &dsim->connector;
+
+		drm_connector_helper_add(connector,
+					 &sec_mipi_dsim_connector_helper_funcs);
+		ret = drm_connector_init(drm_dev, connector,
+					 &sec_mipi_dsim_connector_funcs,
+					 DRM_MODE_CONNECTOR_DSI);
+		if (ret)
+			goto host_unregister;
+
+		/* TODO */
+		connector->dpms = DRM_MODE_DPMS_OFF;
+
+		ret = drm_connector_attach_encoder(connector, encoder);
+		if (ret)
+			goto cleanup_connector;
+
+		ret = drm_panel_attach(dsim->panel, connector);
+		if (ret)
+			goto cleanup_connector;
+	}
+
+	dev_dbg(dev, "sec-dsim bridge bind end\n");
+
+	return 0;
+
+cleanup_connector:
+	drm_connector_cleanup(connector);
+host_unregister:
+	mipi_dsi_host_unregister(&dsim->dsi_host);
+	return ret;
+}
+EXPORT_SYMBOL(sec_mipi_dsim_bind);
+
+void sec_mipi_dsim_unbind(struct device *dev, struct device *master, void *data)
+{
+	struct sec_mipi_dsim *dsim = dev_get_drvdata(dev);
+
+	if (dsim->panel) {
+		drm_panel_detach(dsim->panel);
+		drm_connector_cleanup(&dsim->connector);
+	}
+
+	mipi_dsi_host_unregister(&dsim->dsi_host);
+}
+EXPORT_SYMBOL(sec_mipi_dsim_unbind);
+
+MODULE_DESCRIPTION("Samsung MIPI DSI Host Controller bridge driver");
+MODULE_AUTHOR("Fancy Fang <chen.fang@nxp.com>");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/sil-sii8620.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/sil-sii8620.c
@@ -177,7 +177,7 @@
 
 static u8 sii8620_readb(struct sii8620 *ctx, u16 addr)
 {
-	u8 ret;
+	u8 ret = 0;
 
 	sii8620_read_buf(ctx, addr, &ret, 1);
 	return ret;
@@ -604,7 +604,7 @@
 	u8 *buf = &ctx->burst.tx_buf[ctx->burst.tx_count];
 	int size = len + 2;
 
-	if (ctx->burst.tx_count + size > ARRAY_SIZE(ctx->burst.tx_buf)) {
+	if (ctx->burst.tx_count + size >= ARRAY_SIZE(ctx->burst.tx_buf)) {
 		dev_err(ctx->dev, "TX-BLK buffer exhausted\n");
 		ctx->error = -EINVAL;
 		return NULL;
@@ -621,7 +621,7 @@
 	u8 *buf = &ctx->burst.rx_buf[ctx->burst.rx_count];
 	int size = len + 1;
 
-	if (ctx->burst.tx_count + size > ARRAY_SIZE(ctx->burst.tx_buf)) {
+	if (ctx->burst.rx_count + size >= ARRAY_SIZE(ctx->burst.rx_buf)) {
 		dev_err(ctx->dev, "RX-BLK buffer exhausted\n");
 		ctx->error = -EINVAL;
 		return NULL;
@@ -985,7 +985,7 @@
 
 static void sii8620_stop_video(struct sii8620 *ctx)
 {
-	u8 uninitialized_var(val);
+	u8 val;
 
 	sii8620_write_seq_static(ctx,
 		REG_TPI_INTR_EN, 0,
@@ -2118,7 +2118,7 @@
 	if (ret) {
 		dev_err(ctx->dev, "Failed to register RC device\n");
 		ctx->error = ret;
-		rc_free_device(ctx->rc_dev);
+		rc_free_device(rc_dev);
 		return;
 	}
 	ctx->rc_dev = rc_dev;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/Kconfig
@@ -25,6 +25,17 @@
 	  Support the I2S Audio interface which is part of the Synopsys
 	  Designware HDMI block.
 
+config DRM_DW_HDMI_GP_AUDIO
+	tristate "Synopsys Designware GP Audio interface"
+	depends on DRM_DW_HDMI && SND
+	select SND_PCM
+	select SND_PCM_ELD
+	select SND_PCM_IEC958
+	help
+	  Support the GP Audio interface which is part of the Synopsys
+	  Designware HDMI block.  This is used in conjunction with
+	  the i.MX865 HDMI driver.
+
 config DRM_DW_HDMI_CEC
 	tristate "Synopsis Designware CEC interface"
 	depends on DRM_DW_HDMI
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-$(CONFIG_DRM_DW_HDMI) += dw-hdmi.o
 obj-$(CONFIG_DRM_DW_HDMI_AHB_AUDIO) += dw-hdmi-ahb-audio.o
+obj-$(CONFIG_DRM_DW_HDMI_GP_AUDIO) += dw-hdmi-gp-audio.o
 obj-$(CONFIG_DRM_DW_HDMI_I2S_AUDIO) += dw-hdmi-i2s-audio.o
 obj-$(CONFIG_DRM_DW_HDMI_CEC) += dw-hdmi-cec.o
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
@@ -18,6 +18,8 @@
 
 #include "dw-hdmi-cec.h"
 
+static u8 cec_saved_regs[5];
+
 enum {
 	HDMI_IH_CEC_STAT0	= 0x0106,
 	HDMI_IH_MUTE_CEC_STAT0	= 0x0186,
@@ -308,11 +310,44 @@
 	return 0;
 }
 
+static int __maybe_unused dw_hdmi_cec_resume(struct device *dev)
+{
+	struct dw_hdmi_cec *cec = dev_get_drvdata(dev);
+
+	/* Restore logical address and interrupt status/mask register */
+	dw_hdmi_write(cec, cec_saved_regs[0], HDMI_CEC_ADDR_L);
+	dw_hdmi_write(cec, cec_saved_regs[1], HDMI_CEC_ADDR_H);
+	dw_hdmi_write(cec, cec_saved_regs[2], HDMI_CEC_POLARITY);
+	dw_hdmi_write(cec, cec_saved_regs[3], HDMI_CEC_MASK);
+	dw_hdmi_write(cec, cec_saved_regs[4], HDMI_IH_MUTE_CEC_STAT0);
+
+	return 0;
+}
+
+static int __maybe_unused dw_hdmi_cec_suspend(struct device *dev)
+{
+	struct dw_hdmi_cec *cec = dev_get_drvdata(dev);
+
+	/* store logical address and interrupt status/mask register */
+	cec_saved_regs[0] = dw_hdmi_read(cec, HDMI_CEC_ADDR_L);
+	cec_saved_regs[1] = dw_hdmi_read(cec, HDMI_CEC_ADDR_H);
+	cec_saved_regs[2] = dw_hdmi_read(cec, HDMI_CEC_POLARITY);
+	cec_saved_regs[3] = dw_hdmi_read(cec, HDMI_CEC_MASK);
+	cec_saved_regs[4] = dw_hdmi_read(cec, HDMI_IH_MUTE_CEC_STAT0);
+
+	return 0;
+}
+
+static const struct dev_pm_ops dw_hdmi_cec_pm = {
+	SET_SYSTEM_SLEEP_PM_OPS(dw_hdmi_cec_suspend, dw_hdmi_cec_resume)
+};
+
 static struct platform_driver dw_hdmi_cec_driver = {
 	.probe	= dw_hdmi_cec_probe,
 	.remove	= dw_hdmi_cec_remove,
 	.driver = {
 		.name = "dw-hdmi-cec",
+		.pm = &dw_hdmi_cec_pm,
 	},
 };
 module_platform_driver(dw_hdmi_cec_driver);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c
@@ -0,0 +1,194 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// Copyright 2020 NXP
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/dmaengine.h>
+#include <linux/dma-mapping.h>
+#include <drm/bridge/dw_hdmi.h>
+#include <drm/drm_edid.h>
+#include <drm/drm_connector.h>
+
+#include <sound/hdmi-codec.h>
+#include <sound/asoundef.h>
+#include <sound/core.h>
+#include <sound/initval.h>
+#include <sound/pcm.h>
+#include <sound/pcm_drm_eld.h>
+#include <sound/pcm_iec958.h>
+#include <sound/dmaengine_pcm.h>
+
+#include "dw-hdmi-audio.h"
+
+#define DRIVER_NAME "dw-hdmi-gp-audio"
+#define DRV_NAME    "hdmi-gp-audio"
+
+struct snd_dw_hdmi {
+	struct dw_hdmi_audio_data data;
+	struct platform_device  *audio_pdev;
+	unsigned int pos;
+};
+
+struct dw_hdmi_channel_conf {
+	u8 conf1;
+	u8 ca;
+};
+
+/*
+ * The default mapping of ALSA channels to HDMI channels and speaker
+ * allocation bits.  Note that we can't do channel remapping here -
+ * channels must be in the same order.
+ *
+ * Mappings for alsa-lib pcm/surround*.conf files:
+ *
+ *		Front	Sur4.0	Sur4.1	Sur5.0	Sur5.1	Sur7.1
+ * Channels	2	4	6	6	6	8
+ *
+ * Our mapping from ALSA channel to CEA686D speaker name and HDMI channel:
+ *
+ *				Number of ALSA channels
+ * ALSA Channel	2	3	4	5	6	7	8
+ * 0		FL:0	=	=	=	=	=	=
+ * 1		FR:1	=	=	=	=	=	=
+ * 2			FC:3	RL:4	LFE:2	=	=	=
+ * 3				RR:5	RL:4	FC:3	=	=
+ * 4					RR:5	RL:4	=	=
+ * 5						RR:5	=	=
+ * 6							RC:6	=
+ * 7							RLC/FRC	RLC/FRC
+ */
+static struct dw_hdmi_channel_conf default_hdmi_channel_config[7] = {
+	{ 0x03, 0x00 },	/* FL,FR */
+	{ 0x0b, 0x02 },	/* FL,FR,FC */
+	{ 0x33, 0x08 },	/* FL,FR,RL,RR */
+	{ 0x37, 0x09 },	/* FL,FR,LFE,RL,RR */
+	{ 0x3f, 0x0b },	/* FL,FR,LFE,FC,RL,RR */
+	{ 0x7f, 0x0f },	/* FL,FR,LFE,FC,RL,RR,RC */
+	{ 0xff, 0x13 },	/* FL,FR,LFE,FC,RL,RR,[FR]RC,[FR]LC */
+};
+
+static int audio_hw_params(struct device *dev,  void *data,
+			   struct hdmi_codec_daifmt *daifmt,
+			   struct hdmi_codec_params *params)
+{
+	struct snd_dw_hdmi *dw = dev_get_drvdata(dev);
+	int ret = 0;
+	u8 ca;
+
+	dw_hdmi_set_sample_rate(dw->data.hdmi, params->sample_rate);
+
+	ca = default_hdmi_channel_config[params->channels - 2].ca;
+
+	dw_hdmi_set_channel_count(dw->data.hdmi, params->channels);
+	dw_hdmi_set_channel_allocation(dw->data.hdmi, ca);
+
+	dw_hdmi_set_sample_non_pcm(dw->data.hdmi,
+				   params->iec.status[0] & IEC958_AES0_NONAUDIO);
+	dw_hdmi_set_sample_width(dw->data.hdmi, params->sample_width);
+
+	return ret;
+}
+
+static void audio_shutdown(struct device *dev, void *data)
+{
+}
+
+static int audio_digital_mute(struct device *dev, void *data,
+			      bool enable)
+{
+	struct snd_dw_hdmi *dw = dev_get_drvdata(dev);
+	int ret = 0;
+
+	if (!enable)
+		dw_hdmi_audio_enable(dw->data.hdmi);
+	else
+		dw_hdmi_audio_disable(dw->data.hdmi);
+
+	return ret;
+}
+
+static int audio_get_eld(struct device *dev, void *data,
+			 u8 *buf, size_t len)
+{
+	struct snd_dw_hdmi *dw = dev_get_drvdata(dev);
+
+	memcpy(buf, dw->data.eld, min_t(size_t, MAX_ELD_BYTES, len));
+
+	return 0;
+}
+
+static int audio_hook_plugged_cb(struct device *dev, void *data,
+				 hdmi_codec_plugged_cb fn,
+				 struct device *codec_dev)
+{
+	struct snd_dw_hdmi *dw = dev_get_drvdata(dev);
+
+	return dw_hdmi_set_plugged_cb(dw->data.hdmi, fn, codec_dev);
+}
+
+static const struct hdmi_codec_ops audio_codec_ops = {
+	.hw_params = audio_hw_params,
+	.audio_shutdown = audio_shutdown,
+	.digital_mute = audio_digital_mute,
+	.get_eld = audio_get_eld,
+	.hook_plugged_cb = audio_hook_plugged_cb,
+};
+
+static int snd_dw_hdmi_probe(struct platform_device *pdev)
+{
+	const struct dw_hdmi_audio_data *data = pdev->dev.platform_data;
+	struct snd_dw_hdmi *dw;
+
+	struct hdmi_codec_pdata codec_data = {
+		.i2s = 1,
+		.spdif = 0,
+		.ops = &audio_codec_ops,
+		.max_i2s_channels = 8,
+	};
+
+	dw = devm_kzalloc(&pdev->dev, sizeof(*dw), GFP_KERNEL);
+	if (!dw)
+		return -ENOMEM;
+
+	dw->data = *data;
+
+	platform_set_drvdata(pdev, dw);
+
+	dw->audio_pdev = platform_device_register_data(&pdev->dev,
+						       HDMI_CODEC_DRV_NAME, 1,
+						       &codec_data,
+						       sizeof(codec_data));
+
+	return PTR_ERR_OR_ZERO(dw->audio_pdev);
+}
+
+static int snd_dw_hdmi_remove(struct platform_device *pdev)
+{
+	struct snd_dw_hdmi *dw = platform_get_drvdata(pdev);
+
+	platform_device_unregister(dw->audio_pdev);
+
+	return 0;
+}
+
+static struct platform_driver snd_dw_hdmi_driver = {
+	.probe	= snd_dw_hdmi_probe,
+	.remove	= snd_dw_hdmi_remove,
+	.driver	= {
+		.name = DRIVER_NAME,
+	},
+};
+
+module_platform_driver(snd_dw_hdmi_driver);
+
+MODULE_AUTHOR("Shengjiu Wang <shengjiu.wang@nxp.com>");
+MODULE_DESCRIPTION("Synopsis Designware HDMI GPA ALSA interface");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
@@ -151,11 +151,22 @@
 	return -EINVAL;
 }
 
+static int dw_hdmi_i2s_hook_plugged_cb(struct device *dev, void *data,
+				       hdmi_codec_plugged_cb fn,
+				       struct device *codec_dev)
+{
+	struct dw_hdmi_i2s_audio_data *audio = data;
+	struct dw_hdmi *hdmi = audio->hdmi;
+
+	return dw_hdmi_set_plugged_cb(hdmi, fn, codec_dev);
+}
+
 static struct hdmi_codec_ops dw_hdmi_i2s_ops = {
 	.hw_params	= dw_hdmi_i2s_hw_params,
 	.audio_shutdown	= dw_hdmi_i2s_audio_shutdown,
 	.get_eld	= dw_hdmi_i2s_get_eld,
 	.get_dai_id	= dw_hdmi_i2s_get_dai_id,
+	.hook_plugged_cb = dw_hdmi_i2s_hook_plugged_cb,
 };
 
 static int snd_dw_hdmi_probe(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -36,6 +36,7 @@
 #include "dw-hdmi-cec.h"
 #include "dw-hdmi.h"
 
+#define DDC_CI_ADDR		0x37
 #define DDC_SEGMENT_ADDR	0x30
 
 #define HDMI_EDID_LEN		512
@@ -179,7 +180,10 @@
 
 	spinlock_t audio_lock;
 	struct mutex audio_mutex;
+	unsigned int sample_non_pcm;
+	unsigned int sample_width;
 	unsigned int sample_rate;
+	unsigned int channels;
 	unsigned int audio_cts;
 	unsigned int audio_n;
 	bool audio_enable;
@@ -191,6 +195,10 @@
 
 	struct mutex cec_notifier_mutex;
 	struct cec_notifier *cec_notifier;
+
+	hdmi_codec_plugged_cb plugged_cb;
+	struct device *codec_dev;
+	enum drm_connector_status last_connector_result;
 };
 
 #define HDMI_IH_PHY_STAT0_RX_SENSE \
@@ -215,6 +223,28 @@
 	return val;
 }
 
+static void handle_plugged_change(struct dw_hdmi *hdmi, bool plugged)
+{
+	if (hdmi->plugged_cb && hdmi->codec_dev)
+		hdmi->plugged_cb(hdmi->codec_dev, plugged);
+}
+
+int dw_hdmi_set_plugged_cb(struct dw_hdmi *hdmi, hdmi_codec_plugged_cb fn,
+			   struct device *codec_dev)
+{
+	bool plugged;
+
+	mutex_lock(&hdmi->mutex);
+	hdmi->plugged_cb = fn;
+	hdmi->codec_dev = codec_dev;
+	plugged = hdmi->last_connector_result == connector_status_connected;
+	handle_plugged_change(hdmi, plugged);
+	mutex_unlock(&hdmi->mutex);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(dw_hdmi_set_plugged_cb);
+
 static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg)
 {
 	regmap_update_bits(hdmi->regm, reg << hdmi->reg_shift, mask, data);
@@ -398,6 +428,15 @@
 	u8 addr = msgs[0].addr;
 	int i, ret = 0;
 
+	if (addr == DDC_CI_ADDR)
+		/*
+		 * The internal I2C controller does not support the multi-byte
+		 * read and write operations needed for DDC/CI.
+		 * TOFIX: Blacklist the DDC/CI address until we filter out
+		 * unsupported I2C operations.
+		 */
+		return -EOPNOTSUPP;
+
 	dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr);
 
 	for (i = 0; i < num; i++) {
@@ -542,6 +581,8 @@
 			n = 4096;
 		else if (pixel_clk == 74176000 || pixel_clk == 148352000)
 			n = 11648;
+		else if (pixel_clk == 297000000)
+			n = 3072;
 		else
 			n = 4096;
 		n *= mult;
@@ -554,6 +595,8 @@
 			n = 17836;
 		else if (pixel_clk == 148352000)
 			n = 8918;
+		else if (pixel_clk == 297000000)
+			n = 4704;
 		else
 			n = 6272;
 		n *= mult;
@@ -568,6 +611,8 @@
 			n = 11648;
 		else if (pixel_clk == 148352000)
 			n = 5824;
+		else if (pixel_clk == 297000000)
+			n = 5120;
 		else
 			n = 6144;
 		n *= mult;
@@ -593,7 +638,7 @@
 	config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID);
 
 	/* Only compute CTS when using internal AHB audio */
-	if (config3 & HDMI_CONFIG3_AHBAUDDMA) {
+	if ((config3 & HDMI_CONFIG3_AHBAUDDMA) || (config3 & HDMI_CONFIG3_GPAUD)) {
 		/*
 		 * Compute the CTS value from the N value.  Note that CTS and N
 		 * can be up to 20 bits in total, so we need 64-bit math.  Also
@@ -635,6 +680,22 @@
 	mutex_unlock(&hdmi->audio_mutex);
 }
 
+void dw_hdmi_set_sample_width(struct dw_hdmi *hdmi, unsigned int width)
+{
+	mutex_lock(&hdmi->audio_mutex);
+	hdmi->sample_width = width;
+	mutex_unlock(&hdmi->audio_mutex);
+}
+EXPORT_SYMBOL_GPL(dw_hdmi_set_sample_width);
+
+void dw_hdmi_set_sample_non_pcm(struct dw_hdmi *hdmi, unsigned int non_pcm)
+{
+	mutex_lock(&hdmi->audio_mutex);
+	hdmi->sample_non_pcm = non_pcm;
+	mutex_unlock(&hdmi->audio_mutex);
+}
+EXPORT_SYMBOL_GPL(dw_hdmi_set_sample_non_pcm);
+
 void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate)
 {
 	mutex_lock(&hdmi->audio_mutex);
@@ -650,6 +711,7 @@
 	u8 layout;
 
 	mutex_lock(&hdmi->audio_mutex);
+	hdmi->channels = cnt;
 
 	/*
 	 * For >2 channel PCM audio, we need to select layout 1
@@ -690,6 +752,87 @@
 	hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
 }
 
+static void dw_hdmi_gp_audio_enable(struct dw_hdmi *hdmi)
+{
+	int sample_freq = 0x2, org_sample_freq = 0xD;
+	int ch_mask = BIT(hdmi->channels) - 1;
+
+	switch (hdmi->sample_rate) {
+	case 32000:
+		sample_freq = 0x03;
+		org_sample_freq = 0x0C;
+		break;
+	case 44100:
+		sample_freq = 0x00;
+		org_sample_freq = 0x0F;
+		break;
+	case 48000:
+		sample_freq = 0x02;
+		org_sample_freq = 0x0D;
+		break;
+	case 88200:
+		sample_freq = 0x08;
+		org_sample_freq = 0x07;
+		break;
+	case 96000:
+		sample_freq = 0x0A;
+		org_sample_freq = 0x05;
+		break;
+	case 176400:
+		sample_freq = 0x0C;
+		org_sample_freq = 0x03;
+		break;
+	case 192000:
+		sample_freq = 0x0E;
+		org_sample_freq = 0x01;
+		break;
+	default:
+		break;
+        }
+
+	hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n);
+	hdmi_enable_audio_clk(hdmi, true);
+
+	hdmi_writeb(hdmi, 0x1, HDMI_FC_AUDSCHNL0);
+	hdmi_writeb(hdmi, hdmi->channels, HDMI_FC_AUDSCHNL2);
+	hdmi_writeb(hdmi, 0x22, HDMI_FC_AUDSCHNL3);
+	hdmi_writeb(hdmi, 0x22, HDMI_FC_AUDSCHNL4);
+	hdmi_writeb(hdmi, 0x11, HDMI_FC_AUDSCHNL5);
+	hdmi_writeb(hdmi, 0x11, HDMI_FC_AUDSCHNL6);
+	hdmi_writeb(hdmi, (0x3 << 4) | sample_freq, HDMI_FC_AUDSCHNL7);
+	hdmi_writeb(hdmi, (org_sample_freq << 4) | 0xb, HDMI_FC_AUDSCHNL8);
+
+	hdmi_writeb(hdmi, ch_mask, HDMI_GP_CONF1);
+	hdmi_writeb(hdmi, 0x02, HDMI_GP_CONF2);
+	hdmi_writeb(hdmi, 0x01, HDMI_GP_CONF0);
+
+	hdmi_modb(hdmi,  0x3, 0x3, HDMI_FC_DATAUTO3);
+
+	/* hbr */
+	if (hdmi->sample_rate == 192000 && hdmi->channels == 8 &&
+	    hdmi->sample_width == 32 && hdmi->sample_non_pcm) {
+		hdmi_modb(hdmi, 0x01, 0x01, HDMI_GP_CONF2);
+	}
+
+	if (hdmi->phy.ops->enable_audio)
+		hdmi->phy.ops->enable_audio(hdmi, hdmi->phy.data,
+					    hdmi->channels,
+					    hdmi->sample_width,
+					    hdmi->sample_rate,
+					    hdmi->sample_non_pcm);
+}
+
+static void dw_hdmi_gp_audio_disable(struct dw_hdmi *hdmi)
+{
+	hdmi_set_cts_n(hdmi, hdmi->audio_cts, 0);
+
+	hdmi_modb(hdmi,  0, 0x3, HDMI_FC_DATAUTO3);
+	if (hdmi->phy.ops->disable_audio)
+		hdmi->phy.ops->disable_audio(hdmi, hdmi->phy.data);
+
+	hdmi_enable_audio_clk(hdmi, false);
+}
+
 static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi)
 {
 	hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n);
@@ -1069,6 +1212,14 @@
 		HDMI_VP_PR_CD_DESIRED_PR_FACTOR_MASK);
 	hdmi_writeb(hdmi, val, HDMI_VP_PR_CD);
 
+	val = hdmi_readb(hdmi, HDMI_FC_DATAUTO3);
+	if (color_depth == 4)
+		/* disable Auto GCP when bpp 24 */
+		val &= ~0x4;
+	else
+		val |= 0x4;
+	hdmi_writeb(hdmi, val, HDMI_FC_DATAUTO3);
+
 	hdmi_modb(hdmi, HDMI_VP_STUFF_PR_STUFFING_STUFFING_MODE,
 		  HDMI_VP_STUFF_PR_STUFFING_MASK, HDMI_VP_STUFF);
 
@@ -1268,11 +1419,19 @@
 
 void dw_hdmi_phy_reset(struct dw_hdmi *hdmi)
 {
+	/* PHY reset. The reset signal is active high on Gen1 PHYs. */
+	hdmi_writeb(hdmi, 0, HDMI_MC_PHYRSTZ);
+	hdmi_writeb(hdmi, HDMI_MC_PHYRSTZ_PHYRSTZ, HDMI_MC_PHYRSTZ);
+}
+EXPORT_SYMBOL_GPL(dw_hdmi_phy_reset);
+
+void dw_hdmi_phy_gen2_reset(struct dw_hdmi *hdmi)
+{
 	/* PHY reset. The reset signal is active high on Gen2 PHYs. */
 	hdmi_writeb(hdmi, HDMI_MC_PHYRSTZ_PHYRSTZ, HDMI_MC_PHYRSTZ);
 	hdmi_writeb(hdmi, 0, HDMI_MC_PHYRSTZ);
 }
-EXPORT_SYMBOL_GPL(dw_hdmi_phy_reset);
+EXPORT_SYMBOL_GPL(dw_hdmi_phy_gen2_reset);
 
 void dw_hdmi_phy_i2c_set_addr(struct dw_hdmi *hdmi, u8 address)
 {
@@ -1425,7 +1584,7 @@
 	if (phy->has_svsret)
 		dw_hdmi_phy_enable_svsret(hdmi, 1);
 
-	dw_hdmi_phy_reset(hdmi);
+	dw_hdmi_phy_gen2_reset(hdmi);
 
 	hdmi_writeb(hdmi, HDMI_MC_HEACPHY_RST_ASSERT, HDMI_MC_HEACPHY_RST);
 
@@ -1566,28 +1725,34 @@
 		frame.colorspace = HDMI_COLORSPACE_RGB;
 
 	/* Set up colorimetry */
-	switch (hdmi->hdmi_data.enc_out_encoding) {
-	case V4L2_YCBCR_ENC_601:
-		if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV601)
-			frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
-		else
+	if (!hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format)) {
+		switch (hdmi->hdmi_data.enc_out_encoding) {
+		case V4L2_YCBCR_ENC_601:
+			if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV601)
+				frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
+			else
+				frame.colorimetry = HDMI_COLORIMETRY_ITU_601;
+			frame.extended_colorimetry =
+					HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
+			break;
+		case V4L2_YCBCR_ENC_709:
+			if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV709)
+				frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
+			else
+				frame.colorimetry = HDMI_COLORIMETRY_ITU_709;
+			frame.extended_colorimetry =
+					HDMI_EXTENDED_COLORIMETRY_XV_YCC_709;
+			break;
+		default: /* Carries no data */
 			frame.colorimetry = HDMI_COLORIMETRY_ITU_601;
+			frame.extended_colorimetry =
+					HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
+			break;
+		}
+	} else {
+		frame.colorimetry = HDMI_COLORIMETRY_NONE;
 		frame.extended_colorimetry =
-				HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
-		break;
-	case V4L2_YCBCR_ENC_709:
-		if (hdmi->hdmi_data.enc_in_encoding == V4L2_YCBCR_ENC_XV709)
-			frame.colorimetry = HDMI_COLORIMETRY_EXTENDED;
-		else
-			frame.colorimetry = HDMI_COLORIMETRY_ITU_709;
-		frame.extended_colorimetry =
-				HDMI_EXTENDED_COLORIMETRY_XV_YCC_709;
-		break;
-	default: /* Carries no data */
-		frame.colorimetry = HDMI_COLORIMETRY_ITU_601;
-		frame.extended_colorimetry =
-				HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
-		break;
+			HDMI_EXTENDED_COLORIMETRY_XV_YCC_601;
 	}
 
 	frame.scan_mode = HDMI_SCAN_MODE_NONE;
@@ -2023,7 +2188,7 @@
 
 		/* HDMI Initialization Step E - Configure audio */
 		hdmi_clk_regenerator_update_pixel_clock(hdmi);
-		hdmi_enable_audio_clk(hdmi, true);
+		hdmi_enable_audio_clk(hdmi, hdmi->audio_enable);
 	}
 
 	/* not for DVI mode */
@@ -2161,6 +2326,7 @@
 {
 	struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
 					     connector);
+	enum drm_connector_status result;
 
 	mutex_lock(&hdmi->mutex);
 	hdmi->force = DRM_FORCE_UNSPECIFIED;
@@ -2168,7 +2334,18 @@
 	dw_hdmi_update_phy_mask(hdmi);
 	mutex_unlock(&hdmi->mutex);
 
-	return hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data);
+	result = hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data);
+
+	mutex_lock(&hdmi->mutex);
+	if (result != hdmi->last_connector_result) {
+		dev_dbg(hdmi->dev, "read_hpd result: %d", result);
+		handle_plugged_change(hdmi,
+				      result == connector_status_connected);
+		hdmi->last_connector_result = result;
+	}
+	mutex_unlock(&hdmi->mutex);
+
+	return result;
 }
 
 static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
@@ -2615,10 +2792,12 @@
 	hdmi->plat_data = plat_data;
 	hdmi->dev = dev;
 	hdmi->sample_rate = 48000;
+	hdmi->channels = 2;
 	hdmi->disabled = true;
 	hdmi->rxsense = true;
 	hdmi->phy_mask = (u8)~(HDMI_PHY_HPD | HDMI_PHY_RX_SENSE);
 	hdmi->mc_clkdis = 0x7f;
+	hdmi->last_connector_result = connector_status_disconnected;
 
 	mutex_init(&hdmi->mutex);
 	mutex_init(&hdmi->audio_mutex);
@@ -2829,6 +3008,24 @@
 		pdevinfo.data = &audio;
 		pdevinfo.size_data = sizeof(audio);
 		pdevinfo.dma_mask = DMA_BIT_MASK(32);
+		hdmi->audio = platform_device_register_full(&pdevinfo);
+	} else if (iores && config3 & HDMI_CONFIG3_GPAUD) {
+		struct dw_hdmi_audio_data audio;
+
+		audio.phys = iores->start;
+		audio.base = hdmi->regs;
+		audio.irq = irq;
+		audio.hdmi = hdmi;
+		audio.eld = hdmi->connector.eld;
+
+		hdmi->enable_audio = dw_hdmi_gp_audio_enable;
+		hdmi->disable_audio = dw_hdmi_gp_audio_disable;
+
+		pdevinfo.name = "dw-hdmi-gp-audio";
+		pdevinfo.id = PLATFORM_DEVID_NONE;
+		pdevinfo.data = &audio;
+		pdevinfo.size_data = sizeof(audio);
+		pdevinfo.dma_mask = DMA_BIT_MASK(32);
 		hdmi->audio = platform_device_register_full(&pdevinfo);
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
@@ -158,6 +158,17 @@
 #define HDMI_FC_SPDDEVICEINF                    0x1062
 #define HDMI_FC_AUDSCONF                        0x1063
 #define HDMI_FC_AUDSSTAT                        0x1064
+#define HDMI_FC_AUDSV                           0x1065
+#define HDMI_FC_AUDSU                           0x1066
+#define HDMI_FC_AUDSCHNL0                       0x1067
+#define HDMI_FC_AUDSCHNL1                       0x1068
+#define HDMI_FC_AUDSCHNL2                       0x1069
+#define HDMI_FC_AUDSCHNL3                       0x106A
+#define HDMI_FC_AUDSCHNL4                       0x106B
+#define HDMI_FC_AUDSCHNL5                       0x106C
+#define HDMI_FC_AUDSCHNL6                       0x106D
+#define HDMI_FC_AUDSCHNL7                       0x106E
+#define HDMI_FC_AUDSCHNL8                       0x106F
 #define HDMI_FC_DATACH0FILL                     0x1070
 #define HDMI_FC_DATACH1FILL                     0x1071
 #define HDMI_FC_DATACH2FILL                     0x1072
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -365,7 +365,6 @@
 	if (lpm)
 		val |= CMD_MODE_ALL_LP;
 
-	dsi_write(dsi, DSI_LPCLK_CTRL, lpm ? 0 : PHY_TXREQUESTCLKHS);
 	dsi_write(dsi, DSI_CMD_MODE_CFG, val);
 }
 
@@ -541,16 +540,22 @@
 static void dw_mipi_dsi_set_mode(struct dw_mipi_dsi *dsi,
 				 unsigned long mode_flags)
 {
+	u32 val;
+
 	dsi_write(dsi, DSI_PWR_UP, RESET);
 
 	if (mode_flags & MIPI_DSI_MODE_VIDEO) {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_VIDEO_MODE);
 		dw_mipi_dsi_video_mode_config(dsi);
-		dsi_write(dsi, DSI_LPCLK_CTRL, PHY_TXREQUESTCLKHS);
 	} else {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_CMD_MODE);
 	}
 
+	val = PHY_TXREQUESTCLKHS;
+	if (dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+		val |= AUTO_CLKLANE_CTRL;
+	dsi_write(dsi, DSI_LPCLK_CTRL, val);
+
 	dsi_write(dsi, DSI_PWR_UP, POWERUP);
 }
 
@@ -1052,6 +1057,7 @@
 	ret = mipi_dsi_host_register(&dsi->dsi_host);
 	if (ret) {
 		dev_err(dev, "Failed to register MIPI host: %d\n", ret);
+		pm_runtime_disable(dev);
 		dw_mipi_dsi_debugfs_remove(dsi);
 		return ERR_PTR(ret);
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/tc358764.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/tc358764.c
@@ -180,7 +180,7 @@
 	if (ret >= 0)
 		le32_to_cpus(val);
 
-	dev_dbg(ctx->dev, "read: %d, addr: %d\n", addr, *val);
+	dev_dbg(ctx->dev, "read: addr=0x%04x data=0x%08x\n", addr, *val);
 }
 
 static void tc358764_write(struct tc358764 *ctx, u16 addr, u32 val)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/tc358767.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/tc358767.c
@@ -294,7 +294,7 @@
 
 static int tc_aux_wait_busy(struct tc_data *tc)
 {
-	return tc_poll_timeout(tc, DP0_AUXSTATUS, AUX_BUSY, 0, 1000, 100000);
+	return tc_poll_timeout(tc, DP0_AUXSTATUS, AUX_BUSY, 0, 100, 100000);
 }
 
 static int tc_aux_write_data(struct tc_data *tc, const void *data,
@@ -637,7 +637,7 @@
 	if (ret)
 		goto err;
 
-	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 1, 1000);
+	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 100, 100000);
 	if (ret == -ETIMEDOUT) {
 		dev_err(tc->dev, "Timeout waiting for PHY to become ready");
 		return ret;
@@ -861,7 +861,7 @@
 	int ret;
 
 	ret = tc_poll_timeout(tc, DP0_LTSTAT, LT_LOOPDONE,
-			      LT_LOOPDONE, 1, 1000);
+			      LT_LOOPDONE, 500, 100000);
 	if (ret) {
 		dev_err(tc->dev, "Link training timeout waiting for LT_LOOPDONE!\n");
 		return ret;
@@ -934,7 +934,7 @@
 	dp_phy_ctrl &= ~(DP_PHY_RST | PHY_M1_RST | PHY_M0_RST);
 	ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
 
-	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 1, 1000);
+	ret = tc_poll_timeout(tc, DP_PHY_CTRL, PHY_RDY, PHY_RDY, 500, 100000);
 	if (ret) {
 		dev_err(dev, "timeout waiting for phy become ready");
 		return ret;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ linux-ein-5.4.0/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -115,6 +115,7 @@
 	.val_bits = 8,
 	.volatile_table = &ti_sn_bridge_volatile_table,
 	.cache_type = REGCACHE_NONE,
+	.max_register = 0xFF,
 };
 
 static void ti_sn_bridge_write_u16(struct ti_sn_bridge *pdata,
@@ -459,9 +460,9 @@
 		&pdata->bridge.encoder->crtc->state->adjusted_mode;
 	u8 hsync_polarity = 0, vsync_polarity = 0;
 
-	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+	if (mode->flags & DRM_MODE_FLAG_NHSYNC)
 		hsync_polarity = CHA_HSYNC_POLARITY;
-	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+	if (mode->flags & DRM_MODE_FLAG_NVSYNC)
 		vsync_polarity = CHA_VSYNC_POLARITY;
 
 	ti_sn_bridge_write_u16(pdata, SN_CHA_ACTIVE_LINE_LENGTH_LOW_REG,
@@ -647,6 +648,12 @@
 				     buf[i]);
 	}
 
+	/* Clear old status bits before start so we don't get confused */
+	regmap_write(pdata->regmap, SN_AUX_CMD_STATUS_REG,
+		     AUX_IRQ_STATUS_NAT_I2C_FAIL |
+		     AUX_IRQ_STATUS_AUX_RPLY_TOUT |
+		     AUX_IRQ_STATUS_AUX_SHORT);
+
 	regmap_write(pdata->regmap, SN_AUX_CMD_REG, request_val | AUX_CMD_SEND);
 
 	ret = regmap_read_poll_timeout(pdata->regmap, SN_AUX_CMD_REG, val,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_atomic.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_atomic.c
@@ -97,6 +97,12 @@
 	if (!state->planes)
 		goto fail;
 
+	/*
+	 * Because drm_atomic_state can be committed asynchronously we need our
+	 * own reference and cannot rely on the on implied by drm_file in the
+	 * ioctl call.
+	 */
+	drm_dev_get(dev);
 	state->dev = dev;
 
 	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
@@ -256,7 +262,8 @@
 void __drm_atomic_state_free(struct kref *ref)
 {
 	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 
 	drm_atomic_state_clear(state);
 
@@ -268,6 +275,8 @@
 		drm_atomic_state_default_release(state);
 		kfree(state);
 	}
+
+	drm_dev_put(dev);
 }
 EXPORT_SYMBOL(__drm_atomic_state_free);
 
@@ -1006,6 +1015,7 @@
 	drm_printf(p, "connector[%u]: %s\n", connector->base.id, connector->name);
 	drm_printf(p, "\tcrtc=%s\n", state->crtc ? state->crtc->name : "(null)");
 	drm_printf(p, "\tself_refresh_aware=%d\n", state->self_refresh_aware);
+	drm_printf(p, "\tmax_requested_bpc=%d\n", state->max_requested_bpc);
 
 	if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
 		if (state->writeback_job && state->writeback_job->fb)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_atomic_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_atomic_helper.c
@@ -445,8 +445,9 @@
 		encoder = new_conn_state->best_encoder;
 		funcs = encoder->helper_private;
 
-		ret = drm_bridge_mode_fixup(encoder->bridge, &new_crtc_state->mode,
-				&new_crtc_state->adjusted_mode);
+		ret = drm_bridge_chain_mode_fixup(encoder->bridge,
+					&new_crtc_state->mode,
+					&new_crtc_state->adjusted_mode);
 		if (!ret) {
 			DRM_DEBUG_ATOMIC("Bridge fixup failed\n");
 			return -EINVAL;
@@ -511,7 +512,7 @@
 		return ret;
 	}
 
-	ret = drm_bridge_mode_valid(encoder->bridge, mode);
+	ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
 	if (ret != MODE_OK) {
 		DRM_DEBUG_ATOMIC("[BRIDGE] mode_valid() failed\n");
 		return ret;
@@ -588,6 +589,7 @@
  * &drm_crtc_state.connectors_changed is set when a connector is added or
  * removed from the crtc.  &drm_crtc_state.active_changed is set when
  * &drm_crtc_state.active changes, which is used for DPMS.
+ * &drm_crtc_state.no_vblank is set from the result of drm_dev_has_vblank().
  * See also: drm_atomic_crtc_needs_modeset()
  *
  * IMPORTANT:
@@ -654,6 +656,11 @@
 
 			return -EINVAL;
 		}
+
+		if (drm_dev_has_vblank(dev))
+			new_crtc_state->no_vblank = false;
+		else
+			new_crtc_state->no_vblank = true;
 	}
 
 	ret = handle_conflicting_encoders(state, false);
@@ -1030,7 +1037,7 @@
 		 * Each encoder has at most one connector (since we always steal
 		 * it away), so we won't call disable hooks twice.
 		 */
-		drm_atomic_bridge_disable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_disable(encoder->bridge, old_state);
 
 		/* Right function depends upon target state. */
 		if (funcs) {
@@ -1044,7 +1051,8 @@
 				funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
 		}
 
-		drm_atomic_bridge_post_disable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_post_disable(encoder->bridge,
+						     old_state);
 	}
 
 	for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
@@ -1078,7 +1086,16 @@
 			continue;
 
 		ret = drm_crtc_vblank_get(crtc);
-		WARN_ONCE(ret != -EINVAL, "driver forgot to call drm_crtc_vblank_off()\n");
+		/*
+		 * Self-refresh is not a true "disable"; ensure vblank remains
+		 * enabled.
+		 */
+		if (new_crtc_state->self_refresh_active)
+			WARN_ONCE(ret != 0,
+				  "driver disabled vblank in self-refresh\n");
+		else
+			WARN_ONCE(ret != -EINVAL,
+				  "driver forgot to call drm_crtc_vblank_off()\n");
 		if (ret == 0)
 			drm_crtc_vblank_put(crtc);
 	}
@@ -1225,7 +1242,8 @@
 			funcs->mode_set(encoder, mode, adjusted_mode);
 		}
 
-		drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode);
+		drm_bridge_chain_mode_set(encoder->bridge, mode,
+					  adjusted_mode);
 	}
 }
 
@@ -1342,7 +1360,7 @@
 		 * Each encoder has at most one connector (since we always steal
 		 * it away), so we won't call enable hooks twice.
 		 */
-		drm_atomic_bridge_pre_enable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_pre_enable(encoder->bridge, old_state);
 
 		if (funcs) {
 			if (funcs->atomic_enable)
@@ -1353,7 +1371,7 @@
 				funcs->commit(encoder);
 		}
 
-		drm_atomic_bridge_enable(encoder->bridge, old_state);
+		drm_atomic_bridge_chain_enable(encoder->bridge, old_state);
 	}
 
 	drm_atomic_helper_commit_writebacks(dev, old_state);
@@ -2202,7 +2220,9 @@
  * when a job is queued, and any change to the pipeline that does not touch the
  * connector is leading to timeouts when calling
  * drm_atomic_helper_wait_for_vblanks() or
- * drm_atomic_helper_wait_for_flip_done().
+ * drm_atomic_helper_wait_for_flip_done(). In addition to writeback
+ * connectors, this function can also fake VBLANK events for CRTCs without
+ * VBLANK interrupt.
  *
  * This is part of the atomic helper support for nonblocking commits, see
  * drm_atomic_helper_setup_commit() for an overview.
@@ -2948,7 +2968,7 @@
 
 	ret = handle_conflicting_encoders(state, true);
 	if (ret)
-		return ret;
+		goto fail;
 
 	ret = drm_atomic_commit(state);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_atomic_uapi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_atomic_uapi.c
@@ -75,15 +75,17 @@
 	state->mode_blob = NULL;
 
 	if (mode) {
+		struct drm_property_blob *blob;
+
 		drm_mode_convert_to_umode(&umode, mode);
-		state->mode_blob =
-			drm_property_create_blob(state->crtc->dev,
-		                                 sizeof(umode),
-		                                 &umode);
-		if (IS_ERR(state->mode_blob))
-			return PTR_ERR(state->mode_blob);
+		blob = drm_property_create_blob(crtc->dev,
+						sizeof(umode), &umode);
+		if (IS_ERR(blob))
+			return PTR_ERR(blob);
 
 		drm_mode_copy(&state->mode, mode);
+
+		state->mode_blob = blob;
 		state->enable = true;
 		DRM_DEBUG_ATOMIC("Set [MODE:%s] for [CRTC:%d:%s] state %p\n",
 				 mode->name, crtc->base.id, crtc->name, state);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_auth.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_auth.c
@@ -268,9 +268,10 @@
 void drm_master_release(struct drm_file *file_priv)
 {
 	struct drm_device *dev = file_priv->minor->dev;
-	struct drm_master *master = file_priv->master;
+	struct drm_master *master;
 
 	mutex_lock(&dev->master_mutex);
+	master = file_priv->master;
 	if (file_priv->magic)
 		idr_remove(&file_priv->master->magic_map, file_priv->magic);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_bridge.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_bridge.c
@@ -172,8 +172,8 @@
  */
 
 /**
- * drm_bridge_mode_fixup - fixup proposed mode for all bridges in the
- *			   encoder chain
+ * drm_bridge_chain_mode_fixup - fixup proposed mode for all bridges in the
+ *				 encoder chain
  * @bridge: bridge control structure
  * @mode: desired mode to be set for the bridge
  * @adjusted_mode: updated mode that works for this bridge
@@ -186,9 +186,9 @@
  * RETURNS:
  * true on success, false on failure
  */
-bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
-			const struct drm_display_mode *mode,
-			struct drm_display_mode *adjusted_mode)
+bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
+				 const struct drm_display_mode *mode,
+				 struct drm_display_mode *adjusted_mode)
 {
 	bool ret = true;
 
@@ -198,15 +198,16 @@
 	if (bridge->funcs->mode_fixup)
 		ret = bridge->funcs->mode_fixup(bridge, mode, adjusted_mode);
 
-	ret = ret && drm_bridge_mode_fixup(bridge->next, mode, adjusted_mode);
+	ret = ret && drm_bridge_chain_mode_fixup(bridge->next, mode,
+						 adjusted_mode);
 
 	return ret;
 }
-EXPORT_SYMBOL(drm_bridge_mode_fixup);
+EXPORT_SYMBOL(drm_bridge_chain_mode_fixup);
 
 /**
- * drm_bridge_mode_valid - validate the mode against all bridges in the
- * 			   encoder chain.
+ * drm_bridge_chain_mode_valid - validate the mode against all bridges in the
+ *				 encoder chain.
  * @bridge: bridge control structure
  * @mode: desired mode to be validated
  *
@@ -219,8 +220,9 @@
  * RETURNS:
  * MODE_OK on success, drm_mode_status Enum error code on failure
  */
-enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
-					   const struct drm_display_mode *mode)
+enum drm_mode_status
+drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
+			    const struct drm_display_mode *mode)
 {
 	enum drm_mode_status ret = MODE_OK;
 
@@ -233,12 +235,12 @@
 	if (ret != MODE_OK)
 		return ret;
 
-	return drm_bridge_mode_valid(bridge->next, mode);
+	return drm_bridge_chain_mode_valid(bridge->next, mode);
 }
-EXPORT_SYMBOL(drm_bridge_mode_valid);
+EXPORT_SYMBOL(drm_bridge_chain_mode_valid);
 
 /**
- * drm_bridge_disable - disables all bridges in the encoder chain
+ * drm_bridge_chain_disable - disables all bridges in the encoder chain
  * @bridge: bridge control structure
  *
  * Calls &drm_bridge_funcs.disable op for all the bridges in the encoder
@@ -247,20 +249,21 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_bridge_disable(struct drm_bridge *bridge)
+void drm_bridge_chain_disable(struct drm_bridge *bridge)
 {
 	if (!bridge)
 		return;
 
-	drm_bridge_disable(bridge->next);
+	drm_bridge_chain_disable(bridge->next);
 
 	if (bridge->funcs->disable)
 		bridge->funcs->disable(bridge);
 }
-EXPORT_SYMBOL(drm_bridge_disable);
+EXPORT_SYMBOL(drm_bridge_chain_disable);
 
 /**
- * drm_bridge_post_disable - cleans up after disabling all bridges in the encoder chain
+ * drm_bridge_chain_post_disable - cleans up after disabling all bridges in the
+ *				   encoder chain
  * @bridge: bridge control structure
  *
  * Calls &drm_bridge_funcs.post_disable op for all the bridges in the
@@ -269,7 +272,7 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_bridge_post_disable(struct drm_bridge *bridge)
+void drm_bridge_chain_post_disable(struct drm_bridge *bridge)
 {
 	if (!bridge)
 		return;
@@ -277,25 +280,25 @@
 	if (bridge->funcs->post_disable)
 		bridge->funcs->post_disable(bridge);
 
-	drm_bridge_post_disable(bridge->next);
+	drm_bridge_chain_post_disable(bridge->next);
 }
-EXPORT_SYMBOL(drm_bridge_post_disable);
+EXPORT_SYMBOL(drm_bridge_chain_post_disable);
 
 /**
- * drm_bridge_mode_set - set proposed mode for all bridges in the
- *			 encoder chain
+ * drm_bridge_chain_mode_set - set proposed mode for all bridges in the
+ *			       encoder chain
  * @bridge: bridge control structure
- * @mode: desired mode to be set for the bridge
- * @adjusted_mode: updated mode that works for this bridge
+ * @mode: desired mode to be set for the encoder chain
+ * @adjusted_mode: updated mode that works for this encoder chain
  *
  * Calls &drm_bridge_funcs.mode_set op for all the bridges in the
  * encoder chain, starting from the first bridge to the last.
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_bridge_mode_set(struct drm_bridge *bridge,
-			 const struct drm_display_mode *mode,
-			 const struct drm_display_mode *adjusted_mode)
+void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
+			       const struct drm_display_mode *mode,
+			       const struct drm_display_mode *adjusted_mode)
 {
 	if (!bridge)
 		return;
@@ -303,13 +306,13 @@
 	if (bridge->funcs->mode_set)
 		bridge->funcs->mode_set(bridge, mode, adjusted_mode);
 
-	drm_bridge_mode_set(bridge->next, mode, adjusted_mode);
+	drm_bridge_chain_mode_set(bridge->next, mode, adjusted_mode);
 }
-EXPORT_SYMBOL(drm_bridge_mode_set);
+EXPORT_SYMBOL(drm_bridge_chain_mode_set);
 
 /**
- * drm_bridge_pre_enable - prepares for enabling all
- *			   bridges in the encoder chain
+ * drm_bridge_chain_pre_enable - prepares for enabling all bridges in the
+ *				 encoder chain
  * @bridge: bridge control structure
  *
  * Calls &drm_bridge_funcs.pre_enable op for all the bridges in the encoder
@@ -318,20 +321,20 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_bridge_pre_enable(struct drm_bridge *bridge)
+void drm_bridge_chain_pre_enable(struct drm_bridge *bridge)
 {
 	if (!bridge)
 		return;
 
-	drm_bridge_pre_enable(bridge->next);
+	drm_bridge_chain_pre_enable(bridge->next);
 
 	if (bridge->funcs->pre_enable)
 		bridge->funcs->pre_enable(bridge);
 }
-EXPORT_SYMBOL(drm_bridge_pre_enable);
+EXPORT_SYMBOL(drm_bridge_chain_pre_enable);
 
 /**
- * drm_bridge_enable - enables all bridges in the encoder chain
+ * drm_bridge_chain_enable - enables all bridges in the encoder chain
  * @bridge: bridge control structure
  *
  * Calls &drm_bridge_funcs.enable op for all the bridges in the encoder
@@ -340,7 +343,7 @@
  *
  * Note that the bridge passed should be the one closest to the encoder
  */
-void drm_bridge_enable(struct drm_bridge *bridge)
+void drm_bridge_chain_enable(struct drm_bridge *bridge)
 {
 	if (!bridge)
 		return;
@@ -348,12 +351,12 @@
 	if (bridge->funcs->enable)
 		bridge->funcs->enable(bridge);
 
-	drm_bridge_enable(bridge->next);
+	drm_bridge_chain_enable(bridge->next);
 }
-EXPORT_SYMBOL(drm_bridge_enable);
+EXPORT_SYMBOL(drm_bridge_chain_enable);
 
 /**
- * drm_atomic_bridge_disable - disables all bridges in the encoder chain
+ * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
  * @bridge: bridge control structure
  * @state: atomic state being committed
  *
@@ -364,24 +367,24 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_atomic_bridge_disable(struct drm_bridge *bridge,
-			       struct drm_atomic_state *state)
+void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
+				     struct drm_atomic_state *state)
 {
 	if (!bridge)
 		return;
 
-	drm_atomic_bridge_disable(bridge->next, state);
+	drm_atomic_bridge_chain_disable(bridge->next, state);
 
 	if (bridge->funcs->atomic_disable)
 		bridge->funcs->atomic_disable(bridge, state);
 	else if (bridge->funcs->disable)
 		bridge->funcs->disable(bridge);
 }
-EXPORT_SYMBOL(drm_atomic_bridge_disable);
+EXPORT_SYMBOL(drm_atomic_bridge_chain_disable);
 
 /**
- * drm_atomic_bridge_post_disable - cleans up after disabling all bridges in the
- *				    encoder chain
+ * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges
+ *					  in the encoder chain
  * @bridge: bridge control structure
  * @state: atomic state being committed
  *
@@ -392,8 +395,8 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
-				    struct drm_atomic_state *state)
+void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
+					  struct drm_atomic_state *state)
 {
 	if (!bridge)
 		return;
@@ -403,13 +406,13 @@
 	else if (bridge->funcs->post_disable)
 		bridge->funcs->post_disable(bridge);
 
-	drm_atomic_bridge_post_disable(bridge->next, state);
+	drm_atomic_bridge_chain_post_disable(bridge->next, state);
 }
-EXPORT_SYMBOL(drm_atomic_bridge_post_disable);
+EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable);
 
 /**
- * drm_atomic_bridge_pre_enable - prepares for enabling all bridges in the
- *				  encoder chain
+ * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in
+ *					the encoder chain
  * @bridge: bridge control structure
  * @state: atomic state being committed
  *
@@ -420,23 +423,23 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_atomic_bridge_pre_enable(struct drm_bridge *bridge,
-				  struct drm_atomic_state *state)
+void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
+					struct drm_atomic_state *state)
 {
 	if (!bridge)
 		return;
 
-	drm_atomic_bridge_pre_enable(bridge->next, state);
+	drm_atomic_bridge_chain_pre_enable(bridge->next, state);
 
 	if (bridge->funcs->atomic_pre_enable)
 		bridge->funcs->atomic_pre_enable(bridge, state);
 	else if (bridge->funcs->pre_enable)
 		bridge->funcs->pre_enable(bridge);
 }
-EXPORT_SYMBOL(drm_atomic_bridge_pre_enable);
+EXPORT_SYMBOL(drm_atomic_bridge_chain_pre_enable);
 
 /**
- * drm_atomic_bridge_enable - enables all bridges in the encoder chain
+ * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
  * @bridge: bridge control structure
  * @state: atomic state being committed
  *
@@ -447,8 +450,8 @@
  *
  * Note: the bridge passed should be the one closest to the encoder
  */
-void drm_atomic_bridge_enable(struct drm_bridge *bridge,
-			      struct drm_atomic_state *state)
+void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
+				    struct drm_atomic_state *state)
 {
 	if (!bridge)
 		return;
@@ -458,9 +461,9 @@
 	else if (bridge->funcs->enable)
 		bridge->funcs->enable(bridge);
 
-	drm_atomic_bridge_enable(bridge->next, state);
+	drm_atomic_bridge_chain_enable(bridge->next, state);
 }
-EXPORT_SYMBOL(drm_atomic_bridge_enable);
+EXPORT_SYMBOL(drm_atomic_bridge_chain_enable);
 
 #ifdef CONFIG_OF
 /**
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_client_modeset.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_client_modeset.c
@@ -281,6 +281,9 @@
 	can_clone = true;
 	dmt_mode = drm_mode_find_dmt(dev, 1024, 768, 60, false);
 
+	if (!dmt_mode)
+		goto fail;
+
 	for (i = 0; i < connector_count; i++) {
 		if (!enabled[i])
 			continue;
@@ -296,11 +299,13 @@
 		if (!modes[i])
 			can_clone = false;
 	}
+	kfree(dmt_mode);
 
 	if (can_clone) {
 		DRM_DEBUG_KMS("can clone using 1024x768\n");
 		return true;
 	}
+fail:
 	DRM_INFO("kms: can't enable cloning when we probably wanted to.\n");
 	return false;
 }
@@ -785,6 +790,7 @@
 				break;
 			}
 
+			kfree(modeset->mode);
 			modeset->mode = drm_mode_duplicate(dev, mode);
 			drm_connector_get(connector);
 			modeset->connectors[modeset->num_connectors++] = connector;
@@ -880,7 +886,8 @@
 	 * depending on the hardware this may require the framebuffer
 	 * to be in a specific tiling format.
 	 */
-	if ((*rotation & DRM_MODE_ROTATE_MASK) != DRM_MODE_ROTATE_180 ||
+	if (((*rotation & DRM_MODE_ROTATE_MASK) != DRM_MODE_ROTATE_0 &&
+	     (*rotation & DRM_MODE_ROTATE_MASK) != DRM_MODE_ROTATE_180) ||
 	    !plane->rotation_property)
 		return false;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_connector.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_connector.c
@@ -27,6 +27,7 @@
 #include <drm/drm_print.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_file.h>
+#include <drm/drm_sysfs.h>
 
 #include <linux/uaccess.h>
 
@@ -473,6 +474,9 @@
 	mutex_destroy(&connector->mutex);
 
 	memset(connector, 0, sizeof(*connector));
+
+	if (dev->registered)
+		drm_sysfs_hotplug_event(dev);
 }
 EXPORT_SYMBOL(drm_connector_cleanup);
 
@@ -511,6 +515,10 @@
 	drm_mode_object_register(connector->dev, &connector->base);
 
 	connector->registration_state = DRM_CONNECTOR_REGISTERED;
+
+	/* Let userspace know we have a new connector */
+	drm_sysfs_hotplug_event(connector->dev);
+
 	goto unlock;
 
 err_debugfs:
@@ -1979,6 +1987,9 @@
 void drm_connector_set_vrr_capable_property(
 		struct drm_connector *connector, bool capable)
 {
+	if (!connector->vrr_capable_property)
+		return;
+
 	drm_object_property_set_value(&connector->base,
 				      connector->vrr_capable_property,
 				      capable);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_crtc_helper_internal.h
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_crtc_helper_internal.h
@@ -32,16 +32,6 @@
 #include <drm/drm_encoder.h>
 #include <drm/drm_modes.h>
 
-/* drm_fb_helper.c */
-#ifdef CONFIG_DRM_FBDEV_EMULATION
-int drm_fb_helper_modinit(void);
-#else
-static inline int drm_fb_helper_modinit(void)
-{
-	return 0;
-}
-#endif
-
 /* drm_dp_aux_dev.c */
 #ifdef CONFIG_DRM_DP_AUX_CHARDEV
 int drm_dp_aux_dev_init(void);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_crtc_internal.h
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_crtc_internal.h
@@ -216,6 +216,8 @@
 			void *data, struct drm_file *file_priv);
 int drm_mode_getfb(struct drm_device *dev,
 		   void *data, struct drm_file *file_priv);
+int drm_mode_getfb2_ioctl(struct drm_device *dev,
+			  void *data, struct drm_file *file_priv);
 int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
 			   void *data, struct drm_file *file_priv);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_damage_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_damage_helper.c
@@ -212,8 +212,14 @@
 	drm_for_each_plane(plane, fb->dev) {
 		struct drm_plane_state *plane_state;
 
-		if (plane->state->fb != fb)
+		ret = drm_modeset_lock(&plane->mutex, state->acquire_ctx);
+		if (ret)
+			goto out;
+
+		if (plane->state->fb != fb) {
+			drm_modeset_unlock(&plane->mutex);
 			continue;
+		}
 
 		plane_state = drm_atomic_get_plane_state(state, plane);
 		if (IS_ERR(plane_state)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_debugfs.c
@@ -91,6 +91,7 @@
 	mutex_lock(&dev->filelist_mutex);
 	list_for_each_entry_reverse(priv, &dev->filelist, lhead) {
 		struct task_struct *task;
+		bool is_current_master = drm_is_current_master(priv);
 
 		rcu_read_lock(); /* locks pid_task()->comm */
 		task = pid_task(priv->pid, PIDTYPE_PID);
@@ -99,7 +100,7 @@
 			   task ? task->comm : "<unknown>",
 			   pid_vnr(priv->pid),
 			   priv->minor->index,
-			   drm_is_current_master(priv) ? 'y' : 'n',
+			   is_current_master ? 'y' : 'n',
 			   priv->authenticated ? 'y' : 'n',
 			   from_kuid_munged(seq_user_ns(m), uid),
 			   priv->magic);
@@ -337,13 +338,13 @@
 
 	buf[len] = '\0';
 
-	if (!strcmp(buf, "on"))
+	if (sysfs_streq(buf, "on"))
 		connector->force = DRM_FORCE_ON;
-	else if (!strcmp(buf, "digital"))
+	else if (sysfs_streq(buf, "digital"))
 		connector->force = DRM_FORCE_ON_DIGITAL;
-	else if (!strcmp(buf, "off"))
+	else if (sysfs_streq(buf, "off"))
 		connector->force = DRM_FORCE_OFF;
-	else if (!strcmp(buf, "unspecified"))
+	else if (sysfs_streq(buf, "unspecified"))
 		connector->force = DRM_FORCE_UNSPECIFIED;
 	else
 		return -EINVAL;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_debugfs_crc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_debugfs_crc.c
@@ -140,12 +140,14 @@
 	if (IS_ERR(source))
 		return PTR_ERR(source);
 
-	if (source[len] == '\n')
-		source[len] = '\0';
+	if (source[len - 1] == '\n')
+		source[len - 1] = '\0';
 
 	ret = crtc->funcs->verify_crc_source(crtc, source, &values_cnt);
-	if (ret)
+	if (ret) {
+		kfree(source);
 		return ret;
+	}
 
 	spin_lock_irq(&crc->lock);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_dp_aux_dev.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_dp_aux_dev.c
@@ -63,7 +63,7 @@
 
 	mutex_lock(&aux_idr_mutex);
 	aux_dev = idr_find(&aux_idr, index);
-	if (!kref_get_unless_zero(&aux_dev->refcount))
+	if (aux_dev && !kref_get_unless_zero(&aux_dev->refcount))
 		aux_dev = NULL;
 	mutex_unlock(&aux_idr_mutex);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_dp_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_dp_helper.c
@@ -1302,6 +1302,99 @@
 #undef DEVICE_ID_ANY
 #undef DEVICE_ID
 
+struct edid_quirk {
+	u8 mfg_id[2];
+	u8 prod_id[2];
+	u32 quirks;
+};
+
+#define MFG(first, second) { (first), (second) }
+#define PROD_ID(first, second) { (first), (second) }
+
+/*
+ * Some devices have unreliable OUIDs where they don't set the device ID
+ * correctly, and as a result we need to use the EDID for finding additional
+ * DP quirks in such cases.
+ */
+static const struct edid_quirk edid_quirk_list[] = {
+	/* Optional 4K AMOLED panel in the ThinkPad X1 Extreme 2nd Generation
+	 * only supports DPCD backlight controls
+	 */
+	{ MFG(0x4c, 0x83), PROD_ID(0x41, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/* HP Spectre x360 Convertible 13t-aw100 */
+	{ MFG(0x4c, 0x83), PROD_ID(0x42, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/* HP CML 2020 system */
+	{ MFG(0x4c, 0x83), PROD_ID(0x45, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/*
+	 * Some Dell CML 2020 systems have panels support both AUX and PWM
+	 * backlight control, and some only support AUX backlight control. All
+	 * said panels start up in AUX mode by default, and we don't have any
+	 * support for disabling HDR mode on these panels which would be
+	 * required to switch to PWM backlight control mode (plus, I'm not
+	 * even sure we want PWM backlight controls over DPCD backlight
+	 * controls anyway...). Until we have a better way of detecting these,
+	 * force DPCD backlight mode on all of them.
+	 */
+	{ MFG(0x06, 0xaf), PROD_ID(0x8c, 0xcd), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x06, 0xaf), PROD_ID(0x9b, 0x32), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x06, 0xaf), PROD_ID(0xeb, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x30, 0xe4), PROD_ID(0x61, 0x06), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4d, 0x10), PROD_ID(0xc7, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4d, 0x10), PROD_ID(0xe6, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4c, 0x83), PROD_ID(0x47, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4c, 0x83), PROD_ID(0x4f, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	{ MFG(0x4c, 0x83), PROD_ID(0x4d, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) },
+	/*
+	 * Some HP ZBook Studio G7 systems have panels support and relies on
+	 * PSR being enabled.
+	 */
+	{ MFG(0x0d, 0xae), PROD_ID(0x19, 0x15), BIT(DP_QUIRK_FORCE_PSR_CHIP_DEFAULT) },
+};
+
+#undef MFG
+#undef PROD_ID
+
+/**
+ * drm_dp_get_edid_quirks() - Check the EDID of a DP device to find additional
+ * DP-specific quirks
+ * @edid: The EDID to check
+ *
+ * While OUIDs are meant to be used to recognize a DisplayPort device, a lot
+ * of manufacturers don't seem to like following standards and neglect to fill
+ * the dev-ID in, making it impossible to only use OUIDs for determining
+ * quirks in some cases. This function can be used to check the EDID and look
+ * up any additional DP quirks. The bits returned by this function correspond
+ * to the quirk bits in &drm_dp_quirk.
+ *
+ * Returns: a bitmask of quirks, if any. The driver can check this using
+ * drm_dp_has_quirk().
+ */
+u32 drm_dp_get_edid_quirks(const struct edid *edid)
+{
+	const struct edid_quirk *quirk;
+	u32 quirks = 0;
+	int i;
+
+	if (!edid)
+		return 0;
+
+	for (i = 0; i < ARRAY_SIZE(edid_quirk_list); i++) {
+		quirk = &edid_quirk_list[i];
+		if (memcmp(quirk->mfg_id, edid->mfg_id,
+			   sizeof(edid->mfg_id)) == 0 &&
+		    memcmp(quirk->prod_id, edid->prod_code,
+			   sizeof(edid->prod_code)) == 0)
+			quirks |= quirk->quirks;
+	}
+
+	DRM_DEBUG_KMS("DP sink: EDID mfg %*phD prod-ID %*phD quirks: 0x%04x\n",
+		      (int)sizeof(edid->mfg_id), edid->mfg_id,
+		      (int)sizeof(edid->prod_code), edid->prod_code, quirks);
+
+	return quirks;
+}
+EXPORT_SYMBOL(drm_dp_get_edid_quirks);
+
 /**
  * drm_dp_read_desc - read sink/branch descriptor from DPCD
  * @aux: DisplayPort AUX channel
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_dp_mst_topology.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -27,6 +27,7 @@
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/seq_file.h>
+#include <linux/iopoll.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -339,7 +340,7 @@
 			memcpy(&buf[idx], req->u.i2c_read.transactions[i].bytes, req->u.i2c_read.transactions[i].num_bytes);
 			idx += req->u.i2c_read.transactions[i].num_bytes;
 
-			buf[idx] = (req->u.i2c_read.transactions[i].no_stop_bit & 0x1) << 5;
+			buf[idx] = (req->u.i2c_read.transactions[i].no_stop_bit & 0x1) << 4;
 			buf[idx] |= (req->u.i2c_read.transactions[i].i2c_transaction_delay & 0xf);
 			idx++;
 		}
@@ -2465,9 +2466,11 @@
 			drm_dp_mst_topology_put_port(port);
 	}
 
-	for (i = 0; i < mgr->max_payloads; i++) {
-		if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL)
+	for (i = 0; i < mgr->max_payloads; /* do nothing */) {
+		if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) {
+			i++;
 			continue;
+		}
 
 		DRM_DEBUG_KMS("removing payload %d\n", i);
 		for (j = i; j < mgr->max_payloads - 1; j++) {
@@ -2694,6 +2697,7 @@
 	int ret = 0;
 	struct drm_dp_mst_branch *mstb = NULL;
 
+	mutex_lock(&mgr->payload_lock);
 	mutex_lock(&mgr->lock);
 	if (mst_state == mgr->mst_state)
 		goto out_unlock;
@@ -2752,7 +2756,10 @@
 		/* this can fail if the device is gone */
 		drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, 0);
 		ret = 0;
-		memset(mgr->payloads, 0, mgr->max_payloads * sizeof(struct drm_dp_payload));
+		memset(mgr->payloads, 0,
+		       mgr->max_payloads * sizeof(mgr->payloads[0]));
+		memset(mgr->proposed_vcpis, 0,
+		       mgr->max_payloads * sizeof(mgr->proposed_vcpis[0]));
 		mgr->payload_mask = 0;
 		set_bit(0, &mgr->payload_mask);
 		mgr->vcpi_mask = 0;
@@ -2760,6 +2767,7 @@
 
 out_unlock:
 	mutex_unlock(&mgr->lock);
+	mutex_unlock(&mgr->payload_lock);
 	if (mstb)
 		drm_dp_mst_topology_put_mstb(mstb);
 	return ret;
@@ -3361,11 +3369,11 @@
 {
 	int ret;
 
-	port = drm_dp_mst_topology_get_port_validated(mgr, port);
-	if (!port)
+	if (slots < 0)
 		return false;
 
-	if (slots < 0)
+	port = drm_dp_mst_topology_get_port_validated(mgr, port);
+	if (!port)
 		return false;
 
 	if (port->vcpi.vcpi > 0) {
@@ -3381,6 +3389,7 @@
 	if (ret) {
 		DRM_DEBUG_KMS("failed to init vcpi slots=%d max=63 ret=%d\n",
 			      DIV_ROUND_UP(pbn, mgr->pbn_div), ret);
+		drm_dp_mst_topology_put_port(port);
 		goto out;
 	}
 	DRM_DEBUG_KMS("initing vcpi for pbn=%d slots=%d\n",
@@ -3491,6 +3500,17 @@
 	return ret;
 }
 
+static int do_get_act_status(struct drm_dp_aux *aux)
+{
+	int ret;
+	u8 status;
+
+	ret = drm_dp_dpcd_readb(aux, DP_PAYLOAD_TABLE_UPDATE_STATUS, &status);
+	if (ret < 0)
+		return ret;
+
+	return status;
+}
 
 /**
  * drm_dp_check_act_status() - Check ACT handled status.
@@ -3500,33 +3520,29 @@
  */
 int drm_dp_check_act_status(struct drm_dp_mst_topology_mgr *mgr)
 {
-	u8 status;
-	int ret;
-	int count = 0;
-
-	do {
-		ret = drm_dp_dpcd_readb(mgr->aux, DP_PAYLOAD_TABLE_UPDATE_STATUS, &status);
-
-		if (ret < 0) {
-			DRM_DEBUG_KMS("failed to read payload table status %d\n", ret);
-			goto fail;
-		}
-
-		if (status & DP_PAYLOAD_ACT_HANDLED)
-			break;
-		count++;
-		udelay(100);
-
-	} while (count < 30);
+	/*
+	 * There doesn't seem to be any recommended retry count or timeout in
+	 * the MST specification. Since some hubs have been observed to take
+	 * over 1 second to update their payload allocations under certain
+	 * conditions, we use a rather large timeout value.
+	 */
+	const int timeout_ms = 3000;
+	int ret, status;
 
-	if (!(status & DP_PAYLOAD_ACT_HANDLED)) {
-		DRM_DEBUG_KMS("failed to get ACT bit %d after %d retries\n", status, count);
-		ret = -EINVAL;
-		goto fail;
+	ret = readx_poll_timeout(do_get_act_status, mgr->aux, status,
+				 status & DP_PAYLOAD_ACT_HANDLED || status < 0,
+				 200, timeout_ms * USEC_PER_MSEC);
+	if (ret < 0 && status >= 0) {
+		DRM_DEBUG_KMS("Failed to get ACT after %dms, last status: %02x\n",
+			      timeout_ms, status);
+		return -EINVAL;
+	} else if (status < 0) {
+		DRM_DEBUG_KMS("Failed to read payload table status: %d\n",
+			      status);
+		return status;
 	}
+
 	return 0;
-fail:
-	return ret;
 }
 EXPORT_SYMBOL(drm_dp_check_act_status);
 
@@ -3641,6 +3657,7 @@
 
 	mst_edid = drm_dp_mst_get_edid(port->connector, mgr, port);
 	drm_edid_get_monitor_name(mst_edid, name, namelen);
+	kfree(mst_edid);
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_edid.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_edid.c
@@ -191,10 +191,11 @@
 	{ "HVR", 0xaa01, EDID_QUIRK_NON_DESKTOP },
 	{ "HVR", 0xaa02, EDID_QUIRK_NON_DESKTOP },
 
-	/* Oculus Rift DK1, DK2, and CV1 VR Headsets */
+	/* Oculus Rift DK1, DK2, CV1 and Rift S VR Headsets */
 	{ "OVR", 0x0001, EDID_QUIRK_NON_DESKTOP },
 	{ "OVR", 0x0003, EDID_QUIRK_NON_DESKTOP },
 	{ "OVR", 0x0004, EDID_QUIRK_NON_DESKTOP },
+	{ "OVR", 0x0012, EDID_QUIRK_NON_DESKTOP },
 
 	/* Windows Mixed Reality Headsets */
 	{ "ACR", 0x7fce, EDID_QUIRK_NON_DESKTOP },
@@ -574,6 +575,22 @@
 	{ DRM_MODE("4096x2160", DRM_MODE_TYPE_DRIVER, 556188, 4096, 4104,
 		   4136, 4176, 0, 2160, 2208, 2216, 2222, 0,
 		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 3 - 720x480@60Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 16 - 1920x1080@60Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
+		   2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 19 - 1280x720@50Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1720,
+		   1760, 1980, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 31 - 1920x1080@50Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2448,
+		   2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
 };
 
 /*
@@ -1701,9 +1718,6 @@
 
 		connector_bad_edid(connector, edid, edid[0x7e] + 1);
 
-		edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions;
-		edid[0x7e] = valid_extensions;
-
 		new = kmalloc_array(valid_extensions + 1, EDID_LENGTH,
 				    GFP_KERNEL);
 		if (!new)
@@ -1720,6 +1734,9 @@
 			base += EDID_LENGTH;
 		}
 
+		new[EDID_LENGTH - 1] += new[0x7e] - valid_extensions;
+		new[0x7e] = valid_extensions;
+
 		kfree(edid);
 		edid = new;
 	}
@@ -2770,7 +2787,7 @@
 	const u8 empty[3] = { 0, 0, 0 };
 
 	for (i = 0; i < 4; i++) {
-		int uninitialized_var(width), height;
+		int width, height;
 		cvt = &(timing->data.other_data.data.cvt[i]);
 
 		if (!memcmp(cvt->code, empty, 3))
@@ -2778,6 +2795,8 @@
 
 		height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2;
 		switch (cvt->code[1] & 0x0c) {
+		/* default - because compiler doesn't see that we've enumerated all cases */
+		default:
 		case 0x00:
 			width = height * 4 / 3;
 			break;
@@ -3722,7 +3741,7 @@
 		if (*end < 4 || *end > 127)
 			return -ERANGE;
 	} else {
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	}
 
 	return 0;
@@ -4191,7 +4210,7 @@
 
 	if (cea_revision(cea) < 3) {
 		DRM_DEBUG_KMS("SAD: wrong CEA revision\n");
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	}
 
 	if (cea_db_offsets(cea, &start, &end)) {
@@ -4252,7 +4271,7 @@
 
 	if (cea_revision(cea) < 3) {
 		DRM_DEBUG_KMS("SAD: wrong CEA revision\n");
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 	}
 
 	if (cea_db_offsets(cea, &start, &end)) {
@@ -4379,7 +4398,8 @@
 	if (!edid_ext)
 		goto end;
 
-	has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
+	has_audio = (edid_ext[0] == CEA_EXT &&
+		    (edid_ext[3] & EDID_BASIC_AUDIO) != 0);
 
 	if (has_audio) {
 		DRM_DEBUG_KMS("Monitor has basic audio support\n");
@@ -4532,16 +4552,8 @@
 		  connector->name, dc_bpc);
 	info->bpc = dc_bpc;
 
-	/*
-	 * Deep color support mandates RGB444 support for all video
-	 * modes and forbids YCRCB422 support for all video modes per
-	 * HDMI 1.3 spec.
-	 */
-	info->color_formats = DRM_COLOR_FORMAT_RGB444;
-
 	/* YCRCB444 is optional according to spec. */
 	if (hdmi[6] & DRM_EDID_HDMI_DC_Y444) {
-		info->color_formats |= DRM_COLOR_FORMAT_YCRCB444;
 		DRM_DEBUG("%s: HDMI sink does YCRCB444 in deep color.\n",
 			  connector->name);
 	}
@@ -4658,6 +4670,7 @@
 	if (!(edid->input & DRM_EDID_INPUT_DIGITAL))
 		return quirks;
 
+	info->color_formats |= DRM_COLOR_FORMAT_RGB444;
 	drm_parse_cea_ext(connector, edid);
 
 	/*
@@ -4706,7 +4719,6 @@
 	DRM_DEBUG("%s: Assigning EDID-1.4 digital sink color depth as %d bpc.\n",
 			  connector->name, info->bpc);
 
-	info->color_formats |= DRM_COLOR_FORMAT_RGB444;
 	if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB444)
 		info->color_formats |= DRM_COLOR_FORMAT_YCRCB444;
 	if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB422)
@@ -4743,7 +4755,7 @@
 	struct drm_display_mode *mode;
 	unsigned pixel_clock = (timings->pixel_clock[0] |
 				(timings->pixel_clock[1] << 8) |
-				(timings->pixel_clock[2] << 16));
+				(timings->pixel_clock[2] << 16)) + 1;
 	unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
 	unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
 	unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_encoder.c
@@ -170,7 +170,7 @@
 		struct drm_bridge *next;
 
 		while (bridge) {
-			next = bridge->next;
+			next = drm_bridge_get_next_bridge(bridge);
 			drm_bridge_detach(bridge);
 			bridge = next;
 		}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_encoder_slave.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_encoder_slave.c
@@ -84,7 +84,7 @@
 
 	err = encoder_drv->encoder_init(client, dev, encoder);
 	if (err)
-		goto fail_unregister;
+		goto fail_module_put;
 
 	if (info->platform_data)
 		encoder->slave_funcs->set_config(&encoder->base,
@@ -92,9 +92,10 @@
 
 	return 0;
 
+fail_module_put:
+	module_put(module);
 fail_unregister:
 	i2c_unregister_device(client);
-	module_put(module);
 fail:
 	return err;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_fb_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_fb_helper.c
@@ -390,7 +390,11 @@
 	unsigned int y;
 
 	for (y = clip->y1; y < clip->y2; y++) {
-		memcpy(dst, src, len);
+		if (!fb_helper->dev->mode_config.fbdev_use_iomem)
+			memcpy(dst, src, len);
+		else
+			memcpy_toio((void __iomem *)dst, src, len);
+
 		src += fb->pitches[0];
 		dst += fb->pitches[0];
 	}
@@ -961,11 +965,15 @@
 	drm_modeset_lock_all(fb_helper->dev);
 	drm_client_for_each_modeset(modeset, &fb_helper->client) {
 		crtc = modeset->crtc;
-		if (!crtc->funcs->gamma_set || !crtc->gamma_size)
-			return -EINVAL;
+		if (!crtc->funcs->gamma_set || !crtc->gamma_size) {
+			ret = -EINVAL;
+			goto out;
+		}
 
-		if (cmap->start + cmap->len > crtc->gamma_size)
-			return -EINVAL;
+		if (cmap->start + cmap->len > crtc->gamma_size) {
+			ret = -EINVAL;
+			goto out;
+		}
 
 		r = crtc->gamma_store;
 		g = r + crtc->gamma_size;
@@ -978,8 +986,9 @@
 		ret = crtc->funcs->gamma_set(crtc, r, g, b,
 					     crtc->gamma_size, NULL);
 		if (ret)
-			return ret;
+			goto out;
 	}
+out:
 	drm_modeset_unlock_all(fb_helper->dev);
 
 	return ret;
@@ -1320,7 +1329,7 @@
 	 * Changes struct fb_var_screeninfo are currently not pushed back
 	 * to KMS, hence fail if different settings are requested.
 	 */
-	if (var->bits_per_pixel != fb->format->cpp[0] * 8 ||
+	if (var->bits_per_pixel > fb->format->cpp[0] * 8 ||
 	    var->xres > fb->width || var->yres > fb->height ||
 	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
 		DRM_DEBUG("fb requested width/height/bpp can't fit in current fb "
@@ -1331,6 +1340,9 @@
 		return -EINVAL;
 	}
 
+	var->xres_virtual = fb->width;
+	var->yres_virtual = fb->height;
+
 	/*
 	 * Workaround for SDL 1.2, which is known to be setting all pixel format
 	 * fields values to zero in some cases. We treat this situation as a
@@ -1346,6 +1358,11 @@
 	}
 
 	/*
+	 * Likewise, bits_per_pixel should be rounded up to a supported value.
+	 */
+	var->bits_per_pixel = fb->format->cpp[0] * 8;
+
+	/*
 	 * drm fbdev emulation doesn't support changing the pixel format at all,
 	 * so reject all pixel format changing requests.
 	 */
@@ -2401,24 +2418,3 @@
 	return 0;
 }
 EXPORT_SYMBOL(drm_fbdev_generic_setup);
-
-/* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT)
- * but the module doesn't depend on any fb console symbols.  At least
- * attempt to load fbcon to avoid leaving the system without a usable console.
- */
-int __init drm_fb_helper_modinit(void)
-{
-#if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT)
-	const char name[] = "fbcon";
-	struct module *fbcon;
-
-	mutex_lock(&module_mutex);
-	fbcon = find_module(name);
-	mutex_unlock(&module_mutex);
-
-	if (!fbcon)
-		request_module_nowait(name);
-#endif
-	return 0;
-}
-EXPORT_SYMBOL(drm_fb_helper_modinit);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_fourcc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_fourcc.c
@@ -178,6 +178,10 @@
 		{ .format = DRM_FORMAT_BGRA5551,	.depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
 		{ .format = DRM_FORMAT_RGB565,		.depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
 		{ .format = DRM_FORMAT_BGR565,		.depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
+#ifdef __BIG_ENDIAN
+		{ .format = DRM_FORMAT_XRGB1555 | DRM_FORMAT_BIG_ENDIAN, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
+		{ .format = DRM_FORMAT_RGB565 | DRM_FORMAT_BIG_ENDIAN, .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
+#endif
 		{ .format = DRM_FORMAT_RGB888,		.depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 }, .hsub = 1, .vsub = 1 },
 		{ .format = DRM_FORMAT_BGR888,		.depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 }, .hsub = 1, .vsub = 1 },
 		{ .format = DRM_FORMAT_XRGB8888,	.depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
@@ -261,6 +265,9 @@
 		{ .format = DRM_FORMAT_P016,		.depth = 0,  .num_planes = 2,
 		  .char_per_block = { 2, 4, 0 }, .block_w = { 1, 0, 0 }, .block_h = { 1, 0, 0 },
 		  .hsub = 2, .vsub = 2, .is_yuv = true},
+		{ .format = DRM_FORMAT_NV12_10LE40,	.depth = 0,  .num_planes = 2,
+		  .char_per_block = { 5, 5, 0 }, .block_w = { 4, 2, 0 }, .block_h = { 1, 1, 0 },
+		  .hsub = 2, .vsub = 2, .is_yuv = true },
 		{ .format = DRM_FORMAT_P210,		.depth = 0,
 		  .num_planes = 2, .char_per_block = { 2, 4, 0 },
 		  .block_w = { 1, 0, 0 }, .block_h = { 1, 0, 0 }, .hsub = 2,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_framebuffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_framebuffer.c
@@ -31,6 +31,7 @@
 #include <drm/drm_file.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_framebuffer.h>
+#include <drm/drm_gem.h>
 #include <drm/drm_print.h>
 #include <drm/drm_util.h>
 
@@ -548,7 +549,128 @@
 
 out:
 	drm_framebuffer_put(fb);
+	return ret;
+}
 
+/**
+ * drm_mode_getfb2 - get extended FB info
+ * @dev: drm device for the ioctl
+ * @data: data pointer for the ioctl
+ * @file_priv: drm file for the ioctl call
+ *
+ * Lookup the FB given its ID and return info about it.
+ *
+ * Called by the user via ioctl.
+ *
+ * Returns:
+ * Zero on success, negative errno on failure.
+ */
+int drm_mode_getfb2_ioctl(struct drm_device *dev,
+			  void *data, struct drm_file *file_priv)
+{
+	struct drm_mode_fb_cmd2 *r = data;
+	struct drm_framebuffer *fb;
+	unsigned int i;
+	int ret;
+
+	if (!drm_core_check_feature(dev, DRIVER_MODESET))
+		return -EINVAL;
+
+	fb = drm_framebuffer_lookup(dev, file_priv, r->fb_id);
+	if (!fb)
+		return -ENOENT;
+
+	/* For multi-plane framebuffers, we require the driver to place the
+	 * GEM objects directly in the drm_framebuffer. For single-plane
+	 * framebuffers, we can fall back to create_handle.
+	 */
+	if (!fb->obj[0] &&
+	    (fb->format->num_planes > 1 || !fb->funcs->create_handle)) {
+		ret = -ENODEV;
+		goto out;
+	}
+
+	r->height = fb->height;
+	r->width = fb->width;
+	r->pixel_format = fb->format->format;
+
+	r->flags = 0;
+	if (dev->mode_config.allow_fb_modifiers)
+		r->flags |= DRM_MODE_FB_MODIFIERS;
+
+	for (i = 0; i < ARRAY_SIZE(r->handles); i++) {
+		r->handles[i] = 0;
+		r->pitches[i] = 0;
+		r->offsets[i] = 0;
+		r->modifier[i] = 0;
+	}
+
+	for (i = 0; i < fb->format->num_planes; i++) {
+		r->pitches[i] = fb->pitches[i];
+		r->offsets[i] = fb->offsets[i];
+		if (dev->mode_config.allow_fb_modifiers)
+			r->modifier[i] = fb->modifier;
+	}
+
+	/* GET_FB2() is an unprivileged ioctl so we must not return a
+	 * buffer-handle to non master/root processes! To match GET_FB()
+	 * just return invalid handles (0) for non masters/root
+	 * rather than making GET_FB2() privileged.
+	 */
+	if (!drm_is_current_master(file_priv) && !capable(CAP_SYS_ADMIN)) {
+		ret = 0;
+		goto out;
+	}
+
+	for (i = 0; i < fb->format->num_planes; i++) {
+		int j;
+
+		/* If we reuse the same object for multiple planes, also
+		 * return the same handle.
+		 */
+		for (j = 0; j < i; j++) {
+			if (fb->obj[i] == fb->obj[j]) {
+				r->handles[i] = r->handles[j];
+				break;
+			}
+		}
+
+		if (r->handles[i])
+			continue;
+
+		if (fb->obj[i]) {
+			ret = drm_gem_handle_create(file_priv, fb->obj[i],
+						    &r->handles[i]);
+		} else {
+			WARN_ON(i > 0);
+			ret = fb->funcs->create_handle(fb, file_priv,
+						       &r->handles[i]);
+		}
+
+		if (ret != 0)
+			goto out;
+	}
+
+out:
+	if (ret != 0) {
+		/* Delete any previously-created handles on failure. */
+		for (i = 0; i < ARRAY_SIZE(r->handles); i++) {
+			int j;
+
+			if (r->handles[i])
+				drm_gem_handle_delete(file_priv, r->handles[i]);
+
+			/* Zero out any handles identical to the one we just
+			 * deleted.
+			 */
+			for (j = i + 1; j < ARRAY_SIZE(r->handles); j++) {
+				if (r->handles[j] == r->handles[i])
+					r->handles[j] = 0;
+			}
+		}
+	}
+
+	drm_framebuffer_put(fb);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_gem.c
@@ -167,21 +167,6 @@
 }
 EXPORT_SYMBOL(drm_gem_private_object_init);
 
-static void
-drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
-{
-	/*
-	 * Note: obj->dma_buf can't disappear as long as we still hold a
-	 * handle reference in obj->handle_count.
-	 */
-	mutex_lock(&filp->prime.lock);
-	if (obj->dma_buf) {
-		drm_prime_remove_buf_handle_locked(&filp->prime,
-						   obj->dma_buf);
-	}
-	mutex_unlock(&filp->prime.lock);
-}
-
 /**
  * drm_gem_object_handle_free - release resources bound to userspace handles
  * @obj: GEM object to clean up.
@@ -255,7 +240,7 @@
 	else if (dev->driver->gem_close_object)
 		dev->driver->gem_close_object(obj, file_priv);
 
-	drm_gem_remove_prime_handles(obj, file_priv);
+	drm_prime_remove_buf_handle(&file_priv->prime, id);
 	drm_vma_node_revoke(&obj->vma_node, file_priv);
 
 	drm_gem_object_handle_put_unlocked(obj);
@@ -710,6 +695,8 @@
 	if (!objs)
 		return -ENOMEM;
 
+	*objs_out = objs;
+
 	handles = kvmalloc_array(count, sizeof(u32), GFP_KERNEL);
 	if (!handles) {
 		ret = -ENOMEM;
@@ -723,8 +710,6 @@
 	}
 
 	ret = objects_lookup(filp, handles, count, objs);
-	*objs_out = objs;
-
 out:
 	kvfree(handles);
 	return ret;
@@ -872,9 +857,6 @@
  * @file_priv: drm file-private structure
  *
  * Open an object using the global name, returning a handle and the size.
- *
- * This handle (of course) holds a reference to the object, so the object
- * will not go away until the handle is deleted.
  */
 int
 drm_gem_open_ioctl(struct drm_device *dev, void *data,
@@ -899,14 +881,15 @@
 
 	/* drm_gem_handle_create_tail unlocks dev->object_name_lock. */
 	ret = drm_gem_handle_create_tail(file_priv, obj, &handle);
-	drm_gem_object_put_unlocked(obj);
 	if (ret)
-		return ret;
+		goto err;
 
 	args->handle = handle;
 	args->size = obj->size;
 
-	return 0;
+err:
+	drm_gem_object_put_unlocked(obj);
+	return ret;
 }
 
 /**
@@ -1294,7 +1277,7 @@
 		ret = dma_resv_lock_slow_interruptible(obj->resv,
 								 acquire_ctx);
 		if (ret) {
-			ww_acquire_done(acquire_ctx);
+			ww_acquire_fini(acquire_ctx);
 			return ret;
 		}
 	}
@@ -1319,7 +1302,7 @@
 				goto retry;
 			}
 
-			ww_acquire_done(acquire_ctx);
+			ww_acquire_fini(acquire_ctx);
 			return ret;
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -474,14 +474,28 @@
 	struct drm_gem_object *obj = vma->vm_private_data;
 	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
 	loff_t num_pages = obj->size >> PAGE_SHIFT;
+	vm_fault_t ret;
 	struct page *page;
+	pgoff_t page_offset;
 
-	if (vmf->pgoff >= num_pages || WARN_ON_ONCE(!shmem->pages))
-		return VM_FAULT_SIGBUS;
+	/* We don't use vmf->pgoff since that has the fake offset */
+	page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
 
-	page = shmem->pages[vmf->pgoff];
+	mutex_lock(&shmem->pages_lock);
 
-	return vmf_insert_page(vma, vmf->address, page);
+	if (page_offset >= num_pages ||
+	    WARN_ON_ONCE(!shmem->pages) ||
+	    shmem->madv < 0) {
+		ret = VM_FAULT_SIGBUS;
+	} else {
+		page = shmem->pages[page_offset];
+
+		ret = vmf_insert_page(vma, vmf->address, page);
+	}
+
+	mutex_unlock(&shmem->pages_lock);
+
+	return ret;
 }
 
 static void drm_gem_shmem_vm_open(struct vm_area_struct *vma)
@@ -540,18 +554,13 @@
 	shmem = to_drm_gem_shmem_obj(vma->vm_private_data);
 
 	ret = drm_gem_shmem_get_pages(shmem);
-	if (ret) {
-		drm_gem_vm_close(vma);
+	if (ret)
 		return ret;
-	}
 
 	/* VM_PFNMAP was set by drm_gem_mmap() */
 	vma->vm_flags &= ~VM_PFNMAP;
 	vma->vm_flags |= VM_MIXEDMAP;
 
-	/* Remove the fake offset */
-	vma->vm_pgoff -= drm_vma_node_start(&shmem->base.vma_node);
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(drm_gem_shmem_mmap);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_gem_vram_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -73,6 +73,10 @@
 	}
 }
 
+/*
+ * Note that on error, drm_gem_vram_init will free the buffer object.
+ */
+
 static int drm_gem_vram_init(struct drm_device *dev,
 			     struct ttm_bo_device *bdev,
 			     struct drm_gem_vram_object *gbo,
@@ -86,8 +90,10 @@
 		gbo->bo.base.funcs = &drm_gem_vram_object_funcs;
 
 	ret = drm_gem_object_init(dev, &gbo->bo.base, size);
-	if (ret)
+	if (ret) {
+		kfree(gbo);
 		return ret;
+	}
 
 	acc_size = ttm_bo_dma_acc_size(bdev, size, sizeof(*gbo));
 
@@ -98,13 +104,13 @@
 			  &gbo->placement, pg_align, interruptible, acc_size,
 			  NULL, NULL, ttm_buffer_object_destroy);
 	if (ret)
-		goto err_drm_gem_object_release;
+		/*
+		 * A failing ttm_bo_init will call ttm_buffer_object_destroy
+		 * to release gbo->bo.base and kfree gbo.
+		 */
+		return ret;
 
 	return 0;
-
-err_drm_gem_object_release:
-	drm_gem_object_release(&gbo->bo.base);
-	return ret;
 }
 
 /**
@@ -134,13 +140,9 @@
 
 	ret = drm_gem_vram_init(dev, bdev, gbo, size, pg_align, interruptible);
 	if (ret < 0)
-		goto err_kfree;
+		return ERR_PTR(ret);
 
 	return gbo;
-
-err_kfree:
-	kfree(gbo);
-	return ERR_PTR(ret);
 }
 EXPORT_SYMBOL(drm_gem_vram_create);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_internal.h
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_internal.h
@@ -59,8 +59,8 @@
 
 void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv);
 void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv);
-void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpriv,
-					struct dma_buf *dma_buf);
+void drm_prime_remove_buf_handle(struct drm_prime_file_private *prime_fpriv,
+				 uint32_t handle);
 
 /* drm_drv.c */
 struct drm_minor *drm_minor_acquire(unsigned int minor_id);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_ioc32.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_ioc32.c
@@ -99,6 +99,8 @@
 	if (copy_from_user(&v32, (void __user *)arg, sizeof(v32)))
 		return -EFAULT;
 
+	memset(&v, 0, sizeof(v));
+
 	v = (struct drm_version) {
 		.name_len = v32.name_len,
 		.name = compat_ptr(v32.name),
@@ -137,6 +139,9 @@
 
 	if (copy_from_user(&uq32, (void __user *)arg, sizeof(uq32)))
 		return -EFAULT;
+
+	memset(&uq, 0, sizeof(uq));
+
 	uq = (struct drm_unique){
 		.unique_len = uq32.unique_len,
 		.unique = compat_ptr(uq32.unique),
@@ -265,6 +270,8 @@
 	if (copy_from_user(&c32, argp, sizeof(c32)))
 		return -EFAULT;
 
+	memset(&client, 0, sizeof(client));
+
 	client.idx = c32.idx;
 
 	err = drm_ioctl_kernel(file, drm_getclient, &client, 0);
@@ -850,12 +857,12 @@
 	if (copy_from_user(&req32, argp, sizeof(req32)))
 		return -EFAULT;
 
+	memset(&req, 0, sizeof(req));
+
 	req.request.type = req32.request.type;
 	req.request.sequence = req32.request.sequence;
 	req.request.signal = req32.request.signal;
 	err = drm_ioctl_kernel(file, drm_wait_vblank_ioctl, &req, DRM_UNLOCKED);
-	if (err)
-		return err;
 
 	req32.reply.type = req.reply.type;
 	req32.reply.sequence = req.reply.sequence;
@@ -864,7 +871,7 @@
 	if (copy_to_user(argp, &req32, sizeof(req32)))
 		return -EFAULT;
 
-	return 0;
+	return err;
 }
 
 #if defined(CONFIG_X86)
@@ -887,6 +894,8 @@
 	struct drm_mode_fb_cmd2 req64;
 	int err;
 
+	memset(&req64, 0, sizeof(req64));
+
 	if (copy_from_user(&req64, argp,
 			   offsetof(drm_mode_fb_cmd232_t, modifier)))
 		return -EFAULT;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_ioctl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_ioctl.c
@@ -118,17 +118,18 @@
 		  struct drm_file *file_priv)
 {
 	struct drm_unique *u = data;
-	struct drm_master *master = file_priv->master;
+	struct drm_master *master;
 
-	mutex_lock(&master->dev->master_mutex);
+	mutex_lock(&dev->master_mutex);
+	master = file_priv->master;
 	if (u->unique_len >= master->unique_len) {
 		if (copy_to_user(u->unique, master->unique, master->unique_len)) {
-			mutex_unlock(&master->dev->master_mutex);
+			mutex_unlock(&dev->master_mutex);
 			return -EFAULT;
 		}
 	}
 	u->unique_len = master->unique_len;
-	mutex_unlock(&master->dev->master_mutex);
+	mutex_unlock(&dev->master_mutex);
 
 	return 0;
 }
@@ -472,7 +473,13 @@
  */
 static int drm_copy_field(char __user *buf, size_t *buf_len, const char *value)
 {
-	int len;
+	size_t len;
+
+	/* don't attempt to copy a NULL pointer */
+	if (WARN_ONCE(!value, "BUG: the value to copy was not set!")) {
+		*buf_len = 0;
+		return 0;
+	}
 
 	/* don't overflow userbuf */
 	len = strlen(value);
@@ -671,6 +678,7 @@
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_SETPROPERTY, drm_connector_property_set_ioctl, DRM_MASTER),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETPROPBLOB, drm_mode_getblob_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETFB, drm_mode_getfb, 0),
+	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETFB2, drm_mode_getfb2_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, drm_mode_addfb_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB2, drm_mode_addfb2_ioctl, 0),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb_ioctl, 0),
@@ -825,6 +833,9 @@
 	if (drm_dev_is_unplugged(dev))
 		return -ENODEV;
 
+       if (DRM_IOCTL_TYPE(cmd) != DRM_IOCTL_BASE)
+               return -ENOTTY;
+
 	is_driver_ioctl = nr >= DRM_COMMAND_BASE && nr < DRM_COMMAND_END;
 
 	if (is_driver_ioctl) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_kms_helper_common.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_kms_helper_common.c
@@ -64,19 +64,18 @@
 
 static int __init drm_kms_helper_init(void)
 {
-	int ret;
+	/*
+	 * The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT)
+	 * but the module doesn't depend on any fb console symbols.  At least
+	 * attempt to load fbcon to avoid leaving the system without a usable
+	 * console.
+	 */
+	if (IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION) &&
+	    IS_MODULE(CONFIG_FRAMEBUFFER_CONSOLE) &&
+	    !IS_ENABLED(CONFIG_EXPERT))
+		request_module_nowait("fbcon");
 
-	/* Call init functions from specific kms helpers here */
-	ret = drm_fb_helper_modinit();
-	if (ret < 0)
-		goto out;
-
-	ret = drm_dp_aux_dev_init();
-	if (ret < 0)
-		goto out;
-
-out:
-	return ret;
+	return drm_dp_aux_dev_init();
 }
 
 static void __exit drm_kms_helper_exit(void)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_lease.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_lease.c
@@ -542,10 +542,12 @@
 	}
 
 	DRM_DEBUG_LEASE("Creating lease\n");
+	/* lessee will take the ownership of leases */
 	lessee = drm_lease_create(lessor, &leases);
 
 	if (IS_ERR(lessee)) {
 		ret = PTR_ERR(lessee);
+		idr_destroy(&leases);
 		goto out_leases;
 	}
 
@@ -580,7 +582,6 @@
 
 out_leases:
 	put_unused_fd(fd);
-	idr_destroy(&leases);
 
 	DRM_DEBUG_LEASE("drm_mode_create_lease_ioctl failed: %d\n", ret);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_mipi_dbi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_mipi_dbi.c
@@ -367,9 +367,9 @@
 	memset(dbidev->tx_buf, 0, len);
 
 	mipi_dbi_command(dbi, MIPI_DCS_SET_COLUMN_ADDRESS, 0, 0,
-			 (width >> 8) & 0xFF, (width - 1) & 0xFF);
+			 ((width - 1) >> 8) & 0xFF, (width - 1) & 0xFF);
 	mipi_dbi_command(dbi, MIPI_DCS_SET_PAGE_ADDRESS, 0, 0,
-			 (height >> 8) & 0xFF, (height - 1) & 0xFF);
+			 ((height - 1) >> 8) & 0xFF, (height - 1) & 0xFF);
 	mipi_dbi_command_buf(dbi, MIPI_DCS_WRITE_MEMORY_START,
 			     (u8 *)dbidev->tx_buf, len);
 
@@ -937,7 +937,7 @@
 			}
 		}
 
-		tr.len = chunk;
+		tr.len = chunk * 2;
 		len -= chunk;
 
 		ret = spi_sync(spi, &m);
@@ -955,7 +955,7 @@
 	int ret;
 
 	if (mipi_dbi_command_is_read(dbi, *cmd))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	MIPI_DBI_DEBUG_COMMAND(*cmd, parameters, num);
 
@@ -1156,6 +1156,13 @@
 	size_t chunk;
 	int ret;
 
+	/* In __spi_validate, there's a validation that no partial transfers
+	 * are accepted (xfer->len % w_size must be zero).
+	 * Here we align max_chunk to multiple of 2 (16bits),
+	 * to prevent transfers from being rejected.
+	 */
+	max_chunk = ALIGN_DOWN(max_chunk, 2);
+
 	spi_message_init_with_transfers(&m, &tr, 1);
 
 	while (len) {
@@ -1187,8 +1194,7 @@
 	struct mipi_dbi_dev *dbidev = m->private;
 	u8 val, cmd = 0, parameters[64];
 	char *buf, *pos, *token;
-	unsigned int i;
-	int ret, idx;
+	int i, ret, idx;
 
 	if (!drm_dev_enter(&dbidev->drm, &idx))
 		return -ENODEV;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_mipi_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_mipi_dsi.c
@@ -221,7 +221,7 @@
 		return dsi;
 	}
 
-	dsi->dev.of_node = info->node;
+	device_set_node(&dsi->dev, of_fwnode_handle(info->node));
 	dsi->channel = info->channel;
 	strlcpy(dsi->name, info->type, sizeof(dsi->name));
 
@@ -300,6 +300,7 @@
 {
 	struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev);
 
+	mipi_dsi_detach(dsi);
 	mipi_dsi_device_unregister(dsi);
 
 	return 0;
@@ -1029,11 +1030,11 @@
  */
 int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline)
 {
-	u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, scanline >> 8,
-			  scanline & 0xff };
+	u8 payload[2] = { scanline >> 8, scanline & 0xff };
 	ssize_t err;
 
-	err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_TEAR_SCANLINE, payload,
+				 sizeof(payload));
 	if (err < 0)
 		return err;
 
@@ -1090,6 +1091,58 @@
 }
 EXPORT_SYMBOL(mipi_dsi_dcs_get_display_brightness);
 
+/**
+ * mipi_dsi_dcs_set_display_brightness_large() - sets the 16-bit brightness value
+ *    of the display
+ * @dsi: DSI peripheral device
+ * @brightness: brightness value
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int mipi_dsi_dcs_set_display_brightness_large(struct mipi_dsi_device *dsi,
+					     u16 brightness)
+{
+	u8 payload[2] = { brightness >> 8, brightness & 0xff };
+	ssize_t err;
+
+	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS,
+				 payload, sizeof(payload));
+	if (err < 0)
+		return err;
+
+	return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness_large);
+
+/**
+ * mipi_dsi_dcs_get_display_brightness_large() - gets the current 16-bit
+ *    brightness value of the display
+ * @dsi: DSI peripheral device
+ * @brightness: brightness value
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int mipi_dsi_dcs_get_display_brightness_large(struct mipi_dsi_device *dsi,
+					     u16 *brightness)
+{
+	u8 brightness_be[2];
+	ssize_t err;
+
+	err = mipi_dsi_dcs_read(dsi, MIPI_DCS_GET_DISPLAY_BRIGHTNESS,
+				brightness_be, sizeof(brightness_be));
+	if (err <= 0) {
+		if (err == 0)
+			err = -ENODATA;
+
+		return err;
+	}
+
+	*brightness = (brightness_be[0] << 8) | brightness_be[1];
+
+	return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_dcs_get_display_brightness_large);
+
 static int mipi_dsi_drv_probe(struct device *dev)
 {
 	struct mipi_dsi_driver *drv = to_mipi_dsi_driver(dev->driver);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_modes.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_modes.c
@@ -1672,6 +1672,13 @@
 		}
 	}
 
+	if (!(rotation & DRM_MODE_ROTATE_MASK))
+		rotation |= DRM_MODE_ROTATE_0;
+
+	/* Make sure there is exactly one rotation defined */
+	if (!is_power_of_2(rotation & DRM_MODE_ROTATE_MASK))
+		return -EINVAL;
+
 	mode->rotation_reflection = rotation;
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_of.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_of.c
@@ -100,8 +100,10 @@
 EXPORT_SYMBOL_GPL(drm_of_component_match_add);
 
 /**
- * drm_of_component_probe - Generic probe function for a component based master
+ * drm_of_component_probe_with_match - Generic probe function with match
+ *                                     entries for a component based master
  * @dev: master device containing the OF node
+ * @match: component match pointer provided to store matches
  * @compare_of: compare function used for matching components
  * @m_ops: component master ops to be used
  *
@@ -112,12 +114,12 @@
  *
  * Returns zero if successful, or one of the standard error codes if it fails.
  */
-int drm_of_component_probe(struct device *dev,
+int drm_of_component_probe_with_match(struct device *dev,
+			   struct component_match *match,
 			   int (*compare_of)(struct device *, void *),
 			   const struct component_master_ops *m_ops)
 {
 	struct device_node *ep, *port, *remote;
-	struct component_match *match = NULL;
 	int i;
 
 	if (!dev->of_node)
@@ -183,6 +185,29 @@
 
 	return component_master_add_with_match(dev, m_ops, match);
 }
+EXPORT_SYMBOL(drm_of_component_probe_with_match);
+
+/**
+ * drm_of_component_probe - Generic probe function for a component based master
+ * @dev: master device containing the OF node
+ * @compare_of: compare function used for matching components
+ * @master_ops: component master ops to be used
+ *
+ * Parse the platform device OF node and bind all the components associated
+ * with the master. Interface ports are added before the encoders in order to
+ * satisfy their .bind requirements
+ * See Documentation/devicetree/bindings/graph.txt for the bindings.
+ *
+ * Returns zero if successful, or one of the standard error codes if it fails.
+ */
+int drm_of_component_probe(struct device *dev,
+			   int (*compare_of)(struct device *, void *),
+			   const struct component_master_ops *m_ops)
+{
+	struct component_match *match = NULL;
+
+	return drm_of_component_probe_with_match(dev, match, compare_of, m_ops);
+}
 EXPORT_SYMBOL(drm_of_component_probe);
 
 /*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_panel.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_panel.c
@@ -21,11 +21,13 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/backlight.h>
 #include <linux/err.h>
 #include <linux/module.h>
 
 #include <drm/drm_crtc.h>
 #include <drm/drm_panel.h>
+#include <drm/drm_print.h>
 
 static DEFINE_MUTEX(panel_lock);
 static LIST_HEAD(panel_list);
@@ -44,13 +46,21 @@
 /**
  * drm_panel_init - initialize a panel
  * @panel: DRM panel
+ * @dev: parent device of the panel
+ * @funcs: panel operations
+ * @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
+ *	the panel interface
  *
- * Sets up internal fields of the panel so that it can subsequently be added
- * to the registry.
+ * Initialize the panel structure for subsequent registration with
+ * drm_panel_add().
  */
-void drm_panel_init(struct drm_panel *panel)
+void drm_panel_init(struct drm_panel *panel, struct device *dev,
+		    const struct drm_panel_funcs *funcs, int connector_type)
 {
 	INIT_LIST_HEAD(&panel->list);
+	panel->dev = dev;
+	panel->funcs = funcs;
+	panel->connector_type = connector_type;
 }
 EXPORT_SYMBOL(drm_panel_init);
 
@@ -143,10 +153,13 @@
  */
 int drm_panel_prepare(struct drm_panel *panel)
 {
-	if (panel && panel->funcs && panel->funcs->prepare)
+	if (!panel)
+		return -EINVAL;
+
+	if (panel->funcs && panel->funcs->prepare)
 		return panel->funcs->prepare(panel);
 
-	return panel ? -ENOSYS : -EINVAL;
+	return 0;
 }
 EXPORT_SYMBOL(drm_panel_prepare);
 
@@ -163,10 +176,13 @@
  */
 int drm_panel_unprepare(struct drm_panel *panel)
 {
-	if (panel && panel->funcs && panel->funcs->unprepare)
+	if (!panel)
+		return -EINVAL;
+
+	if (panel->funcs && panel->funcs->unprepare)
 		return panel->funcs->unprepare(panel);
 
-	return panel ? -ENOSYS : -EINVAL;
+	return 0;
 }
 EXPORT_SYMBOL(drm_panel_unprepare);
 
@@ -182,10 +198,23 @@
  */
 int drm_panel_enable(struct drm_panel *panel)
 {
-	if (panel && panel->funcs && panel->funcs->enable)
-		return panel->funcs->enable(panel);
+	int ret;
+
+	if (!panel)
+		return -EINVAL;
+
+	if (panel->funcs && panel->funcs->enable) {
+		ret = panel->funcs->enable(panel);
+		if (ret < 0)
+			return ret;
+	}
+
+	ret = backlight_enable(panel->backlight);
+	if (ret < 0)
+		DRM_DEV_INFO(panel->dev, "failed to enable backlight: %d\n",
+			     ret);
 
-	return panel ? -ENOSYS : -EINVAL;
+	return 0;
 }
 EXPORT_SYMBOL(drm_panel_enable);
 
@@ -201,10 +230,20 @@
  */
 int drm_panel_disable(struct drm_panel *panel)
 {
-	if (panel && panel->funcs && panel->funcs->disable)
+	int ret;
+
+	if (!panel)
+		return -EINVAL;
+
+	ret = backlight_disable(panel->backlight);
+	if (ret < 0)
+		DRM_DEV_INFO(panel->dev, "failed to disable backlight: %d\n",
+			     ret);
+
+	if (panel->funcs && panel->funcs->disable)
 		return panel->funcs->disable(panel);
 
-	return panel ? -ENOSYS : -EINVAL;
+	return 0;
 }
 EXPORT_SYMBOL(drm_panel_disable);
 
@@ -220,10 +259,13 @@
  */
 int drm_panel_get_modes(struct drm_panel *panel)
 {
-	if (panel && panel->funcs && panel->funcs->get_modes)
+	if (!panel)
+		return -EINVAL;
+
+	if (panel->funcs && panel->funcs->get_modes)
 		return panel->funcs->get_modes(panel);
 
-	return panel ? -ENOSYS : -EINVAL;
+	return -EOPNOTSUPP;
 }
 EXPORT_SYMBOL(drm_panel_get_modes);
 
@@ -266,6 +308,45 @@
 EXPORT_SYMBOL(of_drm_find_panel);
 #endif
 
+#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
+/**
+ * drm_panel_of_backlight - use backlight device node for backlight
+ * @panel: DRM panel
+ *
+ * Use this function to enable backlight handling if your panel
+ * uses device tree and has a backlight phandle.
+ *
+ * When the panel is enabled backlight will be enabled after a
+ * successful call to &drm_panel_funcs.enable()
+ *
+ * When the panel is disabled backlight will be disabled before the
+ * call to &drm_panel_funcs.disable().
+ *
+ * A typical implementation for a panel driver supporting device tree
+ * will call this function at probe time. Backlight will then be handled
+ * transparently without requiring any intervention from the driver.
+ * drm_panel_of_backlight() must be called after the call to drm_panel_init().
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int drm_panel_of_backlight(struct drm_panel *panel)
+{
+	struct backlight_device *backlight;
+
+	if (!panel || !panel->dev)
+		return -EINVAL;
+
+	backlight = devm_of_find_backlight(panel->dev);
+
+	if (IS_ERR(backlight))
+		return PTR_ERR(backlight);
+
+	panel->backlight = backlight;
+	return 0;
+}
+EXPORT_SYMBOL(drm_panel_of_backlight);
+#endif
+
 MODULE_AUTHOR("Thierry Reding <treding@nvidia.com>");
 MODULE_DESCRIPTION("DRM panel infrastructure");
 MODULE_LICENSE("GPL and additional rights");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_panel_orientation_quirks.c
@@ -30,12 +30,6 @@
 	int orientation;
 };
 
-static const struct drm_dmi_panel_orientation_data acer_s1003 = {
-	.width = 800,
-	.height = 1280,
-	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
-};
-
 static const struct drm_dmi_panel_orientation_data asus_t100ha = {
 	.width = 800,
 	.height = 1280,
@@ -50,6 +44,14 @@
 	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
 };
 
+static const struct drm_dmi_panel_orientation_data gpd_onemix2s = {
+	.width = 1200,
+	.height = 1920,
+	.bios_dates = (const char * const []){ "05/21/2018", "10/26/2018",
+		"03/04/2019", NULL },
+	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
+};
+
 static const struct drm_dmi_panel_orientation_data gpd_pocket = {
 	.width = 1200,
 	.height = 1920,
@@ -90,6 +92,13 @@
 	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
 };
 
+static const struct drm_dmi_panel_orientation_data onegx1_pro = {
+	.width = 1200,
+	.height = 1920,
+	.bios_dates = (const char * const []){ "12/17/2020", NULL },
+	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
+};
+
 static const struct drm_dmi_panel_orientation_data lcd720x1280_rightside_up = {
 	.width = 720,
 	.height = 1280,
@@ -108,19 +117,61 @@
 	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
 };
 
+static const struct drm_dmi_panel_orientation_data lcd1280x1920_rightside_up = {
+	.width = 1280,
+	.height = 1920,
+	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
+};
+
+static const struct drm_dmi_panel_orientation_data lcd1600x2560_leftside_up = {
+	.width = 1600,
+	.height = 2560,
+	.orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP,
+};
+
 static const struct dmi_system_id orientation_data[] = {
 	{	/* Acer One 10 (S1003) */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"),
 		},
-		.driver_data = (void *)&acer_s1003,
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Acer Switch V 10 (SW5-017) */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Anbernic Win600 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Anbernic"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Win600"),
+		},
+		.driver_data = (void *)&lcd720x1280_rightside_up,
 	}, {	/* Asus T100HA */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100HAN"),
 		},
 		.driver_data = (void *)&asus_t100ha,
+	}, {	/* Asus T101HA */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T101HA"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Asus T103HAF */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* AYA NEO 2021 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYADEVICE"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* GPD MicroPC (generic strings, also match on bios date) */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"),
@@ -135,6 +186,12 @@
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "MicroPC"),
 		},
 		.driver_data = (void *)&lcd720x1280_rightside_up,
+	}, {	/* GPD Win Max */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1619-01"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/*
 		 * GPD Pocket, note that the the DMI data is less generic then
 		 * it seems, devices with a board-vendor of "AMI Corporation"
@@ -172,6 +229,12 @@
 		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),
 		},
 		.driver_data = (void *)&gpd_win2,
+	}, {	/* GPD Win 3 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1618-03")
+		},
+		.driver_data = (void *)&lcd720x1280_rightside_up,
 	}, {	/* I.T.Works TW891 */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "To be filled by O.E.M."),
@@ -180,6 +243,13 @@
 		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "TW891"),
 		},
 		.driver_data = (void *)&itworks_tw891,
+	}, {	/* KD Kurio Smart C15200 2-in-1 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "KD Interactive"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Kurio Smart"),
+		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "KDM960BCP"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/*
 		 * Lenovo Ideapad Miix 310 laptop, only some production batches
 		 * have a portrait screen, the resolution checks makes the quirk
@@ -198,19 +268,83 @@
 		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
 		},
 		.driver_data = (void *)&lcd800x1280_rightside_up,
-	}, {	/* Lenovo Ideapad D330 */
+	}, {	/* Lenovo Ideapad D330-10IGM (HD) */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Lenovo Ideapad D330-10IGM (FHD) */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "81H3"),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"),
 		},
 		.driver_data = (void *)&lcd1200x1920_rightside_up,
+	}, {	/* Lenovo Ideapad D330-10IGL (HD) */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGL"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Lenovo IdeaPad Duet 3 10IGL5 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Duet 3 10IGL5"),
+		},
+		.driver_data = (void *)&lcd1200x1920_rightside_up,
+	}, {	/* Lenovo Yoga Book X90F / X90L */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
+		},
+		.driver_data = (void *)&lcd1200x1920_rightside_up,
+	}, {	/* Lenovo Yoga Book X91F / X91L */
+		.matches = {
+		  /* Non exact match to match F + L versions */
+		  DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91"),
+		},
+		.driver_data = (void *)&lcd1200x1920_rightside_up,
+	}, {	/* OneGX1 Pro */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SYSTEM_PRODUCT_NAME"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"),
+		},
+		.driver_data = (void *)&onegx1_pro,
+	}, {	/* OneXPlayer */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"),
+		},
+		.driver_data = (void *)&lcd1600x2560_leftside_up,
+	}, {	/* Samsung GalaxyBook 10.6 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Galaxy Book 10.6"),
+		},
+		.driver_data = (void *)&lcd1280x1920_rightside_up,
+	}, {	/* Valve Steam Deck */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Valve"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Jupiter"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "1"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* VIOS LTH17 */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VIOS"),
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "LTH17"),
 		},
 		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* One Mix 2S (generic strings, also match on bios date) */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
+		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Default string"),
+		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),
+		},
+		.driver_data = (void *)&gpd_onemix2s,
 	},
 	{}
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_pci.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_pci.c
@@ -51,8 +51,6 @@
 drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align)
 {
 	drm_dma_handle_t *dmah;
-	unsigned long addr;
-	size_t sz;
 
 	/* pci_alloc_consistent only guarantees alignment to the smallest
 	 * PAGE_SIZE order which is greater than or equal to the requested size.
@@ -68,20 +66,13 @@
 	dmah->size = size;
 	dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size,
 					 &dmah->busaddr,
-					 GFP_KERNEL | __GFP_COMP);
+					 GFP_KERNEL);
 
 	if (dmah->vaddr == NULL) {
 		kfree(dmah);
 		return NULL;
 	}
 
-	/* XXX - Is virt_to_page() legal for consistent mem? */
-	/* Reserve */
-	for (addr = (unsigned long)dmah->vaddr, sz = size;
-	     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {
-		SetPageReserved(virt_to_page((void *)addr));
-	}
-
 	return dmah;
 }
 
@@ -94,19 +85,9 @@
  */
 void __drm_legacy_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah)
 {
-	unsigned long addr;
-	size_t sz;
-
-	if (dmah->vaddr) {
-		/* XXX - Is virt_to_page() legal for consistent mem? */
-		/* Unreserve */
-		for (addr = (unsigned long)dmah->vaddr, sz = dmah->size;
-		     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {
-			ClearPageReserved(virt_to_page((void *)addr));
-		}
+	if (dmah->vaddr)
 		dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr,
 				  dmah->busaddr);
-	}
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_plane.c
@@ -186,6 +186,13 @@
 	if (WARN_ON(config->num_total_plane >= 32))
 		return -EINVAL;
 
+	/*
+	 * First driver to need more than 64 formats needs to fix this. Each
+	 * format is encoded as a bit and the current code only supports a u64.
+	 */
+	if (WARN_ON(format_count > 64))
+		return -EINVAL;
+
 	WARN_ON(drm_drv_uses_atomic_modeset(dev) &&
 		(!funcs->atomic_destroy_state ||
 		 !funcs->atomic_duplicate_state));
@@ -207,13 +214,6 @@
 		return -ENOMEM;
 	}
 
-	/*
-	 * First driver to need more than 64 formats needs to fix this. Each
-	 * format is encoded as a bit and the current code only supports a u64.
-	 */
-	if (WARN_ON(format_count > 64))
-		return -EINVAL;
-
 	if (format_modifiers) {
 		const uint64_t *temp_modifiers = format_modifiers;
 		while (*temp_modifiers++ != DRM_FORMAT_MOD_INVALID)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_plane_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_plane_helper.c
@@ -123,7 +123,6 @@
 		.crtc_w = drm_rect_width(dst),
 		.crtc_h = drm_rect_height(dst),
 		.rotation = rotation,
-		.visible = *visible,
 	};
 	struct drm_crtc_state crtc_state = {
 		.crtc = crtc,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_prime.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_prime.c
@@ -187,29 +187,33 @@
 	return -ENOENT;
 }
 
-void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpriv,
-					struct dma_buf *dma_buf)
+void drm_prime_remove_buf_handle(struct drm_prime_file_private *prime_fpriv,
+				 uint32_t handle)
 {
 	struct rb_node *rb;
 
-	rb = prime_fpriv->dmabufs.rb_node;
+	mutex_lock(&prime_fpriv->lock);
+
+	rb = prime_fpriv->handles.rb_node;
 	while (rb) {
 		struct drm_prime_member *member;
 
-		member = rb_entry(rb, struct drm_prime_member, dmabuf_rb);
-		if (member->dma_buf == dma_buf) {
+		member = rb_entry(rb, struct drm_prime_member, handle_rb);
+		if (member->handle == handle) {
 			rb_erase(&member->handle_rb, &prime_fpriv->handles);
 			rb_erase(&member->dmabuf_rb, &prime_fpriv->dmabufs);
 
-			dma_buf_put(dma_buf);
+			dma_buf_put(member->dma_buf);
 			kfree(member);
-			return;
-		} else if (member->dma_buf < dma_buf) {
+			break;
+		} else if (member->handle < handle) {
 			rb = rb->rb_right;
 		} else {
 			rb = rb->rb_left;
 		}
 	}
+
+	mutex_unlock(&prime_fpriv->lock);
 }
 
 void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_probe_helper.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_probe_helper.c
@@ -112,7 +112,7 @@
 			continue;
 		}
 
-		ret = drm_bridge_mode_valid(encoder->bridge, mode);
+		ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
 		if (ret != MODE_OK) {
 			/* There is also no point in continuing for crtc check
 			 * here. */
@@ -460,8 +460,9 @@
 		 */
 		dev->mode_config.delayed_event = true;
 		if (dev->mode_config.poll_enabled)
-			schedule_delayed_work(&dev->mode_config.output_poll_work,
-					      0);
+			mod_delayed_work(system_wq,
+					 &dev->mode_config.output_poll_work,
+					 0);
 	}
 
 	/* Re-enable polling in case the global poll config changed. */
@@ -488,7 +489,7 @@
 		count = drm_add_override_edid_modes(connector);
 
 	if (count == 0 && connector->status == connector_status_connected)
-		count = drm_add_modes_noedid(connector, 1024, 768);
+		count = drm_add_modes_noedid(connector, 1920, 1080);
 	count += drm_helper_probe_add_cmdline_mode(connector);
 	if (count == 0)
 		goto prune;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_property.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_property.c
@@ -561,7 +561,7 @@
 	struct drm_property_blob *blob;
 	int ret;
 
-	if (!length || length > ULONG_MAX - sizeof(struct drm_property_blob))
+	if (!length || length > INT_MAX - sizeof(struct drm_property_blob))
 		return ERR_PTR(-EINVAL);
 
 	blob = kvzalloc(sizeof(struct drm_property_blob)+length, GFP_KERNEL);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_rect.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_rect.c
@@ -54,7 +54,12 @@
 
 static u32 clip_scaled(u32 src, u32 dst, u32 clip)
 {
-	u64 tmp = mul_u32_u32(src, dst - clip);
+	u64 tmp;
+
+	if (dst == 0)
+		return 0;
+
+	tmp = mul_u32_u32(src, dst - clip);
 
 	/*
 	 * Round toward 1.0 when clipping so that we don't accidentally
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_syncobj.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_syncobj.c
@@ -326,19 +326,27 @@
 		return -ENOENT;
 
 	*fence = drm_syncobj_fence_get(syncobj);
-	drm_syncobj_put(syncobj);
 
 	if (*fence) {
 		ret = dma_fence_chain_find_seqno(fence, point);
-		if (!ret)
-			return 0;
+		if (!ret) {
+			/* If the requested seqno is already signaled
+			 * drm_syncobj_find_fence may return a NULL
+			 * fence. To make sure the recipient gets
+			 * signalled, use a new fence instead.
+			 */
+			if (!*fence)
+				*fence = dma_fence_get_stub();
+
+			goto out;
+		}
 		dma_fence_put(*fence);
 	} else {
 		ret = -EINVAL;
 	}
 
 	if (!(flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT))
-		return ret;
+		goto out;
 
 	memset(&wait, 0, sizeof(wait));
 	wait.task = current;
@@ -370,6 +378,9 @@
 	if (wait.node.next)
 		drm_syncobj_remove_wait(syncobj, &wait);
 
+out:
+	drm_syncobj_put(syncobj);
+
 	return ret;
 }
 EXPORT_SYMBOL(drm_syncobj_find_fence);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_sysfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_sysfs.c
@@ -293,9 +293,6 @@
 		return PTR_ERR(connector->kdev);
 	}
 
-	/* Let userspace know we have a new connector */
-	drm_sysfs_hotplug_event(dev);
-
 	if (connector->ddc)
 		return sysfs_create_link(&connector->kdev->kobj,
 				 &connector->ddc->dev.kobj, "ddc");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/drm_vblank.c
+++ linux-ein-5.4.0/drivers/gpu/drm/drm_vblank.c
@@ -69,6 +69,12 @@
  * &drm_driver.max_vblank_count. In that case the vblank core only disables the
  * vblanks after a timer has expired, which can be configured through the
  * ``vblankoffdelay`` module parameter.
+ *
+ * Drivers for hardware without support for vertical-blanking interrupts
+ * must not call drm_vblank_init(). For such drivers, atomic helpers will
+ * automatically generate fake vblank events as part of the display update.
+ * This functionality also can be controlled by the driver by enabling and
+ * disabling struct drm_crtc_state.no_vblank.
  */
 
 /* Retry timestamp calculation up to 3 times to satisfy
@@ -489,6 +495,28 @@
 EXPORT_SYMBOL(drm_vblank_init);
 
 /**
+ * drm_dev_has_vblank - test if vblanking has been initialized for
+ *                      a device
+ * @dev: the device
+ *
+ * Drivers may call this function to test if vblank support is
+ * initialized for a device. For most hardware this means that vblanking
+ * can also be enabled.
+ *
+ * Atomic helpers use this function to initialize
+ * &drm_crtc_state.no_vblank. See also drm_atomic_helper_check_modeset().
+ *
+ * Returns:
+ * True if vblanking has been initialized for the given device, false
+ * otherwise.
+ */
+bool drm_dev_has_vblank(const struct drm_device *dev)
+{
+	return dev->num_crtcs != 0;
+}
+EXPORT_SYMBOL(drm_dev_has_vblank);
+
+/**
  * drm_crtc_vblank_waitqueue - get vblank waitqueue for the CRTC
  * @crtc: which CRTC's vblank waitqueue to retrieve
  *
@@ -1581,7 +1609,7 @@
 	unsigned int flags, pipe, high_pipe;
 
 	if (!dev->irq_enabled)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	if (vblwait->request.type & _DRM_VBLANK_SIGNAL)
 		return -EINVAL;
@@ -1838,7 +1866,7 @@
 		return -EOPNOTSUPP;
 
 	if (!dev->irq_enabled)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	crtc = drm_crtc_find(dev, file_priv, get_seq->crtc_id);
 	if (!crtc)
@@ -1896,7 +1924,7 @@
 		return -EOPNOTSUPP;
 
 	if (!dev->irq_enabled)
-		return -EINVAL;
+		return -EOPNOTSUPP;
 
 	crtc = drm_crtc_find(dev, file_priv, queue_seq->crtc_id);
 	if (!crtc)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_buffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_buffer.c
@@ -12,6 +12,7 @@
 
 #include "common.xml.h"
 #include "state.xml.h"
+#include "state_blt.xml.h"
 #include "state_hi.xml.h"
 #include "state_3d.xml.h"
 #include "cmdstream.xml.h"
@@ -233,6 +234,8 @@
 	struct etnaviv_cmdbuf *buffer = &gpu->buffer;
 	unsigned int waitlink_offset = buffer->user_size - 16;
 	u32 link_target, flush = 0;
+	bool has_blt = !!(gpu->identity.minor_features5 &
+			  chipMinorFeatures5_BLT_ENGINE);
 
 	lockdep_assert_held(&gpu->lock);
 
@@ -248,16 +251,38 @@
 	if (flush) {
 		unsigned int dwords = 7;
 
+		if (has_blt)
+			dwords += 10;
+
 		link_target = etnaviv_buffer_reserve(gpu, buffer, dwords);
 
 		CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
 		CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
+		if (has_blt) {
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+			CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+		}
 		CMD_LOAD_STATE(buffer, VIVS_GL_FLUSH_CACHE, flush);
-		if (gpu->exec_state == ETNA_PIPE_3D)
-			CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
-				       VIVS_TS_FLUSH_CACHE_FLUSH);
+		if (gpu->exec_state == ETNA_PIPE_3D) {
+			if (has_blt) {
+				CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+				CMD_LOAD_STATE(buffer, VIVS_BLT_SET_COMMAND, 0x1);
+				CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+			} else {
+				CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
+					       VIVS_TS_FLUSH_CACHE_FLUSH);
+			}
+		}
 		CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
 		CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
+		if (has_blt) {
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+			CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+		}
 		CMD_END(buffer);
 
 		etnaviv_buffer_replace_wait(buffer, waitlink_offset,
@@ -323,6 +348,8 @@
 	bool switch_mmu_context = gpu->mmu_context != mmu_context;
 	unsigned int new_flush_seq = READ_ONCE(gpu->mmu_context->flush_seq);
 	bool need_flush = switch_mmu_context || gpu->flush_seq != new_flush_seq;
+	bool has_blt = !!(gpu->identity.minor_features5 &
+			  chipMinorFeatures5_BLT_ENGINE);
 
 	lockdep_assert_held(&gpu->lock);
 
@@ -370,8 +397,7 @@
 		if (switch_mmu_context) {
 			struct etnaviv_iommu_context *old_context = gpu->mmu_context;
 
-			etnaviv_iommu_context_get(mmu_context);
-			gpu->mmu_context = mmu_context;
+			gpu->mmu_context = etnaviv_iommu_context_get(mmu_context);
 			etnaviv_iommu_context_put(old_context);
 		}
 
@@ -433,6 +459,15 @@
 	 * 2 semaphore stall + 1 event + 1 wait + 1 link.
 	 */
 	return_dwords = 7;
+
+	/*
+	 * When the BLT engine is present we need 6 more dwords in the return
+	 * target: 3 enable/flush/disable + 4 enable/semaphore stall/disable,
+	 * but we don't need the normal TS flush state.
+	 */
+	if (has_blt)
+		return_dwords += 6;
+
 	return_target = etnaviv_buffer_reserve(gpu, buffer, return_dwords);
 	CMD_LINK(cmdbuf, return_dwords, return_target);
 
@@ -447,11 +482,25 @@
 		CMD_LOAD_STATE(buffer, VIVS_GL_FLUSH_CACHE,
 				       VIVS_GL_FLUSH_CACHE_DEPTH |
 				       VIVS_GL_FLUSH_CACHE_COLOR);
-		CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
-				       VIVS_TS_FLUSH_CACHE_FLUSH);
+		if (has_blt) {
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_SET_COMMAND, 0x1);
+			CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+		} else {
+			CMD_LOAD_STATE(buffer, VIVS_TS_FLUSH_CACHE,
+					       VIVS_TS_FLUSH_CACHE_FLUSH);
+		}
 	}
 	CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
 	CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE);
+
+	if (has_blt) {
+		CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x1);
+		CMD_SEM(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+		CMD_STALL(buffer, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_BLT);
+		CMD_LOAD_STATE(buffer, VIVS_BLT_ENABLE, 0x0);
+	}
+
 	CMD_LOAD_STATE(buffer, VIVS_GL_EVENT, VIVS_GL_EVENT_EVENT_ID(event) |
 		       VIVS_GL_EVENT_FROM_PE);
 	CMD_WAIT(buffer);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_drv.c
@@ -232,19 +232,11 @@
 
 static int etnaviv_debugfs_init(struct drm_minor *minor)
 {
-	struct drm_device *dev = minor->dev;
-	int ret;
-
-	ret = drm_debugfs_create_files(etnaviv_debugfs_list,
-			ARRAY_SIZE(etnaviv_debugfs_list),
-			minor->debugfs_root, minor);
-
-	if (ret) {
-		dev_err(dev->dev, "could not install etnaviv_debugfs_list\n");
-		return ret;
-	}
+	drm_debugfs_create_files(etnaviv_debugfs_list,
+				 ARRAY_SIZE(etnaviv_debugfs_list),
+				 minor->debugfs_root, minor);
 
-	return ret;
+	return 0;
 }
 #endif
 
@@ -282,11 +274,6 @@
 			args->flags, &args->handle);
 }
 
-#define TS(t) ((struct timespec){ \
-	.tv_sec = (t).tv_sec, \
-	.tv_nsec = (t).tv_nsec \
-})
-
 static int etnaviv_ioctl_gem_cpu_prep(struct drm_device *dev, void *data,
 		struct drm_file *file)
 {
@@ -301,9 +288,9 @@
 	if (!obj)
 		return -ENOENT;
 
-	ret = etnaviv_gem_cpu_prep(obj, args->op, &TS(args->timeout));
+	ret = etnaviv_gem_cpu_prep(obj, args->op, &args->timeout);
 
-	drm_gem_object_put_unlocked(obj);
+	drm_gem_object_put(obj);
 
 	return ret;
 }
@@ -324,7 +311,7 @@
 
 	ret = etnaviv_gem_cpu_fini(obj);
 
-	drm_gem_object_put_unlocked(obj);
+	drm_gem_object_put(obj);
 
 	return ret;
 }
@@ -344,7 +331,7 @@
 		return -ENOENT;
 
 	ret = etnaviv_gem_mmap_offset(obj, &args->offset);
-	drm_gem_object_put_unlocked(obj);
+	drm_gem_object_put(obj);
 
 	return ret;
 }
@@ -354,7 +341,7 @@
 {
 	struct drm_etnaviv_wait_fence *args = data;
 	struct etnaviv_drm_private *priv = dev->dev_private;
-	struct timespec *timeout = &TS(args->timeout);
+	struct drm_etnaviv_timespec *timeout = &args->timeout;
 	struct etnaviv_gpu *gpu;
 
 	if (args->flags & ~(ETNA_WAIT_NONBLOCK))
@@ -403,7 +390,7 @@
 {
 	struct etnaviv_drm_private *priv = dev->dev_private;
 	struct drm_etnaviv_gem_wait *args = data;
-	struct timespec *timeout = &TS(args->timeout);
+	struct drm_etnaviv_timespec *timeout = &args->timeout;
 	struct drm_gem_object *obj;
 	struct etnaviv_gpu *gpu;
 	int ret;
@@ -427,7 +414,7 @@
 
 	ret = etnaviv_gem_wait_bo(gpu, obj, timeout);
 
-	drm_gem_object_put_unlocked(obj);
+	drm_gem_object_put(obj);
 
 	return ret;
 }
@@ -555,6 +542,7 @@
 	mutex_init(&priv->gem_lock);
 	INIT_LIST_HEAD(&priv->gem_list);
 	priv->num_gpus = 0;
+	priv->shm_gfp_mask = GFP_HIGHUSER | __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
 
 	priv->cmdbuf_suballoc = etnaviv_cmdbuf_suballoc_new(drm->dev);
 	if (IS_ERR(priv->cmdbuf_suballoc)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_drv.h
@@ -35,6 +35,7 @@
 	int num_gpus;
 	struct device_dma_parameters dma_parms;
 	struct etnaviv_gpu *gpu[ETNA_MAX_PIPES];
+	gfp_t shm_gfp_mask;
 
 	struct etnaviv_cmdbuf_suballoc *cmdbuf_suballoc;
 	struct etnaviv_iommu_global *mmu_global;
@@ -61,7 +62,7 @@
 void etnaviv_gem_prime_unpin(struct drm_gem_object *obj);
 void *etnaviv_gem_vmap(struct drm_gem_object *obj);
 int etnaviv_gem_cpu_prep(struct drm_gem_object *obj, u32 op,
-		struct timespec *timeout);
+		struct drm_etnaviv_timespec *timeout);
 int etnaviv_gem_cpu_fini(struct drm_gem_object *obj);
 void etnaviv_gem_free_object(struct drm_gem_object *obj);
 int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
@@ -107,11 +108,12 @@
  * between the specified timeout and the current CLOCK_MONOTONIC time.
  */
 static inline unsigned long etnaviv_timeout_to_jiffies(
-	const struct timespec *timeout)
+	const struct drm_etnaviv_timespec *timeout)
 {
-	struct timespec64 ts, to;
-
-	to = timespec_to_timespec64(*timeout);
+	struct timespec64 ts, to = {
+		.tv_sec = timeout->tv_sec,
+		.tv_nsec = timeout->tv_nsec,
+	};
 
 	ktime_get_ts64(&ts);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_dump.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_dump.c
@@ -125,9 +125,9 @@
 		return;
 	etnaviv_dump_core = false;
 
-	mutex_lock(&gpu->mmu_context->lock);
+	mutex_lock(&submit->mmu_context->lock);
 
-	mmu_size = etnaviv_iommu_dump_size(gpu->mmu_context);
+	mmu_size = etnaviv_iommu_dump_size(submit->mmu_context);
 
 	/* We always dump registers, mmu, ring, hanging cmdbuf and end marker */
 	n_obj = 5;
@@ -157,7 +157,7 @@
 	iter.start = __vmalloc(file_size, GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY,
 			       PAGE_KERNEL);
 	if (!iter.start) {
-		mutex_unlock(&gpu->mmu_context->lock);
+		mutex_unlock(&submit->mmu_context->lock);
 		dev_warn(gpu->dev, "failed to allocate devcoredump file\n");
 		return;
 	}
@@ -169,18 +169,18 @@
 	memset(iter.hdr, 0, iter.data - iter.start);
 
 	etnaviv_core_dump_registers(&iter, gpu);
-	etnaviv_core_dump_mmu(&iter, gpu->mmu_context, mmu_size);
+	etnaviv_core_dump_mmu(&iter, submit->mmu_context, mmu_size);
 	etnaviv_core_dump_mem(&iter, ETDUMP_BUF_RING, gpu->buffer.vaddr,
 			      gpu->buffer.size,
 			      etnaviv_cmdbuf_get_va(&gpu->buffer,
-					&gpu->mmu_context->cmdbuf_mapping));
+					&submit->mmu_context->cmdbuf_mapping));
 
 	etnaviv_core_dump_mem(&iter, ETDUMP_BUF_CMD,
 			      submit->cmdbuf.vaddr, submit->cmdbuf.size,
 			      etnaviv_cmdbuf_get_va(&submit->cmdbuf,
-					&gpu->mmu_context->cmdbuf_mapping));
+					&submit->mmu_context->cmdbuf_mapping));
 
-	mutex_unlock(&gpu->mmu_context->lock);
+	mutex_unlock(&submit->mmu_context->lock);
 
 	/* Reserve space for the bomap */
 	if (n_bomap_pages) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gem.c
@@ -27,7 +27,7 @@
 	 * because display controller, GPU, etc. are not coherent.
 	 */
 	if (etnaviv_obj->flags & ETNA_BO_CACHE_MASK)
-		dma_map_sg(dev->dev, sgt->sgl, sgt->nents, DMA_BIDIRECTIONAL);
+		dma_map_sgtable(dev->dev, sgt, DMA_BIDIRECTIONAL, 0);
 }
 
 static void etnaviv_gem_scatterlist_unmap(struct etnaviv_gem_object *etnaviv_obj)
@@ -51,7 +51,7 @@
 	 * discard those writes.
 	 */
 	if (etnaviv_obj->flags & ETNA_BO_CACHE_MASK)
-		dma_unmap_sg(dev->dev, sgt->sgl, sgt->nents, DMA_BIDIRECTIONAL);
+		dma_unmap_sgtable(dev->dev, sgt, DMA_BIDIRECTIONAL, 0);
 }
 
 /* called with etnaviv_obj->lock held */
@@ -244,7 +244,7 @@
 	mapping->use -= 1;
 	mutex_unlock(&etnaviv_obj->lock);
 
-	drm_gem_object_put_unlocked(&etnaviv_obj->base);
+	drm_gem_object_put(&etnaviv_obj->base);
 }
 
 struct etnaviv_vram_mapping *etnaviv_gem_mapping_get(
@@ -304,8 +304,7 @@
 		list_del(&mapping->obj_node);
 	}
 
-	etnaviv_iommu_context_get(mmu_context);
-	mapping->context = mmu_context;
+	mapping->context = etnaviv_iommu_context_get(mmu_context);
 	mapping->use = 1;
 
 	ret = etnaviv_iommu_map_gem(mmu_context, etnaviv_obj,
@@ -373,7 +372,7 @@
 }
 
 int etnaviv_gem_cpu_prep(struct drm_gem_object *obj, u32 op,
-		struct timespec *timeout)
+		struct drm_etnaviv_timespec *timeout)
 {
 	struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj);
 	struct drm_device *dev = obj->dev;
@@ -404,9 +403,8 @@
 	}
 
 	if (etnaviv_obj->flags & ETNA_BO_CACHED) {
-		dma_sync_sg_for_cpu(dev->dev, etnaviv_obj->sgt->sgl,
-				    etnaviv_obj->sgt->nents,
-				    etnaviv_op_to_dma_dir(op));
+		dma_sync_sgtable_for_cpu(dev->dev, etnaviv_obj->sgt,
+					 etnaviv_op_to_dma_dir(op));
 		etnaviv_obj->last_cpu_prep_op = op;
 	}
 
@@ -421,8 +419,7 @@
 	if (etnaviv_obj->flags & ETNA_BO_CACHED) {
 		/* fini without a prep is almost certainly a userspace error */
 		WARN_ON(etnaviv_obj->last_cpu_prep_op == 0);
-		dma_sync_sg_for_device(dev->dev, etnaviv_obj->sgt->sgl,
-			etnaviv_obj->sgt->nents,
+		dma_sync_sgtable_for_device(dev->dev, etnaviv_obj->sgt,
 			etnaviv_op_to_dma_dir(etnaviv_obj->last_cpu_prep_op));
 		etnaviv_obj->last_cpu_prep_op = 0;
 	}
@@ -431,7 +428,7 @@
 }
 
 int etnaviv_gem_wait_bo(struct etnaviv_gpu *gpu, struct drm_gem_object *obj,
-	struct timespec *timeout)
+	struct drm_etnaviv_timespec *timeout)
 {
 	struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj);
 
@@ -602,6 +599,7 @@
 int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
 	u32 size, u32 flags, u32 *handle)
 {
+	struct etnaviv_drm_private *priv = dev->dev_private;
 	struct drm_gem_object *obj = NULL;
 	int ret;
 
@@ -624,8 +622,7 @@
 	 * above new_inode() why this is required _and_ expected if you're
 	 * going to pin these pages.
 	 */
-	mapping_set_gfp_mask(obj->filp->f_mapping, GFP_HIGHUSER |
-			     __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+	mapping_set_gfp_mask(obj->filp->f_mapping, priv->shm_gfp_mask);
 
 	etnaviv_gem_obj_add(dev, obj);
 
@@ -633,7 +630,7 @@
 
 	/* drop reference from allocate - handle holds it now */
 fail:
-	drm_gem_object_put_unlocked(obj);
+	drm_gem_object_put(obj);
 
 	return ret;
 }
@@ -742,6 +739,6 @@
 	ret = drm_gem_handle_create(file, &etnaviv_obj->base, handle);
 
 	/* drop reference from allocate - handle holds it now */
-	drm_gem_object_put_unlocked(&etnaviv_obj->base);
+	drm_gem_object_put(&etnaviv_obj->base);
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gem.h
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gem.h
@@ -105,14 +105,14 @@
 	unsigned int nr_pmrs;
 	struct etnaviv_perfmon_request *pmrs;
 	unsigned int nr_bos;
-	struct etnaviv_gem_submit_bo bos[0];
+	struct etnaviv_gem_submit_bo bos[];
 	/* No new members here, the previous one is variable-length! */
 };
 
 void etnaviv_submit_put(struct etnaviv_gem_submit * submit);
 
 int etnaviv_gem_wait_bo(struct etnaviv_gpu *gpu, struct drm_gem_object *obj,
-	struct timespec *timeout);
+	struct drm_etnaviv_timespec *timeout);
 int etnaviv_gem_new_private(struct drm_device *dev, size_t size, u32 flags,
 	const struct etnaviv_gem_ops *ops, struct etnaviv_gem_object **res);
 void etnaviv_gem_obj_add(struct drm_device *dev, struct drm_gem_object *obj);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
@@ -93,7 +93,15 @@
 static int etnaviv_gem_prime_mmap_obj(struct etnaviv_gem_object *etnaviv_obj,
 		struct vm_area_struct *vma)
 {
-	return dma_buf_mmap(etnaviv_obj->base.dma_buf, vma, 0);
+	int ret;
+
+	ret = dma_buf_mmap(etnaviv_obj->base.dma_buf, vma, 0);
+	if (!ret) {
+		/* Drop the reference acquired by drm_gem_mmap_obj(). */
+		drm_gem_object_put_unlocked(&etnaviv_obj->base);
+	}
+
+	return ret;
 }
 
 static const struct etnaviv_gem_ops etnaviv_gem_prime_ops = {
@@ -136,7 +144,7 @@
 	return &etnaviv_obj->base;
 
 fail:
-	drm_gem_object_put_unlocked(&etnaviv_obj->base);
+	drm_gem_object_put(&etnaviv_obj->base);
 
 	return ERR_PTR(ret);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -113,7 +113,7 @@
 	if (submit->bos[i].flags & BO_LOCKED) {
 		struct drm_gem_object *obj = &submit->bos[i].obj->base;
 
-		ww_mutex_unlock(&obj->resv->lock);
+		dma_resv_unlock(obj->resv);
 		submit->bos[i].flags &= ~BO_LOCKED;
 	}
 }
@@ -133,8 +133,7 @@
 		contended = i;
 
 		if (!(submit->bos[i].flags & BO_LOCKED)) {
-			ret = ww_mutex_lock_interruptible(&obj->resv->lock,
-							  ticket);
+			ret = dma_resv_lock_interruptible(obj->resv, ticket);
 			if (ret == -EALREADY)
 				DRM_ERROR("BO at index %u already on submit list\n",
 					  i);
@@ -161,8 +160,7 @@
 		obj = &submit->bos[contended].obj->base;
 
 		/* we lost out in a seqno race, lock and retry.. */
-		ret = ww_mutex_lock_slow_interruptible(&obj->resv->lock,
-						       ticket);
+		ret = dma_resv_lock_slow_interruptible(obj->resv, ticket);
 		if (!ret) {
 			submit->bos[contended].flags |= BO_LOCKED;
 			slow_locked = contended;
@@ -240,8 +238,10 @@
 		}
 
 		if ((submit->flags & ETNA_SUBMIT_SOFTPIN) &&
-		     submit->bos[i].va != mapping->iova)
+		     submit->bos[i].va != mapping->iova) {
+			etnaviv_gem_mapping_unreference(mapping);
 			return -EINVAL;
+		}
 
 		atomic_inc(&etnaviv_obj->gpu_active);
 
@@ -398,7 +398,7 @@
 
 		/* if the GPU submit failed, objects might still be locked */
 		submit_unlock_object(submit, i);
-		drm_gem_object_put_unlocked(&etnaviv_obj->base);
+		drm_gem_object_put(&etnaviv_obj->base);
 	}
 
 	wake_up_all(&submit->gpu->fence_event);
@@ -469,6 +469,12 @@
 		return -EINVAL;
 	}
 
+	if (args->stream_size > SZ_128K || args->nr_relocs > SZ_128K ||
+	    args->nr_bos > SZ_128K || args->nr_pmrs > 128) {
+		DRM_ERROR("submit arguments out of size limits\n");
+		return -EINVAL;
+	}
+
 	/*
 	 * Copy the command submission and bo array to kernel space in
 	 * one go, and do this outside of any locks.
@@ -532,8 +538,7 @@
 		goto err_submit_objects;
 
 	submit->ctx = file->driver_priv;
-	etnaviv_iommu_context_get(submit->ctx->mmu);
-	submit->mmu_context = submit->ctx->mmu;
+	submit->mmu_context = etnaviv_iommu_context_get(submit->ctx->mmu);
 	submit->exec_state = args->exec_state;
 	submit->flags = args->flags;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -333,9 +333,20 @@
 		gpu->identity.revision = etnaviv_field(chipIdentity,
 					 VIVS_HI_CHIP_IDENTITY_REVISION);
 	} else {
+		u32 chipDate = gpu_read(gpu, VIVS_HI_CHIP_DATE);
 
 		gpu->identity.model = gpu_read(gpu, VIVS_HI_CHIP_MODEL);
 		gpu->identity.revision = gpu_read(gpu, VIVS_HI_CHIP_REV);
+		gpu->identity.customer_id = gpu_read(gpu, VIVS_HI_CHIP_CUSTOMER_ID);
+
+		/*
+		 * Reading these two registers on GC600 rev 0x19 result in a
+		 * unhandled fault: external abort on non-linefetch
+		 */
+		if (!etnaviv_is_model_rev(gpu, GC600, 0x19)) {
+			gpu->identity.product_id = gpu_read(gpu, VIVS_HI_CHIP_PRODUCT_ID);
+			gpu->identity.eco_id = gpu_read(gpu, VIVS_HI_CHIP_ECO_ID);
+		}
 
 		/*
 		 * !!!! HACK ALERT !!!!
@@ -350,7 +361,6 @@
 
 		/* Another special case */
 		if (etnaviv_is_model_rev(gpu, GC300, 0x2201)) {
-			u32 chipDate = gpu_read(gpu, VIVS_HI_CHIP_DATE);
 			u32 chipTime = gpu_read(gpu, VIVS_HI_CHIP_TIME);
 
 			if (chipDate == 0x20080814 && chipTime == 0x12051100) {
@@ -373,6 +383,12 @@
 			gpu->identity.model = chipModel_GC3000;
 			gpu->identity.revision &= 0xffff;
 		}
+
+		if (etnaviv_is_model_rev(gpu, GC1000, 0x5037) && (chipDate == 0x20120617))
+			gpu->identity.eco_id = 1;
+
+		if (etnaviv_is_model_rev(gpu, GC320, 0x5303) && (chipDate == 0x20140511))
+			gpu->identity.eco_id = 1;
 	}
 
 	dev_info(gpu->dev, "model: GC%x, revision: %x\n",
@@ -392,6 +408,12 @@
 	if (gpu->identity.model == chipModel_GC700)
 		gpu->identity.features &= ~chipFeatures_FAST_CLEAR;
 
+	/* These models/revisions don't have the 2D pipe bit */
+	if ((gpu->identity.model == chipModel_GC500 &&
+	     gpu->identity.revision <= 2) ||
+	    gpu->identity.model == chipModel_GC300)
+		gpu->identity.features |= chipFeatures_PIPE_2D;
+
 	if ((gpu->identity.model == chipModel_GC500 &&
 	     gpu->identity.revision < 2) ||
 	    (gpu->identity.model == chipModel_GC300 &&
@@ -425,8 +447,9 @@
 				gpu_read(gpu, VIVS_HI_CHIP_MINOR_FEATURE_5);
 	}
 
-	/* GC600 idle register reports zero bits where modules aren't present */
-	if (gpu->identity.model == chipModel_GC600)
+	/* GC600/300 idle register reports zero bits where modules aren't present */
+	if (gpu->identity.model == chipModel_GC600 ||
+	    gpu->identity.model == chipModel_GC300)
 		gpu->idle_mask = VIVS_HI_IDLE_STATE_TX |
 				 VIVS_HI_IDLE_STATE_RA |
 				 VIVS_HI_IDLE_STATE_SE |
@@ -506,7 +529,7 @@
 		/* read idle register. */
 		idle = gpu_read(gpu, VIVS_HI_IDLE_STATE);
 
-		/* try reseting again if FE it not idle */
+		/* try resetting again if FE is not idle */
 		if ((idle & VIVS_HI_IDLE_STATE_FE) == 0) {
 			dev_dbg(gpu->dev, "FE is not idle\n");
 			continue;
@@ -545,6 +568,12 @@
 	/* We rely on the GPU running, so program the clock */
 	etnaviv_gpu_update_clock(gpu);
 
+	gpu->fe_running = false;
+	gpu->exec_state = -1;
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = NULL;
+
 	return 0;
 }
 
@@ -607,19 +636,23 @@
 			  VIVS_MMUv2_SEC_COMMAND_CONTROL_ENABLE |
 			  VIVS_MMUv2_SEC_COMMAND_CONTROL_PREFETCH(prefetch));
 	}
+
+	gpu->fe_running = true;
 }
 
-static void etnaviv_gpu_start_fe_idleloop(struct etnaviv_gpu *gpu)
+static void etnaviv_gpu_start_fe_idleloop(struct etnaviv_gpu *gpu,
+					  struct etnaviv_iommu_context *context)
 {
-	u32 address = etnaviv_cmdbuf_get_va(&gpu->buffer,
-				&gpu->mmu_context->cmdbuf_mapping);
 	u16 prefetch;
+	u32 address;
 
 	/* setup the MMU */
-	etnaviv_iommu_restore(gpu, gpu->mmu_context);
+	etnaviv_iommu_restore(gpu, context);
 
 	/* Start command processor */
 	prefetch = etnaviv_buffer_init(gpu);
+	address = etnaviv_cmdbuf_get_va(&gpu->buffer,
+					&gpu->mmu_context->cmdbuf_mapping);
 
 	etnaviv_gpu_start_fe(gpu, address, prefetch);
 }
@@ -713,7 +746,7 @@
 	ret = pm_runtime_get_sync(gpu->dev);
 	if (ret < 0) {
 		dev_err(gpu->dev, "Failed to enable GPU power domain\n");
-		return ret;
+		goto pm_put;
 	}
 
 	etnaviv_hw_identify(gpu);
@@ -772,6 +805,14 @@
 		gpu->identity.features &= ~chipFeatures_FAST_CLEAR;
 	}
 
+	/*
+	 * If the GPU is part of a system with DMA addressing limitations,
+	 * request pages for our SHM backend buffers from the DMA32 zone to
+	 * hopefully avoid performance killing SWIOTLB bounce buffering.
+	 */
+	if (dma_addressing_limited(gpu->dev))
+		priv->shm_gfp_mask |= GFP_DMA32;
+
 	/* Create buffer: */
 	ret = etnaviv_cmdbuf_init(priv->cmdbuf_suballoc, &gpu->buffer,
 				  PAGE_SIZE);
@@ -790,7 +831,6 @@
 	/* Now program the hardware */
 	mutex_lock(&gpu->lock);
 	etnaviv_gpu_hw_init(gpu);
-	gpu->exec_state = -1;
 	mutex_unlock(&gpu->lock);
 
 	pm_runtime_mark_last_busy(gpu->dev);
@@ -802,6 +842,7 @@
 
 fail:
 	pm_runtime_mark_last_busy(gpu->dev);
+pm_put:
 	pm_runtime_put_autosuspend(gpu->dev);
 
 	return ret;
@@ -842,7 +883,7 @@
 
 	ret = pm_runtime_get_sync(gpu->dev);
 	if (ret < 0)
-		return ret;
+		goto pm_put;
 
 	dma_lo = gpu_read(gpu, VIVS_FE_DMA_LOW);
 	dma_hi = gpu_read(gpu, VIVS_FE_DMA_HIGH);
@@ -851,6 +892,13 @@
 
 	verify_dma(gpu, &debug);
 
+	seq_puts(m, "\tidentity\n");
+	seq_printf(m, "\t model: 0x%x\n", gpu->identity.model);
+	seq_printf(m, "\t revision: 0x%x\n", gpu->identity.revision);
+	seq_printf(m, "\t product_id: 0x%x\n", gpu->identity.product_id);
+	seq_printf(m, "\t customer_id: 0x%x\n", gpu->identity.customer_id);
+	seq_printf(m, "\t eco_id: 0x%x\n", gpu->identity.eco_id);
+
 	seq_puts(m, "\tfeatures\n");
 	seq_printf(m, "\t major_features: 0x%08x\n",
 		   gpu->identity.features);
@@ -930,6 +978,20 @@
 		seq_puts(m, "\t FP is not idle\n");
 	if ((idle & VIVS_HI_IDLE_STATE_TS) == 0)
 		seq_puts(m, "\t TS is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_BL) == 0)
+		seq_puts(m, "\t BL is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_ASYNCFE) == 0)
+		seq_puts(m, "\t ASYNCFE is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_MC) == 0)
+		seq_puts(m, "\t MC is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_PPA) == 0)
+		seq_puts(m, "\t PPA is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_WD) == 0)
+		seq_puts(m, "\t WD is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_NN) == 0)
+		seq_puts(m, "\t NN is not idle\n");
+	if ((idle & VIVS_HI_IDLE_STATE_TP) == 0)
+		seq_puts(m, "\t TP is not idle\n");
 	if (idle & VIVS_HI_IDLE_STATE_AXI_LP)
 		seq_puts(m, "\t AXI low power mode\n");
 
@@ -965,6 +1027,7 @@
 	ret = 0;
 
 	pm_runtime_mark_last_busy(gpu->dev);
+pm_put:
 	pm_runtime_put_autosuspend(gpu->dev);
 
 	return ret;
@@ -978,7 +1041,7 @@
 	dev_err(gpu->dev, "recover hung GPU!\n");
 
 	if (pm_runtime_get_sync(gpu->dev) < 0)
-		return;
+		goto pm_put;
 
 	mutex_lock(&gpu->lock);
 
@@ -992,11 +1055,10 @@
 	spin_unlock(&gpu->event_spinlock);
 
 	etnaviv_gpu_hw_init(gpu);
-	gpu->exec_state = -1;
-	gpu->mmu_context = NULL;
 
 	mutex_unlock(&gpu->lock);
 	pm_runtime_mark_last_busy(gpu->dev);
+pm_put:
 	pm_runtime_put_autosuspend(gpu->dev);
 }
 
@@ -1132,7 +1194,7 @@
  * Cmdstream submission/retirement:
  */
 int etnaviv_gpu_wait_fence_interruptible(struct etnaviv_gpu *gpu,
-	u32 id, struct timespec *timeout)
+	u32 id, struct drm_etnaviv_timespec *timeout)
 {
 	struct dma_fence *fence;
 	int ret;
@@ -1179,7 +1241,8 @@
  * that lock in this function while waiting.
  */
 int etnaviv_gpu_wait_obj_inactive(struct etnaviv_gpu *gpu,
-	struct etnaviv_gem_object *etnaviv_obj, struct timespec *timeout)
+	struct etnaviv_gem_object *etnaviv_obj,
+	struct drm_etnaviv_timespec *timeout)
 {
 	unsigned long remaining;
 	long ret;
@@ -1269,8 +1332,10 @@
 
 	if (!submit->runtime_resumed) {
 		ret = pm_runtime_get_sync(gpu->dev);
-		if (ret < 0)
+		if (ret < 0) {
+			pm_runtime_put_noidle(gpu->dev);
 			return NULL;
+		}
 		submit->runtime_resumed = true;
 	}
 
@@ -1287,6 +1352,7 @@
 	ret = event_alloc(gpu, nr_events, event);
 	if (ret) {
 		DRM_ERROR("no free events\n");
+		pm_runtime_put_noidle(gpu->dev);
 		return NULL;
 	}
 
@@ -1300,14 +1366,12 @@
 		goto out_unlock;
 	}
 
-	if (!gpu->mmu_context) {
-		etnaviv_iommu_context_get(submit->mmu_context);
-		gpu->mmu_context = submit->mmu_context;
-		etnaviv_gpu_start_fe_idleloop(gpu);
-	} else {
-		etnaviv_iommu_context_get(gpu->mmu_context);
-		submit->prev_mmu_context = gpu->mmu_context;
-	}
+	if (!gpu->fe_running)
+		etnaviv_gpu_start_fe_idleloop(gpu, submit->mmu_context);
+
+	if (submit->prev_mmu_context)
+		etnaviv_iommu_context_put(submit->prev_mmu_context);
+	submit->prev_mmu_context = etnaviv_iommu_context_get(gpu->mmu_context);
 
 	if (submit->nr_pmrs) {
 		gpu->event[event[1]].sync_point = &sync_point_perfmon_sample_pre;
@@ -1448,52 +1512,40 @@
 {
 	int ret;
 
-	if (gpu->clk_reg) {
-		ret = clk_prepare_enable(gpu->clk_reg);
-		if (ret)
-			return ret;
-	}
+	ret = clk_prepare_enable(gpu->clk_reg);
+	if (ret)
+		return ret;
 
-	if (gpu->clk_bus) {
-		ret = clk_prepare_enable(gpu->clk_bus);
-		if (ret)
-			return ret;
-	}
+	ret = clk_prepare_enable(gpu->clk_bus);
+	if (ret)
+		goto disable_clk_reg;
 
-	if (gpu->clk_core) {
-		ret = clk_prepare_enable(gpu->clk_core);
-		if (ret)
-			goto disable_clk_bus;
-	}
+	ret = clk_prepare_enable(gpu->clk_core);
+	if (ret)
+		goto disable_clk_bus;
 
-	if (gpu->clk_shader) {
-		ret = clk_prepare_enable(gpu->clk_shader);
-		if (ret)
-			goto disable_clk_core;
-	}
+	ret = clk_prepare_enable(gpu->clk_shader);
+	if (ret)
+		goto disable_clk_core;
 
 	return 0;
 
 disable_clk_core:
-	if (gpu->clk_core)
-		clk_disable_unprepare(gpu->clk_core);
+	clk_disable_unprepare(gpu->clk_core);
 disable_clk_bus:
-	if (gpu->clk_bus)
-		clk_disable_unprepare(gpu->clk_bus);
+	clk_disable_unprepare(gpu->clk_bus);
+disable_clk_reg:
+	clk_disable_unprepare(gpu->clk_reg);
 
 	return ret;
 }
 
 static int etnaviv_gpu_clk_disable(struct etnaviv_gpu *gpu)
 {
-	if (gpu->clk_shader)
-		clk_disable_unprepare(gpu->clk_shader);
-	if (gpu->clk_core)
-		clk_disable_unprepare(gpu->clk_core);
-	if (gpu->clk_bus)
-		clk_disable_unprepare(gpu->clk_bus);
-	if (gpu->clk_reg)
-		clk_disable_unprepare(gpu->clk_reg);
+	clk_disable_unprepare(gpu->clk_shader);
+	clk_disable_unprepare(gpu->clk_core);
+	clk_disable_unprepare(gpu->clk_bus);
+	clk_disable_unprepare(gpu->clk_reg);
 
 	return 0;
 }
@@ -1521,7 +1573,7 @@
 
 static int etnaviv_gpu_hw_suspend(struct etnaviv_gpu *gpu)
 {
-	if (gpu->initialized && gpu->mmu_context) {
+	if (gpu->initialized && gpu->fe_running) {
 		/* Replace the last WAIT with END */
 		mutex_lock(&gpu->lock);
 		etnaviv_buffer_end(gpu);
@@ -1534,8 +1586,7 @@
 		 */
 		etnaviv_gpu_wait_idle(gpu, 100);
 
-		etnaviv_iommu_context_put(gpu->mmu_context);
-		gpu->mmu_context = NULL;
+		gpu->fe_running = false;
 	}
 
 	gpu->exec_state = -1;
@@ -1683,6 +1734,9 @@
 	etnaviv_gpu_hw_suspend(gpu);
 #endif
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+
 	if (gpu->initialized) {
 		etnaviv_cmdbuf_free(&gpu->buffer);
 		etnaviv_iommu_global_fini(gpu);
@@ -1744,26 +1798,26 @@
 	}
 
 	/* Get Clocks: */
-	gpu->clk_reg = devm_clk_get(&pdev->dev, "reg");
+	gpu->clk_reg = devm_clk_get_optional(&pdev->dev, "reg");
 	DBG("clk_reg: %p", gpu->clk_reg);
 	if (IS_ERR(gpu->clk_reg))
-		gpu->clk_reg = NULL;
+		return PTR_ERR(gpu->clk_reg);
 
-	gpu->clk_bus = devm_clk_get(&pdev->dev, "bus");
+	gpu->clk_bus = devm_clk_get_optional(&pdev->dev, "bus");
 	DBG("clk_bus: %p", gpu->clk_bus);
 	if (IS_ERR(gpu->clk_bus))
-		gpu->clk_bus = NULL;
+		return PTR_ERR(gpu->clk_bus);
 
 	gpu->clk_core = devm_clk_get(&pdev->dev, "core");
 	DBG("clk_core: %p", gpu->clk_core);
 	if (IS_ERR(gpu->clk_core))
-		gpu->clk_core = NULL;
+		return PTR_ERR(gpu->clk_core);
 	gpu->base_rate_core = clk_get_rate(gpu->clk_core);
 
-	gpu->clk_shader = devm_clk_get(&pdev->dev, "shader");
+	gpu->clk_shader = devm_clk_get_optional(&pdev->dev, "shader");
 	DBG("clk_shader: %p", gpu->clk_shader);
 	if (IS_ERR(gpu->clk_shader))
-		gpu->clk_shader = NULL;
+		return PTR_ERR(gpu->clk_shader);
 	gpu->base_rate_shader = clk_get_rate(gpu->clk_shader);
 
 	/* TODO: figure out max mapped size */
@@ -1804,11 +1858,15 @@
 	if (atomic_read(&gpu->sched.hw_rq_count))
 		return -EBUSY;
 
-	/* Check whether the hardware (except FE) is idle */
-	mask = gpu->idle_mask & ~VIVS_HI_IDLE_STATE_FE;
+	/* Check whether the hardware (except FE and MC) is idle */
+	mask = gpu->idle_mask & ~(VIVS_HI_IDLE_STATE_FE |
+				  VIVS_HI_IDLE_STATE_MC);
 	idle = gpu_read(gpu, VIVS_HI_IDLE_STATE) & mask;
-	if (idle != mask)
+	if (idle != mask) {
+		dev_warn_ratelimited(dev, "GPU not yet idle, mask: 0x%08x\n",
+				     idle);
 		return -EBUSY;
+	}
 
 	return etnaviv_gpu_hw_suspend(gpu);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
@@ -15,11 +15,11 @@
 struct etnaviv_vram_mapping;
 
 struct etnaviv_chip_identity {
-	/* Chip model. */
 	u32 model;
-
-	/* Revision value.*/
 	u32 revision;
+	u32 product_id;
+	u32 customer_id;
+	u32 eco_id;
 
 	/* Supported feature fields. */
 	u32 features;
@@ -101,6 +101,7 @@
 	struct workqueue_struct *wq;
 	struct drm_gpu_scheduler sched;
 	bool initialized;
+	bool fe_running;
 
 	/* 'ring'-buffer: */
 	struct etnaviv_cmdbuf buffer;
@@ -169,9 +170,10 @@
 void etnaviv_gpu_recover_hang(struct etnaviv_gpu *gpu);
 void etnaviv_gpu_retire(struct etnaviv_gpu *gpu);
 int etnaviv_gpu_wait_fence_interruptible(struct etnaviv_gpu *gpu,
-	u32 fence, struct timespec *timeout);
+	u32 fence, struct drm_etnaviv_timespec *timeout);
 int etnaviv_gpu_wait_obj_inactive(struct etnaviv_gpu *gpu,
-	struct etnaviv_gem_object *etnaviv_obj, struct timespec *timeout);
+	struct etnaviv_gem_object *etnaviv_obj,
+	struct drm_etnaviv_timespec *timeout);
 struct dma_fence *etnaviv_gpu_submit(struct etnaviv_gem_submit *submit);
 int etnaviv_gpu_pm_get_sync(struct etnaviv_gpu *gpu);
 void etnaviv_gpu_pm_put(struct etnaviv_gpu *gpu);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
@@ -7,8 +7,42 @@
 
 static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
 	{
+		.model = 0x400,
+		.revision = 0x4652,
+		.product_id = 0x70001,
+		.customer_id = 0x100,
+		.eco_id = 0,
+		.stream_count = 4,
+		.register_max = 64,
+		.thread_count = 128,
+		.shader_core_count = 1,
+		.vertex_cache_size = 8,
+		.vertex_output_buffer_size = 1024,
+		.pixel_pipes = 1,
+		.instruction_count = 256,
+		.num_constants = 320,
+		.buffer_size = 0,
+		.varyings_count = 8,
+		.features = 0xa0e9e004,
+		.minor_features0 = 0xe1299fff,
+		.minor_features1 = 0xbe13b219,
+		.minor_features2 = 0xce110010,
+		.minor_features3 = 0x8000001,
+		.minor_features4 = 0x20102,
+		.minor_features5 = 0x120000,
+		.minor_features6 = 0x0,
+		.minor_features7 = 0x0,
+		.minor_features8 = 0x0,
+		.minor_features9 = 0x0,
+		.minor_features10 = 0x0,
+		.minor_features11 = 0x0,
+	},
+	{
 		.model = 0x7000,
 		.revision = 0x6214,
+		.product_id = ~0U,
+		.customer_id = ~0U,
+		.eco_id = ~0U,
 		.stream_count = 16,
 		.register_max = 64,
 		.thread_count = 1024,
@@ -43,7 +77,13 @@
 
 	for (i = 0; i < ARRAY_SIZE(etnaviv_chip_identities); i++) {
 		if (etnaviv_chip_identities[i].model == ident->model &&
-		    etnaviv_chip_identities[i].revision == ident->revision) {
+		    etnaviv_chip_identities[i].revision == ident->revision &&
+		    (etnaviv_chip_identities[i].product_id == ident->product_id ||
+			 etnaviv_chip_identities[i].product_id == ~0U) &&
+		    (etnaviv_chip_identities[i].customer_id == ident->customer_id ||
+			 etnaviv_chip_identities[i].customer_id == ~0U) &&
+		    (etnaviv_chip_identities[i].eco_id == ident->eco_id ||
+			 etnaviv_chip_identities[i].eco_id == ~0U)) {
 			memcpy(ident, &etnaviv_chip_identities[i],
 			       sizeof(*ident));
 			return true;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_iommu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_iommu.c
@@ -92,6 +92,10 @@
 	struct etnaviv_iommuv1_context *v1_context = to_v1_context(context);
 	u32 pgtable;
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = etnaviv_iommu_context_get(context);
+
 	/* set base addresses */
 	gpu_write(gpu, VIVS_MC_MEMORY_BASE_ADDR_RA, context->global->memory_base);
 	gpu_write(gpu, VIVS_MC_MEMORY_BASE_ADDR_FE, context->global->memory_base);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
@@ -172,6 +172,10 @@
 	if (gpu_read(gpu, VIVS_MMUv2_CONTROL) & VIVS_MMUv2_CONTROL_ENABLE)
 		return;
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = etnaviv_iommu_context_get(context);
+
 	prefetch = etnaviv_buffer_config_mmuv2(gpu,
 				(u32)v2_context->mtlb_dma,
 				(u32)context->global->bad_page_dma);
@@ -192,6 +196,10 @@
 	if (gpu_read(gpu, VIVS_MMUv2_SEC_CONTROL) & VIVS_MMUv2_SEC_CONTROL_ENABLE)
 		return;
 
+	if (gpu->mmu_context)
+		etnaviv_iommu_context_put(gpu->mmu_context);
+	gpu->mmu_context = etnaviv_iommu_context_get(context);
+
 	gpu_write(gpu, VIVS_MMUv2_PTA_ADDRESS_LOW,
 		  lower_32_bits(context->global->v2.pta_dma));
 	gpu_write(gpu, VIVS_MMUv2_PTA_ADDRESS_HIGH,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
@@ -73,17 +73,17 @@
 			     struct sg_table *sgt, unsigned len, int prot)
 {	struct scatterlist *sg;
 	unsigned int da = iova;
-	unsigned int i, j;
+	unsigned int i;
 	int ret;
 
 	if (!context || !sgt)
 		return -EINVAL;
 
-	for_each_sg(sgt->sgl, sg, sgt->nents, i) {
-		u32 pa = sg_dma_address(sg) - sg->offset;
+	for_each_sgtable_dma_sg(sgt, sg, i) {
+		phys_addr_t pa = sg_dma_address(sg) - sg->offset;
 		size_t bytes = sg_dma_len(sg) + sg->offset;
 
-		VERB("map[%d]: %08x %08x(%zx)", i, iova, pa, bytes);
+		VERB("map[%d]: %08x %pap(%zx)", i, iova, &pa, bytes);
 
 		ret = etnaviv_context_map(context, da, pa, bytes, prot);
 		if (ret)
@@ -95,14 +95,7 @@
 	return 0;
 
 fail:
-	da = iova;
-
-	for_each_sg(sgt->sgl, sg, i, j) {
-		size_t bytes = sg_dma_len(sg) + sg->offset;
-
-		etnaviv_context_unmap(context, da, bytes);
-		da += bytes;
-	}
+	etnaviv_context_unmap(context, iova, da - iova);
 	return ret;
 }
 
@@ -113,7 +106,7 @@
 	unsigned int da = iova;
 	int i;
 
-	for_each_sg(sgt->sgl, sg, sgt->nents, i) {
+	for_each_sgtable_dma_sg(sgt, sg, i) {
 		size_t bytes = sg_dma_len(sg) + sg->offset;
 
 		etnaviv_context_unmap(context, da, bytes);
@@ -204,6 +197,7 @@
 		 */
 		list_for_each_entry_safe(m, n, &list, scan_node) {
 			etnaviv_iommu_remove_mapping(context, m);
+			etnaviv_iommu_context_put(m->context);
 			m->context = NULL;
 			list_del_init(&m->mmu_node);
 			list_del_init(&m->scan_node);
@@ -288,6 +282,12 @@
 
 	mutex_lock(&context->lock);
 
+	/* Bail if the mapping has been reaped by another thread */
+	if (!mapping->context) {
+		mutex_unlock(&context->lock);
+		return;
+	}
+
 	/* If the vram node is on the mm, unmap and remove the node */
 	if (mapping->vram_node.mm == &context->mm)
 		etnaviv_iommu_remove_mapping(context, mapping);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_mmu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_mmu.h
@@ -105,9 +105,11 @@
 struct etnaviv_iommu_context *
 etnaviv_iommu_context_init(struct etnaviv_iommu_global *global,
 			   struct etnaviv_cmdbuf_suballoc *suballoc);
-static inline void etnaviv_iommu_context_get(struct etnaviv_iommu_context *ctx)
+static inline struct etnaviv_iommu_context *
+etnaviv_iommu_context_get(struct etnaviv_iommu_context *ctx)
 {
 	kref_get(&ctx->refcount);
+	return ctx;
 }
 void etnaviv_iommu_context_put(struct etnaviv_iommu_context *ctx);
 void etnaviv_iommu_restore(struct etnaviv_gpu *gpu,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
@@ -32,6 +32,7 @@
 };
 
 struct etnaviv_pm_domain_meta {
+	unsigned int feature;
 	const struct etnaviv_pm_domain *domains;
 	u32 nr_domains;
 };
@@ -410,36 +411,78 @@
 
 static const struct etnaviv_pm_domain_meta doms_meta[] = {
 	{
+		.feature = chipFeatures_PIPE_3D,
 		.nr_domains = ARRAY_SIZE(doms_3d),
 		.domains = &doms_3d[0]
 	},
 	{
+		.feature = chipFeatures_PIPE_2D,
 		.nr_domains = ARRAY_SIZE(doms_2d),
 		.domains = &doms_2d[0]
 	},
 	{
+		.feature = chipFeatures_PIPE_VG,
 		.nr_domains = ARRAY_SIZE(doms_vg),
 		.domains = &doms_vg[0]
 	}
 };
 
+static unsigned int num_pm_domains(const struct etnaviv_gpu *gpu)
+{
+	unsigned int num = 0, i;
+
+	for (i = 0; i < ARRAY_SIZE(doms_meta); i++) {
+		const struct etnaviv_pm_domain_meta *meta = &doms_meta[i];
+
+		if (gpu->identity.features & meta->feature)
+			num += meta->nr_domains;
+	}
+
+	return num;
+}
+
+static const struct etnaviv_pm_domain *pm_domain(const struct etnaviv_gpu *gpu,
+	unsigned int index)
+{
+	const struct etnaviv_pm_domain *domain = NULL;
+	unsigned int offset = 0, i;
+
+	for (i = 0; i < ARRAY_SIZE(doms_meta); i++) {
+		const struct etnaviv_pm_domain_meta *meta = &doms_meta[i];
+
+		if (!(gpu->identity.features & meta->feature))
+			continue;
+
+		if (index - offset >= meta->nr_domains) {
+			offset += meta->nr_domains;
+			continue;
+		}
+
+		domain = meta->domains + (index - offset);
+	}
+
+	return domain;
+}
+
 int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu,
 	struct drm_etnaviv_pm_domain *domain)
 {
-	const struct etnaviv_pm_domain_meta *meta = &doms_meta[domain->pipe];
+	const unsigned int nr_domains = num_pm_domains(gpu);
 	const struct etnaviv_pm_domain *dom;
 
-	if (domain->iter >= meta->nr_domains)
+	if (domain->iter >= nr_domains)
 		return -EINVAL;
 
-	dom = meta->domains + domain->iter;
+	dom = pm_domain(gpu, domain->iter);
+	if (!dom)
+		return -EINVAL;
 
 	domain->id = domain->iter;
 	domain->nr_signals = dom->nr_signals;
 	strncpy(domain->name, dom->name, sizeof(domain->name));
 
 	domain->iter++;
-	if (domain->iter == meta->nr_domains)
+	if (domain->iter == nr_domains)
 		domain->iter = 0xff;
 
 	return 0;
@@ -448,14 +491,16 @@
 int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu,
 	struct drm_etnaviv_pm_signal *signal)
 {
-	const struct etnaviv_pm_domain_meta *meta = &doms_meta[signal->pipe];
+	const unsigned int nr_domains = num_pm_domains(gpu);
 	const struct etnaviv_pm_domain *dom;
 	const struct etnaviv_pm_signal *sig;
 
-	if (signal->domain >= meta->nr_domains)
+	if (signal->domain >= nr_domains)
 		return -EINVAL;
 
-	dom = meta->domains + signal->domain;
+	dom = pm_domain(gpu, signal->domain);
+	if (!dom)
+		return -EINVAL;
 
 	if (signal->iter >= dom->nr_signals)
 		return -EINVAL;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -89,12 +89,15 @@
 	u32 dma_addr;
 	int change;
 
+	/* block scheduler */
+	drm_sched_stop(&gpu->sched, sched_job);
+
 	/*
 	 * If the GPU managed to complete this jobs fence, the timout is
 	 * spurious. Bail out.
 	 */
 	if (dma_fence_is_signaled(submit->out_fence))
-		return;
+		goto out_no_timeout;
 
 	/*
 	 * If the GPU is still making forward progress on the front-end (which
@@ -105,12 +108,9 @@
 	change = dma_addr - gpu->hangcheck_dma_addr;
 	if (change < 0 || change > 16) {
 		gpu->hangcheck_dma_addr = dma_addr;
-		return;
+		goto out_no_timeout;
 	}
 
-	/* block scheduler */
-	drm_sched_stop(&gpu->sched, sched_job);
-
 	if(sched_job)
 		drm_sched_increase_karma(sched_job);
 
@@ -120,6 +120,7 @@
 
 	drm_sched_resubmit_jobs(&gpu->sched);
 
+out_no_timeout:
 	/* restart scheduler after GPU is usable again */
 	drm_sched_start(&gpu->sched, true);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/state_blt.xml.h
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/state_blt.xml.h
@@ -46,6 +46,8 @@
 
 /* This is a cut-down version of the state_blt.xml.h file */
 
+#define VIVS_BLT_SET_COMMAND					0x000140ac
+
 #define VIVS_BLT_ENABLE						0x000140b8
 #define VIVS_BLT_ENABLE_ENABLE					0x00000001
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/etnaviv/state_hi.xml.h
+++ linux-ein-5.4.0/drivers/gpu/drm/etnaviv/state_hi.xml.h
@@ -8,17 +8,17 @@
 git clone git://0x04.net/rules-ng-ng
 
 The rules-ng-ng source files this header was generated from are:
-- state.xml     (  26087 bytes, from 2017-12-18 16:51:59)
-- common.xml    (  35468 bytes, from 2018-01-22 13:48:54)
-- common_3d.xml (  14615 bytes, from 2017-12-18 16:51:59)
-- state_hi.xml  (  30232 bytes, from 2018-02-15 15:48:01)
-- copyright.xml (   1597 bytes, from 2016-12-08 16:37:56)
-- state_2d.xml  (  51552 bytes, from 2016-12-08 16:37:56)
-- state_3d.xml  (  79992 bytes, from 2017-12-18 16:51:59)
-- state_blt.xml (  13405 bytes, from 2017-12-18 16:51:59)
-- state_vg.xml  (   5975 bytes, from 2016-12-08 16:37:56)
+- state.xml     (  26666 bytes, from 2019-12-20 21:20:35)
+- common.xml    (  35468 bytes, from 2018-02-10 13:09:26)
+- common_3d.xml (  15058 bytes, from 2019-12-28 20:02:03)
+- state_hi.xml  (  30552 bytes, from 2019-12-28 20:02:48)
+- copyright.xml (   1597 bytes, from 2018-02-10 13:09:26)
+- state_2d.xml  (  51552 bytes, from 2018-02-10 13:09:26)
+- state_3d.xml  (  83098 bytes, from 2019-12-28 20:02:03)
+- state_blt.xml (  14252 bytes, from 2019-10-20 19:59:15)
+- state_vg.xml  (   5975 bytes, from 2018-02-10 13:09:26)
 
-Copyright (C) 2012-2018 by the following authors:
+Copyright (C) 2012-2019 by the following authors:
 - Wladimir J. van der Laan <laanwj@gmail.com>
 - Christian Gmeiner <christian.gmeiner@gmail.com>
 - Lucas Stach <l.stach@pengutronix.de>
@@ -48,6 +48,9 @@
 #define MMU_EXCEPTION_SLAVE_NOT_PRESENT				0x00000001
 #define MMU_EXCEPTION_PAGE_NOT_PRESENT				0x00000002
 #define MMU_EXCEPTION_WRITE_VIOLATION				0x00000003
+#define MMU_EXCEPTION_OUT_OF_BOUND				0x00000004
+#define MMU_EXCEPTION_READ_SECURITY_VIOLATION			0x00000005
+#define MMU_EXCEPTION_WRITE_SECURITY_VIOLATION			0x00000006
 #define VIVS_HI							0x00000000
 
 #define VIVS_HI_CLOCK_CONTROL					0x00000000
@@ -81,6 +84,13 @@
 #define VIVS_HI_IDLE_STATE_IM					0x00000200
 #define VIVS_HI_IDLE_STATE_FP					0x00000400
 #define VIVS_HI_IDLE_STATE_TS					0x00000800
+#define VIVS_HI_IDLE_STATE_BL					0x00001000
+#define VIVS_HI_IDLE_STATE_ASYNCFE				0x00002000
+#define VIVS_HI_IDLE_STATE_MC					0x00004000
+#define VIVS_HI_IDLE_STATE_PPA					0x00008000
+#define VIVS_HI_IDLE_STATE_WD					0x00010000
+#define VIVS_HI_IDLE_STATE_NN					0x00020000
+#define VIVS_HI_IDLE_STATE_TP					0x00040000
 #define VIVS_HI_IDLE_STATE_AXI_LP				0x80000000
 
 #define VIVS_HI_AXI_CONFIG					0x00000008
@@ -140,6 +150,8 @@
 
 #define VIVS_HI_CHIP_TIME					0x0000002c
 
+#define VIVS_HI_CHIP_CUSTOMER_ID				0x00000030
+
 #define VIVS_HI_CHIP_MINOR_FEATURE_0				0x00000034
 
 #define VIVS_HI_CACHE_CONTROL					0x00000038
@@ -237,6 +249,8 @@
 
 #define VIVS_HI_BLT_INTR					0x000000d4
 
+#define VIVS_HI_CHIP_ECO_ID					0x000000e8
+
 #define VIVS_HI_AUXBIT						0x000000ec
 
 #define VIVS_PM							0x00000000
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
@@ -55,6 +55,7 @@
 struct decon_context {
 	struct device			*dev;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct exynos_drm_crtc		*crtc;
 	struct exynos_drm_plane		planes[WINDOWS_NR];
 	struct exynos_drm_plane_config	configs[WINDOWS_NR];
@@ -644,7 +645,7 @@
 
 	decon_clear_channels(ctx->crtc);
 
-	return exynos_drm_register_dma(drm_dev, dev);
+	return exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static void decon_unbind(struct device *dev, struct device *master, void *data)
@@ -654,7 +655,7 @@
 	decon_disable(ctx->crtc);
 
 	/* detach this sub driver from iommu mapping if supported. */
-	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev);
+	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev, &ctx->dma_priv);
 }
 
 static const struct component_ops decon_component_ops = {
@@ -774,8 +775,8 @@
 			return irq;
 		}
 	}
-	irq_set_status_flags(irq, IRQ_NOAUTOEN);
-	ret = devm_request_irq(ctx->dev, irq, handler, flags, "drm_decon", ctx);
+	ret = devm_request_irq(ctx->dev, irq, handler,
+			       flags | IRQF_NO_AUTOEN, "drm_decon", ctx);
 	if (ret < 0) {
 		dev_err(ctx->dev, "IRQ %s request failed\n", name);
 		return ret;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -40,6 +40,7 @@
 struct decon_context {
 	struct device			*dev;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct exynos_drm_crtc		*crtc;
 	struct exynos_drm_plane		planes[WINDOWS_NR];
 	struct exynos_drm_plane_config	configs[WINDOWS_NR];
@@ -127,13 +128,13 @@
 
 	decon_clear_channels(ctx->crtc);
 
-	return exynos_drm_register_dma(drm_dev, ctx->dev);
+	return exynos_drm_register_dma(drm_dev, ctx->dev, &ctx->dma_priv);
 }
 
 static void decon_ctx_remove(struct decon_context *ctx)
 {
 	/* detach this sub driver from iommu mapping if supported. */
-	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev);
+	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev, &ctx->dma_priv);
 }
 
 static u32 decon_calc_clkdiv(struct decon_context *ctx,
@@ -799,31 +800,40 @@
 	if (ret < 0) {
 		DRM_DEV_ERROR(dev, "Failed to prepare_enable the pclk [%d]\n",
 			      ret);
-		return ret;
+		goto err_pclk_enable;
 	}
 
 	ret = clk_prepare_enable(ctx->aclk);
 	if (ret < 0) {
 		DRM_DEV_ERROR(dev, "Failed to prepare_enable the aclk [%d]\n",
 			      ret);
-		return ret;
+		goto err_aclk_enable;
 	}
 
 	ret = clk_prepare_enable(ctx->eclk);
 	if  (ret < 0) {
 		DRM_DEV_ERROR(dev, "Failed to prepare_enable the eclk [%d]\n",
 			      ret);
-		return ret;
+		goto err_eclk_enable;
 	}
 
 	ret = clk_prepare_enable(ctx->vclk);
 	if  (ret < 0) {
 		DRM_DEV_ERROR(dev, "Failed to prepare_enable the vclk [%d]\n",
 			      ret);
-		return ret;
+		goto err_vclk_enable;
 	}
 
 	return 0;
+
+err_vclk_enable:
+	clk_disable_unprepare(ctx->eclk);
+err_eclk_enable:
+	clk_disable_unprepare(ctx->aclk);
+err_aclk_enable:
+	clk_disable_unprepare(ctx->pclk);
+err_pclk_enable:
+	return ret;
 }
 #endif
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_dp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_dp.c
@@ -109,7 +109,6 @@
 		if (ret) {
 			DRM_DEV_ERROR(dp->dev,
 				      "Failed to attach bridge to drm\n");
-			bridge->next = NULL;
 			return ret;
 		}
 	}
@@ -158,15 +157,8 @@
 	struct drm_device *drm_dev = data;
 	int ret;
 
-	dp->dev = dev;
 	dp->drm_dev = drm_dev;
 
-	dp->plat_data.dev_type = EXYNOS_DP;
-	dp->plat_data.power_on_start = exynos_dp_poweron;
-	dp->plat_data.power_off = exynos_dp_poweroff;
-	dp->plat_data.attach = exynos_dp_bridge_attach;
-	dp->plat_data.get_modes = exynos_dp_get_modes;
-
 	if (!dp->plat_data.panel && !dp->ptn_bridge) {
 		ret = exynos_dp_dt_parse_panel(dp);
 		if (ret)
@@ -184,13 +176,11 @@
 
 	dp->plat_data.encoder = encoder;
 
-	dp->adp = analogix_dp_bind(dev, dp->drm_dev, &dp->plat_data);
-	if (IS_ERR(dp->adp)) {
+	ret = analogix_dp_bind(dp->adp, dp->drm_dev);
+	if (ret)
 		dp->encoder.funcs->destroy(&dp->encoder);
-		return PTR_ERR(dp->adp);
-	}
 
-	return 0;
+	return ret;
 }
 
 static void exynos_dp_unbind(struct device *dev, struct device *master,
@@ -221,6 +211,7 @@
 	if (!dp)
 		return -ENOMEM;
 
+	dp->dev = dev;
 	/*
 	 * We just use the drvdata until driver run into component
 	 * add function, and then we would set drvdata to null, so
@@ -246,16 +237,29 @@
 
 	/* The remote port can be either a panel or a bridge */
 	dp->plat_data.panel = panel;
+	dp->plat_data.dev_type = EXYNOS_DP;
+	dp->plat_data.power_on_start = exynos_dp_poweron;
+	dp->plat_data.power_off = exynos_dp_poweroff;
+	dp->plat_data.attach = exynos_dp_bridge_attach;
+	dp->plat_data.get_modes = exynos_dp_get_modes;
 	dp->plat_data.skip_connector = !!bridge;
+
 	dp->ptn_bridge = bridge;
 
 out:
+	dp->adp = analogix_dp_probe(dev, &dp->plat_data);
+	if (IS_ERR(dp->adp))
+		return PTR_ERR(dp->adp);
+
 	return component_add(&pdev->dev, &exynos_dp_ops);
 }
 
 static int exynos_dp_remove(struct platform_device *pdev)
 {
+	struct exynos_dp_device *dp = platform_get_drvdata(pdev);
+
 	component_del(&pdev->dev, &exynos_dp_ops);
+	analogix_dp_remove(dp->adp);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -39,13 +39,12 @@
 	if (exynos_crtc->ops->disable)
 		exynos_crtc->ops->disable(exynos_crtc);
 
+	spin_lock_irq(&crtc->dev->event_lock);
 	if (crtc->state->event && !crtc->state->active) {
-		spin_lock_irq(&crtc->dev->event_lock);
 		drm_crtc_send_vblank_event(crtc, crtc->state->event);
-		spin_unlock_irq(&crtc->dev->event_lock);
-
 		crtc->state->event = NULL;
 	}
+	spin_unlock_irq(&crtc->dev->event_lock);
 }
 
 static int exynos_crtc_atomic_check(struct drm_crtc *crtc,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_dma.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_dma.c
@@ -58,10 +58,10 @@
  * mapping.
  */
 static int drm_iommu_attach_device(struct drm_device *drm_dev,
-				struct device *subdrv_dev)
+				struct device *subdrv_dev, void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm_dev->dev_private;
-	int ret;
+	int ret = 0;
 
 	if (get_dma_ops(priv->dma_dev) != get_dma_ops(subdrv_dev)) {
 		DRM_DEV_ERROR(subdrv_dev, "Device %s lacks support for IOMMU\n",
@@ -74,7 +74,14 @@
 		return ret;
 
 	if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) {
-		if (to_dma_iommu_mapping(subdrv_dev))
+		/*
+		 * Keep the original DMA mapping of the sub-device and
+		 * restore it on Exynos DRM detach, otherwise the DMA
+		 * framework considers it as IOMMU-less during the next
+		 * probe (in case of deferred probe or modular build)
+		 */
+		*dma_priv = to_dma_iommu_mapping(subdrv_dev);
+		if (*dma_priv)
 			arm_iommu_detach_device(subdrv_dev);
 
 		ret = arm_iommu_attach_device(subdrv_dev, priv->mapping);
@@ -85,7 +92,7 @@
 	if (ret)
 		clear_dma_max_seg_size(subdrv_dev);
 
-	return 0;
+	return ret;
 }
 
 /*
@@ -98,19 +105,21 @@
  * mapping
  */
 static void drm_iommu_detach_device(struct drm_device *drm_dev,
-				struct device *subdrv_dev)
+				    struct device *subdrv_dev, void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm_dev->dev_private;
 
-	if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU))
+	if (IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)) {
 		arm_iommu_detach_device(subdrv_dev);
-	else if (IS_ENABLED(CONFIG_IOMMU_DMA))
+		arm_iommu_attach_device(subdrv_dev, *dma_priv);
+	} else if (IS_ENABLED(CONFIG_IOMMU_DMA))
 		iommu_detach_device(priv->mapping, subdrv_dev);
 
 	clear_dma_max_seg_size(subdrv_dev);
 }
 
-int exynos_drm_register_dma(struct drm_device *drm, struct device *dev)
+int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
+			    void **dma_priv)
 {
 	struct exynos_drm_private *priv = drm->dev_private;
 
@@ -131,19 +140,22 @@
 				EXYNOS_DEV_ADDR_START, EXYNOS_DEV_ADDR_SIZE);
 		else if (IS_ENABLED(CONFIG_IOMMU_DMA))
 			mapping = iommu_get_domain_for_dev(priv->dma_dev);
+		else
+			mapping = ERR_PTR(-ENODEV);
 
 		if (IS_ERR(mapping))
 			return PTR_ERR(mapping);
 		priv->mapping = mapping;
 	}
 
-	return drm_iommu_attach_device(drm, dev);
+	return drm_iommu_attach_device(drm, dev, dma_priv);
 }
 
-void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev)
+void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev,
+			       void **dma_priv)
 {
 	if (IS_ENABLED(CONFIG_EXYNOS_IOMMU))
-		drm_iommu_detach_device(drm, dev);
+		drm_iommu_detach_device(drm, dev, dma_priv);
 }
 
 void exynos_drm_cleanup_dma(struct drm_device *drm)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -223,8 +223,10 @@
 	return priv->mapping ? true : false;
 }
 
-int exynos_drm_register_dma(struct drm_device *drm, struct device *dev);
-void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev);
+int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,
+			    void **dma_priv);
+void exynos_drm_unregister_dma(struct drm_device *drm, struct device *dev,
+			       void **dma_priv);
 void exynos_drm_cleanup_dma(struct drm_device *drm);
 
 #ifdef CONFIG_DRM_EXYNOS_DPI
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -544,9 +544,9 @@
 	unsigned long best_freq = 0;
 	u32 min_delta = 0xffffffff;
 	u8 p_min, p_max;
-	u8 _p, uninitialized_var(best_p);
-	u16 _m, uninitialized_var(best_m);
-	u8 _s, uninitialized_var(best_s);
+	u8 _p, best_p;
+	u16 _m, best_m;
+	u8 _s, best_s;
 
 	p_min = DIV_ROUND_UP(fin, (12 * MHZ));
 	p_max = fin / (6 * MHZ);
@@ -1350,10 +1350,9 @@
 	}
 
 	te_gpio_irq = gpio_to_irq(dsi->te_gpio);
-	irq_set_status_flags(te_gpio_irq, IRQ_NOAUTOEN);
 
 	ret = request_threaded_irq(te_gpio_irq, exynos_dsi_te_irq_handler, NULL,
-					IRQF_TRIGGER_RISING, "TE", dsi);
+				   IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN, "TE", dsi);
 	if (ret) {
 		dev_err(dsi->dev, "request interrupt failed with %d\n", ret);
 		gpio_free(dsi->te_gpio);
@@ -1389,7 +1388,7 @@
 		if (ret < 0)
 			goto err_put_sync;
 	} else {
-		drm_bridge_pre_enable(dsi->out_bridge);
+		drm_bridge_chain_pre_enable(dsi->out_bridge);
 	}
 
 	exynos_dsi_set_display_mode(dsi);
@@ -1400,7 +1399,7 @@
 		if (ret < 0)
 			goto err_display_disable;
 	} else {
-		drm_bridge_enable(dsi->out_bridge);
+		drm_bridge_chain_enable(dsi->out_bridge);
 	}
 
 	dsi->state |= DSIM_STATE_VIDOUT_AVAILABLE;
@@ -1425,10 +1424,10 @@
 	dsi->state &= ~DSIM_STATE_VIDOUT_AVAILABLE;
 
 	drm_panel_disable(dsi->panel);
-	drm_bridge_disable(dsi->out_bridge);
+	drm_bridge_chain_disable(dsi->out_bridge);
 	exynos_dsi_set_display_enable(dsi, false);
 	drm_panel_unprepare(dsi->panel);
-	drm_bridge_post_disable(dsi->out_bridge);
+	drm_bridge_chain_post_disable(dsi->out_bridge);
 	dsi->state &= ~DSIM_STATE_ENABLED;
 	pm_runtime_put_sync(dsi->dev);
 }
@@ -1741,17 +1740,14 @@
 	dsi->dev = dev;
 	dsi->driver_data = of_device_get_match_data(dev);
 
-	ret = exynos_dsi_parse_dt(dsi);
-	if (ret)
-		return ret;
-
 	dsi->supplies[0].supply = "vddcore";
 	dsi->supplies[1].supply = "vddio";
 	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(dsi->supplies),
 				      dsi->supplies);
 	if (ret) {
-		dev_info(dev, "failed to get regulators: %d\n", ret);
-		return -EPROBE_DEFER;
+		if (ret != -EPROBE_DEFER)
+			dev_info(dev, "failed to get regulators: %d\n", ret);
+		return ret;
 	}
 
 	dsi->clks = devm_kcalloc(dev,
@@ -1764,9 +1760,10 @@
 		dsi->clks[i] = devm_clk_get(dev, clk_names[i]);
 		if (IS_ERR(dsi->clks[i])) {
 			if (strcmp(clk_names[i], "sclk_mipi") == 0) {
-				strcpy(clk_names[i], OLD_SCLK_MIPI_CLK_NAME);
-				i--;
-				continue;
+				dsi->clks[i] = devm_clk_get(dev,
+							OLD_SCLK_MIPI_CLK_NAME);
+				if (!IS_ERR(dsi->clks[i]))
+					continue;
 			}
 
 			dev_info(dev, "failed to get the clock: %s\n",
@@ -1794,20 +1791,34 @@
 		return dsi->irq;
 	}
 
-	irq_set_status_flags(dsi->irq, IRQ_NOAUTOEN);
 	ret = devm_request_threaded_irq(dev, dsi->irq, NULL,
-					exynos_dsi_irq, IRQF_ONESHOT,
+					exynos_dsi_irq,
+					IRQF_ONESHOT | IRQF_NO_AUTOEN,
 					dev_name(dev), dsi);
 	if (ret) {
 		dev_err(dev, "failed to request dsi irq\n");
 		return ret;
 	}
 
+	ret = exynos_dsi_parse_dt(dsi);
+	if (ret)
+		return ret;
+
 	platform_set_drvdata(pdev, &dsi->encoder);
 
 	pm_runtime_enable(dev);
 
-	return component_add(dev, &exynos_dsi_component_ops);
+	ret = component_add(dev, &exynos_dsi_component_ops);
+	if (ret)
+		goto err_disable_runtime;
+
+	return 0;
+
+err_disable_runtime:
+	pm_runtime_disable(dev);
+	of_node_put(dsi->in_bridge_node);
+
+	return ret;
 }
 
 static int exynos_dsi_remove(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -97,6 +97,7 @@
 struct fimc_context {
 	struct exynos_drm_ipp ipp;
 	struct drm_device *drm_dev;
+	void		*dma_priv;
 	struct device	*dev;
 	struct exynos_drm_ipp_task	*task;
 	struct exynos_drm_ipp_formats	*formats;
@@ -1133,7 +1134,7 @@
 
 	ctx->drm_dev = drm_dev;
 	ipp->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE |
@@ -1153,7 +1154,7 @@
 	struct exynos_drm_ipp *ipp = &ctx->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(drm_dev, dev);
+	exynos_drm_unregister_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static const struct component_ops fimc_component_ops = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -167,6 +167,7 @@
 struct fimd_context {
 	struct device			*dev;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct exynos_drm_crtc		*crtc;
 	struct exynos_drm_plane		planes[WINDOWS_NR];
 	struct exynos_drm_plane_config	configs[WINDOWS_NR];
@@ -1090,7 +1091,7 @@
 	if (is_drm_iommu_supported(drm_dev))
 		fimd_clear_channels(ctx->crtc);
 
-	return exynos_drm_register_dma(drm_dev, dev);
+	return exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static void fimd_unbind(struct device *dev, struct device *master,
@@ -1100,7 +1101,7 @@
 
 	fimd_disable(ctx->crtc);
 
-	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev);
+	exynos_drm_unregister_dma(ctx->drm_dev, ctx->dev, &ctx->dma_priv);
 
 	if (ctx->encoder)
 		exynos_dpi_remove(ctx->encoder);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -232,6 +232,7 @@
 
 struct g2d_data {
 	struct device			*dev;
+	void				*dma_priv;
 	struct clk			*gate_clk;
 	void __iomem			*regs;
 	int				irq;
@@ -1331,7 +1332,7 @@
 	/* Let the runqueue know that there is work to do. */
 	queue_work(g2d->g2d_workq, &g2d->runqueue_work);
 
-	if (runqueue_node->async)
+	if (req->async)
 		goto out;
 
 	wait_for_completion(&runqueue_node->complete);
@@ -1409,7 +1410,7 @@
 		return ret;
 	}
 
-	ret = exynos_drm_register_dma(drm_dev, dev);
+	ret = exynos_drm_register_dma(drm_dev, dev, &g2d->dma_priv);
 	if (ret < 0) {
 		dev_err(dev, "failed to enable iommu.\n");
 		g2d_fini_cmdlist(g2d);
@@ -1434,7 +1435,7 @@
 	priv->g2d_dev = NULL;
 
 	cancel_work_sync(&g2d->runqueue_work);
-	exynos_drm_unregister_dma(g2d->drm_dev, dev);
+	exynos_drm_unregister_dma(g2d->drm_dev, dev, &g2d->dma_priv);
 }
 
 static const struct component_ops g2d_component_ops = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_g2d.h
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_g2d.h
@@ -34,11 +34,11 @@
 	return -ENODEV;
 }
 
-int g2d_open(struct drm_device *drm_dev, struct drm_file *file)
+static inline int g2d_open(struct drm_device *drm_dev, struct drm_file *file)
 {
 	return 0;
 }
 
-void g2d_close(struct drm_device *drm_dev, struct drm_file *file)
+static inline void g2d_close(struct drm_device *drm_dev, struct drm_file *file)
 { }
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -97,6 +97,7 @@
 struct gsc_context {
 	struct exynos_drm_ipp ipp;
 	struct drm_device *drm_dev;
+	void		*dma_priv;
 	struct device	*dev;
 	struct exynos_drm_ipp_task	*task;
 	struct exynos_drm_ipp_formats	*formats;
@@ -1169,7 +1170,7 @@
 
 	ctx->drm_dev = drm_dev;
 	ctx->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &ctx->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE |
@@ -1189,7 +1190,7 @@
 	struct exynos_drm_ipp *ipp = &ctx->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(drm_dev, dev);
+	exynos_drm_unregister_dma(drm_dev, dev, &ctx->dma_priv);
 }
 
 static const struct component_ops gsc_component_ops = {
@@ -1313,6 +1314,7 @@
 {
 	struct device *dev = &pdev->dev;
 
+	component_del(dev, &gsc_component_ops);
 	pm_runtime_dont_use_autosuspend(dev);
 	pm_runtime_disable(dev);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_mic.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_mic.c
@@ -268,8 +268,10 @@
 		goto unlock;
 
 	ret = pm_runtime_get_sync(mic->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(mic->dev);
 		goto unlock;
+	}
 
 	mic_set_path(mic, 1);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -56,6 +56,7 @@
 struct rot_context {
 	struct exynos_drm_ipp ipp;
 	struct drm_device *drm_dev;
+	void		*dma_priv;
 	struct device	*dev;
 	void __iomem	*regs;
 	struct clk	*clock;
@@ -243,7 +244,7 @@
 
 	rot->drm_dev = drm_dev;
 	ipp->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &rot->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			   DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE,
@@ -261,7 +262,7 @@
 	struct exynos_drm_ipp *ipp = &rot->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(rot->drm_dev, rot->dev);
+	exynos_drm_unregister_dma(rot->drm_dev, rot->dev, &rot->dma_priv);
 }
 
 static const struct component_ops rotator_component_ops = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_scaler.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_scaler.c
@@ -39,6 +39,7 @@
 struct scaler_context {
 	struct exynos_drm_ipp		ipp;
 	struct drm_device		*drm_dev;
+	void				*dma_priv;
 	struct device			*dev;
 	void __iomem			*regs;
 	struct clk			*clock[SCALER_MAX_CLK];
@@ -450,7 +451,7 @@
 
 	scaler->drm_dev = drm_dev;
 	ipp->drm_dev = drm_dev;
-	exynos_drm_register_dma(drm_dev, dev);
+	exynos_drm_register_dma(drm_dev, dev, &scaler->dma_priv);
 
 	exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
 			DRM_EXYNOS_IPP_CAP_CROP | DRM_EXYNOS_IPP_CAP_ROTATE |
@@ -470,7 +471,8 @@
 	struct exynos_drm_ipp *ipp = &scaler->ipp;
 
 	exynos_drm_ipp_unregister(dev, ipp);
-	exynos_drm_unregister_dma(scaler->drm_dev, scaler->dev);
+	exynos_drm_unregister_dma(scaler->drm_dev, scaler->dev,
+				  &scaler->dma_priv);
 }
 
 static const struct component_ops scaler_component_ops = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -483,8 +483,6 @@
 	if (ctx->raw_edid != (struct edid *)fake_edid_info) {
 		kfree(ctx->raw_edid);
 		ctx->raw_edid = NULL;
-
-		return -EINVAL;
 	}
 
 	component_del(&pdev->dev, &vidi_component_ops);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -852,6 +852,10 @@
 
 static void hdmi_connector_destroy(struct drm_connector *connector)
 {
+	struct hdmi_context *hdata = connector_to_hdmi(connector);
+
+	cec_notifier_conn_unregister(hdata->notifier);
+
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
@@ -935,6 +939,7 @@
 {
 	struct hdmi_context *hdata = encoder_to_hdmi(encoder);
 	struct drm_connector *connector = &hdata->connector;
+	struct cec_connector_info conn_info;
 	int ret;
 
 	connector->interlace_allowed = true;
@@ -957,6 +962,15 @@
 			DRM_DEV_ERROR(hdata->dev, "Failed to attach bridge\n");
 	}
 
+	cec_fill_conn_info_from_drm(&conn_info, connector);
+
+	hdata->notifier = cec_notifier_conn_register(hdata->dev, NULL,
+						     &conn_info);
+	if (!hdata->notifier) {
+		ret = -ENOMEM;
+		DRM_DEV_ERROR(hdata->dev, "Failed to allocate CEC notifier\n");
+	}
+
 	return ret;
 }
 
@@ -1528,8 +1542,8 @@
 		 */
 		mutex_unlock(&hdata->mutex);
 		cancel_delayed_work(&hdata->hotplug_work);
-		cec_notifier_set_phys_addr(hdata->notifier,
-					   CEC_PHYS_ADDR_INVALID);
+		if (hdata->notifier)
+			cec_notifier_phys_addr_invalidate(hdata->notifier);
 		return;
 	}
 
@@ -1788,18 +1802,10 @@
 
 	hdata->reg_hdmi_en = devm_regulator_get_optional(dev, "hdmi-en");
 
-	if (PTR_ERR(hdata->reg_hdmi_en) != -ENODEV) {
+	if (PTR_ERR(hdata->reg_hdmi_en) != -ENODEV)
 		if (IS_ERR(hdata->reg_hdmi_en))
 			return PTR_ERR(hdata->reg_hdmi_en);
 
-		ret = regulator_enable(hdata->reg_hdmi_en);
-		if (ret) {
-			DRM_DEV_ERROR(dev,
-				      "failed to enable hdmi-en regulator\n");
-			return ret;
-		}
-	}
-
 	return hdmi_bridge_init(hdata);
 }
 
@@ -2006,10 +2012,13 @@
 		}
 	}
 
-	hdata->notifier = cec_notifier_get(&pdev->dev);
-	if (hdata->notifier == NULL) {
-		ret = -ENOMEM;
-		goto err_hdmiphy;
+	if (!IS_ERR(hdata->reg_hdmi_en)) {
+		ret = regulator_enable(hdata->reg_hdmi_en);
+		if (ret) {
+			DRM_DEV_ERROR(dev,
+			      "failed to enable hdmi-en regulator\n");
+			goto err_hdmiphy;
+		}
 	}
 
 	pm_runtime_enable(dev);
@@ -2023,7 +2032,7 @@
 
 	ret = hdmi_register_audio_device(hdata);
 	if (ret)
-		goto err_notifier_put;
+		goto err_rpm_disable;
 
 	ret = component_add(&pdev->dev, &hdmi_component_ops);
 	if (ret)
@@ -2034,10 +2043,10 @@
 err_unregister_audio:
 	platform_device_unregister(hdata->audio.pdev);
 
-err_notifier_put:
-	cec_notifier_put(hdata->notifier);
+err_rpm_disable:
 	pm_runtime_disable(dev);
-
+	if (!IS_ERR(hdata->reg_hdmi_en))
+		regulator_disable(hdata->reg_hdmi_en);
 err_hdmiphy:
 	if (hdata->hdmiphy_port)
 		put_device(&hdata->hdmiphy_port->dev);
@@ -2054,12 +2063,10 @@
 	struct hdmi_context *hdata = platform_get_drvdata(pdev);
 
 	cancel_delayed_work_sync(&hdata->hotplug_work);
-	cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID);
 
 	component_del(&pdev->dev, &hdmi_component_ops);
 	platform_device_unregister(hdata->audio.pdev);
 
-	cec_notifier_put(hdata->notifier);
 	pm_runtime_disable(&pdev->dev);
 
 	if (!IS_ERR(hdata->reg_hdmi_en))
--- linux-ein-5.4.0.orig/drivers/gpu/drm/exynos/exynos_mixer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -94,6 +94,7 @@
 	struct platform_device *pdev;
 	struct device		*dev;
 	struct drm_device	*drm_dev;
+	void			*dma_priv;
 	struct exynos_drm_crtc	*crtc;
 	struct exynos_drm_plane	planes[MIXER_WIN_NR];
 	unsigned long		flags;
@@ -894,12 +895,14 @@
 		}
 	}
 
-	return exynos_drm_register_dma(drm_dev, mixer_ctx->dev);
+	return exynos_drm_register_dma(drm_dev, mixer_ctx->dev,
+				       &mixer_ctx->dma_priv);
 }
 
 static void mixer_ctx_remove(struct mixer_context *mixer_ctx)
 {
-	exynos_drm_unregister_dma(mixer_ctx->drm_dev, mixer_ctx->dev);
+	exynos_drm_unregister_dma(mixer_ctx->drm_dev, mixer_ctx->dev,
+				  &mixer_ctx->dma_priv);
 }
 
 static int mixer_enable_vblank(struct exynos_drm_crtc *crtc)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
@@ -12,19 +12,11 @@
 #include <drm/drm_of.h>
 #include <drm/drm_panel.h>
 #include <drm/drm_probe_helper.h>
+#include <drm/drm_simple_kms_helper.h>
 
 #include "fsl_dcu_drm_drv.h"
 #include "fsl_tcon.h"
 
-static void fsl_dcu_drm_encoder_destroy(struct drm_encoder *encoder)
-{
-	drm_encoder_cleanup(encoder);
-}
-
-static const struct drm_encoder_funcs encoder_funcs = {
-	.destroy = fsl_dcu_drm_encoder_destroy,
-};
-
 int fsl_dcu_drm_encoder_create(struct fsl_dcu_drm_device *fsl_dev,
 			       struct drm_crtc *crtc)
 {
@@ -37,8 +29,8 @@
 	if (fsl_dev->tcon)
 		fsl_tcon_bypass_enable(fsl_dev->tcon);
 
-	ret = drm_encoder_init(fsl_dev->drm, encoder, &encoder_funcs,
-			       DRM_MODE_ENCODER_LVDS, NULL);
+	ret = drm_simple_encoder_init(fsl_dev->drm, encoder,
+				      DRM_MODE_ENCODER_LVDS);
 	if (ret < 0)
 		return ret;
 
@@ -70,8 +62,9 @@
 	return drm_panel_get_modes(fsl_connector->panel);
 }
 
-static int fsl_dcu_drm_connector_mode_valid(struct drm_connector *connector,
-					    struct drm_display_mode *mode)
+static enum drm_mode_status
+fsl_dcu_drm_connector_mode_valid(struct drm_connector *connector,
+				 struct drm_display_mode *mode)
 {
 	if (mode->hdisplay & 0xf)
 		return MODE_ERROR;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/cdv_intel_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/cdv_intel_display.c
@@ -405,6 +405,8 @@
 	struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
 	struct gma_clock_t clock;
 
+	memset(&clock, 0, sizeof(clock));
+
 	switch (refclk) {
 	case 27000:
 		if (target < 200000) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/cdv_intel_dp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/cdv_intel_dp.c
@@ -2120,12 +2120,12 @@
 					       intel_dp->dpcd,
 					       sizeof(intel_dp->dpcd));
 		cdv_intel_edp_panel_vdd_off(gma_encoder);
-		if (ret == 0) {
+		if (ret <= 0) {
 			/* if this fails, presume the device is a ghost */
 			DRM_INFO("failed to retrieve link info, disabling eDP\n");
 			cdv_intel_dp_encoder_destroy(encoder);
 			cdv_intel_dp_destroy(connector);
-			goto err_priv;
+			goto err_connector;
 		} else {
         		DRM_DEBUG_KMS("DPCD: Rev=%x LN_Rate=%x LN_CNT=%x LN_DOWNSP=%x\n",
 				intel_dp->dpcd[0], intel_dp->dpcd[1], 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/framebuffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/framebuffer.c
@@ -462,6 +462,7 @@
 		container_of(helper, struct psb_fbdev, psb_fb_helper);
 	struct drm_device *dev = psb_fbdev->psb_fb_helper.dev;
 	struct drm_psb_private *dev_priv = dev->dev_private;
+	unsigned int fb_size;
 	int bytespp;
 
 	bytespp = sizes->surface_bpp / 8;
@@ -471,8 +472,11 @@
 	/* If the mode will not fit in 32bit then switch to 16bit to get
 	   a console on full resolution. The X mode setting server will
 	   allocate its own 32bit GEM framebuffer */
-	if (ALIGN(sizes->fb_width * bytespp, 64) * sizes->fb_height >
-	                dev_priv->vram_stolen_size) {
+	fb_size = ALIGN(sizes->surface_width * bytespp, 64) *
+		  sizes->surface_height;
+	fb_size = ALIGN(fb_size, PAGE_SIZE);
+
+	if (fb_size > dev_priv->vram_stolen_size) {
                 sizes->surface_bpp = 16;
                 sizes->surface_depth = 16;
         }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/oaktrail_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/oaktrail_crtc.c
@@ -129,6 +129,7 @@
 	s32 freq_error, min_error = 100000;
 
 	memset(best_clock, 0, sizeof(*best_clock));
+	memset(&clock, 0, sizeof(clock));
 
 	for (clock.m = limit->m.min; clock.m <= limit->m.max; clock.m++) {
 		for (clock.n = limit->n.min; clock.n <= limit->n.max;
@@ -185,6 +186,7 @@
 	int err = target;
 
 	memset(best_clock, 0, sizeof(*best_clock));
+	memset(&clock, 0, sizeof(clock));
 
 	for (clock.m = limit->m.min; clock.m <= limit->m.max; clock.m++) {
 		for (clock.p1 = limit->p1.min; clock.p1 <= limit->p1.max;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
@@ -279,11 +279,8 @@
 	hdmi_dev = pci_get_drvdata(dev);
 
 	i2c_dev = kzalloc(sizeof(struct hdmi_i2c_dev), GFP_KERNEL);
-	if (i2c_dev == NULL) {
-		DRM_ERROR("Can't allocate interface\n");
-		ret = -ENOMEM;
-		goto exit;
-	}
+	if (!i2c_dev)
+		return -ENOMEM;
 
 	i2c_dev->adap = &oaktrail_hdmi_i2c_adapter;
 	i2c_dev->status = I2C_STAT_INIT;
@@ -300,16 +297,23 @@
 			  oaktrail_hdmi_i2c_adapter.name, hdmi_dev);
 	if (ret) {
 		DRM_ERROR("Failed to request IRQ for I2C controller\n");
-		goto err;
+		goto free_dev;
 	}
 
 	/* Adapter registration */
 	ret = i2c_add_numbered_adapter(&oaktrail_hdmi_i2c_adapter);
-	return ret;
+	if (ret) {
+		DRM_ERROR("Failed to add I2C adapter\n");
+		goto free_irq;
+	}
+
+	return 0;
 
-err:
+free_irq:
+	free_irq(dev->irq, hdmi_dev);
+free_dev:
 	kfree(i2c_dev);
-exit:
+
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/psb_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/psb_drv.c
@@ -313,6 +313,8 @@
 	if (ret)
 		goto out_err;
 
+	ret = -ENOMEM;
+
 	dev_priv->mmu = psb_mmu_driver_init(dev, 1, 0, 0);
 	if (!dev_priv->mmu)
 		goto out_err;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/psb_intel_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/psb_intel_display.c
@@ -532,14 +532,15 @@
 
 struct drm_crtc *psb_intel_get_crtc_from_pipe(struct drm_device *dev, int pipe)
 {
-	struct drm_crtc *crtc = NULL;
+	struct drm_crtc *crtc;
 
 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
 		struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
+
 		if (gma_crtc->pipe == pipe)
-			break;
+			return crtc;
 	}
-	return crtc;
+	return NULL;
 }
 
 int gma_connector_clones(struct drm_device *dev, int type_mask)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/gma500/psb_irq.c
+++ linux-ein-5.4.0/drivers/gpu/drm/gma500/psb_irq.c
@@ -337,6 +337,7 @@
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
 	unsigned long irqflags;
+	unsigned int i;
 
 	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
 
@@ -349,20 +350,12 @@
 	PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
 	PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);
 
-	if (dev->vblank[0].enabled)
-		psb_enable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[1].enabled)
-		psb_enable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[2].enabled)
-		psb_enable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+	for (i = 0; i < dev->num_crtcs; ++i) {
+		if (dev->vblank[i].enabled)
+			psb_enable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+		else
+			psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+	}
 
 	if (dev_priv->ops->hotplug_enable)
 		dev_priv->ops->hotplug_enable(dev, true);
@@ -375,6 +368,7 @@
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
 	unsigned long irqflags;
+	unsigned int i;
 
 	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
 
@@ -383,14 +377,10 @@
 
 	PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);
 
-	if (dev->vblank[0].enabled)
-		psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[1].enabled)
-		psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[2].enabled)
-		psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+	for (i = 0; i < dev->num_crtcs; ++i) {
+		if (dev->vblank[i].enabled)
+			psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+	}
 
 	dev_priv->vdc_irq_mask &= _PSB_IRQ_SGX_FLAG |
 				  _PSB_IRQ_MSVDX_FLAG |
--- linux-ein-5.4.0.orig/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -376,7 +376,6 @@
 
 	drm_dev_unregister(dev);
 	hibmc_unload(dev);
-	drm_dev_put(dev);
 }
 
 static struct pci_device_id hibmc_pci_table[] = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
+++ linux-ein-5.4.0/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
@@ -83,7 +83,6 @@
 #define VSIZE_OFST			20
 #define LDI_INT_EN			0x741C
 #define FRAME_END_INT_EN_OFST		1
-#define UNDERFLOW_INT_EN_OFST		2
 #define LDI_CTRL			0x7420
 #define BPP_OFST			3
 #define DATA_GATE_EN			BIT(2)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ linux-ein-5.4.0/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -46,7 +46,6 @@
 	struct clk *media_noc_clk;
 	struct clk *ade_pix_clk;
 	struct reset_control *reset;
-	struct work_struct display_reset_wq;
 	bool power_on;
 	int irq;
 
@@ -136,7 +135,6 @@
 	 */
 	ade_update_bits(base + ADE_CTRL, FRM_END_START_OFST,
 			FRM_END_START_MASK, REG_EFFECTIVE_IN_ADEEN_FRMEND);
-	ade_update_bits(base + LDI_INT_EN, UNDERFLOW_INT_EN_OFST, MASK(1), 1);
 }
 
 static bool ade_crtc_mode_fixup(struct drm_crtc *crtc,
@@ -304,17 +302,6 @@
 			MASK(1), 0);
 }
 
-static void drm_underflow_wq(struct work_struct *work)
-{
-	struct ade_hw_ctx *ctx = container_of(work, struct ade_hw_ctx,
-					      display_reset_wq);
-	struct drm_device *drm_dev = ctx->crtc->dev;
-	struct drm_atomic_state *state;
-
-	state = drm_atomic_helper_suspend(drm_dev);
-	drm_atomic_helper_resume(drm_dev, state);
-}
-
 static irqreturn_t ade_irq_handler(int irq, void *data)
 {
 	struct ade_hw_ctx *ctx = data;
@@ -331,12 +318,6 @@
 				MASK(1), 1);
 		drm_crtc_handle_vblank(crtc);
 	}
-	if (status & BIT(UNDERFLOW_INT_EN_OFST)) {
-		ade_update_bits(base + LDI_INT_CLR, UNDERFLOW_INT_EN_OFST,
-				MASK(1), 1);
-		DRM_ERROR("LDI underflow!");
-		schedule_work(&ctx->display_reset_wq);
-	}
 
 	return IRQ_HANDLED;
 }
@@ -919,7 +900,6 @@
 	if (ret)
 		return ERR_PTR(-EIO);
 
-	INIT_WORK(&ctx->display_reset_wq, drm_underflow_wq);
 	ctx->crtc = crtc;
 
 	return ctx;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i810/i810_dma.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i810/i810_dma.c
@@ -728,7 +728,7 @@
 	if (nbox > I810_NR_SAREA_CLIPRECTS)
 		nbox = I810_NR_SAREA_CLIPRECTS;
 
-	if (used > 4 * 1024)
+	if (used < 0 || used > 4 * 1024)
 		used = 0;
 
 	if (sarea_priv->dirty)
@@ -1048,7 +1048,7 @@
 	if (u != I810_BUF_CLIENT)
 		DRM_DEBUG("MC found buffer that isn't mine!\n");
 
-	if (used > 4 * 1024)
+	if (used < 0 || used > 4 * 1024)
 		used = 0;
 
 	sarea_priv->dirty = 0x7f;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/Kconfig
@@ -75,9 +75,8 @@
 	help
 	  This option enables capturing the GPU state when a hang is detected.
 	  This information is vital for triaging hangs and assists in debugging.
-	  Please report any hang to
-            https://bugs.freedesktop.org/enter_bug.cgi?product=DRI
-	  for triaging.
+	  Please report any hang for triaging according to:
+	    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 
 	  If in doubt, say "Y".
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/Kconfig.debug
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/Kconfig.debug
@@ -7,7 +7,6 @@
         # We use the dependency on !COMPILE_TEST to not be enabled in
         # allmodconfig or allyesconfig configurations
         depends on !COMPILE_TEST
-	select HEADER_TEST
         default n
         help
           Add -Werror to the build flags for (and only for) i915.ko.
@@ -22,7 +21,6 @@
         depends on DRM_I915
         select DEBUG_FS
         select PREEMPT_COUNT
-        select REFCOUNT_FULL
         select I2C_CHARDEV
         select STACKDEPOT
         select DRM_DP_AUX_CHARDEV
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/Makefile
@@ -83,6 +83,7 @@
 	gt/intel_gt_irq.o \
 	gt/intel_gt_pm.o \
 	gt/intel_gt_pm_irq.o \
+	gt/intel_gt_requests.o \
 	gt/intel_hangcheck.o \
 	gt/intel_lrc.o \
 	gt/intel_renderstate.o \
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_acpi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_acpi.c
@@ -83,13 +83,31 @@
 		return;
 	}
 
+	if (!pkg->package.count) {
+		DRM_DEBUG_DRIVER("no connection in _DSM\n");
+		return;
+	}
+
 	connector_count = &pkg->package.elements[0];
 	DRM_DEBUG_DRIVER("MUX info connectors: %lld\n",
 		  (unsigned long long)connector_count->integer.value);
 	for (i = 1; i < pkg->package.count; i++) {
 		union acpi_object *obj = &pkg->package.elements[i];
-		union acpi_object *connector_id = &obj->package.elements[0];
-		union acpi_object *info = &obj->package.elements[1];
+		union acpi_object *connector_id;
+		union acpi_object *info;
+
+		if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count < 2) {
+			DRM_DEBUG_DRIVER("Invalid object for MUX #%d\n", i);
+			continue;
+		}
+
+		connector_id = &obj->package.elements[0];
+		info = &obj->package.elements[1];
+		if (info->type != ACPI_TYPE_BUFFER || info->buffer.length < 4) {
+			DRM_DEBUG_DRIVER("Invalid info for MUX obj #%d\n", i);
+			continue;
+		}
+
 		DRM_DEBUG_DRIVER("Connector id: 0x%016llx\n",
 			  (unsigned long long)connector_id->integer.value);
 		DRM_DEBUG_DRIVER("  port id: %s\n",
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_audio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_audio.c
@@ -851,10 +851,16 @@
 	ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
 
 	/* Force CDCLK to 2*BCLK as long as we need audio to be powered. */
-	if (dev_priv->audio_power_refcount++ == 0)
-		if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+	if (dev_priv->audio_power_refcount++ == 0) {
+		if (IS_GEMINILAKE(dev_priv))
 			glk_force_audio_cdclk(dev_priv, true);
 
+		if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+			I915_WRITE(AUD_PIN_BUF_CTL,
+				   (I915_READ(AUD_PIN_BUF_CTL) |
+				    AUD_PIN_BUF_ENABLE));
+	}
+
 	return ret;
 }
 
@@ -865,7 +871,7 @@
 
 	/* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */
 	if (--dev_priv->audio_power_refcount == 0)
-		if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+		if (IS_GEMINILAKE(dev_priv))
 			glk_force_audio_cdclk(dev_priv, false);
 
 	intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO, cookie);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_bios.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_bios.c
@@ -32,6 +32,7 @@
 #include "display/intel_gmbus.h"
 
 #include "i915_drv.h"
+#include <linux/dmi.h>
 
 #define _INTEL_BIOS_PRIVATE
 #include "intel_vbt_defs.h"
@@ -1828,6 +1829,22 @@
 	return NULL;
 }
 
+#define DRM_DMI_PRODUCT_VERSION 0x6
+
+static void parse_product_info(struct drm_i915_private *dev_priv)
+{
+	const char *product_ver = dmi_get_system_info(DRM_DMI_PRODUCT_VERSION);
+	if (!product_ver)
+		return;
+
+	if (!strncmp(product_ver, "ThinkPad X1", 11)) {
+		DRM_DEBUG_KMS("dmi: %s, Bypassing TMDS_OE write\n", product_ver);
+		dev_priv->bypass_tmds_oe = true;
+	}
+
+	return;
+}
+
 /**
  * intel_bios_init - find VBT and initialize settings from the BIOS
  * @dev_priv: i915 device instance
@@ -1886,6 +1903,8 @@
 	parse_sdvo_device_mapping(dev_priv, bdb->version);
 	parse_ddi_ports(dev_priv, bdb->version);
 
+	parse_product_info(dev_priv);
+
 out:
 	if (!vbt) {
 		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_ddi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -2124,7 +2124,11 @@
 		return;
 
 	dig_port = enc_to_dig_port(&encoder->base);
-	intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
+
+	if (!intel_phy_is_tc(dev_priv, phy) ||
+	    dig_port->tc_mode != TC_PORT_TBT_ALT)
+		intel_display_power_get(dev_priv,
+					dig_port->ddi_io_power_domain);
 
 	/*
 	 * AUX power is only needed for (e)DP mode, and for HDMI mode on TC
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_display.c
@@ -6753,20 +6753,30 @@
 	    dig_port->tc_mode == TC_PORT_TBT_ALT) {
 		switch (dig_port->aux_ch) {
 		case AUX_CH_C:
-			return POWER_DOMAIN_AUX_TBT1;
+			return POWER_DOMAIN_AUX_C_TBT;
 		case AUX_CH_D:
-			return POWER_DOMAIN_AUX_TBT2;
+			return POWER_DOMAIN_AUX_D_TBT;
 		case AUX_CH_E:
-			return POWER_DOMAIN_AUX_TBT3;
+			return POWER_DOMAIN_AUX_E_TBT;
 		case AUX_CH_F:
-			return POWER_DOMAIN_AUX_TBT4;
+			return POWER_DOMAIN_AUX_F_TBT;
 		default:
 			MISSING_CASE(dig_port->aux_ch);
-			return POWER_DOMAIN_AUX_TBT1;
+			return POWER_DOMAIN_AUX_C_TBT;
 		}
 	}
 
-	switch (dig_port->aux_ch) {
+	return intel_legacy_aux_to_power_domain(dig_port->aux_ch);
+}
+
+/*
+ * Converts aux_ch to power_domain without caring about TBT ports for that use
+ * intel_aux_power_domain()
+ */
+enum intel_display_power_domain
+intel_legacy_aux_to_power_domain(enum aux_ch aux_ch)
+{
+	switch (aux_ch) {
 	case AUX_CH_A:
 		return POWER_DOMAIN_AUX_A;
 	case AUX_CH_B:
@@ -6780,7 +6790,7 @@
 	case AUX_CH_F:
 		return POWER_DOMAIN_AUX_F;
 	default:
-		MISSING_CASE(dig_port->aux_ch);
+		MISSING_CASE(aux_ch);
 		return POWER_DOMAIN_AUX_A;
 	}
 }
@@ -10510,7 +10520,7 @@
 	u32 base;
 
 	if (INTEL_INFO(dev_priv)->display.cursor_needs_physical)
-		base = obj->phys_handle->busaddr;
+		base = sg_dma_address(obj->mm.pages->sgl);
 	else
 		base = intel_plane_ggtt_offset(plane_state);
 
@@ -11893,10 +11903,11 @@
 	case 10 ... 11:
 		bpp = 10 * 3;
 		break;
-	case 12:
+	case 12 ... 16:
 		bpp = 12 * 3;
 		break;
 	default:
+		MISSING_CASE(conn_state->max_bpc);
 		return -EINVAL;
 	}
 
@@ -14429,7 +14440,7 @@
 		return ret;
 
 	fb_obj_bump_render_priority(obj);
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_DIRTYFB);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_DIRTYFB);
 
 	if (!new_state->fence) { /* implicit fencing */
 		struct dma_fence *fence;
@@ -16860,8 +16871,11 @@
 
 static void intel_early_display_was(struct drm_i915_private *dev_priv)
 {
-	/* Display WA #1185 WaDisableDARBFClkGating:cnl,glk */
-	if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
+	/*
+	 * Display WA #1185 WaDisableDARBFClkGating:cnl,glk,icl,ehl,tgl
+	 * Also known as Wa_14010480278.
+	 */
+	if (IS_GEN_RANGE(dev_priv, 10, 12) || IS_GEMINILAKE(dev_priv))
 		I915_WRITE(GEN9_CLKGATE_DIS_0, I915_READ(GEN9_CLKGATE_DIS_0) |
 			   DARBF_GATING_DIS);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_display.h
@@ -513,6 +513,8 @@
 enum intel_display_power_domain intel_port_to_power_domain(enum port port);
 enum intel_display_power_domain
 intel_aux_power_domain(struct intel_digital_port *dig_port);
+enum intel_display_power_domain
+intel_legacy_aux_to_power_domain(enum aux_ch aux_ch);
 void intel_mode_from_pipe_config(struct drm_display_mode *mode,
 				 struct intel_crtc_state *pipe_config);
 void intel_crtc_arm_fifo_underrun(struct intel_crtc *crtc,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display_power.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -20,15 +20,14 @@
 #include "intel_sideband.h"
 #include "intel_tc.h"
 
+static const struct i915_power_well_ops icl_tc_phy_aux_power_well_ops;
+
 bool intel_display_power_well_is_enabled(struct drm_i915_private *dev_priv,
 					 enum i915_power_well_id power_well_id);
 
 const char *
-intel_display_power_domain_str(struct drm_i915_private *i915,
-			       enum intel_display_power_domain domain)
+intel_display_power_domain_str(enum intel_display_power_domain domain)
 {
-	bool ddi_tc_ports = IS_GEN(i915, 12);
-
 	switch (domain) {
 	case POWER_DOMAIN_DISPLAY_CORE:
 		return "DISPLAY_CORE";
@@ -71,23 +70,17 @@
 	case POWER_DOMAIN_PORT_DDI_C_LANES:
 		return "PORT_DDI_C_LANES";
 	case POWER_DOMAIN_PORT_DDI_D_LANES:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_D_LANES !=
-			     POWER_DOMAIN_PORT_DDI_TC1_LANES);
-		return ddi_tc_ports ? "PORT_DDI_TC1_LANES" : "PORT_DDI_D_LANES";
+		return "PORT_DDI_D_LANES";
 	case POWER_DOMAIN_PORT_DDI_E_LANES:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_E_LANES !=
-			     POWER_DOMAIN_PORT_DDI_TC2_LANES);
-		return ddi_tc_ports ? "PORT_DDI_TC2_LANES" : "PORT_DDI_E_LANES";
+		return "PORT_DDI_E_LANES";
 	case POWER_DOMAIN_PORT_DDI_F_LANES:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_F_LANES !=
-			     POWER_DOMAIN_PORT_DDI_TC3_LANES);
-		return ddi_tc_ports ? "PORT_DDI_TC3_LANES" : "PORT_DDI_F_LANES";
-	case POWER_DOMAIN_PORT_DDI_TC4_LANES:
-		return "PORT_DDI_TC4_LANES";
-	case POWER_DOMAIN_PORT_DDI_TC5_LANES:
-		return "PORT_DDI_TC5_LANES";
-	case POWER_DOMAIN_PORT_DDI_TC6_LANES:
-		return "PORT_DDI_TC6_LANES";
+		return "PORT_DDI_F_LANES";
+	case POWER_DOMAIN_PORT_DDI_G_LANES:
+		return "PORT_DDI_G_LANES";
+	case POWER_DOMAIN_PORT_DDI_H_LANES:
+		return "PORT_DDI_H_LANES";
+	case POWER_DOMAIN_PORT_DDI_I_LANES:
+		return "PORT_DDI_I_LANES";
 	case POWER_DOMAIN_PORT_DDI_A_IO:
 		return "PORT_DDI_A_IO";
 	case POWER_DOMAIN_PORT_DDI_B_IO:
@@ -95,23 +88,17 @@
 	case POWER_DOMAIN_PORT_DDI_C_IO:
 		return "PORT_DDI_C_IO";
 	case POWER_DOMAIN_PORT_DDI_D_IO:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_D_IO !=
-			     POWER_DOMAIN_PORT_DDI_TC1_IO);
-		return ddi_tc_ports ? "PORT_DDI_TC1_IO" : "PORT_DDI_D_IO";
+		return "PORT_DDI_D_IO";
 	case POWER_DOMAIN_PORT_DDI_E_IO:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_E_IO !=
-			     POWER_DOMAIN_PORT_DDI_TC2_IO);
-		return ddi_tc_ports ? "PORT_DDI_TC2_IO" : "PORT_DDI_E_IO";
+		return "PORT_DDI_E_IO";
 	case POWER_DOMAIN_PORT_DDI_F_IO:
-		BUILD_BUG_ON(POWER_DOMAIN_PORT_DDI_F_IO !=
-			     POWER_DOMAIN_PORT_DDI_TC3_IO);
-		return ddi_tc_ports ? "PORT_DDI_TC3_IO" : "PORT_DDI_F_IO";
-	case POWER_DOMAIN_PORT_DDI_TC4_IO:
-		return "PORT_DDI_TC4_IO";
-	case POWER_DOMAIN_PORT_DDI_TC5_IO:
-		return "PORT_DDI_TC5_IO";
-	case POWER_DOMAIN_PORT_DDI_TC6_IO:
-		return "PORT_DDI_TC6_IO";
+		return "PORT_DDI_F_IO";
+	case POWER_DOMAIN_PORT_DDI_G_IO:
+		return "PORT_DDI_G_IO";
+	case POWER_DOMAIN_PORT_DDI_H_IO:
+		return "PORT_DDI_H_IO";
+	case POWER_DOMAIN_PORT_DDI_I_IO:
+		return "PORT_DDI_I_IO";
 	case POWER_DOMAIN_PORT_DSI:
 		return "PORT_DSI";
 	case POWER_DOMAIN_PORT_CRT:
@@ -129,34 +116,33 @@
 	case POWER_DOMAIN_AUX_C:
 		return "AUX_C";
 	case POWER_DOMAIN_AUX_D:
-		BUILD_BUG_ON(POWER_DOMAIN_AUX_D != POWER_DOMAIN_AUX_TC1);
-		return ddi_tc_ports ? "AUX_TC1" : "AUX_D";
+		return "AUX_D";
 	case POWER_DOMAIN_AUX_E:
-		BUILD_BUG_ON(POWER_DOMAIN_AUX_E != POWER_DOMAIN_AUX_TC2);
-		return ddi_tc_ports ? "AUX_TC2" : "AUX_E";
+		return "AUX_E";
 	case POWER_DOMAIN_AUX_F:
-		BUILD_BUG_ON(POWER_DOMAIN_AUX_F != POWER_DOMAIN_AUX_TC3);
-		return ddi_tc_ports ? "AUX_TC3" : "AUX_F";
-	case POWER_DOMAIN_AUX_TC4:
-		return "AUX_TC4";
-	case POWER_DOMAIN_AUX_TC5:
-		return "AUX_TC5";
-	case POWER_DOMAIN_AUX_TC6:
-		return "AUX_TC6";
+		return "AUX_F";
+	case POWER_DOMAIN_AUX_G:
+		return "AUX_G";
+	case POWER_DOMAIN_AUX_H:
+		return "AUX_H";
+	case POWER_DOMAIN_AUX_I:
+		return "AUX_I";
 	case POWER_DOMAIN_AUX_IO_A:
 		return "AUX_IO_A";
-	case POWER_DOMAIN_AUX_TBT1:
-		return "AUX_TBT1";
-	case POWER_DOMAIN_AUX_TBT2:
-		return "AUX_TBT2";
-	case POWER_DOMAIN_AUX_TBT3:
-		return "AUX_TBT3";
-	case POWER_DOMAIN_AUX_TBT4:
-		return "AUX_TBT4";
-	case POWER_DOMAIN_AUX_TBT5:
-		return "AUX_TBT5";
-	case POWER_DOMAIN_AUX_TBT6:
-		return "AUX_TBT6";
+	case POWER_DOMAIN_AUX_C_TBT:
+		return "AUX_C_TBT";
+	case POWER_DOMAIN_AUX_D_TBT:
+		return "AUX_D_TBT";
+	case POWER_DOMAIN_AUX_E_TBT:
+		return "AUX_E_TBT";
+	case POWER_DOMAIN_AUX_F_TBT:
+		return "AUX_F_TBT";
+	case POWER_DOMAIN_AUX_G_TBT:
+		return "AUX_G_TBT";
+	case POWER_DOMAIN_AUX_H_TBT:
+		return "AUX_H_TBT";
+	case POWER_DOMAIN_AUX_I_TBT:
+		return "AUX_I_TBT";
 	case POWER_DOMAIN_GMBUS:
 		return "GMBUS";
 	case POWER_DOMAIN_INIT:
@@ -167,6 +153,8 @@
 		return "GT_IRQ";
 	case POWER_DOMAIN_DPLL_DC_OFF:
 		return "DPLL_DC_OFF";
+	case POWER_DOMAIN_TC_COLD_OFF:
+		return "TC_COLD_OFF";
 	default:
 		MISSING_CASE(domain);
 		return "?";
@@ -312,6 +300,70 @@
 		gen8_irq_power_well_pre_disable(dev_priv, irq_pipe_mask);
 }
 
+#define ICL_AUX_PW_TO_CH(pw_idx)	\
+	((pw_idx) - ICL_PW_CTL_IDX_AUX_A + AUX_CH_A)
+
+#define ICL_TBT_AUX_PW_TO_CH(pw_idx)	\
+	((pw_idx) - ICL_PW_CTL_IDX_AUX_TBT1 + AUX_CH_C)
+
+static enum aux_ch icl_tc_phy_aux_ch(struct drm_i915_private *dev_priv,
+				     struct i915_power_well *power_well)
+{
+	int pw_idx = power_well->desc->hsw.idx;
+
+	return power_well->desc->hsw.is_tc_tbt ? ICL_TBT_AUX_PW_TO_CH(pw_idx) :
+						 ICL_AUX_PW_TO_CH(pw_idx);
+}
+
+static struct intel_digital_port *
+aux_ch_to_digital_port(struct drm_i915_private *dev_priv,
+		       enum aux_ch aux_ch)
+{
+	struct intel_digital_port *dig_port = NULL;
+	struct intel_encoder *encoder;
+
+	for_each_intel_encoder(&dev_priv->drm, encoder) {
+		/* We'll check the MST primary port */
+		if (encoder->type == INTEL_OUTPUT_DP_MST)
+			continue;
+
+		dig_port = enc_to_dig_port(&encoder->base);
+		if (!dig_port)
+			continue;
+
+		if (dig_port->aux_ch != aux_ch) {
+			dig_port = NULL;
+			continue;
+		}
+
+		break;
+	}
+
+	return dig_port;
+}
+
+static bool tc_phy_aux_timeout_expected(struct drm_i915_private *dev_priv,
+					struct i915_power_well *power_well)
+{
+	/* An AUX timeout is expected if the TBT DP tunnel is down. */
+	if (power_well->desc->hsw.is_tc_tbt)
+		return true;
+
+	/*
+	 * An AUX timeout is expected because we enable TC legacy port aux
+	 * to hold port out of TC cold
+	 */
+	if (INTEL_GEN(dev_priv) == 11 &&
+	    power_well->desc->ops == &icl_tc_phy_aux_power_well_ops) {
+		enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
+		struct intel_digital_port *dig_port = aux_ch_to_digital_port(dev_priv, aux_ch);
+
+		return dig_port->tc_legacy_port;
+	}
+
+	return false;
+}
+
 static void hsw_wait_for_power_well_enable(struct drm_i915_private *dev_priv,
 					   struct i915_power_well *power_well)
 {
@@ -324,8 +376,8 @@
 		DRM_DEBUG_KMS("%s power well enable timeout\n",
 			      power_well->desc->name);
 
-		/* An AUX timeout is expected if the TBT DP tunnel is down. */
-		WARN_ON(!power_well->desc->hsw.is_tc_tbt);
+		WARN_ON(!tc_phy_aux_timeout_expected(dev_priv, power_well));
+
 	}
 }
 
@@ -381,16 +433,16 @@
 				      SKL_FUSE_PG_DIST_STATUS(pg), 1));
 }
 
-static void hsw_power_well_enable(struct drm_i915_private *dev_priv,
-				  struct i915_power_well *power_well)
+static void hsw_power_well_enable_prepare(struct drm_i915_private *dev_priv,
+					  struct i915_power_well *power_well)
 {
 	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
 	int pw_idx = power_well->desc->hsw.idx;
-	bool wait_fuses = power_well->desc->hsw.has_fuses;
-	enum skl_power_gate uninitialized_var(pg);
 	u32 val;
 
-	if (wait_fuses) {
+	if (power_well->desc->hsw.has_fuses) {
+		enum skl_power_gate pg;
+
 		pg = INTEL_GEN(dev_priv) >= 11 ? ICL_PW_CTL_IDX_TO_PG(pw_idx) :
 						 SKL_PW_CTL_IDX_TO_PG(pw_idx);
 		/*
@@ -406,25 +458,46 @@
 
 	val = I915_READ(regs->driver);
 	I915_WRITE(regs->driver, val | HSW_PWR_WELL_CTL_REQ(pw_idx));
+}
+
+static void hsw_power_well_enable_complete(struct drm_i915_private *dev_priv,
+					   struct i915_power_well *power_well)
+{
+	int pw_idx = power_well->desc->hsw.idx;
+
 	hsw_wait_for_power_well_enable(dev_priv, power_well);
 
 	/* Display WA #1178: cnl */
 	if (IS_CANNONLAKE(dev_priv) &&
 	    pw_idx >= GLK_PW_CTL_IDX_AUX_B &&
 	    pw_idx <= CNL_PW_CTL_IDX_AUX_F) {
+		u32 val;
+
 		val = I915_READ(CNL_AUX_ANAOVRD1(pw_idx));
 		val |= CNL_AUX_ANAOVRD1_ENABLE | CNL_AUX_ANAOVRD1_LDO_BYPASS;
 		I915_WRITE(CNL_AUX_ANAOVRD1(pw_idx), val);
 	}
 
-	if (wait_fuses)
+	if (power_well->desc->hsw.has_fuses) {
+		enum skl_power_gate pg;
+
+		pg = INTEL_GEN(dev_priv) >= 11 ? ICL_PW_CTL_IDX_TO_PG(pw_idx) :
+						 SKL_PW_CTL_IDX_TO_PG(pw_idx);
 		gen9_wait_for_power_well_fuses(dev_priv, pg);
+	}
 
 	hsw_power_well_post_enable(dev_priv,
 				   power_well->desc->hsw.irq_pipe_mask,
 				   power_well->desc->hsw.has_vga);
 }
 
+static void hsw_power_well_enable(struct drm_i915_private *dev_priv,
+				  struct i915_power_well *power_well)
+{
+	hsw_power_well_enable_prepare(dev_priv, power_well);
+	hsw_power_well_enable_complete(dev_priv, power_well);
+}
+
 static void hsw_power_well_disable(struct drm_i915_private *dev_priv,
 				   struct i915_power_well *power_well)
 {
@@ -497,21 +570,6 @@
 	hsw_wait_for_power_well_disable(dev_priv, power_well);
 }
 
-#define ICL_AUX_PW_TO_CH(pw_idx)	\
-	((pw_idx) - ICL_PW_CTL_IDX_AUX_A + AUX_CH_A)
-
-#define ICL_TBT_AUX_PW_TO_CH(pw_idx)	\
-	((pw_idx) - ICL_PW_CTL_IDX_AUX_TBT1 + AUX_CH_C)
-
-static enum aux_ch icl_tc_phy_aux_ch(struct drm_i915_private *dev_priv,
-				     struct i915_power_well *power_well)
-{
-	int pw_idx = power_well->desc->hsw.idx;
-
-	return power_well->desc->hsw.is_tc_tbt ? ICL_TBT_AUX_PW_TO_CH(pw_idx) :
-						 ICL_AUX_PW_TO_CH(pw_idx);
-}
-
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
 
 static u64 async_put_domains_mask(struct i915_power_domains *power_domains);
@@ -528,64 +586,63 @@
 }
 
 static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
-					struct i915_power_well *power_well)
+					struct i915_power_well *power_well,
+					struct intel_digital_port *dig_port)
 {
-	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
-	struct intel_digital_port *dig_port = NULL;
-	struct intel_encoder *encoder;
-
 	/* Bypass the check if all references are released asynchronously */
 	if (power_well_async_ref_count(dev_priv, power_well) ==
 	    power_well->count)
 		return;
 
-	aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
-
-	for_each_intel_encoder(&dev_priv->drm, encoder) {
-		enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-
-		if (!intel_phy_is_tc(dev_priv, phy))
-			continue;
-
-		/* We'll check the MST primary port */
-		if (encoder->type == INTEL_OUTPUT_DP_MST)
-			continue;
-
-		dig_port = enc_to_dig_port(&encoder->base);
-		if (WARN_ON(!dig_port))
-			continue;
-
-		if (dig_port->aux_ch != aux_ch) {
-			dig_port = NULL;
-			continue;
-		}
-
-		break;
-	}
-
 	if (WARN_ON(!dig_port))
 		return;
 
+	if (INTEL_GEN(dev_priv) == 11 && dig_port->tc_legacy_port)
+		return;
+
 	WARN_ON(!intel_tc_port_ref_held(dig_port));
 }
 
 #else
 
 static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
-					struct i915_power_well *power_well)
+					struct i915_power_well *power_well,
+					struct intel_digital_port *dig_port)
 {
 }
 
 #endif
 
+static void icl_tc_cold_exit(struct drm_i915_private *i915)
+{
+	int ret, tries = 0;
+
+	while (1) {
+		ret = sandybridge_pcode_write_timeout(i915,
+						      ICL_PCODE_EXIT_TCCOLD,
+						      0, 250, 1);
+		if (ret != -EAGAIN || ++tries == 3)
+			break;
+		msleep(1);
+	}
+
+	/* Spec states that TC cold exit can take up to 1ms to complete */
+	if (!ret)
+		msleep(1);
+
+	/* TODO: turn failure into a error as soon i915 CI updates ICL IFWI */
+	DRM_DEBUG_KMS("TC cold block %s\n", ret ? "failed" : "succeeded");
+}
+
 static void
 icl_tc_phy_aux_power_well_enable(struct drm_i915_private *dev_priv,
 				 struct i915_power_well *power_well)
 {
 	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
+	struct intel_digital_port *dig_port = aux_ch_to_digital_port(dev_priv, aux_ch);
 	u32 val;
 
-	icl_tc_port_assert_ref_held(dev_priv, power_well);
+	icl_tc_port_assert_ref_held(dev_priv, power_well, dig_port);
 
 	val = I915_READ(DP_AUX_CH_CTL(aux_ch));
 	val &= ~DP_AUX_CH_CTL_TBT_IO;
@@ -593,14 +650,22 @@
 		val |= DP_AUX_CH_CTL_TBT_IO;
 	I915_WRITE(DP_AUX_CH_CTL(aux_ch), val);
 
-	hsw_power_well_enable(dev_priv, power_well);
+	hsw_power_well_enable_prepare(dev_priv, power_well);
+
+	if (INTEL_GEN(dev_priv) == 11 && dig_port->tc_legacy_port)
+		icl_tc_cold_exit(dev_priv);
+
+	hsw_power_well_enable_complete(dev_priv, power_well);
 }
 
 static void
 icl_tc_phy_aux_power_well_disable(struct drm_i915_private *dev_priv,
 				  struct i915_power_well *power_well)
 {
-	icl_tc_port_assert_ref_held(dev_priv, power_well);
+	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
+	struct intel_digital_port *dig_port = aux_ch_to_digital_port(dev_priv, aux_ch);
+
+	icl_tc_port_assert_ref_held(dev_priv, power_well, dig_port);
 
 	hsw_power_well_disable(dev_priv, power_well);
 }
@@ -1718,15 +1783,12 @@
 static void print_power_domains(struct i915_power_domains *power_domains,
 				const char *prefix, u64 mask)
 {
-	struct drm_i915_private *i915 =
-		container_of(power_domains, struct drm_i915_private,
-			     power_domains);
 	enum intel_display_power_domain domain;
 
 	DRM_DEBUG_DRIVER("%s (%lu):\n", prefix, hweight64(mask));
 	for_each_power_domain(domain, mask)
 		DRM_DEBUG_DRIVER("%s use_count %d\n",
-				 intel_display_power_domain_str(i915, domain),
+				 intel_display_power_domain_str(domain),
 				 power_domains->domain_use_count[domain]);
 }
 
@@ -1896,7 +1958,7 @@
 {
 	struct i915_power_domains *power_domains;
 	struct i915_power_well *power_well;
-	const char *name = intel_display_power_domain_str(dev_priv, domain);
+	const char *name = intel_display_power_domain_str(domain);
 
 	power_domains = &dev_priv->power_domains;
 
@@ -2487,10 +2549,10 @@
 	BIT_ULL(POWER_DOMAIN_AUX_D) |			\
 	BIT_ULL(POWER_DOMAIN_AUX_E) |			\
 	BIT_ULL(POWER_DOMAIN_AUX_F) |			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT1) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT2) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT3) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT4) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_C_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT) |		\
 	BIT_ULL(POWER_DOMAIN_VGA) |			\
 	BIT_ULL(POWER_DOMAIN_AUDIO) |			\
 	BIT_ULL(POWER_DOMAIN_INIT))
@@ -2530,22 +2592,22 @@
 	BIT_ULL(POWER_DOMAIN_AUX_A))
 #define ICL_AUX_B_IO_POWER_DOMAINS (			\
 	BIT_ULL(POWER_DOMAIN_AUX_B))
-#define ICL_AUX_C_IO_POWER_DOMAINS (			\
+#define ICL_AUX_C_TC1_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_C))
-#define ICL_AUX_D_IO_POWER_DOMAINS (			\
+#define ICL_AUX_D_TC2_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_D))
-#define ICL_AUX_E_IO_POWER_DOMAINS (			\
+#define ICL_AUX_E_TC3_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_E))
-#define ICL_AUX_F_IO_POWER_DOMAINS (			\
+#define ICL_AUX_F_TC4_IO_POWER_DOMAINS (		\
 	BIT_ULL(POWER_DOMAIN_AUX_F))
-#define ICL_AUX_TBT1_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT1))
-#define ICL_AUX_TBT2_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT2))
-#define ICL_AUX_TBT3_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT3))
-#define ICL_AUX_TBT4_IO_POWER_DOMAINS (			\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT4))
+#define ICL_AUX_C_TBT1_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_C_TBT))
+#define ICL_AUX_D_TBT2_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT))
+#define ICL_AUX_E_TBT3_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT))
+#define ICL_AUX_F_TBT4_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT))
 
 #define TGL_PW_5_POWER_DOMAINS (			\
 	BIT_ULL(POWER_DOMAIN_PIPE_D) |			\
@@ -2565,24 +2627,24 @@
 	BIT_ULL(POWER_DOMAIN_PIPE_B) |			\
 	BIT_ULL(POWER_DOMAIN_TRANSCODER_B) |		\
 	BIT_ULL(POWER_DOMAIN_PIPE_B_PANEL_FITTER) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC1_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC2_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC3_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC4_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC5_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC6_LANES) |	\
-	BIT_ULL(POWER_DOMAIN_AUX_TC1) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC2) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC3) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC4) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC5) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC6) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT1) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT2) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT3) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT4) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT5) |		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT6) |		\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_D_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_E_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_F_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_G_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_H_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_I_LANES) |	\
+	BIT_ULL(POWER_DOMAIN_AUX_D) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_E) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_F) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_G) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_H) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_I) |			\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_G_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_H_TBT) |		\
+	BIT_ULL(POWER_DOMAIN_AUX_I_TBT) |		\
 	BIT_ULL(POWER_DOMAIN_VGA) |			\
 	BIT_ULL(POWER_DOMAIN_AUDIO) |			\
 	BIT_ULL(POWER_DOMAIN_INIT))
@@ -2598,35 +2660,65 @@
 	BIT_ULL(POWER_DOMAIN_AUX_A) |			\
 	BIT_ULL(POWER_DOMAIN_INIT))
 
-#define TGL_DDI_IO_TC1_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC1_IO))
-#define TGL_DDI_IO_TC2_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC2_IO))
-#define TGL_DDI_IO_TC3_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC3_IO))
-#define TGL_DDI_IO_TC4_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC4_IO))
-#define TGL_DDI_IO_TC5_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC5_IO))
-#define TGL_DDI_IO_TC6_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_PORT_DDI_TC6_IO))
-
-#define TGL_AUX_TC1_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC1))
-#define TGL_AUX_TC2_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC2))
-#define TGL_AUX_TC3_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC3))
-#define TGL_AUX_TC4_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC4))
-#define TGL_AUX_TC5_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC5))
-#define TGL_AUX_TC6_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TC6))
-#define TGL_AUX_TBT5_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT5))
-#define TGL_AUX_TBT6_IO_POWER_DOMAINS (		\
-	BIT_ULL(POWER_DOMAIN_AUX_TBT6))
+#define TGL_DDI_IO_D_TC1_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_D_IO))
+#define TGL_DDI_IO_E_TC2_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_E_IO))
+#define TGL_DDI_IO_F_TC3_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_F_IO))
+#define TGL_DDI_IO_G_TC4_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_G_IO))
+#define TGL_DDI_IO_H_TC5_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_H_IO))
+#define TGL_DDI_IO_I_TC6_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_PORT_DDI_I_IO))
+
+#define TGL_AUX_A_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_IO_A) |	\
+	BIT_ULL(POWER_DOMAIN_AUX_A))
+#define TGL_AUX_B_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_B))
+#define TGL_AUX_C_IO_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_C))
+#define TGL_AUX_D_TC1_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_D))
+#define TGL_AUX_E_TC2_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_E))
+#define TGL_AUX_F_TC3_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_F))
+#define TGL_AUX_G_TC4_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_G))
+#define TGL_AUX_H_TC5_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_H))
+#define TGL_AUX_I_TC6_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_I))
+#define TGL_AUX_D_TBT1_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT))
+#define TGL_AUX_E_TBT2_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT))
+#define TGL_AUX_F_TBT3_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT))
+#define TGL_AUX_G_TBT4_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_G_TBT))
+#define TGL_AUX_H_TBT5_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_H_TBT))
+#define TGL_AUX_I_TBT6_IO_POWER_DOMAINS (	\
+	BIT_ULL(POWER_DOMAIN_AUX_I_TBT))
+
+#define TGL_TC_COLD_OFF_POWER_DOMAINS (		\
+	BIT_ULL(POWER_DOMAIN_AUX_D)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_E)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_F)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_G)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_H)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_I)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_D_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_E_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_F_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_G_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_H_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_AUX_I_TBT)	|	\
+	BIT_ULL(POWER_DOMAIN_TC_COLD_OFF))
 
 static const struct i915_power_well_ops i9xx_always_on_power_well_ops = {
 	.sync_hw = i9xx_power_well_sync_hw_noop,
@@ -3484,8 +3576,8 @@
 		},
 	},
 	{
-		.name = "AUX C",
-		.domains = ICL_AUX_C_IO_POWER_DOMAINS,
+		.name = "AUX C TC1",
+		.domains = ICL_AUX_C_TC1_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3495,8 +3587,8 @@
 		},
 	},
 	{
-		.name = "AUX D",
-		.domains = ICL_AUX_D_IO_POWER_DOMAINS,
+		.name = "AUX D TC2",
+		.domains = ICL_AUX_D_TC2_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3506,8 +3598,8 @@
 		},
 	},
 	{
-		.name = "AUX E",
-		.domains = ICL_AUX_E_IO_POWER_DOMAINS,
+		.name = "AUX E TC3",
+		.domains = ICL_AUX_E_TC3_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3517,8 +3609,8 @@
 		},
 	},
 	{
-		.name = "AUX F",
-		.domains = ICL_AUX_F_IO_POWER_DOMAINS,
+		.name = "AUX F TC4",
+		.domains = ICL_AUX_F_TC4_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3528,8 +3620,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT1",
-		.domains = ICL_AUX_TBT1_IO_POWER_DOMAINS,
+		.name = "AUX C TBT1",
+		.domains = ICL_AUX_C_TBT1_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3539,8 +3631,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT2",
-		.domains = ICL_AUX_TBT2_IO_POWER_DOMAINS,
+		.name = "AUX D TBT2",
+		.domains = ICL_AUX_D_TBT2_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3550,8 +3642,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT3",
-		.domains = ICL_AUX_TBT3_IO_POWER_DOMAINS,
+		.name = "AUX E TBT3",
+		.domains = ICL_AUX_E_TBT3_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3561,8 +3653,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT4",
-		.domains = ICL_AUX_TBT4_IO_POWER_DOMAINS,
+		.name = "AUX F TBT4",
+		.domains = ICL_AUX_F_TBT4_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3585,6 +3677,89 @@
 	},
 };
 
+static void
+tgl_tc_cold_request(struct drm_i915_private *i915, bool block)
+{
+	u8 tries = 0;
+	int ret;
+
+	while (1) {
+		u32 low_val = 0, high_val;
+
+		if (block)
+			high_val = TGL_PCODE_EXIT_TCCOLD_DATA_H_BLOCK_REQ;
+		else
+			high_val = TGL_PCODE_EXIT_TCCOLD_DATA_H_UNBLOCK_REQ;
+
+		/*
+		 * Spec states that we should timeout the request after 200us
+		 * but the function below will timeout after 500us
+		 */
+		ret = sandybridge_pcode_read(i915, TGL_PCODE_TCCOLD, &low_val,
+					     &high_val);
+		if (ret == 0) {
+			if (block &&
+			    (low_val & TGL_PCODE_EXIT_TCCOLD_DATA_L_EXIT_FAILED))
+				ret = -EIO;
+			else
+				break;
+		}
+
+		if (++tries == 3)
+			break;
+
+		if (ret == -EAGAIN)
+			msleep(1);
+	}
+
+	if (ret)
+		DRM_ERROR("TC cold %sblock failed\n", block ? "" : "un");
+	else
+		DRM_DEBUG_KMS("TC cold %sblock succeeded\n", block ? "" : "un");
+}
+
+static void
+tgl_tc_cold_off_power_well_enable(struct drm_i915_private *i915,
+				  struct i915_power_well *power_well)
+{
+	tgl_tc_cold_request(i915, true);
+}
+
+static void
+tgl_tc_cold_off_power_well_disable(struct drm_i915_private *i915,
+				   struct i915_power_well *power_well)
+{
+	tgl_tc_cold_request(i915, false);
+}
+
+static void
+tgl_tc_cold_off_power_well_sync_hw(struct drm_i915_private *i915,
+				   struct i915_power_well *power_well)
+{
+	if (power_well->count > 0)
+		tgl_tc_cold_off_power_well_enable(i915, power_well);
+	else
+		tgl_tc_cold_off_power_well_disable(i915, power_well);
+}
+
+static bool
+tgl_tc_cold_off_power_well_is_enabled(struct drm_i915_private *dev_priv,
+				      struct i915_power_well *power_well)
+{
+	/*
+	 * Not the correctly implementation but there is no way to just read it
+	 * from PCODE, so returning count to avoid state mismatch errors
+	 */
+	return power_well->count;
+}
+
+static const struct i915_power_well_ops tgl_tc_cold_off_ops = {
+	.sync_hw = tgl_tc_cold_off_power_well_sync_hw,
+	.enable = tgl_tc_cold_off_power_well_enable,
+	.disable = tgl_tc_cold_off_power_well_disable,
+	.is_enabled = tgl_tc_cold_off_power_well_is_enabled,
+};
+
 static const struct i915_power_well_desc tgl_power_wells[] = {
 	{
 		.name = "always-on",
@@ -3667,8 +3842,8 @@
 		}
 	},
 	{
-		.name = "DDI TC1 IO",
-		.domains = TGL_DDI_IO_TC1_POWER_DOMAINS,
+		.name = "DDI D TC1 IO",
+		.domains = TGL_DDI_IO_D_TC1_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3677,8 +3852,8 @@
 		},
 	},
 	{
-		.name = "DDI TC2 IO",
-		.domains = TGL_DDI_IO_TC2_POWER_DOMAINS,
+		.name = "DDI E TC2 IO",
+		.domains = TGL_DDI_IO_E_TC2_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3687,8 +3862,8 @@
 		},
 	},
 	{
-		.name = "DDI TC3 IO",
-		.domains = TGL_DDI_IO_TC3_POWER_DOMAINS,
+		.name = "DDI F TC3 IO",
+		.domains = TGL_DDI_IO_F_TC3_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3697,8 +3872,8 @@
 		},
 	},
 	{
-		.name = "DDI TC4 IO",
-		.domains = TGL_DDI_IO_TC4_POWER_DOMAINS,
+		.name = "DDI G TC4 IO",
+		.domains = TGL_DDI_IO_G_TC4_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3707,8 +3882,8 @@
 		},
 	},
 	{
-		.name = "DDI TC5 IO",
-		.domains = TGL_DDI_IO_TC5_POWER_DOMAINS,
+		.name = "DDI H TC5 IO",
+		.domains = TGL_DDI_IO_H_TC5_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3717,8 +3892,8 @@
 		},
 	},
 	{
-		.name = "DDI TC6 IO",
-		.domains = TGL_DDI_IO_TC6_POWER_DOMAINS,
+		.name = "DDI I TC6 IO",
+		.domains = TGL_DDI_IO_I_TC6_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3728,7 +3903,7 @@
 	},
 	{
 		.name = "AUX A",
-		.domains = ICL_AUX_A_IO_POWER_DOMAINS,
+		.domains = TGL_AUX_A_IO_POWER_DOMAINS,
 		.ops = &icl_combo_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3738,7 +3913,7 @@
 	},
 	{
 		.name = "AUX B",
-		.domains = ICL_AUX_B_IO_POWER_DOMAINS,
+		.domains = TGL_AUX_B_IO_POWER_DOMAINS,
 		.ops = &icl_combo_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3748,7 +3923,7 @@
 	},
 	{
 		.name = "AUX C",
-		.domains = ICL_AUX_C_IO_POWER_DOMAINS,
+		.domains = TGL_AUX_C_IO_POWER_DOMAINS,
 		.ops = &icl_combo_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3757,8 +3932,8 @@
 		},
 	},
 	{
-		.name = "AUX TC1",
-		.domains = TGL_AUX_TC1_IO_POWER_DOMAINS,
+		.name = "AUX D TC1",
+		.domains = TGL_AUX_D_TC1_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3768,8 +3943,8 @@
 		},
 	},
 	{
-		.name = "AUX TC2",
-		.domains = TGL_AUX_TC2_IO_POWER_DOMAINS,
+		.name = "AUX E TC2",
+		.domains = TGL_AUX_E_TC2_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3779,8 +3954,8 @@
 		},
 	},
 	{
-		.name = "AUX TC3",
-		.domains = TGL_AUX_TC3_IO_POWER_DOMAINS,
+		.name = "AUX F TC3",
+		.domains = TGL_AUX_F_TC3_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3790,8 +3965,8 @@
 		},
 	},
 	{
-		.name = "AUX TC4",
-		.domains = TGL_AUX_TC4_IO_POWER_DOMAINS,
+		.name = "AUX G TC4",
+		.domains = TGL_AUX_G_TC4_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3801,8 +3976,8 @@
 		},
 	},
 	{
-		.name = "AUX TC5",
-		.domains = TGL_AUX_TC5_IO_POWER_DOMAINS,
+		.name = "AUX H TC5",
+		.domains = TGL_AUX_H_TC5_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3812,8 +3987,8 @@
 		},
 	},
 	{
-		.name = "AUX TC6",
-		.domains = TGL_AUX_TC6_IO_POWER_DOMAINS,
+		.name = "AUX I TC6",
+		.domains = TGL_AUX_I_TC6_IO_POWER_DOMAINS,
 		.ops = &icl_tc_phy_aux_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3823,8 +3998,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT1",
-		.domains = ICL_AUX_TBT1_IO_POWER_DOMAINS,
+		.name = "AUX D TBT1",
+		.domains = TGL_AUX_D_TBT1_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3834,8 +4009,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT2",
-		.domains = ICL_AUX_TBT2_IO_POWER_DOMAINS,
+		.name = "AUX E TBT2",
+		.domains = TGL_AUX_E_TBT2_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3845,8 +4020,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT3",
-		.domains = ICL_AUX_TBT3_IO_POWER_DOMAINS,
+		.name = "AUX F TBT3",
+		.domains = TGL_AUX_F_TBT3_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3856,8 +4031,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT4",
-		.domains = ICL_AUX_TBT4_IO_POWER_DOMAINS,
+		.name = "AUX G TBT4",
+		.domains = TGL_AUX_G_TBT4_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3867,8 +4042,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT5",
-		.domains = TGL_AUX_TBT5_IO_POWER_DOMAINS,
+		.name = "AUX H TBT5",
+		.domains = TGL_AUX_H_TBT5_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3878,8 +4053,8 @@
 		},
 	},
 	{
-		.name = "AUX TBT6",
-		.domains = TGL_AUX_TBT6_IO_POWER_DOMAINS,
+		.name = "AUX I TBT6",
+		.domains = TGL_AUX_I_TBT6_IO_POWER_DOMAINS,
 		.ops = &hsw_power_well_ops,
 		.id = DISP_PW_ID_NONE,
 		{
@@ -3912,6 +4087,12 @@
 			.hsw.irq_pipe_mask = BIT(PIPE_D),
 		},
 	},
+	{
+		.name = "TC cold off",
+		.domains = TGL_TC_COLD_OFF_POWER_DOMAINS,
+		.ops = &tgl_tc_cold_off_ops,
+		.id = DISP_PW_ID_NONE,
+	},
 };
 
 static int
@@ -4205,13 +4386,19 @@
 
 static void icl_mbus_init(struct drm_i915_private *dev_priv)
 {
-	u32 val;
+	u32 mask, val;
 
-	val = MBUS_ABOX_BT_CREDIT_POOL1(16) |
-	      MBUS_ABOX_BT_CREDIT_POOL2(16) |
-	      MBUS_ABOX_B_CREDIT(1) |
-	      MBUS_ABOX_BW_CREDIT(1);
+	mask = MBUS_ABOX_BT_CREDIT_POOL1_MASK |
+		MBUS_ABOX_BT_CREDIT_POOL2_MASK |
+		MBUS_ABOX_B_CREDIT_MASK |
+		MBUS_ABOX_BW_CREDIT_MASK;
 
+	val = I915_READ(MBUS_ABOX_CTL);
+	val &= ~mask;
+	val |= MBUS_ABOX_BT_CREDIT_POOL1(16) |
+		MBUS_ABOX_BT_CREDIT_POOL2(16) |
+		MBUS_ABOX_B_CREDIT(1) |
+		MBUS_ABOX_BW_CREDIT(1);
 	I915_WRITE(MBUS_ABOX_CTL, val);
 }
 
@@ -5107,8 +5294,7 @@
 
 		for_each_power_domain(domain, power_well->desc->domains)
 			DRM_DEBUG_DRIVER("  %-23s %d\n",
-					 intel_display_power_domain_str(i915,
-									domain),
+					 intel_display_power_domain_str(domain),
 					 power_domains->domain_use_count[domain]);
 	}
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display_power.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_display_power.h
@@ -36,29 +36,20 @@
 	POWER_DOMAIN_PORT_DDI_B_LANES,
 	POWER_DOMAIN_PORT_DDI_C_LANES,
 	POWER_DOMAIN_PORT_DDI_D_LANES,
-	POWER_DOMAIN_PORT_DDI_TC1_LANES = POWER_DOMAIN_PORT_DDI_D_LANES,
 	POWER_DOMAIN_PORT_DDI_E_LANES,
-	POWER_DOMAIN_PORT_DDI_TC2_LANES = POWER_DOMAIN_PORT_DDI_E_LANES,
 	POWER_DOMAIN_PORT_DDI_F_LANES,
-	POWER_DOMAIN_PORT_DDI_TC3_LANES = POWER_DOMAIN_PORT_DDI_F_LANES,
-	POWER_DOMAIN_PORT_DDI_TC4_LANES,
-	POWER_DOMAIN_PORT_DDI_TC5_LANES,
-	POWER_DOMAIN_PORT_DDI_TC6_LANES,
+	POWER_DOMAIN_PORT_DDI_G_LANES,
+	POWER_DOMAIN_PORT_DDI_H_LANES,
+	POWER_DOMAIN_PORT_DDI_I_LANES,
 	POWER_DOMAIN_PORT_DDI_A_IO,
 	POWER_DOMAIN_PORT_DDI_B_IO,
 	POWER_DOMAIN_PORT_DDI_C_IO,
 	POWER_DOMAIN_PORT_DDI_D_IO,
-	POWER_DOMAIN_PORT_DDI_TC1_IO = POWER_DOMAIN_PORT_DDI_D_IO,
 	POWER_DOMAIN_PORT_DDI_E_IO,
-	POWER_DOMAIN_PORT_DDI_TC2_IO = POWER_DOMAIN_PORT_DDI_E_IO,
 	POWER_DOMAIN_PORT_DDI_F_IO,
-	POWER_DOMAIN_PORT_DDI_TC3_IO = POWER_DOMAIN_PORT_DDI_F_IO,
 	POWER_DOMAIN_PORT_DDI_G_IO,
-	POWER_DOMAIN_PORT_DDI_TC4_IO = POWER_DOMAIN_PORT_DDI_G_IO,
 	POWER_DOMAIN_PORT_DDI_H_IO,
-	POWER_DOMAIN_PORT_DDI_TC5_IO = POWER_DOMAIN_PORT_DDI_H_IO,
 	POWER_DOMAIN_PORT_DDI_I_IO,
-	POWER_DOMAIN_PORT_DDI_TC6_IO = POWER_DOMAIN_PORT_DDI_I_IO,
 	POWER_DOMAIN_PORT_DSI,
 	POWER_DOMAIN_PORT_CRT,
 	POWER_DOMAIN_PORT_OTHER,
@@ -68,25 +59,24 @@
 	POWER_DOMAIN_AUX_B,
 	POWER_DOMAIN_AUX_C,
 	POWER_DOMAIN_AUX_D,
-	POWER_DOMAIN_AUX_TC1 = POWER_DOMAIN_AUX_D,
 	POWER_DOMAIN_AUX_E,
-	POWER_DOMAIN_AUX_TC2 = POWER_DOMAIN_AUX_E,
 	POWER_DOMAIN_AUX_F,
-	POWER_DOMAIN_AUX_TC3 = POWER_DOMAIN_AUX_F,
-	POWER_DOMAIN_AUX_TC4,
-	POWER_DOMAIN_AUX_TC5,
-	POWER_DOMAIN_AUX_TC6,
+	POWER_DOMAIN_AUX_G,
+	POWER_DOMAIN_AUX_H,
+	POWER_DOMAIN_AUX_I,
 	POWER_DOMAIN_AUX_IO_A,
-	POWER_DOMAIN_AUX_TBT1,
-	POWER_DOMAIN_AUX_TBT2,
-	POWER_DOMAIN_AUX_TBT3,
-	POWER_DOMAIN_AUX_TBT4,
-	POWER_DOMAIN_AUX_TBT5,
-	POWER_DOMAIN_AUX_TBT6,
+	POWER_DOMAIN_AUX_C_TBT,
+	POWER_DOMAIN_AUX_D_TBT,
+	POWER_DOMAIN_AUX_E_TBT,
+	POWER_DOMAIN_AUX_F_TBT,
+	POWER_DOMAIN_AUX_G_TBT,
+	POWER_DOMAIN_AUX_H_TBT,
+	POWER_DOMAIN_AUX_I_TBT,
 	POWER_DOMAIN_GMBUS,
 	POWER_DOMAIN_MODESET,
 	POWER_DOMAIN_GT_IRQ,
 	POWER_DOMAIN_DPLL_DC_OFF,
+	POWER_DOMAIN_TC_COLD_OFF,
 	POWER_DOMAIN_INIT,
 
 	POWER_DOMAIN_NUM,
@@ -269,8 +259,7 @@
 void intel_display_power_resume(struct drm_i915_private *i915);
 
 const char *
-intel_display_power_domain_str(struct drm_i915_private *i915,
-			       enum intel_display_power_domain domain);
+intel_display_power_domain_str(enum intel_display_power_domain domain);
 
 bool intel_display_power_is_enabled(struct drm_i915_private *dev_priv,
 				    enum intel_display_power_domain domain);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_display_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -214,6 +214,9 @@
 		u8 controller;		/* bxt+ only */
 		struct pwm_device *pwm;
 
+		/* DPCD backlight */
+		u8 pwmgen_bit_count;
+
 		struct backlight_device *device;
 
 		/* Connector and platform specific backlight functions */
@@ -1176,6 +1179,7 @@
 	int max_link_rate;
 	/* sink or branch descriptor */
 	struct drm_dp_desc desc;
+	u32 edid_quirks;
 	struct drm_dp_aux aux;
 	u8 train_set[4];
 	int panel_power_up_delay;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_dp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_dp.c
@@ -166,6 +166,12 @@
 				      enum pipe pipe);
 static void intel_dp_unset_edid(struct intel_dp *intel_dp);
 
+static void intel_dp_set_default_sink_rates(struct intel_dp *intel_dp)
+{
+	intel_dp->sink_rates[0] = 162000;
+	intel_dp->num_sink_rates = 1;
+}
+
 /* update sink rates from dpcd */
 static void intel_dp_set_sink_rates(struct intel_dp *intel_dp)
 {
@@ -567,7 +573,7 @@
 		return 0;
 	}
 	/* Also take into account max slice width */
-	min_slice_count = min_t(u8, min_slice_count,
+	min_slice_count = max_t(u8, min_slice_count,
 				DIV_ROUND_UP(mode_hdisplay,
 					     max_slice_width));
 
@@ -1292,8 +1298,7 @@
 	bool is_tc_port = intel_phy_is_tc(i915, phy);
 	i915_reg_t ch_ctl, ch_data[5];
 	u32 aux_clock_divider;
-	enum intel_display_power_domain aux_domain =
-		intel_aux_power_domain(intel_dig_port);
+	enum intel_display_power_domain aux_domain;
 	intel_wakeref_t aux_wakeref;
 	intel_wakeref_t pps_wakeref;
 	int i, ret, recv_bytes;
@@ -1308,6 +1313,8 @@
 	if (is_tc_port)
 		intel_tc_port_lock(intel_dig_port);
 
+	aux_domain = intel_aux_power_domain(intel_dig_port);
+
 	aux_wakeref = intel_display_power_get(i915, aux_domain);
 	pps_wakeref = pps_lock(intel_dp);
 
@@ -2251,7 +2258,7 @@
 	struct intel_connector *intel_connector = intel_dp->attached_connector;
 	struct intel_digital_connector_state *intel_conn_state =
 		to_intel_digital_connector_state(conn_state);
-	bool constant_n = drm_dp_has_quirk(&intel_dp->desc,
+	bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0,
 					   DP_DPCD_QUIRK_CONSTANT_N);
 	int ret = 0, output_bpp;
 
@@ -3633,7 +3640,7 @@
  * link status information
  */
 bool
-intel_dp_get_link_status(struct intel_dp *intel_dp, u8 link_status[DP_LINK_STATUS_SIZE])
+intel_dp_get_link_status(struct intel_dp *intel_dp, u8 *link_status)
 {
 	return drm_dp_dpcd_read(&intel_dp->aux, DP_LANE0_1_STATUS, link_status,
 				DP_LINK_STATUS_SIZE) == DP_LINK_STATUS_SIZE;
@@ -4260,6 +4267,9 @@
 	 */
 	intel_psr_init_dpcd(intel_dp);
 
+	/* Clear the default sink rates */
+	intel_dp->num_sink_rates = 0;
+
 	/* Read the eDP 1.4+ supported link rates. */
 	if (intel_dp->edp_dpcd[0] >= DP_EDP_14) {
 		__le16 sink_rates[DP_MAX_SUPPORTED_RATES];
@@ -4327,7 +4337,8 @@
 	 * it don't care about read it here and in intel_edp_init_dpcd().
 	 */
 	if (!intel_dp_is_edp(intel_dp) &&
-	    !drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_SINK_COUNT)) {
+	    !drm_dp_has_quirk(&intel_dp->desc, 0,
+			      DP_DPCD_QUIRK_NO_SINK_COUNT)) {
 		u8 count;
 		ssize_t r;
 
@@ -4705,7 +4716,18 @@
 	bool bret;
 
 	if (intel_dp->is_mst) {
-		u8 esi[DP_DPRX_ESI_LEN] = { 0 };
+		/*
+		 * The +2 is because DP_DPRX_ESI_LEN is 14, but we then
+		 * pass in "esi+10" to drm_dp_channel_eq_ok(), which
+		 * takes a 6-byte array. So we actually need 16 bytes
+		 * here.
+		 *
+		 * Somebody who knows what the limits actually are
+		 * should check this, but for now this is at least
+		 * harmless and avoids a valid compiler warning about
+		 * using more of the array than we have allocated.
+		 */
+		u8 esi[DP_DPRX_ESI_LEN+2] = {};
 		int ret = 0;
 		int retry;
 		bool handled;
@@ -5328,6 +5350,7 @@
 
 	intel_dp->has_audio = drm_detect_monitor_audio(edid);
 	drm_dp_cec_set_edid(&intel_dp->aux, edid);
+	intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid);
 }
 
 static void
@@ -5340,6 +5363,7 @@
 	intel_connector->detect_edid = NULL;
 
 	intel_dp->has_audio = false;
+	intel_dp->edid_quirks = 0;
 }
 
 static int
@@ -7046,8 +7070,8 @@
 	edid = drm_get_edid(connector, &intel_dp->aux.ddc);
 	if (edid) {
 		if (drm_add_edid_modes(connector, edid)) {
-			drm_connector_update_edid_property(connector,
-								edid);
+			drm_connector_update_edid_property(connector, edid);
+			intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid);
 		} else {
 			kfree(edid);
 			edid = ERR_PTR(-EINVAL);
@@ -7155,6 +7179,8 @@
 		return false;
 
 	intel_dp_set_source_rates(intel_dp);
+	intel_dp_set_default_sink_rates(intel_dp);
+	intel_dp_set_common_rates(intel_dp);
 
 	intel_dp->reset_link_params = true;
 	intel_dp->pps_pipe = INVALID_PIPE;
@@ -7218,11 +7244,8 @@
 		intel_connector->get_hw_state = intel_connector_get_hw_state;
 
 	/* init MST on ports that can support it */
-	if (HAS_DP_MST(dev_priv) && !intel_dp_is_edp(intel_dp) &&
-	    (port == PORT_B || port == PORT_C ||
-	     port == PORT_D || port == PORT_F))
-		intel_dp_mst_encoder_init(intel_dig_port,
-					  intel_connector->base.base.id);
+	intel_dp_mst_encoder_init(intel_dig_port,
+				  intel_connector->base.base.id);
 
 	if (!intel_edp_init_connector(intel_dp, intel_connector)) {
 		intel_dp_aux_fini(intel_dp);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
@@ -59,8 +59,23 @@
 {
 	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
 	u8 read_val[2] = { 0x0 };
+	u8 control_reg;
 	u16 level = 0;
 
+	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_DISPLAY_CONTROL_REGISTER,
+			      &control_reg) != 1) {
+		DRM_DEBUG_KMS("Failed to read the DPCD register 0x%x\n",
+			      DP_EDP_DISPLAY_CONTROL_REGISTER);
+		return 0;
+	}
+
+	/*
+	 * If we're not in DPCD control mode yet, the programmed brightness
+	 * value is meaningless and we should assume max brightness
+	 */
+	if (!(control_reg & DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD))
+		return connector->panel.backlight.max;
+
 	if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_BACKLIGHT_BRIGHTNESS_MSB,
 			     &read_val, sizeof(read_val)) < 0) {
 		DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n",
@@ -111,61 +126,28 @@
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
-	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
-	u8 pn, pn_min, pn_max;
+	const u8 pn = connector->panel.backlight.pwmgen_bit_count;
+	int freq, fxp, f, fxp_actual, fxp_min, fxp_max;
 
-	/* Find desired value of (F x P)
-	 * Note that, if F x P is out of supported range, the maximum value or
-	 * minimum value will applied automatically. So no need to check that.
-	 */
 	freq = dev_priv->vbt.backlight.pwm_freq_hz;
-	DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq);
 	if (!freq) {
 		DRM_DEBUG_KMS("Use panel default backlight frequency\n");
 		return false;
 	}
 
 	fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq);
+	f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255);
+	fxp_actual = f << pn;
 
-	/* Use highest possible value of Pn for more granularity of brightness
-	 * adjustment while satifying the conditions below.
-	 * - Pn is in the range of Pn_min and Pn_max
-	 * - F is in the range of 1 and 255
-	 * - FxP is within 25% of desired value.
-	 *   Note: 25% is arbitrary value and may need some tweak.
-	 */
-	if (drm_dp_dpcd_readb(&intel_dp->aux,
-			       DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) {
-		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n");
-		return false;
-	}
-	if (drm_dp_dpcd_readb(&intel_dp->aux,
-			       DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) {
-		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n");
-		return false;
-	}
-	pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
-	pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
-
+	/* Ensure frequency is within 25% of desired value */
 	fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4);
 	fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4);
-	if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) {
-		DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n");
-		return false;
-	}
-
-	for (pn = pn_max; pn >= pn_min; pn--) {
-		f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255);
-		fxp_actual = f << pn;
-		if (fxp_min <= fxp_actual && fxp_actual <= fxp_max)
-			break;
-	}
 
-	if (drm_dp_dpcd_writeb(&intel_dp->aux,
-			       DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) {
-		DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n");
+	if (fxp_min > fxp_actual || fxp_actual > fxp_max) {
+		DRM_DEBUG_KMS("Actual frequency out of range\n");
 		return false;
 	}
+
 	if (drm_dp_dpcd_writeb(&intel_dp->aux,
 			       DP_EDP_BACKLIGHT_FREQ_SET, (u8) f) < 0) {
 		DRM_DEBUG_KMS("Failed to write aux backlight freq\n");
@@ -178,6 +160,7 @@
 					  const struct drm_connector_state *conn_state)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
+	struct intel_panel *panel = &connector->panel;
 	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
 	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
 
@@ -197,6 +180,12 @@
 	case DP_EDP_BACKLIGHT_CONTROL_MODE_PRODUCT:
 		new_dpcd_buf &= ~DP_EDP_BACKLIGHT_CONTROL_MODE_MASK;
 		new_dpcd_buf |= DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD;
+
+		if (drm_dp_dpcd_writeb(&intel_dp->aux,
+				       DP_EDP_PWMGEN_BIT_COUNT,
+				       panel->backlight.pwmgen_bit_count) < 0)
+			DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n");
+
 		break;
 
 	/* Do nothing when it is already DPCD mode */
@@ -216,8 +205,9 @@
 		}
 	}
 
+	intel_dp_aux_set_backlight(conn_state,
+				   connector->panel.backlight.level);
 	set_aux_backlight_enable(intel_dp, true);
-	intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level);
 }
 
 static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)
@@ -225,20 +215,91 @@
 	set_aux_backlight_enable(enc_to_intel_dp(old_conn_state->best_encoder), false);
 }
 
+static u32 intel_dp_aux_calc_max_backlight(struct intel_connector *connector)
+{
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_panel *panel = &connector->panel;
+	u32 max_backlight = 0;
+	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
+	u8 pn, pn_min, pn_max;
+
+	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_PWMGEN_BIT_COUNT, &pn)) {
+		pn &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
+		max_backlight = (1 << pn) - 1;
+	}
+
+	/* Find desired value of (F x P)
+	 * Note that, if F x P is out of supported range, the maximum value or
+	 * minimum value will applied automatically. So no need to check that.
+	 */
+	freq = dev_priv->vbt.backlight.pwm_freq_hz;
+	DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq);
+	if (!freq) {
+		DRM_DEBUG_KMS("Use panel default backlight frequency\n");
+		return max_backlight;
+	}
+
+	fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq);
+
+	/* Use highest possible value of Pn for more granularity of brightness
+	 * adjustment while satifying the conditions below.
+	 * - Pn is in the range of Pn_min and Pn_max
+	 * - F is in the range of 1 and 255
+	 * - FxP is within 25% of desired value.
+	 *   Note: 25% is arbitrary value and may need some tweak.
+	 */
+	if (drm_dp_dpcd_readb(&intel_dp->aux,
+			      DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) {
+		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n");
+		return max_backlight;
+	}
+	if (drm_dp_dpcd_readb(&intel_dp->aux,
+			      DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) {
+		DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n");
+		return max_backlight;
+	}
+	pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
+	pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK;
+
+	fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4);
+	fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4);
+	if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) {
+		DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n");
+		return max_backlight;
+	}
+
+	for (pn = pn_max; pn >= pn_min; pn--) {
+		f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255);
+		fxp_actual = f << pn;
+		if (fxp_min <= fxp_actual && fxp_actual <= fxp_max)
+			break;
+	}
+
+	DRM_DEBUG_KMS("Using eDP pwmgen bit count of %d\n", pn);
+	if (drm_dp_dpcd_writeb(&intel_dp->aux,
+			       DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) {
+		DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n");
+		return max_backlight;
+	}
+	panel->backlight.pwmgen_bit_count = pn;
+
+	max_backlight = (1 << pn) - 1;
+
+	return max_backlight;
+}
+
 static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 					enum pipe pipe)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
 	struct intel_panel *panel = &connector->panel;
 
-	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
-		panel->backlight.max = 0xFFFF;
-	else
-		panel->backlight.max = 0xFF;
+	panel->backlight.max = intel_dp_aux_calc_max_backlight(connector);
+	if (!panel->backlight.max)
+		return -ENODEV;
 
 	panel->backlight.min = 0;
 	panel->backlight.level = intel_dp_aux_get_backlight(connector);
-
 	panel->backlight.enabled = panel->backlight.level != 0;
 
 	return 0;
@@ -264,15 +325,35 @@
 int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
 {
 	struct intel_panel *panel = &intel_connector->panel;
-	struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev);
+	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_connector->encoder->base);
+	struct drm_device *dev = intel_connector->base.dev;
+	struct drm_i915_private *dev_priv = to_i915(dev);
+	bool force_dpcd;
+
+	force_dpcd = drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
+				      DP_QUIRK_FORCE_DPCD_BACKLIGHT);
 
 	if (i915_modparams.enable_dpcd_backlight == 0 ||
-	    (i915_modparams.enable_dpcd_backlight == -1 &&
-	    dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE))
+	    (!force_dpcd && !intel_dp_aux_display_control_capable(intel_connector)))
 		return -ENODEV;
 
-	if (!intel_dp_aux_display_control_capable(intel_connector))
+	/*
+	 * There are a lot of machines that don't advertise the backlight
+	 * control interface to use properly in their VBIOS, :\
+	 */
+	if (dev_priv->vbt.backlight.type !=
+	    INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE &&
+	    i915_modparams.enable_dpcd_backlight != 1 && !force_dpcd) {
+		DRM_DEV_INFO(dev->dev,
+			     "Panel advertises DPCD backlight support, but "
+			     "VBT disagrees. If your backlight controls "
+			     "don't work try booting with "
+			     "i915.enable_dpcd_backlight=1. If your machine "
+			     "needs this, please file a _new_ bug report on "
+			     "bugs.freedesktop.org against DRI -> "
+			     "DRM/Intel\n");
 		return -ENODEV;
+	}
 
 	panel->backlight.setup = intel_dp_aux_setup_backlight;
 	panel->backlight.enable = intel_dp_aux_enable_backlight;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -50,7 +50,7 @@
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->base.adjusted_mode;
 	void *port = connector->port;
-	bool constant_n = drm_dp_has_quirk(&intel_dp->desc,
+	bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0,
 					   DP_DPCD_QUIRK_CONSTANT_N);
 	int bpp, slots = -EINVAL;
 
@@ -520,6 +520,7 @@
 	ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs,
 				 DRM_MODE_CONNECTOR_DisplayPort);
 	if (ret) {
+		drm_dp_mst_put_port_malloc(port);
 		intel_connector_free(intel_connector);
 		return NULL;
 	}
@@ -653,21 +654,31 @@
 int
 intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_base_id)
 {
+	struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
-	struct drm_device *dev = intel_dig_port->base.base.dev;
+	enum port port = intel_dig_port->base.port;
 	int ret;
 
-	intel_dp->can_mst = true;
+	if (!HAS_DP_MST(i915) || intel_dp_is_edp(intel_dp))
+		return 0;
+
+	if (INTEL_GEN(i915) < 12 && port == PORT_A)
+		return 0;
+
+	if (INTEL_GEN(i915) < 11 && port == PORT_E)
+		return 0;
+
 	intel_dp->mst_mgr.cbs = &mst_cbs;
 
 	/* create encoders */
 	intel_dp_create_fake_mst_encoders(intel_dig_port);
-	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev,
+	ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, &i915->drm,
 					   &intel_dp->aux, 16, 3, conn_base_id);
-	if (ret) {
-		intel_dp->can_mst = false;
+	if (ret)
 		return ret;
-	}
+
+	intel_dp->can_mst = true;
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_fbc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -504,8 +504,7 @@
 	if (!ret)
 		goto err_llb;
 	else if (ret > 1) {
-		DRM_INFO("Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.\n");
-
+		DRM_INFO_ONCE("Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.\n");
 	}
 
 	fbc->threshold = ret;
@@ -1284,7 +1283,7 @@
 		return 0;
 
 	/* https://bugs.freedesktop.org/show_bug.cgi?id=108085 */
-	if (IS_GEMINILAKE(dev_priv))
+	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
 		return 0;
 
 	if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_frontbuffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_frontbuffer.c
@@ -221,11 +221,11 @@
 	struct intel_frontbuffer *front =
 		container_of(ref, typeof(*front), ref);
 
-	front->obj->frontbuffer = NULL;
+	RCU_INIT_POINTER(front->obj->frontbuffer, NULL);
 	spin_unlock(&to_i915(front->obj->base.dev)->fb_tracking.lock);
 
 	i915_gem_object_put(front->obj);
-	kfree(front);
+	kfree_rcu(front, rcu);
 }
 
 struct intel_frontbuffer *
@@ -234,11 +234,7 @@
 	struct drm_i915_private *i915 = to_i915(obj->base.dev);
 	struct intel_frontbuffer *front;
 
-	spin_lock(&i915->fb_tracking.lock);
-	front = obj->frontbuffer;
-	if (front)
-		kref_get(&front->ref);
-	spin_unlock(&i915->fb_tracking.lock);
+	front = __intel_frontbuffer_get(obj);
 	if (front)
 		return front;
 
@@ -253,13 +249,13 @@
 			 frontbuffer_active, frontbuffer_retire);
 
 	spin_lock(&i915->fb_tracking.lock);
-	if (obj->frontbuffer) {
+	if (rcu_access_pointer(obj->frontbuffer)) {
 		kfree(front);
-		front = obj->frontbuffer;
+		front = rcu_dereference_protected(obj->frontbuffer, true);
 		kref_get(&front->ref);
 	} else {
 		i915_gem_object_get(obj);
-		obj->frontbuffer = front;
+		rcu_assign_pointer(obj->frontbuffer, front);
 	}
 	spin_unlock(&i915->fb_tracking.lock);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_frontbuffer.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_frontbuffer.h
@@ -27,10 +27,10 @@
 #include <linux/atomic.h>
 #include <linux/kref.h>
 
+#include "gem/i915_gem_object_types.h"
 #include "i915_active.h"
 
 struct drm_i915_private;
-struct drm_i915_gem_object;
 
 enum fb_op_origin {
 	ORIGIN_GTT,
@@ -45,6 +45,7 @@
 	atomic_t bits;
 	struct i915_active write;
 	struct drm_i915_gem_object *obj;
+	struct rcu_head rcu;
 };
 
 void intel_frontbuffer_flip_prepare(struct drm_i915_private *i915,
@@ -54,6 +55,35 @@
 void intel_frontbuffer_flip(struct drm_i915_private *i915,
 			    unsigned frontbuffer_bits);
 
+void intel_frontbuffer_put(struct intel_frontbuffer *front);
+
+static inline struct intel_frontbuffer *
+__intel_frontbuffer_get(const struct drm_i915_gem_object *obj)
+{
+	struct intel_frontbuffer *front;
+
+	if (likely(!rcu_access_pointer(obj->frontbuffer)))
+		return NULL;
+
+	rcu_read_lock();
+	do {
+		front = rcu_dereference(obj->frontbuffer);
+		if (!front)
+			break;
+
+		if (unlikely(!kref_get_unless_zero(&front->ref)))
+			continue;
+
+		if (likely(front == rcu_access_pointer(obj->frontbuffer)))
+			break;
+
+		intel_frontbuffer_put(front);
+	} while (1);
+	rcu_read_unlock();
+
+	return front;
+}
+
 struct intel_frontbuffer *
 intel_frontbuffer_get(struct drm_i915_gem_object *obj);
 
@@ -119,6 +149,4 @@
 			     struct intel_frontbuffer *new,
 			     unsigned int frontbuffer_bits);
 
-void intel_frontbuffer_put(struct intel_frontbuffer *front);
-
 #endif /* __INTEL_FRONTBUFFER_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -1232,6 +1232,11 @@
 	if (hdmi->dp_dual_mode.type < DRM_DP_DUAL_MODE_TYPE2_DVI)
 		return;
 
+	if (dev_priv->bypass_tmds_oe) {
+		DRM_DEBUG_KMS("Bypassing TMDS_OE setting\n");
+		return;
+	}
+
 	DRM_DEBUG_KMS("%s DP dual mode adaptor TMDS output\n",
 		      enable ? "Enabling" : "Disabling");
 
@@ -2129,7 +2134,11 @@
 	if (clock > hdmi_port_clock_limit(hdmi, respect_downstream_limits, force_dvi))
 		return MODE_CLOCK_HIGH;
 
-	/* BXT DPLL can't generate 223-240 MHz */
+	/* GLK DPLL can't generate 446-480 MHz */
+	if (IS_GEMINILAKE(dev_priv) && clock > 446666 && clock < 480000)
+		return MODE_CLOCK_RANGE;
+
+	/* BXT/GLK DPLL can't generate 223-240 MHz */
 	if (IS_GEN9_LP(dev_priv) && clock > 223333 && clock < 240000)
 		return MODE_CLOCK_RANGE;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_lpe_audio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_lpe_audio.c
@@ -172,6 +172,14 @@
 				handle_simple_irq,
 				"hdmi_lpe_audio_irq_handler");
 
+	static const struct pci_device_id irq_quirk_ids[] = {
+		/* Dell Wyse 3040 */
+		{PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, 0x22b0, 0x1028, 0x07c1)},
+		{}
+	};
+
+	if (pci_dev_present(irq_quirk_ids))
+		return 0;
 	return irq_set_chip_data(irq, dev_priv);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_overlay.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_overlay.c
@@ -278,12 +278,21 @@
 				       struct i915_vma *vma)
 {
 	enum pipe pipe = overlay->crtc->pipe;
+	struct intel_frontbuffer *from = NULL, *to = NULL;
 
 	WARN_ON(overlay->old_vma);
 
-	intel_frontbuffer_track(overlay->vma ? overlay->vma->obj->frontbuffer : NULL,
-				vma ? vma->obj->frontbuffer : NULL,
-				INTEL_FRONTBUFFER_OVERLAY(pipe));
+	if (overlay->vma)
+		from = intel_frontbuffer_get(overlay->vma->obj);
+	if (vma)
+		to = intel_frontbuffer_get(vma->obj);
+
+	intel_frontbuffer_track(from, to, INTEL_FRONTBUFFER_OVERLAY(pipe));
+
+	if (to)
+		intel_frontbuffer_put(to);
+	if (from)
+		intel_frontbuffer_put(from);
 
 	intel_frontbuffer_flip_prepare(overlay->i915,
 				       INTEL_FRONTBUFFER_OVERLAY(pipe));
@@ -768,7 +777,7 @@
 		ret = PTR_ERR(vma);
 		goto out_pin_section;
 	}
-	intel_frontbuffer_flush(new_bo->frontbuffer, ORIGIN_DIRTYFB);
+	i915_gem_object_flush_frontbuffer(new_bo, ORIGIN_DIRTYFB);
 
 	if (!overlay->active) {
 		u32 oconfig;
@@ -913,6 +922,9 @@
 	const struct intel_crtc_state *pipe_config =
 		overlay->crtc->config;
 
+	if (rec->dst_height == 0 || rec->dst_width == 0)
+		return -EINVAL;
+
 	if (rec->dst_x < pipe_config->pipe_src_w &&
 	    rec->dst_x + rec->dst_width <= pipe_config->pipe_src_w &&
 	    rec->dst_y < pipe_config->pipe_src_h &&
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_panel.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_panel.c
@@ -1603,20 +1603,21 @@
 		val = pch_get_backlight(connector);
 	else
 		val = lpt_get_backlight(connector);
-	val = intel_panel_compute_brightness(connector, val);
-	panel->backlight.level = clamp(val, panel->backlight.min,
-				       panel->backlight.max);
 
 	if (cpu_mode) {
 		DRM_DEBUG_KMS("CPU backlight register was enabled, switching to PCH override\n");
 
 		/* Write converted CPU PWM value to PCH override register */
-		lpt_set_backlight(connector->base.state, panel->backlight.level);
+		lpt_set_backlight(connector->base.state, val);
 		I915_WRITE(BLC_PWM_PCH_CTL1, pch_ctl1 | BLM_PCH_OVERRIDE_ENABLE);
 
 		I915_WRITE(BLC_PWM_CPU_CTL2, cpu_ctl2 & ~BLM_PWM_ENABLE);
 	}
 
+	val = intel_panel_compute_brightness(connector, val);
+	panel->backlight.level = clamp(val, panel->backlight.min,
+				       panel->backlight.max);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_psr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_psr.c
@@ -291,7 +291,7 @@
 	DRM_DEBUG_KMS("eDP panel supports PSR version %x\n",
 		      intel_dp->psr_dpcd[0]);
 
-	if (drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_PSR)) {
+	if (drm_dp_has_quirk(&intel_dp->desc, 0, DP_DPCD_QUIRK_NO_PSR)) {
 		DRM_DEBUG_KMS("PSR support not currently available for this panel\n");
 		return;
 	}
@@ -1219,6 +1219,14 @@
 	if (!dev_priv->psr.sink_support)
 		return;
 
+	/*
+	 * PSR was disabled by module parameters but the underlying panel is
+	 * depending on it, so use per-chip default to probe that automatically.
+	 */
+	if ((dev_priv->psr.dp->edid_quirks & BIT(DP_QUIRK_FORCE_PSR_CHIP_DEFAULT)) &&
+	    i915_modparams.enable_psr == 0)
+		i915_modparams.enable_psr = -1;
+
 	if (i915_modparams.enable_psr == -1)
 		if (INTEL_GEN(dev_priv) < 9 || !dev_priv->vbt.psr.enable)
 			i915_modparams.enable_psr = 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_quirks.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_quirks.c
@@ -146,6 +146,11 @@
 	/* ASRock ITX*/
 	{ 0x3185, 0x1849, 0x2212, quirk_increase_ddi_disabled_time },
 	{ 0x3184, 0x1849, 0x2212, quirk_increase_ddi_disabled_time },
+	/* ECS Liva Q2 */
+	{ 0x3185, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time },
+	{ 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time },
+	/* HP Notebook - 14-r206nv */
+	{ 0x0f31, 0x103c, 0x220f, quirk_invert_brightness },
 };
 
 void intel_init_quirks(struct drm_i915_private *i915)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -2693,13 +2693,10 @@
 	if (!intel_sdvo_connector)
 		return false;
 
-	if (device == 0) {
-		intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS0;
+	if (device == 0)
 		intel_sdvo_connector->output_flag = SDVO_OUTPUT_TMDS0;
-	} else if (device == 1) {
-		intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS1;
+	else if (device == 1)
 		intel_sdvo_connector->output_flag = SDVO_OUTPUT_TMDS1;
-	}
 
 	intel_connector = &intel_sdvo_connector->base;
 	connector = &intel_connector->base;
@@ -2753,7 +2750,6 @@
 	encoder->encoder_type = DRM_MODE_ENCODER_TVDAC;
 	connector->connector_type = DRM_MODE_CONNECTOR_SVIDEO;
 
-	intel_sdvo->controlled_output |= type;
 	intel_sdvo_connector->output_flag = type;
 
 	if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
@@ -2794,13 +2790,10 @@
 	encoder->encoder_type = DRM_MODE_ENCODER_DAC;
 	connector->connector_type = DRM_MODE_CONNECTOR_VGA;
 
-	if (device == 0) {
-		intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB0;
+	if (device == 0)
 		intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB0;
-	} else if (device == 1) {
-		intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB1;
+	else if (device == 1)
 		intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB1;
-	}
 
 	if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
 		kfree(intel_sdvo_connector);
@@ -2830,13 +2823,10 @@
 	encoder->encoder_type = DRM_MODE_ENCODER_LVDS;
 	connector->connector_type = DRM_MODE_CONNECTOR_LVDS;
 
-	if (device == 0) {
-		intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS0;
+	if (device == 0)
 		intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS0;
-	} else if (device == 1) {
-		intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS1;
+	else if (device == 1)
 		intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS1;
-	}
 
 	if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
 		kfree(intel_sdvo_connector);
@@ -2869,16 +2859,39 @@
 	return false;
 }
 
+static u16 intel_sdvo_filter_output_flags(u16 flags)
+{
+	flags &= SDVO_OUTPUT_MASK;
+
+	/* SDVO requires XXX1 function may not exist unless it has XXX0 function.*/
+	if (!(flags & SDVO_OUTPUT_TMDS0))
+		flags &= ~SDVO_OUTPUT_TMDS1;
+
+	if (!(flags & SDVO_OUTPUT_RGB0))
+		flags &= ~SDVO_OUTPUT_RGB1;
+
+	if (!(flags & SDVO_OUTPUT_LVDS0))
+		flags &= ~SDVO_OUTPUT_LVDS1;
+
+	return flags;
+}
+
 static bool
 intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
 {
-	/* SDVO requires XXX1 function may not exist unless it has XXX0 function.*/
+	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
+
+	flags = intel_sdvo_filter_output_flags(flags);
+
+	intel_sdvo->controlled_output = flags;
+
+	intel_sdvo_select_ddc_bus(i915, intel_sdvo);
 
 	if (flags & SDVO_OUTPUT_TMDS0)
 		if (!intel_sdvo_dvi_init(intel_sdvo, 0))
 			return false;
 
-	if ((flags & SDVO_TMDS_MASK) == SDVO_TMDS_MASK)
+	if (flags & SDVO_OUTPUT_TMDS1)
 		if (!intel_sdvo_dvi_init(intel_sdvo, 1))
 			return false;
 
@@ -2899,7 +2912,7 @@
 		if (!intel_sdvo_analog_init(intel_sdvo, 0))
 			return false;
 
-	if ((flags & SDVO_RGB_MASK) == SDVO_RGB_MASK)
+	if (flags & SDVO_OUTPUT_RGB1)
 		if (!intel_sdvo_analog_init(intel_sdvo, 1))
 			return false;
 
@@ -2907,14 +2920,13 @@
 		if (!intel_sdvo_lvds_init(intel_sdvo, 0))
 			return false;
 
-	if ((flags & SDVO_LVDS_MASK) == SDVO_LVDS_MASK)
+	if (flags & SDVO_OUTPUT_LVDS1)
 		if (!intel_sdvo_lvds_init(intel_sdvo, 1))
 			return false;
 
-	if ((flags & SDVO_OUTPUT_MASK) == 0) {
+	if (flags == 0) {
 		unsigned char bytes[2];
 
-		intel_sdvo->controlled_output = 0;
 		memcpy(bytes, &intel_sdvo->caps.output_flags, 2);
 		DRM_DEBUG_KMS("%s: Unknown SDVO output type (0x%02x%02x)\n",
 			      SDVO_NAME(intel_sdvo),
@@ -3321,8 +3333,6 @@
 	 */
 	intel_sdvo->base.cloneable = 0;
 
-	intel_sdvo_select_ddc_bus(dev_priv, intel_sdvo);
-
 	/* Set the input timing to the screen. Assume always input 0. */
 	if (!intel_sdvo_set_target_input(intel_sdvo))
 		goto err_output;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/intel_tc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/intel_tc.c
@@ -45,6 +45,62 @@
 	return tc_port / 2;
 }
 
+static enum intel_display_power_domain
+tc_cold_get_power_domain(struct intel_digital_port *dig_port)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+
+	if (INTEL_GEN(i915) == 11)
+		return intel_legacy_aux_to_power_domain(dig_port->aux_ch);
+	else
+		return POWER_DOMAIN_TC_COLD_OFF;
+}
+
+static intel_wakeref_t
+tc_cold_block(struct intel_digital_port *dig_port)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	enum intel_display_power_domain domain;
+
+	if (INTEL_GEN(i915) == 11 && !dig_port->tc_legacy_port)
+		return 0;
+
+	domain = tc_cold_get_power_domain(dig_port);
+	return intel_display_power_get(i915, domain);
+}
+
+static void
+tc_cold_unblock(struct intel_digital_port *dig_port, intel_wakeref_t wakeref)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	enum intel_display_power_domain domain;
+
+	/*
+	 * wakeref == -1, means some error happened saving save_depot_stack but
+	 * power should still be put down and 0 is a invalid save_depot_stack
+	 * id so can be used to skip it for non TC legacy ports.
+	 */
+	if (wakeref == 0)
+		return;
+
+	domain = tc_cold_get_power_domain(dig_port);
+	intel_display_power_put_async(i915, domain, wakeref);
+}
+
+static void
+assert_tc_cold_blocked(struct intel_digital_port *dig_port)
+{
+	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	bool enabled;
+
+	if (INTEL_GEN(i915) == 11 && !dig_port->tc_legacy_port)
+		return;
+
+	enabled = intel_display_power_is_enabled(i915,
+						 tc_cold_get_power_domain(dig_port));
+	WARN_ON(!enabled);
+}
+
 u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
@@ -56,6 +112,7 @@
 				      PORT_TX_DFLEXDPSP(dig_port->tc_phy_fia));
 
 	WARN_ON(lane_mask == 0xffffffff);
+	assert_tc_cold_blocked(dig_port);
 
 	return (lane_mask & DP_LANE_ASSIGNMENT_MASK(tc_port)) >>
 	       DP_LANE_ASSIGNMENT_SHIFT(tc_port);
@@ -70,6 +127,8 @@
 	if (dig_port->tc_mode != TC_PORT_DP_ALT)
 		return 4;
 
+	assert_tc_cold_blocked(dig_port);
+
 	lane_mask = 0;
 	with_intel_display_power(i915, POWER_DOMAIN_DISPLAY_CORE, wakeref)
 		lane_mask = intel_tc_port_get_lane_mask(dig_port);
@@ -102,6 +161,8 @@
 
 	WARN_ON(lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY);
 
+	assert_tc_cold_blocked(dig_port);
+
 	val = intel_uncore_read(uncore,
 				PORT_TX_DFLEXDPMLE1(dig_port->tc_phy_fia));
 	val &= ~DFLEXDPMLE1_DPMLETC_MASK(tc_port);
@@ -390,8 +451,14 @@
 	enum tc_port_mode old_tc_mode = dig_port->tc_mode;
 
 	intel_display_power_flush_work(i915);
-	WARN_ON(intel_display_power_is_enabled(i915,
-					       intel_aux_power_domain(dig_port)));
+	if (INTEL_GEN(i915) != 11 || !dig_port->tc_legacy_port) {
+		enum intel_display_power_domain aux_domain;
+		bool aux_powered;
+
+		aux_domain = intel_aux_power_domain(dig_port);
+		aux_powered = intel_display_power_is_enabled(i915, aux_domain);
+		WARN_ON(aux_powered);
+	}
 
 	icl_tc_phy_disconnect(dig_port);
 	icl_tc_phy_connect(dig_port, required_lanes);
@@ -413,9 +480,11 @@
 void intel_tc_port_sanitize(struct intel_digital_port *dig_port)
 {
 	struct intel_encoder *encoder = &dig_port->base;
+	intel_wakeref_t tc_cold_wref;
 	int active_links = 0;
 
 	mutex_lock(&dig_port->tc_lock);
+	tc_cold_wref = tc_cold_block(dig_port);
 
 	dig_port->tc_mode = intel_tc_port_get_current_mode(dig_port);
 	if (dig_port->dp.is_mst)
@@ -440,6 +509,7 @@
 		      dig_port->tc_port_name,
 		      tc_port_mode_name(dig_port->tc_mode));
 
+	tc_cold_unblock(dig_port, tc_cold_wref);
 	mutex_unlock(&dig_port->tc_lock);
 }
 
@@ -461,10 +531,15 @@
 bool intel_tc_port_connected(struct intel_digital_port *dig_port)
 {
 	bool is_connected;
+	intel_wakeref_t tc_cold_wref;
 
 	intel_tc_port_lock(dig_port);
+	tc_cold_wref = tc_cold_block(dig_port);
+
 	is_connected = tc_port_live_status_mask(dig_port) &
 		       BIT(dig_port->tc_mode);
+
+	tc_cold_unblock(dig_port, tc_cold_wref);
 	intel_tc_port_unlock(dig_port);
 
 	return is_connected;
@@ -480,9 +555,16 @@
 
 	mutex_lock(&dig_port->tc_lock);
 
-	if (!dig_port->tc_link_refcount &&
-	    intel_tc_port_needs_reset(dig_port))
-		intel_tc_port_reset_mode(dig_port, required_lanes);
+	if (!dig_port->tc_link_refcount) {
+		intel_wakeref_t tc_cold_wref;
+
+		tc_cold_wref = tc_cold_block(dig_port);
+
+		if (intel_tc_port_needs_reset(dig_port))
+			intel_tc_port_reset_mode(dig_port, required_lanes);
+
+		tc_cold_unblock(dig_port, tc_cold_wref);
+	}
 
 	WARN_ON(dig_port->tc_lock_wakeref);
 	dig_port->tc_lock_wakeref = wakeref;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -797,10 +797,20 @@
 	if (intel_dsi->gpio_panel)
 		gpiod_set_value_cansleep(intel_dsi->gpio_panel, 1);
 	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_ON);
-	intel_dsi_msleep(intel_dsi, intel_dsi->panel_on_delay);
 
-	/* Deassert reset */
-	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET);
+	/*
+	 * Give the panel time to power-on and then deassert its reset.
+	 * Depending on the VBT MIPI sequences version the deassert-seq
+	 * may contain the necessary delay, intel_dsi_msleep() will skip
+	 * the delay in that case. If there is no deassert-seq, then an
+	 * unconditional msleep is used to give the panel time to power-on.
+	 */
+	if (dev_priv->vbt.dsi.sequence[MIPI_SEQ_DEASSERT_RESET]) {
+		intel_dsi_msleep(intel_dsi, intel_dsi->panel_on_delay);
+		intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET);
+	} else {
+		msleep(intel_dsi->panel_on_delay);
+	}
 
 	if (IS_GEMINILAKE(dev_priv)) {
 		glk_cold_boot = glk_dsi_enable_io(encoder);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_busy.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_busy.c
@@ -9,16 +9,16 @@
 #include "i915_gem_ioctls.h"
 #include "i915_gem_object.h"
 
-static __always_inline u32 __busy_read_flag(u8 id)
+static __always_inline u32 __busy_read_flag(u16 id)
 {
-	if (id == (u8)I915_ENGINE_CLASS_INVALID)
+	if (id == (u16)I915_ENGINE_CLASS_INVALID)
 		return 0xffff0000u;
 
 	GEM_BUG_ON(id >= 16);
 	return 0x10000u << id;
 }
 
-static __always_inline u32 __busy_write_id(u8 id)
+static __always_inline u32 __busy_write_id(u16 id)
 {
 	/*
 	 * The uABI guarantees an active writer is also amongst the read
@@ -29,14 +29,14 @@
 	 * last_read - hence we always set both read and write busy for
 	 * last_write.
 	 */
-	if (id == (u8)I915_ENGINE_CLASS_INVALID)
+	if (id == (u16)I915_ENGINE_CLASS_INVALID)
 		return 0xffffffffu;
 
 	return (id + 1) | __busy_read_flag(id);
 }
 
 static __always_inline unsigned int
-__busy_set_if_active(const struct dma_fence *fence, u32 (*flag)(u8 id))
+__busy_set_if_active(const struct dma_fence *fence, u32 (*flag)(u16 id))
 {
 	const struct i915_request *rq;
 
@@ -57,7 +57,7 @@
 		return 0;
 
 	/* Beware type-expansion follies! */
-	BUILD_BUG_ON(!typecheck(u8, rq->engine->uabi_class));
+	BUILD_BUG_ON(!typecheck(u16, rq->engine->uabi_class));
 	return flag(rq->engine->uabi_class);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
@@ -20,7 +20,8 @@
 {
 	GEM_BUG_ON(!i915_gem_object_has_pages(obj));
 	drm_clflush_sg(obj->mm.pages);
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 }
 
 static int clflush_work(struct dma_fence_work *base)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -2094,8 +2094,7 @@
 	ext_data.fpriv = file->driver_priv;
 	if (client_is_banned(ext_data.fpriv)) {
 		DRM_DEBUG("client %s[%d] banned from creating ctx\n",
-			  current->comm,
-			  pid_nr(get_task_pid(current, PIDTYPE_PID)));
+			  current->comm, task_pid_nr(current));
 		return -EIO;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
@@ -36,13 +36,13 @@
 		goto err_unpin_pages;
 	}
 
-	ret = sg_alloc_table(st, obj->mm.pages->nents, GFP_KERNEL);
+	ret = sg_alloc_table(st, obj->mm.pages->orig_nents, GFP_KERNEL);
 	if (ret)
 		goto err_free;
 
 	src = obj->mm.pages->sgl;
 	dst = st->sgl;
-	for (i = 0; i < obj->mm.pages->nents; i++) {
+	for (i = 0; i < obj->mm.pages->orig_nents; i++) {
 		sg_set_page(dst, sg_page(src), src->length, 0);
 		dst = sg_next(dst);
 		src = sg_next(src);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_domain.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_domain.c
@@ -606,21 +606,6 @@
 		return -ENOENT;
 
 	/*
-	 * Already in the desired write domain? Nothing for us to do!
-	 *
-	 * We apply a little bit of cunning here to catch a broader set of
-	 * no-ops. If obj->write_domain is set, we must be in the same
-	 * obj->read_domains, and only that domain. Therefore, if that
-	 * obj->write_domain matches the request read_domains, we are
-	 * already in the same read/write domain and can skip the operation,
-	 * without having to further check the requested write_domain.
-	 */
-	if (READ_ONCE(obj->write_domain) == read_domains) {
-		err = 0;
-		goto out;
-	}
-
-	/*
 	 * Try to flush the object off the GPU without holding the lock.
 	 * We will repeat the flush holding the lock in the normal manner
 	 * to catch cases where we are gazumped.
@@ -657,6 +642,19 @@
 	if (err)
 		goto out;
 
+	/*
+	 * Already in the desired write domain? Nothing for us to do!
+	 *
+	 * We apply a little bit of cunning here to catch a broader set of
+	 * no-ops. If obj->write_domain is set, we must be in the same
+	 * obj->read_domains, and only that domain. Therefore, if that
+	 * obj->write_domain matches the request read_domains, we are
+	 * already in the same read/write domain and can skip the operation,
+	 * without having to further check the requested write_domain.
+	 */
+	if (READ_ONCE(obj->write_domain) == read_domains)
+		goto out_unpin;
+
 	err = i915_gem_object_lock_interruptible(obj);
 	if (err)
 		goto out_unpin;
@@ -674,7 +672,7 @@
 	i915_gem_object_unlock(obj);
 
 	if (write_domain)
-		intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+		i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 
 out_unpin:
 	i915_gem_object_unpin_pages(obj);
@@ -794,7 +792,7 @@
 	}
 
 out:
-	intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 	obj->mm.dirty = true;
 	/* return with the pages pinned */
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -367,7 +367,7 @@
 		return true;
 
 	if (!(flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) &&
-	    (vma->node.start + vma->node.size - 1) >> 32)
+	    (vma->node.start + vma->node.size + 4095) >> 32)
 		return true;
 
 	if (flags & __EXEC_OBJECT_NEEDS_MAP &&
@@ -439,7 +439,8 @@
 	if (unlikely(entry->flags & eb->invalid_flags))
 		return -EINVAL;
 
-	if (unlikely(entry->alignment && !is_power_of_2(entry->alignment)))
+	if (unlikely(entry->alignment &&
+		     !is_power_of_2_u64(entry->alignment)))
 		return -EINVAL;
 
 	/*
@@ -930,11 +931,13 @@
 
 static void reloc_gpu_flush(struct reloc_cache *cache)
 {
-	GEM_BUG_ON(cache->rq_size >= cache->rq->batch->obj->base.size / sizeof(u32));
+	struct drm_i915_gem_object *obj = cache->rq->batch->obj;
+
+	GEM_BUG_ON(cache->rq_size >= obj->base.size / sizeof(u32));
 	cache->rq_cmd[cache->rq_size] = MI_BATCH_BUFFER_END;
 
-	__i915_gem_object_flush_map(cache->rq->batch->obj, 0, cache->rq_size);
-	i915_gem_object_unpin_map(cache->rq->batch->obj);
+	i915_gem_object_flush_map(obj);
+	i915_gem_object_unpin_map(obj);
 
 	intel_gt_chipset_flush(cache->rq->engine->gt);
 
@@ -1160,6 +1163,8 @@
 		goto out_pool;
 	}
 
+	memset32(cmd, 0, pool->obj->base.size / sizeof(u32));
+
 	batch = i915_vma_instance(pool->obj, vma->vm, NULL);
 	if (IS_ERR(batch)) {
 		err = PTR_ERR(batch);
@@ -1447,7 +1452,7 @@
 
 	urelocs = u64_to_user_ptr(entry->relocs_ptr);
 	remain = entry->relocation_count;
-	if (unlikely(remain > N_RELOC(ULONG_MAX)))
+	if (unlikely((unsigned long)remain > N_RELOC(ULONG_MAX)))
 		return -EINVAL;
 
 	/*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -181,7 +181,7 @@
 	struct i915_ggtt_view view;
 
 	if (i915_gem_object_is_tiled(obj))
-		chunk = roundup(chunk, tile_row_pages(obj));
+		chunk = roundup(chunk, tile_row_pages(obj) ?: 1);
 
 	view.type = I915_GGTT_VIEW_PARTIAL;
 	view.partial.offset = rounddown(page_offset, chunk);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -270,7 +270,7 @@
 		for_each_ggtt_vma(vma, obj)
 			intel_gt_flush_ggtt_writes(vma->vm->gt);
 
-		intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+		i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 
 		for_each_ggtt_vma(vma, obj) {
 			if (vma->iomap)
@@ -298,6 +298,30 @@
 	obj->write_domain = 0;
 }
 
+void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
+					 enum fb_op_origin origin)
+{
+	struct intel_frontbuffer *front;
+
+	front = __intel_frontbuffer_get(obj);
+	if (front) {
+		intel_frontbuffer_flush(front, origin);
+		intel_frontbuffer_put(front);
+	}
+}
+
+void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
+					      enum fb_op_origin origin)
+{
+	struct intel_frontbuffer *front;
+
+	front = __intel_frontbuffer_get(obj);
+	if (front) {
+		intel_frontbuffer_invalidate(front, origin);
+		intel_frontbuffer_put(front);
+	}
+}
+
 void i915_gem_init__objects(struct drm_i915_private *i915)
 {
 	INIT_WORK(&i915->mm.free_work, __i915_gem_free_work);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -13,8 +13,8 @@
 
 #include <drm/i915_drm.h>
 
+#include "display/intel_frontbuffer.h"
 #include "i915_gem_object_types.h"
-
 #include "i915_gem_gtt.h"
 
 void i915_gem_init__objects(struct drm_i915_private *i915);
@@ -431,4 +431,25 @@
 				  const struct i915_sched_attr *attr);
 #define I915_PRIORITY_DISPLAY I915_USER_PRIORITY(I915_PRIORITY_MAX)
 
+void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
+					 enum fb_op_origin origin);
+void __i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
+					      enum fb_op_origin origin);
+
+static inline void
+i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
+				  enum fb_op_origin origin)
+{
+	if (unlikely(rcu_access_pointer(obj->frontbuffer)))
+		__i915_gem_object_flush_frontbuffer(obj, origin);
+}
+
+static inline void
+i915_gem_object_invalidate_frontbuffer(struct drm_i915_gem_object *obj,
+				       enum fb_op_origin origin)
+{
+	if (unlikely(rcu_access_pointer(obj->frontbuffer)))
+		__i915_gem_object_invalidate_frontbuffer(obj, origin);
+}
+
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
@@ -118,6 +118,9 @@
 
 	I915_SELFTEST_DECLARE(struct list_head st_link);
 
+	unsigned long flags;
+#define I915_BO_WAS_BOUND_BIT    0
+
 	/*
 	 * Is the object to be mapped as read-only to the GPU
 	 * Only honoured if hardware has relevant pte bit
@@ -143,7 +146,7 @@
 	 */
 	u16 write_domain;
 
-	struct intel_frontbuffer *frontbuffer;
+	struct intel_frontbuffer __rcu *frontbuffer;
 
 	/** Current tiling stride for the object, if it's tiled. */
 	unsigned int tiling_and_stride;
@@ -240,9 +243,6 @@
 
 		void *gvt_info;
 	};
-
-	/** for phys allocated objects */
-	struct drm_dma_handle *phys_handle;
 };
 
 static inline struct drm_i915_gem_object *
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -8,6 +8,8 @@
 #include "i915_gem_object.h"
 #include "i915_scatterlist.h"
 
+#include "gt/intel_gt.h"
+
 void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj,
 				 struct sg_table *pages,
 				 unsigned int sg_page_sizes)
@@ -176,6 +178,14 @@
 	__i915_gem_object_reset_page_iter(obj);
 	obj->mm.page_sizes.phys = obj->mm.page_sizes.sg = 0;
 
+	if (test_and_clear_bit(I915_BO_WAS_BOUND_BIT, &obj->flags)) {
+		struct drm_i915_private *i915 = to_i915(obj->base.dev);
+		intel_wakeref_t wakeref;
+
+		with_intel_runtime_pm_if_in_use(&i915->runtime_pm, wakeref)
+			intel_gt_invalidate_tlbs(&i915->gt);
+	}
+
 	return pages;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_phys.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_phys.c
@@ -21,88 +21,87 @@
 static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
 {
 	struct address_space *mapping = obj->base.filp->f_mapping;
-	struct drm_dma_handle *phys;
-	struct sg_table *st;
 	struct scatterlist *sg;
-	char *vaddr;
+	struct sg_table *st;
+	dma_addr_t dma;
+	void *vaddr;
+	void *dst;
 	int i;
-	int err;
 
 	if (WARN_ON(i915_gem_object_needs_bit17_swizzle(obj)))
 		return -EINVAL;
 
-	/* Always aligning to the object size, allows a single allocation
+	/*
+	 * Always aligning to the object size, allows a single allocation
 	 * to handle all possible callers, and given typical object sizes,
 	 * the alignment of the buddy allocation will naturally match.
 	 */
-	phys = drm_pci_alloc(obj->base.dev,
-			     roundup_pow_of_two(obj->base.size),
-			     roundup_pow_of_two(obj->base.size));
-	if (!phys)
+	vaddr = dma_alloc_coherent(&obj->base.dev->pdev->dev,
+				   roundup_pow_of_two(obj->base.size),
+				   &dma, GFP_KERNEL);
+	if (!vaddr)
 		return -ENOMEM;
 
-	vaddr = phys->vaddr;
+	st = kmalloc(sizeof(*st), GFP_KERNEL);
+	if (!st)
+		goto err_pci;
+
+	if (sg_alloc_table(st, 1, GFP_KERNEL))
+		goto err_st;
+
+	sg = st->sgl;
+	sg->offset = 0;
+	sg->length = obj->base.size;
+
+	sg_assign_page(sg, (struct page *)vaddr);
+	sg_dma_address(sg) = dma;
+	sg_dma_len(sg) = obj->base.size;
+
+	dst = vaddr;
 	for (i = 0; i < obj->base.size / PAGE_SIZE; i++) {
 		struct page *page;
-		char *src;
+		void *src;
 
 		page = shmem_read_mapping_page(mapping, i);
-		if (IS_ERR(page)) {
-			err = PTR_ERR(page);
-			goto err_phys;
-		}
+		if (IS_ERR(page))
+			goto err_st;
 
 		src = kmap_atomic(page);
-		memcpy(vaddr, src, PAGE_SIZE);
-		drm_clflush_virt_range(vaddr, PAGE_SIZE);
+		memcpy(dst, src, PAGE_SIZE);
+		drm_clflush_virt_range(dst, PAGE_SIZE);
 		kunmap_atomic(src);
 
 		put_page(page);
-		vaddr += PAGE_SIZE;
+		dst += PAGE_SIZE;
 	}
 
 	intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt);
 
-	st = kmalloc(sizeof(*st), GFP_KERNEL);
-	if (!st) {
-		err = -ENOMEM;
-		goto err_phys;
-	}
-
-	if (sg_alloc_table(st, 1, GFP_KERNEL)) {
-		kfree(st);
-		err = -ENOMEM;
-		goto err_phys;
-	}
-
-	sg = st->sgl;
-	sg->offset = 0;
-	sg->length = obj->base.size;
-
-	sg_dma_address(sg) = phys->busaddr;
-	sg_dma_len(sg) = obj->base.size;
-
-	obj->phys_handle = phys;
-
 	__i915_gem_object_set_pages(obj, st, sg->length);
 
 	return 0;
 
-err_phys:
-	drm_pci_free(obj->base.dev, phys);
-
-	return err;
+err_st:
+	kfree(st);
+err_pci:
+	dma_free_coherent(&obj->base.dev->pdev->dev,
+			  roundup_pow_of_two(obj->base.size),
+			  vaddr, dma);
+	return -ENOMEM;
 }
 
 static void
 i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
 			       struct sg_table *pages)
 {
+	dma_addr_t dma = sg_dma_address(pages->sgl);
+	void *vaddr = sg_page(pages->sgl);
+
 	__i915_gem_object_release_shmem(obj, pages, false);
 
 	if (obj->mm.dirty) {
 		struct address_space *mapping = obj->base.filp->f_mapping;
-		char *vaddr = obj->phys_handle->vaddr;
+		void *src = vaddr;
 		int i;
 
 		for (i = 0; i < obj->base.size / PAGE_SIZE; i++) {
@@ -114,15 +113,16 @@
 				continue;
 
 			dst = kmap_atomic(page);
-			drm_clflush_virt_range(vaddr, PAGE_SIZE);
-			memcpy(dst, vaddr, PAGE_SIZE);
+			drm_clflush_virt_range(src, PAGE_SIZE);
+			memcpy(dst, src, PAGE_SIZE);
 			kunmap_atomic(dst);
 
 			set_page_dirty(page);
 			if (obj->mm.madv == I915_MADV_WILLNEED)
 				mark_page_accessed(page);
 			put_page(page);
-			vaddr += PAGE_SIZE;
+
+			src += PAGE_SIZE;
 		}
 		obj->mm.dirty = false;
 	}
@@ -130,7 +130,9 @@
 	sg_free_table(pages);
 	kfree(pages);
 
-	drm_pci_free(obj->base.dev, obj->phys_handle);
+	dma_free_coherent(&obj->base.dev->pdev->dev,
+			  roundup_pow_of_two(obj->base.size),
+			  vaddr, dma);
 }
 
 static void phys_release(struct drm_i915_gem_object *obj)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -36,7 +36,6 @@
 	unsigned long last_pfn = 0;	/* suppress gcc warning */
 	unsigned int max_segment = i915_sg_segment_size();
 	unsigned int sg_page_sizes;
-	struct pagevec pvec;
 	gfp_t noreclaim;
 	int ret;
 
@@ -188,13 +187,17 @@
 	sg_mark_end(sg);
 err_pages:
 	mapping_clear_unevictable(mapping);
-	pagevec_init(&pvec);
-	for_each_sgt_page(page, sgt_iter, st) {
-		if (!pagevec_add(&pvec, page))
+	if (sg != st->sgl) {
+		struct pagevec pvec;
+
+		pagevec_init(&pvec);
+		for_each_sgt_page(page, sgt_iter, st) {
+			if (!pagevec_add(&pvec, page))
+				check_release_pagevec(&pvec);
+		}
+		if (pagevec_count(&pvec))
 			check_release_pagevec(&pvec);
 	}
-	if (pagevec_count(&pvec))
-		check_release_pagevec(&pvec);
 	sg_free_table(st);
 	kfree(st);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -357,8 +357,7 @@
 				sc->nr_to_scan,
 				&sc->nr_scanned,
 				I915_SHRINK_BOUND |
-				I915_SHRINK_UNBOUND |
-				I915_SHRINK_WRITEBACK);
+				I915_SHRINK_UNBOUND);
 	if (sc->nr_scanned < sc->nr_to_scan && current_is_kswapd()) {
 		intel_wakeref_t wakeref;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
@@ -427,7 +427,7 @@
 
 static struct sg_table *
 __i915_gem_userptr_alloc_pages(struct drm_i915_gem_object *obj,
-			       struct page **pvec, int num_pages)
+			       struct page **pvec, unsigned long num_pages)
 {
 	unsigned int max_segment = i915_sg_segment_size();
 	struct sg_table *st;
@@ -473,9 +473,10 @@
 {
 	struct get_pages_work *work = container_of(_work, typeof(*work), work);
 	struct drm_i915_gem_object *obj = work->obj;
-	const int npages = obj->base.size >> PAGE_SHIFT;
+	const unsigned long npages = obj->base.size >> PAGE_SHIFT;
+	unsigned long pinned;
 	struct page **pvec;
-	int pinned, ret;
+	int ret;
 
 	ret = -ENOMEM;
 	pinned = 0;
@@ -578,7 +579,7 @@
 
 static int i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
 {
-	const int num_pages = obj->base.size >> PAGE_SHIFT;
+	const unsigned long num_pages = obj->base.size >> PAGE_SHIFT;
 	struct mm_struct *mm = obj->userptr.mm->mm;
 	struct page **pvec;
 	struct sg_table *pages;
@@ -618,6 +619,14 @@
 				      GFP_KERNEL |
 				      __GFP_NORETRY |
 				      __GFP_NOWARN);
+		/*
+		 * Using __get_user_pages_fast() with a read-only
+		 * access is questionable. A read-only page may be
+		 * COW-broken, and then this might end up giving
+		 * the wrong side of the COW..
+		 *
+		 * We may or may not care.
+		 */
 		if (pvec) /* defer to worker if malloc fails */
 			pinned = __get_user_pages_fast(obj->userptr.ptr,
 						       num_pages,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -375,7 +375,7 @@
 
 	obj = i915_gem_object_create_internal(i915, size);
 	if (IS_ERR(obj))
-		return PTR_ERR(obj);
+		return false;
 
 	err = create_mmap_offset(obj);
 	i915_gem_object_put(obj);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_engine.h
@@ -250,6 +250,14 @@
 	return pos & (ring->size - 1);
 }
 
+static inline int intel_ring_direction(const struct intel_ring *ring,
+				       u32 next, u32 prev)
+{
+	typecheck(typeof(ring->size), next);
+	typecheck(typeof(ring->size), prev);
+	return (next - prev) << ring->wrap;
+}
+
 static inline bool
 intel_ring_offset_valid(const struct intel_ring *ring,
 			unsigned int pos)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -28,13 +28,13 @@
 
 #include "i915_drv.h"
 
-#include "gt/intel_gt.h"
-
+#include "intel_context.h"
 #include "intel_engine.h"
 #include "intel_engine_pm.h"
 #include "intel_engine_pool.h"
 #include "intel_engine_user.h"
-#include "intel_context.h"
+#include "intel_gt.h"
+#include "intel_gt_requests.h"
 #include "intel_lrc.h"
 #include "intel_reset.h"
 
@@ -354,7 +354,8 @@
 		 * instances.
 		 */
 		if ((INTEL_GEN(i915) >= 11 &&
-		     RUNTIME_INFO(i915)->vdbox_sfc_access & engine->mask) ||
+		     (RUNTIME_INFO(i915)->vdbox_sfc_access &
+		      BIT(engine->instance))) ||
 		    (INTEL_GEN(i915) >= 9 && engine->instance == 0))
 			engine->uabi_capabilities |=
 				I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC;
@@ -600,6 +601,7 @@
 	intel_engine_init_hangcheck(engine);
 	intel_engine_init_cmd_parser(engine);
 	intel_engine_init__pm(engine);
+	intel_engine_init_retire(engine);
 
 	intel_engine_pool_init(&engine->pool);
 
@@ -807,6 +809,7 @@
 
 	cleanup_status_page(engine);
 
+	intel_engine_fini_retire(engine);
 	intel_engine_pool_fini(&engine->pool);
 	intel_engine_fini_breadcrumbs(engine);
 	intel_engine_cleanup_cmd_parser(engine);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -70,8 +70,43 @@
 
 #endif /* !IS_ENABLED(CONFIG_LOCKDEP) */
 
+static void
+__queue_and_release_pm(struct i915_request *rq,
+		       struct intel_timeline *tl,
+		       struct intel_engine_cs *engine)
+{
+	struct intel_gt_timelines *timelines = &engine->gt->timelines;
+	unsigned long flags;
+
+	GEM_TRACE("%s\n", engine->name);
+
+	/*
+	 * We have to serialise all potential retirement paths with our
+	 * submission, as we don't want to underflow either the
+	 * engine->wakeref.counter or our timeline->active_count.
+	 *
+	 * Equally, we cannot allow a new submission to start until
+	 * after we finish queueing, nor could we allow that submitter
+	 * to retire us before we are ready!
+	 */
+	spin_lock_irqsave(&timelines->lock, flags);
+
+	/* Let intel_gt_retire_requests() retire us (acquired under lock) */
+	if (!atomic_fetch_inc(&tl->active_count))
+		list_add_tail(&tl->link, &timelines->active_list);
+
+	/* Hand the request over to HW and so engine_retire() */
+	__i915_request_queue(rq, NULL);
+
+	/* Let new submissions commence (and maybe retire this timeline) */
+	__intel_wakeref_defer_park(&engine->wakeref);
+
+	spin_unlock_irqrestore(&timelines->lock, flags);
+}
+
 static bool switch_to_kernel_context(struct intel_engine_cs *engine)
 {
+	struct intel_context *ce = engine->kernel_context;
 	struct i915_request *rq;
 	unsigned long flags;
 	bool result = true;
@@ -96,15 +131,13 @@
 	 * retiring the last request, thus all rings should be empty and
 	 * all timelines idle.
 	 */
-	flags = __timeline_mark_lock(engine->kernel_context);
+	flags = __timeline_mark_lock(ce);
 
-	rq = __i915_request_create(engine->kernel_context, GFP_NOWAIT);
+	rq = __i915_request_create(ce, GFP_NOWAIT);
 	if (IS_ERR(rq))
 		/* Context switch failed, hope for the best! Maybe reset? */
 		goto out_unlock;
 
-	intel_timeline_enter(rq->timeline);
-
 	/* Check again on the next retirement. */
 	engine->wakeref_serial = engine->serial + 1;
 	i915_request_add_active_barriers(rq);
@@ -113,13 +146,12 @@
 	rq->sched.attr.priority = I915_PRIORITY_UNPREEMPTABLE;
 	__i915_request_commit(rq);
 
-	/* Release our exclusive hold on the engine */
-	__intel_wakeref_defer_park(&engine->wakeref);
-	__i915_request_queue(rq, NULL);
+	/* Expose ourselves to the world */
+	__queue_and_release_pm(rq, ce->timeline, engine);
 
 	result = false;
 out_unlock:
-	__timeline_mark_unlock(engine->kernel_context, flags);
+	__timeline_mark_unlock(ce, flags);
 	return result;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_engine_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_engine_types.h
@@ -107,6 +107,7 @@
 
 	u32 space;
 	u32 size;
+	u32 wrap;
 	u32 effective_size;
 };
 
@@ -300,8 +301,8 @@
 	u8 class;
 	u8 instance;
 
-	u8 uabi_class;
-	u8 uabi_instance;
+	u16 uabi_class;
+	u16 uabi_instance;
 
 	u32 context_size;
 	u32 mmio_base;
@@ -470,6 +471,14 @@
 
 	struct intel_engine_execlists execlists;
 
+	/*
+	 * Keep track of completed timelines on this engine for early
+	 * retirement with the goal of quickly enabling powersaving as
+	 * soon as the engine is idle.
+	 */
+	struct intel_timeline *retire;
+	struct work_struct retire_work;
+
 	/* status_notifier: list of callbacks for context-switch changes */
 	struct atomic_notifier_head context_status_notifier;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -15,6 +15,8 @@
 
 	spin_lock_init(&gt->irq_lock);
 
+	mutex_init(&gt->tlb_invalidate_lock);
+
 	INIT_LIST_HEAD(&gt->closed_vma);
 	spin_lock_init(&gt->closed_lock);
 
@@ -266,3 +268,117 @@
 	intel_uc_driver_late_release(&gt->uc);
 	intel_gt_fini_reset(gt);
 }
+
+struct reg_and_bit {
+	i915_reg_t reg;
+	u32 bit;
+};
+
+static struct reg_and_bit
+get_reg_and_bit(const struct intel_engine_cs *engine, const bool gen8,
+		const i915_reg_t *regs, const unsigned int num)
+{
+	const unsigned int class = engine->class;
+	struct reg_and_bit rb = { };
+
+	if (WARN_ON_ONCE(class >= num || !regs[class].reg))
+		return rb;
+
+	rb.reg = regs[class];
+	if (gen8 && class == VIDEO_DECODE_CLASS)
+		rb.reg.reg += 4 * engine->instance; /* GEN8_M2TCR */
+	else
+		rb.bit = engine->instance;
+
+	rb.bit = BIT(rb.bit);
+
+	return rb;
+}
+
+void intel_gt_invalidate_tlbs(struct intel_gt *gt)
+{
+	static const i915_reg_t gen8_regs[] = {
+		[RENDER_CLASS]			= GEN8_RTCR,
+		[VIDEO_DECODE_CLASS]		= GEN8_M1TCR, /* , GEN8_M2TCR */
+		[VIDEO_ENHANCEMENT_CLASS]	= GEN8_VTCR,
+		[COPY_ENGINE_CLASS]		= GEN8_BTCR,
+	};
+	static const i915_reg_t gen12_regs[] = {
+		[RENDER_CLASS]			= GEN12_GFX_TLB_INV_CR,
+		[VIDEO_DECODE_CLASS]		= GEN12_VD_TLB_INV_CR,
+		[VIDEO_ENHANCEMENT_CLASS]	= GEN12_VE_TLB_INV_CR,
+		[COPY_ENGINE_CLASS]		= GEN12_BLT_TLB_INV_CR,
+	};
+	struct drm_i915_private *i915 = gt->i915;
+	struct intel_uncore *uncore = gt->uncore;
+	struct intel_engine_cs *engine;
+	enum intel_engine_id id;
+	const i915_reg_t *regs;
+	unsigned int num = 0;
+
+	if (I915_SELFTEST_ONLY(gt->awake == -ENODEV))
+		return;
+
+	if (INTEL_GEN(i915) == 12) {
+		regs = gen12_regs;
+		num = ARRAY_SIZE(gen12_regs);
+	} else if (INTEL_GEN(i915) >= 8 && INTEL_GEN(i915) <= 11) {
+		regs = gen8_regs;
+		num = ARRAY_SIZE(gen8_regs);
+	} else if (INTEL_GEN(i915) < 8) {
+		return;
+	}
+
+	if (WARN_ONCE(!num, "Platform does not implement TLB invalidation!"))
+		return;
+
+	GEM_TRACE("\n");
+
+	assert_rpm_wakelock_held(&i915->runtime_pm);
+
+	mutex_lock(&gt->tlb_invalidate_lock);
+	intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL);
+
+	spin_lock_irq(&uncore->lock); /* serialise invalidate with GT reset */
+
+	for_each_engine(engine, gt, id) {
+		struct reg_and_bit rb;
+
+		rb = get_reg_and_bit(engine, regs == gen8_regs, regs, num);
+		if (!i915_mmio_reg_offset(rb.reg))
+			continue;
+
+		if (INTEL_GEN(i915) == 12 && (engine->class == VIDEO_DECODE_CLASS ||
+		    engine->class == VIDEO_ENHANCEMENT_CLASS))
+			rb.bit = _MASKED_BIT_ENABLE(rb.bit);
+
+		intel_uncore_write_fw(uncore, rb.reg, rb.bit);
+	}
+
+	spin_unlock_irq(&uncore->lock);
+
+	for_each_engine(engine, gt, id) {
+		/*
+		 * HW architecture suggest typical invalidation time at 40us,
+		 * with pessimistic cases up to 100us and a recommendation to
+		 * cap at 1ms. We go a bit higher just in case.
+		 */
+		const unsigned int timeout_us = 100;
+		const unsigned int timeout_ms = 4;
+		struct reg_and_bit rb;
+
+		rb = get_reg_and_bit(engine, regs == gen8_regs, regs, num);
+		if (!i915_mmio_reg_offset(rb.reg))
+			continue;
+
+		if (__intel_wait_for_register_fw(uncore,
+						 rb.reg, rb.bit, 0,
+						 timeout_us, timeout_ms,
+						 NULL))
+			DRM_ERROR_RATELIMITED("%s TLB invalidation did not complete in %ums!\n",
+					      engine->name, timeout_ms);
+	}
+
+	intel_uncore_forcewake_put(uncore, FORCEWAKE_ALL);
+	mutex_unlock(&gt->tlb_invalidate_lock);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_gt.h
@@ -57,4 +57,6 @@
 
 void intel_gt_queue_hangcheck(struct intel_gt *gt);
 
+void intel_gt_invalidate_tlbs(struct intel_gt *gt);
+
 #endif /* __INTEL_GT_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt_requests.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_gt_requests.c
@@ -0,0 +1,98 @@
+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright © 2019 Intel Corporation
+ */
+
+#include <linux/workqueue.h>
+
+#include "i915_drv.h" /* for_each_engine() */
+#include "i915_request.h"
+#include "intel_gt.h"
+#include "intel_gt_pm.h"
+#include "intel_gt_requests.h"
+#include "intel_timeline.h"
+
+static void retire_requests(struct intel_timeline *tl)
+{
+	struct i915_request *rq, *rn;
+
+	list_for_each_entry_safe(rq, rn, &tl->requests, link)
+		if (!i915_request_retire(rq))
+			break;
+}
+
+static void engine_retire(struct work_struct *work)
+{
+	struct intel_engine_cs *engine =
+		container_of(work, typeof(*engine), retire_work);
+	struct intel_timeline *tl = xchg(&engine->retire, NULL);
+
+	mutex_lock(&engine->i915->drm.struct_mutex);
+	do {
+		struct intel_timeline *next = xchg(&tl->retire, NULL);
+
+		/*
+		 * Our goal here is to retire _idle_ timelines as soon as
+		 * possible (as they are idle, we do not expect userspace
+		 * to be cleaning up anytime soon).
+		 *
+		 * If the timeline is currently locked, either it is being
+		 * retired elsewhere or about to be!
+		 */
+		if (mutex_trylock(&tl->mutex)) {
+			retire_requests(tl);
+			mutex_unlock(&tl->mutex);
+		}
+		intel_timeline_put(tl);
+
+		GEM_BUG_ON(!next);
+		tl = ptr_mask_bits(next, 1);
+	} while (tl);
+	mutex_unlock(&engine->i915->drm.struct_mutex);
+}
+
+static bool add_retire(struct intel_engine_cs *engine,
+		       struct intel_timeline *tl)
+{
+	struct intel_timeline *first;
+
+	/*
+	 * We open-code a llist here to include the additional tag [BIT(0)]
+	 * so that we know when the timeline is already on a
+	 * retirement queue: either this engine or another.
+	 *
+	 * However, we rely on that a timeline can only be active on a single
+	 * engine at any one time and that add_retire() is called before the
+	 * engine releases the timeline and transferred to another to retire.
+	 */
+
+	if (READ_ONCE(tl->retire)) /* already queued */
+		return false;
+
+	intel_timeline_get(tl);
+	first = READ_ONCE(engine->retire);
+	do
+		tl->retire = ptr_pack_bits(first, 1, 1);
+	while (!try_cmpxchg(&engine->retire, &first, tl));
+
+	return !first;
+}
+
+void intel_engine_add_retire(struct intel_engine_cs *engine,
+			     struct intel_timeline *tl)
+{
+	if (add_retire(engine, tl))
+		schedule_work(&engine->retire_work);
+}
+
+void intel_engine_init_retire(struct intel_engine_cs *engine)
+{
+	INIT_WORK(&engine->retire_work, engine_retire);
+}
+
+void intel_engine_fini_retire(struct intel_engine_cs *engine)
+{
+	flush_work(&engine->retire_work);
+	GEM_BUG_ON(engine->retire);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt_requests.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_gt_requests.h
@@ -0,0 +1,18 @@
+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright © 2019 Intel Corporation
+ */
+
+#ifndef INTEL_GT_REQUESTS_H
+#define INTEL_GT_REQUESTS_H
+
+struct intel_engine_cs;
+struct intel_timeline;
+
+void intel_engine_init_retire(struct intel_engine_cs *engine);
+void intel_engine_add_retire(struct intel_engine_cs *engine,
+			     struct intel_timeline *tl);
+void intel_engine_fini_retire(struct intel_engine_cs *engine);
+
+#endif /* INTEL_GT_REQUESTS_H */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_gt_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_gt_types.h
@@ -40,6 +40,8 @@
 
 	struct intel_uc uc;
 
+	struct mutex tlb_invalidate_lock;
+
 	struct intel_gt_timelines {
 		spinlock_t lock; /* protects active_list */
 		struct list_head active_list;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -142,6 +142,7 @@
 #include "intel_engine_pm.h"
 #include "intel_gt.h"
 #include "intel_gt_pm.h"
+#include "intel_gt_requests.h"
 #include "intel_lrc_reg.h"
 #include "intel_mocs.h"
 #include "intel_reset.h"
@@ -471,17 +472,11 @@
 	return desc;
 }
 
-static void unwind_wa_tail(struct i915_request *rq)
-{
-	rq->tail = intel_ring_wrap(rq->ring, rq->wa_tail - WA_TAIL_BYTES);
-	assert_ring_tail_valid(rq->ring, rq->tail);
-}
-
 static struct i915_request *
 __unwind_incomplete_requests(struct intel_engine_cs *engine)
 {
 	struct i915_request *rq, *rn, *active = NULL;
-	struct list_head *uninitialized_var(pl);
+	struct list_head *pl;
 	int prio = I915_PRIORITY_INVALID;
 
 	lockdep_assert_held(&engine->active.lock);
@@ -495,7 +490,6 @@
 			continue; /* XXX */
 
 		__i915_request_unsubmit(rq);
-		unwind_wa_tail(rq);
 
 		/*
 		 * Push the request back into the queue for later resubmission.
@@ -525,7 +519,8 @@
 			 */
 			if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT,
 				     &rq->fence.flags)) {
-				spin_lock(&rq->lock);
+				spin_lock_nested(&rq->lock,
+						 SINGLE_DEPTH_NESTING);
 				i915_request_cancel_breadcrumb(rq);
 				spin_unlock(&rq->lock);
 			}
@@ -612,6 +607,20 @@
 {
 	struct intel_context * const ce = rq->hw_context;
 
+	/*
+	 * NB process_csb() is not under the engine->active.lock and hence
+	 * schedule_out can race with schedule_in meaning that we should
+	 * refrain from doing non-trivial work here.
+	 */
+
+	/*
+	 * If we have just completed this context, the engine may now be
+	 * idle and we want to re-enter powersaving.
+	 */
+	if (list_is_last(&rq->link, &ce->timeline->requests) &&
+	    i915_request_completed(rq))
+		intel_engine_add_retire(engine, ce->timeline);
+
 	intel_engine_context_out(engine);
 	execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
 	intel_gt_pm_put(engine->gt);
@@ -649,13 +658,35 @@
 	i915_request_put(rq);
 }
 
-static u64 execlists_update_context(const struct i915_request *rq)
+static u64 execlists_update_context(struct i915_request *rq)
 {
 	struct intel_context *ce = rq->hw_context;
-	u64 desc;
+	u64 desc = ce->lrc_desc;
+	u32 tail, prev;
 
-	ce->lrc_reg_state[CTX_RING_TAIL + 1] =
-		intel_ring_set_tail(rq->ring, rq->tail);
+	/*
+	 * WaIdleLiteRestore:bdw,skl
+	 *
+	 * We should never submit the context with the same RING_TAIL twice
+	 * just in case we submit an empty ring, which confuses the HW.
+	 *
+	 * We append a couple of NOOPs (gen8_emit_wa_tail) after the end of
+	 * the normal request to be able to always advance the RING_TAIL on
+	 * subsequent resubmissions (for lite restore). Should that fail us,
+	 * and we try and submit the same tail again, force the context
+	 * reload.
+	 *
+	 * If we need to return to a preempted context, we need to skip the
+	 * lite-restore and force it to reload the RING_TAIL. Otherwise, the
+	 * HW has a tendency to ignore us rewinding the TAIL to the end of
+	 * an earlier request.
+	 */
+	tail = intel_ring_set_tail(rq->ring, rq->tail);
+	prev = ce->lrc_reg_state[CTX_RING_TAIL + 1];
+	if (unlikely(intel_ring_direction(rq->ring, tail, prev) <= 0))
+		desc |= CTX_DESC_FORCE_RESTORE;
+	ce->lrc_reg_state[CTX_RING_TAIL + 1] = tail;
+	rq->tail = rq->wa_tail;
 
 	/*
 	 * Make sure the context image is complete before we submit it to HW.
@@ -674,7 +705,6 @@
 	 */
 	mb();
 
-	desc = ce->lrc_desc;
 	ce->lrc_desc &= ~CTX_DESC_FORCE_RESTORE;
 
 	return desc;
@@ -918,6 +948,11 @@
 	return *last;
 }
 
+#define for_each_waiter(p__, rq__) \
+	list_for_each_entry_lockless(p__, \
+				     &(rq__)->sched.waiters_list, \
+				     wait_link)
+
 static void defer_request(struct i915_request *rq, struct list_head * const pl)
 {
 	LIST_HEAD(list);
@@ -935,7 +970,7 @@
 		GEM_BUG_ON(i915_request_is_active(rq));
 		list_move_tail(&rq->sched.link, pl);
 
-		list_for_each_entry(p, &rq->sched.waiters_list, wait_link) {
+		for_each_waiter(p, rq) {
 			struct i915_request *w =
 				container_of(p->waiter, typeof(*w), sched);
 
@@ -1101,14 +1136,6 @@
 			 */
 			__unwind_incomplete_requests(engine);
 
-			/*
-			 * If we need to return to the preempted context, we
-			 * need to skip the lite-restore and force it to
-			 * reload the RING_TAIL. Otherwise, the HW has a
-			 * tendency to ignore us rewinding the TAIL to the
-			 * end of an earlier request.
-			 */
-			last->hw_context->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 			last = NULL;
 		} else if (need_timeslice(engine, last) &&
 			   !timer_pending(&engine->execlists.timer)) {
@@ -1149,16 +1176,6 @@
 			if (!list_is_last(&last->sched.link,
 					  &engine->active.requests))
 				return;
-
-			/*
-			 * WaIdleLiteRestore:bdw,skl
-			 * Apply the wa NOOPs to prevent
-			 * ring:HEAD == rq:TAIL as we resubmit the
-			 * request. See gen8_emit_fini_breadcrumb() for
-			 * where we prepare the padding after the
-			 * end of the request.
-			 */
-			last->tail = last->wa_tail;
 		}
 	}
 
@@ -1572,6 +1589,9 @@
 			if (!inject_preempt_hang(execlists))
 				ring_set_paused(engine, 0);
 
+			/* XXX Magic delay for tgl */
+			ENGINE_POSTING_READ(engine, RING_CONTEXT_STATUS_PTR);
+
 			WRITE_ONCE(execlists->pending[0], NULL);
 			break;
 
@@ -2131,6 +2151,14 @@
 	/* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
 	batch = gen8_emit_flush_coherentl3_wa(engine, batch);
 
+	/* WaClearSlmSpaceAtContextSwitch:skl,bxt,kbl,glk,cfl */
+	batch = gen8_emit_pipe_control(batch,
+				       PIPE_CONTROL_FLUSH_L3 |
+				       PIPE_CONTROL_GLOBAL_GTT_IVB |
+				       PIPE_CONTROL_CS_STALL |
+				       PIPE_CONTROL_QW_WRITE,
+				       slm_offset(engine));
+
 	batch = emit_lri(batch, lri, ARRAY_SIZE(lri));
 
 	/* WaMediaPoolStateCmdInWABB:bxt,glk */
@@ -2232,6 +2260,9 @@
 static void lrc_destroy_wa_ctx(struct intel_engine_cs *engine)
 {
 	i915_vma_unpin_and_release(&engine->wa_ctx.vma, 0);
+
+	/* Called on error unwind, clear all flags to prevent further use */
+	memset(&engine->wa_ctx, 0, sizeof(engine->wa_ctx));
 }
 
 typedef u32 *(*wa_bb_func_t)(struct intel_engine_cs *engine, u32 *batch);
@@ -3715,9 +3746,11 @@
 	ve->base.i915 = ctx->i915;
 	ve->base.gt = siblings[0]->gt;
 	ve->base.id = -1;
+
 	ve->base.class = OTHER_CLASS;
 	ve->base.uabi_class = I915_ENGINE_CLASS_INVALID;
 	ve->base.instance = I915_ENGINE_CLASS_INVALID_VIRTUAL;
+	ve->base.uabi_instance = I915_ENGINE_CLASS_INVALID_VIRTUAL;
 
 	/*
 	 * The decision on whether to submit a request using semaphores
@@ -3739,6 +3772,7 @@
 	intel_engine_init_active(&ve->base, ENGINE_VIRTUAL);
 
 	intel_engine_init_execlists(&ve->base);
+	ve->base.breadcrumbs.irq_armed = true; /* fake HW, used for irq_work */
 
 	ve->base.cops = &virtual_context_ops;
 	ve->base.request_alloc = execlists_request_alloc;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -130,7 +130,19 @@
 	GEN9_MOCS_ENTRIES,
 	MOCS_ENTRY(I915_MOCS_CACHED,
 		   LE_3_WB | LE_TC_2_LLC_ELLC | LE_LRUM(3),
-		   L3_3_WB)
+		   L3_3_WB),
+
+	/*
+	 * mocs:63
+	 * - used by the L3 for all of its evictions.
+	 *   Thus it is expected to allow LLC cacheability to enable coherent
+	 *   flows to be maintained.
+	 * - used to force L3 uncachable cycles.
+	 *   Thus it is expected to make the surface L3 uncacheable.
+	 */
+	MOCS_ENTRY(63,
+		   LE_3_WB | LE_TC_1_LLC | LE_LRUM(3),
+		   L3_1_UC)
 };
 
 /* NOTE: the LE_TGT_CACHE is not used on Broxton */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_reset.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_reset.c
@@ -257,6 +257,7 @@
 static int gen6_hw_domain_reset(struct intel_gt *gt, u32 hw_domain_mask)
 {
 	struct intel_uncore *uncore = gt->uncore;
+	int loops = 2;
 	int err;
 
 	/*
@@ -264,17 +265,38 @@
 	 * for fifo space for the write or forcewake the chip for
 	 * the read
 	 */
-	intel_uncore_write_fw(uncore, GEN6_GDRST, hw_domain_mask);
+	do {
+		intel_uncore_write_fw(uncore, GEN6_GDRST, hw_domain_mask);
 
-	/* Wait for the device to ack the reset requests */
-	err = __intel_wait_for_register_fw(uncore,
-					   GEN6_GDRST, hw_domain_mask, 0,
-					   500, 0,
-					   NULL);
+		/*
+		 * Wait for the device to ack the reset requests.
+		 *
+		 * On some platforms, e.g. Jasperlake, we see that the
+		 * engine register state is not cleared until shortly after
+		 * GDRST reports completion, causing a failure as we try
+		 * to immediately resume while the internal state is still
+		 * in flux. If we immediately repeat the reset, the second
+		 * reset appears to serialise with the first, and since
+		 * it is a no-op, the registers should retain their reset
+		 * value. However, there is still a concern that upon
+		 * leaving the second reset, the internal engine state
+		 * is still in flux and not ready for resuming.
+		 */
+		err = __intel_wait_for_register_fw(uncore, GEN6_GDRST,
+						   hw_domain_mask, 0,
+						   2000, 0,
+						   NULL);
+	} while (err == 0 && --loops);
 	if (err)
 		DRM_DEBUG_DRIVER("Wait for 0x%08x engines reset failed\n",
 				 hw_domain_mask);
 
+	/*
+	 * As we have observed that the engine state is still volatile
+	 * after GDRST is acked, impose a small delay to let everything settle.
+	 */
+	udelay(50);
+
 	return err;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_ringbuffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_ringbuffer.c
@@ -1208,7 +1208,7 @@
 	if (unlikely(ret))
 		goto err_unpin;
 
-	if (i915_vma_is_map_and_fenceable(vma))
+	if (i915_vma_is_map_and_fenceable(vma) && !HAS_LLC(vma->vm->i915))
 		addr = (void __force *)i915_vma_pin_iomap(vma);
 	else
 		addr = i915_gem_object_pin_map(vma->obj,
@@ -1220,9 +1220,10 @@
 
 	i915_vma_make_unshrinkable(vma);
 
-	GEM_BUG_ON(ring->vaddr);
-	ring->vaddr = addr;
+	/* Discard any unused bytes beyond that submitted to hw. */
+	intel_ring_reset(ring, ring->emit);
 
+	ring->vaddr = addr;
 	return 0;
 
 err_ring:
@@ -1248,30 +1249,25 @@
 	if (!atomic_dec_and_test(&ring->pin_count))
 		return;
 
-	/* Discard any unused bytes beyond that submitted to hw. */
-	intel_ring_reset(ring, ring->emit);
-
 	i915_vma_unset_ggtt_write(vma);
-	if (i915_vma_is_map_and_fenceable(vma))
+	if (i915_vma_is_map_and_fenceable(vma) && !HAS_LLC(vma->vm->i915))
 		i915_vma_unpin_iomap(vma);
 	else
 		i915_gem_object_unpin_map(vma->obj);
 
-	GEM_BUG_ON(!ring->vaddr);
-	ring->vaddr = NULL;
-
-	i915_vma_unpin(vma);
 	i915_vma_make_purgeable(vma);
+	i915_vma_unpin(vma);
 }
 
 static struct i915_vma *create_ring_vma(struct i915_ggtt *ggtt, int size)
 {
 	struct i915_address_space *vm = &ggtt->vm;
 	struct drm_i915_private *i915 = vm->i915;
-	struct drm_i915_gem_object *obj;
+	struct drm_i915_gem_object *obj = NULL;
 	struct i915_vma *vma;
 
-	obj = i915_gem_object_create_stolen(i915, size);
+	if (!HAS_LLC(i915))
+		obj = i915_gem_object_create_stolen(i915, size);
 	if (!obj)
 		obj = i915_gem_object_create_internal(i915, size);
 	if (IS_ERR(obj))
@@ -1310,8 +1306,9 @@
 		return ERR_PTR(-ENOMEM);
 
 	kref_init(&ring->ref);
-
 	ring->size = size;
+	ring->wrap = BITS_PER_TYPE(ring->size) - ilog2(size);
+
 	/* Workaround an erratum on the i830 which causes a hang if
 	 * the TAIL pointer points to within the last 2 cachelines
 	 * of the buffer.
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_timeline.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_timeline.c
@@ -282,6 +282,7 @@
 {
 	GEM_BUG_ON(atomic_read(&timeline->pin_count));
 	GEM_BUG_ON(!list_empty(&timeline->requests));
+	GEM_BUG_ON(timeline->retire);
 
 	if (timeline->hwsp_cacheline)
 		cacheline_free(timeline->hwsp_cacheline);
@@ -289,6 +290,14 @@
 		i915_gem_object_unpin_map(timeline->hwsp_ggtt->obj);
 
 	i915_vma_put(timeline->hwsp_ggtt);
+
+	/*
+	 * A small race exists between intel_gt_retire_requests_timeout and
+	 * intel_timeline_exit which could result in the syncmap not getting
+	 * free'd. Rather than work to hard to seal this race, simply cleanup
+	 * the syncmap on fini.
+	 */
+	i915_syncmap_free(&timeline->sync);
 }
 
 struct intel_timeline *
@@ -339,15 +348,33 @@
 	struct intel_gt_timelines *timelines = &tl->gt->timelines;
 	unsigned long flags;
 
+	/*
+	 * Pretend we are serialised by the timeline->mutex.
+	 *
+	 * While generally true, there are a few exceptions to the rule
+	 * for the engine->kernel_context being used to manage power
+	 * transitions. As the engine_park may be called from under any
+	 * timeline, it uses the power mutex as a global serialisation
+	 * lock to prevent any other request entering its timeline.
+	 *
+	 * The rule is generally tl->mutex, otherwise engine->wakeref.mutex.
+	 *
+	 * However, intel_gt_retire_request() does not know which engine
+	 * it is retiring along and so cannot partake in the engine-pm
+	 * barrier, and there we use the tl->active_count as a means to
+	 * pin the timeline in the active_list while the locks are dropped.
+	 * Ergo, as that is outside of the engine-pm barrier, we need to
+	 * use atomic to manipulate tl->active_count.
+	 */
 	lockdep_assert_held(&tl->mutex);
-
 	GEM_BUG_ON(!atomic_read(&tl->pin_count));
-	if (tl->active_count++)
+
+	if (atomic_add_unless(&tl->active_count, 1, 0))
 		return;
-	GEM_BUG_ON(!tl->active_count); /* overflow? */
 
 	spin_lock_irqsave(&timelines->lock, flags);
-	list_add(&tl->link, &timelines->active_list);
+	if (!atomic_fetch_inc(&tl->active_count))
+		list_add_tail(&tl->link, &timelines->active_list);
 	spin_unlock_irqrestore(&timelines->lock, flags);
 }
 
@@ -356,14 +383,16 @@
 	struct intel_gt_timelines *timelines = &tl->gt->timelines;
 	unsigned long flags;
 
+	/* See intel_timeline_enter() */
 	lockdep_assert_held(&tl->mutex);
 
-	GEM_BUG_ON(!tl->active_count);
-	if (--tl->active_count)
+	GEM_BUG_ON(!atomic_read(&tl->active_count));
+	if (atomic_add_unless(&tl->active_count, -1, 1))
 		return;
 
 	spin_lock_irqsave(&timelines->lock, flags);
-	list_del(&tl->link);
+	if (atomic_dec_and_test(&tl->active_count))
+		list_del(&tl->link);
 	spin_unlock_irqrestore(&timelines->lock, flags);
 
 	/*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gt/intel_timeline_types.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gt/intel_timeline_types.h
@@ -42,7 +42,7 @@
 	 * from the intel_context caller plus internal atomicity.
 	 */
 	atomic_t pin_count;
-	unsigned int active_count;
+	atomic_t active_count;
 
 	const u32 *hwsp_seqno;
 	struct i915_vma *hwsp_ggtt;
@@ -65,6 +65,9 @@
 	 */
 	struct i915_active_request last_request;
 
+	/** A chain of completed timelines ready for early retirement. */
+	struct intel_timeline *retire;
+
 	/**
 	 * We track the most recent seqno that we wait on in every context so
 	 * that we only have to emit a new await and dependency on a more
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -963,18 +963,6 @@
 	int i, ret = 0;
 	int cmd_len = cmd_length(s);
 	struct intel_gvt *gvt = s->vgpu->gvt;
-	u32 valid_len = CMD_LEN(1);
-
-	/*
-	 * Official intel docs are somewhat sloppy , check the definition of
-	 * MI_LOAD_REGISTER_IMM.
-	 */
-	#define MAX_VALID_LEN 127
-	if ((cmd_len < valid_len) || (cmd_len > MAX_VALID_LEN)) {
-		gvt_err("len is not valid:  len=%u  valid_len=%u\n",
-			cmd_len, valid_len);
-		return -EFAULT;
-	}
 
 	for (i = 1; i < cmd_len; i += 2) {
 		if (IS_BROADWELL(gvt->dev_priv) && s->ring_id != RCS0) {
@@ -1597,9 +1585,9 @@
 	if (!(cmd_val(s, 0) & (1 << 22)))
 		return ret;
 
-	/* check if QWORD */
-	if (DWORD_FIELD(0, 20, 19) == 1)
-		valid_len += 8;
+	/* check inline data */
+	if (cmd_val(s, 0) & BIT(18))
+		valid_len = CMD_LEN(9);
 	ret = gvt_check_valid_cmd_length(cmd_length(s),
 			valid_len);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/display.c
@@ -172,21 +172,176 @@
 	int pipe;
 
 	if (IS_BROXTON(dev_priv)) {
+		enum transcoder trans;
+		enum port port;
+
+		/* Clear PIPE, DDI, PHY, HPD before setting new */
 		vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) &= ~(BXT_DE_PORT_HP_DDIA |
 			BXT_DE_PORT_HP_DDIB |
 			BXT_DE_PORT_HP_DDIC);
 
+		for_each_pipe(dev_priv, pipe) {
+			vgpu_vreg_t(vgpu, PIPECONF(pipe)) &=
+				~(PIPECONF_ENABLE | I965_PIPECONF_ACTIVE);
+			vgpu_vreg_t(vgpu, DSPCNTR(pipe)) &= ~DISPLAY_PLANE_ENABLE;
+			vgpu_vreg_t(vgpu, SPRCTL(pipe)) &= ~SPRITE_ENABLE;
+			vgpu_vreg_t(vgpu, CURCNTR(pipe)) &= ~MCURSOR_MODE;
+			vgpu_vreg_t(vgpu, CURCNTR(pipe)) |= MCURSOR_MODE_DISABLE;
+		}
+
+		for (trans = TRANSCODER_A; trans <= TRANSCODER_EDP; trans++) {
+			vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(trans)) &=
+				~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
+				  TRANS_DDI_PORT_MASK | TRANS_DDI_FUNC_ENABLE);
+		}
+		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
+			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
+			  TRANS_DDI_PORT_MASK);
+
+		for (port = PORT_A; port <= PORT_C; port++) {
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(port)) &=
+				~BXT_PHY_LANE_ENABLED;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(port)) |=
+				(BXT_PHY_CMNLANE_POWERDOWN_ACK |
+				 BXT_PHY_LANE_POWERDOWN_ACK);
+
+			vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(port)) &=
+				~(PORT_PLL_POWER_STATE | PORT_PLL_POWER_ENABLE |
+				  PORT_PLL_REF_SEL | PORT_PLL_LOCK |
+				  PORT_PLL_ENABLE);
+
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(port)) &=
+				~(DDI_INIT_DISPLAY_DETECTED |
+				  DDI_BUF_CTL_ENABLE);
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(port)) |= DDI_BUF_IS_IDLE;
+		}
+		vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &=
+			~(PORTA_HOTPLUG_ENABLE | PORTA_HOTPLUG_STATUS_MASK);
+		vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &=
+			~(PORTB_HOTPLUG_ENABLE | PORTB_HOTPLUG_STATUS_MASK);
+		vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &=
+			~(PORTC_HOTPLUG_ENABLE | PORTC_HOTPLUG_STATUS_MASK);
+		/* No hpd_invert set in vgpu vbt, need to clear invert mask */
+		vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &= ~BXT_DDI_HPD_INVERT_MASK;
+		vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) &= ~BXT_DE_PORT_HOTPLUG_MASK;
+
+		vgpu_vreg_t(vgpu, BXT_P_CR_GT_DISP_PWRON) &= ~(BIT(0) | BIT(1));
+		vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) &=
+			~PHY_POWER_GOOD;
+		vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) &=
+			~PHY_POWER_GOOD;
+		vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY0)) &= ~BIT(30);
+		vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY1)) &= ~BIT(30);
+
+		vgpu_vreg_t(vgpu, SFUSE_STRAP) &= ~SFUSE_STRAP_DDIB_DETECTED;
+		vgpu_vreg_t(vgpu, SFUSE_STRAP) &= ~SFUSE_STRAP_DDIC_DETECTED;
+
+		/*
+		 * Only 1 PIPE enabled in current vGPU display and PIPE_A is
+		 *  tied to TRANSCODER_A in HW, so it's safe to assume PIPE_A,
+		 *   TRANSCODER_A can be enabled. PORT_x depends on the input of
+		 *   setup_virtual_dp_monitor.
+		 */
+		vgpu_vreg_t(vgpu, PIPECONF(PIPE_A)) |= PIPECONF_ENABLE;
+		vgpu_vreg_t(vgpu, PIPECONF(PIPE_A)) |= I965_PIPECONF_ACTIVE;
+
+		/*
+		 * Golden M/N are calculated based on:
+		 *   24 bpp, 4 lanes, 154000 pixel clk (from virtual EDID),
+		 *   DP link clk 1620 MHz and non-constant_n.
+		 * TODO: calculate DP link symbol clk and stream clk m/n.
+		 */
+		vgpu_vreg_t(vgpu, PIPE_DATA_M1(TRANSCODER_A)) = 63 << TU_SIZE_SHIFT;
+		vgpu_vreg_t(vgpu, PIPE_DATA_M1(TRANSCODER_A)) |= 0x5b425e;
+		vgpu_vreg_t(vgpu, PIPE_DATA_N1(TRANSCODER_A)) = 0x800000;
+		vgpu_vreg_t(vgpu, PIPE_LINK_M1(TRANSCODER_A)) = 0x3cd6e;
+		vgpu_vreg_t(vgpu, PIPE_LINK_N1(TRANSCODER_A)) = 0x80000;
+
+		/* Enable per-DDI/PORT vreg */
 		if (intel_vgpu_has_monitor_on_port(vgpu, PORT_A)) {
+			vgpu_vreg_t(vgpu, BXT_P_CR_GT_DISP_PWRON) |= BIT(1);
+			vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) |=
+				PHY_POWER_GOOD;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY1)) |=
+				BIT(30);
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_A)) |=
+				BXT_PHY_LANE_ENABLED;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_A)) &=
+				~(BXT_PHY_CMNLANE_POWERDOWN_ACK |
+				  BXT_PHY_LANE_POWERDOWN_ACK);
+			vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(PORT_A)) |=
+				(PORT_PLL_POWER_STATE | PORT_PLL_POWER_ENABLE |
+				 PORT_PLL_REF_SEL | PORT_PLL_LOCK |
+				 PORT_PLL_ENABLE);
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_A)) |=
+				(DDI_BUF_CTL_ENABLE | DDI_INIT_DISPLAY_DETECTED);
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_A)) &=
+				~DDI_BUF_IS_IDLE;
+			vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_EDP)) |=
+				(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
+				 TRANS_DDI_FUNC_ENABLE);
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
+				PORTA_HOTPLUG_ENABLE;
 			vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
 				BXT_DE_PORT_HP_DDIA;
 		}
 
 		if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
+			vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIB_DETECTED;
+			vgpu_vreg_t(vgpu, BXT_P_CR_GT_DISP_PWRON) |= BIT(0);
+			vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) |=
+				PHY_POWER_GOOD;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY0)) |=
+				BIT(30);
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) |=
+				BXT_PHY_LANE_ENABLED;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) &=
+				~(BXT_PHY_CMNLANE_POWERDOWN_ACK |
+				  BXT_PHY_LANE_POWERDOWN_ACK);
+			vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(PORT_B)) |=
+				(PORT_PLL_POWER_STATE | PORT_PLL_POWER_ENABLE |
+				 PORT_PLL_REF_SEL | PORT_PLL_LOCK |
+				 PORT_PLL_ENABLE);
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) |=
+				DDI_BUF_CTL_ENABLE;
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) &=
+				~DDI_BUF_IS_IDLE;
+			vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
+				(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
+				 (PORT_B << TRANS_DDI_PORT_SHIFT) |
+				 TRANS_DDI_FUNC_ENABLE);
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
+				PORTB_HOTPLUG_ENABLE;
 			vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
 				BXT_DE_PORT_HP_DDIB;
 		}
 
 		if (intel_vgpu_has_monitor_on_port(vgpu, PORT_C)) {
+			vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIC_DETECTED;
+			vgpu_vreg_t(vgpu, BXT_P_CR_GT_DISP_PWRON) |= BIT(0);
+			vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) |=
+				PHY_POWER_GOOD;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL_FAMILY(DPIO_PHY0)) |=
+				BIT(30);
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_C)) |=
+				BXT_PHY_LANE_ENABLED;
+			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_C)) &=
+				~(BXT_PHY_CMNLANE_POWERDOWN_ACK |
+				  BXT_PHY_LANE_POWERDOWN_ACK);
+			vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(PORT_C)) |=
+				(PORT_PLL_POWER_STATE | PORT_PLL_POWER_ENABLE |
+				 PORT_PLL_REF_SEL | PORT_PLL_LOCK |
+				 PORT_PLL_ENABLE);
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_C)) |=
+				DDI_BUF_CTL_ENABLE;
+			vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_C)) &=
+				~DDI_BUF_IS_IDLE;
+			vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) |=
+				(TRANS_DDI_BPC_8 | TRANS_DDI_MODE_SELECT_DP_SST |
+				 (PORT_B << TRANS_DDI_PORT_SHIFT) |
+				 TRANS_DDI_FUNC_ENABLE);
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
+				PORTC_HOTPLUG_ENABLE;
 			vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
 				BXT_DE_PORT_HP_DDIC;
 		}
@@ -207,14 +362,41 @@
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG0) |
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG1) |
 				SKL_FUSE_PG_DIST_STATUS(SKL_PG2);
-		vgpu_vreg_t(vgpu, LCPLL1_CTL) |=
-				LCPLL_PLL_ENABLE |
-				LCPLL_PLL_LOCK;
-		vgpu_vreg_t(vgpu, LCPLL2_CTL) |= LCPLL_PLL_ENABLE;
-
+		/*
+		 * Only 1 PIPE enabled in current vGPU display and PIPE_A is
+		 *  tied to TRANSCODER_A in HW, so it's safe to assume PIPE_A,
+		 *   TRANSCODER_A can be enabled. PORT_x depends on the input of
+		 *   setup_virtual_dp_monitor, we can bind DPLL0 to any PORT_x
+		 *   so we fixed to DPLL0 here.
+		 * Setup DPLL0: DP link clk 1620 MHz, non SSC, DP Mode
+		 */
+		vgpu_vreg_t(vgpu, DPLL_CTRL1) =
+			DPLL_CTRL1_OVERRIDE(DPLL_ID_SKL_DPLL0);
+		vgpu_vreg_t(vgpu, DPLL_CTRL1) |=
+			DPLL_CTRL1_LINK_RATE(DPLL_CTRL1_LINK_RATE_1620, DPLL_ID_SKL_DPLL0);
+		vgpu_vreg_t(vgpu, LCPLL1_CTL) =
+			LCPLL_PLL_ENABLE | LCPLL_PLL_LOCK;
+		vgpu_vreg_t(vgpu, DPLL_STATUS) = DPLL_LOCK(DPLL_ID_SKL_DPLL0);
+		/*
+		 * Golden M/N are calculated based on:
+		 *   24 bpp, 4 lanes, 154000 pixel clk (from virtual EDID),
+		 *   DP link clk 1620 MHz and non-constant_n.
+		 * TODO: calculate DP link symbol clk and stream clk m/n.
+		 */
+		vgpu_vreg_t(vgpu, PIPE_DATA_M1(TRANSCODER_A)) = 63 << TU_SIZE_SHIFT;
+		vgpu_vreg_t(vgpu, PIPE_DATA_M1(TRANSCODER_A)) |= 0x5b425e;
+		vgpu_vreg_t(vgpu, PIPE_DATA_N1(TRANSCODER_A)) = 0x800000;
+		vgpu_vreg_t(vgpu, PIPE_LINK_M1(TRANSCODER_A)) = 0x3cd6e;
+		vgpu_vreg_t(vgpu, PIPE_LINK_N1(TRANSCODER_A)) = 0x80000;
 	}
 
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) &=
+			~DPLL_CTRL2_DDI_CLK_OFF(PORT_B);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_B);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_B);
 		vgpu_vreg_t(vgpu, SFUSE_STRAP) |= SFUSE_STRAP_DDIB_DETECTED;
 		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
@@ -235,6 +417,12 @@
 	}
 
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_C)) {
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) &=
+			~DPLL_CTRL2_DDI_CLK_OFF(PORT_C);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_C);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_C);
 		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTC_HOTPLUG_CPT;
 		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
@@ -255,6 +443,12 @@
 	}
 
 	if (intel_vgpu_has_monitor_on_port(vgpu, PORT_D)) {
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) &=
+			~DPLL_CTRL2_DDI_CLK_OFF(PORT_D);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_D);
+		vgpu_vreg_t(vgpu, DPLL_CTRL2) |=
+			DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_D);
 		vgpu_vreg_t(vgpu, SDEISR) |= SDE_PORTD_HOTPLUG_CPT;
 		vgpu_vreg_t(vgpu, TRANS_DDI_FUNC_CTL(TRANSCODER_A)) &=
 			~(TRANS_DDI_BPC_MASK | TRANS_DDI_MODE_SELECT_MASK |
@@ -457,7 +651,8 @@
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
 
 	/* TODO: add more platforms support */
-	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
+	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv) ||
+		IS_COFFEELAKE(dev_priv)) {
 		if (connected) {
 			vgpu_vreg_t(vgpu, SFUSE_STRAP) |=
 				SFUSE_STRAP_DDID_DETECTED;
@@ -471,6 +666,63 @@
 		vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
 				PORTD_HOTPLUG_STATUS_MASK;
 		intel_vgpu_trigger_virtual_event(vgpu, DP_D_HOTPLUG);
+	} else if (IS_BROXTON(dev_priv)) {
+		if (intel_vgpu_has_monitor_on_port(vgpu, PORT_A)) {
+			if (connected) {
+				vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
+					BXT_DE_PORT_HP_DDIA;
+			} else {
+				vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) &=
+					~BXT_DE_PORT_HP_DDIA;
+			}
+			vgpu_vreg_t(vgpu, GEN8_DE_PORT_IIR) |=
+				BXT_DE_PORT_HP_DDIA;
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &=
+				~PORTA_HOTPLUG_STATUS_MASK;
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
+				PORTA_HOTPLUG_LONG_DETECT;
+			intel_vgpu_trigger_virtual_event(vgpu, DP_A_HOTPLUG);
+		}
+		if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
+			if (connected) {
+				vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
+					BXT_DE_PORT_HP_DDIB;
+				vgpu_vreg_t(vgpu, SFUSE_STRAP) |=
+					SFUSE_STRAP_DDIB_DETECTED;
+			} else {
+				vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) &=
+					~BXT_DE_PORT_HP_DDIB;
+				vgpu_vreg_t(vgpu, SFUSE_STRAP) &=
+					~SFUSE_STRAP_DDIB_DETECTED;
+			}
+			vgpu_vreg_t(vgpu, GEN8_DE_PORT_IIR) |=
+				BXT_DE_PORT_HP_DDIB;
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &=
+				~PORTB_HOTPLUG_STATUS_MASK;
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
+				PORTB_HOTPLUG_LONG_DETECT;
+			intel_vgpu_trigger_virtual_event(vgpu, DP_B_HOTPLUG);
+		}
+		if (intel_vgpu_has_monitor_on_port(vgpu, PORT_C)) {
+			if (connected) {
+				vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) |=
+					BXT_DE_PORT_HP_DDIC;
+				vgpu_vreg_t(vgpu, SFUSE_STRAP) |=
+					SFUSE_STRAP_DDIC_DETECTED;
+			} else {
+				vgpu_vreg_t(vgpu, GEN8_DE_PORT_ISR) &=
+					~BXT_DE_PORT_HP_DDIC;
+				vgpu_vreg_t(vgpu, SFUSE_STRAP) &=
+					~SFUSE_STRAP_DDIC_DETECTED;
+			}
+			vgpu_vreg_t(vgpu, GEN8_DE_PORT_IIR) |=
+				BXT_DE_PORT_HP_DDIC;
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) &=
+				~PORTC_HOTPLUG_STATUS_MASK;
+			vgpu_vreg_t(vgpu, PCH_PORT_HOTPLUG) |=
+				PORTC_HOTPLUG_LONG_DETECT;
+			intel_vgpu_trigger_virtual_event(vgpu, DP_C_HOTPLUG);
+		}
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/dmabuf.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/dmabuf.c
@@ -96,12 +96,12 @@
 			dmabuf_obj = container_of(pos,
 					struct intel_vgpu_dmabuf_obj, list);
 			if (dmabuf_obj == obj) {
+				list_del(pos);
 				intel_gvt_hypervisor_put_vfio_device(vgpu);
 				idr_remove(&vgpu->object_idr,
 					   dmabuf_obj->dmabuf_id);
 				kfree(dmabuf_obj->info);
 				kfree(dmabuf_obj);
-				list_del(pos);
 				break;
 			}
 		}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/gtt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/gtt.c
@@ -1186,10 +1186,8 @@
 	for_each_shadow_entry(sub_spt, &sub_se, sub_index) {
 		ret = intel_gvt_hypervisor_dma_map_guest_page(vgpu,
 				start_gfn + sub_index, PAGE_SIZE, &dma_addr);
-		if (ret) {
-			ppgtt_invalidate_spt(spt);
-			return ret;
-		}
+		if (ret)
+			goto err;
 		sub_se.val64 = se->val64;
 
 		/* Copy the PAT field from PDE. */
@@ -1208,6 +1206,17 @@
 	ops->set_pfn(se, sub_spt->shadow_page.mfn);
 	ppgtt_set_shadow_entry(spt, se, index);
 	return 0;
+err:
+	/* Cancel the existing addess mappings of DMA addr. */
+	for_each_present_shadow_entry(sub_spt, &sub_se, sub_index) {
+		gvt_vdbg_mm("invalidate 4K entry\n");
+		ppgtt_invalidate_pte(sub_spt, &sub_se);
+	}
+	/* Release the new allocated spt. */
+	trace_spt_change(sub_spt->vgpu->id, "release", sub_spt,
+		sub_spt->guest_page.gfn, sub_spt->shadow_page.type);
+	ppgtt_free_spt(sub_spt);
+	return ret;
 }
 
 static int split_64KB_gtt_entry(struct intel_vgpu *vgpu,
@@ -1956,7 +1965,11 @@
 
 	if (mm->type == INTEL_GVT_MM_PPGTT) {
 		list_del(&mm->ppgtt_mm.list);
+
+		mutex_lock(&mm->vgpu->gvt->gtt.ppgtt_mm_lock);
 		list_del(&mm->ppgtt_mm.lru_list);
+		mutex_unlock(&mm->vgpu->gvt->gtt.ppgtt_mm_lock);
+
 		invalidate_ppgtt_mm(mm);
 	} else {
 		vfree(mm->ggtt_mm.virtual_ggtt);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/gvt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/gvt.c
@@ -128,7 +128,7 @@
 	return true;
 }
 
-static bool intel_gvt_init_vgpu_type_groups(struct intel_gvt *gvt)
+static int intel_gvt_init_vgpu_type_groups(struct intel_gvt *gvt)
 {
 	int i, j;
 	struct intel_vgpu_type *type;
@@ -146,7 +146,7 @@
 		gvt_vgpu_type_groups[i] = group;
 	}
 
-	return true;
+	return 0;
 
 unwind:
 	for (j = 0; j < i; j++) {
@@ -154,7 +154,7 @@
 		kfree(group);
 	}
 
-	return false;
+	return -ENOMEM;
 }
 
 static void intel_gvt_cleanup_vgpu_type_groups(struct intel_gvt *gvt)
@@ -362,7 +362,7 @@
 		goto out_clean_thread;
 
 	ret = intel_gvt_init_vgpu_type_groups(gvt);
-	if (ret == false) {
+	if (ret) {
 		gvt_err("failed to init vgpu type groups: %d\n", ret);
 		goto out_clean_types;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/handlers.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/handlers.c
@@ -654,7 +654,7 @@
 	else if (FDI_RX_IMR_TO_PIPE(offset) != INVALID_INDEX)
 		index = FDI_RX_IMR_TO_PIPE(offset);
 	else {
-		gvt_vgpu_err("Unsupport registers %x\n", offset);
+		gvt_vgpu_err("Unsupported registers %x\n", offset);
 		return -EINVAL;
 	}
 
@@ -1632,6 +1632,34 @@
 	return 0;
 }
 
+/**
+ * FixMe:
+ * If guest fills non-priv batch buffer on ApolloLake/Broxton as Mesa i965 did:
+ * 717e7539124d (i965: Use a WC map and memcpy for the batch instead of pwrite.)
+ * Due to the missing flush of bb filled by VM vCPU, host GPU hangs on executing
+ * these MI_BATCH_BUFFER.
+ * Temporarily workaround this by setting SNOOP bit for PAT3 used by PPGTT
+ * PML4 PTE: PAT(0) PCD(1) PWT(1).
+ * The performance is still expected to be low, will need further improvement.
+ */
+static int bxt_ppat_low_write(struct intel_vgpu *vgpu, unsigned int offset,
+			      void *p_data, unsigned int bytes)
+{
+	u64 pat =
+		GEN8_PPAT(0, CHV_PPAT_SNOOP) |
+		GEN8_PPAT(1, 0) |
+		GEN8_PPAT(2, 0) |
+		GEN8_PPAT(3, CHV_PPAT_SNOOP) |
+		GEN8_PPAT(4, CHV_PPAT_SNOOP) |
+		GEN8_PPAT(5, CHV_PPAT_SNOOP) |
+		GEN8_PPAT(6, CHV_PPAT_SNOOP) |
+		GEN8_PPAT(7, CHV_PPAT_SNOOP);
+
+	vgpu_vreg(vgpu, offset) = lower_32_bits(pat);
+
+	return 0;
+}
+
 static int mmio_read_from_hw(struct intel_vgpu *vgpu,
 		unsigned int offset, void *p_data, unsigned int bytes)
 {
@@ -2778,7 +2806,7 @@
 
 	MMIO_DH(GEN6_PCODE_MAILBOX, D_BDW_PLUS, NULL, mailbox_write);
 
-	MMIO_D(GEN8_PRIVATE_PAT_LO, D_BDW_PLUS);
+	MMIO_D(GEN8_PRIVATE_PAT_LO, D_BDW_PLUS & ~D_BXT);
 	MMIO_D(GEN8_PRIVATE_PAT_HI, D_BDW_PLUS);
 
 	MMIO_D(GAMTARBMODE, D_BDW_PLUS);
@@ -3103,8 +3131,8 @@
 	MMIO_DFH(GEN9_WM_CHICKEN3, D_SKL_PLUS, F_MODE_MASK | F_CMD_ACCESS,
 		 NULL, NULL);
 
-	MMIO_D(GAMT_CHKN_BIT_REG, D_KBL);
-	MMIO_D(GEN9_CTX_PREEMPT_REG, D_KBL | D_SKL);
+	MMIO_D(GAMT_CHKN_BIT_REG, D_KBL | D_CFL);
+	MMIO_D(GEN9_CTX_PREEMPT_REG, D_SKL_PLUS & ~D_BXT);
 
 	return 0;
 }
@@ -3278,9 +3306,17 @@
 	MMIO_D(GEN8_PUSHBUS_SHIFT, D_BXT);
 	MMIO_D(GEN6_GFXPAUSE, D_BXT);
 	MMIO_DFH(GEN8_L3SQCREG1, D_BXT, F_CMD_ACCESS, NULL, NULL);
+	MMIO_DFH(GEN8_L3CNTLREG, D_BXT, F_CMD_ACCESS, NULL, NULL);
+	MMIO_DFH(_MMIO(0x20D8), D_BXT, F_CMD_ACCESS, NULL, NULL);
+	MMIO_F(HSW_CS_GPR(0), 0x40, F_CMD_ACCESS, 0, 0, D_BXT, NULL, NULL);
+	MMIO_F(_MMIO(0x12600), 0x40, F_CMD_ACCESS, 0, 0, D_BXT, NULL, NULL);
+	MMIO_F(BCS_GPR(0), 0x40, F_CMD_ACCESS, 0, 0, D_BXT, NULL, NULL);
+	MMIO_F(_MMIO(0x1a600), 0x40, F_CMD_ACCESS, 0, 0, D_BXT, NULL, NULL);
 
 	MMIO_DFH(GEN9_CTX_PREEMPT_REG, D_BXT, F_CMD_ACCESS, NULL, NULL);
 
+	MMIO_DH(GEN8_PRIVATE_PAT_LO, D_BXT, NULL, bxt_ppat_low_write);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/mmio.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/mmio.c
@@ -271,6 +271,11 @@
 			vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_C)) |=
 				    BXT_PHY_CMNLANE_POWERDOWN_ACK |
 				    BXT_PHY_LANE_POWERDOWN_ACK;
+			vgpu_vreg_t(vgpu, SKL_FUSE_STATUS) |=
+				SKL_FUSE_DOWNLOAD_STATUS |
+				SKL_FUSE_PG_DIST_STATUS(SKL_PG0) |
+				SKL_FUSE_PG_DIST_STATUS(SKL_PG1) |
+				SKL_FUSE_PG_DIST_STATUS(SKL_PG2);
 		}
 	} else {
 #define GVT_GEN8_MMIO_RESET_OFFSET		(0x44200)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/scheduler.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -374,7 +374,11 @@
 		for (i = 0; i < GVT_RING_CTX_NR_PDPS; i++) {
 			struct i915_page_directory * const pd =
 				i915_pd_entry(ppgtt->pd, i);
-
+			/* skip now as current i915 ppgtt alloc won't allocate
+			   top level pdp for non 4-level table, won't impact
+			   shadow ppgtt. */
+			if (!pd)
+				break;
 			px_dma(pd) = mm->ppgtt_mm.shadow_pdps[i];
 		}
 	}
@@ -628,6 +632,7 @@
 
 	if (workload->shadow_mm->type != INTEL_GVT_MM_PPGTT ||
 	    !workload->shadow_mm->ppgtt_mm.shadowed) {
+		intel_vgpu_unpin_mm(workload->shadow_mm);
 		gvt_vgpu_err("workload shadow ppgtt isn't ready\n");
 		return -EINVAL;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/gvt/vgpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/gvt/vgpu.c
@@ -272,10 +272,17 @@
 {
 	struct intel_gvt *gvt = vgpu->gvt;
 
-	mutex_lock(&vgpu->vgpu_lock);
-
 	WARN(vgpu->active, "vGPU is still active!\n");
 
+	/*
+	 * remove idr first so later clean can judge if need to stop
+	 * service if no active vgpu.
+	 */
+	mutex_lock(&gvt->lock);
+	idr_remove(&gvt->vgpu_idr, vgpu->id);
+	mutex_unlock(&gvt->lock);
+
+	mutex_lock(&vgpu->vgpu_lock);
 	intel_gvt_debugfs_remove_vgpu(vgpu);
 	intel_vgpu_clean_sched_policy(vgpu);
 	intel_vgpu_clean_submission(vgpu);
@@ -290,7 +297,6 @@
 	mutex_unlock(&vgpu->vgpu_lock);
 
 	mutex_lock(&gvt->lock);
-	idr_remove(&gvt->vgpu_idr, vgpu->id);
 	if (idr_is_empty(&gvt->vgpu_idr))
 		intel_gvt_clean_irq(gvt);
 	intel_gvt_update_vgpu_types(gvt);
@@ -426,8 +432,9 @@
 	if (ret)
 		goto out_clean_sched_policy;
 
-	/*TODO: add more platforms support */
-	if (IS_SKYLAKE(gvt->dev_priv) || IS_KABYLAKE(gvt->dev_priv))
+	if (IS_BROADWELL(gvt->dev_priv) || IS_BROXTON(gvt->dev_priv))
+		ret = intel_gvt_hypervisor_set_edid(vgpu, PORT_B);
+	else
 		ret = intel_gvt_hypervisor_set_edid(vgpu, PORT_D);
 	if (ret)
 		goto out_clean_sched_policy;
@@ -560,9 +567,9 @@
 
 		intel_vgpu_reset_mmio(vgpu, dmlr);
 		populate_pvinfo_page(vgpu);
-		intel_vgpu_reset_display(vgpu);
 
 		if (dmlr) {
+			intel_vgpu_reset_display(vgpu);
 			intel_vgpu_reset_cfg_space(vgpu);
 			/* only reset the failsafe mode when dmlr reset */
 			vgpu->failsafe = false;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_active.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_active.c
@@ -121,7 +121,7 @@
 #endif
 
 static void
-__active_retire(struct i915_active *ref)
+__active_retire(struct i915_active *ref, bool lock)
 {
 	struct active_node *it, *n;
 	struct rb_root root;
@@ -138,7 +138,8 @@
 		retire = true;
 	}
 
-	mutex_unlock(&ref->mutex);
+	if (likely(lock))
+		mutex_unlock(&ref->mutex);
 	if (!retire)
 		return;
 
@@ -153,21 +154,28 @@
 }
 
 static void
-active_retire(struct i915_active *ref)
+active_retire(struct i915_active *ref, bool lock)
 {
 	GEM_BUG_ON(!atomic_read(&ref->count));
 	if (atomic_add_unless(&ref->count, -1, 1))
 		return;
 
 	/* One active may be flushed from inside the acquire of another */
-	mutex_lock_nested(&ref->mutex, SINGLE_DEPTH_NESTING);
-	__active_retire(ref);
+	if (likely(lock))
+		mutex_lock_nested(&ref->mutex, SINGLE_DEPTH_NESTING);
+	__active_retire(ref, lock);
 }
 
 static void
 node_retire(struct i915_active_request *base, struct i915_request *rq)
 {
-	active_retire(node_from_active(base)->ref);
+	active_retire(node_from_active(base)->ref, true);
+}
+
+static void
+node_retire_nolock(struct i915_active_request *base, struct i915_request *rq)
+{
+	active_retire(node_from_active(base)->ref, false);
 }
 
 static struct i915_active_request *
@@ -364,7 +372,7 @@
 void i915_active_release(struct i915_active *ref)
 {
 	debug_active_assert(ref);
-	active_retire(ref);
+	active_retire(ref, true);
 }
 
 static void __active_ungrab(struct i915_active *ref)
@@ -391,7 +399,7 @@
 {
 	GEM_BUG_ON(!test_bit(I915_ACTIVE_GRAB_BIT, &ref->flags));
 
-	active_retire(ref);
+	active_retire(ref, true);
 	__active_ungrab(ref);
 }
 
@@ -421,12 +429,13 @@
 			break;
 		}
 
-		err = i915_active_request_retire(&it->base, BKL(ref));
+		err = i915_active_request_retire(&it->base, BKL(ref),
+						 node_retire_nolock);
 		if (err)
 			break;
 	}
 
-	__active_retire(ref);
+	__active_retire(ref, true);
 	if (err)
 		return err;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_active.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_active.h
@@ -309,7 +309,7 @@
  */
 static inline int __must_check
 i915_active_request_retire(struct i915_active_request *active,
-			   struct mutex *mutex)
+			   struct mutex *mutex, i915_active_retire_fn retire)
 {
 	struct i915_request *request;
 	long ret;
@@ -327,7 +327,7 @@
 	list_del_init(&active->link);
 	RCU_INIT_POINTER(active->request, NULL);
 
-	active->retire(active, request);
+	retire(active, request);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_cmd_parser.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_cmd_parser.c
@@ -572,6 +572,9 @@
 #define REG32(_reg, ...) \
 	{ .addr = (_reg), __VA_ARGS__ }
 
+#define REG32_IDX(_reg, idx) \
+	{ .addr = _reg(idx) }
+
 /*
  * Convenience macro for adding 64-bit registers.
  *
@@ -669,6 +672,7 @@
 	REG64_IDX(RING_TIMESTAMP, BSD_RING_BASE),
 	REG32(BCS_SWCTRL),
 	REG64_IDX(RING_TIMESTAMP, BLT_RING_BASE),
+	REG32_IDX(RING_CTX_TIMESTAMP, BLT_RING_BASE),
 	REG64_IDX(BCS_GPR, 0),
 	REG64_IDX(BCS_GPR, 1),
 	REG64_IDX(BCS_GPR, 2),
@@ -1203,6 +1207,12 @@
 	return dst;
 }
 
+static inline bool cmd_desc_is(const struct drm_i915_cmd_descriptor * const desc,
+			       const u32 cmd)
+{
+	return desc->cmd.value == (cmd & desc->cmd.mask);
+}
+
 static bool check_cmd(const struct intel_engine_cs *engine,
 		      const struct drm_i915_cmd_descriptor *desc,
 		      const u32 *cmd, u32 length)
@@ -1241,19 +1251,19 @@
 			 * allowed mask/value pair given in the whitelist entry.
 			 */
 			if (reg->mask) {
-				if (desc->cmd.value == MI_LOAD_REGISTER_MEM) {
+				if (cmd_desc_is(desc, MI_LOAD_REGISTER_MEM)) {
 					DRM_DEBUG_DRIVER("CMD: Rejected LRM to masked register 0x%08X\n",
 							 reg_addr);
 					return false;
 				}
 
-				if (desc->cmd.value == MI_LOAD_REGISTER_REG) {
+				if (cmd_desc_is(desc, MI_LOAD_REGISTER_REG)) {
 					DRM_DEBUG_DRIVER("CMD: Rejected LRR to masked register 0x%08X\n",
 							 reg_addr);
 					return false;
 				}
 
-				if (desc->cmd.value == MI_LOAD_REGISTER_IMM(1) &&
+				if (cmd_desc_is(desc, MI_LOAD_REGISTER_IMM(1)) &&
 				    (offset + 2 > length ||
 				     (cmd[offset + 1] & reg->mask) != reg->value)) {
 					DRM_DEBUG_DRIVER("CMD: Rejected LRI to masked register 0x%08X\n",
@@ -1484,7 +1494,7 @@
 			goto err;
 		}
 
-		if (desc->cmd.value == MI_BATCH_BUFFER_START) {
+		if (cmd_desc_is(desc, MI_BATCH_BUFFER_START)) {
 			ret = check_bbstart(ctx, cmd, offset, length,
 					    batch_len, batch_start,
 					    shadow_batch_start);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2360,8 +2360,7 @@
 
 		for_each_power_domain(power_domain, power_well->desc->domains)
 			seq_printf(m, "  %-23s %d\n",
-				 intel_display_power_domain_str(dev_priv,
-								power_domain),
+				 intel_display_power_domain_str(power_domain),
 				 power_domains->domain_use_count[power_domain]);
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_drv.h
@@ -33,6 +33,8 @@
 #include <uapi/drm/i915_drm.h>
 #include <uapi/drm/drm_fourcc.h>
 
+#include <asm/hypervisor.h>
+
 #include <linux/io-mapping.h>
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
@@ -1740,6 +1742,9 @@
 
 	bool ipc_enabled;
 
+	/* Hack to bypass TMDS_OE write on DP->HDMI dongle */
+	bool bypass_tmds_oe;
+
 	/* Used to save the pipe-to-encoder mapping for audio */
 	struct intel_encoder *av_enc_map[I915_MAX_PIPES];
 
@@ -1892,7 +1897,7 @@
 {
 	const unsigned int pi = __platform_mask_index(info, p);
 
-	return info->platform_mask[pi] & INTEL_SUBPLATFORM_BITS;
+	return info->platform_mask[pi] & ((1 << INTEL_SUBPLATFORM_BITS) - 1);
 }
 
 static __always_inline bool
@@ -2197,7 +2202,9 @@
 	if (intel_iommu_gfx_mapped)
 		return true;
 #endif
-	return false;
+
+	/* Running as a guest, we assume the host is enforcing VT'd */
+	return !hypervisor_is_type(X86_HYPER_NATIVE);
 }
 
 static inline bool intel_scanout_needs_vtd_wa(struct drm_i915_private *dev_priv)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_gem.c
@@ -136,14 +136,14 @@
 		     struct drm_i915_gem_pwrite *args,
 		     struct drm_file *file)
 {
-	void *vaddr = obj->phys_handle->vaddr + args->offset;
+	void *vaddr = sg_page(obj->mm.pages->sgl) + args->offset;
 	char __user *user_data = u64_to_user_ptr(args->data_ptr);
 
 	/*
 	 * We manually control the domain here and pretend that it
 	 * remains coherent i.e. in the GTT domain, like shmem_pwrite.
 	 */
-	intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 
 	if (copy_from_user(vaddr, user_data, args->size))
 		return -EFAULT;
@@ -151,7 +151,7 @@
 	drm_clflush_virt_range(vaddr, args->size);
 	intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt);
 
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 	return 0;
 }
 
@@ -588,7 +588,7 @@
 		goto out_unpin;
 	}
 
-	intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_invalidate_frontbuffer(obj, ORIGIN_CPU);
 
 	user_data = u64_to_user_ptr(args->data_ptr);
 	offset = args->offset;
@@ -630,7 +630,7 @@
 		user_data += page_length;
 		offset += page_length;
 	}
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 
 	i915_gem_object_unlock_fence(obj, fence);
 out_unpin:
@@ -723,7 +723,7 @@
 		offset = 0;
 	}
 
-	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_CPU);
+	i915_gem_object_flush_frontbuffer(obj, ORIGIN_CPU);
 	i915_gem_object_unlock_fence(obj, fence);
 
 	return ret;
@@ -802,10 +802,10 @@
 		ret = i915_gem_gtt_pwrite_fast(obj, args);
 
 	if (ret == -EFAULT || ret == -ENOSPC) {
-		if (obj->phys_handle)
-			ret = i915_gem_phys_pwrite(obj, args, file);
-		else
+		if (i915_gem_object_has_struct_page(obj))
 			ret = i915_gem_shmem_pwrite(obj, args);
+		else
+			ret = i915_gem_phys_pwrite(obj, args, file);
 	}
 
 	i915_gem_object_unpin_pages(obj);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1178,6 +1178,7 @@
 	pd = i915_pd_entry(pdp, gen8_pd_index(idx, 2));
 	vaddr = kmap_atomic_px(i915_pt_entry(pd, gen8_pd_index(idx, 1)));
 	do {
+		GEM_BUG_ON(iter->sg->length < I915_GTT_PAGE_SIZE);
 		vaddr[gen8_pd_index(idx, 0)] = pte_encode | iter->dma;
 
 		iter->dma += I915_GTT_PAGE_SIZE;
@@ -1657,6 +1658,7 @@
 
 	vaddr = kmap_atomic_px(i915_pt_entry(pd, act_pt));
 	do {
+		GEM_BUG_ON(iter.sg->length < I915_GTT_PAGE_SIZE);
 		vaddr[act_pte] = pte_encode | GEN6_PTE_ADDR_ENCODE(iter.dma);
 
 		iter.dma += I915_GTT_PAGE_SIZE;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_gpu_error.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -307,6 +307,8 @@
 
 		if (zlib_deflate(zstream, Z_NO_FLUSH) != Z_OK)
 			return -EIO;
+
+		cond_resched();
 	} while (zstream->avail_in);
 
 	/* Fallback to uncompressed if we increase size? */
@@ -392,6 +394,7 @@
 	if (!i915_memcpy_from_wc(ptr, src, PAGE_SIZE))
 		memcpy(ptr, src, PAGE_SIZE);
 	dst->pages[dst->page_count++] = ptr;
+	cond_resched();
 
 	return 0;
 }
@@ -1768,7 +1771,8 @@
 	if (!xchg(&warned, true) &&
 	    ktime_get_real_seconds() - DRIVER_TIMESTAMP < DAY_AS_SECONDS(180)) {
 		pr_info("GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.\n");
-		pr_info("Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel\n");
+		pr_info("Please file a _new_ bug report at https://gitlab.freedesktop.org/drm/intel/issues/new.\n");
+		pr_info("Please see https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs for details.\n");
 		pr_info("drm/i915 developers can then reassign to the right component if it's not a kernel issue.\n");
 		pr_info("The GPU crash dump is required to analyze GPU hangs, so please always attach it.\n");
 		pr_info("GPU crash dump saved to /sys/class/drm/card%d/error\n",
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_irq.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_irq.c
@@ -3500,6 +3500,7 @@
 
 	val = I915_READ(GEN11_DE_HPD_IMR);
 	val &= ~hotplug_irqs;
+	val |= ~enabled_irqs & hotplug_irqs;
 	I915_WRITE(GEN11_DE_HPD_IMR, val);
 	POSTING_READ(GEN11_DE_HPD_IMR);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_params.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_params.c
@@ -84,8 +84,7 @@
 
 i915_param_named_unsafe(enable_psr, int, 0600,
 	"Enable PSR "
-	"(0=disabled, 1=enabled) "
-	"Default: -1 (use per-chip default)");
+	"(-1=use per-chip default, 0=disabled [default], 1=enabled) ");
 
 i915_param_named_unsafe(force_probe, charp, 0400,
 	"Force probe the driver for specified devices. "
@@ -171,7 +170,7 @@
 
 i915_param_named(enable_dpcd_backlight, int, 0600,
 	"Enable support for DPCD backlight control"
-	"(-1=use per-VBT LFP backlight type setting, 0=disabled [default], 1=enabled)");
+	"(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enabled)");
 
 #if IS_ENABLED(CONFIG_DRM_I915_GVT)
 i915_param_named(enable_gvt, bool, 0400,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_params.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_params.h
@@ -50,7 +50,7 @@
 	param(int, vbt_sdvo_panel_type, -1) \
 	param(int, enable_dc, -1) \
 	param(int, enable_fbc, -1) \
-	param(int, enable_psr, -1) \
+	param(int, enable_psr, 0) \
 	param(int, disable_power_well, -1) \
 	param(int, enable_ips, 1) \
 	param(int, invert_brightness, 0) \
@@ -64,7 +64,7 @@
 	param(int, reset, 2) \
 	param(unsigned int, inject_load_failure, 0) \
 	param(int, fastboot, -1) \
-	param(int, enable_dpcd_backlight, 0) \
+	param(int, enable_dpcd_backlight, -1) \
 	param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE) \
 	/* leave bools at the end to not create holes */ \
 	param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_pci.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_pci.c
@@ -418,7 +418,8 @@
 	.has_coherent_ggtt = true, \
 	.has_llc = 1, \
 	.has_rc6 = 1, \
-	.has_rc6p = 1, \
+	/* snb does support rc6p, but enabling it causes various issues */ \
+	.has_rc6p = 0, \
 	.has_rps = true, \
 	.ppgtt_type = INTEL_PPGTT_FULL, \
 	.ppgtt_size = 31, \
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_perf.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_perf.c
@@ -2313,49 +2313,6 @@
 }
 
 /**
- * i915_perf_read_locked - &i915_perf_stream_ops->read with error normalisation
- * @stream: An i915 perf stream
- * @file: An i915 perf stream file
- * @buf: destination buffer given by userspace
- * @count: the number of bytes userspace wants to read
- * @ppos: (inout) file seek position (unused)
- *
- * Besides wrapping &i915_perf_stream_ops->read this provides a common place to
- * ensure that if we've successfully copied any data then reporting that takes
- * precedence over any internal error status, so the data isn't lost.
- *
- * For example ret will be -ENOSPC whenever there is more buffered data than
- * can be copied to userspace, but that's only interesting if we weren't able
- * to copy some data because it implies the userspace buffer is too small to
- * receive a single record (and we never split records).
- *
- * Another case with ret == -EFAULT is more of a grey area since it would seem
- * like bad form for userspace to ask us to overrun its buffer, but the user
- * knows best:
- *
- *   http://yarchive.net/comp/linux/partial_reads_writes.html
- *
- * Returns: The number of bytes copied or a negative error code on failure.
- */
-static ssize_t i915_perf_read_locked(struct i915_perf_stream *stream,
-				     struct file *file,
-				     char __user *buf,
-				     size_t count,
-				     loff_t *ppos)
-{
-	/* Note we keep the offset (aka bytes read) separate from any
-	 * error status so that the final check for whether we return
-	 * the bytes read with a higher precedence than any error (see
-	 * comment below) doesn't need to be handled/duplicated in
-	 * stream->ops->read() implementations.
-	 */
-	size_t offset = 0;
-	int ret = stream->ops->read(stream, buf, count, &offset);
-
-	return offset ?: (ret ?: -EAGAIN);
-}
-
-/**
  * i915_perf_read - handles read() FOP for i915 perf stream FDs
  * @file: An i915 perf stream file
  * @buf: destination buffer given by userspace
@@ -2380,7 +2337,8 @@
 {
 	struct i915_perf_stream *stream = file->private_data;
 	struct drm_i915_private *dev_priv = stream->dev_priv;
-	ssize_t ret;
+	size_t offset = 0;
+	int ret;
 
 	/* To ensure it's handled consistently we simply treat all reads of a
 	 * disabled stream as an error. In particular it might otherwise lead
@@ -2403,13 +2361,12 @@
 				return ret;
 
 			mutex_lock(&dev_priv->perf.lock);
-			ret = i915_perf_read_locked(stream, file,
-						    buf, count, ppos);
+			ret = stream->ops->read(stream, buf, count, &offset);
 			mutex_unlock(&dev_priv->perf.lock);
-		} while (ret == -EAGAIN);
+		} while (!offset && !ret);
 	} else {
 		mutex_lock(&dev_priv->perf.lock);
-		ret = i915_perf_read_locked(stream, file, buf, count, ppos);
+		ret = stream->ops->read(stream, buf, count, &offset);
 		mutex_unlock(&dev_priv->perf.lock);
 	}
 
@@ -2420,15 +2377,15 @@
 	 * and read() returning -EAGAIN. Clearing the oa.pollin state here
 	 * effectively ensures we back off until the next hrtimer callback
 	 * before reporting another EPOLLIN event.
+	 * The exception to this is if ops->read() returned -ENOSPC which means
+	 * that more OA data is available than could fit in the user provided
+	 * buffer. In this case we want the next poll() call to not block.
 	 */
-	if (ret >= 0 || ret == -EAGAIN) {
-		/* Maybe make ->pollin per-stream state if we support multiple
-		 * concurrent streams in the future.
-		 */
+	if (ret != -ENOSPC)
 		stream->pollin = false;
-	}
 
-	return ret;
+	/* Possible values for ret are 0, -EFAULT, -ENOSPC, -EIO, ... */
+	return offset ?: (ret ?: -EAGAIN);
 }
 
 static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_reg.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_reg.h
@@ -2519,6 +2519,12 @@
 #define   GAMT_CHKN_DISABLE_DYNAMIC_CREDIT_SHARING	(1 << 28)
 #define   GAMT_CHKN_DISABLE_I2M_CYCLE_ON_WR_PORT	(1 << 24)
 
+#define GEN8_RTCR	_MMIO(0x4260)
+#define GEN8_M1TCR	_MMIO(0x4264)
+#define GEN8_M2TCR	_MMIO(0x4268)
+#define GEN8_BTCR	_MMIO(0x426c)
+#define GEN8_VTCR	_MMIO(0x4270)
+
 #if 0
 #define PRB0_TAIL	_MMIO(0x2030)
 #define PRB0_HEAD	_MMIO(0x2034)
@@ -2602,6 +2608,11 @@
 #define   FAULT_VA_HIGH_BITS		(0xf << 0)
 #define   FAULT_GTT_SEL			(1 << 4)
 
+#define GEN12_GFX_TLB_INV_CR	_MMIO(0xced8)
+#define GEN12_VD_TLB_INV_CR	_MMIO(0xcedc)
+#define GEN12_VE_TLB_INV_CR	_MMIO(0xcee0)
+#define GEN12_BLT_TLB_INV_CR	_MMIO(0xcee4)
+
 #define FPGA_DBG		_MMIO(0x42300)
 #define   FPGA_DBG_RM_NOCLAIM	(1 << 31)
 
@@ -4049,7 +4060,13 @@
 #define  GWUNIT_CLKGATE_DIS		(1 << 16)
 
 #define UNSLICE_UNIT_LEVEL_CLKGATE	_MMIO(0x9434)
-#define  VFUNIT_CLKGATE_DIS		(1 << 20)
+#define   VFUNIT_CLKGATE_DIS		REG_BIT(20)
+#define   HSUNIT_CLKGATE_DIS		REG_BIT(8)
+#define   VSUNIT_CLKGATE_DIS		REG_BIT(3)
+
+#define UNSLICE_UNIT_LEVEL_CLKGATE2	_MMIO(0x94e4)
+#define   VSUNIT_CLKGATE_DIS_TGL	REG_BIT(19)
+#define   PSDUNIT_CLKGATE_DIS		REG_BIT(5)
 
 #define INF_UNIT_LEVEL_CLKGATE		_MMIO(0x9560)
 #define   CGPSF_CLKGATE_DIS		(1 << 3)
@@ -8832,8 +8849,13 @@
 #define     ICL_PCODE_MEM_SS_READ_QGV_POINT_INFO(point)	(((point) << 16) | (0x1 << 8))
 #define   GEN6_PCODE_READ_D_COMP		0x10
 #define   GEN6_PCODE_WRITE_D_COMP		0x11
+#define   ICL_PCODE_EXIT_TCCOLD			0x12
 #define   HSW_PCODE_DE_WRITE_FREQ_REQ		0x17
 #define   DISPLAY_IPS_CONTROL			0x19
+#define   TGL_PCODE_TCCOLD			0x26
+#define     TGL_PCODE_EXIT_TCCOLD_DATA_L_EXIT_FAILED	REG_BIT(0)
+#define     TGL_PCODE_EXIT_TCCOLD_DATA_H_BLOCK_REQ	0
+#define     TGL_PCODE_EXIT_TCCOLD_DATA_H_UNBLOCK_REQ	REG_BIT(0)
             /* See also IPS_CTL */
 #define     IPS_PCODE_CONTROL			(1 << 30)
 #define   HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL	0x1A
@@ -9104,6 +9126,9 @@
 #define HSW_AUD_CHICKENBIT			_MMIO(0x65f10)
 #define   SKL_AUD_CODEC_WAKE_SIGNAL		(1 << 15)
 
+#define AUD_PIN_BUF_CTL		_MMIO(0x48414)
+#define   AUD_PIN_BUF_ENABLE		REG_BIT(31)
+
 /*
  * HSW - ICL power wells
  *
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_request.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_request.c
@@ -215,7 +215,7 @@
 	spin_unlock(&locked->active.lock);
 }
 
-static bool i915_request_retire(struct i915_request *rq)
+bool i915_request_retire(struct i915_request *rq)
 {
 	struct i915_active_request *active, *next;
 
@@ -560,19 +560,31 @@
 	return NOTIFY_DONE;
 }
 
+static void irq_semaphore_cb(struct irq_work *wrk)
+{
+	struct i915_request *rq =
+		container_of(wrk, typeof(*rq), semaphore_work);
+
+	i915_schedule_bump_priority(rq, I915_PRIORITY_NOSEMAPHORE);
+	i915_request_put(rq);
+}
+
 static int __i915_sw_fence_call
 semaphore_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state)
 {
-	struct i915_request *request =
-		container_of(fence, typeof(*request), semaphore);
+	struct i915_request *rq = container_of(fence, typeof(*rq), semaphore);
 
 	switch (state) {
 	case FENCE_COMPLETE:
-		i915_schedule_bump_priority(request, I915_PRIORITY_NOSEMAPHORE);
+		if (!(READ_ONCE(rq->sched.attr.priority) & I915_PRIORITY_NOSEMAPHORE)) {
+			i915_request_get(rq);
+			init_irq_work(&rq->semaphore_work, irq_semaphore_cb);
+			irq_work_queue(&rq->semaphore_work);
+		}
 		break;
 
 	case FENCE_FREE:
-		i915_request_put(request);
+		i915_request_put(rq);
 		break;
 	}
 
@@ -882,8 +894,10 @@
 	GEM_BUG_ON(to == from);
 	GEM_BUG_ON(to->timeline == from->timeline);
 
-	if (i915_request_completed(from))
+	if (i915_request_completed(from)) {
+		i915_sw_fence_set_error_once(&to->submit, from->fence.error);
 		return 0;
+	}
 
 	if (to->engine->schedule) {
 		ret = i915_sched_node_add_dependency(&to->sched, &from->sched);
@@ -1215,9 +1229,9 @@
 	 * decide whether to preempt the entire chain so that it is ready to
 	 * run at the earliest possible convenience.
 	 */
-	i915_sw_fence_commit(&rq->semaphore);
 	if (attr && rq->engine->schedule)
 		rq->engine->schedule(rq, attr);
+	i915_sw_fence_commit(&rq->semaphore);
 	i915_sw_fence_commit(&rq->submit);
 }
 
@@ -1513,8 +1527,8 @@
 			continue;
 
 		intel_timeline_get(tl);
-		GEM_BUG_ON(!tl->active_count);
-		tl->active_count++; /* pin the list element */
+		GEM_BUG_ON(!atomic_read(&tl->active_count));
+		atomic_inc(&tl->active_count); /* pin the list element */
 		spin_unlock_irqrestore(&timelines->lock, flags);
 
 		retire_requests(tl);
@@ -1523,14 +1537,14 @@
 
 		/* Resume iteration after dropping lock */
 		list_safe_reset_next(tl, tn, link);
-		if (!--tl->active_count)
+		if (atomic_dec_and_test(&tl->active_count))
 			list_del(&tl->link);
 
 		mutex_unlock(&tl->mutex);
 
 		/* Defer the final release to after the spinlock */
 		if (refcount_dec_and_test(&tl->kref.refcount)) {
-			GEM_BUG_ON(tl->active_count);
+			GEM_BUG_ON(atomic_read(&tl->active_count));
 			list_add(&tl->link, &free);
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_request.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_request.h
@@ -26,6 +26,7 @@
 #define I915_REQUEST_H
 
 #include <linux/dma-fence.h>
+#include <linux/irq_work.h>
 #include <linux/lockdep.h>
 
 #include "gt/intel_context_types.h"
@@ -147,6 +148,7 @@
 	};
 	struct list_head execute_cb;
 	struct i915_sw_fence semaphore;
+	struct irq_work semaphore_work;
 
 	/*
 	 * A list of everyone we wait upon, and everyone who waits upon us.
@@ -251,6 +253,7 @@
 void __i915_request_queue(struct i915_request *rq,
 			  const struct i915_sched_attr *attr);
 
+bool i915_request_retire(struct i915_request *rq);
 void i915_request_retire_upto(struct i915_request *rq);
 
 static inline struct i915_request *
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_scheduler.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_scheduler.c
@@ -418,8 +418,6 @@
 
 	if (!node_signaled(signal)) {
 		INIT_LIST_HEAD(&dep->dfs_link);
-		list_add(&dep->wait_link, &signal->waiters_list);
-		list_add(&dep->signal_link, &node->signalers_list);
 		dep->signaler = signal;
 		dep->waiter = node;
 		dep->flags = flags;
@@ -429,6 +427,10 @@
 		    !node_started(signal))
 			node->flags |= I915_SCHED_HAS_SEMAPHORE_CHAIN;
 
+		/* All set, now publish. Beware the lockless walkers. */
+		list_add(&dep->signal_link, &node->signalers_list);
+		list_add_rcu(&dep->wait_link, &signal->waiters_list);
+
 		/*
 		 * As we do not allow WAIT to preempt inflight requests,
 		 * once we have executed a request, along with triggering
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_sw_fence.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_sw_fence.c
@@ -158,9 +158,13 @@
 
 		do {
 			list_for_each_entry_safe(pos, next, &x->head, entry) {
-				pos->func(pos,
-					  TASK_NORMAL, fence->error,
-					  &extra);
+				int wake_flags;
+
+				wake_flags = fence->error;
+				if (pos->func == autoremove_wake_function)
+					wake_flags = 0;
+
+				pos->func(pos, TASK_NORMAL, wake_flags, &extra);
 			}
 
 			if (list_empty(&extra))
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_utils.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_utils.c
@@ -8,9 +8,8 @@
 #include "i915_drv.h"
 #include "i915_utils.h"
 
-#define FDO_BUG_URL "https://bugs.freedesktop.org/enter_bug.cgi?product=DRI"
-#define FDO_BUG_MSG "Please file a bug at " FDO_BUG_URL " against DRM/Intel " \
-		    "providing the dmesg log by booting with drm.debug=0xf"
+#define FDO_BUG_URL "https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs"
+#define FDO_BUG_MSG "Please file a bug on drm/i915; see " FDO_BUG_URL " for details."
 
 void
 __i915_printk(struct drm_i915_private *dev_priv, const char *level,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_utils.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_utils.h
@@ -233,6 +233,11 @@
 	__idx;								\
 })
 
+static inline bool is_power_of_2_u64(u64 n)
+{
+	return (n != 0 && ((n & (n - 1)) == 0));
+}
+
 static inline void __list_del_many(struct list_head *head,
 				   struct list_head *first)
 {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/i915_vma.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/i915_vma.c
@@ -341,6 +341,10 @@
 		return ret;
 
 	vma->flags |= bind_flags;
+
+	if (vma->obj)
+		set_bit(I915_BO_WAS_BOUND_BIT, &vma->obj->flags);
+
 	return 0;
 }
 
@@ -907,10 +911,16 @@
 		return err;
 
 	if (flags & EXEC_OBJECT_WRITE) {
-		if (intel_frontbuffer_invalidate(obj->frontbuffer, ORIGIN_CS))
-			i915_active_ref(&obj->frontbuffer->write,
-					rq->timeline,
-					rq);
+		struct intel_frontbuffer *front;
+
+		front = __intel_frontbuffer_get(obj);
+		if (unlikely(front)) {
+			if (intel_frontbuffer_invalidate(front, ORIGIN_CS))
+				i915_active_ref(&front->write,
+						rq->timeline,
+						rq);
+			intel_frontbuffer_put(front);
+		}
 
 		dma_resv_add_excl_fence(vma->resv, &rq->fence);
 		obj->write_domain = I915_GEM_DOMAIN_RENDER;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/intel_pch.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/intel_pch.c
@@ -74,6 +74,11 @@
 		WARN_ON(!IS_COFFEELAKE(dev_priv));
 		/* CometPoint is CNP Compatible */
 		return PCH_CNP;
+	case INTEL_PCH_CMP_V_DEVICE_ID_TYPE:
+		DRM_DEBUG_KMS("Found Comet Lake V PCH (CMP-V)\n");
+		WARN_ON(!IS_COFFEELAKE(dev_priv));
+		/* Comet Lake V PCH is based on KBP, which is SPT compatible */
+		return PCH_SPT;
 	case INTEL_PCH_ICP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Ice Lake PCH\n");
 		WARN_ON(!IS_ICELAKE(dev_priv));
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/intel_pch.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/intel_pch.h
@@ -42,6 +42,7 @@
 #define INTEL_PCH_CNP_LP_DEVICE_ID_TYPE		0x9D80
 #define INTEL_PCH_CMP_DEVICE_ID_TYPE		0x0280
 #define INTEL_PCH_CMP2_DEVICE_ID_TYPE		0x0680
+#define INTEL_PCH_CMP_V_DEVICE_ID_TYPE		0xA380
 #define INTEL_PCH_ICP_DEVICE_ID_TYPE		0x3480
 #define INTEL_PCH_MCC_DEVICE_ID_TYPE		0x4B00
 #define INTEL_PCH_MCC2_DEVICE_ID_TYPE		0x3880
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/intel_pm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/intel_pm.c
@@ -2822,7 +2822,7 @@
 }
 
 static void intel_read_wm_latency(struct drm_i915_private *dev_priv,
-				  u16 wm[8])
+				  u16 wm[])
 {
 	struct intel_uncore *uncore = &dev_priv->uncore;
 
@@ -2966,7 +2966,7 @@
 
 static void intel_print_wm_latency(struct drm_i915_private *dev_priv,
 				   const char *name,
-				   const u16 wm[8])
+				   const u16 wm[])
 {
 	int level, max_level = ilk_wm_max_level(dev_priv);
 
@@ -3017,9 +3017,9 @@
 	 * The BIOS provided WM memory latency values are often
 	 * inadequate for high resolution displays. Adjust them.
 	 */
-	changed = ilk_increase_wm_latency(dev_priv, dev_priv->wm.pri_latency, 12) |
-		ilk_increase_wm_latency(dev_priv, dev_priv->wm.spr_latency, 12) |
-		ilk_increase_wm_latency(dev_priv, dev_priv->wm.cur_latency, 12);
+	changed = ilk_increase_wm_latency(dev_priv, dev_priv->wm.pri_latency, 12);
+	changed |= ilk_increase_wm_latency(dev_priv, dev_priv->wm.spr_latency, 12);
+	changed |= ilk_increase_wm_latency(dev_priv, dev_priv->wm.cur_latency, 12);
 
 	if (!changed)
 		return;
@@ -4784,7 +4784,7 @@
 	 * WaIncreaseLatencyIPCEnabled: kbl,cfl
 	 * Display WA #1141: kbl,cfl
 	 */
-	if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv)) ||
+	if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv)) &&
 	    dev_priv->ipc_enabled)
 		latency += 4;
 
@@ -9194,6 +9194,17 @@
 	/* WaEnable32PlaneMode:icl */
 	I915_WRITE(GEN9_CSFE_CHICKEN1_RCS,
 		   _MASKED_BIT_ENABLE(GEN11_ENABLE_32_PLANE_MODE));
+
+	/*
+	 * Wa_1408615072:icl,ehl  (vsunit)
+	 * Wa_1407596294:icl,ehl  (hsunit)
+	 */
+	intel_uncore_rmw(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE,
+			 0, VSUNIT_CLKGATE_DIS | HSUNIT_CLKGATE_DIS);
+
+	/* Wa_1407352427:icl,ehl */
+	intel_uncore_rmw(&dev_priv->uncore, UNSLICE_UNIT_LEVEL_CLKGATE2,
+			 0, PSDUNIT_CLKGATE_DIS);
 }
 
 static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/intel_uncore.c
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/intel_uncore.c
@@ -1124,6 +1124,18 @@
 		spin_unlock(&uncore->debug->lock);
 }
 
+#define __vgpu_read(x) \
+static u##x \
+vgpu_read##x(struct intel_uncore *uncore, i915_reg_t reg, bool trace) { \
+	u##x val = __raw_uncore_read##x(uncore, reg); \
+	trace_i915_reg_rw(false, reg, val, sizeof(val), trace); \
+	return val; \
+}
+__vgpu_read(8)
+__vgpu_read(16)
+__vgpu_read(32)
+__vgpu_read(64)
+
 #define GEN2_READ_HEADER(x) \
 	u##x val = 0; \
 	assert_rpm_wakelock_held(uncore->rpm);
@@ -1327,6 +1339,16 @@
 #undef GEN6_WRITE_FOOTER
 #undef GEN6_WRITE_HEADER
 
+#define __vgpu_write(x) \
+static void \
+vgpu_write##x(struct intel_uncore *uncore, i915_reg_t reg, u##x val, bool trace) { \
+	trace_i915_reg_rw(true, reg, val, sizeof(val), trace); \
+	__raw_uncore_write##x(uncore, reg, val); \
+}
+__vgpu_write(8)
+__vgpu_write(16)
+__vgpu_write(32)
+
 #define ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, x) \
 do { \
 	(uncore)->funcs.mmio_writeb = x##_write8; \
@@ -1647,7 +1669,10 @@
 {
 	GEM_BUG_ON(intel_uncore_has_forcewake(uncore));
 
-	if (IS_GEN(uncore->i915, 5)) {
+	if (intel_vgpu_active(uncore->i915)) {
+		ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, vgpu);
+		ASSIGN_RAW_READ_MMIO_VFUNCS(uncore, vgpu);
+	} else if (IS_GEN(uncore->i915, 5)) {
 		ASSIGN_RAW_WRITE_MMIO_VFUNCS(uncore, gen5);
 		ASSIGN_RAW_READ_MMIO_VFUNCS(uncore, gen5);
 	} else {
@@ -1901,13 +1926,14 @@
 				 unsigned int slow_timeout_ms,
 				 u32 *out_value)
 {
-	u32 uninitialized_var(reg_value);
+	u32 reg_value = 0;
 #define done (((reg_value = intel_uncore_read_fw(uncore, reg)) & mask) == value)
 	int ret;
 
 	/* Catch any overuse of this function */
 	might_sleep_if(slow_timeout_ms);
 	GEM_BUG_ON(fast_timeout_us > 20000);
+	GEM_BUG_ON(!fast_timeout_us && !slow_timeout_ms);
 
 	ret = -ETIMEDOUT;
 	if (fast_timeout_us && fast_timeout_us <= 20000)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/i915/selftests/i915_random.h
+++ linux-ein-5.4.0/drivers/gpu/drm/i915/selftests/i915_random.h
@@ -25,6 +25,7 @@
 #ifndef __I915_SELFTESTS_RANDOM_H__
 #define __I915_SELFTESTS_RANDOM_H__
 
+#include <linux/math64.h>
 #include <linux/random.h>
 
 #include "../i915_selftest.h"
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/Kconfig
@@ -6,10 +6,15 @@
 	select DRM_GEM_CMA_HELPER
 	select DRM_KMS_CMA_HELPER
 	depends on DRM && (ARCH_MXC || ARCH_MULTIPLATFORM || COMPILE_TEST)
-	depends on IMX_IPUV3_CORE
+	depends on IMX_IPUV3_CORE || IMX_DPU_CORE || IMX_LCDIF_CORE
 	help
 	  enable i.MX graphics support
 
+config DRM_IMX_LCDIF_MUX_DISPLAY
+	tristate "Support for LCDIF mux displays"
+	select DRM_PANEL_BRIDGE
+	depends on DRM_IMX && OF && MFD_SYSCON
+
 config DRM_IMX_PARALLEL_DISPLAY
 	tristate "Support for parallel displays"
 	select DRM_PANEL
@@ -26,16 +31,68 @@
 	  found on i.MX53 processors.
 
 config DRM_IMX_LDB
-	tristate "Support for LVDS displays"
-	depends on DRM_IMX && MFD_SYSCON
-	select DRM_PANEL
+	tristate "Support for i.MX6 LVDS displays"
+	depends on DRM_IMX && DRM_FSL_IMX_LVDS_BRIDGE
 	help
 	  Choose this to enable the internal LVDS Display Bridge (LDB)
 	  found on i.MX53 and i.MX6 processors.
 
+config DRM_IMX8QM_LDB
+	tristate "Support for i.MX8qm LVDS displays"
+	depends on DRM_IMX && DRM_FSL_IMX_LVDS_BRIDGE
+	depends on PHY_MIXEL_LVDS
+	help
+	  Choose this to enable the internal LVDS Display Bridge (LDB)
+	  found on i.MX8qm processors.
+
+config DRM_IMX8QXP_LDB
+	tristate "Support for i.MX8qxp LVDS displays"
+	depends on DRM_IMX && DRM_FSL_IMX_LVDS_BRIDGE
+	depends on PHY_MIXEL_LVDS_COMBO
+	help
+	  Choose this to enable the internal LVDS Display Bridge (LDB)
+	  found on i.MX8qxp processors.
+
+config DRM_IMX8MP_LDB
+	tristate "Support for i.MX8mp LVDS displays"
+	depends on DRM_IMX && DRM_FSL_IMX_LVDS_BRIDGE
+	depends on PHY_FSL_IMX8MP_LVDS
+	help
+	  Choose this to enable the internal LVDS Display Bridge (LDB)
+	  found on i.MX8mp processors.
+
+config DRM_IMX_IPUV3
+	tristate
+	depends on DRM_IMX
+	depends on IMX_IPUV3_CORE
+	default y if DRM_IMX=y
+	default m if DRM_IMX=m
+
+config IMX8MP_HDMI_PAVI
+	tristate "NXP i.MX8MP HDMI Audio Video (PVI/PAI)"
+	help
+	  Choose this if you want to use HDMI PAI/PVI on i.MX8MP.
+
 config DRM_IMX_HDMI
 	tristate "Freescale i.MX DRM HDMI"
 	select DRM_DW_HDMI
+	select IMX8MP_HDMI_PAVI
 	depends on DRM_IMX
 	help
-	  Choose this if you want to use HDMI on i.MX6.
+	  Choose this if you want to use HDMI on i.MX6/i.MX8.
+
+config DRM_IMX_SEC_DSIM
+	tristate "Support for Samsung MIPI DSIM displays"
+	depends on DRM_IMX
+	select MFD_SYSCON
+	select DRM_SEC_MIPI_DSIM
+	help
+	  Choose this to enable the internal SEC MIPI DSIM controller
+	  found on i.MX platform.
+
+source "drivers/gpu/drm/imx/dpu/Kconfig"
+source "drivers/gpu/drm/imx/ipuv3/Kconfig"
+source "drivers/gpu/drm/imx/lcdif/Kconfig"
+source "drivers/gpu/drm/imx/lcdifv3/Kconfig"
+source "drivers/gpu/drm/imx/dcss/Kconfig"
+source "drivers/gpu/drm/imx/mhdp/Kconfig"
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/Makefile
@@ -1,11 +1,23 @@
 # SPDX-License-Identifier: GPL-2.0
 
-imxdrm-objs := imx-drm-core.o ipuv3-crtc.o ipuv3-plane.o
+imxdrm-objs := imx-drm-core.o
 
 obj-$(CONFIG_DRM_IMX) += imxdrm.o
 
+obj-$(CONFIG_DRM_IMX_LCDIF_MUX_DISPLAY) += lcdif-mux-display.o
 obj-$(CONFIG_DRM_IMX_PARALLEL_DISPLAY) += parallel-display.o
 obj-$(CONFIG_DRM_IMX_TVE) += imx-tve.o
 obj-$(CONFIG_DRM_IMX_LDB) += imx-ldb.o
+obj-$(CONFIG_DRM_IMX8QM_LDB) += imx8qm-ldb.o
+obj-$(CONFIG_DRM_IMX8QXP_LDB) += imx8qxp-ldb.o
+obj-$(CONFIG_DRM_IMX8MP_LDB) += imx8mp-ldb.o
 
+obj-$(CONFIG_DRM_IMX_DPU) += dpu/
+obj-$(CONFIG_DRM_IMX_IPUV3) += ipuv3/
 obj-$(CONFIG_DRM_IMX_HDMI) += dw_hdmi-imx.o
+obj-$(CONFIG_IMX8MP_HDMI_PAVI) += imx8mp-hdmi-pavi.o
+obj-$(CONFIG_DRM_IMX_LCDIF) += lcdif/
+obj-$(CONFIG_DRM_IMX_LCDIFV3) += lcdifv3/
+obj-$(CONFIG_DRM_IMX_SEC_DSIM) += sec_mipi_dsim-imx.o
+obj-$(CONFIG_DRM_IMX_DCSS) += dcss/
+obj-$(CONFIG_DRM_IMX_CDNS_MHDP) += mhdp/
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/Kconfig
@@ -0,0 +1,7 @@
+config DRM_IMX_DCSS
+	tristate "i.MX8MQ DCSS"
+	select RESET_CONTROLLER
+	select IMX_IRQSTEER
+	help
+	  Choose this if you have a NXP i.MX8MQ based system and want to use the
+	  Display Controller Subsystem. This option enables DCSS support.
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/Makefile
@@ -0,0 +1,7 @@
+imx-dcss-objs := dcss-drv.o dcss-dev.o dcss-blkctl.o dcss-ctxld.o dcss-dtg.o \
+				 dcss-ss.o dcss-dpr.o dcss-scaler.o dcss-kms.o dcss-crtc.o \
+				 dcss-plane.o dcss-dec400d.o dcss-hdr10.o dcss-wrscl.o \
+				 dcss-rdsrc.o dcss-dtrc.o
+
+obj-$(CONFIG_DRM_IMX_DCSS) += imx-dcss.o
+
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-blkctl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-blkctl.c
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+#include <linux/of.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_BLKCTL_RESET_CTRL		0x00
+#define   B_CLK_RESETN			BIT(0)
+#define   APB_CLK_RESETN		BIT(1)
+#define   P_CLK_RESETN			BIT(2)
+#define   RTR_CLK_RESETN		BIT(3)
+#define DCSS_BLKCTL_CONTROL0		0x10
+#define   HDMI_MIPI_CLK_SEL		BIT(0)
+#define   DISPMIX_REFCLK_SEL_POS	4
+#define   DISPMIX_REFCLK_SEL_MASK	GENMASK(5, 4)
+#define   DISPMIX_PIXCLK_SEL		BIT(8)
+#define   HDMI_SRC_SECURE_EN		BIT(16)
+
+struct dcss_blkctl {
+	struct device *dev;
+	void __iomem *base_reg;
+
+	bool hdmi_output;
+};
+
+void dcss_blkctl_cfg(struct dcss_blkctl *blkctl)
+{
+	if (blkctl->hdmi_output)
+		dcss_writel(0, blkctl->base_reg + DCSS_BLKCTL_CONTROL0);
+	else
+		dcss_writel(DISPMIX_PIXCLK_SEL,
+			    blkctl->base_reg + DCSS_BLKCTL_CONTROL0);
+
+	dcss_set(B_CLK_RESETN | APB_CLK_RESETN | P_CLK_RESETN | RTR_CLK_RESETN,
+		 blkctl->base_reg + DCSS_BLKCTL_RESET_CTRL);
+}
+
+int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base)
+{
+	struct dcss_blkctl *blkctl;
+
+	blkctl = devm_kzalloc(dcss->dev, sizeof(*blkctl), GFP_KERNEL);
+	if (!blkctl)
+		return -ENOMEM;
+
+	blkctl->base_reg = devm_ioremap(dcss->dev, blkctl_base, SZ_4K);
+	if (!blkctl->base_reg) {
+		dev_err(dcss->dev, "unable to remap BLK CTRL base\n");
+		devm_kfree(dcss->dev, blkctl);
+		return -ENOMEM;
+	}
+
+	dcss->blkctl = blkctl;
+	blkctl->dev = dcss->dev;
+	blkctl->hdmi_output = dcss->hdmi_output;
+
+	dcss_blkctl_cfg(blkctl);
+
+	return 0;
+}
+
+void dcss_blkctl_exit(struct dcss_blkctl *blkctl)
+{
+	dcss_clr(P_CLK_RESETN | RTR_CLK_RESETN,
+		 blkctl->base_reg + DCSS_BLKCTL_RESET_CTRL);
+
+	if (blkctl->base_reg)
+		devm_iounmap(blkctl->dev, blkctl->base_reg);
+
+	devm_kfree(blkctl->dev, blkctl);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-crtc.c
@@ -0,0 +1,271 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_vblank.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+
+#include "dcss-dev.h"
+#include "dcss-kms.h"
+
+static int dcss_enable_vblank(struct drm_crtc *crtc)
+{
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	struct dcss_dev *dcss = crtc->dev->dev_private;
+
+	if (dcss_crtc->irq_enabled)
+		return 0;
+
+	dcss_crtc->irq_enabled = true;
+
+	dcss_dtg_vblank_irq_enable(dcss->dtg, true);
+
+	dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true);
+
+	enable_irq(dcss_crtc->irq);
+
+	return 0;
+}
+
+static void dcss_disable_vblank(struct drm_crtc *crtc)
+{
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private;
+
+	disable_irq_nosync(dcss_crtc->irq);
+
+	dcss_dtg_vblank_irq_enable(dcss->dtg, false);
+
+	if (!dcss_dtrc_is_running(dcss->dtrc))
+		dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, false);
+
+	dcss_crtc->irq_enabled = false;
+}
+
+static const struct drm_crtc_funcs dcss_crtc_funcs = {
+	.set_config = drm_atomic_helper_set_config,
+	.destroy = drm_crtc_cleanup,
+	.page_flip = drm_atomic_helper_page_flip,
+	.reset = drm_atomic_helper_crtc_reset,
+	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
+	.enable_vblank = dcss_enable_vblank,
+	.disable_vblank = dcss_disable_vblank,
+};
+
+static void dcss_crtc_atomic_begin(struct drm_crtc *crtc,
+				   struct drm_crtc_state *old_crtc_state)
+{
+	drm_crtc_vblank_on(crtc);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		WARN_ON(drm_crtc_vblank_get(crtc));
+		drm_crtc_arm_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+static void dcss_crtc_atomic_flush(struct drm_crtc *crtc,
+				   struct drm_crtc_state *old_crtc_state)
+{
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private;
+
+	if (dcss_dtg_is_enabled(dcss->dtg))
+		dcss_ctxld_enable(dcss->ctxld);
+}
+
+static void dcss_crtc_atomic_enable(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private;
+	struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+	struct videomode vm;
+
+	drm_display_mode_to_videomode(mode, &vm);
+
+	pm_runtime_get_sync(dcss->dev);
+
+	vm.pixelclock = mode->crtc_clock * 1000;
+
+	dcss_dtg_sync_set(dcss->dtg, &vm);
+
+	dcss_ss_subsam_set(dcss->ss, dcss_crtc->output_is_yuv);
+	dcss_ss_sync_set(dcss->ss, &vm, mode->flags & DRM_MODE_FLAG_PHSYNC,
+			 mode->flags & DRM_MODE_FLAG_PVSYNC);
+
+	dcss_dtg_css_set(dcss->dtg, dcss_crtc->output_is_yuv);
+
+	dcss_ss_enable(dcss->ss);
+	dcss_dtg_enable(dcss->dtg, true, NULL);
+	dcss_ctxld_enable(dcss->ctxld);
+
+	dcss_enable_vblank(crtc);
+
+	reinit_completion(&dcss_crtc->en_completion);
+	wait_for_completion_timeout(&dcss_crtc->en_completion,
+				    msecs_to_jiffies(500));
+}
+
+static void dcss_crtc_atomic_disable(struct drm_crtc *crtc,
+				     struct drm_crtc_state *old_crtc_state)
+{
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private;
+
+	drm_atomic_helper_disable_planes_on_crtc(old_crtc_state, false);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+
+	dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true);
+
+	dcss_ss_disable(dcss->ss);
+	dcss_dtg_enable(dcss->dtg, false, &dcss_crtc->dis_completion);
+	dcss_ctxld_enable(dcss->ctxld);
+
+	reinit_completion(&dcss_crtc->dis_completion);
+	wait_for_completion_timeout(&dcss_crtc->dis_completion,
+				    msecs_to_jiffies(100));
+
+	drm_crtc_vblank_off(crtc);
+
+	dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, false);
+
+	pm_runtime_put_sync(dcss->dev);
+}
+
+static enum drm_mode_status dcss_crtc_mode_valid(struct drm_crtc *crtc,
+                        const struct drm_display_mode *mode)
+{
+   /*
+    * From DCSS perspective, dissallow any mode higher than
+    * 3840x2160 or 2160x3840.
+    */
+   if (mode->hdisplay * mode->vdisplay > 3840 * 2160)
+       return MODE_BAD;
+
+   return MODE_OK;
+}
+
+static const struct drm_crtc_helper_funcs dcss_helper_funcs = {
+	.atomic_begin = dcss_crtc_atomic_begin,
+	.atomic_flush = dcss_crtc_atomic_flush,
+	.atomic_enable = dcss_crtc_atomic_enable,
+	.atomic_disable = dcss_crtc_atomic_disable,
+	.mode_valid = dcss_crtc_mode_valid,
+};
+
+static irqreturn_t dcss_crtc_irq_handler(int irq, void *dev_id)
+{
+	struct dcss_crtc *dcss_crtc = dev_id;
+	struct dcss_dev *dcss = dcss_crtc->base.dev->dev_private;
+
+	if (!dcss_dtg_vblank_irq_valid(dcss->dtg))
+		return IRQ_HANDLED;
+
+	complete(&dcss_crtc->en_completion);
+
+	if (dcss_ctxld_is_flushed(dcss->ctxld))
+		drm_crtc_handle_vblank(&dcss_crtc->base);
+
+	dcss_dtg_vblank_irq_clear(dcss->dtg);
+
+	return IRQ_HANDLED;
+}
+
+int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm)
+{
+	struct dcss_dev *dcss = drm->dev_private;
+	struct platform_device *pdev = to_platform_device(dcss->dev);
+	int ret;
+
+	crtc->plane[0] = dcss_plane_init(drm, drm_crtc_mask(&crtc->base),
+					 DRM_PLANE_TYPE_PRIMARY, 2);
+	if (IS_ERR(crtc->plane[0]))
+		return PTR_ERR(crtc->plane[0]);
+
+	crtc->base.port = dcss->of_port;
+
+	drm_crtc_helper_add(&crtc->base, &dcss_helper_funcs);
+	ret = drm_crtc_init_with_planes(drm, &crtc->base, &crtc->plane[0]->base,
+					NULL, &dcss_crtc_funcs, NULL);
+	if (ret) {
+		dev_err(dcss->dev, "failed to init crtc\n");
+		return ret;
+	}
+
+	crtc->plane[1] = dcss_plane_init(drm, drm_crtc_mask(&crtc->base),
+					 DRM_PLANE_TYPE_OVERLAY, 1);
+	if (IS_ERR(crtc->plane[1]))
+		crtc->plane[1] = NULL;
+
+	crtc->plane[2] = dcss_plane_init(drm, drm_crtc_mask(&crtc->base),
+					 DRM_PLANE_TYPE_OVERLAY, 0);
+	if (IS_ERR(crtc->plane[2]))
+		crtc->plane[2] = NULL;
+
+	drm_plane_create_alpha_property(&crtc->plane[0]->base);
+
+	crtc->irq = platform_get_irq_byname(pdev, "vblank");
+	if (crtc->irq < 0) {
+		dev_err(dcss->dev, "unable to get vblank interrupt\n");
+		return crtc->irq;
+	}
+
+	init_completion(&crtc->en_completion);
+	init_completion(&crtc->dis_completion);
+
+	ret = devm_request_irq(dcss->dev, crtc->irq, dcss_crtc_irq_handler,
+			       IRQF_TRIGGER_RISING, "dcss_drm", crtc);
+	if (ret) {
+		dev_err(dcss->dev, "irq request failed with %d.\n", ret);
+		return ret;
+	}
+
+	disable_irq(crtc->irq);
+
+	return 0;
+}
+
+void dcss_crtc_attach_color_mgmt_properties(struct dcss_crtc *crtc)
+{
+	int i;
+
+	/* create color management properties only for video planes */
+	for (i = 1; i < 3; i++) {
+		if (crtc->plane[i]->type == DRM_PLANE_TYPE_PRIMARY)
+			return;
+
+		drm_plane_create_color_properties(&crtc->plane[i]->base,
+					BIT(DRM_COLOR_YCBCR_BT601) |
+					BIT(DRM_COLOR_YCBCR_BT709) |
+					BIT(DRM_COLOR_YCBCR_BT2020),
+					BIT(DRM_COLOR_YCBCR_FULL_RANGE) |
+					BIT(DRM_COLOR_YCBCR_LIMITED_RANGE),
+					DRM_COLOR_YCBCR_BT709,
+					DRM_COLOR_YCBCR_FULL_RANGE);
+	}
+}
+
+void dcss_crtc_deinit(struct dcss_crtc *crtc, struct drm_device *drm)
+{
+	struct dcss_dev *dcss = drm->dev_private;
+
+	devm_free_irq(dcss->dev, crtc->irq, crtc);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-ctxld.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-ctxld.c
@@ -0,0 +1,455 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/delay.h>
+#include <linux/dma-mapping.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_CTXLD_DEVNAME		"dcss_ctxld"
+
+#define DCSS_CTXLD_CONTROL_STATUS	0x0
+#define   CTXLD_ENABLE			BIT(0)
+#define   ARB_SEL			BIT(1)
+#define   RD_ERR_EN			BIT(2)
+#define   DB_COMP_EN			BIT(3)
+#define   SB_HP_COMP_EN			BIT(4)
+#define   SB_LP_COMP_EN			BIT(5)
+#define   DB_PEND_SB_REC_EN		BIT(6)
+#define   SB_PEND_DISP_ACTIVE_EN	BIT(7)
+#define   AHB_ERR_EN			BIT(8)
+#define   RD_ERR			BIT(16)
+#define   DB_COMP			BIT(17)
+#define   SB_HP_COMP			BIT(18)
+#define   SB_LP_COMP			BIT(19)
+#define   DB_PEND_SB_REC		BIT(20)
+#define   SB_PEND_DISP_ACTIVE		BIT(21)
+#define   AHB_ERR			BIT(22)
+#define DCSS_CTXLD_DB_BASE_ADDR		0x10
+#define DCSS_CTXLD_DB_COUNT		0x14
+#define DCSS_CTXLD_SB_BASE_ADDR		0x18
+#define DCSS_CTXLD_SB_COUNT		0x1C
+#define   SB_HP_COUNT_POS		0
+#define   SB_HP_COUNT_MASK		0xffff
+#define   SB_LP_COUNT_POS		16
+#define   SB_LP_COUNT_MASK		0xffff0000
+#define DCSS_AHB_ERR_ADDR		0x20
+
+#define CTXLD_IRQ_NAME			"ctx_ld"
+#define CTXLD_IRQ_COMPLETION		(DB_COMP | SB_HP_COMP | SB_LP_COMP)
+#define CTXLD_IRQ_ERROR			(RD_ERR | DB_PEND_SB_REC | AHB_ERR)
+
+/* The following sizes are in context loader entries, 8 bytes each. */
+#define CTXLD_DB_CTX_ENTRIES		1024	/* max 65536 */
+#define CTXLD_SB_LP_CTX_ENTRIES		10240	/* max 65536 */
+#define CTXLD_SB_HP_CTX_ENTRIES		20000	/* max 65536 */
+#define CTXLD_SB_CTX_ENTRIES		(CTXLD_SB_LP_CTX_ENTRIES + \
+					 CTXLD_SB_HP_CTX_ENTRIES)
+
+/* Sizes, in entries, of the DB, SB_HP and SB_LP context regions. */
+static u16 dcss_ctxld_ctx_size[3] = {
+	CTXLD_DB_CTX_ENTRIES,
+	CTXLD_SB_HP_CTX_ENTRIES,
+	CTXLD_SB_LP_CTX_ENTRIES
+};
+
+/* this represents an entry in the context loader map */
+struct dcss_ctxld_item {
+	u32 val;
+	u32 ofs;
+};
+
+#define CTX_ITEM_SIZE			sizeof(struct dcss_ctxld_item)
+
+struct dcss_ctxld {
+	struct device *dev;
+	void __iomem *ctxld_reg;
+	int irq;
+	bool irq_en;
+
+	struct dcss_ctxld_item *db[2];
+	struct dcss_ctxld_item *sb_hp[2];
+	struct dcss_ctxld_item *sb_lp[2];
+
+	dma_addr_t db_paddr[2];
+	dma_addr_t sb_paddr[2];
+
+	u16 ctx_size[2][3]; /* holds the sizes of DB, SB_HP and SB_LP ctx */
+	u8 current_ctx;
+
+	bool in_use;
+	bool armed;
+
+	spinlock_t lock; /* protects concurent access to private data */
+
+	void (*dtg_disable_cb)(void *data);
+	void *dtg_disable_data;
+};
+
+static int __dcss_ctxld_enable(struct dcss_ctxld *ctxld);
+
+static irqreturn_t dcss_ctxld_irq_handler(int irq, void *data)
+{
+	struct dcss_ctxld *ctxld = data;
+	u32 irq_status;
+
+	irq_status = dcss_readl(ctxld->ctxld_reg + DCSS_CTXLD_CONTROL_STATUS);
+
+	if (irq_status & CTXLD_IRQ_COMPLETION &&
+	    !(irq_status & CTXLD_ENABLE) && ctxld->in_use) {
+		ctxld->in_use = false;
+
+		if (ctxld->dtg_disable_cb) {
+			ctxld->dtg_disable_cb(ctxld->dtg_disable_data);
+			ctxld->dtg_disable_cb = NULL;
+			ctxld->dtg_disable_data = NULL;
+		}
+	} else if (irq_status & CTXLD_IRQ_ERROR) {
+		/*
+		 * Except for throwing an error message and clearing the status
+		 * register, there's not much we can do here.
+		 */
+		dev_err(ctxld->dev, "ctxld: error encountered: %08x\n",
+			irq_status);
+		dev_err(ctxld->dev, "ctxld: db=%d, sb_hp=%d, sb_lp=%d\n",
+			ctxld->ctx_size[ctxld->current_ctx ^ 1][CTX_DB],
+			ctxld->ctx_size[ctxld->current_ctx ^ 1][CTX_SB_HP],
+			ctxld->ctx_size[ctxld->current_ctx ^ 1][CTX_SB_LP]);
+	}
+
+	dcss_clr(irq_status & (CTXLD_IRQ_ERROR | CTXLD_IRQ_COMPLETION),
+		 ctxld->ctxld_reg + DCSS_CTXLD_CONTROL_STATUS);
+
+	return IRQ_HANDLED;
+}
+
+static int dcss_ctxld_irq_config(struct dcss_ctxld *ctxld,
+				 struct platform_device *pdev)
+{
+	int ret;
+
+	ctxld->irq = platform_get_irq_byname(pdev, CTXLD_IRQ_NAME);
+	if (ctxld->irq < 0) {
+		dev_err(ctxld->dev, "ctxld: can't get irq number\n");
+		return ctxld->irq;
+	}
+
+	ret = devm_request_irq(ctxld->dev, ctxld->irq,
+			       dcss_ctxld_irq_handler,
+			       IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
+			       DCSS_CTXLD_DEVNAME, ctxld);
+	if (ret) {
+		dev_err(ctxld->dev, "ctxld: irq request failed.\n");
+		return ret;
+	}
+
+	ctxld->irq_en = true;
+
+	return 0;
+}
+
+void dcss_ctxld_hw_cfg(struct dcss_ctxld *ctxld)
+{
+	dcss_writel(RD_ERR_EN | SB_HP_COMP_EN |
+		    DB_PEND_SB_REC_EN | AHB_ERR_EN | RD_ERR | AHB_ERR,
+		    ctxld->ctxld_reg + DCSS_CTXLD_CONTROL_STATUS);
+}
+
+static void dcss_ctxld_free_ctx(struct dcss_ctxld *ctxld)
+{
+	struct dcss_ctxld_item *ctx;
+	int i;
+
+	for (i = 0; i < 2; i++) {
+		if (ctxld->db[i]) {
+			dmam_free_coherent(ctxld->dev,
+					   CTXLD_DB_CTX_ENTRIES * sizeof(*ctx),
+					   ctxld->db[i], ctxld->db_paddr[i]);
+			ctxld->db[i] = NULL;
+			ctxld->db_paddr[i] = 0;
+		}
+
+		if (ctxld->sb_hp[i]) {
+			dmam_free_coherent(ctxld->dev,
+					   CTXLD_SB_CTX_ENTRIES * sizeof(*ctx),
+					   ctxld->sb_hp[i], ctxld->sb_paddr[i]);
+			ctxld->sb_hp[i] = NULL;
+			ctxld->sb_paddr[i] = 0;
+		}
+	}
+}
+
+static int dcss_ctxld_alloc_ctx(struct dcss_ctxld *ctxld)
+{
+	struct dcss_ctxld_item *ctx;
+	int i;
+	dma_addr_t dma_handle;
+
+	for (i = 0; i < 2; i++) {
+		ctx = dmam_alloc_coherent(ctxld->dev,
+					  CTXLD_DB_CTX_ENTRIES * sizeof(*ctx),
+					  &dma_handle, GFP_KERNEL);
+		if (!ctx)
+			return -ENOMEM;
+
+		ctxld->db[i] = ctx;
+		ctxld->db_paddr[i] = dma_handle;
+
+		ctx = dmam_alloc_coherent(ctxld->dev,
+					  CTXLD_SB_CTX_ENTRIES * sizeof(*ctx),
+					  &dma_handle, GFP_KERNEL);
+		if (!ctx)
+			return -ENOMEM;
+
+		ctxld->sb_hp[i] = ctx;
+		ctxld->sb_lp[i] = ctx + CTXLD_SB_HP_CTX_ENTRIES;
+
+		ctxld->sb_paddr[i] = dma_handle;
+	}
+
+	return 0;
+}
+
+int dcss_ctxld_init(struct dcss_dev *dcss, unsigned long ctxld_base)
+{
+	struct dcss_ctxld *ctxld;
+	int ret;
+
+	ctxld = devm_kzalloc(dcss->dev, sizeof(struct dcss_ctxld),
+			     GFP_KERNEL);
+	if (!ctxld)
+		return -ENOMEM;
+
+	dcss->ctxld = ctxld;
+	ctxld->dev = dcss->dev;
+
+	spin_lock_init(&ctxld->lock);
+
+	ret = dcss_ctxld_alloc_ctx(ctxld);
+	if (ret) {
+		dev_err(dcss->dev, "ctxld: cannot allocate context memory.\n");
+		goto err;
+	}
+
+	ctxld->ctxld_reg = devm_ioremap(dcss->dev, ctxld_base, SZ_4K);
+	if (!ctxld->ctxld_reg) {
+		dev_err(dcss->dev, "ctxld: unable to remap ctxld base\n");
+		ret = -ENOMEM;
+		goto err;
+	}
+
+	ret = dcss_ctxld_irq_config(ctxld, to_platform_device(dcss->dev));
+	if (ret)
+		goto err_irq;
+
+	dcss_ctxld_hw_cfg(ctxld);
+
+	return 0;
+
+err_irq:
+	devm_iounmap(ctxld->dev, ctxld->ctxld_reg);
+
+err:
+	dcss_ctxld_free_ctx(ctxld);
+	devm_kfree(ctxld->dev, ctxld);
+
+	return ret;
+}
+
+void dcss_ctxld_exit(struct dcss_ctxld *ctxld)
+{
+	devm_free_irq(ctxld->dev, ctxld->irq, ctxld);
+
+	if (ctxld->ctxld_reg)
+		devm_iounmap(ctxld->dev, ctxld->ctxld_reg);
+
+	dcss_ctxld_free_ctx(ctxld);
+	devm_kfree(ctxld->dev, ctxld);
+}
+
+static int __dcss_ctxld_enable(struct dcss_ctxld *ctxld)
+{
+	int curr_ctx = ctxld->current_ctx;
+	u32 db_base, sb_base, sb_count;
+	u32 sb_hp_cnt, sb_lp_cnt, db_cnt;
+	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(ctxld->dev);
+
+	if (!dcss)
+		return 0;
+
+	dcss_dpr_write_sysctrl(dcss->dpr);
+
+	dcss_scaler_write_sclctrl(dcss->scaler);
+
+	if (dcss_dtrc_is_running(dcss->dtrc)) {
+		dcss_dtrc_switch_banks(dcss->dtrc);
+		ctxld->armed = true;
+	}
+
+	sb_hp_cnt = ctxld->ctx_size[curr_ctx][CTX_SB_HP];
+	sb_lp_cnt = ctxld->ctx_size[curr_ctx][CTX_SB_LP];
+	db_cnt = ctxld->ctx_size[curr_ctx][CTX_DB];
+
+	/* make sure SB_LP context area comes after SB_HP */
+	if (sb_lp_cnt &&
+	    ctxld->sb_lp[curr_ctx] != ctxld->sb_hp[curr_ctx] + sb_hp_cnt) {
+		struct dcss_ctxld_item *sb_lp_adjusted;
+
+		sb_lp_adjusted = ctxld->sb_hp[curr_ctx] + sb_hp_cnt;
+
+		memcpy(sb_lp_adjusted, ctxld->sb_lp[curr_ctx],
+		       sb_lp_cnt * CTX_ITEM_SIZE);
+	}
+
+	db_base = db_cnt ? ctxld->db_paddr[curr_ctx] : 0;
+
+	dcss_writel(db_base, ctxld->ctxld_reg + DCSS_CTXLD_DB_BASE_ADDR);
+	dcss_writel(db_cnt, ctxld->ctxld_reg + DCSS_CTXLD_DB_COUNT);
+
+	if (sb_hp_cnt)
+		sb_count = ((sb_hp_cnt << SB_HP_COUNT_POS) & SB_HP_COUNT_MASK) |
+			   ((sb_lp_cnt << SB_LP_COUNT_POS) & SB_LP_COUNT_MASK);
+	else
+		sb_count = (sb_lp_cnt << SB_HP_COUNT_POS) & SB_HP_COUNT_MASK;
+
+	sb_base = sb_count ? ctxld->sb_paddr[curr_ctx] : 0;
+
+	dcss_writel(sb_base, ctxld->ctxld_reg + DCSS_CTXLD_SB_BASE_ADDR);
+	dcss_writel(sb_count, ctxld->ctxld_reg + DCSS_CTXLD_SB_COUNT);
+
+	/* enable the context loader */
+	dcss_set(CTXLD_ENABLE, ctxld->ctxld_reg + DCSS_CTXLD_CONTROL_STATUS);
+
+	ctxld->in_use = true;
+
+	/*
+	 * Toggle the current context to the alternate one so that any updates
+	 * in the modules' settings take place there.
+	 */
+	ctxld->current_ctx ^= 1;
+
+	ctxld->ctx_size[ctxld->current_ctx][CTX_DB] = 0;
+	ctxld->ctx_size[ctxld->current_ctx][CTX_SB_HP] = 0;
+	ctxld->ctx_size[ctxld->current_ctx][CTX_SB_LP] = 0;
+
+	return 0;
+}
+
+int dcss_ctxld_enable(struct dcss_ctxld *ctxld)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ctxld->lock, flags);
+	ctxld->armed = true;
+	spin_unlock_irqrestore(&ctxld->lock, flags);
+
+	return 0;
+}
+
+void dcss_ctxld_kick(struct dcss_ctxld *ctxld)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ctxld->lock, flags);
+	if (ctxld->armed && !ctxld->in_use) {
+		ctxld->armed = false;
+		__dcss_ctxld_enable(ctxld);
+	}
+	spin_unlock_irqrestore(&ctxld->lock, flags);
+}
+
+void dcss_ctxld_write_irqsafe(struct dcss_ctxld *ctxld, u32 ctx_id, u32 val,
+			      u32 reg_ofs)
+{
+	int curr_ctx = ctxld->current_ctx;
+	struct dcss_ctxld_item *ctx[] = {
+		[CTX_DB] = ctxld->db[curr_ctx],
+		[CTX_SB_HP] = ctxld->sb_hp[curr_ctx],
+		[CTX_SB_LP] = ctxld->sb_lp[curr_ctx]
+	};
+	int item_idx = ctxld->ctx_size[curr_ctx][ctx_id];
+
+	if (item_idx + 1 > dcss_ctxld_ctx_size[ctx_id]) {
+		WARN_ON(1);
+		return;
+	}
+
+	ctx[ctx_id][item_idx].val = val;
+	ctx[ctx_id][item_idx].ofs = reg_ofs;
+	ctxld->ctx_size[curr_ctx][ctx_id] += 1;
+}
+
+void dcss_ctxld_write(struct dcss_ctxld *ctxld, u32 ctx_id,
+		      u32 val, u32 reg_ofs)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ctxld->lock, flags);
+	dcss_ctxld_write_irqsafe(ctxld, ctx_id, val, reg_ofs);
+	spin_unlock_irqrestore(&ctxld->lock, flags);
+}
+
+bool dcss_ctxld_is_flushed(struct dcss_ctxld *ctxld)
+{
+	return ctxld->ctx_size[ctxld->current_ctx][CTX_DB] == 0 &&
+		ctxld->ctx_size[ctxld->current_ctx][CTX_SB_HP] == 0 &&
+		ctxld->ctx_size[ctxld->current_ctx][CTX_SB_LP] == 0;
+}
+
+int dcss_ctxld_resume(struct dcss_ctxld *ctxld)
+{
+	dcss_ctxld_hw_cfg(ctxld);
+
+	if (!ctxld->irq_en) {
+		enable_irq(ctxld->irq);
+		ctxld->irq_en = true;
+	}
+
+	return 0;
+}
+
+int dcss_ctxld_suspend(struct dcss_ctxld *ctxld)
+{
+	int ret = 0;
+	int wait_time_ms = 0;
+	unsigned long flags;
+
+	dcss_ctxld_kick(ctxld);
+
+	while (ctxld->in_use && wait_time_ms < 500) {
+		msleep(20);
+		wait_time_ms += 20;
+	}
+
+	if (wait_time_ms > 500)
+		return -ETIMEDOUT;
+
+	spin_lock_irqsave(&ctxld->lock, flags);
+
+	if (ctxld->irq_en) {
+		disable_irq_nosync(ctxld->irq);
+		ctxld->irq_en = false;
+	}
+
+	/* reset context region and sizes */
+	ctxld->current_ctx = 0;
+	ctxld->ctx_size[0][CTX_DB] = 0;
+	ctxld->ctx_size[0][CTX_SB_HP] = 0;
+	ctxld->ctx_size[0][CTX_SB_LP] = 0;
+
+	spin_unlock_irqrestore(&ctxld->lock, flags);
+
+	return ret;
+}
+
+void dcss_ctxld_register_dtg_disable_cb(struct dcss_ctxld *ctxld,
+					void (*cb)(void *),
+					void *data)
+{
+	ctxld->dtg_disable_cb = cb;
+	ctxld->dtg_disable_data = data;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-dec400d.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-dec400d.c
@@ -0,0 +1,270 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+#include <linux/bitops.h>
+#include <linux/io.h>
+#include <drm/drm_fourcc.h>
+
+#include "dcss-dev.h"
+
+/* DEC400D registers offsets */
+#define DEC400D_READCONFIG_BASE		0x800
+#define DEC400D_READCONFIG(i)		(DEC400D_READCONFIG_BASE + ((i) << 2))
+#define   COMPRESSION_ENABLE_BIT	BIT(0)
+#define   COMPRESSION_FORMAT_POS	3
+#define   COMPRESSION_ALIGN_MODE_POS	16
+#define   TILE_ALIGN_MODE_POS		22
+#define   TILE_MODE_POS			25
+#define DEC400D_READBUFFERBASE0		0x900
+#define DEC400D_READCACHEBASE0		0x980
+#define DEC400D_CONTROL			0xB00
+#define DEC400D_CLEAR			0xB80
+#define DEC400D_READBUFFERBASE0		0x900
+#define DEC400D_READCACHEBASE0		0x980
+#define DEC400D_CONTROL			0xB00
+#define   DISABLE_COMPRESSION_BIT	BIT(1)
+#define   SHADOW_TRIGGER_BIT		BIT(29)
+#define DEC400_CFMT_ARGB8		0x0
+#define DEC400_CFMT_XRGB8		0x1
+#define DEC400_CFMT_AYUV		0x2
+#define DEC400_CFMT_UYVY		0x3
+#define DEC400_CFMT_YUY2		0x4
+#define DEC400_CFMT_YUV_ONLY		0x5
+#define DEC400_CFMT_UV_MIX		0x6
+#define DEC400_CFMT_ARGB4		0x7
+#define DEC400_CFMT_XRGB4		0x8
+#define DEC400_CFMT_A1R5G5B5		0x9
+#define DEC400_CFMT_X1R5G5B5		0xA
+#define DEC400_CFMT_R5G6B5		0xB
+#define DEC400_CFMT_Z24S8		0xC
+#define DEC400_CFMT_Z24			0xD
+#define DEC400_CFMT_Z16			0xE
+#define DEC400_CFMT_A2R10G10B10		0xF
+#define DEC400_CFMT_BAYER		0x10
+#define DEC400_CFMT_SIGNED_BAYER	0x11
+
+struct dcss_dec400d {
+	struct device *dev;
+	void __iomem *base_reg;
+	u32 base_ofs;
+	struct dcss_ctxld *ctxld;
+	u32 ctx_id;
+	bool bypass;		/* bypass or decompress */
+};
+
+static void dcss_dec400d_write(struct dcss_dec400d *dec400d,
+			       u32 value,
+			       u32 offset)
+{
+	dcss_ctxld_write(dec400d->ctxld, dec400d->ctx_id,
+			 value, dec400d->base_ofs + offset);
+}
+
+int dcss_dec400d_init(struct dcss_dev *dcss, unsigned long dec400d_base)
+{
+	struct dcss_dec400d *dec400d;
+	int ret;
+
+	dec400d = devm_kzalloc(dcss->dev, sizeof(*dec400d), GFP_KERNEL);
+	if (!dec400d)
+		return -ENOMEM;
+
+	dcss->dec400d = dec400d;
+	dec400d->dev = dcss->dev;
+	dec400d->ctxld = dcss->ctxld;
+
+	dec400d->base_reg = devm_ioremap(dcss->dev, dec400d_base, SZ_4K);
+	if (!dec400d->base_reg) {
+		dev_err(dcss->dev, "dec400d: unable to remap dec400d base\n");
+		ret = -ENOMEM;
+		goto free_mem;
+	}
+
+	dec400d->base_ofs = dec400d_base;
+
+	dec400d->ctx_id = CTX_SB_HP;
+
+	return 0;
+
+free_mem:
+	devm_kfree(dcss->dev, dcss->dec400d);
+	return ret;
+}
+
+void dcss_dec400d_exit(struct dcss_dec400d *dec400d)
+{
+	if (dec400d->base_reg)
+		devm_iounmap(dec400d->dev, dec400d->base_reg);
+
+	devm_kfree(dec400d->dev, dec400d);
+}
+
+void dcss_dec400d_read_config(struct dcss_dec400d *dec400d,
+			      u32 read_id,
+			      bool compress_en,
+			      u32 compress_format)
+{
+	u32 cformat = 0;
+	u32 read_config = 0x0;
+
+	/* TODO: using 'read_id' 0 by default */
+	if (read_id) {
+		WARN_ON(1);
+		return;
+	}
+
+	if (!compress_en)
+		goto config;
+
+	switch (compress_format) {
+	case _VIV_CFMT_ARGB8:
+		cformat = DEC400_CFMT_ARGB8;
+		break;
+	case _VIV_CFMT_XRGB8:
+		cformat = DEC400_CFMT_XRGB8;
+		break;
+	case _VIV_CFMT_AYUV:
+		cformat = DEC400_CFMT_AYUV;
+		break;
+	case _VIV_CFMT_UYVY:
+		cformat = DEC400_CFMT_UYVY;
+		break;
+	case _VIV_CFMT_YUY2:
+		cformat = DEC400_CFMT_YUY2;
+		break;
+	case _VIV_CFMT_YUV_ONLY:
+		cformat = DEC400_CFMT_YUV_ONLY;
+		break;
+	case _VIV_CFMT_UV_MIX:
+		cformat = DEC400_CFMT_UV_MIX;
+		break;
+	case _VIV_CFMT_ARGB4:
+		cformat = DEC400_CFMT_ARGB4;
+		break;
+	case _VIV_CFMT_XRGB4:
+		cformat = DEC400_CFMT_XRGB4;
+		break;
+	case _VIV_CFMT_A1R5G5B5:
+		cformat = DEC400_CFMT_A1R5G5B5;
+		break;
+	case _VIV_CFMT_X1R5G5B5:
+		cformat = DEC400_CFMT_X1R5G5B5;
+		break;
+	case _VIV_CFMT_R5G6B5:
+		cformat = DEC400_CFMT_R5G6B5;
+		break;
+	case _VIV_CFMT_Z24S8:
+		cformat = DEC400_CFMT_Z24S8;
+		break;
+	case _VIV_CFMT_Z24:
+		cformat = DEC400_CFMT_Z24;
+		break;
+	case _VIV_CFMT_Z16:
+		cformat = DEC400_CFMT_Z16;
+		break;
+	case _VIV_CFMT_A2R10G10B10:
+		cformat = DEC400_CFMT_A2R10G10B10;
+		break;
+	case _VIV_CFMT_BAYER:
+		cformat = DEC400_CFMT_BAYER;
+		break;
+	case _VIV_CFMT_SIGNED_BAYER:
+		cformat = DEC400_CFMT_SIGNED_BAYER;
+		break;
+	default:
+		/* TODO: not support yet */
+		WARN_ON(1);
+		return;
+	}
+
+	/* Dec compress format */
+	read_config |= cformat << COMPRESSION_FORMAT_POS;
+
+	/* ALIGN32_BYTE */
+	read_config |= 0x2 << COMPRESSION_ALIGN_MODE_POS;
+
+	/* TILE1_ALIGN */
+	read_config |= 0x0 << TILE_ALIGN_MODE_POS;
+
+	/* TILE8x4 */
+	read_config |= 0x3 << TILE_MODE_POS;
+
+	/* Compression Enable */
+	read_config |= COMPRESSION_ENABLE_BIT;
+
+config:
+	dcss_dec400d_write(dec400d, read_config, DEC400D_READCONFIG(read_id));
+}
+
+void dcss_dec400d_bypass(struct dcss_dec400d *dec400d)
+{
+	u32 control;
+
+	dcss_dec400d_read_config(dec400d, 0, false, 0);
+
+	control = dcss_readl(dec400d->base_reg + DEC400D_CONTROL);
+	dev_dbg(dec400d->dev, "%s: dec400d control = %#x\n", __func__, control);
+
+	control |= DISABLE_COMPRESSION_BIT;
+	dcss_dec400d_write(dec400d, control, DEC400D_CONTROL);
+
+	/* Trigger shadow registers */
+	control |= SHADOW_TRIGGER_BIT;
+	dcss_dec400d_write(dec400d, control, DEC400D_CONTROL);
+
+	dec400d->bypass = true;
+}
+
+void dcss_dec400d_shadow_trig(struct dcss_dec400d *dec400d)
+{
+	u32 control;
+
+	/* do nothing */
+	if (dec400d->bypass)
+		return;
+
+	control = dcss_readl(dec400d->base_reg + DEC400D_CONTROL);
+
+	/* Trigger shadow registers */
+	control |= SHADOW_TRIGGER_BIT;
+	dcss_dec400d_write(dec400d, control, DEC400D_CONTROL);
+}
+
+void dcss_dec400d_addr_set(struct dcss_dec400d *dec400d, u32 baddr, u32 caddr)
+{
+	/* set frame buffer base addr */
+	dcss_dec400d_write(dec400d, baddr, DEC400D_READBUFFERBASE0);
+
+	/* set tile status cache addr */
+	dcss_dec400d_write(dec400d, caddr, DEC400D_READCACHEBASE0);
+
+	dec400d->bypass = false;
+}
+
+void dcss_dec400d_fast_clear_config(struct dcss_dec400d *dec400d,
+				    u32 fc_value,
+				    bool enable)
+{
+	dcss_dec400d_write(dec400d, fc_value, DEC400D_CLEAR);
+}
+
+void dcss_dec400d_enable(struct dcss_dec400d *dec400d)
+{
+	u32 control;
+
+	if (dec400d->bypass)
+		return;
+
+	control = dcss_readl(dec400d->base_reg + DEC400D_CONTROL);
+
+	/* enable compression */
+	control &= ~(DISABLE_COMPRESSION_BIT);
+	dcss_dec400d_write(dec400d, control, DEC400D_CONTROL);
+
+	/* Trigger shadow registers */
+	control |= SHADOW_TRIGGER_BIT;
+	dcss_dec400d_write(dec400d, control, DEC400D_CONTROL);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-dev.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-dev.c
@@ -0,0 +1,381 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/clk.h>
+#include <linux/of_device.h>
+#include <linux/of_graph.h>
+#include <linux/pm_runtime.h>
+#include <linux/pm_qos.h>
+#include <linux/busfreq-imx.h>
+#include <drm/drm_modeset_helper.h>
+
+#include "dcss-dev.h"
+
+static void dcss_clocks_enable(struct dcss_dev *dcss)
+{
+	if (dcss->clks_on)
+		return;
+
+	if (dcss->hdmi_output) {
+		clk_prepare_enable(dcss->pll_phy_ref_clk);
+		clk_prepare_enable(dcss->pll_src_clk);
+	}
+
+	clk_prepare_enable(dcss->axi_clk);
+	clk_prepare_enable(dcss->apb_clk);
+	clk_prepare_enable(dcss->rtrm_clk);
+	clk_prepare_enable(dcss->dtrc_clk);
+	clk_prepare_enable(dcss->pix_clk);
+
+	dcss->clks_on = true;
+}
+
+static void dcss_clocks_disable(struct dcss_dev *dcss)
+{
+	if (!dcss->clks_on)
+		return;
+
+	clk_disable_unprepare(dcss->pix_clk);
+	clk_disable_unprepare(dcss->dtrc_clk);
+	clk_disable_unprepare(dcss->rtrm_clk);
+	clk_disable_unprepare(dcss->apb_clk);
+	clk_disable_unprepare(dcss->axi_clk);
+
+	if (dcss->hdmi_output) {
+		clk_disable_unprepare(dcss->pll_src_clk);
+		clk_disable_unprepare(dcss->pll_phy_ref_clk);
+	}
+
+	dcss->clks_on = false;
+}
+
+static void dcss_busfreq_enable(struct dcss_dev *dcss)
+{
+	if (dcss->bus_freq_on)
+		return;
+
+	request_bus_freq(BUS_FREQ_HIGH);
+
+	dcss->bus_freq_on = true;
+}
+
+static void dcss_busfreq_disable(struct dcss_dev *dcss)
+{
+	if (!dcss->bus_freq_on)
+		return;
+
+	release_bus_freq(BUS_FREQ_HIGH);
+
+	dcss->bus_freq_on = false;
+}
+
+static int dcss_submodules_init(struct dcss_dev *dcss)
+{
+	int ret = 0;
+	u32 base_addr = dcss->start_addr;
+	const struct dcss_type_data *devtype = dcss->devtype;
+
+	dcss_clocks_enable(dcss);
+
+	ret = dcss_blkctl_init(dcss, base_addr + devtype->blkctl_ofs);
+	if (ret)
+		return ret;
+
+	ret = dcss_ctxld_init(dcss, base_addr + devtype->ctxld_ofs);
+	if (ret)
+		goto ctxld_err;
+
+	ret = dcss_dtg_init(dcss, base_addr + devtype->dtg_ofs);
+	if (ret)
+		goto dtg_err;
+
+	ret = dcss_ss_init(dcss, base_addr + devtype->ss_ofs);
+	if (ret)
+		goto ss_err;
+
+	ret = dcss_dtrc_init(dcss, base_addr + devtype->dtrc_ofs);
+	if (ret)
+		goto dtrc_err;
+
+	ret = dcss_dpr_init(dcss, base_addr + devtype->dpr_ofs);
+	if (ret)
+		goto dpr_err;
+
+	ret = dcss_wrscl_init(dcss, base_addr + devtype->wrscl_ofs);
+	if (ret)
+		goto wrscl_err;
+
+	ret = dcss_rdsrc_init(dcss, base_addr + devtype->rdsrc_ofs);
+	if (ret)
+		goto rdsrc_err;
+
+	ret = dcss_scaler_init(dcss, base_addr + devtype->scaler_ofs);
+	if (ret)
+		goto scaler_err;
+
+	ret = dcss_dec400d_init(dcss, base_addr + devtype->dec400d_ofs);
+	if (ret)
+		goto dec400d_err;
+
+	ret = dcss_hdr10_init(dcss, base_addr + devtype->hdr10_ofs);
+	if (ret)
+		goto hdr10_err;
+
+	return 0;
+
+hdr10_err:
+	dcss_dec400d_exit(dcss->dec400d);
+
+dec400d_err:
+	dcss_scaler_exit(dcss->scaler);
+
+scaler_err:
+	dcss_rdsrc_exit(dcss->rdsrc);
+
+rdsrc_err:
+	dcss_wrscl_exit(dcss->wrscl);
+
+wrscl_err:
+	dcss_dpr_exit(dcss->dpr);
+
+dpr_err:
+	dcss_dtrc_exit(dcss->dtrc);
+
+dtrc_err:
+	dcss_ss_exit(dcss->ss);
+
+ss_err:
+	dcss_dtg_exit(dcss->dtg);
+
+dtg_err:
+	dcss_ctxld_exit(dcss->ctxld);
+
+ctxld_err:
+	dcss_blkctl_exit(dcss->blkctl);
+
+	dcss_clocks_disable(dcss);
+
+	return ret;
+}
+
+static void dcss_submodules_stop(struct dcss_dev *dcss)
+{
+	dcss_clocks_enable(dcss);
+	dcss_hdr10_exit(dcss->hdr10);
+	dcss_dec400d_exit(dcss->dec400d);
+	dcss_scaler_exit(dcss->scaler);
+	dcss_rdsrc_exit(dcss->rdsrc);
+	dcss_wrscl_exit(dcss->wrscl);
+	dcss_dpr_exit(dcss->dpr);
+	dcss_dtrc_exit(dcss->dtrc);
+	dcss_ss_exit(dcss->ss);
+	dcss_dtg_exit(dcss->dtg);
+	dcss_ctxld_exit(dcss->ctxld);
+	dcss_blkctl_exit(dcss->blkctl);
+	dcss_clocks_disable(dcss);
+}
+
+static int dcss_clks_init(struct dcss_dev *dcss)
+{
+	int i;
+	struct {
+		const char *id;
+		struct clk **clk;
+		bool required;
+	} clks[] = {
+		{"apb",   &dcss->apb_clk, true},
+		{"axi",   &dcss->axi_clk, true},
+		{"pix",   &dcss->pix_clk, true},
+		{"rtrm",  &dcss->rtrm_clk, true},
+		{"dtrc",  &dcss->dtrc_clk, true},
+		{"pll_src",  &dcss->pll_src_clk, dcss->hdmi_output},
+		{"pll_phy_ref",  &dcss->pll_phy_ref_clk, dcss->hdmi_output},
+	};
+
+	for (i = 0; i < ARRAY_SIZE(clks); i++) {
+		*clks[i].clk = devm_clk_get(dcss->dev, clks[i].id);
+		if (IS_ERR(*clks[i].clk) && clks[i].required) {
+			dev_err(dcss->dev, "failed to get %s clock\n",
+				clks[i].id);
+			return PTR_ERR(*clks[i].clk);
+		}
+	}
+
+	dcss->clks_on = false;
+
+	return 0;
+}
+
+static void dcss_clks_release(struct dcss_dev *dcss)
+{
+	devm_clk_put(dcss->dev, dcss->dtrc_clk);
+	devm_clk_put(dcss->dev, dcss->rtrm_clk);
+	devm_clk_put(dcss->dev, dcss->pix_clk);
+	devm_clk_put(dcss->dev, dcss->axi_clk);
+	devm_clk_put(dcss->dev, dcss->apb_clk);
+}
+
+struct dcss_dev *dcss_dev_create(struct device *dev, bool hdmi_output)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	int ret;
+	struct resource *res;
+	struct dcss_dev *dcss;
+	const struct dcss_type_data *devtype;
+
+	devtype = of_device_get_match_data(dev);
+	if (!devtype) {
+		dev_err(dev, "no device match found\n");
+		return ERR_PTR(-ENODEV);
+	}
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res) {
+		dev_err(dev, "cannot get memory resource\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	dcss = devm_kzalloc(dev, sizeof(struct dcss_dev), GFP_KERNEL);
+	if (!dcss)
+		return ERR_PTR(-ENOMEM);
+
+	dcss->dev = dev;
+	dcss->devtype = devtype;
+	dcss->hdmi_output = hdmi_output;
+
+	ret = dcss_clks_init(dcss);
+	if (ret) {
+		dev_err(dev, "clocks initialization failed\n");
+		goto err;
+	}
+
+	dcss->of_port = of_graph_get_port_by_id(dev->of_node, 0);
+	if (!dcss->of_port) {
+		dev_err(dev, "no port@0 node in %s\n", dev->of_node->full_name);
+		ret = -ENODEV;
+		goto clks_err;
+	}
+
+	dcss->start_addr = res->start;
+
+	ret = dcss_submodules_init(dcss);
+	if (ret) {
+		dev_err(dev, "submodules initialization failed\n");
+		goto clks_err;
+	}
+
+	pm_runtime_enable(dev);
+
+	return dcss;
+
+clks_err:
+	dcss_clks_release(dcss);
+
+err:
+	devm_kfree(dcss->dev, dcss);
+
+	return ERR_PTR(ret);
+}
+
+void dcss_dev_destroy(struct dcss_dev *dcss)
+{
+	pm_runtime_disable(dcss->dev);
+
+	dcss_submodules_stop(dcss);
+
+	dcss_clks_release(dcss);
+
+	devm_kfree(dcss->dev, dcss);
+}
+
+#ifdef CONFIG_PM_SLEEP
+int dcss_dev_suspend(struct device *dev)
+{
+	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
+	int ret;
+
+	if (!dcss)
+		return 0;
+
+	drm_mode_config_helper_suspend(dcss_drv_dev_to_drm(dev));
+
+	if (pm_runtime_suspended(dev))
+		return 0;
+
+	ret = dcss_ctxld_suspend(dcss->ctxld);
+	if (ret)
+		return ret;
+
+	dcss_clocks_disable(dcss);
+
+	dcss_busfreq_disable(dcss);
+
+	return 0;
+}
+
+int dcss_dev_resume(struct device *dev)
+{
+	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
+
+	if (!dcss)
+		return 0;
+
+	if (pm_runtime_suspended(dev)) {
+		drm_mode_config_helper_resume(dcss_drv_dev_to_drm(dev));
+		return 0;
+	}
+
+	dcss_busfreq_enable(dcss);
+
+	dcss_clocks_enable(dcss);
+
+	dcss_blkctl_cfg(dcss->blkctl);
+
+	dcss_ctxld_resume(dcss->ctxld);
+
+	drm_mode_config_helper_resume(dcss_drv_dev_to_drm(dev));
+
+	return 0;
+}
+#endif /* CONFIG_PM_SLEEP */
+
+#ifdef CONFIG_PM
+int dcss_dev_runtime_suspend(struct device *dev)
+{
+	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
+	int ret;
+
+	if (!dcss)
+		return 0;
+
+	ret = dcss_ctxld_suspend(dcss->ctxld);
+	if (ret)
+		return ret;
+
+	dcss_clocks_disable(dcss);
+
+	dcss_busfreq_disable(dcss);
+
+	return 0;
+}
+
+int dcss_dev_runtime_resume(struct device *dev)
+{
+	struct dcss_dev *dcss = dcss_drv_dev_to_dcss(dev);
+
+	if (!dcss)
+		return 0;
+
+	dcss_busfreq_enable(dcss);
+
+	dcss_clocks_enable(dcss);
+
+	dcss_blkctl_cfg(dcss->blkctl);
+
+	dcss_ctxld_resume(dcss->ctxld);
+
+	return 0;
+}
+#endif /* CONFIG_PM */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-dev.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-dev.h
@@ -0,0 +1,359 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2019 NXP.
+ */
+
+#ifndef __DCSS_PRV_H__
+#define __DCSS_PRV_H__
+
+#include <drm/drm_atomic.h>
+#include <drm/drm_fourcc.h>
+#include <linux/io.h>
+#include <video/videomode.h>
+
+#define SET			0x04
+#define CLR			0x08
+#define TGL			0x0C
+
+#define dcss_writel(v, c)	writel((v), (c))
+#define dcss_readl(c)		readl(c)
+#define dcss_set(v, c)		writel((v), (c) + SET)
+#define dcss_clr(v, c)		writel((v), (c) + CLR)
+#define dcss_toggle(v, c)	writel((v), (c) + TGL)
+
+static inline void dcss_update(u32 v, u32 m, void __iomem *c)
+{
+	writel((readl(c) & ~(m)) | (v), (c));
+}
+
+#define DCSS_DBG_REG(reg)	{.name = #reg, .ofs = reg}
+
+enum {
+	DCSS_IMX8MQ = 0,
+};
+
+struct dcss_type_data {
+	const char *name;
+	u32 blkctl_ofs;
+	u32 ctxld_ofs;
+	u32 rdsrc_ofs;
+	u32 wrscl_ofs;
+	u32 dtg_ofs;
+	u32 scaler_ofs;
+	u32 ss_ofs;
+	u32 dpr_ofs;
+	u32 dtrc_ofs;
+	u32 dec400d_ofs;
+	u32 hdr10_ofs;
+};
+
+struct dcss_debug_reg {
+	char *name;
+	u32 ofs;
+};
+
+enum dcss_ctxld_ctx_type {
+	CTX_DB,
+	CTX_SB_HP, /* high-priority */
+	CTX_SB_LP, /* low-priority  */
+};
+
+struct dcss_dev {
+	struct device *dev;
+	const struct dcss_type_data *devtype;
+	struct device_node *of_port;
+
+	u32 start_addr;
+
+	struct dcss_blkctl *blkctl;
+	struct dcss_ctxld *ctxld;
+	struct dcss_dpr *dpr;
+	struct dcss_dtg *dtg;
+	struct dcss_ss *ss;
+	struct dcss_hdr10 *hdr10;
+	struct dcss_scaler *scaler;
+	struct dcss_dtrc *dtrc;
+	struct dcss_dec400d *dec400d;
+	struct dcss_wrscl *wrscl;
+	struct dcss_rdsrc *rdsrc;
+
+	struct clk *apb_clk;
+	struct clk *axi_clk;
+	struct clk *pix_clk;
+	struct clk *rtrm_clk;
+	struct clk *dtrc_clk;
+	struct clk *pll_src_clk;
+	struct clk *pll_phy_ref_clk;
+
+	void (*dcss_disable_callback)(void *data);
+
+	bool clks_on;
+	bool bus_freq_on;
+	bool hdmi_output;
+};
+
+enum dcss_color_space {
+	DCSS_COLORSPACE_RGB,
+	DCSS_COLORSPACE_YUV,
+	DCSS_COLORSPACE_UNKNOWN,
+};
+
+struct dcss_dev *dcss_drv_dev_to_dcss(struct device *dev);
+struct drm_device *dcss_drv_dev_to_drm(struct device *dev);
+struct dcss_dev *dcss_dev_create(struct device *dev, bool mipi_output);
+void dcss_dev_destroy(struct dcss_dev *dcss);
+int dcss_dev_runtime_suspend(struct device *dev);
+int dcss_dev_runtime_resume(struct device *dev);
+int dcss_dev_suspend(struct device *dev);
+int dcss_dev_resume(struct device *dev);
+
+/* BLKCTL */
+int dcss_blkctl_init(struct dcss_dev *dcss, unsigned long blkctl_base);
+void dcss_blkctl_cfg(struct dcss_blkctl *blkctl);
+void dcss_blkctl_exit(struct dcss_blkctl *blkctl);
+
+/* CTXLD */
+int dcss_ctxld_init(struct dcss_dev *dcss, unsigned long ctxld_base);
+void dcss_ctxld_exit(struct dcss_ctxld *ctxld);
+void dcss_ctxld_write(struct dcss_ctxld *ctxld, u32 ctx_id,
+		      u32 val, u32 reg_idx);
+int dcss_ctxld_resume(struct dcss_ctxld *dcss_ctxld);
+int dcss_ctxld_suspend(struct dcss_ctxld *dcss_ctxld);
+void dcss_ctxld_write_irqsafe(struct dcss_ctxld *ctlxd, u32 ctx_id, u32 val,
+			      u32 reg_ofs);
+void dcss_ctxld_kick(struct dcss_ctxld *ctxld);
+bool dcss_ctxld_is_flushed(struct dcss_ctxld *ctxld);
+int dcss_ctxld_enable(struct dcss_ctxld *ctxld);
+void dcss_ctxld_register_dtg_disable_cb(struct dcss_ctxld *ctxld,
+					void (*cb)(void *),
+					void *data);
+void dcss_ctxld_register_dtrc_cb(struct dcss_ctxld *ctxld,
+				 bool (*cb)(void *),
+				 void *data);
+
+/* DPR */
+enum dcss_tile_type {
+	TILE_LINEAR = 0,
+	TILE_GPU_STANDARD,
+	TILE_GPU_SUPER,
+	TILE_VPU_YUV420,
+	TILE_VPU_VP9,
+};
+
+enum dcss_pix_size {
+	PIX_SIZE_8,
+	PIX_SIZE_16,
+	PIX_SIZE_32,
+};
+
+int dcss_dpr_init(struct dcss_dev *dcss, unsigned long dpr_base);
+void dcss_dpr_exit(struct dcss_dpr *dpr);
+void dcss_dpr_write_sysctrl(struct dcss_dpr *dpr);
+void dcss_dpr_set_res(struct dcss_dpr *dpr, int ch_num, u32 xres, u32 yres);
+void dcss_dpr_addr_set(struct dcss_dpr *dpr, int ch_num, u32 luma_base_addr,
+		       u32 chroma_base_addr, u16 pitch);
+void dcss_dpr_enable(struct dcss_dpr *dpr, int ch_num, bool en);
+void dcss_dpr_format_set(struct dcss_dpr *dpr, int ch_num,
+			 const struct drm_format_info *format, u64 modifier);
+void dcss_dpr_set_rotation(struct dcss_dpr *dpr, int ch_num, u32 rotation);
+
+/* DTG */
+int dcss_dtg_init(struct dcss_dev *dcss, unsigned long dtg_base);
+void dcss_dtg_exit(struct dcss_dtg *dtg);
+bool dcss_dtg_vblank_irq_valid(struct dcss_dtg *dtg);
+void dcss_dtg_vblank_irq_enable(struct dcss_dtg *dtg, bool en);
+void dcss_dtg_vblank_irq_clear(struct dcss_dtg *dtg);
+void dcss_dtg_sync_set(struct dcss_dtg *dtg, struct videomode *vm);
+void dcss_dtg_css_set(struct dcss_dtg *dtg, bool out_is_yuv);
+void dcss_dtg_enable(struct dcss_dtg *dtg, bool en,
+		     struct completion *dis_completion);
+bool dcss_dtg_is_enabled(struct dcss_dtg *dtg);
+void dcss_dtg_ctxld_kick_irq_enable(struct dcss_dtg *dtg, bool en);
+bool dcss_dtg_global_alpha_changed(struct dcss_dtg *dtg, int ch_num, int alpha);
+void dcss_dtg_plane_alpha_set(struct dcss_dtg *dtg, int ch_num,
+			      const struct drm_format_info *format, int alpha);
+void dcss_dtg_plane_pos_set(struct dcss_dtg *dtg, int ch_num,
+			    int px, int py, int pw, int ph);
+void dcss_dtg_ch_enable(struct dcss_dtg *dtg, int ch_num, bool en);
+
+/* SUBSAM */
+int dcss_ss_init(struct dcss_dev *dcss, unsigned long subsam_base);
+void dcss_ss_exit(struct dcss_ss *ss);
+void dcss_ss_enable(struct dcss_ss *ss);
+void dcss_ss_disable(struct dcss_ss *ss);
+void dcss_ss_subsam_set(struct dcss_ss *ss, bool output_is_yuv);
+void dcss_ss_sync_set(struct dcss_ss *ss, struct videomode *vm,
+		      bool phsync, bool pvsync);
+
+/* SCALER */
+int dcss_scaler_init(struct dcss_dev *dcss, unsigned long scaler_base);
+void dcss_scaler_exit(struct dcss_scaler *scl);
+void dcss_scaler_setup(struct dcss_scaler *scl, int ch_num,
+		       const struct drm_format_info *format,
+		       int src_xres, int src_yres, int dst_xres, int dst_yres,
+		       u32 vrefresh_hz);
+void dcss_scaler_ch_enable(struct dcss_scaler *scl, int ch_num, bool en);
+int dcss_scaler_get_min_max_ratios(struct dcss_scaler *scl, int ch_num,
+				   int *min, int *max);
+void dcss_scaler_write_sclctrl(struct dcss_scaler *scl);
+
+/* DEC400D */
+
+#define VIV_VIDMEM_METADATA_MAGIC fourcc_code('v', 'i', 'v', 'm')
+
+/* Compressed format now was defined same as dec400d, should be general. */
+typedef enum _VIV_COMPRESS_FMT
+{
+    _VIV_CFMT_ARGB8 = 0,
+    _VIV_CFMT_XRGB8,
+    _VIV_CFMT_AYUV,
+    _VIV_CFMT_UYVY,
+    _VIV_CFMT_YUY2,
+    _VIV_CFMT_YUV_ONLY,
+    _VIV_CFMT_UV_MIX,
+    _VIV_CFMT_ARGB4,
+    _VIV_CFMT_XRGB4,
+    _VIV_CFMT_A1R5G5B5,
+    _VIV_CFMT_X1R5G5B5,
+    _VIV_CFMT_R5G6B5,
+    _VIV_CFMT_Z24S8,
+    _VIV_CFMT_Z24,
+    _VIV_CFMT_Z16,
+    _VIV_CFMT_A2R10G10B10,
+    _VIV_CFMT_BAYER,
+    _VIV_CFMT_SIGNED_BAYER,
+    _VIV_CFMT_VAA16,
+    _VIV_CFMT_S8,
+
+    _VIV_CFMT_MAX,
+} _VIV_COMPRESS_FMT;
+
+/* Metadata for cross-device fd share with additional (ts) info. */
+typedef struct _VIV_VIDMEM_METADATA
+{
+    uint32_t magic;
+
+    int32_t  ts_fd;
+    void *   ts_dma_buf;
+
+    uint32_t fc_enabled;
+    uint32_t fc_value;
+    uint32_t fc_value_upper;
+
+    uint32_t compressed;
+    uint32_t compress_format;
+} _VIV_VIDMEM_METADATA;
+
+int dcss_dec400d_init(struct dcss_dev *dcss, unsigned long dec400d_base);
+void dcss_dec400d_exit(struct dcss_dec400d *dec400d);
+void dcss_dec400d_bypass(struct dcss_dec400d *dec400d);
+void dcss_dec400d_shadow_trig(struct dcss_dec400d *dec400d);
+void dcss_dec400d_enable(struct dcss_dec400d *dec400d);
+void dcss_dec400d_fast_clear_config(struct dcss_dec400d *dec400d,
+				    u32 fc_value,
+				    bool enable);
+void dcss_dec400d_read_config(struct dcss_dec400d *dec400d,
+			      u32 read_id,
+			      bool compress_en,
+			      u32 compress_format);
+void dcss_dec400d_addr_set(struct dcss_dec400d *dec400d, u32 baddr, u32 caddr);
+
+/* HDR10 */
+enum dcss_hdr10_nonlinearity {
+	NL_REC2084,
+	NL_REC709,
+	NL_BT1886,
+	NL_2100HLG,
+	NL_SRGB,
+};
+
+enum dcss_hdr10_pixel_range {
+	PR_LIMITED,
+	PR_FULL,
+};
+
+enum dcss_hdr10_gamut {
+	G_REC2020,
+	G_REC709,
+	G_REC601_NTSC,
+	G_REC601_PAL,
+	G_ADOBE_ARGB,
+};
+
+struct dcss_hdr10_pipe_cfg {
+	bool is_yuv;
+	enum dcss_hdr10_nonlinearity nl;
+	enum dcss_hdr10_pixel_range pr;
+	enum dcss_hdr10_gamut g;
+};
+
+int dcss_hdr10_init(struct dcss_dev *dcss, unsigned long hdr10_base);
+void dcss_hdr10_exit(struct dcss_hdr10 *hdr10);
+void dcss_hdr10_setup(struct dcss_hdr10 *hdr10, int ch_num,
+		      struct dcss_hdr10_pipe_cfg *ipipe_cfg,
+		      struct dcss_hdr10_pipe_cfg *opipe_cfg);
+
+/* enums common to both WRSCL and RDSRC */
+enum dcss_wrscl_rdsrc_psize {
+	PSIZE_64,
+	PSIZE_128,
+	PSIZE_256,
+	PSIZE_512,
+	PSIZE_1024,
+	PSIZE_2048,
+	PSIZE_4096,
+};
+
+enum dcss_wrscl_rdsrc_tsize {
+	TSIZE_64,
+	TSIZE_128,
+	TSIZE_256,
+	TSIZE_512,
+};
+
+enum dcss_wrscl_rdsrc_fifo_size {
+	FIFO_512,
+	FIFO_1024,
+	FIFO_2048,
+	FIFO_4096,
+};
+
+enum dcss_wrscl_rdsrc_bpp {
+	BPP_38, /* 38 bit unpacked components */
+	BPP_32_UPCONVERT,
+	BPP_32_10BIT_OUTPUT,
+	BPP_20, /* 10-bit YUV422 */
+	BPP_16, /* 8-bit YUV422 */
+};
+
+/* WRSCL */
+int dcss_wrscl_init(struct dcss_dev *dcss, unsigned long wrscl_base);
+void dcss_wrscl_exit(struct dcss_wrscl *wrscl);
+u32 dcss_wrscl_setup(struct dcss_wrscl *wrscl, u32 pix_format, u32 pix_clk_hz,
+		     u32 dst_xres, u32 dst_yres);
+void dcss_wrscl_enable(struct dcss_wrscl *wrscl);
+void dcss_wrscl_disable(struct dcss_wrscl *wrscl);
+
+/* RDSRC */
+int dcss_rdsrc_init(struct dcss_dev *dcss, unsigned long rdsrc_base);
+void dcss_rdsrc_exit(struct dcss_rdsrc *rdsrc);
+void dcss_rdsrc_setup(struct dcss_rdsrc *rdsrc, u32 pix_format, u32 dst_xres,
+		      u32 dst_yres, u32 base_addr);
+void dcss_rdsrc_enable(struct dcss_rdsrc *rdsrc);
+void dcss_rdsrc_disable(struct dcss_rdsrc *rdsrc);
+
+/* DTRC */
+int dcss_dtrc_init(struct dcss_dev *dcss, unsigned long dtrc_base);
+void dcss_dtrc_exit(struct dcss_dtrc *dtrc);
+void dcss_dtrc_bypass(struct dcss_dtrc *dtrc, int ch_num);
+void dcss_dtrc_set_format_mod(struct dcss_dtrc *dtrc, int ch_num, u64 modifier);
+void dcss_dtrc_addr_set(struct dcss_dtrc *dtrc, int ch_num,
+			u32 p1_ba, u32 p2_ba, uint64_t dec_table_ofs);
+bool dcss_dtrc_ch_running(struct dcss_dtrc *dtrc, int ch_num);
+bool dcss_dtrc_is_running(struct dcss_dtrc *dtrc);
+void dcss_dtrc_enable(struct dcss_dtrc *dtrc, int ch_num, bool enable);
+void dcss_dtrc_set_res(struct dcss_dtrc *dtrc, int ch_num,
+		       struct drm_plane_state *state, u32 *dtrc_w, u32 *dtrc_h);
+void dcss_dtrc_switch_banks(struct dcss_dtrc *dtrc);
+
+#endif /* __DCSS_PRV_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-dpr.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-dpr.c
@@ -0,0 +1,573 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_DPR_SYSTEM_CTRL0			0x000
+#define   RUN_EN				BIT(0)
+#define   SOFT_RESET				BIT(1)
+#define   REPEAT_EN				BIT(2)
+#define   SHADOW_LOAD_EN			BIT(3)
+#define   SW_SHADOW_LOAD_SEL			BIT(4)
+#define   BCMD2AXI_MSTR_ID_CTRL			BIT(16)
+#define DCSS_DPR_IRQ_MASK			0x020
+#define DCSS_DPR_IRQ_MASK_STATUS		0x030
+#define DCSS_DPR_IRQ_NONMASK_STATUS		0x040
+#define   IRQ_DPR_CTRL_DONE			BIT(0)
+#define   IRQ_DPR_RUN				BIT(1)
+#define   IRQ_DPR_SHADOW_LOADED			BIT(2)
+#define   IRQ_AXI_READ_ERR			BIT(3)
+#define   DPR2RTR_YRGB_FIFO_OVFL		BIT(4)
+#define   DPR2RTR_UV_FIFO_OVFL			BIT(5)
+#define   DPR2RTR_FIFO_LD_BUF_RDY_YRGB_ERR	BIT(6)
+#define   DPR2RTR_FIFO_LD_BUF_RDY_UV_ERR	BIT(7)
+#define DCSS_DPR_MODE_CTRL0			0x050
+#define   RTR_3BUF_EN				BIT(0)
+#define   RTR_4LINE_BUF_EN			BIT(1)
+#define   TILE_TYPE_POS				2
+#define   TILE_TYPE_MASK			GENMASK(4, 2)
+#define   YUV_EN				BIT(6)
+#define   COMP_2PLANE_EN			BIT(7)
+#define   PIX_SIZE_POS				8
+#define   PIX_SIZE_MASK				GENMASK(9, 8)
+#define   PIX_LUMA_UV_SWAP			BIT(10)
+#define   PIX_UV_SWAP				BIT(11)
+#define   B_COMP_SEL_POS			12
+#define   B_COMP_SEL_MASK			GENMASK(13, 12)
+#define   G_COMP_SEL_POS			14
+#define   G_COMP_SEL_MASK			GENMASK(15, 14)
+#define   R_COMP_SEL_POS			16
+#define   R_COMP_SEL_MASK			GENMASK(17, 16)
+#define   A_COMP_SEL_POS			18
+#define   A_COMP_SEL_MASK			GENMASK(19, 18)
+#define DCSS_DPR_FRAME_CTRL0			0x070
+#define   HFLIP_EN				BIT(0)
+#define   VFLIP_EN				BIT(1)
+#define   ROT_ENC_POS				2
+#define   ROT_ENC_MASK				GENMASK(3, 2)
+#define   ROT_FLIP_ORDER_EN			BIT(4)
+#define   PITCH_POS				16
+#define   PITCH_MASK				GENMASK(31, 16)
+#define DCSS_DPR_FRAME_1P_CTRL0			0x090
+#define DCSS_DPR_FRAME_1P_PIX_X_CTRL		0x0A0
+#define DCSS_DPR_FRAME_1P_PIX_Y_CTRL		0x0B0
+#define DCSS_DPR_FRAME_1P_BASE_ADDR		0x0C0
+#define DCSS_DPR_FRAME_2P_CTRL0			0x0E0
+#define DCSS_DPR_FRAME_2P_PIX_X_CTRL		0x0F0
+#define DCSS_DPR_FRAME_2P_PIX_Y_CTRL		0x100
+#define DCSS_DPR_FRAME_2P_BASE_ADDR		0x110
+#define DCSS_DPR_STATUS_CTRL0			0x130
+#define   STATUS_MUX_SEL_MASK			GENMASK(2, 0)
+#define   STATUS_SRC_SEL_POS			16
+#define   STATUS_SRC_SEL_MASK			GENMASK(18, 16)
+#define DCSS_DPR_STATUS_CTRL1			0x140
+#define DCSS_DPR_RTRAM_CTRL0			0x200
+#define   NUM_ROWS_ACTIVE			BIT(0)
+#define   THRES_HIGH_POS			1
+#define   THRES_HIGH_MASK			GENMASK(3, 1)
+#define   THRES_LOW_POS				4
+#define   THRES_LOW_MASK			GENMASK(6, 4)
+#define   ABORT_SEL				BIT(7)
+
+struct dcss_dpr_ch {
+	struct dcss_dpr *dpr;
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	struct drm_format_info format;
+	enum dcss_pix_size pix_size;
+	enum dcss_tile_type tile;
+	bool rtram_4line_en;
+	bool rtram_3buf_en;
+
+	u32 frame_ctrl;
+	u32 mode_ctrl;
+	u32 sys_ctrl;
+	u32 rtram_ctrl;
+
+	bool sys_ctrl_chgd;
+
+	u32 pitch;
+
+	int ch_num;
+	int irq;
+
+	bool use_dtrc;
+};
+
+struct dcss_dpr {
+	struct device *dev;
+	struct dcss_dtrc *dtrc;
+	struct dcss_ctxld *ctxld;
+	u32  ctx_id;
+
+	struct dcss_dpr_ch ch[3];
+};
+
+static void dcss_dpr_write(struct dcss_dpr_ch *ch, u32 val, u32 ofs)
+{
+	struct dcss_dpr *dpr = ch->dpr;
+
+	dcss_ctxld_write(dpr->ctxld, dpr->ctx_id, val, ch->base_ofs + ofs);
+}
+
+static int dcss_dpr_ch_init_all(struct dcss_dpr *dpr, unsigned long dpr_base)
+{
+	struct dcss_dpr_ch *ch;
+	int i;
+
+	for (i = 0; i < 3; i++) {
+		ch = &dpr->ch[i];
+
+		ch->base_ofs = dpr_base + i * 0x1000;
+
+		ch->base_reg = devm_ioremap(dpr->dev, ch->base_ofs, SZ_4K);
+		if (!ch->base_reg) {
+			dev_err(dpr->dev, "dpr: unable to remap ch %d base\n",
+				i);
+			return -ENOMEM;
+		}
+
+		ch->dpr = dpr;
+		ch->ch_num = i;
+
+		dcss_writel(0xff, ch->base_reg + DCSS_DPR_IRQ_MASK);
+	}
+
+	return 0;
+}
+
+int dcss_dpr_init(struct dcss_dev *dcss, unsigned long dpr_base)
+{
+	struct dcss_dpr *dpr;
+
+	dpr = devm_kzalloc(dcss->dev, sizeof(struct dcss_dpr), GFP_KERNEL);
+	if (!dpr)
+		return -ENOMEM;
+
+	dcss->dpr = dpr;
+	dpr->dev = dcss->dev;
+	dpr->ctxld = dcss->ctxld;
+	dpr->ctx_id = CTX_SB_HP;
+	dpr->dtrc = dcss->dtrc;
+
+	if (dcss_dpr_ch_init_all(dpr, dpr_base)) {
+		int i;
+
+		for (i = 0; i < 3; i++) {
+			if (dpr->ch[i].base_reg)
+				devm_iounmap(dpr->dev, dpr->ch[i].base_reg);
+		}
+
+		devm_kfree(dpr->dev, dpr);
+
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+void dcss_dpr_exit(struct dcss_dpr *dpr)
+{
+	int ch_no;
+
+	/* stop DPR on all channels */
+	for (ch_no = 0; ch_no < 3; ch_no++) {
+		struct dcss_dpr_ch *ch = &dpr->ch[ch_no];
+
+		dcss_writel(0, ch->base_reg + DCSS_DPR_SYSTEM_CTRL0);
+
+		if (ch->base_reg)
+			devm_iounmap(dpr->dev, ch->base_reg);
+	}
+
+	devm_kfree(dpr->dev, dpr);
+}
+
+static u32 dcss_dpr_x_pix_wide_adjust(struct dcss_dpr_ch *ch, u32 pix_wide,
+				      u32 pix_format)
+{
+	u8 pix_in_64byte_map[3][5] = {
+		/* LIN, GPU_STD, GPU_SUP, VPU_YUV420, VPU_VP9 */
+		{   64,       8,       8,          8,     16}, /* PIX_SIZE_8  */
+		{   32,       8,       8,          8,      8}, /* PIX_SIZE_16 */
+		{   16,       4,       4,          8,      8}, /* PIX_SIZE_32 */
+	};
+	u32 offset;
+	u32 div_64byte_mod, pix_in_64byte;
+
+	pix_in_64byte = pix_in_64byte_map[ch->pix_size][ch->tile];
+
+	if (pix_format == DRM_FORMAT_NV12_10LE40)
+		pix_wide = pix_wide * 10 / 8;
+
+	div_64byte_mod = pix_wide % pix_in_64byte;
+	offset = (div_64byte_mod == 0) ? 0 : (pix_in_64byte - div_64byte_mod);
+
+	return pix_wide + offset;
+}
+
+static u32 dcss_dpr_y_pix_high_adjust(struct dcss_dpr_ch *ch, u32 pix_high,
+				      u32 pix_format)
+{
+	u8 num_rows_buf = ch->rtram_4line_en ? 4 : 8;
+	u32 offset, pix_y_mod;
+
+	pix_y_mod = pix_high % num_rows_buf;
+	offset = pix_y_mod ? (num_rows_buf - pix_y_mod) : 0;
+
+	return pix_high + offset;
+}
+
+void dcss_dpr_set_res(struct dcss_dpr *dpr, int ch_num, u32 xres, u32 yres)
+{
+	struct dcss_dpr_ch *ch = &dpr->ch[ch_num];
+	u32 pix_format = ch->format.format;
+	u32 gap = DCSS_DPR_FRAME_2P_BASE_ADDR - DCSS_DPR_FRAME_1P_BASE_ADDR;
+	int plane, max_planes = 1;
+	u32 pix_x_wide, pix_y_high;
+
+	if (pix_format == DRM_FORMAT_NV12 ||
+	    pix_format == DRM_FORMAT_NV21 ||
+	    pix_format == DRM_FORMAT_NV12_10LE40)
+		max_planes = 2;
+
+	for (plane = 0; plane < max_planes; plane++) {
+		yres = plane == 1 ? yres >> 1 : yres;
+
+		pix_x_wide = dcss_dpr_x_pix_wide_adjust(ch, xres, pix_format);
+		pix_y_high = dcss_dpr_y_pix_high_adjust(ch, yres, pix_format);
+
+		if (plane == 0)
+			ch->pitch = pix_x_wide;
+
+		dcss_dpr_write(ch, pix_x_wide,
+			       DCSS_DPR_FRAME_1P_PIX_X_CTRL + plane * gap);
+		dcss_dpr_write(ch, pix_y_high,
+			       DCSS_DPR_FRAME_1P_PIX_Y_CTRL + plane * gap);
+
+		dcss_dpr_write(ch, ch->use_dtrc ? 7 : 2,
+			       DCSS_DPR_FRAME_1P_CTRL0 + plane * gap);
+	}
+}
+
+void dcss_dpr_addr_set(struct dcss_dpr *dpr, int ch_num, u32 luma_base_addr,
+		       u32 chroma_base_addr, u16 pitch)
+{
+	struct dcss_dpr_ch *ch = &dpr->ch[ch_num];
+
+	if (ch->use_dtrc) {
+		luma_base_addr = 0x0;
+		chroma_base_addr = 0x10000000;
+	}
+
+	if (!dcss_dtrc_ch_running(dpr->dtrc, ch_num)) {
+		dcss_dpr_write(ch, luma_base_addr, DCSS_DPR_FRAME_1P_BASE_ADDR);
+		dcss_dpr_write(ch, chroma_base_addr,
+			       DCSS_DPR_FRAME_2P_BASE_ADDR);
+	}
+
+	if (ch->use_dtrc)
+		pitch = ch->pitch;
+
+	ch->frame_ctrl &= ~PITCH_MASK;
+	ch->frame_ctrl |= (((u32)pitch << PITCH_POS) & PITCH_MASK);
+}
+
+static void dcss_dpr_argb_comp_sel(struct dcss_dpr_ch *ch, int a_sel, int r_sel,
+				   int g_sel, int b_sel)
+{
+	u32 sel;
+
+	sel = ((a_sel << A_COMP_SEL_POS) & A_COMP_SEL_MASK) |
+	      ((r_sel << R_COMP_SEL_POS) & R_COMP_SEL_MASK) |
+	      ((g_sel << G_COMP_SEL_POS) & G_COMP_SEL_MASK) |
+	      ((b_sel << B_COMP_SEL_POS) & B_COMP_SEL_MASK);
+
+	ch->mode_ctrl &= ~(A_COMP_SEL_MASK | R_COMP_SEL_MASK |
+			   G_COMP_SEL_MASK | B_COMP_SEL_MASK);
+	ch->mode_ctrl |= sel;
+}
+
+static void dcss_dpr_pix_size_set(struct dcss_dpr_ch *ch,
+				  const struct drm_format_info *format)
+{
+	u32 val;
+
+	switch (format->format) {
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV12_10LE40:
+		val = 0;
+		break;
+
+	case DRM_FORMAT_UYVY:
+	case DRM_FORMAT_VYUY:
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_YVYU:
+		val = 1;
+		break;
+
+	default:
+		val = 2;
+		break;
+	}
+
+	ch->pix_size = val;
+
+	ch->mode_ctrl &= ~PIX_SIZE_MASK;
+	ch->mode_ctrl |= ((val << PIX_SIZE_POS) & PIX_SIZE_MASK);
+}
+
+static void dcss_dpr_uv_swap(struct dcss_dpr_ch *ch, bool swap)
+{
+	ch->mode_ctrl &= ~PIX_UV_SWAP;
+	ch->mode_ctrl |= (swap ? PIX_UV_SWAP : 0);
+}
+
+static void dcss_dpr_y_uv_swap(struct dcss_dpr_ch *ch, bool swap)
+{
+	ch->mode_ctrl &= ~PIX_LUMA_UV_SWAP;
+	ch->mode_ctrl |= (swap ? PIX_LUMA_UV_SWAP : 0);
+}
+
+static void dcss_dpr_2plane_en(struct dcss_dpr_ch *ch, bool en)
+{
+	ch->mode_ctrl &= ~COMP_2PLANE_EN;
+	ch->mode_ctrl |= (en ? COMP_2PLANE_EN : 0);
+}
+
+static void dcss_dpr_yuv_en(struct dcss_dpr_ch *ch, bool en)
+{
+	ch->mode_ctrl &= ~YUV_EN;
+	ch->mode_ctrl |= (en ? YUV_EN : 0);
+}
+
+void dcss_dpr_enable(struct dcss_dpr *dpr, int ch_num, bool en)
+{
+	struct dcss_dpr_ch *ch = &dpr->ch[ch_num];
+	u32 sys_ctrl;
+
+	sys_ctrl = (en ? REPEAT_EN | RUN_EN : 0);
+
+	if (en) {
+		dcss_dpr_write(ch, ch->mode_ctrl, DCSS_DPR_MODE_CTRL0);
+		dcss_dpr_write(ch, ch->frame_ctrl, DCSS_DPR_FRAME_CTRL0);
+		dcss_dpr_write(ch, ch->rtram_ctrl, DCSS_DPR_RTRAM_CTRL0);
+	}
+
+	if (ch->sys_ctrl != sys_ctrl)
+		ch->sys_ctrl_chgd = true;
+
+	ch->sys_ctrl = sys_ctrl;
+}
+
+struct rgb_comp_sel {
+	u32 drm_format;
+	int a_sel;
+	int r_sel;
+	int g_sel;
+	int b_sel;
+};
+
+static struct rgb_comp_sel comp_sel_map[] = {
+	{DRM_FORMAT_ARGB8888, 3, 2, 1, 0},
+	{DRM_FORMAT_XRGB8888, 3, 2, 1, 0},
+	{DRM_FORMAT_ABGR8888, 3, 0, 1, 2},
+	{DRM_FORMAT_XBGR8888, 3, 0, 1, 2},
+	{DRM_FORMAT_RGBA8888, 0, 3, 2, 1},
+	{DRM_FORMAT_RGBX8888, 0, 3, 2, 1},
+	{DRM_FORMAT_BGRA8888, 0, 1, 2, 3},
+	{DRM_FORMAT_BGRX8888, 0, 1, 2, 3},
+};
+
+static int to_comp_sel(u32 pix_fmt, int *a_sel, int *r_sel, int *g_sel,
+		       int *b_sel)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(comp_sel_map); i++) {
+		if (comp_sel_map[i].drm_format == pix_fmt) {
+			*a_sel = comp_sel_map[i].a_sel;
+			*r_sel = comp_sel_map[i].r_sel;
+			*g_sel = comp_sel_map[i].g_sel;
+			*b_sel = comp_sel_map[i].b_sel;
+
+			return 0;
+		}
+	}
+
+	return -1;
+}
+
+static void dcss_dpr_rtram_set(struct dcss_dpr_ch *ch, u32 pix_format)
+{
+	u32 val, mask;
+
+	switch (pix_format) {
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV12_10LE40:
+		ch->rtram_3buf_en = true;
+		ch->rtram_4line_en = false;
+		break;
+
+	default:
+		ch->rtram_3buf_en = true;
+		ch->rtram_4line_en = true;
+		break;
+	}
+
+	val = (ch->rtram_4line_en ? RTR_4LINE_BUF_EN : 0);
+	val |= (ch->rtram_3buf_en ? RTR_3BUF_EN : 0);
+	mask = RTR_4LINE_BUF_EN | RTR_3BUF_EN;
+
+	ch->mode_ctrl &= ~mask;
+	ch->mode_ctrl |= (val & mask);
+
+	val = (ch->rtram_4line_en ? 0 : NUM_ROWS_ACTIVE);
+	val |= (3 << THRES_LOW_POS) & THRES_LOW_MASK;
+	val |= (4 << THRES_HIGH_POS) & THRES_HIGH_MASK;
+	mask = THRES_LOW_MASK | THRES_HIGH_MASK | NUM_ROWS_ACTIVE;
+
+	ch->rtram_ctrl &= ~mask;
+	ch->rtram_ctrl |= (val & mask);
+}
+
+static void dcss_dpr_setup_components(struct dcss_dpr_ch *ch,
+				      const struct drm_format_info *format)
+{
+	int a_sel, r_sel, g_sel, b_sel;
+	bool uv_swap, y_uv_swap;
+
+	switch (format->format) {
+	case DRM_FORMAT_YVYU:
+		uv_swap = true;
+		y_uv_swap = true;
+		break;
+
+	case DRM_FORMAT_VYUY:
+	case DRM_FORMAT_NV21:
+		uv_swap = true;
+		y_uv_swap = false;
+		break;
+
+	case DRM_FORMAT_YUYV:
+		uv_swap = false;
+		y_uv_swap = true;
+		break;
+
+	default:
+		uv_swap = false;
+		y_uv_swap = false;
+		break;
+	}
+
+	dcss_dpr_uv_swap(ch, uv_swap);
+
+	dcss_dpr_y_uv_swap(ch, y_uv_swap);
+
+	if (!format->is_yuv) {
+		if (!to_comp_sel(format->format, &a_sel, &r_sel,
+				 &g_sel, &b_sel)) {
+			dcss_dpr_argb_comp_sel(ch, a_sel, r_sel, g_sel, b_sel);
+		} else {
+			dcss_dpr_argb_comp_sel(ch, 3, 2, 1, 0);
+		}
+	} else {
+		dcss_dpr_argb_comp_sel(ch, 0, 0, 0, 0);
+	}
+}
+
+static void dcss_dpr_tile_set(struct dcss_dpr_ch *ch, uint64_t modifier)
+{
+	switch (ch->ch_num) {
+	case 0:
+		switch (modifier) {
+		case DRM_FORMAT_MOD_LINEAR:
+			ch->tile = TILE_LINEAR;
+			break;
+		case DRM_FORMAT_MOD_VIVANTE_TILED:
+			ch->tile = TILE_GPU_STANDARD;
+			break;
+		case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED_FC:
+			ch->tile = TILE_GPU_SUPER;
+			break;
+		default:
+			WARN_ON(1);
+			break;
+		}
+		break;
+	case 1:
+	case 2:
+		ch->tile = TILE_LINEAR;
+		break;
+	default:
+		WARN_ON(1);
+		return;
+	}
+
+	ch->mode_ctrl &= ~TILE_TYPE_MASK;
+	ch->mode_ctrl |= ((ch->tile << TILE_TYPE_POS) & TILE_TYPE_MASK);
+}
+
+void dcss_dpr_format_set(struct dcss_dpr *dpr, int ch_num,
+			 const struct drm_format_info *format, u64 modifier)
+{
+	struct dcss_dpr_ch *ch = &dpr->ch[ch_num];
+
+	ch->format = *format;
+	ch->use_dtrc = ch_num && modifier != DRM_FORMAT_MOD_LINEAR;
+
+	dcss_dpr_yuv_en(ch, format->is_yuv);
+
+	dcss_dpr_pix_size_set(ch, format);
+
+	dcss_dpr_setup_components(ch, format);
+
+	dcss_dpr_2plane_en(ch, format->num_planes == 2);
+
+	dcss_dpr_rtram_set(ch, format->format);
+
+	dcss_dpr_tile_set(ch, modifier);
+}
+
+/* This function will be called from interrupt context. */
+void dcss_dpr_write_sysctrl(struct dcss_dpr *dpr)
+{
+	int chnum;
+
+	for (chnum = 0; chnum < 3; chnum++) {
+		struct dcss_dpr_ch *ch = &dpr->ch[chnum];
+
+		if (ch->sys_ctrl_chgd) {
+			dcss_ctxld_write_irqsafe(dpr->ctxld, dpr->ctx_id,
+						 ch->sys_ctrl,
+						 ch->base_ofs +
+						 DCSS_DPR_SYSTEM_CTRL0);
+			ch->sys_ctrl_chgd = false;
+		}
+	}
+}
+
+void dcss_dpr_set_rotation(struct dcss_dpr *dpr, int ch_num, u32 rotation)
+{
+	struct dcss_dpr_ch *ch = &dpr->ch[ch_num];
+
+	ch->frame_ctrl &= ~(HFLIP_EN | VFLIP_EN | ROT_ENC_MASK);
+
+	ch->frame_ctrl |= rotation & DRM_MODE_REFLECT_X ? HFLIP_EN : 0;
+	ch->frame_ctrl |= rotation & DRM_MODE_REFLECT_Y ? VFLIP_EN : 0;
+
+	if (rotation & DRM_MODE_ROTATE_90)
+		ch->frame_ctrl |= 1 << ROT_ENC_POS;
+	else if (rotation & DRM_MODE_ROTATE_180)
+		ch->frame_ctrl |= 2 << ROT_ENC_POS;
+	else if (rotation & DRM_MODE_ROTATE_270)
+		ch->frame_ctrl |= 3 << ROT_ENC_POS;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-drv.c
@@ -0,0 +1,186 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/component.h>
+#include <drm/drm_of.h>
+
+#include "dcss-dev.h"
+#include "dcss-kms.h"
+
+struct dcss_drv {
+	struct dcss_dev *dcss;
+	struct dcss_kms_dev *kms;
+
+	bool is_componentized;
+};
+
+struct dcss_dev *dcss_drv_dev_to_dcss(struct device *dev)
+{
+	struct dcss_drv *mdrv = dev_get_drvdata(dev);
+
+	return mdrv ? mdrv->dcss : NULL;
+}
+
+struct drm_device *dcss_drv_dev_to_drm(struct device *dev)
+{
+	struct dcss_drv *mdrv = dev_get_drvdata(dev);
+
+	return mdrv ? &mdrv->kms->base : NULL;
+}
+
+static int dcss_drv_init(struct device *dev, bool componentized)
+{
+	struct dcss_drv *mdrv;
+	int err = 0;
+
+	mdrv = devm_kzalloc(dev, sizeof(*mdrv), GFP_KERNEL);
+	if (!mdrv)
+		return -ENOMEM;
+
+	mdrv->is_componentized = componentized;
+
+	mdrv->dcss = dcss_dev_create(dev, componentized);
+	if (IS_ERR(mdrv->dcss)) {
+		err = PTR_ERR(mdrv->dcss);
+		goto err;
+	}
+
+	dev_set_drvdata(dev, mdrv);
+
+	mdrv->kms = dcss_kms_attach(mdrv->dcss, componentized);
+	if (IS_ERR(mdrv->kms)) {
+		err = PTR_ERR(mdrv->kms);
+		goto dcss_shutoff;
+	}
+
+	return 0;
+
+dcss_shutoff:
+	dcss_dev_destroy(mdrv->dcss);
+
+	dev_set_drvdata(dev, NULL);
+
+err:
+	devm_kfree(dev, mdrv);
+	return err;
+}
+
+static void dcss_drv_deinit(struct device *dev, bool componentized)
+{
+	struct dcss_drv *mdrv = dev_get_drvdata(dev);
+
+	if (!mdrv)
+		return;
+
+	dcss_kms_detach(mdrv->kms, componentized);
+	dcss_dev_destroy(mdrv->dcss);
+
+	dev_set_drvdata(dev, NULL);
+}
+
+static int dcss_drv_bind(struct device *dev)
+{
+	return dcss_drv_init(dev, true);
+}
+
+static void dcss_drv_unbind(struct device *dev)
+{
+	return dcss_drv_deinit(dev, true);
+}
+
+static const struct component_master_ops dcss_master_ops = {
+	.bind	= dcss_drv_bind,
+	.unbind	= dcss_drv_unbind,
+};
+
+static int compare_of(struct device *dev, void *data)
+{
+	return dev->of_node == data;
+}
+
+static int dcss_drv_platform_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct component_match *match = NULL;
+	struct device_node *remote;
+
+	if (!dev->of_node)
+		return -ENODEV;
+
+	remote = of_graph_get_remote_node(dev->of_node, 0, 0);
+	if (!remote)
+		return -ENODEV;
+
+	if (of_device_is_compatible(remote, "fsl,imx8mq-nwl-dsi")) {
+		of_node_put(remote);
+		return dcss_drv_init(dev, false);
+	}
+
+	drm_of_component_match_add(dev, &match, compare_of, remote);
+	of_node_put(remote);
+
+	return component_master_add_with_match(dev, &dcss_master_ops, match);
+}
+
+static int dcss_drv_platform_remove(struct platform_device *pdev)
+{
+	struct dcss_drv *mdrv = dev_get_drvdata(&pdev->dev);
+
+	if (mdrv->is_componentized)
+		component_master_del(&pdev->dev, &dcss_master_ops);
+	else
+		dcss_drv_deinit(&pdev->dev, false);
+
+	return 0;
+}
+
+static struct dcss_type_data dcss_types[] = {
+	[DCSS_IMX8MQ] = {
+		.name = "DCSS_IMX8MQ",
+		.blkctl_ofs = 0x2F000,
+		.ctxld_ofs = 0x23000,
+		.dtg_ofs = 0x20000,
+		.rdsrc_ofs = 0x22000,
+		.wrscl_ofs = 0x21000,
+		.scaler_ofs = 0x1C000,
+		.ss_ofs = 0x1B000,
+		.dpr_ofs = 0x18000,
+		.dec400d_ofs = 0x15000,
+		.hdr10_ofs = 0x00000,
+		.dtrc_ofs = 0x16000,
+	},
+};
+
+static const struct of_device_id dcss_of_match[] = {
+	{ .compatible = "nxp,imx8mq-dcss", .data = &dcss_types[DCSS_IMX8MQ], },
+	{},
+};
+
+MODULE_DEVICE_TABLE(of, dcss_of_match);
+
+static const struct dev_pm_ops dcss_dev_pm = {
+	SET_SYSTEM_SLEEP_PM_OPS(dcss_dev_suspend, dcss_dev_resume)
+	SET_RUNTIME_PM_OPS(dcss_dev_runtime_suspend,
+			   dcss_dev_runtime_resume, NULL)
+};
+
+static struct platform_driver dcss_platform_driver = {
+	.probe	= dcss_drv_platform_probe,
+	.remove	= dcss_drv_platform_remove,
+	.driver	= {
+		.name = "imx-dcss",
+		.of_match_table	= dcss_of_match,
+		.pm = &dcss_dev_pm,
+	},
+};
+
+module_platform_driver(dcss_platform_driver);
+
+MODULE_AUTHOR("Laurentiu Palcu <laurentiu.palcu@nxp.com>");
+MODULE_DESCRIPTION("DCSS driver for i.MX8MQ");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-dtg.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-dtg.c
@@ -0,0 +1,458 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/interrupt.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_DTG_TC_CONTROL_STATUS			0x00
+#define   CH3_EN					BIT(0)
+#define   CH2_EN					BIT(1)
+#define   CH1_EN					BIT(2)
+#define   OVL_DATA_MODE					BIT(3)
+#define   BLENDER_VIDEO_ALPHA_SEL			BIT(7)
+#define   DTG_START					BIT(8)
+#define   DBY_MODE_EN					BIT(9)
+#define   CH1_ALPHA_SEL					BIT(10)
+#define   CSS_PIX_COMP_SWAP_POS				12
+#define   CSS_PIX_COMP_SWAP_MASK			GENMASK(14, 12)
+#define   DEFAULT_FG_ALPHA_POS				24
+#define   DEFAULT_FG_ALPHA_MASK				GENMASK(31, 24)
+#define DCSS_DTG_TC_DTG					0x04
+#define DCSS_DTG_TC_DISP_TOP				0x08
+#define DCSS_DTG_TC_DISP_BOT				0x0C
+#define DCSS_DTG_TC_CH1_TOP				0x10
+#define DCSS_DTG_TC_CH1_BOT				0x14
+#define DCSS_DTG_TC_CH2_TOP				0x18
+#define DCSS_DTG_TC_CH2_BOT				0x1C
+#define DCSS_DTG_TC_CH3_TOP				0x20
+#define DCSS_DTG_TC_CH3_BOT				0x24
+#define   TC_X_POS					0
+#define   TC_X_MASK					GENMASK(12, 0)
+#define   TC_Y_POS					16
+#define   TC_Y_MASK					GENMASK(28, 16)
+#define DCSS_DTG_TC_CTXLD				0x28
+#define   TC_CTXLD_DB_Y_POS				0
+#define   TC_CTXLD_DB_Y_MASK				GENMASK(12, 0)
+#define   TC_CTXLD_SB_Y_POS				16
+#define   TC_CTXLD_SB_Y_MASK				GENMASK(28, 16)
+#define DCSS_DTG_TC_CH1_BKRND				0x2C
+#define DCSS_DTG_TC_CH2_BKRND				0x30
+#define   BKRND_R_Y_COMP_POS				20
+#define   BKRND_R_Y_COMP_MASK				GENMASK(29, 20)
+#define   BKRND_G_U_COMP_POS				10
+#define   BKRND_G_U_COMP_MASK				GENMASK(19, 10)
+#define   BKRND_B_V_COMP_POS				0
+#define   BKRND_B_V_COMP_MASK				GENMASK(9, 0)
+#define DCSS_DTG_BLENDER_DBY_RANGEINV			0x38
+#define DCSS_DTG_BLENDER_DBY_RANGEMIN			0x3C
+#define DCSS_DTG_BLENDER_DBY_BDP			0x40
+#define DCSS_DTG_BLENDER_BKRND_I			0x44
+#define DCSS_DTG_BLENDER_BKRND_P			0x48
+#define DCSS_DTG_BLENDER_BKRND_T			0x4C
+#define DCSS_DTG_LINE0_INT				0x50
+#define DCSS_DTG_LINE1_INT				0x54
+#define DCSS_DTG_BG_ALPHA_DEFAULT			0x58
+#define DCSS_DTG_INT_STATUS				0x5C
+#define DCSS_DTG_INT_CONTROL				0x60
+#define DCSS_DTG_TC_CH3_BKRND				0x64
+#define DCSS_DTG_INT_MASK				0x68
+#define   LINE0_IRQ					BIT(0)
+#define   LINE1_IRQ					BIT(1)
+#define   LINE2_IRQ					BIT(2)
+#define   LINE3_IRQ					BIT(3)
+#define DCSS_DTG_LINE2_INT				0x6C
+#define DCSS_DTG_LINE3_INT				0x70
+#define DCSS_DTG_DBY_OL					0x74
+#define DCSS_DTG_DBY_BL					0x78
+#define DCSS_DTG_DBY_EL					0x7C
+
+struct dcss_dtg {
+	struct device *dev;
+	struct dcss_ctxld *ctxld;
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	u32 ctx_id;
+
+	bool in_use;
+	bool hdmi_output;
+
+	u32 dis_ulc_x;
+	u32 dis_ulc_y;
+
+	u32 control_status;
+	u32 alpha;
+
+	int ctxld_kick_irq;
+	bool ctxld_kick_irq_en;
+
+	struct clk *pix_clk;
+	struct clk *pll_src_clk;
+	struct clk *pll_phy_ref_clk;
+
+	/*
+	 * This will be passed on by DRM CRTC so that we can signal when DTG has
+	 * been successfully stopped. Otherwise, any modesetting while DTG is
+	 * still ON may result in unpredictable behavior.
+	 */
+	struct completion *dis_completion;
+};
+
+static void dcss_dtg_write(struct dcss_dtg *dtg, u32 val, u32 ofs)
+{
+	if (!dtg->in_use)
+		dcss_writel(val, dtg->base_reg + ofs);
+
+	dcss_ctxld_write(dtg->ctxld, dtg->ctx_id, val, dtg->base_ofs + ofs);
+}
+
+static irqreturn_t dcss_dtg_irq_handler(int irq, void *data)
+{
+	struct dcss_dtg *dtg = data;
+	u32 status;
+
+	status = dcss_readl(dtg->base_reg + DCSS_DTG_INT_STATUS);
+
+	if (!(status & LINE0_IRQ))
+		return IRQ_HANDLED;
+
+	dcss_ctxld_kick(dtg->ctxld);
+
+	dcss_writel(status & LINE0_IRQ, dtg->base_reg + DCSS_DTG_INT_CONTROL);
+
+	return IRQ_HANDLED;
+}
+
+static int dcss_dtg_irq_config(struct dcss_dtg *dtg,
+			       struct platform_device *pdev)
+{
+	int ret;
+
+	dtg->ctxld_kick_irq = platform_get_irq_byname(pdev, "ctxld_kick");
+	if (dtg->ctxld_kick_irq < 0) {
+		dev_err(dtg->dev, "dtg: can't get line2 irq number\n");
+		return dtg->ctxld_kick_irq;
+	}
+
+	dcss_update(0, LINE0_IRQ | LINE1_IRQ,
+		    dtg->base_reg + DCSS_DTG_INT_MASK);
+
+	ret = devm_request_irq(dtg->dev, dtg->ctxld_kick_irq,
+			       dcss_dtg_irq_handler,
+			       IRQF_TRIGGER_HIGH,
+			       "dcss_ctxld_kick", dtg);
+	if (ret) {
+		dev_err(dtg->dev, "dtg: irq request failed.\n");
+		return ret;
+	}
+
+	disable_irq(dtg->ctxld_kick_irq);
+
+	dtg->ctxld_kick_irq_en = false;
+
+	return 0;
+}
+
+int dcss_dtg_init(struct dcss_dev *dcss, unsigned long dtg_base)
+{
+	int ret = 0;
+	struct dcss_dtg *dtg;
+
+	dtg = devm_kzalloc(dcss->dev, sizeof(*dtg), GFP_KERNEL);
+	if (!dtg)
+		return -ENOMEM;
+
+	dcss->dtg = dtg;
+	dtg->dev = dcss->dev;
+	dtg->ctxld = dcss->ctxld;
+	dtg->hdmi_output = dcss->hdmi_output;
+
+	dtg->base_reg = devm_ioremap(dcss->dev, dtg_base, SZ_4K);
+	if (!dtg->base_reg) {
+		dev_err(dcss->dev, "dtg: unable to remap dtg base\n");
+		ret = -ENOMEM;
+		goto err_ioremap;
+	}
+
+	dtg->base_ofs = dtg_base;
+	dtg->ctx_id = CTX_DB;
+
+	dtg->pix_clk = dcss->pix_clk;
+	dtg->pll_src_clk = dcss->pll_src_clk;
+	dtg->pll_phy_ref_clk = dcss->pll_phy_ref_clk;
+
+	dtg->alpha = 255;
+
+	dtg->control_status |= OVL_DATA_MODE | BLENDER_VIDEO_ALPHA_SEL |
+		((dtg->alpha << DEFAULT_FG_ALPHA_POS) & DEFAULT_FG_ALPHA_MASK);
+
+	ret = dcss_dtg_irq_config(dtg, to_platform_device(dcss->dev));
+	if (ret)
+		goto err_irq;
+
+	return 0;
+
+err_irq:
+	devm_iounmap(dtg->dev, dtg->base_reg);
+
+err_ioremap:
+	devm_kfree(dtg->dev, dtg);
+
+	return ret;
+}
+
+void dcss_dtg_exit(struct dcss_dtg *dtg)
+{
+	/* stop DTG */
+	dcss_writel(DTG_START, dtg->base_reg + DCSS_DTG_TC_CONTROL_STATUS);
+
+	devm_free_irq(dtg->dev, dtg->ctxld_kick_irq, dtg);
+
+	if (dtg->base_reg)
+		devm_iounmap(dtg->dev, dtg->base_reg);
+
+	devm_kfree(dtg->dev, dtg);
+}
+
+void dcss_dtg_sync_set(struct dcss_dtg *dtg, struct videomode *vm)
+{
+	u16 dtg_lrc_x, dtg_lrc_y;
+	u16 dis_ulc_x, dis_ulc_y;
+	u16 dis_lrc_x, dis_lrc_y;
+	u32 sb_ctxld_trig, db_ctxld_trig;
+	u32 pixclock = vm->pixelclock;
+	u32 actual_clk;
+
+	dtg_lrc_x = vm->hfront_porch + vm->hback_porch + vm->hsync_len +
+		    vm->hactive - 1;
+	dtg_lrc_y = vm->vfront_porch + vm->vback_porch + vm->vsync_len +
+		    vm->vactive - 1;
+	dis_ulc_x = vm->hsync_len + vm->hback_porch - 1;
+	dis_ulc_y = vm->vsync_len + vm->vfront_porch + vm->vback_porch - 1;
+	dis_lrc_x = vm->hsync_len + vm->hback_porch + vm->hactive - 1;
+	dis_lrc_y = vm->vsync_len + vm->vfront_porch + vm->vback_porch +
+		    vm->vactive - 1;
+
+	clk_disable_unprepare(dtg->pix_clk);
+	if (dtg->hdmi_output) {
+		int err;
+
+		clk_disable_unprepare(dtg->pll_src_clk);
+		err = clk_set_parent(dtg->pll_src_clk, dtg->pll_phy_ref_clk);
+		if (err < 0)
+			dev_warn(dtg->dev, "clk_set_parent() returned %d", err);
+		clk_prepare_enable(dtg->pll_src_clk);
+	}
+	clk_set_rate(dtg->pix_clk, vm->pixelclock);
+	clk_prepare_enable(dtg->pix_clk);
+
+	actual_clk = clk_get_rate(dtg->pix_clk);
+	if (pixclock != actual_clk) {
+		dev_info(dtg->dev,
+			 "Pixel clock set to %u kHz instead of %u kHz.\n",
+			 (actual_clk / 1000), (pixclock / 1000));
+	}
+
+	dcss_dtg_write(dtg, ((dtg_lrc_y << TC_Y_POS) | dtg_lrc_x),
+		       DCSS_DTG_TC_DTG);
+	dcss_dtg_write(dtg, ((dis_ulc_y << TC_Y_POS) | dis_ulc_x),
+		       DCSS_DTG_TC_DISP_TOP);
+	dcss_dtg_write(dtg, ((dis_lrc_y << TC_Y_POS) | dis_lrc_x),
+		       DCSS_DTG_TC_DISP_BOT);
+
+	dtg->dis_ulc_x = dis_ulc_x;
+	dtg->dis_ulc_y = dis_ulc_y;
+
+	sb_ctxld_trig = ((0 * dis_lrc_y / 100) << TC_CTXLD_SB_Y_POS) &
+							TC_CTXLD_SB_Y_MASK;
+	db_ctxld_trig = ((99 * dis_lrc_y / 100) << TC_CTXLD_DB_Y_POS) &
+							TC_CTXLD_DB_Y_MASK;
+
+	dcss_dtg_write(dtg, sb_ctxld_trig | db_ctxld_trig, DCSS_DTG_TC_CTXLD);
+
+	/* vblank trigger */
+	dcss_dtg_write(dtg, 0, DCSS_DTG_LINE1_INT);
+
+	/* CTXLD trigger */
+	dcss_dtg_write(dtg, ((90 * dis_lrc_y) / 100) << 16, DCSS_DTG_LINE0_INT);
+}
+
+void dcss_dtg_plane_pos_set(struct dcss_dtg *dtg, int ch_num,
+			    int px, int py, int pw, int ph)
+{
+	u16 p_ulc_x, p_ulc_y;
+	u16 p_lrc_x, p_lrc_y;
+
+	p_ulc_x = dtg->dis_ulc_x + px;
+	p_ulc_y = dtg->dis_ulc_y + py;
+	p_lrc_x = p_ulc_x + pw;
+	p_lrc_y = p_ulc_y + ph;
+
+	if (!px && !py && !pw && !ph) {
+		dcss_dtg_write(dtg, 0, DCSS_DTG_TC_CH1_TOP + 0x8 * ch_num);
+		dcss_dtg_write(dtg, 0, DCSS_DTG_TC_CH1_BOT + 0x8 * ch_num);
+	} else {
+		dcss_dtg_write(dtg, ((p_ulc_y << TC_Y_POS) | p_ulc_x),
+			       DCSS_DTG_TC_CH1_TOP + 0x8 * ch_num);
+		dcss_dtg_write(dtg, ((p_lrc_y << TC_Y_POS) | p_lrc_x),
+			       DCSS_DTG_TC_CH1_BOT + 0x8 * ch_num);
+	}
+}
+
+bool dcss_dtg_global_alpha_changed(struct dcss_dtg *dtg, int ch_num, int alpha)
+{
+	if (ch_num)
+		return false;
+
+	return alpha != dtg->alpha;
+}
+
+void dcss_dtg_plane_alpha_set(struct dcss_dtg *dtg, int ch_num,
+			      const struct drm_format_info *format, int alpha)
+{
+	u32 alpha_val;
+
+	/* we care about alpha only when channel 0 is concerned */
+	if (ch_num)
+		return;
+
+	alpha_val = (alpha << DEFAULT_FG_ALPHA_POS) & DEFAULT_FG_ALPHA_MASK;
+
+	/*
+	 * Use global alpha if pixel format does not have alpha channel or the
+	 * user explicitly chose to use global alpha (i.e. alpha is not OPAQUE).
+	 */
+	if (!format->has_alpha || alpha != 255) {
+		dtg->control_status &= ~(CH1_ALPHA_SEL | DEFAULT_FG_ALPHA_MASK);
+		dtg->control_status |= alpha_val;
+	} else { /* use per-pixel alpha otherwise */
+		dtg->control_status |= CH1_ALPHA_SEL;
+	}
+
+	dtg->alpha = alpha;
+}
+
+void dcss_dtg_css_set(struct dcss_dtg *dtg, bool out_is_yuv)
+{
+	dtg->control_status &= ~CSS_PIX_COMP_SWAP_MASK;
+
+	if (out_is_yuv)
+		return;
+
+	dtg->control_status |=
+			(0x5 << CSS_PIX_COMP_SWAP_POS) & CSS_PIX_COMP_SWAP_MASK;
+}
+
+static void dcss_dtg_disable_callback(void *data)
+{
+	struct dcss_dtg *dtg = data;
+
+	dtg->control_status &= ~DTG_START;
+
+	dcss_writel(dtg->control_status,
+		    dtg->base_reg + DCSS_DTG_TC_CONTROL_STATUS);
+
+	dtg->in_use = false;
+
+	complete(dtg->dis_completion);
+}
+
+void dcss_dtg_enable(struct dcss_dtg *dtg, bool en,
+		     struct completion *dis_completion)
+{
+	if (!en) {
+		dtg->dis_completion = dis_completion;
+		dcss_ctxld_register_dtg_disable_cb(dtg->ctxld,
+						   dcss_dtg_disable_callback,
+						   dtg);
+		return;
+	}
+
+	dtg->dis_completion = NULL;
+
+	dtg->control_status |= DTG_START;
+
+	dcss_dtg_write(dtg, dtg->control_status, DCSS_DTG_TC_CONTROL_STATUS);
+
+	dtg->in_use = true;
+}
+
+bool dcss_dtg_is_enabled(struct dcss_dtg *dtg)
+{
+	return dtg->in_use;
+}
+
+void dcss_dtg_ch_enable(struct dcss_dtg *dtg, int ch_num, bool en)
+{
+	u32 ch_en_map[] = {CH1_EN, CH2_EN, CH3_EN};
+	u32 control_status;
+
+	control_status = dtg->control_status & ~ch_en_map[ch_num];
+	control_status |= en ? ch_en_map[ch_num] : 0;
+
+	if (dtg->control_status != control_status)
+		dcss_dtg_write(dtg, control_status, DCSS_DTG_TC_CONTROL_STATUS);
+
+	dtg->control_status = control_status;
+}
+
+void dcss_dtg_vblank_irq_enable(struct dcss_dtg *dtg, bool en)
+{
+	u32 status;
+	u32 mask = en ? LINE1_IRQ : 0;
+
+	if (en) {
+		status = dcss_readl(dtg->base_reg + DCSS_DTG_INT_STATUS);
+		dcss_writel(status & LINE1_IRQ,
+			    dtg->base_reg + DCSS_DTG_INT_CONTROL);
+	}
+
+	dcss_update(mask, LINE1_IRQ, dtg->base_reg + DCSS_DTG_INT_MASK);
+}
+
+void dcss_dtg_ctxld_kick_irq_enable(struct dcss_dtg *dtg, bool en)
+{
+	u32 status;
+	u32 mask = en ? LINE0_IRQ : 0;
+
+	if (en) {
+		status = dcss_readl(dtg->base_reg + DCSS_DTG_INT_STATUS);
+
+		if (!dtg->ctxld_kick_irq_en) {
+			dcss_writel(status & LINE0_IRQ,
+				    dtg->base_reg + DCSS_DTG_INT_CONTROL);
+			enable_irq(dtg->ctxld_kick_irq);
+			dtg->ctxld_kick_irq_en = true;
+			goto mask_unmask;
+		}
+
+		return;
+	}
+
+	if (!dtg->ctxld_kick_irq_en)
+		return;
+
+	disable_irq_nosync(dtg->ctxld_kick_irq);
+	dtg->ctxld_kick_irq_en = false;
+
+mask_unmask:
+	dcss_update(mask, LINE0_IRQ, dtg->base_reg + DCSS_DTG_INT_MASK);
+}
+
+void dcss_dtg_vblank_irq_clear(struct dcss_dtg *dtg)
+{
+	dcss_update(LINE1_IRQ, LINE1_IRQ, dtg->base_reg + DCSS_DTG_INT_CONTROL);
+}
+
+bool dcss_dtg_vblank_irq_valid(struct dcss_dtg *dtg)
+{
+	return !!(dcss_readl(dtg->base_reg + DCSS_DTG_INT_STATUS) & LINE1_IRQ);
+}
+
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-dtrc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-dtrc.c
@@ -0,0 +1,514 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/bitops.h>
+#include <linux/device.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <drm/drm_fourcc.h>
+#include <drm/drm_rect.h>
+
+#include "dcss-dev.h"
+
+#define DTRC_F0_OFS			0x00
+#define DTRC_F1_OFS			0x60
+
+#define DCSS_DTRC_DYDSADDR			0x00
+#define DCSS_DTRC_DCDSADDR			0x04
+#define DCSS_DTRC_DYTSADDR			0x08
+#define DCSS_DTRC_DCTSADDR			0x0C
+#define DCSS_DTRC_SIZE				0x10
+#define   FRAME_WIDTH_POS			0
+#define   FRAME_WIDTH_MASK			GENMASK(9, 0)
+#define   FRAME_HEIGHT_POS			16
+#define   FRAME_HEIGHT_MASK			GENMASK(25, 16)
+#define DCSS_DTRC_SYSSA				0x14
+#define DCSS_DTRC_SYSEA				0x18
+#define DCSS_DTRC_SUVSSA			0x1C
+#define DCSS_DTRC_SUVSEA			0x20
+#define DCSS_DTRC_CROPORIG			0x24
+#define DCSS_DTRC_CROPSIZE			0x28
+#define   CROP_HEIGHT_POS			16
+#define   CROP_HEIGHT_MASK			GENMASK(28, 16)
+#define   CROP_WIDTH_POS			0
+#define   CROP_WIDTH_MASK			GENMASK(12, 0)
+#define DCSS_DTRC_DCTL				0x2C
+#define   CROPPING_EN				BIT(18)
+#define   COMPRESSION_DIS			BIT(17)
+#define   PIX_DEPTH_8BIT_EN			BIT(1)
+#define   CONFIG_READY				BIT(0)
+#define DCSS_DTRC_DYDSADDR_EXT			0x30
+#define DCSS_DTRC_DCDSADDR_EXT			0x34
+#define DCSS_DTRC_DYTSADDR_EXT			0x38
+#define DCSS_DTRC_DCTSADDR_EXT			0x3C
+#define DCSS_DTRC_SYSSA_EXT			0x40
+#define DCSS_DTRC_SYSEA_EXT			0x44
+#define DCSS_DTRC_SUVSSA_EXT			0x48
+#define DCSS_DTRC_SUVSEA_EXT			0x4C
+
+#define DCSS_DTRC_INTEN				0xC0
+#define DCSS_DTRC_FDINTR			0xC4
+#define DCSS_DTRC_DTCTRL			0xC8
+#define   CURRENT_FRAME				BIT(31)
+#define   ADDRESS_ID_ENABLE			BIT(30)
+#define   ENDIANNESS_10BIT			BIT(29)
+#define   MERGE_ARID_ENABLE			BIT(28)
+#define   NON_G1_2_SWAP_MODE_POS		24
+#define   NON_G1_2_SWAP_MODE_MASK		GENMASK(27, 24)
+#define   TABLE_DATA_SWAP_POS			20
+#define   TABLE_DATA_SWAP_MASK			GENMASK(23, 20)
+#define   TILED_SWAP_POS			16
+#define   TILED_SWAP_MASK			GENMASK(19, 16)
+#define   RASTER_SWAP_POS			12
+#define   RASTER_SWAP_MASK			GENMASK(15, 12)
+#define   BURST_LENGTH_POS			4
+#define   BURST_LENGTH_MASK			GENMASK(11, 4)
+#define   G1_TILED_DATA_EN			BIT(3)
+#define   HOT_RESET				BIT(2)
+#define   ARIDR_MODE_DETILE			0
+#define   ARIDR_MODE_BYPASS			2
+#define DCSS_DTRC_ARIDR				0xCC
+#define DCSS_DTRC_DTID2DDR			0xD0
+#define DCSS_DTRC_CONFIG			0xD4
+#define DCSS_DTRC_VER				0xD8
+#define DCSS_DTRC_PFCTRL			0xF0
+#define DCSS_DTRC_PFCR				0xF4
+#define DCSS_DTRC_TOCR				0xF8
+
+struct dcss_dtrc_ch {
+	struct dcss_dtrc *dtrc;
+
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	u32 xres;
+	u32 yres;
+	u32 pix_format;
+	u64 format_modifier;
+	u32 y_dec_ofs;
+	u32 uv_dec_ofs;
+
+	int curr_frame;
+
+	u32 dctl;
+
+	bool bypass;
+	bool running;
+
+	int irq;
+	int ch_num;
+};
+
+struct dcss_dtrc {
+	struct device *dev;
+
+	struct dcss_dtrc_ch ch[2];
+
+	u32 ctx_id;
+	struct dcss_ctxld *ctxld;
+};
+
+static irqreturn_t dcss_dtrc_irq_handler(int irq, void *data)
+{
+	struct dcss_dtrc_ch *ch = data;
+	u32 b0, b1, curr_bank;
+
+	b0 = dcss_readl(ch->base_reg + DCSS_DTRC_DCTL) & 0x1;
+	b1 = dcss_readl(ch->base_reg + DTRC_F1_OFS + DCSS_DTRC_DCTL) & 0x1;
+	curr_bank = dcss_readl(ch->base_reg + DCSS_DTRC_DTCTRL) >> 31;
+
+	dcss_update(1, 1, ch->base_reg + DCSS_DTRC_FDINTR);
+
+	return IRQ_HANDLED;
+}
+
+static int dcss_dtrc_irq_config(struct dcss_dtrc *dtrc, int ch_num)
+{
+	struct platform_device *pdev = to_platform_device(dtrc->dev);
+	struct dcss_dtrc_ch *ch = &dtrc->ch[ch_num];
+	char irq_name[20];
+	int ret;
+
+	sprintf(irq_name, "dtrc_ch%d", ch_num + 1);
+	irq_name[8] = 0;
+
+	ch->irq = platform_get_irq_byname(pdev, irq_name);
+	if (ch->irq < 0) {
+		dev_err(dtrc->dev, "dtrc: can't get DTRC irq\n");
+		return ch->irq;
+	}
+
+	ret = devm_request_irq(dtrc->dev, ch->irq,
+			       dcss_dtrc_irq_handler,
+			       IRQF_TRIGGER_HIGH,
+			       "dcss-dtrc", ch);
+	if (ret) {
+		dev_err(dtrc->dev, "dtrc: irq request failed.\n");
+		return ret;
+	}
+
+	dcss_writel(1, ch->base_reg + DCSS_DTRC_INTEN);
+
+	return 0;
+}
+
+static int dcss_dtrc_ch_init_all(struct dcss_dtrc *dtrc, u32 dtrc_base)
+{
+	struct dcss_dtrc_ch *ch;
+	int i, ret;
+
+	for (i = 0; i < 2; i++) {
+		ch = &dtrc->ch[i];
+
+		ch->base_ofs = dtrc_base + i * 0x1000;
+
+		ch->base_reg = devm_ioremap(dtrc->dev, ch->base_ofs, SZ_4K);
+		if (!ch->base_reg) {
+			dev_err(dtrc->dev, "dtrc: unable to remap ch base\n");
+			return -ENOMEM;
+		}
+
+		ch->ch_num = i;
+		ch->dtrc = dtrc;
+
+		ret = dcss_dtrc_irq_config(dtrc, i);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
+static void dcss_dtrc_write(struct dcss_dtrc_ch *ch, u32 val, u32 ofs)
+{
+	dcss_ctxld_write(ch->dtrc->ctxld, ch->dtrc->ctx_id,
+			 val, ch->base_ofs + ofs);
+}
+
+static void dcss_dtrc_write_irqsafe(struct dcss_dtrc_ch *ch, u32 val, u32 ofs)
+{
+	dcss_ctxld_write_irqsafe(ch->dtrc->ctxld, ch->dtrc->ctx_id,
+				 val, ch->base_ofs + ofs);
+}
+
+int dcss_dtrc_init(struct dcss_dev *dcss, unsigned long dtrc_base)
+{
+	struct dcss_dtrc *dtrc;
+
+	dtrc = devm_kzalloc(dcss->dev, sizeof(*dtrc), GFP_KERNEL);
+	if (!dtrc)
+		return -ENOMEM;
+
+	dcss->dtrc = dtrc;
+	dtrc->dev = dcss->dev;
+	dtrc->ctxld = dcss->ctxld;
+	dtrc->ctx_id = CTX_SB_HP;
+
+	if (dcss_dtrc_ch_init_all(dtrc, dtrc_base)) {
+		struct dcss_dtrc_ch *ch;
+		int i;
+
+		for (i = 0; i < 2; i++) {
+			ch = &dtrc->ch[i];
+
+			if (ch->irq)
+				devm_free_irq(dtrc->dev, ch->irq, ch);
+
+			if (ch->base_reg)
+				devm_iounmap(dtrc->dev, ch->base_reg);
+		}
+
+		devm_kfree(dtrc->dev, dtrc);
+
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+void dcss_dtrc_exit(struct dcss_dtrc *dtrc)
+{
+	int ch_no;
+
+	for (ch_no = 0; ch_no < 2; ch_no++) {
+		struct dcss_dtrc_ch *ch = &dtrc->ch[ch_no];
+
+		if (ch->base_reg) {
+			/* reset the module to default */
+			dcss_writel(HOT_RESET,
+				    ch->base_reg + DCSS_DTRC_DTCTRL);
+			devm_iounmap(dtrc->dev, ch->base_reg);
+		}
+	}
+
+	devm_kfree(dtrc->dev, dtrc);
+}
+
+void dcss_dtrc_bypass(struct dcss_dtrc *dtrc, int ch_num)
+{
+	struct dcss_dtrc_ch *ch;
+
+	if (ch_num == 0)
+		return;
+
+	ch = &dtrc->ch[ch_num - 1];
+
+	if (ch->bypass)
+		return;
+
+	dcss_dtrc_write(ch, ARIDR_MODE_BYPASS, DCSS_DTRC_DTCTRL);
+	dcss_dtrc_write(ch, 0, DCSS_DTRC_DYTSADDR);
+	dcss_dtrc_write(ch, 0, DCSS_DTRC_DCTSADDR);
+	dcss_dtrc_write(ch, 0x0f0e0100, DCSS_DTRC_ARIDR);
+	dcss_dtrc_write(ch, 0x0f0e, DCSS_DTRC_DTID2DDR);
+
+	ch->bypass = true;
+}
+
+void dcss_dtrc_addr_set(struct dcss_dtrc *dtrc, int ch_num,
+			u32 p1_ba, u32 p2_ba, uint64_t dec_table_ofs)
+{
+	struct dcss_dtrc_ch *ch;
+
+	if (ch_num == 0)
+		return;
+
+	ch = &dtrc->ch[ch_num - 1];
+
+	dcss_dtrc_write(ch, p1_ba, DCSS_DTRC_DYDSADDR);
+	dcss_dtrc_write(ch, p2_ba, DCSS_DTRC_DCDSADDR);
+
+	dcss_dtrc_write(ch, p1_ba, DTRC_F1_OFS + DCSS_DTRC_DYDSADDR);
+	dcss_dtrc_write(ch, p2_ba, DTRC_F1_OFS + DCSS_DTRC_DCDSADDR);
+
+	if (ch->format_modifier == DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED) {
+		ch->y_dec_ofs = dec_table_ofs & 0xFFFFFFFF;
+		ch->uv_dec_ofs = dec_table_ofs >> 32;
+
+		dcss_dtrc_write(ch, p1_ba + ch->y_dec_ofs,
+				DCSS_DTRC_DYTSADDR);
+		dcss_dtrc_write(ch, p1_ba + ch->uv_dec_ofs,
+				DCSS_DTRC_DCTSADDR);
+		dcss_dtrc_write(ch, p1_ba + ch->y_dec_ofs,
+				DTRC_F1_OFS + DCSS_DTRC_DYTSADDR);
+		dcss_dtrc_write(ch, p1_ba + ch->uv_dec_ofs,
+				DTRC_F1_OFS + DCSS_DTRC_DCTSADDR);
+	}
+
+	ch->bypass = false;
+}
+
+void dcss_dtrc_set_res(struct dcss_dtrc *dtrc, int ch_num,
+		       struct drm_plane_state *state, u32 *dtrc_w, u32 *dtrc_h)
+{
+	struct drm_framebuffer *fb = state->fb;
+	u32 pixel_format = fb->format->format;
+	struct dcss_dtrc_ch *ch;
+	u32 frame_height, frame_width;
+	u32 crop_w, crop_h, crop_orig_w, crop_orig_h;
+	int bank;
+	u32 old_xres, old_yres, xres, yres;
+	u32 x1, y1, x2, y2;
+	u32 pix_depth;
+	u16 width_align = 0;
+
+	if (ch_num == 0)
+		return;
+
+	ch = &dtrc->ch[ch_num - 1];
+
+	bank = dcss_readl(ch->base_reg + DCSS_DTRC_DTCTRL) >> 31;
+
+	ch->pix_format = pixel_format;
+	ch->format_modifier = fb->modifier;
+
+	pix_depth = ch->pix_format == DRM_FORMAT_NV12_10LE40 ? 10 : 8;
+
+	old_xres = state->src_w >> 16;
+	old_yres = state->src_h >> 16;
+
+	x1 = (state->src.x1 >> 16) & ~1;
+	y1 = (state->src.y1 >> 16) & ~1;
+	x2 = state->src.x2 >> 16;
+	y2 = state->src.y2 >> 16;
+
+	xres = x2 - x1;
+	yres = y2 - y1;
+
+	frame_height = ((old_yres >> 3) << FRAME_HEIGHT_POS) & FRAME_HEIGHT_MASK;
+	frame_width = ((old_xres >> 3) << FRAME_WIDTH_POS) & FRAME_WIDTH_MASK;
+
+	dcss_dtrc_write(ch, frame_height | frame_width,
+			DTRC_F1_OFS * bank + DCSS_DTRC_SIZE);
+
+	dcss_dtrc_write(ch, frame_height | frame_width,
+			DTRC_F1_OFS * (bank ^ 1) + DCSS_DTRC_SIZE);
+
+	/*
+	 * Image original size is aligned:
+	 *   - 128 pixels for width (8-bit) or 256 (10-bit);
+	 *   - 8 lines for height;
+	 */
+	width_align = ch->pix_format == DRM_FORMAT_NV12_10LE40 ? 0xff : 0x7f;
+
+	if (xres == old_xres && !(xres & width_align) &&
+	    yres == old_yres && !(yres & 0xf)) {
+		ch->dctl &= ~CROPPING_EN;
+		goto exit;
+	}
+
+	/* align the image size: down align for compressed formats */
+	if (ch->format_modifier == DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED && x1)
+		xres = xres & ~width_align;
+	else
+		xres = (xres + width_align) & ~width_align;
+
+	if (ch->format_modifier == DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED && y1)
+		yres = yres & ~0xf;
+	else
+		yres = (yres + 0xf) & ~0xf;
+
+	crop_orig_w = (x1 << CROP_WIDTH_POS) & CROP_WIDTH_MASK;
+	crop_orig_h = (y1 << CROP_HEIGHT_POS) & CROP_HEIGHT_MASK;
+
+	dcss_dtrc_write(ch, crop_orig_w | crop_orig_h,
+			DCSS_DTRC_CROPORIG);
+	dcss_dtrc_write(ch, crop_orig_w | crop_orig_h,
+			DTRC_F1_OFS + DCSS_DTRC_CROPORIG);
+
+	crop_w = (xres << CROP_WIDTH_POS) & CROP_WIDTH_MASK;
+	crop_h = (yres << CROP_HEIGHT_POS) & CROP_HEIGHT_MASK;
+
+	dcss_dtrc_write(ch, crop_w | crop_h,
+			DTRC_F1_OFS * bank + DCSS_DTRC_CROPSIZE);
+	dcss_dtrc_write(ch, crop_w | crop_h,
+			DTRC_F1_OFS * (bank ^ 1) + DCSS_DTRC_CROPSIZE);
+
+	ch->dctl |= CROPPING_EN;
+
+exit:
+	dcss_dtrc_write(ch, xres * yres * pix_depth / 8,
+			DCSS_DTRC_SYSEA);
+	dcss_dtrc_write(ch, xres * yres * pix_depth / 8,
+			DTRC_F1_OFS + DCSS_DTRC_SYSEA);
+
+	dcss_dtrc_write(ch, 0x10000000 + xres * yres * pix_depth / 8 / 2,
+			DCSS_DTRC_SUVSEA);
+	dcss_dtrc_write(ch, 0x10000000 + xres * yres * pix_depth / 8 / 2,
+			DTRC_F1_OFS + DCSS_DTRC_SUVSEA);
+
+	*dtrc_w = xres;
+	*dtrc_h = yres;
+
+	if (ch->running)
+		return;
+
+	dcss_dtrc_write(ch, 0x0, DCSS_DTRC_SYSSA);
+	dcss_dtrc_write(ch, 0x0, DTRC_F1_OFS + DCSS_DTRC_SYSSA);
+
+	dcss_dtrc_write(ch, 0x10000000, DCSS_DTRC_SUVSSA);
+	dcss_dtrc_write(ch, 0x10000000, DTRC_F1_OFS + DCSS_DTRC_SUVSSA);
+}
+
+void dcss_dtrc_enable(struct dcss_dtrc *dtrc, int ch_num, bool enable)
+{
+	struct dcss_dtrc_ch *ch;
+	int curr_frame;
+	u32 fdctl, dtctrl;
+
+	if (ch_num == 0)
+		return;
+
+	ch = &dtrc->ch[ch_num - 1];
+
+	if (ch->bypass)
+		return;
+
+	if (!enable) {
+		ch->running = false;
+		return;
+	}
+
+	if (ch->running)
+		return;
+
+	dcss_update(HOT_RESET, HOT_RESET, ch->base_reg + DCSS_DTRC_DTCTRL);
+	while (dcss_readl(ch->base_reg + DCSS_DTRC_DTCTRL) & HOT_RESET)
+		usleep_range(100, 200);
+
+	dcss_dtrc_write(ch, 0x0f0e0100,
+			DCSS_DTRC_ARIDR);
+	dcss_dtrc_write(ch, 0x0f0e,
+			DCSS_DTRC_DTID2DDR);
+
+	dtctrl = ADDRESS_ID_ENABLE | MERGE_ARID_ENABLE |
+		 ((0xF << TABLE_DATA_SWAP_POS) & TABLE_DATA_SWAP_MASK) |
+		 ((0x10 << BURST_LENGTH_POS) & BURST_LENGTH_MASK);
+
+	if (ch->format_modifier == DRM_FORMAT_MOD_VSI_G1_TILED)
+		dtctrl |= G1_TILED_DATA_EN;
+
+	dcss_dtrc_write(ch, dtctrl, DCSS_DTRC_DTCTRL);
+
+	curr_frame = dcss_readl(ch->base_reg + DCSS_DTRC_DTCTRL) >> 31;
+
+	fdctl = ch->dctl & ~(PIX_DEPTH_8BIT_EN | COMPRESSION_DIS);
+
+	fdctl |= ch->pix_format == DRM_FORMAT_NV12_10LE40 ? 0 : PIX_DEPTH_8BIT_EN;
+
+	if (ch->format_modifier != DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED)
+		fdctl |= COMPRESSION_DIS;
+
+	dcss_dtrc_write(ch, fdctl,
+			(curr_frame ^ 1) * DTRC_F1_OFS + DCSS_DTRC_DCTL);
+	dcss_dtrc_write(ch, fdctl | CONFIG_READY,
+			curr_frame * DTRC_F1_OFS + DCSS_DTRC_DCTL);
+
+	ch->curr_frame = curr_frame;
+	ch->dctl = fdctl;
+	ch->running = true;
+}
+
+bool dcss_dtrc_ch_running(struct dcss_dtrc *dtrc, int ch_num)
+{
+	struct dcss_dtrc_ch *ch;
+
+	if (ch_num == 0)
+		return false;
+
+	ch = &dtrc->ch[ch_num - 1];
+
+	return ch->running;
+}
+
+bool dcss_dtrc_is_running(struct dcss_dtrc *dtrc)
+{
+	return dtrc->ch[0].running || dtrc->ch[1].running;
+}
+
+static void dcss_dtrc_ch_switch_banks(struct dcss_dtrc *dtrc, int dtrc_ch)
+{
+	struct dcss_dtrc_ch *ch = &dtrc->ch[dtrc_ch];
+	u32 b0, b1;
+
+	if (!ch->running)
+		return;
+
+	b0 = dcss_readl(ch->base_reg + DCSS_DTRC_DCTL) & 0x1;
+	b1 = dcss_readl(ch->base_reg + DTRC_F1_OFS + DCSS_DTRC_DCTL) & 0x1;
+
+	ch->curr_frame = dcss_readl(ch->base_reg + DCSS_DTRC_DTCTRL) >> 31;
+
+	dcss_dtrc_write_irqsafe(ch, ch->dctl | CONFIG_READY,
+				(ch->curr_frame ^ 1) * DTRC_F1_OFS + DCSS_DTRC_DCTL);
+}
+
+void dcss_dtrc_switch_banks(struct dcss_dtrc *dtrc)
+{
+	dcss_dtrc_ch_switch_banks(dtrc, 0);
+	dcss_dtrc_ch_switch_banks(dtrc, 1);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-hdr10-tables.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-hdr10-tables.h
@@ -0,0 +1,1311 @@
+/*
+ * Copyright (C) 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+
+#ifndef __DCSS_HDR10_TABLES_H__
+#define __DCSS_HDR10_TABLES_H__
+
+/*
+ * Table descriptor (64 bit) contains flags with identify to which
+ * input/output configurations' combinations the table is applied. Choosing the
+ * right CSC depends on both output/input pipe configuration.
+ *
+ * Bit 0-2: Table type
+ *	* LUT  - bit 0
+ *	* CSCA - bit 1 (CSC for output pipe)
+ *	* CSCB - bit 2 (not used for output pipe)
+ * Bit 3: Pipe type
+ *	* Input - unset
+ *	* Output - set
+ * Bit 4-5: Input pipe bits-per-component
+ *	* 8 bpc  - bit 4
+ *	* 10 bpc - bit 5
+ * Bit 6-7: Input pipe colorspace
+ *	* RGB - bit 6
+ *	* YUV - bit 7
+ * Bit 8-12: Input pipe nonlinearity
+ *	* REC2084    - bit 8
+ *	* REC709     - bit 9
+ *	* BT1886     - bit 10
+ *	* REC2100HLG - bit 11
+ *	* SRGB       - bit 12
+ * Bit 13-14: Input pipe pixel range
+ *	* Limited - bit 13
+ *	* Full    - bit 14
+ * Bit 15-19: Input pipe gamut
+ *	* REC2020 - bit 15
+ *	* REC709  - bit 16
+ *	* REC601_NTSC - bit 17
+ *	* REC601_PAL  - bit 18
+ *	* ADOBE_RGB   - bit 19
+ * Bit 20-21: Output pipe bits-per-component (see above)
+ * Bit 22-23: Output pipe colorspace (see above)
+ * Bit 24-28: Output pipe nonlinearity (see above)
+ * Bit 29-30: Ouptut pipe pixel range (see above)
+ * Bit 31-35: Output pipe gamut (see above)
+ */
+
+static u32 dcss_hdr10_tables[] = {
+	/* table descriptor */
+	0x68effbe9, 0xf,
+	/* table length */
+	0x400,
+	/* table data */
+	0x552, 0x153, 0x10ef, 0x54, 0x2fd, 0x92d, 0x208d, 0x14, 0xbe, 0x213, 0x412,
+	0x6ea, 0xc62, 0x1764, 0x2d8d, 0x5, 0x2f, 0x83, 0x103, 0x1ad, 0x282, 0x382,
+	0x4ad, 0x60c, 0x7f2, 0xaa4, 0xe76, 0x13e1, 0x1b92, 0x267c, 0x35f8, 0x1,
+	0xb, 0x20, 0x40, 0x6a, 0x9f, 0xdf, 0x12a, 0x17f, 0x1df, 0x249, 0x2be,
+	0x33e, 0x3c9, 0x45e, 0x4fe, 0x5ab, 0x676, 0x768, 0x889, 0x9e0, 0xb79,
+	0xd60, 0xfa4, 0x1258, 0x158f, 0x1964, 0x1df4, 0x2364, 0x29dd, 0x3193,
+	0x3ac3, 0x0, 0x2, 0x7, 0xf, 0x1a, 0x27, 0x37, 0x49, 0x5f, 0x76, 0x91, 0xae,
+	0xce, 0xf1, 0x116, 0x13e, 0x168, 0x196, 0x1c6, 0x1f8, 0x22d, 0x265, 0x2a0,
+	0x2dd, 0x31d, 0x360, 0x3a5, 0x3ed, 0x438, 0x485, 0x4d5, 0x528, 0x57e,
+	0x5db, 0x640, 0x6af, 0x728, 0x7ac, 0x83c, 0x8d9, 0x984, 0xa40, 0xb0c,
+	0xbeb, 0xcde, 0xde8, 0xf0a, 0x1046, 0x119f, 0x1318, 0x14b4, 0x1674, 0x185e,
+	0x1a75, 0x1cbd, 0x1f39, 0x21f1, 0x24e7, 0x2823, 0x2bab, 0x2f85, 0x33b9,
+	0x3850, 0x3d52, 0x0, 0x0, 0x1, 0x3, 0x6, 0x9, 0xd, 0x12, 0x17, 0x1d, 0x23,
+	0x2b, 0x33, 0x3b, 0x45, 0x4e, 0x59, 0x64, 0x70, 0x7d, 0x8a, 0x98, 0xa7,
+	0xb6, 0xc6, 0xd7, 0xe8, 0xfa, 0x10c, 0x120, 0x134, 0x148, 0x15e, 0x174,
+	0x18a, 0x1a1, 0x1b9, 0x1d2, 0x1eb, 0x205, 0x220, 0x23b, 0x257, 0x274,
+	0x291, 0x2af, 0x2ce, 0x2ed, 0x30d, 0x32e, 0x34f, 0x371, 0x394, 0x3b7,
+	0x3db, 0x400, 0x425, 0x44b, 0x472, 0x499, 0x4c1, 0x4ea, 0x513, 0x53d,
+	0x568, 0x594, 0x5c3, 0x5f3, 0x626, 0x65b, 0x692, 0x6cc, 0x709, 0x748,
+	0x78a, 0x7cf, 0x817, 0x862, 0x8b0, 0x902, 0x958, 0x9b2, 0xa0f, 0xa71,
+	0xad7, 0xb42, 0xbb1, 0xc26, 0xc9f, 0xd1e, 0xda3, 0xe2e, 0xebf, 0xf56,
+	0xff4, 0x109a, 0x1146, 0x11fb, 0x12b7, 0x137c, 0x1449, 0x1520, 0x1600,
+	0x16eb, 0x17e0, 0x18e0, 0x19eb, 0x1b02, 0x1c26, 0x1d57, 0x1e95, 0x1fe2,
+	0x213d, 0x22a8, 0x2423, 0x25af, 0x274d, 0x28fe, 0x2ac1, 0x2c99, 0x2e86,
+	0x3089, 0x32a3, 0x34d5, 0x3721, 0x3986, 0x3c07, 0x3ea5, 0x0, 0x0, 0x0, 0x0,
+	0x1, 0x2, 0x3, 0x4, 0x5, 0x7, 0x8, 0xa, 0xc, 0xe, 0x10, 0x13, 0x16, 0x18,
+	0x1b, 0x1e, 0x22, 0x25, 0x29, 0x2d, 0x31, 0x35, 0x39, 0x3d, 0x42, 0x47,
+	0x4c, 0x51, 0x56, 0x5c, 0x61, 0x67, 0x6d, 0x73, 0x7a, 0x80, 0x87, 0x8e,
+	0x95, 0x9c, 0xa3, 0xaa, 0xb2, 0xba, 0xc2, 0xca, 0xd2, 0xdb, 0xe3, 0xec,
+	0xf5, 0xfe, 0x108, 0x111, 0x11b, 0x125, 0x12f, 0x139, 0x143, 0x14e, 0x158,
+	0x163, 0x16e, 0x179, 0x184, 0x190, 0x19c, 0x1a7, 0x1b3, 0x1bf, 0x1cc,
+	0x1d8, 0x1e5, 0x1f2, 0x1ff, 0x20c, 0x219, 0x227, 0x234, 0x242, 0x250,
+	0x25e, 0x26d, 0x27b, 0x28a, 0x299, 0x2a8, 0x2b7, 0x2c6, 0x2d6, 0x2e5,
+	0x2f5, 0x305, 0x315, 0x325, 0x336, 0x347, 0x357, 0x368, 0x37a, 0x38b,
+	0x39c, 0x3ae, 0x3c0, 0x3d2, 0x3e4, 0x3f6, 0x409, 0x41b, 0x42e, 0x441,
+	0x454, 0x468, 0x47b, 0x48f, 0x4a3, 0x4b7, 0x4cb, 0x4df, 0x4f4, 0x508,
+	0x51d, 0x532, 0x547, 0x55d, 0x573, 0x589, 0x5a0, 0x5b7, 0x5cf, 0x5e7,
+	0x600, 0x619, 0x633, 0x64d, 0x669, 0x684, 0x6a0, 0x6bd, 0x6db, 0x6f9,
+	0x718, 0x738, 0x758, 0x779, 0x79b, 0x7bd, 0x7e0, 0x804, 0x829, 0x84f,
+	0x875, 0x89c, 0x8c4, 0x8ed, 0x917, 0x942, 0x96e, 0x99b, 0x9c9, 0x9f7,
+	0xa27, 0xa58, 0xa8a, 0xabd, 0xaf1, 0xb27, 0xb5d, 0xb95, 0xbce, 0xc08,
+	0xc44, 0xc80, 0xcbf, 0xcfe, 0xd3f, 0xd82, 0xdc5, 0xe0b, 0xe52, 0xe9a,
+	0xee4, 0xf30, 0xf7d, 0xfcc, 0x101d, 0x1070, 0x10c4, 0x111a, 0x1173, 0x11cd,
+	0x1229, 0x1287, 0x12e7, 0x134a, 0x13ae, 0x1415, 0x147e, 0x14ea, 0x1557,
+	0x15c7, 0x163a, 0x16af, 0x1727, 0x17a2, 0x181f, 0x189f, 0x1921, 0x19a7,
+	0x1a30, 0x1abb, 0x1b4a, 0x1bdc, 0x1c71, 0x1d09, 0x1da5, 0x1e44, 0x1ee7,
+	0x1f8d, 0x2037, 0x20e5, 0x2196, 0x224c, 0x2305, 0x23c3, 0x2485, 0x254b,
+	0x2615, 0x26e4, 0x27b8, 0x2890, 0x296d, 0x2a4f, 0x2b35, 0x2c21, 0x2d13,
+	0x2e09, 0x2f05, 0x3006, 0x310e, 0x321b, 0x332e, 0x3447, 0x3566, 0x368b,
+	0x37b8, 0x38ea, 0x3a24, 0x3b64, 0x3cac, 0x3dfa, 0x3f51, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x2, 0x2, 0x3, 0x3, 0x4, 0x4, 0x5, 0x6, 0x6,
+	0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x14, 0x15,
+	0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1e, 0x1f, 0x21, 0x23, 0x24, 0x26, 0x28,
+	0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3f, 0x41,
+	0x43, 0x46, 0x48, 0x4b, 0x4d, 0x50, 0x52, 0x55, 0x58, 0x5a, 0x5d, 0x60,
+	0x63, 0x66, 0x69, 0x6c, 0x6f, 0x72, 0x75, 0x78, 0x7b, 0x7e, 0x82, 0x85,
+	0x88, 0x8c, 0x8f, 0x93, 0x96, 0x9a, 0x9d, 0xa1, 0xa5, 0xa9, 0xac, 0xb0,
+	0xb4, 0xb8, 0xbc, 0xc0, 0xc4, 0xc8, 0xcc, 0xd0, 0xd4, 0xd9, 0xdd, 0xe1,
+	0xe6, 0xea, 0xee, 0xf3, 0xf7, 0xfc, 0x101, 0x105, 0x10a, 0x10f, 0x114,
+	0x118, 0x11d, 0x122, 0x127, 0x12c, 0x131, 0x136, 0x13b, 0x140, 0x146,
+	0x14b, 0x150, 0x155, 0x15b, 0x160, 0x166, 0x16b, 0x171, 0x176, 0x17c,
+	0x182, 0x187, 0x18d, 0x193, 0x199, 0x19e, 0x1a4, 0x1aa, 0x1b0, 0x1b6,
+	0x1bc, 0x1c3, 0x1c9, 0x1cf, 0x1d5, 0x1db, 0x1e2, 0x1e8, 0x1ef, 0x1f5,
+	0x1fb, 0x202, 0x209, 0x20f, 0x216, 0x21d, 0x223, 0x22a, 0x231, 0x238,
+	0x23f, 0x246, 0x24d, 0x254, 0x25b, 0x262, 0x269, 0x270, 0x277, 0x27f,
+	0x286, 0x28d, 0x295, 0x29c, 0x2a4, 0x2ab, 0x2b3, 0x2bb, 0x2c2, 0x2ca,
+	0x2d2, 0x2d9, 0x2e1, 0x2e9, 0x2f1, 0x2f9, 0x301, 0x309, 0x311, 0x319,
+	0x321, 0x32a, 0x332, 0x33a, 0x342, 0x34b, 0x353, 0x35c, 0x364, 0x36d,
+	0x375, 0x37e, 0x387, 0x38f, 0x398, 0x3a1, 0x3aa, 0x3b2, 0x3bb, 0x3c4,
+	0x3cd, 0x3d6, 0x3df, 0x3e9, 0x3f2, 0x3fb, 0x404, 0x40d, 0x417, 0x420,
+	0x42a, 0x433, 0x43d, 0x446, 0x450, 0x459, 0x463, 0x46d, 0x476, 0x480,
+	0x48a, 0x494, 0x49e, 0x4a8, 0x4b2, 0x4bc, 0x4c6, 0x4d0, 0x4da, 0x4e4,
+	0x4ef, 0x4f9, 0x503, 0x50e, 0x518, 0x523, 0x52d, 0x538, 0x542, 0x54d,
+	0x557, 0x562, 0x56d, 0x578, 0x583, 0x58e, 0x59a, 0x5a5, 0x5b1, 0x5bd,
+	0x5c9, 0x5d5, 0x5e1, 0x5ed, 0x5f9, 0x606, 0x613, 0x61f, 0x62c, 0x639,
+	0x647, 0x654, 0x662, 0x66f, 0x67d, 0x68b, 0x699, 0x6a8, 0x6b6, 0x6c5,
+	0x6d4, 0x6e2, 0x6f2, 0x701, 0x710, 0x720, 0x730, 0x740, 0x750, 0x760,
+	0x771, 0x781, 0x792, 0x7a3, 0x7b4, 0x7c6, 0x7d7, 0x7e9, 0x7fb, 0x80d,
+	0x820, 0x832, 0x845, 0x858, 0x86b, 0x87f, 0x892, 0x8a6, 0x8ba, 0x8cf,
+	0x8e3, 0x8f8, 0x90d, 0x922, 0x937, 0x94d, 0x963, 0x979, 0x990, 0x9a6,
+	0x9bd, 0x9d4, 0x9ec, 0xa03, 0xa1b, 0xa33, 0xa4c, 0xa65, 0xa7e, 0xa97,
+	0xab0, 0xaca, 0xae4, 0xaff, 0xb19, 0xb34, 0xb50, 0xb6b, 0xb87, 0xba3,
+	0xbc0, 0xbdc, 0xbf9, 0xc17, 0xc35, 0xc53, 0xc71, 0xc90, 0xcaf, 0xcce,
+	0xcee, 0xd0e, 0xd2f, 0xd50, 0xd71, 0xd92, 0xdb4, 0xdd7, 0xdf9, 0xe1c,
+	0xe40, 0xe64, 0xe88, 0xeac, 0xed1, 0xef7, 0xf1d, 0xf43, 0xf6a, 0xf91,
+	0xfb8, 0xfe0, 0x1009, 0x1032, 0x105b, 0x1085, 0x10af, 0x10d9, 0x1105,
+	0x1130, 0x115c, 0x1189, 0x11b6, 0x11e4, 0x1212, 0x1240, 0x126f, 0x129f,
+	0x12cf, 0x1300, 0x1331, 0x1363, 0x1395, 0x13c8, 0x13fb, 0x142f, 0x1464,
+	0x1499, 0x14ce, 0x1505, 0x153c, 0x1573, 0x15ab, 0x15e4, 0x161d, 0x1657,
+	0x1692, 0x16cd, 0x1709, 0x1745, 0x1783, 0x17c1, 0x17ff, 0x183e, 0x187e,
+	0x18bf, 0x1900, 0x1943, 0x1985, 0x19c9, 0x1a0d, 0x1a52, 0x1a98, 0x1adf,
+	0x1b26, 0x1b6e, 0x1bb7, 0x1c01, 0x1c4b, 0x1c97, 0x1ce3, 0x1d30, 0x1d7e,
+	0x1dcc, 0x1e1c, 0x1e6c, 0x1ebe, 0x1f10, 0x1f63, 0x1fb7, 0x200c, 0x2062,
+	0x20b9, 0x2111, 0x216a, 0x21c3, 0x221e, 0x227a, 0x22d7, 0x2334, 0x2393,
+	0x23f3, 0x2454, 0x24b6, 0x2519, 0x257d, 0x25e2, 0x2649, 0x26b0, 0x2719,
+	0x2782, 0x27ed, 0x2859, 0x28c7, 0x2935, 0x29a5, 0x2a16, 0x2a88, 0x2afb,
+	0x2b70, 0x2be6, 0x2c5d, 0x2cd6, 0x2d50, 0x2dcb, 0x2e47, 0x2ec5, 0x2f45,
+	0x2fc6, 0x3048, 0x30cb, 0x3150, 0x31d7, 0x325f, 0x32e8, 0x3373, 0x3400,
+	0x348e, 0x351d, 0x35af, 0x3641, 0x36d6, 0x376c, 0x3804, 0x389d, 0x3938,
+	0x39d5, 0x3a73, 0x3b13, 0x3bb5, 0x3c59, 0x3cff, 0x3da6, 0x3e4f, 0x3efa,
+	0x3fa7, 0x6,
+	/* table descriptor */
+	0xe8effbe9, 0x0,
+	/* table length */
+	0x400,
+	/* table data */
+	0x32a8, 0x2ea6, 0x361d, 0x2aa0, 0x30fc, 0x344a, 0x3808, 0x2696, 0x2cf8,
+	0x3012, 0x3208, 0x3374, 0x3517, 0x36eb, 0x38d8, 0x2281, 0x28f0, 0x2c0f,
+	0x2e06, 0x2f5a, 0x3082, 0x3181, 0x3256, 0x3305, 0x33f8, 0x34a8, 0x359c,
+	0x367b, 0x3771, 0x3867, 0x395e, 0x1e58, 0x24e1, 0x2808, 0x2a01, 0x2b54,
+	0x2c7e, 0x2d7d, 0x2e53, 0x2efd, 0x2fbd, 0x3049, 0x30be, 0x313d, 0x31c8,
+	0x322e, 0x327e, 0x32d5, 0x333a, 0x33b3, 0x3421, 0x3477, 0x34dd, 0x3557,
+	0x35e8, 0x364a, 0x36b1, 0x372b, 0x37bd, 0x3835, 0x389d, 0x3918, 0x39ab,
+	0x1a0b, 0x20c2, 0x23f6, 0x25f1, 0x2748, 0x2877, 0x2974, 0x2a4e, 0x2af8,
+	0x2bb6, 0x2c45, 0x2cba, 0x2d39, 0x2dc3, 0x2e2c, 0x2e7c, 0x2ed1, 0x2f2b,
+	0x2f8b, 0x2ff0, 0x302d, 0x3065, 0x309f, 0x30dd, 0x311d, 0x315f, 0x31a4,
+	0x31ec, 0x321b, 0x3242, 0x326a, 0x3293, 0x32be, 0x32ec, 0x331f, 0x3356,
+	0x3393, 0x33d5, 0x340e, 0x3435, 0x3460, 0x348f, 0x34c2, 0x34fa, 0x3536,
+	0x3579, 0x35c1, 0x3608, 0x3633, 0x3662, 0x3695, 0x36cd, 0x370b, 0x374d,
+	0x3796, 0x37e6, 0x381e, 0x384d, 0x3881, 0x38ba, 0x38f7, 0x393a, 0x3984,
+	0x39d4, 0x1500, 0x1c85, 0x1fc3, 0x21cc, 0x2331, 0x2468, 0x2563, 0x2644,
+	0x26ec, 0x27aa, 0x283e, 0x28b2, 0x2931, 0x29bb, 0x2a27, 0x2a76, 0x2acb,
+	0x2b25, 0x2b85, 0x2bea, 0x2c2a, 0x2c61, 0x2c9c, 0x2cd9, 0x2d18, 0x2d5b,
+	0x2da0, 0x2de8, 0x2e19, 0x2e3f, 0x2e67, 0x2e90, 0x2ebb, 0x2ee7, 0x2f14,
+	0x2f43, 0x2f72, 0x2fa4, 0x2fd6, 0x3005, 0x301f, 0x303b, 0x3057, 0x3073,
+	0x3091, 0x30ae, 0x30cd, 0x30ec, 0x310c, 0x312d, 0x314e, 0x3170, 0x3193,
+	0x31b6, 0x31da, 0x31ff, 0x3212, 0x3225, 0x3238, 0x324c, 0x3260, 0x3274,
+	0x3289, 0x329e, 0x32b3, 0x32c9, 0x32e0, 0x32f9, 0x3312, 0x332c, 0x3348,
+	0x3365, 0x3383, 0x33a3, 0x33c4, 0x33e6, 0x3405, 0x3418, 0x342b, 0x3440,
+	0x3455, 0x346b, 0x3483, 0x349b, 0x34b5, 0x34cf, 0x34eb, 0x3508, 0x3527,
+	0x3546, 0x3568, 0x358a, 0x35ae, 0x35d4, 0x35fc, 0x3612, 0x3628, 0x363e,
+	0x3656, 0x366e, 0x3688, 0x36a3, 0x36bf, 0x36dc, 0x36fb, 0x371b, 0x373c,
+	0x375f, 0x3783, 0x37aa, 0x37d1, 0x37fb, 0x3813, 0x382a, 0x3841, 0x385a,
+	0x3874, 0x388f, 0x38ab, 0x38c8, 0x38e7, 0x3907, 0x3929, 0x394c, 0x3971,
+	0x3997, 0x39bf, 0x39e9, 0xea8, 0x1815, 0x1b60, 0x1d86, 0x1f03, 0x204c,
+	0x2142, 0x2231, 0x22d6, 0x2391, 0x2430, 0x24a3, 0x2521, 0x25a9, 0x261e,
+	0x266c, 0x26c0, 0x271a, 0x2779, 0x27dd, 0x2823, 0x285a, 0x2894, 0x28d1,
+	0x2910, 0x2952, 0x2997, 0x29df, 0x2a14, 0x2a3a, 0x2a62, 0x2a8b, 0x2ab6,
+	0x2ae1, 0x2b0e, 0x2b3d, 0x2b6c, 0x2b9d, 0x2bd0, 0x2c02, 0x2c1c, 0x2c37,
+	0x2c53, 0x2c70, 0x2c8d, 0x2cab, 0x2cc9, 0x2ce8, 0x2d08, 0x2d29, 0x2d4a,
+	0x2d6c, 0x2d8e, 0x2db2, 0x2dd5, 0x2dfa, 0x2e0f, 0x2e22, 0x2e36, 0x2e49,
+	0x2e5d, 0x2e71, 0x2e86, 0x2e9b, 0x2eb0, 0x2ec6, 0x2edc, 0x2ef2, 0x2f09,
+	0x2f20, 0x2f37, 0x2f4e, 0x2f66, 0x2f7f, 0x2f97, 0x2fb0, 0x2fc9, 0x2fe3,
+	0x2ffd, 0x300b, 0x3019, 0x3026, 0x3034, 0x3042, 0x3050, 0x305e, 0x306c,
+	0x307b, 0x3089, 0x3098, 0x30a7, 0x30b6, 0x30c5, 0x30d5, 0x30e4, 0x30f4,
+	0x3104, 0x3114, 0x3125, 0x3135, 0x3146, 0x3157, 0x3168, 0x3179, 0x318a,
+	0x319c, 0x31ad, 0x31bf, 0x31d1, 0x31e3, 0x31f5, 0x3204, 0x320d, 0x3216,
+	0x3220, 0x3229, 0x3233, 0x323d, 0x3247, 0x3251, 0x325b, 0x3265, 0x326f,
+	0x3279, 0x3283, 0x328e, 0x3298, 0x32a3, 0x32ae, 0x32b8, 0x32c4, 0x32cf,
+	0x32da, 0x32e6, 0x32f2, 0x32ff, 0x330c, 0x3318, 0x3326, 0x3333, 0x3341,
+	0x334f, 0x335e, 0x336c, 0x337c, 0x338b, 0x339b, 0x33ab, 0x33bb, 0x33cc,
+	0x33dd, 0x33ef, 0x3400, 0x3409, 0x3413, 0x341c, 0x3426, 0x3430, 0x343a,
+	0x3445, 0x3450, 0x345b, 0x3466, 0x3471, 0x347d, 0x3489, 0x3495, 0x34a2,
+	0x34ae, 0x34bb, 0x34c9, 0x34d6, 0x34e4, 0x34f2, 0x3501, 0x3510, 0x351f,
+	0x352f, 0x353e, 0x354f, 0x355f, 0x3570, 0x3581, 0x3593, 0x35a5, 0x35b8,
+	0x35cb, 0x35de, 0x35f2, 0x3603, 0x360d, 0x3618, 0x3622, 0x362d, 0x3639,
+	0x3644, 0x3650, 0x365c, 0x3668, 0x3675, 0x3682, 0x368f, 0x369c, 0x36aa,
+	0x36b8, 0x36c6, 0x36d5, 0x36e4, 0x36f3, 0x3703, 0x3713, 0x3723, 0x3734,
+	0x3745, 0x3756, 0x3768, 0x377a, 0x378d, 0x37a0, 0x37b3, 0x37c7, 0x37dc,
+	0x37f0, 0x3802, 0x380d, 0x3818, 0x3824, 0x382f, 0x383b, 0x3847, 0x3854,
+	0x3860, 0x386d, 0x387a, 0x3888, 0x3896, 0x38a4, 0x38b2, 0x38c1, 0x38d0,
+	0x38df, 0x38ef, 0x38ff, 0x3910, 0x3920, 0x3932, 0x3943, 0x3955, 0x3967,
+	0x397a, 0x398d, 0x39a1, 0x39b5, 0x39c9, 0x39de, 0x39f4, 0x0, 0x12aa,
+	0x16ab, 0x1900, 0x1aab, 0x1c15, 0x1d00, 0x1e0b, 0x1eab, 0x1f60, 0x2015,
+	0x2085, 0x2100, 0x2186, 0x220b, 0x2258, 0x22ab, 0x2303, 0x2360, 0x23c3,
+	0x2415, 0x244c, 0x2485, 0x24c2, 0x2500, 0x2542, 0x2586, 0x25cc, 0x260b,
+	0x2631, 0x2658, 0x2681, 0x26ab, 0x26d6, 0x2703, 0x2731, 0x2760, 0x2791,
+	0x27c3, 0x27f6, 0x2815, 0x2830, 0x284c, 0x2868, 0x2885, 0x28a3, 0x28c2,
+	0x28e1, 0x2900, 0x2921, 0x2942, 0x2963, 0x2986, 0x29a9, 0x29cc, 0x29f1,
+	0x2a0b, 0x2a1e, 0x2a31, 0x2a44, 0x2a58, 0x2a6c, 0x2a81, 0x2a96, 0x2aab,
+	0x2ac0, 0x2ad6, 0x2aec, 0x2b03, 0x2b1a, 0x2b31, 0x2b48, 0x2b60, 0x2b79,
+	0x2b91, 0x2baa, 0x2bc3, 0x2bdd, 0x2bf6, 0x2c08, 0x2c15, 0x2c23, 0x2c30,
+	0x2c3e, 0x2c4c, 0x2c5a, 0x2c68, 0x2c77, 0x2c85, 0x2c94, 0x2ca3, 0x2cb2,
+	0x2cc2, 0x2cd1, 0x2ce1, 0x2cf0, 0x2d00, 0x2d10, 0x2d21, 0x2d31, 0x2d42,
+	0x2d52, 0x2d63, 0x2d74, 0x2d86, 0x2d97, 0x2da9, 0x2dbb, 0x2dcc, 0x2ddf,
+	0x2df1, 0x2e01, 0x2e0b, 0x2e14, 0x2e1e, 0x2e27, 0x2e31, 0x2e3a, 0x2e44,
+	0x2e4e, 0x2e58, 0x2e62, 0x2e6c, 0x2e76, 0x2e81, 0x2e8b, 0x2e96, 0x2ea0,
+	0x2eab, 0x2eb6, 0x2ec0, 0x2ecb, 0x2ed6, 0x2ee1, 0x2eec, 0x2ef8, 0x2f03,
+	0x2f0e, 0x2f1a, 0x2f25, 0x2f31, 0x2f3d, 0x2f48, 0x2f54, 0x2f60, 0x2f6c,
+	0x2f79, 0x2f85, 0x2f91, 0x2f9d, 0x2faa, 0x2fb6, 0x2fc3, 0x2fd0, 0x2fdd,
+	0x2fea, 0x2ff6, 0x3002, 0x3008, 0x300f, 0x3015, 0x301c, 0x3023, 0x302a,
+	0x3030, 0x3037, 0x303e, 0x3045, 0x304c, 0x3053, 0x305a, 0x3061, 0x3068,
+	0x3070, 0x3077, 0x307e, 0x3085, 0x308d, 0x3094, 0x309c, 0x30a3, 0x30ab,
+	0x30b2, 0x30ba, 0x30c2, 0x30c9, 0x30d1, 0x30d9, 0x30e1, 0x30e8, 0x30f0,
+	0x30f8, 0x3100, 0x3108, 0x3110, 0x3118, 0x3121, 0x3129, 0x3131, 0x3139,
+	0x3142, 0x314a, 0x3152, 0x315b, 0x3163, 0x316c, 0x3174, 0x317d, 0x3186,
+	0x318e, 0x3197, 0x31a0, 0x31a9, 0x31b2, 0x31bb, 0x31c3, 0x31cc, 0x31d5,
+	0x31df, 0x31e8, 0x31f1, 0x31fa, 0x3201, 0x3206, 0x320b, 0x320f, 0x3214,
+	0x3219, 0x321e, 0x3222, 0x3227, 0x322c, 0x3231, 0x3236, 0x323a, 0x323f,
+	0x3244, 0x3249, 0x324e, 0x3253, 0x3258, 0x325d, 0x3262, 0x3267, 0x326c,
+	0x3271, 0x3276, 0x327c, 0x3281, 0x3286, 0x328b, 0x3290, 0x3296, 0x329b,
+	0x32a0, 0x32a6, 0x32ab, 0x32b0, 0x32b6, 0x32bb, 0x32c1, 0x32c6, 0x32cc,
+	0x32d2, 0x32d8, 0x32dd, 0x32e3, 0x32e9, 0x32ef, 0x32f6, 0x32fc, 0x3302,
+	0x3308, 0x330f, 0x3315, 0x331c, 0x3322, 0x3329, 0x3330, 0x3337, 0x333e,
+	0x3345, 0x334c, 0x3353, 0x335a, 0x3361, 0x3369, 0x3370, 0x3378, 0x337f,
+	0x3387, 0x338f, 0x3397, 0x339f, 0x33a7, 0x33af, 0x33b7, 0x33bf, 0x33c8,
+	0x33d0, 0x33d9, 0x33e2, 0x33eb, 0x33f3, 0x33fc, 0x3402, 0x3407, 0x340c,
+	0x3410, 0x3415, 0x341a, 0x341f, 0x3424, 0x3429, 0x342e, 0x3433, 0x3438,
+	0x343d, 0x3442, 0x3448, 0x344d, 0x3452, 0x3458, 0x345d, 0x3463, 0x3469,
+	0x346e, 0x3474, 0x347a, 0x3480, 0x3486, 0x348c, 0x3492, 0x3498, 0x349e,
+	0x34a5, 0x34ab, 0x34b2, 0x34b8, 0x34bf, 0x34c5, 0x34cc, 0x34d3, 0x34da,
+	0x34e1, 0x34e8, 0x34ef, 0x34f6, 0x34fd, 0x3505, 0x350c, 0x3514, 0x351b,
+	0x3523, 0x352b, 0x3532, 0x353a, 0x3542, 0x354b, 0x3553, 0x355b, 0x3563,
+	0x356c, 0x3574, 0x357d, 0x3586, 0x358f, 0x3598, 0x35a1, 0x35aa, 0x35b3,
+	0x35bc, 0x35c6, 0x35cf, 0x35d9, 0x35e3, 0x35ed, 0x35f7, 0x3600, 0x3605,
+	0x360a, 0x3610, 0x3615, 0x361a, 0x3620, 0x3625, 0x362b, 0x3630, 0x3636,
+	0x363b, 0x3641, 0x3647, 0x364d, 0x3653, 0x3659, 0x365f, 0x3665, 0x366b,
+	0x3672, 0x3678, 0x367e, 0x3685, 0x368b, 0x3692, 0x3699, 0x36a0, 0x36a6,
+	0x36ad, 0x36b4, 0x36bb, 0x36c3, 0x36ca, 0x36d1, 0x36d9, 0x36e0, 0x36e8,
+	0x36ef, 0x36f7, 0x36ff, 0x3707, 0x370f, 0x3717, 0x371f, 0x3727, 0x372f,
+	0x3738, 0x3740, 0x3749, 0x3752, 0x375b, 0x3764, 0x376d, 0x3776, 0x377f,
+	0x3788, 0x3792, 0x379b, 0x37a5, 0x37ae, 0x37b8, 0x37c2, 0x37cc, 0x37d6,
+	0x37e1, 0x37eb, 0x37f6, 0x3800, 0x3805, 0x380b, 0x3810, 0x3816, 0x381b,
+	0x3821, 0x3827, 0x382c, 0x3832, 0x3838, 0x383e, 0x3844, 0x384a, 0x3851,
+	0x3857, 0x385d, 0x3864, 0x386a, 0x3870, 0x3877, 0x387e, 0x3885, 0x388b,
+	0x3892, 0x3899, 0x38a0, 0x38a7, 0x38af, 0x38b6, 0x38bd, 0x38c5, 0x38cc,
+	0x38d4, 0x38dc, 0x38e3, 0x38eb, 0x38f3, 0x38fb, 0x3903, 0x390c, 0x3914,
+	0x391c, 0x3925, 0x392d, 0x3936, 0x393f, 0x3948, 0x3951, 0x395a, 0x3963,
+	0x396c, 0x3975, 0x397f, 0x3989, 0x3992, 0x399c, 0x39a6, 0x39b0, 0x39ba,
+	0x39c4, 0x39cf, 0x39d9, 0x39e4, 0x39ee, 0x39f9, 0xc,
+	/* table descriptor */
+	0xe1effbe9, 0x0,
+	/* table length */
+	0x400,
+	/* table data */
+	0x2c59, 0x2416, 0x3322, 0x1dd0, 0x287e, 0x2ff0, 0x3679, 0x188b, 0x2131,
+	0x2661, 0x2a78, 0x2e2b, 0x3186, 0x34c8, 0x3836, 0x141d, 0x1b81, 0x1fa3,
+	0x22a3, 0x2531, 0x277a, 0x2988, 0x2b6b, 0x2d33, 0x2eed, 0x30a3, 0x325a,
+	0x3416, 0x35b5, 0x374e, 0x38f8, 0xff8, 0x1698, 0x1a32, 0x1ca3, 0x1eab,
+	0x206e, 0x2210, 0x2355, 0x2497, 0x25e9, 0x26e2, 0x2816, 0x28f9, 0x2a17,
+	0x2ae8, 0x2c01, 0x2cbe, 0x2dbb, 0x2e85, 0x2f65, 0x3047, 0x310d, 0x3209,
+	0x32b7, 0x339e, 0x3469, 0x3536, 0x3624, 0x36db, 0x37d2, 0x388f, 0x3971,
+	0xbe0, 0x124a, 0x1572, 0x17b5, 0x1962, 0x1acc, 0x1c29, 0x1d30, 0x1e43,
+	0x1f20, 0x201b, 0x20ca, 0x21a2, 0x2256, 0x22f8, 0x23bc, 0x2454, 0x24e1,
+	0x2589, 0x2629, 0x269f, 0x272b, 0x27d0, 0x2848, 0x28b9, 0x293d, 0x29d8,
+	0x2a45, 0x2aae, 0x2b27, 0x2bb4, 0x2c2b, 0x2c89, 0x2cf6, 0x2d74, 0x2e03,
+	0x2e57, 0x2eb8, 0x2f27, 0x2fa8, 0x301e, 0x3073, 0x30d6, 0x3147, 0x31ca,
+	0x3230, 0x3287, 0x32eb, 0x335e, 0x33e3, 0x343e, 0x3497, 0x34fd, 0x3573,
+	0x35fc, 0x364d, 0x36a8, 0x3712, 0x378d, 0x380e, 0x3861, 0x38c1, 0x3932,
+	0x39b5, 0x700, 0xe30, 0x1120, 0x132c, 0x14bb, 0x1621, 0x171f, 0x182e,
+	0x18f2, 0x19de, 0x1a7c, 0x1b23, 0x1be6, 0x1c64, 0x1ce7, 0x1d7d, 0x1e14,
+	0x1e75, 0x1ee3, 0x1f60, 0x1feb, 0x2043, 0x209b, 0x20fc, 0x2168, 0x21e0,
+	0x2232, 0x227b, 0x22cc, 0x2325, 0x2387, 0x23f3, 0x2434, 0x2475, 0x24bb,
+	0x2508, 0x255d, 0x25b8, 0x260e, 0x2644, 0x2680, 0x26c0, 0x2706, 0x2752,
+	0x27a4, 0x27fd, 0x282f, 0x2863, 0x289b, 0x28d8, 0x291a, 0x2962, 0x29af,
+	0x2a01, 0x2a2e, 0x2a5e, 0x2a92, 0x2aca, 0x2b07, 0x2b48, 0x2b8f, 0x2bda,
+	0x2c16, 0x2c41, 0x2c70, 0x2ca3, 0x2cda, 0x2d14, 0x2d53, 0x2d97, 0x2de0,
+	0x2e17, 0x2e41, 0x2e6e, 0x2e9e, 0x2ed2, 0x2f0a, 0x2f46, 0x2f86, 0x2fcb,
+	0x300a, 0x3032, 0x305d, 0x308b, 0x30bc, 0x30f1, 0x3129, 0x3166, 0x31a8,
+	0x31ee, 0x321c, 0x3245, 0x3270, 0x329f, 0x32d1, 0x3306, 0x3340, 0x337e,
+	0x33c0, 0x3404, 0x342a, 0x3453, 0x347f, 0x34af, 0x34e2, 0x3519, 0x3554,
+	0x3593, 0x35d8, 0x3610, 0x3638, 0x3662, 0x3690, 0x36c1, 0x36f6, 0x372f,
+	0x376d, 0x37af, 0x37f7, 0x3821, 0x384b, 0x3878, 0x38a8, 0x38dc, 0x3914,
+	0x3951, 0x3992, 0x39d9, 0x200, 0xa20, 0xd00, 0xf00, 0x1084, 0x11d0, 0x12b6,
+	0x13ae, 0x1469, 0x1513, 0x15d7, 0x165b, 0x16da, 0x1768, 0x1803, 0x185b,
+	0x18bd, 0x1929, 0x199f, 0x1a10, 0x1a56, 0x1aa3, 0x1af6, 0x1b51, 0x1bb2,
+	0x1c0e, 0x1c46, 0x1c83, 0x1cc5, 0x1d0b, 0x1d56, 0x1da6, 0x1dfc, 0x1e2b,
+	0x1e5c, 0x1e90, 0x1ec7, 0x1f01, 0x1f3f, 0x1f81, 0x1fc7, 0x2008, 0x202f,
+	0x2058, 0x2084, 0x20b2, 0x20e3, 0x2116, 0x214c, 0x2185, 0x21c1, 0x2200,
+	0x2221, 0x2244, 0x2268, 0x228f, 0x22b7, 0x22e2, 0x230e, 0x233d, 0x236e,
+	0x23a1, 0x23d7, 0x2407, 0x2425, 0x2444, 0x2464, 0x2486, 0x24a9, 0x24ce,
+	0x24f4, 0x251d, 0x2547, 0x2573, 0x25a1, 0x25d1, 0x2601, 0x261b, 0x2636,
+	0x2653, 0x2670, 0x268f, 0x26af, 0x26d1, 0x26f4, 0x2718, 0x273e, 0x2766,
+	0x278f, 0x27b9, 0x27e6, 0x280a, 0x2822, 0x283b, 0x2855, 0x2870, 0x288d,
+	0x28aa, 0x28c9, 0x28e8, 0x2909, 0x292c, 0x294f, 0x2975, 0x299b, 0x29c3,
+	0x29ed, 0x2a0c, 0x2a22, 0x2a39, 0x2a52, 0x2a6b, 0x2a85, 0x2aa0, 0x2abc,
+	0x2ad9, 0x2af7, 0x2b17, 0x2b38, 0x2b59, 0x2b7d, 0x2ba1, 0x2bc7, 0x2bee,
+	0x2c0b, 0x2c20, 0x2c36, 0x2c4d, 0x2c64, 0x2c7d, 0x2c96, 0x2cb0, 0x2ccc,
+	0x2ce8, 0x2d05, 0x2d24, 0x2d43, 0x2d64, 0x2d85, 0x2da9, 0x2dcd, 0x2df3,
+	0x2e0d, 0x2e21, 0x2e36, 0x2e4c, 0x2e62, 0x2e79, 0x2e92, 0x2eab, 0x2ec5,
+	0x2ee0, 0x2efb, 0x2f18, 0x2f36, 0x2f55, 0x2f76, 0x2f97, 0x2fb9, 0x2fdd,
+	0x3001, 0x3014, 0x3028, 0x303d, 0x3052, 0x3068, 0x307f, 0x3097, 0x30af,
+	0x30c9, 0x30e3, 0x30ff, 0x311b, 0x3138, 0x3157, 0x3176, 0x3197, 0x31b9,
+	0x31dc, 0x3200, 0x3213, 0x3226, 0x323a, 0x324f, 0x3265, 0x327b, 0x3293,
+	0x32ab, 0x32c4, 0x32de, 0x32f8, 0x3314, 0x3331, 0x334f, 0x336e, 0x338e,
+	0x33af, 0x33d2, 0x33f5, 0x340d, 0x3420, 0x3434, 0x3448, 0x345e, 0x3474,
+	0x348b, 0x34a3, 0x34bb, 0x34d5, 0x34ef, 0x350b, 0x3527, 0x3545, 0x3563,
+	0x3583, 0x35a4, 0x35c6, 0x35ea, 0x3607, 0x361a, 0x362e, 0x3642, 0x3657,
+	0x366d, 0x3684, 0x369c, 0x36b5, 0x36ce, 0x36e9, 0x3704, 0x3721, 0x373e,
+	0x375d, 0x377d, 0x379e, 0x37c1, 0x37e4, 0x3804, 0x3818, 0x382c, 0x3840,
+	0x3856, 0x386c, 0x3883, 0x389b, 0x38b5, 0x38cf, 0x38ea, 0x3906, 0x3923,
+	0x3941, 0x3961, 0x3981, 0x39a3, 0x39c7, 0x39ec, 0x0, 0x500, 0x8c0, 0xae0,
+	0xc70, 0xdb0, 0xe98, 0xf78, 0x103c, 0x10d0, 0x1178, 0x1218, 0x127e, 0x12f0,
+	0x136c, 0x13f2, 0x1442, 0x1491, 0x14e6, 0x1542, 0x15a4, 0x1606, 0x163e,
+	0x1679, 0x16b9, 0x16fc, 0x1743, 0x178e, 0x17dd, 0x1818, 0x1844, 0x1873,
+	0x18a4, 0x18d7, 0x190d, 0x1945, 0x1980, 0x19be, 0x19ff, 0x1a21, 0x1a44,
+	0x1a69, 0x1a8f, 0x1ab7, 0x1ae1, 0x1b0c, 0x1b39, 0x1b68, 0x1b99, 0x1bcc,
+	0x1c00, 0x1c1b, 0x1c38, 0x1c55, 0x1c74, 0x1c93, 0x1cb4, 0x1cd6, 0x1cf9,
+	0x1d1d, 0x1d42, 0x1d69, 0x1d91, 0x1dbb, 0x1de6, 0x1e09, 0x1e20, 0x1e37,
+	0x1e4f, 0x1e69, 0x1e82, 0x1e9d, 0x1eb9, 0x1ed5, 0x1ef2, 0x1f10, 0x1f2f,
+	0x1f4f, 0x1f70, 0x1f92, 0x1fb5, 0x1fd9, 0x1ffe, 0x2012, 0x2025, 0x2039,
+	0x204e, 0x2063, 0x2079, 0x208f, 0x20a6, 0x20be, 0x20d6, 0x20ef, 0x2109,
+	0x2123, 0x213e, 0x215a, 0x2176, 0x2194, 0x21b2, 0x21d0, 0x21f0, 0x2208,
+	0x2218, 0x2229, 0x223b, 0x224d, 0x225f, 0x2272, 0x2285, 0x2299, 0x22ad,
+	0x22c2, 0x22d7, 0x22ed, 0x2303, 0x231a, 0x2331, 0x2349, 0x2361, 0x237a,
+	0x2394, 0x23ae, 0x23c9, 0x23e5, 0x2400, 0x240f, 0x241d, 0x242c, 0x243c,
+	0x244c, 0x245c, 0x246c, 0x247d, 0x248e, 0x24a0, 0x24b2, 0x24c4, 0x24d7,
+	0x24eb, 0x24fe, 0x2512, 0x2527, 0x253c, 0x2552, 0x2568, 0x257e, 0x2595,
+	0x25ac, 0x25c4, 0x25dd, 0x25f6, 0x2607, 0x2614, 0x2622, 0x262f, 0x263d,
+	0x264c, 0x265a, 0x2669, 0x2678, 0x2687, 0x2697, 0x26a7, 0x26b8, 0x26c8,
+	0x26d9, 0x26eb, 0x26fd, 0x270f, 0x2722, 0x2734, 0x2748, 0x275c, 0x2770,
+	0x2784, 0x2799, 0x27af, 0x27c4, 0x27db, 0x27f1, 0x2804, 0x2810, 0x281c,
+	0x2828, 0x2835, 0x2842, 0x284f, 0x285c, 0x286a, 0x2877, 0x2886, 0x2894,
+	0x28a3, 0x28b2, 0x28c1, 0x28d0, 0x28e0, 0x28f1, 0x2901, 0x2912, 0x2923,
+	0x2935, 0x2946, 0x2959, 0x296b, 0x297e, 0x2991, 0x29a5, 0x29b9, 0x29cd,
+	0x29e2, 0x29f7, 0x2a06, 0x2a11, 0x2a1c, 0x2a28, 0x2a33, 0x2a3f, 0x2a4b,
+	0x2a58, 0x2a64, 0x2a71, 0x2a7e, 0x2a8b, 0x2a99, 0x2aa7, 0x2ab5, 0x2ac3,
+	0x2ad2, 0x2ae1, 0x2af0, 0x2aff, 0x2b0f, 0x2b1f, 0x2b2f, 0x2b40, 0x2b51,
+	0x2b62, 0x2b74, 0x2b86, 0x2b98, 0x2baa, 0x2bbd, 0x2bd0, 0x2be4, 0x2bf8,
+	0x2c06, 0x2c10, 0x2c1b, 0x2c26, 0x2c31, 0x2c3c, 0x2c47, 0x2c53, 0x2c5e,
+	0x2c6a, 0x2c77, 0x2c83, 0x2c90, 0x2c9d, 0x2caa, 0x2cb7, 0x2cc5, 0x2cd3,
+	0x2ce1, 0x2cef, 0x2cfe, 0x2d0d, 0x2d1c, 0x2d2b, 0x2d3b, 0x2d4b, 0x2d5b,
+	0x2d6c, 0x2d7d, 0x2d8e, 0x2da0, 0x2db2, 0x2dc4, 0x2dd6, 0x2de9, 0x2dfc,
+	0x2e08, 0x2e12, 0x2e1c, 0x2e26, 0x2e30, 0x2e3b, 0x2e46, 0x2e51, 0x2e5c,
+	0x2e68, 0x2e73, 0x2e7f, 0x2e8b, 0x2e98, 0x2ea4, 0x2eb1, 0x2ebe, 0x2ecb,
+	0x2ed9, 0x2ee6, 0x2ef4, 0x2f03, 0x2f11, 0x2f20, 0x2f2f, 0x2f3e, 0x2f4e,
+	0x2f5d, 0x2f6d, 0x2f7e, 0x2f8e, 0x2f9f, 0x2fb1, 0x2fc2, 0x2fd4, 0x2fe6,
+	0x2ff9, 0x3006, 0x300f, 0x3019, 0x3023, 0x302d, 0x3037, 0x3042, 0x304d,
+	0x3057, 0x3062, 0x306e, 0x3079, 0x3085, 0x3091, 0x309d, 0x30a9, 0x30b6,
+	0x30c2, 0x30cf, 0x30dd, 0x30ea, 0x30f8, 0x3106, 0x3114, 0x3122, 0x3131,
+	0x3140, 0x314f, 0x315e, 0x316e, 0x317e, 0x318f, 0x319f, 0x31b0, 0x31c1,
+	0x31d3, 0x31e5, 0x31f7, 0x3204, 0x320e, 0x3217, 0x3221, 0x322b, 0x3235,
+	0x323f, 0x324a, 0x3255, 0x325f, 0x326a, 0x3276, 0x3281, 0x328d, 0x3299,
+	0x32a5, 0x32b1, 0x32bd, 0x32ca, 0x32d7, 0x32e4, 0x32f2, 0x32ff, 0x330d,
+	0x331b, 0x332a, 0x3338, 0x3347, 0x3357, 0x3366, 0x3376, 0x3386, 0x3396,
+	0x33a7, 0x33b8, 0x33c9, 0x33da, 0x33ec, 0x33fe, 0x3408, 0x3412, 0x341b,
+	0x3425, 0x342f, 0x3439, 0x3443, 0x344e, 0x3458, 0x3463, 0x346e, 0x347a,
+	0x3485, 0x3491, 0x349d, 0x34a9, 0x34b5, 0x34c2, 0x34ce, 0x34db, 0x34e9,
+	0x34f6, 0x3504, 0x3512, 0x3520, 0x352f, 0x353d, 0x354c, 0x355c, 0x356b,
+	0x357b, 0x358b, 0x359c, 0x35ad, 0x35be, 0x35cf, 0x35e1, 0x35f3, 0x3602,
+	0x360c, 0x3615, 0x361f, 0x3629, 0x3633, 0x363d, 0x3647, 0x3652, 0x365d,
+	0x3668, 0x3673, 0x367f, 0x368a, 0x3696, 0x36a2, 0x36ae, 0x36bb, 0x36c8,
+	0x36d5, 0x36e2, 0x36f0, 0x36fd, 0x370b, 0x371a, 0x3728, 0x3737, 0x3746,
+	0x3755, 0x3765, 0x3775, 0x3785, 0x3796, 0x37a7, 0x37b8, 0x37c9, 0x37db,
+	0x37ed, 0x3800, 0x3809, 0x3813, 0x381d, 0x3826, 0x3831, 0x383b, 0x3846,
+	0x3850, 0x385b, 0x3866, 0x3872, 0x387d, 0x3889, 0x3895, 0x38a2, 0x38ae,
+	0x38bb, 0x38c8, 0x38d5, 0x38e3, 0x38f1, 0x38ff, 0x390d, 0x391b, 0x392a,
+	0x3939, 0x3949, 0x3959, 0x3969, 0x3979, 0x398a, 0x399b, 0x39ac, 0x39be,
+	0x39d0, 0x39e2, 0x39f5, 0xc,
+	/* table descriptor */
+	0xe2effbe9, 0xf,
+	/* table length */
+	0x400,
+	/* table data */
+	0x1095, 0x4fa, 0x240a, 0x1d9, 0x9d8, 0x1949, 0x30eb, 0xe0, 0x334, 0x72f,
+	0xcf9, 0x14ae, 0x1e66, 0x2a35, 0x382e, 0x6e, 0x152, 0x27a, 0x409, 0x606,
+	0x875, 0xb5a, 0xeb7, 0x1291, 0x16eb, 0x1bc7, 0x2127, 0x270e, 0x2d7f,
+	0x347b, 0x3c04, 0x35, 0xa7, 0x119, 0x193, 0x226, 0x2d4, 0x39b, 0x47e,
+	0x57d, 0x697, 0x7cf, 0x923, 0xa95, 0xc25, 0xdd4, 0xfa2, 0x118f, 0x139c,
+	0x15c9, 0x1816, 0x1a84, 0x1d12, 0x1fc2, 0x2294, 0x2588, 0x289e, 0x2bd6,
+	0x2f31, 0x32af, 0x3650, 0x3a15, 0x3dfd, 0x18, 0x51, 0x8a, 0xc3, 0xfc,
+	0x134, 0x172, 0x1b5, 0x1ff, 0x24f, 0x2a6, 0x303, 0x367, 0x3d2, 0x443,
+	0x4bb, 0x53a, 0x5c1, 0x64e, 0x6e2, 0x77e, 0x821, 0x8cb, 0x97d, 0xa36,
+	0xaf6, 0xbbf, 0xc8e, 0xd66, 0xe45, 0xf2c, 0x101a, 0x1111, 0x120f, 0x1316,
+	0x1424, 0x153a, 0x1659, 0x177f, 0x18ae, 0x19e5, 0x1b24, 0x1c6c, 0x1dbb,
+	0x1f13, 0x2074, 0x21dd, 0x234e, 0x24c8, 0x264a, 0x27d5, 0x2968, 0x2b05,
+	0x2ca9, 0x2e57, 0x300d, 0x31cc, 0x3394, 0x3564, 0x373e, 0x3920, 0x3b0b,
+	0x3cff, 0x3efd, 0xa, 0x27, 0x43, 0x60, 0x7c, 0x99, 0xb5, 0xd1, 0xee, 0x10a,
+	0x126, 0x143, 0x162, 0x182, 0x1a4, 0x1c7, 0x1ec, 0x213, 0x23b, 0x264,
+	0x290, 0x2bd, 0x2eb, 0x31c, 0x34d, 0x381, 0x3b6, 0x3ed, 0x426, 0x460,
+	0x49c, 0x4da, 0x51a, 0x55b, 0x59e, 0x5e3, 0x62a, 0x672, 0x6bd, 0x709,
+	0x756, 0x7a6, 0x7f7, 0x84b, 0x8a0, 0x8f7, 0x950, 0x9aa, 0xa07, 0xa65,
+	0xac6, 0xb28, 0xb8c, 0xbf2, 0xc5a, 0xcc3, 0xd2f, 0xd9d, 0xe0c, 0xe7e,
+	0xef1, 0xf67, 0xfde, 0x1057, 0x10d3, 0x1150, 0x11cf, 0x1250, 0x12d3,
+	0x1359, 0x13e0, 0x1469, 0x14f4, 0x1581, 0x1610, 0x16a2, 0x1735, 0x17ca,
+	0x1862, 0x18fb, 0x1996, 0x1a34, 0x1ad4, 0x1b75, 0x1c19, 0x1cbf, 0x1d67,
+	0x1e10, 0x1ebd, 0x1f6b, 0x201b, 0x20cd, 0x2182, 0x2238, 0x22f1, 0x23ac,
+	0x2469, 0x2528, 0x25e9, 0x26ac, 0x2771, 0x2839, 0x2903, 0x29cf, 0x2a9d,
+	0x2b6d, 0x2c3f, 0x2d14, 0x2deb, 0x2ec4, 0x2f9f, 0x307c, 0x315b, 0x323d,
+	0x3321, 0x3407, 0x34ef, 0x35da, 0x36c7, 0x37b6, 0x38a7, 0x399a, 0x3a90,
+	0x3b87, 0x3c82, 0x3d7e, 0x3e7c, 0x3f7d, 0x3, 0x11, 0x20, 0x2e, 0x3c, 0x4a,
+	0x58, 0x67, 0x75, 0x83, 0x91, 0xa0, 0xae, 0xbc, 0xca, 0xd9, 0xe7, 0xf5,
+	0x103, 0x112, 0x120, 0x12d, 0x13c, 0x14b, 0x15a, 0x16a, 0x17a, 0x18a,
+	0x19b, 0x1ad, 0x1be, 0x1d0, 0x1e3, 0x1f6, 0x209, 0x21c, 0x230, 0x245,
+	0x25a, 0x26f, 0x285, 0x29b, 0x2b1, 0x2c8, 0x2df, 0x2f7, 0x30f, 0x328,
+	0x341, 0x35a, 0x374, 0x38e, 0x3a9, 0x3c4, 0x3df, 0x3fb, 0x418, 0x434,
+	0x452, 0x46f, 0x48d, 0x4ac, 0x4cb, 0x4ea, 0x50a, 0x52a, 0x54b, 0x56c,
+	0x58d, 0x5af, 0x5d2, 0x5f5, 0x618, 0x63c, 0x660, 0x685, 0x6aa, 0x6cf,
+	0x6f5, 0x71c, 0x743, 0x76a, 0x792, 0x7ba, 0x7e3, 0x80c, 0x836, 0x860,
+	0x88a, 0x8b5, 0x8e1, 0x90d, 0x939, 0x966, 0x993, 0x9c1, 0x9f0, 0xa1e,
+	0xa4e, 0xa7d, 0xaad, 0xade, 0xb0f, 0xb41, 0xb73, 0xba5, 0xbd8, 0xc0c,
+	0xc40, 0xc74, 0xca9, 0xcde, 0xd14, 0xd4a, 0xd81, 0xdb8, 0xdf0, 0xe29,
+	0xe61, 0xe9a, 0xed4, 0xf0e, 0xf49, 0xf84, 0xfc0, 0xffc, 0x1039, 0x1076,
+	0x10b4, 0x10f2, 0x1130, 0x116f, 0x11af, 0x11ef, 0x1230, 0x1271, 0x12b2,
+	0x12f4, 0x1337, 0x137a, 0x13be, 0x1402, 0x1446, 0x148b, 0x14d1, 0x1517,
+	0x155e, 0x15a5, 0x15ec, 0x1635, 0x167d, 0x16c6, 0x1710, 0x175a, 0x17a5,
+	0x17f0, 0x183c, 0x1888, 0x18d5, 0x1922, 0x196f, 0x19be, 0x1a0c, 0x1a5c,
+	0x1aab, 0x1afc, 0x1b4d, 0x1b9e, 0x1bf0, 0x1c42, 0x1c95, 0x1ce8, 0x1d3c,
+	0x1d91, 0x1de6, 0x1e3b, 0x1e91, 0x1ee8, 0x1f3f, 0x1f96, 0x1fef, 0x2047,
+	0x20a0, 0x20fa, 0x2154, 0x21af, 0x220a, 0x2266, 0x22c2, 0x231f, 0x237d,
+	0x23db, 0x2439, 0x2498, 0x24f8, 0x2558, 0x25b8, 0x2619, 0x267b, 0x26dd,
+	0x2740, 0x27a3, 0x2807, 0x286b, 0x28d0, 0x2936, 0x299c, 0x2a02, 0x2a69,
+	0x2ad1, 0x2b39, 0x2ba1, 0x2c0b, 0x2c74, 0x2cdf, 0x2d49, 0x2db5, 0x2e21,
+	0x2e8d, 0x2efa, 0x2f68, 0x2fd6, 0x3044, 0x30b4, 0x3123, 0x3194, 0x3205,
+	0x3276, 0x32e8, 0x335a, 0x33cd, 0x3441, 0x34b5, 0x352a, 0x359f, 0x3615,
+	0x368b, 0x3702, 0x377a, 0x37f2, 0x386a, 0x38e3, 0x395d, 0x39d7, 0x3a52,
+	0x3acd, 0x3b49, 0x3bc6, 0x3c43, 0x3cc0, 0x3d3f, 0x3dbd, 0x3e3d, 0x3ebc,
+	0x3f3d, 0x3fbe, 0x0, 0x7, 0xe, 0x15, 0x1c, 0x23, 0x2a, 0x31, 0x38, 0x40,
+	0x47, 0x4e, 0x55, 0x5c, 0x63, 0x6a, 0x71, 0x78, 0x80, 0x87, 0x8e, 0x95,
+	0x9c, 0xa3, 0xaa, 0xb1, 0xb9, 0xc0, 0xc7, 0xce, 0xd5, 0xdc, 0xe3, 0xea,
+	0xf1, 0xf9, 0x100, 0x107, 0x10e, 0x115, 0x11c, 0x123, 0x12a, 0x131, 0x138,
+	0x13f, 0x147, 0x14e, 0x156, 0x15e, 0x166, 0x16e, 0x176, 0x17e, 0x186,
+	0x18f, 0x197, 0x1a0, 0x1a8, 0x1b1, 0x1ba, 0x1c3, 0x1cc, 0x1d5, 0x1de,
+	0x1e7, 0x1f1, 0x1fa, 0x204, 0x20e, 0x217, 0x221, 0x22b, 0x236, 0x240,
+	0x24a, 0x255, 0x25f, 0x26a, 0x274, 0x27f, 0x28a, 0x295, 0x2a0, 0x2ac,
+	0x2b7, 0x2c2, 0x2ce, 0x2da, 0x2e5, 0x2f1, 0x2fd, 0x309, 0x315, 0x322,
+	0x32e, 0x33b, 0x347, 0x354, 0x361, 0x36d, 0x37a, 0x388, 0x395, 0x3a2,
+	0x3b0, 0x3bd, 0x3cb, 0x3d8, 0x3e6, 0x3f4, 0x402, 0x411, 0x41f, 0x42d,
+	0x43c, 0x44a, 0x459, 0x468, 0x477, 0x486, 0x495, 0x4a4, 0x4b3, 0x4c3,
+	0x4d3, 0x4e2, 0x4f2, 0x502, 0x512, 0x522, 0x532, 0x543, 0x553, 0x564,
+	0x574, 0x585, 0x596, 0x5a7, 0x5b8, 0x5c9, 0x5db, 0x5ec, 0x5fe, 0x60f,
+	0x621, 0x633, 0x645, 0x657, 0x669, 0x67b, 0x68e, 0x6a0, 0x6b3, 0x6c6,
+	0x6d9, 0x6ec, 0x6ff, 0x712, 0x726, 0x739, 0x74d, 0x760, 0x774, 0x788,
+	0x79c, 0x7b0, 0x7c4, 0x7d9, 0x7ed, 0x802, 0x816, 0x82b, 0x840, 0x855,
+	0x86a, 0x880, 0x895, 0x8ab, 0x8c0, 0x8d6, 0x8ec, 0x902, 0x918, 0x92e,
+	0x944, 0x95b, 0x971, 0x988, 0x99f, 0x9b6, 0x9cd, 0x9e4, 0x9fb, 0xa13,
+	0xa2a, 0xa42, 0xa59, 0xa71, 0xa89, 0xaa1, 0xab9, 0xad2, 0xaea, 0xb03,
+	0xb1b, 0xb34, 0xb4d, 0xb66, 0xb7f, 0xb98, 0xbb2, 0xbcb, 0xbe5, 0xbff,
+	0xc19, 0xc32, 0xc4d, 0xc67, 0xc81, 0xc9c, 0xcb6, 0xcd1, 0xcec, 0xd07,
+	0xd22, 0xd3d, 0xd58, 0xd73, 0xd8f, 0xdab, 0xdc6, 0xde2, 0xdfe, 0xe1a,
+	0xe37, 0xe53, 0xe70, 0xe8c, 0xea9, 0xec6, 0xee3, 0xf00, 0xf1d, 0xf3a,
+	0xf58, 0xf75, 0xf93, 0xfb1, 0xfcf, 0xfed, 0x100b, 0x102a, 0x1048, 0x1067,
+	0x1085, 0x10a4, 0x10c3, 0x10e2, 0x1101, 0x1121, 0x1140, 0x1160, 0x117f,
+	0x119f, 0x11bf, 0x11df, 0x11ff, 0x121f, 0x1240, 0x1260, 0x1281, 0x12a2,
+	0x12c3, 0x12e4, 0x1305, 0x1326, 0x1348, 0x1369, 0x138b, 0x13ad, 0x13cf,
+	0x13f1, 0x1413, 0x1435, 0x1458, 0x147a, 0x149d, 0x14c0, 0x14e3, 0x1506,
+	0x1529, 0x154c, 0x156f, 0x1593, 0x15b7, 0x15db, 0x15fe, 0x1623, 0x1647,
+	0x166b, 0x168f, 0x16b4, 0x16d9, 0x16fe, 0x1722, 0x1748, 0x176d, 0x1792,
+	0x17b8, 0x17dd, 0x1803, 0x1829, 0x184f, 0x1875, 0x189b, 0x18c1, 0x18e8,
+	0x190e, 0x1935, 0x195c, 0x1983, 0x19aa, 0x19d1, 0x19f9, 0x1a20, 0x1a48,
+	0x1a70, 0x1a97, 0x1ac0, 0x1ae8, 0x1b10, 0x1b38, 0x1b61, 0x1b8a, 0x1bb2,
+	0x1bdb, 0x1c04, 0x1c2e, 0x1c57, 0x1c80, 0x1caa, 0x1cd4, 0x1cfd, 0x1d27,
+	0x1d51, 0x1d7c, 0x1da6, 0x1dd1, 0x1dfb, 0x1e26, 0x1e51, 0x1e7c, 0x1ea7,
+	0x1ed2, 0x1efe, 0x1f29, 0x1f55, 0x1f81, 0x1fac, 0x1fd9, 0x2005, 0x2031,
+	0x205d, 0x208a, 0x20b7, 0x20e4, 0x2111, 0x213e, 0x216b, 0x2198, 0x21c6,
+	0x21f3, 0x2221, 0x224f, 0x227d, 0x22ab, 0x22da, 0x2308, 0x2337, 0x2365,
+	0x2394, 0x23c3, 0x23f2, 0x2421, 0x2451, 0x2480, 0x24b0, 0x24e0, 0x2510,
+	0x2540, 0x2570, 0x25a0, 0x25d0, 0x2601, 0x2632, 0x2663, 0x2693, 0x26c5,
+	0x26f6, 0x2727, 0x2759, 0x278a, 0x27bc, 0x27ee, 0x2820, 0x2852, 0x2884,
+	0x28b7, 0x28e9, 0x291c, 0x294f, 0x2982, 0x29b5, 0x29e8, 0x2a1c, 0x2a4f,
+	0x2a83, 0x2ab7, 0x2aeb, 0x2b1f, 0x2b53, 0x2b87, 0x2bbc, 0x2bf0, 0x2c25,
+	0x2c5a, 0x2c8f, 0x2cc4, 0x2cf9, 0x2d2f, 0x2d64, 0x2d9a, 0x2dd0, 0x2e06,
+	0x2e3c, 0x2e72, 0x2ea8, 0x2edf, 0x2f16, 0x2f4c, 0x2f83, 0x2fba, 0x2ff1,
+	0x3029, 0x3060, 0x3098, 0x30d0, 0x3107, 0x313f, 0x3178, 0x31b0, 0x31e8,
+	0x3221, 0x325a, 0x3292, 0x32cb, 0x3304, 0x333e, 0x3377, 0x33b1, 0x33ea,
+	0x3424, 0x345e, 0x3498, 0x34d2, 0x350d, 0x3547, 0x3582, 0x35bc, 0x35f7,
+	0x3632, 0x366e, 0x36a9, 0x36e4, 0x3720, 0x375c, 0x3798, 0x37d4, 0x3810,
+	0x384c, 0x3888, 0x38c5, 0x3902, 0x393f, 0x397c, 0x39b9, 0x39f6, 0x3a33,
+	0x3a71, 0x3aaf, 0x3aec, 0x3b2a, 0x3b68, 0x3ba7, 0x3be5, 0x3c24, 0x3c62,
+	0x3ca1, 0x3ce0, 0x3d1f, 0x3d5e, 0x3d9e, 0x3ddd, 0x3e1d, 0x3e5d, 0x3e9c,
+	0x3edc, 0x3f1d, 0x3f5d, 0x3f9e, 0x3fde, 0x6,
+	/* table descriptor */
+	0x61effbe9, 0xf,
+	/* table length */
+	0x400,
+	/* table data */
+	0x96, 0x8, 0x647, 0x0, 0x27, 0x1f8, 0x13cf, 0x0, 0x3, 0x13, 0x4f, 0x116,
+	0x387, 0xb24, 0x236d, 0x0, 0x0, 0x1, 0x5, 0xc, 0x1b, 0x38, 0x6d, 0xcd,
+	0x177, 0x2a4, 0x4b5, 0x85d, 0xed9, 0x1a77, 0x2f8b, 0x0, 0x0, 0x0, 0x0, 0x1,
+	0x2, 0x4, 0x6, 0xa, 0xf, 0x17, 0x21, 0x2f, 0x42, 0x5d, 0x80, 0xaf, 0xee,
+	0x143, 0x1b3, 0x248, 0x30d, 0x414, 0x570, 0x73f, 0x9a7, 0xcdc, 0x1126,
+	0x16e4, 0x1e9c, 0x2906, 0x3723, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x1, 0x1, 0x2, 0x2, 0x3, 0x4, 0x5, 0x7, 0x9, 0xb, 0xe, 0x11, 0x15, 0x19,
+	0x1e, 0x24, 0x2b, 0x33, 0x3d, 0x48, 0x55, 0x65, 0x76, 0x8b, 0xa2, 0xbd,
+	0xdd, 0x101, 0x12b, 0x15c, 0x194, 0x1d4, 0x21e, 0x274, 0x2d7, 0x348, 0x3cb,
+	0x462, 0x50f, 0x5d8, 0x6be, 0x7c9, 0x8fc, 0xa5f, 0xbf8, 0xdd1, 0xff5,
+	0x126e, 0x154b, 0x189c, 0x1c76, 0x20ed, 0x261f, 0x2c29, 0x3331, 0x3b65,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x3, 0x3, 0x4, 0x4, 0x5, 0x6,
+	0x7, 0x7, 0x8, 0x9, 0xa, 0xc, 0xd, 0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a,
+	0x1d, 0x1f, 0x22, 0x26, 0x29, 0x2d, 0x31, 0x36, 0x3b, 0x40, 0x45, 0x4b,
+	0x52, 0x59, 0x61, 0x69, 0x71, 0x7b, 0x85, 0x90, 0x9c, 0xa9, 0xb6, 0xc5,
+	0xd5, 0xe6, 0xf8, 0x10b, 0x120, 0x137, 0x14f, 0x169, 0x185, 0x1a3, 0x1c3,
+	0x1e6, 0x20b, 0x233, 0x25d, 0x28b, 0x2bd, 0x2f1, 0x32a, 0x367, 0x3a8,
+	0x3ef, 0x43a, 0x48b, 0x4e2, 0x53f, 0x5a3, 0x60e, 0x682, 0x6fe, 0x783,
+	0x811, 0x8ab, 0x950, 0xa01, 0xabf, 0xb8c, 0xc68, 0xd55, 0xe53, 0xf64,
+	0x108a, 0x11c7, 0x131b, 0x1489, 0x1613, 0x17bc, 0x1985, 0x1b71, 0x1d84,
+	0x1fbf, 0x2227, 0x24bf, 0x278b, 0x2a90, 0x2dd1, 0x3155, 0x3520, 0x3939,
+	0x3da6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0x2,
+	0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5,
+	0x6, 0x6, 0x6, 0x7, 0x7, 0x8, 0x8, 0x9, 0x9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xd,
+	0xd, 0xe, 0xf, 0x10, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
+	0x19, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, 0x22, 0x23, 0x25, 0x27, 0x28, 0x2a,
+	0x2c, 0x2e, 0x30, 0x32, 0x35, 0x37, 0x39, 0x3c, 0x3e, 0x41, 0x44, 0x47,
+	0x4a, 0x4d, 0x50, 0x54, 0x57, 0x5b, 0x5f, 0x63, 0x67, 0x6b, 0x6f, 0x74,
+	0x79, 0x7d, 0x83, 0x88, 0x8d, 0x93, 0x99, 0x9f, 0xa5, 0xac, 0xb3, 0xba,
+	0xc1, 0xc9, 0xd1, 0xd9, 0xe1, 0xea, 0xf3, 0xfc, 0x106, 0x110, 0x11b, 0x126,
+	0x131, 0x13d, 0x149, 0x155, 0x162, 0x170, 0x17e, 0x18c, 0x19b, 0x1ab,
+	0x1bb, 0x1cc, 0x1dd, 0x1ef, 0x201, 0x215, 0x228, 0x23d, 0x252, 0x269,
+	0x280, 0x297, 0x2b0, 0x2c9, 0x2e4, 0x2ff, 0x31c, 0x339, 0x357, 0x377,
+	0x398, 0x3ba, 0x3dd, 0x401, 0x427, 0x44e, 0x476, 0x4a0, 0x4cb, 0x4f8,
+	0x527, 0x557, 0x589, 0x5bd, 0x5f3, 0x62a, 0x664, 0x6a0, 0x6de, 0x71e,
+	0x760, 0x7a5, 0x7ed, 0x837, 0x884, 0x8d3, 0x926, 0x97b, 0x9d4, 0xa2f,
+	0xa8f, 0xaf1, 0xb58, 0xbc2, 0xc30, 0xca2, 0xd18, 0xd92, 0xe11, 0xe95,
+	0xf1e, 0xfac, 0x103f, 0x10d7, 0x1175, 0x1219, 0x12c3, 0x1374, 0x142b,
+	0x14e9, 0x15ae, 0x167b, 0x174f, 0x182b, 0x1910, 0x19fd, 0x1af3, 0x1bf2,
+	0x1cfb, 0x1e0f, 0x1f2c, 0x2055, 0x2189, 0x22c9, 0x2415, 0x256d, 0x26d3,
+	0x2847, 0x29c9, 0x2b5a, 0x2cfb, 0x2eac, 0x306e, 0x3241, 0x3426, 0x361f,
+	0x382b, 0x3a4c, 0x3c83, 0x3ecf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1,
+	0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
+	0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3,
+	0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5,
+	0x5, 0x5, 0x5, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x7, 0x7, 0x7, 0x7, 0x8, 0x8,
+	0x8, 0x8, 0x8, 0x9, 0x9, 0x9, 0x9, 0xa, 0xa, 0xa, 0xb, 0xb, 0xb, 0xb, 0xc,
+	0xc, 0xc, 0xd, 0xd, 0xd, 0xe, 0xe, 0xf, 0xf, 0xf, 0x10, 0x10, 0x11, 0x11,
+	0x11, 0x12, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x15, 0x16, 0x16, 0x17,
+	0x17, 0x18, 0x19, 0x19, 0x1a, 0x1a, 0x1b, 0x1c, 0x1c, 0x1d, 0x1e, 0x1e,
+	0x1f, 0x20, 0x21, 0x21, 0x22, 0x23, 0x24, 0x24, 0x25, 0x26, 0x27, 0x28,
+	0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34,
+	0x35, 0x36, 0x37, 0x39, 0x3a, 0x3b, 0x3c, 0x3e, 0x3f, 0x40, 0x42, 0x43,
+	0x45, 0x46, 0x48, 0x49, 0x4b, 0x4c, 0x4e, 0x4f, 0x51, 0x53, 0x54, 0x56,
+	0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e,
+	0x70, 0x73, 0x75, 0x77, 0x7a, 0x7c, 0x7f, 0x81, 0x84, 0x86, 0x89, 0x8c,
+	0x8f, 0x92, 0x94, 0x97, 0x9a, 0x9d, 0xa1, 0xa4, 0xa7, 0xaa, 0xae, 0xb1,
+	0xb4, 0xb8, 0xbc, 0xbf, 0xc3, 0xc7, 0xcb, 0xcf, 0xd3, 0xd7, 0xdb, 0xdf,
+	0xe3, 0xe8, 0xec, 0xf1, 0xf5, 0xfa, 0xff, 0x104, 0x109, 0x10e, 0x113,
+	0x118, 0x11e, 0x123, 0x129, 0x12e, 0x134, 0x13a, 0x140, 0x146, 0x14c,
+	0x152, 0x159, 0x15f, 0x166, 0x16c, 0x173, 0x17a, 0x181, 0x189, 0x190,
+	0x197, 0x19f, 0x1a7, 0x1af, 0x1b7, 0x1bf, 0x1c7, 0x1d0, 0x1d8, 0x1e1,
+	0x1ea, 0x1f3, 0x1fd, 0x206, 0x210, 0x219, 0x223, 0x22e, 0x238, 0x242,
+	0x24d, 0x258, 0x263, 0x26e, 0x27a, 0x285, 0x291, 0x29d, 0x2aa, 0x2b6,
+	0x2c3, 0x2d0, 0x2dd, 0x2eb, 0x2f8, 0x306, 0x314, 0x323, 0x332, 0x341,
+	0x350, 0x35f, 0x36f, 0x37f, 0x38f, 0x3a0, 0x3b1, 0x3c2, 0x3d4, 0x3e6,
+	0x3f8, 0x40a, 0x41d, 0x430, 0x444, 0x458, 0x46c, 0x480, 0x495, 0x4ab,
+	0x4c0, 0x4d6, 0x4ed, 0x504, 0x51b, 0x533, 0x54b, 0x564, 0x57d, 0x596,
+	0x5b0, 0x5ca, 0x5e5, 0x600, 0x61c, 0x639, 0x655, 0x673, 0x691, 0x6af,
+	0x6ce, 0x6ee, 0x70e, 0x72e, 0x750, 0x771, 0x794, 0x7b7, 0x7db, 0x7ff,
+	0x824, 0x84a, 0x870, 0x897, 0x8bf, 0x8e7, 0x911, 0x93b, 0x965, 0x991,
+	0x9bd, 0x9ea, 0xa18, 0xa47, 0xa76, 0xaa7, 0xad8, 0xb0a, 0xb3e, 0xb72,
+	0xba7, 0xbdd, 0xc14, 0xc4c, 0xc85, 0xcbf, 0xcfa, 0xd36, 0xd73, 0xdb2,
+	0xdf1, 0xe32, 0xe74, 0xeb7, 0xefb, 0xf41, 0xf88, 0xfd0, 0x1019, 0x1064,
+	0x10b1, 0x10fe, 0x114d, 0x119e, 0x11f0, 0x1243, 0x1298, 0x12ef, 0x1347,
+	0x13a1, 0x13fd, 0x145a, 0x14b9, 0x151a, 0x157c, 0x15e1, 0x1647, 0x16af,
+	0x1719, 0x1785, 0x17f3, 0x1863, 0x18d6, 0x194a, 0x19c1, 0x1a39, 0x1ab4,
+	0x1b32, 0x1bb1, 0x1c34, 0x1cb8, 0x1d3f, 0x1dc9, 0x1e55, 0x1ee4, 0x1f75,
+	0x200a, 0x20a1, 0x213b, 0x21d8, 0x2277, 0x231a, 0x23c0, 0x2469, 0x2516,
+	0x25c6, 0x2679, 0x272f, 0x27e9, 0x28a6, 0x2967, 0x2a2c, 0x2af5, 0x2bc1,
+	0x2c91, 0x2d66, 0x2e3e, 0x2f1b, 0x2ffc, 0x30e1, 0x31ca, 0x32b9, 0x33ab,
+	0x34a3, 0x359f, 0x36a0, 0x37a6, 0x38b2, 0x39c2, 0x3ad8, 0x3bf3, 0x3d14,
+	0x3e3a, 0x3f66, 0x6,
+	/* table descriptor */
+	0xf0effbe9, 0xf,
+	/* table length */
+	0x400,
+	/* table data */
+	0xdab, 0x33c, 0x216a, 0xe8, 0x766, 0x1646, 0x2f44, 0x52, 0x1dc, 0x512,
+	0xa41, 0x11aa, 0x1b84, 0x27fd, 0x3743, 0x26, 0x92, 0x155, 0x27e, 0x418,
+	0x62b, 0x8c2, 0xbe4, 0xf97, 0x13e4, 0x18d0, 0x1e61, 0x249e, 0x2b8a, 0x332c,
+	0x3b89, 0x12, 0x3a, 0x70, 0xba, 0x11c, 0x196, 0x22a, 0x2da, 0x3a6, 0x491,
+	0x59a, 0x6c4, 0x810, 0x97d, 0xb0e, 0xcc3, 0xe9c, 0x109c, 0x12c2, 0x1510,
+	0x1786, 0x1a25, 0x1ced, 0x1fe0, 0x22fe, 0x2648, 0x29be, 0x2d61, 0x3132,
+	0x3532, 0x3960, 0x3dbe, 0x8, 0x1c, 0x30, 0x46, 0x60, 0x80, 0xa5, 0xd0,
+	0x101, 0x138, 0x175, 0x1b8, 0x202, 0x253, 0x2ab, 0x30a, 0x370, 0x3de,
+	0x453, 0x4d0, 0x555, 0x5e2, 0x677, 0x714, 0x7ba, 0x868, 0x91e, 0x9de,
+	0xaa6, 0xb77, 0xc52, 0xd35, 0xe22, 0xf19, 0x1018, 0x1122, 0x1235, 0x1352,
+	0x1479, 0x15aa, 0x16e4, 0x182a, 0x1979, 0x1ad3, 0x1c37, 0x1da6, 0x1f1f,
+	0x20a4, 0x2233, 0x23cc, 0x2571, 0x2721, 0x28dc, 0x2aa3, 0x2c74, 0x2e51,
+	0x303a, 0x322e, 0x342e, 0x3639, 0x3850, 0x3a73, 0x3ca2, 0x3edd, 0x3, 0xd,
+	0x17, 0x21, 0x2b, 0x35, 0x40, 0x4c, 0x59, 0x68, 0x78, 0x89, 0x9c, 0xb0,
+	0xc5, 0xdc, 0xf4, 0x10e, 0x12a, 0x146, 0x165, 0x185, 0x1a7, 0x1ca, 0x1ef,
+	0x216, 0x23e, 0x269, 0x294, 0x2c2, 0x2f2, 0x323, 0x356, 0x38b, 0x3c2,
+	0x3fb, 0x435, 0x472, 0x4b0, 0x4f1, 0x533, 0x577, 0x5be, 0x606, 0x651,
+	0x69d, 0x6ec, 0x73d, 0x78f, 0x7e4, 0x83b, 0x895, 0x8f0, 0x94d, 0x9ad,
+	0xa0f, 0xa73, 0xada, 0xb42, 0xbad, 0xc1a, 0xc8a, 0xcfc, 0xd70, 0xde6,
+	0xe5f, 0xeda, 0xf58, 0xfd8, 0x105a, 0x10df, 0x1166, 0x11ef, 0x127b, 0x130a,
+	0x139b, 0x142e, 0x14c4, 0x155c, 0x15f7, 0x1695, 0x1735, 0x17d7, 0x187d,
+	0x1924, 0x19cf, 0x1a7b, 0x1b2b, 0x1bdd, 0x1c92, 0x1d49, 0x1e03, 0x1ec0,
+	0x1f7f, 0x2042, 0x2106, 0x21ce, 0x2298, 0x2365, 0x2435, 0x2507, 0x25dc,
+	0x26b4, 0x278f, 0x286d, 0x294d, 0x2a30, 0x2b16, 0x2bff, 0x2ceb, 0x2dd9,
+	0x2eca, 0x2fbf, 0x30b6, 0x31b0, 0x32ad, 0x33ac, 0x34af, 0x35b5, 0x36bd,
+	0x37c9, 0x38d8, 0x39e9, 0x3afd, 0x3c15, 0x3d2f, 0x3e4d, 0x3f6d, 0x1, 0x6,
+	0xb, 0x10, 0x15, 0x1a, 0x1e, 0x23, 0x28, 0x2d, 0x32, 0x37, 0x3d, 0x43,
+	0x49, 0x4f, 0x56, 0x5d, 0x64, 0x6c, 0x74, 0x7c, 0x85, 0x8e, 0x97, 0xa0,
+	0xaa, 0xb5, 0xc0, 0xcb, 0xd6, 0xe2, 0xee, 0xfb, 0x108, 0x115, 0x123, 0x131,
+	0x13f, 0x14e, 0x15d, 0x16d, 0x17d, 0x18d, 0x19e, 0x1af, 0x1c1, 0x1d3,
+	0x1e6, 0x1f9, 0x20c, 0x220, 0x234, 0x249, 0x25e, 0x273, 0x289, 0x2a0,
+	0x2b7, 0x2ce, 0x2e6, 0x2fe, 0x316, 0x32f, 0x349, 0x363, 0x37e, 0x398,
+	0x3b4, 0x3d0, 0x3ec, 0x409, 0x426, 0x444, 0x462, 0x481, 0x4a0, 0x4c0,
+	0x4e0, 0x501, 0x522, 0x544, 0x566, 0x589, 0x5ac, 0x5d0, 0x5f4, 0x619,
+	0x63e, 0x664, 0x68a, 0x6b1, 0x6d8, 0x700, 0x728, 0x751, 0x77a, 0x7a4,
+	0x7cf, 0x7fa, 0x825, 0x851, 0x87e, 0x8ab, 0x8d9, 0x907, 0x936, 0x965,
+	0x995, 0x9c5, 0x9f6, 0xa28, 0xa5a, 0xa8d, 0xac0, 0xaf4, 0xb28, 0xb5d,
+	0xb92, 0xbc8, 0xbff, 0xc36, 0xc6e, 0xca6, 0xcdf, 0xd19, 0xd53, 0xd8d,
+	0xdc8, 0xe04, 0xe41, 0xe7e, 0xebb, 0xef9, 0xf38, 0xf77, 0xfb7, 0xff8,
+	0x1039, 0x107b, 0x10bd, 0x1100, 0x1144, 0x1188, 0x11cd, 0x1212, 0x1258,
+	0x129f, 0x12e6, 0x132e, 0x1376, 0x13bf, 0x1409, 0x1453, 0x149e, 0x14ea,
+	0x1536, 0x1583, 0x15d0, 0x161e, 0x166d, 0x16bd, 0x170d, 0x175d, 0x17af,
+	0x1800, 0x1853, 0x18a6, 0x18fa, 0x194f, 0x19a4, 0x19fa, 0x1a50, 0x1aa7,
+	0x1aff, 0x1b57, 0x1bb0, 0x1c0a, 0x1c64, 0x1cbf, 0x1d1b, 0x1d78, 0x1dd5,
+	0x1e32, 0x1e91, 0x1ef0, 0x1f4f, 0x1fb0, 0x2011, 0x2072, 0x20d5, 0x2138,
+	0x219c, 0x2200, 0x2265, 0x22cb, 0x2331, 0x2399, 0x2401, 0x2469, 0x24d2,
+	0x253c, 0x25a7, 0x2612, 0x267e, 0x26eb, 0x2758, 0x27c6, 0x2835, 0x28a4,
+	0x2915, 0x2985, 0x29f7, 0x2a69, 0x2adc, 0x2b50, 0x2bc4, 0x2c3a, 0x2caf,
+	0x2d26, 0x2d9d, 0x2e15, 0x2e8e, 0x2f07, 0x2f81, 0x2ffc, 0x3078, 0x30f4,
+	0x3171, 0x31ef, 0x326d, 0x32ec, 0x336c, 0x33ed, 0x346e, 0x34f0, 0x3573,
+	0x35f7, 0x367b, 0x3700, 0x3786, 0x380c, 0x3894, 0x391c, 0x39a4, 0x3a2e,
+	0x3ab8, 0x3b43, 0x3bcf, 0x3c5b, 0x3ce8, 0x3d76, 0x3e05, 0x3e95, 0x3f25,
+	0x3fb6, 0x0, 0x2, 0x4, 0x7, 0x9, 0xc, 0xe, 0x11, 0x13, 0x16, 0x18, 0x1b,
+	0x1d, 0x20, 0x22, 0x25, 0x27, 0x2a, 0x2c, 0x2f, 0x31, 0x34, 0x36, 0x39,
+	0x3c, 0x3e, 0x41, 0x44, 0x47, 0x4a, 0x4d, 0x51, 0x54, 0x57, 0x5b, 0x5f,
+	0x62, 0x66, 0x6a, 0x6e, 0x72, 0x76, 0x7a, 0x7e, 0x82, 0x87, 0x8b, 0x90,
+	0x94, 0x99, 0x9e, 0xa3, 0xa8, 0xad, 0xb2, 0xb7, 0xbd, 0xc2, 0xc8, 0xcd,
+	0xd3, 0xd9, 0xdf, 0xe5, 0xeb, 0xf1, 0xf7, 0xfe, 0x104, 0x10b, 0x111, 0x118,
+	0x11f, 0x126, 0x12d, 0x134, 0x13b, 0x143, 0x14a, 0x152, 0x159, 0x161,
+	0x169, 0x171, 0x179, 0x181, 0x189, 0x192, 0x19a, 0x1a2, 0x1ab, 0x1b4,
+	0x1bd, 0x1c6, 0x1cf, 0x1d8, 0x1e1, 0x1ea, 0x1f4, 0x1fe, 0x207, 0x211,
+	0x21b, 0x225, 0x22f, 0x239, 0x244, 0x24e, 0x258, 0x263, 0x26e, 0x279,
+	0x284, 0x28f, 0x29a, 0x2a5, 0x2b1, 0x2bc, 0x2c8, 0x2d4, 0x2e0, 0x2ec,
+	0x2f8, 0x304, 0x310, 0x31d, 0x329, 0x336, 0x343, 0x350, 0x35d, 0x36a,
+	0x377, 0x384, 0x392, 0x39f, 0x3ad, 0x3bb, 0x3c9, 0x3d7, 0x3e5, 0x3f3,
+	0x402, 0x410, 0x41f, 0x42e, 0x43d, 0x44c, 0x45b, 0x46a, 0x479, 0x489,
+	0x499, 0x4a8, 0x4b8, 0x4c8, 0x4d8, 0x4e8, 0x4f9, 0x509, 0x51a, 0x52b,
+	0x53b, 0x54c, 0x55e, 0x56f, 0x580, 0x592, 0x5a3, 0x5b5, 0x5c7, 0x5d9,
+	0x5eb, 0x5fd, 0x60f, 0x622, 0x635, 0x647, 0x65a, 0x66d, 0x680, 0x694,
+	0x6a7, 0x6bb, 0x6ce, 0x6e2, 0x6f6, 0x70a, 0x71e, 0x732, 0x747, 0x75b,
+	0x770, 0x785, 0x79a, 0x7af, 0x7c4, 0x7da, 0x7ef, 0x805, 0x81a, 0x830,
+	0x846, 0x85d, 0x873, 0x889, 0x8a0, 0x8b7, 0x8cd, 0x8e4, 0x8fb, 0x913,
+	0x92a, 0x942, 0x959, 0x971, 0x989, 0x9a1, 0x9b9, 0x9d2, 0x9ea, 0xa03,
+	0xa1c, 0xa34, 0xa4d, 0xa67, 0xa80, 0xa99, 0xab3, 0xacd, 0xae7, 0xb01,
+	0xb1b, 0xb35, 0xb50, 0xb6a, 0xb85, 0xba0, 0xbbb, 0xbd6, 0xbf1, 0xc0d,
+	0xc28, 0xc44, 0xc60, 0xc7c, 0xc98, 0xcb4, 0xcd1, 0xced, 0xd0a, 0xd27,
+	0xd44, 0xd61, 0xd7e, 0xd9c, 0xdba, 0xdd7, 0xdf5, 0xe13, 0xe31, 0xe50,
+	0xe6e, 0xe8d, 0xeac, 0xecb, 0xeea, 0xf09, 0xf28, 0xf48, 0xf68, 0xf87,
+	0xfa7, 0xfc7, 0xfe8, 0x1008, 0x1029, 0x1049, 0x106a, 0x108b, 0x10ad,
+	0x10ce, 0x10ef, 0x1111, 0x1133, 0x1155, 0x1177, 0x1199, 0x11bb, 0x11de,
+	0x1201, 0x1223, 0x1246, 0x126a, 0x128d, 0x12b0, 0x12d4, 0x12f8, 0x131c,
+	0x1340, 0x1364, 0x1388, 0x13ad, 0x13d2, 0x13f6, 0x141c, 0x1441, 0x1466,
+	0x148b, 0x14b1, 0x14d7, 0x14fd, 0x1523, 0x1549, 0x1570, 0x1596, 0x15bd,
+	0x15e4, 0x160b, 0x1632, 0x1659, 0x1681, 0x16a9, 0x16d1, 0x16f9, 0x1721,
+	0x1749, 0x1771, 0x179a, 0x17c3, 0x17ec, 0x1815, 0x183e, 0x1868, 0x1891,
+	0x18bb, 0x18e5, 0x190f, 0x1939, 0x1964, 0x198e, 0x19b9, 0x19e4, 0x1a0f,
+	0x1a3a, 0x1a66, 0x1a91, 0x1abd, 0x1ae9, 0x1b15, 0x1b41, 0x1b6d, 0x1b9a,
+	0x1bc7, 0x1bf4, 0x1c21, 0x1c4e, 0x1c7b, 0x1ca9, 0x1cd6, 0x1d04, 0x1d32,
+	0x1d60, 0x1d8f, 0x1dbd, 0x1dec, 0x1e1b, 0x1e4a, 0x1e79, 0x1ea8, 0x1ed8,
+	0x1f07, 0x1f37, 0x1f67, 0x1f98, 0x1fc8, 0x1ff8, 0x2029, 0x205a, 0x208b,
+	0x20bc, 0x20ee, 0x211f, 0x2151, 0x2183, 0x21b5, 0x21e7, 0x2219, 0x224c,
+	0x227f, 0x22b2, 0x22e5, 0x2318, 0x234b, 0x237f, 0x23b3, 0x23e6, 0x241b,
+	0x244f, 0x2483, 0x24b8, 0x24ed, 0x2522, 0x2557, 0x258c, 0x25c2, 0x25f7,
+	0x262d, 0x2663, 0x2699, 0x26cf, 0x2706, 0x273d, 0x2774, 0x27ab, 0x27e2,
+	0x2819, 0x2851, 0x2888, 0x28c0, 0x28f8, 0x2931, 0x2969, 0x29a2, 0x29db,
+	0x2a14, 0x2a4d, 0x2a86, 0x2ac0, 0x2af9, 0x2b33, 0x2b6d, 0x2ba7, 0x2be2,
+	0x2c1c, 0x2c57, 0x2c92, 0x2ccd, 0x2d08, 0x2d44, 0x2d7f, 0x2dbb, 0x2df7,
+	0x2e33, 0x2e70, 0x2eac, 0x2ee9, 0x2f26, 0x2f63, 0x2fa0, 0x2fdd, 0x301b,
+	0x3059, 0x3097, 0x30d5, 0x3113, 0x3152, 0x3190, 0x31cf, 0x320e, 0x324e,
+	0x328d, 0x32cd, 0x330c, 0x334c, 0x338c, 0x33cd, 0x340d, 0x344e, 0x348f,
+	0x34d0, 0x3511, 0x3552, 0x3594, 0x35d6, 0x3618, 0x365a, 0x369c, 0x36df,
+	0x3721, 0x3764, 0x37a7, 0x37eb, 0x382e, 0x3872, 0x38b6, 0x38fa, 0x393e,
+	0x3982, 0x39c7, 0x3a0b, 0x3a50, 0x3a95, 0x3adb, 0x3b20, 0x3b66, 0x3bac,
+	0x3bf2, 0x3c38, 0x3c7e, 0x3cc5, 0x3d0c, 0x3d53, 0x3d9a, 0x3de1, 0x3e29,
+	0x3e71, 0x3eb9, 0x3f01, 0x3f49, 0x3f91, 0x3fda, 0x6,
+	/* table descriptor */
+	0x7baffbea, 0x6,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x2646, 0x4b23, 0xe98, 0xffffea68, 0xffffd59b, 0x4000, 0x4000,
+	0xffffca6a, 0xfffff599, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	0xf, 0x0, 0x200, 0x200, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0x7baffbea, 0x8,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4000, 0x0, 0x0, 0x0, 0x4000, 0x0, 0x0, 0x0, 0x4000, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff, 0xe, 0x0, 0x200, 0x200, 0x0, 0x0, 0x0,
+	0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbaffbea, 0x0,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x21a1, 0x56c9, 0x798, 0xffffee22, 0xffffd1e1, 0x4000, 0x4000,
+	0xffffc527, 0xfffffadc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	0xf, 0x0, 0x200, 0x200, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0x7baffbea, 0x1,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x1b37, 0x5b8c, 0x93e, 0xfffff157, 0xffffceac, 0x4000, 0x4000,
+	0xffffc5e0, 0xfffffa23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	0xf, 0x0, 0x200, 0x200, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfb6ffbea, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x8000, 0x4000, 0x0, 0x0, 0x0, 0x4000, 0x0, 0x0, 0x0, 0x4000, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbefe8e1, 0xf,
+	/* table length */
+	0x402,
+	/* table data */
+	0x3, 0x0, 0xea8, 0x12aa, 0x1500, 0x16ab, 0x1815, 0x1900, 0x1a0b, 0x1aab,
+	0x1b60, 0x1c15, 0x1c85, 0x1d00, 0x1d86, 0x1e0b, 0x1e58, 0x1eab, 0x1f03,
+	0x1f60, 0x1fc3, 0x2015, 0x204c, 0x2085, 0x20c2, 0x2100, 0x2142, 0x2186,
+	0x21cc, 0x220b, 0x2231, 0x2258, 0x2281, 0x22ab, 0x22d6, 0x2303, 0x2331,
+	0x2360, 0x2391, 0x23c3, 0x23f6, 0x2415, 0x2430, 0x244c, 0x2468, 0x2485,
+	0x24a3, 0x24c2, 0x24e1, 0x2500, 0x2521, 0x2542, 0x2563, 0x2586, 0x25a9,
+	0x25cc, 0x25f1, 0x260b, 0x261e, 0x2631, 0x2644, 0x2658, 0x266c, 0x2681,
+	0x2696, 0x26ab, 0x26c0, 0x26d6, 0x26ec, 0x2703, 0x271a, 0x2731, 0x2748,
+	0x2760, 0x2779, 0x2791, 0x27aa, 0x27c3, 0x27dd, 0x27f6, 0x2808, 0x2815,
+	0x2823, 0x2830, 0x283e, 0x284c, 0x285a, 0x2868, 0x2877, 0x2885, 0x2894,
+	0x28a3, 0x28b2, 0x28c2, 0x28d1, 0x28e1, 0x28f0, 0x2900, 0x2910, 0x2921,
+	0x2931, 0x2942, 0x2952, 0x2963, 0x2974, 0x2986, 0x2997, 0x29a9, 0x29bb,
+	0x29cc, 0x29df, 0x29f1, 0x2a01, 0x2a0b, 0x2a14, 0x2a1e, 0x2a27, 0x2a31,
+	0x2a3a, 0x2a44, 0x2a4e, 0x2a58, 0x2a62, 0x2a6c, 0x2a76, 0x2a81, 0x2a8b,
+	0x2a96, 0x2aa0, 0x2aab, 0x2ab6, 0x2ac0, 0x2acb, 0x2ad6, 0x2ae1, 0x2aec,
+	0x2af8, 0x2b03, 0x2b0e, 0x2b1a, 0x2b25, 0x2b31, 0x2b3d, 0x2b48, 0x2b54,
+	0x2b60, 0x2b6c, 0x2b79, 0x2b85, 0x2b91, 0x2b9d, 0x2baa, 0x2bb6, 0x2bc3,
+	0x2bd0, 0x2bdd, 0x2bea, 0x2bf6, 0x2c02, 0x2c08, 0x2c0f, 0x2c15, 0x2c1c,
+	0x2c23, 0x2c2a, 0x2c30, 0x2c37, 0x2c3e, 0x2c45, 0x2c4c, 0x2c53, 0x2c5a,
+	0x2c61, 0x2c68, 0x2c70, 0x2c77, 0x2c7e, 0x2c85, 0x2c8d, 0x2c94, 0x2c9c,
+	0x2ca3, 0x2cab, 0x2cb2, 0x2cba, 0x2cc2, 0x2cc9, 0x2cd1, 0x2cd9, 0x2ce1,
+	0x2ce8, 0x2cf0, 0x2cf8, 0x2d00, 0x2d08, 0x2d10, 0x2d18, 0x2d21, 0x2d29,
+	0x2d31, 0x2d39, 0x2d42, 0x2d4a, 0x2d52, 0x2d5b, 0x2d63, 0x2d6c, 0x2d74,
+	0x2d7d, 0x2d86, 0x2d8e, 0x2d97, 0x2da0, 0x2da9, 0x2db2, 0x2dbb, 0x2dc3,
+	0x2dcc, 0x2dd5, 0x2ddf, 0x2de8, 0x2df1, 0x2dfa, 0x2e01, 0x2e06, 0x2e0b,
+	0x2e0f, 0x2e14, 0x2e19, 0x2e1e, 0x2e22, 0x2e27, 0x2e2c, 0x2e31, 0x2e36,
+	0x2e3a, 0x2e3f, 0x2e44, 0x2e49, 0x2e4e, 0x2e53, 0x2e58, 0x2e5d, 0x2e62,
+	0x2e67, 0x2e6c, 0x2e71, 0x2e76, 0x2e7c, 0x2e81, 0x2e86, 0x2e8b, 0x2e90,
+	0x2e96, 0x2e9b, 0x2ea0, 0x2ea6, 0x2eab, 0x2eb0, 0x2eb6, 0x2ebb, 0x2ec0,
+	0x2ec6, 0x2ecb, 0x2ed1, 0x2ed6, 0x2edc, 0x2ee1, 0x2ee7, 0x2eec, 0x2ef2,
+	0x2ef8, 0x2efd, 0x2f03, 0x2f09, 0x2f0e, 0x2f14, 0x2f1a, 0x2f20, 0x2f25,
+	0x2f2b, 0x2f31, 0x2f37, 0x2f3d, 0x2f43, 0x2f48, 0x2f4e, 0x2f54, 0x2f5a,
+	0x2f60, 0x2f66, 0x2f6c, 0x2f72, 0x2f79, 0x2f7f, 0x2f85, 0x2f8b, 0x2f91,
+	0x2f97, 0x2f9d, 0x2fa4, 0x2faa, 0x2fb0, 0x2fb6, 0x2fbd, 0x2fc3, 0x2fc9,
+	0x2fd0, 0x2fd6, 0x2fdd, 0x2fe3, 0x2fea, 0x2ff0, 0x2ff6, 0x2ffd, 0x3002,
+	0x3005, 0x3008, 0x300b, 0x300f, 0x3012, 0x3015, 0x3019, 0x301c, 0x301f,
+	0x3023, 0x3026, 0x302a, 0x302d, 0x3030, 0x3034, 0x3037, 0x303b, 0x303e,
+	0x3042, 0x3045, 0x3049, 0x304c, 0x3050, 0x3053, 0x3057, 0x305a, 0x305e,
+	0x3061, 0x3065, 0x3068, 0x306c, 0x3070, 0x3073, 0x3077, 0x307b, 0x307e,
+	0x3082, 0x3085, 0x3089, 0x308d, 0x3091, 0x3094, 0x3098, 0x309c, 0x309f,
+	0x30a3, 0x30a7, 0x30ab, 0x30ae, 0x30b2, 0x30b6, 0x30ba, 0x30be, 0x30c2,
+	0x30c5, 0x30c9, 0x30cd, 0x30d1, 0x30d5, 0x30d9, 0x30dd, 0x30e1, 0x30e4,
+	0x30e8, 0x30ec, 0x30f0, 0x30f4, 0x30f8, 0x30fc, 0x3100, 0x3104, 0x3108,
+	0x310c, 0x3110, 0x3114, 0x3118, 0x311d, 0x3121, 0x3125, 0x3129, 0x312d,
+	0x3131, 0x3135, 0x3139, 0x313d, 0x3142, 0x3146, 0x314a, 0x314e, 0x3152,
+	0x3157, 0x315b, 0x315f, 0x3163, 0x3168, 0x316c, 0x3170, 0x3174, 0x3179,
+	0x317d, 0x3181, 0x3186, 0x318a, 0x318e, 0x3193, 0x3197, 0x319c, 0x31a0,
+	0x31a4, 0x31a9, 0x31ad, 0x31b2, 0x31b6, 0x31bb, 0x31bf, 0x31c3, 0x31c8,
+	0x31cc, 0x31d1, 0x31d5, 0x31da, 0x31df, 0x31e3, 0x31e8, 0x31ec, 0x31f1,
+	0x31f5, 0x31fa, 0x31ff, 0x3201, 0x3204, 0x3206, 0x3208, 0x320b, 0x320d,
+	0x320f, 0x3212, 0x3214, 0x3216, 0x3219, 0x321b, 0x321e, 0x3220, 0x3222,
+	0x3225, 0x3227, 0x3229, 0x322c, 0x322e, 0x3231, 0x3233, 0x3236, 0x3238,
+	0x323a, 0x323d, 0x323f, 0x3242, 0x3244, 0x3247, 0x3249, 0x324c, 0x324e,
+	0x3251, 0x3253, 0x3256, 0x3258, 0x325b, 0x325d, 0x3260, 0x3262, 0x3265,
+	0x3267, 0x326a, 0x326c, 0x326f, 0x3271, 0x3274, 0x3276, 0x3279, 0x327c,
+	0x327e, 0x3281, 0x3283, 0x3286, 0x3289, 0x328b, 0x328e, 0x3290, 0x3293,
+	0x3296, 0x3298, 0x329b, 0x329e, 0x32a0, 0x32a3, 0x32a6, 0x32a8, 0x32ab,
+	0x32ae, 0x32b0, 0x32b3, 0x32b6, 0x32b8, 0x32bb, 0x32be, 0x32c1, 0x32c4,
+	0x32c6, 0x32c9, 0x32cc, 0x32cf, 0x32d2, 0x32d5, 0x32d8, 0x32da, 0x32dd,
+	0x32e0, 0x32e3, 0x32e6, 0x32e9, 0x32ec, 0x32ef, 0x32f2, 0x32f6, 0x32f9,
+	0x32fc, 0x32ff, 0x3302, 0x3305, 0x3308, 0x330c, 0x330f, 0x3312, 0x3315,
+	0x3318, 0x331c, 0x331f, 0x3322, 0x3326, 0x3329, 0x332c, 0x3330, 0x3333,
+	0x3337, 0x333a, 0x333e, 0x3341, 0x3345, 0x3348, 0x334c, 0x334f, 0x3353,
+	0x3356, 0x335a, 0x335e, 0x3361, 0x3365, 0x3369, 0x336c, 0x3370, 0x3374,
+	0x3378, 0x337c, 0x337f, 0x3383, 0x3387, 0x338b, 0x338f, 0x3393, 0x3397,
+	0x339b, 0x339f, 0x33a3, 0x33a7, 0x33ab, 0x33af, 0x33b3, 0x33b7, 0x33bb,
+	0x33bf, 0x33c4, 0x33c8, 0x33cc, 0x33d0, 0x33d5, 0x33d9, 0x33dd, 0x33e2,
+	0x33e6, 0x33eb, 0x33ef, 0x33f3, 0x33f8, 0x33fc, 0x3400, 0x3402, 0x3405,
+	0x3407, 0x3409, 0x340c, 0x340e, 0x3410, 0x3413, 0x3415, 0x3418, 0x341a,
+	0x341c, 0x341f, 0x3421, 0x3424, 0x3426, 0x3429, 0x342b, 0x342e, 0x3430,
+	0x3433, 0x3435, 0x3438, 0x343a, 0x343d, 0x3440, 0x3442, 0x3445, 0x3448,
+	0x344a, 0x344d, 0x3450, 0x3452, 0x3455, 0x3458, 0x345b, 0x345d, 0x3460,
+	0x3463, 0x3466, 0x3469, 0x346b, 0x346e, 0x3471, 0x3474, 0x3477, 0x347a,
+	0x347d, 0x3480, 0x3483, 0x3486, 0x3489, 0x348c, 0x348f, 0x3492, 0x3495,
+	0x3498, 0x349b, 0x349e, 0x34a2, 0x34a5, 0x34a8, 0x34ab, 0x34ae, 0x34b2,
+	0x34b5, 0x34b8, 0x34bb, 0x34bf, 0x34c2, 0x34c5, 0x34c9, 0x34cc, 0x34cf,
+	0x34d3, 0x34d6, 0x34da, 0x34dd, 0x34e1, 0x34e4, 0x34e8, 0x34eb, 0x34ef,
+	0x34f2, 0x34f6, 0x34fa, 0x34fd, 0x3501, 0x3505, 0x3508, 0x350c, 0x3510,
+	0x3514, 0x3517, 0x351b, 0x351f, 0x3523, 0x3527, 0x352b, 0x352f, 0x3532,
+	0x3536, 0x353a, 0x353e, 0x3542, 0x3546, 0x354b, 0x354f, 0x3553, 0x3557,
+	0x355b, 0x355f, 0x3563, 0x3568, 0x356c, 0x3570, 0x3574, 0x3579, 0x357d,
+	0x3581, 0x3586, 0x358a, 0x358f, 0x3593, 0x3598, 0x359c, 0x35a1, 0x35a5,
+	0x35aa, 0x35ae, 0x35b3, 0x35b8, 0x35bc, 0x35c1, 0x35c6, 0x35cb, 0x35cf,
+	0x35d4, 0x35d9, 0x35de, 0x35e3, 0x35e8, 0x35ed, 0x35f2, 0x35f7, 0x35fc,
+	0x3600, 0x3603, 0x3605, 0x3608, 0x360a, 0x360d, 0x3610, 0x3612, 0x3615,
+	0x3618, 0x361a, 0x361d, 0x3620, 0x3622, 0x3625, 0x3628, 0x362b, 0x362d,
+	0x3630, 0x3633, 0x3636, 0x3639, 0x363b, 0x363e, 0x3641, 0x3644, 0x3647,
+	0x364a, 0x364d, 0x3650, 0x3653, 0x3656, 0x3659, 0x365c, 0x365f, 0x3662,
+	0x3665, 0x3668, 0x366b, 0x366e, 0x3672, 0x3675, 0x3678, 0x367b, 0x367e,
+	0x3682, 0x3685, 0x3688, 0x368b, 0x368f, 0x3692, 0x3695, 0x3699, 0x369c,
+	0x36a0, 0x36a3, 0x36a6, 0x36aa, 0x36ad, 0x36b1, 0x36b4, 0x36b8, 0x36bb,
+	0x36bf, 0x36c3, 0x36c6, 0x36ca, 0x36cd, 0x36d1, 0x36d5, 0x36d9, 0x36dc,
+	0x36e0, 0x36e4, 0x36e8, 0x36eb, 0x36ef, 0x36f3, 0x36f7, 0x36fb, 0x36ff,
+	0x3703, 0x3707, 0x370b, 0x370f, 0x3713, 0x3717, 0x371b, 0x371f, 0x3723,
+	0x3727, 0x372b, 0x372f, 0x3734, 0x3738, 0x373c, 0x3740, 0x3745, 0x3749,
+	0x374d, 0x3752, 0x3756, 0x375b, 0x375f, 0x3764, 0x3768, 0x376d, 0x3771,
+	0x3776, 0x377a, 0x377f, 0x3783, 0x3788, 0x378d, 0x3792, 0x3796, 0x379b,
+	0x37a0, 0x37a5, 0x37aa, 0x37ae, 0x37b3, 0x37b8, 0x37bd, 0x37c2, 0x37c7,
+	0x37cc, 0x37d1, 0x37d6, 0x37dc, 0x37e1, 0x37e6, 0x37eb, 0x37f0, 0x37f6,
+	0x37fb, 0x3800, 0x3802, 0x3805, 0x3808, 0x380b, 0x380d, 0x3810, 0x3813,
+	0x3816, 0x3818, 0x381b, 0x381e, 0x3821, 0x3824, 0x3827, 0x382a, 0x382c,
+	0x382f, 0x3832, 0x3835, 0x3838, 0x383b, 0x383e, 0x3841, 0x3844, 0x3847,
+	0x384a, 0x384d, 0x3851, 0x3854, 0x3857, 0x385a, 0x385d, 0x3860, 0x3864,
+	0x3867, 0x386a, 0x386d, 0x3870, 0x3874, 0x3877, 0x387a, 0x387e, 0x3881,
+	0x3885, 0x3888, 0x388b, 0x388f, 0x3892, 0x3896, 0x3899, 0x389d, 0x38a0,
+	0x38a4, 0x38a7, 0x38ab, 0x38af, 0x38b2, 0x38b6, 0x38ba, 0x38bd, 0x38c1,
+	0x38c5, 0x38c8, 0x38cc, 0x38d0, 0x38d4, 0x38d8, 0x38dc, 0x38df, 0x38e3,
+	0x38e7, 0x38eb, 0x38ef, 0x38f3, 0x38f7, 0x38fb, 0x38ff, 0x3903, 0x3907,
+	0x390c, 0x3910, 0x3914, 0x3918, 0x391c, 0x3920, 0x3925, 0x3929, 0x392d,
+	0x3932, 0x3936, 0x393a, 0x393f, 0x3943, 0x3948, 0x394c, 0x3951, 0x3955,
+	0x395a, 0x395e, 0x3963, 0x3967, 0x396c, 0x3971, 0x3975, 0x397a, 0x397f,
+	0x3984, 0x3989, 0x398d, 0x3992, 0x3997, 0x399c, 0x39a1, 0x39a6, 0x39ab,
+	0x39b0, 0x39b5, 0x39ba, 0x39bf, 0x39c4, 0x39c9, 0x39cf, 0x39d4, 0x39d9,
+	0x39de, 0x39e4, 0x39e9, 0x39ee, 0x39f4, 0x39f9, 0x39ff, 0x3,
+	/* table descriptor */
+	0xfbeff0e1, 0xf,
+	/* table length */
+	0x402,
+	/* table data */
+	0x3, 0x0, 0x1, 0x2, 0x3, 0x4, 0x6, 0x7, 0x8, 0x9, 0xb, 0xc, 0xd, 0xe, 0x10,
+	0x11, 0x12, 0x13, 0x15, 0x16, 0x17, 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e,
+	0x20, 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, 0x28, 0x2a, 0x2b, 0x2c, 0x2d,
+	0x2f, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, 0x37, 0x39, 0x3a, 0x3c, 0x3d,
+	0x3e, 0x40, 0x41, 0x43, 0x44, 0x46, 0x47, 0x49, 0x4a, 0x4c, 0x4d, 0x4f,
+	0x51, 0x52, 0x54, 0x56, 0x57, 0x59, 0x5b, 0x5d, 0x5f, 0x60, 0x62, 0x64,
+	0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a, 0x7c,
+	0x7e, 0x80, 0x82, 0x85, 0x87, 0x89, 0x8b, 0x8e, 0x90, 0x92, 0x94, 0x97,
+	0x99, 0x9c, 0x9e, 0xa0, 0xa3, 0xa5, 0xa8, 0xaa, 0xad, 0xb0, 0xb2, 0xb5,
+	0xb7, 0xba, 0xbd, 0xc0, 0xc2, 0xc5, 0xc8, 0xcb, 0xcd, 0xd0, 0xd3, 0xd6,
+	0xd9, 0xdc, 0xdf, 0xe2, 0xe5, 0xe8, 0xeb, 0xee, 0xf1, 0xf4, 0xf7, 0xfb,
+	0xfe, 0x101, 0x104, 0x108, 0x10b, 0x10e, 0x111, 0x115, 0x118, 0x11c, 0x11f,
+	0x123, 0x126, 0x12a, 0x12d, 0x131, 0x134, 0x138, 0x13b, 0x13f, 0x143,
+	0x146, 0x14a, 0x14e, 0x152, 0x155, 0x159, 0x15d, 0x161, 0x165, 0x169,
+	0x16d, 0x171, 0x175, 0x179, 0x17d, 0x181, 0x185, 0x189, 0x18d, 0x192,
+	0x196, 0x19a, 0x19e, 0x1a2, 0x1a7, 0x1ab, 0x1af, 0x1b4, 0x1b8, 0x1bd,
+	0x1c1, 0x1c6, 0x1ca, 0x1cf, 0x1d3, 0x1d8, 0x1dc, 0x1e1, 0x1e6, 0x1ea,
+	0x1ef, 0x1f4, 0x1f9, 0x1fe, 0x202, 0x207, 0x20c, 0x211, 0x216, 0x21b,
+	0x220, 0x225, 0x22a, 0x22f, 0x234, 0x239, 0x23e, 0x244, 0x249, 0x24e,
+	0x253, 0x258, 0x25e, 0x263, 0x269, 0x26e, 0x273, 0x279, 0x27e, 0x284,
+	0x289, 0x28f, 0x294, 0x29a, 0x2a0, 0x2a5, 0x2ab, 0x2b1, 0x2b7, 0x2bc,
+	0x2c2, 0x2c8, 0x2ce, 0x2d4, 0x2da, 0x2e0, 0x2e6, 0x2ec, 0x2f2, 0x2f8,
+	0x2fe, 0x304, 0x30a, 0x310, 0x316, 0x31d, 0x323, 0x329, 0x32f, 0x336,
+	0x33c, 0x343, 0x349, 0x350, 0x356, 0x35d, 0x363, 0x36a, 0x370, 0x377,
+	0x37e, 0x384, 0x38b, 0x392, 0x398, 0x39f, 0x3a6, 0x3ad, 0x3b4, 0x3bb,
+	0x3c2, 0x3c9, 0x3d0, 0x3d7, 0x3de, 0x3e5, 0x3ec, 0x3f3, 0x3fb, 0x402,
+	0x409, 0x410, 0x418, 0x41f, 0x426, 0x42e, 0x435, 0x43d, 0x444, 0x44c,
+	0x453, 0x45b, 0x462, 0x46a, 0x472, 0x479, 0x481, 0x489, 0x491, 0x499,
+	0x4a0, 0x4a8, 0x4b0, 0x4b8, 0x4c0, 0x4c8, 0x4d0, 0x4d8, 0x4e0, 0x4e8,
+	0x4f1, 0x4f9, 0x501, 0x509, 0x512, 0x51a, 0x522, 0x52b, 0x533, 0x53b,
+	0x544, 0x54c, 0x555, 0x55e, 0x566, 0x56f, 0x577, 0x580, 0x589, 0x592,
+	0x59a, 0x5a3, 0x5ac, 0x5b5, 0x5be, 0x5c7, 0x5d0, 0x5d9, 0x5e2, 0x5eb,
+	0x5f4, 0x5fd, 0x606, 0x60f, 0x619, 0x622, 0x62b, 0x635, 0x63e, 0x647,
+	0x651, 0x65a, 0x664, 0x66d, 0x677, 0x680, 0x68a, 0x694, 0x69d, 0x6a7,
+	0x6b1, 0x6bb, 0x6c4, 0x6ce, 0x6d8, 0x6e2, 0x6ec, 0x6f6, 0x700, 0x70a,
+	0x714, 0x71e, 0x728, 0x732, 0x73d, 0x747, 0x751, 0x75b, 0x766, 0x770,
+	0x77a, 0x785, 0x78f, 0x79a, 0x7a4, 0x7af, 0x7ba, 0x7c4, 0x7cf, 0x7da,
+	0x7e4, 0x7ef, 0x7fa, 0x805, 0x810, 0x81a, 0x825, 0x830, 0x83b, 0x846,
+	0x851, 0x85d, 0x868, 0x873, 0x87e, 0x889, 0x895, 0x8a0, 0x8ab, 0x8b7,
+	0x8c2, 0x8cd, 0x8d9, 0x8e4, 0x8f0, 0x8fb, 0x907, 0x913, 0x91e, 0x92a,
+	0x936, 0x942, 0x94d, 0x959, 0x965, 0x971, 0x97d, 0x989, 0x995, 0x9a1,
+	0x9ad, 0x9b9, 0x9c5, 0x9d2, 0x9de, 0x9ea, 0x9f6, 0xa03, 0xa0f, 0xa1c,
+	0xa28, 0xa34, 0xa41, 0xa4d, 0xa5a, 0xa67, 0xa73, 0xa80, 0xa8d, 0xa99,
+	0xaa6, 0xab3, 0xac0, 0xacd, 0xada, 0xae7, 0xaf4, 0xb01, 0xb0e, 0xb1b,
+	0xb28, 0xb35, 0xb42, 0xb50, 0xb5d, 0xb6a, 0xb77, 0xb85, 0xb92, 0xba0,
+	0xbad, 0xbbb, 0xbc8, 0xbd6, 0xbe4, 0xbf1, 0xbff, 0xc0d, 0xc1a, 0xc28,
+	0xc36, 0xc44, 0xc52, 0xc60, 0xc6e, 0xc7c, 0xc8a, 0xc98, 0xca6, 0xcb4,
+	0xcc3, 0xcd1, 0xcdf, 0xced, 0xcfc, 0xd0a, 0xd19, 0xd27, 0xd35, 0xd44,
+	0xd53, 0xd61, 0xd70, 0xd7e, 0xd8d, 0xd9c, 0xdab, 0xdba, 0xdc8, 0xdd7,
+	0xde6, 0xdf5, 0xe04, 0xe13, 0xe22, 0xe31, 0xe41, 0xe50, 0xe5f, 0xe6e,
+	0xe7e, 0xe8d, 0xe9c, 0xeac, 0xebb, 0xecb, 0xeda, 0xeea, 0xef9, 0xf09,
+	0xf19, 0xf28, 0xf38, 0xf48, 0xf58, 0xf68, 0xf77, 0xf87, 0xf97, 0xfa7,
+	0xfb7, 0xfc7, 0xfd8, 0xfe8, 0xff8, 0x1008, 0x1018, 0x1029, 0x1039, 0x1049,
+	0x105a, 0x106a, 0x107b, 0x108b, 0x109c, 0x10ad, 0x10bd, 0x10ce, 0x10df,
+	0x10ef, 0x1100, 0x1111, 0x1122, 0x1133, 0x1144, 0x1155, 0x1166, 0x1177,
+	0x1188, 0x1199, 0x11aa, 0x11bb, 0x11cd, 0x11de, 0x11ef, 0x1201, 0x1212,
+	0x1223, 0x1235, 0x1246, 0x1258, 0x126a, 0x127b, 0x128d, 0x129f, 0x12b0,
+	0x12c2, 0x12d4, 0x12e6, 0x12f8, 0x130a, 0x131c, 0x132e, 0x1340, 0x1352,
+	0x1364, 0x1376, 0x1388, 0x139b, 0x13ad, 0x13bf, 0x13d2, 0x13e4, 0x13f6,
+	0x1409, 0x141c, 0x142e, 0x1441, 0x1453, 0x1466, 0x1479, 0x148b, 0x149e,
+	0x14b1, 0x14c4, 0x14d7, 0x14ea, 0x14fd, 0x1510, 0x1523, 0x1536, 0x1549,
+	0x155c, 0x1570, 0x1583, 0x1596, 0x15aa, 0x15bd, 0x15d0, 0x15e4, 0x15f7,
+	0x160b, 0x161e, 0x1632, 0x1646, 0x1659, 0x166d, 0x1681, 0x1695, 0x16a9,
+	0x16bd, 0x16d1, 0x16e4, 0x16f9, 0x170d, 0x1721, 0x1735, 0x1749, 0x175d,
+	0x1771, 0x1786, 0x179a, 0x17af, 0x17c3, 0x17d7, 0x17ec, 0x1800, 0x1815,
+	0x182a, 0x183e, 0x1853, 0x1868, 0x187d, 0x1891, 0x18a6, 0x18bb, 0x18d0,
+	0x18e5, 0x18fa, 0x190f, 0x1924, 0x1939, 0x194f, 0x1964, 0x1979, 0x198e,
+	0x19a4, 0x19b9, 0x19cf, 0x19e4, 0x19fa, 0x1a0f, 0x1a25, 0x1a3a, 0x1a50,
+	0x1a66, 0x1a7b, 0x1a91, 0x1aa7, 0x1abd, 0x1ad3, 0x1ae9, 0x1aff, 0x1b15,
+	0x1b2b, 0x1b41, 0x1b57, 0x1b6d, 0x1b84, 0x1b9a, 0x1bb0, 0x1bc7, 0x1bdd,
+	0x1bf4, 0x1c0a, 0x1c21, 0x1c37, 0x1c4e, 0x1c64, 0x1c7b, 0x1c92, 0x1ca9,
+	0x1cbf, 0x1cd6, 0x1ced, 0x1d04, 0x1d1b, 0x1d32, 0x1d49, 0x1d60, 0x1d78,
+	0x1d8f, 0x1da6, 0x1dbd, 0x1dd5, 0x1dec, 0x1e03, 0x1e1b, 0x1e32, 0x1e4a,
+	0x1e61, 0x1e79, 0x1e91, 0x1ea8, 0x1ec0, 0x1ed8, 0x1ef0, 0x1f07, 0x1f1f,
+	0x1f37, 0x1f4f, 0x1f67, 0x1f7f, 0x1f98, 0x1fb0, 0x1fc8, 0x1fe0, 0x1ff8,
+	0x2011, 0x2029, 0x2042, 0x205a, 0x2072, 0x208b, 0x20a4, 0x20bc, 0x20d5,
+	0x20ee, 0x2106, 0x211f, 0x2138, 0x2151, 0x216a, 0x2183, 0x219c, 0x21b5,
+	0x21ce, 0x21e7, 0x2200, 0x2219, 0x2233, 0x224c, 0x2265, 0x227f, 0x2298,
+	0x22b2, 0x22cb, 0x22e5, 0x22fe, 0x2318, 0x2331, 0x234b, 0x2365, 0x237f,
+	0x2399, 0x23b3, 0x23cc, 0x23e6, 0x2401, 0x241b, 0x2435, 0x244f, 0x2469,
+	0x2483, 0x249e, 0x24b8, 0x24d2, 0x24ed, 0x2507, 0x2522, 0x253c, 0x2557,
+	0x2571, 0x258c, 0x25a7, 0x25c2, 0x25dc, 0x25f7, 0x2612, 0x262d, 0x2648,
+	0x2663, 0x267e, 0x2699, 0x26b4, 0x26cf, 0x26eb, 0x2706, 0x2721, 0x273d,
+	0x2758, 0x2774, 0x278f, 0x27ab, 0x27c6, 0x27e2, 0x27fd, 0x2819, 0x2835,
+	0x2851, 0x286d, 0x2888, 0x28a4, 0x28c0, 0x28dc, 0x28f8, 0x2915, 0x2931,
+	0x294d, 0x2969, 0x2985, 0x29a2, 0x29be, 0x29db, 0x29f7, 0x2a14, 0x2a30,
+	0x2a4d, 0x2a69, 0x2a86, 0x2aa3, 0x2ac0, 0x2adc, 0x2af9, 0x2b16, 0x2b33,
+	0x2b50, 0x2b6d, 0x2b8a, 0x2ba7, 0x2bc4, 0x2be2, 0x2bff, 0x2c1c, 0x2c3a,
+	0x2c57, 0x2c74, 0x2c92, 0x2caf, 0x2ccd, 0x2ceb, 0x2d08, 0x2d26, 0x2d44,
+	0x2d61, 0x2d7f, 0x2d9d, 0x2dbb, 0x2dd9, 0x2df7, 0x2e15, 0x2e33, 0x2e51,
+	0x2e70, 0x2e8e, 0x2eac, 0x2eca, 0x2ee9, 0x2f07, 0x2f26, 0x2f44, 0x2f63,
+	0x2f81, 0x2fa0, 0x2fbf, 0x2fdd, 0x2ffc, 0x301b, 0x303a, 0x3059, 0x3078,
+	0x3097, 0x30b6, 0x30d5, 0x30f4, 0x3113, 0x3132, 0x3152, 0x3171, 0x3190,
+	0x31b0, 0x31cf, 0x31ef, 0x320e, 0x322e, 0x324e, 0x326d, 0x328d, 0x32ad,
+	0x32cd, 0x32ec, 0x330c, 0x332c, 0x334c, 0x336c, 0x338c, 0x33ac, 0x33cd,
+	0x33ed, 0x340d, 0x342e, 0x344e, 0x346e, 0x348f, 0x34af, 0x34d0, 0x34f0,
+	0x3511, 0x3532, 0x3552, 0x3573, 0x3594, 0x35b5, 0x35d6, 0x35f7, 0x3618,
+	0x3639, 0x365a, 0x367b, 0x369c, 0x36bd, 0x36df, 0x3700, 0x3721, 0x3743,
+	0x3764, 0x3786, 0x37a7, 0x37c9, 0x37eb, 0x380c, 0x382e, 0x3850, 0x3872,
+	0x3894, 0x38b6, 0x38d8, 0x38fa, 0x391c, 0x393e, 0x3960, 0x3982, 0x39a4,
+	0x39c7, 0x39e9, 0x3a0b, 0x3a2e, 0x3a50, 0x3a73, 0x3a95, 0x3ab8, 0x3adb,
+	0x3afd, 0x3b20, 0x3b43, 0x3b66, 0x3b89, 0x3bac, 0x3bcf, 0x3bf2, 0x3c15,
+	0x3c38, 0x3c5b, 0x3c7e, 0x3ca2, 0x3cc5, 0x3ce8, 0x3d0c, 0x3d2f, 0x3d53,
+	0x3d76, 0x3d9a, 0x3dbe, 0x3de1, 0x3e05, 0x3e29, 0x3e4d, 0x3e71, 0x3e95,
+	0x3eb9, 0x3edd, 0x3f01, 0x3f25, 0x3f49, 0x3f6d, 0x3f91, 0x3fb6, 0x3fda,
+	0x3fff, 0x0,
+	/* table descriptor */
+	0xfbefe1e1, 0xf,
+	/* table length */
+	0x402,
+	/* table data */
+	0x3, 0x0, 0x200, 0x500, 0x700, 0x8c0, 0xa20, 0xae0, 0xbe0, 0xc70, 0xd00,
+	0xdb0, 0xe30, 0xe98, 0xf00, 0xf78, 0xff8, 0x103c, 0x1084, 0x10d0, 0x1120,
+	0x1178, 0x11d0, 0x1218, 0x124a, 0x127e, 0x12b6, 0x12f0, 0x132c, 0x136c,
+	0x13ae, 0x13f2, 0x141d, 0x1442, 0x1469, 0x1491, 0x14bb, 0x14e6, 0x1513,
+	0x1542, 0x1572, 0x15a4, 0x15d7, 0x1606, 0x1621, 0x163e, 0x165b, 0x1679,
+	0x1698, 0x16b9, 0x16da, 0x16fc, 0x171f, 0x1743, 0x1768, 0x178e, 0x17b5,
+	0x17dd, 0x1803, 0x1818, 0x182e, 0x1844, 0x185b, 0x1873, 0x188b, 0x18a4,
+	0x18bd, 0x18d7, 0x18f2, 0x190d, 0x1929, 0x1945, 0x1962, 0x1980, 0x199f,
+	0x19be, 0x19de, 0x19ff, 0x1a10, 0x1a21, 0x1a32, 0x1a44, 0x1a56, 0x1a69,
+	0x1a7c, 0x1a8f, 0x1aa3, 0x1ab7, 0x1acc, 0x1ae1, 0x1af6, 0x1b0c, 0x1b23,
+	0x1b39, 0x1b51, 0x1b68, 0x1b81, 0x1b99, 0x1bb2, 0x1bcc, 0x1be6, 0x1c00,
+	0x1c0e, 0x1c1b, 0x1c29, 0x1c38, 0x1c46, 0x1c55, 0x1c64, 0x1c74, 0x1c83,
+	0x1c93, 0x1ca3, 0x1cb4, 0x1cc5, 0x1cd6, 0x1ce7, 0x1cf9, 0x1d0b, 0x1d1d,
+	0x1d30, 0x1d42, 0x1d56, 0x1d69, 0x1d7d, 0x1d91, 0x1da6, 0x1dbb, 0x1dd0,
+	0x1de6, 0x1dfc, 0x1e09, 0x1e14, 0x1e20, 0x1e2b, 0x1e37, 0x1e43, 0x1e4f,
+	0x1e5c, 0x1e69, 0x1e75, 0x1e82, 0x1e90, 0x1e9d, 0x1eab, 0x1eb9, 0x1ec7,
+	0x1ed5, 0x1ee3, 0x1ef2, 0x1f01, 0x1f10, 0x1f20, 0x1f2f, 0x1f3f, 0x1f4f,
+	0x1f60, 0x1f70, 0x1f81, 0x1f92, 0x1fa3, 0x1fb5, 0x1fc7, 0x1fd9, 0x1feb,
+	0x1ffe, 0x2008, 0x2012, 0x201b, 0x2025, 0x202f, 0x2039, 0x2043, 0x204e,
+	0x2058, 0x2063, 0x206e, 0x2079, 0x2084, 0x208f, 0x209b, 0x20a6, 0x20b2,
+	0x20be, 0x20ca, 0x20d6, 0x20e3, 0x20ef, 0x20fc, 0x2109, 0x2116, 0x2123,
+	0x2131, 0x213e, 0x214c, 0x215a, 0x2168, 0x2176, 0x2185, 0x2194, 0x21a2,
+	0x21b2, 0x21c1, 0x21d0, 0x21e0, 0x21f0, 0x2200, 0x2208, 0x2210, 0x2218,
+	0x2221, 0x2229, 0x2232, 0x223b, 0x2244, 0x224d, 0x2256, 0x225f, 0x2268,
+	0x2272, 0x227b, 0x2285, 0x228f, 0x2299, 0x22a3, 0x22ad, 0x22b7, 0x22c2,
+	0x22cc, 0x22d7, 0x22e2, 0x22ed, 0x22f8, 0x2303, 0x230e, 0x231a, 0x2325,
+	0x2331, 0x233d, 0x2349, 0x2355, 0x2361, 0x236e, 0x237a, 0x2387, 0x2394,
+	0x23a1, 0x23ae, 0x23bc, 0x23c9, 0x23d7, 0x23e5, 0x23f3, 0x2400, 0x2407,
+	0x240f, 0x2416, 0x241d, 0x2425, 0x242c, 0x2434, 0x243c, 0x2444, 0x244c,
+	0x2454, 0x245c, 0x2464, 0x246c, 0x2475, 0x247d, 0x2486, 0x248e, 0x2497,
+	0x24a0, 0x24a9, 0x24b2, 0x24bb, 0x24c4, 0x24ce, 0x24d7, 0x24e1, 0x24eb,
+	0x24f4, 0x24fe, 0x2508, 0x2512, 0x251d, 0x2527, 0x2531, 0x253c, 0x2547,
+	0x2552, 0x255d, 0x2568, 0x2573, 0x257e, 0x2589, 0x2595, 0x25a1, 0x25ac,
+	0x25b8, 0x25c4, 0x25d1, 0x25dd, 0x25e9, 0x25f6, 0x2601, 0x2607, 0x260e,
+	0x2614, 0x261b, 0x2622, 0x2629, 0x262f, 0x2636, 0x263d, 0x2644, 0x264c,
+	0x2653, 0x265a, 0x2661, 0x2669, 0x2670, 0x2678, 0x2680, 0x2687, 0x268f,
+	0x2697, 0x269f, 0x26a7, 0x26af, 0x26b8, 0x26c0, 0x26c8, 0x26d1, 0x26d9,
+	0x26e2, 0x26eb, 0x26f4, 0x26fd, 0x2706, 0x270f, 0x2718, 0x2722, 0x272b,
+	0x2734, 0x273e, 0x2748, 0x2752, 0x275c, 0x2766, 0x2770, 0x277a, 0x2784,
+	0x278f, 0x2799, 0x27a4, 0x27af, 0x27b9, 0x27c4, 0x27d0, 0x27db, 0x27e6,
+	0x27f1, 0x27fd, 0x2804, 0x280a, 0x2810, 0x2816, 0x281c, 0x2822, 0x2828,
+	0x282f, 0x2835, 0x283b, 0x2842, 0x2848, 0x284f, 0x2855, 0x285c, 0x2863,
+	0x286a, 0x2870, 0x2877, 0x287e, 0x2886, 0x288d, 0x2894, 0x289b, 0x28a3,
+	0x28aa, 0x28b2, 0x28b9, 0x28c1, 0x28c9, 0x28d0, 0x28d8, 0x28e0, 0x28e8,
+	0x28f1, 0x28f9, 0x2901, 0x2909, 0x2912, 0x291a, 0x2923, 0x292c, 0x2935,
+	0x293d, 0x2946, 0x294f, 0x2959, 0x2962, 0x296b, 0x2975, 0x297e, 0x2988,
+	0x2991, 0x299b, 0x29a5, 0x29af, 0x29b9, 0x29c3, 0x29cd, 0x29d8, 0x29e2,
+	0x29ed, 0x29f7, 0x2a01, 0x2a06, 0x2a0c, 0x2a11, 0x2a17, 0x2a1c, 0x2a22,
+	0x2a28, 0x2a2e, 0x2a33, 0x2a39, 0x2a3f, 0x2a45, 0x2a4b, 0x2a52, 0x2a58,
+	0x2a5e, 0x2a64, 0x2a6b, 0x2a71, 0x2a78, 0x2a7e, 0x2a85, 0x2a8b, 0x2a92,
+	0x2a99, 0x2aa0, 0x2aa7, 0x2aae, 0x2ab5, 0x2abc, 0x2ac3, 0x2aca, 0x2ad2,
+	0x2ad9, 0x2ae1, 0x2ae8, 0x2af0, 0x2af7, 0x2aff, 0x2b07, 0x2b0f, 0x2b17,
+	0x2b1f, 0x2b27, 0x2b2f, 0x2b38, 0x2b40, 0x2b48, 0x2b51, 0x2b59, 0x2b62,
+	0x2b6b, 0x2b74, 0x2b7d, 0x2b86, 0x2b8f, 0x2b98, 0x2ba1, 0x2baa, 0x2bb4,
+	0x2bbd, 0x2bc7, 0x2bd0, 0x2bda, 0x2be4, 0x2bee, 0x2bf8, 0x2c01, 0x2c06,
+	0x2c0b, 0x2c10, 0x2c16, 0x2c1b, 0x2c20, 0x2c26, 0x2c2b, 0x2c31, 0x2c36,
+	0x2c3c, 0x2c41, 0x2c47, 0x2c4d, 0x2c53, 0x2c59, 0x2c5e, 0x2c64, 0x2c6a,
+	0x2c70, 0x2c77, 0x2c7d, 0x2c83, 0x2c89, 0x2c90, 0x2c96, 0x2c9d, 0x2ca3,
+	0x2caa, 0x2cb0, 0x2cb7, 0x2cbe, 0x2cc5, 0x2ccc, 0x2cd3, 0x2cda, 0x2ce1,
+	0x2ce8, 0x2cef, 0x2cf6, 0x2cfe, 0x2d05, 0x2d0d, 0x2d14, 0x2d1c, 0x2d24,
+	0x2d2b, 0x2d33, 0x2d3b, 0x2d43, 0x2d4b, 0x2d53, 0x2d5b, 0x2d64, 0x2d6c,
+	0x2d74, 0x2d7d, 0x2d85, 0x2d8e, 0x2d97, 0x2da0, 0x2da9, 0x2db2, 0x2dbb,
+	0x2dc4, 0x2dcd, 0x2dd6, 0x2de0, 0x2de9, 0x2df3, 0x2dfc, 0x2e03, 0x2e08,
+	0x2e0d, 0x2e12, 0x2e17, 0x2e1c, 0x2e21, 0x2e26, 0x2e2b, 0x2e30, 0x2e36,
+	0x2e3b, 0x2e41, 0x2e46, 0x2e4c, 0x2e51, 0x2e57, 0x2e5c, 0x2e62, 0x2e68,
+	0x2e6e, 0x2e73, 0x2e79, 0x2e7f, 0x2e85, 0x2e8b, 0x2e92, 0x2e98, 0x2e9e,
+	0x2ea4, 0x2eab, 0x2eb1, 0x2eb8, 0x2ebe, 0x2ec5, 0x2ecb, 0x2ed2, 0x2ed9,
+	0x2ee0, 0x2ee6, 0x2eed, 0x2ef4, 0x2efb, 0x2f03, 0x2f0a, 0x2f11, 0x2f18,
+	0x2f20, 0x2f27, 0x2f2f, 0x2f36, 0x2f3e, 0x2f46, 0x2f4e, 0x2f55, 0x2f5d,
+	0x2f65, 0x2f6d, 0x2f76, 0x2f7e, 0x2f86, 0x2f8e, 0x2f97, 0x2f9f, 0x2fa8,
+	0x2fb1, 0x2fb9, 0x2fc2, 0x2fcb, 0x2fd4, 0x2fdd, 0x2fe6, 0x2ff0, 0x2ff9,
+	0x3001, 0x3006, 0x300a, 0x300f, 0x3014, 0x3019, 0x301e, 0x3023, 0x3028,
+	0x302d, 0x3032, 0x3037, 0x303d, 0x3042, 0x3047, 0x304d, 0x3052, 0x3057,
+	0x305d, 0x3062, 0x3068, 0x306e, 0x3073, 0x3079, 0x307f, 0x3085, 0x308b,
+	0x3091, 0x3097, 0x309d, 0x30a3, 0x30a9, 0x30af, 0x30b6, 0x30bc, 0x30c2,
+	0x30c9, 0x30cf, 0x30d6, 0x30dd, 0x30e3, 0x30ea, 0x30f1, 0x30f8, 0x30ff,
+	0x3106, 0x310d, 0x3114, 0x311b, 0x3122, 0x3129, 0x3131, 0x3138, 0x3140,
+	0x3147, 0x314f, 0x3157, 0x315e, 0x3166, 0x316e, 0x3176, 0x317e, 0x3186,
+	0x318f, 0x3197, 0x319f, 0x31a8, 0x31b0, 0x31b9, 0x31c1, 0x31ca, 0x31d3,
+	0x31dc, 0x31e5, 0x31ee, 0x31f7, 0x3200, 0x3204, 0x3209, 0x320e, 0x3213,
+	0x3217, 0x321c, 0x3221, 0x3226, 0x322b, 0x3230, 0x3235, 0x323a, 0x323f,
+	0x3245, 0x324a, 0x324f, 0x3255, 0x325a, 0x325f, 0x3265, 0x326a, 0x3270,
+	0x3276, 0x327b, 0x3281, 0x3287, 0x328d, 0x3293, 0x3299, 0x329f, 0x32a5,
+	0x32ab, 0x32b1, 0x32b7, 0x32bd, 0x32c4, 0x32ca, 0x32d1, 0x32d7, 0x32de,
+	0x32e4, 0x32eb, 0x32f2, 0x32f8, 0x32ff, 0x3306, 0x330d, 0x3314, 0x331b,
+	0x3322, 0x332a, 0x3331, 0x3338, 0x3340, 0x3347, 0x334f, 0x3357, 0x335e,
+	0x3366, 0x336e, 0x3376, 0x337e, 0x3386, 0x338e, 0x3396, 0x339e, 0x33a7,
+	0x33af, 0x33b8, 0x33c0, 0x33c9, 0x33d2, 0x33da, 0x33e3, 0x33ec, 0x33f5,
+	0x33fe, 0x3404, 0x3408, 0x340d, 0x3412, 0x3416, 0x341b, 0x3420, 0x3425,
+	0x342a, 0x342f, 0x3434, 0x3439, 0x343e, 0x3443, 0x3448, 0x344e, 0x3453,
+	0x3458, 0x345e, 0x3463, 0x3469, 0x346e, 0x3474, 0x347a, 0x347f, 0x3485,
+	0x348b, 0x3491, 0x3497, 0x349d, 0x34a3, 0x34a9, 0x34af, 0x34b5, 0x34bb,
+	0x34c2, 0x34c8, 0x34ce, 0x34d5, 0x34db, 0x34e2, 0x34e9, 0x34ef, 0x34f6,
+	0x34fd, 0x3504, 0x350b, 0x3512, 0x3519, 0x3520, 0x3527, 0x352f, 0x3536,
+	0x353d, 0x3545, 0x354c, 0x3554, 0x355c, 0x3563, 0x356b, 0x3573, 0x357b,
+	0x3583, 0x358b, 0x3593, 0x359c, 0x35a4, 0x35ad, 0x35b5, 0x35be, 0x35c6,
+	0x35cf, 0x35d8, 0x35e1, 0x35ea, 0x35f3, 0x35fc, 0x3602, 0x3607, 0x360c,
+	0x3610, 0x3615, 0x361a, 0x361f, 0x3624, 0x3629, 0x362e, 0x3633, 0x3638,
+	0x363d, 0x3642, 0x3647, 0x364d, 0x3652, 0x3657, 0x365d, 0x3662, 0x3668,
+	0x366d, 0x3673, 0x3679, 0x367f, 0x3684, 0x368a, 0x3690, 0x3696, 0x369c,
+	0x36a2, 0x36a8, 0x36ae, 0x36b5, 0x36bb, 0x36c1, 0x36c8, 0x36ce, 0x36d5,
+	0x36db, 0x36e2, 0x36e9, 0x36f0, 0x36f6, 0x36fd, 0x3704, 0x370b, 0x3712,
+	0x371a, 0x3721, 0x3728, 0x372f, 0x3737, 0x373e, 0x3746, 0x374e, 0x3755,
+	0x375d, 0x3765, 0x376d, 0x3775, 0x377d, 0x3785, 0x378d, 0x3796, 0x379e,
+	0x37a7, 0x37af, 0x37b8, 0x37c1, 0x37c9, 0x37d2, 0x37db, 0x37e4, 0x37ed,
+	0x37f7, 0x3800, 0x3804, 0x3809, 0x380e, 0x3813, 0x3818, 0x381d, 0x3821,
+	0x3826, 0x382c, 0x3831, 0x3836, 0x383b, 0x3840, 0x3846, 0x384b, 0x3850,
+	0x3856, 0x385b, 0x3861, 0x3866, 0x386c, 0x3872, 0x3878, 0x387d, 0x3883,
+	0x3889, 0x388f, 0x3895, 0x389b, 0x38a2, 0x38a8, 0x38ae, 0x38b5, 0x38bb,
+	0x38c1, 0x38c8, 0x38cf, 0x38d5, 0x38dc, 0x38e3, 0x38ea, 0x38f1, 0x38f8,
+	0x38ff, 0x3906, 0x390d, 0x3914, 0x391b, 0x3923, 0x392a, 0x3932, 0x3939,
+	0x3941, 0x3949, 0x3951, 0x3959, 0x3961, 0x3969, 0x3971, 0x3979, 0x3981,
+	0x398a, 0x3992, 0x399b, 0x39a3, 0x39ac, 0x39b5, 0x39be, 0x39c7, 0x39d0,
+	0x39d9, 0x39e2, 0x39ec, 0x39f5, 0x39ff, 0x3,
+	/* table descriptor */
+	0xfbefe2e1, 0xf,
+	/* table length */
+	0x402,
+	/* table data */
+	0x3, 0x0, 0x3, 0x7, 0xa, 0xe, 0x11, 0x15, 0x18, 0x1c, 0x20, 0x23, 0x27,
+	0x2a, 0x2e, 0x31, 0x35, 0x38, 0x3c, 0x40, 0x43, 0x47, 0x4a, 0x4e, 0x51,
+	0x55, 0x58, 0x5c, 0x60, 0x63, 0x67, 0x6a, 0x6e, 0x71, 0x75, 0x78, 0x7c,
+	0x80, 0x83, 0x87, 0x8a, 0x8e, 0x91, 0x95, 0x99, 0x9c, 0xa0, 0xa3, 0xa7,
+	0xaa, 0xae, 0xb1, 0xb5, 0xb9, 0xbc, 0xc0, 0xc3, 0xc7, 0xca, 0xce, 0xd1,
+	0xd5, 0xd9, 0xdc, 0xe0, 0xe3, 0xe7, 0xea, 0xee, 0xf1, 0xf5, 0xf9, 0xfc,
+	0x100, 0x103, 0x107, 0x10a, 0x10e, 0x112, 0x115, 0x119, 0x11c, 0x120,
+	0x123, 0x126, 0x12a, 0x12d, 0x131, 0x134, 0x138, 0x13c, 0x13f, 0x143,
+	0x147, 0x14b, 0x14e, 0x152, 0x156, 0x15a, 0x15e, 0x162, 0x166, 0x16a,
+	0x16e, 0x172, 0x176, 0x17a, 0x17e, 0x182, 0x186, 0x18a, 0x18f, 0x193,
+	0x197, 0x19b, 0x1a0, 0x1a4, 0x1a8, 0x1ad, 0x1b1, 0x1b5, 0x1ba, 0x1be,
+	0x1c3, 0x1c7, 0x1cc, 0x1d0, 0x1d5, 0x1d9, 0x1de, 0x1e3, 0x1e7, 0x1ec,
+	0x1f1, 0x1f6, 0x1fa, 0x1ff, 0x204, 0x209, 0x20e, 0x213, 0x217, 0x21c,
+	0x221, 0x226, 0x22b, 0x230, 0x236, 0x23b, 0x240, 0x245, 0x24a, 0x24f,
+	0x255, 0x25a, 0x25f, 0x264, 0x26a, 0x26f, 0x274, 0x27a, 0x27f, 0x285,
+	0x28a, 0x290, 0x295, 0x29b, 0x2a0, 0x2a6, 0x2ac, 0x2b1, 0x2b7, 0x2bd,
+	0x2c2, 0x2c8, 0x2ce, 0x2d4, 0x2da, 0x2df, 0x2e5, 0x2eb, 0x2f1, 0x2f7,
+	0x2fd, 0x303, 0x309, 0x30f, 0x315, 0x31c, 0x322, 0x328, 0x32e, 0x334,
+	0x33b, 0x341, 0x347, 0x34d, 0x354, 0x35a, 0x361, 0x367, 0x36d, 0x374,
+	0x37a, 0x381, 0x388, 0x38e, 0x395, 0x39b, 0x3a2, 0x3a9, 0x3b0, 0x3b6,
+	0x3bd, 0x3c4, 0x3cb, 0x3d2, 0x3d8, 0x3df, 0x3e6, 0x3ed, 0x3f4, 0x3fb,
+	0x402, 0x409, 0x411, 0x418, 0x41f, 0x426, 0x42d, 0x434, 0x43c, 0x443,
+	0x44a, 0x452, 0x459, 0x460, 0x468, 0x46f, 0x477, 0x47e, 0x486, 0x48d,
+	0x495, 0x49c, 0x4a4, 0x4ac, 0x4b3, 0x4bb, 0x4c3, 0x4cb, 0x4d3, 0x4da,
+	0x4e2, 0x4ea, 0x4f2, 0x4fa, 0x502, 0x50a, 0x512, 0x51a, 0x522, 0x52a,
+	0x532, 0x53a, 0x543, 0x54b, 0x553, 0x55b, 0x564, 0x56c, 0x574, 0x57d,
+	0x585, 0x58d, 0x596, 0x59e, 0x5a7, 0x5af, 0x5b8, 0x5c1, 0x5c9, 0x5d2,
+	0x5db, 0x5e3, 0x5ec, 0x5f5, 0x5fe, 0x606, 0x60f, 0x618, 0x621, 0x62a,
+	0x633, 0x63c, 0x645, 0x64e, 0x657, 0x660, 0x669, 0x672, 0x67b, 0x685,
+	0x68e, 0x697, 0x6a0, 0x6aa, 0x6b3, 0x6bd, 0x6c6, 0x6cf, 0x6d9, 0x6e2,
+	0x6ec, 0x6f5, 0x6ff, 0x709, 0x712, 0x71c, 0x726, 0x72f, 0x739, 0x743,
+	0x74d, 0x756, 0x760, 0x76a, 0x774, 0x77e, 0x788, 0x792, 0x79c, 0x7a6,
+	0x7b0, 0x7ba, 0x7c4, 0x7cf, 0x7d9, 0x7e3, 0x7ed, 0x7f7, 0x802, 0x80c,
+	0x816, 0x821, 0x82b, 0x836, 0x840, 0x84b, 0x855, 0x860, 0x86a, 0x875,
+	0x880, 0x88a, 0x895, 0x8a0, 0x8ab, 0x8b5, 0x8c0, 0x8cb, 0x8d6, 0x8e1,
+	0x8ec, 0x8f7, 0x902, 0x90d, 0x918, 0x923, 0x92e, 0x939, 0x944, 0x950,
+	0x95b, 0x966, 0x971, 0x97d, 0x988, 0x993, 0x99f, 0x9aa, 0x9b6, 0x9c1,
+	0x9cd, 0x9d8, 0x9e4, 0x9f0, 0x9fb, 0xa07, 0xa13, 0xa1e, 0xa2a, 0xa36,
+	0xa42, 0xa4e, 0xa59, 0xa65, 0xa71, 0xa7d, 0xa89, 0xa95, 0xaa1, 0xaad,
+	0xab9, 0xac6, 0xad2, 0xade, 0xaea, 0xaf6, 0xb03, 0xb0f, 0xb1b, 0xb28,
+	0xb34, 0xb41, 0xb4d, 0xb5a, 0xb66, 0xb73, 0xb7f, 0xb8c, 0xb98, 0xba5,
+	0xbb2, 0xbbf, 0xbcb, 0xbd8, 0xbe5, 0xbf2, 0xbff, 0xc0c, 0xc19, 0xc25,
+	0xc32, 0xc40, 0xc4d, 0xc5a, 0xc67, 0xc74, 0xc81, 0xc8e, 0xc9c, 0xca9,
+	0xcb6, 0xcc3, 0xcd1, 0xcde, 0xcec, 0xcf9, 0xd07, 0xd14, 0xd22, 0xd2f,
+	0xd3d, 0xd4a, 0xd58, 0xd66, 0xd73, 0xd81, 0xd8f, 0xd9d, 0xdab, 0xdb8,
+	0xdc6, 0xdd4, 0xde2, 0xdf0, 0xdfe, 0xe0c, 0xe1a, 0xe29, 0xe37, 0xe45,
+	0xe53, 0xe61, 0xe70, 0xe7e, 0xe8c, 0xe9a, 0xea9, 0xeb7, 0xec6, 0xed4,
+	0xee3, 0xef1, 0xf00, 0xf0e, 0xf1d, 0xf2c, 0xf3a, 0xf49, 0xf58, 0xf67,
+	0xf75, 0xf84, 0xf93, 0xfa2, 0xfb1, 0xfc0, 0xfcf, 0xfde, 0xfed, 0xffc,
+	0x100b, 0x101a, 0x102a, 0x1039, 0x1048, 0x1057, 0x1067, 0x1076, 0x1085,
+	0x1095, 0x10a4, 0x10b4, 0x10c3, 0x10d3, 0x10e2, 0x10f2, 0x1101, 0x1111,
+	0x1121, 0x1130, 0x1140, 0x1150, 0x1160, 0x116f, 0x117f, 0x118f, 0x119f,
+	0x11af, 0x11bf, 0x11cf, 0x11df, 0x11ef, 0x11ff, 0x120f, 0x121f, 0x1230,
+	0x1240, 0x1250, 0x1260, 0x1271, 0x1281, 0x1291, 0x12a2, 0x12b2, 0x12c3,
+	0x12d3, 0x12e4, 0x12f4, 0x1305, 0x1316, 0x1326, 0x1337, 0x1348, 0x1359,
+	0x1369, 0x137a, 0x138b, 0x139c, 0x13ad, 0x13be, 0x13cf, 0x13e0, 0x13f1,
+	0x1402, 0x1413, 0x1424, 0x1435, 0x1446, 0x1458, 0x1469, 0x147a, 0x148b,
+	0x149d, 0x14ae, 0x14c0, 0x14d1, 0x14e3, 0x14f4, 0x1506, 0x1517, 0x1529,
+	0x153a, 0x154c, 0x155e, 0x156f, 0x1581, 0x1593, 0x15a5, 0x15b7, 0x15c9,
+	0x15db, 0x15ec, 0x15fe, 0x1610, 0x1623, 0x1635, 0x1647, 0x1659, 0x166b,
+	0x167d, 0x168f, 0x16a2, 0x16b4, 0x16c6, 0x16d9, 0x16eb, 0x16fe, 0x1710,
+	0x1722, 0x1735, 0x1748, 0x175a, 0x176d, 0x177f, 0x1792, 0x17a5, 0x17b8,
+	0x17ca, 0x17dd, 0x17f0, 0x1803, 0x1816, 0x1829, 0x183c, 0x184f, 0x1862,
+	0x1875, 0x1888, 0x189b, 0x18ae, 0x18c1, 0x18d5, 0x18e8, 0x18fb, 0x190e,
+	0x1922, 0x1935, 0x1949, 0x195c, 0x196f, 0x1983, 0x1996, 0x19aa, 0x19be,
+	0x19d1, 0x19e5, 0x19f9, 0x1a0c, 0x1a20, 0x1a34, 0x1a48, 0x1a5c, 0x1a70,
+	0x1a84, 0x1a97, 0x1aab, 0x1ac0, 0x1ad4, 0x1ae8, 0x1afc, 0x1b10, 0x1b24,
+	0x1b38, 0x1b4d, 0x1b61, 0x1b75, 0x1b8a, 0x1b9e, 0x1bb2, 0x1bc7, 0x1bdb,
+	0x1bf0, 0x1c04, 0x1c19, 0x1c2e, 0x1c42, 0x1c57, 0x1c6c, 0x1c80, 0x1c95,
+	0x1caa, 0x1cbf, 0x1cd4, 0x1ce8, 0x1cfd, 0x1d12, 0x1d27, 0x1d3c, 0x1d51,
+	0x1d67, 0x1d7c, 0x1d91, 0x1da6, 0x1dbb, 0x1dd1, 0x1de6, 0x1dfb, 0x1e10,
+	0x1e26, 0x1e3b, 0x1e51, 0x1e66, 0x1e7c, 0x1e91, 0x1ea7, 0x1ebd, 0x1ed2,
+	0x1ee8, 0x1efe, 0x1f13, 0x1f29, 0x1f3f, 0x1f55, 0x1f6b, 0x1f81, 0x1f96,
+	0x1fac, 0x1fc2, 0x1fd9, 0x1fef, 0x2005, 0x201b, 0x2031, 0x2047, 0x205d,
+	0x2074, 0x208a, 0x20a0, 0x20b7, 0x20cd, 0x20e4, 0x20fa, 0x2111, 0x2127,
+	0x213e, 0x2154, 0x216b, 0x2182, 0x2198, 0x21af, 0x21c6, 0x21dd, 0x21f3,
+	0x220a, 0x2221, 0x2238, 0x224f, 0x2266, 0x227d, 0x2294, 0x22ab, 0x22c2,
+	0x22da, 0x22f1, 0x2308, 0x231f, 0x2337, 0x234e, 0x2365, 0x237d, 0x2394,
+	0x23ac, 0x23c3, 0x23db, 0x23f2, 0x240a, 0x2421, 0x2439, 0x2451, 0x2469,
+	0x2480, 0x2498, 0x24b0, 0x24c8, 0x24e0, 0x24f8, 0x2510, 0x2528, 0x2540,
+	0x2558, 0x2570, 0x2588, 0x25a0, 0x25b8, 0x25d0, 0x25e9, 0x2601, 0x2619,
+	0x2632, 0x264a, 0x2663, 0x267b, 0x2693, 0x26ac, 0x26c5, 0x26dd, 0x26f6,
+	0x270e, 0x2727, 0x2740, 0x2759, 0x2771, 0x278a, 0x27a3, 0x27bc, 0x27d5,
+	0x27ee, 0x2807, 0x2820, 0x2839, 0x2852, 0x286b, 0x2884, 0x289e, 0x28b7,
+	0x28d0, 0x28e9, 0x2903, 0x291c, 0x2936, 0x294f, 0x2968, 0x2982, 0x299c,
+	0x29b5, 0x29cf, 0x29e8, 0x2a02, 0x2a1c, 0x2a35, 0x2a4f, 0x2a69, 0x2a83,
+	0x2a9d, 0x2ab7, 0x2ad1, 0x2aeb, 0x2b05, 0x2b1f, 0x2b39, 0x2b53, 0x2b6d,
+	0x2b87, 0x2ba1, 0x2bbc, 0x2bd6, 0x2bf0, 0x2c0b, 0x2c25, 0x2c3f, 0x2c5a,
+	0x2c74, 0x2c8f, 0x2ca9, 0x2cc4, 0x2cdf, 0x2cf9, 0x2d14, 0x2d2f, 0x2d49,
+	0x2d64, 0x2d7f, 0x2d9a, 0x2db5, 0x2dd0, 0x2deb, 0x2e06, 0x2e21, 0x2e3c,
+	0x2e57, 0x2e72, 0x2e8d, 0x2ea8, 0x2ec4, 0x2edf, 0x2efa, 0x2f16, 0x2f31,
+	0x2f4c, 0x2f68, 0x2f83, 0x2f9f, 0x2fba, 0x2fd6, 0x2ff1, 0x300d, 0x3029,
+	0x3044, 0x3060, 0x307c, 0x3098, 0x30b4, 0x30d0, 0x30eb, 0x3107, 0x3123,
+	0x313f, 0x315b, 0x3178, 0x3194, 0x31b0, 0x31cc, 0x31e8, 0x3205, 0x3221,
+	0x323d, 0x325a, 0x3276, 0x3292, 0x32af, 0x32cb, 0x32e8, 0x3304, 0x3321,
+	0x333e, 0x335a, 0x3377, 0x3394, 0x33b1, 0x33cd, 0x33ea, 0x3407, 0x3424,
+	0x3441, 0x345e, 0x347b, 0x3498, 0x34b5, 0x34d2, 0x34ef, 0x350d, 0x352a,
+	0x3547, 0x3564, 0x3582, 0x359f, 0x35bc, 0x35da, 0x35f7, 0x3615, 0x3632,
+	0x3650, 0x366e, 0x368b, 0x36a9, 0x36c7, 0x36e4, 0x3702, 0x3720, 0x373e,
+	0x375c, 0x377a, 0x3798, 0x37b6, 0x37d4, 0x37f2, 0x3810, 0x382e, 0x384c,
+	0x386a, 0x3888, 0x38a7, 0x38c5, 0x38e3, 0x3902, 0x3920, 0x393f, 0x395d,
+	0x397c, 0x399a, 0x39b9, 0x39d7, 0x39f6, 0x3a15, 0x3a33, 0x3a52, 0x3a71,
+	0x3a90, 0x3aaf, 0x3acd, 0x3aec, 0x3b0b, 0x3b2a, 0x3b49, 0x3b68, 0x3b87,
+	0x3ba7, 0x3bc6, 0x3be5, 0x3c04, 0x3c24, 0x3c43, 0x3c62, 0x3c82, 0x3ca1,
+	0x3cc0, 0x3ce0, 0x3cff, 0x3d1f, 0x3d3f, 0x3d5e, 0x3d7e, 0x3d9e, 0x3dbd,
+	0x3ddd, 0x3dfd, 0x3e1d, 0x3e3d, 0x3e5d, 0x3e7c, 0x3e9c, 0x3ebc, 0x3edc,
+	0x3efd, 0x3f1d, 0x3f3d, 0x3f5d, 0x3f7d, 0x3f9e, 0x3fbe, 0x3fde, 0x3fff,
+	0x0,
+	/* table descriptor */
+	0xfbe83ba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4031, 0x0, 0x0, 0x0, 0x4031, 0x0, 0x0, 0x0, 0x4031, 0x0, 0xffffff80,
+	0xffffff80, 0x0, 0xffffff80, 0xffffff80, 0xff, 0x7f, 0x7f, 0xc, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbe65ba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4000, 0x0, 0x59bb, 0x4000, 0xffffe9fb, 0xffffd24d, 0x4000, 0x7169,
+	0x0, 0x0, 0xfffffe00, 0xfffffe00, 0x0, 0xfffffe00, 0xfffffe00, 0x3ff,
+	0x1ff, 0x1ff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbefbb62, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x1, 0x4031, 0x0, 0x0, 0x0, 0x4031, 0x0, 0x0, 0x0, 0x4031, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff,
+	0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbefdb62, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	/* table descriptor */
+	0xfbe0bba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4031, 0x0, 0x5ea7, 0x4031, 0xfffff571, 0xffffdb55, 0x4031, 0x78c4,
+	0x0, 0x0, 0xffffff80, 0xffffff80, 0x0, 0xffffff80, 0xffffff80, 0xff, 0x7f,
+	0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbe63ba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4031, 0x0, 0x59fe, 0x4031, 0xffffe9ea, 0xffffd22b, 0x4031, 0x71be,
+	0x0, 0x0, 0xffffff80, 0xffffff80, 0x0, 0xffffff80, 0xffffff80, 0xff, 0x7f,
+	0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbe15ba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4000, 0x0, 0x64ca, 0x4000, 0xfffff404, 0xffffe20c, 0x4000, 0x76c3,
+	0x0, 0x0, 0xfffffe00, 0xfffffe00, 0x0, 0xfffffe00, 0xfffffe00, 0x3ff,
+	0x1ff, 0x1ff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbe13ba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4031, 0x0, 0x6516, 0x4031, 0xfffff3fb, 0xffffe1f5, 0x4031, 0x771c,
+	0x0, 0x0, 0xffffff80, 0xffffff80, 0x0, 0xffffff80, 0xffffff80, 0xff, 0x7f,
+	0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbe0dba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4000, 0x0, 0x5e60, 0x4000, 0xfffff579, 0xffffdb70, 0x4000, 0x7869,
+	0x0, 0x0, 0xfffffe00, 0xfffffe00, 0x0, 0xfffffe00, 0xfffffe00, 0x3ff,
+	0x1ff, 0x1ff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbe85ba2, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x3, 0x4000, 0x0, 0x0, 0x0, 0x4000, 0x0, 0x0, 0x0, 0x4000, 0x0, 0xfffffe00,
+	0xfffffe00, 0x0, 0xfffffe00, 0xfffffe00, 0x3ff, 0x1ff, 0x1ff, 0xe, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x3ff, 0x3ff, 0x3ff,
+	/* table descriptor */
+	0xfbeffbe4, 0xf,
+	/* table length */
+	0x1d,
+	/* table data */
+	0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+};
+
+#endif /* __DCSS_HDR10_TABLES_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-hdr10.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-hdr10.c
@@ -0,0 +1,585 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+#include <linux/bitops.h>
+#include <linux/io.h>
+#include <linux/seq_file.h>
+#include <linux/firmware.h>
+#include <drm/drm_fourcc.h>
+
+#include "dcss-dev.h"
+
+#define USE_TBL_HEADER
+
+#ifdef USE_TBL_HEADER
+#include "dcss-hdr10-tables.h"
+#endif
+
+#define USE_CTXLD
+
+#define DCSS_HDR10_A0_LUT		0x0000
+#define DCSS_HDR10_A1_LUT		0x1000
+#define DCSS_HDR10_A2_LUT		0x2000
+/* one CSCA and CSCB for each channel(pipe) */
+#define DCSS_HDR10_CSCA_BASE		0x3000
+#define DCSS_HDR10_CSCB_BASE		0x3800
+
+/* one CSCO for all channels(pipes) */
+#define DCSS_HDR10_CSCO_BASE		0x3000
+
+#define DCSS_HDR10_LUT_CONTROL		(DCSS_HDR10_CSCA_BASE + 0x80)
+#define   LUT_ENABLE			BIT(0)
+#define   LUT_EN_FOR_ALL_PELS		BIT(1)
+#define   LUT_BYPASS			BIT(15)
+#define DCSS_HDR10_FL2FX		(DCSS_HDR10_CSCB_BASE + 0x74)
+#define DCSS_HDR10_LTNL			(DCSS_HDR10_CSCO_BASE + 0x74)
+#define   LTNL_PASS_THRU		BIT(0)
+#define   FIX2FLT_DISABLE		BIT(1)
+#define   LTNL_EN_FOR_ALL_PELS		BIT(2)
+#define   FIX2FLT_EN_FOR_ALL_PELS	BIT(3)
+
+/* following offsets are relative to CSC(A|B|O)_BASE */
+#define DCSS_HDR10_CSC_CONTROL		0x00
+#define   CSC_EN			BIT(0)
+#define   CSC_ALL_PIX_EN		BIT(1)
+#define   CSC_BYPASS			BIT(15)
+#define DCSS_HDR10_CSC_H00		0x04
+#define DCSS_HDR10_CSC_H10		0x08
+#define DCSS_HDR10_CSC_H20		0x0C
+#define DCSS_HDR10_CSC_H01		0x10
+#define DCSS_HDR10_CSC_H11		0x14
+#define DCSS_HDR10_CSC_H21		0x18
+#define DCSS_HDR10_CSC_H02		0x1C
+#define DCSS_HDR10_CSC_H12		0x20
+#define DCSS_HDR10_CSC_H22		0x24
+#define   H_COEF_MASK			GENMASK(15, 0)
+#define DCSS_HDR10_CSC_IO0		0x28
+#define DCSS_HDR10_CSC_IO1		0x2C
+#define DCSS_HDR10_CSC_IO2		0x30
+#define   PRE_OFFSET_MASK		GENMASK(9, 0)
+#define DCSS_HDR10_CSC_IO_MIN0		0x34
+#define DCSS_HDR10_CSC_IO_MIN1		0x38
+#define DCSS_HDR10_CSC_IO_MIN2		0x3C
+#define DCSS_HDR10_CSC_IO_MAX0		0x40
+#define DCSS_HDR10_CSC_IO_MAX1		0x44
+#define DCSS_HDR10_CSC_IO_MAX2		0x48
+#define   IO_CLIP_MASK			GENMASK(9, 0)
+#define DCSS_HDR10_CSC_NORM		0x4C
+#define   NORM_MASK			GENMASK(4, 0)
+#define DCSS_HDR10_CSC_OO0		0x50
+#define DCSS_HDR10_CSC_OO1		0x54
+#define DCSS_HDR10_CSC_OO2		0x58
+#define   POST_OFFSET_MASK		GENMASK(27, 0)
+#define DCSS_HDR10_CSC_OMIN0		0x5C
+#define DCSS_HDR10_CSC_OMIN1		0x60
+#define DCSS_HDR10_CSC_OMIN2		0x64
+#define DCSS_HDR10_CSC_OMAX0		0x68
+#define DCSS_HDR10_CSC_OMAX1		0x6C
+#define DCSS_HDR10_CSC_OMAX2		0x70
+#define   POST_CLIP_MASK		GENMASK(9, 0)
+
+#define HDR10_IPIPE_LUT_MAX_ENTRIES	1024
+#define HDR10_OPIPE_LUT_MAX_ENTRIES	1023
+#define HDR10_CSC_MAX_REGS		29
+
+#define OPIPE_CH_NO			3
+
+/* Pipe config descriptor */
+
+/* bits per component */
+#define HDR10_BPC_POS			0
+#define HDR10_BPC_MASK			GENMASK(1, 0)
+/* colorspace */
+#define HDR10_CS_POS			2
+#define HDR10_CS_MASK			GENMASK(3, 2)
+/* nonlinearity type */
+#define HDR10_NL_POS			4
+#define HDR10_NL_MASK			GENMASK(8, 4)
+/* pixel range */
+#define HDR10_PR_POS			9
+#define HDR10_PR_MASK			GENMASK(10, 9)
+/* gamut type */
+#define HDR10_G_POS			11
+#define HDR10_G_MASK			GENMASK(15, 11)
+
+/* FW Table Type Descriptor */
+#define HDR10_TT_LUT			BIT(0)
+#define HDR10_TT_CSCA			BIT(1)
+#define HDR10_TT_CSCB			BIT(2)
+/* Pipe type */
+#define HDR10_PT_OUTPUT			BIT(3)
+/* Output pipe config descriptor */
+#define HDR10_IPIPE_DESC_POS		4
+#define HDR10_IPIPE_DESC_MASK		GENMASK(19, 4)
+/* Input pipe config descriptor */
+#define HDR10_OPIPE_DESC_POS		20
+#define HDR10_OPIPE_DESC_MASK		GENMASK(35, 20)
+
+/* config invalid */
+#define HDR10_DESC_INVALID		BIT(63)
+
+enum dcss_hdr10_csc {
+	HDR10_CSCA,
+	HDR10_CSCB,
+};
+
+struct dcss_hdr10_tbl_node {
+	struct list_head node;
+
+	u64 tbl_descriptor;
+	u32 *tbl_data;
+};
+
+struct dcss_hdr10_opipe_tbls {
+	struct list_head lut;
+	struct list_head csc;
+};
+
+struct dcss_hdr10_ipipe_tbls {
+	struct list_head lut;
+	struct list_head csca;
+	struct list_head cscb;
+};
+
+struct dcss_hdr10_ch {
+	struct dcss_hdr10 *hdr10;
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	u64 old_cfg_desc;
+
+	u32 id;
+};
+
+struct dcss_hdr10 {
+	struct device *dev;
+	struct dcss_ctxld *ctxld;
+
+	u32 ctx_id;
+
+	struct dcss_hdr10_ch ch[4]; /* 4th channel is, actually, OPIPE */
+
+	struct dcss_hdr10_ipipe_tbls *ipipe_tbls;
+	struct dcss_hdr10_opipe_tbls *opipe_tbls;
+
+	u8 *fw_data;
+	u32 fw_size;
+};
+
+static void dcss_hdr10_write(struct dcss_hdr10_ch *ch, u32 val, u32 ofs)
+{
+	struct dcss_hdr10 *hdr10 = ch->hdr10;
+
+	dcss_ctxld_write(hdr10->ctxld, hdr10->ctx_id, val, ch->base_ofs + ofs);
+}
+
+static void dcss_hdr10_csc_fill(struct dcss_hdr10_ch *ch,
+				enum dcss_hdr10_csc csc_to_use,
+				u32 *map)
+{
+	int i;
+	u32 csc_base_ofs[] = {
+		DCSS_HDR10_CSCA_BASE + DCSS_HDR10_CSC_CONTROL,
+		DCSS_HDR10_CSCB_BASE + DCSS_HDR10_CSC_CONTROL,
+	};
+
+	for (i = 0; i < HDR10_CSC_MAX_REGS; i++) {
+		u32 reg_ofs = csc_base_ofs[csc_to_use] + i * sizeof(u32);
+
+		dcss_hdr10_write(ch, map[i], reg_ofs);
+	}
+}
+
+static void dcss_hdr10_lut_fill(struct dcss_hdr10_ch *ch, u32 *map)
+{
+	int i, comp;
+	u32 lut_base_ofs, ctrl_ofs, lut_entries;
+
+	if (ch->id == OPIPE_CH_NO) {
+		ctrl_ofs = DCSS_HDR10_LTNL;
+		lut_entries = HDR10_OPIPE_LUT_MAX_ENTRIES;
+	} else {
+		ctrl_ofs = DCSS_HDR10_LUT_CONTROL;
+		lut_entries = HDR10_IPIPE_LUT_MAX_ENTRIES;
+	}
+
+	if (ch->id != OPIPE_CH_NO)
+		dcss_hdr10_write(ch, *map++, ctrl_ofs);
+
+	for (comp = 0; comp < 3; comp++) {
+		lut_base_ofs = DCSS_HDR10_A0_LUT + comp * 0x1000;
+
+		if (ch->id == OPIPE_CH_NO) {
+			dcss_hdr10_write(ch, map[0], lut_base_ofs);
+			lut_base_ofs += 4;
+		}
+
+		for (i = 0; i < lut_entries; i++) {
+			u32 reg_ofs = lut_base_ofs + i * sizeof(u32);
+
+			dcss_hdr10_write(ch, map[i], reg_ofs);
+		}
+	}
+
+	map += lut_entries;
+
+	if (ch->id != OPIPE_CH_NO)
+		dcss_hdr10_write(ch, *map, DCSS_HDR10_FL2FX);
+	else
+		dcss_hdr10_write(ch, *map, ctrl_ofs);
+}
+
+static int dcss_hdr10_ch_init_all(struct dcss_hdr10 *hdr10,
+				  unsigned long hdr10_base)
+{
+	struct dcss_hdr10_ch *ch;
+	int i;
+
+	for (i = 0; i < 4; i++) {
+		ch = &hdr10->ch[i];
+
+		ch->base_ofs = hdr10_base + i * 0x4000;
+
+		ch->base_reg = devm_ioremap(hdr10->dev, ch->base_ofs, SZ_16K);
+		if (!ch->base_reg) {
+			dev_err(hdr10->dev, "hdr10: unable to remap ch base\n");
+			return -ENOMEM;
+		}
+
+		ch->old_cfg_desc = HDR10_DESC_INVALID;
+
+		ch->id = i;
+		ch->hdr10 = hdr10;
+	}
+
+	return 0;
+}
+
+static u32 *dcss_hdr10_find_tbl(u64 desc, struct list_head *head)
+{
+	struct list_head *node;
+	struct dcss_hdr10_tbl_node *tbl_node;
+
+	list_for_each(node, head) {
+		tbl_node = container_of(node, struct dcss_hdr10_tbl_node, node);
+
+		if ((tbl_node->tbl_descriptor & desc) == desc)
+			return tbl_node->tbl_data;
+	}
+
+	return NULL;
+}
+
+static int dcss_hdr10_get_tbls(struct dcss_hdr10 *hdr10, bool input,
+			       u64 desc, u32 **lut, u32 **csca, u32 **cscb)
+{
+	struct list_head *lut_list, *csca_list, *cscb_list;
+
+	lut_list = input ? &hdr10->ipipe_tbls->lut : &hdr10->opipe_tbls->lut;
+	csca_list = input ? &hdr10->ipipe_tbls->csca : &hdr10->opipe_tbls->csc;
+	cscb_list = input ? &hdr10->ipipe_tbls->cscb : NULL;
+
+	*lut = dcss_hdr10_find_tbl(desc, lut_list);
+	*csca = dcss_hdr10_find_tbl(desc, csca_list);
+
+	*cscb = NULL;
+	if (cscb_list)
+		*cscb = dcss_hdr10_find_tbl(desc, cscb_list);
+
+	return 0;
+}
+
+static void dcss_hdr10_write_pipe_tbls(struct dcss_hdr10_ch *ch,
+				       u32 *lut, u32 *csca, u32 *cscb)
+{
+	if (csca)
+		dcss_hdr10_csc_fill(ch, HDR10_CSCA, csca);
+
+	if (ch->id != OPIPE_CH_NO && cscb)
+		dcss_hdr10_csc_fill(ch, HDR10_CSCB, cscb);
+
+	if (lut)
+		dcss_hdr10_lut_fill(ch, lut);
+}
+
+static int dcss_hdr10_tbl_add(struct dcss_hdr10 *hdr10, u64 desc, u32 sz,
+			      u32 *data)
+{
+	struct device *dev = hdr10->dev;
+	struct dcss_hdr10_tbl_node *node;
+
+	node = devm_kzalloc(dev, sizeof(*node), GFP_KERNEL);
+	if (!node)
+		return -ENOMEM;
+
+	/* we don't need to store the table type and pipe type */
+	node->tbl_descriptor = desc >> 4;
+	node->tbl_data = data;
+
+	if (!(desc & HDR10_PT_OUTPUT)) {
+		if (desc & HDR10_TT_LUT)
+			list_add(&node->node, &hdr10->ipipe_tbls->lut);
+		else if (desc & HDR10_TT_CSCA)
+			list_add(&node->node, &hdr10->ipipe_tbls->csca);
+		else if (desc & HDR10_TT_CSCB)
+			list_add(&node->node, &hdr10->ipipe_tbls->cscb);
+
+		return 0;
+	}
+
+	if (desc & HDR10_TT_LUT)
+		list_add(&node->node, &hdr10->opipe_tbls->lut);
+	else if (desc & HDR10_TT_CSCA)
+		list_add(&node->node, &hdr10->opipe_tbls->csc);
+
+	return 0;
+}
+
+static int dcss_hdr10_parse_fw_data(struct dcss_hdr10 *hdr10)
+{
+	u32 *data = (u32 *)hdr10->fw_data;
+	u32 remaining = hdr10->fw_size / sizeof(u32);
+	u64 tbl_desc;
+	u32 tbl_size;
+	int ret;
+
+	while (remaining) {
+		tbl_desc = *((u64 *)data);
+		data += 2;
+		tbl_size = *data++;
+
+		ret = dcss_hdr10_tbl_add(hdr10, tbl_desc, tbl_size, data);
+		if (ret)
+			return ret;
+
+		data += tbl_size;
+		remaining -= tbl_size + 3;
+	}
+
+	return 0;
+}
+
+static void dcss_hdr10_cleanup_tbls(struct dcss_hdr10 *hdr10)
+{
+	int i;
+	struct dcss_hdr10_tbl_node *tbl_node, *next;
+	struct list_head *tbls[] = {
+		&hdr10->ipipe_tbls->lut,
+		&hdr10->ipipe_tbls->csca,
+		&hdr10->ipipe_tbls->cscb,
+		&hdr10->opipe_tbls->lut,
+		&hdr10->opipe_tbls->csc,
+	};
+
+	for (i = 0; i < 5; i++) {
+		list_for_each_entry_safe(tbl_node, next, tbls[i], node) {
+			list_del(&tbl_node->node);
+			devm_kfree(hdr10->dev, tbl_node);
+		}
+	}
+
+	devm_kfree(hdr10->dev, hdr10->opipe_tbls);
+	devm_kfree(hdr10->dev, hdr10->ipipe_tbls);
+}
+
+#ifndef USE_TBL_HEADER
+static void dcss_hdr10_fw_handler(const struct firmware *fw, void *context)
+{
+	struct dcss_hdr10 *hdr10 = context;
+	int i;
+
+	if (!fw) {
+		dev_err(hdr10->dev, "hdr10: DCSS FW load failed.\n");
+		return;
+	}
+
+	/* we need to keep the tables for the entire life of the driver */
+	hdr10->fw_data = devm_kzalloc(hdr10->dev, fw->size, GFP_KERNEL);
+	if (!hdr10->fw_data)
+		return;
+
+	memcpy(hdr10->fw_data, fw->data, fw->size);
+	hdr10->fw_size = fw->size;
+
+	release_firmware(fw);
+
+	if (dcss_hdr10_parse_fw_data(hdr10)) {
+		dcss_hdr10_cleanup_tbls(hdr10);
+		return;
+	}
+
+	for (i = 0; i < 4; i++) {
+		u32 *lut, *csca, *cscb;
+		struct dcss_hdr10_ch *ch = &hdr10->ch[i];
+		bool is_input_pipe = i != OPIPE_CH_NO ? true : false;
+
+		if (ch->old_cfg_desc != HDR10_DESC_INVALID) {
+			dcss_hdr10_get_tbls(hdr10, is_input_pipe,
+					    ch->old_cfg_desc, &lut,
+					    &csca, &cscb);
+			dcss_hdr10_write_pipe_tbls(ch, lut, csca, cscb);
+		}
+	}
+
+	dev_info(hdr10->dev, "hdr10: DCSS FW loaded successfully\n");
+}
+#endif
+
+static int dcss_hdr10_tbls_init(struct dcss_hdr10 *hdr10)
+{
+	struct device *dev = hdr10->dev;
+
+	hdr10->ipipe_tbls = devm_kzalloc(dev, sizeof(*hdr10->ipipe_tbls),
+					 GFP_KERNEL);
+	if (!hdr10->ipipe_tbls)
+		return -ENOMEM;
+
+	INIT_LIST_HEAD(&hdr10->ipipe_tbls->lut);
+	INIT_LIST_HEAD(&hdr10->ipipe_tbls->csca);
+	INIT_LIST_HEAD(&hdr10->ipipe_tbls->cscb);
+
+	hdr10->opipe_tbls = devm_kzalloc(dev, sizeof(*hdr10->opipe_tbls),
+					 GFP_KERNEL);
+	if (!hdr10->opipe_tbls) {
+		devm_kfree(dev, hdr10->ipipe_tbls);
+		return -ENOMEM;
+	}
+
+	INIT_LIST_HEAD(&hdr10->opipe_tbls->lut);
+	INIT_LIST_HEAD(&hdr10->opipe_tbls->csc);
+
+	return 0;
+}
+
+int dcss_hdr10_init(struct dcss_dev *dcss, unsigned long hdr10_base)
+{
+	int ret;
+	struct dcss_hdr10 *hdr10;
+
+	hdr10 = devm_kzalloc(dcss->dev, sizeof(*hdr10), GFP_KERNEL);
+	if (!hdr10)
+		return -ENOMEM;
+
+	dcss->hdr10 = hdr10;
+	hdr10->dev = dcss->dev;
+	hdr10->ctx_id = CTX_SB_HP;
+	hdr10->ctxld = dcss->ctxld;
+
+	ret = dcss_hdr10_tbls_init(hdr10);
+	if (ret < 0) {
+		dev_err(dcss->dev, "hdr10: Cannot init table lists.\n");
+		goto cleanup;
+	}
+
+#ifndef USE_TBL_HEADER
+	ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG, "dcss.fw",
+				      dcss->dev, GFP_KERNEL, hdr10,
+				      dcss_hdr10_fw_handler);
+	if (ret < 0) {
+		dev_err(dcss->dev, "hdr10: Cannot async load DCSS FW.\n");
+		goto cleanup_tbls;
+	}
+#else
+	hdr10->fw_data = (u8 *)dcss_hdr10_tables;
+	hdr10->fw_size = sizeof(dcss_hdr10_tables);
+
+	ret = dcss_hdr10_parse_fw_data(hdr10);
+	if (ret)
+		goto cleanup_tbls;
+#endif
+
+	ret = dcss_hdr10_ch_init_all(hdr10, hdr10_base);
+	if (ret) {
+		int i;
+
+		for (i = 0; i < 4; i++) {
+			if (hdr10->ch[i].base_reg)
+				devm_iounmap(hdr10->dev, hdr10->ch[i].base_reg);
+		}
+
+		goto cleanup_tbls;
+	}
+
+	return 0;
+
+cleanup_tbls:
+	dcss_hdr10_cleanup_tbls(hdr10);
+
+cleanup:
+	devm_kfree(hdr10->dev, hdr10);
+
+	return ret;
+}
+
+void dcss_hdr10_exit(struct dcss_hdr10 *hdr10)
+{
+	int i;
+
+	for (i = 0; i < 4; i++) {
+		if (hdr10->ch[i].base_reg)
+			devm_iounmap(hdr10->dev, hdr10->ch[i].base_reg);
+	}
+
+	dcss_hdr10_cleanup_tbls(hdr10);
+
+	devm_kfree(hdr10->dev, hdr10);
+}
+
+static u32 dcss_hdr10_pipe_desc(struct dcss_hdr10_pipe_cfg *pipe_cfg)
+{
+	u32 desc;
+
+	desc = 2 << HDR10_BPC_POS;
+	desc |= pipe_cfg->is_yuv ? 2 << HDR10_CS_POS : 1 << HDR10_CS_POS;
+	desc |= ((1 << pipe_cfg->nl) << HDR10_NL_POS) & HDR10_NL_MASK;
+	desc |= ((1 << pipe_cfg->pr) << HDR10_PR_POS) & HDR10_PR_MASK;
+	desc |= ((1 << pipe_cfg->g) << HDR10_G_POS) & HDR10_G_MASK;
+
+	return desc;
+}
+
+static u64 dcss_hdr10_get_desc(struct dcss_hdr10_pipe_cfg *ipipe_cfg,
+			       struct dcss_hdr10_pipe_cfg *opipe_cfg)
+{
+	u32 ipipe_desc, opipe_desc;
+
+	ipipe_desc = dcss_hdr10_pipe_desc(ipipe_cfg);
+	opipe_desc = dcss_hdr10_pipe_desc(opipe_cfg);
+
+	return (ipipe_desc & 0xFFFF) | ((opipe_desc & 0xFFFF) << 16);
+}
+
+static void dcss_hdr10_pipe_setup(struct dcss_hdr10_ch *ch, u64 desc)
+{
+	bool pipe_cfg_chgd;
+	u32 *csca, *cscb, *lut;
+
+	pipe_cfg_chgd = ch->old_cfg_desc != desc;
+
+	if (!pipe_cfg_chgd)
+		return;
+
+	dcss_hdr10_get_tbls(ch->hdr10, ch->id != OPIPE_CH_NO,
+			    desc, &lut, &csca, &cscb);
+	dcss_hdr10_write_pipe_tbls(ch, lut, csca, cscb);
+
+	ch->old_cfg_desc = desc;
+}
+
+void dcss_hdr10_setup(struct dcss_hdr10 *hdr10, int ch_num,
+		      struct dcss_hdr10_pipe_cfg *ipipe_cfg,
+		      struct dcss_hdr10_pipe_cfg *opipe_cfg)
+{
+	u64 desc = dcss_hdr10_get_desc(ipipe_cfg, opipe_cfg);
+
+	dcss_hdr10_pipe_setup(&hdr10->ch[ch_num], desc);
+
+	/*
+	 * Input pipe configuration doesn't matter for configuring the output
+	 * pipe. So, will just mask off the input part of the descriptor.
+	 */
+	dcss_hdr10_pipe_setup(&hdr10->ch[OPIPE_CH_NO], desc & ~0xffff);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-kms.c
@@ -0,0 +1,430 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_drv.h>
+#include <drm/drm_fb_helper.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_of.h>
+#include <drm/drm_probe_helper.h>
+#include <drm/drm_vblank.h>
+#include <linux/component.h>
+
+#include "dcss-dev.h"
+#include "dcss-kms.h"
+
+DEFINE_DRM_GEM_CMA_FOPS(dcss_cma_fops);
+
+struct dcss_drm_commit {
+	struct work_struct work;
+	struct drm_device *drm;
+	struct drm_atomic_state *state;
+};
+
+static void dcss_kms_setup_opipe_gamut(u32 colorspace,
+				       const struct drm_display_mode *mode,
+				       enum dcss_hdr10_gamut *g,
+				       enum dcss_hdr10_nonlinearity *nl)
+{
+	u8 vic;
+
+	switch (colorspace) {
+	case DRM_MODE_COLORIMETRY_BT709_YCC:
+	case DRM_MODE_COLORIMETRY_XVYCC_709:
+		*g = G_REC709;
+		*nl = NL_REC709;
+		return;
+	case DRM_MODE_COLORIMETRY_SMPTE_170M_YCC:
+	case DRM_MODE_COLORIMETRY_XVYCC_601:
+	case DRM_MODE_COLORIMETRY_SYCC_601:
+	case DRM_MODE_COLORIMETRY_OPYCC_601:
+		*g = G_REC601_NTSC;
+		*nl = NL_REC709;
+		return;
+	case DRM_MODE_COLORIMETRY_BT2020_CYCC:
+	case DRM_MODE_COLORIMETRY_BT2020_RGB:
+	case DRM_MODE_COLORIMETRY_BT2020_YCC:
+		*g = G_REC2020;
+		*nl = NL_REC2084;
+		return;
+	case DRM_MODE_COLORIMETRY_OPRGB:
+		*g = G_ADOBE_ARGB;
+		*nl = NL_SRGB;
+		return;
+	default:
+		break;
+	}
+
+	/*
+	 * If we reached this point, it means the default colorimetry is used.
+	 */
+
+	/* non-CEA mode, sRGB is used */
+	vic = drm_match_cea_mode(mode);
+	if (vic == 0) {
+		*g = G_ADOBE_ARGB;
+		*nl = NL_SRGB;
+		return;
+	}
+
+	if (mode->vdisplay == 480 || mode->vdisplay == 576 ||
+	    mode->vdisplay == 240 || mode->vdisplay == 288) {
+		*g = G_REC601_NTSC;
+		*nl = NL_REC709;
+		return;
+	}
+
+	/* 2160p, 1080p, 720p */
+	*g = G_REC709;
+	*nl = NL_REC709;
+}
+
+#define YUV_MODE		BIT(0)
+
+void dcss_kms_setup_opipe(struct drm_connector_state *conn_state)
+{
+	struct drm_crtc *crtc = conn_state->crtc;
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	int mode_flags = crtc->state->adjusted_mode.private_flags;
+	enum hdmi_quantization_range qr;
+
+	qr = drm_default_rgb_quant_range(&crtc->state->adjusted_mode);
+
+	dcss_kms_setup_opipe_gamut(conn_state->colorspace,
+				   &crtc->state->adjusted_mode,
+				   &dcss_crtc->opipe_g,
+				   &dcss_crtc->opipe_nl);
+
+	dcss_crtc->opipe_pr = qr == HDMI_QUANTIZATION_RANGE_FULL ? PR_FULL :
+								   PR_LIMITED;
+
+	dcss_crtc->output_is_yuv = !!(mode_flags & YUV_MODE);
+}
+
+static void dcss_kms_setup_output_pipe(struct drm_atomic_state *state)
+{
+	struct drm_crtc *crtc;
+	struct drm_connector *connector;
+	struct drm_connector_state *conn_state;
+	struct drm_display_info *di;
+	int i;
+
+	for_each_new_connector_in_state(state, connector, conn_state, i) {
+		if (!conn_state->best_encoder)
+			continue;
+
+		if (!conn_state->crtc->state->active ||
+		    !drm_atomic_crtc_needs_modeset(conn_state->crtc->state))
+			continue;
+
+		crtc = connector->state->crtc;
+		di = &connector->display_info;
+
+		dcss_kms_setup_opipe(conn_state);
+	}
+}
+
+static void dcss_drm_atomic_commit_tail(struct dcss_drm_commit *commit)
+{
+	struct drm_atomic_state *state = commit->state;
+	struct drm_device *drm = commit->drm;
+	struct dcss_kms_dev *kms = container_of(drm, struct dcss_kms_dev, base);
+
+	drm_atomic_helper_wait_for_fences(drm, state, false);
+
+	drm_atomic_helper_wait_for_dependencies(state);
+
+	drm_atomic_helper_commit_modeset_disables(drm, state);
+
+	dcss_kms_setup_output_pipe(state);
+
+	drm_atomic_helper_commit_modeset_enables(drm, state);
+
+	drm_atomic_helper_commit_planes(drm, state,
+					DRM_PLANE_COMMIT_ACTIVE_ONLY);
+
+	drm_atomic_helper_commit_hw_done(state);
+
+	drm_atomic_helper_wait_for_vblanks(drm, state);
+
+	drm_atomic_helper_cleanup_planes(drm, state);
+
+	drm_atomic_helper_commit_cleanup_done(state);
+
+	drm_atomic_state_put(state);
+
+	spin_lock(&kms->commit.wait.lock);
+	kms->commit.pending = false;
+	wake_up_all_locked(&kms->commit.wait);
+	spin_unlock(&kms->commit.wait.lock);
+
+	kfree(commit);
+}
+
+static void dcss_commit_work(struct work_struct *work)
+{
+	struct dcss_drm_commit *commit = container_of(work,
+						      struct dcss_drm_commit,
+						      work);
+
+	dcss_drm_atomic_commit_tail(commit);
+}
+
+static int dcss_drm_atomic_commit(struct drm_device *drm,
+				  struct drm_atomic_state *state,
+				  bool nonblock)
+{
+	int ret;
+	struct dcss_kms_dev *kms = container_of(drm, struct dcss_kms_dev, base);
+	struct dcss_drm_commit *commit;
+
+	if (state->async_update) {
+		ret = drm_atomic_helper_prepare_planes(drm, state);
+		if (ret)
+			return ret;
+
+		drm_atomic_helper_async_commit(drm, state);
+		drm_atomic_helper_cleanup_planes(drm, state);
+
+		return 0;
+	}
+
+	commit = kzalloc(sizeof(*commit), GFP_KERNEL);
+	if (!commit)
+		return -ENOMEM;
+
+	commit->drm = drm;
+	commit->state = state;
+
+	ret = drm_atomic_helper_setup_commit(state, nonblock);
+	if (ret)
+		goto err_free;
+
+	INIT_WORK(&commit->work, dcss_commit_work);
+
+	ret = drm_atomic_helper_prepare_planes(drm, state);
+	if (ret)
+		goto err_free;
+
+	if (!nonblock) {
+		ret = drm_atomic_helper_wait_for_fences(drm, state, true);
+		if (ret)
+			goto err;
+	}
+
+	spin_lock(&kms->commit.wait.lock);
+	ret = wait_event_interruptible_locked(kms->commit.wait,
+					      !kms->commit.pending);
+	if (ret == 0)
+		kms->commit.pending = true;
+	spin_unlock(&kms->commit.wait.lock);
+
+	if (ret)
+		goto err;
+
+	ret = drm_atomic_helper_swap_state(state, true);
+	if (ret)
+		goto err;
+
+	drm_atomic_state_get(state);
+	if (nonblock)
+		queue_work(kms->commit_wq, &commit->work);
+	else
+		dcss_drm_atomic_commit_tail(commit);
+
+	return 0;
+
+err:
+	drm_atomic_helper_cleanup_planes(drm, state);
+
+err_free:
+	kfree(commit);
+	return ret;
+}
+
+const struct drm_mode_config_funcs dcss_drm_mode_config_funcs = {
+	.fb_create = drm_gem_fb_create,
+	.output_poll_changed = drm_fb_helper_output_poll_changed,
+	.atomic_check = drm_atomic_helper_check,
+	.atomic_commit = dcss_drm_atomic_commit,
+};
+
+static struct drm_driver dcss_kms_driver = {
+	.driver_features	= DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC,
+	.gem_free_object_unlocked = drm_gem_cma_free_object,
+	.gem_vm_ops		= &drm_gem_cma_vm_ops,
+	.dumb_create		= drm_gem_cma_dumb_create,
+
+	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
+	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
+	.gem_prime_import	= drm_gem_prime_import,
+	.gem_prime_export	= drm_gem_prime_export,
+	.gem_prime_get_sg_table	= drm_gem_cma_prime_get_sg_table,
+	.gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
+	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
+	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
+	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
+	.fops			= &dcss_cma_fops,
+	.name			= "imx-dcss",
+	.desc			= "i.MX8MQ Display Subsystem",
+	.date			= "20190917",
+	.major			= 1,
+	.minor			= 0,
+	.patchlevel		= 0,
+};
+
+static const struct drm_mode_config_helper_funcs dcss_mode_config_helpers = {
+	.atomic_commit_tail = drm_atomic_helper_commit_tail_rpm,
+};
+
+static void dcss_kms_mode_config_init(struct dcss_kms_dev *kms)
+{
+	struct drm_mode_config *config = &kms->base.mode_config;
+
+	drm_mode_config_init(&kms->base);
+
+	config->min_width = 1;
+	config->min_height = 1;
+	config->max_width = 4096;
+	config->max_height = 4096;
+	config->allow_fb_modifiers = true;
+	config->normalize_zpos = true;
+
+	config->funcs = &dcss_drm_mode_config_funcs;
+	config->helper_private = &dcss_mode_config_helpers;
+}
+
+static const struct drm_encoder_funcs dcss_kms_simple_encoder_funcs = {
+	.destroy = drm_encoder_cleanup,
+};
+
+static int dcss_kms_setup_encoder(struct dcss_kms_dev *kms)
+{
+	struct drm_device *ddev = &kms->base;
+	struct drm_encoder *encoder = &kms->encoder;
+	struct drm_crtc *crtc = (struct drm_crtc *)&kms->crtc;
+	struct drm_panel *panel;
+	struct drm_bridge *bridge;
+	int ret;
+
+	ret = drm_of_find_panel_or_bridge(ddev->dev->of_node, 0, 0,
+					  &panel, &bridge);
+	if (ret)
+		return ret;
+
+	if (!bridge) {
+		dev_err(ddev->dev, "No bridge found %d.\n", ret);
+		return -ENODEV;
+	}
+
+	encoder->possible_crtcs = drm_crtc_mask(crtc);
+
+	ret = drm_encoder_init(&kms->base, encoder,
+			       &dcss_kms_simple_encoder_funcs,
+			       DRM_MODE_ENCODER_NONE, NULL);
+	if (ret) {
+		dev_err(ddev->dev, "Failed initializing encoder %d.\n", ret);
+		return ret;
+	}
+
+	return drm_bridge_attach(encoder, bridge, NULL);
+}
+
+struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss, bool componentized)
+{
+	struct dcss_kms_dev *kms = kzalloc(sizeof(*kms), GFP_KERNEL);
+	struct drm_device *drm;
+	struct dcss_crtc *crtc;
+	int ret;
+
+	if (!kms)
+		return ERR_PTR(-ENOMEM);
+
+	drm = &kms->base;
+	crtc = &kms->crtc;
+	ret = drm_dev_init(drm, &dcss_kms_driver, dcss->dev);
+	if (ret)
+		goto free_kms;
+
+	drm->dev_private = dcss;
+
+	dcss_kms_mode_config_init(kms);
+
+	ret = drm_vblank_init(drm, 1);
+	if (ret)
+		goto cleanup_mode_config;
+
+	drm->irq_enabled = true;
+
+	ret = dcss_crtc_init(crtc, drm);
+	if (ret)
+		goto cleanup_mode_config;
+
+	kms->commit_wq = alloc_ordered_workqueue("dcss_nonblock_commit_wq", 0);
+	if (!kms->commit_wq) {
+		ret = -ENOMEM;
+		goto cleanup_crtc;
+	}
+
+	init_waitqueue_head(&kms->commit.wait);
+
+	if (componentized)
+		ret = component_bind_all(dcss->dev, kms);
+	else
+		ret = dcss_kms_setup_encoder(kms);
+
+	if (ret)
+		goto cleanup_wq;
+
+	drm_mode_config_reset(drm);
+
+	dcss_crtc_attach_color_mgmt_properties(crtc);
+
+	drm_kms_helper_poll_init(drm);
+
+	ret = drm_dev_register(drm, 0);
+	if (ret)
+		goto cleanup_wq;
+
+	drm_fbdev_generic_setup(drm, 32);
+
+	return kms;
+
+cleanup_wq:
+	drm_kms_helper_poll_fini(drm);
+	destroy_workqueue(kms->commit_wq);
+
+cleanup_crtc:
+	dcss_crtc_deinit(crtc, drm);
+
+cleanup_mode_config:
+	drm_mode_config_cleanup(drm);
+
+free_kms:
+	kfree(kms);
+	return ERR_PTR(ret);
+}
+
+void dcss_kms_detach(struct dcss_kms_dev *kms, bool componentized)
+{
+	struct drm_device *drm = &kms->base;
+	struct dcss_dev *dcss = drm->dev_private;
+
+	drm_dev_unregister(drm);
+	drm_kms_helper_poll_fini(drm);
+	drm_atomic_helper_shutdown(drm);
+	drm_crtc_vblank_off(&kms->crtc.base);
+	drm->irq_enabled = false;
+	drm_mode_config_cleanup(drm);
+	destroy_workqueue(kms->commit_wq);
+	dcss_crtc_deinit(&kms->crtc, drm);
+	if (componentized)
+		component_unbind_all(dcss->dev, drm);
+	drm->dev_private = NULL;
+	drm_dev_put(drm);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-kms.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-kms.h
@@ -0,0 +1,64 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2019 NXP.
+ */
+
+#ifndef _DCSS_KMS_H_
+#define _DCSS_KMS_H_
+
+#include <drm/drm_encoder.h>
+
+struct dcss_plane {
+	struct drm_plane base;
+
+	uint64_t dtrc_table_ofs_val;
+	struct drm_property *dtrc_table_ofs_prop;
+
+	int ch_num;
+
+	enum drm_plane_type type;
+	bool use_dtrc;
+};
+
+struct dcss_crtc {
+	struct drm_crtc		base;
+	struct drm_crtc_state	*state;
+
+	struct dcss_plane	*plane[3];
+
+	int			irq;
+	bool			irq_enabled;
+
+	struct completion en_completion;
+	struct completion dis_completion;
+
+	bool output_is_yuv;
+	enum dcss_hdr10_nonlinearity opipe_nl;
+	enum dcss_hdr10_gamut opipe_g;
+	enum dcss_hdr10_pixel_range opipe_pr;
+};
+
+struct commit {
+	wait_queue_head_t wait;
+	bool pending;
+};
+
+struct dcss_kms_dev {
+	struct drm_device base;
+	struct dcss_crtc crtc;
+	struct drm_encoder encoder;
+	struct workqueue_struct *commit_wq;
+	struct commit commit;
+};
+
+struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss, bool componentized);
+void dcss_kms_detach(struct dcss_kms_dev *kms, bool componentized);
+int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm);
+void dcss_crtc_deinit(struct dcss_crtc *crtc, struct drm_device *drm);
+struct dcss_plane *dcss_plane_init(struct drm_device *drm,
+				   unsigned int possible_crtcs,
+				   enum drm_plane_type type,
+				   unsigned int zpos);
+void dcss_crtc_attach_color_mgmt_properties(struct dcss_crtc *crtc);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-plane.c
@@ -0,0 +1,666 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <linux/dma-buf.h>
+#include <drm/drm_drv.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_gem_cma_helper.h>
+
+#include "dcss-dev.h"
+#include "dcss-kms.h"
+
+static const u32 dcss_fb_formats[] = {
+	/* RGB */
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ABGR8888,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_RGBA8888,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_BGRA8888,
+	DRM_FORMAT_BGRX8888,
+	DRM_FORMAT_XRGB2101010,
+	DRM_FORMAT_XBGR2101010,
+	DRM_FORMAT_RGBX1010102,
+	DRM_FORMAT_BGRX1010102,
+	DRM_FORMAT_ARGB2101010,
+	DRM_FORMAT_ABGR2101010,
+	DRM_FORMAT_RGBA1010102,
+	DRM_FORMAT_BGRA1010102,
+
+	/* YUV444 */
+	DRM_FORMAT_AYUV,
+
+	/* YUV422 */
+	DRM_FORMAT_UYVY,
+	DRM_FORMAT_VYUY,
+	DRM_FORMAT_YUYV,
+	DRM_FORMAT_YVYU,
+
+	/* YUV420 */
+	DRM_FORMAT_NV12,
+	DRM_FORMAT_NV21,
+	DRM_FORMAT_NV12_10LE40,
+};
+
+static const u64 dcss_video_format_modifiers[] = {
+	DRM_FORMAT_MOD_VSI_G1_TILED,
+	DRM_FORMAT_MOD_VSI_G2_TILED,
+	DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED,
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID,
+};
+
+static const u64 dcss_graphics_format_modifiers[] = {
+	DRM_FORMAT_MOD_VIVANTE_TILED,
+	DRM_FORMAT_MOD_VIVANTE_SUPER_TILED,
+	DRM_FORMAT_MOD_VIVANTE_SUPER_TILED_FC,
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID,
+};
+
+static inline struct dcss_plane *to_dcss_plane(struct drm_plane *p)
+{
+	return container_of(p, struct dcss_plane, base);
+}
+
+static inline bool dcss_plane_fb_is_linear(const struct drm_framebuffer *fb)
+{
+	return ((fb->flags & DRM_MODE_FB_MODIFIERS) == 0) ||
+	       ((fb->flags & DRM_MODE_FB_MODIFIERS) != 0 &&
+		fb->modifier == DRM_FORMAT_MOD_LINEAR);
+}
+
+static void dcss_plane_destroy(struct drm_plane *plane)
+{
+	struct dcss_plane *dcss_plane = container_of(plane, struct dcss_plane,
+						     base);
+
+	drm_plane_cleanup(plane);
+	kfree(dcss_plane);
+}
+
+static int dcss_plane_atomic_set_property(struct drm_plane *plane,
+					  struct drm_plane_state *state,
+					  struct drm_property *property,
+					  uint64_t val)
+{
+	struct dcss_plane *dcss_plane = to_dcss_plane(plane);
+
+	if (property == dcss_plane->dtrc_table_ofs_prop)
+		dcss_plane->dtrc_table_ofs_val = val;
+	else
+		return -EINVAL;
+
+	return 0;
+}
+
+static int dcss_plane_atomic_get_property(struct drm_plane *plane,
+					  const struct drm_plane_state *state,
+					  struct drm_property *property,
+					  uint64_t *val)
+{
+	struct dcss_plane *dcss_plane = to_dcss_plane(plane);
+
+	if (property == dcss_plane->dtrc_table_ofs_prop)
+		*val = dcss_plane->dtrc_table_ofs_val;
+	else
+		return -EINVAL;
+
+	return 0;
+}
+
+static bool dcss_plane_format_mod_supported(struct drm_plane *plane,
+					    u32 format,
+					    u64 modifier)
+{
+	switch (plane->type) {
+	case DRM_PLANE_TYPE_PRIMARY:
+		switch (format) {
+		case DRM_FORMAT_ARGB8888:
+		case DRM_FORMAT_XRGB8888:
+		case DRM_FORMAT_ARGB2101010:
+			return modifier == DRM_FORMAT_MOD_LINEAR ||
+			       modifier == DRM_FORMAT_MOD_VIVANTE_TILED ||
+			       modifier == DRM_FORMAT_MOD_VIVANTE_SUPER_TILED ||
+			       modifier == DRM_FORMAT_MOD_VIVANTE_SUPER_TILED_FC;
+		default:
+			return modifier == DRM_FORMAT_MOD_LINEAR;
+		}
+		break;
+	case DRM_PLANE_TYPE_OVERLAY:
+		switch (format) {
+		case DRM_FORMAT_NV12:
+		case DRM_FORMAT_NV21:
+		case DRM_FORMAT_NV12_10LE40:
+			return modifier == DRM_FORMAT_MOD_LINEAR ||
+			       modifier == DRM_FORMAT_MOD_VSI_G1_TILED ||
+			       modifier == DRM_FORMAT_MOD_VSI_G2_TILED ||
+			       modifier == DRM_FORMAT_MOD_VSI_G2_TILED_COMPRESSED;
+		default:
+			return modifier == DRM_FORMAT_MOD_LINEAR;
+		}
+		break;
+	default:
+		return false;
+	}
+
+	return false;
+}
+
+static const struct drm_plane_funcs dcss_plane_funcs = {
+	.update_plane		= drm_atomic_helper_update_plane,
+	.disable_plane		= drm_atomic_helper_disable_plane,
+	.destroy		= dcss_plane_destroy,
+	.reset			= drm_atomic_helper_plane_reset,
+	.atomic_duplicate_state	= drm_atomic_helper_plane_duplicate_state,
+	.atomic_destroy_state	= drm_atomic_helper_plane_destroy_state,
+	.atomic_set_property	= dcss_plane_atomic_set_property,
+	.atomic_get_property	= dcss_plane_atomic_get_property,
+	.format_mod_supported	= dcss_plane_format_mod_supported,
+};
+
+static bool dcss_plane_can_rotate(const struct drm_format_info *format,
+				  bool mod_present, u64 modifier,
+				  unsigned int rotation)
+{
+	bool linear_format = !mod_present ||
+			     (mod_present && modifier == DRM_FORMAT_MOD_LINEAR);
+	u32 supported_rotation = DRM_MODE_ROTATE_0;
+
+	if (!format->is_yuv && linear_format)
+		supported_rotation = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
+				     DRM_MODE_REFLECT_MASK;
+	else if (!format->is_yuv &&
+		 modifier == DRM_FORMAT_MOD_VIVANTE_TILED)
+		supported_rotation = DRM_MODE_ROTATE_MASK |
+				     DRM_MODE_REFLECT_MASK;
+	else if (format->is_yuv && linear_format &&
+		 (format->format == DRM_FORMAT_NV12 ||
+		  format->format == DRM_FORMAT_NV21))
+		supported_rotation = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
+				     DRM_MODE_REFLECT_MASK;
+	else if (format->is_yuv && linear_format &&
+		 format->format == DRM_FORMAT_NV12_10LE40)
+		supported_rotation = DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_Y;
+
+	return !!(rotation & supported_rotation);
+}
+
+static bool dcss_plane_is_source_size_allowed(u16 src_w, u16 src_h, u32 pix_fmt)
+{
+	if (src_w < 64 &&
+	    (pix_fmt == DRM_FORMAT_NV12 || pix_fmt == DRM_FORMAT_NV21 ||
+	     pix_fmt == DRM_FORMAT_NV12_10LE40))
+		return false;
+	else if (src_w < 32 &&
+		 (pix_fmt == DRM_FORMAT_UYVY || pix_fmt == DRM_FORMAT_VYUY ||
+		  pix_fmt == DRM_FORMAT_YUYV || pix_fmt == DRM_FORMAT_YVYU))
+		return false;
+
+	return src_w >= 16 && src_h >= 8;
+}
+
+static inline bool dcss_plane_use_dtrc(struct drm_framebuffer *fb,
+				       enum drm_plane_type type)
+{
+	u64 pix_format = fb->format->format;
+
+	return !dcss_plane_fb_is_linear(fb) &&
+		type == DRM_PLANE_TYPE_OVERLAY &&
+		(pix_format == DRM_FORMAT_NV12 ||
+		pix_format == DRM_FORMAT_NV21 ||
+		pix_format == DRM_FORMAT_NV12_10LE40);
+}
+
+static int dcss_plane_atomic_check(struct drm_plane *plane,
+				   struct drm_plane_state *state)
+{
+	struct dcss_plane *dcss_plane = to_dcss_plane(plane);
+	struct dcss_dev *dcss = plane->dev->dev_private;
+	struct drm_framebuffer *fb = state->fb;
+	bool is_primary_plane = plane->type == DRM_PLANE_TYPE_PRIMARY;
+	struct drm_gem_cma_object *cma_obj;
+	struct drm_crtc_state *crtc_state;
+	int hdisplay, vdisplay;
+	int min, max;
+	int ret;
+
+	if (!fb || !state->crtc)
+		return 0;
+
+	cma_obj = drm_fb_cma_get_gem_obj(fb, 0);
+	WARN_ON(!cma_obj);
+
+	crtc_state = drm_atomic_get_existing_crtc_state(state->state,
+							state->crtc);
+
+	hdisplay = crtc_state->adjusted_mode.hdisplay;
+	vdisplay = crtc_state->adjusted_mode.vdisplay;
+
+	if (!dcss_plane_is_source_size_allowed(state->src_w >> 16,
+					       state->src_h >> 16,
+					       fb->format->format)) {
+		DRM_DEBUG_KMS("Source plane size is not allowed!\n");
+		return -EINVAL;
+	}
+
+	dcss_scaler_get_min_max_ratios(dcss->scaler, dcss_plane->ch_num,
+				       &min, &max);
+
+	ret = drm_atomic_helper_check_plane_state(state, crtc_state,
+						  min, max, !is_primary_plane,
+						  false);
+	if (ret)
+		return ret;
+
+	if (!state->visible)
+		return 0;
+
+	if (!dcss_plane_can_rotate(fb->format,
+				   !!(fb->flags & DRM_MODE_FB_MODIFIERS),
+				   fb->modifier,
+				   state->rotation)) {
+		DRM_DEBUG_KMS("requested rotation is not allowed!\n");
+		return -EINVAL;
+	}
+
+	if ((fb->flags & DRM_MODE_FB_MODIFIERS) &&
+	    !plane->funcs->format_mod_supported(plane,
+				fb->format->format,
+				fb->modifier)) {
+		DRM_DEBUG_KMS("Invalid modifier: %llx", fb->modifier);
+		return -EINVAL;
+	}
+
+	dcss_plane->use_dtrc = dcss_plane_use_dtrc(fb, plane->type);
+
+	return 0;
+}
+
+static struct drm_gem_object *dcss_plane_gem_import(struct drm_device *dev,
+						    struct dma_buf *dma_buf)
+{
+	struct drm_gem_object *obj;
+
+	if (IS_ERR(dma_buf))
+		return ERR_CAST(dma_buf);
+
+	mutex_lock(&dev->object_name_lock);
+
+	obj = dev->driver->gem_prime_import(dev, dma_buf);
+
+	mutex_unlock(&dev->object_name_lock);
+
+	return obj;
+}
+
+static void dcss_plane_set_primary_base(struct dcss_plane *dcss_plane,
+					u32 baddr)
+{
+	struct drm_plane *plane = &dcss_plane->base;
+	struct dcss_dev *dcss = plane->dev->dev_private;
+	struct drm_plane_state *state = plane->state;
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *cma_obj = drm_fb_cma_get_gem_obj(fb, 0);
+	struct dma_buf *dma_buf = cma_obj->base.dma_buf;
+	struct drm_gem_object *gem_obj;
+	dma_addr_t caddr;
+	bool compressed = true;
+	u32 compressed_format = _VIV_CFMT_ARGB8;
+	_VIV_VIDMEM_METADATA *mdata;
+
+	if (dcss_plane_fb_is_linear(fb) ||
+	    ((fb->flags & DRM_MODE_FB_MODIFIERS) &&
+	     (fb->modifier == DRM_FORMAT_MOD_VIVANTE_TILED ||
+	      fb->modifier == DRM_FORMAT_MOD_VIVANTE_SUPER_TILED))) {
+		dcss_dec400d_bypass(dcss->dec400d);
+		return;
+	}
+
+	if (!dma_buf) {
+		caddr = cma_obj->paddr + ALIGN(fb->height, 64) * fb->pitches[0];
+	} else {
+		mdata = dma_buf->priv;
+		if (!mdata || mdata->magic != VIV_VIDMEM_METADATA_MAGIC)
+			return;
+
+		gem_obj = dcss_plane_gem_import(plane->dev, mdata->ts_dma_buf);
+		if (IS_ERR(gem_obj))
+			return;
+
+		caddr = to_drm_gem_cma_obj(gem_obj)->paddr;
+
+		/* release gem_obj */
+		drm_gem_object_put_unlocked(gem_obj);
+
+		dcss_dec400d_fast_clear_config(dcss->dec400d, mdata->fc_value,
+					       mdata->fc_enabled);
+
+		compressed = !!mdata->compressed;
+		compressed_format = mdata->compress_format;
+	}
+
+	dcss_dec400d_read_config(dcss->dec400d, 0, compressed,
+				 compressed_format);
+	dcss_dec400d_addr_set(dcss->dec400d, baddr, caddr);
+}
+
+static void dcss_plane_set_dtrc_base(struct dcss_plane *dcss_plane,
+				     u32 p1_ba, u32 p2_ba)
+{
+	struct drm_plane *plane = &dcss_plane->base;
+	struct dcss_dev *dcss = plane->dev->dev_private;
+
+	if (!dcss_plane->use_dtrc) {
+		dcss_dtrc_bypass(dcss->dtrc, dcss_plane->ch_num);
+		return;
+	}
+
+	dcss_dtrc_addr_set(dcss->dtrc, dcss_plane->ch_num,
+			   p1_ba, p2_ba, dcss_plane->dtrc_table_ofs_val);
+}
+
+static void dcss_plane_atomic_set_base(struct dcss_plane *dcss_plane)
+{
+	struct drm_plane *plane = &dcss_plane->base;
+	struct drm_plane_state *state = plane->state;
+	struct dcss_dev *dcss = plane->dev->dev_private;
+	struct drm_framebuffer *fb = state->fb;
+	const struct drm_format_info *format = fb->format;
+	struct drm_gem_cma_object *cma_obj = drm_fb_cma_get_gem_obj(fb, 0);
+	unsigned long p1_ba = 0, p2_ba = 0;
+	u16 x1, y1;
+
+	x1 = state->src.x1 >> 16;
+	y1 = state->src.y1 >> 16;
+
+	if (!format->is_yuv ||
+	    format->format == DRM_FORMAT_NV12 ||
+	    format->format == DRM_FORMAT_NV21)
+		p1_ba = cma_obj->paddr + fb->offsets[0] +
+			fb->pitches[0] * y1 +
+			format->char_per_block[0] * x1;
+	else if (format->format == DRM_FORMAT_NV12_10LE40)
+		p1_ba = cma_obj->paddr + fb->offsets[0] +
+			fb->pitches[0] * y1 +
+			format->char_per_block[0] * (x1 >> 2);
+	else if (format->format == DRM_FORMAT_UYVY ||
+		 format->format == DRM_FORMAT_VYUY ||
+		 format->format == DRM_FORMAT_YUYV ||
+		 format->format == DRM_FORMAT_YVYU)
+		p1_ba = cma_obj->paddr + fb->offsets[0] +
+			fb->pitches[0] * y1 +
+			2 * format->char_per_block[0] * (x1 >> 1);
+
+	if (format->format == DRM_FORMAT_NV12 ||
+	    format->format == DRM_FORMAT_NV21)
+		p2_ba = cma_obj->paddr + fb->offsets[1] +
+			(((fb->pitches[1] >> 1) * (y1 >> 1) +
+			(x1 >> 1)) << 1);
+	else if (format->format == DRM_FORMAT_NV12_10LE40)
+		p2_ba = cma_obj->paddr + fb->offsets[1] +
+			(((fb->pitches[1] >> 1) * (y1 >> 1)) << 1) +
+			format->char_per_block[1] * (x1 >> 2);
+
+	dcss_dpr_addr_set(dcss->dpr, dcss_plane->ch_num, p1_ba, p2_ba,
+			  fb->pitches[0]);
+
+	if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+		dcss_plane_set_primary_base(dcss_plane, p1_ba);
+	else
+		dcss_plane_set_dtrc_base(dcss_plane,
+					 cma_obj->paddr + fb->offsets[0],
+					 cma_obj->paddr + fb->offsets[1]);
+}
+
+static bool dcss_plane_needs_setup(struct drm_plane_state *state,
+				   struct drm_plane_state *old_state)
+{
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_framebuffer *old_fb = old_state->fb;
+
+	return state->crtc_x != old_state->crtc_x ||
+	       state->crtc_y != old_state->crtc_y ||
+	       state->crtc_w != old_state->crtc_w ||
+	       state->crtc_h != old_state->crtc_h ||
+	       state->src_x  != old_state->src_x  ||
+	       state->src_y  != old_state->src_y  ||
+	       state->src_w  != old_state->src_w  ||
+	       state->src_h  != old_state->src_h  ||
+	       fb->format->format != old_fb->format->format ||
+	       fb->modifier  != old_fb->modifier ||
+	       state->rotation != old_state->rotation;
+}
+
+static void dcss_plane_setup_hdr10_pipes(struct drm_plane *plane)
+{
+	struct dcss_dev *dcss = plane->dev->dev_private;
+	struct dcss_plane *dcss_plane = to_dcss_plane(plane);
+	struct drm_plane_state *state = plane->state;
+	struct drm_crtc *crtc = state->crtc;
+	struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc,
+						   base);
+	struct drm_framebuffer *fb = state->fb;
+	struct dcss_hdr10_pipe_cfg ipipe_cfg, opipe_cfg;
+
+	opipe_cfg.is_yuv = dcss_crtc->output_is_yuv;
+	opipe_cfg.g = dcss_crtc->opipe_g;
+	opipe_cfg.nl = dcss_crtc->opipe_nl;
+	opipe_cfg.pr = dcss_crtc->opipe_pr;
+
+	ipipe_cfg.is_yuv = fb->format->is_yuv;
+
+	if (!fb->format->is_yuv) {
+		ipipe_cfg.nl = NL_SRGB;
+		ipipe_cfg.pr = PR_FULL;
+		ipipe_cfg.g = G_ADOBE_ARGB;
+		goto setup;
+	}
+
+	switch (state->color_encoding) {
+	case DRM_COLOR_YCBCR_BT709:
+		ipipe_cfg.nl = NL_REC709;
+		ipipe_cfg.g = G_REC709;
+		break;
+
+	case DRM_COLOR_YCBCR_BT2020:
+		ipipe_cfg.nl = NL_REC2084;
+		ipipe_cfg.g = G_REC2020;
+		break;
+
+	default:
+		ipipe_cfg.nl = NL_REC709;
+		ipipe_cfg.g = G_REC601_PAL;
+		break;
+	}
+
+	ipipe_cfg.pr = state->color_range;
+
+setup:
+	dcss_hdr10_setup(dcss->hdr10, dcss_plane->ch_num,
+			 &ipipe_cfg, &opipe_cfg);
+}
+
+static void dcss_plane_atomic_update(struct drm_plane *plane,
+				     struct drm_plane_state *old_state)
+{
+	struct drm_plane_state *state = plane->state;
+	struct dcss_plane *dcss_plane = to_dcss_plane(plane);
+	struct dcss_dev *dcss = plane->dev->dev_private;
+	struct drm_framebuffer *fb = state->fb;
+	u32 pixel_format;
+	struct drm_crtc_state *crtc_state;
+	bool modifiers_present;
+	u32 src_w, src_h, dst_w, dst_h;
+	struct drm_rect src, dst;
+	bool enable = true;
+
+	if (!fb || !state->crtc || !state->visible)
+		return;
+
+	pixel_format = fb->format->format;
+	crtc_state = state->crtc->state;
+	modifiers_present = !!(fb->flags & DRM_MODE_FB_MODIFIERS);
+
+	if (old_state->fb && !drm_atomic_crtc_needs_modeset(crtc_state) &&
+	    !dcss_plane_needs_setup(state, old_state) &&
+	    !dcss_dtg_global_alpha_changed(dcss->dtg, dcss_plane->ch_num,
+					   state->alpha >> 8)) {
+		dcss_plane_atomic_set_base(dcss_plane);
+		if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+			dcss_dec400d_shadow_trig(dcss->dec400d);
+		return;
+	}
+
+	src = plane->state->src;
+	dst = plane->state->dst;
+
+	/*
+	 * The width and height after clipping.
+	 */
+	src_w = drm_rect_width(&src) >> 16;
+	src_h = drm_rect_height(&src) >> 16;
+	dst_w = drm_rect_width(&dst);
+	dst_h = drm_rect_height(&dst);
+
+	dcss_dpr_format_set(dcss->dpr, dcss_plane->ch_num, state->fb->format,
+			    modifiers_present ? fb->modifier :
+						DRM_FORMAT_MOD_LINEAR);
+
+	if (dcss_plane->use_dtrc) {
+		u32 dtrc_w, dtrc_h;
+
+		dcss_dtrc_set_res(dcss->dtrc, dcss_plane->ch_num, state,
+				  &dtrc_w, &dtrc_h);
+		dcss_dpr_set_res(dcss->dpr, dcss_plane->ch_num, dtrc_w, dtrc_h);
+	} else {
+		dcss_dpr_set_res(dcss->dpr, dcss_plane->ch_num, src_w, src_h);
+	}
+
+	dcss_dpr_set_rotation(dcss->dpr, dcss_plane->ch_num,
+			      state->rotation);
+
+	dcss_plane_atomic_set_base(dcss_plane);
+
+	dcss_scaler_setup(dcss->scaler, dcss_plane->ch_num,
+			  state->fb->format, src_w, src_h,
+			  dst_w, dst_h,
+			  drm_mode_vrefresh(&crtc_state->mode));
+
+	dcss_plane_setup_hdr10_pipes(plane);
+
+	dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num,
+			       dst.x1, dst.y1, dst_w, dst_h);
+	dcss_dtg_plane_alpha_set(dcss->dtg, dcss_plane->ch_num,
+				 fb->format, state->alpha >> 8);
+
+	if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+		dcss_dec400d_enable(dcss->dec400d);
+	else if (dcss_plane->use_dtrc)
+		dcss_dtrc_enable(dcss->dtrc, dcss_plane->ch_num, true);
+
+	if (!dcss_plane->ch_num && (state->alpha >> 8) == 0)
+		enable = false;
+
+	dcss_dpr_enable(dcss->dpr, dcss_plane->ch_num, enable);
+	dcss_scaler_ch_enable(dcss->scaler, dcss_plane->ch_num, enable);
+
+	if (!enable)
+		dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num,
+				       0, 0, 0, 0);
+
+	dcss_dtg_ch_enable(dcss->dtg, dcss_plane->ch_num, enable);
+}
+
+static void dcss_plane_atomic_disable(struct drm_plane *plane,
+				      struct drm_plane_state *old_state)
+{
+	struct dcss_plane *dcss_plane = to_dcss_plane(plane);
+	struct dcss_dev *dcss = plane->dev->dev_private;
+
+	if (dcss_plane->use_dtrc)
+		dcss_dtrc_enable(dcss->dtrc, dcss_plane->ch_num, false);
+	dcss_dpr_enable(dcss->dpr, dcss_plane->ch_num, false);
+	dcss_scaler_ch_enable(dcss->scaler, dcss_plane->ch_num, false);
+	dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, 0, 0, 0, 0);
+	dcss_dtg_ch_enable(dcss->dtg, dcss_plane->ch_num, false);
+}
+
+static const struct drm_plane_helper_funcs dcss_plane_helper_funcs = {
+	.prepare_fb = drm_gem_fb_prepare_fb,
+	.atomic_check = dcss_plane_atomic_check,
+	.atomic_update = dcss_plane_atomic_update,
+	.atomic_disable = dcss_plane_atomic_disable,
+};
+
+struct dcss_plane *dcss_plane_init(struct drm_device *drm,
+				   unsigned int possible_crtcs,
+				   enum drm_plane_type type,
+				   unsigned int zpos)
+{
+	struct dcss_plane *dcss_plane;
+	const u64 *format_modifiers = dcss_video_format_modifiers;
+	struct drm_property *prop;
+	int ret;
+
+	if (zpos > 2)
+		return ERR_PTR(-EINVAL);
+
+	dcss_plane = kzalloc(sizeof(*dcss_plane), GFP_KERNEL);
+	if (!dcss_plane) {
+		DRM_ERROR("failed to allocate plane\n");
+		return ERR_PTR(-ENOMEM);
+	}
+
+	if (type == DRM_PLANE_TYPE_PRIMARY)
+		format_modifiers = dcss_graphics_format_modifiers;
+
+	ret = drm_universal_plane_init(drm, &dcss_plane->base, possible_crtcs,
+				       &dcss_plane_funcs, dcss_fb_formats,
+				       ARRAY_SIZE(dcss_fb_formats),
+				       format_modifiers, type, NULL);
+	if (ret) {
+		DRM_ERROR("failed to initialize plane\n");
+		kfree(dcss_plane);
+		return ERR_PTR(ret);
+	}
+
+	drm_plane_helper_add(&dcss_plane->base, &dcss_plane_helper_funcs);
+
+	ret = drm_plane_create_zpos_immutable_property(&dcss_plane->base, zpos);
+	if (ret)
+		return ERR_PTR(ret);
+
+	drm_plane_create_rotation_property(&dcss_plane->base,
+					   DRM_MODE_ROTATE_0,
+					   DRM_MODE_ROTATE_0   |
+					   DRM_MODE_ROTATE_90  |
+					   DRM_MODE_ROTATE_180 |
+					   DRM_MODE_ROTATE_270 |
+					   DRM_MODE_REFLECT_X  |
+					   DRM_MODE_REFLECT_Y);
+
+	dcss_plane->ch_num = 2 - zpos;
+	dcss_plane->type = type;
+
+	if (type == DRM_PLANE_TYPE_PRIMARY)
+		return dcss_plane;
+
+	prop = drm_property_create_range(drm, 0, "dtrc_table_ofs",
+					 0, ULLONG_MAX);
+	if (!prop) {
+		DRM_ERROR("cannot create dtrc_table_ofs property\n");
+		return ERR_PTR(-ENOMEM);
+	}
+
+	dcss_plane->dtrc_table_ofs_prop = prop;
+	drm_object_attach_property(&dcss_plane->base.base, prop, 0);
+
+	return dcss_plane;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-rdsrc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-rdsrc.c
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+#include <linux/io.h>
+#include <linux/dma-mapping.h>
+#include <linux/seq_file.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_RDSRC_CTRL_STATUS			0x00
+#define   RDSRC_RD_ERR				BIT(31)
+#define   RDSRC_FRAME_COMP			BIT(30)
+#define   RDSRC_FIFO_SIZE_POS			16
+#define   RDSRC_FIFO_SIZE_MASK			GENMASK(22, 16)
+#define   RDSRC_RD_ERR_EN			BIT(15)
+#define   RDSRC_FRAME_COMP_EN			BIT(14)
+#define   RDSRC_P_SIZE_POS			7
+#define   RDSRC_P_SIZE_MASK			GENMASK(9, 7)
+#define   RDSRC_T_SIZE_POS			5
+#define   RDSRC_T_SIZE_MASK			GENMASK(6, 5)
+#define   RDSRC_BPP_POS				2
+#define   RDSRC_BPP_MASK			GENMASK(4, 2)
+#define   RDSRC_ENABLE				BIT(0)
+#define DCSS_RDSRC_BASE_ADDR			0x10
+#define DCSS_RDSRC_PITCH			0x14
+#define DCSS_RDSRC_WIDTH			0x18
+#define DCSS_RDSRC_HEIGHT			0x1C
+
+struct dcss_rdsrc {
+	struct device *dev;
+
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	struct dcss_ctxld *ctxld;
+	u32 ctx_id;
+
+	u32 buf_addr;
+
+	u32 ctrl_status;
+};
+
+static void dcss_rdsrc_write(struct dcss_rdsrc *rdsrc, u32 val, u32 ofs)
+{
+	dcss_ctxld_write(rdsrc->ctxld, rdsrc->ctx_id, val,
+			 rdsrc->base_ofs + ofs);
+}
+
+int dcss_rdsrc_init(struct dcss_dev *dcss, unsigned long rdsrc_base)
+{
+	struct dcss_rdsrc *rdsrc;
+
+	rdsrc = devm_kzalloc(dcss->dev, sizeof(*rdsrc), GFP_KERNEL);
+	if (!rdsrc)
+		return -ENOMEM;
+
+	rdsrc->base_reg = devm_ioremap(dcss->dev, rdsrc_base, SZ_4K);
+	if (!rdsrc->base_reg) {
+		dev_err(dcss->dev, "rdsrc: unable to remap base\n");
+		devm_kfree(dcss->dev, rdsrc);
+		return -ENOMEM;
+	}
+
+	dcss->rdsrc = rdsrc;
+
+	rdsrc->dev = dcss->dev;
+	rdsrc->base_ofs = rdsrc_base;
+	rdsrc->ctxld = dcss->ctxld;
+	rdsrc->ctx_id = CTX_SB_HP;
+
+	return 0;
+}
+
+void dcss_rdsrc_exit(struct dcss_rdsrc *rdsrc)
+{
+	devm_iounmap(rdsrc->dev, rdsrc->base_reg);
+	devm_kfree(rdsrc->dev, rdsrc);
+}
+
+void dcss_rdsrc_setup(struct dcss_rdsrc *rdsrc, u32 pix_format, u32 dst_xres,
+		      u32 dst_yres, u32 base_addr)
+{
+	u32 buf_size, pitch, bpp;
+
+	/* since the scaler output is YUV444, the RDSRC output has to match */
+	bpp = 4;
+
+	rdsrc->ctrl_status = FIFO_512 << RDSRC_FIFO_SIZE_POS;
+	rdsrc->ctrl_status |= PSIZE_256 << RDSRC_P_SIZE_POS;
+	rdsrc->ctrl_status |= TSIZE_256 << RDSRC_T_SIZE_POS;
+	rdsrc->ctrl_status |= BPP_32_10BIT_OUTPUT << RDSRC_BPP_POS;
+
+	buf_size = dst_xres * dst_yres * bpp;
+	pitch = dst_xres * bpp;
+
+	rdsrc->buf_addr = base_addr;
+
+	dcss_rdsrc_write(rdsrc, rdsrc->buf_addr, DCSS_RDSRC_BASE_ADDR);
+	dcss_rdsrc_write(rdsrc, pitch, DCSS_RDSRC_PITCH);
+	dcss_rdsrc_write(rdsrc, dst_xres, DCSS_RDSRC_WIDTH);
+	dcss_rdsrc_write(rdsrc, dst_yres, DCSS_RDSRC_HEIGHT);
+}
+
+void dcss_rdsrc_enable(struct dcss_rdsrc *rdsrc)
+{
+	dcss_rdsrc_write(rdsrc, rdsrc->ctrl_status, DCSS_RDSRC_CTRL_STATUS);
+}
+
+void dcss_rdsrc_disable(struct dcss_rdsrc *rdsrc)
+{
+	/* RDSRC is turned off by setting the width and height to 0 */
+	dcss_rdsrc_write(rdsrc, 0, DCSS_RDSRC_WIDTH);
+	dcss_rdsrc_write(rdsrc, 0, DCSS_RDSRC_HEIGHT);
+
+	dcss_rdsrc_write(rdsrc, rdsrc->ctrl_status, DCSS_RDSRC_CTRL_STATUS);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-scaler.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-scaler.c
@@ -0,0 +1,911 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ *
+ * Scaling algorithms were contributed by Dzung Hoang <dzung.hoang@nxp.com>
+ */
+
+#include <linux/device.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_SCALER_CTRL			0x00
+#define   SCALER_EN				BIT(0)
+#define   REPEAT_EN				BIT(4)
+#define   SCALE2MEM_EN				BIT(8)
+#define   MEM2OFIFO_EN				BIT(12)
+#define DCSS_SCALER_OFIFO_CTRL			0x04
+#define   OFIFO_LOW_THRES_POS			0
+#define   OFIFO_LOW_THRES_MASK			GENMASK(9, 0)
+#define   OFIFO_HIGH_THRES_POS			16
+#define   OFIFO_HIGH_THRES_MASK			GENMASK(25, 16)
+#define   UNDERRUN_DETECT_CLR			BIT(26)
+#define   LOW_THRES_DETECT_CLR			BIT(27)
+#define   HIGH_THRES_DETECT_CLR			BIT(28)
+#define   UNDERRUN_DETECT_EN			BIT(29)
+#define   LOW_THRES_DETECT_EN			BIT(30)
+#define   HIGH_THRES_DETECT_EN			BIT(31)
+#define DCSS_SCALER_SDATA_CTRL			0x08
+#define   YUV_EN				BIT(0)
+#define   RTRAM_8LINES				BIT(1)
+#define   Y_UV_BYTE_SWAP			BIT(4)
+#define   A2R10G10B10_FORMAT_POS		8
+#define   A2R10G10B10_FORMAT_MASK		GENMASK(11, 8)
+#define DCSS_SCALER_BIT_DEPTH			0x0C
+#define   LUM_BIT_DEPTH_POS			0
+#define   LUM_BIT_DEPTH_MASK			GENMASK(1, 0)
+#define   CHR_BIT_DEPTH_POS			4
+#define   CHR_BIT_DEPTH_MASK			GENMASK(5, 4)
+#define DCSS_SCALER_SRC_FORMAT			0x10
+#define DCSS_SCALER_DST_FORMAT			0x14
+#define   FORMAT_MASK				GENMASK(1, 0)
+#define DCSS_SCALER_SRC_LUM_RES			0x18
+#define DCSS_SCALER_SRC_CHR_RES			0x1C
+#define DCSS_SCALER_DST_LUM_RES			0x20
+#define DCSS_SCALER_DST_CHR_RES			0x24
+#define   WIDTH_POS				0
+#define   WIDTH_MASK				GENMASK(11, 0)
+#define   HEIGHT_POS				16
+#define   HEIGHT_MASK				GENMASK(27, 16)
+#define DCSS_SCALER_V_LUM_START			0x48
+#define   V_START_MASK				GENMASK(15, 0)
+#define DCSS_SCALER_V_LUM_INC			0x4C
+#define   V_INC_MASK				GENMASK(15, 0)
+#define DCSS_SCALER_H_LUM_START			0x50
+#define   H_START_MASK				GENMASK(18, 0)
+#define DCSS_SCALER_H_LUM_INC			0x54
+#define   H_INC_MASK				GENMASK(15, 0)
+#define DCSS_SCALER_V_CHR_START			0x58
+#define DCSS_SCALER_V_CHR_INC			0x5C
+#define DCSS_SCALER_H_CHR_START			0x60
+#define DCSS_SCALER_H_CHR_INC			0x64
+#define DCSS_SCALER_COEF_VLUM			0x80
+#define DCSS_SCALER_COEF_HLUM			0x140
+#define DCSS_SCALER_COEF_VCHR			0x200
+#define DCSS_SCALER_COEF_HCHR			0x300
+
+struct dcss_scaler_ch {
+	void __iomem *base_reg;
+	u32 base_ofs;
+	struct dcss_scaler *scl;
+
+	u32 sdata_ctrl;
+	u32 scaler_ctrl;
+
+	bool scaler_ctrl_chgd;
+
+	u32 c_vstart;
+	u32 c_hstart;
+
+	int ch_num;
+};
+
+struct dcss_scaler {
+	struct device *dev;
+
+	struct dcss_ctxld *ctxld;
+	u32 ctx_id;
+
+	struct dcss_scaler_ch ch[3];
+
+	struct dcss_wrscl *wrscl;
+	struct dcss_rdsrc *rdsrc;
+	int ch_using_wrscl;
+};
+
+/* scaler coefficients generator */
+#define PSC_FRAC_BITS 30
+#define PSC_FRAC_SCALE BIT(PSC_FRAC_BITS)
+#define PSC_BITS_FOR_PHASE 4
+#define PSC_NUM_PHASES 16
+#define PSC_STORED_PHASES (PSC_NUM_PHASES / 2 + 1)
+#define PSC_NUM_TAPS 7
+#define PSC_NUM_TAPS_RGBA 5
+#define PSC_COEFF_PRECISION 10
+#define PSC_PHASE_FRACTION_BITS 13
+#define PSC_PHASE_MASK (PSC_NUM_PHASES - 1)
+#define PSC_Q_FRACTION 19
+#define PSC_Q_ROUND_OFFSET (1 << (PSC_Q_FRACTION - 1))
+
+/**
+ * mult_q() - Performs fixed-point multiplication.
+ * @A: multiplier
+ * @B: multiplicand
+ */
+static int mult_q(int A, int B)
+{
+	int result;
+	s64 temp;
+
+	temp = (int64_t)A * (int64_t)B;
+	temp += PSC_Q_ROUND_OFFSET;
+	result = (int)(temp >> PSC_Q_FRACTION);
+	return result;
+}
+
+/**
+ * div_q() - Performs fixed-point division.
+ * @A: dividend
+ * @B: divisor
+ */
+static int div_q(int A, int B)
+{
+	int result;
+	s64 temp;
+
+	temp = (int64_t)A << PSC_Q_FRACTION;
+	if ((temp >= 0 && B >= 0) || (temp < 0 && B < 0))
+		temp += B / 2;
+	else
+		temp -= B / 2;
+
+	result = (int)(temp / B);
+	return result;
+}
+
+/**
+ * exp_approx_q() - Compute approximation to exp(x) function using Taylor
+ *		    series.
+ * @x: fixed-point argument of exp function
+ */
+static int exp_approx_q(int x)
+{
+	int sum = 1 << PSC_Q_FRACTION;
+	int term = 1 << PSC_Q_FRACTION;
+
+	term = mult_q(term, div_q(x, 1 << PSC_Q_FRACTION));
+	sum += term;
+	term = mult_q(term, div_q(x, 2 << PSC_Q_FRACTION));
+	sum += term;
+	term = mult_q(term, div_q(x, 3 << PSC_Q_FRACTION));
+	sum += term;
+	term = mult_q(term, div_q(x, 4 << PSC_Q_FRACTION));
+	sum += term;
+
+	return sum;
+}
+
+/**
+ * dcss_scaler_gaussian_filter() - Generate gaussian prototype filter.
+ * @fc_q: fixed-point cutoff frequency normalized to range [0, 1]
+ * @use_5_taps: indicates whether to use 5 taps or 7 taps
+ * @coef: output filter coefficients
+ */
+static void dcss_scaler_gaussian_filter(int fc_q, bool use_5_taps,
+					bool phase0_identity,
+					int coef[][PSC_NUM_TAPS])
+{
+	int sigma_q, g0_q, g1_q, g2_q;
+	int tap_cnt1, tap_cnt2, tap_idx, phase_cnt;
+	int mid;
+	int phase;
+	int i;
+	int taps;
+
+	if (use_5_taps)
+		for (phase = 0; phase < PSC_STORED_PHASES; phase++) {
+			coef[phase][0] = 0;
+			coef[phase][PSC_NUM_TAPS - 1] = 0;
+		}
+
+	/* seed coefficient scanner */
+	taps = use_5_taps ? PSC_NUM_TAPS_RGBA : PSC_NUM_TAPS;
+	mid = (PSC_NUM_PHASES * taps) / 2 - 1;
+	phase_cnt = (PSC_NUM_PHASES * (PSC_NUM_TAPS + 1)) / 2;
+	tap_cnt1 = (PSC_NUM_PHASES * PSC_NUM_TAPS) / 2;
+	tap_cnt2 = (PSC_NUM_PHASES * PSC_NUM_TAPS) / 2;
+
+	/* seed gaussian filter generator */
+	sigma_q = div_q(PSC_Q_ROUND_OFFSET, fc_q);
+	g0_q = 1 << PSC_Q_FRACTION;
+	g1_q = exp_approx_q(div_q(-PSC_Q_ROUND_OFFSET,
+				  mult_q(sigma_q, sigma_q)));
+	g2_q = mult_q(g1_q, g1_q);
+	coef[phase_cnt & PSC_PHASE_MASK][tap_cnt1 >> PSC_BITS_FOR_PHASE] = g0_q;
+
+	for (i = 0; i < mid; i++) {
+		phase_cnt++;
+		tap_cnt1--;
+		tap_cnt2++;
+
+		g0_q = mult_q(g0_q, g1_q);
+		g1_q = mult_q(g1_q, g2_q);
+
+		if ((phase_cnt & PSC_PHASE_MASK) <= 8) {
+			tap_idx = tap_cnt1 >> PSC_BITS_FOR_PHASE;
+			coef[phase_cnt & PSC_PHASE_MASK][tap_idx] = g0_q;
+		}
+		if (((-phase_cnt) & PSC_PHASE_MASK) <= 8) {
+			tap_idx = tap_cnt2 >> PSC_BITS_FOR_PHASE;
+			coef[(-phase_cnt) & PSC_PHASE_MASK][tap_idx] = g0_q;
+		}
+	}
+
+	phase_cnt++;
+	tap_cnt1--;
+	coef[phase_cnt & PSC_PHASE_MASK][tap_cnt1 >> PSC_BITS_FOR_PHASE] = 0;
+
+	/* override phase 0 with identity filter if specified */
+	if (phase0_identity)
+		for (i = 0; i < PSC_NUM_TAPS; i++)
+			coef[0][i] = i == (PSC_NUM_TAPS >> 1) ?
+						(1 << PSC_COEFF_PRECISION) : 0;
+
+	/* normalize coef */
+	for (phase = 0; phase < PSC_STORED_PHASES; phase++) {
+		int sum = 0;
+		s64 ll_temp;
+
+		for (i = 0; i < PSC_NUM_TAPS; i++)
+			sum += coef[phase][i];
+		for (i = 0; i < PSC_NUM_TAPS; i++) {
+			ll_temp = coef[phase][i];
+			ll_temp <<= PSC_COEFF_PRECISION;
+			ll_temp += sum >> 1;
+			ll_temp /= sum;
+			coef[phase][i] = (int)ll_temp;
+		}
+	}
+}
+
+/**
+ * dcss_scaler_filter_design() - Compute filter coefficients using
+ *				 Gaussian filter.
+ * @src_length: length of input
+ * @dst_length: length of output
+ * @use_5_taps: 0 for 7 taps per phase, 1 for 5 taps
+ * @coef: output coefficients
+ */
+static void dcss_scaler_filter_design(int src_length, int dst_length,
+				      bool use_5_taps, bool phase0_identity,
+				      int coef[][PSC_NUM_TAPS])
+{
+	int fc_q;
+
+	/* compute cutoff frequency */
+	if (dst_length >= src_length)
+		fc_q = div_q(1, PSC_NUM_PHASES);
+	else
+		fc_q = div_q(dst_length, src_length * PSC_NUM_PHASES);
+
+	/* compute gaussian filter coefficients */
+	dcss_scaler_gaussian_filter(fc_q, use_5_taps, phase0_identity, coef);
+}
+
+static void dcss_scaler_write(struct dcss_scaler_ch *ch, u32 val, u32 ofs)
+{
+	struct dcss_scaler *scl = ch->scl;
+
+	dcss_ctxld_write(scl->ctxld, scl->ctx_id, val, ch->base_ofs + ofs);
+}
+
+static int dcss_scaler_ch_init_all(struct dcss_scaler *scl,
+				   unsigned long scaler_base)
+{
+	struct dcss_scaler_ch *ch;
+	int i;
+
+	for (i = 0; i < 3; i++) {
+		ch = &scl->ch[i];
+
+		ch->base_ofs = scaler_base + i * 0x400;
+
+		ch->base_reg = devm_ioremap(scl->dev, ch->base_ofs, SZ_4K);
+		if (!ch->base_reg) {
+			dev_err(scl->dev, "scaler: unable to remap ch base\n");
+			return -ENOMEM;
+		}
+
+		ch->scl = scl;
+		ch->ch_num = i;
+	}
+
+	return 0;
+}
+
+int dcss_scaler_init(struct dcss_dev *dcss, unsigned long scaler_base)
+{
+	struct dcss_scaler *scaler;
+
+	scaler = devm_kzalloc(dcss->dev, sizeof(*scaler), GFP_KERNEL);
+	if (!scaler)
+		return -ENOMEM;
+
+	dcss->scaler = scaler;
+	scaler->dev = dcss->dev;
+	scaler->ctxld = dcss->ctxld;
+	scaler->ctx_id = CTX_SB_HP;
+	scaler->wrscl = dcss->wrscl;
+	scaler->rdsrc = dcss->rdsrc;
+	scaler->ch_using_wrscl = -1;
+
+	if (dcss_scaler_ch_init_all(scaler, scaler_base)) {
+		int i;
+
+		for (i = 0; i < 3; i++) {
+			if (scaler->ch[i].base_reg)
+				devm_iounmap(scaler->dev,
+					     scaler->ch[i].base_reg);
+		}
+
+		devm_kfree(scaler->dev, scaler);
+
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+void dcss_scaler_exit(struct dcss_scaler *scl)
+{
+	int ch_no;
+
+	for (ch_no = 0; ch_no < 3; ch_no++) {
+		struct dcss_scaler_ch *ch = &scl->ch[ch_no];
+
+		dcss_writel(0, ch->base_reg + DCSS_SCALER_CTRL);
+
+		if (ch->base_reg)
+			devm_iounmap(scl->dev, ch->base_reg);
+	}
+
+	devm_kfree(scl->dev, scl);
+}
+
+void dcss_scaler_ch_enable(struct dcss_scaler *scl, int ch_num, bool en)
+{
+	struct dcss_scaler_ch *ch = &scl->ch[ch_num];
+	u32 scaler_ctrl;
+
+	if (scl->ch_using_wrscl == ch_num) {
+		if (en) {
+			scaler_ctrl = SCALE2MEM_EN | MEM2OFIFO_EN | REPEAT_EN;
+		} else {
+			dcss_wrscl_disable(scl->wrscl);
+			dcss_rdsrc_disable(scl->rdsrc);
+
+			scl->ch_using_wrscl = -1;
+			scaler_ctrl = 0;
+		}
+	} else {
+		scaler_ctrl = en ? SCALER_EN | REPEAT_EN : 0;
+	}
+
+	if (en)
+		dcss_scaler_write(ch, ch->sdata_ctrl, DCSS_SCALER_SDATA_CTRL);
+
+	if (ch->scaler_ctrl != scaler_ctrl)
+		ch->scaler_ctrl_chgd = true;
+
+	ch->scaler_ctrl = scaler_ctrl;
+}
+
+static void dcss_scaler_yuv_enable(struct dcss_scaler_ch *ch, bool en)
+{
+	ch->sdata_ctrl &= ~YUV_EN;
+	ch->sdata_ctrl |= en ? YUV_EN : 0;
+}
+
+static void dcss_scaler_rtr_8lines_enable(struct dcss_scaler_ch *ch, bool en)
+{
+	ch->sdata_ctrl &= ~RTRAM_8LINES;
+	ch->sdata_ctrl |= en ? RTRAM_8LINES : 0;
+}
+
+static void dcss_scaler_bit_depth_set(struct dcss_scaler_ch *ch, int depth)
+{
+	u32 val;
+
+	val = depth == 30 ? 2 : 0;
+
+	dcss_scaler_write(ch,
+			  ((val << CHR_BIT_DEPTH_POS) & CHR_BIT_DEPTH_MASK) |
+			  ((val << LUM_BIT_DEPTH_POS) & LUM_BIT_DEPTH_MASK),
+			  DCSS_SCALER_BIT_DEPTH);
+}
+
+enum buffer_format {
+	BUF_FMT_YUV420,
+	BUF_FMT_YUV422,
+	BUF_FMT_ARGB8888_YUV444,
+};
+
+enum chroma_location {
+	PSC_LOC_HORZ_0_VERT_1_OVER_4 = 0,
+	PSC_LOC_HORZ_1_OVER_4_VERT_1_OVER_4 = 1,
+	PSC_LOC_HORZ_0_VERT_0 = 2,
+	PSC_LOC_HORZ_1_OVER_4_VERT_0 = 3,
+	PSC_LOC_HORZ_0_VERT_1_OVER_2 = 4,
+	PSC_LOC_HORZ_1_OVER_4_VERT_1_OVER_2 = 5
+};
+
+static void dcss_scaler_format_set(struct dcss_scaler_ch *ch,
+				   enum buffer_format src_fmt,
+				   enum buffer_format dst_fmt)
+{
+	dcss_scaler_write(ch, src_fmt, DCSS_SCALER_SRC_FORMAT);
+	dcss_scaler_write(ch, dst_fmt, DCSS_SCALER_DST_FORMAT);
+}
+
+static void dcss_scaler_res_set(struct dcss_scaler_ch *ch,
+				int src_xres, int src_yres,
+				int dst_xres, int dst_yres,
+				u32 pix_format, enum buffer_format dst_format)
+{
+	u32 lsrc_xres, lsrc_yres, csrc_xres, csrc_yres;
+	u32 ldst_xres, ldst_yres, cdst_xres, cdst_yres;
+	bool src_is_444 = true;
+
+	lsrc_xres = src_xres;
+	csrc_xres = src_xres;
+	lsrc_yres = src_yres;
+	csrc_yres = src_yres;
+	ldst_xres = dst_xres;
+	cdst_xres = dst_xres;
+	ldst_yres = dst_yres;
+	cdst_yres = dst_yres;
+
+	if (pix_format == DRM_FORMAT_UYVY || pix_format == DRM_FORMAT_VYUY ||
+	    pix_format == DRM_FORMAT_YUYV || pix_format == DRM_FORMAT_YVYU) {
+		csrc_xres >>= 1;
+		src_is_444 = false;
+	} else if (pix_format == DRM_FORMAT_NV12 ||
+		   pix_format == DRM_FORMAT_NV21 ||
+		   pix_format == DRM_FORMAT_NV12_10LE40) {
+		csrc_xres >>= 1;
+		csrc_yres >>= 1;
+		src_is_444 = false;
+	}
+
+	if (dst_format == BUF_FMT_YUV422)
+		cdst_xres >>= 1;
+
+	/* for 4:4:4 to 4:2:2 conversion, source height should be 1 less */
+	if (src_is_444 && dst_format == BUF_FMT_YUV422) {
+		lsrc_yres--;
+		csrc_yres--;
+	}
+
+	dcss_scaler_write(ch, (((lsrc_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) |
+			       (((lsrc_xres - 1) << WIDTH_POS) & WIDTH_MASK),
+			  DCSS_SCALER_SRC_LUM_RES);
+	dcss_scaler_write(ch, (((csrc_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) |
+			       (((csrc_xres - 1) << WIDTH_POS) & WIDTH_MASK),
+			  DCSS_SCALER_SRC_CHR_RES);
+	dcss_scaler_write(ch, (((ldst_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) |
+			       (((ldst_xres - 1) << WIDTH_POS) & WIDTH_MASK),
+			  DCSS_SCALER_DST_LUM_RES);
+	dcss_scaler_write(ch, (((cdst_yres - 1) << HEIGHT_POS) & HEIGHT_MASK) |
+			       (((cdst_xres - 1) << WIDTH_POS) & WIDTH_MASK),
+			  DCSS_SCALER_DST_CHR_RES);
+}
+
+#define downscale_fp(factor, fp_pos)		((factor) << (fp_pos))
+#define upscale_fp(factor, fp_pos)		((1 << (fp_pos)) / (factor))
+
+struct dcss_scaler_factors {
+	int downscale;
+	int upscale;
+};
+
+static const struct dcss_scaler_factors dcss_scaler_factors[] = {
+	{3, 8}, {5, 8}, {5, 8},
+};
+
+static const struct dcss_scaler_factors dcss_scaler_wrscl_factors[] = {
+	{5, 8}, {7, 8}, {7, 8},
+};
+
+static bool dcss_scaler_fractions_set(struct dcss_scaler_ch *ch,
+				      int src_xres, int src_yres,
+				      int dst_xres, int dst_yres,
+				      u32 src_format, u32 dst_format,
+				      enum chroma_location src_chroma_loc)
+{
+	int src_c_xres, src_c_yres, dst_c_xres, dst_c_yres;
+	u32 l_vinc, l_hinc, c_vinc, c_hinc;
+	u32 c_vstart, c_hstart;
+	u8 upscale_factor, downscale_factor;
+
+	src_c_xres = src_xres;
+	src_c_yres = src_yres;
+	dst_c_xres = dst_xres;
+	dst_c_yres = dst_yres;
+
+	c_vstart = 0;
+	c_hstart = 0;
+
+	/* adjustments for source chroma location */
+	if (src_format == BUF_FMT_YUV420) {
+		/* vertical input chroma position adjustment */
+		switch (src_chroma_loc) {
+		case PSC_LOC_HORZ_0_VERT_1_OVER_4:
+		case PSC_LOC_HORZ_1_OVER_4_VERT_1_OVER_4:
+			/*
+			 * move chroma up to first luma line
+			 * (1/4 chroma input line spacing)
+			 */
+			c_vstart -= (1 << (PSC_PHASE_FRACTION_BITS - 2));
+			break;
+		case PSC_LOC_HORZ_0_VERT_1_OVER_2:
+		case PSC_LOC_HORZ_1_OVER_4_VERT_1_OVER_2:
+			/*
+			 * move chroma up to first luma line
+			 * (1/2 chroma input line spacing)
+			 */
+			c_vstart -= (1 << (PSC_PHASE_FRACTION_BITS - 1));
+			break;
+		default:
+			break;
+		}
+		/* horizontal input chroma position adjustment */
+		switch (src_chroma_loc) {
+		case PSC_LOC_HORZ_1_OVER_4_VERT_1_OVER_4:
+		case PSC_LOC_HORZ_1_OVER_4_VERT_0:
+		case PSC_LOC_HORZ_1_OVER_4_VERT_1_OVER_2:
+			/* move chroma left 1/4 chroma input sample spacing */
+			c_hstart -= (1 << (PSC_PHASE_FRACTION_BITS - 2));
+			break;
+		default:
+			break;
+		}
+	}
+
+	/* adjustments to chroma resolution */
+	if (src_format == BUF_FMT_YUV420) {
+		src_c_xres >>= 1;
+		src_c_yres >>= 1;
+	} else if (src_format == BUF_FMT_YUV422) {
+		src_c_xres >>= 1;
+	}
+
+	if (dst_format == BUF_FMT_YUV422)
+		dst_c_xres >>= 1;
+
+	l_vinc = ((src_yres << 13) + (dst_yres >> 1)) / dst_yres;
+	c_vinc = ((src_c_yres << 13) + (dst_c_yres >> 1)) / dst_c_yres;
+	l_hinc = ((src_xres << 13) + (dst_xres >> 1)) / dst_xres;
+	c_hinc = ((src_c_xres << 13) + (dst_c_xres >> 1)) / dst_c_xres;
+
+	/* save chroma start phase */
+	ch->c_vstart = c_vstart;
+	ch->c_hstart = c_hstart;
+
+	dcss_scaler_write(ch, 0, DCSS_SCALER_V_LUM_START);
+	dcss_scaler_write(ch, l_vinc, DCSS_SCALER_V_LUM_INC);
+
+	dcss_scaler_write(ch, 0, DCSS_SCALER_H_LUM_START);
+	dcss_scaler_write(ch, l_hinc, DCSS_SCALER_H_LUM_INC);
+
+	dcss_scaler_write(ch, c_vstart, DCSS_SCALER_V_CHR_START);
+	dcss_scaler_write(ch, c_vinc, DCSS_SCALER_V_CHR_INC);
+
+	dcss_scaler_write(ch, c_hstart, DCSS_SCALER_H_CHR_START);
+	dcss_scaler_write(ch, c_hinc, DCSS_SCALER_H_CHR_INC);
+
+	downscale_factor = dcss_scaler_factors[ch->ch_num].downscale;
+	upscale_factor = dcss_scaler_factors[ch->ch_num].upscale;
+
+	/* return if WR_SCL/RD_SRC is needed to scale */
+	return l_vinc > downscale_fp(downscale_factor, 13)  ||
+	       l_vinc < upscale_fp(upscale_factor, 13)	    ||
+	       l_hinc > downscale_fp(downscale_factor, 13)  ||
+	       l_hinc < upscale_fp(upscale_factor, 13);
+}
+
+int dcss_scaler_get_min_max_ratios(struct dcss_scaler *scl, int ch_num,
+				   int *min, int *max)
+{
+	const struct dcss_scaler_factors *factors_map = dcss_scaler_factors;
+
+	if (scl->ch_using_wrscl == -1 || scl->ch_using_wrscl == ch_num)
+		factors_map = dcss_scaler_wrscl_factors;
+
+	*min = upscale_fp(factors_map[ch_num].upscale, 16);
+	*max = downscale_fp(factors_map[ch_num].downscale, 16);
+
+	return 0;
+}
+
+static void dcss_scaler_program_5_coef_set(struct dcss_scaler_ch *ch,
+					   int base_addr,
+					   int coef[][PSC_NUM_TAPS])
+{
+	int i, phase;
+
+	for (i = 0; i < PSC_STORED_PHASES; i++) {
+		dcss_scaler_write(ch, ((coef[i][1] & 0xfff) << 16 |
+				       (coef[i][2] & 0xfff) << 4  |
+				       (coef[i][3] & 0xf00) >> 8),
+				  base_addr + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[i][3] & 0x0ff) << 20 |
+				       (coef[i][4] & 0xfff) << 8  |
+				       (coef[i][5] & 0xff0) >> 4),
+				  base_addr + 0x40 + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[i][5] & 0x00f) << 24),
+				  base_addr + 0x80 + i * sizeof(u32));
+	}
+
+	/* reverse both phase and tap orderings */
+	for (phase = (PSC_NUM_PHASES >> 1) - 1;
+			i < PSC_NUM_PHASES; i++, phase--) {
+		dcss_scaler_write(ch, ((coef[phase][5] & 0xfff) << 16 |
+				       (coef[phase][4] & 0xfff) << 4  |
+				       (coef[phase][3] & 0xf00) >> 8),
+				  base_addr + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[phase][3] & 0x0ff) << 20 |
+				       (coef[phase][2] & 0xfff) << 8  |
+				       (coef[phase][1] & 0xff0) >> 4),
+				  base_addr + 0x40 + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[phase][1] & 0x00f) << 24),
+				  base_addr + 0x80 + i * sizeof(u32));
+	}
+}
+
+static void dcss_scaler_program_7_coef_set(struct dcss_scaler_ch *ch,
+					   int base_addr,
+					   int coef[][PSC_NUM_TAPS])
+{
+	int i, phase;
+
+	for (i = 0; i < PSC_STORED_PHASES; i++) {
+		dcss_scaler_write(ch, ((coef[i][0] & 0xfff) << 16 |
+				       (coef[i][1] & 0xfff) << 4  |
+				       (coef[i][2] & 0xf00) >> 8),
+				  base_addr + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[i][2] & 0x0ff) << 20 |
+				       (coef[i][3] & 0xfff) << 8  |
+				       (coef[i][4] & 0xff0) >> 4),
+				  base_addr + 0x40 + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[i][4] & 0x00f) << 24 |
+				       (coef[i][5] & 0xfff) << 12 |
+				       (coef[i][6] & 0xfff)),
+				  base_addr + 0x80 + i * sizeof(u32));
+	}
+
+	/* reverse both phase and tap orderings */
+	for (phase = (PSC_NUM_PHASES >> 1) - 1;
+			i < PSC_NUM_PHASES; i++, phase--) {
+		dcss_scaler_write(ch, ((coef[phase][6] & 0xfff) << 16 |
+				       (coef[phase][5] & 0xfff) << 4  |
+				       (coef[phase][4] & 0xf00) >> 8),
+				  base_addr + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[phase][4] & 0x0ff) << 20 |
+				       (coef[phase][3] & 0xfff) << 8  |
+				       (coef[phase][2] & 0xff0) >> 4),
+				  base_addr + 0x40 + i * sizeof(u32));
+		dcss_scaler_write(ch, ((coef[phase][2] & 0x00f) << 24 |
+				       (coef[phase][1] & 0xfff) << 12 |
+				       (coef[phase][0] & 0xfff)),
+				  base_addr + 0x80 + i * sizeof(u32));
+	}
+}
+
+static void dcss_scaler_yuv_coef_set(struct dcss_scaler_ch *ch,
+				     enum buffer_format src_format,
+				     enum buffer_format dst_format,
+				     bool use_5_taps,
+				     int src_xres, int src_yres, int dst_xres,
+				     int dst_yres)
+{
+	int coef[PSC_STORED_PHASES][PSC_NUM_TAPS];
+	bool program_5_taps = use_5_taps ||
+			      (dst_format == BUF_FMT_YUV422 &&
+			       src_format == BUF_FMT_ARGB8888_YUV444);
+
+	/* horizontal luma */
+	dcss_scaler_filter_design(src_xres, dst_xres, false,
+				  src_xres == dst_xres, coef);
+	dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_HLUM, coef);
+
+	/* vertical luma */
+	dcss_scaler_filter_design(src_yres, dst_yres, program_5_taps,
+				  src_yres == dst_yres, coef);
+
+	if (program_5_taps)
+		dcss_scaler_program_5_coef_set(ch, DCSS_SCALER_COEF_VLUM, coef);
+	else
+		dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_VLUM, coef);
+
+	/* adjust chroma resolution */
+	if (src_format != BUF_FMT_ARGB8888_YUV444)
+		src_xres >>= 1;
+	if (src_format == BUF_FMT_YUV420)
+		src_yres >>= 1;
+	if (dst_format != BUF_FMT_ARGB8888_YUV444)
+		dst_xres >>= 1;
+	if (dst_format == BUF_FMT_YUV420) /* should not happen */
+		dst_yres >>= 1;
+
+	/* horizontal chroma */
+	dcss_scaler_filter_design(src_xres, dst_xres, false,
+				  (src_xres == dst_xres) && (ch->c_hstart == 0),
+				  coef);
+
+	dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_HCHR, coef);
+
+	/* vertical chroma */
+	dcss_scaler_filter_design(src_yres, dst_yres, program_5_taps,
+				  (src_yres == dst_yres) && (ch->c_vstart == 0),
+				  coef);
+	if (program_5_taps)
+		dcss_scaler_program_5_coef_set(ch, DCSS_SCALER_COEF_VCHR, coef);
+	else
+		dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_VCHR, coef);
+}
+
+static void dcss_scaler_rgb_coef_set(struct dcss_scaler_ch *ch,
+				     int src_xres, int src_yres, int dst_xres,
+				     int dst_yres)
+{
+	int coef[PSC_STORED_PHASES][PSC_NUM_TAPS];
+
+	/* horizontal RGB */
+	dcss_scaler_filter_design(src_xres, dst_xres, false,
+				  src_xres == dst_xres, coef);
+	dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_HLUM, coef);
+
+	/* vertical RGB */
+	dcss_scaler_filter_design(src_yres, dst_yres, false,
+				  src_yres == dst_yres, coef);
+	dcss_scaler_program_7_coef_set(ch, DCSS_SCALER_COEF_VLUM, coef);
+}
+
+static void dcss_scaler_set_rgb10_order(struct dcss_scaler_ch *ch,
+					const struct drm_format_info *format)
+{
+	u32 a2r10g10b10_format;
+
+	if (format->is_yuv)
+		return;
+
+	ch->sdata_ctrl &= ~A2R10G10B10_FORMAT_MASK;
+
+	if (format->depth != 30)
+		return;
+
+	switch (format->format) {
+	case DRM_FORMAT_ARGB2101010:
+	case DRM_FORMAT_XRGB2101010:
+		a2r10g10b10_format = 0;
+		break;
+
+	case DRM_FORMAT_ABGR2101010:
+	case DRM_FORMAT_XBGR2101010:
+		a2r10g10b10_format = 5;
+		break;
+
+	case DRM_FORMAT_RGBA1010102:
+	case DRM_FORMAT_RGBX1010102:
+		a2r10g10b10_format = 6;
+		break;
+
+	case DRM_FORMAT_BGRA1010102:
+	case DRM_FORMAT_BGRX1010102:
+		a2r10g10b10_format = 11;
+		break;
+
+	default:
+		a2r10g10b10_format = 0;
+		break;
+	}
+
+	ch->sdata_ctrl |= a2r10g10b10_format << A2R10G10B10_FORMAT_POS;
+}
+
+static void dcss_scaler_setup_path(struct dcss_scaler_ch *ch,
+				   u32 pix_format, int dst_xres,
+				   int dst_yres, u32 vrefresh_hz,
+				   bool wrscl_needed)
+{
+	struct dcss_scaler *scl = ch->scl;
+	u32 base_addr;
+
+	/* nothing to do if WRSCL path is needed but it's already used */
+	if (wrscl_needed && scl->ch_using_wrscl != -1 &&
+	    scl->ch_using_wrscl != ch->ch_num)
+		return;
+
+	if (!wrscl_needed) {
+		/* Channel has finished using WRSCL. Release WRSCL/RDSRC. */
+		if (scl->ch_using_wrscl == ch->ch_num) {
+			dcss_wrscl_disable(scl->wrscl);
+			dcss_rdsrc_disable(scl->rdsrc);
+
+			scl->ch_using_wrscl = -1;
+		}
+
+		return;
+	}
+
+	base_addr = dcss_wrscl_setup(scl->wrscl, pix_format, vrefresh_hz,
+				     dst_xres, dst_yres);
+
+	dcss_rdsrc_setup(scl->rdsrc, pix_format, dst_xres, dst_yres,
+			 base_addr);
+
+	dcss_wrscl_enable(scl->wrscl);
+	dcss_rdsrc_enable(scl->rdsrc);
+
+	scl->ch_using_wrscl = ch->ch_num;
+}
+
+void dcss_scaler_setup(struct dcss_scaler *scl, int ch_num,
+		       const struct drm_format_info *format,
+		       int src_xres, int src_yres, int dst_xres, int dst_yres,
+		       u32 vrefresh_hz)
+{
+	struct dcss_scaler_ch *ch = &scl->ch[ch_num];
+	unsigned int pixel_depth = 0;
+	bool rtr_8line_en = false;
+	bool use_5_taps = false;
+	enum buffer_format src_format = BUF_FMT_ARGB8888_YUV444;
+	enum buffer_format dst_format = BUF_FMT_ARGB8888_YUV444;
+	u32 pix_format = format->format;
+	bool use_wrscl;
+
+	if (format->is_yuv) {
+		dcss_scaler_yuv_enable(ch, true);
+
+		if (pix_format == DRM_FORMAT_NV12 ||
+		    pix_format == DRM_FORMAT_NV21 ||
+		    pix_format == DRM_FORMAT_NV12_10LE40) {
+			rtr_8line_en = true;
+			src_format = BUF_FMT_YUV420;
+		} else if (pix_format == DRM_FORMAT_UYVY ||
+			   pix_format == DRM_FORMAT_VYUY ||
+			   pix_format == DRM_FORMAT_YUYV ||
+			   pix_format == DRM_FORMAT_YVYU) {
+			src_format = BUF_FMT_YUV422;
+		}
+
+		use_5_taps = !rtr_8line_en;
+
+		if (pix_format == DRM_FORMAT_NV12_10LE40)
+			pixel_depth = 30;
+	} else {
+		dcss_scaler_yuv_enable(ch, false);
+
+		pixel_depth = format->depth;
+	}
+
+	use_wrscl = dcss_scaler_fractions_set(ch, src_xres, src_yres, dst_xres,
+					      dst_yres, src_format, dst_format,
+					      PSC_LOC_HORZ_0_VERT_1_OVER_4);
+
+	if (format->is_yuv)
+		dcss_scaler_yuv_coef_set(ch, src_format, dst_format,
+					 use_5_taps, src_xres, src_yres,
+					 dst_xres, dst_yres);
+	else
+		dcss_scaler_rgb_coef_set(ch, src_xres, src_yres,
+					 dst_xres, dst_yres);
+
+	dcss_scaler_rtr_8lines_enable(ch, rtr_8line_en);
+	dcss_scaler_bit_depth_set(ch, pixel_depth);
+	dcss_scaler_set_rgb10_order(ch, format);
+	dcss_scaler_format_set(ch, src_format, dst_format);
+	dcss_scaler_res_set(ch, src_xres, src_yres, dst_xres, dst_yres,
+			    pix_format, dst_format);
+
+	dcss_scaler_setup_path(ch, pix_format, dst_xres,
+			       dst_yres, vrefresh_hz, use_wrscl);
+}
+
+/* This function will be called from interrupt context. */
+void dcss_scaler_write_sclctrl(struct dcss_scaler *scl)
+{
+	int chnum;
+
+	for (chnum = 0; chnum < 3; chnum++) {
+		struct dcss_scaler_ch *ch = &scl->ch[chnum];
+
+		if (ch->scaler_ctrl_chgd) {
+			dcss_ctxld_write_irqsafe(scl->ctxld, scl->ctx_id,
+						 ch->scaler_ctrl,
+						 ch->base_ofs +
+						 DCSS_SCALER_CTRL);
+			ch->scaler_ctrl_chgd = false;
+		}
+	}
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-ss.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-ss.c
@@ -0,0 +1,179 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_SS_SYS_CTRL			0x00
+#define   RUN_EN				BIT(0)
+#define DCSS_SS_DISPLAY				0x10
+#define   LRC_X_POS				0
+#define   LRC_X_MASK				GENMASK(12, 0)
+#define   LRC_Y_POS				16
+#define   LRC_Y_MASK				GENMASK(28, 16)
+#define DCSS_SS_HSYNC				0x20
+#define DCSS_SS_VSYNC				0x30
+#define   SYNC_START_POS			0
+#define   SYNC_START_MASK			GENMASK(12, 0)
+#define   SYNC_END_POS				16
+#define   SYNC_END_MASK				GENMASK(28, 16)
+#define   SYNC_POL				BIT(31)
+#define DCSS_SS_DE_ULC				0x40
+#define   ULC_X_POS				0
+#define   ULC_X_MASK				GENMASK(12, 0)
+#define   ULC_Y_POS				16
+#define   ULC_Y_MASK				GENMASK(28, 16)
+#define   ULC_POL				BIT(31)
+#define DCSS_SS_DE_LRC				0x50
+#define DCSS_SS_MODE				0x60
+#define   PIPE_MODE_POS				0
+#define   PIPE_MODE_MASK			GENMASK(1, 0)
+#define DCSS_SS_COEFF				0x70
+#define   HORIZ_A_POS				0
+#define   HORIZ_A_MASK				GENMASK(3, 0)
+#define   HORIZ_B_POS				4
+#define   HORIZ_B_MASK				GENMASK(7, 4)
+#define   HORIZ_C_POS				8
+#define   HORIZ_C_MASK				GENMASK(11, 8)
+#define   HORIZ_H_NORM_POS			12
+#define   HORIZ_H_NORM_MASK			GENMASK(14, 12)
+#define   VERT_A_POS				16
+#define   VERT_A_MASK				GENMASK(19, 16)
+#define   VERT_B_POS				20
+#define   VERT_B_MASK				GENMASK(23, 20)
+#define   VERT_C_POS				24
+#define   VERT_C_MASK				GENMASK(27, 24)
+#define   VERT_H_NORM_POS			28
+#define   VERT_H_NORM_MASK			GENMASK(30, 28)
+#define DCSS_SS_CLIP_CB				0x80
+#define DCSS_SS_CLIP_CR				0x90
+#define   CLIP_MIN_POS				0
+#define   CLIP_MIN_MASK				GENMASK(9, 0)
+#define   CLIP_MAX_POS				0
+#define   CLIP_MAX_MASK				GENMASK(23, 16)
+#define DCSS_SS_INTER_MODE			0xA0
+#define   INT_EN				BIT(0)
+#define   VSYNC_SHIFT				BIT(1)
+
+struct dcss_ss {
+	struct device *dev;
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	struct dcss_ctxld *ctxld;
+	u32 ctx_id;
+
+	bool in_use;
+};
+
+static void dcss_ss_write(struct dcss_ss *ss, u32 val, u32 ofs)
+{
+	if (!ss->in_use)
+		dcss_writel(val, ss->base_reg + ofs);
+
+	dcss_ctxld_write(ss->ctxld, ss->ctx_id, val,
+			 ss->base_ofs + ofs);
+}
+
+int dcss_ss_init(struct dcss_dev *dcss, unsigned long ss_base)
+{
+	struct dcss_ss *ss;
+
+	ss = devm_kzalloc(dcss->dev, sizeof(*ss), GFP_KERNEL);
+	if (!ss)
+		return -ENOMEM;
+
+	dcss->ss = ss;
+	ss->dev = dcss->dev;
+	ss->ctxld = dcss->ctxld;
+
+	ss->base_reg = devm_ioremap(dcss->dev, ss_base, SZ_4K);
+	if (!ss->base_reg) {
+		dev_err(dcss->dev, "ss: unable to remap ss base\n");
+		devm_kfree(ss->dev, ss);
+		return -ENOMEM;
+	}
+
+	ss->base_ofs = ss_base;
+	ss->ctx_id = CTX_SB_HP;
+
+	return 0;
+}
+
+void dcss_ss_exit(struct dcss_ss *ss)
+{
+	/* stop SS */
+	dcss_writel(0, ss->base_reg + DCSS_SS_SYS_CTRL);
+
+	if (ss->base_reg)
+		devm_iounmap(ss->dev, ss->base_reg);
+
+	devm_kfree(ss->dev, ss);
+}
+
+void dcss_ss_subsam_set(struct dcss_ss *ss, bool out_is_yuv)
+{
+	dcss_ss_write(ss, out_is_yuv ? 0x21612161 : 0x41614161, DCSS_SS_COEFF);
+	dcss_ss_write(ss, out_is_yuv ? 2 : 0, DCSS_SS_MODE);
+	dcss_ss_write(ss, 0x03ff0000, DCSS_SS_CLIP_CB);
+	dcss_ss_write(ss, 0x03ff0000, DCSS_SS_CLIP_CR);
+}
+
+void dcss_ss_sync_set(struct dcss_ss *ss, struct videomode *vm,
+		      bool phsync, bool pvsync)
+{
+	u16 lrc_x, lrc_y;
+	u16 hsync_start, hsync_end;
+	u16 vsync_start, vsync_end;
+	u16 de_ulc_x, de_ulc_y;
+	u16 de_lrc_x, de_lrc_y;
+
+	lrc_x = vm->hfront_porch + vm->hback_porch + vm->hsync_len +
+		vm->hactive - 1;
+	lrc_y = vm->vfront_porch + vm->vback_porch + vm->vsync_len +
+		vm->vactive - 1;
+
+	dcss_ss_write(ss, (lrc_y << LRC_Y_POS) | lrc_x, DCSS_SS_DISPLAY);
+
+	hsync_start = vm->hfront_porch + vm->hback_porch + vm->hsync_len +
+		      vm->hactive - 1;
+	hsync_end = vm->hsync_len - 1;
+
+	dcss_ss_write(ss, (phsync ? SYNC_POL : 0) |
+		      ((u32)hsync_end << SYNC_END_POS) | hsync_start,
+		      DCSS_SS_HSYNC);
+
+	vsync_start = vm->vfront_porch - 1;
+	vsync_end = vm->vfront_porch + vm->vsync_len - 1;
+
+	dcss_ss_write(ss, (pvsync ? SYNC_POL : 0) |
+		      ((u32)vsync_end << SYNC_END_POS) | vsync_start,
+		      DCSS_SS_VSYNC);
+
+	de_ulc_x = vm->hsync_len + vm->hback_porch - 1;
+	de_ulc_y = vm->vsync_len + vm->vfront_porch + vm->vback_porch;
+
+	dcss_ss_write(ss, SYNC_POL | ((u32)de_ulc_y << ULC_Y_POS) | de_ulc_x,
+		      DCSS_SS_DE_ULC);
+
+	de_lrc_x = vm->hsync_len + vm->hback_porch + vm->hactive - 1;
+	de_lrc_y = vm->vsync_len + vm->vfront_porch + vm->vback_porch +
+		   vm->vactive - 1;
+
+	dcss_ss_write(ss, (de_lrc_y << LRC_Y_POS) | de_lrc_x, DCSS_SS_DE_LRC);
+}
+
+void dcss_ss_enable(struct dcss_ss *ss)
+{
+	dcss_ss_write(ss, RUN_EN, DCSS_SS_SYS_CTRL);
+	ss->in_use = true;
+}
+
+void dcss_ss_disable(struct dcss_ss *ss)
+{
+	dcss_ss_write(ss, 0, DCSS_SS_SYS_CTRL);
+	ss->in_use = false;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dcss/dcss-wrscl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dcss/dcss-wrscl.c
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/device.h>
+#include <linux/io.h>
+#include <linux/clk.h>
+#include <linux/dma-mapping.h>
+#include <linux/seq_file.h>
+
+#include "dcss-dev.h"
+
+#define DCSS_WRSCL_CTRL_STATUS			0x00
+#define   WRSCL_ERR				BIT(31)
+#define   WRSCL_ERR_EN				BIT(30)
+#define   WRSCL_FRAME_COMP			BIT(29)
+#define   WRSCL_FRAME_COMP_EN			BIT(28)
+#define   WRSCL_FIFO_SIZE_POS			18
+#define   WRSCL_FIFO_SIZE_MASK			GENMAK(24, 18)
+#define   WRSCL_P_FREQ_POS			10
+#define   WRSCL_P_FREQ_MASK			GENMASK(17, 10)
+#define   WRSCL_P_SIZE_POS			7
+#define   WRSCL_P_SIZE_MASK			GENMASK(9, 7)
+#define   WRSCL_T_SIZE_POS			5
+#define   WRSCL_T_SIZE_MASK			GENMASK(6, 5)
+#define   WRSCL_BPP_POS				2
+#define   WRSCL_BPP_MASK			GENMASK(4, 2)
+#define   WRSCL_REPEAT				BIT(1)
+#define   WRSCL_ENABLE				BIT(0)
+#define DCSS_WRSCL_BASE_ADDR			0x10
+#define DCSS_WRSCL_PITCH			0x14
+
+struct dcss_wrscl {
+	struct device *dev;
+
+	void __iomem *base_reg;
+	u32 base_ofs;
+
+	struct dcss_ctxld *ctxld;
+	u32 ctx_id;
+
+	u32 buf_size;
+	u32 buf_addr;
+	void *buf_vaddr;
+
+	struct clk *bclk;
+
+	u32 ctrl_status;
+};
+
+static void dcss_wrscl_write(struct dcss_wrscl *wrscl, u32 val, u32 ofs)
+{
+	dcss_ctxld_write(wrscl->ctxld, wrscl->ctx_id,
+			 val, wrscl->base_ofs + ofs);
+}
+
+int dcss_wrscl_init(struct dcss_dev *dcss, unsigned long wrscl_base)
+{
+	struct dcss_wrscl *wrscl;
+
+	wrscl = devm_kzalloc(dcss->dev, sizeof(*wrscl), GFP_KERNEL);
+	if (!wrscl)
+		return -ENOMEM;
+
+	wrscl->base_reg = devm_ioremap(dcss->dev, wrscl_base, SZ_4K);
+	if (!wrscl->base_reg) {
+		dev_err(dcss->dev, "wrscl: unable to remap base\n");
+		devm_kfree(dcss->dev, wrscl);
+		return -ENOMEM;
+	}
+
+	dcss->wrscl = wrscl;
+
+	wrscl->dev = dcss->dev;
+	wrscl->base_ofs = wrscl_base;
+	wrscl->ctxld = dcss->ctxld;
+	wrscl->ctx_id = CTX_SB_HP;
+	wrscl->bclk = dcss->axi_clk;
+
+	return 0;
+}
+
+void dcss_wrscl_exit(struct dcss_wrscl *wrscl)
+{
+	devm_iounmap(wrscl->dev, wrscl->base_reg);
+	devm_kfree(wrscl->dev, wrscl);
+}
+
+static const u16 dcss_wrscl_psize_map[] = {64, 128, 256, 512, 1024, 2048, 4096};
+
+u32 dcss_wrscl_setup(struct dcss_wrscl *wrscl, u32 pix_format, u32 vrefresh_hz,
+		     u32 dst_xres, u32 dst_yres)
+{
+	u32 pitch, p_size, p_freq, bpp;
+	dma_addr_t dma_handle;
+	u32 bclk_rate = clk_get_rate(wrscl->bclk);
+
+	/* we'd better release the old buffer */
+	if (wrscl->buf_addr)
+		dmam_free_coherent(wrscl->dev, wrscl->buf_size,
+				   wrscl->buf_vaddr, wrscl->buf_addr);
+
+	p_size = PSIZE_256;
+
+	/* scaler output is YUV444 */
+	bpp = 4;
+
+	/* spread the load over the entire frame */
+	p_freq = ((u64)bclk_rate * dcss_wrscl_psize_map[p_size]) /
+		 ((u64)dst_xres * dst_yres * vrefresh_hz * bpp * 8);
+
+	/* choose a slightly smaller p_freq */
+	p_freq = p_freq - 3 > 255 ? 255 : p_freq - 3;
+
+	wrscl->ctrl_status = FIFO_512 << WRSCL_FIFO_SIZE_POS;
+	wrscl->ctrl_status |= p_size << WRSCL_P_SIZE_POS;
+	wrscl->ctrl_status |= TSIZE_256 << WRSCL_T_SIZE_POS;
+	wrscl->ctrl_status |= BPP_32_10BIT_OUTPUT << WRSCL_BPP_POS;
+	wrscl->ctrl_status |= p_freq << WRSCL_P_FREQ_POS;
+
+	wrscl->buf_size = dst_xres * dst_yres * bpp;
+	pitch = dst_xres * bpp;
+
+	wrscl->buf_vaddr = dmam_alloc_coherent(wrscl->dev, wrscl->buf_size,
+					       &dma_handle, GFP_KERNEL);
+	if (!wrscl->buf_vaddr) {
+		dev_err(wrscl->dev, "wrscl: cannot alloc buf mem\n");
+		return 0;
+	}
+
+	wrscl->buf_addr = dma_handle;
+
+	dcss_wrscl_write(wrscl, wrscl->buf_addr, DCSS_WRSCL_BASE_ADDR);
+	dcss_wrscl_write(wrscl, pitch, DCSS_WRSCL_PITCH);
+
+	return wrscl->buf_addr;
+}
+
+void dcss_wrscl_enable(struct dcss_wrscl *wrscl)
+{
+	wrscl->ctrl_status |= WRSCL_ENABLE | WRSCL_REPEAT;
+
+	dcss_wrscl_write(wrscl, wrscl->ctrl_status, DCSS_WRSCL_CTRL_STATUS);
+}
+
+void dcss_wrscl_disable(struct dcss_wrscl *wrscl)
+{
+	wrscl->ctrl_status &= ~(WRSCL_ENABLE | WRSCL_REPEAT);
+
+	dcss_wrscl_write(wrscl, wrscl->ctrl_status, DCSS_WRSCL_CTRL_STATUS);
+
+	if (wrscl->buf_addr) {
+		dmam_free_coherent(wrscl->dev, wrscl->buf_size,
+				   wrscl->buf_vaddr, wrscl->buf_addr);
+		wrscl->buf_addr = 0;
+	}
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/Kconfig
@@ -0,0 +1,6 @@
+config DRM_IMX_DPU
+	tristate "Freescale i.MX DPU DRM support"
+	depends on DRM_IMX
+	depends on IMX_DPU_CORE
+	default y if DRM_IMX=y
+	default m if DRM_IMX=m
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/Makefile
@@ -0,0 +1,8 @@
+ccflags-y += -I $(srctree)/$(src)/../
+
+imx-dpu-crtc-objs := dpu-crtc.o dpu-kms.o dpu-plane.o
+imx-dpu-crtc-$(CONFIG_DEBUG_FS) := dpu-crc.o
+obj-$(CONFIG_DRM_IMX_DPU) += imx-dpu-crtc.o
+
+imx-dpu-render-objs := dpu-blit.o
+obj-$(CONFIG_DRM_IMX_DPU) += imx-dpu-render.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-blit.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-blit.c
@@ -0,0 +1,332 @@
+/*
+ * Copyright 2017 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/imx_drm.h>
+#include <linux/component.h>
+#include <linux/device.h>
+#include <linux/errno.h>
+#include <linux/export.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <video/dpu.h>
+
+#include "imx-drm.h"
+
+struct imx_drm_dpu_bliteng {
+	struct dpu_bliteng *dpu_be;
+	struct list_head list;
+};
+
+static DEFINE_MUTEX(imx_drm_dpu_bliteng_lock);
+static LIST_HEAD(imx_drm_dpu_bliteng_list);
+
+static int imx_dpu_num;
+
+int dpu_be_get(struct dpu_bliteng *dpu_be);
+void dpu_be_put(struct dpu_bliteng *dpu_be);
+s32 dpu_bliteng_get_id(struct dpu_bliteng *dpu_be);
+void dpu_be_configure_prefetch(struct dpu_bliteng *dpu_be,
+                   u32 width, u32 height,
+                   u32 x_offset, u32 y_offset,
+                   u32 stride, u32 format, u64 modifier,
+                   u64 baddr, u64 uv_addr);
+u32 *dpu_bliteng_get_cmd_list(struct dpu_bliteng *dpu_be);
+void dpu_be_wait(struct dpu_bliteng *dpu_be);
+int dpu_bliteng_get_empty_instance(struct dpu_bliteng **dpu_be,
+    struct device *dev);
+void dpu_bliteng_set_id(struct dpu_bliteng *dpu_be, int id);
+void dpu_bliteng_set_dev(struct dpu_bliteng *dpu_be, struct device *dev);
+int dpu_bliteng_init(struct dpu_bliteng *dpu_bliteng);
+void dpu_bliteng_fini(struct dpu_bliteng *dpu_bliteng);
+int dpu_be_blit(struct dpu_bliteng *dpu_be,
+    u32 *cmdlist, u32 cmdnum);
+
+static struct imx_drm_dpu_bliteng *imx_drm_dpu_bliteng_find_by_id(s32 id)
+{
+	struct imx_drm_dpu_bliteng *bliteng;
+
+	mutex_lock(&imx_drm_dpu_bliteng_lock);
+
+	list_for_each_entry(bliteng, &imx_drm_dpu_bliteng_list, list) {
+		if (id == dpu_bliteng_get_id(bliteng->dpu_be)) {
+			mutex_unlock(&imx_drm_dpu_bliteng_lock);
+			return bliteng;
+		}
+	}
+
+	mutex_unlock(&imx_drm_dpu_bliteng_lock);
+
+	return NULL;
+}
+
+static int imx_drm_dpu_set_cmdlist_ioctl(struct drm_device *drm_dev, void *data,
+					  struct drm_file *file)
+{
+	struct drm_imx_dpu_set_cmdlist *req;
+	struct imx_drm_dpu_bliteng *bliteng;
+	struct dpu_bliteng *dpu_be;
+	u32 cmd_nr, *cmd, *cmd_list;
+	void *user_data;
+	s32 id = 0;
+	struct drm_imx_dpu_frame_info frame_info;
+	int ret;
+
+	req = data;
+	user_data = (void *)(unsigned long)req->user_data;
+	if (copy_from_user(&id, (void __user *)user_data,
+		sizeof(id))) {
+		return -EFAULT;
+	}
+
+	if (id != 0 && id != 1)
+		return -EINVAL;
+
+	user_data += sizeof(id);
+	if (copy_from_user(&frame_info, (void __user *)user_data,
+		sizeof(frame_info))) {
+		return -EFAULT;
+	}
+
+	bliteng = imx_drm_dpu_bliteng_find_by_id(id);
+	if (!bliteng) {
+		DRM_ERROR("Failed to get dpu_bliteng\n");
+		return -ENODEV;
+	}
+
+	dpu_be = bliteng->dpu_be;
+
+	ret = dpu_be_get(dpu_be);
+
+	cmd_nr = req->cmd_nr;
+	cmd = (u32 *)(unsigned long)req->cmd;
+	cmd_list = dpu_bliteng_get_cmd_list(dpu_be);
+
+	if (copy_from_user(cmd_list, (void __user *)cmd,
+			sizeof(*cmd) * cmd_nr)) {
+		ret = -EFAULT;
+		goto err;
+	}
+
+	dpu_be_configure_prefetch(dpu_be, frame_info.width, frame_info.height,
+				  frame_info.x_offset, frame_info.y_offset,
+				  frame_info.stride, frame_info.format,
+				  frame_info.modifier, frame_info.baddr,
+				  frame_info.uv_addr);
+
+	ret = dpu_be_blit(dpu_be, cmd_list, cmd_nr);
+
+err:
+	dpu_be_put(dpu_be);
+
+	return ret;
+}
+
+static int imx_drm_dpu_wait_ioctl(struct drm_device *drm_dev, void *data,
+				  struct drm_file *file)
+{
+	struct drm_imx_dpu_wait *wait;
+	struct imx_drm_dpu_bliteng *bliteng;
+	struct dpu_bliteng *dpu_be;
+	void *user_data;
+	s32 id = 0;
+	int ret;
+
+	wait = data;
+	user_data = (void *)(unsigned long)wait->user_data;
+	if (copy_from_user(&id, (void __user *)user_data,
+		sizeof(id))) {
+		return -EFAULT;
+	}
+
+	if (id != 0 && id != 1)
+		return -EINVAL;
+
+	bliteng = imx_drm_dpu_bliteng_find_by_id(id);
+	if (!bliteng) {
+		DRM_ERROR("Failed to get dpu_bliteng\n");
+		return -ENODEV;
+	}
+
+	dpu_be = bliteng->dpu_be;
+
+	ret = dpu_be_get(dpu_be);
+
+	dpu_be_wait(dpu_be);
+
+	dpu_be_put(dpu_be);
+
+	return ret;
+}
+
+static int imx_drm_dpu_get_param_ioctl(struct drm_device *drm_dev, void *data,
+				       struct drm_file *file)
+{
+	enum drm_imx_dpu_param *param = data;
+	int ret;
+
+	switch (*param) {
+	case (DRM_IMX_MAX_DPUS):
+		ret = imx_dpu_num;
+		break;
+	default:
+		ret = -EINVAL;
+		DRM_ERROR("Unknown param![%d]\n", *param);
+		break;
+	}
+
+	return ret;
+}
+
+static struct drm_ioctl_desc imx_drm_dpu_ioctls[] = {
+	DRM_IOCTL_DEF_DRV(IMX_DPU_SET_CMDLIST, imx_drm_dpu_set_cmdlist_ioctl,
+			DRM_RENDER_ALLOW),
+	DRM_IOCTL_DEF_DRV(IMX_DPU_WAIT, imx_drm_dpu_wait_ioctl,
+			DRM_RENDER_ALLOW),
+	DRM_IOCTL_DEF_DRV(IMX_DPU_GET_PARAM, imx_drm_dpu_get_param_ioctl,
+			DRM_RENDER_ALLOW),
+};
+
+static int dpu_bliteng_bind(struct device *dev, struct device *master,
+			    void *data)
+{
+	struct drm_device *drm = (struct drm_device *)data;
+	struct imx_drm_dpu_bliteng *bliteng;
+	struct dpu_bliteng *dpu_bliteng = NULL;
+	int ret;
+
+	bliteng = devm_kzalloc(dev, sizeof(*bliteng), GFP_KERNEL);
+	if (!bliteng)
+		return -ENOMEM;
+
+	INIT_LIST_HEAD(&bliteng->list);
+
+	ret = dpu_bliteng_get_empty_instance(&dpu_bliteng, dev);
+	if (ret)
+		return ret;
+
+	dpu_bliteng_set_id(dpu_bliteng, imx_dpu_num);
+	dpu_bliteng_set_dev(dpu_bliteng, dev);
+
+	ret = dpu_bliteng_init(dpu_bliteng);
+	if (ret)
+		return ret;
+
+	mutex_lock(&imx_drm_dpu_bliteng_lock);
+	bliteng->dpu_be = dpu_bliteng;
+	list_add_tail(&bliteng->list, &imx_drm_dpu_bliteng_list);
+	mutex_unlock(&imx_drm_dpu_bliteng_lock);
+
+	dev_set_drvdata(dev, dpu_bliteng);
+
+	imx_dpu_num++;
+
+	if (drm->driver->num_ioctls == 0) {
+		drm->driver->ioctls = imx_drm_dpu_ioctls;
+		drm->driver->num_ioctls = ARRAY_SIZE(imx_drm_dpu_ioctls);
+	}
+
+	return 0;
+}
+
+static void dpu_bliteng_unbind(struct device *dev, struct device *master,
+			       void *data)
+{
+	struct drm_device *drm = (struct drm_device *)data;
+	struct imx_drm_dpu_bliteng *bliteng;
+	struct dpu_bliteng *dpu_bliteng = dev_get_drvdata(dev);
+	s32 id = dpu_bliteng_get_id(dpu_bliteng);
+
+	bliteng = imx_drm_dpu_bliteng_find_by_id(id);
+	list_del(&bliteng->list);
+
+	dpu_bliteng_fini(dpu_bliteng);
+	dev_set_drvdata(dev, NULL);
+
+	imx_dpu_num--;
+
+	if (drm->driver->num_ioctls != 0) {
+		drm->driver->ioctls = NULL;
+		drm->driver->num_ioctls = 0;
+	}
+}
+
+static const struct component_ops dpu_bliteng_ops = {
+	.bind = dpu_bliteng_bind,
+	.unbind = dpu_bliteng_unbind,
+};
+
+static int dpu_bliteng_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+
+	if (!dev->platform_data)
+		return -EINVAL;
+
+	return component_add(dev, &dpu_bliteng_ops);
+}
+
+static int dpu_bliteng_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &dpu_bliteng_ops);
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int dpu_bliteng_suspend(struct device *dev)
+{
+	struct dpu_bliteng *dpu_bliteng = dev_get_drvdata(dev);
+	int ret;
+
+	if (dpu_bliteng == NULL)
+		return 0;
+
+	ret = dpu_be_get(dpu_bliteng);
+
+	dpu_be_wait(dpu_bliteng);
+
+	dpu_be_put(dpu_bliteng);
+
+	dpu_bliteng_fini(dpu_bliteng);
+
+	return 0;
+}
+
+static int dpu_bliteng_resume(struct device *dev)
+{
+	struct dpu_bliteng *dpu_bliteng = dev_get_drvdata(dev);
+
+	if (dpu_bliteng != NULL)
+		dpu_bliteng_init(dpu_bliteng);
+
+	return 0;
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(dpu_bliteng_pm_ops,
+			 dpu_bliteng_suspend, dpu_bliteng_resume);
+
+struct platform_driver dpu_bliteng_driver = {
+	.driver = {
+		.name = "imx-drm-dpu-bliteng",
+		.pm = &dpu_bliteng_pm_ops,
+	},
+	.probe = dpu_bliteng_probe,
+	.remove = dpu_bliteng_remove,
+};
+
+module_platform_driver(dpu_bliteng_driver);
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_DESCRIPTION("i.MX DRM DPU BLITENG");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-crc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-crc.c
@@ -0,0 +1,385 @@
+/*
+ * Copyright 2019,2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drm_atomic.h>
+#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
+#include <drm/drm_plane.h>
+#include <linux/interrupt.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-crc.h"
+#include "dpu-crtc.h"
+
+static inline void get_left(struct drm_rect *r, struct drm_display_mode *m)
+{
+	r->x1 = 0;
+	r->y1 = 0;
+	r->x2 = m->hdisplay >> 1;
+	r->y2 = m->vdisplay;
+}
+
+static inline void get_right(struct drm_rect *r, struct drm_display_mode *m)
+{
+	r->x1 = m->hdisplay >> 1;
+	r->y1 = 0;
+	r->x2 = m->hdisplay;
+	r->y2 = m->vdisplay;
+}
+
+static void
+dpu_enable_signature_roi(struct dpu_signature *sig, struct drm_rect *roi)
+{
+	signature_continuous_mode(sig, true);
+	signature_win(sig, 0, roi->x1, roi->y1, roi->x2, roi->y2);
+	signature_eval_win(sig, 0, true);
+	signature_shdldreq(sig, 0x1);
+}
+
+static void dpu_disable_signature(struct dpu_signature *sig)
+{
+	signature_continuous_mode(sig, false);
+	signature_wait_for_idle(sig);
+	signature_eval_win(sig, 0, false);
+}
+
+/*
+ * Supported modes and source names:
+ * 1) auto mode:
+ *    "auto" should be selected as the source name.
+ *    The evaluation window is the same to the display region as
+ *    indicated by drm_crtc_state->adjusted_mode.
+ *
+ * 2) region of interest(ROI) mode:
+ *    "roi:x1,y1,x2,y2" should be selected as the source name.
+ *    The region of interest is defined by the inclusive upper left
+ *    position at (x1, y1) and the exclusive lower right position
+ *    at (x2, y2), see struct drm_rect for the same idea.
+ *    The evaluation window is the region of interest.
+ */
+static int
+dpu_crc_parse_source(const char *source_name, enum dpu_crc_source *s,
+		     struct drm_rect *roi)
+{
+	static const char roi_prefix[] = "roi:";
+
+	if (!source_name) {
+		*s = DPU_CRC_SRC_NONE;
+	} else if (!strcmp(source_name, "auto")) {
+		*s = DPU_CRC_SRC_FRAMEGEN;
+	} else if (strstarts(source_name, roi_prefix)) {
+		char *options, *opt;
+		int len = strlen(roi_prefix);
+		int params[4];
+		int i = 0, ret;
+
+		options = kstrdup(source_name + len, GFP_KERNEL);
+
+		while ((opt = strsep(&options, ",")) != NULL) {
+			if (i > 4)
+				return -EINVAL;
+
+			ret = kstrtouint(opt, 10, &params[i]);
+			if (ret < 0)
+				return ret;
+
+			if (params[i] < 0)
+				return -EINVAL;
+
+			i++;
+		}
+
+		if (i != 4)
+			return -EINVAL;
+
+		roi->x1 = params[0];
+		roi->y1 = params[1];
+		roi->x2 = params[2];
+		roi->y2 = params[3];
+
+		if (!drm_rect_visible(roi))
+			return -EINVAL;
+
+		*s = DPU_CRC_SRC_FRAMEGEN_ROI;
+	} else {
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+int dpu_crtc_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
+			       size_t *values_cnt)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct imx_crtc_state *imx_crtc_state;
+	struct dpu_crtc_state *dcstate;
+	struct drm_rect roi;
+	enum dpu_crc_source source;
+	int ret;
+
+	if (dpu_crc_parse_source(source_name, &source, &roi) < 0) {
+		dev_dbg(dpu_crtc->dev, "unknown source %s\n", source_name);
+		return -EINVAL;
+	}
+
+	ret = drm_modeset_lock_single_interruptible(&crtc->mutex);
+	if (ret)
+		return ret;
+
+	imx_crtc_state = to_imx_crtc_state(crtc->state);
+	dcstate = to_dpu_crtc_state(imx_crtc_state);
+	*values_cnt = dcstate->use_pc ? 6 : 3;
+
+	drm_modeset_unlock(&crtc->mutex);
+
+	return ret;
+}
+
+int dpu_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct drm_modeset_acquire_ctx ctx;
+	struct drm_crtc_state *crtc_state;
+	struct drm_atomic_state *state;
+	struct drm_rect roi = {0, 0, 0, 0};
+	enum dpu_crc_source source;
+	int ret;
+
+	if (dpu_crc_parse_source(source_name, &source, &roi) < 0) {
+		dev_dbg(dpu_crtc->dev, "unknown source %s\n", source_name);
+		return -EINVAL;
+	}
+
+	/* Perform an atomic commit to set the CRC source. */
+	drm_modeset_acquire_init(&ctx, 0);
+
+	state = drm_atomic_state_alloc(crtc->dev);
+	if (!state) {
+		ret = -ENOMEM;
+		goto unlock;
+	}
+
+	state->acquire_ctx = &ctx;
+
+retry:
+	crtc_state = drm_atomic_get_crtc_state(state, crtc);
+	if (!IS_ERR(crtc_state)) {
+		struct imx_crtc_state *imx_crtc_state;
+		struct dpu_crtc_state *dcstate;
+
+		imx_crtc_state = to_imx_crtc_state(crtc_state);
+		dcstate = to_dpu_crtc_state(imx_crtc_state);
+
+		if ((dcstate->use_pc && crtc->crc.values_cnt != 6) ||
+		    (!dcstate->use_pc && crtc->crc.values_cnt != 3)) {
+			ret = -EINVAL;
+			goto put;
+		}
+
+		dcstate->crc.source = source;
+		dpu_copy_roi(&roi, &dcstate->crc.roi);
+		dpu_crtc->use_dual_crc = dcstate->use_pc;
+
+		ret = drm_atomic_commit(state);
+	} else {
+		ret = PTR_ERR(crtc_state);
+	}
+
+	if (ret == -EDEADLK) {
+		drm_atomic_state_clear(state);
+		drm_modeset_backoff(&ctx);
+		goto retry;
+	}
+
+put:
+	drm_atomic_state_put(state);
+
+unlock:
+	drm_modeset_drop_locks(&ctx);
+	drm_modeset_acquire_fini(&ctx);
+
+	return ret;
+}
+
+irqreturn_t dpu_crc_valid_irq_threaded_handler(int irq, void *dev_id)
+{
+	struct dpu_crtc *dpu_crtc = dev_id;
+	struct dpu_signature *sig = dpu_crtc->sig;
+	struct dpu_crtc *aux_dpu_crtc = dpu_crtc_get_aux_dpu_crtc(dpu_crtc);
+	bool dual_crc = dpu_crtc->use_dual_crc;
+	unsigned long ret;
+	uint32_t crcs[6] = {0, 0, 0, 0, 0, 0};
+
+	dev_dbg(dpu_crtc->dev, "CRC valid irq threaded handler\n");
+
+	signature_crc_value(sig, 0, &dpu_crtc->crc_red,
+				    &dpu_crtc->crc_green,
+				    &dpu_crtc->crc_blue);
+
+	if (dual_crc && dpu_crtc->stream_id == 1) {
+		complete(&aux_dpu_crtc->aux_crc_done);
+		return IRQ_HANDLED;
+	}
+
+	if (!dual_crc ||
+	    (dual_crc && dpu_crtc->dual_crc_flag != DPU_DUAL_CRC_FLAG_RIGHT)) {
+		crcs[2] = dpu_crtc->crc_red;
+		crcs[1] = dpu_crtc->crc_green;
+		crcs[0] = dpu_crtc->crc_blue;
+	}
+
+	if (dual_crc && dpu_crtc->stream_id == 0) {
+		ret = wait_for_completion_timeout(&dpu_crtc->aux_crc_done,
+						  HZ / 20);
+		if (ret == 0)
+			dev_warn(dpu_crtc->dev,
+				"wait for auxiliary CRC done timeout\n");
+
+		if (dpu_crtc->dual_crc_flag != DPU_DUAL_CRC_FLAG_LEFT) {
+			crcs[5] = aux_dpu_crtc->crc_red;
+			crcs[4] = aux_dpu_crtc->crc_green;
+			crcs[3] = aux_dpu_crtc->crc_blue;
+		}
+	}
+
+	drm_crtc_add_crc_entry(&dpu_crtc->base, false, 0, crcs);
+
+	return IRQ_HANDLED;
+}
+
+void dpu_crtc_enable_crc_source(struct drm_crtc *crtc,
+				enum dpu_crc_source source,
+				struct drm_rect *roi)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct dpu_crtc *aux_dpu_crtc = dpu_crtc_get_aux_dpu_crtc(dpu_crtc);
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+	struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+	struct completion *shdld_done;
+	struct drm_rect left, right;
+	struct drm_rect r, aux_r, clip;
+	bool dual_crc = dpu_crtc->use_dual_crc;
+	bool use_left, use_right;
+	int half_hdisplay;
+	unsigned long ret;
+
+	if (source == DPU_CRC_SRC_NONE)
+		return;
+
+	if (dual_crc != dcstate->use_pc)
+		return;
+
+	if (dpu_crtc->crc_is_enabled)
+		return;
+
+	if (dual_crc) {
+		half_hdisplay = mode->hdisplay >> 1;
+
+		get_left(&left, mode);
+		get_right(&right, mode);
+
+		dpu_copy_roi(&left, &clip);
+		if (drm_rect_intersect(&clip, roi)) {
+			dpu_copy_roi(&clip, &r);
+			use_left = true;
+		} else {
+			dpu_copy_roi(&left, &r);
+			use_left = false;
+		}
+
+		if (drm_rect_intersect(&right, roi)) {
+			right.x1 -= half_hdisplay;
+			right.x2 -= half_hdisplay;
+			dpu_copy_roi(&right, &aux_r);
+			use_right = true;
+		} else {
+			dpu_copy_roi(&left, &aux_r);
+			use_right = false;
+		}
+
+		if (use_left && !use_right) {
+			dpu_crtc->dual_crc_flag = DPU_DUAL_CRC_FLAG_LEFT;
+		} else if (!use_left && use_right) {
+			dpu_crtc->dual_crc_flag = DPU_DUAL_CRC_FLAG_RIGHT;
+		} else if (use_left && use_right) {
+			dpu_crtc->dual_crc_flag = DPU_DUAL_CRC_FLAG_DUAL;
+		} else {
+			dpu_crtc->dual_crc_flag = DPU_DUAL_CRC_FLAG_ERR_NONE;
+			dev_err(dpu_crtc->dev, "error flag for dual CRC\n");
+			return;
+		}
+	} else {
+		dpu_copy_roi(roi, &r);
+	}
+
+	enable_irq(dpu_crtc->crc_valid_irq);
+	enable_irq(dpu_crtc->crc_shdld_irq);
+	disengcfg_sig_select(dpu_crtc->dec, DEC_SIG_SEL_FRAMEGEN);
+	dpu_enable_signature_roi(dpu_crtc->sig, &r);
+
+	if (dual_crc) {
+		aux_dpu_crtc->use_dual_crc = dual_crc;
+		enable_irq(aux_dpu_crtc->crc_valid_irq);
+		enable_irq(aux_dpu_crtc->crc_shdld_irq);
+		disengcfg_sig_select(dpu_crtc->aux_dec, DEC_SIG_SEL_FRAMEGEN);
+		dpu_enable_signature_roi(dpu_crtc->aux_sig, &aux_r);
+	}
+
+	shdld_done = &dpu_crtc->crc_shdld_done;
+	ret = wait_for_completion_timeout(shdld_done, HZ);
+	if (ret == 0)
+		dev_warn(dpu_crtc->dev, "wait for CRC shdld done timeout\n");
+
+	if (dual_crc) {
+		shdld_done = &aux_dpu_crtc->crc_shdld_done;
+		ret = wait_for_completion_timeout(shdld_done, HZ);
+		if (ret == 0)
+			dev_warn(dpu_crtc->dev,
+				 "wait for auxiliary CRC shdld done timeout\n");
+	}
+
+	disable_irq(dpu_crtc->crc_shdld_irq);
+	if (dual_crc)
+		disable_irq(aux_dpu_crtc->crc_shdld_irq);
+
+	dpu_crtc->crc_is_enabled = true;
+
+	dev_dbg(dpu_crtc->dev, "enable CRC source %d, ROI:" DRM_RECT_FMT "\n",
+		source, DRM_RECT_ARG(roi));
+}
+
+void dpu_crtc_disable_crc_source(struct drm_crtc *crtc, bool dual_crc)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct dpu_crtc *aux_dpu_crtc = dpu_crtc_get_aux_dpu_crtc(dpu_crtc);
+
+	if (!dpu_crtc->crc_is_enabled)
+		return;
+
+	dpu_disable_signature(dpu_crtc->sig);
+	if (dual_crc)
+		dpu_disable_signature(dpu_crtc->aux_sig);
+
+	disable_irq(dpu_crtc->crc_valid_irq);
+	if (dual_crc) {
+		disable_irq(aux_dpu_crtc->crc_valid_irq);
+		reinit_completion(&dpu_crtc->aux_crc_done);
+	}
+
+	dpu_crtc->crc_is_enabled = false;
+
+	dev_dbg(dpu_crtc->dev, "disable CRC source\n");
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-crc.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-crc.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2019,2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef _DPU_CRC_H_
+#define _DPU_CRC_H_
+
+#include "dpu-crtc.h"
+
+enum {
+	DPU_DUAL_CRC_FLAG_DUAL,
+	DPU_DUAL_CRC_FLAG_LEFT,
+	DPU_DUAL_CRC_FLAG_RIGHT,
+	DPU_DUAL_CRC_FLAG_ERR_NONE,
+};
+
+static inline bool to_enable_dpu_crc(struct dpu_crtc_state *new_dcstate,
+				     struct dpu_crtc_state *old_dcstate)
+{
+	return old_dcstate->crc.source == DPU_CRC_SRC_NONE &&
+	       new_dcstate->crc.source != DPU_CRC_SRC_NONE;
+}
+
+static inline bool to_disable_dpu_crc(struct dpu_crtc_state *new_dcstate,
+				      struct dpu_crtc_state *old_dcstate)
+{
+	return old_dcstate->crc.source != DPU_CRC_SRC_NONE &&
+	       new_dcstate->crc.source == DPU_CRC_SRC_NONE;
+}
+
+static inline void dpu_copy_roi(struct drm_rect *from, struct drm_rect *to)
+{
+	to->x1 = from->x1;
+	to->y1 = from->y1;
+	to->x2 = from->x2;
+	to->y2 = from->y2;
+}
+
+#ifdef CONFIG_DEBUG_FS
+int dpu_crtc_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
+			       size_t *values_cnt);
+int dpu_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name);
+irqreturn_t dpu_crc_valid_irq_threaded_handler(int irq, void *dev_id);
+void dpu_crtc_enable_crc_source(struct drm_crtc *crtc,
+				enum dpu_crc_source source,
+				struct drm_rect *roi);
+void dpu_crtc_disable_crc_source(struct drm_crtc *crtc, bool dual_crc);
+#else
+#define dpu_crtc_verify_crc_source NULL
+#define dpu_crtc_set_crc_source	NULL
+irqreturn_t dpu_crc_valid_irq_threaded_handler(int irq, void *dev_id)
+{
+	return IRQ_HANDLED;
+}
+void dpu_crtc_enable_crc_source(struct drm_crtc *crtc,
+				enum dpu_crc_source source,
+				struct drm_rect *roi)
+{
+}
+void dpu_crtc_disable_crc_source(struct drm_crtc *crtc, bool dual_crc)
+{
+}
+#endif
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-crtc.c
@@ -0,0 +1,1442 @@
+/*
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <linux/component.h>
+#include <linux/device.h>
+#include <linux/errno.h>
+#include <linux/export.h>
+#include <linux/irq.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <video/dpu.h>
+#include <video/imx8-pc.h>
+#include <video/imx8-prefetch.h>
+#include "dpu-crc.h"
+#include "dpu-crtc.h"
+#include "dpu-kms.h"
+#include "dpu-plane.h"
+#include "../imx-drm.h"
+
+static inline struct dpu_plane_state **
+alloc_dpu_plane_states(struct dpu_crtc *dpu_crtc)
+{
+	struct dpu_plane_state **states;
+
+	states = kcalloc(dpu_crtc->hw_plane_num, sizeof(*states), GFP_KERNEL);
+	if (!states)
+		return ERR_PTR(-ENOMEM);
+
+	return states;
+}
+
+static void dpu_crtc_queue_state_event(struct drm_crtc *crtc)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		WARN_ON(drm_crtc_vblank_get(crtc));
+		WARN_ON(dpu_crtc->event);
+		dpu_crtc->event = crtc->state->event;
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+struct dpu_plane_state **
+crtc_state_get_dpu_plane_states(struct drm_crtc_state *state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+
+	return dcstate->dpu_plane_states;
+}
+
+struct dpu_crtc *dpu_crtc_get_aux_dpu_crtc(struct dpu_crtc *dpu_crtc)
+{
+	struct drm_crtc *crtc = &dpu_crtc->base, *tmp_crtc;
+	struct drm_device *dev = crtc->dev;
+	struct dpu_crtc *aux_dpu_crtc = NULL;
+
+	drm_for_each_crtc(tmp_crtc, dev) {
+		if (tmp_crtc == crtc)
+			continue;
+
+		aux_dpu_crtc = to_dpu_crtc(tmp_crtc);
+
+		if (dpu_crtc->crtc_grp_id == aux_dpu_crtc->crtc_grp_id)
+			break;
+	}
+
+	BUG_ON(!aux_dpu_crtc);
+
+	return aux_dpu_crtc;
+}
+
+static void dpu_crtc_atomic_enable(struct drm_crtc *crtc,
+				   struct drm_crtc_state *old_crtc_state)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct dpu_crtc *aux_dpu_crtc = dpu_crtc_get_aux_dpu_crtc(dpu_crtc);
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+	struct dpu_plane *dplane = to_dpu_plane(crtc->primary);
+	struct dpu_plane_res *res = &dplane->grp->res;
+	struct dpu_extdst *plane_ed = res->ed[dplane->stream_id];
+	struct dpu_extdst *aux_plane_ed = dpu_aux_ed_peek(plane_ed);
+	struct dpu_extdst *m_plane_ed = NULL, *s_plane_ed;
+	struct completion *shdld_done;
+	struct completion *m_safety_shdld_done, *s_safety_shdld_done;
+	struct completion *m_content_shdld_done, *s_content_shdld_done;
+	struct completion *m_dec_shdld_done, *s_dec_shdld_done;
+	unsigned long ret, flags;
+
+	drm_crtc_vblank_on(crtc);
+
+	if (dcstate->use_pc) {
+		tcon_enable_pc(dpu_crtc->tcon);
+
+		if (extdst_is_master(plane_ed)) {
+			m_plane_ed = plane_ed;
+			s_plane_ed = aux_plane_ed;
+		} else {
+			m_plane_ed = aux_plane_ed;
+			s_plane_ed = plane_ed;
+		}
+		extdst_pixengcfg_syncmode_master(m_plane_ed, true);
+		extdst_pixengcfg_syncmode_master(s_plane_ed, false);
+	} else {
+		extdst_pixengcfg_syncmode_master(plane_ed, false);
+	}
+
+	enable_irq(dpu_crtc->safety_shdld_irq);
+	enable_irq(dpu_crtc->content_shdld_irq);
+	enable_irq(dpu_crtc->dec_shdld_irq);
+	if (dcstate->use_pc) {
+		enable_irq(aux_dpu_crtc->safety_shdld_irq);
+		enable_irq(aux_dpu_crtc->content_shdld_irq);
+		enable_irq(aux_dpu_crtc->dec_shdld_irq);
+	}
+
+	if (dcstate->use_pc) {
+		framegen_enable_clock(dpu_crtc->stream_id ?
+					dpu_crtc->aux_fg : dpu_crtc->fg);
+		extdst_pixengcfg_sync_trigger(m_plane_ed);
+		framegen_shdtokgen(dpu_crtc->m_fg);
+
+		/* don't relinquish CPU until TCONs are set to operation mode */
+		local_irq_save(flags);
+		preempt_disable();
+		/* First turn on the slave stream, second the master stream. */
+		framegen_enable(dpu_crtc->s_fg);
+		framegen_enable(dpu_crtc->m_fg);
+		/*
+		 * TKT320590:
+		 * Turn TCONs into operation mode as soon as the first dumb
+		 * frame is generated by DPU from the master stream(we don't
+		 * relinquish CPU to ensure this).  This makes DPRs/PRGs of
+		 * the dual stream be able to evade the dumb frames of the
+		 * dual stream respectively.
+		 */
+		framegen_wait_for_frame_counter_moving(dpu_crtc->m_fg);
+		/* again, slave first, then master */
+		tcon_set_operation_mode(dpu_crtc->s_tcon);
+		tcon_set_operation_mode(dpu_crtc->m_tcon);
+		local_irq_restore(flags);
+		preempt_enable();
+
+		framegen_enable_pixel_link(dpu_crtc->s_fg);
+		framegen_enable_pixel_link(dpu_crtc->m_fg);
+
+		if (dpu_crtc->aux_is_master) {
+			m_safety_shdld_done  = &aux_dpu_crtc->safety_shdld_done;
+			m_content_shdld_done = &aux_dpu_crtc->content_shdld_done;
+			m_dec_shdld_done     = &aux_dpu_crtc->dec_shdld_done;
+			s_safety_shdld_done  = &dpu_crtc->safety_shdld_done;
+			s_content_shdld_done = &dpu_crtc->content_shdld_done;
+			s_dec_shdld_done     = &dpu_crtc->dec_shdld_done;
+		} else {
+			m_safety_shdld_done  = &dpu_crtc->safety_shdld_done;
+			m_content_shdld_done = &dpu_crtc->content_shdld_done;
+			m_dec_shdld_done     = &dpu_crtc->dec_shdld_done;
+			s_safety_shdld_done  = &aux_dpu_crtc->safety_shdld_done;
+			s_content_shdld_done = &aux_dpu_crtc->content_shdld_done;
+			s_dec_shdld_done     = &aux_dpu_crtc->dec_shdld_done;
+		}
+
+		ret = wait_for_completion_timeout(m_safety_shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for master safety shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+		ret = wait_for_completion_timeout(m_content_shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for master content shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+		ret = wait_for_completion_timeout(m_dec_shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for master DEC shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+
+		ret = wait_for_completion_timeout(s_safety_shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for slave safety shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+		ret = wait_for_completion_timeout(s_content_shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for slave content shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+		ret = wait_for_completion_timeout(s_dec_shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for slave DEC shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+	} else {
+		framegen_enable_clock(dpu_crtc->fg);
+		extdst_pixengcfg_sync_trigger(plane_ed);
+		extdst_pixengcfg_sync_trigger(dpu_crtc->ed);
+		framegen_shdtokgen(dpu_crtc->fg);
+
+		/* don't relinquish CPU until TCON is set to operation mode */
+		local_irq_save(flags);
+		preempt_disable();
+		framegen_enable(dpu_crtc->fg);
+		/*
+		 * TKT320590:
+		 * Turn TCON into operation mode as soon as the first dumb
+		 * frame is generated by DPU(we don't relinquish CPU to ensure
+		 * this).  This makes DPR/PRG be able to evade the frame.
+		 */
+		framegen_wait_for_frame_counter_moving(dpu_crtc->fg);
+		tcon_set_operation_mode(dpu_crtc->tcon);
+		local_irq_restore(flags);
+		preempt_enable();
+
+		framegen_enable_pixel_link(dpu_crtc->fg);
+
+		shdld_done = &dpu_crtc->safety_shdld_done;
+		ret = wait_for_completion_timeout(shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for safety shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+		shdld_done = &dpu_crtc->content_shdld_done;
+		ret = wait_for_completion_timeout(shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for content shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+		shdld_done = &dpu_crtc->dec_shdld_done;
+		ret = wait_for_completion_timeout(shdld_done, HZ);
+		if (ret == 0)
+			DRM_WARN("[CRTC:%d:%s] %s: wait for DEC shdld done timeout\n",
+					crtc->base.id, crtc->name, __func__);
+	}
+
+	disable_irq(dpu_crtc->safety_shdld_irq);
+	disable_irq(dpu_crtc->content_shdld_irq);
+	disable_irq(dpu_crtc->dec_shdld_irq);
+	if (dcstate->use_pc) {
+		disable_irq(aux_dpu_crtc->safety_shdld_irq);
+		disable_irq(aux_dpu_crtc->content_shdld_irq);
+		disable_irq(aux_dpu_crtc->dec_shdld_irq);
+	}
+
+	dpu_crtc_queue_state_event(crtc);
+
+	if (dcstate->use_pc) {
+		framegen_wait_for_secondary_syncup(dpu_crtc->m_fg);
+		framegen_wait_for_secondary_syncup(dpu_crtc->s_fg);
+
+		if (framegen_secondary_requests_to_read_empty_fifo(dpu_crtc->m_fg)) {
+			framegen_secondary_clear_channel_status(dpu_crtc->m_fg);
+			DRM_WARN("[CRTC:%d:%s] %s: master FrameGen requests to read empty FIFO\n",
+					crtc->base.id, crtc->name, __func__);
+		}
+		if (framegen_secondary_requests_to_read_empty_fifo(dpu_crtc->s_fg)) {
+			framegen_secondary_clear_channel_status(dpu_crtc->s_fg);
+			DRM_WARN("[CRTC:%d:%s] %s: slave FrameGen requests to read empty FIFO\n",
+					crtc->base.id, crtc->name, __func__);
+		}
+	} else {
+		framegen_wait_for_secondary_syncup(dpu_crtc->fg);
+
+		if (framegen_secondary_requests_to_read_empty_fifo(dpu_crtc->fg)) {
+			framegen_secondary_clear_channel_status(dpu_crtc->fg);
+			DRM_WARN("[CRTC:%d:%s] %s: FrameGen requests to read empty FIFO\n",
+					crtc->base.id, crtc->name, __func__);
+		}
+	}
+
+	if (dcstate->crc.source != DPU_CRC_SRC_NONE)
+		dpu_crtc_enable_crc_source(crtc,
+				dcstate->crc.source, &dcstate->crc.roi);
+}
+
+static void dpu_crtc_atomic_disable(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct imx_crtc_state *imx_crtc_state =
+					to_imx_crtc_state(old_crtc_state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+	struct drm_display_mode *adjusted_mode = &old_crtc_state->adjusted_mode;
+	struct dpu_plane *dplane = to_dpu_plane(crtc->primary);
+	struct dpu_plane_res *res = &dplane->grp->res;
+	struct dpu_plane_state *dpstate;
+	struct dpu_fetchunit *fu;
+	unsigned long flags;
+	int i;
+
+	if (dcstate->crc.source != DPU_CRC_SRC_NONE)
+		dpu_crtc_disable_crc_source(crtc, dcstate->use_pc);
+
+	if (dcstate->use_pc) {
+		tcon_disable_pc(dpu_crtc->tcon);
+
+		framegen_disable_pixel_link(dpu_crtc->m_fg);
+		framegen_disable_pixel_link(dpu_crtc->s_fg);
+
+		/* don't relinquish CPU until DPRC repeat_en is disabled */
+		local_irq_save(flags);
+		preempt_disable();
+		/*
+		 * Sync to FrameGen frame counter moving so that
+		 * FrameGen can be disabled in the next frame.
+		 */
+		framegen_wait_for_frame_counter_moving(dpu_crtc->m_fg);
+
+		/* First turn off the master stream, second the slave stream. */
+		framegen_disable(dpu_crtc->m_fg);
+		framegen_disable(dpu_crtc->s_fg);
+
+		/*
+		 * There is one frame leftover after FrameGen disablement.
+		 * Sync to FrameGen frame counter moving so that
+		 * DPRC repeat_en can be disabled in the next frame.
+		 */
+		framegen_wait_for_frame_counter_moving(dpu_crtc->m_fg);
+
+		for (i = 0; i < dpu_crtc->hw_plane_num; i++) {
+			dpu_block_id_t source;
+			bool aux_source_flag;
+			bool use_prefetch;
+
+			dpstate = dcstate->dpu_plane_states[i];
+			if (!dpstate)
+				continue;
+
+			aux_source_flag = false;
+again:
+			source = aux_source_flag ? dpstate->aux_source :
+						   dpstate->source;
+			use_prefetch = aux_source_flag ?
+						dpstate->use_aux_prefetch :
+						dpstate->use_prefetch;
+			fu = source_to_fu(res, source);
+			if (!fu) {
+				local_irq_restore(flags);
+				preempt_enable();
+				return;
+			}
+
+			if (fu->dprc && use_prefetch)
+				dprc_disable_repeat_en(fu->dprc);
+
+			if (dpstate->need_aux_source && !aux_source_flag) {
+				aux_source_flag = true;
+				goto again;
+			}
+		}
+		local_irq_restore(flags);
+		preempt_enable();
+
+		framegen_wait_done(dpu_crtc->m_fg, adjusted_mode);
+		framegen_wait_done(dpu_crtc->s_fg, adjusted_mode);
+
+		framegen_disable_clock(dpu_crtc->stream_id ?
+					dpu_crtc->aux_fg : dpu_crtc->fg);
+	} else {
+		framegen_disable_pixel_link(dpu_crtc->fg);
+
+		/* don't relinquish CPU until DPRC repeat_en is disabled */
+		local_irq_save(flags);
+		preempt_disable();
+		/*
+		 * Sync to FrameGen frame counter moving so that
+		 * FrameGen can be disabled in the next frame.
+		 */
+		framegen_wait_for_frame_counter_moving(dpu_crtc->fg);
+		framegen_disable(dpu_crtc->fg);
+		/*
+		 * There is one frame leftover after FrameGen disablement.
+		 * Sync to FrameGen frame counter moving so that
+		 * DPRC repeat_en can be disabled in the next frame.
+		 */
+		framegen_wait_for_frame_counter_moving(dpu_crtc->fg);
+
+		for (i = 0; i < dpu_crtc->hw_plane_num; i++) {
+			dpstate = dcstate->dpu_plane_states[i];
+			if (!dpstate)
+				continue;
+
+			fu = source_to_fu(res, dpstate->source);
+			if (!fu) {
+				local_irq_restore(flags);
+				preempt_enable();
+				return;
+			}
+
+			if (fu->dprc && dpstate->use_prefetch)
+				dprc_disable_repeat_en(fu->dprc);
+		}
+		local_irq_restore(flags);
+		preempt_enable();
+
+		framegen_wait_done(dpu_crtc->fg, adjusted_mode);
+		framegen_disable_clock(dpu_crtc->fg);
+	}
+
+	drm_crtc_vblank_off(crtc);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event && !crtc->state->active) {
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+static void dpu_drm_crtc_reset(struct drm_crtc *crtc)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct imx_crtc_state *imx_crtc_state;
+	struct dpu_crtc_state *state;
+
+	if (crtc->state) {
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+		imx_crtc_state = to_imx_crtc_state(crtc->state);
+		state = to_dpu_crtc_state(imx_crtc_state);
+		kfree(state->dpu_plane_states);
+		kfree(state);
+		crtc->state = NULL;
+	}
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (state) {
+		state->crc.source = DPU_CRC_SRC_NONE;
+		state->crc.roi.x1 = 0;
+		state->crc.roi.y1 = 0;
+		state->crc.roi.x2 = 0;
+		state->crc.roi.y2 = 0;
+
+		crtc->state = &state->imx_crtc_state.base;
+		crtc->state->crtc = crtc;
+
+		state->dpu_plane_states = alloc_dpu_plane_states(dpu_crtc);
+		if (IS_ERR(state->dpu_plane_states))
+			kfree(state);
+	}
+}
+
+static struct drm_crtc_state *
+dpu_drm_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *imx_crtc_state;
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct dpu_crtc_state *state, *copy;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	copy = kzalloc(sizeof(*copy), GFP_KERNEL);
+	if (!copy)
+		return NULL;
+
+	copy->dpu_plane_states = alloc_dpu_plane_states(dpu_crtc);
+	if (IS_ERR(copy->dpu_plane_states)) {
+		kfree(copy);
+		return NULL;
+	}
+
+	__drm_atomic_helper_crtc_duplicate_state(crtc,
+					&copy->imx_crtc_state.base);
+	imx_crtc_state = to_imx_crtc_state(crtc->state);
+	state = to_dpu_crtc_state(imx_crtc_state);
+	copy->use_pc = state->use_pc;
+	copy->crc.source = state->crc.source;
+	dpu_copy_roi(&state->crc.roi, &copy->crc.roi);
+
+	return &copy->imx_crtc_state.base;
+}
+
+static void dpu_drm_crtc_destroy_state(struct drm_crtc *crtc,
+				       struct drm_crtc_state *state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(state);
+	struct dpu_crtc_state *dcstate;
+
+	if (state) {
+		__drm_atomic_helper_crtc_destroy_state(state);
+		dcstate = to_dpu_crtc_state(imx_crtc_state);
+		kfree(dcstate->dpu_plane_states);
+		kfree(dcstate);
+	}
+}
+
+static int dpu_enable_vblank(struct drm_crtc *crtc)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+
+	enable_irq(dpu_crtc->vbl_irq);
+
+	return 0;
+}
+
+static void dpu_disable_vblank(struct drm_crtc *crtc)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+
+	disable_irq_nosync(dpu_crtc->vbl_irq);
+}
+
+static const struct drm_crtc_funcs dpu_crtc_funcs = {
+	.set_config = drm_atomic_helper_set_config,
+	.destroy = drm_crtc_cleanup,
+	.page_flip = drm_atomic_helper_page_flip,
+	.reset = dpu_drm_crtc_reset,
+	.atomic_duplicate_state = dpu_drm_crtc_duplicate_state,
+	.atomic_destroy_state = dpu_drm_crtc_destroy_state,
+	.enable_vblank = dpu_enable_vblank,
+	.disable_vblank = dpu_disable_vblank,
+	.set_crc_source = dpu_crtc_set_crc_source,
+	.verify_crc_source = dpu_crtc_verify_crc_source,
+};
+
+static irqreturn_t dpu_vbl_irq_handler(int irq, void *dev_id)
+{
+	struct dpu_crtc *dpu_crtc = dev_id;
+	struct drm_crtc *crtc = &dpu_crtc->base;
+	unsigned long flags;
+
+	drm_crtc_handle_vblank(crtc);
+
+	spin_lock_irqsave(&crtc->dev->event_lock, flags);
+	if (dpu_crtc->event) {
+		drm_crtc_send_vblank_event(crtc, dpu_crtc->event);
+		dpu_crtc->event = NULL;
+		drm_crtc_vblank_put(crtc);
+	}
+	spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t dpu_safety_shdld_irq_handler(int irq, void *dev_id)
+{
+	struct dpu_crtc *dpu_crtc = dev_id;
+
+	complete(&dpu_crtc->safety_shdld_done);
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t dpu_content_shdld_irq_handler(int irq, void *dev_id)
+{
+	struct dpu_crtc *dpu_crtc = dev_id;
+
+	complete(&dpu_crtc->content_shdld_done);
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t dpu_dec_shdld_irq_handler(int irq, void *dev_id)
+{
+	struct dpu_crtc *dpu_crtc = dev_id;
+
+	complete(&dpu_crtc->dec_shdld_done);
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t dpu_crc_shdld_irq_handler(int irq, void *dev_id)
+{
+	struct dpu_crtc *dpu_crtc = dev_id;
+
+	complete(&dpu_crtc->crc_shdld_done);
+
+	return IRQ_HANDLED;
+}
+
+static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
+				 struct drm_crtc_state *crtc_state)
+{
+	struct drm_device *dev = crtc->dev;
+	struct drm_encoder *encoder;
+	struct drm_plane *plane;
+	struct drm_plane_state *plane_state;
+	struct dpu_plane_state *dpstate;
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+	struct imx_crtc_state *old_imx_crtc_state =
+					to_imx_crtc_state(crtc->state);
+	struct dpu_crtc_state *old_dcstate =
+					to_dpu_crtc_state(old_imx_crtc_state);
+	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
+	struct videomode vm;
+	unsigned long encoder_type = DRM_MODE_ENCODER_NONE;
+	u32 encoder_mask;
+	int i = 0;
+
+	list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
+		encoder_mask = 1 << drm_encoder_index(encoder);
+
+		if (!(crtc_state->encoder_mask & encoder_mask))
+			continue;
+
+		encoder_type = encoder->encoder_type;
+	}
+
+	if (crtc_state->enable && dcstate->use_pc) {
+		if (encoder_type != DRM_MODE_ENCODER_TMDS) {
+			DRM_DEBUG_KMS("[CRTC:%d:%s] enc type %lu doesn't support pc\n",
+					crtc->base.id, crtc->name, encoder_type);
+			return -EINVAL;
+		}
+
+		drm_display_mode_to_videomode(mode, &vm);
+		if ((vm.hactive % 2)   || (vm.hfront_porch % 2) ||
+		    (vm.hsync_len % 2) || (vm.hback_porch % 2)) {
+			DRM_DEBUG_KMS("[CRTC:%d:%s] video mode is invalid\n",
+					crtc->base.id, crtc->name);
+			return -EINVAL;
+		}
+	}
+
+	/* disallow to enable CRC when CRTC keeps at inactive status */
+	if (!crtc->state->active && !crtc_state->enable &&
+	    to_enable_dpu_crc(dcstate, old_dcstate))
+		return -EINVAL;
+
+	if (crtc_state->enable && dcstate->crc.source == DPU_CRC_SRC_FRAMEGEN) {
+		dcstate->crc.roi.x1 = 0;
+		dcstate->crc.roi.y1 = 0;
+		dcstate->crc.roi.x2 = mode->hdisplay;
+		dcstate->crc.roi.y2 = mode->vdisplay;
+	}
+
+	if (crtc_state->enable && dcstate->crc.source != DPU_CRC_SRC_NONE) {
+		if (dcstate->crc.roi.x1 < 0 || dcstate->crc.roi.y1 < 0)
+			return -EINVAL;
+
+		if (dcstate->crc.roi.x2 > mode->hdisplay ||
+		    dcstate->crc.roi.y2 > mode->vdisplay)
+			return -EINVAL;
+
+		if (!drm_rect_visible(&dcstate->crc.roi))
+			return -EINVAL;
+	}
+
+	/*
+	 * cache the plane states so that the planes can be disabled in
+	 * ->atomic_begin.
+	 */
+	drm_for_each_plane_mask(plane, crtc->dev, crtc_state->plane_mask) {
+		plane_state =
+			drm_atomic_get_plane_state(crtc_state->state, plane);
+		if (IS_ERR(plane_state))
+			return PTR_ERR(plane_state);
+
+		dpstate = to_dpu_plane_state(plane_state);
+		dcstate->dpu_plane_states[i++] = dpstate;
+	}
+
+	return 0;
+}
+
+static void dpu_crtc_atomic_begin(struct drm_crtc *crtc,
+				  struct drm_crtc_state *old_crtc_state)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct imx_crtc_state *old_imx_crtc_state =
+					to_imx_crtc_state(old_crtc_state);
+	struct dpu_crtc_state *old_dcstate =
+					to_dpu_crtc_state(old_imx_crtc_state);
+	int i;
+
+	/*
+	 * Disable all planes' resources in SHADOW only.
+	 * Whether any of them would be disabled or kept running depends
+	 * on new plane states' commit.
+	 */
+	for (i = 0; i < dpu_crtc->hw_plane_num; i++) {
+		struct dpu_plane_state *old_dpstate;
+		struct drm_plane_state *plane_state;
+		struct dpu_plane *dplane;
+		struct dpu_plane_res *res;
+		struct dpu_fetchunit *fu;
+		struct dpu_fetchunit *fe = NULL;
+		struct dpu_hscaler *hs = NULL;
+		struct dpu_vscaler *vs = NULL;
+		struct dpu_layerblend *lb;
+		struct dpu_extdst *ed;
+		extdst_src_sel_t ed_src;
+		dpu_block_id_t blend, source;
+		unsigned int stream_id;
+		int lb_id;
+		bool release_aux_source;
+
+		old_dpstate = old_dcstate->dpu_plane_states[i];
+		if (!old_dpstate)
+			continue;
+
+		plane_state = &old_dpstate->base;
+		dplane = to_dpu_plane(plane_state->plane);
+		res = &dplane->grp->res;
+
+		release_aux_source = false;
+again:
+		if (old_dcstate->use_pc) {
+			if (release_aux_source) {
+				source = old_dpstate->aux_source;
+				blend = old_dpstate->aux_blend;
+				stream_id = 1;
+			} else {
+				source = old_dpstate->source;
+				blend = old_dpstate->blend;
+				stream_id = old_dpstate->left_src_w ? 0 : 1;
+			}
+		} else {
+			source = old_dpstate->source;
+			blend = old_dpstate->blend;
+			stream_id = dplane->stream_id;
+		}
+
+		fu = source_to_fu(res, source);
+		if (!fu)
+			return;
+
+		lb_id = blend_to_id(blend);
+		if (lb_id < 0)
+			return;
+
+		lb = res->lb[lb_id];
+
+		layerblend_pixengcfg_clken(lb, CLKEN__DISABLE);
+		if (fetchunit_is_fetchdecode(fu)) {
+			fe = fetchdecode_get_fetcheco(fu);
+			hs = fetchdecode_get_hscaler(fu);
+			vs = fetchdecode_get_vscaler(fu);
+			hscaler_pixengcfg_clken(hs, CLKEN__DISABLE);
+			vscaler_pixengcfg_clken(vs, CLKEN__DISABLE);
+			hscaler_mode(hs, SCALER_NEUTRAL);
+			vscaler_mode(vs, SCALER_NEUTRAL);
+		}
+		if ((!old_dcstate->use_pc && old_dpstate->is_top) ||
+		     (old_dcstate->use_pc &&
+		      ((!stream_id && old_dpstate->is_left_top) ||
+			(stream_id && old_dpstate->is_right_top)))) {
+			ed = res->ed[stream_id];
+			ed_src = stream_id ?
+				ED_SRC_CONSTFRAME1 : ED_SRC_CONSTFRAME0;
+			extdst_pixengcfg_src_sel(ed, ed_src);
+		}
+
+		fu->ops->disable_src_buf(fu);
+		if (fetchunit_is_fetchdecode(fu)) {
+			fetchdecode_pixengcfg_dynamic_src_sel(fu,
+							FD_SRC_DISABLE);
+			fe->ops->disable_src_buf(fe);
+		}
+
+		if (old_dpstate->need_aux_source && !release_aux_source) {
+			release_aux_source = true;
+			goto again;
+		}
+	}
+}
+
+static void dpu_crtc_atomic_flush(struct drm_crtc *crtc,
+				  struct drm_crtc_state *old_crtc_state)
+{
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc), *aux_dpu_crtc = NULL;
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct imx_crtc_state *old_imx_crtc_state =
+					to_imx_crtc_state(old_crtc_state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+	struct dpu_crtc_state *old_dcstate =
+					to_dpu_crtc_state(old_imx_crtc_state);
+	struct dpu_plane *dplane = to_dpu_plane(crtc->primary);
+	struct dpu_plane_state *old_dpstate;
+	struct dpu_plane_res *res = &dplane->grp->res;
+	struct dpu_extdst *ed = res->ed[dplane->stream_id], *aux_ed;
+	struct dpu_fetchunit *fu;
+	dpu_block_id_t source;
+	struct completion *shdld_done;
+	struct completion *m_content_shdld_done = NULL;
+	struct completion *s_content_shdld_done = NULL;
+	unsigned long ret;
+	int i;
+	bool need_modeset = drm_atomic_crtc_needs_modeset(crtc->state);
+	bool need_wait4fgfcm = false, need_aux_wait4fgfcm = false;
+	bool use_prefetch;
+
+	if (!crtc->state->active && !old_crtc_state->active)
+		return;
+
+	if (!need_modeset && to_disable_dpu_crc(dcstate, old_dcstate))
+		dpu_crtc_disable_crc_source(crtc, old_dcstate->use_pc);
+
+	/*
+	 * Scan over old plane fetchunits to determine if we
+	 * need to wait for FrameGen frame counter moving in
+	 * the next loop prior to DPRC repeat_en disablement
+	 * or not.
+	 */
+	for (i = 0; i < dpu_crtc->hw_plane_num; i++) {
+		bool aux_source_flag;
+
+		old_dpstate = old_dcstate->dpu_plane_states[i];
+		if (!old_dpstate)
+			continue;
+
+		aux_source_flag = false;
+again1:
+		source = aux_source_flag ?
+				old_dpstate->aux_source : old_dpstate->source;
+		use_prefetch = aux_source_flag ?
+					old_dpstate->use_aux_prefetch :
+					old_dpstate->use_prefetch;
+		fu = source_to_fu(res, source);
+		if (!fu)
+			return;
+
+		if (!fu->ops->is_enabled(fu) && use_prefetch && !need_modeset) {
+			if (aux_source_flag)
+				need_aux_wait4fgfcm = true;
+			else
+				need_wait4fgfcm = true;
+		}
+
+		if (old_dpstate->need_aux_source && !aux_source_flag) {
+			aux_source_flag = true;
+			goto again1;
+		}
+	}
+
+	for (i = 0; i < dpu_crtc->hw_plane_num; i++) {
+		struct dpu_fetchunit *fe;
+		struct dpu_hscaler *hs;
+		struct dpu_vscaler *vs;
+		bool aux_source_disable;
+
+		old_dpstate = old_dcstate->dpu_plane_states[i];
+		if (!old_dpstate)
+			continue;
+
+		/*
+		 * Sync with FrameGen frame counter moving so that
+		 * we may disable DPRC repeat_en correctly.
+		 * FIXME: to disable preemption and irq to make sure
+		 *        DPRC repeat_en will be disabled ASAP.
+		 */
+		if (need_wait4fgfcm || need_aux_wait4fgfcm)
+			framegen_wait_for_frame_counter_moving(
+					dcstate->use_pc ?
+						dpu_crtc->m_fg : dpu_crtc->fg);
+
+		aux_source_disable = false;
+again2:
+		source = aux_source_disable ?
+				old_dpstate->aux_source : old_dpstate->source;
+		use_prefetch = aux_source_disable ?
+					old_dpstate->use_aux_prefetch :
+					old_dpstate->use_prefetch;
+		fu = source_to_fu(res, source);
+		if (!fu)
+			return;
+
+		if (!fu->ops->is_enabled(fu)) {
+			fu->ops->set_stream_id(fu, DPU_PLANE_SRC_DISABLED);
+			if (fu->dprc && use_prefetch)
+				dprc_disable_repeat_en(fu->dprc);
+		}
+
+		if (!fetchunit_is_fetchdecode(fu))
+			continue;
+
+		fe = fetchdecode_get_fetcheco(fu);
+		if (!fe->ops->is_enabled(fe))
+			fe->ops->set_stream_id(fe, DPU_PLANE_SRC_DISABLED);
+
+		hs = fetchdecode_get_hscaler(fu);
+		if (!hscaler_is_enabled(hs))
+			hscaler_set_stream_id(hs, DPU_PLANE_SRC_DISABLED);
+
+		vs = fetchdecode_get_vscaler(fu);
+		if (!vscaler_is_enabled(vs))
+			vscaler_set_stream_id(vs, DPU_PLANE_SRC_DISABLED);
+
+		if (old_dpstate->need_aux_source && !aux_source_disable) {
+			aux_source_disable = true;
+			goto again2;
+		}
+	}
+
+	if (dcstate->use_pc) {
+		aux_dpu_crtc = dpu_crtc_get_aux_dpu_crtc(dpu_crtc);
+
+		if (dpu_crtc->aux_is_master) {
+			m_content_shdld_done = &aux_dpu_crtc->content_shdld_done;
+			s_content_shdld_done = &dpu_crtc->content_shdld_done;
+		} else {
+			m_content_shdld_done = &dpu_crtc->content_shdld_done;
+			s_content_shdld_done = &aux_dpu_crtc->content_shdld_done;
+		}
+	}
+
+	if (!need_modeset) {
+		enable_irq(dpu_crtc->content_shdld_irq);
+		if (dcstate->use_pc)
+			enable_irq(aux_dpu_crtc->content_shdld_irq);
+
+		if (dcstate->use_pc) {
+			if (extdst_is_master(ed)) {
+				extdst_pixengcfg_sync_trigger(ed);
+			} else {
+				aux_ed = dpu_aux_ed_peek(ed);
+				extdst_pixengcfg_sync_trigger(aux_ed);
+			}
+		} else {
+			extdst_pixengcfg_sync_trigger(ed);
+		}
+
+		if (dcstate->use_pc) {
+			shdld_done = m_content_shdld_done;
+			ret = wait_for_completion_timeout(shdld_done, HZ);
+			if (ret == 0)
+				DRM_WARN("[CRTC:%d:%s] %s: wait for master content shdld done timeout\n",
+						crtc->base.id, crtc->name, __func__);
+
+			shdld_done = s_content_shdld_done;
+			ret = wait_for_completion_timeout(shdld_done, HZ);
+			if (ret == 0)
+				DRM_WARN("[CRTC:%d:%s] %s: wait for slave content shdld done timeout\n",
+						crtc->base.id, crtc->name, __func__);
+		} else {
+			shdld_done = &dpu_crtc->content_shdld_done;
+			ret = wait_for_completion_timeout(shdld_done, HZ);
+			if (ret == 0)
+				DRM_WARN("[CRTC:%d:%s] %s: wait for content shdld done timeout\n",
+						crtc->base.id, crtc->name, __func__);
+		}
+
+		disable_irq(dpu_crtc->content_shdld_irq);
+		if (dcstate->use_pc)
+			disable_irq(aux_dpu_crtc->content_shdld_irq);
+
+		if (dcstate->use_pc) {
+			if (framegen_secondary_requests_to_read_empty_fifo(dpu_crtc->m_fg)) {
+				framegen_secondary_clear_channel_status(dpu_crtc->m_fg);
+				DRM_WARN("[CRTC:%d:%s] %s: master FrameGen requests to read empty FIFO\n",
+						crtc->base.id, crtc->name, __func__);
+			}
+			if (framegen_secondary_requests_to_read_empty_fifo(dpu_crtc->s_fg)) {
+				framegen_secondary_clear_channel_status(dpu_crtc->s_fg);
+				DRM_WARN("[CRTC:%d:%s] %s: slave FrameGen requests to read empty FIFO\n",
+						crtc->base.id, crtc->name, __func__);
+			}
+		} else {
+			if (framegen_secondary_requests_to_read_empty_fifo(dpu_crtc->fg)) {
+				framegen_secondary_clear_channel_status(dpu_crtc->fg);
+				DRM_WARN("[CRTC:%d:%s] %s: FrameGen requests to read empty FIFO\n",
+						crtc->base.id, crtc->name, __func__);
+			}
+		}
+
+		dpu_crtc_queue_state_event(crtc);
+	} else if (!crtc->state->active) {
+		if (old_dcstate->use_pc) {
+			if (extdst_is_master(ed)) {
+				extdst_pixengcfg_sync_trigger(ed);
+			} else {
+				aux_ed = dpu_aux_ed_peek(ed);
+				extdst_pixengcfg_sync_trigger(aux_ed);
+			}
+		} else {
+			extdst_pixengcfg_sync_trigger(ed);
+		}
+	}
+
+	if (!need_modeset && to_enable_dpu_crc(dcstate, old_dcstate))
+		dpu_crtc_enable_crc_source(crtc,
+				dcstate->crc.source, &dcstate->crc.roi);
+}
+
+static void dpu_crtc_mode_set_nofb(struct drm_crtc *crtc)
+{
+	struct drm_device *dev = crtc->dev;
+	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+	struct dpu_crtc *aux_dpu_crtc = dpu_crtc_get_aux_dpu_crtc(dpu_crtc);
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct dpu_crtc_state *dcstate = to_dpu_crtc_state(imx_crtc_state);
+	struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+	struct dpu_plane *dplane = to_dpu_plane(crtc->primary);
+	struct dpu_plane_res *res = &dplane->grp->res;
+	struct dpu_constframe *pa_cf, *sa_cf;
+	struct dpu_disengcfg *dec;
+	struct dpu_extdst *ed, *plane_ed;
+	struct dpu_framegen *fg;
+	struct dpu_tcon *tcon;
+	struct dpu_store *st;
+	struct drm_encoder *encoder;
+	unsigned long encoder_type = DRM_MODE_ENCODER_NONE;
+	unsigned int stream_id;
+	int crtc_hdisplay = dcstate->use_pc ?
+			(mode->crtc_hdisplay >> 1) : mode->crtc_hdisplay;
+	extdst_src_sel_t ed_src;
+	bool cfg_aux_pipe = false;
+
+	DRM_DEBUG_KMS("[CRTC:%d:%s] %s: mode->hdisplay: %d\n",
+			crtc->base.id, crtc->name, __func__, mode->hdisplay);
+	DRM_DEBUG_KMS("[CRTC:%d:%s] %s: mode->vdisplay: %d\n",
+			crtc->base.id, crtc->name, __func__, mode->vdisplay);
+	DRM_DEBUG_KMS("[CRTC:%d:%s] %s: mode->clock: %dKHz\n",
+			crtc->base.id, crtc->name, __func__, mode->clock);
+	DRM_DEBUG_KMS("[CRTC:%d:%s] %s: mode->vrefresh: %dHz\n",
+			crtc->base.id, crtc->name, __func__,
+			drm_mode_vrefresh(mode));
+	if (dcstate->use_pc)
+		DRM_DEBUG_KMS("[CRTC:%d:%s] %s: use pixel combiner\n",
+				crtc->base.id, crtc->name, __func__);
+
+	list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
+		if (encoder->crtc == crtc) {
+			encoder_type = encoder->encoder_type;
+			break;
+		}
+	}
+
+again:
+	if (cfg_aux_pipe) {
+		pa_cf = dpu_crtc->aux_pa_cf;
+		sa_cf = dpu_crtc->aux_sa_cf;
+		dec = dpu_crtc->aux_dec;
+		ed = dpu_crtc->aux_ed;
+		fg = dpu_crtc->aux_fg;
+		tcon = dpu_crtc->aux_tcon;
+		st = aux_dpu_crtc->st;
+		stream_id = dpu_crtc->stream_id ^ 1;
+	} else {
+		pa_cf = dpu_crtc->pa_cf;
+		sa_cf = dpu_crtc->sa_cf;
+		dec = dpu_crtc->dec;
+		ed = dpu_crtc->ed;
+		fg = dpu_crtc->fg;
+		tcon = dpu_crtc->tcon;
+		st = dpu_crtc->st;
+		stream_id = dpu_crtc->stream_id;
+	}
+
+	if (dcstate->use_pc) {
+		store_pixengcfg_syncmode_fixup(st, true);
+		framegen_syncmode_fixup(fg,
+				framegen_is_master(fg) ? false : true);
+		framegen_syncmode(fg, framegen_is_master(fg) ?
+				FGSYNCMODE__MASTER : FGSYNCMODE__SLAVE_ONCE);
+	} else {
+		store_pixengcfg_syncmode_fixup(st, false);
+		framegen_syncmode_fixup(fg, false);
+		framegen_syncmode(fg, FGSYNCMODE__OFF);
+	}
+
+	framegen_cfg_videomode(fg, mode, dcstate->use_pc, encoder_type);
+	framegen_displaymode(fg, FGDM__SEC_ON_TOP);
+
+	framegen_panic_displaymode(fg, FGDM__TEST);
+
+	tcon_cfg_videomode(tcon, mode, dcstate->use_pc);
+	tcon_set_fmt(tcon, imx_crtc_state->bus_format);
+	tcon_configure_pc(tcon, stream_id, mode->crtc_hdisplay,
+				dcstate->use_pc ? PC_COMBINE : PC_BYPASS, 0);
+
+	constframe_framedimensions(pa_cf, crtc_hdisplay, mode->crtc_vdisplay);
+	constframe_framedimensions(sa_cf, crtc_hdisplay, mode->crtc_vdisplay);
+	constframe_constantcolor(sa_cf, 0, 0, 0, 0);
+
+	ed_src = stream_id ? ED_SRC_CONSTFRAME5 : ED_SRC_CONSTFRAME4;
+	extdst_pixengcfg_src_sel(ed, ed_src);
+
+	plane_ed = res->ed[stream_id];
+	ed_src = stream_id ? ED_SRC_CONSTFRAME1 : ED_SRC_CONSTFRAME0;
+	extdst_pixengcfg_src_sel(plane_ed, ed_src);
+
+	if (dcstate->use_pc && !cfg_aux_pipe) {
+		cfg_aux_pipe = true;
+		goto again;
+	}
+}
+
+static const struct drm_crtc_helper_funcs dpu_helper_funcs = {
+	.mode_set_nofb = dpu_crtc_mode_set_nofb,
+	.atomic_check = dpu_crtc_atomic_check,
+	.atomic_begin = dpu_crtc_atomic_begin,
+	.atomic_flush = dpu_crtc_atomic_flush,
+	.atomic_enable = dpu_crtc_atomic_enable,
+	.atomic_disable = dpu_crtc_atomic_disable,
+};
+
+static void dpu_crtc_put_resources(struct dpu_crtc *dpu_crtc)
+{
+	if (!IS_ERR_OR_NULL(dpu_crtc->pa_cf))
+		dpu_cf_put(dpu_crtc->pa_cf);
+	if (!IS_ERR_OR_NULL(dpu_crtc->sa_cf))
+		dpu_cf_put(dpu_crtc->sa_cf);
+	if (!IS_ERR_OR_NULL(dpu_crtc->dec))
+		dpu_dec_put(dpu_crtc->dec);
+	if (!IS_ERR_OR_NULL(dpu_crtc->ed))
+		dpu_ed_put(dpu_crtc->ed);
+	if (!IS_ERR_OR_NULL(dpu_crtc->fg))
+		dpu_fg_put(dpu_crtc->fg);
+	if (!IS_ERR_OR_NULL(dpu_crtc->sig))
+		dpu_sig_put(dpu_crtc->sig);
+	if (!IS_ERR_OR_NULL(dpu_crtc->tcon))
+		dpu_tcon_put(dpu_crtc->tcon);
+}
+
+static int dpu_crtc_get_resources(struct dpu_crtc *dpu_crtc)
+{
+	struct dpu_soc *dpu = dev_get_drvdata(dpu_crtc->dev->parent);
+	unsigned int stream_id = dpu_crtc->stream_id;
+	int ret;
+
+	dpu_crtc->pa_cf = dpu_cf_get(dpu, stream_id + 4);
+	if (IS_ERR(dpu_crtc->pa_cf)) {
+		ret = PTR_ERR(dpu_crtc->pa_cf);
+		goto err_out;
+	}
+	dpu_crtc->aux_pa_cf = dpu_aux_cf_peek(dpu_crtc->pa_cf);
+
+	dpu_crtc->sa_cf = dpu_cf_get(dpu, stream_id);
+	if (IS_ERR(dpu_crtc->sa_cf)) {
+		ret = PTR_ERR(dpu_crtc->sa_cf);
+		goto err_out;
+	}
+	dpu_crtc->aux_sa_cf = dpu_aux_cf_peek(dpu_crtc->sa_cf);
+
+	dpu_crtc->dec = dpu_dec_get(dpu, stream_id);
+	if (IS_ERR(dpu_crtc->dec)) {
+		ret = PTR_ERR(dpu_crtc->dec);
+		goto err_out;
+	}
+	dpu_crtc->aux_dec = dpu_aux_dec_peek(dpu_crtc->dec);
+
+	dpu_crtc->ed = dpu_ed_get(dpu, stream_id + 4);
+	if (IS_ERR(dpu_crtc->ed)) {
+		ret = PTR_ERR(dpu_crtc->ed);
+		goto err_out;
+	}
+	dpu_crtc->aux_ed = dpu_aux_ed_peek(dpu_crtc->ed);
+
+	dpu_crtc->fg = dpu_fg_get(dpu, stream_id);
+	if (IS_ERR(dpu_crtc->fg)) {
+		ret = PTR_ERR(dpu_crtc->fg);
+		goto err_out;
+	}
+	dpu_crtc->aux_fg = dpu_aux_fg_peek(dpu_crtc->fg);
+
+	dpu_crtc->sig = dpu_sig_get(dpu, stream_id);
+	if (IS_ERR(dpu_crtc->sig)) {
+		ret = PTR_ERR(dpu_crtc->sig);
+		goto err_out;
+	}
+	dpu_crtc->aux_sig = dpu_aux_sig_peek(dpu_crtc->sig);
+
+	dpu_crtc->tcon = dpu_tcon_get(dpu, stream_id);
+	if (IS_ERR(dpu_crtc->tcon)) {
+		ret = PTR_ERR(dpu_crtc->tcon);
+		goto err_out;
+	}
+	dpu_crtc->aux_tcon = dpu_aux_tcon_peek(dpu_crtc->tcon);
+
+	if (dpu_crtc->aux_is_master) {
+		dpu_crtc->m_pa_cf = dpu_crtc->aux_pa_cf;
+		dpu_crtc->m_sa_cf = dpu_crtc->aux_sa_cf;
+		dpu_crtc->m_dec  = dpu_crtc->aux_dec;
+		dpu_crtc->m_ed   = dpu_crtc->aux_ed;
+		dpu_crtc->m_fg   = dpu_crtc->aux_fg;
+		dpu_crtc->m_tcon = dpu_crtc->aux_tcon;
+
+		dpu_crtc->s_pa_cf = dpu_crtc->pa_cf;
+		dpu_crtc->s_sa_cf = dpu_crtc->sa_cf;
+		dpu_crtc->s_dec  = dpu_crtc->dec;
+		dpu_crtc->s_ed   = dpu_crtc->ed;
+		dpu_crtc->s_fg   = dpu_crtc->fg;
+		dpu_crtc->s_tcon = dpu_crtc->tcon;
+	} else {
+		dpu_crtc->m_pa_cf = dpu_crtc->pa_cf;
+		dpu_crtc->m_sa_cf = dpu_crtc->sa_cf;
+		dpu_crtc->m_dec  = dpu_crtc->dec;
+		dpu_crtc->m_ed   = dpu_crtc->ed;
+		dpu_crtc->m_fg   = dpu_crtc->fg;
+		dpu_crtc->m_tcon = dpu_crtc->tcon;
+
+		dpu_crtc->s_pa_cf = dpu_crtc->aux_pa_cf;
+		dpu_crtc->s_sa_cf = dpu_crtc->aux_sa_cf;
+		dpu_crtc->s_dec  = dpu_crtc->aux_dec;
+		dpu_crtc->s_ed   = dpu_crtc->aux_ed;
+		dpu_crtc->s_fg   = dpu_crtc->aux_fg;
+		dpu_crtc->s_tcon = dpu_crtc->aux_tcon;
+	}
+
+	return 0;
+err_out:
+	dpu_crtc_put_resources(dpu_crtc);
+
+	return ret;
+}
+
+static int dpu_crtc_init(struct dpu_crtc *dpu_crtc,
+	struct dpu_client_platformdata *pdata, struct drm_device *drm)
+{
+	struct dpu_soc *dpu = dev_get_drvdata(dpu_crtc->dev->parent);
+	struct device *dev = dpu_crtc->dev;
+	struct drm_crtc *crtc = &dpu_crtc->base;
+	struct dpu_plane_grp *plane_grp = pdata->plane_grp;
+	unsigned int stream_id = pdata->stream_id;
+	int i, ret;
+
+	init_completion(&dpu_crtc->safety_shdld_done);
+	init_completion(&dpu_crtc->content_shdld_done);
+	init_completion(&dpu_crtc->dec_shdld_done);
+	init_completion(&dpu_crtc->crc_shdld_done);
+	init_completion(&dpu_crtc->aux_crc_done);
+
+	dpu_crtc->stream_id = stream_id;
+	dpu_crtc->crtc_grp_id = pdata->di_grp_id;
+	dpu_crtc->hw_plane_num = plane_grp->hw_plane_num;
+	dpu_crtc->syncmode_min_prate = dpu_get_syncmode_min_prate(dpu);
+	dpu_crtc->singlemode_max_width = dpu_get_singlemode_max_width(dpu);
+	dpu_crtc->master_stream_id = dpu_get_master_stream_id(dpu);
+	dpu_crtc->aux_is_master = !(dpu_crtc->master_stream_id == stream_id);
+	dpu_crtc->st = pdata->st9;
+
+	dpu_crtc->plane = devm_kcalloc(dev, dpu_crtc->hw_plane_num,
+					sizeof(*dpu_crtc->plane), GFP_KERNEL);
+	if (!dpu_crtc->plane)
+		return -ENOMEM;
+
+	ret = dpu_crtc_get_resources(dpu_crtc);
+	if (ret) {
+		DRM_DEV_ERROR(dev, "getting resources failed with %d.\n", ret);
+		return ret;
+	}
+
+	plane_grp->res.fg[stream_id] = dpu_crtc->fg;
+	dpu_crtc->plane[0] = dpu_plane_create(drm, 0, stream_id, plane_grp,
+					DRM_PLANE_TYPE_PRIMARY);
+	if (IS_ERR(dpu_crtc->plane[0])) {
+		ret = PTR_ERR(dpu_crtc->plane[0]);
+		DRM_DEV_ERROR(dev,
+				"initializing plane0 failed with %d.\n", ret);
+		goto err_put_resources;
+	}
+
+	crtc->port = pdata->of_node;
+	drm_crtc_helper_add(crtc, &dpu_helper_funcs);
+	ret = drm_crtc_init_with_planes(drm, crtc, &dpu_crtc->plane[0]->base, NULL,
+			&dpu_crtc_funcs, NULL);
+	if (ret) {
+		DRM_DEV_ERROR(dev, "adding crtc failed with %d.\n", ret);
+		goto err_put_resources;
+	}
+
+	for (i = 1; i < dpu_crtc->hw_plane_num; i++) {
+		dpu_crtc->plane[i] = dpu_plane_create(drm,
+					drm_crtc_mask(&dpu_crtc->base),
+					stream_id, plane_grp,
+					DRM_PLANE_TYPE_OVERLAY);
+		if (IS_ERR(dpu_crtc->plane[i])) {
+			ret = PTR_ERR(dpu_crtc->plane[i]);
+			DRM_DEV_ERROR(dev,
+				"initializing plane%d failed with %d.\n",
+								i, ret);
+			goto err_put_resources;
+		}
+	}
+
+	dpu_crtc->vbl_irq = dpu_map_irq(dpu, stream_id ?
+				IRQ_DISENGCFG_FRAMECOMPLETE1 :
+				IRQ_DISENGCFG_FRAMECOMPLETE0);
+	irq_set_status_flags(dpu_crtc->vbl_irq, IRQ_DISABLE_UNLAZY);
+	ret = devm_request_irq(dev, dpu_crtc->vbl_irq, dpu_vbl_irq_handler, 0,
+				"imx_drm", dpu_crtc);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev, "vblank irq request failed with %d.\n", ret);
+		goto err_put_resources;
+	}
+	disable_irq(dpu_crtc->vbl_irq);
+
+	dpu_crtc->safety_shdld_irq = dpu_map_irq(dpu, stream_id ?
+			IRQ_EXTDST5_SHDLOAD : IRQ_EXTDST4_SHDLOAD);
+	irq_set_status_flags(dpu_crtc->safety_shdld_irq, IRQ_DISABLE_UNLAZY);
+	ret = devm_request_irq(dev, dpu_crtc->safety_shdld_irq,
+				dpu_safety_shdld_irq_handler, 0, "imx_drm",
+				dpu_crtc);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev,
+			"safety shadow load irq request failed with %d.\n",
+									ret);
+		goto err_put_resources;
+	}
+	disable_irq(dpu_crtc->safety_shdld_irq);
+
+	dpu_crtc->content_shdld_irq = dpu_map_irq(dpu, stream_id ?
+			IRQ_EXTDST1_SHDLOAD : IRQ_EXTDST0_SHDLOAD);
+	irq_set_status_flags(dpu_crtc->content_shdld_irq, IRQ_DISABLE_UNLAZY);
+	ret = devm_request_irq(dev, dpu_crtc->content_shdld_irq,
+				dpu_content_shdld_irq_handler, 0, "imx_drm",
+				dpu_crtc);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev,
+			"content shadow load irq request failed with %d.\n",
+									ret);
+		goto err_put_resources;
+	}
+	disable_irq(dpu_crtc->content_shdld_irq);
+
+	dpu_crtc->dec_shdld_irq = dpu_map_irq(dpu, stream_id ?
+			IRQ_DISENGCFG_SHDLOAD1 : IRQ_DISENGCFG_SHDLOAD0);
+	irq_set_status_flags(dpu_crtc->dec_shdld_irq, IRQ_DISABLE_UNLAZY);
+	ret = devm_request_irq(dev, dpu_crtc->dec_shdld_irq,
+				dpu_dec_shdld_irq_handler, 0, "imx_drm",
+				dpu_crtc);
+	if (ret < 0) {
+		DRM_DEV_ERROR(dev,
+			"DEC shadow load irq request failed with %d.\n",
+									ret);
+		goto err_put_resources;
+	}
+	disable_irq(dpu_crtc->dec_shdld_irq);
+
+	dpu_crtc->crc_valid_irq = dpu_map_irq(dpu, stream_id ?
+					IRQ_SIG1_VALID : IRQ_SIG0_VALID);
+	irq_set_status_flags(dpu_crtc->crc_valid_irq, IRQ_DISABLE_UNLAZY);
+	ret = devm_request_threaded_irq(dev, dpu_crtc->crc_valid_irq, NULL,
+					dpu_crc_valid_irq_threaded_handler,
+					IRQF_ONESHOT, "imx_drm", dpu_crtc);
+	if (ret < 0) {
+		dev_err(dev,
+			"CRC valid irq request failed with %d.\n",
+			ret);
+		goto err_put_resources;
+	}
+	disable_irq(dpu_crtc->crc_valid_irq);
+
+	dpu_crtc->crc_shdld_irq = dpu_map_irq(dpu, stream_id ?
+					IRQ_SIG1_SHDLOAD : IRQ_SIG0_SHDLOAD);
+	irq_set_status_flags(dpu_crtc->crc_shdld_irq, IRQ_DISABLE_UNLAZY);
+	ret = devm_request_irq(dev, dpu_crtc->crc_shdld_irq,
+				dpu_crc_shdld_irq_handler, 0, "imx_drm",
+				dpu_crtc);
+	if (ret < 0) {
+		dev_err(dev,
+			"CRC shadow load irq request failed with %d.\n",
+			ret);
+		goto err_put_resources;
+	}
+	disable_irq(dpu_crtc->crc_shdld_irq);
+
+	return 0;
+
+err_put_resources:
+	dpu_crtc_put_resources(dpu_crtc);
+
+	return ret;
+}
+
+static int dpu_crtc_bind(struct device *dev, struct device *master, void *data)
+{
+	struct dpu_client_platformdata *pdata = dev->platform_data;
+	struct drm_device *drm = data;
+	struct dpu_crtc *dpu_crtc = dev_get_drvdata(dev);
+	int ret;
+
+	dpu_crtc->dev = dev;
+
+	drm->mode_config.max_width = 5120;
+	drm->mode_config.max_height = 4096;
+
+	ret = dpu_crtc_init(dpu_crtc, pdata, drm);
+	if (ret)
+		return ret;
+
+	if (!drm->mode_config.funcs)
+		drm->mode_config.funcs = &dpu_drm_mode_config_funcs;
+
+	return 0;
+}
+
+static void dpu_crtc_unbind(struct device *dev, struct device *master,
+				void *data)
+{
+	struct dpu_crtc *dpu_crtc = dev_get_drvdata(dev);
+
+	dpu_crtc_put_resources(dpu_crtc);
+}
+
+static const struct component_ops dpu_crtc_ops = {
+	.bind = dpu_crtc_bind,
+	.unbind = dpu_crtc_unbind,
+};
+
+static int dpu_crtc_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct dpu_crtc *dpu_crtc;
+
+	if (!dev->platform_data)
+		return -EINVAL;
+
+	dpu_crtc = devm_kzalloc(dev, sizeof(*dpu_crtc), GFP_KERNEL);
+	if (!dpu_crtc)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, dpu_crtc);
+
+	return component_add(dev, &dpu_crtc_ops);
+}
+
+static int dpu_crtc_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &dpu_crtc_ops);
+	return 0;
+}
+
+static struct platform_driver dpu_crtc_driver = {
+	.driver = {
+		.name = "imx-dpu-crtc",
+	},
+	.probe = dpu_crtc_probe,
+	.remove = dpu_crtc_remove,
+};
+module_platform_driver(dpu_crtc_driver);
+
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_DESCRIPTION("i.MX DPU CRTC");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:imx-dpu-crtc");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-crtc.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-crtc.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef _DPU_CRTC_H_
+#define _DPU_CRTC_H_
+
+#include <drm/drm_vblank.h>
+#include <video/dpu.h>
+#include "dpu-plane.h"
+#include "../imx-drm.h"
+
+struct dpu_crtc {
+	struct device		*dev;
+	struct drm_crtc		base;
+	struct imx_drm_crtc	*imx_crtc;
+	struct dpu_constframe	*pa_cf;
+	struct dpu_constframe	*sa_cf;
+	struct dpu_disengcfg	*dec;
+	struct dpu_extdst	*ed;
+	struct dpu_framegen	*fg;
+	struct dpu_signature	*sig;
+	struct dpu_tcon		*tcon;
+	struct dpu_store	*st;
+	struct dpu_constframe	*aux_pa_cf;
+	struct dpu_constframe	*aux_sa_cf;
+	struct dpu_disengcfg	*aux_dec;
+	struct dpu_extdst	*aux_ed;
+	struct dpu_framegen	*aux_fg;
+	struct dpu_signature	*aux_sig;
+	struct dpu_tcon		*aux_tcon;
+	/* master */
+	struct dpu_constframe	*m_pa_cf;
+	struct dpu_constframe	*m_sa_cf;
+	struct dpu_disengcfg	*m_dec;
+	struct dpu_extdst	*m_ed;
+	struct dpu_framegen	*m_fg;
+	struct dpu_tcon		*m_tcon;
+	/* slave */
+	struct dpu_constframe	*s_pa_cf;
+	struct dpu_constframe	*s_sa_cf;
+	struct dpu_disengcfg	*s_dec;
+	struct dpu_extdst	*s_ed;
+	struct dpu_framegen	*s_fg;
+	struct dpu_tcon		*s_tcon;
+	struct dpu_plane	**plane;
+	unsigned int		hw_plane_num;
+	unsigned int		stream_id;
+	unsigned int		crtc_grp_id;
+	unsigned int		syncmode_min_prate;
+	unsigned int		singlemode_max_width;
+	unsigned int		master_stream_id;
+	int			vbl_irq;
+	int			safety_shdld_irq;
+	int			content_shdld_irq;
+	int			dec_shdld_irq;
+	int			crc_valid_irq;
+	int			crc_shdld_irq;
+
+	bool			aux_is_master;
+	bool			use_dual_crc;
+	bool			crc_is_enabled;
+
+	struct completion	safety_shdld_done;
+	struct completion	content_shdld_done;
+	struct completion	dec_shdld_done;
+	struct completion	crc_shdld_done;
+	struct completion	aux_crc_done;
+
+	struct drm_pending_vblank_event *event;
+
+	u32			crc_red;
+	u32			crc_green;
+	u32			crc_blue;
+	u32			dual_crc_flag;
+};
+
+struct dpu_crc {
+	enum dpu_crc_source	source;
+	struct drm_rect		roi;
+};
+
+struct dpu_crtc_state {
+	struct imx_crtc_state	imx_crtc_state;
+	struct dpu_plane_state	**dpu_plane_states;
+	struct dpu_crc		crc;
+	bool			use_pc;
+};
+
+static inline struct dpu_crtc_state *to_dpu_crtc_state(struct imx_crtc_state *s)
+{
+	return container_of(s, struct dpu_crtc_state, imx_crtc_state);
+}
+
+static inline struct dpu_crtc *to_dpu_crtc(struct drm_crtc *crtc)
+{
+	return container_of(crtc, struct dpu_crtc, base);
+}
+
+struct dpu_plane_state **
+crtc_state_get_dpu_plane_states(struct drm_crtc_state *state);
+
+struct dpu_crtc *dpu_crtc_get_aux_dpu_crtc(struct dpu_crtc *dpu_crtc);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-kms.c
@@ -0,0 +1,726 @@
+/*
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include <linux/sort.h>
+#include <video/dpu.h>
+#include "dpu-crtc.h"
+#include "dpu-plane.h"
+#include "../imx-drm.h"
+
+static struct drm_plane_state **
+dpu_atomic_alloc_tmp_planes_per_crtc(struct drm_device *dev)
+{
+	int total_planes = dev->mode_config.num_total_plane;
+	struct drm_plane_state **states;
+
+	states = kmalloc_array(total_planes, sizeof(*states), GFP_KERNEL);
+	if (!states)
+		return ERR_PTR(-ENOMEM);
+
+	return states;
+}
+
+static int zpos_cmp(const void *a, const void *b)
+{
+	const struct drm_plane_state *sa = *(struct drm_plane_state **)a;
+	const struct drm_plane_state *sb = *(struct drm_plane_state **)b;
+
+	return sa->normalized_zpos - sb->normalized_zpos;
+}
+
+static int dpu_atomic_sort_planes_per_crtc(struct drm_crtc_state *crtc_state,
+					   struct drm_plane_state **states)
+{
+	struct drm_atomic_state *state = crtc_state->state;
+	struct drm_device *dev = state->dev;
+	struct drm_plane *plane;
+	int n = 0;
+
+	drm_for_each_plane_mask(plane, dev, crtc_state->plane_mask) {
+		struct drm_plane_state *plane_state =
+			drm_atomic_get_plane_state(state, plane);
+		if (IS_ERR(plane_state))
+			return PTR_ERR(plane_state);
+		states[n++] = plane_state;
+	}
+
+	sort(states, n, sizeof(*states), zpos_cmp, NULL);
+
+	return n;
+}
+
+static void
+dpu_atomic_compute_plane_lrx_per_crtc(struct drm_crtc_state *crtc_state,
+				      struct drm_plane_state **states, int n)
+{
+	struct dpu_plane_state *dpstate;
+	struct drm_plane_state *plane_state;
+	int i;
+	int half_hdisplay = crtc_state->adjusted_mode.hdisplay >> 1;
+	bool lo, ro, bo;
+
+	/* compute left/right_crtc_x if pixel combiner is needed */
+	for (i = 0; i < n; i++) {
+		plane_state = states[i];
+		dpstate = to_dpu_plane_state(plane_state);
+
+		lo =  dpstate->left_src_w && !dpstate->right_src_w;
+		ro = !dpstate->left_src_w &&  dpstate->right_src_w;
+		bo =  dpstate->left_src_w &&  dpstate->right_src_w;
+
+		if (lo || bo) {
+			dpstate->left_crtc_x = plane_state->crtc_x;
+			dpstate->right_crtc_x = 0;
+		} else if (ro) {
+			dpstate->left_crtc_x = 0;
+			dpstate->right_crtc_x =
+					plane_state->crtc_x - half_hdisplay;
+		}
+	}
+}
+
+static void
+dpu_atomic_set_top_plane_per_crtc(struct drm_plane_state **states, int n,
+				  bool use_pc)
+{
+	struct dpu_plane_state *dpstate;
+	bool found_l_top = false, found_r_top = false;
+	int i;
+
+	for (i = n - 1; i >= 0; i--) {
+		dpstate = to_dpu_plane_state(states[i]);
+		if (use_pc) {
+			if (dpstate->left_src_w && !found_l_top) {
+				dpstate->is_left_top = true;
+				found_l_top = true;
+			} else {
+				dpstate->is_left_top = false;
+			}
+
+			if (dpstate->right_src_w && !found_r_top) {
+				dpstate->is_right_top = true;
+				found_r_top = true;
+			} else {
+				dpstate->is_right_top = false;
+			}
+		} else {
+			dpstate->is_top = (i == (n - 1)) ? true : false;
+		}
+	}
+}
+
+static int
+dpu_atomic_assign_plane_source_per_crtc(struct drm_plane_state **states,
+					int n, bool use_pc)
+{
+	struct dpu_plane_state *dpstate;
+	struct dpu_plane *dplane;
+	struct dpu_plane_grp *grp;
+	struct drm_framebuffer *fb;
+	struct dpu_fetchunit *fu;
+	struct dpu_fetchunit *fe;
+	struct dpu_hscaler *hs;
+	struct dpu_vscaler *vs;
+	lb_prim_sel_t stage;
+	dpu_block_id_t blend;
+	unsigned int sid, src_sid;
+	unsigned int num_planes;
+	int bit;
+	int i, j, k = 0, m;
+	int total_asrc_num;
+	int s0_layer_cnt = 0, s1_layer_cnt = 0;
+	int s0_n = 0, s1_n = 0;
+	u32 src_a_mask, cap_mask, fe_mask, hs_mask, vs_mask;
+	bool need_fetcheco, need_hscaler, need_vscaler;
+	bool fmt_is_yuv;
+	bool alloc_aux_source;
+
+	if (use_pc) {
+		for (i = 0; i < n; i++) {
+			dpstate = to_dpu_plane_state(states[i]);
+
+			if (dpstate->left_src_w)
+				s0_n++;
+
+			if (dpstate->right_src_w)
+				s1_n++;
+		}
+	} else {
+		s0_n = n;
+		s1_n = n;
+	}
+
+	/* for active planes only */
+	for (i = 0; i < n; i++) {
+		dpstate = to_dpu_plane_state(states[i]);
+		dplane = to_dpu_plane(states[i]->plane);
+		fb = states[i]->fb;
+		num_planes = fb->format->num_planes;
+		fmt_is_yuv = drm_format_is_yuv(fb->format->format);
+		grp = dplane->grp;
+		alloc_aux_source = false;
+
+		if (use_pc)
+			sid = dpstate->left_src_w ? 0 : 1;
+		else
+			sid = dplane->stream_id;
+
+again:
+		if (alloc_aux_source)
+			sid ^= 1;
+
+		need_fetcheco = (num_planes > 1);
+		need_hscaler = (states[i]->src_w >> 16 != states[i]->crtc_w);
+		need_vscaler = (states[i]->src_h >> 16 != states[i]->crtc_h);
+
+		total_asrc_num = 0;
+		src_a_mask = grp->src_a_mask;
+		fe_mask = 0;
+		hs_mask = 0;
+		vs_mask = 0;
+
+		for_each_set_bit(bit, (unsigned long *)&src_a_mask, 32)
+			total_asrc_num++;
+
+		/* assign source */
+		mutex_lock(&grp->mutex);
+		for (j = 0; j < total_asrc_num; j++) {
+			k = ffs(src_a_mask) - 1;
+			if (k < 0)
+				return -EINVAL;
+
+			fu = source_to_fu(&grp->res, sources[k]);
+			if (!fu)
+				return -EINVAL;
+
+			/* avoid on-the-fly/hot migration */
+			src_sid = fu->ops->get_stream_id(fu);
+			if (src_sid && src_sid != BIT(sid))
+				goto next;
+
+			if (fetchunit_is_fetchdecode(fu)) {
+				cap_mask = fetchdecode_get_vproc_mask(fu);
+
+				if (need_fetcheco) {
+					fe = fetchdecode_get_fetcheco(fu);
+
+					/* avoid on-the-fly/hot migration */
+					src_sid = fu->ops->get_stream_id(fe);
+					if (src_sid && src_sid != BIT(sid))
+						goto next;
+
+					/* fetch unit has the fetcheco cap? */
+					if (!dpu_vproc_has_fetcheco_cap(cap_mask))
+						goto next;
+
+					fe_mask =
+					   dpu_vproc_get_fetcheco_cap(cap_mask);
+
+					/* fetcheco available? */
+					if (grp->src_use_vproc_mask & fe_mask)
+						goto next;
+				}
+
+				if (need_hscaler) {
+					hs = fetchdecode_get_hscaler(fu);
+
+					/* avoid on-the-fly/hot migration */
+					src_sid = hscaler_get_stream_id(hs);
+					if (src_sid && src_sid != BIT(sid))
+						goto next;
+
+					/* fetch unit has the hscale cap */
+					if (!dpu_vproc_has_hscale_cap(cap_mask))
+						goto next;
+
+					hs_mask =
+					     dpu_vproc_get_hscale_cap(cap_mask);
+
+					/* hscaler available? */
+					if (grp->src_use_vproc_mask & hs_mask)
+						goto next;
+				}
+
+				if (need_vscaler) {
+					vs = fetchdecode_get_vscaler(fu);
+
+					/* avoid on-the-fly/hot migration */
+					src_sid = vscaler_get_stream_id(vs);
+					if (src_sid && src_sid != BIT(sid))
+						goto next;
+
+					/* fetch unit has the vscale cap? */
+					if (!dpu_vproc_has_vscale_cap(cap_mask))
+						goto next;
+
+					vs_mask =
+					     dpu_vproc_get_vscale_cap(cap_mask);
+
+					/* vscaler available? */
+					if (grp->src_use_vproc_mask & vs_mask)
+						goto next;
+				}
+			} else {
+				if (fmt_is_yuv || need_fetcheco ||
+				    need_hscaler || need_vscaler)
+					goto next;
+			}
+
+			grp->src_a_mask &= ~BIT(k);
+			grp->src_use_vproc_mask |= fe_mask | hs_mask | vs_mask;
+			break;
+next:
+			src_a_mask &= ~BIT(k);
+			fe_mask = 0;
+			hs_mask = 0;
+			vs_mask = 0;
+		}
+		mutex_unlock(&grp->mutex);
+
+		if (j == total_asrc_num)
+			return -EINVAL;
+
+		if (alloc_aux_source)
+			dpstate->aux_source = sources[k];
+		else
+			dpstate->source = sources[k];
+
+		/* assign stage and blend */
+		if (sid) {
+			m = grp->hw_plane_num - (s1_n - s1_layer_cnt);
+			stage = s1_layer_cnt ? stages[m - 1] : cf_stages[sid];
+			blend = blends[m];
+
+			s1_layer_cnt++;
+		} else {
+			stage = s0_layer_cnt ?
+				stages[s0_layer_cnt - 1] : cf_stages[sid];
+			blend = blends[s0_layer_cnt];
+
+			s0_layer_cnt++;
+		}
+
+		if (alloc_aux_source) {
+			dpstate->aux_stage = stage;
+			dpstate->aux_blend = blend;
+		} else {
+			dpstate->stage = stage;
+			dpstate->blend = blend;
+		}
+
+		if (dpstate->need_aux_source && !alloc_aux_source) {
+			alloc_aux_source = true;
+			goto again;
+		}
+	}
+
+	return 0;
+}
+
+static void
+dpu_atomic_mark_pipe_states_prone_to_put_per_crtc(struct drm_crtc *crtc,
+						u32 crtc_mask,
+						struct drm_atomic_state *state,
+						bool *puts)
+{
+	struct drm_plane *plane;
+	struct drm_plane_state *plane_state;
+	bool found_pstate = false;
+	int i;
+
+	if ((crtc_mask & drm_crtc_mask(crtc)) == 0) {
+		for_each_new_plane_in_state(state, plane, plane_state, i) {
+			if (plane->possible_crtcs & drm_crtc_mask(crtc)) {
+				found_pstate = true;
+				break;
+			}
+		}
+
+		if (!found_pstate)
+			puts[drm_crtc_index(crtc)] = true;
+	}
+}
+
+static void
+dpu_atomic_put_plane_state(struct drm_atomic_state *state,
+			   struct drm_plane *plane)
+{
+	int index = drm_plane_index(plane);
+
+	plane->funcs->atomic_destroy_state(plane, state->planes[index].state);
+	state->planes[index].ptr = NULL;
+	state->planes[index].state = NULL;
+
+	drm_modeset_unlock(&plane->mutex);
+}
+
+static void
+dpu_atomic_put_crtc_state(struct drm_atomic_state *state,
+			  struct drm_crtc *crtc)
+{
+	int index = drm_crtc_index(crtc);
+
+	crtc->funcs->atomic_destroy_state(crtc, state->crtcs[index].state);
+	state->crtcs[index].ptr = NULL;
+	state->crtcs[index].state = NULL;
+
+	drm_modeset_unlock(&crtc->mutex);
+}
+
+static void
+dpu_atomic_put_possible_states_per_crtc(struct drm_crtc_state *crtc_state)
+{
+	struct drm_atomic_state *state = crtc_state->state;
+	struct drm_crtc *crtc = crtc_state->crtc;
+	struct drm_crtc_state *old_crtc_state = crtc->state;
+	struct drm_plane *plane;
+	struct drm_plane_state *plane_state;
+	struct dpu_plane *dplane = to_dpu_plane(crtc->primary);
+	struct dpu_plane_state **old_dpstates;
+	struct dpu_plane_state *old_dpstate, *new_dpstate;
+	u32 active_mask = 0;
+	int i;
+
+	old_dpstates = crtc_state_get_dpu_plane_states(old_crtc_state);
+	if (WARN_ON(!old_dpstates))
+		return;
+
+	for (i = 0; i < dplane->grp->hw_plane_num; i++) {
+		old_dpstate = old_dpstates[i];
+		if (!old_dpstate)
+			continue;
+
+		active_mask |= BIT(i);
+
+		drm_atomic_crtc_state_for_each_plane(plane, crtc_state) {
+			if (drm_plane_index(plane) !=
+			    drm_plane_index(old_dpstate->base.plane))
+				continue;
+
+			plane_state =
+				drm_atomic_get_existing_plane_state(state,
+									plane);
+			if (WARN_ON(!plane_state))
+				return;
+
+			new_dpstate = to_dpu_plane_state(plane_state);
+
+			active_mask &= ~BIT(i);
+
+			/*
+			 * Should be enough to check the below real HW plane
+			 * resources only.
+			 * Things like vproc resources should be fine.
+			 */
+			if (old_dpstate->stage  != new_dpstate->stage  ||
+			    old_dpstate->source != new_dpstate->source ||
+			    old_dpstate->blend  != new_dpstate->blend  ||
+			    old_dpstate->aux_stage  != new_dpstate->aux_stage  ||
+			    old_dpstate->aux_source != new_dpstate->aux_source ||
+			    old_dpstate->aux_blend  != new_dpstate->aux_blend)
+				return;
+		}
+	}
+
+	/* pure software check */
+	if (WARN_ON(active_mask))
+		return;
+
+	drm_atomic_crtc_state_for_each_plane(plane, crtc_state)
+		dpu_atomic_put_plane_state(state, plane);
+
+	dpu_atomic_put_crtc_state(state, crtc);
+}
+
+static int dpu_drm_atomic_check(struct drm_device *dev,
+				struct drm_atomic_state *state)
+{
+	struct drm_crtc *crtc;
+	struct drm_crtc_state *crtc_state;
+	struct drm_plane *plane;
+	struct dpu_plane *dpu_plane;
+	struct drm_plane_state *plane_state;
+	struct dpu_plane_state *dpstate;
+	struct drm_framebuffer *fb;
+	struct dpu_plane_grp *grp[MAX_DPU_PLANE_GRP];
+	int ret, i, grp_id;
+	int active_plane[MAX_DPU_PLANE_GRP];
+	int active_plane_fetcheco[MAX_DPU_PLANE_GRP];
+	int active_plane_hscale[MAX_DPU_PLANE_GRP];
+	int active_plane_vscale[MAX_DPU_PLANE_GRP];
+	int half_hdisplay = 0;
+	bool pipe_states_prone_to_put[MAX_CRTC];
+	bool use_pc[MAX_DPU_PLANE_GRP];
+	u32 crtc_mask_in_state = 0;
+
+	ret = drm_atomic_helper_check_modeset(dev, state);
+	if (ret) {
+		DRM_DEBUG_KMS("%s: failed to check modeset\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < MAX_CRTC; i++)
+		pipe_states_prone_to_put[i] = false;
+
+	for (i = 0; i < MAX_DPU_PLANE_GRP; i++) {
+		active_plane[i] = 0;
+		active_plane_fetcheco[i] = 0;
+		active_plane_hscale[i] = 0;
+		active_plane_vscale[i] = 0;
+		use_pc[i] = false;
+		grp[i] = NULL;
+	}
+
+	for_each_new_crtc_in_state(state, crtc, crtc_state, i)
+		crtc_mask_in_state |= drm_crtc_mask(crtc);
+
+	drm_for_each_crtc(crtc, dev) {
+		struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+		struct imx_crtc_state *imx_crtc_state;
+		struct dpu_crtc_state *dcstate;
+		bool need_left, need_right, need_aux_source, use_pc_per_crtc;
+
+		use_pc_per_crtc = false;
+
+		dpu_atomic_mark_pipe_states_prone_to_put_per_crtc(crtc,
+						crtc_mask_in_state, state,
+						pipe_states_prone_to_put);
+
+		crtc_state = drm_atomic_get_crtc_state(state, crtc);
+		if (IS_ERR(crtc_state))
+			return PTR_ERR(crtc_state);
+
+		imx_crtc_state = to_imx_crtc_state(crtc_state);
+		dcstate = to_dpu_crtc_state(imx_crtc_state);
+
+		if (crtc_state->enable) {
+			if (use_pc[dpu_crtc->crtc_grp_id]) {
+				DRM_DEBUG_KMS("other crtc needs pixel combiner\n");
+				return -EINVAL;
+			}
+
+			if (crtc_state->adjusted_mode.clock >
+					dpu_crtc->syncmode_min_prate ||
+			    crtc_state->adjusted_mode.hdisplay >
+					dpu_crtc->singlemode_max_width)
+				use_pc_per_crtc = true;
+		}
+
+		if (use_pc_per_crtc) {
+			use_pc[dpu_crtc->crtc_grp_id] = true;
+			half_hdisplay = crtc_state->adjusted_mode.hdisplay >> 1;
+		}
+
+		dcstate->use_pc = use_pc_per_crtc;
+
+		drm_for_each_plane_mask(plane, dev, crtc_state->plane_mask) {
+			plane_state = drm_atomic_get_plane_state(state, plane);
+			if (IS_ERR(plane_state)) {
+				DRM_DEBUG_KMS("failed to get plane state\n");
+				return PTR_ERR(plane_state);
+			}
+
+			dpstate = to_dpu_plane_state(plane_state);
+			fb = plane_state->fb;
+			dpu_plane = to_dpu_plane(plane);
+			grp_id = dpu_plane->grp->id;
+			active_plane[grp_id]++;
+
+			need_left = false;
+			need_right = false;
+			need_aux_source = false;
+
+			if (use_pc_per_crtc) {
+				if (plane_state->crtc_x < half_hdisplay)
+					need_left = true;
+
+				if ((plane_state->crtc_w +
+				     plane_state->crtc_x) > half_hdisplay)
+					need_right = true;
+
+				if (need_left && need_right) {
+					need_aux_source = true;
+					active_plane[grp_id]++;
+				}
+			}
+
+			if (need_left && need_right) {
+				dpstate->left_crtc_w = half_hdisplay;
+				dpstate->left_crtc_w -= plane_state->crtc_x;
+
+				dpstate->left_src_w = dpstate->left_crtc_w;
+			} else if (need_left) {
+				dpstate->left_crtc_w = plane_state->crtc_w;
+				dpstate->left_src_w = plane_state->src_w >> 16;
+			} else {
+				dpstate->left_crtc_w = 0;
+				dpstate->left_src_w = 0;
+			}
+
+			if (need_right && need_left) {
+				dpstate->right_crtc_w = plane_state->crtc_x +
+					plane_state->crtc_w;
+				dpstate->right_crtc_w -= half_hdisplay;
+
+				dpstate->right_src_w = dpstate->right_crtc_w;
+			} else if (need_right) {
+				dpstate->right_crtc_w = plane_state->crtc_w;
+				dpstate->right_src_w = plane_state->src_w >> 16;
+			} else {
+				dpstate->right_crtc_w = 0;
+				dpstate->right_src_w = 0;
+			}
+
+			if (fb->format->num_planes > 1) {
+				active_plane_fetcheco[grp_id]++;
+				if (need_aux_source)
+					active_plane_fetcheco[grp_id]++;
+			}
+
+			if (plane_state->src_w >> 16 != plane_state->crtc_w) {
+				if (use_pc_per_crtc)
+					return -EINVAL;
+
+				active_plane_hscale[grp_id]++;
+			}
+
+			if (plane_state->src_h >> 16 != plane_state->crtc_h) {
+				if (use_pc_per_crtc)
+					return -EINVAL;
+
+				active_plane_vscale[grp_id]++;
+			}
+
+			if (grp[grp_id] == NULL)
+				grp[grp_id] = dpu_plane->grp;
+
+			dpstate->need_aux_source = need_aux_source;
+		}
+	}
+
+	/* enough resources? */
+	for (i = 0; i < MAX_DPU_PLANE_GRP; i++) {
+		if (!grp[i])
+			continue;
+
+		if (active_plane[i] > grp[i]->hw_plane_num) {
+			DRM_DEBUG_KMS("no enough fetch units\n");
+			return -EINVAL;
+		}
+
+		if (active_plane_fetcheco[i] > grp[i]->hw_plane_fetcheco_num) {
+			DRM_DEBUG_KMS("no enough FetchEcos\n");
+			return -EINVAL;
+		}
+
+		if (active_plane_hscale[i] > grp[i]->hw_plane_hscaler_num) {
+			DRM_DEBUG_KMS("no enough Hscalers\n");
+			return -EINVAL;
+		}
+
+		if (active_plane_vscale[i] > grp[i]->hw_plane_vscaler_num) {
+			DRM_DEBUG_KMS("no enough Vscalers\n");
+			return -EINVAL;
+		}
+	}
+
+	/* initialize resource mask */
+	for (i = 0; i < MAX_DPU_PLANE_GRP; i++) {
+		if (!grp[i])
+			continue;
+
+		mutex_lock(&grp[i]->mutex);
+		grp[i]->src_a_mask = grp[i]->src_mask;
+		grp[i]->src_use_vproc_mask = 0;
+		mutex_unlock(&grp[i]->mutex);
+	}
+
+	ret = drm_atomic_normalize_zpos(dev, state);
+	if (ret)
+		return ret;
+
+	for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+		struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
+		struct drm_plane_state **states;
+		int n;
+
+		states = dpu_atomic_alloc_tmp_planes_per_crtc(dev);
+		if (IS_ERR(states)) {
+			DRM_DEBUG_KMS(
+				"[CRTC:%d:%s] cannot alloc plane state ptrs\n",
+					crtc->base.id, crtc->name);
+			return PTR_ERR(states);
+		}
+
+		n = dpu_atomic_sort_planes_per_crtc(crtc_state, states);
+		if (n < 0) {
+			DRM_DEBUG_KMS("[CRTC:%d:%s] failed to sort planes\n",
+					crtc->base.id, crtc->name);
+			kfree(states);
+			return n;
+		}
+
+		/* no active planes? */
+		if (n == 0) {
+			kfree(states);
+			continue;
+		}
+
+		if (use_pc[dpu_crtc->crtc_grp_id])
+			dpu_atomic_compute_plane_lrx_per_crtc(crtc_state,
+								states, n);
+
+		dpu_atomic_set_top_plane_per_crtc(states, n,
+					use_pc[dpu_crtc->crtc_grp_id]);
+
+		ret = dpu_atomic_assign_plane_source_per_crtc(states, n,
+						use_pc[dpu_crtc->crtc_grp_id]);
+		if (ret) {
+			DRM_DEBUG_KMS("[CRTC:%d:%s] cannot assign plane rscs\n",
+					crtc->base.id, crtc->name);
+			kfree(states);
+			return ret;
+		}
+
+		kfree(states);
+	}
+
+	drm_for_each_crtc(crtc, dev) {
+		if (pipe_states_prone_to_put[drm_crtc_index(crtc)]) {
+			crtc_state = drm_atomic_get_crtc_state(state, crtc);
+			if (WARN_ON(IS_ERR(crtc_state)))
+				return PTR_ERR(crtc_state);
+
+			dpu_atomic_put_possible_states_per_crtc(crtc_state);
+		}
+	}
+
+	ret = drm_atomic_helper_check_planes(dev, state);
+	if (ret) {
+		DRM_DEBUG_KMS("%s: failed to check planes\n", __func__);
+		return ret;
+	}
+
+	return ret;
+}
+
+const struct drm_mode_config_funcs dpu_drm_mode_config_funcs = {
+	.fb_create = drm_gem_fb_create,
+	.atomic_check = dpu_drm_atomic_check,
+	.atomic_commit = drm_atomic_helper_commit,
+};
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-kms.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-kms.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef _DPU_KMS_H_
+#define _DPU_KMS_H_
+
+extern const struct drm_mode_config_funcs dpu_drm_mode_config_funcs;
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-plane.c
@@ -0,0 +1,1010 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_blend.h>
+#include <drm/drm_color_mgmt.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_fourcc.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_plane_helper.h>
+#include <video/dpu.h>
+#include <video/imx8-prefetch.h>
+#include "dpu-plane.h"
+#include "../imx-drm.h"
+
+#define FRAC_16_16(mult, div)    (((mult) << 16) / (div))
+
+static const uint32_t dpu_formats[] = {
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ABGR8888,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_RGBA8888,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_BGRA8888,
+	DRM_FORMAT_BGRX8888,
+	DRM_FORMAT_RGB565,
+
+	DRM_FORMAT_YUYV,
+	DRM_FORMAT_UYVY,
+	DRM_FORMAT_NV12,
+	DRM_FORMAT_NV21,
+};
+
+static const uint64_t dpu_format_modifiers[] = {
+	DRM_FORMAT_MOD_VIVANTE_TILED,
+	DRM_FORMAT_MOD_VIVANTE_SUPER_TILED,
+	DRM_FORMAT_MOD_AMPHION_TILED,
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID,
+};
+
+static unsigned int dpu_plane_get_default_zpos(enum drm_plane_type type)
+{
+	if (type == DRM_PLANE_TYPE_PRIMARY)
+		return 0;
+	else if (type == DRM_PLANE_TYPE_OVERLAY)
+		return 1;
+
+	return 0;
+}
+
+static void dpu_plane_destroy(struct drm_plane *plane)
+{
+	struct dpu_plane *dpu_plane = to_dpu_plane(plane);
+
+	drm_plane_cleanup(plane);
+	kfree(dpu_plane);
+}
+
+static void dpu_plane_reset(struct drm_plane *plane)
+{
+	struct dpu_plane_state *state;
+
+	if (plane->state) {
+		__drm_atomic_helper_plane_destroy_state(plane->state);
+		kfree(to_dpu_plane_state(plane->state));
+		plane->state = NULL;
+	}
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (!state)
+		return;
+
+	__drm_atomic_helper_plane_reset(plane, &state->base);
+
+	plane->state->zpos = dpu_plane_get_default_zpos(plane->type);
+	plane->state->color_encoding = DRM_COLOR_YCBCR_BT601;
+	plane->state->color_range = DRM_COLOR_YCBCR_FULL_RANGE;
+}
+
+static struct drm_plane_state *
+dpu_drm_atomic_plane_duplicate_state(struct drm_plane *plane)
+{
+	struct dpu_plane_state *state, *copy;
+
+	if (WARN_ON(!plane->state))
+		return NULL;
+
+	copy = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (!copy)
+		return NULL;
+
+	__drm_atomic_helper_plane_duplicate_state(plane, &copy->base);
+	state = to_dpu_plane_state(plane->state);
+	copy->stage = state->stage;
+	copy->source = state->source;
+	copy->blend = state->blend;
+	copy->aux_stage = state->aux_stage;
+	copy->aux_source = state->aux_source;
+	copy->aux_blend = state->aux_blend;
+	copy->is_top = state->is_top;
+	copy->use_prefetch = state->use_prefetch;
+	copy->use_aux_prefetch = state->use_aux_prefetch;
+	copy->need_aux_source = state->need_aux_source;
+	copy->left_src_w = state->left_src_w;
+	copy->left_crtc_w = state->left_crtc_w;
+	copy->left_crtc_x = state->left_crtc_x;
+	copy->right_src_w = state->right_src_w;
+	copy->right_crtc_w = state->right_crtc_w;
+	copy->right_crtc_x = state->right_crtc_x;
+	copy->is_left_top = state->is_left_top;
+	copy->is_right_top = state->is_right_top;
+
+	return &copy->base;
+}
+
+static bool dpu_drm_plane_format_mod_supported(struct drm_plane *plane,
+					       uint32_t format,
+					       uint64_t modifier)
+{
+	if (WARN_ON(modifier == DRM_FORMAT_MOD_INVALID))
+		return false;
+
+	switch (format) {
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+		return modifier == DRM_FORMAT_MOD_LINEAR;
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRA8888:
+	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_RGB565:
+		return modifier == DRM_FORMAT_MOD_LINEAR ||
+		       modifier == DRM_FORMAT_MOD_VIVANTE_TILED ||
+		       modifier == DRM_FORMAT_MOD_VIVANTE_SUPER_TILED;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		return modifier == DRM_FORMAT_MOD_LINEAR ||
+		       modifier == DRM_FORMAT_MOD_AMPHION_TILED;
+	default:
+		return false;
+	}
+}
+
+static void dpu_drm_atomic_plane_destroy_state(struct drm_plane *plane,
+					       struct drm_plane_state *state)
+{
+	__drm_atomic_helper_plane_destroy_state(state);
+	kfree(to_dpu_plane_state(state));
+}
+
+static const struct drm_plane_funcs dpu_plane_funcs = {
+	.update_plane	= drm_atomic_helper_update_plane,
+	.disable_plane	= drm_atomic_helper_disable_plane,
+	.destroy	= dpu_plane_destroy,
+	.reset		= dpu_plane_reset,
+	.atomic_duplicate_state	= dpu_drm_atomic_plane_duplicate_state,
+	.atomic_destroy_state	= dpu_drm_atomic_plane_destroy_state,
+	.format_mod_supported	= dpu_drm_plane_format_mod_supported,
+};
+
+static inline dma_addr_t
+drm_plane_state_to_baseaddr(struct drm_plane_state *state, bool aux_source)
+{
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *cma_obj;
+	struct dpu_plane_state *dpstate = to_dpu_plane_state(state);
+	unsigned int x = (state->src.x1 >> 16) +
+				(aux_source ? dpstate->left_src_w : 0);
+	unsigned int y = state->src.y1 >> 16;
+
+	cma_obj = drm_fb_cma_get_gem_obj(fb, 0);
+	BUG_ON(!cma_obj);
+
+	if (fb->modifier)
+		return cma_obj->paddr + fb->offsets[0];
+
+	if (fb->flags & DRM_MODE_FB_INTERLACED)
+		y /= 2;
+
+	return cma_obj->paddr + fb->offsets[0] + fb->pitches[0] * y +
+	       fb->format->cpp[0] * x;
+}
+
+static inline dma_addr_t
+drm_plane_state_to_uvbaseaddr(struct drm_plane_state *state, bool aux_source)
+{
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *cma_obj;
+	struct dpu_plane_state *dpstate = to_dpu_plane_state(state);
+	int x = (state->src.x1 >> 16) + (aux_source ? dpstate->left_src_w : 0);
+	int y = state->src.y1 >> 16;
+
+	cma_obj = drm_fb_cma_get_gem_obj(fb, 1);
+	BUG_ON(!cma_obj);
+
+	if (fb->modifier)
+		return cma_obj->paddr + fb->offsets[1];
+
+	x /= fb->format->hsub;
+	y /= fb->format->vsub;
+
+	if (fb->flags & DRM_MODE_FB_INTERLACED)
+		y /= 2;
+
+	return cma_obj->paddr + fb->offsets[1] + fb->pitches[1] * y +
+	       fb->format->cpp[1] * x;
+}
+
+static inline bool dpu_plane_fb_format_is_yuv(u32 fmt)
+{
+	return fmt == DRM_FORMAT_YUYV || fmt == DRM_FORMAT_UYVY ||
+	       fmt == DRM_FORMAT_NV12 || fmt == DRM_FORMAT_NV21;
+}
+
+static int dpu_plane_atomic_check(struct drm_plane *plane,
+				  struct drm_plane_state *state)
+{
+	struct dpu_plane *dplane = to_dpu_plane(plane);
+	struct dpu_plane_state *dpstate = to_dpu_plane_state(state);
+	struct dpu_plane_res *res = &dplane->grp->res;
+	struct drm_crtc_state *crtc_state;
+	struct drm_framebuffer *fb = state->fb;
+	struct dpu_fetchunit *fu;
+	struct dprc *dprc;
+	dma_addr_t baseaddr, uv_baseaddr = 0;
+	u32 src_w, src_h, src_x, src_y;
+	unsigned int frame_width;
+	int min_scale, bpp, ret;
+	bool fb_is_interlaced;
+	bool check_aux_source = false;
+
+	/* ok to disable */
+	if (!fb) {
+		dpstate->stage = LB_PRIM_SEL__DISABLE;
+		dpstate->source = LB_SEC_SEL__DISABLE;
+		dpstate->blend = ID_NONE;
+		dpstate->aux_stage = LB_PRIM_SEL__DISABLE;
+		dpstate->aux_source = LB_SEC_SEL__DISABLE;
+		dpstate->aux_blend = ID_NONE;
+		dpstate->is_top = false;
+		dpstate->use_prefetch = false;
+		dpstate->use_aux_prefetch = false;
+		dpstate->need_aux_source = false;
+		dpstate->left_src_w = 0;
+		dpstate->left_crtc_w = 0;
+		dpstate->left_crtc_x = 0;
+		dpstate->right_src_w = 0;
+		dpstate->right_crtc_w = 0;
+		dpstate->right_crtc_x = 0;
+		dpstate->is_left_top = false;
+		dpstate->is_right_top = false;
+		return 0;
+	}
+
+	if (!state->crtc) {
+		DRM_DEBUG_KMS("[PLANE:%d:%s] has no CRTC in plane state\n",
+				plane->base.id, plane->name);
+		return -EINVAL;
+	}
+
+	src_w = drm_rect_width(&state->src) >> 16;
+	src_h = drm_rect_height(&state->src) >> 16;
+	src_x = state->src.x1 >> 16;
+	src_y = state->src.y1 >> 16;
+
+	fb_is_interlaced = !!(fb->flags & DRM_MODE_FB_INTERLACED);
+
+	if (fb->modifier &&
+	    fb->modifier != DRM_FORMAT_MOD_AMPHION_TILED &&
+	    fb->modifier != DRM_FORMAT_MOD_VIVANTE_TILED &&
+	    fb->modifier != DRM_FORMAT_MOD_VIVANTE_SUPER_TILED) {
+		DRM_DEBUG_KMS("[PLANE:%d:%s] unsupported fb modifier\n",
+				plane->base.id, plane->name);
+		return -EINVAL;
+	}
+
+	crtc_state =
+		drm_atomic_get_existing_crtc_state(state->state, state->crtc);
+	if (WARN_ON(!crtc_state))
+		return -EINVAL;
+
+	min_scale = dplane->grp->has_vproc ?
+				FRAC_16_16(min(src_w, src_h), 8192) :
+				DRM_PLANE_HELPER_NO_SCALING;
+	ret = drm_atomic_helper_check_plane_state(state, crtc_state,
+						  min_scale,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  true, false);
+	if (ret) {
+		DRM_DEBUG_KMS("[PLANE:%d:%s] failed to check plane state\n",
+				plane->base.id, plane->name);
+		return ret;
+	}
+
+	/* no off screen */
+	if (state->dst.x1 < 0 || state->dst.y1 < 0 ||
+	    (state->dst.x2 > crtc_state->adjusted_mode.hdisplay) ||
+	    (state->dst.y2 > crtc_state->adjusted_mode.vdisplay)) {
+		DRM_DEBUG_KMS("[PLANE:%d:%s] no off screen\n",
+				plane->base.id, plane->name);
+		return -EINVAL;
+	}
+
+	/* pixel/line count and position parameters check */
+	if (fb->format->hsub == 2) {
+		if (dpstate->left_src_w || dpstate->right_src_w) {
+			if ((dpstate->left_src_w % 2) ||
+			    (dpstate->right_src_w % 2) || (src_x % 2)) {
+				DRM_DEBUG_KMS("[PLANE:%d:%s] bad left/right uv width or xoffset\n",
+						plane->base.id, plane->name);
+				return -EINVAL;
+			}
+		} else {
+			if ((src_w % 2) || (src_x % 2)) {
+				DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv width or xoffset\n",
+						plane->base.id, plane->name);
+				return -EINVAL;
+			}
+		}
+	}
+	if (fb->format->vsub == 2) {
+		if (src_h % (fb_is_interlaced ? 4 : 2)) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv height\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		if (src_y % (fb_is_interlaced ? 4 : 2)) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv yoffset\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+	}
+
+	/* for tile formats, framebuffer has to be tile aligned */
+	switch (fb->modifier) {
+	case DRM_FORMAT_MOD_AMPHION_TILED:
+		if (fb->width % 8) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad fb width for AMPHION tile\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		if (fb->height % 256) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad fb height for AMPHION tile\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_TILED:
+		if (fb->width % 4) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad fb width for VIVANTE tile\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		if (fb->height % 4) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad fb height for VIVANTE tile\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		if (fb->width % 64) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad fb width for VIVANTE super tile\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		if (fb->height % 64) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad fb height for VIVANTE super tile\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		break;
+	default:
+		break;
+	}
+
+	/* do not support BT709 full range */
+	if (dpu_plane_fb_format_is_yuv(fb->format->format) &&
+	    state->color_encoding == DRM_COLOR_YCBCR_BT709 &&
+	    state->color_range == DRM_COLOR_YCBCR_FULL_RANGE)
+		return -EINVAL;
+
+again:
+	fu = source_to_fu(res,
+		check_aux_source ? dpstate->aux_source : dpstate->source);
+	if (!fu) {
+		DRM_DEBUG_KMS("[PLANE:%d:%s] cannot get fetch unit\n",
+				plane->base.id, plane->name);
+		return -EINVAL;
+	}
+
+	dprc = fu->dprc;
+
+	if (dpstate->need_aux_source)
+		frame_width = check_aux_source ?
+				dpstate->right_src_w : dpstate->left_src_w;
+	else
+		frame_width = src_w;
+
+	if (dprc &&
+	    dprc_format_supported(dprc, fb->format->format, fb->modifier) &&
+	    dprc_stride_supported(dprc, fb->pitches[0], fb->pitches[1],
+				  frame_width, fb->format->format)) {
+		if (check_aux_source)
+			dpstate->use_aux_prefetch = true;
+		else
+			dpstate->use_prefetch = true;
+	} else {
+		if (check_aux_source)
+			dpstate->use_aux_prefetch = false;
+		else
+			dpstate->use_prefetch = false;
+	}
+
+	if (fb->modifier) {
+		if (check_aux_source && !dpstate->use_aux_prefetch) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] cannot do tile resolving wo prefetch\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		} else if (!check_aux_source && !dpstate->use_prefetch) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] cannot do tile resolving wo prefetch\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+	}
+
+	/* base address alignment check */
+	baseaddr = drm_plane_state_to_baseaddr(state, check_aux_source);
+	switch (fb->format->format) {
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+		bpp = 16;
+		break;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		bpp = 8;
+		break;
+	default:
+		bpp = fb->format->cpp[0] * 8;
+		break;
+	}
+	switch (bpp) {
+	case 32:
+		if (baseaddr & 0x3) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] 32bpp fb bad baddr alignment\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+		break;
+	case 16:
+		if (fb->modifier) {
+			if (baseaddr & 0x1) {
+				DRM_DEBUG_KMS("[PLANE:%d:%s] 16bpp tile fb bad baddr alignment\n",
+						plane->base.id, plane->name);
+				return -EINVAL;
+			}
+		} else {
+			if (check_aux_source) {
+				if (baseaddr &
+				    (dpstate->use_aux_prefetch ? 0x7 : 0x1)) {
+					DRM_DEBUG_KMS("[PLANE:%d:%s] 16bpp fb bad baddr alignment\n",
+							plane->base.id, plane->name);
+					return -EINVAL;
+				}
+			} else {
+				if (baseaddr &
+				    (dpstate->use_prefetch ? 0x7 : 0x1)) {
+					DRM_DEBUG_KMS("[PLANE:%d:%s] 16bpp fb bad baddr alignment\n",
+							plane->base.id, plane->name);
+					return -EINVAL;
+				}
+			}
+		}
+		break;
+	}
+
+	if (fb->pitches[0] > 0x10000) {
+		DRM_DEBUG_KMS("[PLANE:%d:%s] fb pitch[0] is too big\n",
+				plane->base.id, plane->name);
+		return -EINVAL;
+	}
+
+	/* UV base address alignment check, assuming 16bpp */
+	if (fb->format->num_planes > 1) {
+		uv_baseaddr = drm_plane_state_to_uvbaseaddr(state,
+							check_aux_source);
+		if (fb->modifier) {
+			if (uv_baseaddr & 0x1) {
+				DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv baddr alignment for tile fb\n",
+						plane->base.id, plane->name);
+				return -EINVAL;
+			}
+		} else {
+			if (check_aux_source) {
+				if (uv_baseaddr &
+				    (dpstate->use_aux_prefetch ? 0x7 : 0x1)) {
+					DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv baddr alignment\n",
+							plane->base.id, plane->name);
+					return -EINVAL;
+				}
+			} else {
+				if (uv_baseaddr &
+				    (dpstate->use_prefetch ? 0x7 : 0x1)) {
+					DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv baddr alignment\n",
+							plane->base.id, plane->name);
+					return -EINVAL;
+				}
+			}
+		}
+
+		if (fb->pitches[1] > 0x10000) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] fb pitch[1] is too big\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+	}
+
+	if (!check_aux_source && dpstate->use_prefetch &&
+	    !dprc_stride_double_check(dprc, frame_width, src_x,
+					fb->format->format,
+					fb->modifier,
+					baseaddr, uv_baseaddr)) {
+		if (fb->modifier) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad pitch\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+
+		if (bpp == 16 && (baseaddr & 0x1)) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad baddr alignment\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+
+		if (uv_baseaddr & 0x1) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv baddr alignment\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+
+		dpstate->use_prefetch = false;
+	} else if (check_aux_source && dpstate->use_aux_prefetch &&
+		   !dprc_stride_double_check(dprc, frame_width, src_x,
+					fb->format->format,
+					fb->modifier,
+					baseaddr, uv_baseaddr)) {
+		if (fb->modifier) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad pitch\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+
+		if (bpp == 16 && (baseaddr & 0x1)) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad baddr alignment\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+
+		if (uv_baseaddr & 0x1) {
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bad uv baddr alignment\n",
+					plane->base.id, plane->name);
+			return -EINVAL;
+		}
+
+		dpstate->use_aux_prefetch = false;
+	}
+
+	if (dpstate->need_aux_source && !check_aux_source) {
+		check_aux_source = true;
+		goto again;
+	}
+
+	return 0;
+}
+
+static void dpu_plane_atomic_update(struct drm_plane *plane,
+				    struct drm_plane_state *old_state)
+{
+	struct dpu_plane *dplane = to_dpu_plane(plane);
+	struct drm_plane_state *state = plane->state;
+	struct dpu_plane_state *dpstate = to_dpu_plane_state(state);
+	struct drm_framebuffer *fb = state->fb;
+	struct dpu_plane_res *res = &dplane->grp->res;
+	struct dpu_fetchunit *fu;
+	struct dpu_fetchunit *fe = NULL;
+	struct dprc *dprc;
+	struct dpu_hscaler *hs = NULL;
+	struct dpu_vscaler *vs = NULL;
+	struct dpu_layerblend *lb;
+	struct dpu_extdst *ed;
+	struct dpu_framegen *fg;
+	dma_addr_t baseaddr, uv_baseaddr = 0;
+	dpu_block_id_t blend, fe_id, vs_id = ID_NONE, hs_id;
+	lb_sec_sel_t source;
+	lb_prim_sel_t stage;
+	unsigned int stream_id;
+	unsigned int src_w, src_h, src_x, src_y, dst_w, dst_h;
+	unsigned int crtc_x;
+	unsigned int mt_w = 0, mt_h = 0;	/* w/h in a micro-tile */
+	int bpp, lb_id;
+	bool need_fetcheco, need_hscaler = false, need_vscaler = false;
+	bool prefetch_start, uv_prefetch_start;
+	bool crtc_use_pc = dpstate->left_src_w || dpstate->right_src_w;
+	bool update_aux_source = false;
+	bool use_prefetch;
+	bool need_modeset;
+	bool fb_is_interlaced;
+
+	/*
+	 * Do nothing since the plane is disabled by
+	 * crtc_func->atomic_begin/flush.
+	 */
+	if (!fb)
+		return;
+
+	need_modeset = drm_atomic_crtc_needs_modeset(state->crtc->state);
+	fb_is_interlaced = !!(fb->flags & DRM_MODE_FB_INTERLACED);
+
+again:
+	need_fetcheco = false;
+	prefetch_start = false;
+	uv_prefetch_start = false;
+
+	source = update_aux_source ? dpstate->aux_source : dpstate->source;
+	blend = update_aux_source ? dpstate->aux_blend : dpstate->blend;
+	stage = update_aux_source ? dpstate->aux_stage : dpstate->stage;
+	use_prefetch = update_aux_source ?
+			dpstate->use_aux_prefetch : dpstate->use_prefetch;
+
+	if (crtc_use_pc) {
+		if (update_aux_source) {
+			stream_id = 1;
+			crtc_x = dpstate->right_crtc_x;
+		} else {
+			stream_id = dpstate->left_src_w ? 0 : 1;
+			crtc_x = dpstate->left_src_w ?
+				 dpstate->left_crtc_x : dpstate->right_crtc_x;
+		}
+	} else {
+		stream_id = dplane->stream_id;
+		crtc_x = state->crtc_x;
+	}
+
+	fg = res->fg[stream_id];
+
+	fu = source_to_fu(res, source);
+	if (!fu)
+		return;
+
+	dprc = fu->dprc;
+
+	lb_id = blend_to_id(blend);
+	if (lb_id < 0)
+		return;
+
+	lb = res->lb[lb_id];
+
+	if (crtc_use_pc) {
+		if (update_aux_source || !dpstate->left_src_w)
+			src_w = dpstate->right_src_w;
+		else
+			src_w = dpstate->left_src_w;
+	} else {
+		src_w = drm_rect_width(&state->src) >> 16;
+	}
+	src_h = drm_rect_height(&state->src) >> 16;
+	if (crtc_use_pc && update_aux_source) {
+		if (fb->modifier)
+			src_x = (state->src_x >> 16) + dpstate->left_src_w;
+		else
+			src_x = 0;
+	} else {
+		src_x = fb->modifier ? (state->src_x >> 16) : 0;
+	}
+	src_y = fb->modifier ? (state->src_y >> 16) : 0;
+	dst_w = drm_rect_width(&state->dst);
+	dst_h = drm_rect_height(&state->dst);
+
+	if (fetchunit_is_fetchdecode(fu)) {
+		if (fetchdecode_need_fetcheco(fu, fb->format->format)) {
+			need_fetcheco = true;
+			fe = fetchdecode_get_fetcheco(fu);
+			if (IS_ERR(fe))
+				return;
+		}
+
+		/* assume pixel combiner is unused */
+		if ((src_w != dst_w) && !crtc_use_pc) {
+			need_hscaler = true;
+			hs = fetchdecode_get_hscaler(fu);
+			if (IS_ERR(hs))
+				return;
+		}
+
+		if ((src_h != dst_h) || fb_is_interlaced) {
+			need_vscaler = true;
+			vs = fetchdecode_get_vscaler(fu);
+			if (IS_ERR(vs))
+				return;
+		}
+	}
+
+	switch (fb->format->format) {
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+		bpp = 16;
+		break;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		bpp = 8;
+		break;
+	default:
+		bpp = fb->format->cpp[0] * 8;
+		break;
+	}
+
+	switch (fb->modifier) {
+	case DRM_FORMAT_MOD_AMPHION_TILED:
+		mt_w = 8;
+		mt_h = 8;
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_TILED:
+	case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		mt_w = (bpp == 16) ? 8 : 4;
+		mt_h = 4;
+		break;
+	default:
+		break;
+	}
+
+	baseaddr = drm_plane_state_to_baseaddr(state, update_aux_source);
+	if (need_fetcheco)
+		uv_baseaddr = drm_plane_state_to_uvbaseaddr(state,
+							update_aux_source);
+
+	if (use_prefetch &&
+	    (fu->ops->get_stream_id(fu) == DPU_PLANE_SRC_DISABLED ||
+	     need_modeset))
+		prefetch_start = true;
+
+	fu->ops->set_burstlength(fu, src_x, mt_w, bpp, baseaddr, use_prefetch);
+	fu->ops->set_src_bpp(fu, bpp);
+	fu->ops->set_src_stride(fu, src_w, src_w, mt_w, bpp, fb->pitches[0],
+				baseaddr, use_prefetch);
+	fu->ops->set_src_buf_dimensions(fu, src_w, src_h, 0, fb_is_interlaced);
+	fu->ops->set_pixel_blend_mode(fu, state->pixel_blend_mode,
+					state->alpha, fb->format->format);
+	fu->ops->set_fmt(fu, fb->format->format, state->color_encoding,
+					state->color_range, fb_is_interlaced);
+	fu->ops->enable_src_buf(fu);
+	fu->ops->set_framedimensions(fu, src_w, src_h, fb_is_interlaced);
+	fu->ops->set_baseaddress(fu, src_w, src_x, src_y, mt_w, mt_h, bpp,
+				 baseaddr);
+	fu->ops->set_stream_id(fu, stream_id ?
+					DPU_PLANE_SRC_TO_DISP_STREAM1 :
+					DPU_PLANE_SRC_TO_DISP_STREAM0);
+
+	DRM_DEBUG_KMS("[PLANE:%d:%s] %s-0x%02x\n",
+				plane->base.id, plane->name, fu->name, fu->id);
+
+	if (need_fetcheco) {
+		fe_id = fetcheco_get_block_id(fe);
+		if (fe_id == ID_NONE)
+			return;
+
+		if (use_prefetch &&
+		    (fe->ops->get_stream_id(fe) == DPU_PLANE_SRC_DISABLED ||
+		     need_modeset))
+			uv_prefetch_start = true;
+
+		fetchdecode_pixengcfg_dynamic_src_sel(fu,
+						(fd_dynamic_src_sel_t)fe_id);
+		fe->ops->set_burstlength(fe, src_w, mt_w, bpp, uv_baseaddr,
+					 use_prefetch);
+		fe->ops->set_src_bpp(fe, 16);
+		fe->ops->set_src_stride(fe, src_w, src_x, mt_w, bpp,
+					fb->pitches[1],
+					uv_baseaddr, use_prefetch);
+		fe->ops->set_fmt(fe, fb->format->format, state->color_encoding,
+					state->color_range, fb_is_interlaced);
+		fe->ops->set_src_buf_dimensions(fe, src_w, src_h,
+						fb->format->format,
+						fb_is_interlaced);
+		fe->ops->set_framedimensions(fe, src_w, src_h,
+						fb_is_interlaced);
+		fe->ops->set_baseaddress(fe, src_w, src_x, src_y / 2,
+					 mt_w, mt_h, bpp, uv_baseaddr);
+		fe->ops->enable_src_buf(fe);
+		fe->ops->set_stream_id(fe, stream_id ?
+					DPU_PLANE_SRC_TO_DISP_STREAM1 :
+					DPU_PLANE_SRC_TO_DISP_STREAM0);
+
+		DRM_DEBUG_KMS("[PLANE:%d:%s] %s-0x%02x\n",
+				plane->base.id, plane->name, fe->name, fe_id);
+	} else {
+		if (fetchunit_is_fetchdecode(fu))
+			fetchdecode_pixengcfg_dynamic_src_sel(fu,
+								FD_SRC_DISABLE);
+	}
+
+	/* vscaler comes first */
+	if (need_vscaler) {
+		vs_id = vscaler_get_block_id(vs);
+		if (vs_id == ID_NONE)
+			return;
+
+		vscaler_pixengcfg_dynamic_src_sel(vs, (vs_src_sel_t)source);
+		vscaler_pixengcfg_clken(vs, CLKEN__AUTOMATIC);
+		vscaler_setup1(vs, src_h, state->crtc_h, fb_is_interlaced);
+		vscaler_setup2(vs, fb_is_interlaced);
+		vscaler_setup3(vs, fb_is_interlaced);
+		vscaler_output_size(vs, dst_h);
+		vscaler_field_mode(vs, fb_is_interlaced ?
+						SCALER_ALWAYS0 : SCALER_INPUT);
+		vscaler_filter_mode(vs, SCALER_LINEAR);
+		vscaler_scale_mode(vs, SCALER_UPSCALE);
+		vscaler_mode(vs, SCALER_ACTIVE);
+		vscaler_set_stream_id(vs, dplane->stream_id ?
+					DPU_PLANE_SRC_TO_DISP_STREAM1 :
+					DPU_PLANE_SRC_TO_DISP_STREAM0);
+
+		source = (lb_sec_sel_t)vs_id;
+
+		DRM_DEBUG_KMS("[PLANE:%d:%s] vscaler-0x%02x\n",
+					plane->base.id, plane->name, vs_id);
+	}
+
+	/* and then, hscaler */
+	if (need_hscaler) {
+		hs_id = hscaler_get_block_id(hs);
+		if (hs_id == ID_NONE)
+			return;
+
+		hscaler_pixengcfg_dynamic_src_sel(hs, need_vscaler ?
+							(hs_src_sel_t)vs_id :
+							(hs_src_sel_t)source);
+		hscaler_pixengcfg_clken(hs, CLKEN__AUTOMATIC);
+		hscaler_setup1(hs, src_w, dst_w);
+		hscaler_output_size(hs, dst_w);
+		hscaler_filter_mode(hs, SCALER_LINEAR);
+		hscaler_scale_mode(hs, SCALER_UPSCALE);
+		hscaler_mode(hs, SCALER_ACTIVE);
+		hscaler_set_stream_id(hs, dplane->stream_id ?
+					DPU_PLANE_SRC_TO_DISP_STREAM1 :
+					DPU_PLANE_SRC_TO_DISP_STREAM0);
+
+		source = (lb_sec_sel_t)hs_id;
+
+		DRM_DEBUG_KMS("[PLANE:%d:%s] hscaler-0x%02x\n",
+					plane->base.id, plane->name, hs_id);
+	}
+
+	if (use_prefetch) {
+		dprc_configure(dprc, stream_id,
+			       src_w, src_h, src_x, src_y,
+			       fb->pitches[0], fb->format->format,
+			       fb->modifier, baseaddr, uv_baseaddr,
+			       prefetch_start, uv_prefetch_start,
+			       fb_is_interlaced);
+
+		dprc_enable(dprc);
+
+		dprc_reg_update(dprc);
+
+		if (prefetch_start || uv_prefetch_start) {
+			dprc_first_frame_handle(dprc);
+
+			if (!need_modeset && state->normalized_zpos != 0)
+				framegen_wait_for_frame_counter_moving(fg);
+		}
+
+		if (update_aux_source)
+			DRM_DEBUG_KMS("[PLANE:%d:%s] use aux prefetch\n",
+						plane->base.id, plane->name);
+		else
+			DRM_DEBUG_KMS("[PLANE:%d:%s] use prefetch\n",
+						plane->base.id, plane->name);
+	} else if (dprc) {
+		dprc_disable(dprc);
+
+		if (update_aux_source)
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bypass aux prefetch\n",
+						plane->base.id, plane->name);
+		else
+			DRM_DEBUG_KMS("[PLANE:%d:%s] bypass prefetch\n",
+						plane->base.id, plane->name);
+	}
+
+	layerblend_pixengcfg_dynamic_prim_sel(lb, stage);
+	layerblend_pixengcfg_dynamic_sec_sel(lb, source);
+	layerblend_control(lb, LB_BLEND);
+	layerblend_blendcontrol(lb, state->normalized_zpos,
+				state->pixel_blend_mode, state->alpha);
+	layerblend_pixengcfg_clken(lb, CLKEN__AUTOMATIC);
+	layerblend_position(lb, crtc_x, state->crtc_y);
+
+	if (crtc_use_pc) {
+		if ((!stream_id && dpstate->is_left_top) ||
+		     (stream_id && dpstate->is_right_top)) {
+			ed = res->ed[stream_id];
+			extdst_pixengcfg_src_sel(ed, (extdst_src_sel_t)blend);
+		}
+	} else {
+		if (dpstate->is_top) {
+			ed = res->ed[stream_id];
+			extdst_pixengcfg_src_sel(ed, (extdst_src_sel_t)blend);
+		}
+	}
+
+	if (update_aux_source)
+		DRM_DEBUG_KMS("[PLANE:%d:%s] *aux* source-0x%02x stage-0x%02x blend-0x%02x\n",
+				plane->base.id, plane->name,
+				source, dpstate->stage, dpstate->blend);
+	else
+		DRM_DEBUG_KMS("[PLANE:%d:%s] source-0x%02x stage-0x%02x blend-0x%02x\n",
+				plane->base.id, plane->name,
+				source, dpstate->stage, dpstate->blend);
+
+	if (dpstate->need_aux_source && !update_aux_source) {
+		update_aux_source = true;
+		goto again;
+	}
+}
+
+static const struct drm_plane_helper_funcs dpu_plane_helper_funcs = {
+	.prepare_fb = drm_gem_fb_prepare_fb,
+	.atomic_check = dpu_plane_atomic_check,
+	.atomic_update = dpu_plane_atomic_update,
+};
+
+struct dpu_plane *dpu_plane_create(struct drm_device *drm,
+				   unsigned int possible_crtcs,
+				   unsigned int stream_id,
+				   struct dpu_plane_grp *grp,
+				   enum drm_plane_type type)
+{
+	struct dpu_plane *dpu_plane;
+	struct drm_plane *plane;
+	unsigned int zpos = dpu_plane_get_default_zpos(type);
+	int ret;
+
+	dpu_plane = kzalloc(sizeof(*dpu_plane), GFP_KERNEL);
+	if (!dpu_plane)
+		return ERR_PTR(-ENOMEM);
+
+	dpu_plane->stream_id = stream_id;
+	dpu_plane->grp = grp;
+
+	plane = &dpu_plane->base;
+
+	ret = drm_universal_plane_init(drm, plane, possible_crtcs,
+				       &dpu_plane_funcs,
+				       dpu_formats, ARRAY_SIZE(dpu_formats),
+				       dpu_format_modifiers, type, NULL);
+	if (ret)
+		goto err;
+
+	drm_plane_helper_add(plane, &dpu_plane_helper_funcs);
+
+	ret = drm_plane_create_zpos_property(plane,
+					     zpos, 0, grp->hw_plane_num - 1);
+	if (ret)
+		goto err;
+
+	ret = drm_plane_create_alpha_property(plane);
+	if (ret)
+		goto err;
+
+	ret = drm_plane_create_blend_mode_property(plane,
+					BIT(DRM_MODE_BLEND_PIXEL_NONE) |
+					BIT(DRM_MODE_BLEND_PREMULTI)   |
+					BIT(DRM_MODE_BLEND_COVERAGE));
+	if (ret)
+		goto err;
+
+	ret = drm_plane_create_color_properties(plane,
+					BIT(DRM_COLOR_YCBCR_BT601) |
+					BIT(DRM_COLOR_YCBCR_BT709),
+					BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
+					BIT(DRM_COLOR_YCBCR_FULL_RANGE),
+					DRM_COLOR_YCBCR_BT601,
+					DRM_COLOR_YCBCR_FULL_RANGE);
+	if (ret)
+		goto err;
+
+	return dpu_plane;
+
+err:
+	kfree(dpu_plane);
+	return ERR_PTR(ret);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dpu/dpu-plane.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dpu/dpu-plane.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef __DPU_PLANE_H__
+#define __DPU_PLANE_H__
+
+#include <video/dpu.h>
+#include "../imx-drm.h"
+
+#define MAX_DPU_PLANE_GRP	(MAX_CRTC / 2)
+
+enum dpu_plane_src_type {
+	DPU_PLANE_SRC_FL,
+	DPU_PLANE_SRC_FW,
+	DPU_PLANE_SRC_FD,
+};
+
+struct dpu_plane {
+	struct drm_plane	base;
+	struct dpu_plane_grp	*grp;
+	struct list_head	head;
+	unsigned int		stream_id;
+};
+
+struct dpu_plane_state {
+	struct drm_plane_state	base;
+	lb_prim_sel_t		stage;
+	lb_sec_sel_t		source;
+	dpu_block_id_t		blend;
+	lb_prim_sel_t		aux_stage;
+	lb_sec_sel_t		aux_source;
+	dpu_block_id_t		aux_blend;
+
+	bool			is_top;
+	bool			use_prefetch;
+	bool			use_aux_prefetch;
+	bool			need_aux_source;
+
+	/* used when pixel combiner is needed */
+	unsigned int		left_src_w;
+	unsigned int		left_crtc_w;
+	unsigned int		left_crtc_x;
+	unsigned int		right_src_w;
+	unsigned int		right_crtc_w;
+	unsigned int		right_crtc_x;
+
+	bool			is_left_top;
+	bool			is_right_top;
+};
+
+static const lb_prim_sel_t cf_stages[] = {LB_PRIM_SEL__CONSTFRAME0,
+					  LB_PRIM_SEL__CONSTFRAME1};
+static const lb_prim_sel_t stages[] = {LB_PRIM_SEL__LAYERBLEND0,
+				       LB_PRIM_SEL__LAYERBLEND1,
+				       LB_PRIM_SEL__LAYERBLEND2,
+				       LB_PRIM_SEL__LAYERBLEND3};
+/* TODO: Add source entries for subsidiary layers. */
+static const lb_sec_sel_t sources[] = {LB_SEC_SEL__FETCHLAYER0,
+				       LB_SEC_SEL__FETCHWARP2,
+				       LB_SEC_SEL__FETCHDECODE0,
+				       LB_SEC_SEL__FETCHDECODE1};
+static const dpu_block_id_t blends[] = {ID_LAYERBLEND0, ID_LAYERBLEND1,
+					ID_LAYERBLEND2, ID_LAYERBLEND3};
+
+static inline struct dpu_plane *to_dpu_plane(struct drm_plane *plane)
+{
+	return container_of(plane, struct dpu_plane, base);
+}
+
+static inline struct dpu_plane_state *
+to_dpu_plane_state(struct drm_plane_state *plane_state)
+{
+	return container_of(plane_state, struct dpu_plane_state, base);
+}
+
+static inline int source_to_type(lb_sec_sel_t source)
+{
+	switch (source) {
+	case LB_SEC_SEL__FETCHLAYER0:
+		return DPU_PLANE_SRC_FL;
+	case LB_SEC_SEL__FETCHWARP2:
+		return DPU_PLANE_SRC_FW;
+	case LB_SEC_SEL__FETCHDECODE0:
+	case LB_SEC_SEL__FETCHDECODE1:
+		return DPU_PLANE_SRC_FD;
+	default:
+		break;
+	}
+
+	WARN_ON(1);
+	return -EINVAL;
+}
+
+static inline int source_to_id(lb_sec_sel_t source)
+{
+	int i, offset = 0;
+	int type = source_to_type(source);
+
+	for (i = 0; i < ARRAY_SIZE(sources); i++) {
+		if (source != sources[i])
+			continue;
+
+		/* FetchLayer */
+		if (type == DPU_PLANE_SRC_FL)
+			return i;
+
+		/* FetchWarp or FetchDecode */
+		while (offset < ARRAY_SIZE(sources)) {
+			if (source_to_type(sources[offset]) == type)
+				break;
+			offset++;
+		}
+		return i - offset;
+	}
+
+	WARN_ON(1);
+	return -EINVAL;
+}
+
+static inline struct dpu_fetchunit *
+source_to_fu(struct dpu_plane_res *res, lb_sec_sel_t source)
+{
+	int fu_type = source_to_type(source);
+	int fu_id = source_to_id(source);
+
+	if (fu_type < 0 || fu_id < 0)
+		return NULL;
+
+	switch (fu_type) {
+	case DPU_PLANE_SRC_FD:
+		return res->fd[fu_id];
+	case DPU_PLANE_SRC_FL:
+		return res->fl[fu_id];
+	case DPU_PLANE_SRC_FW:
+		return res->fw[fu_id];
+	}
+
+	return NULL;
+}
+
+static inline struct dpu_fetchunit *
+dpstate_to_fu(struct dpu_plane_state *dpstate)
+{
+	struct drm_plane *plane = dpstate->base.plane;
+	struct dpu_plane *dplane = to_dpu_plane(plane);
+	struct dpu_plane_res *res = &dplane->grp->res;
+
+	return source_to_fu(res, dpstate->source);
+}
+
+static inline int blend_to_id(dpu_block_id_t blend)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(blends); i++) {
+		if (blend == blends[i])
+			return i;
+	}
+
+	WARN_ON(1);
+	return -EINVAL;
+}
+
+static inline bool drm_format_is_yuv(uint32_t format)
+{
+	switch (format) {
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		return true;
+	default:
+		break;
+	}
+
+	return false;
+}
+
+struct dpu_plane *dpu_plane_create(struct drm_device *drm,
+				   unsigned int possible_crtcs,
+				   unsigned int stream_id,
+				   struct dpu_plane_grp *grp,
+				   enum drm_plane_type type);
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/dw_hdmi-imx.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/dw_hdmi-imx.c
@@ -9,7 +9,9 @@
 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
+#include <linux/phy/phy.h>
 #include <linux/regmap.h>
+#include <linux/reset.h>
 
 #include <video/imx-ipu-v3.h>
 
@@ -19,13 +21,23 @@
 #include <drm/drm_encoder.h>
 #include <drm/drm_of.h>
 
+#include "imx8mp-hdmi-pavi.h"
 #include "imx-drm.h"
 
+/* GPR reg */
+struct imx_hdmi_chip_data {
+	int	reg_offset;
+	u32	mask_bits;
+	u32	shift_bit;
+};
+
 struct imx_hdmi {
 	struct device *dev;
 	struct drm_encoder encoder;
 	struct dw_hdmi *hdmi;
 	struct regmap *regmap;
+	const struct imx_hdmi_chip_data *chip_data;
+	struct phy *phy;
 };
 
 static inline struct imx_hdmi *enc_to_imx_hdmi(struct drm_encoder *e)
@@ -33,6 +45,19 @@
 	return container_of(e, struct imx_hdmi, encoder);
 }
 
+struct clk_bulk_data imx8mp_clocks[] = {
+	{ .id = "pix_clk"  },
+	{ .id = "phy_int"  },
+	{ .id = "prep_clk" },
+	{ .id = "skp_clk"  },
+	{ .id = "sfr_clk"  },
+	{ .id = "cec_clk"  },
+	{ .id = "apb_clk"  },
+	{ .id = "hpi_clk"  },
+	{ .id = "fdcc_ref" },
+	{ .id = "pipe_clk" },
+};
+
 static const struct dw_hdmi_mpll_config imx_mpll_cfg[] = {
 	{
 		45250000, {
@@ -91,7 +116,7 @@
  * PREEMP config 0.00
  * TX/CK level 10
  */
-static const struct dw_hdmi_phy_config imx_phy_config[] = {
+static const struct dw_hdmi_phy_config imx6_phy_config[] = {
 	/*pixelclk   symbol   term   vlev */
 	{ 216000000, 0x800d, 0x0005, 0x01ad},
 	{ ~0UL,      0x0000, 0x0000, 0x0000}
@@ -100,6 +125,7 @@
 static int dw_hdmi_imx_parse_dt(struct imx_hdmi *hdmi)
 {
 	struct device_node *np = hdmi->dev->of_node;
+	int ret;
 
 	hdmi->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");
 	if (IS_ERR(hdmi->regmap)) {
@@ -107,6 +133,14 @@
 		return PTR_ERR(hdmi->regmap);
 	}
 
+	hdmi->phy = devm_phy_optional_get(hdmi->dev, "hdmi");
+	if (IS_ERR(hdmi->phy)) {
+		ret = PTR_ERR(hdmi->phy);
+		if (ret != -EPROBE_DEFER)
+			dev_err(hdmi->dev, "failed to get phy\n");
+		return ret;
+	}
+
 	return 0;
 }
 
@@ -119,9 +153,11 @@
 	struct imx_hdmi *hdmi = enc_to_imx_hdmi(encoder);
 	int mux = drm_of_encoder_active_port_id(hdmi->dev->of_node, encoder);
 
-	regmap_update_bits(hdmi->regmap, IOMUXC_GPR3,
-			   IMX6Q_GPR3_HDMI_MUX_CTL_MASK,
-			   mux << IMX6Q_GPR3_HDMI_MUX_CTL_SHIFT);
+	if (hdmi->chip_data->reg_offset < 0)
+		return;
+
+	regmap_update_bits(hdmi->regmap, hdmi->chip_data->reg_offset,
+			   hdmi->chip_data->mask_bits, mux << hdmi->chip_data->shift_bit);
 }
 
 static int dw_hdmi_imx_atomic_check(struct drm_encoder *encoder,
@@ -131,6 +167,7 @@
 	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
 
 	imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+	imx_crtc_state->bus_flags = DRM_BUS_FLAG_DE_HIGH;
 	imx_crtc_state->di_hsync_pin = 2;
 	imx_crtc_state->di_vsync_pin = 3;
 
@@ -173,18 +210,167 @@
 	return MODE_OK;
 }
 
+static bool imx8mp_hdmi_check_clk_rate(int rate_khz)
+{
+	int rate = rate_khz * 1000;
+
+	/* Check hdmi phy pixel clock support rate */
+	if (rate != clk_round_rate(imx8mp_clocks[0].clk, rate))
+		return  false;
+	return true;
+}
+
+static enum drm_mode_status
+imx8mp_hdmi_mode_valid(struct drm_connector *con,
+		       const struct drm_display_mode *mode)
+{
+	if (mode->clock < 13500)
+		return MODE_CLOCK_LOW;
+	if (mode->clock > 297000)
+		return MODE_CLOCK_HIGH;
+
+	if (!imx8mp_hdmi_check_clk_rate(mode->clock))
+		return MODE_CLOCK_RANGE;
+
+	/* We don't support double-clocked and Interlaced modes */
+	if (mode->flags & DRM_MODE_FLAG_DBLCLK ||
+			mode->flags & DRM_MODE_FLAG_INTERLACE)
+		return MODE_BAD;
+
+	return MODE_OK;
+}
+
+struct imx_hdmi_chip_data imx6_chip_data = {
+	.reg_offset = IOMUXC_GPR3,
+	.mask_bits = IMX6Q_GPR3_HDMI_MUX_CTL_MASK,
+	.shift_bit = IMX6Q_GPR3_HDMI_MUX_CTL_SHIFT,
+};
+
 static struct dw_hdmi_plat_data imx6q_hdmi_drv_data = {
 	.mpll_cfg   = imx_mpll_cfg,
 	.cur_ctr    = imx_cur_ctr,
-	.phy_config = imx_phy_config,
+	.phy_config = imx6_phy_config,
 	.mode_valid = imx6q_hdmi_mode_valid,
+	.phy_data   = &imx6_chip_data,
 };
 
 static struct dw_hdmi_plat_data imx6dl_hdmi_drv_data = {
 	.mpll_cfg = imx_mpll_cfg,
 	.cur_ctr  = imx_cur_ctr,
-	.phy_config = imx_phy_config,
+	.phy_config = imx6_phy_config,
 	.mode_valid = imx6dl_hdmi_mode_valid,
+	.phy_data   = &imx6_chip_data,
+};
+
+static int imx8mp_hdmi_phy_init(struct dw_hdmi *dw_hdmi, void *data,
+			     struct drm_display_mode *mode)
+{
+	struct imx_hdmi *hdmi = (struct imx_hdmi *)data;
+	int val;
+
+	dev_dbg(hdmi->dev, "%s\n", __func__);
+
+	dw_hdmi_phy_reset(dw_hdmi);
+
+	/* enable PVI */
+	imx8mp_hdmi_pavi_powerup();
+	imx8mp_hdmi_pvi_enable(mode);
+
+	regmap_read(hdmi->regmap, 0x200, &val);
+	/* HDMI PHY power off */
+	val |= 0x8;
+	regmap_write(hdmi->regmap, 0x200, val);
+	/* HDMI PHY power on */
+	val &= ~0x8;
+	/* Enable CEC */
+	val |= 0x2;
+	regmap_write(hdmi->regmap, 0x200, val);
+
+	if (!hdmi->phy)
+		return 0;
+
+	phy_power_on(hdmi->phy);
+
+	return 0;
+}
+
+static void imx8mp_hdmi_phy_disable(struct dw_hdmi *dw_hdmi, void *data)
+{
+	struct imx_hdmi *hdmi = (struct imx_hdmi *)data;
+	int val;
+
+	dev_dbg(hdmi->dev, "%s\n", __func__);
+	if (!hdmi->phy)
+		return;
+
+	/* disable PVI */
+	imx8mp_hdmi_pvi_disable();
+	imx8mp_hdmi_pavi_powerdown();
+
+	/* TODO */
+	regmap_read(hdmi->regmap, 0x200, &val);
+	/* Disable CEC */
+	val &= ~0x2;
+	/* Power down HDMI PHY
+	 * TODO move PHY power off to hdmi phy driver
+	 * val |= 0x8;
+	 * regmap_write(hdmi->regmap, 0x200, val);
+	*/
+}
+
+static int imx8mp_hdmimix_setup(struct imx_hdmi *hdmi)
+{
+	int ret;
+
+	if (NULL == imx8mp_hdmi_pavi_init()) {
+		dev_err(hdmi->dev, "No pavi info found\n");
+		return -EPROBE_DEFER;
+	}
+
+	ret = device_reset(hdmi->dev);
+	if (ret == -EPROBE_DEFER)
+		return ret;
+
+	ret = devm_clk_bulk_get(hdmi->dev, ARRAY_SIZE(imx8mp_clocks), imx8mp_clocks);
+	if (ret < 0) {
+		dev_err(hdmi->dev, "No hdmimix bulk clk got\n");
+		return -EPROBE_DEFER;
+	}
+
+	return clk_bulk_prepare_enable(ARRAY_SIZE(imx8mp_clocks), imx8mp_clocks);
+}
+
+void imx8mp_hdmi_enable_audio(struct dw_hdmi *dw_hdmi, void *data, int channel,
+			      int width, int rate, int non_pcm)
+{
+	imx8mp_hdmi_pai_enable(channel, width, rate, non_pcm);
+}
+
+void imx8mp_hdmi_disable_audio(struct dw_hdmi *dw_hdmi, void *data)
+{
+	imx8mp_hdmi_pai_disable();
+}
+
+static const struct dw_hdmi_phy_ops imx8mp_hdmi_phy_ops = {
+	.init		= imx8mp_hdmi_phy_init,
+	.disable	= imx8mp_hdmi_phy_disable,
+	.read_hpd = dw_hdmi_phy_read_hpd,
+	.update_hpd = dw_hdmi_phy_update_hpd,
+	.setup_hpd = dw_hdmi_phy_setup_hpd,
+	.enable_audio	= imx8mp_hdmi_enable_audio,
+	.disable_audio  = imx8mp_hdmi_disable_audio,
+};
+
+struct imx_hdmi_chip_data imx8mp_chip_data = {
+	.reg_offset = -1,
+};
+
+static const struct dw_hdmi_plat_data imx8mp_hdmi_drv_data = {
+	.mode_valid = imx8mp_hdmi_mode_valid,
+	.phy_data   = &imx8mp_chip_data,
+	.phy_ops    = &imx8mp_hdmi_phy_ops,
+	.phy_name   = "samsung_dw_hdmi_phy2",
+	.phy_force_vendor = true,
 };
 
 static const struct of_device_id dw_hdmi_imx_dt_ids[] = {
@@ -193,6 +379,9 @@
 	}, {
 	  .compatible = "fsl,imx6dl-hdmi",
 	  .data = &imx6dl_hdmi_drv_data
+	}, {
+	  .compatible = "fsl,imx8mp-hdmi",
+	  .data = &imx8mp_hdmi_drv_data
 	},
 	{},
 };
@@ -202,7 +391,7 @@
 			    void *data)
 {
 	struct platform_device *pdev = to_platform_device(dev);
-	const struct dw_hdmi_plat_data *plat_data;
+	struct dw_hdmi_plat_data *plat_data;
 	const struct of_device_id *match;
 	struct drm_device *drm = data;
 	struct drm_encoder *encoder;
@@ -212,24 +401,26 @@
 	if (!pdev->dev.of_node)
 		return -ENODEV;
 
-	hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL);
-	if (!hdmi)
-		return -ENOMEM;
+	hdmi = dev_get_drvdata(dev);
+	memset(hdmi, 0, sizeof(*hdmi));
 
 	match = of_match_node(dw_hdmi_imx_dt_ids, pdev->dev.of_node);
-	plat_data = match->data;
+	if (!match)
+		return -ENODEV;
+
+	plat_data = devm_kmemdup(&pdev->dev, match->data,
+					     sizeof(*plat_data), GFP_KERNEL);
+	if (!plat_data)
+		return -ENOMEM;
+
 	hdmi->dev = &pdev->dev;
 	encoder = &hdmi->encoder;
+	hdmi->chip_data = plat_data->phy_data;
+	plat_data->phy_data = hdmi;
 
-	encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node);
-	/*
-	 * If we failed to find the CRTC(s) which this encoder is
-	 * supposed to be connected to, it's because the CRTC has
-	 * not been registered yet.  Defer probing, and hope that
-	 * the required CRTC is added later.
-	 */
-	if (encoder->possible_crtcs == 0)
-		return -EPROBE_DEFER;
+	ret = imx_drm_encoder_parse_of(drm, encoder, dev->of_node);
+	if (ret)
+		return ret;
 
 	ret = dw_hdmi_imx_parse_dt(hdmi);
 	if (ret < 0)
@@ -239,7 +430,11 @@
 	drm_encoder_init(drm, encoder, &dw_hdmi_imx_encoder_funcs,
 			 DRM_MODE_ENCODER_TMDS, NULL);
 
-	platform_set_drvdata(pdev, hdmi);
+	if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx8mp-hdmi")) {
+		ret = imx8mp_hdmimix_setup(hdmi);
+		if (ret < 0)
+			return ret;
+	}
 
 	hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data);
 
@@ -270,6 +465,14 @@
 
 static int dw_hdmi_imx_probe(struct platform_device *pdev)
 {
+	struct imx_hdmi *hdmi;
+
+	hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL);
+	if (!hdmi)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, hdmi);
+
 	return component_add(&pdev->dev, &dw_hdmi_imx_ops);
 }
 
@@ -280,11 +483,25 @@
 	return 0;
 }
 
+static int __maybe_unused dw_hdmi_imx_resume(struct device *dev)
+{
+	struct imx_hdmi *hdmi = dev_get_drvdata(dev);
+
+	dw_hdmi_resume(hdmi->hdmi);
+
+	return 0;
+}
+
+static const struct dev_pm_ops dw_hdmi_imx_pm = {
+	SET_SYSTEM_SLEEP_PM_OPS(NULL, dw_hdmi_imx_resume)
+};
+
 static struct platform_driver dw_hdmi_imx_platform_driver = {
 	.probe  = dw_hdmi_imx_probe,
 	.remove = dw_hdmi_imx_remove,
 	.driver = {
 		.name = "dwhdmi-imx",
+		.pm = &dw_hdmi_imx_pm,
 		.of_match_table = dw_hdmi_imx_dt_ids,
 	},
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx-drm-core.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx-drm-core.c
@@ -12,6 +12,8 @@
 #include <linux/platform_device.h>
 
 #include <video/imx-ipu-v3.h>
+#include <video/imx-lcdif.h>
+#include <video/imx-lcdifv3.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -24,11 +26,9 @@
 #include <drm/drm_plane_helper.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/drm_vblank.h>
+#include <video/dpu.h>
 
 #include "imx-drm.h"
-#include "ipuv3-plane.h"
-
-#define MAX_CRTC	4
 
 static int legacyfb_depth = 16;
 module_param(legacyfb_depth, int, 0444);
@@ -48,81 +48,6 @@
 }
 EXPORT_SYMBOL_GPL(imx_drm_encoder_destroy);
 
-static int imx_drm_atomic_check(struct drm_device *dev,
-				struct drm_atomic_state *state)
-{
-	int ret;
-
-	ret = drm_atomic_helper_check(dev, state);
-	if (ret)
-		return ret;
-
-	/*
-	 * Check modeset again in case crtc_state->mode_changed is
-	 * updated in plane's ->atomic_check callback.
-	 */
-	ret = drm_atomic_helper_check_modeset(dev, state);
-	if (ret)
-		return ret;
-
-	/* Assign PRG/PRE channels and check if all constrains are satisfied. */
-	ret = ipu_planes_assign_pre(dev, state);
-	if (ret)
-		return ret;
-
-	return ret;
-}
-
-static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = {
-	.fb_create = drm_gem_fb_create,
-	.atomic_check = imx_drm_atomic_check,
-	.atomic_commit = drm_atomic_helper_commit,
-};
-
-static void imx_drm_atomic_commit_tail(struct drm_atomic_state *state)
-{
-	struct drm_device *dev = state->dev;
-	struct drm_plane *plane;
-	struct drm_plane_state *old_plane_state, *new_plane_state;
-	bool plane_disabling = false;
-	int i;
-
-	drm_atomic_helper_commit_modeset_disables(dev, state);
-
-	drm_atomic_helper_commit_planes(dev, state,
-				DRM_PLANE_COMMIT_ACTIVE_ONLY |
-				DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET);
-
-	drm_atomic_helper_commit_modeset_enables(dev, state);
-
-	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
-		if (drm_atomic_plane_disabling(old_plane_state, new_plane_state))
-			plane_disabling = true;
-	}
-
-	/*
-	 * The flip done wait is only strictly required by imx-drm if a deferred
-	 * plane disable is in-flight. As the core requires blocking commits
-	 * to wait for the flip it is done here unconditionally. This keeps the
-	 * workitem around a bit longer than required for the majority of
-	 * non-blocking commits, but we accept that for the sake of simplicity.
-	 */
-	drm_atomic_helper_wait_for_flip_done(dev, state);
-
-	if (plane_disabling) {
-		for_each_old_plane_in_state(state, plane, old_plane_state, i)
-			ipu_plane_disable_deferred(plane);
-
-	}
-
-	drm_atomic_helper_commit_hw_done(state);
-}
-
-static const struct drm_mode_config_helper_funcs imx_drm_mode_config_helpers = {
-	.atomic_commit_tail = imx_drm_atomic_commit_tail,
-};
-
-
 int imx_drm_encoder_parse_of(struct drm_device *drm,
 	struct drm_encoder *encoder, struct device_node *np)
 {
@@ -139,8 +64,8 @@
 
 	encoder->possible_crtcs = crtc_mask;
 
-	/* FIXME: this is the mask of outputs which can clone this output. */
-	encoder->possible_clones = ~0;
+	/* FIXME: cloning support not clear, disable it all for now */
+	encoder->possible_clones = 0;
 
 	return 0;
 }
@@ -183,6 +108,30 @@
 		struct ipu_client_platformdata *pdata = dev->platform_data;
 
 		return pdata->of_node == np;
+	} else if (strcmp(dev->driver->name, "imx-dpu-crtc") == 0) {
+		struct dpu_client_platformdata *pdata = dev->platform_data;
+
+		return pdata->of_node == np;
+	} else if (strcmp(dev->driver->name, "imx-lcdif-crtc") == 0 ||
+		   strcmp(dev->driver->name, "imx-lcdifv3-crtc") == 0) {
+		struct lcdif_client_platformdata *pdata = dev->platform_data;
+#if IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION)
+		/* set legacyfb_depth to be 32 for lcdif, since
+		 * default format of the connectors attached to
+		 * lcdif is usually RGB888
+		 */
+		if (pdata->of_node == np)
+			legacyfb_depth = 32;
+#endif
+
+		return pdata->of_node == np;
+	}
+
+	/* This is a special case for dpu bliteng. */
+	if (strcmp(dev->driver->name, "imx-drm-dpu-bliteng") == 0) {
+		struct dpu_client_platformdata *pdata = dev->platform_data;
+
+		return pdata->of_node == np;
 	}
 
 	/* Special case for LDB, one device for two channels */
@@ -194,11 +143,104 @@
 	return dev->of_node == np;
 }
 
+static const char *const imx_drm_dpu_comp_parents[] = {
+	"fsl,imx8qm-dpu",
+	"fsl,imx8qxp-dpu",
+};
+
+static bool imx_drm_parent_is_compatible(struct device *dev,
+					 const char *const comp_parents[],
+					 int comp_parents_size)
+{
+	struct device_node *port, *parent;
+	bool ret = false;
+	int i;
+
+	port = of_parse_phandle(dev->of_node, "ports", 0);
+	if (!port)
+		return ret;
+
+	parent = of_get_parent(port);
+
+	for (i = 0; i < comp_parents_size; i++) {
+		if (of_device_is_compatible(parent, comp_parents[i])) {
+			ret = true;
+			break;
+		}
+	}
+
+	of_node_put(parent);
+
+	of_node_put(port);
+
+	return ret;
+}
+
+static inline bool has_dpu(struct device *dev)
+{
+	return imx_drm_parent_is_compatible(dev, imx_drm_dpu_comp_parents,
+					ARRAY_SIZE(imx_drm_dpu_comp_parents));
+}
+
+static void add_dpu_bliteng_components(struct device *dev,
+				       struct component_match **matchptr)
+{
+	/*
+	 * As there may be two dpu bliteng device,
+	 * so need add something in compare data to distinguish.
+	 * Use its parent dpu's of_node as the data here.
+	 */
+	struct device_node *port, *parent;
+	/* assume max dpu number is 8 */
+	struct device_node *dpu[8];
+	int num_dpu = 0;
+	int i, j;
+	bool found = false;
+
+	for (i = 0; ; i++) {
+		port = of_parse_phandle(dev->of_node, "ports", i);
+		if (!port)
+			break;
+
+		parent = of_get_parent(port);
+
+		for (j = 0; j < num_dpu; j++) {
+			if (dpu[j] == parent) {
+				found = true;
+				break;
+			}
+		}
+
+		if (found) {
+			found = false;
+		} else {
+			if (num_dpu >= ARRAY_SIZE(dpu)) {
+				dev_err(dev, "The number of found dpu is greater than max [%ld].\n",
+					ARRAY_SIZE(dpu));
+				of_node_put(parent);
+				of_node_put(port);
+				break;
+			}
+
+			dpu[num_dpu] = parent;
+			num_dpu++;
+
+			component_match_add(dev, matchptr, compare_of, parent);
+		}
+
+		of_node_put(parent);
+		of_node_put(port);
+	}
+}
+
 static int imx_drm_bind(struct device *dev)
 {
 	struct drm_device *drm;
 	int ret;
 
+	if (has_dpu(dev))
+		imx_drm_driver.driver_features |= DRIVER_RENDER;
+
 	drm = drm_dev_alloc(&imx_drm_driver, dev);
 	if (IS_ERR(drm))
 		return PTR_ERR(drm);
@@ -223,9 +265,6 @@
 	drm->mode_config.min_height = 1;
 	drm->mode_config.max_width = 4096;
 	drm->mode_config.max_height = 4096;
-	drm->mode_config.funcs = &imx_drm_mode_config_funcs;
-	drm->mode_config.helper_private = &imx_drm_mode_config_helpers;
-	drm->mode_config.allow_fb_modifiers = true;
 	drm->mode_config.normalize_zpos = true;
 
 	drm_mode_config_init(drm);
@@ -234,8 +273,6 @@
 	if (ret)
 		goto err_kms;
 
-	dev_set_drvdata(dev, drm);
-
 	/* Now try and bind all our sub-components */
 	ret = component_bind_all(dev, drm);
 	if (ret)
@@ -261,6 +298,8 @@
 
 	drm_fbdev_generic_setup(drm, legacyfb_depth);
 
+	dev_set_drvdata(dev, drm);
+
 	return 0;
 
 err_poll_fini:
@@ -277,13 +316,17 @@
 {
 	struct drm_device *drm = dev_get_drvdata(dev);
 
+	if (has_dpu(dev))
+		imx_drm_driver.driver_features &= ~DRIVER_RENDER;
+
 	drm_dev_unregister(drm);
 
 	drm_kms_helper_poll_fini(drm);
 
+	component_unbind_all(drm->dev, drm);
+
 	drm_mode_config_cleanup(drm);
 
-	component_unbind_all(drm->dev, drm);
 	dev_set_drvdata(dev, NULL);
 
 	drm_dev_put(drm);
@@ -296,7 +339,14 @@
 
 static int imx_drm_platform_probe(struct platform_device *pdev)
 {
-	int ret = drm_of_component_probe(&pdev->dev, compare_of, &imx_drm_ops);
+	struct component_match *match = NULL;
+	int ret;
+
+	if (has_dpu(&pdev->dev))
+		add_dpu_bliteng_components(&pdev->dev, &match);
+
+	ret = drm_of_component_probe_with_match(&pdev->dev, match, compare_of,
+						&imx_drm_ops);
 
 	if (!ret)
 		ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
@@ -343,23 +393,7 @@
 		.of_match_table = imx_drm_dt_ids,
 	},
 };
-
-static struct platform_driver * const drivers[] = {
-	&imx_drm_pdrv,
-	&ipu_drm_driver,
-};
-
-static int __init imx_drm_init(void)
-{
-	return platform_register_drivers(drivers, ARRAY_SIZE(drivers));
-}
-module_init(imx_drm_init);
-
-static void __exit imx_drm_exit(void)
-{
-	platform_unregister_drivers(drivers, ARRAY_SIZE(drivers));
-}
-module_exit(imx_drm_exit);
+module_platform_driver(imx_drm_pdrv);
 
 MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>");
 MODULE_DESCRIPTION("i.MX drm driver core");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx-drm.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx-drm.h
@@ -2,6 +2,8 @@
 #ifndef _IMX_DRM_H_
 #define _IMX_DRM_H_
 
+#define MAX_CRTC	4
+
 struct device_node;
 struct drm_crtc;
 struct drm_connector;
@@ -28,8 +30,6 @@
 		int preferred_bpp);
 int imx_drm_exit_drm(void);
 
-extern struct platform_driver ipu_drm_driver;
-
 void imx_drm_mode_config_init(struct drm_device *drm);
 
 struct drm_gem_cma_object *imx_drm_fb_get_obj(struct drm_framebuffer *fb);
@@ -40,7 +40,4 @@
 void imx_drm_connector_destroy(struct drm_connector *connector);
 void imx_drm_encoder_destroy(struct drm_encoder *encoder);
 
-int ipu_planes_assign_pre(struct drm_device *dev,
-			  struct drm_atomic_state *state);
-
 #endif /* _IMX_DRM_H_ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx-ldb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx-ldb.c
@@ -7,7 +7,6 @@
 
 #include <linux/clk.h>
 #include <linux/component.h>
-#include <linux/mfd/syscon.h>
 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 #include <linux/module.h>
 #include <linux/of_device.h>
@@ -18,12 +17,11 @@
 #include <video/of_display_timing.h>
 #include <video/of_videomode.h>
 
+#include <drm/bridge/fsl_imx_ldb.h>
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_of.h>
-#include <drm/drm_panel.h>
-#include <drm/drm_print.h>
 #include <drm/drm_probe_helper.h>
 
 #include "imx-drm.h"
@@ -36,34 +34,22 @@
 #define LDB_CH1_MODE_EN_TO_DI0		(1 << 2)
 #define LDB_CH1_MODE_EN_TO_DI1		(3 << 2)
 #define LDB_CH1_MODE_EN_MASK		(3 << 2)
-#define LDB_SPLIT_MODE_EN		(1 << 4)
-#define LDB_DATA_WIDTH_CH0_24		(1 << 5)
-#define LDB_BIT_MAP_CH0_JEIDA		(1 << 6)
-#define LDB_DATA_WIDTH_CH1_24		(1 << 7)
-#define LDB_BIT_MAP_CH1_JEIDA		(1 << 8)
-#define LDB_DI0_VS_POL_ACT_LOW		(1 << 9)
-#define LDB_DI1_VS_POL_ACT_LOW		(1 << 10)
 #define LDB_BGREF_RMODE_INT		(1 << 15)
 
 struct imx_ldb;
 
 struct imx_ldb_channel {
-	struct imx_ldb *ldb;
+	struct ldb_channel base;
+	struct imx_ldb *imx_ldb;
+
 	struct drm_connector connector;
 	struct drm_encoder encoder;
 
-	/* Defines what is connected to the ldb, only one at a time */
-	struct drm_panel *panel;
-	struct drm_bridge *bridge;
-
-	struct device_node *child;
 	struct i2c_adapter *ddc;
-	int chno;
 	void *edid;
 	int edid_len;
 	struct drm_display_mode mode;
 	int mode_valid;
-	u32 bus_format;
 	u32 bus_flags;
 };
 
@@ -84,51 +70,19 @@
 };
 
 struct imx_ldb {
-	struct regmap *regmap;
-	struct device *dev;
+	struct ldb base;
 	struct imx_ldb_channel channel[2];
 	struct clk *clk[2]; /* our own clock */
 	struct clk *clk_sel[4]; /* parent of display clock */
 	struct clk *clk_parent[4]; /* original parent of clk_sel */
 	struct clk *clk_pll[2]; /* upstream clock we can adjust */
-	u32 ldb_ctrl;
 	const struct bus_mux *lvds_mux;
 };
 
-static void imx_ldb_ch_set_bus_format(struct imx_ldb_channel *imx_ldb_ch,
-				      u32 bus_format)
-{
-	struct imx_ldb *ldb = imx_ldb_ch->ldb;
-	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
-
-	switch (bus_format) {
-	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
-		break;
-	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
-		if (imx_ldb_ch->chno == 0 || dual)
-			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24;
-		if (imx_ldb_ch->chno == 1 || dual)
-			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24;
-		break;
-	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
-		if (imx_ldb_ch->chno == 0 || dual)
-			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH0_24 |
-					 LDB_BIT_MAP_CH0_JEIDA;
-		if (imx_ldb_ch->chno == 1 || dual)
-			ldb->ldb_ctrl |= LDB_DATA_WIDTH_CH1_24 |
-					 LDB_BIT_MAP_CH1_JEIDA;
-		break;
-	}
-}
-
 static int imx_ldb_connector_get_modes(struct drm_connector *connector)
 {
 	struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
-	int num_modes;
-
-	num_modes = drm_panel_get_modes(imx_ldb_ch->panel);
-	if (num_modes > 0)
-		return num_modes;
+	int num_modes = 0;
 
 	if (!imx_ldb_ch->edid && imx_ldb_ch->ddc)
 		imx_ldb_ch->edid = drm_get_edid(connector, imx_ldb_ch->ddc);
@@ -162,28 +116,29 @@
 	return &imx_ldb_ch->encoder;
 }
 
-static void imx_ldb_set_clock(struct imx_ldb *ldb, int mux, int chno,
+static void imx_ldb_set_clock(struct imx_ldb *imx_ldb, int mux, int chno,
 		unsigned long serial_clk, unsigned long di_clk)
 {
+	struct ldb *ldb = &imx_ldb->base;
 	int ret;
 
 	dev_dbg(ldb->dev, "%s: now: %ld want: %ld\n", __func__,
-			clk_get_rate(ldb->clk_pll[chno]), serial_clk);
-	clk_set_rate(ldb->clk_pll[chno], serial_clk);
+			clk_get_rate(imx_ldb->clk_pll[chno]), serial_clk);
+	clk_set_rate(imx_ldb->clk_pll[chno], serial_clk);
 
 	dev_dbg(ldb->dev, "%s after: %ld\n", __func__,
-			clk_get_rate(ldb->clk_pll[chno]));
+			clk_get_rate(imx_ldb->clk_pll[chno]));
 
 	dev_dbg(ldb->dev, "%s: now: %ld want: %ld\n", __func__,
-			clk_get_rate(ldb->clk[chno]),
+			clk_get_rate(imx_ldb->clk[chno]),
 			(long int)di_clk);
-	clk_set_rate(ldb->clk[chno], di_clk);
+	clk_set_rate(imx_ldb->clk[chno], di_clk);
 
 	dev_dbg(ldb->dev, "%s after: %ld\n", __func__,
-			clk_get_rate(ldb->clk[chno]));
+			clk_get_rate(imx_ldb->clk[chno]));
 
 	/* set display clock mux to LDB input clock */
-	ret = clk_set_parent(ldb->clk_sel[mux], ldb->clk[chno]);
+	ret = clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[chno]);
 	if (ret)
 		dev_err(ldb->dev,
 			"unable to set di%d parent clock to ldb_di%d\n", mux,
@@ -193,52 +148,53 @@
 static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
 {
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
-	struct imx_ldb *ldb = imx_ldb_ch->ldb;
-	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
-	int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
-
-	drm_panel_prepare(imx_ldb_ch->panel);
-
-	if (dual) {
-		clk_set_parent(ldb->clk_sel[mux], ldb->clk[0]);
-		clk_set_parent(ldb->clk_sel[mux], ldb->clk[1]);
+	struct imx_ldb *imx_ldb = imx_ldb_ch->imx_ldb;
+	struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
+	struct ldb *ldb = &imx_ldb->base;
+	int mux = drm_of_encoder_active_port_id(ldb_ch->child, encoder);
+
+	if (mux < 0 || mux >= ARRAY_SIZE(imx_ldb->clk_sel)) {
+		dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux);
+		return;
+	}
+
+	if (ldb->dual) {
+		clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[0]);
+		clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk[1]);
 
-		clk_prepare_enable(ldb->clk[0]);
-		clk_prepare_enable(ldb->clk[1]);
+		clk_prepare_enable(imx_ldb->clk[0]);
+		clk_prepare_enable(imx_ldb->clk[1]);
 	} else {
-		clk_set_parent(ldb->clk_sel[mux], ldb->clk[imx_ldb_ch->chno]);
+		clk_set_parent(imx_ldb->clk_sel[mux],
+			       imx_ldb->clk[ldb_ch->chno]);
 	}
 
-	if (imx_ldb_ch == &ldb->channel[0] || dual) {
+	if (imx_ldb_ch == &imx_ldb->channel[0] || ldb->dual) {
 		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-		if (mux == 0 || ldb->lvds_mux)
+		if (mux == 0 || imx_ldb->lvds_mux)
 			ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0;
 		else if (mux == 1)
 			ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI1;
 	}
-	if (imx_ldb_ch == &ldb->channel[1] || dual) {
+	if (imx_ldb_ch == &imx_ldb->channel[1] || ldb->dual) {
 		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
-		if (mux == 1 || ldb->lvds_mux)
+		if (mux == 1 || imx_ldb->lvds_mux)
 			ldb->ldb_ctrl |= LDB_CH1_MODE_EN_TO_DI1;
 		else if (mux == 0)
 			ldb->ldb_ctrl |= LDB_CH1_MODE_EN_TO_DI0;
 	}
 
-	if (ldb->lvds_mux) {
+	if (imx_ldb->lvds_mux) {
 		const struct bus_mux *lvds_mux = NULL;
 
-		if (imx_ldb_ch == &ldb->channel[0])
-			lvds_mux = &ldb->lvds_mux[0];
-		else if (imx_ldb_ch == &ldb->channel[1])
-			lvds_mux = &ldb->lvds_mux[1];
+		if (imx_ldb_ch == &imx_ldb->channel[0])
+			lvds_mux = &imx_ldb->lvds_mux[0];
+		else if (imx_ldb_ch == &imx_ldb->channel[1])
+			lvds_mux = &imx_ldb->lvds_mux[1];
 
 		regmap_update_bits(ldb->regmap, lvds_mux->reg, lvds_mux->mask,
 				   mux << lvds_mux->shift);
 	}
-
-	regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
-
-	drm_panel_enable(imx_ldb_ch->panel);
 }
 
 static void
@@ -247,100 +203,80 @@
 				struct drm_connector_state *connector_state)
 {
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
+	struct imx_ldb *imx_ldb = imx_ldb_ch->imx_ldb;
+	struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
+	struct ldb *ldb = &imx_ldb->base;
 	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
-	struct imx_ldb *ldb = imx_ldb_ch->ldb;
-	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
 	unsigned long serial_clk;
 	unsigned long di_clk = mode->clock * 1000;
-	int mux = drm_of_encoder_active_port_id(imx_ldb_ch->child, encoder);
-	u32 bus_format = imx_ldb_ch->bus_format;
+	int mux = drm_of_encoder_active_port_id(ldb_ch->child, encoder);
+
+	if (mux < 0 || mux >= ARRAY_SIZE(imx_ldb->clk_sel)) {
+		dev_warn(ldb->dev, "%s: invalid mux %d\n", __func__, mux);
+		return;
+	}
 
 	if (mode->clock > 170000) {
 		dev_warn(ldb->dev,
 			 "%s: mode exceeds 170 MHz pixel clock\n", __func__);
 	}
-	if (mode->clock > 85000 && !dual) {
+	if (mode->clock > 85000 && !ldb->dual) {
 		dev_warn(ldb->dev,
 			 "%s: mode exceeds 85 MHz pixel clock\n", __func__);
 	}
 
-	if (dual) {
+	if (ldb->dual) {
 		serial_clk = 3500UL * mode->clock;
-		imx_ldb_set_clock(ldb, mux, 0, serial_clk, di_clk);
-		imx_ldb_set_clock(ldb, mux, 1, serial_clk, di_clk);
+		imx_ldb_set_clock(imx_ldb, mux, 0, serial_clk, di_clk);
+		imx_ldb_set_clock(imx_ldb, mux, 1, serial_clk, di_clk);
 	} else {
 		serial_clk = 7000UL * mode->clock;
-		imx_ldb_set_clock(ldb, mux, imx_ldb_ch->chno, serial_clk,
+		imx_ldb_set_clock(imx_ldb, mux, ldb_ch->chno, serial_clk,
 				  di_clk);
 	}
 
-	/* FIXME - assumes straight connections DI0 --> CH0, DI1 --> CH1 */
-	if (imx_ldb_ch == &ldb->channel[0] || dual) {
-		if (mode->flags & DRM_MODE_FLAG_NVSYNC)
-			ldb->ldb_ctrl |= LDB_DI0_VS_POL_ACT_LOW;
-		else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
-			ldb->ldb_ctrl &= ~LDB_DI0_VS_POL_ACT_LOW;
-	}
-	if (imx_ldb_ch == &ldb->channel[1] || dual) {
-		if (mode->flags & DRM_MODE_FLAG_NVSYNC)
-			ldb->ldb_ctrl |= LDB_DI1_VS_POL_ACT_LOW;
-		else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
-			ldb->ldb_ctrl &= ~LDB_DI1_VS_POL_ACT_LOW;
-	}
-
-	if (!bus_format) {
+	if (!ldb_ch->bus_format) {
 		struct drm_connector *connector = connector_state->connector;
 		struct drm_display_info *di = &connector->display_info;
 
 		if (di->num_bus_formats)
-			bus_format = di->bus_formats[0];
+			ldb_ch->bus_format = di->bus_formats[0];
 	}
-	imx_ldb_ch_set_bus_format(imx_ldb_ch, bus_format);
 }
 
 static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
 {
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
-	struct imx_ldb *ldb = imx_ldb_ch->ldb;
+	struct imx_ldb *imx_ldb = imx_ldb_ch->imx_ldb;
+	struct ldb *ldb = &imx_ldb->base;
 	int mux, ret;
 
-	drm_panel_disable(imx_ldb_ch->panel);
-
-	if (imx_ldb_ch == &ldb->channel[0])
-		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-	else if (imx_ldb_ch == &ldb->channel[1])
-		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
-
-	regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
-
-	if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
-		clk_disable_unprepare(ldb->clk[0]);
-		clk_disable_unprepare(ldb->clk[1]);
+	if (ldb->dual) {
+		clk_disable_unprepare(imx_ldb->clk[0]);
+		clk_disable_unprepare(imx_ldb->clk[1]);
 	}
 
-	if (ldb->lvds_mux) {
+	if (imx_ldb->lvds_mux) {
 		const struct bus_mux *lvds_mux = NULL;
 
-		if (imx_ldb_ch == &ldb->channel[0])
-			lvds_mux = &ldb->lvds_mux[0];
-		else if (imx_ldb_ch == &ldb->channel[1])
-			lvds_mux = &ldb->lvds_mux[1];
+		if (imx_ldb_ch == &imx_ldb->channel[0])
+			lvds_mux = &imx_ldb->lvds_mux[0];
+		else if (imx_ldb_ch == &imx_ldb->channel[1])
+			lvds_mux = &imx_ldb->lvds_mux[1];
 
 		regmap_read(ldb->regmap, lvds_mux->reg, &mux);
 		mux &= lvds_mux->mask;
 		mux >>= lvds_mux->shift;
 	} else {
-		mux = (imx_ldb_ch == &ldb->channel[0]) ? 0 : 1;
+		mux = (imx_ldb_ch == &imx_ldb->channel[0]) ? 0 : 1;
 	}
 
 	/* set display clock mux back to original input clock */
-	ret = clk_set_parent(ldb->clk_sel[mux], ldb->clk_parent[mux]);
+	ret = clk_set_parent(imx_ldb->clk_sel[mux], imx_ldb->clk_parent[mux]);
 	if (ret)
 		dev_err(ldb->dev,
 			"unable to set di%d parent clock to original parent\n",
 			mux);
-
-	drm_panel_unprepare(imx_ldb_ch->panel);
 }
 
 static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
@@ -349,15 +285,16 @@
 {
 	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
+	struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
 	struct drm_display_info *di = &conn_state->connector->display_info;
-	u32 bus_format = imx_ldb_ch->bus_format;
+	u32 bus_format = ldb_ch->bus_format;
 
 	/* Bus format description in DT overrides connector display info. */
 	if (!bus_format && di->num_bus_formats) {
 		bus_format = di->bus_formats[0];
 		imx_crtc_state->bus_flags = di->bus_flags;
 	} else {
-		bus_format = imx_ldb_ch->bus_format;
+		bus_format = ldb_ch->bus_format;
 		imx_crtc_state->bus_flags = imx_ldb_ch->bus_flags;
 	}
 	switch (bus_format) {
@@ -378,7 +315,6 @@
 	return 0;
 }
 
-
 static const struct drm_connector_funcs imx_ldb_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.destroy = imx_drm_connector_destroy,
@@ -389,7 +325,6 @@
 
 static const struct drm_connector_helper_funcs imx_ldb_connector_helper_funcs = {
 	.get_modes = imx_ldb_connector_get_modes,
-	.best_encoder = imx_ldb_connector_best_encoder,
 };
 
 static const struct drm_encoder_funcs imx_ldb_encoder_funcs = {
@@ -403,117 +338,22 @@
 	.atomic_check = imx_ldb_encoder_atomic_check,
 };
 
-static int imx_ldb_get_clk(struct imx_ldb *ldb, int chno)
+static int imx_ldb_get_clk(struct imx_ldb *imx_ldb, int chno)
 {
+	struct ldb *ldb = &imx_ldb->base;
+	struct device *dev = ldb->dev;
 	char clkname[16];
 
 	snprintf(clkname, sizeof(clkname), "di%d", chno);
-	ldb->clk[chno] = devm_clk_get(ldb->dev, clkname);
-	if (IS_ERR(ldb->clk[chno]))
-		return PTR_ERR(ldb->clk[chno]);
+	imx_ldb->clk[chno] = devm_clk_get(dev, clkname);
+	if (IS_ERR(imx_ldb->clk[chno]))
+		return PTR_ERR(imx_ldb->clk[chno]);
 
 	snprintf(clkname, sizeof(clkname), "di%d_pll", chno);
-	ldb->clk_pll[chno] = devm_clk_get(ldb->dev, clkname);
-
-	return PTR_ERR_OR_ZERO(ldb->clk_pll[chno]);
-}
-
-static int imx_ldb_register(struct drm_device *drm,
-	struct imx_ldb_channel *imx_ldb_ch)
-{
-	struct imx_ldb *ldb = imx_ldb_ch->ldb;
-	struct drm_encoder *encoder = &imx_ldb_ch->encoder;
-	int ret;
-
-	ret = imx_drm_encoder_parse_of(drm, encoder, imx_ldb_ch->child);
-	if (ret)
-		return ret;
-
-	ret = imx_ldb_get_clk(ldb, imx_ldb_ch->chno);
-	if (ret)
-		return ret;
-
-	if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
-		ret = imx_ldb_get_clk(ldb, 1);
-		if (ret)
-			return ret;
-	}
-
-	drm_encoder_helper_add(encoder, &imx_ldb_encoder_helper_funcs);
-	drm_encoder_init(drm, encoder, &imx_ldb_encoder_funcs,
-			 DRM_MODE_ENCODER_LVDS, NULL);
-
-	if (imx_ldb_ch->bridge) {
-		ret = drm_bridge_attach(&imx_ldb_ch->encoder,
-					imx_ldb_ch->bridge, NULL);
-		if (ret) {
-			DRM_ERROR("Failed to initialize bridge with drm\n");
-			return ret;
-		}
-	} else {
-		/*
-		 * We want to add the connector whenever there is no bridge
-		 * that brings its own, not only when there is a panel. For
-		 * historical reasons, the ldb driver can also work without
-		 * a panel.
-		 */
-		drm_connector_helper_add(&imx_ldb_ch->connector,
-				&imx_ldb_connector_helper_funcs);
-		drm_connector_init_with_ddc(drm, &imx_ldb_ch->connector,
-					    &imx_ldb_connector_funcs,
-					    DRM_MODE_CONNECTOR_LVDS,
-					    imx_ldb_ch->ddc);
-		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
-	}
-
-	if (imx_ldb_ch->panel) {
-		ret = drm_panel_attach(imx_ldb_ch->panel,
-				       &imx_ldb_ch->connector);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-
-enum {
-	LVDS_BIT_MAP_SPWG,
-	LVDS_BIT_MAP_JEIDA
-};
-
-struct imx_ldb_bit_mapping {
-	u32 bus_format;
-	u32 datawidth;
-	const char * const mapping;
-};
-
-static const struct imx_ldb_bit_mapping imx_ldb_bit_mappings[] = {
-	{ MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,  18, "spwg" },
-	{ MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,  24, "spwg" },
-	{ MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, 24, "jeida" },
-};
-
-static u32 of_get_bus_format(struct device *dev, struct device_node *np)
-{
-	const char *bm;
-	u32 datawidth = 0;
-	int ret, i;
-
-	ret = of_property_read_string(np, "fsl,data-mapping", &bm);
-	if (ret < 0)
-		return ret;
-
-	of_property_read_u32(np, "fsl,data-width", &datawidth);
 
-	for (i = 0; i < ARRAY_SIZE(imx_ldb_bit_mappings); i++) {
-		if (!strcasecmp(bm, imx_ldb_bit_mappings[i].mapping) &&
-		    datawidth == imx_ldb_bit_mappings[i].datawidth)
-			return imx_ldb_bit_mappings[i].bus_format;
-	}
-
-	dev_err(dev, "invalid data mapping: %d-bit \"%s\"\n", datawidth, bm);
+	imx_ldb->clk_pll[chno] = devm_clk_get(dev, clkname);
 
-	return -ENOENT;
+	return PTR_ERR_OR_ZERO(imx_ldb->clk_pll[chno]);
 }
 
 static struct bus_mux imx6q_lvds_mux[2] = {
@@ -529,8 +369,8 @@
 };
 
 /*
- * For a device declaring compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb",
- * of_match_device will walk through this list and take the first entry
+ * For a device declaring compatible = "fsl,imx6q-ldb",  "fsl,imx53-ldb",
+ * of_match_device will walk through this  list and take the first entry
  * matching any of its compatible values. Therefore, the more generic
  * entries (in this case fsl,imx53-ldb) need to be ordered last.
  */
@@ -542,83 +382,125 @@
 MODULE_DEVICE_TABLE(of, imx_ldb_dt_ids);
 
 static int imx_ldb_panel_ddc(struct device *dev,
-		struct imx_ldb_channel *channel, struct device_node *child)
+		struct imx_ldb_channel *imx_ldb_ch, struct device_node *child)
 {
+	struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
 	struct device_node *ddc_node;
 	const u8 *edidp;
 	int ret;
 
 	ddc_node = of_parse_phandle(child, "ddc-i2c-bus", 0);
 	if (ddc_node) {
-		channel->ddc = of_find_i2c_adapter_by_node(ddc_node);
+		imx_ldb_ch->ddc = of_find_i2c_adapter_by_node(ddc_node);
 		of_node_put(ddc_node);
-		if (!channel->ddc) {
+		if (!imx_ldb_ch->ddc) {
 			dev_warn(dev, "failed to get ddc i2c adapter\n");
 			return -EPROBE_DEFER;
 		}
 	}
 
-	if (!channel->ddc) {
+	if (!imx_ldb_ch->ddc) {
 		/* if no DDC available, fallback to hardcoded EDID */
 		dev_dbg(dev, "no ddc available\n");
 
 		edidp = of_get_property(child, "edid",
-					&channel->edid_len);
+					&imx_ldb_ch->edid_len);
 		if (edidp) {
-			channel->edid = kmemdup(edidp,
-						channel->edid_len,
+			imx_ldb_ch->edid = kmemdup(edidp,
+						imx_ldb_ch->edid_len,
 						GFP_KERNEL);
-		} else if (!channel->panel) {
+		} else if (!ldb_ch->panel) {
 			/* fallback to display-timings node */
 			ret = of_get_drm_display_mode(child,
-						      &channel->mode,
-						      &channel->bus_flags,
+						      &imx_ldb_ch->mode,
+						      &imx_ldb_ch->bus_flags,
 						      OF_USE_NATIVE_MODE);
 			if (!ret)
-				channel->mode_valid = 1;
+				imx_ldb_ch->mode_valid = 1;
 		}
 	}
 	return 0;
 }
 
+static int imx_ldb_register(struct drm_device *drm,
+	struct imx_ldb_channel *imx_ldb_ch)
+{
+	struct imx_ldb *imx_ldb = imx_ldb_ch->imx_ldb;
+	struct ldb *ldb = &imx_ldb->base;
+	struct ldb_channel *ldb_ch = &imx_ldb_ch->base;
+	struct drm_encoder *encoder = &imx_ldb_ch->encoder;
+	int ret;
+
+	ret = imx_drm_encoder_parse_of(drm, encoder, ldb_ch->child);
+	if (ret)
+		return ret;
+
+	ret = imx_ldb_get_clk(imx_ldb, ldb_ch->chno);
+	if (ret)
+		return ret;
+
+	if (ldb->dual) {
+		ret = imx_ldb_get_clk(imx_ldb, 1);
+		if (ret)
+			return ret;
+	}
+
+	if (!ldb_ch->next_bridge) {
+		/* panel ddc only if there is no bridge */
+		ret = imx_ldb_panel_ddc(ldb->dev, imx_ldb_ch, ldb_ch->child);
+		if (ret)
+			return ret;
+
+		/*
+		 * We want to add the connector whenever there is no bridge
+		 * that brings its own, not only when there is a panel. For
+		 * historical reasons, the ldb driver can also work without
+		 * a panel.
+		 */
+		drm_connector_helper_add(&imx_ldb_ch->connector,
+				&imx_ldb_connector_helper_funcs);
+		drm_connector_init(drm, &imx_ldb_ch->connector,
+				&imx_ldb_connector_funcs,
+				DRM_MODE_CONNECTOR_LVDS);
+		drm_connector_attach_encoder(&imx_ldb_ch->connector, encoder);
+	}
+
+	return 0;
+}
+
 static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
 {
 	struct drm_device *drm = data;
-	struct device_node *np = dev->of_node;
 	const struct of_device_id *of_id =
 			of_match_device(imx_ldb_dt_ids, dev);
-	struct device_node *child;
-	struct imx_ldb *imx_ldb;
-	int dual;
+	struct imx_ldb *imx_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb;
+	struct ldb_channel *ldb_ch;
+	struct drm_encoder *encoder[LDB_CH_NUM];
 	int ret;
 	int i;
 
-	imx_ldb = devm_kzalloc(dev, sizeof(*imx_ldb), GFP_KERNEL);
-	if (!imx_ldb)
-		return -ENOMEM;
-
-	imx_ldb->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");
-	if (IS_ERR(imx_ldb->regmap)) {
-		dev_err(dev, "failed to get parent regmap\n");
-		return PTR_ERR(imx_ldb->regmap);
-	}
-
-	/* disable LDB by resetting the control register to POR default */
-	regmap_write(imx_ldb->regmap, IOMUXC_GPR2, 0);
-
-	imx_ldb->dev = dev;
+	imx_ldb->lvds_mux = of_id ? of_id->data : NULL;
 
-	if (of_id)
-		imx_ldb->lvds_mux = of_id->data;
+	ldb = &imx_ldb->base;
+	ldb->dev = dev;
+	ldb->ctrl_reg = IOMUXC_GPR2;
+	/*
+	 * The output port is port@4 with an external 4-port mux or
+	 * port@2 with the internal 2-port mux or port@1 without mux.
+	 */
+	ldb->output_port = imx_ldb->lvds_mux ? 4 : 2;
 
-	dual = of_property_read_bool(np, "fsl,dual-channel");
-	if (dual)
-		imx_ldb->ldb_ctrl |= LDB_SPLIT_MODE_EN;
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		imx_ldb->channel[i].imx_ldb = imx_ldb;
+		ldb->channel[i] = &imx_ldb->channel[i].base;
+	}
 
 	/*
 	 * There are three different possible clock mux configurations:
 	 * i.MX53:  ipu1_di0_sel, ipu1_di1_sel
-	 * i.MX6q:  ipu1_di0_sel, ipu1_di1_sel, ipu2_di0_sel, ipu2_di1_sel
+	 * i.MX6q:  ipu1_di0_sel, ipu1_di1_sel, ipu2_di0_sel,
+	 *          ipu2_di1_sel
 	 * i.MX6dl: ipu1_di0_sel, ipu1_di1_sel, lcdif_sel
 	 * Map them all to di0_sel...di3_sel.
 	 */
@@ -626,90 +508,45 @@
 		char clkname[16];
 
 		sprintf(clkname, "di%d_sel", i);
-		imx_ldb->clk_sel[i] = devm_clk_get(imx_ldb->dev, clkname);
+		imx_ldb->clk_sel[i] = devm_clk_get(dev, clkname);
 		if (IS_ERR(imx_ldb->clk_sel[i])) {
 			ret = PTR_ERR(imx_ldb->clk_sel[i]);
 			imx_ldb->clk_sel[i] = NULL;
 			break;
 		}
 
-		imx_ldb->clk_parent[i] = clk_get_parent(imx_ldb->clk_sel[i]);
+		imx_ldb->clk_parent[i] =
+				clk_get_parent(imx_ldb->clk_sel[i]);
 	}
 	if (i == 0)
 		return ret;
 
-	for_each_child_of_node(np, child) {
-		struct imx_ldb_channel *channel;
-		int bus_format;
-
-		ret = of_property_read_u32(child, "reg", &i);
-		if (ret || i < 0 || i > 1) {
-			ret = -EINVAL;
-			goto free_child;
-		}
-
-		if (!of_device_is_available(child))
-			continue;
-
-		if (dual && i > 0) {
-			dev_warn(dev, "dual-channel mode, ignoring second output\n");
-			continue;
-		}
-
-		channel = &imx_ldb->channel[i];
-		channel->ldb = imx_ldb;
-		channel->chno = i;
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		encoder[i] = &imx_ldb->channel[i].encoder;
 
-		/*
-		 * The output port is port@4 with an external 4-port mux or
-		 * port@2 with the internal 2-port mux.
-		 */
-		ret = drm_of_find_panel_or_bridge(child,
-						  imx_ldb->lvds_mux ? 4 : 2, 0,
-						  &channel->panel, &channel->bridge);
-		if (ret && ret != -ENODEV)
-			goto free_child;
+		drm_encoder_helper_add(encoder[i],
+				      &imx_ldb_encoder_helper_funcs);
+		drm_encoder_init(drm, encoder[i], &imx_ldb_encoder_funcs,
+				 DRM_MODE_ENCODER_LVDS, NULL);
+	}
 
-		/* panel ddc only if there is no bridge */
-		if (!channel->bridge) {
-			ret = imx_ldb_panel_ddc(dev, channel, child);
-			if (ret)
-				goto free_child;
-		}
+	ret = ldb_bind(ldb, encoder);
+	if (ret)
+		return ret;
 
-		bus_format = of_get_bus_format(dev, child);
-		if (bus_format == -EINVAL) {
-			/*
-			 * If no bus format was specified in the device tree,
-			 * we can still get it from the connected panel later.
-			 */
-			if (channel->panel && channel->panel->funcs &&
-			    channel->panel->funcs->get_modes)
-				bus_format = 0;
-		}
-		if (bus_format < 0) {
-			dev_err(dev, "could not determine data mapping: %d\n",
-				bus_format);
-			ret = bus_format;
-			goto free_child;
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		ldb_ch = &imx_ldb->channel[i].base;
+		if (!ldb_ch->is_valid) {
+			drm_encoder_cleanup(encoder[i]);
+			continue;
 		}
-		channel->bus_format = bus_format;
-		channel->child = child;
 
-		ret = imx_ldb_register(drm, channel);
-		if (ret) {
-			channel->child = NULL;
-			goto free_child;
-		}
+		ret = imx_ldb_register(drm, &imx_ldb->channel[i]);
+		if (ret)
+			return ret;
 	}
 
-	dev_set_drvdata(dev, imx_ldb);
-
 	return 0;
-
-free_child:
-	of_node_put(child);
-	return ret;
 }
 
 static void imx_ldb_unbind(struct device *dev, struct device *master,
@@ -718,14 +555,11 @@
 	struct imx_ldb *imx_ldb = dev_get_drvdata(dev);
 	int i;
 
-	for (i = 0; i < 2; i++) {
-		struct imx_ldb_channel *channel = &imx_ldb->channel[i];
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		struct imx_ldb_channel *imx_ldb_ch = &imx_ldb->channel[i];
 
-		if (channel->panel)
-			drm_panel_detach(channel->panel);
-
-		kfree(channel->edid);
-		i2c_put_adapter(channel->ddc);
+		kfree(imx_ldb_ch->edid);
+		i2c_put_adapter(imx_ldb_ch->ddc);
 	}
 }
 
@@ -736,7 +570,16 @@
 
 static int imx_ldb_probe(struct platform_device *pdev)
 {
-	return component_add(&pdev->dev, &imx_ldb_ops);
+	struct device *dev = &pdev->dev;
+	struct imx_ldb *imx_ldb;
+
+	imx_ldb = devm_kzalloc(dev, sizeof(*imx_ldb), GFP_KERNEL);
+	if (!imx_ldb)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, imx_ldb);
+
+	return component_add(dev, &imx_ldb_ops);
 }
 
 static int imx_ldb_remove(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx-tve.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx-tve.c
@@ -237,8 +237,9 @@
 	return ret;
 }
 
-static int imx_tve_connector_mode_valid(struct drm_connector *connector,
-					struct drm_display_mode *mode)
+static enum drm_mode_status
+imx_tve_connector_mode_valid(struct drm_connector *connector,
+			     struct drm_display_mode *mode)
 {
 	struct imx_tve *tve = con_to_tve(connector);
 	unsigned long rate;
@@ -259,14 +260,6 @@
 	return MODE_BAD;
 }
 
-static struct drm_encoder *imx_tve_connector_best_encoder(
-		struct drm_connector *connector)
-{
-	struct imx_tve *tve = con_to_tve(connector);
-
-	return &tve->encoder;
-}
-
 static void imx_tve_encoder_mode_set(struct drm_encoder *encoder,
 				     struct drm_display_mode *orig_mode,
 				     struct drm_display_mode *mode)
@@ -344,7 +337,6 @@
 
 static const struct drm_connector_helper_funcs imx_tve_connector_helper_funcs = {
 	.get_modes = imx_tve_connector_get_modes,
-	.best_encoder = imx_tve_connector_best_encoder,
 	.mode_valid = imx_tve_connector_mode_valid,
 };
 
@@ -494,6 +486,13 @@
 	return 0;
 }
 
+static void imx_tve_disable_regulator(void *data)
+{
+	struct imx_tve *tve = data;
+
+	regulator_disable(tve->dac_reg);
+}
+
 static bool imx_tve_readable_reg(struct device *dev, unsigned int reg)
 {
 	return (reg % 4 == 0) && (reg <= 0xdc);
@@ -546,9 +545,8 @@
 	int irq;
 	int ret;
 
-	tve = devm_kzalloc(dev, sizeof(*tve), GFP_KERNEL);
-	if (!tve)
-		return -ENOMEM;
+	tve = dev_get_drvdata(dev);
+	memset(tve, 0, sizeof(*tve));
 
 	tve->dev = dev;
 	spin_lock_init(&tve->lock);
@@ -598,10 +596,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq < 0) {
-		dev_err(dev, "failed to get irq\n");
+	if (irq < 0)
 		return irq;
-	}
 
 	ret = devm_request_threaded_irq(dev, irq, NULL,
 					imx_tve_irq_handler, IRQF_ONESHOT,
@@ -618,6 +614,9 @@
 		ret = regulator_enable(tve->dac_reg);
 		if (ret)
 			return ret;
+		ret = devm_add_action_or_reset(dev, imx_tve_disable_regulator, tve);
+		if (ret)
+			return ret;
 	}
 
 	tve->clk = devm_clk_get(dev, "tve");
@@ -659,27 +658,23 @@
 	if (ret)
 		return ret;
 
-	dev_set_drvdata(dev, tve);
-
 	return 0;
 }
 
-static void imx_tve_unbind(struct device *dev, struct device *master,
-	void *data)
-{
-	struct imx_tve *tve = dev_get_drvdata(dev);
-
-	if (!IS_ERR(tve->dac_reg))
-		regulator_disable(tve->dac_reg);
-}
-
 static const struct component_ops imx_tve_ops = {
 	.bind	= imx_tve_bind,
-	.unbind	= imx_tve_unbind,
 };
 
 static int imx_tve_probe(struct platform_device *pdev)
 {
+	struct imx_tve *tve;
+
+	tve = devm_kzalloc(&pdev->dev, sizeof(*tve), GFP_KERNEL);
+	if (!tve)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, tve);
+
 	return component_add(&pdev->dev, &imx_tve_ops);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx8mp-hdmi-pavi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx8mp-hdmi-pavi.c
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020 NXP
+ *
+ * Programe Video/Audio Interface between LCDIF and HDMI Ctrl in HDMIMIX
+ *
+ */
+
+#include <linux/io.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/of_graph.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <drm/drm_fourcc.h>
+
+#include "imx8mp-hdmi-pavi.h"
+
+#define DRIVER_NAME "imx-hdmi-pavi"
+
+#define HTX_PVI_CTRL         0x0
+#define HTX_PVI_IRQ_MASK     0x04
+#define HTX_TMG_GEN_DISP_LRC 0x10
+#define HTX_TMG_GEN_DE_ULC   0x14
+#define HTX_TMG_GEN_DE_LRC   0x18
+#define HTX_TMG_GEN_HSYNC    0x1c
+#define HTX_TMG_GEN_VSYNC    0x20
+#define HTX_TMG_GEN_IRQ0     0x24
+#define HTX_TMG_GEN_IRQ1     0x28
+#define HTX_TMG_GEN_IRQ2     0x2c
+#define HTX_TMG_GEN_IRQ3     0x30
+#define HTX_TMG_GEN_CFG      0x40
+
+#define HTX_PAI_CTRL        0x800
+#define HTX_PAI_CTRL_EXT    0x804
+#define HTX_PAI_FIELD_CTRL  0x808
+
+#define HTX_PAI_CTRL_ENABLE 1
+
+
+static struct imx8mp_hdmi_pavi *gpavi;
+
+/* PAI APIs  */
+void imx8mp_hdmi_pai_enable(int channel, int width, int rate, int non_pcm)
+{
+	/* PAI set */
+	writel((0x3030000 | ((channel-1) << 8)),
+			gpavi->base + HTX_PAI_CTRL_EXT);
+
+	/* hbr */
+	if (non_pcm && width == 32 && channel == 8 && rate == 192000)
+		writel(0x004e77df, gpavi->base + HTX_PAI_FIELD_CTRL);
+	else if (width == 32)
+		writel(0x1c8c675b, gpavi->base + HTX_PAI_FIELD_CTRL);
+	else
+		writel(0x1c0c675b, gpavi->base + HTX_PAI_FIELD_CTRL);
+
+	/* PAI start running */
+	writel(HTX_PAI_CTRL_ENABLE, gpavi->base + HTX_PAI_CTRL);
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pai_enable);
+
+void imx8mp_hdmi_pai_disable(void)
+{
+	/* stop PAI */
+	writel(0, gpavi->base + HTX_PAI_CTRL);
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pai_disable);
+
+/* PVI APIs  */
+void imx8mp_hdmi_pvi_enable(struct drm_display_mode *mode)
+{
+	writel(0x00000003, gpavi->base + HTX_PVI_IRQ_MASK);
+	writel(0x08970464, gpavi->base + HTX_TMG_GEN_DISP_LRC);
+	writel(0x00bf0029, gpavi->base + HTX_TMG_GEN_DE_ULC);
+	writel(0x083f0460, gpavi->base + HTX_TMG_GEN_DE_LRC);
+	writel(0x0897002b, gpavi->base + HTX_TMG_GEN_HSYNC);
+	writel(0x04640004, gpavi->base + HTX_TMG_GEN_VSYNC);
+	writel(0x000100ff, gpavi->base + HTX_TMG_GEN_IRQ0);
+	writel(0x000100f0, gpavi->base + HTX_TMG_GEN_IRQ1);
+	writel(0x00010315, gpavi->base + HTX_TMG_GEN_IRQ2);
+	writel(0x00010207, gpavi->base + HTX_TMG_GEN_IRQ3);
+	writel(0x84640000, gpavi->base + HTX_TMG_GEN_CFG);
+
+	/* DE/VSYN/HSYNC pol */
+	if ((mode->flags & DRM_MODE_FLAG_PVSYNC) &&
+			(mode->flags & DRM_MODE_FLAG_PHSYNC)) {
+		writel(0x00377004, gpavi->base + HTX_PVI_CTRL);
+		writel(0x00377005, gpavi->base + HTX_PVI_CTRL);
+	} else {
+		writel(0x00311004, gpavi->base + HTX_PVI_CTRL);
+		writel(0x00311005, gpavi->base + HTX_PVI_CTRL);
+	}
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pvi_enable);
+
+void imx8mp_hdmi_pvi_disable(void)
+{
+	/* Stop PVI */
+	writel(0x0, gpavi->base + HTX_PVI_CTRL);
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pvi_disable);
+
+void imx8mp_hdmi_pavi_powerup(void)
+{
+	clk_prepare_enable(gpavi->clk_pvi);
+	clk_prepare_enable(gpavi->clk_pai);
+
+	/* deassert pai reset */
+	if (!gpavi->reset_pai)
+		reset_control_deassert(gpavi->reset_pai);
+
+	/* deassert pvi reset */
+	if (!gpavi->reset_pvi)
+		reset_control_deassert(gpavi->reset_pvi);
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pavi_powerup);
+
+void imx8mp_hdmi_pavi_powerdown(void)
+{
+	/* set pvi reset */
+	if (!gpavi->reset_pvi)
+		reset_control_assert(gpavi->reset_pvi);
+
+	/* set pai reset */
+	if (!gpavi->reset_pai)
+		reset_control_assert(gpavi->reset_pai);
+
+	clk_disable_unprepare(gpavi->clk_pai);
+	clk_disable_unprepare(gpavi->clk_pvi);
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pavi_powerdown);
+
+struct imx8mp_hdmi_pavi *imx8mp_hdmi_pavi_init(void)
+{
+	return gpavi;
+}
+EXPORT_SYMBOL(imx8mp_hdmi_pavi_init);
+
+static int imx8mp_hdmi_pavi_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct imx8mp_hdmi_pavi *pavi;
+	struct resource *res;
+
+	dev_dbg(dev, "%s: probe begin\n", __func__);
+
+	pavi = devm_kzalloc(dev, sizeof(*pavi), GFP_KERNEL);
+	if (!pavi) {
+		dev_err(dev, "Can't allocate 'imx8mp pavi' structure\n");
+		return -ENOMEM;
+	}
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -ENODEV;
+
+	pavi->base = devm_ioremap_resource(dev, res);
+	if (IS_ERR(pavi->base))
+		return PTR_ERR(pavi->base);
+
+	pavi->clk_pvi = devm_clk_get(dev, "pvi_clk");
+	if (IS_ERR(pavi->clk_pvi)) {
+		dev_err(dev, "No pvi clock get\n");
+		return -EPROBE_DEFER;
+	}
+
+	pavi->clk_pai = devm_clk_get(dev, "pai_clk");
+	if (IS_ERR(pavi->clk_pai)) {
+		dev_err(dev, "No pai clock get\n");
+		return -EPROBE_DEFER;
+	}
+
+	pavi->reset_pai = devm_reset_control_get(dev, "pai_rst");
+	if (IS_ERR(pavi->reset_pai)) {
+		dev_err(pavi->dev, "No PAI reset\n");
+		return -EPROBE_DEFER;
+	}
+
+	pavi->reset_pvi = devm_reset_control_get(dev, "pvi_rst");
+	if (IS_ERR(pavi->reset_pvi)) {
+		dev_err(pavi->dev, "No PVI reset\n");
+		return -EPROBE_DEFER;
+	}
+
+	platform_set_drvdata(pdev, pavi);
+
+	gpavi = pavi;
+
+	dev_dbg(dev, "%s: probe success\n", __func__);
+	return 0;
+}
+
+static int imx8mp_hdmi_pavi_remove(struct platform_device *pdev)
+{
+	gpavi = NULL;
+	return 0;
+}
+
+static const struct of_device_id imx8mp_hdmi_pavi_dt_ids[] = {
+	{ .compatible = "fsl,imx8mp-hdmi-pavi", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx8mp_hdmi_pavi_dt_ids);
+
+struct platform_driver imx8mp_hdmi_pavi_driver = {
+	.probe    = imx8mp_hdmi_pavi_probe,
+	.remove   = imx8mp_hdmi_pavi_remove,
+	.driver   = {
+		.name = DRIVER_NAME,
+		.of_match_table = imx8mp_hdmi_pavi_dt_ids,
+	},
+};
+
+module_platform_driver(imx8mp_hdmi_pavi_driver);
+
+MODULE_DESCRIPTION("NXP i.MX8MP HDMI PAI/PVI Mix driver");
+MODULE_AUTHOR("Sandor Yu <Sandor.yu@nxp.com>");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx8mp-hdmi-pavi.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx8mp-hdmi-pavi.h
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020 NXP
+ *
+ * PAI/PVI Head file
+ *
+ */
+#ifndef _IMX8MP_HDMI_AV_CTL_H_
+#define _IMX8MP_HDMI_AV_CTL_H_
+
+#include <linux/clk.h>
+#include <linux/reset.h>
+#include <drm/drm_modes.h>
+
+struct imx8mp_hdmi_pavi {
+	struct device *dev;
+
+	void __iomem *base;
+	atomic_t rpm_suspended;
+
+	struct clk *clk_pai;
+	struct clk *clk_pvi;
+	struct reset_control *reset_pai;
+	struct reset_control *reset_pvi;
+};
+
+void imx8mp_hdmi_pai_enable(int channel, int width, int rate, int non_pcm);
+void imx8mp_hdmi_pai_disable(void);
+
+void imx8mp_hdmi_pvi_enable(struct drm_display_mode *mode);
+void imx8mp_hdmi_pvi_disable(void);
+
+void imx8mp_hdmi_pavi_powerup(void);
+void imx8mp_hdmi_pavi_powerdown(void);
+
+struct imx8mp_hdmi_pavi *imx8mp_hdmi_pavi_init(void);
+
+#endif /* _IMX8MP_HDMI_PAVI_H_ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx8mp-ldb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx8mp-ldb.c
@@ -0,0 +1,464 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 NXP
+ */
+
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/phy/phy.h>
+
+#include <drm/bridge/fsl_imx_ldb.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_probe_helper.h>
+
+#include "imx-drm.h"
+
+#define DRIVER_NAME "imx8mp-ldb"
+
+#define LDB_CH0_MODE_EN_TO_DI0		(1 << 0)
+#define LDB_CH0_MODE_EN_TO_DI1		(3 << 0)
+#define LDB_CH0_MODE_EN_MASK		(3 << 0)
+#define LDB_CH1_MODE_EN_TO_DI0		(1 << 2)
+#define LDB_CH1_MODE_EN_TO_DI1		(3 << 2)
+#define LDB_CH1_MODE_EN_MASK		(3 << 2)
+#define LDB_REG_CH0_FIFO_RESET		(1 << 11)
+#define LDB_REG_CH1_FIFO_RESET		(1 << 12)
+#define LDB_REG_ASYNC_FIFO_EN		(1 << 24)
+#define LDB_FIFO_THRESHOLD		(4 << 25)
+
+struct imx8mp_ldb;
+
+struct imx8mp_ldb_channel {
+	struct ldb_channel base;
+	struct imx8mp_ldb *imx8mp_ldb;
+
+	struct drm_connector connector;
+	struct drm_encoder encoder;
+
+	struct phy *phy;
+	bool phy_is_on;
+
+	u32 bus_flags;
+};
+
+static inline struct imx8mp_ldb_channel *
+con_to_imx8mp_ldb_ch(struct drm_connector *c)
+{
+	return container_of(c, struct imx8mp_ldb_channel, connector);
+}
+
+static inline struct imx8mp_ldb_channel *
+enc_to_imx8mp_ldb_ch(struct drm_encoder *e)
+{
+	return container_of(e, struct imx8mp_ldb_channel, encoder);
+}
+
+struct imx8mp_ldb {
+	struct ldb base;
+	struct imx8mp_ldb_channel channel[LDB_CH_NUM];
+	struct clk *clk_root;
+};
+
+static struct drm_encoder *imx8mp_ldb_connector_best_encoder(
+		struct drm_connector *connector)
+{
+	struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						con_to_imx8mp_ldb_ch(connector);
+
+	return &imx8mp_ldb_ch->encoder;
+}
+
+static void imx8mp_ldb_encoder_enable(struct drm_encoder *encoder)
+{
+	struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						enc_to_imx8mp_ldb_ch(encoder);
+	struct imx8mp_ldb *imx8mp_ldb = imx8mp_ldb_ch->imx8mp_ldb;
+	struct ldb *ldb = &imx8mp_ldb->base;
+
+	clk_prepare_enable(imx8mp_ldb->clk_root);
+
+	if (imx8mp_ldb_ch == &imx8mp_ldb->channel[0] || ldb->dual) {
+		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
+		ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0;
+	}
+	if (imx8mp_ldb_ch == &imx8mp_ldb->channel[1] || ldb->dual) {
+		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
+		ldb->ldb_ctrl |= ldb->dual ?
+				LDB_CH1_MODE_EN_TO_DI0 : LDB_CH1_MODE_EN_TO_DI1;
+	}
+
+	if (ldb->dual) {
+		phy_power_on(imx8mp_ldb->channel[0].phy);
+		phy_power_on(imx8mp_ldb->channel[1].phy);
+
+		imx8mp_ldb->channel[0].phy_is_on = true;
+		imx8mp_ldb->channel[1].phy_is_on = true;
+	} else {
+		phy_power_on(imx8mp_ldb_ch->phy);
+
+		imx8mp_ldb_ch->phy_is_on = true;
+	}
+}
+
+static void
+imx8mp_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder,
+				   struct drm_crtc_state *crtc_state,
+				   struct drm_connector_state *connector_state)
+{
+	struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						enc_to_imx8mp_ldb_ch(encoder);
+	struct imx8mp_ldb *imx8mp_ldb = imx8mp_ldb_ch->imx8mp_ldb;
+	struct ldb_channel *ldb_ch = &imx8mp_ldb_ch->base;
+	struct ldb *ldb = &imx8mp_ldb->base;
+	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
+	unsigned long serial_clk;
+
+	if (mode->clock > 160000) {
+		dev_warn(ldb->dev,
+			 "%s: mode exceeds 160 MHz pixel clock\n", __func__);
+	}
+	if (mode->clock > 80000 && !ldb->dual) {
+		dev_warn(ldb->dev,
+			 "%s: mode exceeds 80 MHz pixel clock\n", __func__);
+	}
+
+	serial_clk = mode->clock * (ldb->dual ? 3500UL : 7000UL);
+	clk_set_rate(imx8mp_ldb->clk_root, serial_clk);
+
+	if (!ldb_ch->bus_format) {
+		struct drm_connector *connector = connector_state->connector;
+		struct drm_display_info *di = &connector->display_info;
+
+		if (di->num_bus_formats)
+			ldb_ch->bus_format = di->bus_formats[0];
+	}
+}
+
+static void imx8mp_ldb_encoder_disable(struct drm_encoder *encoder)
+{
+	struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						enc_to_imx8mp_ldb_ch(encoder);
+	struct imx8mp_ldb *imx8mp_ldb = imx8mp_ldb_ch->imx8mp_ldb;
+	struct ldb *ldb = &imx8mp_ldb->base;
+
+	if (ldb->dual) {
+		phy_power_off(imx8mp_ldb->channel[0].phy);
+		phy_power_off(imx8mp_ldb->channel[1].phy);
+
+		imx8mp_ldb->channel[0].phy_is_on = false;
+		imx8mp_ldb->channel[1].phy_is_on = false;
+	} else {
+		phy_power_off(imx8mp_ldb_ch->phy);
+
+		imx8mp_ldb_ch->phy_is_on = false;
+	}
+
+	clk_disable_unprepare(imx8mp_ldb->clk_root);
+}
+
+static int
+imx8mp_ldb_encoder_atomic_check(struct drm_encoder *encoder,
+				struct drm_crtc_state *crtc_state,
+				struct drm_connector_state *conn_state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						enc_to_imx8mp_ldb_ch(encoder);
+	struct ldb_channel *ldb_ch = &imx8mp_ldb_ch->base;
+	struct imx8mp_ldb *imx8mp_ldb = imx8mp_ldb_ch->imx8mp_ldb;
+	struct ldb *ldb = &imx8mp_ldb->base;
+	struct drm_display_info *di = &conn_state->connector->display_info;
+	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
+	u32 bus_format = ldb_ch->bus_format;
+
+	/* Bus format description in DT overrides connector display info. */
+	if (!bus_format && di->num_bus_formats) {
+		bus_format = di->bus_formats[0];
+		imx_crtc_state->bus_flags = di->bus_flags;
+	} else {
+		bus_format = ldb_ch->bus_format;
+		imx_crtc_state->bus_flags = imx8mp_ldb_ch->bus_flags;
+	}
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	/*
+	 * Due to limited video PLL frequency points on i.MX8mp,
+	 * we do mode fixup here in case any mode is unsupported.
+	 */
+	if (ldb->dual)
+		mode->clock = mode->clock > 100000 ? 148500 : 74250;
+	else
+		mode->clock = 74250;
+
+	return 0;
+}
+
+static enum drm_mode_status
+imx8mp_ldb_encoder_mode_valid(struct drm_encoder *encoder,
+			      const struct drm_display_mode *mode)
+{
+	struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						enc_to_imx8mp_ldb_ch(encoder);
+	struct ldb_channel *ldb_ch = &imx8mp_ldb_ch->base;
+	struct imx8mp_ldb *imx8mp_ldb = imx8mp_ldb_ch->imx8mp_ldb;
+	struct ldb *ldb = &imx8mp_ldb->base;
+
+	/* it should be okay with a panel */
+	if (ldb_ch->panel)
+		return MODE_OK;
+
+	/*
+	 * Due to limited video PLL frequency points on i.MX8mp,
+	 * we do mode valid check here.
+	 */
+	if (ldb->dual && mode->clock != 74250 && mode->clock != 148500)
+		return MODE_NOCLOCK;
+
+	if (!ldb->dual && mode->clock != 74250)
+		return MODE_NOCLOCK;
+
+	return MODE_OK;
+}
+
+static const struct drm_connector_funcs imx8mp_ldb_connector_funcs = {
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.destroy = imx_drm_connector_destroy,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static const struct drm_connector_helper_funcs
+imx8mp_ldb_connector_helper_funcs = {
+	.best_encoder = imx8mp_ldb_connector_best_encoder,
+};
+
+static const struct drm_encoder_funcs imx8mp_ldb_encoder_funcs = {
+	.destroy = imx_drm_encoder_destroy,
+};
+
+static const struct drm_encoder_helper_funcs imx8mp_ldb_encoder_helper_funcs = {
+	.atomic_mode_set = imx8mp_ldb_encoder_atomic_mode_set,
+	.enable = imx8mp_ldb_encoder_enable,
+	.disable = imx8mp_ldb_encoder_disable,
+	.atomic_check = imx8mp_ldb_encoder_atomic_check,
+	.mode_valid = imx8mp_ldb_encoder_mode_valid,
+};
+
+static const struct of_device_id imx8mp_ldb_dt_ids[] = {
+	{ .compatible = "fsl,imx8mp-ldb", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, imx8mp_ldb_dt_ids);
+
+static int
+imx8mp_ldb_bind(struct device *dev, struct device *master, void *data)
+{
+	struct drm_device *drm = data;
+	struct device_node *np = dev->of_node;
+	struct device_node *child;
+	struct imx8mp_ldb *imx8mp_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb;
+	struct ldb_channel *ldb_ch;
+	struct drm_encoder *encoder[LDB_CH_NUM];
+	int ret;
+	int i;
+
+	ldb = &imx8mp_ldb->base;
+	ldb->dev = dev;
+	ldb->ctrl_reg = 0x5c,
+	ldb->output_port = 1;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		imx8mp_ldb->channel[i].imx8mp_ldb = imx8mp_ldb;
+		ldb->channel[i] = &imx8mp_ldb->channel[i].base;
+	}
+
+	imx8mp_ldb->clk_root = devm_clk_get(dev, "ldb");
+	if (IS_ERR(imx8mp_ldb->clk_root))
+		return PTR_ERR(imx8mp_ldb->clk_root);
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		encoder[i] = &imx8mp_ldb->channel[i].encoder;
+
+		drm_encoder_helper_add(encoder[i],
+				      &imx8mp_ldb_encoder_helper_funcs);
+		drm_encoder_init(drm, encoder[i], &imx8mp_ldb_encoder_funcs,
+				 DRM_MODE_ENCODER_LVDS, NULL);
+	}
+
+	pm_runtime_enable(dev);
+
+	ret = ldb_bind(ldb, encoder);
+	if (ret)
+		goto disable_pm_runtime;
+
+	for_each_child_of_node(np, child) {
+		struct imx8mp_ldb_channel *imx8mp_ldb_ch;
+		bool auxiliary_ch = false;
+
+		ret = of_property_read_u32(child, "reg", &i);
+		if (ret || i < 0 || i > 1) {
+			ret = -EINVAL;
+			goto free_child;
+		}
+
+		if (ldb->dual && i > 0) {
+			auxiliary_ch = true;
+			imx8mp_ldb_ch = &imx8mp_ldb->channel[i];
+			goto get_phy;
+		}
+
+		if (!of_device_is_available(child))
+			continue;
+
+		imx8mp_ldb_ch = &imx8mp_ldb->channel[i];
+get_phy:
+		imx8mp_ldb_ch->phy = devm_of_phy_get(dev, child, "ldb_phy");
+		if (IS_ERR(imx8mp_ldb_ch->phy)) {
+			ret = PTR_ERR(imx8mp_ldb_ch->phy);
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev, "can't get channel%d phy: %d\n",
+					i, ret);
+			goto free_child;
+		}
+
+		ret = phy_init(imx8mp_ldb_ch->phy);
+		if (ret < 0) {
+			dev_err(dev, "failed to initialize channel%d phy: %d\n",
+				i, ret);
+			goto free_child;
+		}
+
+		if (auxiliary_ch)
+			continue;
+	}
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		ldb_ch = &imx8mp_ldb->channel[i].base;
+		if (!ldb_ch->is_valid) {
+			drm_encoder_cleanup(encoder[i]);
+			continue;
+		}
+
+		ret = imx_drm_encoder_parse_of(drm, encoder[i], ldb_ch->child);
+		if (ret)
+			goto disable_pm_runtime;
+	}
+
+	return 0;
+
+free_child:
+	of_node_put(child);
+disable_pm_runtime:
+	pm_runtime_disable(dev);
+
+	return ret;
+}
+
+static void imx8mp_ldb_unbind(struct device *dev, struct device *master,
+	void *data)
+{
+	struct imx8mp_ldb *imx8mp_ldb = dev_get_drvdata(dev);
+	int i;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		struct imx8mp_ldb_channel *imx8mp_ldb_ch =
+						&imx8mp_ldb->channel[i];
+
+		if (imx8mp_ldb_ch->phy_is_on)
+			phy_power_off(imx8mp_ldb_ch->phy);
+
+		phy_exit(imx8mp_ldb_ch->phy);
+	}
+
+	pm_runtime_disable(dev);
+}
+
+static const struct component_ops imx8mp_ldb_ops = {
+	.bind	= imx8mp_ldb_bind,
+	.unbind	= imx8mp_ldb_unbind,
+};
+
+static int imx8mp_ldb_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct imx8mp_ldb *imx8mp_ldb;
+
+	imx8mp_ldb = devm_kzalloc(dev, sizeof(*imx8mp_ldb), GFP_KERNEL);
+	if (!imx8mp_ldb)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, imx8mp_ldb);
+
+	return component_add(dev, &imx8mp_ldb_ops);
+}
+
+static int imx8mp_ldb_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &imx8mp_ldb_ops);
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int imx8mp_ldb_suspend(struct device *dev)
+{
+	struct imx8mp_ldb *imx8mp_ldb = dev_get_drvdata(dev);
+	int i;
+
+	if (imx8mp_ldb == NULL)
+		return 0;
+
+	for (i = 0; i < LDB_CH_NUM; i++)
+		phy_exit(imx8mp_ldb->channel[i].phy);
+
+	return 0;
+}
+
+static int imx8mp_ldb_resume(struct device *dev)
+{
+	struct imx8mp_ldb *imx8mp_ldb = dev_get_drvdata(dev);
+	int i;
+
+	if (imx8mp_ldb == NULL)
+		return 0;
+
+	for (i = 0; i < LDB_CH_NUM; i++)
+		phy_init(imx8mp_ldb->channel[i].phy);
+
+	return 0;
+}
+#endif
+
+static const struct dev_pm_ops imx8mp_ldb_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(imx8mp_ldb_suspend, imx8mp_ldb_resume)
+};
+
+static struct platform_driver imx8mp_ldb_driver = {
+	.probe		= imx8mp_ldb_probe,
+	.remove		= imx8mp_ldb_remove,
+	.driver		= {
+		.of_match_table = imx8mp_ldb_dt_ids,
+		.name	= DRIVER_NAME,
+		.pm	= &imx8mp_ldb_pm_ops,
+	},
+};
+
+module_platform_driver(imx8mp_ldb_driver);
+
+MODULE_DESCRIPTION("i.MX8MP LVDS driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx8qm-ldb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx8qm-ldb.c
@@ -0,0 +1,569 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 NXP
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/firmware/imx/sci.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/phy/phy.h>
+#include <linux/phy/phy-mixel-lvds.h>
+
+#include <drm/bridge/fsl_imx_ldb.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_probe_helper.h>
+
+#include "imx-drm.h"
+
+#define DRIVER_NAME "imx8qm-ldb"
+
+#define LDB_CH0_MODE_EN_TO_DI0		(1 << 0)
+#define LDB_CH0_MODE_EN_TO_DI1		(3 << 0)
+#define LDB_CH0_MODE_EN_MASK		(3 << 0)
+#define LDB_CH1_MODE_EN_TO_DI0		(1 << 2)
+#define LDB_CH1_MODE_EN_TO_DI1		(3 << 2)
+#define LDB_CH1_MODE_EN_MASK		(3 << 2)
+#define LDB_BIT_MAP_CH0_JEIDA		(1 << 6)
+#define LDB_BIT_MAP_CH1_JEIDA		(1 << 8)
+#define LDB_CH0_10BIT_EN		(1 << 22)
+#define LDB_CH1_10BIT_EN		(1 << 23)
+#define LDB_CH0_DATA_WIDTH_24BIT	(1 << 24)
+#define LDB_CH1_DATA_WIDTH_24BIT	(1 << 26)
+#define LDB_CH0_DATA_WIDTH_30BIT	(2 << 24)
+#define LDB_CH1_DATA_WIDTH_30BIT	(2 << 26)
+
+struct imx8qm_ldb;
+
+struct imx8qm_ldb_channel {
+	struct ldb_channel base;
+	struct imx8qm_ldb *imx8qm_ldb;
+
+	struct drm_connector connector;
+	struct drm_encoder encoder;
+
+	struct phy *phy;
+	bool phy_is_on;
+
+	u32 bus_flags;
+};
+
+static inline struct imx8qm_ldb_channel *
+con_to_imx8qm_ldb_ch(struct drm_connector *c)
+{
+	return container_of(c, struct imx8qm_ldb_channel, connector);
+}
+
+static inline struct imx8qm_ldb_channel *
+enc_to_imx8qm_ldb_ch(struct drm_encoder *e)
+{
+	return container_of(e, struct imx8qm_ldb_channel, encoder);
+}
+
+struct imx8qm_ldb {
+	struct ldb base;
+	struct imx8qm_ldb_channel channel[LDB_CH_NUM];
+	struct clk *clk_pixel;
+	struct clk *clk_bypass;
+	struct imx_sc_ipc *handle;
+
+	int id;
+};
+
+static void
+imx8qm_ldb_ch_set_bus_format(struct imx8qm_ldb_channel *imx8qm_ldb_ch,
+			     u32 bus_format)
+{
+	struct imx8qm_ldb *imx8qm_ldb = imx8qm_ldb_ch->imx8qm_ldb;
+	struct ldb *ldb = &imx8qm_ldb->base;
+	struct ldb_channel *ldb_ch = &imx8qm_ldb_ch->base;
+
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_DATA_WIDTH_24BIT;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_DATA_WIDTH_24BIT;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_DATA_WIDTH_24BIT;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_DATA_WIDTH_24BIT;
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_10BIT_EN |
+					 LDB_CH0_DATA_WIDTH_30BIT;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_10BIT_EN |
+					 LDB_CH1_DATA_WIDTH_30BIT;
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_10BIT_EN |
+					 LDB_CH0_DATA_WIDTH_30BIT |
+					 LDB_BIT_MAP_CH0_JEIDA;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_10BIT_EN |
+					 LDB_CH1_DATA_WIDTH_30BIT |
+					 LDB_BIT_MAP_CH1_JEIDA;
+		break;
+	}
+}
+
+static struct drm_encoder *imx8qm_ldb_connector_best_encoder(
+		struct drm_connector *connector)
+{
+	struct imx8qm_ldb_channel *imx8qm_ldb_ch =
+						con_to_imx8qm_ldb_ch(connector);
+
+	return &imx8qm_ldb_ch->encoder;
+}
+
+static void imx8qm_ldb_pxlink_set_mst_valid(struct imx8qm_ldb *imx8qm_ldb,
+					    int dc_id, bool enable)
+{
+	u32 rsc = dc_id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+
+	imx_sc_misc_set_control(imx8qm_ldb->handle,
+				rsc, IMX_SC_C_PXL_LINK_MST2_VLD, enable);
+}
+
+static void imx8qm_ldb_pxlink_set_sync_ctrl(struct imx8qm_ldb *imx8qm_ldb,
+					    int dc_id, bool enable)
+{
+	u32 rsc = dc_id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+
+	imx_sc_misc_set_control(imx8qm_ldb->handle,
+				rsc, IMX_SC_C_SYNC_CTRL1, enable);
+}
+
+static void imx8qm_ldb_encoder_enable(struct drm_encoder *encoder)
+{
+	struct imx8qm_ldb_channel *imx8qm_ldb_ch =
+						enc_to_imx8qm_ldb_ch(encoder);
+	struct imx8qm_ldb *imx8qm_ldb = imx8qm_ldb_ch->imx8qm_ldb;
+	struct ldb *ldb = &imx8qm_ldb->base;
+
+	clk_prepare_enable(imx8qm_ldb->clk_pixel);
+	clk_prepare_enable(imx8qm_ldb->clk_bypass);
+
+	if (imx8qm_ldb_ch == &imx8qm_ldb->channel[0] || ldb->dual) {
+		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
+		ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0;
+	}
+	if (imx8qm_ldb_ch == &imx8qm_ldb->channel[1] || ldb->dual) {
+		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
+		ldb->ldb_ctrl |= ldb->dual ?
+				LDB_CH1_MODE_EN_TO_DI0 : LDB_CH1_MODE_EN_TO_DI1;
+	}
+
+	if (ldb->dual) {
+		phy_power_on(imx8qm_ldb->channel[0].phy);
+		phy_power_on(imx8qm_ldb->channel[1].phy);
+
+		imx8qm_ldb->channel[0].phy_is_on = true;
+		imx8qm_ldb->channel[1].phy_is_on = true;
+	} else {
+		phy_power_on(imx8qm_ldb_ch->phy);
+
+		imx8qm_ldb_ch->phy_is_on = true;
+	}
+
+	imx8qm_ldb_pxlink_set_mst_valid(imx8qm_ldb, imx8qm_ldb->id, true);
+	imx8qm_ldb_pxlink_set_sync_ctrl(imx8qm_ldb, imx8qm_ldb->id, true);
+}
+
+static void
+imx8qm_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder,
+				   struct drm_crtc_state *crtc_state,
+				   struct drm_connector_state *connector_state)
+{
+	struct imx8qm_ldb_channel *imx8qm_ldb_ch =
+						enc_to_imx8qm_ldb_ch(encoder);
+	struct imx8qm_ldb *imx8qm_ldb = imx8qm_ldb_ch->imx8qm_ldb;
+	struct ldb_channel *ldb_ch = &imx8qm_ldb_ch->base;
+	struct ldb *ldb = &imx8qm_ldb->base;
+	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
+	unsigned long di_clk = mode->clock * 1000;
+
+	if (mode->clock > 300000) {
+		dev_warn(ldb->dev,
+			 "%s: mode exceeds 300 MHz pixel clock\n", __func__);
+	}
+	if (mode->clock > 150000 && !ldb->dual) {
+		dev_warn(ldb->dev,
+			 "%s: mode exceeds 150 MHz pixel clock\n", __func__);
+	}
+
+	clk_set_rate(imx8qm_ldb->clk_bypass, di_clk);
+	clk_set_rate(imx8qm_ldb->clk_pixel, di_clk);
+
+	if (ldb->dual) {
+		mixel_phy_lvds_set_phy_speed(imx8qm_ldb->channel[0].phy,
+								di_clk / 2);
+		mixel_phy_lvds_set_phy_speed(imx8qm_ldb->channel[1].phy,
+								di_clk / 2);
+	} else {
+		mixel_phy_lvds_set_phy_speed(imx8qm_ldb_ch->phy, di_clk);
+	}
+
+	if (ldb->dual) {
+		/* VSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NVSYNC) {
+			mixel_phy_lvds_set_vsync_pol(imx8qm_ldb->channel[0].phy,
+						     false);
+			mixel_phy_lvds_set_vsync_pol(imx8qm_ldb->channel[1].phy,
+						     false);
+		} else if (mode->flags & DRM_MODE_FLAG_PVSYNC) {
+			mixel_phy_lvds_set_vsync_pol(imx8qm_ldb->channel[0].phy,
+						     true);
+			mixel_phy_lvds_set_vsync_pol(imx8qm_ldb->channel[1].phy,
+						     true);
+		}
+		/* HSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NHSYNC) {
+			mixel_phy_lvds_set_hsync_pol(imx8qm_ldb->channel[0].phy,
+						     false);
+			mixel_phy_lvds_set_hsync_pol(imx8qm_ldb->channel[1].phy,
+						     false);
+		} else if (mode->flags & DRM_MODE_FLAG_PHSYNC) {
+			mixel_phy_lvds_set_hsync_pol(imx8qm_ldb->channel[0].phy,
+						     true);
+			mixel_phy_lvds_set_hsync_pol(imx8qm_ldb->channel[1].phy,
+						     true);
+		}
+	} else {
+		/* VSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NVSYNC)
+			mixel_phy_lvds_set_vsync_pol(imx8qm_ldb_ch->phy, false);
+		else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			mixel_phy_lvds_set_vsync_pol(imx8qm_ldb_ch->phy, true);
+		/* HSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NHSYNC)
+			mixel_phy_lvds_set_hsync_pol(imx8qm_ldb_ch->phy, false);
+		else if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+			mixel_phy_lvds_set_hsync_pol(imx8qm_ldb_ch->phy, true);
+	}
+
+	if (!ldb_ch->bus_format) {
+		struct drm_connector *connector = connector_state->connector;
+		struct drm_display_info *di = &connector->display_info;
+
+		if (di->num_bus_formats)
+			ldb_ch->bus_format = di->bus_formats[0];
+	}
+	imx8qm_ldb_ch_set_bus_format(imx8qm_ldb_ch, ldb_ch->bus_format);
+}
+
+static void imx8qm_ldb_encoder_disable(struct drm_encoder *encoder)
+{
+	struct imx8qm_ldb_channel *imx8qm_ldb_ch =
+						enc_to_imx8qm_ldb_ch(encoder);
+	struct imx8qm_ldb *imx8qm_ldb = imx8qm_ldb_ch->imx8qm_ldb;
+	struct ldb *ldb = &imx8qm_ldb->base;
+
+	imx8qm_ldb_pxlink_set_mst_valid(imx8qm_ldb, imx8qm_ldb->id, false);
+	imx8qm_ldb_pxlink_set_sync_ctrl(imx8qm_ldb, imx8qm_ldb->id, false);
+
+	if (ldb->dual) {
+		phy_power_off(imx8qm_ldb->channel[0].phy);
+		phy_power_off(imx8qm_ldb->channel[1].phy);
+
+		imx8qm_ldb->channel[0].phy_is_on = false;
+		imx8qm_ldb->channel[1].phy_is_on = false;
+	} else {
+		phy_power_off(imx8qm_ldb_ch->phy);
+
+		imx8qm_ldb_ch->phy_is_on = false;
+	}
+
+	clk_disable_unprepare(imx8qm_ldb->clk_bypass);
+	clk_disable_unprepare(imx8qm_ldb->clk_pixel);
+}
+
+static int
+imx8qm_ldb_encoder_atomic_check(struct drm_encoder *encoder,
+				struct drm_crtc_state *crtc_state,
+				struct drm_connector_state *conn_state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct imx8qm_ldb_channel *imx8qm_ldb_ch =
+						enc_to_imx8qm_ldb_ch(encoder);
+	struct ldb_channel *ldb_ch = &imx8qm_ldb_ch->base;
+	struct drm_display_info *di = &conn_state->connector->display_info;
+	u32 bus_format = ldb_ch->bus_format;
+
+	/* Bus format description in DT overrides connector display info. */
+	if (!bus_format && di->num_bus_formats) {
+		bus_format = di->bus_formats[0];
+		imx_crtc_state->bus_flags = di->bus_flags;
+	} else {
+		bus_format = ldb_ch->bus_format;
+		imx_crtc_state->bus_flags = imx8qm_ldb_ch->bus_flags;
+	}
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB666_1X30_PADLO;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB888_1X30_PADLO;
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG:
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB101010_1X30;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static const struct drm_connector_funcs imx8qm_ldb_connector_funcs = {
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.destroy = imx_drm_connector_destroy,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static const struct drm_connector_helper_funcs
+imx8qm_ldb_connector_helper_funcs = {
+	.best_encoder = imx8qm_ldb_connector_best_encoder,
+};
+
+static const struct drm_encoder_funcs imx8qm_ldb_encoder_funcs = {
+	.destroy = imx_drm_encoder_destroy,
+};
+
+static const struct drm_encoder_helper_funcs imx8qm_ldb_encoder_helper_funcs = {
+	.atomic_mode_set = imx8qm_ldb_encoder_atomic_mode_set,
+	.enable = imx8qm_ldb_encoder_enable,
+	.disable = imx8qm_ldb_encoder_disable,
+	.atomic_check = imx8qm_ldb_encoder_atomic_check,
+};
+
+static const struct of_device_id imx8qm_ldb_dt_ids[] = {
+	{ .compatible = "fsl,imx8qm-ldb", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, imx8qm_ldb_dt_ids);
+
+static int
+imx8qm_ldb_bind(struct device *dev, struct device *master, void *data)
+{
+	struct drm_device *drm = data;
+	struct device_node *np = dev->of_node;
+	struct device_node *child;
+	struct imx8qm_ldb *imx8qm_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb;
+	struct ldb_channel *ldb_ch;
+	struct drm_encoder *encoder[LDB_CH_NUM];
+	int ret;
+	int i;
+
+	ldb = &imx8qm_ldb->base;
+	ldb->dev = dev;
+	ldb->ctrl_reg = 0xe0;
+	ldb->output_port = 1;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		imx8qm_ldb->channel[i].imx8qm_ldb = imx8qm_ldb;
+		ldb->channel[i] = &imx8qm_ldb->channel[i].base;
+	}
+
+	ret = imx_scu_get_handle(&imx8qm_ldb->handle);
+	if (ret) {
+		dev_err(dev, "failed to get scu ipc handle %d\n", ret);
+		return ret;
+	}
+
+	imx8qm_ldb->id = of_alias_get_id(np, "ldb");
+
+	imx8qm_ldb->clk_pixel = devm_clk_get(dev, "pixel");
+	if (IS_ERR(imx8qm_ldb->clk_pixel))
+		return PTR_ERR(imx8qm_ldb->clk_pixel);
+
+	imx8qm_ldb->clk_bypass = devm_clk_get(dev, "bypass");
+	if (IS_ERR(imx8qm_ldb->clk_bypass))
+		return PTR_ERR(imx8qm_ldb->clk_bypass);
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		encoder[i] = &imx8qm_ldb->channel[i].encoder;
+
+		drm_encoder_helper_add(encoder[i],
+				      &imx8qm_ldb_encoder_helper_funcs);
+		drm_encoder_init(drm, encoder[i], &imx8qm_ldb_encoder_funcs,
+				 DRM_MODE_ENCODER_LVDS, NULL);
+	}
+
+	pm_runtime_enable(dev);
+
+	ret = ldb_bind(ldb, encoder);
+	if (ret)
+		goto disable_pm_runtime;
+
+	for_each_child_of_node(np, child) {
+		struct imx8qm_ldb_channel *imx8qm_ldb_ch;
+		bool auxiliary_ch = false;
+
+		ret = of_property_read_u32(child, "reg", &i);
+		if (ret || i < 0 || i > 1) {
+			ret = -EINVAL;
+			goto free_child;
+		}
+
+		if (ldb->dual && i > 0) {
+			auxiliary_ch = true;
+			imx8qm_ldb_ch = &imx8qm_ldb->channel[i];
+			goto get_phy;
+		}
+
+		if (!of_device_is_available(child))
+			continue;
+
+		imx8qm_ldb_ch = &imx8qm_ldb->channel[i];
+get_phy:
+		imx8qm_ldb_ch->phy = devm_of_phy_get(dev, child, "ldb_phy");
+		if (IS_ERR(imx8qm_ldb_ch->phy)) {
+			ret = PTR_ERR(imx8qm_ldb_ch->phy);
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev, "can't get channel%d phy: %d\n",
+					i, ret);
+			goto free_child;
+		}
+
+		ret = phy_init(imx8qm_ldb_ch->phy);
+		if (ret < 0) {
+			dev_err(dev, "failed to initialize channel%d phy: %d\n",
+				i, ret);
+			goto free_child;
+		}
+
+		if (auxiliary_ch)
+			continue;
+	}
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		ldb_ch = &imx8qm_ldb->channel[i].base;
+		if (!ldb_ch->is_valid) {
+			drm_encoder_cleanup(encoder[i]);
+			continue;
+		}
+
+		ret = imx_drm_encoder_parse_of(drm, encoder[i], ldb_ch->child);
+		if (ret)
+			goto disable_pm_runtime;
+	}
+
+	return 0;
+
+free_child:
+	of_node_put(child);
+disable_pm_runtime:
+	pm_runtime_disable(dev);
+
+	return ret;
+}
+
+static void imx8qm_ldb_unbind(struct device *dev, struct device *master,
+	void *data)
+{
+	struct imx8qm_ldb *imx8qm_ldb = dev_get_drvdata(dev);
+	int i;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		struct imx8qm_ldb_channel *imx8qm_ldb_ch =
+						&imx8qm_ldb->channel[i];
+
+		if (imx8qm_ldb_ch->phy_is_on)
+			phy_power_off(imx8qm_ldb_ch->phy);
+
+		phy_exit(imx8qm_ldb_ch->phy);
+	}
+
+	pm_runtime_disable(dev);
+}
+
+static const struct component_ops imx8qm_ldb_ops = {
+	.bind	= imx8qm_ldb_bind,
+	.unbind	= imx8qm_ldb_unbind,
+};
+
+static int imx8qm_ldb_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct imx8qm_ldb *imx8qm_ldb;
+
+	imx8qm_ldb = devm_kzalloc(dev, sizeof(*imx8qm_ldb), GFP_KERNEL);
+	if (!imx8qm_ldb)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, imx8qm_ldb);
+
+	return component_add(dev, &imx8qm_ldb_ops);
+}
+
+static int imx8qm_ldb_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &imx8qm_ldb_ops);
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int imx8qm_ldb_suspend(struct device *dev)
+{
+	struct imx8qm_ldb *imx8qm_ldb = dev_get_drvdata(dev);
+	int i;
+
+	if (imx8qm_ldb == NULL)
+		return 0;
+
+	for (i = 0; i < LDB_CH_NUM; i++)
+		phy_exit(imx8qm_ldb->channel[i].phy);
+
+	return 0;
+}
+
+static int imx8qm_ldb_resume(struct device *dev)
+{
+	struct imx8qm_ldb *imx8qm_ldb = dev_get_drvdata(dev);
+	int i;
+
+	if (imx8qm_ldb == NULL)
+		return 0;
+
+	for (i = 0; i < LDB_CH_NUM; i++)
+		phy_init(imx8qm_ldb->channel[i].phy);
+
+	return 0;
+}
+#endif
+
+static const struct dev_pm_ops imx8qm_ldb_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(imx8qm_ldb_suspend, imx8qm_ldb_resume)
+};
+
+static struct platform_driver imx8qm_ldb_driver = {
+	.probe		= imx8qm_ldb_probe,
+	.remove		= imx8qm_ldb_remove,
+	.driver		= {
+		.of_match_table = imx8qm_ldb_dt_ids,
+		.name	= DRIVER_NAME,
+		.pm	= &imx8qm_ldb_pm_ops,
+	},
+};
+
+module_platform_driver(imx8qm_ldb_driver);
+
+MODULE_DESCRIPTION("i.MX8QM LVDS driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/imx8qxp-ldb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/imx8qxp-ldb.c
@@ -0,0 +1,880 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 NXP
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/firmware/imx/sci.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/phy/phy.h>
+#include <linux/phy/phy-mixel-lvds-combo.h>
+#include <linux/pm_domain.h>
+#include <linux/regmap.h>
+
+#include <drm/bridge/fsl_imx_ldb.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_probe_helper.h>
+
+#include "imx-drm.h"
+
+#define DRIVER_NAME "imx8qxp-ldb"
+
+#define LDB_CH0_MODE_EN_TO_DI0		(1 << 0)
+#define LDB_CH0_MODE_EN_TO_DI1		(3 << 0)
+#define LDB_CH0_MODE_EN_MASK		(3 << 0)
+#define LDB_CH1_MODE_EN_TO_DI0		(1 << 2)
+#define LDB_CH1_MODE_EN_TO_DI1		(3 << 2)
+#define LDB_CH1_MODE_EN_MASK		(3 << 2)
+#define LDB_BIT_MAP_CH0_JEIDA		(1 << 6)
+#define LDB_BIT_MAP_CH1_JEIDA		(1 << 8)
+#define LDB_DI0_VS_POL_ACT_LOW		(1 << 9)
+#define LDB_DI1_VS_POL_ACT_LOW		(1 << 10)
+#define LDB_CH0_10BIT_EN		(1 << 22)
+#define LDB_CH1_10BIT_EN		(1 << 23)
+#define LDB_CH0_DATA_WIDTH_24BIT	(1 << 24)
+#define LDB_CH1_DATA_WIDTH_24BIT	(1 << 26)
+#define LDB_CH0_DATA_WIDTH_30BIT	(2 << 24)
+#define LDB_CH1_DATA_WIDTH_30BIT	(2 << 26)
+#define LDB_CH_SEL			(1 << 28)
+
+struct imx8qxp_ldb;
+
+struct imx8qxp_ldb_channel {
+	struct ldb_channel base;
+	struct imx8qxp_ldb *imx8qxp_ldb;
+
+	struct drm_connector connector;
+	struct drm_encoder encoder;
+
+	struct phy *phy;
+	struct phy *aux_phy;
+	bool phy_is_on;
+
+	u32 bus_flags;
+};
+
+static inline struct imx8qxp_ldb_channel *
+con_to_imx8qxp_ldb_ch(struct drm_connector *c)
+{
+	return container_of(c, struct imx8qxp_ldb_channel, connector);
+}
+
+static inline struct imx8qxp_ldb_channel *
+enc_to_imx8qxp_ldb_ch(struct drm_encoder *e)
+{
+	return container_of(e, struct imx8qxp_ldb_channel, encoder);
+}
+
+struct imx8qxp_ldb {
+	struct ldb base;
+	struct regmap *aux_regmap;
+	struct imx8qxp_ldb_channel channel[LDB_CH_NUM];
+	struct clk *clk_pixel;
+	struct clk *clk_bypass;
+	struct clk *clk_aux_pixel;
+	struct clk *clk_aux_bypass;
+	struct imx_sc_ipc *handle;
+
+	struct device *pd_main_dev;
+	struct device *pd_aux_dev;
+	struct device_link *pd_main_link;
+	struct device_link *pd_aux_link;
+
+	int id;
+};
+
+static void
+imx8qxp_ldb_ch_set_bus_format(struct imx8qxp_ldb_channel *imx8qxp_ldb_ch,
+			      u32 bus_format)
+{
+	struct imx8qxp_ldb *imx8qxp_ldb = imx8qxp_ldb_ch->imx8qxp_ldb;
+	struct ldb *ldb = &imx8qxp_ldb->base;
+	struct ldb_channel *ldb_ch = &imx8qxp_ldb_ch->base;
+
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_DATA_WIDTH_24BIT;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_DATA_WIDTH_24BIT;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_DATA_WIDTH_24BIT;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_DATA_WIDTH_24BIT;
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_10BIT_EN |
+					 LDB_CH0_DATA_WIDTH_30BIT;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_10BIT_EN |
+					 LDB_CH1_DATA_WIDTH_30BIT;
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA:
+		if (ldb_ch->chno == 0 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH0_10BIT_EN |
+					 LDB_CH0_DATA_WIDTH_30BIT |
+					 LDB_BIT_MAP_CH0_JEIDA;
+		if (ldb_ch->chno == 1 || ldb->dual)
+			ldb->ldb_ctrl |= LDB_CH1_10BIT_EN |
+					 LDB_CH1_DATA_WIDTH_30BIT |
+					 LDB_BIT_MAP_CH1_JEIDA;
+		break;
+	}
+}
+
+static struct drm_encoder *imx8qxp_ldb_connector_best_encoder(
+		struct drm_connector *connector)
+{
+	struct imx8qxp_ldb_channel *imx8qxp_ldb_ch =
+					con_to_imx8qxp_ldb_ch(connector);
+
+	return &imx8qxp_ldb_ch->encoder;
+}
+
+static void imx8qxp_ldb_pxlink_enable(struct imx8qxp_ldb *imx8qxp_ldb,
+				      int stream_id, bool enable)
+{
+	u8 ctrl = stream_id ?
+		IMX_SC_C_PXL_LINK_MST2_ENB : IMX_SC_C_PXL_LINK_MST1_ENB;
+
+	imx_sc_misc_set_control(imx8qxp_ldb->handle,
+				IMX_SC_R_DC_0, ctrl, enable);
+}
+
+static void imx8qxp_ldb_pxlink_set_mst_valid(struct imx8qxp_ldb *imx8qxp_ldb,
+					     int stream_id, bool enable)
+{
+	u8 ctrl = stream_id ?
+		IMX_SC_C_PXL_LINK_MST2_VLD : IMX_SC_C_PXL_LINK_MST1_VLD;
+
+	imx_sc_misc_set_control(imx8qxp_ldb->handle,
+					IMX_SC_R_DC_0, ctrl, enable);
+}
+
+static void imx8qxp_ldb_pxlink_set_sync_ctrl(struct imx8qxp_ldb *imx8qxp_ldb,
+					     int stream_id, bool enable)
+{
+	u8 ctrl = stream_id ? IMX_SC_C_SYNC_CTRL1 : IMX_SC_C_SYNC_CTRL0;
+
+	imx_sc_misc_set_control(imx8qxp_ldb->handle,
+					IMX_SC_R_DC_0, ctrl, enable);
+}
+
+static void imx8qxp_ldb_encoder_enable(struct drm_encoder *encoder)
+{
+	struct imx8qxp_ldb_channel *imx8qxp_ldb_ch =
+						enc_to_imx8qxp_ldb_ch(encoder);
+	struct imx8qxp_ldb *imx8qxp_ldb = imx8qxp_ldb_ch->imx8qxp_ldb;
+	struct ldb *ldb = &imx8qxp_ldb->base;
+
+	clk_prepare_enable(imx8qxp_ldb->clk_pixel);
+	clk_prepare_enable(imx8qxp_ldb->clk_bypass);
+
+	if (ldb->dual) {
+		clk_prepare_enable(imx8qxp_ldb->clk_aux_pixel);
+		clk_prepare_enable(imx8qxp_ldb->clk_aux_bypass);
+	}
+
+	/*
+	 * LDB frontend doesn't know if the auxiliary LDB is used or not.
+	 * Enable pixel link after dual or single LDB clocks are enabled
+	 * so that the dual LDBs are synchronized.
+	 */
+	imx8qxp_ldb_pxlink_enable(imx8qxp_ldb, imx8qxp_ldb->id, true);
+
+	if (imx8qxp_ldb_ch == &imx8qxp_ldb->channel[0] || ldb->dual) {
+		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
+		ldb->ldb_ctrl |= LDB_CH0_MODE_EN_TO_DI0;
+	}
+	if (imx8qxp_ldb_ch == &imx8qxp_ldb->channel[1] || ldb->dual) {
+		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
+		ldb->ldb_ctrl |= ldb->dual ?
+				LDB_CH1_MODE_EN_TO_DI0 : LDB_CH1_MODE_EN_TO_DI1;
+	}
+
+	pm_runtime_get_sync(ldb->dev);
+
+	regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl);
+	if (ldb->dual)
+		regmap_write(imx8qxp_ldb->aux_regmap, ldb->ctrl_reg,
+						ldb->ldb_ctrl | LDB_CH_SEL);
+
+	if (ldb->dual) {
+		phy_power_on(imx8qxp_ldb->channel[0].phy);
+		phy_power_on(imx8qxp_ldb->channel[0].aux_phy);
+
+		imx8qxp_ldb->channel[0].phy_is_on = true;
+	} else {
+		phy_power_on(imx8qxp_ldb_ch->phy);
+
+		imx8qxp_ldb_ch->phy_is_on = true;
+	}
+
+	imx8qxp_ldb_pxlink_set_mst_valid(imx8qxp_ldb, imx8qxp_ldb->id, true);
+	imx8qxp_ldb_pxlink_set_sync_ctrl(imx8qxp_ldb, imx8qxp_ldb->id, true);
+}
+
+static void
+imx8qxp_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder,
+				    struct drm_crtc_state *crtc_state,
+				    struct drm_connector_state *connector_state)
+{
+	struct imx8qxp_ldb_channel *imx8qxp_ldb_ch =
+						enc_to_imx8qxp_ldb_ch(encoder);
+	struct imx8qxp_ldb *imx8qxp_ldb = imx8qxp_ldb_ch->imx8qxp_ldb;
+	struct ldb_channel *ldb_ch = &imx8qxp_ldb_ch->base;
+	struct ldb *ldb = &imx8qxp_ldb->base;
+	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
+	unsigned long di_clk = mode->clock * 1000;
+
+	if (mode->clock > 300000) {
+		dev_warn(ldb->dev,
+			 "%s: mode exceeds 300 MHz pixel clock\n", __func__);
+	}
+	if (mode->clock > 150000 && !ldb->dual) {
+		dev_warn(ldb->dev,
+			 "%s: mode exceeds 150 MHz pixel clock\n", __func__);
+	}
+
+	clk_set_rate(imx8qxp_ldb->clk_bypass, di_clk);
+	clk_set_rate(imx8qxp_ldb->clk_pixel, di_clk);
+
+	if (ldb->dual) {
+		clk_set_rate(imx8qxp_ldb->clk_aux_bypass, di_clk);
+		clk_set_rate(imx8qxp_ldb->clk_aux_pixel, di_clk);
+	}
+
+	if (ldb->dual) {
+		mixel_phy_combo_lvds_set_phy_speed(imx8qxp_ldb->channel[0].phy,
+								di_clk / 2);
+		mixel_phy_combo_lvds_set_phy_speed(imx8qxp_ldb->channel[0].aux_phy,
+								di_clk / 2);
+	} else {
+		mixel_phy_combo_lvds_set_phy_speed(imx8qxp_ldb_ch->phy, di_clk);
+	}
+
+	if (imx8qxp_ldb_ch == &imx8qxp_ldb->channel[0])
+		ldb->ldb_ctrl &= ~LDB_CH_SEL;
+	if (imx8qxp_ldb_ch == &imx8qxp_ldb->channel[1])
+		ldb->ldb_ctrl |= LDB_CH_SEL;
+
+	/* FIXME - assumes straight connections DI0 --> CH0, DI1 --> CH1 */
+	if (imx8qxp_ldb_ch == &imx8qxp_ldb->channel[0] || ldb->dual) {
+		if (mode->flags & DRM_MODE_FLAG_NVSYNC)
+			ldb->ldb_ctrl |= LDB_DI0_VS_POL_ACT_LOW;
+		else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			ldb->ldb_ctrl &= ~LDB_DI0_VS_POL_ACT_LOW;
+	}
+	if (imx8qxp_ldb_ch == &imx8qxp_ldb->channel[1] || ldb->dual) {
+		if (mode->flags & DRM_MODE_FLAG_NVSYNC)
+			ldb->ldb_ctrl |= LDB_DI1_VS_POL_ACT_LOW;
+		else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			ldb->ldb_ctrl &= ~LDB_DI1_VS_POL_ACT_LOW;
+	}
+
+	pm_runtime_get_sync(ldb->dev);
+
+	/* settle vsync polarity and channel selection down early */
+	if (ldb->dual) {
+		regmap_write(ldb->regmap, ldb->ctrl_reg, ldb->ldb_ctrl);
+		regmap_write(imx8qxp_ldb->aux_regmap, ldb->ctrl_reg,
+						ldb->ldb_ctrl | LDB_CH_SEL);
+	}
+
+	pm_runtime_put(ldb->dev);
+
+	if (ldb->dual) {
+		/* VSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NVSYNC) {
+			mixel_phy_combo_lvds_set_vsync_pol(
+				imx8qxp_ldb->channel[0].phy, false);
+			mixel_phy_combo_lvds_set_vsync_pol(
+				imx8qxp_ldb->channel[0].aux_phy, false);
+		} else {
+			mixel_phy_combo_lvds_set_vsync_pol(
+				imx8qxp_ldb->channel[0].phy, true);
+			mixel_phy_combo_lvds_set_vsync_pol(
+				imx8qxp_ldb->channel[0].aux_phy, true);
+		}
+		/* HSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NHSYNC) {
+			mixel_phy_combo_lvds_set_hsync_pol(
+				imx8qxp_ldb->channel[0].phy, false);
+			mixel_phy_combo_lvds_set_hsync_pol(
+				imx8qxp_ldb->channel[0].aux_phy, false);
+		} else {
+			mixel_phy_combo_lvds_set_hsync_pol(
+				imx8qxp_ldb->channel[0].phy, true);
+			mixel_phy_combo_lvds_set_hsync_pol(
+				imx8qxp_ldb->channel[0].aux_phy, true);
+		}
+	} else {
+		/* VSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NVSYNC)
+			mixel_phy_combo_lvds_set_vsync_pol(imx8qxp_ldb_ch->phy,
+							   false);
+		else if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			mixel_phy_combo_lvds_set_vsync_pol(imx8qxp_ldb_ch->phy,
+							   true);
+		/* HSYNC */
+		if (mode->flags & DRM_MODE_FLAG_NHSYNC)
+			mixel_phy_combo_lvds_set_hsync_pol(imx8qxp_ldb_ch->phy,
+							   false);
+		else if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+			mixel_phy_combo_lvds_set_hsync_pol(imx8qxp_ldb_ch->phy,
+							   true);
+	}
+
+	if (!ldb_ch->bus_format) {
+		struct drm_connector *connector = connector_state->connector;
+		struct drm_display_info *di = &connector->display_info;
+
+		if (di->num_bus_formats)
+			ldb_ch->bus_format = di->bus_formats[0];
+	}
+	imx8qxp_ldb_ch_set_bus_format(imx8qxp_ldb_ch, ldb_ch->bus_format);
+}
+
+static void imx8qxp_ldb_encoder_disable(struct drm_encoder *encoder)
+{
+	struct imx8qxp_ldb_channel *imx8qxp_ldb_ch =
+						enc_to_imx8qxp_ldb_ch(encoder);
+	struct imx8qxp_ldb *imx8qxp_ldb = imx8qxp_ldb_ch->imx8qxp_ldb;
+	struct ldb *ldb = &imx8qxp_ldb->base;
+
+	imx8qxp_ldb_pxlink_set_mst_valid(imx8qxp_ldb, imx8qxp_ldb->id, false);
+	imx8qxp_ldb_pxlink_set_sync_ctrl(imx8qxp_ldb, imx8qxp_ldb->id, false);
+
+	if (ldb->dual) {
+		phy_power_off(imx8qxp_ldb->channel[0].phy);
+		phy_power_off(imx8qxp_ldb->channel[0].aux_phy);
+
+		imx8qxp_ldb->channel[0].phy_is_on = false;
+	} else {
+		phy_power_off(imx8qxp_ldb_ch->phy);
+
+		imx8qxp_ldb_ch->phy_is_on = false;
+	}
+
+	if (ldb->dual)
+		regmap_write(imx8qxp_ldb->aux_regmap,
+					ldb->ctrl_reg, ldb->ldb_ctrl);
+
+	pm_runtime_put(ldb->dev);
+
+	clk_disable_unprepare(imx8qxp_ldb->clk_bypass);
+	clk_disable_unprepare(imx8qxp_ldb->clk_pixel);
+
+	if (ldb->dual) {
+		clk_disable_unprepare(imx8qxp_ldb->clk_aux_bypass);
+		clk_disable_unprepare(imx8qxp_ldb->clk_aux_pixel);
+	}
+
+	imx8qxp_ldb_pxlink_enable(imx8qxp_ldb, imx8qxp_ldb->id, false);
+}
+
+static int
+imx8qxp_ldb_encoder_atomic_check(struct drm_encoder *encoder,
+				 struct drm_crtc_state *crtc_state,
+				 struct drm_connector_state *conn_state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct imx8qxp_ldb_channel *imx8qxp_ldb_ch =
+						enc_to_imx8qxp_ldb_ch(encoder);
+	struct ldb_channel *ldb_ch = &imx8qxp_ldb_ch->base;
+	struct drm_display_info *di = &conn_state->connector->display_info;
+	u32 bus_format = ldb_ch->bus_format;
+
+	/* Bus format description in DT overrides connector display info. */
+	if (!bus_format && di->num_bus_formats) {
+		bus_format = di->bus_formats[0];
+		imx_crtc_state->bus_flags = di->bus_flags;
+	} else {
+		bus_format = ldb_ch->bus_format;
+		imx_crtc_state->bus_flags = imx8qxp_ldb_ch->bus_flags;
+	}
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB666_1X30_PADLO;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB888_1X30_PADLO;
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG:
+	case MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA:
+		imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB101010_1X30;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static const struct drm_connector_funcs imx8qxp_ldb_connector_funcs = {
+	.fill_modes = drm_helper_probe_single_connector_modes,
+	.destroy = imx_drm_connector_destroy,
+	.reset = drm_atomic_helper_connector_reset,
+	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
+	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
+};
+
+static const struct drm_connector_helper_funcs
+imx8qxp_ldb_connector_helper_funcs = {
+	.best_encoder = imx8qxp_ldb_connector_best_encoder,
+};
+
+static const struct drm_encoder_funcs imx8qxp_ldb_encoder_funcs = {
+	.destroy = imx_drm_encoder_destroy,
+};
+
+static const struct drm_encoder_helper_funcs
+imx8qxp_ldb_encoder_helper_funcs = {
+	.atomic_mode_set = imx8qxp_ldb_encoder_atomic_mode_set,
+	.enable = imx8qxp_ldb_encoder_enable,
+	.disable = imx8qxp_ldb_encoder_disable,
+	.atomic_check = imx8qxp_ldb_encoder_atomic_check,
+};
+
+static const struct of_device_id imx8qxp_ldb_dt_ids[] = {
+	{ .compatible = "fsl,imx8qxp-ldb", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, imx8qxp_ldb_dt_ids);
+
+static void imx8qxp_ldb_detach_pm_domains(struct imx8qxp_ldb *imx8qxp_ldb)
+{
+	if (imx8qxp_ldb->pd_aux_link && !IS_ERR(imx8qxp_ldb->pd_aux_link))
+		device_link_del(imx8qxp_ldb->pd_aux_link);
+	if (imx8qxp_ldb->pd_aux_dev && !IS_ERR(imx8qxp_ldb->pd_aux_dev))
+		dev_pm_domain_detach(imx8qxp_ldb->pd_aux_dev, true);
+
+	if (imx8qxp_ldb->pd_main_link && !IS_ERR(imx8qxp_ldb->pd_main_link))
+		device_link_del(imx8qxp_ldb->pd_main_link);
+	if (imx8qxp_ldb->pd_main_dev && !IS_ERR(imx8qxp_ldb->pd_main_dev))
+		dev_pm_domain_detach(imx8qxp_ldb->pd_main_dev, true);
+
+	imx8qxp_ldb->pd_aux_dev = NULL;
+	imx8qxp_ldb->pd_aux_link = NULL;
+	imx8qxp_ldb->pd_main_dev = NULL;
+	imx8qxp_ldb->pd_main_link = NULL;
+}
+
+static int
+imx8qxp_ldb_attach_pm_domains(struct imx8qxp_ldb *imx8qxp_ldb, bool dual)
+{
+	struct ldb *ldb = &imx8qxp_ldb->base;
+	struct device *dev = ldb->dev;
+	u32 flags = DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE;
+	int ret = 0;
+
+	imx8qxp_ldb->pd_main_dev = dev_pm_domain_attach_by_name(dev, "main");
+	if (IS_ERR(imx8qxp_ldb->pd_main_dev)) {
+		ret = PTR_ERR(imx8qxp_ldb->pd_main_dev);
+		dev_err(dev, "Failed to attach main pd dev: %d\n", ret);
+		goto fail;
+	}
+	imx8qxp_ldb->pd_main_link = device_link_add(dev,
+					imx8qxp_ldb->pd_main_dev, flags);
+	if (IS_ERR(imx8qxp_ldb->pd_main_link)) {
+		ret = PTR_ERR(imx8qxp_ldb->pd_main_link);
+		dev_err(dev, "Failed to add device link to main pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+	if (!dual)
+		goto out;
+
+	imx8qxp_ldb->pd_aux_dev = dev_pm_domain_attach_by_name(dev, "aux");
+	if (IS_ERR(imx8qxp_ldb->pd_aux_dev)) {
+		ret = PTR_ERR(imx8qxp_ldb->pd_aux_dev);
+		dev_err(dev, "Failed to attach aux pd dev: %d\n", ret);
+		goto fail;
+	}
+	imx8qxp_ldb->pd_aux_link = device_link_add(dev,
+					imx8qxp_ldb->pd_aux_dev, flags);
+	if (IS_ERR(imx8qxp_ldb->pd_aux_link)) {
+		ret = PTR_ERR(imx8qxp_ldb->pd_aux_link);
+		dev_err(dev, "Failed to add device link to aux pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+out:
+	return ret;
+fail:
+	imx8qxp_ldb_detach_pm_domains(imx8qxp_ldb);
+	return ret;
+}
+
+static int imx8qxp_ldb_init_sc_misc(int ldb_id, bool dual)
+{
+	struct imx_sc_ipc *handle;
+	u32 rsc;
+	bool is_aux = false;
+	int ret = 0;
+
+	imx_scu_get_handle(&handle);
+
+again:
+	rsc = ldb_id ? IMX_SC_R_MIPI_1 : IMX_SC_R_MIPI_0;
+
+	ret |= imx_sc_misc_set_control(handle,
+				       rsc, IMX_SC_C_MODE, 1);
+	ret |= imx_sc_misc_set_control(handle,
+				       rsc, IMX_SC_C_DUAL_MODE, is_aux);
+	ret |= imx_sc_misc_set_control(handle,
+				       rsc, IMX_SC_C_PXL_LINK_SEL, is_aux);
+
+	if (dual && !is_aux) {
+		ldb_id ^= 1;
+		is_aux = true;
+		goto again;
+	}
+
+	return ret;
+}
+
+static struct phy *imx8qxp_ldb_get_aux_phy(struct device_node *auxldb_np)
+{
+	struct device_node *child;
+	struct phy *phy = NULL;
+	int ret, i;
+
+	for_each_child_of_node(auxldb_np, child) {
+		ret = of_property_read_u32(child, "reg", &i);
+		if (ret || i < 0) {
+			of_node_put(child);
+			return ERR_PTR(-ENODEV);
+		}
+
+		if (i != 1)
+			continue;
+
+		phy = of_phy_get(child, "ldb_phy");
+	}
+
+	of_node_put(child);
+
+	return phy;
+}
+
+static int
+imx8qxp_ldb_bind(struct device *dev, struct device *master, void *data)
+{
+	struct drm_device *drm = data;
+	struct device_node *np = dev->of_node;
+	struct device_node *auxldb_np = NULL, *child;
+	struct imx8qxp_ldb *imx8qxp_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb;
+	struct ldb_channel *ldb_ch;
+	struct drm_encoder *encoder[LDB_CH_NUM];
+	bool dual;
+	int ret;
+	int i;
+
+	ldb = &imx8qxp_ldb->base;
+	ldb->dev = dev;
+	ldb->ctrl_reg = 0xe0;
+	ldb->output_port = 1;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		imx8qxp_ldb->channel[i].imx8qxp_ldb = imx8qxp_ldb;
+		ldb->channel[i] = &imx8qxp_ldb->channel[i].base;
+	}
+
+	ret = imx_scu_get_handle(&imx8qxp_ldb->handle);
+	if (ret) {
+		dev_err(dev, "failed to get scu ipc handle %d\n", ret);
+		return ret;
+	}
+
+	imx8qxp_ldb->id = of_alias_get_id(np, "ldb");
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		encoder[i] = &imx8qxp_ldb->channel[i].encoder;
+
+		drm_encoder_helper_add(encoder[i],
+				      &imx8qxp_ldb_encoder_helper_funcs);
+		drm_encoder_init(drm, encoder[i], &imx8qxp_ldb_encoder_funcs,
+				 DRM_MODE_ENCODER_LVDS, NULL);
+	}
+
+	dual = of_property_read_bool(np, "fsl,dual-channel");
+
+	ret = imx8qxp_ldb_attach_pm_domains(imx8qxp_ldb, dual);
+	if (ret) {
+		dev_err(dev, "failed to attach pm domains %d\n", ret);
+		return ret;
+	}
+
+	pm_runtime_enable(dev);
+
+	ret = ldb_bind(ldb, encoder);
+	if (ret)
+		goto disable_pm_runtime;
+
+	ret = imx8qxp_ldb_init_sc_misc(imx8qxp_ldb->id, ldb->dual);
+	if (ret) {
+		dev_err(dev, "failed to initialize sc misc %d\n", ret);
+		goto disable_pm_runtime;
+	}
+
+	imx8qxp_ldb->clk_pixel = devm_clk_get(dev, "pixel");
+	if (IS_ERR(imx8qxp_ldb->clk_pixel)) {
+		ret = PTR_ERR(imx8qxp_ldb->clk_pixel);
+		goto disable_pm_runtime;
+	}
+
+	imx8qxp_ldb->clk_bypass = devm_clk_get(dev, "bypass");
+	if (IS_ERR(imx8qxp_ldb->clk_bypass)) {
+		ret = PTR_ERR(imx8qxp_ldb->clk_bypass);
+		goto disable_pm_runtime;
+	}
+
+	if (ldb->dual) {
+		imx8qxp_ldb->clk_aux_pixel = devm_clk_get(dev, "aux_pixel");
+		if (IS_ERR(imx8qxp_ldb->clk_aux_pixel)) {
+			ret = PTR_ERR(imx8qxp_ldb->clk_aux_pixel);
+			goto disable_pm_runtime;
+		}
+
+		imx8qxp_ldb->clk_aux_bypass = devm_clk_get(dev, "aux_bypass");
+		if (IS_ERR(imx8qxp_ldb->clk_aux_bypass)) {
+			ret = PTR_ERR(imx8qxp_ldb->clk_aux_bypass);
+			goto disable_pm_runtime;
+		}
+
+		auxldb_np = of_parse_phandle(np, "fsl,auxldb", 0);
+		if (!auxldb_np) {
+			dev_err(dev,
+				"failed to find aux LDB node in device tree\n");
+			ret = -ENODEV;
+			goto disable_pm_runtime;
+		}
+
+		if (of_device_is_available(auxldb_np)) {
+			dev_err(dev, "aux LDB node is already in use\n");
+			of_node_put(auxldb_np);
+			ret = -ENODEV;
+			goto disable_pm_runtime;
+		}
+
+		imx8qxp_ldb->aux_regmap =
+			syscon_regmap_lookup_by_phandle(auxldb_np, "gpr");
+		if (IS_ERR(imx8qxp_ldb->aux_regmap)) {
+			ret = PTR_ERR(imx8qxp_ldb->aux_regmap);
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev, "failed to get aux regmap\n");
+			of_node_put(auxldb_np);
+			goto disable_pm_runtime;
+		}
+
+		pm_runtime_get_sync(dev);
+		regmap_write(imx8qxp_ldb->aux_regmap, ldb->ctrl_reg, 0);
+		pm_runtime_put(dev);
+	}
+
+	for_each_child_of_node(np, child) {
+		struct imx8qxp_ldb_channel *imx8qxp_ldb_ch;
+
+		ret = of_property_read_u32(child, "reg", &i);
+		if (ret || i < 0 || i > 1) {
+			ret = -EINVAL;
+			goto free_child;
+		}
+
+		if (!of_device_is_available(child))
+			continue;
+
+		imx8qxp_ldb_ch = &imx8qxp_ldb->channel[i];
+
+		imx8qxp_ldb_ch->phy = devm_of_phy_get(dev, child, "ldb_phy");
+		if (IS_ERR(imx8qxp_ldb_ch->phy)) {
+			ret = PTR_ERR(imx8qxp_ldb_ch->phy);
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev, "can't get channel%d phy: %d\n",
+					i, ret);
+			goto free_child;
+		}
+
+		ret = phy_init(imx8qxp_ldb_ch->phy);
+		if (ret < 0) {
+			dev_err(dev, "failed to initialize channel%d phy: %d\n",
+				i, ret);
+			goto free_child;
+		}
+
+		if (ldb->dual) {
+			imx8qxp_ldb_ch->aux_phy =
+					imx8qxp_ldb_get_aux_phy(auxldb_np);
+			if (IS_ERR(imx8qxp_ldb_ch->aux_phy)) {
+				ret = PTR_ERR(imx8qxp_ldb_ch->aux_phy);
+				if (ret != -EPROBE_DEFER)
+					dev_err(dev,
+						"can't get channel0 aux phy: %d\n",
+						ret);
+				goto free_child;
+			}
+
+			ret = phy_init(imx8qxp_ldb_ch->aux_phy);
+			if (ret < 0) {
+				dev_err(dev,
+					"failed to initialize channel0 aux phy: %d\n",
+					ret);
+				goto free_child;
+			}
+		}
+	}
+
+	if (ldb->dual)
+		of_node_put(auxldb_np);
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		ldb_ch = &imx8qxp_ldb->channel[i].base;
+		if (!ldb_ch->is_valid) {
+			drm_encoder_cleanup(encoder[i]);
+			continue;
+		}
+
+		ret = imx_drm_encoder_parse_of(drm, encoder[i], ldb_ch->child);
+		if (ret)
+			goto disable_pm_runtime;
+	}
+
+	return 0;
+
+free_child:
+	of_node_put(child);
+	if (ldb->dual)
+		of_node_put(auxldb_np);
+disable_pm_runtime:
+	pm_runtime_disable(dev);
+	imx8qxp_ldb_detach_pm_domains(imx8qxp_ldb);
+
+	return ret;
+}
+
+static void imx8qxp_ldb_unbind(struct device *dev, struct device *master,
+	void *data)
+{
+	struct imx8qxp_ldb *imx8qxp_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb = &imx8qxp_ldb->base;
+	int i;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		struct imx8qxp_ldb_channel *imx8qxp_ldb_ch =
+						&imx8qxp_ldb->channel[i];
+
+		if (imx8qxp_ldb_ch->phy_is_on) {
+			phy_power_off(imx8qxp_ldb_ch->phy);
+			if (ldb->dual)
+				phy_power_off(imx8qxp_ldb_ch->aux_phy);
+		}
+
+		phy_exit(imx8qxp_ldb_ch->phy);
+		if (ldb->dual && i == 0)
+			phy_exit(imx8qxp_ldb_ch->aux_phy);
+	}
+
+	imx8qxp_ldb_detach_pm_domains(imx8qxp_ldb);
+}
+
+static const struct component_ops imx8qxp_ldb_ops = {
+	.bind	= imx8qxp_ldb_bind,
+	.unbind	= imx8qxp_ldb_unbind,
+};
+
+static int imx8qxp_ldb_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct imx8qxp_ldb *imx8qxp_ldb;
+
+	imx8qxp_ldb = devm_kzalloc(dev, sizeof(*imx8qxp_ldb), GFP_KERNEL);
+	if (!imx8qxp_ldb)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, imx8qxp_ldb);
+
+	return component_add(dev, &imx8qxp_ldb_ops);
+}
+
+static int imx8qxp_ldb_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &imx8qxp_ldb_ops);
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int imx8qxp_ldb_suspend(struct device *dev)
+{
+	struct imx8qxp_ldb *imx8qxp_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb = &imx8qxp_ldb->base;
+	int i;
+
+	if (imx8qxp_ldb == NULL)
+		return 0;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		phy_exit(imx8qxp_ldb->channel[i].phy);
+
+		if (ldb->dual && i == 0)
+			phy_exit(imx8qxp_ldb->channel[i].aux_phy);
+	}
+
+	return 0;
+}
+
+static int imx8qxp_ldb_resume(struct device *dev)
+{
+	struct imx8qxp_ldb *imx8qxp_ldb = dev_get_drvdata(dev);
+	struct ldb *ldb = &imx8qxp_ldb->base;
+	int i;
+
+	if (imx8qxp_ldb == NULL)
+		return 0;
+
+	for (i = 0; i < LDB_CH_NUM; i++) {
+		phy_init(imx8qxp_ldb->channel[i].phy);
+
+		if (ldb->dual && i == 0)
+			phy_init(imx8qxp_ldb->channel[i].aux_phy);
+	}
+
+	imx8qxp_ldb_init_sc_misc(imx8qxp_ldb->id, ldb->dual);
+
+	return 0;
+}
+#endif
+
+static const struct dev_pm_ops imx8qxp_ldb_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(imx8qxp_ldb_suspend, imx8qxp_ldb_resume)
+};
+
+static struct platform_driver imx8qxp_ldb_driver = {
+	.probe		= imx8qxp_ldb_probe,
+	.remove		= imx8qxp_ldb_remove,
+	.driver		= {
+		.of_match_table = imx8qxp_ldb_dt_ids,
+		.name	= DRIVER_NAME,
+		.pm	= &imx8qxp_ldb_pm_ops,
+	},
+};
+
+module_platform_driver(imx8qxp_ldb_driver);
+
+MODULE_DESCRIPTION("i.MX8QXP LVDS driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/Kconfig
@@ -0,0 +1,6 @@
+config DRM_IMX_IPUV3
+	tristate
+	depends on DRM_IMX
+	depends on IMX_IPUV3_CORE
+	default y if DRM_IMX=y
+	default m if DRM_IMX=m
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/Makefile
@@ -0,0 +1,4 @@
+ccflags-y += -I $(srctree)/$(src)/../
+
+imx-ipuv3-crtc-objs := ipuv3-crtc.o ipuv3-plane.o ipuv3-kms.o
+obj-$(CONFIG_DRM_IMX_IPUV3) += imx-ipuv3-crtc.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
@@ -0,0 +1,513 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * i.MX IPUv3 Graphics driver
+ *
+ * Copyright (C) 2011 Sascha Hauer, Pengutronix
+ */
+
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/device.h>
+#include <linux/dma-mapping.h>
+#include <linux/errno.h>
+#include <linux/export.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+
+#include <video/imx-ipu-v3.h>
+
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_probe_helper.h>
+#include <drm/drm_vblank.h>
+
+#include "imx-drm.h"
+#include "ipuv3-kms.h"
+#include "ipuv3-plane.h"
+
+#define DRIVER_DESC		"i.MX IPUv3 Graphics"
+
+struct ipu_crtc {
+	struct device		*dev;
+	struct drm_crtc		base;
+
+	/* plane[0] is the full plane, plane[1] is the partial plane */
+	struct ipu_plane	*plane[2];
+
+	struct ipu_dc		*dc;
+	struct ipu_di		*di;
+	int			irq;
+	struct drm_pending_vblank_event *event;
+};
+
+static inline struct ipu_crtc *to_ipu_crtc(struct drm_crtc *crtc)
+{
+	return container_of(crtc, struct ipu_crtc, base);
+}
+
+static void ipu_crtc_atomic_enable(struct drm_crtc *crtc,
+				   struct drm_crtc_state *old_state)
+{
+	struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+	struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent);
+
+	ipu_prg_enable(ipu);
+	ipu_dc_enable(ipu);
+	ipu_dc_enable_channel(ipu_crtc->dc);
+	ipu_di_enable(ipu_crtc->di);
+}
+
+static void ipu_crtc_disable_planes(struct ipu_crtc *ipu_crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	bool disable_partial = false;
+	bool disable_full = false;
+	struct drm_plane *plane;
+
+	drm_atomic_crtc_state_for_each_plane(plane, old_crtc_state) {
+		if (plane == &ipu_crtc->plane[0]->base)
+			disable_full = true;
+		if (ipu_crtc->plane[1] && plane == &ipu_crtc->plane[1]->base)
+			disable_partial = true;
+	}
+
+	if (disable_partial)
+		ipu_plane_disable(ipu_crtc->plane[1], true);
+	if (disable_full)
+		ipu_plane_disable(ipu_crtc->plane[0], true);
+}
+
+static void ipu_crtc_atomic_disable(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+	struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent);
+
+	ipu_dc_disable_channel(ipu_crtc->dc);
+	ipu_di_disable(ipu_crtc->di);
+	/*
+	 * Planes must be disabled before DC clock is removed, as otherwise the
+	 * attached IDMACs will be left in undefined state, possibly hanging
+	 * the IPU or even system.
+	 */
+	ipu_crtc_disable_planes(ipu_crtc, old_crtc_state);
+	ipu_dc_disable(ipu);
+	ipu_prg_disable(ipu);
+
+	drm_crtc_vblank_off(crtc);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event && !crtc->state->active) {
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+static void ipu_drm_crtc_reset(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *state;
+
+	if (crtc->state)
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+	kfree(to_imx_crtc_state(crtc->state));
+	crtc->state = NULL;
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_crtc_reset(crtc, &state->base);
+}
+
+static struct drm_crtc_state *ipu_drm_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *state;
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (!state)
+		return NULL;
+
+	__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	WARN_ON(state->base.crtc != crtc);
+	state->base.crtc = crtc;
+
+	return &state->base;
+}
+
+static void ipu_drm_crtc_destroy_state(struct drm_crtc *crtc,
+				       struct drm_crtc_state *state)
+{
+	__drm_atomic_helper_crtc_destroy_state(state);
+	kfree(to_imx_crtc_state(state));
+}
+
+static int ipu_enable_vblank(struct drm_crtc *crtc)
+{
+	struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+
+	enable_irq(ipu_crtc->irq);
+
+	return 0;
+}
+
+static void ipu_disable_vblank(struct drm_crtc *crtc)
+{
+	struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+
+	disable_irq_nosync(ipu_crtc->irq);
+}
+
+static const struct drm_crtc_funcs ipu_crtc_funcs = {
+	.set_config = drm_atomic_helper_set_config,
+	.destroy = drm_crtc_cleanup,
+	.page_flip = drm_atomic_helper_page_flip,
+	.reset = ipu_drm_crtc_reset,
+	.atomic_duplicate_state = ipu_drm_crtc_duplicate_state,
+	.atomic_destroy_state = ipu_drm_crtc_destroy_state,
+	.enable_vblank = ipu_enable_vblank,
+	.disable_vblank = ipu_disable_vblank,
+};
+
+static irqreturn_t ipu_irq_handler(int irq, void *dev_id)
+{
+	struct ipu_crtc *ipu_crtc = dev_id;
+	struct drm_crtc *crtc = &ipu_crtc->base;
+	unsigned long flags;
+	int i;
+
+	drm_crtc_handle_vblank(crtc);
+
+	if (ipu_crtc->event) {
+		for (i = 0; i < ARRAY_SIZE(ipu_crtc->plane); i++) {
+			struct ipu_plane *plane = ipu_crtc->plane[i];
+
+			if (!plane)
+				continue;
+
+			if (ipu_plane_atomic_update_pending(&plane->base))
+				break;
+		}
+
+		if (i == ARRAY_SIZE(ipu_crtc->plane)) {
+			spin_lock_irqsave(&crtc->dev->event_lock, flags);
+			drm_crtc_send_vblank_event(crtc, ipu_crtc->event);
+			ipu_crtc->event = NULL;
+			drm_crtc_vblank_put(crtc);
+			spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
+		}
+	}
+
+	return IRQ_HANDLED;
+}
+
+static bool ipu_crtc_mode_fixup(struct drm_crtc *crtc,
+				  const struct drm_display_mode *mode,
+				  struct drm_display_mode *adjusted_mode)
+{
+	struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+	struct videomode vm;
+	int ret;
+
+	drm_display_mode_to_videomode(adjusted_mode, &vm);
+
+	ret = ipu_di_adjust_videomode(ipu_crtc->di, &vm);
+	if (ret)
+		return false;
+
+	if ((vm.vsync_len == 0) || (vm.hsync_len == 0))
+		return false;
+
+	drm_display_mode_from_videomode(&vm, adjusted_mode);
+
+	return true;
+}
+
+static int ipu_crtc_atomic_check(struct drm_crtc *crtc,
+				 struct drm_crtc_state *state)
+{
+	u32 primary_plane_mask = drm_plane_mask(crtc->primary);
+
+	if (state->active && (primary_plane_mask & state->plane_mask) == 0)
+		return -EINVAL;
+
+	return 0;
+}
+
+static void ipu_crtc_atomic_begin(struct drm_crtc *crtc,
+				  struct drm_crtc_state *old_crtc_state)
+{
+	drm_crtc_vblank_on(crtc);
+}
+
+static void ipu_crtc_atomic_flush(struct drm_crtc *crtc,
+				  struct drm_crtc_state *old_crtc_state)
+{
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+
+		WARN_ON(drm_crtc_vblank_get(crtc));
+		ipu_crtc->event = crtc->state->event;
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+static void ipu_crtc_mode_set_nofb(struct drm_crtc *crtc)
+{
+	struct drm_device *dev = crtc->dev;
+	struct drm_encoder *encoder;
+	struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc);
+	struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct ipu_di_signal_cfg sig_cfg = {};
+	unsigned long encoder_types = 0;
+
+	dev_dbg(ipu_crtc->dev, "%s: mode->hdisplay: %d\n", __func__,
+			mode->hdisplay);
+	dev_dbg(ipu_crtc->dev, "%s: mode->vdisplay: %d\n", __func__,
+			mode->vdisplay);
+
+	list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
+		if (encoder->crtc == crtc)
+			encoder_types |= BIT(encoder->encoder_type);
+	}
+
+	dev_dbg(ipu_crtc->dev, "%s: attached to encoder types 0x%lx\n",
+		__func__, encoder_types);
+
+	/*
+	 * If we have DAC or LDB, then we need the IPU DI clock to be
+	 * the same as the LDB DI clock. For TVDAC, derive the IPU DI
+	 * clock from 27 MHz TVE_DI clock, but allow to divide it.
+	 */
+	if (encoder_types & (BIT(DRM_MODE_ENCODER_DAC) |
+			     BIT(DRM_MODE_ENCODER_LVDS)))
+		sig_cfg.clkflags = IPU_DI_CLKMODE_SYNC | IPU_DI_CLKMODE_EXT;
+	else if (encoder_types & BIT(DRM_MODE_ENCODER_TVDAC))
+		sig_cfg.clkflags = IPU_DI_CLKMODE_EXT;
+	else
+		sig_cfg.clkflags = 0;
+
+	sig_cfg.enable_pol = !(imx_crtc_state->bus_flags & DRM_BUS_FLAG_DE_LOW);
+	/* Default to driving pixel data on negative clock edges */
+	sig_cfg.clk_pol = !!(imx_crtc_state->bus_flags &
+			     DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE);
+	sig_cfg.bus_format = imx_crtc_state->bus_format;
+	sig_cfg.v_to_h_sync = 0;
+	sig_cfg.hsync_pin = imx_crtc_state->di_hsync_pin;
+	sig_cfg.vsync_pin = imx_crtc_state->di_vsync_pin;
+
+	drm_display_mode_to_videomode(mode, &sig_cfg.mode);
+
+	ipu_dc_init_sync(ipu_crtc->dc, ipu_crtc->di,
+			 mode->flags & DRM_MODE_FLAG_INTERLACE,
+			 imx_crtc_state->bus_format, mode->hdisplay);
+	ipu_di_init_sync_panel(ipu_crtc->di, &sig_cfg);
+}
+
+static const struct drm_crtc_helper_funcs ipu_helper_funcs = {
+	.mode_fixup = ipu_crtc_mode_fixup,
+	.mode_set_nofb = ipu_crtc_mode_set_nofb,
+	.atomic_check = ipu_crtc_atomic_check,
+	.atomic_begin = ipu_crtc_atomic_begin,
+	.atomic_flush = ipu_crtc_atomic_flush,
+	.atomic_disable = ipu_crtc_atomic_disable,
+	.atomic_enable = ipu_crtc_atomic_enable,
+};
+
+static void ipu_put_resources(struct ipu_crtc *ipu_crtc)
+{
+	if (!IS_ERR_OR_NULL(ipu_crtc->dc))
+		ipu_dc_put(ipu_crtc->dc);
+	if (!IS_ERR_OR_NULL(ipu_crtc->di))
+		ipu_di_put(ipu_crtc->di);
+}
+
+static int ipu_get_resources(struct ipu_crtc *ipu_crtc,
+		struct ipu_client_platformdata *pdata)
+{
+	struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent);
+	int ret;
+
+	ipu_crtc->dc = ipu_dc_get(ipu, pdata->dc);
+	if (IS_ERR(ipu_crtc->dc)) {
+		ret = PTR_ERR(ipu_crtc->dc);
+		goto err_out;
+	}
+
+	ipu_crtc->di = ipu_di_get(ipu, pdata->di);
+	if (IS_ERR(ipu_crtc->di)) {
+		ret = PTR_ERR(ipu_crtc->di);
+		goto err_out;
+	}
+
+	return 0;
+err_out:
+	ipu_put_resources(ipu_crtc);
+
+	return ret;
+}
+
+static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
+	struct ipu_client_platformdata *pdata, struct drm_device *drm)
+{
+	struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent);
+	struct drm_crtc *crtc = &ipu_crtc->base;
+	int dp = -EINVAL;
+	int ret;
+
+	ret = ipu_get_resources(ipu_crtc, pdata);
+	if (ret) {
+		dev_err(ipu_crtc->dev, "getting resources failed with %d.\n",
+				ret);
+		return ret;
+	}
+
+	if (pdata->dp >= 0)
+		dp = IPU_DP_FLOW_SYNC_BG;
+	ipu_crtc->plane[0] = ipu_plane_init(drm, ipu, pdata->dma[0], dp, 0,
+					    DRM_PLANE_TYPE_PRIMARY);
+	if (IS_ERR(ipu_crtc->plane[0])) {
+		ret = PTR_ERR(ipu_crtc->plane[0]);
+		goto err_put_resources;
+	}
+
+	crtc->port = pdata->of_node;
+	drm_crtc_helper_add(crtc, &ipu_helper_funcs);
+	drm_crtc_init_with_planes(drm, crtc, &ipu_crtc->plane[0]->base, NULL,
+				  &ipu_crtc_funcs, NULL);
+
+	ret = ipu_plane_get_resources(ipu_crtc->plane[0]);
+	if (ret) {
+		dev_err(ipu_crtc->dev, "getting plane 0 resources failed with %d.\n",
+			ret);
+		goto err_put_resources;
+	}
+
+	/* If this crtc is using the DP, add an overlay plane */
+	if (pdata->dp >= 0 && pdata->dma[1] > 0) {
+		ipu_crtc->plane[1] = ipu_plane_init(drm, ipu, pdata->dma[1],
+						IPU_DP_FLOW_SYNC_FG,
+						drm_crtc_mask(&ipu_crtc->base),
+						DRM_PLANE_TYPE_OVERLAY);
+		if (IS_ERR(ipu_crtc->plane[1])) {
+			ipu_crtc->plane[1] = NULL;
+		} else {
+			ret = ipu_plane_get_resources(ipu_crtc->plane[1]);
+			if (ret) {
+				dev_err(ipu_crtc->dev, "getting plane 1 "
+					"resources failed with %d.\n", ret);
+				goto err_put_plane0_res;
+			}
+		}
+	}
+
+	ipu_crtc->irq = ipu_plane_irq(ipu_crtc->plane[0]);
+	ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq, ipu_irq_handler, 0,
+			"imx_drm", ipu_crtc);
+	if (ret < 0) {
+		dev_err(ipu_crtc->dev, "irq request failed with %d.\n", ret);
+		goto err_put_plane1_res;
+	}
+	/* Only enable IRQ when we actually need it to trigger work. */
+	disable_irq(ipu_crtc->irq);
+
+	return 0;
+
+err_put_plane1_res:
+	if (ipu_crtc->plane[1])
+		ipu_plane_put_resources(ipu_crtc->plane[1]);
+err_put_plane0_res:
+	ipu_plane_put_resources(ipu_crtc->plane[0]);
+err_put_resources:
+	ipu_put_resources(ipu_crtc);
+
+	return ret;
+}
+
+static int ipu_drm_bind(struct device *dev, struct device *master, void *data)
+{
+	struct ipu_client_platformdata *pdata = dev->platform_data;
+	struct drm_device *drm = data;
+	struct ipu_crtc *ipu_crtc;
+	int ret;
+
+	ipu_crtc = dev_get_drvdata(dev);
+	memset(ipu_crtc, 0, sizeof(*ipu_crtc));
+
+	ipu_crtc->dev = dev;
+
+	ret = ipu_crtc_init(ipu_crtc, pdata, drm);
+	if (ret)
+		return ret;
+
+	drm->mode_config.funcs = &ipuv3_drm_mode_config_funcs;
+	drm->mode_config.helper_private = &ipuv3_drm_mode_config_helpers;
+	drm->mode_config.allow_fb_modifiers = true;
+
+	dev_set_drvdata(dev, ipu_crtc);
+
+	return 0;
+}
+
+static void ipu_drm_unbind(struct device *dev, struct device *master,
+	void *data)
+{
+	struct ipu_crtc *ipu_crtc = dev_get_drvdata(dev);
+
+	ipu_put_resources(ipu_crtc);
+	if (ipu_crtc->plane[1])
+		ipu_plane_put_resources(ipu_crtc->plane[1]);
+	ipu_plane_put_resources(ipu_crtc->plane[0]);
+}
+
+static const struct component_ops ipu_crtc_ops = {
+	.bind = ipu_drm_bind,
+	.unbind = ipu_drm_unbind,
+};
+
+static int ipu_drm_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct ipu_crtc *ipu_crtc;
+	int ret;
+
+	if (!dev->platform_data)
+		return -EINVAL;
+
+	ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
+	if (ret)
+		return ret;
+
+	ipu_crtc = devm_kzalloc(dev, sizeof(*ipu_crtc), GFP_KERNEL);
+	if (!ipu_crtc)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, ipu_crtc);
+
+	return component_add(dev, &ipu_crtc_ops);
+}
+
+static int ipu_drm_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &ipu_crtc_ops);
+	return 0;
+}
+
+static struct platform_driver ipu_drm_driver = {
+	.driver = {
+		.name = "imx-ipuv3-crtc",
+	},
+	.probe = ipu_drm_probe,
+	.remove = ipu_drm_remove,
+};
+module_platform_driver(ipu_drm_driver);
+
+MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>");
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:imx-ipuv3-crtc");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/ipuv3-kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/ipuv3-kms.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include "imx-drm.h"
+#include "ipuv3-plane.h"
+
+static int ipuv3_drm_atomic_check(struct drm_device *dev,
+				   struct drm_atomic_state *state)
+{
+	int ret;
+
+	ret = drm_atomic_helper_check(dev, state);
+	if (ret)
+		return ret;
+
+	/*
+	 * Check modeset again in case crtc_state->mode_changed is
+	 * updated in plane's ->atomic_check callback.
+	 */
+	ret = drm_atomic_helper_check_modeset(dev, state);
+	if (ret)
+		return ret;
+
+	/* Assign PRG/PRE channels and check if all constrains are satisfied. */
+	ret = ipu_planes_assign_pre(dev, state);
+	if (ret)
+		return ret;
+
+	return ret;
+}
+
+const struct drm_mode_config_funcs ipuv3_drm_mode_config_funcs = {
+	.fb_create = drm_gem_fb_create,
+	.atomic_check = ipuv3_drm_atomic_check,
+	.atomic_commit = drm_atomic_helper_commit,
+};
+
+static void ipuv3_drm_atomic_commit_tail(struct drm_atomic_state *state)
+{
+	struct drm_device *dev = state->dev;
+	struct drm_plane *plane;
+	struct drm_plane_state *old_plane_state, *new_plane_state;
+	bool plane_disabling = false;
+	int i;
+
+	drm_atomic_helper_commit_modeset_disables(dev, state);
+
+	drm_atomic_helper_commit_planes(dev, state,
+				DRM_PLANE_COMMIT_ACTIVE_ONLY |
+				DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET);
+
+	drm_atomic_helper_commit_modeset_enables(dev, state);
+
+	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
+		if (drm_atomic_plane_disabling(old_plane_state, new_plane_state))
+			plane_disabling = true;
+	}
+
+	/*
+	 * The flip done wait is only strictly required by imx-drm if a deferred
+	 * plane disable is in-flight. As the core requires blocking commits
+	 * to wait for the flip it is done here unconditionally. This keeps the
+	 * workitem around a bit longer than required for the majority of
+	 * non-blocking commits, but we accept that for the sake of simplicity.
+	 */
+	drm_atomic_helper_wait_for_flip_done(dev, state);
+
+	if (plane_disabling) {
+		for_each_old_plane_in_state(state, plane, old_plane_state, i)
+			ipu_plane_disable_deferred(plane);
+
+	}
+
+	drm_atomic_helper_commit_hw_done(state);
+}
+
+const struct drm_mode_config_helper_funcs ipuv3_drm_mode_config_helpers = {
+	.atomic_commit_tail = ipuv3_drm_atomic_commit_tail,
+};
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/ipuv3-kms.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/ipuv3-kms.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef _IPUV3_KMS_H_
+#define _IPUV3_KMS_H_
+
+extern const struct drm_mode_config_funcs ipuv3_drm_mode_config_funcs;
+extern struct drm_mode_config_helper_funcs ipuv3_drm_mode_config_helpers;
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
@@ -0,0 +1,868 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * i.MX IPUv3 DP Overlay Planes
+ *
+ * Copyright (C) 2013 Philipp Zabel, Pengutronix
+ */
+
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_fourcc.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_plane_helper.h>
+
+#include <video/imx-ipu-v3.h>
+
+#include "imx-drm.h"
+#include "ipuv3-plane.h"
+
+struct ipu_plane_state {
+	struct drm_plane_state base;
+	bool use_pre;
+};
+
+static inline struct ipu_plane_state *
+to_ipu_plane_state(struct drm_plane_state *p)
+{
+	return container_of(p, struct ipu_plane_state, base);
+}
+
+static inline struct ipu_plane *to_ipu_plane(struct drm_plane *p)
+{
+	return container_of(p, struct ipu_plane, base);
+}
+
+static const uint32_t ipu_plane_formats[] = {
+	DRM_FORMAT_ARGB1555,
+	DRM_FORMAT_XRGB1555,
+	DRM_FORMAT_ABGR1555,
+	DRM_FORMAT_XBGR1555,
+	DRM_FORMAT_RGBA5551,
+	DRM_FORMAT_BGRA5551,
+	DRM_FORMAT_ARGB4444,
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ABGR8888,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_RGBA8888,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_BGRA8888,
+	DRM_FORMAT_BGRX8888,
+	DRM_FORMAT_UYVY,
+	DRM_FORMAT_VYUY,
+	DRM_FORMAT_YUYV,
+	DRM_FORMAT_YVYU,
+	DRM_FORMAT_YUV420,
+	DRM_FORMAT_YVU420,
+	DRM_FORMAT_YUV422,
+	DRM_FORMAT_YVU422,
+	DRM_FORMAT_YUV444,
+	DRM_FORMAT_YVU444,
+	DRM_FORMAT_NV12,
+	DRM_FORMAT_NV16,
+	DRM_FORMAT_RGB565,
+	DRM_FORMAT_RGB565_A8,
+	DRM_FORMAT_BGR565_A8,
+	DRM_FORMAT_RGB888_A8,
+	DRM_FORMAT_BGR888_A8,
+	DRM_FORMAT_RGBX8888_A8,
+	DRM_FORMAT_BGRX8888_A8,
+};
+
+static const uint64_t ipu_format_modifiers[] = {
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID
+};
+
+static const uint64_t pre_format_modifiers[] = {
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_VIVANTE_TILED,
+	DRM_FORMAT_MOD_VIVANTE_SUPER_TILED,
+	DRM_FORMAT_MOD_INVALID
+};
+
+int ipu_plane_irq(struct ipu_plane *ipu_plane)
+{
+	return ipu_idmac_channel_irq(ipu_plane->ipu, ipu_plane->ipu_ch,
+				     IPU_IRQ_EOF);
+}
+
+static inline unsigned long
+drm_plane_state_to_eba(struct drm_plane_state *state, int plane)
+{
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *cma_obj;
+	int x = state->src.x1 >> 16;
+	int y = state->src.y1 >> 16;
+
+	cma_obj = drm_fb_cma_get_gem_obj(fb, plane);
+	BUG_ON(!cma_obj);
+
+	return cma_obj->paddr + fb->offsets[plane] + fb->pitches[plane] * y +
+	       fb->format->cpp[plane] * x;
+}
+
+static inline unsigned long
+drm_plane_state_to_ubo(struct drm_plane_state *state)
+{
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *cma_obj;
+	unsigned long eba = drm_plane_state_to_eba(state, 0);
+	int x = state->src.x1 >> 16;
+	int y = state->src.y1 >> 16;
+
+	cma_obj = drm_fb_cma_get_gem_obj(fb, 1);
+	BUG_ON(!cma_obj);
+
+	x /= fb->format->hsub;
+	y /= fb->format->vsub;
+
+	return cma_obj->paddr + fb->offsets[1] + fb->pitches[1] * y +
+	       fb->format->cpp[1] * x - eba;
+}
+
+static inline unsigned long
+drm_plane_state_to_vbo(struct drm_plane_state *state)
+{
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *cma_obj;
+	unsigned long eba = drm_plane_state_to_eba(state, 0);
+	int x = state->src.x1 >> 16;
+	int y = state->src.y1 >> 16;
+
+	cma_obj = drm_fb_cma_get_gem_obj(fb, 2);
+	BUG_ON(!cma_obj);
+
+	x /= fb->format->hsub;
+	y /= fb->format->vsub;
+
+	return cma_obj->paddr + fb->offsets[2] + fb->pitches[2] * y +
+	       fb->format->cpp[2] * x - eba;
+}
+
+void ipu_plane_put_resources(struct ipu_plane *ipu_plane)
+{
+	if (!IS_ERR_OR_NULL(ipu_plane->dp))
+		ipu_dp_put(ipu_plane->dp);
+	if (!IS_ERR_OR_NULL(ipu_plane->dmfc))
+		ipu_dmfc_put(ipu_plane->dmfc);
+	if (!IS_ERR_OR_NULL(ipu_plane->ipu_ch))
+		ipu_idmac_put(ipu_plane->ipu_ch);
+	if (!IS_ERR_OR_NULL(ipu_plane->alpha_ch))
+		ipu_idmac_put(ipu_plane->alpha_ch);
+}
+
+int ipu_plane_get_resources(struct ipu_plane *ipu_plane)
+{
+	int ret;
+	int alpha_ch;
+
+	ipu_plane->ipu_ch = ipu_idmac_get(ipu_plane->ipu, ipu_plane->dma);
+	if (IS_ERR(ipu_plane->ipu_ch)) {
+		ret = PTR_ERR(ipu_plane->ipu_ch);
+		DRM_ERROR("failed to get idmac channel: %d\n", ret);
+		return ret;
+	}
+
+	alpha_ch = ipu_channel_alpha_channel(ipu_plane->dma);
+	if (alpha_ch >= 0) {
+		ipu_plane->alpha_ch = ipu_idmac_get(ipu_plane->ipu, alpha_ch);
+		if (IS_ERR(ipu_plane->alpha_ch)) {
+			ret = PTR_ERR(ipu_plane->alpha_ch);
+			DRM_ERROR("failed to get alpha idmac channel %d: %d\n",
+				  alpha_ch, ret);
+			return ret;
+		}
+	}
+
+	ipu_plane->dmfc = ipu_dmfc_get(ipu_plane->ipu, ipu_plane->dma);
+	if (IS_ERR(ipu_plane->dmfc)) {
+		ret = PTR_ERR(ipu_plane->dmfc);
+		DRM_ERROR("failed to get dmfc: ret %d\n", ret);
+		goto err_out;
+	}
+
+	if (ipu_plane->dp_flow >= 0) {
+		ipu_plane->dp = ipu_dp_get(ipu_plane->ipu, ipu_plane->dp_flow);
+		if (IS_ERR(ipu_plane->dp)) {
+			ret = PTR_ERR(ipu_plane->dp);
+			DRM_ERROR("failed to get dp flow: %d\n", ret);
+			goto err_out;
+		}
+	}
+
+	return 0;
+err_out:
+	ipu_plane_put_resources(ipu_plane);
+
+	return ret;
+}
+
+static bool ipu_plane_separate_alpha(struct ipu_plane *ipu_plane)
+{
+	switch (ipu_plane->base.state->fb->format->format) {
+	case DRM_FORMAT_RGB565_A8:
+	case DRM_FORMAT_BGR565_A8:
+	case DRM_FORMAT_RGB888_A8:
+	case DRM_FORMAT_BGR888_A8:
+	case DRM_FORMAT_RGBX8888_A8:
+	case DRM_FORMAT_BGRX8888_A8:
+		return true;
+	default:
+		return false;
+	}
+}
+
+static void ipu_plane_enable(struct ipu_plane *ipu_plane)
+{
+	if (ipu_plane->dp)
+		ipu_dp_enable(ipu_plane->ipu);
+	ipu_dmfc_enable_channel(ipu_plane->dmfc);
+	ipu_idmac_enable_channel(ipu_plane->ipu_ch);
+	if (ipu_plane_separate_alpha(ipu_plane))
+		ipu_idmac_enable_channel(ipu_plane->alpha_ch);
+	if (ipu_plane->dp)
+		ipu_dp_enable_channel(ipu_plane->dp);
+}
+
+void ipu_plane_disable(struct ipu_plane *ipu_plane, bool disable_dp_channel)
+{
+	int ret;
+
+	DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
+
+	ret = ipu_idmac_wait_busy(ipu_plane->ipu_ch, 50);
+	if (ret == -ETIMEDOUT) {
+		DRM_ERROR("[PLANE:%d] IDMAC timeout\n",
+			  ipu_plane->base.base.id);
+	}
+
+	if (ipu_plane->dp && disable_dp_channel)
+		ipu_dp_disable_channel(ipu_plane->dp, false);
+	ipu_idmac_disable_channel(ipu_plane->ipu_ch);
+	if (ipu_plane->alpha_ch)
+		ipu_idmac_disable_channel(ipu_plane->alpha_ch);
+	ipu_dmfc_disable_channel(ipu_plane->dmfc);
+	if (ipu_plane->dp)
+		ipu_dp_disable(ipu_plane->ipu);
+	if (ipu_prg_present(ipu_plane->ipu))
+		ipu_prg_channel_disable(ipu_plane->ipu_ch);
+}
+
+void ipu_plane_disable_deferred(struct drm_plane *plane)
+{
+	struct ipu_plane *ipu_plane = to_ipu_plane(plane);
+
+	if (ipu_plane->disabling) {
+		ipu_plane->disabling = false;
+		ipu_plane_disable(ipu_plane, false);
+	}
+}
+EXPORT_SYMBOL_GPL(ipu_plane_disable_deferred);
+
+static void ipu_plane_destroy(struct drm_plane *plane)
+{
+	struct ipu_plane *ipu_plane = to_ipu_plane(plane);
+
+	DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
+
+	drm_plane_cleanup(plane);
+	kfree(ipu_plane);
+}
+
+static void ipu_plane_state_reset(struct drm_plane *plane)
+{
+	unsigned int zpos = (plane->type == DRM_PLANE_TYPE_PRIMARY) ? 0 : 1;
+	struct ipu_plane_state *ipu_state;
+
+	if (plane->state) {
+		ipu_state = to_ipu_plane_state(plane->state);
+		__drm_atomic_helper_plane_destroy_state(plane->state);
+		kfree(ipu_state);
+		plane->state = NULL;
+	}
+
+	ipu_state = kzalloc(sizeof(*ipu_state), GFP_KERNEL);
+
+	if (ipu_state) {
+		__drm_atomic_helper_plane_reset(plane, &ipu_state->base);
+		ipu_state->base.zpos = zpos;
+		ipu_state->base.normalized_zpos = zpos;
+	}
+}
+
+static struct drm_plane_state *
+ipu_plane_duplicate_state(struct drm_plane *plane)
+{
+	struct ipu_plane_state *state;
+
+	if (WARN_ON(!plane->state))
+		return NULL;
+
+	state = kmalloc(sizeof(*state), GFP_KERNEL);
+	if (state)
+		__drm_atomic_helper_plane_duplicate_state(plane, &state->base);
+
+	return &state->base;
+}
+
+static void ipu_plane_destroy_state(struct drm_plane *plane,
+				    struct drm_plane_state *state)
+{
+	struct ipu_plane_state *ipu_state = to_ipu_plane_state(state);
+
+	__drm_atomic_helper_plane_destroy_state(state);
+	kfree(ipu_state);
+}
+
+static bool ipu_plane_format_mod_supported(struct drm_plane *plane,
+					   uint32_t format, uint64_t modifier)
+{
+	struct ipu_soc *ipu = to_ipu_plane(plane)->ipu;
+
+	/* linear is supported for all planes and formats */
+	if (modifier == DRM_FORMAT_MOD_LINEAR)
+		return true;
+
+	/* without a PRG there are no supported modifiers */
+	if (!ipu_prg_present(ipu))
+		return false;
+
+	return ipu_prg_format_supported(ipu, format, modifier);
+}
+
+static const struct drm_plane_funcs ipu_plane_funcs = {
+	.update_plane	= drm_atomic_helper_update_plane,
+	.disable_plane	= drm_atomic_helper_disable_plane,
+	.destroy	= ipu_plane_destroy,
+	.reset		= ipu_plane_state_reset,
+	.atomic_duplicate_state	= ipu_plane_duplicate_state,
+	.atomic_destroy_state	= ipu_plane_destroy_state,
+	.format_mod_supported = ipu_plane_format_mod_supported,
+};
+
+static int ipu_plane_atomic_check(struct drm_plane *plane,
+				  struct drm_plane_state *state)
+{
+	struct drm_plane_state *old_state = plane->state;
+	struct drm_crtc_state *crtc_state;
+	struct device *dev = plane->dev->dev;
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_framebuffer *old_fb = old_state->fb;
+	unsigned long eba, ubo, vbo, old_ubo, old_vbo, alpha_eba;
+	bool can_position = (plane->type == DRM_PLANE_TYPE_OVERLAY);
+	int ret;
+
+	/* Ok to disable */
+	if (!fb)
+		return 0;
+
+	if (WARN_ON(!state->crtc))
+		return -EINVAL;
+
+	crtc_state =
+		drm_atomic_get_existing_crtc_state(state->state, state->crtc);
+	if (WARN_ON(!crtc_state))
+		return -EINVAL;
+
+	ret = drm_atomic_helper_check_plane_state(state, crtc_state,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  can_position, true);
+	if (ret)
+		return ret;
+
+	/* nothing to check when disabling or disabled */
+	if (!crtc_state->enable)
+		return 0;
+
+	switch (plane->type) {
+	case DRM_PLANE_TYPE_PRIMARY:
+		/* full plane minimum width is 13 pixels */
+		if (drm_rect_width(&state->dst) < 13)
+			return -EINVAL;
+		break;
+	case DRM_PLANE_TYPE_OVERLAY:
+		break;
+	default:
+		dev_warn(dev, "Unsupported plane type %d\n", plane->type);
+		return -EINVAL;
+	}
+
+	if (drm_rect_height(&state->dst) < 2)
+		return -EINVAL;
+
+	/*
+	 * We support resizing active plane or changing its format by
+	 * forcing CRTC mode change in plane's ->atomic_check callback
+	 * and disabling all affected active planes in CRTC's ->atomic_disable
+	 * callback.  The planes will be reenabled in plane's ->atomic_update
+	 * callback.
+	 */
+	if (old_fb &&
+	    (drm_rect_width(&state->dst) != drm_rect_width(&old_state->dst) ||
+	     drm_rect_height(&state->dst) != drm_rect_height(&old_state->dst) ||
+	     fb->format != old_fb->format))
+		crtc_state->mode_changed = true;
+
+	eba = drm_plane_state_to_eba(state, 0);
+
+	if (eba & 0x7)
+		return -EINVAL;
+
+	if (fb->pitches[0] < 1 || fb->pitches[0] > 16384)
+		return -EINVAL;
+
+	if (old_fb && fb->pitches[0] != old_fb->pitches[0])
+		crtc_state->mode_changed = true;
+
+	switch (fb->format->format) {
+	case DRM_FORMAT_YUV420:
+	case DRM_FORMAT_YVU420:
+	case DRM_FORMAT_YUV422:
+	case DRM_FORMAT_YVU422:
+	case DRM_FORMAT_YUV444:
+	case DRM_FORMAT_YVU444:
+		/*
+		 * Multiplanar formats have to meet the following restrictions:
+		 * - The (up to) three plane addresses are EBA, EBA+UBO, EBA+VBO
+		 * - EBA, UBO and VBO are a multiple of 8
+		 * - UBO and VBO are unsigned and not larger than 0xfffff8
+		 * - Only EBA may be changed while scanout is active
+		 * - The strides of U and V planes must be identical.
+		 */
+		vbo = drm_plane_state_to_vbo(state);
+
+		if (vbo & 0x7 || vbo > 0xfffff8)
+			return -EINVAL;
+
+		if (old_fb && (fb->format == old_fb->format)) {
+			old_vbo = drm_plane_state_to_vbo(old_state);
+			if (vbo != old_vbo)
+				crtc_state->mode_changed = true;
+		}
+
+		if (fb->pitches[1] != fb->pitches[2])
+			return -EINVAL;
+
+		/* fall-through */
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV16:
+		ubo = drm_plane_state_to_ubo(state);
+
+		if (ubo & 0x7 || ubo > 0xfffff8)
+			return -EINVAL;
+
+		if (old_fb && (fb->format == old_fb->format)) {
+			old_ubo = drm_plane_state_to_ubo(old_state);
+			if (ubo != old_ubo)
+				crtc_state->mode_changed = true;
+		}
+
+		if (fb->pitches[1] < 1 || fb->pitches[1] > 16384)
+			return -EINVAL;
+
+		if (old_fb && old_fb->pitches[1] != fb->pitches[1])
+			crtc_state->mode_changed = true;
+
+		/*
+		 * The x/y offsets must be even in case of horizontal/vertical
+		 * chroma subsampling.
+		 */
+		if (((state->src.x1 >> 16) & (fb->format->hsub - 1)) ||
+		    ((state->src.y1 >> 16) & (fb->format->vsub - 1)))
+			return -EINVAL;
+		break;
+	case DRM_FORMAT_RGB565_A8:
+	case DRM_FORMAT_BGR565_A8:
+	case DRM_FORMAT_RGB888_A8:
+	case DRM_FORMAT_BGR888_A8:
+	case DRM_FORMAT_RGBX8888_A8:
+	case DRM_FORMAT_BGRX8888_A8:
+		alpha_eba = drm_plane_state_to_eba(state, 1);
+		if (alpha_eba & 0x7)
+			return -EINVAL;
+
+		if (fb->pitches[1] < 1 || fb->pitches[1] > 16384)
+			return -EINVAL;
+
+		if (old_fb && old_fb->pitches[1] != fb->pitches[1])
+			crtc_state->mode_changed = true;
+		break;
+	}
+
+	return 0;
+}
+
+static void ipu_plane_atomic_disable(struct drm_plane *plane,
+				     struct drm_plane_state *old_state)
+{
+	struct ipu_plane *ipu_plane = to_ipu_plane(plane);
+
+	if (ipu_plane->dp)
+		ipu_dp_disable_channel(ipu_plane->dp, true);
+	ipu_plane->disabling = true;
+}
+
+static int ipu_chan_assign_axi_id(int ipu_chan)
+{
+	switch (ipu_chan) {
+	case IPUV3_CHANNEL_MEM_BG_SYNC:
+		return 1;
+	case IPUV3_CHANNEL_MEM_FG_SYNC:
+		return 2;
+	case IPUV3_CHANNEL_MEM_DC_SYNC:
+		return 3;
+	default:
+		return 0;
+	}
+}
+
+static void ipu_calculate_bursts(u32 width, u32 cpp, u32 stride,
+				 u8 *burstsize, u8 *num_bursts)
+{
+	const unsigned int width_bytes = width * cpp;
+	unsigned int npb, bursts;
+
+	/* Maximum number of pixels per burst without overshooting stride */
+	for (npb = 64 / cpp; npb > 0; --npb) {
+		if (round_up(width_bytes, npb * cpp) <= stride)
+			break;
+	}
+	*burstsize = npb;
+
+	/* Maximum number of consecutive bursts without overshooting stride */
+	for (bursts = 8; bursts > 1; bursts /= 2) {
+		if (round_up(width_bytes, npb * cpp * bursts) <= stride)
+			break;
+	}
+	*num_bursts = bursts;
+}
+
+static void ipu_plane_atomic_update(struct drm_plane *plane,
+				    struct drm_plane_state *old_state)
+{
+	struct ipu_plane *ipu_plane = to_ipu_plane(plane);
+	struct drm_plane_state *state = plane->state;
+	struct ipu_plane_state *ipu_state = to_ipu_plane_state(state);
+	struct drm_crtc_state *crtc_state = state->crtc->state;
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_rect *dst = &state->dst;
+	unsigned long eba, ubo, vbo;
+	unsigned long alpha_eba = 0;
+	enum ipu_color_space ics;
+	unsigned int axi_id = 0;
+	const struct drm_format_info *info;
+	u8 burstsize, num_bursts;
+	u32 width, height;
+	int active;
+
+	if (ipu_plane->dp_flow == IPU_DP_FLOW_SYNC_FG)
+		ipu_dp_set_window_pos(ipu_plane->dp, dst->x1, dst->y1);
+
+	switch (ipu_plane->dp_flow) {
+	case IPU_DP_FLOW_SYNC_BG:
+		if (state->normalized_zpos == 1) {
+			ipu_dp_set_global_alpha(ipu_plane->dp,
+						!fb->format->has_alpha, 0xff,
+						true);
+		} else {
+			ipu_dp_set_global_alpha(ipu_plane->dp, true, 0, true);
+		}
+		break;
+	case IPU_DP_FLOW_SYNC_FG:
+		if (state->normalized_zpos == 1) {
+			ipu_dp_set_global_alpha(ipu_plane->dp,
+						!fb->format->has_alpha, 0xff,
+						false);
+		}
+		break;
+	}
+
+	eba = drm_plane_state_to_eba(state, 0);
+
+	/*
+	 * Configure PRG channel and attached PRE, this changes the EBA to an
+	 * internal SRAM location.
+	 */
+	if (ipu_state->use_pre) {
+		axi_id = ipu_chan_assign_axi_id(ipu_plane->dma);
+		ipu_prg_channel_configure(ipu_plane->ipu_ch, axi_id,
+					  drm_rect_width(&state->src) >> 16,
+					  drm_rect_height(&state->src) >> 16,
+					  fb->pitches[0], fb->format->format,
+					  fb->modifier, &eba);
+	}
+
+	if (old_state->fb && !drm_atomic_crtc_needs_modeset(crtc_state)) {
+		/* nothing to do if PRE is used */
+		if (ipu_state->use_pre)
+			return;
+		active = ipu_idmac_get_current_buffer(ipu_plane->ipu_ch);
+		ipu_cpmem_set_buffer(ipu_plane->ipu_ch, !active, eba);
+		ipu_idmac_select_buffer(ipu_plane->ipu_ch, !active);
+		if (ipu_plane_separate_alpha(ipu_plane)) {
+			active = ipu_idmac_get_current_buffer(ipu_plane->alpha_ch);
+			ipu_cpmem_set_buffer(ipu_plane->alpha_ch, !active,
+					     alpha_eba);
+			ipu_idmac_select_buffer(ipu_plane->alpha_ch, !active);
+		}
+		return;
+	}
+
+	ics = ipu_drm_fourcc_to_colorspace(fb->format->format);
+	switch (ipu_plane->dp_flow) {
+	case IPU_DP_FLOW_SYNC_BG:
+		ipu_dp_setup_channel(ipu_plane->dp, ics, IPUV3_COLORSPACE_RGB);
+		break;
+	case IPU_DP_FLOW_SYNC_FG:
+		ipu_dp_setup_channel(ipu_plane->dp, ics,
+					IPUV3_COLORSPACE_UNKNOWN);
+		break;
+	}
+
+	ipu_dmfc_config_wait4eot(ipu_plane->dmfc, drm_rect_width(dst));
+
+	width = drm_rect_width(&state->src) >> 16;
+	height = drm_rect_height(&state->src) >> 16;
+	info = drm_format_info(fb->format->format);
+	ipu_calculate_bursts(width, info->cpp[0], fb->pitches[0],
+			     &burstsize, &num_bursts);
+
+	ipu_cpmem_zero(ipu_plane->ipu_ch);
+	ipu_cpmem_set_resolution(ipu_plane->ipu_ch, width, height);
+	ipu_cpmem_set_fmt(ipu_plane->ipu_ch, fb->format->format);
+	ipu_cpmem_set_burstsize(ipu_plane->ipu_ch, burstsize);
+	ipu_cpmem_set_high_priority(ipu_plane->ipu_ch);
+	ipu_idmac_enable_watermark(ipu_plane->ipu_ch, true);
+	ipu_idmac_set_double_buffer(ipu_plane->ipu_ch, 1);
+	ipu_cpmem_set_stride(ipu_plane->ipu_ch, fb->pitches[0]);
+	ipu_cpmem_set_axi_id(ipu_plane->ipu_ch, axi_id);
+
+	switch (fb->format->format) {
+	case DRM_FORMAT_YUV420:
+	case DRM_FORMAT_YVU420:
+	case DRM_FORMAT_YUV422:
+	case DRM_FORMAT_YVU422:
+	case DRM_FORMAT_YUV444:
+	case DRM_FORMAT_YVU444:
+		ubo = drm_plane_state_to_ubo(state);
+		vbo = drm_plane_state_to_vbo(state);
+		if (fb->format->format == DRM_FORMAT_YVU420 ||
+		    fb->format->format == DRM_FORMAT_YVU422 ||
+		    fb->format->format == DRM_FORMAT_YVU444)
+			swap(ubo, vbo);
+
+		ipu_cpmem_set_yuv_planar_full(ipu_plane->ipu_ch,
+					      fb->pitches[1], ubo, vbo);
+
+		dev_dbg(ipu_plane->base.dev->dev,
+			"phy = %lu %lu %lu, x = %d, y = %d", eba, ubo, vbo,
+			state->src.x1 >> 16, state->src.y1 >> 16);
+		break;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV16:
+		ubo = drm_plane_state_to_ubo(state);
+
+		ipu_cpmem_set_yuv_planar_full(ipu_plane->ipu_ch,
+					      fb->pitches[1], ubo, ubo);
+
+		dev_dbg(ipu_plane->base.dev->dev,
+			"phy = %lu %lu, x = %d, y = %d", eba, ubo,
+			state->src.x1 >> 16, state->src.y1 >> 16);
+		break;
+	case DRM_FORMAT_RGB565_A8:
+	case DRM_FORMAT_BGR565_A8:
+	case DRM_FORMAT_RGB888_A8:
+	case DRM_FORMAT_BGR888_A8:
+	case DRM_FORMAT_RGBX8888_A8:
+	case DRM_FORMAT_BGRX8888_A8:
+		alpha_eba = drm_plane_state_to_eba(state, 1);
+		num_bursts = 0;
+
+		dev_dbg(ipu_plane->base.dev->dev, "phys = %lu %lu, x = %d, y = %d",
+			eba, alpha_eba, state->src.x1 >> 16, state->src.y1 >> 16);
+
+		ipu_cpmem_set_burstsize(ipu_plane->ipu_ch, 16);
+
+		ipu_cpmem_zero(ipu_plane->alpha_ch);
+		ipu_cpmem_set_resolution(ipu_plane->alpha_ch,
+					 drm_rect_width(&state->src) >> 16,
+					 drm_rect_height(&state->src) >> 16);
+		ipu_cpmem_set_format_passthrough(ipu_plane->alpha_ch, 8);
+		ipu_cpmem_set_high_priority(ipu_plane->alpha_ch);
+		ipu_idmac_set_double_buffer(ipu_plane->alpha_ch, 1);
+		ipu_cpmem_set_stride(ipu_plane->alpha_ch, fb->pitches[1]);
+		ipu_cpmem_set_burstsize(ipu_plane->alpha_ch, 16);
+		ipu_cpmem_set_buffer(ipu_plane->alpha_ch, 0, alpha_eba);
+		ipu_cpmem_set_buffer(ipu_plane->alpha_ch, 1, alpha_eba);
+		break;
+	default:
+		dev_dbg(ipu_plane->base.dev->dev, "phys = %lu, x = %d, y = %d",
+			eba, state->src.x1 >> 16, state->src.y1 >> 16);
+		break;
+	}
+	ipu_cpmem_set_buffer(ipu_plane->ipu_ch, 0, eba);
+	ipu_cpmem_set_buffer(ipu_plane->ipu_ch, 1, eba);
+	ipu_idmac_lock_enable(ipu_plane->ipu_ch, num_bursts);
+	ipu_plane_enable(ipu_plane);
+}
+
+static const struct drm_plane_helper_funcs ipu_plane_helper_funcs = {
+	.prepare_fb = drm_gem_fb_prepare_fb,
+	.atomic_check = ipu_plane_atomic_check,
+	.atomic_disable = ipu_plane_atomic_disable,
+	.atomic_update = ipu_plane_atomic_update,
+};
+
+bool ipu_plane_atomic_update_pending(struct drm_plane *plane)
+{
+	struct ipu_plane *ipu_plane = to_ipu_plane(plane);
+	struct drm_plane_state *state = plane->state;
+	struct ipu_plane_state *ipu_state = to_ipu_plane_state(state);
+
+	/* disabled crtcs must not block the update */
+	if (!state->crtc)
+		return false;
+
+	if (ipu_state->use_pre)
+		return ipu_prg_channel_configure_pending(ipu_plane->ipu_ch);
+
+	/*
+	 * Pretend no update is pending in the non-PRE/PRG case. For this to
+	 * happen, an atomic update would have to be deferred until after the
+	 * start of the next frame and simultaneously interrupt latency would
+	 * have to be high enough to let the atomic update finish and issue an
+	 * event before the previous end of frame interrupt handler can be
+	 * executed.
+	 */
+	return false;
+}
+int ipu_planes_assign_pre(struct drm_device *dev,
+			  struct drm_atomic_state *state)
+{
+	struct drm_crtc_state *old_crtc_state, *crtc_state;
+	struct drm_plane_state *plane_state;
+	struct ipu_plane_state *ipu_state;
+	struct ipu_plane *ipu_plane;
+	struct drm_plane *plane;
+	struct drm_crtc *crtc;
+	int available_pres = ipu_prg_max_active_channels();
+	int ret, i;
+
+	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, crtc_state, i) {
+		ret = drm_atomic_add_affected_planes(state, crtc);
+		if (ret)
+			return ret;
+	}
+
+	/*
+	 * We are going over the planes in 2 passes: first we assign PREs to
+	 * planes with a tiling modifier, which need the PREs to resolve into
+	 * linear. Any failure to assign a PRE there is fatal. In the second
+	 * pass we try to assign PREs to linear FBs, to improve memory access
+	 * patterns for them. Failure at this point is non-fatal, as we can
+	 * scan out linear FBs without a PRE.
+	 */
+	for_each_new_plane_in_state(state, plane, plane_state, i) {
+		ipu_state = to_ipu_plane_state(plane_state);
+		ipu_plane = to_ipu_plane(plane);
+
+		if (!plane_state->fb) {
+			ipu_state->use_pre = false;
+			continue;
+		}
+
+		if (!(plane_state->fb->flags & DRM_MODE_FB_MODIFIERS) ||
+		    plane_state->fb->modifier == DRM_FORMAT_MOD_LINEAR)
+			continue;
+
+		if (!ipu_prg_present(ipu_plane->ipu) || !available_pres)
+			return -EINVAL;
+
+		if (!ipu_prg_format_supported(ipu_plane->ipu,
+					      plane_state->fb->format->format,
+					      plane_state->fb->modifier))
+			return -EINVAL;
+
+		ipu_state->use_pre = true;
+		available_pres--;
+	}
+
+	for_each_new_plane_in_state(state, plane, plane_state, i) {
+		ipu_state = to_ipu_plane_state(plane_state);
+		ipu_plane = to_ipu_plane(plane);
+
+		if (!plane_state->fb) {
+			ipu_state->use_pre = false;
+			continue;
+		}
+
+		if ((plane_state->fb->flags & DRM_MODE_FB_MODIFIERS) &&
+		    plane_state->fb->modifier != DRM_FORMAT_MOD_LINEAR)
+			continue;
+
+		/* make sure that modifier is initialized */
+		plane_state->fb->modifier = DRM_FORMAT_MOD_LINEAR;
+
+		if (ipu_prg_present(ipu_plane->ipu) && available_pres &&
+		    ipu_prg_format_supported(ipu_plane->ipu,
+					     plane_state->fb->format->format,
+					     plane_state->fb->modifier)) {
+			ipu_state->use_pre = true;
+			available_pres--;
+		} else {
+			ipu_state->use_pre = false;
+		}
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(ipu_planes_assign_pre);
+
+struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
+				 int dma, int dp, unsigned int possible_crtcs,
+				 enum drm_plane_type type)
+{
+	struct ipu_plane *ipu_plane;
+	const uint64_t *modifiers = ipu_format_modifiers;
+	unsigned int zpos = (type == DRM_PLANE_TYPE_PRIMARY) ? 0 : 1;
+	int ret;
+
+	DRM_DEBUG_KMS("channel %d, dp flow %d, possible_crtcs=0x%x\n",
+		      dma, dp, possible_crtcs);
+
+	ipu_plane = kzalloc(sizeof(*ipu_plane), GFP_KERNEL);
+	if (!ipu_plane) {
+		DRM_ERROR("failed to allocate plane\n");
+		return ERR_PTR(-ENOMEM);
+	}
+
+	ipu_plane->ipu = ipu;
+	ipu_plane->dma = dma;
+	ipu_plane->dp_flow = dp;
+
+	if (ipu_prg_present(ipu))
+		modifiers = pre_format_modifiers;
+
+	ret = drm_universal_plane_init(dev, &ipu_plane->base, possible_crtcs,
+				       &ipu_plane_funcs, ipu_plane_formats,
+				       ARRAY_SIZE(ipu_plane_formats),
+				       modifiers, type, NULL);
+	if (ret) {
+		DRM_ERROR("failed to initialize plane\n");
+		kfree(ipu_plane);
+		return ERR_PTR(ret);
+	}
+
+	drm_plane_helper_add(&ipu_plane->base, &ipu_plane_helper_funcs);
+
+	if (dp == IPU_DP_FLOW_SYNC_BG || dp == IPU_DP_FLOW_SYNC_FG)
+		drm_plane_create_zpos_property(&ipu_plane->base, zpos, 0, 1);
+	else
+		drm_plane_create_zpos_immutable_property(&ipu_plane->base, 0);
+
+	return ipu_plane;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.h
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __IPUV3_PLANE_H__
+#define __IPUV3_PLANE_H__
+
+#include <drm/drm_crtc.h> /* drm_plane */
+
+struct drm_plane;
+struct drm_device;
+struct ipu_soc;
+struct drm_crtc;
+struct drm_framebuffer;
+
+struct ipuv3_channel;
+struct dmfc_channel;
+struct ipu_dp;
+
+struct ipu_plane {
+	struct drm_plane	base;
+
+	struct ipu_soc		*ipu;
+	struct ipuv3_channel	*ipu_ch;
+	struct ipuv3_channel	*alpha_ch;
+	struct dmfc_channel	*dmfc;
+	struct ipu_dp		*dp;
+
+	int			dma;
+	int			dp_flow;
+
+	bool			disabling;
+};
+
+struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
+				 int dma, int dp, unsigned int possible_crtcs,
+				 enum drm_plane_type type);
+
+/* Init IDMAC, DMFC, DP */
+int ipu_plane_mode_set(struct ipu_plane *plane, struct drm_crtc *crtc,
+		       struct drm_display_mode *mode,
+		       struct drm_framebuffer *fb, int crtc_x, int crtc_y,
+		       unsigned int crtc_w, unsigned int crtc_h,
+		       uint32_t src_x, uint32_t src_y, uint32_t src_w,
+		       uint32_t src_h, bool interlaced);
+
+int ipu_plane_get_resources(struct ipu_plane *plane);
+void ipu_plane_put_resources(struct ipu_plane *plane);
+
+int ipu_plane_irq(struct ipu_plane *plane);
+
+void ipu_plane_disable(struct ipu_plane *ipu_plane, bool disable_dp_channel);
+void ipu_plane_disable_deferred(struct drm_plane *plane);
+bool ipu_plane_atomic_update_pending(struct drm_plane *plane);
+
+int ipu_planes_assign_pre(struct drm_device *dev,
+			  struct drm_atomic_state *state);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif-mux-display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif-mux-display.c
@@ -0,0 +1,259 @@
+/*
+ * Copyright 2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_of.h>
+
+#include "imx-drm.h"
+
+#define LCDIF_MUX_MODE_MASK	0x3
+
+enum lcdif_mux_mode {
+	LCDIF_MUX_MODE_LCDIF,
+	LCDIF_MUX_MODE_PL_RGB888,
+	LCDIF_MUX_MODE_PL_RGB666,
+	LCDIF_MUX_MODE_PL_RGB565,
+};
+
+struct imx_lcdif_mux_display {
+	struct drm_encoder encoder;
+	struct device *dev;
+	struct regmap *regmap;
+	struct clk *clk_bypass_div;
+	struct clk *clk_pixel;
+	struct drm_bridge *bridge;
+	u32 bus_format;
+	enum lcdif_mux_mode mux_mode;
+};
+
+static inline struct imx_lcdif_mux_display *enc_to_lmuxd(struct drm_encoder *e)
+{
+	return container_of(e, struct imx_lcdif_mux_display, encoder);
+}
+
+static void imx_lmuxd_encoder_enable(struct drm_encoder *encoder)
+{
+	struct imx_lcdif_mux_display *lmuxd = enc_to_lmuxd(encoder);
+
+	clk_prepare_enable(lmuxd->clk_pixel);
+}
+
+static void imx_lmuxd_encoder_disable(struct drm_encoder *encoder)
+{
+	struct imx_lcdif_mux_display *lmuxd = enc_to_lmuxd(encoder);
+
+	clk_disable_unprepare(lmuxd->clk_pixel);
+}
+
+static void
+imx_lmuxd_encoder_atomic_mode_set(struct drm_encoder *encoder,
+				  struct drm_crtc_state *crtc_state,
+				  struct drm_connector_state *conn_state)
+{
+	struct imx_lcdif_mux_display *lmuxd = enc_to_lmuxd(encoder);
+	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
+	unsigned long pixel_clk = mode->clock * 1000;
+
+	clk_set_rate(lmuxd->clk_bypass_div, pixel_clk);
+	clk_set_rate(lmuxd->clk_pixel, pixel_clk);
+
+	regmap_update_bits(lmuxd->regmap,
+			   0x0, LCDIF_MUX_MODE_MASK, lmuxd->mux_mode);
+}
+
+static int
+imx_lmuxd_encoder_atomic_check(struct drm_encoder *encoder,
+			       struct drm_crtc_state *crtc_state,
+			       struct drm_connector_state *conn_state)
+{
+	struct imx_lcdif_mux_display *lmuxd = enc_to_lmuxd(encoder);
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct drm_display_info *di = &conn_state->connector->display_info;
+	u32 bus_format;
+
+	imx_crtc_state->bus_flags = di->bus_flags;
+
+	if (!lmuxd->bus_format)
+		lmuxd->bus_format = di->bus_formats[0];
+
+	switch (lmuxd->bus_format) {
+	case MEDIA_BUS_FMT_RGB565_1X16:
+		bus_format = MEDIA_BUS_FMT_RGB565_1X30_PADLO;
+		lmuxd->mux_mode = LCDIF_MUX_MODE_PL_RGB565;
+		break;
+	case MEDIA_BUS_FMT_RGB666_1X18:
+		bus_format = MEDIA_BUS_FMT_RGB666_1X30_PADLO;
+		lmuxd->mux_mode = LCDIF_MUX_MODE_PL_RGB666;
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X24:
+		bus_format = MEDIA_BUS_FMT_RGB888_1X30_PADLO;
+		lmuxd->mux_mode = LCDIF_MUX_MODE_PL_RGB888;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	imx_crtc_state->bus_format = bus_format;
+
+	return 0;
+}
+
+static const struct drm_encoder_funcs imx_lmuxd_encoder_funcs = {
+	.destroy = imx_drm_encoder_destroy,
+};
+
+static const struct drm_encoder_helper_funcs imx_lmuxd_encoder_helper_funcs = {
+	.enable = imx_lmuxd_encoder_enable,
+	.disable = imx_lmuxd_encoder_disable,
+	.atomic_mode_set = imx_lmuxd_encoder_atomic_mode_set,
+	.atomic_check = imx_lmuxd_encoder_atomic_check,
+};
+
+static int imx_lmuxd_register(struct drm_device *drm,
+	struct imx_lcdif_mux_display *lmuxd)
+{
+	struct drm_encoder *encoder = &lmuxd->encoder;
+	int ret;
+
+	ret = imx_drm_encoder_parse_of(drm, encoder, lmuxd->dev->of_node);
+	if (ret)
+		return ret;
+
+	drm_encoder_helper_add(encoder, &imx_lmuxd_encoder_helper_funcs);
+	drm_encoder_init(drm, encoder, &imx_lmuxd_encoder_funcs,
+			 DRM_MODE_ENCODER_DPI, NULL);
+
+	ret = drm_bridge_attach(encoder, lmuxd->bridge, NULL);
+	if (ret < 0) {
+		dev_err(lmuxd->dev, "failed to attach bridge: %d\n", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int imx_lmuxd_bind(struct device *dev, struct device *master, void *data)
+{
+	struct drm_device *drm = data;
+	struct device_node *np = dev->of_node;
+	struct imx_lcdif_mux_display *lmuxd = dev_get_drvdata(dev);
+	struct drm_panel *panel;
+	const char *fmt;
+	u32 bus_format = 0;
+	int ret;
+
+	lmuxd->regmap =
+		syscon_regmap_lookup_by_phandle(np, "fsl,lcdif-mux-regs");
+	if (IS_ERR(lmuxd->regmap)) {
+		dev_err(dev, "failed to get lcdif mux regmap\n");
+		return PTR_ERR(lmuxd->regmap);
+	}
+
+	lmuxd->clk_bypass_div = devm_clk_get(dev, "bypass_div");
+	if (IS_ERR(lmuxd->clk_bypass_div))
+		return PTR_ERR(lmuxd->clk_bypass_div);
+
+	lmuxd->clk_pixel = devm_clk_get(dev, "pixel");
+	if (IS_ERR(lmuxd->clk_bypass_div))
+		return PTR_ERR(lmuxd->clk_bypass_div);
+
+	ret = of_property_read_string(np, "fsl,interface-pix-fmt", &fmt);
+	if (!ret) {
+		if (!strcmp(fmt, "rgb565"))
+			bus_format = MEDIA_BUS_FMT_RGB565_1X16;
+		else if (!strcmp(fmt, "rgb666"))
+			bus_format = MEDIA_BUS_FMT_RGB666_1X18;
+		else if (!strcmp(fmt, "rgb888"))
+			bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+	}
+	lmuxd->bus_format = bus_format;
+
+	/* port@1 is the output port */
+	ret = drm_of_find_panel_or_bridge(np, 1, 0, &panel, &lmuxd->bridge);
+	if (ret)
+		return ret;
+
+	if (panel) {
+		lmuxd->bridge = devm_drm_panel_bridge_add(dev, panel,
+							DRM_MODE_CONNECTOR_DPI);
+		if (IS_ERR(lmuxd->bridge)) {
+			ret = PTR_ERR(lmuxd->bridge);
+			dev_err(dev, "failed to add panel bridge %d\n", ret);
+			return ret;
+		}
+	}
+
+	lmuxd->dev = dev;
+
+	return imx_lmuxd_register(drm, lmuxd);
+}
+
+static void imx_lmuxd_unbind(struct device *dev, struct device *master,
+	void *data)
+{
+}
+
+static const struct component_ops imx_lmuxd_ops = {
+	.bind	= imx_lmuxd_bind,
+	.unbind	= imx_lmuxd_unbind,
+};
+
+static int imx_lmuxd_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct imx_lcdif_mux_display *lmuxd;
+
+	lmuxd = devm_kzalloc(dev, sizeof(*lmuxd), GFP_KERNEL);
+	if (!lmuxd)
+		return -ENOMEM;
+
+	dev_set_drvdata(dev, lmuxd);
+
+	return component_add(dev, &imx_lmuxd_ops);
+}
+
+static int imx_lmuxd_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &imx_lmuxd_ops);
+
+	return 0;
+}
+
+static const struct of_device_id imx_lmuxd_dt_ids[] = {
+	{ .compatible = "fsl,imx-lcdif-mux-display", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx_lmuxd_dt_ids);
+
+static struct platform_driver imx_lmuxd_driver = {
+	.probe		= imx_lmuxd_probe,
+	.remove		= imx_lmuxd_remove,
+	.driver		= {
+		.of_match_table = imx_lmuxd_dt_ids,
+		.name	= "imx-lcdif-mux-display",
+	},
+};
+
+module_platform_driver(imx_lmuxd_driver);
+
+MODULE_DESCRIPTION("i.MX LCDIF mux display driver");
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:imx-lcdif-mux-display");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/Kconfig
@@ -0,0 +1,8 @@
+config DRM_IMX_LCDIF
+	tristate "i.MX LCDIF controller DRM driver"
+	depends on DRM_IMX
+	depends on IMX_LCDIF_CORE
+	default y if DRM_IMX=y
+	default m if DRM_IMX=m
+	help
+	  enable i.MX LCDIF controller DRM driver under DRM_IMX.
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/Makefile
@@ -0,0 +1,4 @@
+ccflags-y += -I $(srctree)/$(src)/../
+
+imx-lcdif-crtc-objs := lcdif-crtc.o lcdif-plane.o lcdif-kms.o
+obj-$(CONFIG_DRM_IMX_LCDIF) += imx-lcdif-crtc.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/lcdif-crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/lcdif-crtc.c
@@ -0,0 +1,427 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/component.h>
+#include <linux/device.h>
+#include <linux/interrupt.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <drm/drmP.h>
+#include <drm/drm_atomic_helper.h>
+#include <video/imx-lcdif.h>
+#include <video/videomode.h>
+
+#include "imx-drm.h"
+#include "lcdif-plane.h"
+#include "lcdif-kms.h"
+
+struct lcdif_crtc {
+	struct device *dev;
+
+	struct drm_crtc base;
+	struct lcdif_plane *plane[2];
+
+	int vbl_irq;
+	u32 pix_fmt;		/* drm fourcc */
+};
+
+#define to_lcdif_crtc(crtc) container_of(crtc, struct lcdif_crtc, base)
+
+static void lcdif_crtc_reset(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *state;
+
+	if (crtc->state) {
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+		state = to_imx_crtc_state(crtc->state);
+		kfree(state);
+		crtc->state = NULL;
+	}
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (!state)
+		return;
+
+	crtc->state = &state->base;
+	crtc->state->crtc = crtc;
+}
+
+static struct drm_crtc_state *lcdif_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *state, *orig_state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (!state)
+		return NULL;
+
+	__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	orig_state = to_imx_crtc_state(crtc->state);
+	state->bus_format = orig_state->bus_format;
+	state->bus_flags = orig_state->bus_flags;
+	state->di_hsync_pin = orig_state->di_hsync_pin;
+	state->di_vsync_pin = orig_state->di_vsync_pin;
+
+	return &state->base;
+}
+
+static void lcdif_crtc_destroy_state(struct drm_crtc *crtc,
+				     struct drm_crtc_state *state)
+{
+	__drm_atomic_helper_crtc_destroy_state(state);
+	kfree(to_imx_crtc_state(state));
+}
+
+static int lcdif_crtc_atomic_check(struct drm_crtc *crtc,
+				   struct drm_crtc_state *state)
+{
+	struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(state);
+
+	/* Don't check 'bus_format' when CRTC is
+	 * going to be disabled.
+	 */
+	if (!state->enable)
+		return 0;
+
+	/* For the commit that the CRTC is active
+	 * without planes attached to it should be
+	 * invalid.
+	 */
+	if (state->active && !state->plane_mask)
+		return -EINVAL;
+
+	/* check the requested bus format can be
+	 * supported by LCDIF CTRC or not
+	 */
+	switch (imx_crtc_state->bus_format) {
+	case MEDIA_BUS_FMT_RGB565_1X16:
+	case MEDIA_BUS_FMT_RGB666_1X18:
+	case MEDIA_BUS_FMT_RGB888_1X24:
+		break;
+	default:
+		dev_err(lcdif_crtc->dev,
+			"unsupported bus format: %#x\n",
+			imx_crtc_state->bus_format);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static void lcdif_crtc_atomic_begin(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	drm_crtc_vblank_on(crtc);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		WARN_ON(drm_crtc_vblank_get(crtc));
+		drm_crtc_arm_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+static void lcdif_crtc_atomic_flush(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	/* LCDIF doesn't have command buffer */
+	return;
+}
+
+static void lcdif_crtc_atomic_enable(struct drm_crtc *crtc,
+				     struct drm_crtc_state *old_crtc_state)
+{
+	struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+	struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct videomode vm;
+
+	drm_display_mode_to_videomode(mode, &vm);
+
+	if (imx_crtc_state->bus_flags & DRM_BUS_FLAG_DE_HIGH)
+		vm.flags |= DISPLAY_FLAGS_DE_HIGH;
+	else
+		vm.flags |= DISPLAY_FLAGS_DE_LOW;
+
+	if (imx_crtc_state->bus_flags & DRM_BUS_FLAG_PIXDATA_POSEDGE)
+		vm.flags |= DISPLAY_FLAGS_PIXDATA_POSEDGE;
+	else
+		vm.flags |= DISPLAY_FLAGS_PIXDATA_NEGEDGE;
+
+	pm_runtime_get_sync(lcdif_crtc->dev->parent);
+
+	lcdif_set_mode(lcdif, &vm);
+
+	/* config LCDIF output bus format */
+	lcdif_set_bus_fmt(lcdif, imx_crtc_state->bus_format);
+
+	/* defer the lcdif controller enable to plane update,
+	 * since until then the lcdif config is complete to
+	 * enable the controller to run actually.
+	 */
+}
+
+static void lcdif_crtc_atomic_disable(struct drm_crtc *crtc,
+				      struct drm_crtc_state *old_crtc_state)
+{
+	struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+
+	drm_crtc_vblank_off(crtc);
+
+	lcdif_disable_controller(lcdif);
+
+	pm_runtime_put(lcdif_crtc->dev->parent);
+}
+
+static enum drm_mode_status lcdif_crtc_mode_valid(struct drm_crtc *crtc,
+						  const struct drm_display_mode *mode)
+{
+	u8 vic;
+	long rate;
+	struct drm_display_mode *dmt, copy;
+	struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+
+	/* check CEA-861 mode */
+	vic = drm_match_cea_mode(mode);
+	if (vic)
+		goto check_pix_clk;
+
+       /* check DMT mode */
+	dmt = drm_mode_find_dmt(crtc->dev, mode->hdisplay, mode->vdisplay,
+				drm_mode_vrefresh(mode), false);
+	if (dmt) {
+		drm_mode_copy(&copy, dmt);
+		drm_mode_destroy(crtc->dev, dmt);
+
+		if (drm_mode_equal(mode, &copy))
+			goto check_pix_clk;
+	}
+
+	return MODE_OK;
+
+check_pix_clk:
+	rate = lcdif_pix_clk_round_rate(lcdif, mode->clock * 1000);
+
+	if (rate <= 0 || rate != mode->clock * 1000)
+		return MODE_BAD;
+
+	return MODE_OK;
+}
+
+static const struct drm_crtc_helper_funcs lcdif_helper_funcs = {
+	.atomic_check	= lcdif_crtc_atomic_check,
+	.atomic_begin	= lcdif_crtc_atomic_begin,
+	.atomic_flush	= lcdif_crtc_atomic_flush,
+	.atomic_enable	= lcdif_crtc_atomic_enable,
+	.atomic_disable	= lcdif_crtc_atomic_disable,
+	.mode_valid     = lcdif_crtc_mode_valid,
+};
+
+static int lcdif_enable_vblank(struct drm_crtc *crtc)
+{
+	struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+
+	lcdif_vblank_irq_enable(lcdif);
+	enable_irq(lcdif_crtc->vbl_irq);
+
+	return 0;
+}
+
+static void lcdif_disable_vblank(struct drm_crtc *crtc)
+{
+	struct lcdif_crtc *lcdif_crtc = to_lcdif_crtc(crtc);
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+
+	disable_irq_nosync(lcdif_crtc->vbl_irq);
+	lcdif_vblank_irq_disable(lcdif);
+}
+
+static const struct drm_crtc_funcs lcdif_crtc_funcs = {
+	.set_config = drm_atomic_helper_set_config,
+	.destroy    = drm_crtc_cleanup,
+	.page_flip  = drm_atomic_helper_page_flip,
+	.reset      = lcdif_crtc_reset,
+	.atomic_duplicate_state = lcdif_crtc_duplicate_state,
+	.atomic_destroy_state	= lcdif_crtc_destroy_state,
+	.enable_vblank	= lcdif_enable_vblank,
+	.disable_vblank = lcdif_disable_vblank,
+};
+
+static irqreturn_t lcdif_crtc_vblank_irq_handler(int irq, void *dev_id)
+{
+	struct lcdif_crtc *lcdif_crtc = dev_id;
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+
+	drm_crtc_handle_vblank(&lcdif_crtc->base);
+
+	lcdif_vblank_irq_clear(lcdif);
+
+	return IRQ_HANDLED;
+}
+
+static int lcdif_crtc_init(struct lcdif_crtc *lcdif_crtc,
+			   struct lcdif_client_platformdata *pdata,
+			   struct drm_device *drm)
+{
+	int ret;
+	struct lcdif_plane *primary = lcdif_crtc->plane[0];
+	struct lcdif_soc *lcdif = dev_get_drvdata(lcdif_crtc->dev->parent);
+
+	/* Primary plane
+	 * The 'possible_crtcs' of primary plane will be
+	 * recalculated during the 'crtc' initialization
+	 * later.
+	 */
+	primary = lcdif_plane_init(drm, lcdif, 0, DRM_PLANE_TYPE_PRIMARY, 0);
+	if (IS_ERR(primary))
+		return PTR_ERR(primary);
+	lcdif_crtc->plane[0] = primary;
+
+	/* TODO: Overlay plane */
+
+	lcdif_crtc->base.port = pdata->of_node;
+	drm_crtc_helper_add(&lcdif_crtc->base, &lcdif_helper_funcs);
+	ret = drm_crtc_init_with_planes(drm, &lcdif_crtc->base,
+			&lcdif_crtc->plane[0]->base, NULL,
+			&lcdif_crtc_funcs, NULL);
+	if (ret) {
+		dev_err(lcdif_crtc->dev, "failed to init crtc\n");
+		goto primary_plane_deinit;
+	}
+
+	lcdif_crtc->vbl_irq = lcdif_vblank_irq_get(lcdif);
+	WARN_ON(lcdif_crtc->vbl_irq < 0);
+
+	ret = devm_request_irq(lcdif_crtc->dev, lcdif_crtc->vbl_irq,
+			       lcdif_crtc_vblank_irq_handler, 0,
+			       dev_name(lcdif_crtc->dev), lcdif_crtc);
+	if (ret) {
+		dev_err(lcdif_crtc->dev,
+			"vblank irq request failed: %d\n", ret);
+		goto primary_plane_deinit;
+	}
+
+	disable_irq(lcdif_crtc->vbl_irq);
+
+	return 0;
+
+primary_plane_deinit:
+	lcdif_plane_deinit(drm, primary);
+
+	return ret;
+}
+
+static int lcdif_crtc_bind(struct device *dev, struct device *master,
+			   void *data)
+{
+	int ret;
+	struct drm_device *drm = data;
+	struct lcdif_crtc *lcdif_crtc = dev_get_drvdata(dev);
+	struct lcdif_client_platformdata *pdata = dev->platform_data;
+
+	dev_dbg(dev, "%s: lcdif crtc bind begin\n", __func__);
+
+	ret = lcdif_crtc_init(lcdif_crtc, pdata, drm);
+	if (ret)
+		return ret;
+
+	if (!drm->mode_config.funcs)
+		drm->mode_config.funcs = &lcdif_drm_mode_config_funcs;
+
+	if (!drm->mode_config.helper_private)
+		drm->mode_config.helper_private = &lcdif_drm_mode_config_helpers;
+
+	/* limit the max width and height */
+	drm->mode_config.max_width  = 1920;
+	drm->mode_config.max_height = 1920;
+
+	dev_dbg(dev, "%s: lcdif crtc bind end\n", __func__);
+
+	return 0;
+}
+
+static void lcdif_crtc_unbind(struct device *dev, struct device *master,
+			      void *data)
+{
+	struct drm_device *drm = data;
+	struct lcdif_crtc *lcdif_crtc = dev_get_drvdata(dev);
+
+	lcdif_plane_deinit(drm, lcdif_crtc->plane[0]);
+}
+
+static const struct component_ops lcdif_crtc_ops = {
+	.bind   = lcdif_crtc_bind,
+	.unbind = lcdif_crtc_unbind,
+};
+
+static int lcdif_crtc_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct lcdif_crtc *lcdif_crtc;
+
+	dev_dbg(&pdev->dev, "%s: lcdif crtc probe begin\n", __func__);
+
+	lcdif_crtc = devm_kzalloc(dev, sizeof(*lcdif_crtc), GFP_KERNEL);
+	if (!lcdif_crtc)
+		return -ENOMEM;
+
+	lcdif_crtc->dev = dev;
+
+	if (!dev->platform_data) {
+		dev_err(dev, "no platform data\n");
+		return -EINVAL;
+	}
+
+	dev_set_drvdata(dev, lcdif_crtc);
+
+	return component_add(dev, &lcdif_crtc_ops);
+}
+
+static int lcdif_crtc_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &lcdif_crtc_ops);
+
+	return 0;
+}
+
+static struct platform_driver lcdif_crtc_driver = {
+	.probe  = lcdif_crtc_probe,
+	.remove = lcdif_crtc_remove,
+	.driver = {
+		.name = "imx-lcdif-crtc",
+	},
+};
+module_platform_driver(lcdif_crtc_driver);
+
+MODULE_DESCRIPTION("NXP i.MX LCDIF DRM CRTC driver");
+MODULE_AUTHOR("Fancy Fang <chen.fang@nxp.com>");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/lcdif-kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/lcdif-kms.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+
+static void lcdif_drm_atomic_commit_tail(struct drm_atomic_state *state)
+{
+	struct drm_device *dev = state->dev;
+
+	drm_atomic_helper_commit_modeset_disables(dev, state);
+
+	drm_atomic_helper_commit_modeset_enables(dev, state);
+
+	drm_atomic_helper_commit_planes(dev, state, DRM_PLANE_COMMIT_ACTIVE_ONLY);
+
+	drm_atomic_helper_commit_hw_done(state);
+
+	drm_atomic_helper_wait_for_vblanks(dev, state);
+
+	drm_atomic_helper_cleanup_planes(dev, state);
+}
+
+const struct drm_mode_config_funcs lcdif_drm_mode_config_funcs = {
+	.fb_create     = drm_gem_fb_create,
+	.atomic_check  = drm_atomic_helper_check,
+	.atomic_commit = drm_atomic_helper_commit,
+};
+
+struct drm_mode_config_helper_funcs lcdif_drm_mode_config_helpers = {
+	.atomic_commit_tail = lcdif_drm_atomic_commit_tail,
+};
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/lcdif-kms.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/lcdif-kms.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __LCDIF_KMS_H
+#define __LCDIF_KMS_H
+
+extern const struct drm_mode_config_funcs lcdif_drm_mode_config_funcs;
+extern struct drm_mode_config_helper_funcs lcdif_drm_mode_config_helpers;
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/lcdif-plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/lcdif-plane.c
@@ -0,0 +1,240 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/module.h>
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_framebuffer.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_plane.h>
+#include <drm/drm_plane_helper.h>
+#include <drm/drm_rect.h>
+#include <video/imx-lcdif.h>
+
+#include "lcdif-plane.h"
+
+static uint32_t lcdif_pixel_formats[] = {
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_RGB565,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_ABGR8888,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_RGBA8888,
+	DRM_FORMAT_ARGB1555,
+	DRM_FORMAT_XRGB1555,
+	DRM_FORMAT_ABGR1555,
+	DRM_FORMAT_XBGR1555,
+	DRM_FORMAT_BGR565,
+};
+
+static int lcdif_plane_atomic_check(struct drm_plane *plane,
+				    struct drm_plane_state *plane_state)
+{
+	int ret;
+	struct drm_plane_state *old_state = plane->state;
+	struct drm_framebuffer *fb = plane_state->fb;
+	struct drm_framebuffer *old_fb = old_state->fb;
+	struct drm_crtc_state *crtc_state;
+	struct drm_display_mode *mode;
+	struct drm_rect clip = { 0 };
+
+	/* 'fb' should also be NULL which has been checked in
+	 * the core sanity check function 'drm_atomic_plane_check()'
+	 */
+	if (!plane_state->crtc) {
+		WARN_ON(fb);
+		return 0;
+	}
+
+	/* lcdif crtc can only display from (0,0) for each plane */
+	if (plane_state->crtc_x || plane_state->crtc_y)
+		return -EINVAL;
+
+	crtc_state = drm_atomic_get_existing_crtc_state(plane_state->state,
+							plane_state->crtc);
+	mode = &crtc_state->adjusted_mode;
+
+	clip.x2 = mode->hdisplay;
+	clip.y2 = mode->vdisplay;
+
+	ret = drm_atomic_helper_check_plane_state(plane_state, crtc_state,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  false, true);
+
+	if (ret)
+		return ret;
+
+	if (!plane_state->visible)
+		return -EINVAL;
+
+	/* force 'mode_changed' when fb pitches or format
+	 * changed, since the pitch and format related
+	 * registers configuration of LCDIF can not be
+	 * done when LCDIF is running and 'mode_changed'
+	 * means a full modeset is required.
+	 */
+	if (old_fb && likely(!crtc_state->mode_changed)) {
+		if (old_fb->pitches[0] != fb->pitches[0] ||
+		    old_fb->format->format != fb->format->format)
+			crtc_state->mode_changed = true;
+	}
+
+	return 0;
+}
+
+static void lcdif_plane_atomic_update(struct drm_plane *plane,
+				      struct drm_plane_state *old_state)
+{
+	struct lcdif_plane *lcdif_plane = to_lcdif_plane(plane);
+	struct lcdif_soc *lcdif = lcdif_plane->lcdif;
+	struct drm_plane_state *state = plane->state;
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *gem_obj = NULL;
+	u32 fb_addr, src_off, src_w, fb_idx, cpp, stride;
+	bool crop;
+
+	/* plane and crtc is disabling */
+	if (!fb)
+		return;
+
+	/* TODO: for now we just update the next buf addr
+	 * and the fb pixel format, since the mode set will
+	 * be done in crtc's ->enable() helper func
+	 */
+	switch (plane->type) {
+	case DRM_PLANE_TYPE_PRIMARY:
+		/* TODO: only support RGB */
+		gem_obj = drm_fb_cma_get_gem_obj(fb, 0);
+		src_off = (state->src_y >> 16) * fb->pitches[0] +
+			  (state->src_x >> 16) * fb->format->cpp[0];
+		fb_addr = gem_obj->paddr + fb->offsets[0] + src_off;
+		fb_idx  = 0;
+		break;
+	default:
+		/* TODO: add overlay later */
+		return;
+	}
+
+	lcdif_set_fb_addr(lcdif, fb_idx, fb_addr);
+
+	/* Config pixel format and horizontal cropping
+	 * if CRTC needs a full modeset which needs to
+	 * enable LCDIF to run at the end.
+	 */
+	if (unlikely(drm_atomic_crtc_needs_modeset(state->crtc->state))) {
+		if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+			lcdif_set_pix_fmt(lcdif, fb->format->format);
+
+		cpp = fb->format->cpp[0];
+		stride = DIV_ROUND_UP(fb->pitches[0], cpp);
+
+		src_w = state->src_w >> 16;
+		WARN_ON(src_w > fb->width);
+
+		crop  = src_w != stride ? true : false;
+		lcdif_set_fb_hcrop(lcdif, src_w, stride, crop);
+
+		lcdif_enable_controller(lcdif);
+	}
+}
+
+static void lcdif_plane_atomic_disable(struct drm_plane *plane,
+				       struct drm_plane_state *old_state)
+{
+	struct drm_plane_state *state = plane->state;
+	struct drm_framebuffer *fb = state->fb;
+
+	WARN_ON(fb);
+
+	/* TODO: CRTC disabled has been done by CRTC helper function,
+	 * so it seems that no more required, the only possible thing
+	 * is to set next buf addr to 0 in CRTC
+	 */
+}
+
+static const struct drm_plane_helper_funcs lcdif_plane_helper_funcs = {
+	.atomic_check	= lcdif_plane_atomic_check,
+	.atomic_update	= lcdif_plane_atomic_update,
+	.atomic_disable	= lcdif_plane_atomic_disable,
+};
+
+static void lcdif_plane_destroy(struct drm_plane *plane)
+{
+	struct lcdif_plane *lcdif_plane = to_lcdif_plane(plane);
+
+	drm_plane_cleanup(plane);
+	kfree(lcdif_plane);
+}
+
+static const struct drm_plane_funcs lcdif_plane_funcs = {
+	.update_plane	= drm_atomic_helper_update_plane,
+	.disable_plane	= drm_atomic_helper_disable_plane,
+	.destroy	= lcdif_plane_destroy,
+	.reset		= drm_atomic_helper_plane_reset,
+	.atomic_duplicate_state	= drm_atomic_helper_plane_duplicate_state,
+	.atomic_destroy_state	= drm_atomic_helper_plane_destroy_state,
+};
+
+struct lcdif_plane *lcdif_plane_init(struct drm_device *dev,
+				     struct lcdif_soc *lcdif,
+				     unsigned int possible_crtcs,
+				     enum drm_plane_type type,
+				     unsigned int zpos)
+{
+	int ret;
+	struct lcdif_plane *lcdif_plane;
+
+	/* lcdif doesn't support fb modifiers */
+	if (zpos || dev->mode_config.allow_fb_modifiers)
+		return ERR_PTR(-EINVAL);
+
+	lcdif_plane = kzalloc(sizeof(*lcdif_plane), GFP_KERNEL);
+	if (!lcdif_plane)
+		return ERR_PTR(-ENOMEM);
+
+	lcdif_plane->lcdif = lcdif;
+
+	drm_plane_helper_add(&lcdif_plane->base, &lcdif_plane_helper_funcs);
+	ret = drm_universal_plane_init(dev, &lcdif_plane->base, possible_crtcs,
+				       &lcdif_plane_funcs, lcdif_pixel_formats,
+				       ARRAY_SIZE(lcdif_pixel_formats), NULL,
+				       type, NULL);
+	if (ret) {
+		kfree(lcdif_plane);
+		return ERR_PTR(ret);
+	}
+
+	ret = drm_plane_create_zpos_immutable_property(&lcdif_plane->base, zpos);
+	if (ret) {
+		kfree(lcdif_plane);
+		return ERR_PTR(ret);
+	}
+
+	return lcdif_plane;
+}
+
+void lcdif_plane_deinit(struct drm_device *dev,
+			struct lcdif_plane *lcdif_plane)
+{
+	struct drm_plane *plane = &lcdif_plane->base;
+
+	if (plane->zpos_property)
+		drm_property_destroy(dev, plane->zpos_property);
+
+	lcdif_plane_destroy(plane);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdif/lcdif-plane.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdif/lcdif-plane.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __LCDIF_PLANE_H
+#define __LCDIF_PLANE_H
+
+#include <drm/drm_plane.h>
+#include <video/imx-lcdif.h>
+
+struct lcdif_plane {
+	struct drm_plane base;
+	struct lcdif_soc *lcdif;
+};
+
+#define to_lcdif_plane(plane) container_of(plane, struct lcdif_plane, base)
+
+struct lcdif_plane *lcdif_plane_init(struct drm_device *drm,
+				     struct lcdif_soc *lcdif,
+				     unsigned int possible_crtcs,
+				     enum drm_plane_type type,
+				     unsigned int zpos);
+
+void lcdif_plane_deinit(struct drm_device *dev,
+			struct lcdif_plane *lcdif_plane);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/Kconfig
@@ -0,0 +1,8 @@
+config DRM_IMX_LCDIFV3
+	tristate "i.MX LCDIFV3 controller DRM driver"
+	depends on DRM_IMX
+	depends on IMX_LCDIFV3_CORE
+	default y if DRM_IMX=y
+	default m if DRM_IMX=m
+	help
+	  enable i.MX LCDIFV3 controller DRM driver under DRM_IMX.
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/Makefile
@@ -0,0 +1,4 @@
+ccflags-y += -I $(srctree)/$(src)/../
+
+imx-lcdifv3-crtc-objs := lcdifv3-crtc.o lcdifv3-plane.o lcdifv3-kms.o
+obj-$(CONFIG_DRM_IMX_LCDIFV3) += imx-lcdifv3-crtc.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/lcdifv3-crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/lcdifv3-crtc.c
@@ -0,0 +1,406 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019,2020 NXP
+ */
+
+#include <linux/component.h>
+#include <linux/device.h>
+#include <linux/interrupt.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <drm/drmP.h>
+#include <drm/drm_atomic_helper.h>
+#include <video/imx-lcdifv3.h>
+#include <video/videomode.h>
+
+#include "imx-drm.h"
+#include "lcdifv3-plane.h"
+#include "lcdifv3-kms.h"
+
+struct lcdifv3_crtc {
+	struct device *dev;
+
+	struct drm_crtc base;
+	struct lcdifv3_plane *plane[2];
+
+	int vbl_irq;
+	u32 pix_fmt;		/* drm fourcc */
+};
+
+#define to_lcdifv3_crtc(crtc) container_of(crtc, struct lcdifv3_crtc, base)
+
+static void lcdifv3_crtc_reset(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *state;
+
+	if (crtc->state) {
+		__drm_atomic_helper_crtc_destroy_state(crtc->state);
+
+		state = to_imx_crtc_state(crtc->state);
+		kfree(state);
+		crtc->state = NULL;
+	}
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (!state)
+		return;
+
+	crtc->state = &state->base;
+	crtc->state->crtc = crtc;
+}
+
+static struct drm_crtc_state *lcdifv3_crtc_duplicate_state(struct drm_crtc *crtc)
+{
+	struct imx_crtc_state *state, *orig_state;
+
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
+	state = kzalloc(sizeof(*state), GFP_KERNEL);
+	if (!state)
+		return NULL;
+
+	__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+
+	orig_state = to_imx_crtc_state(crtc->state);
+	state->bus_format = orig_state->bus_format;
+	state->bus_flags = orig_state->bus_flags;
+	state->di_hsync_pin = orig_state->di_hsync_pin;
+	state->di_vsync_pin = orig_state->di_vsync_pin;
+
+	return &state->base;
+}
+
+static void lcdifv3_crtc_destroy_state(struct drm_crtc *crtc,
+				     struct drm_crtc_state *state)
+{
+	__drm_atomic_helper_crtc_destroy_state(state);
+	kfree(to_imx_crtc_state(state));
+}
+
+static int lcdifv3_crtc_atomic_check(struct drm_crtc *crtc,
+				   struct drm_crtc_state *state)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(state);
+
+	/* Don't check 'bus_format' when CRTC is
+	 * going to be disabled.
+	 */
+	if (!state->enable)
+		return 0;
+
+	/* For the commit that the CRTC is active
+	 * without planes attached to it should be
+	 * invalid.
+	 */
+	if (state->active && !state->plane_mask)
+		return -EINVAL;
+
+	/* check the requested bus format can be
+	 * supported by LCDIF CTRC or not
+	 */
+	switch (imx_crtc_state->bus_format) {
+	case MEDIA_BUS_FMT_RGB565_1X16:
+	case MEDIA_BUS_FMT_RGB666_1X18:
+	case MEDIA_BUS_FMT_RGB888_1X24:
+		break;
+	default:
+		dev_err(lcdifv3_crtc->dev,
+			"unsupported bus format: %#x\n",
+			imx_crtc_state->bus_format);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static void lcdifv3_crtc_atomic_begin(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	drm_crtc_vblank_on(crtc);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		WARN_ON(drm_crtc_vblank_get(crtc));
+		drm_crtc_arm_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+}
+
+static void lcdifv3_crtc_atomic_flush(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	/* kick shadow load for plane config */
+	lcdifv3_en_shadow_load(lcdifv3);
+}
+
+static void lcdifv3_crtc_atomic_enable(struct drm_crtc *crtc,
+				     struct drm_crtc_state *old_crtc_state)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+	struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc->state);
+	struct videomode vm;
+
+	drm_display_mode_to_videomode(mode, &vm);
+
+	if (imx_crtc_state->bus_flags & DRM_BUS_FLAG_DE_HIGH)
+		vm.flags |= DISPLAY_FLAGS_DE_HIGH;
+	else
+		vm.flags |= DISPLAY_FLAGS_DE_LOW;
+
+	if (imx_crtc_state->bus_flags & DRM_BUS_FLAG_PIXDATA_POSEDGE)
+		vm.flags |= DISPLAY_FLAGS_PIXDATA_POSEDGE;
+	else
+		vm.flags |= DISPLAY_FLAGS_PIXDATA_NEGEDGE;
+
+	pm_runtime_get_sync(lcdifv3_crtc->dev->parent);
+
+	lcdifv3_set_mode(lcdifv3, &vm);
+
+	/* config LCDIF output bus format */
+	lcdifv3_set_bus_fmt(lcdifv3, imx_crtc_state->bus_format);
+
+	/* run LCDIFv3 */
+	lcdifv3_enable_controller(lcdifv3);
+}
+
+static void lcdifv3_crtc_atomic_disable(struct drm_crtc *crtc,
+				      struct drm_crtc_state *old_crtc_state)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	spin_lock_irq(&crtc->dev->event_lock);
+	if (crtc->state->event) {
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+	}
+	spin_unlock_irq(&crtc->dev->event_lock);
+
+	drm_crtc_vblank_off(crtc);
+
+	lcdifv3_disable_controller(lcdifv3);
+
+	pm_runtime_put(lcdifv3_crtc->dev->parent);
+}
+
+static enum drm_mode_status lcdifv3_crtc_mode_valid(struct drm_crtc * crtc,
+						    const struct drm_display_mode *mode)
+{
+	u8 vic;
+	long rate;
+	const struct drm_display_mode *dmt;
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	/* check CEA-861 mode */
+	vic = drm_match_cea_mode(mode);
+	if (vic)
+		goto check_pix_clk;
+
+	/* check DMT mode */
+	dmt = drm_mode_find_dmt(crtc->dev, mode->hdisplay, mode->vdisplay,
+				drm_mode_vrefresh(mode), false);
+	if (dmt && drm_mode_equal(mode, dmt))
+		goto check_pix_clk;
+
+	return MODE_OK;
+
+check_pix_clk:
+	rate = lcdifv3_pix_clk_round_rate(lcdifv3, mode->clock * 1000);
+
+	if (rate <= 0 || rate != mode->clock * 1000)
+		return MODE_BAD;
+
+	return MODE_OK;
+}
+
+static const struct drm_crtc_helper_funcs lcdifv3_helper_funcs = {
+	.atomic_check	= lcdifv3_crtc_atomic_check,
+	.atomic_begin	= lcdifv3_crtc_atomic_begin,
+	.atomic_flush	= lcdifv3_crtc_atomic_flush,
+	.atomic_enable	= lcdifv3_crtc_atomic_enable,
+	.atomic_disable	= lcdifv3_crtc_atomic_disable,
+	.mode_valid	= lcdifv3_crtc_mode_valid,
+};
+
+static int lcdifv3_enable_vblank(struct drm_crtc *crtc)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	lcdifv3_vblank_irq_enable(lcdifv3);
+	enable_irq(lcdifv3_crtc->vbl_irq);
+
+	return 0;
+}
+
+static void lcdifv3_disable_vblank(struct drm_crtc *crtc)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = to_lcdifv3_crtc(crtc);
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	disable_irq_nosync(lcdifv3_crtc->vbl_irq);
+	lcdifv3_vblank_irq_disable(lcdifv3);
+}
+
+static const struct drm_crtc_funcs lcdifv3_crtc_funcs = {
+	.set_config = drm_atomic_helper_set_config,
+	.destroy    = drm_crtc_cleanup,
+	.page_flip  = drm_atomic_helper_page_flip,
+	.reset      = lcdifv3_crtc_reset,
+	.atomic_duplicate_state = lcdifv3_crtc_duplicate_state,
+	.atomic_destroy_state	= lcdifv3_crtc_destroy_state,
+	.enable_vblank	= lcdifv3_enable_vblank,
+	.disable_vblank = lcdifv3_disable_vblank,
+};
+
+static irqreturn_t lcdifv3_crtc_vblank_irq_handler(int irq, void *dev_id)
+{
+	struct lcdifv3_crtc *lcdifv3_crtc = dev_id;
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	drm_crtc_handle_vblank(&lcdifv3_crtc->base);
+
+	lcdifv3_vblank_irq_clear(lcdifv3);
+
+	return IRQ_HANDLED;
+}
+
+static int lcdifv3_crtc_init(struct lcdifv3_crtc *lcdifv3_crtc,
+			     struct lcdifv3_client_platformdata *pdata,
+			     struct drm_device *drm)
+{
+	int ret;
+	struct lcdifv3_plane *primary = lcdifv3_crtc->plane[0];
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(lcdifv3_crtc->dev->parent);
+
+	/* Primary plane
+	 * The 'possible_crtcs' of primary plane will be
+	 * recalculated during the 'crtc' initialization
+	 * later.
+	 */
+	primary = lcdifv3_plane_init(drm, lcdifv3, 0, DRM_PLANE_TYPE_PRIMARY, 0);
+	if (IS_ERR(primary))
+		return PTR_ERR(primary);
+	lcdifv3_crtc->plane[0] = primary;
+
+	/* TODO: Overlay plane */
+
+	lcdifv3_crtc->base.port = pdata->of_node;
+	drm_crtc_helper_add(&lcdifv3_crtc->base, &lcdifv3_helper_funcs);
+	ret = drm_crtc_init_with_planes(drm, &lcdifv3_crtc->base,
+			&lcdifv3_crtc->plane[0]->base, NULL,
+			&lcdifv3_crtc_funcs, NULL);
+	if (ret) {
+		dev_err(lcdifv3_crtc->dev, "failed to init crtc\n");
+		return ret;
+	}
+
+	lcdifv3_crtc->vbl_irq = lcdifv3_vblank_irq_get(lcdifv3);
+	WARN_ON(lcdifv3_crtc->vbl_irq < 0);
+
+	ret = devm_request_irq(lcdifv3_crtc->dev, lcdifv3_crtc->vbl_irq,
+			       lcdifv3_crtc_vblank_irq_handler, 0,
+			       dev_name(lcdifv3_crtc->dev), lcdifv3_crtc);
+	if (ret) {
+		dev_err(lcdifv3_crtc->dev,
+			"vblank irq request failed: %d\n", ret);
+		return ret;
+	}
+
+	disable_irq(lcdifv3_crtc->vbl_irq);
+
+	return 0;
+}
+
+static int lcdifv3_crtc_bind(struct device *dev, struct device *master,
+			   void *data)
+{
+	int ret;
+	struct drm_device *drm = data;
+	struct lcdifv3_crtc *lcdifv3_crtc = dev_get_drvdata(dev);
+	struct lcdifv3_client_platformdata *pdata = dev->platform_data;
+
+	dev_dbg(dev, "%s: lcdifv3 crtc bind begin\n", __func__);
+
+	ret = lcdifv3_crtc_init(lcdifv3_crtc, pdata, drm);
+	if (ret)
+		return ret;
+
+	if (!drm->mode_config.funcs)
+		drm->mode_config.funcs = &lcdifv3_drm_mode_config_funcs;
+
+	if (!drm->mode_config.helper_private)
+		drm->mode_config.helper_private = &lcdifv3_drm_mode_config_helpers;
+
+	/* limit the max width and height */
+	drm->mode_config.max_width  = 4096;
+	drm->mode_config.max_height = 4096;
+
+	dev_dbg(dev, "%s: lcdifv3 crtc bind end\n", __func__);
+
+	return 0;
+}
+
+static void lcdifv3_crtc_unbind(struct device *dev, struct device *master,
+			      void *data)
+{
+	/* No special to be done */
+}
+
+static const struct component_ops lcdifv3_crtc_ops = {
+	.bind   = lcdifv3_crtc_bind,
+	.unbind = lcdifv3_crtc_unbind,
+};
+
+static int lcdifv3_crtc_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct lcdifv3_crtc *lcdifv3_crtc;
+
+	dev_dbg(&pdev->dev, "%s: lcdifv3 crtc probe begin\n", __func__);
+
+	if (!dev->platform_data) {
+		dev_err(dev, "no platform data\n");
+		return -EINVAL;
+	}
+
+	lcdifv3_crtc = devm_kzalloc(dev, sizeof(*lcdifv3_crtc), GFP_KERNEL);
+	if (!lcdifv3_crtc)
+		return -ENOMEM;
+
+	lcdifv3_crtc->dev = dev;
+	dev_set_drvdata(dev, lcdifv3_crtc);
+
+	return component_add(dev, &lcdifv3_crtc_ops);
+}
+
+static int lcdifv3_crtc_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &lcdifv3_crtc_ops);
+
+	return 0;
+}
+
+static struct platform_driver lcdifv3_crtc_driver = {
+	.probe  = lcdifv3_crtc_probe,
+	.remove = lcdifv3_crtc_remove,
+	.driver = {
+		.name = "imx-lcdifv3-crtc",
+	},
+};
+module_platform_driver(lcdifv3_crtc_driver);
+
+MODULE_DESCRIPTION("NXP i.MX LCDIFV3 DRM CRTC driver");
+MODULE_AUTHOR("Fancy Fang <chen.fang@nxp.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:imx-lcdifv3-crtc");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/lcdifv3-kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/lcdifv3-kms.c
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_crtc.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+
+static void lcdifv3_drm_atomic_commit_tail(struct drm_atomic_state *state)
+{
+	struct drm_device *dev = state->dev;
+
+	drm_atomic_helper_commit_modeset_disables(dev, state);
+
+	drm_atomic_helper_commit_modeset_enables(dev, state);
+
+	drm_atomic_helper_commit_planes(dev, state, DRM_PLANE_COMMIT_ACTIVE_ONLY);
+
+	drm_atomic_helper_commit_hw_done(state);
+
+	drm_atomic_helper_wait_for_vblanks(dev, state);
+
+	drm_atomic_helper_cleanup_planes(dev, state);
+}
+
+const struct drm_mode_config_funcs lcdifv3_drm_mode_config_funcs = {
+	.fb_create     = drm_gem_fb_create,
+	.atomic_check  = drm_atomic_helper_check,
+	.atomic_commit = drm_atomic_helper_commit,
+};
+
+struct drm_mode_config_helper_funcs lcdifv3_drm_mode_config_helpers = {
+	.atomic_commit_tail = lcdifv3_drm_atomic_commit_tail,
+};
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/lcdifv3-kms.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/lcdifv3-kms.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __LCDIFV3_KMS_H
+#define __LCDIFV3_KMS_H
+
+extern const struct drm_mode_config_funcs lcdifv3_drm_mode_config_funcs;
+extern struct drm_mode_config_helper_funcs lcdifv3_drm_mode_config_helpers;
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.c
@@ -0,0 +1,202 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019,2020 NXP
+ */
+
+#include <linux/module.h>
+#include <drm/drmP.h>
+#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_fb_cma_helper.h>
+#include <drm/drm_framebuffer.h>
+#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_plane.h>
+#include <drm/drm_plane_helper.h>
+#include <drm/drm_rect.h>
+#include <video/imx-lcdifv3.h>
+
+#include "lcdifv3-plane.h"
+
+static uint32_t lcdifv3_pixel_formats[] = {
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_RGB565,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_ABGR8888,
+	DRM_FORMAT_ARGB1555,
+	DRM_FORMAT_XRGB1555,
+};
+
+static int lcdifv3_plane_atomic_check(struct drm_plane *plane,
+				      struct drm_plane_state *plane_state)
+{
+	int ret;
+	struct drm_plane_state *old_state = plane->state;
+	struct drm_framebuffer *fb = plane_state->fb;
+	struct drm_framebuffer *old_fb = old_state->fb;
+	struct drm_crtc_state *crtc_state;
+	struct drm_display_mode *mode;
+
+	/* 'fb' should also be NULL which has been checked in
+	 * the core sanity check function 'drm_atomic_plane_check()'
+	 */
+	if (!plane_state->crtc) {
+		WARN_ON(fb);
+		return 0;
+	}
+
+	/* lcdifv3 crtc can only display from (0,0) for each plane */
+	if (plane_state->crtc_x || plane_state->crtc_y)
+		return -EINVAL;
+
+	crtc_state = drm_atomic_get_existing_crtc_state(plane_state->state,
+							plane_state->crtc);
+	mode = &crtc_state->adjusted_mode;
+
+	ret = drm_atomic_helper_check_plane_state(plane_state, crtc_state,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  DRM_PLANE_HELPER_NO_SCALING,
+						  false, true);
+	if (ret)
+		return ret;
+
+	if (!plane_state->visible)
+		return -EINVAL;
+
+	/* force 'mode_changed' when fb pitches changed, since
+	 * the pitch related registers configuration of LCDIF
+	 * can not be done when LCDIF is running.
+	 */
+	if (old_fb && likely(!crtc_state->mode_changed)) {
+		if (old_fb->pitches[0] != fb->pitches[0])
+			crtc_state->mode_changed = true;
+	}
+
+	return 0;
+}
+
+static void lcdifv3_plane_atomic_update(struct drm_plane *plane,
+					struct drm_plane_state *old_state)
+{
+	struct lcdifv3_plane *lcdifv3_plane = to_lcdifv3_plane(plane);
+	struct lcdifv3_soc *lcdifv3 = lcdifv3_plane->lcdifv3;
+	struct drm_plane_state *state = plane->state;
+	struct drm_framebuffer *fb = state->fb;
+	struct drm_gem_cma_object *gem_obj = NULL;
+	u32 fb_addr, src_off, src_w, fb_idx, cpp, stride;
+	bool crop;
+
+	/* plane and crtc is disabling */
+	if (!fb)
+		return;
+
+	/* TODO: for now we just update the next buf addr
+	 * and the fb pixel format, since the mode set will
+	 * be done in crtc's ->enable() helper func
+	 */
+	if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+		lcdifv3_set_pix_fmt(lcdifv3, fb->format->format);
+
+	switch (plane->type) {
+	case DRM_PLANE_TYPE_PRIMARY:
+		/* TODO: only support RGB */
+		gem_obj = drm_fb_cma_get_gem_obj(fb, 0);
+		src_off = (state->src_y >> 16) * fb->pitches[0] +
+			  (state->src_x >> 16) * fb->format->cpp[0];
+		fb_addr = gem_obj->paddr + fb->offsets[0] + src_off;
+		fb_idx  = 0;
+		break;
+	default:
+		/* TODO: add overlay later */
+		return;
+	}
+
+	lcdifv3_set_fb_addr(lcdifv3, fb_idx, fb_addr);
+
+	/* config horizontal cropping if crtc needs modeset */
+	if (unlikely(drm_atomic_crtc_needs_modeset(state->crtc->state))) {
+		cpp = fb->format->cpp[0];
+		stride = DIV_ROUND_UP(fb->pitches[0], cpp);
+
+		src_w = state->src_w >> 16;
+		WARN_ON(src_w > fb->width);
+
+		crop  = src_w != stride ? true : false;
+		lcdifv3_set_fb_hcrop(lcdifv3, src_w, fb->pitches[0], crop);
+	}
+}
+
+static void lcdifv3_plane_atomic_disable(struct drm_plane *plane,
+				       struct drm_plane_state *old_state)
+{
+	struct drm_plane_state *state = plane->state;
+	struct drm_framebuffer *fb = state->fb;
+
+	WARN_ON(fb);
+
+	/* TODO: CRTC disabled has been done by CRTC helper function,
+	 * so it seems that no more required, the only possible thing
+	 * is to set next buf addr to 0 in CRTC
+	 */
+}
+
+static const struct drm_plane_helper_funcs lcdifv3_plane_helper_funcs = {
+	.atomic_check	= lcdifv3_plane_atomic_check,
+	.atomic_update	= lcdifv3_plane_atomic_update,
+	.atomic_disable	= lcdifv3_plane_atomic_disable,
+};
+
+static void lcdifv3_plane_destroy(struct drm_plane *plane)
+{
+	struct lcdifv3_plane *lcdifv3_plane = to_lcdifv3_plane(plane);
+
+	drm_plane_cleanup(plane);
+	kfree(lcdifv3_plane);
+}
+
+static const struct drm_plane_funcs lcdifv3_plane_funcs = {
+	.update_plane	= drm_atomic_helper_update_plane,
+	.disable_plane	= drm_atomic_helper_disable_plane,
+	.destroy	= lcdifv3_plane_destroy,
+	.reset		= drm_atomic_helper_plane_reset,
+	.atomic_duplicate_state	= drm_atomic_helper_plane_duplicate_state,
+	.atomic_destroy_state	= drm_atomic_helper_plane_destroy_state,
+};
+
+struct lcdifv3_plane *lcdifv3_plane_init(struct drm_device *dev,
+				     struct lcdifv3_soc *lcdifv3,
+				     unsigned int possible_crtcs,
+				     enum drm_plane_type type,
+				     unsigned int zpos)
+{
+	int ret;
+	struct lcdifv3_plane *lcdifv3_plane;
+
+	/* lcdifv3 doesn't support fb modifiers */
+	if (zpos || dev->mode_config.allow_fb_modifiers)
+		return ERR_PTR(-EINVAL);
+
+	lcdifv3_plane = kzalloc(sizeof(*lcdifv3_plane), GFP_KERNEL);
+	if (!lcdifv3_plane)
+		return ERR_PTR(-ENOMEM);
+
+	lcdifv3_plane->lcdifv3 = lcdifv3;
+
+	drm_plane_helper_add(&lcdifv3_plane->base, &lcdifv3_plane_helper_funcs);
+	ret = drm_universal_plane_init(dev, &lcdifv3_plane->base, possible_crtcs,
+				       &lcdifv3_plane_funcs, lcdifv3_pixel_formats,
+				       ARRAY_SIZE(lcdifv3_pixel_formats), NULL,
+				       type, NULL);
+	if (ret) {
+		kfree(lcdifv3_plane);
+		return ERR_PTR(ret);
+	}
+
+	ret = drm_plane_create_zpos_immutable_property(&lcdifv3_plane->base, zpos);
+	if (ret) {
+		kfree(lcdifv3_plane);
+		return ERR_PTR(ret);
+	}
+
+	return lcdifv3_plane;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/lcdifv3/lcdifv3-plane.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019,2020 NXP
+ */
+
+#ifndef __LCDIFV3_PLANE_H
+#define __LCDIFV3_PLANE_H
+
+#include <drm/drm_plane.h>
+#include <video/imx-lcdifv3.h>
+
+struct lcdifv3_plane {
+	struct drm_plane base;
+	struct lcdifv3_soc *lcdifv3;
+};
+
+#define to_lcdifv3_plane(plane) container_of(plane, struct lcdifv3_plane, base)
+
+struct lcdifv3_plane *lcdifv3_plane_init(struct drm_device *drm,
+				     struct lcdifv3_soc *lcdifv3,
+				     unsigned int possible_crtcs,
+				     enum drm_plane_type type,
+				     unsigned int zpos);
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/Kconfig
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config DRM_IMX_CDNS_MHDP
+	tristate "NXP i.MX MX8 DRM HDMI/DP"
+	select DRM_CDNS_MHDP
+	select DRM_CDNS_DP
+	select DRM_CDNS_HDMI
+	select DRM_CDNS_AUDIO
+	depends on DRM_IMX
+	help
+	  Choose this if you want to use HDMI on i.MX8.
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/Makefile
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-2.0
+
+cdns_mhdp_imx-objs := cdns-mhdp-imxdrv.o cdns-mhdp-dp-phy.o \
+		cdns-mhdp-hdmi-phy.o cdns-mhdp-imx8qm.o cdns-mhdp-ls1028a.o
+obj-$(CONFIG_DRM_IMX_CDNS_MHDP) += cdns_mhdp_imx.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-dp-phy.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-dp-phy.c
@@ -0,0 +1,539 @@
+/*
+ * Cadence Display Port Interface (DP) PHY driver
+ *
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ */
+#include <linux/clk.h>
+#include <linux/kernel.h>
+#include <drm/drm_dp_helper.h>
+#include <drm/bridge/cdns-mhdp.h>
+#include "cdns-mhdp-phy.h"
+
+enum dp_link_rate {
+	RATE_1_6 = 162000,
+	RATE_2_1 = 216000,
+	RATE_2_4 = 243000,
+	RATE_2_7 = 270000,
+	RATE_3_2 = 324000,
+	RATE_4_3 = 432000,
+	RATE_5_4 = 540000,
+	RATE_8_1 = 810000,
+};
+
+struct phy_pll_reg {
+	u16 val[7];
+	u32 addr;
+};
+
+static const struct phy_pll_reg phy_pll_27m_cfg[] = {
+	/*  1.62    2.16    2.43    2.7     3.24    4.32    5.4      register address */
+	{{ 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E }, CMN_PLL0_VCOCAL_INIT_TMR },
+	{{ 0x001B, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B }, CMN_PLL0_VCOCAL_ITER_TMR },
+	{{ 0x30B9, 0x3087, 0x3096, 0x30B4, 0x30B9, 0x3087, 0x30B4 }, CMN_PLL0_VCOCAL_START },
+	{{ 0x0077, 0x009F, 0x00B3, 0x00C7, 0x0077, 0x009F, 0x00C7 }, CMN_PLL0_INTDIV },
+	{{ 0xF9DA, 0xF7CD, 0xF6C7, 0xF5C1, 0xF9DA, 0xF7CD, 0xF5C1 }, CMN_PLL0_FRACDIV },
+	{{ 0x001E, 0x0028, 0x002D, 0x0032, 0x001E, 0x0028, 0x0032 }, CMN_PLL0_HIGH_THR },
+	{{ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020 }, CMN_PLL0_DSM_DIAG },
+	{{ 0x0000, 0x1000, 0x1000, 0x1000, 0x0000, 0x1000, 0x1000 }, CMN_PLLSM0_USER_DEF_CTRL },
+	{{ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, CMN_DIAG_PLL0_OVRD },
+	{{ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, CMN_DIAG_PLL0_FBH_OVRD },
+	{{ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, CMN_DIAG_PLL0_FBL_OVRD },
+	{{ 0x0006, 0x0007, 0x0007, 0x0007, 0x0006, 0x0007, 0x0007 }, CMN_DIAG_PLL0_V2I_TUNE },
+	{{ 0x0043, 0x0043, 0x0043, 0x0042, 0x0043, 0x0043, 0x0042 }, CMN_DIAG_PLL0_CP_TUNE },
+	{{ 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008 }, CMN_DIAG_PLL0_LF_PROG },
+	{{ 0x0100, 0x0001, 0x0001, 0x0001, 0x0100, 0x0001, 0x0001 }, CMN_DIAG_PLL0_PTATIS_TUNE1 },
+	{{ 0x0007, 0x0001, 0x0001, 0x0001, 0x0007, 0x0001, 0x0001 }, CMN_DIAG_PLL0_PTATIS_TUNE2 },
+	{{ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020 }, CMN_DIAG_PLL0_TEST_MODE},
+	{{ 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016 }, CMN_PSM_CLK_CTRL }
+};
+
+static const struct phy_pll_reg phy_pll_24m_cfg[] = {
+	/*  1.62    2.16    2.43    2.7     3.24    4.32    5.4      register address */
+	{{ 0x00F0, 0x00F0, 0x00F0, 0x00F0, 0x00F0, 0x00F0, 0x00F0 }, CMN_PLL0_VCOCAL_INIT_TMR },
+	{{ 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018 }, CMN_PLL0_VCOCAL_ITER_TMR },
+	{{ 0x3061, 0x3092, 0x30B3, 0x30D0, 0x3061, 0x3092, 0x30D0 }, CMN_PLL0_VCOCAL_START },
+	{{ 0x0086, 0x00B3, 0x00CA, 0x00E0, 0x0086, 0x00B3, 0x00E0 }, CMN_PLL0_INTDIV },
+	{{ 0xF917, 0xF6C7, 0x75A1, 0xF479, 0xF917, 0xF6C7, 0xF479 }, CMN_PLL0_FRACDIV },
+	{{ 0x0022, 0x002D, 0x0033, 0x0038, 0x0022, 0x002D, 0x0038 }, CMN_PLL0_HIGH_THR },
+	{{ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020 }, CMN_PLL0_DSM_DIAG },
+	{{ 0x0000, 0x1000, 0x1000, 0x1000, 0x0000, 0x1000, 0x1000 }, CMN_PLLSM0_USER_DEF_CTRL },
+	{{ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, CMN_DIAG_PLL0_OVRD },
+	{{ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, CMN_DIAG_PLL0_FBH_OVRD },
+	{{ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, CMN_DIAG_PLL0_FBL_OVRD },
+	{{ 0x0006, 0x0007, 0x0007, 0x0007, 0x0006, 0x0007, 0x0007 }, CMN_DIAG_PLL0_V2I_TUNE },
+	{{ 0x0026, 0x0029, 0x0029, 0x0029, 0x0026, 0x0029, 0x0029 }, CMN_DIAG_PLL0_CP_TUNE },
+	{{ 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008 }, CMN_DIAG_PLL0_LF_PROG },
+	{{ 0x008C, 0x008C, 0x008C, 0x008C, 0x008C, 0x008C, 0x008C }, CMN_DIAG_PLL0_PTATIS_TUNE1 },
+	{{ 0x002E, 0x002E, 0x002E, 0x002E, 0x002E, 0x002E, 0x002E }, CMN_DIAG_PLL0_PTATIS_TUNE2 },
+	{{ 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022 }, CMN_DIAG_PLL0_TEST_MODE},
+	{{ 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016 }, CMN_PSM_CLK_CTRL }
+};
+
+static int link_rate_index(u32 rate)
+{
+	switch (rate) {
+	case RATE_1_6:
+		return 0;
+	case RATE_2_1:
+		return 1;
+	case RATE_2_4:
+		return 2;
+	case RATE_2_7:
+		return 3;
+	case RATE_3_2:
+		return 4;
+	case RATE_4_3:
+		return 5;
+	case RATE_5_4:
+		return 6;
+	default:
+		return -1;
+	}
+}
+
+static void dp_aux_cfg(struct cdns_mhdp_device *mhdp)
+{
+	/* Power up Aux */
+	cdns_phy_reg_write(mhdp, TXDA_CYA_AUXDA_CYA, 1);
+
+	cdns_phy_reg_write(mhdp, TX_DIG_CTRL_REG_1, 0x3);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_DIG_CTRL_REG_2, 36);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x0100);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x0300);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_3, 0x0000);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0x2008);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0x2018);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0xA018);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x030C);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_5, 0x0000);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_4, 0x1001);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0xA098);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0xA198);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x030d);
+	ndelay(150);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x030f);
+}
+
+/* PMA common configuration for 24MHz */
+static void dp_phy_pma_cmn_cfg_24mhz(struct cdns_mhdp_device *mhdp)
+{
+	int k;
+	u32 num_lanes = 4;
+	u16 val;
+
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val &= 0xFFF7;
+	val |= 0x0008;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	for (k = 0; k < num_lanes; k++) {
+		/* Transceiver control and diagnostic registers */
+		cdns_phy_reg_write(mhdp, XCVR_DIAG_LANE_FCM_EN_MGN_TMR | (k << 9), 0x0090);
+		/* Transmitter receiver detect registers */
+		cdns_phy_reg_write(mhdp, TX_RCVDET_EN_TMR | (k << 9), 0x0960);
+		cdns_phy_reg_write(mhdp, TX_RCVDET_ST_TMR | (k << 9), 0x0030);
+	}
+}
+
+/* Valid for 24 MHz only */
+static void dp_phy_pma_cmn_pll0_24mhz(struct cdns_mhdp_device *mhdp)
+{
+	u32 num_lanes = 4;
+	u32 link_rate = mhdp->dp.rate;
+	u16 val;
+	int index, i, k;
+
+	/*
+	 * PLL reference clock source select
+	 * for single ended reference clock val |= 0x0030;
+	 * for differential clock  val |= 0x0000;
+	 */
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val = val & 0xFF8F;
+	val = val | 0x0030;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	/* DP PLL data rate 0/1 clock divider value */
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val &= 0x00FF;
+	if (link_rate <= RATE_2_7)
+		val |= 0x2400;
+	else
+		val |= 0x1200;
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+
+	/* High speed clock 0/1 div */
+	val = cdns_phy_reg_read(mhdp, CMN_DIAG_HSCLK_SEL);
+	val &= 0xFFCC;
+	if (link_rate <= RATE_2_7)
+		val |= 0x0011;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_HSCLK_SEL, val);
+
+	for (k = 0; k < num_lanes; k = k + 1) {
+		val = cdns_phy_reg_read(mhdp, (XCVR_DIAG_HSCLK_SEL | (k << 9)));
+		val &= 0xCFFF;
+		if (link_rate <= RATE_2_7)
+			val |= 0x1000;
+		cdns_phy_reg_write(mhdp, (XCVR_DIAG_HSCLK_SEL | (k << 9)), val);
+	}
+
+	/* DP PHY PLL 24MHz configuration */
+	index = link_rate_index(link_rate);
+	if (index < 0) {
+		dev_err(mhdp->dev, "wrong link rate index\n");
+		return;
+	}
+	for (i = 0; i < ARRAY_SIZE(phy_pll_24m_cfg); i++)
+		cdns_phy_reg_write(mhdp, phy_pll_24m_cfg[i].addr, phy_pll_24m_cfg[i].val[index]);
+
+	/* Transceiver control and diagnostic registers */
+	for (k = 0; k < num_lanes; k = k + 1) {
+		val = cdns_phy_reg_read(mhdp, (XCVR_DIAG_PLLDRC_CTRL | (k << 9)));
+		val &= 0x8FFF;
+		if (link_rate <= RATE_2_7)
+			val |= 0x2000;
+		else
+			val |= 0x1000;
+		cdns_phy_reg_write(mhdp, (XCVR_DIAG_PLLDRC_CTRL | (k << 9)), val);
+	}
+
+	for (k = 0; k < num_lanes; k = k + 1) {
+		cdns_phy_reg_write(mhdp, (XCVR_PSM_RCTRL | (k << 9)), 0xBEFC);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A0 | (k << 9)), 0x6799);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A1 | (k << 9)), 0x6798);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A2 | (k << 9)), 0x0098);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A3 | (k << 9)), 0x0098);
+	}
+}
+
+/* PMA common configuration for 27MHz */
+static void dp_phy_pma_cmn_cfg_27mhz(struct cdns_mhdp_device *mhdp)
+{
+	u32 num_lanes = 4;
+	u16 val;
+	int k;
+
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val &= 0xFFF7;
+	val |= 0x0008;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	/* Startup state machine registers */
+	cdns_phy_reg_write(mhdp, CMN_SSM_BIAS_TMR, 0x0087);
+	cdns_phy_reg_write(mhdp, CMN_PLLSM0_PLLEN_TMR, 0x001B);
+	cdns_phy_reg_write(mhdp, CMN_PLLSM0_PLLPRE_TMR, 0x0036);
+	cdns_phy_reg_write(mhdp, CMN_PLLSM0_PLLVREF_TMR, 0x001B);
+	cdns_phy_reg_write(mhdp, CMN_PLLSM0_PLLLOCK_TMR, 0x006C);
+
+	/* Current calibration registers */
+	cdns_phy_reg_write(mhdp, CMN_ICAL_INIT_TMR, 0x0044);
+	cdns_phy_reg_write(mhdp, CMN_ICAL_ITER_TMR, 0x0006);
+	cdns_phy_reg_write(mhdp, CMN_ICAL_ADJ_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_ICAL_ADJ_ITER_TMR, 0x0006);
+
+	/* Resistor calibration registers */
+	cdns_phy_reg_write(mhdp, CMN_TXPUCAL_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_TXPUCAL_ITER_TMR, 0x0006);
+	cdns_phy_reg_write(mhdp, CMN_TXPU_ADJ_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_TXPU_ADJ_ITER_TMR, 0x0006);
+	cdns_phy_reg_write(mhdp, CMN_TXPDCAL_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_TXPDCAL_ITER_TMR, 0x0006);
+	cdns_phy_reg_write(mhdp, CMN_TXPD_ADJ_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_TXPD_ADJ_ITER_TMR, 0x0006);
+	cdns_phy_reg_write(mhdp, CMN_RXCAL_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_RXCAL_ITER_TMR, 0x0006);
+	cdns_phy_reg_write(mhdp, CMN_RX_ADJ_INIT_TMR, 0x0022);
+	cdns_phy_reg_write(mhdp, CMN_RX_ADJ_ITER_TMR, 0x0006);
+
+	for (k = 0; k < num_lanes; k = k + 1) {
+		/* Power state machine registers */
+		cdns_phy_reg_write(mhdp, XCVR_PSM_CAL_TMR  | (k << 9), 0x016D);
+		cdns_phy_reg_write(mhdp, XCVR_PSM_A0IN_TMR | (k << 9), 0x016D);
+		/* Transceiver control and diagnostic registers */
+		cdns_phy_reg_write(mhdp, XCVR_DIAG_LANE_FCM_EN_MGN_TMR | (k << 9), 0x00A2);
+		cdns_phy_reg_write(mhdp, TX_DIAG_BGREF_PREDRV_DELAY    | (k << 9), 0x0097);
+		/* Transmitter receiver detect registers */
+		cdns_phy_reg_write(mhdp, TX_RCVDET_EN_TMR | (k << 9), 0x0A8C);
+		cdns_phy_reg_write(mhdp, TX_RCVDET_ST_TMR | (k << 9), 0x0036);
+	}
+}
+
+static void dp_phy_pma_cmn_pll0_27mhz(struct cdns_mhdp_device *mhdp)
+{
+	u32 num_lanes = 4;
+	u32 link_rate = mhdp->dp.rate;
+	u16 val;
+	int index, i, k;
+
+	/*
+	 * PLL reference clock source select
+	 * for single ended reference clock val |= 0x0030;
+	 * for differential clock  val |= 0x0000;
+	 */
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val &= 0xFF8F;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	/* for differential clock on the refclk_p and refclk_m off chip pins:
+	 * CMN_DIAG_ACYA[8]=1'b1
+	 */
+	cdns_phy_reg_write(mhdp, CMN_DIAG_ACYA, 0x0100);
+
+	/* DP PLL data rate 0/1 clock divider value */
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val &= 0x00FF;
+	if (link_rate <= RATE_2_7)
+		val |= 0x2400;
+	else
+		val |= 0x1200;
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+
+	/* High speed clock 0/1 div */
+	val = cdns_phy_reg_read(mhdp, CMN_DIAG_HSCLK_SEL);
+	val &= 0xFFCC;
+	if (link_rate <= RATE_2_7)
+		val |= 0x0011;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_HSCLK_SEL, val);
+
+	for (k = 0; k < num_lanes; k++) {
+		val = cdns_phy_reg_read(mhdp, (XCVR_DIAG_HSCLK_SEL | (k << 9)));
+		val = val & 0xCFFF;
+		if (link_rate <= RATE_2_7)
+			val |= 0x1000;
+		cdns_phy_reg_write(mhdp, (XCVR_DIAG_HSCLK_SEL | (k << 9)), val);
+	}
+
+	/* DP PHY PLL 27MHz configuration */
+	index = link_rate_index(link_rate);
+	if (index < 0) {
+		dev_err(mhdp->dev, "wrong link rate index\n");
+		return;
+	}
+	for (i = 0; i < ARRAY_SIZE(phy_pll_27m_cfg); i++)
+		cdns_phy_reg_write(mhdp, phy_pll_27m_cfg[i].addr, phy_pll_27m_cfg[i].val[index]);
+
+	/* Transceiver control and diagnostic registers */
+	for (k = 0; k < num_lanes; k++) {
+		val = cdns_phy_reg_read(mhdp, (XCVR_DIAG_PLLDRC_CTRL | (k << 9)));
+		val = val & 0x8FFF;
+		if (link_rate <= RATE_2_7)
+			val |= 0x2000;
+		else
+			val |= 0x1000;
+		cdns_phy_reg_write(mhdp, (XCVR_DIAG_PLLDRC_CTRL | (k << 9)), val);
+	}
+
+	for (k = 0; k < num_lanes; k = k + 1) {
+		/* Power state machine registers */
+		cdns_phy_reg_write(mhdp, (XCVR_PSM_RCTRL | (k << 9)),  0xBEFC);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A0 | (k << 9)), 0x6799);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A1 | (k << 9)), 0x6798);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A2 | (k << 9)), 0x0098);
+		cdns_phy_reg_write(mhdp, (TX_PSC_A3 | (k << 9)), 0x0098);
+		/* Receiver calibration power state definition register */
+		val = cdns_phy_reg_read(mhdp, RX_PSC_CAL | (k << 9));
+		val &= 0xFFBB;
+		cdns_phy_reg_write(mhdp, (RX_PSC_CAL | (k << 9)), val);
+		val = cdns_phy_reg_read(mhdp, RX_PSC_A0  | (k << 9));
+		val &= 0xFFBB;
+		cdns_phy_reg_write(mhdp, (RX_PSC_A0  | (k << 9)), val);
+	}
+}
+
+static void dp_phy_power_down(struct cdns_mhdp_device *mhdp)
+{
+	u16 val;
+	int i;
+
+	if (!mhdp->power_up)
+		return;
+
+	/* Place the PHY lanes in the A3 power state. */
+	cdns_phy_reg_write(mhdp, PHY_HDP_MODE_CTRL, 0x8);
+	/* Wait for Power State A3 Ack */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_MODE_CTRL);
+		if (val & (1 << 7))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait A3 Ack failed\n");
+		return;
+	}
+
+	/* Disable HDP PLL’s data rate and full rate clocks out of PMA. */
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val &= ~(1 << 2);
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+	/* Wait for PLL clock gate ACK */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+		if (!(val & (1 << 3)))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait PLL clock gate Ack failed\n");
+		return;
+	}
+
+	/* Disable HDP PLL’s for high speed clocks */
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val &= ~(1 << 0);
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+	/* Wait for PLL disable ACK */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+		if (!(val & (1 << 1)))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait PLL disable Ack failed\n");
+		return;
+	}
+}
+
+static int dp_phy_power_up(struct cdns_mhdp_device *mhdp)
+{
+	u32 val, i;
+
+	/* Enable HDP PLL’s for high speed clocks */
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val |= (1 << 0);
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+	/* Wait for PLL ready ACK */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+		if (val & (1 << 1))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait PLL Ack failed\n");
+		return -1;
+	}
+
+	/* Enable HDP PLL’s data rate and full rate clocks out of PMA. */
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val |= (1 << 2);
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+	/* Wait for PLL clock enable ACK */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+		if (val & (1 << 3))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait PLL clock enable ACk failed\n");
+		return -1;
+	}
+
+	/* Configure PHY in A2 Mode */
+	cdns_phy_reg_write(mhdp, PHY_HDP_MODE_CTRL, 0x0004);
+	/* Wait for Power State A2 Ack */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_MODE_CTRL);
+		if (val & (1 << 6))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait A2 Ack failed\n");
+		return -1;
+	}
+
+	/* Configure PHY in A0 mode (PHY must be in the A0 power
+	 * state in order to transmit data)
+	 */
+	cdns_phy_reg_write(mhdp, PHY_HDP_MODE_CTRL, 0x0101);
+
+	/* Wait for Power State A0 Ack */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_MODE_CTRL);
+		if (val & (1 << 4))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait A0 Ack failed\n");
+		return -1;
+	}
+
+	mhdp->power_up = true;
+
+	return 0;
+}
+
+int cdns_dp_phy_set_imx8mq(struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	/* Disable phy clock if PHY in power up state */
+	dp_phy_power_down(mhdp);
+
+	dp_phy_pma_cmn_cfg_27mhz(mhdp);
+
+	dp_phy_pma_cmn_pll0_27mhz(mhdp);
+
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_0, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_1, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_2, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_3, 1);
+
+	/* PHY power up */
+	ret = dp_phy_power_up(mhdp);
+	if (ret < 0)
+		return ret;
+
+	dp_aux_cfg(mhdp);
+
+	return ret;
+}
+
+int cdns_dp_phy_set_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	int ret;
+
+	/* Disable phy clock if PHY in power up state */
+	dp_phy_power_down(mhdp);
+
+	dp_phy_pma_cmn_cfg_24mhz(mhdp);
+
+	dp_phy_pma_cmn_pll0_24mhz(mhdp);
+
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_0, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_1, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_2, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_3, 1);
+
+	/* PHY power up */
+	ret = dp_phy_power_up(mhdp);
+	if (ret < 0)
+		return ret;
+
+	dp_aux_cfg(mhdp);
+
+	return true;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-hdmi-phy.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-hdmi-phy.c
@@ -0,0 +1,764 @@
+/*
+ * Cadence High-Definition Multimedia Interface (HDMI) driver
+ *
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ */
+#include <drm/drm_of.h>
+#include <drm/drm_vblank.h>
+#include <drm/drm_print.h>
+#include <drm/drm_crtc_helper.h>
+#include <linux/io.h>
+#include <drm/drm_edid.h>
+#include <drm/drm_encoder_slave.h>
+#include <drm/drm_atomic.h>
+#include <linux/io.h>
+
+#include <drm/bridge/cdns-mhdp.h>
+#include "cdns-mhdp-phy.h"
+
+/* HDMI TX clock control settings */
+struct hdmi_ctrl {
+	u32 pixel_clk_freq_min;
+	u32 pixel_clk_freq_max;
+	u32 feedback_factor;
+	u32 data_range_kbps_min;
+	u32 data_range_kbps_max;
+	u32 cmnda_pll0_ip_div;
+	u32 cmn_ref_clk_dig_div;
+	u32 ref_clk_divider_scaler;
+	u32 pll_fb_div_total;
+	u32 cmnda_pll0_fb_div_low;
+	u32 cmnda_pll0_fb_div_high;
+	u32 pixel_div_total;
+	u32 cmnda_pll0_pxdiv_low;
+	u32 cmnda_pll0_pxdiv_high;
+	u32 vco_freq_min;
+	u32 vco_freq_max;
+	u32 vco_ring_select;
+	u32 cmnda_hs_clk_0_sel;
+	u32 cmnda_hs_clk_1_sel;
+	u32 hsclk_div_at_xcvr;
+	u32 hsclk_div_tx_sub_rate;
+	u32 cmnda_pll0_hs_sym_div_sel;
+	u32 cmnda_pll0_clk_freq_min;
+	u32 cmnda_pll0_clk_freq_max;
+};
+
+/* HDMI TX clock control settings, pixel clock is output */
+static const struct hdmi_ctrl imx8mq_ctrl_table[] = {
+/*Minclk  Maxclk Fdbak  DR_min   DR_max  ip_d  dig  DS    Totl */
+{ 27000,  27000, 1000,  270000,  270000, 0x03, 0x1, 0x1,  240, 0x0BC, 0x030,  80, 0x026, 0x026, 2160000, 2160000, 0, 2, 2, 2, 4, 0x3,  27000,  27000},
+{ 27000,  27000, 1250,  337500,  337500, 0x03, 0x1, 0x1,  300, 0x0EC, 0x03C, 100, 0x030, 0x030, 2700000, 2700000, 0, 2, 2, 2, 4, 0x3,  33750,  33750},
+{ 27000,  27000, 1500,  405000,  405000, 0x03, 0x1, 0x1,  360, 0x11C, 0x048, 120, 0x03A, 0x03A, 3240000, 3240000, 0, 2, 2, 2, 4, 0x3,  40500,  40500},
+{ 27000,  27000, 2000,  540000,  540000, 0x03, 0x1, 0x1,  240, 0x0BC, 0x030,  80, 0x026, 0x026, 2160000, 2160000, 0, 2, 2, 2, 4, 0x2,  54000,  54000},
+{ 54000,  54000, 1000,  540000,  540000, 0x03, 0x1, 0x1,  480, 0x17C, 0x060,  80, 0x026, 0x026, 4320000, 4320000, 1, 2, 2, 2, 4, 0x3,  54000,  54000},
+{ 54000,  54000, 1250,  675000,  675000, 0x04, 0x1, 0x1,  400, 0x13C, 0x050,  50, 0x017, 0x017, 2700000, 2700000, 0, 1, 1, 2, 4, 0x2,  67500,  67500},
+{ 54000,  54000, 1500,  810000,  810000, 0x04, 0x1, 0x1,  480, 0x17C, 0x060,  60, 0x01C, 0x01C, 3240000, 3240000, 0, 2, 2, 2, 2, 0x2,  81000,  81000},
+{ 54000,  54000, 2000, 1080000, 1080000, 0x03, 0x1, 0x1,  240, 0x0BC, 0x030,  40, 0x012, 0x012, 2160000, 2160000, 0, 2, 2, 2, 1, 0x1, 108000, 108000},
+{ 74250,  74250, 1000,  742500,  742500, 0x03, 0x1, 0x1,  660, 0x20C, 0x084,  80, 0x026, 0x026, 5940000, 5940000, 1, 2, 2, 2, 4, 0x3,  74250,  74250},
+{ 74250,  74250, 1250,  928125,  928125, 0x04, 0x1, 0x1,  550, 0x1B4, 0x06E,  50, 0x017, 0x017, 3712500, 3712500, 1, 1, 1, 2, 4, 0x2,  92812,  92812},
+{ 74250,  74250, 1500, 1113750, 1113750, 0x04, 0x1, 0x1,  660, 0x20C, 0x084,  60, 0x01C, 0x01C, 4455000, 4455000, 1, 2, 2, 2, 2, 0x2, 111375, 111375},
+{ 74250,  74250, 2000, 1485000, 1485000, 0x03, 0x1, 0x1,  330, 0x104, 0x042,  40, 0x012, 0x012, 2970000, 2970000, 0, 2, 2, 2, 1, 0x1, 148500, 148500},
+{ 99000,  99000, 1000,  990000,  990000, 0x03, 0x1, 0x1,  440, 0x15C, 0x058,  40, 0x012, 0x012, 3960000, 3960000, 1, 2, 2, 2, 2, 0x2,  99000,  99000},
+{ 99000,  99000, 1250, 1237500, 1237500, 0x03, 0x1, 0x1,  275, 0x0D8, 0x037,  25, 0x00B, 0x00A, 2475000, 2475000, 0, 1, 1, 2, 2, 0x1, 123750, 123750},
+{ 99000,  99000, 1500, 1485000, 1485000, 0x03, 0x1, 0x1,  330, 0x104, 0x042,  30, 0x00D, 0x00D, 2970000, 2970000, 0, 2, 2, 2, 1, 0x1, 148500, 148500},
+{ 99000,  99000, 2000, 1980000, 1980000, 0x03, 0x1, 0x1,  440, 0x15C, 0x058,  40, 0x012, 0x012, 3960000, 3960000, 1, 2, 2, 2, 1, 0x1, 198000, 198000},
+{148500, 148500, 1000, 1485000, 1485000, 0x03, 0x1, 0x1,  660, 0x20C, 0x084,  40, 0x012, 0x012, 5940000, 5940000, 1, 2, 2, 2, 2, 0x2, 148500, 148500},
+{148500, 148500, 1250, 1856250, 1856250, 0x04, 0x1, 0x1,  550, 0x1B4, 0x06E,  25, 0x00B, 0x00A, 3712500, 3712500, 1, 1, 1, 2, 2, 0x1, 185625, 185625},
+{148500, 148500, 1500, 2227500, 2227500, 0x03, 0x1, 0x1,  495, 0x188, 0x063,  30, 0x00D, 0x00D, 4455000, 4455000, 1, 1, 1, 2, 2, 0x1, 222750, 222750},
+{148500, 148500, 2000, 2970000, 2970000, 0x03, 0x1, 0x1,  660, 0x20C, 0x084,  40, 0x012, 0x012, 5940000, 5940000, 1, 2, 2, 2, 1, 0x1, 297000, 297000},
+{198000, 198000, 1000, 1980000, 1980000, 0x03, 0x1, 0x1,  220, 0x0AC, 0x02C,  10, 0x003, 0x003, 1980000, 1980000, 0, 1, 1, 2, 1, 0x0, 198000, 198000},
+{198000, 198000, 1250, 2475000, 2475000, 0x03, 0x1, 0x1,  550, 0x1B4, 0x06E,  25, 0x00B, 0x00A, 4950000, 4950000, 1, 1, 1, 2, 2, 0x1, 247500, 247500},
+{198000, 198000, 1500, 2970000, 2970000, 0x03, 0x1, 0x1,  330, 0x104, 0x042,  15, 0x006, 0x005, 2970000, 2970000, 0, 1, 1, 2, 1, 0x0, 297000, 297000},
+{198000, 198000, 2000, 3960000, 3960000, 0x03, 0x1, 0x1,  440, 0x15C, 0x058,  20, 0x008, 0x008, 3960000, 3960000, 1, 1, 1, 2, 1, 0x0, 396000, 396000},
+{297000, 297000, 1000, 2970000, 2970000, 0x03, 0x1, 0x1,  330, 0x104, 0x042,  10, 0x003, 0x003, 2970000, 2970000, 0, 1, 1, 2, 1, 0x0, 297000, 297000},
+{297000, 297000, 1500, 4455000, 4455000, 0x03, 0x1, 0x1,  495, 0x188, 0x063,  15, 0x006, 0x005, 4455000, 4455000, 1, 1, 1, 2, 1, 0x0, 445500, 445500},
+{297000, 297000, 2000, 5940000, 5940000, 0x03, 0x1, 0x1,  660, 0x20C, 0x084,  20, 0x008, 0x008, 5940000, 5940000, 1, 1, 1, 2, 1, 0x0, 594000, 594000},
+{594000, 594000, 1000, 5940000, 5940000, 0x03, 0x1, 0x1,  660, 0x20C, 0x084,  10, 0x003, 0x003, 5940000, 5940000, 1, 1, 1, 2, 1, 0x0, 594000, 594000},
+{594000, 594000,  750, 4455000, 4455000, 0x03, 0x1, 0x1,  495, 0x188, 0x063,  10, 0x003, 0x003, 4455000, 4455000, 1, 1, 1, 2, 1, 0x0, 445500, 445500},
+{594000, 594000,  625, 3712500, 3712500, 0x04, 0x1, 0x1,  550, 0x1B4, 0x06E,  10, 0x003, 0x003, 3712500, 3712500, 1, 1, 1, 2, 1, 0x0, 371250, 371250},
+{594000, 594000,  500, 2970000, 2970000, 0x03, 0x1, 0x1,  660, 0x20C, 0x084,  10, 0x003, 0x003, 5940000, 5940000, 1, 1, 1, 2, 2, 0x1, 297000, 297000},
+};
+
+/* HDMI TX clock control settings, pixel clock is input */
+static const struct hdmi_ctrl imx8qm_ctrl_table[] = {
+/*pclk_l  pclk_h  fd    DRR_L    DRR_H   PLLD */
+{ 25000,  42500, 1000,  250000,  425000, 0x05, 0x01, 0x01, 400, 0x182, 0x00A, 0, 0, 0, 2000000, 3400000, 0, 2, 2, 2, 4, 0x03,  25000,  42500},
+{ 42500,  85000, 1000,  425000,  850000, 0x08, 0x03, 0x01, 320, 0x132, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 4, 0x02,  42500,  85000},
+{ 85000, 170000, 1000,  850000, 1700000, 0x11, 0x00, 0x07, 340, 0x146, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 2, 0x01,  85000, 170000},
+{170000, 340000, 1000, 1700000, 3400000, 0x22, 0x01, 0x07, 340, 0x146, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 1, 0x00, 170000, 340000},
+{340000, 600000, 1000, 3400000, 6000000, 0x3C, 0x03, 0x06, 600, 0x24A, 0x00A, 0, 0, 0, 3400000, 6000000, 1, 1, 1, 2, 1, 0x00, 340000, 600000},
+{ 25000,  34000, 1205,  312500,  425000, 0x04, 0x01, 0x01, 400, 0x182, 0x00A, 0, 0, 0, 2500000, 3400000, 0, 2, 2, 2, 4, 0x03,  31250,  42500},
+{ 34000,  68000, 1205,  425000,  850000, 0x06, 0x02, 0x01, 300, 0x11E, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 4, 0x02,  42500,  85000},
+{ 68000, 136000, 1205,  850000, 1700000, 0x0D, 0x02, 0x02, 325, 0x137, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 2, 0x01,  85000, 170000},
+{136000, 272000, 1205, 1700000, 3400000, 0x1A, 0x02, 0x04, 325, 0x137, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 1, 0x00, 170000, 340000},
+{272000, 480000, 1205, 3400000, 6000000, 0x30, 0x03, 0x05, 600, 0x24A, 0x00A, 0, 0, 0, 3400000, 6000000, 1, 1, 1, 2, 1, 0x00, 340000, 600000},
+{ 25000,  28000, 1500,  375000,  420000, 0x03, 0x01, 0x01, 360, 0x15A, 0x00A, 0, 0, 0, 3000000, 3360000, 0, 2, 2, 2, 4, 0x03,  37500,  42000},
+{ 28000,  56000, 1500,  420000,  840000, 0x06, 0x02, 0x01, 360, 0x15A, 0x00A, 0, 0, 0, 1680000, 3360000, 0, 1, 1, 2, 4, 0x02,  42000,  84000},
+{ 56000, 113000, 1500,  840000, 1695000, 0x0B, 0x00, 0x05, 330, 0x13C, 0x00A, 0, 0, 0, 1680000, 3390000, 0, 1, 1, 2, 2, 0x01,  84000, 169500},
+{113000, 226000, 1500, 1695000, 3390000, 0x16, 0x01, 0x05, 330, 0x13C, 0x00A, 0, 0, 0, 1695000, 3390000, 0, 1, 1, 2, 1, 0x00, 169500, 339000},
+{226000, 400000, 1500, 3390000, 6000000, 0x28, 0x03, 0x04, 600, 0x24A, 0x00A, 0, 0, 0, 3390000, 6000000, 1, 1, 1, 2, 1, 0x00, 339000, 600000},
+{ 25000,  42500, 2000,  500000,  850000, 0x05, 0x01, 0x01, 400, 0x182, 0x00A, 0, 0, 0, 2000000, 3400000, 0, 1, 1, 2, 4, 0x02,  50000,  85000},
+{ 42500,  85000, 2000,  850000, 1700000, 0x08, 0x03, 0x01, 320, 0x132, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 2, 0x01,  85000, 170000},
+{ 85000, 170000, 2000, 1700000, 3400000, 0x11, 0x00, 0x07, 340, 0x146, 0x00A, 0, 0, 0, 1700000, 3400000, 0, 1, 1, 2, 1, 0x00, 170000, 340000},
+{170000, 300000, 2000, 3400000, 6000000, 0x22, 0x01, 0x06, 680, 0x29A, 0x00A, 0, 0, 0, 3400000, 6000000, 1, 1, 1, 2, 1, 0x00, 340000, 600000},
+{594000, 594000, 5000, 2970000, 2970000, 0x3C, 0x03, 0x06, 600, 0x24A, 0x00A, 0, 0, 0, 5940000, 5940000, 1, 1, 1, 2, 2, 0x01, 297000, 297000},
+{594000, 594000, 6250, 3712500, 3712500, 0x3C, 0x03, 0x06, 375, 0x169, 0x00A, 0, 0, 0, 3712500, 3712500, 1, 1, 1, 2, 1, 0x00, 371250, 371250},
+{594000, 594000, 7500, 4455000, 4455000, 0x3C, 0x03, 0x06, 450, 0x1B4, 0x00A, 0, 0, 0, 4455000, 4455000, 1, 1, 1, 2, 1, 0x00, 445500, 445500},
+};
+
+/* HDMI TX PLL tuning settings */
+struct hdmi_pll_tuning {
+	u32 vco_freq_bin;
+	u32 vco_freq_min;
+	u32 vco_freq_max;
+	u32 volt_to_current_coarse;
+	u32 volt_to_current;
+	u32 ndac_ctrl;
+	u32 pmos_ctrl;
+	u32 ptat_ndac_ctrl;
+	u32 feedback_div_total;
+	u32 charge_pump_gain;
+	u32 coarse_code;
+	u32 v2i_code;
+	u32 vco_cal_code;
+};
+
+/* HDMI TX PLL tuning settings, pixel clock is output */
+static const struct hdmi_pll_tuning imx8mq_pll_table[] = {
+/*    bin VCO_freq min/max  coar  cod NDAC  PMOS PTAT div-T P-Gain Coa V2I CAL */
+    {  1, 1980000, 1980000, 0x4, 0x3, 0x0, 0x09, 0x09, 220, 0x42, 160, 5, 183 },
+    {  2, 2160000, 2160000, 0x4, 0x3, 0x0, 0x09, 0x09, 240, 0x42, 166, 6, 208 },
+    {  3, 2475000, 2475000, 0x5, 0x3, 0x1, 0x00, 0x07, 275, 0x42, 167, 6, 209 },
+    {  4, 2700000, 2700000, 0x5, 0x3, 0x1, 0x00, 0x07, 300, 0x42, 188, 6, 230 },
+    {  4, 2700000, 2700000, 0x5, 0x3, 0x1, 0x00, 0x07, 400, 0x4C, 188, 6, 230 },
+    {  5, 2970000, 2970000, 0x6, 0x3, 0x1, 0x00, 0x07, 330, 0x42, 183, 6, 225 },
+    {  6, 3240000, 3240000, 0x6, 0x3, 0x1, 0x00, 0x07, 360, 0x42, 203, 7, 256 },
+    {  6, 3240000, 3240000, 0x6, 0x3, 0x1, 0x00, 0x07, 480, 0x4C, 203, 7, 256 },
+    {  7, 3712500, 3712500, 0x4, 0x3, 0x0, 0x07, 0x0F, 550, 0x4C, 212, 7, 257 },
+    {  8, 3960000, 3960000, 0x5, 0x3, 0x0, 0x07, 0x0F, 440, 0x42, 184, 6, 226 },
+    {  9, 4320000, 4320000, 0x5, 0x3, 0x1, 0x07, 0x0F, 480, 0x42, 205, 7, 258 },
+    { 10, 4455000, 4455000, 0x5, 0x3, 0x0, 0x07, 0x0F, 495, 0x42, 219, 7, 272 },
+    { 10, 4455000, 4455000, 0x5, 0x3, 0x0, 0x07, 0x0F, 660, 0x4C, 219, 7, 272 },
+    { 11, 4950000, 4950000, 0x6, 0x3, 0x1, 0x00, 0x07, 550, 0x42, 213, 7, 258 },
+    { 12, 5940000, 5940000, 0x7, 0x3, 0x1, 0x00, 0x07, 660, 0x42, 244, 8, 292 },
+};
+
+/* HDMI TX PLL tuning settings, pixel clock is input */
+static const struct hdmi_pll_tuning imx8qm_pll_table[] = {
+/*  bin VCO_freq min/max  coar  cod NDAC  PMOS PTAT div-T P-Gain  pad only */
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 300, 0x08D, 0, 0, 0 },
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 320, 0x08E, 0, 0, 0 },
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 325, 0x08E, 0, 0, 0 },
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 330, 0x08E, 0, 0, 0 },
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 340, 0x08F, 0, 0, 0 },
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 360, 0x0A7, 0, 0, 0 },
+	{ 0, 1700000, 2000000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 400, 0x0C5, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 300, 0x086, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 320, 0x087, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 325, 0x087, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 330, 0x104, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 340, 0x08B, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 360, 0x08D, 0, 0, 0 },
+	{ 1, 2000000, 2400000, 0x3, 0x1, 0x0, 0x8C, 0x2E, 400, 0x0A6, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 300, 0x04E, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 320, 0x04F, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 325, 0x04F, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 330, 0x085, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 340, 0x085, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 360, 0x086, 0, 0, 0 },
+	{ 2, 2400000, 2800000, 0x3, 0x1, 0x0, 0x04, 0x0D, 400, 0x08B, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 300, 0x047, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 320, 0x04B, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 325, 0x04B, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 330, 0x04B, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 340, 0x04D, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 360, 0x04E, 0, 0, 0 },
+	{ 3, 2800000, 3400000, 0x3, 0x1, 0x0, 0x04, 0x0D, 400, 0x085, 0, 0, 0 },
+	{ 4, 3400000, 3900000, 0x7, 0x1, 0x0, 0x8E, 0x2F, 375, 0x041, 0, 0, 0 },
+	{ 4, 3400000, 3900000, 0x7, 0x1, 0x0, 0x8E, 0x2F, 600, 0x08D, 0, 0, 0 },
+	{ 4, 3400000, 3900000, 0x7, 0x1, 0x0, 0x8E, 0x2F, 680, 0x0A6, 0, 0, 0 },
+	{ 5, 3900000, 4500000, 0x7, 0x1, 0x0, 0x8E, 0x2F, 450, 0x041, 0, 0, 0 },
+	{ 5, 3900000, 4500000, 0x7, 0x1, 0x0, 0x8E, 0x2F, 600, 0x087, 0, 0, 0 },
+	{ 5, 3900000, 4500000, 0x7, 0x1, 0x0, 0x8E, 0x2F, 680, 0x0A4, 0, 0, 0 },
+	{ 6, 4500000, 5200000, 0x7, 0x1, 0x0, 0x04, 0x0D, 600, 0x04F, 0, 0, 0 },
+	{ 6, 4500000, 5200000, 0x7, 0x1, 0x0, 0x04, 0x0D, 680, 0x086, 0, 0, 0 },
+	{ 7, 5200000, 6000000, 0x7, 0x1, 0x0, 0x04, 0x0D, 600, 0x04D, 0, 0, 0 },
+	{ 7, 5200000, 6000000, 0x7, 0x1, 0x0, 0x04, 0x0D, 680, 0x04F, 0, 0, 0 }
+};
+
+static void hdmi_arc_config(struct cdns_mhdp_device *mhdp)
+{
+	u16 txpu_calib_code;
+	u16 txpd_calib_code;
+	u16 txpu_adj_calib_code;
+	u16 txpd_adj_calib_code;
+	u16 prev_calib_code;
+	u16 new_calib_code;
+	u16 rdata;
+
+	/* Power ARC */
+	cdns_phy_reg_write(mhdp, TXDA_CYA_AUXDA_CYA, 0x0001);
+
+	prev_calib_code = cdns_phy_reg_read(mhdp, TX_DIG_CTRL_REG_2);
+	txpu_calib_code = cdns_phy_reg_read(mhdp, CMN_TXPUCAL_CTRL);
+	txpd_calib_code = cdns_phy_reg_read(mhdp, CMN_TXPDCAL_CTRL);
+	txpu_adj_calib_code = cdns_phy_reg_read(mhdp, CMN_TXPU_ADJ_CTRL);
+	txpd_adj_calib_code = cdns_phy_reg_read(mhdp, CMN_TXPD_ADJ_CTRL);
+
+	new_calib_code = ((txpu_calib_code + txpd_calib_code) / 2)
+		+ txpu_adj_calib_code + txpd_adj_calib_code;
+
+	if (new_calib_code != prev_calib_code) {
+		rdata = cdns_phy_reg_read(mhdp, TX_ANA_CTRL_REG_1);
+		rdata &= 0xDFFF;
+		cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, rdata);
+		cdns_phy_reg_write(mhdp, TX_DIG_CTRL_REG_2, new_calib_code);
+		mdelay(10);
+		rdata |= 0x2000;
+		cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, rdata);
+		udelay(150);
+	}
+
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x0100);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x0300);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_3, 0x0000);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0x2008);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0x2018);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0x2098);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x030C);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_5, 0x0010);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_4, 0x4001);
+	mdelay(5);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_1, 0x2198);
+	mdelay(5);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x030D);
+	udelay(100);
+	cdns_phy_reg_write(mhdp, TX_ANA_CTRL_REG_2, 0x030F);
+}
+
+static void hdmi_phy_set_vswing(struct cdns_mhdp_device *mhdp)
+{
+	const u32 num_lanes = 4;
+	u32 k;
+
+	for (k = 0; k < num_lanes; k++) {
+		cdns_phy_reg_write(mhdp, (TX_DIAG_TX_DRV | (k << 9)), 0x7c0);
+		cdns_phy_reg_write(mhdp, (TX_TXCC_CPOST_MULT_00_0 | (k << 9)), 0x0);
+		cdns_phy_reg_write(mhdp, (TX_TXCC_CAL_SCLR_MULT_0 | (k << 9)), 0x120);
+	}
+}
+
+static int hdmi_feedback_factor(struct cdns_mhdp_device *mhdp)
+{
+	u32 feedback_factor;
+
+	switch (mhdp->video_info.color_fmt) {
+	case YCBCR_4_2_2:
+		feedback_factor = 1000;
+		break;
+	case YCBCR_4_2_0:
+		switch (mhdp->video_info.color_depth) {
+		case 8:
+			feedback_factor = 500;
+			break;
+		case 10:
+			feedback_factor = 625;
+			break;
+		case 12:
+			feedback_factor = 750;
+			break;
+		case 16:
+			feedback_factor = 1000;
+			break;
+		default:
+			DRM_ERROR("Invalid ColorDepth\n");
+			return 0;
+		}
+		break;
+	default:
+		/* Assume RGB/YUV444 */
+		switch (mhdp->video_info.color_depth) {
+		case 10:
+			feedback_factor = 1250;
+			break;
+		case 12:
+			feedback_factor = 1500;
+			break;
+		case 16:
+			feedback_factor = 2000;
+			break;
+		default:
+			feedback_factor = 1000;
+		}
+	}
+	return feedback_factor;
+}
+
+static int hdmi_phy_config(struct cdns_mhdp_device *mhdp,
+					const struct hdmi_ctrl *p_ctrl_table,
+					const struct hdmi_pll_tuning *p_pll_table,
+					char pclk_in)
+{
+	const u32 num_lanes = 4;
+	u32 val, i, k;
+
+	/* enable PHY isolation mode only for CMN */
+	cdns_phy_reg_write(mhdp, PHY_PMA_ISOLATION_CTRL, 0xD000);
+
+	/* set cmn_pll0_clk_datart1_div/cmn_pll0_clk_datart0_div dividers */
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_ISO_PLL_CTRL1);
+	val &= 0xFF00;
+	val |= 0x0012;
+	cdns_phy_reg_write(mhdp, PHY_PMA_ISO_PLL_CTRL1, val);
+
+	/* assert PHY reset from isolation register */
+	cdns_phy_reg_write(mhdp, PHY_ISO_CMN_CTRL, 0x0000);
+	/* assert PMA CMN reset */
+	cdns_phy_reg_write(mhdp, PHY_PMA_ISO_CMN_CTRL, 0x0000);
+
+	/* register XCVR_DIAG_BIDI_CTRL */
+	for (k = 0; k < num_lanes; k++)
+		cdns_phy_reg_write(mhdp, XCVR_DIAG_BIDI_CTRL | (k << 9), 0x00FF);
+
+	/* Describing Task phy_cfg_hdp */
+
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val &= 0xFFF7;
+	val |= 0x0008;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	/* PHY Registers */
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val &= 0xCFFF;
+	val |= p_ctrl_table->cmn_ref_clk_dig_div << 12;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	val = cdns_phy_reg_read(mhdp, PHY_HDP_CLK_CTL);
+	val &= 0x00FF;
+	val |= 0x1200;
+	cdns_phy_reg_write(mhdp, PHY_HDP_CLK_CTL, val);
+
+	/* Common control module control and diagnostic registers */
+	val = cdns_phy_reg_read(mhdp, CMN_CDIAG_REFCLK_CTRL);
+	val &= 0x8FFF;
+	val |= p_ctrl_table->ref_clk_divider_scaler << 12;
+	val |= 0x00C0;
+	cdns_phy_reg_write(mhdp, CMN_CDIAG_REFCLK_CTRL, val);
+
+	/* High speed clock used */
+	val = cdns_phy_reg_read(mhdp, CMN_DIAG_HSCLK_SEL);
+	val &= 0xFF00;
+	val |= (p_ctrl_table->cmnda_hs_clk_0_sel >> 1) << 0;
+	val |= (p_ctrl_table->cmnda_hs_clk_1_sel >> 1) << 4;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_HSCLK_SEL, val);
+
+	for (k = 0; k < num_lanes; k++) {
+		val = cdns_phy_reg_read(mhdp, (XCVR_DIAG_HSCLK_SEL | (k << 9)));
+		val &= 0xCFFF;
+		val |= (p_ctrl_table->cmnda_hs_clk_0_sel >> 1) << 12;
+		cdns_phy_reg_write(mhdp, (XCVR_DIAG_HSCLK_SEL | (k << 9)), val);
+	}
+
+	/* PLL 0 control state machine registers */
+	val = p_ctrl_table->vco_ring_select << 12;
+	cdns_phy_reg_write(mhdp, CMN_PLLSM0_USER_DEF_CTRL, val);
+
+	if (pclk_in == true)
+		val = 0x30A0;
+	else {
+		val = cdns_phy_reg_read(mhdp, CMN_PLL0_VCOCAL_START);
+		val &= 0xFE00;
+		val |= p_pll_table->vco_cal_code;
+	}
+	cdns_phy_reg_write(mhdp, CMN_PLL0_VCOCAL_START, val);
+
+	cdns_phy_reg_write(mhdp, CMN_PLL0_VCOCAL_INIT_TMR, 0x0064);
+	cdns_phy_reg_write(mhdp, CMN_PLL0_VCOCAL_ITER_TMR, 0x000A);
+
+	/* Common functions control and diagnostics registers */
+	val = p_ctrl_table->cmnda_pll0_hs_sym_div_sel << 8;
+	val |= p_ctrl_table->cmnda_pll0_ip_div;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_INCLK_CTRL, val);
+
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_OVRD, 0x0000);
+
+	val = p_ctrl_table->cmnda_pll0_fb_div_high;
+	val |= (1 << 15);
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_FBH_OVRD, val);
+
+	val = p_ctrl_table->cmnda_pll0_fb_div_low;
+	val |= (1 << 15);
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_FBL_OVRD, val);
+
+	if (pclk_in == false) {
+		val = p_ctrl_table->cmnda_pll0_pxdiv_low;
+		cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_PXL_DIVL, val);
+
+		val = p_ctrl_table->cmnda_pll0_pxdiv_high;
+		val |= (1 << 15);
+		cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_PXL_DIVH, val);
+	}
+
+	val = p_pll_table->volt_to_current_coarse;
+	val |= (p_pll_table->volt_to_current) << 4;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_V2I_TUNE, val);
+
+	val = p_pll_table->charge_pump_gain;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_CP_TUNE, val);
+
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_LF_PROG, 0x0008);
+
+	val = p_pll_table->pmos_ctrl;
+	val |= (p_pll_table->ndac_ctrl) << 8;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_PTATIS_TUNE1, val);
+
+	val = p_pll_table->ptat_ndac_ctrl;
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_PTATIS_TUNE2, val);
+
+	if (pclk_in == true)
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_TEST_MODE, 0x0022);
+	else
+	cdns_phy_reg_write(mhdp, CMN_DIAG_PLL0_TEST_MODE, 0x0020);
+	cdns_phy_reg_write(mhdp, CMN_PSM_CLK_CTRL, 0x0016);
+
+	/* Transceiver control and diagnostic registers */
+	for (k = 0; k < num_lanes; k++) {
+		val = cdns_phy_reg_read(mhdp, (XCVR_DIAG_PLLDRC_CTRL | (k << 9)));
+		val &= 0xBFFF;
+		cdns_phy_reg_write(mhdp, (XCVR_DIAG_PLLDRC_CTRL | (k << 9)), val);
+	}
+
+	for (k = 0; k < num_lanes; k++) {
+		val = cdns_phy_reg_read(mhdp, (TX_DIAG_TX_CTRL | (k << 9)));
+		val &= 0xFF3F;
+		val |= (p_ctrl_table->hsclk_div_tx_sub_rate >> 1) << 6;
+		cdns_phy_reg_write(mhdp, (TX_DIAG_TX_CTRL | (k << 9)), val);
+	}
+
+	/*
+	 * for single ended reference clock val |= 0x0030;
+	 * for differential clock  val |= 0x0000;
+	 */
+	val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+	val &= 0xFF8F;
+	if (pclk_in == true)
+		val |= 0x0030;
+	cdns_phy_reg_write(mhdp, PHY_PMA_CMN_CTRL1, val);
+
+	/* for differential clock on the refclk_p and
+	 * refclk_m off chip pins: CMN_DIAG_ACYA[8]=1'b1 */
+	cdns_phy_reg_write(mhdp, CMN_DIAG_ACYA, 0x0100);
+
+	/* Deassert PHY reset */
+	cdns_phy_reg_write(mhdp, PHY_ISO_CMN_CTRL, 0x0001);
+	cdns_phy_reg_write(mhdp, PHY_PMA_ISO_CMN_CTRL, 0x0003);
+
+	/* Power state machine registers */
+	for (k = 0; k < num_lanes; k++)
+		cdns_phy_reg_write(mhdp, XCVR_PSM_RCTRL | (k << 9), 0xFEFC);
+
+	/* Assert cmn_macro_pwr_en */
+	cdns_phy_reg_write(mhdp, PHY_PMA_ISO_CMN_CTRL, 0x0013);
+
+	/* wait for cmn_macro_pwr_en_ack */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_PMA_ISO_CMN_CTRL);
+		if (val & (1 << 5))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		DRM_ERROR("PMA ouput macro power up failed\n");
+		return false;
+	}
+
+	/* wait for cmn_ready */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_PMA_CMN_CTRL1);
+		if (val & (1 << 0))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		DRM_ERROR("PMA output ready failed\n");
+		return false;
+	}
+
+	for (k = 0; k < num_lanes; k++) {
+		cdns_phy_reg_write(mhdp, TX_PSC_A0 | (k << 9), 0x6791);
+		cdns_phy_reg_write(mhdp, TX_PSC_A1 | (k << 9), 0x6790);
+		cdns_phy_reg_write(mhdp, TX_PSC_A2 | (k << 9), 0x0090);
+		cdns_phy_reg_write(mhdp, TX_PSC_A3 | (k << 9), 0x0090);
+
+		val = cdns_phy_reg_read(mhdp, RX_PSC_CAL | (k << 9));
+		val &= 0xFFBB;
+		cdns_phy_reg_write(mhdp, RX_PSC_CAL | (k << 9), val);
+
+		val = cdns_phy_reg_read(mhdp, RX_PSC_A0 | (k << 9));
+		val &= 0xFFBB;
+		cdns_phy_reg_write(mhdp, RX_PSC_A0 | (k << 9), val);
+	}
+	return true;
+}
+
+static int hdmi_phy_cfg_t28hpc(struct cdns_mhdp_device *mhdp,
+				struct drm_display_mode *mode)
+{
+	const struct hdmi_ctrl *p_ctrl_table;
+	const struct hdmi_pll_tuning *p_pll_table;
+	const u32 refclk_freq_khz = 27000;
+	const u8 pclk_in = false;
+	u32 pixel_freq = mode->clock;
+	u32 vco_freq, char_freq;
+	u32 div_total, feedback_factor;
+	u32 i, ret;
+
+	feedback_factor = hdmi_feedback_factor(mhdp);
+
+	char_freq = pixel_freq * feedback_factor / 1000;
+
+	DRM_INFO("Pixel clock: %d KHz, character clock: %d, bpc is %0d-bit.\n",
+	     pixel_freq, char_freq, mhdp->video_info.color_depth);
+
+	/* Get right row from the ctrl_table table.
+	 * Check if 'pixel_freq_khz' value matches the PIXEL_CLK_FREQ column.
+	 * Consider only the rows with FEEDBACK_FACTOR column matching feedback_factor. */
+	for (i = 0; i < ARRAY_SIZE(imx8mq_ctrl_table); i++) {
+		if (feedback_factor == imx8mq_ctrl_table[i].feedback_factor &&
+				pixel_freq == imx8mq_ctrl_table[i].pixel_clk_freq_min) {
+			p_ctrl_table = &imx8mq_ctrl_table[i];
+			break;
+		}
+	}
+	if (i == ARRAY_SIZE(imx8mq_ctrl_table)) {
+		DRM_WARN("Pixel clk (%d KHz) not supported, color depth (%0d-bit)\n",
+		     pixel_freq, mhdp->video_info.color_depth);
+		return 0;
+	}
+
+	div_total = p_ctrl_table->pll_fb_div_total;
+	vco_freq = refclk_freq_khz * div_total / p_ctrl_table->cmnda_pll0_ip_div;
+
+	/* Get right row from the imx8mq_pll_table table.
+	 * Check if vco_freq_khz and feedback_div_total
+	 * column matching with imx8mq_pll_table. */
+	for (i = 0; i < ARRAY_SIZE(imx8mq_pll_table); i++) {
+		if (vco_freq == imx8mq_pll_table[i].vco_freq_min &&
+				div_total == imx8mq_pll_table[i].feedback_div_total) {
+			p_pll_table = &imx8mq_pll_table[i];
+			break;
+		}
+	}
+	if (i == ARRAY_SIZE(imx8mq_pll_table)) {
+		DRM_WARN("VCO (%d KHz) not supported\n", vco_freq);
+		return 0;
+	}
+	DRM_INFO("VCO frequency is %d KHz\n", vco_freq);
+
+	ret = hdmi_phy_config(mhdp, p_ctrl_table, p_pll_table, pclk_in);
+	if (ret == false)
+		return 0;
+
+	return char_freq;
+}
+
+static int hdmi_phy_cfg_ss28fdsoi(struct cdns_mhdp_device *mhdp,
+				struct drm_display_mode *mode)
+{
+	const struct hdmi_ctrl *p_ctrl_table;
+	const struct hdmi_pll_tuning *p_pll_table;
+	const u8 pclk_in = true;
+	u32 pixel_freq = mode->clock;
+	u32 vco_freq, char_freq;
+	u32 div_total, feedback_factor;
+	u32 ret, i;
+
+	feedback_factor = hdmi_feedback_factor(mhdp);
+
+	char_freq = pixel_freq * feedback_factor / 1000;
+
+	DRM_INFO("Pixel clock: %d KHz, character clock: %d, bpc is %0d-bit.\n",
+	     pixel_freq, char_freq, mhdp->video_info.color_depth);
+
+	/* Get right row from the ctrl_table table.
+	 * Check if 'pixel_freq_khz' value matches the PIXEL_CLK_FREQ column.
+	 * Consider only the rows with FEEDBACK_FACTOR column matching feedback_factor. */
+	for (i = 0; i < ARRAY_SIZE(imx8qm_ctrl_table); i++) {
+		if (feedback_factor == imx8qm_ctrl_table[i].feedback_factor &&
+				pixel_freq >= imx8qm_ctrl_table[i].pixel_clk_freq_min &&
+				pixel_freq <= imx8qm_ctrl_table[i].pixel_clk_freq_max) {
+			p_ctrl_table = &imx8qm_ctrl_table[i];
+			break;
+		}
+	}
+	if (i == ARRAY_SIZE(imx8qm_ctrl_table)) {
+		DRM_WARN("Pixel clk (%d KHz) not supported, color depth (%0d-bit)\n",
+		     pixel_freq, mhdp->video_info.color_depth);
+		return 0;
+	}
+
+	div_total = p_ctrl_table->pll_fb_div_total;
+	vco_freq = pixel_freq * div_total / p_ctrl_table->cmnda_pll0_ip_div;
+
+	/* Get right row from the imx8mq_pll_table table.
+	 * Check if vco_freq_khz and feedback_div_total
+	 * column matching with imx8mq_pll_table. */
+	for (i = 0; i < ARRAY_SIZE(imx8qm_pll_table); i++) {
+		if (vco_freq >= imx8qm_pll_table[i].vco_freq_min &&
+				vco_freq < imx8qm_pll_table[i].vco_freq_max &&
+				div_total == imx8qm_pll_table[i].feedback_div_total) {
+			p_pll_table = &imx8qm_pll_table[i];
+			break;
+		}
+	}
+	if (i == ARRAY_SIZE(imx8qm_pll_table)) {
+		DRM_WARN("VCO (%d KHz) not supported\n", vco_freq);
+		return 0;
+	}
+	DRM_INFO("VCO frequency is %d KHz\n", vco_freq);
+
+	ret = hdmi_phy_config(mhdp, p_ctrl_table, p_pll_table, pclk_in);
+	if (ret == false)
+		return 0;
+
+	return char_freq;
+}
+
+static int hdmi_phy_power_up(struct cdns_mhdp_device *mhdp)
+{
+	u32 val, i;
+
+	/* set Power State to A2 */
+	cdns_phy_reg_write(mhdp, PHY_HDP_MODE_CTRL, 0x0004);
+
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_0, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_1, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_2, 1);
+	cdns_phy_reg_write(mhdp, TX_DIAG_ACYA_3, 1);
+
+	/* Wait for Power State A2 Ack */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_MODE_CTRL);
+		if (val & (1 << 6))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait A2 Ack failed\n");
+		return -1;
+	}
+
+	/* Power up ARC */
+	hdmi_arc_config(mhdp);
+
+	/* Configure PHY in A0 mode (PHY must be in the A0 power
+	 * state in order to transmit data)
+	 */
+	//cdns_phy_reg_write(mhdp, PHY_HDP_MODE_CTRL, 0x0101); //imx8mq
+	cdns_phy_reg_write(mhdp, PHY_HDP_MODE_CTRL, 0x0001);
+
+	/* Wait for Power State A0 Ack */
+	for (i = 0; i < 10; i++) {
+		val = cdns_phy_reg_read(mhdp, PHY_HDP_MODE_CTRL);
+		if (val & (1 << 4))
+			break;
+		msleep(20);
+	}
+	if (i == 10) {
+		dev_err(mhdp->dev, "Wait A0 Ack failed\n");
+		return -1;
+	}
+	return 0;
+}
+
+bool cdns_hdmi_phy_video_valid_imx8mq(struct cdns_mhdp_device *mhdp)
+{
+	u32 rate = mhdp->valid_mode->clock;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(imx8mq_ctrl_table); i++)
+			if(rate == imx8mq_ctrl_table[i].pixel_clk_freq_min)
+				return true;
+	return false;
+}
+
+int cdns_hdmi_phy_set_imx8mq(struct cdns_mhdp_device *mhdp)
+{
+	struct drm_display_mode *mode = &mhdp->mode;
+	int ret;
+
+	/* Check HDMI FW alive before HDMI PHY init */
+	ret = cdns_mhdp_check_alive(mhdp);
+	if (ret == false) {
+		DRM_ERROR("NO HDMI FW running\n");
+		return -ENXIO;
+	}
+
+	/* Configure PHY */
+	mhdp->hdmi.char_rate = hdmi_phy_cfg_t28hpc(mhdp, mode);
+	if (mhdp->hdmi.char_rate == 0) {
+		DRM_ERROR("failed to set phy pclock\n");
+		return -EINVAL;
+	}
+
+	ret = hdmi_phy_power_up(mhdp);
+	if (ret < 0)
+		return ret;
+
+	hdmi_phy_set_vswing(mhdp);
+
+	return true;
+}
+
+bool cdns_hdmi_phy_video_valid_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	u32 rate = mhdp->valid_mode->clock;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(imx8qm_ctrl_table); i++)
+			if(rate >= imx8qm_ctrl_table[i].pixel_clk_freq_min &&
+				rate <= imx8qm_ctrl_table[i].pixel_clk_freq_max)
+				return true;
+	return false;
+}
+
+int cdns_hdmi_phy_set_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct drm_display_mode *mode = &mhdp->mode;
+	int ret;
+
+	/* Check HDMI FW alive before HDMI PHY init */
+	ret = cdns_mhdp_check_alive(mhdp);
+	if (ret == false) {
+		DRM_ERROR("NO HDMI FW running\n");
+		return -ENXIO;
+	}
+
+	/* Configure PHY */
+	mhdp->hdmi.char_rate = hdmi_phy_cfg_ss28fdsoi(mhdp, mode);
+	if (mhdp->hdmi.char_rate == 0) {
+		DRM_ERROR("failed to set phy pclock\n");
+		return -EINVAL;
+	}
+
+	ret = hdmi_phy_power_up(mhdp);
+	if (ret < 0)
+		return ret;
+
+	hdmi_phy_set_vswing(mhdp);
+
+	return true;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx.h
@@ -0,0 +1,76 @@
+/*
+ * Cadence High-Definition Multimedia Interface (HDMI) driver
+ *
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ */
+#ifndef CDNS_MHDP_IMX_H_
+#define CDNS_MHDP_IMX_H_
+
+#include <drm/bridge/cdns-mhdp.h>
+#include <drm/drm_encoder_slave.h>
+
+
+struct imx_mhdp_device;
+
+struct imx_hdp_clks {
+	struct clk *av_pll;
+	struct clk *dig_pll;
+	struct clk *clk_ipg;
+	struct clk *clk_core;
+	struct clk *clk_pxl;
+	struct clk *clk_pxl_mux;
+	struct clk *clk_pxl_link;
+
+	struct clk *lpcg_hdp;
+	struct clk *lpcg_msi;
+	struct clk *lpcg_pxl;
+	struct clk *lpcg_vif;
+	struct clk *lpcg_lis;
+	struct clk *lpcg_apb;
+	struct clk *lpcg_apb_csr;
+	struct clk *lpcg_apb_ctrl;
+
+	struct clk *lpcg_i2s;
+	struct clk *clk_i2s_bypass;
+};
+
+struct imx_mhdp_device {
+	struct cdns_mhdp_device mhdp;
+	struct drm_encoder encoder;
+
+	struct mutex audio_mutex;
+	spinlock_t audio_lock;
+	bool connected;
+	bool active;
+	bool suspended;
+	struct imx_hdp_clks clks;
+	const struct firmware *fw;
+	const char *firmware_name;
+
+	int bus_type;
+
+	struct device		*pd_mhdp_dev;
+	struct device		*pd_pll0_dev;
+	struct device		*pd_pll1_dev;
+	struct device_link	*pd_mhdp_link;
+	struct device_link	*pd_pll0_link;
+	struct device_link	*pd_pll1_link;
+};
+
+void cdns_mhdp_plat_init_imx8qm(struct cdns_mhdp_device *mhdp);
+void cdns_mhdp_plat_deinit_imx8qm(struct cdns_mhdp_device *mhdp);
+void cdns_mhdp_pclk_rate_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_firmware_init_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_resume_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_suspend_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_power_on_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_power_off_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_power_on_ls1028a(struct cdns_mhdp_device *mhdp);
+void cdns_mhdp_pclk_rate_ls1028a(struct cdns_mhdp_device *mhdp);
+#endif /* CDNS_MHDP_IMX_H_ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx8qm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imx8qm.c
@@ -0,0 +1,713 @@
+/*
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * this program is free software; you can redistribute it and/or modify
+ * it under the terms of the gnu general public license version 2 as
+ * published by the free software foundation.
+ */
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include <linux/firmware/imx/sci.h>
+#include <linux/firmware.h>
+#include <linux/pm_domain.h>
+#include <linux/clk.h>
+#include <drm/drm_vblank.h>
+#include <drm/drm_print.h>
+
+#include "cdns-mhdp-imx.h"
+
+#define FW_IRAM_OFFSET		0x2000
+#define FW_IRAM_SIZE		0x10000
+#define FW_DRAM_SIZE		0x8000
+
+#define PLL_800MHZ (800000000)
+
+#define HDP_DUAL_MODE_MIN_PCLK_RATE	300000	/* KHz */
+#define HDP_SINGLE_MODE_MAX_WIDTH	2560
+
+#define CSR_PIXEL_LINK_MUX_CTL		0x00
+#define CSR_PIXEL_LINK_MUX_VCP_OFFSET		5
+#define CSR_PIXEL_LINK_MUX_HCP_OFFSET		4
+
+static bool imx8qm_video_dual_mode(struct cdns_mhdp_device *mhdp)
+{
+	struct drm_display_mode *mode = &mhdp->mode;
+	return (mode->clock > HDP_DUAL_MODE_MIN_PCLK_RATE ||
+		mode->hdisplay > HDP_SINGLE_MODE_MAX_WIDTH) ? true : false;
+}
+
+static void imx8qm_pixel_link_mux(struct imx_mhdp_device *imx_mhdp)
+{
+	struct drm_display_mode *mode = &imx_mhdp->mhdp.mode;
+	bool dual_mode;
+	u32 val;
+
+	dual_mode = imx8qm_video_dual_mode(&imx_mhdp->mhdp);
+
+	val = 0x4;	/* RGB */
+	if (dual_mode)
+		val |= 0x2;	/* pixel link 0 and 1 are active */
+	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+		val |= 1 << CSR_PIXEL_LINK_MUX_VCP_OFFSET;
+	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+		val |= 1 << CSR_PIXEL_LINK_MUX_HCP_OFFSET;
+	if (mode->flags & DRM_MODE_FLAG_INTERLACE)
+		val |= 0x2;
+
+	writel(val, imx_mhdp->mhdp.regs_sec);
+}
+
+static void imx8qm_pixel_link_valid(u32 dual_mode)
+{
+	struct imx_sc_ipc *handle;
+
+	imx_scu_get_handle(&handle);
+
+	imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_PXL_LINK_MST1_VLD, 1);
+	if (dual_mode)
+		imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_PXL_LINK_MST2_VLD, 1);
+}
+
+static void imx8qm_pixel_link_invalid(u32 dual_mode)
+{
+	struct imx_sc_ipc *handle;
+
+	imx_scu_get_handle(&handle);
+
+	imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_PXL_LINK_MST1_VLD, 0);
+	if (dual_mode)
+		imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_PXL_LINK_MST2_VLD, 0);
+}
+
+static void imx8qm_pixel_link_sync_enable(u32 dual_mode)
+{
+	struct imx_sc_ipc *handle;
+
+	imx_scu_get_handle(&handle);
+
+	if (dual_mode)
+		imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_SYNC_CTRL, 3);
+	else
+		imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_SYNC_CTRL0, 1);
+}
+
+static void imx8qm_pixel_link_sync_disable(u32 dual_mode)
+{
+	struct imx_sc_ipc *handle;
+
+	imx_scu_get_handle(&handle);
+
+	if (dual_mode)
+		imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_SYNC_CTRL, 0);
+	else
+		imx_sc_misc_set_control(handle, IMX_SC_R_DC_0, IMX_SC_C_SYNC_CTRL0, 0);
+}
+
+static void imx8qm_phy_reset(u8 reset)
+{
+	struct imx_sc_ipc *handle;
+
+	imx_scu_get_handle(&handle);
+
+	/* set the pixel link mode and pixel type */
+	imx_sc_misc_set_control(handle, IMX_SC_R_HDMI, IMX_SC_C_PHY_RESET, reset);
+}
+
+static void imx8qm_clk_mux(u8 is_dp)
+{
+	struct imx_sc_ipc *handle;
+
+	imx_scu_get_handle(&handle);
+
+	if (is_dp)
+		/* Enable the 24MHz for HDP PHY */
+		imx_sc_misc_set_control(handle, IMX_SC_R_HDMI, IMX_SC_C_MODE, 1);
+	else
+		imx_sc_misc_set_control(handle, IMX_SC_R_HDMI, IMX_SC_C_MODE, 0);
+}
+
+int imx8qm_clocks_init(struct imx_mhdp_device *imx_mhdp)
+{
+	struct device *dev = imx_mhdp->mhdp.dev;
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	clks->dig_pll = devm_clk_get(dev, "dig_pll");
+	if (IS_ERR(clks->dig_pll)) {
+		dev_warn(dev, "failed to get dig pll clk\n");
+		return PTR_ERR(clks->dig_pll);
+	}
+
+	clks->av_pll = devm_clk_get(dev, "av_pll");
+	if (IS_ERR(clks->av_pll)) {
+		dev_warn(dev, "failed to get av pll clk\n");
+		return PTR_ERR(clks->av_pll);
+	}
+
+	clks->clk_ipg = devm_clk_get(dev, "clk_ipg");
+	if (IS_ERR(clks->clk_ipg)) {
+		dev_warn(dev, "failed to get dp ipg clk\n");
+		return PTR_ERR(clks->clk_ipg);
+	}
+
+	clks->clk_core = devm_clk_get(dev, "clk_core");
+	if (IS_ERR(clks->clk_core)) {
+		dev_warn(dev, "failed to get hdp core clk\n");
+		return PTR_ERR(clks->clk_core);
+	}
+
+	clks->clk_pxl = devm_clk_get(dev, "clk_pxl");
+	if (IS_ERR(clks->clk_pxl)) {
+		dev_warn(dev, "failed to get pxl clk\n");
+		return PTR_ERR(clks->clk_pxl);
+	}
+
+	clks->clk_pxl_mux = devm_clk_get(dev, "clk_pxl_mux");
+	if (IS_ERR(clks->clk_pxl_mux)) {
+		dev_warn(dev, "failed to get pxl mux clk\n");
+		return PTR_ERR(clks->clk_pxl_mux);
+	}
+
+	clks->clk_pxl_link = devm_clk_get(dev, "clk_pxl_link");
+	if (IS_ERR(clks->clk_pxl_link)) {
+		dev_warn(dev, "failed to get pxl link clk\n");
+		return PTR_ERR(clks->clk_pxl_link);
+	}
+
+	clks->lpcg_hdp = devm_clk_get(dev, "lpcg_hdp");
+	if (IS_ERR(clks->lpcg_hdp)) {
+		dev_warn(dev, "failed to get lpcg hdp clk\n");
+		return PTR_ERR(clks->lpcg_hdp);
+	}
+
+	clks->lpcg_msi = devm_clk_get(dev, "lpcg_msi");
+	if (IS_ERR(clks->lpcg_msi)) {
+		dev_warn(dev, "failed to get lpcg msi clk\n");
+		return PTR_ERR(clks->lpcg_msi);
+	}
+
+	clks->lpcg_pxl = devm_clk_get(dev, "lpcg_pxl");
+	if (IS_ERR(clks->lpcg_pxl)) {
+		dev_warn(dev, "failed to get lpcg pxl clk\n");
+		return PTR_ERR(clks->lpcg_pxl);
+	}
+
+	clks->lpcg_vif = devm_clk_get(dev, "lpcg_vif");
+	if (IS_ERR(clks->lpcg_vif)) {
+		dev_warn(dev, "failed to get lpcg vif clk\n");
+		return PTR_ERR(clks->lpcg_vif);
+	}
+
+	clks->lpcg_lis = devm_clk_get(dev, "lpcg_lis");
+	if (IS_ERR(clks->lpcg_lis)) {
+		dev_warn(dev, "failed to get lpcg lis clk\n");
+		return PTR_ERR(clks->lpcg_lis);
+	}
+
+	clks->lpcg_apb = devm_clk_get(dev, "lpcg_apb");
+	if (IS_ERR(clks->lpcg_apb)) {
+		dev_warn(dev, "failed to get lpcg apb clk\n");
+		return PTR_ERR(clks->lpcg_apb);
+	}
+
+	clks->lpcg_apb_csr = devm_clk_get(dev, "lpcg_apb_csr");
+	if (IS_ERR(clks->lpcg_apb_csr)) {
+		dev_warn(dev, "failed to get apb csr clk\n");
+		return PTR_ERR(clks->lpcg_apb_csr);
+	}
+
+	clks->lpcg_apb_ctrl = devm_clk_get(dev, "lpcg_apb_ctrl");
+	if (IS_ERR(clks->lpcg_apb_ctrl)) {
+		dev_warn(dev, "failed to get lpcg apb ctrl clk\n");
+		return PTR_ERR(clks->lpcg_apb_ctrl);
+	}
+
+	clks->clk_i2s_bypass = devm_clk_get(dev, "clk_i2s_bypass");
+	if (IS_ERR(clks->clk_i2s_bypass)) {
+		dev_err(dev, "failed to get i2s bypass clk\n");
+		return PTR_ERR(clks->clk_i2s_bypass);
+	}
+
+	clks->lpcg_i2s = devm_clk_get(dev, "lpcg_i2s");
+	if (IS_ERR(clks->lpcg_i2s)) {
+		dev_err(dev, "failed to get lpcg i2s clk\n");
+		return PTR_ERR(clks->lpcg_i2s);
+	}
+	return true;
+}
+
+static int imx8qm_pixel_clk_enable(struct imx_mhdp_device *imx_mhdp)
+{
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+	struct device *dev = imx_mhdp->mhdp.dev;
+	int ret;
+
+	ret = clk_prepare_enable(clks->av_pll);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre av pll  error\n", __func__);
+		return ret;
+	}
+
+	ret = clk_prepare_enable(clks->clk_pxl);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk pxl error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->clk_pxl_mux);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk pxl mux error\n", __func__);
+		return ret;
+	}
+
+	ret = clk_prepare_enable(clks->clk_pxl_link);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk pxl link error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_vif);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk vif error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_pxl);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre lpcg pxl error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_hdp);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre lpcg hdp error\n", __func__);
+		return ret;
+	}
+	return ret;
+}
+
+static void imx8qm_pixel_clk_disable(struct imx_mhdp_device *imx_mhdp)
+{
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	clk_disable_unprepare(clks->lpcg_pxl);
+	clk_disable_unprepare(clks->lpcg_hdp);
+	clk_disable_unprepare(clks->lpcg_vif);
+	clk_disable_unprepare(clks->clk_pxl);
+	clk_disable_unprepare(clks->clk_pxl_link);
+	clk_disable_unprepare(clks->clk_pxl_mux);
+	clk_disable_unprepare(clks->av_pll);
+}
+
+static void imx8qm_pixel_clk_set_rate(struct imx_mhdp_device *imx_mhdp, u32 pclock)
+{
+	bool dual_mode = imx8qm_video_dual_mode(&imx_mhdp->mhdp);
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	/* pixel clock for HDMI */
+	clk_set_rate(clks->av_pll, pclock);
+
+	if (dual_mode == true) {
+		clk_set_rate(clks->clk_pxl, pclock/2);
+		clk_set_rate(clks->clk_pxl_link, pclock/2);
+	} else {
+		clk_set_rate(clks->clk_pxl_link, pclock);
+		clk_set_rate(clks->clk_pxl, pclock);
+	}
+	clk_set_rate(clks->clk_pxl_mux, pclock);
+}
+
+static int imx8qm_ipg_clk_enable(struct imx_mhdp_device *imx_mhdp)
+{
+	int ret;
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+	struct device *dev = imx_mhdp->mhdp.dev;
+
+	ret = clk_prepare_enable(clks->dig_pll);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre dig pll error\n", __func__);
+		return ret;
+	}
+
+	ret = clk_prepare_enable(clks->clk_ipg);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk_ipg error\n", __func__);
+		return ret;
+	}
+
+	ret = clk_prepare_enable(clks->clk_core);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk core error\n", __func__);
+		return ret;
+	}
+
+	ret = clk_prepare_enable(clks->lpcg_apb);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk apb error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_lis);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk lis error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_msi);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk msierror\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_apb_csr);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk apb csr error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_apb_ctrl);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk apb ctrl error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_i2s);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk i2s error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->clk_i2s_bypass);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk i2s bypass error\n", __func__);
+		return ret;
+	}
+	return ret;
+}
+
+static int imx8qm_ipg_clk_disable(struct imx_mhdp_device *imx_mhdp)
+{
+	int ret;
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+	struct device *dev = imx_mhdp->mhdp.dev;
+
+	ret = clk_prepare_enable(clks->clk_i2s_bypass);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk i2s bypass error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_i2s);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk i2s error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_apb_ctrl);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk apb ctrl error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_apb_csr);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk apb csr error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_msi);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk msierror\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_lis);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk lis error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->lpcg_apb);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk apb error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->clk_core);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk core error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->clk_ipg);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk_ipg error\n", __func__);
+		return ret;
+	}
+	ret = clk_prepare_enable(clks->dig_pll);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre dig pll error\n", __func__);
+		return ret;
+	}
+	return ret;
+}
+
+static void imx8qm_ipg_clk_set_rate(struct imx_mhdp_device *imx_mhdp)
+{
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	/* ipg/core clock */
+	clk_set_rate(clks->dig_pll,  PLL_800MHZ);
+	clk_set_rate(clks->clk_core, PLL_800MHZ/4);
+	clk_set_rate(clks->clk_ipg,  PLL_800MHZ/8);
+}
+
+static void imx8qm_detach_pm_domains(struct imx_mhdp_device *imx_mhdp)
+{
+	if (imx_mhdp->pd_pll1_link && !IS_ERR(imx_mhdp->pd_pll1_link))
+		device_link_del(imx_mhdp->pd_pll1_link);
+	if (imx_mhdp->pd_pll1_dev && !IS_ERR(imx_mhdp->pd_pll1_dev))
+		dev_pm_domain_detach(imx_mhdp->pd_pll1_dev, true);
+
+	if (imx_mhdp->pd_pll0_link && !IS_ERR(imx_mhdp->pd_pll0_link))
+		device_link_del(imx_mhdp->pd_pll0_link);
+	if (imx_mhdp->pd_pll0_dev && !IS_ERR(imx_mhdp->pd_pll0_dev))
+		dev_pm_domain_detach(imx_mhdp->pd_pll0_dev, true);
+
+	if (imx_mhdp->pd_mhdp_link && !IS_ERR(imx_mhdp->pd_mhdp_link))
+		device_link_del(imx_mhdp->pd_mhdp_link);
+	if (imx_mhdp->pd_mhdp_dev && !IS_ERR(imx_mhdp->pd_mhdp_dev))
+		dev_pm_domain_detach(imx_mhdp->pd_mhdp_dev, true);
+
+	imx_mhdp->pd_mhdp_dev = NULL;
+	imx_mhdp->pd_mhdp_link = NULL;
+	imx_mhdp->pd_pll0_dev = NULL;
+	imx_mhdp->pd_pll0_link = NULL;
+	imx_mhdp->pd_pll1_dev = NULL;
+	imx_mhdp->pd_pll1_link = NULL;
+}
+
+static int imx8qm_attach_pm_domains(struct imx_mhdp_device *imx_mhdp)
+{
+	struct device *dev = imx_mhdp->mhdp.dev;
+	u32 flags = DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE;
+	int ret = 0;
+
+	imx_mhdp->pd_mhdp_dev = dev_pm_domain_attach_by_name(dev, "hdmi");
+	if (IS_ERR(imx_mhdp->pd_mhdp_dev)) {
+		ret = PTR_ERR(imx_mhdp->pd_mhdp_dev);
+		dev_err(dev, "Failed to attach dc pd dev: %d\n", ret);
+		goto fail;
+	}
+	imx_mhdp->pd_mhdp_link = device_link_add(dev, imx_mhdp->pd_mhdp_dev, flags);
+	if (IS_ERR(imx_mhdp->pd_mhdp_link)) {
+		ret = PTR_ERR(imx_mhdp->pd_mhdp_link);
+		dev_err(dev, "Failed to add device link to dc pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+	imx_mhdp->pd_pll0_dev = dev_pm_domain_attach_by_name(dev, "pll0");
+	if (IS_ERR(imx_mhdp->pd_pll0_dev)) {
+		ret = PTR_ERR(imx_mhdp->pd_pll0_dev);
+		dev_err(dev, "Failed to attach pll0 pd dev: %d\n", ret);
+		goto fail;
+	}
+	imx_mhdp->pd_pll0_link = device_link_add(dev, imx_mhdp->pd_pll0_dev, flags);
+	if (IS_ERR(imx_mhdp->pd_pll0_link)) {
+		ret = PTR_ERR(imx_mhdp->pd_pll0_link);
+		dev_err(dev, "Failed to add device link to pll0 pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+	imx_mhdp->pd_pll1_dev = dev_pm_domain_attach_by_name(dev, "pll1");
+	if (IS_ERR(imx_mhdp->pd_pll1_dev)) {
+		ret = PTR_ERR(imx_mhdp->pd_pll1_dev);
+		dev_err(dev, "Failed to attach pll0 pd dev: %d\n", ret);
+		goto fail;
+	}
+	imx_mhdp->pd_pll1_link = device_link_add(dev, imx_mhdp->pd_pll1_dev, flags);
+	if (IS_ERR(imx_mhdp->pd_pll1_link)) {
+		ret = PTR_ERR(imx_mhdp->pd_pll1_link);
+		dev_err(dev, "Failed to add device link to pll1 pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+fail:
+	imx8qm_detach_pm_domains(imx_mhdp);
+	return ret;
+}
+
+int cdns_mhdp_power_on_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+
+	/* Power on PM Domains */
+
+	imx8qm_attach_pm_domains(imx_mhdp);
+
+	/* clock init and  rate set */
+	imx8qm_clocks_init(imx_mhdp);
+
+	imx8qm_ipg_clk_set_rate(imx_mhdp);
+
+	/* Init pixel clock with 148.5MHz before FW init */
+	imx8qm_pixel_clk_set_rate(imx_mhdp, 148500000);
+
+	imx8qm_ipg_clk_enable(imx_mhdp);
+
+	imx8qm_clk_mux(imx_mhdp->mhdp.plat_data->is_dp);
+
+	imx8qm_pixel_clk_enable(imx_mhdp);
+
+	imx8qm_phy_reset(1);
+
+	return 0;
+}
+
+int cdns_mhdp_power_off_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+		container_of(mhdp, struct imx_mhdp_device, mhdp);
+
+	imx8qm_phy_reset(0);
+	imx8qm_pixel_clk_disable(imx_mhdp);
+	imx8qm_ipg_clk_disable(imx_mhdp);
+
+	/* Power off PM Domains */
+	imx8qm_detach_pm_domains(imx_mhdp);
+
+	return 0;
+}
+
+void cdns_mhdp_plat_init_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+	bool dual_mode = imx8qm_video_dual_mode(&imx_mhdp->mhdp);
+
+	imx8qm_pixel_link_sync_disable(dual_mode);
+	imx8qm_pixel_link_invalid(dual_mode);
+}
+
+void cdns_mhdp_plat_deinit_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+	bool dual_mode = imx8qm_video_dual_mode(&imx_mhdp->mhdp);
+
+	imx8qm_pixel_link_valid(dual_mode);
+	imx8qm_pixel_link_sync_enable(dual_mode);
+}
+
+void cdns_mhdp_pclk_rate_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+
+	/* set pixel clock before video mode setup */
+	imx8qm_pixel_clk_disable(imx_mhdp);
+
+	imx8qm_pixel_clk_set_rate(imx_mhdp, imx_mhdp->mhdp.mode.clock * 1000);
+
+	imx8qm_pixel_clk_enable(imx_mhdp);
+
+	/* Config pixel link mux */
+	imx8qm_pixel_link_mux(imx_mhdp);
+}
+
+int cdns_mhdp_firmware_write_section(struct imx_mhdp_device *imx_mhdp,
+					const u8 *data, int size, int addr)
+{
+	int i;
+
+	for (i = 0; i < size; i += 4) {
+		u32 val = (unsigned int)data[i] << 0 |
+					(unsigned int)data[i + 1] << 8 |
+					(unsigned int)data[i + 2] << 16 |
+					(unsigned int)data[i + 3] << 24;
+		cdns_mhdp_bus_write(val, &imx_mhdp->mhdp, addr + i);
+	}
+
+	return 0;
+}
+
+static void cdns_mhdp_firmware_load_cont(const struct firmware *fw, void *context)
+{
+	struct imx_mhdp_device *imx_mhdp = context;
+
+	imx_mhdp->fw = fw;
+}
+
+static int cdns_mhdp_firmware_load(struct imx_mhdp_device *imx_mhdp)
+{
+	const u8 *iram;
+	const u8 *dram;
+	u32 rate;
+	int ret;
+
+	/* configure HDMI/DP core clock */
+	rate = clk_get_rate(imx_mhdp->clks.clk_core);
+	if (imx_mhdp->mhdp.is_ls1028a)
+		rate = rate / 4;
+
+	cdns_mhdp_set_fw_clk(&imx_mhdp->mhdp, rate);
+
+	/* skip fw loading if none is specified */
+	if (!imx_mhdp->firmware_name)
+		goto out;
+
+	if (!imx_mhdp->fw) {
+		ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_NOHOTPLUG,
+						imx_mhdp->firmware_name,
+						imx_mhdp->mhdp.dev, GFP_KERNEL,
+						imx_mhdp,
+						cdns_mhdp_firmware_load_cont);
+		if (ret < 0) {
+			DRM_ERROR("failed to load firmware\n");
+			return -ENOENT;
+		}
+	} else {
+		iram = imx_mhdp->fw->data + FW_IRAM_OFFSET;
+		dram = iram + FW_IRAM_SIZE;
+
+		cdns_mhdp_firmware_write_section(imx_mhdp, iram, FW_IRAM_SIZE, ADDR_IMEM);
+		cdns_mhdp_firmware_write_section(imx_mhdp, dram, FW_DRAM_SIZE, ADDR_DMEM);
+	}
+
+out:
+	/* un-reset ucpu */
+	cdns_mhdp_bus_write(0, &imx_mhdp->mhdp, APB_CTRL);
+	DRM_INFO("Started firmware!\n");
+
+	return 0;
+}
+
+int cdns_mhdp_firmware_init_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+	int ret;
+
+	/* load firmware */
+	ret = cdns_mhdp_firmware_load(imx_mhdp);
+	if (ret)
+		return ret;
+
+	ret = cdns_mhdp_check_alive(&imx_mhdp->mhdp);
+	if (ret == false) {
+		DRM_ERROR("NO HDMI FW running\n");
+		return -ENXIO;
+	}
+
+	/* turn on IP activity */
+	cdns_mhdp_set_firmware_active(&imx_mhdp->mhdp, 1);
+
+	DRM_INFO("HDP FW Version - ver %d verlib %d\n",
+			cdns_mhdp_bus_read(mhdp, VER_L) + (cdns_mhdp_bus_read(mhdp, VER_H) << 8),
+			cdns_mhdp_bus_read(mhdp, VER_LIB_H_ADDR) + (cdns_mhdp_bus_read(mhdp, VER_LIB_H_ADDR) << 8));
+
+	return 0;
+}
+
+int cdns_mhdp_suspend_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+
+	imx8qm_pixel_clk_disable(imx_mhdp);
+
+	return 0;
+}
+
+int cdns_mhdp_resume_imx8qm(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp =
+				container_of(mhdp, struct imx_mhdp_device, mhdp);
+
+	imx8qm_pixel_clk_enable(imx_mhdp);
+
+	return cdns_mhdp_firmware_init_imx8qm(mhdp);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-imxdrv.c
@@ -0,0 +1,259 @@
+/*
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * this program is free software; you can redistribute it and/or modify
+ * it under the terms of the gnu general public license version 2 as
+ * published by the free software foundation.
+ */
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/component.h>
+#include <drm/drm_of.h>
+#include <drm/drm_vblank.h>
+#include <drm/drm_crtc_helper.h>
+#include <drm/drm_encoder_slave.h>
+
+#include "cdns-mhdp-imx.h"
+#include "cdns-mhdp-phy.h"
+#include "../imx-drm.h"
+
+static void cdns_mhdp_imx_encoder_disable(struct drm_encoder *encoder)
+{
+	struct cdns_mhdp_device *mhdp = encoder->bridge->driver_private;
+
+	cdns_mhdp_plat_call(mhdp, plat_init);
+}
+
+static void cdns_mhdp_imx_encoder_enable(struct drm_encoder *encoder)
+{
+	struct cdns_mhdp_device *mhdp = encoder->bridge->driver_private;
+
+	cdns_mhdp_plat_call(mhdp, plat_deinit);
+}
+
+static int cdns_mhdp_imx_encoder_atomic_check(struct drm_encoder *encoder,
+				    struct drm_crtc_state *crtc_state,
+				    struct drm_connector_state *conn_state)
+{
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct cdns_mhdp_device *mhdp = encoder->bridge->driver_private;
+
+	if (mhdp->plat_data->video_format != 0)
+		imx_crtc_state->bus_format = mhdp->plat_data->video_format;
+
+	/* Force mode set to recovery weston  hdmi2.0 and DP dispaly */
+	if (mhdp->force_mode_set && conn_state->state->allow_modeset)
+		crtc_state->mode_changed = true;
+
+	return 0;
+}
+
+static const struct drm_encoder_helper_funcs cdns_mhdp_imx_encoder_helper_funcs = {
+	.enable     = cdns_mhdp_imx_encoder_enable,
+	.disable    = cdns_mhdp_imx_encoder_disable,
+	.atomic_check = cdns_mhdp_imx_encoder_atomic_check,
+};
+
+static const struct drm_encoder_funcs cdns_mhdp_imx_encoder_funcs = {
+	.destroy = drm_encoder_cleanup,
+};
+
+static struct cdns_plat_data imx8mq_hdmi_drv_data = {
+	.plat_name = "imx8mq-hdmi",
+	.bind	= cdns_hdmi_bind,
+	.unbind	= cdns_hdmi_unbind,
+	.phy_set = cdns_hdmi_phy_set_imx8mq,
+	.phy_video_valid = cdns_hdmi_phy_video_valid_imx8mq,
+	.bus_type = BUS_TYPE_NORMAL_APB,
+};
+
+static struct cdns_plat_data imx8mq_dp_drv_data = {
+	.plat_name = "imx8mq-dp",
+	.bind	= cdns_dp_bind,
+	.unbind	= cdns_dp_unbind,
+	.phy_set = cdns_dp_phy_set_imx8mq,
+	.bus_type = BUS_TYPE_NORMAL_APB,
+};
+
+static struct cdns_plat_data imx8qm_hdmi_drv_data = {
+	.plat_name = "imx8qm-hdmi",
+	.bind	= cdns_hdmi_bind,
+	.unbind	= cdns_hdmi_unbind,
+	.phy_set = cdns_hdmi_phy_set_imx8qm,
+	.phy_video_valid = cdns_hdmi_phy_video_valid_imx8qm,
+	.power_on = cdns_mhdp_power_on_imx8qm,
+	.power_off = cdns_mhdp_power_off_imx8qm,
+	.firmware_init = cdns_mhdp_firmware_init_imx8qm,
+	.resume = cdns_mhdp_resume_imx8qm,
+	.suspend = cdns_mhdp_suspend_imx8qm,
+	.pclk_rate = cdns_mhdp_pclk_rate_imx8qm,
+	.plat_init = cdns_mhdp_plat_init_imx8qm,
+	.plat_deinit = cdns_mhdp_plat_deinit_imx8qm,
+	.bus_type = BUS_TYPE_LOW4K_APB,
+	.video_format =  MEDIA_BUS_FMT_RGB101010_1X30,
+};
+
+static struct cdns_plat_data imx8qm_dp_drv_data = {
+	.plat_name = "imx8qm-dp",
+	.bind	= cdns_dp_bind,
+	.unbind	= cdns_dp_unbind,
+	.phy_set = cdns_dp_phy_set_imx8qm,
+	.power_on = cdns_mhdp_power_on_imx8qm,
+	.power_off = cdns_mhdp_power_off_imx8qm,
+	.firmware_init = cdns_mhdp_firmware_init_imx8qm,
+	.resume = cdns_mhdp_resume_imx8qm,
+	.suspend = cdns_mhdp_suspend_imx8qm,
+	.pclk_rate = cdns_mhdp_pclk_rate_imx8qm,
+	.plat_init = cdns_mhdp_plat_init_imx8qm,
+	.plat_deinit = cdns_mhdp_plat_deinit_imx8qm,
+	.bus_type = BUS_TYPE_LOW4K_APB,
+	.video_format =  MEDIA_BUS_FMT_RGB101010_1X30,
+	.is_dp = true,
+};
+
+static struct cdns_plat_data ls1028a_dp_drv_data = {
+	.bind = cdns_dp_bind,
+	.unbind = cdns_dp_unbind,
+	.phy_set = cdns_dp_phy_set_imx8mq,
+	.power_on = cdns_mhdp_power_on_ls1028a,
+	.firmware_init = cdns_mhdp_firmware_init_imx8qm,
+	.pclk_rate = cdns_mhdp_pclk_rate_ls1028a,
+	.bus_type = BUS_TYPE_NORMAL_APB,
+};
+
+static const struct of_device_id cdns_mhdp_imx_dt_ids[] = {
+	{ .compatible = "cdn,imx8mq-hdmi",
+	  .data = &imx8mq_hdmi_drv_data
+	},
+	{ .compatible = "cdn,imx8mq-dp",
+	  .data = &imx8mq_dp_drv_data
+	},
+	{ .compatible = "cdn,imx8qm-hdmi",
+	  .data = &imx8qm_hdmi_drv_data
+	},
+	{ .compatible = "cdn,imx8qm-dp",
+	  .data = &imx8qm_dp_drv_data
+	},
+	{ .compatible = "cdn,ls1028a-dp",
+	  .data = &ls1028a_dp_drv_data
+	},
+	{},
+};
+MODULE_DEVICE_TABLE(of, cdns_mhdp_imx_dt_ids);
+
+static int cdns_mhdp_imx_bind(struct device *dev, struct device *master,
+			    void *data)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	const struct cdns_plat_data *plat_data;
+	const struct of_device_id *match;
+	struct drm_device *drm = data;
+	struct drm_encoder *encoder;
+	struct imx_mhdp_device *imx_mhdp;
+	int ret;
+
+	if (!pdev->dev.of_node)
+		return -ENODEV;
+
+	imx_mhdp = devm_kzalloc(&pdev->dev, sizeof(*imx_mhdp), GFP_KERNEL);
+	if (!imx_mhdp)
+		return -ENOMEM;
+
+	match = of_match_node(cdns_mhdp_imx_dt_ids, pdev->dev.of_node);
+	plat_data = match->data;
+	encoder = &imx_mhdp->encoder;
+
+	encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node);
+
+	ret = of_property_read_string(pdev->dev.of_node, "firmware-name",
+					&imx_mhdp->firmware_name);
+	/*
+	 * If we failed to find the CRTC(s) which this encoder is
+	 * supposed to be connected to, it's because the CRTC has
+	 * not been registered yet.  Defer probing, and hope that
+	 * the required CRTC is added later.
+	 */
+	if (encoder->possible_crtcs == 0)
+		return -EPROBE_DEFER;
+
+	drm_encoder_helper_add(encoder, &cdns_mhdp_imx_encoder_helper_funcs);
+	drm_encoder_init(drm, encoder, &cdns_mhdp_imx_encoder_funcs,
+			 DRM_MODE_ENCODER_TMDS, NULL);
+
+
+	imx_mhdp->mhdp.plat_data = plat_data;
+	imx_mhdp->mhdp.dev = dev;
+	imx_mhdp->mhdp.bus_type = plat_data->bus_type;
+	ret = plat_data->bind(pdev, encoder, &imx_mhdp->mhdp);
+	/*
+	 * If cdns_mhdp_bind() fails we'll never call cdns_mhdp_unbind(),
+	 * which would have called the encoder cleanup.  Do it manually.
+	 */
+	if (ret < 0)
+		drm_encoder_cleanup(encoder);
+
+	return ret;
+}
+
+static void cdns_mhdp_imx_unbind(struct device *dev, struct device *master,
+			       void *data)
+{
+	struct imx_mhdp_device *imx_mhdp = dev_get_drvdata(dev);
+
+	imx_mhdp->mhdp.plat_data->unbind(dev);
+}
+
+static const struct component_ops cdns_mhdp_imx_ops = {
+	.bind	= cdns_mhdp_imx_bind,
+	.unbind	= cdns_mhdp_imx_unbind,
+};
+
+static int cdns_mhdp_imx_suspend(struct device *dev)
+{
+	struct imx_mhdp_device *imx_mhdp = dev_get_drvdata(dev);
+
+	cdns_mhdp_plat_call(&imx_mhdp->mhdp, suspend);
+
+	return 0;
+}
+
+static int cdns_mhdp_imx_resume(struct device *dev)
+{
+	struct imx_mhdp_device *imx_mhdp = dev_get_drvdata(dev);
+
+	cdns_mhdp_plat_call(&imx_mhdp->mhdp, resume);
+
+	return 0;
+}
+
+static int cdns_mhdp_imx_probe(struct platform_device *pdev)
+{
+	return component_add(&pdev->dev, &cdns_mhdp_imx_ops);
+}
+
+static int cdns_mhdp_imx_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &cdns_mhdp_imx_ops);
+
+	return 0;
+}
+
+static const struct dev_pm_ops cdns_mhdp_imx_pm_ops = {
+        SET_LATE_SYSTEM_SLEEP_PM_OPS(cdns_mhdp_imx_suspend, cdns_mhdp_imx_resume)
+};
+
+static struct platform_driver cdns_mhdp_imx_platform_driver = {
+	.probe  = cdns_mhdp_imx_probe,
+	.remove = cdns_mhdp_imx_remove,
+	.driver = {
+		.name = "cdns-mhdp-imx",
+		.of_match_table = cdns_mhdp_imx_dt_ids,
+		.pm = &cdns_mhdp_imx_pm_ops,
+	},
+};
+
+module_platform_driver(cdns_mhdp_imx_platform_driver);
+
+MODULE_AUTHOR("Sandor YU <sandor.yu@nxp.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:cdnhdmi-imx");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-ls1028a.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-ls1028a.c
@@ -0,0 +1,110 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP
+ *
+ */
+#include <linux/clk.h>
+#include <drm/drm_vblank.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+
+#include "cdns-mhdp-imx.h"
+
+static const struct of_device_id scfg_device_ids[] = {
+	{ .compatible = "fsl,ls1028a-scfg", },
+	{}
+};
+
+static void ls1028a_phy_reset(u8 reset)
+{
+	struct device_node *scfg_node;
+	void __iomem *scfg_base = NULL;
+
+	scfg_node = of_find_matching_node(NULL, scfg_device_ids);
+	if (scfg_node)
+		scfg_base = of_iomap(scfg_node, 0);
+
+	iowrite32(reset, scfg_base + 0x230);
+}
+
+int ls1028a_clocks_init(struct imx_mhdp_device *imx_mhdp)
+{
+	struct device *dev = imx_mhdp->mhdp.dev;
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	clks->clk_core = devm_clk_get(dev, "clk_core");
+	if (IS_ERR(clks->clk_core)) {
+		dev_warn(dev, "failed to get hdp core clk\n");
+		return PTR_ERR(clks->clk_core);
+	}
+
+	clks->clk_pxl = devm_clk_get(dev, "clk_pxl");
+	if (IS_ERR(clks->clk_pxl)) {
+		dev_warn(dev, "failed to get pxl clk\n");
+		return PTR_ERR(clks->clk_pxl);
+	}
+
+	return true;
+}
+
+static int ls1028a_pixel_clk_enable(struct imx_mhdp_device *imx_mhdp)
+{
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+	struct device *dev = imx_mhdp->mhdp.dev;
+	int ret;
+
+	ret = clk_prepare_enable(clks->clk_pxl);
+	if (ret < 0) {
+		dev_err(dev, "%s, pre clk pxl error\n", __func__);
+		return ret;
+	}
+
+	return ret;
+}
+
+static void ls1028a_pixel_clk_disable(struct imx_mhdp_device *imx_mhdp)
+{
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	clk_disable_unprepare(clks->clk_pxl);
+}
+
+static void ls1028a_pixel_clk_set_rate(struct imx_mhdp_device *imx_mhdp,
+				       u32 pclock)
+{
+	struct imx_hdp_clks *clks = &imx_mhdp->clks;
+
+	clk_set_rate(clks->clk_pxl, pclock);
+}
+
+int cdns_mhdp_power_on_ls1028a(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp = container_of
+				(mhdp, struct imx_mhdp_device, mhdp);
+
+	/* clock init and  rate set */
+	ls1028a_clocks_init(imx_mhdp);
+
+	ls1028a_pixel_clk_enable(imx_mhdp);
+
+	/* Init pixel clock with 148.5MHz before FW init */
+	ls1028a_pixel_clk_set_rate(imx_mhdp, 148500000);
+
+	ls1028a_phy_reset(1);
+
+	return 0;
+}
+
+void cdns_mhdp_pclk_rate_ls1028a(struct cdns_mhdp_device *mhdp)
+{
+	struct imx_mhdp_device *imx_mhdp = container_of
+				(mhdp, struct imx_mhdp_device, mhdp);
+
+	/* set pixel clock before video mode setup */
+	ls1028a_pixel_clk_disable(imx_mhdp);
+
+	ls1028a_pixel_clk_set_rate(imx_mhdp, imx_mhdp->mhdp.mode.clock * 1000);
+
+	ls1028a_pixel_clk_enable(imx_mhdp);
+}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/mhdp/cdns-mhdp-phy.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/mhdp/cdns-mhdp-phy.h
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2019 NXP Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#ifndef _CDN_DP_PHY_H
+#define _CDN_DP_PHY_H
+
+#include <drm/bridge/cdns-mhdp.h>
+
+#define CMN_SSM_BIAS_TMR                0x0022
+#define CMN_PLLSM0_PLLEN_TMR            0x0029
+#define CMN_PLLSM0_PLLPRE_TMR           0x002A
+#define CMN_PLLSM0_PLLVREF_TMR          0x002B
+#define CMN_PLLSM0_PLLLOCK_TMR          0x002C
+#define CMN_PLLSM0_USER_DEF_CTRL        0x002F
+#define CMN_PSM_CLK_CTRL                0x0061
+#define CMN_CDIAG_REFCLK_CTRL           0x0062
+#define CMN_PLL0_VCOCAL_START           0x0081
+#define CMN_PLL0_VCOCAL_INIT_TMR        0x0084
+#define CMN_PLL0_VCOCAL_ITER_TMR        0x0085
+#define CMN_PLL0_INTDIV                 0x0094
+#define CMN_PLL0_FRACDIV                0x0095
+#define CMN_PLL0_HIGH_THR               0x0096
+#define CMN_PLL0_DSM_DIAG               0x0097
+#define CMN_PLL0_SS_CTRL1               0x0098
+#define CMN_PLL0_SS_CTRL2               0x0099
+#define CMN_ICAL_INIT_TMR               0x00C4
+#define CMN_ICAL_ITER_TMR               0x00C5
+#define CMN_RXCAL_INIT_TMR              0x00D4
+#define CMN_RXCAL_ITER_TMR              0x00D5
+#define CMN_TXPUCAL_CTRL                0x00E0
+#define CMN_TXPUCAL_INIT_TMR            0x00E4
+#define CMN_TXPUCAL_ITER_TMR            0x00E5
+#define CMN_TXPDCAL_CTRL                0x00F0
+#define CMN_TXPDCAL_INIT_TMR            0x00F4
+#define CMN_TXPDCAL_ITER_TMR            0x00F5
+#define CMN_ICAL_ADJ_INIT_TMR           0x0102
+#define CMN_ICAL_ADJ_ITER_TMR           0x0103
+#define CMN_RX_ADJ_INIT_TMR             0x0106
+#define CMN_RX_ADJ_ITER_TMR             0x0107
+#define CMN_TXPU_ADJ_CTRL               0x0108
+#define CMN_TXPU_ADJ_INIT_TMR           0x010A
+#define CMN_TXPU_ADJ_ITER_TMR           0x010B
+#define CMN_TXPD_ADJ_CTRL               0x010c
+#define CMN_TXPD_ADJ_INIT_TMR           0x010E
+#define CMN_TXPD_ADJ_ITER_TMR           0x010F
+#define CMN_DIAG_PLL0_FBH_OVRD          0x01C0
+#define CMN_DIAG_PLL0_FBL_OVRD          0x01C1
+#define CMN_DIAG_PLL0_OVRD              0x01C2
+#define CMN_DIAG_PLL0_TEST_MODE         0x01C4
+#define CMN_DIAG_PLL0_V2I_TUNE          0x01C5
+#define CMN_DIAG_PLL0_CP_TUNE           0x01C6
+#define CMN_DIAG_PLL0_LF_PROG           0x01C7
+#define CMN_DIAG_PLL0_PTATIS_TUNE1      0x01C8
+#define CMN_DIAG_PLL0_PTATIS_TUNE2      0x01C9
+#define CMN_DIAG_PLL0_INCLK_CTRL        0x01CA
+#define CMN_DIAG_PLL0_PXL_DIVH          0x01CB
+#define CMN_DIAG_PLL0_PXL_DIVL          0x01CC
+#define CMN_DIAG_HSCLK_SEL              0x01E0
+#define CMN_DIAG_PER_CAL_ADJ            0x01EC
+#define CMN_DIAG_CAL_CTRL               0x01ED
+#define CMN_DIAG_ACYA                   0x01FF
+#define XCVR_PSM_RCTRL                  0x4001
+#define XCVR_PSM_CAL_TMR                0x4002
+#define XCVR_PSM_A0IN_TMR               0x4003
+#define TX_TXCC_CAL_SCLR_MULT_0         0x4047
+#define TX_TXCC_CPOST_MULT_00_0         0x404C
+#define TX_TXCC_MGNFS_MULT_000_0        0x4050
+#define XCVR_DIAG_PLLDRC_CTRL           0x40E0
+#define XCVR_DIAG_PLLDRC_CTRL           0x40E0
+#define XCVR_DIAG_HSCLK_SEL             0x40E1
+#define XCVR_DIAG_BIDI_CTRL             0x40E8
+#define XCVR_DIAG_LANE_FCM_EN_MGN_TMR   0x40F2
+#define XCVR_DIAG_LANE_FCM_EN_MGN       0x40F2
+#define TX_PSC_A0                       0x4100
+#define TX_PSC_A1                       0x4101
+#define TX_PSC_A2                       0x4102
+#define TX_PSC_A3                       0x4103
+#define TX_RCVDET_CTRL                  0x4120
+#define TX_RCVDET_EN_TMR                0x4122
+#define TX_RCVDET_EN_TMR                0x4122
+#define TX_RCVDET_ST_TMR                0x4123
+#define TX_RCVDET_ST_TMR                0x4123
+#define TX_BIST_CTRL                    0x4140
+#define TX_BIST_UDDWR                   0x4141
+#define TX_DIAG_TX_CTRL                 0x41E0
+#define TX_DIAG_TX_DRV                  0x41E1
+#define TX_DIAG_BGREF_PREDRV_DELAY      0x41E7
+#define TX_DIAG_BGREF_PREDRV_DELAY      0x41E7
+#define XCVR_PSM_RCTRL_1                0x4201
+#define TX_TXCC_CAL_SCLR_MULT_1         0x4247
+#define TX_TXCC_CPOST_MULT_00_1         0x424C
+#define TX_TXCC_MGNFS_MULT_000_1        0x4250
+#define XCVR_DIAG_PLLDRC_CTRL_1         0x42E0
+#define XCVR_DIAG_HSCLK_SEL_1           0x42E1
+#define XCVR_DIAG_LANE_FCM_EN_MGN_TMR_1 0x42F2
+#define TX_RCVDET_EN_TMR_1              0x4322
+#define TX_RCVDET_ST_TMR_1              0x4323
+#define TX_DIAG_ACYA_0                  0x41FF
+#define TX_DIAG_ACYA_1                  0x43FF
+#define TX_DIAG_ACYA_2                  0x45FF
+#define TX_DIAG_ACYA_3                  0x47FF
+#define TX_ANA_CTRL_REG_1               0x5020
+#define TX_ANA_CTRL_REG_2               0x5021
+#define TXDA_COEFF_CALC                 0x5022
+#define TX_DIG_CTRL_REG_1               0x5023
+#define TX_DIG_CTRL_REG_2               0x5024
+#define TXDA_CYA_AUXDA_CYA              0x5025
+#define TX_ANA_CTRL_REG_3               0x5026
+#define TX_ANA_CTRL_REG_4               0x5027
+#define TX_ANA_CTRL_REG_5               0x5029
+#define RX_PSC_A0                       0x8000
+#define RX_PSC_CAL                      0x8006
+#define PMA_LANE_CFG                    0xC000
+#define PIPE_CMN_CTRL1                  0xC001
+#define PIPE_CMN_CTRL2                  0xC002
+#define PIPE_COM_LOCK_CFG1              0xC003
+#define PIPE_COM_LOCK_CFG2              0xC004
+#define PIPE_RCV_DET_INH                0xC005
+#define PHY_HDP_MODE_CTRL               0xC008
+#define PHY_HDP_CLK_CTL                 0xC009
+#define STS                             0xC00F
+#define PHY_ISO_CMN_CTRL                0xC010
+#define PHY_ISO_CMN_CTRL                0xC010
+#define PHY_HDP_TX_CTL_L0               0xC408
+#define PHY_DP_TX_CTL                   0xC408
+#define PHY_HDP_TX_CTL_L1               0xC448
+#define PHY_HDP_TX_CTL_L2               0xC488
+#define PHY_HDP_TX_CTL_L3               0xC4C8
+#define PHY_PMA_CMN_CTRL1               0xC800
+#define PMA_CMN_CTRL1                   0xC800
+#define PHY_PMA_ISO_CMN_CTRL            0xC810
+#define PHY_PMA_ISO_PLL_CTRL1           0xC812
+#define PHY_PMA_ISOLATION_CTRL          0xC81F
+#define PHY_ISOLATION_CTRL              0xC81F
+#define PHY_PMA_ISO_XCVR_CTRL           0xCC11
+#define PHY_PMA_ISO_LINK_MODE           0xCC12
+#define PHY_PMA_ISO_PWRST_CTRL          0xCC13
+#define PHY_PMA_ISO_TX_DATA_LO          0xCC14
+#define PHY_PMA_ISO_TX_DATA_HI          0xCC15
+#define PHY_PMA_ISO_RX_DATA_LO          0xCC16
+#define PHY_PMA_ISO_RX_DATA_HI          0xCC17
+
+int cdns_dp_phy_set_imx8mq(struct cdns_mhdp_device *hdp);
+int cdns_dp_phy_set_imx8qm(struct cdns_mhdp_device *hdp);
+bool cdns_hdmi_phy_video_valid_imx8mq(struct cdns_mhdp_device *hdp);
+bool cdns_hdmi_phy_video_valid_imx8qm(struct cdns_mhdp_device *hdp);
+int cdns_hdmi_phy_set_imx8mq(struct cdns_mhdp_device *hdp);
+int cdns_hdmi_phy_set_imx8qm(struct cdns_mhdp_device *hdp);
+#endif /* _CDNS_MHDP_PHY_H */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/parallel-display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/parallel-display.c
@@ -68,11 +68,13 @@
 		ret = of_get_drm_display_mode(np, &imxpd->mode,
 					      &imxpd->bus_flags,
 					      OF_USE_NATIVE_MODE);
-		if (ret)
+		if (ret) {
+			drm_mode_destroy(connector->dev, mode);
 			return ret;
+		}
 
 		drm_mode_copy(mode, &imxpd->mode);
-		mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+		mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
 		drm_mode_probed_add(connector, mode);
 		num_modes++;
 	}
@@ -135,7 +137,6 @@
 
 static const struct drm_connector_helper_funcs imx_pd_connector_helper_funcs = {
 	.get_modes = imx_pd_connector_get_modes,
-	.best_encoder = imx_pd_connector_best_encoder,
 };
 
 static const struct drm_encoder_funcs imx_pd_encoder_funcs = {
@@ -204,9 +205,14 @@
 	u32 bus_format = 0;
 	const char *fmt;
 
-	imxpd = devm_kzalloc(dev, sizeof(*imxpd), GFP_KERNEL);
-	if (!imxpd)
-		return -ENOMEM;
+	imxpd = dev_get_drvdata(dev);
+	memset(imxpd, 0, sizeof(*imxpd));
+
+	/* port@1 is the output port */
+	ret = drm_of_find_panel_or_bridge(np, 1, 0, &imxpd->panel,
+					  &imxpd->bridge);
+	if (ret && ret != -ENODEV)
+		return ret;
 
 	edidp = of_get_property(np, "edid", &imxpd->edid_len);
 	if (edidp)
@@ -225,19 +231,12 @@
 	}
 	imxpd->bus_format = bus_format;
 
-	/* port@1 is the output port */
-	ret = drm_of_find_panel_or_bridge(np, 1, 0, &imxpd->panel, &imxpd->bridge);
-	if (ret && ret != -ENODEV)
-		return ret;
-
 	imxpd->dev = dev;
 
 	ret = imx_pd_register(drm, imxpd);
 	if (ret)
 		return ret;
 
-	dev_set_drvdata(dev, imxpd);
-
 	return 0;
 }
 
@@ -259,6 +258,14 @@
 
 static int imx_pd_probe(struct platform_device *pdev)
 {
+	struct imx_parallel_display *imxpd;
+
+	imxpd = devm_kzalloc(&pdev->dev, sizeof(*imxpd), GFP_KERNEL);
+	if (!imxpd)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, imxpd);
+
 	return component_add(&pdev->dev, &imx_pd_ops);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/sec_mipi_dphy_ln14lpp.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/sec_mipi_dphy_ln14lpp.h
@@ -0,0 +1,227 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __SEC_DSIM_DPHY_LN14LPP_H__
+#define __SEC_DSIM_DPHY_LN14LPP_H__
+
+#include <drm/bridge/sec_mipi_dsim.h>
+
+/* descending order based on 'bit_clk' value */
+static const struct sec_mipi_dsim_dphy_timing dphy_timing_ln14lpp_v1p2[] = {
+	{ DSIM_DPHY_TIMING(2100, 19, 91, 22, 19, 20, 35, 22, 15, 26), },
+	{ DSIM_DPHY_TIMING(2090, 19, 91, 22, 19, 19, 35, 22, 15, 26), },
+	{ DSIM_DPHY_TIMING(2080, 19, 91, 21, 18, 19, 35, 22, 15, 26), },
+	{ DSIM_DPHY_TIMING(2070, 18, 90, 21, 18, 19, 35, 22, 15, 25), },
+	{ DSIM_DPHY_TIMING(2060, 18, 90, 21, 18, 19, 34, 22, 15, 25), },
+	{ DSIM_DPHY_TIMING(2050, 18, 89, 21, 18, 19, 34, 22, 15, 25), },
+	{ DSIM_DPHY_TIMING(2040, 18, 89, 21, 18, 19, 34, 21, 15, 25), },
+	{ DSIM_DPHY_TIMING(2030, 18, 88, 21, 18, 19, 34, 21, 15, 25), },
+	{ DSIM_DPHY_TIMING(2020, 18, 88, 21, 18, 19, 34, 21, 15, 25), },
+	{ DSIM_DPHY_TIMING(2010, 18, 87, 21, 18, 19, 34, 21, 15, 25), },
+	{ DSIM_DPHY_TIMING(2000, 18, 87, 21, 18, 19, 33, 21, 15, 25), },
+	{ DSIM_DPHY_TIMING(1990, 18, 87, 21, 18, 18, 33, 21, 14, 24), },
+	{ DSIM_DPHY_TIMING(1980, 18, 86, 21, 18, 18, 33, 21, 14, 24), },
+	{ DSIM_DPHY_TIMING(1970, 17, 86, 21, 17, 18, 33, 21, 14, 24), },
+	{ DSIM_DPHY_TIMING(1960, 17, 85, 21, 17, 18, 33, 21, 14, 24), },
+	{ DSIM_DPHY_TIMING(1950, 17, 85, 21, 17, 18, 32, 21, 14, 24), },
+	{ DSIM_DPHY_TIMING(1940, 17, 84, 20, 17, 18, 32, 21, 14, 24), },
+	{ DSIM_DPHY_TIMING(1930, 17, 84, 20, 17, 18, 32, 20, 14, 24), },
+	{ DSIM_DPHY_TIMING(1920, 17, 84, 20, 17, 18, 32, 20, 14, 24), },
+	{ DSIM_DPHY_TIMING(1910, 17, 83, 20, 17, 18, 32, 20, 14, 23), },
+	{ DSIM_DPHY_TIMING(1900, 17, 83, 20, 17, 18, 32, 20, 14, 23), },
+	{ DSIM_DPHY_TIMING(1890, 17, 82, 20, 17, 18, 31, 20, 14, 23), },
+	{ DSIM_DPHY_TIMING(1880, 17, 82, 20, 17, 17, 31, 20, 14, 23), },
+	{ DSIM_DPHY_TIMING(1870, 17, 81, 20, 17, 17, 31, 20, 14, 23), },
+	{ DSIM_DPHY_TIMING(1860, 16, 81, 20, 17, 17, 31, 20, 13, 23), },
+	{ DSIM_DPHY_TIMING(1850, 16, 80, 20, 16, 17, 31, 20, 13, 23), },
+	{ DSIM_DPHY_TIMING(1840, 16, 80, 20, 16, 17, 30, 20, 13, 23), },
+	{ DSIM_DPHY_TIMING(1830, 16, 80, 20, 16, 17, 30, 20, 13, 22), },
+	{ DSIM_DPHY_TIMING(1820, 16, 79, 20, 16, 17, 30, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1810, 16, 79, 19, 16, 17, 30, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1800, 16, 78, 19, 16, 17, 30, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1790, 16, 78, 19, 16, 17, 30, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1780, 16, 77, 19, 16, 16, 29, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1770, 16, 77, 19, 16, 16, 29, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1760, 16, 77, 19, 16, 16, 29, 19, 13, 22), },
+	{ DSIM_DPHY_TIMING(1750, 15, 76, 19, 16, 16, 29, 19, 13, 21), },
+	{ DSIM_DPHY_TIMING(1740, 15, 76, 19, 15, 16, 29, 19, 13, 21), },
+	{ DSIM_DPHY_TIMING(1730, 15, 75, 19, 15, 16, 28, 19, 12, 21), },
+	{ DSIM_DPHY_TIMING(1720, 15, 75, 19, 15, 16, 28, 19, 12, 21), },
+	{ DSIM_DPHY_TIMING(1710, 15, 74, 19, 15, 16, 28, 18, 12, 21), },
+	{ DSIM_DPHY_TIMING(1700, 15, 74, 19, 15, 16, 28, 18, 12, 21), },
+	{ DSIM_DPHY_TIMING(1690, 15, 73, 19, 15, 16, 28, 18, 12, 21), },
+	{ DSIM_DPHY_TIMING(1680, 15, 73, 18, 15, 16, 28, 18, 12, 21), },
+	{ DSIM_DPHY_TIMING(1670, 15, 73, 18, 15, 15, 27, 18, 12, 20), },
+	{ DSIM_DPHY_TIMING(1660, 15, 72, 18, 15, 15, 27, 18, 12, 20), },
+	{ DSIM_DPHY_TIMING(1650, 14, 72, 18, 15, 15, 27, 18, 12, 20), },
+	{ DSIM_DPHY_TIMING(1640, 14, 71, 18, 15, 15, 27, 18, 12, 20), },
+	{ DSIM_DPHY_TIMING(1630, 14, 71, 18, 15, 15, 27, 18, 12, 20), },
+	{ DSIM_DPHY_TIMING(1620, 14, 70, 18, 14, 15, 26, 18, 12, 20), },
+	{ DSIM_DPHY_TIMING(1610, 14, 70, 18, 14, 15, 26, 17, 12, 20), },
+	{ DSIM_DPHY_TIMING(1600, 14, 70, 18, 14, 15, 26, 17, 12, 20), },
+	{ DSIM_DPHY_TIMING(1590, 14, 69, 18, 14, 15, 26, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1580, 14, 69, 18, 14, 15, 26, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1570, 14, 68, 18, 14, 15, 26, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1560, 14, 68, 18, 14, 14, 25, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1550, 14, 67, 18, 14, 14, 25, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1540, 13, 67, 17, 14, 14, 25, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1530, 13, 66, 17, 14, 14, 25, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1520, 13, 66, 17, 14, 14, 25, 17, 11, 19), },
+	{ DSIM_DPHY_TIMING(1510, 13, 66, 17, 13, 14, 24, 17, 11, 18), },
+	{ DSIM_DPHY_TIMING(1500, 13, 65, 17, 13, 14, 24, 16, 11, 18), },
+	{ DSIM_DPHY_TIMING(1490, 13, 65, 17, 13, 14, 24, 16, 11, 18), },
+	{ DSIM_DPHY_TIMING(1480, 13, 64, 17, 13, 14, 24, 16, 11, 18), },
+	{ DSIM_DPHY_TIMING(1470, 13, 64, 17, 13, 14, 24, 16, 11, 18), },
+	{ DSIM_DPHY_TIMING(1460, 13, 63, 17, 13, 13, 24, 16, 10, 18), },
+	{ DSIM_DPHY_TIMING(1450, 13, 63, 17, 13, 13, 23, 16, 10, 18), },
+	{ DSIM_DPHY_TIMING(1440, 13, 63, 17, 13, 13, 23, 16, 10, 18), },
+	{ DSIM_DPHY_TIMING(1430, 12, 62, 17, 13, 13, 23, 16, 10, 17), },
+	{ DSIM_DPHY_TIMING(1420, 12, 62, 17, 13, 13, 23, 16, 10, 17), },
+	{ DSIM_DPHY_TIMING(1410, 12, 61, 16, 13, 13, 23, 16, 10, 17), },
+	{ DSIM_DPHY_TIMING(1400, 12, 61, 16, 13, 13, 23, 16, 10, 17), },
+	{ DSIM_DPHY_TIMING(1390, 12, 60, 16, 12, 13, 22, 15, 10, 17), },
+	{ DSIM_DPHY_TIMING(1380, 12, 60, 16, 12, 13, 22, 15, 10, 17), },
+	{ DSIM_DPHY_TIMING(1370, 12, 59, 16, 12, 13, 22, 15, 10, 17), },
+	{ DSIM_DPHY_TIMING(1360, 12, 59, 16, 12, 13, 22, 15, 10, 17), },
+	{ DSIM_DPHY_TIMING(1350, 12, 59, 16, 12, 12, 22, 15, 10, 16), },
+	{ DSIM_DPHY_TIMING(1340, 12, 58, 16, 12, 12, 21, 15, 10, 16), },
+	{ DSIM_DPHY_TIMING(1330, 11, 58, 16, 12, 12, 21, 15,  9, 16), },
+	{ DSIM_DPHY_TIMING(1320, 11, 57, 16, 12, 12, 21, 15,  9, 16), },
+	{ DSIM_DPHY_TIMING(1310, 11, 57, 16, 12, 12, 21, 15,  9, 16), },
+	{ DSIM_DPHY_TIMING(1300, 11, 56, 16, 12, 12, 21, 15,  9, 16), },
+	{ DSIM_DPHY_TIMING(1290, 11, 56, 16, 12, 12, 21, 15,  9, 16), },
+	{ DSIM_DPHY_TIMING(1280, 11, 56, 15, 11, 12, 20, 14,  9, 16), },
+	{ DSIM_DPHY_TIMING(1270, 11, 55, 15, 11, 12, 20, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1260, 11, 55, 15, 11, 12, 20, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1250, 11, 54, 15, 11, 11, 20, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1240, 11, 54, 15, 11, 11, 20, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1230, 11, 53, 15, 11, 11, 19, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1220, 10, 53, 15, 11, 11, 19, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1210, 10, 52, 15, 11, 11, 19, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1200, 10, 52, 15, 11, 11, 19, 14,  9, 15), },
+	{ DSIM_DPHY_TIMING(1190, 10, 52, 15, 11, 11, 19, 14,  8, 14), },
+	{ DSIM_DPHY_TIMING(1180, 10, 51, 15, 11, 11, 19, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1170, 10, 51, 15, 10, 11, 18, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1160, 10, 50, 15, 10, 11, 18, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1150, 10, 50, 15, 10, 11, 18, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1140, 10, 49, 14, 10, 10, 18, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1130, 10, 49, 14, 10, 10, 18, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1120, 10, 49, 14, 10, 10, 17, 13,  8, 14), },
+	{ DSIM_DPHY_TIMING(1110,  9, 48, 14, 10, 10, 17, 13,  8, 13), },
+	{ DSIM_DPHY_TIMING(1100,  9, 48, 14, 10, 10, 17, 13,  8, 13), },
+	{ DSIM_DPHY_TIMING(1090,  9, 47, 14, 10, 10, 17, 13,  8, 13), },
+	{ DSIM_DPHY_TIMING(1080,  9, 47, 14, 10, 10, 17, 13,  8, 13), },
+	{ DSIM_DPHY_TIMING(1070,  9, 46, 14, 10, 10, 17, 12,  8, 13), },
+	{ DSIM_DPHY_TIMING(1060,  9, 46, 14, 10, 10, 16, 12,  7, 13), },
+	{ DSIM_DPHY_TIMING(1050,  9, 45, 14,  9, 10, 16, 12,  7, 13), },
+	{ DSIM_DPHY_TIMING(1040,  9, 45, 14,  9, 10, 16, 12,  7, 13), },
+	{ DSIM_DPHY_TIMING(1030,  9, 45, 14,  9,  9, 16, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING(1020,  9, 44, 14,  9,  9, 16, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING(1010,  8, 44, 13,  9,  9, 15, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING(1000,  8, 43, 13,  9,  9, 15, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING( 990,  8, 43, 13,  9,  9, 15, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING( 980,  8, 42, 13,  9,  9, 15, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING( 970,  8, 42, 13,  9,  9, 15, 12,  7, 12), },
+	{ DSIM_DPHY_TIMING( 960,  8, 42, 13,  9,  9, 15, 11,  7, 12), },
+	{ DSIM_DPHY_TIMING( 950,  8, 41, 13,  9,  9, 14, 11,  7, 11), },
+	{ DSIM_DPHY_TIMING( 940,  8, 41, 13,  8,  9, 14, 11,  7, 11), },
+	{ DSIM_DPHY_TIMING( 930,  8, 40, 13,  8,  8, 14, 11,  6, 11), },
+	{ DSIM_DPHY_TIMING( 920,  8, 40, 13,  8,  8, 14, 11,  6, 11), },
+	{ DSIM_DPHY_TIMING( 910,  8, 39, 13,  8,  8, 14, 11,  6, 11), },
+	{ DSIM_DPHY_TIMING( 900,  7, 39, 13,  8,  8, 13, 11,  6, 11), },
+	{ DSIM_DPHY_TIMING( 890,  7, 38, 13,  8,  8, 13, 11,  6, 11), },
+	{ DSIM_DPHY_TIMING( 880,  7, 38, 12,  8,  8, 13, 11,  6, 11), },
+	{ DSIM_DPHY_TIMING( 870,  7, 38, 12,  8,  8, 13, 11,  6, 10), },
+	{ DSIM_DPHY_TIMING( 860,  7, 37, 12,  8,  8, 13, 11,  6, 10), },
+	{ DSIM_DPHY_TIMING( 850,  7, 37, 12,  8,  8, 13, 10,  6, 10), },
+	{ DSIM_DPHY_TIMING( 840,  7, 36, 12,  8,  8, 12, 10,  6, 10), },
+	{ DSIM_DPHY_TIMING( 830,  7, 36, 12,  8,  8, 12, 10,  6, 10), },
+	{ DSIM_DPHY_TIMING( 820,  7, 35, 12,  7,  7, 12, 10,  6, 10), },
+	{ DSIM_DPHY_TIMING( 810,  7, 35, 12,  7,  7, 12, 10,  6, 10), },
+	{ DSIM_DPHY_TIMING( 800,  7, 35, 12,  7,  7, 12, 10,  6, 10), },
+	{ DSIM_DPHY_TIMING( 790,  6, 34, 12,  7,  7, 11, 10,  5,  9), },
+	{ DSIM_DPHY_TIMING( 780,  6, 34, 12,  7,  7, 11, 10,  5,  9), },
+	{ DSIM_DPHY_TIMING( 770,  6, 33, 12,  7,  7, 11, 10,  5,  9), },
+	{ DSIM_DPHY_TIMING( 760,  6, 33, 12,  7,  7, 11, 10,  5,  9), },
+	{ DSIM_DPHY_TIMING( 750,  6, 32, 12,  7,  7, 11,  9,  5,  9), },
+	{ DSIM_DPHY_TIMING( 740,  6, 32, 11,  7,  7, 11,  9,  5,  9), },
+	{ DSIM_DPHY_TIMING( 730,  6, 31, 11,  7,  7, 10,  9,  5,  9), },
+	{ DSIM_DPHY_TIMING( 720,  6, 31, 11,  7,  6, 10,  9,  5,  9), },
+	{ DSIM_DPHY_TIMING( 710,  6, 31, 11,  6,  6, 10,  9,  5,  8), },
+	{ DSIM_DPHY_TIMING( 700,  6, 30, 11,  6,  6, 10,  9,  5,  8), },
+	{ DSIM_DPHY_TIMING( 690,  5, 30, 11,  6,  6, 10,  9,  5,  8), },
+	{ DSIM_DPHY_TIMING( 680,  5, 29, 11,  6,  6,  9,  9,  5,  8), },
+	{ DSIM_DPHY_TIMING( 670,  5, 29, 11,  6,  6,  9,  9,  5,  8), },
+	{ DSIM_DPHY_TIMING( 660,  5, 28, 11,  6,  6,  9,  9,  4,  8), },
+	{ DSIM_DPHY_TIMING( 650,  5, 28, 11,  6,  6,  9,  9,  4,  8), },
+	{ DSIM_DPHY_TIMING( 640,  5, 28, 11,  6,  6,  9,  8,  4,  8), },
+	{ DSIM_DPHY_TIMING( 630,  5, 27, 11,  6,  6,  9,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 620,  5, 27, 11,  6,  6,  8,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 610,  5, 26, 10,  6,  5,  8,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 600,  5, 26, 10,  6,  5,  8,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 590,  5, 25, 10,  5,  5,  8,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 580,  4, 25, 10,  5,  5,  8,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 570,  4, 24, 10,  5,  5,  7,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 560,  4, 24, 10,  5,  5,  7,  8,  4,  7), },
+	{ DSIM_DPHY_TIMING( 550,  4, 24, 10,  5,  5,  7,  8,  4,  6), },
+	{ DSIM_DPHY_TIMING( 540,  4, 23, 10,  5,  5,  7,  8,  4,  6), },
+	{ DSIM_DPHY_TIMING( 530,  4, 23, 10,  5,  5,  7,  7,  3,  6), },
+	{ DSIM_DPHY_TIMING( 520,  4, 22, 10,  5,  5,  7,  7,  3,  6), },
+	{ DSIM_DPHY_TIMING( 510,  4, 22, 10,  5,  5,  6,  7,  3,  6), },
+	{ DSIM_DPHY_TIMING( 500,  4, 21, 10,  5,  4,  6,  7,  3,  6), },
+	{ DSIM_DPHY_TIMING( 490,  4, 21, 10,  5,  4,  6,  7,  3,  6), },
+	{ DSIM_DPHY_TIMING( 480,  4, 21,  9,  4,  4,  6,  7,  3,  6), },
+	{ DSIM_DPHY_TIMING( 470,  3, 20,  9,  4,  4,  6,  7,  3,  5), },
+	{ DSIM_DPHY_TIMING( 460,  3, 20,  9,  4,  4,  5,  7,  3,  5), },
+	{ DSIM_DPHY_TIMING( 450,  3, 19,  9,  4,  4,  5,  7,  3,  5), },
+	{ DSIM_DPHY_TIMING( 440,  3, 19,  9,  4,  4,  5,  7,  3,  5), },
+	{ DSIM_DPHY_TIMING( 430,  3, 18,  9,  4,  4,  5,  7,  3,  5), },
+	{ DSIM_DPHY_TIMING( 420,  3, 18,  9,  4,  4,  5,  6,  3,  5), },
+	{ DSIM_DPHY_TIMING( 410,  3, 17,  9,  4,  4,  5,  6,  3,  5), },
+	{ DSIM_DPHY_TIMING( 400,  3, 17,  9,  4,  3,  4,  6,  3,  5), },
+	{ DSIM_DPHY_TIMING( 390,  3, 17,  9,  4,  3,  4,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 380,  3, 16,  9,  4,  3,  4,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 370,  2, 16,  9,  3,  3,  4,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 360,  2, 15,  9,  3,  3,  4,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 350,  2, 15,  9,  3,  3,  3,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 340,  2, 14,  8,  3,  3,  3,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 330,  2, 14,  8,  3,  3,  3,  6,  2,  4), },
+	{ DSIM_DPHY_TIMING( 320,  2, 14,  8,  3,  3,  3,  5,  2,  4), },
+	{ DSIM_DPHY_TIMING( 310,  2, 13,  8,  3,  3,  3,  5,  2,  3), },
+	{ DSIM_DPHY_TIMING( 300,  2, 13,  8,  3,  3,  3,  5,  2,  3), },
+	{ DSIM_DPHY_TIMING( 290,  2, 12,  8,  3,  2,  2,  5,  2,  3), },
+	{ DSIM_DPHY_TIMING( 280,  2, 12,  8,  3,  2,  2,  5,  2,  3), },
+	{ DSIM_DPHY_TIMING( 270,  2, 11,  8,  3,  2,  2,  5,  2,  3), },
+	{ DSIM_DPHY_TIMING( 260,  1, 11,  8,  3,  2,  2,  5,  1,  3), },
+	{ DSIM_DPHY_TIMING( 250,  1, 10,  8,  2,  2,  2,  5,  1,  3), },
+	{ DSIM_DPHY_TIMING( 240,  1,  9,  8,  2,  2,  1,  5,  1,  3), },
+	{ DSIM_DPHY_TIMING( 230,  1,  8,  8,  2,  2,  1,  5,  1,  2), },
+	{ DSIM_DPHY_TIMING( 220,  1,  8,  8,  2,  2,  1,  5,  1,  2), },
+	{ DSIM_DPHY_TIMING( 210,  1,  7,  7,  2,  2,  1,  4,  1,  2), },
+	{ DSIM_DPHY_TIMING( 200,  1,  7,  7,  2,  2,  1,  4,  1,  2), },
+	{ DSIM_DPHY_TIMING( 190,  1,  7,  7,  2,  1,  1,  4,  1,  2), },
+	{ DSIM_DPHY_TIMING( 180,  1,  6,  7,  2,  1,  0,  4,  1,  2), },
+	{ DSIM_DPHY_TIMING( 170,  1,  6,  7,  2,  1,  0,  4,  1,  2), },
+	{ DSIM_DPHY_TIMING( 160,  1,  6,  7,  2,  1,  0,  4,  1,  2), },
+	{ DSIM_DPHY_TIMING( 150,  0,  5,  7,  2,  1,  0,  4,  1,  1), },
+	{ DSIM_DPHY_TIMING( 140,  0,  5,  7,  1,  1,  0,  4,  1,  1), },
+	{ DSIM_DPHY_TIMING( 130,  0,  4,  7,  1,  1,  0,  4,  0,  1), },
+	{ DSIM_DPHY_TIMING( 120,  0,  4,  7,  1,  1,  0,  4,  0,  1), },
+	{ DSIM_DPHY_TIMING( 110,  0,  3,  7,  1,  0,  0,  4,  0,  1), },
+	{ DSIM_DPHY_TIMING( 100,  0,  3,  7,  1,  0,  0,  3,  0,  1), },
+	{ DSIM_DPHY_TIMING(  90,  0,  2,  7,  1,  0,  0,  3,  0,  1), },
+	{ DSIM_DPHY_TIMING(  80,  0,  2,  6,  1,  0,  0,  3,  0,  1), },
+};
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/sec_mipi_dsim-imx.c
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/sec_mipi_dsim-imx.c
@@ -0,0 +1,494 @@
+/*
+ * Samsung MIPI DSI Host Controller on IMX
+ *
+ * Copyright 2018-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/component.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/mfd/syscon.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/regmap.h>
+#include <linux/reset.h>
+#include <drm/bridge/sec_mipi_dsim.h>
+#include <drm/drm_bridge.h>
+#include <drm/drm_encoder.h>
+#include <drm/drm_modeset_helper_vtables.h>
+
+#include "imx-drm.h"
+#include "sec_mipi_dphy_ln14lpp.h"
+#include "sec_mipi_pll_1432x.h"
+
+#define DRIVER_NAME "imx_sec_dsim_drv"
+
+struct imx_sec_dsim_device {
+	struct device *dev;
+	struct drm_encoder encoder;
+
+	struct reset_control *soft_resetn;
+	struct reset_control *clk_enable;
+	struct reset_control *mipi_reset;
+	struct regmap *blk_ctl;
+
+	atomic_t rpm_suspended;
+};
+
+#define enc_to_dsim(enc) container_of(enc, struct imx_sec_dsim_device, encoder)
+
+static struct imx_sec_dsim_device *dsim_dev;
+
+#if CONFIG_PM
+static int imx_sec_dsim_runtime_suspend(struct device *dev);
+static int imx_sec_dsim_runtime_resume(struct device *dev);
+#else
+static int imx_sec_dsim_runtime_suspend(struct device *dev)
+{
+	return 0;
+}
+static int imx_sec_dsim_runtime_resume(struct device *dev)
+{
+	return 0;
+}
+#endif
+
+static int sec_dsim_rstc_reset(struct reset_control *rstc, bool assert)
+{
+	int ret;
+
+	if (!rstc)
+		return 0;
+
+	ret = assert ? reset_control_assert(rstc)	:
+		       reset_control_deassert(rstc);
+
+	return ret;
+}
+
+int imx8mp_get_ldo_trim(int ldo);
+
+static void imx_sec_dsim_encoder_helper_enable(struct drm_encoder *encoder)
+{
+	int ret, reg;
+
+	struct imx_sec_dsim_device *dsim_dev = enc_to_dsim(encoder);
+
+	pm_runtime_get_sync(dsim_dev->dev);
+
+	if (dsim_dev->blk_ctl) {
+		reg = imx8mp_get_ldo_trim(0);
+		if(reg >= 0)
+			regmap_write(dsim_dev->blk_ctl, 0x58, reg & 0x1f);
+	}
+
+	ret = sec_dsim_rstc_reset(dsim_dev->mipi_reset, false);
+	if (ret)
+		dev_err(dsim_dev->dev, "deassert mipi_reset failed\n");
+}
+
+static void imx_sec_dsim_encoder_helper_disable(struct drm_encoder *encoder)
+{
+	int ret;
+	struct imx_sec_dsim_device *dsim_dev = enc_to_dsim(encoder);
+
+	ret = sec_dsim_rstc_reset(dsim_dev->mipi_reset, true);
+	if (ret)
+		dev_err(dsim_dev->dev, "deassert mipi_reset failed\n");
+
+	pm_runtime_put_sync(dsim_dev->dev);
+}
+
+static int imx_sec_dsim_encoder_helper_atomic_check(struct drm_encoder *encoder,
+						    struct drm_crtc_state *crtc_state,
+						    struct drm_connector_state *conn_state)
+{
+	int i, ret;
+	u32 bus_format;
+	unsigned int num_bus_formats;
+	struct imx_sec_dsim_device *dsim_dev = enc_to_dsim(encoder);
+	struct drm_bridge *bridge = encoder->bridge;
+	struct drm_display_mode *adjusted_mode = &crtc_state->adjusted_mode;
+	struct imx_crtc_state *imx_crtc_state = to_imx_crtc_state(crtc_state);
+	struct drm_display_info *display_info = &conn_state->connector->display_info;
+
+	num_bus_formats = display_info->num_bus_formats;
+	if (unlikely(!num_bus_formats))
+		dev_warn(dsim_dev->dev, "no bus formats assigned by connector\n");
+
+	bus_format = adjusted_mode->private_flags & 0xffff;
+
+	for (i = 0; i < num_bus_formats; i++) {
+		if (display_info->bus_formats[i] != bus_format)
+			continue;
+		break;
+	}
+
+	if (i && i == num_bus_formats) {
+		dev_err(dsim_dev->dev, "invalid bus format for connector\n");
+		return -EINVAL;
+	}
+
+	/* check pll out */
+	ret = sec_mipi_dsim_check_pll_out(bridge->driver_private,
+					  adjusted_mode);
+	if (ret)
+		return ret;
+
+	/* sec dsim can only accept active hight DE */
+	imx_crtc_state->bus_flags |= DRM_BUS_FLAG_DE_HIGH;
+
+	/* For the dotclock polarity, default is neg edge;
+	 * and in the dsim spec, there is no explict words
+	 * to illustrate the dotclock polarity requirement.
+	 */
+	imx_crtc_state->bus_flags |= DRM_BUS_FLAG_PIXDATA_NEGEDGE;
+
+	/* set the bus format for CRTC output which should be
+	 * the same as the bus format between dsim and connector,
+	 * since dsim cannot do any pixel conversions.
+	 */
+	imx_crtc_state->bus_format = bus_format;
+
+	return 0;
+}
+
+static const struct drm_encoder_helper_funcs imx_sec_dsim_encoder_helper_funcs = {
+	.enable  = imx_sec_dsim_encoder_helper_enable,
+	.disable = imx_sec_dsim_encoder_helper_disable,
+	.atomic_check = imx_sec_dsim_encoder_helper_atomic_check,
+};
+
+static const struct drm_encoder_funcs imx_sec_dsim_encoder_funcs = {
+	.destroy = imx_drm_encoder_destroy,
+};
+
+static const struct sec_mipi_dsim_plat_data imx8mm_mipi_dsim_plat_data = {
+	.version	= 0x1060200,
+	.max_data_lanes = 4,
+	.max_data_rate  = 1500000000ULL,
+	.dphy_pll	= &pll_1432x,
+	.dphy_timing	= dphy_timing_ln14lpp_v1p2,
+	.num_dphy_timing = ARRAY_SIZE(dphy_timing_ln14lpp_v1p2),
+	.dphy_timing_cmp = dphy_timing_default_cmp,
+	.mode_valid	= NULL,
+};
+
+static const struct of_device_id imx_sec_dsim_dt_ids[] = {
+	{
+		.compatible = "fsl,imx8mm-mipi-dsim",
+		.data = &imx8mm_mipi_dsim_plat_data,
+	},
+	{
+		.compatible = "fsl,imx8mn-mipi-dsim",
+		.data = &imx8mm_mipi_dsim_plat_data,
+	},
+	{
+		.compatible = "fsl,imx8mp-mipi-dsim",
+		.data = &imx8mm_mipi_dsim_plat_data,
+	},
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx_sec_dsim_dt_ids);
+
+static int sec_dsim_of_parse_resets(struct imx_sec_dsim_device *dsim)
+{
+	int ret;
+	struct device *dev = dsim->dev;
+	struct device_node *np = dev->of_node;
+	struct device_node *parent, *child;
+	struct of_phandle_args args;
+	struct reset_control *rstc;
+	const char *compat;
+	uint32_t len, rstc_num = 0;
+
+	/* TODO: bypass resets for imx8mp platform */
+	compat = of_get_property(np, "compatible", NULL);
+	if (unlikely(!compat))
+		return -ENODEV;
+
+	len = strlen(compat);
+	if (!of_compat_cmp(compat, "fsl,imx8mp-mipi-dsim", len))
+		return 0;
+
+	ret = of_parse_phandle_with_args(np, "resets", "#reset-cells",
+					 0, &args);
+	if (ret)
+		return ret;
+
+	parent = args.np;
+	for_each_child_of_node(parent, child) {
+		compat = of_get_property(child, "compatible", NULL);
+		if (!compat)
+			continue;
+
+		rstc = of_reset_control_array_get(child, false, false, true);
+		if (IS_ERR(rstc))
+			continue;
+
+		len = strlen(compat);
+		if (!of_compat_cmp("dsi,soft-resetn", compat, len)) {
+			dsim->soft_resetn = rstc;
+			rstc_num++;
+		} else if (!of_compat_cmp("dsi,clk-enable", compat, len)) {
+			dsim->clk_enable = rstc;
+			rstc_num++;
+		} else if (!of_compat_cmp("dsi,mipi-reset", compat, len)) {
+			dsim->mipi_reset = rstc;
+			rstc_num++;
+		} else
+			dev_warn(dev, "invalid dsim reset node: %s\n", compat);
+	}
+
+	if (!rstc_num) {
+		dev_err(dev, "no invalid reset control exists\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static void sec_dsim_of_put_resets(struct imx_sec_dsim_device *dsim)
+{
+	if (dsim->soft_resetn)
+		reset_control_put(dsim->soft_resetn);
+
+	if (dsim->clk_enable)
+		reset_control_put(dsim->clk_enable);
+
+	if (dsim->mipi_reset)
+		reset_control_put(dsim->mipi_reset);
+}
+
+static int imx_sec_dsim_bind(struct device *dev, struct device *master,
+			     void *data)
+{
+	int ret, irq;
+	struct resource *res;
+	struct drm_device *drm_dev = data;
+	struct platform_device *pdev = to_platform_device(dev);
+	struct device_node *np = dev->of_node;
+	const struct of_device_id *of_id = of_match_device(imx_sec_dsim_dt_ids,
+							   dev);
+	const struct sec_mipi_dsim_plat_data *pdata;
+	struct drm_encoder *encoder;
+
+	dev_dbg(dev, "%s: dsim bind begin\n", __func__);
+
+	if (!of_id)
+		return -ENODEV;
+	pdata = of_id->data;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -ENODEV;
+
+	irq = platform_get_irq(pdev, 0);
+	if (irq < 0)
+		return -ENODEV;
+
+	ret = sec_dsim_of_parse_resets(dsim_dev);
+	if (ret)
+		return ret;
+
+	encoder = &dsim_dev->encoder;
+	ret = imx_drm_encoder_parse_of(drm_dev, encoder, np);
+	if (ret)
+		return ret;
+
+	drm_encoder_helper_add(encoder, &imx_sec_dsim_encoder_helper_funcs);
+
+	dsim_dev->blk_ctl = syscon_regmap_lookup_by_phandle(np, "blk-ctl");
+	if (IS_ERR(dsim_dev->blk_ctl)) {
+		dev_warn(dev, "failed to get blk_ctl\n");
+		dsim_dev->blk_ctl = NULL;
+	}
+
+	ret = drm_encoder_init(drm_dev, encoder,
+			       &imx_sec_dsim_encoder_funcs,
+			       DRM_MODE_ENCODER_DSI, dev_name(dev));
+	if (ret)
+		return ret;
+
+	pm_runtime_enable(dev);
+
+	/* bind sec dsim bridge */
+	ret = sec_mipi_dsim_bind(dev, master, data, encoder, res, irq, pdata);
+	if (ret) {
+		dev_err(dev, "failed to bind sec dsim bridge: %d\n", ret);
+		pm_runtime_disable(dev);
+		drm_encoder_cleanup(encoder);
+		sec_dsim_of_put_resets(dsim_dev);
+
+		/* If no panel or bridge connected, just return 0
+		 * to make component core to believe it is bound
+		 * successfully to allow other components can be
+		 * bound continuously, since in component core,
+		 * it follows 'one fails, all fail'. It is useful
+		 * when there exists multiple heads display.
+		 */
+		if (ret == -ENODEV)
+			return 0;
+
+		return ret;
+	}
+
+	dev_dbg(dev, "%s: dsim bind end\n", __func__);
+
+	return 0;
+}
+
+static void imx_sec_dsim_unbind(struct device *dev, struct device *master,
+				void *data)
+{
+	if (!dsim_dev->encoder.dev)
+		return;
+
+	pm_runtime_disable(dev);
+
+	drm_encoder_cleanup(&dsim_dev->encoder);
+
+	sec_mipi_dsim_unbind(dev, master, data);
+
+	sec_dsim_of_put_resets(dsim_dev);
+}
+
+static const struct component_ops imx_sec_dsim_ops = {
+	.bind	= imx_sec_dsim_bind,
+	.unbind	= imx_sec_dsim_unbind,
+};
+
+static int imx_sec_dsim_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+
+	dev_dbg(dev, "%s: dsim probe begin\n", __func__);
+
+	dsim_dev = devm_kzalloc(dev, sizeof(*dsim_dev), GFP_KERNEL);
+	if (!dsim_dev) {
+		dev_err(dev, "Unable to allocate 'dsim_dev'\n");
+		return -ENOMEM;
+	}
+
+	atomic_set(&dsim_dev->rpm_suspended, 1);
+
+	dsim_dev->dev = dev;
+
+	return component_add(dev, &imx_sec_dsim_ops);
+}
+
+static int imx_sec_dsim_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &imx_sec_dsim_ops);
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int imx_sec_dsim_suspend(struct device *dev)
+{
+	return imx_sec_dsim_runtime_suspend(dev);
+}
+
+static int imx_sec_dsim_resume(struct device *dev)
+{
+	return imx_sec_dsim_runtime_resume(dev);
+}
+#endif
+
+#ifdef CONFIG_PM
+static int imx_sec_dsim_runtime_suspend(struct device *dev)
+{
+	/* check sec dsim is bound or not */
+	if (unlikely(!dsim_dev->encoder.dev))
+		return 0;
+
+	if (atomic_inc_return(&dsim_dev->rpm_suspended) > 1)
+		return 0;
+
+	sec_mipi_dsim_suspend(dev);
+
+	release_bus_freq(BUS_FREQ_HIGH);
+
+	return 0;
+}
+
+static int imx_sec_dsim_runtime_resume(struct device *dev)
+{
+	int ret;
+
+	/* check sec dsim is bound or not */
+	if (unlikely(!dsim_dev->encoder.dev))
+		return 0;
+
+	if (unlikely(!atomic_read(&dsim_dev->rpm_suspended))) {
+		dev_warn(dsim_dev->dev,
+			 "Unbalanced %s!\n", __func__);
+		return 0;
+	}
+
+	if (!atomic_dec_and_test(&dsim_dev->rpm_suspended))
+		return 0;
+
+	request_bus_freq(BUS_FREQ_HIGH);
+
+	ret = sec_dsim_rstc_reset(dsim_dev->soft_resetn, false);
+	if (ret) {
+		dev_err(dev, "deassert soft_resetn failed\n");
+		return ret;
+	}
+
+	ret = sec_dsim_rstc_reset(dsim_dev->clk_enable, true);
+	if (ret) {
+		dev_err(dev, "assert clk_enable failed\n");
+		return ret;
+	}
+
+	ret = sec_dsim_rstc_reset(dsim_dev->mipi_reset, false);
+	if (ret) {
+		dev_err(dev, "deassert mipi_reset failed\n");
+		return ret;
+	}
+
+	sec_mipi_dsim_resume(dev);
+
+	return 0;
+}
+#endif
+
+static const struct dev_pm_ops imx_sec_dsim_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(imx_sec_dsim_suspend,
+				     imx_sec_dsim_resume)
+	SET_RUNTIME_PM_OPS(imx_sec_dsim_runtime_suspend,
+			   imx_sec_dsim_runtime_resume,
+			   NULL)
+};
+
+struct platform_driver imx_sec_dsim_driver = {
+	.probe    = imx_sec_dsim_probe,
+	.remove   = imx_sec_dsim_remove,
+	.driver   = {
+		.name = DRIVER_NAME,
+		.of_match_table = imx_sec_dsim_dt_ids,
+		.pm = &imx_sec_dsim_pm_ops,
+	},
+};
+
+module_platform_driver(imx_sec_dsim_driver);
+
+MODULE_DESCRIPTION("NXP i.MX MIPI DSI Host Controller driver");
+MODULE_AUTHOR("Fancy Fang <chen.fang@nxp.com>");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/imx/sec_mipi_pll_1432x.h
+++ linux-ein-5.4.0/drivers/gpu/drm/imx/sec_mipi_pll_1432x.h
@@ -0,0 +1,49 @@
+/*
+ * Samsung MIPI DSIM PLL_1432X
+ *
+ * Copyright 2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __SEC_DSIM_PLL_1432X_H__
+#define __SEC_DSIM_PLL_1432X_H__
+
+#include <drm/bridge/sec_mipi_dsim.h>
+/*
+ * DSIM PLL_1432X setting guide from spec:
+ *
+ * Fout(bitclk) = ((m + k / 65536) * Fin) / (p * 2^s), and
+ * p = P[5:0], m = M[9:0], s = S[2:0], k = K[15:0];
+ *
+ * Fpref = Fin / p
+ * Fin: [6MHz ~ 300MHz], Fpref: [2MHz ~ 30MHz]
+ *
+ * Fvco = ((m + k / 65536) * Fin) / p
+ * Fvco: [1050MHz ~ 2100MHz]
+ *
+ * 1 <= P[5:0] <= 63, 64 <= M[9:0] <= 1023,
+ * 0 <= S[2:0] <=  5, -32768 <= K[15:0] <= 32767
+ *
+ */
+
+const struct sec_mipi_dsim_pll pll_1432x = {
+	.p	= { .min = 1,		.max = 63,	},
+	.m	= { .min = 64,		.max = 1023,	},
+	.s	= { .min = 0,		.max = 5,	},
+	.k	= { .min = 0,		.max = 32768,	},	/* abs(k) */
+	.fin	= { .min = 6000,	.max = 300000,	},	/* in KHz */
+	.fpref	= { .min = 2000,	.max = 30000,	},	/* in KHz */
+	.fvco	= { .min = 1050000,	.max = 2100000,	},	/* in KHz */
+};
+
+#endif
+
--- linux-ein-5.4.0.orig/drivers/gpu/drm/ingenic/ingenic-drm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/ingenic/ingenic-drm.c
@@ -371,14 +371,18 @@
 	struct ingenic_drm *priv = drm_plane_get_priv(plane);
 	struct drm_plane_state *state = plane->state;
 	unsigned int width, height, cpp;
+	dma_addr_t addr;
 
-	width = state->crtc->state->adjusted_mode.hdisplay;
-	height = state->crtc->state->adjusted_mode.vdisplay;
-	cpp = state->fb->format->cpp[plane->index];
-
-	priv->dma_hwdesc->addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
-	priv->dma_hwdesc->cmd = width * height * cpp / 4;
-	priv->dma_hwdesc->cmd |= JZ_LCD_CMD_EOF_IRQ;
+	if (state && state->fb) {
+		addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
+		width = state->src_w >> 16;
+		height = state->src_h >> 16;
+		cpp = state->fb->format->cpp[0];
+
+		priv->dma_hwdesc->addr = addr;
+		priv->dma_hwdesc->cmd = width * height * cpp / 4;
+		priv->dma_hwdesc->cmd |= JZ_LCD_CMD_EOF_IRQ;
+	}
 }
 
 static void ingenic_drm_encoder_atomic_mode_set(struct drm_encoder *encoder,
@@ -463,7 +467,7 @@
 
 static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg)
 {
-	struct ingenic_drm *priv = arg;
+	struct ingenic_drm *priv = drm_device_get_priv(arg);
 	unsigned int state;
 
 	regmap_read(priv->map, JZ_REG_LCD_STATE, &state);
@@ -820,6 +824,7 @@
 	{ .compatible = "ingenic,jz4725b-lcd", .data = &jz4725b_soc_info },
 	{ /* sentinel */ },
 };
+MODULE_DEVICE_TABLE(of, ingenic_drm_of_match);
 
 static struct platform_driver ingenic_drm_driver = {
 	.driver = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/lima/lima_device.c
+++ linux-ein-5.4.0/drivers/gpu/drm/lima/lima_device.c
@@ -293,6 +293,7 @@
 	struct resource *res;
 
 	dma_set_coherent_mask(ldev->dev, DMA_BIT_MASK(32));
+	dma_set_max_seg_size(ldev->dev, UINT_MAX);
 
 	err = lima_clk_init(ldev);
 	if (err)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/lima/lima_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/lima/lima_drv.c
@@ -300,8 +300,10 @@
 
 	/* Allocate and initialize the DRM device. */
 	ddev = drm_dev_alloc(&lima_drm_driver, &pdev->dev);
-	if (IS_ERR(ddev))
-		return PTR_ERR(ddev);
+	if (IS_ERR(ddev)) {
+		err = PTR_ERR(ddev);
+		goto err_out0;
+	}
 
 	ddev->dev_private = ldev;
 	ldev->ddev = ddev;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mcde/mcde_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mcde/mcde_display.c
@@ -946,6 +946,7 @@
 	struct drm_crtc *crtc = &pipe->crtc;
 	struct drm_device *drm = crtc->dev;
 	struct mcde *mcde = drm->dev_private;
+	struct drm_pending_vblank_event *event;
 
 	if (mcde->te_sync)
 		drm_crtc_vblank_off(crtc);
@@ -953,6 +954,15 @@
 	/* Disable FIFO A flow */
 	mcde_disable_fifo(mcde, MCDE_FIFO_A, true);
 
+	event = crtc->state->event;
+	if (event) {
+		crtc->state->event = NULL;
+
+		spin_lock_irq(&crtc->dev->event_lock);
+		drm_crtc_send_vblank_event(crtc, event);
+		spin_unlock_irq(&crtc->dev->event_lock);
+	}
+
 	dev_info(drm->dev, "MCDE display is disabled\n");
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mcde/mcde_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mcde/mcde_drv.c
@@ -215,7 +215,6 @@
 
 	drm_mode_config_reset(drm);
 	drm_kms_helper_poll_init(drm);
-	drm_fbdev_generic_setup(drm, 32);
 
 	return 0;
 
@@ -282,6 +281,8 @@
 	if (ret < 0)
 		goto unbind;
 
+	drm_fbdev_generic_setup(drm, 32);
+
 	return 0;
 
 unbind:
@@ -409,8 +410,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		ret = -EINVAL;
+	if (irq < 0) {
+		ret = irq;
 		goto clk_disable;
 	}
 
@@ -484,7 +485,8 @@
 	}
 	if (!match) {
 		dev_err(dev, "no matching components\n");
-		return -ENODEV;
+		ret = -ENODEV;
+		goto clk_disable;
 	}
 	if (IS_ERR(match)) {
 		dev_err(dev, "could not create component match\n");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mcde/mcde_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mcde/mcde_dsi.c
@@ -935,13 +935,15 @@
 	for_each_available_child_of_node(dev->of_node, child) {
 		panel = of_drm_find_panel(child);
 		if (IS_ERR(panel)) {
-			dev_err(dev, "failed to find panel try bridge (%lu)\n",
+			dev_err(dev, "failed to find panel try bridge (%ld)\n",
 				PTR_ERR(panel));
+			panel = NULL;
+
 			bridge = of_drm_find_bridge(child);
-			if (IS_ERR(bridge)) {
-				dev_err(dev, "failed to find bridge (%lu)\n",
-					PTR_ERR(bridge));
-				return PTR_ERR(bridge);
+			if (!bridge) {
+				dev_err(dev, "failed to find bridge\n");
+				of_node_put(child);
+				return -EINVAL;
 			}
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_cec.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_cec.c
@@ -84,7 +84,7 @@
 	u32 tmp = readl(cec->regs + offset) & ~mask;
 
 	tmp |= val & mask;
-	writel(val, cec->regs + offset);
+	writel(tmp, cec->regs + offset);
 }
 
 void mtk_cec_set_hpd_event(struct device *dev,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -10,7 +10,9 @@
 #include <linux/kernel.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/of_gpio.h>
 #include <linux/of_graph.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/platform_device.h>
 #include <linux/types.h>
 
@@ -48,13 +50,7 @@
 };
 
 enum mtk_dpi_out_color_format {
-	MTK_DPI_COLOR_FORMAT_RGB,
-	MTK_DPI_COLOR_FORMAT_RGB_FULL,
-	MTK_DPI_COLOR_FORMAT_YCBCR_444,
-	MTK_DPI_COLOR_FORMAT_YCBCR_422,
-	MTK_DPI_COLOR_FORMAT_XV_YCC,
-	MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL,
-	MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL
+	MTK_DPI_COLOR_FORMAT_RGB
 };
 
 struct mtk_dpi {
@@ -73,6 +69,9 @@
 	enum mtk_dpi_out_yc_map yc_map;
 	enum mtk_dpi_out_bit_num bit_num;
 	enum mtk_dpi_out_channel_swap channel_swap;
+	struct pinctrl *pinctrl;
+	struct pinctrl_state *pins_gpio;
+	struct pinctrl_state *pins_dpi;
 	int refcount;
 };
 
@@ -350,24 +349,11 @@
 static void mtk_dpi_config_color_format(struct mtk_dpi *dpi,
 					enum mtk_dpi_out_color_format format)
 {
-	if ((format == MTK_DPI_COLOR_FORMAT_YCBCR_444) ||
-	    (format == MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL)) {
-		mtk_dpi_config_yuv422_enable(dpi, false);
-		mtk_dpi_config_csc_enable(dpi, true);
-		mtk_dpi_config_swap_input(dpi, false);
-		mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_BGR);
-	} else if ((format == MTK_DPI_COLOR_FORMAT_YCBCR_422) ||
-		   (format == MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL)) {
-		mtk_dpi_config_yuv422_enable(dpi, true);
-		mtk_dpi_config_csc_enable(dpi, true);
-		mtk_dpi_config_swap_input(dpi, true);
-		mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
-	} else {
-		mtk_dpi_config_yuv422_enable(dpi, false);
-		mtk_dpi_config_csc_enable(dpi, false);
-		mtk_dpi_config_swap_input(dpi, false);
-		mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
-	}
+	/* only support RGB888 */
+	mtk_dpi_config_yuv422_enable(dpi, false);
+	mtk_dpi_config_csc_enable(dpi, false);
+	mtk_dpi_config_swap_input(dpi, false);
+	mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
 }
 
 static void mtk_dpi_power_off(struct mtk_dpi *dpi)
@@ -402,7 +388,6 @@
 		goto err_pixel;
 	}
 
-	mtk_dpi_enable(dpi);
 	return 0;
 
 err_pixel:
@@ -538,14 +523,21 @@
 	struct mtk_dpi *dpi = mtk_dpi_from_encoder(encoder);
 
 	mtk_dpi_power_off(dpi);
+
+	if (dpi->pinctrl && dpi->pins_gpio)
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
 }
 
 static void mtk_dpi_encoder_enable(struct drm_encoder *encoder)
 {
 	struct mtk_dpi *dpi = mtk_dpi_from_encoder(encoder);
 
+	if (dpi->pinctrl && dpi->pins_dpi)
+		pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi);
+
 	mtk_dpi_power_on(dpi);
 	mtk_dpi_set_display_mode(dpi, &dpi->mode);
+	mtk_dpi_enable(dpi);
 }
 
 static int mtk_dpi_atomic_check(struct drm_encoder *encoder,
@@ -689,6 +681,26 @@
 	dpi->dev = dev;
 	dpi->conf = (struct mtk_dpi_conf *)of_device_get_match_data(dev);
 
+	dpi->pinctrl = devm_pinctrl_get(&pdev->dev);
+	if (IS_ERR(dpi->pinctrl)) {
+		dpi->pinctrl = NULL;
+		dev_dbg(&pdev->dev, "Cannot find pinctrl!\n");
+	}
+	if (dpi->pinctrl) {
+		dpi->pins_gpio = pinctrl_lookup_state(dpi->pinctrl, "sleep");
+		if (IS_ERR(dpi->pins_gpio)) {
+			dpi->pins_gpio = NULL;
+			dev_dbg(&pdev->dev, "Cannot find pinctrl idle!\n");
+		}
+		if (dpi->pins_gpio)
+			pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio);
+
+		dpi->pins_dpi = pinctrl_lookup_state(dpi->pinctrl, "default");
+		if (IS_ERR(dpi->pins_dpi)) {
+			dpi->pins_dpi = NULL;
+			dev_dbg(&pdev->dev, "Cannot find pinctrl active!\n");
+		}
+	}
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	dpi->regs = devm_ioremap_resource(dev, mem);
 	if (IS_ERR(dpi->regs)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
@@ -240,7 +240,7 @@
 		drm_connector_list_iter_end(&conn_iter);
 	}
 
-	ret = pm_runtime_get_sync(crtc->dev->dev);
+	ret = pm_runtime_resume_and_get(crtc->dev->dev);
 	if (ret < 0) {
 		DRM_ERROR("Failed to enable power domain: %d\n", ret);
 		return ret;
@@ -298,6 +298,7 @@
 static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc)
 {
 	struct drm_device *drm = mtk_crtc->base.dev;
+	struct drm_crtc *crtc = &mtk_crtc->base;
 	int i;
 
 	DRM_DEBUG_DRIVER("%s\n", __func__);
@@ -319,6 +320,13 @@
 	mtk_disp_mutex_unprepare(mtk_crtc->mutex);
 
 	pm_runtime_put(drm->dev);
+
+	if (crtc->state->event && !crtc->state->active) {
+		spin_lock_irq(&crtc->dev->event_lock);
+		drm_crtc_send_vblank_event(crtc, crtc->state->event);
+		crtc->state->event = NULL;
+		spin_unlock_irq(&crtc->dev->event_lock);
+	}
 }
 
 static void mtk_crtc_ddp_config(struct drm_crtc *crtc)
@@ -488,10 +496,18 @@
 
 static int mtk_drm_crtc_init(struct drm_device *drm,
 			     struct mtk_drm_crtc *mtk_crtc,
-			     struct drm_plane *primary,
-			     struct drm_plane *cursor, unsigned int pipe)
+			     unsigned int pipe)
 {
-	int ret;
+	struct drm_plane *primary = NULL;
+	struct drm_plane *cursor = NULL;
+	int i, ret;
+
+	for (i = 0; i < mtk_crtc->layer_nr; i++) {
+		if (mtk_crtc->planes[i].type == DRM_PLANE_TYPE_PRIMARY)
+			primary = &mtk_crtc->planes[i];
+		else if (mtk_crtc->planes[i].type == DRM_PLANE_TYPE_CURSOR)
+			cursor = &mtk_crtc->planes[i];
+	}
 
 	ret = drm_crtc_init_with_planes(drm, &mtk_crtc->base, primary, cursor,
 					&mtk_crtc_funcs, NULL);
@@ -529,6 +545,7 @@
 	int pipe = priv->num_pipes;
 	int ret;
 	int i;
+	uint gamma_lut_size = 0;
 
 	if (!path)
 		return 0;
@@ -579,6 +596,9 @@
 		}
 
 		mtk_crtc->ddp_comp[i] = comp;
+
+		if (comp->funcs && comp->funcs->gamma_set)
+			gamma_lut_size = MTK_LUT_SIZE;
 	}
 
 	mtk_crtc->layer_nr = mtk_ddp_comp_layer_nr(mtk_crtc->ddp_comp[0]);
@@ -596,13 +616,13 @@
 			return ret;
 	}
 
-	ret = mtk_drm_crtc_init(drm_dev, mtk_crtc, &mtk_crtc->planes[0],
-				mtk_crtc->layer_nr > 1 ? &mtk_crtc->planes[1] :
-				NULL, pipe);
+	ret = mtk_drm_crtc_init(drm_dev, mtk_crtc, pipe);
 	if (ret < 0)
 		return ret;
-	drm_mode_crtc_set_gamma_size(&mtk_crtc->base, MTK_LUT_SIZE);
-	drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, MTK_LUT_SIZE);
+
+	if (gamma_lut_size)
+		drm_mode_crtc_set_gamma_size(&mtk_crtc->base, gamma_lut_size);
+	drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, gamma_lut_size);
 	priv->num_pipes++;
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -417,6 +417,7 @@
 err_deinit:
 	mtk_drm_kms_deinit(drm);
 err_free:
+	private->drm = NULL;
 	drm_dev_put(drm);
 	return ret;
 }
@@ -594,8 +595,13 @@
 	pm_runtime_disable(dev);
 err_node:
 	of_node_put(private->mutex_node);
-	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
+	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++) {
 		of_node_put(private->comp_node[i]);
+		if (private->ddp_comp[i]) {
+			put_device(private->ddp_comp[i]->larb_dev);
+			private->ddp_comp[i] = NULL;
+		}
+	}
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_gem.c
@@ -142,8 +142,6 @@
 
 	ret = dma_mmap_attrs(priv->dma_dev, vma, mtk_gem->cookie,
 			     mtk_gem->dma_addr, obj->size, mtk_gem->dma_attrs);
-	if (ret)
-		drm_gem_vm_close(vma);
 
 	return ret;
 }
@@ -269,9 +267,13 @@
 	}
 	mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP,
 			       pgprot_writecombine(PAGE_KERNEL));
-
+	if (!mtk_gem->kvaddr) {
+		kfree(sgt);
+		kfree(mtk_gem->pages);
+		return ERR_PTR(-ENOMEM);
+	}
 out:
-	kfree((void *)sgt);
+	kfree(sgt);
 
 	return mtk_gem->kvaddr;
 }
@@ -284,6 +286,6 @@
 		return;
 
 	vunmap(vaddr);
-	mtk_gem->kvaddr = 0;
-	kfree((void *)mtk_gem->pages);
+	mtk_gem->kvaddr = NULL;
+	kfree(mtk_gem->pages);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_drm_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_drm_plane.c
@@ -101,6 +101,16 @@
 						   true, true);
 }
 
+static void mtk_plane_atomic_disable(struct drm_plane *plane,
+				     struct drm_plane_state *old_state)
+{
+	struct mtk_plane_state *state = to_mtk_plane_state(plane->state);
+
+	state->pending.enable = false;
+	wmb(); /* Make sure the above parameter is set before update */
+	state->pending.dirty = true;
+}
+
 static void mtk_plane_atomic_update(struct drm_plane *plane,
 				    struct drm_plane_state *old_state)
 {
@@ -115,6 +125,11 @@
 	if (!crtc || WARN_ON(!fb))
 		return;
 
+	if (!plane->state->visible) {
+		mtk_plane_atomic_disable(plane, old_state);
+		return;
+	}
+
 	gem = fb->obj[0];
 	mtk_gem = to_mtk_gem_obj(gem);
 	addr = mtk_gem->dma_addr;
@@ -136,16 +151,6 @@
 	state->pending.dirty = true;
 }
 
-static void mtk_plane_atomic_disable(struct drm_plane *plane,
-				     struct drm_plane_state *old_state)
-{
-	struct mtk_plane_state *state = to_mtk_plane_state(plane->state);
-
-	state->pending.enable = false;
-	wmb(); /* Make sure the above parameter is set before update */
-	state->pending.dirty = true;
-}
-
 static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = {
 	.prepare_fb = drm_gem_fb_prepare_fb,
 	.atomic_check = mtk_plane_atomic_check,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_dsi.c
@@ -645,6 +645,8 @@
 	mtk_dsi_reset_engine(dsi);
 	mtk_dsi_lane0_ulp_mode_enter(dsi);
 	mtk_dsi_clk_ulp_mode_enter(dsi);
+	/* set the lane number as 0 to pull down mipi */
+	writel(0, dsi->regs + DSI_TXRX_CTRL);
 
 	mtk_dsi_disable(dsi);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1237,17 +1237,19 @@
 				    struct drm_display_mode *mode)
 {
 	struct mtk_hdmi *hdmi = hdmi_ctx_from_conn(conn);
+	struct drm_bridge *next_bridge;
 
 	dev_dbg(hdmi->dev, "xres=%d, yres=%d, refresh=%d, intl=%d clock=%d\n",
 		mode->hdisplay, mode->vdisplay, mode->vrefresh,
 		!!(mode->flags & DRM_MODE_FLAG_INTERLACE), mode->clock * 1000);
 
-	if (hdmi->bridge.next) {
+	next_bridge = drm_bridge_get_next_bridge(&hdmi->bridge);
+	if (next_bridge) {
 		struct drm_display_mode adjusted_mode;
 
 		drm_mode_copy(&adjusted_mode, mode);
-		if (!drm_bridge_mode_fixup(hdmi->bridge.next, mode,
-					   &adjusted_mode))
+		if (!drm_bridge_chain_mode_fixup(next_bridge, mode,
+						 &adjusted_mode))
 			return MODE_BAD;
 	}
 
@@ -1482,25 +1484,30 @@
 		dev_err(dev,
 			"Failed to get system configuration registers: %d\n",
 			ret);
-		return ret;
+		goto put_device;
 	}
 	hdmi->sys_regmap = regmap;
 
 	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	hdmi->regs = devm_ioremap_resource(dev, mem);
-	if (IS_ERR(hdmi->regs))
-		return PTR_ERR(hdmi->regs);
+	if (IS_ERR(hdmi->regs)) {
+		ret = PTR_ERR(hdmi->regs);
+		goto put_device;
+	}
 
 	remote = of_graph_get_remote_node(np, 1, 0);
-	if (!remote)
-		return -EINVAL;
+	if (!remote) {
+		ret = -EINVAL;
+		goto put_device;
+	}
 
 	if (!of_device_is_compatible(remote, "hdmi-connector")) {
 		hdmi->next_bridge = of_drm_find_bridge(remote);
 		if (!hdmi->next_bridge) {
 			dev_err(dev, "Waiting for external bridge\n");
 			of_node_put(remote);
-			return -EPROBE_DEFER;
+			ret = -EPROBE_DEFER;
+			goto put_device;
 		}
 	}
 
@@ -1509,7 +1516,8 @@
 		dev_err(dev, "Failed to find ddc-i2c-bus node in %pOF\n",
 			remote);
 		of_node_put(remote);
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_device;
 	}
 	of_node_put(remote);
 
@@ -1517,10 +1525,14 @@
 	of_node_put(i2c_np);
 	if (!hdmi->ddc_adpt) {
 		dev_err(dev, "Failed to get ddc i2c adapter by node\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto put_device;
 	}
 
 	return 0;
+put_device:
+	put_device(hdmi->cec_dev);
+	return ret;
 }
 
 /*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
@@ -84,8 +84,9 @@
 	    hdmi_phy->conf->hdmi_phy_disable_tmds)
 		return &mtk_hdmi_phy_dev_ops;
 
-	dev_err(hdmi_phy->dev, "Failed to get dev ops of phy\n");
-		return NULL;
+	if (hdmi_phy)
+		dev_err(hdmi_phy->dev, "Failed to get dev ops of phy\n");
+	return NULL;
 }
 
 static void mtk_hdmi_phy_clk_get_data(struct mtk_hdmi_phy *hdmi_phy,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_drv.c
@@ -124,8 +124,11 @@
 	for_each_endpoint_of_node(dev->of_node, ep) {
 		/* If the endpoint node exists, consider it enabled */
 		remote = of_graph_get_remote_port(ep);
-		if (remote)
+		if (remote) {
+			of_node_put(remote);
+			of_node_put(ep);
 			return true;
+		}
 	}
 
 	return false;
@@ -420,6 +423,17 @@
 	return count;
 }
 
+static void meson_drv_shutdown(struct platform_device *pdev)
+{
+	struct meson_drm *priv = dev_get_drvdata(&pdev->dev);
+
+	if (!priv)
+		return;
+
+	drm_kms_helper_poll_fini(priv->drm);
+	drm_atomic_helper_shutdown(priv->drm);
+}
+
 static int meson_drv_probe(struct platform_device *pdev)
 {
 	struct component_match *match = NULL;
@@ -469,6 +483,7 @@
 
 static struct platform_driver meson_drm_platform_driver = {
 	.probe      = meson_drv_probe,
+	.shutdown   = meson_drv_shutdown,
 	.driver     = {
 		.name	= "meson-drm",
 		.of_match_table = dt_match,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_plane.c
@@ -128,7 +128,7 @@
 
 	/* Enable OSD and BLK0, set max global alpha */
 	priv->viu.osd1_ctrl_stat = OSD_ENABLE |
-				   (0xFF << OSD_GLOBAL_ALPHA_SHIFT) |
+				   (0x100 << OSD_GLOBAL_ALPHA_SHIFT) |
 				   OSD_BLK0_ENABLE;
 
 	canvas_id_osd1 = priv->canvas_id_osd1;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_registers.h
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_registers.h
@@ -590,6 +590,11 @@
 #define VPP_WRAP_OSD3_MATRIX_PRE_OFFSET2 0x3dbc
 #define VPP_WRAP_OSD3_MATRIX_EN_CTRL 0x3dbd
 
+/* osd1 HDR */
+#define OSD1_HDR2_CTRL 0x38a0
+#define OSD1_HDR2_CTRL_VDIN0_HDR2_TOP_EN       BIT(13)
+#define OSD1_HDR2_CTRL_REG_ONLY_MAT            BIT(16)
+
 /* osd2 scaler */
 #define OSD2_VSC_PHASE_STEP 0x3d00
 #define OSD2_VSC_INI_PHASE 0x3d01
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_vclk.c
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_vclk.c
@@ -638,13 +638,18 @@
 		if (frac >= HDMI_FRAC_MAX_GXBB)
 			return false;
 	} else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXM) ||
-		   meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL) ||
-		   meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
+		   meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL)) {
 		/* Empiric supported min/max dividers */
 		if (m < 106 || m > 247)
 			return false;
 		if (frac >= HDMI_FRAC_MAX_GXL)
 			return false;
+	} else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
+		/* Empiric supported min/max dividers */
+		if (m < 106 || m > 247)
+			return false;
+		if (frac >= HDMI_FRAC_MAX_G12A)
+			return false;
 	}
 
 	return true;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_venc_cvbs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_venc_cvbs.c
@@ -64,6 +64,25 @@
 	},
 };
 
+static const struct meson_cvbs_mode *
+meson_cvbs_get_mode(const struct drm_display_mode *req_mode)
+{
+	int i;
+
+	for (i = 0; i < MESON_CVBS_MODES_COUNT; ++i) {
+		struct meson_cvbs_mode *meson_mode = &meson_cvbs_modes[i];
+
+		if (drm_mode_match(req_mode, &meson_mode->mode,
+				   DRM_MODE_MATCH_TIMINGS |
+				   DRM_MODE_MATCH_CLOCK |
+				   DRM_MODE_MATCH_FLAGS |
+				   DRM_MODE_MATCH_3D_FLAGS))
+			return meson_mode;
+	}
+
+	return NULL;
+}
+
 /* Connector */
 
 static void meson_cvbs_connector_destroy(struct drm_connector *connector)
@@ -136,14 +155,8 @@
 					struct drm_crtc_state *crtc_state,
 					struct drm_connector_state *conn_state)
 {
-	int i;
-
-	for (i = 0; i < MESON_CVBS_MODES_COUNT; ++i) {
-		struct meson_cvbs_mode *meson_mode = &meson_cvbs_modes[i];
-
-		if (drm_mode_equal(&crtc_state->mode, &meson_mode->mode))
-			return 0;
-	}
+	if (meson_cvbs_get_mode(&crtc_state->mode))
+		return 0;
 
 	return -EINVAL;
 }
@@ -191,24 +204,17 @@
 				   struct drm_display_mode *mode,
 				   struct drm_display_mode *adjusted_mode)
 {
+	const struct meson_cvbs_mode *meson_mode = meson_cvbs_get_mode(mode);
 	struct meson_venc_cvbs *meson_venc_cvbs =
 					encoder_to_meson_venc_cvbs(encoder);
 	struct meson_drm *priv = meson_venc_cvbs->priv;
-	int i;
 
-	for (i = 0; i < MESON_CVBS_MODES_COUNT; ++i) {
-		struct meson_cvbs_mode *meson_mode = &meson_cvbs_modes[i];
+	if (meson_mode) {
+		meson_venci_cvbs_mode_set(priv, meson_mode->enci);
 
-		if (drm_mode_equal(mode, &meson_mode->mode)) {
-			meson_venci_cvbs_mode_set(priv,
-						  meson_mode->enci);
-
-			/* Setup 27MHz vclk2 for ENCI and VDAC */
-			meson_vclk_setup(priv, MESON_VCLK_TARGET_CVBS,
-					 MESON_VCLK_CVBS, MESON_VCLK_CVBS,
-					 MESON_VCLK_CVBS, true);
-			break;
-		}
+		/* Setup 27MHz vclk2 for ENCI and VDAC */
+		meson_vclk_setup(priv, MESON_VCLK_TARGET_CVBS, MESON_VCLK_CVBS,
+				 MESON_VCLK_CVBS, MESON_VCLK_CVBS, true);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_viu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_viu.c
@@ -91,7 +91,7 @@
 		priv->io_base + _REG(VPP_WRAP_OSD1_MATRIX_COEF11_12));
 	writel(((m[9] & 0x1fff) << 16) | (m[10] & 0x1fff),
 		priv->io_base + _REG(VPP_WRAP_OSD1_MATRIX_COEF20_21));
-	writel((m[11] & 0x1fff) << 16,
+	writel((m[11] & 0x1fff),
 		priv->io_base +	_REG(VPP_WRAP_OSD1_MATRIX_COEF22));
 
 	writel(((m[18] & 0xfff) << 16) | (m[19] & 0xfff),
@@ -356,9 +356,14 @@
 	if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXM) ||
 	    meson_vpu_is_compatible(priv, VPU_COMPATIBLE_GXL))
 		meson_viu_load_matrix(priv);
-	else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
+	else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
 		meson_viu_set_g12a_osd1_matrix(priv, RGB709_to_YUV709l_coeff,
 					       true);
+		/* fix green/pink color distortion from vendor u-boot */
+		writel_bits_relaxed(OSD1_HDR2_CTRL_REG_ONLY_MAT |
+				OSD1_HDR2_CTRL_VDIN0_HDR2_TOP_EN, 0,
+				priv->io_base + _REG(OSD1_HDR2_CTRL));
+	}
 
 	/* Initialize OSD1 fifo control register */
 	reg = VIU_OSD_DDR_PRIORITY_URGENT |
@@ -395,17 +400,17 @@
 			priv->io_base + _REG(VD2_IF0_LUMA_FIFO_SIZE));
 
 	if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
-		writel_relaxed(VIU_OSD_BLEND_REORDER(0, 1) |
-			       VIU_OSD_BLEND_REORDER(1, 0) |
-			       VIU_OSD_BLEND_REORDER(2, 0) |
-			       VIU_OSD_BLEND_REORDER(3, 0) |
-			       VIU_OSD_BLEND_DIN_EN(1) |
-			       VIU_OSD_BLEND1_DIN3_BYPASS_TO_DOUT1 |
-			       VIU_OSD_BLEND1_DOUT_BYPASS_TO_BLEND2 |
-			       VIU_OSD_BLEND_DIN0_BYPASS_TO_DOUT0 |
-			       VIU_OSD_BLEND_BLEN2_PREMULT_EN(1) |
-			       VIU_OSD_BLEND_HOLD_LINES(4),
-			       priv->io_base + _REG(VIU_OSD_BLEND_CTRL));
+		u32 val = (u32)VIU_OSD_BLEND_REORDER(0, 1) |
+			  (u32)VIU_OSD_BLEND_REORDER(1, 0) |
+			  (u32)VIU_OSD_BLEND_REORDER(2, 0) |
+			  (u32)VIU_OSD_BLEND_REORDER(3, 0) |
+			  (u32)VIU_OSD_BLEND_DIN_EN(1) |
+			  (u32)VIU_OSD_BLEND1_DIN3_BYPASS_TO_DOUT1 |
+			  (u32)VIU_OSD_BLEND1_DOUT_BYPASS_TO_BLEND2 |
+			  (u32)VIU_OSD_BLEND_DIN0_BYPASS_TO_DOUT0 |
+			  (u32)VIU_OSD_BLEND_BLEN2_PREMULT_EN(1) |
+			  (u32)VIU_OSD_BLEND_HOLD_LINES(4);
+		writel_relaxed(val, priv->io_base + _REG(VIU_OSD_BLEND_CTRL));
 
 		writel_relaxed(OSD_BLEND_PATH_SEL_ENABLE,
 			       priv->io_base + _REG(OSD1_BLEND_SRC_CTRL));
--- linux-ein-5.4.0.orig/drivers/gpu/drm/meson/meson_vpp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/meson/meson_vpp.c
@@ -100,6 +100,8 @@
 			       priv->io_base + _REG(VPP_DOLBY_CTRL));
 		writel_relaxed(0x1020080,
 				priv->io_base + _REG(VPP_DUMMY_DATA1));
+		writel_relaxed(0x42020,
+				priv->io_base + _REG(VPP_DUMMY_DATA));
 	} else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
 		writel_relaxed(0xf, priv->io_base + _REG(DOLBY_PATH_CTRL));
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mgag200/mgag200_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mgag200/mgag200_drv.c
@@ -30,7 +30,8 @@
 static struct drm_driver driver;
 
 static const struct pci_device_id pciidlist[] = {
-	{ PCI_VENDOR_ID_MATROX, 0x522, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_SE_A },
+	{ PCI_VENDOR_ID_MATROX, 0x522, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+		G200_SE_A | MGAG200_FLAG_HW_BUG_NO_STARTADD},
 	{ PCI_VENDOR_ID_MATROX, 0x524, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_SE_B },
 	{ PCI_VENDOR_ID_MATROX, 0x530, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_EV },
 	{ PCI_VENDOR_ID_MATROX, 0x532, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_WB },
@@ -63,6 +64,35 @@
 	DRM_VRAM_MM_FILE_OPERATIONS
 };
 
+static bool mgag200_pin_bo_at_0(const struct mga_device *mdev)
+{
+	return mdev->flags & MGAG200_FLAG_HW_BUG_NO_STARTADD;
+}
+
+int mgag200_driver_dumb_create(struct drm_file *file,
+			       struct drm_device *dev,
+			       struct drm_mode_create_dumb *args)
+{
+	struct mga_device *mdev = dev->dev_private;
+	unsigned long pg_align;
+
+	if (WARN_ONCE(!dev->vram_mm, "VRAM MM not initialized"))
+		return -EINVAL;
+
+	pg_align = 0ul;
+
+	/*
+	 * Aligning scanout buffers to the size of the video ram forces
+	 * placement at offset 0. Works around a bug where HW does not
+	 * respect 'startadd' field.
+	 */
+	if (mgag200_pin_bo_at_0(mdev))
+		pg_align = PFN_UP(mdev->mc.vram_size);
+
+	return drm_gem_vram_fill_create_dumb(file, dev, &dev->vram_mm->bdev,
+					     pg_align, false, args);
+}
+
 static struct drm_driver driver = {
 	.driver_features = DRIVER_GEM | DRIVER_MODESET,
 	.load = mgag200_driver_load,
@@ -74,7 +104,9 @@
 	.major = DRIVER_MAJOR,
 	.minor = DRIVER_MINOR,
 	.patchlevel = DRIVER_PATCHLEVEL,
-	DRM_GEM_VRAM_DRIVER
+	.dumb_create = mgag200_driver_dumb_create,
+	.dumb_map_offset = drm_gem_vram_driver_dumb_mmap_offset,
+	.gem_prime_mmap = drm_gem_prime_mmap,
 };
 
 static struct pci_driver mgag200_pci_driver = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -159,6 +159,12 @@
 	G200_EW3,
 };
 
+/* HW does not handle 'startadd' field correct. */
+#define MGAG200_FLAG_HW_BUG_NO_STARTADD	(1ul << 8)
+
+#define MGAG200_TYPE_MASK	(0x000000ff)
+#define MGAG200_FLAG_MASK	(0x00ffff00)
+
 #define IS_G200_SE(mdev) (mdev->type == G200_SE_A || mdev->type == G200_SE_B)
 
 struct mga_device {
@@ -188,6 +194,18 @@
 	u32 unique_rev_id;
 };
 
+static inline enum mga_type
+mgag200_type_from_driver_data(kernel_ulong_t driver_data)
+{
+	return (enum mga_type)(driver_data & MGAG200_TYPE_MASK);
+}
+
+static inline unsigned long
+mgag200_flags_from_driver_data(kernel_ulong_t driver_data)
+{
+	return driver_data & MGAG200_FLAG_MASK;
+}
+
 				/* mgag200_mode.c */
 int mgag200_modeset_init(struct mga_device *mdev);
 void mgag200_modeset_fini(struct mga_device *mdev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mgag200/mgag200_main.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -94,7 +94,8 @@
 	struct mga_device *mdev = dev->dev_private;
 	int ret, option;
 
-	mdev->type = flags;
+	mdev->flags = mgag200_flags_from_driver_data(flags);
+	mdev->type = mgag200_type_from_driver_data(flags);
 
 	/* Hardcode the number of CRTCs to 1 */
 	mdev->num_crtc = 1;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
@@ -164,6 +164,11 @@
 	if (ret)
 		return ret;
 
+	gpu_write(gpu, REG_AXXX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	gpu_write(gpu, REG_AXXX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
+
 	/* NOTE: PM4/micro-engine firmware registers look to be the same
 	 * for a2xx and a3xx.. we could possibly push that part down to
 	 * adreno_gpu base class.  Or push both PM4 and PFP but
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
@@ -215,6 +215,16 @@
 	if (ret)
 		return ret;
 
+	/*
+	 * Use the default ringbuffer size and block size but disable the RPTR
+	 * shadow
+	 */
+	gpu_write(gpu, REG_AXXX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	/* Set the ringbuffer address */
+	gpu_write(gpu, REG_AXXX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
+
 	/* setup access protection: */
 	gpu_write(gpu, REG_A3XX_CP_PROTECT_CTRL, 0x00000007);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
@@ -265,6 +265,16 @@
 	if (ret)
 		return ret;
 
+	/*
+	 * Use the default ringbuffer size and block size but disable the RPTR
+	 * shadow
+	 */
+	gpu_write(gpu, REG_A4XX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	/* Set the ringbuffer address */
+	gpu_write(gpu, REG_A4XX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
+
 	/* Load PM4: */
 	ptr = (uint32_t *)(adreno_gpu->fw[ADRENO_FW_PM4]->data);
 	len = adreno_gpu->fw[ADRENO_FW_PM4]->size / 4;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -71,7 +71,7 @@
 			 * since we've already mapped it once in
 			 * submit_reloc()
 			 */
-			if (WARN_ON(!ptr))
+			if (WARN_ON(IS_ERR_OR_NULL(ptr)))
 				return;
 
 			for (i = 0; i < dwords; i++) {
@@ -135,8 +135,8 @@
 	OUT_RING(ring, 1);
 
 	/* Enable local preemption for finegrain preemption */
-	OUT_PKT7(ring, CP_PREEMPT_ENABLE_GLOBAL, 1);
-	OUT_RING(ring, 0x02);
+	OUT_PKT7(ring, CP_PREEMPT_ENABLE_LOCAL, 1);
+	OUT_RING(ring, 0x1);
 
 	/* Allow CP_CONTEXT_SWITCH_YIELD packets in the IB2 */
 	OUT_PKT7(ring, CP_YIELD_ENABLE, 1);
@@ -581,8 +581,6 @@
 	if (adreno_gpu->info->quirks & ADRENO_QUIRK_TWO_PASS_USE_WFI)
 		gpu_rmw(gpu, REG_A5XX_PC_DBG_ECO_CNTL, 0, (1 << 8));
 
-	gpu_write(gpu, REG_A5XX_PC_DBG_ECO_CNTL, 0xc0200100);
-
 	/* Enable USE_RETENTION_FLOPS */
 	gpu_write(gpu, REG_A5XX_CP_CHICKEN_DBG, 0x02000000);
 
@@ -677,14 +675,21 @@
 	if (ret)
 		return ret;
 
-	a5xx_preempt_hw_init(gpu);
-
 	a5xx_gpmu_ucode_init(gpu);
 
 	ret = a5xx_ucode_init(gpu);
 	if (ret)
 		return ret;
 
+	/* Set the ringbuffer address */
+	gpu_write64(gpu, REG_A5XX_CP_RB_BASE, REG_A5XX_CP_RB_BASE_HI,
+		gpu->rb[0]->iova);
+
+	gpu_write(gpu, REG_A5XX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
+	a5xx_preempt_hw_init(gpu);
+
 	/* Disable the interrupts through the initial bringup stage */
 	gpu_write(gpu, REG_A5XX_RBBM_INT_0_MASK, A5XX_INT_MASK);
 
@@ -726,11 +731,18 @@
 		gpu->funcs->flush(gpu, gpu->rb[0]);
 		if (!a5xx_idle(gpu, gpu->rb[0]))
 			return -EINVAL;
-	} else {
-		/* Print a warning so if we die, we know why */
+	} else if (ret == -ENODEV) {
+		/*
+		 * This device does not use zap shader (but print a warning
+		 * just in case someone got their dt wrong.. hopefully they
+		 * have a debug UART to realize the error of their ways...
+		 * if you mess this up you are about to crash horribly)
+		 */
 		dev_warn_once(gpu->dev->dev,
 			"Zap shader not enabled - using SECVID_TRUST_CNTL instead\n");
 		gpu_write(gpu, REG_A5XX_RBBM_SECVID_TRUST_CNTL, 0x0);
+	} else {
+		return ret;
 	}
 
 	/* Last step - yield the ringbuffer */
@@ -1119,8 +1131,8 @@
 
 static int a5xx_get_timestamp(struct msm_gpu *gpu, uint64_t *value)
 {
-	*value = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_CP_0_LO,
-		REG_A5XX_RBBM_PERFCTR_CP_0_HI);
+	*value = gpu_read64(gpu, REG_A5XX_RBBM_ALWAYSON_COUNTER_LO,
+		REG_A5XX_RBBM_ALWAYSON_COUNTER_HI);
 
 	return 0;
 }
@@ -1352,6 +1364,10 @@
 {
 	u64 busy_cycles, busy_time;
 
+	/* Only read the gpu busy if the hardware is already active */
+	if (pm_runtime_get_if_in_use(&gpu->pdev->dev) == 0)
+		return 0;
+
 	busy_cycles = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_RBBM_0_LO,
 			REG_A5XX_RBBM_PERFCTR_RBBM_0_HI);
 
@@ -1360,6 +1376,8 @@
 
 	gpu->devfreq.busy_cycles = busy_cycles;
 
+	pm_runtime_put(&gpu->pdev->dev);
+
 	if (WARN_ON(busy_time > ~0LU))
 		return ~0LU;
 
@@ -1394,18 +1412,31 @@
 static void check_speed_bin(struct device *dev)
 {
 	struct nvmem_cell *cell;
-	u32 bin, val;
+	u32 val;
+
+	/*
+	 * If the OPP table specifies a opp-supported-hw property then we have
+	 * to set something with dev_pm_opp_set_supported_hw() or the table
+	 * doesn't get populated so pick an arbitrary value that should
+	 * ensure the default frequencies are selected but not conflict with any
+	 * actual bins
+	 */
+	val = 0x80;
 
 	cell = nvmem_cell_get(dev, "speed_bin");
 
-	/* If a nvmem cell isn't defined, nothing to do */
-	if (IS_ERR(cell))
-		return;
+	if (!IS_ERR(cell)) {
+		void *buf = nvmem_cell_read(cell, NULL);
 
-	bin = *((u32 *) nvmem_cell_read(cell, NULL));
-	nvmem_cell_put(cell);
+		if (!IS_ERR(buf)) {
+			u8 bin = *((u8 *) buf);
 
-	val = (1 << bin);
+			val = (1 << bin);
+			kfree(buf);
+		}
+
+		nvmem_cell_put(cell);
+	}
 
 	dev_pm_opp_set_supported_hw(dev, &val, 1);
 }
@@ -1438,7 +1469,8 @@
 
 	check_speed_bin(&pdev->dev);
 
-	ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 4);
+	/* Restricting nr_rings to 1 to temporarily disable preemption */
+	ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 1);
 	if (ret) {
 		a5xx_destroy(&(a5xx_gpu->base.base));
 		return ERR_PTR(ret);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a5xx_power.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a5xx_power.c
@@ -300,7 +300,7 @@
 	/* Set up the limits management */
 	if (adreno_is_a530(adreno_gpu))
 		a530_lm_setup(gpu);
-	else
+	else if (adreno_is_a540(adreno_gpu))
 		a540_lm_setup(gpu);
 
 	/* Set up SP/TP power collpase */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -107,6 +107,13 @@
 	struct msm_gpu *gpu = &adreno_gpu->base;
 	int ret;
 
+	/*
+	 * This can get called from devfreq while the hardware is idle. Don't
+	 * bring up the power if it isn't already active
+	 */
+	if (pm_runtime_get_if_in_use(gmu->dev) == 0)
+		return;
+
 	gmu_write(gmu, REG_A6XX_GMU_DCVS_ACK_OPTION, 0);
 
 	gmu_write(gmu, REG_A6XX_GMU_DCVS_PERF_SETTING,
@@ -133,6 +140,7 @@
 	 * for now leave it at max so that the performance is nominal.
 	 */
 	icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216));
+	pm_runtime_put(gmu->dev);
 }
 
 void a6xx_gmu_set_freq(struct msm_gpu *gpu, unsigned long freq)
@@ -191,12 +199,22 @@
 {
 	int ret;
 	u32 val;
+	u32 mask, reset_val;
+
+	val = gmu_read(gmu, REG_A6XX_GMU_CM3_DTCM_START + 0xff8);
+	if (val <= 0x20010004) {
+		mask = 0xffffffff;
+		reset_val = 0xbabeface;
+	} else {
+		mask = 0x1ff;
+		reset_val = 0x100;
+	}
 
 	gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 1);
 	gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 0);
 
 	ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_CM3_FW_INIT_RESULT, val,
-		val == 0xbabeface, 100, 10000);
+		(val & mask) == reset_val, 100, 10000);
 
 	if (ret)
 		DRM_DEV_ERROR(gmu->dev, "GMU firmware initialization timed out\n");
@@ -705,10 +723,19 @@
 	/* Turn on the resources */
 	pm_runtime_get_sync(gmu->dev);
 
+	/*
+	 * "enable" the GX power domain which won't actually do anything but it
+	 * will make sure that the refcounting is correct in case we need to
+	 * bring down the GX after a GMU failure
+	 */
+	if (!IS_ERR_OR_NULL(gmu->gxpd))
+		pm_runtime_get_sync(gmu->gxpd);
+
 	/* Use a known rate to bring up the GMU */
 	clk_set_rate(gmu->core_clk, 200000000);
 	ret = clk_bulk_prepare_enable(gmu->nr_clocks, gmu->clocks);
 	if (ret) {
+		pm_runtime_put(gmu->gxpd);
 		pm_runtime_put(gmu->dev);
 		return ret;
 	}
@@ -744,19 +771,12 @@
 	/* Set the GPU to the highest power frequency */
 	__a6xx_gmu_set_freq(gmu, gmu->nr_gpu_freqs - 1);
 
-	/*
-	 * "enable" the GX power domain which won't actually do anything but it
-	 * will make sure that the refcounting is correct in case we need to
-	 * bring down the GX after a GMU failure
-	 */
-	if (!IS_ERR_OR_NULL(gmu->gxpd))
-		pm_runtime_get(gmu->gxpd);
-
 out:
 	/* On failure, shut down the GMU to leave it in a good state */
 	if (ret) {
 		disable_irq(gmu->gmu_irq);
 		a6xx_rpmh_stop(gmu);
+		pm_runtime_put(gmu->gxpd);
 		pm_runtime_put(gmu->dev);
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -512,6 +512,13 @@
 	if (ret)
 		goto out;
 
+	/* Set the ringbuffer address */
+	gpu_write64(gpu, REG_A6XX_CP_RB_BASE, REG_A6XX_CP_RB_BASE_HI,
+		gpu->rb[0]->iova);
+
+	gpu_write(gpu, REG_A6XX_CP_RB_CNTL,
+		MSM_GPU_RB_CNTL_DEFAULT | AXXX_CP_RB_CNTL_NO_UPDATE);
+
 	/* Always come up on rb 0 */
 	a6xx_gpu->cur_ring = gpu->rb[0];
 
@@ -537,12 +544,19 @@
 		a6xx_flush(gpu, gpu->rb[0]);
 		if (!a6xx_idle(gpu, gpu->rb[0]))
 			return -EINVAL;
-	} else {
-		/* Print a warning so if we die, we know why */
+	} else if (ret == -ENODEV) {
+		/*
+		 * This device does not use zap shader (but print a warning
+		 * just in case someone got their dt wrong.. hopefully they
+		 * have a debug UART to realize the error of their ways...
+		 * if you mess this up you are about to crash horribly)
+		 */
 		dev_warn_once(gpu->dev->dev,
 			"Zap shader not enabled - using SECVID_TRUST_CNTL instead\n");
 		gpu_write(gpu, REG_A6XX_RBBM_SECVID_TRUST_CNTL, 0x0);
 		ret = 0;
+	} else {
+		return ret;
 	}
 
 out:
@@ -759,8 +773,8 @@
 	/* Force the GPU power on so we can read this register */
 	a6xx_gmu_set_oob(&a6xx_gpu->gmu, GMU_OOB_GPU_SET);
 
-	*value = gpu_read64(gpu, REG_A6XX_RBBM_PERFCTR_CP_0_LO,
-		REG_A6XX_RBBM_PERFCTR_CP_0_HI);
+	*value = gpu_read64(gpu, REG_A6XX_CP_ALWAYS_ON_COUNTER_LO,
+		REG_A6XX_CP_ALWAYS_ON_COUNTER_HI);
 
 	a6xx_gmu_clear_oob(&a6xx_gpu->gmu, GMU_OOB_GPU_SET);
 	return 0;
@@ -796,6 +810,11 @@
 	struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
 	u64 busy_cycles, busy_time;
 
+
+	/* Only read the gpu busy if the hardware is already active */
+	if (pm_runtime_get_if_in_use(a6xx_gpu->gmu.dev) == 0)
+		return 0;
+
 	busy_cycles = gmu_read64(&a6xx_gpu->gmu,
 			REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_L,
 			REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_H);
@@ -805,6 +824,8 @@
 
 	gpu->devfreq.busy_cycles = busy_cycles;
 
+	pm_runtime_put(a6xx_gpu->gmu.dev);
+
 	if (WARN_ON(busy_time > ~0LU))
 		return ~0LU;
 
@@ -870,6 +891,7 @@
 	BUG_ON(!node);
 
 	ret = a6xx_gmu_init(a6xx_gpu, node);
+	of_node_put(node);
 	if (ret) {
 		a6xx_destroy(&(a6xx_gpu->base.base));
 		return ERR_PTR(ret);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -352,26 +352,26 @@
 		cxdbg = ioremap(res->start, resource_size(res));
 
 	if (cxdbg) {
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_CNTLT,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLT,
 			A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(0xf));
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_CNTLM,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLM,
 			A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(0xf));
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_0, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_1, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_2, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_IVTL_3, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_0, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_1, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_2, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_3, 0);
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_0,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0,
 			0x76543210);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_1,
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1,
 			0xFEDCBA98);
 
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_0, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_1, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_2, 0);
-		cxdbg_write(cxdbg, REG_A6XX_DBGC_CFG_DBGBUS_MASKL_3, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_0, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_1, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_2, 0);
+		cxdbg_write(cxdbg, REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_3, 0);
 	}
 
 	a6xx_state->debugbus = state_kcalloc(a6xx_state,
@@ -834,7 +834,7 @@
 	int i;
 
 	a6xx_state->indexed_regs = state_kcalloc(a6xx_state, count,
-		sizeof(a6xx_state->indexed_regs));
+		sizeof(*a6xx_state->indexed_regs));
 	if (!a6xx_state->indexed_regs)
 		return;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h
@@ -200,7 +200,7 @@
 	SHADER(A6XX_SP_LB_3_DATA, 0x800),
 	SHADER(A6XX_SP_LB_4_DATA, 0x800),
 	SHADER(A6XX_SP_LB_5_DATA, 0x200),
-	SHADER(A6XX_SP_CB_BINDLESS_DATA, 0x2000),
+	SHADER(A6XX_SP_CB_BINDLESS_DATA, 0x800),
 	SHADER(A6XX_SP_CB_LEGACY_DATA, 0x280),
 	SHADER(A6XX_SP_UAV_DATA, 0x80),
 	SHADER(A6XX_SP_INST_TAG, 0x80),
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -233,8 +233,11 @@
 	if (ret)
 		return NULL;
 
-	/* Make sure pm runtime is active and reset any previous errors */
-	pm_runtime_set_active(&pdev->dev);
+	/*
+	 * Now that we have firmware loaded, and are ready to begin
+	 * booting the gpu, go ahead and enable runpm:
+	 */
+	pm_runtime_enable(&pdev->dev);
 
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -350,30 +350,10 @@
 		ring->next = ring->start;
 
 		/* reset completed fence seqno: */
-		ring->memptrs->fence = ring->seqno;
+		ring->memptrs->fence = ring->fctx->completed_fence;
 		ring->memptrs->rptr = 0;
 	}
 
-	/*
-	 * Setup REG_CP_RB_CNTL.  The same value is used across targets (with
-	 * the excpetion of A430 that disables the RPTR shadow) - the cacluation
-	 * for the ringbuffer size and block size is moved to msm_gpu.h for the
-	 * pre-processor to deal with and the A430 variant is ORed in here
-	 */
-	adreno_gpu_write(adreno_gpu, REG_ADRENO_CP_RB_CNTL,
-		MSM_GPU_RB_CNTL_DEFAULT |
-		(adreno_is_a430(adreno_gpu) ? AXXX_CP_RB_CNTL_NO_UPDATE : 0));
-
-	/* Setup ringbuffer address - use ringbuffer[0] for GPU init */
-	adreno_gpu_write64(adreno_gpu, REG_ADRENO_CP_RB_BASE,
-		REG_ADRENO_CP_RB_BASE_HI, gpu->rb[0]->iova);
-
-	if (!adreno_is_a430(adreno_gpu)) {
-		adreno_gpu_write64(adreno_gpu, REG_ADRENO_CP_RB_RPTR_ADDR,
-			REG_ADRENO_CP_RB_RPTR_ADDR_HI,
-			rbmemptr(gpu->rb[0], rptr));
-	}
-
 	return 0;
 }
 
@@ -381,11 +361,8 @@
 static uint32_t get_rptr(struct adreno_gpu *adreno_gpu,
 		struct msm_ringbuffer *ring)
 {
-	if (adreno_is_a430(adreno_gpu))
-		return ring->memptrs->rptr = adreno_gpu_read(
-			adreno_gpu, REG_ADRENO_CP_RB_RPTR);
-	else
-		return ring->memptrs->rptr;
+	return ring->memptrs->rptr = adreno_gpu_read(
+		adreno_gpu, REG_ADRENO_CP_RB_RPTR);
 }
 
 struct msm_ringbuffer *adreno_active_ring(struct msm_gpu *gpu)
@@ -922,7 +899,6 @@
 	pm_runtime_set_autosuspend_delay(&pdev->dev,
 		adreno_gpu->info->inactive_period);
 	pm_runtime_use_autosuspend(&pdev->dev);
-	pm_runtime_enable(&pdev->dev);
 
 	return msm_gpu_init(drm, pdev, &adreno_gpu->base, &funcs->base,
 			adreno_gpu->info->name, &adreno_gpu_config);
@@ -931,11 +907,15 @@
 void adreno_gpu_cleanup(struct adreno_gpu *adreno_gpu)
 {
 	struct msm_gpu *gpu = &adreno_gpu->base;
+	struct msm_drm_private *priv = gpu->dev ? gpu->dev->dev_private : NULL;
 	unsigned int i;
 
 	for (i = 0; i < ARRAY_SIZE(adreno_gpu->info->fw); i++)
 		release_firmware(adreno_gpu->fw[i]);
 
+	if (priv && pm_runtime_enabled(&priv->gpu_pdev->dev))
+		pm_runtime_disable(&priv->gpu_pdev->dev);
+
 	icc_put(gpu->icc_path);
 
 	msm_gpu_cleanup(&adreno_gpu->base);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/adreno/adreno_gpu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/adreno/adreno_gpu.h
@@ -47,11 +47,9 @@
 	ADRENO_FW_MAX,
 };
 
-enum adreno_quirks {
-	ADRENO_QUIRK_TWO_PASS_USE_WFI = 1,
-	ADRENO_QUIRK_FAULT_DETECT_MASK = 2,
-	ADRENO_QUIRK_LMLOADKILL_DISABLE = 3,
-};
+#define ADRENO_QUIRK_TWO_PASS_USE_WFI		BIT(0)
+#define ADRENO_QUIRK_FAULT_DETECT_MASK		BIT(1)
+#define ADRENO_QUIRK_LMLOADKILL_DISABLE		BIT(2)
 
 struct adreno_rev {
 	uint8_t  core;
@@ -74,7 +72,7 @@
 	const char *name;
 	const char *fw[ADRENO_FW_MAX];
 	uint32_t gmem;
-	enum adreno_quirks quirks;
+	u64 quirks;
 	struct msm_gpu *(*init)(struct drm_device *dev);
 	const char *zapfw;
 	u32 inactive_period;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h
@@ -15,19 +15,6 @@
 #define	DPU_PERF_DEFAULT_MAX_CORE_CLK_RATE	412500000
 
 /**
- * enum dpu_core_perf_data_bus_id - data bus identifier
- * @DPU_CORE_PERF_DATA_BUS_ID_MNOC: DPU/MNOC data bus
- * @DPU_CORE_PERF_DATA_BUS_ID_LLCC: MNOC/LLCC data bus
- * @DPU_CORE_PERF_DATA_BUS_ID_EBI: LLCC/EBI data bus
- */
-enum dpu_core_perf_data_bus_id {
-	DPU_CORE_PERF_DATA_BUS_ID_MNOC,
-	DPU_CORE_PERF_DATA_BUS_ID_LLCC,
-	DPU_CORE_PERF_DATA_BUS_ID_EBI,
-	DPU_CORE_PERF_DATA_BUS_ID_MAX,
-};
-
-/**
  * struct dpu_core_perf_params - definition of performance parameters
  * @max_per_pipe_ib: maximum instantaneous bandwidth request
  * @bw_ctl: arbitrated bandwidth request
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -381,7 +381,7 @@
 	spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags);
 
 	if (!fevent) {
-		DRM_ERROR("crtc%d event %d overflow\n", crtc->base.id, event);
+		DRM_ERROR_RATELIMITED("crtc%d event %d overflow\n", crtc->base.id, event);
 		return;
 	}
 
@@ -651,7 +651,10 @@
 	if (crtc->state)
 		dpu_crtc_destroy_state(crtc, crtc->state);
 
-	__drm_atomic_helper_crtc_reset(crtc, &cstate->base);
+	if (cstate)
+		__drm_atomic_helper_crtc_reset(crtc, &cstate->base);
+	else
+		__drm_atomic_helper_crtc_reset(crtc, NULL);
 }
 
 /**
@@ -819,7 +822,7 @@
 	struct drm_plane *plane;
 	struct drm_display_mode *mode;
 
-	int cnt = 0, rc = 0, mixer_width, i, z_pos;
+	int cnt = 0, rc = 0, mixer_width = 0, i, z_pos;
 
 	struct dpu_multirect_plane_states multirect_plane[DPU_STAGE_MAX * 2];
 	int multirect_count = 0;
@@ -833,6 +836,8 @@
 	}
 
 	pstates = kzalloc(sizeof(*pstates) * DPU_STAGE_MAX * 4, GFP_KERNEL);
+	if (!pstates)
+		return -ENOMEM;
 
 	dpu_crtc = to_dpu_crtc(crtc);
 	cstate = to_dpu_crtc_state(state);
@@ -852,9 +857,11 @@
 
 	memset(pipe_staged, 0, sizeof(pipe_staged));
 
-	mixer_width = mode->hdisplay / cstate->num_mixers;
+	if (cstate->num_mixers) {
+		mixer_width = mode->hdisplay / cstate->num_mixers;
 
-	_dpu_crtc_setup_lm_bounds(crtc, state);
+		_dpu_crtc_setup_lm_bounds(crtc, state);
+	}
 
 	crtc_rect.x2 = mode->hdisplay;
 	crtc_rect.y2 = mode->vdisplay;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -2185,7 +2185,6 @@
 
 	dpu_enc = to_dpu_encoder_virt(enc);
 
-	mutex_init(&dpu_enc->enc_lock);
 	ret = dpu_encoder_setup_display(dpu_enc, dpu_kms, disp_info);
 	if (ret)
 		goto fail;
@@ -2200,7 +2199,6 @@
 				0);
 
 
-	mutex_init(&dpu_enc->rc_lock);
 	INIT_DELAYED_WORK(&dpu_enc->delayed_off_work,
 			dpu_encoder_off_work);
 	dpu_enc->idle_timeout = IDLE_TIMEOUT;
@@ -2232,7 +2230,7 @@
 
 	dpu_enc = devm_kzalloc(dev->dev, sizeof(*dpu_enc), GFP_KERNEL);
 	if (!dpu_enc)
-		return ERR_PTR(ENOMEM);
+		return ERR_PTR(-ENOMEM);
 
 	rc = drm_encoder_init(dev, &dpu_enc->base, &dpu_encoder_funcs,
 			drm_enc_mode, NULL);
@@ -2245,6 +2243,8 @@
 
 	spin_lock_init(&dpu_enc->enc_spinlock);
 	dpu_enc->enabled = false;
+	mutex_init(&dpu_enc->enc_lock);
+	mutex_init(&dpu_enc->rc_lock);
 
 	return &dpu_enc->base;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -255,13 +255,13 @@
 
 	INTERLEAVED_RGB_FMT(RGB565,
 		0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
-		C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
+		C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3,
 		false, 2, 0,
 		DPU_FETCH_LINEAR, 1),
 
 	INTERLEAVED_RGB_FMT(BGR565,
 		0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
-		C1_B_Cb, C0_G_Y, C2_R_Cr, 0, 3,
+		C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
 		false, 2, 0,
 		DPU_FETCH_LINEAR, 1),
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
@@ -281,10 +281,12 @@
 	int i;
 
 	for (i = 0; i < ctx->mixer_count; i++) {
-		DPU_REG_WRITE(c, CTL_LAYER(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT2(LM_0 + i), 0);
-		DPU_REG_WRITE(c, CTL_LAYER_EXT3(LM_0 + i), 0);
+		enum dpu_lm mixer_id = ctx->mixer_hw_caps[i].id;
+
+		DPU_REG_WRITE(c, CTL_LAYER(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT2(mixer_id), 0);
+		DPU_REG_WRITE(c, CTL_LAYER_EXT3(mixer_id), 0);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
@@ -137,11 +137,13 @@
 		u32 *idx)
 {
 	int rc = 0;
-	const struct dpu_sspp_sub_blks *sblk = ctx->cap->sblk;
+	const struct dpu_sspp_sub_blks *sblk;
 
-	if (!ctx)
+	if (!ctx || !ctx->cap || !ctx->cap->sblk)
 		return -EINVAL;
 
+	sblk = ctx->cap->sblk;
+
 	switch (s_id) {
 	case DPU_SSPP_SRC:
 		*idx = sblk->src_blk.base;
@@ -404,7 +406,7 @@
 
 	(void)pe;
 	if (_sspp_subblk_offset(ctx, DPU_SSPP_SCALER_QSEED3, &idx) || !sspp
-		|| !scaler3_cfg || !ctx || !ctx->cap || !ctx->cap->sblk)
+		|| !scaler3_cfg)
 		return;
 
 	dpu_hw_setup_scaler3(&ctx->hw, scaler3_cfg, idx,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -88,8 +88,8 @@
 					&status);
 	} else {
 		seq_puts(s, "\nSafe signal status:\n");
-		if (kms->hw_mdp->ops.get_danger_status)
-			kms->hw_mdp->ops.get_danger_status(kms->hw_mdp,
+		if (kms->hw_mdp->ops.get_safe_status)
+			kms->hw_mdp->ops.get_safe_status(kms->hw_mdp,
 					&status);
 	}
 	pm_runtime_put_sync(&kms->pdev->dev);
@@ -596,11 +596,11 @@
 	_dpu_kms_mmu_destroy(dpu_kms);
 
 	if (dpu_kms->catalog) {
-		for (i = 0; i < dpu_kms->catalog->vbif_count; i++) {
-			u32 vbif_idx = dpu_kms->catalog->vbif[i].id;
-
-			if ((vbif_idx < VBIF_MAX) && dpu_kms->hw_vbif[vbif_idx])
-				dpu_hw_vbif_destroy(dpu_kms->hw_vbif[vbif_idx]);
+		for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) {
+			if (dpu_kms->hw_vbif[i]) {
+				dpu_hw_vbif_destroy(dpu_kms->hw_vbif[i]);
+				dpu_kms->hw_vbif[i] = NULL;
+			}
 		}
 	}
 
@@ -897,7 +897,7 @@
 	for (i = 0; i < dpu_kms->catalog->vbif_count; i++) {
 		u32 vbif_idx = dpu_kms->catalog->vbif[i].id;
 
-		dpu_kms->hw_vbif[i] = dpu_hw_vbif_init(vbif_idx,
+		dpu_kms->hw_vbif[vbif_idx] = dpu_hw_vbif_init(vbif_idx,
 				dpu_kms->vbif[vbif_idx], dpu_kms->catalog);
 		if (IS_ERR_OR_NULL(dpu_kms->hw_vbif[vbif_idx])) {
 			rc = PTR_ERR(dpu_kms->hw_vbif[vbif_idx]);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -853,9 +853,9 @@
 		crtc_state = drm_atomic_get_new_crtc_state(state->state,
 							   state->crtc);
 
-	min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxdwnscale);
+	min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxupscale);
 	ret = drm_atomic_helper_check_plane_state(state, crtc_state, min_scale,
-					  pdpu->pipe_sblk->maxupscale << 16,
+					  pdpu->pipe_sblk->maxdwnscale << 16,
 					  true, true);
 	if (ret) {
 		DPU_ERROR_PLANE(pdpu, "Check plane state failed (%d)\n", ret);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c
@@ -11,6 +11,14 @@
 #include "dpu_hw_vbif.h"
 #include "dpu_trace.h"
 
+static struct dpu_hw_vbif *dpu_get_vbif(struct dpu_kms *dpu_kms, enum dpu_vbif vbif_idx)
+{
+	if (vbif_idx < ARRAY_SIZE(dpu_kms->hw_vbif))
+		return dpu_kms->hw_vbif[vbif_idx];
+
+	return NULL;
+}
+
 /**
  * _dpu_vbif_wait_for_xin_halt - wait for the xin to halt
  * @vbif:	Pointer to hardware vbif driver
@@ -148,11 +156,11 @@
 void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms,
 		struct dpu_vbif_set_ot_params *params)
 {
-	struct dpu_hw_vbif *vbif = NULL;
+	struct dpu_hw_vbif *vbif;
 	struct dpu_hw_mdp *mdp;
 	bool forced_on = false;
 	u32 ot_lim;
-	int ret, i;
+	int ret;
 
 	if (!dpu_kms) {
 		DPU_ERROR("invalid arguments\n");
@@ -160,12 +168,7 @@
 	}
 	mdp = dpu_kms->hw_mdp;
 
-	for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) {
-		if (dpu_kms->hw_vbif[i] &&
-				dpu_kms->hw_vbif[i]->idx == params->vbif_idx)
-			vbif = dpu_kms->hw_vbif[i];
-	}
-
+	vbif = dpu_get_vbif(dpu_kms, params->vbif_idx);
 	if (!vbif || !mdp) {
 		DPU_DEBUG("invalid arguments vbif %d mdp %d\n",
 				vbif != 0, mdp != 0);
@@ -208,7 +211,7 @@
 void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms,
 		struct dpu_vbif_set_qos_params *params)
 {
-	struct dpu_hw_vbif *vbif = NULL;
+	struct dpu_hw_vbif *vbif;
 	struct dpu_hw_mdp *mdp;
 	bool forced_on = false;
 	const struct dpu_vbif_qos_tbl *qos_tbl;
@@ -220,13 +223,7 @@
 	}
 	mdp = dpu_kms->hw_mdp;
 
-	for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) {
-		if (dpu_kms->hw_vbif[i] &&
-				dpu_kms->hw_vbif[i]->idx == params->vbif_idx) {
-			vbif = dpu_kms->hw_vbif[i];
-			break;
-		}
-	}
+	vbif = dpu_get_vbif(dpu_kms, params->vbif_idx);
 
 	if (!vbif || !vbif->cap) {
 		DPU_ERROR("invalid vbif %d\n", params->vbif_idx);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c
@@ -121,7 +121,7 @@
 	if (mdp4_dsi_encoder->enabled)
 		return;
 
-	 mdp4_crtc_set_config(encoder->crtc,
+	mdp4_crtc_set_config(encoder->crtc,
 			MDP4_DMA_CONFIG_PACK_ALIGN_MSB |
 			MDP4_DMA_CONFIG_DEFLKR_EN |
 			MDP4_DMA_CONFIG_DITHER_EN |
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -88,8 +88,6 @@
 	if (mdp4_kms->rev > 1)
 		mdp4_write(mdp4_kms, REG_MDP4_RESET_STATUS, 1);
 
-	dev->mode_config.allow_fb_modifiers = true;
-
 out:
 	pm_runtime_put_sync(dev->dev);
 
@@ -110,13 +108,6 @@
 
 static void mdp4_prepare_commit(struct msm_kms *kms, struct drm_atomic_state *state)
 {
-	int i;
-	struct drm_crtc *crtc;
-	struct drm_crtc_state *crtc_state;
-
-	/* see 119ecb7fd */
-	for_each_new_crtc_in_state(state, crtc, crtc_state, i)
-		drm_crtc_vblank_get(crtc);
 }
 
 static void mdp4_flush_commit(struct msm_kms *kms, unsigned crtc_mask)
@@ -135,12 +126,6 @@
 
 static void mdp4_complete_commit(struct msm_kms *kms, unsigned crtc_mask)
 {
-	struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
-	struct drm_crtc *crtc;
-
-	/* see 119ecb7fd */
-	for_each_crtc_mask(mdp4_kms->dev, crtc, crtc_mask)
-		drm_crtc_vblank_put(crtc);
 }
 
 static long mdp4_round_pixclk(struct msm_kms *kms, unsigned long rate,
@@ -260,6 +245,7 @@
 		encoder = mdp4_lcdc_encoder_init(dev, panel_node);
 		if (IS_ERR(encoder)) {
 			DRM_DEV_ERROR(dev->dev, "failed to construct LCDC encoder\n");
+			of_node_put(panel_node);
 			return PTR_ERR(encoder);
 		}
 
@@ -269,6 +255,7 @@
 		connector = mdp4_lvds_connector_init(dev, panel_node, encoder);
 		if (IS_ERR(connector)) {
 			DRM_DEV_ERROR(dev->dev, "failed to initialize LVDS connector\n");
+			of_node_put(panel_node);
 			return PTR_ERR(connector);
 		}
 
@@ -420,6 +407,7 @@
 {
 	struct platform_device *pdev = to_platform_device(dev->dev);
 	struct mdp4_platform_config *config = mdp4_get_config(pdev);
+	struct msm_drm_private *priv = dev->dev_private;
 	struct mdp4_kms *mdp4_kms;
 	struct msm_kms *kms = NULL;
 	struct msm_gem_address_space *aspace;
@@ -434,7 +422,8 @@
 
 	mdp_kms_init(&mdp4_kms->base, &kms_funcs);
 
-	kms = &mdp4_kms->base.base;
+	priv->kms = &mdp4_kms->base.base;
+	kms = priv->kms;
 
 	mdp4_kms->dev = dev;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c
@@ -61,8 +61,9 @@
 	return ret;
 }
 
-static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
-				 struct drm_display_mode *mode)
+static enum drm_mode_status
+mdp4_lvds_connector_mode_valid(struct drm_connector *connector,
+			       struct drm_display_mode *mode)
 {
 	struct mdp4_lvds_connector *mdp4_lvds_connector =
 			to_mdp4_lvds_connector(connector);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c
@@ -347,6 +347,12 @@
 	return mdp4_plane->pipe;
 }
 
+static const uint64_t supported_format_modifiers[] = {
+	DRM_FORMAT_MOD_SAMSUNG_64_32_TILE,
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID
+};
+
 /* initialize plane */
 struct drm_plane *mdp4_plane_init(struct drm_device *dev,
 		enum mdp4_pipe pipe_id, bool private_plane)
@@ -375,7 +381,7 @@
 	type = private_plane ? DRM_PLANE_TYPE_PRIMARY : DRM_PLANE_TYPE_OVERLAY;
 	ret = drm_universal_plane_init(dev, plane, 0xff, &mdp4_plane_funcs,
 				 mdp4_plane->formats, mdp4_plane->nformats,
-				 NULL, type, NULL);
+				 supported_format_modifiers, type, NULL);
 	if (ret)
 		goto fail;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c
@@ -41,7 +41,7 @@
 {
 	struct mdp5_kms *mdp5_kms = get_kms(encoder);
 	struct device *dev = encoder->dev->dev;
-	u32 total_lines_x100, vclks_line, cfg;
+	u32 total_lines, vclks_line, cfg;
 	long vsync_clk_speed;
 	struct mdp5_hw_mixer *mixer = mdp5_crtc_get_mixer(encoder->crtc);
 	int pp_id = mixer->pp;
@@ -51,8 +51,8 @@
 		return -EINVAL;
 	}
 
-	total_lines_x100 = mode->vtotal * drm_mode_vrefresh(mode);
-	if (!total_lines_x100) {
+	total_lines = mode->vtotal * drm_mode_vrefresh(mode);
+	if (!total_lines) {
 		DRM_DEV_ERROR(dev, "%s: vtotal(%d) or vrefresh(%d) is 0\n",
 			      __func__, mode->vtotal, drm_mode_vrefresh(mode));
 		return -EINVAL;
@@ -64,15 +64,23 @@
 							vsync_clk_speed);
 		return -EINVAL;
 	}
-	vclks_line = vsync_clk_speed * 100 / total_lines_x100;
+	vclks_line = vsync_clk_speed / total_lines;
 
 	cfg = MDP5_PP_SYNC_CONFIG_VSYNC_COUNTER_EN
 		| MDP5_PP_SYNC_CONFIG_VSYNC_IN_EN;
 	cfg |= MDP5_PP_SYNC_CONFIG_VSYNC_COUNT(vclks_line);
 
+	/*
+	 * Tearcheck emits a blanking signal every vclks_line * vtotal * 2 ticks on
+	 * the vsync_clk equating to roughly half the desired panel refresh rate.
+	 * This is only necessary as stability fallback if interrupts from the
+	 * panel arrive too late or not at all, but is currently used by default
+	 * because these panel interrupts are not wired up yet.
+	 */
 	mdp5_write(mdp5_kms, REG_MDP5_PP_SYNC_CONFIG_VSYNC(pp_id), cfg);
 	mdp5_write(mdp5_kms,
-		REG_MDP5_PP_SYNC_CONFIG_HEIGHT(pp_id), 0xfff0);
+		REG_MDP5_PP_SYNC_CONFIG_HEIGHT(pp_id), (2 * mode->vtotal));
+
 	mdp5_write(mdp5_kms,
 		REG_MDP5_PP_VSYNC_INIT_VAL(pp_id), mode->vdisplay);
 	mdp5_write(mdp5_kms, REG_MDP5_PP_RD_PTR_IRQ(pp_id), mode->vdisplay + 1);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
@@ -534,9 +534,15 @@
 		if (ret)
 			return ret;
 
-		mdp5_mixer_release(new_crtc_state->state, old_mixer);
+		ret = mdp5_mixer_release(new_crtc_state->state, old_mixer);
+		if (ret)
+			return ret;
+
 		if (old_r_mixer) {
-			mdp5_mixer_release(new_crtc_state->state, old_r_mixer);
+			ret = mdp5_mixer_release(new_crtc_state->state, old_r_mixer);
+			if (ret)
+				return ret;
+
 			if (!need_right_mixer)
 				pipeline->r_mixer = NULL;
 		}
@@ -903,8 +909,10 @@
 
 	ret = msm_gem_get_and_pin_iova(cursor_bo, kms->aspace,
 			&mdp5_crtc->cursor.iova);
-	if (ret)
+	if (ret) {
+		drm_gem_object_put(cursor_bo);
 		return -EINVAL;
+	}
 
 	pm_runtime_get_sync(&pdev->dev);
 
@@ -1042,7 +1050,10 @@
 	if (crtc->state)
 		mdp5_crtc_destroy_state(crtc, crtc->state);
 
-	__drm_atomic_helper_crtc_reset(crtc, &mdp5_cstate->base);
+	if (mdp5_cstate)
+		__drm_atomic_helper_crtc_reset(crtc, &mdp5_cstate->base);
+	else
+		__drm_atomic_helper_crtc_reset(crtc, NULL);
 
 	drm_crtc_vblank_reset(crtc);
 }
@@ -1099,7 +1110,7 @@
 	struct mdp5_crtc *mdp5_crtc = container_of(irq, struct mdp5_crtc,
 								pp_done);
 
-	complete(&mdp5_crtc->pp_completion);
+	complete_all(&mdp5_crtc->pp_completion);
 }
 
 static void mdp5_crtc_wait_for_pp_done(struct drm_crtc *crtc)
@@ -1112,8 +1123,8 @@
 	ret = wait_for_completion_timeout(&mdp5_crtc->pp_completion,
 						msecs_to_jiffies(50));
 	if (ret == 0)
-		dev_warn(dev->dev, "pp done time out, lm=%d\n",
-			 mdp5_cstate->pipeline.mixer->lm);
+		dev_warn_ratelimited(dev->dev, "pp done time out, lm=%d\n",
+				     mdp5_cstate->pipeline.mixer->lm);
 }
 
 static void mdp5_crtc_wait_for_flush_done(struct drm_crtc *crtc)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
@@ -698,9 +698,9 @@
 	pdev = mdp5_kms->pdev;
 
 	irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
-	if (irq < 0) {
-		ret = irq;
-		DRM_DEV_ERROR(&pdev->dev, "failed to get irq: %d\n", ret);
+	if (!irq) {
+		ret = -EINVAL;
+		DRM_DEV_ERROR(&pdev->dev, "failed to get irq\n");
 		goto fail;
 	}
 
@@ -1037,7 +1037,8 @@
 
 	return 0;
 fail:
-	mdp5_destroy(pdev);
+	if (mdp5_kms)
+		mdp5_destroy(pdev);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.c
@@ -116,21 +116,28 @@
 	return 0;
 }
 
-void mdp5_mixer_release(struct drm_atomic_state *s, struct mdp5_hw_mixer *mixer)
+int mdp5_mixer_release(struct drm_atomic_state *s, struct mdp5_hw_mixer *mixer)
 {
 	struct mdp5_global_state *global_state = mdp5_get_global_state(s);
-	struct mdp5_hw_mixer_state *new_state = &global_state->hwmixer;
+	struct mdp5_hw_mixer_state *new_state;
 
 	if (!mixer)
-		return;
+		return 0;
+
+	if (IS_ERR(global_state))
+		return PTR_ERR(global_state);
+
+	new_state = &global_state->hwmixer;
 
 	if (WARN_ON(!new_state->hwmixer_to_crtc[mixer->idx]))
-		return;
+		return -EINVAL;
 
 	DBG("%s: release from crtc %s", mixer->name,
 	    new_state->hwmixer_to_crtc[mixer->idx]->name);
 
 	new_state->hwmixer_to_crtc[mixer->idx] = NULL;
+
+	return 0;
 }
 
 void mdp5_mixer_destroy(struct mdp5_hw_mixer *mixer)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.h
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.h
@@ -30,7 +30,7 @@
 int mdp5_mixer_assign(struct drm_atomic_state *s, struct drm_crtc *crtc,
 		      uint32_t caps, struct mdp5_hw_mixer **mixer,
 		      struct mdp5_hw_mixer **r_mixer);
-void mdp5_mixer_release(struct drm_atomic_state *s,
-			struct mdp5_hw_mixer *mixer);
+int mdp5_mixer_release(struct drm_atomic_state *s,
+		       struct mdp5_hw_mixer *mixer);
 
 #endif /* __MDP5_LM_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c
@@ -119,18 +119,24 @@
 	return 0;
 }
 
-void mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe)
+int mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe)
 {
 	struct msm_drm_private *priv = s->dev->dev_private;
 	struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms));
-	struct mdp5_global_state *state = mdp5_get_global_state(s);
-	struct mdp5_hw_pipe_state *new_state = &state->hwpipe;
+	struct mdp5_global_state *state;
+	struct mdp5_hw_pipe_state *new_state;
 
 	if (!hwpipe)
-		return;
+		return 0;
+
+	state = mdp5_get_global_state(s);
+	if (IS_ERR(state))
+		return PTR_ERR(state);
+
+	new_state = &state->hwpipe;
 
 	if (WARN_ON(!new_state->hwpipe_to_plane[hwpipe->idx]))
-		return;
+		return -EINVAL;
 
 	DBG("%s: release from plane %s", hwpipe->name,
 		new_state->hwpipe_to_plane[hwpipe->idx]->name);
@@ -141,6 +147,8 @@
 	}
 
 	new_state->hwpipe_to_plane[hwpipe->idx] = NULL;
+
+	return 0;
 }
 
 void mdp5_pipe_destroy(struct mdp5_hw_pipe *hwpipe)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.h
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.h
@@ -37,7 +37,7 @@
 		     uint32_t caps, uint32_t blkcfg,
 		     struct mdp5_hw_pipe **hwpipe,
 		     struct mdp5_hw_pipe **r_hwpipe);
-void mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe);
+int mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe);
 
 struct mdp5_hw_pipe *mdp5_pipe_init(enum mdp5_pipe pipe,
 		uint32_t reg_offset, uint32_t caps);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
@@ -179,7 +179,10 @@
 		drm_framebuffer_put(plane->state->fb);
 
 	kfree(to_mdp5_plane_state(plane->state));
+	plane->state = NULL;
 	mdp5_state = kzalloc(sizeof(*mdp5_state), GFP_KERNEL);
+	if (!mdp5_state)
+		return;
 
 	/* assign default blend parameters */
 	mdp5_state->alpha = 255;
@@ -218,8 +221,7 @@
 {
 	struct mdp5_plane_state *pstate = to_mdp5_plane_state(state);
 
-	if (state->fb)
-		drm_framebuffer_put(state->fb);
+	__drm_atomic_helper_plane_destroy_state(state);
 
 	kfree(pstate);
 }
@@ -390,12 +392,24 @@
 				mdp5_state->r_hwpipe = NULL;
 
 
-			mdp5_pipe_release(state->state, old_hwpipe);
-			mdp5_pipe_release(state->state, old_right_hwpipe);
+			ret = mdp5_pipe_release(state->state, old_hwpipe);
+			if (ret)
+				return ret;
+
+			ret = mdp5_pipe_release(state->state, old_right_hwpipe);
+			if (ret)
+				return ret;
+
 		}
 	} else {
-		mdp5_pipe_release(state->state, mdp5_state->hwpipe);
-		mdp5_pipe_release(state->state, mdp5_state->r_hwpipe);
+		ret = mdp5_pipe_release(state->state, mdp5_state->hwpipe);
+		if (ret)
+			return ret;
+
+		ret = mdp5_pipe_release(state->state, mdp5_state->r_hwpipe);
+		if (ret)
+			return ret;
+
 		mdp5_state->hwpipe = mdp5_state->r_hwpipe = NULL;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/dsi.c
@@ -26,17 +26,22 @@
 	}
 
 	phy_pdev = of_find_device_by_node(phy_node);
-	if (phy_pdev)
+	if (phy_pdev) {
 		msm_dsi->phy = platform_get_drvdata(phy_pdev);
+		msm_dsi->phy_dev = &phy_pdev->dev;
+	}
 
 	of_node_put(phy_node);
 
-	if (!phy_pdev || !msm_dsi->phy) {
+	if (!phy_pdev) {
+		DRM_DEV_ERROR(&pdev->dev, "%s: phy driver is not ready\n", __func__);
+		return -EPROBE_DEFER;
+	}
+	if (!msm_dsi->phy) {
+		put_device(&phy_pdev->dev);
 		DRM_DEV_ERROR(&pdev->dev, "%s: phy driver is not ready\n", __func__);
 		return -EPROBE_DEFER;
 	}
-
-	msm_dsi->phy_dev = get_device(&phy_pdev->dev);
 
 	return 0;
 }
@@ -198,6 +203,12 @@
 		return -EINVAL;
 
 	priv = dev->dev_private;
+
+	if (priv->num_bridges == ARRAY_SIZE(priv->bridges)) {
+		DRM_DEV_ERROR(dev->dev, "too many bridges\n");
+		return -ENOSPC;
+	}
+
 	msm_dsi->dev = dev;
 
 	ret = msm_dsi_host_modeset_init(msm_dsi->host, dev);
@@ -206,8 +217,10 @@
 		goto fail;
 	}
 
-	if (!msm_dsi_manager_validate_current_config(msm_dsi->id))
+	if (!msm_dsi_manager_validate_current_config(msm_dsi->id)) {
+		ret = -EINVAL;
 		goto fail;
+	}
 
 	msm_dsi->encoder = encoder;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/dsi_cfg.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/dsi_cfg.c
@@ -97,7 +97,7 @@
 static const struct msm_dsi_config msm8996_dsi_cfg = {
 	.io_offset = DSI_6G_REG_SHIFT,
 	.reg_cfg = {
-		.num = 2,
+		.num = 3,
 		.regs = {
 			{"vdda", 18160, 1 },	/* 1.25 V */
 			{"vcca", 17000, 32 },	/* 0.925 V */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -460,7 +460,7 @@
 
 	return 0;
 err:
-	for (; i > 0; i--)
+	while (--i >= 0)
 		clk_disable_unprepare(msm_host->bus_clks[i]);
 
 	return ret;
@@ -1051,9 +1051,21 @@
 
 static void dsi_wait4video_eng_busy(struct msm_dsi_host *msm_host)
 {
+	u32 data;
+
 	if (!(msm_host->mode_flags & MIPI_DSI_MODE_VIDEO))
 		return;
 
+	data = dsi_read(msm_host, REG_DSI_STATUS0);
+
+	/* if video mode engine is not busy, its because
+	 * either timing engine was not turned on or the
+	 * DSI controller has finished transmitting the video
+	 * data already, so no need to wait in those cases
+	 */
+	if (!(data & DSI_STATUS0_VIDEO_MODE_ENGINE_BUSY))
+		return;
+
 	if (msm_host->power_on && msm_host->enabled) {
 		dsi_wait4video_done(msm_host);
 		/* delay 4 ms to skip BLLP */
@@ -1348,10 +1360,10 @@
 			dsi_get_bpp(msm_host->format) / 8;
 
 	len = dsi_cmd_dma_add(msm_host, msg);
-	if (!len) {
+	if (len < 0) {
 		pr_err("%s: failed to add cmd type = 0x%x\n",
 			__func__,  msg->type);
-		return -EINVAL;
+		return len;
 	}
 
 	/* for video mode, do not send cmds more than
@@ -1370,10 +1382,14 @@
 	}
 
 	ret = dsi_cmd_dma_tx(msm_host, len);
-	if (ret < len) {
-		pr_err("%s: cmd dma tx failed, type=0x%x, data0=0x%x, len=%d\n",
-			__func__, msg->type, (*(u8 *)(msg->tx_buf)), len);
-		return -ECOMM;
+	if (ret < 0) {
+		pr_err("%s: cmd dma tx failed, type=0x%x, data0=0x%x, len=%d, ret=%d\n",
+			__func__, msg->type, (*(u8 *)(msg->tx_buf)), len, ret);
+		return ret;
+	} else if (ret < len) {
+		pr_err("%s: cmd dma tx failed, type=0x%x, data0=0x%x, ret=%d len=%d\n",
+			__func__, msg->type, (*(u8 *)(msg->tx_buf)), ret, len);
+		return -EIO;
 	}
 
 	return len;
@@ -1669,6 +1685,8 @@
 	if (!prop) {
 		DRM_DEV_DEBUG(dev,
 			"failed to find data lane mapping, using default\n");
+		/* Set the number of date lanes to 4 by default. */
+		msm_host->num_data_lanes = 4;
 		return 0;
 	}
 
@@ -1871,6 +1889,9 @@
 
 	/* setup workqueue */
 	msm_host->workqueue = alloc_ordered_workqueue("dsi_drm_work", 0);
+	if (!msm_host->workqueue)
+		return -ENOMEM;
+
 	INIT_WORK(&msm_host->err_work, dsi_err_worker);
 	INIT_WORK(&msm_host->hpd_work, dsi_hpd_worker);
 
@@ -2097,9 +2118,12 @@
 		}
 
 		ret = dsi_cmds2buf_tx(msm_host, msg);
-		if (ret < msg->tx_len) {
+		if (ret < 0) {
 			pr_err("%s: Read cmd Tx failed, %d\n", __func__, ret);
 			return ret;
+		} else if (ret < msg->tx_len) {
+			pr_err("%s: Read cmd Tx failed, too short: %d\n", __func__, ret);
+			return -ECOMM;
 		}
 
 		/*
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -336,7 +336,7 @@
 	return num;
 }
 
-static int dsi_mgr_connector_mode_valid(struct drm_connector *connector,
+static enum drm_mode_status dsi_mgr_connector_mode_valid(struct drm_connector *connector,
 				struct drm_display_mode *mode)
 {
 	int id = dsi_mgr_connector_get_id(connector);
@@ -479,6 +479,7 @@
 	struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1);
 	struct mipi_dsi_host *host = msm_dsi->host;
 	struct drm_panel *panel = msm_dsi->panel;
+	struct msm_dsi_pll *src_pll;
 	bool is_dual_dsi = IS_DUAL_DSI();
 	int ret;
 
@@ -519,6 +520,10 @@
 								id, ret);
 	}
 
+	/* Save PLL status if it is a clock source */
+	src_pll = msm_dsi_phy_get_pll(msm_dsi->phy);
+	msm_dsi_pll_save_state(src_pll);
+
 	ret = msm_dsi_host_power_off(host);
 	if (ret)
 		pr_err("%s: host %d power off failed,%d\n", __func__, id, ret);
@@ -620,7 +625,7 @@
 	return connector;
 
 fail:
-	connector->funcs->destroy(msm_dsi->connector);
+	connector->funcs->destroy(connector);
 	return ERR_PTR(ret);
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
@@ -347,7 +347,7 @@
 	} else {
 		timing->shared_timings.clk_pre =
 			linear_inter(tmax, tmin, pcnt2, 0, false);
-			timing->shared_timings.clk_pre_inc_by_2 = 0;
+		timing->shared_timings.clk_pre_inc_by_2 = 0;
 	}
 
 	timing->ta_go = 3;
@@ -665,12 +665,14 @@
 int msm_dsi_phy_enable(struct msm_dsi_phy *phy, int src_pll_id,
 			struct msm_dsi_phy_clk_request *clk_req)
 {
-	struct device *dev = &phy->pdev->dev;
+	struct device *dev;
 	int ret;
 
 	if (!phy || !phy->cfg->ops.enable)
 		return -EINVAL;
 
+	dev = &phy->pdev->dev;
+
 	ret = dsi_phy_enable_resource(phy);
 	if (ret) {
 		DRM_DEV_ERROR(dev, "%s: resource enable failed, %d\n",
@@ -724,10 +726,6 @@
 	if (!phy || !phy->cfg->ops.disable)
 		return;
 
-	/* Save PLL status if it is a clock source */
-	if (phy->usecase != MSM_DSI_PHY_SLAVE)
-		msm_dsi_pll_save_state(phy->pll);
-
 	phy->cfg->ops.disable(phy);
 
 	dsi_phy_regulator_disable(phy);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c
@@ -139,7 +139,7 @@
 		.disable = dsi_20nm_phy_disable,
 		.init = msm_dsi_phy_init_common,
 	},
-	.io_start = { 0xfd998300, 0xfd9a0300 },
+	.io_start = { 0xfd998500, 0xfd9a0500 },
 	.num_dsi_phy = 2,
 };
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
@@ -411,6 +411,12 @@
 	if (pll_10nm->slave)
 		dsi_pll_enable_pll_bias(pll_10nm->slave);
 
+	rc = dsi_pll_10nm_vco_set_rate(hw,pll_10nm->vco_current_rate, 0);
+	if (rc) {
+		pr_err("vco_set_rate failed, rc=%d\n", rc);
+		return rc;
+	}
+
 	/* Start PLL */
 	pll_write(pll_10nm->phy_cmn_mmio + REG_DSI_10nm_PHY_CMN_PLL_CNTRL,
 		  0x01);
@@ -553,6 +559,7 @@
 	struct pll_10nm_cached_state *cached = &pll_10nm->cached_state;
 	void __iomem *phy_base = pll_10nm->phy_cmn_mmio;
 	u32 val;
+	int ret;
 
 	val = pll_read(pll_10nm->mmio + REG_DSI_10nm_PHY_PLL_PLL_OUTDIV_RATE);
 	val &= ~0x3;
@@ -567,6 +574,13 @@
 	val |= cached->pll_mux;
 	pll_write(phy_base + REG_DSI_10nm_PHY_CMN_CLK_CFG1, val);
 
+	ret = dsi_pll_10nm_vco_set_rate(&pll->clk_hw, pll_10nm->vco_current_rate, pll_10nm->vco_ref_clk_rate);
+	if (ret) {
+		DRM_DEV_ERROR(&pll_10nm->pdev->dev,
+			"restore vco rate failed. ret=%d\n", ret);
+		return ret;
+	}
+
 	DBG("DSI PLL%d", pll_10nm->id);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/edp/edp_ctrl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/edp/edp_ctrl.c
@@ -1082,7 +1082,7 @@
 int msm_edp_ctrl_init(struct msm_edp *edp)
 {
 	struct edp_ctrl *ctrl = NULL;
-	struct device *dev = &edp->pdev->dev;
+	struct device *dev;
 	int ret;
 
 	if (!edp) {
@@ -1090,6 +1090,7 @@
 		return -EINVAL;
 	}
 
+	dev = &edp->pdev->dev;
 	ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL);
 	if (!ctrl)
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/hdmi/hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/hdmi/hdmi.c
@@ -97,10 +97,15 @@
 
 	of_node_put(phy_node);
 
-	if (!phy_pdev || !hdmi->phy) {
+	if (!phy_pdev) {
 		DRM_DEV_ERROR(&pdev->dev, "phy driver is not ready\n");
 		return -EPROBE_DEFER;
 	}
+	if (!hdmi->phy) {
+		DRM_DEV_ERROR(&pdev->dev, "phy driver is not ready\n");
+		put_device(&phy_pdev->dev);
+		return -EPROBE_DEFER;
+	}
 
 	hdmi->phy_dev = get_device(&phy_pdev->dev);
 
@@ -137,6 +142,10 @@
 	/* HDCP needs physical address of hdmi register */
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
 		config->mmio_name);
+	if (!res) {
+		ret = -EINVAL;
+		goto fail;
+	}
 	hdmi->mmio_phy_addr = res->start;
 
 	hdmi->qfprom_mmio = msm_ioremap(pdev,
@@ -239,6 +248,10 @@
 	pm_runtime_enable(&pdev->dev);
 
 	hdmi->workq = alloc_ordered_workqueue("msm_hdmi", 0);
+	if (!hdmi->workq) {
+		ret = -ENOMEM;
+		goto fail;
+	}
 
 	hdmi->i2c = msm_hdmi_i2c_init(hdmi);
 	if (IS_ERR(hdmi->i2c)) {
@@ -284,6 +297,11 @@
 	struct platform_device *pdev = hdmi->pdev;
 	int ret;
 
+	if (priv->num_bridges == ARRAY_SIZE(priv->bridges)) {
+		DRM_DEV_ERROR(dev->dev, "too many bridges\n");
+		return -ENOSPC;
+	}
+
 	hdmi->dev = dev;
 	hdmi->encoder = encoder;
 
@@ -306,9 +324,9 @@
 	}
 
 	hdmi->irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
-	if (hdmi->irq < 0) {
-		ret = hdmi->irq;
-		DRM_DEV_ERROR(dev->dev, "failed to get irq: %d\n", ret);
+	if (!hdmi->irq) {
+		ret = -EINVAL;
+		DRM_DEV_ERROR(dev->dev, "failed to get irq\n");
 		goto fail;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_atomic.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_atomic.c
@@ -27,6 +27,34 @@
 	return msm_framebuffer_prepare(new_state->fb, kms->aspace);
 }
 
+/*
+ * Helpers to control vblanks while we flush.. basically just to ensure
+ * that vblank accounting is switched on, so we get valid seqn/timestamp
+ * on pageflip events (if requested)
+ */
+
+static void vblank_get(struct msm_kms *kms, unsigned crtc_mask)
+{
+	struct drm_crtc *crtc;
+
+	for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
+		if (!crtc->state->active)
+			continue;
+		drm_crtc_vblank_get(crtc);
+	}
+}
+
+static void vblank_put(struct msm_kms *kms, unsigned crtc_mask)
+{
+	struct drm_crtc *crtc;
+
+	for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
+		if (!crtc->state->active)
+			continue;
+		drm_crtc_vblank_put(crtc);
+	}
+}
+
 static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx)
 {
 	unsigned crtc_mask = BIT(crtc_idx);
@@ -44,6 +72,8 @@
 
 	kms->funcs->enable_commit(kms);
 
+	vblank_get(kms, crtc_mask);
+
 	/*
 	 * Flush hardware updates:
 	 */
@@ -58,6 +88,8 @@
 	kms->funcs->wait_flush(kms, crtc_mask);
 	trace_msm_atomic_wait_flush_finish(crtc_mask);
 
+	vblank_put(kms, crtc_mask);
+
 	mutex_lock(&kms->commit_lock);
 	kms->funcs->complete_commit(kms, crtc_mask);
 	mutex_unlock(&kms->commit_lock);
@@ -221,6 +253,8 @@
 	 */
 	kms->pending_crtc_mask &= ~crtc_mask;
 
+	vblank_get(kms, crtc_mask);
+
 	/*
 	 * Flush hardware updates:
 	 */
@@ -235,6 +269,8 @@
 	kms->funcs->wait_flush(kms, crtc_mask);
 	trace_msm_atomic_wait_flush_finish(crtc_mask);
 
+	vblank_put(kms, crtc_mask);
+
 	mutex_lock(&kms->commit_lock);
 	kms->funcs->complete_commit(kms, crtc_mask);
 	mutex_unlock(&kms->commit_lock);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_debugfs.c
@@ -47,12 +47,8 @@
 	struct msm_gpu_show_priv *show_priv = m->private;
 	struct msm_drm_private *priv = show_priv->dev->dev_private;
 	struct msm_gpu *gpu = priv->gpu;
-	int ret;
-
-	ret = mutex_lock_interruptible(&show_priv->dev->struct_mutex);
-	if (ret)
-		return ret;
 
+	mutex_lock(&show_priv->dev->struct_mutex);
 	gpu->funcs->gpu_state_put(show_priv->state);
 	mutex_unlock(&show_priv->dev->struct_mutex);
 
@@ -81,6 +77,7 @@
 		goto free_priv;
 
 	pm_runtime_get_sync(&gpu->pdev->dev);
+	msm_gpu_hw_init(gpu);
 	show_priv->state = gpu->funcs->gpu_state_get(gpu);
 	pm_runtime_put_sync(&gpu->pdev->dev);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_drv.c
@@ -337,7 +337,7 @@
 		of_node_put(node);
 		if (ret)
 			return ret;
-		size = r.end - r.start;
+		size = r.end - r.start + 1;
 		DRM_INFO("using VRAM carveout: %lx@%pa\n", size, &r.start);
 
 		/* if we have no IOMMU, then we need to use carveout allocator.
@@ -432,14 +432,24 @@
 
 	drm_mode_config_init(ddev);
 
+	ret = msm_init_vram(ddev);
+	if (ret)
+		goto err_destroy_mdss;
+
 	/* Bind all our sub-components: */
 	ret = component_bind_all(dev, ddev);
 	if (ret)
 		goto err_destroy_mdss;
 
-	ret = msm_init_vram(ddev);
-	if (ret)
-		goto err_msm_uninit;
+	if (!dev->dma_parms) {
+		dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms),
+					      GFP_KERNEL);
+		if (!dev->dma_parms) {
+			ret = -ENOMEM;
+			goto err_msm_uninit;
+		}
+	}
+	dma_set_max_seg_size(dev, DMA_BIT_MASK(32));
 
 	msm_gem_shrinker_init(ddev);
 
@@ -557,6 +567,7 @@
 	kfree(priv);
 err_put_drm_dev:
 	drm_dev_put(ddev);
+	platform_set_drvdata(pdev, NULL);
 	return ret;
 }
 
@@ -1313,6 +1324,17 @@
 	return 0;
 }
 
+static void msm_pdev_shutdown(struct platform_device *pdev)
+{
+	struct drm_device *drm = platform_get_drvdata(pdev);
+	struct msm_drm_private *priv = drm ? drm->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return;
+
+	drm_atomic_helper_shutdown(drm);
+}
+
 static const struct of_device_id dt_match[] = {
 	{ .compatible = "qcom,mdp4", .data = (void *)KMS_MDP4 },
 	{ .compatible = "qcom,mdss", .data = (void *)KMS_MDP5 },
@@ -1324,6 +1346,7 @@
 static struct platform_driver msm_platform_driver = {
 	.probe      = msm_pdev_probe,
 	.remove     = msm_pdev_remove,
+	.shutdown   = msm_pdev_shutdown,
 	.driver     = {
 		.name   = "msm",
 		.of_match_table = dt_match,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_fence.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_fence.c
@@ -20,7 +20,7 @@
 		return ERR_PTR(-ENOMEM);
 
 	fctx->dev = dev;
-	strncpy(fctx->name, name, sizeof(fctx->name));
+	strscpy(fctx->name, name, sizeof(fctx->name));
 	fctx->context = dma_fence_context_alloc(1);
 	init_waitqueue_head(&fctx->event);
 	spin_lock_init(&fctx->spinlock);
@@ -45,7 +45,7 @@
 	int ret;
 
 	if (fence > fctx->last_fence) {
-		DRM_ERROR("%s: waiting on invalid fence: %u (of %u)\n",
+		DRM_ERROR_RATELIMITED("%s: waiting on invalid fence: %u (of %u)\n",
 				fctx->name, fence, fctx->last_fence);
 		return -EINVAL;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_gem.c
@@ -977,10 +977,8 @@
 
 static int msm_gem_new_impl(struct drm_device *dev,
 		uint32_t size, uint32_t flags,
-		struct drm_gem_object **obj,
-		bool struct_mutex_locked)
+		struct drm_gem_object **obj)
 {
-	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_gem_object *msm_obj;
 
 	switch (flags & MSM_BO_CACHE_MASK) {
@@ -1006,15 +1004,6 @@
 	INIT_LIST_HEAD(&msm_obj->submit_entry);
 	INIT_LIST_HEAD(&msm_obj->vmas);
 
-	if (struct_mutex_locked) {
-		WARN_ON(!mutex_is_locked(&dev->struct_mutex));
-		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
-	} else {
-		mutex_lock(&dev->struct_mutex);
-		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
-		mutex_unlock(&dev->struct_mutex);
-	}
-
 	*obj = &msm_obj->base;
 
 	return 0;
@@ -1024,6 +1013,7 @@
 		uint32_t size, uint32_t flags, bool struct_mutex_locked)
 {
 	struct msm_drm_private *priv = dev->dev_private;
+	struct msm_gem_object *msm_obj;
 	struct drm_gem_object *obj = NULL;
 	bool use_vram = false;
 	int ret;
@@ -1044,14 +1034,15 @@
 	if (size == 0)
 		return ERR_PTR(-EINVAL);
 
-	ret = msm_gem_new_impl(dev, size, flags, &obj, struct_mutex_locked);
+	ret = msm_gem_new_impl(dev, size, flags, &obj);
 	if (ret)
-		goto fail;
+		return ERR_PTR(ret);
+
+	msm_obj = to_msm_bo(obj);
 
 	if (use_vram) {
 		struct msm_gem_vma *vma;
 		struct page **pages;
-		struct msm_gem_object *msm_obj = to_msm_bo(obj);
 
 		mutex_lock(&msm_obj->lock);
 
@@ -1086,6 +1077,15 @@
 		mapping_set_gfp_mask(obj->filp->f_mapping, GFP_HIGHUSER);
 	}
 
+	if (struct_mutex_locked) {
+		WARN_ON(!mutex_is_locked(&dev->struct_mutex));
+		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
+	} else {
+		mutex_lock(&dev->struct_mutex);
+		list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
+		mutex_unlock(&dev->struct_mutex);
+	}
+
 	return obj;
 
 fail:
@@ -1108,6 +1108,7 @@
 struct drm_gem_object *msm_gem_import(struct drm_device *dev,
 		struct dma_buf *dmabuf, struct sg_table *sgt)
 {
+	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_gem_object *msm_obj;
 	struct drm_gem_object *obj;
 	uint32_t size;
@@ -1121,9 +1122,9 @@
 
 	size = PAGE_ALIGN(dmabuf->size);
 
-	ret = msm_gem_new_impl(dev, size, MSM_BO_WC, &obj, false);
+	ret = msm_gem_new_impl(dev, size, MSM_BO_WC, &obj);
 	if (ret)
-		goto fail;
+		return ERR_PTR(ret);
 
 	drm_gem_private_object_init(dev, obj, size);
 
@@ -1146,6 +1147,11 @@
 	}
 
 	mutex_unlock(&msm_obj->lock);
+
+	mutex_lock(&dev->struct_mutex);
+	list_add_tail(&msm_obj->mm_list, &priv->inactive_list);
+	mutex_unlock(&dev->struct_mutex);
+
 	return obj;
 
 fail:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_gem_prime.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_gem_prime.c
@@ -17,7 +17,7 @@
 	int npages = obj->size >> PAGE_SHIFT;
 
 	if (WARN_ON(!msm_obj->pages))  /* should have already pinned! */
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	return drm_prime_pages_to_sg(msm_obj->pages, npages);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_gpu.c
@@ -16,6 +16,7 @@
 #include <linux/pm_opp.h>
 #include <linux/devfreq.h>
 #include <linux/devcoredump.h>
+#include <linux/sched/task.h>
 
 /*
  * Power Management:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_rd.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_rd.c
@@ -191,6 +191,9 @@
 	file->private_data = rd;
 	rd->open = true;
 
+	/* Reset fifo to clear any previously unread data: */
+	rd->fifo.head = rd->fifo.tail = 0;
+
 	/* the parsing tools need to know gpu-id to know which
 	 * register database to load.
 	 */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_ringbuffer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_ringbuffer.c
@@ -27,7 +27,8 @@
 	ring->id = id;
 
 	ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ,
-		MSM_BO_WC, gpu->aspace, &ring->bo, &ring->iova);
+		MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->aspace, &ring->bo,
+		&ring->iova);
 
 	if (IS_ERR(ring->start)) {
 		ret = PTR_ERR(ring->start);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/msm/msm_submitqueue.c
+++ linux-ein-5.4.0/drivers/gpu/drm/msm/msm_submitqueue.c
@@ -71,8 +71,10 @@
 	queue->flags = flags;
 
 	if (priv->gpu) {
-		if (prio >= priv->gpu->nr_rings)
+		if (prio >= priv->gpu->nr_rings) {
+			kfree(queue);
 			return -EINVAL;
+		}
 
 		queue->prio = prio;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mxsfb/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/mxsfb/Kconfig
@@ -8,9 +8,9 @@
 	tristate "i.MX23/i.MX28/i.MX6SX MXSFB LCD controller"
 	depends on DRM && OF
 	depends on COMMON_CLK
+	depends on ARCH_MXS || ARCH_MXC || COMPILE_TEST
 	select DRM_MXS
 	select DRM_KMS_HELPER
-	select DRM_KMS_FB_HELPER
 	select DRM_KMS_CMA_HELPER
 	select DRM_PANEL
 	help
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mxsfb/mxsfb_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mxsfb/mxsfb_crtc.c
@@ -43,14 +43,17 @@
 }
 
 /* Setup the MXSFB registers for decoding the pixels out of the framebuffer */
-static int mxsfb_set_pixel_fmt(struct mxsfb_drm_private *mxsfb)
+static int mxsfb_set_pixel_fmt(struct mxsfb_drm_private *mxsfb, bool update)
 {
 	struct drm_crtc *crtc = &mxsfb->pipe.crtc;
 	struct drm_device *drm = crtc->dev;
 	const u32 format = crtc->primary->state->fb->format->format;
-	u32 ctrl, ctrl1;
+	u32 ctrl = 0, ctrl1 = 0;
+	bool bgr_format = true;
+	struct drm_format_name_buf format_name_buf;
 
-	ctrl = CTRL_BYPASS_COUNT | CTRL_MASTER;
+	if (!update)
+		ctrl = CTRL_BYPASS_COUNT | CTRL_MASTER;
 
 	/*
 	 * WARNING: The bus width, CTRL_SET_BUS_WIDTH(), is configured to
@@ -59,61 +62,158 @@
 	 * to arbitrary value. This limitation should not pose an issue.
 	 */
 
-	/* CTRL1 contains IRQ config and status bits, preserve those. */
-	ctrl1 = readl(mxsfb->base + LCDC_CTRL1);
-	ctrl1 &= CTRL1_CUR_FRAME_DONE_IRQ_EN | CTRL1_CUR_FRAME_DONE_IRQ;
+	if (!update) {
+		/* CTRL1 contains IRQ config and status bits, preserve those. */
+		ctrl1 = readl(mxsfb->base + LCDC_CTRL1);
+		ctrl1 &= CTRL1_CUR_FRAME_DONE_IRQ_EN | CTRL1_CUR_FRAME_DONE_IRQ;
+	}
+
+	DRM_DEV_DEBUG_DRIVER(drm->dev, "Setting up %s mode\n",
+			     drm_get_format_name(format, &format_name_buf));
+
+	/* Do some clean-up that we might have from a previous mode */
+	ctrl &= ~CTRL_SHIFT_DIR(1);
+	ctrl &= ~CTRL_SHIFT_NUM(0x3f);
+	if (mxsfb->devdata->ipversion >= 4)
+		writel(CTRL2_ODD_LINE_PATTERN(CTRL2_LINE_PATTERN_CLR) |
+		       CTRL2_EVEN_LINE_PATTERN(CTRL2_LINE_PATTERN_CLR),
+		       mxsfb->base + LCDC_V4_CTRL2 + REG_CLR);
 
 	switch (format) {
-	case DRM_FORMAT_RGB565:
-		dev_dbg(drm->dev, "Setting up RGB565 mode\n");
+	case DRM_FORMAT_BGR565: /* BG16 */
+		if (mxsfb->devdata->ipversion < 4)
+			goto err;
+		writel(CTRL2_ODD_LINE_PATTERN(CTRL2_LINE_PATTERN_BGR) |
+			CTRL2_EVEN_LINE_PATTERN(CTRL2_LINE_PATTERN_BGR),
+			mxsfb->base + LCDC_V4_CTRL2 + REG_SET);
+		/* Fall through */
+	case DRM_FORMAT_RGB565: /* RG16 */
 		ctrl |= CTRL_SET_WORD_LENGTH(0);
+		ctrl &= ~CTRL_DF16;
 		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0xf);
 		break;
-	case DRM_FORMAT_XRGB8888:
-		dev_dbg(drm->dev, "Setting up XRGB8888 mode\n");
+	case DRM_FORMAT_XBGR1555: /* XB15 */
+	case DRM_FORMAT_ABGR1555: /* AB15 */
+		if (mxsfb->devdata->ipversion < 4)
+			goto err;
+		writel(CTRL2_ODD_LINE_PATTERN(CTRL2_LINE_PATTERN_BGR) |
+			CTRL2_EVEN_LINE_PATTERN(CTRL2_LINE_PATTERN_BGR),
+			mxsfb->base + LCDC_V4_CTRL2 + REG_SET);
+		/* Fall through */
+	case DRM_FORMAT_XRGB1555: /* XR15 */
+	case DRM_FORMAT_ARGB1555: /* AR15 */
+		ctrl |= CTRL_SET_WORD_LENGTH(0);
+		ctrl |= CTRL_DF16;
+		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0xf);
+		break;
+	case DRM_FORMAT_RGBX8888: /* RX24 */
+	case DRM_FORMAT_RGBA8888: /* RA24 */
+		/* RGBX - > 0RGB */
+		ctrl |= CTRL_SHIFT_DIR(1);
+		ctrl |= CTRL_SHIFT_NUM(8);
+		bgr_format = false;
+		/* Fall through */
+	case DRM_FORMAT_XBGR8888: /* XB24 */
+	case DRM_FORMAT_ABGR8888: /* AB24 */
+		if (bgr_format) {
+			if (mxsfb->devdata->ipversion < 4)
+				goto err;
+			writel(CTRL2_ODD_LINE_PATTERN(CTRL2_LINE_PATTERN_BGR) |
+			       CTRL2_EVEN_LINE_PATTERN(CTRL2_LINE_PATTERN_BGR),
+			       mxsfb->base + LCDC_V4_CTRL2 + REG_SET);
+		}
+		/* Fall through */
+	case DRM_FORMAT_XRGB8888: /* XR24 */
+	case DRM_FORMAT_ARGB8888: /* AR24 */
 		ctrl |= CTRL_SET_WORD_LENGTH(3);
 		/* Do not use packed pixels = one pixel per word instead. */
 		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0x7);
 		break;
 	default:
-		dev_err(drm->dev, "Unhandled pixel format %08x\n", format);
-		return -EINVAL;
+		goto err;
 	}
 
-	writel(ctrl1, mxsfb->base + LCDC_CTRL1);
-	writel(ctrl, mxsfb->base + LCDC_CTRL);
+	if (update) {
+		writel(ctrl, mxsfb->base + LCDC_CTRL + REG_SET);
+		writel(ctrl1, mxsfb->base + LCDC_CTRL1 + REG_SET);
+	} else {
+		writel(ctrl, mxsfb->base + LCDC_CTRL);
+		writel(ctrl1, mxsfb->base + LCDC_CTRL1);
+	}
 
 	return 0;
+
+err:
+	DRM_DEV_ERROR(drm->dev, "Unhandled pixel format: %s\n",
+		      drm_get_format_name(format, &format_name_buf));
+
+	return -EINVAL;
+}
+
+static u32 get_bus_format_from_bpp(u32 bpp)
+{
+	switch (bpp) {
+	case 16:
+		return MEDIA_BUS_FMT_RGB565_1X16;
+	case 18:
+		return MEDIA_BUS_FMT_RGB666_1X18;
+	case 24:
+		return MEDIA_BUS_FMT_RGB888_1X24;
+	default:
+		return MEDIA_BUS_FMT_RGB888_1X24;
+	}
 }
 
 static void mxsfb_set_bus_fmt(struct mxsfb_drm_private *mxsfb)
 {
 	struct drm_crtc *crtc = &mxsfb->pipe.crtc;
+	unsigned int bits_per_pixel = crtc->primary->state->fb->format->depth;
 	struct drm_device *drm = crtc->dev;
 	u32 bus_format = MEDIA_BUS_FMT_RGB888_1X24;
-	u32 reg;
+	int num_bus_formats = mxsfb->connector->display_info.num_bus_formats;
+	const u32 *bus_formats = mxsfb->connector->display_info.bus_formats;
+	u32 reg = 0;
+	int i = 0;
+
+	/* match the user requested bus_format to one supported by the panel */
+	if (num_bus_formats) {
+		u32 user_bus_format = get_bus_format_from_bpp(bits_per_pixel);
+
+		bus_format = bus_formats[0];
+		for (i = 0; i < num_bus_formats; i++) {
+			if (user_bus_format == bus_formats[i]) {
+				bus_format = user_bus_format;
+				break;
+			}
+		}
+	}
 
-	reg = readl(mxsfb->base + LCDC_CTRL);
+	/*
+	 * CRTC will dictate the bus format via private_flags[16:1]
+	 * and private_flags[0] will signal a bus format change
+	 */
+	crtc->mode.private_flags &= ~0x1FFFF; /* clear bus format */
+	crtc->mode.private_flags |= (bus_format << 1); /* set bus format */
+	crtc->mode.private_flags |= 0x1; /* bus format change indication*/
 
-	if (mxsfb->connector.display_info.num_bus_formats)
-		bus_format = mxsfb->connector.display_info.bus_formats[0];
+	DRM_DEV_DEBUG_DRIVER(drm->dev, "Using bus_format: 0x%08X\n",
+			     bus_format);
 
-	reg &= ~CTRL_BUS_WIDTH_MASK;
 	switch (bus_format) {
 	case MEDIA_BUS_FMT_RGB565_1X16:
-		reg |= CTRL_SET_BUS_WIDTH(STMLCDIF_16BIT);
+		reg = CTRL_SET_BUS_WIDTH(STMLCDIF_16BIT);
 		break;
 	case MEDIA_BUS_FMT_RGB666_1X18:
-		reg |= CTRL_SET_BUS_WIDTH(STMLCDIF_18BIT);
+		reg = CTRL_SET_BUS_WIDTH(STMLCDIF_18BIT);
 		break;
 	case MEDIA_BUS_FMT_RGB888_1X24:
-		reg |= CTRL_SET_BUS_WIDTH(STMLCDIF_24BIT);
+		reg = CTRL_SET_BUS_WIDTH(STMLCDIF_24BIT);
 		break;
 	default:
 		dev_err(drm->dev, "Unknown media bus format %d\n", bus_format);
 		break;
 	}
-	writel(reg, mxsfb->base + LCDC_CTRL);
+	writel(reg, mxsfb->base + LCDC_CTRL + REG_SET);
 }
 
 static void mxsfb_enable_controller(struct mxsfb_drm_private *mxsfb)
@@ -124,6 +224,21 @@
 		clk_prepare_enable(mxsfb->clk_disp_axi);
 	clk_prepare_enable(mxsfb->clk);
 
+	if (mxsfb->devdata->ipversion >= 4) {
+		/*
+		 * On some platforms, bit 21 is defaulted to 1, which may alter
+		 * the below setting. So, to make sure we have the right setting
+		 * clear all the bits for CTRL2_OUTSTANDING_REQS.
+		 */
+		writel(CTRL2_OUTSTANDING_REQS(0x7),
+		       mxsfb->base + LCDC_V4_CTRL2 + REG_CLR);
+		writel(CTRL2_OUTSTANDING_REQS(REQ_16),
+		       mxsfb->base + LCDC_V4_CTRL2 + REG_SET);
+	}
+
+	/* De-assert LCD Reset bit */
+	writel(CTRL_LCD_RESET, mxsfb->base + LCDC_CTRL1 + REG_SET);
+
 	/* If it was disabled, re-enable the mode again */
 	writel(CTRL_DOTCLK_MODE, mxsfb->base + LCDC_CTRL + REG_SET);
 
@@ -133,12 +248,22 @@
 	writel(reg, mxsfb->base + LCDC_VDCTRL4);
 
 	writel(CTRL_RUN, mxsfb->base + LCDC_CTRL + REG_SET);
+	writel(CTRL1_RECOVERY_ON_UNDERFLOW, mxsfb->base + LCDC_CTRL1 + REG_SET);
 }
 
 static void mxsfb_disable_controller(struct mxsfb_drm_private *mxsfb)
 {
 	u32 reg;
 
+	writel(CTRL_RUN, mxsfb->base + LCDC_CTRL + REG_CLR);
+
+	if (mxsfb->devdata->ipversion >= 4)
+		writel(CTRL2_OUTSTANDING_REQS(0x7),
+		       mxsfb->base + LCDC_V4_CTRL2 + REG_CLR);
+
+	/* Assert LCD Reset bit */
+	writel(CTRL_LCD_RESET, mxsfb->base + LCDC_CTRL1 + REG_CLR);
+
 	/*
 	 * Even if we disable the controller here, it will still continue
 	 * until its FIFOs are running out of data
@@ -204,8 +329,9 @@
 
 static void mxsfb_crtc_mode_set_nofb(struct mxsfb_drm_private *mxsfb)
 {
+	struct drm_device *drm = mxsfb->pipe.crtc.dev;
 	struct drm_display_mode *m = &mxsfb->pipe.crtc.state->adjusted_mode;
-	const u32 bus_flags = mxsfb->connector.display_info.bus_flags;
+	u32 bus_flags = mxsfb->connector->display_info.bus_flags;
 	u32 vdctrl0, vsync_pulse_len, hsync_pulse_len;
 	int err;
 
@@ -223,12 +349,22 @@
 	/* Clear the FIFOs */
 	writel(CTRL1_FIFO_CLEAR, mxsfb->base + LCDC_CTRL1 + REG_SET);
 
-	err = mxsfb_set_pixel_fmt(mxsfb);
+	err = mxsfb_set_pixel_fmt(mxsfb, false);
 	if (err)
 		return;
 
 	clk_set_rate(mxsfb->clk, m->crtc_clock * 1000);
 
+	if (mxsfb->bridge && mxsfb->bridge->timings)
+		bus_flags = mxsfb->bridge->timings->input_bus_flags;
+
+	DRM_DEV_DEBUG_DRIVER(drm->dev, "Pixel clock: %dkHz (actual: %dkHz)\n",
+			     m->crtc_clock,
+			     (int)(clk_get_rate(mxsfb->clk) / 1000));
+	DRM_DEV_DEBUG_DRIVER(drm->dev, "Connector bus_flags: 0x%08X\n",
+			     bus_flags);
+	DRM_DEV_DEBUG_DRIVER(drm->dev, "Mode flags: 0x%08X\n", m->flags);
+
 	writel(TRANSFER_COUNT_SET_VCOUNT(m->crtc_vdisplay) |
 	       TRANSFER_COUNT_SET_HCOUNT(m->crtc_hdisplay),
 	       mxsfb->base + mxsfb->devdata->transfer_count);
@@ -281,6 +417,7 @@
 	dma_addr_t paddr;
 
 	mxsfb_enable_axi_clk(mxsfb);
+	writel(0, mxsfb->base + LCDC_CTRL);
 	mxsfb_crtc_mode_set_nofb(mxsfb);
 
 	/* Write cur_buf as well to avoid an initial corrupt frame */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -26,6 +26,7 @@
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_fb_helper.h>
+#include <drm/drm_fourcc.h>
 #include <drm/drm_gem_cma_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_irq.h>
@@ -43,6 +44,27 @@
 	MXSFB_V4,
 };
 
+/*
+ * When adding new formats, make sure to update the num_formats from
+ * mxsfb_devdata below.
+ */
+static const u32 mxsfb_formats[] = {
+	/* MXSFB_V3 */
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_ARGB8888,
+	DRM_FORMAT_RGB565,
+	/* MXSFB_V4 */
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_ABGR8888,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_RGBA8888,
+	DRM_FORMAT_ARGB1555,
+	DRM_FORMAT_XRGB1555,
+	DRM_FORMAT_ABGR1555,
+	DRM_FORMAT_XBGR1555,
+	DRM_FORMAT_BGR565
+};
+
 static const struct mxsfb_devdata mxsfb_devdata[] = {
 	[MXSFB_V3] = {
 		.transfer_count	= LCDC_V3_TRANSFER_COUNT,
@@ -52,6 +74,7 @@
 		.hs_wdth_mask	= 0xff,
 		.hs_wdth_shift	= 24,
 		.ipversion	= 3,
+		.num_formats	= 3,
 	},
 	[MXSFB_V4] = {
 		.transfer_count	= LCDC_V4_TRANSFER_COUNT,
@@ -61,14 +84,10 @@
 		.hs_wdth_mask	= 0x3fff,
 		.hs_wdth_shift	= 18,
 		.ipversion	= 4,
+		.num_formats	= ARRAY_SIZE(mxsfb_formats),
 	},
 };
 
-static const uint32_t mxsfb_formats[] = {
-	DRM_FORMAT_XRGB8888,
-	DRM_FORMAT_RGB565
-};
-
 static struct mxsfb_drm_private *
 drm_pipe_to_mxsfb_drm_private(struct drm_simple_display_pipe *pipe)
 {
@@ -87,8 +106,26 @@
 		clk_disable_unprepare(mxsfb->clk_axi);
 }
 
+static struct drm_framebuffer *
+mxsfb_fb_create(struct drm_device *dev, struct drm_file *file_priv,
+		const struct drm_mode_fb_cmd2 *mode_cmd)
+{
+	const struct drm_format_info *info;
+
+	info = drm_get_format_info(dev, mode_cmd);
+	if (!info)
+		return ERR_PTR(-EINVAL);
+
+	if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
+		dev_dbg(dev->dev, "Invalid pitch: fb width must match pitch\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	return drm_gem_fb_create(dev, file_priv, mode_cmd);
+}
+
 static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
-	.fb_create		= drm_gem_fb_create,
+	.fb_create		= mxsfb_fb_create,
 	.atomic_check		= drm_atomic_helper_check,
 	.atomic_commit		= drm_atomic_helper_commit,
 };
@@ -101,9 +138,25 @@
 			      struct drm_crtc_state *crtc_state,
 			      struct drm_plane_state *plane_state)
 {
+	struct drm_connector *connector;
 	struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe);
 	struct drm_device *drm = pipe->plane.dev;
 
+	if (!mxsfb->connector) {
+		list_for_each_entry(connector,
+				    &drm->mode_config.connector_list,
+				    head)
+			if (connector->encoder == &mxsfb->pipe.encoder) {
+				mxsfb->connector = connector;
+				break;
+			}
+	}
+
+	if (!mxsfb->connector) {
+		dev_warn(drm->dev, "No connector attached, using default\n");
+		mxsfb->connector = &mxsfb->panel_connector;
+	}
+
 	pm_runtime_get_sync(drm->dev);
 	drm_panel_prepare(mxsfb->panel);
 	mxsfb_crtc_enable(mxsfb);
@@ -129,6 +182,9 @@
 		drm_crtc_send_vblank_event(crtc, event);
 	}
 	spin_unlock_irq(&drm->event_lock);
+
+	if (mxsfb->connector != &mxsfb->panel_connector)
+		mxsfb->connector = NULL;
 }
 
 static void mxsfb_pipe_update(struct drm_simple_display_pipe *pipe,
@@ -225,17 +281,34 @@
 	}
 
 	ret = drm_simple_display_pipe_init(drm, &mxsfb->pipe, &mxsfb_funcs,
-			mxsfb_formats, ARRAY_SIZE(mxsfb_formats), NULL,
-			&mxsfb->connector);
+			mxsfb_formats, mxsfb->devdata->num_formats, NULL,
+			mxsfb->connector);
 	if (ret < 0) {
 		dev_err(drm->dev, "Cannot setup simple display pipe\n");
 		goto err_vblank;
 	}
 
-	ret = drm_panel_attach(mxsfb->panel, &mxsfb->connector);
-	if (ret) {
-		dev_err(drm->dev, "Cannot connect panel\n");
-		goto err_vblank;
+	/*
+	 * Attach panel only if there is one.
+	 * If there is no panel attach, it must be a bridge. In this case, we
+	 * need a reference to its connector for a proper initialization.
+	 * We will do this check in pipe->enable(), since the connector won't
+	 * be attached to an encoder until then.
+	 */
+
+	if (mxsfb->panel) {
+		ret = drm_panel_attach(mxsfb->panel, mxsfb->connector);
+		if (ret) {
+			dev_err(drm->dev, "Cannot connect panel: %d\n", ret);
+			goto err_vblank;
+		}
+	} else if (mxsfb->bridge) {
+		ret = drm_simple_display_pipe_attach_bridge(&mxsfb->pipe,
+							    mxsfb->bridge);
+		if (ret) {
+			dev_err(drm->dev, "Cannot connect bridge: %d\n", ret);
+			goto err_vblank;
+		}
 	}
 
 	drm->mode_config.min_width	= MXSFB_MIN_XRES;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mxsfb/mxsfb_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/mxsfb/mxsfb_drv.h
@@ -16,6 +16,7 @@
 	unsigned int	 hs_wdth_mask;
 	unsigned int	 hs_wdth_shift;
 	unsigned int	 ipversion;
+	unsigned int	 num_formats;
 };
 
 struct mxsfb_drm_private {
@@ -27,8 +28,10 @@
 	struct clk			*clk_disp_axi;
 
 	struct drm_simple_display_pipe	pipe;
-	struct drm_connector		connector;
+	struct drm_connector		panel_connector;
+	struct drm_connector		*connector;
 	struct drm_panel		*panel;
+	struct drm_bridge		*bridge;
 };
 
 int mxsfb_setup_crtc(struct drm_device *dev);
@@ -40,6 +43,6 @@
 void mxsfb_crtc_enable(struct mxsfb_drm_private *mxsfb);
 void mxsfb_crtc_disable(struct mxsfb_drm_private *mxsfb);
 void mxsfb_plane_atomic_update(struct mxsfb_drm_private *mxsfb,
-			       struct drm_plane_state *state);
+			       struct drm_plane_state *old_state);
 
 #endif /* __MXSFB_DRV_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ linux-ein-5.4.0/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -21,7 +21,8 @@
 static struct mxsfb_drm_private *
 drm_connector_to_mxsfb_drm_private(struct drm_connector *connector)
 {
-	return container_of(connector, struct mxsfb_drm_private, connector);
+	return container_of(connector, struct mxsfb_drm_private,
+			    panel_connector);
 }
 
 static int mxsfb_panel_get_modes(struct drm_connector *connector)
@@ -76,22 +77,23 @@
 int mxsfb_create_output(struct drm_device *drm)
 {
 	struct mxsfb_drm_private *mxsfb = drm->dev_private;
-	struct drm_panel *panel;
 	int ret;
 
-	ret = drm_of_find_panel_or_bridge(drm->dev->of_node, 0, 0, &panel, NULL);
+	ret = drm_of_find_panel_or_bridge(drm->dev->of_node, 0, 0,
+					  &mxsfb->panel, &mxsfb->bridge);
 	if (ret)
 		return ret;
 
-	mxsfb->connector.dpms = DRM_MODE_DPMS_OFF;
-	mxsfb->connector.polled = 0;
-	drm_connector_helper_add(&mxsfb->connector,
-			&mxsfb_panel_connector_helper_funcs);
-	ret = drm_connector_init(drm, &mxsfb->connector,
-				 &mxsfb_panel_connector_funcs,
-				 DRM_MODE_CONNECTOR_Unknown);
-	if (!ret)
-		mxsfb->panel = panel;
+	if (mxsfb->panel) {
+		mxsfb->connector = &mxsfb->panel_connector;
+		mxsfb->connector->dpms = DRM_MODE_DPMS_OFF;
+		mxsfb->connector->polled = 0;
+		drm_connector_helper_add(mxsfb->connector,
+					 &mxsfb_panel_connector_helper_funcs);
+		ret = drm_connector_init(drm, mxsfb->connector,
+					 &mxsfb_panel_connector_funcs,
+					 DRM_MODE_CONNECTOR_Unknown);
+	}
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/mxsfb/mxsfb_regs.h
+++ linux-ein-5.4.0/drivers/gpu/drm/mxsfb/mxsfb_regs.h
@@ -14,77 +14,136 @@
 
 #define LCDC_CTRL			0x00
 #define LCDC_CTRL1			0x10
+#define LCDC_V4_CTRL2			0x20
 #define LCDC_V3_TRANSFER_COUNT		0x20
 #define LCDC_V4_TRANSFER_COUNT		0x30
 #define LCDC_V4_CUR_BUF			0x40
 #define LCDC_V4_NEXT_BUF		0x50
 #define LCDC_V3_CUR_BUF			0x30
 #define LCDC_V3_NEXT_BUF		0x40
+#define LCDC_TIMING			0x60
 #define LCDC_VDCTRL0			0x70
 #define LCDC_VDCTRL1			0x80
 #define LCDC_VDCTRL2			0x90
 #define LCDC_VDCTRL3			0xa0
 #define LCDC_VDCTRL4			0xb0
+#define LCDC_DVICTRL0			0xc0
+#define LCDC_DVICTRL1			0xd0
+#define LCDC_DVICTRL2			0xe0
+#define LCDC_DVICTRL3			0xf0
+#define LCDC_DVICTRL4			0x100
+#define LCDC_V4_DATA			0x180
+#define LCDC_V3_DATA			0x1b0
 #define LCDC_V4_DEBUG0			0x1d0
 #define LCDC_V3_DEBUG0			0x1f0
+#define LCDC_AS_CTRL			0x210
+#define LCDC_AS_BUF			0x220
+#define LCDC_AS_NEXT_BUF		0x230
+
+/* reg bit manipulation */
+#define REG_PUT(x, h, l) (((x) << (l)) & GENMASK(h, l))
+#define REG_GET(x, h, l) (((x) & GENMASK(h, l)) >> (l))
+
+#define SWIZZLE_LE		0 /* Little-Endian or No swap */
+#define SWIZZLE_BE		1 /* Big-Endian or swap all */
+#define SWIZZLE_HWD		2 /* Swap half-words */
+#define SWIZZLE_HWD_BYTE	3 /* Swap bytes within each half-word */
+
+#define CTRL_SFTRST			BIT(31)
+#define CTRL_CLKGATE			BIT(30)
+#define CTRL_SHIFT_DIR(x)		REG_PUT((x), 26, 26)
+#define CTRL_SHIFT_NUM(x)		REG_PUT((x), 25, 21)
+#define CTRL_BYPASS_COUNT		BIT(19)
+#define CTRL_VSYNC_MODE			BIT(18)
+#define CTRL_DOTCLK_MODE		BIT(17)
+#define CTRL_DATA_SELECT		BIT(16)
+#define CTRL_INPUT_SWIZZLE(x)		REG_PUT((x), 15, 14)
+#define CTRL_CSC_SWIZZLE(x)		REG_PUT((x), 13, 12)
+#define CTRL_SET_BUS_WIDTH(x)		REG_PUT((x), 11, 10)
+#define CTRL_GET_BUS_WIDTH(x)		REG_GET((x), 11, 10)
+#define CTRL_BUS_WIDTH_MASK		REG_PUT((0x3), 11, 10)
+#define CTRL_SET_WORD_LENGTH(x)		REG_PUT((x), 9, 8)
+#define CTRL_GET_WORD_LENGTH(x)		REG_GET((x), 9, 8)
+#define CTRL_MASTER			BIT(5)
+#define CTRL_DF16			BIT(3)
+#define CTRL_DF18			BIT(2)
+#define CTRL_DF24			BIT(1)
+#define CTRL_RUN			BIT(0)
+
+#define CTRL1_RECOVERY_ON_UNDERFLOW	BIT(24)
+#define CTRL1_FIFO_CLEAR		BIT(21)
+
+/*
+ * BYTE_PACKAGING
+ *
+ * This bitfield is used to show which data bytes in a 32-bit word area valid.
+ * Default value 0xf indicates that all bytes are valid. For 8-bit transfers,
+ * any combination in this bitfield will mean valid data is present in the
+ * corresponding bytes. In the 16-bit mode, a 16-bit half-word is valid only if
+ * adjacent bits [1:0] or [3:2] or both are 1. A value of 0x0 will mean that
+ * none of the bytes are valid and should not be used. For example, set the bit
+ * field value to 0x7 if the display data is arranged in the 24-bit unpacked
+ * format (A-R-G-B where A value does not have be transmitted).
+ */
+#define CTRL1_SET_BYTE_PACKAGING(x)	REG_PUT((x), 19, 16)
+#define CTRL1_GET_BYTE_PACKAGING(x)	REG_GET((x), 19, 16)
+
+#define CTRL1_CUR_FRAME_DONE_IRQ_EN	BIT(13)
+#define CTRL1_CUR_FRAME_DONE_IRQ	BIT(9)
+
+#define CTRL2_OUTSTANDING_REQS(x)	REG_PUT((x), 23, 21)
+#define REQ_1	0
+#define REQ_2	1
+#define REQ_4	2
+#define REQ_8	3
+#define REQ_16	4
+
+#define CTRL2_ODD_LINE_PATTERN(x)	REG_PUT((x), 18, 16)
+#define CTRL2_EVEN_LINE_PATTERN(x)	REG_PUT((x), 14, 12)
+#define CTRL2_LINE_PATTERN_RGB	0
+#define CTRL2_LINE_PATTERN_RBG	1
+#define CTRL2_LINE_PATTERN_GBR	2
+#define CTRL2_LINE_PATTERN_GRB	3
+#define CTRL2_LINE_PATTERN_BRG	4
+#define CTRL2_LINE_PATTERN_BGR	5
+#define CTRL2_LINE_PATTERN_CLR	7
+
+#define CTRL_LCD_RESET			BIT(0)
+
+#define TRANSFER_COUNT_SET_VCOUNT(x)	REG_PUT((x), 31, 16)
+#define TRANSFER_COUNT_GET_VCOUNT(x)	REG_GET((x), 31, 16)
+#define TRANSFER_COUNT_SET_HCOUNT(x)	REG_PUT((x), 15, 0)
+#define TRANSFER_COUNT_GET_HCOUNT(x)	REG_GET((x), 15, 0)
+
+#define VDCTRL0_ENABLE_PRESENT		BIT(28)
+#define VDCTRL0_VSYNC_ACT_HIGH		BIT(27)
+#define VDCTRL0_HSYNC_ACT_HIGH		BIT(26)
+#define VDCTRL0_DOTCLK_ACT_FALLING	BIT(25)
+#define VDCTRL0_ENABLE_ACT_HIGH		BIT(24)
+#define VDCTRL0_VSYNC_PERIOD_UNIT	BIT(21)
+#define VDCTRL0_VSYNC_PULSE_WIDTH_UNIT	BIT(20)
+#define VDCTRL0_HALF_LINE		BIT(19)
+#define VDCTRL0_HALF_LINE_MODE		BIT(18)
+#define VDCTRL0_SET_VSYNC_PULSE_WIDTH(x) REG_PUT((x), 17, 0)
+#define VDCTRL0_GET_VSYNC_PULSE_WIDTH(x) REG_GET((x), 17, 0)
+
+#define VDCTRL2_SET_HSYNC_PERIOD(x)	REG_PUT((x), 15, 0)
+#define VDCTRL2_GET_HSYNC_PERIOD(x)	REG_GET((x), 15, 0)
+
+#define VDCTRL3_MUX_SYNC_SIGNALS	BIT(29)
+#define VDCTRL3_VSYNC_ONLY		BIT(28)
+#define SET_HOR_WAIT_CNT(x)		REG_PUT((x), 27, 16)
+#define GET_HOR_WAIT_CNT(x)		REG_GET((x), 27, 16)
+#define SET_VERT_WAIT_CNT(x)		REG_PUT((x), 15, 0)
+#define GET_VERT_WAIT_CNT(x)		REG_GET((x), 15, 0)
+
+#define VDCTRL4_SET_DOTCLK_DLY(x)	REG_PUT((x), 31, 29) /* v4 only */
+#define VDCTRL4_GET_DOTCLK_DLY(x)	REG_GET((x), 31, 29) /* v4 only */
+#define VDCTRL4_SYNC_SIGNALS_ON		BIT(18)
+#define SET_DOTCLK_H_VALID_DATA_CNT(x)	REG_PUT((x), 17, 0)
 
-#define CTRL_SFTRST			(1 << 31)
-#define CTRL_CLKGATE			(1 << 30)
-#define CTRL_BYPASS_COUNT		(1 << 19)
-#define CTRL_VSYNC_MODE			(1 << 18)
-#define CTRL_DOTCLK_MODE		(1 << 17)
-#define CTRL_DATA_SELECT		(1 << 16)
-#define CTRL_SET_BUS_WIDTH(x)		(((x) & 0x3) << 10)
-#define CTRL_GET_BUS_WIDTH(x)		(((x) >> 10) & 0x3)
-#define CTRL_BUS_WIDTH_MASK		(0x3 << 10)
-#define CTRL_SET_WORD_LENGTH(x)		(((x) & 0x3) << 8)
-#define CTRL_GET_WORD_LENGTH(x)		(((x) >> 8) & 0x3)
-#define CTRL_MASTER			(1 << 5)
-#define CTRL_DF16			(1 << 3)
-#define CTRL_DF18			(1 << 2)
-#define CTRL_DF24			(1 << 1)
-#define CTRL_RUN			(1 << 0)
-
-#define CTRL1_FIFO_CLEAR		(1 << 21)
-#define CTRL1_SET_BYTE_PACKAGING(x)	(((x) & 0xf) << 16)
-#define CTRL1_GET_BYTE_PACKAGING(x)	(((x) >> 16) & 0xf)
-#define CTRL1_CUR_FRAME_DONE_IRQ_EN	(1 << 13)
-#define CTRL1_CUR_FRAME_DONE_IRQ	(1 << 9)
-
-#define TRANSFER_COUNT_SET_VCOUNT(x)	(((x) & 0xffff) << 16)
-#define TRANSFER_COUNT_GET_VCOUNT(x)	(((x) >> 16) & 0xffff)
-#define TRANSFER_COUNT_SET_HCOUNT(x)	((x) & 0xffff)
-#define TRANSFER_COUNT_GET_HCOUNT(x)	((x) & 0xffff)
-
-#define VDCTRL0_ENABLE_PRESENT		(1 << 28)
-#define VDCTRL0_VSYNC_ACT_HIGH		(1 << 27)
-#define VDCTRL0_HSYNC_ACT_HIGH		(1 << 26)
-#define VDCTRL0_DOTCLK_ACT_FALLING	(1 << 25)
-#define VDCTRL0_ENABLE_ACT_HIGH		(1 << 24)
-#define VDCTRL0_VSYNC_PERIOD_UNIT	(1 << 21)
-#define VDCTRL0_VSYNC_PULSE_WIDTH_UNIT	(1 << 20)
-#define VDCTRL0_HALF_LINE		(1 << 19)
-#define VDCTRL0_HALF_LINE_MODE		(1 << 18)
-#define VDCTRL0_SET_VSYNC_PULSE_WIDTH(x) ((x) & 0x3ffff)
-#define VDCTRL0_GET_VSYNC_PULSE_WIDTH(x) ((x) & 0x3ffff)
-
-#define VDCTRL2_SET_HSYNC_PERIOD(x)	((x) & 0x3ffff)
-#define VDCTRL2_GET_HSYNC_PERIOD(x)	((x) & 0x3ffff)
-
-#define VDCTRL3_MUX_SYNC_SIGNALS	(1 << 29)
-#define VDCTRL3_VSYNC_ONLY		(1 << 28)
-#define SET_HOR_WAIT_CNT(x)		(((x) & 0xfff) << 16)
-#define GET_HOR_WAIT_CNT(x)		(((x) >> 16) & 0xfff)
-#define SET_VERT_WAIT_CNT(x)		((x) & 0xffff)
-#define GET_VERT_WAIT_CNT(x)		((x) & 0xffff)
-
-#define VDCTRL4_SET_DOTCLK_DLY(x)	(((x) & 0x7) << 29) /* v4 only */
-#define VDCTRL4_GET_DOTCLK_DLY(x)	(((x) >> 29) & 0x7) /* v4 only */
-#define VDCTRL4_SYNC_SIGNALS_ON		(1 << 18)
-#define SET_DOTCLK_H_VALID_DATA_CNT(x)	((x) & 0x3ffff)
-
-#define DEBUG0_HSYNC			(1 < 26)
-#define DEBUG0_VSYNC			(1 < 25)
+#define DEBUG0_HSYNC			BIT(26)
+#define DEBUG0_VSYNC			BIT(25)
 
 #define MXSFB_MIN_XRES			120
 #define MXSFB_MIN_YRES			120
@@ -101,7 +160,7 @@
 #define STMLCDIF_18BIT 2 /* pixel data bus to the display is of 18 bit width */
 #define STMLCDIF_24BIT 3 /* pixel data bus to the display is of 24 bit width */
 
-#define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT	(1 << 6)
-#define MXSFB_SYNC_DOTCLK_FALLING_ACT	(1 << 7) /* negative edge sampling */
+#define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT	BIT(6)
+#define MXSFB_SYNC_DOTCLK_FALLING_ACT	BIT(7) /* negative edge sampling */
 
 #endif /* __MXSFB_REGS_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv04/disp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv04/disp.c
@@ -179,7 +179,7 @@
 	nvif_notify_fini(&disp->flip);
 
 	nouveau_display(dev)->priv = NULL;
-	kfree(disp);
+	vfree(disp);
 
 	nvif_object_unmap(&drm->client.device.object);
 }
@@ -197,7 +197,7 @@
 	struct nv04_display *disp;
 	int i, ret;
 
-	disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+	disp = vzalloc(sizeof(*disp));
 	if (!disp)
 		return -ENOMEM;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/atom.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv50/atom.h
@@ -114,6 +114,7 @@
 		u8 nhsync:1;
 		u8 nvsync:1;
 		u8 depth:4;
+		u8 bpc;
 	} or;
 
 	/* Currently only used for MST */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -132,7 +132,7 @@
 
 int
 nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
-		 const s32 *oclass, u8 head, void *data, u32 size, u64 syncbuf,
+		 const s32 *oclass, u8 head, void *data, u32 size, s64 syncbuf,
 		 struct nv50_dmac *dmac)
 {
 	struct nouveau_cli *cli = (void *)device->object.client;
@@ -167,7 +167,7 @@
 	if (ret)
 		return ret;
 
-	if (!syncbuf)
+	if (syncbuf < 0)
 		return 0;
 
 	ret = nvif_object_init(&dmac->base.user, 0xf0000000, NV_DMA_IN_MEMORY,
@@ -326,9 +326,9 @@
 			 * same size as the native one (e.g. different
 			 * refresh rate)
 			 */
-			if (adjusted_mode->hdisplay == native_mode->hdisplay &&
-			    adjusted_mode->vdisplay == native_mode->vdisplay &&
-			    adjusted_mode->type & DRM_MODE_TYPE_DRIVER)
+			if (mode->hdisplay == native_mode->hdisplay &&
+			    mode->vdisplay == native_mode->vdisplay &&
+			    mode->type & DRM_MODE_TYPE_DRIVER)
 				break;
 			mode = native_mode;
 			asyc->scaler.full = true;
@@ -353,10 +353,20 @@
 		       struct drm_crtc_state *crtc_state,
 		       struct drm_connector_state *conn_state)
 {
-	struct nouveau_connector *nv_connector =
-		nouveau_connector(conn_state->connector);
-	return nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
-					   nv_connector->native_mode);
+	struct drm_connector *connector = conn_state->connector;
+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
+	struct nv50_head_atom *asyh = nv50_head_atom(crtc_state);
+	int ret;
+
+	ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
+					  nv_connector->native_mode);
+	if (ret)
+		return ret;
+
+	if (crtc_state->mode_changed || crtc_state->connectors_changed)
+		asyh->or.bpc = connector->display_info.bpc;
+
+	return 0;
 }
 
 /******************************************************************************
@@ -770,32 +780,54 @@
 	struct nv50_mstm *mstm = mstc->mstm;
 	struct nv50_head_atom *asyh = nv50_head_atom(crtc_state);
 	int slots;
+	int ret;
+
+	ret = nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
+					  mstc->native);
+	if (ret)
+		return ret;
+
+	if (!crtc_state->mode_changed && !crtc_state->connectors_changed)
+		return 0;
+
+	/*
+	 * When restoring duplicated states, we need to make sure that the bw
+	 * remains the same and avoid recalculating it, as the connector's bpc
+	 * may have changed after the state was duplicated
+	 */
+	if (!state->duplicated) {
+		const int clock = crtc_state->adjusted_mode.clock;
 
-	if (crtc_state->mode_changed || crtc_state->connectors_changed) {
 		/*
-		 * When restoring duplicated states, we need to make sure that
-		 * the bw remains the same and avoid recalculating it, as the
-		 * connector's bpc may have changed after the state was
-		 * duplicated
+		 * XXX: Since we don't use HDR in userspace quite yet, limit
+		 * the bpc to 8 to save bandwidth on the topology. In the
+		 * future, we'll want to properly fix this by dynamically
+		 * selecting the highest possible bpc that would fit in the
+		 * topology
 		 */
-		if (!state->duplicated) {
-			const int bpp = connector->display_info.bpc * 3;
-			const int clock = crtc_state->adjusted_mode.clock;
+		asyh->or.bpc = min(connector->display_info.bpc, 8U);
+		asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, asyh->or.bpc * 3);
+	}
 
-			asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, bpp);
-		}
+	slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port,
+					      asyh->dp.pbn);
+	if (slots < 0)
+		return slots;
 
-		slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr,
-						      mstc->port,
-						      asyh->dp.pbn);
-		if (slots < 0)
-			return slots;
+	asyh->dp.tu = slots;
 
-		asyh->dp.tu = slots;
-	}
+	return 0;
+}
 
-	return nv50_outp_atomic_check_view(encoder, crtc_state, conn_state,
-					   mstc->native);
+static u8
+nv50_dp_bpc_to_depth(unsigned int bpc)
+{
+	switch (bpc) {
+	case  6: return 0x2;
+	case  8: return 0x5;
+	case 10: /* fall-through */
+	default: return 0x6;
+	}
 }
 
 static void
@@ -808,7 +840,7 @@
 	struct nv50_mstm *mstm = NULL;
 	struct drm_connector *connector;
 	struct drm_connector_list_iter conn_iter;
-	u8 proto, depth;
+	u8 proto;
 	bool r;
 
 	drm_connector_list_iter_begin(encoder->dev, &conn_iter);
@@ -837,14 +869,8 @@
 	else
 		proto = 0x9;
 
-	switch (mstc->connector.display_info.bpc) {
-	case  6: depth = 0x2; break;
-	case  8: depth = 0x5; break;
-	case 10:
-	default: depth = 0x6; break;
-	}
-
-	mstm->outp->update(mstm->outp, head->base.index, armh, proto, depth);
+	mstm->outp->update(mstm->outp, head->base.index, armh, proto,
+			   nv50_dp_bpc_to_depth(armh->or.bpc));
 
 	msto->head = head;
 	msto->mstc = mstc;
@@ -1006,8 +1032,10 @@
 		return connector_status_disconnected;
 
 	ret = pm_runtime_get_sync(connector->dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(connector->dev->dev);
 		return connector_status_disconnected;
+	}
 
 	conn_status = drm_dp_mst_detect_port(connector, mstc->port->mgr,
 					     mstc->port);
@@ -1498,20 +1526,14 @@
 					lvds.lvds.script |= 0x0200;
 			}
 
-			if (nv_connector->base.display_info.bpc == 8)
+			if (asyh->or.bpc == 8)
 				lvds.lvds.script |= 0x0200;
 		}
 
 		nvif_mthd(&disp->disp->object, 0, &lvds, sizeof(lvds));
 		break;
 	case DCB_OUTPUT_DP:
-		if (nv_connector->base.display_info.bpc == 6)
-			depth = 0x2;
-		else
-		if (nv_connector->base.display_info.bpc == 8)
-			depth = 0x5;
-		else
-			depth = 0x6;
+		depth = nv50_dp_bpc_to_depth(asyh->or.bpc);
 
 		if (nv_encoder->link & 1)
 			proto = 0x8;
@@ -1662,7 +1684,7 @@
 	nv50_outp_acquire(nv_encoder);
 
 	nv_connector = nouveau_encoder_connector_get(nv_encoder);
-	switch (nv_connector->base.display_info.bpc) {
+	switch (asyh->or.bpc) {
 	case 10: asyh->or.depth = 0x6; break;
 	case  8: asyh->or.depth = 0x5; break;
 	case  6: asyh->or.depth = 0x2; break;
@@ -2012,8 +2034,10 @@
 	int ret, i;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_atomic_helper_setup_commit(state, nonblock);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/disp.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv50/disp.h
@@ -70,7 +70,7 @@
 
 int nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
 		     const s32 *oclass, u8 head, void *data, u32 size,
-		     u64 syncbuf, struct nv50_dmac *dmac);
+		     s64 syncbuf, struct nv50_dmac *dmac);
 void nv50_dmac_destroy(struct nv50_dmac *);
 
 u32 *evo_wait(struct nv50_dmac *, int nr);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/head.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv50/head.c
@@ -81,21 +81,22 @@
 			      struct nv50_head_atom *asyh,
 			      struct nouveau_conn_atom *asyc)
 {
-	struct drm_connector *connector = asyc->state.connector;
 	u32 mode = 0x00;
 
-	if (asyc->dither.mode == DITHERING_MODE_AUTO) {
-		if (asyh->base.depth > connector->display_info.bpc * 3)
-			mode = DITHERING_MODE_DYNAMIC2X2;
-	} else {
-		mode = asyc->dither.mode;
-	}
+	if (asyc->dither.mode) {
+		if (asyc->dither.mode == DITHERING_MODE_AUTO) {
+			if (asyh->base.depth > asyh->or.bpc * 3)
+				mode = DITHERING_MODE_DYNAMIC2X2;
+		} else {
+			mode = asyc->dither.mode;
+		}
 
-	if (asyc->dither.depth == DITHERING_DEPTH_AUTO) {
-		if (connector->display_info.bpc >= 8)
-			mode |= DITHERING_DEPTH_8BPC;
-	} else {
-		mode |= asyc->dither.depth;
+		if (asyc->dither.depth == DITHERING_DEPTH_AUTO) {
+			if (asyh->or.bpc >= 8)
+				mode |= DITHERING_DEPTH_8BPC;
+		} else {
+			mode |= asyc->dither.depth;
+		}
 	}
 
 	asyh->dither.enable = mode;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c
@@ -68,7 +68,7 @@
 	int ret;
 
 	ret = nv50_dmac_create(&drm->client.device, &disp->disp->object,
-			       &oclass, 0, &args, sizeof(args), 0,
+			       &oclass, 0, &args, sizeof(args), -1,
 			       &wndw->wimm);
 	if (ret) {
 		NV_ERROR(drm, "wimm%04x allocation failed: %d\n", oclass, ret);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/dispnv50/wndw.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/dispnv50/wndw.c
@@ -451,6 +451,8 @@
 		asyw->clr.ntfy = armw->ntfy.handle != 0;
 		asyw->clr.sema = armw->sema.handle != 0;
 		asyw->clr.xlut = armw->xlut.handle != 0;
+		if (asyw->clr.xlut && asyw->visible)
+			asyw->set.xlut = asyw->xlut.handle != 0;
 		asyw->clr.csc  = armw->csc.valid;
 		if (wndw->func->image_clr)
 			asyw->clr.image = armw->image.handle[0] != 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
@@ -14,6 +14,7 @@
 	DCB_CONNECTOR_LVDS_SPWG = 0x41,
 	DCB_CONNECTOR_DP = 0x46,
 	DCB_CONNECTOR_eDP = 0x47,
+	DCB_CONNECTOR_mDP = 0x48,
 	DCB_CONNECTOR_HDMI_0 = 0x60,
 	DCB_CONNECTOR_HDMI_1 = 0x61,
 	DCB_CONNECTOR_HDMI_C = 0x63,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_backlight.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_backlight.c
@@ -51,8 +51,9 @@
 nouveau_get_backlight_name(char backlight_name[BL_NAME_SIZE],
 			   struct nouveau_backlight *bl)
 {
-	const int nb = ida_simple_get(&bl_ida, 0, 0, GFP_KERNEL);
-	if (nb < 0 || nb >= 100)
+	const int nb = ida_alloc_max(&bl_ida, 99, GFP_KERNEL);
+
+	if (nb < 0)
 		return false;
 	if (nb > 0)
 		snprintf(backlight_name, BL_NAME_SIZE, "nv_backlight%d", nb);
@@ -280,7 +281,7 @@
 					    nv_encoder, ops, &props);
 	if (IS_ERR(bl->dev)) {
 		if (bl->id >= 0)
-			ida_simple_remove(&bl_ida, bl->id);
+			ida_free(&bl_ida, bl->id);
 		ret = PTR_ERR(bl->dev);
 		goto fail_alloc;
 	}
@@ -306,7 +307,7 @@
 		return;
 
 	if (bl->id >= 0)
-		ida_simple_remove(&bl_ida, bl->id);
+		ida_free(&bl_ida, bl->id);
 
 	backlight_device_unregister(bl->dev);
 	nv_conn->backlight = NULL;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -276,8 +276,10 @@
 			break;
 	}
 
-	if (WARN_ON(pi < 0))
+	if (WARN_ON(pi < 0)) {
+		kfree(nvbo);
 		return ERR_PTR(-EINVAL);
+	}
 
 	/* Disable compression if suitable settings couldn't be found. */
 	if (nvbo->comp && !vmm->page[pi].comp) {
@@ -542,7 +544,7 @@
 	struct ttm_dma_tt *ttm_dma = (struct ttm_dma_tt *)nvbo->bo.ttm;
 	int i;
 
-	if (!ttm_dma)
+	if (!ttm_dma || !ttm_dma->dma_address)
 		return;
 
 	/* Don't waste time looping if the object is coherent */
@@ -562,7 +564,7 @@
 	struct ttm_dma_tt *ttm_dma = (struct ttm_dma_tt *)nvbo->bo.ttm;
 	int i;
 
-	if (!ttm_dma)
+	if (!ttm_dma || !ttm_dma->dma_address)
 		return;
 
 	/* Don't waste time looping if the object is coherent */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -497,6 +497,7 @@
 	if (ret) {
 		NV_PRINTK(err, cli, "channel failed to initialise, %d\n", ret);
 		nouveau_channel_del(pchan);
+		goto done;
 	}
 
 	ret = nouveau_svmm_join((*pchan)->vmm->svmm, (*pchan)->inst);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -245,14 +245,22 @@
 void
 nouveau_conn_reset(struct drm_connector *connector)
 {
+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_conn_atom *asyc;
 
-	if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
-		return;
+	if (drm_drv_uses_atomic_modeset(connector->dev)) {
+		if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
+			return;
+
+		if (connector->state)
+			nouveau_conn_atomic_destroy_state(connector,
+							  connector->state);
+
+		__drm_atomic_helper_connector_reset(connector, &asyc->state);
+	} else {
+		asyc = &nv_connector->properties_state;
+	}
 
-	if (connector->state)
-		nouveau_conn_atomic_destroy_state(connector, connector->state);
-	__drm_atomic_helper_connector_reset(connector, &asyc->state);
 	asyc->dither.mode = DITHERING_MODE_AUTO;
 	asyc->dither.depth = DITHERING_DEPTH_AUTO;
 	asyc->scaler.mode = DRM_MODE_SCALE_NONE;
@@ -276,8 +284,14 @@
 nouveau_conn_attach_properties(struct drm_connector *connector)
 {
 	struct drm_device *dev = connector->dev;
-	struct nouveau_conn_atom *armc = nouveau_conn_atom(connector->state);
 	struct nouveau_display *disp = nouveau_display(dev);
+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
+	struct nouveau_conn_atom *armc;
+
+	if (drm_drv_uses_atomic_modeset(connector->dev))
+		armc = nouveau_conn_atom(connector->state);
+	else
+		armc = &nv_connector->properties_state;
 
 	/* Init DVI-I specific properties. */
 	if (connector->connector_type == DRM_MODE_CONNECTOR_DVII)
@@ -524,6 +538,19 @@
 	}
 }
 
+static void
+nouveau_connector_set_edid(struct nouveau_connector *nv_connector,
+			   struct edid *edid)
+{
+	if (nv_connector->edid != edid) {
+		struct edid *old_edid = nv_connector->edid;
+
+		drm_connector_update_edid_property(&nv_connector->base, edid);
+		kfree(old_edid);
+		nv_connector->edid = edid;
+	}
+}
+
 static enum drm_connector_status
 nouveau_connector_detect(struct drm_connector *connector, bool force)
 {
@@ -537,13 +564,6 @@
 	int ret;
 	enum drm_connector_status conn_status = connector_status_disconnected;
 
-	/* Cleanup the previous EDID block. */
-	if (nv_connector->edid) {
-		drm_connector_update_edid_property(connector, NULL);
-		kfree(nv_connector->edid);
-		nv_connector->edid = NULL;
-	}
-
 	/* Outputs are only polled while runtime active, so resuming the
 	 * device here is unnecessary (and would deadlock upon runtime suspend
 	 * because it waits for polling to finish). We do however, want to
@@ -554,22 +574,25 @@
 		pm_runtime_get_noresume(dev->dev);
 	} else {
 		ret = pm_runtime_get_sync(dev->dev);
-		if (ret < 0 && ret != -EACCES)
+		if (ret < 0 && ret != -EACCES) {
+			pm_runtime_put_autosuspend(dev->dev);
+			nouveau_connector_set_edid(nv_connector, NULL);
 			return conn_status;
+		}
 	}
 
 	nv_encoder = nouveau_connector_ddc_detect(connector);
 	if (nv_encoder && (i2c = nv_encoder->i2c) != NULL) {
+		struct edid *new_edid;
+
 		if ((vga_switcheroo_handler_flags() &
 		     VGA_SWITCHEROO_CAN_SWITCH_DDC) &&
 		    nv_connector->type == DCB_CONNECTOR_LVDS)
-			nv_connector->edid = drm_get_edid_switcheroo(connector,
-								     i2c);
+			new_edid = drm_get_edid_switcheroo(connector, i2c);
 		else
-			nv_connector->edid = drm_get_edid(connector, i2c);
+			new_edid = drm_get_edid(connector, i2c);
 
-		drm_connector_update_edid_property(connector,
-							nv_connector->edid);
+		nouveau_connector_set_edid(nv_connector, new_edid);
 		if (!nv_connector->edid) {
 			NV_ERROR(drm, "DDC responded, but no EDID for %s\n",
 				 connector->name);
@@ -603,6 +626,8 @@
 		conn_status = connector_status_connected;
 		drm_dp_cec_set_edid(&nv_connector->aux, nv_connector->edid);
 		goto out;
+	} else {
+		nouveau_connector_set_edid(nv_connector, NULL);
 	}
 
 	nv_encoder = nouveau_connector_of_detect(connector);
@@ -645,24 +670,20 @@
 	struct nouveau_drm *drm = nouveau_drm(dev);
 	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_encoder *nv_encoder = NULL;
+	struct edid *edid = NULL;
 	enum drm_connector_status status = connector_status_disconnected;
 
-	/* Cleanup the previous EDID block. */
-	if (nv_connector->edid) {
-		drm_connector_update_edid_property(connector, NULL);
-		kfree(nv_connector->edid);
-		nv_connector->edid = NULL;
-	}
-
 	nv_encoder = find_encoder(connector, DCB_OUTPUT_LVDS);
 	if (!nv_encoder)
-		return connector_status_disconnected;
+		goto out;
 
 	/* Try retrieving EDID via DDC */
 	if (!drm->vbios.fp_no_ddc) {
 		status = nouveau_connector_detect(connector, force);
-		if (status == connector_status_connected)
+		if (status == connector_status_connected) {
+			edid = nv_connector->edid;
 			goto out;
+		}
 	}
 
 	/* On some laptops (Sony, i'm looking at you) there appears to
@@ -675,7 +696,8 @@
 	 * valid - it's not (rh#613284)
 	 */
 	if (nv_encoder->dcb->lvdsconf.use_acpi_for_edid) {
-		if ((nv_connector->edid = nouveau_acpi_edid(dev, connector))) {
+		edid = nouveau_acpi_edid(dev, connector);
+		if (edid) {
 			status = connector_status_connected;
 			goto out;
 		}
@@ -695,12 +717,10 @@
 	 * stored for the panel stored in them.
 	 */
 	if (!drm->vbios.fp_no_ddc) {
-		struct edid *edid =
-			(struct edid *)nouveau_bios_embedded_edid(dev);
+		edid = (struct edid *)nouveau_bios_embedded_edid(dev);
 		if (edid) {
-			nv_connector->edid =
-					kmemdup(edid, EDID_LENGTH, GFP_KERNEL);
-			if (nv_connector->edid)
+			edid = kmemdup(edid, EDID_LENGTH, GFP_KERNEL);
+			if (edid)
 				status = connector_status_connected;
 		}
 	}
@@ -713,8 +733,9 @@
 		status = connector_status_unknown;
 #endif
 
-	drm_connector_update_edid_property(connector, nv_connector->edid);
-	nouveau_connector_set_encoder(connector, nv_encoder);
+	nouveau_connector_set_edid(nv_connector, edid);
+	if (nv_encoder)
+		nouveau_connector_set_encoder(connector, nv_encoder);
 	return status;
 }
 
@@ -749,9 +770,9 @@
 nouveau_connector_set_property(struct drm_connector *connector,
 			       struct drm_property *property, uint64_t value)
 {
-	struct nouveau_conn_atom *asyc = nouveau_conn_atom(connector->state);
 	struct nouveau_connector *nv_connector = nouveau_connector(connector);
 	struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder;
+	struct nouveau_conn_atom *asyc = &nv_connector->properties_state;
 	struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
 	int ret;
 
@@ -955,7 +976,7 @@
 	 * "native" mode as some VBIOS tables require us to use the
 	 * pixel clock as part of the lookup...
 	 */
-	if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
+	if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS && nv_connector->native_mode)
 		nouveau_connector_detect_depth(connector);
 
 	if (nv_encoder->dcb->type == DCB_OUTPUT_TV)
@@ -1131,6 +1152,16 @@
 	const char *name = connector->name;
 	struct nouveau_encoder *nv_encoder;
 	int ret;
+	bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG);
+
+	if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) {
+		NV_DEBUG(drm, "service %s\n", name);
+		drm_dp_cec_irq(&nv_connector->aux);
+		if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP)))
+			nv50_mstm_service(nv_encoder->dp.mstm);
+
+		return NVIF_NOTIFY_KEEP;
+	}
 
 	ret = pm_runtime_get(drm->dev->dev);
 	if (ret == 0) {
@@ -1151,25 +1182,16 @@
 		return NVIF_NOTIFY_DROP;
 	}
 
-	if (rep->mask & NVIF_NOTIFY_CONN_V0_IRQ) {
-		NV_DEBUG(drm, "service %s\n", name);
-		drm_dp_cec_irq(&nv_connector->aux);
-		if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP)))
-			nv50_mstm_service(nv_encoder->dp.mstm);
-	} else {
-		bool plugged = (rep->mask != NVIF_NOTIFY_CONN_V0_UNPLUG);
-
+	if (!plugged)
+		drm_dp_cec_unset_edid(&nv_connector->aux);
+	NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
+	if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) {
 		if (!plugged)
-			drm_dp_cec_unset_edid(&nv_connector->aux);
-		NV_DEBUG(drm, "%splugged %s\n", plugged ? "" : "un", name);
-		if ((nv_encoder = find_encoder(connector, DCB_OUTPUT_DP))) {
-			if (!plugged)
-				nv50_mstm_remove(nv_encoder->dp.mstm);
-		}
-
-		drm_helper_hpd_irq_event(connector->dev);
+			nv50_mstm_remove(nv_encoder->dp.mstm);
 	}
 
+	drm_helper_hpd_irq_event(connector->dev);
+
 	pm_runtime_mark_last_busy(drm->dev->dev);
 	pm_runtime_put_autosuspend(drm->dev->dev);
 	return NVIF_NOTIFY_KEEP;
@@ -1223,6 +1245,7 @@
 	case DCB_CONNECTOR_DMS59_DP0:
 	case DCB_CONNECTOR_DMS59_DP1:
 	case DCB_CONNECTOR_DP       :
+	case DCB_CONNECTOR_mDP      :
 	case DCB_CONNECTOR_USB_C    : return DRM_MODE_CONNECTOR_DisplayPort;
 	case DCB_CONNECTOR_eDP      : return DRM_MODE_CONNECTOR_eDP;
 	case DCB_CONNECTOR_HDMI_0   :
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_connector.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_connector.h
@@ -29,6 +29,7 @@
 
 #include <nvif/notify.h>
 
+#include <drm/drm_crtc.h>
 #include <drm/drm_edid.h>
 #include <drm/drm_encoder.h>
 #include <drm/drm_dp_helper.h>
@@ -44,6 +45,60 @@
 struct nouveau_backlight;
 #endif
 
+#define nouveau_conn_atom(p)                                                   \
+	container_of((p), struct nouveau_conn_atom, state)
+
+struct nouveau_conn_atom {
+	struct drm_connector_state state;
+
+	struct {
+		/* The enum values specifically defined here match nv50/gf119
+		 * hw values, and the code relies on this.
+		 */
+		enum {
+			DITHERING_MODE_OFF = 0x00,
+			DITHERING_MODE_ON = 0x01,
+			DITHERING_MODE_DYNAMIC2X2 = 0x10 | DITHERING_MODE_ON,
+			DITHERING_MODE_STATIC2X2 = 0x18 | DITHERING_MODE_ON,
+			DITHERING_MODE_TEMPORAL = 0x20 | DITHERING_MODE_ON,
+			DITHERING_MODE_AUTO
+		} mode;
+		enum {
+			DITHERING_DEPTH_6BPC = 0x00,
+			DITHERING_DEPTH_8BPC = 0x02,
+			DITHERING_DEPTH_AUTO
+		} depth;
+	} dither;
+
+	struct {
+		int mode;	/* DRM_MODE_SCALE_* */
+		struct {
+			enum {
+				UNDERSCAN_OFF,
+				UNDERSCAN_ON,
+				UNDERSCAN_AUTO,
+			} mode;
+			u32 hborder;
+			u32 vborder;
+		} underscan;
+		bool full;
+	} scaler;
+
+	struct {
+		int color_vibrance;
+		int vibrant_hue;
+	} procamp;
+
+	union {
+		struct {
+			bool dither:1;
+			bool scaler:1;
+			bool procamp:1;
+		};
+		u8 mask;
+	} set;
+};
+
 struct nouveau_connector {
 	struct drm_connector base;
 	enum dcb_connector_type type;
@@ -63,6 +118,12 @@
 #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
 	struct nouveau_backlight *backlight;
 #endif
+	/*
+	 * Our connector property code expects a nouveau_conn_atom struct
+	 * even on pre-nv50 where we do not support atomic. This embedded
+	 * version gets used in the non atomic modeset case.
+	 */
+	struct nouveau_conn_atom properties_state;
 };
 
 static inline struct nouveau_connector *nouveau_connector(
@@ -121,61 +182,6 @@
 extern int nouveau_duallink;
 extern int nouveau_hdmimhz;
 
-#include <drm/drm_crtc.h>
-#define nouveau_conn_atom(p)                                                   \
-	container_of((p), struct nouveau_conn_atom, state)
-
-struct nouveau_conn_atom {
-	struct drm_connector_state state;
-
-	struct {
-		/* The enum values specifically defined here match nv50/gf119
-		 * hw values, and the code relies on this.
-		 */
-		enum {
-			DITHERING_MODE_OFF = 0x00,
-			DITHERING_MODE_ON = 0x01,
-			DITHERING_MODE_DYNAMIC2X2 = 0x10 | DITHERING_MODE_ON,
-			DITHERING_MODE_STATIC2X2 = 0x18 | DITHERING_MODE_ON,
-			DITHERING_MODE_TEMPORAL = 0x20 | DITHERING_MODE_ON,
-			DITHERING_MODE_AUTO
-		} mode;
-		enum {
-			DITHERING_DEPTH_6BPC = 0x00,
-			DITHERING_DEPTH_8BPC = 0x02,
-			DITHERING_DEPTH_AUTO
-		} depth;
-	} dither;
-
-	struct {
-		int mode;	/* DRM_MODE_SCALE_* */
-		struct {
-			enum {
-				UNDERSCAN_OFF,
-				UNDERSCAN_ON,
-				UNDERSCAN_AUTO,
-			} mode;
-			u32 hborder;
-			u32 vborder;
-		} underscan;
-		bool full;
-	} scaler;
-
-	struct {
-		int color_vibrance;
-		int vibrant_hue;
-	} procamp;
-
-	union {
-		struct {
-			bool dither:1;
-			bool scaler:1;
-			bool procamp:1;
-		};
-		u8 mask;
-	} set;
-};
-
 void nouveau_conn_attach_properties(struct drm_connector *);
 void nouveau_conn_reset(struct drm_connector *);
 struct drm_connector_state *
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_debugfs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_debugfs.c
@@ -54,8 +54,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(drm->dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(drm->dev->dev);
 		return ret;
+	}
 
 	seq_printf(m, "0x%08x\n",
 		   nvif_rd32(&drm->client.device.object, 0x101000));
@@ -181,8 +183,11 @@
 	}
 
 	ret = pm_runtime_get_sync(drm->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(drm->dev);
 		return ret;
+	}
+
 	ret = nvif_mthd(ctrl, NVIF_CONTROL_PSTATE_USER, &args, sizeof(args));
 	pm_runtime_put_autosuspend(drm->dev);
 	if (ret < 0)
@@ -202,6 +207,7 @@
 	.open = nouveau_debugfs_pstate_open,
 	.read = seq_read,
 	.write = nouveau_debugfs_pstate_set,
+	.release = single_release,
 };
 
 static struct drm_info_list nouveau_debugfs_list[] = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_dmem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_dmem.c
@@ -635,10 +635,10 @@
 	unsigned long c, i;
 	int ret = -ENOMEM;
 
-	args.src = kcalloc(max, sizeof(args.src), GFP_KERNEL);
+	args.src = kcalloc(max, sizeof(*args.src), GFP_KERNEL);
 	if (!args.src)
 		goto out;
-	args.dst = kcalloc(max, sizeof(args.dst), GFP_KERNEL);
+	args.dst = kcalloc(max, sizeof(*args.dst), GFP_KERNEL);
 	if (!args.dst)
 		goto out_free_src;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -123,10 +123,16 @@
 static inline bool
 nouveau_cli_work_ready(struct dma_fence *fence)
 {
-	if (!dma_fence_is_signaled(fence))
-		return false;
-	dma_fence_put(fence);
-	return true;
+	bool ret = true;
+
+	spin_lock_irq(fence->lock);
+	if (!dma_fence_is_signaled_locked(fence))
+		ret = false;
+	spin_unlock_irq(fence->lock);
+
+	if (ret == true)
+		dma_fence_put(fence);
+	return ret;
 }
 
 static void
@@ -520,6 +526,7 @@
 		nvkm_dbgopt(nouveau_debug, "DRM");
 
 	INIT_LIST_HEAD(&drm->clients);
+	mutex_init(&drm->clients_lock);
 	spin_lock_init(&drm->tile.lock);
 
 	/* workaround an odd issue on nvc1 by disabling the device's
@@ -589,6 +596,7 @@
 static void
 nouveau_drm_device_fini(struct drm_device *dev)
 {
+	struct nouveau_cli *cli, *temp_cli;
 	struct nouveau_drm *drm = nouveau_drm(dev);
 
 	if (nouveau_pmops_runtime()) {
@@ -613,11 +621,88 @@
 	nouveau_ttm_fini(drm);
 	nouveau_vga_fini(drm);
 
+	/*
+	 * There may be existing clients from as-yet unclosed files. For now,
+	 * clean them up here rather than deferring until the file is closed,
+	 * but this likely not correct if we want to support hot-unplugging
+	 * properly.
+	 */
+	mutex_lock(&drm->clients_lock);
+	list_for_each_entry_safe(cli, temp_cli, &drm->clients, head) {
+		list_del(&cli->head);
+		mutex_lock(&cli->mutex);
+		if (cli->abi16)
+			nouveau_abi16_fini(cli->abi16);
+		mutex_unlock(&cli->mutex);
+		nouveau_cli_fini(cli);
+		kfree(cli);
+	}
+	mutex_unlock(&drm->clients_lock);
+
 	nouveau_cli_fini(&drm->client);
 	nouveau_cli_fini(&drm->master);
+	mutex_destroy(&drm->clients_lock);
 	kfree(drm);
 }
 
+/*
+ * On some Intel PCIe bridge controllers doing a
+ * D0 -> D3hot -> D3cold -> D0 sequence causes Nvidia GPUs to not reappear.
+ * Skipping the intermediate D3hot step seems to make it work again. This is
+ * probably caused by not meeting the expectation the involved AML code has
+ * when the GPU is put into D3hot state before invoking it.
+ *
+ * This leads to various manifestations of this issue:
+ *  - AML code execution to power on the GPU hits an infinite loop (as the
+ *    code waits on device memory to change).
+ *  - kernel crashes, as all PCI reads return -1, which most code isn't able
+ *    to handle well enough.
+ *
+ * In all cases dmesg will contain at least one line like this:
+ * 'nouveau 0000:01:00.0: Refused to change power state, currently in D3'
+ * followed by a lot of nouveau timeouts.
+ *
+ * In the \_SB.PCI0.PEG0.PG00._OFF code deeper down writes bit 0x80 to the not
+ * documented PCI config space register 0x248 of the Intel PCIe bridge
+ * controller (0x1901) in order to change the state of the PCIe link between
+ * the PCIe port and the GPU. There are alternative code paths using other
+ * registers, which seem to work fine (executed pre Windows 8):
+ *  - 0xbc bit 0x20 (publicly available documentation claims 'reserved')
+ *  - 0xb0 bit 0x10 (link disable)
+ * Changing the conditions inside the firmware by poking into the relevant
+ * addresses does resolve the issue, but it seemed to be ACPI private memory
+ * and not any device accessible memory at all, so there is no portable way of
+ * changing the conditions.
+ * On a XPS 9560 that means bits [0,3] on \CPEX need to be cleared.
+ *
+ * The only systems where this behavior can be seen are hybrid graphics laptops
+ * with a secondary Nvidia Maxwell, Pascal or Turing GPU. It's unclear whether
+ * this issue only occurs in combination with listed Intel PCIe bridge
+ * controllers and the mentioned GPUs or other devices as well.
+ *
+ * documentation on the PCIe bridge controller can be found in the
+ * "7th Generation Intel® Processor Families for H Platforms Datasheet Volume 2"
+ * Section "12 PCI Express* Controller (x16) Registers"
+ */
+
+static void quirk_broken_nv_runpm(struct pci_dev *pdev)
+{
+	struct drm_device *dev = pci_get_drvdata(pdev);
+	struct nouveau_drm *drm = nouveau_drm(dev);
+	struct pci_dev *bridge = pci_upstream_bridge(pdev);
+
+	if (!bridge || bridge->vendor != PCI_VENDOR_ID_INTEL)
+		return;
+
+	switch (bridge->device) {
+	case 0x1901:
+		drm->old_pm_cap = pdev->pm_cap;
+		pdev->pm_cap = 0;
+		NV_INFO(drm, "Disabling PCI power management to avoid bug\n");
+		break;
+	}
+}
+
 static int nouveau_drm_probe(struct pci_dev *pdev,
 			     const struct pci_device_id *pent)
 {
@@ -699,6 +784,7 @@
 	if (ret)
 		goto fail_drm_dev_init;
 
+	quirk_broken_nv_runpm(pdev);
 	return 0;
 
 fail_drm_dev_init:
@@ -720,7 +806,7 @@
 	struct nvkm_client *client;
 	struct nvkm_device *device;
 
-	drm_dev_unregister(dev);
+	drm_dev_unplug(dev);
 
 	dev->irq_enabled = false;
 	client = nvxx_client(&drm->client.base);
@@ -736,7 +822,11 @@
 nouveau_drm_remove(struct pci_dev *pdev)
 {
 	struct drm_device *dev = pci_get_drvdata(pdev);
+	struct nouveau_drm *drm = nouveau_drm(dev);
 
+	/* revert our workaround */
+	if (drm->old_pm_cap)
+		pdev->pm_cap = drm->old_pm_cap;
 	nouveau_drm_device_remove(dev);
 }
 
@@ -989,8 +1079,10 @@
 
 	/* need to bring up power immediately if opening device */
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	get_task_comm(tmpname, current);
 	snprintf(name, sizeof(name), "%s[%d]", tmpname, pid_nr(fpriv->pid));
@@ -1008,9 +1100,9 @@
 
 	fpriv->driver_priv = cli;
 
-	mutex_lock(&drm->client.mutex);
+	mutex_lock(&drm->clients_lock);
 	list_add(&cli->head, &drm->clients);
-	mutex_unlock(&drm->client.mutex);
+	mutex_unlock(&drm->clients_lock);
 
 done:
 	if (ret && cli) {
@@ -1028,6 +1120,16 @@
 {
 	struct nouveau_cli *cli = nouveau_cli(fpriv);
 	struct nouveau_drm *drm = nouveau_drm(dev);
+	int dev_index;
+
+	/*
+	 * The device is gone, and as it currently stands all clients are
+	 * cleaned up in the removal codepath. In the future this may change
+	 * so that we can support hot-unplugging, but for now we immediately
+	 * return to avoid a double-free situation.
+	 */
+	if (!drm_dev_enter(dev, &dev_index))
+		return;
 
 	pm_runtime_get_sync(dev->dev);
 
@@ -1036,14 +1138,15 @@
 		nouveau_abi16_fini(cli->abi16);
 	mutex_unlock(&cli->mutex);
 
-	mutex_lock(&drm->client.mutex);
+	mutex_lock(&drm->clients_lock);
 	list_del(&cli->head);
-	mutex_unlock(&drm->client.mutex);
+	mutex_unlock(&drm->clients_lock);
 
 	nouveau_cli_fini(cli);
 	kfree(cli);
 	pm_runtime_mark_last_busy(dev->dev);
 	pm_runtime_put_autosuspend(dev->dev);
+	drm_dev_exit(dev_index);
 }
 
 static const struct drm_ioctl_desc
@@ -1072,8 +1175,10 @@
 	long ret;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	switch (_IOC_NR(cmd) - DRM_COMMAND_BASE) {
 	case DRM_NOUVEAU_NVIF:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -138,6 +138,13 @@
 
 	struct list_head clients;
 
+	/**
+	 * @clients_lock: Protects access to the @clients list of &struct nouveau_cli.
+	 */
+	struct mutex clients_lock;
+
+	u8 old_pm_cap;
+
 	struct {
 		struct agp_bridge_data *bridge;
 		u32 base;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -189,8 +189,10 @@
 	struct nouveau_fbdev *fbcon = info->par;
 	struct nouveau_drm *drm = nouveau_drm(fbcon->helper.dev);
 	int ret = pm_runtime_get_sync(drm->dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put(drm->dev->dev);
 		return ret;
+	}
 	return 0;
 }
 
@@ -315,7 +317,7 @@
 	struct nouveau_framebuffer *fb;
 	struct nouveau_channel *chan;
 	struct nouveau_bo *nvbo;
-	struct drm_mode_fb_cmd2 mode_cmd;
+	struct drm_mode_fb_cmd2 mode_cmd = {};
 	int ret;
 
 	mode_cmd.width = sizes->surface_width;
@@ -592,6 +594,7 @@
 	drm_fb_helper_fini(&fbcon->helper);
 free:
 	kfree(fbcon);
+	drm->fbcon = NULL;
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_fence.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_fence.c
@@ -156,7 +156,7 @@
 
 		fence = list_entry(fctx->pending.next, typeof(*fence), head);
 		chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock));
-		if (nouveau_fence_update(fence->channel, fctx))
+		if (nouveau_fence_update(chan, fctx))
 			ret = NVIF_NOTIFY_DROP;
 	}
 	spin_unlock_irqrestore(&fctx->lock, flags);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -45,8 +45,10 @@
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (WARN_ON(ret < 0 && ret != -EACCES))
+	if (WARN_ON(ret < 0 && ret != -EACCES)) {
+		pm_runtime_put_autosuspend(dev);
 		return;
+	}
 
 	if (gem->import_attach)
 		drm_prime_gem_destroy(gem, nvbo->bo.sg);
@@ -76,8 +78,10 @@
 		return ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev);
 		goto out;
+	}
 
 	ret = nouveau_vma_new(nvbo, vmm, &vma);
 	pm_runtime_mark_last_busy(dev);
@@ -193,7 +197,8 @@
 	 * to the caller, instead of a normal nouveau_bo ttm reference. */
 	ret = drm_gem_object_init(drm->dev, &nvbo->bo.base, size);
 	if (ret) {
-		nouveau_bo_ref(NULL, &nvbo);
+		drm_gem_object_release(&nvbo->bo.base);
+		kfree(nvbo);
 		return ret;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_mem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_mem.c
@@ -176,6 +176,8 @@
 nouveau_mem_del(struct ttm_mem_reg *reg)
 {
 	struct nouveau_mem *mem = nouveau_mem(reg);
+	if (!mem)
+		return;
 	nouveau_mem_fini(mem);
 	kfree(reg->mm_node);
 	reg->mm_node = NULL;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_prime.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_prime.c
@@ -90,7 +90,6 @@
 
 	ret = nouveau_bo_init(nvbo, size, align, flags, sg, robj);
 	if (ret) {
-		nouveau_bo_ref(NULL, &nvbo);
 		obj = ERR_PTR(ret);
 		goto unlock;
 	}
@@ -112,7 +111,22 @@
 	if (ret)
 		return -EINVAL;
 
-	return 0;
+	ret = ttm_bo_reserve(&nvbo->bo, false, false, NULL);
+	if (ret)
+		goto error;
+
+	if (nvbo->bo.moving)
+		ret = dma_fence_wait(nvbo->bo.moving, true);
+
+	ttm_bo_unreserve(&nvbo->bo);
+	if (ret)
+		goto error;
+
+	return ret;
+
+error:
+	nouveau_bo_unpin(nvbo);
+	return ret;
 }
 
 void nouveau_gem_prime_unpin(struct drm_gem_object *obj)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -96,12 +96,9 @@
 	else
 		nvbe->ttm.ttm.func = &nv50_sgdma_backend;
 
-	if (ttm_dma_tt_init(&nvbe->ttm, bo, page_flags))
-		/*
-		 * A failing ttm_dma_tt_init() will call ttm_tt_destroy()
-		 * and thus our nouveau_sgdma_destroy() hook, so we don't need
-		 * to free nvbe here.
-		 */
+	if (ttm_dma_tt_init(&nvbe->ttm, bo, page_flags)) {
+		kfree(nvbe);
 		return NULL;
+	}
 	return &nvbe->ttm.ttm;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_svm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_svm.c
@@ -112,11 +112,11 @@
 	struct nouveau_cli *cli = nouveau_cli(file_priv);
 	struct drm_nouveau_svm_bind *args = data;
 	unsigned target, cmd, priority;
-	unsigned long addr, end, size;
+	unsigned long addr, end;
 	struct mm_struct *mm;
 
 	args->va_start &= PAGE_MASK;
-	args->va_end &= PAGE_MASK;
+	args->va_end = ALIGN(args->va_end, PAGE_SIZE);
 
 	/* Sanity check arguments */
 	if (args->reserved0 || args->reserved1)
@@ -125,8 +125,6 @@
 		return -EINVAL;
 	if (args->va_start >= args->va_end)
 		return -EINVAL;
-	if (!args->npages)
-		return -EINVAL;
 
 	cmd = args->header >> NOUVEAU_SVM_BIND_COMMAND_SHIFT;
 	cmd &= NOUVEAU_SVM_BIND_COMMAND_MASK;
@@ -158,12 +156,6 @@
 	if (args->stride)
 		return -EINVAL;
 
-	size = ((unsigned long)args->npages) << PAGE_SHIFT;
-	if ((args->va_start + size) <= args->va_start)
-		return -EINVAL;
-	if ((args->va_start + size) > args->va_end)
-		return -EINVAL;
-
 	/*
 	 * Ok we are ask to do something sane, for now we only support migrate
 	 * commands but we will add things like memory policy (what to do on
@@ -173,7 +165,12 @@
 	mm = get_task_mm(current);
 	down_read(&mm->mmap_sem);
 
-	for (addr = args->va_start, end = args->va_start + size; addr < end;) {
+	if (!cli->svm.svmm) {
+		up_read(&mm->mmap_sem);
+		return -EINVAL;
+	}
+
+	for (addr = args->va_start, end = args->va_end; addr < end;) {
 		struct vm_area_struct *vma;
 		unsigned long next;
 
@@ -181,6 +178,7 @@
 		if (!vma)
 			break;
 
+		addr = max(addr, vma->vm_start);
 		next = min(vma->vm_end, end);
 		/* This is a best effort so we ignore errors */
 		nouveau_dmem_migrate_vma(cli->drm, vma, addr, next);
@@ -308,6 +306,10 @@
 	struct drm_nouveau_svm_init *args = data;
 	int ret;
 
+	/* We need to fail if svm is disabled */
+	if (!cli->drm->svm)
+		return -ENOSYS;
+
 	/* Allocate tracking for SVM-enabled VMM. */
 	if (!(svmm = kzalloc(sizeof(*svmm), GFP_KERNEL)))
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -63,14 +63,12 @@
 {
 	struct nouveau_bo *nvbo = nouveau_bo(bo);
 	struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
-	struct nouveau_mem *mem;
 	int ret;
 
 	if (drm->client.device.info.ram_size == 0)
 		return -ENOMEM;
 
 	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp, reg);
-	mem = nouveau_mem(reg);
 	if (ret)
 		return ret;
 
@@ -103,11 +101,9 @@
 {
 	struct nouveau_bo *nvbo = nouveau_bo(bo);
 	struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
-	struct nouveau_mem *mem;
 	int ret;
 
 	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp, reg);
-	mem = nouveau_mem(reg);
 	if (ret)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/core/memory.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/core/memory.c
@@ -91,8 +91,8 @@
 	}
 
 	refcount_set(&tags->refcount, 1);
+	*ptags = memory->tags = tags;
 	mutex_unlock(&fb->subdev.mutex);
-	*ptags = tags;
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
@@ -57,7 +57,7 @@
 		args->v0.count = 0;
 		args->v0.ustate_ac = NVIF_CONTROL_PSTATE_INFO_V0_USTATE_DISABLE;
 		args->v0.ustate_dc = NVIF_CONTROL_PSTATE_INFO_V0_USTATE_DISABLE;
-		args->v0.pwrsrc = -ENOSYS;
+		args->v0.pwrsrc = -ENODEV;
 		args->v0.pstate = NVIF_CONTROL_PSTATE_INFO_V0_PSTATE_UNKNOWN;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
@@ -123,7 +123,7 @@
 
 	mutex_init(&tdev->iommu.mutex);
 
-	if (iommu_present(&platform_bus_type)) {
+	if (device_iommu_mapped(dev)) {
 		tdev->iommu.domain = iommu_domain_alloc(&platform_bus_type);
 		if (!tdev->iommu.domain)
 			goto error;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
@@ -74,6 +74,8 @@
 
 	if (debug > subdev->debug)
 		return;
+	if (!mthd)
+		return;
 
 	for (i = 0; (list = mthd->data[i].mthd) != NULL; i++) {
 		u32 base = chan->head * mthd->addr;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
@@ -419,7 +419,7 @@
 	return ret;
 }
 
-static void
+void
 nvkm_dp_disable(struct nvkm_outp *outp, struct nvkm_ior *ior)
 {
 	struct nvkm_dp *dp = nvkm_dp(outp);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h
@@ -32,6 +32,7 @@
 
 int nvkm_dp_new(struct nvkm_disp *, int index, struct dcb_output *,
 		struct nvkm_outp **);
+void nvkm_dp_disable(struct nvkm_outp *, struct nvkm_ior *);
 
 /* DPCD Receiver Capabilities */
 #define DPCD_RC00_DPCD_REV                                              0x00000
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigm200.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigm200.c
@@ -27,10 +27,10 @@
 gm200_hdmi_scdc(struct nvkm_ior *ior, int head, u8 scdc)
 {
 	struct nvkm_device *device = ior->disp->engine.subdev.device;
-	const u32 hoff = head * 0x800;
+	const u32 soff = nv50_ior_base(ior);
 	const u32 ctrl = scdc & 0x3;
 
-	nvkm_mask(device, 0x61c5bc + hoff, 0x00000003, ctrl);
+	nvkm_mask(device, 0x61c5bc + soff, 0x00000003, ctrl);
 
 	ior->tmds.high_speed = !!(scdc & 0x2);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c
@@ -62,7 +62,6 @@
 		nvkm_wr32(device, 0x6f0108 + hdmi, vendor_infoframe.header);
 		nvkm_wr32(device, 0x6f010c + hdmi, vendor_infoframe.subpack0_low);
 		nvkm_wr32(device, 0x6f0110 + hdmi, vendor_infoframe.subpack0_high);
-		nvkm_wr32(device, 0x6f0110 + hdmi, 0x00000000);
 		nvkm_wr32(device, 0x6f0114 + hdmi, 0x00000000);
 		nvkm_wr32(device, 0x6f0118 + hdmi, 0x00000000);
 		nvkm_wr32(device, 0x6f011c + hdmi, 0x00000000);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
@@ -22,6 +22,7 @@
  * Authors: Ben Skeggs
  */
 #include "outp.h"
+#include "dp.h"
 #include "ior.h"
 
 #include <subdev/bios.h>
@@ -216,6 +217,14 @@
 	if (!ior->arm.head || ior->arm.proto != proto) {
 		OUTP_DBG(outp, "no heads (%x %d %d)", ior->arm.head,
 			 ior->arm.proto, proto);
+
+		/* The EFI GOP driver on Ampere can leave unused DP links routed,
+		 * which we don't expect.  The DisableLT IED script *should* get
+		 * us back to where we need to be.
+		 */
+		if (ior->func->route.get && !ior->arm.head && outp->info.type == DCB_OUTPUT_DP)
+			nvkm_dp_disable(outp, ior);
+
 		return;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h
@@ -121,6 +121,7 @@
 
 extern const struct gf100_grctx_func gk110_grctx;
 void gk110_grctx_generate_r419eb0(struct gf100_gr *);
+void gk110_grctx_generate_r419f78(struct gf100_gr *);
 
 extern const struct gf100_grctx_func gk110b_grctx;
 extern const struct gf100_grctx_func gk208_grctx;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
@@ -916,7 +916,9 @@
 gk104_grctx_generate_r419f78(struct gf100_gr *gr)
 {
 	struct nvkm_device *device = gr->base.engine.subdev.device;
-	nvkm_mask(device, 0x419f78, 0x00000001, 0x00000000);
+
+	/* bit 3 set disables loads in fp helper invocations, we need it enabled */
+	nvkm_mask(device, 0x419f78, 0x00000009, 0x00000000);
 }
 
 void
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110.c
@@ -820,6 +820,15 @@
 	nvkm_mask(device, 0x419eb0, 0x00001000, 0x00001000);
 }
 
+void
+gk110_grctx_generate_r419f78(struct gf100_gr *gr)
+{
+	struct nvkm_device *device = gr->base.engine.subdev.device;
+
+	/* bit 3 set disables loads in fp helper invocations, we need it enabled */
+	nvkm_mask(device, 0x419f78, 0x00000008, 0x00000000);
+}
+
 const struct gf100_grctx_func
 gk110_grctx = {
 	.main  = gf100_grctx_generate_main,
@@ -852,4 +861,5 @@
 	.gpc_tpc_nr = gk104_grctx_generate_gpc_tpc_nr,
 	.r418800 = gk104_grctx_generate_r418800,
 	.r419eb0 = gk110_grctx_generate_r419eb0,
+	.r419f78 = gk110_grctx_generate_r419f78,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110b.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110b.c
@@ -101,4 +101,5 @@
 	.gpc_tpc_nr = gk104_grctx_generate_gpc_tpc_nr,
 	.r418800 = gk104_grctx_generate_r418800,
 	.r419eb0 = gk110_grctx_generate_r419eb0,
+	.r419f78 = gk110_grctx_generate_r419f78,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk208.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk208.c
@@ -566,4 +566,5 @@
 	.dist_skip_table = gf117_grctx_generate_dist_skip_table,
 	.gpc_tpc_nr = gk104_grctx_generate_gpc_tpc_nr,
 	.r418800 = gk104_grctx_generate_r418800,
+	.r419f78 = gk110_grctx_generate_r419f78,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
@@ -991,4 +991,5 @@
 	.r406500 = gm107_grctx_generate_r406500,
 	.gpc_tpc_nr = gk104_grctx_generate_gpc_tpc_nr,
 	.r419e00 = gm107_grctx_generate_r419e00,
+	.r419f78 = gk110_grctx_generate_r419f78,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
@@ -1988,8 +1988,34 @@
 {
 	struct gf100_gr *gr = gf100_gr(base);
 	struct nvkm_subdev *subdev = &base->engine.subdev;
+	struct nvkm_device *device = subdev->device;
+	bool reset = device->chipset == 0x137 || device->chipset == 0x138;
 	u32 ret;
 
+	/* On certain GP107/GP108 boards, we trigger a weird issue where
+	 * GR will stop responding to PRI accesses after we've asked the
+	 * SEC2 RTOS to boot the GR falcons.  This happens with far more
+	 * frequency when cold-booting a board (ie. returning from D3).
+	 *
+	 * The root cause for this is not known and has proven difficult
+	 * to isolate, with many avenues being dead-ends.
+	 *
+	 * A workaround was discovered by Karol, whereby putting GR into
+	 * reset for an extended period right before initialisation
+	 * prevents the problem from occuring.
+	 *
+	 * XXX: As RM does not require any such workaround, this is more
+	 *      of a hack than a true fix.
+	 */
+	reset = nvkm_boolopt(device->cfgopt, "NvGrResetWar", reset);
+	if (reset) {
+		nvkm_mask(device, 0x000200, 0x00001000, 0x00000000);
+		nvkm_rd32(device, 0x000200);
+		msleep(50);
+		nvkm_mask(device, 0x000200, 0x00001000, 0x00001000);
+		nvkm_rd32(device, 0x000200);
+	}
+
 	nvkm_pmu_pgob(gr->base.engine.subdev.device->pmu, false);
 
 	ret = nvkm_falcon_get(gr->fecs.falcon, subdev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c
@@ -143,23 +143,24 @@
 
 	nent = (fuc.size / sizeof(struct gk20a_fw_av));
 
-	pack = vzalloc((sizeof(*pack) * max_classes) +
-		       (sizeof(*init) * (nent + 1)));
+	pack = vzalloc((sizeof(*pack) * (max_classes + 1)) +
+		       (sizeof(*init) * (nent + max_classes + 1)));
 	if (!pack) {
 		ret = -ENOMEM;
 		goto end;
 	}
 
-	init = (void *)(pack + max_classes);
+	init = (void *)(pack + max_classes + 1);
 
-	for (i = 0; i < nent; i++) {
-		struct gf100_gr_init *ent = &init[i];
+	for (i = 0; i < nent; i++, init++) {
 		struct gk20a_fw_av *av = &((struct gk20a_fw_av *)fuc.data)[i];
 		u32 class = av->addr & 0xffff;
 		u32 addr = (av->addr & 0xffff0000) >> 14;
 
 		if (prevclass != class) {
-			pack[classidx].init = ent;
+			if (prevclass) /* Add terminator to the method list. */
+				init++;
+			pack[classidx].init = init;
 			pack[classidx].type = class;
 			prevclass = class;
 			if (++classidx >= max_classes) {
@@ -169,10 +170,10 @@
 			}
 		}
 
-		ent->addr = addr;
-		ent->data = av->data;
-		ent->count = 1;
-		ent->pitch = 1;
+		init->addr = addr;
+		init->data = av->data;
+		init->count = 1;
+		init->pitch = 1;
 	}
 
 	*ppack = pack;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
@@ -33,12 +33,12 @@
 {
 	u32 p = *addr;
 
-	if (*addr > bios->image0_size && bios->imaged_addr) {
+	if (*addr >= bios->image0_size && bios->imaged_addr) {
 		*addr -= bios->image0_size;
 		*addr += bios->imaged_addr;
 	}
 
-	if (unlikely(*addr + size >= bios->size)) {
+	if (unlikely(*addr + size > bios->size)) {
 		nvkm_error(&bios->subdev, "OOB %d %08x %08x\n", size, p, *addr);
 		return false;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
@@ -75,7 +75,7 @@
 	nvkm_debug(subdev, "%08x: type %02x, %d bytes\n",
 		   image.base, image.type, image.size);
 
-	if (!shadow_fetch(bios, mthd, image.size)) {
+	if (!shadow_fetch(bios, mthd, image.base + image.size)) {
 		nvkm_debug(subdev, "%08x: fetch failed\n", image.base);
 		return 0;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
@@ -101,9 +101,13 @@
 	else
 		return ERR_PTR(-ENODEV);
 
+	if (!pdev->rom || pdev->romlen == 0)
+		return ERR_PTR(-ENODEV);
+
 	if ((priv = kmalloc(sizeof(*priv), GFP_KERNEL))) {
+		priv->size = pdev->romlen;
 		if (ret = -ENODEV,
-		    (priv->rom = pci_platform_rom(pdev, &priv->size)))
+		    (priv->rom = ioremap(pdev->rom, pdev->romlen)))
 			return priv;
 		kfree(priv);
 	}
@@ -111,11 +115,20 @@
 	return ERR_PTR(ret);
 }
 
+static void
+platform_fini(void *data)
+{
+	struct priv *priv = data;
+
+	iounmap(priv->rom);
+	kfree(priv);
+}
+
 const struct nvbios_source
 nvbios_platform = {
 	.name = "PLATFORM",
 	.init = platform_init,
-	.fini = (void(*)(void *))kfree,
+	.fini = platform_fini,
 	.read = pcirom_read,
 	.rw = true,
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
@@ -135,10 +135,10 @@
 
 	list_for_each_entry_from_reverse(cstate, &pstate->list, head) {
 		if (nvkm_cstate_valid(clk, cstate, max_volt, clk->temp))
-			break;
+			return cstate;
 	}
 
-	return cstate;
+	return NULL;
 }
 
 static struct nvkm_cstate *
@@ -169,6 +169,8 @@
 	if (!list_empty(&pstate->list)) {
 		cstate = nvkm_cstate_get(clk, pstate, cstatei);
 		cstate = nvkm_cstate_find_best(clk, pstate, cstate);
+		if (!cstate)
+			return -EINVAL;
 	} else {
 		cstate = &pstate->base;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
@@ -146,6 +146,7 @@
 	struct nvkm_fault *fault = nvkm_fault(subdev);
 	int i;
 
+	nvkm_notify_fini(&fault->nrpfb);
 	nvkm_event_fini(&fault->event);
 
 	for (i = 0; i < fault->buffer_nr; i++) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
@@ -118,10 +118,10 @@
 		if (retries)
 			udelay(400);
 
-		/* transaction request, wait up to 1ms for it to complete */
+		/* transaction request, wait up to 2ms for it to complete */
 		nvkm_wr32(device, 0x00e4e4 + base, 0x00010000 | ctrl);
 
-		timeout = 1000;
+		timeout = 2000;
 		do {
 			ctrl = nvkm_rd32(device, 0x00e4e4 + base);
 			udelay(1);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
@@ -33,7 +33,7 @@
 gm200_i2c_aux_fini(struct gm200_i2c_aux *aux)
 {
 	struct nvkm_device *device = aux->base.pad->i2c->subdev.device;
-	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00310000, 0x00000000);
+	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00710000, 0x00000000);
 }
 
 static int
@@ -54,10 +54,10 @@
 			AUX_ERR(&aux->base, "begin idle timeout %08x", ctrl);
 			return -EBUSY;
 		}
-	} while (ctrl & 0x03010000);
+	} while (ctrl & 0x07010000);
 
 	/* set some magic, and wait up to 1ms for it to appear */
-	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00300000, ureq);
+	nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00700000, ureq);
 	timeout = 1000;
 	do {
 		ctrl = nvkm_rd32(device, 0x00d954 + (aux->ch * 0x50));
@@ -67,7 +67,7 @@
 			gm200_i2c_aux_fini(aux);
 			return -EBUSY;
 		}
-	} while ((ctrl & 0x03000000) != urep);
+	} while ((ctrl & 0x07000000) != urep);
 
 	return 0;
 }
@@ -118,10 +118,10 @@
 		if (retries)
 			udelay(400);
 
-		/* transaction request, wait up to 1ms for it to complete */
+		/* transaction request, wait up to 2ms for it to complete */
 		nvkm_wr32(device, 0x00d954 + base, 0x00010000 | ctrl);
 
-		timeout = 1000;
+		timeout = 2000;
 		do {
 			ctrl = nvkm_rd32(device, 0x00d954 + base);
 			udelay(1);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c
@@ -22,6 +22,7 @@
  * Authors: Ben Skeggs
  */
 #include "priv.h"
+#include <subdev/timer.h>
 
 static void
 gf100_ibus_intr_hub(struct nvkm_subdev *ibus, int i)
@@ -31,7 +32,6 @@
 	u32 data = nvkm_rd32(device, 0x122124 + (i * 0x0400));
 	u32 stat = nvkm_rd32(device, 0x122128 + (i * 0x0400));
 	nvkm_debug(ibus, "HUB%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x122128 + (i * 0x0400), 0x00000200, 0x00000000);
 }
 
 static void
@@ -42,7 +42,6 @@
 	u32 data = nvkm_rd32(device, 0x124124 + (i * 0x0400));
 	u32 stat = nvkm_rd32(device, 0x124128 + (i * 0x0400));
 	nvkm_debug(ibus, "ROP%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x124128 + (i * 0x0400), 0x00000200, 0x00000000);
 }
 
 static void
@@ -53,7 +52,6 @@
 	u32 data = nvkm_rd32(device, 0x128124 + (i * 0x0400));
 	u32 stat = nvkm_rd32(device, 0x128128 + (i * 0x0400));
 	nvkm_debug(ibus, "GPC%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x128128 + (i * 0x0400), 0x00000200, 0x00000000);
 }
 
 void
@@ -90,6 +88,12 @@
 			intr1 &= ~stat;
 		}
 	}
+
+	nvkm_mask(device, 0x121c4c, 0x0000003f, 0x00000002);
+	nvkm_msec(device, 2000,
+		if (!(nvkm_rd32(device, 0x121c4c) & 0x0000003f))
+			break;
+	);
 }
 
 static int
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c
@@ -22,6 +22,7 @@
  * Authors: Ben Skeggs
  */
 #include "priv.h"
+#include <subdev/timer.h>
 
 static void
 gk104_ibus_intr_hub(struct nvkm_subdev *ibus, int i)
@@ -31,7 +32,6 @@
 	u32 data = nvkm_rd32(device, 0x122124 + (i * 0x0800));
 	u32 stat = nvkm_rd32(device, 0x122128 + (i * 0x0800));
 	nvkm_debug(ibus, "HUB%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x122128 + (i * 0x0800), 0x00000200, 0x00000000);
 }
 
 static void
@@ -42,7 +42,6 @@
 	u32 data = nvkm_rd32(device, 0x124124 + (i * 0x0800));
 	u32 stat = nvkm_rd32(device, 0x124128 + (i * 0x0800));
 	nvkm_debug(ibus, "ROP%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x124128 + (i * 0x0800), 0x00000200, 0x00000000);
 }
 
 static void
@@ -53,7 +52,6 @@
 	u32 data = nvkm_rd32(device, 0x128124 + (i * 0x0800));
 	u32 stat = nvkm_rd32(device, 0x128128 + (i * 0x0800));
 	nvkm_debug(ibus, "GPC%d: %06x %08x (%08x)\n", i, addr, data, stat);
-	nvkm_mask(device, 0x128128 + (i * 0x0800), 0x00000200, 0x00000000);
 }
 
 void
@@ -90,6 +88,12 @@
 			intr1 &= ~stat;
 		}
 	}
+
+	nvkm_mask(device, 0x12004c, 0x0000003f, 0x00000002);
+	nvkm_msec(device, 2000,
+		if (!(nvkm_rd32(device, 0x12004c) & 0x0000003f))
+			break;
+	);
 }
 
 static int
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
@@ -316,9 +316,9 @@
 {
 	struct nvkm_device *device = mmu->subdev.device;
 	struct nvkm_mm *mm = &device->fb->ram->vram;
-	const u32 sizeN = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NORMAL);
-	const u32 sizeU = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NOMAP);
-	const u32 sizeM = nvkm_mm_heap_size(mm, NVKM_RAM_MM_MIXED);
+	const u64 sizeN = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NORMAL);
+	const u64 sizeU = nvkm_mm_heap_size(mm, NVKM_RAM_MM_NOMAP);
+	const u64 sizeM = nvkm_mm_heap_size(mm, NVKM_RAM_MM_MIXED);
 	u8 type = NVKM_MEM_KIND * !!mmu->func->kind;
 	u8 heap = NVKM_MEM_VRAM;
 	int heapM, heapN, heapU;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c
+++ linux-ein-5.4.0/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c
@@ -108,6 +108,7 @@
 	struct gm200_secboot *gsb;
 	struct nvkm_acr *acr;
 
+	*psb = NULL;
 	acr = acr_r352_new(BIT(NVKM_SECBOOT_FALCON_FECS) |
 			   BIT(NVKM_SECBOOT_FALCON_PMU));
 	if (IS_ERR(acr))
@@ -116,10 +117,8 @@
 	acr->optional_falcons = BIT(NVKM_SECBOOT_FALCON_PMU);
 
 	gsb = kzalloc(sizeof(*gsb), GFP_KERNEL);
-	if (!gsb) {
-		psb = NULL;
+	if (!gsb)
 		return -ENOMEM;
-	}
 	*psb = &gsb->base;
 
 	ret = nvkm_secboot_ctor(&gm20b_secboot, acr, device, index, &gsb->base);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -1444,22 +1444,26 @@
 {
 	struct dsi_data *dsi = s->private;
 	unsigned long flags;
-	struct dsi_irq_stats stats;
+	struct dsi_irq_stats *stats;
+
+	stats = kmalloc(sizeof(*stats), GFP_KERNEL);
+	if (!stats)
+		return -ENOMEM;
 
 	spin_lock_irqsave(&dsi->irq_stats_lock, flags);
 
-	stats = dsi->irq_stats;
+	*stats = dsi->irq_stats;
 	memset(&dsi->irq_stats, 0, sizeof(dsi->irq_stats));
 	dsi->irq_stats.last_reset = jiffies;
 
 	spin_unlock_irqrestore(&dsi->irq_stats_lock, flags);
 
 	seq_printf(s, "period %u ms\n",
-			jiffies_to_msecs(jiffies - stats.last_reset));
+			jiffies_to_msecs(jiffies - stats->last_reset));
 
-	seq_printf(s, "irqs %d\n", stats.irq_count);
+	seq_printf(s, "irqs %d\n", stats->irq_count);
 #define PIS(x) \
-	seq_printf(s, "%-20s %10d\n", #x, stats.dsi_irqs[ffs(DSI_IRQ_##x)-1]);
+	seq_printf(s, "%-20s %10d\n", #x, stats->dsi_irqs[ffs(DSI_IRQ_##x)-1]);
 
 	seq_printf(s, "-- DSI%d interrupts --\n", dsi->module_id + 1);
 	PIS(VC0);
@@ -1483,10 +1487,10 @@
 
 #define PIS(x) \
 	seq_printf(s, "%-20s %10d %10d %10d %10d\n", #x, \
-			stats.vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \
-			stats.vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \
-			stats.vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \
-			stats.vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]);
+			stats->vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \
+			stats->vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \
+			stats->vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \
+			stats->vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]);
 
 	seq_printf(s, "-- VC interrupts --\n");
 	PIS(CS);
@@ -1502,7 +1506,7 @@
 
 #define PIS(x) \
 	seq_printf(s, "%-20s %10d\n", #x, \
-			stats.cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]);
+			stats->cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]);
 
 	seq_printf(s, "-- CIO interrupts --\n");
 	PIS(ERRSYNCESC1);
@@ -1527,6 +1531,8 @@
 	PIS(ULPSACTIVENOT_ALL1);
 #undef PIS
 
+	kfree(stats);
+
 	return 0;
 }
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/dss/dss.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/dss/dss.c
@@ -1151,46 +1151,39 @@
 	.has_lcd_clk_src	=	true,
 };
 
-static int dss_init_ports(struct dss_device *dss)
+static void __dss_uninit_ports(struct dss_device *dss, unsigned int num_ports)
 {
 	struct platform_device *pdev = dss->pdev;
 	struct device_node *parent = pdev->dev.of_node;
 	struct device_node *port;
 	unsigned int i;
-	int r;
 
-	for (i = 0; i < dss->feat->num_ports; i++) {
+	for (i = 0; i < num_ports; i++) {
 		port = of_graph_get_port_by_id(parent, i);
 		if (!port)
 			continue;
 
 		switch (dss->feat->ports[i]) {
 		case OMAP_DISPLAY_TYPE_DPI:
-			r = dpi_init_port(dss, pdev, port, dss->feat->model);
-			if (r)
-				return r;
+			dpi_uninit_port(port);
 			break;
-
 		case OMAP_DISPLAY_TYPE_SDI:
-			r = sdi_init_port(dss, pdev, port);
-			if (r)
-				return r;
+			sdi_uninit_port(port);
 			break;
-
 		default:
 			break;
 		}
+		of_node_put(port);
 	}
-
-	return 0;
 }
 
-static void dss_uninit_ports(struct dss_device *dss)
+static int dss_init_ports(struct dss_device *dss)
 {
 	struct platform_device *pdev = dss->pdev;
 	struct device_node *parent = pdev->dev.of_node;
 	struct device_node *port;
-	int i;
+	unsigned int i;
+	int r;
 
 	for (i = 0; i < dss->feat->num_ports; i++) {
 		port = of_graph_get_port_by_id(parent, i);
@@ -1199,15 +1192,34 @@
 
 		switch (dss->feat->ports[i]) {
 		case OMAP_DISPLAY_TYPE_DPI:
-			dpi_uninit_port(port);
+			r = dpi_init_port(dss, pdev, port, dss->feat->model);
+			if (r)
+				goto error;
 			break;
+
 		case OMAP_DISPLAY_TYPE_SDI:
-			sdi_uninit_port(port);
+			r = sdi_init_port(dss, pdev, port);
+			if (r)
+				goto error;
 			break;
+
 		default:
 			break;
 		}
+		of_node_put(port);
 	}
+
+	return 0;
+
+error:
+	of_node_put(port);
+	__dss_uninit_ports(dss, i);
+	return r;
+}
+
+static void dss_uninit_ports(struct dss_device *dss)
+{
+	__dss_uninit_ports(dss, dss->feat->num_ports);
 }
 
 static int dss_video_pll_probe(struct dss_device *dss)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
@@ -192,7 +192,7 @@
 	dss = of_find_matching_node(NULL, omapdss_of_match);
 
 	if (dss == NULL || !of_device_is_available(dss))
-		return 0;
+		goto put_node;
 
 	omapdss_walk_device(dss, true);
 
@@ -217,6 +217,8 @@
 		kfree(n);
 	}
 
+put_node:
+	of_node_put(dss);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -451,11 +451,12 @@
 	if (omap_state->manually_updated)
 		return;
 
-	spin_lock_irq(&crtc->dev->event_lock);
 	drm_crtc_vblank_on(crtc);
+
 	ret = drm_crtc_vblank_get(crtc);
 	WARN_ON(ret != 0);
 
+	spin_lock_irq(&crtc->dev->event_lock);
 	omap_crtc_arm_event(crtc);
 	spin_unlock_irq(&crtc->dev->event_lock);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
@@ -891,6 +891,7 @@
 					   &omap_dmm->refill_pa, GFP_KERNEL);
 	if (!omap_dmm->refill_va) {
 		dev_err(&dev->dev, "could not allocate refill memory\n");
+		ret = -ENOMEM;
 		goto fail;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/omap_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -216,8 +216,8 @@
 	} else if (output->bridge) {
 		struct drm_bridge *bridge = output->bridge;
 
-		while (bridge->next)
-			bridge = bridge->next;
+		while (drm_bridge_get_next_bridge(bridge))
+			bridge = drm_bridge_get_next_bridge(bridge);
 
 		node = bridge->of_node;
 	} else if (output->panel) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/omapdrm/omap_encoder.c
+++ linux-ein-5.4.0/drivers/gpu/drm/omapdrm/omap_encoder.c
@@ -125,7 +125,8 @@
 	for (dssdev = output; dssdev; dssdev = dssdev->next)
 		omap_encoder_update_videomode_flags(&vm, dssdev->bus_flags);
 
-	for (bridge = output->bridge; bridge; bridge = bridge->next) {
+	for (bridge = output->bridge; bridge;
+	     bridge = drm_bridge_get_next_bridge(bridge)) {
 		if (!bridge->timings)
 			continue;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/Kconfig
@@ -141,6 +141,7 @@
 	depends on OF
 	depends on I2C
 	depends on BACKLIGHT_CLASS_DEVICE
+	select CRC32
 	help
 	  The panel is used with different sizes LCDs, from 480x272 to
 	  1280x800, and 24 bit per pixel.
@@ -355,4 +356,13 @@
 	help
 	  Say Y here if you want to enable support for Truly NT35597 WQXGA Dual DSI
 	  Video Mode panel
+
+config DRM_PANEL_AVD_TT101WX_CN
+        tristate "AVD-TT101WX-CN MIPI-DSI LCD"
+        depends on OF
+	depends on DRM_MIPI_DSI
+        depends on BACKLIGHT_CLASS_DEVICE
+        help
+          Say Y here if you want to enable support for the AVD
+          101WX-CN controller for 1280x800 LCD panel
 endmenu
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/Makefile
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/Makefile
@@ -38,3 +38,4 @@
 obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
 obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o
 obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o
+obj-$(CONFIG_DRM_PANEL_AVD_TT101WX_CN) += panel-avd-tt101wx-cn-101-a.o
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-arm-versatile.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-arm-versatile.c
@@ -350,9 +350,8 @@
 			dev_info(dev, "panel mounted on IB2 daughterboard\n");
 	}
 
-	drm_panel_init(&vpanel->panel);
-	vpanel->panel.dev = dev;
-	vpanel->panel.funcs = &versatile_panel_drm_funcs;
+	drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&vpanel->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-avd-tt101wx-cn-101-a.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-avd-tt101wx-cn-101-a.c
@@ -0,0 +1,497 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Driver for panels based on Sitronix ST7703 controller, souch as:
+ *
+ * - Rocktech jh057n00900 5.5" MIPI-DSI panel
+ *
+ * Copyright (C) Purism SPC 2019
+ */
+
+#include <linux/debugfs.h>
+#include <linux/delay.h>
+#include <linux/gpio/consumer.h>
+#include <linux/media-bus-format.h>
+#include <linux/mod_devicetable.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/regulator/consumer.h>
+
+#include <video/display_timing.h>
+#include <video/mipi_display.h>
+
+#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
+#include <drm/drm_panel.h>
+
+#define DRV_NAME "panel-avd-tt101wx-cn-101-a"
+
+/* Manufacturer specific Commands send via DSI */
+#define ST7703_CMD_ALL_PIXEL_OFF 0x22
+#define ST7703_CMD_ALL_PIXEL_ON	 0x23
+#define ST7703_CMD_SETDISP	 0xB2
+#define ST7703_CMD_SETRGBIF	 0xB3
+#define ST7703_CMD_SETCYC	 0xB4
+#define ST7703_CMD_SETBGP	 0xB5
+#define ST7703_CMD_SETVCOM	 0xB6
+#define ST7703_CMD_SETOTP	 0xB7
+#define ST7703_CMD_SETPOWER_EXT	 0xB8
+#define ST7703_CMD_SETEXTC	 0xB9
+#define ST7703_CMD_SETMIPI	 0xBA
+#define ST7703_CMD_SETVDC	 0xBC
+#define ST7703_CMD_UNKNOWN_BF	 0xBF
+#define ST7703_CMD_SETSCR	 0xC0
+#define ST7703_CMD_SETPOWER	 0xC1
+#define ST7703_CMD_SETPANEL	 0xCC
+#define ST7703_CMD_UNKNOWN_C6	 0xC6
+#define ST7703_CMD_SETGAMMA	 0xE0
+#define ST7703_CMD_SETEQ	 0xE3
+#define ST7703_CMD_SETGIP1	 0xE9
+#define ST7703_CMD_SETGIP2	 0xEA
+
+struct st7703 {
+	struct device *dev;
+	struct drm_panel panel;
+	struct gpio_desc *reset_gpio;
+	bool prepared;
+
+	struct dentry *debugfs;
+	const struct st7703_panel_desc *desc;
+};
+
+struct st7703_panel_desc {
+	const struct drm_display_mode *mode;
+	unsigned int lanes;
+	unsigned long mode_flags;
+	enum mipi_dsi_pixel_format format;
+	int (*init_sequence)(struct st7703 *ctx);
+};
+
+static inline struct st7703 *panel_to_st7703(struct drm_panel *panel)
+{
+	return container_of(panel, struct st7703, panel);
+}
+
+#define dsi_generic_write_seq(dsi, seq...) do {				\
+		static const u8 d[] = { seq };				\
+		int ret;						\
+		ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d));	\
+		if (ret < 0)						\
+			return ret;					\
+	} while (0)
+
+#define dsi_dcs_write_seq(dsi, cmd, seq...) do {			\
+		static const u8 d[] = { seq };				\
+		int ret;						\
+		ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d));	\
+		if (ret < 0)						\
+			return ret;					\
+	} while (0)
+
+
+static int avd_tt101wx_cn_101_a_init_sequence(struct st7703 *ctx)
+{
+	struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+
+	/*
+	 * Init sequence was supplied by the panel vendor.
+	 */
+
+	/* Magic sequence to unlock user commands below. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC, 0xF1, 0x12, 0x84);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI,
+			  0x33,
+			  0x81,
+			  0x05,
+			  0xF9,
+			  0x0E,
+			  0x0E,
+			  /* The rest is undocumented in ST7703 datasheet */
+			  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			  0x44, 0x25, 0x00, 0x91, 0x0a, 0x00, 0x00, 0x00,
+			  0x4F, 0x01, 0x00, 0x00, 0x37);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER_EXT,
+			  0xA8);
+
+	/* RGB I/F porch timing */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF,
+			  0x00,
+			  0x00,
+			  0x00,
+			  0x00,
+			  /* The rest is undocumented in ST7703 datasheet */
+			  0x07, 0x0B,
+			  0x1E, 0x1E);
+
+	/* Source driving settings. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR,
+			  0x73, /* N_POPON */
+			  0x73, /* N_NOPON */
+			  0x50, /* I_POPON */
+			  0x50, /* I_NOPON */
+			  0x80,
+			  0x00, /* SCR[31,24] */
+			  0x08, /* SCR[15,8] */
+			  0x70, /* SCR[7,0] */
+			  0x00  /* Undocumented */);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_UNKNOWN_BF, 0x02, 0x11, 0x82);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x46);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
+
+	/* Set display resolution. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP,
+			  0x40,
+			  0x08);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ,
+			  0x03,
+			  0x03,
+			  0x00,
+			  0x00,
+			  0x03,
+			  0x03,
+			  0x00,
+			  0x00,
+			  0x00,
+			  0xC0);
+
+	/* Undocumented command. */
+	dsi_dcs_write_seq(dsi, 0xB1, 0x22, 0x85, 0x23, 0x1E, 0x1E, 0x22, 0x77, 0x04, 0xDB, 0x4C);
+
+	/* Reference voltage. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP,
+			  0x0F,
+			  0x0f);
+	msleep(20);
+
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM,
+			  0x1C,
+			  0x1C);
+
+	/* This command is to set forward GIP timing. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP1,
+			  0x02, 0x00, 0x01, 0x05, 0x0F, 0xA1, 0xA0, 0x12,
+			  0x31, 0x23, 0x4F, 0x03, 0xA1, 0x54, 0x47, 0x08,
+			  0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
+			  0x0C, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x88, 0x88,
+			  0x88, 0xFF, 0x83, 0x31, 0x17, 0x75, 0x58, 0xFF,
+			  0x00, 0x88, 0x88, 0x88, 0xFF, 0x82, 0x20, 0x06,
+			  0x64, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+
+	/* This command is to set backward GIP timing. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP2,
+			  0x07, 0x1A, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,
+			  0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0xFF,
+			  0x88, 0xFF, 0x84, 0x46, 0x60, 0x02, 0x28, 0x88,
+			  0x11, 0x88, 0xFF, 0x88, 0xFF, 0x85, 0x57, 0x71,
+			  0x13, 0x38, 0x23, 0x10, 0x00, 0x00, 0x01, 0x6C,
+			  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA1,
+			  0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0B);
+
+	/* Adjust the gamma characteristics of the panel. */
+	dsi_dcs_write_seq(dsi, ST7703_CMD_SETGAMMA,
+			  0x0F, 0x25, 0x29, 0x29, 0x2D, 0x3F, 0x56, 0x42,
+			  0x05, 0x0B, 0x0C, 0x12, 0x14, 0x12, 0x12, 0x10,
+			  0x18, 0x0F, 0x25, 0x29, 0x29, 0x2D, 0x3F, 0x56,
+			  0x42, 0x05, 0x0B, 0x0C, 0x12, 0x14, 0x12, 0x12,
+			  0x10, 0x18);
+
+	dsi_dcs_write_seq(dsi,0x11);
+	msleep(300);
+	dsi_dcs_write_seq(dsi,0x29);
+	msleep(50);
+
+	return 0;
+}
+
+static const struct drm_display_mode avd_tt101wx_cn_101_a_mode = {
+	.hdisplay    = 800,
+	.hsync_start = 800 + 40,
+	.hsync_end   = 800 + 40 + 40,
+	.htotal	     = 800 + 40 + 40 + 20,
+	.vdisplay    = 1280,
+	.vsync_start = 1280 + 12,
+	.vsync_end   = 1280 + 16 + 12,
+	.vtotal	     = 1280 + 16 + 12 + 3,
+	.clock	     = 65000,
+	.flags	     = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+	.width_mm    = 68,
+	.height_mm   = 136,
+};
+
+static const struct st7703_panel_desc avd_tt101wx_cn_101_a_desc = {
+	.mode = &avd_tt101wx_cn_101_a_mode,
+	.lanes = 4,
+	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
+			MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM,
+	.format = MIPI_DSI_FMT_RGB888,
+	.init_sequence = avd_tt101wx_cn_101_a_init_sequence,
+};
+
+static int st7703_enable(struct drm_panel *panel)
+{
+	struct st7703 *ctx = panel_to_st7703(panel);
+	struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+	int ret;
+
+	ret = ctx->desc->init_sequence(ctx);
+	if (ret < 0) {
+		dev_err(ctx->dev, "Panel init sequence failed: %d\n", ret);
+		return ret;
+	}
+
+	msleep(20);
+
+	ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+	if (ret < 0) {
+		dev_err(ctx->dev, "Failed to exit sleep mode: %d\n", ret);
+		return ret;
+	}
+
+	/* It takes the controller 120 msec to wake up after sleep. */
+	msleep(120);
+
+	ret = mipi_dsi_dcs_set_display_on(dsi);
+	if (ret)
+		return ret;
+
+	dev_dbg(ctx->dev, "Panel init sequence done\n");
+
+	return 0;
+}
+
+static int st7703_disable(struct drm_panel *panel)
+{
+	struct st7703 *ctx = panel_to_st7703(panel);
+	struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+	int ret;
+
+	ret = mipi_dsi_dcs_set_display_off(dsi);
+	if (ret < 0)
+		dev_err(ctx->dev, "Failed to turn off the display: %d\n", ret);
+
+	ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
+	if (ret < 0)
+		dev_err(ctx->dev, "Failed to enter sleep mode: %d\n", ret);
+	/* It takes the controller 120 msec to enter sleep mode. */
+	msleep(120);
+
+	return 0;
+}
+
+static int st7703_unprepare(struct drm_panel *panel)
+{
+	struct st7703 *ctx = panel_to_st7703(panel);
+
+	if (!ctx->prepared)
+		return 0;
+
+	gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+	ctx->prepared = false;
+
+	return 0;
+}
+
+static int st7703_prepare(struct drm_panel *panel)
+{
+	struct st7703 *ctx = panel_to_st7703(panel);
+	int ret;
+
+	if (ctx->prepared)
+		return 0;
+
+	dev_dbg(ctx->dev, "Resetting the panel\n");
+
+	gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+	/* Give power supplies time to stabilize before deasserting reset. */
+	usleep_range(10000, 20000);
+	gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+	usleep_range(15000, 20000);
+
+	ctx->prepared = true;
+
+	return 0;
+
+}
+
+static const u32 mantix_bus_formats[] = {
+	MEDIA_BUS_FMT_RGB888_1X24,
+};
+
+static int st7703_get_modes(struct drm_panel *panel)
+{
+	struct drm_connector *connector = panel->connector;
+	struct st7703 *ctx = panel_to_st7703(panel);
+	struct drm_display_mode *mode;
+
+	mode = drm_mode_duplicate(connector->dev, ctx->desc->mode);
+	if (!mode) {
+		dev_err(ctx->dev, "Failed to add mode %ux%u@%u\n",
+			ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
+			drm_mode_vrefresh(ctx->desc->mode));
+		return -ENOMEM;
+	}
+
+	drm_mode_set_name(mode);
+
+	mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
+	connector->display_info.width_mm = mode->width_mm;
+	connector->display_info.height_mm = mode->height_mm;
+	drm_mode_probed_add(connector, mode);
+	drm_display_info_set_bus_formats(&connector->display_info,
+					 mantix_bus_formats,
+					 ARRAY_SIZE(mantix_bus_formats));
+	return 1;
+}
+
+static const struct drm_panel_funcs st7703_drm_funcs = {
+	.disable   = st7703_disable,
+	.unprepare = st7703_unprepare,
+	.prepare   = st7703_prepare,
+	.enable	   = st7703_enable,
+	.get_modes = st7703_get_modes,
+};
+
+static int allpixelson_set(void *data, u64 val)
+{
+	struct st7703 *ctx = data;
+	struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+
+	dev_dbg(ctx->dev, "Setting all pixels on\n");
+	dsi_generic_write_seq(dsi, ST7703_CMD_ALL_PIXEL_ON);
+	msleep(val * 1000);
+	/* Reset the panel to get video back */
+	drm_panel_disable(&ctx->panel);
+	drm_panel_unprepare(&ctx->panel);
+	drm_panel_prepare(&ctx->panel);
+	drm_panel_enable(&ctx->panel);
+
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(allpixelson_fops, NULL,
+			allpixelson_set, "%llu\n");
+
+static void st7703_debugfs_init(struct st7703 *ctx)
+{
+	ctx->debugfs = debugfs_create_dir(DRV_NAME, NULL);
+
+	debugfs_create_file("allpixelson", 0600, ctx->debugfs, ctx,
+			    &allpixelson_fops);
+}
+
+static void st7703_debugfs_remove(struct st7703 *ctx)
+{
+	debugfs_remove_recursive(ctx->debugfs);
+	ctx->debugfs = NULL;
+}
+
+static int st7703_probe(struct mipi_dsi_device *dsi)
+{
+	struct device *dev = &dsi->dev;
+	struct st7703 *ctx;
+	int ret;
+
+	ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
+	if (!ctx)
+		return -ENOMEM;
+
+	ctx->reset_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
+	if (IS_ERR(ctx->reset_gpio)) {
+		dev_err(dev, "cannot get reset gpio\n");
+		return PTR_ERR(ctx->reset_gpio);
+	}
+
+	mipi_dsi_set_drvdata(dsi, ctx);
+
+	ctx->dev = dev;
+	ctx->desc = of_device_get_match_data(dev);
+
+	dsi->mode_flags = ctx->desc->mode_flags;
+	dsi->format = ctx->desc->format;
+	dsi->lanes = ctx->desc->lanes;
+
+	drm_panel_init(&ctx->panel, dev, &st7703_drm_funcs, DRM_MODE_CONNECTOR_DSI);
+
+	ret = drm_panel_of_backlight(&ctx->panel);
+	if (ret)
+		return ret;
+
+	drm_panel_add(&ctx->panel);
+
+	ret = mipi_dsi_attach(dsi);
+	if (ret < 0) {
+		dev_err(dev, "mipi_dsi_attach failed (%d). Is host ready?\n", ret);
+		drm_panel_remove(&ctx->panel);
+		return ret;
+	}
+
+	dev_info(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
+		 ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
+		 drm_mode_vrefresh(ctx->desc->mode),
+		 mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
+
+	st7703_debugfs_init(ctx);
+	return 0;
+}
+
+static void st7703_shutdown(struct mipi_dsi_device *dsi)
+{
+	struct st7703 *ctx = mipi_dsi_get_drvdata(dsi);
+	int ret;
+
+	ret = drm_panel_unprepare(&ctx->panel);
+	if (ret < 0)
+		dev_err(&dsi->dev, "Failed to unprepare panel: %d\n", ret);
+
+	ret = drm_panel_disable(&ctx->panel);
+	if (ret < 0)
+		dev_err(&dsi->dev, "Failed to disable panel: %d\n", ret);
+}
+
+static int st7703_remove(struct mipi_dsi_device *dsi)
+{
+	struct st7703 *ctx = mipi_dsi_get_drvdata(dsi);
+	int ret;
+
+	st7703_shutdown(dsi);
+
+	ret = mipi_dsi_detach(dsi);
+	if (ret < 0)
+		dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
+
+	drm_panel_remove(&ctx->panel);
+
+	st7703_debugfs_remove(ctx);
+
+	return 0;
+}
+
+static const struct of_device_id st7703_of_match[] = {
+	{ .compatible = "msc,avdtt101wxcn", .data = &avd_tt101wx_cn_101_a_desc },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, st7703_of_match);
+
+static struct mipi_dsi_driver st7703_driver = {
+	.probe	= st7703_probe,
+	.remove = st7703_remove,
+	.shutdown = st7703_shutdown,
+	.driver = {
+		.name = DRV_NAME,
+		.of_match_table = st7703_of_match,
+	},
+};
+module_mipi_dsi_driver(st7703_driver);
+
+MODULE_AUTHOR("Guido Günther <agx@sigxcpu.org>");
+MODULE_DESCRIPTION("DRM driver for Sitronix ST7703 based MIPI DSI panels");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -204,9 +204,8 @@
 	mipi_dsi_set_drvdata(dsi, ctx);
 	ctx->dsi = dsi;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = &dsi->dev;
-	ctx->panel.funcs = &feiyang_funcs;
+	drm_panel_init(&ctx->panel, &dsi->dev, &feiyang_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ctx->dvdd = devm_regulator_get(&dsi->dev, "dvdd");
 	if (IS_ERR(ctx->dvdd)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
@@ -895,9 +895,8 @@
 		ili->input = ili->conf->input;
 	}
 
-	drm_panel_init(&ili->panel);
-	ili->panel.dev = dev;
-	ili->panel.funcs = &ili9322_drm_funcs;
+	drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&ili->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -433,9 +433,8 @@
 	mipi_dsi_set_drvdata(dsi, ctx);
 	ctx->dsi = dsi;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = &dsi->dev;
-	ctx->panel.funcs = &ili9881c_funcs;
+	drm_panel_init(&ctx->panel, &dsi->dev, &ili9881c_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ctx->power = devm_regulator_get(&dsi->dev, "power");
 	if (IS_ERR(ctx->power)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -487,9 +487,8 @@
 	if (IS_ERR(innolux->backlight))
 		return PTR_ERR(innolux->backlight);
 
-	drm_panel_init(&innolux->base);
-	innolux->base.funcs = &innolux_panel_funcs;
-	innolux->base.dev = dev;
+	drm_panel_init(&innolux->base, dev, &innolux_panel_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	err = drm_panel_add(&innolux->base);
 	if (err < 0)
@@ -509,6 +508,7 @@
 static int innolux_panel_probe(struct mipi_dsi_device *dsi)
 {
 	const struct panel_desc *desc;
+	struct innolux_panel *innolux;
 	int err;
 
 	desc = of_device_get_match_data(&dsi->dev);
@@ -520,7 +520,14 @@
 	if (err < 0)
 		return err;
 
-	return mipi_dsi_attach(dsi);
+	err = mipi_dsi_attach(dsi);
+	if (err < 0) {
+		innolux = mipi_dsi_get_drvdata(dsi);
+		innolux_panel_del(innolux);
+		return err;
+	}
+
+	return 0;
 }
 
 static int innolux_panel_remove(struct mipi_dsi_device *dsi)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -437,9 +437,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&jdi->base);
-	jdi->base.funcs = &jdi_panel_funcs;
-	jdi->base.dev = &jdi->dsi->dev;
+	drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ret = drm_panel_add(&jdi->base);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -391,9 +391,8 @@
 	if (IS_ERR(kingdisplay->backlight))
 		return PTR_ERR(kingdisplay->backlight);
 
-	drm_panel_init(&kingdisplay->base);
-	kingdisplay->base.funcs = &kingdisplay_panel_funcs;
-	kingdisplay->base.dev = &kingdisplay->link->dev;
+	drm_panel_init(&kingdisplay->base, &kingdisplay->link->dev,
+		       &kingdisplay_panel_funcs, DRM_MODE_CONNECTOR_DSI);
 
 	return drm_panel_add(&kingdisplay->base);
 }
@@ -424,7 +423,13 @@
 	if (err < 0)
 		return err;
 
-	return mipi_dsi_attach(dsi);
+	err = mipi_dsi_attach(dsi);
+	if (err < 0) {
+		kingdisplay_panel_del(kingdisplay);
+		return err;
+	}
+
+	return 0;
 }
 
 static int kingdisplay_panel_remove(struct mipi_dsi_device *dsi)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-lg-lb035q02.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-lg-lb035q02.c
@@ -196,9 +196,8 @@
 	if (ret < 0)
 		return ret;
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = &lcd->spi->dev;
-	lcd->panel.funcs = &lb035q02_funcs;
+	drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&lcd->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-lg-lg4573.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-lg-lg4573.c
@@ -259,9 +259,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = &spi->dev;
-	ctx->panel.funcs = &lg4573_drm_funcs;
+	drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&ctx->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-lvds.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-lvds.c
@@ -197,7 +197,6 @@
 static int panel_lvds_probe(struct platform_device *pdev)
 {
 	struct panel_lvds *lvds;
-	struct device_node *np;
 	int ret;
 
 	lvds = devm_kzalloc(&pdev->dev, sizeof(*lvds), GFP_KERNEL);
@@ -243,14 +242,9 @@
 		return ret;
 	}
 
-	np = of_parse_phandle(lvds->dev->of_node, "backlight", 0);
-	if (np) {
-		lvds->backlight = of_find_backlight_by_node(np);
-		of_node_put(np);
-
-		if (!lvds->backlight)
-			return -EPROBE_DEFER;
-	}
+	lvds->backlight = devm_of_find_backlight(lvds->dev);
+	if (IS_ERR(lvds->backlight))
+		return PTR_ERR(lvds->backlight);
 
 	/*
 	 * TODO: Handle all power supplies specified in the DT node in a generic
@@ -260,20 +254,15 @@
 	 */
 
 	/* Register the panel. */
-	drm_panel_init(&lvds->panel);
-	lvds->panel.dev = lvds->dev;
-	lvds->panel.funcs = &panel_lvds_funcs;
+	drm_panel_init(&lvds->panel, lvds->dev, &panel_lvds_funcs,
+		       DRM_MODE_CONNECTOR_LVDS);
 
 	ret = drm_panel_add(&lvds->panel);
 	if (ret < 0)
-		goto error;
+		return ret;
 
 	dev_set_drvdata(lvds->dev, lvds);
 	return 0;
-
-error:
-	put_device(&lvds->backlight->dev);
-	return ret;
 }
 
 static int panel_lvds_remove(struct platform_device *pdev)
@@ -284,9 +273,6 @@
 
 	panel_lvds_disable(&lvds->panel);
 
-	if (lvds->backlight)
-		put_device(&lvds->backlight->dev);
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
@@ -205,9 +205,8 @@
 	if (ret < 0)
 		return ret;
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = &lcd->spi->dev;
-	lcd->panel.funcs = &nl8048_funcs;
+	drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&lcd->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-novatek-nt39016.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-novatek-nt39016.c
@@ -292,9 +292,8 @@
 		return err;
 	}
 
-	drm_panel_init(&panel->drm_panel);
-	panel->drm_panel.dev = dev;
-	panel->drm_panel.funcs = &nt39016_funcs;
+	drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	err = drm_panel_add(&panel->drm_panel);
 	if (err < 0) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -288,9 +288,8 @@
 	if (IS_ERR(lcd->backlight))
 		return PTR_ERR(lcd->backlight);
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = dev;
-	lcd->panel.funcs = &lcd_olinuxino_funcs;
+	drm_panel_init(&lcd->panel, dev, &lcd_olinuxino_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&lcd->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -455,12 +455,11 @@
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
 			  MIPI_DSI_MODE_LPM;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &otm8009a_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &otm8009a_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev),
-						     dsi->host->dev, ctx,
+						     dev, ctx,
 						     &otm8009a_backlight_ops,
 						     NULL);
 	if (IS_ERR(ctx->bl_dev)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
@@ -166,9 +166,8 @@
 	if (IS_ERR(osd101t2587->backlight))
 		return PTR_ERR(osd101t2587->backlight);
 
-	drm_panel_init(&osd101t2587->base);
-	osd101t2587->base.funcs = &osd101t2587_panel_funcs;
-	osd101t2587->base.dev = &osd101t2587->dsi->dev;
+	drm_panel_init(&osd101t2587->base, &osd101t2587->dsi->dev,
+		       &osd101t2587_panel_funcs, DRM_MODE_CONNECTOR_DSI);
 
 	return drm_panel_add(&osd101t2587->base);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -223,9 +223,8 @@
 			return -EPROBE_DEFER;
 	}
 
-	drm_panel_init(&wuxga_nt->base);
-	wuxga_nt->base.funcs = &wuxga_nt_panel_funcs;
-	wuxga_nt->base.dev = &wuxga_nt->dsi->dev;
+	drm_panel_init(&wuxga_nt->base, &wuxga_nt->dsi->dev,
+		       &wuxga_nt_panel_funcs, DRM_MODE_CONNECTOR_DSI);
 
 	ret = drm_panel_add(&wuxga_nt->base);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -232,7 +232,7 @@
 
 	ret = i2c_smbus_write_byte_data(ts->i2c, reg, val);
 	if (ret)
-		dev_err(&ts->dsi->dev, "I2C write failed: %d\n", ret);
+		dev_err(&ts->i2c->dev, "I2C write failed: %d\n", ret);
 }
 
 static int rpi_touchscreen_write(struct rpi_touchscreen *ts, u16 reg, u32 val)
@@ -268,7 +268,7 @@
 	return 0;
 }
 
-static int rpi_touchscreen_enable(struct drm_panel *panel)
+static int rpi_touchscreen_prepare(struct drm_panel *panel)
 {
 	struct rpi_touchscreen *ts = panel_to_ts(panel);
 	int i;
@@ -298,6 +298,13 @@
 	rpi_touchscreen_write(ts, DSI_STARTDSI, 0x01);
 	msleep(100);
 
+	return 0;
+}
+
+static int rpi_touchscreen_enable(struct drm_panel *panel)
+{
+	struct rpi_touchscreen *ts = panel_to_ts(panel);
+
 	/* Turn on the backlight. */
 	rpi_touchscreen_i2c_write(ts, REG_PWM, 255);
 
@@ -352,7 +359,7 @@
 static const struct drm_panel_funcs rpi_touchscreen_funcs = {
 	.disable = rpi_touchscreen_disable,
 	.unprepare = rpi_touchscreen_noop,
-	.prepare = rpi_touchscreen_noop,
+	.prepare = rpi_touchscreen_prepare,
 	.enable = rpi_touchscreen_enable,
 	.get_modes = rpi_touchscreen_get_modes,
 };
@@ -426,8 +433,8 @@
 		return PTR_ERR(ts->dsi);
 	}
 
-	ts->base.dev = dev;
-	ts->base.funcs = &rpi_touchscreen_funcs;
+	drm_panel_init(&ts->base, dev, &rpi_touchscreen_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	/* This appears last, as it's what will unblock the DSI host
 	 * driver's component bind function.
@@ -452,7 +459,6 @@
 	drm_panel_remove(&ts->base);
 
 	mipi_dsi_device_unregister(ts->dsi);
-	kfree(ts->dsi);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-raydium-rm67191.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-raydium-rm67191.c
@@ -606,9 +606,8 @@
 	if (ret)
 		return ret;
 
-	drm_panel_init(&panel->panel);
-	panel->panel.funcs = &rad_panel_funcs;
-	panel->panel.dev = dev;
+	drm_panel_init(&panel->panel, dev, &rad_panel_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 	dev_set_drvdata(dev, panel);
 
 	ret = drm_panel_add(&panel->panel);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-raydium-rm68200.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-raydium-rm68200.c
@@ -404,9 +404,8 @@
 	dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
 			  MIPI_DSI_MODE_LPM;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &rm68200_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &rm68200_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	drm_panel_add(&ctx->panel);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
@@ -343,9 +343,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &jh057n_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	drm_panel_add(&ctx->panel);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -173,9 +173,8 @@
 	mipi_dsi_set_drvdata(dsi, ctx);
 	ctx->dsi = dsi;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = &dsi->dev;
-	ctx->panel.funcs = &rb070d30_panel_funcs;
+	drm_panel_init(&ctx->panel, &dsi->dev, &rb070d30_panel_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ctx->gpios.reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
 	if (IS_ERR(ctx->gpios.reset)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -351,9 +351,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &ld9040_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&ctx->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
@@ -215,9 +215,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&s6->panel);
-	s6->panel.dev = dev;
-	s6->panel.funcs = &s6d16d0_drm_funcs;
+	drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ret = drm_panel_add(&s6->panel);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -732,9 +732,8 @@
 	ctx->bl_dev->props.brightness = S6E3HA2_DEFAULT_BRIGHTNESS;
 	ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &s6e3ha2_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ret = drm_panel_add(&ctx->panel);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -466,9 +466,8 @@
 		return PTR_ERR(ctx->reset_gpio);
 	}
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &s6e63j0x03_funcs;
+	drm_panel_init(&ctx->panel, dev, &s6e63j0x03_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx,
 						&s6e63j0x03_bl_ops, NULL);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
@@ -473,9 +473,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &s6e63m0_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &s6e63m0_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	ret = s6e63m0_backlight_register(ctx);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -1017,9 +1017,8 @@
 
 	ctx->brightness = GAMMA_LEVEL_NUM - 1;
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &s6e8aa0_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	ret = drm_panel_add(&ctx->panel);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -274,9 +274,8 @@
 			return -EPROBE_DEFER;
 	}
 
-	drm_panel_init(&panel->base);
-	panel->base.dev = dev;
-	panel->base.funcs = &seiko_panel_funcs;
+	drm_panel_init(&panel->base, dev, &seiko_panel_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	err = drm_panel_add(&panel->base);
 	if (err < 0)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -329,9 +329,8 @@
 	if (IS_ERR(sharp->backlight))
 		return PTR_ERR(sharp->backlight);
 
-	drm_panel_init(&sharp->base);
-	sharp->base.funcs = &sharp_panel_funcs;
-	sharp->base.dev = &sharp->link1->dev;
+	drm_panel_init(&sharp->base, &sharp->link1->dev, &sharp_panel_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	return drm_panel_add(&sharp->base);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
@@ -185,9 +185,8 @@
 		return PTR_ERR(lcd->ud_gpio);
 	}
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = &pdev->dev;
-	lcd->panel.funcs = &ls037v7dw01_funcs;
+	drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&lcd->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -264,9 +264,8 @@
 	if (IS_ERR(sharp_nt->backlight))
 		return PTR_ERR(sharp_nt->backlight);
 
-	drm_panel_init(&sharp_nt->base);
-	sharp_nt->base.funcs = &sharp_nt_panel_funcs;
-	sharp_nt->base.dev = &sharp_nt->dsi->dev;
+	drm_panel_init(&sharp_nt->base, &sharp_nt->dsi->dev,
+		       &sharp_nt_panel_funcs, DRM_MODE_CONNECTOR_DSI);
 
 	return drm_panel_add(&sharp_nt->base);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-simple.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-simple.c
@@ -94,6 +94,7 @@
 
 	u32 bus_format;
 	u32 bus_flags;
+	int connector_type;
 };
 
 struct panel_simple {
@@ -464,9 +465,8 @@
 	if (!of_get_display_timing(dev->of_node, "panel-timing", &dt))
 		panel_simple_parse_panel_timing_node(dev, panel, &dt);
 
-	drm_panel_init(&panel->base);
-	panel->base.dev = dev;
-	panel->base.funcs = &panel_simple_funcs;
+	drm_panel_init(&panel->base, dev, &panel_simple_funcs,
+		       desc->connector_type);
 
 	err = drm_panel_add(&panel->base);
 	if (err < 0)
@@ -531,8 +531,8 @@
 	.num_modes = 1,
 	.bpc = 8,
 	.size = {
-		.width = 105,
-		.height = 67,
+		.width = 99,
+		.height = 58,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
 };
@@ -833,6 +833,7 @@
 		.unprepare = 1000,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing auo_g185han01_timings = {
@@ -862,6 +863,7 @@
 		.unprepare = 1000,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing auo_p320hvn03_timings = {
@@ -890,6 +892,7 @@
 		.unprepare = 500,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode auo_t215hvn01_mode = {
@@ -916,7 +919,9 @@
 	.delay = {
 		.disable = 5,
 		.unprepare = 1000,
-	}
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode avic_tm070ddh03_mode = {
@@ -1178,6 +1183,31 @@
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 };
 
+static const struct drm_display_mode dlc_dlc0430dcp10rf_2_mode = {
+	.clock = 33300,
+	.hdisplay = 800,
+	.hsync_start = 800 + 40,
+	.hsync_end = 800 + 10 + 40,
+	.htotal = 800 + 30 + 40 + 10,
+	.vdisplay = 480,
+	.vsync_start = 480 + 8,
+	.vsync_end = 480 + 5 + 8,
+	.vtotal = 480 + 31 + 8 + 5,
+	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+};
+
+static const struct panel_desc dlc_dlc0430dcp10rf_2 = {
+	.modes = &dlc_dlc0430dcp10rf_2_mode,
+	.num_modes = 1,
+	.bpc = 8,
+	.size = {
+		.width = 120,
+		.height = 76,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_POSEDGE,
+};
+
 static const struct display_timing dlc_dlc0700yzg_1_timing = {
 	.pixelclock = { 45000000, 51200000, 57000000 },
 	.hactive = { 1024, 1024, 1024 },
@@ -1205,6 +1235,7 @@
 		.disable = 200,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing dlc_dlc1010gig_timing = {
@@ -1235,6 +1266,7 @@
 		.unprepare = 60,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode edt_et035012dm6_mode = {
@@ -1501,6 +1533,7 @@
 		.height = 94,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing hannstar_hsd100pxn1_timing = {
@@ -1525,6 +1558,7 @@
 		.height = 152,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
@@ -1577,6 +1611,7 @@
 		.height = 54,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.connector_type = DRM_MODE_CONNECTOR_DPI,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 };
 
@@ -1619,7 +1654,7 @@
 static const struct panel_desc innolux_g070y2_l01 = {
 	.timings = &innolux_g070y2_l01_timing,
 	.num_timings = 1,
-	.bpc = 6,
+	.bpc = 8,
 	.size = {
 		.width = 152,
 		.height = 91,
@@ -1631,6 +1666,7 @@
 		.unprepare = 800,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing innolux_g101ice_l01_timing = {
@@ -1659,6 +1695,7 @@
 		.disable = 200,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing innolux_g121i1_l01_timing = {
@@ -1686,6 +1723,7 @@
 		.disable = 20,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode innolux_g121x1_l03_mode = {
@@ -1869,6 +1907,7 @@
 		.height = 109,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing kyo_tcg121xglp_timing = {
@@ -1893,6 +1932,7 @@
 		.height = 184,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode lemaker_bl035_rgb_002_mode = {
@@ -1935,12 +1975,13 @@
 static const struct panel_desc lg_lb070wv8 = {
 	.modes = &lg_lb070wv8_mode,
 	.num_modes = 1,
-	.bpc = 16,
+	.bpc = 8,
 	.size = {
 		.width = 151,
 		.height = 91,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
@@ -2048,6 +2089,40 @@
 	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
 };
 
+static const struct drm_display_mode logicpd_type_28_mode = {
+	.clock = 9000,
+	.hdisplay = 480,
+	.hsync_start = 480 + 3,
+	.hsync_end = 480 + 3 + 42,
+	.htotal = 480 + 3 + 42 + 2,
+
+	.vdisplay = 272,
+	.vsync_start = 272 + 2,
+	.vsync_end = 272 + 2 + 11,
+	.vtotal = 272 + 2 + 11 + 3,
+	.vrefresh = 60,
+	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+};
+
+static const struct panel_desc logicpd_type_28 = {
+	.modes = &logicpd_type_28_mode,
+	.num_modes = 1,
+	.bpc = 8,
+	.size = {
+		.width = 105,
+		.height = 67,
+	},
+	.delay = {
+		.prepare = 200,
+		.enable = 200,
+		.unprepare = 200,
+		.disable = 200,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
+		     DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE,
+};
+
 static const struct panel_desc mitsubishi_aa070mc01 = {
 	.modes = &mitsubishi_aa070mc01_mode,
 	.num_modes = 1,
@@ -2063,6 +2138,7 @@
 		.disable = 400,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
 };
 
@@ -2091,6 +2167,7 @@
 		.disable = 50,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode nec_nl4827hc19_05b_mode = {
@@ -2193,6 +2270,7 @@
 		.unprepare = 500,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode nvd_9128_mode = {
@@ -2216,6 +2294,7 @@
 		.height = 88,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing okaya_rs800480t_7x0gp_timing = {
@@ -2348,12 +2427,12 @@
 static const struct panel_desc ortustech_com43h4m85ulc = {
 	.modes = &ortustech_com43h4m85ulc_mode,
 	.num_modes = 1,
-	.bpc = 8,
+	.bpc = 6,
 	.size = {
 		.width = 56,
 		.height = 93,
 	},
-	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
 };
 
@@ -2628,6 +2707,7 @@
 		.height = 136,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing sharp_lq123p1jx31_timing = {
@@ -2807,6 +2887,7 @@
 		.height = 95,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct display_timing tianma_tm070rvhg71_timing = {
@@ -2831,6 +2912,7 @@
 		.height = 86,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode ti_nspire_cx_lcd_mode[] = {
@@ -2913,6 +2995,7 @@
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
 	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct drm_display_mode tpk_f07a_0102_mode = {
@@ -2983,6 +3066,7 @@
 		.height = 91,
 	},
 	.bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
 static const struct panel_desc urt_umsh_8596md_parallel = {
@@ -3156,6 +3240,9 @@
 	}, {
 		.compatible = "dataimage,scf0700c48ggu18",
 		.data = &dataimage_scf0700c48ggu18,
+	},{
+		.compatible = "dlc,dlc0430dcp10rf-2",
+		.data = &dlc_dlc0430dcp10rf_2,
 	}, {
 		.compatible = "dlc,dlc0700yzg-1",
 		.data = &dlc_dlc0700yzg_1,
@@ -3265,6 +3352,9 @@
 		.compatible = "lg,lp129qe",
 		.data = &lg_lp129qe,
 	}, {
+		.compatible = "logicpd,type28",
+		.data = &logicpd_type_28,
+	}, {
 		.compatible = "mitsubishi,aa070mc01-ca1",
 		.data = &mitsubishi_aa070mc01,
 	}, {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-sitronix-st7701.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-sitronix-st7701.c
@@ -369,7 +369,8 @@
 	if (IS_ERR(st7701->backlight))
 		return PTR_ERR(st7701->backlight);
 
-	drm_panel_init(&st7701->panel);
+	drm_panel_init(&st7701->panel, &dsi->dev, &st7701_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 
 	/**
 	 * Once sleep out has been issued, ST7701 IC required to wait 120ms
@@ -381,8 +382,6 @@
 	 * ts8550b and there is no valid documentation for that.
 	 */
 	st7701->sleep_delay = 120 + desc->panel_sleep_delay;
-	st7701->panel.funcs = &st7701_funcs;
-	st7701->panel.dev = &dsi->dev;
 
 	ret = drm_panel_add(&st7701->panel);
 	if (ret < 0)
@@ -392,7 +391,15 @@
 	st7701->dsi = dsi;
 	st7701->desc = desc;
 
-	return mipi_dsi_attach(dsi);
+	ret = mipi_dsi_attach(dsi);
+	if (ret)
+		goto err_attach;
+
+	return 0;
+
+err_attach:
+	drm_panel_remove(&st7701->panel);
+	return ret;
 }
 
 static int st7701_dsi_remove(struct mipi_dsi_device *dsi)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -381,8 +381,8 @@
 	spi_set_drvdata(spi, ctx);
 	ctx->spi = spi;
 
-	ctx->panel.dev = &spi->dev;
-	ctx->panel.funcs = &st7789v_drm_funcs;
+	drm_panel_init(&ctx->panel, &spi->dev, &st7789v_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	ctx->power = devm_regulator_get(&spi->dev, "power");
 	if (IS_ERR(ctx->power))
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-sony-acx565akm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-sony-acx565akm.c
@@ -648,9 +648,8 @@
 			return ret;
 	}
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = &lcd->spi->dev;
-	lcd->panel.funcs = &acx565akm_funcs;
+	drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	ret = drm_panel_add(&lcd->panel);
 	if (ret < 0) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
@@ -347,9 +347,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = &lcd->spi->dev;
-	lcd->panel.funcs = &td028ttec1_funcs;
+	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td028ttec1_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	return drm_panel_add(&lcd->panel);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
@@ -458,9 +458,8 @@
 		return ret;
 	}
 
-	drm_panel_init(&lcd->panel);
-	lcd->panel.dev = &lcd->spi->dev;
-	lcd->panel.funcs = &td043mtea1_funcs;
+	drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 
 	ret = drm_panel_add(&lcd->panel);
 	if (ret < 0) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-tpo-tpg110.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-tpo-tpg110.c
@@ -457,9 +457,8 @@
 	if (ret)
 		return ret;
 
-	drm_panel_init(&tpg->panel);
-	tpg->panel.dev = dev;
-	tpg->panel.funcs = &tpg110_drm_funcs;
+	drm_panel_init(&tpg->panel, dev, &tpg110_drm_funcs,
+		       DRM_MODE_CONNECTOR_DPI);
 	spi_set_drvdata(spi, tpg);
 
 	return drm_panel_add(&tpg->panel);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panel/panel-truly-nt35597.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panel/panel-truly-nt35597.c
@@ -518,9 +518,8 @@
 	/* dual port */
 	gpiod_set_value(ctx->mode_gpio, 0);
 
-	drm_panel_init(&ctx->panel);
-	ctx->panel.dev = dev;
-	ctx->panel.funcs = &truly_nt35597_drm_funcs;
+	drm_panel_init(&ctx->panel, dev, &truly_nt35597_drm_funcs,
+		       DRM_MODE_CONNECTOR_DSI);
 	drm_panel_add(&ctx->panel);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/Kconfig
@@ -3,7 +3,8 @@
 config DRM_PANFROST
 	tristate "Panfrost (DRM support for ARM Mali Midgard/Bifrost GPUs)"
 	depends on DRM
-	depends on ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64)
+	depends on ARM || ARM64 || COMPILE_TEST
+	depends on !GENERIC_ATOMIC64    # for IOMMU_IO_PGTABLE_LPAE
 	depends on MMU
 	select DRM_SCHED
 	select IOMMU_SUPPORT
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_devfreq.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_devfreq.c
@@ -53,8 +53,10 @@
 	if (err) {
 		dev_err(dev, "Cannot set frequency %lu (%d)\n", target_rate,
 			err);
-		regulator_set_voltage(pfdev->regulator, pfdev->devfreq.cur_volt,
-				      pfdev->devfreq.cur_volt);
+		if (pfdev->regulator)
+			regulator_set_voltage(pfdev->regulator,
+					      pfdev->devfreq.cur_volt,
+					      pfdev->devfreq.cur_volt);
 		return err;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_device.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_device.c
@@ -59,7 +59,8 @@
 	if (IS_ERR(pfdev->bus_clock)) {
 		dev_err(pfdev->dev, "get bus_clock failed %ld\n",
 			PTR_ERR(pfdev->bus_clock));
-		return PTR_ERR(pfdev->bus_clock);
+		err = PTR_ERR(pfdev->bus_clock);
+		goto disable_clock;
 	}
 
 	if (pfdev->bus_clock) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -78,8 +78,10 @@
 static int panfrost_ioctl_create_bo(struct drm_device *dev, void *data,
 		struct drm_file *file)
 {
+	struct panfrost_file_priv *priv = file->driver_priv;
 	struct panfrost_gem_object *bo;
 	struct drm_panfrost_create_bo *args = data;
+	struct panfrost_gem_mapping *mapping;
 
 	if (!args->size || args->pad ||
 	    (args->flags & ~(PANFROST_BO_NOEXEC | PANFROST_BO_HEAP)))
@@ -95,7 +97,14 @@
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
-	args->offset = bo->node.start << PAGE_SHIFT;
+	mapping = panfrost_gem_mapping_get(bo, priv);
+	if (!mapping) {
+		drm_gem_object_put_unlocked(&bo->base.base);
+		return -EINVAL;
+	}
+
+	args->offset = mapping->mmnode.start << PAGE_SHIFT;
+	panfrost_gem_mapping_put(mapping);
 
 	return 0;
 }
@@ -119,6 +128,11 @@
 		  struct drm_panfrost_submit *args,
 		  struct panfrost_job *job)
 {
+	struct panfrost_file_priv *priv = file_priv->driver_priv;
+	struct panfrost_gem_object *bo;
+	unsigned int i;
+	int ret;
+
 	job->bo_count = args->bo_handle_count;
 
 	if (!job->bo_count)
@@ -130,9 +144,33 @@
 	if (!job->implicit_fences)
 		return -ENOMEM;
 
-	return drm_gem_objects_lookup(file_priv,
-				      (void __user *)(uintptr_t)args->bo_handles,
-				      job->bo_count, &job->bos);
+	ret = drm_gem_objects_lookup(file_priv,
+				     (void __user *)(uintptr_t)args->bo_handles,
+				     job->bo_count, &job->bos);
+	if (ret)
+		return ret;
+
+	job->mappings = kvmalloc_array(job->bo_count,
+				       sizeof(struct panfrost_gem_mapping *),
+				       GFP_KERNEL | __GFP_ZERO);
+	if (!job->mappings)
+		return -ENOMEM;
+
+	for (i = 0; i < job->bo_count; i++) {
+		struct panfrost_gem_mapping *mapping;
+
+		bo = to_panfrost_bo(job->bos[i]);
+		mapping = panfrost_gem_mapping_get(bo, priv);
+		if (!mapping) {
+			ret = -EINVAL;
+			break;
+		}
+
+		atomic_inc(&bo->gpu_usecount);
+		job->mappings[i] = mapping;
+	}
+
+	return ret;
 }
 
 /**
@@ -303,21 +341,26 @@
 	}
 
 	/* Don't allow mmapping of heap objects as pages are not pinned. */
-	if (to_panfrost_bo(gem_obj)->is_heap)
-		return -EINVAL;
+	if (to_panfrost_bo(gem_obj)->is_heap) {
+		ret = -EINVAL;
+		goto out;
+	}
 
 	ret = drm_gem_create_mmap_offset(gem_obj);
 	if (ret == 0)
 		args->offset = drm_vma_node_offset_addr(&gem_obj->vma_node);
-	drm_gem_object_put_unlocked(gem_obj);
 
+out:
+	drm_gem_object_put_unlocked(gem_obj);
 	return ret;
 }
 
 static int panfrost_ioctl_get_bo_offset(struct drm_device *dev, void *data,
 			    struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *priv = file_priv->driver_priv;
 	struct drm_panfrost_get_bo_offset *args = data;
+	struct panfrost_gem_mapping *mapping;
 	struct drm_gem_object *gem_obj;
 	struct panfrost_gem_object *bo;
 
@@ -328,18 +371,26 @@
 	}
 	bo = to_panfrost_bo(gem_obj);
 
-	args->offset = bo->node.start << PAGE_SHIFT;
-
+	mapping = panfrost_gem_mapping_get(bo, priv);
 	drm_gem_object_put_unlocked(gem_obj);
+
+	if (!mapping)
+		return -EINVAL;
+
+	args->offset = mapping->mmnode.start << PAGE_SHIFT;
+	panfrost_gem_mapping_put(mapping);
 	return 0;
 }
 
 static int panfrost_ioctl_madvise(struct drm_device *dev, void *data,
 				  struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *priv = file_priv->driver_priv;
 	struct drm_panfrost_madvise *args = data;
 	struct panfrost_device *pfdev = dev->dev_private;
 	struct drm_gem_object *gem_obj;
+	struct panfrost_gem_object *bo;
+	int ret = 0;
 
 	gem_obj = drm_gem_object_lookup(file_priv, args->handle);
 	if (!gem_obj) {
@@ -347,23 +398,48 @@
 		return -ENOENT;
 	}
 
-	args->retained = drm_gem_shmem_madvise(gem_obj, args->madv);
+	bo = to_panfrost_bo(gem_obj);
 
-	if (args->retained) {
-		struct panfrost_gem_object *bo = to_panfrost_bo(gem_obj);
+	mutex_lock(&pfdev->shrinker_lock);
+	mutex_lock(&bo->mappings.lock);
+	if (args->madv == PANFROST_MADV_DONTNEED) {
+		struct panfrost_gem_mapping *first;
+
+		first = list_first_entry(&bo->mappings.list,
+					 struct panfrost_gem_mapping,
+					 node);
+
+		/*
+		 * If we want to mark the BO purgeable, there must be only one
+		 * user: the caller FD.
+		 * We could do something smarter and mark the BO purgeable only
+		 * when all its users have marked it purgeable, but globally
+		 * visible/shared BOs are likely to never be marked purgeable
+		 * anyway, so let's not bother.
+		 */
+		if (!list_is_singular(&bo->mappings.list) ||
+		    WARN_ON_ONCE(first->mmu != &priv->mmu)) {
+			ret = -EINVAL;
+			goto out_unlock_mappings;
+		}
+	}
 
-		mutex_lock(&pfdev->shrinker_lock);
+	args->retained = drm_gem_shmem_madvise(gem_obj, args->madv);
 
+	if (args->retained) {
 		if (args->madv == PANFROST_MADV_DONTNEED)
-			list_add_tail(&bo->base.madv_list, &pfdev->shrinker_list);
+			list_move_tail(&bo->base.madv_list,
+				       &pfdev->shrinker_list);
 		else if (args->madv == PANFROST_MADV_WILLNEED)
 			list_del_init(&bo->base.madv_list);
-
-		mutex_unlock(&pfdev->shrinker_lock);
 	}
 
+out_unlock_mappings:
+	mutex_unlock(&bo->mappings.lock);
+	mutex_unlock(&pfdev->shrinker_lock);
+
 	drm_gem_object_put_unlocked(gem_obj);
-	return 0;
+	return ret;
 }
 
 int panfrost_unstable_ioctl_check(void)
@@ -443,7 +519,7 @@
 {
 	struct panfrost_file_priv *panfrost_priv = file->driver_priv;
 
-	panfrost_perfcnt_close(panfrost_priv);
+	panfrost_perfcnt_close(file);
 	panfrost_job_close(panfrost_priv);
 
 	panfrost_mmu_pgtable_free(panfrost_priv);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_gem.c
@@ -19,6 +19,22 @@
 	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
 	struct panfrost_device *pfdev = obj->dev->dev_private;
 
+	/*
+	 * Make sure the BO is no longer inserted in the shrinker list before
+	 * taking care of the destruction itself. If we don't do that we have a
+	 * race condition between this function and what's done in
+	 * panfrost_gem_shrinker_scan().
+	 */
+	mutex_lock(&pfdev->shrinker_lock);
+	list_del_init(&bo->base.madv_list);
+	mutex_unlock(&pfdev->shrinker_lock);
+
+	/*
+	 * If we still have mappings attached to the BO, there's a problem in
+	 * our refcounting.
+	 */
+	WARN_ON_ONCE(!list_empty(&bo->mappings.list));
+
 	if (bo->sgts) {
 		int i;
 		int n_sgt = bo->base.base.size / SZ_2M;
@@ -30,18 +46,74 @@
 				sg_free_table(&bo->sgts[i]);
 			}
 		}
-		kfree(bo->sgts);
+		kvfree(bo->sgts);
 	}
 
-	mutex_lock(&pfdev->shrinker_lock);
-	if (!list_empty(&bo->base.madv_list))
-		list_del(&bo->base.madv_list);
-	mutex_unlock(&pfdev->shrinker_lock);
-
 	drm_gem_shmem_free_object(obj);
 }
 
-static int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv)
+struct panfrost_gem_mapping *
+panfrost_gem_mapping_get(struct panfrost_gem_object *bo,
+			 struct panfrost_file_priv *priv)
+{
+	struct panfrost_gem_mapping *iter, *mapping = NULL;
+
+	mutex_lock(&bo->mappings.lock);
+	list_for_each_entry(iter, &bo->mappings.list, node) {
+		if (iter->mmu == &priv->mmu) {
+			kref_get(&iter->refcount);
+			mapping = iter;
+			break;
+		}
+	}
+	mutex_unlock(&bo->mappings.lock);
+
+	return mapping;
+}
+
+static void
+panfrost_gem_teardown_mapping(struct panfrost_gem_mapping *mapping)
+{
+	struct panfrost_file_priv *priv;
+
+	if (mapping->active)
+		panfrost_mmu_unmap(mapping);
+
+	priv = container_of(mapping->mmu, struct panfrost_file_priv, mmu);
+	spin_lock(&priv->mm_lock);
+	if (drm_mm_node_allocated(&mapping->mmnode))
+		drm_mm_remove_node(&mapping->mmnode);
+	spin_unlock(&priv->mm_lock);
+}
+
+static void panfrost_gem_mapping_release(struct kref *kref)
+{
+	struct panfrost_gem_mapping *mapping;
+
+	mapping = container_of(kref, struct panfrost_gem_mapping, refcount);
+
+	panfrost_gem_teardown_mapping(mapping);
+	drm_gem_object_put_unlocked(&mapping->obj->base.base);
+	kfree(mapping);
+}
+
+void panfrost_gem_mapping_put(struct panfrost_gem_mapping *mapping)
+{
+	if (!mapping)
+		return;
+
+	kref_put(&mapping->refcount, panfrost_gem_mapping_release);
+}
+
+void panfrost_gem_teardown_mappings_locked(struct panfrost_gem_object *bo)
+{
+	struct panfrost_gem_mapping *mapping;
+
+	list_for_each_entry(mapping, &bo->mappings.list, node)
+		panfrost_gem_teardown_mapping(mapping);
+}
+
+int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv)
 {
 	int ret;
 	size_t size = obj->size;
@@ -49,6 +121,16 @@
 	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
 	unsigned long color = bo->noexec ? PANFROST_BO_NOEXEC : 0;
 	struct panfrost_file_priv *priv = file_priv->driver_priv;
+	struct panfrost_gem_mapping *mapping;
+
+	mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+	if (!mapping)
+		return -ENOMEM;
+
+	INIT_LIST_HEAD(&mapping->node);
+	kref_init(&mapping->refcount);
+	drm_gem_object_get(obj);
+	mapping->obj = bo;
 
 	/*
 	 * Executable buffers cannot cross a 16MB boundary as the program
@@ -61,37 +143,48 @@
 	else
 		align = size >= SZ_2M ? SZ_2M >> PAGE_SHIFT : 0;
 
-	bo->mmu = &priv->mmu;
+	mapping->mmu = &priv->mmu;
 	spin_lock(&priv->mm_lock);
-	ret = drm_mm_insert_node_generic(&priv->mm, &bo->node,
+	ret = drm_mm_insert_node_generic(&priv->mm, &mapping->mmnode,
 					 size >> PAGE_SHIFT, align, color, 0);
 	spin_unlock(&priv->mm_lock);
 	if (ret)
-		return ret;
+		goto err;
 
 	if (!bo->is_heap) {
-		ret = panfrost_mmu_map(bo);
-		if (ret) {
-			spin_lock(&priv->mm_lock);
-			drm_mm_remove_node(&bo->node);
-			spin_unlock(&priv->mm_lock);
-		}
+		ret = panfrost_mmu_map(mapping);
+		if (ret)
+			goto err;
 	}
+
+	mutex_lock(&bo->mappings.lock);
+	WARN_ON(bo->base.madv != PANFROST_MADV_WILLNEED);
+	list_add_tail(&mapping->node, &bo->mappings.list);
+	mutex_unlock(&bo->mappings.lock);
+
+err:
+	if (ret)
+		panfrost_gem_mapping_put(mapping);
 	return ret;
 }
 
-static void panfrost_gem_close(struct drm_gem_object *obj, struct drm_file *file_priv)
+void panfrost_gem_close(struct drm_gem_object *obj, struct drm_file *file_priv)
 {
-	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
 	struct panfrost_file_priv *priv = file_priv->driver_priv;
+	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
+	struct panfrost_gem_mapping *mapping = NULL, *iter;
 
-	if (bo->is_mapped)
-		panfrost_mmu_unmap(bo);
+	mutex_lock(&bo->mappings.lock);
+	list_for_each_entry(iter, &bo->mappings.list, node) {
+		if (iter->mmu == &priv->mmu) {
+			mapping = iter;
+			list_del(&iter->node);
+			break;
+		}
+	}
+	mutex_unlock(&bo->mappings.lock);
 
-	spin_lock(&priv->mm_lock);
-	if (drm_mm_node_allocated(&bo->node))
-		drm_mm_remove_node(&bo->node);
-	spin_unlock(&priv->mm_lock);
+	panfrost_gem_mapping_put(mapping);
 }
 
 static int panfrost_gem_pin(struct drm_gem_object *obj)
@@ -131,6 +224,8 @@
 	if (!obj)
 		return NULL;
 
+	INIT_LIST_HEAD(&obj->mappings.list);
+	mutex_init(&obj->mappings.lock);
 	obj->base.base.funcs = &panfrost_gem_funcs;
 
 	return &obj->base.base;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gem.h
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_gem.h
@@ -13,23 +13,52 @@
 	struct drm_gem_shmem_object base;
 	struct sg_table *sgts;
 
-	struct panfrost_mmu *mmu;
-	struct drm_mm_node node;
-	bool is_mapped		:1;
+	/*
+	 * Use a list for now. If searching a mapping ever becomes the
+	 * bottleneck, we should consider using an RB-tree, or even better,
+	 * let the core store drm_gem_object_mapping entries (where we
+	 * could place driver specific data) instead of drm_gem_object ones
+	 * in its drm_file->object_idr table.
+	 *
+	 * struct drm_gem_object_mapping {
+	 *	struct drm_gem_object *obj;
+	 *	void *driver_priv;
+	 * };
+	 */
+	struct {
+		struct list_head list;
+		struct mutex lock;
+	} mappings;
+
+	/*
+	 * Count the number of jobs referencing this BO so we don't let the
+	 * shrinker reclaim this object prematurely.
+	 */
+	atomic_t gpu_usecount;
+
 	bool noexec		:1;
 	bool is_heap		:1;
 };
 
+struct panfrost_gem_mapping {
+	struct list_head node;
+	struct kref refcount;
+	struct panfrost_gem_object *obj;
+	struct drm_mm_node mmnode;
+	struct panfrost_mmu *mmu;
+	bool active		:1;
+};
+
 static inline
 struct  panfrost_gem_object *to_panfrost_bo(struct drm_gem_object *obj)
 {
 	return container_of(to_drm_gem_shmem_obj(obj), struct panfrost_gem_object, base);
 }
 
-static inline
-struct  panfrost_gem_object *drm_mm_node_to_panfrost_bo(struct drm_mm_node *node)
+static inline struct panfrost_gem_mapping *
+drm_mm_node_to_panfrost_mapping(struct drm_mm_node *node)
 {
-	return container_of(node, struct panfrost_gem_object, node);
+	return container_of(node, struct panfrost_gem_mapping, mmnode);
 }
 
 struct drm_gem_object *panfrost_gem_create_object(struct drm_device *dev, size_t size);
@@ -45,6 +74,16 @@
 				u32 flags,
 				uint32_t *handle);
 
+int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv);
+void panfrost_gem_close(struct drm_gem_object *obj,
+			struct drm_file *file_priv);
+
+struct panfrost_gem_mapping *
+panfrost_gem_mapping_get(struct panfrost_gem_object *bo,
+			 struct panfrost_file_priv *priv);
+void panfrost_gem_mapping_put(struct panfrost_gem_mapping *mapping);
+void panfrost_gem_teardown_mappings_locked(struct panfrost_gem_object *bo);
+
 void panfrost_gem_shrinker_init(struct drm_device *dev);
 void panfrost_gem_shrinker_cleanup(struct drm_device *dev);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c
@@ -39,15 +39,27 @@
 static bool panfrost_gem_purge(struct drm_gem_object *obj)
 {
 	struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
+	struct panfrost_gem_object *bo = to_panfrost_bo(obj);
+	bool ret = false;
 
-	if (!mutex_trylock(&shmem->pages_lock))
+	if (atomic_read(&bo->gpu_usecount))
+		return false;
+
+	if (!mutex_trylock(&bo->mappings.lock))
 		return false;
 
-	panfrost_mmu_unmap(to_panfrost_bo(obj));
+	if (!mutex_trylock(&shmem->pages_lock))
+		goto unlock_mappings;
+
+	panfrost_gem_teardown_mappings_locked(bo);
 	drm_gem_shmem_purge_locked(obj);
+	ret = true;
 
 	mutex_unlock(&shmem->pages_lock);
-	return true;
+
+unlock_mappings:
+	mutex_unlock(&bo->mappings.lock);
+	return ret;
 }
 
 static unsigned long
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -75,6 +75,17 @@
 	return 0;
 }
 
+void panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev)
+{
+	/*
+	 * The Amlogic integrated Mali-T820, Mali-G31 & Mali-G52 needs
+	 * these undocumented bits in GPU_PWR_OVERRIDE1 to be set in order
+	 * to operate correctly.
+	 */
+	gpu_write(pfdev, GPU_PWR_KEY, GPU_PWR_KEY_UNLOCK);
+	gpu_write(pfdev, GPU_PWR_OVERRIDE1, 0xfff | (0x20 << 16));
+}
+
 static void panfrost_gpu_init_quirks(struct panfrost_device *pfdev)
 {
 	u32 quirks = 0;
@@ -304,6 +315,8 @@
 	int ret;
 	u32 val;
 
+	panfrost_gpu_init_quirks(pfdev);
+
 	/* Just turn on everything for now */
 	gpu_write(pfdev, L2_PWRON_LO, pfdev->features.l2_present);
 	ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
@@ -357,7 +370,6 @@
 		return err;
 	}
 
-	panfrost_gpu_init_quirks(pfdev);
 	panfrost_gpu_power_on(pfdev);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_gpu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_gpu.h
@@ -16,4 +16,6 @@
 void panfrost_gpu_power_on(struct panfrost_device *pfdev);
 void panfrost_gpu_power_off(struct panfrost_device *pfdev);
 
+void panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev);
+
 #endif
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_job.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -269,9 +269,25 @@
 	dma_fence_put(job->done_fence);
 	dma_fence_put(job->render_done_fence);
 
+	if (job->mappings) {
+		for (i = 0; i < job->bo_count; i++) {
+			if (!job->mappings[i])
+				break;
+
+			atomic_dec(&job->mappings[i]->obj->gpu_usecount);
+			panfrost_gem_mapping_put(job->mappings[i]);
+		}
+		kvfree(job->mappings);
+	}
+
 	if (job->bos) {
-		for (i = 0; i < job->bo_count; i++)
+		struct panfrost_gem_object *bo;
+
+		for (i = 0; i < job->bo_count; i++) {
+			bo = to_panfrost_bo(job->bos[i]);
 			drm_gem_object_put_unlocked(job->bos[i]);
+		}
+
 		kvfree(job->bos);
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_job.h
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_job.h
@@ -32,6 +32,7 @@
 
 	/* Exclusive fences we have taken from the BOs to wait for */
 	struct dma_fence **implicit_fences;
+	struct panfrost_gem_mapping **mappings;
 	struct drm_gem_object **bos;
 	u32 bo_count;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_mmu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_mmu.c
@@ -52,25 +52,16 @@
 }
 
 static void lock_region(struct panfrost_device *pfdev, u32 as_nr,
-			u64 iova, size_t size)
+			u64 iova, u64 size)
 {
 	u8 region_width;
 	u64 region = iova & PAGE_MASK;
-	/*
-	 * fls returns:
-	 * 1 .. 32
-	 *
-	 * 10 + fls(num_pages)
-	 * results in the range (11 .. 42)
-	 */
-
-	size = round_up(size, PAGE_SIZE);
 
-	region_width = 10 + fls(size >> PAGE_SHIFT);
-	if ((size >> PAGE_SHIFT) != (1ul << (region_width - 11))) {
-		/* not pow2, so must go up to the next pow2 */
-		region_width += 1;
-	}
+	/* The size is encoded as ceil(log2) minus(1), which may be calculated
+	 * with fls. The size must be clamped to hardware bounds.
+	 */
+	size = max_t(u64, size, AS_LOCK_REGION_MIN_SIZE);
+	region_width = fls64(size - 1) - 1;
 	region |= region_width;
 
 	/* Lock the region that needs to be updated */
@@ -81,7 +72,7 @@
 
 
 static int mmu_hw_do_operation_locked(struct panfrost_device *pfdev, int as_nr,
-				      u64 iova, size_t size, u32 op)
+				      u64 iova, u64 size, u32 op)
 {
 	if (as_nr < 0)
 		return 0;
@@ -98,7 +89,7 @@
 
 static int mmu_hw_do_operation(struct panfrost_device *pfdev,
 			       struct panfrost_mmu *mmu,
-			       u64 iova, size_t size, u32 op)
+			       u64 iova, u64 size, u32 op)
 {
 	int ret;
 
@@ -115,7 +106,7 @@
 	u64 transtab = cfg->arm_mali_lpae_cfg.transtab;
 	u64 memattr = cfg->arm_mali_lpae_cfg.memattr;
 
-	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0UL, AS_COMMAND_FLUSH_MEM);
+	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0ULL, AS_COMMAND_FLUSH_MEM);
 
 	mmu_write(pfdev, AS_TRANSTAB_LO(as_nr), transtab & 0xffffffffUL);
 	mmu_write(pfdev, AS_TRANSTAB_HI(as_nr), transtab >> 32);
@@ -131,7 +122,7 @@
 
 static void panfrost_mmu_disable(struct panfrost_device *pfdev, u32 as_nr)
 {
-	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0UL, AS_COMMAND_FLUSH_MEM);
+	mmu_hw_do_operation_locked(pfdev, as_nr, 0, ~0ULL, AS_COMMAND_FLUSH_MEM);
 
 	mmu_write(pfdev, AS_TRANSTAB_LO(as_nr), 0);
 	mmu_write(pfdev, AS_TRANSTAB_HI(as_nr), 0);
@@ -151,7 +142,12 @@
 	as = mmu->as;
 	if (as >= 0) {
 		int en = atomic_inc_return(&mmu->as_count);
-		WARN_ON(en >= NUM_JOB_SLOTS);
+
+		/*
+		 * AS can be retained by active jobs or a perfcnt context,
+		 * hence the '+ 1' here.
+		 */
+		WARN_ON(en >= (NUM_JOB_SLOTS + 1));
 
 		list_move(&mmu->list, &pfdev->as_lru_list);
 		goto out;
@@ -226,7 +222,7 @@
 
 static void panfrost_mmu_flush_range(struct panfrost_device *pfdev,
 				     struct panfrost_mmu *mmu,
-				     u64 iova, size_t size)
+				     u64 iova, u64 size)
 {
 	if (mmu->as < 0)
 		return;
@@ -237,7 +233,7 @@
 	if (pm_runtime_active(pfdev->dev))
 		mmu_hw_do_operation(pfdev, mmu, iova, size, AS_COMMAND_FLUSH_PT);
 
-	pm_runtime_put_sync_autosuspend(pfdev->dev);
+	pm_runtime_put_autosuspend(pfdev->dev);
 }
 
 static int mmu_map_sg(struct panfrost_device *pfdev, struct panfrost_mmu *mmu,
@@ -269,14 +265,15 @@
 	return 0;
 }
 
-int panfrost_mmu_map(struct panfrost_gem_object *bo)
+int panfrost_mmu_map(struct panfrost_gem_mapping *mapping)
 {
+	struct panfrost_gem_object *bo = mapping->obj;
 	struct drm_gem_object *obj = &bo->base.base;
 	struct panfrost_device *pfdev = to_panfrost_device(obj->dev);
 	struct sg_table *sgt;
 	int prot = IOMMU_READ | IOMMU_WRITE;
 
-	if (WARN_ON(bo->is_mapped))
+	if (WARN_ON(mapping->active))
 		return 0;
 
 	if (bo->noexec)
@@ -286,25 +283,28 @@
 	if (WARN_ON(IS_ERR(sgt)))
 		return PTR_ERR(sgt);
 
-	mmu_map_sg(pfdev, bo->mmu, bo->node.start << PAGE_SHIFT, prot, sgt);
-	bo->is_mapped = true;
+	mmu_map_sg(pfdev, mapping->mmu, mapping->mmnode.start << PAGE_SHIFT,
+		   prot, sgt);
+	mapping->active = true;
 
 	return 0;
 }
 
-void panfrost_mmu_unmap(struct panfrost_gem_object *bo)
+void panfrost_mmu_unmap(struct panfrost_gem_mapping *mapping)
 {
+	struct panfrost_gem_object *bo = mapping->obj;
 	struct drm_gem_object *obj = &bo->base.base;
 	struct panfrost_device *pfdev = to_panfrost_device(obj->dev);
-	struct io_pgtable_ops *ops = bo->mmu->pgtbl_ops;
-	u64 iova = bo->node.start << PAGE_SHIFT;
-	size_t len = bo->node.size << PAGE_SHIFT;
+	struct io_pgtable_ops *ops = mapping->mmu->pgtbl_ops;
+	u64 iova = mapping->mmnode.start << PAGE_SHIFT;
+	size_t len = mapping->mmnode.size << PAGE_SHIFT;
 	size_t unmapped_len = 0;
 
-	if (WARN_ON(!bo->is_mapped))
+	if (WARN_ON(!mapping->active))
 		return;
 
-	dev_dbg(pfdev->dev, "unmap: as=%d, iova=%llx, len=%zx", bo->mmu->as, iova, len);
+	dev_dbg(pfdev->dev, "unmap: as=%d, iova=%llx, len=%zx",
+		mapping->mmu->as, iova, len);
 
 	while (unmapped_len < len) {
 		size_t unmapped_page;
@@ -318,8 +318,9 @@
 		unmapped_len += pgsize;
 	}
 
-	panfrost_mmu_flush_range(pfdev, bo->mmu, bo->node.start << PAGE_SHIFT, len);
-	bo->is_mapped = false;
+	panfrost_mmu_flush_range(pfdev, mapping->mmu,
+				 mapping->mmnode.start << PAGE_SHIFT, len);
+	mapping->active = false;
 }
 
 static void mmu_tlb_inv_context_s1(void *cookie)
@@ -394,10 +395,10 @@
 	free_io_pgtable_ops(mmu->pgtbl_ops);
 }
 
-static struct panfrost_gem_object *
-addr_to_drm_mm_node(struct panfrost_device *pfdev, int as, u64 addr)
+static struct panfrost_gem_mapping *
+addr_to_mapping(struct panfrost_device *pfdev, int as, u64 addr)
 {
-	struct panfrost_gem_object *bo = NULL;
+	struct panfrost_gem_mapping *mapping = NULL;
 	struct panfrost_file_priv *priv;
 	struct drm_mm_node *node;
 	u64 offset = addr >> PAGE_SHIFT;
@@ -418,8 +419,9 @@
 	drm_mm_for_each_node(node, &priv->mm) {
 		if (offset >= node->start &&
 		    offset < (node->start + node->size)) {
-			bo = drm_mm_node_to_panfrost_bo(node);
-			drm_gem_object_get(&bo->base.base);
+			mapping = drm_mm_node_to_panfrost_mapping(node);
+
+			kref_get(&mapping->refcount);
 			break;
 		}
 	}
@@ -427,7 +429,7 @@
 	spin_unlock(&priv->mm_lock);
 out:
 	spin_unlock(&pfdev->as_lock);
-	return bo;
+	return mapping;
 }
 
 #define NUM_FAULT_PAGES (SZ_2M / PAGE_SIZE)
@@ -436,28 +438,30 @@
 				       u64 addr)
 {
 	int ret, i;
+	struct panfrost_gem_mapping *bomapping;
 	struct panfrost_gem_object *bo;
 	struct address_space *mapping;
 	pgoff_t page_offset;
 	struct sg_table *sgt;
 	struct page **pages;
 
-	bo = addr_to_drm_mm_node(pfdev, as, addr);
-	if (!bo)
+	bomapping = addr_to_mapping(pfdev, as, addr);
+	if (!bomapping)
 		return -ENOENT;
 
+	bo = bomapping->obj;
 	if (!bo->is_heap) {
 		dev_WARN(pfdev->dev, "matching BO is not heap type (GPU VA = %llx)",
-			 bo->node.start << PAGE_SHIFT);
+			 bomapping->mmnode.start << PAGE_SHIFT);
 		ret = -EINVAL;
 		goto err_bo;
 	}
-	WARN_ON(bo->mmu->as != as);
+	WARN_ON(bomapping->mmu->as != as);
 
 	/* Assume 2MB alignment and size multiple */
 	addr &= ~((u64)SZ_2M - 1);
 	page_offset = addr >> PAGE_SHIFT;
-	page_offset -= bo->node.start;
+	page_offset -= bomapping->mmnode.start;
 
 	mutex_lock(&bo->base.pages_lock);
 
@@ -473,7 +477,7 @@
 		pages = kvmalloc_array(bo->base.base.size >> PAGE_SHIFT,
 				       sizeof(struct page *), GFP_KERNEL | __GFP_ZERO);
 		if (!pages) {
-			kfree(bo->sgts);
+			kvfree(bo->sgts);
 			bo->sgts = NULL;
 			mutex_unlock(&bo->base.pages_lock);
 			ret = -ENOMEM;
@@ -481,8 +485,14 @@
 		}
 		bo->base.pages = pages;
 		bo->base.pages_use_count = 1;
-	} else
+	} else {
 		pages = bo->base.pages;
+		if (pages[page_offset]) {
+			/* Pages are already mapped, bail out. */
+			mutex_unlock(&bo->base.pages_lock);
+			goto out;
+		}
+	}
 
 	mapping = bo->base.base.filp->f_mapping;
 	mapping_set_unevictable(mapping);
@@ -492,6 +502,7 @@
 		if (IS_ERR(pages[i])) {
 			mutex_unlock(&bo->base.pages_lock);
 			ret = PTR_ERR(pages[i]);
+			pages[i] = NULL;
 			goto err_pages;
 		}
 	}
@@ -509,13 +520,15 @@
 		goto err_map;
 	}
 
-	mmu_map_sg(pfdev, bo->mmu, addr, IOMMU_WRITE | IOMMU_READ | IOMMU_NOEXEC, sgt);
+	mmu_map_sg(pfdev, bomapping->mmu, addr,
+		   IOMMU_WRITE | IOMMU_READ | IOMMU_NOEXEC, sgt);
 
-	bo->is_mapped = true;
+	bomapping->active = true;
 
 	dev_dbg(pfdev->dev, "mapped page fault @ AS%d %llx", as, addr);
 
-	drm_gem_object_put_unlocked(&bo->base.base);
+out:
+	panfrost_gem_mapping_put(bomapping);
 
 	return 0;
 
@@ -586,36 +599,30 @@
 		access_type = (fault_status >> 8) & 0x3;
 		source_id = (fault_status >> 16);
 
-		/* Page fault only */
-		if ((status & mask) == BIT(i)) {
-			WARN_ON(exception_type < 0xC1 || exception_type > 0xC4);
+		mmu_write(pfdev, MMU_INT_CLEAR, mask);
 
+		/* Page fault only */
+		ret = -1;
+		if ((status & mask) == BIT(i) && (exception_type & 0xF8) == 0xC0)
 			ret = panfrost_mmu_map_fault_addr(pfdev, i, addr);
-			if (!ret) {
-				mmu_write(pfdev, MMU_INT_CLEAR, BIT(i));
-				status &= ~mask;
-				continue;
-			}
-		}
 
-		/* terminal fault, print info about the fault */
-		dev_err(pfdev->dev,
-			"Unhandled Page fault in AS%d at VA 0x%016llX\n"
-			"Reason: %s\n"
-			"raw fault status: 0x%X\n"
-			"decoded fault status: %s\n"
-			"exception type 0x%X: %s\n"
-			"access type 0x%X: %s\n"
-			"source id 0x%X\n",
-			i, addr,
-			"TODO",
-			fault_status,
-			(fault_status & (1 << 10) ? "DECODER FAULT" : "SLAVE FAULT"),
-			exception_type, panfrost_exception_name(pfdev, exception_type),
-			access_type, access_type_name(pfdev, fault_status),
-			source_id);
-
-		mmu_write(pfdev, MMU_INT_CLEAR, mask);
+		if (ret)
+			/* terminal fault, print info about the fault */
+			dev_err(pfdev->dev,
+				"Unhandled Page fault in AS%d at VA 0x%016llX\n"
+				"Reason: %s\n"
+				"raw fault status: 0x%X\n"
+				"decoded fault status: %s\n"
+				"exception type 0x%X: %s\n"
+				"access type 0x%X: %s\n"
+				"source id 0x%X\n",
+				i, addr,
+				"TODO",
+				fault_status,
+				(fault_status & (1 << 10) ? "DECODER FAULT" : "SLAVE FAULT"),
+				exception_type, panfrost_exception_name(pfdev, exception_type),
+				access_type, access_type_name(pfdev, fault_status),
+				source_id);
 
 		status &= ~mask;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_mmu.h
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_mmu.h
@@ -4,12 +4,12 @@
 #ifndef __PANFROST_MMU_H__
 #define __PANFROST_MMU_H__
 
-struct panfrost_gem_object;
+struct panfrost_gem_mapping;
 struct panfrost_file_priv;
 struct panfrost_mmu;
 
-int panfrost_mmu_map(struct panfrost_gem_object *bo);
-void panfrost_mmu_unmap(struct panfrost_gem_object *bo);
+int panfrost_mmu_map(struct panfrost_gem_mapping *mapping);
+void panfrost_mmu_unmap(struct panfrost_gem_mapping *mapping);
 
 int panfrost_mmu_init(struct panfrost_device *pfdev);
 void panfrost_mmu_fini(struct panfrost_device *pfdev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
@@ -25,7 +25,7 @@
 #define V4_SHADERS_PER_COREGROUP	4
 
 struct panfrost_perfcnt {
-	struct panfrost_gem_object *bo;
+	struct panfrost_gem_mapping *mapping;
 	size_t bosize;
 	void *buf;
 	struct panfrost_file_priv *user;
@@ -49,7 +49,7 @@
 	int ret;
 
 	reinit_completion(&pfdev->perfcnt->dump_comp);
-	gpuva = pfdev->perfcnt->bo->node.start << PAGE_SHIFT;
+	gpuva = pfdev->perfcnt->mapping->mmnode.start << PAGE_SHIFT;
 	gpu_write(pfdev, GPU_PERFCNT_BASE_LO, gpuva);
 	gpu_write(pfdev, GPU_PERFCNT_BASE_HI, gpuva >> 32);
 	gpu_write(pfdev, GPU_INT_CLEAR,
@@ -67,12 +67,13 @@
 }
 
 static int panfrost_perfcnt_enable_locked(struct panfrost_device *pfdev,
-					  struct panfrost_file_priv *user,
+					  struct drm_file *file_priv,
 					  unsigned int counterset)
 {
+	struct panfrost_file_priv *user = file_priv->driver_priv;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 	struct drm_gem_shmem_object *bo;
-	u32 cfg;
+	u32 cfg, as;
 	int ret;
 
 	if (user == perfcnt->user)
@@ -88,17 +89,22 @@
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
-	perfcnt->bo = to_panfrost_bo(&bo->base);
-
 	/* Map the perfcnt buf in the address space attached to file_priv. */
-	ret = panfrost_mmu_map(perfcnt->bo);
+	ret = panfrost_gem_open(&bo->base, file_priv);
 	if (ret)
 		goto err_put_bo;
 
+	perfcnt->mapping = panfrost_gem_mapping_get(to_panfrost_bo(&bo->base),
+						    user);
+	if (!perfcnt->mapping) {
+		ret = -EINVAL;
+		goto err_close_bo;
+	}
+
 	perfcnt->buf = drm_gem_shmem_vmap(&bo->base);
 	if (IS_ERR(perfcnt->buf)) {
 		ret = PTR_ERR(perfcnt->buf);
-		goto err_put_bo;
+		goto err_put_mapping;
 	}
 
 	/*
@@ -120,12 +126,8 @@
 
 	perfcnt->user = user;
 
-	/*
-	 * Always use address space 0 for now.
-	 * FIXME: this needs to be updated when we start using different
-	 * address space.
-	 */
-	cfg = GPU_PERFCNT_CFG_AS(0) |
+	as = panfrost_mmu_as_get(pfdev, perfcnt->mapping->mmu);
+	cfg = GPU_PERFCNT_CFG_AS(as) |
 	      GPU_PERFCNT_CFG_MODE(GPU_PERFCNT_CFG_MODE_MANUAL);
 
 	/*
@@ -153,18 +155,26 @@
 	if (panfrost_has_hw_issue(pfdev, HW_ISSUE_8186))
 		gpu_write(pfdev, GPU_PRFCNT_TILER_EN, 0xffffffff);
 
+	/* The BO ref is retained by the mapping. */
+	drm_gem_object_put_unlocked(&bo->base);
+
 	return 0;
 
 err_vunmap:
-	drm_gem_shmem_vunmap(&perfcnt->bo->base.base, perfcnt->buf);
+	drm_gem_shmem_vunmap(&bo->base, perfcnt->buf);
+err_put_mapping:
+	panfrost_gem_mapping_put(perfcnt->mapping);
+err_close_bo:
+	panfrost_gem_close(&bo->base, file_priv);
 err_put_bo:
 	drm_gem_object_put_unlocked(&bo->base);
 	return ret;
 }
 
 static int panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev,
-					   struct panfrost_file_priv *user)
+					   struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *user = file_priv->driver_priv;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 
 	if (user != perfcnt->user)
@@ -178,10 +188,12 @@
 		  GPU_PERFCNT_CFG_MODE(GPU_PERFCNT_CFG_MODE_OFF));
 
 	perfcnt->user = NULL;
-	drm_gem_shmem_vunmap(&perfcnt->bo->base.base, perfcnt->buf);
+	drm_gem_shmem_vunmap(&perfcnt->mapping->obj->base.base, perfcnt->buf);
 	perfcnt->buf = NULL;
-	drm_gem_object_put_unlocked(&perfcnt->bo->base.base);
-	perfcnt->bo = NULL;
+	panfrost_gem_close(&perfcnt->mapping->obj->base.base, file_priv);
+	panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
+	panfrost_gem_mapping_put(perfcnt->mapping);
+	perfcnt->mapping = NULL;
 	pm_runtime_mark_last_busy(pfdev->dev);
 	pm_runtime_put_autosuspend(pfdev->dev);
 
@@ -191,7 +203,6 @@
 int panfrost_ioctl_perfcnt_enable(struct drm_device *dev, void *data,
 				  struct drm_file *file_priv)
 {
-	struct panfrost_file_priv *pfile = file_priv->driver_priv;
 	struct panfrost_device *pfdev = dev->dev_private;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 	struct drm_panfrost_perfcnt_enable *req = data;
@@ -207,10 +218,10 @@
 
 	mutex_lock(&perfcnt->lock);
 	if (req->enable)
-		ret = panfrost_perfcnt_enable_locked(pfdev, pfile,
+		ret = panfrost_perfcnt_enable_locked(pfdev, file_priv,
 						     req->counterset);
 	else
-		ret = panfrost_perfcnt_disable_locked(pfdev, pfile);
+		ret = panfrost_perfcnt_disable_locked(pfdev, file_priv);
 	mutex_unlock(&perfcnt->lock);
 
 	return ret;
@@ -248,15 +259,16 @@
 	return ret;
 }
 
-void panfrost_perfcnt_close(struct panfrost_file_priv *pfile)
+void panfrost_perfcnt_close(struct drm_file *file_priv)
 {
+	struct panfrost_file_priv *pfile = file_priv->driver_priv;
 	struct panfrost_device *pfdev = pfile->pfdev;
 	struct panfrost_perfcnt *perfcnt = pfdev->perfcnt;
 
 	pm_runtime_get_sync(pfdev->dev);
 	mutex_lock(&perfcnt->lock);
 	if (perfcnt->user == pfile)
-		panfrost_perfcnt_disable_locked(pfdev, pfile);
+		panfrost_perfcnt_disable_locked(pfdev, file_priv);
 	mutex_unlock(&perfcnt->lock);
 	pm_runtime_mark_last_busy(pfdev->dev);
 	pm_runtime_put_autosuspend(pfdev->dev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_perfcnt.h
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_perfcnt.h
@@ -9,7 +9,7 @@
 void panfrost_perfcnt_clean_cache_done(struct panfrost_device *pfdev);
 int panfrost_perfcnt_init(struct panfrost_device *pfdev);
 void panfrost_perfcnt_fini(struct panfrost_device *pfdev);
-void panfrost_perfcnt_close(struct panfrost_file_priv *pfile);
+void panfrost_perfcnt_close(struct drm_file *file_priv);
 int panfrost_ioctl_perfcnt_enable(struct drm_device *dev, void *data,
 				  struct drm_file *file_priv);
 int panfrost_ioctl_perfcnt_dump(struct drm_device *dev, void *data,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/panfrost/panfrost_regs.h
+++ linux-ein-5.4.0/drivers/gpu/drm/panfrost/panfrost_regs.h
@@ -51,6 +51,10 @@
 #define GPU_STATUS			0x34
 #define   GPU_STATUS_PRFCNT_ACTIVE	BIT(2)
 #define GPU_LATEST_FLUSH_ID		0x38
+#define GPU_PWR_KEY			0x50	/* (WO) Power manager key register */
+#define  GPU_PWR_KEY_UNLOCK		0x2968A819
+#define GPU_PWR_OVERRIDE0		0x54	/* (RW) Power manager override settings */
+#define GPU_PWR_OVERRIDE1		0x58	/* (RW) Power manager override settings */
 #define GPU_FAULT_STATUS		0x3C
 #define GPU_FAULT_ADDRESS_LO		0x40
 #define GPU_FAULT_ADDRESS_HI		0x44
@@ -314,6 +318,8 @@
 #define AS_FAULTSTATUS_ACCESS_TYPE_READ		(0x2 << 8)
 #define AS_FAULTSTATUS_ACCESS_TYPE_WRITE	(0x3 << 8)
 
+#define AS_LOCK_REGION_MIN_SIZE                 (1ULL << 15)
+
 #define gpu_write(dev, reg, data) writel(data, dev->iomem + reg)
 #define gpu_read(dev, reg) readl(dev->iomem + reg)
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_cmd.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_cmd.c
@@ -480,9 +480,10 @@
 		return ret;
 
 	ret = qxl_release_reserve_list(release, true);
-	if (ret)
+	if (ret) {
+		qxl_release_free(qdev, release);
 		return ret;
-
+	}
 	cmd = (struct qxl_surface_cmd *)qxl_release_map(qdev, release);
 	cmd->type = QXL_SURFACE_CMD_CREATE;
 	cmd->flags = QXL_SURF_FLAG_KEEP_DATA;
@@ -499,8 +500,8 @@
 	/* no need to add a release to the fence for this surface bo,
 	   since it is only released when we ask to destroy the surface
 	   and it would never signal otherwise */
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 
 	surf->hw_surf_alloc = true;
 	spin_lock(&qdev->surf_id_idr_lock);
@@ -542,9 +543,8 @@
 	cmd->surface_id = id;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
-
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_display.c
@@ -325,6 +325,7 @@
 
 	head.id = i;
 	head.flags = 0;
+	head.surface_id = 0;
 	oldcount = qdev->monitors_config->count;
 	if (crtc->state->active) {
 		struct drm_display_mode *mode = &crtc->mode;
@@ -523,8 +524,8 @@
 	cmd->u.set.visible = 1;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 
 	return ret;
 
@@ -665,8 +666,8 @@
 	cmd->u.position.y = plane->state->crtc_y + fb->hot_y;
 
 	qxl_release_unmap(qdev, release, &cmd->release_info);
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 
 	if (old_cursor_bo != NULL)
 		qxl_bo_unpin(old_cursor_bo);
@@ -713,8 +714,8 @@
 	cmd->type = QXL_CURSOR_HIDE;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 }
 
 static void qxl_update_dumb_head(struct qxl_device *qdev,
@@ -1236,6 +1237,10 @@
 
 void qxl_modeset_fini(struct qxl_device *qdev)
 {
+	if (qdev->dumb_shadow_bo) {
+		drm_gem_object_put(&qdev->dumb_shadow_bo->tbo.base);
+		qdev->dumb_shadow_bo = NULL;
+	}
 	qxl_destroy_monitors_object(qdev);
 	drm_mode_config_cleanup(&qdev->ddev);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_draw.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_draw.c
@@ -209,9 +209,10 @@
 		goto out_release_backoff;
 
 	rects = drawable_set_clipping(qdev, num_clips, clips_bo);
-	if (!rects)
+	if (!rects) {
+		ret = -EINVAL;
 		goto out_release_backoff;
-
+	}
 	drawable = (struct qxl_drawable *)qxl_release_map(qdev, release);
 
 	drawable->clip.type = SPICE_CLIP_TYPE_RECTS;
@@ -242,8 +243,8 @@
 	}
 	qxl_bo_kunmap(clips_bo);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 
 out_release_backoff:
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_dumb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_dumb.c
@@ -58,6 +58,8 @@
 	surf.height = args->height;
 	surf.stride = pitch;
 	surf.format = format;
+	surf.data = 0;
+
 	r = qxl_gem_object_create_with_handle(qdev, file_priv,
 					      QXL_GEM_DOMAIN_SURFACE,
 					      args->size, &surf, &qobj,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_image.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_image.c
@@ -212,7 +212,8 @@
 		break;
 	default:
 		DRM_ERROR("unsupported image bit depth\n");
-		return -EINVAL; /* TODO: cleanup */
+		qxl_bo_kunmap_atomic_page(qdev, image_bo, ptr);
+		return -EINVAL;
 	}
 	image->u.bitmap.flags = QXL_BITMAP_TOP_DOWN;
 	image->u.bitmap.x = width;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_ioctl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_ioctl.c
@@ -261,11 +261,8 @@
 			apply_surf_reloc(qdev, &reloc_info[i]);
 	}
 
+	qxl_release_fence_buffer_objects(release);
 	ret = qxl_push_command_ring_release(qdev, release, cmd->type, true);
-	if (ret)
-		qxl_release_backoff_reserve_list(release);
-	else
-		qxl_release_fence_buffer_objects(release);
 
 out_free_bos:
 out_free_release:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/qxl/qxl_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/qxl/qxl_kms.c
@@ -184,7 +184,7 @@
 
 	if (!qxl_check_device(qdev)) {
 		r = -ENODEV;
-		goto surface_mapping_free;
+		goto rom_unmap;
 	}
 
 	r = qxl_bo_init(qdev);
@@ -218,7 +218,7 @@
 				&(qdev->ram_header->cursor_ring_hdr),
 				sizeof(struct qxl_command),
 				QXL_CURSOR_RING_SIZE,
-				qdev->io_base + QXL_IO_NOTIFY_CMD,
+				qdev->io_base + QXL_IO_NOTIFY_CURSOR,
 				false,
 				&qdev->cursor_event);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/atombios_encoders.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -197,7 +197,8 @@
 	 * so don't register a backlight device
 	 */
 	if ((rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE) &&
-	    (rdev->pdev->device == 0x6741))
+	    (rdev->pdev->device == 0x6741) &&
+	    !dmi_match(DMI_PRODUCT_NAME, "iMac12,1"))
 		return;
 
 	if (!radeon_encoder->enc_priv)
@@ -2191,11 +2192,12 @@
 
 	/*
 	 * On DCE32 any encoder can drive any block so usually just use crtc id,
-	 * but Apple thinks different at least on iMac10,1, so there use linkb,
+	 * but Apple thinks different at least on iMac10,1 and iMac11,2, so there use linkb,
 	 * otherwise the internal eDP panel will stay dark.
 	 */
 	if (ASIC_IS_DCE32(rdev)) {
-		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1"))
+		if (dmi_match(DMI_PRODUCT_NAME, "iMac10,1") ||
+		    dmi_match(DMI_PRODUCT_NAME, "iMac11,2"))
 			enc_idx = (dig->linkb) ? 1 : 0;
 		else
 			enc_idx = radeon_crtc->crtc_id;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/ci_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/ci_dpm.c
@@ -4366,7 +4366,7 @@
 					table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
 			}
 			j++;
-			if (j > SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
+			if (j >= SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
 				return -EINVAL;
 
 			if (!pi->mem_gddr5) {
@@ -5556,6 +5556,7 @@
 	u8 frev, crev;
 	u8 *power_state_offset;
 	struct ci_ps *ps;
+	int ret;
 
 	if (!atom_parse_data_header(mode_info->atom_context, index, NULL,
 				   &frev, &crev, &data_offset))
@@ -5578,18 +5579,21 @@
 	if (!rdev->pm.dpm.ps)
 		return -ENOMEM;
 	power_state_offset = (u8 *)state_array->states;
+	rdev->pm.dpm.num_ps = 0;
 	for (i = 0; i < state_array->ucNumEntries; i++) {
 		u8 *idx;
 		power_state = (union pplib_power_state *)power_state_offset;
 		non_clock_array_index = power_state->v2.nonClockInfoIndex;
 		non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
 			&non_clock_info_array->nonClockInfo[non_clock_array_index];
-		if (!rdev->pm.power_state[i].clock_info)
-			return -EINVAL;
+		if (!rdev->pm.power_state[i].clock_info) {
+			ret = -EINVAL;
+			goto err_free_ps;
+		}
 		ps = kzalloc(sizeof(struct ci_ps), GFP_KERNEL);
 		if (ps == NULL) {
-			kfree(rdev->pm.dpm.ps);
-			return -ENOMEM;
+			ret = -ENOMEM;
+			goto err_free_ps;
 		}
 		rdev->pm.dpm.ps[i].ps_priv = ps;
 		ci_parse_pplib_non_clock_info(rdev, &rdev->pm.dpm.ps[i],
@@ -5612,8 +5616,8 @@
 			k++;
 		}
 		power_state_offset += 2 + power_state->v2.ucNumDPMLevels;
+		rdev->pm.dpm.num_ps = i + 1;
 	}
-	rdev->pm.dpm.num_ps = state_array->ucNumEntries;
 
 	/* fill in the vce power states */
 	for (i = 0; i < RADEON_MAX_VCE_LEVELS; i++) {
@@ -5630,6 +5634,12 @@
 	}
 
 	return 0;
+
+err_free_ps:
+	for (i = 0; i < rdev->pm.dpm.num_ps; i++)
+		kfree(rdev->pm.dpm.ps[i].ps_priv);
+	kfree(rdev->pm.dpm.ps);
+	return ret;
 }
 
 static int ci_get_vbios_boot_values(struct radeon_device *rdev,
@@ -5718,25 +5728,26 @@
 
 	ret = ci_get_vbios_boot_values(rdev, &pi->vbios_boot_state);
 	if (ret) {
-		ci_dpm_fini(rdev);
+		kfree(rdev->pm.dpm.priv);
 		return ret;
 	}
 
 	ret = r600_get_platform_caps(rdev);
 	if (ret) {
-		ci_dpm_fini(rdev);
+		kfree(rdev->pm.dpm.priv);
 		return ret;
 	}
 
 	ret = r600_parse_extended_power_table(rdev);
 	if (ret) {
-		ci_dpm_fini(rdev);
+		kfree(rdev->pm.dpm.priv);
 		return ret;
 	}
 
 	ret = ci_parse_power_table(rdev);
 	if (ret) {
-		ci_dpm_fini(rdev);
+		kfree(rdev->pm.dpm.priv);
+		r600_free_extended_power_table(rdev);
 		return ret;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/cik.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/cik.c
@@ -6969,8 +6969,8 @@
 	}
 
 	/* setup interrupt control */
-	/* XXX this should actually be a bus address, not an MC address. same on older asics */
-	WREG32(INTERRUPT_CNTL2, rdev->ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, rdev->dummy_page.addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	/* IH_DUMMY_RD_OVERRIDE=0 - dummy read disabled with msi, enabled without msi
 	 * IH_DUMMY_RD_OVERRIDE=1 - dummy read controlled by IH_DUMMY_RD_EN
@@ -9504,7 +9504,6 @@
 {
 	struct pci_dev *root = rdev->pdev->bus->self;
 	enum pci_bus_speed speed_cap;
-	int bridge_pos, gpu_pos;
 	u32 speed_cntl, current_data_rate;
 	int i;
 	u16 tmp16;
@@ -9546,12 +9545,7 @@
 		DRM_INFO("enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0\n");
 	}
 
-	bridge_pos = pci_pcie_cap(root);
-	if (!bridge_pos)
-		return;
-
-	gpu_pos = pci_pcie_cap(rdev->pdev);
-	if (!gpu_pos)
+	if (!pci_is_pcie(root) || !pci_is_pcie(rdev->pdev))
 		return;
 
 	if (speed_cap == PCIE_SPEED_8_0GT) {
@@ -9561,14 +9555,8 @@
 			u16 bridge_cfg2, gpu_cfg2;
 			u32 max_lw, current_lw, tmp;
 
-			pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-			pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-			tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-			tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+			pcie_capability_set_word(root, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
+			pcie_capability_set_word(rdev->pdev, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
 
 			tmp = RREG32_PCIE_PORT(PCIE_LC_STATUS1);
 			max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
@@ -9586,15 +9574,23 @@
 
 			for (i = 0; i < 10; i++) {
 				/* check status */
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_DEVSTA,
+							  &tmp16);
 				if (tmp16 & PCI_EXP_DEVSTA_TRPND)
 					break;
 
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL,
+							  &bridge_cfg);
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_LNKCTL,
+							  &gpu_cfg);
+
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &bridge_cfg2);
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &gpu_cfg2);
 
 				tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
 				tmp |= LC_SET_QUIESCE;
@@ -9607,26 +9603,38 @@
 				msleep(100);
 
 				/* linkctl */
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+				pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   bridge_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
+				pcie_capability_clear_and_set_word(rdev->pdev, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   gpu_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
 
 				/* linkctl2 */
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
-
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (bridge_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(root,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
+
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (gpu_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(rdev->pdev,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
 
 				tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
 				tmp &= ~LC_SET_QUIESCE;
@@ -9640,15 +9648,15 @@
 	speed_cntl &= ~LC_FORCE_DIS_SW_SPEED_CHANGE;
 	WREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL, speed_cntl);
 
-	pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-	tmp16 &= ~0xf;
+	pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL2, &tmp16);
+	tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
 	if (speed_cap == PCIE_SPEED_8_0GT)
-		tmp16 |= 3; /* gen3 */
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
 	else if (speed_cap == PCIE_SPEED_5_0GT)
-		tmp16 |= 2; /* gen2 */
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
 	else
-		tmp16 |= 1; /* gen1 */
-	pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
+	pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL2, tmp16);
 
 	speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
 	speed_cntl |= LC_INITIATE_LINK_SPEED_CHANGE;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/cypress_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/cypress_dpm.c
@@ -559,8 +559,12 @@
 						     ASIC_INTERNAL_MEMORY_SS, vco_freq)) {
 			u32 reference_clock = rdev->clock.mpll.reference_freq;
 			u32 decoded_ref = rv740_get_decoded_reference_divider(dividers.ref_div);
-			u32 clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
-			u32 clk_v = ss.percentage *
+			u32 clk_s, clk_v;
+
+			if (!decoded_ref)
+				return -EINVAL;
+			clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
+			clk_v = ss.percentage *
 				(0x4000 * dividers.whole_fb_div + 0x800 * dividers.frac_fb_div) / (clk_s * 625);
 
 			mpll_ss1 &= ~CLKV_MASK;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/ni_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/ni_dpm.c
@@ -2128,7 +2128,7 @@
 		if (clk_s & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_SHIFT))
 			ret = -EINVAL;
 
-		if (clk_s & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKS_SHIFT))
+		if (fb_div & ~(SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_FBDIV_SHIFT))
 			ret = -EINVAL;
 
 		if (clk_v & ~(SMC_NISLANDS_SPLL_DIV_TABLE_CLKV_MASK >> SMC_NISLANDS_SPLL_DIV_TABLE_CLKV_SHIFT))
@@ -2241,8 +2241,12 @@
 						     ASIC_INTERNAL_MEMORY_SS, vco_freq)) {
 			u32 reference_clock = rdev->clock.mpll.reference_freq;
 			u32 decoded_ref = rv740_get_decoded_reference_divider(dividers.ref_div);
-			u32 clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
-			u32 clk_v = ss.percentage *
+			u32 clk_s, clk_v;
+
+			if (!decoded_ref)
+				return -EINVAL;
+			clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
+			clk_v = ss.percentage *
 				(0x4000 * dividers.whole_fb_div + 0x800 * dividers.frac_fb_div) / (clk_s * 625);
 
 			mpll_ss1 &= ~CLKV_MASK;
@@ -2740,10 +2744,10 @@
 					table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
 			}
 			j++;
-			if (j > SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE)
-				return -EINVAL;
 			break;
 		case MC_SEQ_RESERVE_M >> 2:
+			if (j >= SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE)
+				return -EINVAL;
 			temp_reg = RREG32(MC_PMG_CMD_MRS1);
 			table->mc_reg_address[j].s1 = MC_PMG_CMD_MRS1 >> 2;
 			table->mc_reg_address[j].s0 = MC_SEQ_PMG_CMD_MRS1_LP >> 2;
@@ -2752,8 +2756,6 @@
 					(temp_reg & 0xffff0000) |
 					(table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff);
 			j++;
-			if (j > SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE)
-				return -EINVAL;
 			break;
 		default:
 			break;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/r100.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/r100.c
@@ -1826,8 +1826,8 @@
 			track->textures[i].use_pitch = 1;
 		} else {
 			track->textures[i].use_pitch = 0;
-			track->textures[i].width = 1 << ((idx_value >> RADEON_TXFORMAT_WIDTH_SHIFT) & RADEON_TXFORMAT_WIDTH_MASK);
-			track->textures[i].height = 1 << ((idx_value >> RADEON_TXFORMAT_HEIGHT_SHIFT) & RADEON_TXFORMAT_HEIGHT_MASK);
+			track->textures[i].width = 1 << ((idx_value & RADEON_TXFORMAT_WIDTH_MASK) >> RADEON_TXFORMAT_WIDTH_SHIFT);
+			track->textures[i].height = 1 << ((idx_value & RADEON_TXFORMAT_HEIGHT_MASK) >> RADEON_TXFORMAT_HEIGHT_SHIFT);
 		}
 		if (idx_value & RADEON_TXFORMAT_CUBIC_MAP_ENABLE)
 			track->textures[i].tex_coord_type = 2;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/r200.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/r200.c
@@ -476,8 +476,8 @@
 			track->textures[i].use_pitch = 1;
 		} else {
 			track->textures[i].use_pitch = 0;
-			track->textures[i].width = 1 << ((idx_value >> RADEON_TXFORMAT_WIDTH_SHIFT) & RADEON_TXFORMAT_WIDTH_MASK);
-			track->textures[i].height = 1 << ((idx_value >> RADEON_TXFORMAT_HEIGHT_SHIFT) & RADEON_TXFORMAT_HEIGHT_MASK);
+			track->textures[i].width = 1 << ((idx_value & RADEON_TXFORMAT_WIDTH_MASK) >> RADEON_TXFORMAT_WIDTH_SHIFT);
+			track->textures[i].height = 1 << ((idx_value & RADEON_TXFORMAT_HEIGHT_MASK) >> RADEON_TXFORMAT_HEIGHT_SHIFT);
 		}
 		if (idx_value & R200_TXFORMAT_LOOKUP_DISABLE)
 			track->textures[i].lookup_disable = true;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/r600.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/r600.c
@@ -3696,8 +3696,8 @@
 	}
 
 	/* setup interrupt control */
-	/* set dummy read address to ring address */
-	WREG32(INTERRUPT_CNTL2, rdev->ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, rdev->dummy_page.addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	/* IH_DUMMY_RD_OVERRIDE=0 - dummy read disabled with msi, enabled without msi
 	 * IH_DUMMY_RD_OVERRIDE=1 - dummy read controlled by IH_DUMMY_RD_EN
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon.h
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon.h
@@ -1554,6 +1554,7 @@
 	void                    *priv;
 	u32			new_active_crtcs;
 	int			new_active_crtc_count;
+	int			high_pixelclock_count;
 	u32			current_active_crtcs;
 	int			current_active_crtc_count;
 	bool single_display;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_atombios.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -2136,11 +2136,14 @@
 		return state_index;
 	/* last mode is usually default, array is low to high */
 	for (i = 0; i < num_modes; i++) {
-		rdev->pm.power_state[state_index].clock_info =
-			kcalloc(1, sizeof(struct radeon_pm_clock_info),
-				GFP_KERNEL);
+		/* avoid memory leaks from invalid modes or unknown frev. */
+		if (!rdev->pm.power_state[state_index].clock_info) {
+			rdev->pm.power_state[state_index].clock_info =
+				kzalloc(sizeof(struct radeon_pm_clock_info),
+					GFP_KERNEL);
+		}
 		if (!rdev->pm.power_state[state_index].clock_info)
-			return state_index;
+			goto out;
 		rdev->pm.power_state[state_index].num_clock_modes = 1;
 		rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE;
 		switch (frev) {
@@ -2259,17 +2262,24 @@
 			break;
 		}
 	}
+out:
+	/* free any unused clock_info allocation. */
+	if (state_index && state_index < num_modes) {
+		kfree(rdev->pm.power_state[state_index].clock_info);
+		rdev->pm.power_state[state_index].clock_info = NULL;
+	}
+
 	/* last mode is usually default */
-	if (rdev->pm.default_power_state_index == -1) {
+	if (state_index && rdev->pm.default_power_state_index == -1) {
 		rdev->pm.power_state[state_index - 1].type =
 			POWER_STATE_TYPE_DEFAULT;
 		rdev->pm.default_power_state_index = state_index - 1;
 		rdev->pm.power_state[state_index - 1].default_clock_mode =
 			&rdev->pm.power_state[state_index - 1].clock_info[0];
-		rdev->pm.power_state[state_index].flags &=
+		rdev->pm.power_state[state_index - 1].flags &=
 			~RADEON_PM_STATE_SINGLE_DISPLAY_ONLY;
-		rdev->pm.power_state[state_index].misc = 0;
-		rdev->pm.power_state[state_index].misc2 = 0;
+		rdev->pm.power_state[state_index - 1].misc = 0;
+		rdev->pm.power_state[state_index - 1].misc2 = 0;
 	}
 	return state_index;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_bios.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_bios.c
@@ -108,25 +108,33 @@
 
 static bool radeon_read_platform_bios(struct radeon_device *rdev)
 {
-	uint8_t __iomem *bios;
-	size_t size;
+	phys_addr_t rom = rdev->pdev->rom;
+	size_t romlen = rdev->pdev->romlen;
+	void __iomem *bios;
 
 	rdev->bios = NULL;
 
-	bios = pci_platform_rom(rdev->pdev, &size);
-	if (!bios) {
+	if (!rom || romlen == 0)
 		return false;
-	}
 
-	if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) {
-		return false;
-	}
-	rdev->bios = kmemdup(bios, size, GFP_KERNEL);
-	if (rdev->bios == NULL) {
+	rdev->bios = kzalloc(romlen, GFP_KERNEL);
+	if (!rdev->bios)
 		return false;
-	}
+
+	bios = ioremap(rom, romlen);
+	if (!bios)
+		goto free_bios;
+
+	memcpy_fromio(rdev->bios, bios, romlen);
+	iounmap(bios);
+
+	if (rdev->bios[0] != 0x55 || rdev->bios[1] != 0xaa)
+		goto free_bios;
 
 	return true;
+free_bios:
+	kfree(rdev->bios);
+	return false;
 }
 
 #ifdef CONFIG_ACPI
@@ -219,6 +227,7 @@
 
 	if (!found)
 		return false;
+	pci_dev_put(pdev);
 
 	rdev->bios = kmalloc(size, GFP_KERNEL);
 	if (!rdev->bios) {
@@ -604,13 +613,14 @@
 	acpi_size tbl_size;
 	UEFI_ACPI_VFCT *vfct;
 	unsigned offset;
+	bool r = false;
 
 	if (!ACPI_SUCCESS(acpi_get_table("VFCT", 1, &hdr)))
 		return false;
 	tbl_size = hdr->length;
 	if (tbl_size < sizeof(UEFI_ACPI_VFCT)) {
 		DRM_ERROR("ACPI VFCT table present but broken (too short #1)\n");
-		return false;
+		goto out;
 	}
 
 	vfct = (UEFI_ACPI_VFCT *)hdr;
@@ -623,13 +633,13 @@
 		offset += sizeof(VFCT_IMAGE_HEADER);
 		if (offset > tbl_size) {
 			DRM_ERROR("ACPI VFCT image header truncated\n");
-			return false;
+			goto out;
 		}
 
 		offset += vhdr->ImageLength;
 		if (offset > tbl_size) {
 			DRM_ERROR("ACPI VFCT image truncated\n");
-			return false;
+			goto out;
 		}
 
 		if (vhdr->ImageLength &&
@@ -641,15 +651,18 @@
 			rdev->bios = kmemdup(&vbios->VbiosContent,
 					     vhdr->ImageLength,
 					     GFP_KERNEL);
+			if (rdev->bios)
+				r = true;
 
-			if (!rdev->bios)
-				return false;
-			return true;
+			goto out;
 		}
 	}
 
 	DRM_ERROR("ACPI VFCT table present but broken (too short #2)\n");
-	return false;
+
+out:
+	acpi_put_table(hdr);
+	return r;
 }
 #else
 static inline bool radeon_acpi_vfct_bios(struct radeon_device *rdev)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_connectors.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -477,6 +477,8 @@
 	    native_mode->vdisplay != 0 &&
 	    native_mode->clock != 0) {
 		mode = drm_mode_duplicate(dev, native_mode);
+		if (!mode)
+			return NULL;
 		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
 		drm_mode_set_name(mode);
 
@@ -491,6 +493,8 @@
 		 * simpler.
 		 */
 		mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+		if (!mode)
+			return NULL;
 		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
 		DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
 	}
@@ -883,8 +887,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (encoder) {
@@ -1029,8 +1035,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = radeon_best_single_encoder(connector);
@@ -1167,8 +1175,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = radeon_best_single_encoder(connector);
@@ -1251,8 +1261,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (radeon_connector->detected_hpd_without_ddc) {
@@ -1666,8 +1678,10 @@
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && radeon_check_hpd_status_unchanged(connector)) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_cs.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_cs.c
@@ -271,7 +271,8 @@
 {
 	struct drm_radeon_cs *cs = data;
 	uint64_t *chunk_array_ptr;
-	unsigned size, i;
+	u64 size;
+	unsigned i;
 	u32 ring = RADEON_CS_RING_GFX;
 	s32 priority = 0;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_device.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_device.c
@@ -1022,6 +1022,7 @@
 {
 	if (rdev->mode_info.atom_context) {
 		kfree(rdev->mode_info.atom_context->scratch);
+		kfree(rdev->mode_info.atom_context->iio);
 	}
 	kfree(rdev->mode_info.atom_context);
 	rdev->mode_info.atom_context = NULL;
@@ -1623,6 +1624,9 @@
 		if (r) {
 			/* delay GPU reset to resume */
 			radeon_fence_driver_force_completion(rdev, i);
+		} else {
+			/* finish executing delayed work */
+			flush_delayed_work(&rdev->fence_drv[i].lockup_work);
 		}
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_display.c
@@ -127,6 +127,8 @@
 
 	DRM_DEBUG_KMS("%d\n", radeon_crtc->crtc_id);
 
+	msleep(10);
+
 	WREG32(NI_INPUT_CSC_CONTROL + radeon_crtc->crtc_offset,
 	       (NI_INPUT_CSC_GRPH_MODE(NI_INPUT_CSC_BYPASS) |
 		NI_INPUT_CSC_OVL_MODE(NI_INPUT_CSC_BYPASS)));
@@ -629,8 +631,10 @@
 	dev = set->crtc->dev;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_crtc_helper_set_config(set, ctx);
 
@@ -1329,6 +1333,7 @@
 	/* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */
 	if (obj->import_attach) {
 		DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n");
+		drm_gem_object_put(obj);
 		return ERR_PTR(-EINVAL);
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_drv.c
@@ -37,6 +37,7 @@
 #include <linux/vga_switcheroo.h>
 #include <linux/mmu_notifier.h>
 
+#include <drm/drm_agpsupport.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_drv.h>
 #include <drm/drm_fb_helper.h>
@@ -173,12 +174,7 @@
 int radeon_modeset = -1;
 int radeon_dynclks = -1;
 int radeon_r4xx_atom = 0;
-#ifdef __powerpc__
-/* Default to PCI on PowerPC (fdo #95017) */
 int radeon_agpmode = -1;
-#else
-int radeon_agpmode = 0;
-#endif
 int radeon_vram_limit = 0;
 int radeon_gart_size = -1; /* auto */
 int radeon_benchmarking = 0;
@@ -325,6 +321,7 @@
 			    const struct pci_device_id *ent)
 {
 	unsigned long flags = 0;
+	struct drm_device *dev;
 	int ret;
 
 	if (!ent)
@@ -365,7 +362,44 @@
 	if (ret)
 		return ret;
 
-	return drm_get_pci_dev(pdev, ent, &kms_driver);
+	dev = drm_dev_alloc(&kms_driver, &pdev->dev);
+	if (IS_ERR(dev))
+		return PTR_ERR(dev);
+
+	ret = pci_enable_device(pdev);
+	if (ret)
+		goto err_free;
+
+	dev->pdev = pdev;
+#ifdef __alpha__
+	dev->hose = pdev->sysdata;
+#endif
+
+	pci_set_drvdata(pdev, dev);
+
+	if (pci_find_capability(dev->pdev, PCI_CAP_ID_AGP))
+		dev->agp = drm_agp_init(dev);
+	if (dev->agp) {
+		dev->agp->agp_mtrr = arch_phys_wc_add(
+			dev->agp->agp_info.aper_base,
+			dev->agp->agp_info.aper_size *
+			1024 * 1024);
+	}
+
+	ret = drm_dev_register(dev, ent->driver_data);
+	if (ret)
+		goto err_agp;
+
+	return 0;
+
+err_agp:
+	if (dev->agp)
+		arch_phys_wc_del(dev->agp->agp_mtrr);
+	kfree(dev->agp);
+	pci_disable_device(pdev);
+err_free:
+	drm_dev_put(dev);
+	return ret;
 }
 
 static void
@@ -516,8 +550,10 @@
 	long ret;
 	dev = file_priv->minor->dev;
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_ioctl(filp, cmd, arg);
 	
@@ -578,7 +614,7 @@
 
 static struct drm_driver kms_driver = {
 	.driver_features =
-	    DRIVER_USE_AGP | DRIVER_GEM | DRIVER_RENDER,
+	    DRIVER_GEM | DRIVER_RENDER,
 	.load = radeon_driver_load_kms,
 	.open = radeon_driver_open_kms,
 	.postclose = radeon_driver_postclose_kms,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_gem.c
@@ -384,7 +384,6 @@
 	struct radeon_device *rdev = dev->dev_private;
 	struct drm_radeon_gem_set_domain *args = data;
 	struct drm_gem_object *gobj;
-	struct radeon_bo *robj;
 	int r;
 
 	/* for now if someone requests domain CPU -
@@ -397,13 +396,12 @@
 		up_read(&rdev->exclusive_lock);
 		return -ENOENT;
 	}
-	robj = gem_to_radeon_bo(gobj);
 
 	r = radeon_gem_set_domain(gobj, args->read_domains, args->write_domain);
 
 	drm_gem_object_put_unlocked(gobj);
 	up_read(&rdev->exclusive_lock);
-	r = radeon_gem_handle_lockup(robj->rdev, r);
+	r = radeon_gem_handle_lockup(rdev, r);
 	return r;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_kms.c
@@ -31,6 +31,7 @@
 #include <linux/uaccess.h>
 #include <linux/vga_switcheroo.h>
 
+#include <drm/drm_agpsupport.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_file.h>
 #include <drm/drm_ioctl.h>
@@ -77,6 +78,11 @@
 	radeon_modeset_fini(rdev);
 	radeon_device_fini(rdev);
 
+	if (dev->agp)
+		arch_phys_wc_del(dev->agp->agp_mtrr);
+	kfree(dev->agp);
+	dev->agp = NULL;
+
 done_free:
 	kfree(rdev);
 	dev->dev_private = NULL;
@@ -506,6 +512,7 @@
 			*value = rdev->config.si.backend_enable_mask;
 		} else {
 			DRM_DEBUG_KMS("BACKEND_ENABLED_MASK is si+ only!\n");
+			return -EINVAL;
 		}
 		break;
 	case RADEON_INFO_MAX_SCLK:
@@ -627,58 +634,66 @@
 int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 {
 	struct radeon_device *rdev = dev->dev_private;
+	struct radeon_fpriv *fpriv;
+	struct radeon_vm *vm;
 	int r;
 
 	file_priv->driver_priv = NULL;
 
 	r = pm_runtime_get_sync(dev->dev);
-	if (r < 0)
+	if (r < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return r;
+	}
 
 	/* new gpu have virtual address space support */
 	if (rdev->family >= CHIP_CAYMAN) {
-		struct radeon_fpriv *fpriv;
-		struct radeon_vm *vm;
 
 		fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
 		if (unlikely(!fpriv)) {
 			r = -ENOMEM;
-			goto out_suspend;
+			goto err_suspend;
 		}
 
 		if (rdev->accel_working) {
 			vm = &fpriv->vm;
 			r = radeon_vm_init(rdev, vm);
-			if (r) {
-				kfree(fpriv);
-				goto out_suspend;
-			}
+			if (r)
+				goto err_fpriv;
 
 			r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false);
-			if (r) {
-				radeon_vm_fini(rdev, vm);
-				kfree(fpriv);
-				goto out_suspend;
-			}
+			if (r)
+				goto err_vm_fini;
 
 			/* map the ib pool buffer read only into
 			 * virtual address space */
 			vm->ib_bo_va = radeon_vm_bo_add(rdev, vm,
 							rdev->ring_tmp_bo.bo);
+			if (!vm->ib_bo_va) {
+				r = -ENOMEM;
+				goto err_vm_fini;
+			}
+
 			r = radeon_vm_bo_set_addr(rdev, vm->ib_bo_va,
 						  RADEON_VA_IB_OFFSET,
 						  RADEON_VM_PAGE_READABLE |
 						  RADEON_VM_PAGE_SNOOPED);
-			if (r) {
-				radeon_vm_fini(rdev, vm);
-				kfree(fpriv);
-				goto out_suspend;
-			}
+			if (r)
+				goto err_vm_fini;
 		}
 		file_priv->driver_priv = fpriv;
 	}
 
-out_suspend:
+	pm_runtime_mark_last_busy(dev->dev);
+	pm_runtime_put_autosuspend(dev->dev);
+	return 0;
+
+err_vm_fini:
+	radeon_vm_fini(rdev, vm);
+err_fpriv:
+	kfree(fpriv);
+
+err_suspend:
 	pm_runtime_mark_last_busy(dev->dev);
 	pm_runtime_put_autosuspend(dev->dev);
 	return r;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_pm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_pm.c
@@ -1720,6 +1720,7 @@
 	struct drm_device *ddev = rdev->ddev;
 	struct drm_crtc *crtc;
 	struct radeon_crtc *radeon_crtc;
+	struct radeon_connector *radeon_connector;
 
 	if (!rdev->pm.dpm_enabled)
 		return;
@@ -1729,6 +1730,7 @@
 	/* update active crtc counts */
 	rdev->pm.dpm.new_active_crtcs = 0;
 	rdev->pm.dpm.new_active_crtc_count = 0;
+	rdev->pm.dpm.high_pixelclock_count = 0;
 	if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) {
 		list_for_each_entry(crtc,
 				    &ddev->mode_config.crtc_list, head) {
@@ -1736,6 +1738,12 @@
 			if (crtc->enabled) {
 				rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id);
 				rdev->pm.dpm.new_active_crtc_count++;
+				if (!radeon_crtc->connector)
+					continue;
+
+				radeon_connector = to_radeon_connector(radeon_crtc->connector);
+				if (radeon_connector->pixelclock_for_modeset > 297000)
+					rdev->pm.dpm.high_pixelclock_count++;
 			}
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_prime.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_prime.c
@@ -94,9 +94,19 @@
 
 	/* pin buffer into GTT */
 	ret = radeon_bo_pin(bo, RADEON_GEM_DOMAIN_GTT, NULL);
-	if (likely(ret == 0))
-		bo->prime_shared_count++;
+	if (unlikely(ret))
+		goto error;
 
+	if (bo->tbo.moving) {
+		ret = dma_fence_wait(bo->tbo.moving, false);
+		if (unlikely(ret)) {
+			radeon_bo_unpin(bo);
+			goto error;
+		}
+	}
+
+	bo->prime_shared_count++;
+error:
 	radeon_bo_unreserve(bo);
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/radeon_uvd.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -286,7 +286,7 @@
 	if (rdev->uvd.vcpu_bo == NULL)
 		return -EINVAL;
 
-	memcpy(rdev->uvd.cpu_addr, rdev->uvd_fw->data, rdev->uvd_fw->size);
+	memcpy_toio((void __iomem *)rdev->uvd.cpu_addr, rdev->uvd_fw->data, rdev->uvd_fw->size);
 
 	size = radeon_bo_size(rdev->uvd.vcpu_bo);
 	size -= rdev->uvd_fw->size;
@@ -294,7 +294,7 @@
 	ptr = rdev->uvd.cpu_addr;
 	ptr += rdev->uvd_fw->size;
 
-	memset(ptr, 0, size);
+	memset_io((void __iomem *)ptr, 0, size);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/rv740_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/rv740_dpm.c
@@ -250,8 +250,12 @@
 						     ASIC_INTERNAL_MEMORY_SS, vco_freq)) {
 			u32 reference_clock = rdev->clock.mpll.reference_freq;
 			u32 decoded_ref = rv740_get_decoded_reference_divider(dividers.ref_div);
-			u32 clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
-			u32 clk_v = 0x40000 * ss.percentage *
+			u32 clk_s, clk_v;
+
+			if (!decoded_ref)
+				return -EINVAL;
+			clk_s = reference_clock * 5 / (decoded_ref * ss.rate);
+			clk_v = 0x40000 * ss.percentage *
 				(dividers.whole_fb_div + (dividers.frac_fb_div / 8)) / (clk_s * 10000);
 
 			mpll_ss1 &= ~CLKV_MASK;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/si.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/si.c
@@ -3257,7 +3257,7 @@
 		/* XXX what about 12? */
 		rdev->config.si.tile_config |= (3 << 0);
 		break;
-	}	
+	}
 	switch ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) {
 	case 0: /* four banks */
 		rdev->config.si.tile_config |= 0 << 4;
@@ -5997,8 +5997,8 @@
 	}
 
 	/* setup interrupt control */
-	/* set dummy read address to ring address */
-	WREG32(INTERRUPT_CNTL2, rdev->ih.gpu_addr >> 8);
+	/* set dummy read address to dummy page address */
+	WREG32(INTERRUPT_CNTL2, rdev->dummy_page.addr >> 8);
 	interrupt_cntl = RREG32(INTERRUPT_CNTL);
 	/* IH_DUMMY_RD_OVERRIDE=0 - dummy read disabled with msi, enabled without msi
 	 * IH_DUMMY_RD_OVERRIDE=1 - dummy read controlled by IH_DUMMY_RD_EN
@@ -7087,7 +7087,6 @@
 {
 	struct pci_dev *root = rdev->pdev->bus->self;
 	enum pci_bus_speed speed_cap;
-	int bridge_pos, gpu_pos;
 	u32 speed_cntl, current_data_rate;
 	int i;
 	u16 tmp16;
@@ -7129,12 +7128,7 @@
 		DRM_INFO("enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0\n");
 	}
 
-	bridge_pos = pci_pcie_cap(root);
-	if (!bridge_pos)
-		return;
-
-	gpu_pos = pci_pcie_cap(rdev->pdev);
-	if (!gpu_pos)
+	if (!pci_is_pcie(root) || !pci_is_pcie(rdev->pdev))
 		return;
 
 	if (speed_cap == PCIE_SPEED_8_0GT) {
@@ -7144,14 +7138,8 @@
 			u16 bridge_cfg2, gpu_cfg2;
 			u32 max_lw, current_lw, tmp;
 
-			pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-			pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-			tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-			tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
-			pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+			pcie_capability_set_word(root, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
+			pcie_capability_set_word(rdev->pdev, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
 
 			tmp = RREG32_PCIE(PCIE_LC_STATUS1);
 			max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
@@ -7169,15 +7157,23 @@
 
 			for (i = 0; i < 10; i++) {
 				/* check status */
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_DEVSTA,
+							  &tmp16);
 				if (tmp16 & PCI_EXP_DEVSTA_TRPND)
 					break;
 
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
-
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL,
+							  &bridge_cfg);
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_LNKCTL,
+							  &gpu_cfg);
+
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &bridge_cfg2);
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &gpu_cfg2);
 
 				tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
 				tmp |= LC_SET_QUIESCE;
@@ -7190,26 +7186,38 @@
 				msleep(100);
 
 				/* linkctl */
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
-
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
-				tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
-				tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
-				pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
+				pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   bridge_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
+				pcie_capability_clear_and_set_word(rdev->pdev, PCI_EXP_LNKCTL,
+								   PCI_EXP_LNKCTL_HAWD,
+								   gpu_cfg &
+								   PCI_EXP_LNKCTL_HAWD);
 
 				/* linkctl2 */
-				pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
-
-				pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-				tmp16 &= ~((1 << 4) | (7 << 9));
-				tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
-				pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+				pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (bridge_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(root,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
+
+				pcie_capability_read_word(rdev->pdev,
+							  PCI_EXP_LNKCTL2,
+							  &tmp16);
+				tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN);
+				tmp16 |= (gpu_cfg2 &
+					  (PCI_EXP_LNKCTL2_ENTER_COMP |
+					   PCI_EXP_LNKCTL2_TX_MARGIN));
+				pcie_capability_write_word(rdev->pdev,
+							   PCI_EXP_LNKCTL2,
+							   tmp16);
 
 				tmp = RREG32_PCIE_PORT(PCIE_LC_CNTL4);
 				tmp &= ~LC_SET_QUIESCE;
@@ -7223,15 +7231,15 @@
 	speed_cntl &= ~LC_FORCE_DIS_SW_SPEED_CHANGE;
 	WREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL, speed_cntl);
 
-	pci_read_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
-	tmp16 &= ~0xf;
+	pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL2, &tmp16);
+	tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
 	if (speed_cap == PCIE_SPEED_8_0GT)
-		tmp16 |= 3; /* gen3 */
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
 	else if (speed_cap == PCIE_SPEED_5_0GT)
-		tmp16 |= 2; /* gen2 */
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
 	else
-		tmp16 |= 1; /* gen1 */
-	pci_write_config_word(rdev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
+		tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
+	pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL2, tmp16);
 
 	speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);
 	speed_cntl |= LC_INITIATE_LINK_SPEED_CHANGE;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/radeon/si_dpm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/radeon/si_dpm.c
@@ -3002,6 +3002,9 @@
 		    (rdev->pdev->device == 0x6605)) {
 			max_sclk = 75000;
 		}
+
+		if (rdev->pm.dpm.high_pixelclock_count > 1)
+			disable_sclk_switching = true;
 	}
 
 	if (rps->vce_active) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rcar-du/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/rcar-du/Kconfig
@@ -23,6 +23,7 @@
 config DRM_RCAR_LVDS
 	tristate "R-Car DU LVDS Encoder Support"
 	depends on DRM && DRM_BRIDGE && OF
+	select DRM_KMS_HELPER
 	select DRM_PANEL
 	select OF_FLATTREE
 	select OF_OVERLAY
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rcar-du/rcar_du_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rcar-du/rcar_du_plane.c
@@ -785,13 +785,15 @@
 
 		drm_plane_create_alpha_property(&plane->plane);
 
-		if (type == DRM_PLANE_TYPE_PRIMARY)
-			continue;
-
-		drm_object_attach_property(&plane->plane.base,
-					   rcdu->props.colorkey,
-					   RCAR_DU_COLORKEY_NONE);
-		drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
+		if (type == DRM_PLANE_TYPE_PRIMARY) {
+			drm_plane_create_zpos_immutable_property(&plane->plane,
+								 0);
+		} else {
+			drm_object_attach_property(&plane->plane.base,
+						   rcdu->props.colorkey,
+						   RCAR_DU_COLORKEY_NONE);
+			drm_plane_create_zpos_property(&plane->plane, 1, 1, 7);
+		}
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
@@ -392,12 +392,14 @@
 		drm_plane_helper_add(&plane->plane,
 				     &rcar_du_vsp_plane_helper_funcs);
 
-		if (type == DRM_PLANE_TYPE_PRIMARY)
-			continue;
-
-		drm_plane_create_alpha_property(&plane->plane);
-		drm_plane_create_zpos_property(&plane->plane, 1, 1,
-					       vsp->num_planes - 1);
+		if (type == DRM_PLANE_TYPE_PRIMARY) {
+			drm_plane_create_zpos_immutable_property(&plane->plane,
+								 0);
+		} else {
+			drm_plane_create_alpha_property(&plane->plane);
+			drm_plane_create_zpos_property(&plane->plane, 1, 1,
+						       vsp->num_planes - 1);
+		}
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -16,6 +16,7 @@
 #include <linux/of_graph.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
+#include <linux/sys_soc.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -842,8 +843,23 @@
 	return 0;
 }
 
+static const struct rcar_lvds_device_info rcar_lvds_r8a7790es1_info = {
+	.gen = 2,
+	.quirks = RCAR_LVDS_QUIRK_LANES,
+	.pll_setup = rcar_lvds_pll_setup_gen2,
+};
+
+static const struct soc_device_attribute lvds_quirk_matches[] = {
+	{
+		.soc_id = "r8a7790", .revision = "ES1.*",
+		.data = &rcar_lvds_r8a7790es1_info,
+	},
+	{ /* sentinel */ }
+};
+
 static int rcar_lvds_probe(struct platform_device *pdev)
 {
+	const struct soc_device_attribute *attr;
 	struct rcar_lvds *lvds;
 	struct resource *mem;
 	int ret;
@@ -857,6 +873,10 @@
 	lvds->dev = &pdev->dev;
 	lvds->info = of_device_get_match_data(&pdev->dev);
 
+	attr = soc_device_match(lvds_quirk_matches);
+	if (attr)
+		lvds->info = attr->data;
+
 	ret = rcar_lvds_parse_dt(lvds);
 	if (ret < 0)
 		return ret;
@@ -893,12 +913,6 @@
 	.pll_setup = rcar_lvds_pll_setup_gen2,
 };
 
-static const struct rcar_lvds_device_info rcar_lvds_r8a7790_info = {
-	.gen = 2,
-	.quirks = RCAR_LVDS_QUIRK_LANES,
-	.pll_setup = rcar_lvds_pll_setup_gen2,
-};
-
 static const struct rcar_lvds_device_info rcar_lvds_gen3_info = {
 	.gen = 3,
 	.quirks = RCAR_LVDS_QUIRK_PWD,
@@ -930,7 +944,7 @@
 	{ .compatible = "renesas,r8a7744-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a774a1-lvds", .data = &rcar_lvds_gen3_info },
 	{ .compatible = "renesas,r8a774c0-lvds", .data = &rcar_lvds_r8a77990_info },
-	{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_r8a7790_info },
+	{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a7791-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a7793-lvds", .data = &rcar_lvds_gen2_info },
 	{ .compatible = "renesas,r8a7795-lvds", .data = &rcar_lvds_gen3_info },
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
@@ -325,15 +325,9 @@
 			    void *data)
 {
 	struct rockchip_dp_device *dp = dev_get_drvdata(dev);
-	const struct rockchip_dp_chip_data *dp_data;
 	struct drm_device *drm_dev = data;
 	int ret;
 
-	dp_data = of_device_get_match_data(dev);
-	if (!dp_data)
-		return -ENODEV;
-
-	dp->data = dp_data;
 	dp->drm_dev = drm_dev;
 
 	ret = rockchip_dp_drm_create_encoder(dp);
@@ -344,16 +338,9 @@
 
 	dp->plat_data.encoder = &dp->encoder;
 
-	dp->plat_data.dev_type = dp->data->chip_type;
-	dp->plat_data.power_on_start = rockchip_dp_poweron_start;
-	dp->plat_data.power_off = rockchip_dp_powerdown;
-	dp->plat_data.get_modes = rockchip_dp_get_modes;
-
-	dp->adp = analogix_dp_bind(dev, dp->drm_dev, &dp->plat_data);
-	if (IS_ERR(dp->adp)) {
-		ret = PTR_ERR(dp->adp);
+	ret = analogix_dp_bind(dp->adp, drm_dev);
+	if (ret)
 		goto err_cleanup_encoder;
-	}
 
 	return 0;
 err_cleanup_encoder:
@@ -368,8 +355,6 @@
 
 	analogix_dp_unbind(dp->adp);
 	dp->encoder.funcs->destroy(&dp->encoder);
-
-	dp->adp = ERR_PTR(-ENODEV);
 }
 
 static const struct component_ops rockchip_dp_component_ops = {
@@ -380,10 +365,15 @@
 static int rockchip_dp_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
+	const struct rockchip_dp_chip_data *dp_data;
 	struct drm_panel *panel = NULL;
 	struct rockchip_dp_device *dp;
 	int ret;
 
+	dp_data = of_device_get_match_data(dev);
+	if (!dp_data)
+		return -ENODEV;
+
 	ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &panel, NULL);
 	if (ret < 0)
 		return ret;
@@ -394,7 +384,12 @@
 
 	dp->dev = dev;
 	dp->adp = ERR_PTR(-ENODEV);
+	dp->data = dp_data;
 	dp->plat_data.panel = panel;
+	dp->plat_data.dev_type = dp->data->chip_type;
+	dp->plat_data.power_on_start = rockchip_dp_poweron_start;
+	dp->plat_data.power_off = rockchip_dp_powerdown;
+	dp->plat_data.get_modes = rockchip_dp_get_modes;
 
 	ret = rockchip_dp_of_probe(dp);
 	if (ret < 0)
@@ -402,12 +397,27 @@
 
 	platform_set_drvdata(pdev, dp);
 
-	return component_add(dev, &rockchip_dp_component_ops);
+	dp->adp = analogix_dp_probe(dev, &dp->plat_data);
+	if (IS_ERR(dp->adp))
+		return PTR_ERR(dp->adp);
+
+	ret = component_add(dev, &rockchip_dp_component_ops);
+	if (ret)
+		goto err_dp_remove;
+
+	return 0;
+
+err_dp_remove:
+	analogix_dp_remove(dp->adp);
+	return ret;
 }
 
 static int rockchip_dp_remove(struct platform_device *pdev)
 {
+	struct rockchip_dp_device *dp = platform_get_drvdata(pdev);
+
 	component_del(&pdev->dev, &rockchip_dp_component_ops);
+	analogix_dp_remove(dp->adp);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/cdn-dp-core.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/cdn-dp-core.c
@@ -72,6 +72,7 @@
 	ret = regmap_write(dp->grf, reg, val);
 	if (ret) {
 		DRM_DEV_ERROR(dp->dev, "Could not write to GRF: %d\n", ret);
+		clk_disable_unprepare(dp->grf_clk);
 		return ret;
 	}
 
@@ -274,8 +275,9 @@
 	return ret;
 }
 
-static int cdn_dp_connector_mode_valid(struct drm_connector *connector,
-				       struct drm_display_mode *mode)
+static enum drm_mode_status
+cdn_dp_connector_mode_valid(struct drm_connector *connector,
+			    struct drm_display_mode *mode)
 {
 	struct cdn_dp_device *dp = connector_to_dp(connector);
 	struct drm_display_info *display_info = &dp->connector.display_info;
@@ -561,7 +563,7 @@
 	video->v_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NVSYNC);
 	video->h_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NHSYNC);
 
-	memcpy(&dp->mode, adjusted, sizeof(*mode));
+	drm_mode_copy(&dp->mode, adjusted);
 }
 
 static bool cdn_dp_check_link_status(struct cdn_dp_device *dp)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
@@ -231,7 +231,8 @@
 	struct dw_mipi_dsi *dmd;
 	const struct rockchip_dw_dsi_chip_data *cdata;
 	struct dw_mipi_dsi_plat_data pdata;
-	int devcnt;
+
+	bool dsi_bound;
 };
 
 struct dphy_pll_parameter_map {
@@ -480,8 +481,8 @@
 	unsigned long best_freq = 0;
 	unsigned long fvco_min, fvco_max, fin, fout;
 	unsigned int min_prediv, max_prediv;
-	unsigned int _prediv, uninitialized_var(best_prediv);
-	unsigned long _fbdiv, uninitialized_var(best_fbdiv);
+	unsigned int _prediv, best_prediv;
+	unsigned long _fbdiv, best_fbdiv;
 	unsigned long min_delta = ULONG_MAX;
 
 	dsi->format = format;
@@ -564,13 +565,8 @@
 	.get_lane_mbps = dw_mipi_dsi_get_lane_mbps,
 };
 
-static void dw_mipi_dsi_rockchip_config(struct dw_mipi_dsi_rockchip *dsi,
-					int mux)
+static void dw_mipi_dsi_rockchip_config(struct dw_mipi_dsi_rockchip *dsi)
 {
-	if (dsi->cdata->lcdsel_grf_reg)
-		regmap_write(dsi->grf_regmap, dsi->cdata->lcdsel_grf_reg,
-			mux ? dsi->cdata->lcdsel_lit : dsi->cdata->lcdsel_big);
-
 	if (dsi->cdata->lanecfg1_grf_reg)
 		regmap_write(dsi->grf_regmap, dsi->cdata->lanecfg1_grf_reg,
 					      dsi->cdata->lanecfg1);
@@ -584,6 +580,13 @@
 					      dsi->cdata->enable);
 }
 
+static void dw_mipi_dsi_rockchip_set_lcdsel(struct dw_mipi_dsi_rockchip *dsi,
+					    int mux)
+{
+	regmap_write(dsi->grf_regmap, dsi->cdata->lcdsel_grf_reg,
+		mux ? dsi->cdata->lcdsel_lit : dsi->cdata->lcdsel_big);
+}
+
 static int
 dw_mipi_dsi_encoder_atomic_check(struct drm_encoder *encoder,
 				 struct drm_crtc_state *crtc_state,
@@ -624,10 +627,6 @@
 	if (mux < 0)
 		return;
 
-	pm_runtime_get_sync(dsi->dev);
-	if (dsi->slave)
-		pm_runtime_get_sync(dsi->slave->dev);
-
 	/*
 	 * For the RK3399, the clk of grf must be enabled before writing grf
 	 * register. And for RK3288 or other soc, this grf_clk must be NULL,
@@ -639,27 +638,17 @@
 		return;
 	}
 
-	dw_mipi_dsi_rockchip_config(dsi, mux);
+	dw_mipi_dsi_rockchip_set_lcdsel(dsi, mux);
 	if (dsi->slave)
-		dw_mipi_dsi_rockchip_config(dsi->slave, mux);
+		dw_mipi_dsi_rockchip_set_lcdsel(dsi->slave, mux);
 
 	clk_disable_unprepare(dsi->grf_clk);
 }
 
-static void dw_mipi_dsi_encoder_disable(struct drm_encoder *encoder)
-{
-	struct dw_mipi_dsi_rockchip *dsi = to_dsi(encoder);
-
-	if (dsi->slave)
-		pm_runtime_put(dsi->slave->dev);
-	pm_runtime_put(dsi->dev);
-}
-
 static const struct drm_encoder_helper_funcs
 dw_mipi_dsi_encoder_helper_funcs = {
 	.atomic_check = dw_mipi_dsi_encoder_atomic_check,
 	.enable = dw_mipi_dsi_encoder_enable,
-	.disable = dw_mipi_dsi_encoder_disable,
 };
 
 static const struct drm_encoder_funcs dw_mipi_dsi_encoder_funcs = {
@@ -794,25 +783,56 @@
 		put_device(second);
 	}
 
+	pm_runtime_get_sync(dsi->dev);
+	if (dsi->slave)
+		pm_runtime_get_sync(dsi->slave->dev);
+
 	ret = clk_prepare_enable(dsi->pllref_clk);
 	if (ret) {
 		DRM_DEV_ERROR(dev, "Failed to enable pllref_clk: %d\n", ret);
-		return ret;
+		goto out_pm_runtime;
+	}
+
+	/*
+	 * With the GRF clock running, write lane and dual-mode configurations
+	 * that won't change immediately. If we waited until enable() to do
+	 * this, things like panel preparation would not be able to send
+	 * commands over DSI.
+	 */
+	ret = clk_prepare_enable(dsi->grf_clk);
+	if (ret) {
+		DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
+		goto out_pm_runtime;
 	}
 
+	dw_mipi_dsi_rockchip_config(dsi);
+	if (dsi->slave)
+		dw_mipi_dsi_rockchip_config(dsi->slave);
+
+	clk_disable_unprepare(dsi->grf_clk);
+
 	ret = rockchip_dsi_drm_create_encoder(dsi, drm_dev);
 	if (ret) {
 		DRM_DEV_ERROR(dev, "Failed to create drm encoder\n");
-		return ret;
+		goto out_pm_runtime;
 	}
 
 	ret = dw_mipi_dsi_bind(dsi->dmd, &dsi->encoder);
 	if (ret) {
 		DRM_DEV_ERROR(dev, "Failed to bind: %d\n", ret);
-		return ret;
+		goto out_pm_runtime;
 	}
 
+	dsi->dsi_bound = true;
+
 	return 0;
+
+out_pm_runtime:
+	pm_runtime_put(dsi->dev);
+	if (dsi->slave)
+		pm_runtime_put(dsi->slave->dev);
+
+	return ret;
 }
 
 static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
@@ -824,9 +844,15 @@
 	if (dsi->is_slave)
 		return;
 
+	dsi->dsi_bound = false;
+
 	dw_mipi_dsi_unbind(dsi->dmd);
 
 	clk_disable_unprepare(dsi->pllref_clk);
+
+	pm_runtime_put(dsi->dev);
+	if (dsi->slave)
+		pm_runtime_put(dsi->slave->dev);
 }
 
 static const struct component_ops dw_mipi_dsi_rockchip_ops = {
@@ -884,6 +910,36 @@
 	.detach = dw_mipi_dsi_rockchip_host_detach,
 };
 
+static int __maybe_unused dw_mipi_dsi_rockchip_resume(struct device *dev)
+{
+	struct dw_mipi_dsi_rockchip *dsi = dev_get_drvdata(dev);
+	int ret;
+
+	/*
+	 * Re-configure DSI state, if we were previously initialized. We need
+	 * to do this before rockchip_drm_drv tries to re-enable() any panels.
+	 */
+	if (dsi->dsi_bound) {
+		ret = clk_prepare_enable(dsi->grf_clk);
+		if (ret) {
+			DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
+			return ret;
+		}
+
+		dw_mipi_dsi_rockchip_config(dsi);
+		if (dsi->slave)
+			dw_mipi_dsi_rockchip_config(dsi->slave);
+
+		clk_disable_unprepare(dsi->grf_clk);
+	}
+
+	return 0;
+}
+
+static const struct dev_pm_ops dw_mipi_dsi_rockchip_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, dw_mipi_dsi_rockchip_resume)
+};
+
 static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -967,23 +1023,16 @@
 		if (ret != -EPROBE_DEFER)
 			DRM_DEV_ERROR(dev,
 				      "Failed to probe dw_mipi_dsi: %d\n", ret);
-		goto err_clkdisable;
+		return ret;
 	}
 
 	return 0;
-
-err_clkdisable:
-	clk_disable_unprepare(dsi->pllref_clk);
-	return ret;
 }
 
 static int dw_mipi_dsi_rockchip_remove(struct platform_device *pdev)
 {
 	struct dw_mipi_dsi_rockchip *dsi = platform_get_drvdata(pdev);
 
-	if (dsi->devcnt == 0)
-		component_del(dsi->dev, &dw_mipi_dsi_rockchip_ops);
-
 	dw_mipi_dsi_remove(dsi->dmd);
 
 	return 0;
@@ -1072,6 +1121,13 @@
 	.remove		= dw_mipi_dsi_rockchip_remove,
 	.driver		= {
 		.of_match_table = dw_mipi_dsi_rockchip_dt_ids,
+		.pm	= &dw_mipi_dsi_rockchip_pm_ops,
 		.name	= "dw-mipi-dsi-rockchip",
+		/*
+		 * For dual-DSI display, one DSI pokes at the other DSI's
+		 * drvdata in dw_mipi_dsi_rockchip_find_second(). This is not
+		 * safe for asynchronous probe.
+		 */
+		.probe_type = PROBE_FORCE_SYNCHRONOUS,
 	},
 };
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
@@ -528,13 +528,6 @@
 		return ret;
 	}
 
-	ret = clk_prepare_enable(hdmi->vpll_clk);
-	if (ret) {
-		DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-			      ret);
-		return ret;
-	}
-
 	hdmi->phy = devm_phy_optional_get(dev, "hdmi");
 	if (IS_ERR(hdmi->phy)) {
 		ret = PTR_ERR(hdmi->phy);
@@ -543,6 +536,13 @@
 		return ret;
 	}
 
+	ret = clk_prepare_enable(hdmi->vpll_clk);
+	if (ret) {
+		DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
+			      ret);
+		return ret;
+	}
+
 	drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
 	drm_encoder_init(drm, encoder, &dw_hdmi_rockchip_encoder_funcs,
 			 DRM_MODE_ENCODER_TMDS, NULL);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -487,7 +487,7 @@
 	inno_hdmi_setup(hdmi, adj_mode);
 
 	/* Store the display mode for plugin/DPMS poweron events */
-	memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode));
+	drm_mode_copy(&hdmi->previous_mode, adj_mode);
 }
 
 static void inno_hdmi_encoder_enable(struct drm_encoder *encoder)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/rk3066_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/rk3066_hdmi.c
@@ -382,7 +382,7 @@
 	struct rk3066_hdmi *hdmi = to_rk3066_hdmi(encoder);
 
 	/* Store the display mode for plugin/DPMS poweron events. */
-	memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode));
+	drm_mode_copy(&hdmi->previous_mode, adj_mode);
 }
 
 static void rk3066_hdmi_encoder_enable(struct drm_encoder *encoder)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
@@ -249,9 +249,6 @@
 	else
 		ret = rockchip_drm_gem_object_mmap_dma(obj, vma);
 
-	if (ret)
-		drm_gem_vm_close(vma);
-
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ linux-ein-5.4.0/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -654,13 +654,13 @@
 	if (crtc->state->self_refresh_active)
 		rockchip_drm_set_win_enabled(crtc, false);
 
+	if (crtc->state->self_refresh_active)
+		goto out;
+
 	mutex_lock(&vop->vop_lock);
 
 	drm_crtc_vblank_off(crtc);
 
-	if (crtc->state->self_refresh_active)
-		goto out;
-
 	/*
 	 * Vop standby will take effect at end of current frame,
 	 * if dsp hold valid irq happen, it means standby complete.
@@ -692,9 +692,9 @@
 	vop_core_clks_disable(vop);
 	pm_runtime_put(vop->dev);
 
-out:
 	mutex_unlock(&vop->vop_lock);
 
+out:
 	if (crtc->state->event && !crtc->state->active) {
 		spin_lock_irq(&crtc->dev->event_lock);
 		drm_crtc_send_vblank_event(crtc, crtc->state->event);
@@ -1040,10 +1040,41 @@
 				struct drm_display_mode *adjusted_mode)
 {
 	struct vop *vop = to_vop(crtc);
+	unsigned long rate;
 
-	adjusted_mode->clock =
-		DIV_ROUND_UP(clk_round_rate(vop->dclk,
-					    adjusted_mode->clock * 1000), 1000);
+	/*
+	 * Clock craziness.
+	 *
+	 * Key points:
+	 *
+	 * - DRM works in in kHz.
+	 * - Clock framework works in Hz.
+	 * - Rockchip's clock driver picks the clock rate that is the
+	 *   same _OR LOWER_ than the one requested.
+	 *
+	 * Action plan:
+	 *
+	 * 1. When DRM gives us a mode, we should add 999 Hz to it.  That way
+	 *    if the clock we need is 60000001 Hz (~60 MHz) and DRM tells us to
+	 *    make 60000 kHz then the clock framework will actually give us
+	 *    the right clock.
+	 *
+	 *    NOTE: if the PLL (maybe through a divider) could actually make
+	 *    a clock rate 999 Hz higher instead of the one we want then this
+	 *    could be a problem.  Unfortunately there's not much we can do
+	 *    since it's baked into DRM to use kHz.  It shouldn't matter in
+	 *    practice since Rockchip PLLs are controlled by tables and
+	 *    even if there is a divider in the middle I wouldn't expect PLL
+	 *    rates in the table that are just a few kHz different.
+	 *
+	 * 2. Get the clock framework to round the rate for us to tell us
+	 *    what it will actually make.
+	 *
+	 * 3. Store the rounded up rate so that we don't need to worry about
+	 *    this in the actual clk_set_rate().
+	 */
+	rate = clk_round_rate(vop->dclk, adjusted_mode->clock * 1000 + 999);
+	adjusted_mode->clock = DIV_ROUND_UP(rate, 1000);
 
 	return true;
 }
@@ -1257,6 +1288,9 @@
 {
 	struct rockchip_crtc_state *rockchip_state;
 
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
 	rockchip_state = kzalloc(sizeof(*rockchip_state), GFP_KERNEL);
 	if (!rockchip_state)
 		return NULL;
@@ -1817,10 +1851,10 @@
 	vop_win_init(vop);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	vop->len = resource_size(res);
 	vop->regs = devm_ioremap_resource(dev, res);
 	if (IS_ERR(vop->regs))
 		return PTR_ERR(vop->regs);
+	vop->len = resource_size(res);
 
 	vop->regsbak = devm_kzalloc(dev, vop->len, GFP_KERNEL);
 	if (!vop->regsbak)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/scheduler/sched_entity.c
+++ linux-ein-5.4.0/drivers/gpu/drm/scheduler/sched_entity.c
@@ -235,11 +235,16 @@
 static void drm_sched_entity_kill_jobs(struct drm_sched_entity *entity)
 {
 	struct drm_sched_job *job;
+	struct dma_fence *f;
 	int r;
 
 	while ((job = to_drm_sched_job(spsc_queue_pop(&entity->job_queue)))) {
 		struct drm_sched_fence *s_fence = job->s_fence;
 
+		/* Wait for all dependencies to avoid data corruptions */
+		while ((f = job->sched->ops->dependency(job, entity)))
+			dma_fence_wait(f, false);
+
 		drm_sched_fence_scheduled(s_fence);
 		dma_fence_set_error(&s_fence->finished, -ESRCH);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/scheduler/sched_main.c
+++ linux-ein-5.4.0/drivers/gpu/drm/scheduler/sched_main.c
@@ -284,10 +284,21 @@
 	unsigned long flags;
 
 	sched = container_of(work, struct drm_gpu_scheduler, work_tdr.work);
+
+	/* Protects against concurrent deletion in drm_sched_get_cleanup_job */
+	spin_lock_irqsave(&sched->job_list_lock, flags);
 	job = list_first_entry_or_null(&sched->ring_mirror_list,
 				       struct drm_sched_job, node);
 
 	if (job) {
+		/*
+		 * Remove the bad job so it cannot be freed by concurrent
+		 * drm_sched_cleanup_jobs. It will be reinserted back after sched->thread
+		 * is parked at which point it's safe.
+		 */
+		list_del_init(&job->node);
+		spin_unlock_irqrestore(&sched->job_list_lock, flags);
+
 		job->sched->ops->timedout_job(job);
 
 		/*
@@ -298,6 +309,8 @@
 			job->sched->ops->free_job(job);
 			sched->free_guilty = false;
 		}
+	} else {
+		spin_unlock_irqrestore(&sched->job_list_lock, flags);
 	}
 
 	spin_lock_irqsave(&sched->job_list_lock, flags);
@@ -370,6 +383,20 @@
 	kthread_park(sched->thread);
 
 	/*
+	 * Reinsert back the bad job here - now it's safe as
+	 * drm_sched_get_cleanup_job cannot race against us and release the
+	 * bad job at this point - we parked (waited for) any in progress
+	 * (earlier) cleanups and drm_sched_get_cleanup_job will not be called
+	 * now until the scheduler thread is unparked.
+	 */
+	if (bad && bad->sched == sched)
+		/*
+		 * Add at the head of the queue to reflect it was the earliest
+		 * job extracted.
+		 */
+		list_add(&bad->node, &sched->ring_mirror_list);
+
+	/*
 	 * Iterate the job list from later to  earlier one and either deactive
 	 * their HW callbacks or remove them from mirror list if they already
 	 * signaled.
@@ -496,8 +523,10 @@
 		fence = sched->ops->run_job(s_job);
 
 		if (IS_ERR_OR_NULL(fence)) {
+			if (IS_ERR(fence))
+				dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
+
 			s_job->s_fence->parent = NULL;
-			dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
 		} else {
 			s_job->s_fence->parent = fence;
 		}
@@ -627,48 +656,48 @@
 
 	trace_drm_sched_process_job(s_fence);
 
+	dma_fence_get(&s_fence->finished);
 	drm_sched_fence_finished(s_fence);
+	dma_fence_put(&s_fence->finished);
 	wake_up_interruptible(&sched->wake_up_worker);
 }
 
 /**
- * drm_sched_cleanup_jobs - destroy finished jobs
+ * drm_sched_get_cleanup_job - fetch the next finished job to be destroyed
  *
  * @sched: scheduler instance
  *
- * Remove all finished jobs from the mirror list and destroy them.
+ * Returns the next finished job from the mirror list (if there is one)
+ * ready for it to be destroyed.
  */
-static void drm_sched_cleanup_jobs(struct drm_gpu_scheduler *sched)
+static struct drm_sched_job *
+drm_sched_get_cleanup_job(struct drm_gpu_scheduler *sched)
 {
+	struct drm_sched_job *job;
 	unsigned long flags;
 
 	/* Don't destroy jobs while the timeout worker is running */
 	if (sched->timeout != MAX_SCHEDULE_TIMEOUT &&
 	    !cancel_delayed_work(&sched->work_tdr))
-		return;
-
+		return NULL;
 
-	while (!list_empty(&sched->ring_mirror_list)) {
-		struct drm_sched_job *job;
+	spin_lock_irqsave(&sched->job_list_lock, flags);
 
-		job = list_first_entry(&sched->ring_mirror_list,
+	job = list_first_entry_or_null(&sched->ring_mirror_list,
 				       struct drm_sched_job, node);
-		if (!dma_fence_is_signaled(&job->s_fence->finished))
-			break;
 
-		spin_lock_irqsave(&sched->job_list_lock, flags);
+	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
 		/* remove job from ring_mirror_list */
 		list_del_init(&job->node);
-		spin_unlock_irqrestore(&sched->job_list_lock, flags);
-
-		sched->ops->free_job(job);
+	} else {
+		job = NULL;
+		/* queue timeout for next job */
+		drm_sched_start_timeout(sched);
 	}
 
-	/* queue timeout for next job */
-	spin_lock_irqsave(&sched->job_list_lock, flags);
-	drm_sched_start_timeout(sched);
 	spin_unlock_irqrestore(&sched->job_list_lock, flags);
 
+	return job;
 }
 
 /**
@@ -708,12 +737,19 @@
 		struct drm_sched_fence *s_fence;
 		struct drm_sched_job *sched_job;
 		struct dma_fence *fence;
+		struct drm_sched_job *cleanup_job = NULL;
 
 		wait_event_interruptible(sched->wake_up_worker,
-					 (drm_sched_cleanup_jobs(sched),
+					 (cleanup_job = drm_sched_get_cleanup_job(sched)) ||
 					 (!drm_sched_blocked(sched) &&
 					  (entity = drm_sched_select_entity(sched))) ||
-					 kthread_should_stop()));
+					 kthread_should_stop());
+
+		if (cleanup_job) {
+			sched->ops->free_job(cleanup_job);
+			/* queue timeout for next job */
+			drm_sched_start_timeout(sched);
+		}
 
 		if (!entity)
 			continue;
@@ -741,8 +777,9 @@
 					  r);
 			dma_fence_put(fence);
 		} else {
+			if (IS_ERR(fence))
+				dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
 
-			dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
 			drm_sched_process_job(NULL, &sched_job->cb);
 		}
 
@@ -814,6 +851,9 @@
 	if (sched->thread)
 		kthread_stop(sched->thread);
 
+	/* Confirm no work left behind accessing device structures */
+	cancel_delayed_work_sync(&sched->work_tdr);
+
 	sched->ready = false;
 }
 EXPORT_SYMBOL(drm_sched_fini);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/selftests/drm_cmdline_selftests.h
+++ linux-ein-5.4.0/drivers/gpu/drm/selftests/drm_cmdline_selftests.h
@@ -53,6 +53,7 @@
 cmdline_test(drm_cmdline_test_rotate_90)
 cmdline_test(drm_cmdline_test_rotate_180)
 cmdline_test(drm_cmdline_test_rotate_270)
+cmdline_test(drm_cmdline_test_rotate_multiple)
 cmdline_test(drm_cmdline_test_rotate_invalid_val)
 cmdline_test(drm_cmdline_test_rotate_truncated)
 cmdline_test(drm_cmdline_test_hmirror)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
+++ linux-ein-5.4.0/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
@@ -856,6 +856,17 @@
 	return 0;
 }
 
+static int drm_cmdline_test_rotate_multiple(void *ignored)
+{
+	struct drm_cmdline_mode mode = { };
+
+	FAIL_ON(drm_mode_parse_command_line_for_connector("720x480,rotate=0,rotate=90",
+							  &no_connector,
+							  &mode));
+
+	return 0;
+}
+
 static int drm_cmdline_test_rotate_invalid_val(void *ignored)
 {
 	struct drm_cmdline_mode mode = { };
@@ -888,7 +899,7 @@
 	FAIL_ON(!mode.specified);
 	FAIL_ON(mode.xres != 720);
 	FAIL_ON(mode.yres != 480);
-	FAIL_ON(mode.rotation_reflection != DRM_MODE_REFLECT_X);
+	FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_X));
 
 	FAIL_ON(mode.refresh_specified);
 
@@ -913,7 +924,7 @@
 	FAIL_ON(!mode.specified);
 	FAIL_ON(mode.xres != 720);
 	FAIL_ON(mode.yres != 480);
-	FAIL_ON(mode.rotation_reflection != DRM_MODE_REFLECT_Y);
+	FAIL_ON(mode.rotation_reflection != (DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_Y));
 
 	FAIL_ON(mode.refresh_specified);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sti/sti_dvo.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sti/sti_dvo.c
@@ -287,7 +287,7 @@
 
 	DRM_DEBUG_DRIVER("\n");
 
-	memcpy(&dvo->mode, mode, sizeof(struct drm_display_mode));
+	drm_mode_copy(&dvo->mode, mode);
 
 	/* According to the path used (main or aux), the dvo clocks should
 	 * have a different parent clock. */
@@ -345,8 +345,9 @@
 
 #define CLK_TOLERANCE_HZ 50
 
-static int sti_dvo_connector_mode_valid(struct drm_connector *connector,
-					struct drm_display_mode *mode)
+static enum drm_mode_status
+sti_dvo_connector_mode_valid(struct drm_connector *connector,
+			     struct drm_display_mode *mode)
 {
 	int target = mode->clock * 1000;
 	int target_min = target - CLK_TOLERANCE_HZ;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sti/sti_hda.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sti/sti_hda.c
@@ -522,7 +522,7 @@
 
 	DRM_DEBUG_DRIVER("\n");
 
-	memcpy(&hda->mode, mode, sizeof(struct drm_display_mode));
+	drm_mode_copy(&hda->mode, mode);
 
 	if (!hda_get_mode_idx(hda->mode, &mode_idx)) {
 		DRM_ERROR("Undefined mode\n");
@@ -600,8 +600,9 @@
 
 #define CLK_TOLERANCE_HZ 50
 
-static int sti_hda_connector_mode_valid(struct drm_connector *connector,
-					struct drm_display_mode *mode)
+static enum drm_mode_status
+sti_hda_connector_mode_valid(struct drm_connector *connector,
+			     struct drm_display_mode *mode)
 {
 	int target = mode->clock * 1000;
 	int target_min = target - CLK_TOLERANCE_HZ;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sti/sti_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sti/sti_hdmi.c
@@ -933,7 +933,7 @@
 	DRM_DEBUG_DRIVER("\n");
 
 	/* Copy the drm display mode in the connector local structure */
-	memcpy(&hdmi->mode, mode, sizeof(struct drm_display_mode));
+	drm_mode_copy(&hdmi->mode, mode);
 
 	/* Update clock framerate according to the selected mode */
 	ret = clk_set_rate(hdmi->clk_pix, mode->clock * 1000);
@@ -996,8 +996,9 @@
 
 #define CLK_TOLERANCE_HZ 50
 
-static int sti_hdmi_connector_mode_valid(struct drm_connector *connector,
-					struct drm_display_mode *mode)
+static enum drm_mode_status
+sti_hdmi_connector_mode_valid(struct drm_connector *connector,
+			      struct drm_display_mode *mode)
 {
 	int target = mode->clock * 1000;
 	int target_min = target - CLK_TOLERANCE_HZ;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/stm/ltdc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/stm/ltdc.c
@@ -424,9 +424,12 @@
 				    struct drm_crtc_state *old_state)
 {
 	struct ltdc_device *ldev = crtc_to_ltdc(crtc);
+	struct drm_device *ddev = crtc->dev;
 
 	DRM_DEBUG_DRIVER("\n");
 
+	pm_runtime_get_sync(ddev->dev);
+
 	/* Sets the background color value */
 	reg_write(ldev->regs, LTDC_BCCR, BCCR_BCBLACK);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/Kconfig
@@ -46,6 +46,7 @@
 	default MACH_SUN8I
 	select CRC_CCITT
 	select DRM_MIPI_DSI
+	select RESET_CONTROLLER
 	select PHY_SUN6I_MIPI_DPHY
 	help
 	  Choose this option if you want have an Allwinner SoC with
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_backend.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_backend.c
@@ -589,8 +589,7 @@
 
 	/* We can't have an alpha plane at the lowest position */
 	if (!backend->quirks->supports_lowest_plane_alpha &&
-	    (plane_states[0]->fb->format->has_alpha ||
-	    (plane_states[0]->alpha != DRM_BLEND_ALPHA_OPAQUE)))
+	    (plane_states[0]->alpha != DRM_BLEND_ALPHA_OPAQUE))
 		return -EINVAL;
 
 	for (i = 1; i < num_planes; i++) {
@@ -986,7 +985,6 @@
 
 static const struct sun4i_backend_quirks sun7i_backend_quirks = {
 	.needs_output_muxing = true,
-	.supports_lowest_plane_alpha = true,
 };
 
 static const struct sun4i_backend_quirks sun8i_a33_backend_quirks = {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -85,7 +85,6 @@
 	}
 
 	drm_mode_config_init(drm);
-	drm->mode_config.allow_fb_modifiers = true;
 
 	ret = component_bind_all(drm->dev, drm);
 	if (ret) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_frontend.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_frontend.c
@@ -407,6 +407,7 @@
 	struct drm_framebuffer *fb = state->fb;
 	const struct drm_format_info *format = fb->format;
 	uint64_t modifier = fb->modifier;
+	unsigned int ch1_phase_idx;
 	u32 out_fmt_val;
 	u32 in_fmt_val, in_mod_val, in_ps_val;
 	unsigned int i;
@@ -442,18 +443,19 @@
 	 * I have no idea what this does exactly, but it seems to be
 	 * related to the scaler FIR filter phase parameters.
 	 */
+	ch1_phase_idx = (format->num_planes > 1) ? 1 : 0;
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH0_HORZPHASE_REG,
-		     frontend->data->ch_phase[0].horzphase);
+		     frontend->data->ch_phase[0]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH1_HORZPHASE_REG,
-		     frontend->data->ch_phase[1].horzphase);
+		     frontend->data->ch_phase[ch1_phase_idx]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH0_VERTPHASE0_REG,
-		     frontend->data->ch_phase[0].vertphase[0]);
+		     frontend->data->ch_phase[0]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH1_VERTPHASE0_REG,
-		     frontend->data->ch_phase[1].vertphase[0]);
+		     frontend->data->ch_phase[ch1_phase_idx]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH0_VERTPHASE1_REG,
-		     frontend->data->ch_phase[0].vertphase[1]);
+		     frontend->data->ch_phase[0]);
 	regmap_write(frontend->regs, SUN4I_FRONTEND_CH1_VERTPHASE1_REG,
-		     frontend->data->ch_phase[1].vertphase[1]);
+		     frontend->data->ch_phase[ch1_phase_idx]);
 
 	/*
 	 * Checking the input format is sufficient since we currently only
@@ -687,30 +689,12 @@
 };
 
 static const struct sun4i_frontend_data sun4i_a10_frontend = {
-	.ch_phase		= {
-		{
-			.horzphase = 0,
-			.vertphase = { 0, 0 },
-		},
-		{
-			.horzphase = 0xfc000,
-			.vertphase = { 0xfc000, 0xfc000 },
-		},
-	},
+	.ch_phase		= { 0x000, 0xfc000 },
 	.has_coef_rdy		= true,
 };
 
 static const struct sun4i_frontend_data sun8i_a33_frontend = {
-	.ch_phase		= {
-		{
-			.horzphase = 0x400,
-			.vertphase = { 0x400, 0x400 },
-		},
-		{
-			.horzphase = 0x400,
-			.vertphase = { 0x400, 0x400 },
-		},
-	},
+	.ch_phase		= { 0x400, 0xfc400 },
 	.has_coef_access_ctrl	= true,
 };
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_frontend.h
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_frontend.h
@@ -115,11 +115,7 @@
 struct sun4i_frontend_data {
 	bool	has_coef_access_ctrl;
 	bool	has_coef_rdy;
-
-	struct {
-		u32	horzphase;
-		u32	vertphase[2];
-	} ch_phase[2];
+	u32	ch_phase[2];
 };
 
 struct sun4i_frontend {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_hdmi.h
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_hdmi.h
@@ -148,7 +148,7 @@
 #define SUN4I_HDMI_DDC_CMD_IMPLICIT_WRITE	3
 
 #define SUN4I_HDMI_DDC_CLK_REG		0x528
-#define SUN4I_HDMI_DDC_CLK_M(m)			(((m) & 0x7) << 3)
+#define SUN4I_HDMI_DDC_CLK_M(m)			(((m) & 0xf) << 3)
 #define SUN4I_HDMI_DDC_CLK_N(n)			((n) & 0x7)
 
 #define SUN4I_HDMI_DDC_LINE_CTRL_REG	0x540
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_hdmi_ddc_clk.c
@@ -33,7 +33,7 @@
 	unsigned long best_rate = 0;
 	u8 best_m = 0, best_n = 0, _m, _n;
 
-	for (_m = 0; _m < 8; _m++) {
+	for (_m = 0; _m < 16; _m++) {
 		for (_n = 0; _n < 8; _n++) {
 			unsigned long tmp_rate;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c
@@ -262,9 +262,8 @@
 	struct sun4i_hdmi *hdmi = drm_connector_to_sun4i_hdmi(connector);
 	unsigned long reg;
 
-	if (readl_poll_timeout(hdmi->base + SUN4I_HDMI_HPD_REG, reg,
-			       reg & SUN4I_HDMI_HPD_HIGH,
-			       0, 500000)) {
+	reg = readl(hdmi->base + SUN4I_HDMI_HPD_REG);
+	if (!(reg & SUN4I_HDMI_HPD_HIGH)) {
 		cec_phys_addr_invalidate(hdmi->cec_adap);
 		return connector_status_disconnected;
 	}
@@ -683,8 +682,6 @@
 	struct sun4i_hdmi *hdmi = dev_get_drvdata(dev);
 
 	cec_unregister_adapter(hdmi->cec_adap);
-	drm_connector_cleanup(&hdmi->connector);
-	drm_encoder_cleanup(&hdmi->encoder);
 	i2c_del_adapter(hdmi->i2c);
 	i2c_put_adapter(hdmi->ddc_i2c);
 	clk_disable_unprepare(hdmi->mod_clk);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -488,7 +488,7 @@
 
 	WARN_ON(!tcon->quirks->has_channel_0);
 
-	tcon->dclk_min_div = 1;
+	tcon->dclk_min_div = tcon->quirks->dclk_min_div;
 	tcon->dclk_max_div = 127;
 	sun4i_tcon0_mode_set_common(tcon, mode);
 
@@ -545,30 +545,13 @@
 	if (info->bus_flags & DRM_BUS_FLAG_DE_LOW)
 		val |= SUN4I_TCON0_IO_POL_DE_NEGATIVE;
 
-	/*
-	 * On A20 and similar SoCs, the only way to achieve Positive Edge
-	 * (Rising Edge), is setting dclk clock phase to 2/3(240°).
-	 * By default TCON works in Negative Edge(Falling Edge),
-	 * this is why phase is set to 0 in that case.
-	 * Unfortunately there's no way to logically invert dclk through
-	 * IO_POL register.
-	 * The only acceptable way to work, triple checked with scope,
-	 * is using clock phase set to 0° for Negative Edge and set to 240°
-	 * for Positive Edge.
-	 * On A33 and similar SoCs there would be a 90° phase option,
-	 * but it divides also dclk by 2.
-	 * Following code is a way to avoid quirks all around TCON
-	 * and DOTCLOCK drivers.
-	 */
-	if (info->bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE)
-		clk_set_phase(tcon->dclk, 240);
-
 	if (info->bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)
-		clk_set_phase(tcon->dclk, 0);
+		val |= SUN4I_TCON0_IO_POL_DCLK_DRIVE_NEGEDGE;
 
 	regmap_update_bits(tcon->regs, SUN4I_TCON0_IO_POL_REG,
 			   SUN4I_TCON0_IO_POL_HSYNC_POSITIVE |
 			   SUN4I_TCON0_IO_POL_VSYNC_POSITIVE |
+			   SUN4I_TCON0_IO_POL_DCLK_DRIVE_NEGEDGE |
 			   SUN4I_TCON0_IO_POL_DE_NEGATIVE,
 			   val);
 
@@ -665,6 +648,30 @@
 		     SUN4I_TCON1_BASIC5_V_SYNC(vsync) |
 		     SUN4I_TCON1_BASIC5_H_SYNC(hsync));
 
+	/* Setup the polarity of multiple signals */
+	if (tcon->quirks->polarity_in_ch0) {
+		val = 0;
+
+		if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+			val |= SUN4I_TCON0_IO_POL_HSYNC_POSITIVE;
+
+		if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			val |= SUN4I_TCON0_IO_POL_VSYNC_POSITIVE;
+
+		regmap_write(tcon->regs, SUN4I_TCON0_IO_POL_REG, val);
+	} else {
+		/* according to vendor driver, this bit must be always set */
+		val = SUN4I_TCON1_IO_POL_UNKNOWN;
+
+		if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+			val |= SUN4I_TCON1_IO_POL_HSYNC_POSITIVE;
+
+		if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+			val |= SUN4I_TCON1_IO_POL_VSYNC_POSITIVE;
+
+		regmap_write(tcon->regs, SUN4I_TCON1_IO_POL_REG, val);
+	}
+
 	/* Map output pins to channel 1 */
 	regmap_update_bits(tcon->regs, SUN4I_TCON_GCTL_REG,
 			   SUN4I_TCON_GCTL_IOMAP_MASK,
@@ -746,21 +753,19 @@
 static int sun4i_tcon_init_clocks(struct device *dev,
 				  struct sun4i_tcon *tcon)
 {
-	tcon->clk = devm_clk_get(dev, "ahb");
+	tcon->clk = devm_clk_get_enabled(dev, "ahb");
 	if (IS_ERR(tcon->clk)) {
 		dev_err(dev, "Couldn't get the TCON bus clock\n");
 		return PTR_ERR(tcon->clk);
 	}
-	clk_prepare_enable(tcon->clk);
 
 	if (tcon->quirks->has_channel_0) {
-		tcon->sclk0 = devm_clk_get(dev, "tcon-ch0");
+		tcon->sclk0 = devm_clk_get_enabled(dev, "tcon-ch0");
 		if (IS_ERR(tcon->sclk0)) {
 			dev_err(dev, "Couldn't get the TCON channel 0 clock\n");
 			return PTR_ERR(tcon->sclk0);
 		}
 	}
-	clk_prepare_enable(tcon->sclk0);
 
 	if (tcon->quirks->has_channel_1) {
 		tcon->sclk1 = devm_clk_get(dev, "tcon-ch1");
@@ -773,12 +778,6 @@
 	return 0;
 }
 
-static void sun4i_tcon_free_clocks(struct sun4i_tcon *tcon)
-{
-	clk_disable_unprepare(tcon->sclk0);
-	clk_disable_unprepare(tcon->clk);
-}
-
 static int sun4i_tcon_init_irq(struct device *dev,
 			       struct sun4i_tcon *tcon)
 {
@@ -1195,14 +1194,14 @@
 	ret = sun4i_tcon_init_regmap(dev, tcon);
 	if (ret) {
 		dev_err(dev, "Couldn't init our TCON regmap\n");
-		goto err_free_clocks;
+		goto err_assert_reset;
 	}
 
 	if (tcon->quirks->has_channel_0) {
 		ret = sun4i_dclk_create(dev, tcon);
 		if (ret) {
 			dev_err(dev, "Couldn't create our TCON dot clock\n");
-			goto err_free_clocks;
+			goto err_assert_reset;
 		}
 	}
 
@@ -1265,8 +1264,6 @@
 err_free_dotclock:
 	if (tcon->quirks->has_channel_0)
 		sun4i_dclk_free(tcon);
-err_free_clocks:
-	sun4i_tcon_free_clocks(tcon);
 err_assert_reset:
 	reset_control_assert(tcon->lcd_rst);
 	return ret;
@@ -1280,7 +1277,6 @@
 	list_del(&tcon->list);
 	if (tcon->quirks->has_channel_0)
 		sun4i_dclk_free(tcon);
-	sun4i_tcon_free_clocks(tcon);
 }
 
 static const struct component_ops sun4i_tcon_ops = {
@@ -1409,14 +1405,18 @@
 	if (IS_ENABLED(CONFIG_DRM_SUN8I_TCON_TOP) &&
 	    encoder->encoder_type == DRM_MODE_ENCODER_TMDS) {
 		ret = sun8i_tcon_top_set_hdmi_src(&pdev->dev, id);
-		if (ret)
+		if (ret) {
+			put_device(&pdev->dev);
 			return ret;
+		}
 	}
 
 	if (IS_ENABLED(CONFIG_DRM_SUN8I_TCON_TOP)) {
 		ret = sun8i_tcon_top_de_config(&pdev->dev, tcon->id, id);
-		if (ret)
+		if (ret) {
+			put_device(&pdev->dev);
 			return ret;
+		}
 	}
 
 	return 0;
@@ -1425,12 +1425,14 @@
 static const struct sun4i_tcon_quirks sun4i_a10_quirks = {
 	.has_channel_0		= true,
 	.has_channel_1		= true,
+	.dclk_min_div		= 4,
 	.set_mux		= sun4i_a10_tcon_set_mux,
 };
 
 static const struct sun4i_tcon_quirks sun5i_a13_quirks = {
 	.has_channel_0		= true,
 	.has_channel_1		= true,
+	.dclk_min_div		= 4,
 	.set_mux		= sun5i_a13_tcon_set_mux,
 };
 
@@ -1439,6 +1441,7 @@
 	.has_channel_1		= true,
 	.has_lvds_alt		= true,
 	.needs_de_be_mux	= true,
+	.dclk_min_div		= 1,
 	.set_mux		= sun6i_tcon_set_mux,
 };
 
@@ -1446,11 +1449,13 @@
 	.has_channel_0		= true,
 	.has_channel_1		= true,
 	.needs_de_be_mux	= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun7i_a20_quirks = {
 	.has_channel_0		= true,
 	.has_channel_1		= true,
+	.dclk_min_div		= 4,
 	/* Same display pipeline structure as A10 */
 	.set_mux		= sun4i_a10_tcon_set_mux,
 };
@@ -1458,11 +1463,13 @@
 static const struct sun4i_tcon_quirks sun8i_a33_quirks = {
 	.has_channel_0		= true,
 	.has_lvds_alt		= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun8i_a83t_lcd_quirks = {
 	.supports_lvds		= true,
 	.has_channel_0		= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun8i_a83t_tv_quirks = {
@@ -1471,16 +1478,19 @@
 
 static const struct sun4i_tcon_quirks sun8i_r40_tv_quirks = {
 	.has_channel_1		= true,
+	.polarity_in_ch0	= true,
 	.set_mux		= sun8i_r40_tcon_tv_set_mux,
 };
 
 static const struct sun4i_tcon_quirks sun8i_v3s_quirks = {
 	.has_channel_0		= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun9i_a80_tcon_lcd_quirks = {
-	.has_channel_0	= true,
-	.needs_edp_reset = true,
+	.has_channel_0		= true,
+	.needs_edp_reset	= true,
+	.dclk_min_div		= 1,
 };
 
 static const struct sun4i_tcon_quirks sun9i_a80_tcon_tv_quirks = {
@@ -1495,6 +1505,8 @@
 	{ .compatible = "allwinner,sun6i-a31-tcon", .data = &sun6i_a31_quirks },
 	{ .compatible = "allwinner,sun6i-a31s-tcon", .data = &sun6i_a31s_quirks },
 	{ .compatible = "allwinner,sun7i-a20-tcon", .data = &sun7i_a20_quirks },
+	{ .compatible = "allwinner,sun7i-a20-tcon0", .data = &sun7i_a20_quirks },
+	{ .compatible = "allwinner,sun7i-a20-tcon1", .data = &sun7i_a20_quirks },
 	{ .compatible = "allwinner,sun8i-a23-tcon", .data = &sun8i_a33_quirks },
 	{ .compatible = "allwinner,sun8i-a33-tcon", .data = &sun8i_a33_quirks },
 	{ .compatible = "allwinner,sun8i-a83t-tcon-lcd", .data = &sun8i_a83t_lcd_quirks },
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun4i_tcon.h
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun4i_tcon.h
@@ -113,6 +113,7 @@
 #define SUN4I_TCON0_IO_POL_REG			0x88
 #define SUN4I_TCON0_IO_POL_DCLK_PHASE(phase)		((phase & 3) << 28)
 #define SUN4I_TCON0_IO_POL_DE_NEGATIVE			BIT(27)
+#define SUN4I_TCON0_IO_POL_DCLK_DRIVE_NEGEDGE		BIT(26)
 #define SUN4I_TCON0_IO_POL_HSYNC_POSITIVE		BIT(25)
 #define SUN4I_TCON0_IO_POL_VSYNC_POSITIVE		BIT(24)
 
@@ -153,6 +154,11 @@
 #define SUN4I_TCON1_BASIC5_V_SYNC(height)		(((height) - 1) & 0x3ff)
 
 #define SUN4I_TCON1_IO_POL_REG			0xf0
+/* there is no documentation about this bit */
+#define SUN4I_TCON1_IO_POL_UNKNOWN			BIT(26)
+#define SUN4I_TCON1_IO_POL_HSYNC_POSITIVE		BIT(25)
+#define SUN4I_TCON1_IO_POL_VSYNC_POSITIVE		BIT(24)
+
 #define SUN4I_TCON1_IO_TRI_REG			0xf4
 
 #define SUN4I_TCON_ECC_FIFO_REG			0xf8
@@ -224,6 +230,8 @@
 	bool	needs_de_be_mux; /* sun6i needs mux to select backend */
 	bool    needs_edp_reset; /* a80 edp reset needed for tcon0 access */
 	bool	supports_lvds;   /* Does the TCON support an LVDS output? */
+	bool	polarity_in_ch0; /* some tcon1 channels have polarity bits in tcon0 pol register */
+	u8	dclk_min_div;	/* minimum divider for TCON0 DCLK */
 
 	/* callback to handle tcon muxing options */
 	int	(*set_mux)(struct sun4i_tcon *, const struct drm_encoder *);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -437,9 +437,9 @@
 			     SUN6I_DSI_BURST_LINE_SYNC_POINT(SUN6I_DSI_SYNC_POINT));
 
 		val = SUN6I_DSI_TCON_DRQ_ENABLE_MODE;
-	} else if ((mode->hsync_end - mode->hdisplay) > 20) {
+	} else if ((mode->hsync_start - mode->hdisplay) > 20) {
 		/* Maaaaaagic */
-		u16 drq = (mode->hsync_end - mode->hdisplay) - 20;
+		u16 drq = (mode->hsync_start - mode->hdisplay) - 20;
 
 		drq *= mipi_dsi_pixel_format_to_bpp(device->format);
 		drq /= 32;
@@ -718,7 +718,7 @@
 	struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
 	struct sun6i_dsi *dsi = encoder_to_sun6i_dsi(encoder);
 	struct mipi_dsi_device *device = dsi->device;
-	union phy_configure_opts opts = { 0 };
+	union phy_configure_opts opts = { };
 	struct phy_configure_opts_mipi_dphy *cfg = &opts.mipi_dphy;
 	u16 delay;
 
@@ -867,7 +867,7 @@
 	regmap_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(0),
 		     sun6i_dsi_dcs_build_pkt_hdr(dsi, msg));
 
-	bounce = kzalloc(msg->tx_len + sizeof(crc), GFP_KERNEL);
+	bounce = kzalloc(ALIGN(msg->tx_len + sizeof(crc), 4), GFP_KERNEL);
 	if (!bounce)
 		return -ENOMEM;
 
@@ -878,7 +878,7 @@
 	memcpy((u8 *)bounce + msg->tx_len, &crc, sizeof(crc));
 	len += sizeof(crc);
 
-	regmap_bulk_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(1), bounce, len);
+	regmap_bulk_write(dsi->regs, SUN6I_DSI_CMD_TX_REG(1), bounce, DIV_ROUND_UP(len, 4));
 	regmap_write(dsi->regs, SUN6I_DSI_CMD_CTL_REG, len + 4 - 1);
 	kfree(bounce);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_csc.h
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun8i_csc.h
@@ -12,7 +12,7 @@
 
 /* VI channel CSC units offsets */
 #define CCSC00_OFFSET 0xAA050
-#define CCSC01_OFFSET 0xFA000
+#define CCSC01_OFFSET 0xFA050
 #define CCSC10_OFFSET 0xA0000
 #define CCSC11_OFFSET 0xF0000
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
@@ -49,11 +49,9 @@
 {
 	/*
 	 * Controller support maximum of 594 MHz, which correlates to
-	 * 4K@60Hz 4:4:4 or RGB. However, for frequencies greater than
-	 * 340 MHz scrambling has to be enabled. Because scrambling is
-	 * not yet implemented, just limit to 340 MHz for now.
+	 * 4K@60Hz 4:4:4 or RGB.
 	 */
-	if (mode->clock > 340000)
+	if (mode->clock > 594000)
 		return MODE_CLOCK_HIGH;
 
 	return MODE_OK;
@@ -209,6 +207,7 @@
 	phy_node = of_parse_phandle(dev->of_node, "phys", 0);
 	if (!phy_node) {
 		dev_err(dev, "Can't found PHY phandle\n");
+		ret = -EINVAL;
 		goto err_disable_clk_tmds;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
@@ -104,29 +104,21 @@
 
 static const struct dw_hdmi_curr_ctrl sun50i_h6_cur_ctr[] = {
 	/* pixelclk    bpp8    bpp10   bpp12 */
-	{ 25175000,  { 0x0000, 0x0000, 0x0000 }, },
 	{ 27000000,  { 0x0012, 0x0000, 0x0000 }, },
-	{ 59400000,  { 0x0008, 0x0008, 0x0008 }, },
-	{ 72000000,  { 0x0008, 0x0008, 0x001b }, },
-	{ 74250000,  { 0x0013, 0x0013, 0x0013 }, },
-	{ 90000000,  { 0x0008, 0x001a, 0x001b }, },
-	{ 118800000, { 0x001b, 0x001a, 0x001b }, },
-	{ 144000000, { 0x001b, 0x001a, 0x0034 }, },
-	{ 180000000, { 0x001b, 0x0033, 0x0034 }, },
-	{ 216000000, { 0x0036, 0x0033, 0x0034 }, },
-	{ 237600000, { 0x0036, 0x0033, 0x001b }, },
-	{ 288000000, { 0x0036, 0x001b, 0x001b }, },
-	{ 297000000, { 0x0019, 0x001b, 0x0019 }, },
-	{ 330000000, { 0x0036, 0x001b, 0x001b }, },
-	{ 594000000, { 0x003f, 0x001b, 0x001b }, },
+	{ 74250000,  { 0x0013, 0x001a, 0x001b }, },
+	{ 148500000, { 0x0019, 0x0033, 0x0034 }, },
+	{ 297000000, { 0x0019, 0x001b, 0x001b }, },
+	{ 594000000, { 0x0010, 0x001b, 0x001b }, },
 	{ ~0UL,      { 0x0000, 0x0000, 0x0000 }, }
 };
 
 static const struct dw_hdmi_phy_config sun50i_h6_phy_config[] = {
 	/*pixelclk   symbol   term   vlev*/
-	{ 74250000,  0x8009, 0x0004, 0x0232},
-	{ 148500000, 0x8029, 0x0004, 0x0273},
-	{ 594000000, 0x8039, 0x0004, 0x014a},
+	{ 27000000,  0x8009, 0x0007, 0x02b0 },
+	{ 74250000,  0x8009, 0x0006, 0x022d },
+	{ 148500000, 0x8029, 0x0006, 0x0270 },
+	{ 297000000, 0x8039, 0x0005, 0x01ab },
+	{ 594000000, 0x8029, 0x0000, 0x008a },
 	{ ~0UL,	     0x0000, 0x0000, 0x0000}
 };
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -107,48 +107,128 @@
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XRGB4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_ABGR4444,
 		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR4444,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XBGR4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_RGBA4444,
 		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA4444,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_RGBX4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_BGRA4444,
 		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA4444,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_BGRX4444,
+		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA4444,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_ARGB1555,
 		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB1555,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XRGB1555,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB1555,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_ABGR1555,
 		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR1555,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_XBGR1555,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR1555,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_RGBA5551,
 		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA5551,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_RGBX5551,
+		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA5551,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_BGRA5551,
 		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA5551,
 		.rgb = true,
 		.csc = SUN8I_CSC_MODE_OFF,
 	},
 	{
+		/* for DE2 VI layer which ignores alpha */
+		.drm_fmt = DRM_FORMAT_BGRX5551,
+		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA5551,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_ARGB2101010,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ARGB2101010,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_ABGR2101010,
+		.de2_fmt = SUN8I_MIXER_FBFMT_ABGR2101010,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_RGBA1010102,
+		.de2_fmt = SUN8I_MIXER_FBFMT_RGBA1010102,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_BGRA1010102,
+		.de2_fmt = SUN8I_MIXER_FBFMT_BGRA1010102,
+		.rgb = true,
+		.csc = SUN8I_CSC_MODE_OFF,
+	},
+	{
 		.drm_fmt = DRM_FORMAT_UYVY,
 		.de2_fmt = SUN8I_MIXER_FBFMT_UYVY,
 		.rgb = false,
@@ -197,12 +277,6 @@
 		.csc = SUN8I_CSC_MODE_YUV2RGB,
 	},
 	{
-		.drm_fmt = DRM_FORMAT_YUV444,
-		.de2_fmt = SUN8I_MIXER_FBFMT_RGB888,
-		.rgb = true,
-		.csc = SUN8I_CSC_MODE_YUV2RGB,
-	},
-	{
 		.drm_fmt = DRM_FORMAT_YUV422,
 		.de2_fmt = SUN8I_MIXER_FBFMT_YUV422,
 		.rgb = false,
@@ -221,12 +295,6 @@
 		.csc = SUN8I_CSC_MODE_YUV2RGB,
 	},
 	{
-		.drm_fmt = DRM_FORMAT_YVU444,
-		.de2_fmt = SUN8I_MIXER_FBFMT_RGB888,
-		.rgb = true,
-		.csc = SUN8I_CSC_MODE_YVU2RGB,
-	},
-	{
 		.drm_fmt = DRM_FORMAT_YVU422,
 		.de2_fmt = SUN8I_MIXER_FBFMT_YUV422,
 		.rgb = false,
@@ -244,6 +312,18 @@
 		.rgb = false,
 		.csc = SUN8I_CSC_MODE_YVU2RGB,
 	},
+	{
+		.drm_fmt = DRM_FORMAT_P010,
+		.de2_fmt = SUN8I_MIXER_FBFMT_P010_YUV,
+		.rgb = false,
+		.csc = SUN8I_CSC_MODE_YUV2RGB,
+	},
+	{
+		.drm_fmt = DRM_FORMAT_P210,
+		.de2_fmt = SUN8I_MIXER_FBFMT_P210_YUV,
+		.rgb = false,
+		.csc = SUN8I_CSC_MODE_YUV2RGB,
+	},
 };
 
 const struct de2_fmt_info *sun8i_mixer_format_info(u32 format)
@@ -316,7 +396,7 @@
 	.reg_bits	= 32,
 	.val_bits	= 32,
 	.reg_stride	= 4,
-	.max_register	= 0xbfffc, /* guessed */
+	.max_register	= 0xffffc, /* guessed */
 };
 
 static int sun8i_mixer_of_get_id(struct device_node *node)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_mixer.h
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun8i_mixer.h
@@ -93,6 +93,10 @@
 #define SUN8I_MIXER_FBFMT_ABGR1555	17
 #define SUN8I_MIXER_FBFMT_RGBA5551	18
 #define SUN8I_MIXER_FBFMT_BGRA5551	19
+#define SUN8I_MIXER_FBFMT_ARGB2101010	20
+#define SUN8I_MIXER_FBFMT_ABGR2101010	21
+#define SUN8I_MIXER_FBFMT_RGBA1010102	22
+#define SUN8I_MIXER_FBFMT_BGRA1010102	23
 
 #define SUN8I_MIXER_FBFMT_YUYV		0
 #define SUN8I_MIXER_FBFMT_UYVY		1
@@ -109,6 +113,13 @@
 /* format 12 is semi-planar YUV411 UVUV */
 /* format 13 is semi-planar YUV411 VUVU */
 #define SUN8I_MIXER_FBFMT_YUV411	14
+/* format 15 doesn't exist */
+#define SUN8I_MIXER_FBFMT_P010_YUV	16
+/* format 17 is P010 YVU */
+#define SUN8I_MIXER_FBFMT_P210_YUV	18
+/* format 19 is P210 YVU */
+/* format 20 is packed YVU444 10-bit */
+/* format 21 is packed YUV444 10-bit */
 
 /*
  * Sub-engines listed bellow are unused for now. The EN registers are here only
--- linux-ein-5.4.0.orig/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
@@ -398,24 +398,66 @@
 };
 
 /*
- * While all RGB formats are supported, VI planes don't support
- * alpha blending, so there is no point having formats with alpha
- * channel if their opaque analog exist.
+ * While DE2 VI layer supports same RGB formats as UI layer, alpha
+ * channel is ignored. This structure lists all unique variants
+ * where alpha channel is replaced with "don't care" (X) channel.
  */
 static const u32 sun8i_vi_layer_formats[] = {
+	DRM_FORMAT_BGR565,
+	DRM_FORMAT_BGR888,
+	DRM_FORMAT_BGRX4444,
+	DRM_FORMAT_BGRX5551,
+	DRM_FORMAT_BGRX8888,
+	DRM_FORMAT_RGB565,
+	DRM_FORMAT_RGB888,
+	DRM_FORMAT_RGBX4444,
+	DRM_FORMAT_RGBX5551,
+	DRM_FORMAT_RGBX8888,
+	DRM_FORMAT_XBGR1555,
+	DRM_FORMAT_XBGR4444,
+	DRM_FORMAT_XBGR8888,
+	DRM_FORMAT_XRGB1555,
+	DRM_FORMAT_XRGB4444,
+	DRM_FORMAT_XRGB8888,
+
+	DRM_FORMAT_NV16,
+	DRM_FORMAT_NV12,
+	DRM_FORMAT_NV21,
+	DRM_FORMAT_NV61,
+	DRM_FORMAT_UYVY,
+	DRM_FORMAT_VYUY,
+	DRM_FORMAT_YUYV,
+	DRM_FORMAT_YVYU,
+	DRM_FORMAT_YUV411,
+	DRM_FORMAT_YUV420,
+	DRM_FORMAT_YUV422,
+	DRM_FORMAT_YVU411,
+	DRM_FORMAT_YVU420,
+	DRM_FORMAT_YVU422,
+};
+
+static const u32 sun8i_vi_layer_de3_formats[] = {
 	DRM_FORMAT_ABGR1555,
+	DRM_FORMAT_ABGR2101010,
 	DRM_FORMAT_ABGR4444,
+	DRM_FORMAT_ABGR8888,
 	DRM_FORMAT_ARGB1555,
+	DRM_FORMAT_ARGB2101010,
 	DRM_FORMAT_ARGB4444,
+	DRM_FORMAT_ARGB8888,
 	DRM_FORMAT_BGR565,
 	DRM_FORMAT_BGR888,
+	DRM_FORMAT_BGRA1010102,
 	DRM_FORMAT_BGRA5551,
 	DRM_FORMAT_BGRA4444,
+	DRM_FORMAT_BGRA8888,
 	DRM_FORMAT_BGRX8888,
 	DRM_FORMAT_RGB565,
 	DRM_FORMAT_RGB888,
+	DRM_FORMAT_RGBA1010102,
 	DRM_FORMAT_RGBA4444,
 	DRM_FORMAT_RGBA5551,
+	DRM_FORMAT_RGBA8888,
 	DRM_FORMAT_RGBX8888,
 	DRM_FORMAT_XBGR8888,
 	DRM_FORMAT_XRGB8888,
@@ -424,6 +466,8 @@
 	DRM_FORMAT_NV12,
 	DRM_FORMAT_NV21,
 	DRM_FORMAT_NV61,
+	DRM_FORMAT_P010,
+	DRM_FORMAT_P210,
 	DRM_FORMAT_UYVY,
 	DRM_FORMAT_VYUY,
 	DRM_FORMAT_YUYV,
@@ -431,11 +475,9 @@
 	DRM_FORMAT_YUV411,
 	DRM_FORMAT_YUV420,
 	DRM_FORMAT_YUV422,
-	DRM_FORMAT_YUV444,
 	DRM_FORMAT_YVU411,
 	DRM_FORMAT_YVU420,
 	DRM_FORMAT_YVU422,
-	DRM_FORMAT_YVU444,
 };
 
 struct sun8i_vi_layer *sun8i_vi_layer_init_one(struct drm_device *drm,
@@ -443,19 +485,27 @@
 					       int index)
 {
 	u32 supported_encodings, supported_ranges;
+	unsigned int plane_cnt, format_count;
 	struct sun8i_vi_layer *layer;
-	unsigned int plane_cnt;
+	const u32 *formats;
 	int ret;
 
 	layer = devm_kzalloc(drm->dev, sizeof(*layer), GFP_KERNEL);
 	if (!layer)
 		return ERR_PTR(-ENOMEM);
 
+	if (mixer->cfg->is_de3) {
+		formats = sun8i_vi_layer_de3_formats;
+		format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats);
+	} else {
+		formats = sun8i_vi_layer_formats;
+		format_count = ARRAY_SIZE(sun8i_vi_layer_formats);
+	}
+
 	/* possible crtcs are set later */
 	ret = drm_universal_plane_init(drm, &layer->plane, 0,
 				       &sun8i_vi_layer_funcs,
-				       sun8i_vi_layer_formats,
-				       ARRAY_SIZE(sun8i_vi_layer_formats),
+				       formats, format_count,
 				       NULL, DRM_PLANE_TYPE_OVERLAY, NULL);
 	if (ret) {
 		dev_err(drm->dev, "Couldn't initialize layer\n");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tegra/dc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tegra/dc.c
@@ -919,6 +919,11 @@
 	.atomic_disable = tegra_cursor_atomic_disable,
 };
 
+static const uint64_t linear_modifiers[] = {
+	DRM_FORMAT_MOD_LINEAR,
+	DRM_FORMAT_MOD_INVALID
+};
+
 static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
 						      struct tegra_dc *dc)
 {
@@ -947,7 +952,7 @@
 
 	err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
 				       &tegra_plane_funcs, formats,
-				       num_formats, NULL,
+				       num_formats, linear_modifiers,
 				       DRM_PLANE_TYPE_CURSOR, NULL);
 	if (err < 0) {
 		kfree(plane);
@@ -1065,7 +1070,8 @@
 
 	err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
 				       &tegra_plane_funcs, formats,
-				       num_formats, NULL, type, NULL);
+				       num_formats, linear_modifiers,
+				       type, NULL);
 	if (err < 0) {
 		kfree(plane);
 		return ERR_PTR(err);
@@ -1667,6 +1673,11 @@
 			dev_err(dc->dev,
 				"failed to set clock rate to %lu Hz\n",
 				state->pclk);
+
+		err = clk_set_rate(dc->clk, state->pclk);
+		if (err < 0)
+			dev_err(dc->dev, "failed to set clock %pC to %lu Hz: %d\n",
+				dc->clk, state->pclk, err);
 	}
 
 	DRM_DEBUG_KMS("rate: %lu, div: %u\n", clk_get_rate(dc->clk),
@@ -1677,11 +1688,6 @@
 		value = SHIFT_CLK_DIVIDER(state->div) | PIXEL_CLK_DIVIDER_PCD1;
 		tegra_dc_writel(dc, value, DC_DISP_DISP_CLOCK_CONTROL);
 	}
-
-	err = clk_set_rate(dc->clk, state->pclk);
-	if (err < 0)
-		dev_err(dc->dev, "failed to set clock %pC to %lu Hz: %d\n",
-			dc->clk, state->pclk, err);
 }
 
 static void tegra_dc_stop(struct tegra_dc *dc)
@@ -2452,8 +2458,10 @@
 	usleep_range(2000, 4000);
 
 	err = reset_control_assert(dc->rst);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(dc->clk);
 		return err;
+	}
 
 	usleep_range(2000, 4000);
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tegra/dpaux.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tegra/dpaux.c
@@ -447,10 +447,8 @@
 		return PTR_ERR(dpaux->regs);
 
 	dpaux->irq = platform_get_irq(pdev, 0);
-	if (dpaux->irq < 0) {
-		dev_err(&pdev->dev, "failed to get IRQ\n");
-		return -ENXIO;
-	}
+	if (dpaux->irq < 0)
+		return dpaux->irq;
 
 	if (!pdev->dev.pm_domain) {
 		dpaux->rst = devm_reset_control_get(&pdev->dev, "dpaux");
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tegra/drm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tegra/drm.c
@@ -122,8 +122,6 @@
 	drm->mode_config.max_width = 4096;
 	drm->mode_config.max_height = 4096;
 
-	drm->mode_config.allow_fb_modifiers = true;
-
 	drm->mode_config.normalize_zpos = true;
 
 	drm->mode_config.funcs = &tegra_drm_mode_config_funcs;
@@ -201,19 +199,19 @@
 	if (tegra->hub)
 		tegra_display_hub_cleanup(tegra->hub);
 device:
-	host1x_device_exit(device);
-fbdev:
-	drm_kms_helper_poll_fini(drm);
-	tegra_drm_fb_free(drm);
-config:
-	drm_mode_config_cleanup(drm);
-
 	if (tegra->domain) {
 		mutex_destroy(&tegra->mm_lock);
 		drm_mm_takedown(&tegra->mm);
 		put_iova_domain(&tegra->carveout.domain);
 		iova_cache_put();
 	}
+
+	host1x_device_exit(device);
+fbdev:
+	drm_kms_helper_poll_fini(drm);
+	tegra_drm_fb_free(drm);
+config:
+	drm_mode_config_cleanup(drm);
 domain:
 	if (tegra->domain)
 		iommu_domain_free(tegra->domain);
@@ -256,7 +254,7 @@
 	if (!fpriv)
 		return -ENOMEM;
 
-	idr_init(&fpriv->contexts);
+	idr_init_base(&fpriv->contexts, 1);
 	mutex_init(&fpriv->lock);
 	filp->driver_priv = fpriv;
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tegra/dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tegra/dsi.c
@@ -1455,8 +1455,10 @@
 		dsi->slave = platform_get_drvdata(gangster);
 		of_node_put(np);
 
-		if (!dsi->slave)
+		if (!dsi->slave) {
+			put_device(&gangster->dev);
 			return -EPROBE_DEFER;
+		}
 
 		dsi->slave->master = dsi;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tegra/hub.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tegra/hub.c
@@ -141,7 +141,9 @@
 	for (i = 0; i < hub->soc->num_wgrps; i++) {
 		struct tegra_windowgroup *wgrp = &hub->wgrps[i];
 
-		tegra_windowgroup_enable(wgrp);
+		/* Skip orphaned window group whose parent DC is disabled */
+		if (wgrp->parent)
+			tegra_windowgroup_enable(wgrp);
 	}
 
 	return 0;
@@ -158,7 +160,9 @@
 	for (i = 0; i < hub->soc->num_wgrps; i++) {
 		struct tegra_windowgroup *wgrp = &hub->wgrps[i];
 
-		tegra_windowgroup_disable(wgrp);
+		/* Skip orphaned window group whose parent DC is disabled */
+		if (wgrp->parent)
+			tegra_windowgroup_disable(wgrp);
 	}
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tegra/sor.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tegra/sor.c
@@ -906,7 +906,7 @@
 				    struct drm_dp_link *link)
 {
 	const u64 f = 100000, link_rate = link->rate * 1000;
-	const u64 pclk = mode->clock * 1000;
+	const u64 pclk = (u64)mode->clock * 1000;
 	u64 input, output, watermark, num;
 	struct tegra_sor_params params;
 	u32 num_syms_per_line;
@@ -2875,21 +2875,21 @@
 		if (err < 0) {
 			dev_err(sor->dev, "failed to acquire SOR reset: %d\n",
 				err);
-			return err;
+			goto rpm_put;
 		}
 
 		err = reset_control_assert(sor->rst);
 		if (err < 0) {
 			dev_err(sor->dev, "failed to assert SOR reset: %d\n",
 				err);
-			return err;
+			goto rpm_put;
 		}
 	}
 
 	err = clk_prepare_enable(sor->clk);
 	if (err < 0) {
 		dev_err(sor->dev, "failed to enable clock: %d\n", err);
-		return err;
+		goto rpm_put;
 	}
 
 	usleep_range(1000, 3000);
@@ -2899,19 +2899,25 @@
 		if (err < 0) {
 			dev_err(sor->dev, "failed to deassert SOR reset: %d\n",
 				err);
-			return err;
+			clk_disable_unprepare(sor->clk);
+			goto rpm_put;
 		}
 
 		reset_control_release(sor->rst);
 	}
 
 	err = clk_prepare_enable(sor->clk_safe);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(sor->clk);
 		return err;
+	}
 
 	err = clk_prepare_enable(sor->clk_dp);
-	if (err < 0)
+	if (err < 0) {
+		clk_disable_unprepare(sor->clk_safe);
+		clk_disable_unprepare(sor->clk);
 		return err;
+	}
 
 	/*
 	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
@@ -2923,6 +2929,12 @@
 	tegra_sor_writel(sor, value, SOR_INT_MASK);
 
 	return 0;
+
+rpm_put:
+	if (sor->rst)
+		pm_runtime_put(sor->dev);
+
+	return err;
 }
 
 static int tegra_sor_exit(struct host1x_client *client)
@@ -3200,6 +3212,11 @@
 		 * earlier
 		 */
 		sor->pad = TEGRA_IO_PAD_HDMI_DP0 + sor->index;
+	} else {
+		if (sor->soc->supports_edp)
+			sor->index = 0;
+		else
+			sor->index = 1;
 	}
 
 	err = of_property_read_u32_array(np, "nvidia,xbar-cfg", xbar_cfg, 5);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tilcdc/tilcdc_external.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tilcdc/tilcdc_external.c
@@ -58,11 +58,13 @@
 int tilcdc_add_component_encoder(struct drm_device *ddev)
 {
 	struct tilcdc_drm_private *priv = ddev->dev_private;
-	struct drm_encoder *encoder;
+	struct drm_encoder *encoder = NULL, *iter;
 
-	list_for_each_entry(encoder, &ddev->mode_config.encoder_list, head)
-		if (encoder->possible_crtcs & (1 << priv->crtc->index))
+	list_for_each_entry(iter, &ddev->mode_config.encoder_list, head)
+		if (iter->possible_crtcs & (1 << priv->crtc->index)) {
+			encoder = iter;
 			break;
+		}
 
 	if (!encoder) {
 		dev_err(ddev->dev, "%s: No suitable encoder found\n", __func__);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -143,12 +143,16 @@
 	int i;
 
 	for (i = 0; i < timings->num_timings; i++) {
-		struct drm_display_mode *mode = drm_mode_create(dev);
+		struct drm_display_mode *mode;
 		struct videomode vm;
 
 		if (videomode_from_timings(timings, &vm, i))
 			break;
 
+		mode = drm_mode_create(dev);
+		if (!mode)
+			break;
+
 		drm_display_mode_from_videomode(&vm, mode);
 
 		mode->type = DRM_MODE_TYPE_DRIVER;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/ttm/ttm_bo.c
+++ linux-ein-5.4.0/drivers/gpu/drm/ttm/ttm_bo.c
@@ -517,8 +517,10 @@
 
 		dma_resv_unlock(bo->base.resv);
 	}
-	if (bo->base.resv != &bo->base._resv)
+	if (bo->base.resv != &bo->base._resv) {
+		ttm_bo_flush_all_fences(bo);
 		dma_resv_unlock(&bo->base._resv);
+	}
 
 error:
 	kref_get(&bo->list_kref);
@@ -759,7 +761,7 @@
 	/* Don't evict this BO if it's outside of the
 	 * requested placement range
 	 */
-	if (place->fpfn >= (bo->mem.start + bo->mem.size) ||
+	if (place->fpfn >= (bo->mem.start + bo->mem.num_pages) ||
 	    (place->lpfn && place->lpfn <= bo->mem.start))
 		return false;
 
@@ -926,7 +928,8 @@
  */
 static int ttm_bo_add_move_fence(struct ttm_buffer_object *bo,
 				 struct ttm_mem_type_manager *man,
-				 struct ttm_mem_reg *mem)
+				 struct ttm_mem_reg *mem,
+				 bool no_wait_gpu)
 {
 	struct dma_fence *fence;
 	int ret;
@@ -935,19 +938,24 @@
 	fence = dma_fence_get(man->move);
 	spin_unlock(&man->move_lock);
 
-	if (fence) {
-		dma_resv_add_shared_fence(bo->base.resv, fence);
+	if (!fence)
+		return 0;
 
-		ret = dma_resv_reserve_shared(bo->base.resv, 1);
-		if (unlikely(ret)) {
-			dma_fence_put(fence);
-			return ret;
-		}
+	if (no_wait_gpu) {
+		dma_fence_put(fence);
+		return -EBUSY;
+	}
+
+	dma_resv_add_shared_fence(bo->base.resv, fence);
 
-		dma_fence_put(bo->moving);
-		bo->moving = fence;
+	ret = dma_resv_reserve_shared(bo->base.resv, 1);
+	if (unlikely(ret)) {
+		dma_fence_put(fence);
+		return ret;
 	}
 
+	dma_fence_put(bo->moving);
+	bo->moving = fence;
 	return 0;
 }
 
@@ -978,7 +986,7 @@
 			return ret;
 	} while (1);
 
-	return ttm_bo_add_move_fence(bo, man, mem);
+	return ttm_bo_add_move_fence(bo, man, mem, ctx->no_wait_gpu);
 }
 
 static uint32_t ttm_bo_select_caching(struct ttm_mem_type_manager *man,
@@ -1120,14 +1128,18 @@
 		if (unlikely(ret))
 			goto error;
 
-		if (mem->mm_node) {
-			ret = ttm_bo_add_move_fence(bo, man, mem);
-			if (unlikely(ret)) {
-				(*man->func->put_node)(man, mem);
-				goto error;
-			}
-			return 0;
+		if (!mem->mm_node)
+			continue;
+
+		ret = ttm_bo_add_move_fence(bo, man, mem, ctx->no_wait_gpu);
+		if (unlikely(ret)) {
+			(*man->func->put_node)(man, mem);
+			if (ret == -EBUSY)
+				continue;
+
+			goto error;
 		}
+		return 0;
 	}
 
 	for (i = 0; i < placement->num_busy_placement; ++i) {
--- linux-ein-5.4.0.orig/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ linux-ein-5.4.0/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -358,8 +358,10 @@
 static int ttm_bo_vm_access(struct vm_area_struct *vma, unsigned long addr,
 			    void *buf, int len, int write)
 {
-	unsigned long offset = (addr) - vma->vm_start;
 	struct ttm_buffer_object *bo = vma->vm_private_data;
+	unsigned long offset = (addr) - vma->vm_start +
+		((vma->vm_pgoff - drm_vma_node_start(&bo->base.vma_node))
+		 << PAGE_SHIFT);
 	int ret;
 
 	if (len < 1 || (offset + len) >> PAGE_SHIFT > bo->num_pages)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/ttm/ttm_tt.c
+++ linux-ein-5.4.0/drivers/gpu/drm/ttm/ttm_tt.c
@@ -241,7 +241,6 @@
 	ttm_tt_init_fields(ttm, bo, page_flags);
 
 	if (ttm_tt_alloc_page_directory(ttm)) {
-		ttm_tt_destroy(ttm);
 		pr_err("Failed allocating page table\n");
 		return -ENOMEM;
 	}
@@ -265,7 +264,6 @@
 
 	INIT_LIST_HEAD(&ttm_dma->pages_list);
 	if (ttm_dma_tt_alloc_page_directory(ttm_dma)) {
-		ttm_tt_destroy(ttm);
 		pr_err("Failed allocating page table\n");
 		return -ENOMEM;
 	}
@@ -287,7 +285,6 @@
 	else
 		ret = ttm_dma_tt_alloc_page_directory(ttm_dma);
 	if (ret) {
-		ttm_tt_destroy(ttm);
 		pr_err("Failed allocating page table\n");
 		return -ENOMEM;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tve200/tve200_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tve200/tve200_display.c
@@ -14,6 +14,7 @@
 #include <linux/version.h>
 #include <linux/dma-buf.h>
 #include <linux/of_graph.h>
+#include <linux/delay.h>
 
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_fourcc.h>
@@ -130,9 +131,25 @@
 	struct drm_connector *connector = priv->connector;
 	u32 format = fb->format->format;
 	u32 ctrl1 = 0;
+	int retries;
 
 	clk_prepare_enable(priv->clk);
 
+	/* Reset the TVE200 and wait for it to come back online */
+	writel(TVE200_CTRL_4_RESET, priv->regs + TVE200_CTRL_4);
+	for (retries = 0; retries < 5; retries++) {
+		usleep_range(30000, 50000);
+		if (readl(priv->regs + TVE200_CTRL_4) & TVE200_CTRL_4_RESET)
+			continue;
+		else
+			break;
+	}
+	if (retries == 5 &&
+	    readl(priv->regs + TVE200_CTRL_4) & TVE200_CTRL_4_RESET) {
+		dev_err(drm->dev, "can't get hardware out of reset\n");
+		return;
+	}
+
 	/* Function 1 */
 	ctrl1 |= TVE200_CTRL_CSMODE;
 	/* Interlace mode for CCIR656: parameterize? */
@@ -230,8 +247,9 @@
 
 	drm_crtc_vblank_off(crtc);
 
-	/* Disable and Power Down */
+	/* Disable put into reset and Power Down */
 	writel(0, priv->regs + TVE200_CTRL);
+	writel(TVE200_CTRL_4_RESET, priv->regs + TVE200_CTRL_4);
 
 	clk_disable_unprepare(priv->clk);
 }
@@ -279,6 +297,8 @@
 	struct drm_device *drm = crtc->dev;
 	struct tve200_drm_dev_private *priv = drm->dev_private;
 
+	/* Clear any IRQs and enable */
+	writel(0xFF, priv->regs + TVE200_INT_CLR);
 	writel(TVE200_INT_V_STATUS, priv->regs + TVE200_INT_EN);
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/tve200/tve200_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/tve200/tve200_drv.c
@@ -210,8 +210,8 @@
 	}
 
 	irq = platform_get_irq(pdev, 0);
-	if (!irq) {
-		ret = -EINVAL;
+	if (irq < 0) {
+		ret = irq;
 		goto clk_disable;
 	}
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/udl/udl_connector.c
+++ linux-ein-5.4.0/drivers/gpu/drm/udl/udl_connector.c
@@ -29,7 +29,7 @@
 		ret = usb_control_msg(udl->udev,
 				      usb_rcvctrlpipe(udl->udev, 0),
 					  (0x02), (0x80 | (0x02 << 5)), bval,
-					  0xA1, read_buff, 2, HZ);
+					  0xA1, read_buff, 2, 1000);
 		if (ret < 1) {
 			DRM_ERROR("Read EDID byte %d failed err %x\n", i, ret);
 			kfree(read_buff);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/v3d/v3d_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/v3d/v3d_gem.c
@@ -195,8 +195,8 @@
 
 	V3D_CORE_WRITE(core, V3D_CTL_L2TCACTL, V3D_L2TCACTL_TMUWCF);
 	if (wait_for(!(V3D_CORE_READ(core, V3D_CTL_L2TCACTL) &
-		       V3D_L2TCACTL_L2TFLS), 100)) {
-		DRM_ERROR("Timeout waiting for L1T write combiner flush\n");
+		       V3D_L2TCACTL_TMUWCF), 100)) {
+		DRM_ERROR("Timeout waiting for TMU write combiner flush\n");
 	}
 
 	mutex_lock(&v3d->cache_clean_lock);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_bo.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_bo.c
@@ -389,7 +389,7 @@
 
 	bo = kzalloc(sizeof(*bo), GFP_KERNEL);
 	if (!bo)
-		return ERR_PTR(-ENOMEM);
+		return NULL;
 
 	bo->madv = VC4_MADV_WILLNEED;
 	refcount_set(&bo->usecnt, 0);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_dpi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -151,35 +151,45 @@
 	}
 	drm_connector_list_iter_end(&conn_iter);
 
-	if (connector && connector->display_info.num_bus_formats) {
-		u32 bus_format = connector->display_info.bus_formats[0];
+	if (connector) {
+		if (connector->display_info.num_bus_formats) {
+			u32 bus_format = connector->display_info.bus_formats[0];
 
-		switch (bus_format) {
-		case MEDIA_BUS_FMT_RGB888_1X24:
-			dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
-					       DPI_FORMAT);
-			break;
-		case MEDIA_BUS_FMT_BGR888_1X24:
-			dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
-					       DPI_FORMAT);
-			dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
-			break;
-		case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
-			dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
-					       DPI_FORMAT);
-			break;
-		case MEDIA_BUS_FMT_RGB666_1X18:
-			dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
-					       DPI_FORMAT);
-			break;
-		case MEDIA_BUS_FMT_RGB565_1X16:
-			dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
-					       DPI_FORMAT);
-			break;
-		default:
-			DRM_ERROR("Unknown media bus format %d\n", bus_format);
-			break;
+			switch (bus_format) {
+			case MEDIA_BUS_FMT_RGB888_1X24:
+				dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
+						       DPI_FORMAT);
+				break;
+			case MEDIA_BUS_FMT_BGR888_1X24:
+				dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
+						       DPI_FORMAT);
+				dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR,
+						       DPI_ORDER);
+				break;
+			case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
+				dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
+						       DPI_FORMAT);
+				break;
+			case MEDIA_BUS_FMT_RGB666_1X18:
+				dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
+						       DPI_FORMAT);
+				break;
+			case MEDIA_BUS_FMT_RGB565_1X16:
+				dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_1,
+						       DPI_FORMAT);
+				break;
+			default:
+				DRM_ERROR("Unknown media bus format %d\n",
+					  bus_format);
+				break;
+			}
 		}
+
+		if (connector->display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)
+			dpi_c |= DPI_PIXEL_CLK_INVERT;
+
+		if (connector->display_info.bus_flags & DRM_BUS_FLAG_DE_LOW)
+			dpi_c |= DPI_OUTPUT_ENABLE_INVERT;
 	} else {
 		/* Default to 24bit if no connector found. */
 		dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB, DPI_FORMAT);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_drv.c
@@ -309,6 +309,7 @@
 	component_unbind_all(dev, drm);
 gem_destroy:
 	vc4_gem_destroy(drm);
+	drm_mode_config_cleanup(drm);
 	vc4_bo_cache_destroy(drm);
 dev_put:
 	drm_dev_put(drm);
@@ -391,7 +392,12 @@
 	if (ret)
 		return ret;
 
-	return platform_driver_register(&vc4_platform_driver);
+	ret = platform_driver_register(&vc4_platform_driver);
+	if (ret)
+		platform_unregister_drivers(component_drivers,
+					    ARRAY_SIZE(component_drivers));
+
+	return ret;
 }
 
 static void __exit vc4_drm_unregister(void)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_drv.h
@@ -750,7 +750,7 @@
 void vc4_crtc_handle_vblank(struct vc4_crtc *crtc);
 void vc4_crtc_txp_armed(struct drm_crtc_state *state);
 void vc4_crtc_get_margins(struct drm_crtc_state *state,
-			  unsigned int *right, unsigned int *left,
+			  unsigned int *left, unsigned int *right,
 			  unsigned int *top, unsigned int *bottom);
 
 /* vc4_debugfs.c */
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_dsi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_dsi.c
@@ -752,9 +752,9 @@
 	struct vc4_dsi *dsi = vc4_encoder->dsi;
 	struct device *dev = &dsi->pdev->dev;
 
-	drm_bridge_disable(dsi->bridge);
+	drm_bridge_chain_disable(dsi->bridge);
 	vc4_dsi_ulps(dsi, true);
-	drm_bridge_post_disable(dsi->bridge);
+	drm_bridge_chain_post_disable(dsi->bridge);
 
 	clk_disable_unprepare(dsi->pll_phy_clock);
 	clk_disable_unprepare(dsi->escape_clock);
@@ -791,11 +791,9 @@
 	/* Find what divider gets us a faster clock than the requested
 	 * pixel clock.
 	 */
-	for (divider = 1; divider < 8; divider++) {
-		if (parent_rate / divider < pll_clock) {
-			divider--;
+	for (divider = 1; divider < 255; divider++) {
+		if (parent_rate / (divider + 1) < pll_clock)
 			break;
-		}
 	}
 
 	/* Now that we've picked a PLL divider, calculate back to its
@@ -831,7 +829,7 @@
 	unsigned long phy_clock;
 	int ret;
 
-	ret = pm_runtime_get_sync(dev);
+	ret = pm_runtime_resume_and_get(dev);
 	if (ret) {
 		DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->port);
 		return;
@@ -1054,7 +1052,7 @@
 
 	vc4_dsi_ulps(dsi, false);
 
-	drm_bridge_pre_enable(dsi->bridge);
+	drm_bridge_chain_pre_enable(dsi->bridge);
 
 	if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) {
 		DSI_PORT_WRITE(DISP0_CTRL,
@@ -1071,7 +1069,7 @@
 			       DSI_DISP0_ENABLE);
 	}
 
-	drm_bridge_enable(dsi->bridge);
+	drm_bridge_chain_enable(dsi->bridge);
 
 	if (debug_dump_regs) {
 		struct drm_printer p = drm_info_printer(&dsi->pdev->dev);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -681,11 +681,23 @@
 vc4_hdmi_encoder_mode_valid(struct drm_encoder *crtc,
 			    const struct drm_display_mode *mode)
 {
-	/* HSM clock must be 108% of the pixel clock.  Additionally,
-	 * the AXI clock needs to be at least 25% of pixel clock, but
-	 * HSM ends up being the limiting factor.
+	/*
+	 * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must
+	 * be faster than pixel clock, infinitesimally faster, tested in
+	 * simulation. Otherwise, exact value is unimportant for HDMI
+	 * operation." This conflicts with bcm2835's vc4 documentation, which
+	 * states HSM's clock has to be at least 108% of the pixel clock.
+	 *
+	 * Real life tests reveal that vc4's firmware statement holds up, and
+	 * users are able to use pixel clocks closer to HSM's, namely for
+	 * 1920x1200@60Hz. So it was decided to have leave a 1% margin between
+	 * both clocks. Which, for RPi0-3 implies a maximum pixel clock of
+	 * 162MHz.
+	 *
+	 * Additionally, the AXI clock needs to be at least 25% of
+	 * pixel clock, but HSM ends up being the limiting factor.
 	 */
-	if (mode->clock > HSM_CLOCK_FREQ / (1000 * 108 / 100))
+	if (mode->clock > HSM_CLOCK_FREQ / (1000 * 101 / 100))
 		return MODE_CLOCK_HIGH;
 
 	return MODE_OK;
@@ -1113,6 +1125,7 @@
 	card->num_links = 1;
 	card->name = "vc4-hdmi";
 	card->dev = dev;
+	card->owner = THIS_MODULE;
 
 	/*
 	 * Be careful, snd_soc_register_card() calls dev_set_drvdata() and
@@ -1285,6 +1298,9 @@
 
 static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
 {
+#ifdef CONFIG_DRM_VC4_HDMI_CEC
+	struct cec_connector_info conn_info;
+#endif
 	struct platform_device *pdev = to_platform_device(dev);
 	struct drm_device *drm = dev_get_drvdata(master);
 	struct vc4_dev *vc4 = drm->dev_private;
@@ -1403,13 +1419,15 @@
 #ifdef CONFIG_DRM_VC4_HDMI_CEC
 	hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
 					      vc4, "vc4",
-					      CEC_CAP_TRANSMIT |
-					      CEC_CAP_LOG_ADDRS |
-					      CEC_CAP_PASSTHROUGH |
-					      CEC_CAP_RC, 1);
+					      CEC_CAP_DEFAULTS |
+					      CEC_CAP_CONNECTOR_INFO, 1);
 	ret = PTR_ERR_OR_ZERO(hdmi->cec_adap);
 	if (ret < 0)
 		goto err_destroy_conn;
+
+	cec_fill_conn_info_from_drm(&conn_info, hdmi->connector);
+	cec_s_conn_info(hdmi->cec_adap, &conn_info);
+
 	HDMI_WRITE(VC4_HDMI_CPU_MASK_SET, 0xffffffff);
 	value = HDMI_READ(VC4_HDMI_CEC_CNTRL_1);
 	value &= ~VC4_HDMI_CEC_DIV_CLK_CNT_MASK;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_plane.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_plane.c
@@ -205,7 +205,7 @@
 	__drm_atomic_helper_plane_reset(plane, &vc4_state->base);
 }
 
-static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val)
+static void vc4_dlist_counter_increment(struct vc4_plane_state *vc4_state)
 {
 	if (vc4_state->dlist_count == vc4_state->dlist_size) {
 		u32 new_size = max(4u, vc4_state->dlist_count * 2);
@@ -220,7 +220,15 @@
 		vc4_state->dlist_size = new_size;
 	}
 
-	vc4_state->dlist[vc4_state->dlist_count++] = val;
+	vc4_state->dlist_count++;
+}
+
+static void vc4_dlist_write(struct vc4_plane_state *vc4_state, u32 val)
+{
+	unsigned int idx = vc4_state->dlist_count;
+
+	vc4_dlist_counter_increment(vc4_state);
+	vc4_state->dlist[idx] = val;
 }
 
 /* Returns the scl0/scl1 field based on whether the dimensions need to
@@ -280,16 +288,16 @@
 					       adjhdisplay,
 					       crtc_state->mode.hdisplay);
 	vc4_pstate->crtc_x += left;
-	if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - left)
-		vc4_pstate->crtc_x = crtc_state->mode.hdisplay - left;
+	if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - right)
+		vc4_pstate->crtc_x = crtc_state->mode.hdisplay - right;
 
 	adjvdisplay = crtc_state->mode.vdisplay - (top + bottom);
 	vc4_pstate->crtc_y = DIV_ROUND_CLOSEST(vc4_pstate->crtc_y *
 					       adjvdisplay,
 					       crtc_state->mode.vdisplay);
 	vc4_pstate->crtc_y += top;
-	if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - top)
-		vc4_pstate->crtc_y = crtc_state->mode.vdisplay - top;
+	if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - bottom)
+		vc4_pstate->crtc_y = crtc_state->mode.vdisplay - bottom;
 
 	vc4_pstate->crtc_w = DIV_ROUND_CLOSEST(vc4_pstate->crtc_w *
 					       adjhdisplay,
@@ -309,7 +317,6 @@
 	struct vc4_plane_state *vc4_state = to_vc4_plane_state(state);
 	struct drm_framebuffer *fb = state->fb;
 	struct drm_gem_cma_object *bo = drm_fb_cma_get_gem_obj(fb, 0);
-	u32 subpixel_src_mask = (1 << 16) - 1;
 	int num_planes = fb->format->num_planes;
 	struct drm_crtc_state *crtc_state;
 	u32 h_subsample = fb->format->hsub;
@@ -331,18 +338,15 @@
 	for (i = 0; i < num_planes; i++)
 		vc4_state->offsets[i] = bo->paddr + fb->offsets[i];
 
-	/* We don't support subpixel source positioning for scaling. */
-	if ((state->src.x1 & subpixel_src_mask) ||
-	    (state->src.x2 & subpixel_src_mask) ||
-	    (state->src.y1 & subpixel_src_mask) ||
-	    (state->src.y2 & subpixel_src_mask)) {
-		return -EINVAL;
-	}
-
-	vc4_state->src_x = state->src.x1 >> 16;
-	vc4_state->src_y = state->src.y1 >> 16;
-	vc4_state->src_w[0] = (state->src.x2 - state->src.x1) >> 16;
-	vc4_state->src_h[0] = (state->src.y2 - state->src.y1) >> 16;
+	/*
+	 * We don't support subpixel source positioning for scaling,
+	 * but fractional coordinates can be generated by clipping
+	 * so just round for now
+	 */
+	vc4_state->src_x = DIV_ROUND_CLOSEST(state->src.x1, 1 << 16);
+	vc4_state->src_y = DIV_ROUND_CLOSEST(state->src.y1, 1 << 16);
+	vc4_state->src_w[0] = DIV_ROUND_CLOSEST(state->src.x2, 1 << 16) - vc4_state->src_x;
+	vc4_state->src_h[0] = DIV_ROUND_CLOSEST(state->src.y2, 1 << 16) - vc4_state->src_y;
 
 	vc4_state->crtc_x = state->dst.x1;
 	vc4_state->crtc_y = state->dst.y1;
@@ -871,8 +875,10 @@
 		 * be set when calling vc4_plane_allocate_lbm().
 		 */
 		if (vc4_state->y_scaling[0] != VC4_SCALING_NONE ||
-		    vc4_state->y_scaling[1] != VC4_SCALING_NONE)
-			vc4_state->lbm_offset = vc4_state->dlist_count++;
+		    vc4_state->y_scaling[1] != VC4_SCALING_NONE) {
+			vc4_state->lbm_offset = vc4_state->dlist_count;
+			vc4_dlist_counter_increment(vc4_state);
+		}
 
 		if (num_planes > 1) {
 			/* Emit Cb/Cr as channel 0 and Y as channel
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_txp.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_txp.c
@@ -285,12 +285,18 @@
 	if (WARN_ON(i == ARRAY_SIZE(drm_fmts)))
 		return;
 
-	ctrl = TXP_GO | TXP_VSTART_AT_EOF | TXP_EI |
+	ctrl = TXP_GO | TXP_EI |
 	       VC4_SET_FIELD(0xf, TXP_BYTE_ENABLE) |
 	       VC4_SET_FIELD(txp_fmts[i], TXP_FORMAT);
 
 	if (fb->format->has_alpha)
 		ctrl |= TXP_ALPHA_ENABLE;
+	else
+		/*
+		 * If TXP_ALPHA_ENABLE isn't set and TXP_ALPHA_INVERT is, the
+		 * hardware will force the output padding to be 0xff.
+		 */
+		ctrl |= TXP_ALPHA_INVERT;
 
 	gem = drm_fb_cma_get_gem_obj(fb, 0);
 	TXP_WRITE(TXP_DST_PTR, gem->paddr + fb->offsets[0]);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vc4/vc4_vec.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vc4/vc4_vec.c
@@ -256,7 +256,7 @@
 static const struct drm_display_mode ntsc_mode = {
 	DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 13500,
 		 720, 720 + 14, 720 + 14 + 64, 720 + 14 + 64 + 60, 0,
-		 480, 480 + 3, 480 + 3 + 3, 480 + 3 + 3 + 16, 0,
+		 480, 480 + 7, 480 + 7 + 6, 525, 0,
 		 DRM_MODE_FLAG_INTERLACE)
 };
 
@@ -278,7 +278,7 @@
 static const struct drm_display_mode pal_mode = {
 	DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 13500,
 		 720, 720 + 20, 720 + 20 + 64, 720 + 20 + 64 + 60, 0,
-		 576, 576 + 2, 576 + 2 + 3, 576 + 2 + 3 + 20, 0,
+		 576, 576 + 4, 576 + 4 + 6, 625, 0,
 		 DRM_MODE_FLAG_INTERLACE)
 };
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vgem/vgem_drv.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vgem/vgem_drv.c
@@ -196,9 +196,10 @@
 		return ERR_CAST(obj);
 
 	ret = drm_gem_handle_create(file, &obj->base, handle);
-	drm_gem_object_put_unlocked(&obj->base);
-	if (ret)
+	if (ret) {
+		drm_gem_object_put_unlocked(&obj->base);
 		return ERR_PTR(ret);
+	}
 
 	return &obj->base;
 }
@@ -221,35 +222,11 @@
 	args->size = gem_object->size;
 	args->pitch = pitch;
 
-	DRM_DEBUG("Created object of size %lld\n", size);
+	drm_gem_object_put_unlocked(gem_object);
 
-	return 0;
-}
-
-static int vgem_gem_dumb_map(struct drm_file *file, struct drm_device *dev,
-			     uint32_t handle, uint64_t *offset)
-{
-	struct drm_gem_object *obj;
-	int ret;
+	DRM_DEBUG("Created object of size %llu\n", args->size);
 
-	obj = drm_gem_object_lookup(file, handle);
-	if (!obj)
-		return -ENOENT;
-
-	if (!obj->filp) {
-		ret = -EINVAL;
-		goto unref;
-	}
-
-	ret = drm_gem_create_mmap_offset(obj);
-	if (ret)
-		goto unref;
-
-	*offset = drm_vma_node_offset_addr(&obj->vma_node);
-unref:
-	drm_gem_object_put_unlocked(obj);
-
-	return ret;
+	return 0;
 }
 
 static struct drm_ioctl_desc vgem_ioctls[] = {
@@ -445,7 +422,6 @@
 	.fops				= &vgem_driver_fops,
 
 	.dumb_create			= vgem_gem_dumb_create,
-	.dumb_map_offset		= vgem_gem_dumb_map,
 
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vgem/vgem_fence.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vgem/vgem_fence.c
@@ -249,4 +249,5 @@
 {
 	idr_for_each(&vfile->fence_idr, __vgem_fence_idr_fini, vfile);
 	idr_destroy(&vfile->fence_idr);
+	mutex_destroy(&vfile->fence_mutex);
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_display.c
+++ linux-ein-5.4.0/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -174,6 +174,8 @@
 		DRM_DEBUG("add mode: %dx%d\n", width, height);
 		mode = drm_cvt_mode(connector->dev, width, height, 60,
 				    false, false, false);
+		if (!mode)
+			return count;
 		mode->type |= DRM_MODE_TYPE_PREFERRED;
 		drm_mode_probed_add(connector, mode);
 		count++;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ linux-ein-5.4.0/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -327,10 +327,18 @@
 		drm_gem_object_release(obj);
 		return ret;
 	}
-	drm_gem_object_put_unlocked(obj);
 
 	rc->res_handle = qobj->hw_res_handle; /* similiar to a VM address */
 	rc->bo_handle = handle;
+
+	/*
+	 * The handle owns the reference now.  But we must drop our
+	 * remaining reference *after* we no longer need to dereference
+	 * the obj.  Otherwise userspace could guess the handle and
+	 * race closing it from another thread.
+	 */
+	drm_gem_object_put_unlocked(obj);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -96,8 +96,10 @@
 					 vgdev->capsets[i].id > 0, 5 * HZ);
 		if (ret == 0) {
 			DRM_ERROR("timed out waiting for cap set %d\n", i);
+			spin_lock(&vgdev->display_info_lock);
 			kfree(vgdev->capsets);
 			vgdev->capsets = NULL;
+			spin_unlock(&vgdev->display_info_lock);
 			return;
 		}
 		DRM_INFO("cap set %d: id %d, max-version %d, max-size %d\n",
@@ -216,6 +218,7 @@
 err_vbufs:
 	vgdev->vdev->config->del_vqs(vgdev->vdev);
 err_vqs:
+	dev->dev_private = NULL;
 	kfree(vgdev);
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_object.c
+++ linux-ein-5.4.0/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -23,38 +23,44 @@
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/moduleparam.h>
+
 #include <drm/ttm/ttm_execbuf_util.h>
 
 #include "virtgpu_drv.h"
 
+static int virtio_gpu_virglrenderer_workaround = 1;
+module_param_named(virglhack, virtio_gpu_virglrenderer_workaround, int, 0400);
+
 static int virtio_gpu_resource_id_get(struct virtio_gpu_device *vgdev,
 				       uint32_t *resid)
 {
-#if 0
-	int handle = ida_alloc(&vgdev->resource_ida, GFP_KERNEL);
-
-	if (handle < 0)
-		return handle;
-#else
-	static int handle;
-
-	/*
-	 * FIXME: dirty hack to avoid re-using IDs, virglrenderer
-	 * can't deal with that.  Needs fixing in virglrenderer, also
-	 * should figure a better way to handle that in the guest.
-	 */
-	handle++;
-#endif
-
-	*resid = handle + 1;
+	if (virtio_gpu_virglrenderer_workaround) {
+		/*
+		 * Hack to avoid re-using resource IDs.
+		 *
+		 * virglrenderer versions up to (and including) 0.7.0
+		 * can't deal with that.  virglrenderer commit
+		 * "f91a9dd35715 Fix unlinking resources from hash
+		 * table." (Feb 2019) fixes the bug.
+		 */
+		static atomic_t seqno = ATOMIC_INIT(0);
+		int handle = atomic_inc_return(&seqno);
+		*resid = handle + 1;
+	} else {
+		int handle = ida_alloc(&vgdev->resource_ida, GFP_KERNEL);
+		if (handle < 0)
+			return handle;
+		*resid = handle + 1;
+	}
 	return 0;
 }
 
 static void virtio_gpu_resource_id_put(struct virtio_gpu_device *vgdev, uint32_t id)
 {
-#if 0
-	ida_free(&vgdev->resource_ida, id - 1);
-#endif
+	if (!virtio_gpu_virglrenderer_workaround) {
+		ida_free(&vgdev->resource_ida, id - 1);
+	}
 }
 
 static void virtio_gpu_ttm_bo_destroy(struct ttm_buffer_object *tbo)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ linux-ein-5.4.0/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -80,9 +80,7 @@
 {
 	struct virtio_gpu_vbuffer *vbuf;
 
-	vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_KERNEL);
-	if (!vbuf)
-		return ERR_PTR(-ENOMEM);
+	vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_KERNEL | __GFP_NOFAIL);
 
 	BUG_ON(size > MAX_INLINE_CMD_SIZE);
 	vbuf->buf = (void *)vbuf + sizeof(*vbuf);
@@ -142,10 +140,6 @@
 
 	vbuf = virtio_gpu_get_vbuf(vgdev, cmd_size,
 				   resp_size, resp_buf, cb);
-	if (IS_ERR(vbuf)) {
-		*vbuffer_p = NULL;
-		return ERR_CAST(vbuf);
-	}
 	*vbuffer_p = vbuf;
 	return (struct virtio_gpu_command *)vbuf->buf;
 }
@@ -572,9 +566,13 @@
 	int i = le32_to_cpu(cmd->capset_index);
 
 	spin_lock(&vgdev->display_info_lock);
-	vgdev->capsets[i].id = le32_to_cpu(resp->capset_id);
-	vgdev->capsets[i].max_version = le32_to_cpu(resp->capset_max_version);
-	vgdev->capsets[i].max_size = le32_to_cpu(resp->capset_max_size);
+	if (vgdev->capsets) {
+		vgdev->capsets[i].id = le32_to_cpu(resp->capset_id);
+		vgdev->capsets[i].max_version = le32_to_cpu(resp->capset_max_version);
+		vgdev->capsets[i].max_size = le32_to_cpu(resp->capset_max_size);
+	} else {
+		DRM_ERROR("invalid capset memory.");
+	}
 	spin_unlock(&vgdev->display_info_lock);
 	wake_up(&vgdev->resp_wq);
 }
@@ -988,8 +986,9 @@
 	}
 
 	/* gets freed when the ring has consumed it */
-	ents = kmalloc_array(nents, sizeof(struct virtio_gpu_mem_entry),
-			     GFP_KERNEL);
+	ents = kvmalloc_array(nents,
+			      sizeof(struct virtio_gpu_mem_entry),
+			      GFP_KERNEL);
 	if (!ents) {
 		DRM_ERROR("failed to allocate ent list\n");
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vkms/vkms_composer.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vkms/vkms_composer.c
@@ -33,7 +33,7 @@
 				     + (i * composer->pitch)
 				     + (j * composer->cpp);
 			/* XRGB format ignores Alpha channel */
-			memset(vaddr_out + src_offset + 24, 0,  8);
+			bitmap_clear(vaddr_out + src_offset, 24, 8);
 			crc = crc32_le(crc, vaddr_out + src_offset,
 				       sizeof(u32));
 		}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vkms/vkms_crtc.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -20,7 +20,8 @@
 
 	ret_overrun = hrtimer_forward_now(&output->vblank_hrtimer,
 					  output->period_ns);
-	WARN_ON(ret_overrun != 1);
+	if (ret_overrun != 1)
+		pr_warn("%s: vblank timer overrun\n", __func__);
 
 	ret = drm_crtc_handle_vblank(crtc);
 	if (!ret)
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vkms/vkms_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/vkms/vkms_drv.h
@@ -121,11 +121,6 @@
 				  enum drm_plane_type type, int index);
 
 /* Gem stuff */
-struct drm_gem_object *vkms_gem_create(struct drm_device *dev,
-				       struct drm_file *file,
-				       u32 *handle,
-				       u64 size);
-
 vm_fault_t vkms_gem_fault(struct vm_fault *vmf);
 
 int vkms_dumb_create(struct drm_file *file, struct drm_device *dev,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vkms/vkms_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vkms/vkms_gem.c
@@ -95,10 +95,10 @@
 	return ret;
 }
 
-struct drm_gem_object *vkms_gem_create(struct drm_device *dev,
-				       struct drm_file *file,
-				       u32 *handle,
-				       u64 size)
+static struct drm_gem_object *vkms_gem_create(struct drm_device *dev,
+					      struct drm_file *file,
+					      u32 *handle,
+					      u64 size)
 {
 	struct vkms_gem_object *obj;
 	int ret;
@@ -111,7 +111,6 @@
 		return ERR_CAST(obj);
 
 	ret = drm_gem_handle_create(file, &obj->gem, handle);
-	drm_gem_object_put_unlocked(&obj->gem);
 	if (ret)
 		return ERR_PTR(ret);
 
@@ -140,6 +139,8 @@
 	args->size = gem_obj->size;
 	args->pitch = pitch;
 
+	drm_gem_object_put_unlocked(gem_obj);
+
 	DRM_DEBUG_DRIVER("Created object of size %lld\n", size);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
@@ -209,8 +209,10 @@
 
 	cres->hash.key = user_key | (res_type << 24);
 	ret = drm_ht_insert_item(&man->resources, &cres->hash);
-	if (unlikely(ret != 0))
+	if (unlikely(ret != 0)) {
+		kfree(cres);
 		goto out_invalid_key;
+	}
 
 	cres->state = VMW_CMDBUF_RES_ADD;
 	cres->res = vmw_resource_reference(res);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -1002,15 +1002,14 @@
 				      struct vmw_private *dev_priv,
 				      struct vmw_fence_obj **p_fence,
 				      uint32_t *p_handle);
-extern void vmw_execbuf_copy_fence_user(struct vmw_private *dev_priv,
+extern int vmw_execbuf_copy_fence_user(struct vmw_private *dev_priv,
 					struct vmw_fpriv *vmw_fp,
 					int ret,
 					struct drm_vmw_fence_rep __user
 					*user_fence_rep,
 					struct vmw_fence_obj *fence,
 					uint32_t fence_handle,
-					int32_t out_fence_fd,
-					struct sync_file *sync_file);
+					int32_t out_fence_fd);
 bool vmw_cmd_describe(const void *buf, u32 *size, char const **cmd);
 
 /**
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -1623,7 +1623,7 @@
 {
 	VMW_DECLARE_CMD_VAR(*cmd, SVGA3dCmdSetTextureState);
 	SVGA3dTextureState *last_state = (SVGA3dTextureState *)
-	  ((unsigned long) header + header->size + sizeof(header));
+	  ((unsigned long) header + header->size + sizeof(*header));
 	SVGA3dTextureState *cur_state = (SVGA3dTextureState *)
 		((unsigned long) header + sizeof(*cmd));
 	struct vmw_resource *ctx;
@@ -3413,17 +3413,17 @@
  * Also if copying fails, user-space will be unable to signal the fence object
  * so we wait for it immediately, and then unreference the user-space reference.
  */
-void
+int
 vmw_execbuf_copy_fence_user(struct vmw_private *dev_priv,
 			    struct vmw_fpriv *vmw_fp, int ret,
 			    struct drm_vmw_fence_rep __user *user_fence_rep,
 			    struct vmw_fence_obj *fence, uint32_t fence_handle,
-			    int32_t out_fence_fd, struct sync_file *sync_file)
+			    int32_t out_fence_fd)
 {
 	struct drm_vmw_fence_rep fence_rep;
 
 	if (user_fence_rep == NULL)
-		return;
+		return 0;
 
 	memset(&fence_rep, 0, sizeof(fence_rep));
 
@@ -3451,20 +3451,14 @@
 	 * handle.
 	 */
 	if (unlikely(ret != 0) && (fence_rep.error == 0)) {
-		if (sync_file)
-			fput(sync_file->file);
-
-		if (fence_rep.fd != -1) {
-			put_unused_fd(fence_rep.fd);
-			fence_rep.fd = -1;
-		}
-
 		ttm_ref_object_base_unref(vmw_fp->tfile, fence_handle,
 					  TTM_REF_USAGE);
 		VMW_DEBUG_USER("Fence copy error. Syncing.\n");
 		(void) vmw_fence_obj_wait(fence, false, false,
 					  VMW_FENCE_WAIT_TIMEOUT);
 	}
+
+	return ret ? -EFAULT : 0;
 }
 
 /**
@@ -3806,16 +3800,23 @@
 
 			(void) vmw_fence_obj_wait(fence, false, false,
 						  VMW_FENCE_WAIT_TIMEOUT);
+		}
+	}
+
+	ret = vmw_execbuf_copy_fence_user(dev_priv, vmw_fpriv(file_priv), ret,
+				    user_fence_rep, fence, handle, out_fence_fd);
+
+	if (sync_file) {
+		if (ret) {
+			/* usercopy of fence failed, put the file object */
+			fput(sync_file->file);
+			put_unused_fd(out_fence_fd);
 		} else {
 			/* Link the fence with the FD created earlier */
 			fd_install(out_fence_fd, sync_file->file);
 		}
 	}
 
-	vmw_execbuf_copy_fence_user(dev_priv, vmw_fpriv(file_priv), ret,
-				    user_fence_rep, fence, handle, out_fence_fd,
-				    sync_file);
-
 	/* Don't unreference when handing fence out */
 	if (unlikely(out_fence != NULL)) {
 		*out_fence = fence;
@@ -3833,7 +3834,7 @@
 	 */
 	vmw_validation_unref_lists(&val_ctx);
 
-	return 0;
+	return ret;
 
 out_unlock_binding:
 	mutex_unlock(&dev_priv->binding_mutex);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
@@ -498,7 +498,7 @@
 
 static int vmw_fb_kms_framebuffer(struct fb_info *info)
 {
-	struct drm_mode_fb_cmd2 mode_cmd;
+	struct drm_mode_fb_cmd2 mode_cmd = {0};
 	struct vmw_fb_par *par = info->par;
 	struct fb_var_screeninfo *var = &info->var;
 	struct drm_framebuffer *cur_fb;
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
@@ -1171,7 +1171,7 @@
 	}
 
 	vmw_execbuf_copy_fence_user(dev_priv, vmw_fp, 0, user_fence_rep, fence,
-				    handle, -1, NULL);
+				    handle, -1);
 	vmw_fence_obj_unreference(&fence);
 	return 0;
 out_no_create:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -182,7 +182,8 @@
 	if (cmd->dma.guest.ptr.offset % PAGE_SIZE ||
 	    box->x != 0    || box->y != 0    || box->z != 0    ||
 	    box->srcx != 0 || box->srcy != 0 || box->srcz != 0 ||
-	    box->d != 1    || box_count != 1) {
+	    box->d != 1    || box_count != 1 ||
+	    box->w > 64 || box->h > 64) {
 		/* TODO handle none page aligned offsets */
 		/* TODO handle more dst & src != 0 */
 		/* TODO handle more then one copy */
@@ -2570,7 +2571,7 @@
 	if (file_priv)
 		vmw_execbuf_copy_fence_user(dev_priv, vmw_fpriv(file_priv),
 					    ret, user_fence_rep, fence,
-					    handle, -1, NULL);
+					    handle, -1);
 	if (out_fence)
 		*out_fence = fence;
 	else
@@ -2666,7 +2667,7 @@
 		++i;
 	}
 
-	if (i != unit) {
+	if (&con->head == &dev_priv->dev->mode_config.connector_list) {
 		DRM_ERROR("Could not find initial display unit.\n");
 		ret = -EINVAL;
 		goto out_unlock;
@@ -2690,13 +2691,13 @@
 			break;
 	}
 
-	if (mode->type & DRM_MODE_TYPE_PREFERRED)
-		*p_mode = mode;
-	else {
+	if (&mode->head == &con->modes) {
 		WARN_ONCE(true, "Could not find initial preferred mode.\n");
 		*p_mode = list_first_entry(&con->modes,
 					   struct drm_display_mode,
 					   head);
+	} else {
+		*p_mode = mode;
 	}
 
  out_unlock:
--- linux-ein-5.4.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ linux-ein-5.4.0/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -81,7 +81,7 @@
 	struct vmw_legacy_display_unit *entry;
 	struct drm_framebuffer *fb = NULL;
 	struct drm_crtc *crtc = NULL;
-	int i = 0;
+	int i;
 
 	/* If there is no display topology the host just assumes
 	 * that the guest will set the same layout as the host.
@@ -92,12 +92,11 @@
 			crtc = &entry->base.crtc;
 			w = max(w, crtc->x + crtc->mode.hdisplay);
 			h = max(h, crtc->y + crtc->mode.vdisplay);
-			i++;
 		}
 
 		if (crtc == NULL)
 			return 0;
-		fb = entry->base.crtc.primary->state->fb;
+		fb = crtc->primary->state->fb;
 
 		return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0],
 					  fb->format->cpp[0] * 8,
--- linux-ein-5.4.0.orig/drivers/gpu/drm/xen/xen_drm_front.c
+++ linux-ein-5.4.0/drivers/gpu/drm/xen/xen_drm_front.c
@@ -400,7 +400,7 @@
 	args->size = args->pitch * args->height;
 
 	obj = xen_drm_front_gem_create(dev, args->size);
-	if (IS_ERR_OR_NULL(obj)) {
+	if (IS_ERR(obj)) {
 		ret = PTR_ERR(obj);
 		goto fail;
 	}
--- linux-ein-5.4.0.orig/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ linux-ein-5.4.0/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -83,7 +83,7 @@
 
 	size = round_up(size, PAGE_SIZE);
 	xen_obj = gem_create_obj(dev, size);
-	if (IS_ERR_OR_NULL(xen_obj))
+	if (IS_ERR(xen_obj))
 		return xen_obj;
 
 	if (drm_info->front_info->cfg.be_alloc) {
@@ -117,7 +117,7 @@
 	 */
 	xen_obj->num_pages = DIV_ROUND_UP(size, PAGE_SIZE);
 	xen_obj->pages = drm_gem_get_pages(&xen_obj->base);
-	if (IS_ERR_OR_NULL(xen_obj->pages)) {
+	if (IS_ERR(xen_obj->pages)) {
 		ret = PTR_ERR(xen_obj->pages);
 		xen_obj->pages = NULL;
 		goto fail;
@@ -136,7 +136,7 @@
 	struct xen_gem_object *xen_obj;
 
 	xen_obj = gem_create(dev, size);
-	if (IS_ERR_OR_NULL(xen_obj))
+	if (IS_ERR(xen_obj))
 		return ERR_CAST(xen_obj);
 
 	return &xen_obj->base;
@@ -194,7 +194,7 @@
 
 	size = attach->dmabuf->size;
 	xen_obj = gem_create_obj(dev, size);
-	if (IS_ERR_OR_NULL(xen_obj))
+	if (IS_ERR(xen_obj))
 		return ERR_CAST(xen_obj);
 
 	ret = gem_alloc_pages_array(xen_obj, size);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ linux-ein-5.4.0/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -60,7 +60,7 @@
 	int ret;
 
 	fb = drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, &fb_funcs);
-	if (IS_ERR_OR_NULL(fb))
+	if (IS_ERR(fb))
 		return fb;
 
 	gem_obj = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
--- linux-ein-5.4.0.orig/drivers/gpu/drm/zte/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/drm/zte/Kconfig
@@ -3,7 +3,6 @@
 	tristate "DRM Support for ZTE SoCs"
 	depends on DRM && ARCH_ZX
 	select DRM_KMS_CMA_HELPER
-	select DRM_KMS_FB_HELPER
 	select DRM_KMS_HELPER
 	select SND_SOC_HDMI_CODEC if SND_SOC
 	select VIDEOMODE_HELPERS
--- linux-ein-5.4.0.orig/drivers/gpu/host1x/bus.c
+++ linux-ein-5.4.0/drivers/gpu/host1x/bus.c
@@ -686,8 +686,17 @@
  */
 void host1x_driver_unregister(struct host1x_driver *driver)
 {
+	struct host1x *host1x;
+
 	driver_unregister(&driver->driver);
 
+	mutex_lock(&devices_lock);
+
+	list_for_each_entry(host1x, &devices, list)
+		host1x_detach_driver(host1x, driver);
+
+	mutex_unlock(&devices_lock);
+
 	mutex_lock(&drivers_lock);
 	list_del_init(&driver->list);
 	mutex_unlock(&drivers_lock);
--- linux-ein-5.4.0.orig/drivers/gpu/host1x/debug.c
+++ linux-ein-5.4.0/drivers/gpu/host1x/debug.c
@@ -16,6 +16,8 @@
 #include "debug.h"
 #include "channel.h"
 
+static DEFINE_MUTEX(debug_lock);
+
 unsigned int host1x_debug_trace_cmdbuf;
 
 static pid_t host1x_debug_force_timeout_pid;
@@ -52,12 +54,14 @@
 	struct output *o = data;
 
 	mutex_lock(&ch->cdma.lock);
+	mutex_lock(&debug_lock);
 
 	if (show_fifo)
 		host1x_hw_show_channel_fifo(m, ch, o);
 
 	host1x_hw_show_channel_cdma(m, ch, o);
 
+	mutex_unlock(&debug_lock);
 	mutex_unlock(&ch->cdma.lock);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/gpu/host1x/hw/syncpt_hw.c
+++ linux-ein-5.4.0/drivers/gpu/host1x/hw/syncpt_hw.c
@@ -106,9 +106,6 @@
 #if HOST1X_HW >= 6
 	struct host1x *host = sp->host;
 
-	if (!host->hv_regs)
-		return;
-
 	host1x_sync_writel(host,
 			   HOST1X_SYNC_SYNCPT_CH_APP_CH(ch ? ch->id : 0xff),
 			   HOST1X_SYNC_SYNCPT_CH_APP(sp->id));
--- linux-ein-5.4.0.orig/drivers/gpu/host1x/job.c
+++ linux-ein-5.4.0/drivers/gpu/host1x/job.c
@@ -436,7 +436,8 @@
 	return err;
 }
 
-static inline int copy_gathers(struct host1x_job *job, struct device *dev)
+static inline int copy_gathers(struct device *host, struct host1x_job *job,
+			       struct device *dev)
 {
 	struct host1x_firewall fw;
 	size_t size = 0;
@@ -459,12 +460,12 @@
 	 * Try a non-blocking allocation from a higher priority pools first,
 	 * as awaiting for the allocation here is a major performance hit.
 	 */
-	job->gather_copy_mapped = dma_alloc_wc(dev, size, &job->gather_copy,
+	job->gather_copy_mapped = dma_alloc_wc(host, size, &job->gather_copy,
 					       GFP_NOWAIT);
 
 	/* the higher priority allocation failed, try the generic-blocking */
 	if (!job->gather_copy_mapped)
-		job->gather_copy_mapped = dma_alloc_wc(dev, size,
+		job->gather_copy_mapped = dma_alloc_wc(host, size,
 						       &job->gather_copy,
 						       GFP_KERNEL);
 	if (!job->gather_copy_mapped)
@@ -512,7 +513,7 @@
 		goto out;
 
 	if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL)) {
-		err = copy_gathers(job, dev);
+		err = copy_gathers(host->dev, job, dev);
 		if (err)
 			goto out;
 	}
@@ -573,7 +574,7 @@
 	job->num_unpins = 0;
 
 	if (job->gather_copy_size)
-		dma_free_wc(job->channel->dev, job->gather_copy_size,
+		dma_free_wc(host->dev, job->gather_copy_size,
 			    job->gather_copy_mapped, job->gather_copy);
 }
 EXPORT_SYMBOL(host1x_job_unpin);
--- linux-ein-5.4.0.orig/drivers/gpu/imx/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/imx/Kconfig
@@ -0,0 +1,20 @@
+config IMX8_PRG
+	tristate
+	default y if IMX_DPU_CORE=y
+	default m if IMX_DPU_CORE=m
+
+config IMX8_DPRC
+	tristate
+	default y if IMX_DPU_CORE=y
+	default m if IMX_DPU_CORE=m
+
+config IMX8_PC
+	tristate
+	default y if IMX_DPU_CORE=y
+	default m if IMX_DPU_CORE=m
+
+source "drivers/gpu/imx/dpu/Kconfig"
+source "drivers/gpu/imx/lcdif/Kconfig"
+source "drivers/gpu/imx/dpu-blit/Kconfig"
+source "drivers/gpu/imx/lcdifv3/Kconfig"
+
--- linux-ein-5.4.0.orig/drivers/gpu/imx/Makefile
+++ linux-ein-5.4.0/drivers/gpu/imx/Makefile
@@ -0,0 +1,10 @@
+obj-$(CONFIG_IMX_DPU_CORE)	+= dpu/
+obj-$(CONFIG_IMX_DPU_BLIT)      += dpu-blit/
+obj-$(CONFIG_IMX_LCDIF_CORE)    += lcdif/
+obj-$(CONFIG_IMX_LCDIFV3_CORE)  += lcdifv3/
+obj-$(CONFIG_IMX8_PC)	+= imx8_pc.o
+
+obj-$(CONFIG_IMX8_PRG)	+= imx8_prg.o
+obj-$(CONFIG_IMX8_DPRC)	+= imx8_dprc.o
+
+
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu-blit/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu-blit/Kconfig
@@ -0,0 +1,5 @@
+config IMX_DPU_BLIT
+	tristate
+	depends on IMX_DPU_CORE
+	default y if IMX_DPU_CORE=y
+	default m if IMX_DPU_CORE=m
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu-blit/Makefile
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu-blit/Makefile
@@ -0,0 +1,5 @@
+ccflags-y += -I $(srctree)/$(src)/../dpu/
+
+imx-dpu-blit-objs := dpu-blit.o
+
+obj-$(CONFIG_IMX_DPU_BLIT) += imx-dpu-blit.o
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu-blit/dpu-blit-registers.h
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu-blit/dpu-blit-registers.h
@@ -0,0 +1,283 @@
+/*
+ * Copyright 2017 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef __DPU_BLIT_REGISTERS_H__
+#define __DPU_BLIT_REGISTERS_H__
+
+/* Registers Defination */
+#define COMCTRL_IPIDENTIFIER                       ((uint32_t)(0))
+
+#define PIXENGCFG_STORE9_TRIGGER                    ((uint32_t)(0x954))
+
+#define COMCTRL_USERINTERRUPTMASK0                  ((uint32_t)(0x48))
+#define COMCTRL_USERINTERRUPTMASK0_USERINTERRUPTMASK0_MASK 0xFFFFFFFFU
+#define COMCTRL_USERINTERRUPTENABLE0                ((uint32_t)(0x80))
+
+#define COMCTRL_INTERRUPTENABLE0                    ((uint32_t)(0x50))
+
+#define COMCTRL_INTERRUPTSTATUS0                    ((uint32_t)(0x68))
+#define COMCTRL_USERINTERRUPTSTATUS0                ((uint32_t)(0x98))
+
+#define COMCTRL_USERINTERRUPTCLEAR0                 ((uint32_t)(0x90))
+#define COMCTRL_USERINTERRUPTCLEAR0_USERINTERRUPTCLEAR0_MASK 0xFFFFFFFFU
+
+#define COMCTRL_INTERRUPTCLEAR0                     ((uint32_t)(0x60))
+#define COMCTRL_INTERRUPTCLEAR0_INTERRUPTCLEAR0_MASK 0xFFFFFFFFU
+
+
+#define PIXENGCFG_FETCHDECODE9_DYNAMIC              ((uint32_t)(0x828))
+#define PIXENGCFG_FETCHDECODE9_DYNAMIC_RESET_VALUE  0U
+
+#define PIXENGCFG_FETCHWARP9_DYNAMIC                ((uint32_t)(0x848))
+#define PIXENGCFG_FETCHWARP9_DYNAMIC_RESET_VALUE    0U
+
+#define PIXENGCFG_ROP9_DYNAMIC                      ((uint32_t)(0x868))
+#define PIXENGCFG_ROP9_DYNAMIC_RESET_VALUE          0x1000000U
+
+#define PIXENGCFG_MATRIX9_DYNAMIC                   ((uint32_t)(0x8A8))
+#define PIXENGCFG_MATRIX9_DYNAMIC_RESET_VALUE       0x1000000U
+
+#define PIXENGCFG_HSCALER9_DYNAMIC                  ((uint32_t)(0x8C8))
+#define PIXENGCFG_HSCALER9_DYNAMIC_RESET_VALUE      0x1000000U
+
+#define PIXENGCFG_VSCALER9_DYNAMIC                  ((uint32_t)(0x8E8))
+#define PIXENGCFG_VSCALER9_DYNAMIC_RESET_VALUE      0x1000000U
+
+#define PIXENGCFG_BLITBLEND9_DYNAMIC                ((uint32_t)(0x928))
+#define PIXENGCFG_BLITBLEND9_DYNAMIC_RESET_VALUE    0x1000000U
+
+#define PIXENGCFG_STORE9_STATIC                     ((uint32_t)(0x948))
+#define PIXENGCFG_STORE9_STATIC_RESET_VALUE         0x800010U
+#define PIXENGCFG_STORE9_STATIC_RESET_MASK          0xFFFFFFFFU
+#define PIXENGCFG_STORE9_STATIC_STORE9_SHDEN_MASK   0x1U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SHDEN_SHIFT  0U
+#define PIXENGCFG_STORE9_STATIC_STORE9_POWERDOWN_MASK 0x10U
+#define PIXENGCFG_STORE9_STATIC_STORE9_POWERDOWN_SHIFT 4U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SYNC_MODE_MASK 0x100U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SYNC_MODE_SHIFT 8U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SYNC_MODE__SINGLE 0U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SYNC_MODE__AUTO 0x1U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SW_RESET_MASK 0x800U
+#define PIXENGCFG_STORE9_STATIC_STORE9_SW_RESET_SHIFT 11U
+/* Field Value: STORE9_SW_RESET__OPERATION, Normal Operation  */
+#define PIXENGCFG_STORE9_STATIC_STORE9_SW_RESET__OPERATION 0U
+/* Field Value: STORE9_SW_RESET__SWRESET, Software Reset  */
+#define PIXENGCFG_STORE9_STATIC_STORE9_SW_RESET__SWRESET 0x1U
+#define PIXENGCFG_STORE9_STATIC_STORE9_DIV_MASK     0xFF0000U
+#define PIXENGCFG_STORE9_STATIC_STORE9_DIV_SHIFT    16U
+
+#define PIXENGCFG_STORE9_DYNAMIC                    ((uint32_t)(0x94C))
+
+#define FETCHDECODE9_STATICCONTROL                  ((uint32_t)(0x1008))
+#define FETCHDECODE9_STATICCONTROL_OFFSET           ((uint32_t)(0x8))
+#define FETCHDECODE9_STATICCONTROL_RESET_VALUE      0U
+#define FETCHDECODE9_STATICCONTROL_SHDEN_MASK       0x1U
+#define FETCHDECODE9_STATICCONTROL_SHDEN_SHIFT      0U
+#define FETCHDECODE9_STATICCONTROL_BASEADDRESSAUTOUPDATE_MASK 0xFF0000U
+#define FETCHDECODE9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT 16U
+
+#define FETCHDECODE9_BURSTBUFFERMANAGEMENT          ((uint32_t)(0x100C))
+#define FETCHDECODE9_BASEADDRESS0                   ((uint32_t)(0x101C))
+#define FETCHDECODE9_SOURCEBUFFERATTRIBUTES0        ((uint32_t)(0x1020))
+#define FETCHDECODE9_SOURCEBUFFERDIMENSION0         ((uint32_t)(0x1024))
+#define FETCHDECODE9_COLORCOMPONENTBITS0            ((uint32_t)(0x1028))
+#define FETCHDECODE9_COLORCOMPONENTSHIFT0           ((uint32_t)(0x102C))
+#define FETCHDECODE9_LAYEROFFSET0                   ((uint32_t)(0x1030))
+#define FETCHDECODE9_CLIPWINDOWOFFSET0              ((uint32_t)(0x1034))
+#define FETCHDECODE9_CLIPWINDOWDIMENSIONS0          ((uint32_t)(0x1038))
+#define FETCHDECODE9_CONSTANTCOLOR0                 ((uint32_t)(0x103C))
+#define FETCHDECODE9_LAYERPROPERTY0                 ((uint32_t)(0x1040))
+#define FETCHDECODE9_FRAMEDIMENSIONS                ((uint32_t)(0x1044))
+#define FETCHDECODE9_FRAMERESAMPLING                ((uint32_t)(0x1048))
+#define FETCHDECODE9_CONTROL			    ((uint32_t)(0x1054))
+
+#define FETCHWARP9_STATICCONTROL                    ((uint32_t)(0x1808))
+#define FETCHWARP9_STATICCONTROL_OFFSET             ((uint32_t)(0x8))
+#define FETCHWARP9_STATICCONTROL_RESET_VALUE        0xFF000000U
+#define FETCHWARP9_STATICCONTROL_RESET_MASK         0xFFFFFFFFU
+#define FETCHWARP9_STATICCONTROL_SHDEN_MASK         0x1U
+#define FETCHWARP9_STATICCONTROL_SHDEN_SHIFT        0U
+#define FETCHWARP9_STATICCONTROL_BASEADDRESSAUTOUPDATE_MASK 0xFF0000U
+#define FETCHWARP9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT 16U
+#define FETCHWARP9_STATICCONTROL_SHDLDREQSTICKY_MASK 0xFF000000U
+#define FETCHWARP9_STATICCONTROL_SHDLDREQSTICKY_SHIFT 24U
+
+#define FETCHWARP9_BURSTBUFFERMANAGEMENT            ((uint32_t)(0x180C))
+#define FETCHWARP9_BASEADDRESS0                     ((uint32_t)(0x1810))
+#define FETCHWARP9_SOURCEBUFFERATTRIBUTES0          ((uint32_t)(0x1814))
+#define FETCHWARP9_SOURCEBUFFERDIMENSION0           ((uint32_t)(0x1818))
+#define FETCHWARP9_COLORCOMPONENTBITS0              ((uint32_t)(0x181C))
+#define FETCHWARP9_COLORCOMPONENTSHIFT0             ((uint32_t)(0x1820))
+#define FETCHWARP9_LAYEROFFSET0                     ((uint32_t)(0x1824))
+#define FETCHWARP9_CLIPWINDOWOFFSET0                ((uint32_t)(0x1828))
+#define FETCHWARP9_CLIPWINDOWDIMENSIONS0            ((uint32_t)(0x182C))
+#define FETCHWARP9_CONSTANTCOLOR0                   ((uint32_t)(0x1830))
+#define FETCHWARP9_LAYERPROPERTY0                   ((uint32_t)(0x1834))
+#define FETCHWARP9_FRAMEDIMENSIONS                  ((uint32_t)(0x1950))
+#define FETCHWARP9_FRAMERESAMPLING                  ((uint32_t)(0x1954))
+#define FETCHWARP9_CONTROL                          ((uint32_t)(0x1970))
+
+
+#define FETCHECO9_STATICCONTROL                     ((uint32_t)(0x1C08))
+#define FETCHECO9_STATICCONTROL_OFFSET              ((uint32_t)(0x8))
+#define FETCHECO9_STATICCONTROL_RESET_VALUE         0U
+#define FETCHECO9_STATICCONTROL_RESET_MASK          0xFFFFFFFFU
+#define FETCHECO9_STATICCONTROL_SHDEN_MASK          0x1U
+#define FETCHECO9_STATICCONTROL_SHDEN_SHIFT         0U
+#define FETCHECO9_STATICCONTROL_BASEADDRESSAUTOUPDATE_MASK 0xFF0000U
+#define FETCHECO9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT 16U
+
+#define FETCHECO9_BURSTBUFFERMANAGEMENT             ((uint32_t)(0x1C0C))
+#define FETCHECO9_BASEADDRESS0                      ((uint32_t)(0x1C10))
+#define FETCHECO9_SOURCEBUFFERATTRIBUTES0           ((uint32_t)(0x1C14))
+#define FETCHECO9_SOURCEBUFFERDIMENSION0            ((uint32_t)(0x1C18))
+#define FETCHECO9_COLORCOMPONENTBITS0               ((uint32_t)(0x1C1C))
+#define FETCHECO9_COLORCOMPONENTSHIFT0              ((uint32_t)(0x1C20))
+#define FETCHECO9_LAYEROFFSET0                      ((uint32_t)(0x1C24))
+#define FETCHECO9_CLIPWINDOWOFFSET0                 ((uint32_t)(0x1C28))
+#define FETCHECO9_CLIPWINDOWDIMENSIONS0             ((uint32_t)(0x1C2C))
+#define FETCHECO9_CONSTANTCOLOR0                    ((uint32_t)(0x1C30))
+#define FETCHECO9_LAYERPROPERTY0                    ((uint32_t)(0x1C34))
+#define FETCHECO9_FRAMEDIMENSIONS                   ((uint32_t)(0x1C38))
+#define FETCHECO9_FRAMERESAMPLING                   ((uint32_t)(0x1C3C))
+#define FETCHECO9_CONTROL                           ((uint32_t)(0x1C40))
+
+
+#define ROP9_STATICCONTROL                          ((uint32_t)(0x2008))
+#define ROP9_STATICCONTROL_OFFSET                   ((uint32_t)(0x8))
+#define ROP9_STATICCONTROL_RESET_VALUE              0U
+#define ROP9_STATICCONTROL_RESET_MASK               0xFFFFFFFFU
+#define ROP9_STATICCONTROL_SHDEN_MASK               0x1U
+#define ROP9_STATICCONTROL_SHDEN_SHIFT              0U
+
+#define ROP9_CONTROL                                ((uint32_t)(0x200C))
+
+#define MATRIX9_STATICCONTROL                       ((uint32_t)(0x2C08))
+#define MATRIX9_STATICCONTROL_OFFSET                ((uint32_t)(0x8))
+#define MATRIX9_STATICCONTROL_RESET_VALUE           0U
+#define MATRIX9_STATICCONTROL_RESET_MASK            0xFFFFFFFFU
+#define MATRIX9_STATICCONTROL_SHDEN_MASK            0x1U
+#define MATRIX9_STATICCONTROL_SHDEN_SHIFT           0U
+
+#define MATRIX9_CONTROL                             ((uint32_t)(0x2C0C))
+
+#define HSCALER9_SETUP1                             ((uint32_t)(0x300C))
+#define HSCALER9_SETUP2                             ((uint32_t)(0x3010))
+#define HSCALER9_CONTROL                            ((uint32_t)(0x3014))
+
+#define VSCALER9_STATICCONTROL                      ((uint32_t)(0x3408))
+#define VSCALER9_STATICCONTROL_OFFSET               ((uint32_t)(0x8))
+#define VSCALER9_STATICCONTROL_RESET_VALUE          0U
+#define VSCALER9_STATICCONTROL_RESET_MASK           0xFFFFFFFFU
+#define VSCALER9_STATICCONTROL_SHDEN_MASK           0x1U
+#define VSCALER9_STATICCONTROL_SHDEN_SHIFT          0U
+
+#define VSCALER9_SETUP1                             ((uint32_t)(0x340C))
+#define VSCALER9_SETUP2                             ((uint32_t)(0x3410))
+#define VSCALER9_SETUP3                             ((uint32_t)(0x3414))
+#define VSCALER9_SETUP4                             ((uint32_t)(0x3418))
+#define VSCALER9_SETUP5                             ((uint32_t)(0x341C))
+#define VSCALER9_CONTROL                            ((uint32_t)(0x3420))
+
+#define HSCALER9_STATICCONTROL                      ((uint32_t)(0x3008))
+#define HSCALER9_STATICCONTROL_OFFSET               ((uint32_t)(0x8))
+#define HSCALER9_STATICCONTROL_RESET_VALUE          0U
+#define HSCALER9_STATICCONTROL_RESET_MASK           0xFFFFFFFFU
+#define HSCALER9_STATICCONTROL_SHDEN_MASK           0x1U
+#define HSCALER9_STATICCONTROL_SHDEN_SHIFT          0U
+
+#define BLITBLEND9_STATICCONTROL                    ((uint32_t)(0x3C08))
+#define BLITBLEND9_STATICCONTROL_OFFSET             ((uint32_t)(0x8))
+#define BLITBLEND9_STATICCONTROL_RESET_VALUE        0U
+#define BLITBLEND9_STATICCONTROL_RESET_MASK         0xFFFFFFFFU
+#define BLITBLEND9_STATICCONTROL_SHDEN_MASK         0x1U
+#define BLITBLEND9_STATICCONTROL_SHDEN_SHIFT        0U
+
+#define BLITBLEND9_CONTROL                          ((uint32_t)(0x3C0C))
+#define BLITBLEND9_CONSTANTCOLOR                    ((uint32_t)(0x3C14))
+#define BLITBLEND9_COLORREDBLENDFUNCTION            ((uint32_t)(0x3C18))
+#define BLITBLEND9_COLORGREENBLENDFUNCTION          ((uint32_t)(0x3C1C))
+#define BLITBLEND9_COLORBLUEBLENDFUNCTION           ((uint32_t)(0x3C20))
+#define BLITBLEND9_ALPHABLENDFUNCTION               ((uint32_t)(0x3C24))
+#define BLITBLEND9_BLENDMODE1                       ((uint32_t)(0x3C28))
+#define BLITBLEND9_BLENDMODE2                       ((uint32_t)(0x3C2C))
+
+
+#define STORE9_STATICCONTROL                        ((uint32_t)(0x4008))
+#define STORE9_STATICCONTROL_OFFSET                 ((uint32_t)(0x8))
+#define STORE9_STATICCONTROL_RESET_VALUE            0U
+#define STORE9_STATICCONTROL_RESET_MASK             0xFFFFFFFFU
+#define STORE9_STATICCONTROL_SHDEN_MASK             0x1U
+#define STORE9_STATICCONTROL_SHDEN_SHIFT            0U
+#define STORE9_STATICCONTROL_BASEADDRESSAUTOUPDATE_MASK 0x100U
+#define STORE9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT 8U
+
+#define STORE9_BURSTBUFFERMANAGEMENT                ((uint32_t)(0x400C))
+#define STORE9_BASEADDRESS                          ((uint32_t)(0x4018))
+#define STORE9_DESTINATIONBUFFERATTRIBUTES          ((uint32_t)(0x401C))
+#define STORE9_DESTINATIONBUFFERDIMENSION           ((uint32_t)(0x4020))
+#define STORE9_FRAMEOFFSET                          ((uint32_t)(0x4024))
+#define STORE9_COLORCOMPONENTBITS                   ((uint32_t)(0x4028))
+#define STORE9_COLORCOMPONENTSHIFT                  ((uint32_t)(0x402C))
+#define STORE9_CONTROL                              ((uint32_t)(0x4030))
+
+#define STORE9_START                                ((uint32_t)(0x403C))
+
+/* pixengcfg */
+#define PIXENGCFG_CLKEN_MASK 0x3000000U
+#define PIXENGCFG_CLKEN_SHIFT 24U
+/* Field Value: _CLKEN__DISABLE, Clock for block is disabled  */
+#define PIXENGCFG_CLKEN__DISABLE 0U
+#define PIXENGCFG_CLKEN__AUTOMATIC 0x1U
+/* Field Value: _CLKEN__FULL, Clock for block is without gating  */
+#define PIXENGCFG_CLKEN__FULL 0x3U
+
+#define PIXENGCFG_DIVIDER_RESET 0x80
+
+
+/* command sequencer */
+#define CMDSEQ_HIF                                  ((uint32_t)(0x400))
+
+#define CMDSEQ_LOCKUNLOCKHIF                        ((uint32_t)(0x500))
+#define CMDSEQ_LOCKUNLOCKHIF_LOCKUNLOCKHIF__LOCK_KEY 0x5651F763U
+#define CMDSEQ_LOCKUNLOCKHIF_LOCKUNLOCKHIF__UNLOCK_KEY 0x691DB936U
+
+#define CMDSEQ_LOCKUNLOCK                           ((uint32_t)(0x580))
+#define CMDSEQ_LOCKUNLOCK_LOCKUNLOCK__LOCK_KEY      0x5651F763U
+#define CMDSEQ_LOCKUNLOCK_LOCKUNLOCK__UNLOCK_KEY    0x691DB936U
+
+#define CMDSEQ_BUFFERADDRESS                        ((uint32_t)(0x588))
+#define CMDSEQ_BUFFERSIZE                           ((uint32_t)(0x58C))
+
+#define CMDSEQ_CONTROL                              ((uint32_t)(0x594))
+#define CMDSEQ_CONTROL_OFFSET                       ((uint32_t)(0x194))
+#define CMDSEQ_CONTROL_RESET_VALUE                  0U
+#define CMDSEQ_CONTROL_RESET_MASK                   0xFFFFFFFFU
+#define CMDSEQ_CONTROL_CLRAXIW_MASK                 0x1U
+#define CMDSEQ_CONTROL_CLRAXIW_SHIFT                0U
+#define CMDSEQ_CONTROL_CLRRBUF_MASK                 0x4U
+#define CMDSEQ_CONTROL_CLRRBUF_SHIFT                2U
+#define CMDSEQ_CONTROL_CLRCMDBUF_MASK               0x8U
+#define CMDSEQ_CONTROL_CLRCMDBUF_SHIFT              3U
+#define CMDSEQ_CONTROL_CLEAR_MASK                   0x80000000U
+#define CMDSEQ_CONTROL_CLEAR_SHIFT                  31U
+
+#define CMDSEQ_STATUS                               ((uint32_t)(0x598))
+#define CMDSEQ_STATUS_OFFSET                        ((uint32_t)(0x198))
+#define CMDSEQ_STATUS_RESET_VALUE                   0x41000080U
+#define CMDSEQ_STATUS_RESET_MASK                    0xFFFFFFFFU
+#define CMDSEQ_STATUS_FIFOSPACE_MASK                0x1FFFFU
+#define CMDSEQ_STATUS_IDLE_MASK                     0x40000000U
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu-blit/dpu-blit.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu-blit/dpu-blit.c
@@ -0,0 +1,430 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/delay.h>
+#include <linux/dma-mapping.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include <video/imx8-prefetch.h>
+
+#include "dpu-blit.h"
+#include "dpu-blit-registers.h"
+#include "dpu-prv.h"
+
+void dpu_be_wait(struct dpu_bliteng *dpu_be);
+
+static inline u32 dpu_be_read(struct dpu_bliteng *dpu_be, unsigned int offset)
+{
+	return readl(dpu_be->base + offset);
+}
+
+static inline void dpu_be_write(struct dpu_bliteng *dpu_be, u32 value,
+	unsigned int offset)
+{
+	writel(value, dpu_be->base + offset);
+}
+
+static void dpu_cs_wait_fifo_space(struct dpu_bliteng *dpu_be)
+{
+	while ((dpu_be_read(dpu_be, CMDSEQ_STATUS) &
+		CMDSEQ_STATUS_FIFOSPACE_MASK) < CMDSEQ_FIFO_SPACE_THRESHOLD)
+		usleep_range(30, 50);
+}
+
+static void dpu_cs_wait_idle(struct dpu_bliteng *dpu_be)
+{
+	while ((dpu_be_read(dpu_be, CMDSEQ_STATUS) &
+		CMDSEQ_STATUS_IDLE_MASK) == 0x0)
+		mdelay(1);
+}
+
+static int dpu_cs_alloc_command_buffer(struct dpu_bliteng *dpu_be)
+{
+	/* command buffer need 32 bit address */
+	dpu_be->buffer_addr_virt =
+		alloc_pages_exact(COMMAND_BUFFER_SIZE,
+			GFP_KERNEL | GFP_DMA | GFP_DMA32 | __GFP_ZERO);
+	if (!dpu_be->buffer_addr_virt) {
+		dev_err(dpu_be->dev, "memory alloc failed for dpu command buffer\n");
+		return -ENOMEM;
+	}
+
+	dpu_be->buffer_addr_phy =
+		(u32)virt_to_phys(dpu_be->buffer_addr_virt);
+
+	return 0;
+}
+
+static void dpu_cs_static_setup(struct dpu_bliteng *dpu_be)
+{
+	dpu_cs_wait_idle(dpu_be);
+
+	/* LockUnlock and LockUnlockHIF */
+	dpu_be_write(dpu_be, CMDSEQ_LOCKUNLOCKHIF_LOCKUNLOCKHIF__UNLOCK_KEY,
+		CMDSEQ_LOCKUNLOCKHIF);
+	dpu_be_write(dpu_be, CMDSEQ_LOCKUNLOCK_LOCKUNLOCK__UNLOCK_KEY,
+		CMDSEQ_LOCKUNLOCK);
+
+	/* Control */
+	dpu_be_write(dpu_be, 1 << CMDSEQ_CONTROL_CLEAR_SHIFT,
+		CMDSEQ_CONTROL);
+
+	/* BufferAddress and BufferSize */
+	dpu_be_write(dpu_be, dpu_be->buffer_addr_phy, CMDSEQ_BUFFERADDRESS);
+	dpu_be_write(dpu_be, COMMAND_BUFFER_SIZE / WORD_SIZE,
+		CMDSEQ_BUFFERSIZE);
+}
+
+static struct dprc *
+dpu_be_dprc_get(struct dpu_soc *dpu, int dprc_id)
+{
+	struct dprc *dprc;
+
+	dprc = dprc_lookup_by_phandle(dpu->dev,
+				      "fsl,dpr-channels",
+				      dprc_id);
+
+	return dprc;
+}
+
+void dpu_be_configure_prefetch(struct dpu_bliteng *dpu_be,
+			       u32 width, u32 height,
+			       u32 x_offset, u32 y_offset,
+			       u32 stride, u32 format, u64 modifier,
+			       u64 baddr, u64 uv_addr)
+{
+	struct dprc *dprc;
+	bool dprc_en=false;
+
+	/* Enable DPR, dprc1 is connected to plane0 */
+	dprc = dpu_be->dprc[1];
+
+	/*
+	 * Force sync command sequncer in conditions:
+	 * 1. tile work with dprc/prg (baddr)
+	 * 2. switch tile to linear (!start)
+	 */
+	if (!dpu_be->start || baddr) {
+		dpu_be_wait(dpu_be);
+	}
+
+	dpu_be->sync = true;
+
+	if (baddr == 0x0) {
+		if (!dpu_be->start) {
+			dprc_disable(dprc);
+			dpu_be->start = true;
+		}
+		return;
+	}
+
+	if (dpu_be->modifier != modifier && !dpu_be->start) {
+		dprc_disable(dprc);
+		dprc_en = true;
+	}
+
+	dpu_be->modifier = modifier;
+
+	dprc_configure(dprc, 0,
+		       width, height,
+		       x_offset, y_offset,
+		       stride, format, modifier,
+		       baddr, uv_addr,
+		       dpu_be->start,
+		       dpu_be->start,
+		       false);
+
+	if (dpu_be->start || dprc_en) {
+		dprc_enable(dprc);
+	}
+
+	dprc_reg_update(dprc);
+
+	dpu_be->start = false;
+}
+EXPORT_SYMBOL(dpu_be_configure_prefetch);
+
+int dpu_bliteng_get_empty_instance(struct dpu_bliteng **dpu_be,
+	struct device *dev)
+{
+	if (!dpu_be || !dev)
+		return -EINVAL;
+
+	*dpu_be = devm_kzalloc(dev, sizeof(struct dpu_bliteng), GFP_KERNEL);
+	if (!(*dpu_be))
+		return -ENOMEM;
+
+	return 0;
+}
+EXPORT_SYMBOL(dpu_bliteng_get_empty_instance);
+
+u32 *dpu_bliteng_get_cmd_list(struct dpu_bliteng *dpu_be)
+{
+	return dpu_be->cmd_list;
+}
+EXPORT_SYMBOL(dpu_bliteng_get_cmd_list);
+
+s32 dpu_bliteng_get_id(struct dpu_bliteng *dpu_be)
+{
+	return dpu_be->id;
+}
+EXPORT_SYMBOL(dpu_bliteng_get_id);
+
+void dpu_bliteng_set_id(struct dpu_bliteng *dpu_be, int id)
+{
+	dpu_be->id = id;
+}
+EXPORT_SYMBOL(dpu_bliteng_set_id);
+
+void dpu_bliteng_set_dev(struct dpu_bliteng *dpu_be, struct device *dev)
+{
+	dpu_be->dev = dev;
+}
+EXPORT_SYMBOL(dpu_bliteng_set_dev);
+
+int dpu_be_get(struct dpu_bliteng *dpu_be)
+{
+	mutex_lock(&dpu_be->mutex);
+
+	return 0;
+}
+EXPORT_SYMBOL(dpu_be_get);
+
+void dpu_be_put(struct dpu_bliteng *dpu_be)
+{
+	mutex_unlock(&dpu_be->mutex);
+}
+EXPORT_SYMBOL(dpu_be_put);
+
+int dpu_be_blit(struct dpu_bliteng *dpu_be,
+	u32 *cmdlist, u32 cmdnum)
+{
+	int i;
+
+	if (cmdnum > CMDSEQ_FIFO_SPACE_THRESHOLD) {
+		dev_err(dpu_be->dev, "dpu blit cmdnum[%d] should be less than %d !\n",
+			cmdnum, CMDSEQ_FIFO_SPACE_THRESHOLD);
+		return -EINVAL;
+	}
+	dpu_cs_wait_fifo_space(dpu_be);
+
+	for (i = 0; i < cmdnum; i++)
+		dpu_be_write(dpu_be, cmdlist[i], CMDSEQ_HIF);
+
+	return 0;
+}
+EXPORT_SYMBOL(dpu_be_blit);
+
+#define STORE9_SEQCOMPLETE_IRQ		2U
+#define STORE9_SEQCOMPLETE_IRQ_MASK	(1U<<STORE9_SEQCOMPLETE_IRQ)
+void dpu_be_wait(struct dpu_bliteng *dpu_be)
+{
+	if (!dpu_be->sync) return;
+
+	dpu_cs_wait_fifo_space(dpu_be);
+
+	dpu_be_write(dpu_be, 0x14000001, CMDSEQ_HIF);
+	dpu_be_write(dpu_be, PIXENGCFG_STORE9_TRIGGER, CMDSEQ_HIF);
+	dpu_be_write(dpu_be, 0x10, CMDSEQ_HIF);
+
+	while ((dpu_be_read(dpu_be, COMCTRL_INTERRUPTSTATUS0) &
+		STORE9_SEQCOMPLETE_IRQ_MASK) == 0)
+		usleep_range(30, 50);
+
+	dpu_be_write(dpu_be, STORE9_SEQCOMPLETE_IRQ_MASK,
+		COMCTRL_INTERRUPTCLEAR0);
+
+	dpu_be->sync = false;
+}
+EXPORT_SYMBOL(dpu_be_wait);
+
+static void dpu_be_init_units(struct dpu_bliteng *dpu_be)
+{
+	u32 staticcontrol;
+	u32 pixengcfg_unit_dynamic;
+
+	staticcontrol =
+	1 << FETCHDECODE9_STATICCONTROL_SHDEN_SHIFT |
+	0 << FETCHDECODE9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT |
+	FETCHDECODE9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, FETCHDECODE9_STATICCONTROL);
+
+	staticcontrol =
+	1 << FETCHWARP9_STATICCONTROL_SHDEN_SHIFT |
+	0 << FETCHWARP9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT |
+	FETCHWARP9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, FETCHWARP9_STATICCONTROL);
+
+	staticcontrol =
+	1 << FETCHECO9_STATICCONTROL_SHDEN_SHIFT |
+	0 << FETCHECO9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT |
+	FETCHECO9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, FETCHECO9_STATICCONTROL);
+
+	staticcontrol =
+	1 << HSCALER9_STATICCONTROL_SHDEN_SHIFT |
+	HSCALER9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, HSCALER9_STATICCONTROL);
+
+	staticcontrol =
+	1 << VSCALER9_STATICCONTROL_SHDEN_SHIFT |
+	VSCALER9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, VSCALER9_STATICCONTROL);
+
+	staticcontrol =
+	1 << ROP9_STATICCONTROL_SHDEN_SHIFT |
+	ROP9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, ROP9_STATICCONTROL);
+
+	staticcontrol =
+	1 << MATRIX9_STATICCONTROL_SHDEN_SHIFT |
+	MATRIX9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, MATRIX9_STATICCONTROL);
+
+	staticcontrol =
+	1 << BLITBLEND9_STATICCONTROL_SHDEN_SHIFT |
+	BLITBLEND9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, BLITBLEND9_STATICCONTROL);
+
+	staticcontrol =
+	1 << STORE9_STATICCONTROL_SHDEN_SHIFT |
+	0 << STORE9_STATICCONTROL_BASEADDRESSAUTOUPDATE_SHIFT |
+	STORE9_STATICCONTROL_RESET_VALUE;
+	dpu_be_write(dpu_be, staticcontrol, STORE9_STATICCONTROL);
+
+	/* Safety_Pixengcfg Dynamic */
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_FETCHDECODE9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_FETCHDECODE9_DYNAMIC);
+
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_FETCHWARP9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_FETCHWARP9_DYNAMIC);
+
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_ROP9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_ROP9_DYNAMIC);
+
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_MATRIX9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_MATRIX9_DYNAMIC);
+
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_HSCALER9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_HSCALER9_DYNAMIC);
+
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_VSCALER9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_VSCALER9_DYNAMIC);
+
+	pixengcfg_unit_dynamic =
+	PIXENGCFG_CLKEN__AUTOMATIC << PIXENGCFG_CLKEN_SHIFT |
+	PIXENGCFG_BLITBLEND9_DYNAMIC_RESET_VALUE;
+	dpu_be_write(dpu_be, pixengcfg_unit_dynamic,
+		PIXENGCFG_BLITBLEND9_DYNAMIC);
+}
+
+int dpu_bliteng_init(struct dpu_bliteng *dpu_bliteng)
+{
+	struct dpu_soc *dpu = dev_get_drvdata(dpu_bliteng->dev->parent);
+	struct platform_device *dpu_pdev =
+		container_of(dpu->dev, struct platform_device, dev);
+	struct resource *res;
+	unsigned long dpu_base;
+	void __iomem *base;
+	u32 *cmd_list;
+	int ret;
+
+	cmd_list = kzalloc(sizeof(*cmd_list) * CMDSEQ_FIFO_SPACE_THRESHOLD,
+			GFP_KERNEL);
+	if (!cmd_list)
+		return -ENOMEM;
+	dpu_bliteng->cmd_list = cmd_list;
+
+	res = platform_get_resource(dpu_pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -ENODEV;
+	dpu_base = res->start;
+
+	/* remap with bigger size */
+	base = devm_ioremap(dpu->dev, dpu_base, 64*SZ_1K);
+	dpu_bliteng->base = base;
+	dpu_bliteng->dpu = dpu;
+
+	mutex_init(&dpu_bliteng->mutex);
+
+	/* Init the uints used by blit engine */
+	/* Maybe this should be in dpu-common.c */
+	dpu_be_init_units(dpu_bliteng);
+
+	/* Init for command sequencer */
+	ret = dpu_cs_alloc_command_buffer(dpu_bliteng);
+	if (ret)
+		return ret;
+
+	dpu_cs_static_setup(dpu_bliteng);
+
+	/* DPR, each blit engine has two dprc, 0 & 1 */
+	dpu_bliteng->dprc[0] = dpu_be_dprc_get(dpu, 0);
+	dpu_bliteng->dprc[1] = dpu_be_dprc_get(dpu, 1);
+
+	dprc_disable(dpu_bliteng->dprc[0]);
+	dprc_disable(dpu_bliteng->dprc[1]);
+
+	dpu_bliteng->start = true;
+	dpu_bliteng->sync = false;
+
+	dpu_bliteng->modifier = 0;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(dpu_bliteng_init);
+
+void dpu_bliteng_fini(struct dpu_bliteng *dpu_bliteng)
+{
+	/* LockUnlock and LockUnlockHIF */
+	dpu_be_write(dpu_bliteng, CMDSEQ_LOCKUNLOCKHIF_LOCKUNLOCKHIF__LOCK_KEY,
+		CMDSEQ_LOCKUNLOCKHIF);
+	dpu_be_write(dpu_bliteng, CMDSEQ_LOCKUNLOCK_LOCKUNLOCK__LOCK_KEY,
+		CMDSEQ_LOCKUNLOCK);
+
+	kfree(dpu_bliteng->cmd_list);
+
+	if (dpu_bliteng->buffer_addr_virt)
+		free_pages_exact(dpu_bliteng->buffer_addr_virt,
+				 COMMAND_BUFFER_SIZE);
+}
+EXPORT_SYMBOL_GPL(dpu_bliteng_fini);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_DESCRIPTION("i.MX DPU BLITENG");
+MODULE_ALIAS("platform:imx-dpu-bliteng");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu-blit/dpu-blit.h
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu-blit/dpu-blit.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#ifndef __DPU_BLIT_H__
+#define __DPU_BLIT_H__
+
+#define COMMAND_BUFFER_SIZE	65536 /* up to 64k bytes */
+#define CMDSEQ_FIFO_SPACE_THRESHOLD   192
+#define WORD_SIZE   4
+
+struct dpu_bliteng {
+	struct device		*dev;
+	void __iomem *base;
+	s32 id;
+	struct mutex mutex;
+	s32 irq_store9_shdload;
+	s32 irq_store9_framecomplete;
+	s32 irq_store9_seqcomplete;
+
+	void *buffer_addr_virt;
+	u32 buffer_addr_phy;
+
+	u32 *cmd_list;
+
+	struct dpu_soc *dpu;
+
+	struct dprc *dprc[2];
+
+	bool start;
+	bool sync;
+
+	u64 modifier;
+};
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/Kconfig
@@ -0,0 +1,8 @@
+config IMX_DPU_CORE
+	tristate "i.MX DPU core support"
+	depends on ARCH_MXC
+	select GENERIC_IRQ_CHIP
+	help
+	  Choose this if you have a Freescale i.MX8QM or i.MX8QXP system and
+	  want to use the Display Processing Unit. This option only enables
+	  DPU base support.
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/Makefile
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/Makefile
@@ -0,0 +1,8 @@
+obj-$(CONFIG_IMX_DPU_CORE) += imx-dpu-core.o
+
+imx-dpu-core-objs := dpu-common.o dpu-constframe.o dpu-disengcfg.o \
+		     dpu-extdst.o dpu-fetchdecode.o dpu-fetcheco.o \
+		     dpu-fetchlayer.o dpu-fetchwarp.o dpu-fetchunit.o \
+		     dpu-framegen.o dpu-hscaler.o dpu-layerblend.o \
+		     dpu-sc-misc.o dpu-signature.o dpu-store.o dpu-tcon.o \
+		     dpu-vscaler.o
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-common.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-common.c
@@ -0,0 +1,1333 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+#include <linux/clk.h>
+#include <linux/fb.h>
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/irqchip/chained_irq.h>
+#include <linux/irqdomain.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/of_graph.h>
+#include <linux/platform_device.h>
+#include <linux/pm_domain.h>
+#include <video/dpu.h>
+#include <video/imx8-pc.h>
+#include <video/imx8-prefetch.h>
+#include "dpu-prv.h"
+
+#define IMX_DPU_BLITENG_NAME "imx-drm-dpu-bliteng"
+
+static bool display_plane_video_proc = true;
+module_param(display_plane_video_proc, bool, 0444);
+MODULE_PARM_DESC(display_plane_video_proc,
+		 "Enable video processing for display [default=true]");
+
+#define DPU_CM_REG_DEFINE1(name1, name2)		\
+static inline u32 name1(const struct cm_reg_ofs *ofs)	\
+{							\
+	return ofs->name2;				\
+}
+
+#define DPU_CM_REG_DEFINE2(name1, name2)		\
+static inline u32 name1(const struct cm_reg_ofs *ofs,	\
+			unsigned int n)			\
+{							\
+	return ofs->name2 + (4 * n);			\
+}
+
+DPU_CM_REG_DEFINE1(LOCKUNLOCK, lockunlock);
+DPU_CM_REG_DEFINE1(LOCKSTATUS, lockstatus);
+DPU_CM_REG_DEFINE2(USERINTERRUPTMASK, userinterruptmask);
+DPU_CM_REG_DEFINE2(INTERRUPTENABLE, interruptenable);
+DPU_CM_REG_DEFINE2(INTERRUPTPRESET, interruptpreset);
+DPU_CM_REG_DEFINE2(INTERRUPTCLEAR, interruptclear);
+DPU_CM_REG_DEFINE2(INTERRUPTSTATUS, interruptstatus);
+DPU_CM_REG_DEFINE2(USERINTERRUPTENABLE, userinterruptenable);
+DPU_CM_REG_DEFINE2(USERINTERRUPTPRESET, userinterruptpreset);
+DPU_CM_REG_DEFINE2(USERINTERRUPTCLEAR, userinterruptclear);
+DPU_CM_REG_DEFINE2(USERINTERRUPTSTATUS, userinterruptstatus);
+DPU_CM_REG_DEFINE1(GENERALPURPOSE, generalpurpose);
+
+static inline u32 dpu_cm_read(struct dpu_soc *dpu, unsigned int offset)
+{
+	return readl(dpu->cm_reg + offset);
+}
+
+static inline void dpu_cm_write(struct dpu_soc *dpu,
+				unsigned int offset, u32 value)
+{
+	writel(value, dpu->cm_reg + offset);
+}
+
+/* Constant Frame Unit */
+static const unsigned long cf_ofss[] = {0x4400, 0x5400, 0x4c00, 0x5c00};
+static const unsigned long cf_pec_ofss[] = {0x960, 0x9e0, 0x9a0, 0xa20};
+
+/* Display Engine Configuration Unit */
+static const unsigned long dec_ofss[] = {0xb400, 0xb420};
+
+/* External Destination Unit */
+static const unsigned long ed_ofss[] = {0x4800, 0x5800, 0x5000, 0x6000};
+static const unsigned long ed_pec_ofss[] = {0x980, 0xa00, 0x9c0, 0xa40};
+
+/* Fetch Decode Unit */
+static const unsigned long fd_ofss[] = {0x6c00, 0x7800};
+static const unsigned long fd_pec_ofss[] = {0xa80, 0xaa0};
+
+/* Fetch ECO Unit */
+static const unsigned long fe_ofss[] = {0x7400, 0x8000, 0x6800, 0x1c00};
+static const unsigned long fe_pec_ofss[] = {0xa90, 0xab0, 0xa70, 0x850};
+
+/* Frame Generator Unit */
+static const unsigned long fg_ofss[] = {0xb800, 0xd400};
+
+/* Fetch Layer Unit */
+static const unsigned long fl_ofss[] = {0x8400};
+static const unsigned long fl_pec_ofss[] = {0xac0};
+
+/* Fetch Warp Unit */
+static const unsigned long fw_ofss[] = {0x6400};
+static const unsigned long fw_pec_ofss[] = {0xa60};
+
+/* Horizontal Scaler Unit */
+static const unsigned long hs_ofss[] = {0x9000, 0x9c00, 0x3000};
+static const unsigned long hs_pec_ofss[] = {0xb00, 0xb60, 0x8c0};
+
+/* Layer Blend Unit */
+static const unsigned long lb_ofss[] = {0xa400, 0xa800, 0xac00, 0xb000};
+static const unsigned long lb_pec_ofss[] = {0xba0, 0xbc0, 0xbe0, 0xc00};
+
+/* Signature Unit */
+static const unsigned long sig_ofss[] = {0xd000, 0xec00};
+
+/* Store Unit */
+static const unsigned long st_ofss[] = {0x4000};
+static const unsigned long st_pec_ofss[] = {0x940};
+
+/* Timing Controller Unit */
+static const unsigned long tcon_ofss[] = {0xcc00, 0xe800};
+
+/* Vertical Scaler Unit */
+static const unsigned long vs_ofss[] = {0x9400, 0xa000, 0x3400};
+static const unsigned long vs_pec_ofss[] = {0xb20, 0xb80, 0x8e0};
+
+static const struct dpu_unit _cfs = {
+	.name = "ConstFrame",
+	.num = ARRAY_SIZE(cf_ids),
+	.ids = cf_ids,
+	.pec_ofss = cf_pec_ofss,
+	.ofss = cf_ofss,
+};
+
+static const struct dpu_unit _decs = {
+	.name = "DisEngCfg",
+	.num = ARRAY_SIZE(dec_ids),
+	.ids = dec_ids,
+	.pec_ofss = NULL,
+	.ofss = dec_ofss,
+};
+
+static const struct dpu_unit _eds = {
+	.name = "ExtDst",
+	.num = ARRAY_SIZE(ed_ids),
+	.ids = ed_ids,
+	.pec_ofss = ed_pec_ofss,
+	.ofss = ed_ofss,
+};
+
+static const struct dpu_unit _fds = {
+	.name = "FetchDecode",
+	.num = ARRAY_SIZE(fd_ids),
+	.ids = fd_ids,
+	.pec_ofss = fd_pec_ofss,
+	.ofss = fd_ofss,
+	.dprc_ids = fd_dprc_ids,
+};
+
+static const struct dpu_unit _fes = {
+	.name = "FetchECO",
+	.num = ARRAY_SIZE(fe_ids),
+	.ids = fe_ids,
+	.pec_ofss = fe_pec_ofss,
+	.ofss = fe_ofss,
+};
+
+static const struct dpu_unit _fgs = {
+	.name = "FrameGen",
+	.num = ARRAY_SIZE(fg_ids),
+	.ids = fg_ids,
+	.pec_ofss = NULL,
+	.ofss = fg_ofss,
+};
+
+static const struct dpu_unit _fls = {
+	.name = "FetchLayer",
+	.num = ARRAY_SIZE(fl_ids),
+	.ids = fl_ids,
+	.pec_ofss = fl_pec_ofss,
+	.ofss = fl_ofss,
+	.dprc_ids = fl_dprc_ids,
+};
+
+static const struct dpu_unit _fws = {
+	.name = "FetchWarp",
+	.num = ARRAY_SIZE(fw_ids),
+	.ids = fw_ids,
+	.pec_ofss = fw_pec_ofss,
+	.ofss = fw_ofss,
+	.dprc_ids = fw_dprc_ids,
+};
+
+static const struct dpu_unit _hss = {
+	.name = "HScaler",
+	.num = ARRAY_SIZE(hs_ids),
+	.ids = hs_ids,
+	.pec_ofss = hs_pec_ofss,
+	.ofss = hs_ofss,
+};
+
+static const struct dpu_unit _lbs = {
+	.name = "LayerBlend",
+	.num = ARRAY_SIZE(lb_ids),
+	.ids = lb_ids,
+	.pec_ofss = lb_pec_ofss,
+	.ofss = lb_ofss,
+};
+
+static const struct dpu_unit _sigs = {
+	.name = "Signature",
+	.num = ARRAY_SIZE(sig_ids),
+	.ids = sig_ids,
+	.pec_ofss = NULL,
+	.ofss = sig_ofss,
+};
+
+static const struct dpu_unit _sts = {
+	.name = "Store",
+	.num = ARRAY_SIZE(st_ids),
+	.ids = st_ids,
+	.pec_ofss = st_pec_ofss,
+	.ofss = st_ofss,
+};
+
+static const struct dpu_unit _tcons = {
+	.name = "TCon",
+	.num = ARRAY_SIZE(tcon_ids),
+	.ids = tcon_ids,
+	.pec_ofss = NULL,
+	.ofss = tcon_ofss,
+};
+
+static const struct dpu_unit _vss = {
+	.name = "VScaler",
+	.num = ARRAY_SIZE(vs_ids),
+	.ids = vs_ids,
+	.pec_ofss = vs_pec_ofss,
+	.ofss = vs_ofss,
+};
+
+static const struct cm_reg_ofs _cm_reg_ofs = {
+	.ipidentifier = 0,
+	.lockunlock = 0x40,
+	.lockstatus = 0x44,
+	.userinterruptmask = 0x48,
+	.interruptenable = 0x50,
+	.interruptpreset = 0x58,
+	.interruptclear = 0x60,
+	.interruptstatus = 0x68,
+	.userinterruptenable = 0x80,
+	.userinterruptpreset = 0x88,
+	.userinterruptclear = 0x90,
+	.userinterruptstatus = 0x98,
+	.generalpurpose = 0x100,
+};
+
+static const unsigned long unused_irq[] = {0x00000000, 0xfffe0008};
+
+static const struct dpu_data dpu_data_qxp = {
+	.cm_ofs = 0x0,
+	.cfs = &_cfs,
+	.decs = &_decs,
+	.eds = &_eds,
+	.fds = &_fds,
+	.fes = &_fes,
+	.fgs = &_fgs,
+	.fls = &_fls,
+	.fws = &_fws,
+	.hss = &_hss,
+	.lbs = &_lbs,
+	.sigs = &_sigs,
+	.sts = &_sts,
+	.tcons = &_tcons,
+	.vss = &_vss,
+	.cm_reg_ofs = &_cm_reg_ofs,
+	.unused_irq = unused_irq,
+	.plane_src_mask = DPU_PLANE_SRC_FL0_ID | DPU_PLANE_SRC_FW2_ID |
+			  DPU_PLANE_SRC_FD0_ID | DPU_PLANE_SRC_FD1_ID,
+	.has_dual_ldb = true,
+	.syncmode_min_prate = UINT_MAX,	/* pc is unused */
+	.singlemode_max_width = UINT_MAX, 	/* pc is unused */
+};
+
+static const struct dpu_data dpu_data_qm = {
+	.cm_ofs = 0x0,
+	.cfs = &_cfs,
+	.decs = &_decs,
+	.eds = &_eds,
+	.fds = &_fds,
+	.fes = &_fes,
+	.fgs = &_fgs,
+	.fls = &_fls,
+	.fws = &_fws,
+	.hss = &_hss,
+	.lbs = &_lbs,
+	.sigs = &_sigs,
+	.sts = &_sts,
+	.tcons = &_tcons,
+	.vss = &_vss,
+	.cm_reg_ofs = &_cm_reg_ofs,
+	.unused_irq = unused_irq,
+	.plane_src_mask = DPU_PLANE_SRC_FL0_ID | DPU_PLANE_SRC_FW2_ID |
+			  DPU_PLANE_SRC_FD0_ID | DPU_PLANE_SRC_FD1_ID,
+	.has_dual_ldb = false,
+	.syncmode_min_prate = 300000,
+	.singlemode_max_width = 2560,
+	.master_stream_id = 1,
+};
+
+static const struct of_device_id dpu_dt_ids[] = {
+	{
+		.compatible = "fsl,imx8qxp-dpu",
+		.data = &dpu_data_qxp,
+	}, {
+		.compatible = "fsl,imx8qm-dpu",
+		.data = &dpu_data_qm,
+	}, {
+		/* sentinel */
+	}
+};
+MODULE_DEVICE_TABLE(of, dpu_dt_ids);
+
+unsigned int dpu_get_syncmode_min_prate(struct dpu_soc *dpu)
+{
+	return dpu->data->syncmode_min_prate;
+}
+EXPORT_SYMBOL_GPL(dpu_get_syncmode_min_prate);
+
+unsigned int dpu_get_singlemode_max_width(struct dpu_soc *dpu)
+{
+	return dpu->data->singlemode_max_width;
+}
+EXPORT_SYMBOL_GPL(dpu_get_singlemode_max_width);
+
+unsigned int dpu_get_master_stream_id(struct dpu_soc *dpu)
+{
+	return dpu->data->master_stream_id;
+}
+EXPORT_SYMBOL_GPL(dpu_get_master_stream_id);
+
+bool dpu_vproc_has_fetcheco_cap(u32 cap_mask)
+{
+	return !!(cap_mask & DPU_VPROC_CAP_FETCHECO);
+}
+EXPORT_SYMBOL_GPL(dpu_vproc_has_fetcheco_cap);
+
+bool dpu_vproc_has_hscale_cap(u32 cap_mask)
+{
+	return !!(cap_mask & DPU_VPROC_CAP_HSCALE);
+}
+EXPORT_SYMBOL_GPL(dpu_vproc_has_hscale_cap);
+
+bool dpu_vproc_has_vscale_cap(u32 cap_mask)
+{
+	return !!(cap_mask & DPU_VPROC_CAP_VSCALE);
+}
+EXPORT_SYMBOL_GPL(dpu_vproc_has_vscale_cap);
+
+u32 dpu_vproc_get_fetcheco_cap(u32 cap_mask)
+{
+	return cap_mask & DPU_VPROC_CAP_FETCHECO;
+}
+EXPORT_SYMBOL_GPL(dpu_vproc_get_fetcheco_cap);
+
+u32 dpu_vproc_get_hscale_cap(u32 cap_mask)
+{
+	return cap_mask & DPU_VPROC_CAP_HSCALE;
+}
+EXPORT_SYMBOL_GPL(dpu_vproc_get_hscale_cap);
+
+u32 dpu_vproc_get_vscale_cap(u32 cap_mask)
+{
+	return cap_mask & DPU_VPROC_CAP_VSCALE;
+}
+EXPORT_SYMBOL_GPL(dpu_vproc_get_vscale_cap);
+
+int dpu_format_horz_chroma_subsampling(u32 format)
+{
+	switch (format) {
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+		return 2;
+	default:
+		return 1;
+	}
+}
+
+int dpu_format_vert_chroma_subsampling(u32 format)
+{
+	switch (format) {
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		return 2;
+	default:
+		return 1;
+	}
+}
+
+int dpu_format_num_planes(u32 format)
+{
+	switch (format) {
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		return 2;
+	default:
+		return 1;
+	}
+}
+
+int dpu_format_plane_width(int width, u32 format, int plane)
+{
+	if (plane >= dpu_format_num_planes(format))
+		return 0;
+
+	if (plane == 0)
+		return width;
+
+	return width / dpu_format_horz_chroma_subsampling(format);
+}
+
+int dpu_format_plane_height(int height, u32 format, int plane)
+{
+	if (plane >= dpu_format_num_planes(format))
+		return 0;
+
+	if (plane == 0)
+		return height;
+
+	return height / dpu_format_vert_chroma_subsampling(format);
+}
+
+static void dpu_detach_pm_domains(struct dpu_soc *dpu)
+{
+	if (dpu->pd_pll1_link && !IS_ERR(dpu->pd_pll1_link))
+		device_link_del(dpu->pd_pll1_link);
+	if (dpu->pd_pll1_dev && !IS_ERR(dpu->pd_pll1_dev))
+		dev_pm_domain_detach(dpu->pd_pll1_dev, true);
+
+	if (dpu->pd_pll0_link && !IS_ERR(dpu->pd_pll0_link))
+		device_link_del(dpu->pd_pll0_link);
+	if (dpu->pd_pll0_dev && !IS_ERR(dpu->pd_pll0_dev))
+		dev_pm_domain_detach(dpu->pd_pll0_dev, true);
+
+	if (dpu->pd_dc_link && !IS_ERR(dpu->pd_dc_link))
+		device_link_del(dpu->pd_dc_link);
+	if (dpu->pd_dc_dev && !IS_ERR(dpu->pd_dc_dev))
+		dev_pm_domain_detach(dpu->pd_dc_dev, true);
+
+	dpu->pd_dc_dev = NULL;
+	dpu->pd_dc_link = NULL;
+	dpu->pd_pll0_dev = NULL;
+	dpu->pd_pll0_link = NULL;
+	dpu->pd_pll1_dev = NULL;
+	dpu->pd_pll1_link = NULL;
+}
+
+static int dpu_attach_pm_domains(struct dpu_soc *dpu)
+{
+	struct device *dev = dpu->dev;
+	u32 flags = DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE;
+	int ret = 0;
+
+	dpu->pd_dc_dev = dev_pm_domain_attach_by_name(dev, "dc");
+	if (IS_ERR(dpu->pd_dc_dev)) {
+		ret = PTR_ERR(dpu->pd_dc_dev);
+		dev_err(dev, "Failed to attach dc pd dev: %d\n", ret);
+		goto fail;
+	}
+	dpu->pd_dc_link = device_link_add(dev, dpu->pd_dc_dev, flags);
+	if (IS_ERR(dpu->pd_dc_link)) {
+		ret = PTR_ERR(dpu->pd_dc_link);
+		dev_err(dev, "Failed to add device link to dc pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+	dpu->pd_pll0_dev = dev_pm_domain_attach_by_name(dev, "pll0");
+	if (IS_ERR(dpu->pd_pll0_dev)) {
+		ret = PTR_ERR(dpu->pd_pll0_dev);
+		dev_err(dev, "Failed to attach pll0 pd dev: %d\n", ret);
+		goto fail;
+	}
+	dpu->pd_pll0_link = device_link_add(dev, dpu->pd_pll0_dev, flags);
+	if (IS_ERR(dpu->pd_pll0_link)) {
+		ret = PTR_ERR(dpu->pd_pll0_link);
+		dev_err(dev, "Failed to add device link to pll0 pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+	dpu->pd_pll1_dev = dev_pm_domain_attach_by_name(dev, "pll1");
+	if (IS_ERR(dpu->pd_pll1_dev)) {
+		ret = PTR_ERR(dpu->pd_pll1_dev);
+		dev_err(dev, "Failed to attach pll0 pd dev: %d\n", ret);
+		goto fail;
+	}
+	dpu->pd_pll1_link = device_link_add(dev, dpu->pd_pll1_dev, flags);
+	if (IS_ERR(dpu->pd_pll1_link)) {
+		ret = PTR_ERR(dpu->pd_pll1_link);
+		dev_err(dev, "Failed to add device link to pll1 pd dev: %d\n",
+			ret);
+		goto fail;
+	}
+
+	return ret;
+fail:
+	dpu_detach_pm_domains(dpu);
+	return ret;
+}
+
+#define DPU_UNITS_ADDR_DBG(unit)					\
+{									\
+	const struct dpu_unit *us = data->unit##s;			\
+	int i;								\
+	for (i = 0; i < us->num; i++) {					\
+		if (us->pec_ofss) {					\
+			dev_dbg(&pdev->dev, "%s%d: pixengcfg @ 0x%08lx,"\
+				" unit @ 0x%08lx\n", us->name,		\
+				us->ids[i],				\
+				dpu_base + us->pec_ofss[i],		\
+				dpu_base + us->ofss[i]);		\
+		} else {						\
+			dev_dbg(&pdev->dev,				\
+				"%s%d: unit @ 0x%08lx\n", us->name,	\
+				us->ids[i], dpu_base + us->ofss[i]);	\
+		}							\
+	}								\
+}
+
+static void dpu_units_addr_dbg(struct dpu_soc *dpu,
+			struct platform_device *pdev, unsigned long dpu_base)
+{
+	const struct dpu_data *data = dpu->data;
+
+	dev_dbg(dpu->dev, "Common: 0x%08lx\n", dpu_base + data->cm_ofs);
+	DPU_UNITS_ADDR_DBG(cf);
+	DPU_UNITS_ADDR_DBG(dec);
+	DPU_UNITS_ADDR_DBG(ed);
+	DPU_UNITS_ADDR_DBG(fd);
+	DPU_UNITS_ADDR_DBG(fe);
+	DPU_UNITS_ADDR_DBG(fg);
+	DPU_UNITS_ADDR_DBG(fl);
+	DPU_UNITS_ADDR_DBG(fw);
+	DPU_UNITS_ADDR_DBG(hs);
+	DPU_UNITS_ADDR_DBG(lb);
+	DPU_UNITS_ADDR_DBG(sig);
+	DPU_UNITS_ADDR_DBG(st);
+	DPU_UNITS_ADDR_DBG(tcon);
+	DPU_UNITS_ADDR_DBG(vs);
+}
+
+static int dpu_get_irq(struct platform_device *pdev, struct dpu_soc *dpu)
+{
+#define DPU_GET_IRQ(name)						\
+{									\
+	dpu->irq_##name = platform_get_irq_byname(pdev, "" #name "");	\
+	dev_dbg(dpu->dev, "irq_" #name ": %d\n", dpu->irq_##name);	\
+	if (dpu->irq_##name < 0) {					\
+		dev_err(dpu->dev, "failed to get irq " #name "\n");	\
+		return dpu->irq_##name;					\
+	}								\
+}
+
+	DPU_GET_IRQ(extdst0_shdload);
+	DPU_GET_IRQ(extdst4_shdload);
+	DPU_GET_IRQ(extdst1_shdload);
+	DPU_GET_IRQ(extdst5_shdload);
+	DPU_GET_IRQ(disengcfg_shdload0);
+	DPU_GET_IRQ(disengcfg_framecomplete0);
+	DPU_GET_IRQ(sig0_shdload);
+	DPU_GET_IRQ(sig0_valid);
+	DPU_GET_IRQ(disengcfg_shdload1);
+	DPU_GET_IRQ(disengcfg_framecomplete1);
+	DPU_GET_IRQ(sig1_shdload);
+	DPU_GET_IRQ(sig1_valid);
+
+	return 0;
+}
+
+static void dpu_irq_handle(struct irq_desc *desc, enum dpu_irq irq)
+{
+	struct dpu_soc *dpu = irq_desc_get_handler_data(desc);
+	const struct dpu_data *data = dpu->data;
+	const struct cm_reg_ofs *ofs = data->cm_reg_ofs;
+	struct irq_chip *chip = irq_desc_get_chip(desc);
+	unsigned int virq;
+	u32 status;
+
+	chained_irq_enter(chip, desc);
+
+	status = dpu_cm_read(dpu, USERINTERRUPTSTATUS(ofs, irq / 32));
+	status &= dpu_cm_read(dpu, USERINTERRUPTENABLE(ofs, irq / 32));
+
+	if (status & BIT(irq % 32)) {
+		virq = irq_linear_revmap(dpu->domain, irq);
+		if (virq)
+			generic_handle_irq(virq);
+	}
+
+	chained_irq_exit(chip, desc);
+}
+
+#define DPU_IRQ_HANDLER_DEFINE(name1, name2)			\
+static void dpu_##name1##_irq_handler(struct irq_desc *desc)	\
+{								\
+	dpu_irq_handle(desc, IRQ_##name2);			\
+}
+
+DPU_IRQ_HANDLER_DEFINE(extdst0_shdload, EXTDST0_SHDLOAD)
+DPU_IRQ_HANDLER_DEFINE(extdst4_shdload, EXTDST4_SHDLOAD)
+DPU_IRQ_HANDLER_DEFINE(extdst1_shdload, EXTDST1_SHDLOAD)
+DPU_IRQ_HANDLER_DEFINE(extdst5_shdload, EXTDST5_SHDLOAD)
+DPU_IRQ_HANDLER_DEFINE(disengcfg_shdload0, DISENGCFG_SHDLOAD0)
+DPU_IRQ_HANDLER_DEFINE(disengcfg_framecomplete0, DISENGCFG_FRAMECOMPLETE0)
+DPU_IRQ_HANDLER_DEFINE(sig0_shdload, SIG0_SHDLOAD);
+DPU_IRQ_HANDLER_DEFINE(sig0_valid, SIG0_VALID);
+DPU_IRQ_HANDLER_DEFINE(disengcfg_shdload1, DISENGCFG_SHDLOAD1)
+DPU_IRQ_HANDLER_DEFINE(disengcfg_framecomplete1, DISENGCFG_FRAMECOMPLETE1)
+DPU_IRQ_HANDLER_DEFINE(sig1_shdload, SIG1_SHDLOAD);
+DPU_IRQ_HANDLER_DEFINE(sig1_valid, SIG1_VALID);
+
+int dpu_map_irq(struct dpu_soc *dpu, int irq)
+{
+	int virq = irq_linear_revmap(dpu->domain, irq);
+
+	if (!virq)
+		virq = irq_create_mapping(dpu->domain, irq);
+
+	return virq;
+}
+EXPORT_SYMBOL_GPL(dpu_map_irq);
+
+static int dpu_irq_init(struct dpu_soc *dpu)
+{
+	const struct dpu_data *data = dpu->data;
+	const struct cm_reg_ofs *ofs = data->cm_reg_ofs;
+	struct irq_chip_generic *gc;
+	struct irq_chip_type *ct;
+	int ret, i;
+
+	dpu->domain = irq_domain_add_linear(dpu->dev->of_node,
+					    dpu->irq_line_num,
+					    &irq_generic_chip_ops, dpu);
+	if (!dpu->domain) {
+		dev_err(dpu->dev, "failed to add irq domain\n");
+		return -ENODEV;
+	}
+
+	ret = irq_alloc_domain_generic_chips(dpu->domain, 32, 1, "DPU",
+					     handle_level_irq, 0, 0, 0);
+	if (ret < 0) {
+		dev_err(dpu->dev, "failed to alloc generic irq chips\n");
+		irq_domain_remove(dpu->domain);
+		return ret;
+	}
+
+	for (i = 0; i < dpu->irq_line_num; i += 32) {
+		/* Mask and clear all interrupts */
+		dpu_cm_write(dpu, USERINTERRUPTENABLE(ofs, i / 32), 0);
+		dpu_cm_write(dpu, USERINTERRUPTCLEAR(ofs, i / 32),
+					~data->unused_irq[i / 32]);
+		dpu_cm_write(dpu, INTERRUPTENABLE(ofs, i / 32), 0);
+		dpu_cm_write(dpu, INTERRUPTCLEAR(ofs, i / 32),
+					~data->unused_irq[i / 32]);
+
+		/* Set all interrupts to user mode */
+		dpu_cm_write(dpu, USERINTERRUPTMASK(ofs, i / 32),
+					~data->unused_irq[i / 32]);
+
+		gc = irq_get_domain_generic_chip(dpu->domain, i);
+		gc->reg_base = dpu->cm_reg;
+		gc->unused = data->unused_irq[i / 32];
+		ct = gc->chip_types;
+		ct->chip.irq_ack = irq_gc_ack_set_bit;
+		ct->chip.irq_mask = irq_gc_mask_clr_bit;
+		ct->chip.irq_unmask = irq_gc_mask_set_bit;
+		ct->regs.ack = USERINTERRUPTCLEAR(ofs, i / 32);
+		ct->regs.mask = USERINTERRUPTENABLE(ofs, i / 32);
+	}
+
+#define DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(name)	\
+irq_set_chained_handler_and_data(dpu->irq_##name, dpu_##name##_irq_handler, dpu)
+
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(extdst0_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(extdst4_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(extdst1_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(extdst5_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(disengcfg_shdload0);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(disengcfg_framecomplete0);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(sig0_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(sig0_valid);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(disengcfg_shdload1);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(disengcfg_framecomplete1);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(sig1_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA1(sig1_valid);
+
+#define DPU_IRQ_CHIP_PM_GET(name)					\
+{									\
+	ret = irq_chip_pm_get(irq_get_irq_data(dpu->irq_##name));	\
+	if (ret < 0) {							\
+		dev_err(dpu->dev,					\
+			"failed to get irq chip PM for irq%d %d\n",	\
+						dpu->irq_##name, ret);	\
+		goto pm_get_rollback;					\
+	}								\
+	dpu->irq_chip_pm_get_##name = true;				\
+}
+
+#define DPU_IRQ_CHIP_PM_PUT_CHECK(name)					\
+{									\
+	if (dpu->irq_chip_pm_get_##name) {				\
+		irq_chip_pm_put(irq_get_irq_data(dpu->irq_##name));	\
+		dpu->irq_chip_pm_get_##name = false;			\
+	}								\
+}
+
+	DPU_IRQ_CHIP_PM_GET(extdst0_shdload);
+	DPU_IRQ_CHIP_PM_GET(extdst4_shdload);
+	DPU_IRQ_CHIP_PM_GET(extdst1_shdload);
+	DPU_IRQ_CHIP_PM_GET(extdst5_shdload);
+	DPU_IRQ_CHIP_PM_GET(disengcfg_shdload0);
+	DPU_IRQ_CHIP_PM_GET(disengcfg_framecomplete0);
+	DPU_IRQ_CHIP_PM_GET(sig0_shdload);
+	DPU_IRQ_CHIP_PM_GET(sig0_valid);
+	DPU_IRQ_CHIP_PM_GET(disengcfg_shdload1);
+	DPU_IRQ_CHIP_PM_GET(disengcfg_framecomplete1);
+	DPU_IRQ_CHIP_PM_GET(sig1_shdload);
+	DPU_IRQ_CHIP_PM_GET(sig1_valid);
+
+	return 0;
+
+pm_get_rollback:
+	DPU_IRQ_CHIP_PM_PUT_CHECK(extdst0_shdload);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(extdst4_shdload);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(extdst1_shdload);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(extdst5_shdload);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(disengcfg_shdload0);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(disengcfg_framecomplete0);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(sig0_shdload);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(sig0_valid);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(disengcfg_shdload1);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(disengcfg_framecomplete1);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(sig1_shdload);
+	DPU_IRQ_CHIP_PM_PUT_CHECK(sig1_valid);
+
+	return ret;
+}
+
+static void dpu_irq_exit(struct dpu_soc *dpu)
+{
+	unsigned int i, irq;
+
+#define DPU_IRQ_CHIP_PM_PUT(name)				\
+{								\
+	irq_chip_pm_put(irq_get_irq_data(dpu->irq_##name));	\
+	dpu->irq_chip_pm_get_##name = false;			\
+}
+
+	DPU_IRQ_CHIP_PM_PUT(extdst0_shdload);
+	DPU_IRQ_CHIP_PM_PUT(extdst4_shdload);
+	DPU_IRQ_CHIP_PM_PUT(extdst1_shdload);
+	DPU_IRQ_CHIP_PM_PUT(extdst5_shdload);
+	DPU_IRQ_CHIP_PM_PUT(disengcfg_shdload0);
+	DPU_IRQ_CHIP_PM_PUT(disengcfg_framecomplete0);
+	DPU_IRQ_CHIP_PM_PUT(sig0_shdload);
+	DPU_IRQ_CHIP_PM_PUT(sig0_valid);
+	DPU_IRQ_CHIP_PM_PUT(disengcfg_shdload1);
+	DPU_IRQ_CHIP_PM_PUT(disengcfg_framecomplete1);
+	DPU_IRQ_CHIP_PM_PUT(sig1_shdload);
+	DPU_IRQ_CHIP_PM_PUT(sig1_valid);
+
+#define DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(name)	\
+irq_set_chained_handler_and_data(dpu->irq_##name, NULL, NULL)
+
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(extdst0_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(extdst4_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(extdst1_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(extdst5_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(disengcfg_shdload0);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(disengcfg_framecomplete0);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(sig0_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(sig0_valid);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(disengcfg_shdload1);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(disengcfg_framecomplete1);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(sig1_shdload);
+	DPU_IRQ_SET_CHAINED_HANDLER_AND_DATA2(sig1_valid);
+
+	for (i = 0; i < dpu->irq_line_num; i++) {
+		irq = irq_linear_revmap(dpu->domain, i);
+		if (irq)
+			irq_dispose_mapping(irq);
+	}
+
+	irq_domain_remove(dpu->domain);
+}
+
+#define _DPU_UNITS_INIT(unit)						\
+{									\
+	const struct dpu_unit *us = data->unit##s;			\
+	int i;								\
+									\
+	/* software check */						\
+	if (WARN_ON(us->num > ARRAY_SIZE(unit##_ids)))			\
+		return -EINVAL;						\
+									\
+	for (i = 0; i < us->num; i++)					\
+		_dpu_##unit##_init(dpu, us->ids[i]);			\
+}
+
+static int
+_dpu_submodules_init(struct dpu_soc *dpu, struct platform_device *pdev)
+{
+	const struct dpu_data *data = dpu->data;
+
+	_DPU_UNITS_INIT(cf);
+	_DPU_UNITS_INIT(dec);
+	_DPU_UNITS_INIT(ed);
+	_DPU_UNITS_INIT(fd);
+	_DPU_UNITS_INIT(fe);
+	_DPU_UNITS_INIT(fg);
+	_DPU_UNITS_INIT(fl);
+	_DPU_UNITS_INIT(fw);
+	_DPU_UNITS_INIT(hs);
+	_DPU_UNITS_INIT(lb);
+	_DPU_UNITS_INIT(sig);
+	_DPU_UNITS_INIT(st);
+	_DPU_UNITS_INIT(tcon);
+	_DPU_UNITS_INIT(vs);
+
+	return 0;
+}
+
+#define DPU_UNIT_INIT(dpu, base, unit, name, id, pec_ofs, ofs)		\
+{									\
+	int ret;							\
+	ret = dpu_##unit##_init((dpu),	(id),				\
+				(pec_ofs) ? (base) + (pec_ofs) : 0,	\
+				(base) + (ofs));			\
+	if (ret) {							\
+		dev_err((dpu)->dev, "init %s%d failed with %d\n",	\
+						(name), (id), ret);	\
+		return ret;						\
+	}								\
+}
+
+#define DPU_UNITS_INIT(unit)						\
+{									\
+	const struct dpu_unit *us = data->unit##s;			\
+	int i;								\
+									\
+	/* software check */						\
+	if (WARN_ON(us->num > ARRAY_SIZE(unit##_ids)))			\
+		return -EINVAL;						\
+									\
+	for (i = 0; i < us->num; i++)					\
+		DPU_UNIT_INIT(dpu, dpu_base, unit, us->name,		\
+			      us->ids[i],				\
+			      us->pec_ofss ? us->pec_ofss[i] : 0,	\
+			      us->ofss[i]);				\
+}
+
+static int dpu_submodules_init(struct dpu_soc *dpu,
+		struct platform_device *pdev, unsigned long dpu_base)
+{
+	const struct dpu_data *data = dpu->data;
+	const struct dpu_unit *fds = data->fds;
+	const struct dpu_unit *fls = data->fls;
+	const struct dpu_unit *fws = data->fws;
+	const struct dpu_unit *tcons = data->tcons;
+	struct dpu_fetchunit *fu;
+	struct dprc *dprc;
+	struct dpu_tcon *tcon;
+	struct pc *pc;
+	int i;
+
+	DPU_UNITS_INIT(cf);
+	DPU_UNITS_INIT(dec);
+	DPU_UNITS_INIT(ed);
+	DPU_UNITS_INIT(fd);
+	DPU_UNITS_INIT(fe);
+	DPU_UNITS_INIT(fg);
+	DPU_UNITS_INIT(fl);
+	DPU_UNITS_INIT(fw);
+	DPU_UNITS_INIT(hs);
+	DPU_UNITS_INIT(lb);
+	DPU_UNITS_INIT(sig);
+	DPU_UNITS_INIT(st);
+	DPU_UNITS_INIT(tcon);
+	DPU_UNITS_INIT(vs);
+
+	for (i = 0; i < fds->num; i++) {
+		dprc = dprc_lookup_by_phandle(dpu->dev, "fsl,dpr-channels",
+					      fds->dprc_ids[i]);
+		if (!dprc)
+			return -EPROBE_DEFER;
+
+		fu = dpu_fd_get(dpu, i);
+		fetchunit_get_dprc(fu, dprc);
+		dpu_fd_put(fu);
+	}
+
+	for (i = 0; i < fls->num; i++) {
+		dprc = dprc_lookup_by_phandle(dpu->dev, "fsl,dpr-channels",
+					      fls->dprc_ids[i]);
+		if (!dprc)
+			return -EPROBE_DEFER;
+
+		fu = dpu_fl_get(dpu, i);
+		fetchunit_get_dprc(fu, dprc);
+		dpu_fl_put(fu);
+	}
+
+	for (i = 0; i < fws->num; i++) {
+		dprc = dprc_lookup_by_phandle(dpu->dev, "fsl,dpr-channels",
+					      fws->dprc_ids[i]);
+		if (!dprc)
+			return -EPROBE_DEFER;
+
+		fu = dpu_fw_get(dpu, fw_ids[i]);
+		fetchunit_get_dprc(fu, dprc);
+		dpu_fw_put(fu);
+	}
+
+	pc = pc_lookup_by_phandle(dpu->dev, "fsl,pixel-combiner");
+	if (!pc)
+		return -EPROBE_DEFER;
+
+	for (i = 0; i < tcons->num; i++) {
+		tcon = dpu_tcon_get(dpu, i);
+		tcon_get_pc(tcon, pc);
+		dpu_tcon_put(tcon);
+	}
+
+	return 0;
+}
+
+static int platform_remove_devices_fn(struct device *dev, void *unused)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+
+	platform_device_unregister(pdev);
+
+	return 0;
+}
+
+static void platform_device_unregister_children(struct platform_device *pdev)
+{
+	device_for_each_child(&pdev->dev, NULL, platform_remove_devices_fn);
+}
+
+struct dpu_platform_reg {
+	struct dpu_client_platformdata pdata;
+	const char *name;
+};
+
+static struct dpu_platform_reg client_reg[] = {
+	{
+		.pdata = {
+			.stream_id = 0,
+		},
+		.name = "imx-dpu-crtc",
+	}, {
+		.pdata = {
+			.stream_id = 1,
+		},
+		.name = "imx-dpu-crtc",
+	}, {
+		.pdata = { },
+		.name = IMX_DPU_BLITENG_NAME,
+	}
+};
+
+static DEFINE_MUTEX(dpu_client_id_mutex);
+static int dpu_client_id;
+
+static int dpu_get_plane_resource(struct dpu_soc *dpu,
+				  struct dpu_plane_res *res)
+{
+	const struct dpu_unit *fds = dpu->data->fds;
+	const struct dpu_unit *fls = dpu->data->fls;
+	const struct dpu_unit *fws = dpu->data->fws;
+	const struct dpu_unit *lbs = dpu->data->lbs;
+	struct dpu_plane_grp *grp = plane_res_to_grp(res);
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(res->ed); i++) {
+		res->ed[i] = dpu_ed_get(dpu, i);
+		if (IS_ERR(res->ed[i]))
+			return PTR_ERR(res->ed[i]);
+	}
+	for (i = 0; i < fds->num; i++) {
+		res->fd[i] = dpu_fd_get(dpu, i);
+		if (IS_ERR(res->fd[i]))
+			return PTR_ERR(res->fd[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->fe); i++) {
+		res->fe[i] = dpu_fe_get(dpu, i);
+		if (IS_ERR(res->fe[i]))
+			return PTR_ERR(res->fe[i]);
+		grp->hw_plane_fetcheco_num = ARRAY_SIZE(res->fe);
+	}
+	for (i = 0; i < fls->num; i++) {
+		res->fl[i] = dpu_fl_get(dpu, i);
+		if (IS_ERR(res->fl[i]))
+			return PTR_ERR(res->fl[i]);
+	}
+	for (i = 0; i < fws->num; i++) {
+		res->fw[i] = dpu_fw_get(dpu, fw_ids[i]);
+		if (IS_ERR(res->fw[i]))
+			return PTR_ERR(res->fw[i]);
+	}
+	/* HScaler could be shared with capture. */
+	if (display_plane_video_proc) {
+		for (i = 0; i < ARRAY_SIZE(res->hs); i++) {
+			res->hs[i] = dpu_hs_get(dpu, hs_ids[i]);
+			if (IS_ERR(res->hs[i]))
+				return PTR_ERR(res->hs[i]);
+		}
+		grp->hw_plane_hscaler_num = ARRAY_SIZE(res->hs);
+	}
+	for (i = 0; i < lbs->num; i++) {
+		res->lb[i] = dpu_lb_get(dpu, i);
+		if (IS_ERR(res->lb[i]))
+			return PTR_ERR(res->lb[i]);
+	}
+	/* VScaler could be shared with capture. */
+	if (display_plane_video_proc) {
+		for (i = 0; i < ARRAY_SIZE(res->vs); i++) {
+			res->vs[i] = dpu_vs_get(dpu, vs_ids[i]);
+			if (IS_ERR(res->vs[i]))
+				return PTR_ERR(res->vs[i]);
+		}
+		grp->hw_plane_vscaler_num = ARRAY_SIZE(res->vs);
+	}
+
+	grp->hw_plane_num = fds->num + fls->num + fws->num;
+
+	return 0;
+}
+
+static void dpu_put_plane_resource(struct dpu_plane_res *res)
+{
+	struct dpu_plane_grp *grp = plane_res_to_grp(res);
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(res->ed); i++) {
+		if (!IS_ERR_OR_NULL(res->ed[i]))
+			dpu_ed_put(res->ed[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->fd); i++) {
+		if (!IS_ERR_OR_NULL(res->fd[i]))
+			dpu_fd_put(res->fd[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->fe); i++) {
+		if (!IS_ERR_OR_NULL(res->fe[i]))
+			dpu_fe_put(res->fe[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->fl); i++) {
+		if (!IS_ERR_OR_NULL(res->fl[i]))
+			dpu_fl_put(res->fl[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->fw); i++) {
+		if (!IS_ERR_OR_NULL(res->fw[i]))
+			dpu_fw_put(res->fw[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->hs); i++) {
+		if (!IS_ERR_OR_NULL(res->hs[i]))
+			dpu_hs_put(res->hs[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->lb); i++) {
+		if (!IS_ERR_OR_NULL(res->lb[i]))
+			dpu_lb_put(res->lb[i]);
+	}
+	for (i = 0; i < ARRAY_SIZE(res->vs); i++) {
+		if (!IS_ERR_OR_NULL(res->vs[i]))
+			dpu_vs_put(res->vs[i]);
+	}
+
+	grp->hw_plane_num = 0;
+}
+
+static int dpu_add_client_devices(struct dpu_soc *dpu)
+{
+	const struct dpu_data *data = dpu->data;
+	struct device *dev = dpu->dev;
+	struct dpu_platform_reg *reg;
+	struct dpu_plane_grp *plane_grp;
+	struct dpu_store *st9 = NULL;
+	size_t client_num, reg_size;
+	int i, id, ret;
+
+	client_num = ARRAY_SIZE(client_reg);
+
+	reg = devm_kcalloc(dev, client_num, sizeof(*reg), GFP_KERNEL);
+	if (!reg)
+		return -ENODEV;
+
+	plane_grp = devm_kzalloc(dev, sizeof(*plane_grp), GFP_KERNEL);
+	if (!plane_grp)
+		return -ENODEV;
+
+	mutex_init(&plane_grp->mutex);
+
+	mutex_lock(&dpu_client_id_mutex);
+	id = dpu_client_id;
+	dpu_client_id += client_num;
+	mutex_unlock(&dpu_client_id_mutex);
+
+	reg_size = client_num * sizeof(struct dpu_platform_reg);
+	memcpy(reg, &client_reg[0], reg_size);
+
+	plane_grp->src_mask = data->plane_src_mask;
+	plane_grp->id = id / client_num;
+	plane_grp->has_vproc = display_plane_video_proc;
+
+	ret = dpu_get_plane_resource(dpu, &plane_grp->res);
+	if (ret)
+		goto err_get_plane_res;
+
+	st9 = dpu_st_get(dpu, 9);
+	if (IS_ERR(st9)) {
+		ret = PTR_ERR(st9);
+		goto err_get_plane_res;
+	}
+
+	for (i = 0; i < client_num; i++) {
+		struct platform_device *pdev;
+		struct device_node *of_node = NULL;
+
+		if (!strcmp(reg[i].name, IMX_DPU_BLITENG_NAME)) {
+			/* As bliteng has no of_node, so to use dpu's. */
+			of_node = dev->of_node;
+		} else {
+			/* Associate subdevice with the corresponding port node. */
+			of_node = of_graph_get_port_by_id(dev->of_node, i);
+			if (!of_node) {
+				dev_info(dev,
+					"no port@%d node in %s, not using DISP%d\n",
+					i, dev->of_node->full_name, i);
+				continue;
+			}
+		}
+
+		reg[i].pdata.plane_grp = plane_grp;
+		reg[i].pdata.di_grp_id = plane_grp->id;
+		reg[i].pdata.st9 = st9;
+
+		pdev = platform_device_alloc(reg[i].name, id++);
+		if (!pdev) {
+			ret = -ENOMEM;
+			goto err_register;
+		}
+
+		pdev->dev.parent = dev;
+
+		reg[i].pdata.of_node = of_node;
+		ret = platform_device_add_data(pdev, &reg[i].pdata,
+					       sizeof(reg[i].pdata));
+		if (!ret)
+			ret = platform_device_add(pdev);
+		if (ret) {
+			platform_device_put(pdev);
+			goto err_register;
+		}
+	}
+
+	return 0;
+
+err_register:
+	platform_device_unregister_children(to_platform_device(dev));
+	dpu_st_put(st9);
+err_get_plane_res:
+	dpu_put_plane_resource(&plane_grp->res);
+
+	return ret;
+}
+
+static int dpu_probe(struct platform_device *pdev)
+{
+	const struct of_device_id *of_id;
+	struct device_node *np = pdev->dev.of_node;
+	struct dpu_soc *dpu;
+	struct resource *res;
+	unsigned long dpu_base;
+	const struct dpu_data *data;
+	int ret;
+
+	of_id = of_match_device(dpu_dt_ids, &pdev->dev);
+	if (!of_id)
+		return -ENODEV;
+
+	data = of_id->data;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -ENODEV;
+
+	dpu_base = res->start;
+
+	dpu = devm_kzalloc(&pdev->dev, sizeof(*dpu), GFP_KERNEL);
+	if (!dpu)
+		return -ENODEV;
+
+	dpu->dev = &pdev->dev;
+	dpu->data = data;
+	dpu->id = of_alias_get_id(np, "dpu");
+	dpu->irq_line_num = platform_irq_count(pdev);
+	if (dpu->irq_line_num < 0)
+		return dpu->irq_line_num;
+
+	dpu_units_addr_dbg(dpu, pdev, dpu_base);
+
+	ret = dpu_get_irq(pdev, dpu);
+	if (ret < 0)
+		return ret;
+
+	ret = dpu_sc_misc_get_handle(dpu);
+	if (ret < 0)
+		return ret;
+
+	spin_lock_init(&dpu->lock);
+
+	dpu->cm_reg = devm_ioremap(dpu->dev, dpu_base + data->cm_ofs, SZ_1K);
+	if (!dpu->cm_reg)
+		return -ENOMEM;
+
+	ret = dpu_attach_pm_domains(dpu);
+	if (ret)
+		return ret;
+
+	ret = dpu_irq_init(dpu);
+	if (ret)
+		goto failed_irq;
+
+	ret = dpu_submodules_init(dpu, pdev, dpu_base);
+	if (ret)
+		goto failed_submodules_init;
+
+	ret = dpu_sc_misc_init(dpu);
+	if (ret < 0) {
+		dev_err(dpu->dev,
+			"failed to initialize pixel link %d\n", ret);
+		goto failed_sc_misc_init;
+	}
+
+	platform_set_drvdata(pdev, dpu);
+
+	ret = dpu_add_client_devices(dpu);
+	if (ret) {
+		dev_err(dpu->dev,
+			"adding client devices failed with %d\n", ret);
+		goto failed_add_clients;
+	}
+
+	dev_info(dpu->dev, "driver probed\n");
+
+	return 0;
+
+failed_add_clients:
+	platform_set_drvdata(pdev, NULL);
+failed_sc_misc_init:
+failed_submodules_init:
+	dpu_irq_exit(dpu);
+failed_irq:
+	dpu_detach_pm_domains(dpu);
+	return ret;
+}
+
+static int dpu_remove(struct platform_device *pdev)
+{
+	struct dpu_soc *dpu = platform_get_drvdata(pdev);
+
+	platform_device_unregister_children(pdev);
+
+	dpu_irq_exit(dpu);
+	dpu_detach_pm_domains(dpu);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int dpu_suspend(struct device *dev)
+{
+	/*
+	 * The dpu core driver currently depends on the client drivers
+	 * to do suspend operations to leave dpu a cleaned up state
+	 * machine status before the system enters sleep mode.
+	 */
+	return 0;
+}
+
+static int dpu_resume(struct device *dev)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+	struct dpu_soc *dpu = platform_get_drvdata(pdev);
+
+	dpu_sc_misc_init(dpu);
+
+	_dpu_submodules_init(dpu, pdev);
+
+	return 0;
+}
+#endif
+
+static const struct dev_pm_ops dpu_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(dpu_suspend, dpu_resume)
+};
+
+static struct platform_driver dpu_driver = {
+	.driver = {
+		.pm = &dpu_pm_ops,
+		.name = "dpu-core",
+		.of_match_table = dpu_dt_ids,
+	},
+	.probe = dpu_probe,
+	.remove = dpu_remove,
+};
+
+module_platform_driver(dpu_driver);
+
+MODULE_DESCRIPTION("i.MX DPU driver");
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-constframe.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-constframe.c
@@ -0,0 +1,253 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+static unsigned int safety_stream_cf_color = 0x0;
+module_param(safety_stream_cf_color, uint, 0444);
+MODULE_PARM_DESC(safety_stream_cf_color,
+"Safety stream constframe color in hex(0xRRGGBBAA) [default=0x00000000]");
+
+#define FRAMEDIMENSIONS		0xC
+#define WIDTH(w)		(((w) - 1) & 0x3FFF)
+#define HEIGHT(h)		((((h) - 1) & 0x3FFF) << 16)
+#define CONSTANTCOLOR		0x10
+#define RED(r)			(((r) & 0xFF) << 24)
+#define GREEN(g)		(((g) & 0xFF) << 16)
+#define BLUE(b)			(((b) & 0xFF) << 8)
+#define ALPHA(a)		((a) & 0xFF)
+#define CONTROLTRIGGER		0x14
+#define START			0x18
+#define STATUS			0x1C
+
+struct dpu_constframe {
+	void __iomem *pec_base;
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_cf_read(struct dpu_constframe *cf, unsigned int offset)
+{
+	return readl(cf->base + offset);
+}
+
+static inline void dpu_cf_write(struct dpu_constframe *cf,
+				unsigned int offset, u32 value)
+{
+	writel(value, cf->base + offset);
+}
+
+void constframe_shden(struct dpu_constframe *cf, bool enable)
+{
+	u32 val;
+
+	val = enable ? SHDEN : 0;
+
+	mutex_lock(&cf->mutex);
+	dpu_cf_write(cf, STATICCONTROL, val);
+	mutex_unlock(&cf->mutex);
+}
+EXPORT_SYMBOL_GPL(constframe_shden);
+
+void constframe_framedimensions(struct dpu_constframe *cf, unsigned int w,
+				unsigned int h)
+{
+	u32 val;
+
+	val = WIDTH(w) | HEIGHT(h);
+
+	mutex_lock(&cf->mutex);
+	dpu_cf_write(cf, FRAMEDIMENSIONS, val);
+	mutex_unlock(&cf->mutex);
+}
+EXPORT_SYMBOL_GPL(constframe_framedimensions);
+
+void constframe_framedimensions_copy_prim(struct dpu_constframe *cf)
+{
+	struct dpu_constframe *prim_cf = NULL;
+	unsigned int prim_id;
+	int i;
+	u32 val;
+
+	if (cf->id != 0 && cf->id != 1) {
+		dev_warn(cf->dpu->dev, "ConstFrame%d is not a secondary one\n",
+								cf->id);
+		return;
+	}
+
+	prim_id = cf->id + 4;
+
+	for (i = 0; i < ARRAY_SIZE(cf_ids); i++)
+		if (cf_ids[i] == prim_id)
+			prim_cf = cf->dpu->cf_priv[i];
+
+	if (!prim_cf) {
+		dev_warn(cf->dpu->dev, "cannot find ConstFrame%d's primary peer\n",
+								cf->id);
+		return;
+	}
+
+	mutex_lock(&cf->mutex);
+	val = dpu_cf_read(prim_cf, FRAMEDIMENSIONS);
+	dpu_cf_write(cf, FRAMEDIMENSIONS, val);
+	mutex_unlock(&cf->mutex);
+}
+EXPORT_SYMBOL_GPL(constframe_framedimensions_copy_prim);
+
+void constframe_constantcolor(struct dpu_constframe *cf, unsigned int r,
+			      unsigned int g, unsigned int b, unsigned int a)
+{
+	u32 val;
+
+	val = RED(r) | GREEN(g) | BLUE(b) | ALPHA(a);
+
+	mutex_lock(&cf->mutex);
+	dpu_cf_write(cf, CONSTANTCOLOR, val);
+	mutex_unlock(&cf->mutex);
+}
+EXPORT_SYMBOL_GPL(constframe_constantcolor);
+
+void constframe_controltrigger(struct dpu_constframe *cf, bool trigger)
+{
+	u32 val;
+
+	val = trigger ? SHDTOKGEN : 0;
+
+	mutex_lock(&cf->mutex);
+	dpu_cf_write(cf, CONTROLTRIGGER, val);
+	mutex_unlock(&cf->mutex);
+}
+EXPORT_SYMBOL_GPL(constframe_controltrigger);
+
+struct dpu_constframe *dpu_cf_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_constframe *cf;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(cf_ids); i++)
+		if (cf_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(cf_ids))
+		return ERR_PTR(-EINVAL);
+
+	cf = dpu->cf_priv[i];
+
+	mutex_lock(&cf->mutex);
+
+	if (cf->inuse) {
+		mutex_unlock(&cf->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	cf->inuse = true;
+
+	mutex_unlock(&cf->mutex);
+
+	return cf;
+}
+EXPORT_SYMBOL_GPL(dpu_cf_get);
+
+void dpu_cf_put(struct dpu_constframe *cf)
+{
+	mutex_lock(&cf->mutex);
+
+	cf->inuse = false;
+
+	mutex_unlock(&cf->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_cf_put);
+
+struct dpu_constframe *dpu_aux_cf_peek(struct dpu_constframe *cf)
+{
+	unsigned int aux_id = cf->id ^ 1;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(cf_ids); i++)
+		if (cf_ids[i] == aux_id)
+			return cf->dpu->cf_priv[i];
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(dpu_aux_cf_peek);
+
+void _dpu_cf_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_constframe *cf;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(cf_ids); i++)
+		if (cf_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(cf_ids)))
+		return;
+
+	cf = dpu->cf_priv[i];
+
+	constframe_shden(cf, true);
+
+	if (id == 4 || id == 5) {
+		mutex_lock(&cf->mutex);
+		dpu_cf_write(cf, CONSTANTCOLOR, safety_stream_cf_color);
+		mutex_unlock(&cf->mutex);
+	}
+}
+
+int dpu_cf_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_constframe *cf;
+	int i;
+
+	cf = devm_kzalloc(dpu->dev, sizeof(*cf), GFP_KERNEL);
+	if (!cf)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(cf_ids); i++)
+		if (cf_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(cf_ids))
+		return -EINVAL;
+
+	dpu->cf_priv[i] = cf;
+
+	cf->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_16);
+	if (!cf->pec_base)
+		return -ENOMEM;
+
+	cf->base = devm_ioremap(dpu->dev, base, SZ_32);
+	if (!cf->base)
+		return -ENOMEM;
+
+	cf->dpu = dpu;
+	cf->id = id;
+
+	mutex_init(&cf->mutex);
+
+	_dpu_cf_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-disengcfg.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-disengcfg.c
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drm_mode.h>
+#include <linux/io.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include "dpu-prv.h"
+
+#define CLOCKCTRL		0x8
+typedef enum {
+	DSPCLKDIVIDE__DIV1,	/* Ext disp clk signal has pix clk freq. */
+	DSPCLKDIVIDE__DIV2,	/* Ext disp clk signal has 2x the pix clk freq. */
+} clkdivide_t;
+#define POLARITYCTRL		0xC
+#define POLHS_HIGH		BIT(0)
+#define POLVS_HIGH		BIT(1)
+#define POLEN_HIGH		BIT(2)
+#define PIXINV_INV		BIT(3)
+#define SRCSELECT		0x10
+#define SIG_SELECT_MASK		0x3
+
+struct dpu_disengcfg {
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_dec_read(struct dpu_disengcfg *dec, unsigned int offset)
+{
+	return readl(dec->base + offset);
+}
+
+static inline void dpu_dec_write(struct dpu_disengcfg *dec,
+				 unsigned int offset, u32 value)
+{
+	writel(value, dec->base + offset);
+}
+
+void disengcfg_sig_select(struct dpu_disengcfg *dec, dec_sig_sel_t sig_sel)
+{
+	u32 val;
+
+	mutex_lock(&dec->mutex);
+	val = dpu_dec_read(dec, SRCSELECT);
+	val &= ~SIG_SELECT_MASK;
+	val |= sig_sel;
+	dpu_dec_write(dec, SRCSELECT, val);
+	mutex_unlock(&dec->mutex);
+}
+EXPORT_SYMBOL_GPL(disengcfg_sig_select);
+
+struct dpu_disengcfg *dpu_dec_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_disengcfg *dec;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(dec_ids); i++)
+		if (dec_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(dec_ids))
+		return ERR_PTR(-EINVAL);
+
+	dec = dpu->dec_priv[i];
+
+	mutex_lock(&dec->mutex);
+
+	if (dec->inuse) {
+		mutex_unlock(&dec->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	dec->inuse = true;
+
+	mutex_unlock(&dec->mutex);
+
+	return dec;
+}
+EXPORT_SYMBOL_GPL(dpu_dec_get);
+
+void dpu_dec_put(struct dpu_disengcfg *dec)
+{
+	mutex_lock(&dec->mutex);
+
+	dec->inuse = false;
+
+	mutex_unlock(&dec->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_dec_put);
+
+struct dpu_disengcfg *dpu_aux_dec_peek(struct dpu_disengcfg *dec)
+{
+	return dec->dpu->dec_priv[dec->id ^ 1];
+}
+EXPORT_SYMBOL_GPL(dpu_aux_dec_peek);
+
+void _dpu_dec_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_disengcfg *dec;
+	u32 val;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(dec_ids); i++)
+		if (ed_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(dec_ids)))
+		return;
+
+	dec = dpu->dec_priv[i];
+
+	val = dpu_dec_read(dec, POLARITYCTRL);
+	val &= ~POLHS_HIGH;
+	val &= ~POLVS_HIGH;
+	dpu_dec_write(dec, POLARITYCTRL, val);
+
+	disengcfg_sig_select(dec, DEC_SIG_SEL_FRAMEGEN);
+}
+
+int dpu_dec_init(struct dpu_soc *dpu, unsigned int id,
+			unsigned long unused, unsigned long base)
+{
+	struct dpu_disengcfg *dec;
+
+	dec = devm_kzalloc(dpu->dev, sizeof(*dec), GFP_KERNEL);
+	if (!dec)
+		return -ENOMEM;
+
+	dpu->dec_priv[id] = dec;
+
+	dec->base = devm_ioremap(dpu->dev, base, SZ_16);
+	if (!dec->base)
+		return -ENOMEM;
+
+	dec->dpu = dpu;
+	dec->id = id;
+	mutex_init(&dec->mutex);
+
+	_dpu_dec_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-extdst.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-extdst.c
@@ -0,0 +1,521 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_STATIC		0x8
+#define POWERDOWN			BIT(4)
+#define SYNC_MODE			BIT(8)
+#define SW_RESET			BIT(11)
+#define DIV(n)				(((n) & 0xFF) << 16)
+#define DIV_RESET			0x80
+#define PIXENGCFG_DYNAMIC		0xC
+#define PIXENGCFG_REQUEST		0x10
+#define SHDLDREQ(n)			BIT(n)
+#define SEL_SHDLDREQ			BIT(0)
+#define PIXENGCFG_TRIGGER		0x14
+#define SYNC_TRIGGER			BIT(0)
+#define TRIGGER_SEQUENCE_COMPLETE	BIT(4)
+#define PIXENGCFG_STATUS		0x18
+#define SYNC_BUSY			BIT(8)
+#define KICK_MODE			BIT(8)
+#define PERFCOUNTMODE			BIT(12)
+#define CONTROL				0xC
+#define GAMMAAPPLYENABLE		BIT(0)
+#define SOFTWAREKICK			0x10
+#define KICK				BIT(0)
+#define STATUS				0x14
+#define CNT_ERR_STS			BIT(0)
+#define CONTROLWORD			0x18
+#define CURPIXELCNT			0x1C
+static u16 get_xval(u32 pixel_cnt)
+{
+	return pixel_cnt & 0xFFFF;
+}
+
+static u16 get_yval(u32 pixel_cnt)
+{
+	return pixel_cnt >> 16;
+}
+#define LASTPIXELCNT			0x20
+#define PERFCOUNTER			0x24
+
+struct dpu_extdst {
+	void __iomem *pec_base;
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_pec_ed_read(struct dpu_extdst *ed, unsigned int offset)
+{
+	return readl(ed->pec_base + offset);
+}
+
+static inline void dpu_pec_ed_write(struct dpu_extdst *ed,
+				unsigned int offset, u32 value)
+{
+	writel(value, ed->pec_base + offset);
+}
+
+static inline u32 dpu_ed_read(struct dpu_extdst *ed, unsigned int offset)
+{
+	return readl(ed->base + offset);
+}
+
+static inline void dpu_ed_write(struct dpu_extdst *ed,
+				unsigned int offset, u32 value)
+{
+	writel(value, ed->base + offset);
+}
+
+static inline bool dpu_ed_is_safety_stream(struct dpu_extdst *ed)
+{
+	if (ed->id == 4 || ed->id == 5)
+		return true;
+
+	return false;
+}
+
+void extdst_pixengcfg_shden(struct dpu_extdst *ed, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATIC);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_pec_ed_write(ed, PIXENGCFG_STATIC, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_shden);
+
+void extdst_pixengcfg_powerdown(struct dpu_extdst *ed, bool powerdown)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATIC);
+	if (powerdown)
+		val |= POWERDOWN;
+	else
+		val &= ~POWERDOWN;
+	dpu_pec_ed_write(ed, PIXENGCFG_STATIC, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_powerdown);
+
+void extdst_pixengcfg_sync_mode(struct dpu_extdst *ed, ed_sync_mode_t mode)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATIC);
+	if (mode == AUTO)
+		val |= SYNC_MODE;
+	else
+		val &= ~SYNC_MODE;
+	dpu_pec_ed_write(ed, PIXENGCFG_STATIC, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_sync_mode);
+
+void extdst_pixengcfg_reset(struct dpu_extdst *ed, bool reset)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATIC);
+	if (reset)
+		val |= SW_RESET;
+	else
+		val &= ~SW_RESET;
+	dpu_pec_ed_write(ed, PIXENGCFG_STATIC, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_reset);
+
+void extdst_pixengcfg_div(struct dpu_extdst *ed, u16 div)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATIC);
+	val &= ~0xFF0000;
+	val |= DIV(div);
+	dpu_pec_ed_write(ed, PIXENGCFG_STATIC, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_div);
+
+void extdst_pixengcfg_syncmode_master(struct dpu_extdst *ed, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATIC);
+	if (enable)
+		val |= BIT(16);
+	else
+		val &= ~BIT(16);
+	dpu_pec_ed_write(ed, PIXENGCFG_STATIC, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_syncmode_master);
+
+int extdst_pixengcfg_src_sel(struct dpu_extdst *ed, extdst_src_sel_t src)
+{
+	mutex_lock(&ed->mutex);
+	dpu_pec_ed_write(ed, PIXENGCFG_DYNAMIC, src);
+	mutex_unlock(&ed->mutex);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_src_sel);
+
+void extdst_pixengcfg_sel_shdldreq(struct dpu_extdst *ed)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_REQUEST);
+	val |= SEL_SHDLDREQ;
+	dpu_pec_ed_write(ed, PIXENGCFG_REQUEST, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_sel_shdldreq);
+
+void extdst_pixengcfg_shdldreq(struct dpu_extdst *ed, u32 req_mask)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_REQUEST);
+	val |= req_mask;
+	dpu_pec_ed_write(ed, PIXENGCFG_REQUEST, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_shdldreq);
+
+void extdst_pixengcfg_sync_trigger(struct dpu_extdst *ed)
+{
+	mutex_lock(&ed->mutex);
+	dpu_pec_ed_write(ed, PIXENGCFG_TRIGGER, SYNC_TRIGGER);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_sync_trigger);
+
+void extdst_pixengcfg_trigger_sequence_complete(struct dpu_extdst *ed)
+{
+	mutex_lock(&ed->mutex);
+	dpu_pec_ed_write(ed, PIXENGCFG_TRIGGER, TRIGGER_SEQUENCE_COMPLETE);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_trigger_sequence_complete);
+
+bool extdst_pixengcfg_is_sync_busy(struct dpu_extdst *ed)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATUS);
+	mutex_unlock(&ed->mutex);
+
+	return val & SYNC_BUSY;
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_is_sync_busy);
+
+ed_pipeline_status_t extdst_pixengcfg_pipeline_status(struct dpu_extdst *ed)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_pec_ed_read(ed, PIXENGCFG_STATUS);
+	mutex_unlock(&ed->mutex);
+
+	return val & 0x3;
+}
+EXPORT_SYMBOL_GPL(extdst_pixengcfg_pipeline_status);
+
+void extdst_shden(struct dpu_extdst *ed, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, STATICCONTROL);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_ed_write(ed, STATICCONTROL, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_shden);
+
+void extdst_kick_mode(struct dpu_extdst *ed, ed_kick_mode_t mode)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, STATICCONTROL);
+	val &= ~KICK_MODE;
+	val |= mode;
+	dpu_ed_write(ed, STATICCONTROL, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_kick_mode);
+
+void extdst_perfcountmode(struct dpu_extdst *ed, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, STATICCONTROL);
+	if (enable)
+		val |= PERFCOUNTMODE;
+	else
+		val &= ~PERFCOUNTMODE;
+	dpu_ed_write(ed, STATICCONTROL, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_perfcountmode);
+
+void extdst_gamma_apply_enable(struct dpu_extdst *ed, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, CONTROL);
+	if (enable)
+		val |= GAMMAAPPLYENABLE;
+	else
+		val &= ~GAMMAAPPLYENABLE;
+	dpu_ed_write(ed, CONTROL, val);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_gamma_apply_enable);
+
+void extdst_kick(struct dpu_extdst *ed)
+{
+	mutex_lock(&ed->mutex);
+	dpu_ed_write(ed, SOFTWAREKICK, KICK);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_kick);
+
+void extdst_cnt_err_clear(struct dpu_extdst *ed)
+{
+	mutex_lock(&ed->mutex);
+	dpu_ed_write(ed, STATUS, CNT_ERR_STS);
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(extdst_cnt_err_clear);
+
+bool extdst_cnt_err_status(struct dpu_extdst *ed)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, STATUS);
+	mutex_unlock(&ed->mutex);
+
+	return val & CNT_ERR_STS;
+}
+EXPORT_SYMBOL_GPL(extdst_cnt_err_status);
+
+u32 extdst_last_control_word(struct dpu_extdst *ed)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, CONTROLWORD);
+	mutex_unlock(&ed->mutex);
+
+	return val;
+}
+EXPORT_SYMBOL_GPL(extdst_last_control_word);
+
+void extdst_pixel_cnt(struct dpu_extdst *ed, u16 *x, u16 *y)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, CURPIXELCNT);
+	mutex_unlock(&ed->mutex);
+
+	*x = get_xval(val);
+	*y = get_yval(val);
+}
+EXPORT_SYMBOL_GPL(extdst_pixel_cnt);
+
+void extdst_last_pixel_cnt(struct dpu_extdst *ed, u16 *x, u16 *y)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, LASTPIXELCNT);
+	mutex_unlock(&ed->mutex);
+
+	*x = get_xval(val);
+	*y = get_yval(val);
+}
+EXPORT_SYMBOL_GPL(extdst_last_pixel_cnt);
+
+u32 extdst_perfresult(struct dpu_extdst *ed)
+{
+	u32 val;
+
+	mutex_lock(&ed->mutex);
+	val = dpu_ed_read(ed, PERFCOUNTER);
+	mutex_unlock(&ed->mutex);
+
+	return val;
+}
+EXPORT_SYMBOL_GPL(extdst_perfresult);
+
+bool extdst_is_master(struct dpu_extdst *ed)
+{
+	const struct dpu_data *data = ed->dpu->data;
+
+	return ed->id == data->master_stream_id;
+}
+EXPORT_SYMBOL_GPL(extdst_is_master);
+
+struct dpu_extdst *dpu_ed_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_extdst *ed;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(ed_ids); i++)
+		if (ed_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(ed_ids))
+		return ERR_PTR(-EINVAL);
+
+	ed = dpu->ed_priv[i];
+
+	mutex_lock(&ed->mutex);
+
+	if (ed->inuse) {
+		mutex_unlock(&ed->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	ed->inuse = true;
+
+	mutex_unlock(&ed->mutex);
+
+	return ed;
+}
+EXPORT_SYMBOL_GPL(dpu_ed_get);
+
+void dpu_ed_put(struct dpu_extdst *ed)
+{
+	mutex_lock(&ed->mutex);
+
+	ed->inuse = false;
+
+	mutex_unlock(&ed->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_ed_put);
+
+struct dpu_extdst *dpu_aux_ed_peek(struct dpu_extdst *ed)
+{
+	unsigned int aux_id = ed->id ^ 1;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(ed_ids); i++)
+		if (ed_ids[i] == aux_id)
+			return ed->dpu->ed_priv[i];
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(dpu_aux_ed_peek);
+
+void _dpu_ed_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_extdst *ed;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(ed_ids); i++)
+		if (ed_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(ed_ids)))
+		return;
+
+	ed = dpu->ed_priv[i];
+
+	extdst_pixengcfg_src_sel(ed, ED_SRC_DISABLE);
+	extdst_pixengcfg_shden(ed, true);
+	extdst_pixengcfg_powerdown(ed, false);
+	extdst_pixengcfg_sync_mode(ed, SINGLE);
+	extdst_pixengcfg_reset(ed, false);
+	extdst_pixengcfg_div(ed, DIV_RESET);
+	extdst_shden(ed, true);
+	extdst_perfcountmode(ed, false);
+	extdst_kick_mode(ed, EXTERNAL);
+}
+
+int dpu_ed_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_extdst *ed;
+	int ret, i;
+
+	ed = devm_kzalloc(dpu->dev, sizeof(*ed), GFP_KERNEL);
+	if (!ed)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(ed_ids); i++)
+		if (ed_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(ed_ids))
+		return -EINVAL;
+
+	dpu->ed_priv[i] = ed;
+
+	ed->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_32);
+	if (!ed->pec_base)
+		return -ENOMEM;
+
+	ed->base = devm_ioremap(dpu->dev, base, SZ_64);
+	if (!ed->base)
+		return -ENOMEM;
+
+	ed->dpu = dpu;
+	ed->id = id;
+	mutex_init(&ed->mutex);
+
+	ret = extdst_pixengcfg_src_sel(ed, ED_SRC_DISABLE);
+	if (ret < 0)
+		return ret;
+
+	_dpu_ed_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-fetchdecode.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-fetchdecode.c
@@ -0,0 +1,673 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drm_blend.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+static const u32 fd_vproc_cap[2] = {
+	DPU_VPROC_CAP_HSCALER4 | DPU_VPROC_CAP_VSCALER4 |
+	DPU_VPROC_CAP_FETCHECO0,
+	DPU_VPROC_CAP_HSCALER5 | DPU_VPROC_CAP_VSCALER5 |
+	DPU_VPROC_CAP_FETCHECO1,
+};
+
+#define PIXENGCFG_DYNAMIC		0x8
+static const fd_dynamic_src_sel_t fd_srcs[2][4] = {
+	{
+	  FD_SRC_DISABLE,	FD_SRC_FETCHECO0,
+	  FD_SRC_FETCHDECODE1,	FD_SRC_FETCHWARP2
+	}, {
+	  FD_SRC_DISABLE,	FD_SRC_FETCHECO1,
+	  FD_SRC_FETCHDECODE0,	FD_SRC_FETCHWARP2
+	},
+};
+
+#define PIXENGCFG_STATUS		0xC
+
+#define RINGBUFSTARTADDR0		0x10
+#define RINGBUFWRAPADDR0		0x14
+#define FRAMEPROPERTIES0		0x18
+#define BASEADDRESS0			0x1C
+#define SOURCEBUFFERATTRIBUTES0		0x20
+#define SOURCEBUFFERDIMENSION0		0x24
+#define COLORCOMPONENTBITS0		0x28
+#define COLORCOMPONENTSHIFT0		0x2C
+#define LAYEROFFSET0			0x30
+#define CLIPWINDOWOFFSET0		0x34
+#define CLIPWINDOWDIMENSIONS0		0x38
+#define CONSTANTCOLOR0			0x3C
+#define LAYERPROPERTY0			0x40
+#define FRAMEDIMENSIONS			0x44
+#define FRAMERESAMPLING			0x48
+#define DECODECONTROL			0x4C
+#define SOURCEBUFFERLENGTH		0x50
+#define CONTROL				0x54
+#define CONTROLTRIGGER			0x58
+#define START				0x5C
+#define FETCHTYPE			0x60
+#define DECODERSTATUS			0x64
+#define READADDRESS0			0x68
+#define BURSTBUFFERPROPERTIES		0x6C
+#define STATUS				0x70
+#define HIDDENSTATUS			0x74
+
+struct dpu_fetchdecode {
+	struct dpu_fetchunit fu;
+	fetchtype_t fetchtype;
+};
+
+int fetchdecode_pixengcfg_dynamic_src_sel(struct dpu_fetchunit *fu,
+					  fd_dynamic_src_sel_t src)
+{
+	int i;
+
+	mutex_lock(&fu->mutex);
+	for (i = 0; i < 4; i++) {
+		if (fd_srcs[fu->id][i] == src) {
+			dpu_pec_fu_write(fu, PIXENGCFG_DYNAMIC, src);
+			mutex_unlock(&fu->mutex);
+			return 0;
+		}
+	}
+	mutex_unlock(&fu->mutex);
+
+	return -EINVAL;
+}
+EXPORT_SYMBOL_GPL(fetchdecode_pixengcfg_dynamic_src_sel);
+
+static void
+fetchdecode_set_baseaddress(struct dpu_fetchunit *fu, unsigned int width,
+			    unsigned int x_offset, unsigned int y_offset,
+			    unsigned int mt_w, unsigned int mt_h,
+			    int bpp, dma_addr_t baddr)
+{
+	unsigned int burst_size, stride;
+	bool nonzero_mod = !!mt_w;
+
+	if (nonzero_mod) {
+		/* consider PRG x offset to calculate buffer address */
+		baddr += (x_offset % mt_w) * (bpp / 8);
+
+		burst_size = fetchunit_burst_size_fixup_tkt343664(baddr);
+
+		stride = width * (bpp / 8);
+		stride = fetchunit_stride_fixup_tkt339017(stride, burst_size,
+							  baddr, nonzero_mod);
+
+		/* consider PRG y offset to calculate buffer address */
+		baddr += (y_offset % mt_h) * stride;
+	}
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, BASEADDRESS0, baddr);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetchdecode_set_src_bpp(struct dpu_fetchunit *fu, int bpp)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, SOURCEBUFFERATTRIBUTES0);
+	val &= ~0x3f0000;
+	val |= BITSPERPIXEL(bpp);
+	dpu_fu_write(fu, SOURCEBUFFERATTRIBUTES0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void
+fetchdecode_set_src_stride(struct dpu_fetchunit *fu,
+			   unsigned int width, unsigned int x_offset,
+			   unsigned int mt_w, int bpp, unsigned int stride,
+			   dma_addr_t baddr, bool use_prefetch)
+{
+	unsigned int burst_size;
+	bool nonzero_mod = !!mt_w;
+	u32 val;
+
+	if (use_prefetch) {
+		/* consider PRG x offset to calculate buffer address */
+		if (nonzero_mod)
+			baddr += (x_offset % mt_w) * (bpp / 8);
+
+		burst_size = fetchunit_burst_size_fixup_tkt343664(baddr);
+
+		stride = width * (bpp / 8);
+		stride = fetchunit_stride_fixup_tkt339017(stride, burst_size,
+							  baddr, nonzero_mod);
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, SOURCEBUFFERATTRIBUTES0);
+	val &= ~0xffff;
+	val |= STRIDE(stride);
+	dpu_fu_write(fu, SOURCEBUFFERATTRIBUTES0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void
+fetchdecode_set_src_buf_dimensions(struct dpu_fetchunit *fu,
+				   unsigned int w, unsigned int h,
+				   u32 unused, bool deinterlace)
+{
+	u32 val;
+
+	if (deinterlace)
+		h /= 2;
+
+	val = LINEWIDTH(w) | LINECOUNT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, SOURCEBUFFERDIMENSION0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetchdecode_set_fmt(struct dpu_fetchunit *fu,
+				u32 fmt,
+				enum drm_color_encoding color_encoding,
+				enum drm_color_range color_range,
+				bool deinterlace)
+{
+	u32 val, bits, shift;
+	bool is_planar_yuv = false, is_rastermode_yuv422 = false;
+	bool is_yuv422upsamplingmode_interpolate = false;
+	bool is_inputselect_compact = false;
+	bool need_csc = false;
+	int i;
+
+	switch (fmt) {
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+		is_rastermode_yuv422 = true;
+		is_yuv422upsamplingmode_interpolate = true;
+		need_csc = true;
+		break;
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+		is_yuv422upsamplingmode_interpolate = true;
+		/* fall-through */
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		if (deinterlace)
+			is_yuv422upsamplingmode_interpolate = true;
+		is_planar_yuv = true;
+		is_rastermode_yuv422 = true;
+		is_inputselect_compact = true;
+		need_csc = true;
+		break;
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		is_planar_yuv = true;
+		is_yuv422upsamplingmode_interpolate = true;
+		is_inputselect_compact = true;
+		need_csc = true;
+		break;
+	default:
+		break;
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, CONTROL);
+	val &= ~YUV422UPSAMPLINGMODE_MASK;
+	val &= ~INPUTSELECT_MASK;
+	val &= ~RASTERMODE_MASK;
+	if (is_yuv422upsamplingmode_interpolate)
+		val |= YUV422UPSAMPLINGMODE(YUV422UPSAMPLINGMODE__INTERPOLATE);
+	else
+		val |= YUV422UPSAMPLINGMODE(YUV422UPSAMPLINGMODE__REPLICATE);
+	if (is_inputselect_compact)
+		val |= INPUTSELECT(INPUTSELECT__COMPPACK);
+	else
+		val |= INPUTSELECT(INPUTSELECT__INACTIVE);
+	if (is_rastermode_yuv422)
+		val |= RASTERMODE(RASTERMODE__YUV422);
+	else
+		val |= RASTERMODE(RASTERMODE__NORMAL);
+	dpu_fu_write(fu, CONTROL, val);
+
+	val = dpu_fu_read(fu, LAYERPROPERTY0);
+	val &= ~YUVCONVERSIONMODE_MASK;
+	if (need_csc) {
+		/* assuming fetchdecode always ouputs RGB pixel formats */
+		if (color_encoding == DRM_COLOR_YCBCR_BT709)
+			val |= YUVCONVERSIONMODE(YUVCONVERSIONMODE__ITU709);
+		else if (color_encoding == DRM_COLOR_YCBCR_BT601 &&
+			 color_range == DRM_COLOR_YCBCR_FULL_RANGE)
+			val |= YUVCONVERSIONMODE(YUVCONVERSIONMODE__ITU601_FR);
+		else
+			val |= YUVCONVERSIONMODE(YUVCONVERSIONMODE__ITU601);
+	} else {
+		val |= YUVCONVERSIONMODE(YUVCONVERSIONMODE__OFF);
+	}
+	dpu_fu_write(fu, LAYERPROPERTY0, val);
+	mutex_unlock(&fu->mutex);
+
+	for (i = 0; i < ARRAY_SIZE(dpu_pixel_format_matrix); i++) {
+		if (dpu_pixel_format_matrix[i].pixel_format == fmt) {
+			bits = dpu_pixel_format_matrix[i].bits;
+			shift = dpu_pixel_format_matrix[i].shift;
+
+			if (is_planar_yuv) {
+				bits &= ~(U_BITS_MASK | V_BITS_MASK);
+				shift &= ~(U_SHIFT_MASK | V_SHIFT_MASK);
+			}
+
+			mutex_lock(&fu->mutex);
+			dpu_fu_write(fu, COLORCOMPONENTBITS0, bits);
+			dpu_fu_write(fu, COLORCOMPONENTSHIFT0, shift);
+			mutex_unlock(&fu->mutex);
+			return;
+		}
+	}
+
+	WARN_ON(1);
+}
+
+void fetchdecode_layeroffset(struct dpu_fetchunit *fu, unsigned int x,
+			     unsigned int y)
+{
+	u32 val;
+
+	val = LAYERXOFFSET(x) | LAYERYOFFSET(y);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, LAYEROFFSET0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_layeroffset);
+
+void fetchdecode_clipoffset(struct dpu_fetchunit *fu, unsigned int x,
+			    unsigned int y)
+{
+	u32 val;
+
+	val = CLIPWINDOWXOFFSET(x) | CLIPWINDOWYOFFSET(y);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CLIPWINDOWOFFSET0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_clipoffset);
+
+static void
+fetchdecode_set_pixel_blend_mode(struct dpu_fetchunit *fu,
+				 unsigned int pixel_blend_mode, u16 alpha,
+				 u32 fb_format)
+{
+	u32 mode = 0, val;
+
+	if (pixel_blend_mode == DRM_MODE_BLEND_PREMULTI ||
+	    pixel_blend_mode == DRM_MODE_BLEND_COVERAGE) {
+		mode = ALPHACONSTENABLE;
+
+		switch (fb_format) {
+		case DRM_FORMAT_ARGB8888:
+		case DRM_FORMAT_ABGR8888:
+		case DRM_FORMAT_RGBA8888:
+		case DRM_FORMAT_BGRA8888:
+			mode |= ALPHASRCENABLE;
+			break;
+		}
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY0);
+	val &= ~(PREMULCONSTRGB | ALPHA_ENABLE_MASK | RGB_ENABLE_MASK);
+	val |= mode;
+	dpu_fu_write(fu, LAYERPROPERTY0, val);
+
+	val = dpu_fu_read(fu, CONSTANTCOLOR0);
+	val &= ~CONSTANTALPHA_MASK;
+	val |= CONSTANTALPHA(alpha >> 8);
+	dpu_fu_write(fu, CONSTANTCOLOR0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetchdecode_enable_src_buf(struct dpu_fetchunit *fu)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY0);
+	val |= SOURCEBUFFERENABLE;
+	dpu_fu_write(fu, LAYERPROPERTY0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetchdecode_disable_src_buf(struct dpu_fetchunit *fu)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY0);
+	val &= ~SOURCEBUFFERENABLE;
+	dpu_fu_write(fu, LAYERPROPERTY0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static bool fetchdecode_is_enabled(struct dpu_fetchunit *fu)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY0);
+	mutex_unlock(&fu->mutex);
+
+	return !!(val & SOURCEBUFFERENABLE);
+}
+
+void fetchdecode_clipdimensions(struct dpu_fetchunit *fu, unsigned int w,
+				unsigned int h)
+{
+	u32 val;
+
+	val = CLIPWINDOWWIDTH(w) | CLIPWINDOWHEIGHT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CLIPWINDOWDIMENSIONS0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_clipdimensions);
+
+static void
+fetchdecode_set_framedimensions(struct dpu_fetchunit *fu,
+				unsigned int w, unsigned int h,
+				bool deinterlace)
+{
+	u32 val;
+
+	if (deinterlace)
+		h /= 2;
+
+	val = FRAMEWIDTH(w) | FRAMEHEIGHT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, FRAMEDIMENSIONS, val);
+	mutex_unlock(&fu->mutex);
+}
+
+void fetchdecode_rgb_constantcolor(struct dpu_fetchunit *fu,
+					u8 r, u8 g, u8 b, u8 a)
+{
+	u32 val;
+
+	val = rgb_color(r, g, b, a);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONSTANTCOLOR0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_rgb_constantcolor);
+
+void fetchdecode_yuv_constantcolor(struct dpu_fetchunit *fu, u8 y, u8 u, u8 v)
+{
+	u32 val;
+
+	val = yuv_color(y, u, v);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONSTANTCOLOR0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_yuv_constantcolor);
+
+static void fetchdecode_set_controltrigger(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONTROLTRIGGER, SHDTOKGEN);
+	mutex_unlock(&fu->mutex);
+}
+
+int fetchdecode_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type)
+{
+	struct dpu_soc *dpu = fu->dpu;
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, FETCHTYPE);
+	val &= FETCHTYPE_MASK;
+	mutex_unlock(&fu->mutex);
+
+	switch (val) {
+	case FETCHTYPE__DECODE:
+	case FETCHTYPE__LAYER:
+	case FETCHTYPE__WARP:
+	case FETCHTYPE__ECO:
+	case FETCHTYPE__PERSP:
+	case FETCHTYPE__ROT:
+	case FETCHTYPE__DECODEL:
+	case FETCHTYPE__LAYERL:
+	case FETCHTYPE__ROTL:
+		break;
+	default:
+		dev_warn(dpu->dev, "Invalid fetch type %u for FetchDecode%d\n",
+				val, fu->id);
+		return -EINVAL;
+	}
+
+	*type = val;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(fetchdecode_fetchtype);
+
+u32 fetchdecode_get_vproc_mask(struct dpu_fetchunit *fu)
+{
+	return fd_vproc_cap[fu->id];
+}
+EXPORT_SYMBOL_GPL(fetchdecode_get_vproc_mask);
+
+struct dpu_fetchunit *fetchdecode_get_fetcheco(struct dpu_fetchunit *fu)
+{
+	struct dpu_soc *dpu = fu->dpu;
+
+	switch (fu->id) {
+	case 0:
+	case 1:
+		return dpu->fe_priv[fu->id];
+	default:
+		WARN_ON(1);
+	}
+
+	return ERR_PTR(-EINVAL);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_get_fetcheco);
+
+bool fetchdecode_need_fetcheco(struct dpu_fetchunit *fu, u32 fmt)
+{
+	struct dpu_fetchunit *fe = fetchdecode_get_fetcheco(fu);
+
+	if (IS_ERR_OR_NULL(fe))
+		return false;
+
+	switch (fmt) {
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		return true;
+	}
+
+	return false;
+}
+EXPORT_SYMBOL_GPL(fetchdecode_need_fetcheco);
+
+struct dpu_hscaler *fetchdecode_get_hscaler(struct dpu_fetchunit *fu)
+{
+	struct dpu_soc *dpu = fu->dpu;
+
+	switch (fu->id) {
+	case 0:
+	case 2:
+		return dpu->hs_priv[0];
+	case 1:
+	case 3:
+		return dpu->hs_priv[1];
+	default:
+		WARN_ON(1);
+	}
+
+	return ERR_PTR(-EINVAL);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_get_hscaler);
+
+struct dpu_vscaler *fetchdecode_get_vscaler(struct dpu_fetchunit *fu)
+{
+	struct dpu_soc *dpu = fu->dpu;
+
+	switch (fu->id) {
+	case 0:
+	case 2:
+		return dpu->vs_priv[0];
+	case 1:
+	case 3:
+		return dpu->vs_priv[1];
+	default:
+		WARN_ON(1);
+	}
+
+	return ERR_PTR(-EINVAL);
+}
+EXPORT_SYMBOL_GPL(fetchdecode_get_vscaler);
+
+struct dpu_fetchunit *dpu_fd_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fd_ids); i++)
+		if (fd_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fd_ids))
+		return ERR_PTR(-EINVAL);
+
+	fu = dpu->fd_priv[i];
+
+	mutex_lock(&fu->mutex);
+
+	if (fu->inuse) {
+		mutex_unlock(&fu->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	fu->inuse = true;
+
+	mutex_unlock(&fu->mutex);
+
+	return fu;
+}
+EXPORT_SYMBOL_GPL(dpu_fd_get);
+
+void dpu_fd_put(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+
+	fu->inuse = false;
+
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_fd_put);
+
+static const struct dpu_fetchunit_ops fd_ops = {
+	.set_burstlength	= fetchunit_set_burstlength,
+	.set_baseaddress	= fetchdecode_set_baseaddress,
+	.set_src_bpp		= fetchdecode_set_src_bpp,
+	.set_src_stride		= fetchdecode_set_src_stride,
+	.set_src_buf_dimensions	= fetchdecode_set_src_buf_dimensions,
+	.set_fmt		= fetchdecode_set_fmt,
+	.set_pixel_blend_mode	= fetchdecode_set_pixel_blend_mode,
+	.enable_src_buf		= fetchdecode_enable_src_buf,
+	.disable_src_buf	= fetchdecode_disable_src_buf,
+	.is_enabled		= fetchdecode_is_enabled,
+	.set_framedimensions	= fetchdecode_set_framedimensions,
+	.set_controltrigger	= fetchdecode_set_controltrigger,
+	.get_stream_id		= fetchunit_get_stream_id,
+	.set_stream_id		= fetchunit_set_stream_id,
+};
+
+void _dpu_fd_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fd_ids); i++)
+		if (fd_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(fd_ids)))
+		return;
+
+	fu = dpu->fd_priv[i];
+
+	fetchdecode_pixengcfg_dynamic_src_sel(fu, FD_SRC_DISABLE);
+	fetchunit_baddr_autoupdate(fu, 0x0);
+	fetchunit_shden(fu, true);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, BURSTBUFFERMANAGEMENT,
+			SETNUMBUFFERS(16) | SETBURSTLENGTH(16));
+	mutex_unlock(&fu->mutex);
+}
+
+int dpu_fd_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_fetchdecode *fd;
+	struct dpu_fetchunit *fu;
+	int ret;
+
+	fd = devm_kzalloc(dpu->dev, sizeof(*fd), GFP_KERNEL);
+	if (!fd)
+		return -ENOMEM;
+
+	fu = &fd->fu;
+	dpu->fd_priv[id] = fu;
+
+	fu->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_16);
+	if (!fu->pec_base)
+		return -ENOMEM;
+
+	fu->base = devm_ioremap(dpu->dev, base, SZ_1K);
+	if (!fu->base)
+		return -ENOMEM;
+
+	fu->dpu = dpu;
+	fu->id = id;
+	fu->type = FU_T_FD;
+	fu->ops = &fd_ops;
+	fu->name = "fetchdecode";
+
+	mutex_init(&fu->mutex);
+
+	ret = fetchdecode_pixengcfg_dynamic_src_sel(fu, FD_SRC_DISABLE);
+	if (ret < 0)
+		return ret;
+
+	ret = fetchdecode_fetchtype(fu, &fd->fetchtype);
+	if (ret < 0)
+		return ret;
+
+	_dpu_fd_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-fetcheco.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-fetcheco.c
@@ -0,0 +1,407 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define BASEADDRESS0			0x10
+#define SOURCEBUFFERATTRIBUTES0		0x14
+#define SOURCEBUFFERDIMENSION0		0x18
+#define COLORCOMPONENTBITS0		0x1C
+#define COLORCOMPONENTSHIFT0		0x20
+#define LAYEROFFSET0			0x24
+#define CLIPWINDOWOFFSET0		0x28
+#define CLIPWINDOWDIMENSIONS0		0x2C
+#define CONSTANTCOLOR0			0x30
+#define LAYERPROPERTY0			0x34
+#define FRAMEDIMENSIONS			0x38
+#define FRAMERESAMPLING			0x3C
+#define CONTROL				0x40
+#define CONTROLTRIGGER			0x44
+#define START				0x48
+#define FETCHTYPE			0x4C
+#define BURSTBUFFERPROPERTIES		0x50
+#define HIDDENSTATUS			0x54
+
+struct dpu_fetcheco {
+	struct dpu_fetchunit fu;
+};
+
+static void
+fetcheco_set_src_buf_dimensions(struct dpu_fetchunit *fu,
+				unsigned int w, unsigned int h,
+				u32 fmt, bool deinterlace)
+{
+	int width, height;
+	u32 val;
+
+	if (deinterlace) {
+		width = w;
+		height = h / 2;
+	} else {
+		width = dpu_format_plane_width(w, fmt, 1);
+		height = dpu_format_plane_height(h, fmt, 1);
+	}
+
+	switch (fmt) {
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		break;
+	default:
+		WARN(1, "Unsupported FetchEco pixel format 0x%08x\n", fmt);
+		return;
+	}
+
+	val = LINEWIDTH(width) | LINECOUNT(height);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, SOURCEBUFFERDIMENSION0, val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetcheco_set_fmt(struct dpu_fetchunit *fu,
+			     u32 fmt,
+			     enum drm_color_encoding unused1,
+			     enum drm_color_range unused2,
+			     bool unused3)
+{
+	u32 val, bits, shift;
+	int i, hsub, vsub;
+	unsigned int x, y;
+
+	switch (fmt) {
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+	case DRM_FORMAT_NV16:
+	case DRM_FORMAT_NV61:
+	case DRM_FORMAT_NV24:
+	case DRM_FORMAT_NV42:
+		break;
+	default:
+		WARN(1, "Unsupported FetchEco pixel format 0x%08x\n", fmt);
+		return;
+	}
+
+	hsub = dpu_format_horz_chroma_subsampling(fmt);
+	switch (hsub) {
+	case 1:
+		x = 0x4;
+		break;
+	case 2:
+		x = 0x2;
+		break;
+	default:
+		WARN_ON(1);
+		return;
+	}
+
+	vsub = dpu_format_vert_chroma_subsampling(fmt);
+	switch (vsub) {
+	case 1:
+		y = 0x4;
+		break;
+	case 2:
+		y = 0x2;
+		break;
+	default:
+		WARN_ON(1);
+		return;
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, FRAMERESAMPLING);
+	val &= ~(DELTAX_MASK | DELTAY_MASK);
+	val |= DELTAX(x) | DELTAY(y);
+	dpu_fu_write(fu, FRAMERESAMPLING, val);
+
+	val = dpu_fu_read(fu, CONTROL);
+	val &= ~RASTERMODE_MASK;
+	val |= RASTERMODE(RASTERMODE__NORMAL);
+	dpu_fu_write(fu, CONTROL, val);
+	mutex_unlock(&fu->mutex);
+
+	for (i = 0; i < ARRAY_SIZE(dpu_pixel_format_matrix); i++) {
+		if (dpu_pixel_format_matrix[i].pixel_format == fmt) {
+			bits = dpu_pixel_format_matrix[i].bits;
+			shift = dpu_pixel_format_matrix[i].shift;
+
+			bits &= ~Y_BITS_MASK;
+			shift &= ~Y_SHIFT_MASK;
+
+			mutex_lock(&fu->mutex);
+			dpu_fu_write(fu, COLORCOMPONENTBITS0, bits);
+			dpu_fu_write(fu, COLORCOMPONENTSHIFT0, shift);
+			mutex_unlock(&fu->mutex);
+			return;
+		}
+	}
+
+	WARN_ON(1);
+}
+
+void fetcheco_layeroffset(struct dpu_fetchunit *fu, unsigned int x,
+			  unsigned int y)
+{
+	u32 val;
+
+	val = LAYERXOFFSET(x) | LAYERYOFFSET(y);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, LAYEROFFSET0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetcheco_layeroffset);
+
+void fetcheco_clipoffset(struct dpu_fetchunit *fu, unsigned int x,
+			 unsigned int y)
+{
+	u32 val;
+
+	val = CLIPWINDOWXOFFSET(x) | CLIPWINDOWYOFFSET(y);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CLIPWINDOWOFFSET0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetcheco_clipoffset);
+
+void fetcheco_clipdimensions(struct dpu_fetchunit *fu, unsigned int w,
+			     unsigned int h)
+{
+	u32 val;
+
+	val = CLIPWINDOWWIDTH(w) | CLIPWINDOWHEIGHT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CLIPWINDOWDIMENSIONS0, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetcheco_clipdimensions);
+
+static void
+fetcheco_set_framedimensions(struct dpu_fetchunit *fu,
+			     unsigned int w, unsigned int h,
+			     bool deinterlace)
+{
+	u32 val;
+
+	if (deinterlace)
+		h /= 2;
+
+	val = FRAMEWIDTH(w) | FRAMEHEIGHT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, FRAMEDIMENSIONS, val);
+	mutex_unlock(&fu->mutex);
+}
+
+void fetcheco_frameresampling(struct dpu_fetchunit *fu, unsigned int x,
+			      unsigned int y)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, FRAMERESAMPLING);
+	val &= ~(DELTAX_MASK | DELTAY_MASK);
+	val |= DELTAX(x) | DELTAY(y);
+	dpu_fu_write(fu, FRAMERESAMPLING, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetcheco_frameresampling);
+
+static void fetcheco_set_controltrigger(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONTROLTRIGGER, SHDTOKGEN);
+	mutex_unlock(&fu->mutex);
+}
+
+int fetcheco_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type)
+{
+	struct dpu_soc *dpu = fu->dpu;
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, FETCHTYPE);
+	val &= FETCHTYPE_MASK;
+	mutex_unlock(&fu->mutex);
+
+	switch (val) {
+	case FETCHTYPE__DECODE:
+	case FETCHTYPE__LAYER:
+	case FETCHTYPE__WARP:
+	case FETCHTYPE__ECO:
+	case FETCHTYPE__PERSP:
+	case FETCHTYPE__ROT:
+	case FETCHTYPE__DECODEL:
+	case FETCHTYPE__LAYERL:
+	case FETCHTYPE__ROTL:
+		break;
+	default:
+		dev_warn(dpu->dev, "Invalid fetch type %u for FetchEco%d\n",
+				val, fu->id);
+		return -EINVAL;
+	}
+
+	*type = val;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(fetcheco_fetchtype);
+
+dpu_block_id_t fetcheco_get_block_id(struct dpu_fetchunit *fu)
+{
+	switch (fu->id) {
+	case 0:
+		return ID_FETCHECO0;
+	case 1:
+		return ID_FETCHECO1;
+	case 2:
+		return ID_FETCHECO2;
+	case 9:
+		return ID_FETCHECO9;
+	default:
+		WARN_ON(1);
+	}
+
+	return ID_NONE;
+}
+EXPORT_SYMBOL_GPL(fetcheco_get_block_id);
+
+struct dpu_fetchunit *dpu_fe_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fe_ids); i++)
+		if (fe_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fe_ids))
+		return ERR_PTR(-EINVAL);
+
+	fu = dpu->fe_priv[i];
+
+	mutex_lock(&fu->mutex);
+
+	if (fu->inuse) {
+		mutex_unlock(&fu->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	fu->inuse = true;
+
+	mutex_unlock(&fu->mutex);
+
+	return fu;
+}
+EXPORT_SYMBOL_GPL(dpu_fe_get);
+
+void dpu_fe_put(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+
+	fu->inuse = false;
+
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_fe_put);
+
+static const struct dpu_fetchunit_ops fe_ops = {
+	.set_burstlength	= fetchunit_set_burstlength,
+	.set_baseaddress	= fetchunit_set_baseaddress,
+	.set_src_bpp		= fetchunit_set_src_bpp,
+	.set_src_stride		= fetchunit_set_src_stride,
+	.set_src_buf_dimensions	= fetcheco_set_src_buf_dimensions,
+	.set_fmt		= fetcheco_set_fmt,
+	.enable_src_buf		= fetchunit_enable_src_buf,
+	.disable_src_buf	= fetchunit_disable_src_buf,
+	.is_enabled		= fetchunit_is_enabled,
+	.set_framedimensions	= fetcheco_set_framedimensions,
+	.set_controltrigger	= fetcheco_set_controltrigger,
+	.get_stream_id		= fetchunit_get_stream_id,
+	.set_stream_id		= fetchunit_set_stream_id,
+};
+
+void _dpu_fe_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fe_ids); i++)
+		if (fe_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(fe_ids)))
+		return;
+
+	fu = dpu->fe_priv[i];
+
+	fetchunit_shden(fu, true);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, BURSTBUFFERMANAGEMENT,
+			SETNUMBUFFERS(16) | SETBURSTLENGTH(16));
+	mutex_unlock(&fu->mutex);
+}
+
+int dpu_fe_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_fetcheco *fe;
+	struct dpu_fetchunit *fu;
+	int i;
+
+	fe = devm_kzalloc(dpu->dev, sizeof(*fe), GFP_KERNEL);
+	if (!fe)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(fe_ids); i++)
+		if (fe_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fe_ids))
+		return -EINVAL;
+
+	fu = &fe->fu;
+	dpu->fe_priv[i] = fu;
+
+	fu->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_16);
+	if (!fu->pec_base)
+		return -ENOMEM;
+
+	fu->base = devm_ioremap(dpu->dev, base, SZ_128);
+	if (!fu->base)
+		return -ENOMEM;
+
+	fu->dpu = dpu;
+	fu->id = id;
+	fu->type = FU_T_FE;
+	fu->ops = &fe_ops;
+	fu->name = "fetcheco";
+
+	mutex_init(&fu->mutex);
+
+	_dpu_fe_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-fetchlayer.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-fetchlayer.c
@@ -0,0 +1,294 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_STATUS		0x8
+#define BASEADDRESS(n)			(0x10 + (n) * 0x28)
+#define SOURCEBUFFERATTRIBUTES(n)	(0x14 + (n) * 0x28)
+#define SOURCEBUFFERDIMENSION(n)	(0x18 + (n) * 0x28)
+#define COLORCOMPONENTBITS(n)		(0x1C + (n) * 0x28)
+#define COLORCOMPONENTSHIFT(n)		(0x20 + (n) * 0x28)
+#define LAYEROFFSET(n)			(0x24 + (n) * 0x28)
+#define CLIPWINDOWOFFSET(n)		(0x28 + (n) * 0x28)
+#define CLIPWINDOWDIMENSIONS(n)		(0x2C + (n) * 0x28)
+#define CONSTANTCOLOR(n)		(0x30 + (n) * 0x28)
+#define LAYERPROPERTY(n)		(0x34 + (n) * 0x28)
+#define FRAMEDIMENSIONS			0x150
+#define FRAMERESAMPLING			0x154
+#define CONTROL				0x158
+#define TRIGGERENABLE			0x15C
+#define SHDLDREQ(lm)			((lm) & 0xFF)
+#define CONTROLTRIGGER			0x160
+#define START				0x164
+#define FETCHTYPE			0x168
+#define BURSTBUFFERPROPERTIES		0x16C
+#define STATUS				0x170
+#define HIDDENSTATUS			0x174
+
+struct dpu_fetchlayer {
+	struct dpu_fetchunit fu;
+	fetchtype_t fetchtype;
+};
+
+static void
+fetchlayer_set_src_buf_dimensions(struct dpu_fetchunit *fu,
+				  unsigned int w, unsigned int h,
+				  u32 unused1, bool unused2)
+{
+	u32 val;
+
+	val = LINEWIDTH(w) | LINECOUNT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, SOURCEBUFFERDIMENSION(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetchlayer_set_fmt(struct dpu_fetchunit *fu,
+			       u32 fmt,
+			       enum drm_color_encoding color_encoding,
+			       enum drm_color_range color_range,
+			       bool unused)
+{
+	u32 val, bits, shift;
+	int i, sub_id = fu->sub_id;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY(sub_id));
+	val &= ~YUVCONVERSIONMODE_MASK;
+	val |= YUVCONVERSIONMODE(YUVCONVERSIONMODE__OFF);
+	dpu_fu_write(fu, LAYERPROPERTY(sub_id), val);
+	mutex_unlock(&fu->mutex);
+
+	for (i = 0; i < ARRAY_SIZE(dpu_pixel_format_matrix); i++) {
+		if (dpu_pixel_format_matrix[i].pixel_format == fmt) {
+			bits = dpu_pixel_format_matrix[i].bits;
+			shift = dpu_pixel_format_matrix[i].shift;
+
+			mutex_lock(&fu->mutex);
+			dpu_fu_write(fu, COLORCOMPONENTBITS(sub_id), bits);
+			dpu_fu_write(fu, COLORCOMPONENTSHIFT(sub_id), shift);
+			mutex_unlock(&fu->mutex);
+			return;
+		}
+	}
+
+	WARN_ON(1);
+}
+
+static void
+fetchlayer_set_framedimensions(struct dpu_fetchunit *fu, unsigned int w,
+			       unsigned int h, bool unused)
+{
+	u32 val;
+
+	val = FRAMEWIDTH(w) | FRAMEHEIGHT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, FRAMEDIMENSIONS, val);
+	mutex_unlock(&fu->mutex);
+}
+
+void fetchlayer_rgb_constantcolor(struct dpu_fetchunit *fu,
+					u8 r, u8 g, u8 b, u8 a)
+{
+	u32 val;
+
+	val = rgb_color(r, g, b, a);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONSTANTCOLOR(fu->id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchlayer_rgb_constantcolor);
+
+void fetchlayer_yuv_constantcolor(struct dpu_fetchunit *fu, u8 y, u8 u, u8 v)
+{
+	u32 val;
+
+	val = yuv_color(y, u, v);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONSTANTCOLOR(fu->id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchlayer_yuv_constantcolor);
+
+static void fetchlayer_set_controltrigger(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONTROLTRIGGER, SHDTOKGEN);
+	mutex_unlock(&fu->mutex);
+}
+
+int fetchlayer_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type)
+{
+	struct dpu_soc *dpu = fu->dpu;
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, FETCHTYPE);
+	val &= FETCHTYPE_MASK;
+	mutex_unlock(&fu->mutex);
+
+	switch (val) {
+	case FETCHTYPE__DECODE:
+	case FETCHTYPE__LAYER:
+	case FETCHTYPE__WARP:
+	case FETCHTYPE__ECO:
+	case FETCHTYPE__PERSP:
+	case FETCHTYPE__ROT:
+	case FETCHTYPE__DECODEL:
+	case FETCHTYPE__LAYERL:
+	case FETCHTYPE__ROTL:
+		break;
+	default:
+		dev_warn(dpu->dev, "Invalid fetch type %u for FetchLayer%d\n",
+				val, fu->id);
+		return -EINVAL;
+	}
+
+	*type = val;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(fetchlayer_fetchtype);
+
+struct dpu_fetchunit *dpu_fl_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fl_ids); i++)
+		if (fl_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fl_ids))
+		return ERR_PTR(-EINVAL);
+
+	fu = dpu->fl_priv[i];
+
+	mutex_lock(&fu->mutex);
+
+	if (fu->inuse) {
+		mutex_unlock(&fu->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	fu->inuse = true;
+
+	mutex_unlock(&fu->mutex);
+
+	return fu;
+}
+EXPORT_SYMBOL_GPL(dpu_fl_get);
+
+void dpu_fl_put(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+
+	fu->inuse = false;
+
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_fl_put);
+
+static const struct dpu_fetchunit_ops fl_ops = {
+	.set_burstlength	= fetchunit_set_burstlength,
+	.set_baseaddress	= fetchunit_set_baseaddress,
+	.set_src_bpp		= fetchunit_set_src_bpp,
+	.set_src_stride		= fetchunit_set_src_stride,
+	.set_src_buf_dimensions	= fetchlayer_set_src_buf_dimensions,
+	.set_fmt		= fetchlayer_set_fmt,
+	.set_pixel_blend_mode	= fetchunit_set_pixel_blend_mode,
+	.enable_src_buf		= fetchunit_enable_src_buf,
+	.disable_src_buf	= fetchunit_disable_src_buf,
+	.is_enabled		= fetchunit_is_enabled,
+	.set_framedimensions	= fetchlayer_set_framedimensions,
+	.set_controltrigger	= fetchlayer_set_controltrigger,
+	.get_stream_id		= fetchunit_get_stream_id,
+	.set_stream_id		= fetchunit_set_stream_id,
+};
+
+void _dpu_fl_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fl_ids); i++)
+		if (fl_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(fl_ids)))
+		return;
+
+	fu = dpu->fl_priv[i];
+
+	fetchunit_baddr_autoupdate(fu, 0x0);
+	fetchunit_shden(fu, true);
+	fetchunit_shdldreq_sticky(fu, 0xFF);
+	fetchunit_disable_src_buf(fu);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, BURSTBUFFERMANAGEMENT,
+			SETNUMBUFFERS(16) | SETBURSTLENGTH(16));
+	mutex_unlock(&fu->mutex);
+}
+
+int dpu_fl_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_fetchlayer *fl;
+	struct dpu_fetchunit *fu;
+	int ret;
+
+	fl = devm_kzalloc(dpu->dev, sizeof(*fl), GFP_KERNEL);
+	if (!fl)
+		return -ENOMEM;
+
+	fu = &fl->fu;
+	dpu->fl_priv[id] = fu;
+
+	fu->pec_base = devm_ioremap(dpu->dev, base, SZ_16);
+	if (!fu->pec_base)
+		return -ENOMEM;
+
+	fu->base = devm_ioremap(dpu->dev, base, SZ_512);
+	if (!fu->base)
+		return -ENOMEM;
+
+	fu->dpu = dpu;
+	fu->id = id;
+	fu->sub_id = 0;
+	fu->type = FU_T_FL;
+	fu->ops = &fl_ops;
+	fu->name = "fetchlayer";
+
+	mutex_init(&fu->mutex);
+
+	ret = fetchlayer_fetchtype(fu, &fl->fetchtype);
+	if (ret < 0)
+		return ret;
+
+	_dpu_fl_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-fetchunit.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-fetchunit.c
@@ -0,0 +1,346 @@
+/*
+ * Copyright 2018-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drm_blend.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define BASEADDRESS(n)			(0x10 + (n) * 0x28)
+#define SOURCEBUFFERATTRIBUTES(n)	(0x14 + (n) * 0x28)
+#define SOURCEBUFFERDIMENSION(n)	(0x18 + (n) * 0x28)
+#define COLORCOMPONENTBITS(n)		(0x1C + (n) * 0x28)
+#define COLORCOMPONENTSHIFT(n)		(0x20 + (n) * 0x28)
+#define LAYEROFFSET(n)			(0x24 + (n) * 0x28)
+#define CLIPWINDOWOFFSET(n)		(0x28 + (n) * 0x28)
+#define CLIPWINDOWDIMENSIONS(n)		(0x2C + (n) * 0x28)
+#define CONSTANTCOLOR(n)		(0x30 + (n) * 0x28)
+#define LAYERPROPERTY(n)		(0x34 + (n) * 0x28)
+
+/* base address has to align to burst size */
+unsigned int fetchunit_burst_size_fixup_tkt343664(dma_addr_t baddr)
+{
+	unsigned int burst_size;
+
+	burst_size = 1 << (ffs(baddr) - 1);
+	burst_size = round_up(burst_size, 8);
+	burst_size = min(burst_size, 128U);
+
+	return burst_size;
+}
+EXPORT_SYMBOL_GPL(fetchunit_burst_size_fixup_tkt343664);
+
+/* fixup for burst size vs stride mismatch */
+unsigned int
+fetchunit_stride_fixup_tkt339017(unsigned int stride, unsigned int burst_size,
+				 dma_addr_t baddr, bool nonzero_mod)
+{
+	if (nonzero_mod)
+		stride = round_up(stride + round_up(baddr % 8, 8), burst_size);
+	else
+		stride = round_up(stride, burst_size);
+
+	return stride;
+}
+EXPORT_SYMBOL_GPL(fetchunit_stride_fixup_tkt339017);
+
+void fetchunit_get_dprc(struct dpu_fetchunit *fu, void *data)
+{
+	if (WARN_ON(!fu))
+		return;
+
+	fu->dprc = data;
+}
+EXPORT_SYMBOL_GPL(fetchunit_get_dprc);
+
+void fetchunit_shden(struct dpu_fetchunit *fu, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, STATICCONTROL);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_fu_write(fu, STATICCONTROL, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_shden);
+
+void fetchunit_baddr_autoupdate(struct dpu_fetchunit *fu, u8 layer_mask)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, STATICCONTROL);
+	val &= ~BASEADDRESSAUTOUPDATE_MASK;
+	val |= BASEADDRESSAUTOUPDATE(layer_mask);
+	dpu_fu_write(fu, STATICCONTROL, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_baddr_autoupdate);
+
+void fetchunit_shdldreq_sticky(struct dpu_fetchunit *fu, u8 layer_mask)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, STATICCONTROL);
+	val &= ~SHDLDREQSTICKY_MASK;
+	val |= SHDLDREQSTICKY(layer_mask);
+	dpu_fu_write(fu, STATICCONTROL, val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_shdldreq_sticky);
+
+void fetchunit_set_burstlength(struct dpu_fetchunit *fu,
+			       unsigned int x_offset, unsigned int mt_w,
+			       int bpp, dma_addr_t baddr, bool use_prefetch)
+{
+	struct dpu_soc *dpu = fu->dpu;
+	unsigned int burst_size, burst_length;
+	bool nonzero_mod = !!mt_w;
+	u32 val;
+
+	if (use_prefetch) {
+		/* consider PRG x offset to calculate buffer address */
+		if (nonzero_mod)
+			baddr += (x_offset % mt_w) * (bpp / 8);
+
+		burst_size = fetchunit_burst_size_fixup_tkt343664(baddr);
+		burst_length = burst_size / 8;
+	} else {
+		burst_length = 16;
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, BURSTBUFFERMANAGEMENT);
+	val &= ~SETBURSTLENGTH_MASK;
+	val |= SETBURSTLENGTH(burst_length);
+	dpu_fu_write(fu, BURSTBUFFERMANAGEMENT, val);
+	mutex_unlock(&fu->mutex);
+
+	dev_dbg(dpu->dev, "%s%d burst length is %u\n",
+					fu->name, fu->id, burst_length);
+}
+EXPORT_SYMBOL_GPL(fetchunit_set_burstlength);
+
+void fetchunit_set_baseaddress(struct dpu_fetchunit *fu, unsigned int width,
+			       unsigned int x_offset, unsigned int y_offset,
+			       unsigned int mt_w, unsigned int mt_h,
+			       int bpp, dma_addr_t baddr)
+{
+	unsigned int burst_size, stride;
+	bool nonzero_mod = !!mt_w;
+
+	if (nonzero_mod) {
+		/* consider PRG x offset to calculate buffer address */
+		baddr += (x_offset % mt_w) * (bpp / 8);
+
+		burst_size = fetchunit_burst_size_fixup_tkt343664(baddr);
+
+		stride = width * (bpp / 8);
+		stride = fetchunit_stride_fixup_tkt339017(stride, burst_size,
+							  baddr, nonzero_mod);
+
+		/* consider PRG y offset to calculate buffer address */
+		baddr += (y_offset % mt_h) * stride;
+	}
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, BASEADDRESS(fu->sub_id), baddr);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_set_baseaddress);
+
+void fetchunit_set_src_bpp(struct dpu_fetchunit *fu, int bpp)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, SOURCEBUFFERATTRIBUTES(fu->sub_id));
+	val &= ~0x3f0000;
+	val |= BITSPERPIXEL(bpp);
+	dpu_fu_write(fu, SOURCEBUFFERATTRIBUTES(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_set_src_bpp);
+
+/*
+ * The arguments width and bpp are valid only when use_prefetch is true.
+ * For fetcheco, since the pixel format has to be NV12 or NV21 when
+ * use_prefetch is true, we assume width stands for how many UV we have
+ * in bytes for one line, while bpp should be 8bits for every U or V component.
+ */
+void fetchunit_set_src_stride(struct dpu_fetchunit *fu,
+			      unsigned int width, unsigned int x_offset,
+			      unsigned int mt_w, int bpp, unsigned int stride,
+			      dma_addr_t baddr, bool use_prefetch)
+{
+	unsigned int burst_size;
+	bool nonzero_mod = !!mt_w;
+	u32 val;
+
+	if (use_prefetch) {
+		/* consider PRG x offset to calculate buffer address */
+		if (nonzero_mod)
+			baddr += (x_offset % mt_w) * (bpp / 8);
+
+		burst_size = fetchunit_burst_size_fixup_tkt343664(baddr);
+
+		stride = width * (bpp / 8);
+		stride = fetchunit_stride_fixup_tkt339017(stride, burst_size,
+							  baddr, nonzero_mod);
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, SOURCEBUFFERATTRIBUTES(fu->sub_id));
+	val &= ~0xffff;
+	val |= STRIDE(stride);
+	dpu_fu_write(fu, SOURCEBUFFERATTRIBUTES(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_set_src_stride);
+
+void fetchunit_set_pixel_blend_mode(struct dpu_fetchunit *fu,
+				    unsigned int pixel_blend_mode, u16 alpha,
+				    u32 fb_format)
+{
+	u32 mode = 0, val;
+
+	if (pixel_blend_mode == DRM_MODE_BLEND_PREMULTI ||
+	    pixel_blend_mode == DRM_MODE_BLEND_COVERAGE) {
+		mode = ALPHACONSTENABLE;
+
+		switch (fb_format) {
+		case DRM_FORMAT_ARGB8888:
+		case DRM_FORMAT_ABGR8888:
+		case DRM_FORMAT_RGBA8888:
+		case DRM_FORMAT_BGRA8888:
+			mode |= ALPHASRCENABLE;
+			break;
+		}
+	}
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY(fu->sub_id));
+	val &= ~(PREMULCONSTRGB | ALPHA_ENABLE_MASK | RGB_ENABLE_MASK);
+	val |= mode;
+	dpu_fu_write(fu, LAYERPROPERTY(fu->sub_id), val);
+
+	val = dpu_fu_read(fu, CONSTANTCOLOR(fu->sub_id));
+	val &= ~CONSTANTALPHA_MASK;
+	val |= CONSTANTALPHA(alpha >> 8);
+	dpu_fu_write(fu, CONSTANTCOLOR(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_set_pixel_blend_mode);
+
+void fetchunit_enable_src_buf(struct dpu_fetchunit *fu)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY(fu->sub_id));
+	val |= SOURCEBUFFERENABLE;
+	dpu_fu_write(fu, LAYERPROPERTY(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_enable_src_buf);
+
+void fetchunit_disable_src_buf(struct dpu_fetchunit *fu)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY(fu->sub_id));
+	val &= ~SOURCEBUFFERENABLE;
+	dpu_fu_write(fu, LAYERPROPERTY(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchunit_disable_src_buf);
+
+bool fetchunit_is_enabled(struct dpu_fetchunit *fu)
+{
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY(fu->sub_id));
+	mutex_unlock(&fu->mutex);
+
+	return !!(val & SOURCEBUFFERENABLE);
+}
+EXPORT_SYMBOL_GPL(fetchunit_is_enabled);
+
+unsigned int fetchunit_get_stream_id(struct dpu_fetchunit *fu)
+{
+	if (WARN_ON(!fu))
+		return DPU_PLANE_SRC_DISABLED;
+
+	return fu->stream_id;
+}
+EXPORT_SYMBOL_GPL(fetchunit_get_stream_id);
+
+void fetchunit_set_stream_id(struct dpu_fetchunit *fu, unsigned int id)
+{
+	if (WARN_ON(!fu))
+		return;
+
+	switch (id) {
+	case DPU_PLANE_SRC_TO_DISP_STREAM0:
+	case DPU_PLANE_SRC_TO_DISP_STREAM1:
+	case DPU_PLANE_SRC_DISABLED:
+		fu->stream_id = id;
+		break;
+	default:
+		WARN_ON(1);
+	}
+}
+EXPORT_SYMBOL_GPL(fetchunit_set_stream_id);
+
+bool fetchunit_is_fetchdecode(struct dpu_fetchunit *fu)
+{
+	if (WARN_ON(!fu))
+		return false;
+
+	return fu->type == FU_T_FD;
+}
+EXPORT_SYMBOL_GPL(fetchunit_is_fetchdecode);
+
+bool fetchunit_is_fetcheco(struct dpu_fetchunit *fu)
+{
+	if (WARN_ON(!fu))
+		return false;
+
+	return fu->type == FU_T_FE;
+}
+EXPORT_SYMBOL_GPL(fetchunit_is_fetcheco);
+
+bool fetchunit_is_fetchlayer(struct dpu_fetchunit *fu)
+{
+	if (WARN_ON(!fu))
+		return false;
+
+	return fu->type == FU_T_FL;
+}
+EXPORT_SYMBOL_GPL(fetchunit_is_fetchlayer);
+
+bool fetchunit_is_fetchwarp(struct dpu_fetchunit *fu)
+{
+	if (WARN_ON(!fu))
+		return false;
+
+	return fu->type == FU_T_FW;
+}
+EXPORT_SYMBOL_GPL(fetchunit_is_fetchwarp);
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-fetchwarp.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-fetchwarp.c
@@ -0,0 +1,305 @@
+/*
+ * Copyright 2018-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_STATUS		0x8
+#define BASEADDRESS(n)			(0x10 + (n) * 0x28)
+#define SOURCEBUFFERATTRIBUTES(n)	(0x14 + (n) * 0x28)
+#define SOURCEBUFFERDIMENSION(n)	(0x18 + (n) * 0x28)
+#define COLORCOMPONENTBITS(n)		(0x1C + (n) * 0x28)
+#define COLORCOMPONENTSHIFT(n)		(0x20 + (n) * 0x28)
+#define LAYEROFFSET(n)			(0x24 + (n) * 0x28)
+#define CLIPWINDOWOFFSET(n)		(0x28 + (n) * 0x28)
+#define CLIPWINDOWDIMENSIONS(n)		(0x2C + (n) * 0x28)
+#define CONSTANTCOLOR(n)		(0x30 + (n) * 0x28)
+#define LAYERPROPERTY(n)		(0x34 + (n) * 0x28)
+#define FRAMEDIMENSIONS			0x150
+#define FRAMERESAMPLING			0x154
+#define WARPCONTROL			0x158
+#define ARBSTARTX			0x15c
+#define ARBSTARTY			0x160
+#define ARBDELTA			0x164
+#define FIRPOSITIONS			0x168
+#define FIRCOEFFICIENTS			0x16c
+#define CONTROL				0x170
+#define TRIGGERENABLE			0x174
+#define SHDLDREQ(lm)			((lm) & 0xFF)
+#define CONTROLTRIGGER			0x178
+#define START				0x17c
+#define FETCHTYPE			0x180
+#define BURSTBUFFERPROPERTIES		0x184
+#define STATUS				0x188
+#define HIDDENSTATUS			0x18c
+
+struct dpu_fetchwarp {
+	struct dpu_fetchunit fu;
+	fetchtype_t fetchtype;
+};
+
+static void
+fetchwarp_set_src_buf_dimensions(struct dpu_fetchunit *fu,
+				 unsigned int w, unsigned int h,
+				 u32 unused1, bool unused2)
+{
+	u32 val;
+
+	val = LINEWIDTH(w) | LINECOUNT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, SOURCEBUFFERDIMENSION(fu->sub_id), val);
+	mutex_unlock(&fu->mutex);
+}
+
+static void fetchwarp_set_fmt(struct dpu_fetchunit *fu,
+			      u32 fmt,
+			      enum drm_color_encoding color_encoding,
+			      enum drm_color_range color_range,
+			      bool unused)
+{
+	u32 val, bits, shift;
+	int i, sub_id = fu->sub_id;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, LAYERPROPERTY(sub_id));
+	val &= ~YUVCONVERSIONMODE_MASK;
+	dpu_fu_write(fu, LAYERPROPERTY(sub_id), val);
+	mutex_unlock(&fu->mutex);
+
+	for (i = 0; i < ARRAY_SIZE(dpu_pixel_format_matrix); i++) {
+		if (dpu_pixel_format_matrix[i].pixel_format == fmt) {
+			bits = dpu_pixel_format_matrix[i].bits;
+			shift = dpu_pixel_format_matrix[i].shift;
+
+			mutex_lock(&fu->mutex);
+			dpu_fu_write(fu, COLORCOMPONENTBITS(sub_id), bits);
+			dpu_fu_write(fu, COLORCOMPONENTSHIFT(sub_id), shift);
+			mutex_unlock(&fu->mutex);
+			return;
+		}
+	}
+
+	WARN_ON(1);
+}
+
+static void
+fetchwarp_set_framedimensions(struct dpu_fetchunit *fu,
+			      unsigned int w, unsigned int h, bool unused)
+{
+	u32 val;
+
+	val = FRAMEWIDTH(w) | FRAMEHEIGHT(h);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, FRAMEDIMENSIONS, val);
+	mutex_unlock(&fu->mutex);
+}
+
+void fetchwarp_rgb_constantcolor(struct dpu_fetchunit *fu,
+				 u8 r, u8 g, u8 b, u8 a)
+{
+	u32 val;
+
+	val = rgb_color(r, g, b, a);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONSTANTCOLOR(fu->id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchwarp_rgb_constantcolor);
+
+void fetchwarp_yuv_constantcolor(struct dpu_fetchunit *fu, u8 y, u8 u, u8 v)
+{
+	u32 val;
+
+	val = yuv_color(y, u, v);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONSTANTCOLOR(fu->id), val);
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(fetchwarp_yuv_constantcolor);
+
+static void fetchwarp_set_controltrigger(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, CONTROLTRIGGER, SHDTOKGEN);
+	mutex_unlock(&fu->mutex);
+}
+
+int fetchwarp_fetchtype(struct dpu_fetchunit *fu, fetchtype_t *type)
+{
+	struct dpu_soc *dpu = fu->dpu;
+	u32 val;
+
+	mutex_lock(&fu->mutex);
+	val = dpu_fu_read(fu, FETCHTYPE);
+	val &= FETCHTYPE_MASK;
+	mutex_unlock(&fu->mutex);
+
+	switch (val) {
+	case FETCHTYPE__DECODE:
+	case FETCHTYPE__LAYER:
+	case FETCHTYPE__WARP:
+	case FETCHTYPE__ECO:
+	case FETCHTYPE__PERSP:
+	case FETCHTYPE__ROT:
+	case FETCHTYPE__DECODEL:
+	case FETCHTYPE__LAYERL:
+	case FETCHTYPE__ROTL:
+		break;
+	default:
+		dev_warn(dpu->dev, "Invalid fetch type %u for FetchWarp%d\n",
+				val, fu->id);
+		return -EINVAL;
+	}
+
+	*type = val;
+	return 0;
+}
+EXPORT_SYMBOL_GPL(fetchwarp_fetchtype);
+
+struct dpu_fetchunit *dpu_fw_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fw_ids); i++)
+		if (fw_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fw_ids))
+		return ERR_PTR(-EINVAL);
+
+	fu = dpu->fw_priv[i];
+
+	mutex_lock(&fu->mutex);
+
+	if (fu->inuse) {
+		mutex_unlock(&fu->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	fu->inuse = true;
+
+	mutex_unlock(&fu->mutex);
+
+	return fu;
+}
+EXPORT_SYMBOL_GPL(dpu_fw_get);
+
+void dpu_fw_put(struct dpu_fetchunit *fu)
+{
+	mutex_lock(&fu->mutex);
+
+	fu->inuse = false;
+
+	mutex_unlock(&fu->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_fw_put);
+
+static const struct dpu_fetchunit_ops fw_ops = {
+	.set_burstlength	= fetchunit_set_burstlength,
+	.set_baseaddress	= fetchunit_set_baseaddress,
+	.set_src_bpp		= fetchunit_set_src_bpp,
+	.set_src_stride		= fetchunit_set_src_stride,
+	.set_src_buf_dimensions	= fetchwarp_set_src_buf_dimensions,
+	.set_fmt		= fetchwarp_set_fmt,
+	.set_pixel_blend_mode	= fetchunit_set_pixel_blend_mode,
+	.enable_src_buf		= fetchunit_enable_src_buf,
+	.disable_src_buf	= fetchunit_disable_src_buf,
+	.is_enabled		= fetchunit_is_enabled,
+	.set_framedimensions	= fetchwarp_set_framedimensions,
+	.set_controltrigger	= fetchwarp_set_controltrigger,
+	.get_stream_id		= fetchunit_get_stream_id,
+	.set_stream_id		= fetchunit_set_stream_id,
+};
+
+void _dpu_fw_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_fetchunit *fu;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fw_ids); i++)
+		if (fw_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(fw_ids)))
+		return;
+
+	fu = dpu->fw_priv[i];
+
+	fetchunit_baddr_autoupdate(fu, 0x0);
+	fetchunit_shden(fu, true);
+	fetchunit_shdldreq_sticky(fu, 0xFF);
+	fetchunit_disable_src_buf(fu);
+
+	mutex_lock(&fu->mutex);
+	dpu_fu_write(fu, BURSTBUFFERMANAGEMENT,
+			SETNUMBUFFERS(16) | SETBURSTLENGTH(16));
+	mutex_unlock(&fu->mutex);
+}
+
+int dpu_fw_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_fetchwarp *fw;
+	struct dpu_fetchunit *fu;
+	int i, ret;
+
+	fw = devm_kzalloc(dpu->dev, sizeof(*fw), GFP_KERNEL);
+	if (!fw)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(fw_ids); i++)
+		if (fw_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fw_ids))
+		return -EINVAL;
+
+	fu = &fw->fu;
+	dpu->fw_priv[i] = fu;
+
+	fu->pec_base = devm_ioremap(dpu->dev, base, SZ_16);
+	if (!fu->pec_base)
+		return -ENOMEM;
+
+	fu->base = devm_ioremap(dpu->dev, base, SZ_512);
+	if (!fu->base)
+		return -ENOMEM;
+
+	fu->dpu = dpu;
+	fu->id = id;
+	fu->sub_id = 0;
+	fu->type = FU_T_FW;
+	fu->ops = &fw_ops;
+	fu->name = "fetchwarp";
+
+	mutex_init(&fu->mutex);
+
+	ret = fetchwarp_fetchtype(fu, &fw->fetchtype);
+	if (ret < 0)
+		return ret;
+
+	_dpu_fw_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-framegen.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-framegen.c
@@ -0,0 +1,597 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/clk.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <drm/drm_mode.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define FGSTCTRL		0x8
+#define FGSYNCMODE_MASK		0x6
+#define HTCFG1			0xC
+#define HTOTAL(n)		((((n) - 1) & 0x3FFF) << 16)
+#define HACT(n)			((n) & 0x3FFF)
+#define HTCFG2			0x10
+#define HSEN			BIT(31)
+#define HSBP(n)			((((n) - 1) & 0x3FFF) << 16)
+#define HSYNC(n)		(((n) - 1) & 0x3FFF)
+#define VTCFG1			0x14
+#define VTOTAL(n)		((((n) - 1) & 0x3FFF) << 16)
+#define VACT(n)			((n) & 0x3FFF)
+#define VTCFG2			0x18
+#define VSEN			BIT(31)
+#define VSBP(n)			((((n) - 1) & 0x3FFF) << 16)
+#define VSYNC(n)		(((n) - 1) & 0x3FFF)
+#define INTCONFIG(n)		(0x1C + 4 * (n))
+#define EN			BIT(31)
+#define ROW(n)			(((n) & 0x3FFF) << 16)
+#define COL(n)			((n) & 0x3FFF)
+#define PKICKCONFIG		0x2C
+#define SKICKCONFIG		0x30
+#define SECSTATCONFIG		0x34
+#define FGSRCR1			0x38
+#define FGSRCR2			0x3C
+#define FGSRCR3			0x40
+#define FGSRCR4			0x44
+#define FGSRCR5			0x48
+#define FGSRCR6			0x4C
+#define FGKSDR			0x50
+#define PACFG			0x54
+#define STARTX(n)		(((n) + 1) & 0x3FFF)
+#define STARTY(n)		(((((n) + 1) & 0x3FFF)) << 16)
+#define SACFG			0x58
+#define FGINCTRL		0x5C
+#define FGDM_MASK		0x7
+#define ENPRIMALPHA		BIT(3)
+#define ENSECALPHA		BIT(4)
+#define FGINCTRLPANIC		0x60
+#define FGCCR			0x64
+#define CCALPHA(a)		(((a) & 0x1) << 30)
+#define CCRED(r)		(((r) & 0x3FF) << 20)
+#define CCGREEN(g)		(((g) & 0x3FF) << 10)
+#define CCBLUE(b)		((b) & 0x3FF)
+#define FGENABLE		0x68
+#define FGEN			BIT(0)
+#define FGSLR			0x6C
+#define FGENSTS			0x70
+#define ENSTS			BIT(0)
+#define FGTIMESTAMP		0x74
+#define LINEINDEX_MASK		0x3FFF
+#define LINEINDEX_SHIFT		0
+#define FRAMEINDEX_MASK		0xFFFFC000
+#define FRAMEINDEX_SHIFT	14
+#define FGCHSTAT		0x78
+#define SECSYNCSTAT		BIT(24)
+#define SFIFOEMPTY		BIT(16)
+#define FGCHSTATCLR		0x7C
+#define CLRSECSTAT		BIT(16)
+#define FGSKEWMON		0x80
+#define FGSFIFOMIN		0x84
+#define FGSFIFOMAX		0x88
+#define FGSFIFOFILLCLR		0x8C
+#define FGSREPD			0x90
+#define FGSRFTD			0x94
+
+#define KHZ			1000
+#define PLL_MIN_FREQ_HZ		648000000
+
+struct dpu_framegen {
+	void __iomem *base;
+	struct clk *clk_pll;
+	struct clk *clk_bypass;
+	struct clk *clk_disp;
+	struct clk *clk_disp_lpcg;
+	struct mutex mutex;
+	int id;
+	unsigned int encoder_type;
+	bool inuse;
+	bool use_bypass_clk;
+	bool side_by_side;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_fg_read(struct dpu_framegen *fg, unsigned int offset)
+{
+	return readl(fg->base + offset);
+}
+
+static inline void dpu_fg_write(struct dpu_framegen *fg,
+				unsigned int offset, u32 value)
+{
+	writel(value, fg->base + offset);
+}
+
+void framegen_enable(struct dpu_framegen *fg)
+{
+	dpu_fg_write(fg, FGENABLE, FGEN);
+}
+EXPORT_SYMBOL_GPL(framegen_enable);
+
+void framegen_disable(struct dpu_framegen *fg)
+{
+	dpu_fg_write(fg, FGENABLE, 0);
+}
+EXPORT_SYMBOL_GPL(framegen_disable);
+
+void framegen_enable_pixel_link(struct dpu_framegen *fg)
+{
+	struct dpu_soc *dpu = fg->dpu;
+	const struct dpu_data *data = dpu->data;
+
+	if (!(data->has_dual_ldb && fg->encoder_type == DRM_MODE_ENCODER_LVDS))
+		dpu_pxlink_set_mst_enable(fg->dpu, fg->id, true);
+
+	if (fg->encoder_type == DRM_MODE_ENCODER_DPI) {
+		dpu_pxlink_set_mst_valid(fg->dpu, fg->id, true);
+		dpu_pxlink_set_sync_ctrl(fg->dpu, fg->id, true);
+	}
+}
+EXPORT_SYMBOL_GPL(framegen_enable_pixel_link);
+
+void framegen_disable_pixel_link(struct dpu_framegen *fg)
+{
+	struct dpu_soc *dpu = fg->dpu;
+	const struct dpu_data *data = dpu->data;
+
+	if (fg->encoder_type == DRM_MODE_ENCODER_DPI) {
+		dpu_pxlink_set_mst_valid(fg->dpu, fg->id, false);
+		dpu_pxlink_set_sync_ctrl(fg->dpu, fg->id, false);
+	}
+
+	if (!(data->has_dual_ldb && fg->encoder_type == DRM_MODE_ENCODER_LVDS))
+		dpu_pxlink_set_mst_enable(fg->dpu, fg->id, false);
+}
+EXPORT_SYMBOL_GPL(framegen_disable_pixel_link);
+
+void framegen_shdtokgen(struct dpu_framegen *fg)
+{
+	dpu_fg_write(fg, FGSLR, SHDTOKGEN);
+}
+EXPORT_SYMBOL_GPL(framegen_shdtokgen);
+
+void framegen_syncmode(struct dpu_framegen *fg, fgsyncmode_t mode)
+{
+	u32 val;
+
+	val = dpu_fg_read(fg, FGSTCTRL);
+	val &= ~FGSYNCMODE_MASK;
+	val |= mode;
+	dpu_fg_write(fg, FGSTCTRL, val);
+
+	dpu_pxlink_set_dc_sync_mode(fg->dpu, mode != FGSYNCMODE__OFF);
+}
+EXPORT_SYMBOL_GPL(framegen_syncmode);
+
+void framegen_cfg_videomode(struct dpu_framegen *fg, struct drm_display_mode *m,
+			    bool side_by_side, unsigned int encoder_type)
+{
+	struct dpu_soc *dpu = fg->dpu;
+	u32 hact, htotal, hsync, hsbp;
+	u32 vact, vtotal, vsync, vsbp;
+	u32 kick_row, kick_col;
+	u32 val;
+	unsigned long disp_clock_rate, pll_clock_rate = 0;
+	int div = 0;
+
+	fg->side_by_side = side_by_side;
+	fg->encoder_type = encoder_type;
+
+	hact = m->crtc_hdisplay;
+	htotal = m->crtc_htotal;
+	hsync = m->crtc_hsync_end - m->crtc_hsync_start;
+	hsbp = m->crtc_htotal - m->crtc_hsync_start;
+
+	if (side_by_side) {
+		hact /= 2;
+		htotal /= 2;
+		hsync /= 2;
+		hsbp /= 2;
+	}
+
+	vact = m->crtc_vdisplay;
+	vtotal = m->crtc_vtotal;
+	vsync = m->crtc_vsync_end - m->crtc_vsync_start;
+	vsbp = m->crtc_vtotal - m->crtc_vsync_start;
+
+	/* video mode */
+	dpu_fg_write(fg, HTCFG1, HACT(hact)   | HTOTAL(htotal));
+	dpu_fg_write(fg, HTCFG2, HSYNC(hsync) | HSBP(hsbp) | HSEN);
+	dpu_fg_write(fg, VTCFG1, VACT(vact)   | VTOTAL(vtotal));
+	dpu_fg_write(fg, VTCFG2, VSYNC(vsync) | VSBP(vsbp) | VSEN);
+
+	kick_col = hact + 1;
+	kick_row = vact;
+	/*
+	 * FrameGen as slave needs to be kicked later for
+	 * one line comparing to the master.
+	 */
+	if (side_by_side && framegen_is_slave(fg))
+		kick_row++;
+
+	/* pkickconfig */
+	dpu_fg_write(fg, PKICKCONFIG, COL(kick_col) | ROW(kick_row) | EN);
+
+	/* skikconfig */
+	dpu_fg_write(fg, SKICKCONFIG, COL(kick_col) | ROW(kick_row) | EN);
+
+	/* primary and secondary area position config */
+	dpu_fg_write(fg, PACFG, STARTX(0) | STARTY(0));
+	dpu_fg_write(fg, SACFG, STARTX(0) | STARTY(0));
+
+	/* alpha */
+	val = dpu_fg_read(fg, FGINCTRL);
+	val &= ~(ENPRIMALPHA | ENSECALPHA);
+	dpu_fg_write(fg, FGINCTRL, val);
+
+	val = dpu_fg_read(fg, FGINCTRLPANIC);
+	val &= ~(ENPRIMALPHA | ENSECALPHA);
+	dpu_fg_write(fg, FGINCTRLPANIC, val);
+
+	/* constant color */
+	dpu_fg_write(fg, FGCCR, 0);
+
+	disp_clock_rate = m->crtc_clock * 1000;
+
+	if (encoder_type == DRM_MODE_ENCODER_TMDS) {
+		if (side_by_side)
+			dpu_pxlink_set_mst_addr(dpu, fg->id, fg->id ? 2 : 1);
+		else
+			dpu_pxlink_set_mst_addr(dpu, fg->id, 1);
+
+		clk_set_parent(fg->clk_disp, fg->clk_bypass);
+
+		fg->use_bypass_clk = true;
+	} else {
+		dpu_pxlink_set_mst_addr(dpu, fg->id,
+				encoder_type == DRM_MODE_ENCODER_DPI ? 1 : 0);
+
+		clk_set_parent(fg->clk_disp, fg->clk_pll);
+
+		/* find an even divisor for PLL */
+		do {
+			div += 2;
+			pll_clock_rate = disp_clock_rate * div;
+		} while (pll_clock_rate < PLL_MIN_FREQ_HZ);
+
+		clk_set_rate(fg->clk_pll, pll_clock_rate);
+		clk_set_rate(fg->clk_disp, disp_clock_rate);
+
+		fg->use_bypass_clk = false;
+	}
+}
+EXPORT_SYMBOL_GPL(framegen_cfg_videomode);
+
+void framegen_pkickconfig(struct dpu_framegen *fg, bool enable)
+{
+	u32 val;
+
+	val = dpu_fg_read(fg, PKICKCONFIG);
+	if (enable)
+		val |= EN;
+	else
+		val &= ~EN;
+	dpu_fg_write(fg, PKICKCONFIG, val);
+}
+EXPORT_SYMBOL_GPL(framegen_pkickconfig);
+
+void framegen_syncmode_fixup(struct dpu_framegen *fg, bool enable)
+{
+	u32 val;
+
+	val = dpu_fg_read(fg, SECSTATCONFIG);
+	if (enable)
+		val |= BIT(7);
+	else
+		val &= ~BIT(7);
+	dpu_fg_write(fg, SECSTATCONFIG, val);
+}
+EXPORT_SYMBOL_GPL(framegen_syncmode_fixup);
+
+void framegen_displaymode(struct dpu_framegen *fg, fgdm_t mode)
+{
+	u32 val;
+
+	val = dpu_fg_read(fg, FGINCTRL);
+	val &= ~FGDM_MASK;
+	val |= mode;
+	dpu_fg_write(fg, FGINCTRL, val);
+}
+EXPORT_SYMBOL_GPL(framegen_displaymode);
+
+void framegen_panic_displaymode(struct dpu_framegen *fg, fgdm_t mode)
+{
+	u32 val;
+
+	val = dpu_fg_read(fg, FGINCTRLPANIC);
+	val &= ~FGDM_MASK;
+	val |= mode;
+	dpu_fg_write(fg, FGINCTRLPANIC, val);
+}
+EXPORT_SYMBOL_GPL(framegen_panic_displaymode);
+
+void framegen_wait_done(struct dpu_framegen *fg, struct drm_display_mode *m)
+{
+	unsigned long timeout, pending_framedur_jiffies;
+	int frame_size = m->crtc_htotal * m->crtc_vtotal;
+	int dotclock, pending_framedur_ns;
+	u32 val;
+
+	dotclock = clk_get_rate(fg->clk_disp) / KHZ;
+	if (dotclock == 0) {
+		/* fall back to display mode's clock */
+		dotclock = m->crtc_clock;
+	}
+
+	/*
+	 * The SoC designer indicates that there are two pending frames
+	 * to complete in the worst case.
+	 * So, three pending frames are enough for sure.
+	 */
+	pending_framedur_ns = div_u64((u64) 3 * frame_size * 1000000, dotclock);
+	pending_framedur_jiffies = nsecs_to_jiffies(pending_framedur_ns);
+	if (pending_framedur_jiffies > (3 * HZ)) {
+		pending_framedur_jiffies = 3 * HZ;
+
+		dev_warn(fg->dpu->dev,
+			 "truncate FrameGen%d pending frame duration to 3sec\n",
+			 fg->id);
+	}
+	timeout = jiffies + pending_framedur_jiffies;
+
+	do {
+		val = dpu_fg_read(fg, FGENSTS);
+	} while ((val & ENSTS) && time_before(jiffies, timeout));
+
+	dev_dbg(fg->dpu->dev, "FrameGen%d pending frame duration is %ums\n",
+			 fg->id, jiffies_to_msecs(pending_framedur_jiffies));
+
+	if (val & ENSTS)
+		dev_err(fg->dpu->dev, "failed to wait for FrameGen%d done\n",
+			fg->id);
+}
+EXPORT_SYMBOL_GPL(framegen_wait_done);
+
+static inline u32 framegen_frame_index(u32 stamp)
+{
+	return (stamp & FRAMEINDEX_MASK) >> FRAMEINDEX_SHIFT;
+}
+
+static inline u32 framegen_line_index(u32 stamp)
+{
+	return (stamp & LINEINDEX_MASK) >> LINEINDEX_SHIFT;
+}
+
+void framegen_read_timestamp(struct dpu_framegen *fg,
+			     u32 *frame_index, u32 *line_index)
+{
+	u32 stamp;
+
+	stamp = dpu_fg_read(fg, FGTIMESTAMP);
+	*frame_index = framegen_frame_index(stamp);
+	*line_index = framegen_line_index(stamp);
+}
+EXPORT_SYMBOL_GPL(framegen_read_timestamp);
+
+void framegen_wait_for_frame_counter_moving(struct dpu_framegen *fg)
+{
+	u32 frame_index, line_index, last_frame_index;
+	unsigned long timeout = jiffies + msecs_to_jiffies(100);
+
+	framegen_read_timestamp(fg, &frame_index, &line_index);
+	do {
+		last_frame_index = frame_index;
+		framegen_read_timestamp(fg, &frame_index, &line_index);
+	} while (last_frame_index == frame_index &&
+						time_before(jiffies, timeout));
+
+	if (last_frame_index == frame_index)
+		dev_err(fg->dpu->dev,
+			"failed to wait for FrameGen%d frame counter moving\n",
+			fg->id);
+	else
+		dev_dbg(fg->dpu->dev,
+			"FrameGen%d frame counter moves - last %u, curr %d\n",
+			fg->id, last_frame_index, frame_index);
+}
+EXPORT_SYMBOL_GPL(framegen_wait_for_frame_counter_moving);
+
+bool framegen_secondary_requests_to_read_empty_fifo(struct dpu_framegen *fg)
+{
+	u32 val;
+	bool empty;
+
+	val = dpu_fg_read(fg, FGCHSTAT);
+
+	empty = !!(val & SFIFOEMPTY);
+
+	if (empty)
+		dev_dbg(fg->dpu->dev,
+			"FrameGen%d secondary requests to read empty FIFO\n",
+			fg->id);
+
+	return empty;
+}
+EXPORT_SYMBOL_GPL(framegen_secondary_requests_to_read_empty_fifo);
+
+void framegen_secondary_clear_channel_status(struct dpu_framegen *fg)
+{
+	dpu_fg_write(fg, FGCHSTATCLR, CLRSECSTAT);
+}
+EXPORT_SYMBOL_GPL(framegen_secondary_clear_channel_status);
+
+bool framegen_secondary_is_syncup(struct dpu_framegen *fg)
+{
+	u32 val = dpu_fg_read(fg, FGCHSTAT);
+
+	return val & SECSYNCSTAT;
+}
+EXPORT_SYMBOL_GPL(framegen_secondary_is_syncup);
+
+void framegen_wait_for_secondary_syncup(struct dpu_framegen *fg)
+{
+	unsigned long timeout = jiffies + msecs_to_jiffies(100);
+	bool syncup;
+
+	do {
+		syncup = framegen_secondary_is_syncup(fg);
+	} while (!syncup && time_before(jiffies, timeout));
+
+	if (syncup)
+		dev_dbg(fg->dpu->dev, "FrameGen%d secondary syncup\n", fg->id);
+	else
+		dev_err(fg->dpu->dev,
+			"failed to wait for FrameGen%d secondary syncup\n",
+			fg->id);
+}
+EXPORT_SYMBOL_GPL(framegen_wait_for_secondary_syncup);
+
+void framegen_enable_clock(struct dpu_framegen *fg)
+{
+	if (!fg->use_bypass_clk)
+		clk_prepare_enable(fg->clk_pll);
+	clk_prepare_enable(fg->clk_disp);
+	clk_prepare_enable(fg->clk_disp_lpcg);
+}
+EXPORT_SYMBOL_GPL(framegen_enable_clock);
+
+void framegen_disable_clock(struct dpu_framegen *fg)
+{
+	if (!fg->use_bypass_clk)
+		clk_disable_unprepare(fg->clk_pll);
+	clk_disable_unprepare(fg->clk_disp);
+	clk_disable_unprepare(fg->clk_disp_lpcg);
+}
+EXPORT_SYMBOL_GPL(framegen_disable_clock);
+
+bool framegen_is_master(struct dpu_framegen *fg)
+{
+	const struct dpu_data *data = fg->dpu->data;
+
+	return fg->id == data->master_stream_id;
+}
+EXPORT_SYMBOL_GPL(framegen_is_master);
+
+bool framegen_is_slave(struct dpu_framegen *fg)
+{
+	return !framegen_is_master(fg);
+}
+EXPORT_SYMBOL_GPL(framegen_is_slave);
+
+struct dpu_framegen *dpu_fg_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_framegen *fg;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fg_ids); i++)
+		if (fg_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(fg_ids))
+		return ERR_PTR(-EINVAL);
+
+	fg = dpu->fg_priv[i];
+
+	mutex_lock(&fg->mutex);
+
+	if (fg->inuse) {
+		mutex_unlock(&fg->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	fg->inuse = true;
+
+	mutex_unlock(&fg->mutex);
+
+	return fg;
+}
+EXPORT_SYMBOL_GPL(dpu_fg_get);
+
+void dpu_fg_put(struct dpu_framegen *fg)
+{
+	mutex_lock(&fg->mutex);
+
+	fg->inuse = false;
+
+	mutex_unlock(&fg->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_fg_put);
+
+struct dpu_framegen *dpu_aux_fg_peek(struct dpu_framegen *fg)
+{
+	return fg->dpu->fg_priv[fg->id ^ 1];
+}
+EXPORT_SYMBOL_GPL(dpu_aux_fg_peek);
+
+void _dpu_fg_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_framegen *fg;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(fg_ids); i++)
+		if (fg_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(fg_ids)))
+		return;
+
+	fg = dpu->fg_priv[i];
+
+	framegen_syncmode(fg, FGSYNCMODE__OFF);
+}
+
+int dpu_fg_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long unused, unsigned long base)
+{
+	struct dpu_framegen *fg;
+
+	fg = devm_kzalloc(dpu->dev, sizeof(*fg), GFP_KERNEL);
+	if (!fg)
+		return -ENOMEM;
+
+	dpu->fg_priv[id] = fg;
+
+	fg->base = devm_ioremap(dpu->dev, base, SZ_256);
+	if (!fg->base)
+		return -ENOMEM;
+
+	fg->clk_pll = devm_clk_get(dpu->dev, id ? "pll1" : "pll0");
+	if (IS_ERR(fg->clk_pll))
+		return PTR_ERR(fg->clk_pll);
+
+	fg->clk_bypass = devm_clk_get(dpu->dev, "bypass0");
+	if (IS_ERR(fg->clk_bypass))
+		return PTR_ERR(fg->clk_bypass);
+
+	fg->clk_disp = devm_clk_get(dpu->dev, id ? "disp1" : "disp0");
+	if (IS_ERR(fg->clk_disp))
+		return PTR_ERR(fg->clk_disp);
+
+	fg->clk_disp_lpcg = devm_clk_get(dpu->dev, id ? "disp1_lpcg" : "disp0_lpcg");
+	if (IS_ERR(fg->clk_disp_lpcg))
+		return PTR_ERR(fg->clk_disp_lpcg);
+
+	fg->dpu = dpu;
+	fg->id = id;
+	mutex_init(&fg->mutex);
+
+	_dpu_fg_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-hscaler.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-hscaler.c
@@ -0,0 +1,386 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_DYNAMIC		0x8
+#define PIXENGCFG_DYNAMIC_SRC_SEL_MASK	0x3F
+
+#define SETUP1				0xC
+#define SCALE_FACTOR_MASK		0xFFFFF
+#define SCALE_FACTOR(n)			((n) & 0xFFFFF)
+#define SETUP2				0x10
+#define PHASE_OFFSET_MASK		0x1FFFFF
+#define PHASE_OFFSET(n)			((n) & 0x1FFFFF)
+#define CONTROL				0x14
+#define OUTPUT_SIZE_MASK		0x3FFF0000
+#define OUTPUT_SIZE(n)			((((n) - 1) << 16) & OUTPUT_SIZE_MASK)
+#define FILTER_MODE			0x100
+#define SCALE_MODE			0x10
+#define MODE				0x1
+
+static const hs_src_sel_t src_sels[3][6] = {
+	{
+		HS_SRC_SEL__DISABLE,
+		HS_SRC_SEL__FETCHDECODE0,
+		HS_SRC_SEL__MATRIX4,
+		HS_SRC_SEL__VSCALER4,
+	}, {
+		HS_SRC_SEL__DISABLE,
+		HS_SRC_SEL__FETCHDECODE1,
+		HS_SRC_SEL__MATRIX5,
+		HS_SRC_SEL__VSCALER5,
+	}, {
+		HS_SRC_SEL__DISABLE,
+		HS_SRC_SEL__MATRIX9,
+		HS_SRC_SEL__VSCALER9,
+		HS_SRC_SEL__FILTER9,
+	},
+};
+
+struct dpu_hscaler {
+	void __iomem *pec_base;
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+	/* see DPU_PLANE_SRC_xxx */
+	unsigned int stream_id;
+};
+
+static inline u32 dpu_pec_hs_read(struct dpu_hscaler *hs,
+				  unsigned int offset)
+{
+	return readl(hs->pec_base + offset);
+}
+
+static inline void dpu_pec_hs_write(struct dpu_hscaler *hs,
+				    unsigned int offset, u32 value)
+{
+	writel(value, hs->pec_base + offset);
+}
+
+static inline u32 dpu_hs_read(struct dpu_hscaler *hs, unsigned int offset)
+{
+	return readl(hs->base + offset);
+}
+
+static inline void dpu_hs_write(struct dpu_hscaler *hs,
+				unsigned int offset, u32 value)
+{
+	writel(value, hs->base + offset);
+}
+
+int hscaler_pixengcfg_dynamic_src_sel(struct dpu_hscaler *hs, hs_src_sel_t src)
+{
+	struct dpu_soc *dpu = hs->dpu;
+	const unsigned int hs_id_array[] = {4, 5, 9};
+	int i, j;
+	u32 val;
+
+	for (i = 0; i < ARRAY_SIZE(hs_id_array); i++)
+		if (hs_id_array[i] == hs->id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(hs_id_array)))
+		return -EINVAL;
+
+	mutex_lock(&hs->mutex);
+	for (j = 0; j < ARRAY_SIZE(src_sels[0]); j++) {
+		if (src_sels[i][j] == src) {
+			val = dpu_pec_hs_read(hs, PIXENGCFG_DYNAMIC);
+			val &= ~PIXENGCFG_DYNAMIC_SRC_SEL_MASK;
+			val |= src;
+			dpu_pec_hs_write(hs, PIXENGCFG_DYNAMIC, val);
+			mutex_unlock(&hs->mutex);
+			return 0;
+		}
+	}
+	mutex_unlock(&hs->mutex);
+
+	dev_err(dpu->dev, "Invalid source for HScaler%d\n", hs->id);
+
+	return -EINVAL;
+}
+EXPORT_SYMBOL_GPL(hscaler_pixengcfg_dynamic_src_sel);
+
+void hscaler_pixengcfg_clken(struct dpu_hscaler *hs, pixengcfg_clken_t clken)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_pec_hs_read(hs, PIXENGCFG_DYNAMIC);
+	val &= ~CLKEN_MASK;
+	val |= clken << CLKEN_MASK_SHIFT;
+	dpu_pec_hs_write(hs, PIXENGCFG_DYNAMIC, val);
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_pixengcfg_clken);
+
+void hscaler_shden(struct dpu_hscaler *hs, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_hs_read(hs, STATICCONTROL);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_hs_write(hs, STATICCONTROL, val);
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_shden);
+
+void hscaler_setup1(struct dpu_hscaler *hs, u32 src, u32 dst)
+{
+	struct dpu_soc *dpu = hs->dpu;
+	u32 scale_factor;
+	u64 tmp64;
+
+	if (src == dst) {
+		scale_factor = 0x80000;
+	} else {
+		if (src > dst) {
+			tmp64 = (u64)((u64)dst * 0x80000);
+			do_div(tmp64, src);
+
+		} else {
+			tmp64 = (u64)((u64)src * 0x80000);
+			do_div(tmp64, dst);
+		}
+		scale_factor = (u32)tmp64;
+	}
+
+	WARN_ON(scale_factor > 0x80000);
+
+	mutex_lock(&hs->mutex);
+	dpu_hs_write(hs, SETUP1, SCALE_FACTOR(scale_factor));
+	mutex_unlock(&hs->mutex);
+
+	dev_dbg(dpu->dev, "Hscaler%d scale factor 0x%08x\n",
+						hs->id, scale_factor);
+}
+EXPORT_SYMBOL_GPL(hscaler_setup1);
+
+void hscaler_setup2(struct dpu_hscaler *hs, u32 phase_offset)
+{
+	mutex_lock(&hs->mutex);
+	dpu_hs_write(hs, SETUP2, PHASE_OFFSET(phase_offset));
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_setup2);
+
+void hscaler_output_size(struct dpu_hscaler *hs, u32 line_num)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_hs_read(hs, CONTROL);
+	val &= ~OUTPUT_SIZE_MASK;
+	val |= OUTPUT_SIZE(line_num);
+	dpu_hs_write(hs, CONTROL, val);
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_output_size);
+
+void hscaler_filter_mode(struct dpu_hscaler *hs, scaler_filter_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_hs_read(hs, CONTROL);
+	val &= ~FILTER_MODE;
+	val |= m;
+	dpu_hs_write(hs, CONTROL, val);
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_filter_mode);
+
+void hscaler_scale_mode(struct dpu_hscaler *hs, scaler_scale_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_hs_read(hs, CONTROL);
+	val &= ~SCALE_MODE;
+	val |= m;
+	dpu_hs_write(hs, CONTROL, val);
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_scale_mode);
+
+void hscaler_mode(struct dpu_hscaler *hs, scaler_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_hs_read(hs, CONTROL);
+	val &= ~MODE;
+	val |= m;
+	dpu_hs_write(hs, CONTROL, val);
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(hscaler_mode);
+
+bool hscaler_is_enabled(struct dpu_hscaler *hs)
+{
+	u32 val;
+
+	mutex_lock(&hs->mutex);
+	val = dpu_hs_read(hs, CONTROL);
+	mutex_unlock(&hs->mutex);
+
+	return (val & MODE) == SCALER_ACTIVE;
+}
+EXPORT_SYMBOL_GPL(hscaler_is_enabled);
+
+dpu_block_id_t hscaler_get_block_id(struct dpu_hscaler *hs)
+{
+	switch (hs->id) {
+	case 4:
+		return ID_HSCALER4;
+	case 5:
+		return ID_HSCALER5;
+	case 9:
+		return ID_HSCALER9;
+	default:
+		WARN_ON(1);
+	}
+
+	return ID_NONE;
+}
+EXPORT_SYMBOL_GPL(hscaler_get_block_id);
+
+unsigned int hscaler_get_stream_id(struct dpu_hscaler *hs)
+{
+	return hs->stream_id;
+}
+EXPORT_SYMBOL_GPL(hscaler_get_stream_id);
+
+void hscaler_set_stream_id(struct dpu_hscaler *hs, unsigned int id)
+{
+	switch (id) {
+	case DPU_PLANE_SRC_TO_DISP_STREAM0:
+	case DPU_PLANE_SRC_TO_DISP_STREAM1:
+	case DPU_PLANE_SRC_DISABLED:
+		hs->stream_id = id;
+		break;
+	default:
+		WARN_ON(1);
+	}
+}
+EXPORT_SYMBOL_GPL(hscaler_set_stream_id);
+
+struct dpu_hscaler *dpu_hs_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_hscaler *hs;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(hs_ids); i++)
+		if (hs_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(hs_ids))
+		return ERR_PTR(-EINVAL);
+
+	hs = dpu->hs_priv[i];
+
+	mutex_lock(&hs->mutex);
+
+	if (hs->inuse) {
+		mutex_unlock(&hs->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	hs->inuse = true;
+
+	mutex_unlock(&hs->mutex);
+
+	return hs;
+}
+EXPORT_SYMBOL_GPL(dpu_hs_get);
+
+void dpu_hs_put(struct dpu_hscaler *hs)
+{
+	mutex_lock(&hs->mutex);
+
+	hs->inuse = false;
+
+	mutex_unlock(&hs->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_hs_put);
+
+void _dpu_hs_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_hscaler *hs;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(hs_ids); i++)
+		if (hs_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(hs_ids)))
+		return;
+
+	hs = dpu->hs_priv[i];
+
+	hscaler_shden(hs, true);
+	hscaler_setup2(hs, 0);
+	hscaler_pixengcfg_dynamic_src_sel(hs, HS_SRC_SEL__DISABLE);
+}
+
+int dpu_hs_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_hscaler *hs;
+	int i;
+
+	hs = devm_kzalloc(dpu->dev, sizeof(*hs), GFP_KERNEL);
+	if (!hs)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(hs_ids); i++)
+		if (hs_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(hs_ids))
+		return -EINVAL;
+
+	dpu->hs_priv[i] = hs;
+
+	hs->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_8);
+	if (!hs->pec_base)
+		return -ENOMEM;
+
+	hs->base = devm_ioremap(dpu->dev, base, SZ_1K);
+	if (!hs->base)
+		return -ENOMEM;
+
+	hs->dpu = dpu;
+	hs->id = id;
+
+	mutex_init(&hs->mutex);
+
+	_dpu_hs_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-layerblend.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-layerblend.c
@@ -0,0 +1,346 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <drm/drm_blend.h>
+#include <linux/io.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_DYNAMIC			0x8
+#define PIXENGCFG_DYNAMIC_PRIM_SEL_MASK		0x3F
+#define PIXENGCFG_DYNAMIC_SEC_SEL_MASK		0x3F00
+#define PIXENGCFG_DYNAMIC_SEC_SEL_SHIFT		8
+
+static const lb_prim_sel_t prim_sels[] = {
+	LB_PRIM_SEL__DISABLE,
+	LB_PRIM_SEL__BLITBLEND9,
+	LB_PRIM_SEL__CONSTFRAME0,
+	LB_PRIM_SEL__CONSTFRAME1,
+	LB_PRIM_SEL__CONSTFRAME4,
+	LB_PRIM_SEL__CONSTFRAME5,
+	LB_PRIM_SEL__MATRIX4,
+	LB_PRIM_SEL__HSCALER4,
+	LB_PRIM_SEL__VSCALER4,
+	LB_PRIM_SEL__MATRIX5,
+	LB_PRIM_SEL__HSCALER5,
+	LB_PRIM_SEL__VSCALER5,
+	LB_PRIM_SEL__LAYERBLEND0,
+	LB_PRIM_SEL__LAYERBLEND1,
+	LB_PRIM_SEL__LAYERBLEND2,
+	LB_PRIM_SEL__LAYERBLEND3,
+};
+
+#define PIXENGCFG_STATUS			0xC
+#define SHDTOKSEL				(0x3 << 3)
+#define SHDTOKSEL_SHIFT				3
+#define SHDLDSEL				(0x3 << 1)
+#define SHDLDSEL_SHIFT				1
+#define CONTROL					0xC
+#define OPERATION_MODE_MASK			BIT(0)
+#define BLENDCONTROL				0x10
+#define ALPHA(a)				(((a) & 0xFF) << 16)
+#define PRIM_C_BLD_FUNC__ONE_MINUS_CONST_ALPHA	0x7
+#define PRIM_C_BLD_FUNC__ONE_MINUS_SEC_ALPHA	0x5
+#define PRIM_C_BLD_FUNC__ZERO			0x0
+#define SEC_C_BLD_FUNC__CONST_ALPHA		(0x6 << 4)
+#define SEC_C_BLD_FUNC__SEC_ALPHA		(0x4 << 4)
+#define PRIM_A_BLD_FUNC__ZERO			(0x0 << 8)
+#define SEC_A_BLD_FUNC__ZERO			(0x0 << 12)
+#define POSITION				0x14
+#define XPOS(x)					((x) & 0x7FFF)
+#define YPOS(y)					(((y) & 0x7FFF) << 16)
+#define PRIMCONTROLWORD				0x18
+#define SECCONTROLWORD				0x1C
+
+struct dpu_layerblend {
+	void __iomem *pec_base;
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_pec_lb_read(struct dpu_layerblend *lb,
+				  unsigned int offset)
+{
+	return readl(lb->pec_base + offset);
+}
+
+static inline void dpu_pec_lb_write(struct dpu_layerblend *lb,
+				    unsigned int offset, u32 value)
+{
+	writel(value, lb->pec_base + offset);
+}
+
+static inline u32 dpu_lb_read(struct dpu_layerblend *lb, unsigned int offset)
+{
+	return readl(lb->base + offset);
+}
+
+static inline void dpu_lb_write(struct dpu_layerblend *lb,
+				unsigned int offset, u32 value)
+{
+	writel(value, lb->base + offset);
+}
+
+int layerblend_pixengcfg_dynamic_prim_sel(struct dpu_layerblend *lb,
+					  lb_prim_sel_t prim)
+{
+	struct dpu_soc *dpu = lb->dpu;
+	int fixed_sels_num = ARRAY_SIZE(prim_sels) - 4;
+	int i;
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	for (i = 0; i < fixed_sels_num + lb->id; i++) {
+		if (prim_sels[i] == prim) {
+			val = dpu_pec_lb_read(lb, PIXENGCFG_DYNAMIC);
+			val &= ~PIXENGCFG_DYNAMIC_PRIM_SEL_MASK;
+			val |= prim;
+			dpu_pec_lb_write(lb, PIXENGCFG_DYNAMIC, val);
+			mutex_unlock(&lb->mutex);
+			return 0;
+		}
+	}
+	mutex_unlock(&lb->mutex);
+
+	dev_err(dpu->dev, "Invalid primary source for LayerBlend%d\n", lb->id);
+
+	return -EINVAL;
+}
+EXPORT_SYMBOL_GPL(layerblend_pixengcfg_dynamic_prim_sel);
+
+void layerblend_pixengcfg_dynamic_sec_sel(struct dpu_layerblend *lb,
+					  lb_sec_sel_t sec)
+{
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	val = dpu_pec_lb_read(lb, PIXENGCFG_DYNAMIC);
+	val &= ~PIXENGCFG_DYNAMIC_SEC_SEL_MASK;
+	val |= sec << PIXENGCFG_DYNAMIC_SEC_SEL_SHIFT;
+	dpu_pec_lb_write(lb, PIXENGCFG_DYNAMIC, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_pixengcfg_dynamic_sec_sel);
+
+void layerblend_pixengcfg_clken(struct dpu_layerblend *lb,
+				pixengcfg_clken_t clken)
+{
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	val = dpu_pec_lb_read(lb, PIXENGCFG_DYNAMIC);
+	val &= ~CLKEN_MASK;
+	val |= clken << CLKEN_MASK_SHIFT;
+	dpu_pec_lb_write(lb, PIXENGCFG_DYNAMIC, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_pixengcfg_clken);
+
+void layerblend_shden(struct dpu_layerblend *lb, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	val = dpu_lb_read(lb, STATICCONTROL);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_lb_write(lb, STATICCONTROL, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_shden);
+
+void layerblend_shdtoksel(struct dpu_layerblend *lb, lb_shadow_sel_t sel)
+{
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	val = dpu_lb_read(lb, STATICCONTROL);
+	val &= ~SHDTOKSEL;
+	val |= (sel << SHDTOKSEL_SHIFT);
+	dpu_lb_write(lb, STATICCONTROL, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_shdtoksel);
+
+void layerblend_shdldsel(struct dpu_layerblend *lb, lb_shadow_sel_t sel)
+{
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	val = dpu_lb_read(lb, STATICCONTROL);
+	val &= ~SHDLDSEL;
+	val |= (sel << SHDLDSEL_SHIFT);
+	dpu_lb_write(lb, STATICCONTROL, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_shdldsel);
+
+void layerblend_control(struct dpu_layerblend *lb, lb_mode_t mode)
+{
+	u32 val;
+
+	mutex_lock(&lb->mutex);
+	val = dpu_lb_read(lb, CONTROL);
+	val &= ~OPERATION_MODE_MASK;
+	val |= mode;
+	dpu_lb_write(lb, CONTROL, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_control);
+
+void layerblend_blendcontrol(struct dpu_layerblend *lb, unsigned int zpos,
+			     unsigned int pixel_blend_mode, u16 alpha)
+{
+	u32 val = PRIM_A_BLD_FUNC__ZERO | SEC_A_BLD_FUNC__ZERO;
+
+	if (zpos == 0) {
+		val |= PRIM_C_BLD_FUNC__ZERO | SEC_C_BLD_FUNC__CONST_ALPHA;
+		alpha = DRM_BLEND_ALPHA_OPAQUE;
+	} else {
+		switch (pixel_blend_mode) {
+		case DRM_MODE_BLEND_PIXEL_NONE:
+			val |= PRIM_C_BLD_FUNC__ONE_MINUS_CONST_ALPHA |
+			       SEC_C_BLD_FUNC__CONST_ALPHA;
+			break;
+		case DRM_MODE_BLEND_PREMULTI:
+			val |= PRIM_C_BLD_FUNC__ONE_MINUS_SEC_ALPHA |
+			       SEC_C_BLD_FUNC__CONST_ALPHA;
+			break;
+		case DRM_MODE_BLEND_COVERAGE:
+			val |= PRIM_C_BLD_FUNC__ONE_MINUS_SEC_ALPHA |
+			       SEC_C_BLD_FUNC__SEC_ALPHA;
+			break;
+		default:
+			break;
+		}
+	}
+
+	val |= ALPHA(alpha >> 8);
+
+	mutex_lock(&lb->mutex);
+	dpu_lb_write(lb, BLENDCONTROL, val);
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_blendcontrol);
+
+void layerblend_position(struct dpu_layerblend *lb, int x, int y)
+{
+	mutex_lock(&lb->mutex);
+	dpu_lb_write(lb, POSITION, XPOS(x) | YPOS(y));
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(layerblend_position);
+
+struct dpu_layerblend *dpu_lb_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_layerblend *lb;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(lb_ids); i++)
+		if (lb_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(lb_ids))
+		return ERR_PTR(-EINVAL);
+
+	lb = dpu->lb_priv[i];
+
+	mutex_lock(&lb->mutex);
+
+	if (lb->inuse) {
+		mutex_unlock(&lb->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	lb->inuse = true;
+
+	mutex_unlock(&lb->mutex);
+
+	return lb;
+}
+EXPORT_SYMBOL_GPL(dpu_lb_get);
+
+void dpu_lb_put(struct dpu_layerblend *lb)
+{
+	mutex_lock(&lb->mutex);
+
+	lb->inuse = false;
+
+	mutex_unlock(&lb->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_lb_put);
+
+void _dpu_lb_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_layerblend *lb;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(lb_ids); i++)
+		if (lb_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(lb_ids)))
+		return;
+
+	lb = dpu->lb_priv[i];
+
+	layerblend_pixengcfg_dynamic_prim_sel(lb, LB_PRIM_SEL__DISABLE);
+	layerblend_pixengcfg_dynamic_sec_sel(lb, LB_SEC_SEL__DISABLE);
+	layerblend_pixengcfg_clken(lb, CLKEN__AUTOMATIC);
+	layerblend_shdldsel(lb, BOTH);
+	layerblend_shdtoksel(lb, BOTH);
+	layerblend_shden(lb, true);
+}
+
+int dpu_lb_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_layerblend *lb;
+	int ret;
+
+	lb = devm_kzalloc(dpu->dev, sizeof(*lb), GFP_KERNEL);
+	if (!lb)
+		return -ENOMEM;
+
+	dpu->lb_priv[id] = lb;
+
+	lb->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_16);
+	if (!lb->pec_base)
+		return -ENOMEM;
+
+	lb->base = devm_ioremap(dpu->dev, base, SZ_32);
+	if (!lb->base)
+		return -ENOMEM;
+
+	lb->dpu = dpu;
+	lb->id = id;
+	mutex_init(&lb->mutex);
+
+	ret = layerblend_pixengcfg_dynamic_prim_sel(lb, LB_PRIM_SEL__DISABLE);
+	if (ret < 0)
+		return ret;
+
+	_dpu_lb_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-prv.h
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-prv.h
@@ -0,0 +1,467 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+#ifndef __DPU_PRV_H__
+#define __DPU_PRV_H__
+
+#include <linux/firmware/imx/sci.h>
+#include <drm/drm_fourcc.h>
+#include <video/dpu.h>
+
+#define STATICCONTROL			0x8
+#define SHDLDREQSTICKY(lm)		(((lm) & 0xFF) << 24)
+#define SHDLDREQSTICKY_MASK		(0xFF << 24)
+#define BASEADDRESSAUTOUPDATE(lm)	(((lm) & 0xFF) << 16)
+#define BASEADDRESSAUTOUPDATE_MASK	(0xFF << 16)
+#define SHDEN				BIT(0)
+#define BURSTBUFFERMANAGEMENT		0xC
+#define SETNUMBUFFERS(n)		((n) & 0xFF)
+#define SETBURSTLENGTH(n)		(((n) & 0x1F) << 8)
+#define SETBURSTLENGTH_MASK		0x1F00
+#define LINEMODE_MASK			0x80000000U
+#define LINEMODE_SHIFT			31U
+enum linemode {
+	/*
+	 * Mandatory setting for operation in the Display Controller.
+	 * Works also for Blit Engine with marginal performance impact.
+	 */
+	LINEMODE__DISPLAY = 0,
+	/* Recommended setting for operation in the Blit Engine. */
+	LINEMODE__BLIT = 1 << LINEMODE_SHIFT,
+};
+
+#define BITSPERPIXEL(bpp)		(((bpp) & 0x3F) << 16)
+#define STRIDE(n)			(((n) - 1) & 0xFFFF)
+#define LINEWIDTH(w)			(((w) - 1) & 0x3FFF)
+#define LINECOUNT(h)			((((h) - 1) & 0x3FFF) << 16)
+#define ITUFORMAT			BIT(31)
+#define R_BITS(n)			(((n) & 0xF) << 24)
+#define G_BITS(n)			(((n) & 0xF) << 16)
+#define B_BITS(n)			(((n) & 0xF) << 8)
+#define A_BITS(n)			((n) & 0xF)
+#define R_SHIFT(n)			(((n) & 0x1F) << 24)
+#define G_SHIFT(n)			(((n) & 0x1F) << 16)
+#define B_SHIFT(n)			(((n) & 0x1F) << 8)
+#define A_SHIFT(n)			((n) & 0x1F)
+#define Y_BITS(n)			R_BITS(n)
+#define Y_BITS_MASK			0xF000000
+#define U_BITS(n)			G_BITS(n)
+#define U_BITS_MASK			0xF0000
+#define V_BITS(n)			B_BITS(n)
+#define V_BITS_MASK			0xF00
+#define Y_SHIFT(n)			R_SHIFT(n)
+#define Y_SHIFT_MASK			0x1F000000
+#define U_SHIFT(n)			G_SHIFT(n)
+#define U_SHIFT_MASK			0x1F0000
+#define V_SHIFT(n)			B_SHIFT(n)
+#define V_SHIFT_MASK			0x1F00
+#define LAYERXOFFSET(x)			((x) & 0x7FFF)
+#define LAYERYOFFSET(y)			(((y) & 0x7FFF) << 16)
+#define CLIPWINDOWXOFFSET(x)		((x) & 0x7FFF)
+#define CLIPWINDOWYOFFSET(y)		(((y) & 0x7FFF) << 16)
+#define CLIPWINDOWWIDTH(w)		(((w) - 1) & 0x3FFF)
+#define CLIPWINDOWHEIGHT(h)		((((h) - 1) & 0x3FFF) << 16)
+#define CONSTANTALPHA_MASK		0xFF
+#define CONSTANTALPHA(n)		((n) & CONSTANTALPHA_MASK)
+#define	PALETTEENABLE			BIT(0)
+typedef enum {
+	TILE_FILL_ZERO,
+	TILE_FILL_CONSTANT,
+	TILE_PAD,
+	TILE_PAD_ZERO,
+} tilemode_t;
+#define ALPHASRCENABLE			BIT(8)
+#define ALPHACONSTENABLE		BIT(9)
+#define ALPHAMASKENABLE			BIT(10)
+#define ALPHATRANSENABLE		BIT(11)
+#define ALPHA_ENABLE_MASK		(ALPHASRCENABLE  | ALPHACONSTENABLE | \
+					 ALPHAMASKENABLE | ALPHATRANSENABLE)
+#define RGBALPHASRCENABLE		BIT(12)
+#define RGBALPHACONSTENABLE		BIT(13)
+#define RGBALPHAMASKENABLE		BIT(14)
+#define RGBALPHATRANSENABLE		BIT(15)
+#define RGB_ENABLE_MASK			(RGBALPHASRCENABLE   | \
+					 RGBALPHACONSTENABLE | \
+					 RGBALPHAMASKENABLE  | \
+					 RGBALPHATRANSENABLE)
+#define PREMULCONSTRGB			BIT(16)
+typedef enum {
+	YUVCONVERSIONMODE__OFF,
+	YUVCONVERSIONMODE__ITU601,
+	YUVCONVERSIONMODE__ITU601_FR,
+	YUVCONVERSIONMODE__ITU709,
+} yuvconversionmode_t;
+#define YUVCONVERSIONMODE_MASK		0x60000
+#define YUVCONVERSIONMODE(m)		(((m) & 0x3) << 17)
+#define GAMMAREMOVEENABLE		BIT(20)
+#define CLIPWINDOWENABLE		BIT(30)
+#define SOURCEBUFFERENABLE		BIT(31)
+#define EMPTYFRAME			BIT(31)
+#define FRAMEWIDTH(w)			(((w) - 1) & 0x3FFF)
+#define FRAMEHEIGHT(h)			((((h) - 1) & 0x3FFF) << 16)
+#define DELTAX_MASK			0x3F000
+#define DELTAY_MASK			0xFC0000
+#define DELTAX(x)			(((x) & 0x3F) << 12)
+#define DELTAY(y)			(((y) & 0x3F) << 18)
+#define YUV422UPSAMPLINGMODE_MASK	BIT(5)
+#define YUV422UPSAMPLINGMODE(m)		(((m) & 0x1) << 5)
+typedef enum {
+	YUV422UPSAMPLINGMODE__REPLICATE,
+	YUV422UPSAMPLINGMODE__INTERPOLATE,
+} yuv422upsamplingmode_t;
+#define INPUTSELECT_MASK		0x18
+#define INPUTSELECT(s)			(((s) & 0x3) << 3)
+typedef enum {
+	INPUTSELECT__INACTIVE,
+	INPUTSELECT__COMPPACK,
+	INPUTSELECT__ALPHAMASK,
+	INPUTSELECT__COORDINATE,
+} inputselect_t;
+#define RASTERMODE_MASK			0x7
+#define RASTERMODE(m)			((m) & 0x7)
+typedef enum {
+	RASTERMODE__NORMAL,
+	RASTERMODE__DECODE,
+	RASTERMODE__ARBITRARY,
+	RASTERMODE__PERSPECTIVE,
+	RASTERMODE__YUV422,
+	RASTERMODE__AFFINE,
+} rastermode_t;
+#define SHDTOKGEN			BIT(0)
+#define FETCHTYPE_MASK			0xF
+
+#define DPU_FRAC_PLANE_LAYER_NUM	8
+
+#define DPU_VPROC_CAP_HSCALER4	BIT(0)
+#define DPU_VPROC_CAP_VSCALER4	BIT(1)
+#define DPU_VPROC_CAP_HSCALER5	BIT(2)
+#define DPU_VPROC_CAP_VSCALER5	BIT(3)
+#define DPU_VPROC_CAP_FETCHECO0	BIT(4)
+#define DPU_VPROC_CAP_FETCHECO1	BIT(5)
+
+#define DPU_VPROC_CAP_HSCALE	(DPU_VPROC_CAP_HSCALER4 | \
+				 DPU_VPROC_CAP_HSCALER5)
+#define DPU_VPROC_CAP_VSCALE	(DPU_VPROC_CAP_VSCALER4 | \
+				 DPU_VPROC_CAP_VSCALER5)
+#define DPU_VPROC_CAP_FETCHECO	(DPU_VPROC_CAP_FETCHECO0 | \
+				 DPU_VPROC_CAP_FETCHECO1)
+
+struct dpu_unit {
+	char *name;
+	unsigned int num;
+	const unsigned int *ids;
+	const unsigned long *pec_ofss;	/* PixEngCFG */
+	const unsigned long *ofss;
+	const unsigned int *dprc_ids;
+};
+
+struct cm_reg_ofs {
+	u32 ipidentifier;
+	u32 lockunlock;
+	u32 lockstatus;
+	u32 userinterruptmask;
+	u32 interruptenable;
+	u32 interruptpreset;
+	u32 interruptclear;
+	u32 interruptstatus;
+	u32 userinterruptenable;
+	u32 userinterruptpreset;
+	u32 userinterruptclear;
+	u32 userinterruptstatus;
+	u32 generalpurpose;
+};
+
+struct dpu_data {
+	unsigned long cm_ofs;			/* common */
+	const struct dpu_unit *cfs;
+	const struct dpu_unit *decs;
+	const struct dpu_unit *eds;
+	const struct dpu_unit *fds;
+	const struct dpu_unit *fes;
+	const struct dpu_unit *fgs;
+	const struct dpu_unit *fls;
+	const struct dpu_unit *fws;
+	const struct dpu_unit *hss;
+	const struct dpu_unit *lbs;
+	const struct dpu_unit *sigs;
+	const struct dpu_unit *sts;
+	const struct dpu_unit *tcons;
+	const struct dpu_unit *vss;
+	const struct cm_reg_ofs *cm_reg_ofs;
+	const unsigned long *unused_irq;
+
+	unsigned int syncmode_min_prate;	/* need pixel combiner, KHz */
+	unsigned int singlemode_max_width;
+	unsigned int master_stream_id;
+
+	u32 plane_src_mask;
+
+	bool has_dual_ldb;
+};
+
+struct dpu_soc {
+	struct device		*dev;
+	const struct dpu_data	*data;
+	spinlock_t		lock;
+	struct list_head	list;
+
+	struct device		*pd_dc_dev;
+	struct device		*pd_pll0_dev;
+	struct device		*pd_pll1_dev;
+	struct device_link	*pd_dc_link;
+	struct device_link	*pd_pll0_link;
+	struct device_link	*pd_pll1_link;
+
+	void __iomem		*cm_reg;
+
+	int			id;
+	int			usecount;
+
+	int			irq_extdst0_shdload;
+	int			irq_extdst4_shdload;
+	int			irq_extdst1_shdload;
+	int			irq_extdst5_shdload;
+	int			irq_disengcfg_shdload0;
+	int			irq_disengcfg_framecomplete0;
+	int			irq_sig0_shdload;
+	int			irq_sig0_valid;
+	int			irq_disengcfg_shdload1;
+	int			irq_disengcfg_framecomplete1;
+	int			irq_sig1_shdload;
+	int			irq_sig1_valid;
+	int			irq_line_num;
+
+	bool			irq_chip_pm_get_extdst0_shdload;
+	bool			irq_chip_pm_get_extdst4_shdload;
+	bool			irq_chip_pm_get_extdst1_shdload;
+	bool			irq_chip_pm_get_extdst5_shdload;
+	bool			irq_chip_pm_get_disengcfg_shdload0;
+	bool			irq_chip_pm_get_disengcfg_framecomplete0;
+	bool			irq_chip_pm_get_sig0_shdload;
+	bool			irq_chip_pm_get_sig0_valid;
+	bool			irq_chip_pm_get_disengcfg_shdload1;
+	bool			irq_chip_pm_get_disengcfg_framecomplete1;
+	bool			irq_chip_pm_get_sig1_shdload;
+	bool			irq_chip_pm_get_sig1_valid;
+
+	struct irq_domain	*domain;
+
+	struct imx_sc_ipc	*dpu_ipc_handle;
+
+	struct dpu_constframe	*cf_priv[4];
+	struct dpu_disengcfg	*dec_priv[2];
+	struct dpu_extdst	*ed_priv[4];
+	struct dpu_fetchunit	*fd_priv[2];
+	struct dpu_fetchunit	*fe_priv[4];
+	struct dpu_framegen	*fg_priv[2];
+	struct dpu_fetchunit	*fl_priv[1];
+	struct dpu_fetchunit	*fw_priv[1];
+	struct dpu_hscaler	*hs_priv[3];
+	struct dpu_layerblend	*lb_priv[4];
+	struct dpu_signature	*sig_priv[2];
+	struct dpu_store	*st_priv[1];
+	struct dpu_tcon		*tcon_priv[2];
+	struct dpu_vscaler	*vs_priv[3];
+};
+
+int dpu_format_horz_chroma_subsampling(u32 format);
+int dpu_format_vert_chroma_subsampling(u32 format);
+int dpu_format_num_planes(u32 format);
+int dpu_format_plane_width(int width, u32 format, int plane);
+int dpu_format_plane_height(int height, u32 format, int plane);
+
+#define _DECLARE_DPU_UNIT_INIT_FUNC(block)			\
+void _dpu_##block##_init(struct dpu_soc *dpu, unsigned int id)	\
+
+_DECLARE_DPU_UNIT_INIT_FUNC(cf);
+_DECLARE_DPU_UNIT_INIT_FUNC(dec);
+_DECLARE_DPU_UNIT_INIT_FUNC(ed);
+_DECLARE_DPU_UNIT_INIT_FUNC(fd);
+_DECLARE_DPU_UNIT_INIT_FUNC(fe);
+_DECLARE_DPU_UNIT_INIT_FUNC(fg);
+_DECLARE_DPU_UNIT_INIT_FUNC(fl);
+_DECLARE_DPU_UNIT_INIT_FUNC(fw);
+_DECLARE_DPU_UNIT_INIT_FUNC(hs);
+_DECLARE_DPU_UNIT_INIT_FUNC(lb);
+_DECLARE_DPU_UNIT_INIT_FUNC(sig);
+_DECLARE_DPU_UNIT_INIT_FUNC(st);
+_DECLARE_DPU_UNIT_INIT_FUNC(tcon);
+_DECLARE_DPU_UNIT_INIT_FUNC(vs);
+
+#define DECLARE_DPU_UNIT_INIT_FUNC(block)			\
+int dpu_##block##_init(struct dpu_soc *dpu, unsigned int id,	\
+			 unsigned long pec_base, unsigned long base)
+
+DECLARE_DPU_UNIT_INIT_FUNC(cf);
+DECLARE_DPU_UNIT_INIT_FUNC(dec);
+DECLARE_DPU_UNIT_INIT_FUNC(ed);
+DECLARE_DPU_UNIT_INIT_FUNC(fd);
+DECLARE_DPU_UNIT_INIT_FUNC(fe);
+DECLARE_DPU_UNIT_INIT_FUNC(fg);
+DECLARE_DPU_UNIT_INIT_FUNC(fl);
+DECLARE_DPU_UNIT_INIT_FUNC(fw);
+DECLARE_DPU_UNIT_INIT_FUNC(hs);
+DECLARE_DPU_UNIT_INIT_FUNC(lb);
+DECLARE_DPU_UNIT_INIT_FUNC(sig);
+DECLARE_DPU_UNIT_INIT_FUNC(st);
+DECLARE_DPU_UNIT_INIT_FUNC(tcon);
+DECLARE_DPU_UNIT_INIT_FUNC(vs);
+
+static inline u32 dpu_pec_fu_read(struct dpu_fetchunit *fu, unsigned int offset)
+{
+	return readl(fu->pec_base + offset);
+}
+
+static inline void dpu_pec_fu_write(struct dpu_fetchunit *fu,
+				    unsigned int offset, u32 value)
+{
+	writel(value, fu->pec_base + offset);
+}
+
+static inline u32 dpu_fu_read(struct dpu_fetchunit *fu, unsigned int offset)
+{
+	return readl(fu->base + offset);
+}
+
+static inline void dpu_fu_write(struct dpu_fetchunit *fu,
+				unsigned int offset, u32 value)
+{
+	writel(value, fu->base + offset);
+}
+
+static inline u32 rgb_color(u8 r, u8 g, u8 b, u8 a)
+{
+	return (r << 24) | (g << 16) | (b << 8) | a;
+}
+
+static inline u32 yuv_color(u8 y, u8 u, u8 v)
+{
+	return (y << 24) | (u << 16) | (v << 8);
+}
+
+void tcon_get_pc(struct dpu_tcon *tcon, void *data);
+
+static const unsigned int cf_ids[] = {0, 1, 4, 5};
+static const unsigned int dec_ids[] = {0, 1};
+static const unsigned int ed_ids[] = {0, 1, 4, 5};
+static const unsigned int fd_ids[] = {0, 1};
+static const unsigned int fe_ids[] = {0, 1, 2, 9};
+static const unsigned int fg_ids[] = {0, 1};
+static const unsigned int fl_ids[] = {0};
+static const unsigned int fw_ids[] = {2};
+static const unsigned int hs_ids[] = {4, 5, 9};
+static const unsigned int lb_ids[] = {0, 1, 2, 3};
+static const unsigned int sig_ids[] = {0, 1};
+static const unsigned int st_ids[] = {9};
+static const unsigned int tcon_ids[] = {0, 1};
+static const unsigned int vs_ids[] = {4, 5, 9};
+
+static const unsigned int fd_dprc_ids[] = {3, 4};
+static const unsigned int fl_dprc_ids[] = {2};
+static const unsigned int fw_dprc_ids[] = {5};
+
+struct dpu_pixel_format {
+	u32 pixel_format;
+	u32 bits;
+	u32 shift;
+};
+
+static const struct dpu_pixel_format dpu_pixel_format_matrix[] = {
+	{
+		DRM_FORMAT_ARGB8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(8),
+		R_SHIFT(16) | G_SHIFT(8)  | B_SHIFT(0)  | A_SHIFT(24),
+	}, {
+		DRM_FORMAT_XRGB8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(0),
+		R_SHIFT(16) | G_SHIFT(8)  | B_SHIFT(0)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_ABGR8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(8),
+		R_SHIFT(0)  | G_SHIFT(8)  | B_SHIFT(16) | A_SHIFT(24),
+	}, {
+		DRM_FORMAT_XBGR8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(0),
+		R_SHIFT(0)  | G_SHIFT(8)  | B_SHIFT(16) | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_RGBA8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(8),
+		R_SHIFT(24) | G_SHIFT(16) | B_SHIFT(8)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_RGBX8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(0),
+		R_SHIFT(24) | G_SHIFT(16) | B_SHIFT(8)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_BGRA8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(8),
+		R_SHIFT(8)  | G_SHIFT(16) | B_SHIFT(24) | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_BGRX8888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(0),
+		R_SHIFT(8)  | G_SHIFT(16) | B_SHIFT(24) | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_RGB888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(0),
+		R_SHIFT(16) | G_SHIFT(8)  | B_SHIFT(0)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_BGR888,
+		R_BITS(8)   | G_BITS(8)   | B_BITS(8)   | A_BITS(0),
+		R_SHIFT(0)  | G_SHIFT(8)  | B_SHIFT(16) | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_RGB565,
+		R_BITS(5)   | G_BITS(6)   | B_BITS(5)   | A_BITS(0),
+		R_SHIFT(11) | G_SHIFT(5)  | B_SHIFT(0)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_YUYV,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(8)  | V_SHIFT(8)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_UYVY,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(8)  | U_SHIFT(0)  | V_SHIFT(0)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_NV12,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(0)  | V_SHIFT(8)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_NV21,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(8)  | V_SHIFT(0)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_NV16,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(0)  | V_SHIFT(8)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_NV61,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(8)  | V_SHIFT(0)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_NV24,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(0)  | V_SHIFT(8)  | A_SHIFT(0),
+	}, {
+		DRM_FORMAT_NV42,
+		Y_BITS(8)   | U_BITS(8)   | V_BITS(8)   | A_BITS(0),
+		Y_SHIFT(0)  | U_SHIFT(8)  | V_SHIFT(0)  | A_SHIFT(0),
+	},
+};
+
+int dpu_sc_misc_get_handle(struct dpu_soc *dpu);
+int dpu_pxlink_set_mst_addr(struct dpu_soc *dpu, int disp_id, u32 val);
+int dpu_pxlink_set_mst_enable(struct dpu_soc *dpu, int disp_id, bool enable);
+int dpu_pxlink_set_mst_valid(struct dpu_soc *dpu, int disp_id, bool enable);
+int dpu_pxlink_set_sync_ctrl(struct dpu_soc *dpu, int disp_id, bool enable);
+int dpu_pxlink_set_dc_sync_mode(struct dpu_soc *dpu, bool enable);
+int dpu_sc_misc_init(struct dpu_soc *dpu);
+#endif				/* __DPU_PRV_H__ */
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-sc-misc.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-sc-misc.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include "dpu-prv.h"
+
+static inline int
+dpu_sc_misc_set_ctrl(struct dpu_soc *dpu, u32 rsc, u8 ctrl, u32 val)
+{
+	return imx_sc_misc_set_control(dpu->dpu_ipc_handle, rsc, ctrl, val);
+}
+
+int dpu_sc_misc_get_handle(struct dpu_soc *dpu)
+{
+	return imx_scu_get_handle(&dpu->dpu_ipc_handle);
+}
+
+int dpu_pxlink_set_mst_addr(struct dpu_soc *dpu, int disp_id, u32 val)
+{
+	u32 rsc = dpu->id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+	u8 ctrl = disp_id ?
+		IMX_SC_C_PXL_LINK_MST2_ADDR : IMX_SC_C_PXL_LINK_MST1_ADDR;
+
+	return dpu_sc_misc_set_ctrl(dpu, rsc, ctrl, val);
+}
+
+int dpu_pxlink_set_mst_enable(struct dpu_soc *dpu, int disp_id, bool enable)
+{
+	u32 rsc = dpu->id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+	u8 ctrl = disp_id ?
+		IMX_SC_C_PXL_LINK_MST2_ENB: IMX_SC_C_PXL_LINK_MST1_ENB;
+
+	return dpu_sc_misc_set_ctrl(dpu, rsc, ctrl, enable);
+}
+
+int dpu_pxlink_set_mst_valid(struct dpu_soc *dpu, int disp_id, bool enable)
+{
+	u32 rsc = dpu->id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+	u8 ctrl = disp_id ?
+		IMX_SC_C_PXL_LINK_MST2_VLD : IMX_SC_C_PXL_LINK_MST1_VLD;
+
+	return dpu_sc_misc_set_ctrl(dpu, rsc, ctrl, enable);
+}
+
+int dpu_pxlink_set_sync_ctrl(struct dpu_soc *dpu, int disp_id, bool enable)
+{
+	u32 rsc = dpu->id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+	u8 ctrl = disp_id ? IMX_SC_C_SYNC_CTRL1 : IMX_SC_C_SYNC_CTRL0;
+
+	return dpu_sc_misc_set_ctrl(dpu, rsc, ctrl, enable);
+}
+
+int dpu_pxlink_set_dc_sync_mode(struct dpu_soc *dpu, bool enable)
+{
+	u32 rsc = dpu->id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+
+	return dpu_sc_misc_set_ctrl(dpu, rsc, IMX_SC_C_MODE, enable);
+}
+
+/* KACHUNK_CNT is needed for blit engine */
+int dpu_sc_misc_set_kachunk_cnt(struct dpu_soc *dpu, u32 cnt)
+{
+	u32 rsc = dpu->id ? IMX_SC_R_DC_1 : IMX_SC_R_DC_0;
+
+	return dpu_sc_misc_set_ctrl(dpu, rsc, IMX_SC_C_KACHUNK_CNT, cnt);
+}
+
+int dpu_sc_misc_init(struct dpu_soc *dpu)
+{
+	int disp_id, ret = 0;
+
+	for (disp_id = 0; disp_id < 2; disp_id++) {
+		ret |= dpu_pxlink_set_mst_addr(dpu, disp_id, 0);
+		ret |= dpu_pxlink_set_mst_enable(dpu, disp_id, false);
+		ret |= dpu_pxlink_set_mst_valid(dpu, disp_id, false);
+		ret |= dpu_pxlink_set_sync_ctrl(dpu, disp_id, false);
+	}
+
+	ret |= dpu_sc_misc_set_kachunk_cnt(dpu, 32);
+
+	return ret;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-signature.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-signature.c
@@ -0,0 +1,392 @@
+/*
+ * Copyright 2019,2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include "dpu-prv.h"
+
+#define STATICCONTROL		0x8
+#define SHDLDSEL		BIT(4)
+#define LOCAL			0
+#define GLOBAL			BIT(4)
+#define PANICCOLOR		0xC
+#define EVALCONTRL(n)		(0x10 + (n) * 0x24)
+#define ENGLOBALPANIC		BIT(17)
+#define ENLOCALPANIC		BIT(16)
+#define ALPHAINV		BIT(9)
+#define ALPHAMASK		BIT(8)
+#define ENCRC			BIT(1)
+#define ENEVALWIN		BIT(0)
+#define EVALUPPERLEFT(n)	(0x14 + (n) * 0x24)
+#define EVALLOWERRIGHT(n)	(0x18 + (n) * 0x24)
+#define YEVAL(y)		(((y) & 0x3FFF) << 16)
+#define XEVAL(x)		((x) & 0x3FFF)
+#define SIGCRCREDREF(n)		(0x1C + (n) * 0x24)
+#define SIGCRCGREENREF(n)	(0x20 + (n) * 0x24)
+#define SIGCRCBLUEREF(n)	(0x24 + (n) * 0x24)
+#define SIGCRCRED(n)		(0x28 + (n) * 0x24)
+#define SIGCRCGREEN(n)		(0x2C + (n) * 0x24)
+#define SIGCRCBLUE(n)		(0x30 + (n) * 0x24)
+#define SHADOWLOAD		0x130
+#define SHDLDREQ(n)		BIT(n)
+#define CONTINUOUSMODE		0x134
+#define ENCONT			BIT(0)
+#define SOFTWAREKICK		0x138
+#define KICK			BIT(0)
+#define STATUS			0x13C
+#define STSSIGIDLE		BIT(20)
+#define STSSIGVALID		BIT(16)
+#define STSSIGERROR(n)		BIT(n)
+#define STSSIGERROR_MASK	0xFF
+
+struct dpu_signature {
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_sig_read(struct dpu_signature *sig, unsigned int offset)
+{
+	return readl(sig->base + offset);
+}
+
+static inline void dpu_sig_write(struct dpu_signature *sig,
+				 unsigned int offset, u32 value)
+{
+	writel(value, sig->base + offset);
+}
+
+void signature_shden(struct dpu_signature *sig, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, STATICCONTROL);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_sig_write(sig, STATICCONTROL, val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_shden);
+
+void signature_shdldsel_local(struct dpu_signature *sig)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, STATICCONTROL);
+	val &= ~GLOBAL;
+	dpu_sig_write(sig, STATICCONTROL, val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_shdldsel_local);
+
+void signature_shdldsel_global(struct dpu_signature *sig)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, STATICCONTROL);
+	dpu_sig_write(sig, STATICCONTROL, val | GLOBAL);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_shdldsel_global);
+
+void
+signature_global_panic(struct dpu_signature *sig, unsigned int win, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, EVALCONTRL(win));
+	if (enable)
+		val |= ENGLOBALPANIC;
+	else
+		val &= ~ENGLOBALPANIC;
+	dpu_sig_write(sig, EVALCONTRL(win), val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_global_panic);
+
+void
+signature_local_panic(struct dpu_signature *sig, unsigned int win, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, EVALCONTRL(win));
+	if (enable)
+		val |= ENLOCALPANIC;
+	else
+		val &= ~ENLOCALPANIC;
+	dpu_sig_write(sig, EVALCONTRL(win), val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_local_panic);
+
+void
+signature_alpha_mask(struct dpu_signature *sig, unsigned int win, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, EVALCONTRL(win));
+	if (enable)
+		val |= ALPHAMASK;
+	else
+		val &= ~ALPHAMASK;
+	dpu_sig_write(sig, EVALCONTRL(win), val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_alpha_mask);
+
+void signature_crc(struct dpu_signature *sig, unsigned int win, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, EVALCONTRL(win));
+	if (enable)
+		val |= ENCRC;
+	else
+		val &= ~ENCRC;
+	dpu_sig_write(sig, EVALCONTRL(win), val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_crc);
+
+void
+signature_eval_win(struct dpu_signature *sig, unsigned int win, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, EVALCONTRL(win));
+	if (enable)
+		val |= ENEVALWIN;
+	else
+		val &= ~ENEVALWIN;
+	dpu_sig_write(sig, EVALCONTRL(win), val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_eval_win);
+
+void signature_win(struct dpu_signature *sig, unsigned int win,
+		   int xul, int yul, int xlr, int ylr)
+{
+	mutex_lock(&sig->mutex);
+	dpu_sig_write(sig, EVALUPPERLEFT(win),  XEVAL(xul)   | YEVAL(yul));
+	dpu_sig_write(sig, EVALLOWERRIGHT(win), XEVAL(--xlr) | YEVAL(--ylr));
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_win);
+
+void signature_crc_value(struct dpu_signature *sig, unsigned int win,
+			 u32 *red, u32 *green, u32 *blue)
+{
+	mutex_lock(&sig->mutex);
+	*red   = dpu_sig_read(sig, SIGCRCRED(win));
+	*green = dpu_sig_read(sig, SIGCRCGREEN(win));
+	*blue  = dpu_sig_read(sig, SIGCRCBLUE(win));
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_crc_value);
+
+void signature_shdldreq(struct dpu_signature *sig, u8 win_mask)
+{
+	mutex_lock(&sig->mutex);
+	dpu_sig_write(sig, SHADOWLOAD, win_mask);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_shdldreq);
+
+void signature_continuous_mode(struct dpu_signature *sig, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, CONTINUOUSMODE);
+	if (enable)
+		val |= ENCONT;
+	else
+		val &= ~ENCONT;
+	dpu_sig_write(sig, CONTINUOUSMODE, val);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_continuous_mode);
+
+void signature_kick(struct dpu_signature *sig)
+{
+	mutex_lock(&sig->mutex);
+	dpu_sig_write(sig, SOFTWAREKICK, KICK);
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(signature_kick);
+
+bool signature_is_idle(struct dpu_signature *sig)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, STATUS);
+	mutex_unlock(&sig->mutex);
+
+	return !!(val & STSSIGIDLE);
+}
+EXPORT_SYMBOL_GPL(signature_is_idle);
+
+void signature_wait_for_idle(struct dpu_signature *sig)
+{
+	unsigned long timeout = jiffies + msecs_to_jiffies(100);
+	bool idle;
+
+	do {
+		idle = signature_is_idle(sig);
+	} while (!idle && time_before(jiffies, timeout));
+
+	if (idle)
+		dev_dbg(sig->dpu->dev, "Signature%d is idle\n", sig->id);
+	else
+		dev_err(sig->dpu->dev,
+			"failed to wait for Signature%d idle\n", sig->id);
+}
+EXPORT_SYMBOL_GPL(signature_wait_for_idle);
+
+bool signature_is_valid(struct dpu_signature *sig)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, STATUS);
+	mutex_unlock(&sig->mutex);
+
+	return !!(val & STSSIGVALID);
+}
+EXPORT_SYMBOL_GPL(signature_is_valid);
+
+bool signature_is_error(struct dpu_signature *sig, u8 *err_win_mask)
+{
+	u32 val;
+
+	mutex_lock(&sig->mutex);
+	val = dpu_sig_read(sig, STATUS);
+	mutex_unlock(&sig->mutex);
+
+	*err_win_mask = val & STSSIGERROR_MASK;
+
+	return !!(*err_win_mask);
+}
+EXPORT_SYMBOL_GPL(signature_is_error);
+
+struct dpu_signature *dpu_sig_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_signature *sig;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(sig_ids); i++)
+		if (sig_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(sig_ids))
+		return ERR_PTR(-EINVAL);
+
+	sig = dpu->sig_priv[i];
+
+	mutex_lock(&sig->mutex);
+
+	if (sig->inuse) {
+		mutex_unlock(&sig->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	sig->inuse = true;
+
+	mutex_unlock(&sig->mutex);
+
+	return sig;
+}
+EXPORT_SYMBOL_GPL(dpu_sig_get);
+
+void dpu_sig_put(struct dpu_signature *sig)
+{
+	mutex_lock(&sig->mutex);
+
+	sig->inuse = false;
+
+	mutex_unlock(&sig->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_sig_put);
+
+struct dpu_signature *dpu_aux_sig_peek(struct dpu_signature *sig)
+{
+	return sig->dpu->sig_priv[sig->id ^ 1];
+}
+EXPORT_SYMBOL_GPL(dpu_aux_sig_peek);
+
+void _dpu_sig_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_signature *sig;
+	int i, j;
+
+	for (i = 0; i < ARRAY_SIZE(sig_ids); i++)
+		if (sig_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(sig_ids)))
+		return;
+
+	sig = dpu->sig_priv[i];
+
+	signature_shden(sig, true);
+	signature_shdldsel_local(sig);
+	for (j = 0; j < MAX_DPU_SIGNATURE_WIN_NUM; j++) {
+		signature_global_panic(sig, j, false);
+		signature_local_panic(sig, j, false);
+		signature_alpha_mask(sig, j, false);
+		signature_crc(sig, j, false);
+		signature_eval_win(sig, j, false);
+		signature_continuous_mode(sig, false);
+	}
+}
+
+int dpu_sig_init(struct dpu_soc *dpu, unsigned int id,
+			unsigned long unused, unsigned long base)
+{
+	struct dpu_signature *sig;
+
+	sig = devm_kzalloc(dpu->dev, sizeof(*sig), GFP_KERNEL);
+	if (!sig)
+		return -ENOMEM;
+
+	dpu->sig_priv[id] = sig;
+
+	sig->base = devm_ioremap(dpu->dev, base, SZ_512);
+	if (!sig->base)
+		return -ENOMEM;
+
+	sig->dpu = dpu;
+	sig->id = id;
+	mutex_init(&sig->mutex);
+
+	_dpu_sig_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-store.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-store.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright 2018-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_STATIC		0x8
+#define DIV(n)				(((n) & 0xFF) << 16)
+#define DIV_RESET			0x80
+
+struct dpu_store {
+	void __iomem *pec_base;
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+};
+
+static inline u32 dpu_pec_st_read(struct dpu_store *st, unsigned int offset)
+{
+	return readl(st->pec_base + offset);
+}
+
+static inline void dpu_pec_st_write(struct dpu_store *st,
+				    unsigned int offset, u32 value)
+{
+	writel(value, st->pec_base + offset);
+}
+
+void store_pixengcfg_syncmode_fixup(struct dpu_store *st, bool enable)
+{
+	struct dpu_soc *dpu;
+	u32 val;
+
+	if (!st)
+		return;
+
+	dpu = st->dpu;
+
+	mutex_lock(&st->mutex);
+	val = dpu_pec_st_read(st, PIXENGCFG_STATIC);
+	if (enable)
+		val |= BIT(16);
+	else
+		val &= ~BIT(16);
+	dpu_pec_st_write(st, PIXENGCFG_STATIC, val);
+	mutex_unlock(&st->mutex);
+}
+EXPORT_SYMBOL_GPL(store_pixengcfg_syncmode_fixup);
+
+struct dpu_store *dpu_st_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_store *st;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(st_ids); i++)
+		if (st_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(st_ids))
+		return ERR_PTR(-EINVAL);
+
+	st = dpu->st_priv[i];
+
+	mutex_lock(&st->mutex);
+
+	if (st->inuse) {
+		mutex_unlock(&st->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	st->inuse = true;
+
+	mutex_unlock(&st->mutex);
+
+	return st;
+}
+EXPORT_SYMBOL_GPL(dpu_st_get);
+
+void dpu_st_put(struct dpu_store *st)
+{
+	mutex_lock(&st->mutex);
+
+	st->inuse = false;
+
+	mutex_unlock(&st->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_st_put);
+
+void _dpu_st_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_store *st;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(st_ids); i++)
+		if (st_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(st_ids)))
+		return;
+
+	st = dpu->st_priv[i];
+
+	dpu_pec_st_write(st, PIXENGCFG_STATIC, SHDEN | DIV(DIV_RESET));
+}
+
+int dpu_st_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_store *st;
+	int i;
+
+	st = devm_kzalloc(dpu->dev, sizeof(*st), GFP_KERNEL);
+	if (!st)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(st_ids); i++)
+		if (st_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(st_ids))
+		return -EINVAL;
+
+	dpu->st_priv[i] = st;
+
+	st->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_32);
+	if (!st->pec_base)
+		return -ENOMEM;
+
+	st->base = devm_ioremap(dpu->dev, base, SZ_256);
+	if (!st->base)
+		return -ENOMEM;
+
+	st->dpu = dpu;
+	st->id = id;
+	mutex_init(&st->mutex);
+
+	_dpu_st_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-tcon.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-tcon.c
@@ -0,0 +1,330 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/media-bus-format.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include <video/imx8-pc.h>
+#include "dpu-prv.h"
+
+#define SSQCNTS			0
+#define SSQCYCLE		0x8
+#define SWRESET			0xC
+#define TCON_CTRL		0x10
+#define BYPASS			BIT(3)
+#define RSDSINVCTRL		0x14
+#define MAPBIT3_0		0x18
+#define MAPBIT7_4		0x1C
+#define MAPBIT11_8		0x20
+#define MAPBIT15_12		0x24
+#define MAPBIT19_16		0x28
+#define MAPBIT23_20		0x2C
+#define MAPBIT27_24		0x30
+#define MAPBIT31_28		0x34
+#define MAPBIT34_32		0x38
+#define MAPBIT3_0_DUAL		0x3C
+#define MAPBIT7_4_DUAL		0x40
+#define MAPBIT11_8_DUAL		0x44
+#define MAPBIT15_12_DUAL	0x48
+#define MAPBIT19_16_DUAL	0x4C
+#define MAPBIT23_20_DUAL	0x50
+#define MAPBIT27_24_DUAL	0x54
+#define MAPBIT31_28_DUAL	0x58
+#define MAPBIT34_32_DUAL	0x5C
+#define SPGPOSON(n)		(0x60 + (n) * 16)
+#define X(n)			(((n) & 0x7FFF) << 16)
+#define Y(n)			((n) & 0x7FFF)
+#define SPGMASKON(n)		(0x64 + (n) * 16)
+#define SPGPOSOFF(n)		(0x68 + (n) * 16)
+#define SPGMASKOFF(n)		(0x6C + (n) * 16)
+#define SMXSIGS(n)		(0x120 + (n) * 8)
+#define SMXFCTTABLE(n)		(0x124 + (n) * 8)
+#define RESET_OVER_UNFERFLOW	0x180
+#define DUAL_DEBUG		0x184
+
+struct dpu_tcon {
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+	struct pc *pc;
+};
+
+static inline u32 dpu_tcon_read(struct dpu_tcon *tcon, unsigned int offset)
+{
+	return readl(tcon->base + offset);
+}
+
+static inline void dpu_tcon_write(struct dpu_tcon *tcon,
+				  unsigned int offset, u32 value)
+{
+	writel(value, tcon->base + offset);
+}
+
+int tcon_set_fmt(struct dpu_tcon *tcon, u32 bus_format)
+{
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB888_1X24:
+		dpu_tcon_write(tcon, MAPBIT3_0,   0x19181716);
+		dpu_tcon_write(tcon, MAPBIT7_4,   0x1d1c1b1a);
+		dpu_tcon_write(tcon, MAPBIT11_8,  0x0f0e0d0c);
+		dpu_tcon_write(tcon, MAPBIT15_12, 0x13121110);
+		dpu_tcon_write(tcon, MAPBIT19_16, 0x05040302);
+		dpu_tcon_write(tcon, MAPBIT23_20, 0x09080706);
+		break;
+	case MEDIA_BUS_FMT_RGB101010_1X30:
+	case MEDIA_BUS_FMT_RGB888_1X30_PADLO:
+	case MEDIA_BUS_FMT_RGB666_1X30_PADLO:
+	case MEDIA_BUS_FMT_RGB565_1X30_PADLO:
+		dpu_tcon_write(tcon, MAPBIT3_0,   0x17161514);
+		dpu_tcon_write(tcon, MAPBIT7_4,   0x1b1a1918);
+		dpu_tcon_write(tcon, MAPBIT11_8,  0x0b0a1d1c);
+		dpu_tcon_write(tcon, MAPBIT15_12, 0x0f0e0d0c);
+		dpu_tcon_write(tcon, MAPBIT19_16, 0x13121110);
+		dpu_tcon_write(tcon, MAPBIT23_20, 0x03020100);
+		dpu_tcon_write(tcon, MAPBIT27_24, 0x07060504);
+		dpu_tcon_write(tcon, MAPBIT31_28, 0x00000908);
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(tcon_set_fmt);
+
+/* This function is used to workaround TKT320590 which is related to DPR/PRG. */
+void tcon_set_operation_mode(struct dpu_tcon *tcon)
+{
+	u32 val;
+
+	val = dpu_tcon_read(tcon, TCON_CTRL);
+	val &= ~BYPASS;
+	dpu_tcon_write(tcon, TCON_CTRL, val);
+}
+EXPORT_SYMBOL_GPL(tcon_set_operation_mode);
+
+void tcon_cfg_videomode(struct dpu_tcon *tcon,
+			struct drm_display_mode *m, bool side_by_side)
+{
+	u32 val;
+	int hdisplay, hsync_start, hsync_end;
+	int vdisplay, vsync_start, vsync_end;
+	int y;
+
+	hdisplay = m->hdisplay;
+	vdisplay = m->vdisplay;
+	hsync_start = m->hsync_start;
+	vsync_start = m->vsync_start;
+	hsync_end = m->hsync_end;
+	vsync_end = m->vsync_end;
+
+	if (side_by_side) {
+		hdisplay /= 2;
+		hsync_start /= 2;
+		hsync_end /= 2;
+	}
+
+	/*
+	 * TKT320590:
+	 * Turn TCON into operation mode later after the first dumb frame is
+	 * generated by DPU.  This makes DPR/PRG be able to evade the frame.
+	 */
+	val = dpu_tcon_read(tcon, TCON_CTRL);
+	val |= BYPASS;
+	dpu_tcon_write(tcon, TCON_CTRL, val);
+
+	/* dsp_control[0]: hsync */
+	dpu_tcon_write(tcon, SPGPOSON(0), X(hsync_start));
+	dpu_tcon_write(tcon, SPGMASKON(0), 0xffff);
+
+	dpu_tcon_write(tcon, SPGPOSOFF(0), X(hsync_end));
+	dpu_tcon_write(tcon, SPGMASKOFF(0), 0xffff);
+
+	dpu_tcon_write(tcon, SMXSIGS(0), 0x2);
+	dpu_tcon_write(tcon, SMXFCTTABLE(0), 0x1);
+
+	/* dsp_control[1]: vsync */
+	dpu_tcon_write(tcon, SPGPOSON(1), X(hsync_start) | Y(vsync_start - 1));
+	dpu_tcon_write(tcon, SPGMASKON(1), 0x0);
+
+	dpu_tcon_write(tcon, SPGPOSOFF(1), X(hsync_start) | Y(vsync_end - 1));
+	dpu_tcon_write(tcon, SPGMASKOFF(1), 0x0);
+
+	dpu_tcon_write(tcon, SMXSIGS(1), 0x3);
+	dpu_tcon_write(tcon, SMXFCTTABLE(1), 0x1);
+
+	/* dsp_control[2]: data enable */
+	/* horizontal */
+	dpu_tcon_write(tcon, SPGPOSON(2), 0x0);
+	dpu_tcon_write(tcon, SPGMASKON(2), 0xffff);
+
+	dpu_tcon_write(tcon, SPGPOSOFF(2), X(hdisplay));
+	dpu_tcon_write(tcon, SPGMASKOFF(2), 0xffff);
+
+	/* vertical */
+	dpu_tcon_write(tcon, SPGPOSON(3), 0x0);
+	dpu_tcon_write(tcon, SPGMASKON(3), 0x7fff0000);
+
+	dpu_tcon_write(tcon, SPGPOSOFF(3), Y(vdisplay));
+	dpu_tcon_write(tcon, SPGMASKOFF(3), 0x7fff0000);
+
+	dpu_tcon_write(tcon, SMXSIGS(2), 0x2c);
+	dpu_tcon_write(tcon, SMXFCTTABLE(2), 0x8);
+
+	/* dsp_control[3]: kachuck */
+	y = vdisplay + 1;
+	/*
+	 * If sync mode fixup is present, the kachuck signal from slave tcon
+	 * should be one line later than the one from master tcon.
+	 */
+	if (side_by_side && tcon_is_slave(tcon))
+		y++;
+
+	dpu_tcon_write(tcon, SPGPOSON(4), X(0x0) | Y(y));
+	dpu_tcon_write(tcon, SPGMASKON(4), 0x0);
+
+	dpu_tcon_write(tcon, SPGPOSOFF(4), X(0x20) | Y(y));
+	dpu_tcon_write(tcon, SPGMASKOFF(4), 0x0);
+
+	dpu_tcon_write(tcon, SMXSIGS(3), 0x6);
+	dpu_tcon_write(tcon, SMXFCTTABLE(3), 0x2);
+}
+EXPORT_SYMBOL_GPL(tcon_cfg_videomode);
+
+bool tcon_is_master(struct dpu_tcon *tcon)
+{
+	const struct dpu_data *data = tcon->dpu->data;
+
+	return tcon->id == data->master_stream_id;
+}
+EXPORT_SYMBOL_GPL(tcon_is_master);
+
+bool tcon_is_slave(struct dpu_tcon *tcon)
+{
+	return !tcon_is_master(tcon);
+}
+EXPORT_SYMBOL_GPL(tcon_is_slave);
+
+void tcon_configure_pc(struct dpu_tcon *tcon, unsigned int di,
+			unsigned int frame_width, u32 mode, u32 format)
+{
+	if (WARN_ON(!tcon || !tcon->pc))
+		return;
+
+	pc_configure(tcon->pc, di, frame_width, mode, format);
+}
+EXPORT_SYMBOL_GPL(tcon_configure_pc);
+
+void tcon_enable_pc(struct dpu_tcon *tcon)
+{
+	if (WARN_ON(!tcon || !tcon->pc))
+		return;
+
+	pc_enable(tcon->pc);
+}
+EXPORT_SYMBOL_GPL(tcon_enable_pc);
+
+void tcon_disable_pc(struct dpu_tcon *tcon)
+{
+	if (WARN_ON(!tcon || !tcon->pc))
+		return;
+
+	pc_disable(tcon->pc);
+}
+EXPORT_SYMBOL_GPL(tcon_disable_pc);
+
+struct dpu_tcon *dpu_tcon_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_tcon *tcon;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(tcon_ids); i++)
+		if (tcon_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(tcon_ids))
+		return ERR_PTR(-EINVAL);
+
+	tcon = dpu->tcon_priv[i];
+
+	mutex_lock(&tcon->mutex);
+
+	if (tcon->inuse) {
+		mutex_unlock(&tcon->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	tcon->inuse = true;
+
+	mutex_unlock(&tcon->mutex);
+
+	return tcon;
+}
+EXPORT_SYMBOL_GPL(dpu_tcon_get);
+
+void dpu_tcon_put(struct dpu_tcon *tcon)
+{
+	mutex_lock(&tcon->mutex);
+
+	tcon->inuse = false;
+
+	mutex_unlock(&tcon->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_tcon_put);
+
+struct dpu_tcon *dpu_aux_tcon_peek(struct dpu_tcon *tcon)
+{
+	return tcon->dpu->tcon_priv[tcon->id ^ 1];
+}
+EXPORT_SYMBOL_GPL(dpu_aux_tcon_peek);
+
+void _dpu_tcon_init(struct dpu_soc *dpu, unsigned int id)
+{
+}
+
+int dpu_tcon_init(struct dpu_soc *dpu, unsigned int id,
+			unsigned long unused, unsigned long base)
+{
+	struct dpu_tcon *tcon;
+
+	tcon = devm_kzalloc(dpu->dev, sizeof(*tcon), GFP_KERNEL);
+	if (!tcon)
+		return -ENOMEM;
+
+	dpu->tcon_priv[id] = tcon;
+
+	tcon->base = devm_ioremap(dpu->dev, base, SZ_512);
+	if (!tcon->base)
+		return -ENOMEM;
+
+	tcon->dpu = dpu;
+	mutex_init(&tcon->mutex);
+
+	return 0;
+}
+
+void tcon_get_pc(struct dpu_tcon *tcon, void *data)
+{
+	if (WARN_ON(!tcon))
+		return;
+
+	tcon->pc = data;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/dpu/dpu-vscaler.c
+++ linux-ein-5.4.0/drivers/gpu/imx/dpu/dpu-vscaler.c
@@ -0,0 +1,438 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+#include <video/dpu.h>
+#include "dpu-prv.h"
+
+#define PIXENGCFG_DYNAMIC		0x8
+#define PIXENGCFG_DYNAMIC_SRC_SEL_MASK	0x3F
+
+#define SETUP1				0xC
+#define SCALE_FACTOR_MASK		0xFFFFF
+#define SCALE_FACTOR(n)			((n) & 0xFFFFF)
+#define SETUP2				0x10
+#define SETUP3				0x14
+#define SETUP4				0x18
+#define SETUP5				0x1C
+#define PHASE_OFFSET_MASK		0x1FFFFF
+#define PHASE_OFFSET(n)			((n) & 0x1FFFFF)
+#define CONTROL				0x20
+#define OUTPUT_SIZE_MASK		0x3FFF0000
+#define OUTPUT_SIZE(n)			((((n) - 1) << 16) & OUTPUT_SIZE_MASK)
+#define FIELD_MODE			0x3000
+#define FILTER_MODE			0x100
+#define SCALE_MODE			0x10
+#define MODE				0x1
+
+static const vs_src_sel_t src_sels[3][6] = {
+	{
+		VS_SRC_SEL__DISABLE,
+		VS_SRC_SEL__FETCHDECODE0,
+		VS_SRC_SEL__MATRIX4,
+		VS_SRC_SEL__HSCALER4,
+	}, {
+		VS_SRC_SEL__DISABLE,
+		VS_SRC_SEL__FETCHDECODE1,
+		VS_SRC_SEL__MATRIX5,
+		VS_SRC_SEL__HSCALER5,
+	}, {
+		VS_SRC_SEL__DISABLE,
+		VS_SRC_SEL__MATRIX9,
+		VS_SRC_SEL__HSCALER9,
+	},
+};
+
+struct dpu_vscaler {
+	void __iomem *pec_base;
+	void __iomem *base;
+	struct mutex mutex;
+	int id;
+	bool inuse;
+	struct dpu_soc *dpu;
+	/* see DPU_PLANE_SRC_xxx */
+	unsigned int stream_id;
+};
+
+static inline u32 dpu_pec_vs_read(struct dpu_vscaler *vs,
+				  unsigned int offset)
+{
+	return readl(vs->pec_base + offset);
+}
+
+static inline void dpu_pec_vs_write(struct dpu_vscaler *vs,
+				    unsigned int offset, u32 value)
+{
+	writel(value, vs->pec_base + offset);
+}
+
+static inline u32 dpu_vs_read(struct dpu_vscaler *vs, unsigned int offset)
+{
+	return readl(vs->base + offset);
+}
+
+static inline void dpu_vs_write(struct dpu_vscaler *vs,
+				unsigned int offset, u32 value)
+{
+	writel(value, vs->base + offset);
+}
+
+int vscaler_pixengcfg_dynamic_src_sel(struct dpu_vscaler *vs, vs_src_sel_t src)
+{
+	struct dpu_soc *dpu = vs->dpu;
+	const unsigned int vs_id_array[] = {4, 5, 9};
+	int i, j;
+	u32 val;
+
+	for (i = 0; i < ARRAY_SIZE(vs_id_array); i++)
+		if (vs_id_array[i] == vs->id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(vs_id_array)))
+		return -EINVAL;
+
+	mutex_lock(&vs->mutex);
+	for (j = 0; j < ARRAY_SIZE(src_sels[0]); j++) {
+		if (src_sels[i][j] == src) {
+			val = dpu_pec_vs_read(vs, PIXENGCFG_DYNAMIC);
+			val &= ~PIXENGCFG_DYNAMIC_SRC_SEL_MASK;
+			val |= src;
+			dpu_pec_vs_write(vs, PIXENGCFG_DYNAMIC, val);
+			mutex_unlock(&vs->mutex);
+			return 0;
+		}
+	}
+	mutex_unlock(&vs->mutex);
+
+	dev_err(dpu->dev, "Invalid source for VScaler%d\n", vs->id);
+
+	return -EINVAL;
+}
+EXPORT_SYMBOL_GPL(vscaler_pixengcfg_dynamic_src_sel);
+
+void vscaler_pixengcfg_clken(struct dpu_vscaler *vs, pixengcfg_clken_t clken)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_pec_vs_read(vs, PIXENGCFG_DYNAMIC);
+	val &= ~CLKEN_MASK;
+	val |= clken << CLKEN_MASK_SHIFT;
+	dpu_pec_vs_write(vs, PIXENGCFG_DYNAMIC, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_pixengcfg_clken);
+
+void vscaler_shden(struct dpu_vscaler *vs, bool enable)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, STATICCONTROL);
+	if (enable)
+		val |= SHDEN;
+	else
+		val &= ~SHDEN;
+	dpu_vs_write(vs, STATICCONTROL, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_shden);
+
+void vscaler_setup1(struct dpu_vscaler *vs, u32 src, u32 dst, bool deinterlace)
+{
+	struct dpu_soc *dpu = vs->dpu;
+	u32 scale_factor;
+	u64 tmp64;
+
+	if (deinterlace)
+		dst *= 2;
+
+	if (src == dst) {
+		scale_factor = 0x80000;
+	} else {
+		if (src > dst) {
+			tmp64 = (u64)((u64)dst * 0x80000);
+			do_div(tmp64, src);
+
+		} else {
+			tmp64 = (u64)((u64)src * 0x80000);
+			do_div(tmp64, dst);
+		}
+		scale_factor = (u32)tmp64;
+	}
+
+	WARN_ON(scale_factor > 0x80000);
+
+	mutex_lock(&vs->mutex);
+	dpu_vs_write(vs, SETUP1, SCALE_FACTOR(scale_factor));
+	mutex_unlock(&vs->mutex);
+
+	dev_dbg(dpu->dev, "Vscaler%d scale factor 0x%08x\n",
+						vs->id, scale_factor);
+}
+EXPORT_SYMBOL_GPL(vscaler_setup1);
+
+void vscaler_setup2(struct dpu_vscaler *vs, bool deinterlace)
+{
+	/* 0x20000: +0.25 phase offset for deinterlace */
+	u32 phase_offset = deinterlace ? 0x20000 : 0;
+
+	mutex_lock(&vs->mutex);
+	dpu_vs_write(vs, SETUP2, PHASE_OFFSET(phase_offset));
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_setup2);
+
+void vscaler_setup3(struct dpu_vscaler *vs, bool deinterlace)
+{
+	/* 0x1e0000: -0.25 phase offset for deinterlace */
+	u32 phase_offset = deinterlace ? 0x1e0000 : 0;
+
+	mutex_lock(&vs->mutex);
+	dpu_vs_write(vs, SETUP3, PHASE_OFFSET(phase_offset));
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_setup3);
+
+void vscaler_setup4(struct dpu_vscaler *vs, u32 phase_offset)
+{
+	mutex_lock(&vs->mutex);
+	dpu_vs_write(vs, SETUP4, PHASE_OFFSET(phase_offset));
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_setup4);
+
+void vscaler_setup5(struct dpu_vscaler *vs, u32 phase_offset)
+{
+	mutex_lock(&vs->mutex);
+	dpu_vs_write(vs, SETUP5, PHASE_OFFSET(phase_offset));
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_setup5);
+
+void vscaler_output_size(struct dpu_vscaler *vs, u32 line_num)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, CONTROL);
+	val &= ~OUTPUT_SIZE_MASK;
+	val |= OUTPUT_SIZE(line_num);
+	dpu_vs_write(vs, CONTROL, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_output_size);
+
+void vscaler_field_mode(struct dpu_vscaler *vs, scaler_field_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, CONTROL);
+	val &= ~FIELD_MODE;
+	val |= m;
+	dpu_vs_write(vs, CONTROL, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_field_mode);
+
+void vscaler_filter_mode(struct dpu_vscaler *vs, scaler_filter_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, CONTROL);
+	val &= ~FILTER_MODE;
+	val |= m;
+	dpu_vs_write(vs, CONTROL, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_filter_mode);
+
+void vscaler_scale_mode(struct dpu_vscaler *vs, scaler_scale_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, CONTROL);
+	val &= ~SCALE_MODE;
+	val |= m;
+	dpu_vs_write(vs, CONTROL, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_scale_mode);
+
+void vscaler_mode(struct dpu_vscaler *vs, scaler_mode_t m)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, CONTROL);
+	val &= ~MODE;
+	val |= m;
+	dpu_vs_write(vs, CONTROL, val);
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(vscaler_mode);
+
+bool vscaler_is_enabled(struct dpu_vscaler *vs)
+{
+	u32 val;
+
+	mutex_lock(&vs->mutex);
+	val = dpu_vs_read(vs, CONTROL);
+	mutex_unlock(&vs->mutex);
+
+	return (val & MODE) == SCALER_ACTIVE;
+}
+EXPORT_SYMBOL_GPL(vscaler_is_enabled);
+
+dpu_block_id_t vscaler_get_block_id(struct dpu_vscaler *vs)
+{
+	switch (vs->id) {
+	case 4:
+		return ID_VSCALER4;
+	case 5:
+		return ID_VSCALER5;
+	case 9:
+		return ID_VSCALER9;
+	default:
+		WARN_ON(1);
+	}
+
+	return ID_NONE;
+}
+EXPORT_SYMBOL_GPL(vscaler_get_block_id);
+
+unsigned int vscaler_get_stream_id(struct dpu_vscaler *vs)
+{
+	return vs->stream_id;
+}
+EXPORT_SYMBOL_GPL(vscaler_get_stream_id);
+
+void vscaler_set_stream_id(struct dpu_vscaler *vs, unsigned int id)
+{
+	switch (id) {
+	case DPU_PLANE_SRC_TO_DISP_STREAM0:
+	case DPU_PLANE_SRC_TO_DISP_STREAM1:
+	case DPU_PLANE_SRC_DISABLED:
+		vs->stream_id = id;
+		break;
+	default:
+		WARN_ON(1);
+	}
+}
+EXPORT_SYMBOL_GPL(vscaler_set_stream_id);
+
+struct dpu_vscaler *dpu_vs_get(struct dpu_soc *dpu, int id)
+{
+	struct dpu_vscaler *vs;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(vs_ids); i++)
+		if (vs_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(vs_ids))
+		return ERR_PTR(-EINVAL);
+
+	vs = dpu->vs_priv[i];
+
+	mutex_lock(&vs->mutex);
+
+	if (vs->inuse) {
+		mutex_unlock(&vs->mutex);
+		return ERR_PTR(-EBUSY);
+	}
+
+	vs->inuse = true;
+
+	mutex_unlock(&vs->mutex);
+
+	return vs;
+}
+EXPORT_SYMBOL_GPL(dpu_vs_get);
+
+void dpu_vs_put(struct dpu_vscaler *vs)
+{
+	mutex_lock(&vs->mutex);
+
+	vs->inuse = false;
+
+	mutex_unlock(&vs->mutex);
+}
+EXPORT_SYMBOL_GPL(dpu_vs_put);
+
+void _dpu_vs_init(struct dpu_soc *dpu, unsigned int id)
+{
+	struct dpu_vscaler *vs;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(vs_ids); i++)
+		if (vs_ids[i] == id)
+			break;
+
+	if (WARN_ON(i == ARRAY_SIZE(vs_ids)))
+		return;
+
+	vs = dpu->vs_priv[i];
+
+	vscaler_shden(vs, true);
+	vscaler_setup2(vs, false);
+	vscaler_setup3(vs, false);
+	vscaler_setup4(vs, 0);
+	vscaler_setup5(vs, 0);
+	vscaler_pixengcfg_dynamic_src_sel(vs, VS_SRC_SEL__DISABLE);
+}
+
+int dpu_vs_init(struct dpu_soc *dpu, unsigned int id,
+		unsigned long pec_base, unsigned long base)
+{
+	struct dpu_vscaler *vs;
+	int i;
+
+	vs = devm_kzalloc(dpu->dev, sizeof(*vs), GFP_KERNEL);
+	if (!vs)
+		return -ENOMEM;
+
+	for (i = 0; i < ARRAY_SIZE(vs_ids); i++)
+		if (vs_ids[i] == id)
+			break;
+
+	if (i == ARRAY_SIZE(vs_ids))
+		return -EINVAL;
+
+	dpu->vs_priv[i] = vs;
+
+	vs->pec_base = devm_ioremap(dpu->dev, pec_base, SZ_8);
+	if (!vs->pec_base)
+		return -ENOMEM;
+
+	vs->base = devm_ioremap(dpu->dev, base, SZ_1K);
+	if (!vs->base)
+		return -ENOMEM;
+
+	vs->dpu = dpu;
+	vs->id = id;
+
+	mutex_init(&vs->mutex);
+
+	_dpu_vs_init(dpu, id);
+
+	return 0;
+}
--- linux-ein-5.4.0.orig/drivers/gpu/imx/imx8_dprc.c
+++ linux-ein-5.4.0/drivers/gpu/imx/imx8_dprc.c
@@ -0,0 +1,889 @@
+/*
+ * Copyright 2017-2020 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+#include <drm/drm_fourcc.h>
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/firmware/imx/sci.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <video/imx8-prefetch.h>
+
+#define SET					0x4
+#define CLR					0x8
+#define TOG					0xc
+
+#define SYSTEM_CTRL0				0x00
+#define BCMD2AXI_MASTR_ID_CTRL			BIT(16)
+#define SW_SHADOW_LOAD_SEL			BIT(4)
+#define SHADOW_LOAD_EN				BIT(3)
+#define REPEAT_EN				BIT(2)
+#define SOFT_RESET				BIT(1)
+#define RUN_EN					BIT(0)	/* self-clearing */
+
+#define IRQ_MASK				0x20
+#define IRQ_MASK_STATUS				0x30
+#define IRQ_NONMASK_STATUS			0x40
+#define DPR2RTR_FIFO_LOAD_BUF_RDY_UV_ERROR	BIT(7)
+#define DPR2RTR_FIFO_LOAD_BUF_RDY_YRGB_ERROR	BIT(6)
+#define DPR2RTR_UV_FIFO_OVFL			BIT(5)
+#define DPR2RTR_YRGB_FIFO_OVFL			BIT(4)
+#define IRQ_AXI_READ_ERROR			BIT(3)
+#define IRQ_DPR_SHADOW_LOADED_MASK		BIT(2)
+#define IRQ_DPR_RUN				BIT(1)
+#define IRQ_DPR_CRTL_DONE			BIT(0)
+#define IRQ_ERROR_MASK				0xf8
+#define IRQ_CTRL_MASK				0x7
+
+#define MODE_CTRL0				0x50
+#define PIX_COMP_SEL_MASK			0x3fc00
+#define A_COMP_SEL(byte)			(((byte) & 0x3) << 16)
+#define R_COMP_SEL(byte)			(((byte) & 0x3) << 14)
+#define G_COMP_SEL(byte)			(((byte) & 0x3) << 12)
+#define B_COMP_SEL(byte)			(((byte) & 0x3) << 10)
+#define PIX_UV_SWAP				BIT(9)
+#define VU					BIT(9)
+#define UV					0
+#define PIXEL_LUMA_UV_SWAP			BIT(8)
+#define UYVY					BIT(8)
+#define YUYV					0
+#define PIX_SIZE				0xc0
+enum {
+	PIX_SIZE_8BIT = (0 << 6),
+	PIX_SIZE_16BIT = (1 << 6),
+	PIX_SIZE_32BIT = (2 << 6),
+	PIX_SIZE_RESERVED = (3 << 6),
+};
+#define COMP_2PLANE_EN				BIT(5)
+#define YUV_EN					BIT(4)
+#define TILE_TYPE				0xc
+enum {
+	LINEAR_TILE = (0 << 2),
+	GPU_STANDARD_TILE = (1 << 2),
+	GPU_SUPER_TILE = (2 << 2),
+	VPU_TILE = (3 << 2),
+};
+#define RTR_4LINE_BUF_EN			BIT(1)
+#define LINE4					BIT(1)
+#define LINE8					0
+#define RTR_3BUF_EN				BIT(0)
+#define BUF3					BIT(0)
+#define BUF2					0
+
+#define FRAME_CTRL0				0x70
+#define PITCH(n)				(((n) & 0xffff) << 16)
+#define ROT_FLIP_ORDER_EN			BIT(4)
+#define ROT_FIRST				BIT(4)
+#define FLIP_FIRST				0
+#define ROT_ENC					0xc
+#define DEGREE(n)				((((n) / 90) & 0x3) << 2)
+#define VFLIP_EN				BIT(1)
+#define HFLIP_EN				BIT(0)
+
+#define FRAME_1P_CTRL0				0x90
+#define FRAME_2P_CTRL0				0xe0
+#define MAX_BYTES_PREQ				0x7
+enum {
+	BYTE_64 = 0x0,
+	BYTE_128 = 0x1,
+	BYTE_256 = 0x2,
+	BYTE_512 = 0x3,
+	BYTE_1K = 0x4,
+	BYTE_2K = 0x5,
+	BYTE_4K = 0x6,
+};
+
+#define FRAME_1P_PIX_X_CTRL			0xa0
+#define FRAME_2P_PIX_X_CTRL			0xf0
+#define NUM_X_PIX_WIDE(n)			((n) & 0xffff)
+#define FRAME_PIX_X_ULC_CTRL			0xf0
+#define CROP_ULC_X(n)				((n) & 0xffff)
+
+#define FRAME_1P_PIX_Y_CTRL			0xb0
+#define FRAME_2P_PIX_Y_CTRL			0x100
+#define NUM_Y_PIX_HIGH(n)			((n) & 0xffff)
+#define FRAME_PIX_Y_ULC_CTRL			0x100
+#define CROP_ULC_Y(n)				((n) & 0xffff)
+
+#define FRAME_1P_BASE_ADDR_CTRL0		0xc0
+#define FRAME_2P_BASE_ADDR_CTRL0		0x110
+
+#define STATUS_CTRL0				0x130
+#define STATUS_SRC_SEL				0x70000
+enum {
+	DPR_CTRL = 0x0,
+	PREFETCH_1PLANE = 0x1,
+	RESPONSE_1PLANE = 0x2,
+	PREFETCH_2PLANE = 0x3,
+	RESPONSE_2PLANE = 0x4,
+};
+#define STATUS_MUX_SEL				0x7
+
+#define STATUS_CTRL1				0x140
+
+#define RTRAM_CTRL0				0x200
+#define ABORT_SEL				BIT(7)
+#define ABORT					BIT(7)
+#define STALL					0
+#define THRES_LOW_MASK				0x70
+#define THRES_LOW(n)				(((n) & 0x7) << 4)
+#define THRES_HIGH_MASK				0xe
+#define THRES_HIGH(n)				(((n) & 0x7) << 1)
+#define NUM_ROWS_ACTIVE				BIT(0)
+#define ROWS_0_6				BIT(0)
+#define ROWS_0_4				0
+
+struct dprc {
+	struct device *dev;
+	void __iomem *base;
+	struct list_head list;
+	struct clk *clk_apb;
+	struct clk *clk_b;
+	struct clk *clk_rtram;
+	struct imx_sc_ipc *ipc_handle;
+	spinlock_t spin_lock;
+	u32 sc_resource;
+	bool is_blit_chan;
+
+	/* The second one, if non-NULL, is auxiliary for UV buffer. */
+	struct prg *prgs[2];
+	bool has_aux_prg;
+	bool use_aux_prg;
+};
+
+struct dprc_format_info {
+	u32 format;
+	u8 depth;
+	u8 num_planes;
+	u8 cpp[3];
+	u8 hsub;
+	u8 vsub;
+};
+
+static const struct dprc_format_info formats[] = {
+	{
+	  .format = DRM_FORMAT_RGB565,
+	  .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_ARGB8888,
+	  .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_XRGB8888,
+	  .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_ABGR8888,
+	  .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_XBGR8888,
+	  .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_RGBA8888,
+	  .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_RGBX8888,
+	  .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_BGRA8888,
+	  .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_BGRX8888,
+	  .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+	  .hsub = 1,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_NV12,
+	  .depth = 0,  .num_planes = 2, .cpp = { 1, 2, 0 },
+	  .hsub = 2,   .vsub = 2,
+	}, {
+	  .format = DRM_FORMAT_NV21,
+	  .depth = 0,  .num_planes = 2, .cpp = { 1, 2, 0 },
+	  .hsub = 2,   .vsub = 2,
+	}, {
+	  .format = DRM_FORMAT_YUYV,
+	  .depth = 0,  .num_planes = 1, .cpp = { 2, 0, 0 },
+	  .hsub = 2,   .vsub = 1,
+	}, {
+	  .format = DRM_FORMAT_UYVY,
+	  .depth = 0,  .num_planes = 1, .cpp = { 2, 0, 0 },
+	  .hsub = 2,   .vsub = 1,
+	}
+};
+
+static const struct dprc_format_info *dprc_format_info(u32 format)
+{
+	unsigned int i;
+
+	for (i = 0; i < ARRAY_SIZE(formats); ++i) {
+		if (formats[i].format == format)
+			return &formats[i];
+	}
+
+	return NULL;
+}
+
+static DEFINE_MUTEX(dprc_list_mutex);
+static LIST_HEAD(dprc_list);
+
+static inline u32 dprc_read(struct dprc *dprc, unsigned int offset)
+{
+	return readl(dprc->base + offset);
+}
+
+static inline void dprc_write(struct dprc *dprc, u32 value, unsigned int offset)
+{
+	writel(value, dprc->base + offset);
+}
+
+static void dprc_reset(struct dprc *dprc)
+{
+	dprc_write(dprc, SOFT_RESET, SYSTEM_CTRL0 + SET);
+
+	if (dprc->is_blit_chan)
+		usleep_range(10, 20);
+	else
+		usleep_range(1000, 2000);
+
+	dprc_write(dprc, SOFT_RESET, SYSTEM_CTRL0 + CLR);
+}
+
+void dprc_enable(struct dprc *dprc)
+{
+	if (WARN_ON(!dprc))
+		return;
+
+	prg_enable(dprc->prgs[0]);
+	if (dprc->use_aux_prg)
+		prg_enable(dprc->prgs[1]);
+}
+EXPORT_SYMBOL_GPL(dprc_enable);
+
+void dprc_disable(struct dprc *dprc)
+{
+	if (WARN_ON(!dprc))
+		return;
+
+	dprc_write(dprc, SHADOW_LOAD_EN | SW_SHADOW_LOAD_SEL, SYSTEM_CTRL0);
+
+	prg_disable(dprc->prgs[0]);
+	if (dprc->has_aux_prg)
+		prg_disable(dprc->prgs[1]);
+
+	prg_reg_update(dprc->prgs[0]);
+	if (dprc->has_aux_prg)
+		prg_reg_update(dprc->prgs[1]);
+}
+EXPORT_SYMBOL_GPL(dprc_disable);
+
+static inline void
+dprc_dpu_gpr_configure(struct dprc *dprc, unsigned int stream_id)
+{
+	int ret;
+
+	ret = imx_sc_misc_set_control(dprc->ipc_handle,
+		dprc->sc_resource, IMX_SC_C_KACHUNK_SEL, stream_id);
+	if (ret)
+		dev_warn(dprc->dev, "failed to set KACHUNK_SEL: %d\n", ret);
+}
+
+static inline void
+dprc_prg_sel_configure(struct dprc *dprc, u32 resource, bool enable)
+{
+	int ret;
+
+	ret = imx_sc_misc_set_control(dprc->ipc_handle,
+				resource, IMX_SC_C_SEL0, enable);
+	if (ret)
+		dev_warn(dprc->dev, "failed to set SEL0: %d\n", ret);
+}
+
+void dprc_configure(struct dprc *dprc, unsigned int stream_id,
+		    unsigned int width, unsigned int height,
+		    unsigned int x_offset, unsigned int y_offset,
+		    unsigned int stride, u32 format, u64 modifier,
+		    unsigned long baddr, unsigned long uv_baddr,
+		    bool start, bool aux_start, bool interlace_frame)
+{
+	const struct dprc_format_info *info = dprc_format_info(format);
+	unsigned int dprc_width = width + x_offset;
+	unsigned int dprc_height;
+	unsigned int p1_w, p1_h, p2_w, p2_h;
+	unsigned int prg_stride = width * info->cpp[0];
+	unsigned int bpp = 8 * info->cpp[0];
+	unsigned int preq;
+	unsigned int mt_w = 0, mt_h = 0;	/* w/h in a micro-tile */
+	u32 val;
+
+	if (WARN_ON(!dprc))
+		return;
+
+	dprc->use_aux_prg = false;
+
+	if (start) {
+		dprc_reset(dprc);
+
+		if (!dprc->is_blit_chan)
+			dprc_dpu_gpr_configure(dprc, stream_id);
+	}
+
+	if (interlace_frame) {
+		height /= 2;
+		y_offset /= 2;
+	}
+
+	dprc_height = height + y_offset;
+
+	/* disable all control irqs and enable all error irqs */
+	dprc_write(dprc, IRQ_CTRL_MASK, IRQ_MASK);
+
+	if (info->num_planes > 1) {
+		p1_w = round_up(dprc_width, modifier ? 8 : 64);
+		p1_h = round_up(dprc_height, 8);
+
+		p2_w = p1_w;
+		if (modifier)
+			p2_h = dprc_height / info->vsub;
+		else
+			p2_h = round_up((dprc_height / info->vsub), 8);
+
+		preq = modifier ? BYTE_64 : BYTE_1K;
+
+		dprc_write(dprc, preq, FRAME_2P_CTRL0);
+		if (dprc->sc_resource == IMX_SC_R_DC_0_BLIT1 ||
+		    dprc->sc_resource == IMX_SC_R_DC_1_BLIT1) {
+			dprc_prg_sel_configure(dprc,
+				dprc->sc_resource == IMX_SC_R_DC_0_BLIT1 ?
+				IMX_SC_R_DC_0_BLIT0 : IMX_SC_R_DC_1_BLIT0,
+				true);
+			prg_set_auxiliary(dprc->prgs[1]);
+			dprc->has_aux_prg = true;
+		}
+		dprc_write(dprc, uv_baddr, FRAME_2P_BASE_ADDR_CTRL0);
+	} else {
+		switch (dprc->sc_resource) {
+		case IMX_SC_R_DC_0_BLIT0:
+		case IMX_SC_R_DC_1_BLIT0:
+			dprc_prg_sel_configure(dprc, dprc->sc_resource, false);
+			prg_set_primary(dprc->prgs[0]);
+			break;
+		case IMX_SC_R_DC_0_BLIT1:
+		case IMX_SC_R_DC_1_BLIT1:
+			dprc->has_aux_prg = false;
+			break;
+		default:
+			break;
+		}
+
+		switch (modifier) {
+		case DRM_FORMAT_MOD_VIVANTE_TILED:
+			p1_w = round_up(dprc_width, info->cpp[0] == 2 ? 8 : 4);
+			break;
+		case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+			if (dprc->is_blit_chan)
+				p1_w = round_up(dprc_width,
+						info->cpp[0] == 2 ? 8 : 4);
+			else
+				p1_w = round_up(dprc_width, 64);
+			break;
+		default:
+			p1_w = round_up(dprc_width,
+					info->cpp[0] == 2 ? 32 : 16);
+			break;
+		}
+		p1_h = round_up(dprc_height, 4);
+	}
+
+	dprc_write(dprc, PITCH(stride), FRAME_CTRL0);
+	switch (modifier) {
+	case DRM_FORMAT_MOD_AMPHION_TILED:
+		preq = BYTE_64;
+		mt_w = 8;
+		mt_h = 8;
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_TILED:
+	case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		if (bpp == 16) {
+			preq = BYTE_64;
+			mt_w = 8;
+		} else {
+			preq = (x_offset % 8) ? BYTE_64 : BYTE_128;
+			mt_w = 4;
+		}
+		mt_h = 4;
+		break;
+	default:
+		preq = BYTE_1K;
+		break;
+	}
+	dprc_write(dprc, preq, FRAME_1P_CTRL0);
+	dprc_write(dprc, NUM_X_PIX_WIDE(p1_w), FRAME_1P_PIX_X_CTRL);
+	dprc_write(dprc, NUM_Y_PIX_HIGH(p1_h), FRAME_1P_PIX_Y_CTRL);
+	dprc_write(dprc, baddr, FRAME_1P_BASE_ADDR_CTRL0);
+	if (modifier) {
+		dprc_write(dprc, CROP_ULC_X(round_down(x_offset, mt_w)),
+							FRAME_PIX_X_ULC_CTRL);
+		dprc_write(dprc, CROP_ULC_Y(round_down(y_offset, mt_h)),
+							FRAME_PIX_Y_ULC_CTRL);
+	} else {
+		dprc_write(dprc, CROP_ULC_X(0), FRAME_PIX_X_ULC_CTRL);
+		dprc_write(dprc, CROP_ULC_Y(0), FRAME_PIX_Y_ULC_CTRL);
+	}
+
+	val = dprc_read(dprc, RTRAM_CTRL0);
+	val &= ~THRES_LOW_MASK;
+	val |= THRES_LOW(3);
+	val &= ~THRES_HIGH_MASK;
+	val |= THRES_HIGH(7);
+	dprc_write(dprc, val, RTRAM_CTRL0);
+
+	val = dprc_read(dprc, MODE_CTRL0);
+	val &= ~PIX_UV_SWAP;
+	val &= ~PIXEL_LUMA_UV_SWAP;
+	val &= ~COMP_2PLANE_EN;
+	val &= ~YUV_EN;
+	val &= ~TILE_TYPE;
+	switch (modifier) {
+	case DRM_FORMAT_MOD_NONE:
+		break;
+	case DRM_FORMAT_MOD_AMPHION_TILED:
+		val |= VPU_TILE;
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_TILED:
+		val |= GPU_STANDARD_TILE;
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		val |= GPU_SUPER_TILE;
+		break;
+	default:
+		dev_err(dprc->dev, "unsupported modifier 0x%016llx\n",
+								modifier);
+		return;
+	}
+	val &= ~RTR_4LINE_BUF_EN;
+	val |= info->num_planes > 1 ? LINE8 : LINE4;
+	val &= ~RTR_3BUF_EN;
+	val |= BUF2;
+	val &= ~(PIX_COMP_SEL_MASK | PIX_SIZE);
+	switch (format) {
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRA8888:
+	case DRM_FORMAT_BGRX8888:
+		/*
+		 * It turns out pixel components are mapped directly
+		 * without position change via DPR processing with
+		 * the following color component configurations.
+		 * Leave the pixel format to be handled by the
+		 * display controllers.
+		 */
+		val |= A_COMP_SEL(3) | R_COMP_SEL(2) |
+		       G_COMP_SEL(1) | B_COMP_SEL(0);
+		val |= PIX_SIZE_32BIT;
+		break;
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+		val |= YUV_EN;
+		/* fall-through */
+	case DRM_FORMAT_RGB565:
+		val |= PIX_SIZE_16BIT;
+		break;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		dprc->use_aux_prg = true;
+
+		val |= COMP_2PLANE_EN;
+		val |= YUV_EN;
+		val |= PIX_SIZE_8BIT;
+		break;
+	default:
+		dev_err(dprc->dev, "unsupported format 0x%08x\n", format);
+		return;
+	}
+	dprc_write(dprc, val, MODE_CTRL0);
+
+	if (dprc->is_blit_chan) {
+		val = SW_SHADOW_LOAD_SEL | RUN_EN | SHADOW_LOAD_EN;
+		dprc_write(dprc, val, SYSTEM_CTRL0);
+	} else if (start) {
+		/* software shadow load for the first frame */
+		val = SW_SHADOW_LOAD_SEL | SHADOW_LOAD_EN;
+		dprc_write(dprc, val, SYSTEM_CTRL0);
+
+		/* and then, run... */
+		val |= RUN_EN | REPEAT_EN;
+		dprc_write(dprc, val, SYSTEM_CTRL0);
+	}
+
+	prg_configure(dprc->prgs[0], width, height, x_offset, y_offset,
+			prg_stride, bpp, baddr, format, modifier, start);
+	if (dprc->use_aux_prg)
+		prg_configure(dprc->prgs[1], width, height, x_offset, y_offset,
+			prg_stride, 8, uv_baddr, format, modifier, aux_start);
+
+	dev_dbg(dprc->dev, "w-%u, h-%u, s-%u, fmt-0x%08x, mod-0x%016llx\n",
+				width, height, stride, format, modifier);
+}
+EXPORT_SYMBOL_GPL(dprc_configure);
+
+void dprc_disable_repeat_en(struct dprc *dprc)
+{
+	if (WARN_ON(!dprc))
+		return;
+
+	dprc_write(dprc, REPEAT_EN, SYSTEM_CTRL0 + CLR);
+}
+EXPORT_SYMBOL_GPL(dprc_disable_repeat_en);
+
+void dprc_reg_update(struct dprc *dprc)
+{
+	if (WARN_ON(!dprc))
+		return;
+
+	prg_reg_update(dprc->prgs[0]);
+	if (dprc->use_aux_prg)
+		prg_reg_update(dprc->prgs[1]);
+}
+EXPORT_SYMBOL_GPL(dprc_reg_update);
+
+void dprc_first_frame_handle(struct dprc *dprc)
+{
+	if (WARN_ON(!dprc))
+		return;
+
+	if (dprc->is_blit_chan)
+		return;
+
+	dprc_write(dprc, REPEAT_EN, SYSTEM_CTRL0);
+
+	prg_shadow_enable(dprc->prgs[0]);
+	if (dprc->use_aux_prg)
+		prg_shadow_enable(dprc->prgs[1]);
+}
+EXPORT_SYMBOL_GPL(dprc_first_frame_handle);
+
+void dprc_irq_handle(struct dprc *dprc)
+{
+	u32 mask, status;
+
+	if (WARN_ON(!dprc))
+		return;
+
+	spin_lock(&dprc->spin_lock);
+
+	mask = dprc_read(dprc, IRQ_MASK);
+	mask = ~mask;
+	status = dprc_read(dprc, IRQ_MASK_STATUS);
+	status &= mask;
+
+	/* disable irqs to be handled */
+	dprc_write(dprc, status, IRQ_MASK + SET);
+
+	/* clear status */
+	dprc_write(dprc, status, IRQ_MASK_STATUS);
+
+	if (status & DPR2RTR_FIFO_LOAD_BUF_RDY_UV_ERROR)
+		dev_err(dprc->dev,
+			"DPR to RTRAM FIFO load UV buffer ready error\n");
+
+	if (status & DPR2RTR_FIFO_LOAD_BUF_RDY_YRGB_ERROR)
+		dev_err(dprc->dev,
+			"DPR to RTRAM FIFO load YRGB buffer ready error\n");
+
+	if (status & DPR2RTR_UV_FIFO_OVFL)
+		dev_err(dprc->dev, "DPR to RTRAM FIFO UV FIFO overflow\n");
+
+	if (status & DPR2RTR_YRGB_FIFO_OVFL)
+		dev_err(dprc->dev, "DPR to RTRAM FIFO YRGB FIFO overflow\n");
+
+	if (status & IRQ_AXI_READ_ERROR)
+		dev_err(dprc->dev, "AXI read error\n");
+
+	if (status & IRQ_DPR_CRTL_DONE)
+		dprc_first_frame_handle(dprc);
+
+	spin_unlock(&dprc->spin_lock);
+}
+EXPORT_SYMBOL_GPL(dprc_irq_handle);
+
+void dprc_enable_ctrl_done_irq(struct dprc *dprc)
+{
+	unsigned long lock_flags;
+
+	if (WARN_ON(!dprc))
+		return;
+
+	spin_lock_irqsave(&dprc->spin_lock, lock_flags);
+	dprc_write(dprc, IRQ_DPR_CRTL_DONE, IRQ_MASK + CLR);
+	spin_unlock_irqrestore(&dprc->spin_lock, lock_flags);
+}
+EXPORT_SYMBOL_GPL(dprc_enable_ctrl_done_irq);
+
+bool dprc_format_supported(struct dprc *dprc, u32 format, u64 modifier)
+{
+	if (WARN_ON(!dprc))
+		return false;
+
+	switch (format) {
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRA8888:
+	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_RGB565:
+		return (modifier == DRM_FORMAT_MOD_NONE ||
+			modifier == DRM_FORMAT_MOD_VIVANTE_TILED ||
+			modifier == DRM_FORMAT_MOD_VIVANTE_SUPER_TILED);
+	case DRM_FORMAT_YUYV:
+	case DRM_FORMAT_UYVY:
+		switch (dprc->sc_resource) {
+		case IMX_SC_R_DC_0_FRAC0:
+		case IMX_SC_R_DC_1_FRAC0:
+		case IMX_SC_R_DC_0_WARP:
+		case IMX_SC_R_DC_1_WARP:
+			return false;
+		}
+		return modifier == DRM_FORMAT_MOD_NONE;
+	case DRM_FORMAT_NV12:
+	case DRM_FORMAT_NV21:
+		switch (dprc->sc_resource) {
+		case IMX_SC_R_DC_0_FRAC0:
+		case IMX_SC_R_DC_1_FRAC0:
+		case IMX_SC_R_DC_0_WARP:
+		case IMX_SC_R_DC_1_WARP:
+			return false;
+		case IMX_SC_R_DC_0_BLIT1:
+		case IMX_SC_R_DC_1_BLIT1:
+			return (modifier == DRM_FORMAT_MOD_NONE ||
+				modifier == DRM_FORMAT_MOD_AMPHION_TILED);
+		}
+		return (dprc->has_aux_prg &&
+			(modifier == DRM_FORMAT_MOD_NONE ||
+			 modifier == DRM_FORMAT_MOD_AMPHION_TILED));
+	}
+
+	return false;
+}
+EXPORT_SYMBOL_GPL(dprc_format_supported);
+
+bool dprc_stride_supported(struct dprc *dprc,
+			   unsigned int stride, unsigned int uv_stride,
+			   unsigned int width, u32 format)
+{
+	const struct dprc_format_info *info = dprc_format_info(format);
+	unsigned int prg_stride = width * info->cpp[0];
+
+	if (WARN_ON(!dprc))
+		return false;
+
+	if (stride > 0xffff)
+		return false;
+
+	if (info->num_planes > 1 && stride != uv_stride)
+		return false;
+
+	return prg_stride_supported(dprc->prgs[0], prg_stride);
+}
+EXPORT_SYMBOL_GPL(dprc_stride_supported);
+
+bool dprc_stride_double_check(struct dprc *dprc,
+			      unsigned int width, unsigned int x_offset,
+			      u32 format, u64 modifier,
+			      dma_addr_t baddr, dma_addr_t uv_baddr)
+{
+	const struct dprc_format_info *info = dprc_format_info(format);
+	unsigned int bpp = 8 * info->cpp[0];
+	unsigned int prg_stride = width * info->cpp[0];
+
+	if (WARN_ON(!dprc))
+		return false;
+
+	if (!prg_stride_double_check(dprc->prgs[0], width, x_offset,
+				     bpp, modifier, prg_stride, baddr))
+		return false;
+
+	if (info->num_planes > 1 &&
+	    !prg_stride_double_check(dprc->prgs[1], width, x_offset,
+				     bpp, modifier, prg_stride, uv_baddr))
+		return false;
+
+	return true;
+}
+EXPORT_SYMBOL_GPL(dprc_stride_double_check);
+
+struct dprc *
+dprc_lookup_by_phandle(struct device *dev, const char *name, int index)
+{
+	struct device_node *dprc_node = of_parse_phandle(dev->of_node,
+							 name, index);
+	struct dprc *dprc;
+
+	mutex_lock(&dprc_list_mutex);
+	list_for_each_entry(dprc, &dprc_list, list) {
+		if (dprc_node == dprc->dev->of_node) {
+			mutex_unlock(&dprc_list_mutex);
+			device_link_add(dev, dprc->dev,
+					DL_FLAG_AUTOREMOVE_CONSUMER);
+			return dprc;
+		}
+	}
+	mutex_unlock(&dprc_list_mutex);
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(dprc_lookup_by_phandle);
+
+static const struct of_device_id dprc_dt_ids[] = {
+	{ .compatible = "fsl,imx8qm-dpr-channel", },
+	{ .compatible = "fsl,imx8qxp-dpr-channel", },
+	{ /* sentinel */ },
+};
+
+static int dprc_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct resource *res;
+	struct dprc *dprc;
+	int ret, i;
+
+	dprc = devm_kzalloc(dev, sizeof(*dprc), GFP_KERNEL);
+	if (!dprc)
+		return -ENOMEM;
+
+	ret = imx_scu_get_handle(&dprc->ipc_handle);
+	if (ret)
+		return ret;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	dprc->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(dprc->base))
+		return PTR_ERR(dprc->base);
+
+	dprc->clk_apb = devm_clk_get(dev, "apb");
+	if (IS_ERR(dprc->clk_apb))
+		return PTR_ERR(dprc->clk_apb);
+	clk_prepare_enable(dprc->clk_apb);
+
+	dprc->clk_b = devm_clk_get(dev, "b");
+	if (IS_ERR(dprc->clk_b))
+		return PTR_ERR(dprc->clk_b);
+	clk_prepare_enable(dprc->clk_b);
+
+	dprc->clk_rtram = devm_clk_get(dev, "rtram");
+	if (IS_ERR(dprc->clk_rtram))
+		return PTR_ERR(dprc->clk_rtram);
+	clk_prepare_enable(dprc->clk_rtram);
+
+	ret = of_property_read_u32(pdev->dev.of_node,
+					"fsl,sc-resource", &dprc->sc_resource);
+	if (ret) {
+		dev_err(dev, "cannot get SC resource %d\n", ret);
+		return ret;
+	}
+
+	switch (dprc->sc_resource) {
+	case IMX_SC_R_DC_0_BLIT1:
+	case IMX_SC_R_DC_1_BLIT1:
+		dprc->has_aux_prg = true;
+		/* fall-through */
+	case IMX_SC_R_DC_0_BLIT0:
+	case IMX_SC_R_DC_1_BLIT0:
+		dprc->is_blit_chan = true;
+		/* fall-through */
+	case IMX_SC_R_DC_0_FRAC0:
+	case IMX_SC_R_DC_1_FRAC0:
+		break;
+	case IMX_SC_R_DC_0_VIDEO0:
+	case IMX_SC_R_DC_0_VIDEO1:
+	case IMX_SC_R_DC_1_VIDEO0:
+	case IMX_SC_R_DC_1_VIDEO1:
+	case IMX_SC_R_DC_0_WARP:
+	case IMX_SC_R_DC_1_WARP:
+		dprc->has_aux_prg = true;
+		break;
+	default:
+		dev_err(dev, "wrong SC resource %u\n", dprc->sc_resource);
+		return -EINVAL;
+	}
+
+	for (i = 0; i < 2; i++) {
+		if (i == 1 && !dprc->has_aux_prg)
+			break;
+
+		dprc->prgs[i] = prg_lookup_by_phandle(dev, "fsl,prgs", i);
+		if (!dprc->prgs[i])
+			return -EPROBE_DEFER;
+
+		if (i == 1)
+			prg_set_auxiliary(dprc->prgs[i]);
+
+		if (dprc->is_blit_chan)
+			prg_set_blit(dprc->prgs[i]);
+	}
+
+	dprc->dev = dev;
+	spin_lock_init(&dprc->spin_lock);
+	platform_set_drvdata(pdev, dprc);
+	mutex_lock(&dprc_list_mutex);
+	list_add(&dprc->list, &dprc_list);
+	mutex_unlock(&dprc_list_mutex);
+
+	dprc_reset(dprc);
+
+	return 0;
+}
+
+static int dprc_remove(struct platform_device *pdev)
+{
+	struct dprc *dprc = platform_get_drvdata(pdev);
+
+	mutex_lock(&dprc_list_mutex);
+	list_del(&dprc->list);
+	mutex_unlock(&dprc_list_mutex);
+
+	clk_disable_unprepare(dprc->clk_rtram);
+	clk_disable_unprepare(dprc->clk_b);
+	clk_disable_unprepare(dprc->clk_apb);
+
+	return 0;
+}
+
+struct platform_driver dprc_drv = {
+	.probe = dprc_probe,
+	.remove = dprc_remove,
+	.driver = {
+		.name = "imx8-dpr-channel",
+		.of_match_table = dprc_dt_ids,
+	},
+};
+module_platform_driver(dprc_drv);
+
+MODULE_DESCRIPTION("i.MX8 DPRC driver");
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/imx8_pc.c
+++ linux-ein-5.4.0/drivers/gpu/imx/imx8_pc.c
@@ -0,0 +1,218 @@
+/*
+ * Copyright 2018,2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <video/imx8-pc.h>
+
+#define REG0				0x0
+#define PIX_COMBINE_ENABLE		BIT(0)
+#define DISP_PIX_COMBINE_BYPASS(n)	BIT(1 + 21 * (n))
+#define DISP_HSYNC_POLARITY(n)		BIT(2 + 11 * (n))
+#define DISP_HSYNC_POLARITY_POS(n)	DISP_HSYNC_POLARITY(n)
+#define DISP_VSYNC_POLARITY(n)		BIT(3 + 11 * (n))
+#define DISP_VSYNC_POLARITY_POS(n)	DISP_VSYNC_POLARITY(n)
+#define DISP_DVALID_POLARITY(n)		BIT(4 + 11 * (n))
+#define DISP_DVALID_POLARITY_POS(n)	DISP_DVALID_POLARITY(n)
+#define VSYNC_MASK_ENABLE		BIT(5)
+#define SKIP_MODE			BIT(6)
+#define SKIP_NUMBER(n)			(((n) & 0x3F) << 7)
+#define DISP_PIX_DATA_FORMAT_MASK(n)    (0x7 << (16 + (n) * 3))
+#define DISP_PIX_DATA_FORMAT_SHIFT(n)   (16 + (n) * 3)
+enum {
+	RGB = 0,
+	YUV444,
+	YUV422,
+	SPLIT_RGB,
+};
+
+#define REG1				0x10
+#define BUF_ACTIVE_DEPTH(n)		((n) & 0x7FF)
+
+#define REG2				0x20
+#define PC_SW_RESET_N			BIT(0)
+#define DISP_SW_RESET_N(n)		BIT(1 + (n))
+#define PC_FULL_RESET_N			(PC_SW_RESET_N |	\
+					 DISP_SW_RESET_N(0) |	\
+					 DISP_SW_RESET_N(1))
+
+struct pc {
+	struct device *dev;
+	void __iomem *base;
+	struct list_head list;
+};
+
+static DEFINE_MUTEX(pc_list_mutex);
+static LIST_HEAD(pc_list);
+
+static inline u32 pc_read(struct pc *pc, unsigned int offset)
+{
+	return readl(pc->base + offset);
+}
+
+static inline void pc_write(struct pc *pc, unsigned int offset, u32 value)
+{
+	writel(value, pc->base + offset);
+}
+
+static void pc_reset(struct pc *pc)
+{
+	pc_write(pc, REG2, 0);
+	usleep_range(1000, 2000);
+	pc_write(pc, REG2, PC_FULL_RESET_N);
+}
+
+void pc_enable(struct pc *pc)
+{
+	u32 val;
+
+	if (WARN_ON(!pc))
+		return;
+
+	val = pc_read(pc, REG0);
+	val |= PIX_COMBINE_ENABLE;
+	pc_write(pc, REG0, val);
+
+	dev_dbg(pc->dev, "enable\n");
+}
+EXPORT_SYMBOL_GPL(pc_enable);
+
+void pc_disable(struct pc *pc)
+{
+	if (WARN_ON(!pc))
+		return;
+
+	pc_reset(pc);
+
+	dev_dbg(pc->dev, "disable\n");
+}
+EXPORT_SYMBOL_GPL(pc_disable);
+
+void pc_configure(struct pc *pc, unsigned int di, unsigned int frame_width,
+		u32 mode, u32 format)
+{
+	u32 val;
+
+	if (WARN_ON(!pc))
+		return;
+
+	if (WARN_ON(di != 0 && di != 1))
+		return;
+
+	dev_dbg(pc->dev, "configure mode-0x%08x frame_width-%u\n",
+							mode, frame_width);
+
+	val = pc_read(pc, REG0);
+	if (mode == PC_BYPASS) {
+		val |= DISP_PIX_COMBINE_BYPASS(di);
+	} else if (mode == PC_COMBINE) {
+		val &= ~DISP_PIX_COMBINE_BYPASS(di);
+		frame_width /= 4;
+	}
+
+	pc_write(pc, REG0, val);
+	pc_write(pc, REG1, BUF_ACTIVE_DEPTH(frame_width));
+}
+EXPORT_SYMBOL_GPL(pc_configure);
+
+struct pc *pc_lookup_by_phandle(struct device *dev, const char *name)
+{
+	struct device_node *pc_node = of_parse_phandle(dev->of_node,
+							name, 0);
+	struct pc *pc;
+
+	mutex_lock(&pc_list_mutex);
+	list_for_each_entry(pc, &pc_list, list) {
+		if (pc_node == pc->dev->of_node) {
+			mutex_unlock(&pc_list_mutex);
+			device_link_add(dev, pc->dev,
+					DL_FLAG_AUTOREMOVE_CONSUMER);
+			return pc;
+		}
+	}
+	mutex_unlock(&pc_list_mutex);
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(pc_lookup_by_phandle);
+
+static int pc_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct resource *res;
+	struct pc *pc;
+	u32 val;
+
+	pc = devm_kzalloc(dev, sizeof(*pc), GFP_KERNEL);
+	if (!pc)
+		return -ENOMEM;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	pc->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(pc->base))
+		return PTR_ERR(pc->base);
+
+	pc->dev = dev;
+	platform_set_drvdata(pdev, pc);
+	mutex_lock(&pc_list_mutex);
+	list_add(&pc->list, &pc_list);
+	mutex_unlock(&pc_list_mutex);
+
+	pc_reset(pc);
+
+	/*
+	 * assume data enable is active high and HSYNC/VSYNC are active low
+	 * also, bypass combine at startup
+	 */
+	val = DISP_DVALID_POLARITY_POS(0) | DISP_DVALID_POLARITY_POS(1) |
+	      DISP_PIX_COMBINE_BYPASS(0)  | DISP_PIX_COMBINE_BYPASS(1)  |
+	      VSYNC_MASK_ENABLE;
+
+	pc_write(pc, REG0, val);
+
+	return 0;
+}
+
+static int pc_remove(struct platform_device *pdev)
+{
+	struct pc *pc = platform_get_drvdata(pdev);
+
+	mutex_lock(&pc_list_mutex);
+	list_del(&pc->list);
+	mutex_unlock(&pc_list_mutex);
+
+	return 0;
+}
+
+static const struct of_device_id pc_dt_ids[] = {
+	{ .compatible = "fsl,imx8qm-pixel-combiner", },
+	{ .compatible = "fsl,imx8qxp-pixel-combiner", },
+	{ /* sentinel */ },
+};
+
+struct platform_driver pc_drv = {
+	.probe = pc_probe,
+	.remove = pc_remove,
+	.driver = {
+		.name = "imx8-pixel-combiner",
+		.of_match_table = pc_dt_ids,
+	},
+};
+module_platform_driver(pc_drv);
+
+MODULE_DESCRIPTION("i.MX8 Pixel Combiner driver");
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/imx8_prg.c
+++ linux-ein-5.4.0/drivers/gpu/imx/imx8_prg.c
@@ -0,0 +1,452 @@
+/*
+ * Copyright 2017-2019 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ */
+#include <drm/drm_fourcc.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <video/imx8-prefetch.h>
+
+#define SET			0x4
+#define CLR			0x8
+#define TOG			0xc
+
+#define PRG_CTRL		0x00
+#define BYPASS			BIT(0)
+#define SC_DATA_TYPE		BIT(2)
+#define SC_DATA_TYPE_8BIT	0
+#define SC_DATA_TYPE_10BIT	BIT(2)
+#define UV_EN			BIT(3)
+#define HANDSHAKE_MODE		BIT(4)
+#define HANDSHAKE_MODE_4LINES	0
+#define HANDSHAKE_MODE_8LINES	BIT(4)
+#define SHADOW_LOAD_MODE	BIT(5)
+#define DES_DATA_TYPE		0x30000
+enum {
+	DES_DATA_TYPE_32BPP = (0 << 16),
+	DES_DATA_TYPE_24BPP = (1 << 16),
+	DES_DATA_TYPE_16BPP = (2 << 16),
+	DES_DATA_TYPE_8BPP = (3 << 16),
+};
+#define SOFTRST			BIT(30)
+#define SHADOW_EN		BIT(31)
+
+#define PRG_STATUS		0x10
+#define BUFFER_VALID_B		BIT(1)
+#define BUFFER_VALID_A		BIT(0)
+
+#define PRG_REG_UPDATE		0x20
+#define REG_UPDATE		BIT(0)
+
+#define PRG_STRIDE		0x30
+#define STRIDE(n)		(((n) - 1) & 0xffff)
+
+#define PRG_HEIGHT		0x40
+#define HEIGHT(n)		(((n) - 1) & 0xffff)
+
+#define PRG_BADDR		0x50
+
+#define PRG_OFFSET		0x60
+#define Y(n)			(((n) & 0x7) << 16)
+#define X(n)			((n) & 0xffff)
+
+#define PRG_WIDTH		0x70
+#define WIDTH(n)		(((n) - 1) & 0xffff)
+
+struct prg {
+	struct device *dev;
+	void __iomem *base;
+	struct list_head list;
+	struct clk *clk_apb;
+	struct clk *clk_rtram;
+	bool is_auxiliary;
+	bool is_blit;
+};
+
+static DEFINE_MUTEX(prg_list_mutex);
+static LIST_HEAD(prg_list);
+
+static inline u32 prg_read(struct prg *prg, unsigned int offset)
+{
+	return readl(prg->base + offset);
+}
+
+static inline void prg_write(struct prg *prg, u32 value, unsigned int offset)
+{
+	writel(value, prg->base + offset);
+}
+
+static void prg_reset(struct prg *prg)
+{
+	if (prg->is_blit)
+		usleep_range(10, 20);
+
+	prg_write(prg, SOFTRST, PRG_CTRL + SET);
+
+	if (prg->is_blit)
+		usleep_range(10, 20);
+	else
+		usleep_range(1000, 2000);
+
+	prg_write(prg, SOFTRST, PRG_CTRL + CLR);
+}
+
+void prg_enable(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg_write(prg, BYPASS, PRG_CTRL + CLR);
+}
+EXPORT_SYMBOL_GPL(prg_enable);
+
+void prg_disable(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg_write(prg, BYPASS, PRG_CTRL);
+}
+EXPORT_SYMBOL_GPL(prg_disable);
+
+void prg_configure(struct prg *prg, unsigned int width, unsigned int height,
+		   unsigned int x_offset, unsigned int y_offset,
+		   unsigned int stride, unsigned int bits_per_pixel,
+		   unsigned long baddr, u32 format, u64 modifier,
+		   bool start)
+{
+	unsigned int burst_size;
+	unsigned int mt_w = 0, mt_h = 0;	/* w/h in a micro-tile */
+	unsigned long _baddr;
+	u32 val;
+
+	if (WARN_ON(!prg))
+		return;
+
+	if (start)
+		prg_reset(prg);
+
+	/* prg finer cropping into micro-tile block - top/left start point */
+	switch (modifier) {
+	case DRM_FORMAT_MOD_NONE:
+		break;
+	case DRM_FORMAT_MOD_AMPHION_TILED:
+		mt_w = 8;
+		mt_h = 8;
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_TILED:
+	case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		mt_w = (bits_per_pixel == 16) ? 8 : 4;
+		mt_h = 4;
+		break;
+	default:
+		dev_err(prg->dev, "unsupported modifier 0x%016llx\n", modifier);
+		return;
+	}
+
+	if (modifier) {
+		x_offset %= mt_w;
+		y_offset %= mt_h;
+
+		/* consider x offset to calculate stride */
+		_baddr = baddr + (x_offset * (bits_per_pixel / 8));
+	} else {
+		x_offset = 0;
+		y_offset = 0;
+		_baddr = baddr;
+	}
+
+	/*
+	 * address TKT343664:
+	 * fetch unit base address has to align to burst_size
+	 */
+	burst_size = 1 << (ffs(_baddr) - 1);
+	burst_size = round_up(burst_size, 8);
+	burst_size = min(burst_size, 128U);
+
+	/*
+	 * address TKT339017:
+	 * fixup for burst size vs stride mismatch
+	 */
+	if (modifier)
+		stride = round_up(stride + round_up(_baddr % 8, 8), burst_size);
+	else
+		stride = round_up(stride, burst_size);
+
+	/*
+	 * address TKT342628(part 1):
+	 * when prg stride is less or equals to burst size,
+	 * the auxiliary prg height needs to be a half
+	 */
+	if (prg->is_auxiliary && stride <= burst_size) {
+		height /= 2;
+		if (modifier)
+			y_offset /= 2;
+	}
+
+	prg_write(prg, STRIDE(stride), PRG_STRIDE);
+	prg_write(prg, WIDTH(width), PRG_WIDTH);
+	prg_write(prg, HEIGHT(height), PRG_HEIGHT);
+	prg_write(prg, X(x_offset) | Y(y_offset), PRG_OFFSET);
+	prg_write(prg, baddr, PRG_BADDR);
+
+	val = prg_read(prg, PRG_CTRL);
+	val &= ~SC_DATA_TYPE;
+	val |= SC_DATA_TYPE_8BIT;
+	val &= ~HANDSHAKE_MODE;
+	if (format == DRM_FORMAT_NV21 || format == DRM_FORMAT_NV12) {
+		val |= HANDSHAKE_MODE_8LINES;
+		/*
+		 * address TKT342628(part 2):
+		 * when prg stride is less or equals to burst size,
+		 * we disable UV_EN bit for the auxiliary prg
+		 */
+		if (prg->is_auxiliary && stride > burst_size)
+			val |= UV_EN;
+		else
+			val &= ~UV_EN;
+	} else {
+		val |= HANDSHAKE_MODE_4LINES;
+		val &= ~UV_EN;
+	}
+	val |= SHADOW_LOAD_MODE;
+	val &= ~DES_DATA_TYPE;
+	switch (bits_per_pixel) {
+	case 32:
+		val |= DES_DATA_TYPE_32BPP;
+		break;
+	case 24:
+		val |= DES_DATA_TYPE_24BPP;
+		break;
+	case 16:
+		val |= DES_DATA_TYPE_16BPP;
+		break;
+	case 8:
+		val |= DES_DATA_TYPE_8BPP;
+		break;
+	}
+	if (start)
+		/* no shadow for the first frame */
+		val &= ~SHADOW_EN;
+	else
+		val |= SHADOW_EN;
+	prg_write(prg, val, PRG_CTRL);
+
+	dev_dbg(prg->dev, "bits per pixel %u\n", bits_per_pixel);
+}
+EXPORT_SYMBOL_GPL(prg_configure);
+
+void prg_reg_update(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg_write(prg, REG_UPDATE, PRG_REG_UPDATE);
+}
+EXPORT_SYMBOL_GPL(prg_reg_update);
+
+void prg_shadow_enable(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg_write(prg, SHADOW_EN, PRG_CTRL + SET);
+}
+EXPORT_SYMBOL_GPL(prg_shadow_enable);
+
+bool prg_stride_supported(struct prg *prg, unsigned int stride)
+{
+	return stride < 0x10000;
+}
+EXPORT_SYMBOL_GPL(prg_stride_supported);
+
+bool prg_stride_double_check(struct prg *prg,
+			     unsigned int width, unsigned int x_offset,
+			     unsigned int bits_per_pixel, u64 modifier,
+			     unsigned int stride, dma_addr_t baddr)
+{
+	unsigned int burst_size;
+	unsigned int mt_w = 0;	/* w in a micro-tile */
+	dma_addr_t _baddr;
+
+	if (WARN_ON(!prg))
+		return false;
+
+	/* prg finer cropping into micro-tile block - top/left start point */
+	switch (modifier) {
+	case DRM_FORMAT_MOD_NONE:
+		break;
+	case DRM_FORMAT_MOD_AMPHION_TILED:
+		mt_w = 8;
+		break;
+	case DRM_FORMAT_MOD_VIVANTE_TILED:
+	case DRM_FORMAT_MOD_VIVANTE_SUPER_TILED:
+		mt_w = (bits_per_pixel == 16) ? 8 : 4;
+		break;
+	default:
+		dev_err(prg->dev, "unsupported modifier 0x%016llx\n", modifier);
+		return false;
+	}
+
+	if (modifier) {
+		x_offset %= mt_w;
+
+		/* consider x offset to calculate stride */
+		_baddr = baddr + (x_offset * (bits_per_pixel / 8));
+	} else {
+		_baddr = baddr;
+	}
+
+	/*
+	 * address TKT343664:
+	 * fetch unit base address has to align to burst size
+	 */
+	burst_size = 1 << (ffs(_baddr) - 1);
+	burst_size = round_up(burst_size, 8);
+	burst_size = min(burst_size, 128U);
+
+	/*
+	 * address TKT339017:
+	 * fixup for burst size vs stride mismatch
+	 */
+	if (modifier)
+		stride = round_up(stride + round_up(_baddr % 8, 8), burst_size);
+	else
+		stride = round_up(stride, burst_size);
+
+	return stride < 0x10000;
+}
+EXPORT_SYMBOL_GPL(prg_stride_double_check);
+
+void prg_set_auxiliary(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg->is_auxiliary = true;
+}
+EXPORT_SYMBOL_GPL(prg_set_auxiliary);
+
+void prg_set_primary(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg->is_auxiliary = false;
+}
+EXPORT_SYMBOL_GPL(prg_set_primary);
+
+void prg_set_blit(struct prg *prg)
+{
+	if (WARN_ON(!prg))
+		return;
+
+	prg->is_blit = true;
+}
+EXPORT_SYMBOL_GPL(prg_set_blit);
+
+struct prg *
+prg_lookup_by_phandle(struct device *dev, const char *name, int index)
+{
+	struct device_node *prg_node = of_parse_phandle(dev->of_node,
+							name, index);
+	struct prg *prg;
+
+	mutex_lock(&prg_list_mutex);
+	list_for_each_entry(prg, &prg_list, list) {
+		if (prg_node == prg->dev->of_node) {
+			mutex_unlock(&prg_list_mutex);
+			device_link_add(dev, prg->dev,
+					DL_FLAG_AUTOREMOVE_CONSUMER);
+			return prg;
+		}
+	}
+	mutex_unlock(&prg_list_mutex);
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(prg_lookup_by_phandle);
+
+static const struct of_device_id prg_dt_ids[] = {
+	{ .compatible = "fsl,imx8qm-prg", },
+	{ .compatible = "fsl,imx8qxp-prg", },
+	{ /* sentinel */ },
+};
+
+static int prg_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct resource *res;
+	struct prg *prg;
+
+	prg = devm_kzalloc(dev, sizeof(*prg), GFP_KERNEL);
+	if (!prg)
+		return -ENOMEM;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	prg->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(prg->base))
+		return PTR_ERR(prg->base);
+
+	prg->clk_apb = devm_clk_get(dev, "apb");
+	if (IS_ERR(prg->clk_apb))
+		return PTR_ERR(prg->clk_apb);
+	clk_prepare_enable(prg->clk_apb);
+
+	prg->clk_rtram = devm_clk_get(dev, "rtram");
+	if (IS_ERR(prg->clk_rtram))
+		return PTR_ERR(prg->clk_rtram);
+	clk_prepare_enable(prg->clk_rtram);
+
+	prg->dev = dev;
+	platform_set_drvdata(pdev, prg);
+	mutex_lock(&prg_list_mutex);
+	list_add(&prg->list, &prg_list);
+	mutex_unlock(&prg_list_mutex);
+
+	prg_reset(prg);
+
+	return 0;
+}
+
+static int prg_remove(struct platform_device *pdev)
+{
+	struct prg *prg = platform_get_drvdata(pdev);
+
+	mutex_lock(&prg_list_mutex);
+	list_del(&prg->list);
+	mutex_unlock(&prg_list_mutex);
+
+	clk_disable_unprepare(prg->clk_rtram);
+	clk_disable_unprepare(prg->clk_apb);
+
+	return 0;
+}
+
+struct platform_driver prg_drv = {
+	.probe = prg_probe,
+	.remove = prg_remove,
+	.driver = {
+		.name = "imx8-prg",
+		.of_match_table = prg_dt_ids,
+	},
+};
+module_platform_driver(prg_drv);
+
+MODULE_DESCRIPTION("i.MX8 PRG driver");
+MODULE_AUTHOR("NXP Semiconductor");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdif/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdif/Kconfig
@@ -0,0 +1,8 @@
+config IMX_LCDIF_CORE
+	tristate "i.MX LCDIF core support"
+	depends on ARCH_MXC
+	select RESET_CONTROLLER
+	help
+	  Choose this if you have a NXP i.MX8MM platform and want to use the
+	  LCDIF display controller. This option only enables LCDIF base support.
+
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdif/Makefile
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdif/Makefile
@@ -0,0 +1,3 @@
+obj-$(CONFIG_IMX_LCDIF_CORE) += imx-lcdif-core.o
+
+imx-lcdif-core-objs := lcdif-common.o
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdif/lcdif-common.c
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdif/lcdif-common.c
@@ -0,0 +1,835 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/iopoll.h>
+#include <linux/media-bus-format.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/of_graph.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/reset.h>
+#include <linux/types.h>
+#include <drm/drm_fourcc.h>
+#include <video/imx-lcdif.h>
+#include <video/videomode.h>
+
+#include "lcdif-regs.h"
+
+#define DRIVER_NAME "imx-lcdif"
+
+struct lcdif_soc {
+	struct device *dev;
+
+	int irq;
+	void __iomem *base;
+	struct reset_control *soft_resetn;
+	struct reset_control *clk_enable;
+	atomic_t rpm_suspended;
+
+	struct clk *clk_pix;
+	struct clk *clk_disp_axi;
+	struct clk *clk_disp_apb;
+};
+
+struct lcdif_soc_pdata {
+	bool hsync_invert;
+	bool vsync_invert;
+	bool de_invert;
+};
+
+struct lcdif_platform_reg {
+	struct lcdif_client_platformdata pdata;
+	char *name;
+};
+
+struct lcdif_platform_reg client_reg[] = {
+	{
+		.pdata = { },
+		.name  = "imx-lcdif-crtc",
+	},
+};
+
+struct lcdif_soc_pdata imx8mm_pdata = {
+	.hsync_invert = true,
+	.vsync_invert = true,
+	.de_invert    = true,
+};
+
+static const struct of_device_id imx_lcdif_dt_ids[] = {
+	{ .compatible = "fsl,imx8mm-lcdif", .data = &imx8mm_pdata, },
+	{ .compatible = "fsl,imx8mn-lcdif", .data = &imx8mm_pdata, },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx_lcdif_dt_ids);
+
+#ifdef CONFIG_PM
+static int imx_lcdif_runtime_suspend(struct device *dev);
+static int imx_lcdif_runtime_resume(struct device *dev);
+#else
+static int imx_lcdif_runtime_suspend(struct device *dev)
+{
+	return 0;
+}
+static int imx_lcdif_runtime_resume(struct device *dev)
+{
+	return 0;
+}
+#endif
+
+static int lcdif_rstc_reset(struct reset_control *rstc, bool assert)
+{
+	int ret;
+
+	if (!rstc)
+		return 0;
+
+	ret = assert ? reset_control_assert(rstc)	:
+		       reset_control_deassert(rstc);
+
+	return ret;
+}
+
+static int lcdif_enable_clocks(struct lcdif_soc *lcdif)
+{
+	int ret;
+
+	if (lcdif->clk_disp_axi) {
+		ret = clk_prepare_enable(lcdif->clk_disp_axi);
+		if (ret)
+			return ret;
+	}
+
+	if (lcdif->clk_disp_apb) {
+		ret = clk_prepare_enable(lcdif->clk_disp_apb);
+		if (ret)
+			goto disable_disp_axi;
+	}
+
+	ret = clk_prepare_enable(lcdif->clk_pix);
+	if (ret)
+		goto disable_disp_apb;
+
+	return 0;
+
+disable_disp_apb:
+	if (lcdif->clk_disp_apb)
+		clk_disable_unprepare(lcdif->clk_disp_apb);
+disable_disp_axi:
+	if (lcdif->clk_disp_axi)
+		clk_disable_unprepare(lcdif->clk_disp_axi);
+
+	return ret;
+}
+
+static void lcdif_disable_clocks(struct lcdif_soc *lcdif)
+{
+	clk_disable_unprepare(lcdif->clk_pix);
+
+	if (lcdif->clk_disp_axi)
+		clk_disable_unprepare(lcdif->clk_disp_axi);
+
+	if (lcdif->clk_disp_apb)
+		clk_disable_unprepare(lcdif->clk_disp_apb);
+}
+
+int lcdif_vblank_irq_get(struct lcdif_soc *lcdif)
+{
+	return lcdif->irq;
+}
+EXPORT_SYMBOL(lcdif_vblank_irq_get);
+
+void lcdif_dump_registers(struct lcdif_soc *lcdif)
+{
+	pr_info("%#x	: %#x\n", LCDIF_CTRL,
+				  readl(lcdif->base + LCDIF_CTRL));
+	pr_info("%#x	: %#x\n", LCDIF_CTRL1,
+				  readl(lcdif->base + LCDIF_CTRL1));
+	pr_info("%#x	: %#x\n", LCDIF_CTRL2,
+				  readl(lcdif->base + LCDIF_CTRL2));
+	pr_info("%#x	: %#x\n", LCDIF_TRANSFER_COUNT,
+				  readl(lcdif->base + LCDIF_TRANSFER_COUNT));
+	pr_info("%#x	: %#x\n", LCDIF_CUR_BUF,
+				  readl(lcdif->base + LCDIF_CUR_BUF));
+	pr_info("%#x	: %#x\n", LCDIF_NEXT_BUF,
+				  readl(lcdif->base + LCDIF_NEXT_BUF));
+	pr_info("%#x	: %#x\n", LCDIF_VDCTRL0,
+				  readl(lcdif->base + LCDIF_VDCTRL0));
+	pr_info("%#x	: %#x\n", LCDIF_VDCTRL1,
+				  readl(lcdif->base + LCDIF_VDCTRL1));
+	pr_info("%#x	: %#x\n", LCDIF_VDCTRL2,
+				  readl(lcdif->base + LCDIF_VDCTRL2));
+	pr_info("%#x	: %#x\n", LCDIF_VDCTRL3,
+				  readl(lcdif->base + LCDIF_VDCTRL3));
+	pr_info("%#x	: %#x\n", LCDIF_VDCTRL4,
+				  readl(lcdif->base + LCDIF_VDCTRL4));
+}
+EXPORT_SYMBOL(lcdif_dump_registers);
+
+void lcdif_vblank_irq_enable(struct lcdif_soc *lcdif)
+{
+	writel(CTRL1_CUR_FRAME_DONE_IRQ, lcdif->base + LCDIF_CTRL1 + REG_CLR);
+	writel(CTRL1_CUR_FRAME_DONE_IRQ_EN, lcdif->base + LCDIF_CTRL1 + REG_SET);
+}
+EXPORT_SYMBOL(lcdif_vblank_irq_enable);
+
+void lcdif_vblank_irq_disable(struct lcdif_soc *lcdif)
+{
+	writel(CTRL1_CUR_FRAME_DONE_IRQ_EN, lcdif->base + LCDIF_CTRL1 + REG_CLR);
+	writel(CTRL1_CUR_FRAME_DONE_IRQ, lcdif->base + LCDIF_CTRL1 + REG_CLR);
+}
+EXPORT_SYMBOL(lcdif_vblank_irq_disable);
+
+void lcdif_vblank_irq_clear(struct lcdif_soc *lcdif)
+{
+	writel(CTRL1_CUR_FRAME_DONE_IRQ, lcdif->base + LCDIF_CTRL1 + REG_CLR);
+}
+EXPORT_SYMBOL(lcdif_vblank_irq_clear);
+
+static uint32_t lcdif_get_bpp_from_fmt(uint32_t format)
+{
+	/* TODO: only support RGB for now */
+
+	switch (format) {
+	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
+	case DRM_FORMAT_ARGB1555:
+	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_XBGR1555:
+		return 16;
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+		return 32;
+	default:
+		/* unsupported format */
+		return 0;
+	}
+}
+
+/*
+ * Get the bus format supported by LCDIF
+ * according to drm fourcc format
+ */
+int lcdif_get_bus_fmt_from_pix_fmt(struct lcdif_soc *lcdif,
+				   uint32_t format)
+{
+	uint32_t bpp;
+
+	bpp = lcdif_get_bpp_from_fmt(format);
+	if (!bpp)
+		return -EINVAL;
+
+	switch (bpp) {
+	case 16:
+		return MEDIA_BUS_FMT_RGB565_1X16;
+	case 18:
+		return MEDIA_BUS_FMT_RGB666_1X18;
+	case 24:
+	case 32:
+		return MEDIA_BUS_FMT_RGB888_1X24;
+	default:
+		return -EINVAL;
+	}
+}
+EXPORT_SYMBOL(lcdif_get_bus_fmt_from_pix_fmt);
+
+int lcdif_set_pix_fmt(struct lcdif_soc *lcdif, u32 format)
+{
+	struct drm_format_name_buf format_name;
+	u32 ctrl = 0, ctrl1 = 0;
+
+	/* TODO: lcdif should be disabled to set pixel format */
+
+	ctrl  = readl(lcdif->base + LCDIF_CTRL);
+	ctrl1 = readl(lcdif->base + LCDIF_CTRL1);
+
+	/* clear pixel format related bits */
+	ctrl  &= ~(CTRL_SHIFT_NUM(0x3f)  | CTRL_INPUT_SWIZZLE(0x3) |
+		   CTRL_CSC_SWIZZLE(0x3) | CTRL_SET_WORD_LENGTH(0x3));
+
+	ctrl1 &= ~CTRL1_SET_BYTE_PACKAGING(0xf);
+
+	/* default is 'RGB' order */
+	writel(CTRL2_ODD_LINE_PATTERN(0x7) |
+	       CTRL2_EVEN_LINE_PATTERN(0x7),
+	       lcdif->base + LCDIF_CTRL2 + REG_CLR);
+
+	switch (format) {
+		/* bpp 16 */
+	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
+	case DRM_FORMAT_ARGB1555:
+	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_XBGR1555:
+		/* Data format */
+		ctrl = (format == DRM_FORMAT_RGB565 ||
+			format == DRM_FORMAT_BGR565) ?
+			(ctrl & ~CTRL_DF16) : (ctrl | CTRL_DF16);
+
+		ctrl |= CTRL_SET_WORD_LENGTH(0x0);
+
+		/* Byte packing */
+		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0xf);
+
+		/* 'BGR' order */
+		if (format == DRM_FORMAT_BGR565		||
+		    format == DRM_FORMAT_ABGR1555	||
+		    format == DRM_FORMAT_XBGR1555)
+			writel(CTRL2_ODD_LINE_PATTERN(0x5) |
+			       CTRL2_EVEN_LINE_PATTERN(0x5),
+			       lcdif->base + LCDIF_CTRL2 + REG_SET);
+		break;
+		/* bpp 32 */
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+		/*Data format */
+		ctrl &= ~CTRL_DF24;
+		ctrl |= CTRL_SET_WORD_LENGTH(3);
+
+		if (format == DRM_FORMAT_RGBA8888 ||
+		    format == DRM_FORMAT_RGBX8888)
+			ctrl |= CTRL_SHIFT_DIR(1) | CTRL_SHIFT_NUM(8);
+
+		/* Byte packing */
+		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0x7);
+
+		/* 'BGR' order */
+		if (format == DRM_FORMAT_ABGR8888 ||
+		    format == DRM_FORMAT_XBGR8888)
+			writel(CTRL2_ODD_LINE_PATTERN(0x5) |
+			       CTRL2_EVEN_LINE_PATTERN(0x5),
+			       lcdif->base + LCDIF_CTRL2 + REG_SET);
+		break;
+	default:
+		dev_err(lcdif->dev, "unsupported pixel format: %s\n",
+			drm_get_format_name(format, &format_name));
+		return -EINVAL;
+	}
+
+	writel(ctrl,  lcdif->base + LCDIF_CTRL);
+	writel(ctrl1, lcdif->base + LCDIF_CTRL1);
+
+	return 0;
+}
+EXPORT_SYMBOL(lcdif_set_pix_fmt);
+
+void lcdif_set_bus_fmt(struct lcdif_soc *lcdif, u32 bus_format)
+{
+	u32 bus_width;
+
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB565_1X16:
+		bus_width = CTRL_SET_BUS_WIDTH(STMLCDIF_16BIT);
+		break;
+	case MEDIA_BUS_FMT_RGB666_1X18:
+		bus_width = CTRL_SET_BUS_WIDTH(STMLCDIF_18BIT);
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X24:
+		bus_width = CTRL_SET_BUS_WIDTH(STMLCDIF_24BIT);
+		break;
+	default:
+		dev_err(lcdif->dev, "unknown bus format: %#x\n", bus_format);
+		return;
+	}
+
+	writel(CTRL_SET_BUS_WIDTH(0x3), lcdif->base + LCDIF_CTRL + REG_CLR);
+	writel(bus_width, lcdif->base + LCDIF_CTRL + REG_SET);
+}
+EXPORT_SYMBOL(lcdif_set_bus_fmt);
+
+void lcdif_set_fb_addr(struct lcdif_soc *lcdif, int id, u32 addr)
+{
+	switch (id) {
+	case 0:
+		/* primary plane */
+		writel(addr, lcdif->base + LCDIF_NEXT_BUF);
+		break;
+	default:
+		/* TODO: add overlay support */
+		return;
+	}
+}
+EXPORT_SYMBOL(lcdif_set_fb_addr);
+
+void lcdif_set_fb_hcrop(struct lcdif_soc *lcdif, u32 src_w,
+			u32 fb_w, bool crop)
+{
+	u32 mask_cnt, htotal, hcount;
+	u32 vdctrl2, vdctrl3, vdctrl4, transfer_count;
+	u32 pigeon_12_0, pigeon_12_1, pigeon_12_2;
+
+	if (!crop) {
+		writel(0x0, lcdif->base + HW_EPDC_PIGEON_12_0);
+		writel(0x0, lcdif->base + HW_EPDC_PIGEON_12_1);
+
+		return;
+	}
+
+	/* transfer_count's hcount, vdctrl2's htotal and vdctrl4's
+	 * H_VALID_DATA_CNT should use fb width instead of hactive
+	 * when requires cropping.
+	 * */
+	transfer_count = readl(lcdif->base + LCDIF_TRANSFER_COUNT);
+	hcount = TRANSFER_COUNT_GET_HCOUNT(transfer_count);
+
+	transfer_count &= ~TRANSFER_COUNT_SET_HCOUNT(0xffff);
+	transfer_count |= TRANSFER_COUNT_SET_HCOUNT(fb_w);
+	writel(transfer_count, lcdif->base + LCDIF_TRANSFER_COUNT);
+
+	vdctrl2 = readl(lcdif->base + LCDIF_VDCTRL2);
+	htotal  = VDCTRL2_GET_HSYNC_PERIOD(vdctrl2);
+	htotal  += fb_w - hcount;
+	vdctrl2 &= ~VDCTRL2_SET_HSYNC_PERIOD(0x3ffff);
+	vdctrl2 |= VDCTRL2_SET_HSYNC_PERIOD(htotal);
+	writel(vdctrl2, lcdif->base + LCDIF_VDCTRL2);
+
+	vdctrl4 = readl(lcdif->base + LCDIF_VDCTRL4);
+	vdctrl4 &= ~SET_DOTCLK_H_VALID_DATA_CNT(0x3ffff);
+	vdctrl4 |= SET_DOTCLK_H_VALID_DATA_CNT(fb_w);
+	writel(vdctrl4, lcdif->base + LCDIF_VDCTRL4);
+
+	/* configure related pigeon registers */
+	vdctrl3  = readl(lcdif->base + LCDIF_VDCTRL3);
+	mask_cnt = GET_HOR_WAIT_CNT(vdctrl3) - 5;
+
+	pigeon_12_0 = PIGEON_12_0_SET_STATE_MASK(0x24)		|
+		      PIGEON_12_0_SET_MASK_CNT(mask_cnt)	|
+		      PIGEON_12_0_SET_MASK_CNT_SEL(0x6)		|
+		      PIGEON_12_0_POL_ACTIVE_LOW		|
+		      PIGEON_12_0_EN;
+	writel(pigeon_12_0, lcdif->base + HW_EPDC_PIGEON_12_0);
+
+	pigeon_12_1 = PIGEON_12_1_SET_CLR_CNT(src_w) |
+		      PIGEON_12_1_SET_SET_CNT(0x0);
+	writel(pigeon_12_1, lcdif->base + HW_EPDC_PIGEON_12_1);
+
+	pigeon_12_2 = 0x0;
+	writel(pigeon_12_2, lcdif->base + HW_EPDC_PIGEON_12_2);
+}
+EXPORT_SYMBOL(lcdif_set_fb_hcrop);
+
+
+void lcdif_set_mode(struct lcdif_soc *lcdif, struct videomode *vmode)
+{
+	const struct of_device_id *of_id =
+			of_match_device(imx_lcdif_dt_ids, lcdif->dev);
+	const struct lcdif_soc_pdata *soc_pdata;
+	u32 vdctrl0, vdctrl1, vdctrl2, vdctrl3, vdctrl4, htotal;
+
+	if (unlikely(!of_id))
+		return;
+	soc_pdata = of_id->data;
+
+	/* Clear the FIFO */
+	writel(CTRL1_FIFO_CLEAR, lcdif->base + LCDIF_CTRL1 + REG_SET);
+	writel(CTRL1_FIFO_CLEAR, lcdif->base + LCDIF_CTRL1 + REG_CLR);
+
+	/* set pixel clock rate */
+	clk_disable_unprepare(lcdif->clk_pix);
+	clk_set_rate(lcdif->clk_pix, vmode->pixelclock);
+	clk_prepare_enable(lcdif->clk_pix);
+
+	/* config display timings */
+	writel(TRANSFER_COUNT_SET_VCOUNT(vmode->vactive) |
+	       TRANSFER_COUNT_SET_HCOUNT(vmode->hactive),
+	       lcdif->base + LCDIF_TRANSFER_COUNT);
+
+	vdctrl0 = VDCTRL0_ENABLE_PRESENT		|
+		  VDCTRL0_VSYNC_PERIOD_UNIT 		|
+		  VDCTRL0_VSYNC_PULSE_WIDTH_UNIT	|
+		  VDCTRL0_SET_VSYNC_PULSE_WIDTH(vmode->vsync_len);
+
+	/* Polarities */
+	if (soc_pdata) {
+		if ((soc_pdata->hsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_HSYNC_LOW) ||
+		    (!soc_pdata->hsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_HSYNC_HIGH))
+				vdctrl0 |= VDCTRL0_HSYNC_ACT_HIGH;
+
+		if ((soc_pdata->vsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_VSYNC_LOW) ||
+		    (!soc_pdata->vsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_VSYNC_HIGH))
+				vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH;
+
+		if ((soc_pdata->de_invert &&
+		     vmode->flags & DISPLAY_FLAGS_DE_LOW) ||
+		    (!soc_pdata->de_invert &&
+		     vmode->flags & DISPLAY_FLAGS_DE_HIGH))
+				vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH;
+	} else {
+		if (vmode->flags & DISPLAY_FLAGS_HSYNC_HIGH)
+			vdctrl0 |= VDCTRL0_HSYNC_ACT_HIGH;
+		if (vmode->flags & DISPLAY_FLAGS_VSYNC_HIGH)
+			vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH;
+		if (vmode->flags & DISPLAY_FLAGS_DE_HIGH)
+			vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH;
+	}
+
+	if (vmode->flags & DISPLAY_FLAGS_PIXDATA_POSEDGE)
+		vdctrl0 |= VDCTRL0_DOTCLK_ACT_FALLING;
+
+	writel(vdctrl0, lcdif->base + LCDIF_VDCTRL0);
+
+	vdctrl1 = vmode->vactive + vmode->vsync_len +
+		  vmode->vfront_porch + vmode->vback_porch;
+	writel(vdctrl1, lcdif->base + LCDIF_VDCTRL1);
+
+	htotal = vmode->hactive + vmode->hsync_len +
+		 vmode->hfront_porch + vmode->hback_porch;
+	vdctrl2 = VDCTRL2_SET_HSYNC_PULSE_WIDTH(vmode->hsync_len) |
+		  VDCTRL2_SET_HSYNC_PERIOD(htotal);
+	writel(vdctrl2, lcdif->base + LCDIF_VDCTRL2);
+
+	vdctrl3 = SET_HOR_WAIT_CNT(vmode->hsync_len + vmode->hback_porch) |
+		  SET_VERT_WAIT_CNT(vmode->vsync_len + vmode->vback_porch);
+	writel(vdctrl3, lcdif->base + LCDIF_VDCTRL3);
+
+	vdctrl4 = SET_DOTCLK_H_VALID_DATA_CNT(vmode->hactive);
+	writel(vdctrl4, lcdif->base + LCDIF_VDCTRL4);
+}
+EXPORT_SYMBOL(lcdif_set_mode);
+
+void lcdif_enable_controller(struct lcdif_soc *lcdif)
+{
+	u32 ctrl2, vdctrl4;
+
+	ctrl2	= readl(lcdif->base + LCDIF_CTRL2);
+	vdctrl4 = readl(lcdif->base + LCDIF_VDCTRL4);
+
+	ctrl2 &= ~CTRL2_OUTSTANDING_REQS(0x7);
+	ctrl2 |= CTRL2_OUTSTANDING_REQS(REQ_16);
+	writel(ctrl2, lcdif->base + LCDIF_CTRL2);
+
+	/* Continous dotclock mode */
+	writel(CTRL_BYPASS_COUNT | CTRL_DOTCLK_MODE,
+	       lcdif->base + LCDIF_CTRL + REG_SET);
+
+	/* enable the SYNC signals first, then the DMA engine */
+	vdctrl4 |= VDCTRL4_SYNC_SIGNALS_ON;
+	writel(vdctrl4, lcdif->base + LCDIF_VDCTRL4);
+
+	/* enable underflow recovery */
+	writel(CTRL1_RECOVERY_ON_UNDERFLOW,
+	       lcdif->base + LCDIF_CTRL1 + REG_SET);
+
+	/* run lcdif */
+	writel(CTRL_MASTER, lcdif->base + LCDIF_CTRL + REG_SET);
+	writel(CTRL_RUN, lcdif->base + LCDIF_CTRL + REG_SET);
+}
+EXPORT_SYMBOL(lcdif_enable_controller);
+
+void lcdif_disable_controller(struct lcdif_soc *lcdif)
+{
+	int ret;
+	u32 ctrl, vdctrl4;
+
+	writel(CTRL_RUN, lcdif->base + LCDIF_CTRL + REG_CLR);
+	writel(CTRL_DOTCLK_MODE, lcdif->base + LCDIF_CTRL + REG_CLR);
+
+	ret = readl_poll_timeout(lcdif->base + LCDIF_CTRL, ctrl,
+				 !(ctrl & CTRL_RUN), 0, 1000);
+	if (WARN_ON(ret))
+		dev_err(lcdif->dev, "disable lcdif run timeout\n");
+
+	writel(CTRL_MASTER, lcdif->base + LCDIF_CTRL + REG_CLR);
+
+	vdctrl4 = readl(lcdif->base + LCDIF_VDCTRL4);
+	vdctrl4 &= ~VDCTRL4_SYNC_SIGNALS_ON;
+	writel(vdctrl4, lcdif->base + LCDIF_VDCTRL4);
+}
+EXPORT_SYMBOL(lcdif_disable_controller);
+
+long lcdif_pix_clk_round_rate(struct lcdif_soc *lcdif,
+			      unsigned long rate)
+{
+	if (unlikely(!rate))
+		return -EINVAL;
+
+	return clk_round_rate(lcdif->clk_pix, rate);
+}
+EXPORT_SYMBOL(lcdif_pix_clk_round_rate);
+
+static int platform_remove_device_fn(struct device *dev, void *data)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+
+	platform_device_unregister(pdev);
+
+	return 0;
+}
+
+static void platform_device_unregister_children(struct platform_device *pdev)
+{
+	device_for_each_child(&pdev->dev, NULL, platform_remove_device_fn);
+}
+
+static int lcdif_add_client_devices(struct lcdif_soc *lcdif)
+{
+	int ret = 0, i;
+	struct device *dev = lcdif->dev;
+	struct platform_device *pdev = NULL;
+	struct device_node *of_node;
+
+	for (i = 0; i < ARRAY_SIZE(client_reg); i++) {
+		of_node = of_graph_get_port_by_id(dev->of_node, i);
+		if (!of_node) {
+			dev_info(dev, "no port@%d node in %s\n",
+				 i, dev->of_node->full_name);
+			continue;
+		}
+		of_node_put(of_node);
+
+		pdev = platform_device_alloc(client_reg[i].name, i);
+		if (!pdev) {
+			dev_err(dev, "Can't allocate port pdev\n");
+			ret = -ENOMEM;
+			goto err_register;
+		}
+
+		pdev->dev.parent = dev;
+		client_reg[i].pdata.of_node = of_node;
+
+		ret = platform_device_add_data(pdev, &client_reg[i].pdata,
+					       sizeof(client_reg[i].pdata));
+		if (!ret)
+			ret = platform_device_add(pdev);
+		if (ret) {
+			platform_device_put(pdev);
+			goto err_register;
+		}
+
+		pdev->dev.of_node = of_node;
+	}
+
+	if (!pdev)
+		return -ENODEV;
+
+	return 0;
+
+err_register:
+	platform_device_unregister_children(to_platform_device(dev));
+	return ret;
+}
+
+static int lcdif_of_parse_resets(struct lcdif_soc *lcdif)
+{
+	int ret;
+	struct device *dev = lcdif->dev;
+	struct device_node *np = dev->of_node;
+	struct device_node *parent, *child;
+	struct of_phandle_args args;
+	struct reset_control *rstc;
+	const char *compat;
+	uint32_t len, rstc_num = 0;
+
+	ret = of_parse_phandle_with_args(np, "resets", "#reset-cells",
+					 0, &args);
+	if (ret)
+		return ret;
+
+	parent = args.np;
+	for_each_child_of_node(parent, child) {
+		compat = of_get_property(child, "compatible", NULL);
+		if (!compat)
+			continue;
+
+		rstc = of_reset_control_array_get(child, false, false, true);
+		if (IS_ERR(rstc))
+			continue;
+
+		len = strlen(compat);
+		if (!of_compat_cmp("lcdif,soft-resetn", compat, len)) {
+			lcdif->soft_resetn = rstc;
+			rstc_num++;
+		} else if (!of_compat_cmp("lcdif,clk-enable", compat, len)) {
+			lcdif->clk_enable = rstc;
+			rstc_num++;
+		}
+		else
+			dev_warn(dev, "invalid lcdif reset node: %s\n", compat);
+	}
+
+	if (!rstc_num) {
+		dev_err(dev, "no invalid reset control exists\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int imx_lcdif_probe(struct platform_device *pdev)
+{
+	int ret;
+	struct device *dev = &pdev->dev;
+	struct lcdif_soc *lcdif;
+	struct resource *res;
+
+	dev_dbg(dev, "%s: probe begin\n", __func__);
+
+	lcdif = devm_kzalloc(dev, sizeof(*lcdif), GFP_KERNEL);
+	if (!lcdif) {
+		dev_err(dev, "Can't allocate 'lcdif_soc' structure\n");
+		return -ENOMEM;
+	}
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -ENODEV;
+
+	lcdif->irq = platform_get_irq(pdev, 0);
+	if (lcdif->irq < 0)
+		return -ENODEV;
+
+	lcdif->clk_pix = devm_clk_get(dev, "pix");
+	if (IS_ERR(lcdif->clk_pix))
+		return PTR_ERR(lcdif->clk_pix);
+
+	lcdif->clk_disp_axi = devm_clk_get(dev, "disp-axi");
+	if (IS_ERR(lcdif->clk_disp_axi))
+		lcdif->clk_disp_axi = NULL;
+
+	lcdif->clk_disp_apb = devm_clk_get(dev, "disp-apb");
+	if (IS_ERR(lcdif->clk_disp_apb))
+		lcdif->clk_disp_apb = NULL;
+
+	lcdif->base = devm_ioremap_resource(dev, res);
+	if (IS_ERR(lcdif->base))
+		return PTR_ERR(lcdif->base);
+
+	lcdif->dev = dev;
+	ret = lcdif_of_parse_resets(lcdif);
+	if (ret)
+		return ret;
+
+	platform_set_drvdata(pdev, lcdif);
+
+	atomic_set(&lcdif->rpm_suspended, 0);
+	pm_runtime_enable(dev);
+	atomic_inc(&lcdif->rpm_suspended);
+
+	dev_dbg(dev, "%s: probe end\n", __func__);
+
+	return lcdif_add_client_devices(lcdif);
+}
+
+static int imx_lcdif_remove(struct platform_device *pdev)
+{
+	pm_runtime_disable(&pdev->dev);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int imx_lcdif_suspend(struct device *dev)
+{
+	return imx_lcdif_runtime_suspend(dev);
+}
+
+static int imx_lcdif_resume(struct device *dev)
+{
+	return imx_lcdif_runtime_resume(dev);
+}
+#endif
+
+#ifdef CONFIG_PM
+static int imx_lcdif_runtime_suspend(struct device *dev)
+{
+	struct lcdif_soc *lcdif = dev_get_drvdata(dev);
+
+	if (atomic_inc_return(&lcdif->rpm_suspended) > 1)
+		return 0;
+
+	lcdif_disable_clocks(lcdif);
+
+	release_bus_freq(BUS_FREQ_HIGH);
+
+	return 0;
+}
+
+static int imx_lcdif_runtime_resume(struct device *dev)
+{
+	int ret = 0;
+	struct lcdif_soc *lcdif = dev_get_drvdata(dev);
+
+	if (unlikely(!atomic_read(&lcdif->rpm_suspended))) {
+		dev_warn(lcdif->dev, "Unbalanced %s!\n", __func__);
+		return 0;
+	}
+
+	if (!atomic_dec_and_test(&lcdif->rpm_suspended))
+		return 0;
+
+	request_bus_freq(BUS_FREQ_HIGH);
+
+	ret = lcdif_enable_clocks(lcdif);
+	if (ret) {
+		release_bus_freq(BUS_FREQ_HIGH);
+		return ret;
+	}
+
+	ret = lcdif_rstc_reset(lcdif->soft_resetn, false);
+	if (ret) {
+		dev_err(dev, "deassert soft_resetn failed\n");
+		return ret;
+	}
+
+	ret = lcdif_rstc_reset(lcdif->clk_enable, true);
+	if (ret) {
+		dev_err(dev, "assert clk_enable failed\n");
+		return ret;
+	}
+
+	/* Pull LCDIF out of reset */
+	writel(0x0, lcdif->base + LCDIF_CTRL);
+
+	return ret;
+}
+#endif
+
+static const struct dev_pm_ops imx_lcdif_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(imx_lcdif_suspend, imx_lcdif_resume)
+	SET_RUNTIME_PM_OPS(imx_lcdif_runtime_suspend,
+			   imx_lcdif_runtime_resume, NULL)
+};
+
+struct platform_driver imx_lcdif_driver = {
+	.probe    = imx_lcdif_probe,
+	.remove   = imx_lcdif_remove,
+	.driver   = {
+		.name = DRIVER_NAME,
+		.of_match_table = imx_lcdif_dt_ids,
+		.pm = &imx_lcdif_pm_ops,
+	},
+};
+
+module_platform_driver(imx_lcdif_driver);
+
+MODULE_DESCRIPTION("NXP i.MX LCDIF Display Controller driver");
+MODULE_AUTHOR("Fancy Fang <chen.fang@nxp.com>");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdif/lcdif-regs.h
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdif/lcdif-regs.h
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __LCDIF_REGS_H
+#define __LCDIF_REGS_H
+
+#define REG_SET	4
+#define REG_CLR	8
+
+/* regs offset */
+#define LCDIF_CTRL			0x00
+#define LCDIF_CTRL1			0X10
+#define LCDIF_CTRL2			0X20
+#define LCDIF_TRANSFER_COUNT		0x30
+#define LCDIF_CUR_BUF			0x40
+#define LCDIF_NEXT_BUF			0x50
+#define LCDIF_TIMING			0x60
+#define LCDIF_VDCTRL0			0x70
+#define LCDIF_VDCTRL1			0x80
+#define LCDIF_VDCTRL2			0x90
+#define LCDIF_VDCTRL3			0xa0
+#define LCDIF_VDCTRL4			0xb0
+
+/* pigeon registers for crop */
+#define HW_EPDC_PIGEON_12_0		0xb00
+#define HW_EPDC_PIGEON_12_1		0xb10
+#define HW_EPDC_PIGEON_12_2		0xb20
+
+/* reg bit manipulation */
+#define REG_MASK(e, s) (((1 << ((e) - (s) + 1)) - 1) << (s))
+#define REG_PUT(x, e, s) (((x) << (s)) & REG_MASK(e, s))
+#define REG_GET(x, e, s) (((x) & REG_MASK(e, s)) >> (s))
+
+#define SWIZZLE_LE		0 /* Little-Endian or No swap */
+#define SWIZZLE_BE		1 /* Big-Endian or swap all */
+#define SWIZZLE_HWD		2 /* Swap half-words */
+#define SWIZZLE_HWD_BYTE	3 /* Swap bytes within each half-word */
+
+/* regs bit fields */
+#define CTRL_SFTRST			BIT(31)
+#define CTRL_CLKGATE			BIT(30)
+#define CTRL_SHIFT_DIR(x)		REG_PUT((x), 26, 26)
+#define CTRL_SHIFT_NUM(x)		REG_PUT((x), 25, 21)
+#define CTRL_BYPASS_COUNT		BIT(19)
+#define CTRL_VSYNC_MODE			BIT(18)
+#define CTRL_DOTCLK_MODE		BIT(17)
+#define CTRL_DATA_SELECT		BIT(16)
+#define CTRL_INPUT_SWIZZLE(x)		REG_PUT((x), 15, 14)
+#define CTRL_CSC_SWIZZLE(x)		REG_PUT((x), 13, 12)
+#define CTRL_SET_BUS_WIDTH(x)		REG_PUT((x), 11, 10)
+#define CTRL_GET_BUS_WIDTH(x)		REG_GET((x), 11, 10)
+#define CTRL_BUS_WIDTH_MASK		REG_PUT((0x3), 11, 10)
+#define CTRL_SET_WORD_LENGTH(x)		REG_PUT((x), 9, 8)
+#define CTRL_GET_WORD_LENGTH(x)		REG_GET((x), 9, 8)
+#define CTRL_MASTER			BIT(5)
+#define CTRL_DF16			BIT(3)
+#define CTRL_DF18			BIT(2)
+#define CTRL_DF24			BIT(1)
+#define CTRL_RUN			BIT(0)
+
+#define CTRL1_RECOVERY_ON_UNDERFLOW	BIT(24)
+#define CTRL1_FIFO_CLEAR		BIT(21)
+#define CTRL1_SET_BYTE_PACKAGING(x)	REG_PUT((x), 19, 16)
+#define CTRL1_GET_BYTE_PACKAGING(x)	REG_GET((x), 19, 16)
+#define CTRL1_CUR_FRAME_DONE_IRQ_EN	BIT(13)
+#define CTRL1_CUR_FRAME_DONE_IRQ	BIT(9)
+
+#define REQ_1	0
+#define REQ_2	1
+#define REQ_4	2
+#define REQ_8	3
+#define REQ_16	4
+
+#define CTRL2_OUTSTANDING_REQS(x)	REG_PUT((x), 23, 21)
+#define CTRL2_ODD_LINE_PATTERN(x)	REG_PUT((x), 18, 16)
+#define CTRL2_EVEN_LINE_PATTERN(x)	REG_PUT((x), 14, 12)
+
+#define TRANSFER_COUNT_SET_VCOUNT(x)	(((x) & 0xffff) << 16)
+#define TRANSFER_COUNT_GET_VCOUNT(x)	(((x) >> 16) & 0xffff)
+#define TRANSFER_COUNT_SET_HCOUNT(x)	((x) & 0xffff)
+#define TRANSFER_COUNT_GET_HCOUNT(x)	((x) & 0xffff)
+
+#define VDCTRL0_ENABLE_PRESENT		BIT(28)
+#define VDCTRL0_VSYNC_ACT_HIGH		BIT(27)
+#define VDCTRL0_HSYNC_ACT_HIGH		BIT(26)
+#define VDCTRL0_DOTCLK_ACT_FALLING	BIT(25)
+#define VDCTRL0_ENABLE_ACT_HIGH		BIT(24)
+#define VDCTRL0_VSYNC_PERIOD_UNIT	BIT(21)
+#define VDCTRL0_VSYNC_PULSE_WIDTH_UNIT	BIT(20)
+#define VDCTRL0_HALF_LINE		BIT(19)
+#define VDCTRL0_HALF_LINE_MODE		BIT(18)
+#define VDCTRL0_SET_VSYNC_PULSE_WIDTH(x) ((x) & 0x3ffff)
+#define VDCTRL0_GET_VSYNC_PULSE_WIDTH(x) ((x) & 0x3ffff)
+
+#define VDCTRL2_SET_HSYNC_PULSE_WIDTH(x) (((x) & 0x3fff) << 18)
+#define VDCTRL2_GET_HSYNC_PULSE_WIDTH(x) (((x) >> 18) & 0x3fff)
+#define VDCTRL2_SET_HSYNC_PERIOD(x)	((x) & 0x3ffff)
+#define VDCTRL2_GET_HSYNC_PERIOD(x)	((x) & 0x3ffff)
+
+#define VDCTRL3_MUX_SYNC_SIGNALS	BIT(29)
+#define VDCTRL3_VSYNC_ONLY		BIT(28)
+#define SET_HOR_WAIT_CNT(x)		(((x) & 0xfff) << 16)
+#define GET_HOR_WAIT_CNT(x)		(((x) >> 16) & 0xfff)
+#define SET_VERT_WAIT_CNT(x)		((x) & 0xffff)
+#define GET_VERT_WAIT_CNT(x)		((x) & 0xffff)
+
+#define VDCTRL4_SET_DOTCLK_DLY(x)	(((x) & 0x7) << 29) /* v4 only */
+#define VDCTRL4_GET_DOTCLK_DLY(x)	(((x) >> 29) & 0x7) /* v4 only */
+#define VDCTRL4_SYNC_SIGNALS_ON		BIT(18)
+#define SET_DOTCLK_H_VALID_DATA_CNT(x)	((x) & 0x3ffff)
+
+#define PIGEON_12_0_SET_STATE_MASK(x)	REG_PUT((x), 31, 24)
+#define PIGEON_12_0_SET_MASK_CNT(x)	REG_PUT((x), 23, 12)
+#define PIGEON_12_0_SET_MASK_CNT_SEL(x)	REG_PUT((x), 11,  8)
+#define PIGEON_12_0_SET_OFFSET(x)	REG_PUT((x),  7,  4)
+#define PIGEON_12_0_SET_INC_SEL(x)	REG_PUT((x),  3,  2)
+#define PIGEON_12_0_POL_ACTIVE_LOW	BIT(1)
+#define PIGEON_12_0_EN			BIT(0)
+
+#define PIGEON_12_1_SET_CLR_CNT(x)	REG_PUT((x), 31, 16)
+#define PIGEON_12_1_SET_SET_CNT(x)	REG_PUT((x), 15,  0)
+
+#define STMLCDIF_8BIT  1 /* pixel data bus to the display is of 8 bit width */
+#define STMLCDIF_16BIT 0 /* pixel data bus to the display is of 16 bit width */
+#define STMLCDIF_18BIT 2 /* pixel data bus to the display is of 18 bit width */
+#define STMLCDIF_24BIT 3 /* pixel data bus to the display is of 24 bit width */
+
+#define MIN_XRES			120
+#define MIN_YRES			120
+#define MAX_XRES			0xffff
+#define MAX_YRES			0xffff
+
+#endif
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdifv3/Kconfig
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdifv3/Kconfig
@@ -0,0 +1,9 @@
+config IMX_LCDIFV3_CORE
+	tristate "i.MX LCDIFV3 core support"
+	depends on ARCH_MXC
+	select RESET_CONTROLLER
+	help
+	  Choose this if you have a NXP i.MX8MP platform and want to use the
+	  LCDIFV3 display controller. This option only enables LCDIFV3 base
+	  support.
+
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdifv3/Makefile
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdifv3/Makefile
@@ -0,0 +1,3 @@
+obj-$(CONFIG_IMX_LCDIFV3_CORE) += imx-lcdifv3-core.o
+
+imx-lcdifv3-core-objs := lcdifv3-common.o
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdifv3/lcdifv3-common.c
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdifv3/lcdifv3-common.c
@@ -0,0 +1,862 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <linux/busfreq-imx.h>
+#include <linux/clk.h>
+#include <linux/iopoll.h>
+#include <linux/media-bus-format.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/of_graph.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/regmap.h>
+#include <linux/reset.h>
+#include <linux/types.h>
+#include <drm/drm_fourcc.h>
+#include <video/imx-lcdifv3.h>
+#include <video/videomode.h>
+
+#include "lcdifv3-regs.h"
+
+#define DRIVER_NAME "imx-lcdifv3"
+
+struct lcdifv3_soc {
+	struct device *dev;
+
+	int irq;
+	void __iomem *base;
+	struct regmap *gpr;
+	atomic_t rpm_suspended;
+
+	struct clk *clk_pix;
+	struct clk *clk_disp_axi;
+	struct clk *clk_disp_apb;
+
+	u32 thres_low_mul;
+	u32 thres_low_div;
+	u32 thres_high_mul;
+	u32 thres_high_div;
+};
+
+struct lcdifv3_soc_pdata {
+	bool hsync_invert;
+	bool vsync_invert;
+	bool de_invert;
+	bool hdmimix;
+};
+
+struct lcdifv3_platform_reg {
+	struct lcdifv3_client_platformdata pdata;
+	char *name;
+};
+
+static struct lcdifv3_platform_reg client_reg[] = {
+	{
+		.pdata = { },
+		.name  = "imx-lcdifv3-crtc",
+	},
+};
+
+static struct lcdifv3_soc_pdata imx8mp_lcdif1_pdata = {
+	.hsync_invert = false,
+	.vsync_invert = false,
+	.de_invert    = false,
+	.hdmimix     = false,
+};
+
+static struct lcdifv3_soc_pdata imx8mp_lcdif2_pdata = {
+	.hsync_invert = false,
+	.vsync_invert = false,
+	.de_invert    = true,
+	.hdmimix      = false,
+};
+
+static struct lcdifv3_soc_pdata imx8mp_lcdif3_pdata = {
+	.hsync_invert = false,
+	.vsync_invert = false,
+	.de_invert    = false,
+	.hdmimix     = true,
+};
+static const struct of_device_id imx_lcdifv3_dt_ids[] = {
+	{ .compatible = "fsl,imx8mp-lcdif1", .data = &imx8mp_lcdif1_pdata, },
+	{ .compatible = "fsl,imx8mp-lcdif2", .data = &imx8mp_lcdif2_pdata, },
+	{ .compatible = "fsl,imx8mp-lcdif3", .data = &imx8mp_lcdif3_pdata,},
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, imx_lcdifv3_dt_ids);
+
+static int lcdifv3_enable_clocks(struct lcdifv3_soc *lcdifv3)
+{
+	int ret;
+
+	if (lcdifv3->clk_disp_axi) {
+		ret = clk_prepare_enable(lcdifv3->clk_disp_axi);
+		if (ret)
+			return ret;
+	}
+
+	if (lcdifv3->clk_disp_apb) {
+		ret = clk_prepare_enable(lcdifv3->clk_disp_apb);
+		if (ret)
+			goto disable_disp_axi;
+	}
+
+	ret = clk_prepare_enable(lcdifv3->clk_pix);
+	if (ret)
+		goto disable_disp_apb;
+
+	return 0;
+
+disable_disp_apb:
+	if (lcdifv3->clk_disp_apb)
+		clk_disable_unprepare(lcdifv3->clk_disp_apb);
+disable_disp_axi:
+	if (lcdifv3->clk_disp_axi)
+		clk_disable_unprepare(lcdifv3->clk_disp_axi);
+
+	return ret;
+}
+
+static void lcdifv3_disable_clocks(struct lcdifv3_soc *lcdifv3)
+{
+	clk_disable_unprepare(lcdifv3->clk_pix);
+
+	if (lcdifv3->clk_disp_axi)
+		clk_disable_unprepare(lcdifv3->clk_disp_axi);
+
+	if (lcdifv3->clk_disp_apb)
+		clk_disable_unprepare(lcdifv3->clk_disp_apb);
+}
+
+static void lcdifv3_enable_plane_panic(struct lcdifv3_soc *lcdifv3)
+{
+	u32 panic_thres, thres_low, thres_high;
+
+	/* apb clock has been enabled */
+
+	/* As suggestion, the thres_low should be 1/3 FIFO,
+	 * and thres_high should be 2/3 FIFO (The FIFO size
+	 * is 8KB = 512 * 128bit).
+	 * threshold = n * 128bit (n: 0 ~ 511)
+	 */
+	thres_low  = DIV_ROUND_UP(511 * lcdifv3->thres_low_mul,
+			lcdifv3->thres_low_div);
+	thres_high = DIV_ROUND_UP(511 * lcdifv3->thres_high_mul,
+			lcdifv3->thres_high_div);
+
+	panic_thres = PANIC0_THRES_PANIC_THRES_LOW(thres_low)	|
+		      PANIC0_THRES_PANIC_THRES_HIGH(thres_high);
+
+	writel(panic_thres, lcdifv3->base + LCDIFV3_PANIC0_THRES);
+
+	/* Enable Panic:
+	 *
+	 * As designed, the panic won't trigger an irq,
+	 * so it is unnecessary to handle this as an irq
+	 * and NoC + QoS modules will handle panic
+	 * automatically.
+	 */
+	writel(INT_ENABLE_D1_PLANE_PANIC_EN,
+	       lcdifv3->base + LCDIFV3_INT_ENABLE_D1);
+}
+
+int lcdifv3_vblank_irq_get(struct lcdifv3_soc *lcdifv3)
+{
+	return lcdifv3->irq;
+}
+EXPORT_SYMBOL(lcdifv3_vblank_irq_get);
+
+/* TODO: use VS_BLANK or VSYNC? */
+void lcdifv3_vblank_irq_enable(struct lcdifv3_soc *lcdifv3)
+{
+	uint32_t int_enable_d0;
+
+	int_enable_d0 = readl(lcdifv3->base + LCDIFV3_INT_ENABLE_D0);
+	int_enable_d0 |= INT_STATUS_D0_VS_BLANK;
+
+	/* W1C */
+	writel(INT_STATUS_D0_VS_BLANK,
+	       lcdifv3->base + LCDIFV3_INT_STATUS_D0);
+	/* enable */
+	writel(int_enable_d0,
+	       lcdifv3->base + LCDIFV3_INT_ENABLE_D0);
+}
+EXPORT_SYMBOL(lcdifv3_vblank_irq_enable);
+
+void lcdifv3_vblank_irq_disable(struct lcdifv3_soc *lcdifv3)
+{
+	uint32_t int_enable_d0;
+
+	int_enable_d0 = readl(lcdifv3->base + LCDIFV3_INT_ENABLE_D0);
+	int_enable_d0 &= ~INT_STATUS_D0_VS_BLANK;
+
+	/* disable */
+	writel(int_enable_d0,
+	       lcdifv3->base + LCDIFV3_INT_ENABLE_D0);
+	/* W1C */
+	writel(INT_STATUS_D0_VS_BLANK,
+	       lcdifv3->base + LCDIFV3_INT_STATUS_D0);
+}
+EXPORT_SYMBOL(lcdifv3_vblank_irq_disable);
+
+void lcdifv3_vblank_irq_clear(struct lcdifv3_soc *lcdifv3)
+{
+	/* W1C */
+	writel(INT_STATUS_D0_VS_BLANK,
+	       lcdifv3->base + LCDIFV3_INT_STATUS_D0);
+}
+EXPORT_SYMBOL(lcdifv3_vblank_irq_clear);
+
+static uint32_t lcdifv3_get_bpp_from_fmt(uint32_t format)
+{
+	/* TODO: only support RGB for now */
+
+	switch (format) {
+	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
+	case DRM_FORMAT_ARGB1555:
+	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_XBGR1555:
+		return 16;
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+		return 32;
+	default:
+		/* unsupported format */
+		return 0;
+	}
+}
+
+/*
+ * Get the bus format supported by LCDIF
+ * according to drm fourcc format
+ */
+int lcdifv3_get_bus_fmt_from_pix_fmt(struct lcdifv3_soc *lcdifv3,
+				     uint32_t format)
+{
+	uint32_t bpp;
+
+	bpp = lcdifv3_get_bpp_from_fmt(format);
+	if (!bpp)
+		return -EINVAL;
+
+	switch (bpp) {
+	case 16:
+		return MEDIA_BUS_FMT_RGB565_1X16;
+	case 18:
+		return MEDIA_BUS_FMT_RGB666_1X18;
+	case 24:
+	case 32:
+		return MEDIA_BUS_FMT_RGB888_1X24;
+	default:
+		return -EINVAL;
+	}
+}
+EXPORT_SYMBOL(lcdifv3_get_bus_fmt_from_pix_fmt);
+
+int lcdifv3_set_pix_fmt(struct lcdifv3_soc *lcdifv3, u32 format)
+{
+	struct drm_format_name_buf format_name;
+	uint32_t ctrldescl0_5 = 0;
+
+	ctrldescl0_5 = readl(lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+
+	ctrldescl0_5 &= ~(CTRLDESCL0_5_BPP(0xf) | CTRLDESCL0_5_YUV_FORMAT(0x3));
+
+	switch (format) {
+	case DRM_FORMAT_RGB565:
+		ctrldescl0_5 |= CTRLDESCL0_5_BPP(BPP16_RGB565);
+		break;
+	case DRM_FORMAT_ARGB1555:
+	case DRM_FORMAT_XRGB1555:
+		ctrldescl0_5 |= CTRLDESCL0_5_BPP(BPP16_ARGB1555);
+		break;
+	case DRM_FORMAT_ARGB8888:
+	case DRM_FORMAT_XRGB8888:
+		ctrldescl0_5 |= CTRLDESCL0_5_BPP(BPP32_ARGB8888);
+		break;
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+		ctrldescl0_5 |= CTRLDESCL0_5_BPP(BPP32_ABGR8888);
+		break;
+	default:
+		dev_err(lcdifv3->dev, "unsupported pixel format: %s\n",
+			drm_get_format_name(format, &format_name));
+		return -EINVAL;
+	}
+
+	writel(ctrldescl0_5,  lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+
+	return 0;
+}
+EXPORT_SYMBOL(lcdifv3_set_pix_fmt);
+
+void lcdifv3_set_bus_fmt(struct lcdifv3_soc *lcdifv3, u32 bus_format)
+{
+	uint32_t disp_para = 0;
+
+	disp_para = readl(lcdifv3->base + LCDIFV3_DISP_PARA);
+
+	/* clear line pattern bits */
+	disp_para &= ~DISP_PARA_LINE_PATTERN(0xf);
+
+	switch (bus_format) {
+	case MEDIA_BUS_FMT_RGB565_1X16:
+		disp_para |= DISP_PARA_LINE_PATTERN(LP_RGB565);
+		break;
+	case MEDIA_BUS_FMT_RGB888_1X24:
+		disp_para |= DISP_PARA_LINE_PATTERN(LP_RGB888_OR_YUV444);
+		break;
+	default:
+		dev_err(lcdifv3->dev, "unknown bus format: %#x\n", bus_format);
+		return;
+	}
+
+	/* config display mode: default is normal mode */
+	disp_para &= ~DISP_PARA_DISP_MODE(3);
+	disp_para |= DISP_PARA_DISP_MODE(0);
+
+	writel(disp_para, lcdifv3->base + LCDIFV3_DISP_PARA);
+}
+EXPORT_SYMBOL(lcdifv3_set_bus_fmt);
+
+void lcdifv3_set_fb_addr(struct lcdifv3_soc *lcdifv3, int id, u32 addr)
+{
+	switch (id) {
+	case 0:
+		/* primary plane */
+		writel(addr, lcdifv3->base + LCDIFV3_CTRLDESCL_LOW0_4);
+		break;
+	default:
+		/* TODO: add overlay support */
+		return;
+	}
+}
+EXPORT_SYMBOL(lcdifv3_set_fb_addr);
+
+void lcdifv3_set_fb_hcrop(struct lcdifv3_soc *lcdifv3, u32 src_w,
+			u32 pitch, bool crop)
+{
+	uint32_t ctrldescl0_3 = 0;
+
+	/* config P_SIZE and T_SIZE:
+	 * 1. P_SIZE and T_SIZE should never
+	 *    be less than AXI bus width.
+	 * 2. P_SIZE should never be less than T_SIZE.
+	 */
+	ctrldescl0_3 |= CTRLDESCL0_3_P_SIZE(2);
+	ctrldescl0_3 |= CTRLDESCL0_3_T_SIZE(2);
+
+	/* config pitch */
+	ctrldescl0_3 |= CTRLDESCL0_3_PITCH(pitch);
+
+	/* enable frame clear to clear FIFO data on
+	 * every vsync blank period to make sure no
+	 * dirty data exits to affect next frame
+	 * display, otherwise some flicker issue may
+	 * be observed in some cases.
+	 */
+	ctrldescl0_3 |= CTRLDESCL0_3_STATE_CLEAR_VSYNC;
+
+	writel(ctrldescl0_3, lcdifv3->base + LCDIFV3_CTRLDESCL0_3);
+}
+EXPORT_SYMBOL(lcdifv3_set_fb_hcrop);
+
+
+void lcdifv3_set_mode(struct lcdifv3_soc *lcdifv3, struct videomode *vmode)
+{
+	const struct of_device_id *of_id =
+			of_match_device(imx_lcdifv3_dt_ids, lcdifv3->dev);
+	const struct lcdifv3_soc_pdata *soc_pdata;
+	u32 disp_size, hsyn_para, vsyn_para, vsyn_hsyn_width, ctrldescl0_1;
+
+	if (unlikely(!of_id))
+		return;
+	soc_pdata = of_id->data;
+
+	/* set pixel clock rate */
+	clk_disable_unprepare(lcdifv3->clk_pix);
+	clk_set_rate(lcdifv3->clk_pix, vmode->pixelclock);
+	clk_prepare_enable(lcdifv3->clk_pix);
+
+	/* config display timings */
+	disp_size = DISP_SIZE_DELTA_Y(vmode->vactive) |
+		    DISP_SIZE_DELTA_X(vmode->hactive);
+	writel(disp_size, lcdifv3->base + LCDIFV3_DISP_SIZE);
+
+	WARN_ON(!vmode->hback_porch || !vmode->hfront_porch);
+	hsyn_para = HSYN_PARA_BP_H(vmode->hback_porch) |
+		    HSYN_PARA_FP_H(vmode->hfront_porch);
+	writel(hsyn_para, lcdifv3->base + LCDIFV3_HSYN_PARA);
+
+	WARN_ON(!vmode->vback_porch || !vmode->vfront_porch);
+	vsyn_para = VSYN_PARA_BP_V(vmode->vback_porch) |
+		    VSYN_PARA_FP_V(vmode->vfront_porch);
+	writel(vsyn_para, lcdifv3->base + LCDIFV3_VSYN_PARA);
+
+	WARN_ON(!vmode->vsync_len || !vmode->hsync_len);
+	vsyn_hsyn_width = VSYN_HSYN_WIDTH_PW_V(vmode->vsync_len) |
+			  VSYN_HSYN_WIDTH_PW_H(vmode->hsync_len);
+	writel(vsyn_hsyn_width, lcdifv3->base + LCDIFV3_VSYN_HSYN_WIDTH);
+
+	/* config layer size */
+	/* TODO: 32bits alignment for width */
+	ctrldescl0_1 = CTRLDESCL0_1_HEIGHT(vmode->vactive) |
+		       CTRLDESCL0_1_WIDTH(vmode->hactive);
+	writel(ctrldescl0_1, lcdifv3->base + LCDIFV3_CTRLDESCL0_1);
+
+	/* Polarities */
+	if (soc_pdata) {
+		if ((soc_pdata->hsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_HSYNC_HIGH) ||
+		    (!soc_pdata->hsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_HSYNC_LOW))
+			writel(CTRL_INV_HS, lcdifv3->base + LCDIFV3_CTRL_SET);
+		else
+			writel(CTRL_INV_HS, lcdifv3->base + LCDIFV3_CTRL_CLR);
+
+		if ((soc_pdata->vsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_VSYNC_HIGH) ||
+		    (!soc_pdata->vsync_invert &&
+		     vmode->flags & DISPLAY_FLAGS_VSYNC_LOW))
+			writel(CTRL_INV_VS, lcdifv3->base + LCDIFV3_CTRL_SET);
+		else
+			writel(CTRL_INV_VS, lcdifv3->base + LCDIFV3_CTRL_CLR);
+
+		if ((soc_pdata->de_invert &&
+		     vmode->flags & DISPLAY_FLAGS_DE_HIGH) ||
+		    (!soc_pdata->de_invert &&
+		     vmode->flags & DISPLAY_FLAGS_DE_LOW))
+			writel(CTRL_INV_DE, lcdifv3->base + LCDIFV3_CTRL_SET);
+		else
+			writel(CTRL_INV_DE, lcdifv3->base + LCDIFV3_CTRL_CLR);
+	} else {
+		if (vmode->flags & DISPLAY_FLAGS_HSYNC_LOW)
+			writel(CTRL_INV_HS, lcdifv3->base + LCDIFV3_CTRL_SET);
+		else
+			writel(CTRL_INV_HS, lcdifv3->base + LCDIFV3_CTRL_CLR);
+		if (vmode->flags & DISPLAY_FLAGS_VSYNC_LOW)
+			writel(CTRL_INV_VS, lcdifv3->base + LCDIFV3_CTRL_SET);
+		else
+			writel(CTRL_INV_VS, lcdifv3->base + LCDIFV3_CTRL_CLR);
+		if (vmode->flags & DISPLAY_FLAGS_DE_LOW)
+			writel(CTRL_INV_DE, lcdifv3->base + LCDIFV3_CTRL_SET);
+		else
+			writel(CTRL_INV_DE, lcdifv3->base + LCDIFV3_CTRL_CLR);
+	}
+
+	if (vmode->flags & DISPLAY_FLAGS_PIXDATA_NEGEDGE)
+		writel(CTRL_INV_PXCK, lcdifv3->base + LCDIFV3_CTRL_CLR);
+	else
+		writel(CTRL_INV_PXCK, lcdifv3->base + LCDIFV3_CTRL_SET);
+}
+EXPORT_SYMBOL(lcdifv3_set_mode);
+
+void lcdifv3_en_shadow_load(struct lcdifv3_soc *lcdifv3)
+{
+	u32 ctrldescl0_5;
+
+	ctrldescl0_5 = readl(lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+	ctrldescl0_5 |= CTRLDESCL0_5_SHADOW_LOAD_EN;
+
+	writel(ctrldescl0_5, lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+}
+EXPORT_SYMBOL(lcdifv3_en_shadow_load);
+
+void lcdifv3_enable_controller(struct lcdifv3_soc *lcdifv3)
+{
+	u32 disp_para, ctrldescl0_5;
+
+	disp_para = readl(lcdifv3->base + LCDIFV3_DISP_PARA);
+	ctrldescl0_5 = readl(lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+
+	/* disp on */
+	disp_para |= DISP_PARA_DISP_ON;
+	writel(disp_para, lcdifv3->base + LCDIFV3_DISP_PARA);
+
+	/* enable layer dma */
+	ctrldescl0_5 |= CTRLDESCL0_5_EN;
+	writel(ctrldescl0_5, lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+}
+EXPORT_SYMBOL(lcdifv3_enable_controller);
+
+void lcdifv3_disable_controller(struct lcdifv3_soc *lcdifv3)
+{
+	u32 disp_para, ctrldescl0_5;
+
+	disp_para = readl(lcdifv3->base + LCDIFV3_DISP_PARA);
+	ctrldescl0_5 = readl(lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+
+	/* disable dma */
+	ctrldescl0_5 &= ~CTRLDESCL0_5_EN;
+	writel(ctrldescl0_5, lcdifv3->base + LCDIFV3_CTRLDESCL0_5);
+
+	/* dma config only takes effect at the end of
+	 * one frame, so add delay to wait dma disable
+	 * done before turn off disp.
+	 */
+	usleep_range(20000, 25000);
+
+	/* disp off */
+	disp_para &= ~DISP_PARA_DISP_ON;
+	writel(disp_para, lcdifv3->base + LCDIFV3_DISP_PARA);
+}
+EXPORT_SYMBOL(lcdifv3_disable_controller);
+
+long lcdifv3_pix_clk_round_rate(struct lcdifv3_soc *lcdifv3,
+				unsigned long rate)
+{
+	if (unlikely(!rate))
+		return -EINVAL;
+
+	return clk_round_rate(lcdifv3->clk_pix, rate);
+}
+EXPORT_SYMBOL(lcdifv3_pix_clk_round_rate);
+
+static int hdmimix_lcdif3_setup(struct lcdifv3_soc *lcdifv3)
+{
+	struct device *dev = lcdifv3->dev;
+	int ret;
+
+	struct clk_bulk_data clocks[] = {
+		{ .id = "mix_apb" },
+		{ .id = "mix_axi" },
+		{ .id = "xtl_24m" },
+		{ .id = "mix_pix" },
+		{ .id = "lcdif_apb" },
+		{ .id = "lcdif_axi" },
+		{ .id = "lcdif_pdi" },
+		{ .id = "lcdif_pix" },
+		{ .id = "lcdif_spu" },
+		{ .id = "noc_hdmi"  },
+	};
+
+	/* power up hdmimix lcdif and nor */
+	ret = device_reset(dev);
+	if (ret == -EPROBE_DEFER)
+		return ret;
+
+	/* enable lpcg of hdmimix lcdif and nor */
+	ret = devm_clk_bulk_get(dev, ARRAY_SIZE(clocks), clocks);
+	if (ret < 0)
+		return ret;
+	ret = clk_bulk_prepare_enable(ARRAY_SIZE(clocks), clocks);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+
+static int platform_remove_device_fn(struct device *dev, void *data)
+{
+	struct platform_device *pdev = to_platform_device(dev);
+
+	platform_device_unregister(pdev);
+
+	return 0;
+}
+
+static void platform_device_unregister_children(struct platform_device *pdev)
+{
+	device_for_each_child(&pdev->dev, NULL, platform_remove_device_fn);
+}
+
+static DEFINE_MUTEX(lcdifv3_client_id_mutex);
+static int lcdifv3_client_id;
+
+static int lcdifv3_add_client_devices(struct lcdifv3_soc *lcdifv3)
+{
+	int ret = 0, i, id;
+	struct device *dev = lcdifv3->dev;
+	struct platform_device *pdev = NULL;
+	struct device_node *of_node;
+
+	for (i = 0; i < ARRAY_SIZE(client_reg); i++) {
+		of_node = of_graph_get_port_by_id(dev->of_node, i);
+		if (!of_node) {
+			dev_info(dev, "no port@%d node in %s\n",
+				 i, dev->of_node->full_name);
+			continue;
+		}
+		of_node_put(of_node);
+
+		mutex_lock(&lcdifv3_client_id_mutex);
+		id = lcdifv3_client_id++;
+		mutex_unlock(&lcdifv3_client_id_mutex);
+
+		pdev = platform_device_alloc(client_reg[i].name, id);
+		if (!pdev) {
+			dev_err(dev, "Can't allocate port pdev\n");
+			ret = -ENOMEM;
+			goto err_register;
+		}
+
+		pdev->dev.parent = dev;
+		client_reg[i].pdata.of_node = of_node;
+
+		/* make child device 'dma_mask' to point to its
+		 * coherent dma mask, otherwise later probe will
+		 * print warning message: 'DMA mask not set'.
+		 */
+		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
+
+		ret = platform_device_add_data(pdev, &client_reg[i].pdata,
+					       sizeof(client_reg[i].pdata));
+		if (!ret)
+			ret = platform_device_add(pdev);
+		if (ret) {
+			platform_device_put(pdev);
+			goto err_register;
+		}
+
+		pdev->dev.of_node = of_node;
+	}
+
+	if (!pdev)
+		return -ENODEV;
+
+	return 0;
+
+err_register:
+	platform_device_unregister_children(to_platform_device(dev));
+	return ret;
+}
+
+static int imx_lcdifv3_check_thres_value(u32 mul, u32 div)
+{
+	if (!div)
+		return -EINVAL;
+
+	if (mul > div)
+		return -EINVAL;
+
+	return 0;
+}
+
+static void imx_lcdifv3_of_parse_thres(struct lcdifv3_soc *lcdifv3)
+{
+	int ret;
+	u32 thres_low[2], thres_high[2];
+	struct device_node *np = lcdifv3->dev->of_node;
+
+	/* default 'thres-low' value:  FIFO * 1/3;
+	 * default 'thres-high' value: FIFO * 2/3.
+	 */
+	lcdifv3->thres_low_mul	= 1;
+	lcdifv3->thres_low_div	= 3;
+	lcdifv3->thres_high_mul	= 2;
+	lcdifv3->thres_high_div	= 3;
+
+	ret = of_property_read_u32_array(np, "thres-low", thres_low, 2);
+	if (!ret) {
+		/* check the value effectiveness */
+		ret = imx_lcdifv3_check_thres_value(thres_low[0], thres_low[1]);
+		if (!ret) {
+			lcdifv3->thres_low_mul	= thres_low[0];
+			lcdifv3->thres_low_div	= thres_low[1];
+		}
+	}
+
+	ret = of_property_read_u32_array(np, "thres-high", thres_high, 2);
+	if (!ret) {
+		/* check the value effectiveness */
+		ret = imx_lcdifv3_check_thres_value(thres_high[0], thres_high[1]);
+		if (!ret) {
+			lcdifv3->thres_high_mul	= thres_high[0];
+			lcdifv3->thres_high_div	= thres_high[1];
+		}
+	}
+}
+
+static int imx_lcdifv3_probe(struct platform_device *pdev)
+{
+	int ret;
+	struct device *dev = &pdev->dev;
+	struct device_node *np = dev->of_node;
+	struct lcdifv3_soc *lcdifv3;
+	struct resource *res;
+	struct regmap *blk_ctl;
+	const struct of_device_id *of_id;
+	const struct lcdifv3_soc_pdata *soc_pdata;
+
+	dev_dbg(dev, "%s: probe begin\n", __func__);
+
+	of_id = of_match_device(imx_lcdifv3_dt_ids, dev);
+	if (!of_id) {
+		dev_err(&pdev->dev, "OF data missing\n");
+		return -EINVAL;
+	}
+
+	soc_pdata = of_id->data;
+
+	lcdifv3 = devm_kzalloc(dev, sizeof(*lcdifv3), GFP_KERNEL);
+	if (!lcdifv3) {
+		dev_err(dev, "Can't allocate 'lcdifv3_soc' structure\n");
+		return -ENOMEM;
+	}
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		return -ENODEV;
+
+	lcdifv3->irq = platform_get_irq(pdev, 0);
+	if (lcdifv3->irq < 0) {
+		dev_err(dev, "No irq get\n");
+		return -EPROBE_DEFER;
+	}
+
+	lcdifv3->clk_pix = devm_clk_get(dev, "pix");
+	if (IS_ERR(lcdifv3->clk_pix)) {
+		dev_err(dev, "No pix clock get\n");
+		return -EPROBE_DEFER;
+	}
+
+	lcdifv3->clk_disp_axi = devm_clk_get(dev, "disp-axi");
+	if (IS_ERR(lcdifv3->clk_disp_axi))
+		lcdifv3->clk_disp_axi = NULL;
+
+	lcdifv3->clk_disp_apb = devm_clk_get(dev, "disp-apb");
+	if (IS_ERR(lcdifv3->clk_disp_apb))
+		lcdifv3->clk_disp_apb = NULL;
+
+	lcdifv3->base = devm_ioremap_resource(dev, res);
+	if (IS_ERR(lcdifv3->base))
+		return PTR_ERR(lcdifv3->base);
+
+	lcdifv3->dev = dev;
+
+	/* reset controller to avoid any conflict
+	 * with uboot splash screen settings.
+	 */
+	blk_ctl = syscon_regmap_lookup_by_phandle(np, "blk-ctl");
+	if (IS_ERR(blk_ctl))
+		blk_ctl = NULL;
+
+	if (blk_ctl) {
+		clk_prepare_enable(lcdifv3->clk_disp_apb);
+		writel(CTRL_SW_RESET, lcdifv3->base + LCDIFV3_CTRL_CLR);
+
+		/* reset LCDIFv3 controller */
+		regmap_update_bits(blk_ctl, 0x0, BIT(5), 0x0);
+		regmap_update_bits(blk_ctl, 0x0, BIT(5), BIT(5));
+
+		clk_disable_unprepare(lcdifv3->clk_disp_apb);
+	}
+
+	imx_lcdifv3_of_parse_thres(lcdifv3);
+
+	platform_set_drvdata(pdev, lcdifv3);
+
+	if (soc_pdata->hdmimix) {
+		ret = hdmimix_lcdif3_setup(lcdifv3);
+		if (ret < 0) {
+			dev_err(dev, "hdmimix lcdif3 setup failed\n");
+			return ret;
+		}
+	}
+
+	atomic_set(&lcdifv3->rpm_suspended, 0);
+	pm_runtime_enable(dev);
+	atomic_inc(&lcdifv3->rpm_suspended);
+
+	dev_dbg(dev, "%s: probe end\n", __func__);
+
+	return lcdifv3_add_client_devices(lcdifv3);
+}
+
+static int imx_lcdifv3_remove(struct platform_device *pdev)
+{
+	pm_runtime_disable(&pdev->dev);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM
+static int imx_lcdifv3_runtime_suspend(struct device *dev)
+{
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(dev);
+
+	if (atomic_inc_return(&lcdifv3->rpm_suspended) > 1)
+		return 0;
+
+	lcdifv3_disable_clocks(lcdifv3);
+
+	release_bus_freq(BUS_FREQ_HIGH);
+
+	return 0;
+}
+
+static int imx_lcdifv3_runtime_resume(struct device *dev)
+{
+	int ret = 0;
+	struct lcdifv3_soc *lcdifv3 = dev_get_drvdata(dev);
+
+	if (unlikely(!atomic_read(&lcdifv3->rpm_suspended))) {
+		dev_warn(lcdifv3->dev, "Unbalanced %s!\n", __func__);
+		return 0;
+	}
+
+	if (!atomic_dec_and_test(&lcdifv3->rpm_suspended))
+		return 0;
+
+	request_bus_freq(BUS_FREQ_HIGH);
+
+	ret = lcdifv3_enable_clocks(lcdifv3);
+	if (ret) {
+		release_bus_freq(BUS_FREQ_HIGH);
+		return ret;
+	}
+
+	/* clear sw_reset */
+	writel(CTRL_SW_RESET, lcdifv3->base + LCDIFV3_CTRL_CLR);
+
+	/* enable plane FIFO panic */
+	lcdifv3_enable_plane_panic(lcdifv3);
+
+	return ret;
+}
+#endif
+
+#ifdef CONFIG_PM_SLEEP
+static int imx_lcdifv3_suspend(struct device *dev)
+{
+	return imx_lcdifv3_runtime_suspend(dev);
+}
+
+static int imx_lcdifv3_resume(struct device *dev)
+{
+	return imx_lcdifv3_runtime_resume(dev);
+}
+#endif
+
+static const struct dev_pm_ops imx_lcdifv3_pm_ops = {
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(imx_lcdifv3_suspend,
+				     imx_lcdifv3_resume)
+	SET_RUNTIME_PM_OPS(imx_lcdifv3_runtime_suspend,
+			   imx_lcdifv3_runtime_resume, NULL)
+};
+
+struct platform_driver imx_lcdifv3_driver = {
+	.probe    = imx_lcdifv3_probe,
+	.remove   = imx_lcdifv3_remove,
+	.driver   = {
+		.name = DRIVER_NAME,
+		.of_match_table = imx_lcdifv3_dt_ids,
+		.pm = &imx_lcdifv3_pm_ops,
+	},
+};
+
+module_platform_driver(imx_lcdifv3_driver);
+
+MODULE_DESCRIPTION("NXP i.MX LCDIFV3 Display Controller driver");
+MODULE_AUTHOR("Fancy Fang <chen.fang@nxp.com>");
+MODULE_LICENSE("GPL");
--- linux-ein-5.4.0.orig/drivers/gpu/imx/lcdifv3/lcdifv3-regs.h
+++ linux-ein-5.4.0/drivers/gpu/imx/lcdifv3/lcdifv3-regs.h
@@ -0,0 +1,150 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __LCDIFV3_REGS_H
+#define __LCDIFV3_REGS_H
+
+/* regs offset */
+#define LCDIFV3_CTRL			0x00
+#define LCDIFV3_CTRL_SET		0x04
+#define LCDIFV3_CTRL_CLR		0x08
+#define LCDIFV3_CTRL_TOG		0x0c
+#define LCDIFV3_DISP_PARA		0x10
+#define LCDIFV3_DISP_SIZE		0x14
+#define LCDIFV3_HSYN_PARA		0x18
+#define LCDIFV3_VSYN_PARA		0x1c
+#define LCDIFV3_VSYN_HSYN_WIDTH		0x20
+#define LCDIFV3_INT_STATUS_D0		0x24
+#define LCDIFV3_INT_ENABLE_D0		0x28
+#define LCDIFV3_INT_STATUS_D1		0x30
+#define LCDIFV3_INT_ENABLE_D1		0x34
+
+#define LCDIFV3_CTRLDESCL0_1		0x200
+#define LCDIFV3_CTRLDESCL0_3		0x208
+#define LCDIFV3_CTRLDESCL_LOW0_4	0x20c
+#define LCDIFV3_CTRLDESCL_HIGH0_4	0x210
+#define LCDIFV3_CTRLDESCL0_5		0x214
+#define LCDIFV3_CSC0_CTRL		0x21c
+#define LCDIFV3_CSC0_COEF0		0x220
+#define LCDIFV3_CSC0_COEF1		0x224
+#define LCDIFV3_CSC0_COEF2		0x228
+#define LCDIFV3_CSC0_COEF3		0x22c
+#define LCDIFV3_CSC0_COEF4		0x230
+#define LCDIFV3_CSC0_COEF5		0x234
+#define LCDIFV3_PANIC0_THRES		0x238
+
+/* reg bit manipulation */
+#define REG_MASK(e, s) (((1 << ((e) - (s) + 1)) - 1) << (s))
+#define REG_PUT(x, e, s) (((x) << (s)) & REG_MASK(e, s))
+#define REG_GET(x, e, s) (((x) & REG_MASK(e, s)) >> (s))
+
+/* regs bit fields */
+#define CTRL_SW_RESET			BIT(31)
+#define CTRL_FETCH_START_OPTION(x)	REG_PUT((x), 9, 8)
+   #define FPV		0
+   #define PWV		1
+   #define BPV		2
+   #define RESV		3
+#define CTRL_NEG			BIT(4)
+#define CTRL_INV_PXCK			BIT(3)
+#define CTRL_INV_DE			BIT(2)
+#define CTRL_INV_VS			BIT(1)
+#define CTRL_INV_HS			BIT(0)
+
+#define DISP_PARA_DISP_ON		BIT(31)
+#define DISP_PARA_SWAP_EN		BIT(30)
+#define DISP_PARA_LINE_PATTERN(x)	REG_PUT((x), 29, 26)
+   /* line pattern formats (output) */
+   #define LP_RGB888_OR_YUV444		0x0
+   #define LP_RBG888			0x1
+   #define LP_GBR888			0x2
+   #define LP_GRB888_OR_UYV444		0x3
+   #define LP_BRG888			0x4
+   #define LP_BGR888			0x5
+   #define LP_RGB555			0x6
+   #define LP_RGB565			0x7
+   #define LP_YUYV_16_0			0x8
+   #define LP_UYVY_16_0			0x9
+   #define LP_YVYU_16_0			0xa
+   #define LP_VYUY_16_0			0xb
+   #define LP_YUYV_23_8			0xc
+   #define LP_UYVY_23_8			0xd
+   #define LP_YVYU_23_8			0xe
+   #define LP_VYUY_23_8			0xf
+
+#define DISP_PARA_DISP_MODE(x)		REG_PUT((x), 25, 24)
+#define DISP_PARA_BGND_R(x)		REG_PUT((x), 23, 16)
+#define DISP_PARA_BGND_G(x)		REG_PUT((x), 15,  8)
+#define DISP_PARA_BGND_B(x)		REG_PUT((x),  7,  0)
+
+#define DISP_SIZE_DELTA_Y(x)		REG_PUT((x), 31, 16)
+#define DISP_SIZE_DELTA_X(x)		REG_PUT((x), 15,  0)
+
+#define HSYN_PARA_BP_H(x)		REG_PUT((x), 31, 16)
+#define HSYN_PARA_FP_H(x)		REG_PUT((x), 15,  0)
+
+#define VSYN_PARA_BP_V(x)		REG_PUT((x), 31, 16)
+#define VSYN_PARA_FP_V(x)		REG_PUT((x), 15,  0)
+
+#define VSYN_HSYN_WIDTH_PW_V(x)		REG_PUT((x), 31, 16)
+#define VSYN_HSYN_WIDTH_PW_H(x)		REG_PUT((x), 15,  0)
+
+#define INT_STATUS_D0_FIFO_EMPTY	BIT(24)
+#define INT_STATUS_D0_DMA_DONE		BIT(16)
+#define INT_STATUS_D0_DMA_ERR		BIT(8)
+#define INT_STATUS_D0_VS_BLANK		BIT(2)
+#define INT_STATUS_D0_UNDERRUN		BIT(1)
+#define INT_STATUS_D0_VSYNC		BIT(0)
+
+#define INT_ENABLE_D0_FIFO_EMPTY_EN	BIT(24)
+#define INT_ENABLE_D0_DMA_DONE_EN	BIT(16)
+#define INT_ENABLE_D0_DMA_ERR_EN	BIT(8)
+#define INT_ENABLE_D0_VS_BLANK_EN	BIT(2)
+#define INT_ENABLE_D0_UNDERRUN_EN	BIT(1)
+#define INT_ENABLE_D0_VSYNC_EN		BIT(0)
+
+#define INT_STATUS_D1_PLANE_PANIC	BIT(0)
+#define INT_ENABLE_D1_PLANE_PANIC_EN	BIT(0)
+
+#define CTRLDESCL0_1_HEIGHT(x)		REG_PUT((x), 31, 16)
+#define CTRLDESCL0_1_WIDTH(x)		REG_PUT((x), 15,  0)
+#define CTRLDESCL0_3_STATE_CLEAR_VSYNC	BIT(23)
+#define CTRLDESCL0_3_P_SIZE(x)		REG_PUT((x), 22, 20)
+#define CTRLDESCL0_3_T_SIZE(x)		REG_PUT((x), 17, 16)
+#define CTRLDESCL0_3_PITCH(x)		REG_PUT((x), 15,  0)
+//#define CTRLDESCL_LOW0_4_ADDR_LOW(x)	REG_PUT((x), 31,  0)
+#define CTRLDESCL_HIGH0_4_ADDR_HIGH(x)	REG_PUT((x),  3,  0)
+#define CTRLDESCL0_5_EN			BIT(31)	/* enable layer for DMA */
+#define CTRLDESCL0_5_SHADOW_LOAD_EN	BIT(30)
+#define CTRLDESCL0_5_BPP(x)		REG_PUT((x), 27, 24)
+   /* layer encoding formats (input) */
+   #define BPP16_RGB565			0x4
+   #define BPP16_ARGB1555		0x5
+   #define BPP16_ARGB4444		0x6
+   #define BPP16_YCbCr422		0x7
+   #define BPP24_RGB888			0x8
+   #define BPP32_ARGB8888		0x9
+   #define BPP32_ABGR8888		0xa
+#define CTRLDESCL0_5_YUV_FORMAT(x)	REG_PUT((x), 15, 14)
+
+#define CSC0_CTRL_CSC_MODE(x)		REG_PUT((x),  2,  1)
+#define CSC0_CTRL_BYPASS		BIT(0)
+#define CSC0_COEF0_A2(x)		REG_PUT((x), 26, 16)
+#define CSC0_COEF0_A1(x)		REG_PUT((x), 10,  0)
+#define CSC0_COEF1_B1(x)		REG_PUT((x), 26, 16)
+#define CSC0_COEF1_A3(x)		REG_PUT((x), 10,  0)
+#define CSC0_COEF2_B3(x)		REG_PUT((x), 26, 16)
+#define CSC0_COEF2_B2(x)		REG_PUT((x), 10,  0)
+#define CSC0_COEF3_C2(x)		REG_PUT((x), 26, 16)
+#define CSC0_COEF3_C1(x)		REG_PUT((x), 10,  0)
+#define CSC0_COEF4_D1(x)		REG_PUT((x), 24, 16)
+#define CSC0_COEF4_C3(x)		REG_PUT((x), 10,  0)
+#define CSC0_COEF5_D3(x)		REG_PUT((x), 24, 16)
+#define CSC0_COEF5_D2(x)		REG_PUT((x),  8,  0)
+
+#define PANIC0_THRES_PANIC_THRES_LOW(x)	REG_PUT((x), 24, 16)
+#define PANIC0_THRES_PANIC_THRES_HIGH(x)	REG_PUT((x), 8, 0)
+
+#endif /* __LCDIFV3_REGS_H */
--- linux-ein-5.4.0.orig/drivers/gpu/ipu-v3/ipu-common.c
+++ linux-ein-5.4.0/drivers/gpu/ipu-v3/ipu-common.c
@@ -124,6 +124,8 @@
 	case V4L2_PIX_FMT_RGBX32:
 	case V4L2_PIX_FMT_ARGB32:
 	case V4L2_PIX_FMT_XRGB32:
+	case V4L2_PIX_FMT_RGB32:
+	case V4L2_PIX_FMT_BGR32:
 		return IPUV3_COLORSPACE_RGB;
 	default:
 		return IPUV3_COLORSPACE_UNKNOWN;
@@ -1233,6 +1235,7 @@
 		pdev = platform_device_alloc(reg->name, id++);
 		if (!pdev) {
 			ret = -ENOMEM;
+			of_node_put(of_node);
 			goto err_register;
 		}
 
--- linux-ein-5.4.0.orig/drivers/gpu/ipu-v3/ipu-cpmem.c
+++ linux-ein-5.4.0/drivers/gpu/ipu-v3/ipu-cpmem.c
@@ -585,21 +585,21 @@
 	.bits_per_pixel = 16,
 };
 
-#define Y_OFFSET(pix, x, y)	((x) + pix->width * (y))
-#define U_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * ((y) / 2) / 2) + (x) / 2)
-#define V_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * pix->height / 4) +	\
-				 (pix->width * ((y) / 2) / 2) + (x) / 2)
-#define U2_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * (y) / 2) + (x) / 2)
-#define V2_OFFSET(pix, x, y)	((pix->width * pix->height) +		\
-				 (pix->width * pix->height / 2) +	\
-				 (pix->width * (y) / 2) + (x) / 2)
-#define UV_OFFSET(pix, x, y)	((pix->width * pix->height) +	\
-				 (pix->width * ((y) / 2)) + (x))
-#define UV2_OFFSET(pix, x, y)	((pix->width * pix->height) +	\
-				 (pix->width * y) + (x))
+#define Y_OFFSET(pix, x, y)	((x) + pix->bytesperline * (y))
+#define U_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * ((y) / 2) / 2) + (x) / 2)
+#define V_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * pix->height / 4) + \
+				 (pix->bytesperline * ((y) / 2) / 2) + (x) / 2)
+#define U2_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * (y) / 2) + (x) / 2)
+#define V2_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * pix->height / 2) + \
+				 (pix->bytesperline * (y) / 2) + (x) / 2)
+#define UV_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * ((y) / 2)) + (x))
+#define UV2_OFFSET(pix, x, y)	((pix->bytesperline * pix->height) +	 \
+				 (pix->bytesperline * y) + (x))
 
 #define NUM_ALPHA_CHANNELS	7
 
--- linux-ein-5.4.0.orig/drivers/gpu/ipu-v3/ipu-di.c
+++ linux-ein-5.4.0/drivers/gpu/ipu-v3/ipu-di.c
@@ -451,8 +451,9 @@
 
 		error = rate / (sig->mode.pixelclock / 1000);
 
-		dev_dbg(di->ipu->dev, "  IPU clock can give %lu with divider %u, error %d.%u%%\n",
-			rate, div, (signed)(error - 1000) / 10, error % 10);
+		dev_dbg(di->ipu->dev, "  IPU clock can give %lu with divider %u, error %c%d.%d%%\n",
+			rate, div, error < 1000 ? '-' : '+',
+			abs(error - 1000) / 10, abs(error - 1000) % 10);
 
 		/* Allow a 1% error */
 		if (error < 1010 && error >= 990) {
--- linux-ein-5.4.0.orig/drivers/gpu/ipu-v3/ipu-image-convert.c
+++ linux-ein-5.4.0/drivers/gpu/ipu-v3/ipu-image-convert.c
@@ -137,6 +137,17 @@
 struct ipu_image_convert_chan;
 struct ipu_image_convert_priv;
 
+enum eof_irq_mask {
+	EOF_IRQ_IN      = BIT(0),
+	EOF_IRQ_ROT_IN  = BIT(1),
+	EOF_IRQ_OUT     = BIT(2),
+	EOF_IRQ_ROT_OUT = BIT(3),
+};
+
+#define EOF_IRQ_COMPLETE (EOF_IRQ_IN | EOF_IRQ_OUT)
+#define EOF_IRQ_ROT_COMPLETE (EOF_IRQ_IN | EOF_IRQ_OUT |	\
+			      EOF_IRQ_ROT_IN | EOF_IRQ_ROT_OUT)
+
 struct ipu_image_convert_ctx {
 	struct ipu_image_convert_chan *chan;
 
@@ -173,6 +184,9 @@
 	/* where to place converted tile in dest image */
 	unsigned int out_tile_map[MAX_TILES];
 
+	/* mask of completed EOF irqs at every tile conversion */
+	enum eof_irq_mask eof_mask;
+
 	struct list_head list;
 };
 
@@ -189,6 +203,8 @@
 	struct ipuv3_channel *rotation_out_chan;
 
 	/* the IPU end-of-frame irqs */
+	int in_eof_irq;
+	int rot_in_eof_irq;
 	int out_eof_irq;
 	int rot_out_eof_irq;
 
@@ -1380,6 +1396,9 @@
 	dev_dbg(priv->ipu->dev, "%s: task %u: starting ctx %p run %p tile %u -> %u\n",
 		__func__, chan->ic_task, ctx, run, tile, dst_tile);
 
+	/* clear EOF irq mask */
+	ctx->eof_mask = 0;
+
 	if (ipu_rot_mode_is_irt(ctx->rot_mode)) {
 		/* swap width/height for resizer */
 		dest_width = d_image->tile[dst_tile].height;
@@ -1615,7 +1634,7 @@
 }
 
 /* hold irqlock when calling */
-static irqreturn_t do_irq(struct ipu_image_convert_run *run)
+static irqreturn_t do_tile_complete(struct ipu_image_convert_run *run)
 {
 	struct ipu_image_convert_ctx *ctx = run->ctx;
 	struct ipu_image_convert_chan *chan = ctx->chan;
@@ -1700,6 +1719,7 @@
 		ctx->cur_buf_num ^= 1;
 	}
 
+	ctx->eof_mask = 0; /* clear EOF irq mask for next tile */
 	ctx->next_tile++;
 	return IRQ_HANDLED;
 done:
@@ -1709,13 +1729,15 @@
 	return IRQ_WAKE_THREAD;
 }
 
-static irqreturn_t norotate_irq(int irq, void *data)
+static irqreturn_t eof_irq(int irq, void *data)
 {
 	struct ipu_image_convert_chan *chan = data;
+	struct ipu_image_convert_priv *priv = chan->priv;
 	struct ipu_image_convert_ctx *ctx;
 	struct ipu_image_convert_run *run;
+	irqreturn_t ret = IRQ_HANDLED;
+	bool tile_complete = false;
 	unsigned long flags;
-	irqreturn_t ret;
 
 	spin_lock_irqsave(&chan->irqlock, flags);
 
@@ -1728,46 +1750,33 @@
 
 	ctx = run->ctx;
 
-	if (ipu_rot_mode_is_irt(ctx->rot_mode)) {
-		/* this is a rotation operation, just ignore */
-		spin_unlock_irqrestore(&chan->irqlock, flags);
-		return IRQ_HANDLED;
-	}
-
-	ret = do_irq(run);
-out:
-	spin_unlock_irqrestore(&chan->irqlock, flags);
-	return ret;
-}
-
-static irqreturn_t rotate_irq(int irq, void *data)
-{
-	struct ipu_image_convert_chan *chan = data;
-	struct ipu_image_convert_priv *priv = chan->priv;
-	struct ipu_image_convert_ctx *ctx;
-	struct ipu_image_convert_run *run;
-	unsigned long flags;
-	irqreturn_t ret;
-
-	spin_lock_irqsave(&chan->irqlock, flags);
-
-	/* get current run and its context */
-	run = chan->current_run;
-	if (!run) {
+	if (irq == chan->in_eof_irq) {
+		ctx->eof_mask |= EOF_IRQ_IN;
+	} else if (irq == chan->out_eof_irq) {
+		ctx->eof_mask |= EOF_IRQ_OUT;
+	} else if (irq == chan->rot_in_eof_irq ||
+		   irq == chan->rot_out_eof_irq) {
+		if (!ipu_rot_mode_is_irt(ctx->rot_mode)) {
+			/* this was NOT a rotation op, shouldn't happen */
+			dev_err(priv->ipu->dev,
+				"Unexpected rotation interrupt\n");
+			goto out;
+		}
+		ctx->eof_mask |= (irq == chan->rot_in_eof_irq) ?
+			EOF_IRQ_ROT_IN : EOF_IRQ_ROT_OUT;
+	} else {
+		dev_err(priv->ipu->dev, "Received unknown irq %d\n", irq);
 		ret = IRQ_NONE;
 		goto out;
 	}
 
-	ctx = run->ctx;
-
-	if (!ipu_rot_mode_is_irt(ctx->rot_mode)) {
-		/* this was NOT a rotation operation, shouldn't happen */
-		dev_err(priv->ipu->dev, "Unexpected rotation interrupt\n");
-		spin_unlock_irqrestore(&chan->irqlock, flags);
-		return IRQ_HANDLED;
-	}
+	if (ipu_rot_mode_is_irt(ctx->rot_mode))
+		tile_complete =	(ctx->eof_mask == EOF_IRQ_ROT_COMPLETE);
+	else
+		tile_complete = (ctx->eof_mask == EOF_IRQ_COMPLETE);
 
-	ret = do_irq(run);
+	if (tile_complete)
+		ret = do_tile_complete(run);
 out:
 	spin_unlock_irqrestore(&chan->irqlock, flags);
 	return ret;
@@ -1801,6 +1810,10 @@
 
 static void release_ipu_resources(struct ipu_image_convert_chan *chan)
 {
+	if (chan->in_eof_irq >= 0)
+		free_irq(chan->in_eof_irq, chan);
+	if (chan->rot_in_eof_irq >= 0)
+		free_irq(chan->rot_in_eof_irq, chan);
 	if (chan->out_eof_irq >= 0)
 		free_irq(chan->out_eof_irq, chan);
 	if (chan->rot_out_eof_irq >= 0)
@@ -1819,7 +1832,27 @@
 
 	chan->in_chan = chan->out_chan = chan->rotation_in_chan =
 		chan->rotation_out_chan = NULL;
-	chan->out_eof_irq = chan->rot_out_eof_irq = -1;
+	chan->in_eof_irq = -1;
+	chan->rot_in_eof_irq = -1;
+	chan->out_eof_irq = -1;
+	chan->rot_out_eof_irq = -1;
+}
+
+static int get_eof_irq(struct ipu_image_convert_chan *chan,
+		       struct ipuv3_channel *channel)
+{
+	struct ipu_image_convert_priv *priv = chan->priv;
+	int ret, irq;
+
+	irq = ipu_idmac_channel_irq(priv->ipu, channel, IPU_IRQ_EOF);
+
+	ret = request_threaded_irq(irq, eof_irq, do_bh, 0, "ipu-ic", chan);
+	if (ret < 0) {
+		dev_err(priv->ipu->dev, "could not acquire irq %d\n", irq);
+		return ret;
+	}
+
+	return irq;
 }
 
 static int get_ipu_resources(struct ipu_image_convert_chan *chan)
@@ -1855,31 +1888,33 @@
 	}
 
 	/* acquire the EOF interrupts */
-	chan->out_eof_irq = ipu_idmac_channel_irq(priv->ipu,
-						  chan->out_chan,
-						  IPU_IRQ_EOF);
+	ret = get_eof_irq(chan, chan->in_chan);
+	if (ret < 0) {
+		chan->in_eof_irq = -1;
+		goto err;
+	}
+	chan->in_eof_irq = ret;
 
-	ret = request_threaded_irq(chan->out_eof_irq, norotate_irq, do_bh,
-				   0, "ipu-ic", chan);
+	ret = get_eof_irq(chan, chan->rotation_in_chan);
 	if (ret < 0) {
-		dev_err(priv->ipu->dev, "could not acquire irq %d\n",
-			 chan->out_eof_irq);
-		chan->out_eof_irq = -1;
+		chan->rot_in_eof_irq = -1;
 		goto err;
 	}
+	chan->rot_in_eof_irq = ret;
 
-	chan->rot_out_eof_irq = ipu_idmac_channel_irq(priv->ipu,
-						     chan->rotation_out_chan,
-						     IPU_IRQ_EOF);
+	ret = get_eof_irq(chan, chan->out_chan);
+	if (ret < 0) {
+		chan->out_eof_irq = -1;
+		goto err;
+	}
+	chan->out_eof_irq = ret;
 
-	ret = request_threaded_irq(chan->rot_out_eof_irq, rotate_irq, do_bh,
-				   0, "ipu-ic", chan);
+	ret = get_eof_irq(chan, chan->rotation_out_chan);
 	if (ret < 0) {
-		dev_err(priv->ipu->dev, "could not acquire irq %d\n",
-			chan->rot_out_eof_irq);
 		chan->rot_out_eof_irq = -1;
 		goto err;
 	}
+	chan->rot_out_eof_irq = ret;
 
 	return 0;
 err:
@@ -2458,6 +2493,8 @@
 		chan->ic_task = i;
 		chan->priv = priv;
 		chan->dma_ch = &image_convert_dma_chan[i];
+		chan->in_eof_irq = -1;
+		chan->rot_in_eof_irq = -1;
 		chan->out_eof_irq = -1;
 		chan->rot_out_eof_irq = -1;
 
--- linux-ein-5.4.0.orig/drivers/greybus/svc.c
+++ linux-ein-5.4.0/drivers/greybus/svc.c
@@ -866,8 +866,14 @@
 
 	gb_svc_debugfs_init(svc);
 
-	return gb_svc_queue_deferred_request(op);
+	ret = gb_svc_queue_deferred_request(op);
+	if (ret)
+		goto err_remove_debugfs;
 
+	return 0;
+
+err_remove_debugfs:
+	gb_svc_debugfs_exit(svc);
 err_unregister_device:
 	gb_svc_watchdog_destroy(svc);
 	device_del(&svc->dev);
--- linux-ein-5.4.0.orig/drivers/hid/Kconfig
+++ linux-ein-5.4.0/drivers/hid/Kconfig
@@ -149,6 +149,7 @@
 
 config HID_ASUS
 	tristate "Asus"
+	depends on USB_HID
 	depends on LEDS_CLASS
 	depends on ASUS_WMI || ASUS_WMI=n
 	select POWER_SUPPLY
@@ -206,14 +207,14 @@
 
 config HID_CHICONY
 	tristate "Chicony devices"
-	depends on HID
+	depends on USB_HID
 	default !EXPERT
 	---help---
 	Support for Chicony Tactical pad and special keys on Chicony keyboards.
 
 config HID_CORSAIR
 	tristate "Corsair devices"
-	depends on HID && USB && LEDS_CLASS
+	depends on USB_HID && LEDS_CLASS
 	---help---
 	Support for Corsair devices that are not fully compliant with the
 	HID standard.
@@ -244,7 +245,7 @@
 
 config HID_PRODIKEYS
 	tristate "Prodikeys PC-MIDI Keyboard support"
-	depends on HID && SND
+	depends on USB_HID && SND
 	select SND_RAWMIDI
 	---help---
 	Support for Prodikeys PC-MIDI Keyboard device support.
@@ -524,7 +525,7 @@
 
 config HID_LOGITECH
 	tristate "Logitech devices"
-	depends on HID
+	depends on USB_HID
 	default !EXPERT
 	---help---
 	Support for Logitech devices that are not fully compliant with HID standard.
@@ -871,7 +872,7 @@
 
 config HID_SAMSUNG
 	tristate "Samsung InfraRed remote control or keyboards"
-	depends on HID
+	depends on USB_HID
 	---help---
 	Support for Samsung InfraRed remote control or keyboards.
 
--- linux-ein-5.4.0.orig/drivers/hid/hid-alps.c
+++ linux-ein-5.4.0/drivers/hid/hid-alps.c
@@ -25,6 +25,7 @@
 
 #define U1_MOUSE_REPORT_ID			0x01 /* Mouse data ReportID */
 #define U1_ABSOLUTE_REPORT_ID		0x03 /* Absolute data ReportID */
+#define U1_ABSOLUTE_REPORT_ID_SECD  0x02 /* FW-PTP Absolute data ReportID */
 #define U1_FEATURE_REPORT_ID		0x05 /* Feature ReportID */
 #define U1_SP_ABSOLUTE_REPORT_ID	0x06 /* Feature ReportID */
 
@@ -368,6 +369,7 @@
 	case U1_FEATURE_REPORT_ID:
 		break;
 	case U1_ABSOLUTE_REPORT_ID:
+	case U1_ABSOLUTE_REPORT_ID_SECD:
 		for (i = 0; i < hdata->max_fingers; i++) {
 			u8 *contact = &data[i * 5];
 
@@ -730,7 +732,7 @@
 	if (data->has_sp) {
 		input2 = input_allocate_device();
 		if (!input2) {
-			input_free_device(input2);
+			ret = -ENOMEM;
 			goto exit;
 		}
 
@@ -760,6 +762,7 @@
 
 		if (input_register_device(data->input2)) {
 			input_free_device(input2);
+			ret = -ENOENT;
 			goto exit;
 		}
 	}
@@ -802,6 +805,7 @@
 		break;
 	case HID_DEVICE_ID_ALPS_U1_DUAL:
 	case HID_DEVICE_ID_ALPS_U1:
+	case HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY:
 		data->dev_type = U1;
 		break;
 	default:
@@ -828,6 +832,8 @@
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
 		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1) },
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
+		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY) },
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
 		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_T4_BTNLESS) },
 	{ }
 };
--- linux-ein-5.4.0.orig/drivers/hid/hid-apple.c
+++ linux-ein-5.4.0/drivers/hid/hid-apple.c
@@ -54,6 +54,7 @@
 struct apple_sc {
 	unsigned long quirks;
 	unsigned int fn_on;
+	unsigned int fn_found;
 	DECLARE_BITMAP(pressed_numlock, KEY_CNT);
 };
 
@@ -300,12 +301,19 @@
 
 /*
  * MacBook JIS keyboard has wrong logical maximum
+ * Magic Keyboard JIS has wrong logical maximum
  */
 static __u8 *apple_report_fixup(struct hid_device *hdev, __u8 *rdesc,
 		unsigned int *rsize)
 {
 	struct apple_sc *asc = hid_get_drvdata(hdev);
 
+	if(*rsize >=71 && rdesc[70] == 0x65 && rdesc[64] == 0x65) {
+		hid_info(hdev,
+			 "fixing up Magic Keyboard JIS report descriptor\n");
+		rdesc[64] = rdesc[70] = 0xe7;
+	}
+
 	if ((asc->quirks & APPLE_RDESC_JIS) && *rsize >= 60 &&
 			rdesc[53] == 0x65 && rdesc[59] == 0x65) {
 		hid_info(hdev,
@@ -339,11 +347,15 @@
 		struct hid_field *field, struct hid_usage *usage,
 		unsigned long **bit, int *max)
 {
+	struct apple_sc *asc = hid_get_drvdata(hdev);
+
 	if (usage->hid == (HID_UP_CUSTOM | 0x0003) ||
-			usage->hid == (HID_UP_MSVENDOR | 0x0003)) {
+			usage->hid == (HID_UP_MSVENDOR | 0x0003) ||
+			usage->hid == (HID_UP_HPVENDOR2 | 0x0003)) {
 		/* The fn key on Apple USB keyboards */
 		set_bit(EV_REP, hi->input->evbit);
 		hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_FN);
+		asc->fn_found = true;
 		apple_setup_input(hi->input);
 		return 1;
 	}
@@ -370,6 +382,19 @@
 	return 0;
 }
 
+static int apple_input_configured(struct hid_device *hdev,
+		struct hid_input *hidinput)
+{
+	struct apple_sc *asc = hid_get_drvdata(hdev);
+
+	if ((asc->quirks & APPLE_HAS_FN) && !asc->fn_found) {
+		hid_info(hdev, "Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n");
+		asc->quirks &= ~APPLE_HAS_FN;
+	}
+
+	return 0;
+}
+
 static int apple_probe(struct hid_device *hdev,
 		const struct hid_device_id *id)
 {
@@ -584,6 +609,7 @@
 	.event = apple_event,
 	.input_mapping = apple_input_mapping,
 	.input_mapped = apple_input_mapped,
+	.input_configured = apple_input_configured,
 };
 module_hid_driver(apple_driver);
 
--- linux-ein-5.4.0.orig/drivers/hid/hid-asus.c
+++ linux-ein-5.4.0/drivers/hid/hid-asus.c
@@ -40,7 +40,9 @@
 MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
 
 #define T100_TPAD_INTF 2
+#define MEDION_E1239T_TPAD_INTF 1
 
+#define E1239T_TP_TOGGLE_REPORT_ID 0x05
 #define T100CHI_MOUSE_REPORT_ID 0x06
 #define FEATURE_REPORT_ID 0x0d
 #define INPUT_REPORT_ID 0x5d
@@ -77,6 +79,7 @@
 #define QUIRK_G752_KEYBOARD		BIT(8)
 #define QUIRK_T101HA_DOCK		BIT(9)
 #define QUIRK_T90CHI			BIT(10)
+#define QUIRK_MEDION_E1239T		BIT(11)
 
 #define I2C_KEYBOARD_QUIRKS			(QUIRK_FIX_NOTEBOOK_REPORT | \
 						 QUIRK_NO_INIT_REPORTS | \
@@ -92,6 +95,7 @@
 	struct hid_device *hdev;
 	struct work_struct work;
 	unsigned int brightness;
+	spinlock_t lock;
 	bool removed;
 };
 
@@ -102,12 +106,14 @@
 	int res_y;
 	int contact_size;
 	int max_contacts;
+	int report_size;
 };
 
 struct asus_drvdata {
 	unsigned long quirks;
 	struct hid_device *hdev;
 	struct input_dev *input;
+	struct input_dev *tp_kbd_input;
 	struct asus_kbd_leds *kbd_backlight;
 	const struct asus_touchpad_info *tp;
 	bool enable_backlight;
@@ -126,6 +132,7 @@
 	.max_y = 1758,
 	.contact_size = 5,
 	.max_contacts = 5,
+	.report_size = 28 /* 2 byte header + 5 * 5 + 1 byte footer */,
 };
 
 static const struct asus_touchpad_info asus_t100ta_tp = {
@@ -135,6 +142,7 @@
 	.res_y = 27, /* units/mm */
 	.contact_size = 5,
 	.max_contacts = 5,
+	.report_size = 28 /* 2 byte header + 5 * 5 + 1 byte footer */,
 };
 
 static const struct asus_touchpad_info asus_t100ha_tp = {
@@ -144,6 +152,7 @@
 	.res_y = 29, /* units/mm */
 	.contact_size = 5,
 	.max_contacts = 5,
+	.report_size = 28 /* 2 byte header + 5 * 5 + 1 byte footer */,
 };
 
 static const struct asus_touchpad_info asus_t200ta_tp = {
@@ -153,6 +162,7 @@
 	.res_y = 28, /* units/mm */
 	.contact_size = 5,
 	.max_contacts = 5,
+	.report_size = 28 /* 2 byte header + 5 * 5 + 1 byte footer */,
 };
 
 static const struct asus_touchpad_info asus_t100chi_tp = {
@@ -162,6 +172,17 @@
 	.res_y = 29, /* units/mm */
 	.contact_size = 3,
 	.max_contacts = 4,
+	.report_size = 15 /* 2 byte header + 3 * 4 + 1 byte footer */,
+};
+
+static const struct asus_touchpad_info medion_e1239t_tp = {
+	.max_x = 2640,
+	.max_y = 1380,
+	.res_x = 29, /* units/mm */
+	.res_y = 28, /* units/mm */
+	.contact_size = 5,
+	.max_contacts = 5,
+	.report_size = 32 /* 2 byte header + 5 * 5 + 5 byte footer */,
 };
 
 static void asus_report_contact_down(struct asus_drvdata *drvdat,
@@ -229,7 +250,7 @@
 	int i, toolType = MT_TOOL_FINGER;
 	u8 *contactData = data + 2;
 
-	if (size != 3 + drvdat->tp->contact_size * drvdat->tp->max_contacts)
+	if (size != drvdat->tp->report_size)
 		return 0;
 
 	for (i = 0; i < drvdat->tp->max_contacts; i++) {
@@ -257,11 +278,40 @@
 	return 1;
 }
 
+static int asus_e1239t_event(struct asus_drvdata *drvdat, u8 *data, int size)
+{
+	if (size != 3)
+		return 0;
+
+	/* Handle broken mute key which only sends press events */
+	if (!drvdat->tp &&
+	    data[0] == 0x02 && data[1] == 0xe2 && data[2] == 0x00) {
+		input_report_key(drvdat->input, KEY_MUTE, 1);
+		input_sync(drvdat->input);
+		input_report_key(drvdat->input, KEY_MUTE, 0);
+		input_sync(drvdat->input);
+		return 1;
+	}
+
+	/* Handle custom touchpad toggle key which only sends press events */
+	if (drvdat->tp_kbd_input &&
+	    data[0] == 0x05 && data[1] == 0x02 && data[2] == 0x28) {
+		input_report_key(drvdat->tp_kbd_input, KEY_F21, 1);
+		input_sync(drvdat->tp_kbd_input);
+		input_report_key(drvdat->tp_kbd_input, KEY_F21, 0);
+		input_sync(drvdat->tp_kbd_input);
+		return 1;
+	}
+
+	return 0;
+}
+
 static int asus_event(struct hid_device *hdev, struct hid_field *field,
 		      struct hid_usage *usage, __s32 value)
 {
 	if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 &&
-	    (usage->hid & HID_USAGE) != 0x00 && !usage->type) {
+	    (usage->hid & HID_USAGE) != 0x00 &&
+	    (usage->hid & HID_USAGE) != 0xff && !usage->type) {
 		hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n",
 			 usage->hid & HID_USAGE);
 	}
@@ -280,6 +330,9 @@
 	if (drvdata->tp && data[0] == INPUT_REPORT_ID)
 		return asus_report_input(drvdata, data, size);
 
+	if (drvdata->quirks & QUIRK_MEDION_E1239T)
+		return asus_e1239t_event(drvdata, data, size);
+
 	return 0;
 }
 
@@ -345,24 +398,42 @@
 	return ret;
 }
 
+static void asus_schedule_work(struct asus_kbd_leds *led)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&led->lock, flags);
+	if (!led->removed)
+		schedule_work(&led->work);
+	spin_unlock_irqrestore(&led->lock, flags);
+}
+
 static void asus_kbd_backlight_set(struct led_classdev *led_cdev,
 				   enum led_brightness brightness)
 {
 	struct asus_kbd_leds *led = container_of(led_cdev, struct asus_kbd_leds,
 						 cdev);
-	if (led->brightness == brightness)
-		return;
+	unsigned long flags;
 
+	spin_lock_irqsave(&led->lock, flags);
 	led->brightness = brightness;
-	schedule_work(&led->work);
+	spin_unlock_irqrestore(&led->lock, flags);
+
+	asus_schedule_work(led);
 }
 
 static enum led_brightness asus_kbd_backlight_get(struct led_classdev *led_cdev)
 {
 	struct asus_kbd_leds *led = container_of(led_cdev, struct asus_kbd_leds,
 						 cdev);
+	enum led_brightness brightness;
+	unsigned long flags;
+
+	spin_lock_irqsave(&led->lock, flags);
+	brightness = led->brightness;
+	spin_unlock_irqrestore(&led->lock, flags);
 
-	return led->brightness;
+	return brightness;
 }
 
 static void asus_kbd_backlight_work(struct work_struct *work)
@@ -370,11 +441,11 @@
 	struct asus_kbd_leds *led = container_of(work, struct asus_kbd_leds, work);
 	u8 buf[] = { FEATURE_KBD_REPORT_ID, 0xba, 0xc5, 0xc4, 0x00 };
 	int ret;
+	unsigned long flags;
 
-	if (led->removed)
-		return;
-
+	spin_lock_irqsave(&led->lock, flags);
 	buf[4] = led->brightness;
+	spin_unlock_irqrestore(&led->lock, flags);
 
 	ret = asus_kbd_set_report(led->hdev, buf, sizeof(buf));
 	if (ret < 0)
@@ -436,6 +507,7 @@
 	drvdata->kbd_backlight->cdev.brightness_set = asus_kbd_backlight_set;
 	drvdata->kbd_backlight->cdev.brightness_get = asus_kbd_backlight_get;
 	INIT_WORK(&drvdata->kbd_backlight->work, asus_kbd_backlight_work);
+	spin_lock_init(&drvdata->kbd_backlight->lock);
 
 	ret = devm_led_classdev_register(&hdev->dev, &drvdata->kbd_backlight->cdev);
 	if (ret < 0) {
@@ -614,6 +686,21 @@
 	    hi->report->id != T100CHI_MOUSE_REPORT_ID)
 		return 0;
 
+	/* Handle MULTI_INPUT on E1239T mouse/touchpad USB interface */
+	if (drvdata->tp && (drvdata->quirks & QUIRK_MEDION_E1239T)) {
+		switch (hi->report->id) {
+		case E1239T_TP_TOGGLE_REPORT_ID:
+			input_set_capability(input, EV_KEY, KEY_F21);
+			input->name = "Asus Touchpad Keys";
+			drvdata->tp_kbd_input = input;
+			return 0;
+		case INPUT_REPORT_ID:
+			break; /* Touchpad report, handled below */
+		default:
+			return 0; /* Ignore other reports */
+		}
+	}
+
 	if (drvdata->tp) {
 		int ret;
 
@@ -693,7 +780,6 @@
 
 	/* ASUS-specific keyboard hotkeys */
 	if ((usage->hid & HID_USAGE_PAGE) == 0xff310000) {
-		set_bit(EV_REP, hi->input->evbit);
 		switch (usage->hid & HID_USAGE) {
 		case 0x10: asus_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
 		case 0x20: asus_map_key_clear(KEY_BRIGHTNESSUP);		break;
@@ -736,11 +822,11 @@
 		if (drvdata->quirks & QUIRK_USE_KBD_BACKLIGHT)
 			drvdata->enable_backlight = true;
 
+		set_bit(EV_REP, hi->input->evbit);
 		return 1;
 	}
 
 	if ((usage->hid & HID_USAGE_PAGE) == HID_UP_MSVENDOR) {
-		set_bit(EV_REP, hi->input->evbit);
 		switch (usage->hid & HID_USAGE) {
 		case 0xff01: asus_map_key_clear(BTN_1);	break;
 		case 0xff02: asus_map_key_clear(BTN_2);	break;
@@ -763,6 +849,7 @@
 			return 0;
 		}
 
+		set_bit(EV_REP, hi->input->evbit);
 		return 1;
 	}
 
@@ -781,6 +868,16 @@
 		}
 	}
 
+	/*
+	 * The mute button is broken and only sends press events, we
+	 * deal with this in our raw_event handler, so do not map it.
+	 */
+	if ((drvdata->quirks & QUIRK_MEDION_E1239T) &&
+	    usage->hid == (HID_UP_CONSUMER | 0xe2)) {
+		input_set_capability(hi->input, EV_KEY, KEY_MUTE);
+		return -1;
+	}
+
 	return 0;
 }
 
@@ -848,7 +945,7 @@
 	if (drvdata->quirks & QUIRK_IS_MULTITOUCH)
 		drvdata->tp = &asus_i2c_tp;
 
-	if (drvdata->quirks & QUIRK_T100_KEYBOARD) {
+	if ((drvdata->quirks & QUIRK_T100_KEYBOARD) && hid_is_usb(hdev)) {
 		struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
 
 		if (intf->altsetting->desc.bInterfaceNumber == T100_TPAD_INTF) {
@@ -876,6 +973,19 @@
 		drvdata->tp = &asus_t100chi_tp;
 	}
 
+	if ((drvdata->quirks & QUIRK_MEDION_E1239T) &&
+	    hid_is_using_ll_driver(hdev, &usb_hid_driver)) {
+		struct usb_host_interface *alt =
+			to_usb_interface(hdev->dev.parent)->altsetting;
+
+		if (alt->desc.bInterfaceNumber == MEDION_E1239T_TPAD_INTF) {
+			/* For separate input-devs for tp and tp toggle key */
+			hdev->quirks |= HID_QUIRK_MULTI_INPUT;
+			drvdata->quirks |= QUIRK_SKIP_INPUT_MAPPING;
+			drvdata->tp = &medion_e1239t_tp;
+		}
+	}
+
 	if (drvdata->quirks & QUIRK_NO_INIT_REPORTS)
 		hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
 
@@ -934,9 +1044,13 @@
 static void asus_remove(struct hid_device *hdev)
 {
 	struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
+	unsigned long flags;
 
 	if (drvdata->kbd_backlight) {
+		spin_lock_irqsave(&drvdata->kbd_backlight->lock, flags);
 		drvdata->kbd_backlight->removed = true;
+		spin_unlock_irqrestore(&drvdata->kbd_backlight->lock, flags);
+
 		cancel_work_sync(&drvdata->kbd_backlight->work);
 	}
 
@@ -1055,7 +1169,8 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_ASUS_MD_5112) },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ASUSTEK,
 		USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD), QUIRK_T100CHI },
-
+	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE_MEDION_E1239T),
+		QUIRK_MEDION_E1239T },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, asus_devices);
--- linux-ein-5.4.0.orig/drivers/hid/hid-betopff.c
+++ linux-ein-5.4.0/drivers/hid/hid-betopff.c
@@ -56,15 +56,21 @@
 {
 	struct betopff_device *betopff;
 	struct hid_report *report;
-	struct hid_input *hidinput =
-			list_first_entry(&hid->inputs, struct hid_input, list);
+	struct hid_input *hidinput;
 	struct list_head *report_list =
 			&hid->report_enum[HID_OUTPUT_REPORT].report_list;
-	struct input_dev *dev = hidinput->input;
-	int field_count = 0;
+	struct input_dev *dev;
 	int error;
 	int i, j;
 
+	if (list_empty(&hid->inputs)) {
+		hid_err(hid, "no inputs found\n");
+		return -ENODEV;
+	}
+
+	hidinput = list_first_entry(&hid->inputs, struct hid_input, list);
+	dev = hidinput->input;
+
 	if (list_empty(report_list)) {
 		hid_err(hid, "no output reports found\n");
 		return -ENODEV;
@@ -79,19 +85,21 @@
 	 * -----------------------------------------
 	 * Do init them with default value.
 	 */
+	if (report->maxfield < 4) {
+		hid_err(hid, "not enough fields in the report: %d\n",
+				report->maxfield);
+		return -ENODEV;
+	}
 	for (i = 0; i < report->maxfield; i++) {
+		if (report->field[i]->report_count < 1) {
+			hid_err(hid, "no values in the field\n");
+			return -ENODEV;
+		}
 		for (j = 0; j < report->field[i]->report_count; j++) {
 			report->field[i]->value[j] = 0x00;
-			field_count++;
 		}
 	}
 
-	if (field_count < 4) {
-		hid_err(hid, "not enough fields in the report: %d\n",
-				field_count);
-		return -ENODEV;
-	}
-
 	betopff = kzalloc(sizeof(*betopff), GFP_KERNEL);
 	if (!betopff)
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/hid/hid-bigbenff.c
+++ linux-ein-5.4.0/drivers/hid/hid-bigbenff.c
@@ -174,6 +174,8 @@
 struct bigben_device {
 	struct hid_device *hid;
 	struct hid_report *report;
+	spinlock_t lock;
+	bool removed;
 	u8 led_state;         /* LED1 = 1 .. LED4 = 8 */
 	u8 right_motor_on;    /* right motor off/on 0/1 */
 	u8 left_motor_force;  /* left motor force 0-255 */
@@ -183,15 +185,39 @@
 	struct work_struct worker;
 };
 
+static inline void bigben_schedule_work(struct bigben_device *bigben)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&bigben->lock, flags);
+	if (!bigben->removed)
+		schedule_work(&bigben->worker);
+	spin_unlock_irqrestore(&bigben->lock, flags);
+}
 
 static void bigben_worker(struct work_struct *work)
 {
 	struct bigben_device *bigben = container_of(work,
 		struct bigben_device, worker);
 	struct hid_field *report_field = bigben->report->field[0];
+	bool do_work_led = false;
+	bool do_work_ff = false;
+	u8 *buf;
+	u32 len;
+	unsigned long flags;
+
+	buf = hid_alloc_report_buf(bigben->report, GFP_KERNEL);
+	if (!buf)
+		return;
+
+	len = hid_report_len(bigben->report);
+
+	/* LED work */
+	spin_lock_irqsave(&bigben->lock, flags);
 
 	if (bigben->work_led) {
 		bigben->work_led = false;
+		do_work_led = true;
 		report_field->value[0] = 0x01; /* 1 = led message */
 		report_field->value[1] = 0x08; /* reserved value, always 8 */
 		report_field->value[2] = bigben->led_state;
@@ -200,11 +226,22 @@
 		report_field->value[5] = 0x00; /* padding */
 		report_field->value[6] = 0x00; /* padding */
 		report_field->value[7] = 0x00; /* padding */
-		hid_hw_request(bigben->hid, bigben->report, HID_REQ_SET_REPORT);
+		hid_output_report(bigben->report, buf);
 	}
 
+	spin_unlock_irqrestore(&bigben->lock, flags);
+
+	if (do_work_led) {
+		hid_hw_raw_request(bigben->hid, bigben->report->id, buf, len,
+				   bigben->report->type, HID_REQ_SET_REPORT);
+	}
+
+	/* FF work */
+	spin_lock_irqsave(&bigben->lock, flags);
+
 	if (bigben->work_ff) {
 		bigben->work_ff = false;
+		do_work_ff = true;
 		report_field->value[0] = 0x02; /* 2 = rumble effect message */
 		report_field->value[1] = 0x08; /* reserved value, always 8 */
 		report_field->value[2] = bigben->right_motor_on;
@@ -213,16 +250,32 @@
 		report_field->value[5] = 0x00; /* padding */
 		report_field->value[6] = 0x00; /* padding */
 		report_field->value[7] = 0x00; /* padding */
-		hid_hw_request(bigben->hid, bigben->report, HID_REQ_SET_REPORT);
+		hid_output_report(bigben->report, buf);
 	}
+
+	spin_unlock_irqrestore(&bigben->lock, flags);
+
+	if (do_work_ff) {
+		hid_hw_raw_request(bigben->hid, bigben->report->id, buf, len,
+				   bigben->report->type, HID_REQ_SET_REPORT);
+	}
+
+	kfree(buf);
 }
 
 static int hid_bigben_play_effect(struct input_dev *dev, void *data,
 			 struct ff_effect *effect)
 {
-	struct bigben_device *bigben = data;
+	struct hid_device *hid = input_get_drvdata(dev);
+	struct bigben_device *bigben = hid_get_drvdata(hid);
 	u8 right_motor_on;
 	u8 left_motor_force;
+	unsigned long flags;
+
+	if (!bigben) {
+		hid_err(hid, "no device data\n");
+		return 0;
+	}
 
 	if (effect->type != FF_RUMBLE)
 		return 0;
@@ -232,10 +285,13 @@
 
 	if (right_motor_on != bigben->right_motor_on ||
 			left_motor_force != bigben->left_motor_force) {
+		spin_lock_irqsave(&bigben->lock, flags);
 		bigben->right_motor_on   = right_motor_on;
 		bigben->left_motor_force = left_motor_force;
 		bigben->work_ff = true;
-		schedule_work(&bigben->worker);
+		spin_unlock_irqrestore(&bigben->lock, flags);
+
+		bigben_schedule_work(bigben);
 	}
 
 	return 0;
@@ -249,6 +305,7 @@
 	struct bigben_device *bigben = hid_get_drvdata(hid);
 	int n;
 	bool work;
+	unsigned long flags;
 
 	if (!bigben) {
 		hid_err(hid, "no device data\n");
@@ -257,6 +314,7 @@
 
 	for (n = 0; n < NUM_LEDS; n++) {
 		if (led == bigben->leds[n]) {
+			spin_lock_irqsave(&bigben->lock, flags);
 			if (value == LED_OFF) {
 				work = (bigben->led_state & BIT(n));
 				bigben->led_state &= ~BIT(n);
@@ -264,10 +322,11 @@
 				work = !(bigben->led_state & BIT(n));
 				bigben->led_state |= BIT(n);
 			}
+			spin_unlock_irqrestore(&bigben->lock, flags);
 
 			if (work) {
 				bigben->work_led = true;
-				schedule_work(&bigben->worker);
+				bigben_schedule_work(bigben);
 			}
 			return;
 		}
@@ -297,9 +356,13 @@
 static void bigben_remove(struct hid_device *hid)
 {
 	struct bigben_device *bigben = hid_get_drvdata(hid);
+	unsigned long flags;
+
+	spin_lock_irqsave(&bigben->lock, flags);
+	bigben->removed = true;
+	spin_unlock_irqrestore(&bigben->lock, flags);
 
 	cancel_work_sync(&bigben->worker);
-	hid_hw_close(hid);
 	hid_hw_stop(hid);
 }
 
@@ -308,7 +371,6 @@
 {
 	struct bigben_device *bigben;
 	struct hid_input *hidinput;
-	struct list_head *report_list;
 	struct led_classdev *led;
 	char *name;
 	size_t name_sz;
@@ -319,6 +381,7 @@
 		return -ENOMEM;
 	hid_set_drvdata(hid, bigben);
 	bigben->hid = hid;
+	bigben->removed = false;
 
 	error = hid_parse(hid);
 	if (error) {
@@ -332,19 +395,29 @@
 		return error;
 	}
 
-	report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list;
-	bigben->report = list_entry(report_list->next,
-		struct hid_report, list);
+	bigben->report = hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 8);
+	if (!bigben->report) {
+		hid_err(hid, "no output report found\n");
+		error = -ENODEV;
+		goto error_hw_stop;
+	}
+
+	if (list_empty(&hid->inputs)) {
+		hid_err(hid, "no inputs found\n");
+		error = -ENODEV;
+		goto error_hw_stop;
+	}
 
 	hidinput = list_first_entry(&hid->inputs, struct hid_input, list);
 	set_bit(FF_RUMBLE, hidinput->input->ffbit);
 
 	INIT_WORK(&bigben->worker, bigben_worker);
+	spin_lock_init(&bigben->lock);
 
-	error = input_ff_create_memless(hidinput->input, bigben,
+	error = input_ff_create_memless(hidinput->input, NULL,
 		hid_bigben_play_effect);
 	if (error)
-		return error;
+		goto error_hw_stop;
 
 	name_sz = strlen(dev_name(&hid->dev)) + strlen(":red:bigben#") + 1;
 
@@ -354,8 +427,10 @@
 			sizeof(struct led_classdev) + name_sz,
 			GFP_KERNEL
 		);
-		if (!led)
-			return -ENOMEM;
+		if (!led) {
+			error = -ENOMEM;
+			goto error_hw_stop;
+		}
 		name = (void *)(&led[1]);
 		snprintf(name, name_sz,
 			"%s:red:bigben%d",
@@ -369,7 +444,7 @@
 		bigben->leds[n] = led;
 		error = devm_led_classdev_register(&hid->dev, led);
 		if (error)
-			return error;
+			goto error_hw_stop;
 	}
 
 	/* initial state: LED1 is on, no rumble effect */
@@ -378,11 +453,15 @@
 	bigben->left_motor_force = 0;
 	bigben->work_led = true;
 	bigben->work_ff = true;
-	schedule_work(&bigben->worker);
+	bigben_schedule_work(bigben);
 
 	hid_info(hid, "LED and force feedback support for BigBen gamepad\n");
 
 	return 0;
+
+error_hw_stop:
+	hid_hw_stop(hid);
+	return error;
 }
 
 static __u8 *bigben_report_fixup(struct hid_device *hid, __u8 *rdesc,
--- linux-ein-5.4.0.orig/drivers/hid/hid-chicony.c
+++ linux-ein-5.4.0/drivers/hid/hid-chicony.c
@@ -58,8 +58,12 @@
 static __u8 *ch_switch12_report_fixup(struct hid_device *hdev, __u8 *rdesc,
 		unsigned int *rsize)
 {
-	struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
-	
+	struct usb_interface *intf;
+
+	if (!hid_is_usb(hdev))
+		return rdesc;
+
+	intf = to_usb_interface(hdev->dev.parent);
 	if (intf->cur_altsetting->desc.bInterfaceNumber == 1) {
 		/* Change usage maximum and logical maximum from 0x7fff to
 		 * 0x2fff, so they don't exceed HID_MAX_USAGES */
--- linux-ein-5.4.0.orig/drivers/hid/hid-core.c
+++ linux-ein-5.4.0/drivers/hid/hid-core.c
@@ -90,7 +90,7 @@
  * Register a new field for this report.
  */
 
-static struct hid_field *hid_register_field(struct hid_report *report, unsigned usages, unsigned values)
+static struct hid_field *hid_register_field(struct hid_report *report, unsigned usages)
 {
 	struct hid_field *field;
 
@@ -101,7 +101,7 @@
 
 	field = kzalloc((sizeof(struct hid_field) +
 			 usages * sizeof(struct hid_usage) +
-			 values * sizeof(unsigned)), GFP_KERNEL);
+			 usages * sizeof(unsigned)), GFP_KERNEL);
 	if (!field)
 		return NULL;
 
@@ -212,6 +212,18 @@
 }
 
 /*
+ * Concatenate usage which defines 16 bits or less with the
+ * currently defined usage page to form a 32 bit usage
+ */
+
+static void complete_usage(struct hid_parser *parser, unsigned int index)
+{
+	parser->local.usage[index] &= 0xFFFF;
+	parser->local.usage[index] |=
+		(parser->global.usage_page & 0xFFFF) << 16;
+}
+
+/*
  * Add a usage to the temporary parser table.
  */
 
@@ -222,6 +234,14 @@
 		return -1;
 	}
 	parser->local.usage[parser->local.usage_index] = usage;
+
+	/*
+	 * If Usage item only includes usage id, concatenate it with
+	 * currently defined usage page
+	 */
+	if (size <= 2)
+		complete_usage(parser, parser->local.usage_index);
+
 	parser->local.usage_size[parser->local.usage_index] = size;
 	parser->local.collection_index[parser->local.usage_index] =
 		parser->collection_stack_ptr ?
@@ -238,6 +258,7 @@
 {
 	struct hid_report *report;
 	struct hid_field *field;
+	unsigned int max_buffer_size = HID_MAX_BUFFER_SIZE;
 	unsigned int usages;
 	unsigned int offset;
 	unsigned int i;
@@ -268,13 +289,22 @@
 	offset = report->size;
 	report->size += parser->global.report_size * parser->global.report_count;
 
+	if (parser->device->ll_driver->max_buffer_size)
+		max_buffer_size = parser->device->ll_driver->max_buffer_size;
+
+	/* Total size check: Allow for possible report index byte */
+	if (report->size > (max_buffer_size - 1) << 3) {
+		hid_err(parser->device, "report is too long\n");
+		return -1;
+	}
+
 	if (!parser->local.usage_index) /* Ignore padding fields */
 		return 0;
 
 	usages = max_t(unsigned, parser->local.usage_index,
 				 parser->global.report_count);
 
-	field = hid_register_field(report, usages, parser->global.report_count);
+	field = hid_register_field(report, usages);
 	if (!field)
 		return 0;
 
@@ -543,13 +573,32 @@
  * usage value."
  */
 
-static void hid_concatenate_usage_page(struct hid_parser *parser)
+static void hid_concatenate_last_usage_page(struct hid_parser *parser)
 {
 	int i;
+	unsigned int usage_page;
+	unsigned int current_page;
+
+	if (!parser->local.usage_index)
+		return;
+
+	usage_page = parser->global.usage_page;
+
+	/*
+	 * Concatenate usage page again only if last declared Usage Page
+	 * has not been already used in previous usages concatenation
+	 */
+	for (i = parser->local.usage_index - 1; i >= 0; i--) {
+		if (parser->local.usage_size[i] > 2)
+			/* Ignore extended usages */
+			continue;
+
+		current_page = parser->local.usage[i] >> 16;
+		if (current_page == usage_page)
+			break;
 
-	for (i = 0; i < parser->local.usage_index; i++)
-		if (parser->local.usage_size[i] <= 2)
-			parser->local.usage[i] += parser->global.usage_page << 16;
+		complete_usage(parser, i);
+	}
 }
 
 /*
@@ -561,7 +610,7 @@
 	__u32 data;
 	int ret;
 
-	hid_concatenate_usage_page(parser);
+	hid_concatenate_last_usage_page(parser);
 
 	data = item_udata(item);
 
@@ -742,6 +791,10 @@
 	if (usage == 0xff0000c5 && parser->global.report_count == 256 &&
 	    parser->global.report_size == 8)
 		parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
+
+	if (usage == 0xff0000c6 && parser->global.report_count == 1 &&
+	    parser->global.report_size == 8)
+		parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
 }
 
 static void hid_scan_collection(struct hid_parser *parser, unsigned type)
@@ -772,7 +825,7 @@
 	__u32 data;
 	int i;
 
-	hid_concatenate_usage_page(parser);
+	hid_concatenate_last_usage_page(parser);
 
 	data = item_udata(item);
 
@@ -932,8 +985,8 @@
 		 * Validating on id 0 means we should examine the first
 		 * report in the list.
 		 */
-		report = list_entry(
-				hid->report_enum[type].report_list.next,
+		report = list_first_entry_or_null(
+				&hid->report_enum[type].report_list,
 				struct hid_report, list);
 	} else {
 		report = hid->report_enum[type].report_id_hash[id];
@@ -1141,6 +1194,7 @@
 	__u8 *end;
 	__u8 *next;
 	int ret;
+	int i;
 	static int (*dispatch_type[])(struct hid_parser *parser,
 				      struct hid_item *item) = {
 		hid_parser_main,
@@ -1191,6 +1245,8 @@
 		goto err;
 	}
 	device->collection_size = HID_DEFAULT_NUM_COLLECTIONS;
+	for (i = 0; i < HID_DEFAULT_NUM_COLLECTIONS; i++)
+		device->collection[i].parent_idx = -1;
 
 	ret = -EINVAL;
 	while ((next = fetch_item(start, end, &item)) != NULL) {
@@ -1251,6 +1307,12 @@
 
 static s32 snto32(__u32 value, unsigned n)
 {
+	if (!value || !n)
+		return 0;
+
+	if (n > 32)
+		n = 32;
+
 	switch (n) {
 	case 8:  return ((__s8)value);
 	case 16: return ((__s16)value);
@@ -1549,6 +1611,17 @@
 }
 
 /*
+ * Compute the size of a report.
+ */
+static size_t hid_compute_report_size(struct hid_report *report)
+{
+	if (report->size)
+		return ((report->size - 1) >> 3) + 1;
+
+	return 0;
+}
+
+/*
  * Create a report. 'data' has to be allocated using
  * hid_alloc_report_buf() so that it has proper size.
  */
@@ -1560,7 +1633,7 @@
 	if (report->id > 0)
 		*data++ = report->id;
 
-	memset(data, 0, ((report->size - 1) >> 3) + 1);
+	memset(data, 0, hid_compute_report_size(report));
 	for (n = 0; n < report->maxfield; n++)
 		hid_output_field(report->device, report->field[n], data);
 }
@@ -1676,6 +1749,7 @@
 	struct hid_report_enum *report_enum = hid->report_enum + type;
 	struct hid_report *report;
 	struct hid_driver *hdrv;
+	int max_buffer_size = HID_MAX_BUFFER_SIZE;
 	unsigned int a;
 	u32 rsize, csize = size;
 	u8 *cdata = data;
@@ -1690,10 +1764,15 @@
 		csize--;
 	}
 
-	rsize = ((report->size - 1) >> 3) + 1;
+	rsize = hid_compute_report_size(report);
+
+	if (hid->ll_driver->max_buffer_size)
+		max_buffer_size = hid->ll_driver->max_buffer_size;
 
-	if (rsize > HID_MAX_BUFFER_SIZE)
-		rsize = HID_MAX_BUFFER_SIZE;
+	if (report_enum->numbered && rsize >= max_buffer_size)
+		rsize = max_buffer_size - 1;
+	else if (rsize > max_buffer_size)
+		rsize = max_buffer_size;
 
 	if (csize < rsize) {
 		dbg_hid("report %d is too short, (%d < %d)\n", report->id,
@@ -1933,6 +2012,9 @@
 	case BUS_I2C:
 		bus = "I2C";
 		break;
+	case BUS_VIRTUAL:
+		bus = "VIRTUAL";
+		break;
 	default:
 		bus = "<UNKNOWN>";
 	}
@@ -2231,12 +2313,8 @@
 {
 	struct hid_device *hdev = to_hid_device(dev);
 	struct hid_driver *hdrv;
-	int ret = 0;
 
-	if (down_interruptible(&hdev->driver_input_lock)) {
-		ret = -EINTR;
-		goto end;
-	}
+	down(&hdev->driver_input_lock);
 	hdev->io_started = false;
 
 	hdrv = hdev->driver;
@@ -2251,8 +2329,8 @@
 
 	if (!hdev->io_started)
 		up(&hdev->driver_input_lock);
-end:
-	return ret;
+
+	return 0;
 }
 
 static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
--- linux-ein-5.4.0.orig/drivers/hid/hid-corsair.c
+++ linux-ein-5.4.0/drivers/hid/hid-corsair.c
@@ -553,7 +553,12 @@
 	int ret;
 	unsigned long quirks = id->driver_data;
 	struct corsair_drvdata *drvdata;
-	struct usb_interface *usbif = to_usb_interface(dev->dev.parent);
+	struct usb_interface *usbif;
+
+	if (!hid_is_usb(dev))
+		return -EINVAL;
+
+	usbif = to_usb_interface(dev->dev.parent);
 
 	drvdata = devm_kzalloc(&dev->dev, sizeof(struct corsair_drvdata),
 			       GFP_KERNEL);
--- linux-ein-5.4.0.orig/drivers/hid/hid-cp2112.c
+++ linux-ein-5.4.0/drivers/hid/hid-cp2112.c
@@ -787,6 +787,11 @@
 		data->word = le16_to_cpup((__le16 *)buf);
 		break;
 	case I2C_SMBUS_I2C_BLOCK_DATA:
+		if (read_length > I2C_SMBUS_BLOCK_MAX) {
+			ret = -EINVAL;
+			goto power_normal;
+		}
+
 		memcpy(data->block + 1, buf, read_length);
 		break;
 	case I2C_SMBUS_BLOCK_DATA:
--- linux-ein-5.4.0.orig/drivers/hid/hid-cypress.c
+++ linux-ein-5.4.0/drivers/hid/hid-cypress.c
@@ -23,19 +23,17 @@
 #define CP_2WHEEL_MOUSE_HACK		0x02
 #define CP_2WHEEL_MOUSE_HACK_ON		0x04
 
+#define VA_INVAL_LOGICAL_BOUNDARY	0x08
+
 /*
  * Some USB barcode readers from cypress have usage min and usage max in
  * the wrong order
  */
-static __u8 *cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+static __u8 *cp_rdesc_fixup(struct hid_device *hdev, __u8 *rdesc,
 		unsigned int *rsize)
 {
-	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
 	unsigned int i;
 
-	if (!(quirks & CP_RDESC_SWAPPED_MIN_MAX))
-		return rdesc;
-
 	if (*rsize < 4)
 		return rdesc;
 
@@ -48,6 +46,40 @@
 	return rdesc;
 }
 
+static __u8 *va_logical_boundary_fixup(struct hid_device *hdev, __u8 *rdesc,
+		unsigned int *rsize)
+{
+	/*
+	 * Varmilo VA104M (with VID Cypress and device ID 07B1) incorrectly
+	 * reports Logical Minimum of its Consumer Control device as 572
+	 * (0x02 0x3c). Fix this by setting its Logical Minimum to zero.
+	 */
+	if (*rsize == 25 &&
+			rdesc[0] == 0x05 && rdesc[1] == 0x0c &&
+			rdesc[2] == 0x09 && rdesc[3] == 0x01 &&
+			rdesc[6] == 0x19 && rdesc[7] == 0x00 &&
+			rdesc[11] == 0x16 && rdesc[12] == 0x3c && rdesc[13] == 0x02) {
+		hid_info(hdev,
+			 "fixing up varmilo VA104M consumer control report descriptor\n");
+		rdesc[12] = 0x00;
+		rdesc[13] = 0x00;
+	}
+	return rdesc;
+}
+
+static __u8 *cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+		unsigned int *rsize)
+{
+	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
+
+	if (quirks & CP_RDESC_SWAPPED_MIN_MAX)
+		rdesc = cp_rdesc_fixup(hdev, rdesc, rsize);
+	if (quirks & VA_INVAL_LOGICAL_BOUNDARY)
+		rdesc = va_logical_boundary_fixup(hdev, rdesc, rsize);
+
+	return rdesc;
+}
+
 static int cp_input_mapped(struct hid_device *hdev, struct hid_input *hi,
 		struct hid_field *field, struct hid_usage *usage,
 		unsigned long **bit, int *max)
@@ -128,6 +160,8 @@
 		.driver_data = CP_RDESC_SWAPPED_MIN_MAX },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE),
 		.driver_data = CP_2WHEEL_MOUSE_HACK },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_VARMILO_VA104M_07B1),
+		.driver_data = VA_INVAL_LOGICAL_BOUNDARY },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, cp_devices);
--- linux-ein-5.4.0.orig/drivers/hid/hid-debug.c
+++ linux-ein-5.4.0/drivers/hid/hid-debug.c
@@ -823,7 +823,9 @@
 	[KEY_F22] = "F22",			[KEY_F23] = "F23",
 	[KEY_F24] = "F24",			[KEY_PLAYCD] = "PlayCD",
 	[KEY_PAUSECD] = "PauseCD",		[KEY_PROG3] = "Prog3",
-	[KEY_PROG4] = "Prog4",			[KEY_SUSPEND] = "Suspend",
+	[KEY_PROG4] = "Prog4",
+	[KEY_ALL_APPLICATIONS] = "AllApplications",
+	[KEY_SUSPEND] = "Suspend",
 	[KEY_CLOSE] = "Close",			[KEY_PLAY] = "Play",
 	[KEY_FASTFORWARD] = "FastForward",	[KEY_BASSBOOST] = "BassBoost",
 	[KEY_PRINT] = "Print",			[KEY_HP] = "HP",
@@ -929,6 +931,9 @@
 	[KEY_APPSELECT] = "AppSelect",
 	[KEY_SCREENSAVER] = "ScreenSaver",
 	[KEY_VOICECOMMAND] = "VoiceCommand",
+	[KEY_EMOJI_PICKER] = "EmojiPicker",
+	[KEY_DICTATE] = "Dictate",
+	[KEY_MICMUTE] = "MicrophoneMute",
 	[KEY_BRIGHTNESS_MIN] = "BrightnessMin",
 	[KEY_BRIGHTNESS_MAX] = "BrightnessMax",
 	[KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
--- linux-ein-5.4.0.orig/drivers/hid/hid-elan.c
+++ linux-ein-5.4.0/drivers/hid/hid-elan.c
@@ -50,7 +50,7 @@
 
 static int is_not_elan_touchpad(struct hid_device *hdev)
 {
-	if (hdev->bus == BUS_USB) {
+	if (hid_is_usb(hdev)) {
 		struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
 
 		return (intf->altsetting->desc.bInterfaceNumber !=
@@ -198,7 +198,7 @@
 	if (ret) {
 		hid_err(hdev, "Failed to register elan input device: %d\n",
 			ret);
-		input_free_device(input);
+		input_mt_destroy_slots(input);
 		return ret;
 	}
 
--- linux-ein-5.4.0.orig/drivers/hid/hid-elo.c
+++ linux-ein-5.4.0/drivers/hid/hid-elo.c
@@ -229,6 +229,9 @@
 	struct elo_priv *priv;
 	int ret;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
--- linux-ein-5.4.0.orig/drivers/hid/hid-google-hammer.c
+++ linux-ein-5.4.0/drivers/hid/hid-google-hammer.c
@@ -468,12 +468,20 @@
 
 static const struct hid_device_id hammer_devices[] = {
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_DON) },
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_EEL) },
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_HAMMER) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_JEWEL) },
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_MAGNEMITE) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_MASTERBALL) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_MOONBALL) },
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_STAFF) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_WAND) },
--- linux-ein-5.4.0.orig/drivers/hid/hid-gt683r.c
+++ linux-ein-5.4.0/drivers/hid/hid-gt683r.c
@@ -54,6 +54,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL) },
 	{ }
 };
+MODULE_DEVICE_TABLE(hid, gt683r_led_id);
 
 static void gt683r_brightness_set(struct led_classdev *led_cdev,
 				enum led_brightness brightness)
--- linux-ein-5.4.0.orig/drivers/hid/hid-holtek-kbd.c
+++ linux-ein-5.4.0/drivers/hid/hid-holtek-kbd.c
@@ -130,6 +130,10 @@
 		return -ENODEV;
 
 	boot_hid = usb_get_intfdata(boot_interface);
+	if (list_empty(&boot_hid->inputs)) {
+		hid_err(hid, "no inputs found\n");
+		return -ENODEV;
+	}
 	boot_hid_input = list_first_entry(&boot_hid->inputs,
 		struct hid_input, list);
 
@@ -140,12 +144,17 @@
 static int holtek_kbd_probe(struct hid_device *hdev,
 		const struct hid_device_id *id)
 {
-	struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
-	int ret = hid_parse(hdev);
+	struct usb_interface *intf;
+	int ret;
+
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
 
+	ret = hid_parse(hdev);
 	if (!ret)
 		ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
 
+	intf = to_usb_interface(hdev->dev.parent);
 	if (!ret && intf->cur_altsetting->desc.bInterfaceNumber == 1) {
 		struct hid_input *hidinput;
 		list_for_each_entry(hidinput, &hdev->inputs, list) {
--- linux-ein-5.4.0.orig/drivers/hid/hid-holtek-mouse.c
+++ linux-ein-5.4.0/drivers/hid/hid-holtek-mouse.c
@@ -62,6 +62,29 @@
 	return rdesc;
 }
 
+static int holtek_mouse_probe(struct hid_device *hdev,
+			      const struct hid_device_id *id)
+{
+	int ret;
+
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
+	ret = hid_parse(hdev);
+	if (ret) {
+		hid_err(hdev, "hid parse failed: %d\n", ret);
+		return ret;
+	}
+
+	ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
+	if (ret) {
+		hid_err(hdev, "hw start failed: %d\n", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
 static const struct hid_device_id holtek_mouse_devices[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT,
 			USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067) },
@@ -83,6 +106,7 @@
 	.name = "holtek_mouse",
 	.id_table = holtek_mouse_devices,
 	.report_fixup = holtek_mouse_report_fixup,
+	.probe = holtek_mouse_probe,
 };
 
 module_hid_driver(holtek_mouse_driver);
--- linux-ein-5.4.0.orig/drivers/hid/hid-hyperv.c
+++ linux-ein-5.4.0/drivers/hid/hid-hyperv.c
@@ -492,7 +492,7 @@
 
 	ret = hid_add_device(hid_dev);
 	if (ret)
-		goto probe_err1;
+		goto probe_err2;
 
 
 	ret = hid_parse(hid_dev);
--- linux-ein-5.4.0.orig/drivers/hid/hid-ids.h
+++ linux-ein-5.4.0/drivers/hid/hid-ids.h
@@ -79,10 +79,10 @@
 #define HID_DEVICE_ID_ALPS_U1_DUAL_PTP	0x121F
 #define HID_DEVICE_ID_ALPS_U1_DUAL_3BTN_PTP	0x1220
 #define HID_DEVICE_ID_ALPS_U1		0x1215
+#define HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY         0x121E
 #define HID_DEVICE_ID_ALPS_T4_BTNLESS	0x120C
 #define HID_DEVICE_ID_ALPS_1222		0x1222
 
-
 #define USB_VENDOR_ID_AMI		0x046b
 #define USB_DEVICE_ID_AMI_VIRT_KEYBOARD_AND_MOUSE	0xff10
 
@@ -337,6 +337,8 @@
 #define USB_DEVICE_ID_CYPRESS_BARCODE_4	0xed81
 #define USB_DEVICE_ID_CYPRESS_TRUETOUCH	0xc001
 
+#define USB_DEVICE_ID_CYPRESS_VARMILO_VA104M_07B1   0X07b1
+
 #define USB_VENDOR_ID_DATA_MODUL	0x7374
 #define USB_VENDOR_ID_DATA_MODUL_EASYMAXTOUCH	0x1201
 
@@ -363,6 +365,7 @@
 #define USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR	0x1803
 #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE1	0x1843
 #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE2	0x1844
+#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE3	0x1846
 
 #define USB_VENDOR_ID_DWAV		0x0eef
 #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER	0x0001
@@ -385,11 +388,13 @@
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349	0x7349
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7	0x73f7
 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001	0xa001
+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C002	0xc002
 
 #define USB_VENDOR_ID_ELAN		0x04f3
 #define USB_DEVICE_ID_TOSHIBA_CLICK_L9W	0x0401
 #define USB_DEVICE_ID_HP_X2		0x074d
 #define USB_DEVICE_ID_HP_X2_10_COVER	0x0755
+#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN	0x2706
 
 #define USB_VENDOR_ID_ELECOM		0x056e
 #define USB_DEVICE_ID_ELECOM_BM084	0x0061
@@ -448,6 +453,10 @@
 #define USB_VENDOR_ID_FRUCTEL	0x25B6
 #define USB_DEVICE_ID_GAMETEL_MT_MODE	0x0002
 
+#define USB_VENDOR_ID_GAMEVICE	0x27F8
+#define USB_DEVICE_ID_GAMEVICE_GV186	0x0BBE
+#define USB_DEVICE_ID_GAMEVICE_KISHI	0x0BBF
+
 #define USB_VENDOR_ID_GAMERON		0x0810
 #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR	0x0001
 #define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR	0x0002
@@ -478,6 +487,10 @@
 #define USB_DEVICE_ID_GOOGLE_WHISKERS	0x5030
 #define USB_DEVICE_ID_GOOGLE_MASTERBALL	0x503c
 #define USB_DEVICE_ID_GOOGLE_MAGNEMITE	0x503d
+#define USB_DEVICE_ID_GOOGLE_MOONBALL	0x5044
+#define USB_DEVICE_ID_GOOGLE_DON	0x5050
+#define USB_DEVICE_ID_GOOGLE_EEL	0x5057
+#define USB_DEVICE_ID_GOOGLE_JEWEL	0x5061
 
 #define USB_VENDOR_ID_GOTOP		0x08f2
 #define USB_DEVICE_ID_SUPER_Q2		0x007f
@@ -485,6 +498,7 @@
 #define USB_DEVICE_ID_PENPOWER		0x00f4
 
 #define USB_VENDOR_ID_GREENASIA		0x0e8f
+#define USB_DEVICE_ID_GREENASIA_DUAL_SAT_ADAPTOR 0x3010
 #define USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD	0x3013
 
 #define USB_VENDOR_ID_GRETAGMACBETH	0x0971
@@ -567,12 +581,14 @@
 #define USB_DEVICE_ID_UGCI_FIGHTING	0x0030
 
 #define USB_VENDOR_ID_HP		0x03f0
+#define USB_PRODUCT_ID_HP_ELITE_PRESENTER_MOUSE_464A		0x464a
 #define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A	0x0a4a
 #define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A	0x0b4a
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE		0x134a
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A	0x094a
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0941	0x0941
 #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641	0x0641
+#define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_1f4a	0x1f4a
 
 #define USB_VENDOR_ID_HUION		0x256c
 #define USB_DEVICE_ID_HUION_TABLET	0x006e
@@ -617,6 +633,7 @@
 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081	0xa081
 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2	0xa0c2
 #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096	0xa096
+#define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293	0xa293
 
 #define USB_VENDOR_ID_IMATION		0x0718
 #define USB_DEVICE_ID_DISC_STAKKA	0xd000
@@ -628,10 +645,14 @@
 #define USB_DEVICE_ID_INNEX_GENESIS_ATARI	0x4745
 
 #define USB_VENDOR_ID_ITE               0x048d
+#define I2C_VENDOR_ID_ITE		0x103c
+#define I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15	0x184f
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA   0x8386
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA2  0x8350
+#define I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720	0x837a
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA900	0x8396
 #define USB_DEVICE_ID_ITE8595		0x8595
+#define USB_DEVICE_ID_ITE_MEDION_E1239T	0xce50
 
 #define USB_VENDOR_ID_JABRA		0x0b0e
 #define USB_DEVICE_ID_JABRA_SPEAK_410	0x0412
@@ -724,15 +745,22 @@
 #define USB_DEVICE_ID_LENOVO_X1_COVER	0x6085
 #define USB_DEVICE_ID_LENOVO_X1_TAB	0x60a3
 #define USB_DEVICE_ID_LENOVO_X1_TAB3	0x60b5
+#define USB_DEVICE_ID_LENOVO_OPTICAL_USB_MOUSE_600E	0x600e
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D	0x608d
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019	0x6019
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E	0x602e
+#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093	0x6093
 
 #define USB_VENDOR_ID_LG		0x1fd2
 #define USB_DEVICE_ID_LG_MULTITOUCH	0x0064
 #define USB_DEVICE_ID_LG_MELFAS_MT	0x6007
 #define I2C_DEVICE_ID_LG_8001		0x8001
+#define I2C_DEVICE_ID_LG_7010		0x7010
 
 #define USB_VENDOR_ID_LOGITECH		0x046d
 #define USB_DEVICE_ID_LOGITECH_AUDIOHUB 0x0a0e
 #define USB_DEVICE_ID_LOGITECH_T651	0xb00c
+#define USB_DEVICE_ID_LOGITECH_DINOVO_EDGE_KBD	0xb309
 #define USB_DEVICE_ID_LOGITECH_C007	0xc007
 #define USB_DEVICE_ID_LOGITECH_C077	0xc077
 #define USB_DEVICE_ID_LOGITECH_RECEIVER	0xc101
@@ -764,6 +792,7 @@
 #define USB_DEVICE_ID_LOGITECH_G27_WHEEL	0xc29b
 #define USB_DEVICE_ID_LOGITECH_WII_WHEEL	0xc29c
 #define USB_DEVICE_ID_LOGITECH_ELITE_KBD	0xc30a
+#define USB_DEVICE_ID_LOGITECH_GROUP_AUDIO	0x0882
 #define USB_DEVICE_ID_S510_RECEIVER	0xc50c
 #define USB_DEVICE_ID_S510_RECEIVER_2	0xc517
 #define USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500	0xc512
@@ -792,6 +821,7 @@
 #define USB_DEVICE_ID_MADCATZ_BEATPAD	0x4540
 #define USB_DEVICE_ID_MADCATZ_RAT5	0x1705
 #define USB_DEVICE_ID_MADCATZ_RAT9	0x1709
+#define USB_DEVICE_ID_MADCATZ_MMO7  0x1713
 
 #define USB_VENDOR_ID_MCC		0x09db
 #define USB_DEVICE_ID_MCC_PMD1024LS	0x0076
@@ -833,8 +863,11 @@
 #define USB_DEVICE_ID_MS_TOUCH_COVER_2   0x07a7
 #define USB_DEVICE_ID_MS_TYPE_COVER_2    0x07a9
 #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
+#define USB_DEVICE_ID_MS_SURFACE3_COVER		0x07de
 #define USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER	0x02fd
 #define USB_DEVICE_ID_MS_PIXART_MOUSE    0x00cb
+#define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS      0x02e0
+#define USB_DEVICE_ID_MS_MOUSE_0783      0x0783
 
 #define USB_VENDOR_ID_MOJO		0x8282
 #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201
@@ -907,6 +940,10 @@
 #define USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S	0x8003
 
 #define USB_VENDOR_ID_PLANTRONICS	0x047f
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3210_SERIES	0xc055
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES	0xc056
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES	0xc057
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES	0xc058
 
 #define USB_VENDOR_ID_PANASONIC		0x04da
 #define USB_DEVICE_ID_PANABOARD_UBT780	0x1044
@@ -959,6 +996,7 @@
 
 #define I2C_VENDOR_ID_RAYDIUM		0x2386
 #define I2C_PRODUCT_ID_RAYDIUM_4B33	0x4b33
+#define I2C_PRODUCT_ID_RAYDIUM_3118	0x3118
 
 #define USB_VENDOR_ID_RAZER            0x1532
 #define USB_DEVICE_ID_RAZER_BLADE_14   0x011D
@@ -988,6 +1026,8 @@
 #define USB_DEVICE_ID_ROCCAT_RYOS_MK_PRO	0x3232
 #define USB_DEVICE_ID_ROCCAT_SAVU	0x2d5a
 
+#define USB_VENDOR_ID_SAI		0x17dd
+
 #define USB_VENDOR_ID_SAITEK		0x06a3
 #define USB_DEVICE_ID_SAITEK_RUMBLEPAD	0xff17
 #define USB_DEVICE_ID_SAITEK_PS1000	0x0621
@@ -997,6 +1037,9 @@
 #define USB_DEVICE_ID_SAITEK_RAT9	0x0cfa
 #define USB_DEVICE_ID_SAITEK_MMO7	0x0cd0
 #define USB_DEVICE_ID_SAITEK_X52	0x075c
+#define USB_DEVICE_ID_SAITEK_X52_2	0x0255
+#define USB_DEVICE_ID_SAITEK_X52_PRO	0x0762
+#define USB_DEVICE_ID_SAITEK_X65	0x0b6a
 
 #define USB_VENDOR_ID_SAMSUNG		0x0419
 #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE	0x0001
@@ -1082,6 +1125,9 @@
 #define USB_DEVICE_ID_SYMBOL_SCANNER_2	0x1300
 #define USB_DEVICE_ID_SYMBOL_SCANNER_3	0x1200
 
+#define I2C_VENDOR_ID_SYNAPTICS     0x06cb
+#define I2C_PRODUCT_ID_SYNAPTICS_SYNA2393   0x7a13
+
 #define USB_VENDOR_ID_SYNAPTICS		0x06cb
 #define USB_DEVICE_ID_SYNAPTICS_TP	0x0001
 #define USB_DEVICE_ID_SYNAPTICS_INT_TP	0x0002
@@ -1096,7 +1142,12 @@
 #define USB_DEVICE_ID_SYNAPTICS_LTS2	0x1d10
 #define USB_DEVICE_ID_SYNAPTICS_HD	0x0ac3
 #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD	0x1ac3
+#define USB_DEVICE_ID_SYNAPTICS_DELL_K12A	0x2819
+#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012	0x2968
 #define USB_DEVICE_ID_SYNAPTICS_TP_V103	0x5710
+#define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1002	0x73f4
+#define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003	0x73f5
+#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_017	0x73f6
 #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5	0x81a7
 
 #define USB_VENDOR_ID_TEXAS_INSTRUMENTS	0x2047
@@ -1135,6 +1186,9 @@
 #define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882	0x8882
 #define USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883	0x8883
 
+#define USB_VENDOR_ID_TRUST             0x145f
+#define USB_DEVICE_ID_TRUST_PANORA_TABLET   0x0212
+
 #define USB_VENDOR_ID_TURBOX		0x062a
 #define USB_DEVICE_ID_TURBOX_KEYBOARD	0x0201
 #define USB_DEVICE_ID_ASUS_MD_5110	0x5110
@@ -1247,6 +1301,7 @@
 
 #define USB_VENDOR_ID_PRIMAX	0x0461
 #define USB_DEVICE_ID_PRIMAX_MOUSE_4D22	0x4d22
+#define USB_DEVICE_ID_PRIMAX_MOUSE_4E2A	0x4e2a
 #define USB_DEVICE_ID_PRIMAX_KEYBOARD	0x4e05
 #define USB_DEVICE_ID_PRIMAX_REZEL	0x4e72
 #define USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F	0x4d0f
@@ -1266,6 +1321,8 @@
 
 #define USB_VENDOR_ID_UGTIZER			0x2179
 #define USB_DEVICE_ID_UGTIZER_TABLET_GP0610	0x0053
+#define USB_DEVICE_ID_UGTIZER_TABLET_GT5040	0x0077
+#define USB_DEVICE_ID_UGTIZER_TABLET_WP5540	0x0004
 
 #define USB_VENDOR_ID_VIEWSONIC			0x0543
 #define USB_DEVICE_ID_VIEWSONIC_PD1011		0xe621
--- linux-ein-5.4.0.orig/drivers/hid/hid-input.c
+++ linux-ein-5.4.0/drivers/hid/hid-input.c
@@ -319,6 +319,11 @@
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ASUSTEK,
 		USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD),
 	  HID_BATTERY_QUIRK_IGNORE },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH,
+		USB_DEVICE_ID_LOGITECH_DINOVO_EDGE_KBD),
+	  HID_BATTERY_QUIRK_IGNORE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN),
+	  HID_BATTERY_QUIRK_IGNORE },
 	{}
 };
 
@@ -350,13 +355,13 @@
 	u8 *buf;
 	int ret;
 
-	buf = kmalloc(2, GFP_KERNEL);
+	buf = kmalloc(4, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
-	ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 2,
+	ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 4,
 				 dev->battery_report_type, HID_REQ_GET_REPORT);
-	if (ret != 2) {
+	if (ret < 2) {
 		kfree(buf);
 		return -ENODATA;
 	}
@@ -410,8 +415,6 @@
 
 		if (dev->battery_status == HID_BATTERY_UNKNOWN)
 			val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
-		else if (dev->battery_capacity == 100)
-			val->intval = POWER_SUPPLY_STATUS_FULL;
 		else
 			val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
 		break;
@@ -668,6 +671,14 @@
 			break;
 		}
 
+		if ((usage->hid & 0xf0) == 0xa0) {	/* SystemControl */
+			switch (usage->hid & 0xf) {
+			case 0x9: map_key_clear(KEY_MICMUTE); break;
+			default: goto ignore;
+			}
+			break;
+		}
+
 		if ((usage->hid & 0xf0) == 0xb0) {	/* SC - Display */
 			switch (usage->hid & 0xf) {
 			case 0x05: map_key_clear(KEY_SWITCHVIDEOMODE); break;
@@ -797,7 +808,7 @@
 		case 0x3b: /* Battery Strength */
 			hidinput_setup_battery(device, HID_INPUT_REPORT, field);
 			usage->type = EV_PWR;
-			goto ignore;
+			return;
 
 		case 0x3c: /* Invert */
 			map_key_clear(BTN_TOOL_RUBBER);
@@ -952,6 +963,10 @@
 
 		case 0x0cd: map_key_clear(KEY_PLAYPAUSE);	break;
 		case 0x0cf: map_key_clear(KEY_VOICECOMMAND);	break;
+
+		case 0x0d8: map_key_clear(KEY_DICTATE);		break;
+		case 0x0d9: map_key_clear(KEY_EMOJI_PICKER);	break;
+
 		case 0x0e0: map_abs_clear(ABS_VOLUME);		break;
 		case 0x0e2: map_key_clear(KEY_MUTE);		break;
 		case 0x0e5: map_key_clear(KEY_BASSBOOST);	break;
@@ -1041,6 +1056,8 @@
 
 		case 0x29d: map_key_clear(KEY_KBD_LAYOUT_NEXT);	break;
 
+		case 0x2a2: map_key_clear(KEY_ALL_APPLICATIONS);	break;
+
 		case 0x2c7: map_key_clear(KEY_KBDINPUTASSIST_PREV);		break;
 		case 0x2c8: map_key_clear(KEY_KBDINPUTASSIST_NEXT);		break;
 		case 0x2c9: map_key_clear(KEY_KBDINPUTASSIST_PREVGROUP);		break;
@@ -1059,7 +1076,7 @@
 		case HID_DC_BATTERYSTRENGTH:
 			hidinput_setup_battery(device, HID_INPUT_REPORT, field);
 			usage->type = EV_PWR;
-			goto ignore;
+			return;
 		}
 		goto unknown;
 
@@ -1132,9 +1149,19 @@
 	}
 
 mapped:
-	if (device->driver->input_mapped && device->driver->input_mapped(device,
-				hidinput, field, usage, &bit, &max) < 0)
-		goto ignore;
+	/* Mapping failed, bail out */
+	if (!bit)
+		return;
+
+	if (device->driver->input_mapped &&
+	    device->driver->input_mapped(device, hidinput, field, usage,
+					 &bit, &max) < 0) {
+		/*
+		 * The driver indicated that no further generic handling
+		 * of the usage is desired.
+		 */
+		return;
+	}
 
 	set_bit(usage->type, input->evbit);
 
@@ -1215,9 +1242,11 @@
 		set_bit(MSC_SCAN, input->mscbit);
 	}
 
-ignore:
 	return;
 
+ignore:
+	usage->type = 0;
+	usage->code = 0;
 }
 
 static void hidinput_handle_scroll(struct hid_usage *usage,
@@ -1270,6 +1299,12 @@
 
 	input = field->hidinput->input;
 
+	if (usage->type == EV_ABS &&
+	    (((*quirks & HID_QUIRK_X_INVERT) && usage->code == ABS_X) ||
+	     ((*quirks & HID_QUIRK_Y_INVERT) && usage->code == ABS_Y))) {
+		value = field->logical_maximum - value;
+	}
+
 	if (usage->hat_min < usage->hat_max || usage->hat_dir) {
 		int hat_dir = usage->hat_dir;
 		if (!hat_dir)
--- linux-ein-5.4.0.orig/drivers/hid/hid-ite.c
+++ linux-ein-5.4.0/drivers/hid/hid-ite.c
@@ -11,6 +11,59 @@
 
 #include "hid-ids.h"
 
+#define QUIRK_TOUCHPAD_ON_OFF_REPORT		BIT(0)
+
+static __u8 *ite_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize)
+{
+	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
+
+	if (quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) {
+		/* For Acer Aspire Switch 10 SW5-012 keyboard-dock */
+		if (*rsize == 188 && rdesc[162] == 0x81 && rdesc[163] == 0x02) {
+			hid_info(hdev, "Fixing up Acer Sw5-012 ITE keyboard report descriptor\n");
+			rdesc[163] = HID_MAIN_ITEM_RELATIVE;
+		}
+		/* For Acer One S1002/S1003 keyboard-dock */
+		if (*rsize == 188 && rdesc[185] == 0x81 && rdesc[186] == 0x02) {
+			hid_info(hdev, "Fixing up Acer S1002/S1003 ITE keyboard report descriptor\n");
+			rdesc[186] = HID_MAIN_ITEM_RELATIVE;
+		}
+		/* For Acer Aspire Switch 10E (SW3-016) keyboard-dock */
+		if (*rsize == 210 && rdesc[184] == 0x81 && rdesc[185] == 0x02) {
+			hid_info(hdev, "Fixing up Acer Aspire Switch 10E (SW3-016) ITE keyboard report descriptor\n");
+			rdesc[185] = HID_MAIN_ITEM_RELATIVE;
+		}
+	}
+
+	return rdesc;
+}
+
+static int ite_input_mapping(struct hid_device *hdev,
+		struct hid_input *hi, struct hid_field *field,
+		struct hid_usage *usage, unsigned long **bit,
+		int *max)
+{
+
+	unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
+
+	if ((quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) &&
+	    (usage->hid & HID_USAGE_PAGE) == 0x00880000) {
+		if (usage->hid == 0x00880078) {
+			/* Touchpad on, userspace expects F22 for this */
+			hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_F22);
+			return 1;
+		}
+		if (usage->hid == 0x00880079) {
+			/* Touchpad off, userspace expects F23 for this */
+			hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_F23);
+			return 1;
+		}
+		return -1;
+	}
+
+	return 0;
+}
+
 static int ite_event(struct hid_device *hdev, struct hid_field *field,
 		     struct hid_usage *usage, __s32 value)
 {
@@ -37,9 +90,42 @@
 	return 0;
 }
 
+static int ite_probe(struct hid_device *hdev, const struct hid_device_id *id)
+{
+	int ret;
+
+	hid_set_drvdata(hdev, (void *)id->driver_data);
+
+	ret = hid_open_report(hdev);
+	if (ret)
+		return ret;
+
+	return hid_hw_start(hdev, HID_CONNECT_DEFAULT);
+}
+
 static const struct hid_device_id ite_devices[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_258A, USB_DEVICE_ID_258A_6A88) },
+	/* ITE8595 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_SYNAPTICS,
+		     USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012),
+	  .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT },
+	/* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_SYNAPTICS,
+		     USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1002),
+	  .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT },
+	/* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_SYNAPTICS,
+		     USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003),
+	  .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT },
+	/* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_SYNAPTICS,
+		     USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_017),
+	  .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ite_devices);
@@ -47,6 +133,9 @@
 static struct hid_driver ite_driver = {
 	.name = "itetech",
 	.id_table = ite_devices,
+	.probe = ite_probe,
+	.report_fixup = ite_report_fixup,
+	.input_mapping = ite_input_mapping,
 	.event = ite_event,
 };
 module_hid_driver(ite_driver);
--- linux-ein-5.4.0.orig/drivers/hid/hid-led.c
+++ linux-ein-5.4.0/drivers/hid/hid-led.c
@@ -366,7 +366,7 @@
 		.type = DREAM_CHEEKY,
 		.name = "Dream Cheeky Webmail Notifier",
 		.short_name = "dream_cheeky",
-		.max_brightness = 31,
+		.max_brightness = 63,
 		.num_leds = 1,
 		.report_size = 9,
 		.report_type = RAW_REQUEST,
--- linux-ein-5.4.0.orig/drivers/hid/hid-lg.c
+++ linux-ein-5.4.0/drivers/hid/hid-lg.c
@@ -769,12 +769,18 @@
 
 static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id)
 {
-	struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
-	__u8 iface_num = iface->cur_altsetting->desc.bInterfaceNumber;
+	struct usb_interface *iface;
+	__u8 iface_num;
 	unsigned int connect_mask = HID_CONNECT_DEFAULT;
 	struct lg_drv_data *drv_data;
 	int ret;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
+	iface = to_usb_interface(hdev->dev.parent);
+	iface_num = iface->cur_altsetting->desc.bInterfaceNumber;
+
 	/* G29 only work with the 1st interface */
 	if ((hdev->product == USB_DEVICE_ID_LOGITECH_G29_WHEEL) &&
 	    (iface_num != 0)) {
--- linux-ein-5.4.0.orig/drivers/hid/hid-lg4ff.c
+++ linux-ein-5.4.0/drivers/hid/hid-lg4ff.c
@@ -872,6 +872,12 @@
 		return -ENOMEM;
 
 	i = strlen(lbuf);
+
+	if (i == 0) {
+		kfree(lbuf);
+		return -EINVAL;
+	}
+
 	if (lbuf[i-1] == '\n') {
 		if (i == 1) {
 			kfree(lbuf);
--- linux-ein-5.4.0.orig/drivers/hid/hid-logitech-dj.c
+++ linux-ein-5.4.0/drivers/hid/hid-logitech-dj.c
@@ -328,7 +328,7 @@
 	0x25, 0x01,		/*      LOGICAL_MAX (1)                 */
 	0x75, 0x01,		/*      REPORT_SIZE (1)                 */
 	0x95, 0x04,		/*      REPORT_COUNT (4)                */
-	0x81, 0x06,		/*      INPUT                           */
+	0x81, 0x02,		/*      INPUT (Data,Var,Abs)            */
 	0xC0,			/*    END_COLLECTION                    */
 	0xC0,			/*  END_COLLECTION                      */
 };
@@ -866,11 +866,24 @@
 	schedule_work(&djrcv_dev->work);
 }
 
+/*
+ * Some quad/bluetooth keyboards have a builtin touchpad in this case we see
+ * only 1 paired device with a device_type of REPORT_TYPE_KEYBOARD. For the
+ * touchpad to work we must also forward mouse input reports to the dj_hiddev
+ * created for the keyboard (instead of forwarding them to a second paired
+ * device with a device_type of REPORT_TYPE_MOUSE as we normally would).
+ */
+static const u16 kbd_builtin_touchpad_ids[] = {
+	0xb309, /* Dinovo Edge */
+	0xb30c, /* Dinovo Mini */
+};
+
 static void logi_hidpp_dev_conn_notif_equad(struct hid_device *hdev,
 					    struct hidpp_event *hidpp_report,
 					    struct dj_workitem *workitem)
 {
 	struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
+	int i, id;
 
 	workitem->type = WORKITEM_TYPE_PAIRED;
 	workitem->device_type = hidpp_report->params[HIDPP_PARAM_DEVICE_INFO] &
@@ -882,6 +895,13 @@
 		workitem->reports_supported |= STD_KEYBOARD | MULTIMEDIA |
 					       POWER_KEYS | MEDIA_CENTER |
 					       HIDPP;
+		id = (workitem->quad_id_msb << 8) | workitem->quad_id_lsb;
+		for (i = 0; i < ARRAY_SIZE(kbd_builtin_touchpad_ids); i++) {
+			if (id == kbd_builtin_touchpad_ids[i]) {
+				workitem->reports_supported |= STD_MOUSE;
+				break;
+			}
+		}
 		break;
 	case REPORT_TYPE_MOUSE:
 		workitem->reports_supported |= STD_MOUSE | HIDPP;
@@ -960,6 +980,7 @@
 	case 0x07:
 		device_type = "eQUAD step 4 Gaming";
 		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
+		workitem.reports_supported |= STD_KEYBOARD;
 		break;
 	case 0x08:
 		device_type = "eQUAD step 4 for gamepads";
@@ -974,7 +995,13 @@
 		workitem.reports_supported |= STD_KEYBOARD;
 		break;
 	case 0x0d:
-		device_type = "eQUAD Lightspeed 1_1";
+		device_type = "eQUAD Lightspeed 1.1";
+		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
+		workitem.reports_supported |= STD_KEYBOARD;
+		break;
+	case 0x0f:
+	case 0x11:
+		device_type = "eQUAD Lightspeed 1.2";
 		logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
 		workitem.reports_supported |= STD_KEYBOARD;
 		break;
@@ -1185,6 +1212,9 @@
 		 * 50 msec should gives enough time to the receiver to be ready.
 		 */
 		msleep(50);
+
+		if (retval)
+			return retval;
 	}
 
 	/*
@@ -1206,7 +1236,7 @@
 	buf[5] = 0x09;
 	buf[6] = 0x00;
 
-	hid_hw_raw_request(hdev, REPORT_ID_HIDPP_SHORT, buf,
+	retval = hid_hw_raw_request(hdev, REPORT_ID_HIDPP_SHORT, buf,
 			HIDPP_REPORT_SHORT_LENGTH, HID_OUTPUT_REPORT,
 			HID_REQ_SET_REPORT);
 
@@ -1660,7 +1690,7 @@
 	case recvr_type_27mhz:		no_dj_interfaces = 2; break;
 	case recvr_type_bluetooth:	no_dj_interfaces = 2; break;
 	}
-	if (hid_is_using_ll_driver(hdev, &usb_hid_driver)) {
+	if (hid_is_usb(hdev)) {
 		intf = to_usb_interface(hdev->dev.parent);
 		if (intf && intf->altsetting->desc.bInterfaceNumber >=
 							no_dj_interfaces) {
@@ -1842,6 +1872,10 @@
 	  HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
 		0xc531),
 	 .driver_data = recvr_type_gaming_hidpp},
+	{ /* Logitech G602 receiver (0xc537) */
+	  HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
+		0xc537),
+	 .driver_data = recvr_type_gaming_hidpp},
 	{ /* Logitech lightspeed receiver (0xc539) */
 	  HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
 		USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1),
--- linux-ein-5.4.0.orig/drivers/hid/hid-logitech-hidpp.c
+++ linux-ein-5.4.0/drivers/hid/hid-logitech-hidpp.c
@@ -88,6 +88,8 @@
 #define HIDPP_CAPABILITY_BATTERY_MILEAGE	BIT(2)
 #define HIDPP_CAPABILITY_BATTERY_LEVEL_STATUS	BIT(3)
 
+#define lg_map_key_clear(c)  hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
+
 /*
  * There are two hidpp protocols in use, the first version hidpp10 is known
  * as register access protocol or RAP, the second version hidpp20 is known as
@@ -807,8 +809,7 @@
 	if (ret)
 		return ret;
 
-	snprintf(hdev->uniq, sizeof(hdev->uniq), "%04x-%4phD",
-		 hdev->product, &serial);
+	snprintf(hdev->uniq, sizeof(hdev->uniq), "%4phD", &serial);
 	dbg_hid("HID++ Unifying: Got serial: %s\n", hdev->uniq);
 
 	name = hidpp_unifying_get_name(hidpp);
@@ -902,6 +903,54 @@
 }
 
 /* -------------------------------------------------------------------------- */
+/* 0x0003: Device Information                                                 */
+/* -------------------------------------------------------------------------- */
+
+#define HIDPP_PAGE_DEVICE_INFORMATION			0x0003
+
+#define CMD_GET_DEVICE_INFO				0x00
+
+static int hidpp_get_serial(struct hidpp_device *hidpp, u32 *serial)
+{
+	struct hidpp_report response;
+	u8 feature_type;
+	u8 feature_index;
+	int ret;
+
+	ret = hidpp_root_get_feature(hidpp, HIDPP_PAGE_DEVICE_INFORMATION,
+				     &feature_index,
+				     &feature_type);
+	if (ret)
+		return ret;
+
+	ret = hidpp_send_fap_command_sync(hidpp, feature_index,
+					  CMD_GET_DEVICE_INFO,
+					  NULL, 0, &response);
+	if (ret)
+		return ret;
+
+	/* See hidpp_unifying_get_serial() */
+	*serial = *((u32 *)&response.rap.params[1]);
+	return 0;
+}
+
+static int hidpp_serial_init(struct hidpp_device *hidpp)
+{
+	struct hid_device *hdev = hidpp->hid_dev;
+	u32 serial;
+	int ret;
+
+	ret = hidpp_get_serial(hidpp, &serial);
+	if (ret)
+		return ret;
+
+	snprintf(hdev->uniq, sizeof(hdev->uniq), "%4phD", &serial);
+	dbg_hid("HID++ DeviceInformation: Got serial: %s\n", hdev->uniq);
+
+	return 0;
+}
+
+/* -------------------------------------------------------------------------- */
 /* 0x0005: GetDeviceNameType                                                  */
 /* -------------------------------------------------------------------------- */
 
@@ -1102,6 +1151,9 @@
 	ret = hidpp_send_fap_command_sync(hidpp, feature_index,
 					  CMD_BATTERY_LEVEL_STATUS_GET_BATTERY_LEVEL_STATUS,
 					  NULL, 0, &response);
+	/* Ignore these intermittent errors */
+	if (ret == HIDPP_ERROR_RESOURCE_ERROR)
+		return -EIO;
 	if (ret > 0) {
 		hid_err(hidpp->hid_dev, "%s: received protocol error 0x%02x\n",
 			__func__, ret);
@@ -2766,6 +2818,26 @@
 }
 
 /* -------------------------------------------------------------------------- */
+/* Logitech Dinovo Mini keyboard with builtin touchpad                        */
+/* -------------------------------------------------------------------------- */
+#define DINOVO_MINI_PRODUCT_ID		0xb30c
+
+static int lg_dinovo_input_mapping(struct hid_device *hdev, struct hid_input *hi,
+		struct hid_field *field, struct hid_usage *usage,
+		unsigned long **bit, int *max)
+{
+	if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR)
+		return 0;
+
+	switch (usage->hid & HID_USAGE) {
+	case 0x00d: lg_map_key_clear(KEY_MEDIA);	break;
+	default:
+		return 0;
+	}
+	return 1;
+}
+
+/* -------------------------------------------------------------------------- */
 /* HID++1.0 devices which use HID++ reports for their wheels                  */
 /* -------------------------------------------------------------------------- */
 static int hidpp10_wheel_connect(struct hidpp_device *hidpp)
@@ -2961,7 +3033,7 @@
 		multiplier = 1;
 
 	hidpp->vertical_wheel_counter.wheel_multiplier = multiplier;
-	hid_info(hidpp->hid_dev, "multiplier = %d\n", multiplier);
+	hid_dbg(hidpp->hid_dev, "wheel multiplier = %d\n", multiplier);
 	return 0;
 }
 
@@ -3000,6 +3072,9 @@
 			field->application != HID_GD_MOUSE)
 		return m560_input_mapping(hdev, hi, field, usage, bit, max);
 
+	if (hdev->product == DINOVO_MINI_PRODUCT_ID)
+		return lg_dinovo_input_mapping(hdev, hi, field, usage, bit, max);
+
 	return 0;
 }
 
@@ -3623,6 +3698,8 @@
 
 	if (hidpp->quirks & HIDPP_QUIRK_UNIFYING)
 		hidpp_unifying_init(hidpp);
+	else if (hid_is_usb(hidpp->hid_dev))
+		hidpp_serial_init(hidpp);
 
 	connected = hidpp_root_get_protocol_version(hidpp) == 0;
 	atomic_set(&hidpp->connected, connected);
@@ -3646,7 +3723,8 @@
 			goto hid_hw_init_fail;
 	}
 
-	hidpp_connect_event(hidpp);
+	schedule_work(&hidpp->work);
+	flush_work(&hidpp->work);
 
 	/* Reset the HID node state */
 	hid_device_io_stop(hdev);
@@ -3738,6 +3816,7 @@
 	  LDJ_DEVICE(0x405e), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ /* Mouse Logitech MX Anywhere 2 */
 	  LDJ_DEVICE(0x404a), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
+	{ LDJ_DEVICE(0x4072), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb013), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb018), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
 	{ LDJ_DEVICE(0xb01f), .driver_data = HIDPP_QUIRK_HI_RES_SCROLL_X2121 },
@@ -3760,6 +3839,9 @@
 	{ /* Keyboard MX5000 (Bluetooth-receiver in HID proxy mode) */
 	  LDJ_DEVICE(0xb305),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
+	{ /* Dinovo Edge (Bluetooth-receiver in HID proxy mode) */
+	  LDJ_DEVICE(0xb309),
+	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
 	{ /* Keyboard MX5500 (Bluetooth-receiver in HID proxy mode) */
 	  LDJ_DEVICE(0xb30b),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
@@ -3802,6 +3884,9 @@
 	{ /* MX5000 keyboard over Bluetooth */
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb305),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
+	{ /* Dinovo Edge keyboard over Bluetooth */
+	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb309),
+	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
 	{ /* MX5500 keyboard over Bluetooth */
 	  HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb30b),
 	  .driver_data = HIDPP_QUIRK_HIDPP_CONSUMER_VENDOR_KEYS },
--- linux-ein-5.4.0.orig/drivers/hid/hid-magicmouse.c
+++ linux-ein-5.4.0/drivers/hid/hid-magicmouse.c
@@ -387,7 +387,7 @@
 		magicmouse_raw_event(hdev, report, data + 2, data[1]);
 		magicmouse_raw_event(hdev, report, data + 2 + data[1],
 			size - 2 - data[1]);
-		break;
+		return 0;
 	default:
 		return 0;
 	}
@@ -535,6 +535,12 @@
 		__set_bit(MSC_RAW, input->mscbit);
 	}
 
+	/*
+	 * hid-input may mark device as using autorepeat, but neither
+	 * the trackpad, nor the mouse actually want it.
+	 */
+	__clear_bit(EV_REP, input->evbit);
+
 	return 0;
 }
 
@@ -591,7 +597,7 @@
 	if (id->vendor == USB_VENDOR_ID_APPLE &&
 	    id->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 &&
 	    hdev->type != HID_TYPE_USBMOUSE)
-		return 0;
+		return -ENODEV;
 
 	msc = devm_kzalloc(&hdev->dev, sizeof(*msc), GFP_KERNEL);
 	if (msc == NULL) {
--- linux-ein-5.4.0.orig/drivers/hid/hid-mf.c
+++ linux-ein-5.4.0/drivers/hid/hid-mf.c
@@ -153,6 +153,8 @@
 		.driver_data = HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2),
 		.driver_data = 0 }, /* No quirk required */
+	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3),
+		.driver_data = HID_QUIRK_MULTI_INPUT },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, mf_devices);
--- linux-ein-5.4.0.orig/drivers/hid/hid-microsoft.c
+++ linux-ein-5.4.0/drivers/hid/hid-microsoft.c
@@ -451,6 +451,8 @@
 		.driver_data = MS_SURFACE_DIAL },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER),
 		.driver_data = MS_QUIRK_FF },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS),
+		.driver_data = MS_QUIRK_FF },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ms_devices);
--- linux-ein-5.4.0.orig/drivers/hid/hid-multitouch.c
+++ linux-ein-5.4.0/drivers/hid/hid-multitouch.c
@@ -69,6 +69,7 @@
 #define MT_QUIRK_ASUS_CUSTOM_UP		BIT(17)
 #define MT_QUIRK_WIN8_PTP_BUTTONS	BIT(18)
 #define MT_QUIRK_SEPARATE_APP_REPORT	BIT(19)
+#define MT_QUIRK_FORCE_MULTI_INPUT	BIT(20)
 
 #define MT_INPUTMODE_TOUCHSCREEN	0x02
 #define MT_INPUTMODE_TOUCHPAD		0x03
@@ -189,6 +190,7 @@
 #define MT_CLS_WIN_8				0x0012
 #define MT_CLS_EXPORT_ALL_INPUTS		0x0013
 #define MT_CLS_WIN_8_DUAL			0x0014
+#define MT_CLS_WIN_8_FORCE_MULTI_INPUT		0x0015
 
 /* vendor specific classes */
 #define MT_CLS_3M				0x0101
@@ -279,6 +281,15 @@
 			MT_QUIRK_CONTACT_CNT_ACCURATE |
 			MT_QUIRK_WIN8_PTP_BUTTONS,
 		.export_all_inputs = true },
+	{ .name = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		.quirks = MT_QUIRK_ALWAYS_VALID |
+			MT_QUIRK_IGNORE_DUPLICATES |
+			MT_QUIRK_HOVERING |
+			MT_QUIRK_CONTACT_CNT_ACCURATE |
+			MT_QUIRK_STICKY_FINGERS |
+			MT_QUIRK_WIN8_PTP_BUTTONS |
+			MT_QUIRK_FORCE_MULTI_INPUT,
+		.export_all_inputs = true },
 
 	/*
 	 * vendor specific classes
@@ -600,9 +611,13 @@
 		if (!(HID_MAIN_ITEM_VARIABLE & field->flags))
 			continue;
 
-		for (n = 0; n < field->report_count; n++) {
-			if (field->usage[n].hid == HID_DG_CONTACTID)
-				rdata->is_mt_collection = true;
+		if (field->logical == HID_DG_FINGER || td->hdev->group != HID_GROUP_MULTITOUCH_WIN_8) {
+			for (n = 0; n < field->report_count; n++) {
+				if (field->usage[n].hid == HID_DG_CONTACTID) {
+					rdata->is_mt_collection = true;
+					break;
+				}
+			}
 		}
 	}
 
@@ -853,6 +868,8 @@
 			code = BTN_0  + ((usage->hid - 1) & HID_USAGE);
 
 		hid_map_usage(hi, usage, bit, max, EV_KEY, code);
+		if (!*bit)
+			return -1;
 		input_set_capability(hi->input, EV_KEY, code);
 		return 1;
 
@@ -1019,7 +1036,7 @@
 		tool = MT_TOOL_DIAL;
 	else if (unlikely(!confidence_state)) {
 		tool = MT_TOOL_PALM;
-		if (!active &&
+		if (!active && mt &&
 		    input_mt_is_active(&mt->slots[slotnum])) {
 			/*
 			 * The non-confidence was reported for
@@ -1145,7 +1162,7 @@
 	int contact_count = -1;
 
 	/* sticky fingers release in progress, abort */
-	if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
+	if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
 		return;
 
 	scantime = *app->scantime;
@@ -1226,7 +1243,7 @@
 			del_timer(&td->release_timer);
 	}
 
-	clear_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
+	clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
 }
 
 static int mt_touch_input_configured(struct hid_device *hdev,
@@ -1531,7 +1548,6 @@
 static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
 {
 	struct mt_device *td = hid_get_drvdata(hdev);
-	char *name;
 	const char *suffix = NULL;
 	struct mt_report_data *rdata;
 	struct mt_application *mt_application = NULL;
@@ -1570,13 +1586,13 @@
 		/* we do not set suffix = "Touchscreen" */
 		hi->input->name = hdev->name;
 		break;
-	case HID_DG_STYLUS:
-		/* force BTN_STYLUS to allow tablet matching in udev */
-		__set_bit(BTN_STYLUS, hi->input->keybit);
-		break;
 	case HID_VD_ASUS_CUSTOM_MEDIA_KEYS:
 		suffix = "Custom Media Keys";
 		break;
+	case HID_DG_STYLUS:
+		/* force BTN_STYLUS to allow tablet matching in udev */
+		__set_bit(BTN_STYLUS, hi->input->keybit);
+		fallthrough;
 	case HID_DG_PEN:
 		suffix = "Stylus";
 		break;
@@ -1585,15 +1601,9 @@
 		break;
 	}
 
-	if (suffix) {
-		name = devm_kzalloc(&hi->input->dev,
-				    strlen(hdev->name) + strlen(suffix) + 2,
-				    GFP_KERNEL);
-		if (name) {
-			sprintf(name, "%s %s", hdev->name, suffix);
-			hi->input->name = name;
-		}
-	}
+	if (suffix)
+		hi->input->name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
+						 "%s %s", hdev->name, suffix);
 
 	return 0;
 }
@@ -1663,11 +1673,11 @@
 	 * An input report came in just before we release the sticky fingers,
 	 * it will take care of the sticky fingers.
 	 */
-	if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
+	if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
 		return;
 	if (test_bit(MT_IO_FLAGS_PENDING_SLOTS, &td->mt_io_flags))
 		mt_release_contacts(hdev);
-	clear_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
+	clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
 }
 
 static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
@@ -1714,6 +1724,11 @@
 	if (id->group != HID_GROUP_MULTITOUCH_WIN_8)
 		hdev->quirks |= HID_QUIRK_MULTI_INPUT;
 
+	if (mtclass->quirks & MT_QUIRK_FORCE_MULTI_INPUT) {
+		hdev->quirks &= ~HID_QUIRK_INPUT_PER_APP;
+		hdev->quirks |= HID_QUIRK_MULTI_INPUT;
+	}
+
 	timer_setup(&td->release_timer, mt_expired_timeout, 0);
 
 	ret = hid_parse(hdev);
@@ -1922,6 +1937,18 @@
 	{ .driver_data = MT_CLS_EGALAX_SERIAL,
 		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
+	{ .driver_data = MT_CLS_EGALAX,
+		MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_C002) },
+
+	/* Elan devices */
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_ELAN, 0x313a) },
+
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_ELAN, 0x3148) },
 
 	/* Elitegroup panel */
 	{ .driver_data = MT_CLS_SERIAL,
@@ -1985,6 +2012,9 @@
 	{ .driver_data = MT_CLS_LG,
 		HID_USB_DEVICE(USB_VENDOR_ID_LG,
 			USB_DEVICE_ID_LG_MELFAS_MT) },
+	{ .driver_data = MT_CLS_LG,
+		HID_DEVICE(BUS_I2C, HID_GROUP_GENERIC,
+			USB_VENDOR_ID_LG, I2C_DEVICE_ID_LG_7010) },
 
 	/* MosArt panels */
 	{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
@@ -2050,6 +2080,19 @@
 		MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
 			USB_DEVICE_ID_MTP_STM)},
 
+	/* Synaptics devices */
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_SYNAPTICS, 0xcd7e) },
+
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_SYNAPTICS, 0xce08) },
+
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_SYNAPTICS, 0xce09) },
+
 	/* TopSeed panels */
 	{ .driver_data = MT_CLS_TOPSEED,
 		MT_USB_DEVICE(USB_VENDOR_ID_TOPSEED2,
@@ -2116,6 +2159,9 @@
 	{ .driver_data = MT_CLS_GOOGLE,
 		HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
 			USB_DEVICE_ID_GOOGLE_TOUCH_ROSE) },
+	{ .driver_data = MT_CLS_GOOGLE,
+		HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_GOOGLE,
+			USB_DEVICE_ID_GOOGLE_WHISKERS) },
 
 	/* Generic MT device */
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_MULTITOUCH, HID_ANY_ID, HID_ANY_ID) },
--- linux-ein-5.4.0.orig/drivers/hid/hid-plantronics.c
+++ linux-ein-5.4.0/drivers/hid/hid-plantronics.c
@@ -13,6 +13,7 @@
 
 #include <linux/hid.h>
 #include <linux/module.h>
+#include <linux/jiffies.h>
 
 #define PLT_HID_1_0_PAGE	0xffa00000
 #define PLT_HID_2_0_PAGE	0xffa20000
@@ -36,6 +37,16 @@
 #define PLT_ALLOW_CONSUMER (field->application == HID_CP_CONSUMERCONTROL && \
 			    (usage->hid & HID_USAGE_PAGE) == HID_UP_CONSUMER)
 
+#define PLT_QUIRK_DOUBLE_VOLUME_KEYS BIT(0)
+
+#define PLT_DOUBLE_KEY_TIMEOUT 5 /* ms */
+
+struct plt_drv_data {
+	unsigned long device_type;
+	unsigned long last_volume_key_ts;
+	u32 quirks;
+};
+
 static int plantronics_input_mapping(struct hid_device *hdev,
 				     struct hid_input *hi,
 				     struct hid_field *field,
@@ -43,7 +54,8 @@
 				     unsigned long **bit, int *max)
 {
 	unsigned short mapped_key;
-	unsigned long plt_type = (unsigned long)hid_get_drvdata(hdev);
+	struct plt_drv_data *drv_data = hid_get_drvdata(hdev);
+	unsigned long plt_type = drv_data->device_type;
 
 	/* special case for PTT products */
 	if (field->application == HID_GD_JOYSTICK)
@@ -105,6 +117,30 @@
 	return 1;
 }
 
+static int plantronics_event(struct hid_device *hdev, struct hid_field *field,
+			     struct hid_usage *usage, __s32 value)
+{
+	struct plt_drv_data *drv_data = hid_get_drvdata(hdev);
+
+	if (drv_data->quirks & PLT_QUIRK_DOUBLE_VOLUME_KEYS) {
+		unsigned long prev_ts, cur_ts;
+
+		/* Usages are filtered in plantronics_usages. */
+
+		if (!value) /* Handle key presses only. */
+			return 0;
+
+		prev_ts = drv_data->last_volume_key_ts;
+		cur_ts = jiffies;
+		if (jiffies_to_msecs(cur_ts - prev_ts) <= PLT_DOUBLE_KEY_TIMEOUT)
+			return 1; /* Ignore the repeated key. */
+
+		drv_data->last_volume_key_ts = cur_ts;
+	}
+
+	return 0;
+}
+
 static unsigned long plantronics_device_type(struct hid_device *hdev)
 {
 	unsigned i, col_page;
@@ -133,15 +169,24 @@
 static int plantronics_probe(struct hid_device *hdev,
 			     const struct hid_device_id *id)
 {
+	struct plt_drv_data *drv_data;
 	int ret;
 
+	drv_data = devm_kzalloc(&hdev->dev, sizeof(*drv_data), GFP_KERNEL);
+	if (!drv_data)
+		return -ENOMEM;
+
 	ret = hid_parse(hdev);
 	if (ret) {
 		hid_err(hdev, "parse failed\n");
 		goto err;
 	}
 
-	hid_set_drvdata(hdev, (void *)plantronics_device_type(hdev));
+	drv_data->device_type = plantronics_device_type(hdev);
+	drv_data->quirks = id->driver_data;
+	drv_data->last_volume_key_ts = jiffies - msecs_to_jiffies(PLT_DOUBLE_KEY_TIMEOUT);
+
+	hid_set_drvdata(hdev, drv_data);
 
 	ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT |
 		HID_CONNECT_HIDINPUT_FORCE | HID_CONNECT_HIDDEV_FORCE);
@@ -153,15 +198,35 @@
 }
 
 static const struct hid_device_id plantronics_devices[] = {
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3210_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, plantronics_devices);
 
+static const struct hid_usage_id plantronics_usages[] = {
+	{ HID_CP_VOLUMEUP, EV_KEY, HID_ANY_ID },
+	{ HID_CP_VOLUMEDOWN, EV_KEY, HID_ANY_ID },
+	{ HID_TERMINATOR, HID_TERMINATOR, HID_TERMINATOR }
+};
+
 static struct hid_driver plantronics_driver = {
 	.name = "plantronics",
 	.id_table = plantronics_devices,
+	.usage_table = plantronics_usages,
 	.input_mapping = plantronics_input_mapping,
+	.event = plantronics_event,
 	.probe = plantronics_probe,
 };
 module_hid_driver(plantronics_driver);
--- linux-ein-5.4.0.orig/drivers/hid/hid-prodikeys.c
+++ linux-ein-5.4.0/drivers/hid/hid-prodikeys.c
@@ -798,12 +798,18 @@
 static int pk_probe(struct hid_device *hdev, const struct hid_device_id *id)
 {
 	int ret;
-	struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
-	unsigned short ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
+	struct usb_interface *intf;
+	unsigned short ifnum;
 	unsigned long quirks = id->driver_data;
 	struct pk_device *pk;
 	struct pcmidi_snd *pm = NULL;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
+	intf = to_usb_interface(hdev->dev.parent);
+	ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
+
 	pk = kzalloc(sizeof(*pk), GFP_KERNEL);
 	if (pk == NULL) {
 		hid_err(hdev, "can't alloc descriptor\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-quirks.c
+++ linux-ein-5.4.0/drivers/hid/hid-quirks.c
@@ -72,6 +72,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_REDRAGON_SEYMUR2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1), HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER), HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET },
@@ -83,17 +84,25 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28), HID_QUIRK_NOGET },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_FUTABA, USB_DEVICE_ID_LED_DISPLAY), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_SAT_ADAPTOR), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD), HID_QUIRK_MULTI_INPUT },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_GV186),
+		HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_KISHI),
+		HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A), HID_QUIRK_ALWAYS_POLL },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_ELITE_PRESENTER_MOUSE_464A), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0941), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_1f4a), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6680), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X), HID_QUIRK_MULTI_INPUT },
@@ -102,6 +111,11 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_PENSKETCH_M912), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M406XE), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_OPTICAL_USB_MOUSE_600E), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C007), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C077), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS), HID_QUIRK_NOGET },
@@ -109,8 +123,10 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C05A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MCS, USB_DEVICE_ID_MCS_GAMEPADBLOCK), HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_MOUSE_0783), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PIXART_MOUSE), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE3_COVER), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_PRO_2), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TOUCH_COVER_2), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2), HID_QUIRK_NO_INIT_REPORTS },
@@ -132,6 +148,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_MOUSE_4D22), HID_QUIRK_ALWAYS_POLL },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_MOUSE_4E2A), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D65), HID_QUIRK_ALWAYS_POLL },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4E22), HID_QUIRK_ALWAYS_POLL },
@@ -144,6 +161,9 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_RETROUSB, USB_DEVICE_ID_RETROUSB_SNES_RETROPORT), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD), HID_QUIRK_BADPAD },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52_PRO), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X65), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD2), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB), HID_QUIRK_NOGET },
@@ -161,18 +181,23 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS2), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_QUAD_HD), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103), HID_QUIRK_NO_INIT_REPORTS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_DELL_K12A), HID_QUIRK_NO_INIT_REPORTS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD), HID_QUIRK_BADPAD },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882), HID_QUIRK_NOGET },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883), HID_QUIRK_NOGET },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_TRUST, USB_DEVICE_ID_TRUST_PANORA_TABLET), HID_QUIRK_MULTI_INPUT | HID_QUIRK_HIDINPUT_FORCE },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD), HID_QUIRK_NOGET },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_KNA5), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_TWA60), HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER, USB_DEVICE_ID_UGTIZER_TABLET_WP5540), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
 
 	{ 0 }
 };
@@ -395,9 +420,6 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2) },
 #endif
-#if IS_ENABLED(CONFIG_HID_ITE)
-	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
-#endif
 #if IS_ENABLED(CONFIG_HID_ICADE)
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ION, USB_DEVICE_ID_ICADE) },
 #endif
@@ -477,6 +499,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3) },
 #endif
 #if IS_ENABLED(CONFIG_HID_MICROSOFT)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500) },
@@ -595,6 +618,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_MMO7) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_RAT5) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_RAT9) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_MMO7) },
 #endif
 #if IS_ENABLED(CONFIG_HID_SAMSUNG)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
@@ -837,6 +861,7 @@
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PETZL, USB_DEVICE_ID_PETZL_HEADLAMP) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_POWERCOM, USB_DEVICE_ID_POWERCOM_UPS) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SAI, USB_DEVICE_ID_CYPRESS_HIDCOM) },
 #if IS_ENABLED(CONFIG_MOUSE_SYNAPTICS_USB)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_INT_TP) },
--- linux-ein-5.4.0.orig/drivers/hid/hid-rmi.c
+++ linux-ein-5.4.0/drivers/hid/hid-rmi.c
@@ -744,7 +744,8 @@
 {
 	struct rmi_data *hdata = hid_get_drvdata(hdev);
 
-	if (hdata->device_flags & RMI_DEVICE) {
+	if ((hdata->device_flags & RMI_DEVICE)
+	    && test_bit(RMI_STARTED, &hdata->flags)) {
 		clear_bit(RMI_STARTED, &hdata->flags);
 		cancel_work_sync(&hdata->reset_work);
 		rmi_unregister_transport_device(&hdata->xport);
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-arvo.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-arvo.c
@@ -344,6 +344,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-isku.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-isku.c
@@ -324,6 +324,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-kone.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-kone.c
@@ -294,31 +294,40 @@
 	struct kone_device *kone = hid_get_drvdata(dev_get_drvdata(dev));
 	struct usb_device *usb_dev = interface_to_usbdev(to_usb_interface(dev));
 	int retval = 0, difference, old_profile;
+	struct kone_settings *settings = (struct kone_settings *)buf;
 
 	/* I need to get my data in one piece */
 	if (off != 0 || count != sizeof(struct kone_settings))
 		return -EINVAL;
 
 	mutex_lock(&kone->kone_lock);
-	difference = memcmp(buf, &kone->settings, sizeof(struct kone_settings));
+	difference = memcmp(settings, &kone->settings,
+			    sizeof(struct kone_settings));
 	if (difference) {
-		retval = kone_set_settings(usb_dev,
-				(struct kone_settings const *)buf);
-		if (retval) {
-			mutex_unlock(&kone->kone_lock);
-			return retval;
+		if (settings->startup_profile < 1 ||
+		    settings->startup_profile > 5) {
+			retval = -EINVAL;
+			goto unlock;
 		}
 
+		retval = kone_set_settings(usb_dev, settings);
+		if (retval)
+			goto unlock;
+
 		old_profile = kone->settings.startup_profile;
-		memcpy(&kone->settings, buf, sizeof(struct kone_settings));
+		memcpy(&kone->settings, settings, sizeof(struct kone_settings));
 
 		kone_profile_activated(kone, kone->settings.startup_profile);
 
 		if (kone->settings.startup_profile != old_profile)
 			kone_profile_report(kone, kone->settings.startup_profile);
 	}
+unlock:
 	mutex_unlock(&kone->kone_lock);
 
+	if (retval)
+		return retval;
+
 	return sizeof(struct kone_settings);
 }
 static BIN_ATTR(settings, 0660, kone_sysfs_read_settings,
@@ -740,6 +749,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-koneplus.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-koneplus.c
@@ -431,6 +431,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-konepure.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-konepure.c
@@ -133,6 +133,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-kovaplus.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-kovaplus.c
@@ -501,6 +501,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-lua.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-lua.c
@@ -160,6 +160,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-pyra.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-pyra.c
@@ -449,6 +449,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-ryos.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-ryos.c
@@ -141,6 +141,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat-savu.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat-savu.c
@@ -113,6 +113,9 @@
 {
 	int retval;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	retval = hid_parse(hdev);
 	if (retval) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-roccat.c
+++ linux-ein-5.4.0/drivers/hid/hid-roccat.c
@@ -257,6 +257,8 @@
 	if (!new_value)
 		return -ENOMEM;
 
+	mutex_lock(&device->cbuf_lock);
+
 	report = &device->cbuf[device->cbuf_end];
 
 	/* passing NULL is safe */
@@ -276,6 +278,8 @@
 			reader->cbuf_start = (reader->cbuf_start + 1) % ROCCAT_CBUF_SIZE;
 	}
 
+	mutex_unlock(&device->cbuf_lock);
+
 	wake_up_interruptible(&device->wait);
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/hid/hid-saitek.c
+++ linux-ein-5.4.0/drivers/hid/hid-saitek.c
@@ -187,6 +187,8 @@
 		.driver_data = SAITEK_RELEASE_MODE_RAT7 },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_MMO7),
 		.driver_data = SAITEK_RELEASE_MODE_MMO7 },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_MMO7),
+		.driver_data = SAITEK_RELEASE_MODE_MMO7 },
 	{ }
 };
 
--- linux-ein-5.4.0.orig/drivers/hid/hid-samsung.c
+++ linux-ein-5.4.0/drivers/hid/hid-samsung.c
@@ -152,6 +152,9 @@
 	int ret;
 	unsigned int cmask = HID_CONNECT_DEFAULT;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	ret = hid_parse(hdev);
 	if (ret) {
 		hid_err(hdev, "parse failed\n");
--- linux-ein-5.4.0.orig/drivers/hid/hid-sensor-custom.c
+++ linux-ein-5.4.0/drivers/hid/hid-sensor-custom.c
@@ -59,7 +59,7 @@
 	u32 raw_len;
 } __packed;
 
-static struct attribute hid_custom_attrs[] = {
+static struct attribute hid_custom_attrs[HID_CUSTOM_TOTAL_ATTRS] = {
 	{.name = "name", .mode = S_IRUGO},
 	{.name = "units", .mode = S_IRUGO},
 	{.name = "unit-expo", .mode = S_IRUGO},
--- linux-ein-5.4.0.orig/drivers/hid/hid-sensor-hub.c
+++ linux-ein-5.4.0/drivers/hid/hid-sensor-hub.c
@@ -210,16 +210,21 @@
 	buffer_size = buffer_size / sizeof(__s32);
 	if (buffer_size) {
 		for (i = 0; i < buffer_size; ++i) {
-			hid_set_field(report->field[field_index], i,
-				      (__force __s32)cpu_to_le32(*buf32));
+			ret = hid_set_field(report->field[field_index], i,
+					    (__force __s32)cpu_to_le32(*buf32));
+			if (ret)
+				goto done_proc;
+
 			++buf32;
 		}
 	}
 	if (remaining_bytes) {
 		value = 0;
 		memcpy(&value, (u8 *)buf32, remaining_bytes);
-		hid_set_field(report->field[field_index], i,
-			      (__force __s32)cpu_to_le32(value));
+		ret = hid_set_field(report->field[field_index], i,
+				    (__force __s32)cpu_to_le32(value));
+		if (ret)
+			goto done_proc;
 	}
 	hid_hw_request(hsdev->hdev, report, HID_REQ_SET_REPORT);
 	hid_hw_wait(hsdev->hdev);
@@ -483,7 +488,8 @@
 		return 1;
 
 	ptr = raw_data;
-	ptr++; /* Skip report id */
+	if (report->id)
+		ptr++; /* Skip report id */
 
 	spin_lock_irqsave(&pdata->lock, flags);
 
--- linux-ein-5.4.0.orig/drivers/hid/hid-sony.c
+++ linux-ein-5.4.0/drivers/hid/hid-sony.c
@@ -867,6 +867,23 @@
 	if (sc->quirks & PS3REMOTE)
 		return ps3remote_fixup(hdev, rdesc, rsize);
 
+	/*
+	 * Some knock-off USB dongles incorrectly report their button count
+	 * as 13 instead of 16 causing three non-functional buttons.
+	 */
+	if ((sc->quirks & SIXAXIS_CONTROLLER_USB) && *rsize >= 45 &&
+		/* Report Count (13) */
+		rdesc[23] == 0x95 && rdesc[24] == 0x0D &&
+		/* Usage Maximum (13) */
+		rdesc[37] == 0x29 && rdesc[38] == 0x0D &&
+		/* Report Count (3) */
+		rdesc[43] == 0x95 && rdesc[44] == 0x03) {
+		hid_info(hdev, "Fixing up USB dongle report descriptor\n");
+		rdesc[24] = 0x10;
+		rdesc[38] = 0x10;
+		rdesc[44] = 0x00;
+	}
+
 	return rdesc;
 }
 
@@ -1580,16 +1597,38 @@
 	 * of the controller, so that it sends input reports of type 0x11.
 	 */
 	if (sc->quirks & (DUALSHOCK4_CONTROLLER_USB | DUALSHOCK4_DONGLE)) {
+		int retries;
+
 		buf = kmalloc(DS4_FEATURE_REPORT_0x02_SIZE, GFP_KERNEL);
 		if (!buf)
 			return -ENOMEM;
 
-		ret = hid_hw_raw_request(sc->hdev, 0x02, buf,
-					 DS4_FEATURE_REPORT_0x02_SIZE,
-					 HID_FEATURE_REPORT,
-					 HID_REQ_GET_REPORT);
-		if (ret < 0)
-			goto err_stop;
+		/* We should normally receive the feature report data we asked
+		 * for, but hidraw applications such as Steam can issue feature
+		 * reports as well. In particular for Dongle reconnects, Steam
+		 * and this function are competing resulting in often receiving
+		 * data for a different HID report, so retry a few times.
+		 */
+		for (retries = 0; retries < 3; retries++) {
+			ret = hid_hw_raw_request(sc->hdev, 0x02, buf,
+						 DS4_FEATURE_REPORT_0x02_SIZE,
+						 HID_FEATURE_REPORT,
+						 HID_REQ_GET_REPORT);
+			if (ret < 0)
+				goto err_stop;
+
+			if (buf[0] != 0x02) {
+				if (retries < 2) {
+					hid_warn(sc->hdev, "Retrying DualShock 4 get calibration report (0x02) request\n");
+					continue;
+				} else {
+					ret = -EILSEQ;
+					goto err_stop;
+				}
+			} else {
+				break;
+			}
+		}
 	} else {
 		u8 bthdr = 0xA3;
 		u32 crc;
--- linux-ein-5.4.0.orig/drivers/hid/hid-steam.c
+++ linux-ein-5.4.0/drivers/hid/hid-steam.c
@@ -134,6 +134,11 @@
 	int ret;
 
 	r = steam->hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0];
+	if (!r) {
+		hid_err(steam->hdev, "No HID_FEATURE_REPORT submitted -  nothing to read\n");
+		return -EINVAL;
+	}
+
 	if (hid_report_len(r) < 64)
 		return -EINVAL;
 
@@ -165,6 +170,11 @@
 	int ret;
 
 	r = steam->hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0];
+	if (!r) {
+		hid_err(steam->hdev, "No HID_FEATURE_REPORT submitted -  nothing to read\n");
+		return -EINVAL;
+	}
+
 	if (hid_report_len(r) < 64)
 		return -EINVAL;
 
@@ -526,7 +536,8 @@
 			steam_battery_register(steam);
 
 		mutex_lock(&steam_devices_lock);
-		list_add(&steam->list, &steam_devices);
+		if (list_empty(&steam->list))
+			list_add(&steam->list, &steam_devices);
 		mutex_unlock(&steam_devices_lock);
 	}
 
@@ -552,7 +563,7 @@
 		hid_info(steam->hdev, "Steam Controller '%s' disconnected",
 				steam->serial_no);
 		mutex_lock(&steam_devices_lock);
-		list_del(&steam->list);
+		list_del_init(&steam->list);
 		mutex_unlock(&steam_devices_lock);
 		steam->serial_no[0] = 0;
 	}
@@ -738,6 +749,7 @@
 	mutex_init(&steam->mutex);
 	steam->quirks = id->driver_data;
 	INIT_WORK(&steam->work_connect, steam_work_connect_cb);
+	INIT_LIST_HEAD(&steam->list);
 
 	steam->client_hdev = steam_create_client_hid(hdev);
 	if (IS_ERR(steam->client_hdev)) {
@@ -768,8 +780,12 @@
 
 	if (steam->quirks & STEAM_QUIRK_WIRELESS) {
 		hid_info(hdev, "Steam wireless receiver connected");
+		/* If using a wireless adaptor ask for connection status */
+		steam->connected = false;
 		steam_request_conn_status(steam);
 	} else {
+		/* A wired connection is always present */
+		steam->connected = true;
 		ret = steam_register(steam);
 		if (ret) {
 			hid_err(hdev,
--- linux-ein-5.4.0.orig/drivers/hid/hid-u2fzero.c
+++ linux-ein-5.4.0/drivers/hid/hid-u2fzero.c
@@ -132,7 +132,7 @@
 
 	ret = (wait_for_completion_timeout(
 		&ctx.done, msecs_to_jiffies(USB_CTRL_SET_TIMEOUT)));
-	if (ret < 0) {
+	if (ret == 0) {
 		usb_kill_urb(dev->urb);
 		hid_err(hdev, "urb submission timed out");
 	} else {
@@ -191,6 +191,8 @@
 	struct u2f_hid_msg resp;
 	int ret;
 	size_t actual_length;
+	/* valid packets must have a correct header */
+	int min_length = offsetof(struct u2f_hid_msg, init.data);
 
 	if (!dev->present) {
 		hid_dbg(dev->hdev, "device not present");
@@ -198,12 +200,14 @@
 	}
 
 	ret = u2fzero_recv(dev, &req, &resp);
-	if (ret < 0)
+
+	/* ignore errors or packets without data */
+	if (ret < min_length)
 		return 0;
 
 	/* only take the minimum amount of data it is safe to take */
-	actual_length = min3((size_t)ret - offsetof(struct u2f_hid_msg,
-		init.data), U2F_HID_MSG_LEN(resp), max);
+	actual_length = min3((size_t)ret - min_length,
+		U2F_HID_MSG_LEN(resp), max);
 
 	memcpy(data, resp.init.data, actual_length);
 
@@ -286,7 +290,7 @@
 	unsigned int minor;
 	int ret;
 
-	if (!hid_is_using_ll_driver(hdev, &usb_hid_driver))
+	if (!hid_is_usb(hdev))
 		return -EINVAL;
 
 	dev = devm_kzalloc(&hdev->dev, sizeof(*dev), GFP_KERNEL);
--- linux-ein-5.4.0.orig/drivers/hid/hid-uclogic-core.c
+++ linux-ein-5.4.0/drivers/hid/hid-uclogic-core.c
@@ -164,11 +164,15 @@
 	struct uclogic_drvdata *drvdata = NULL;
 	bool params_initialized = false;
 
+	if (!hid_is_usb(hdev))
+		return -EINVAL;
+
 	/*
 	 * libinput requires the pad interface to be on a different node
 	 * than the pen, so use QUIRK_MULTI_INPUT for all tablets.
 	 */
 	hdev->quirks |= HID_QUIRK_MULTI_INPUT;
+	hdev->quirks |= HID_QUIRK_HIDINPUT_FORCE;
 
 	/* Allocate and assign driver data */
 	drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
@@ -385,6 +389,8 @@
 				USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER,
 				USB_DEVICE_ID_UGTIZER_TABLET_GP0610) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER,
+				USB_DEVICE_ID_UGTIZER_TABLET_GT5040) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
 				USB_DEVICE_ID_UGEE_TABLET_G5) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_UGEE,
--- linux-ein-5.4.0.orig/drivers/hid/hid-uclogic-params.c
+++ linux-ein-5.4.0/drivers/hid/hid-uclogic-params.c
@@ -65,7 +65,7 @@
 					__u8 idx, size_t len)
 {
 	int rc;
-	struct usb_device *udev = hid_to_usb_dev(hdev);
+	struct usb_device *udev;
 	__u8 *buf = NULL;
 
 	/* Check arguments */
@@ -74,6 +74,8 @@
 		goto cleanup;
 	}
 
+	udev = hid_to_usb_dev(hdev);
+
 	buf = kmalloc(len, GFP_KERNEL);
 	if (buf == NULL) {
 		rc = -ENOMEM;
@@ -449,7 +451,7 @@
 {
 	int rc;
 	bool found = false;
-	struct usb_device *usb_dev = hid_to_usb_dev(hdev);
+	struct usb_device *usb_dev;
 	char *str_buf = NULL;
 	const size_t str_len = 16;
 
@@ -459,6 +461,8 @@
 		goto cleanup;
 	}
 
+	usb_dev = hid_to_usb_dev(hdev);
+
 	/*
 	 * Enable generic button mode
 	 */
@@ -705,9 +709,9 @@
 				     struct hid_device *hdev)
 {
 	int rc;
-	struct usb_device *udev = hid_to_usb_dev(hdev);
-	struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
-	__u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+	struct usb_device *udev;
+	struct usb_interface *iface;
+	__u8 bInterfaceNumber;
 	bool found;
 	/* The resulting parameters (noop) */
 	struct uclogic_params p = {0, };
@@ -721,6 +725,10 @@
 		goto cleanup;
 	}
 
+	udev = hid_to_usb_dev(hdev);
+	iface = to_usb_interface(hdev->dev.parent);
+	bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
 	/* If it's not a pen interface */
 	if (bInterfaceNumber != 0) {
 		/* TODO: Consider marking the interface invalid */
@@ -832,21 +840,25 @@
 			struct hid_device *hdev)
 {
 	int rc;
-	struct usb_device *udev = hid_to_usb_dev(hdev);
-	__u8  bNumInterfaces = udev->config->desc.bNumInterfaces;
-	struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
-	__u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+	struct usb_device *udev;
+	__u8  bNumInterfaces;
+	struct usb_interface *iface;
+	__u8 bInterfaceNumber;
 	bool found;
 	/* The resulting parameters (noop) */
 	struct uclogic_params p = {0, };
 
 	/* Check arguments */
-	if (params == NULL || hdev == NULL ||
-	    !hid_is_using_ll_driver(hdev, &usb_hid_driver)) {
+	if (params == NULL || hdev == NULL || !hid_is_usb(hdev)) {
 		rc = -EINVAL;
 		goto cleanup;
 	}
 
+	udev = hid_to_usb_dev(hdev);
+	bNumInterfaces = udev->config->desc.bNumInterfaces;
+	iface = to_usb_interface(hdev->dev.parent);
+	bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
 	/*
 	 * Set replacement report descriptor if the original matches the
 	 * specified size. Otherwise keep interface unchanged.
@@ -997,6 +1009,8 @@
 		break;
 	case VID_PID(USB_VENDOR_ID_UGTIZER,
 		     USB_DEVICE_ID_UGTIZER_TABLET_GP0610):
+	case VID_PID(USB_VENDOR_ID_UGTIZER,
+		     USB_DEVICE_ID_UGTIZER_TABLET_GT5040):
 	case VID_PID(USB_VENDOR_ID_UGEE,
 		     USB_DEVICE_ID_UGEE_XPPEN_TABLET_G540):
 	case VID_PID(USB_VENDOR_ID_UGEE,
--- linux-ein-5.4.0.orig/drivers/hid/hidraw.c
+++ linux-ein-5.4.0/drivers/hid/hidraw.c
@@ -249,13 +249,14 @@
 static __poll_t hidraw_poll(struct file *file, poll_table *wait)
 {
 	struct hidraw_list *list = file->private_data;
+	__poll_t mask = EPOLLOUT | EPOLLWRNORM; /* hidraw is always writable */
 
 	poll_wait(file, &list->hidraw->wait, wait);
 	if (list->head != list->tail)
-		return EPOLLIN | EPOLLRDNORM | EPOLLOUT;
+		mask |= EPOLLIN | EPOLLRDNORM;
 	if (!list->hidraw->exist)
-		return EPOLLERR | EPOLLHUP;
-	return 0;
+		mask |= EPOLLERR | EPOLLHUP;
+	return mask;
 }
 
 static int hidraw_open(struct inode *inode, struct file *file)
@@ -345,10 +346,13 @@
 	unsigned int minor = iminor(inode);
 	struct hidraw_list *list = file->private_data;
 	unsigned long flags;
+	int i;
 
 	mutex_lock(&minors_lock);
 
 	spin_lock_irqsave(&hidraw_table[minor]->list_lock, flags);
+	for (i = list->tail; i < list->head; i++)
+		kfree(list->buffer[i].value);
 	list_del(&list->node);
 	spin_unlock_irqrestore(&hidraw_table[minor]->list_lock, flags);
 	kfree(list);
--- linux-ein-5.4.0.orig/drivers/hid/i2c-hid/i2c-hid-core.c
+++ linux-ein-5.4.0/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -48,6 +48,10 @@
 #define I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV	BIT(0)
 #define I2C_HID_QUIRK_NO_IRQ_AFTER_RESET	BIT(1)
 #define I2C_HID_QUIRK_BOGUS_IRQ			BIT(4)
+#define I2C_HID_QUIRK_RESET_ON_RESUME		BIT(5)
+#define I2C_HID_QUIRK_BAD_INPUT_SIZE		BIT(6)
+#define I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET	BIT(7)
+
 
 /* flags */
 #define I2C_HID_STARTED		0
@@ -170,7 +174,21 @@
 		I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV },
 	{ I2C_VENDOR_ID_HANTICK, I2C_PRODUCT_ID_HANTICK_5288,
 		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
+	{ I2C_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15,
+		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
+	{ I2C_VENDOR_ID_RAYDIUM, I2C_PRODUCT_ID_RAYDIUM_3118,
+		I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
+	{ USB_VENDOR_ID_ALPS_JP, HID_ANY_ID,
+		 I2C_HID_QUIRK_RESET_ON_RESUME },
+	{ I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA2393,
+		 I2C_HID_QUIRK_RESET_ON_RESUME },
+	{ USB_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720,
+		I2C_HID_QUIRK_BAD_INPUT_SIZE },
+	/*
+	 * Sending the wakeup after reset actually break ELAN touchscreen controller
+	 */
 	{ USB_VENDOR_ID_ELAN, HID_ANY_ID,
+		 I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET |
 		 I2C_HID_QUIRK_BOGUS_IRQ },
 	{ 0, 0 }
 };
@@ -411,6 +429,19 @@
 		dev_err(&client->dev, "failed to change power setting.\n");
 
 set_pwr_exit:
+
+	/*
+	 * The HID over I2C specification states that if a DEVICE needs time
+	 * after the PWR_ON request, it should utilise CLOCK stretching.
+	 * However, it has been observered that the Windows driver provides a
+	 * 1ms sleep between the PWR_ON and RESET requests.
+	 * According to Goodix Windows even waits 60 ms after (other?)
+	 * PWR_ON requests. Testing has confirmed that several devices
+	 * will not work properly without a delay after a PWR_ON request.
+	 */
+	if (!ret && power_state == I2C_HID_PWR_ON)
+		msleep(60);
+
 	return ret;
 }
 
@@ -432,15 +463,6 @@
 	if (ret)
 		goto out_unlock;
 
-	/*
-	 * The HID over I2C specification states that if a DEVICE needs time
-	 * after the PWR_ON request, it should utilise CLOCK stretching.
-	 * However, it has been observered that the Windows driver provides a
-	 * 1ms sleep between the PWR_ON and RESET requests and that some devices
-	 * rely on this.
-	 */
-	usleep_range(1000, 5000);
-
 	i2c_hid_dbg(ihid, "resetting...\n");
 
 	ret = i2c_hid_command(client, &hid_reset_cmd, NULL, 0);
@@ -451,7 +473,8 @@
 	}
 
 	/* At least some SIS devices need this after reset */
-	ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
+	if (!(ihid->quirks & I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET))
+		ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
 
 out_unlock:
 	mutex_unlock(&ihid->reset_lock);
@@ -493,9 +516,15 @@
 	}
 
 	if ((ret_size > size) || (ret_size < 2)) {
-		dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n",
-			__func__, size, ret_size);
-		return;
+		if (ihid->quirks & I2C_HID_QUIRK_BAD_INPUT_SIZE) {
+			ihid->inbuf[0] = size & 0xff;
+			ihid->inbuf[1] = size >> 8;
+			ret_size = size;
+		} else {
+			dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n",
+				__func__, size, ret_size);
+			return;
+		}
 	}
 
 	i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf);
@@ -593,6 +622,17 @@
 	if (report_type == HID_OUTPUT_REPORT)
 		return -EINVAL;
 
+	/*
+	 * In case of unnumbered reports the response from the device will
+	 * not have the report ID that the upper layers expect, so we need
+	 * to stash it the buffer ourselves and adjust the data size.
+	 */
+	if (!report_number) {
+		buf[0] = 0;
+		buf++;
+		count--;
+	}
+
 	/* +2 bytes to include the size of the reply in the query buffer */
 	ask_count = min(count + 2, (size_t)ihid->bufsize);
 
@@ -614,6 +654,9 @@
 	count = min(count, ret_count - 2);
 	memcpy(buf, ihid->rawbuf + 2, count);
 
+	if (!report_number)
+		count++;
+
 	return count;
 }
 
@@ -630,17 +673,19 @@
 
 	mutex_lock(&ihid->reset_lock);
 
-	if (report_id) {
-		buf++;
-		count--;
-	}
-
+	/*
+	 * Note that both numbered and unnumbered reports passed here
+	 * are supposed to have report ID stored in the 1st byte of the
+	 * buffer, so we strip it off unconditionally before passing payload
+	 * to i2c_hid_set_or_send_report which takes care of encoding
+	 * everything properly.
+	 */
 	ret = i2c_hid_set_or_send_report(client,
 				report_type == HID_FEATURE_REPORT ? 0x03 : 0x02,
-				report_id, buf, count, use_data);
+				report_id, buf + 1, count - 1, use_data);
 
-	if (report_id && ret >= 0)
-		ret++; /* add report_id to the number of transfered bytes */
+	if (ret >= 0)
+		ret++; /* add report_id to the number of transferred bytes */
 
 	mutex_unlock(&ihid->reset_lock);
 
@@ -1091,8 +1136,8 @@
 	hid->vendor = le16_to_cpu(ihid->hdesc.wVendorID);
 	hid->product = le16_to_cpu(ihid->hdesc.wProductID);
 
-	snprintf(hid->name, sizeof(hid->name), "%s %04hX:%04hX",
-		 client->name, hid->vendor, hid->product);
+	snprintf(hid->name, sizeof(hid->name), "%s %04X:%04X",
+		 client->name, (u16)hid->vendor, (u16)hid->product);
 	strlcpy(hid->phys, dev_name(&client->dev), sizeof(hid->phys));
 
 	ihid->quirks = i2c_hid_lookup_quirk(hid->vendor, hid->product);
@@ -1212,8 +1257,15 @@
 	 * solves "incomplete reports" on Raydium devices 2386:3118 and
 	 * 2386:4B33 and fixes various SIS touchscreens no longer sending
 	 * data after a suspend/resume.
+	 *
+	 * However some ALPS touchpads generate IRQ storm without reset, so
+	 * let's still reset them here.
 	 */
-	ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
+	if (ihid->quirks & I2C_HID_QUIRK_RESET_ON_RESUME)
+		ret = i2c_hid_hwreset(client);
+	else
+		ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
+
 	if (ret)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
+++ linux-ein-5.4.0/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
@@ -342,6 +342,14 @@
 		.driver_data = (void *)&sipodev_desc
 	},
 	{
+		.ident = "Trekstor SURFBOOK E11B",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "TREKSTOR"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SURFBOOK E11B"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
+	{
 		.ident = "Direkt-Tek DTLAPY116-2",
 		.matches = {
 			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Direkt-Tek"),
@@ -366,6 +374,14 @@
 		.driver_data = (void *)&sipodev_desc
 	},
 	{
+		.ident = "Mediacom FlexBook edge 13",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "MEDIACOM"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "FlexBook_edge13-M-FBE13"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
+	{
 		.ident = "Odys Winbook 13",
 		.matches = {
 			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AXDIA International GmbH"),
@@ -381,6 +397,22 @@
 		},
 		.driver_data = (void *)&sipodev_desc
 	},
+	{
+		.ident = "Schneider SCL142ALM",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SCHNEIDER"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SCL142ALM"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
+	{
+		.ident = "Vero K147",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VERO"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "K147"),
+		},
+		.driver_data = (void *)&sipodev_desc
+	},
 	{ }	/* Terminate list */
 };
 
--- linux-ein-5.4.0.orig/drivers/hid/intel-ish-hid/ipc/hw-ish.h
+++ linux-ein-5.4.0/drivers/hid/intel-ish-hid/ipc/hw-ish.h
@@ -24,7 +24,10 @@
 #define ICL_MOBILE_DEVICE_ID	0x34FC
 #define SPT_H_DEVICE_ID		0xA135
 #define CML_LP_DEVICE_ID	0x02FC
+#define CMP_H_DEVICE_ID		0x06FC
 #define EHL_Ax_DEVICE_ID	0x4BB3
+#define TGL_LP_DEVICE_ID	0xA0FC
+#define TGL_H_DEVICE_ID		0x43FC
 
 #define	REVISION_ID_CHT_A0	0x6
 #define	REVISION_ID_CHT_Ax_SI	0x0
--- linux-ein-5.4.0.orig/drivers/hid/intel-ish-hid/ipc/pci-ish.c
+++ linux-ein-5.4.0/drivers/hid/intel-ish-hid/ipc/pci-ish.c
@@ -34,7 +34,10 @@
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, ICL_MOBILE_DEVICE_ID)},
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, SPT_H_DEVICE_ID)},
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, CML_LP_DEVICE_ID)},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, CMP_H_DEVICE_ID)},
 	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, EHL_Ax_DEVICE_ID)},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, TGL_LP_DEVICE_ID)},
+	{PCI_DEVICE(PCI_VENDOR_ID_INTEL, TGL_H_DEVICE_ID)},
 	{0, }
 };
 MODULE_DEVICE_TABLE(pci, ish_pci_tbl);
--- linux-ein-5.4.0.orig/drivers/hid/intel-ish-hid/ishtp-fw-loader.c
+++ linux-ein-5.4.0/drivers/hid/intel-ish-hid/ishtp-fw-loader.c
@@ -480,6 +480,7 @@
 			    sizeof(ldr_xfer_query_resp));
 	if (rv < 0) {
 		client_data->flag_retry = true;
+		*fw_info = (struct shim_fw_info){};
 		return rv;
 	}
 
@@ -489,6 +490,7 @@
 			"data size %d is not equal to size of loader_xfer_query_response %zu\n",
 			rv, sizeof(struct loader_xfer_query_response));
 		client_data->flag_retry = true;
+		*fw_info = (struct shim_fw_info){};
 		return -EMSGSIZE;
 	}
 
@@ -654,21 +656,12 @@
 	 */
 	payload_max_size &= ~(L1_CACHE_BYTES - 1);
 
-	dma_buf = kmalloc(payload_max_size, GFP_KERNEL | GFP_DMA32);
+	dma_buf = dma_alloc_coherent(devc, payload_max_size, &dma_buf_phy, GFP_KERNEL);
 	if (!dma_buf) {
 		client_data->flag_retry = true;
 		return -ENOMEM;
 	}
 
-	dma_buf_phy = dma_map_single(devc, dma_buf, payload_max_size,
-				     DMA_TO_DEVICE);
-	if (dma_mapping_error(devc, dma_buf_phy)) {
-		dev_err(cl_data_to_dev(client_data), "DMA map failed\n");
-		client_data->flag_retry = true;
-		rv = -ENOMEM;
-		goto end_err_dma_buf_release;
-	}
-
 	ldr_xfer_dma_frag.fragment.hdr.command = LOADER_CMD_XFER_FRAGMENT;
 	ldr_xfer_dma_frag.fragment.xfer_mode = LOADER_XFER_MODE_DIRECT_DMA;
 	ldr_xfer_dma_frag.ddr_phys_addr = (u64)dma_buf_phy;
@@ -688,14 +681,7 @@
 		ldr_xfer_dma_frag.fragment.size = fragment_size;
 		memcpy(dma_buf, &fw->data[fragment_offset], fragment_size);
 
-		dma_sync_single_for_device(devc, dma_buf_phy,
-					   payload_max_size,
-					   DMA_TO_DEVICE);
-
-		/*
-		 * Flush cache here because the dma_sync_single_for_device()
-		 * does not do for x86.
-		 */
+		/* Flush cache to be sure the data is in main memory. */
 		clflush_cache_range(dma_buf, payload_max_size);
 
 		dev_dbg(cl_data_to_dev(client_data),
@@ -718,15 +704,8 @@
 		fragment_offset += fragment_size;
 	}
 
-	dma_unmap_single(devc, dma_buf_phy, payload_max_size, DMA_TO_DEVICE);
-	kfree(dma_buf);
-	return 0;
-
 end_err_resp_buf_release:
-	/* Free ISH buffer if not done already, in error case */
-	dma_unmap_single(devc, dma_buf_phy, payload_max_size, DMA_TO_DEVICE);
-end_err_dma_buf_release:
-	kfree(dma_buf);
+	dma_free_coherent(devc, payload_max_size, dma_buf, dma_buf_phy);
 	return rv;
 }
 
--- linux-ein-5.4.0.orig/drivers/hid/intel-ish-hid/ishtp-hid.h
+++ linux-ein-5.4.0/drivers/hid/intel-ish-hid/ishtp-hid.h
@@ -110,7 +110,7 @@
  * @multi_packet_cnt:	Count of fragmented packet count
  *
  * This structure is used to store completion flags and per client data like
- * like report description, number of HID devices etc.
+ * report description, number of HID devices etc.
  */
 struct ishtp_cl_data {
 	/* completion flags */
--- linux-ein-5.4.0.orig/drivers/hid/intel-ish-hid/ishtp/client.c
+++ linux-ein-5.4.0/drivers/hid/intel-ish-hid/ishtp/client.c
@@ -626,13 +626,14 @@
 }
 
 /**
- * ipc_tx_callback() - IPC tx callback function
+ * ipc_tx_send() - IPC tx send function
  * @prm: Pointer to client device instance
  *
- * Send message over IPC either first time or on callback on previous message
- * completion
+ * Send message over IPC. Message will be split into fragments
+ * if message size is bigger than IPC FIFO size, and all
+ * fragments will be sent one by one.
  */
-static void ipc_tx_callback(void *prm)
+static void ipc_tx_send(void *prm)
 {
 	struct ishtp_cl	*cl = prm;
 	struct ishtp_cl_tx_ring	*cl_msg;
@@ -677,32 +678,41 @@
 			    list);
 	rem = cl_msg->send_buf.size - cl->tx_offs;
 
-	ishtp_hdr.host_addr = cl->host_client_id;
-	ishtp_hdr.fw_addr = cl->fw_client_id;
-	ishtp_hdr.reserved = 0;
-	pmsg = cl_msg->send_buf.data + cl->tx_offs;
-
-	if (rem <= dev->mtu) {
-		ishtp_hdr.length = rem;
-		ishtp_hdr.msg_complete = 1;
-		cl->sending = 0;
-		list_del_init(&cl_msg->list);	/* Must be before write */
-		spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
-		/* Submit to IPC queue with no callback */
-		ishtp_write_message(dev, &ishtp_hdr, pmsg);
-		spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags);
-		list_add_tail(&cl_msg->list, &cl->tx_free_list.list);
-		++cl->tx_ring_free_size;
-		spin_unlock_irqrestore(&cl->tx_free_list_spinlock,
-			tx_free_flags);
-	} else {
-		/* Send IPC fragment */
-		spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
-		cl->tx_offs += dev->mtu;
-		ishtp_hdr.length = dev->mtu;
-		ishtp_hdr.msg_complete = 0;
-		ishtp_send_msg(dev, &ishtp_hdr, pmsg, ipc_tx_callback, cl);
+	while (rem > 0) {
+		ishtp_hdr.host_addr = cl->host_client_id;
+		ishtp_hdr.fw_addr = cl->fw_client_id;
+		ishtp_hdr.reserved = 0;
+		pmsg = cl_msg->send_buf.data + cl->tx_offs;
+
+		if (rem <= dev->mtu) {
+			/* Last fragment or only one packet */
+			ishtp_hdr.length = rem;
+			ishtp_hdr.msg_complete = 1;
+			/* Submit to IPC queue with no callback */
+			ishtp_write_message(dev, &ishtp_hdr, pmsg);
+			cl->tx_offs = 0;
+			cl->sending = 0;
+
+			break;
+		} else {
+			/* Send ipc fragment */
+			ishtp_hdr.length = dev->mtu;
+			ishtp_hdr.msg_complete = 0;
+			/* All fregments submitted to IPC queue with no callback */
+			ishtp_write_message(dev, &ishtp_hdr, pmsg);
+			cl->tx_offs += dev->mtu;
+			rem = cl_msg->send_buf.size - cl->tx_offs;
+		}
 	}
+
+	list_del_init(&cl_msg->list);
+	spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
+
+	spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags);
+	list_add_tail(&cl_msg->list, &cl->tx_free_list.list);
+	++cl->tx_ring_free_size;
+	spin_unlock_irqrestore(&cl->tx_free_list_spinlock,
+		tx_free_flags);
 }
 
 /**
@@ -720,7 +730,7 @@
 		return;
 
 	cl->tx_offs = 0;
-	ipc_tx_callback(cl);
+	ipc_tx_send(cl);
 	++cl->send_msg_cnt_ipc;
 }
 
--- linux-ein-5.4.0.orig/drivers/hid/intel-ish-hid/ishtp/dma-if.c
+++ linux-ein-5.4.0/drivers/hid/intel-ish-hid/ishtp/dma-if.c
@@ -104,6 +104,11 @@
 	int required_slots = (size / DMA_SLOT_SIZE)
 		+ 1 * (size % DMA_SLOT_SIZE != 0);
 
+	if (!dev->ishtp_dma_tx_map) {
+		dev_err(dev->devc, "Fail to allocate Tx map\n");
+		return NULL;
+	}
+
 	spin_lock_irqsave(&dev->ishtp_dma_tx_lock, flags);
 	for (i = 0; i <= (dev->ishtp_dma_num_slots - required_slots); i++) {
 		free = 1;
@@ -150,6 +155,11 @@
 		return;
 	}
 
+	if (!dev->ishtp_dma_tx_map) {
+		dev_err(dev->devc, "Fail to allocate Tx map\n");
+		return;
+	}
+
 	i = (msg_addr - dev->ishtp_host_dma_tx_buf) / DMA_SLOT_SIZE;
 	spin_lock_irqsave(&dev->ishtp_dma_tx_lock, flags);
 	for (j = 0; j < acked_slots; j++) {
--- linux-ein-5.4.0.orig/drivers/hid/uhid.c
+++ linux-ein-5.4.0/drivers/hid/uhid.c
@@ -28,11 +28,22 @@
 
 struct uhid_device {
 	struct mutex devlock;
+
+	/* This flag tracks whether the HID device is usable for commands from
+	 * userspace. The flag is already set before hid_add_device(), which
+	 * runs in workqueue context, to allow hid_add_device() to communicate
+	 * with userspace.
+	 * However, if hid_add_device() fails, the flag is cleared without
+	 * holding devlock.
+	 * We guarantee that if @running changes from true to false while you're
+	 * holding @devlock, it's still fine to access @hid.
+	 */
 	bool running;
 
 	__u8 *rd_data;
 	uint rd_size;
 
+	/* When this is NULL, userspace may use UHID_CREATE/UHID_CREATE2. */
 	struct hid_device *hid;
 	struct uhid_event input_buf;
 
@@ -63,9 +74,18 @@
 	if (ret) {
 		hid_err(uhid->hid, "Cannot register HID device: error %d\n", ret);
 
-		hid_destroy_device(uhid->hid);
-		uhid->hid = NULL;
+		/* We used to call hid_destroy_device() here, but that's really
+		 * messy to get right because we have to coordinate with
+		 * concurrent writes from userspace that might be in the middle
+		 * of using uhid->hid.
+		 * Just leave uhid->hid as-is for now, and clean it up when
+		 * userspace tries to close or reinitialize the uhid instance.
+		 *
+		 * However, we do have to clear the ->running flag and do a
+		 * wakeup to make sure userspace knows that the device is gone.
+		 */
 		uhid->running = false;
+		wake_up_interruptible(&uhid->report_wait);
 	}
 }
 
@@ -375,6 +395,7 @@
 	.parse = uhid_hid_parse,
 	.raw_request = uhid_hid_raw_request,
 	.output_report = uhid_hid_output_report,
+	.max_buffer_size = UHID_DATA_MAX,
 };
 EXPORT_SYMBOL_GPL(uhid_hid_driver);
 
@@ -474,7 +495,7 @@
 	void *rd_data;
 	int ret;
 
-	if (uhid->running)
+	if (uhid->hid)
 		return -EALREADY;
 
 	rd_size = ev->u.create2.rd_size;
@@ -556,7 +577,7 @@
 
 static int uhid_dev_destroy(struct uhid_device *uhid)
 {
-	if (!uhid->running)
+	if (!uhid->hid)
 		return -EINVAL;
 
 	uhid->running = false;
@@ -565,6 +586,7 @@
 	cancel_work_sync(&uhid->worker);
 
 	hid_destroy_device(uhid->hid);
+	uhid->hid = NULL;
 	kfree(uhid->rd_data);
 
 	return 0;
@@ -766,13 +788,14 @@
 static __poll_t uhid_char_poll(struct file *file, poll_table *wait)
 {
 	struct uhid_device *uhid = file->private_data;
+	__poll_t mask = EPOLLOUT | EPOLLWRNORM; /* uhid is always writable */
 
 	poll_wait(file, &uhid->waitq, wait);
 
 	if (uhid->head != uhid->tail)
-		return EPOLLIN | EPOLLRDNORM;
+		mask |= EPOLLIN | EPOLLRDNORM;
 
-	return 0;
+	return mask;
 }
 
 static const struct file_operations uhid_fops = {
--- linux-ein-5.4.0.orig/drivers/hid/usbhid/hid-core.c
+++ linux-ein-5.4.0/drivers/hid/usbhid/hid-core.c
@@ -374,7 +374,7 @@
 	raw_report = usbhid->ctrl[usbhid->ctrltail].raw_report;
 	dir = usbhid->ctrl[usbhid->ctrltail].dir;
 
-	len = ((report->size - 1) >> 3) + 1 + (report->id > 0);
+	len = hid_report_len(report);
 	if (dir == USB_DIR_OUT) {
 		usbhid->urbctrl->pipe = usb_sndctrlpipe(hid_to_usb_dev(hid), 0);
 		usbhid->urbctrl->transfer_buffer_length = len;
@@ -503,7 +503,7 @@
 
 	if (unplug) {
 		usbhid->ctrltail = usbhid->ctrlhead;
-	} else {
+	} else if (usbhid->ctrlhead != usbhid->ctrltail) {
 		usbhid->ctrltail = (usbhid->ctrltail + 1) & (HID_CONTROL_FIFO_SIZE - 1);
 
 		if (usbhid->ctrlhead != usbhid->ctrltail &&
@@ -682,16 +682,21 @@
 	struct usbhid_device *usbhid = hid->driver_data;
 	int res;
 
+	mutex_lock(&usbhid->mutex);
+
 	set_bit(HID_OPENED, &usbhid->iofl);
 
-	if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
-		return 0;
+	if (hid->quirks & HID_QUIRK_ALWAYS_POLL) {
+		res = 0;
+		goto Done;
+	}
 
 	res = usb_autopm_get_interface(usbhid->intf);
 	/* the device must be awake to reliably request remote wakeup */
 	if (res < 0) {
 		clear_bit(HID_OPENED, &usbhid->iofl);
-		return -EIO;
+		res = -EIO;
+		goto Done;
 	}
 
 	usbhid->intf->needs_remote_wakeup = 1;
@@ -725,6 +730,9 @@
 		msleep(50);
 
 	clear_bit(HID_RESUME_RUNNING, &usbhid->iofl);
+
+ Done:
+	mutex_unlock(&usbhid->mutex);
 	return res;
 }
 
@@ -732,6 +740,8 @@
 {
 	struct usbhid_device *usbhid = hid->driver_data;
 
+	mutex_lock(&usbhid->mutex);
+
 	/*
 	 * Make sure we don't restart data acquisition due to
 	 * a resumption we no longer care about by avoiding racing
@@ -743,12 +753,13 @@
 		clear_bit(HID_IN_POLLING, &usbhid->iofl);
 	spin_unlock_irq(&usbhid->lock);
 
-	if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
-		return;
+	if (!(hid->quirks & HID_QUIRK_ALWAYS_POLL)) {
+		hid_cancel_delayed_stuff(usbhid);
+		usb_kill_urb(usbhid->urbin);
+		usbhid->intf->needs_remote_wakeup = 0;
+	}
 
-	hid_cancel_delayed_stuff(usbhid);
-	usb_kill_urb(usbhid->urbin);
-	usbhid->intf->needs_remote_wakeup = 0;
+	mutex_unlock(&usbhid->mutex);
 }
 
 /*
@@ -1057,6 +1068,8 @@
 	unsigned int n, insize = 0;
 	int ret;
 
+	mutex_lock(&usbhid->mutex);
+
 	clear_bit(HID_DISCONNECTED, &usbhid->iofl);
 
 	usbhid->bufsize = HID_MIN_BUFFER_SIZE;
@@ -1177,6 +1190,8 @@
 		usbhid_set_leds(hid);
 		device_set_wakeup_enable(&dev->dev, 1);
 	}
+
+	mutex_unlock(&usbhid->mutex);
 	return 0;
 
 fail:
@@ -1187,6 +1202,7 @@
 	usbhid->urbout = NULL;
 	usbhid->urbctrl = NULL;
 	hid_free_buffers(dev, hid);
+	mutex_unlock(&usbhid->mutex);
 	return ret;
 }
 
@@ -1202,10 +1218,23 @@
 		usbhid->intf->needs_remote_wakeup = 0;
 	}
 
+	mutex_lock(&usbhid->mutex);
+
 	clear_bit(HID_STARTED, &usbhid->iofl);
+
 	spin_lock_irq(&usbhid->lock);	/* Sync with error and led handlers */
 	set_bit(HID_DISCONNECTED, &usbhid->iofl);
+	while (usbhid->ctrltail != usbhid->ctrlhead) {
+		if (usbhid->ctrl[usbhid->ctrltail].dir == USB_DIR_OUT) {
+			kfree(usbhid->ctrl[usbhid->ctrltail].raw_report);
+			usbhid->ctrl[usbhid->ctrltail].raw_report = NULL;
+		}
+
+		usbhid->ctrltail = (usbhid->ctrltail + 1) &
+			(HID_CONTROL_FIFO_SIZE - 1);
+	}
 	spin_unlock_irq(&usbhid->lock);
+
 	usb_kill_urb(usbhid->urbin);
 	usb_kill_urb(usbhid->urbout);
 	usb_kill_urb(usbhid->urbctrl);
@@ -1222,6 +1251,8 @@
 	usbhid->urbout = NULL;
 
 	hid_free_buffers(hid_to_usb_dev(hid), hid);
+
+	mutex_unlock(&usbhid->mutex);
 }
 
 static int usbhid_power(struct hid_device *hid, int lvl)
@@ -1382,6 +1413,7 @@
 	INIT_WORK(&usbhid->reset_work, hid_reset);
 	timer_setup(&usbhid->io_retry, hid_retry_timeout, 0);
 	spin_lock_init(&usbhid->lock);
+	mutex_init(&usbhid->mutex);
 
 	ret = hid_add_device(hid);
 	if (ret) {
--- linux-ein-5.4.0.orig/drivers/hid/usbhid/hid-pidff.c
+++ linux-ein-5.4.0/drivers/hid/usbhid/hid-pidff.c
@@ -1292,6 +1292,7 @@
 
 	if (pidff->pool[PID_DEVICE_MANAGED_POOL].value &&
 	    pidff->pool[PID_DEVICE_MANAGED_POOL].value[0] == 0) {
+		error = -EPERM;
 		hid_notice(hid,
 			   "device does not support device managed pool\n");
 		goto fail;
--- linux-ein-5.4.0.orig/drivers/hid/usbhid/hiddev.c
+++ linux-ein-5.4.0/drivers/hid/usbhid/hiddev.c
@@ -241,12 +241,51 @@
 	return 0;
 }
 
+static int __hiddev_open(struct hiddev *hiddev, struct file *file)
+{
+	struct hiddev_list *list;
+	int error;
+
+	lockdep_assert_held(&hiddev->existancelock);
+
+	list = vzalloc(sizeof(*list));
+	if (!list)
+		return -ENOMEM;
+
+	mutex_init(&list->thread_lock);
+	list->hiddev = hiddev;
+
+	if (!hiddev->open++) {
+		error = hid_hw_power(hiddev->hid, PM_HINT_FULLON);
+		if (error < 0)
+			goto err_drop_count;
+
+		error = hid_hw_open(hiddev->hid);
+		if (error < 0)
+			goto err_normal_power;
+	}
+
+	spin_lock_irq(&hiddev->list_lock);
+	list_add_tail(&list->node, &hiddev->list);
+	spin_unlock_irq(&hiddev->list_lock);
+
+	file->private_data = list;
+
+	return 0;
+
+err_normal_power:
+	hid_hw_power(hiddev->hid, PM_HINT_NORMAL);
+err_drop_count:
+	hiddev->open--;
+	vfree(list);
+	return error;
+}
+
 /*
  * open file op
  */
 static int hiddev_open(struct inode *inode, struct file *file)
 {
-	struct hiddev_list *list;
 	struct usb_interface *intf;
 	struct hid_device *hid;
 	struct hiddev *hiddev;
@@ -255,66 +294,14 @@
 	intf = usbhid_find_interface(iminor(inode));
 	if (!intf)
 		return -ENODEV;
+
 	hid = usb_get_intfdata(intf);
 	hiddev = hid->hiddev;
 
-	if (!(list = vzalloc(sizeof(struct hiddev_list))))
-		return -ENOMEM;
-	mutex_init(&list->thread_lock);
-	list->hiddev = hiddev;
-	file->private_data = list;
-
-	/*
-	 * no need for locking because the USB major number
-	 * is shared which usbcore guards against disconnect
-	 */
-	if (list->hiddev->exist) {
-		if (!list->hiddev->open++) {
-			res = hid_hw_open(hiddev->hid);
-			if (res < 0)
-				goto bail;
-		}
-	} else {
-		res = -ENODEV;
-		goto bail;
-	}
-
-	spin_lock_irq(&list->hiddev->list_lock);
-	list_add_tail(&list->node, &hiddev->list);
-	spin_unlock_irq(&list->hiddev->list_lock);
-
 	mutex_lock(&hiddev->existancelock);
-	/*
-	 * recheck exist with existance lock held to
-	 * avoid opening a disconnected device
-	 */
-	if (!list->hiddev->exist) {
-		res = -ENODEV;
-		goto bail_unlock;
-	}
-	if (!list->hiddev->open++)
-		if (list->hiddev->exist) {
-			struct hid_device *hid = hiddev->hid;
-			res = hid_hw_power(hid, PM_HINT_FULLON);
-			if (res < 0)
-				goto bail_unlock;
-			res = hid_hw_open(hid);
-			if (res < 0)
-				goto bail_normal_power;
-		}
-	mutex_unlock(&hiddev->existancelock);
-	return 0;
-bail_normal_power:
-	hid_hw_power(hid, PM_HINT_NORMAL);
-bail_unlock:
+	res = hiddev->exist ? __hiddev_open(hiddev, file) : -ENODEV;
 	mutex_unlock(&hiddev->existancelock);
 
-	spin_lock_irq(&list->hiddev->list_lock);
-	list_del(&list->node);
-	spin_unlock_irq(&list->hiddev->list_lock);
-bail:
-	file->private_data = NULL;
-	vfree(list);
 	return res;
 }
 
@@ -532,12 +519,16 @@
 
 		switch (cmd) {
 		case HIDIOCGUSAGE:
+			if (uref->usage_index >= field->report_count)
+				goto inval;
 			uref->value = field->value[uref->usage_index];
 			if (copy_to_user(user_arg, uref, sizeof(*uref)))
 				goto fault;
 			goto goodreturn;
 
 		case HIDIOCSUSAGE:
+			if (uref->usage_index >= field->report_count)
+				goto inval;
 			field->value[uref->usage_index] = uref->value;
 			goto goodreturn;
 
@@ -954,9 +945,9 @@
 	hiddev->exist = 0;
 
 	if (hiddev->open) {
-		mutex_unlock(&hiddev->existancelock);
 		hid_hw_close(hiddev->hid);
 		wake_up_interruptible(&hiddev->wait);
+		mutex_unlock(&hiddev->existancelock);
 	} else {
 		mutex_unlock(&hiddev->existancelock);
 		kfree(hiddev);
--- linux-ein-5.4.0.orig/drivers/hid/usbhid/usbhid.h
+++ linux-ein-5.4.0/drivers/hid/usbhid/usbhid.h
@@ -80,6 +80,7 @@
 	dma_addr_t outbuf_dma;                                          /* Output buffer dma */
 	unsigned long last_out;							/* record of last output for timeouts */
 
+	struct mutex mutex;						/* start/stop/open/close */
 	spinlock_t lock;						/* fifo spinlock */
 	unsigned long iofl;                                             /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */
 	struct timer_list io_retry;                                     /* Retry timer */
--- linux-ein-5.4.0.orig/drivers/hid/wacom.h
+++ linux-ein-5.4.0/drivers/hid/wacom.h
@@ -91,6 +91,7 @@
 #include <linux/leds.h>
 #include <linux/usb/input.h>
 #include <linux/power_supply.h>
+#include <linux/timer.h>
 #include <asm/unaligned.h>
 
 /*
@@ -152,6 +153,7 @@
 		struct input_dev *input;
 		bool registered;
 		struct wacom_battery battery;
+		ktime_t active_time;
 	} remotes[WACOM_MAX_REMOTES];
 };
 
@@ -167,6 +169,7 @@
 	struct delayed_work init_work;
 	struct wacom_remote *remote;
 	struct work_struct mode_change_work;
+	struct timer_list idleprox_timer;
 	bool generic_has_leds;
 	struct wacom_leds {
 		struct wacom_group_leds *groups;
@@ -239,4 +242,5 @@
 struct wacom_led *wacom_led_next(struct wacom *wacom, struct wacom_led *cur);
 int wacom_equivalent_usage(int usage);
 int wacom_initialize_leds(struct wacom *wacom);
+void wacom_idleprox_timeout(struct timer_list *list);
 #endif
--- linux-ein-5.4.0.orig/drivers/hid/wacom_sys.c
+++ linux-ein-5.4.0/drivers/hid/wacom_sys.c
@@ -147,9 +147,9 @@
 	}
 
 	if (flush)
-		wacom_wac_queue_flush(hdev, &wacom_wac->pen_fifo);
+		wacom_wac_queue_flush(hdev, wacom_wac->pen_fifo);
 	else if (insert)
-		wacom_wac_queue_insert(hdev, &wacom_wac->pen_fifo,
+		wacom_wac_queue_insert(hdev, wacom_wac->pen_fifo,
 				       raw_data, report_size);
 
 	return insert && !flush;
@@ -160,6 +160,9 @@
 {
 	struct wacom *wacom = hid_get_drvdata(hdev);
 
+	if (wacom->wacom_wac.features.type == BOOTLOADER)
+		return 0;
+
 	if (size > WACOM_PKGLEN_MAX)
 		return 1;
 
@@ -319,9 +322,11 @@
 			data[0] = field->report->id;
 			ret = wacom_get_report(hdev, HID_FEATURE_REPORT,
 					       data, n, WAC_CMD_RETRIES);
-			if (ret == n) {
+			if (ret == n && features->type == HID_GENERIC) {
 				ret = hid_report_raw_event(hdev,
 					HID_FEATURE_REPORT, data, n, 0);
+			} else if (ret == 2 && features->type != HID_GENERIC) {
+				features->touch_max = data[1];
 			} else {
 				features->touch_max = 16;
 				hid_warn(hdev, "wacom_feature_mapping: "
@@ -724,7 +729,7 @@
 	 * Skip the query for this type and modify defaults based on
 	 * interface number.
 	 */
-	if (features->type == WIRELESS) {
+	if (features->type == WIRELESS && intf) {
 		if (intf->cur_altsetting->desc.bInterfaceNumber == 0)
 			features->device_type = WACOM_DEVICETYPE_WL_MONITOR;
 		else
@@ -1268,6 +1273,38 @@
 					       group);
 }
 
+static void wacom_devm_kfifo_release(struct device *dev, void *res)
+{
+	struct kfifo_rec_ptr_2 *devres = res;
+
+	kfifo_free(devres);
+}
+
+static int wacom_devm_kfifo_alloc(struct wacom *wacom)
+{
+	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
+	struct kfifo_rec_ptr_2 *pen_fifo;
+	int error;
+
+	pen_fifo = devres_alloc(wacom_devm_kfifo_release,
+			      sizeof(struct kfifo_rec_ptr_2),
+			      GFP_KERNEL);
+
+	if (!pen_fifo)
+		return -ENOMEM;
+
+	error = kfifo_alloc(pen_fifo, WACOM_PKGLEN_MAX, GFP_KERNEL);
+	if (error) {
+		devres_free(pen_fifo);
+		return error;
+	}
+
+	devres_add(&wacom->hdev->dev, pen_fifo);
+	wacom_wac->pen_fifo = pen_fifo;
+
+	return 0;
+}
+
 enum led_brightness wacom_leds_brightness_get(struct wacom_led *led)
 {
 	struct wacom *wacom = led->wacom;
@@ -2090,7 +2127,7 @@
 
 	error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac);
 	if (error) {
-		/* no pad in use on this interface */
+		/* no pad events using this interface */
 		input_free_device(pad_input_dev);
 		wacom_wac->pad_input = NULL;
 		pad_input_dev = NULL;
@@ -2183,7 +2220,7 @@
 	if ((features->type == HID_GENERIC) && !strcmp("Wacom HID", features->name)) {
 		char *product_name = wacom->hdev->name;
 
-		if (hid_is_using_ll_driver(wacom->hdev, &usb_hid_driver)) {
+		if (hid_is_usb(wacom->hdev)) {
 			struct usb_interface *intf = to_usb_interface(wacom->hdev->dev.parent);
 			struct usb_device *dev = interface_to_usbdev(intf);
 			product_name = dev->product;
@@ -2382,8 +2419,13 @@
 		goto fail_quirks;
 	}
 
-	if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR)
+	if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) {
 		error = hid_hw_open(hdev);
+		if (error) {
+			hid_err(hdev, "hw open failed\n");
+			goto fail_quirks;
+		}
+	}
 
 	wacom_set_shared_values(wacom_wac);
 	devres_close_group(&hdev->dev, wacom);
@@ -2414,6 +2456,9 @@
 
 	wacom_destroy_battery(wacom);
 
+	if (!usbdev)
+		return;
+
 	/* Stylus interface */
 	hdev1 = usb_get_intfdata(usbdev->config->interface[1]);
 	wacom1 = hid_get_drvdata(hdev1);
@@ -2484,6 +2529,18 @@
 	return;
 }
 
+static void wacom_remote_destroy_battery(struct wacom *wacom, int index)
+{
+	struct wacom_remote *remote = wacom->remote;
+
+	if (remote->remotes[index].battery.battery) {
+		devres_release_group(&wacom->hdev->dev,
+				     &remote->remotes[index].battery.bat_desc);
+		remote->remotes[index].battery.battery = NULL;
+		remote->remotes[index].active_time = 0;
+	}
+}
+
 static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index)
 {
 	struct wacom_remote *remote = wacom->remote;
@@ -2498,9 +2555,7 @@
 			remote->remotes[i].registered = false;
 			spin_unlock_irqrestore(&remote->remote_lock, flags);
 
-			if (remote->remotes[i].battery.battery)
-				devres_release_group(&wacom->hdev->dev,
-						     &remote->remotes[i].battery.bat_desc);
+			wacom_remote_destroy_battery(wacom, i);
 
 			if (remote->remotes[i].group.name)
 				devres_release_group(&wacom->hdev->dev,
@@ -2508,7 +2563,6 @@
 
 			remote->remotes[i].serial = 0;
 			remote->remotes[i].group.name = NULL;
-			remote->remotes[i].battery.battery = NULL;
 			wacom->led.groups[i].select = WACOM_STATUS_UNKNOWN;
 		}
 	}
@@ -2593,6 +2647,9 @@
 	if (remote->remotes[index].battery.battery)
 		return 0;
 
+	if (!remote->remotes[index].active_time)
+		return 0;
+
 	if (wacom->led.groups[index].select == WACOM_STATUS_UNKNOWN)
 		return 0;
 
@@ -2608,6 +2665,7 @@
 {
 	struct wacom *wacom = container_of(work, struct wacom, remote_work);
 	struct wacom_remote *remote = wacom->remote;
+	ktime_t kt = ktime_get();
 	struct wacom_remote_data data;
 	unsigned long flags;
 	unsigned int count;
@@ -2634,6 +2692,10 @@
 		serial = data.remote[i].serial;
 		if (data.remote[i].connected) {
 
+			if (kt - remote->remotes[i].active_time > WACOM_REMOTE_BATTERY_TIMEOUT
+			    && remote->remotes[i].active_time != 0)
+				wacom_remote_destroy_battery(wacom, i);
+
 			if (remote->remotes[i].serial == serial) {
 				wacom_remote_attach_battery(wacom, i);
 				continue;
@@ -2693,8 +2755,6 @@
 static int wacom_probe(struct hid_device *hdev,
 		const struct hid_device_id *id)
 {
-	struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
-	struct usb_device *dev = interface_to_usbdev(intf);
 	struct wacom *wacom;
 	struct wacom_wac *wacom_wac;
 	struct wacom_features *features;
@@ -2722,21 +2782,28 @@
 	if (features->check_for_hid_type && features->hid_type != hdev->type)
 		return -ENODEV;
 
-	error = kfifo_alloc(&wacom_wac->pen_fifo, WACOM_PKGLEN_MAX, GFP_KERNEL);
+	error = wacom_devm_kfifo_alloc(wacom);
 	if (error)
 		return error;
 
 	wacom_wac->hid_data.inputmode = -1;
 	wacom_wac->mode_report = -1;
 
-	wacom->usbdev = dev;
-	wacom->intf = intf;
+	if (hid_is_usb(hdev)) {
+		struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
+		struct usb_device *dev = interface_to_usbdev(intf);
+
+		wacom->usbdev = dev;
+		wacom->intf = intf;
+	}
+
 	mutex_init(&wacom->lock);
 	INIT_DELAYED_WORK(&wacom->init_work, wacom_init_work);
 	INIT_WORK(&wacom->wireless_work, wacom_wireless_work);
 	INIT_WORK(&wacom->battery_work, wacom_battery_work);
 	INIT_WORK(&wacom->remote_work, wacom_remote_work);
 	INIT_WORK(&wacom->mode_change_work, wacom_mode_change_work);
+	timer_setup(&wacom->idleprox_timer, &wacom_idleprox_timeout, TIMER_DEFERRABLE);
 
 	/* ask for the report descriptor to be loaded by HID */
 	error = hid_parse(hdev);
@@ -2745,6 +2812,11 @@
 		return error;
 	}
 
+	if (features->type == BOOTLOADER) {
+		hid_warn(hdev, "Using device in hidraw-only mode");
+		return hid_hw_start(hdev, HID_CONNECT_HIDRAW);
+	}
+
 	error = wacom_parse_and_register(wacom, false);
 	if (error)
 		return error;
@@ -2776,6 +2848,7 @@
 	cancel_work_sync(&wacom->battery_work);
 	cancel_work_sync(&wacom->remote_work);
 	cancel_work_sync(&wacom->mode_change_work);
+	del_timer_sync(&wacom->idleprox_timer);
 	if (hdev->bus == BUS_BLUETOOTH)
 		device_remove_file(&hdev->dev, &dev_attr_speed);
 
@@ -2784,8 +2857,6 @@
 
 	if (wacom->wacom_wac.features.type != REMOTE)
 		wacom_release_resources(wacom);
-
-	kfifo_free(&wacom_wac->pen_fifo);
 }
 
 #ifdef CONFIG_PM
--- linux-ein-5.4.0.orig/drivers/hid/wacom_wac.c
+++ linux-ein-5.4.0/drivers/hid/wacom_wac.c
@@ -11,6 +11,7 @@
 #include "wacom_wac.h"
 #include "wacom.h"
 #include <linux/input/mt.h>
+#include <linux/jiffies.h>
 
 /* resolution for penabled devices */
 #define WACOM_PL_RES		20
@@ -41,6 +42,43 @@
 
 static void wacom_update_led(struct wacom *wacom, int button_count, int mask,
 			     int group);
+
+static void wacom_force_proxout(struct wacom_wac *wacom_wac)
+{
+	struct input_dev *input = wacom_wac->pen_input;
+
+	wacom_wac->shared->stylus_in_proximity = 0;
+
+	input_report_key(input, BTN_TOUCH, 0);
+	input_report_key(input, BTN_STYLUS, 0);
+	input_report_key(input, BTN_STYLUS2, 0);
+	input_report_key(input, BTN_STYLUS3, 0);
+	input_report_key(input, wacom_wac->tool[0], 0);
+	if (wacom_wac->serial[0]) {
+		input_report_abs(input, ABS_MISC, 0);
+	}
+	input_report_abs(input, ABS_PRESSURE, 0);
+
+	wacom_wac->tool[0] = 0;
+	wacom_wac->id[0] = 0;
+	wacom_wac->serial[0] = 0;
+
+	input_sync(input);
+}
+
+void wacom_idleprox_timeout(struct timer_list *list)
+{
+	struct wacom *wacom = from_timer(wacom, list, idleprox_timer);
+	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
+
+	if (!wacom_wac->hid_data.sense_state) {
+		return;
+	}
+
+	hid_warn(wacom->hdev, "%s: tool appears to be hung in-prox. forcing it out.\n", __func__);
+	wacom_force_proxout(wacom_wac);
+}
+
 /*
  * Percent of battery capacity for Graphire.
  * 8th value means AC online and show 100% capacity.
@@ -638,9 +676,26 @@
 	return (tool_id & ~0xFFF) << 4 | (tool_id & 0xFFF);
 }
 
+static bool wacom_is_art_pen(int tool_id)
+{
+	bool is_art_pen = false;
+
+	switch (tool_id) {
+	case 0x885:	/* Intuos3 Marker Pen */
+	case 0x804:	/* Intuos4/5 13HD/24HD Marker Pen */
+	case 0x10804:	/* Intuos4/5 13HD/24HD Art Pen */
+		is_art_pen = true;
+		break;
+	}
+	return is_art_pen;
+}
+
 static int wacom_intuos_get_tool_type(int tool_id)
 {
-	int tool_type;
+	int tool_type = BTN_TOOL_PEN;
+
+	if (wacom_is_art_pen(tool_id))
+		return tool_type;
 
 	switch (tool_id) {
 	case 0x812: /* Inking pen */
@@ -655,17 +710,17 @@
 	case 0x852:
 	case 0x823: /* Intuos3 Grip Pen */
 	case 0x813: /* Intuos3 Classic Pen */
-	case 0x885: /* Intuos3 Marker Pen */
 	case 0x802: /* Intuos4/5 13HD/24HD General Pen */
-	case 0x804: /* Intuos4/5 13HD/24HD Marker Pen */
 	case 0x8e2: /* IntuosHT2 pen */
 	case 0x022:
-	case 0x10804: /* Intuos4/5 13HD/24HD Art Pen */
+	case 0x200: /* Pro Pen 3 */
+	case 0x04200: /* Pro Pen 3 */
 	case 0x10842: /* MobileStudio Pro Pro Pen slim */
 	case 0x14802: /* Intuos4/5 13HD/24HD Classic Pen */
 	case 0x16802: /* Cintiq 13HD Pro Pen */
 	case 0x18802: /* DTH2242 Pen */
 	case 0x10802: /* Intuos4/5 13HD/24HD General Pen */
+	case 0x80842: /* Intuos Pro and Cintiq Pro 3D Pen */
 		tool_type = BTN_TOOL_PEN;
 		break;
 
@@ -718,10 +773,6 @@
 	case 0x10902: /* Intuos4/5 13HD/24HD Airbrush */
 		tool_type = BTN_TOOL_AIRBRUSH;
 		break;
-
-	default: /* Unknown tool */
-		tool_type = BTN_TOOL_PEN;
-		break;
 	}
 	return tool_type;
 }
@@ -780,7 +831,7 @@
 	/* Enter report */
 	if ((data[1] & 0xfc) == 0xc0) {
 		/* serial number of the tool */
-		wacom->serial[idx] = ((data[3] & 0x0f) << 28) +
+		wacom->serial[idx] = ((__u64)(data[3] & 0x0f) << 28) +
 			(data[4] << 20) + (data[5] << 12) +
 			(data[6] << 4) + (data[7] >> 4);
 
@@ -1076,6 +1127,7 @@
 	if (index < 0 || !remote->remotes[index].registered)
 		goto out;
 
+	remote->remotes[i].active_time = ktime_get();
 	input = remote->remotes[index].input;
 
 	input_report_key(input, BTN_0, (data[9] & 0x01));
@@ -1255,6 +1307,9 @@
 
 	struct input_dev *pen_input = wacom->pen_input;
 	unsigned char *data = wacom->data;
+	int number_of_valid_frames = 0;
+	ktime_t time_interval = 15000000;
+	ktime_t time_packet_received = ktime_get();
 	int i;
 
 	if (wacom->features.type == INTUOSP2_BT ||
@@ -1275,12 +1330,30 @@
 		wacom->id[0] |= (wacom->serial[0] >> 32) & 0xFFFFF;
 	}
 
+	/* number of valid frames */
 	for (i = 0; i < pen_frames; i++) {
 		unsigned char *frame = &data[i*pen_frame_len + 1];
 		bool valid = frame[0] & 0x80;
+
+		if (valid)
+			number_of_valid_frames++;
+	}
+
+	if (number_of_valid_frames) {
+		if (wacom->hid_data.time_delayed)
+			time_interval = ktime_get() - wacom->hid_data.time_delayed;
+		time_interval = div_u64(time_interval, number_of_valid_frames);
+		wacom->hid_data.time_delayed = time_packet_received;
+	}
+
+	for (i = 0; i < number_of_valid_frames; i++) {
+		unsigned char *frame = &data[i*pen_frame_len + 1];
+		bool valid = frame[0] & 0x80;
 		bool prox = frame[0] & 0x40;
 		bool range = frame[0] & 0x20;
 		bool invert = frame[0] & 0x10;
+		int frames_number_reversed = number_of_valid_frames - i - 1;
+		ktime_t event_timestamp = time_packet_received - frames_number_reversed * time_interval;
 
 		if (!valid)
 			continue;
@@ -1293,6 +1366,7 @@
 			wacom->tool[0] = 0;
 			wacom->id[0] = 0;
 			wacom->serial[0] = 0;
+			wacom->hid_data.time_delayed = 0;
 			return;
 		}
 
@@ -1329,6 +1403,7 @@
 						 get_unaligned_le16(&frame[11]));
 			}
 		}
+
 		if (wacom->tool[0]) {
 			input_report_abs(pen_input, ABS_PRESSURE, get_unaligned_le16(&frame[5]));
 			if (wacom->features.type == INTUOSP2_BT ||
@@ -1352,6 +1427,9 @@
 
 		wacom->shared->stylus_in_proximity = prox;
 
+		/* add timestamp to unpack the frames */
+		input_set_timestamp(pen_input, event_timestamp);
+
 		input_sync(pen_input);
 	}
 }
@@ -1427,11 +1505,13 @@
 {
 	struct input_dev *pad_input = wacom->pad_input;
 	unsigned char *data = wacom->data;
+	int nbuttons = wacom->features.numbered_buttons;
 
-	int buttons = data[282] | ((data[281] & 0x40) << 2);
+	int expresskeys = data[282];
+	int center = (data[281] & 0x40) >> 6;
 	int ring = data[285] & 0x7F;
 	bool ringstatus = data[285] & 0x80;
-	bool prox = buttons || ringstatus;
+	bool prox = expresskeys || center || ringstatus;
 
 	/* Fix touchring data: userspace expects 0 at left and increasing clockwise */
 	ring = 71 - ring;
@@ -1439,7 +1519,8 @@
 	if (ring > 71)
 		ring -= 72;
 
-	wacom_report_numbered_buttons(pad_input, 9, buttons);
+	wacom_report_numbered_buttons(pad_input, nbuttons,
+                                      expresskeys | (center << (nbuttons - 1)));
 
 	input_report_abs(pad_input, ABS_WHEEL, ringstatus ? ring : 0);
 
@@ -1840,6 +1921,7 @@
 	int fmax = field->logical_maximum;
 	unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
 	int resolution_code = code;
+	int resolution = hidinput_calc_abs_res(field, resolution_code);
 
 	if (equivalent_usage == HID_DG_TWIST) {
 		resolution_code = ABS_RZ;
@@ -1862,8 +1944,15 @@
 	switch (type) {
 	case EV_ABS:
 		input_set_abs_params(input, code, fmin, fmax, fuzz, 0);
-		input_abs_set_res(input, code,
-				  hidinput_calc_abs_res(field, resolution_code));
+
+		/* older tablet may miss physical usage */
+		if ((code == ABS_X || code == ABS_Y) && !resolution) {
+			resolution = WACOM_INTUOS_RES;
+			hid_warn(input,
+				 "Wacom usage (%d) missing resolution \n",
+				 code);
+		}
+		input_abs_set_res(input, code, resolution);
 		break;
 	case EV_KEY:
 		input_set_capability(input, EV_KEY, code);
@@ -1880,18 +1969,7 @@
 static void wacom_wac_battery_usage_mapping(struct hid_device *hdev,
 		struct hid_field *field, struct hid_usage *usage)
 {
-	struct wacom *wacom = hid_get_drvdata(hdev);
-	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
-	struct wacom_features *features = &wacom_wac->features;
-	unsigned equivalent_usage = wacom_equivalent_usage(usage->hid);
-
-	switch (equivalent_usage) {
-	case HID_DG_BATTERYSTRENGTH:
-	case WACOM_HID_WD_BATTERY_LEVEL:
-	case WACOM_HID_WD_BATTERY_CHARGING:
-		features->quirks |= WACOM_QUIRK_BATTERY;
-		break;
-	}
+	return;
 }
 
 static void wacom_wac_battery_event(struct hid_device *hdev, struct hid_field *field,
@@ -1912,18 +1990,21 @@
 			wacom_wac->hid_data.bat_connected = 1;
 			wacom_wac->hid_data.bat_status = WACOM_POWER_SUPPLY_STATUS_AUTO;
 		}
+		wacom_wac->features.quirks |= WACOM_QUIRK_BATTERY;
 		break;
 	case WACOM_HID_WD_BATTERY_LEVEL:
 		value = value * 100 / (field->logical_maximum - field->logical_minimum);
 		wacom_wac->hid_data.battery_capacity = value;
 		wacom_wac->hid_data.bat_connected = 1;
 		wacom_wac->hid_data.bat_status = WACOM_POWER_SUPPLY_STATUS_AUTO;
+		wacom_wac->features.quirks |= WACOM_QUIRK_BATTERY;
 		break;
 	case WACOM_HID_WD_BATTERY_CHARGING:
 		wacom_wac->hid_data.bat_charging = value;
 		wacom_wac->hid_data.ps_connected = value;
 		wacom_wac->hid_data.bat_connected = 1;
 		wacom_wac->hid_data.bat_status = WACOM_POWER_SUPPLY_STATUS_AUTO;
+		wacom_wac->features.quirks |= WACOM_QUIRK_BATTERY;
 		break;
 	}
 }
@@ -1939,18 +2020,15 @@
 {
 	struct wacom *wacom = hid_get_drvdata(hdev);
 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
-	struct wacom_features *features = &wacom_wac->features;
 
-	if (features->quirks & WACOM_QUIRK_BATTERY) {
-		int status = wacom_wac->hid_data.bat_status;
-		int capacity = wacom_wac->hid_data.battery_capacity;
-		bool charging = wacom_wac->hid_data.bat_charging;
-		bool connected = wacom_wac->hid_data.bat_connected;
-		bool powered = wacom_wac->hid_data.ps_connected;
+	int status = wacom_wac->hid_data.bat_status;
+	int capacity = wacom_wac->hid_data.battery_capacity;
+	bool charging = wacom_wac->hid_data.bat_charging;
+	bool connected = wacom_wac->hid_data.bat_connected;
+	bool powered = wacom_wac->hid_data.ps_connected;
 
-		wacom_notify_battery(wacom_wac, status, capacity, charging,
-				     connected, powered);
-	}
+	wacom_notify_battery(wacom_wac, status, capacity, charging,
+			     connected, powered);
 }
 
 static void wacom_wac_pad_usage_mapping(struct hid_device *hdev,
@@ -2003,7 +2081,6 @@
 		wacom_wac->has_mute_touch_switch = true;
 		usage->type = EV_SW;
 		usage->code = SW_MUTE_DEVICE;
-		features->device_type |= WACOM_DEVICETYPE_PAD;
 		break;
 	case WACOM_HID_WD_TOUCHSTRIP:
 		wacom_map_usage(input, usage, field, EV_ABS, ABS_RX, 0);
@@ -2083,6 +2160,30 @@
 			wacom_wac->hid_data.inrange_state |= value;
 	}
 
+	/* Process touch switch state first since it is reported through touch interface,
+	 * which is indepentent of pad interface. In the case when there are no other pad
+	 * events, the pad interface will not even be created.
+	 */
+	if ((equivalent_usage == WACOM_HID_WD_MUTE_DEVICE) ||
+	   (equivalent_usage == WACOM_HID_WD_TOUCHONOFF)) {
+		if (wacom_wac->shared->touch_input) {
+			bool *is_touch_on = &wacom_wac->shared->is_touch_on;
+
+			if (equivalent_usage == WACOM_HID_WD_MUTE_DEVICE && value)
+				*is_touch_on = !(*is_touch_on);
+			else if (equivalent_usage == WACOM_HID_WD_TOUCHONOFF)
+				*is_touch_on = value;
+
+			input_report_switch(wacom_wac->shared->touch_input,
+					    SW_MUTE_DEVICE, !(*is_touch_on));
+			input_sync(wacom_wac->shared->touch_input);
+		}
+		return;
+	}
+
+	if (!input)
+		return;
+
 	switch (equivalent_usage) {
 	case WACOM_HID_WD_TOUCHRING:
 		/*
@@ -2096,14 +2197,16 @@
 		    (hdev->product == 0x34d || hdev->product == 0x34e ||  /* MobileStudio Pro */
 		     hdev->product == 0x357 || hdev->product == 0x358 ||  /* Intuos Pro 2 */
 		     hdev->product == 0x392 ||				  /* Intuos Pro 2 */
-		     hdev->product == 0x398 || hdev->product == 0x399)) { /* MobileStudio Pro */
+		     hdev->product == 0x398 || hdev->product == 0x399 ||  /* MobileStudio Pro */
+		     hdev->product == 0x3AA)) {				  /* MobileStudio Pro */
 			value = (field->logical_maximum - value);
 
 			if (hdev->product == 0x357 || hdev->product == 0x358 ||
 			    hdev->product == 0x392)
 				value = wacom_offset_rotation(input, usage, value, 3, 16);
 			else if (hdev->product == 0x34d || hdev->product == 0x34e ||
-				 hdev->product == 0x398 || hdev->product == 0x399)
+				 hdev->product == 0x398 || hdev->product == 0x399 ||
+				 hdev->product == 0x3AA)
 				value = wacom_offset_rotation(input, usage, value, 1, 2);
 		}
 		else {
@@ -2116,22 +2219,6 @@
 			input_event(input, usage->type, usage->code, 0);
 		break;
 
-	case WACOM_HID_WD_MUTE_DEVICE:
-	case WACOM_HID_WD_TOUCHONOFF:
-		if (wacom_wac->shared->touch_input) {
-			bool *is_touch_on = &wacom_wac->shared->is_touch_on;
-
-			if (equivalent_usage == WACOM_HID_WD_MUTE_DEVICE && value)
-				*is_touch_on = !(*is_touch_on);
-			else if (equivalent_usage == WACOM_HID_WD_TOUCHONOFF)
-				*is_touch_on = value;
-
-			input_report_switch(wacom_wac->shared->touch_input,
-					    SW_MUTE_DEVICE, !(*is_touch_on));
-			input_sync(wacom_wac->shared->touch_input);
-		}
-		break;
-
 	case WACOM_HID_WD_MODE_CHANGE:
 		if (wacom_wac->is_direct_mode != value) {
 			wacom_wac->is_direct_mode = value;
@@ -2283,6 +2370,7 @@
 		value = field->logical_maximum - value;
 		break;
 	case HID_DG_INRANGE:
+		mod_timer(&wacom->idleprox_timer, jiffies + msecs_to_jiffies(100));
 		wacom_wac->hid_data.inrange_state = value;
 		if (!(features->quirks & WACOM_QUIRK_SENSE))
 			wacom_wac->hid_data.sense_state = value;
@@ -2307,6 +2395,9 @@
 		}
 		return;
 	case HID_DG_TWIST:
+		/* don't modify the value if the pen doesn't support the feature */
+		if (!wacom_is_art_pen(wacom_wac->id[0])) return;
+
 		/*
 		 * Userspace expects pen twist to have its zero point when
 		 * the buttons/finger is on the tablet's left. HID values
@@ -2528,7 +2619,7 @@
 	    !wacom_wac->shared->is_touch_on) {
 		if (!wacom_wac->shared->touch_down)
 			return;
-		prox = 0;
+		prox = false;
 	}
 
 	wacom_wac->hid_data.num_received++;
@@ -2561,6 +2652,24 @@
 	}
 }
 
+static bool wacom_wac_slot_is_active(struct input_dev *dev, int key)
+{
+	struct input_mt *mt = dev->mt;
+	struct input_mt_slot *s;
+
+	if (!mt)
+		return false;
+
+	for (s = mt->slots; s != mt->slots + mt->num_slots; s++) {
+		if (s->key == key &&
+			input_mt_get_value(s, ABS_MT_TRACKING_ID) >= 0) {
+			return true;
+		}
+	}
+
+	return false;
+}
+
 static void wacom_wac_finger_event(struct hid_device *hdev,
 		struct hid_field *field, struct hid_usage *usage, __s32 value)
 {
@@ -2573,6 +2682,9 @@
 		return;
 
 	switch (equivalent_usage) {
+	case HID_DG_CONFIDENCE:
+		wacom_wac->hid_data.confidence = value;
+		break;
 	case HID_GD_X:
 		wacom_wac->hid_data.x = value;
 		break;
@@ -2595,13 +2707,24 @@
 		wacom_wac->is_invalid_bt_frame = !value;
 		return;
 	case HID_DG_CONTACTMAX:
-		features->touch_max = value;
+		if (!features->touch_max) {
+			features->touch_max = value;
+		} else {
+			hid_warn(hdev, "%s: ignoring attempt to overwrite non-zero touch_max "
+				 "%d -> %d\n", __func__, features->touch_max, value);
+		}
 		return;
 	}
 
 	if (usage->usage_index + 1 == field->report_count) {
-		if (equivalent_usage == wacom_wac->hid_data.last_slot_field)
-			wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+		if (equivalent_usage == wacom_wac->hid_data.last_slot_field) {
+			bool touch_removed = wacom_wac_slot_is_active(wacom_wac->touch_input,
+				wacom_wac->hid_data.id) && !wacom_wac->hid_data.tipswitch;
+
+			if (wacom_wac->hid_data.confidence || touch_removed) {
+				wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+			}
+		}
 	}
 }
 
@@ -2615,6 +2738,12 @@
 
 	wacom_wac->is_invalid_bt_frame = false;
 
+	hid_data->confidence = true;
+
+	hid_data->cc_report = 0;
+	hid_data->cc_index = -1;
+	hid_data->cc_value_index = -1;
+
 	for (i = 0; i < report->maxfield; i++) {
 		struct hid_field *field = report->field[i];
 		int j;
@@ -2635,9 +2764,28 @@
 			case HID_DG_TIPSWITCH:
 				hid_data->last_slot_field = equivalent_usage;
 				break;
+			case HID_DG_CONTACTCOUNT:
+				hid_data->cc_report = report->id;
+				hid_data->cc_index = i;
+				hid_data->cc_value_index = j;
+				break;
 			}
 		}
 	}
+
+	if (hid_data->cc_report != 0 &&
+	    hid_data->cc_index >= 0) {
+		struct hid_field *field = report->field[hid_data->cc_index];
+		int value = field->value[hid_data->cc_value_index];
+		if (value) {
+			hid_data->num_expected = value;
+			hid_data->num_received = 0;
+		}
+	}
+	else {
+		hid_data->num_expected = wacom_wac->features.touch_max;
+		hid_data->num_received = 0;
+	}
 }
 
 static void wacom_wac_finger_report(struct hid_device *hdev,
@@ -2647,7 +2795,6 @@
 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
 	struct input_dev *input = wacom_wac->touch_input;
 	unsigned touch_max = wacom_wac->features.touch_max;
-	struct hid_data *hid_data = &wacom_wac->hid_data;
 
 	/* If more packets of data are expected, give us a chance to
 	 * process them rather than immediately syncing a partial
@@ -2661,7 +2808,7 @@
 
 	input_sync(input);
 	wacom_wac->hid_data.num_received = 0;
-	hid_data->num_expected = 0;
+	wacom_wac->hid_data.num_expected = 0;
 
 	/* keep touch state for pen event */
 	wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac);
@@ -2702,7 +2849,7 @@
 	/* usage tests must precede field tests */
 	if (WACOM_BATTERY_USAGE(usage))
 		wacom_wac_battery_event(hdev, field, usage, value);
-	else if (WACOM_PAD_FIELD(field) && wacom->wacom_wac.pad_input)
+	else if (WACOM_PAD_FIELD(field))
 		wacom_wac_pad_event(hdev, field, usage, value);
 	else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
 		wacom_wac_pen_event(hdev, field, usage, value);
@@ -2736,73 +2883,12 @@
 	}
 }
 
-static void wacom_set_num_expected(struct hid_device *hdev,
-				   struct hid_report *report,
-				   int collection_index,
-				   struct hid_field *field,
-				   int field_index)
-{
-	struct wacom *wacom = hid_get_drvdata(hdev);
-	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
-	struct hid_data *hid_data = &wacom_wac->hid_data;
-	unsigned int original_collection_level =
-		hdev->collection[collection_index].level;
-	bool end_collection = false;
-	int i;
-
-	if (hid_data->num_expected)
-		return;
-
-	// find the contact count value for this segment
-	for (i = field_index; i < report->maxfield && !end_collection; i++) {
-		struct hid_field *field = report->field[i];
-		unsigned int field_level =
-			hdev->collection[field->usage[0].collection_index].level;
-		unsigned int j;
-
-		if (field_level != original_collection_level)
-			continue;
-
-		for (j = 0; j < field->maxusage; j++) {
-			struct hid_usage *usage = &field->usage[j];
-
-			if (usage->collection_index != collection_index) {
-				end_collection = true;
-				break;
-			}
-			if (wacom_equivalent_usage(usage->hid) == HID_DG_CONTACTCOUNT) {
-				hid_data->cc_report = report->id;
-				hid_data->cc_index = i;
-				hid_data->cc_value_index = j;
-
-				if (hid_data->cc_report != 0 &&
-				    hid_data->cc_index >= 0) {
-
-					struct hid_field *field =
-						report->field[hid_data->cc_index];
-					int value =
-						field->value[hid_data->cc_value_index];
-
-					if (value)
-						hid_data->num_expected = value;
-				}
-			}
-		}
-	}
-
-	if (hid_data->cc_report == 0 || hid_data->cc_index < 0)
-		hid_data->num_expected = wacom_wac->features.touch_max;
-}
-
 static int wacom_wac_collection(struct hid_device *hdev, struct hid_report *report,
 			 int collection_index, struct hid_field *field,
 			 int field_index)
 {
 	struct wacom *wacom = hid_get_drvdata(hdev);
 
-	if (WACOM_FINGER_FIELD(field))
-		wacom_set_num_expected(hdev, report, collection_index, field,
-				       field_index);
 	wacom_report_events(hdev, report, collection_index, field_index);
 
 	/*
@@ -2815,7 +2901,9 @@
 	if (report->type != HID_INPUT_REPORT)
 		return -1;
 
-	if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
+	if (WACOM_PAD_FIELD(field))
+		return 0;
+	else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
 		wacom_wac_pen_report(hdev, report);
 	else if (WACOM_FINGER_FIELD(field) && wacom->wacom_wac.touch_input)
 		wacom_wac_finger_report(hdev, report);
@@ -3609,8 +3697,6 @@
 {
 	struct wacom_features *features = &wacom_wac->features;
 
-	input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
-
 	if (!(features->device_type & WACOM_DEVICETYPE_PEN))
 		return -ENODEV;
 
@@ -3625,6 +3711,7 @@
 		return 0;
 	}
 
+	input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
 	__set_bit(BTN_TOUCH, input_dev->keybit);
 	__set_bit(ABS_MISC, input_dev->absbit);
 
@@ -3777,8 +3864,6 @@
 {
 	struct wacom_features *features = &wacom_wac->features;
 
-	input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
-
 	if (!(features->device_type & WACOM_DEVICETYPE_TOUCH))
 		return -ENODEV;
 
@@ -3791,6 +3876,7 @@
 		/* setup has already been done */
 		return 0;
 
+	input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
 	__set_bit(BTN_TOUCH, input_dev->keybit);
 
 	if (features->touch_max == 1) {
@@ -3866,7 +3952,7 @@
 		    wacom_wac->shared->touch->product == 0xF6) {
 			input_dev->evbit[0] |= BIT_MASK(EV_SW);
 			__set_bit(SW_MUTE_DEVICE, input_dev->swbit);
-			wacom_wac->shared->has_mute_touch_switch = true;
+			wacom_wac->has_mute_touch_switch = true;
 		}
 		/* fall through */
 
@@ -4752,10 +4838,23 @@
 	{ "Wacom Intuos Pro S", 31920, 19950, 8191, 63,
 	  INTUOSP2S_BT, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES, 7,
 	  .touch_max = 10 };
+static const struct wacom_features wacom_features_0x3c6 =
+	{ "Wacom Intuos BT S", 15200, 9500, 4095, 63,
+	  INTUOSHT3_BT, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x3c8 =
+	{ "Wacom Intuos BT M", 21600, 13500, 4095, 63,
+	  INTUOSHT3_BT, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x3dd =
+	{ "Wacom Intuos Pro S", 31920, 19950, 8191, 63,
+	  INTUOSP2S_BT, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES, 7,
+	  .touch_max = 10 };
 
 static const struct wacom_features wacom_features_HID_ANY_ID =
 	{ "Wacom HID", .type = HID_GENERIC, .oVid = HID_ANY_ID, .oPid = HID_ANY_ID };
 
+static const struct wacom_features wacom_features_0x94 =
+	{ "Wacom Bootloader", .type = BOOTLOADER };
+
 #define USB_DEVICE_WACOM(prod)						\
 	HID_DEVICE(BUS_USB, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\
 	.driver_data = (kernel_ulong_t)&wacom_features_##prod
@@ -4829,6 +4928,7 @@
 	{ USB_DEVICE_WACOM(0x84) },
 	{ USB_DEVICE_WACOM(0x90) },
 	{ USB_DEVICE_WACOM(0x93) },
+	{ USB_DEVICE_WACOM(0x94) },
 	{ USB_DEVICE_WACOM(0x97) },
 	{ USB_DEVICE_WACOM(0x9A) },
 	{ USB_DEVICE_WACOM(0x9F) },
@@ -4925,6 +5025,9 @@
 	{ USB_DEVICE_WACOM(0x37A) },
 	{ USB_DEVICE_WACOM(0x37B) },
 	{ BT_DEVICE_WACOM(0x393) },
+	{ BT_DEVICE_WACOM(0x3c6) },
+	{ BT_DEVICE_WACOM(0x3c8) },
+	{ BT_DEVICE_WACOM(0x3dd) },
 	{ USB_DEVICE_WACOM(0x4001) },
 	{ USB_DEVICE_WACOM(0x4004) },
 	{ USB_DEVICE_WACOM(0x5000) },
--- linux-ein-5.4.0.orig/drivers/hid/wacom_wac.h
+++ linux-ein-5.4.0/drivers/hid/wacom_wac.h
@@ -15,6 +15,7 @@
 #define WACOM_NAME_MAX		64
 #define WACOM_MAX_REMOTES	5
 #define WACOM_STATUS_UNKNOWN	255
+#define WACOM_REMOTE_BATTERY_TIMEOUT	21000000000ll
 
 /* packet length for individual models */
 #define WACOM_PKGLEN_BBFUN	 9
@@ -122,7 +123,7 @@
 #define WACOM_HID_WD_TOUCHONOFF         (WACOM_HID_UP_WACOMDIGITIZER | 0x0454)
 #define WACOM_HID_WD_BATTERY_LEVEL      (WACOM_HID_UP_WACOMDIGITIZER | 0x043b)
 #define WACOM_HID_WD_EXPRESSKEY00       (WACOM_HID_UP_WACOMDIGITIZER | 0x0910)
-#define WACOM_HID_WD_EXPRESSKEYCAP00    (WACOM_HID_UP_WACOMDIGITIZER | 0x0950)
+#define WACOM_HID_WD_EXPRESSKEYCAP00    (WACOM_HID_UP_WACOMDIGITIZER | 0x0940)
 #define WACOM_HID_WD_MODE_CHANGE        (WACOM_HID_UP_WACOMDIGITIZER | 0x0980)
 #define WACOM_HID_WD_MUTE_DEVICE        (WACOM_HID_UP_WACOMDIGITIZER | 0x0981)
 #define WACOM_HID_WD_CONTROLPANEL       (WACOM_HID_UP_WACOMDIGITIZER | 0x0982)
@@ -242,6 +243,7 @@
 	MTTPC,
 	MTTPC_B,
 	HID_GENERIC,
+	BOOTLOADER,
 	MAX_TYPE
 };
 
@@ -300,6 +302,7 @@
 	bool tipswitch;
 	bool barrelswitch;
 	bool barrelswitch2;
+	bool confidence;
 	int x;
 	int y;
 	int pressure;
@@ -318,6 +321,7 @@
 	int bat_connected;
 	int ps_connected;
 	bool pad_input_event_flag;
+	ktime_t time_delayed;
 };
 
 struct wacom_remote_data {
@@ -342,7 +346,7 @@
 	struct input_dev *pen_input;
 	struct input_dev *touch_input;
 	struct input_dev *pad_input;
-	struct kfifo_rec_ptr_2 pen_fifo;
+	struct kfifo_rec_ptr_2 *pen_fifo;
 	int pid;
 	int num_contacts_left;
 	u8 bt_features;
--- linux-ein-5.4.0.orig/drivers/hsi/controllers/omap_ssi_core.c
+++ linux-ein-5.4.0/drivers/hsi/controllers/omap_ssi_core.c
@@ -355,7 +355,7 @@
 
 	err = ida_simple_get(&platform_omap_ssi_ida, 0, 0, GFP_KERNEL);
 	if (err < 0)
-		goto out_err;
+		return err;
 	ssi->id = err;
 
 	ssi->owner = THIS_MODULE;
@@ -424,7 +424,7 @@
 	struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi);
 	int err;
 
-	err = pm_runtime_get_sync(ssi->device.parent);
+	err = pm_runtime_resume_and_get(ssi->device.parent);
 	if (err < 0) {
 		dev_err(&ssi->device, "runtime PM failed %d\n", err);
 		return err;
@@ -502,8 +502,10 @@
 	platform_set_drvdata(pd, ssi);
 
 	err = ssi_add_controller(ssi, pd);
-	if (err < 0)
+	if (err < 0) {
+		hsi_put_controller(ssi);
 		goto out1;
+	}
 
 	pm_runtime_enable(&pd->dev);
 
@@ -524,6 +526,7 @@
 		if (!childpdev) {
 			err = -ENODEV;
 			dev_err(&pd->dev, "failed to create ssi controller port\n");
+			of_node_put(child);
 			goto out3;
 		}
 	}
@@ -535,9 +538,9 @@
 	device_for_each_child(&pd->dev, NULL, ssi_remove_ports);
 out2:
 	ssi_remove_controller(ssi);
+	pm_runtime_disable(&pd->dev);
 out1:
 	platform_set_drvdata(pd, NULL);
-	pm_runtime_disable(&pd->dev);
 
 	return err;
 }
@@ -628,7 +631,13 @@
 	if (ret)
 		return ret;
 
-	return platform_driver_register(&ssi_port_pdriver);
+	ret = platform_driver_register(&ssi_port_pdriver);
+	if (ret) {
+		platform_driver_unregister(&ssi_pdriver);
+		return ret;
+	}
+
+	return 0;
 }
 module_init(ssi_init);
 
--- linux-ein-5.4.0.orig/drivers/hsi/controllers/omap_ssi_port.c
+++ linux-ein-5.4.0/drivers/hsi/controllers/omap_ssi_port.c
@@ -230,10 +230,10 @@
 	if (msg->ttype == HSI_MSG_READ) {
 		err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents,
 							DMA_FROM_DEVICE);
-		if (err < 0) {
+		if (!err) {
 			dev_dbg(&ssi->device, "DMA map SG failed !\n");
 			pm_runtime_put_autosuspend(omap_port->pdev);
-			return err;
+			return -EIO;
 		}
 		csdp = SSI_DST_BURST_4x32_BIT | SSI_DST_MEMORY_PORT |
 			SSI_SRC_SINGLE_ACCESS0 | SSI_SRC_PERIPHERAL_PORT |
@@ -247,10 +247,10 @@
 	} else {
 		err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents,
 							DMA_TO_DEVICE);
-		if (err < 0) {
+		if (!err) {
 			dev_dbg(&ssi->device, "DMA map SG failed !\n");
 			pm_runtime_put_autosuspend(omap_port->pdev);
-			return err;
+			return -EIO;
 		}
 		csdp = SSI_SRC_BURST_4x32_BIT | SSI_SRC_MEMORY_PORT |
 			SSI_DST_SINGLE_ACCESS0 | SSI_DST_PERIPHERAL_PORT |
--- linux-ein-5.4.0.orig/drivers/hsi/hsi_core.c
+++ linux-ein-5.4.0/drivers/hsi/hsi_core.c
@@ -102,6 +102,7 @@
 	if (device_register(&cl->device) < 0) {
 		pr_err("hsi: failed to register client: %s\n", info->name);
 		put_device(&cl->device);
+		goto err;
 	}
 
 	return cl;
@@ -210,8 +211,6 @@
 	if (err)
 		goto err;
 
-	dev_set_name(&cl->device, "%s", name);
-
 	err = hsi_of_property_parse_mode(client, "hsi-mode", &mode);
 	if (err) {
 		err = hsi_of_property_parse_mode(client, "hsi-rx-mode",
@@ -293,6 +292,7 @@
 	cl->device.release = hsi_client_release;
 	cl->device.of_node = client;
 
+	dev_set_name(&cl->device, "%s", name);
 	if (device_register(&cl->device) < 0) {
 		pr_err("hsi: failed to register client: %s\n", name);
 		put_device(&cl->device);
--- linux-ein-5.4.0.orig/drivers/hv/channel_mgmt.c
+++ linux-ein-5.4.0/drivers/hv/channel_mgmt.c
@@ -493,13 +493,17 @@
 	 * Add the new device to the bus. This will kick off device-driver
 	 * binding which eventually invokes the device driver's AddDevice()
 	 * method.
+	 *
+	 * If vmbus_device_register() fails, the 'device_obj' is freed in
+	 * vmbus_device_release() as called by device_unregister() in the
+	 * error path of vmbus_device_register(). In the outside error
+	 * path, there's no need to free it.
 	 */
 	ret = vmbus_device_register(newchannel->device_obj);
 
 	if (ret != 0) {
 		pr_err("unable to add child device object (relid %d)\n",
 			newchannel->offermsg.child_relid);
-		kfree(newchannel->device_obj);
 		goto err_deq_chan;
 	}
 
@@ -763,13 +767,19 @@
 	free_cpumask_var(available_mask);
 }
 
+#define UNLOAD_DELAY_UNIT_MS	10		/* 10 milliseconds */
+#define UNLOAD_WAIT_MS		(100*1000)	/* 100 seconds */
+#define UNLOAD_WAIT_LOOPS	(UNLOAD_WAIT_MS/UNLOAD_DELAY_UNIT_MS)
+#define UNLOAD_MSG_MS		(5*1000)	/* Every 5 seconds */
+#define UNLOAD_MSG_LOOPS	(UNLOAD_MSG_MS/UNLOAD_DELAY_UNIT_MS)
+
 static void vmbus_wait_for_unload(void)
 {
 	int cpu;
 	void *page_addr;
 	struct hv_message *msg;
 	struct vmbus_channel_message_header *hdr;
-	u32 message_type;
+	u32 message_type, i;
 
 	/*
 	 * CHANNELMSG_UNLOAD_RESPONSE is always delivered to the CPU which was
@@ -779,16 +789,35 @@
 	 * functional and vmbus_unload_response() will complete
 	 * vmbus_connection.unload_event. If not, the last thing we can do is
 	 * read message pages for all CPUs directly.
+	 *
+	 * Wait up to 100 seconds since an Azure host must writeback any dirty
+	 * data in its disk cache before the VMbus UNLOAD request will
+	 * complete. This flushing has been empirically observed to take up
+	 * to 50 seconds in cases with a lot of dirty data, so allow additional
+	 * leeway and for inaccuracies in mdelay(). But eventually time out so
+	 * that the panic path can't get hung forever in case the response
+	 * message isn't seen.
 	 */
-	while (1) {
+	for (i = 1; i <= UNLOAD_WAIT_LOOPS; i++) {
 		if (completion_done(&vmbus_connection.unload_event))
-			break;
+			goto completed;
 
-		for_each_online_cpu(cpu) {
+		for_each_present_cpu(cpu) {
 			struct hv_per_cpu_context *hv_cpu
 				= per_cpu_ptr(hv_context.cpu_context, cpu);
 
+			/*
+			 * In a CoCo VM the synic_message_page is not allocated
+			 * in hv_synic_alloc(). Instead it is set/cleared in
+			 * hv_synic_enable_regs() and hv_synic_disable_regs()
+			 * such that it is set only when the CPU is online. If
+			 * not all present CPUs are online, the message page
+			 * might be NULL, so skip such CPUs.
+			 */
 			page_addr = hv_cpu->synic_message_page;
+			if (!page_addr)
+				continue;
+
 			msg = (struct hv_message *)page_addr
 				+ VMBUS_MESSAGE_SINT;
 
@@ -805,19 +834,31 @@
 			vmbus_signal_eom(msg, message_type);
 		}
 
-		mdelay(10);
+		/*
+		 * Give a notice periodically so someone watching the
+		 * serial output won't think it is completely hung.
+		 */
+		if (!(i % UNLOAD_MSG_LOOPS))
+			pr_notice("Waiting for VMBus UNLOAD to complete\n");
+
+		mdelay(UNLOAD_DELAY_UNIT_MS);
 	}
+	pr_err("Continuing even though VMBus UNLOAD did not complete\n");
 
+completed:
 	/*
 	 * We're crashing and already got the UNLOAD_RESPONSE, cleanup all
 	 * maybe-pending messages on all CPUs to be able to receive new
 	 * messages after we reconnect.
 	 */
-	for_each_online_cpu(cpu) {
+	for_each_present_cpu(cpu) {
 		struct hv_per_cpu_context *hv_cpu
 			= per_cpu_ptr(hv_context.cpu_context, cpu);
 
 		page_addr = hv_cpu->synic_message_page;
+		if (!page_addr)
+			continue;
+
 		msg = (struct hv_message *)page_addr + VMBUS_MESSAGE_SINT;
 		msg->header.message_type = HVMSG_NONE;
 	}
@@ -831,6 +872,11 @@
 	/*
 	 * This is a global event; just wakeup the waiting thread.
 	 * Once we successfully unload, we can cleanup the monitor state.
+	 *
+	 * NB.  A malicious or compromised Hyper-V could send a spurious
+	 * message of type CHANNELMSG_UNLOAD_RESPONSE, and trigger a call
+	 * of the complete() below.  Make sure that unload_event has been
+	 * initialized by the time this complete() is executed.
 	 */
 	complete(&vmbus_connection.unload_event);
 }
@@ -839,11 +885,14 @@
 {
 	struct vmbus_channel_message_header hdr;
 
+	if (xchg(&vmbus_connection.conn_state, DISCONNECTED) == DISCONNECTED)
+		return;
+
 	/* Pre-Win2012R2 hosts don't support reconnect */
 	if (vmbus_proto_version < VERSION_WIN8_1)
 		return;
 
-	init_completion(&vmbus_connection.unload_event);
+	reinit_completion(&vmbus_connection.unload_event);
 	memset(&hdr, 0, sizeof(struct vmbus_channel_message_header));
 	hdr.msgtype = CHANNELMSG_UNLOAD;
 	vmbus_post_msg(&hdr, sizeof(struct vmbus_channel_message_header),
@@ -1095,8 +1144,7 @@
 			vmbus_device_unregister(channel->device_obj);
 			put_device(dev);
 		}
-	}
-	if (channel->primary_channel != NULL) {
+	} else if (channel->primary_channel != NULL) {
 		/*
 		 * Sub-channel is being rescinded. Following is the channel
 		 * close sequence when initiated from the driveri (refer to
@@ -1351,6 +1399,8 @@
 	{ CHANNELMSG_19,			0, NULL },
 	{ CHANNELMSG_20,			0, NULL },
 	{ CHANNELMSG_TL_CONNECT_REQUEST,	0, NULL },
+	{ CHANNELMSG_22,			0, NULL },
+	{ CHANNELMSG_TL_CONNECT_RESULT,		0, NULL },
 };
 
 /*
@@ -1362,25 +1412,16 @@
 {
 	struct hv_message *msg = context;
 	struct vmbus_channel_message_header *hdr;
-	int size;
 
 	hdr = (struct vmbus_channel_message_header *)msg->u.payload;
-	size = msg->header.payload_size;
 
 	trace_vmbus_on_message(hdr);
 
-	if (hdr->msgtype >= CHANNELMSG_COUNT) {
-		pr_err("Received invalid channel message type %d size %d\n",
-			   hdr->msgtype, size);
-		print_hex_dump_bytes("", DUMP_PREFIX_NONE,
-				     (unsigned char *)msg->u.payload, size);
-		return;
-	}
-
-	if (channel_message_table[hdr->msgtype].message_handler)
-		channel_message_table[hdr->msgtype].message_handler(hdr);
-	else
-		pr_err("Unhandled channel message type %d\n", hdr->msgtype);
+	/*
+	 * vmbus_on_msg_dpc() makes sure the hdr->msgtype here can not go
+	 * out of bound and the message_handler pointer can not be NULL.
+	 */
+	channel_message_table[hdr->msgtype].message_handler(hdr);
 }
 
 /*
--- linux-ein-5.4.0.orig/drivers/hv/connection.c
+++ linux-ein-5.4.0/drivers/hv/connection.c
@@ -25,6 +25,8 @@
 
 struct vmbus_connection vmbus_connection = {
 	.conn_state		= DISCONNECTED,
+	.unload_event		= COMPLETION_INITIALIZER(
+				  vmbus_connection.unload_event),
 	.next_gpadl_handle	= ATOMIC_INIT(0xE1E10),
 
 	.ready_for_suspend_event= COMPLETION_INITIALIZER(
@@ -67,7 +69,6 @@
 int vmbus_negotiate_version(struct vmbus_channel_msginfo *msginfo, u32 version)
 {
 	int ret = 0;
-	unsigned int cur_cpu;
 	struct vmbus_channel_initiate_contact *msg;
 	unsigned long flags;
 
@@ -100,24 +101,7 @@
 
 	msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]);
 	msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]);
-	/*
-	 * We want all channel messages to be delivered on CPU 0.
-	 * This has been the behavior pre-win8. This is not
-	 * perf issue and having all channel messages delivered on CPU 0
-	 * would be ok.
-	 * For post win8 hosts, we support receiving channel messagges on
-	 * all the CPUs. This is needed for kexec to work correctly where
-	 * the CPU attempting to connect may not be CPU 0.
-	 */
-	if (version >= VERSION_WIN8_1) {
-		cur_cpu = get_cpu();
-		msg->target_vcpu = hv_cpu_number_to_vp_number(cur_cpu);
-		vmbus_connection.connect_cpu = cur_cpu;
-		put_cpu();
-	} else {
-		msg->target_vcpu = 0;
-		vmbus_connection.connect_cpu = 0;
-	}
+	msg->target_vcpu = hv_cpu_number_to_vp_number(VMBUS_CONNECT_CPU);
 
 	/*
 	 * Add to list before we send the request since we may
--- linux-ein-5.4.0.orig/drivers/hv/hv.c
+++ linux-ein-5.4.0/drivers/hv/hv.c
@@ -250,6 +250,17 @@
 	unsigned long flags;
 
 	/*
+	 * Hyper-V does not provide a way to change the connect CPU once
+	 * it is set; we must prevent the connect CPU from going offline
+	 * while the VM is running normally. But in the panic or kexec()
+	 * path where the vmbus is already disconnected, the CPU must be
+	 * allowed to shut down.
+	 */
+	if (cpu == VMBUS_CONNECT_CPU &&
+	    vmbus_connection.conn_state == CONNECTED)
+		return -EBUSY;
+
+	/*
 	 * Search for channels which are bound to the CPU we're about to
 	 * cleanup. In case we find one and vmbus is still connected we need to
 	 * fail, this will effectively prevent CPU offlining. There is no way
--- linux-ein-5.4.0.orig/drivers/hv/hv_balloon.c
+++ linux-ein-5.4.0/drivers/hv/hv_balloon.c
@@ -1213,10 +1213,7 @@
 	unsigned int i, j;
 	struct page *pg;
 
-	if (num_pages < alloc_unit)
-		return 0;
-
-	for (i = 0; (i * alloc_unit) < num_pages; i++) {
+	for (i = 0; i < num_pages / alloc_unit; i++) {
 		if (bl_resp->hdr.size + sizeof(union dm_mem_page_range) >
 			PAGE_SIZE)
 			return i * alloc_unit;
@@ -1254,7 +1251,7 @@
 
 	}
 
-	return num_pages;
+	return i * alloc_unit;
 }
 
 static void balloon_up(struct work_struct *dummy)
@@ -1269,9 +1266,6 @@
 	long avail_pages;
 	unsigned long floor;
 
-	/* The host balloons pages in 2M granularity. */
-	WARN_ON_ONCE(num_pages % PAGES_IN_2M != 0);
-
 	/*
 	 * We will attempt 2M allocations. However, if we fail to
 	 * allocate 2M chunks, we will go back to 4k allocations.
@@ -1281,14 +1275,13 @@
 	avail_pages = si_mem_available();
 	floor = compute_balloon_floor();
 
-	/* Refuse to balloon below the floor, keep the 2M granularity. */
+	/* Refuse to balloon below the floor. */
 	if (avail_pages < num_pages || avail_pages - num_pages < floor) {
-		pr_warn("Balloon request will be partially fulfilled. %s\n",
+		pr_info("Balloon request will be partially fulfilled. %s\n",
 			avail_pages < num_pages ? "Not enough memory." :
 			"Balloon floor reached.");
 
 		num_pages = avail_pages > floor ? (avail_pages - floor) : 0;
-		num_pages -= num_pages % PAGES_IN_2M;
 	}
 
 	while (!done) {
@@ -1557,7 +1550,7 @@
 			break;
 
 		default:
-			pr_warn("Unhandled message: type: %d\n", dm_hdr->type);
+			pr_warn_ratelimited("Unhandled message: type: %d\n", dm_hdr->type);
 
 		}
 	}
--- linux-ein-5.4.0.orig/drivers/hv/hv_util.c
+++ linux-ein-5.4.0/drivers/hv/hv_util.c
@@ -537,8 +537,8 @@
 	 */
 	hv_ptp_clock = ptp_clock_register(&ptp_hyperv_info, NULL);
 	if (IS_ERR_OR_NULL(hv_ptp_clock)) {
-		pr_err("cannot register PTP clock: %ld\n",
-		       PTR_ERR(hv_ptp_clock));
+		pr_err("cannot register PTP clock: %d\n",
+		       PTR_ERR_OR_ZERO(hv_ptp_clock));
 		hv_ptp_clock = NULL;
 	}
 
--- linux-ein-5.4.0.orig/drivers/hv/hyperv_vmbus.h
+++ linux-ein-5.4.0/drivers/hv/hyperv_vmbus.h
@@ -13,6 +13,7 @@
 #define _HYPERV_VMBUS_H
 
 #include <linux/list.h>
+#include <linux/bitops.h>
 #include <asm/sync_bitops.h>
 #include <asm/hyperv-tlfs.h>
 #include <linux/atomic.h>
@@ -212,12 +213,13 @@
 
 #define MAX_SIZE_CHANNEL_MESSAGE	HV_MESSAGE_PAYLOAD_BYTE_COUNT
 
-struct vmbus_connection {
-	/*
-	 * CPU on which the initial host contact was made.
-	 */
-	int connect_cpu;
+/*
+ * The CPU that Hyper-V will interrupt for VMBUS messages, such as
+ * CHANNELMSG_OFFERCHANNEL and CHANNELMSG_RESCIND_CHANNELOFFER.
+ */
+#define VMBUS_CONNECT_CPU	0
 
+struct vmbus_connection {
 	u32 msg_conn_id;
 
 	atomic_t offer_in_progress;
--- linux-ein-5.4.0.orig/drivers/hv/ring_buffer.c
+++ linux-ein-5.4.0/drivers/hv/ring_buffer.c
@@ -378,7 +378,16 @@
 static u32 hv_pkt_iter_avail(const struct hv_ring_buffer_info *rbi)
 {
 	u32 priv_read_loc = rbi->priv_read_index;
-	u32 write_loc = READ_ONCE(rbi->ring_buffer->write_index);
+	u32 write_loc;
+
+	/*
+	 * The Hyper-V host writes the packet data, then uses
+	 * store_release() to update the write_index.  Use load_acquire()
+	 * here to prevent loads of the packet data from being re-ordered
+	 * before the read of the write_index and potentially getting
+	 * stale data.
+	 */
+	write_loc = virt_load_acquire(&rbi->ring_buffer->write_index);
 
 	if (write_loc >= priv_read_loc)
 		return write_loc - priv_read_loc;
--- linux-ein-5.4.0.orig/drivers/hv/vmbus_drv.c
+++ linux-ein-5.4.0/drivers/hv/vmbus_drv.c
@@ -31,6 +31,7 @@
 #include <linux/kdebug.h>
 #include <linux/efi.h>
 #include <linux/random.h>
+#include <linux/kernel.h>
 #include <linux/syscore_ops.h>
 #include <clocksource/hyperv_timer.h>
 #include "hyperv_vmbus.h"
@@ -48,14 +49,35 @@
 
 static void *hv_panic_page;
 
+/*
+ * Boolean to control whether to report panic messages over Hyper-V.
+ *
+ * It can be set via /proc/sys/kernel/hyperv/record_panic_msg
+ */
+static int sysctl_record_panic_msg = 1;
+
+static int hyperv_report_reg(void)
+{
+	return !sysctl_record_panic_msg || !hv_panic_page;
+}
+
 static int hyperv_panic_event(struct notifier_block *nb, unsigned long val,
 			      void *args)
 {
 	struct pt_regs *regs;
 
-	regs = current_pt_regs();
+	vmbus_initiate_unload(true);
 
-	hyperv_report_panic(regs, val);
+	/*
+	 * Hyper-V should be notified only once about a panic.  If we will be
+	 * doing hyperv_report_panic_msg() later with kmsg data, don't do
+	 * the notification here.
+	 */
+	if (ms_hyperv.misc_features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE
+	    && hyperv_report_reg()) {
+		regs = current_pt_regs();
+		hyperv_report_panic(regs, val, false);
+	}
 	return NOTIFY_DONE;
 }
 
@@ -65,7 +87,13 @@
 	struct die_args *die = (struct die_args *)args;
 	struct pt_regs *regs = die->regs;
 
-	hyperv_report_panic(regs, val);
+	/*
+	 * Hyper-V should be notified only once about a panic.  If we will be
+	 * doing hyperv_report_panic_msg() later with kmsg data, don't do
+	 * the notification here.
+	 */
+	if (hyperv_report_reg())
+		hyperv_report_panic(regs, val, true);
 	return NOTIFY_DONE;
 }
 
@@ -950,6 +978,9 @@
 
 	return drv->resume(dev);
 }
+#else
+#define vmbus_suspend NULL
+#define vmbus_resume NULL
 #endif /* CONFIG_PM_SLEEP */
 
 /*
@@ -967,11 +998,22 @@
 }
 
 /*
- * Note: we must use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS rather than
- * SET_SYSTEM_SLEEP_PM_OPS: see the comment before vmbus_bus_pm.
+ * Note: we must use the "noirq" ops: see the comment before vmbus_bus_pm.
+ *
+ * suspend_noirq/resume_noirq are set to NULL to support Suspend-to-Idle: we
+ * shouldn't suspend the vmbus devices upon Suspend-to-Idle, otherwise there
+ * is no way to wake up a Generation-2 VM.
+ *
+ * The other 4 ops are for hibernation.
  */
+
 static const struct dev_pm_ops vmbus_pm = {
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(vmbus_suspend, vmbus_resume)
+	.suspend_noirq	= NULL,
+	.resume_noirq	= NULL,
+	.freeze_noirq	= vmbus_suspend,
+	.thaw_noirq	= vmbus_resume,
+	.poweroff_noirq	= vmbus_suspend,
+	.restore_noirq	= vmbus_resume,
 };
 
 /* The one and only one */
@@ -1031,6 +1073,10 @@
 	}
 
 	entry = &channel_message_table[hdr->msgtype];
+
+	if (!entry->message_handler)
+		goto msg_handled;
+
 	if (entry->handler_type	== VMHT_BLOCKING) {
 		ctx = kmalloc(sizeof(*ctx), GFP_ATOMIC);
 		if (ctx == NULL)
@@ -1050,14 +1096,28 @@
 			/*
 			 * If we are handling the rescind message;
 			 * schedule the work on the global work queue.
+			 *
+			 * The OFFER message and the RESCIND message should
+			 * not be handled by the same serialized work queue,
+			 * because the OFFER handler may call vmbus_open(),
+			 * which tries to open the channel by sending an
+			 * OPEN_CHANNEL message to the host and waits for
+			 * the host's response; however, if the host has
+			 * rescinded the channel before it receives the
+			 * OPEN_CHANNEL message, the host just silently
+			 * ignores the OPEN_CHANNEL message; as a result,
+			 * the guest's OFFER handler hangs for ever, if we
+			 * handle the RESCIND message in the same serialized
+			 * work queue: the RESCIND handler can not start to
+			 * run before the OFFER handler finishes.
 			 */
-			schedule_work_on(vmbus_connection.connect_cpu,
+			schedule_work_on(VMBUS_CONNECT_CPU,
 					 &ctx->work);
 			break;
 
 		case CHANNELMSG_OFFERCHANNEL:
 			atomic_inc(&vmbus_connection.offer_in_progress);
-			queue_work_on(vmbus_connection.connect_cpu,
+			queue_work_on(VMBUS_CONNECT_CPU,
 				      vmbus_connection.work_queue,
 				      &ctx->work);
 			break;
@@ -1104,7 +1164,7 @@
 
 	INIT_WORK(&ctx->work, vmbus_onmessage_work);
 
-	queue_work_on(vmbus_connection.connect_cpu,
+	queue_work_on(VMBUS_CONNECT_CPU,
 		      vmbus_connection.work_queue,
 		      &ctx->work);
 }
@@ -1243,17 +1303,10 @@
 			tasklet_schedule(&hv_cpu->msg_dpc);
 	}
 
-	add_interrupt_randomness(HYPERVISOR_CALLBACK_VECTOR, 0);
+	add_interrupt_randomness(HYPERVISOR_CALLBACK_VECTOR);
 }
 
 /*
- * Boolean to control whether to report panic messages over Hyper-V.
- *
- * It can be set via /proc/sys/kernel/hyperv/record_panic_msg
- */
-static int sysctl_record_panic_msg = 1;
-
-/*
  * Callback from kmsg_dump. Grab as much as possible from the end of the kmsg
  * buffer and call into Hyper-V to transfer the data.
  */
@@ -1380,19 +1433,29 @@
 			hv_panic_page = (void *)get_zeroed_page(GFP_KERNEL);
 			if (hv_panic_page) {
 				ret = kmsg_dump_register(&hv_kmsg_dumper);
-				if (ret)
+				if (ret) {
 					pr_err("Hyper-V: kmsg dump register "
 						"error 0x%x\n", ret);
+					hv_free_hyperv_page(
+					    (unsigned long)hv_panic_page);
+					hv_panic_page = NULL;
+				}
 			} else
 				pr_err("Hyper-V: panic message page memory "
 					"allocation failed");
 		}
 
 		register_die_notifier(&hyperv_die_block);
-		atomic_notifier_chain_register(&panic_notifier_list,
-					       &hyperv_panic_block);
 	}
 
+	/*
+	 * Always register the panic notifier because we need to unload
+	 * the VMbus channel connection to prevent any VMbus
+	 * activity after the VM panics.
+	 */
+	atomic_notifier_chain_register(&panic_notifier_list,
+			       &hyperv_panic_block);
+
 	vmbus_request_offers();
 
 	return 0;
@@ -1406,7 +1469,6 @@
 	hv_remove_vmbus_irq();
 
 	bus_unregister(&hv_bus);
-	free_page((unsigned long)hv_panic_page);
 	unregister_sysctl_table(hv_ctl_table_hdr);
 	hv_ctl_table_hdr = NULL;
 	return ret;
@@ -1725,8 +1787,10 @@
 	kobj->kset = dev->channels_kset;
 	ret = kobject_init_and_add(kobj, &vmbus_chan_ktype, NULL,
 				   "%u", relid);
-	if (ret)
+	if (ret) {
+		kobject_put(kobj);
 		return ret;
+	}
 
 	ret = sysfs_create_group(kobj, &vmbus_chan_group);
 
@@ -1735,6 +1799,7 @@
 		 * The calling functions' error handling paths will cleanup the
 		 * empty channel directory.
 		 */
+		kobject_put(kobj);
 		dev_err(device, "Unable to set up channel sysfs files\n");
 		return ret;
 	}
@@ -1798,6 +1863,7 @@
 	ret = device_register(&child_device_obj->device);
 	if (ret) {
 		pr_err("Unable to register child device\n");
+		put_device(&child_device_obj->device);
 		return ret;
 	}
 
@@ -2010,7 +2076,7 @@
 			bool fb_overlap_ok)
 {
 	struct resource *iter, *shadow;
-	resource_size_t range_min, range_max, start;
+	resource_size_t range_min, range_max, start, end;
 	const char *dev_n = dev_name(&device_obj->device);
 	int retval;
 
@@ -2045,6 +2111,14 @@
 		range_max = iter->end;
 		start = (range_min + align - 1) & ~(align - 1);
 		for (; start + size - 1 <= range_max; start += align) {
+			end = start + size - 1;
+
+			/* Skip the whole fb_mmio region if not fb_overlap_ok */
+			if (!fb_overlap_ok && fb_mmio &&
+			    (((start >= fb_mmio->start) && (start <= fb_mmio->end)) ||
+			     ((end >= fb_mmio->start) && (end <= fb_mmio->end))))
+				continue;
+
 			shadow = __request_region(iter, start, size, NULL,
 						  IORESOURCE_BUSY);
 			if (!shadow)
@@ -2169,7 +2243,10 @@
 	if (atomic_read(&vmbus_connection.nr_chan_close_on_suspend) > 0)
 		wait_for_completion(&vmbus_connection.ready_for_suspend_event);
 
-	WARN_ON(atomic_read(&vmbus_connection.nr_chan_fixup_on_resume) != 0);
+	if (atomic_read(&vmbus_connection.nr_chan_fixup_on_resume) != 0) {
+		pr_err("Can not suspend due to a previous failed resuming\n");
+		return -EBUSY;
+	}
 
 	mutex_lock(&vmbus_connection.channel_mutex);
 
@@ -2202,8 +2279,6 @@
 
 	vmbus_initiate_unload(false);
 
-	vmbus_connection.conn_state = DISCONNECTED;
-
 	/* Reset the event for the next resume. */
 	reinit_completion(&vmbus_connection.ready_for_resume_event);
 
@@ -2245,13 +2320,18 @@
 
 	vmbus_request_offers();
 
-	wait_for_completion(&vmbus_connection.ready_for_resume_event);
+	if (wait_for_completion_timeout(
+		&vmbus_connection.ready_for_resume_event, 10 * HZ) == 0)
+		pr_err("Some vmbus device is missing after suspending?\n");
 
 	/* Reset the event for the next suspend. */
 	reinit_completion(&vmbus_connection.ready_for_suspend_event);
 
 	return 0;
 }
+#else
+#define vmbus_bus_suspend NULL
+#define vmbus_bus_resume NULL
 #endif /* CONFIG_PM_SLEEP */
 
 static const struct acpi_device_id vmbus_acpi_device_ids[] = {
@@ -2262,16 +2342,24 @@
 MODULE_DEVICE_TABLE(acpi, vmbus_acpi_device_ids);
 
 /*
- * Note: we must use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS rather than
- * SET_SYSTEM_SLEEP_PM_OPS, otherwise NIC SR-IOV can not work, because the
- * "pci_dev_pm_ops" uses the "noirq" callbacks: in the resume path, the
- * pci "noirq" restore callback runs before "non-noirq" callbacks (see
+ * Note: we must use the "no_irq" ops, otherwise hibernation can not work with
+ * PCI device assignment, because "pci_dev_pm_ops" uses the "noirq" ops: in
+ * the resume path, the pci "noirq" restore op runs before "non-noirq" op (see
  * resume_target_kernel() -> dpm_resume_start(), and hibernation_restore() ->
  * dpm_resume_end()). This means vmbus_bus_resume() and the pci-hyperv's
- * resume callback must also run via the "noirq" callbacks.
+ * resume callback must also run via the "noirq" ops.
+ *
+ * Set suspend_noirq/resume_noirq to NULL for Suspend-to-Idle: see the comment
+ * earlier in this file before vmbus_pm.
  */
+
 static const struct dev_pm_ops vmbus_bus_pm = {
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(vmbus_bus_suspend, vmbus_bus_resume)
+	.suspend_noirq	= NULL,
+	.resume_noirq	= NULL,
+	.freeze_noirq	= vmbus_bus_suspend,
+	.thaw_noirq	= vmbus_bus_resume,
+	.poweroff_noirq	= vmbus_bus_suspend,
+	.restore_noirq	= vmbus_bus_resume
 };
 
 static struct acpi_driver vmbus_acpi_driver = {
@@ -2288,7 +2376,6 @@
 {
 	hv_stimer_global_cleanup();
 	vmbus_initiate_unload(false);
-	vmbus_connection.conn_state = DISCONNECTED;
 	/* Make sure conn_state is set as hv_synic_cleanup checks for it */
 	mb();
 	cpuhp_remove_state(hyperv_cpuhp_online);
@@ -2305,10 +2392,9 @@
 	 * doing the cleanup for current CPU only. This should be sufficient
 	 * for kdump.
 	 */
-	vmbus_connection.conn_state = DISCONNECTED;
 	cpu = smp_processor_id();
 	hv_stimer_cleanup(cpu);
-	hv_synic_cleanup(cpu);
+	hv_synic_disable_regs(cpu);
 	hyperv_cleanup();
 };
 
@@ -2416,10 +2502,15 @@
 	if (ms_hyperv.misc_features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE) {
 		kmsg_dump_unregister(&hv_kmsg_dumper);
 		unregister_die_notifier(&hyperv_die_block);
-		atomic_notifier_chain_unregister(&panic_notifier_list,
-						 &hyperv_panic_block);
 	}
 
+	/*
+	 * The panic notifier is always registered, hence we should
+	 * also unconditionally unregister it here as well.
+	 */
+	atomic_notifier_chain_unregister(&panic_notifier_list,
+					 &hyperv_panic_block);
+
 	free_page((unsigned long)hv_panic_page);
 	unregister_sysctl_table(hv_ctl_table_hdr);
 	hv_ctl_table_hdr = NULL;
--- linux-ein-5.4.0.orig/drivers/hwmon/Kconfig
+++ linux-ein-5.4.0/drivers/hwmon/Kconfig
@@ -494,6 +494,15 @@
 	  This driver can also be built as a module. If so, the module
 	  will be called f75375s.
 
+config SENSORS_GSC
+	tristate "Gateworks System Controller ADC"
+	depends on MFD_GATEWORKS_GSC
+	help
+	  Support for the Gateworks System Controller A/D converters.
+
+	  To compile this driver as a module, choose M here:
+	  the module will be called gsc-hwmon.
+
 config SENSORS_MC13783_ADC
         tristate "Freescale MC13783/MC13892 ADC"
         depends on MFD_MC13XXX
@@ -802,7 +811,7 @@
 
 config SENSORS_LTQ_CPUTEMP
 	bool "Lantiq cpu temperature sensor driver"
-	depends on LANTIQ
+	depends on SOC_XWAY
 	help
 	  If you say yes here you get support for the temperature
 	  sensor inside your CPU.
@@ -1132,10 +1141,11 @@
 	help
 	  If you say yes here you get support for National Semiconductor LM90,
 	  LM86, LM89 and LM99, Analog Devices ADM1032, ADT7461, and ADT7461A,
-	  Maxim MAX6646, MAX6647, MAX6648, MAX6649, MAX6657, MAX6658, MAX6659,
-	  MAX6680, MAX6681, MAX6692, MAX6695, MAX6696, ON Semiconductor NCT1008,
-	  Winbond/Nuvoton W83L771W/G/AWG/ASG, Philips SA56004, GMT G781, and
-	  Texas Instruments TMP451 sensor chips.
+	  Maxim MAX6646, MAX6647, MAX6648, MAX6649, MAX6654, MAX6657, MAX6658,
+	  MAX6659, MAX6680, MAX6681, MAX6692, MAX6695, MAX6696,
+	  ON Semiconductor NCT1008, Winbond/Nuvoton W83L771W/G/AWG/ASG,
+	  Philips SA56004, GMT G781, Texas Instruments TMP451 and TMP461
+	  sensor chips.
 
 	  This driver can also be built as a module. If so, the module
 	  will be called lm90.
@@ -1922,6 +1932,17 @@
 	  If you say yes here you get support for the temperature
 	  and power sensors for APM X-Gene SoC.
 
+config SENSORS_AHC1EC0_HWMON
+	tristate "Advantech AHC1EC0 Hardware Monitor Function"
+	depends on MFD_AHC1EC0
+	depends on UBUNTU_ODM_DRIVERS
+	help
+	  This driver provide support for the hardware monitoring functionality
+	  for Advantech AHC1EC0 embedded controller on the board.
+
+	  This driver provides the sysfs attributes for applications to monitor
+	  the system status, including system temperatures, voltages, current.
+
 if ACPI
 
 comment "ACPI drivers"
--- linux-ein-5.4.0.orig/drivers/hwmon/Makefile
+++ linux-ein-5.4.0/drivers/hwmon/Makefile
@@ -44,6 +44,7 @@
 obj-$(CONFIG_SENSORS_ADT7462)	+= adt7462.o
 obj-$(CONFIG_SENSORS_ADT7470)	+= adt7470.o
 obj-$(CONFIG_SENSORS_ADT7475)	+= adt7475.o
+obj-$(CONFIG_SENSORS_AHC1EC0_HWMON)	+= ahc1ec0-hwmon.o
 obj-$(CONFIG_SENSORS_APPLESMC)	+= applesmc.o
 obj-$(CONFIG_SENSORS_ARM_SCMI)	+= scmi-hwmon.o
 obj-$(CONFIG_SENSORS_ARM_SCPI)	+= scpi-hwmon.o
@@ -71,6 +72,7 @@
 obj-$(CONFIG_SENSORS_G762)	+= g762.o
 obj-$(CONFIG_SENSORS_GL518SM)	+= gl518sm.o
 obj-$(CONFIG_SENSORS_GL520SM)	+= gl520sm.o
+obj-$(CONFIG_SENSORS_GSC)	+= gsc-hwmon.o
 obj-$(CONFIG_SENSORS_GPIO_FAN)	+= gpio-fan.o
 obj-$(CONFIG_SENSORS_HIH6130)	+= hih6130.o
 obj-$(CONFIG_SENSORS_ULTRA45)	+= ultra45_env.o
--- linux-ein-5.4.0.orig/drivers/hwmon/acpi_power_meter.c
+++ linux-ein-5.4.0/drivers/hwmon/acpi_power_meter.c
@@ -883,7 +883,7 @@
 
 	res = setup_attrs(resource);
 	if (res)
-		goto exit_free;
+		goto exit_free_capability;
 
 	resource->hwmon_dev = hwmon_device_register(&device->dev);
 	if (IS_ERR(resource->hwmon_dev)) {
@@ -896,6 +896,8 @@
 
 exit_remove:
 	remove_attrs(resource);
+exit_free_capability:
+	free_capabilities(resource);
 exit_free:
 	kfree(resource);
 exit:
--- linux-ein-5.4.0.orig/drivers/hwmon/adt7462.c
+++ linux-ein-5.4.0/drivers/hwmon/adt7462.c
@@ -413,7 +413,7 @@
 			return 0x95;
 		break;
 	}
-	return -ENODEV;
+	return 0;
 }
 
 /* Provide labels for sysfs */
--- linux-ein-5.4.0.orig/drivers/hwmon/adt7470.c
+++ linux-ein-5.4.0/drivers/hwmon/adt7470.c
@@ -20,6 +20,7 @@
 #include <linux/kthread.h>
 #include <linux/slab.h>
 #include <linux/util_macros.h>
+#include <linux/sched.h>
 
 /* Addresses to scan */
 static const unsigned short normal_i2c[] = { 0x2C, 0x2E, 0x2F, I2C_CLIENT_END };
@@ -260,11 +261,10 @@
 		adt7470_read_temperatures(client, data);
 		mutex_unlock(&data->lock);
 
-		set_current_state(TASK_INTERRUPTIBLE);
 		if (kthread_should_stop())
 			break;
 
-		schedule_timeout(msecs_to_jiffies(data->auto_update_interval));
+		schedule_timeout_interruptible(msecs_to_jiffies(data->auto_update_interval));
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/hwmon/adt7475.c
+++ linux-ein-5.4.0/drivers/hwmon/adt7475.c
@@ -294,9 +294,10 @@
 	long reg;
 
 	if (bypass_attn & (1 << channel))
-		reg = (volt * 1024) / 2250;
+		reg = DIV_ROUND_CLOSEST(volt * 1024, 2250);
 	else
-		reg = (volt * r[1] * 1024) / ((r[0] + r[1]) * 2250);
+		reg = DIV_ROUND_CLOSEST(volt * r[1] * 1024,
+					(r[0] + r[1]) * 2250);
 	return clamp_val(reg, 0, 1023) & (0xff << 2);
 }
 
@@ -483,10 +484,10 @@
 		val = (temp - val) / 1000;
 
 		if (sattr->index != 1) {
-			data->temp[HYSTERSIS][sattr->index] &= 0xF0;
+			data->temp[HYSTERSIS][sattr->index] &= 0x0F;
 			data->temp[HYSTERSIS][sattr->index] |= (val & 0xF) << 4;
 		} else {
-			data->temp[HYSTERSIS][sattr->index] &= 0x0F;
+			data->temp[HYSTERSIS][sattr->index] &= 0xF0;
 			data->temp[HYSTERSIS][sattr->index] |= (val & 0xF);
 		}
 
@@ -551,11 +552,11 @@
 		val = data->enh_acoustics[0] & 0xf;
 		break;
 	case 1:
-		val = (data->enh_acoustics[1] >> 4) & 0xf;
+		val = data->enh_acoustics[1] & 0xf;
 		break;
 	case 2:
 	default:
-		val = data->enh_acoustics[1] & 0xf;
+		val = (data->enh_acoustics[1] >> 4) & 0xf;
 		break;
 	}
 
--- linux-ein-5.4.0.orig/drivers/hwmon/ahc1ec0-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/ahc1ec0-hwmon.c
@@ -0,0 +1,660 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * HWMON Driver for Advantech Embedded Controller chip AHC1EC0
+ *
+ * Copyright 2020, Advantech IIoT Group
+ *
+ */
+
+#include <linux/device.h>
+#include <linux/errno.h>
+#include <linux/hwmon-sysfs.h>
+#include <linux/hwmon.h>
+#include <linux/mfd/ahc1ec0.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+#include <linux/string.h>
+#include <linux/types.h>
+
+struct ec_hwmon_attrs {
+	const char		*name;
+	umode_t			mode;
+	int (*read)(struct device *dev, long *val);
+};
+
+struct adv_hwmon_profile {
+	int offset;
+	unsigned long resolution, resolution_vin, resolution_sys, resolution_curr, resolution_power;
+	unsigned long r1, r1_vin, r1_sys, r1_curr, r1_power;
+	unsigned long r2, r2_vin, r2_sys, r2_curr, r2_power;
+	int hwmon_in_list_cnt;
+	int temp_list_cnt;
+	int *hwmon_in_list;
+	int *temp_list;
+};
+
+struct ec_hwmon_data {
+	struct device *dev;
+	struct device *hwmon_dev;
+	struct adv_ec_platform_data *adv_ec_data;
+	unsigned long temperature[3];
+	unsigned long ec_current[5];
+	unsigned long power[5];
+	unsigned long voltage[7];
+
+	struct ec_hw_pin_table pin_tbl;
+	struct ec_smbuso_em0 ec_smboem0;
+	struct adv_hwmon_profile *profile;
+};
+
+static int get_ec_in_vbat_input(struct device *dev, long *val);
+static int get_ec_in_v5_input(struct device *dev, long *val);
+static int get_ec_in_v12_input(struct device *dev, long *val);
+static int get_ec_in_vcore_input(struct device *dev, long *val);
+static int get_ec_current1_input(struct device *dev, long *val);
+static int get_ec_cpu_temp(struct device *dev, long *val);
+static int get_ec_sys_temp(struct device *dev, long *val);
+
+const struct ec_hwmon_attrs ec_hwmon_in_attr_template[] = {
+	{"VBAT",	0444, get_ec_in_vbat_input},	// in1
+	{"5VSB",	0444, get_ec_in_v5_input},	// in2
+	{"Vin",		0444, get_ec_in_v12_input},	// in3 (== in8)
+	{"VCORE",	0444, get_ec_in_vcore_input},	// in4
+	{"Vin1",	0444, NULL},	// in5
+	{"Vin2",	0444, NULL},	// in6
+	{"System Voltage", 0444, NULL},	// in7
+	{"Current",	0444, get_ec_current1_input},
+};
+
+const struct ec_hwmon_attrs ec_temp_attrs_template[] = {
+	{"CPU Temp",	0444, get_ec_cpu_temp},
+	{"System Temp",	0444, get_ec_sys_temp},
+};
+
+enum ec_hwmon_in_type {
+	EC_HWMON_IN_VBAT,
+	EC_HWMON_IN_5VSB,
+	EC_HWMON_IN_12V,
+	EC_HWMON_IN_VCORE,
+	EC_HWMON_IN_VIN1,
+	EC_HWMON_IN_VIN2,
+	EC_HWMON_IN_SYS_VOL,
+	EC_HWMON_IN_CURRENT,
+};
+
+enum ec_temp_type {
+	EC_TEMP_CPU,
+	EC_TEMP_SYS,
+};
+
+static int hwmon_in_list_0[] = {
+	EC_HWMON_IN_VBAT,
+	EC_HWMON_IN_5VSB,
+	EC_HWMON_IN_12V,
+	EC_HWMON_IN_VCORE,
+	EC_HWMON_IN_CURRENT,
+};
+
+static int hwmon_in_list_1[] = {
+	EC_HWMON_IN_VBAT,
+	EC_HWMON_IN_5VSB,
+	EC_HWMON_IN_12V,
+	EC_HWMON_IN_VCORE,
+};
+
+static int temp_list_0[] = {
+	EC_TEMP_CPU,
+};
+
+static int temp_list_1[] = {
+	EC_TEMP_CPU,
+	EC_TEMP_SYS,
+};
+
+static struct adv_hwmon_profile advec_profile[] = {
+	/*
+	 * TPC-8100TR, TPC-651T-E3AE, TPC-1251T-E3AE, TPC-1551T-E3AE,
+	 * TPC-1751T-E3AE, TPC-1051WP-E3AE, TPC-1551WP-E3AE, TPC-1581WP-433AE,
+	 * TPC-1782H-433AE, UNO-1483G-434AE, UNO-2483G-434AE, UNO-3483G-374AE,
+	 * UNO-2473G, UNO-2484G-6???AE, UNO-2484G-7???AE, UNO-3283G-674AE,
+	 * UNO-3285G-674AE
+	 * [0] AHC1EC0_HWMON_PRO_TEMPLATE
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_0),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_0),
+		.hwmon_in_list = hwmon_in_list_0,
+		.temp_list = temp_list_0,
+	},
+	/*
+	 * TPC-B500-6??AE, TPC-5???T-6??AE, TPC-5???W-6??AE, TPC-B200-???AE,
+	 * TPC-2???T-???AE, TPC-2???W-???AE
+	 * [1] AHC1EC0_HWMON_PRO_TPC5XXX
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_1),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_0),
+		.hwmon_in_list = hwmon_in_list_1,
+		.temp_list = temp_list_0,
+	},
+	/* PR/VR4
+	 * [2] AHC1EC0_HWMON_PRO_PRVR4
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_1),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_1),
+		.hwmon_in_list = hwmon_in_list_1,
+		.temp_list = temp_list_1,
+	},
+	/* UNO-2271G-E22AE/E23AE/E022AE/E023AE,UNO-420
+	 * [3] AHC1EC0_HWMON_PRO_UNO2271G
+	 */
+	{
+		.resolution = 2929,
+		.r1 = 1912,
+		.r2 = 1000,
+		.offset = 0,
+		.hwmon_in_list_cnt = ARRAY_SIZE(hwmon_in_list_1),
+		.temp_list_cnt = ARRAY_SIZE(temp_list_0),
+		.hwmon_in_list = hwmon_in_list_1,
+		.temp_list = temp_list_0,
+	},
+};
+
+static void adv_ec_init_hwmon_profile(u32 profile, struct ec_hwmon_data *lmsensor_data)
+{
+	int i;
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+	struct ec_dynamic_table *dym_tbl = adv_ec_data->dym_tbl;
+
+	if (profile >= ARRAY_SIZE(advec_profile))
+		return;
+
+	lmsensor_data->profile = &advec_profile[profile];
+
+	for (i = 0; i < EC_MAX_TBL_NUM ; i++) {
+		switch (dym_tbl[i].device_id) {
+		case EC_DID_CMOSBAT:
+			ptbl->vbat[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vbat[1] = 1;
+			break;
+		case EC_DID_CMOSBAT_X2:
+			ptbl->vbat[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vbat[1] = 2;
+			break;
+		case EC_DID_CMOSBAT_X10:
+			ptbl->vbat[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vbat[1] = 10;
+			break;
+		case EC_DID_5VS0:
+		case EC_DID_5VS5:
+			ptbl->v5[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v5[1] = 1;
+			break;
+		case EC_DID_5VS0_X2:
+		case EC_DID_5VS5_X2:
+			ptbl->v5[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v5[1] = 2;
+			break;
+		case EC_DID_5VS0_X10:
+		case EC_DID_5VS5_X10:
+			ptbl->v5[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v5[1] = 10;
+			break;
+		case EC_DID_12VS0:
+			ptbl->v12[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v12[1] = 1;
+			break;
+		case EC_DID_12VS0_X2:
+			ptbl->v12[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v12[1] = 2;
+			break;
+		case EC_DID_12VS0_X10:
+			ptbl->v12[0] = dym_tbl[i].hw_pin_num;
+			ptbl->v12[1] = 10;
+			break;
+		case EC_DID_VCOREA:
+		case EC_DID_VCOREB:
+			ptbl->vcore[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vcore[1] = 1;
+			break;
+		case EC_DID_VCOREA_X2:
+		case EC_DID_VCOREB_X2:
+			ptbl->vcore[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vcore[1] = 2;
+			break;
+		case EC_DID_VCOREA_X10:
+		case EC_DID_VCOREB_X10:
+			ptbl->vcore[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vcore[1] = 10;
+			break;
+		case EC_DID_DC:
+			ptbl->vdc[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vdc[1] = 1;
+			break;
+		case EC_DID_DC_X2:
+			ptbl->vdc[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vdc[1] = 2;
+			break;
+		case EC_DID_DC_X10:
+			ptbl->vdc[0] = dym_tbl[i].hw_pin_num;
+			ptbl->vdc[1] = 10;
+			break;
+		case EC_DID_CURRENT:
+			ptbl->ec_current[0] = dym_tbl[i].hw_pin_num;
+			ptbl->ec_current[1] = 1;
+			break;
+		case EC_DID_SMBOEM0:
+			lmsensor_data->ec_smboem0.hw_pin_num = dym_tbl[i].hw_pin_num;
+			break;
+		default:
+			break;
+		}
+	}
+}
+
+static int get_ec_in_vbat_input(struct device *dev, long *val)
+{
+	unsigned int temp = 0;
+	unsigned long voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->vbat[0], ptbl->vbat[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage =  temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += (int)profile->offset * 100;
+
+	lmsensor_data->voltage[0] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[0];
+	return 0;
+}
+
+static int get_ec_in_v5_input(struct device *dev, long *val)
+{
+	unsigned int temp;
+	unsigned long voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->v5[0], ptbl->v5[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage =  temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += (int)profile->offset * 100;
+
+	lmsensor_data->voltage[1] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[1];
+	return 0;
+}
+
+static int get_ec_in_v12_input(struct device *dev, long *val)
+{
+	int temp;
+	unsigned long voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->v12[0], ptbl->v12[1]);
+	if (temp == -1)
+		temp = read_ad_value(adv_ec_data, ptbl->vdc[0], ptbl->vdc[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage =  temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += profile->offset * 100;
+
+	lmsensor_data->voltage[2] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[2];
+	return 0;
+}
+
+static int get_ec_in_vcore_input(struct device *dev, long *val)
+{
+	int temp;
+	unsigned int voltage = 0;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->vcore[0], ptbl->vcore[1]);
+
+	if (profile->r2 != 0)
+		voltage = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		voltage = temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		voltage += profile->offset * 100;
+
+	lmsensor_data->voltage[3] = 10 * voltage;
+
+	*val = lmsensor_data->voltage[3];
+	return 0;
+}
+
+static int get_ec_current1_input(struct device *dev, long *val)
+{
+	int temp;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	struct ec_hw_pin_table *ptbl = &lmsensor_data->pin_tbl;
+	struct adv_hwmon_profile *profile = lmsensor_data->profile;
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	temp = read_ad_value(adv_ec_data, ptbl->ec_current[0], ptbl->ec_current[1]);
+
+	if (profile->r2 != 0)
+		temp = temp * (profile->r1 + profile->r2) / profile->r2;
+
+	if (profile->resolution != 0)
+		temp = temp * profile->resolution / 1000 / 1000;
+
+	if (profile->offset != 0)
+		temp += profile->offset * 100;
+
+	lmsensor_data->ec_current[3] = 10 * temp;
+
+	*val = lmsensor_data->ec_current[3];
+	return 0;
+}
+
+static int get_ec_cpu_temp(struct device *dev, long *val)
+{
+	#define EC_ACPI_THERMAL1_REMOTE_TEMP 0x61
+
+	unsigned char value;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	read_acpi_value(adv_ec_data, EC_ACPI_THERMAL1_REMOTE_TEMP, &value);
+	*val = 1000 * value;
+	return 0;
+}
+
+static int get_ec_sys_temp(struct device *dev, long *val)
+{
+	#define EC_ACPI_THERMAL1_LOCAL_TEMP 0x60
+
+	unsigned char value;
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+	struct adv_ec_platform_data *adv_ec_data = lmsensor_data->adv_ec_data;
+
+	read_acpi_value(adv_ec_data, EC_ACPI_THERMAL1_LOCAL_TEMP, &value);
+	*val = 1000 * value;
+	return 0;
+}
+
+
+static int
+ahc1ec0_read_in(struct device *dev, u32 attr, int channel, long *val)
+{
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	if (!(lmsensor_data && lmsensor_data->profile))
+		return -EINVAL;
+
+	if (attr == hwmon_in_input &&
+		lmsensor_data->profile->hwmon_in_list_cnt > channel) {
+		int index = lmsensor_data->profile->hwmon_in_list[channel];
+		const struct ec_hwmon_attrs *ec_hwmon_attr = &ec_hwmon_in_attr_template[index];
+
+		return ec_hwmon_attr->read(dev, val);
+	}
+
+	return -EOPNOTSUPP;
+}
+
+static int
+ahc1ec0_read_temp(struct device *dev, u32 attr, int channel, long *val)
+{
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	if (!(lmsensor_data && lmsensor_data->profile))
+		return -EINVAL;
+
+	switch (attr) {
+	case hwmon_temp_input:
+		if (lmsensor_data->profile->temp_list_cnt > channel) {
+			int index = lmsensor_data->profile->temp_list[channel];
+			const struct ec_hwmon_attrs *devec_hwmon_attr =
+				&ec_temp_attrs_template[index];
+
+			return devec_hwmon_attr->read(dev, val);
+		}
+		return -EOPNOTSUPP;
+	case hwmon_temp_crit:
+		// both CPU temp and System temp are all this value
+		*val = 100000;
+		return 0;
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static int
+ahc1ec0_read_string(struct device *dev,
+					enum hwmon_sensor_types type,
+					u32 attr,
+					int channel,
+					const char **str)
+{
+	struct ec_hwmon_data *lmsensor_data = dev_get_drvdata(dev);
+
+	if (!(lmsensor_data && lmsensor_data->profile))
+		return -EINVAL;
+
+	if ((type == hwmon_in && attr == hwmon_in_label) &&
+		(lmsensor_data->profile->hwmon_in_list_cnt > channel)) {
+		int index = lmsensor_data->profile->hwmon_in_list[channel];
+		const struct ec_hwmon_attrs *ec_hwmon_attr = &ec_hwmon_in_attr_template[index];
+
+		*str = ec_hwmon_attr->name;
+		return 0;
+	}
+
+	if ((type == hwmon_temp && attr == hwmon_temp_label) &&
+		(lmsensor_data->profile->temp_list_cnt > channel)) {
+		int index = lmsensor_data->profile->temp_list[channel];
+		const struct ec_hwmon_attrs *ec_hwmon_attr = &ec_temp_attrs_template[index];
+
+		*str = ec_hwmon_attr->name;
+		return 0;
+	}
+
+	return -EOPNOTSUPP;
+}
+
+static int
+ahc1ec0_read(struct device *dev,
+			enum hwmon_sensor_types type,
+			u32 attr,
+			int channel,
+			long *val)
+{
+	switch (type) {
+	case hwmon_in:
+		return ahc1ec0_read_in(dev, attr, channel, val);
+	case hwmon_temp:
+		return ahc1ec0_read_temp(dev, attr, channel, val);
+	default:
+		return -EOPNOTSUPP;
+	}
+}
+
+static umode_t
+ec_hwmon_in_visible(const void *data, u32 attr, int channel)
+{
+	switch (attr) {
+	case hwmon_in_input:
+	case hwmon_in_label:
+		return 0444;
+	default:
+		return 0;
+	}
+}
+
+static umode_t
+ec_temp_in_visible(const void *data, u32 attr, int channel)
+{
+	switch (attr) {
+	case hwmon_temp_input:
+	case hwmon_temp_crit:
+	case hwmon_temp_label:
+		return 0444;
+	default:
+		return 0;
+	}
+}
+
+static umode_t
+ahc1ec0_is_visible(const void *data,
+					enum hwmon_sensor_types type, u32 attr, int channel)
+{
+	switch (type) {
+	case hwmon_in:
+		return ec_hwmon_in_visible(data, attr, channel);
+	case hwmon_temp:
+		return ec_temp_in_visible(data, attr, channel);
+	default:
+		return 0;
+	}
+}
+
+static const u32 ahc1ec0_in_config[] = {
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	HWMON_I_INPUT | HWMON_I_LABEL,
+	0
+};
+
+static const struct hwmon_channel_info ahc1ec0_in = {
+	.type = hwmon_in,
+	.config = ahc1ec0_in_config,
+};
+
+static const u32 ahc1ec0_temp_config[] = {
+	HWMON_T_INPUT | HWMON_T_CRIT | HWMON_T_LABEL,
+	0
+};
+
+static const struct hwmon_channel_info ahc1ec0_temp = {
+	.type = hwmon_temp,
+	.config = ahc1ec0_temp_config,
+};
+
+static const struct hwmon_channel_info *ahc1ec0_info[] = {
+	&ahc1ec0_in,
+	&ahc1ec0_temp,
+	NULL
+};
+
+static const struct hwmon_ops ahc1ec0_hwmon_ops = {
+	.is_visible = ahc1ec0_is_visible,
+	.read = ahc1ec0_read,
+	.read_string = ahc1ec0_read_string,
+};
+
+static const struct hwmon_chip_info ahc1ec0_chip_info = {
+	.ops = &ahc1ec0_hwmon_ops,
+	.info = ahc1ec0_info,
+};
+
+static int adv_ec_hwmon_probe(struct platform_device *pdev)
+{
+	int ret;
+	u32 profile;
+	struct device *dev = &pdev->dev;
+	struct adv_ec_platform_data *adv_ec_data;
+	struct ec_hwmon_data *lmsensor_data;
+
+	adv_ec_data = dev_get_drvdata(dev->parent);
+	if (!adv_ec_data)
+		return -EINVAL;
+
+	ret = device_property_read_u32(dev->parent, "advantech,hwmon-profile", &profile);
+	if (ret < 0) {
+		dev_err(dev, "get hwmon-profile failed! (%d)", ret);
+		return ret;
+	}
+
+	if (!(profile < ARRAY_SIZE(advec_profile))) {
+		dev_err(dev, "not support hwmon profile(%d)!\n", profile);
+		return -EINVAL;
+	}
+
+	lmsensor_data = devm_kzalloc(dev, sizeof(struct ec_hwmon_data), GFP_KERNEL);
+	if (!lmsensor_data)
+		return -ENOMEM;
+
+	lmsensor_data->adv_ec_data = adv_ec_data;
+	lmsensor_data->dev = dev;
+	dev_set_drvdata(dev, lmsensor_data);
+
+	adv_ec_init_hwmon_profile(profile, lmsensor_data);
+
+	lmsensor_data->hwmon_dev  = devm_hwmon_device_register_with_info(dev,
+			"ahc1ec0.hwmon", lmsensor_data, &ahc1ec0_chip_info, NULL);
+
+	return PTR_ERR_OR_ZERO(lmsensor_data->hwmon_dev);
+}
+
+static struct platform_driver adv_hwmon_drv = {
+	.driver = {
+		.name = "ahc1ec0-hwmon",
+	},
+	.probe = adv_ec_hwmon_probe,
+};
+module_platform_driver(adv_hwmon_drv);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_ALIAS("platform:ahc1ec0-hwmon");
+MODULE_DESCRIPTION("Advantech Embedded Controller HWMON Driver.");
+MODULE_AUTHOR("Campion Kang <campion.kang@advantech.com.tw>");
+MODULE_AUTHOR("Jianfeng Dai <jianfeng.dai@advantech.com.cn>");
+MODULE_VERSION("1.0");
--- linux-ein-5.4.0.orig/drivers/hwmon/applesmc.c
+++ linux-ein-5.4.0/drivers/hwmon/applesmc.c
@@ -748,15 +748,18 @@
 	}
 
 	ret = applesmc_read_key(LIGHT_SENSOR_LEFT_KEY, buffer, data_length);
+	if (ret)
+		goto out;
 	/* newer macbooks report a single 10-bit bigendian value */
 	if (data_length == 10) {
 		left = be16_to_cpu(*(__be16 *)(buffer + 6)) >> 2;
 		goto out;
 	}
 	left = buffer[2];
+
+	ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length);
 	if (ret)
 		goto out;
-	ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, data_length);
 	right = buffer[2];
 
 out:
@@ -805,12 +808,11 @@
 		  to_index(attr));
 
 	ret = applesmc_read_key(newkey, buffer, 2);
-	speed = ((buffer[0] << 8 | buffer[1]) >> 2);
-
 	if (ret)
 		return ret;
-	else
-		return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed);
+
+	speed = ((buffer[0] << 8 | buffer[1]) >> 2);
+	return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", speed);
 }
 
 static ssize_t applesmc_store_fan_speed(struct device *dev,
@@ -846,12 +848,11 @@
 	u8 buffer[2];
 
 	ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
-	manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01;
-
 	if (ret)
 		return ret;
-	else
-		return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual);
+
+	manual = ((buffer[0] << 8 | buffer[1]) >> to_index(attr)) & 0x01;
+	return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", manual);
 }
 
 static ssize_t applesmc_store_fan_manual(struct device *dev,
@@ -867,10 +868,11 @@
 		return -EINVAL;
 
 	ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
-	val = (buffer[0] << 8 | buffer[1]);
 	if (ret)
 		goto out;
 
+	val = (buffer[0] << 8 | buffer[1]);
+
 	if (input)
 		val = val | (0x01 << to_index(attr));
 	else
@@ -946,13 +948,12 @@
 	u32 count;
 
 	ret = applesmc_read_key(KEY_COUNT_KEY, buffer, 4);
-	count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) +
-						((u32)buffer[2]<<8) + buffer[3];
-
 	if (ret)
 		return ret;
-	else
-		return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count);
+
+	count = ((u32)buffer[0]<<24) + ((u32)buffer[1]<<16) +
+						((u32)buffer[2]<<8) + buffer[3];
+	return snprintf(sysfsbuf, PAGE_SIZE, "%d\n", count);
 }
 
 static ssize_t applesmc_key_at_index_read_show(struct device *dev,
--- linux-ein-5.4.0.orig/drivers/hwmon/aspeed-pwm-tacho.c
+++ linux-ein-5.4.0/drivers/hwmon/aspeed-pwm-tacho.c
@@ -851,6 +851,8 @@
 	ret = of_property_read_u32(child, "reg", &pwm_port);
 	if (ret)
 		return ret;
+	if (pwm_port >= ARRAY_SIZE(pwm_port_params))
+		return -EINVAL;
 	aspeed_create_pwm_port(priv, (u8)pwm_port);
 
 	ret = of_property_count_u8_elems(child, "cooling-levels");
--- linux-ein-5.4.0.orig/drivers/hwmon/coretemp.c
+++ linux-ein-5.4.0/drivers/hwmon/coretemp.c
@@ -46,9 +46,6 @@
 #define TOTAL_ATTRS		(MAX_CORE_ATTRS + 1)
 #define MAX_CORE_DATA		(NUM_REAL_CORES + BASE_SYSFS_ATTR_NO)
 
-#define TO_CORE_ID(cpu)		(cpu_data(cpu).cpu_core_id)
-#define TO_ATTR_NO(cpu)		(TO_CORE_ID(cpu) + BASE_SYSFS_ATTR_NO)
-
 #ifdef CONFIG_SMP
 #define for_each_sibling(i, cpu) \
 	for_each_cpu(i, topology_sibling_cpumask(cpu))
@@ -91,6 +88,8 @@
 struct platform_data {
 	struct device		*hwmon_dev;
 	u16			pkg_id;
+	u16			cpu_map[NUM_REAL_CORES];
+	struct ida		ida;
 	struct cpumask		cpumask;
 	struct temp_data	*core_data[MAX_CORE_DATA];
 	struct device_attribute name_attr;
@@ -243,10 +242,13 @@
 	 */
 	if (host_bridge && host_bridge->vendor == PCI_VENDOR_ID_INTEL) {
 		for (i = 0; i < ARRAY_SIZE(tjmax_pci_table); i++) {
-			if (host_bridge->device == tjmax_pci_table[i].device)
+			if (host_bridge->device == tjmax_pci_table[i].device) {
+				pci_dev_put(host_bridge);
 				return tjmax_pci_table[i].tjmax;
+			}
 		}
 	}
+	pci_dev_put(host_bridge);
 
 	for (i = 0; i < ARRAY_SIZE(tjmax_table); i++) {
 		if (strstr(c->x86_model_id, tjmax_table[i].id))
@@ -441,7 +443,7 @@
 							MSR_IA32_THERM_STATUS;
 	tdata->is_pkg_data = pkg_flag;
 	tdata->cpu = cpu;
-	tdata->cpu_core_id = TO_CORE_ID(cpu);
+	tdata->cpu_core_id = topology_core_id(cpu);
 	tdata->attr_size = MAX_CORE_ATTRS;
 	mutex_init(&tdata->update_lock);
 	return tdata;
@@ -454,7 +456,7 @@
 	struct platform_data *pdata = platform_get_drvdata(pdev);
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
 	u32 eax, edx;
-	int err, attr_no;
+	int err, index, attr_no;
 
 	/*
 	 * Find attr number for sysfs:
@@ -462,14 +464,26 @@
 	 * The attr number is always core id + 2
 	 * The Pkgtemp will always show up as temp1_*, if available
 	 */
-	attr_no = pkg_flag ? PKG_SYSFS_ATTR_NO : TO_ATTR_NO(cpu);
+	if (pkg_flag) {
+		attr_no = PKG_SYSFS_ATTR_NO;
+	} else {
+		index = ida_alloc(&pdata->ida, GFP_KERNEL);
+		if (index < 0)
+			return index;
+		pdata->cpu_map[index] = topology_core_id(cpu);
+		attr_no = index + BASE_SYSFS_ATTR_NO;
+	}
 
-	if (attr_no > MAX_CORE_DATA - 1)
-		return -ERANGE;
+	if (attr_no > MAX_CORE_DATA - 1) {
+		err = -ERANGE;
+		goto ida_free;
+	}
 
 	tdata = init_temp_data(cpu, pkg_flag);
-	if (!tdata)
-		return -ENOMEM;
+	if (!tdata) {
+		err = -ENOMEM;
+		goto ida_free;
+	}
 
 	/* Test if we can access the status register */
 	err = rdmsr_safe_on_cpu(cpu, tdata->status_reg, &eax, &edx);
@@ -505,6 +519,9 @@
 exit_free:
 	pdata->core_data[attr_no] = NULL;
 	kfree(tdata);
+ida_free:
+	if (!pkg_flag)
+		ida_free(&pdata->ida, index);
 	return err;
 }
 
@@ -519,71 +536,63 @@
 {
 	struct temp_data *tdata = pdata->core_data[indx];
 
+	/* if we errored on add then this is already gone */
+	if (!tdata)
+		return;
+
 	/* Remove the sysfs attributes */
 	sysfs_remove_group(&pdata->hwmon_dev->kobj, &tdata->attr_group);
 
 	kfree(pdata->core_data[indx]);
 	pdata->core_data[indx] = NULL;
+
+	if (indx >= BASE_SYSFS_ATTR_NO)
+		ida_free(&pdata->ida, indx - BASE_SYSFS_ATTR_NO);
 }
 
-static int coretemp_probe(struct platform_device *pdev)
+static int coretemp_device_add(int zoneid)
 {
-	struct device *dev = &pdev->dev;
+	struct platform_device *pdev;
 	struct platform_data *pdata;
+	int err;
 
 	/* Initialize the per-zone data structures */
-	pdata = devm_kzalloc(dev, sizeof(struct platform_data), GFP_KERNEL);
+	pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
 	if (!pdata)
 		return -ENOMEM;
 
-	pdata->pkg_id = pdev->id;
-	platform_set_drvdata(pdev, pdata);
-
-	pdata->hwmon_dev = devm_hwmon_device_register_with_groups(dev, DRVNAME,
-								  pdata, NULL);
-	return PTR_ERR_OR_ZERO(pdata->hwmon_dev);
-}
+	pdata->pkg_id = zoneid;
+	ida_init(&pdata->ida);
 
-static int coretemp_remove(struct platform_device *pdev)
-{
-	struct platform_data *pdata = platform_get_drvdata(pdev);
-	int i;
+	pdev = platform_device_alloc(DRVNAME, zoneid);
+	if (!pdev) {
+		err = -ENOMEM;
+		goto err_free_pdata;
+	}
 
-	for (i = MAX_CORE_DATA - 1; i >= 0; --i)
-		if (pdata->core_data[i])
-			coretemp_remove_core(pdata, i);
+	err = platform_device_add(pdev);
+	if (err)
+		goto err_put_dev;
 
+	platform_set_drvdata(pdev, pdata);
+	zone_devices[zoneid] = pdev;
 	return 0;
-}
 
-static struct platform_driver coretemp_driver = {
-	.driver = {
-		.name = DRVNAME,
-	},
-	.probe = coretemp_probe,
-	.remove = coretemp_remove,
-};
+err_put_dev:
+	platform_device_put(pdev);
+err_free_pdata:
+	kfree(pdata);
+	return err;
+}
 
-static struct platform_device *coretemp_device_add(unsigned int cpu)
+static void coretemp_device_remove(int zoneid)
 {
-	int err, zoneid = topology_logical_die_id(cpu);
-	struct platform_device *pdev;
-
-	if (zoneid < 0)
-		return ERR_PTR(-ENOMEM);
-
-	pdev = platform_device_alloc(DRVNAME, zoneid);
-	if (!pdev)
-		return ERR_PTR(-ENOMEM);
-
-	err = platform_device_add(pdev);
-	if (err) {
-		platform_device_put(pdev);
-		return ERR_PTR(err);
-	}
+	struct platform_device *pdev = zone_devices[zoneid];
+	struct platform_data *pdata = platform_get_drvdata(pdev);
 
-	zone_devices[zoneid] = pdev;
-	return pdev;
+	ida_destroy(&pdata->ida);
+	kfree(pdata);
+	platform_device_unregister(pdev);
 }
 
 static int coretemp_cpu_online(unsigned int cpu)
@@ -607,7 +616,10 @@
 	if (!cpu_has(c, X86_FEATURE_DTHERM))
 		return -ENODEV;
 
-	if (!pdev) {
+	pdata = platform_get_drvdata(pdev);
+	if (!pdata->hwmon_dev) {
+		struct device *hwmon;
+
 		/* Check the microcode version of the CPU */
 		if (chk_ucode_version(cpu))
 			return -EINVAL;
@@ -618,9 +630,11 @@
 		 * online. So, initialize per-pkg data structures and
 		 * then bring this core online.
 		 */
-		pdev = coretemp_device_add(cpu);
-		if (IS_ERR(pdev))
-			return PTR_ERR(pdev);
+		hwmon = hwmon_device_register_with_groups(&pdev->dev, DRVNAME,
+							  pdata, NULL);
+		if (IS_ERR(hwmon))
+			return PTR_ERR(hwmon);
+		pdata->hwmon_dev = hwmon;
 
 		/*
 		 * Check whether pkgtemp support is available.
@@ -630,7 +644,6 @@
 			coretemp_add_core(pdev, cpu, 1);
 	}
 
-	pdata = platform_get_drvdata(pdev);
 	/*
 	 * Check whether a thread sibling is already online. If not add the
 	 * interface for this CPU core.
@@ -647,25 +660,28 @@
 	struct platform_device *pdev = coretemp_get_pdev(cpu);
 	struct platform_data *pd;
 	struct temp_data *tdata;
-	int indx, target;
+	int i, indx = -1, target;
 
-	/*
-	 * Don't execute this on suspend as the device remove locks
-	 * up the machine.
-	 */
+	/* No need to tear down any interfaces for suspend */
 	if (cpuhp_tasks_frozen)
 		return 0;
 
 	/* If the physical CPU device does not exist, just return */
-	if (!pdev)
+	pd = platform_get_drvdata(pdev);
+	if (!pd->hwmon_dev)
 		return 0;
 
-	/* The core id is too big, just return */
-	indx = TO_ATTR_NO(cpu);
-	if (indx > MAX_CORE_DATA - 1)
+	for (i = 0; i < NUM_REAL_CORES; i++) {
+		if (pd->cpu_map[i] == topology_core_id(cpu)) {
+			indx = i + BASE_SYSFS_ATTR_NO;
+			break;
+		}
+	}
+
+	/* Too many cores and this core is not populated, just return */
+	if (indx < 0)
 		return 0;
 
-	pd = platform_get_drvdata(pdev);
 	tdata = pd->core_data[indx];
 
 	cpumask_clear_cpu(cpu, &pd->cpumask);
@@ -685,13 +701,14 @@
 	}
 
 	/*
-	 * If all cores in this pkg are offline, remove the device. This
-	 * will invoke the platform driver remove function, which cleans up
-	 * the rest.
+	 * If all cores in this pkg are offline, remove the interface.
 	 */
+	tdata = pd->core_data[PKG_SYSFS_ATTR_NO];
 	if (cpumask_empty(&pd->cpumask)) {
-		zone_devices[topology_logical_die_id(cpu)] = NULL;
-		platform_device_unregister(pdev);
+		if (tdata)
+			coretemp_remove_core(pd, PKG_SYSFS_ATTR_NO);
+		hwmon_device_unregister(pd->hwmon_dev);
+		pd->hwmon_dev = NULL;
 		return 0;
 	}
 
@@ -699,7 +716,6 @@
 	 * Check whether this core is the target for the package
 	 * interface. We need to assign it to some other cpu.
 	 */
-	tdata = pd->core_data[PKG_SYSFS_ATTR_NO];
 	if (tdata && tdata->cpu == cpu) {
 		target = cpumask_first(&pd->cpumask);
 		mutex_lock(&tdata->update_lock);
@@ -718,7 +734,7 @@
 
 static int __init coretemp_init(void)
 {
-	int err;
+	int i, err;
 
 	/*
 	 * CPUID.06H.EAX[0] indicates whether the CPU has thermal
@@ -734,20 +750,22 @@
 	if (!zone_devices)
 		return -ENOMEM;
 
-	err = platform_driver_register(&coretemp_driver);
-	if (err)
-		goto outzone;
+	for (i = 0; i < max_zones; i++) {
+		err = coretemp_device_add(i);
+		if (err)
+			goto outzone;
+	}
 
 	err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "hwmon/coretemp:online",
 				coretemp_cpu_online, coretemp_cpu_offline);
 	if (err < 0)
-		goto outdrv;
+		goto outzone;
 	coretemp_hp_online = err;
 	return 0;
 
-outdrv:
-	platform_driver_unregister(&coretemp_driver);
 outzone:
+	while (i--)
+		coretemp_device_remove(i);
 	kfree(zone_devices);
 	return err;
 }
@@ -755,8 +773,11 @@
 
 static void __exit coretemp_exit(void)
 {
+	int i;
+
 	cpuhp_remove_state(coretemp_hp_online);
-	platform_driver_unregister(&coretemp_driver);
+	for (i = 0; i < max_zones; i++)
+		coretemp_device_remove(i);
 	kfree(zone_devices);
 }
 module_exit(coretemp_exit)
--- linux-ein-5.4.0.orig/drivers/hwmon/da9052-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/da9052-hwmon.c
@@ -244,9 +244,9 @@
 	int channel = to_sensor_dev_attr(devattr)->index;
 	int ret;
 
-	mutex_lock(&hwmon->hwmon_lock);
+	mutex_lock(&hwmon->da9052->auxadc_lock);
 	ret = __da9052_read_tsi(dev, channel);
-	mutex_unlock(&hwmon->hwmon_lock);
+	mutex_unlock(&hwmon->da9052->auxadc_lock);
 
 	if (ret < 0)
 		return ret;
--- linux-ein-5.4.0.orig/drivers/hwmon/dell-smm-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/dell-smm-hwmon.c
@@ -301,7 +301,7 @@
 }
 
 /*
- * Set the fan speed (off, low, high). Returns the new fan status.
+ * Set the fan speed (off, low, high, ...).
  */
 static int i8k_set_fan(int fan, int speed)
 {
@@ -313,7 +313,7 @@
 	speed = (speed < 0) ? 0 : ((speed > i8k_fan_max) ? i8k_fan_max : speed);
 	regs.ebx = (fan & 0xff) | (speed << 8);
 
-	return i8k_smm(&regs) ? : i8k_get_fan_status(fan);
+	return i8k_smm(&regs);
 }
 
 static int i8k_get_temp_type(int sensor)
@@ -427,7 +427,7 @@
 i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg)
 {
 	int val = 0;
-	int speed;
+	int speed, err;
 	unsigned char buff[16];
 	int __user *argp = (int __user *)arg;
 
@@ -488,7 +488,11 @@
 		if (copy_from_user(&speed, argp + 1, sizeof(int)))
 			return -EFAULT;
 
-		val = i8k_set_fan(val, speed);
+		err = i8k_set_fan(val, speed);
+		if (err < 0)
+			return err;
+
+		val = i8k_get_fan_status(val);
 		break;
 
 	default:
@@ -588,15 +592,18 @@
 	.unlocked_ioctl	= i8k_ioctl,
 };
 
+static struct proc_dir_entry *entry;
+
 static void __init i8k_init_procfs(void)
 {
 	/* Register the proc entry */
-	proc_create("i8k", 0, NULL, &i8k_fops);
+	entry = proc_create("i8k", 0, NULL, &i8k_fops);
 }
 
 static void __exit i8k_exit_procfs(void)
 {
-	remove_proc_entry("i8k", NULL);
+	if (entry)
+		remove_proc_entry("i8k", NULL);
 }
 
 #else
@@ -792,10 +799,10 @@
 static umode_t i8k_is_visible(struct kobject *kobj, struct attribute *attr,
 			      int index)
 {
-	if (disallow_fan_support && index >= 8)
+	if (disallow_fan_support && index >= 20)
 		return 0;
 	if (disallow_fan_type_call &&
-	    (index == 9 || index == 12 || index == 15))
+	    (index == 21 || index == 25 || index == 28))
 		return 0;
 	if (index >= 0 && index <= 1 &&
 	    !(i8k_hwmon_flags & I8K_HWMON_HAVE_TEMP1))
--- linux-ein-5.4.0.orig/drivers/hwmon/emc2103.c
+++ linux-ein-5.4.0/drivers/hwmon/emc2103.c
@@ -443,7 +443,7 @@
 	}
 
 	result = read_u8_from_i2c(client, REG_FAN_CONF1, &conf_reg);
-	if (result) {
+	if (result < 0) {
 		count = result;
 		goto err;
 	}
--- linux-ein-5.4.0.orig/drivers/hwmon/f71882fg.c
+++ linux-ein-5.4.0/drivers/hwmon/f71882fg.c
@@ -1577,8 +1577,9 @@
 		temp *= 125;
 		if (sign)
 			temp -= 128000;
-	} else
-		temp = data->temp[nr] * 1000;
+	} else {
+		temp = ((s8)data->temp[nr]) * 1000;
+	}
 
 	return sprintf(buf, "%d\n", temp);
 }
--- linux-ein-5.4.0.orig/drivers/hwmon/gpio-fan.c
+++ linux-ein-5.4.0/drivers/hwmon/gpio-fan.c
@@ -391,6 +391,9 @@
 	if (!fan_data)
 		return -EINVAL;
 
+	if (state >= fan_data->num_speed)
+		return -EINVAL;
+
 	set_fan_speed(fan_data, state);
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/hwmon/gsc-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/gsc-hwmon.c
@@ -0,0 +1,419 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Driver for Gateworks System Controller Hardware Monitor module
+ *
+ * Copyright (C) 2020 Gateworks Corporation
+ */
+#include <linux/hwmon.h>
+#include <linux/hwmon-sysfs.h>
+#include <linux/mfd/gsc.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+
+#include <linux/platform_data/gsc_hwmon.h>
+
+#define GSC_HWMON_MAX_TEMP_CH	16
+#define GSC_HWMON_MAX_IN_CH	16
+#define GSC_HWMON_MAX_FAN_CH	16
+
+#define GSC_HWMON_RESOLUTION	12
+#define GSC_HWMON_VREF		2500
+
+struct gsc_hwmon_data {
+	struct gsc_dev *gsc;
+	struct gsc_hwmon_platform_data *pdata;
+	struct regmap *regmap;
+	const struct gsc_hwmon_channel *temp_ch[GSC_HWMON_MAX_TEMP_CH];
+	const struct gsc_hwmon_channel *in_ch[GSC_HWMON_MAX_IN_CH];
+	const struct gsc_hwmon_channel *fan_ch[GSC_HWMON_MAX_FAN_CH];
+	u32 temp_config[GSC_HWMON_MAX_TEMP_CH + 1];
+	u32 in_config[GSC_HWMON_MAX_IN_CH + 1];
+	u32 fan_config[GSC_HWMON_MAX_FAN_CH + 1];
+	struct hwmon_channel_info temp_info;
+	struct hwmon_channel_info in_info;
+	struct hwmon_channel_info fan_info;
+	const struct hwmon_channel_info *info[4];
+	struct hwmon_chip_info chip;
+};
+
+static struct regmap_bus gsc_hwmon_regmap_bus = {
+	.reg_read = gsc_read,
+	.reg_write = gsc_write,
+};
+
+static const struct regmap_config gsc_hwmon_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.cache_type = REGCACHE_NONE,
+};
+
+static ssize_t pwm_auto_point_temp_show(struct device *dev,
+					struct device_attribute *devattr,
+					char *buf)
+{
+	struct gsc_hwmon_data *hwmon = dev_get_drvdata(dev);
+	struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
+	u8 reg = hwmon->pdata->fan_base + (2 * attr->index);
+	u8 regs[2];
+	int ret;
+
+	ret = regmap_bulk_read(hwmon->regmap, reg, regs, 2);
+	if (ret)
+		return ret;
+
+	ret = regs[0] | regs[1] << 8;
+	return sprintf(buf, "%d\n", ret * 10);
+}
+
+static ssize_t pwm_auto_point_temp_store(struct device *dev,
+					 struct device_attribute *devattr,
+					 const char *buf, size_t count)
+{
+	struct gsc_hwmon_data *hwmon = dev_get_drvdata(dev);
+	struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
+	u8 reg = hwmon->pdata->fan_base + (2 * attr->index);
+	u8 regs[2];
+	long temp;
+	int err;
+
+	if (kstrtol(buf, 10, &temp))
+		return -EINVAL;
+
+	temp = clamp_val(temp, 0, 10000);
+	temp = DIV_ROUND_CLOSEST(temp, 10);
+
+	regs[0] = temp & 0xff;
+	regs[1] = (temp >> 8) & 0xff;
+	err = regmap_bulk_write(hwmon->regmap, reg, regs, 2);
+	if (err)
+		return err;
+
+	return count;
+}
+
+static ssize_t pwm_auto_point_pwm_show(struct device *dev,
+				       struct device_attribute *devattr,
+				       char *buf)
+{
+	struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
+
+	return sprintf(buf, "%d\n", 255 * (50 + (attr->index * 10)) / 100);
+}
+
+static SENSOR_DEVICE_ATTR_RO(pwm1_auto_point1_pwm, pwm_auto_point_pwm, 0);
+static SENSOR_DEVICE_ATTR_RW(pwm1_auto_point1_temp, pwm_auto_point_temp, 0);
+
+static SENSOR_DEVICE_ATTR_RO(pwm1_auto_point2_pwm, pwm_auto_point_pwm, 1);
+static SENSOR_DEVICE_ATTR_RW(pwm1_auto_point2_temp, pwm_auto_point_temp, 1);
+
+static SENSOR_DEVICE_ATTR_RO(pwm1_auto_point3_pwm, pwm_auto_point_pwm, 2);
+static SENSOR_DEVICE_ATTR_RW(pwm1_auto_point3_temp, pwm_auto_point_temp, 2);
+
+static SENSOR_DEVICE_ATTR_RO(pwm1_auto_point4_pwm, pwm_auto_point_pwm, 3);
+static SENSOR_DEVICE_ATTR_RW(pwm1_auto_point4_temp, pwm_auto_point_temp, 3);
+
+static SENSOR_DEVICE_ATTR_RO(pwm1_auto_point5_pwm, pwm_auto_point_pwm, 4);
+static SENSOR_DEVICE_ATTR_RW(pwm1_auto_point5_temp, pwm_auto_point_temp, 4);
+
+static SENSOR_DEVICE_ATTR_RO(pwm1_auto_point6_pwm, pwm_auto_point_pwm, 5);
+static SENSOR_DEVICE_ATTR_RW(pwm1_auto_point6_temp, pwm_auto_point_temp, 5);
+
+static struct attribute *gsc_hwmon_attributes[] = {
+	&sensor_dev_attr_pwm1_auto_point1_pwm.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point1_temp.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point2_pwm.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point2_temp.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point3_pwm.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point3_temp.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point4_pwm.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point4_temp.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point5_pwm.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point5_temp.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point6_pwm.dev_attr.attr,
+	&sensor_dev_attr_pwm1_auto_point6_temp.dev_attr.attr,
+	NULL
+};
+
+static const struct attribute_group gsc_hwmon_group = {
+	.attrs = gsc_hwmon_attributes,
+};
+__ATTRIBUTE_GROUPS(gsc_hwmon);
+
+static int
+gsc_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
+	       int channel, long *val)
+{
+	struct gsc_hwmon_data *hwmon = dev_get_drvdata(dev);
+	const struct gsc_hwmon_channel *ch;
+	int sz, ret;
+	long tmp;
+	u8 buf[3];
+
+	switch (type) {
+	case hwmon_in:
+		ch = hwmon->in_ch[channel];
+		break;
+	case hwmon_temp:
+		ch = hwmon->temp_ch[channel];
+		break;
+	case hwmon_fan:
+		ch = hwmon->fan_ch[channel];
+		break;
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	sz = (ch->mode == mode_voltage_24bit) ? 3 : 2;
+	ret = regmap_bulk_read(hwmon->regmap, ch->reg, buf, sz);
+	if (ret)
+		return ret;
+
+	tmp = 0;
+	while (sz-- > 0)
+		tmp |= (buf[sz] << (8 * sz));
+
+	switch (ch->mode) {
+	case mode_temperature:
+		if (tmp > 0x8000)
+			tmp -= 0xffff;
+		tmp *= 100; /* convert to millidegrees celsius */
+		break;
+	case mode_voltage_raw:
+		tmp = clamp_val(tmp, 0, BIT(GSC_HWMON_RESOLUTION));
+		/* scale based on ref voltage and ADC resolution */
+		tmp *= GSC_HWMON_VREF;
+		tmp >>= GSC_HWMON_RESOLUTION;
+		/* scale based on optional voltage divider */
+		if (ch->vdiv[0] && ch->vdiv[1]) {
+			tmp *= (ch->vdiv[0] + ch->vdiv[1]);
+			tmp /= ch->vdiv[1];
+		}
+		/* adjust by uV offset */
+		tmp += ch->mvoffset;
+		break;
+	case mode_fan:
+		tmp *= 30; /* convert to revolutions per minute */
+		break;
+	case mode_voltage_24bit:
+	case mode_voltage_16bit:
+		/* no adjustment needed */
+		break;
+	}
+
+	*val = tmp;
+
+	return 0;
+}
+
+static int
+gsc_hwmon_read_string(struct device *dev, enum hwmon_sensor_types type,
+		      u32 attr, int channel, const char **buf)
+{
+	struct gsc_hwmon_data *hwmon = dev_get_drvdata(dev);
+
+	switch (type) {
+	case hwmon_in:
+		*buf = hwmon->in_ch[channel]->name;
+		break;
+	case hwmon_temp:
+		*buf = hwmon->temp_ch[channel]->name;
+		break;
+	case hwmon_fan:
+		*buf = hwmon->fan_ch[channel]->name;
+		break;
+	default:
+		return -ENOTSUPP;
+	}
+
+	return 0;
+}
+
+static umode_t
+gsc_hwmon_is_visible(const void *_data, enum hwmon_sensor_types type, u32 attr,
+		     int ch)
+{
+	return 0444;
+}
+
+static const struct hwmon_ops gsc_hwmon_ops = {
+	.is_visible = gsc_hwmon_is_visible,
+	.read = gsc_hwmon_read,
+	.read_string = gsc_hwmon_read_string,
+};
+
+static struct gsc_hwmon_platform_data *
+gsc_hwmon_get_devtree_pdata(struct device *dev)
+{
+	struct gsc_hwmon_platform_data *pdata;
+	struct gsc_hwmon_channel *ch;
+	struct fwnode_handle *child;
+	struct device_node *fan;
+	int nchannels;
+
+	nchannels = device_get_child_node_count(dev);
+	if (nchannels == 0)
+		return ERR_PTR(-ENODEV);
+
+	pdata = devm_kzalloc(dev,
+			     sizeof(*pdata) + nchannels * sizeof(*ch),
+			     GFP_KERNEL);
+	if (!pdata)
+		return ERR_PTR(-ENOMEM);
+	ch = (struct gsc_hwmon_channel *)(pdata + 1);
+	pdata->channels = ch;
+	pdata->nchannels = nchannels;
+
+	/* fan controller base address */
+	fan = of_find_compatible_node(dev->parent->of_node, NULL, "gw,gsc-fan");
+	if (fan && of_property_read_u32(fan, "reg", &pdata->fan_base)) {
+		dev_err(dev, "fan node without base\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	/* allocate structures for channels and count instances of each type */
+	device_for_each_child_node(dev, child) {
+		if (fwnode_property_read_string(child, "label", &ch->name)) {
+			dev_err(dev, "channel without label\n");
+			fwnode_handle_put(child);
+			return ERR_PTR(-EINVAL);
+		}
+		if (fwnode_property_read_u32(child, "reg", &ch->reg)) {
+			dev_err(dev, "channel without reg\n");
+			fwnode_handle_put(child);
+			return ERR_PTR(-EINVAL);
+		}
+		if (fwnode_property_read_u32(child, "gw,mode", &ch->mode)) {
+			dev_err(dev, "channel without mode\n");
+			fwnode_handle_put(child);
+			return ERR_PTR(-EINVAL);
+		}
+		if (ch->mode > mode_max) {
+			dev_err(dev, "invalid channel mode\n");
+			fwnode_handle_put(child);
+			return ERR_PTR(-EINVAL);
+		}
+
+		if (!fwnode_property_read_u32(child,
+					      "gw,voltage-offset-microvolt",
+					      &ch->mvoffset))
+			ch->mvoffset /= 1000;
+		fwnode_property_read_u32_array(child,
+					       "gw,voltage-divider-ohms",
+					       ch->vdiv, ARRAY_SIZE(ch->vdiv));
+		ch++;
+	}
+
+	return pdata;
+}
+
+static int gsc_hwmon_probe(struct platform_device *pdev)
+{
+	struct gsc_dev *gsc = dev_get_drvdata(pdev->dev.parent);
+	struct device *dev = &pdev->dev;
+	struct device *hwmon_dev;
+	struct gsc_hwmon_platform_data *pdata = dev_get_platdata(dev);
+	struct gsc_hwmon_data *hwmon;
+	const struct attribute_group **groups;
+	int i, i_in, i_temp, i_fan;
+
+	if (!pdata) {
+		pdata = gsc_hwmon_get_devtree_pdata(dev);
+		if (IS_ERR(pdata))
+			return PTR_ERR(pdata);
+	}
+
+	hwmon = devm_kzalloc(dev, sizeof(*hwmon), GFP_KERNEL);
+	if (!hwmon)
+		return -ENOMEM;
+	hwmon->gsc = gsc;
+	hwmon->pdata = pdata;
+
+	hwmon->regmap = devm_regmap_init(dev, &gsc_hwmon_regmap_bus,
+					 gsc->i2c_hwmon,
+					 &gsc_hwmon_regmap_config);
+	if (IS_ERR(hwmon->regmap))
+		return PTR_ERR(hwmon->regmap);
+
+	for (i = 0, i_in = 0, i_temp = 0, i_fan = 0; i < hwmon->pdata->nchannels; i++) {
+		const struct gsc_hwmon_channel *ch = &pdata->channels[i];
+
+		switch (ch->mode) {
+		case mode_temperature:
+			if (i_temp == GSC_HWMON_MAX_TEMP_CH) {
+				dev_err(gsc->dev, "too many temp channels\n");
+				return -EINVAL;
+			}
+			hwmon->temp_ch[i_temp] = ch;
+			hwmon->temp_config[i_temp] = HWMON_T_INPUT |
+						     HWMON_T_LABEL;
+			i_temp++;
+			break;
+		case mode_fan:
+			if (i_fan == GSC_HWMON_MAX_FAN_CH) {
+				dev_err(gsc->dev, "too many fan channels\n");
+				return -EINVAL;
+			}
+			hwmon->fan_ch[i_fan] = ch;
+			hwmon->fan_config[i_fan] = HWMON_F_INPUT |
+						   HWMON_F_LABEL;
+			i_fan++;
+			break;
+		case mode_voltage_24bit:
+		case mode_voltage_16bit:
+		case mode_voltage_raw:
+			if (i_in == GSC_HWMON_MAX_IN_CH) {
+				dev_err(gsc->dev, "too many input channels\n");
+				return -EINVAL;
+			}
+			hwmon->in_ch[i_in] = ch;
+			hwmon->in_config[i_in] =
+				HWMON_I_INPUT | HWMON_I_LABEL;
+			i_in++;
+			break;
+		default:
+			dev_err(gsc->dev, "invalid mode: %d\n", ch->mode);
+			return -EINVAL;
+		}
+	}
+
+	/* setup config structures */
+	hwmon->chip.ops = &gsc_hwmon_ops;
+	hwmon->chip.info = hwmon->info;
+	hwmon->info[0] = &hwmon->temp_info;
+	hwmon->info[1] = &hwmon->in_info;
+	hwmon->info[2] = &hwmon->fan_info;
+	hwmon->temp_info.type = hwmon_temp;
+	hwmon->temp_info.config = hwmon->temp_config;
+	hwmon->in_info.type = hwmon_in;
+	hwmon->in_info.config = hwmon->in_config;
+	hwmon->fan_info.type = hwmon_fan;
+	hwmon->fan_info.config = hwmon->fan_config;
+
+	groups = pdata->fan_base ? gsc_hwmon_groups : NULL;
+	hwmon_dev = devm_hwmon_device_register_with_info(dev,
+							 KBUILD_MODNAME, hwmon,
+							 &hwmon->chip, groups);
+	return PTR_ERR_OR_ZERO(hwmon_dev);
+}
+
+static const struct of_device_id gsc_hwmon_of_match[] = {
+	{ .compatible = "gw,gsc-adc", },
+	{}
+};
+
+static struct platform_driver gsc_hwmon_driver = {
+	.driver = {
+		.name = "gsc-hwmon",
+		.of_match_table = gsc_hwmon_of_match,
+	},
+	.probe = gsc_hwmon_probe,
+};
+
+module_platform_driver(gsc_hwmon_driver);
+
+MODULE_AUTHOR("Tim Harvey <tharvey@gateworks.com>");
+MODULE_DESCRIPTION("GSC hardware monitor driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/hwmon/hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/hwmon.c
@@ -51,6 +51,7 @@
 
 #define to_hwmon_attr(d) \
 	container_of(d, struct hwmon_device_attribute, dev_attr)
+#define to_dev_attr(a) container_of(a, struct device_attribute, attr)
 
 /*
  * Thermal zone information
@@ -58,7 +59,7 @@
  * also provides the sensor index.
  */
 struct hwmon_thermal_data {
-	struct hwmon_device *hwdev;	/* Reference to hwmon device */
+	struct device *dev;		/* Reference to hwmon device */
 	int index;			/* sensor index */
 };
 
@@ -95,9 +96,27 @@
 	NULL
 };
 
+static void hwmon_free_attrs(struct attribute **attrs)
+{
+	int i;
+
+	for (i = 0; attrs[i]; i++) {
+		struct device_attribute *dattr = to_dev_attr(attrs[i]);
+		struct hwmon_device_attribute *hattr = to_hwmon_attr(dattr);
+
+		kfree(hattr);
+	}
+	kfree(attrs);
+}
+
 static void hwmon_dev_release(struct device *dev)
 {
-	kfree(to_hwmon_device(dev));
+	struct hwmon_device *hwdev = to_hwmon_device(dev);
+
+	if (hwdev->group.attrs)
+		hwmon_free_attrs(hwdev->group.attrs);
+	kfree(hwdev->groups);
+	kfree(hwdev);
 }
 
 static struct class hwmon_class = {
@@ -119,11 +138,11 @@
 static int hwmon_thermal_get_temp(void *data, int *temp)
 {
 	struct hwmon_thermal_data *tdata = data;
-	struct hwmon_device *hwdev = tdata->hwdev;
+	struct hwmon_device *hwdev = to_hwmon_device(tdata->dev);
 	int ret;
 	long t;
 
-	ret = hwdev->chip->ops->read(&hwdev->dev, hwmon_temp, hwmon_temp_input,
+	ret = hwdev->chip->ops->read(tdata->dev, hwmon_temp, hwmon_temp_input,
 				     tdata->index, &t);
 	if (ret < 0)
 		return ret;
@@ -137,8 +156,7 @@
 	.get_temp = hwmon_thermal_get_temp,
 };
 
-static int hwmon_thermal_add_sensor(struct device *dev,
-				    struct hwmon_device *hwdev, int index)
+static int hwmon_thermal_add_sensor(struct device *dev, int index)
 {
 	struct hwmon_thermal_data *tdata;
 	struct thermal_zone_device *tzd;
@@ -147,10 +165,10 @@
 	if (!tdata)
 		return -ENOMEM;
 
-	tdata->hwdev = hwdev;
+	tdata->dev = dev;
 	tdata->index = index;
 
-	tzd = devm_thermal_zone_of_sensor_register(&hwdev->dev, index, tdata,
+	tzd = devm_thermal_zone_of_sensor_register(dev, index, tdata,
 						   &hwmon_thermal_ops);
 	/*
 	 * If CONFIG_THERMAL_OF is disabled, this returns -ENODEV,
@@ -162,8 +180,7 @@
 	return 0;
 }
 #else
-static int hwmon_thermal_add_sensor(struct device *dev,
-				    struct hwmon_device *hwdev, int index)
+static int hwmon_thermal_add_sensor(struct device *dev, int index)
 {
 	return 0;
 }
@@ -250,8 +267,7 @@
 	       (type == hwmon_fan && attr == hwmon_fan_label);
 }
 
-static struct attribute *hwmon_genattr(struct device *dev,
-				       const void *drvdata,
+static struct attribute *hwmon_genattr(const void *drvdata,
 				       enum hwmon_sensor_types type,
 				       u32 attr,
 				       int index,
@@ -279,7 +295,7 @@
 	if ((mode & 0222) && !ops->write)
 		return ERR_PTR(-EINVAL);
 
-	hattr = devm_kzalloc(dev, sizeof(*hattr), GFP_KERNEL);
+	hattr = kzalloc(sizeof(*hattr), GFP_KERNEL);
 	if (!hattr)
 		return ERR_PTR(-ENOMEM);
 
@@ -492,8 +508,7 @@
 	return n;
 }
 
-static int hwmon_genattrs(struct device *dev,
-			  const void *drvdata,
+static int hwmon_genattrs(const void *drvdata,
 			  struct attribute **attrs,
 			  const struct hwmon_ops *ops,
 			  const struct hwmon_channel_info *info)
@@ -519,7 +534,7 @@
 			attr_mask &= ~BIT(attr);
 			if (attr >= template_size)
 				return -EINVAL;
-			a = hwmon_genattr(dev, drvdata, info->type, attr, i,
+			a = hwmon_genattr(drvdata, info->type, attr, i,
 					  templates[attr], ops);
 			if (IS_ERR(a)) {
 				if (PTR_ERR(a) != -ENOENT)
@@ -533,8 +548,7 @@
 }
 
 static struct attribute **
-__hwmon_create_attrs(struct device *dev, const void *drvdata,
-		     const struct hwmon_chip_info *chip)
+__hwmon_create_attrs(const void *drvdata, const struct hwmon_chip_info *chip)
 {
 	int ret, i, aindex = 0, nattrs = 0;
 	struct attribute **attrs;
@@ -545,15 +559,17 @@
 	if (nattrs == 0)
 		return ERR_PTR(-EINVAL);
 
-	attrs = devm_kcalloc(dev, nattrs + 1, sizeof(*attrs), GFP_KERNEL);
+	attrs = kcalloc(nattrs + 1, sizeof(*attrs), GFP_KERNEL);
 	if (!attrs)
 		return ERR_PTR(-ENOMEM);
 
 	for (i = 0; chip->info[i]; i++) {
-		ret = hwmon_genattrs(dev, drvdata, &attrs[aindex], chip->ops,
+		ret = hwmon_genattrs(drvdata, &attrs[aindex], chip->ops,
 				     chip->info[i]);
-		if (ret < 0)
+		if (ret < 0) {
+			hwmon_free_attrs(attrs);
 			return ERR_PTR(ret);
+		}
 		aindex += ret;
 	}
 
@@ -595,14 +611,13 @@
 			for (i = 0; groups[i]; i++)
 				ngroups++;
 
-		hwdev->groups = devm_kcalloc(dev, ngroups, sizeof(*groups),
-					     GFP_KERNEL);
+		hwdev->groups = kcalloc(ngroups, sizeof(*groups), GFP_KERNEL);
 		if (!hwdev->groups) {
 			err = -ENOMEM;
 			goto free_hwmon;
 		}
 
-		attrs = __hwmon_create_attrs(dev, drvdata, chip);
+		attrs = __hwmon_create_attrs(drvdata, chip);
 		if (IS_ERR(attrs)) {
 			err = PTR_ERR(attrs);
 			goto free_hwmon;
@@ -630,8 +645,10 @@
 	dev_set_drvdata(hdev, drvdata);
 	dev_set_name(hdev, HWMON_ID_FORMAT, id);
 	err = device_register(hdev);
-	if (err)
-		goto free_hwmon;
+	if (err) {
+		put_device(hdev);
+		goto ida_remove;
+	}
 
 	if (dev && dev->of_node && chip && chip->ops->read &&
 	    chip->info[0]->type == hwmon_chip &&
@@ -647,8 +664,7 @@
 							   hwmon_temp_input, j))
 					continue;
 				if (info[i]->config[j] & HWMON_T_INPUT) {
-					err = hwmon_thermal_add_sensor(dev,
-								hwdev, j);
+					err = hwmon_thermal_add_sensor(hdev, j);
 					if (err) {
 						device_unregister(hdev);
 						/*
@@ -667,7 +683,7 @@
 	return hdev;
 
 free_hwmon:
-	kfree(hwdev);
+	hwmon_dev_release(hdev);
 ida_remove:
 	ida_simple_remove(&hwmon_ida, id);
 	return ERR_PTR(err);
--- linux-ein-5.4.0.orig/drivers/hwmon/i5500_temp.c
+++ linux-ein-5.4.0/drivers/hwmon/i5500_temp.c
@@ -108,7 +108,7 @@
 	u32 tstimer;
 	s8 tsfsc;
 
-	err = pci_enable_device(pdev);
+	err = pcim_enable_device(pdev);
 	if (err) {
 		dev_err(&pdev->dev, "Failed to enable device\n");
 		return err;
--- linux-ein-5.4.0.orig/drivers/hwmon/ibmaem.c
+++ linux-ein-5.4.0/drivers/hwmon/ibmaem.c
@@ -550,7 +550,7 @@
 
 	res = platform_device_add(data->pdev);
 	if (res)
-		goto ipmi_err;
+		goto dev_add_err;
 
 	platform_set_drvdata(data->pdev, data);
 
@@ -598,7 +598,9 @@
 	ipmi_destroy_user(data->ipmi.user);
 ipmi_err:
 	platform_set_drvdata(data->pdev, NULL);
-	platform_device_unregister(data->pdev);
+	platform_device_del(data->pdev);
+dev_add_err:
+	platform_device_put(data->pdev);
 dev_err:
 	ida_simple_remove(&aem_ida, data->id);
 id_err:
@@ -690,7 +692,7 @@
 
 	res = platform_device_add(data->pdev);
 	if (res)
-		goto ipmi_err;
+		goto dev_add_err;
 
 	platform_set_drvdata(data->pdev, data);
 
@@ -738,7 +740,9 @@
 	ipmi_destroy_user(data->ipmi.user);
 ipmi_err:
 	platform_set_drvdata(data->pdev, NULL);
-	platform_device_unregister(data->pdev);
+	platform_device_del(data->pdev);
+dev_add_err:
+	platform_device_put(data->pdev);
 dev_err:
 	ida_simple_remove(&aem_ida, data->id);
 id_err:
--- linux-ein-5.4.0.orig/drivers/hwmon/ibmpex.c
+++ linux-ein-5.4.0/drivers/hwmon/ibmpex.c
@@ -502,6 +502,7 @@
 	return;
 
 out_register:
+	list_del(&data->list);
 	hwmon_device_unregister(data->hwmon_dev);
 out_user:
 	ipmi_destroy_user(data->user);
--- linux-ein-5.4.0.orig/drivers/hwmon/ina3221.c
+++ linux-ein-5.4.0/drivers/hwmon/ina3221.c
@@ -403,7 +403,7 @@
 
 	/* For enabling routine, increase refcount and resume() at first */
 	if (enable) {
-		ret = pm_runtime_get_sync(ina->pm_dev);
+		ret = pm_runtime_resume_and_get(ina->pm_dev);
 		if (ret < 0) {
 			dev_err(dev, "Failed to get PM runtime\n");
 			return ret;
@@ -672,7 +672,7 @@
 		return ret;
 	} else if (val > INA3221_CHANNEL3) {
 		dev_err(dev, "invalid reg %d of %pOFn\n", val, child);
-		return ret;
+		return -EINVAL;
 	}
 
 	input = &ina->inputs[val];
--- linux-ein-5.4.0.orig/drivers/hwmon/it87.c
+++ linux-ein-5.4.0/drivers/hwmon/it87.c
@@ -486,6 +486,8 @@
 #define has_pwm_freq2(data)	((data)->features & FEAT_PWM_FREQ2)
 #define has_six_temp(data)	((data)->features & FEAT_SIX_TEMP)
 #define has_vin3_5v(data)	((data)->features & FEAT_VIN3_5V)
+#define has_scaling(data)	((data)->features & (FEAT_12MV_ADC | \
+						     FEAT_10_9MV_ADC))
 
 struct it87_sio_data {
 	int sioaddr;
@@ -3098,7 +3100,7 @@
 			 "Detected broken BIOS defaults, disabling PWM interface\n");
 
 	/* Starting with IT8721F, we handle scaling of internal voltages */
-	if (has_12mv_adc(data)) {
+	if (has_scaling(data)) {
 		if (sio_data->internal & BIT(0))
 			data->in_scaled |= BIT(3);	/* in3 is AVCC */
 		if (sio_data->internal & BIT(1))
--- linux-ein-5.4.0.orig/drivers/hwmon/jc42.c
+++ linux-ein-5.4.0/drivers/hwmon/jc42.c
@@ -506,7 +506,7 @@
 	}
 	data->config = config;
 
-	hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name,
+	hwmon_dev = devm_hwmon_device_register_with_info(dev, "jc42",
 							 data, &jc42_chip_info,
 							 NULL);
 	return PTR_ERR_OR_ZERO(hwmon_dev);
--- linux-ein-5.4.0.orig/drivers/hwmon/k10temp.c
+++ linux-ein-5.4.0/drivers/hwmon/k10temp.c
@@ -349,6 +349,7 @@
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) },
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F3) },
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) },
+	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F3) },
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F3) },
 	{ PCI_VDEVICE(HYGON, PCI_DEVICE_ID_AMD_17H_DF_F3) },
 	{}
--- linux-ein-5.4.0.orig/drivers/hwmon/lm80.c
+++ linux-ein-5.4.0/drivers/hwmon/lm80.c
@@ -597,7 +597,6 @@
 	struct device *dev = &client->dev;
 	struct device *hwmon_dev;
 	struct lm80_data *data;
-	int rv;
 
 	data = devm_kzalloc(dev, sizeof(struct lm80_data), GFP_KERNEL);
 	if (!data)
@@ -610,14 +609,8 @@
 	lm80_init_client(client);
 
 	/* A few vars need to be filled upon startup */
-	rv = lm80_read_value(client, LM80_REG_FAN_MIN(1));
-	if (rv < 0)
-		return rv;
-	data->fan[f_min][0] = rv;
-	rv = lm80_read_value(client, LM80_REG_FAN_MIN(2));
-	if (rv < 0)
-		return rv;
-	data->fan[f_min][1] = rv;
+	data->fan[f_min][0] = lm80_read_value(client, LM80_REG_FAN_MIN(1));
+	data->fan[f_min][1] = lm80_read_value(client, LM80_REG_FAN_MIN(2));
 
 	hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name,
 							   data, lm80_groups);
--- linux-ein-5.4.0.orig/drivers/hwmon/lm90.c
+++ linux-ein-5.4.0/drivers/hwmon/lm90.c
@@ -35,6 +35,15 @@
  * explicitly as max6659, or if its address is not 0x4c.
  * These chips lack the remote temperature offset feature.
  *
+ * This driver also supports the MAX6654 chip made by Maxim. This chip can be
+ * at 9 different addresses, similar to MAX6680/MAX6681. The MAX6654 is similar
+ * to MAX6657/MAX6658/MAX6659, but does not support critical temperature
+ * limits. Extended range is available by setting the configuration register
+ * accordingly, and is done during initialization. Extended precision is only
+ * available at conversion rates of 1 Hz and slower. Note that extended
+ * precision is not enabled by default, as this driver initializes all chips
+ * to 2 Hz by design.
+ *
  * This driver also supports the MAX6646, MAX6647, MAX6648, MAX6649 and
  * MAX6692 chips made by Maxim.  These are again similar to the LM86,
  * but they use unsigned temperature values and can report temperatures
@@ -61,10 +70,10 @@
  * This driver also supports the G781 from GMT. This device is compatible
  * with the ADM1032.
  *
- * This driver also supports TMP451 from Texas Instruments. This device is
- * supported in both compatibility and extended mode. It's mostly compatible
- * with ADT7461 except for local temperature low byte register and max
- * conversion rate.
+ * This driver also supports TMP451 and TMP461 from Texas Instruments.
+ * Those devices are supported in both compatibility and extended mode.
+ * They are mostly compatible with ADT7461 except for local temperature
+ * low byte register and max conversion rate.
  *
  * Since the LM90 was the first chipset supported by this driver, most
  * comments will refer to this chipset, but are actually general and
@@ -94,8 +103,8 @@
  * have address 0x4d.
  * MAX6647 has address 0x4e.
  * MAX6659 can have address 0x4c, 0x4d or 0x4e.
- * MAX6680 and MAX6681 can have address 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
- * 0x4c, 0x4d or 0x4e.
+ * MAX6654, MAX6680, and MAX6681 can have address 0x18, 0x19, 0x1a, 0x29,
+ * 0x2a, 0x2b, 0x4c, 0x4d or 0x4e.
  * SA56004 can have address 0x48 through 0x4F.
  */
 
@@ -104,7 +113,7 @@
 	0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
 
 enum chips { lm90, adm1032, lm99, lm86, max6657, max6659, adt7461, max6680,
-	max6646, w83l771, max6696, sa56004, g781, tmp451 };
+	max6646, w83l771, max6696, sa56004, g781, tmp451, tmp461, max6654 };
 
 /*
  * The LM90 registers
@@ -145,7 +154,7 @@
 #define LM90_REG_R_TCRIT_HYST		0x21
 #define LM90_REG_W_TCRIT_HYST		0x21
 
-/* MAX6646/6647/6649/6657/6658/6659/6695/6696 registers */
+/* MAX6646/6647/6649/6654/6657/6658/6659/6695/6696 registers */
 
 #define MAX6657_REG_R_LOCAL_TEMPL	0x11
 #define MAX6696_REG_R_STATUS2		0x12
@@ -160,8 +169,12 @@
 
 #define LM90_MAX_CONVRATE_MS	16000	/* Maximum conversion rate in ms */
 
-/* TMP451 registers */
+/* TMP451/TMP461 registers */
 #define TMP451_REG_R_LOCAL_TEMPL	0x15
+#define TMP451_REG_CONALERT		0x22
+
+#define TMP461_REG_CHEN			0x16
+#define TMP461_REG_DFC			0x24
 
 /*
  * Device flags
@@ -174,7 +187,10 @@
 #define LM90_HAVE_EMERGENCY_ALARM (1 << 5)/* emergency alarm		*/
 #define LM90_HAVE_TEMP3		(1 << 6) /* 3rd temperature sensor	*/
 #define LM90_HAVE_BROKEN_ALERT	(1 << 7) /* Broken alert		*/
-#define LM90_PAUSE_FOR_CONFIG	(1 << 8) /* Pause conversion for config	*/
+#define LM90_HAVE_EXTENDED_TEMP	(1 << 8) /* extended temperature support*/
+#define LM90_PAUSE_FOR_CONFIG	(1 << 9) /* Pause conversion for config	*/
+#define LM90_HAVE_CRIT		(1 << 10)/* Chip supports CRIT/OVERT register	*/
+#define LM90_HAVE_CRIT_ALRM_SWP	(1 << 11)/* critical alarm bits swapped	*/
 
 /* LM90 status */
 #define LM90_STATUS_LTHRM	(1 << 0) /* local THERM limit tripped */
@@ -184,6 +200,7 @@
 #define LM90_STATUS_RHIGH	(1 << 4) /* remote high temp limit tripped */
 #define LM90_STATUS_LLOW	(1 << 5) /* local low temp limit tripped */
 #define LM90_STATUS_LHIGH	(1 << 6) /* local high temp limit tripped */
+#define LM90_STATUS_BUSY	(1 << 7) /* conversion is ongoing */
 
 #define MAX6696_STATUS2_R2THRM	(1 << 1) /* remote2 THERM limit tripped */
 #define MAX6696_STATUS2_R2OPEN	(1 << 2) /* remote2 is an open circuit */
@@ -209,6 +226,7 @@
 	{ "max6646", max6646 },
 	{ "max6647", max6646 },
 	{ "max6649", max6646 },
+	{ "max6654", max6654 },
 	{ "max6657", max6657 },
 	{ "max6658", max6657 },
 	{ "max6659", max6659 },
@@ -220,6 +238,7 @@
 	{ "w83l771", w83l771 },
 	{ "sa56004", sa56004 },
 	{ "tmp451", tmp451 },
+	{ "tmp461", tmp461 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, lm90_id);
@@ -270,6 +289,10 @@
 		.data = (void *)max6646
 	},
 	{
+		.compatible = "dallas,max6654",
+		.data = (void *)max6654
+	},
+	{
 		.compatible = "dallas,max6657",
 		.data = (void *)max6657
 	},
@@ -313,6 +336,10 @@
 		.compatible = "ti,tmp451",
 		.data = (void *)tmp451
 	},
+	{
+		.compatible = "ti,tmp461",
+		.data = (void *)tmp461
+	},
 	{ },
 };
 MODULE_DEVICE_TABLE(of, lm90_of_match);
@@ -331,80 +358,99 @@
 static const struct lm90_params lm90_params[] = {
 	[adm1032] = {
 		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
-		  | LM90_HAVE_BROKEN_ALERT,
+		  | LM90_HAVE_BROKEN_ALERT | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 10,
 	},
 	[adt7461] = {
 		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
-		  | LM90_HAVE_BROKEN_ALERT,
+		  | LM90_HAVE_BROKEN_ALERT | LM90_HAVE_EXTENDED_TEMP
+		  | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 10,
 	},
 	[g781] = {
 		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
-		  | LM90_HAVE_BROKEN_ALERT,
+		  | LM90_HAVE_BROKEN_ALERT | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
-		.max_convrate = 8,
+		.max_convrate = 7,
 	},
 	[lm86] = {
-		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT,
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
+		  | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7b,
 		.max_convrate = 9,
 	},
 	[lm90] = {
-		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT,
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
+		  | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7b,
 		.max_convrate = 9,
 	},
 	[lm99] = {
-		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT,
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
+		  | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7b,
 		.max_convrate = 9,
 	},
 	[max6646] = {
+		.flags = LM90_HAVE_CRIT | LM90_HAVE_BROKEN_ALERT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 6,
 		.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
 	},
+	[max6654] = {
+		.flags = LM90_HAVE_BROKEN_ALERT,
+		.alert_alarms = 0x7c,
+		.max_convrate = 7,
+		.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
+	},
 	[max6657] = {
-		.flags = LM90_PAUSE_FOR_CONFIG,
+		.flags = LM90_PAUSE_FOR_CONFIG | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 8,
 		.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
 	},
 	[max6659] = {
-		.flags = LM90_HAVE_EMERGENCY,
+		.flags = LM90_HAVE_EMERGENCY | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 8,
 		.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
 	},
 	[max6680] = {
-		.flags = LM90_HAVE_OFFSET,
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_CRIT
+		  | LM90_HAVE_CRIT_ALRM_SWP | LM90_HAVE_BROKEN_ALERT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 7,
 	},
 	[max6696] = {
 		.flags = LM90_HAVE_EMERGENCY
-		  | LM90_HAVE_EMERGENCY_ALARM | LM90_HAVE_TEMP3,
+		  | LM90_HAVE_EMERGENCY_ALARM | LM90_HAVE_TEMP3 | LM90_HAVE_CRIT,
 		.alert_alarms = 0x1c7c,
 		.max_convrate = 6,
 		.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
 	},
 	[w83l771] = {
-		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT,
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 8,
 	},
 	[sa56004] = {
-		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT,
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7b,
 		.max_convrate = 9,
 		.reg_local_ext = SA56004_REG_R_LOCAL_TEMPL,
 	},
 	[tmp451] = {
 		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
-		  | LM90_HAVE_BROKEN_ALERT,
+		  | LM90_HAVE_BROKEN_ALERT | LM90_HAVE_EXTENDED_TEMP | LM90_HAVE_CRIT,
+		.alert_alarms = 0x7c,
+		.max_convrate = 9,
+		.reg_local_ext = TMP451_REG_R_LOCAL_TEMPL,
+	},
+	[tmp461] = {
+		.flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
+		  | LM90_HAVE_BROKEN_ALERT | LM90_HAVE_EXTENDED_TEMP | LM90_HAVE_CRIT,
 		.alert_alarms = 0x7c,
 		.max_convrate = 9,
 		.reg_local_ext = TMP451_REG_R_LOCAL_TEMPL,
@@ -632,20 +678,22 @@
 	struct i2c_client *client = data->client;
 	int val;
 
-	val = lm90_read_reg(client, LM90_REG_R_LOCAL_CRIT);
-	if (val < 0)
-		return val;
-	data->temp8[LOCAL_CRIT] = val;
+	if (data->flags & LM90_HAVE_CRIT) {
+		val = lm90_read_reg(client, LM90_REG_R_LOCAL_CRIT);
+		if (val < 0)
+			return val;
+		data->temp8[LOCAL_CRIT] = val;
 
-	val = lm90_read_reg(client, LM90_REG_R_REMOTE_CRIT);
-	if (val < 0)
-		return val;
-	data->temp8[REMOTE_CRIT] = val;
+		val = lm90_read_reg(client, LM90_REG_R_REMOTE_CRIT);
+		if (val < 0)
+			return val;
+		data->temp8[REMOTE_CRIT] = val;
 
-	val = lm90_read_reg(client, LM90_REG_R_TCRIT_HYST);
-	if (val < 0)
-		return val;
-	data->temp_hyst = val;
+		val = lm90_read_reg(client, LM90_REG_R_TCRIT_HYST);
+		if (val < 0)
+			return val;
+		data->temp_hyst = val;
+	}
 
 	val = lm90_read_reg(client, LM90_REG_R_REMOTE_LOWH);
 	if (val < 0)
@@ -773,7 +821,7 @@
 		val = lm90_read_reg(client, LM90_REG_R_STATUS);
 		if (val < 0)
 			return val;
-		data->alarms = val;	/* lower 8 bit of alarms */
+		data->alarms = val & ~LM90_STATUS_BUSY;
 
 		if (data->kind == max6696) {
 			val = lm90_select_remote_channel(data, 1);
@@ -979,7 +1027,7 @@
 	s16 temp11 = data->temp11[index];
 	int temp;
 
-	if (data->kind == adt7461 || data->kind == tmp451)
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP)
 		temp = temp_from_u16_adt7461(data, temp11);
 	else if (data->kind == max6646)
 		temp = temp_from_u16(temp11);
@@ -1013,7 +1061,7 @@
 	if (data->kind == lm99 && index <= 2)
 		val -= 16000;
 
-	if (data->kind == adt7461 || data->kind == tmp451)
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP)
 		data->temp11[index] = temp_to_u16_adt7461(data, val);
 	else if (data->kind == max6646)
 		data->temp11[index] = temp_to_u8(val) << 8;
@@ -1040,7 +1088,7 @@
 	s8 temp8 = data->temp8[index];
 	int temp;
 
-	if (data->kind == adt7461 || data->kind == tmp451)
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP)
 		temp = temp_from_u8_adt7461(data, temp8);
 	else if (data->kind == max6646)
 		temp = temp_from_u8(temp8);
@@ -1073,7 +1121,7 @@
 	if (data->kind == lm99 && index == 3)
 		val -= 16000;
 
-	if (data->kind == adt7461 || data->kind == tmp451)
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP)
 		data->temp8[index] = temp_to_u8_adt7461(data, val);
 	else if (data->kind == max6646)
 		data->temp8[index] = temp_to_u8(val);
@@ -1091,7 +1139,7 @@
 {
 	int temp;
 
-	if (data->kind == adt7461 || data->kind == tmp451)
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP)
 		temp = temp_from_u8_adt7461(data, data->temp8[index]);
 	else if (data->kind == max6646)
 		temp = temp_from_u8(data->temp8[index]);
@@ -1111,7 +1159,7 @@
 	int temp;
 	int err;
 
-	if (data->kind == adt7461 || data->kind == tmp451)
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP)
 		temp = temp_from_u8_adt7461(data, data->temp8[LOCAL_CRIT]);
 	else if (data->kind == max6646)
 		temp = temp_from_u8(data->temp8[LOCAL_CRIT]);
@@ -1147,6 +1195,7 @@
 static const u8 lm90_min_alarm_bits[3] = { 5, 3, 11 };
 static const u8 lm90_max_alarm_bits[3] = { 6, 4, 12 };
 static const u8 lm90_crit_alarm_bits[3] = { 0, 1, 9 };
+static const u8 lm90_crit_alarm_bits_swapped[3] = { 1, 0, 9 };
 static const u8 lm90_emergency_alarm_bits[3] = { 15, 13, 14 };
 static const u8 lm90_fault_bits[3] = { 0, 2, 10 };
 
@@ -1172,7 +1221,10 @@
 		*val = (data->alarms >> lm90_max_alarm_bits[channel]) & 1;
 		break;
 	case hwmon_temp_crit_alarm:
-		*val = (data->alarms >> lm90_crit_alarm_bits[channel]) & 1;
+		if (data->flags & LM90_HAVE_CRIT_ALRM_SWP)
+			*val = (data->alarms >> lm90_crit_alarm_bits_swapped[channel]) & 1;
+		else
+			*val = (data->alarms >> lm90_crit_alarm_bits[channel]) & 1;
 		break;
 	case hwmon_temp_emergency_alarm:
 		*val = (data->alarms >> lm90_emergency_alarm_bits[channel]) & 1;
@@ -1420,12 +1472,11 @@
 	if (man_id < 0 || chip_id < 0 || config1 < 0 || convrate < 0)
 		return -ENODEV;
 
-	if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) {
+	if (man_id == 0x01 || man_id == 0x5C || man_id == 0xA1) {
 		config2 = i2c_smbus_read_byte_data(client, LM90_REG_R_CONFIG2);
 		if (config2 < 0)
 			return -ENODEV;
-	} else
-		config2 = 0;		/* Make compiler happy */
+	}
 
 	if ((address == 0x4C || address == 0x4D)
 	 && man_id == 0x01) { /* National Semiconductor */
@@ -1557,6 +1608,16 @@
 		 && (config1 & 0x3f) == 0x00
 		 && convrate <= 0x07) {
 			name = "max6646";
+		} else
+		/*
+		 * The chip_id of the MAX6654 holds the revision of the chip.
+		 * The lowest 3 bits of the config1 register are unused and
+		 * should return zero when read.
+		 */
+		if (chip_id == 0x08
+		 && (config1 & 0x07) == 0x00
+		 && convrate <= 0x07) {
+			name = "max6654";
 		}
 	} else
 	if (address == 0x4C
@@ -1589,18 +1650,26 @@
 		 && convrate <= 0x08)
 			name = "g781";
 	} else
-	if (address == 0x4C
-	 && man_id == 0x55) { /* Texas Instruments */
-		int local_ext;
+	if (man_id == 0x55 && chip_id == 0x00 &&
+	    (config1 & 0x1B) == 0x00 && convrate <= 0x09) {
+		int local_ext, conalert, chen, dfc;
 
 		local_ext = i2c_smbus_read_byte_data(client,
 						     TMP451_REG_R_LOCAL_TEMPL);
-
-		if (chip_id == 0x00 /* TMP451 */
-		 && (config1 & 0x1B) == 0x00
-		 && convrate <= 0x09
-		 && (local_ext & 0x0F) == 0x00)
-			name = "tmp451";
+		conalert = i2c_smbus_read_byte_data(client,
+						    TMP451_REG_CONALERT);
+		chen = i2c_smbus_read_byte_data(client, TMP461_REG_CHEN);
+		dfc = i2c_smbus_read_byte_data(client, TMP461_REG_DFC);
+
+		if ((local_ext & 0x0F) == 0x00 &&
+		    (conalert & 0xf1) == 0x01 &&
+		    (chen & 0xfc) == 0x00 &&
+		    (dfc & 0xfc) == 0x00) {
+			if (address == 0x4c && !(chen & 0x03))
+				name = "tmp451";
+			else if (address >= 0x48 && address <= 0x4f)
+				name = "tmp461";
+		}
 	}
 
 	if (!name) { /* identification failed */
@@ -1647,7 +1716,7 @@
 	lm90_set_convrate(client, data, 500); /* 500ms; 2Hz conversion rate */
 
 	/* Check Temperature Range Select */
-	if (data->kind == adt7461 || data->kind == tmp451) {
+	if (data->flags & LM90_HAVE_EXTENDED_TEMP) {
 		if (config & 0x04)
 			data->flags |= LM90_FLAG_ADT7461_EXT;
 	}
@@ -1661,6 +1730,15 @@
 		config |= 0x18;
 
 	/*
+	 * Put MAX6654 into extended range (0x20, extend minimum range from
+	 * 0 degrees to -64 degrees). Note that extended resolution is not
+	 * possible on the MAX6654 unless conversion rate is set to 1 Hz or
+	 * slower, which is intentionally not done by default.
+	 */
+	if (data->kind == max6654)
+		config |= 0x20;
+
+	/*
 	 * Select external channel 0 for max6695/96
 	 */
 	if (data->kind == max6696)
@@ -1806,11 +1884,14 @@
 	info->config = data->channel_config;
 
 	data->channel_config[0] = HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MAX |
-		HWMON_T_CRIT | HWMON_T_CRIT_HYST | HWMON_T_MIN_ALARM |
-		HWMON_T_MAX_ALARM | HWMON_T_CRIT_ALARM;
+		HWMON_T_MIN_ALARM | HWMON_T_MAX_ALARM;
 	data->channel_config[1] = HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MAX |
-		HWMON_T_CRIT | HWMON_T_CRIT_HYST | HWMON_T_MIN_ALARM |
-		HWMON_T_MAX_ALARM | HWMON_T_CRIT_ALARM | HWMON_T_FAULT;
+		HWMON_T_MIN_ALARM | HWMON_T_MAX_ALARM | HWMON_T_FAULT;
+
+	if (data->flags & LM90_HAVE_CRIT) {
+		data->channel_config[0] |= HWMON_T_CRIT | HWMON_T_CRIT_ALARM | HWMON_T_CRIT_HYST;
+		data->channel_config[1] |= HWMON_T_CRIT | HWMON_T_CRIT_ALARM | HWMON_T_CRIT_HYST;
+	}
 
 	if (data->flags & LM90_HAVE_OFFSET)
 		data->channel_config[1] |= HWMON_T_OFFSET;
--- linux-ein-5.4.0.orig/drivers/hwmon/ltc2945.c
+++ linux-ein-5.4.0/drivers/hwmon/ltc2945.c
@@ -248,6 +248,8 @@
 
 	/* convert to register value, then clamp and write result */
 	regval = ltc2945_val_to_reg(dev, reg, val);
+	if (regval < 0)
+		return regval;
 	if (is_power_reg(reg)) {
 		regval = clamp_val(regval, 0, 0xffffff);
 		regbuf[0] = regval >> 16;
--- linux-ein-5.4.0.orig/drivers/hwmon/max31722.c
+++ linux-ein-5.4.0/drivers/hwmon/max31722.c
@@ -6,7 +6,6 @@
  * Copyright (c) 2016, Intel Corporation.
  */
 
-#include <linux/acpi.h>
 #include <linux/hwmon.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/kernel.h>
@@ -133,20 +132,12 @@
 	{"max31723", 0},
 	{}
 };
-
-static const struct acpi_device_id __maybe_unused max31722_acpi_id[] = {
-	{"MAX31722", 0},
-	{"MAX31723", 0},
-	{}
-};
-
 MODULE_DEVICE_TABLE(spi, max31722_spi_id);
 
 static struct spi_driver max31722_driver = {
 	.driver = {
 		.name = "max31722",
 		.pm = &max31722_pm_ops,
-		.acpi_match_table = ACPI_PTR(max31722_acpi_id),
 	},
 	.probe =            max31722_probe,
 	.remove =           max31722_remove,
--- linux-ein-5.4.0.orig/drivers/hwmon/max31790.c
+++ linux-ein-5.4.0/drivers/hwmon/max31790.c
@@ -27,6 +27,7 @@
 
 /* Fan Config register bits */
 #define MAX31790_FAN_CFG_RPM_MODE	0x80
+#define MAX31790_FAN_CFG_CTRL_MON	0x10
 #define MAX31790_FAN_CFG_TACH_INPUT_EN	0x08
 #define MAX31790_FAN_CFG_TACH_INPUT	0x01
 
@@ -104,7 +105,7 @@
 				data->tach[NR_CHANNEL + i] = rv;
 			} else {
 				rv = i2c_smbus_read_word_swapped(client,
-						MAX31790_REG_PWMOUT(i));
+						MAX31790_REG_PWM_DUTY_CYCLE(i));
 				if (rv < 0)
 					goto abort;
 				data->pwm[i] = rv;
@@ -170,7 +171,7 @@
 
 	switch (attr) {
 	case hwmon_fan_input:
-		sr = get_tach_period(data->fan_dynamics[channel]);
+		sr = get_tach_period(data->fan_dynamics[channel % NR_CHANNEL]);
 		rpm = RPM_FROM_REG(data->tach[channel], sr);
 		*val = rpm;
 		return 0;
@@ -271,12 +272,12 @@
 		*val = data->pwm[channel] >> 8;
 		return 0;
 	case hwmon_pwm_enable:
-		if (fan_config & MAX31790_FAN_CFG_RPM_MODE)
+		if (fan_config & MAX31790_FAN_CFG_CTRL_MON)
+			*val = 0;
+		else if (fan_config & MAX31790_FAN_CFG_RPM_MODE)
 			*val = 2;
-		else if (fan_config & MAX31790_FAN_CFG_TACH_INPUT_EN)
-			*val = 1;
 		else
-			*val = 0;
+			*val = 1;
 		return 0;
 	default:
 		return -EOPNOTSUPP;
@@ -299,31 +300,41 @@
 			err = -EINVAL;
 			break;
 		}
-		data->pwm[channel] = val << 8;
+		data->valid = false;
 		err = i2c_smbus_write_word_swapped(client,
 						   MAX31790_REG_PWMOUT(channel),
-						   data->pwm[channel]);
+						   val << 8);
 		break;
 	case hwmon_pwm_enable:
 		fan_config = data->fan_config[channel];
 		if (val == 0) {
-			fan_config &= ~(MAX31790_FAN_CFG_TACH_INPUT_EN |
-					MAX31790_FAN_CFG_RPM_MODE);
+			fan_config |= MAX31790_FAN_CFG_CTRL_MON;
+			/*
+			 * Disable RPM mode; otherwise disabling fan speed
+			 * monitoring is not possible.
+			 */
+			fan_config &= ~MAX31790_FAN_CFG_RPM_MODE;
 		} else if (val == 1) {
-			fan_config = (fan_config |
-				      MAX31790_FAN_CFG_TACH_INPUT_EN) &
-				     ~MAX31790_FAN_CFG_RPM_MODE;
+			fan_config &= ~(MAX31790_FAN_CFG_CTRL_MON | MAX31790_FAN_CFG_RPM_MODE);
 		} else if (val == 2) {
-			fan_config |= MAX31790_FAN_CFG_TACH_INPUT_EN |
-				      MAX31790_FAN_CFG_RPM_MODE;
+			fan_config &= ~MAX31790_FAN_CFG_CTRL_MON;
+			/*
+			 * The chip sets MAX31790_FAN_CFG_TACH_INPUT_EN on its
+			 * own if MAX31790_FAN_CFG_RPM_MODE is set.
+			 * Do it here as well to reflect the actual register
+			 * value in the cache.
+			 */
+			fan_config |= (MAX31790_FAN_CFG_RPM_MODE | MAX31790_FAN_CFG_TACH_INPUT_EN);
 		} else {
 			err = -EINVAL;
 			break;
 		}
-		data->fan_config[channel] = fan_config;
-		err = i2c_smbus_write_byte_data(client,
-					MAX31790_REG_FAN_CONFIG(channel),
-					fan_config);
+		if (fan_config != data->fan_config[channel]) {
+			err = i2c_smbus_write_byte_data(client, MAX31790_REG_FAN_CONFIG(channel),
+							fan_config);
+			if (!err)
+				data->fan_config[channel] = fan_config;
+		}
 		break;
 	default:
 		err = -EOPNOTSUPP;
--- linux-ein-5.4.0.orig/drivers/hwmon/max6697.c
+++ linux-ein-5.4.0/drivers/hwmon/max6697.c
@@ -38,8 +38,9 @@
  * Map device tree / platform data register bit map to chip bit map.
  * Applies to alert register and over-temperature register.
  */
-#define MAX6697_MAP_BITS(reg)	((((reg) & 0x7e) >> 1) | \
+#define MAX6697_ALERT_MAP_BITS(reg)	((((reg) & 0x7e) >> 1) | \
 				 (((reg) & 0x01) << 6) | ((reg) & 0x80))
+#define MAX6697_OVERT_MAP_BITS(reg) (((reg) >> 1) | (((reg) & 0x01) << 7))
 
 #define MAX6697_REG_STAT(n)		(0x44 + (n))
 
@@ -562,12 +563,12 @@
 		return ret;
 
 	ret = i2c_smbus_write_byte_data(client, MAX6697_REG_ALERT_MASK,
-					MAX6697_MAP_BITS(pdata->alert_mask));
+				MAX6697_ALERT_MAP_BITS(pdata->alert_mask));
 	if (ret < 0)
 		return ret;
 
 	ret = i2c_smbus_write_byte_data(client, MAX6697_REG_OVERT_MASK,
-				MAX6697_MAP_BITS(pdata->over_temperature_mask));
+			MAX6697_OVERT_MAP_BITS(pdata->over_temperature_mask));
 	if (ret < 0)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/hwmon/mlxreg-fan.c
+++ linux-ein-5.4.0/drivers/hwmon/mlxreg-fan.c
@@ -127,6 +127,12 @@
 			if (err)
 				return err;
 
+			if (MLXREG_FAN_GET_FAULT(regval, tacho->mask)) {
+				/* FAN is broken - return zero for FAN speed. */
+				*val = 0;
+				return 0;
+			}
+
 			*val = MLXREG_FAN_GET_RPM(regval, fan->divider,
 						  fan->samples);
 			break;
@@ -291,8 +297,8 @@
 {
 	struct mlxreg_fan *fan = cdev->devdata;
 	unsigned long cur_state;
+	int i, config = 0;
 	u32 regval;
-	int i;
 	int err;
 
 	/*
@@ -305,6 +311,12 @@
 	 * overwritten.
 	 */
 	if (state >= MLXREG_FAN_SPEED_MIN && state <= MLXREG_FAN_SPEED_MAX) {
+		/*
+		 * This is configuration change, which is only supported through sysfs.
+		 * For configuration non-zero value is to be returned to avoid thermal
+		 * statistics update.
+		 */
+		config = 1;
 		state -= MLXREG_FAN_MAX_STATE;
 		for (i = 0; i < state; i++)
 			fan->cooling_levels[i] = state;
@@ -319,7 +331,7 @@
 
 		cur_state = MLXREG_FAN_PWM_DUTY2STATE(regval);
 		if (state < cur_state)
-			return 0;
+			return config;
 
 		state = cur_state;
 	}
@@ -335,7 +347,7 @@
 		dev_err(fan->dev, "Failed to write PWM duty\n");
 		return err;
 	}
-	return 0;
+	return config;
 }
 
 static const struct thermal_cooling_device_ops mlxreg_fan_cooling_ops = {
--- linux-ein-5.4.0.orig/drivers/hwmon/nct6775.c
+++ linux-ein-5.4.0/drivers/hwmon/nct6775.c
@@ -786,13 +786,13 @@
 	"Agent1 Dimm1",
 	"BYTE_TEMP0",
 	"BYTE_TEMP1",
-	"",
-	"",
+	"PECI Agent 0 Calibration",	/* undocumented */
+	"PECI Agent 1 Calibration",	/* undocumented */
 	"",
 	"Virtual_TEMP"
 };
 
-#define NCT6798_TEMP_MASK	0x8fff0ffe
+#define NCT6798_TEMP_MASK	0xbfff0ffe
 #define NCT6798_VIRT_TEMP_MASK	0x80000c00
 
 /* NCT6102D/NCT6106D specific data */
--- linux-ein-5.4.0.orig/drivers/hwmon/nct7802.c
+++ linux-ein-5.4.0/drivers/hwmon/nct7802.c
@@ -23,8 +23,8 @@
 static const u8 REG_VOLTAGE[5] = { 0x09, 0x0a, 0x0c, 0x0d, 0x0e };
 
 static const u8 REG_VOLTAGE_LIMIT_LSB[2][5] = {
-	{ 0x40, 0x00, 0x42, 0x44, 0x46 },
-	{ 0x3f, 0x00, 0x41, 0x43, 0x45 },
+	{ 0x46, 0x00, 0x40, 0x42, 0x44 },
+	{ 0x45, 0x00, 0x3f, 0x41, 0x43 },
 };
 
 static const u8 REG_VOLTAGE_LIMIT_MSB[5] = { 0x48, 0x00, 0x47, 0x47, 0x48 };
@@ -58,6 +58,8 @@
 struct nct7802_data {
 	struct regmap *regmap;
 	struct mutex access_lock; /* for multi-byte read and write operations */
+	u8 in_status;
+	struct mutex in_alarm_lock;
 };
 
 static ssize_t temp_type_show(struct device *dev,
@@ -368,6 +370,66 @@
 	return err ? : count;
 }
 
+static ssize_t in_alarm_show(struct device *dev, struct device_attribute *attr,
+			     char *buf)
+{
+	struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr);
+	struct nct7802_data *data = dev_get_drvdata(dev);
+	int volt, min, max, ret;
+	unsigned int val;
+
+	mutex_lock(&data->in_alarm_lock);
+
+	/*
+	 * The SMI Voltage status register is the only register giving a status
+	 * for voltages. A bit is set for each input crossing a threshold, in
+	 * both direction, but the "inside" or "outside" limits info is not
+	 * available. Also this register is cleared on read.
+	 * Note: this is not explicitly spelled out in the datasheet, but
+	 * from experiment.
+	 * To deal with this we use a status cache with one validity bit and
+	 * one status bit for each input. Validity is cleared at startup and
+	 * each time the register reports a change, and the status is processed
+	 * by software based on current input value and limits.
+	 */
+	ret = regmap_read(data->regmap, 0x1e, &val); /* SMI Voltage status */
+	if (ret < 0)
+		goto abort;
+
+	/* invalidate cached status for all inputs crossing a threshold */
+	data->in_status &= ~((val & 0x0f) << 4);
+
+	/* if cached status for requested input is invalid, update it */
+	if (!(data->in_status & (0x10 << sattr->index))) {
+		ret = nct7802_read_voltage(data, sattr->nr, 0);
+		if (ret < 0)
+			goto abort;
+		volt = ret;
+
+		ret = nct7802_read_voltage(data, sattr->nr, 1);
+		if (ret < 0)
+			goto abort;
+		min = ret;
+
+		ret = nct7802_read_voltage(data, sattr->nr, 2);
+		if (ret < 0)
+			goto abort;
+		max = ret;
+
+		if (volt < min || volt > max)
+			data->in_status |= (1 << sattr->index);
+		else
+			data->in_status &= ~(1 << sattr->index);
+
+		data->in_status |= 0x10 << sattr->index;
+	}
+
+	ret = sprintf(buf, "%u\n", !!(data->in_status & (1 << sattr->index)));
+abort:
+	mutex_unlock(&data->in_alarm_lock);
+	return ret;
+}
+
 static ssize_t temp_show(struct device *dev, struct device_attribute *attr,
 			 char *buf)
 {
@@ -646,7 +708,7 @@
 	if (index >= 38 && index < 46 && !(reg & 0x01))		/* PECI 0 */
 		return 0;
 
-	if (index >= 0x46 && (!(reg & 0x02)))			/* PECI 1 */
+	if (index >= 46 && !(reg & 0x02))			/* PECI 1 */
 		return 0;
 
 	return attr->mode;
@@ -660,7 +722,7 @@
 static SENSOR_DEVICE_ATTR_2_RO(in0_input, in, 0, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in0_min, in, 0, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in0_max, in, 0, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in0_alarm, alarm, 0x1e, 3);
+static SENSOR_DEVICE_ATTR_2_RO(in0_alarm, in_alarm, 0, 3);
 static SENSOR_DEVICE_ATTR_2_RW(in0_beep, beep, 0x5a, 3);
 
 static SENSOR_DEVICE_ATTR_2_RO(in1_input, in, 1, 0);
@@ -668,19 +730,19 @@
 static SENSOR_DEVICE_ATTR_2_RO(in2_input, in, 2, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in2_min, in, 2, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in2_max, in, 2, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in2_alarm, alarm, 0x1e, 0);
+static SENSOR_DEVICE_ATTR_2_RO(in2_alarm, in_alarm, 2, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in2_beep, beep, 0x5a, 0);
 
 static SENSOR_DEVICE_ATTR_2_RO(in3_input, in, 3, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in3_min, in, 3, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in3_max, in, 3, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in3_alarm, alarm, 0x1e, 1);
+static SENSOR_DEVICE_ATTR_2_RO(in3_alarm, in_alarm, 3, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in3_beep, beep, 0x5a, 1);
 
 static SENSOR_DEVICE_ATTR_2_RO(in4_input, in, 4, 0);
 static SENSOR_DEVICE_ATTR_2_RW(in4_min, in, 4, 1);
 static SENSOR_DEVICE_ATTR_2_RW(in4_max, in, 4, 2);
-static SENSOR_DEVICE_ATTR_2_RO(in4_alarm, alarm, 0x1e, 2);
+static SENSOR_DEVICE_ATTR_2_RO(in4_alarm, in_alarm, 4, 2);
 static SENSOR_DEVICE_ATTR_2_RW(in4_beep, beep, 0x5a, 2);
 
 static struct attribute *nct7802_in_attrs[] = {
@@ -1011,6 +1073,7 @@
 		return PTR_ERR(data->regmap);
 
 	mutex_init(&data->access_lock);
+	mutex_init(&data->in_alarm_lock);
 
 	ret = nct7802_init_chip(data);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/hwmon/nct7904.c
+++ linux-ein-5.4.0/drivers/hwmon/nct7904.c
@@ -197,7 +197,7 @@
 		if (ret < 0)
 			return ret;
 		cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f);
-		if (cnt == 0x1fff)
+		if (cnt == 0 || cnt == 0x1fff)
 			rpm = 0;
 		else
 			rpm = 1350000 / cnt;
@@ -209,7 +209,7 @@
 		if (ret < 0)
 			return ret;
 		cnt = ((ret & 0xff00) >> 3) | (ret & 0x1f);
-		if (cnt == 0x1fff)
+		if (cnt == 0 || cnt == 0x1fff)
 			rpm = 0;
 		else
 			rpm = 1350000 / cnt;
@@ -356,6 +356,7 @@
 	struct nct7904_data *data = dev_get_drvdata(dev);
 	int ret, temp;
 	unsigned int reg1, reg2, reg3;
+	s8 temps;
 
 	switch (attr) {
 	case hwmon_temp_input:
@@ -461,7 +462,8 @@
 
 	if (ret < 0)
 		return ret;
-	*val = ret * 1000;
+	temps = ret;
+	*val = temps * 1000;
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/hwmon/occ/common.c
+++ linux-ein-5.4.0/drivers/hwmon/occ/common.c
@@ -209,9 +209,9 @@
 		return rc;
 
 	/* limit the maximum rate of polling the OCC */
-	if (time_after(jiffies, occ->last_update + OCC_UPDATE_FREQUENCY)) {
+	if (time_after(jiffies, occ->next_update)) {
 		rc = occ_poll(occ);
-		occ->last_update = jiffies;
+		occ->next_update = jiffies + OCC_UPDATE_FREQUENCY;
 	} else {
 		rc = occ->last_error;
 	}
@@ -1089,6 +1089,7 @@
 		return rc;
 	}
 
+	occ->next_update = jiffies + OCC_UPDATE_FREQUENCY;
 	occ_parse_poll_response(occ);
 
 	rc = occ_setup_sensor_attrs(occ);
--- linux-ein-5.4.0.orig/drivers/hwmon/occ/common.h
+++ linux-ein-5.4.0/drivers/hwmon/occ/common.h
@@ -99,7 +99,7 @@
 	u8 poll_cmd_data;		/* to perform OCC poll command */
 	int (*send_cmd)(struct occ *occ, u8 *cmd);
 
-	unsigned long last_update;
+	unsigned long next_update;
 	struct mutex lock;		/* lock OCC access */
 
 	struct device *hwmon;
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/adm1275.c
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/adm1275.c
@@ -454,6 +454,7 @@
 static int adm1275_probe(struct i2c_client *client,
 			 const struct i2c_device_id *id)
 {
+	s32 (*config_read_fn)(const struct i2c_client *client, u8 reg);
 	u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1];
 	int config, device_config;
 	int ret;
@@ -499,11 +500,16 @@
 			   "Device mismatch: Configured %s, detected %s\n",
 			   id->name, mid->name);
 
-	config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
+	if (mid->driver_data == adm1272 || mid->driver_data == adm1278 ||
+	    mid->driver_data == adm1293 || mid->driver_data == adm1294)
+		config_read_fn = i2c_smbus_read_word_data;
+	else
+		config_read_fn = i2c_smbus_read_byte_data;
+	config = config_read_fn(client, ADM1275_PMON_CONFIG);
 	if (config < 0)
 		return config;
 
-	device_config = i2c_smbus_read_byte_data(client, ADM1275_DEVICE_CONFIG);
+	device_config = config_read_fn(client, ADM1275_DEVICE_CONFIG);
 	if (device_config < 0)
 		return device_config;
 
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/ibm-cffps.c
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/ibm-cffps.c
@@ -39,9 +39,13 @@
 #define CFFPS_MFR_VAUX_FAULT			BIT(6)
 #define CFFPS_MFR_CURRENT_SHARE_WARNING		BIT(7)
 
+/*
+ * LED off state actually relinquishes LED control to PSU firmware, so it can
+ * turn on the LED for faults.
+ */
+#define CFFPS_LED_OFF				0
 #define CFFPS_LED_BLINK				BIT(0)
 #define CFFPS_LED_ON				BIT(1)
-#define CFFPS_LED_OFF				BIT(2)
 #define CFFPS_BLINK_RATE_MS			250
 
 enum {
@@ -292,28 +296,38 @@
 	return rc;
 }
 
-static void ibm_cffps_led_brightness_set(struct led_classdev *led_cdev,
-					 enum led_brightness brightness)
+static int ibm_cffps_led_brightness_set(struct led_classdev *led_cdev,
+					enum led_brightness brightness)
 {
 	int rc;
+	u8 next_led_state;
 	struct ibm_cffps *psu = container_of(led_cdev, struct ibm_cffps, led);
 
 	if (brightness == LED_OFF) {
-		psu->led_state = CFFPS_LED_OFF;
+		next_led_state = CFFPS_LED_OFF;
 	} else {
 		brightness = LED_FULL;
+
 		if (psu->led_state != CFFPS_LED_BLINK)
-			psu->led_state = CFFPS_LED_ON;
+			next_led_state = CFFPS_LED_ON;
+		else
+			next_led_state = CFFPS_LED_BLINK;
 	}
 
+	dev_dbg(&psu->client->dev, "LED brightness set: %d. Command: %d.\n",
+		brightness, next_led_state);
+
 	pmbus_set_page(psu->client, 0);
 
 	rc = i2c_smbus_write_byte_data(psu->client, CFFPS_SYS_CONFIG_CMD,
-				       psu->led_state);
+				       next_led_state);
 	if (rc < 0)
-		return;
+		return rc;
 
+	psu->led_state = next_led_state;
 	led_cdev->brightness = brightness;
+
+	return 0;
 }
 
 static int ibm_cffps_led_blink_set(struct led_classdev *led_cdev,
@@ -323,10 +337,7 @@
 	int rc;
 	struct ibm_cffps *psu = container_of(led_cdev, struct ibm_cffps, led);
 
-	psu->led_state = CFFPS_LED_BLINK;
-
-	if (led_cdev->brightness == LED_OFF)
-		return 0;
+	dev_dbg(&psu->client->dev, "LED blink set.\n");
 
 	pmbus_set_page(psu->client, 0);
 
@@ -335,6 +346,8 @@
 	if (rc < 0)
 		return rc;
 
+	psu->led_state = CFFPS_LED_BLINK;
+	led_cdev->brightness = LED_FULL;
 	*delay_on = CFFPS_BLINK_RATE_MS;
 	*delay_off = CFFPS_BLINK_RATE_MS;
 
@@ -351,7 +364,7 @@
 		 client->addr);
 	psu->led.name = psu->led_name;
 	psu->led.max_brightness = LED_FULL;
-	psu->led.brightness_set = ibm_cffps_led_brightness_set;
+	psu->led.brightness_set_blocking = ibm_cffps_led_brightness_set;
 	psu->led.blink_set = ibm_cffps_led_blink_set;
 
 	rc = devm_led_classdev_register(dev, &psu->led);
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/lm25066.c
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/lm25066.c
@@ -51,26 +51,31 @@
 #define PSC_CURRENT_IN_L	(PSC_NUM_CLASSES)
 #define PSC_POWER_L		(PSC_NUM_CLASSES + 1)
 
-static struct __coeff lm25066_coeff[6][PSC_NUM_CLASSES + 2] = {
+static struct __coeff lm25066_coeff[][PSC_NUM_CLASSES + 2] = {
 	[lm25056] = {
 		[PSC_VOLTAGE_IN] = {
 			.m = 16296,
+			.b = 1343,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN] = {
 			.m = 13797,
+			.b = -1833,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN_L] = {
 			.m = 6726,
+			.b = -537,
 			.R = -2,
 		},
 		[PSC_POWER] = {
 			.m = 5501,
+			.b = -2908,
 			.R = -3,
 		},
 		[PSC_POWER_L] = {
 			.m = 26882,
+			.b = -5646,
 			.R = -4,
 		},
 		[PSC_TEMPERATURE] = {
@@ -82,26 +87,32 @@
 	[lm25066] = {
 		[PSC_VOLTAGE_IN] = {
 			.m = 22070,
+			.b = -1800,
 			.R = -2,
 		},
 		[PSC_VOLTAGE_OUT] = {
 			.m = 22070,
+			.b = -1800,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN] = {
 			.m = 13661,
+			.b = -5200,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN_L] = {
 			.m = 6852,
+			.b = -3100,
 			.R = -2,
 		},
 		[PSC_POWER] = {
 			.m = 736,
+			.b = -3300,
 			.R = -2,
 		},
 		[PSC_POWER_L] = {
 			.m = 369,
+			.b = -1900,
 			.R = -2,
 		},
 		[PSC_TEMPERATURE] = {
@@ -111,26 +122,32 @@
 	[lm5064] = {
 		[PSC_VOLTAGE_IN] = {
 			.m = 4611,
+			.b = -642,
 			.R = -2,
 		},
 		[PSC_VOLTAGE_OUT] = {
 			.m = 4621,
+			.b = 423,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN] = {
 			.m = 10742,
+			.b = 1552,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN_L] = {
 			.m = 5456,
+			.b = 2118,
 			.R = -2,
 		},
 		[PSC_POWER] = {
 			.m = 1204,
+			.b = 8524,
 			.R = -3,
 		},
 		[PSC_POWER_L] = {
 			.m = 612,
+			.b = 11202,
 			.R = -3,
 		},
 		[PSC_TEMPERATURE] = {
@@ -140,26 +157,32 @@
 	[lm5066] = {
 		[PSC_VOLTAGE_IN] = {
 			.m = 4587,
+			.b = -1200,
 			.R = -2,
 		},
 		[PSC_VOLTAGE_OUT] = {
 			.m = 4587,
+			.b = -2400,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN] = {
 			.m = 10753,
+			.b = -1200,
 			.R = -2,
 		},
 		[PSC_CURRENT_IN_L] = {
 			.m = 5405,
+			.b = -600,
 			.R = -2,
 		},
 		[PSC_POWER] = {
 			.m = 1204,
+			.b = -6000,
 			.R = -3,
 		},
 		[PSC_POWER_L] = {
 			.m = 605,
+			.b = -8000,
 			.R = -3,
 		},
 		[PSC_TEMPERATURE] = {
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/ltc2978.c
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/ltc2978.c
@@ -82,8 +82,8 @@
 
 #define LTC_POLL_TIMEOUT		100	/* in milli-seconds */
 
-#define LTC_NOT_BUSY			BIT(5)
-#define LTC_NOT_PENDING			BIT(4)
+#define LTC_NOT_BUSY			BIT(6)
+#define LTC_NOT_PENDING			BIT(5)
 
 /*
  * LTC2978 clears peak data whenever the CLEAR_FAULTS command is executed, which
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/max34440.c
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/max34440.c
@@ -387,7 +387,6 @@
 		.func[18] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[19] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[20] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
-		.read_byte_data = max34440_read_byte_data,
 		.read_word_data = max34440_read_word_data,
 		.write_word_data = max34440_write_word_data,
 	},
@@ -418,7 +417,6 @@
 		.func[15] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[16] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[17] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
-		.read_byte_data = max34440_read_byte_data,
 		.read_word_data = max34440_read_word_data,
 		.write_word_data = max34440_write_word_data,
 	},
@@ -454,7 +452,6 @@
 		.func[19] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[20] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
 		.func[21] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,
-		.read_byte_data = max34440_read_byte_data,
 		.read_word_data = max34440_read_word_data,
 		.write_word_data = max34440_write_word_data,
 	},
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/pmbus.h
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/pmbus.h
@@ -292,6 +292,7 @@
 /*
  * STATUS_VOUT, STATUS_INPUT
  */
+#define PB_VOLTAGE_VIN_OFF		BIT(3)
 #define PB_VOLTAGE_UV_FAULT		BIT(4)
 #define PB_VOLTAGE_UV_WARNING		BIT(5)
 #define PB_VOLTAGE_OV_WARNING		BIT(6)
--- linux-ein-5.4.0.orig/drivers/hwmon/pmbus/pmbus_core.c
+++ linux-ein-5.4.0/drivers/hwmon/pmbus/pmbus_core.c
@@ -1324,7 +1324,7 @@
 		.reg = PMBUS_VIN_UV_FAULT_LIMIT,
 		.attr = "lcrit",
 		.alarm = "lcrit_alarm",
-		.sbit = PB_VOLTAGE_UV_FAULT,
+		.sbit = PB_VOLTAGE_UV_FAULT | PB_VOLTAGE_VIN_OFF,
 	}, {
 		.reg = PMBUS_VIN_OV_WARN_LIMIT,
 		.attr = "max",
@@ -2174,10 +2174,14 @@
 {
 	struct device *dev = rdev_get_dev(rdev);
 	struct i2c_client *client = to_i2c_client(dev->parent);
+	struct pmbus_data *data = i2c_get_clientdata(client);
 	u8 page = rdev_get_id(rdev);
 	int ret;
 
+	mutex_lock(&data->update_lock);
 	ret = pmbus_read_byte_data(client, page, PMBUS_OPERATION);
+	mutex_unlock(&data->update_lock);
+
 	if (ret < 0)
 		return ret;
 
@@ -2188,11 +2192,17 @@
 {
 	struct device *dev = rdev_get_dev(rdev);
 	struct i2c_client *client = to_i2c_client(dev->parent);
+	struct pmbus_data *data = i2c_get_clientdata(client);
 	u8 page = rdev_get_id(rdev);
+	int ret;
 
-	return pmbus_update_byte_data(client, page, PMBUS_OPERATION,
-				      PB_OPERATION_CONTROL_ON,
-				      enable ? PB_OPERATION_CONTROL_ON : 0);
+	mutex_lock(&data->update_lock);
+	ret = pmbus_update_byte_data(client, page, PMBUS_OPERATION,
+				     PB_OPERATION_CONTROL_ON,
+				     enable ? PB_OPERATION_CONTROL_ON : 0);
+	mutex_unlock(&data->update_lock);
+
+	return ret;
 }
 
 static int pmbus_regulator_enable(struct regulator_dev *rdev)
--- linux-ein-5.4.0.orig/drivers/hwmon/pwm-fan.c
+++ linux-ein-5.4.0/drivers/hwmon/pwm-fan.c
@@ -54,16 +54,18 @@
 static void sample_timer(struct timer_list *t)
 {
 	struct pwm_fan_ctx *ctx = from_timer(ctx, t, rpm_timer);
+	unsigned int delta = ktime_ms_delta(ktime_get(), ctx->sample_start);
 	int pulses;
-	u64 tmp;
 
-	pulses = atomic_read(&ctx->pulses);
-	atomic_sub(pulses, &ctx->pulses);
-	tmp = (u64)pulses * ktime_ms_delta(ktime_get(), ctx->sample_start) * 60;
-	do_div(tmp, ctx->pulses_per_revolution * 1000);
-	ctx->rpm = tmp;
+	if (delta) {
+		pulses = atomic_read(&ctx->pulses);
+		atomic_sub(pulses, &ctx->pulses);
+		ctx->rpm = (unsigned int)(pulses * 1000 * 60) /
+			(ctx->pulses_per_revolution * delta);
+
+		ctx->sample_start = ktime_get();
+	}
 
-	ctx->sample_start = ktime_get();
 	mod_timer(&ctx->rpm_timer, jiffies + HZ);
 }
 
@@ -328,8 +330,18 @@
 
 	ctx->pwm_value = MAX_PWM;
 
-	/* Set duty cycle to maximum allowed and enable PWM output */
 	pwm_init_state(ctx->pwm, &state);
+	/*
+	 * __set_pwm assumes that MAX_PWM * (period - 1) fits into an unsigned
+	 * long. Check this here to prevent the fan running at a too low
+	 * frequency.
+	 */
+	if (state.period > ULONG_MAX / MAX_PWM + 1) {
+		dev_err(dev, "Configured period too big\n");
+		return -EINVAL;
+	}
+
+	/* Set duty cycle to maximum allowed and enable PWM output */
 	state.duty_cycle = ctx->pwm->args.period - 1;
 	state.enabled = true;
 
--- linux-ein-5.4.0.orig/drivers/hwmon/sch56xx-common.c
+++ linux-ein-5.4.0/drivers/hwmon/sch56xx-common.c
@@ -424,7 +424,7 @@
 	if (nowayout)
 		set_bit(WDOG_NO_WAY_OUT, &data->wddev.status);
 	if (output_enable & SCH56XX_WDOG_OUTPUT_ENABLE)
-		set_bit(WDOG_ACTIVE, &data->wddev.status);
+		set_bit(WDOG_HW_RUNNING, &data->wddev.status);
 
 	/* Since the watchdog uses a downcounter there is no register to read
 	   the BIOS set timeout from (if any was set at all) ->
--- linux-ein-5.4.0.orig/drivers/hwmon/scmi-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/scmi-hwmon.c
@@ -147,7 +147,7 @@
 	[ENERGY] = hwmon_energy,
 };
 
-static u32 hwmon_attributes[] = {
+static u32 hwmon_attributes[hwmon_max] = {
 	[hwmon_chip] = HWMON_C_REGISTER_TZ,
 	[hwmon_temp] = HWMON_T_INPUT | HWMON_T_LABEL,
 	[hwmon_in] = HWMON_I_INPUT | HWMON_I_LABEL,
--- linux-ein-5.4.0.orig/drivers/hwmon/scpi-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/scpi-hwmon.c
@@ -99,6 +99,15 @@
 
 	scpi_scale_reading(&value, sensor);
 
+	/*
+	 * Temperature sensor values are treated as signed values based on
+	 * observation even though that is not explicitly specified, and
+	 * because an unsigned u64 temperature does not really make practical
+	 * sense especially when the temperature is below zero degrees Celsius.
+	 */
+	if (sensor->info.class == TEMPERATURE)
+		return sprintf(buf, "%lld\n", (s64)value);
+
 	return sprintf(buf, "%llu\n", value);
 }
 
--- linux-ein-5.4.0.orig/drivers/hwmon/tmp401.c
+++ linux-ein-5.4.0/drivers/hwmon/tmp401.c
@@ -731,10 +731,21 @@
 	return 0;
 }
 
+static const struct of_device_id __maybe_unused tmp4xx_of_match[] = {
+	{ .compatible = "ti,tmp401", },
+	{ .compatible = "ti,tmp411", },
+	{ .compatible = "ti,tmp431", },
+	{ .compatible = "ti,tmp432", },
+	{ .compatible = "ti,tmp435", },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, tmp4xx_of_match);
+
 static struct i2c_driver tmp401_driver = {
 	.class		= I2C_CLASS_HWMON,
 	.driver = {
 		.name	= "tmp401",
+		.of_match_table = of_match_ptr(tmp4xx_of_match),
 	},
 	.probe		= tmp401_probe,
 	.id_table	= tmp401_id,
--- linux-ein-5.4.0.orig/drivers/hwmon/tmp421.c
+++ linux-ein-5.4.0/drivers/hwmon/tmp421.c
@@ -100,23 +100,17 @@
 	s16 temp[4];
 };
 
-static int temp_from_s16(s16 reg)
+static int temp_from_raw(u16 reg, bool extended)
 {
 	/* Mask out status bits */
 	int temp = reg & ~0xf;
 
-	return (temp * 1000 + 128) / 256;
-}
+	if (extended)
+		temp = temp - 64 * 256;
+	else
+		temp = (s16)temp;
 
-static int temp_from_u16(u16 reg)
-{
-	/* Mask out status bits */
-	int temp = reg & ~0xf;
-
-	/* Add offset for extended temperature range. */
-	temp -= 64 * 256;
-
-	return (temp * 1000 + 128) / 256;
+	return DIV_ROUND_CLOSEST(temp * 1000, 256);
 }
 
 static struct tmp421_data *tmp421_update_device(struct device *dev)
@@ -153,17 +147,15 @@
 
 	switch (attr) {
 	case hwmon_temp_input:
-		if (tmp421->config & TMP421_CONFIG_RANGE)
-			*val = temp_from_u16(tmp421->temp[channel]);
-		else
-			*val = temp_from_s16(tmp421->temp[channel]);
+		*val = temp_from_raw(tmp421->temp[channel],
+				     tmp421->config & TMP421_CONFIG_RANGE);
 		return 0;
 	case hwmon_temp_fault:
 		/*
-		 * The OPEN bit signals a fault. This is bit 0 of the temperature
-		 * register (low byte).
+		 * Any of OPEN or /PVLD bits indicate a hardware mulfunction
+		 * and the conversion result may be incorrect
 		 */
-		*val = tmp421->temp[channel] & 0x01;
+		*val = !!(tmp421->temp[channel] & 0x03);
 		return 0;
 	default:
 		return -EOPNOTSUPP;
@@ -176,9 +168,6 @@
 {
 	switch (attr) {
 	case hwmon_temp_fault:
-		if (channel == 0)
-			return 0;
-		return 0444;
 	case hwmon_temp_input:
 		return 0444;
 	default:
--- linux-ein-5.4.0.orig/drivers/hwmon/w83791d.c
+++ linux-ein-5.4.0/drivers/hwmon/w83791d.c
@@ -273,9 +273,6 @@
 	char valid;			/* !=0 if following fields are valid */
 	unsigned long last_updated;	/* In jiffies */
 
-	/* array of 2 pointers to subclients */
-	struct i2c_client *lm75[2];
-
 	/* volts */
 	u8 in[NUMBER_OF_VIN];		/* Register value */
 	u8 in_max[NUMBER_OF_VIN];	/* Register value */
@@ -1258,7 +1255,6 @@
 static int w83791d_detect_subclients(struct i2c_client *client)
 {
 	struct i2c_adapter *adapter = client->adapter;
-	struct w83791d_data *data = i2c_get_clientdata(client);
 	int address = client->addr;
 	int i, id;
 	u8 val;
@@ -1281,22 +1277,19 @@
 	}
 
 	val = w83791d_read(client, W83791D_REG_I2C_SUBADDR);
-	if (!(val & 0x08))
-		data->lm75[0] = devm_i2c_new_dummy_device(&client->dev, adapter,
-							  0x48 + (val & 0x7));
-	if (!(val & 0x80)) {
-		if (!IS_ERR(data->lm75[0]) &&
-				((val & 0x7) == ((val >> 4) & 0x7))) {
-			dev_err(&client->dev,
-				"duplicate addresses 0x%x, "
-				"use force_subclient\n",
-				data->lm75[0]->addr);
-			return -ENODEV;
-		}
-		data->lm75[1] = devm_i2c_new_dummy_device(&client->dev, adapter,
-							  0x48 + ((val >> 4) & 0x7));
+
+	if (!(val & 0x88) && (val & 0x7) == ((val >> 4) & 0x7)) {
+		dev_err(&client->dev,
+			"duplicate addresses 0x%x, use force_subclient\n", 0x48 + (val & 0x7));
+		return -ENODEV;
 	}
 
+	if (!(val & 0x08))
+		devm_i2c_new_dummy_device(&client->dev, adapter, 0x48 + (val & 0x7));
+
+	if (!(val & 0x80))
+		devm_i2c_new_dummy_device(&client->dev, adapter, 0x48 + ((val >> 4) & 0x7));
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/hwmon/w83792d.c
+++ linux-ein-5.4.0/drivers/hwmon/w83792d.c
@@ -264,9 +264,6 @@
 	char valid;		/* !=0 if following fields are valid */
 	unsigned long last_updated;	/* In jiffies */
 
-	/* array of 2 pointers to subclients */
-	struct i2c_client *lm75[2];
-
 	u8 in[9];		/* Register value */
 	u8 in_max[9];		/* Register value */
 	u8 in_min[9];		/* Register value */
@@ -928,7 +925,6 @@
 	int address = new_client->addr;
 	u8 val;
 	struct i2c_adapter *adapter = new_client->adapter;
-	struct w83792d_data *data = i2c_get_clientdata(new_client);
 
 	id = i2c_adapter_id(adapter);
 	if (force_subclients[0] == id && force_subclients[1] == address) {
@@ -947,21 +943,19 @@
 	}
 
 	val = w83792d_read_value(new_client, W83792D_REG_I2C_SUBADDR);
-	if (!(val & 0x08))
-		data->lm75[0] = devm_i2c_new_dummy_device(&new_client->dev, adapter,
-							  0x48 + (val & 0x7));
-	if (!(val & 0x80)) {
-		if (!IS_ERR(data->lm75[0]) &&
-			((val & 0x7) == ((val >> 4) & 0x7))) {
-			dev_err(&new_client->dev,
-				"duplicate addresses 0x%x, use force_subclient\n",
-				data->lm75[0]->addr);
-			return -ENODEV;
-		}
-		data->lm75[1] = devm_i2c_new_dummy_device(&new_client->dev, adapter,
-							  0x48 + ((val >> 4) & 0x7));
+
+	if (!(val & 0x88) && (val & 0x7) == ((val >> 4) & 0x7)) {
+		dev_err(&new_client->dev,
+			"duplicate addresses 0x%x, use force_subclient\n", 0x48 + (val & 0x7));
+		return -ENODEV;
 	}
 
+	if (!(val & 0x08))
+		devm_i2c_new_dummy_device(&new_client->dev, adapter, 0x48 + (val & 0x7));
+
+	if (!(val & 0x80))
+		devm_i2c_new_dummy_device(&new_client->dev, adapter, 0x48 + ((val >> 4) & 0x7));
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/hwmon/w83793.c
+++ linux-ein-5.4.0/drivers/hwmon/w83793.c
@@ -202,7 +202,6 @@
 }
 
 struct w83793_data {
-	struct i2c_client *lm75[2];
 	struct device *hwmon_dev;
 	struct mutex update_lock;
 	char valid;			/* !=0 if following fields are valid */
@@ -1566,7 +1565,6 @@
 	int address = client->addr;
 	u8 tmp;
 	struct i2c_adapter *adapter = client->adapter;
-	struct w83793_data *data = i2c_get_clientdata(client);
 
 	id = i2c_adapter_id(adapter);
 	if (force_subclients[0] == id && force_subclients[1] == address) {
@@ -1586,21 +1584,19 @@
 	}
 
 	tmp = w83793_read_value(client, W83793_REG_I2C_SUBADDR);
-	if (!(tmp & 0x08))
-		data->lm75[0] = devm_i2c_new_dummy_device(&client->dev, adapter,
-							  0x48 + (tmp & 0x7));
-	if (!(tmp & 0x80)) {
-		if (!IS_ERR(data->lm75[0])
-		    && ((tmp & 0x7) == ((tmp >> 4) & 0x7))) {
-			dev_err(&client->dev,
-				"duplicate addresses 0x%x, "
-				"use force_subclients\n", data->lm75[0]->addr);
-			return -ENODEV;
-		}
-		data->lm75[1] = devm_i2c_new_dummy_device(&client->dev, adapter,
-							  0x48 + ((tmp >> 4) & 0x7));
+
+	if (!(tmp & 0x88) && (tmp & 0x7) == ((tmp >> 4) & 0x7)) {
+		dev_err(&client->dev,
+			"duplicate addresses 0x%x, use force_subclient\n", 0x48 + (tmp & 0x7));
+		return -ENODEV;
 	}
 
+	if (!(tmp & 0x08))
+		devm_i2c_new_dummy_device(&client->dev, adapter, 0x48 + (tmp & 0x7));
+
+	if (!(tmp & 0x80))
+		devm_i2c_new_dummy_device(&client->dev, adapter, 0x48 + ((tmp >> 4) & 0x7));
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/hwmon/xgene-hwmon.c
+++ linux-ein-5.4.0/drivers/hwmon/xgene-hwmon.c
@@ -768,6 +768,7 @@
 {
 	struct xgene_hwmon_dev *ctx = platform_get_drvdata(pdev);
 
+	cancel_work_sync(&ctx->workq);
 	hwmon_device_unregister(ctx->hwmon_dev);
 	kfifo_free(&ctx->async_msg_fifo);
 	if (acpi_disabled)
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-cpu-debug.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-cpu-debug.c
@@ -379,9 +379,10 @@
 	int cpu;
 	struct debug_drvdata *drvdata;
 
-	mutex_lock(&debug_lock);
+	/* Bail out if we can't acquire the mutex or the functionality is off */
+	if (!mutex_trylock(&debug_lock))
+		return NOTIFY_DONE;
 
-	/* Bail out if the functionality is disabled */
 	if (!debug_enable)
 		goto skip_dump;
 
@@ -400,7 +401,7 @@
 
 skip_dump:
 	mutex_unlock(&debug_lock);
-	return 0;
+	return NOTIFY_DONE;
 }
 
 static struct notifier_block debug_notifier = {
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-etb10.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-etb10.c
@@ -176,6 +176,7 @@
 	unsigned long flags;
 	struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
 	struct perf_output_handle *handle = data;
+	struct cs_buffers *buf = etm_perf_sink_config(handle);
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 
@@ -186,7 +187,7 @@
 	}
 
 	/* Get a handle on the pid of the process to monitor */
-	pid = task_pid_nr(handle->event->owner);
+	pid = buf->pid;
 
 	if (drvdata->pid != -1 && drvdata->pid != pid) {
 		ret = -EBUSY;
@@ -383,6 +384,7 @@
 	if (!buf)
 		return NULL;
 
+	buf->pid = task_pid_nr(event->owner);
 	buf->snapshot = overwrite;
 	buf->nr_pages = nr_pages;
 	buf->data_pages = pages;
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-etm-perf.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-etm-perf.c
@@ -126,10 +126,10 @@
 	cpumask_t *mask = &event_data->mask;
 	struct coresight_device *sink;
 
-	if (WARN_ON(cpumask_empty(mask)))
+	if (!event_data->snk_config)
 		return;
 
-	if (!event_data->snk_config)
+	if (WARN_ON(cpumask_empty(mask)))
 		return;
 
 	cpu = cpumask_first(mask);
@@ -310,6 +310,16 @@
 	if (!event_data)
 		goto fail;
 
+	/*
+	 * Check if this ETM is allowed to trace, as decided
+	 * at etm_setup_aux(). This could be due to an unreachable
+	 * sink from this ETM. We can't do much in this case if
+	 * the sink was specified or hinted to the driver. For
+	 * now, simply don't record anything on this ETM.
+	 */
+	if (!cpumask_test_cpu(cpu, &event_data->mask))
+		goto fail_end_stop;
+
 	path = etm_event_cpu_path(event_data, cpu);
 	/* We need a sink, no need to continue without one */
 	sink = coresight_get_sink(path);
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
@@ -364,8 +364,12 @@
 	mode = ETM_MODE_QELEM(config->mode);
 	/* start by clearing QE bits */
 	config->cfg &= ~(BIT(13) | BIT(14));
-	/* if supported, Q elements with instruction counts are enabled */
-	if ((mode & BIT(0)) && (drvdata->q_support & BIT(0)))
+	/*
+	 * if supported, Q elements with instruction counts are enabled.
+	 * Always set the low bit for any requested mode. Valid combos are
+	 * 0b00, 0b01 and 0b11.
+	 */
+	if (mode && drvdata->q_support)
 		config->cfg |= BIT(13);
 	/*
 	 * if supported, Q elements with and without instruction
@@ -652,10 +656,13 @@
 
 	if (kstrtoul(buf, 16, &val))
 		return -EINVAL;
+
+	/* mask off max threshold before checking min value */
+	val &= ETM_CYC_THRESHOLD_MASK;
 	if (val < drvdata->ccitmin)
 		return -EINVAL;
 
-	config->ccctlr = val & ETM_CYC_THRESHOLD_MASK;
+	config->ccctlr = val;
 	return size;
 }
 static DEVICE_ATTR_RW(cyc_threshold);
@@ -686,14 +693,16 @@
 		return -EINVAL;
 	if (!drvdata->nr_addr_cmp)
 		return -EINVAL;
+
 	/*
-	 * Bit[7:0] selects which address range comparator is used for
-	 * branch broadcast control.
+	 * Bit[8] controls include(1) / exclude(0), bits[0-7] select
+	 * individual range comparators. If include then at least 1
+	 * range must be selected.
 	 */
-	if (BMVAL(val, 0, 7) > drvdata->nr_addr_cmp)
+	if ((val & BIT(8)) && (BMVAL(val, 0, 7) == 0))
 		return -EINVAL;
 
-	config->bb_ctrl = val;
+	config->bb_ctrl = val & GENMASK(8, 0);
 	return size;
 }
 static DEVICE_ATTR_RW(bb_ctrl);
@@ -1324,8 +1333,8 @@
 
 	spin_lock(&drvdata->spinlock);
 	idx = config->seq_idx;
-	/* RST, bits[7:0] */
-	config->seq_ctrl[idx] = val & 0xFF;
+	/* Seq control has two masks B[15:8] F[7:0] */
+	config->seq_ctrl[idx] = val & 0xFFFF;
 	spin_unlock(&drvdata->spinlock);
 	return size;
 }
@@ -1580,7 +1589,7 @@
 	if (idx % 2 != 0)
 		/* PAIRINV, bit[21] */
 		val &= ~BIT(21);
-	config->res_ctrl[idx] = val;
+	config->res_ctrl[idx] = val & GENMASK(21, 0);
 	spin_unlock(&drvdata->spinlock);
 	return size;
 }
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-etm4x.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-etm4x.c
@@ -156,7 +156,7 @@
 		writel_relaxed(config->ss_pe_cmp[i],
 			       drvdata->base + TRCSSPCICRn(i));
 	}
-	for (i = 0; i < drvdata->nr_addr_cmp; i++) {
+	for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) {
 		writeq_relaxed(config->addr_val[i],
 			       drvdata->base + TRCACVRn(i));
 		writeq_relaxed(config->addr_acc[i],
@@ -1184,6 +1184,7 @@
 	return 0;
 
 err_arch_supported:
+	etmdrvdata[drvdata->cpu] = NULL;
 	if (--etm4_count == 0) {
 		cpuhp_remove_state_nocalls(CPUHP_AP_ARM_CORESIGHT_STARTING);
 		if (hp_online)
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-funnel.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-funnel.c
@@ -38,12 +38,14 @@
  * @atclk:	optional clock for the core parts of the funnel.
  * @csdev:	component vitals needed by the framework.
  * @priority:	port selection order.
+ * @spinlock:	serialize enable/disable operations.
  */
 struct funnel_drvdata {
 	void __iomem		*base;
 	struct clk		*atclk;
 	struct coresight_device	*csdev;
 	unsigned long		priority;
+	spinlock_t		spinlock;
 };
 
 static int dynamic_funnel_enable_hw(struct funnel_drvdata *drvdata, int port)
@@ -76,11 +78,21 @@
 {
 	int rc = 0;
 	struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool first_enable = false;
 
-	if (drvdata->base)
-		rc = dynamic_funnel_enable_hw(drvdata, inport);
-
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_read(&csdev->refcnt[inport]) == 0) {
+		if (drvdata->base)
+			rc = dynamic_funnel_enable_hw(drvdata, inport);
+		if (!rc)
+			first_enable = true;
+	}
 	if (!rc)
+		atomic_inc(&csdev->refcnt[inport]);
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
+
+	if (first_enable)
 		dev_dbg(&csdev->dev, "FUNNEL inport %d enabled\n", inport);
 	return rc;
 }
@@ -107,11 +119,19 @@
 			   int outport)
 {
 	struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool last_disable = false;
 
-	if (drvdata->base)
-		dynamic_funnel_disable_hw(drvdata, inport);
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_dec_return(&csdev->refcnt[inport]) == 0) {
+		if (drvdata->base)
+			dynamic_funnel_disable_hw(drvdata, inport);
+		last_disable = true;
+	}
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
 
-	dev_dbg(&csdev->dev, "FUNNEL inport %d disabled\n", inport);
+	if (last_disable)
+		dev_dbg(&csdev->dev, "FUNNEL inport %d disabled\n", inport);
 }
 
 static const struct coresight_ops_link funnel_link_ops = {
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-priv.h
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-priv.h
@@ -86,6 +86,7 @@
  * struct cs_buffer - keep track of a recording session' specifics
  * @cur:	index of the current buffer
  * @nr_pages:	max number of pages granted to us
+ * @pid:	PID this cs_buffer belongs to
  * @offset:	offset within the current buffer
  * @data_size:	how much we collected in this run
  * @snapshot:	is this run in snapshot mode
@@ -94,6 +95,7 @@
 struct cs_buffers {
 	unsigned int		cur;
 	unsigned int		nr_pages;
+	pid_t			pid;
 	unsigned long		offset;
 	local_t			data_size;
 	bool			snapshot;
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-replicator.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-replicator.c
@@ -31,11 +31,13 @@
  *		whether this one is programmable or not.
  * @atclk:	optional clock for the core parts of the replicator.
  * @csdev:	component vitals needed by the framework
+ * @spinlock:	serialize enable/disable operations.
  */
 struct replicator_drvdata {
 	void __iomem		*base;
 	struct clk		*atclk;
 	struct coresight_device	*csdev;
+	spinlock_t		spinlock;
 };
 
 static void dynamic_replicator_reset(struct replicator_drvdata *drvdata)
@@ -97,10 +99,22 @@
 {
 	int rc = 0;
 	struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool first_enable = false;
 
-	if (drvdata->base)
-		rc = dynamic_replicator_enable(drvdata, inport, outport);
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_read(&csdev->refcnt[outport]) == 0) {
+		if (drvdata->base)
+			rc = dynamic_replicator_enable(drvdata, inport,
+						       outport);
+		if (!rc)
+			first_enable = true;
+	}
 	if (!rc)
+		atomic_inc(&csdev->refcnt[outport]);
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
+
+	if (first_enable)
 		dev_dbg(&csdev->dev, "REPLICATOR enabled\n");
 	return rc;
 }
@@ -137,10 +151,19 @@
 			       int outport)
 {
 	struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	unsigned long flags;
+	bool last_disable = false;
 
-	if (drvdata->base)
-		dynamic_replicator_disable(drvdata, inport, outport);
-	dev_dbg(&csdev->dev, "REPLICATOR disabled\n");
+	spin_lock_irqsave(&drvdata->spinlock, flags);
+	if (atomic_dec_return(&csdev->refcnt[outport]) == 0) {
+		if (drvdata->base)
+			dynamic_replicator_disable(drvdata, inport, outport);
+		last_disable = true;
+	}
+	spin_unlock_irqrestore(&drvdata->spinlock, flags);
+
+	if (last_disable)
+		dev_dbg(&csdev->dev, "REPLICATOR disabled\n");
 }
 
 static const struct coresight_ops_link replicator_link_ops = {
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-tmc-etf.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-tmc-etf.c
@@ -227,6 +227,7 @@
 	unsigned long flags;
 	struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
 	struct perf_output_handle *handle = data;
+	struct cs_buffers *buf = etm_perf_sink_config(handle);
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 	do {
@@ -243,7 +244,7 @@
 		}
 
 		/* Get a handle on the pid of the process to monitor */
-		pid = task_pid_nr(handle->event->owner);
+		pid = buf->pid;
 
 		if (drvdata->pid != -1 && drvdata->pid != pid) {
 			ret = -EBUSY;
@@ -334,9 +335,10 @@
 static int tmc_enable_etf_link(struct coresight_device *csdev,
 			       int inport, int outport)
 {
-	int ret;
+	int ret = 0;
 	unsigned long flags;
 	struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	bool first_enable = false;
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 	if (drvdata->reading) {
@@ -344,12 +346,18 @@
 		return -EBUSY;
 	}
 
-	ret = tmc_etf_enable_hw(drvdata);
+	if (atomic_read(&csdev->refcnt[0]) == 0) {
+		ret = tmc_etf_enable_hw(drvdata);
+		if (!ret) {
+			drvdata->mode = CS_MODE_SYSFS;
+			first_enable = true;
+		}
+	}
 	if (!ret)
-		drvdata->mode = CS_MODE_SYSFS;
+		atomic_inc(&csdev->refcnt[0]);
 	spin_unlock_irqrestore(&drvdata->spinlock, flags);
 
-	if (!ret)
+	if (first_enable)
 		dev_dbg(&csdev->dev, "TMC-ETF enabled\n");
 	return ret;
 }
@@ -359,6 +367,7 @@
 {
 	unsigned long flags;
 	struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
+	bool last_disable = false;
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 	if (drvdata->reading) {
@@ -366,11 +375,15 @@
 		return;
 	}
 
-	tmc_etf_disable_hw(drvdata);
-	drvdata->mode = CS_MODE_DISABLED;
+	if (atomic_dec_return(&csdev->refcnt[0]) == 0) {
+		tmc_etf_disable_hw(drvdata);
+		drvdata->mode = CS_MODE_DISABLED;
+		last_disable = true;
+	}
 	spin_unlock_irqrestore(&drvdata->spinlock, flags);
 
-	dev_dbg(&csdev->dev, "TMC-ETF disabled\n");
+	if (last_disable)
+		dev_dbg(&csdev->dev, "TMC-ETF disabled\n");
 }
 
 static void *tmc_alloc_etf_buffer(struct coresight_device *csdev,
@@ -387,6 +400,7 @@
 	if (!buf)
 		return NULL;
 
+	buf->pid = task_pid_nr(event->owner);
 	buf->snapshot = overwrite;
 	buf->nr_pages = nr_pages;
 	buf->data_pages = pages;
@@ -412,7 +426,7 @@
 		return -EINVAL;
 
 	/* wrap head around to the amount of space we have */
-	head = handle->head & ((buf->nr_pages << PAGE_SHIFT) - 1);
+	head = handle->head & (((unsigned long)buf->nr_pages << PAGE_SHIFT) - 1);
 
 	/* find the page to write to */
 	buf->cur = head / PAGE_SIZE;
@@ -514,7 +528,7 @@
 		buf_ptr = buf->data_pages[cur] + offset;
 		*buf_ptr = readl_relaxed(drvdata->base + TMC_RRD);
 
-		if (lost && *barrier) {
+		if (lost && i < CORESIGHT_BARRIER_PKT_SIZE) {
 			*buf_ptr = *barrier;
 			barrier++;
 		}
@@ -584,13 +598,6 @@
 		goto out;
 	}
 
-	/* There is no point in reading a TMC in HW FIFO mode */
-	mode = readl_relaxed(drvdata->base + TMC_MODE);
-	if (mode != TMC_MODE_CIRCULAR_BUFFER) {
-		ret = -EINVAL;
-		goto out;
-	}
-
 	/* Don't interfere if operated from Perf */
 	if (drvdata->mode == CS_MODE_PERF) {
 		ret = -EINVAL;
@@ -604,8 +611,15 @@
 	}
 
 	/* Disable the TMC if need be */
-	if (drvdata->mode == CS_MODE_SYSFS)
+	if (drvdata->mode == CS_MODE_SYSFS) {
+		/* There is no point in reading a TMC in HW FIFO mode */
+		mode = readl_relaxed(drvdata->base + TMC_MODE);
+		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
+			ret = -EINVAL;
+			goto out;
+		}
 		__tmc_etb_disable_hw(drvdata);
+	}
 
 	drvdata->reading = true;
 out:
@@ -627,15 +641,14 @@
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 
-	/* There is no point in reading a TMC in HW FIFO mode */
-	mode = readl_relaxed(drvdata->base + TMC_MODE);
-	if (mode != TMC_MODE_CIRCULAR_BUFFER) {
-		spin_unlock_irqrestore(&drvdata->spinlock, flags);
-		return -EINVAL;
-	}
-
 	/* Re-enable the TMC if need be */
 	if (drvdata->mode == CS_MODE_SYSFS) {
+		/* There is no point in reading a TMC in HW FIFO mode */
+		mode = readl_relaxed(drvdata->base + TMC_MODE);
+		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
+			spin_unlock_irqrestore(&drvdata->spinlock, flags);
+			return -EINVAL;
+		}
 		/*
 		 * The trace run will continue with the same allocated trace
 		 * buffer. As such zero-out the buffer so that we don't end
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-tmc-etr.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-tmc-etr.c
@@ -47,7 +47,8 @@
 };
 
 /* Convert the perf index to an offset within the ETR buffer */
-#define PERF_IDX2OFF(idx, buf)	((idx) % ((buf)->nr_pages << PAGE_SHIFT))
+#define PERF_IDX2OFF(idx, buf)		\
+		((idx) % ((unsigned long)(buf)->nr_pages << PAGE_SHIFT))
 
 /* Lower limit for ETR hardware buffer */
 #define TMC_ETR_PERF_MIN_BUF_SIZE	SZ_1M
@@ -217,6 +218,8 @@
 		} else {
 			page = alloc_pages_node(node,
 						GFP_KERNEL | __GFP_ZERO, 0);
+			if (!page)
+				goto err;
 		}
 		paddr = dma_map_page(real_dev, page, 0, PAGE_SIZE, dir);
 		if (dma_mapping_error(real_dev, paddr))
@@ -907,7 +910,7 @@
 
 	len = tmc_etr_buf_get_data(etr_buf, offset,
 				   CORESIGHT_BARRIER_PKT_SIZE, &bufp);
-	if (WARN_ON(len < CORESIGHT_BARRIER_PKT_SIZE))
+	if (WARN_ON(len < 0 || len < CORESIGHT_BARRIER_PKT_SIZE))
 		return -EINVAL;
 	coresight_insert_barrier_packet(bufp);
 	return offset + CORESIGHT_BARRIER_PKT_SIZE;
@@ -1213,7 +1216,7 @@
 	 * than the size requested via sysfs.
 	 */
 	if ((nr_pages << PAGE_SHIFT) > drvdata->size) {
-		etr_buf = tmc_alloc_etr_buf(drvdata, (nr_pages << PAGE_SHIFT),
+		etr_buf = tmc_alloc_etr_buf(drvdata, ((ssize_t)nr_pages << PAGE_SHIFT),
 					    0, node, NULL);
 		if (!IS_ERR(etr_buf))
 			goto done;
@@ -1533,7 +1536,7 @@
 
 	/* Insert barrier packets at the beginning, if there was an overflow */
 	if (lost)
-		tmc_etr_buf_insert_barrier_packet(etr_buf, etr_buf->offset);
+		tmc_etr_buf_insert_barrier_packet(etr_buf, offset);
 	tmc_etr_sync_perf_buffer(etr_perf, offset, size);
 
 	/*
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight-tmc.h
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight-tmc.h
@@ -320,7 +320,7 @@
 static inline unsigned long
 tmc_sg_table_buf_size(struct tmc_sg_table *sg_table)
 {
-	return sg_table->data_pages.nr_pages << PAGE_SHIFT;
+	return (unsigned long)sg_table->data_pages.nr_pages << PAGE_SHIFT;
 }
 
 struct coresight_device *tmc_etr_get_catu_device(struct tmc_drvdata *drvdata);
--- linux-ein-5.4.0.orig/drivers/hwtracing/coresight/coresight.c
+++ linux-ein-5.4.0/drivers/hwtracing/coresight/coresight.c
@@ -253,9 +253,9 @@
 				 struct coresight_device *parent,
 				 struct coresight_device *child)
 {
-	int ret;
+	int ret = 0;
 	int link_subtype;
-	int refport, inport, outport;
+	int inport, outport;
 
 	if (!parent || !child)
 		return -EINVAL;
@@ -264,29 +264,17 @@
 	outport = coresight_find_link_outport(csdev, child);
 	link_subtype = csdev->subtype.link_subtype;
 
-	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG)
-		refport = inport;
-	else if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT)
-		refport = outport;
-	else
-		refport = 0;
-
-	if (refport < 0)
-		return refport;
-
-	if (atomic_inc_return(&csdev->refcnt[refport]) == 1) {
-		if (link_ops(csdev)->enable) {
-			ret = link_ops(csdev)->enable(csdev, inport, outport);
-			if (ret) {
-				atomic_dec(&csdev->refcnt[refport]);
-				return ret;
-			}
-		}
-	}
-
-	csdev->enable = true;
+	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG && inport < 0)
+		return inport;
+	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT && outport < 0)
+		return outport;
+
+	if (link_ops(csdev)->enable)
+		ret = link_ops(csdev)->enable(csdev, inport, outport);
+	if (!ret)
+		csdev->enable = true;
 
-	return 0;
+	return ret;
 }
 
 static void coresight_disable_link(struct coresight_device *csdev,
@@ -295,7 +283,7 @@
 {
 	int i, nr_conns;
 	int link_subtype;
-	int refport, inport, outport;
+	int inport, outport;
 
 	if (!parent || !child)
 		return;
@@ -305,20 +293,15 @@
 	link_subtype = csdev->subtype.link_subtype;
 
 	if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG) {
-		refport = inport;
 		nr_conns = csdev->pdata->nr_inport;
 	} else if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT) {
-		refport = outport;
 		nr_conns = csdev->pdata->nr_outport;
 	} else {
-		refport = 0;
 		nr_conns = 1;
 	}
 
-	if (atomic_dec_return(&csdev->refcnt[refport]) == 0) {
-		if (link_ops(csdev)->disable)
-			link_ops(csdev)->disable(csdev, inport, outport);
-	}
+	if (link_ops(csdev)->disable)
+		link_ops(csdev)->disable(csdev, inport, outport);
 
 	for (i = 0; i < nr_conns; i++)
 		if (atomic_read(&csdev->refcnt[i]) != 0)
@@ -1090,6 +1073,7 @@
 			 * platform data.
 			 */
 			fwnode_handle_put(conn->child_fwnode);
+			conn->child_fwnode = NULL;
 			/* No need to continue */
 			break;
 		}
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/core.c
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/core.c
@@ -215,6 +215,22 @@
 
 static DEVICE_ATTR_RO(port);
 
+static void intel_th_trace_prepare(struct intel_th_device *thdev)
+{
+	struct intel_th_device *hub = to_intel_th_hub(thdev);
+	struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver);
+
+	if (hub->type != INTEL_TH_SWITCH)
+		return;
+
+	if (thdev->type != INTEL_TH_OUTPUT)
+		return;
+
+	pm_runtime_get_sync(&thdev->dev);
+	hubdrv->prepare(hub, &thdev->output);
+	pm_runtime_put(&thdev->dev);
+}
+
 static int intel_th_output_activate(struct intel_th_device *thdev)
 {
 	struct intel_th_driver *thdrv =
@@ -235,6 +251,7 @@
 	if (ret)
 		goto fail_put;
 
+	intel_th_trace_prepare(thdev);
 	if (thdrv->activate)
 		ret = thdrv->activate(thdev);
 	else
@@ -649,10 +666,8 @@
 	}
 
 	err = intel_th_device_add_resources(thdev, res, subdev->nres);
-	if (err) {
-		put_device(&thdev->dev);
+	if (err)
 		goto fail_put_device;
-	}
 
 	if (subdev->type == INTEL_TH_OUTPUT) {
 		if (subdev->mknode)
@@ -667,10 +682,8 @@
 	}
 
 	err = device_add(&thdev->dev);
-	if (err) {
-		put_device(&thdev->dev);
+	if (err)
 		goto fail_free_res;
-	}
 
 	/* need switch driver to be loaded to enumerate the rest */
 	if (subdev->type == INTEL_TH_SWITCH && !req) {
@@ -838,9 +851,6 @@
 			ret |= d->irq(th->thdev[i]);
 	}
 
-	if (ret == IRQ_NONE)
-		pr_warn_ratelimited("nobody cared for irq\n");
-
 	return ret;
 }
 
@@ -891,6 +901,7 @@
 
 			if (th->irq == -1)
 				th->irq = devres[r].start;
+			th->num_irqs++;
 			break;
 		default:
 			dev_warn(dev, "Unknown resource type %lx\n",
@@ -944,6 +955,9 @@
 
 	th->num_thdevs = 0;
 
+	for (i = 0; i < th->num_irqs; i++)
+		devm_free_irq(th->dev, th->irq + i, th);
+
 	pm_runtime_get_sync(th->dev);
 	pm_runtime_forbid(th->dev);
 
@@ -1024,15 +1038,30 @@
 {
 	struct intel_th_device *hub = to_intel_th_hub(thdev);
 	struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver);
+	int ret;
 
 	/* In host mode, this is up to the external debugger, do nothing. */
 	if (hub->host_mode)
 		return 0;
 
-	if (!hubdrv->set_output)
-		return -ENOTSUPP;
+	/*
+	 * hub is instantiated together with the source device that
+	 * calls here, so guaranteed to be present.
+	 */
+	hubdrv = to_intel_th_driver(hub->dev.driver);
+	if (!hubdrv || !try_module_get(hubdrv->driver.owner))
+		return -EINVAL;
+
+	if (!hubdrv->set_output) {
+		ret = -ENOTSUPP;
+		goto out;
+	}
+
+	ret = hubdrv->set_output(hub, master);
 
-	return hubdrv->set_output(hub, master);
+out:
+	module_put(hubdrv->driver.owner);
+	return ret;
 }
 EXPORT_SYMBOL_GPL(intel_th_set_output);
 
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/gth.c
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/gth.c
@@ -543,7 +543,7 @@
 	output->active = false;
 
 	for_each_set_bit(master, gth->output[output->port].master,
-			 TH_CONFIGURABLE_MASTERS) {
+			 TH_CONFIGURABLE_MASTERS + 1) {
 		gth_master_set(gth, master, -1);
 	}
 	spin_unlock(&gth->gth_lock);
@@ -564,6 +564,21 @@
 	iowrite32(reg, gth->base + REG_TSCU_TSUCTRL);
 }
 
+static void intel_th_gth_prepare(struct intel_th_device *thdev,
+				 struct intel_th_output *output)
+{
+	struct gth_device *gth = dev_get_drvdata(&thdev->dev);
+	int count;
+
+	/*
+	 * Wait until the output port is in reset before we start
+	 * programming it.
+	 */
+	for (count = GTH_PLE_WAITLOOP_DEPTH;
+	     count && !(gth_output_get(gth, output->port) & BIT(5)); count--)
+		cpu_relax();
+}
+
 /**
  * intel_th_gth_enable() - enable tracing to an output device
  * @thdev:	GTH device
@@ -697,7 +712,7 @@
 	othdev->output.port = -1;
 	othdev->output.active = false;
 	gth->output[port].output = NULL;
-	for (master = 0; master <= TH_CONFIGURABLE_MASTERS; master++)
+	for (master = 0; master < TH_CONFIGURABLE_MASTERS + 1; master++)
 		if (gth->master[master] == port)
 			gth->master[master] = -1;
 	spin_unlock(&gth->gth_lock);
@@ -815,6 +830,7 @@
 	.assign		= intel_th_gth_assign,
 	.unassign	= intel_th_gth_unassign,
 	.set_output	= intel_th_gth_set_output,
+	.prepare	= intel_th_gth_prepare,
 	.enable		= intel_th_gth_enable,
 	.trig_switch	= intel_th_gth_switch,
 	.disable	= intel_th_gth_disable,
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/intel_th.h
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/intel_th.h
@@ -47,11 +47,13 @@
 /**
  * struct intel_th_drvdata - describes hardware capabilities and quirks
  * @tscu_enable:	device needs SW to enable time stamping unit
+ * @multi_is_broken:	device has multiblock mode is broken
  * @has_mintctl:	device has interrupt control (MINTCTL) register
  * @host_mode_only:	device can only operate in 'host debugger' mode
  */
 struct intel_th_drvdata {
 	unsigned int	tscu_enable        : 1,
+			multi_is_broken    : 1,
 			has_mintctl        : 1,
 			host_mode_only     : 1;
 };
@@ -141,6 +143,7 @@
  * @remove:	remove method
  * @assign:	match a given output type device against available outputs
  * @unassign:	deassociate an output type device from an output port
+ * @prepare:	prepare output port for tracing
  * @enable:	enable tracing for a given output device
  * @disable:	disable tracing for a given output device
  * @irq:	interrupt callback
@@ -162,6 +165,8 @@
 					  struct intel_th_device *othdev);
 	void			(*unassign)(struct intel_th_device *thdev,
 					    struct intel_th_device *othdev);
+	void			(*prepare)(struct intel_th_device *thdev,
+					   struct intel_th_output *output);
 	void			(*enable)(struct intel_th_device *thdev,
 					  struct intel_th_output *output);
 	void			(*trig_switch)(struct intel_th_device *thdev,
@@ -261,6 +266,7 @@
  * @num_thdevs:	number of devices in the @thdev array
  * @num_resources:	number of resources in the @resource array
  * @irq:	irq number
+ * @num_irqs:	number of IRQs is use
  * @id:		this Intel TH controller's device ID in the system
  * @major:	device node major for output devices
  */
@@ -277,6 +283,7 @@
 	unsigned int		num_thdevs;
 	unsigned int		num_resources;
 	int			irq;
+	int			num_irqs;
 
 	int			id;
 	int			major;
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/msu-sink.c
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/msu-sink.c
@@ -71,6 +71,9 @@
 		block = dma_alloc_coherent(priv->dev->parent->parent,
 					   PAGE_SIZE, &sg_dma_address(sg_ptr),
 					   GFP_KERNEL);
+		if (!block)
+			return -ENOMEM;
+
 		sg_set_buf(sg_ptr, block, PAGE_SIZE);
 	}
 
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/msu.c
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/msu.c
@@ -157,7 +157,8 @@
 	/* config */
 	unsigned int		enabled : 1,
 				wrap	: 1,
-				do_irq	: 1;
+				do_irq	: 1,
+				multi_is_broken : 1;
 	unsigned int		mode;
 	unsigned int		burst_len;
 	unsigned int		index;
@@ -718,9 +719,6 @@
 
 	if (old != expect) {
 		ret = -EINVAL;
-		dev_warn_ratelimited(msc_dev(win->msc),
-				     "expected lockout state %d, got %d\n",
-				     expect, old);
 		goto unlock;
 	}
 
@@ -741,6 +739,10 @@
 		/* from intel_th_msc_window_unlock(), don't warn if not locked */
 		if (expect == WIN_LOCKED && old == new)
 			return 0;
+
+		dev_warn_ratelimited(msc_dev(win->msc),
+				     "expected lockout state %d, got %d\n",
+				     expect, old);
 	}
 
 	return ret;
@@ -760,7 +762,7 @@
 	lockdep_assert_held(&msc->buf_mutex);
 
 	if (msc->mode > MSC_MODE_MULTI)
-		return -ENOTSUPP;
+		return -EINVAL;
 
 	if (msc->mode == MSC_MODE_MULTI) {
 		if (msc_win_set_lockout(msc->cur_win, WIN_READY, WIN_INUSE))
@@ -1048,6 +1050,16 @@
 static inline void msc_buffer_set_wb(struct msc_window *win) {}
 #endif /* CONFIG_X86 */
 
+static struct page *msc_sg_page(struct scatterlist *sg)
+{
+	void *addr = sg_virt(sg);
+
+	if (is_vmalloc_addr(addr))
+		return vmalloc_to_page(addr);
+
+	return sg_page(sg);
+}
+
 /**
  * msc_buffer_win_alloc() - alloc a window for a multiblock mode
  * @msc:	MSC device
@@ -1120,7 +1132,7 @@
 	int i;
 
 	for_each_sg(win->sgt->sgl, sg, win->nr_segs, i) {
-		struct page *page = sg_page(sg);
+		struct page *page = msc_sg_page(sg);
 
 		page->mapping = NULL;
 		dma_free_coherent(msc_dev(win->msc)->parent->parent, PAGE_SIZE,
@@ -1294,7 +1306,7 @@
 	} else if (msc->mode == MSC_MODE_MULTI) {
 		ret = msc_buffer_multi_alloc(msc, nr_pages, nr_wins);
 	} else {
-		ret = -ENOTSUPP;
+		ret = -EINVAL;
 	}
 
 	if (!ret) {
@@ -1382,7 +1394,7 @@
 	pgoff -= win->pgoff;
 
 	for_each_sg(win->sgt->sgl, sg, win->nr_segs, blk) {
-		struct page *page = sg_page(sg);
+		struct page *page = msc_sg_page(sg);
 		size_t pgsz = PFN_DOWN(sg->length);
 
 		if (pgoff < pgsz)
@@ -1530,7 +1542,7 @@
 		if (ret >= 0)
 			*ppos = iter->offset;
 	} else {
-		ret = -ENOTSUPP;
+		ret = -EINVAL;
 	}
 
 put_count:
@@ -1664,7 +1676,7 @@
 {
 	atomic_set(&msc->user_count, -1);
 
-	msc->mode = MSC_MODE_MULTI;
+	msc->mode = msc->multi_is_broken ? MSC_MODE_SINGLE : MSC_MODE_MULTI;
 	mutex_init(&msc->buf_mutex);
 	INIT_LIST_HEAD(&msc->win_list);
 	INIT_LIST_HEAD(&msc->iter_list);
@@ -1676,10 +1688,13 @@
 	return 0;
 }
 
-static void msc_win_switch(struct msc *msc)
+static int msc_win_switch(struct msc *msc)
 {
 	struct msc_window *first;
 
+	if (list_empty(&msc->win_list))
+		return -EINVAL;
+
 	first = list_first_entry(&msc->win_list, struct msc_window, entry);
 
 	if (msc_is_last_win(msc->cur_win))
@@ -1691,6 +1706,8 @@
 	msc->base_addr = msc_win_base_dma(msc->cur_win);
 
 	intel_th_trace_switch(msc->thdev);
+
+	return 0;
 }
 
 /**
@@ -1871,6 +1888,9 @@
 	return -EINVAL;
 
 found:
+	if (i == MSC_MODE_MULTI && msc->multi_is_broken)
+		return -EOPNOTSUPP;
+
 	mutex_lock(&msc->buf_mutex);
 	ret = 0;
 
@@ -2025,16 +2045,15 @@
 	if (val != 1)
 		return -EINVAL;
 
+	ret = -EINVAL;
 	mutex_lock(&msc->buf_mutex);
 	/*
 	 * Window switch can only happen in the "multi" mode.
 	 * If a external buffer is engaged, they have the full
 	 * control over window switching.
 	 */
-	if (msc->mode != MSC_MODE_MULTI || msc->mbuf)
-		ret = -ENOTSUPP;
-	else
-		msc_win_switch(msc);
+	if (msc->mode == MSC_MODE_MULTI && !msc->mbuf)
+		ret = msc_win_switch(msc);
 	mutex_unlock(&msc->buf_mutex);
 
 	return ret ? ret : size;
@@ -2078,6 +2097,9 @@
 	if (!res)
 		msc->do_irq = 1;
 
+	if (INTEL_TH_CAP(to_intel_th(thdev), multi_is_broken))
+		msc->multi_is_broken = 1;
+
 	msc->index = thdev->id;
 
 	msc->thdev = thdev;
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/pci.c
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/pci.c
@@ -100,8 +100,10 @@
 		}
 
 	th = intel_th_alloc(&pdev->dev, drvdata, resource, r);
-	if (IS_ERR(th))
-		return PTR_ERR(th);
+	if (IS_ERR(th)) {
+		err = PTR_ERR(th);
+		goto err_free_irq;
+	}
 
 	th->activate   = intel_th_pci_activate;
 	th->deactivate = intel_th_pci_deactivate;
@@ -109,6 +111,10 @@
 	pci_set_master(pdev);
 
 	return 0;
+
+err_free_irq:
+	pci_free_irq_vectors(pdev);
+	return err;
 }
 
 static void intel_th_pci_remove(struct pci_dev *pdev)
@@ -120,6 +126,10 @@
 	pci_free_irq_vectors(pdev);
 }
 
+static const struct intel_th_drvdata intel_th_1x_multi_is_broken = {
+	.multi_is_broken	= 1,
+};
+
 static const struct intel_th_drvdata intel_th_2x = {
 	.tscu_enable	= 1,
 	.has_mintctl	= 1,
@@ -152,7 +162,7 @@
 	{
 		/* Kaby Lake PCH-H */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa2a6),
-		.driver_data = (kernel_ulong_t)0,
+		.driver_data = (kernel_ulong_t)&intel_th_1x_multi_is_broken,
 	},
 	{
 		/* Denverton */
@@ -205,20 +215,90 @@
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
 	{
+		/* Comet Lake PCH-V */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa3a6),
+		.driver_data = (kernel_ulong_t)&intel_th_1x_multi_is_broken,
+	},
+	{
 		/* Ice Lake NNPI */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x45c5),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
 	{
+		/* Ice Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x8a29),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Tiger Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x9a33),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
 		/* Tiger Lake PCH */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa0a6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
 	{
+		/* Tiger Lake PCH-H */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x43a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
 		/* Jasper Lake PCH */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4da6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Jasper Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4e29),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Elkhart Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4529),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Elkhart Lake */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4b26),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Alder Lake-P */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x51a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Emmitsburg PCH */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x1bcc),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Alder Lake-M */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x54a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Raptor Lake-S CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Meteor Lake-P */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7e24),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Raptor Lake-S */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Rocket Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4c19),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{ 0 },
 };
 
--- linux-ein-5.4.0.orig/drivers/hwtracing/intel_th/sth.c
+++ linux-ein-5.4.0/drivers/hwtracing/intel_th/sth.c
@@ -161,9 +161,7 @@
 {
 	struct sth_device *sth = container_of(stm_data, struct sth_device, stm);
 
-	intel_th_set_output(to_intel_th_device(sth->dev), master);
-
-	return 0;
+	return intel_th_set_output(to_intel_th_device(sth->dev), master);
 }
 
 static int intel_th_sw_init(struct sth_device *sth)
--- linux-ein-5.4.0.orig/drivers/hwtracing/stm/heartbeat.c
+++ linux-ein-5.4.0/drivers/hwtracing/stm/heartbeat.c
@@ -64,7 +64,7 @@
 
 static int stm_heartbeat_init(void)
 {
-	int i, ret = -ENOMEM;
+	int i, ret;
 
 	if (nr_devs < 0 || nr_devs > STM_HEARTBEAT_MAX)
 		return -EINVAL;
@@ -72,8 +72,10 @@
 	for (i = 0; i < nr_devs; i++) {
 		stm_heartbeat[i].data.name =
 			kasprintf(GFP_KERNEL, "heartbeat.%d", i);
-		if (!stm_heartbeat[i].data.name)
+		if (!stm_heartbeat[i].data.name) {
+			ret = -ENOMEM;
 			goto fail_unregister;
+		}
 
 		stm_heartbeat[i].data.nr_chans	= 1;
 		stm_heartbeat[i].data.link	= stm_heartbeat_link;
--- linux-ein-5.4.0.orig/drivers/hwtracing/stm/p_sys-t.c
+++ linux-ein-5.4.0/drivers/hwtracing/stm/p_sys-t.c
@@ -238,7 +238,7 @@
 static inline bool sys_t_need_ts(struct sys_t_output *op)
 {
 	if (op->node.ts_interval &&
-	    time_after(op->ts_jiffies + op->node.ts_interval, jiffies)) {
+	    time_after(jiffies, op->ts_jiffies + op->node.ts_interval)) {
 		op->ts_jiffies = jiffies;
 
 		return true;
@@ -250,8 +250,8 @@
 static bool sys_t_need_clock_sync(struct sys_t_output *op)
 {
 	if (op->node.clocksync_interval &&
-	    time_after(op->clocksync_jiffies + op->node.clocksync_interval,
-		       jiffies)) {
+	    time_after(jiffies,
+		       op->clocksync_jiffies + op->node.clocksync_interval)) {
 		op->clocksync_jiffies = jiffies;
 
 		return true;
--- linux-ein-5.4.0.orig/drivers/hwtracing/stm/policy.c
+++ linux-ein-5.4.0/drivers/hwtracing/stm/policy.c
@@ -345,7 +345,11 @@
 	stm->policy = NULL;
 	policy->stm = NULL;
 
+	/*
+	 * Drop the reference on the protocol driver and lose the link.
+	 */
 	stm_put_protocol(stm->pdrv);
+	stm->pdrv = NULL;
 	stm_put_device(stm);
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/algos/i2c-algo-pca.c
+++ linux-ein-5.4.0/drivers/i2c/algos/i2c-algo-pca.c
@@ -41,8 +41,22 @@
 		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_IPRESET);
 		pca_outw(adap, I2C_PCA_IND, 0xA5);
 		pca_outw(adap, I2C_PCA_IND, 0x5A);
+
+		/*
+		 * After a reset we need to re-apply any configuration
+		 * (calculated in pca_init) to get the bus in a working state.
+		 */
+		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_IMODE);
+		pca_outw(adap, I2C_PCA_IND, adap->bus_settings.mode);
+		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_ISCLL);
+		pca_outw(adap, I2C_PCA_IND, adap->bus_settings.tlow);
+		pca_outw(adap, I2C_PCA_INDPTR, I2C_PCA_ISCLH);
+		pca_outw(adap, I2C_PCA_IND, adap->bus_settings.thi);
+
+		pca_set_con(adap, I2C_PCA_CON_ENSIO);
 	} else {
 		adap->reset_chip(adap->data);
+		pca_set_con(adap, I2C_PCA_CON_ENSIO | adap->bus_settings.clock_freq);
 	}
 }
 
@@ -314,7 +328,8 @@
 			DEB2("BUS ERROR - SDA Stuck low\n");
 			pca_reset(adap);
 			goto out;
-		case 0x90: /* Bus error - SCL stuck low */
+		case 0x78: /* Bus error - SCL stuck low (PCA9665) */
+		case 0x90: /* Bus error - SCL stuck low (PCA9564) */
 			DEB2("BUS ERROR - SCL Stuck low\n");
 			pca_reset(adap);
 			goto out;
@@ -422,13 +437,14 @@
 				" Use the nominal frequency.\n", adap->name);
 		}
 
-		pca_reset(pca_data);
-
 		clock = pca_clock(pca_data);
 		printk(KERN_INFO "%s: Clock frequency is %dkHz\n",
 		     adap->name, freqs[clock]);
 
-		pca_set_con(pca_data, I2C_PCA_CON_ENSIO | clock);
+		/* Store settings as these will be needed when the PCA chip is reset */
+		pca_data->bus_settings.clock_freq = clock;
+
+		pca_reset(pca_data);
 	} else {
 		int clock;
 		int mode;
@@ -495,19 +511,15 @@
 			thi = tlow * min_thi / min_tlow;
 		}
 
+		/* Store settings as these will be needed when the PCA chip is reset */
+		pca_data->bus_settings.mode = mode;
+		pca_data->bus_settings.tlow = tlow;
+		pca_data->bus_settings.thi = thi;
+
 		pca_reset(pca_data);
 
 		printk(KERN_INFO
 		     "%s: Clock frequency is %dHz\n", adap->name, clock * 100);
-
-		pca_outw(pca_data, I2C_PCA_INDPTR, I2C_PCA_IMODE);
-		pca_outw(pca_data, I2C_PCA_IND, mode);
-		pca_outw(pca_data, I2C_PCA_INDPTR, I2C_PCA_ISCLL);
-		pca_outw(pca_data, I2C_PCA_IND, tlow);
-		pca_outw(pca_data, I2C_PCA_INDPTR, I2C_PCA_ISCLH);
-		pca_outw(pca_data, I2C_PCA_IND, thi);
-
-		pca_set_con(pca_data, I2C_PCA_CON_ENSIO);
 	}
 	udelay(500); /* 500 us for oscillator to stabilise */
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/Kconfig
+++ linux-ein-5.4.0/drivers/i2c/busses/Kconfig
@@ -483,7 +483,7 @@
 
 config I2C_CADENCE
 	tristate "Cadence I2C Controller"
-	depends on ARCH_ZYNQ || ARM64 || XTENSA
+	depends on ARCH_ZYNQ || ARM64 || XTENSA || COMPILE_TEST
 	help
 	  Say yes here to select Cadence I2C Host Controller. This controller is
 	  e.g. used by Xilinx Zynq.
@@ -666,6 +666,7 @@
 config I2C_IMX
 	tristate "IMX I2C interface"
 	depends on ARCH_MXC || ARCH_LAYERSCAPE || COLDFIRE
+	select I2C_SLAVE
 	help
 	  Say Y here if you want to use the IIC bus controller on
 	  the Freescale i.MX/MXC, Layerscape or ColdFire processors.
@@ -894,7 +895,7 @@
 
 config I2C_QUP
 	tristate "Qualcomm QUP based I2C controller"
-	depends on ARCH_QCOM
+	depends on ARCH_QCOM || COMPILE_TEST
 	help
 	  If you say yes to this option, support will be included for the
 	  built-in I2C interface on the Qualcomm SoCs.
@@ -1162,6 +1163,7 @@
 	tristate "Renesas R-Car I2C Controller"
 	depends on ARCH_RENESAS || COMPILE_TEST
 	select I2C_SLAVE
+	select RESET_CONTROLLER if ARCH_RCAR_GEN3
 	help
 	  If you say yes to this option, support will be included for the
 	  R-Car I2C controller.
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-altera.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-altera.c
@@ -70,6 +70,7 @@
  * @isr_mask: cached copy of local ISR enables.
  * @isr_status: cached copy of local ISR status.
  * @lock: spinlock for IRQ synchronization.
+ * @isr_mutex: mutex for IRQ thread.
  */
 struct altr_i2c_dev {
 	void __iomem *base;
@@ -86,6 +87,7 @@
 	u32 isr_mask;
 	u32 isr_status;
 	spinlock_t lock;	/* IRQ synchronization */
+	struct mutex isr_mutex;
 };
 
 static void
@@ -171,7 +173,7 @@
 	/* SCL Low Time */
 	writel(t_low, idev->base + ALTR_I2C_SCL_LOW);
 	/* SDA Hold Time, 300ns */
-	writel(div_u64(300 * clk_mhz, 1000), idev->base + ALTR_I2C_SDA_HOLD);
+	writel(3 * clk_mhz / 10, idev->base + ALTR_I2C_SDA_HOLD);
 
 	/* Mask all master interrupt bits */
 	altr_i2c_int_enable(idev, ALTR_I2C_ALL_IRQ, false);
@@ -245,10 +247,11 @@
 	struct altr_i2c_dev *idev = _dev;
 	u32 status = idev->isr_status;
 
+	mutex_lock(&idev->isr_mutex);
 	if (!idev->msg) {
 		dev_warn(idev->dev, "unexpected interrupt\n");
 		altr_i2c_int_clear(idev, ALTR_I2C_ALL_IRQ);
-		return IRQ_HANDLED;
+		goto out;
 	}
 	read = (idev->msg->flags & I2C_M_RD) != 0;
 
@@ -301,6 +304,8 @@
 		complete(&idev->msg_complete);
 		dev_dbg(idev->dev, "Message Complete\n");
 	}
+out:
+	mutex_unlock(&idev->isr_mutex);
 
 	return IRQ_HANDLED;
 }
@@ -312,6 +317,7 @@
 	u32 value;
 	u8 addr = i2c_8bit_addr_from_msg(msg);
 
+	mutex_lock(&idev->isr_mutex);
 	idev->msg = msg;
 	idev->msg_len = msg->len;
 	idev->buf = msg->buf;
@@ -336,6 +342,7 @@
 		altr_i2c_int_enable(idev, imask, true);
 		altr_i2c_fill_tx_fifo(idev);
 	}
+	mutex_unlock(&idev->isr_mutex);
 
 	time_left = wait_for_completion_timeout(&idev->msg_complete,
 						ALTR_I2C_XFER_TIMEOUT);
@@ -384,7 +391,6 @@
 	struct altr_i2c_dev *idev = NULL;
 	struct resource *res;
 	int irq, ret;
-	u32 val;
 
 	idev = devm_kzalloc(&pdev->dev, sizeof(*idev), GFP_KERNEL);
 	if (!idev)
@@ -410,18 +416,19 @@
 	idev->dev = &pdev->dev;
 	init_completion(&idev->msg_complete);
 	spin_lock_init(&idev->lock);
+	mutex_init(&idev->isr_mutex);
 
-	val = device_property_read_u32(idev->dev, "fifo-size",
+	ret = device_property_read_u32(idev->dev, "fifo-size",
 				       &idev->fifo_size);
-	if (val) {
+	if (ret) {
 		dev_err(&pdev->dev, "FIFO size set to default of %d\n",
 			ALTR_I2C_DFLT_FIFO_SZ);
 		idev->fifo_size = ALTR_I2C_DFLT_FIFO_SZ;
 	}
 
-	val = device_property_read_u32(idev->dev, "clock-frequency",
+	ret = device_property_read_u32(idev->dev, "clock-frequency",
 				       &idev->bus_clk_rate);
-	if (val) {
+	if (ret) {
 		dev_err(&pdev->dev, "Default to 100kHz\n");
 		idev->bus_clk_rate = 100000;	/* default clock rate */
 	}
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-amd-mp2-pci.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-amd-mp2-pci.c
@@ -349,12 +349,12 @@
 	if (!privdata)
 		return -ENOMEM;
 
+	privdata->pci_dev = pci_dev;
 	rc = amd_mp2_pci_init(privdata, pci_dev);
 	if (rc)
 		return rc;
 
 	mutex_init(&privdata->c2p_lock);
-	privdata->pci_dev = pci_dev;
 
 	pm_runtime_set_autosuspend_delay(&pci_dev->dev, 1000);
 	pm_runtime_use_autosuspend(&pci_dev->dev);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-aspeed.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-aspeed.c
@@ -69,6 +69,7 @@
  * These share bit definitions, so use the same values for the enable &
  * status bits.
  */
+#define ASPEED_I2CD_INTR_RECV_MASK			0xf000ffff
 #define ASPEED_I2CD_INTR_SDA_DL_TIMEOUT			BIT(14)
 #define ASPEED_I2CD_INTR_BUS_RECOVER_DONE		BIT(13)
 #define ASPEED_I2CD_INTR_SLAVE_MATCH			BIT(7)
@@ -603,6 +604,8 @@
 	/* Ack all interrupts except for Rx done */
 	writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE,
 	       bus->base + ASPEED_I2C_INTR_STS_REG);
+	readl(bus->base + ASPEED_I2C_INTR_STS_REG);
+	irq_received &= ASPEED_I2CD_INTR_RECV_MASK;
 	irq_remaining = irq_received;
 
 #if IS_ENABLED(CONFIG_I2C_SLAVE)
@@ -645,9 +648,11 @@
 			irq_received, irq_handled);
 
 	/* Ack Rx done */
-	if (irq_received & ASPEED_I2CD_INTR_RX_DONE)
+	if (irq_received & ASPEED_I2CD_INTR_RX_DONE) {
 		writel(ASPEED_I2CD_INTR_RX_DONE,
 		       bus->base + ASPEED_I2C_INTR_STS_REG);
+		readl(bus->base + ASPEED_I2C_INTR_STS_REG);
+	}
 	spin_unlock(&bus->lock);
 	return irq_remaining ? IRQ_NONE : IRQ_HANDLED;
 }
@@ -688,13 +693,16 @@
 
 	if (time_left == 0) {
 		/*
-		 * If timed out and bus is still busy in a multi master
-		 * environment, attempt recovery at here.
+		 * In a multi-master setup, if a timeout occurs, attempt
+		 * recovery. But if the bus is idle, we still need to reset the
+		 * i2c controller to clear the remaining interrupts.
 		 */
 		if (bus->multi_master &&
 		    (readl(bus->base + ASPEED_I2C_CMD_REG) &
 		     ASPEED_I2CD_BUS_BUSY_STS))
 			aspeed_i2c_recover_bus(bus);
+		else
+			aspeed_i2c_reset(bus);
 
 		/*
 		 * If timed out and the state is still pending, drop the pending
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-at91-master.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-at91-master.c
@@ -609,6 +609,7 @@
 	unsigned int_addr_flag = 0;
 	struct i2c_msg *m_start = msg;
 	bool is_read;
+	u8 *dma_buf = NULL;
 
 	dev_dbg(&adap->dev, "at91_xfer: processing %d messages:\n", num);
 
@@ -656,7 +657,17 @@
 	dev->msg = m_start;
 	dev->recv_len_abort = false;
 
+	if (dev->use_dma) {
+		dma_buf = i2c_get_dma_safe_msg_buf(m_start, 1);
+		if (!dma_buf) {
+			ret = -ENOMEM;
+			goto out;
+		}
+		dev->buf = dma_buf;
+	}
+
 	ret = at91_do_twi_transfer(dev);
+	i2c_put_dma_safe_msg_buf(dma_buf, m_start, !ret);
 
 	ret = (ret < 0) ? ret : num;
 out:
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-bcm-iproc.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-bcm-iproc.c
@@ -157,6 +157,11 @@
 
 #define IE_S_ALL_INTERRUPT_SHIFT     21
 #define IE_S_ALL_INTERRUPT_MASK      0x3f
+/*
+ * It takes ~18us to reading 10bytes of data, hence to keep tasklet
+ * running for less time, max slave read per tasklet is set to 10 bytes.
+ */
+#define MAX_SLAVE_RX_PER_INT         10
 
 enum i2c_slave_read_status {
 	I2C_SLAVE_RX_FIFO_EMPTY = 0,
@@ -203,8 +208,18 @@
 	/* bytes that have been read */
 	unsigned int rx_bytes;
 	unsigned int thld_bytes;
+
+	bool slave_rx_only;
+	bool rx_start_rcvd;
+	bool slave_read_complete;
+	u32 tx_underrun;
+	u32 slave_int_mask;
+	struct tasklet_struct slave_rx_tasklet;
 };
 
+/* tasklet to process slave rx data */
+static void slave_rx_tasklet_fn(unsigned long);
+
 /*
  * Can be expanded in the future if more interrupt status bits are utilized
  */
@@ -213,7 +228,8 @@
 
 #define ISR_MASK_SLAVE (BIT(IS_S_START_BUSY_SHIFT)\
 		| BIT(IS_S_RX_EVENT_SHIFT) | BIT(IS_S_RD_EVENT_SHIFT)\
-		| BIT(IS_S_TX_UNDERRUN_SHIFT))
+		| BIT(IS_S_TX_UNDERRUN_SHIFT) | BIT(IS_S_RX_FIFO_FULL_SHIFT)\
+		| BIT(IS_S_RX_THLD_SHIFT))
 
 static int bcm_iproc_i2c_reg_slave(struct i2c_client *slave);
 static int bcm_iproc_i2c_unreg_slave(struct i2c_client *slave);
@@ -224,13 +240,14 @@
 				   u32 offset)
 {
 	u32 val;
+	unsigned long flags;
 
 	if (iproc_i2c->idm_base) {
-		spin_lock(&iproc_i2c->idm_lock);
+		spin_lock_irqsave(&iproc_i2c->idm_lock, flags);
 		writel(iproc_i2c->ape_addr_mask,
 		       iproc_i2c->idm_base + IDM_CTRL_DIRECT_OFFSET);
 		val = readl(iproc_i2c->base + offset);
-		spin_unlock(&iproc_i2c->idm_lock);
+		spin_unlock_irqrestore(&iproc_i2c->idm_lock, flags);
 	} else {
 		val = readl(iproc_i2c->base + offset);
 	}
@@ -241,12 +258,14 @@
 static inline void iproc_i2c_wr_reg(struct bcm_iproc_i2c_dev *iproc_i2c,
 				    u32 offset, u32 val)
 {
+	unsigned long flags;
+
 	if (iproc_i2c->idm_base) {
-		spin_lock(&iproc_i2c->idm_lock);
+		spin_lock_irqsave(&iproc_i2c->idm_lock, flags);
 		writel(iproc_i2c->ape_addr_mask,
 		       iproc_i2c->idm_base + IDM_CTRL_DIRECT_OFFSET);
 		writel(val, iproc_i2c->base + offset);
-		spin_unlock(&iproc_i2c->idm_lock);
+		spin_unlock_irqrestore(&iproc_i2c->idm_lock, flags);
 	} else {
 		writel(val, iproc_i2c->base + offset);
 	}
@@ -257,6 +276,7 @@
 {
 	u32 val;
 
+	iproc_i2c->tx_underrun = 0;
 	if (need_reset) {
 		/* put controller in reset */
 		val = iproc_i2c_rd_reg(iproc_i2c, CFG_OFFSET);
@@ -293,8 +313,11 @@
 
 	/* Enable interrupt register to indicate a valid byte in receive fifo */
 	val = BIT(IE_S_RX_EVENT_SHIFT);
+	/* Enable interrupt register to indicate a Master read transaction */
+	val |= BIT(IE_S_RD_EVENT_SHIFT);
 	/* Enable interrupt register for the Slave BUSY command */
 	val |= BIT(IE_S_START_BUSY_SHIFT);
+	iproc_i2c->slave_int_mask = val;
 	iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val);
 }
 
@@ -319,73 +342,176 @@
 	}
 }
 
-static bool bcm_iproc_i2c_slave_isr(struct bcm_iproc_i2c_dev *iproc_i2c,
-				    u32 status)
+static void bcm_iproc_i2c_slave_read(struct bcm_iproc_i2c_dev *iproc_i2c)
 {
+	u8 rx_data, rx_status;
+	u32 rx_bytes = 0;
 	u32 val;
-	u8 value, rx_status;
 
-	/* Slave RX byte receive */
-	if (status & BIT(IS_S_RX_EVENT_SHIFT)) {
+	while (rx_bytes < MAX_SLAVE_RX_PER_INT) {
 		val = iproc_i2c_rd_reg(iproc_i2c, S_RX_OFFSET);
 		rx_status = (val >> S_RX_STATUS_SHIFT) & S_RX_STATUS_MASK;
-		if (rx_status == I2C_SLAVE_RX_START) {
-			/* Start of SMBUS for Master write */
-			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_WRITE_REQUESTED, &value);
+		rx_data = ((val >> S_RX_DATA_SHIFT) & S_RX_DATA_MASK);
 
-			val = iproc_i2c_rd_reg(iproc_i2c, S_RX_OFFSET);
-			value = (u8)((val >> S_RX_DATA_SHIFT) & S_RX_DATA_MASK);
+		if (rx_status == I2C_SLAVE_RX_START) {
+			/* Start of SMBUS Master write */
 			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_WRITE_RECEIVED, &value);
-		} else if (status & BIT(IS_S_RD_EVENT_SHIFT)) {
-			/* Start of SMBUS for Master Read */
+					I2C_SLAVE_WRITE_REQUESTED, &rx_data);
+			iproc_i2c->rx_start_rcvd = true;
+			iproc_i2c->slave_read_complete = false;
+		} else if (rx_status == I2C_SLAVE_RX_DATA &&
+			   iproc_i2c->rx_start_rcvd) {
+			/* Middle of SMBUS Master write */
 			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_READ_REQUESTED, &value);
-			iproc_i2c_wr_reg(iproc_i2c, S_TX_OFFSET, value);
+					I2C_SLAVE_WRITE_RECEIVED, &rx_data);
+		} else if (rx_status == I2C_SLAVE_RX_END &&
+			   iproc_i2c->rx_start_rcvd) {
+			/* End of SMBUS Master write */
+			if (iproc_i2c->slave_rx_only)
+				i2c_slave_event(iproc_i2c->slave,
+						I2C_SLAVE_WRITE_RECEIVED,
+						&rx_data);
+
+			i2c_slave_event(iproc_i2c->slave, I2C_SLAVE_STOP,
+					&rx_data);
+		} else if (rx_status == I2C_SLAVE_RX_FIFO_EMPTY) {
+			iproc_i2c->rx_start_rcvd = false;
+			iproc_i2c->slave_read_complete = true;
+			break;
+		}
 
-			val = BIT(S_CMD_START_BUSY_SHIFT);
-			iproc_i2c_wr_reg(iproc_i2c, S_CMD_OFFSET, val);
+		rx_bytes++;
+	}
+}
 
-			/*
-			 * Enable interrupt for TX FIFO becomes empty and
-			 * less than PKT_LENGTH bytes were output on the SMBUS
-			 */
-			val = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET);
-			val |= BIT(IE_S_TX_UNDERRUN_SHIFT);
-			iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val);
-		} else {
-			/* Master write other than start */
-			value = (u8)((val >> S_RX_DATA_SHIFT) & S_RX_DATA_MASK);
+static void slave_rx_tasklet_fn(unsigned long data)
+{
+	struct bcm_iproc_i2c_dev *iproc_i2c = (struct bcm_iproc_i2c_dev *)data;
+	u32 int_clr;
+
+	bcm_iproc_i2c_slave_read(iproc_i2c);
+
+	/* clear pending IS_S_RX_EVENT_SHIFT interrupt */
+	int_clr = BIT(IS_S_RX_EVENT_SHIFT);
+
+	if (!iproc_i2c->slave_rx_only && iproc_i2c->slave_read_complete) {
+		/*
+		 * In case of single byte master-read request,
+		 * IS_S_TX_UNDERRUN_SHIFT event is generated before
+		 * IS_S_START_BUSY_SHIFT event. Hence start slave data send
+		 * from first IS_S_TX_UNDERRUN_SHIFT event.
+		 *
+		 * This means don't send any data from slave when
+		 * IS_S_RD_EVENT_SHIFT event is generated else it will increment
+		 * eeprom or other backend slave driver read pointer twice.
+		 */
+		iproc_i2c->tx_underrun = 0;
+		iproc_i2c->slave_int_mask |= BIT(IE_S_TX_UNDERRUN_SHIFT);
+
+		/* clear IS_S_RD_EVENT_SHIFT interrupt */
+		int_clr |= BIT(IS_S_RD_EVENT_SHIFT);
+	}
+
+	/* clear slave interrupt */
+	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, int_clr);
+	/* enable slave interrupts */
+	iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, iproc_i2c->slave_int_mask);
+}
+
+static bool bcm_iproc_i2c_slave_isr(struct bcm_iproc_i2c_dev *iproc_i2c,
+				    u32 status)
+{
+	u32 val;
+	u8 value;
+
+	/*
+	 * Slave events in case of master-write, master-write-read and,
+	 * master-read
+	 *
+	 * Master-write     : only IS_S_RX_EVENT_SHIFT event
+	 * Master-write-read: both IS_S_RX_EVENT_SHIFT and IS_S_RD_EVENT_SHIFT
+	 *                    events
+	 * Master-read      : both IS_S_RX_EVENT_SHIFT and IS_S_RD_EVENT_SHIFT
+	 *                    events or only IS_S_RD_EVENT_SHIFT
+	 */
+	if (status & BIT(IS_S_RX_EVENT_SHIFT) ||
+	    status & BIT(IS_S_RD_EVENT_SHIFT)) {
+		/* disable slave interrupts */
+		val = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET);
+		val &= ~iproc_i2c->slave_int_mask;
+		iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val);
+
+		if (status & BIT(IS_S_RD_EVENT_SHIFT))
+			/* Master-write-read request */
+			iproc_i2c->slave_rx_only = false;
+		else
+			/* Master-write request only */
+			iproc_i2c->slave_rx_only = true;
+
+		/* schedule tasklet to read data later */
+		tasklet_schedule(&iproc_i2c->slave_rx_tasklet);
+
+		/* clear only IS_S_RX_EVENT_SHIFT interrupt */
+		iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET,
+				 BIT(IS_S_RX_EVENT_SHIFT));
+	}
+
+	if (status & BIT(IS_S_TX_UNDERRUN_SHIFT)) {
+		iproc_i2c->tx_underrun++;
+		if (iproc_i2c->tx_underrun == 1)
+			/* Start of SMBUS for Master Read */
 			i2c_slave_event(iproc_i2c->slave,
-					I2C_SLAVE_WRITE_RECEIVED, &value);
-		}
-	} else if (status & BIT(IS_S_TX_UNDERRUN_SHIFT)) {
-		/* Master read other than start */
-		i2c_slave_event(iproc_i2c->slave,
-				I2C_SLAVE_READ_PROCESSED, &value);
+					I2C_SLAVE_READ_REQUESTED,
+					&value);
+		else
+			/* Master read other than start */
+			i2c_slave_event(iproc_i2c->slave,
+					I2C_SLAVE_READ_PROCESSED,
+					&value);
 
 		iproc_i2c_wr_reg(iproc_i2c, S_TX_OFFSET, value);
+		/* start transfer */
 		val = BIT(S_CMD_START_BUSY_SHIFT);
 		iproc_i2c_wr_reg(iproc_i2c, S_CMD_OFFSET, val);
+
+		/* clear interrupt */
+		iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET,
+				 BIT(IS_S_TX_UNDERRUN_SHIFT));
 	}
 
-	/* Stop */
+	/* Stop received from master in case of master read transaction */
 	if (status & BIT(IS_S_START_BUSY_SHIFT)) {
-		i2c_slave_event(iproc_i2c->slave, I2C_SLAVE_STOP, &value);
 		/*
 		 * Enable interrupt for TX FIFO becomes empty and
 		 * less than PKT_LENGTH bytes were output on the SMBUS
 		 */
-		val = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET);
-		val &= ~BIT(IE_S_TX_UNDERRUN_SHIFT);
-		iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val);
+		iproc_i2c->slave_int_mask &= ~BIT(IE_S_TX_UNDERRUN_SHIFT);
+		iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET,
+				 iproc_i2c->slave_int_mask);
+
+		/* End of SMBUS for Master Read */
+		val = BIT(S_TX_WR_STATUS_SHIFT);
+		iproc_i2c_wr_reg(iproc_i2c, S_TX_OFFSET, val);
+
+		val = BIT(S_CMD_START_BUSY_SHIFT);
+		iproc_i2c_wr_reg(iproc_i2c, S_CMD_OFFSET, val);
+
+		/* flush TX FIFOs */
+		val = iproc_i2c_rd_reg(iproc_i2c, S_FIFO_CTRL_OFFSET);
+		val |= (BIT(S_FIFO_TX_FLUSH_SHIFT));
+		iproc_i2c_wr_reg(iproc_i2c, S_FIFO_CTRL_OFFSET, val);
+
+		i2c_slave_event(iproc_i2c->slave, I2C_SLAVE_STOP, &value);
+
+		/* clear interrupt */
+		iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET,
+				 BIT(IS_S_START_BUSY_SHIFT));
 	}
 
-	/* clear interrupt status */
-	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, status);
+	/* check slave transmit status only if slave is transmitting */
+	if (!iproc_i2c->slave_rx_only)
+		bcm_iproc_i2c_check_slave_status(iproc_i2c);
 
-	bcm_iproc_i2c_check_slave_status(iproc_i2c);
 	return true;
 }
 
@@ -500,12 +626,17 @@
 static irqreturn_t bcm_iproc_i2c_isr(int irq, void *data)
 {
 	struct bcm_iproc_i2c_dev *iproc_i2c = data;
-	u32 status = iproc_i2c_rd_reg(iproc_i2c, IS_OFFSET);
+	u32 slave_status;
+	u32 status;
 	bool ret;
-	u32 sl_status = status & ISR_MASK_SLAVE;
 
-	if (sl_status) {
-		ret = bcm_iproc_i2c_slave_isr(iproc_i2c, sl_status);
+	status = iproc_i2c_rd_reg(iproc_i2c, IS_OFFSET);
+	/* process only slave interrupt which are enabled */
+	slave_status = status & iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET) &
+		       ISR_MASK_SLAVE;
+
+	if (slave_status) {
+		ret = bcm_iproc_i2c_slave_isr(iproc_i2c, slave_status);
 		if (ret)
 			return IRQ_HANDLED;
 		else
@@ -1022,6 +1153,10 @@
 		return -EAFNOSUPPORT;
 
 	iproc_i2c->slave = slave;
+
+	tasklet_init(&iproc_i2c->slave_rx_tasklet, slave_rx_tasklet_fn,
+		     (unsigned long)iproc_i2c);
+
 	bcm_iproc_i2c_slave_init(iproc_i2c, false);
 	return 0;
 }
@@ -1034,7 +1169,7 @@
 	if (!iproc_i2c->slave)
 		return -EINVAL;
 
-	iproc_i2c->slave = NULL;
+	disable_irq(iproc_i2c->irq);
 
 	/* disable all slave interrupts */
 	tmp = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET);
@@ -1042,11 +1177,24 @@
 			IE_S_ALL_INTERRUPT_SHIFT);
 	iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, tmp);
 
+	tasklet_kill(&iproc_i2c->slave_rx_tasklet);
+
 	/* Erase the slave address programmed */
 	tmp = iproc_i2c_rd_reg(iproc_i2c, S_CFG_SMBUS_ADDR_OFFSET);
 	tmp &= ~BIT(S_CFG_EN_NIC_SMB_ADDR3_SHIFT);
 	iproc_i2c_wr_reg(iproc_i2c, S_CFG_SMBUS_ADDR_OFFSET, tmp);
 
+	/* flush TX/RX FIFOs */
+	tmp = (BIT(S_FIFO_RX_FLUSH_SHIFT) | BIT(S_FIFO_TX_FLUSH_SHIFT));
+	iproc_i2c_wr_reg(iproc_i2c, S_FIFO_CTRL_OFFSET, tmp);
+
+	/* clear all pending slave interrupts */
+	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, ISR_MASK_SLAVE);
+
+	iproc_i2c->slave = NULL;
+
+	enable_irq(iproc_i2c->irq);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-bcm2835.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-bcm2835.c
@@ -23,6 +23,11 @@
 #define BCM2835_I2C_FIFO	0x10
 #define BCM2835_I2C_DIV		0x14
 #define BCM2835_I2C_DEL		0x18
+/*
+ * 16-bit field for the number of SCL cycles to wait after rising SCL
+ * before deciding the slave is not responding. 0 disables the
+ * timeout detection.
+ */
 #define BCM2835_I2C_CLKT	0x1c
 
 #define BCM2835_I2C_C_READ	BIT(0)
@@ -58,6 +63,7 @@
 	struct i2c_adapter adapter;
 	struct completion completion;
 	struct i2c_msg *curr_msg;
+	struct clk *bus_clk;
 	int num_msgs;
 	u32 msg_err;
 	u8 *msg_buf;
@@ -404,7 +410,6 @@
 	struct resource *mem, *irq;
 	int ret;
 	struct i2c_adapter *adap;
-	struct clk *bus_clk;
 	struct clk *mclk;
 	u32 bus_clk_rate;
 
@@ -427,11 +432,11 @@
 		return PTR_ERR(mclk);
 	}
 
-	bus_clk = bcm2835_i2c_register_div(&pdev->dev, mclk, i2c_dev);
+	i2c_dev->bus_clk = bcm2835_i2c_register_div(&pdev->dev, mclk, i2c_dev);
 
-	if (IS_ERR(bus_clk)) {
+	if (IS_ERR(i2c_dev->bus_clk)) {
 		dev_err(&pdev->dev, "Could not register clock\n");
-		return PTR_ERR(bus_clk);
+		return PTR_ERR(i2c_dev->bus_clk);
 	}
 
 	ret = of_property_read_u32(pdev->dev.of_node, "clock-frequency",
@@ -442,13 +447,13 @@
 		bus_clk_rate = 100000;
 	}
 
-	ret = clk_set_rate_exclusive(bus_clk, bus_clk_rate);
+	ret = clk_set_rate_exclusive(i2c_dev->bus_clk, bus_clk_rate);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Could not set clock frequency\n");
 		return ret;
 	}
 
-	ret = clk_prepare_enable(bus_clk);
+	ret = clk_prepare_enable(i2c_dev->bus_clk);
 	if (ret) {
 		dev_err(&pdev->dev, "Couldn't prepare clock");
 		return ret;
@@ -479,6 +484,12 @@
 	adap->dev.of_node = pdev->dev.of_node;
 	adap->quirks = of_device_get_match_data(&pdev->dev);
 
+	/*
+	 * Disable the hardware clock stretching timeout. SMBUS
+	 * specifies a limit for how long the device can stretch the
+	 * clock, but core I2C doesn't.
+	 */
+	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_CLKT, 0);
 	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, 0);
 
 	ret = i2c_add_adapter(adap);
@@ -491,10 +502,9 @@
 static int bcm2835_i2c_remove(struct platform_device *pdev)
 {
 	struct bcm2835_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
-	struct clk *bus_clk = devm_clk_get(i2c_dev->dev, "div");
 
-	clk_rate_exclusive_put(bus_clk);
-	clk_disable_unprepare(bus_clk);
+	clk_rate_exclusive_put(i2c_dev->bus_clk);
+	clk_disable_unprepare(i2c_dev->bus_clk);
 
 	free_irq(i2c_dev->irq, i2c_dev);
 	i2c_del_adapter(&i2c_dev->adapter);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-brcmstb.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-brcmstb.c
@@ -316,7 +316,7 @@
 		goto cmd_out;
 	}
 
-	if ((CMD_RD || CMD_WR) &&
+	if ((cmd == CMD_RD || cmd == CMD_WR) &&
 	    bsc_readl(dev, iic_enable) & BSC_IIC_EN_NOACK_MASK) {
 		rc = -EREMOTEIO;
 		dev_dbg(dev->device, "controller received NOACK intr for %s\n",
@@ -640,7 +640,7 @@
 
 	/* set the data in/out register size for compatible SoCs */
 	if (of_device_is_compatible(dev->device->of_node,
-				    "brcmstb,brcmper-i2c"))
+				    "brcm,brcmper-i2c"))
 		dev->data_regsz = sizeof(u8);
 	else
 		dev->data_regsz = sizeof(u32);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-cadence.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-cadence.c
@@ -198,9 +198,9 @@
  */
 static irqreturn_t cdns_i2c_isr(int irq, void *ptr)
 {
-	unsigned int isr_status, avail_bytes, updatetx;
+	unsigned int isr_status, avail_bytes;
 	unsigned int bytes_to_send;
-	bool hold_quirk;
+	bool updatetx;
 	struct cdns_i2c *id = ptr;
 	/* Signal completion only after everything is updated */
 	int done_flag = 0;
@@ -219,11 +219,7 @@
 	 * Check if transfer size register needs to be updated again for a
 	 * large data receive operation.
 	 */
-	updatetx = 0;
-	if (id->recv_count > id->curr_recv_count)
-		updatetx = 1;
-
-	hold_quirk = (id->quirks & CDNS_I2C_BROKEN_HOLD_BIT) && updatetx;
+	updatetx = id->recv_count > id->curr_recv_count;
 
 	/* When receiving, handle data interrupt and completion interrupt */
 	if (id->p_recv_buf &&
@@ -246,7 +242,7 @@
 			id->recv_count--;
 			id->curr_recv_count--;
 
-			if (cdns_is_holdquirk(id, hold_quirk))
+			if (cdns_is_holdquirk(id, updatetx))
 				break;
 		}
 
@@ -257,7 +253,7 @@
 		 * maintain transfer size non-zero while performing a large
 		 * receive operation.
 		 */
-		if (cdns_is_holdquirk(id, hold_quirk)) {
+		if (cdns_is_holdquirk(id, updatetx)) {
 			/* wait while fifo is full */
 			while (cdns_i2c_readreg(CDNS_I2C_XFER_SIZE_OFFSET) !=
 			       (id->curr_recv_count - CDNS_I2C_FIFO_DEPTH))
@@ -279,22 +275,6 @@
 						  CDNS_I2C_XFER_SIZE_OFFSET);
 				id->curr_recv_count = id->recv_count;
 			}
-		} else if (id->recv_count && !hold_quirk &&
-						!id->curr_recv_count) {
-
-			/* Set the slave address in address register*/
-			cdns_i2c_writereg(id->p_msg->addr & CDNS_I2C_ADDR_MASK,
-						CDNS_I2C_ADDR_OFFSET);
-
-			if (id->recv_count > CDNS_I2C_TRANSFER_SIZE) {
-				cdns_i2c_writereg(CDNS_I2C_TRANSFER_SIZE,
-						CDNS_I2C_XFER_SIZE_OFFSET);
-				id->curr_recv_count = CDNS_I2C_TRANSFER_SIZE;
-			} else {
-				cdns_i2c_writereg(id->recv_count,
-						CDNS_I2C_XFER_SIZE_OFFSET);
-				id->curr_recv_count = id->recv_count;
-			}
 		}
 
 		/* Clear hold (if not repeated start) and signal completion */
@@ -368,8 +348,13 @@
 	ctrl_reg = cdns_i2c_readreg(CDNS_I2C_CR_OFFSET);
 	ctrl_reg |= CDNS_I2C_CR_RW | CDNS_I2C_CR_CLR_FIFO;
 
+	/*
+	 * Receive up to I2C_SMBUS_BLOCK_MAX data bytes, plus one message length
+	 * byte, plus one checksum byte if PEC is enabled. p_msg->len will be 2 if
+	 * PEC is enabled, otherwise 1.
+	 */
 	if (id->p_msg->flags & I2C_M_RECV_LEN)
-		id->recv_count = I2C_SMBUS_BLOCK_MAX + 1;
+		id->recv_count = I2C_SMBUS_BLOCK_MAX + id->p_msg->len;
 
 	id->curr_recv_count = id->recv_count;
 
@@ -377,10 +362,8 @@
 	 * Check for the message size against FIFO depth and set the
 	 * 'hold bus' bit if it is greater than FIFO depth.
 	 */
-	if ((id->recv_count > CDNS_I2C_FIFO_DEPTH)  || id->bus_hold_flag)
+	if (id->recv_count > CDNS_I2C_FIFO_DEPTH)
 		ctrl_reg |= CDNS_I2C_CR_HOLD;
-	else
-		ctrl_reg = ctrl_reg & ~CDNS_I2C_CR_HOLD;
 
 	cdns_i2c_writereg(ctrl_reg, CDNS_I2C_CR_OFFSET);
 
@@ -437,11 +420,8 @@
 	 * Check for the message size against FIFO depth and set the
 	 * 'hold bus' bit if it is greater than FIFO depth.
 	 */
-	if ((id->send_count > CDNS_I2C_FIFO_DEPTH) || id->bus_hold_flag)
+	if (id->send_count > CDNS_I2C_FIFO_DEPTH)
 		ctrl_reg |= CDNS_I2C_CR_HOLD;
-	else
-		ctrl_reg = ctrl_reg & ~CDNS_I2C_CR_HOLD;
-
 	cdns_i2c_writereg(ctrl_reg, CDNS_I2C_CR_OFFSET);
 
 	/* Clear the interrupts in interrupt status register. */
@@ -511,7 +491,7 @@
 static int cdns_i2c_process_msg(struct cdns_i2c *id, struct i2c_msg *msg,
 		struct i2c_adapter *adap)
 {
-	unsigned long time_left;
+	unsigned long time_left, msg_timeout;
 	u32 reg;
 
 	id->p_msg = msg;
@@ -536,8 +516,16 @@
 	else
 		cdns_i2c_msend(id);
 
+	/* Minimal time to execute this message */
+	msg_timeout = msecs_to_jiffies((1000 * msg->len * BITS_PER_BYTE) / id->i2c_clk);
+	/* Plus some wiggle room */
+	msg_timeout += msecs_to_jiffies(500);
+
+	if (msg_timeout < adap->timeout)
+		msg_timeout = adap->timeout;
+
 	/* Wait for the signal of completion */
-	time_left = wait_for_completion_timeout(&id->xfer_done, adap->timeout);
+	time_left = wait_for_completion_timeout(&id->xfer_done, msg_timeout);
 	if (time_left == 0) {
 		cdns_i2c_master_reset(adap);
 		dev_err(id->adap.dev.parent,
@@ -552,6 +540,9 @@
 	if (id->err_status & CDNS_I2C_IXR_ARB_LOST)
 		return -EAGAIN;
 
+	if (msg->flags & I2C_M_RECV_LEN)
+		msg->len += min_t(unsigned int, msg->buf[0], I2C_SMBUS_BLOCK_MAX);
+
 	return 0;
 }
 
@@ -906,7 +897,10 @@
 	if (IS_ERR(id->membase))
 		return PTR_ERR(id->membase);
 
-	id->irq = platform_get_irq(pdev, 0);
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		return ret;
+	id->irq = ret;
 
 	id->adap.owner = THIS_MODULE;
 	id->adap.dev.of_node = pdev->dev.of_node;
@@ -979,6 +973,7 @@
 	return 0;
 
 err_clk_dis:
+	clk_notifier_unregister(id->clk, &id->clk_rate_change_nb);
 	clk_disable_unprepare(id->clk);
 	pm_runtime_set_suspended(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-cbus-gpio.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-cbus-gpio.c
@@ -195,8 +195,9 @@
 }
 
 static const struct i2c_algorithm cbus_i2c_algo = {
-	.smbus_xfer	= cbus_i2c_smbus_xfer,
-	.functionality	= cbus_i2c_func,
+	.smbus_xfer		= cbus_i2c_smbus_xfer,
+	.smbus_xfer_atomic	= cbus_i2c_smbus_xfer,
+	.functionality		= cbus_i2c_func,
 };
 
 static int cbus_i2c_remove(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-cpm.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-cpm.c
@@ -65,6 +65,9 @@
 	char    res1[4];	/* Reserved */
 	ushort  rpbase;		/* Relocation pointer */
 	char    res2[2];	/* Reserved */
+	/* The following elements are only for CPM2 */
+	char    res3[4];	/* Reserved */
+	uint    sdmatmp;	/* Internal */
 };
 
 #define I2COM_START	0x80
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-designware-common.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-designware-common.c
@@ -253,9 +253,6 @@
 {
 	int ret;
 
-	if (IS_ERR(dev->clk))
-		return PTR_ERR(dev->clk);
-
 	if (prepare) {
 		/* Optional interface clock */
 		ret = clk_prepare_enable(dev->pclk);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -37,10 +37,10 @@
 };
 
 struct dw_scl_sda_cfg {
-	u32 ss_hcnt;
-	u32 fs_hcnt;
-	u32 ss_lcnt;
-	u32 fs_lcnt;
+	u16 ss_hcnt;
+	u16 fs_hcnt;
+	u16 ss_lcnt;
+	u16 fs_lcnt;
 	u32 sda_hold;
 };
 
@@ -313,6 +313,7 @@
 	pm_runtime_get_noresume(&pdev->dev);
 
 	i2c_del_adapter(&dev->adapter);
+	devm_free_irq(&pdev->dev, dev->irq, dev);
 	pci_free_irq_vectors(pdev);
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-designware-platdrv.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -349,8 +349,17 @@
 		goto exit_reset;
 	}
 
-	dev->clk = devm_clk_get(&pdev->dev, NULL);
-	if (!i2c_dw_prepare_clk(dev, true)) {
+	dev->clk = devm_clk_get_optional(&pdev->dev, NULL);
+	if (IS_ERR(dev->clk)) {
+		ret = PTR_ERR(dev->clk);
+		goto exit_reset;
+	}
+
+	ret = i2c_dw_prepare_clk(dev, true);
+	if (ret)
+		goto exit_reset;
+
+	if (dev->clk) {
 		u64 clk_khz;
 
 		dev->get_clk_rate_khz = i2c_dw_get_clk_rate_khz;
@@ -370,10 +379,16 @@
 	adap->dev.of_node = pdev->dev.of_node;
 	adap->nr = -1;
 
-	dev_pm_set_driver_flags(&pdev->dev,
-				DPM_FLAG_SMART_PREPARE |
-				DPM_FLAG_SMART_SUSPEND |
-				DPM_FLAG_LEAVE_SUSPENDED);
+	if (dev->flags & ACCESS_NO_IRQ_SUSPEND) {
+		dev_pm_set_driver_flags(&pdev->dev,
+					DPM_FLAG_SMART_PREPARE |
+					DPM_FLAG_LEAVE_SUSPENDED);
+	} else {
+		dev_pm_set_driver_flags(&pdev->dev,
+					DPM_FLAG_SMART_PREPARE |
+					DPM_FLAG_SMART_SUSPEND |
+					DPM_FLAG_LEAVE_SUSPENDED);
+	}
 
 	/* The code below assumes runtime PM to be disabled. */
 	WARN_ON(pm_runtime_enabled(&pdev->dev));
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-eg20t.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-eg20t.c
@@ -180,6 +180,7 @@
 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_I2C), 1, },
 	{0,}
 };
+MODULE_DEVICE_TABLE(pci, pch_pcidev_id);
 
 static irqreturn_t pch_i2c_handler(int irq, void *pData);
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-emev2.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-emev2.c
@@ -397,7 +397,10 @@
 
 	em_i2c_reset(&priv->adap);
 
-	priv->irq = platform_get_irq(pdev, 0);
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		goto err_clk;
+	priv->irq = ret;
 	ret = devm_request_irq(&pdev->dev, priv->irq, em_i2c_irq_handler, 0,
 				"em_i2c", priv);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-fsi.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-fsi.c
@@ -98,7 +98,7 @@
 #define I2C_STAT_DAT_REQ	BIT(25)
 #define I2C_STAT_CMD_COMP	BIT(24)
 #define I2C_STAT_STOP_ERR	BIT(23)
-#define I2C_STAT_MAX_PORT	GENMASK(19, 16)
+#define I2C_STAT_MAX_PORT	GENMASK(22, 16)
 #define I2C_STAT_ANY_INT	BIT(15)
 #define I2C_STAT_SCL_IN		BIT(11)
 #define I2C_STAT_SDA_IN		BIT(10)
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-gpio.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-gpio.c
@@ -348,7 +348,7 @@
 	if (ret == -ENOENT)
 		retdesc = ERR_PTR(-EPROBE_DEFER);
 
-	if (ret != -EPROBE_DEFER)
+	if (PTR_ERR(retdesc) != -EPROBE_DEFER)
 		dev_err(dev, "error trying to get descriptor: %d\n", ret);
 
 	return retdesc;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-highlander.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-highlander.c
@@ -379,7 +379,7 @@
 	platform_set_drvdata(pdev, dev);
 
 	dev->irq = platform_get_irq(pdev, 0);
-	if (iic_force_poll)
+	if (dev->irq < 0 || iic_force_poll)
 		dev->irq = 0;
 
 	if (dev->irq) {
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-hix5hd2.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-hix5hd2.c
@@ -477,6 +477,7 @@
 	i2c_del_adapter(&priv->adap);
 	pm_runtime_disable(priv->dev);
 	pm_runtime_set_suspended(priv->dev);
+	clk_disable_unprepare(priv->clk);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-i801.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-i801.c
@@ -64,6 +64,7 @@
  * Cedar Fork (PCH)		0x18df	32	hard	yes	yes	yes
  * Ice Lake-LP (PCH)		0x34a3	32	hard	yes	yes	yes
  * Comet Lake (PCH)		0x02a3	32	hard	yes	yes	yes
+ * Comet Lake-H (PCH)		0x06a3	32	hard	yes	yes	yes
  * Elkhart Lake (PCH)		0x4b23	32	hard	yes	yes	yes
  * Tiger Lake-LP (PCH)		0xa0a3	32	hard	yes	yes	yes
  *
@@ -129,11 +130,6 @@
 #define TCOBASE		0x050
 #define TCOCTL		0x054
 
-#define ACPIBASE		0x040
-#define ACPIBASE_SMI_OFF	0x030
-#define ACPICTRL		0x044
-#define ACPICTRL_EN		0x080
-
 #define SBREG_BAR		0x10
 #define SBREG_SMBCTRL		0xc6000c
 #define SBREG_SMBCTRL_DNV	0xcf000c
@@ -205,6 +201,7 @@
 
 /* Older devices have their ID defined in <linux/pci_ids.h> */
 #define PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS		0x02a3
+#define PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS		0x06a3
 #define PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS		0x0f12
 #define PCI_DEVICE_ID_INTEL_CDF_SMBUS			0x18df
 #define PCI_DEVICE_ID_INTEL_DNV_SMBUS			0x19df
@@ -384,11 +381,9 @@
 		dev_err(&priv->pci_dev->dev, "Transaction timeout\n");
 		/* try to stop the current command */
 		dev_dbg(&priv->pci_dev->dev, "Terminating the current operation\n");
-		outb_p(inb_p(SMBHSTCNT(priv)) | SMBHSTCNT_KILL,
-		       SMBHSTCNT(priv));
+		outb_p(SMBHSTCNT_KILL, SMBHSTCNT(priv));
 		usleep_range(1000, 2000);
-		outb_p(inb_p(SMBHSTCNT(priv)) & (~SMBHSTCNT_KILL),
-		       SMBHSTCNT(priv));
+		outb_p(0, SMBHSTCNT(priv));
 
 		/* Check if it worked */
 		status = inb_p(SMBHSTSTS(priv));
@@ -792,6 +787,11 @@
 	int result = 0;
 	unsigned char hostc;
 
+	if (read_write == I2C_SMBUS_READ && command == I2C_SMBUS_BLOCK_DATA)
+		data->block[0] = I2C_SMBUS_BLOCK_MAX;
+	else if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX)
+		return -EPROTO;
+
 	if (command == I2C_SMBUS_I2C_BLOCK_DATA) {
 		if (read_write == I2C_SMBUS_WRITE) {
 			/* set I2C_EN bit in configuration register */
@@ -805,16 +805,6 @@
 		}
 	}
 
-	if (read_write == I2C_SMBUS_WRITE
-	 || command == I2C_SMBUS_I2C_BLOCK_DATA) {
-		if (data->block[0] < 1)
-			data->block[0] = 1;
-		if (data->block[0] > I2C_SMBUS_BLOCK_MAX)
-			data->block[0] = I2C_SMBUS_BLOCK_MAX;
-	} else {
-		data->block[0] = 32;	/* max for SMBus block reads */
-	}
-
 	/* Experience has shown that the block buffer can only be used for
 	   SMBus (not I2C) block transactions, even though the datasheet
 	   doesn't mention this limitation. */
@@ -1069,6 +1059,7 @@
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CANNONLAKE_LP_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS) },
 	{ 0, }
@@ -1265,6 +1256,7 @@
 	 * Additional individual entries were added after verification.
 	 */
 	{ "Vostro V131",        0x1d },
+	{ "Vostro 5568",        0x29 },
 };
 
 static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv)
@@ -1429,7 +1421,7 @@
 
 	/* Register GPIO descriptor lookup table */
 	lookup = devm_kzalloc(dev,
-			      struct_size(lookup, table, mux_config->n_gpios),
+			      struct_size(lookup, table, mux_config->n_gpios + 1),
 			      GFP_KERNEL);
 	if (!lookup)
 		return -ENOMEM;
@@ -1544,7 +1536,7 @@
 		pci_bus_write_config_byte(pci_dev->bus, devfn, 0xe1, hidden);
 	spin_unlock(&p2sb_spinlock);
 
-	res = &tco_res[ICH_RES_MEM_OFF];
+	res = &tco_res[1];
 	if (pci_dev->device == PCI_DEVICE_ID_INTEL_DNV_SMBUS)
 		res->start = (resource_size_t)base64_addr + SBREG_SMBCTRL_DNV;
 	else
@@ -1554,7 +1546,7 @@
 	res->flags = IORESOURCE_MEM;
 
 	return platform_device_register_resndata(&pci_dev->dev, "iTCO_wdt", -1,
-					tco_res, 3, &spt_tco_platform_data,
+					tco_res, 2, &spt_tco_platform_data,
 					sizeof(spt_tco_platform_data));
 }
 
@@ -1567,17 +1559,16 @@
 i801_add_tco_cnl(struct i801_priv *priv, struct pci_dev *pci_dev,
 		 struct resource *tco_res)
 {
-	return platform_device_register_resndata(&pci_dev->dev, "iTCO_wdt", -1,
-					tco_res, 2, &cnl_tco_platform_data,
-					sizeof(cnl_tco_platform_data));
+	return platform_device_register_resndata(&pci_dev->dev,
+			"iTCO_wdt", -1, tco_res, 1, &cnl_tco_platform_data,
+			sizeof(cnl_tco_platform_data));
 }
 
 static void i801_add_tco(struct i801_priv *priv)
 {
-	u32 base_addr, tco_base, tco_ctl, ctrl_val;
 	struct pci_dev *pci_dev = priv->pci_dev;
-	struct resource tco_res[3], *res;
-	unsigned int devfn;
+	struct resource tco_res[2], *res;
+	u32 tco_base, tco_ctl;
 
 	/* If we have ACPI based watchdog use that instead */
 	if (acpi_has_watchdog())
@@ -1592,30 +1583,15 @@
 		return;
 
 	memset(tco_res, 0, sizeof(tco_res));
-
-	res = &tco_res[ICH_RES_IO_TCO];
-	res->start = tco_base & ~1;
-	res->end = res->start + 32 - 1;
-	res->flags = IORESOURCE_IO;
-
 	/*
-	 * Power Management registers.
+	 * Always populate the main iTCO IO resource here. The second entry
+	 * for NO_REBOOT MMIO is filled by the SPT specific function.
 	 */
-	devfn = PCI_DEVFN(PCI_SLOT(pci_dev->devfn), 2);
-	pci_bus_read_config_dword(pci_dev->bus, devfn, ACPIBASE, &base_addr);
-
-	res = &tco_res[ICH_RES_IO_SMI];
-	res->start = (base_addr & ~1) + ACPIBASE_SMI_OFF;
-	res->end = res->start + 3;
+	res = &tco_res[0];
+	res->start = tco_base & ~1;
+	res->end = res->start + 32 - 1;
 	res->flags = IORESOURCE_IO;
 
-	/*
-	 * Enable the ACPI I/O space.
-	 */
-	pci_bus_read_config_dword(pci_dev->bus, devfn, ACPICTRL, &ctrl_val);
-	ctrl_val |= ACPICTRL_EN;
-	pci_bus_write_config_dword(pci_dev->bus, devfn, ACPICTRL, ctrl_val);
-
 	if (priv->features & FEATURE_TCO_CNL)
 		priv->tco_pdev = i801_add_tco_cnl(priv, pci_dev, tco_res);
 	else
@@ -1709,6 +1685,16 @@
 static inline void i801_acpi_remove(struct i801_priv *priv) { }
 #endif
 
+static unsigned char i801_setup_hstcfg(struct i801_priv *priv)
+{
+	unsigned char hstcfg = priv->original_hstcfg;
+
+	hstcfg &= ~SMBHSTCFG_I2C_EN;	/* SMBus timing */
+	hstcfg |= SMBHSTCFG_HST_EN;
+	pci_write_config_byte(priv->pci_dev, SMBHSTCFG, hstcfg);
+	return hstcfg;
+}
+
 static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
 	unsigned char temp;
@@ -1750,6 +1736,7 @@
 	case PCI_DEVICE_ID_INTEL_CDF_SMBUS:
 	case PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS:
 	case PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS:
+	case PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS:
 	case PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS:
 	case PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS:
 		priv->features |= FEATURE_BLOCK_PROC;
@@ -1825,14 +1812,10 @@
 		return err;
 	}
 
-	pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &temp);
-	priv->original_hstcfg = temp;
-	temp &= ~SMBHSTCFG_I2C_EN;	/* SMBus timing */
-	if (!(temp & SMBHSTCFG_HST_EN)) {
+	pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &priv->original_hstcfg);
+	temp = i801_setup_hstcfg(priv);
+	if (!(priv->original_hstcfg & SMBHSTCFG_HST_EN))
 		dev_info(&dev->dev, "Enabling SMBus device\n");
-		temp |= SMBHSTCFG_HST_EN;
-	}
-	pci_write_config_byte(priv->pci_dev, SMBHSTCFG, temp);
 
 	if (temp & SMBHSTCFG_SMB_SMI_EN) {
 		dev_dbg(&dev->dev, "SMBus using interrupt SMI#\n");
@@ -1894,6 +1877,7 @@
 		"SMBus I801 adapter at %04lx", priv->smba);
 	err = i2c_add_adapter(&priv->adapter);
 	if (err) {
+		platform_device_unregister(priv->tco_pdev);
 		i801_acpi_remove(priv);
 		return err;
 	}
@@ -1906,6 +1890,7 @@
 
 	pci_set_drvdata(dev, priv);
 
+	dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NEVER_SKIP);
 	pm_runtime_set_autosuspend_delay(&dev->dev, 1000);
 	pm_runtime_use_autosuspend(&dev->dev);
 	pm_runtime_put_autosuspend(&dev->dev);
@@ -1958,6 +1943,7 @@
 {
 	struct i801_priv *priv = dev_get_drvdata(dev);
 
+	i801_setup_hstcfg(priv);
 	i801_enable_host_notify(&priv->adapter);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-icy.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-icy.c
@@ -43,6 +43,7 @@
 #include <linux/i2c.h>
 #include <linux/i2c-algo-pcf.h>
 
+#include <asm/amigahw.h>
 #include <asm/amigaints.h>
 #include <linux/zorro.h>
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-img-scb.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-img-scb.c
@@ -1057,7 +1057,7 @@
 			atomic = true;
 	}
 
-	ret = pm_runtime_get_sync(adap->dev.parent);
+	ret = pm_runtime_resume_and_get(adap->dev.parent);
 	if (ret < 0)
 		return ret;
 
@@ -1158,7 +1158,7 @@
 	u32 rev;
 	int ret;
 
-	ret = pm_runtime_get_sync(i2c->adap.dev.parent);
+	ret = pm_runtime_resume_and_get(i2c->adap.dev.parent);
 	if (ret < 0)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-imx-lpi2c.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-imx-lpi2c.c
@@ -206,8 +206,8 @@
 /* CLKLO = I2C_CLK_RATIO * CLKHI, SETHOLD = CLKHI, DATAVD = CLKHI/2 */
 static int lpi2c_imx_config(struct lpi2c_imx_struct *lpi2c_imx)
 {
-	u8 prescale, filt, sethold, clkhi, clklo, datavd;
-	unsigned int clk_rate, clk_cycle;
+	u8 prescale, filt, sethold, datavd;
+	unsigned int clk_rate, clk_cycle, clkhi, clklo;
 	enum lpi2c_imx_pincfg pincfg;
 	unsigned int temp;
 
@@ -265,7 +265,7 @@
 	unsigned int temp;
 	int ret;
 
-	ret = pm_runtime_get_sync(lpi2c_imx->adapter.dev.parent);
+	ret = pm_runtime_resume_and_get(lpi2c_imx->adapter.dev.parent);
 	if (ret < 0)
 		return ret;
 
@@ -468,6 +468,8 @@
 		if (num == 1 && msgs[0].len == 0)
 			goto stop;
 
+		lpi2c_imx->rx_buf = NULL;
+		lpi2c_imx->tx_buf = NULL;
 		lpi2c_imx->delivered = 0;
 		lpi2c_imx->msglen = msgs[i].len;
 		init_completion(&lpi2c_imx->complete);
@@ -508,10 +510,14 @@
 static irqreturn_t lpi2c_imx_isr(int irq, void *dev_id)
 {
 	struct lpi2c_imx_struct *lpi2c_imx = dev_id;
+	unsigned int enabled;
 	unsigned int temp;
 
+	enabled = readl(lpi2c_imx->base + LPI2C_MIER);
+
 	lpi2c_imx_intctrl(lpi2c_imx, 0);
 	temp = readl(lpi2c_imx->base + LPI2C_MSR);
+	temp &= enabled;
 
 	if (temp & MSR_RDF)
 		lpi2c_imx_read_rxfifo(lpi2c_imx);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-imx.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-imx.c
@@ -17,6 +17,7 @@
  *	Copyright (C) 2008 Darius Augulis <darius.augulis at teltonika.lt>
  *
  *	Copyright 2013 Freescale Semiconductor, Inc.
+ *	Copyright 2020 NXP
  *
  */
 
@@ -75,6 +76,11 @@
 #define IMX_I2C_I2SR	0x03	/* i2c status */
 #define IMX_I2C_I2DR	0x04	/* i2c transfer data */
 
+/*
+ * All of the layerscape series SoCs support IBIC register.
+ */
+#define IMX_I2C_IBIC	0x05    /* i2c bus interrupt config */
+
 #define IMX_I2C_REGSHIFT	2
 #define VF610_I2C_REGSHIFT	0
 
@@ -93,6 +99,7 @@
 #define I2CR_MSTA	0x20
 #define I2CR_IIEN	0x40
 #define I2CR_IEN	0x80
+#define IBIC_BIIE	0x80 /* Bus idle interrupt enable */
 
 /* register bits different operating codes definition:
  * 1) I2SR: Interrupt flags clear operation differ between SoCs:
@@ -203,6 +210,7 @@
 	struct pinctrl_state *pinctrl_pins_gpio;
 
 	struct imx_i2c_dma	*dma;
+	struct i2c_client	*slave;
 };
 
 static const struct imx_i2c_hwdata imx1_i2c_hwdata = {
@@ -267,6 +275,11 @@
 	return i2c_imx->hwdata->devtype == IMX1_I2C;
 }
 
+static inline int is_vf610_i2c(struct imx_i2c_struct *i2c_imx)
+{
+	return i2c_imx->hwdata->devtype == VF610_I2C;
+}
+
 static inline void imx_i2c_write_reg(unsigned int val,
 		struct imx_i2c_struct *i2c_imx, unsigned int reg)
 {
@@ -279,6 +292,27 @@
 	return readb(i2c_imx->base + (reg << i2c_imx->hwdata->regshift));
 }
 
+static void i2c_imx_clear_irq(struct imx_i2c_struct *i2c_imx, unsigned int bits)
+{
+	unsigned int temp;
+
+	/*
+	 * i2sr_clr_opcode is the value to clear all interrupts. Here we want to
+	 * clear only <bits>, so we write ~i2sr_clr_opcode with just <bits>
+	 * toggled. This is required because i.MX needs W0C and Vybrid uses W1C.
+	 */
+	temp = ~i2c_imx->hwdata->i2sr_clr_opcode ^ bits;
+	imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
+}
+
+/* Set up i2c controller register and i2c status register to default value. */
+static void i2c_imx_reset_regs(struct imx_i2c_struct *i2c_imx)
+{
+	imx_i2c_write_reg(i2c_imx->hwdata->i2cr_ien_opcode ^ I2CR_IEN,
+			  i2c_imx, IMX_I2C_I2CR);
+	i2c_imx_clear_irq(i2c_imx, I2SR_IIF | I2SR_IAL);
+}
+
 /* Functions for DMA support */
 static void i2c_imx_dma_request(struct imx_i2c_struct *i2c_imx,
 						dma_addr_t phy_addr)
@@ -426,8 +460,7 @@
 
 		/* check for arbitration lost */
 		if (temp & I2SR_IAL) {
-			temp &= ~I2SR_IAL;
-			imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
+			i2c_imx_clear_irq(i2c_imx, I2SR_IAL);
 			return -EAGAIN;
 		}
 
@@ -458,6 +491,16 @@
 		dev_dbg(&i2c_imx->adapter.dev, "<%s> Timeout\n", __func__);
 		return -ETIMEDOUT;
 	}
+
+	/* check for arbitration lost */
+	if (i2c_imx->i2csr & I2SR_IAL) {
+		dev_dbg(&i2c_imx->adapter.dev, "<%s> Arbitration lost\n", __func__);
+		i2c_imx_clear_irq(i2c_imx, I2SR_IAL);
+
+		i2c_imx->i2csr = 0;
+		return -EAGAIN;
+	}
+
 	dev_dbg(&i2c_imx->adapter.dev, "<%s> TRX complete\n", __func__);
 	i2c_imx->i2csr = 0;
 	return 0;
@@ -567,6 +610,8 @@
 		/* Stop I2C transaction */
 		dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
 		temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+		if (!(temp & I2CR_MSTA))
+			i2c_imx->stopped = 1;
 		temp &= ~(I2CR_MSTA | I2CR_MTX);
 		if (i2c_imx->dma)
 			temp &= ~I2CR_DMAEN;
@@ -588,20 +633,165 @@
 	imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
 }
 
+/*
+ * Enable bus idle interrupts
+ * Note: IBIC register will be cleared after disabled i2c module.
+ * All of layerscape series SoCs support IBIC register.
+ */
+static void i2c_imx_enable_bus_idle(struct imx_i2c_struct *i2c_imx)
+{
+	if (is_vf610_i2c(i2c_imx)) {
+		unsigned int temp;
+
+		temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_IBIC);
+		temp |= IBIC_BIIE;
+		imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_IBIC);
+	}
+}
+
+static irqreturn_t i2c_imx_slave_isr(struct imx_i2c_struct *i2c_imx,
+				     unsigned int status, unsigned int ctl)
+{
+	u8 value;
+
+	if (status & I2SR_IAL) { /* Arbitration lost */
+		i2c_imx_clear_irq(i2c_imx, I2SR_IAL);
+		if (!(status & I2SR_IAAS))
+			return IRQ_HANDLED;
+	}
+
+	if (status & I2SR_IAAS) { /* Addressed as a slave */
+		if (status & I2SR_SRW) { /* Master wants to read from us*/
+			dev_dbg(&i2c_imx->adapter.dev, "read requested");
+			i2c_slave_event(i2c_imx->slave, I2C_SLAVE_READ_REQUESTED, &value);
+
+			/* Slave transmit */
+			ctl |= I2CR_MTX;
+			imx_i2c_write_reg(ctl, i2c_imx, IMX_I2C_I2CR);
+
+			/* Send data */
+			imx_i2c_write_reg(value, i2c_imx, IMX_I2C_I2DR);
+		} else { /* Master wants to write to us */
+			dev_dbg(&i2c_imx->adapter.dev, "write requested");
+			i2c_slave_event(i2c_imx->slave,	I2C_SLAVE_WRITE_REQUESTED, &value);
+
+			/* Slave receive */
+			ctl &= ~I2CR_MTX;
+			imx_i2c_write_reg(ctl, i2c_imx, IMX_I2C_I2CR);
+			/* Dummy read */
+			imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR);
+		}
+	} else if (!(ctl & I2CR_MTX)) { /* Receive mode */
+		if (status & I2SR_IBB) { /* No STOP signal detected */
+			value = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR);
+			i2c_slave_event(i2c_imx->slave,	I2C_SLAVE_WRITE_RECEIVED, &value);
+		} else { /* STOP signal is detected */
+			dev_dbg(&i2c_imx->adapter.dev,
+				"STOP signal detected");
+			i2c_slave_event(i2c_imx->slave, I2C_SLAVE_STOP, &value);
+		}
+	} else if (!(status & I2SR_RXAK)) { /* Transmit mode received ACK */
+		ctl |= I2CR_MTX;
+		imx_i2c_write_reg(ctl, i2c_imx, IMX_I2C_I2CR);
+
+		i2c_slave_event(i2c_imx->slave,	I2C_SLAVE_READ_PROCESSED, &value);
+
+		imx_i2c_write_reg(value, i2c_imx, IMX_I2C_I2DR);
+	} else { /* Transmit mode received NAK */
+		ctl &= ~I2CR_MTX;
+		imx_i2c_write_reg(ctl, i2c_imx, IMX_I2C_I2CR);
+		imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR);
+	}
+
+	return IRQ_HANDLED;
+}
+
+static void i2c_imx_slave_init(struct imx_i2c_struct *i2c_imx)
+{
+	int temp;
+
+	/* Set slave addr. */
+	imx_i2c_write_reg((i2c_imx->slave->addr << 1), i2c_imx, IMX_I2C_IADR);
+
+	i2c_imx_reset_regs(i2c_imx);
+
+	/* Enable module */
+	temp = i2c_imx->hwdata->i2cr_ien_opcode;
+	imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
+
+	/* Enable interrupt from i2c module */
+	temp |= I2CR_IIEN;
+	imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
+
+	i2c_imx_enable_bus_idle(i2c_imx);
+}
+
+static int i2c_imx_reg_slave(struct i2c_client *client)
+{
+	struct imx_i2c_struct *i2c_imx = i2c_get_adapdata(client->adapter);
+	int ret;
+
+	if (i2c_imx->slave)
+		return -EBUSY;
+
+	i2c_imx->slave = client;
+
+	/* Resume */
+	ret = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
+	if (ret < 0) {
+		dev_err(&i2c_imx->adapter.dev, "failed to resume i2c controller");
+		return ret;
+	}
+
+	i2c_imx_slave_init(i2c_imx);
+
+	return 0;
+}
+
+static int i2c_imx_unreg_slave(struct i2c_client *client)
+{
+	struct imx_i2c_struct *i2c_imx = i2c_get_adapdata(client->adapter);
+	int ret;
+
+	if (!i2c_imx->slave)
+		return -EINVAL;
+
+	/* Reset slave address. */
+	imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IADR);
+
+	i2c_imx_reset_regs(i2c_imx);
+
+	i2c_imx->slave = NULL;
+
+	/* Suspend */
+	ret = pm_runtime_put_sync(i2c_imx->adapter.dev.parent);
+	if (ret < 0)
+		dev_err(&i2c_imx->adapter.dev, "failed to suspend i2c controller");
+
+	return ret;
+}
+
+static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx, unsigned int status)
+{
+	/* save status register */
+	i2c_imx->i2csr = status;
+	wake_up(&i2c_imx->queue);
+
+	return IRQ_HANDLED;
+}
+
 static irqreturn_t i2c_imx_isr(int irq, void *dev_id)
 {
 	struct imx_i2c_struct *i2c_imx = dev_id;
-	unsigned int temp;
+	unsigned int ctl, status;
 
-	temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR);
-	if (temp & I2SR_IIF) {
-		/* save status register */
-		i2c_imx->i2csr = temp;
-		temp &= ~I2SR_IIF;
-		temp |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IIF);
-		imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
-		wake_up(&i2c_imx->queue);
-		return IRQ_HANDLED;
+	status = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR);
+	ctl = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+	if (status & I2SR_IIF) {
+		i2c_imx_clear_irq(i2c_imx, I2SR_IIF);
+		if (i2c_imx->slave && !(ctl & I2CR_MSTA))
+			return i2c_imx_slave_isr(i2c_imx, status, ctl);
+		return i2c_imx_master_isr(i2c_imx, status);
 	}
 
 	return IRQ_NONE;
@@ -732,9 +922,12 @@
 		 */
 		dev_dbg(dev, "<%s> clear MSTA\n", __func__);
 		temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+		if (!(temp & I2CR_MSTA))
+			i2c_imx->stopped = 1;
 		temp &= ~(I2CR_MSTA | I2CR_MTX);
 		imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
-		i2c_imx_bus_busy(i2c_imx, 0);
+		if (!i2c_imx->stopped)
+			i2c_imx_bus_busy(i2c_imx, 0);
 	} else {
 		/*
 		 * For i2c master receiver repeat restart operation like:
@@ -857,9 +1050,12 @@
 				dev_dbg(&i2c_imx->adapter.dev,
 					"<%s> clear MSTA\n", __func__);
 				temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR);
+				if (!(temp & I2CR_MSTA))
+					i2c_imx->stopped =  1;
 				temp &= ~(I2CR_MSTA | I2CR_MTX);
 				imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
-				i2c_imx_bus_busy(i2c_imx, 0);
+				if (!i2c_imx->stopped)
+					i2c_imx_bus_busy(i2c_imx, 0);
 			} else {
 				/*
 				 * For i2c master receiver repeat restart operation like:
@@ -974,6 +1170,10 @@
 	dev_dbg(&i2c_imx->adapter.dev, "<%s> exit with: %s: %d\n", __func__,
 		(result < 0) ? "error" : "success msg",
 			(result < 0) ? result : num);
+	/* After data is transferred, switch to slave mode(as a receiver) */
+	if (i2c_imx->slave)
+		i2c_imx_slave_init(i2c_imx);
+
 	return (result < 0) ? result : num;
 }
 
@@ -1051,6 +1251,8 @@
 static const struct i2c_algorithm i2c_imx_algo = {
 	.master_xfer	= i2c_imx_xfer,
 	.functionality	= i2c_imx_func,
+	.reg_slave	= i2c_imx_reg_slave,
+	.unreg_slave	= i2c_imx_unreg_slave,
 };
 
 static int i2c_imx_probe(struct platform_device *pdev)
@@ -1112,14 +1314,6 @@
 		return ret;
 	}
 
-	/* Request IRQ */
-	ret = devm_request_irq(&pdev->dev, irq, i2c_imx_isr, IRQF_SHARED,
-				pdev->name, i2c_imx);
-	if (ret) {
-		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
-		goto clk_disable;
-	}
-
 	/* Init queue */
 	init_waitqueue_head(&i2c_imx->queue);
 
@@ -1138,6 +1332,14 @@
 	if (ret < 0)
 		goto rpm_disable;
 
+	/* Request IRQ */
+	ret = request_threaded_irq(irq, i2c_imx_isr, NULL, IRQF_SHARED,
+				   pdev->name, i2c_imx);
+	if (ret) {
+		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
+		goto rpm_disable;
+	}
+
 	/* Set up clock divider */
 	i2c_imx->bitrate = IMX_I2C_BIT_RATE;
 	ret = of_property_read_u32(pdev->dev.of_node,
@@ -1148,10 +1350,7 @@
 	clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb);
 	i2c_imx_set_clk(i2c_imx, clk_get_rate(i2c_imx->clk));
 
-	/* Set up chip registers to defaults */
-	imx_i2c_write_reg(i2c_imx->hwdata->i2cr_ien_opcode ^ I2CR_IEN,
-			i2c_imx, IMX_I2C_I2CR);
-	imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
+	i2c_imx_reset_regs(i2c_imx);
 
 	/* Init optional bus recovery function */
 	ret = i2c_imx_init_recovery_info(i2c_imx, pdev);
@@ -1180,13 +1379,12 @@
 
 clk_notifier_unregister:
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	free_irq(irq, i2c_imx);
 rpm_disable:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 	pm_runtime_set_suspended(&pdev->dev);
 	pm_runtime_dont_use_autosuspend(&pdev->dev);
-
-clk_disable:
 	clk_disable_unprepare(i2c_imx->clk);
 	return ret;
 }
@@ -1194,7 +1392,7 @@
 static int i2c_imx_remove(struct platform_device *pdev)
 {
 	struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
-	int ret;
+	int irq, ret;
 
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
@@ -1214,6 +1412,9 @@
 	imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR);
 
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	irq = platform_get_irq(pdev, 0);
+	if (irq >= 0)
+		free_irq(irq, i2c_imx);
 	clk_disable_unprepare(i2c_imx->clk);
 
 	pm_runtime_put_noidle(&pdev->dev);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-iop3xx.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-iop3xx.c
@@ -433,13 +433,17 @@
 	adapter_data->gpio_scl = devm_gpiod_get_optional(&pdev->dev,
 							 "scl",
 							 GPIOD_ASIS);
-	if (IS_ERR(adapter_data->gpio_scl))
-		return PTR_ERR(adapter_data->gpio_scl);
+	if (IS_ERR(adapter_data->gpio_scl)) {
+		ret = PTR_ERR(adapter_data->gpio_scl);
+		goto free_both;
+	}
 	adapter_data->gpio_sda = devm_gpiod_get_optional(&pdev->dev,
 							 "sda",
 							 GPIOD_ASIS);
-	if (IS_ERR(adapter_data->gpio_sda))
-		return PTR_ERR(adapter_data->gpio_sda);
+	if (IS_ERR(adapter_data->gpio_sda)) {
+		ret = PTR_ERR(adapter_data->gpio_sda);
+		goto free_both;
+	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	if (!res) {
@@ -463,16 +467,14 @@
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
-		ret = -ENXIO;
+		ret = irq;
 		goto unmap;
 	}
 	ret = request_irq(irq, iop3xx_i2c_irq_handler, 0,
 				pdev->name, adapter_data);
 
-	if (ret) {
-		ret = -EIO;
+	if (ret)
 		goto unmap;
-	}
 
 	memcpy(new_adapter->name, pdev->name, strlen(pdev->name));
 	new_adapter->owner = THIS_MODULE;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-ismt.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-ismt.c
@@ -81,6 +81,7 @@
 
 #define ISMT_DESC_ENTRIES	2	/* number of descriptor entries */
 #define ISMT_MAX_RETRIES	3	/* number of SMBus retries to attempt */
+#define ISMT_LOG_ENTRIES	3	/* number of interrupt cause log entries */
 
 /* Hardware Descriptor Constants - Control Field */
 #define ISMT_DESC_CWRL	0x01	/* Command/Write Length */
@@ -174,6 +175,8 @@
 	u8 head;				/* ring buffer head pointer */
 	struct completion cmp;			/* interrupt completion */
 	u8 buffer[I2C_SMBUS_BLOCK_MAX + 16];	/* temp R/W data buffer */
+	dma_addr_t log_dma;
+	u32 *log;
 };
 
 /**
@@ -408,6 +411,9 @@
 	memset(desc, 0, sizeof(struct ismt_desc));
 	desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, read_write);
 
+	/* Always clear the log entries */
+	memset(priv->log, 0, ISMT_LOG_ENTRIES * sizeof(u32));
+
 	/* Initialize common control bits */
 	if (likely(pci_dev_msi_enabled(priv->pci_dev)))
 		desc->control = ISMT_DESC_INT | ISMT_DESC_FAIR;
@@ -500,6 +506,9 @@
 		if (read_write == I2C_SMBUS_WRITE) {
 			/* Block Write */
 			dev_dbg(dev, "I2C_SMBUS_BLOCK_DATA:  WRITE\n");
+			if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX)
+				return -EINVAL;
+
 			dma_size = data->block[0] + 1;
 			dma_direction = DMA_TO_DEVICE;
 			desc->wr_len_cmd = dma_size;
@@ -697,6 +706,8 @@
 	/* initialize the Master Descriptor Base Address (MDBA) */
 	writeq(priv->io_rng_dma, priv->smba + ISMT_MSTR_MDBA);
 
+	writeq(priv->log_dma, priv->smba + ISMT_GR_SMTICL);
+
 	/* initialize the Master Control Register (MCTRL) */
 	writel(ISMT_MCTRL_MEIE, priv->smba + ISMT_MSTR_MCTRL);
 
@@ -784,6 +795,12 @@
 	priv->head = 0;
 	init_completion(&priv->cmp);
 
+	priv->log = dmam_alloc_coherent(&priv->pci_dev->dev,
+					ISMT_LOG_ENTRIES * sizeof(u32),
+					&priv->log_dma, GFP_KERNEL);
+	if (!priv->log)
+		return -ENOMEM;
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-jz4780.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-jz4780.c
@@ -73,25 +73,6 @@
 #define JZ4780_I2C_STA_TFNF		BIT(1)
 #define JZ4780_I2C_STA_ACT		BIT(0)
 
-static const char * const jz4780_i2c_abrt_src[] = {
-	"ABRT_7B_ADDR_NOACK",
-	"ABRT_10ADDR1_NOACK",
-	"ABRT_10ADDR2_NOACK",
-	"ABRT_XDATA_NOACK",
-	"ABRT_GCALL_NOACK",
-	"ABRT_GCALL_READ",
-	"ABRT_HS_ACKD",
-	"SBYTE_ACKDET",
-	"ABRT_HS_NORSTRT",
-	"SBYTE_NORSTRT",
-	"ABRT_10B_RD_NORSTRT",
-	"ABRT_MASTER_DIS",
-	"ARB_LOST",
-	"SLVFLUSH_TXFIFO",
-	"SLV_ARBLOST",
-	"SLVRD_INTX",
-};
-
 #define JZ4780_I2C_INTST_IGC		BIT(11)
 #define JZ4780_I2C_INTST_ISTT		BIT(10)
 #define JZ4780_I2C_INTST_ISTP		BIT(9)
@@ -529,21 +510,8 @@
 
 static void jz4780_i2c_txabrt(struct jz4780_i2c *i2c, int src)
 {
-	int i;
-
-	dev_err(&i2c->adap.dev, "txabrt: 0x%08x\n", src);
-	dev_err(&i2c->adap.dev, "device addr=%x\n",
-		jz4780_i2c_readw(i2c, JZ4780_I2C_TAR));
-	dev_err(&i2c->adap.dev, "send cmd count:%d  %d\n",
-		i2c->cmd, i2c->cmd_buf[i2c->cmd]);
-	dev_err(&i2c->adap.dev, "receive data count:%d  %d\n",
-		i2c->cmd, i2c->data_buf[i2c->cmd]);
-
-	for (i = 0; i < 16; i++) {
-		if (src & BIT(i))
-			dev_dbg(&i2c->adap.dev, "I2C TXABRT[%d]=%s\n",
-				i, jz4780_i2c_abrt_src[i]);
-	}
+	dev_dbg(&i2c->adap.dev, "txabrt: 0x%08x, cmd: %d, send: %d, recv: %d\n",
+		src, i2c->cmd, i2c->cmd_buf[i2c->cmd], i2c->data_buf[i2c->cmd]);
 }
 
 static inline int jz4780_i2c_xfer_read(struct jz4780_i2c *i2c,
@@ -783,7 +751,10 @@
 
 	jz4780_i2c_writew(i2c, JZ4780_I2C_INTM, 0x0);
 
-	i2c->irq = platform_get_irq(pdev, 0);
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		goto err;
+	i2c->irq = ret;
 	ret = devm_request_irq(&pdev->dev, i2c->irq, jz4780_i2c_irq, 0,
 			       dev_name(&pdev->dev), i2c);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-meson.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-meson.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2014 Beniamino Galvani <b.galvani@gmail.com>
  */
 
+#include <linux/bitfield.h>
 #include <linux/clk.h>
 #include <linux/completion.h>
 #include <linux/i2c.h>
@@ -32,12 +33,17 @@
 #define REG_CTRL_ACK_IGNORE	BIT(1)
 #define REG_CTRL_STATUS		BIT(2)
 #define REG_CTRL_ERROR		BIT(3)
-#define REG_CTRL_CLKDIV_SHIFT	12
-#define REG_CTRL_CLKDIV_MASK	GENMASK(21, 12)
-#define REG_CTRL_CLKDIVEXT_SHIFT 28
-#define REG_CTRL_CLKDIVEXT_MASK	GENMASK(29, 28)
+#define REG_CTRL_CLKDIV		GENMASK(21, 12)
+#define REG_CTRL_CLKDIVEXT	GENMASK(29, 28)
+
+#define REG_SLV_ADDR		GENMASK(7, 0)
+#define REG_SLV_SDA_FILTER	GENMASK(10, 8)
+#define REG_SLV_SCL_FILTER	GENMASK(13, 11)
+#define REG_SLV_SCL_LOW		GENMASK(27, 16)
+#define REG_SLV_SCL_LOW_EN	BIT(28)
 
 #define I2C_TIMEOUT_MS		500
+#define FILTER_DELAY		15
 
 enum {
 	TOKEN_END = 0,
@@ -132,19 +138,24 @@
 	unsigned long clk_rate = clk_get_rate(i2c->clk);
 	unsigned int div;
 
-	div = DIV_ROUND_UP(clk_rate, freq * i2c->data->div_factor);
+	div = DIV_ROUND_UP(clk_rate, freq);
+	div -= FILTER_DELAY;
+	div = DIV_ROUND_UP(div, i2c->data->div_factor);
 
 	/* clock divider has 12 bits */
-	if (div >= (1 << 12)) {
+	if (div > GENMASK(11, 0)) {
 		dev_err(i2c->dev, "requested bus frequency too low\n");
-		div = (1 << 12) - 1;
+		div = GENMASK(11, 0);
 	}
 
-	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV_MASK,
-			   (div & GENMASK(9, 0)) << REG_CTRL_CLKDIV_SHIFT);
+	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV,
+			   FIELD_PREP(REG_CTRL_CLKDIV, div & GENMASK(9, 0)));
+
+	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT,
+			   FIELD_PREP(REG_CTRL_CLKDIVEXT, div >> 10));
 
-	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT_MASK,
-			   (div >> 10) << REG_CTRL_CLKDIVEXT_SHIFT);
+	/* Disable HIGH/LOW mode */
+	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_SCL_LOW_EN, 0);
 
 	dev_dbg(i2c->dev, "%s: clk %lu, freq %u, div %u\n", __func__,
 		clk_rate, freq, div);
@@ -273,7 +284,10 @@
 	token = (msg->flags & I2C_M_RD) ? TOKEN_SLAVE_ADDR_READ :
 		TOKEN_SLAVE_ADDR_WRITE;
 
-	writel(msg->addr << 1, i2c->regs + REG_SLAVE_ADDR);
+
+	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_ADDR,
+			   FIELD_PREP(REG_SLV_ADDR, msg->addr << 1));
+
 	meson_i2c_add_token(i2c, TOKEN_START);
 	meson_i2c_add_token(i2c, token);
 }
@@ -432,6 +446,10 @@
 		return ret;
 	}
 
+	/* Disable filtering */
+	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR,
+			   REG_SLV_SDA_FILTER | REG_SLV_SCL_FILTER, 0);
+
 	meson_i2c_set_clk_div(i2c, timings.bus_freq_hz);
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-mlxcpld.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-mlxcpld.c
@@ -337,9 +337,9 @@
 		if (priv->smbus_block && (val & MLXCPLD_I2C_SMBUS_BLK_BIT)) {
 			mlxcpld_i2c_read_comm(priv, MLXCPLD_LPCI2C_NUM_DAT_REG,
 					      &datalen, 1);
-			if (unlikely(datalen > (I2C_SMBUS_BLOCK_MAX + 1))) {
+			if (unlikely(datalen > I2C_SMBUS_BLOCK_MAX)) {
 				dev_err(priv->dev, "Incorrect smbus block read message len\n");
-				return -E2BIG;
+				return -EPROTO;
 			}
 		} else {
 			datalen = priv->xfer.data_len;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-mpc.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-mpc.c
@@ -23,6 +23,7 @@
 
 #include <linux/clk.h>
 #include <linux/io.h>
+#include <linux/iopoll.h>
 #include <linux/fsl_devices.h>
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
@@ -49,6 +50,7 @@
 #define CCR_MTX  0x10
 #define CCR_TXAK 0x08
 #define CCR_RSTA 0x04
+#define CCR_RSVD 0x02
 
 #define CSR_MCF  0x80
 #define CSR_MAAS 0x40
@@ -70,6 +72,7 @@
 	u8 fdr, dfsrr;
 #endif
 	struct clk *clk_per;
+	bool has_errata_A004447;
 };
 
 struct mpc_i2c_divider {
@@ -102,23 +105,30 @@
 /* Sometimes 9th clock pulse isn't generated, and slave doesn't release
  * the bus, because it wants to send ACK.
  * Following sequence of enabling/disabling and sending start/stop generates
- * the 9 pulses, so it's all OK.
+ * the 9 pulses, each with a START then ending with STOP, so it's all OK.
  */
 static void mpc_i2c_fixup(struct mpc_i2c *i2c)
 {
 	int k;
-	u32 delay_val = 1000000 / i2c->real_clk + 1;
-
-	if (delay_val < 2)
-		delay_val = 2;
+	unsigned long flags;
 
 	for (k = 9; k; k--) {
 		writeccr(i2c, 0);
-		writeccr(i2c, CCR_MSTA | CCR_MTX | CCR_MEN);
+		writeb(0, i2c->base + MPC_I2C_SR); /* clear any status bits */
+		writeccr(i2c, CCR_MEN | CCR_MSTA); /* START */
+		readb(i2c->base + MPC_I2C_DR); /* init xfer */
+		udelay(15); /* let it hit the bus */
+		local_irq_save(flags); /* should not be delayed further */
+		writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSTA); /* delay SDA */
 		readb(i2c->base + MPC_I2C_DR);
-		writeccr(i2c, CCR_MEN);
-		udelay(delay_val << 1);
-	}
+		if (k != 1)
+			udelay(5);
+		local_irq_restore(flags);
+	}
+	writeccr(i2c, CCR_MEN); /* Initiate STOP */
+	readb(i2c->base + MPC_I2C_DR);
+	udelay(15); /* Let STOP propagate */
+	writeccr(i2c, 0);
 }
 
 static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
@@ -176,6 +186,75 @@
 	return 0;
 }
 
+static int i2c_mpc_wait_sr(struct mpc_i2c *i2c, int mask)
+{
+	void __iomem *addr = i2c->base + MPC_I2C_SR;
+	u8 val;
+
+	return readb_poll_timeout(addr, val, val & mask, 0, 100);
+}
+
+/*
+ * Workaround for Erratum A004447. From the P2040CE Rev Q
+ *
+ * 1.  Set up the frequency divider and sampling rate.
+ * 2.  I2CCR - a0h
+ * 3.  Poll for I2CSR[MBB] to get set.
+ * 4.  If I2CSR[MAL] is set (an indication that SDA is stuck low), then go to
+ *     step 5. If MAL is not set, then go to step 13.
+ * 5.  I2CCR - 00h
+ * 6.  I2CCR - 22h
+ * 7.  I2CCR - a2h
+ * 8.  Poll for I2CSR[MBB] to get set.
+ * 9.  Issue read to I2CDR.
+ * 10. Poll for I2CSR[MIF] to be set.
+ * 11. I2CCR - 82h
+ * 12. Workaround complete. Skip the next steps.
+ * 13. Issue read to I2CDR.
+ * 14. Poll for I2CSR[MIF] to be set.
+ * 15. I2CCR - 80h
+ */
+static void mpc_i2c_fixup_A004447(struct mpc_i2c *i2c)
+{
+	int ret;
+	u32 val;
+
+	writeccr(i2c, CCR_MEN | CCR_MSTA);
+	ret = i2c_mpc_wait_sr(i2c, CSR_MBB);
+	if (ret) {
+		dev_err(i2c->dev, "timeout waiting for CSR_MBB\n");
+		return;
+	}
+
+	val = readb(i2c->base + MPC_I2C_SR);
+
+	if (val & CSR_MAL) {
+		writeccr(i2c, 0x00);
+		writeccr(i2c, CCR_MSTA | CCR_RSVD);
+		writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSVD);
+		ret = i2c_mpc_wait_sr(i2c, CSR_MBB);
+		if (ret) {
+			dev_err(i2c->dev, "timeout waiting for CSR_MBB\n");
+			return;
+		}
+		val = readb(i2c->base + MPC_I2C_DR);
+		ret = i2c_mpc_wait_sr(i2c, CSR_MIF);
+		if (ret) {
+			dev_err(i2c->dev, "timeout waiting for CSR_MIF\n");
+			return;
+		}
+		writeccr(i2c, CCR_MEN | CCR_RSVD);
+	} else {
+		val = readb(i2c->base + MPC_I2C_DR);
+		ret = i2c_mpc_wait_sr(i2c, CSR_MIF);
+		if (ret) {
+			dev_err(i2c->dev, "timeout waiting for CSR_MIF\n");
+			return;
+		}
+		writeccr(i2c, CCR_MEN);
+	}
+}
+
 #if defined(CONFIG_PPC_MPC52xx) || defined(CONFIG_PPC_MPC512x)
 static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = {
 	{20, 0x20}, {22, 0x21}, {24, 0x22}, {26, 0x23},
@@ -586,7 +665,7 @@
 			if ((status & (CSR_MCF | CSR_MBB | CSR_RXAK)) != 0) {
 				writeb(status & ~CSR_MAL,
 				       i2c->base + MPC_I2C_SR);
-				mpc_i2c_fixup(i2c);
+				i2c_recover_bus(&i2c->adap);
 			}
 			return -EIO;
 		}
@@ -622,7 +701,7 @@
 			if ((status & (CSR_MCF | CSR_MBB | CSR_RXAK)) != 0) {
 				writeb(status & ~CSR_MAL,
 				       i2c->base + MPC_I2C_SR);
-				mpc_i2c_fixup(i2c);
+				i2c_recover_bus(&i2c->adap);
 			}
 			return -EIO;
 		}
@@ -637,6 +716,18 @@
 	  | I2C_FUNC_SMBUS_READ_BLOCK_DATA | I2C_FUNC_SMBUS_BLOCK_PROC_CALL;
 }
 
+static int fsl_i2c_bus_recovery(struct i2c_adapter *adap)
+{
+	struct mpc_i2c *i2c = i2c_get_adapdata(adap);
+
+	if (i2c->has_errata_A004447)
+		mpc_i2c_fixup_A004447(i2c);
+	else
+		mpc_i2c_fixup(i2c);
+
+	return 0;
+}
+
 static const struct i2c_algorithm mpc_algo = {
 	.master_xfer = mpc_xfer,
 	.functionality = mpc_functionality,
@@ -648,6 +739,10 @@
 	.timeout = HZ,
 };
 
+static struct i2c_bus_recovery_info fsl_i2c_recovery_info = {
+	.recover_bus = fsl_i2c_bus_recovery,
+};
+
 static const struct of_device_id mpc_i2c_of_match[];
 static int fsl_i2c_probe(struct platform_device *op)
 {
@@ -732,6 +827,8 @@
 	dev_info(i2c->dev, "timeout %u us\n", mpc_ops.timeout * 1000000 / HZ);
 
 	platform_set_drvdata(op, i2c);
+	if (of_property_read_bool(op->dev.of_node, "fsl,i2c-erratum-a004447"))
+		i2c->has_errata_A004447 = true;
 
 	i2c->adap = mpc_ops;
 	of_address_to_resource(op->dev.of_node, 0, &res);
@@ -740,6 +837,7 @@
 	i2c_set_adapdata(&i2c->adap, i2c);
 	i2c->adap.dev.parent = &op->dev;
 	i2c->adap.dev.of_node = of_node_get(op->dev.of_node);
+	i2c->adap.bus_recovery_info = &fsl_i2c_recovery_info;
 
 	result = i2c_add_adapter(&i2c->adap);
 	if (result < 0)
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-mt65xx.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-mt65xx.c
@@ -389,6 +389,10 @@
 {
 	u16 control_reg;
 
+	writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
+	udelay(50);
+	writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
+
 	mtk_i2c_writew(i2c, I2C_SOFT_RST, OFFSET_SOFTRESET);
 
 	/* Set ioconfig */
@@ -419,10 +423,6 @@
 
 	mtk_i2c_writew(i2c, control_reg, OFFSET_CONTROL);
 	mtk_i2c_writew(i2c, I2C_DELAY_LEN, OFFSET_DELAY_LEN);
-
-	writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
-	udelay(50);
-	writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
 }
 
 /*
@@ -932,7 +932,7 @@
 		return PTR_ERR(i2c->pdmabase);
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0)
+	if (irq < 0)
 		return irq;
 
 	init_completion(&i2c->msg_complete);
@@ -1008,7 +1008,8 @@
 	mtk_i2c_clock_disable(i2c);
 
 	ret = devm_request_irq(&pdev->dev, irq, mtk_i2c_irq,
-			       IRQF_TRIGGER_NONE, I2C_DRV_NAME, i2c);
+			       IRQF_NO_SUSPEND | IRQF_TRIGGER_NONE,
+			       I2C_DRV_NAME, i2c);
 	if (ret < 0) {
 		dev_err(&pdev->dev,
 			"Request I2C IRQ %d fail\n", irq);
@@ -1035,7 +1036,16 @@
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int mtk_i2c_resume(struct device *dev)
+static int mtk_i2c_suspend_noirq(struct device *dev)
+{
+	struct mtk_i2c *i2c = dev_get_drvdata(dev);
+
+	i2c_mark_adapter_suspended(&i2c->adap);
+
+	return 0;
+}
+
+static int mtk_i2c_resume_noirq(struct device *dev)
 {
 	int ret;
 	struct mtk_i2c *i2c = dev_get_drvdata(dev);
@@ -1050,12 +1060,15 @@
 
 	mtk_i2c_clock_disable(i2c);
 
+	i2c_mark_adapter_resumed(&i2c->adap);
+
 	return 0;
 }
 #endif
 
 static const struct dev_pm_ops mtk_i2c_pm = {
-	SET_SYSTEM_SLEEP_PM_OPS(NULL, mtk_i2c_resume)
+	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(mtk_i2c_suspend_noirq,
+				      mtk_i2c_resume_noirq)
 };
 
 static struct platform_driver mtk_i2c_driver = {
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-mt7621.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-mt7621.c
@@ -304,7 +304,8 @@
 
 	if (i2c->bus_freq == 0) {
 		dev_warn(i2c->dev, "clock-frequency 0 not supported\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_disable_clk;
 	}
 
 	adap = &i2c->adap;
@@ -322,10 +323,15 @@
 
 	ret = i2c_add_adapter(adap);
 	if (ret < 0)
-		return ret;
+		goto err_disable_clk;
 
 	dev_info(&pdev->dev, "clock %u kHz\n", i2c->bus_freq / 1000);
 
+	return 0;
+
+err_disable_clk:
+	clk_disable_unprepare(i2c->clk);
+
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-mxs.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-mxs.c
@@ -25,6 +25,7 @@
 #include <linux/of_device.h>
 #include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
+#include <linux/dma/mxs-dma.h>
 
 #define DRIVER_NAME "mxs-i2c"
 
@@ -200,7 +201,8 @@
 		dma_map_sg(i2c->dev, &i2c->sg_io[0], 1, DMA_TO_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, &i2c->sg_io[0], 1,
 					DMA_MEM_TO_DEV,
-					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
+					DMA_PREP_INTERRUPT |
+					MXS_DMA_CTRL_WAIT4END);
 		if (!desc) {
 			dev_err(i2c->dev,
 				"Failed to get DMA data write descriptor.\n");
@@ -228,7 +230,8 @@
 		dma_map_sg(i2c->dev, &i2c->sg_io[1], 1, DMA_FROM_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, &i2c->sg_io[1], 1,
 					DMA_DEV_TO_MEM,
-					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
+					DMA_PREP_INTERRUPT |
+					MXS_DMA_CTRL_WAIT4END);
 		if (!desc) {
 			dev_err(i2c->dev,
 				"Failed to get DMA data write descriptor.\n");
@@ -260,7 +263,8 @@
 		dma_map_sg(i2c->dev, i2c->sg_io, 2, DMA_TO_DEVICE);
 		desc = dmaengine_prep_slave_sg(i2c->dmach, i2c->sg_io, 2,
 					DMA_MEM_TO_DEV,
-					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
+					DMA_PREP_INTERRUPT |
+					MXS_DMA_CTRL_WAIT4END);
 		if (!desc) {
 			dev_err(i2c->dev,
 				"Failed to get DMA data write descriptor.\n");
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-nvidia-gpu.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-nvidia-gpu.c
@@ -8,6 +8,7 @@
 #include <linux/delay.h>
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
+#include <linux/iopoll.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/platform_device.h>
@@ -75,20 +76,15 @@
 
 static int gpu_i2c_check_status(struct gpu_i2c_dev *i2cd)
 {
-	unsigned long target = jiffies + msecs_to_jiffies(1000);
 	u32 val;
+	int ret;
 
-	do {
-		val = readl(i2cd->regs + I2C_MST_CNTL);
-		if (!(val & I2C_MST_CNTL_CYCLE_TRIGGER))
-			break;
-		if ((val & I2C_MST_CNTL_STATUS) !=
-				I2C_MST_CNTL_STATUS_BUS_BUSY)
-			break;
-		usleep_range(500, 600);
-	} while (time_is_after_jiffies(target));
+	ret = readl_poll_timeout(i2cd->regs + I2C_MST_CNTL, val,
+				 !(val & I2C_MST_CNTL_CYCLE_TRIGGER) ||
+				 (val & I2C_MST_CNTL_STATUS) != I2C_MST_CNTL_STATUS_BUS_BUSY,
+				 500, 1000 * USEC_PER_MSEC);
 
-	if (time_is_before_jiffies(target)) {
+	if (ret) {
 		dev_err(i2cd->dev, "i2c timeout error %x\n", val);
 		return -ETIMEDOUT;
 	}
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-ocores.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-ocores.c
@@ -343,18 +343,18 @@
  * ocores_isr(), we just add our polling code around it.
  *
  * It can run in atomic context
+ *
+ * Return: 0 on success, -ETIMEDOUT on timeout
  */
-static void ocores_process_polling(struct ocores_i2c *i2c)
+static int ocores_process_polling(struct ocores_i2c *i2c)
 {
-	while (1) {
-		irqreturn_t ret;
-		int err;
+	irqreturn_t ret;
+	int err = 0;
 
+	while (1) {
 		err = ocores_poll_wait(i2c);
-		if (err) {
-			i2c->state = STATE_ERROR;
+		if (err)
 			break; /* timeout */
-		}
 
 		ret = ocores_isr(-1, i2c);
 		if (ret == IRQ_NONE)
@@ -365,13 +365,15 @@
 					break;
 		}
 	}
+
+	return err;
 }
 
 static int ocores_xfer_core(struct ocores_i2c *i2c,
 			    struct i2c_msg *msgs, int num,
 			    bool polling)
 {
-	int ret;
+	int ret = 0;
 	u8 ctrl;
 
 	ctrl = oc_getreg(i2c, OCI2C_CONTROL);
@@ -389,15 +391,16 @@
 	oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_START);
 
 	if (polling) {
-		ocores_process_polling(i2c);
+		ret = ocores_process_polling(i2c);
 	} else {
-		ret = wait_event_timeout(i2c->wait,
-					 (i2c->state == STATE_ERROR) ||
-					 (i2c->state == STATE_DONE), HZ);
-		if (ret == 0) {
-			ocores_process_timeout(i2c);
-			return -ETIMEDOUT;
-		}
+		if (wait_event_timeout(i2c->wait,
+				       (i2c->state == STATE_ERROR) ||
+				       (i2c->state == STATE_DONE), HZ) == 0)
+			ret = -ETIMEDOUT;
+	}
+	if (ret) {
+		ocores_process_timeout(i2c);
+		return ret;
 	}
 
 	return (i2c->state == STATE_DONE) ? num : -EIO;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-octeon-core.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-octeon-core.c
@@ -347,7 +347,7 @@
 		if (result)
 			return result;
 		if (recv_len && i == 0) {
-			if (data[i] > I2C_SMBUS_BLOCK_MAX + 1)
+			if (data[i] > I2C_SMBUS_BLOCK_MAX)
 				return -EPROTO;
 			length += data[i];
 		}
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-omap.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-omap.c
@@ -1058,7 +1058,7 @@
 	u16 stat;
 
 	stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG);
-	mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG);
+	mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG) & ~OMAP_I2C_STAT_NACK;
 
 	if (stat & mask)
 		ret = IRQ_WAKE_THREAD;
@@ -1408,9 +1408,9 @@
 	pm_runtime_set_autosuspend_delay(omap->dev, OMAP_I2C_PM_TIMEOUT);
 	pm_runtime_use_autosuspend(omap->dev);
 
-	r = pm_runtime_get_sync(omap->dev);
+	r = pm_runtime_resume_and_get(omap->dev);
 	if (r < 0)
-		goto err_free_mem;
+		goto err_disable_pm;
 
 	/*
 	 * Read the Rev hi bit-[15:14] ie scheme this is 1 indicates ver2.
@@ -1518,8 +1518,8 @@
 	omap_i2c_write_reg(omap, OMAP_I2C_CON_REG, 0);
 	pm_runtime_dont_use_autosuspend(omap->dev);
 	pm_runtime_put_sync(omap->dev);
+err_disable_pm:
 	pm_runtime_disable(&pdev->dev);
-err_free_mem:
 
 	return r;
 }
@@ -1530,7 +1530,7 @@
 	int ret;
 
 	i2c_del_adapter(&omap->adapter);
-	ret = pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_resume_and_get(&pdev->dev);
 	if (ret < 0)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-owl.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-owl.c
@@ -179,6 +179,9 @@
 	fifostat = readl(i2c_dev->base + OWL_I2C_REG_FIFOSTAT);
 	if (fifostat & OWL_I2C_FIFOSTAT_RNB) {
 		i2c_dev->err = -ENXIO;
+		/* Clear NACK error bit by writing "1" */
+		owl_i2c_update_reg(i2c_dev->base + OWL_I2C_REG_FIFOSTAT,
+				   OWL_I2C_FIFOSTAT_RNB, true);
 		goto stop;
 	}
 
@@ -186,6 +189,9 @@
 	stat = readl(i2c_dev->base + OWL_I2C_REG_STAT);
 	if (stat & OWL_I2C_STAT_BEB) {
 		i2c_dev->err = -EIO;
+		/* Clear BUS error bit by writing "1" */
+		owl_i2c_update_reg(i2c_dev->base + OWL_I2C_REG_STAT,
+				   OWL_I2C_STAT_BEB, true);
 		goto stop;
 	}
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-pasemi.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-pasemi.c
@@ -137,6 +137,12 @@
 
 		TXFIFO_WR(smbus, msg->buf[msg->len-1] |
 			  (stop ? MTXFIFO_STOP : 0));
+
+		if (stop) {
+			err = pasemi_smb_waitready(smbus);
+			if (err)
+				goto reset_out;
+		}
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-pca-platform.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-pca-platform.c
@@ -140,7 +140,7 @@
 	int ret = 0;
 	int irq;
 
-	irq = platform_get_irq(pdev, 0);
+	irq = platform_get_irq_optional(pdev, 0);
 	/* If irq is 0, we do polling. */
 	if (irq < 0)
 		irq = 0;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-piix4.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-piix4.c
@@ -977,7 +977,8 @@
 	}
 
 	if (dev->vendor == PCI_VENDOR_ID_AMD &&
-	    dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) {
+	    (dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS ||
+	     dev->device == PCI_DEVICE_ID_AMD_KERNCZ_SMBUS)) {
 		retval = piix4_setup_sb800(dev, id, 1);
 	}
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-pxa-pci.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-pxa-pci.c
@@ -105,7 +105,7 @@
 	int i;
 	struct ce4100_devices *sds;
 
-	ret = pci_enable_device_mem(dev);
+	ret = pcim_enable_device(dev);
 	if (ret)
 		return ret;
 
@@ -114,10 +114,8 @@
 		return -EINVAL;
 	}
 	sds = kzalloc(sizeof(*sds), GFP_KERNEL);
-	if (!sds) {
-		ret = -ENOMEM;
-		goto err_mem;
-	}
+	if (!sds)
+		return -ENOMEM;
 
 	for (i = 0; i < ARRAY_SIZE(sds->pdev); i++) {
 		sds->pdev[i] = add_i2c_device(dev, i);
@@ -133,8 +131,6 @@
 
 err_dev_add:
 	kfree(sds);
-err_mem:
-	pci_disable_device(dev);
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-pxa.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-pxa.c
@@ -312,11 +312,10 @@
 	dev_err(dev, "IBMR: %08x IDBR: %08x ICR: %08x ISR: %08x\n",
 		readl(_IBMR(i2c)), readl(_IDBR(i2c)), readl(_ICR(i2c)),
 		readl(_ISR(i2c)));
-	dev_dbg(dev, "log: ");
+	dev_err(dev, "log:");
 	for (i = 0; i < i2c->irqlogidx; i++)
-		pr_debug("[%08x:%08x] ", i2c->isrlog[i], i2c->icrlog[i]);
-
-	pr_debug("\n");
+		pr_cont(" [%03x:%05x]", i2c->isrlog[i], i2c->icrlog[i]);
+	pr_cont("\n");
 }
 
 #else /* ifdef DEBUG */
@@ -706,11 +705,9 @@
 {
 	u32 icr;
 
-	/*
-	 * Clear the STOP and ACK flags
-	 */
+	/* Clear the START, STOP, ACK, TB and MA flags */
 	icr = readl(_ICR(i2c));
-	icr &= ~(ICR_STOP | ICR_ACKNAK);
+	icr &= ~(ICR_START | ICR_STOP | ICR_ACKNAK | ICR_TB | ICR_MA);
 	writel(icr, _ICR(i2c));
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-qcom-geni.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-qcom-geni.c
@@ -87,6 +87,9 @@
 	u32 clk_freq_out;
 	const struct geni_i2c_clk_fld *clk_fld;
 	int suspended;
+	void *dma_buf;
+	size_t xfer_len;
+	dma_addr_t dma_addr;
 };
 
 struct geni_i2c_err_log {
@@ -350,14 +353,39 @@
 		dev_err(gi2c->se.dev, "Timeout resetting TX_FSM\n");
 }
 
+static void geni_i2c_rx_msg_cleanup(struct geni_i2c_dev *gi2c,
+				     struct i2c_msg *cur)
+{
+	gi2c->cur_rd = 0;
+	if (gi2c->dma_buf) {
+		if (gi2c->err)
+			geni_i2c_rx_fsm_rst(gi2c);
+		geni_se_rx_dma_unprep(&gi2c->se, gi2c->dma_addr, gi2c->xfer_len);
+		i2c_put_dma_safe_msg_buf(gi2c->dma_buf, cur, !gi2c->err);
+	}
+}
+
+static void geni_i2c_tx_msg_cleanup(struct geni_i2c_dev *gi2c,
+				     struct i2c_msg *cur)
+{
+	gi2c->cur_wr = 0;
+	if (gi2c->dma_buf) {
+		if (gi2c->err)
+			geni_i2c_tx_fsm_rst(gi2c);
+		geni_se_tx_dma_unprep(&gi2c->se, gi2c->dma_addr, gi2c->xfer_len);
+		i2c_put_dma_safe_msg_buf(gi2c->dma_buf, cur, !gi2c->err);
+	}
+}
+
 static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,
 				u32 m_param)
 {
-	dma_addr_t rx_dma;
+	dma_addr_t rx_dma = 0;
 	unsigned long time_left;
 	void *dma_buf = NULL;
 	struct geni_se *se = &gi2c->se;
 	size_t len = msg->len;
+	struct i2c_msg *cur;
 
 	if (!of_machine_is_compatible("lenovo,yoga-c630"))
 		dma_buf = i2c_get_dma_safe_msg_buf(msg, 32);
@@ -374,19 +402,18 @@
 		geni_se_select_mode(se, GENI_SE_FIFO);
 		i2c_put_dma_safe_msg_buf(dma_buf, msg, false);
 		dma_buf = NULL;
+	} else {
+		gi2c->xfer_len = len;
+		gi2c->dma_addr = rx_dma;
+		gi2c->dma_buf = dma_buf;
 	}
 
+	cur = gi2c->cur;
 	time_left = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT);
 	if (!time_left)
 		geni_i2c_abort_xfer(gi2c);
 
-	gi2c->cur_rd = 0;
-	if (dma_buf) {
-		if (gi2c->err)
-			geni_i2c_rx_fsm_rst(gi2c);
-		geni_se_rx_dma_unprep(se, rx_dma, len);
-		i2c_put_dma_safe_msg_buf(dma_buf, msg, !gi2c->err);
-	}
+	geni_i2c_rx_msg_cleanup(gi2c, cur);
 
 	return gi2c->err;
 }
@@ -394,11 +421,12 @@
 static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,
 				u32 m_param)
 {
-	dma_addr_t tx_dma;
+	dma_addr_t tx_dma = 0;
 	unsigned long time_left;
 	void *dma_buf = NULL;
 	struct geni_se *se = &gi2c->se;
 	size_t len = msg->len;
+	struct i2c_msg *cur;
 
 	if (!of_machine_is_compatible("lenovo,yoga-c630"))
 		dma_buf = i2c_get_dma_safe_msg_buf(msg, 32);
@@ -415,22 +443,21 @@
 		geni_se_select_mode(se, GENI_SE_FIFO);
 		i2c_put_dma_safe_msg_buf(dma_buf, msg, false);
 		dma_buf = NULL;
+	} else {
+		gi2c->xfer_len = len;
+		gi2c->dma_addr = tx_dma;
+		gi2c->dma_buf = dma_buf;
 	}
 
 	if (!dma_buf) /* Get FIFO IRQ */
 		writel_relaxed(1, se->base + SE_GENI_TX_WATERMARK_REG);
 
+	cur = gi2c->cur;
 	time_left = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT);
 	if (!time_left)
 		geni_i2c_abort_xfer(gi2c);
 
-	gi2c->cur_wr = 0;
-	if (dma_buf) {
-		if (gi2c->err)
-			geni_i2c_tx_fsm_rst(gi2c);
-		geni_se_tx_dma_unprep(se, tx_dma, len);
-		i2c_put_dma_safe_msg_buf(dma_buf, msg, !gi2c->err);
-	}
+	geni_i2c_tx_msg_cleanup(gi2c, cur);
 
 	return gi2c->err;
 }
@@ -614,6 +641,14 @@
 	return 0;
 }
 
+static void geni_i2c_shutdown(struct platform_device *pdev)
+{
+	struct geni_i2c_dev *gi2c = platform_get_drvdata(pdev);
+
+	/* Make client i2c transfers start failing */
+	i2c_mark_adapter_suspended(&gi2c->adap);
+}
+
 static int __maybe_unused geni_i2c_runtime_suspend(struct device *dev)
 {
 	int ret;
@@ -650,6 +685,8 @@
 {
 	struct geni_i2c_dev *gi2c = dev_get_drvdata(dev);
 
+	i2c_mark_adapter_suspended(&gi2c->adap);
+
 	if (!gi2c->suspended) {
 		geni_i2c_runtime_suspend(dev);
 		pm_runtime_disable(dev);
@@ -659,8 +696,16 @@
 	return 0;
 }
 
+static int __maybe_unused geni_i2c_resume_noirq(struct device *dev)
+{
+	struct geni_i2c_dev *gi2c = dev_get_drvdata(dev);
+
+	i2c_mark_adapter_resumed(&gi2c->adap);
+	return 0;
+}
+
 static const struct dev_pm_ops geni_i2c_pm_ops = {
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(geni_i2c_suspend_noirq, NULL)
+	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(geni_i2c_suspend_noirq, geni_i2c_resume_noirq)
 	SET_RUNTIME_PM_OPS(geni_i2c_runtime_suspend, geni_i2c_runtime_resume,
 									NULL)
 };
@@ -674,6 +719,7 @@
 static struct platform_driver geni_i2c_driver = {
 	.probe  = geni_i2c_probe,
 	.remove = geni_i2c_remove,
+	.shutdown = geni_i2c_shutdown,
 	.driver = {
 		.name = "geni_i2c",
 		.pm = &geni_i2c_pm_ops,
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-qup.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-qup.c
@@ -806,7 +806,8 @@
 	if (ret || qup->bus_err || qup->qup_err) {
 		reinit_completion(&qup->xfer);
 
-		if (qup_i2c_change_state(qup, QUP_RUN_STATE)) {
+		ret = qup_i2c_change_state(qup, QUP_RUN_STATE);
+		if (ret) {
 			dev_err(qup->dev, "change to run state timed out");
 			goto desc_err;
 		}
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-rcar.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-rcar.c
@@ -89,7 +89,6 @@
 
 #define RCAR_BUS_PHASE_START	(MDBS | MIE | ESG)
 #define RCAR_BUS_PHASE_DATA	(MDBS | MIE)
-#define RCAR_BUS_MASK_DATA	(~(ESG | FSB) & 0xFF)
 #define RCAR_BUS_PHASE_STOP	(MDBS | MIE | FSB)
 
 #define RCAR_IRQ_SEND	(MNR | MAL | MST | MAT | MDE)
@@ -117,6 +116,7 @@
 };
 
 struct rcar_i2c_priv {
+	u32 flags;
 	void __iomem *io;
 	struct i2c_adapter adap;
 	struct i2c_msg *msg;
@@ -127,7 +127,6 @@
 
 	int pos;
 	u32 icccr;
-	u32 flags;
 	u8 recovery_icmcr;	/* protected by adapter lock */
 	enum rcar_i2c_type devtype;
 	struct i2c_client *slave;
@@ -580,13 +579,15 @@
 			rcar_i2c_write(priv, ICSIER, SDR | SSR | SAR);
 		}
 
-		rcar_i2c_write(priv, ICSSR, ~SAR & 0xff);
+		/* Clear SSR, too, because of old STOPs to other clients than us */
+		rcar_i2c_write(priv, ICSSR, ~(SAR | SSR) & 0xff);
 	}
 
 	/* master sent stop */
 	if (ssr_filtered & SSR) {
 		i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value);
-		rcar_i2c_write(priv, ICSIER, SAR | SSR);
+		rcar_i2c_write(priv, ICSCR, SIE | SDBS); /* clear our NACK */
+		rcar_i2c_write(priv, ICSIER, SAR);
 		rcar_i2c_write(priv, ICSSR, ~SSR & 0xff);
 	}
 
@@ -614,7 +615,7 @@
 /*
  * This driver has a lock-free design because there are IP cores (at least
  * R-Car Gen2) which have an inherent race condition in their hardware design.
- * There, we need to clear RCAR_BUS_MASK_DATA bits as soon as possible after
+ * There, we need to switch to RCAR_BUS_PHASE_DATA as soon as possible after
  * the interrupt was generated, otherwise an unwanted repeated message gets
  * generated. It turned out that taking a spinlock at the beginning of the ISR
  * was already causing repeated messages. Thus, this driver was converted to
@@ -623,13 +624,11 @@
 static irqreturn_t rcar_i2c_irq(int irq, void *ptr)
 {
 	struct rcar_i2c_priv *priv = ptr;
-	u32 msr, val;
+	u32 msr;
 
 	/* Clear START or STOP immediately, except for REPSTART after read */
-	if (likely(!(priv->flags & ID_P_REP_AFTER_RD))) {
-		val = rcar_i2c_read(priv, ICMCR);
-		rcar_i2c_write(priv, ICMCR, val & RCAR_BUS_MASK_DATA);
-	}
+	if (likely(!(priv->flags & ID_P_REP_AFTER_RD)))
+		rcar_i2c_write(priv, ICMCR, RCAR_BUS_PHASE_DATA);
 
 	msr = rcar_i2c_read(priv, ICMSR);
 
@@ -850,7 +849,7 @@
 	priv->slave = slave;
 	rcar_i2c_write(priv, ICSAR, slave->addr);
 	rcar_i2c_write(priv, ICSSR, 0);
-	rcar_i2c_write(priv, ICSIER, SAR | SSR);
+	rcar_i2c_write(priv, ICSIER, SAR);
 	rcar_i2c_write(priv, ICSCR, SIE | SDBS);
 
 	return 0;
@@ -862,11 +861,14 @@
 
 	WARN_ON(!priv->slave);
 
-	/* disable irqs and ensure none is running before clearing ptr */
+	/* ensure no irq is running before clearing ptr */
+	disable_irq(priv->irq);
 	rcar_i2c_write(priv, ICSIER, 0);
-	rcar_i2c_write(priv, ICSCR, 0);
+	rcar_i2c_write(priv, ICSSR, 0);
+	enable_irq(priv->irq);
+	rcar_i2c_write(priv, ICSCR, SDBS);
+	rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
 
-	synchronize_irq(priv->irq);
 	priv->slave = NULL;
 
 	pm_runtime_put(rcar_i2c_priv_to_dev(priv));
@@ -971,6 +973,8 @@
 	if (ret < 0)
 		goto out_pm_put;
 
+	rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
+
 	if (priv->devtype == I2C_RCAR_GEN3) {
 		priv->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
 		if (!IS_ERR(priv->rstc)) {
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-rk3x.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-rk3x.c
@@ -79,7 +79,7 @@
 #define DEFAULT_SCL_RATE  (100 * 1000) /* Hz */
 
 /**
- * struct i2c_spec_values:
+ * struct i2c_spec_values - I2C specification values for various modes
  * @min_hold_start_ns: min hold time (repeated) START condition
  * @min_low_ns: min LOW period of the SCL clock
  * @min_high_ns: min HIGH period of the SCL cloc
@@ -135,7 +135,7 @@
 };
 
 /**
- * struct rk3x_i2c_calced_timings:
+ * struct rk3x_i2c_calced_timings - calculated V1 timings
  * @div_low: Divider output for low
  * @div_high: Divider output for high
  * @tuning: Used to adjust setup/hold data time,
@@ -158,7 +158,7 @@
 };
 
 /**
- * struct rk3x_i2c_soc_data:
+ * struct rk3x_i2c_soc_data - SOC-specific data
  * @grf_offset: offset inside the grf regmap for setting the i2c type
  * @calc_timings: Callback function for i2c timing information calculated
  */
@@ -238,7 +238,8 @@
 }
 
 /**
- * Generate a START condition, which triggers a REG_INT_START interrupt.
+ * rk3x_i2c_start - Generate a START condition, which triggers a REG_INT_START interrupt.
+ * @i2c: target controller data
  */
 static void rk3x_i2c_start(struct rk3x_i2c *i2c)
 {
@@ -257,8 +258,8 @@
 }
 
 /**
- * Generate a STOP condition, which triggers a REG_INT_STOP interrupt.
- *
+ * rk3x_i2c_stop - Generate a STOP condition, which triggers a REG_INT_STOP interrupt.
+ * @i2c: target controller data
  * @error: Error code to return in rk3x_i2c_xfer
  */
 static void rk3x_i2c_stop(struct rk3x_i2c *i2c, int error)
@@ -297,7 +298,8 @@
 }
 
 /**
- * Setup a read according to i2c->msg
+ * rk3x_i2c_prepare_read - Setup a read according to i2c->msg
+ * @i2c: target controller data
  */
 static void rk3x_i2c_prepare_read(struct rk3x_i2c *i2c)
 {
@@ -328,7 +330,8 @@
 }
 
 /**
- * Fill the transmit buffer with data from i2c->msg
+ * rk3x_i2c_fill_transmit_buf - Fill the transmit buffer with data from i2c->msg
+ * @i2c: target controller data
  */
 static void rk3x_i2c_fill_transmit_buf(struct rk3x_i2c *i2c)
 {
@@ -415,15 +418,15 @@
 {
 	unsigned int i;
 	unsigned int len = i2c->msg->len - i2c->processed;
-	u32 uninitialized_var(val);
+	u32 val;
 	u8 byte;
 
 	/* we only care for MBRF here. */
 	if (!(ipd & REG_INT_MBRF))
 		return;
 
-	/* ack interrupt */
-	i2c_writel(i2c, REG_INT_MBRF, REG_IPD);
+	/* ack interrupt (read also produces a spurious START flag, clear it too) */
+	i2c_writel(i2c, REG_INT_MBRF | REG_INT_START, REG_IPD);
 
 	/* Can only handle a maximum of 32 bytes at a time */
 	if (len > 32)
@@ -531,11 +534,10 @@
 }
 
 /**
- * Get timing values of I2C specification
- *
+ * rk3x_i2c_get_spec - Get timing values of I2C specification
  * @speed: Desired SCL frequency
  *
- * Returns: Matched i2c spec values.
+ * Return: Matched i2c_spec_values.
  */
 static const struct i2c_spec_values *rk3x_i2c_get_spec(unsigned int speed)
 {
@@ -548,13 +550,12 @@
 }
 
 /**
- * Calculate divider values for desired SCL frequency
- *
+ * rk3x_i2c_v0_calc_timings - Calculate divider values for desired SCL frequency
  * @clk_rate: I2C input clock rate
  * @t: Known I2C timing information
  * @t_calc: Caculated rk3x private timings that would be written into regs
  *
- * Returns: 0 on success, -EINVAL if the goal SCL rate is too slow. In that case
+ * Return: %0 on success, -%EINVAL if the goal SCL rate is too slow. In that case
  * a best-effort divider value is returned in divs. If the target rate is
  * too high, we silently use the highest possible rate.
  */
@@ -709,13 +710,12 @@
 }
 
 /**
- * Calculate timing values for desired SCL frequency
- *
+ * rk3x_i2c_v1_calc_timings - Calculate timing values for desired SCL frequency
  * @clk_rate: I2C input clock rate
  * @t: Known I2C timing information
  * @t_calc: Caculated rk3x private timings that would be written into regs
  *
- * Returns: 0 on success, -EINVAL if the goal SCL rate is too slow. In that case
+ * Return: %0 on success, -%EINVAL if the goal SCL rate is too slow. In that case
  * a best-effort divider value is returned in divs. If the target rate is
  * too high, we silently use the highest possible rate.
  * The following formulas are v1's method to calculate timings.
@@ -959,14 +959,14 @@
 }
 
 /**
- * Setup I2C registers for an I2C operation specified by msgs, num.
- *
- * Must be called with i2c->lock held.
- *
+ * rk3x_i2c_setup - Setup I2C registers for an I2C operation specified by msgs, num.
+ * @i2c: target controller data
  * @msgs: I2C msgs to process
  * @num: Number of msgs
  *
- * returns: Number of I2C msgs processed or negative in case of error
+ * Must be called with i2c->lock held.
+ *
+ * Return: Number of I2C msgs processed or negative in case of error
  */
 static int rk3x_i2c_setup(struct rk3x_i2c *i2c, struct i2c_msg *msgs, int num)
 {
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-robotfuzz-osif.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-robotfuzz-osif.c
@@ -83,7 +83,7 @@
 			}
 		}
 
-		ret = osif_usb_read(adapter, OSIFI2C_STOP, 0, 0, NULL, 0);
+		ret = osif_usb_write(adapter, OSIFI2C_STOP, 0, 0, NULL, 0);
 		if (ret) {
 			dev_err(&adapter->dev, "failure sending STOP\n");
 			return -EREMOTEIO;
@@ -153,7 +153,7 @@
 	 * Set bus frequency. The frequency is:
 	 * 120,000,000 / ( 16 + 2 * div * 4^prescale).
 	 * Using dev = 52, prescale = 0 give 100KHz */
-	ret = osif_usb_read(&priv->adapter, OSIFI2C_SET_BIT_RATE, 52, 0,
+	ret = osif_usb_write(&priv->adapter, OSIFI2C_SET_BIT_RATE, 52, 0,
 			    NULL, 0);
 	if (ret) {
 		dev_err(&interface->dev, "failure sending bit rate");
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-s3c2410.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-s3c2410.c
@@ -484,7 +484,10 @@
 					 * forces us to send a new START
 					 * when we change direction
 					 */
+					dev_dbg(i2c->dev,
+						"missing START before write->read\n");
 					s3c24xx_i2c_stop(i2c, -EINVAL);
+					break;
 				}
 
 				goto retry_write;
@@ -1138,7 +1141,7 @@
 	 */
 	if (!(i2c->quirks & QUIRK_POLL)) {
 		i2c->irq = ret = platform_get_irq(pdev, 0);
-		if (ret <= 0) {
+		if (ret < 0) {
 			dev_err(&pdev->dev, "cannot find IRQ\n");
 			clk_unprepare(i2c->clk);
 			return ret;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-sh7760.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-sh7760.c
@@ -471,7 +471,10 @@
 		goto out2;
 	}
 
-	id->irq = platform_get_irq(pdev, 0);
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		goto out3;
+	id->irq = ret;
 
 	id->adap.nr = pdev->id;
 	id->adap.algo = &sh7760_i2c_algo;
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-sh_mobile.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-sh_mobile.c
@@ -129,6 +129,7 @@
 	int sr;
 	bool send_stop;
 	bool stop_after_dma;
+	bool atomic_xfer;
 
 	struct resource *res;
 	struct dma_chan *dma_tx;
@@ -333,13 +334,15 @@
 		ret = iic_rd(pd, ICDR);
 		break;
 	case OP_RX_STOP: /* enable DTE interrupt, issue stop */
-		iic_wr(pd, ICIC,
-		       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
+		if (!pd->atomic_xfer)
+			iic_wr(pd, ICIC,
+			       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
 		iic_wr(pd, ICCR, ICCR_ICE | ICCR_RACK);
 		break;
 	case OP_RX_STOP_DATA: /* enable DTE interrupt, read data, issue stop */
-		iic_wr(pd, ICIC,
-		       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
+		if (!pd->atomic_xfer)
+			iic_wr(pd, ICIC,
+			       ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE);
 		ret = iic_rd(pd, ICDR);
 		iic_wr(pd, ICCR, ICCR_ICE | ICCR_RACK);
 		break;
@@ -435,7 +438,8 @@
 
 	if (wakeup) {
 		pd->sr |= SW_DONE;
-		wake_up(&pd->wait);
+		if (!pd->atomic_xfer)
+			wake_up(&pd->wait);
 	}
 
 	/* defeat write posting to avoid spurious WAIT interrupts */
@@ -587,6 +591,9 @@
 	pd->pos = -1;
 	pd->sr = 0;
 
+	if (pd->atomic_xfer)
+		return;
+
 	pd->dma_buf = i2c_get_dma_safe_msg_buf(pd->msg, 8);
 	if (pd->dma_buf)
 		sh_mobile_i2c_xfer_dma(pd);
@@ -643,15 +650,13 @@
 	return i ? 0 : -ETIMEDOUT;
 }
 
-static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
-			      struct i2c_msg *msgs,
-			      int num)
+static int sh_mobile_xfer(struct sh_mobile_i2c_data *pd,
+			 struct i2c_msg *msgs, int num)
 {
-	struct sh_mobile_i2c_data *pd = i2c_get_adapdata(adapter);
 	struct i2c_msg	*msg;
 	int err = 0;
 	int i;
-	long timeout;
+	long time_left;
 
 	/* Wake up device and enable clock */
 	pm_runtime_get_sync(pd->dev);
@@ -668,15 +673,35 @@
 		if (do_start)
 			i2c_op(pd, OP_START);
 
-		/* The interrupt handler takes care of the rest... */
-		timeout = wait_event_timeout(pd->wait,
-				       pd->sr & (ICSR_TACK | SW_DONE),
-				       adapter->timeout);
+		if (pd->atomic_xfer) {
+			unsigned long j = jiffies + pd->adap.timeout;
 
-		/* 'stop_after_dma' tells if DMA transfer was complete */
-		i2c_put_dma_safe_msg_buf(pd->dma_buf, pd->msg, pd->stop_after_dma);
+			time_left = time_before_eq(jiffies, j);
+			while (time_left &&
+			       !(pd->sr & (ICSR_TACK | SW_DONE))) {
+				unsigned char sr = iic_rd(pd, ICSR);
+
+				if (sr & (ICSR_AL   | ICSR_TACK |
+					  ICSR_WAIT | ICSR_DTE)) {
+					sh_mobile_i2c_isr(0, pd);
+					udelay(150);
+				} else {
+					cpu_relax();
+				}
+				time_left = time_before_eq(jiffies, j);
+			}
+		} else {
+			/* The interrupt handler takes care of the rest... */
+			time_left = wait_event_timeout(pd->wait,
+					pd->sr & (ICSR_TACK | SW_DONE),
+					pd->adap.timeout);
+
+			/* 'stop_after_dma' tells if DMA xfer was complete */
+			i2c_put_dma_safe_msg_buf(pd->dma_buf, pd->msg,
+						 pd->stop_after_dma);
+		}
 
-		if (!timeout) {
+		if (!time_left) {
 			dev_err(pd->dev, "Transfer request timed out\n");
 			if (pd->dma_direction != DMA_NONE)
 				sh_mobile_i2c_cleanup_dma(pd);
@@ -702,14 +727,35 @@
 	return err ?: num;
 }
 
+static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
+			      struct i2c_msg *msgs,
+			      int num)
+{
+	struct sh_mobile_i2c_data *pd = i2c_get_adapdata(adapter);
+
+	pd->atomic_xfer = false;
+	return sh_mobile_xfer(pd, msgs, num);
+}
+
+static int sh_mobile_i2c_xfer_atomic(struct i2c_adapter *adapter,
+				     struct i2c_msg *msgs,
+				     int num)
+{
+	struct sh_mobile_i2c_data *pd = i2c_get_adapdata(adapter);
+
+	pd->atomic_xfer = true;
+	return sh_mobile_xfer(pd, msgs, num);
+}
+
 static u32 sh_mobile_i2c_func(struct i2c_adapter *adapter)
 {
 	return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_PROTOCOL_MANGLING;
 }
 
 static const struct i2c_algorithm sh_mobile_i2c_algorithm = {
-	.functionality	= sh_mobile_i2c_func,
-	.master_xfer	= sh_mobile_i2c_xfer,
+	.functionality = sh_mobile_i2c_func,
+	.master_xfer = sh_mobile_i2c_xfer,
+	.master_xfer_atomic = sh_mobile_i2c_xfer_atomic,
 };
 
 static const struct i2c_adapter_quirks sh_mobile_i2c_quirks = {
@@ -767,7 +813,7 @@
 static const struct of_device_id sh_mobile_i2c_dt_ids[] = {
 	{ .compatible = "renesas,iic-r8a73a4", .data = &fast_clock_dt_config },
 	{ .compatible = "renesas,iic-r8a7740", .data = &r8a7740_dt_config },
-	{ .compatible = "renesas,iic-r8a774c0", .data = &fast_clock_dt_config },
+	{ .compatible = "renesas,iic-r8a774c0", .data = &v2_freq_calc_dt_config },
 	{ .compatible = "renesas,iic-r8a7790", .data = &v2_freq_calc_dt_config },
 	{ .compatible = "renesas,iic-r8a7791", .data = &v2_freq_calc_dt_config },
 	{ .compatible = "renesas,iic-r8a7792", .data = &v2_freq_calc_dt_config },
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-sprd.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-sprd.c
@@ -72,6 +72,8 @@
 
 /* timeout (ms) for pm runtime autosuspend */
 #define SPRD_I2C_PM_TIMEOUT	1000
+/* timeout (ms) for transfer message */
+#define I2C_XFER_TIMEOUT	1000
 
 /* SPRD i2c data structure */
 struct sprd_i2c {
@@ -244,6 +246,7 @@
 			       struct i2c_msg *msg, bool is_last_msg)
 {
 	struct sprd_i2c *i2c_dev = i2c_adap->algo_data;
+	unsigned long time_left;
 
 	i2c_dev->msg = msg;
 	i2c_dev->buf = msg->buf;
@@ -273,7 +276,10 @@
 
 	sprd_i2c_opt_start(i2c_dev);
 
-	wait_for_completion(&i2c_dev->complete);
+	time_left = wait_for_completion_timeout(&i2c_dev->complete,
+				msecs_to_jiffies(I2C_XFER_TIMEOUT));
+	if (!time_left)
+		return -ETIMEDOUT;
 
 	return i2c_dev->err;
 }
@@ -284,7 +290,7 @@
 	struct sprd_i2c *i2c_dev = i2c_adap->algo_data;
 	int im, ret;
 
-	ret = pm_runtime_get_sync(i2c_dev->dev);
+	ret = pm_runtime_resume_and_get(i2c_dev->dev);
 	if (ret < 0)
 		return ret;
 
@@ -573,10 +579,12 @@
 
 	ret = pm_runtime_get_sync(i2c_dev->dev);
 	if (ret < 0)
-		return ret;
+		dev_err(&pdev->dev, "Failed to resume device (%pe)\n", ERR_PTR(ret));
 
 	i2c_del_adapter(&i2c_dev->adap);
-	clk_disable_unprepare(i2c_dev->clk);
+
+	if (ret >= 0)
+		clk_disable_unprepare(i2c_dev->clk);
 
 	pm_runtime_put_noidle(i2c_dev->dev);
 	pm_runtime_disable(i2c_dev->dev);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-st.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-st.c
@@ -434,6 +434,7 @@
 /**
  * st_i2c_rd_fill_tx_fifo() - Fill the Tx FIFO in read mode
  * @i2c_dev: Controller's private data
+ * @max: Maximum amount of data to fill into the Tx FIFO
  *
  * This functions fills the Tx FIFO with fixed pattern when
  * in read mode to trigger clock.
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-stm32.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-stm32.c
@@ -20,13 +20,13 @@
 
 	dma = devm_kzalloc(dev, sizeof(*dma), GFP_KERNEL);
 	if (!dma)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	/* Request and configure I2C TX dma channel */
-	dma->chan_tx = dma_request_slave_channel(dev, "tx");
-	if (!dma->chan_tx) {
+	dma->chan_tx = dma_request_chan(dev, "tx");
+	if (IS_ERR(dma->chan_tx)) {
 		dev_dbg(dev, "can't request DMA tx channel\n");
-		ret = -EINVAL;
+		ret = PTR_ERR(dma->chan_tx);
 		goto fail_al;
 	}
 
@@ -42,10 +42,10 @@
 	}
 
 	/* Request and configure I2C RX dma channel */
-	dma->chan_rx = dma_request_slave_channel(dev, "rx");
-	if (!dma->chan_rx) {
+	dma->chan_rx = dma_request_chan(dev, "rx");
+	if (IS_ERR(dma->chan_rx)) {
 		dev_err(dev, "can't request DMA rx channel\n");
-		ret = -EINVAL;
+		ret = PTR_ERR(dma->chan_rx);
 		goto fail_tx;
 	}
 
@@ -75,7 +75,7 @@
 	devm_kfree(dev, dma);
 	dev_info(dev, "can't use DMA\n");
 
-	return NULL;
+	return ERR_PTR(ret);
 }
 
 void stm32_i2c_dma_free(struct stm32_i2c_dma *dma)
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-stm32f7.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-stm32f7.c
@@ -53,6 +53,8 @@
 #define STM32F7_I2C_CR1_RXDMAEN			BIT(15)
 #define STM32F7_I2C_CR1_TXDMAEN			BIT(14)
 #define STM32F7_I2C_CR1_ANFOFF			BIT(12)
+#define STM32F7_I2C_CR1_DNF_MASK		GENMASK(11, 8)
+#define STM32F7_I2C_CR1_DNF(n)			(((n) & 0xf) << 8)
 #define STM32F7_I2C_CR1_ERRIE			BIT(7)
 #define STM32F7_I2C_CR1_TCIE			BIT(6)
 #define STM32F7_I2C_CR1_STOPIE			BIT(5)
@@ -151,7 +153,7 @@
 #define STM32F7_I2C_MAX_SLAVE			0x2
 
 #define STM32F7_I2C_DNF_DEFAULT			0
-#define STM32F7_I2C_DNF_MAX			16
+#define STM32F7_I2C_DNF_MAX			15
 
 #define STM32F7_I2C_ANALOG_FILTER_ENABLE	1
 #define STM32F7_I2C_ANALOG_FILTER_DELAY_MIN	50	/* ns */
@@ -657,6 +659,13 @@
 	else
 		stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
 				     STM32F7_I2C_CR1_ANFOFF);
+
+	/* Program the Digital Filter */
+	stm32f7_i2c_clr_bits(i2c_dev->base + STM32F7_I2C_CR1,
+			     STM32F7_I2C_CR1_DNF_MASK);
+	stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
+			     STM32F7_I2C_CR1_DNF(i2c_dev->setup.dnf));
+
 	stm32f7_i2c_set_bits(i2c_dev->base + STM32F7_I2C_CR1,
 			     STM32F7_I2C_CR1_PE);
 }
@@ -1267,8 +1276,8 @@
 	 * slave[0] supports 7-bit and 10-bit slave address
 	 * slave[1] supports 7-bit slave address only
 	 */
-	for (i = 0; i < STM32F7_I2C_MAX_SLAVE; i++) {
-		if (i == 1 && (slave->flags & I2C_CLIENT_PEC))
+	for (i = STM32F7_I2C_MAX_SLAVE - 1; i >= 0; i--) {
+		if (i == 1 && (slave->flags & I2C_CLIENT_TEN))
 			continue;
 		if (!i2c_dev->slave[i]) {
 			*id = i;
@@ -1385,6 +1394,7 @@
 {
 	struct stm32f7_i2c_dev *i2c_dev = data;
 	struct stm32f7_i2c_msg *f7_msg = &i2c_dev->f7_msg;
+	struct stm32_i2c_dma *dma = i2c_dev->dma;
 	void __iomem *base = i2c_dev->base;
 	u32 status, mask;
 	int ret = IRQ_HANDLED;
@@ -1409,6 +1419,10 @@
 	if (status & STM32F7_I2C_ISR_NACKF) {
 		dev_dbg(i2c_dev->dev, "<%s>: Receive NACK\n", __func__);
 		writel_relaxed(STM32F7_I2C_ICR_NACKCF, base + STM32F7_I2C_ICR);
+		if (i2c_dev->use_dma) {
+			stm32f7_i2c_disable_dma_req(i2c_dev);
+			dmaengine_terminate_all(dma->chan_using);
+		}
 		f7_msg->result = -ENXIO;
 	}
 
@@ -1424,7 +1438,7 @@
 		/* Clear STOP flag */
 		writel_relaxed(STM32F7_I2C_ICR_STOPCF, base + STM32F7_I2C_ICR);
 
-		if (i2c_dev->use_dma) {
+		if (i2c_dev->use_dma && !f7_msg->result) {
 			ret = IRQ_WAKE_THREAD;
 		} else {
 			i2c_dev->master_mode = false;
@@ -1437,7 +1451,7 @@
 		if (f7_msg->stop) {
 			mask = STM32F7_I2C_CR2_STOP;
 			stm32f7_i2c_set_bits(base + STM32F7_I2C_CR2, mask);
-		} else if (i2c_dev->use_dma) {
+		} else if (i2c_dev->use_dma && !f7_msg->result) {
 			ret = IRQ_WAKE_THREAD;
 		} else if (f7_msg->smbus) {
 			stm32f7_i2c_smbus_rep_start(i2c_dev);
@@ -1577,12 +1591,23 @@
 	time_left = wait_for_completion_timeout(&i2c_dev->complete,
 						i2c_dev->adap.timeout);
 	ret = f7_msg->result;
+	if (ret) {
+		/*
+		 * It is possible that some unsent data have already been
+		 * written into TXDR. To avoid sending old data in a
+		 * further transfer, flush TXDR in case of any error
+		 */
+		writel_relaxed(STM32F7_I2C_ISR_TXE,
+			       i2c_dev->base + STM32F7_I2C_ISR);
+		goto pm_free;
+	}
 
 	if (!time_left) {
 		dev_dbg(i2c_dev->dev, "Access to slave 0x%x timed out\n",
 			i2c_dev->msg->addr);
 		if (i2c_dev->use_dma)
 			dmaengine_terminate_all(dma->chan_using);
+		stm32f7_i2c_wait_free_bus(i2c_dev);
 		ret = -ETIMEDOUT;
 	}
 
@@ -1625,13 +1650,22 @@
 	timeout = wait_for_completion_timeout(&i2c_dev->complete,
 					      i2c_dev->adap.timeout);
 	ret = f7_msg->result;
-	if (ret)
+	if (ret) {
+		/*
+		 * It is possible that some unsent data have already been
+		 * written into TXDR. To avoid sending old data in a
+		 * further transfer, flush TXDR in case of any error
+		 */
+		writel_relaxed(STM32F7_I2C_ISR_TXE,
+			       i2c_dev->base + STM32F7_I2C_ISR);
 		goto pm_free;
+	}
 
 	if (!timeout) {
 		dev_dbg(dev, "Access to slave 0x%x timed out\n", f7_msg->addr);
 		if (i2c_dev->use_dma)
 			dmaengine_terminate_all(dma->chan_using);
+		stm32f7_i2c_wait_free_bus(i2c_dev);
 		ret = -ETIMEDOUT;
 		goto pm_free;
 	}
@@ -1955,6 +1989,15 @@
 	i2c_dev->dma = stm32_i2c_dma_request(i2c_dev->dev, phy_addr,
 					     STM32F7_I2C_TXDR,
 					     STM32F7_I2C_RXDR);
+	if (PTR_ERR(i2c_dev->dma) == -ENODEV)
+		i2c_dev->dma = NULL;
+	else if (IS_ERR(i2c_dev->dma)) {
+		ret = PTR_ERR(i2c_dev->dma);
+		if (ret != -EPROBE_DEFER)
+			dev_err(&pdev->dev,
+				"Failed to request dma error %i\n", ret);
+		goto clk_free;
+	}
 
 	platform_set_drvdata(pdev, i2c_dev);
 
@@ -1985,6 +2028,11 @@
 	pm_runtime_set_suspended(i2c_dev->dev);
 	pm_runtime_dont_use_autosuspend(i2c_dev->dev);
 
+	if (i2c_dev->dma) {
+		stm32_i2c_dma_free(i2c_dev->dma);
+		i2c_dev->dma = NULL;
+	}
+
 clk_free:
 	clk_disable_unprepare(i2c_dev->clk);
 
@@ -1995,21 +2043,21 @@
 {
 	struct stm32f7_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
 
-	if (i2c_dev->dma) {
-		stm32_i2c_dma_free(i2c_dev->dma);
-		i2c_dev->dma = NULL;
-	}
-
 	i2c_del_adapter(&i2c_dev->adap);
 	pm_runtime_get_sync(i2c_dev->dev);
 
-	clk_disable_unprepare(i2c_dev->clk);
-
 	pm_runtime_put_noidle(i2c_dev->dev);
 	pm_runtime_disable(i2c_dev->dev);
 	pm_runtime_set_suspended(i2c_dev->dev);
 	pm_runtime_dont_use_autosuspend(i2c_dev->dev);
 
+	if (i2c_dev->dma) {
+		stm32_i2c_dma_free(i2c_dev->dma);
+		i2c_dev->dma = NULL;
+	}
+
+	clk_disable_unprepare(i2c_dev->clk);
+
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-tegra-bpmp.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-tegra-bpmp.c
@@ -80,7 +80,7 @@
 		flags &= ~I2C_M_RECV_LEN;
 	}
 
-	return (flags != 0) ? -EINVAL : 0;
+	return 0;
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-tegra.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-tegra.c
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
+#include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/of_device.h>
@@ -230,7 +231,6 @@
  * @base_phys: physical base address of the I2C controller
  * @cont_id: I2C controller ID, used for packet header
  * @irq: IRQ number of transfer complete interrupt
- * @irq_disabled: used to track whether or not the interrupt is enabled
  * @is_dvc: identifies the DVC I2C controller, has a different register layout
  * @msg_complete: transfer completion notifier
  * @msg_err: error code for completed message
@@ -240,7 +240,6 @@
  * @bus_clk_rate: current I2C bus clock rate
  * @clk_divisor_non_hs_mode: clock divider for non-high-speed modes
  * @is_multimaster_mode: track if I2C controller is in multi-master mode
- * @xfer_lock: lock to serialize transfer submission and processing
  * @tx_dma_chan: DMA transmit channel
  * @rx_dma_chan: DMA receive channel
  * @dma_phys: handle to DMA resources
@@ -260,7 +259,6 @@
 	phys_addr_t base_phys;
 	int cont_id;
 	int irq;
-	bool irq_disabled;
 	int is_dvc;
 	struct completion msg_complete;
 	int msg_err;
@@ -270,8 +268,6 @@
 	u32 bus_clk_rate;
 	u16 clk_divisor_non_hs_mode;
 	bool is_multimaster_mode;
-	/* xfer_lock: lock to serialize transfer submission and processing */
-	spinlock_t xfer_lock;
 	struct dma_chan *tx_dma_chan;
 	struct dma_chan *rx_dma_chan;
 	dma_addr_t dma_phys;
@@ -790,11 +786,6 @@
 	if (err)
 		return err;
 
-	if (i2c_dev->irq_disabled) {
-		i2c_dev->irq_disabled = false;
-		enable_irq(i2c_dev->irq);
-	}
-
 	return 0;
 }
 
@@ -825,18 +816,12 @@
 
 	status = i2c_readl(i2c_dev, I2C_INT_STATUS);
 
-	spin_lock(&i2c_dev->xfer_lock);
 	if (status == 0) {
 		dev_warn(i2c_dev->dev, "irq status 0 %08x %08x %08x\n",
 			 i2c_readl(i2c_dev, I2C_PACKET_TRANSFER_STATUS),
 			 i2c_readl(i2c_dev, I2C_STATUS),
 			 i2c_readl(i2c_dev, I2C_CNFG));
 		i2c_dev->msg_err |= I2C_ERR_UNKNOWN_INTERRUPT;
-
-		if (!i2c_dev->irq_disabled) {
-			disable_irq_nosync(i2c_dev->irq);
-			i2c_dev->irq_disabled = true;
-		}
 		goto err;
 	}
 
@@ -925,7 +910,6 @@
 
 	complete(&i2c_dev->msg_complete);
 done:
-	spin_unlock(&i2c_dev->xfer_lock);
 	return IRQ_HANDLED;
 }
 
@@ -999,6 +983,30 @@
 	i2c_writel(i2c_dev, val, reg);
 }
 
+static unsigned long
+tegra_i2c_wait_completion_timeout(struct tegra_i2c_dev *i2c_dev,
+				  struct completion *complete,
+				  unsigned int timeout_ms)
+{
+	unsigned long ret;
+
+	enable_irq(i2c_dev->irq);
+	ret = wait_for_completion_timeout(complete,
+					  msecs_to_jiffies(timeout_ms));
+	disable_irq(i2c_dev->irq);
+
+	/*
+	 * There is a chance that completion may happen after IRQ
+	 * synchronization, which is done by disable_irq().
+	 */
+	if (ret == 0 && completion_done(complete)) {
+		dev_warn(i2c_dev->dev, "completion done after timeout\n");
+		ret = 1;
+	}
+
+	return ret;
+}
+
 static int tegra_i2c_issue_bus_clear(struct i2c_adapter *adap)
 {
 	struct tegra_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
@@ -1020,8 +1028,8 @@
 	i2c_writel(i2c_dev, reg, I2C_BUS_CLEAR_CNFG);
 	tegra_i2c_unmask_irq(i2c_dev, I2C_INT_BUS_CLR_DONE);
 
-	time_left = wait_for_completion_timeout(&i2c_dev->msg_complete,
-						msecs_to_jiffies(50));
+	time_left = tegra_i2c_wait_completion_timeout(
+			i2c_dev, &i2c_dev->msg_complete, 50);
 	if (time_left == 0) {
 		dev_err(i2c_dev->dev, "timed out for bus clear\n");
 		return -ETIMEDOUT;
@@ -1044,7 +1052,6 @@
 	u32 packet_header;
 	u32 int_mask;
 	unsigned long time_left;
-	unsigned long flags;
 	size_t xfer_size;
 	u32 *buffer = NULL;
 	int err = 0;
@@ -1075,7 +1082,6 @@
 	 */
 	xfer_time += DIV_ROUND_CLOSEST(((xfer_size * 9) + 2) * MSEC_PER_SEC,
 					i2c_dev->bus_clk_rate);
-	spin_lock_irqsave(&i2c_dev->xfer_lock, flags);
 
 	int_mask = I2C_INT_NO_ACK | I2C_INT_ARBITRATION_LOST;
 	tegra_i2c_unmask_irq(i2c_dev, int_mask);
@@ -1090,7 +1096,7 @@
 				dev_err(i2c_dev->dev,
 					"starting RX DMA failed, err %d\n",
 					err);
-				goto unlock;
+				return err;
 			}
 
 		} else {
@@ -1149,7 +1155,7 @@
 				dev_err(i2c_dev->dev,
 					"starting TX DMA failed, err %d\n",
 					err);
-				goto unlock;
+				return err;
 			}
 		} else {
 			tegra_i2c_fill_tx_fifo(i2c_dev);
@@ -1169,15 +1175,10 @@
 	dev_dbg(i2c_dev->dev, "unmasked irq: %02x\n",
 		i2c_readl(i2c_dev, I2C_INT_MASK));
 
-unlock:
-	spin_unlock_irqrestore(&i2c_dev->xfer_lock, flags);
-
 	if (dma) {
-		if (err)
-			return err;
+		time_left = tegra_i2c_wait_completion_timeout(
+				i2c_dev, &i2c_dev->dma_complete, xfer_time);
 
-		time_left = wait_for_completion_timeout(&i2c_dev->dma_complete,
-							msecs_to_jiffies(xfer_time));
 		if (time_left == 0) {
 			dev_err(i2c_dev->dev, "DMA transfer timeout\n");
 			dmaengine_terminate_sync(i2c_dev->msg_read ?
@@ -1202,13 +1203,13 @@
 					      i2c_dev->tx_dma_chan);
 	}
 
-	time_left = wait_for_completion_timeout(&i2c_dev->msg_complete,
-						msecs_to_jiffies(xfer_time));
+	time_left = tegra_i2c_wait_completion_timeout(
+			i2c_dev, &i2c_dev->msg_complete, xfer_time);
+
 	tegra_i2c_mask_irq(i2c_dev, int_mask);
 
 	if (time_left == 0) {
 		dev_err(i2c_dev->dev, "i2c transfer timed out\n");
-
 		tegra_i2c_init(i2c_dev, true);
 		return -ETIMEDOUT;
 	}
@@ -1568,7 +1569,6 @@
 				I2C_PACKET_HEADER_SIZE;
 	init_completion(&i2c_dev->msg_complete);
 	init_completion(&i2c_dev->dma_complete);
-	spin_lock_init(&i2c_dev->xfer_lock);
 
 	if (!i2c_dev->hw->has_single_clk_source) {
 		fast_clk = devm_clk_get(&pdev->dev, "fast-clk");
@@ -1608,14 +1608,18 @@
 	}
 
 	pm_runtime_enable(&pdev->dev);
-	if (!pm_runtime_enabled(&pdev->dev))
+	if (!pm_runtime_enabled(&pdev->dev)) {
 		ret = tegra_i2c_runtime_resume(&pdev->dev);
-	else
+		if (ret < 0) {
+			dev_err(&pdev->dev, "runtime resume failed\n");
+			goto unprepare_div_clk;
+		}
+	} else {
 		ret = pm_runtime_get_sync(i2c_dev->dev);
-
-	if (ret < 0) {
-		dev_err(&pdev->dev, "runtime resume failed\n");
-		goto unprepare_div_clk;
+		if (ret < 0) {
+			dev_err(&pdev->dev, "runtime resume failed\n");
+			goto disable_rpm;
+		}
 	}
 
 	if (i2c_dev->is_multimaster_mode) {
@@ -1623,7 +1627,7 @@
 		if (ret < 0) {
 			dev_err(i2c_dev->dev, "div_clk enable failed %d\n",
 				ret);
-			goto disable_rpm;
+			goto put_rpm;
 		}
 	}
 
@@ -1640,6 +1644,8 @@
 		goto release_dma;
 	}
 
+	irq_set_status_flags(i2c_dev->irq, IRQ_NOAUTOEN);
+
 	ret = devm_request_irq(&pdev->dev, i2c_dev->irq,
 			       tegra_i2c_isr, 0, dev_name(&pdev->dev), i2c_dev);
 	if (ret) {
@@ -1671,11 +1677,16 @@
 	if (i2c_dev->is_multimaster_mode)
 		clk_disable(i2c_dev->div_clk);
 
-disable_rpm:
-	pm_runtime_disable(&pdev->dev);
-	if (!pm_runtime_status_suspended(&pdev->dev))
+put_rpm:
+	if (pm_runtime_enabled(&pdev->dev))
+		pm_runtime_put_sync(&pdev->dev);
+	else
 		tegra_i2c_runtime_suspend(&pdev->dev);
 
+disable_rpm:
+	if (pm_runtime_enabled(&pdev->dev))
+		pm_runtime_disable(&pdev->dev);
+
 unprepare_div_clk:
 	clk_unprepare(i2c_dev->div_clk);
 
@@ -1710,10 +1721,14 @@
 static int __maybe_unused tegra_i2c_suspend(struct device *dev)
 {
 	struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev);
+	int err = 0;
 
 	i2c_mark_adapter_suspended(&i2c_dev->adapter);
 
-	return 0;
+	if (!pm_runtime_status_suspended(dev))
+		err = tegra_i2c_runtime_suspend(dev);
+
+	return err;
 }
 
 static int __maybe_unused tegra_i2c_resume(struct device *dev)
@@ -1721,6 +1736,10 @@
 	struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev);
 	int err;
 
+	/*
+	 * We need to ensure that clocks are enabled so that registers can be
+	 * restored in tegra_i2c_init().
+	 */
 	err = tegra_i2c_runtime_resume(dev);
 	if (err)
 		return err;
@@ -1729,9 +1748,16 @@
 	if (err)
 		return err;
 
-	err = tegra_i2c_runtime_suspend(dev);
-	if (err)
-		return err;
+	/*
+	 * In case we are runtime suspended, disable clocks again so that we
+	 * don't unbalance the clock reference counts during the next runtime
+	 * resume transition.
+	 */
+	if (pm_runtime_status_suspended(dev)) {
+		err = tegra_i2c_runtime_suspend(dev);
+		if (err)
+			return err;
+	}
 
 	i2c_mark_adapter_resumed(&i2c_dev->adapter);
 
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-thunderx-pcidrv.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-thunderx-pcidrv.c
@@ -208,6 +208,7 @@
 	i2c->adap.bus_recovery_info = &octeon_i2c_recovery_info;
 	i2c->adap.dev.parent = dev;
 	i2c->adap.dev.of_node = pdev->dev.of_node;
+	i2c->adap.dev.fwnode = dev->fwnode;
 	snprintf(i2c->adap.name, sizeof(i2c->adap.name),
 		 "Cavium ThunderX i2c adapter at %s", dev_name(dev));
 	i2c_set_adapdata(&i2c->adap, i2c);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-xgene-slimpro.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-xgene-slimpro.c
@@ -308,6 +308,9 @@
 	u32 msg[3];
 	int rc;
 
+	if (writelen > I2C_SMBUS_BLOCK_MAX)
+		return -EINVAL;
+
 	memcpy(ctx->dma_buffer, data, writelen);
 	paddr = dma_map_single(ctx->dev, ctx->dma_buffer, writelen,
 			       DMA_TO_DEVICE);
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-xiic.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-xiic.c
@@ -353,6 +353,9 @@
 	struct xiic_i2c *i2c = dev_id;
 	u32 pend, isr, ier;
 	u32 clr = 0;
+	int xfer_more = 0;
+	int wakeup_req = 0;
+	int wakeup_code = 0;
 
 	/* Get the interrupt Status from the IPIF. There is no clearing of
 	 * interrupts in the IPIF. Interrupts must be cleared at the source.
@@ -389,10 +392,16 @@
 		 */
 		xiic_reinit(i2c);
 
-		if (i2c->rx_msg)
-			xiic_wakeup(i2c, STATE_ERROR);
-		if (i2c->tx_msg)
-			xiic_wakeup(i2c, STATE_ERROR);
+		if (i2c->rx_msg) {
+			wakeup_req = 1;
+			wakeup_code = STATE_ERROR;
+		}
+		if (i2c->tx_msg) {
+			wakeup_req = 1;
+			wakeup_code = STATE_ERROR;
+		}
+		/* don't try to handle other events */
+		goto out;
 	}
 	if (pend & XIIC_INTR_RX_FULL_MASK) {
 		/* Receive register/FIFO is full */
@@ -426,8 +435,7 @@
 				i2c->tx_msg++;
 				dev_dbg(i2c->adap.dev.parent,
 					"%s will start next...\n", __func__);
-
-				__xiic_start_xfer(i2c);
+				xfer_more = 1;
 			}
 		}
 	}
@@ -441,11 +449,13 @@
 		if (!i2c->tx_msg)
 			goto out;
 
-		if ((i2c->nmsgs == 1) && !i2c->rx_msg &&
-			xiic_tx_space(i2c) == 0)
-			xiic_wakeup(i2c, STATE_DONE);
+		wakeup_req = 1;
+
+		if (i2c->nmsgs == 1 && !i2c->rx_msg &&
+		    xiic_tx_space(i2c) == 0)
+			wakeup_code = STATE_DONE;
 		else
-			xiic_wakeup(i2c, STATE_ERROR);
+			wakeup_code = STATE_ERROR;
 	}
 	if (pend & (XIIC_INTR_TX_EMPTY_MASK | XIIC_INTR_TX_HALF_MASK)) {
 		/* Transmit register/FIFO is empty or ½ empty */
@@ -469,7 +479,7 @@
 			if (i2c->nmsgs > 1) {
 				i2c->nmsgs--;
 				i2c->tx_msg++;
-				__xiic_start_xfer(i2c);
+				xfer_more = 1;
 			} else {
 				xiic_irq_dis(i2c, XIIC_INTR_TX_HALF_MASK);
 
@@ -487,6 +497,13 @@
 	dev_dbg(i2c->adap.dev.parent, "%s clr: 0x%x\n", __func__, clr);
 
 	xiic_setreg32(i2c, XIIC_IISR_OFFSET, clr);
+	if (xfer_more)
+		__xiic_start_xfer(i2c);
+	if (wakeup_req)
+		xiic_wakeup(i2c, wakeup_code);
+
+	WARN_ON(xfer_more && wakeup_req);
+
 	mutex_unlock(&i2c->lock);
 	return IRQ_HANDLED;
 }
@@ -715,7 +732,6 @@
 
 static const struct i2c_adapter xiic_adapter = {
 	.owner = THIS_MODULE,
-	.name = DRIVER_NAME,
 	.class = I2C_CLASS_DEPRECATED,
 	.algo = &xiic_algorithm,
 	.quirks = &xiic_quirks,
@@ -752,6 +768,8 @@
 	i2c_set_adapdata(&i2c->adap, i2c);
 	i2c->adap.dev.parent = &pdev->dev;
 	i2c->adap.dev.of_node = pdev->dev.of_node;
+	snprintf(i2c->adap.name, sizeof(i2c->adap.name),
+		 DRIVER_NAME " %s", pdev->name);
 
 	mutex_init(&i2c->lock);
 	init_waitqueue_head(&i2c->wait);
@@ -883,6 +901,7 @@
 
 module_platform_driver(xiic_i2c_driver);
 
+MODULE_ALIAS("platform:" DRIVER_NAME);
 MODULE_AUTHOR("info@mocean-labs.com");
 MODULE_DESCRIPTION("Xilinx I2C bus driver");
 MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/i2c/busses/i2c-xlr.c
+++ linux-ein-5.4.0/drivers/i2c/busses/i2c-xlr.c
@@ -433,11 +433,15 @@
 	i2c_set_adapdata(&priv->adap, priv);
 	ret = i2c_add_numbered_adapter(&priv->adap);
 	if (ret < 0)
-		return ret;
+		goto err_unprepare_clk;
 
 	platform_set_drvdata(pdev, priv);
 	dev_info(&priv->adap.dev, "Added I2C Bus.\n");
 	return 0;
+
+err_unprepare_clk:
+	clk_unprepare(clk);
+	return ret;
 }
 
 static int xlr_i2c_remove(struct platform_device *pdev)
--- linux-ein-5.4.0.orig/drivers/i2c/i2c-core-acpi.c
+++ linux-ein-5.4.0/drivers/i2c/i2c-core-acpi.c
@@ -264,6 +264,7 @@
 void i2c_acpi_register_devices(struct i2c_adapter *adap)
 {
 	acpi_status status;
+	acpi_handle handle;
 
 	if (!has_acpi_companion(&adap->dev))
 		return;
@@ -274,6 +275,15 @@
 				     adap, NULL);
 	if (ACPI_FAILURE(status))
 		dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
+
+	if (!adap->dev.parent)
+		return;
+
+	handle = ACPI_HANDLE(adap->dev.parent);
+	if (!handle)
+		return;
+
+	acpi_walk_dep_device_list(handle);
 }
 
 const struct acpi_device_id *
@@ -394,9 +404,17 @@
 static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev)
 {
 	struct device *dev;
+	struct i2c_client *client;
 
 	dev = bus_find_device_by_acpi_dev(&i2c_bus_type, adev);
-	return dev ? i2c_verify_client(dev) : NULL;
+	if (!dev)
+		return NULL;
+
+	client = i2c_verify_client(dev);
+	if (!client)
+		put_device(dev);
+
+	return client;
 }
 
 static int i2c_acpi_notify(struct notifier_block *nb, unsigned long value,
@@ -418,6 +436,7 @@
 			break;
 
 		i2c_acpi_register_device(adapter, adev, &info);
+		put_device(&adapter->dev);
 		break;
 	case ACPI_RECONFIG_DEVICE_REMOVE:
 		if (!acpi_device_enumerated(adev))
@@ -729,7 +748,6 @@
 		return -ENOMEM;
 	}
 
-	acpi_walk_dep_device_list(handle);
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/i2c/i2c-core-base.c
+++ linux-ein-5.4.0/drivers/i2c/i2c-core-base.c
@@ -24,6 +24,7 @@
 #include <linux/i2c-smbus.h>
 #include <linux/idr.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/irqflags.h>
 #include <linux/jump_label.h>
 #include <linux/kernel.h>
@@ -186,10 +187,11 @@
 	 * If we can set SDA, we will always create a STOP to ensure additional
 	 * pulses will do no harm. This is achieved by letting SDA follow SCL
 	 * half a cycle later. Check the 'incomplete_write_byte' fault injector
-	 * for details.
+	 * for details. Note that we must honour tsu:sto, 4us, but lets use 5us
+	 * here for simplicity.
 	 */
 	bri->set_scl(adap, scl);
-	ndelay(RECOVERY_NDELAY / 2);
+	ndelay(RECOVERY_NDELAY);
 	if (bri->set_sda)
 		bri->set_sda(adap, scl);
 	ndelay(RECOVERY_NDELAY / 2);
@@ -211,7 +213,13 @@
 		scl = !scl;
 		bri->set_scl(adap, scl);
 		/* Creating STOP again, see above */
-		ndelay(RECOVERY_NDELAY / 2);
+		if (scl)  {
+			/* Honour minimum tsu:sto */
+			ndelay(RECOVERY_NDELAY);
+		} else {
+			/* Honour minimum tf and thd:dat */
+			ndelay(RECOVERY_NDELAY / 2);
+		}
 		if (bri->set_sda)
 			bri->set_sda(adap, scl);
 		ndelay(RECOVERY_NDELAY / 2);
@@ -247,13 +255,14 @@
 static void i2c_init_recovery(struct i2c_adapter *adap)
 {
 	struct i2c_bus_recovery_info *bri = adap->bus_recovery_info;
-	char *err_str;
+	char *err_str, *err_level = KERN_ERR;
 
 	if (!bri)
 		return;
 
 	if (!bri->recover_bus) {
-		err_str = "no recover_bus() found";
+		err_str = "no suitable method provided";
+		err_level = KERN_DEBUG;
 		goto err;
 	}
 
@@ -283,7 +292,7 @@
 
 	return;
  err:
-	dev_err(&adap->dev, "Not using recovery: %s\n", err_str);
+	dev_printk(err_level, &adap->dev, "Not using recovery: %s\n", err_str);
 	adap->bus_recovery_info = NULL;
 }
 
@@ -331,8 +340,10 @@
 		} else if (ACPI_COMPANION(dev)) {
 			irq = i2c_acpi_get_irq(client);
 		}
-		if (irq == -EPROBE_DEFER)
-			return irq;
+		if (irq == -EPROBE_DEFER) {
+			status = irq;
+			goto put_sync_adapter;
+		}
 
 		if (irq < 0)
 			irq = 0;
@@ -345,16 +356,20 @@
 	 * or ACPI ID table is supplied for the probing device.
 	 */
 	if (!driver->id_table &&
-	    !i2c_acpi_match_device(dev->driver->acpi_match_table, client) &&
-	    !i2c_of_match_device(dev->driver->of_match_table, client))
-		return -ENODEV;
+	    !acpi_driver_match_device(dev, dev->driver) &&
+	    !i2c_of_match_device(dev->driver->of_match_table, client)) {
+		status = -ENODEV;
+		goto put_sync_adapter;
+	}
 
 	if (client->flags & I2C_CLIENT_WAKE) {
 		int wakeirq;
 
 		wakeirq = of_irq_get_byname(dev->of_node, "wakeup");
-		if (wakeirq == -EPROBE_DEFER)
-			return wakeirq;
+		if (wakeirq == -EPROBE_DEFER) {
+			status = wakeirq;
+			goto put_sync_adapter;
+		}
 
 		device_init_wakeup(&client->dev, true);
 
@@ -401,6 +416,10 @@
 err_clear_wakeup_irq:
 	dev_pm_clear_wake_irq(&client->dev);
 	device_init_wakeup(&client->dev, false);
+put_sync_adapter:
+	if (client->flags & I2C_CLIENT_HOST_NOTIFY)
+		pm_runtime_put_sync(&client->adapter->dev);
+
 	return status;
 }
 
@@ -441,6 +460,8 @@
 	driver = to_i2c_driver(dev->driver);
 	if (driver->shutdown)
 		driver->shutdown(client);
+	else if (client->irq > 0)
+		disable_irq(client->irq);
 }
 
 static void i2c_client_dev_release(struct device *dev)
@@ -1368,8 +1389,8 @@
 
 	/* create pre-declared device nodes */
 	of_i2c_register_devices(adap);
-	i2c_acpi_register_devices(adap);
 	i2c_acpi_install_space_handler(adap);
+	i2c_acpi_register_devices(adap);
 
 	if (adap->nr < __i2c_first_dynamic_bus_num)
 		i2c_scan_static_board_info(adap);
@@ -2337,8 +2358,9 @@
 	if (!adap)
 		return;
 
-	put_device(&adap->dev);
 	module_put(adap->owner);
+	/* Should be last, otherwise we risk use-after-free with 'adap' */
+	put_device(&adap->dev);
 }
 EXPORT_SYMBOL(i2c_put_adapter);
 
--- linux-ein-5.4.0.orig/drivers/i2c/i2c-core-slave.c
+++ linux-ein-5.4.0/drivers/i2c/i2c-core-slave.c
@@ -18,10 +18,8 @@
 {
 	int ret;
 
-	if (!client || !slave_cb) {
-		WARN(1, "insufficient data\n");
+	if (WARN(IS_ERR_OR_NULL(client) || !slave_cb, "insufficient data\n"))
 		return -EINVAL;
-	}
 
 	if (!(client->flags & I2C_CLIENT_SLAVE))
 		dev_warn(&client->dev, "%s: client slave flag not set. You might see address collisions\n",
@@ -60,6 +58,9 @@
 {
 	int ret;
 
+	if (IS_ERR_OR_NULL(client))
+		return -EINVAL;
+
 	if (!client->adapter->algo->unreg_slave) {
 		dev_err(&client->dev, "%s: not supported by adapter\n", __func__);
 		return -EOPNOTSUPP;
--- linux-ein-5.4.0.orig/drivers/i2c/i2c-core-smbus.c
+++ linux-ein-5.4.0/drivers/i2c/i2c-core-smbus.c
@@ -495,6 +495,13 @@
 			break;
 		case I2C_SMBUS_BLOCK_DATA:
 		case I2C_SMBUS_BLOCK_PROC_CALL:
+			if (msg[1].buf[0] > I2C_SMBUS_BLOCK_MAX) {
+				dev_err(&adapter->dev,
+					"Invalid block size returned: %d\n",
+					msg[1].buf[0]);
+				status = -EPROTO;
+				goto cleanup;
+			}
 			for (i = 0; i < msg[1].buf[0] + 1; i++)
 				data->block[i] = msg[1].buf[i];
 			break;
--- linux-ein-5.4.0.orig/drivers/i2c/i2c-dev.c
+++ linux-ein-5.4.0/drivers/i2c/i2c-dev.c
@@ -40,7 +40,7 @@
 struct i2c_dev {
 	struct list_head list;
 	struct i2c_adapter *adap;
-	struct device *dev;
+	struct device dev;
 	struct cdev cdev;
 };
 
@@ -84,12 +84,14 @@
 	return i2c_dev;
 }
 
-static void put_i2c_dev(struct i2c_dev *i2c_dev)
+static void put_i2c_dev(struct i2c_dev *i2c_dev, bool del_cdev)
 {
 	spin_lock(&i2c_dev_list_lock);
 	list_del(&i2c_dev->list);
 	spin_unlock(&i2c_dev_list_lock);
-	kfree(i2c_dev);
+	if (del_cdev)
+		cdev_device_del(&i2c_dev->cdev, &i2c_dev->dev);
+	put_device(&i2c_dev->dev);
 }
 
 static ssize_t name_show(struct device *dev,
@@ -139,7 +141,7 @@
 	if (count > 8192)
 		count = 8192;
 
-	tmp = kmalloc(count, GFP_KERNEL);
+	tmp = kzalloc(count, GFP_KERNEL);
 	if (tmp == NULL)
 		return -ENOMEM;
 
@@ -148,7 +150,8 @@
 
 	ret = i2c_master_recv(client, tmp, count);
 	if (ret >= 0)
-		ret = copy_to_user(buf, tmp, count) ? -EFAULT : ret;
+		if (copy_to_user(buf, tmp, ret))
+			ret = -EFAULT;
 	kfree(tmp);
 	return ret;
 }
@@ -438,8 +441,13 @@
 				   sizeof(rdwr_arg)))
 			return -EFAULT;
 
-		/* Put an arbitrary limit on the number of messages that can
-		 * be sent at once */
+		if (!rdwr_arg.msgs || rdwr_arg.nmsgs == 0)
+			return -EINVAL;
+
+		/*
+		 * Put an arbitrary limit on the number of messages that can
+		 * be sent at once
+		 */
 		if (rdwr_arg.nmsgs > I2C_RDWR_IOCTL_MAX_MSGS)
 			return -EINVAL;
 
@@ -528,6 +536,9 @@
 				   sizeof(rdwr_arg)))
 			return -EFAULT;
 
+		if (!rdwr_arg.msgs || rdwr_arg.nmsgs == 0)
+			return -EINVAL;
+
 		if (rdwr_arg.nmsgs > I2C_RDWR_IOCTL_MAX_MSGS)
 			return -EINVAL;
 
@@ -628,6 +639,14 @@
 
 static struct class *i2c_dev_class;
 
+static void i2cdev_dev_release(struct device *dev)
+{
+	struct i2c_dev *i2c_dev;
+
+	i2c_dev = container_of(dev, struct i2c_dev, dev);
+	kfree(i2c_dev);
+}
+
 static int i2cdev_attach_adapter(struct device *dev, void *dummy)
 {
 	struct i2c_adapter *adap;
@@ -644,27 +663,23 @@
 
 	cdev_init(&i2c_dev->cdev, &i2cdev_fops);
 	i2c_dev->cdev.owner = THIS_MODULE;
-	res = cdev_add(&i2c_dev->cdev, MKDEV(I2C_MAJOR, adap->nr), 1);
-	if (res)
-		goto error_cdev;
-
-	/* register this i2c device with the driver core */
-	i2c_dev->dev = device_create(i2c_dev_class, &adap->dev,
-				     MKDEV(I2C_MAJOR, adap->nr), NULL,
-				     "i2c-%d", adap->nr);
-	if (IS_ERR(i2c_dev->dev)) {
-		res = PTR_ERR(i2c_dev->dev);
-		goto error;
+
+	device_initialize(&i2c_dev->dev);
+	i2c_dev->dev.devt = MKDEV(I2C_MAJOR, adap->nr);
+	i2c_dev->dev.class = i2c_dev_class;
+	i2c_dev->dev.parent = &adap->dev;
+	i2c_dev->dev.release = i2cdev_dev_release;
+	dev_set_name(&i2c_dev->dev, "i2c-%d", adap->nr);
+
+	res = cdev_device_add(&i2c_dev->cdev, &i2c_dev->dev);
+	if (res) {
+		put_i2c_dev(i2c_dev, false);
+		return res;
 	}
 
 	pr_debug("i2c-dev: adapter [%s] registered as minor %d\n",
 		 adap->name, adap->nr);
 	return 0;
-error:
-	cdev_del(&i2c_dev->cdev);
-error_cdev:
-	put_i2c_dev(i2c_dev);
-	return res;
 }
 
 static int i2cdev_detach_adapter(struct device *dev, void *dummy)
@@ -680,9 +695,7 @@
 	if (!i2c_dev) /* attach_adapter must have failed */
 		return 0;
 
-	cdev_del(&i2c_dev->cdev);
-	put_i2c_dev(i2c_dev);
-	device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr));
+	put_i2c_dev(i2c_dev, true);
 
 	pr_debug("i2c-dev: adapter [%s] unregistered\n", adap->name);
 	return 0;
--- linux-ein-5.4.0.orig/drivers/i2c/i2c-mux.c
+++ linux-ein-5.4.0/drivers/i2c/i2c-mux.c
@@ -340,7 +340,7 @@
 		priv->adap.lock_ops = &i2c_parent_lock_ops;
 
 	/* Sanity check on class */
-	if (i2c_mux_parent_classes(parent) & class)
+	if (i2c_mux_parent_classes(parent) & class & ~I2C_CLASS_DEPRECATED)
 		dev_err(&parent->dev,
 			"Segment %d behind mux can't share classes with ancestors\n",
 			chan_id);
--- linux-ein-5.4.0.orig/drivers/i2c/muxes/i2c-demux-pinctrl.c
+++ linux-ein-5.4.0/drivers/i2c/muxes/i2c-demux-pinctrl.c
@@ -243,6 +243,10 @@
 
 		props[i].name = devm_kstrdup(&pdev->dev, "status", GFP_KERNEL);
 		props[i].value = devm_kstrdup(&pdev->dev, "ok", GFP_KERNEL);
+		if (!props[i].name || !props[i].value) {
+			err = -ENOMEM;
+			goto err_rollback;
+		}
 		props[i].length = 3;
 
 		of_changeset_init(&priv->chan[i].chgset);
@@ -261,7 +265,7 @@
 
 	err = device_create_file(&pdev->dev, &dev_attr_available_masters);
 	if (err)
-		goto err_rollback;
+		goto err_rollback_activation;
 
 	err = device_create_file(&pdev->dev, &dev_attr_current_master);
 	if (err)
@@ -271,6 +275,8 @@
 
 err_rollback_available:
 	device_remove_file(&pdev->dev, &dev_attr_available_masters);
+err_rollback_activation:
+	i2c_demux_deactivate_master(priv);
 err_rollback:
 	for (j = 0; j < i; j++) {
 		of_node_put(priv->chan[j].parent_np);
--- linux-ein-5.4.0.orig/drivers/i2c/muxes/i2c-mux-gpmux.c
+++ linux-ein-5.4.0/drivers/i2c/muxes/i2c-mux-gpmux.c
@@ -138,6 +138,7 @@
 	return 0;
 
 err_children:
+	of_node_put(child);
 	i2c_mux_del_adapters(muxc);
 err_parent:
 	i2c_put_adapter(parent);
--- linux-ein-5.4.0.orig/drivers/i3c/master.c
+++ linux-ein-5.4.0/drivers/i3c/master.c
@@ -1760,6 +1760,21 @@
 	i3c_master_detach_free_devs(master);
 }
 
+static void i3c_master_attach_boardinfo(struct i3c_dev_desc *i3cdev)
+{
+	struct i3c_master_controller *master = i3cdev->common.master;
+	struct i3c_dev_boardinfo *i3cboardinfo;
+
+	list_for_each_entry(i3cboardinfo, &master->boardinfo.i3c, node) {
+		if (i3cdev->info.pid != i3cboardinfo->pid)
+			continue;
+
+		i3cdev->boardinfo = i3cboardinfo;
+		i3cdev->info.static_addr = i3cboardinfo->static_addr;
+		return;
+	}
+}
+
 static struct i3c_dev_desc *
 i3c_master_search_i3c_dev_duplicate(struct i3c_dev_desc *refdev)
 {
@@ -1815,10 +1830,10 @@
 	if (ret)
 		goto err_detach_dev;
 
+	i3c_master_attach_boardinfo(newdev);
+
 	olddev = i3c_master_search_i3c_dev_duplicate(newdev);
 	if (olddev) {
-		newdev->boardinfo = olddev->boardinfo;
-		newdev->info.static_addr = olddev->info.static_addr;
 		newdev->dev = olddev->dev;
 		if (newdev->dev)
 			newdev->dev->desc = newdev;
--- linux-ein-5.4.0.orig/drivers/i3c/master/i3c-master-cdns.c
+++ linux-ein-5.4.0/drivers/i3c/master/i3c-master-cdns.c
@@ -1593,8 +1593,10 @@
 	master->ibi.slots = devm_kcalloc(&pdev->dev, master->ibi.num_slots,
 					 sizeof(*master->ibi.slots),
 					 GFP_KERNEL);
-	if (!master->ibi.slots)
+	if (!master->ibi.slots) {
+		ret = -ENOMEM;
 		goto err_disable_sysclk;
+	}
 
 	writel(IBIR_THR(1), master->regs + CMD_IBI_THR_CTRL);
 	writel(MST_INT_IBIR_THR, master->regs + MST_IER);
--- linux-ein-5.4.0.orig/drivers/ide/cmd64x.c
+++ linux-ein-5.4.0/drivers/ide/cmd64x.c
@@ -66,6 +66,9 @@
 	struct ide_timing t;
 	u8 arttim = 0;
 
+	if (drive->dn >= ARRAY_SIZE(drwtim_regs))
+		return;
+
 	ide_timing_compute(drive, mode, &t, T, 0);
 
 	/*
--- linux-ein-5.4.0.orig/drivers/ide/ide-acpi.c
+++ linux-ein-5.4.0/drivers/ide/ide-acpi.c
@@ -180,7 +180,7 @@
 static acpi_handle ide_acpi_hwif_get_handle(ide_hwif_t *hwif)
 {
 	struct device		*dev = hwif->gendev.parent;
-	acpi_handle		uninitialized_var(dev_handle);
+	acpi_handle		dev_handle;
 	u64			pcidevfn;
 	acpi_handle		chan_handle;
 	int			err;
--- linux-ein-5.4.0.orig/drivers/ide/ide-atapi.c
+++ linux-ein-5.4.0/drivers/ide/ide-atapi.c
@@ -223,7 +223,6 @@
 	sense_rq->rq_disk = rq->rq_disk;
 	sense_rq->cmd_flags = REQ_OP_DRV_IN;
 	ide_req(sense_rq)->type = ATA_PRIV_SENSE;
-	sense_rq->rq_flags |= RQF_PREEMPT;
 
 	req->cmd[0] = GPCMD_REQUEST_SENSE;
 	req->cmd[4] = cmd_len;
@@ -609,7 +608,7 @@
 
 static ide_startstop_t ide_transfer_pc(ide_drive_t *drive)
 {
-	struct ide_atapi_pc *uninitialized_var(pc);
+	struct ide_atapi_pc *pc;
 	ide_hwif_t *hwif = drive->hwif;
 	struct request *rq = hwif->rq;
 	ide_expiry_t *expiry;
--- linux-ein-5.4.0.orig/drivers/ide/ide-io-std.c
+++ linux-ein-5.4.0/drivers/ide/ide-io-std.c
@@ -173,7 +173,7 @@
 	u8 mmio = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0;
 
 	if (io_32bit) {
-		unsigned long uninitialized_var(flags);
+		unsigned long flags;
 
 		if ((io_32bit & 2) && !mmio) {
 			local_irq_save(flags);
@@ -217,7 +217,7 @@
 	u8 mmio = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0;
 
 	if (io_32bit) {
-		unsigned long uninitialized_var(flags);
+		unsigned long flags;
 
 		if ((io_32bit & 2) && !mmio) {
 			local_irq_save(flags);
--- linux-ein-5.4.0.orig/drivers/ide/ide-io.c
+++ linux-ein-5.4.0/drivers/ide/ide-io.c
@@ -512,11 +512,6 @@
 		 * above to return us whatever is in the queue. Since we call
 		 * ide_do_request() ourselves, we end up taking requests while
 		 * the queue is blocked...
-		 * 
-		 * We let requests forced at head of queue with ide-preempt
-		 * though. I hope that doesn't happen too much, hopefully not
-		 * unless the subdriver triggers such a thing in its own PM
-		 * state machine.
 		 */
 		if ((drive->dev_flags & IDE_DFLAG_BLOCKED) &&
 		    ata_pm_request(rq) == 0 &&
@@ -619,12 +614,12 @@
 void ide_timer_expiry (struct timer_list *t)
 {
 	ide_hwif_t	*hwif = from_timer(hwif, t, timer);
-	ide_drive_t	*uninitialized_var(drive);
+	ide_drive_t	*drive;
 	ide_handler_t	*handler;
 	unsigned long	flags;
 	int		wait = -1;
 	int		plug_device = 0;
-	struct request	*uninitialized_var(rq_in_flight);
+	struct request	*rq_in_flight;
 
 	spin_lock_irqsave(&hwif->lock, flags);
 
@@ -777,13 +772,13 @@
 {
 	ide_hwif_t *hwif = (ide_hwif_t *)dev_id;
 	struct ide_host *host = hwif->host;
-	ide_drive_t *uninitialized_var(drive);
+	ide_drive_t *drive;
 	ide_handler_t *handler;
 	unsigned long flags;
 	ide_startstop_t startstop;
 	irqreturn_t irq_ret = IRQ_NONE;
 	int plug_device = 0;
-	struct request *uninitialized_var(rq_in_flight);
+	struct request *rq_in_flight;
 
 	if (host->host_flags & IDE_HFLAG_SERIALIZE) {
 		if (hwif != host->cur_port)
--- linux-ein-5.4.0.orig/drivers/ide/ide-sysfs.c
+++ linux-ein-5.4.0/drivers/ide/ide-sysfs.c
@@ -131,7 +131,7 @@
 
 int ide_sysfs_register_port(ide_hwif_t *hwif)
 {
-	int i, uninitialized_var(rc);
+	int i, rc;
 
 	for (i = 0; ide_port_attrs[i]; i++) {
 		rc = device_create_file(hwif->portdev, ide_port_attrs[i]);
--- linux-ein-5.4.0.orig/drivers/ide/serverworks.c
+++ linux-ein-5.4.0/drivers/ide/serverworks.c
@@ -115,6 +115,9 @@
 	struct pci_dev *dev = to_pci_dev(hwif->dev);
 	const u8 pio = drive->pio_mode - XFER_PIO_0;
 
+	if (drive->dn >= ARRAY_SIZE(drive_pci))
+		return;
+
 	pci_write_config_byte(dev, drive_pci[drive->dn], pio_modes[pio]);
 
 	if (svwks_csb_check(dev)) {
@@ -141,6 +144,9 @@
 
 	u8 ultra_enable	 = 0, ultra_timing = 0, dma_timing = 0;
 
+	if (drive->dn >= ARRAY_SIZE(drive_pci2))
+		return;
+
 	pci_read_config_byte(dev, (0x56|hwif->channel), &ultra_timing);
 	pci_read_config_byte(dev, 0x54, &ultra_enable);
 
--- linux-ein-5.4.0.orig/drivers/ide/umc8672.c
+++ linux-ein-5.4.0/drivers/ide/umc8672.c
@@ -108,7 +108,7 @@
 static void umc_set_pio_mode(ide_hwif_t *hwif, ide_drive_t *drive)
 {
 	ide_hwif_t *mate = hwif->mate;
-	unsigned long uninitialized_var(flags);
+	unsigned long flags;
 	const u8 pio = drive->pio_mode - XFER_PIO_0;
 
 	printk("%s: setting umc8672 to PIO mode%d (speed %d)\n",
--- linux-ein-5.4.0.orig/drivers/idle/intel_idle.c
+++ linux-ein-5.4.0/drivers/idle/intel_idle.c
@@ -46,11 +46,13 @@
 #include <linux/tick.h>
 #include <trace/events/power.h>
 #include <linux/sched.h>
+#include <linux/sched/smt.h>
 #include <linux/notifier.h>
 #include <linux/cpu.h>
 #include <linux/moduleparam.h>
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/nospec-branch.h>
 #include <asm/mwait.h>
 #include <asm/msr.h>
 
@@ -98,6 +100,12 @@
 #define CPUIDLE_FLAG_TLB_FLUSHED	0x10000
 
 /*
+ * Disable IBRS across idle (when KERNEL_IBRS), is exclusive vs IRQ_ENABLE
+ * above.
+ */
+#define CPUIDLE_FLAG_IBRS		BIT(16)
+
+/*
  * MWAIT takes an 8-bit "hint" in EAX "suggesting"
  * the C-state (top nibble) and sub-state (bottom nibble)
  * 0x00 means "MWAIT(C1)", 0x10 means "MWAIT(C2)" etc.
@@ -107,6 +115,24 @@
 #define flg2MWAIT(flags) (((flags) >> 24) & 0xFF)
 #define MWAIT2flg(eax) ((eax & 0xFF) << 24)
 
+static __cpuidle int intel_idle_ibrs(struct cpuidle_device *dev,
+				     struct cpuidle_driver *drv, int index)
+{
+	bool smt_active = sched_smt_active();
+	u64 spec_ctrl = spec_ctrl_current();
+	int ret;
+
+	if (smt_active)
+		wrmsrl(MSR_IA32_SPEC_CTRL, 0);
+
+	ret = intel_idle(dev, drv, index);
+
+	if (smt_active)
+		wrmsrl(MSR_IA32_SPEC_CTRL, spec_ctrl);
+
+	return ret;
+}
+
 /*
  * States are indexed by the cstate number,
  * which is also the index into the MWAIT hint array.
@@ -605,7 +631,7 @@
 	{
 		.name = "C6",
 		.desc = "MWAIT 0x20",
-		.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED,
+		.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBRS,
 		.exit_latency = 85,
 		.target_residency = 200,
 		.enter = &intel_idle,
@@ -613,7 +639,7 @@
 	{
 		.name = "C7s",
 		.desc = "MWAIT 0x33",
-		.flags = MWAIT2flg(0x33) | CPUIDLE_FLAG_TLB_FLUSHED,
+		.flags = MWAIT2flg(0x33) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBRS,
 		.exit_latency = 124,
 		.target_residency = 800,
 		.enter = &intel_idle,
@@ -621,7 +647,7 @@
 	{
 		.name = "C8",
 		.desc = "MWAIT 0x40",
-		.flags = MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED,
+		.flags = MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBRS,
 		.exit_latency = 200,
 		.target_residency = 800,
 		.enter = &intel_idle,
@@ -629,7 +655,7 @@
 	{
 		.name = "C9",
 		.desc = "MWAIT 0x50",
-		.flags = MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED,
+		.flags = MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBRS,
 		.exit_latency = 480,
 		.target_residency = 5000,
 		.enter = &intel_idle,
@@ -637,7 +663,7 @@
 	{
 		.name = "C10",
 		.desc = "MWAIT 0x60",
-		.flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED,
+		.flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBRS,
 		.exit_latency = 890,
 		.target_residency = 5000,
 		.enter = &intel_idle,
@@ -666,7 +692,7 @@
 	{
 		.name = "C6",
 		.desc = "MWAIT 0x20",
-		.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED,
+		.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED | CPUIDLE_FLAG_IBRS,
 		.exit_latency = 133,
 		.target_residency = 600,
 		.enter = &intel_idle,
@@ -1370,6 +1396,11 @@
 		drv->states[drv->state_count] =	/* structure copy */
 			cpuidle_state_table[cstate];
 
+		if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) &&
+		    cpuidle_state_table[cstate].flags & CPUIDLE_FLAG_IBRS) {
+			drv->states[drv->state_count].enter = intel_idle_ibrs;
+		}
+
 		drv->state_count += 1;
 	}
 
--- linux-ein-5.4.0.orig/drivers/iio/Kconfig
+++ linux-ein-5.4.0/drivers/iio/Kconfig
@@ -70,6 +70,7 @@
 
 source "drivers/iio/accel/Kconfig"
 source "drivers/iio/adc/Kconfig"
+source "drivers/iio/addac/Kconfig"
 source "drivers/iio/afe/Kconfig"
 source "drivers/iio/amplifiers/Kconfig"
 source "drivers/iio/chemical/Kconfig"
--- linux-ein-5.4.0.orig/drivers/iio/Makefile
+++ linux-ein-5.4.0/drivers/iio/Makefile
@@ -15,6 +15,7 @@
 
 obj-y += accel/
 obj-y += adc/
+obj-y += addac/
 obj-y += afe/
 obj-y += amplifiers/
 obj-y += buffer/
--- linux-ein-5.4.0.orig/drivers/iio/accel/adis16201.c
+++ linux-ein-5.4.0/drivers/iio/accel/adis16201.c
@@ -215,7 +215,7 @@
 	ADIS_AUX_ADC_CHAN(ADIS16201_AUX_ADC_REG, ADIS16201_SCAN_AUX_ADC, 0, 12),
 	ADIS_INCLI_CHAN(X, ADIS16201_XINCL_OUT_REG, ADIS16201_SCAN_INCLI_X,
 			BIT(IIO_CHAN_INFO_CALIBBIAS), 0, 14),
-	ADIS_INCLI_CHAN(X, ADIS16201_YINCL_OUT_REG, ADIS16201_SCAN_INCLI_Y,
+	ADIS_INCLI_CHAN(Y, ADIS16201_YINCL_OUT_REG, ADIS16201_SCAN_INCLI_Y,
 			BIT(IIO_CHAN_INFO_CALIBBIAS), 0, 14),
 	IIO_CHAN_SOFT_TIMESTAMP(7)
 };
--- linux-ein-5.4.0.orig/drivers/iio/accel/adxl372.c
+++ linux-ein-5.4.0/drivers/iio/accel/adxl372.c
@@ -237,6 +237,7 @@
 		.realbits = 12,						\
 		.storagebits = 16,					\
 		.shift = 4,						\
+		.endianness = IIO_BE,					\
 	},								\
 }
 
--- linux-ein-5.4.0.orig/drivers/iio/accel/bma180.c
+++ linux-ein-5.4.0/drivers/iio/accel/bma180.c
@@ -47,7 +47,7 @@
 
 	u8 int_reset_reg, int_reset_mask;
 	u8 sleep_reg, sleep_mask;
-	u8 bw_reg, bw_mask;
+	u8 bw_reg, bw_mask, bw_offset;
 	u8 scale_reg, scale_mask;
 	u8 power_reg, power_mask, lowpower_val;
 	u8 int_enable_reg, int_enable_mask;
@@ -103,6 +103,7 @@
 
 #define BMA250_RANGE_MASK	GENMASK(3, 0) /* Range of accel values */
 #define BMA250_BW_MASK		GENMASK(4, 0) /* Accel bandwidth */
+#define BMA250_BW_OFFSET	8
 #define BMA250_SUSPEND_MASK	BIT(7) /* chip will sleep */
 #define BMA250_LOWPOWER_MASK	BIT(6)
 #define BMA250_DATA_INTEN_MASK	BIT(4)
@@ -119,7 +120,11 @@
 	int scale;
 	int bw;
 	bool pmode;
-	u8 buff[16]; /* 3x 16-bit + 8-bit + padding + timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		s16 chan[4];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 enum bma180_chan {
@@ -237,7 +242,8 @@
 	for (i = 0; i < data->part_info->num_bw; ++i) {
 		if (data->part_info->bw_table[i] == val) {
 			ret = bma180_set_bits(data, data->part_info->bw_reg,
-				data->part_info->bw_mask, i);
+				data->part_info->bw_mask,
+				i + data->part_info->bw_offset);
 			if (ret) {
 				dev_err(&data->client->dev,
 					"failed to set bandwidth\n");
@@ -629,32 +635,53 @@
 
 static const struct bma180_part_info bma180_part_info[] = {
 	[BMA180] = {
-		bma180_channels, ARRAY_SIZE(bma180_channels),
-		bma180_scale_table, ARRAY_SIZE(bma180_scale_table),
-		bma180_bw_table, ARRAY_SIZE(bma180_bw_table),
-		BMA180_CTRL_REG0, BMA180_RESET_INT,
-		BMA180_CTRL_REG0, BMA180_SLEEP,
-		BMA180_BW_TCS, BMA180_BW,
-		BMA180_OFFSET_LSB1, BMA180_RANGE,
-		BMA180_TCO_Z, BMA180_MODE_CONFIG, BMA180_LOW_POWER,
-		BMA180_CTRL_REG3, BMA180_NEW_DATA_INT,
-		BMA180_RESET,
-		bma180_chip_config,
-		bma180_chip_disable,
+		.channels = bma180_channels,
+		.num_channels = ARRAY_SIZE(bma180_channels),
+		.scale_table = bma180_scale_table,
+		.num_scales = ARRAY_SIZE(bma180_scale_table),
+		.bw_table = bma180_bw_table,
+		.num_bw = ARRAY_SIZE(bma180_bw_table),
+		.int_reset_reg = BMA180_CTRL_REG0,
+		.int_reset_mask = BMA180_RESET_INT,
+		.sleep_reg = BMA180_CTRL_REG0,
+		.sleep_mask = BMA180_SLEEP,
+		.bw_reg = BMA180_BW_TCS,
+		.bw_mask = BMA180_BW,
+		.scale_reg = BMA180_OFFSET_LSB1,
+		.scale_mask = BMA180_RANGE,
+		.power_reg = BMA180_TCO_Z,
+		.power_mask = BMA180_MODE_CONFIG,
+		.lowpower_val = BMA180_LOW_POWER,
+		.int_enable_reg = BMA180_CTRL_REG3,
+		.int_enable_mask = BMA180_NEW_DATA_INT,
+		.softreset_reg = BMA180_RESET,
+		.chip_config = bma180_chip_config,
+		.chip_disable = bma180_chip_disable,
 	},
 	[BMA250] = {
-		bma250_channels, ARRAY_SIZE(bma250_channels),
-		bma250_scale_table, ARRAY_SIZE(bma250_scale_table),
-		bma250_bw_table, ARRAY_SIZE(bma250_bw_table),
-		BMA250_INT_RESET_REG, BMA250_INT_RESET_MASK,
-		BMA250_POWER_REG, BMA250_SUSPEND_MASK,
-		BMA250_BW_REG, BMA250_BW_MASK,
-		BMA250_RANGE_REG, BMA250_RANGE_MASK,
-		BMA250_POWER_REG, BMA250_LOWPOWER_MASK, 1,
-		BMA250_INT_ENABLE_REG, BMA250_DATA_INTEN_MASK,
-		BMA250_RESET_REG,
-		bma250_chip_config,
-		bma250_chip_disable,
+		.channels = bma250_channels,
+		.num_channels = ARRAY_SIZE(bma250_channels),
+		.scale_table = bma250_scale_table,
+		.num_scales = ARRAY_SIZE(bma250_scale_table),
+		.bw_table = bma250_bw_table,
+		.num_bw = ARRAY_SIZE(bma250_bw_table),
+		.int_reset_reg = BMA250_INT_RESET_REG,
+		.int_reset_mask = BMA250_INT_RESET_MASK,
+		.sleep_reg = BMA250_POWER_REG,
+		.sleep_mask = BMA250_SUSPEND_MASK,
+		.bw_reg = BMA250_BW_REG,
+		.bw_mask = BMA250_BW_MASK,
+		.bw_offset = BMA250_BW_OFFSET,
+		.scale_reg = BMA250_RANGE_REG,
+		.scale_mask = BMA250_RANGE_MASK,
+		.power_reg = BMA250_POWER_REG,
+		.power_mask = BMA250_LOWPOWER_MASK,
+		.lowpower_val = 1,
+		.int_enable_reg = BMA250_INT_ENABLE_REG,
+		.int_enable_mask = BMA250_DATA_INTEN_MASK,
+		.softreset_reg = BMA250_RESET_REG,
+		.chip_config = bma250_chip_config,
+		.chip_disable = bma250_chip_disable,
 	},
 };
 
@@ -675,12 +702,12 @@
 			mutex_unlock(&data->mutex);
 			goto err;
 		}
-		((s16 *)data->buff)[i++] = ret;
+		data->scan.chan[i++] = ret;
 	}
 
 	mutex_unlock(&data->mutex);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buff, time_ns);
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, time_ns);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
@@ -766,11 +793,12 @@
 		data->trig->dev.parent = &client->dev;
 		data->trig->ops = &bma180_trigger_ops;
 		iio_trigger_set_drvdata(data->trig, indio_dev);
-		indio_dev->trig = iio_trigger_get(data->trig);
 
 		ret = iio_trigger_register(data->trig);
 		if (ret)
 			goto err_trigger_free;
+
+		indio_dev->trig = iio_trigger_get(data->trig);
 	}
 
 	ret = iio_triggered_buffer_setup(indio_dev, NULL,
--- linux-ein-5.4.0.orig/drivers/iio/accel/bma220_spi.c
+++ linux-ein-5.4.0/drivers/iio/accel/bma220_spi.c
@@ -73,7 +73,11 @@
 struct bma220_data {
 	struct spi_device *spi_device;
 	struct mutex lock;
-	s8 buffer[16]; /* 3x8-bit channels + 5x8 padding + 8x8 timestamp */
+	struct {
+		s8 chans[3];
+		/* Ensure timestamp is naturally aligned. */
+		s64 timestamp __aligned(8);
+	} scan;
 	u8 tx_buf[2] ____cacheline_aligned;
 };
 
@@ -104,12 +108,12 @@
 
 	mutex_lock(&data->lock);
 	data->tx_buf[0] = BMA220_REG_ACCEL_X | BMA220_READ_MASK;
-	ret = spi_write_then_read(spi, data->tx_buf, 1, data->buffer,
+	ret = spi_write_then_read(spi, data->tx_buf, 1, &data->scan.chans,
 				  ARRAY_SIZE(bma220_channels) - 1);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 err:
 	mutex_unlock(&data->lock);
--- linux-ein-5.4.0.orig/drivers/iio/accel/bmc150-accel-core.c
+++ linux-ein-5.4.0/drivers/iio/accel/bmc150-accel-core.c
@@ -189,6 +189,14 @@
 	struct mutex mutex;
 	u8 fifo_mode, watermark;
 	s16 buffer[8];
+	/*
+	 * Ensure there is sufficient space and correct alignment for
+	 * the timestamp if enabled
+	 */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 	u8 bw_bits;
 	u32 slope_dur;
 	u32 slope_thres;
@@ -922,15 +930,16 @@
 	 * now.
 	 */
 	for (i = 0; i < count; i++) {
-		u16 sample[8];
 		int j, bit;
 
 		j = 0;
 		for_each_set_bit(bit, indio_dev->active_scan_mask,
 				 indio_dev->masklength)
-			memcpy(&sample[j++], &buffer[i * 3 + bit], 2);
+			memcpy(&data->scan.channels[j++], &buffer[i * 3 + bit],
+			       sizeof(data->scan.channels[0]));
 
-		iio_push_to_buffers_with_timestamp(indio_dev, sample, tstamp);
+		iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
+						   tstamp);
 
 		tstamp += sample_period;
 	}
@@ -1640,11 +1649,14 @@
 	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(dev, "Unable to register iio device\n");
-		goto err_trigger_unregister;
+		goto err_pm_cleanup;
 	}
 
 	return 0;
 
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(dev);
+	pm_runtime_disable(dev);
 err_trigger_unregister:
 	bmc150_accel_unregister_triggers(data, BMC150_ACCEL_TRIGGERS - 1);
 err_buffer_cleanup:
--- linux-ein-5.4.0.orig/drivers/iio/accel/hid-sensor-accel-3d.c
+++ linux-ein-5.4.0/drivers/iio/accel/hid-sensor-accel-3d.c
@@ -29,8 +29,11 @@
 	struct hid_sensor_hub_callbacks callbacks;
 	struct hid_sensor_common common_attributes;
 	struct hid_sensor_hub_attribute_info accel[ACCEL_3D_CHANNEL_MAX];
-	/* Reserve for 3 channels + padding + timestamp */
-	u32 accel_val[ACCEL_3D_CHANNEL_MAX + 3];
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u32 accel_val[3];
+		s64 timestamp __aligned(8);
+	} scan;
 	int scale_pre_decml;
 	int scale_post_decml;
 	int scale_precision;
@@ -241,8 +244,8 @@
 			accel_state->timestamp = iio_get_time_ns(indio_dev);
 
 		hid_sensor_push_data(indio_dev,
-				     accel_state->accel_val,
-				     sizeof(accel_state->accel_val),
+				     &accel_state->scan,
+				     sizeof(accel_state->scan),
 				     accel_state->timestamp);
 
 		accel_state->timestamp = 0;
@@ -267,7 +270,7 @@
 	case HID_USAGE_SENSOR_ACCEL_Y_AXIS:
 	case HID_USAGE_SENSOR_ACCEL_Z_AXIS:
 		offset = usage_id - HID_USAGE_SENSOR_ACCEL_X_AXIS;
-		accel_state->accel_val[CHANNEL_SCAN_INDEX_X + offset] =
+		accel_state->scan.accel_val[CHANNEL_SCAN_INDEX_X + offset] =
 						*(u32 *)raw_data;
 		ret = 0;
 	break;
@@ -276,6 +279,7 @@
 			hid_sensor_convert_timestamp(
 					&accel_state->common_attributes,
 					*(int64_t *)raw_data);
+		ret = 0;
 	break;
 	default:
 		break;
--- linux-ein-5.4.0.orig/drivers/iio/accel/kxcjk-1013.c
+++ linux-ein-5.4.0/drivers/iio/accel/kxcjk-1013.c
@@ -126,12 +126,29 @@
 	KX_MAX_CHIPS /* this must be last */
 };
 
+enum kx_acpi_type {
+	ACPI_GENERIC,
+	ACPI_SMO8500,
+	ACPI_KIOX010A,
+};
+
+enum kxcjk1013_axis {
+	AXIS_X,
+	AXIS_Y,
+	AXIS_Z,
+	AXIS_MAX
+};
+
 struct kxcjk1013_data {
 	struct i2c_client *client;
 	struct iio_trigger *dready_trig;
 	struct iio_trigger *motion_trig;
 	struct mutex mutex;
-	s16 buffer[8];
+	/* Ensure timestamp naturally aligned */
+	struct {
+		s16 chans[AXIS_MAX];
+		s64 timestamp __aligned(8);
+	} scan;
 	u8 odr_bits;
 	u8 range;
 	int wake_thres;
@@ -142,14 +159,7 @@
 	bool motion_trigger_on;
 	int64_t timestamp;
 	enum kx_chipset chipset;
-	bool is_smo8500_device;
-};
-
-enum kxcjk1013_axis {
-	AXIS_X,
-	AXIS_Y,
-	AXIS_Z,
-	AXIS_MAX,
+	enum kx_acpi_type acpi_type;
 };
 
 enum kxcjk1013_mode {
@@ -269,6 +279,32 @@
 			      {19163, 1, 0},
 			      {38326, 0, 1} };
 
+#ifdef CONFIG_ACPI
+enum kiox010a_fn_index {
+	KIOX010A_SET_LAPTOP_MODE = 1,
+	KIOX010A_SET_TABLET_MODE = 2,
+};
+
+static int kiox010a_dsm(struct device *dev, int fn_index)
+{
+	acpi_handle handle = ACPI_HANDLE(dev);
+	guid_t kiox010a_dsm_guid;
+	union acpi_object *obj;
+
+	if (!handle)
+		return -ENODEV;
+
+	guid_parse("1f339696-d475-4e26-8cad-2e9f8e6d7a91", &kiox010a_dsm_guid);
+
+	obj = acpi_evaluate_dsm(handle, &kiox010a_dsm_guid, 1, fn_index, NULL);
+	if (!obj)
+		return -EIO;
+
+	ACPI_FREE(obj);
+	return 0;
+}
+#endif
+
 static int kxcjk1013_set_mode(struct kxcjk1013_data *data,
 			      enum kxcjk1013_mode mode)
 {
@@ -346,6 +382,13 @@
 {
 	int ret;
 
+#ifdef CONFIG_ACPI
+	if (data->acpi_type == ACPI_KIOX010A) {
+		/* Make sure the kbd and touchpad on 2-in-1s using 2 KXCJ91008-s work */
+		kiox010a_dsm(&data->client->dev, KIOX010A_SET_LAPTOP_MODE);
+	}
+#endif
+
 	ret = i2c_smbus_read_byte_data(data->client, KXCJK1013_REG_WHO_AM_I);
 	if (ret < 0) {
 		dev_err(&data->client->dev, "Error reading who_am_i\n");
@@ -1039,12 +1082,12 @@
 	ret = i2c_smbus_read_i2c_block_data_or_emulated(data->client,
 							KXCJK1013_REG_XOUT_L,
 							AXIS_MAX * 2,
-							(u8 *)data->buffer);
+							(u8 *)data->scan.chans);
 	mutex_unlock(&data->mutex);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   data->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
@@ -1233,7 +1276,7 @@
 
 static const char *kxcjk1013_match_acpi_device(struct device *dev,
 					       enum kx_chipset *chipset,
-					       bool *is_smo8500_device)
+					       enum kx_acpi_type *acpi_type)
 {
 	const struct acpi_device_id *id;
 
@@ -1242,7 +1285,9 @@
 		return NULL;
 
 	if (strcmp(id->id, "SMO8500") == 0)
-		*is_smo8500_device = true;
+		*acpi_type = ACPI_SMO8500;
+	else if (strcmp(id->id, "KIOX010A") == 0)
+		*acpi_type = ACPI_KIOX010A;
 
 	*chipset = (enum kx_chipset)id->driver_data;
 
@@ -1278,7 +1323,7 @@
 	} else if (ACPI_HANDLE(&client->dev)) {
 		name = kxcjk1013_match_acpi_device(&client->dev,
 						   &data->chipset,
-						   &data->is_smo8500_device);
+						   &data->acpi_type);
 	} else
 		return -ENODEV;
 
@@ -1296,7 +1341,7 @@
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->info = &kxcjk1013_info;
 
-	if (client->irq > 0 && !data->is_smo8500_device) {
+	if (client->irq > 0 && data->acpi_type != ACPI_SMO8500) {
 		ret = devm_request_threaded_irq(&client->dev, client->irq,
 						kxcjk1013_data_rdy_trig_poll,
 						kxcjk1013_event_handler,
@@ -1364,14 +1409,16 @@
 	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(&client->dev, "unable to register iio device\n");
-		goto err_buffer_cleanup;
+		goto err_pm_cleanup;
 	}
 
 	return 0;
 
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(&client->dev);
+	pm_runtime_disable(&client->dev);
 err_buffer_cleanup:
-	if (data->dready_trig)
-		iio_triggered_buffer_cleanup(indio_dev);
+	iio_triggered_buffer_cleanup(indio_dev);
 err_trigger_unregister:
 	if (data->dready_trig)
 		iio_trigger_unregister(data->dready_trig);
@@ -1394,8 +1441,8 @@
 	pm_runtime_set_suspended(&client->dev);
 	pm_runtime_put_noidle(&client->dev);
 
+	iio_triggered_buffer_cleanup(indio_dev);
 	if (data->dready_trig) {
-		iio_triggered_buffer_cleanup(indio_dev);
 		iio_trigger_unregister(data->dready_trig);
 		iio_trigger_unregister(data->motion_trig);
 	}
--- linux-ein-5.4.0.orig/drivers/iio/accel/kxsd9.c
+++ linux-ein-5.4.0/drivers/iio/accel/kxsd9.c
@@ -209,23 +209,29 @@
 	const struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct kxsd9_state *st = iio_priv(indio_dev);
+	/*
+	 * Ensure correct positioning and alignment of timestamp.
+	 * No need to zero initialize as all elements written.
+	 */
+	struct {
+		__be16 chan[4];
+		s64 ts __aligned(8);
+	} hw_values;
 	int ret;
-	/* 4 * 16bit values AND timestamp */
-	__be16 hw_values[8];
 
 	ret = regmap_bulk_read(st->map,
 			       KXSD9_REG_X,
-			       &hw_values,
-			       8);
+			       hw_values.chan,
+			       sizeof(hw_values.chan));
 	if (ret) {
-		dev_err(st->dev,
-			"error reading data\n");
-		return ret;
+		dev_err(st->dev, "error reading data: %d\n", ret);
+		goto out;
 	}
 
 	iio_push_to_buffers_with_timestamp(indio_dev,
-					   hw_values,
+					   &hw_values,
 					   iio_get_time_ns(indio_dev));
+out:
 	iio_trigger_notify_done(indio_dev->trig);
 
 	return IRQ_HANDLED;
--- linux-ein-5.4.0.orig/drivers/iio/accel/mma7455_core.c
+++ linux-ein-5.4.0/drivers/iio/accel/mma7455_core.c
@@ -52,6 +52,14 @@
 
 struct mma7455_data {
 	struct regmap *regmap;
+	/*
+	 * Used to reorganize data.  Will ensure correct alignment of
+	 * the timestamp if present
+	 */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static int mma7455_drdy(struct mma7455_data *mma7455)
@@ -82,19 +90,19 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mma7455_data *mma7455 = iio_priv(indio_dev);
-	u8 buf[16]; /* 3 x 16-bit channels + padding + ts */
 	int ret;
 
 	ret = mma7455_drdy(mma7455);
 	if (ret)
 		goto done;
 
-	ret = regmap_bulk_read(mma7455->regmap, MMA7455_REG_XOUTL, buf,
-			       sizeof(__le16) * 3);
+	ret = regmap_bulk_read(mma7455->regmap, MMA7455_REG_XOUTL,
+			       mma7455->scan.channels,
+			       sizeof(mma7455->scan.channels));
 	if (ret)
 		goto done;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &mma7455->scan,
 					   iio_get_time_ns(indio_dev));
 
 done:
--- linux-ein-5.4.0.orig/drivers/iio/accel/mma8452.c
+++ linux-ein-5.4.0/drivers/iio/accel/mma8452.c
@@ -110,6 +110,12 @@
 	int sleep_val;
 	struct regulator *vdd_reg;
 	struct regulator *vddio_reg;
+
+	/* Ensure correct alignment of time stamp when present */
+	struct {
+		__be16 channels[3];
+		s64 ts __aligned(8);
+	} buffer;
 };
 
  /**
@@ -1091,14 +1097,13 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mma8452_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 3 16-bit channels + padding + ts */
 	int ret;
 
-	ret = mma8452_read(data, (__be16 *)buffer);
+	ret = mma8452_read(data, data->buffer.channels);
 	if (ret < 0)
 		goto done;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
 					   iio_get_time_ns(indio_dev));
 
 done:
@@ -1468,7 +1473,7 @@
 	if (ret)
 		return ret;
 
-	indio_dev->trig = trig;
+	indio_dev->trig = iio_trigger_get(trig);
 
 	return 0;
 }
@@ -1484,10 +1489,14 @@
 	int i;
 	int ret;
 
-	ret = i2c_smbus_write_byte_data(client,	MMA8452_CTRL_REG2,
+	/*
+	 * Find on fxls8471, after config reset bit, it reset immediately,
+	 * and will not give ACK, so here do not check the return value.
+	 * The following code will read the reset register, and check whether
+	 * this reset works.
+	 */
+	i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG2,
 					MMA8452_CTRL_REG2_RST);
-	if (ret < 0)
-		return ret;
 
 	for (i = 0; i < 10; i++) {
 		usleep_range(100, 200);
@@ -1685,10 +1694,13 @@
 
 	ret = mma8452_set_freefall_mode(data, false);
 	if (ret < 0)
-		goto buffer_cleanup;
+		goto unregister_device;
 
 	return 0;
 
+unregister_device:
+	iio_device_unregister(indio_dev);
+
 buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 
--- linux-ein-5.4.0.orig/drivers/iio/accel/mma9551.c
+++ linux-ein-5.4.0/drivers/iio/accel/mma9551.c
@@ -496,11 +496,14 @@
 	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(&client->dev, "unable to register iio device\n");
-		goto out_poweroff;
+		goto err_pm_cleanup;
 	}
 
 	return 0;
 
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(&client->dev);
+	pm_runtime_disable(&client->dev);
 out_poweroff:
 	mma9551_set_device_state(client, false);
 
--- linux-ein-5.4.0.orig/drivers/iio/accel/mma9551_core.c
+++ linux-ein-5.4.0/drivers/iio/accel/mma9551_core.c
@@ -296,9 +296,12 @@
 
 	ret = mma9551_transfer(client, app_id, MMA9551_CMD_READ_CONFIG,
 			       reg, NULL, 0, (u8 *)&v, 2);
+	if (ret < 0)
+		return ret;
+
 	*val = be16_to_cpu(v);
 
-	return ret;
+	return 0;
 }
 EXPORT_SYMBOL(mma9551_read_config_word);
 
@@ -354,9 +357,12 @@
 
 	ret = mma9551_transfer(client, app_id, MMA9551_CMD_READ_STATUS,
 			       reg, NULL, 0, (u8 *)&v, 2);
+	if (ret < 0)
+		return ret;
+
 	*val = be16_to_cpu(v);
 
-	return ret;
+	return 0;
 }
 EXPORT_SYMBOL(mma9551_read_status_word);
 
--- linux-ein-5.4.0.orig/drivers/iio/accel/mma9553.c
+++ linux-ein-5.4.0/drivers/iio/accel/mma9553.c
@@ -1135,12 +1135,15 @@
 	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(&client->dev, "unable to register iio device\n");
-		goto out_poweroff;
+		goto err_pm_cleanup;
 	}
 
 	dev_dbg(&indio_dev->dev, "Registered device %s\n", name);
 	return 0;
 
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(&client->dev);
+	pm_runtime_disable(&client->dev);
 out_poweroff:
 	mma9551_set_device_state(client, false);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/iio/accel/mxc4005.c
+++ linux-ein-5.4.0/drivers/iio/accel/mxc4005.c
@@ -56,7 +56,11 @@
 	struct mutex mutex;
 	struct regmap *regmap;
 	struct iio_trigger *dready_trig;
-	__be16 buffer[8];
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		__be16 chans[3];
+		s64 timestamp __aligned(8);
+	} scan;
 	bool trigger_enabled;
 };
 
@@ -135,7 +139,7 @@
 	int ret;
 
 	ret = regmap_bulk_read(data->regmap, MXC4005_REG_XOUT_UPPER,
-			       (u8 *) data->buffer, sizeof(data->buffer));
+			       data->scan.chans, sizeof(data->scan.chans));
 	if (ret < 0) {
 		dev_err(data->dev, "failed to read axes\n");
 		return ret;
@@ -150,7 +154,7 @@
 	__be16 reg;
 	int ret;
 
-	ret = regmap_bulk_read(data->regmap, addr, (u8 *) &reg, sizeof(reg));
+	ret = regmap_bulk_read(data->regmap, addr, &reg, sizeof(reg));
 	if (ret < 0) {
 		dev_err(data->dev, "failed to read reg %02x\n", addr);
 		return ret;
@@ -301,7 +305,7 @@
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 
 err:
@@ -458,8 +462,6 @@
 		data->dready_trig->dev.parent = &client->dev;
 		data->dready_trig->ops = &mxc4005_trigger_ops;
 		iio_trigger_set_drvdata(data->dready_trig, indio_dev);
-		indio_dev->trig = data->dready_trig;
-		iio_trigger_get(indio_dev->trig);
 		ret = devm_iio_trigger_register(&client->dev,
 						data->dready_trig);
 		if (ret) {
@@ -467,6 +469,8 @@
 				"failed to register trigger\n");
 			return ret;
 		}
+
+		indio_dev->trig = iio_trigger_get(data->dready_trig);
 	}
 
 	return devm_iio_device_register(&client->dev, indio_dev);
--- linux-ein-5.4.0.orig/drivers/iio/accel/sca3000.c
+++ linux-ein-5.4.0/drivers/iio/accel/sca3000.c
@@ -980,7 +980,7 @@
 	st->tx[0] = SCA3000_READ_REG(reg_address_high);
 	ret = spi_sync_transfer(st->us, xfer, ARRAY_SIZE(xfer));
 	if (ret) {
-		dev_err(get_device(&st->us->dev), "problem reading register");
+		dev_err(&st->us->dev, "problem reading register\n");
 		return ret;
 	}
 
--- linux-ein-5.4.0.orig/drivers/iio/accel/st_accel_core.c
+++ linux-ein-5.4.0/drivers/iio/accel/st_accel_core.c
@@ -993,6 +993,7 @@
 #define ST_ACCEL_TRIGGER_OPS NULL
 #endif
 
+#ifdef CONFIG_ACPI
 static const struct iio_mount_matrix *
 get_mount_matrix(const struct iio_dev *indio_dev,
 		 const struct iio_chan_spec *chan)
@@ -1013,7 +1014,6 @@
 static int apply_acpi_orientation(struct iio_dev *indio_dev,
 				  struct iio_chan_spec *channels)
 {
-#ifdef CONFIG_ACPI
 	struct st_sensor_data *adata = iio_priv(indio_dev);
 	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
 	struct acpi_device *adev;
@@ -1141,10 +1141,14 @@
 out:
 	kfree(buffer.pointer);
 	return ret;
+}
 #else /* !CONFIG_ACPI */
+static int apply_acpi_orientation(struct iio_dev *indio_dev,
+				  struct iio_chan_spec *channels)
+{
 	return 0;
-#endif
 }
+#endif
 
 /*
  * st_accel_get_settings() - get sensor settings from device name
--- linux-ein-5.4.0.orig/drivers/iio/accel/st_accel_i2c.c
+++ linux-ein-5.4.0/drivers/iio/accel/st_accel_i2c.c
@@ -114,7 +114,7 @@
 
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id st_accel_acpi_match[] = {
-	{"SMO8840", (kernel_ulong_t)LNG2DM_ACCEL_DEV_NAME},
+	{"SMO8840", (kernel_ulong_t)LIS2DH12_ACCEL_DEV_NAME},
 	{"SMO8A90", (kernel_ulong_t)LNG2DM_ACCEL_DEV_NAME},
 	{ },
 };
--- linux-ein-5.4.0.orig/drivers/iio/accel/stk8312.c
+++ linux-ein-5.4.0/drivers/iio/accel/stk8312.c
@@ -103,7 +103,11 @@
 	u8 mode;
 	struct iio_trigger *dready_trig;
 	bool dready_trigger_on;
-	s8 buffer[16]; /* 3x8-bit channels + 5x8 padding + 64-bit timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		s8 chans[3];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 static IIO_CONST_ATTR(in_accel_scale_available, STK8312_SCALE_AVAIL);
@@ -438,7 +442,7 @@
 		ret = i2c_smbus_read_i2c_block_data(data->client,
 						    STK8312_REG_XOUT,
 						    STK8312_ALL_CHANNEL_SIZE,
-						    data->buffer);
+						    data->scan.chans);
 		if (ret < STK8312_ALL_CHANNEL_SIZE) {
 			dev_err(&data->client->dev, "register read failed\n");
 			mutex_unlock(&data->lock);
@@ -452,12 +456,12 @@
 				mutex_unlock(&data->lock);
 				goto err;
 			}
-			data->buffer[i++] = ret;
+			data->scan.chans[i++] = ret;
 		}
 	}
 	mutex_unlock(&data->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/accel/stk8ba50.c
+++ linux-ein-5.4.0/drivers/iio/accel/stk8ba50.c
@@ -91,12 +91,11 @@
 	u8 sample_rate_idx;
 	struct iio_trigger *dready_trig;
 	bool dready_trigger_on;
-	/*
-	 * 3 x 16-bit channels (10-bit data, 6-bit padding) +
-	 * 1 x 16 padding +
-	 * 4 x 16 64-bit timestamp
-	 */
-	s16 buffer[8];
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		s16 chans[3];
+		s64 timetamp __aligned(8);
+	} scan;
 };
 
 #define STK8BA50_ACCEL_CHANNEL(index, reg, axis) {			\
@@ -324,7 +323,7 @@
 		ret = i2c_smbus_read_i2c_block_data(data->client,
 						    STK8BA50_REG_XOUT,
 						    STK8BA50_ALL_CHANNEL_SIZE,
-						    (u8 *)data->buffer);
+						    (u8 *)data->scan.chans);
 		if (ret < STK8BA50_ALL_CHANNEL_SIZE) {
 			dev_err(&data->client->dev, "register read failed\n");
 			goto err;
@@ -337,10 +336,10 @@
 			if (ret < 0)
 				goto err;
 
-			data->buffer[i++] = ret;
+			data->scan.chans[i++] = ret;
 		}
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 err:
 	mutex_unlock(&data->lock);
--- linux-ein-5.4.0.orig/drivers/iio/adc/Kconfig
+++ linux-ein-5.4.0/drivers/iio/adc/Kconfig
@@ -784,6 +784,7 @@
 	depends on ARCH_STM32 || COMPILE_TEST
 	depends on OF
 	depends on REGULATOR
+	depends on HAS_IOMEM
 	select IIO_BUFFER
 	select MFD_STM32_TIMERS
 	select IIO_STM32_TIMER_TRIGGER
@@ -839,22 +840,6 @@
 	  Say yes here to build support for ST Microelectronics STMPE
 	  built-in ADC block (stmpe811).
 
-config STX104
-	tristate "Apex Embedded Systems STX104 driver"
-	depends on PC104 && X86
-	select ISA_BUS_API
-	select GPIOLIB
-	help
-	  Say yes here to build support for the Apex Embedded Systems STX104
-	  integrated analog PC/104 card.
-
-	  This driver supports the 16 channels of single-ended (8 channels of
-	  differential) analog inputs, 2 channels of analog output, 4 digital
-	  inputs, and 4 digital outputs provided by the STX104.
-
-	  The base port addresses for the devices may be configured via the base
-	  array module parameter.
-
 config SUN4I_GPADC
 	tristate "Support for the Allwinner SoCs GPADC"
 	depends on IIO
--- linux-ein-5.4.0.orig/drivers/iio/adc/Makefile
+++ linux-ein-5.4.0/drivers/iio/adc/Makefile
@@ -72,7 +72,6 @@
 obj-$(CONFIG_ROCKCHIP_SARADC) += rockchip_saradc.o
 obj-$(CONFIG_SC27XX_ADC) += sc27xx_adc.o
 obj-$(CONFIG_SPEAR_ADC) += spear_adc.o
-obj-$(CONFIG_STX104) += stx104.o
 obj-$(CONFIG_SUN4I_GPADC) += sun4i-gpadc-iio.o
 obj-$(CONFIG_STM32_ADC_CORE) += stm32-adc-core.o
 obj-$(CONFIG_STM32_ADC) += stm32-adc.o
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad7124.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad7124.c
@@ -39,6 +39,8 @@
 #define AD7124_STATUS_POR_FLAG_MSK	BIT(4)
 
 /* AD7124_ADC_CONTROL */
+#define AD7124_ADC_CTRL_REF_EN_MSK	BIT(8)
+#define AD7124_ADC_CTRL_REF_EN(x)	FIELD_PREP(AD7124_ADC_CTRL_REF_EN_MSK, x)
 #define AD7124_ADC_CTRL_PWR_MSK	GENMASK(7, 6)
 #define AD7124_ADC_CTRL_PWR(x)		FIELD_PREP(AD7124_ADC_CTRL_PWR_MSK, x)
 #define AD7124_ADC_CTRL_MODE_MSK	GENMASK(5, 2)
@@ -61,7 +63,7 @@
 #define AD7124_CONFIG_REF_SEL(x)	FIELD_PREP(AD7124_CONFIG_REF_SEL_MSK, x)
 #define AD7124_CONFIG_PGA_MSK		GENMASK(2, 0)
 #define AD7124_CONFIG_PGA(x)		FIELD_PREP(AD7124_CONFIG_PGA_MSK, x)
-#define AD7124_CONFIG_IN_BUFF_MSK	GENMASK(7, 6)
+#define AD7124_CONFIG_IN_BUFF_MSK	GENMASK(6, 5)
 #define AD7124_CONFIG_IN_BUFF(x)	FIELD_PREP(AD7124_CONFIG_IN_BUFF_MSK, x)
 
 /* AD7124_FILTER_X */
@@ -140,7 +142,6 @@
 		.sign = 'u',
 		.realbits = 24,
 		.storagebits = 32,
-		.shift = 8,
 		.endianness = IIO_BE,
 	},
 };
@@ -424,7 +425,10 @@
 		break;
 	case AD7124_INT_REF:
 		st->channel_config[channel_number].vref_mv = 2500;
-		break;
+		st->adc_control &= ~AD7124_ADC_CTRL_REF_EN_MSK;
+		st->adc_control |= AD7124_ADC_CTRL_REF_EN(1);
+		return ad_sd_write_reg(&st->sd, AD7124_ADC_CONTROL,
+				      2, st->adc_control);
 	default:
 		dev_err(&st->sd.spi->dev, "Invalid reference %d\n", refsel);
 		return -EINVAL;
@@ -468,6 +472,13 @@
 		if (ret)
 			goto err;
 
+		if (channel >= indio_dev->num_channels) {
+			dev_err(indio_dev->dev.parent,
+				"Channel index >= number of channels\n");
+			ret = -EINVAL;
+			goto err;
+		}
+
 		ret = of_property_read_u32_array(child, "diff-channels",
 						 ain, 2);
 		if (ret)
@@ -489,13 +500,11 @@
 		st->channel_config[channel].buf_negative =
 			of_property_read_bool(child, "adi,buffered-negative");
 
-		*chan = ad7124_channel_template;
-		chan->address = channel;
-		chan->scan_index = channel;
-		chan->channel = ain[0];
-		chan->channel2 = ain[1];
-
-		chan++;
+		chan[channel] = ad7124_channel_template;
+		chan[channel].address = channel;
+		chan[channel].scan_index = channel;
+		chan[channel].channel = ain[0];
+		chan[channel].channel2 = ain[1];
 	}
 
 	return 0;
@@ -561,6 +570,11 @@
 	return ret;
 }
 
+static void ad7124_reg_disable(void *r)
+{
+	regulator_disable(r);
+}
+
 static int ad7124_probe(struct spi_device *spi)
 {
 	const struct spi_device_id *id;
@@ -604,17 +618,20 @@
 		ret = regulator_enable(st->vref[i]);
 		if (ret)
 			return ret;
+
+		ret = devm_add_action_or_reset(&spi->dev, ad7124_reg_disable,
+					       st->vref[i]);
+		if (ret)
+			return ret;
 	}
 
 	st->mclk = devm_clk_get(&spi->dev, "mclk");
-	if (IS_ERR(st->mclk)) {
-		ret = PTR_ERR(st->mclk);
-		goto error_regulator_disable;
-	}
+	if (IS_ERR(st->mclk))
+		return PTR_ERR(st->mclk);
 
 	ret = clk_prepare_enable(st->mclk);
 	if (ret < 0)
-		goto error_regulator_disable;
+		return ret;
 
 	ret = ad7124_soft_reset(st);
 	if (ret < 0)
@@ -640,11 +657,6 @@
 	ad_sd_cleanup_buffer_and_trigger(indio_dev);
 error_clk_disable_unprepare:
 	clk_disable_unprepare(st->mclk);
-error_regulator_disable:
-	for (i = ARRAY_SIZE(st->vref) - 1; i >= 0; i--) {
-		if (!IS_ERR_OR_NULL(st->vref[i]))
-			regulator_disable(st->vref[i]);
-	}
 
 	return ret;
 }
@@ -653,17 +665,11 @@
 {
 	struct iio_dev *indio_dev = spi_get_drvdata(spi);
 	struct ad7124_state *st = iio_priv(indio_dev);
-	int i;
 
 	iio_device_unregister(indio_dev);
 	ad_sd_cleanup_buffer_and_trigger(indio_dev);
 	clk_disable_unprepare(st->mclk);
 
-	for (i = ARRAY_SIZE(st->vref) - 1; i >= 0; i--) {
-		if (!IS_ERR_OR_NULL(st->vref[i]))
-			regulator_disable(st->vref[i]);
-	}
-
 	return 0;
 }
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad7606.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad7606.c
@@ -85,7 +85,7 @@
 
 static int ad7606_read_samples(struct ad7606_state *st)
 {
-	unsigned int num = st->chip_info->num_channels;
+	unsigned int num = st->chip_info->num_channels - 1;
 	u16 *data = st->data;
 	int ret;
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad7768-1.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad7768-1.c
@@ -166,6 +166,10 @@
 	 * transfer buffers to live in their own cache lines.
 	 */
 	union {
+		struct {
+			__be32 chan;
+			s64 timestamp;
+		} scan;
 		__be32 d32;
 		u8 d8[2];
 	} data ____cacheline_aligned;
@@ -459,15 +463,15 @@
 
 	mutex_lock(&st->lock);
 
-	ret = spi_read(st->spi, &st->data.d32, 3);
+	ret = spi_read(st->spi, &st->data.scan.chan, 3);
 	if (ret < 0)
 		goto err_unlock;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, &st->data.d32,
+	iio_push_to_buffers_with_timestamp(indio_dev, &st->data.scan,
 					   iio_get_time_ns(indio_dev));
 
-	iio_trigger_notify_done(indio_dev->trig);
 err_unlock:
+	iio_trigger_notify_done(indio_dev->trig);
 	mutex_unlock(&st->lock);
 
 	return IRQ_HANDLED;
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad7780.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad7780.c
@@ -309,7 +309,7 @@
 
 	ret = ad7780_init_gpios(&spi->dev, st);
 	if (ret)
-		goto error_cleanup_buffer_and_trigger;
+		return ret;
 
 	st->reg = devm_regulator_get(&spi->dev, "avdd");
 	if (IS_ERR(st->reg))
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad7793.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad7793.c
@@ -278,6 +278,7 @@
 	id &= AD7793_ID_MASK;
 
 	if (id != st->chip_info->id) {
+		ret = -ENODEV;
 		dev_err(&st->sd.spi->dev, "device ID query failed\n");
 		goto out;
 	}
@@ -541,7 +542,7 @@
 	.read_raw = &ad7793_read_raw,
 	.write_raw = &ad7793_write_raw,
 	.write_raw_get_fmt = &ad7793_write_raw_get_fmt,
-	.attrs = &ad7793_attribute_group,
+	.attrs = &ad7797_attribute_group,
 	.validate_trigger = ad_sd_validate_trigger,
 };
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad7949.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad7949.c
@@ -57,29 +57,11 @@
 	u32 buffer ____cacheline_aligned;
 };
 
-static bool ad7949_spi_cfg_is_read_back(struct ad7949_adc_chip *ad7949_adc)
-{
-	if (!(ad7949_adc->cfg & AD7949_CFG_READ_BACK))
-		return true;
-
-	return false;
-}
-
-static int ad7949_spi_bits_per_word(struct ad7949_adc_chip *ad7949_adc)
-{
-	int ret = ad7949_adc->resolution;
-
-	if (ad7949_spi_cfg_is_read_back(ad7949_adc))
-		ret += AD7949_CFG_REG_SIZE_BITS;
-
-	return ret;
-}
-
 static int ad7949_spi_write_cfg(struct ad7949_adc_chip *ad7949_adc, u16 val,
 				u16 mask)
 {
 	int ret;
-	int bits_per_word = ad7949_spi_bits_per_word(ad7949_adc);
+	int bits_per_word = ad7949_adc->resolution;
 	int shift = bits_per_word - AD7949_CFG_REG_SIZE_BITS;
 	struct spi_message msg;
 	struct spi_transfer tx[] = {
@@ -107,8 +89,9 @@
 				   unsigned int channel)
 {
 	int ret;
-	int bits_per_word = ad7949_spi_bits_per_word(ad7949_adc);
-	int mask = GENMASK(ad7949_adc->resolution, 0);
+	int i;
+	int bits_per_word = ad7949_adc->resolution;
+	int mask = GENMASK(ad7949_adc->resolution - 1, 0);
 	struct spi_message msg;
 	struct spi_transfer tx[] = {
 		{
@@ -118,12 +101,23 @@
 		},
 	};
 
-	ret = ad7949_spi_write_cfg(ad7949_adc,
-				   channel << AD7949_OFFSET_CHANNEL_SEL,
-				   AD7949_MASK_CHANNEL_SEL);
-	if (ret)
-		return ret;
+	/*
+	 * 1: write CFG for sample N and read old data (sample N-2)
+	 * 2: if CFG was not changed since sample N-1 then we'll get good data
+	 *    at the next xfer, so we bail out now, otherwise we write something
+	 *    and we read garbage (sample N-1 configuration).
+	 */
+	for (i = 0; i < 2; i++) {
+		ret = ad7949_spi_write_cfg(ad7949_adc,
+					   channel << AD7949_OFFSET_CHANNEL_SEL,
+					   AD7949_MASK_CHANNEL_SEL);
+		if (ret)
+			return ret;
+		if (channel == ad7949_adc->current_channel)
+			break;
+	}
 
+	/* 3: write something and read actual data */
 	ad7949_adc->buffer = 0;
 	spi_message_init_with_transfers(&msg, tx, 1);
 	ret = spi_sync(ad7949_adc->spi, &msg);
@@ -138,10 +132,7 @@
 
 	ad7949_adc->current_channel = channel;
 
-	if (ad7949_spi_cfg_is_read_back(ad7949_adc))
-		*val = (ad7949_adc->buffer >> AD7949_CFG_REG_SIZE_BITS) & mask;
-	else
-		*val = ad7949_adc->buffer & mask;
+	*val = ad7949_adc->buffer & mask;
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/iio/adc/ad_sigma_delta.c
+++ linux-ein-5.4.0/drivers/iio/adc/ad_sigma_delta.c
@@ -283,10 +283,10 @@
 	unsigned int data_reg;
 	int ret = 0;
 
-	if (iio_buffer_enabled(indio_dev))
-		return -EBUSY;
+	ret = iio_device_claim_direct_mode(indio_dev);
+	if (ret)
+		return ret;
 
-	mutex_lock(&indio_dev->mlock);
 	ad_sigma_delta_set_channel(sigma_delta, chan->address);
 
 	spi_bus_lock(sigma_delta->spi->master);
@@ -325,7 +325,7 @@
 	ad_sigma_delta_set_mode(sigma_delta, AD_SD_MODE_IDLE);
 	sigma_delta->bus_locked = false;
 	spi_bus_unlock(sigma_delta->spi->master);
-	mutex_unlock(&indio_dev->mlock);
+	iio_device_release_direct_mode(indio_dev);
 
 	if (ret)
 		return ret;
--- linux-ein-5.4.0.orig/drivers/iio/adc/aspeed_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/aspeed_adc.c
@@ -184,6 +184,7 @@
 
 	data = iio_priv(indio_dev);
 	data->dev = &pdev->dev;
+	platform_set_drvdata(pdev, indio_dev);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	data->base = devm_ioremap_resource(&pdev->dev, res);
--- linux-ein-5.4.0.orig/drivers/iio/adc/at91-sama5d2_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/at91-sama5d2_adc.c
@@ -73,7 +73,7 @@
 #define	AT91_SAMA5D2_MR_ANACH		BIT(23)
 /* Tracking Time */
 #define	AT91_SAMA5D2_MR_TRACKTIM(v)	((v) << 24)
-#define	AT91_SAMA5D2_MR_TRACKTIM_MAX	0xff
+#define	AT91_SAMA5D2_MR_TRACKTIM_MAX	0xf
 /* Transfer Time */
 #define	AT91_SAMA5D2_MR_TRANSFER(v)	((v) << 28)
 #define	AT91_SAMA5D2_MR_TRANSFER_MAX	0x3
@@ -399,7 +399,9 @@
 	wait_queue_head_t		wq_data_available;
 	struct at91_adc_dma		dma_st;
 	struct at91_adc_touch		touch_st;
-	u16				buffer[AT91_BUFFER_MAX_HWORDS];
+	struct iio_dev			*indio_dev;
+	/* Ensure naturally aligned timestamp */
+	u16				buffer[AT91_BUFFER_MAX_HWORDS] __aligned(8);
 	/*
 	 * lock to prevent concurrent 'single conversion' requests through
 	 * sysfs.
@@ -624,13 +626,13 @@
 	/* first half of register is the x or y, second half is the scale */
 	val = at91_adc_readl(st, reg);
 	if (!val)
-		dev_dbg(&iio_priv_to_dev(st)->dev, "pos is 0\n");
+		dev_dbg(&st->indio_dev->dev, "pos is 0\n");
 
 	pos = val & AT91_SAMA5D2_XYZ_MASK;
 	result = (pos << AT91_SAMA5D2_MAX_POS_BITS) - pos;
 	scale = (val >> 16) & AT91_SAMA5D2_XYZ_MASK;
 	if (scale == 0) {
-		dev_err(&iio_priv_to_dev(st)->dev, "scale is 0\n");
+		dev_err(&st->indio_dev->dev, "scale is 0\n");
 		return 0;
 	}
 	result /= scale;
@@ -723,6 +725,7 @@
 
 	for_each_set_bit(bit, indio->active_scan_mask, indio->num_channels) {
 		struct iio_chan_spec const *chan = at91_adc_chan_get(indio, bit);
+		u32 cor;
 
 		if (!chan)
 			continue;
@@ -732,6 +735,20 @@
 			continue;
 
 		if (state) {
+			cor = at91_adc_readl(st, AT91_SAMA5D2_COR);
+
+			if (chan->differential)
+				cor |= (BIT(chan->channel) |
+					BIT(chan->channel2)) <<
+					AT91_SAMA5D2_COR_DIFF_OFFSET;
+			else
+				cor &= ~(BIT(chan->channel) <<
+				       AT91_SAMA5D2_COR_DIFF_OFFSET);
+
+			at91_adc_writel(st, AT91_SAMA5D2_COR, cor);
+		}
+
+		if (state) {
 			at91_adc_writel(st, AT91_SAMA5D2_CHER,
 					BIT(chan->channel));
 			/* enable irq only if not using DMA */
@@ -966,7 +983,7 @@
 	trig = devm_iio_trigger_alloc(&indio->dev, "%s-dev%d-%s", indio->name,
 				      indio->id, trigger_name);
 	if (!trig)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	trig->dev.parent = indio->dev.parent;
 	iio_trigger_set_drvdata(trig, indio);
@@ -1139,9 +1156,9 @@
 	return i;
 }
 
-static void at91_adc_setup_samp_freq(struct at91_adc_state *st, unsigned freq)
+static void at91_adc_setup_samp_freq(struct iio_dev *indio_dev, unsigned freq)
 {
-	struct iio_dev *indio_dev = iio_priv_to_dev(st);
+	struct at91_adc_state *st = iio_priv(indio_dev);
 	unsigned f_per, prescal, startup, mr;
 
 	f_per = clk_get_rate(st->per_clk);
@@ -1210,9 +1227,9 @@
 	st->touch_st.touching = true;
 }
 
-static void at91_adc_no_pen_detect_interrupt(struct at91_adc_state *st)
+static void at91_adc_no_pen_detect_interrupt(struct iio_dev *indio_dev)
 {
-	struct iio_dev *indio_dev = iio_priv_to_dev(st);
+	struct at91_adc_state *st = iio_priv(indio_dev);
 
 	at91_adc_writel(st, AT91_SAMA5D2_TRGR,
 			AT91_SAMA5D2_TRGR_TRGMOD_NO_TRIGGER);
@@ -1232,7 +1249,7 @@
 					struct at91_adc_touch, workq);
 	struct at91_adc_state *st = container_of(touch_st,
 					struct at91_adc_state, touch_st);
-	struct iio_dev *indio_dev = iio_priv_to_dev(st);
+	struct iio_dev *indio_dev = st->indio_dev;
 
 	iio_push_to_buffers(indio_dev, st->buffer);
 }
@@ -1253,7 +1270,7 @@
 		at91_adc_pen_detect_interrupt(st);
 	} else if ((status & AT91_SAMA5D2_IER_NOPEN)) {
 		/* nopen detected IRQ */
-		at91_adc_no_pen_detect_interrupt(st);
+		at91_adc_no_pen_detect_interrupt(indio);
 	} else if ((status & AT91_SAMA5D2_ISR_PENS) &&
 		   ((status & rdy_mask) == rdy_mask)) {
 		/* periodic trigger IRQ - during pen sense */
@@ -1304,10 +1321,12 @@
 		ret = at91_adc_read_position(st, chan->channel,
 					     &tmp_val);
 		*val = tmp_val;
+		if (ret > 0)
+			ret = at91_adc_adjust_val_osr(st, val);
 		mutex_unlock(&st->lock);
 		iio_device_release_direct_mode(indio_dev);
 
-		return at91_adc_adjust_val_osr(st, val);
+		return ret;
 	}
 	if (chan->type == IIO_PRESSURE) {
 		ret = iio_device_claim_direct_mode(indio_dev);
@@ -1318,10 +1337,12 @@
 		ret = at91_adc_read_pressure(st, chan->channel,
 					     &tmp_val);
 		*val = tmp_val;
+		if (ret > 0)
+			ret = at91_adc_adjust_val_osr(st, val);
 		mutex_unlock(&st->lock);
 		iio_device_release_direct_mode(indio_dev);
 
-		return at91_adc_adjust_val_osr(st, val);
+		return ret;
 	}
 
 	/* in this case we have a voltage channel */
@@ -1352,7 +1373,8 @@
 		*val = st->conversion_value;
 		ret = at91_adc_adjust_val_osr(st, val);
 		if (chan->scan_type.sign == 's')
-			*val = sign_extend32(*val, 11);
+			*val = sign_extend32(*val,
+					     chan->scan_type.realbits - 1);
 		st->conversion_done = false;
 	}
 
@@ -1411,16 +1433,20 @@
 		/* if no change, optimize out */
 		if (val == st->oversampling_ratio)
 			return 0;
+		mutex_lock(&st->lock);
 		st->oversampling_ratio = val;
 		/* update ratio */
 		at91_adc_config_emr(st);
+		mutex_unlock(&st->lock);
 		return 0;
 	case IIO_CHAN_INFO_SAMP_FREQ:
 		if (val < st->soc_info.min_sample_rate ||
 		    val > st->soc_info.max_sample_rate)
 			return -EINVAL;
 
-		at91_adc_setup_samp_freq(st, val);
+		mutex_lock(&st->lock);
+		at91_adc_setup_samp_freq(indio_dev, val);
+		mutex_unlock(&st->lock);
 		return 0;
 	default:
 		return -EINVAL;
@@ -1558,8 +1584,10 @@
 	return 0;
 }
 
-static void at91_adc_hw_init(struct at91_adc_state *st)
+static void at91_adc_hw_init(struct iio_dev *indio_dev)
 {
+	struct at91_adc_state *st = iio_priv(indio_dev);
+
 	at91_adc_writel(st, AT91_SAMA5D2_CR, AT91_SAMA5D2_CR_SWRST);
 	at91_adc_writel(st, AT91_SAMA5D2_IDR, 0xffffffff);
 	/*
@@ -1569,7 +1597,7 @@
 	at91_adc_writel(st, AT91_SAMA5D2_MR,
 			AT91_SAMA5D2_MR_TRANSFER(2) | AT91_SAMA5D2_MR_ANACH);
 
-	at91_adc_setup_samp_freq(st, st->soc_info.min_sample_rate);
+	at91_adc_setup_samp_freq(indio_dev, st->soc_info.min_sample_rate);
 
 	/* configure extended mode register */
 	at91_adc_config_emr(st);
@@ -1652,6 +1680,7 @@
 	indio_dev->num_channels = ARRAY_SIZE(at91_adc_channels);
 
 	st = iio_priv(indio_dev);
+	st->indio_dev = indio_dev;
 
 	bitmap_set(&st->touch_st.channels_bitmask,
 		   AT91_SAMA5D2_TOUCH_X_CHAN_IDX, 1);
@@ -1763,7 +1792,7 @@
 		goto vref_disable;
 	}
 
-	at91_adc_hw_init(st);
+	at91_adc_hw_init(indio_dev);
 
 	ret = clk_prepare_enable(st->per_clk);
 	if (ret)
@@ -1879,7 +1908,7 @@
 	if (ret)
 		goto vref_disable_resume;
 
-	at91_adc_hw_init(st);
+	at91_adc_hw_init(indio_dev);
 
 	/* reconfiguring trigger hardware state */
 	if (!iio_buffer_enabled(indio_dev))
--- linux-ein-5.4.0.orig/drivers/iio/adc/at91_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/at91_adc.c
@@ -616,8 +616,10 @@
 	trig->ops = &at91_adc_trigger_ops;
 
 	ret = iio_trigger_register(trig);
-	if (ret)
+	if (ret) {
+		iio_trigger_free(trig);
 		return NULL;
+	}
 
 	return trig;
 }
--- linux-ein-5.4.0.orig/drivers/iio/adc/axp20x_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/axp20x_adc.c
@@ -251,19 +251,8 @@
 			  struct iio_chan_spec const *chan, int *val)
 {
 	struct axp20x_adc_iio *info = iio_priv(indio_dev);
-	int size;
 
-	/*
-	 * N.B.: Unlike the Chinese datasheets tell, the charging current is
-	 * stored on 12 bits, not 13 bits. Only discharging current is on 13
-	 * bits.
-	 */
-	if (chan->type == IIO_CURRENT && chan->channel == AXP22X_BATT_DISCHRG_I)
-		size = 13;
-	else
-		size = 12;
-
-	*val = axp20x_read_variable_width(info->regmap, chan->address, size);
+	*val = axp20x_read_variable_width(info->regmap, chan->address, 12);
 	if (*val < 0)
 		return *val;
 
@@ -386,9 +375,8 @@
 		return IIO_VAL_INT_PLUS_MICRO;
 
 	case IIO_CURRENT:
-		*val = 0;
-		*val2 = 500000;
-		return IIO_VAL_INT_PLUS_MICRO;
+		*val = 1;
+		return IIO_VAL_INT;
 
 	case IIO_TEMP:
 		*val = 100;
--- linux-ein-5.4.0.orig/drivers/iio/adc/axp288_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/axp288_adc.c
@@ -196,6 +196,14 @@
 		},
 		.driver_data = (void *)(uintptr_t)AXP288_ADC_TS_BIAS_80UA,
 	},
+	{
+		/* Nuvision Solo 10 Draw */
+		.matches = {
+		  DMI_MATCH(DMI_SYS_VENDOR, "TMAX"),
+		  DMI_MATCH(DMI_PRODUCT_NAME, "TM101W610L"),
+		},
+		.driver_data = (void *)(uintptr_t)AXP288_ADC_TS_BIAS_80UA,
+	},
 	{}
 };
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/berlin2-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/berlin2-adc.c
@@ -289,8 +289,10 @@
 	int ret;
 
 	indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*priv));
-	if (!indio_dev)
+	if (!indio_dev) {
+		of_node_put(parent_np);
 		return -ENOMEM;
+	}
 
 	priv = iio_priv(indio_dev);
 	platform_set_drvdata(pdev, indio_dev);
--- linux-ein-5.4.0.orig/drivers/iio/adc/dln2-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/dln2-adc.c
@@ -248,7 +248,6 @@
 static int dln2_adc_read(struct dln2_adc *dln2, unsigned int channel)
 {
 	int ret, i;
-	struct iio_dev *indio_dev = platform_get_drvdata(dln2->pdev);
 	u16 conflict;
 	__le16 value;
 	int olen = sizeof(value);
@@ -257,13 +256,9 @@
 		.chan = channel,
 	};
 
-	ret = iio_device_claim_direct_mode(indio_dev);
-	if (ret < 0)
-		return ret;
-
 	ret = dln2_adc_set_chan_enabled(dln2, channel, true);
 	if (ret < 0)
-		goto release_direct;
+		return ret;
 
 	ret = dln2_adc_set_port_enabled(dln2, true, &conflict);
 	if (ret < 0) {
@@ -300,8 +295,6 @@
 	dln2_adc_set_port_enabled(dln2, false, NULL);
 disable_chan:
 	dln2_adc_set_chan_enabled(dln2, channel, false);
-release_direct:
-	iio_device_release_direct_mode(indio_dev);
 
 	return ret;
 }
@@ -337,10 +330,16 @@
 
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
+		ret = iio_device_claim_direct_mode(indio_dev);
+		if (ret < 0)
+			return ret;
+
 		mutex_lock(&dln2->mutex);
 		ret = dln2_adc_read(dln2, chan->channel);
 		mutex_unlock(&dln2->mutex);
 
+		iio_device_release_direct_mode(indio_dev);
+
 		if (ret < 0)
 			return ret;
 
@@ -524,6 +523,10 @@
 	u16 conflict;
 	unsigned int trigger_chan;
 
+	ret = iio_triggered_buffer_postenable(indio_dev);
+	if (ret)
+		return ret;
+
 	mutex_lock(&dln2->mutex);
 
 	/* Enable ADC */
@@ -537,6 +540,7 @@
 				(int)conflict);
 			ret = -EBUSY;
 		}
+		iio_triggered_buffer_predisable(indio_dev);
 		return ret;
 	}
 
@@ -550,6 +554,7 @@
 		mutex_unlock(&dln2->mutex);
 		if (ret < 0) {
 			dev_dbg(&dln2->pdev->dev, "Problem in %s\n", __func__);
+			iio_triggered_buffer_predisable(indio_dev);
 			return ret;
 		}
 	} else {
@@ -557,12 +562,12 @@
 		mutex_unlock(&dln2->mutex);
 	}
 
-	return iio_triggered_buffer_postenable(indio_dev);
+	return 0;
 }
 
 static int dln2_adc_triggered_buffer_predisable(struct iio_dev *indio_dev)
 {
-	int ret;
+	int ret, ret2;
 	struct dln2_adc *dln2 = iio_priv(indio_dev);
 
 	mutex_lock(&dln2->mutex);
@@ -577,12 +582,14 @@
 	ret = dln2_adc_set_port_enabled(dln2, false, NULL);
 
 	mutex_unlock(&dln2->mutex);
-	if (ret < 0) {
+	if (ret < 0)
 		dev_dbg(&dln2->pdev->dev, "Problem in %s\n", __func__);
-		return ret;
-	}
 
-	return iio_triggered_buffer_predisable(indio_dev);
+	ret2 = iio_triggered_buffer_predisable(indio_dev);
+	if (ret == 0)
+		ret = ret2;
+
+	return ret;
 }
 
 static const struct iio_buffer_setup_ops dln2_adc_buffer_setup_ops = {
@@ -658,7 +665,11 @@
 		return -ENOMEM;
 	}
 	iio_trigger_set_drvdata(dln2->trig, dln2);
-	devm_iio_trigger_register(dev, dln2->trig);
+	ret = devm_iio_trigger_register(dev, dln2->trig);
+	if (ret) {
+		dev_err(dev, "failed to register trigger: %d\n", ret);
+		return ret;
+	}
 	iio_trigger_set_immutable(indio_dev, dln2->trig);
 
 	ret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL,
--- linux-ein-5.4.0.orig/drivers/iio/adc/hx711.c
+++ linux-ein-5.4.0/drivers/iio/adc/hx711.c
@@ -85,9 +85,9 @@
 	struct mutex		lock;
 	/*
 	 * triggered buffer
-	 * 2x32-bit channel + 64-bit timestamp
+	 * 2x32-bit channel + 64-bit naturally aligned timestamp
 	 */
-	u32			buffer[4];
+	u32			buffer[4] __aligned(8);
 	/*
 	 * delay after a rising edge on SCK until the data is ready DOUT
 	 * this is dependent on the hx711 where the datasheet tells a
--- linux-ein-5.4.0.orig/drivers/iio/adc/ina2xx-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/ina2xx-adc.c
@@ -146,6 +146,11 @@
 	int range_vbus; /* Bus voltage maximum in V */
 	int pga_gain_vshunt; /* Shunt voltage PGA gain */
 	bool allow_async_readout;
+	/* data buffer needs space for channel data and timestamp */
+	struct {
+		u16 chan[4];
+		u64 ts __aligned(8);
+	} scan;
 };
 
 static const struct ina2xx_config ina2xx_config[] = {
@@ -738,8 +743,6 @@
 static int ina2xx_work_buffer(struct iio_dev *indio_dev)
 {
 	struct ina2xx_chip_info *chip = iio_priv(indio_dev);
-	/* data buffer needs space for channel data and timestap */
-	unsigned short data[4 + sizeof(s64)/sizeof(short)];
 	int bit, ret, i = 0;
 	s64 time;
 
@@ -758,10 +761,10 @@
 		if (ret < 0)
 			return ret;
 
-		data[i++] = val;
+		chip->scan.chan[i++] = val;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data, time);
+	iio_push_to_buffers_with_timestamp(indio_dev, &chip->scan, time);
 
 	return 0;
 };
--- linux-ein-5.4.0.orig/drivers/iio/adc/max1027.c
+++ linux-ein-5.4.0/drivers/iio/adc/max1027.c
@@ -458,6 +458,14 @@
 		return ret;
 	}
 
+	/* Internal reset */
+	st->reg = MAX1027_RST_REG;
+	ret = spi_write(st->spi, &st->reg, 1);
+	if (ret < 0) {
+		dev_err(&indio_dev->dev, "Failed to reset the ADC\n");
+		return ret;
+	}
+
 	/* Disable averaging */
 	st->reg = MAX1027_AVG_REG;
 	ret = spi_write(st->spi, &st->reg, 1);
--- linux-ein-5.4.0.orig/drivers/iio/adc/max1118.c
+++ linux-ein-5.4.0/drivers/iio/adc/max1118.c
@@ -35,6 +35,11 @@
 	struct spi_device *spi;
 	struct mutex lock;
 	struct regulator *reg;
+	/* Ensure natural alignment of buffer elements */
+	struct {
+		u8 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 
 	u8 data ____cacheline_aligned;
 };
@@ -159,7 +164,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct max1118 *adc = iio_priv(indio_dev);
-	u8 data[16] = { }; /* 2x 8-bit ADC data + padding + 8 bytes timestamp */
 	int scan_index;
 	int i = 0;
 
@@ -177,10 +181,10 @@
 			goto out;
 		}
 
-		data[i] = ret;
+		adc->scan.channels[i] = ret;
 		i++;
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &adc->scan,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
--- linux-ein-5.4.0.orig/drivers/iio/adc/max9611.c
+++ linux-ein-5.4.0/drivers/iio/adc/max9611.c
@@ -89,6 +89,12 @@
 #define MAX9611_TEMP_SCALE_NUM		1000000
 #define MAX9611_TEMP_SCALE_DIV		2083
 
+/*
+ * Conversion time is 2 ms (typically) at Ta=25 degreeC
+ * No maximum value is known, so play it safe.
+ */
+#define MAX9611_CONV_TIME_US_RANGE	3000, 3300
+
 struct max9611_dev {
 	struct device *dev;
 	struct i2c_client *i2c_client;
@@ -236,11 +242,9 @@
 		return ret;
 	}
 
-	/*
-	 * need a delay here to make register configuration
-	 * stabilize. 1 msec at least, from empirical testing.
-	 */
-	usleep_range(1000, 2000);
+	/* need a delay here to make register configuration stabilize. */
+
+	usleep_range(MAX9611_CONV_TIME_US_RANGE);
 
 	ret = i2c_smbus_read_word_swapped(max9611->i2c_client, reg_addr);
 	if (ret < 0) {
@@ -507,7 +511,7 @@
 			MAX9611_REG_CTRL2, 0);
 		return ret;
 	}
-	usleep_range(1000, 2000);
+	usleep_range(MAX9611_CONV_TIME_US_RANGE);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/iio/adc/mcp3422.c
+++ linux-ein-5.4.0/drivers/iio/adc/mcp3422.c
@@ -95,16 +95,12 @@
 {
 	int ret;
 
-	mutex_lock(&adc->lock);
-
 	ret = i2c_master_send(adc->i2c, &newconfig, 1);
 	if (ret > 0) {
 		adc->config = newconfig;
 		ret = 0;
 	}
 
-	mutex_unlock(&adc->lock);
-
 	return ret;
 }
 
@@ -137,6 +133,8 @@
 	u8 config;
 	u8 req_channel = channel->channel;
 
+	mutex_lock(&adc->lock);
+
 	if (req_channel != MCP3422_CHANNEL(adc->config)) {
 		config = adc->config;
 		config &= ~MCP3422_CHANNEL_MASK;
@@ -144,12 +142,18 @@
 		config &= ~MCP3422_PGA_MASK;
 		config |= MCP3422_PGA_VALUE(adc->pga[req_channel]);
 		ret = mcp3422_update_config(adc, config);
-		if (ret < 0)
+		if (ret < 0) {
+			mutex_unlock(&adc->lock);
 			return ret;
+		}
 		msleep(mcp3422_read_times[MCP3422_SAMPLE_RATE(adc->config)]);
 	}
 
-	return mcp3422_read(adc, value, &config);
+	ret = mcp3422_read(adc, value, &config);
+
+	mutex_unlock(&adc->lock);
+
+	return ret;
 }
 
 static int mcp3422_read_raw(struct iio_dev *iio,
--- linux-ein-5.4.0.orig/drivers/iio/adc/mcp3911.c
+++ linux-ein-5.4.0/drivers/iio/adc/mcp3911.c
@@ -38,8 +38,8 @@
 #define MCP3911_CHANNEL(x)		(MCP3911_REG_CHANNEL0 + x * 3)
 #define MCP3911_OFFCAL(x)		(MCP3911_REG_OFFCAL_CH0 + x * 6)
 
-/* Internal voltage reference in uV */
-#define MCP3911_INT_VREF_UV		1200000
+/* Internal voltage reference in mV */
+#define MCP3911_INT_VREF_MV		1200
 
 #define MCP3911_REG_READ(reg, id)	((((reg) << 1) | ((id) << 5) | (1 << 0)) & 0xff)
 #define MCP3911_REG_WRITE(reg, id)	((((reg) << 1) | ((id) << 5) | (0 << 0)) & 0xff)
@@ -111,6 +111,8 @@
 		if (ret)
 			goto out;
 
+		*val = sign_extend32(*val, 23);
+
 		ret = IIO_VAL_INT;
 		break;
 
@@ -135,11 +137,18 @@
 
 			*val = ret / 1000;
 		} else {
-			*val = MCP3911_INT_VREF_UV;
+			*val = MCP3911_INT_VREF_MV;
 		}
 
-		*val2 = 24;
-		ret = IIO_VAL_FRACTIONAL_LOG2;
+		/*
+		 * For 24bit Conversion
+		 * Raw = ((Voltage)/(Vref) * 2^23 * Gain * 1.5
+		 * Voltage = Raw * (Vref)/(2^23 * Gain * 1.5)
+		 */
+
+		/* val2 = (2^23 * 1.5) */
+		*val2 = 12582912;
+		ret = IIO_VAL_FRACTIONAL;
 		break;
 	}
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/men_z188_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/men_z188_adc.c
@@ -103,6 +103,7 @@
 	struct z188_adc *adc;
 	struct iio_dev *indio_dev;
 	struct resource *mem;
+	int ret;
 
 	indio_dev = devm_iio_device_alloc(&dev->dev, sizeof(struct z188_adc));
 	if (!indio_dev)
@@ -129,8 +130,14 @@
 	adc->mem = mem;
 	mcb_set_drvdata(dev, indio_dev);
 
-	return iio_device_register(indio_dev);
+	ret = iio_device_register(indio_dev);
+	if (ret)
+		goto err_unmap;
 
+	return 0;
+
+err_unmap:
+	iounmap(adc->base);
 err:
 	mcb_release_mem(mem);
 	return -ENXIO;
--- linux-ein-5.4.0.orig/drivers/iio/adc/meson_saradc.c
+++ linux-ein-5.4.0/drivers/iio/adc/meson_saradc.c
@@ -71,7 +71,7 @@
 	#define MESON_SAR_ADC_REG3_PANEL_DETECT_COUNT_MASK	GENMASK(20, 18)
 	#define MESON_SAR_ADC_REG3_PANEL_DETECT_FILTER_TB_MASK	GENMASK(17, 16)
 	#define MESON_SAR_ADC_REG3_ADC_CLK_DIV_SHIFT		10
-	#define MESON_SAR_ADC_REG3_ADC_CLK_DIV_WIDTH		5
+	#define MESON_SAR_ADC_REG3_ADC_CLK_DIV_WIDTH		6
 	#define MESON_SAR_ADC_REG3_BLOCK_DLY_SEL_MASK		GENMASK(9, 8)
 	#define MESON_SAR_ADC_REG3_BLOCK_DLY_MASK		GENMASK(7, 0)
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/mt6577_auxadc.c
+++ linux-ein-5.4.0/drivers/iio/adc/mt6577_auxadc.c
@@ -9,9 +9,9 @@
 #include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
+#include <linux/mod_devicetable.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/iopoll.h>
 #include <linux/io.h>
 #include <linux/iio/iio.h>
@@ -82,6 +82,10 @@
 	MT6577_AUXADC_CHANNEL(15),
 };
 
+/* For Voltage calculation */
+#define VOLTAGE_FULL_RANGE  1500	/* VA voltage */
+#define AUXADC_PRECISE      4096	/* 12 bits */
+
 static int mt_auxadc_get_cali_data(int rawdata, bool enable_cali)
 {
 	return rawdata;
@@ -191,6 +195,10 @@
 		}
 		if (adc_dev->dev_comp->sample_data_cali)
 			*val = mt_auxadc_get_cali_data(*val, true);
+
+		/* Convert adc raw data to voltage: 0 - 1500 mV */
+		*val = *val * VOLTAGE_FULL_RANGE / AUXADC_PRECISE;
+
 		return IIO_VAL_INT;
 
 	default:
@@ -279,6 +287,8 @@
 		goto err_disable_clk;
 	}
 
+	adc_dev->dev_comp = device_get_match_data(&pdev->dev);
+
 	mutex_init(&adc_dev->lock);
 
 	mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
--- linux-ein-5.4.0.orig/drivers/iio/adc/mxs-lradc-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/mxs-lradc-adc.c
@@ -115,7 +115,8 @@
 	struct device		*dev;
 
 	void __iomem		*base;
-	u32			buffer[10];
+	/* Maximum of 8 channels + 8 byte ts */
+	u32			buffer[10] __aligned(8);
 	struct iio_trigger	*trig;
 	struct completion	completion;
 	spinlock_t		lock;
@@ -759,13 +760,13 @@
 
 	ret = mxs_lradc_adc_trigger_init(iio);
 	if (ret)
-		goto err_trig;
+		return ret;
 
 	ret = iio_triggered_buffer_setup(iio, &iio_pollfunc_store_time,
 					 &mxs_lradc_adc_trigger_handler,
 					 &mxs_lradc_adc_buffer_ops);
 	if (ret)
-		return ret;
+		goto err_trig;
 
 	adc->vref_mv = mxs_lradc_adc_vref_mv[lradc->soc];
 
@@ -803,9 +804,9 @@
 
 err_dev:
 	mxs_lradc_adc_hw_stop(adc);
-	mxs_lradc_adc_trigger_remove(iio);
-err_trig:
 	iio_triggered_buffer_cleanup(iio);
+err_trig:
+	mxs_lradc_adc_trigger_remove(iio);
 	return ret;
 }
 
@@ -816,8 +817,8 @@
 
 	iio_device_unregister(iio);
 	mxs_lradc_adc_hw_stop(adc);
-	mxs_lradc_adc_trigger_remove(iio);
 	iio_triggered_buffer_cleanup(iio);
+	mxs_lradc_adc_trigger_remove(iio);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/iio/adc/palmas_gpadc.c
+++ linux-ein-5.4.0/drivers/iio/adc/palmas_gpadc.c
@@ -630,7 +630,7 @@
 
 static int palmas_gpadc_remove(struct platform_device *pdev)
 {
-	struct iio_dev *indio_dev = dev_to_iio_dev(&pdev->dev);
+	struct iio_dev *indio_dev = dev_get_drvdata(&pdev->dev);
 	struct palmas_gpadc *adc = iio_priv(indio_dev);
 
 	if (adc->wakeup1_enable || adc->wakeup2_enable)
@@ -656,8 +656,8 @@
 
 	adc_period = adc->auto_conversion_period;
 	for (i = 0; i < 16; ++i) {
-		if (((1000 * (1 << i)) / 32) < adc_period)
-			continue;
+		if (((1000 * (1 << i)) / 32) >= adc_period)
+			break;
 	}
 	if (i > 0)
 		i--;
--- linux-ein-5.4.0.orig/drivers/iio/adc/qcom-spmi-adc5.c
+++ linux-ein-5.4.0/drivers/iio/adc/qcom-spmi-adc5.c
@@ -786,7 +786,7 @@
 
 static struct platform_driver adc5_driver = {
 	.driver = {
-		.name = "qcom-spmi-adc5.c",
+		.name = "qcom-spmi-adc5",
 		.of_match_table = adc5_match_table,
 	},
 	.probe = adc5_probe,
--- linux-ein-5.4.0.orig/drivers/iio/adc/qcom-spmi-vadc.c
+++ linux-ein-5.4.0/drivers/iio/adc/qcom-spmi-vadc.c
@@ -598,7 +598,7 @@
 	VADC_CHAN_NO_SCALE(P_MUX16_1_3, 1)
 
 	VADC_CHAN_NO_SCALE(LR_MUX1_BAT_THERM, 0)
-	VADC_CHAN_NO_SCALE(LR_MUX2_BAT_ID, 0)
+	VADC_CHAN_VOLT(LR_MUX2_BAT_ID, 0, SCALE_DEFAULT)
 	VADC_CHAN_NO_SCALE(LR_MUX3_XO_THERM, 0)
 	VADC_CHAN_NO_SCALE(LR_MUX4_AMUX_THM1, 0)
 	VADC_CHAN_NO_SCALE(LR_MUX5_AMUX_THM2, 0)
--- linux-ein-5.4.0.orig/drivers/iio/adc/rcar-gyroadc.c
+++ linux-ein-5.4.0/drivers/iio/adc/rcar-gyroadc.c
@@ -357,7 +357,7 @@
 			num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3);
 			break;
 		default:
-			return -EINVAL;
+			goto err_e_inval;
 		}
 
 		/*
@@ -374,7 +374,7 @@
 				dev_err(dev,
 					"Failed to get child reg property of ADC \"%pOFn\".\n",
 					child);
-				return ret;
+				goto err_of_node_put;
 			}
 
 			/* Channel number is too high. */
@@ -382,7 +382,7 @@
 				dev_err(dev,
 					"Only %i channels supported with %pOFn, but reg = <%i>.\n",
 					num_channels, child, reg);
-				return -EINVAL;
+				goto err_e_inval;
 			}
 		}
 
@@ -391,7 +391,7 @@
 			dev_err(dev,
 				"Channel %i uses different ADC mode than the rest.\n",
 				reg);
-			return -EINVAL;
+			goto err_e_inval;
 		}
 
 		/* Channel is valid, grab the regulator. */
@@ -401,7 +401,8 @@
 		if (IS_ERR(vref)) {
 			dev_dbg(dev, "Channel %i 'vref' supply not connected.\n",
 				reg);
-			return PTR_ERR(vref);
+			ret = PTR_ERR(vref);
+			goto err_of_node_put;
 		}
 
 		priv->vref[reg] = vref;
@@ -425,8 +426,10 @@
 		 * attached to the GyroADC at a time, so if we found it,
 		 * we can stop parsing here.
 		 */
-		if (childmode == RCAR_GYROADC_MODE_SELECT_1_MB88101A)
+		if (childmode == RCAR_GYROADC_MODE_SELECT_1_MB88101A) {
+			of_node_put(child);
 			break;
+		}
 	}
 
 	if (first) {
@@ -435,6 +438,12 @@
 	}
 
 	return 0;
+
+err_e_inval:
+	ret = -EINVAL;
+err_of_node_put:
+	of_node_put(child);
+	return ret;
 }
 
 static void rcar_gyroadc_deinit_supplies(struct iio_dev *indio_dev)
--- linux-ein-5.4.0.orig/drivers/iio/adc/rockchip_saradc.c
+++ linux-ein-5.4.0/drivers/iio/adc/rockchip_saradc.c
@@ -372,7 +372,7 @@
 
 	ret = clk_prepare_enable(info->clk);
 	if (ret)
-		return ret;
+		clk_disable_unprepare(info->pclk);
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/iio/adc/sc27xx_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/sc27xx_adc.c
@@ -36,8 +36,8 @@
 
 /* Bits and mask definition for SC27XX_ADC_CH_CFG register */
 #define SC27XX_ADC_CHN_ID_MASK		GENMASK(4, 0)
-#define SC27XX_ADC_SCALE_MASK		GENMASK(10, 8)
-#define SC27XX_ADC_SCALE_SHIFT		8
+#define SC27XX_ADC_SCALE_MASK		GENMASK(10, 9)
+#define SC27XX_ADC_SCALE_SHIFT		9
 
 /* Bits definitions for SC27XX_ADC_INT_EN registers */
 #define SC27XX_ADC_IRQ_EN		BIT(0)
@@ -103,14 +103,14 @@
 	100, 341,
 };
 
-static const struct sc27xx_adc_linear_graph big_scale_graph_calib = {
-	4200, 856,
-	3600, 733,
+static const struct sc27xx_adc_linear_graph sc2731_big_scale_graph_calib = {
+	4200, 850,
+	3600, 728,
 };
 
-static const struct sc27xx_adc_linear_graph small_scale_graph_calib = {
-	1000, 833,
-	100, 80,
+static const struct sc27xx_adc_linear_graph sc2731_small_scale_graph_calib = {
+	1000, 838,
+	100, 84,
 };
 
 static int sc27xx_adc_get_calib_data(u32 calib_data, int calib_adc)
@@ -130,11 +130,11 @@
 	size_t len;
 
 	if (big_scale) {
-		calib_graph = &big_scale_graph_calib;
+		calib_graph = &sc2731_big_scale_graph_calib;
 		graph = &big_scale_graph;
 		cell_name = "big_scale_calib";
 	} else {
-		calib_graph = &small_scale_graph_calib;
+		calib_graph = &sc2731_small_scale_graph_calib;
 		graph = &small_scale_graph;
 		cell_name = "small_scale_calib";
 	}
--- linux-ein-5.4.0.orig/drivers/iio/adc/stm32-adc-core.c
+++ linux-ein-5.4.0/drivers/iio/adc/stm32-adc-core.c
@@ -65,12 +65,14 @@
  * @clk_sel:	clock selection routine
  * @max_clk_rate_hz: maximum analog clock rate (Hz, from datasheet)
  * @has_syscfg: SYSCFG capability flags
+ * @num_irqs:	number of interrupt lines
  */
 struct stm32_adc_priv_cfg {
 	const struct stm32_adc_common_regs *regs;
 	int (*clk_sel)(struct platform_device *, struct stm32_adc_priv *);
 	u32 max_clk_rate_hz;
 	unsigned int has_syscfg;
+	unsigned int num_irqs;
 };
 
 /**
@@ -372,21 +374,15 @@
 	struct device_node *np = pdev->dev.of_node;
 	unsigned int i;
 
-	for (i = 0; i < STM32_ADC_MAX_ADCS; i++) {
+	/*
+	 * Interrupt(s) must be provided, depending on the compatible:
+	 * - stm32f4/h7 shares a common interrupt line.
+	 * - stm32mp1, has one line per ADC
+	 */
+	for (i = 0; i < priv->cfg->num_irqs; i++) {
 		priv->irq[i] = platform_get_irq(pdev, i);
-		if (priv->irq[i] < 0) {
-			/*
-			 * At least one interrupt must be provided, make others
-			 * optional:
-			 * - stm32f4/h7 shares a common interrupt.
-			 * - stm32mp1, has one line per ADC (either for ADC1,
-			 *   ADC2 or both).
-			 */
-			if (i && priv->irq[i] == -ENXIO)
-				continue;
-
+		if (priv->irq[i] < 0)
 			return priv->irq[i];
-		}
 	}
 
 	priv->domain = irq_domain_add_simple(np, STM32_ADC_MAX_ADCS, 0,
@@ -397,9 +393,7 @@
 		return -ENOMEM;
 	}
 
-	for (i = 0; i < STM32_ADC_MAX_ADCS; i++) {
-		if (priv->irq[i] < 0)
-			continue;
+	for (i = 0; i < priv->cfg->num_irqs; i++) {
 		irq_set_chained_handler(priv->irq[i], stm32_adc_irq_handler);
 		irq_set_handler_data(priv->irq[i], priv);
 	}
@@ -417,11 +411,8 @@
 		irq_dispose_mapping(irq_find_mapping(priv->domain, hwirq));
 	irq_domain_remove(priv->domain);
 
-	for (i = 0; i < STM32_ADC_MAX_ADCS; i++) {
-		if (priv->irq[i] < 0)
-			continue;
+	for (i = 0; i < priv->cfg->num_irqs; i++)
 		irq_set_chained_handler(priv->irq[i], NULL);
-	}
 }
 
 static int stm32_adc_core_switches_supply_en(struct stm32_adc_priv *priv,
@@ -789,6 +780,13 @@
 {
 	return stm32_adc_core_hw_start(dev);
 }
+
+static int stm32_adc_core_runtime_idle(struct device *dev)
+{
+	pm_runtime_mark_last_busy(dev);
+
+	return 0;
+}
 #endif
 
 static const struct dev_pm_ops stm32_adc_core_pm_ops = {
@@ -796,13 +794,14 @@
 				pm_runtime_force_resume)
 	SET_RUNTIME_PM_OPS(stm32_adc_core_runtime_suspend,
 			   stm32_adc_core_runtime_resume,
-			   NULL)
+			   stm32_adc_core_runtime_idle)
 };
 
 static const struct stm32_adc_priv_cfg stm32f4_adc_priv_cfg = {
 	.regs = &stm32f4_adc_common_regs,
 	.clk_sel = stm32f4_adc_clk_sel,
 	.max_clk_rate_hz = 36000000,
+	.num_irqs = 1,
 };
 
 static const struct stm32_adc_priv_cfg stm32h7_adc_priv_cfg = {
@@ -810,13 +809,15 @@
 	.clk_sel = stm32h7_adc_clk_sel,
 	.max_clk_rate_hz = 36000000,
 	.has_syscfg = HAS_VBOOSTER,
+	.num_irqs = 1,
 };
 
 static const struct stm32_adc_priv_cfg stm32mp1_adc_priv_cfg = {
 	.regs = &stm32h7_adc_common_regs,
 	.clk_sel = stm32h7_adc_clk_sel,
-	.max_clk_rate_hz = 40000000,
+	.max_clk_rate_hz = 36000000,
 	.has_syscfg = HAS_VBOOSTER | HAS_ANASWVDD,
+	.num_irqs = 2,
 };
 
 static const struct of_device_id stm32_adc_of_match[] = {
--- linux-ein-5.4.0.orig/drivers/iio/adc/stm32-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/stm32-adc.c
@@ -933,6 +933,7 @@
 
 static void stm32h7_adc_unprepare(struct stm32_adc *adc)
 {
+	stm32_adc_writel(adc, STM32H7_ADC_PCSEL, 0);
 	stm32h7_adc_disable(adc);
 	stm32h7_adc_enter_pwr_down(adc);
 }
@@ -1367,8 +1368,30 @@
 static void stm32_adc_dma_buffer_done(void *data)
 {
 	struct iio_dev *indio_dev = data;
+	struct stm32_adc *adc = iio_priv(indio_dev);
+	int residue = stm32_adc_dma_residue(adc);
+
+	/*
+	 * In DMA mode the trigger services of IIO are not used
+	 * (e.g. no call to iio_trigger_poll).
+	 * Calling irq handler associated to the hardware trigger is not
+	 * relevant as the conversions have already been done. Data
+	 * transfers are performed directly in DMA callback instead.
+	 * This implementation avoids to call trigger irq handler that
+	 * may sleep, in an atomic context (DMA irq handler context).
+	 */
+	dev_dbg(&indio_dev->dev, "%s bufi=%d\n", __func__, adc->bufi);
+
+	while (residue >= indio_dev->scan_bytes) {
+		u16 *buffer = (u16 *)&adc->rx_buf[adc->bufi];
 
-	iio_trigger_poll_chained(indio_dev->trig);
+		iio_push_to_buffers(indio_dev, buffer);
+
+		residue -= indio_dev->scan_bytes;
+		adc->bufi += indio_dev->scan_bytes;
+		if (adc->bufi >= adc->rx_buf_sz)
+			adc->bufi = 0;
+	}
 }
 
 static int stm32_adc_dma_start(struct iio_dev *indio_dev)
@@ -1735,15 +1758,27 @@
 	return 0;
 }
 
-static int stm32_adc_dma_request(struct iio_dev *indio_dev)
+static int stm32_adc_dma_request(struct device *dev, struct iio_dev *indio_dev)
 {
 	struct stm32_adc *adc = iio_priv(indio_dev);
 	struct dma_slave_config config;
 	int ret;
 
-	adc->dma_chan = dma_request_slave_channel(&indio_dev->dev, "rx");
-	if (!adc->dma_chan)
+	adc->dma_chan = dma_request_chan(dev, "rx");
+	if (IS_ERR(adc->dma_chan)) {
+		ret = PTR_ERR(adc->dma_chan);
+		if (ret != -ENODEV) {
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev,
+					"DMA channel request failed with %d\n",
+					ret);
+			return ret;
+		}
+
+		/* DMA is optional: fall back to IRQ mode */
+		adc->dma_chan = NULL;
 		return 0;
+	}
 
 	adc->rx_buf = dma_alloc_coherent(adc->dma_chan->device->dev,
 					 STM32_DMA_BUFFER_SIZE,
@@ -1778,6 +1813,7 @@
 {
 	struct iio_dev *indio_dev;
 	struct device *dev = &pdev->dev;
+	irqreturn_t (*handler)(int irq, void *p) = NULL;
 	struct stm32_adc *adc;
 	int ret;
 
@@ -1839,13 +1875,15 @@
 	if (ret < 0)
 		return ret;
 
-	ret = stm32_adc_dma_request(indio_dev);
+	ret = stm32_adc_dma_request(dev, indio_dev);
 	if (ret < 0)
 		return ret;
 
+	if (!adc->dma_chan)
+		handler = &stm32_adc_trigger_handler;
+
 	ret = iio_triggered_buffer_setup(indio_dev,
-					 &iio_pollfunc_store_time,
-					 &stm32_adc_trigger_handler,
+					 &iio_pollfunc_store_time, handler,
 					 &stm32_adc_buffer_setup_ops);
 	if (ret) {
 		dev_err(&pdev->dev, "buffer setup failed\n");
--- linux-ein-5.4.0.orig/drivers/iio/adc/stm32-dfsdm-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/stm32-dfsdm-adc.c
@@ -62,7 +62,7 @@
 
 struct stm32_dfsdm_dev_data {
 	int type;
-	int (*init)(struct iio_dev *indio_dev);
+	int (*init)(struct device *dev, struct iio_dev *indio_dev);
 	unsigned int num_channels;
 	const struct regmap_config *regmap_cfg;
 };
@@ -842,31 +842,6 @@
 	}
 }
 
-static irqreturn_t stm32_dfsdm_adc_trigger_handler(int irq, void *p)
-{
-	struct iio_poll_func *pf = p;
-	struct iio_dev *indio_dev = pf->indio_dev;
-	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
-	int available = stm32_dfsdm_adc_dma_residue(adc);
-
-	while (available >= indio_dev->scan_bytes) {
-		s32 *buffer = (s32 *)&adc->rx_buf[adc->bufi];
-
-		stm32_dfsdm_process_data(adc, buffer);
-
-		iio_push_to_buffers_with_timestamp(indio_dev, buffer,
-						   pf->timestamp);
-		available -= indio_dev->scan_bytes;
-		adc->bufi += indio_dev->scan_bytes;
-		if (adc->bufi >= adc->buf_sz)
-			adc->bufi = 0;
-	}
-
-	iio_trigger_notify_done(indio_dev->trig);
-
-	return IRQ_HANDLED;
-}
-
 static void stm32_dfsdm_dma_buffer_done(void *data)
 {
 	struct iio_dev *indio_dev = data;
@@ -874,11 +849,6 @@
 	int available = stm32_dfsdm_adc_dma_residue(adc);
 	size_t old_pos;
 
-	if (indio_dev->currentmode & INDIO_BUFFER_TRIGGERED) {
-		iio_trigger_poll_chained(indio_dev->trig);
-		return;
-	}
-
 	/*
 	 * FIXME: In Kernel interface does not support cyclic DMA buffer,and
 	 * offers only an interface to push data samples per samples.
@@ -906,7 +876,15 @@
 			adc->bufi = 0;
 			old_pos = 0;
 		}
-		/* regular iio buffer without trigger */
+		/*
+		 * In DMA mode the trigger services of IIO are not used
+		 * (e.g. no call to iio_trigger_poll).
+		 * Calling irq handler associated to the hardware trigger is not
+		 * relevant as the conversions have already been done. Data
+		 * transfers are performed directly in DMA callback instead.
+		 * This implementation avoids to call trigger irq handler that
+		 * may sleep, in an atomic context (DMA irq handler context).
+		 */
 		if (adc->dev_data->type == DFSDM_IIO)
 			iio_push_to_buffers(indio_dev, buffer);
 	}
@@ -1204,6 +1182,8 @@
 
 	stm32_dfsdm_stop_conv(adc);
 
+	stm32_dfsdm_process_data(adc, res);
+
 stop_dfsdm:
 	stm32_dfsdm_stop_dfsdm(adc->dfsdm);
 
@@ -1379,13 +1359,18 @@
 	}
 }
 
-static int stm32_dfsdm_dma_request(struct iio_dev *indio_dev)
+static int stm32_dfsdm_dma_request(struct device *dev,
+				   struct iio_dev *indio_dev)
 {
 	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
 
-	adc->dma_chan = dma_request_slave_channel(&indio_dev->dev, "rx");
-	if (!adc->dma_chan)
-		return -EINVAL;
+	adc->dma_chan = dma_request_chan(dev, "rx");
+	if (IS_ERR(adc->dma_chan)) {
+		int ret = PTR_ERR(adc->dma_chan);
+
+		adc->dma_chan = NULL;
+		return ret;
+	}
 
 	adc->rx_buf = dma_alloc_coherent(adc->dma_chan->device->dev,
 					 DFSDM_DMA_BUFFER_SIZE,
@@ -1435,7 +1420,7 @@
 					  &adc->dfsdm->ch_list[ch->channel]);
 }
 
-static int stm32_dfsdm_audio_init(struct iio_dev *indio_dev)
+static int stm32_dfsdm_audio_init(struct device *dev, struct iio_dev *indio_dev)
 {
 	struct iio_chan_spec *ch;
 	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
@@ -1462,10 +1447,10 @@
 	indio_dev->num_channels = 1;
 	indio_dev->channels = ch;
 
-	return stm32_dfsdm_dma_request(indio_dev);
+	return stm32_dfsdm_dma_request(dev, indio_dev);
 }
 
-static int stm32_dfsdm_adc_init(struct iio_dev *indio_dev)
+static int stm32_dfsdm_adc_init(struct device *dev, struct iio_dev *indio_dev)
 {
 	struct iio_chan_spec *ch;
 	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
@@ -1509,14 +1494,22 @@
 	init_completion(&adc->completion);
 
 	/* Optionally request DMA */
-	if (stm32_dfsdm_dma_request(indio_dev)) {
-		dev_dbg(&indio_dev->dev, "No DMA support\n");
+	ret = stm32_dfsdm_dma_request(dev, indio_dev);
+	if (ret) {
+		if (ret != -ENODEV) {
+			if (ret != -EPROBE_DEFER)
+				dev_err(dev,
+					"DMA channel request failed with %d\n",
+					ret);
+			return ret;
+		}
+
+		dev_dbg(dev, "No DMA support\n");
 		return 0;
 	}
 
 	ret = iio_triggered_buffer_setup(indio_dev,
-					 &iio_pollfunc_store_time,
-					 &stm32_dfsdm_adc_trigger_handler,
+					 &iio_pollfunc_store_time, NULL,
 					 &stm32_dfsdm_buffer_setup_ops);
 	if (ret) {
 		stm32_dfsdm_dma_release(indio_dev);
@@ -1551,6 +1544,7 @@
 	},
 	{}
 };
+MODULE_DEVICE_TABLE(of, stm32_dfsdm_adc_match);
 
 static int stm32_dfsdm_adc_probe(struct platform_device *pdev)
 {
@@ -1624,7 +1618,7 @@
 		adc->dfsdm->fl_list[adc->fl_id].sync_mode = val;
 
 	adc->dev_data = dev_data;
-	ret = dev_data->init(iio);
+	ret = dev_data->init(dev, iio);
 	if (ret < 0)
 		return ret;
 
--- linux-ein-5.4.0.orig/drivers/iio/adc/stmpe-adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/stmpe-adc.c
@@ -61,7 +61,7 @@
 static int stmpe_read_voltage(struct stmpe_adc *info,
 		struct iio_chan_spec const *chan, int *val)
 {
-	long ret;
+	unsigned long ret;
 
 	mutex_lock(&info->lock);
 
@@ -79,7 +79,7 @@
 
 	ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
 
-	if (ret <= 0) {
+	if (ret == 0) {
 		stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
 				STMPE_ADC_CH(info->channel));
 		mutex_unlock(&info->lock);
@@ -96,7 +96,7 @@
 static int stmpe_read_temp(struct stmpe_adc *info,
 		struct iio_chan_spec const *chan, int *val)
 {
-	long ret;
+	unsigned long ret;
 
 	mutex_lock(&info->lock);
 
@@ -114,7 +114,7 @@
 
 	ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
 
-	if (ret <= 0) {
+	if (ret == 0) {
 		mutex_unlock(&info->lock);
 		return -ETIMEDOUT;
 	}
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-adc081c.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-adc081c.c
@@ -33,6 +33,12 @@
 
 	/* 8, 10 or 12 */
 	int bits;
+
+	/* Ensure natural alignment of buffer elements */
+	struct {
+		u16 channel;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 #define REG_CONV_RES 0x00
@@ -128,14 +134,13 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc081c *data = iio_priv(indio_dev);
-	u16 buf[8]; /* 2 bytes data + 6 bytes padding + 8 bytes timestamp */
 	int ret;
 
 	ret = i2c_smbus_read_word_swapped(data->i2c, REG_CONV_RES);
 	if (ret < 0)
 		goto out;
-	buf[0] = ret;
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	data->scan.channel = ret;
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 out:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-adc0832.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-adc0832.c
@@ -28,6 +28,12 @@
 	struct regulator *reg;
 	struct mutex lock;
 	u8 mux_bits;
+	/*
+	 * Max size needed: 16x 1 byte ADC data + 8 bytes timestamp
+	 * May be shorter if not all channels are enabled subject
+	 * to the timestamp remaining 8 byte aligned.
+	 */
+	u8 data[24] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -199,7 +205,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc0832 *adc = iio_priv(indio_dev);
-	u8 data[24] = { }; /* 16x 1 byte ADC data + 8 bytes timestamp */
 	int scan_index;
 	int i = 0;
 
@@ -217,10 +222,10 @@
 			goto out;
 		}
 
-		data[i] = ret;
+		adc->data[i] = ret;
 		i++;
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-adc084s021.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-adc084s021.c
@@ -25,6 +25,11 @@
 	struct spi_transfer spi_trans;
 	struct regulator *reg;
 	struct mutex lock;
+	/* Buffer used to align data */
+	struct {
+		__be16 channels[4];
+		s64 ts __aligned(8);
+	} scan;
 	/*
 	 * DMA (thus cache coherency maintenance) requires the
 	 * transfer buffers to live in their own cache line.
@@ -140,14 +145,13 @@
 	struct iio_poll_func *pf = pollfunc;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc084s021 *adc = iio_priv(indio_dev);
-	__be16 data[8] = {0}; /* 4 * 16-bit words of data + 8 bytes timestamp */
 
 	mutex_lock(&adc->lock);
 
-	if (adc084s021_adc_conversion(adc, &data) < 0)
+	if (adc084s021_adc_conversion(adc, adc->scan.channels) < 0)
 		dev_err(&adc->spi->dev, "Failed to read data\n");
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &adc->scan,
 					   iio_get_time_ns(indio_dev));
 	mutex_unlock(&adc->lock);
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-adc12138.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-adc12138.c
@@ -47,6 +47,12 @@
 	struct completion complete;
 	/* The number of cclk periods for the S/H's acquisition time */
 	unsigned int acquisition_time;
+	/*
+	 * Maximum size needed: 16x 2 bytes ADC data + 8 bytes timestamp.
+	 * Less may be need if not all channels are enabled, as long as
+	 * the 8 byte alignment of the timestamp is maintained.
+	 */
+	__be16 data[20] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -329,7 +335,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc12138 *adc = iio_priv(indio_dev);
-	__be16 data[20] = { }; /* 16x 2 bytes ADC data + 8 bytes timestamp */
 	__be16 trash;
 	int ret;
 	int scan_index;
@@ -345,7 +350,7 @@
 		reinit_completion(&adc->complete);
 
 		ret = adc12138_start_and_read_conv(adc, scan_chan,
-						   i ? &data[i - 1] : &trash);
+					i ? &adc->data[i - 1] : &trash);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to start conversion\n");
@@ -362,7 +367,7 @@
 	}
 
 	if (i) {
-		ret = adc12138_read_conv_data(adc, &data[i - 1]);
+		ret = adc12138_read_conv_data(adc, &adc->data[i - 1]);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to get conversion data\n");
@@ -370,7 +375,7 @@
 		}
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-adc128s052.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-adc128s052.c
@@ -172,7 +172,13 @@
 	mutex_init(&adc->lock);
 
 	ret = iio_device_register(indio_dev);
+	if (ret)
+		goto err_disable_regulator;
 
+	return 0;
+
+err_disable_regulator:
+	regulator_disable(adc->reg);
 	return ret;
 }
 
@@ -188,13 +194,13 @@
 }
 
 static const struct of_device_id adc128_of_match[] = {
-	{ .compatible = "ti,adc128s052", },
-	{ .compatible = "ti,adc122s021", },
-	{ .compatible = "ti,adc122s051", },
-	{ .compatible = "ti,adc122s101", },
-	{ .compatible = "ti,adc124s021", },
-	{ .compatible = "ti,adc124s051", },
-	{ .compatible = "ti,adc124s101", },
+	{ .compatible = "ti,adc128s052", .data = (void*)0L, },
+	{ .compatible = "ti,adc122s021", .data = (void*)1L, },
+	{ .compatible = "ti,adc122s051", .data = (void*)1L, },
+	{ .compatible = "ti,adc122s101", .data = (void*)1L, },
+	{ .compatible = "ti,adc124s021", .data = (void*)2L, },
+	{ .compatible = "ti,adc124s051", .data = (void*)2L, },
+	{ .compatible = "ti,adc124s101", .data = (void*)2L, },
 	{ /* sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, adc128_of_match);
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-ads1015.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-ads1015.c
@@ -309,6 +309,7 @@
 	IIO_CHAN_SOFT_TIMESTAMP(ADS1015_TIMESTAMP),
 };
 
+#ifdef CONFIG_PM
 static int ads1015_set_power_state(struct ads1015_data *data, bool on)
 {
 	int ret;
@@ -326,6 +327,15 @@
 	return ret < 0 ? ret : 0;
 }
 
+#else /* !CONFIG_PM */
+
+static int ads1015_set_power_state(struct ads1015_data *data, bool on)
+{
+	return 0;
+}
+
+#endif /* !CONFIG_PM */
+
 static
 int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)
 {
@@ -378,10 +388,14 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ads1015_data *data = iio_priv(indio_dev);
-	s16 buf[8]; /* 1x s16 ADC val + 3x s16 padding +  4x s16 timestamp */
+	/* Ensure natural alignment of timestamp */
+	struct {
+		s16 chan;
+		s64 timestamp __aligned(8);
+	} scan;
 	int chan, ret, res;
 
-	memset(buf, 0, sizeof(buf));
+	memset(&scan, 0, sizeof(scan));
 
 	mutex_lock(&data->lock);
 	chan = find_first_bit(indio_dev->active_scan_mask,
@@ -392,10 +406,10 @@
 		goto err;
 	}
 
-	buf[0] = res;
+	scan.chan = res;
 	mutex_unlock(&data->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 
 err:
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-ads124s08.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-ads124s08.c
@@ -97,6 +97,14 @@
 	struct gpio_desc *reset_gpio;
 	struct spi_device *spi;
 	struct mutex lock;
+	/*
+	 * Used to correctly align data.
+	 * Ensure timestamp is naturally aligned.
+	 * Note that the full buffer length may not be needed if not
+	 * all channels are enabled, as long as the alignment of the
+	 * timestamp is maintained.
+	 */
+	u32 buffer[ADS124S08_MAX_CHANNELS + sizeof(s64)/sizeof(u32)] __aligned(8);
 	u8 data[5] ____cacheline_aligned;
 };
 
@@ -270,7 +278,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ads124s_private *priv = iio_priv(indio_dev);
-	u32 buffer[ADS124S08_MAX_CHANNELS + sizeof(s64)/sizeof(u16)];
 	int scan_index, j = 0;
 	int ret;
 
@@ -285,7 +292,7 @@
 		if (ret)
 			dev_err(&priv->spi->dev, "Start ADC conversions failed\n");
 
-		buffer[j] = ads124s_read(indio_dev, scan_index);
+		priv->buffer[j] = ads124s_read(indio_dev, scan_index);
 		ret = ads124s_write_cmd(indio_dev, ADS124S08_STOP_CONV);
 		if (ret)
 			dev_err(&priv->spi->dev, "Stop ADC conversions failed\n");
@@ -293,7 +300,7 @@
 		j++;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, priv->buffer,
 			pf->timestamp);
 
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-ads7950.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-ads7950.c
@@ -569,7 +569,6 @@
 	st->ring_xfer.tx_buf = &st->tx_buf[0];
 	st->ring_xfer.rx_buf = &st->rx_buf[0];
 	/* len will be set later */
-	st->ring_xfer.cs_change = true;
 
 	spi_message_add_tail(&st->ring_xfer, &st->ring_msg);
 
@@ -636,6 +635,7 @@
 	st->chip.label = dev_name(&st->spi->dev);
 	st->chip.parent = &st->spi->dev;
 	st->chip.owner = THIS_MODULE;
+	st->chip.can_sleep = true;
 	st->chip.base = -1;
 	st->chip.ngpio = TI_ADS7950_NUM_GPIOS;
 	st->chip.get_direction = ti_ads7950_get_direction;
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-ads8344.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-ads8344.c
@@ -29,19 +29,20 @@
 	struct mutex lock;
 
 	u8 tx_buf ____cacheline_aligned;
-	u16 rx_buf;
+	u8 rx_buf[3];
 };
 
-#define ADS8344_VOLTAGE_CHANNEL(chan, si)				\
+#define ADS8344_VOLTAGE_CHANNEL(chan, addr)				\
 	{								\
 		.type = IIO_VOLTAGE,					\
 		.indexed = 1,						\
 		.channel = chan,					\
 		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),		\
 		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),	\
+		.address = addr,					\
 	}
 
-#define ADS8344_VOLTAGE_CHANNEL_DIFF(chan1, chan2, si)			\
+#define ADS8344_VOLTAGE_CHANNEL_DIFF(chan1, chan2, addr)		\
 	{								\
 		.type = IIO_VOLTAGE,					\
 		.indexed = 1,						\
@@ -50,6 +51,7 @@
 		.differential = 1,					\
 		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),		\
 		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),	\
+		.address = addr,					\
 	}
 
 static const struct iio_chan_spec ads8344_channels[] = {
@@ -89,11 +91,11 @@
 
 	udelay(9);
 
-	ret = spi_read(spi, &adc->rx_buf, 2);
+	ret = spi_read(spi, adc->rx_buf, sizeof(adc->rx_buf));
 	if (ret)
 		return ret;
 
-	return adc->rx_buf;
+	return adc->rx_buf[0] << 9 | adc->rx_buf[1] << 1 | adc->rx_buf[2] >> 7;
 }
 
 static int ads8344_read_raw(struct iio_dev *iio,
@@ -105,7 +107,7 @@
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
 		mutex_lock(&adc->lock);
-		*value = ads8344_adc_conversion(adc, channel->scan_index,
+		*value = ads8344_adc_conversion(adc, channel->address,
 						channel->differential);
 		mutex_unlock(&adc->lock);
 		if (*value < 0)
--- linux-ein-5.4.0.orig/drivers/iio/adc/ti-ads8688.c
+++ linux-ein-5.4.0/drivers/iio/adc/ti-ads8688.c
@@ -383,7 +383,8 @@
 {
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
-	u16 buffer[ADS8688_MAX_CHANNELS + sizeof(s64)/sizeof(u16)];
+	/* Ensure naturally aligned timestamp */
+	u16 buffer[ADS8688_MAX_CHANNELS + sizeof(s64)/sizeof(u16)] __aligned(8);
 	int i, j = 0;
 
 	for (i = 0; i < indio_dev->masklength; i++) {
--- linux-ein-5.4.0.orig/drivers/iio/adc/twl6030-gpadc.c
+++ linux-ein-5.4.0/drivers/iio/adc/twl6030-gpadc.c
@@ -57,6 +57,18 @@
 #define TWL6030_GPADCS				BIT(1)
 #define TWL6030_GPADCR				BIT(0)
 
+#define USB_VBUS_CTRL_SET			0x04
+#define USB_ID_CTRL_SET				0x06
+
+#define TWL6030_MISC1				0xE4
+#define VBUS_MEAS				0x01
+#define ID_MEAS					0x01
+
+#define VAC_MEAS                0x04
+#define VBAT_MEAS               0x02
+#define BB_MEAS                 0x01
+
+
 /**
  * struct twl6030_chnl_calib - channel calibration
  * @gain:		slope coefficient for ideal curve
@@ -911,6 +923,8 @@
 	ret = devm_request_threaded_irq(dev, irq, NULL,
 				twl6030_gpadc_irq_handler,
 				IRQF_ONESHOT, "twl6030_gpadc", indio_dev);
+	if (ret)
+		return ret;
 
 	ret = twl6030_gpadc_enable_irq(TWL6030_GPADC_RT_SW1_EOC_MASK);
 	if (ret < 0) {
@@ -925,6 +939,26 @@
 		return ret;
 	}
 
+	ret = twl_i2c_write_u8(TWL_MODULE_USB, VBUS_MEAS, USB_VBUS_CTRL_SET);
+	if (ret < 0) {
+		dev_err(dev, "failed to wire up inputs\n");
+		return ret;
+	}
+
+	ret = twl_i2c_write_u8(TWL_MODULE_USB, ID_MEAS, USB_ID_CTRL_SET);
+	if (ret < 0) {
+		dev_err(dev, "failed to wire up inputs\n");
+		return ret;
+	}
+
+	ret = twl_i2c_write_u8(TWL6030_MODULE_ID0,
+				VBAT_MEAS | BB_MEAS | VAC_MEAS,
+				TWL6030_MISC1);
+	if (ret < 0) {
+		dev_err(dev, "failed to wire up inputs\n");
+		return ret;
+	}
+
 	indio_dev->name = DRIVER_NAME;
 	indio_dev->dev.parent = dev;
 	indio_dev->info = &twl6030_gpadc_iio_info;
--- linux-ein-5.4.0.orig/drivers/iio/adc/vf610_adc.c
+++ linux-ein-5.4.0/drivers/iio/adc/vf610_adc.c
@@ -167,7 +167,11 @@
 	u32 sample_freq_avail[5];
 
 	struct completion completion;
-	u16 buffer[8];
+	/* Ensure the timestamp is naturally aligned */
+	struct {
+		u16 chan;
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 static const u32 vf610_hw_avgs[] = { 1, 4, 8, 16, 32 };
@@ -579,9 +583,9 @@
 	if (coco & VF610_ADC_HS_COCO0) {
 		info->value = vf610_adc_read_data(info);
 		if (iio_buffer_enabled(indio_dev)) {
-			info->buffer[0] = info->value;
+			info->scan.chan = info->value;
 			iio_push_to_buffers_with_timestamp(indio_dev,
-					info->buffer,
+					&info->scan,
 					iio_get_time_ns(indio_dev));
 			iio_trigger_notify_done(indio_dev->trig);
 		} else
--- linux-ein-5.4.0.orig/drivers/iio/adc/xilinx-xadc-core.c
+++ linux-ein-5.4.0/drivers/iio/adc/xilinx-xadc-core.c
@@ -102,6 +102,16 @@
 
 #define XADC_FLAGS_BUFFERED BIT(0)
 
+/*
+ * The XADC hardware supports a samplerate of up to 1MSPS. Unfortunately it does
+ * not have a hardware FIFO. Which means an interrupt is generated for each
+ * conversion sequence. At 1MSPS sample rate the CPU in ZYNQ7000 is completely
+ * overloaded by the interrupts that it soft-lockups. For this reason the driver
+ * limits the maximum samplerate 150kSPS. At this rate the CPU is fairly busy,
+ * but still responsive.
+ */
+#define XADC_MAX_SAMPLERATE 150000
+
 static void xadc_write_reg(struct xadc *xadc, unsigned int reg,
 	uint32_t val)
 {
@@ -674,7 +684,7 @@
 
 	spin_lock_irqsave(&xadc->lock, flags);
 	xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
-	xadc_write_reg(xadc, XADC_AXI_REG_IPISR, val & XADC_AXI_INT_EOS);
+	xadc_write_reg(xadc, XADC_AXI_REG_IPISR, XADC_AXI_INT_EOS);
 	if (state)
 		val |= XADC_AXI_INT_EOS;
 	else
@@ -722,13 +732,14 @@
 {
 	uint16_t val;
 
+	/* Powerdown the ADC-B when it is not needed. */
 	switch (seq_mode) {
 	case XADC_CONF1_SEQ_SIMULTANEOUS:
 	case XADC_CONF1_SEQ_INDEPENDENT:
-		val = XADC_CONF2_PD_ADC_B;
+		val = 0;
 		break;
 	default:
-		val = 0;
+		val = XADC_CONF2_PD_ADC_B;
 		break;
 	}
 
@@ -797,6 +808,16 @@
 	if (ret)
 		goto err;
 
+	/*
+	 * In simultaneous mode the upper and lower aux channels are samples at
+	 * the same time. In this mode the upper 8 bits in the sequencer
+	 * register are don't care and the lower 8 bits control two channels
+	 * each. As such we must set the bit if either the channel in the lower
+	 * group or the upper group is enabled.
+	 */
+	if (seq_mode == XADC_CONF1_SEQ_SIMULTANEOUS)
+		scan_mask = ((scan_mask >> 8) | scan_mask) & 0xff0000;
+
 	ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
 	if (ret)
 		goto err;
@@ -823,11 +844,27 @@
 	.postdisable = &xadc_postdisable,
 };
 
+static int xadc_read_samplerate(struct xadc *xadc)
+{
+	unsigned int div;
+	uint16_t val16;
+	int ret;
+
+	ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
+	if (ret)
+		return ret;
+
+	div = (val16 & XADC_CONF2_DIV_MASK) >> XADC_CONF2_DIV_OFFSET;
+	if (div < 2)
+		div = 2;
+
+	return xadc_get_dclk_rate(xadc) / div / 26;
+}
+
 static int xadc_read_raw(struct iio_dev *indio_dev,
 	struct iio_chan_spec const *chan, int *val, int *val2, long info)
 {
 	struct xadc *xadc = iio_priv(indio_dev);
-	unsigned int div;
 	uint16_t val16;
 	int ret;
 
@@ -880,41 +917,31 @@
 		*val = -((273150 << 12) / 503975);
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SAMP_FREQ:
-		ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
-		if (ret)
+		ret = xadc_read_samplerate(xadc);
+		if (ret < 0)
 			return ret;
 
-		div = (val16 & XADC_CONF2_DIV_MASK) >> XADC_CONF2_DIV_OFFSET;
-		if (div < 2)
-			div = 2;
-
-		*val = xadc_get_dclk_rate(xadc) / div / 26;
-
+		*val = ret;
 		return IIO_VAL_INT;
 	default:
 		return -EINVAL;
 	}
 }
 
-static int xadc_write_raw(struct iio_dev *indio_dev,
-	struct iio_chan_spec const *chan, int val, int val2, long info)
+static int xadc_write_samplerate(struct xadc *xadc, int val)
 {
-	struct xadc *xadc = iio_priv(indio_dev);
 	unsigned long clk_rate = xadc_get_dclk_rate(xadc);
 	unsigned int div;
 
 	if (!clk_rate)
 		return -EINVAL;
 
-	if (info != IIO_CHAN_INFO_SAMP_FREQ)
-		return -EINVAL;
-
 	if (val <= 0)
 		return -EINVAL;
 
 	/* Max. 150 kSPS */
-	if (val > 150000)
-		val = 150000;
+	if (val > XADC_MAX_SAMPLERATE)
+		val = XADC_MAX_SAMPLERATE;
 
 	val *= 26;
 
@@ -927,7 +954,7 @@
 	 * limit.
 	 */
 	div = clk_rate / val;
-	if (clk_rate / div / 26 > 150000)
+	if (clk_rate / div / 26 > XADC_MAX_SAMPLERATE)
 		div++;
 	if (div < 2)
 		div = 2;
@@ -938,6 +965,17 @@
 		div << XADC_CONF2_DIV_OFFSET);
 }
 
+static int xadc_write_raw(struct iio_dev *indio_dev,
+	struct iio_chan_spec const *chan, int val, int val2, long info)
+{
+	struct xadc *xadc = iio_priv(indio_dev);
+
+	if (info != IIO_CHAN_INFO_SAMP_FREQ)
+		return -EINVAL;
+
+	return xadc_write_samplerate(xadc, val);
+}
+
 static const struct iio_event_spec xadc_temp_events[] = {
 	{
 		.type = IIO_EV_TYPE_THRESH,
@@ -1225,6 +1263,21 @@
 	if (ret)
 		goto err_free_samplerate_trigger;
 
+	/*
+	 * Make sure not to exceed the maximum samplerate since otherwise the
+	 * resulting interrupt storm will soft-lock the system.
+	 */
+	if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
+		ret = xadc_read_samplerate(xadc);
+		if (ret < 0)
+			goto err_free_samplerate_trigger;
+		if (ret > XADC_MAX_SAMPLERATE) {
+			ret = xadc_write_samplerate(xadc, XADC_MAX_SAMPLERATE);
+			if (ret < 0)
+				goto err_free_samplerate_trigger;
+		}
+	}
+
 	ret = request_irq(xadc->irq, xadc->ops->interrupt_handler, 0,
 			dev_name(&pdev->dev), indio_dev);
 	if (ret)
--- linux-ein-5.4.0.orig/drivers/iio/addac/Kconfig
+++ linux-ein-5.4.0/drivers/iio/addac/Kconfig
@@ -0,0 +1,24 @@
+#
+# ADC DAC drivers
+#
+# When adding new entries keep the list in alphabetical order
+
+menu "Analog to digital and digital to analog converters"
+
+config STX104
+	tristate "Apex Embedded Systems STX104 driver"
+	depends on PC104 && X86
+	select ISA_BUS_API
+	select GPIOLIB
+	help
+	  Say yes here to build support for the Apex Embedded Systems STX104
+	  integrated analog PC/104 card.
+
+	  This driver supports the 16 channels of single-ended (8 channels of
+	  differential) analog inputs, 2 channels of analog output, 4 digital
+	  inputs, and 4 digital outputs provided by the STX104.
+
+	  The base port addresses for the devices may be configured via the base
+	  array module parameter.
+
+endmenu
--- linux-ein-5.4.0.orig/drivers/iio/addac/Makefile
+++ linux-ein-5.4.0/drivers/iio/addac/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for industrial I/O ADDAC drivers
+#
+
+# When adding new entries keep the list in alphabetical order
+obj-$(CONFIG_STX104) += stx104.o
--- linux-ein-5.4.0.orig/drivers/iio/addac/stx104.c
+++ linux-ein-5.4.0/drivers/iio/addac/stx104.c
@@ -0,0 +1,415 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * IIO driver for the Apex Embedded Systems STX104
+ * Copyright (C) 2016 William Breathitt Gray
+ */
+#include <linux/bitops.h>
+#include <linux/device.h>
+#include <linux/errno.h>
+#include <linux/gpio/driver.h>
+#include <linux/iio/iio.h>
+#include <linux/iio/types.h>
+#include <linux/io.h>
+#include <linux/ioport.h>
+#include <linux/isa.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/mutex.h>
+#include <linux/spinlock.h>
+#include <linux/types.h>
+
+#define STX104_OUT_CHAN(chan) {				\
+	.type = IIO_VOLTAGE,				\
+	.channel = chan,				\
+	.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),	\
+	.indexed = 1,					\
+	.output = 1					\
+}
+#define STX104_IN_CHAN(chan, diff) {					\
+	.type = IIO_VOLTAGE,						\
+	.channel = chan,						\
+	.channel2 = chan,						\
+	.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_HARDWAREGAIN) |	\
+		BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE),	\
+	.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),			\
+	.indexed = 1,							\
+	.differential = diff						\
+}
+
+#define STX104_NUM_OUT_CHAN 2
+
+#define STX104_EXTENT 16
+
+static unsigned int base[max_num_isa_dev(STX104_EXTENT)];
+static unsigned int num_stx104;
+module_param_hw_array(base, uint, ioport, &num_stx104, 0);
+MODULE_PARM_DESC(base, "Apex Embedded Systems STX104 base addresses");
+
+/**
+ * struct stx104_reg - device register structure
+ * @ssr_ad:	Software Strobe Register and ADC Data
+ * @achan:	ADC Channel
+ * @dio:	Digital I/O
+ * @dac:	DAC Channels
+ * @cir_asr:	Clear Interrupts and ADC Status
+ * @acr:	ADC Control
+ * @pccr_fsh:	Pacer Clock Control and FIFO Status MSB
+ * @acfg:	ADC Configuration
+ */
+struct stx104_reg {
+	u16 ssr_ad;
+	u8 achan;
+	u8 dio;
+	u16 dac[2];
+	u8 cir_asr;
+	u8 acr;
+	u8 pccr_fsh;
+	u8 acfg;
+};
+
+/**
+ * struct stx104_iio - IIO device private data structure
+ * @lock: synchronization lock to prevent I/O race conditions
+ * @chan_out_states:	channels' output states
+ * @reg:		I/O address offset for the device registers
+ */
+struct stx104_iio {
+	struct mutex lock;
+	unsigned int chan_out_states[STX104_NUM_OUT_CHAN];
+	struct stx104_reg __iomem *reg;
+};
+
+/**
+ * struct stx104_gpio - GPIO device private data structure
+ * @chip:	instance of the gpio_chip
+ * @lock:	synchronization lock to prevent I/O race conditions
+ * @base:	base port address of the GPIO device
+ * @out_state:	output bits state
+ */
+struct stx104_gpio {
+	struct gpio_chip chip;
+	spinlock_t lock;
+	u8 __iomem *base;
+	unsigned int out_state;
+};
+
+static int stx104_read_raw(struct iio_dev *indio_dev,
+	struct iio_chan_spec const *chan, int *val, int *val2, long mask)
+{
+	struct stx104_iio *const priv = iio_priv(indio_dev);
+	struct stx104_reg __iomem *const reg = priv->reg;
+	unsigned int adc_config;
+	int adbu;
+	int gain;
+
+	switch (mask) {
+	case IIO_CHAN_INFO_HARDWAREGAIN:
+		/* get gain configuration */
+		adc_config = ioread8(&reg->acfg);
+		gain = adc_config & 0x3;
+
+		*val = 1 << gain;
+		return IIO_VAL_INT;
+	case IIO_CHAN_INFO_RAW:
+		if (chan->output) {
+			*val = priv->chan_out_states[chan->channel];
+			return IIO_VAL_INT;
+		}
+
+		mutex_lock(&priv->lock);
+
+		/* select ADC channel */
+		iowrite8(chan->channel | (chan->channel << 4), &reg->achan);
+
+		/* trigger ADC sample capture by writing to the 8-bit
+		 * Software Strobe Register and wait for completion
+		 */
+		iowrite8(0, &reg->ssr_ad);
+		while (ioread8(&reg->cir_asr) & BIT(7));
+
+		*val = ioread16(&reg->ssr_ad);
+
+		mutex_unlock(&priv->lock);
+		return IIO_VAL_INT;
+	case IIO_CHAN_INFO_OFFSET:
+		/* get ADC bipolar/unipolar configuration */
+		adc_config = ioread8(&reg->acfg);
+		adbu = !(adc_config & BIT(2));
+
+		*val = -32768 * adbu;
+		return IIO_VAL_INT;
+	case IIO_CHAN_INFO_SCALE:
+		/* get ADC bipolar/unipolar and gain configuration */
+		adc_config = ioread8(&reg->acfg);
+		adbu = !(adc_config & BIT(2));
+		gain = adc_config & 0x3;
+
+		*val = 5;
+		*val2 = 15 - adbu + gain;
+		return IIO_VAL_FRACTIONAL_LOG2;
+	}
+
+	return -EINVAL;
+}
+
+static int stx104_write_raw(struct iio_dev *indio_dev,
+	struct iio_chan_spec const *chan, int val, int val2, long mask)
+{
+	struct stx104_iio *const priv = iio_priv(indio_dev);
+
+	switch (mask) {
+	case IIO_CHAN_INFO_HARDWAREGAIN:
+		/* Only four gain states (x1, x2, x4, x8) */
+		switch (val) {
+		case 1:
+			iowrite8(0, &priv->reg->acfg);
+			break;
+		case 2:
+			iowrite8(1, &priv->reg->acfg);
+			break;
+		case 4:
+			iowrite8(2, &priv->reg->acfg);
+			break;
+		case 8:
+			iowrite8(3, &priv->reg->acfg);
+			break;
+		default:
+			return -EINVAL;
+		}
+
+		return 0;
+	case IIO_CHAN_INFO_RAW:
+		if (chan->output) {
+			/* DAC can only accept up to a 16-bit value */
+			if ((unsigned int)val > 65535)
+				return -EINVAL;
+
+			mutex_lock(&priv->lock);
+
+			priv->chan_out_states[chan->channel] = val;
+			iowrite16(val, &priv->reg->dac[chan->channel]);
+
+			mutex_unlock(&priv->lock);
+			return 0;
+		}
+		return -EINVAL;
+	}
+
+	return -EINVAL;
+}
+
+static const struct iio_info stx104_info = {
+	.read_raw = stx104_read_raw,
+	.write_raw = stx104_write_raw
+};
+
+/* single-ended input channels configuration */
+static const struct iio_chan_spec stx104_channels_sing[] = {
+	STX104_OUT_CHAN(0), STX104_OUT_CHAN(1),
+	STX104_IN_CHAN(0, 0), STX104_IN_CHAN(1, 0), STX104_IN_CHAN(2, 0),
+	STX104_IN_CHAN(3, 0), STX104_IN_CHAN(4, 0), STX104_IN_CHAN(5, 0),
+	STX104_IN_CHAN(6, 0), STX104_IN_CHAN(7, 0), STX104_IN_CHAN(8, 0),
+	STX104_IN_CHAN(9, 0), STX104_IN_CHAN(10, 0), STX104_IN_CHAN(11, 0),
+	STX104_IN_CHAN(12, 0), STX104_IN_CHAN(13, 0), STX104_IN_CHAN(14, 0),
+	STX104_IN_CHAN(15, 0)
+};
+/* differential input channels configuration */
+static const struct iio_chan_spec stx104_channels_diff[] = {
+	STX104_OUT_CHAN(0), STX104_OUT_CHAN(1),
+	STX104_IN_CHAN(0, 1), STX104_IN_CHAN(1, 1), STX104_IN_CHAN(2, 1),
+	STX104_IN_CHAN(3, 1), STX104_IN_CHAN(4, 1), STX104_IN_CHAN(5, 1),
+	STX104_IN_CHAN(6, 1), STX104_IN_CHAN(7, 1)
+};
+
+static int stx104_gpio_get_direction(struct gpio_chip *chip,
+	unsigned int offset)
+{
+	/* GPIO 0-3 are input only, while the rest are output only */
+	if (offset < 4)
+		return 1;
+
+	return 0;
+}
+
+static int stx104_gpio_direction_input(struct gpio_chip *chip,
+	unsigned int offset)
+{
+	if (offset >= 4)
+		return -EINVAL;
+
+	return 0;
+}
+
+static int stx104_gpio_direction_output(struct gpio_chip *chip,
+	unsigned int offset, int value)
+{
+	if (offset < 4)
+		return -EINVAL;
+
+	chip->set(chip, offset, value);
+	return 0;
+}
+
+static int stx104_gpio_get(struct gpio_chip *chip, unsigned int offset)
+{
+	struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip);
+
+	if (offset >= 4)
+		return -EINVAL;
+
+	return !!(ioread8(stx104gpio->base) & BIT(offset));
+}
+
+static int stx104_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask,
+	unsigned long *bits)
+{
+	struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip);
+
+	*bits = ioread8(stx104gpio->base);
+
+	return 0;
+}
+
+static void stx104_gpio_set(struct gpio_chip *chip, unsigned int offset,
+	int value)
+{
+	struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip);
+	const unsigned int mask = BIT(offset) >> 4;
+	unsigned long flags;
+
+	if (offset < 4)
+		return;
+
+	spin_lock_irqsave(&stx104gpio->lock, flags);
+
+	if (value)
+		stx104gpio->out_state |= mask;
+	else
+		stx104gpio->out_state &= ~mask;
+
+	iowrite8(stx104gpio->out_state, stx104gpio->base);
+
+	spin_unlock_irqrestore(&stx104gpio->lock, flags);
+}
+
+#define STX104_NGPIO 8
+static const char *stx104_names[STX104_NGPIO] = {
+	"DIN0", "DIN1", "DIN2", "DIN3", "DOUT0", "DOUT1", "DOUT2", "DOUT3"
+};
+
+static void stx104_gpio_set_multiple(struct gpio_chip *chip,
+	unsigned long *mask, unsigned long *bits)
+{
+	struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip);
+	unsigned long flags;
+
+	/* verify masked GPIO are output */
+	if (!(*mask & 0xF0))
+		return;
+
+	*mask >>= 4;
+	*bits >>= 4;
+
+	spin_lock_irqsave(&stx104gpio->lock, flags);
+
+	stx104gpio->out_state &= ~*mask;
+	stx104gpio->out_state |= *mask & *bits;
+	iowrite8(stx104gpio->out_state, stx104gpio->base);
+
+	spin_unlock_irqrestore(&stx104gpio->lock, flags);
+}
+
+static int stx104_probe(struct device *dev, unsigned int id)
+{
+	struct iio_dev *indio_dev;
+	struct stx104_iio *priv;
+	struct stx104_gpio *stx104gpio;
+	int err;
+
+	indio_dev = devm_iio_device_alloc(dev, sizeof(*priv));
+	if (!indio_dev)
+		return -ENOMEM;
+
+	stx104gpio = devm_kzalloc(dev, sizeof(*stx104gpio), GFP_KERNEL);
+	if (!stx104gpio)
+		return -ENOMEM;
+
+	if (!devm_request_region(dev, base[id], STX104_EXTENT,
+		dev_name(dev))) {
+		dev_err(dev, "Unable to lock port addresses (0x%X-0x%X)\n",
+			base[id], base[id] + STX104_EXTENT);
+		return -EBUSY;
+	}
+
+	priv = iio_priv(indio_dev);
+	priv->reg = devm_ioport_map(dev, base[id], STX104_EXTENT);
+	if (!priv->reg)
+		return -ENOMEM;
+
+	indio_dev->info = &stx104_info;
+	indio_dev->modes = INDIO_DIRECT_MODE;
+
+	/* determine if differential inputs */
+	if (ioread8(&priv->reg->cir_asr) & BIT(5)) {
+		indio_dev->num_channels = ARRAY_SIZE(stx104_channels_diff);
+		indio_dev->channels = stx104_channels_diff;
+	} else {
+		indio_dev->num_channels = ARRAY_SIZE(stx104_channels_sing);
+		indio_dev->channels = stx104_channels_sing;
+	}
+
+	indio_dev->name = dev_name(dev);
+	indio_dev->dev.parent = dev;
+
+	mutex_init(&priv->lock);
+
+	/* configure device for software trigger operation */
+	iowrite8(0, &priv->reg->acr);
+
+	/* initialize gain setting to x1 */
+	iowrite8(0, &priv->reg->acfg);
+
+	/* initialize DAC output to 0V */
+	iowrite16(0, &priv->reg->dac[0]);
+	iowrite16(0, &priv->reg->dac[1]);
+
+	stx104gpio->chip.label = dev_name(dev);
+	stx104gpio->chip.parent = dev;
+	stx104gpio->chip.owner = THIS_MODULE;
+	stx104gpio->chip.base = -1;
+	stx104gpio->chip.ngpio = STX104_NGPIO;
+	stx104gpio->chip.names = stx104_names;
+	stx104gpio->chip.get_direction = stx104_gpio_get_direction;
+	stx104gpio->chip.direction_input = stx104_gpio_direction_input;
+	stx104gpio->chip.direction_output = stx104_gpio_direction_output;
+	stx104gpio->chip.get = stx104_gpio_get;
+	stx104gpio->chip.get_multiple = stx104_gpio_get_multiple;
+	stx104gpio->chip.set = stx104_gpio_set;
+	stx104gpio->chip.set_multiple = stx104_gpio_set_multiple;
+	stx104gpio->base = &priv->reg->dio;
+	stx104gpio->out_state = 0x0;
+
+	spin_lock_init(&stx104gpio->lock);
+
+	err = devm_gpiochip_add_data(dev, &stx104gpio->chip, stx104gpio);
+	if (err) {
+		dev_err(dev, "GPIO registering failed (%d)\n", err);
+		return err;
+	}
+
+	return devm_iio_device_register(dev, indio_dev);
+}
+
+static struct isa_driver stx104_driver = {
+	.probe = stx104_probe,
+	.driver = {
+		.name = "stx104"
+	},
+};
+
+module_isa_driver(stx104_driver, num_stx104);
+
+MODULE_AUTHOR("William Breathitt Gray <vilhelm.gray@gmail.com>");
+MODULE_DESCRIPTION("Apex Embedded Systems STX104 IIO driver");
+MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/iio/afe/iio-rescale.c
+++ linux-ein-5.4.0/drivers/iio/afe/iio-rescale.c
@@ -38,7 +38,7 @@
 			    int *val, int *val2, long mask)
 {
 	struct rescale *rescale = iio_priv(indio_dev);
-	unsigned long long tmp;
+	s64 tmp;
 	int ret;
 
 	switch (mask) {
@@ -59,10 +59,10 @@
 			*val2 = rescale->denominator;
 			return IIO_VAL_FRACTIONAL;
 		case IIO_VAL_FRACTIONAL_LOG2:
-			tmp = *val * 1000000000LL;
-			do_div(tmp, rescale->denominator);
+			tmp = (s64)*val * 1000000000LL;
+			tmp = div_s64(tmp, rescale->denominator);
 			tmp *= rescale->numerator;
-			do_div(tmp, 1000000000LL);
+			tmp = div_s64(tmp, 1000000000LL);
 			*val = tmp;
 			return ret;
 		default:
--- linux-ein-5.4.0.orig/drivers/iio/chemical/Kconfig
+++ linux-ein-5.4.0/drivers/iio/chemical/Kconfig
@@ -65,6 +65,7 @@
 config PMS7003
 	tristate "Plantower PMS7003 particulate matter sensor"
 	depends on SERIAL_DEV_BUS
+	select IIO_BUFFER
 	select IIO_TRIGGERED_BUFFER
 	help
 	  Say Y here to build support for the Plantower PMS7003 particulate
@@ -90,6 +91,8 @@
 	tristate "SPS30 particulate matter sensor"
 	depends on I2C
 	select CRC8
+	select IIO_BUFFER
+	select IIO_TRIGGERED_BUFFER
 	help
 	  Say Y here to build support for the Sensirion SPS30 particulate
 	  matter sensor.
--- linux-ein-5.4.0.orig/drivers/iio/chemical/ccs811.c
+++ linux-ein-5.4.0/drivers/iio/chemical/ccs811.c
@@ -75,6 +75,11 @@
 	struct ccs811_reading buffer;
 	struct iio_trigger *drdy_trig;
 	bool drdy_trig_on;
+	/* Ensures correct alignment of timestamp if present */
+	struct {
+		s16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static const struct iio_chan_spec ccs811_channels[] = {
@@ -306,17 +311,17 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ccs811_data *data = iio_priv(indio_dev);
 	struct i2c_client *client = data->client;
-	s16 buf[8]; /* s16 eCO2 + s16 TVOC + padding + 8 byte timestamp */
 	int ret;
 
-	ret = i2c_smbus_read_i2c_block_data(client, CCS811_ALG_RESULT_DATA, 4,
-					    (u8 *)&buf);
+	ret = i2c_smbus_read_i2c_block_data(client, CCS811_ALG_RESULT_DATA,
+					    sizeof(data->scan.channels),
+					    (u8 *)data->scan.channels);
 	if (ret != 4) {
 		dev_err(&client->dev, "cannot read sensor data\n");
 		goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 
 err:
@@ -413,11 +418,11 @@
 		data->drdy_trig->dev.parent = &client->dev;
 		data->drdy_trig->ops = &ccs811_trigger_ops;
 		iio_trigger_set_drvdata(data->drdy_trig, indio_dev);
-		indio_dev->trig = data->drdy_trig;
-		iio_trigger_get(indio_dev->trig);
 		ret = iio_trigger_register(data->drdy_trig);
 		if (ret)
 			goto err_poweroff;
+
+		indio_dev->trig = iio_trigger_get(data->drdy_trig);
 	}
 
 	ret = iio_triggered_buffer_setup(indio_dev, NULL,
--- linux-ein-5.4.0.orig/drivers/iio/chemical/pms7003.c
+++ linux-ein-5.4.0/drivers/iio/chemical/pms7003.c
@@ -73,6 +73,11 @@
 	struct pms7003_frame frame;
 	struct completion frame_ready;
 	struct mutex lock; /* must be held whenever state gets touched */
+	/* Used to construct scan to push to the IIO buffer */
+	struct {
+		u16 data[3]; /* PM1, PM2P5, PM10 */
+		s64 ts;
+	} scan;
 };
 
 static int pms7003_do_cmd(struct pms7003_state *state, enum pms7003_cmd cmd)
@@ -104,7 +109,6 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct pms7003_state *state = iio_priv(indio_dev);
 	struct pms7003_frame *frame = &state->frame;
-	u16 data[3 + 1 + 4]; /* PM1, PM2P5, PM10, padding, timestamp */
 	int ret;
 
 	mutex_lock(&state->lock);
@@ -114,12 +118,15 @@
 		goto err;
 	}
 
-	data[PM1] = pms7003_get_pm(frame->data + PMS7003_PM1_OFFSET);
-	data[PM2P5] = pms7003_get_pm(frame->data + PMS7003_PM2P5_OFFSET);
-	data[PM10] = pms7003_get_pm(frame->data + PMS7003_PM10_OFFSET);
+	state->scan.data[PM1] =
+		pms7003_get_pm(frame->data + PMS7003_PM1_OFFSET);
+	state->scan.data[PM2P5] =
+		pms7003_get_pm(frame->data + PMS7003_PM2P5_OFFSET);
+	state->scan.data[PM10] =
+		pms7003_get_pm(frame->data + PMS7003_PM10_OFFSET);
 	mutex_unlock(&state->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &state->scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/chemical/sps30.c
+++ linux-ein-5.4.0/drivers/iio/chemical/sps30.c
@@ -230,15 +230,18 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct sps30_state *state = iio_priv(indio_dev);
 	int ret;
-	s32 data[4 + 2]; /* PM1, PM2P5, PM4, PM10, timestamp */
+	struct {
+		s32 data[4]; /* PM1, PM2P5, PM4, PM10 */
+		s64 ts;
+	} scan;
 
 	mutex_lock(&state->lock);
-	ret = sps30_do_meas(state, data, 4);
+	ret = sps30_do_meas(state, scan.data, ARRAY_SIZE(scan.data));
 	mutex_unlock(&state->lock);
 	if (ret)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
+++ linux-ein-5.4.0/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
@@ -57,10 +57,13 @@
 {
 	switch (type) {
 	case MOTIONSENSE_TYPE_ACCEL:
-	case MOTIONSENSE_TYPE_GYRO:
 		*min_freq = 12500;
 		*max_freq = 100000;
 		break;
+	case MOTIONSENSE_TYPE_GYRO:
+		*min_freq = 25000;
+		*max_freq = 100000;
+		break;
 	case MOTIONSENSE_TYPE_MAG:
 		*min_freq = 5000;
 		*max_freq = 25000;
@@ -96,7 +99,7 @@
 	platform_set_drvdata(pdev, indio_dev);
 
 	state->ec = ec->ec_dev;
-	state->msg = devm_kzalloc(&pdev->dev,
+	state->msg = devm_kzalloc(&pdev->dev, sizeof(*state->msg) +
 				max((u16)sizeof(struct ec_params_motion_sense),
 				state->ec->max_response), GFP_KERNEL);
 	if (!state->msg)
--- linux-ein-5.4.0.orig/drivers/iio/common/ssp_sensors/ssp_spi.c
+++ linux-ein-5.4.0/drivers/iio/common/ssp_sensors/ssp_spi.c
@@ -137,7 +137,7 @@
 	if (length > received_len - *data_index || length <= 0) {
 		ssp_dbg("[SSP]: MSG From MCU-invalid debug length(%d/%d)\n",
 			length, received_len);
-		return length ? length : -EPROTO;
+		return -EPROTO;
 	}
 
 	ssp_dbg("[SSP]: MSG From MCU - %s\n", &data_frame[*data_index]);
@@ -273,6 +273,8 @@
 	for (idx = 0; idx < len;) {
 		switch (dataframe[idx++]) {
 		case SSP_MSG2AP_INST_BYPASS_DATA:
+			if (idx >= len)
+				return -EPROTO;
 			sd = dataframe[idx++];
 			if (sd < 0 || sd >= SSP_SENSOR_MAX) {
 				dev_err(SSP_DEV,
@@ -282,10 +284,13 @@
 
 			if (indio_devs[sd]) {
 				spd = iio_priv(indio_devs[sd]);
-				if (spd->process_data)
+				if (spd->process_data) {
+					if (idx >= len)
+						return -EPROTO;
 					spd->process_data(indio_devs[sd],
 							  &dataframe[idx],
 							  data->timestamp);
+				}
 			} else {
 				dev_err(SSP_DEV, "no client for frame\n");
 			}
@@ -293,6 +298,8 @@
 			idx += ssp_offset_map[sd];
 			break;
 		case SSP_MSG2AP_INST_DEBUG_DATA:
+			if (idx >= len)
+				return -EPROTO;
 			sd = ssp_print_mcu_debug(dataframe, &idx, len);
 			if (sd) {
 				dev_err(SSP_DEV,
--- linux-ein-5.4.0.orig/drivers/iio/common/st_sensors/st_sensors_core.c
+++ linux-ein-5.4.0/drivers/iio/common/st_sensors/st_sensors_core.c
@@ -76,16 +76,18 @@
 
 int st_sensors_set_odr(struct iio_dev *indio_dev, unsigned int odr)
 {
-	int err;
+	int err = 0;
 	struct st_sensor_odr_avl odr_out = {0, 0};
 	struct st_sensor_data *sdata = iio_priv(indio_dev);
 
-	if (!sdata->sensor_settings->odr.addr)
-		return 0;
+	mutex_lock(&sdata->odr_lock);
+
+	if (!sdata->sensor_settings->odr.mask)
+		goto unlock_mutex;
 
 	err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out);
 	if (err < 0)
-		goto st_sensors_match_odr_error;
+		goto unlock_mutex;
 
 	if ((sdata->sensor_settings->odr.addr ==
 					sdata->sensor_settings->pw.addr) &&
@@ -108,7 +110,9 @@
 	if (err >= 0)
 		sdata->odr = odr_out.hz;
 
-st_sensors_match_odr_error:
+unlock_mutex:
+	mutex_unlock(&sdata->odr_lock);
+
 	return err;
 }
 EXPORT_SYMBOL(st_sensors_set_odr);
@@ -384,6 +388,8 @@
 	struct st_sensors_platform_data *of_pdata;
 	int err = 0;
 
+	mutex_init(&sdata->odr_lock);
+
 	/* If OF/DT pdata exists, it will take precedence of anything else */
 	of_pdata = st_sensors_of_probe(indio_dev->dev.parent, pdata);
 	if (of_pdata)
@@ -575,18 +581,24 @@
 		err = -EBUSY;
 		goto out;
 	} else {
+		mutex_lock(&sdata->odr_lock);
 		err = st_sensors_set_enable(indio_dev, true);
-		if (err < 0)
+		if (err < 0) {
+			mutex_unlock(&sdata->odr_lock);
 			goto out;
+		}
 
 		msleep((sdata->sensor_settings->bootime * 1000) / sdata->odr);
 		err = st_sensors_read_axis_data(indio_dev, ch, val);
-		if (err < 0)
+		if (err < 0) {
+			mutex_unlock(&sdata->odr_lock);
 			goto out;
+		}
 
 		*val = *val >> ch->scan_type.shift;
 
 		err = st_sensors_set_enable(indio_dev, false);
+		mutex_unlock(&sdata->odr_lock);
 	}
 out:
 	mutex_unlock(&indio_dev->mlock);
--- linux-ein-5.4.0.orig/drivers/iio/dac/Kconfig
+++ linux-ein-5.4.0/drivers/iio/dac/Kconfig
@@ -60,8 +60,8 @@
 	help
 	  Say yes here to build support for Analog Devices AD5300, AD5301, AD5310,
 	  AD5311, AD5320, AD5321, AD5444, AD5446, AD5450, AD5451, AD5452, AD5453,
-	  AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5601, AD5602, AD5611, AD5612,
-	  AD5620, AD5621, AD5622, AD5640, AD5641, AD5660, AD5662 DACs
+	  AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5600, AD5601, AD5602, AD5611,
+	  AD5612, AD5620, AD5621, AD5622, AD5640, AD5641, AD5660, AD5662 DACs
 	  as well as Texas Instruments DAC081S101, DAC101S101, DAC121S101.
 
 	  To compile this driver as a module, choose M here: the
--- linux-ein-5.4.0.orig/drivers/iio/dac/Makefile
+++ linux-ein-5.4.0/drivers/iio/dac/Makefile
@@ -16,7 +16,7 @@
 obj-$(CONFIG_AD5592R) += ad5592r.o
 obj-$(CONFIG_AD5593R) += ad5593r.o
 obj-$(CONFIG_AD5755) += ad5755.o
-obj-$(CONFIG_AD5755) += ad5758.o
+obj-$(CONFIG_AD5758) += ad5758.o
 obj-$(CONFIG_AD5761) += ad5761.o
 obj-$(CONFIG_AD5764) += ad5764.o
 obj-$(CONFIG_AD5791) += ad5791.o
--- linux-ein-5.4.0.orig/drivers/iio/dac/ad5446.c
+++ linux-ein-5.4.0/drivers/iio/dac/ad5446.c
@@ -170,7 +170,7 @@
 
 	switch (m) {
 	case IIO_CHAN_INFO_RAW:
-		*val = st->cached_val;
+		*val = st->cached_val >> chan->scan_type.shift;
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SCALE:
 		*val = st->vref_mv;
@@ -327,6 +327,7 @@
 	ID_AD5541A,
 	ID_AD5512A,
 	ID_AD5553,
+	ID_AD5600,
 	ID_AD5601,
 	ID_AD5611,
 	ID_AD5621,
@@ -381,6 +382,10 @@
 		.channel = AD5446_CHANNEL(14, 16, 0),
 		.write = ad5446_write,
 	},
+	[ID_AD5600] = {
+		.channel = AD5446_CHANNEL(16, 16, 0),
+		.write = ad5446_write,
+	},
 	[ID_AD5601] = {
 		.channel = AD5446_CHANNEL_POWERDOWN(8, 16, 6),
 		.write = ad5446_write,
@@ -448,6 +453,7 @@
 	{"ad5542a", ID_AD5541A}, /* ad5541a and ad5542a are compatible */
 	{"ad5543", ID_AD5541A}, /* ad5541a and ad5543 are compatible */
 	{"ad5553", ID_AD5553},
+	{"ad5600", ID_AD5600},
 	{"ad5601", ID_AD5601},
 	{"ad5611", ID_AD5611},
 	{"ad5621", ID_AD5621},
@@ -521,8 +527,15 @@
 {
 	struct i2c_client *client = to_i2c_client(st->dev);
 	__be16 data = cpu_to_be16(val);
+	int ret;
 
-	return i2c_master_send(client, (char *)&data, sizeof(data));
+	ret = i2c_master_send(client, (char *)&data, sizeof(data));
+	if (ret < 0)
+		return ret;
+	if (ret != sizeof(data))
+		return -EIO;
+
+	return 0;
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/iio/dac/ad5504.c
+++ linux-ein-5.4.0/drivers/iio/dac/ad5504.c
@@ -188,9 +188,9 @@
 		return ret;
 
 	if (pwr_down)
-		st->pwr_down_mask |= (1 << chan->channel);
-	else
 		st->pwr_down_mask &= ~(1 << chan->channel);
+	else
+		st->pwr_down_mask |= (1 << chan->channel);
 
 	ret = ad5504_spi_write(st, AD5504_ADDR_CTRL,
 				AD5504_DAC_PWRDWN_MODE(st->pwr_down_mode) |
--- linux-ein-5.4.0.orig/drivers/iio/dac/ad5592r-base.c
+++ linux-ein-5.4.0/drivers/iio/dac/ad5592r-base.c
@@ -416,7 +416,7 @@
 			s64 tmp = *val * (3767897513LL / 25LL);
 			*val = div_s64_rem(tmp, 1000000000LL, val2);
 
-			ret = IIO_VAL_INT_PLUS_MICRO;
+			return IIO_VAL_INT_PLUS_MICRO;
 		} else {
 			int mult;
 
@@ -447,7 +447,7 @@
 		ret =  IIO_VAL_INT;
 		break;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
 
 unlock:
@@ -530,7 +530,7 @@
 		if (!ret)
 			st->channel_modes[reg] = tmp;
 
-		fwnode_property_read_u32(child, "adi,off-state", &tmp);
+		ret = fwnode_property_read_u32(child, "adi,off-state", &tmp);
 		if (!ret)
 			st->channel_offstate[reg] = tmp;
 	}
--- linux-ein-5.4.0.orig/drivers/iio/dac/ad5593r.c
+++ linux-ein-5.4.0/drivers/iio/dac/ad5593r.c
@@ -14,6 +14,8 @@
 #include <linux/of.h>
 #include <linux/acpi.h>
 
+#include <asm/unaligned.h>
+
 #define AD5593R_MODE_CONF		(0 << 4)
 #define AD5593R_MODE_DAC_WRITE		(1 << 4)
 #define AD5593R_MODE_ADC_READBACK	(4 << 4)
@@ -21,6 +23,24 @@
 #define AD5593R_MODE_GPIO_READBACK	(6 << 4)
 #define AD5593R_MODE_REG_READBACK	(7 << 4)
 
+static int ad5593r_read_word(struct i2c_client *i2c, u8 reg, u16 *value)
+{
+	int ret;
+	u8 buf[2];
+
+	ret = i2c_smbus_write_byte(i2c, reg);
+	if (ret < 0)
+		return ret;
+
+	ret = i2c_master_recv(i2c, buf, sizeof(buf));
+	if (ret < 0)
+		return ret;
+
+	*value = get_unaligned_be16(buf);
+
+	return 0;
+}
+
 static int ad5593r_write_dac(struct ad5592r_state *st, unsigned chan, u16 value)
 {
 	struct i2c_client *i2c = to_i2c_client(st->dev);
@@ -39,13 +59,7 @@
 	if (val < 0)
 		return (int) val;
 
-	val = i2c_smbus_read_word_swapped(i2c, AD5593R_MODE_ADC_READBACK);
-	if (val < 0)
-		return (int) val;
-
-	*value = (u16) val;
-
-	return 0;
+	return ad5593r_read_word(i2c, AD5593R_MODE_ADC_READBACK, value);
 }
 
 static int ad5593r_reg_write(struct ad5592r_state *st, u8 reg, u16 value)
@@ -59,25 +73,19 @@
 static int ad5593r_reg_read(struct ad5592r_state *st, u8 reg, u16 *value)
 {
 	struct i2c_client *i2c = to_i2c_client(st->dev);
-	s32 val;
-
-	val = i2c_smbus_read_word_swapped(i2c, AD5593R_MODE_REG_READBACK | reg);
-	if (val < 0)
-		return (int) val;
 
-	*value = (u16) val;
-
-	return 0;
+	return ad5593r_read_word(i2c, AD5593R_MODE_REG_READBACK | reg, value);
 }
 
 static int ad5593r_gpio_read(struct ad5592r_state *st, u8 *value)
 {
 	struct i2c_client *i2c = to_i2c_client(st->dev);
-	s32 val;
+	u16 val;
+	int ret;
 
-	val = i2c_smbus_read_word_swapped(i2c, AD5593R_MODE_GPIO_READBACK);
-	if (val < 0)
-		return (int) val;
+	ret = ad5593r_read_word(i2c, AD5593R_MODE_GPIO_READBACK, &val);
+	if (ret)
+		return ret;
 
 	*value = (u8) val;
 
--- linux-ein-5.4.0.orig/drivers/iio/dac/ad5624r_spi.c
+++ linux-ein-5.4.0/drivers/iio/dac/ad5624r_spi.c
@@ -229,7 +229,7 @@
 	if (!indio_dev)
 		return -ENOMEM;
 	st = iio_priv(indio_dev);
-	st->reg = devm_regulator_get(&spi->dev, "vcc");
+	st->reg = devm_regulator_get_optional(&spi->dev, "vref");
 	if (!IS_ERR(st->reg)) {
 		ret = regulator_enable(st->reg);
 		if (ret)
@@ -240,6 +240,22 @@
 			goto error_disable_reg;
 
 		voltage_uv = ret;
+	} else {
+		if (PTR_ERR(st->reg) != -ENODEV)
+			return PTR_ERR(st->reg);
+		/* Backwards compatibility. This naming is not correct */
+		st->reg = devm_regulator_get_optional(&spi->dev, "vcc");
+		if (!IS_ERR(st->reg)) {
+			ret = regulator_enable(st->reg);
+			if (ret)
+				return ret;
+
+			ret = regulator_get_voltage(st->reg);
+			if (ret < 0)
+				goto error_disable_reg;
+
+			voltage_uv = ret;
+		}
 	}
 
 	spi_set_drvdata(spi, indio_dev);
--- linux-ein-5.4.0.orig/drivers/iio/dac/cio-dac.c
+++ linux-ein-5.4.0/drivers/iio/dac/cio-dac.c
@@ -66,8 +66,8 @@
 	if (mask != IIO_CHAN_INFO_RAW)
 		return -EINVAL;
 
-	/* DAC can only accept up to a 16-bit value */
-	if ((unsigned int)val > 65535)
+	/* DAC can only accept up to a 12-bit value */
+	if ((unsigned int)val > 4095)
 		return -EINVAL;
 
 	priv->chan_out_states[chan->channel] = val;
--- linux-ein-5.4.0.orig/drivers/iio/dac/mcp4725.c
+++ linux-ein-5.4.0/drivers/iio/dac/mcp4725.c
@@ -47,12 +47,18 @@
 	struct mcp4725_data *data = iio_priv(i2c_get_clientdata(
 		to_i2c_client(dev)));
 	u8 outbuf[2];
+	int ret;
 
 	outbuf[0] = (data->powerdown_mode + 1) << 4;
 	outbuf[1] = 0;
 	data->powerdown = true;
 
-	return i2c_master_send(data->client, outbuf, 2);
+	ret = i2c_master_send(data->client, outbuf, 2);
+	if (ret < 0)
+		return ret;
+	else if (ret != 2)
+		return -EIO;
+	return 0;
 }
 
 static int __maybe_unused mcp4725_resume(struct device *dev)
@@ -60,13 +66,19 @@
 	struct mcp4725_data *data = iio_priv(i2c_get_clientdata(
 		to_i2c_client(dev)));
 	u8 outbuf[2];
+	int ret;
 
 	/* restore previous DAC value */
 	outbuf[0] = (data->dac_value >> 8) & 0xf;
 	outbuf[1] = data->dac_value & 0xff;
 	data->powerdown = false;
 
-	return i2c_master_send(data->client, outbuf, 2);
+	ret = i2c_master_send(data->client, outbuf, 2);
+	if (ret < 0)
+		return ret;
+	else if (ret != 2)
+		return -EIO;
+	return 0;
 }
 static SIMPLE_DEV_PM_OPS(mcp4725_pm_ops, mcp4725_suspend, mcp4725_resume);
 
--- linux-ein-5.4.0.orig/drivers/iio/dac/ti-dac5571.c
+++ linux-ein-5.4.0/drivers/iio/dac/ti-dac5571.c
@@ -352,6 +352,7 @@
 		data->dac5571_pwrdwn = dac5571_pwrdwn_quad;
 		break;
 	default:
+		ret = -EINVAL;
 		goto err;
 	}
 
--- linux-ein-5.4.0.orig/drivers/iio/dac/vf610_dac.c
+++ linux-ein-5.4.0/drivers/iio/dac/vf610_dac.c
@@ -225,6 +225,7 @@
 	return 0;
 
 error_iio_device_register:
+	vf610_dac_exit(info);
 	clk_disable_unprepare(info->clk);
 
 	return ret;
--- linux-ein-5.4.0.orig/drivers/iio/dummy/iio_simple_dummy.c
+++ linux-ein-5.4.0/drivers/iio/dummy/iio_simple_dummy.c
@@ -568,10 +568,9 @@
 	struct iio_sw_device *swd;
 
 	swd = kzalloc(sizeof(*swd), GFP_KERNEL);
-	if (!swd) {
-		ret = -ENOMEM;
-		goto error_kzalloc;
-	}
+	if (!swd)
+		return ERR_PTR(-ENOMEM);
+
 	/*
 	 * Allocate an IIO device.
 	 *
@@ -583,7 +582,7 @@
 	indio_dev = iio_device_alloc(sizeof(*st));
 	if (!indio_dev) {
 		ret = -ENOMEM;
-		goto error_ret;
+		goto error_free_swd;
 	}
 
 	st = iio_priv(indio_dev);
@@ -614,6 +613,10 @@
 	 *    indio_dev->name = spi_get_device_id(spi)->name;
 	 */
 	indio_dev->name = kstrdup(name, GFP_KERNEL);
+	if (!indio_dev->name) {
+		ret = -ENOMEM;
+		goto error_free_device;
+	}
 
 	/* Provide description of available channels */
 	indio_dev->channels = iio_dummy_channels;
@@ -630,7 +633,7 @@
 
 	ret = iio_simple_dummy_events_register(indio_dev);
 	if (ret < 0)
-		goto error_free_device;
+		goto error_free_name;
 
 	ret = iio_simple_dummy_configure_buffer(indio_dev);
 	if (ret < 0)
@@ -647,11 +650,12 @@
 	iio_simple_dummy_unconfigure_buffer(indio_dev);
 error_unregister_events:
 	iio_simple_dummy_events_unregister(indio_dev);
+error_free_name:
+	kfree(indio_dev->name);
 error_free_device:
 	iio_device_free(indio_dev);
-error_ret:
+error_free_swd:
 	kfree(swd);
-error_kzalloc:
 	return ERR_PTR(ret);
 }
 
--- linux-ein-5.4.0.orig/drivers/iio/gyro/bmg160_core.c
+++ linux-ein-5.4.0/drivers/iio/gyro/bmg160_core.c
@@ -96,7 +96,11 @@
 	struct iio_trigger *motion_trig;
 	struct iio_mount_matrix orientation;
 	struct mutex mutex;
-	s16 buffer[8];
+	/* Ensure naturally aligned timestamp */
+	struct {
+		s16 chans[3];
+		s64 timestamp __aligned(8);
+	} scan;
 	u32 dps_range;
 	int ev_enable_state;
 	int slope_thres;
@@ -880,12 +884,12 @@
 
 	mutex_lock(&data->mutex);
 	ret = regmap_bulk_read(data->regmap, BMG160_REG_XOUT_L,
-			       data->buffer, AXIS_MAX * 2);
+			       data->scan.chans, AXIS_MAX * 2);
 	mutex_unlock(&data->mutex);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
@@ -1169,11 +1173,14 @@
 	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(dev, "unable to register iio device\n");
-		goto err_buffer_cleanup;
+		goto err_pm_cleanup;
 	}
 
 	return 0;
 
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(dev);
+	pm_runtime_disable(dev);
 err_buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 err_trigger_unregister:
--- linux-ein-5.4.0.orig/drivers/iio/gyro/fxas21002c_core.c
+++ linux-ein-5.4.0/drivers/iio/gyro/fxas21002c_core.c
@@ -300,14 +300,7 @@
 
 static int  fxas21002c_pm_get(struct fxas21002c_data *data)
 {
-	struct device *dev = regmap_get_device(data->regmap);
-	int ret;
-
-	ret = pm_runtime_get_sync(dev);
-	if (ret < 0)
-		pm_runtime_put_noidle(dev);
-
-	return ret;
+	return pm_runtime_resume_and_get(regmap_get_device(data->regmap));
 }
 
 static int  fxas21002c_pm_put(struct fxas21002c_data *data)
@@ -333,6 +326,7 @@
 	ret = regmap_field_read(data->regmap_fields[F_TEMP], &temp);
 	if (ret < 0) {
 		dev_err(dev, "failed to read temp: %d\n", ret);
+		fxas21002c_pm_put(data);
 		goto data_unlock;
 	}
 
@@ -366,6 +360,7 @@
 			       &axis_be, sizeof(axis_be));
 	if (ret < 0) {
 		dev_err(dev, "failed to read axis: %d: %d\n", index, ret);
+		fxas21002c_pm_put(data);
 		goto data_unlock;
 	}
 
@@ -938,7 +933,6 @@
 pm_disable:
 	pm_runtime_disable(dev);
 	pm_runtime_set_suspended(dev);
-	pm_runtime_put_noidle(dev);
 
 	return ret;
 }
@@ -952,7 +946,6 @@
 
 	pm_runtime_disable(dev);
 	pm_runtime_set_suspended(dev);
-	pm_runtime_put_noidle(dev);
 }
 EXPORT_SYMBOL_GPL(fxas21002c_core_remove);
 
--- linux-ein-5.4.0.orig/drivers/iio/gyro/itg3200_buffer.c
+++ linux-ein-5.4.0/drivers/iio/gyro/itg3200_buffer.c
@@ -46,17 +46,24 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct itg3200 *st = iio_priv(indio_dev);
-	__be16 buf[ITG3200_SCAN_ELEMENTS + sizeof(s64)/sizeof(u16)];
+	/*
+	 * Ensure correct alignment and padding including for the
+	 * timestamp that may be inserted.
+	 */
+	struct {
+		__be16 buf[ITG3200_SCAN_ELEMENTS];
+		s64 ts __aligned(8);
+	} scan;
 
-	int ret = itg3200_read_all_channels(st->i2c, buf);
+	int ret = itg3200_read_all_channels(st->i2c, scan.buf);
 	if (ret < 0)
 		goto error_ret;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan, pf->timestamp);
 
+error_ret:
 	iio_trigger_notify_done(indio_dev->trig);
 
-error_ret:
 	return IRQ_HANDLED;
 }
 
--- linux-ein-5.4.0.orig/drivers/iio/gyro/mpu3050-core.c
+++ linux-ein-5.4.0/drivers/iio/gyro/mpu3050-core.c
@@ -271,7 +271,16 @@
 	case IIO_CHAN_INFO_OFFSET:
 		switch (chan->type) {
 		case IIO_TEMP:
-			/* The temperature scaling is (x+23000)/280 Celsius */
+			/*
+			 * The temperature scaling is (x+23000)/280 Celsius
+			 * for the "best fit straight line" temperature range
+			 * of -30C..85C.  The 23000 includes room temperature
+			 * offset of +35C, 280 is the precision scale and x is
+			 * the 16-bit signed integer reported by hardware.
+			 *
+			 * Temperature value itself represents temperature of
+			 * the sensor die.
+			 */
 			*val = 23000;
 			return IIO_VAL_INT;
 		default:
@@ -328,7 +337,7 @@
 				goto out_read_raw_unlock;
 			}
 
-			*val = be16_to_cpu(raw_val);
+			*val = (s16)be16_to_cpu(raw_val);
 			ret = IIO_VAL_INT;
 
 			goto out_read_raw_unlock;
@@ -550,6 +559,8 @@
 					       MPU3050_FIFO_R,
 					       &fifo_values[offset],
 					       toread);
+			if (ret)
+				goto out_trigger_unlock;
 
 			dev_dbg(mpu3050->dev,
 				"%04x %04x %04x %04x %04x\n",
@@ -863,6 +874,7 @@
 	ret = regmap_update_bits(mpu3050->map, MPU3050_PWR_MGM,
 				 MPU3050_PWR_MGM_SLEEP, 0);
 	if (ret) {
+		regulator_bulk_disable(ARRAY_SIZE(mpu3050->regs), mpu3050->regs);
 		dev_err(mpu3050->dev, "error setting power mode\n");
 		return ret;
 	}
--- linux-ein-5.4.0.orig/drivers/iio/gyro/st_gyro_core.c
+++ linux-ein-5.4.0/drivers/iio/gyro/st_gyro_core.c
@@ -139,7 +139,6 @@
 			[2] = LSM330DLC_GYRO_DEV_NAME,
 			[3] = L3G4IS_GYRO_DEV_NAME,
 			[4] = LSM330_GYRO_DEV_NAME,
-			[5] = LSM9DS0_GYRO_DEV_NAME,
 		},
 		.ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
 		.odr = {
@@ -203,6 +202,80 @@
 			},
 		},
 		.sim = {
+			.addr = 0x23,
+			.value = BIT(0),
+		},
+		.multi_read_bit = true,
+		.bootime = 2,
+	},
+	{
+		.wai = 0xd4,
+		.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
+		.sensors_supported = {
+			[0] = LSM9DS0_GYRO_DEV_NAME,
+		},
+		.ch = (struct iio_chan_spec *)st_gyro_16bit_channels,
+		.odr = {
+			.addr = 0x20,
+			.mask = GENMASK(7, 6),
+			.odr_avl = {
+				{ .hz = 95, .value = 0x00, },
+				{ .hz = 190, .value = 0x01, },
+				{ .hz = 380, .value = 0x02, },
+				{ .hz = 760, .value = 0x03, },
+			},
+		},
+		.pw = {
+			.addr = 0x20,
+			.mask = BIT(3),
+			.value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
+			.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
+		},
+		.enable_axis = {
+			.addr = ST_SENSORS_DEFAULT_AXIS_ADDR,
+			.mask = ST_SENSORS_DEFAULT_AXIS_MASK,
+		},
+		.fs = {
+			.addr = 0x23,
+			.mask = GENMASK(5, 4),
+			.fs_avl = {
+				[0] = {
+					.num = ST_GYRO_FS_AVL_245DPS,
+					.value = 0x00,
+					.gain = IIO_DEGREE_TO_RAD(8750),
+				},
+				[1] = {
+					.num = ST_GYRO_FS_AVL_500DPS,
+					.value = 0x01,
+					.gain = IIO_DEGREE_TO_RAD(17500),
+				},
+				[2] = {
+					.num = ST_GYRO_FS_AVL_2000DPS,
+					.value = 0x02,
+					.gain = IIO_DEGREE_TO_RAD(70000),
+				},
+			},
+		},
+		.bdu = {
+			.addr = 0x23,
+			.mask = BIT(7),
+		},
+		.drdy_irq = {
+			.int2 = {
+				.addr = 0x22,
+				.mask = BIT(3),
+			},
+			/*
+			 * The sensor has IHL (active low) and open
+			 * drain settings, but only for INT1 and not
+			 * for the DRDY line on INT2.
+			 */
+			.stat_drdy = {
+				.addr = ST_SENSORS_DEFAULT_STAT_ADDR,
+				.mask = GENMASK(2, 0),
+			},
+		},
+		.sim = {
 			.addr = 0x23,
 			.value = BIT(0),
 		},
--- linux-ein-5.4.0.orig/drivers/iio/health/afe4403.c
+++ linux-ein-5.4.0/drivers/iio/health/afe4403.c
@@ -63,6 +63,7 @@
  * @regulator: Pointer to the regulator for the IC
  * @trig: IIO trigger for this device
  * @irq: ADC_RDY line interrupt number
+ * @buffer: Used to construct data layout to push into IIO buffer.
  */
 struct afe4403_data {
 	struct device *dev;
@@ -72,6 +73,8 @@
 	struct regulator *regulator;
 	struct iio_trigger *trig;
 	int irq;
+	/* Ensure suitable alignment for timestamp */
+	s32 buffer[8] __aligned(8);
 };
 
 enum afe4403_chan_id {
@@ -242,14 +245,14 @@
 			    int *val, int *val2, long mask)
 {
 	struct afe4403_data *afe = iio_priv(indio_dev);
-	unsigned int reg = afe4403_channel_values[chan->address];
-	unsigned int field = afe4403_channel_leds[chan->address];
+	unsigned int reg, field;
 	int ret;
 
 	switch (chan->type) {
 	case IIO_INTENSITY:
 		switch (mask) {
 		case IIO_CHAN_INFO_RAW:
+			reg = afe4403_channel_values[chan->address];
 			ret = afe4403_read(afe, reg, val);
 			if (ret)
 				return ret;
@@ -259,6 +262,7 @@
 	case IIO_CURRENT:
 		switch (mask) {
 		case IIO_CHAN_INFO_RAW:
+			field = afe4403_channel_leds[chan->address];
 			ret = regmap_field_read(afe->fields[field], val);
 			if (ret)
 				return ret;
@@ -309,7 +313,6 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct afe4403_data *afe = iio_priv(indio_dev);
 	int ret, bit, i = 0;
-	s32 buffer[8];
 	u8 tx[4] = {AFE440X_CONTROL0, 0x0, 0x0, AFE440X_CONTROL0_READ};
 	u8 rx[3];
 
@@ -326,9 +329,9 @@
 		if (ret)
 			goto err;
 
-		buffer[i++] = (rx[0] << 16) |
-				(rx[1] << 8) |
-				(rx[2]);
+		afe->buffer[i++] = (rx[0] << 16) |
+				   (rx[1] << 8) |
+				   (rx[2]);
 	}
 
 	/* Disable reading from the device */
@@ -337,7 +340,8 @@
 	if (ret)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
+					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
--- linux-ein-5.4.0.orig/drivers/iio/health/afe4404.c
+++ linux-ein-5.4.0/drivers/iio/health/afe4404.c
@@ -83,6 +83,7 @@
  * @regulator: Pointer to the regulator for the IC
  * @trig: IIO trigger for this device
  * @irq: ADC_RDY line interrupt number
+ * @buffer: Used to construct a scan to push to the iio buffer.
  */
 struct afe4404_data {
 	struct device *dev;
@@ -91,6 +92,7 @@
 	struct regulator *regulator;
 	struct iio_trigger *trig;
 	int irq;
+	s32 buffer[10] __aligned(8);
 };
 
 enum afe4404_chan_id {
@@ -248,20 +250,20 @@
 			    int *val, int *val2, long mask)
 {
 	struct afe4404_data *afe = iio_priv(indio_dev);
-	unsigned int value_reg = afe4404_channel_values[chan->address];
-	unsigned int led_field = afe4404_channel_leds[chan->address];
-	unsigned int offdac_field = afe4404_channel_offdacs[chan->address];
+	unsigned int value_reg, led_field, offdac_field;
 	int ret;
 
 	switch (chan->type) {
 	case IIO_INTENSITY:
 		switch (mask) {
 		case IIO_CHAN_INFO_RAW:
+			value_reg = afe4404_channel_values[chan->address];
 			ret = regmap_read(afe->regmap, value_reg, val);
 			if (ret)
 				return ret;
 			return IIO_VAL_INT;
 		case IIO_CHAN_INFO_OFFSET:
+			offdac_field = afe4404_channel_offdacs[chan->address];
 			ret = regmap_field_read(afe->fields[offdac_field], val);
 			if (ret)
 				return ret;
@@ -271,6 +273,7 @@
 	case IIO_CURRENT:
 		switch (mask) {
 		case IIO_CHAN_INFO_RAW:
+			led_field = afe4404_channel_leds[chan->address];
 			ret = regmap_field_read(afe->fields[led_field], val);
 			if (ret)
 				return ret;
@@ -293,19 +296,20 @@
 			     int val, int val2, long mask)
 {
 	struct afe4404_data *afe = iio_priv(indio_dev);
-	unsigned int led_field = afe4404_channel_leds[chan->address];
-	unsigned int offdac_field = afe4404_channel_offdacs[chan->address];
+	unsigned int led_field, offdac_field;
 
 	switch (chan->type) {
 	case IIO_INTENSITY:
 		switch (mask) {
 		case IIO_CHAN_INFO_OFFSET:
+			offdac_field = afe4404_channel_offdacs[chan->address];
 			return regmap_field_write(afe->fields[offdac_field], val);
 		}
 		break;
 	case IIO_CURRENT:
 		switch (mask) {
 		case IIO_CHAN_INFO_RAW:
+			led_field = afe4404_channel_leds[chan->address];
 			return regmap_field_write(afe->fields[led_field], val);
 		}
 		break;
@@ -328,17 +332,17 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct afe4404_data *afe = iio_priv(indio_dev);
 	int ret, bit, i = 0;
-	s32 buffer[10];
 
 	for_each_set_bit(bit, indio_dev->active_scan_mask,
 			 indio_dev->masklength) {
 		ret = regmap_read(afe->regmap, afe4404_channel_values[bit],
-				  &buffer[i++]);
+				  &afe->buffer[i++]);
 		if (ret)
 			goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
+					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
 
--- linux-ein-5.4.0.orig/drivers/iio/humidity/am2315.c
+++ linux-ein-5.4.0/drivers/iio/humidity/am2315.c
@@ -33,7 +33,11 @@
 struct am2315_data {
 	struct i2c_client *client;
 	struct mutex lock;
-	s16 buffer[8]; /* 2x16-bit channels + 2x16 padding + 4x16 timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		s16 chans[2];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 struct am2315_sensor_data {
@@ -167,20 +171,20 @@
 
 	mutex_lock(&data->lock);
 	if (*(indio_dev->active_scan_mask) == AM2315_ALL_CHANNEL_MASK) {
-		data->buffer[0] = sensor_data.hum_data;
-		data->buffer[1] = sensor_data.temp_data;
+		data->scan.chans[0] = sensor_data.hum_data;
+		data->scan.chans[1] = sensor_data.temp_data;
 	} else {
 		i = 0;
 		for_each_set_bit(bit, indio_dev->active_scan_mask,
 				 indio_dev->masklength) {
-			data->buffer[i] = (bit ? sensor_data.temp_data :
-						 sensor_data.hum_data);
+			data->scan.chans[i] = (bit ? sensor_data.temp_data :
+					       sensor_data.hum_data);
 			i++;
 		}
 	}
 	mutex_unlock(&data->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/humidity/hdc100x.c
+++ linux-ein-5.4.0/drivers/iio/humidity/hdc100x.c
@@ -24,6 +24,8 @@
 #include <linux/iio/trigger_consumer.h>
 #include <linux/iio/triggered_buffer.h>
 
+#include <linux/time.h>
+
 #define HDC100X_REG_TEMP			0x00
 #define HDC100X_REG_HUMIDITY			0x01
 
@@ -38,6 +40,11 @@
 
 	/* integration time of the sensor */
 	int adc_int_us[2];
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__be16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* integration time in us */
@@ -160,7 +167,7 @@
 				   struct iio_chan_spec const *chan)
 {
 	struct i2c_client *client = data->client;
-	int delay = data->adc_int_us[chan->address];
+	int delay = data->adc_int_us[chan->address] + 1*USEC_PER_MSEC;
 	int ret;
 	__be16 val;
 
@@ -229,7 +236,7 @@
 			*val2 = 65536;
 			return IIO_VAL_FRACTIONAL;
 		} else {
-			*val = 100;
+			*val = 100000;
 			*val2 = 65536;
 			return IIO_VAL_FRACTIONAL;
 		}
@@ -317,9 +324,8 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct hdc100x_data *data = iio_priv(indio_dev);
 	struct i2c_client *client = data->client;
-	int delay = data->adc_int_us[0] + data->adc_int_us[1];
+	int delay = data->adc_int_us[0] + data->adc_int_us[1] + 2*USEC_PER_MSEC;
 	int ret;
-	s16 buf[8];  /* 2x s16 + padding + 8 byte timestamp */
 
 	/* dual read starts at temp register */
 	mutex_lock(&data->lock);
@@ -330,13 +336,13 @@
 	}
 	usleep_range(delay, delay + 1000);
 
-	ret = i2c_master_recv(client, (u8 *)buf, 4);
+	ret = i2c_master_recv(client, (u8 *)data->scan.channels, 4);
 	if (ret < 0) {
 		dev_err(&client->dev, "cannot read sensor data\n");
 		goto err;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 err:
 	mutex_unlock(&data->lock);
--- linux-ein-5.4.0.orig/drivers/iio/humidity/hid-sensor-humidity.c
+++ linux-ein-5.4.0/drivers/iio/humidity/hid-sensor-humidity.c
@@ -17,7 +17,10 @@
 struct hid_humidity_state {
 	struct hid_sensor_common common_attributes;
 	struct hid_sensor_hub_attribute_info humidity_attr;
-	s32 humidity_data;
+	struct {
+		s32 humidity_data;
+		u64 timestamp __aligned(8);
+	} scan;
 	int scale_pre_decml;
 	int scale_post_decml;
 	int scale_precision;
@@ -127,9 +130,8 @@
 	struct hid_humidity_state *humid_st = iio_priv(indio_dev);
 
 	if (atomic_read(&humid_st->common_attributes.data_ready))
-		iio_push_to_buffers_with_timestamp(indio_dev,
-					&humid_st->humidity_data,
-					iio_get_time_ns(indio_dev));
+		iio_push_to_buffers_with_timestamp(indio_dev, &humid_st->scan,
+						   iio_get_time_ns(indio_dev));
 
 	return 0;
 }
@@ -144,7 +146,7 @@
 
 	switch (usage_id) {
 	case HID_USAGE_SENSOR_ATMOSPHERIC_HUMIDITY:
-		humid_st->humidity_data = *(s32 *)raw_data;
+		humid_st->scan.humidity_data = *(s32 *)raw_data;
 
 		return 0;
 	default:
--- linux-ein-5.4.0.orig/drivers/iio/humidity/hts221.h
+++ linux-ein-5.4.0/drivers/iio/humidity/hts221.h
@@ -14,8 +14,6 @@
 
 #include <linux/iio/iio.h>
 
-#define HTS221_DATA_SIZE	2
-
 enum hts221_sensor_type {
 	HTS221_SENSOR_H,
 	HTS221_SENSOR_T,
@@ -39,6 +37,11 @@
 
 	bool enabled;
 	u8 odr;
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__le16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 extern const struct dev_pm_ops hts221_pm_ops;
--- linux-ein-5.4.0.orig/drivers/iio/humidity/hts221_buffer.c
+++ linux-ein-5.4.0/drivers/iio/humidity/hts221_buffer.c
@@ -162,7 +162,6 @@
 
 static irqreturn_t hts221_buffer_handler_thread(int irq, void *p)
 {
-	u8 buffer[ALIGN(2 * HTS221_DATA_SIZE, sizeof(s64)) + sizeof(s64)];
 	struct iio_poll_func *pf = p;
 	struct iio_dev *iio_dev = pf->indio_dev;
 	struct hts221_hw *hw = iio_priv(iio_dev);
@@ -172,18 +171,20 @@
 	/* humidity data */
 	ch = &iio_dev->channels[HTS221_SENSOR_H];
 	err = regmap_bulk_read(hw->regmap, ch->address,
-			       buffer, HTS221_DATA_SIZE);
+			       &hw->scan.channels[0],
+			       sizeof(hw->scan.channels[0]));
 	if (err < 0)
 		goto out;
 
 	/* temperature data */
 	ch = &iio_dev->channels[HTS221_SENSOR_T];
 	err = regmap_bulk_read(hw->regmap, ch->address,
-			       buffer + HTS221_DATA_SIZE, HTS221_DATA_SIZE);
+			       &hw->scan.channels[1],
+			       sizeof(hw->scan.channels[1]));
 	if (err < 0)
 		goto out;
 
-	iio_push_to_buffers_with_timestamp(iio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan,
 					   iio_get_time_ns(iio_dev));
 
 out:
--- linux-ein-5.4.0.orig/drivers/iio/imu/adis16400.c
+++ linux-ein-5.4.0/drivers/iio/imu/adis16400.c
@@ -464,8 +464,7 @@
 		if (ret)
 			goto err_ret;
 
-		ret = sscanf(indio_dev->name, "adis%u\n", &device_id);
-		if (ret != 1) {
+		if (sscanf(indio_dev->name, "adis%u\n", &device_id) != 1) {
 			ret = -EINVAL;
 			goto err_ret;
 		}
@@ -652,9 +651,6 @@
 	void *buffer;
 	int ret;
 
-	if (!adis->buffer)
-		return -ENOMEM;
-
 	if (!(st->variant->flags & ADIS16400_NO_BURST) &&
 		st->adis.spi->max_speed_hz > ADIS16400_SPI_BURST) {
 		st->adis.spi->max_speed_hz = ADIS16400_SPI_BURST;
--- linux-ein-5.4.0.orig/drivers/iio/imu/adis16480.c
+++ linux-ein-5.4.0/drivers/iio/imu/adis16480.c
@@ -454,12 +454,14 @@
 	case IIO_MAGN:
 	case IIO_PRESSURE:
 		ret = adis_read_reg_16(&st->adis, reg, &val16);
-		*bias = sign_extend32(val16, 15);
+		if (ret == 0)
+			*bias = sign_extend32(val16, 15);
 		break;
 	case IIO_ANGL_VEL:
 	case IIO_ACCEL:
 		ret = adis_read_reg_32(&st->adis, reg, &val32);
-		*bias = sign_extend32(val32, 31);
+		if (ret == 0)
+			*bias = sign_extend32(val32, 31);
 		break;
 	default:
 			ret = -EINVAL;
@@ -623,9 +625,13 @@
 			*val2 = (st->chip_info->temp_scale % 1000) * 1000;
 			return IIO_VAL_INT_PLUS_MICRO;
 		case IIO_PRESSURE:
-			*val = 0;
-			*val2 = 4000; /* 40ubar = 0.004 kPa */
-			return IIO_VAL_INT_PLUS_MICRO;
+			/*
+			 * max scale is 1310 mbar
+			 * max raw value is 32767 shifted for 32bits
+			 */
+			*val = 131; /* 1310mbar = 131 kPa */
+			*val2 = 32767 << 16;
+			return IIO_VAL_FRACTIONAL;
 		default:
 			return -EINVAL;
 		}
@@ -786,13 +792,14 @@
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
 		/*
-		 * storing the value in rad/degree and the scale in degree
-		 * gives us the result in rad and better precession than
-		 * storing the scale directly in rad.
+		 * Typically we do IIO_RAD_TO_DEGREE in the denominator, which
+		 * is exactly the same as IIO_DEGREE_TO_RAD in numerator, since
+		 * it gives better approximation. However, in this case we
+		 * cannot do it since it would not fit in a 32bit variable.
 		 */
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22887),
-		.gyro_max_scale = 300,
-		.accel_max_val = IIO_M_S_2_TO_G(21973),
+		.gyro_max_val = 22887 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(300),
+		.accel_max_val = IIO_M_S_2_TO_G(21973 << 16),
 		.accel_max_scale = 18,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -802,9 +809,9 @@
 	[ADIS16480] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(12500),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(12500 << 16),
 		.accel_max_scale = 10,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -814,9 +821,9 @@
 	[ADIS16485] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(20000),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
 		.accel_max_scale = 5,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -826,9 +833,9 @@
 	[ADIS16488] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(22500),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(22500),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(22500 << 16),
 		.accel_max_scale = 18,
 		.temp_scale = 5650, /* 5.65 milli degree Celsius */
 		.int_clk = 2460000,
@@ -838,9 +845,9 @@
 	[ADIS16495_1] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 125,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -851,9 +858,9 @@
 	[ADIS16495_2] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 18000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -864,9 +871,9 @@
 	[ADIS16495_3] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 2000,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 8,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -877,9 +884,9 @@
 	[ADIS16497_1] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 125,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(125),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -890,9 +897,9 @@
 	[ADIS16497_2] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(18000),
-		.gyro_max_scale = 450,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 18000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -903,9 +910,9 @@
 	[ADIS16497_3] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
-		.gyro_max_val = IIO_RAD_TO_DEGREE(20000),
-		.gyro_max_scale = 2000,
-		.accel_max_val = IIO_M_S_2_TO_G(32000),
+		.gyro_max_val = 20000 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(2000),
+		.accel_max_val = IIO_M_S_2_TO_G(32000 << 16),
 		.accel_max_scale = 40,
 		.temp_scale = 12500, /* 12.5 milli degree Celsius */
 		.int_clk = 4250000,
@@ -919,6 +926,7 @@
 	.read_raw = &adis16480_read_raw,
 	.write_raw = &adis16480_write_raw,
 	.update_scan_mode = adis_update_scan_mode,
+	.debugfs_reg_access = adis_debugfs_reg_access,
 };
 
 static int adis16480_stop_device(struct iio_dev *indio_dev)
--- linux-ein-5.4.0.orig/drivers/iio/imu/adis_buffer.c
+++ linux-ein-5.4.0/drivers/iio/imu/adis_buffer.c
@@ -125,9 +125,6 @@
 	struct adis *adis = iio_device_get_drvdata(indio_dev);
 	int ret;
 
-	if (!adis->buffer)
-		return -ENOMEM;
-
 	if (adis->data->has_paging) {
 		mutex_lock(&adis->txrx_lock);
 		if (adis->current_page != 0) {
--- linux-ein-5.4.0.orig/drivers/iio/imu/bmi160/bmi160.h
+++ linux-ein-5.4.0/drivers/iio/imu/bmi160/bmi160.h
@@ -7,6 +7,13 @@
 struct bmi160_data {
 	struct regmap *regmap;
 	struct iio_trigger *trig;
+	/*
+	 * Ensure natural alignment for timestamp if present.
+	 * Max length needed: 2 * 3 channels + 4 bytes padding + 8 byte ts.
+	 * If fewer channels are enabled, less space may be needed, as
+	 * long as the timestamp is still aligned to 8 bytes.
+	 */
+	__le16 buf[12] __aligned(8);
 };
 
 extern const struct regmap_config bmi160_regmap_config;
--- linux-ein-5.4.0.orig/drivers/iio/imu/bmi160/bmi160_core.c
+++ linux-ein-5.4.0/drivers/iio/imu/bmi160/bmi160_core.c
@@ -411,8 +411,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct bmi160_data *data = iio_priv(indio_dev);
-	__le16 buf[16];
-	/* 3 sens x 3 axis x __le16 + 3 x __le16 pad + 4 x __le16 tstamp */
 	int i, ret, j = 0, base = BMI160_REG_DATA_MAGN_XOUT_L;
 	__le16 sample;
 
@@ -422,10 +420,10 @@
 				       &sample, sizeof(sample));
 		if (ret)
 			goto done;
-		buf[j++] = sample;
+		data->buf[j++] = sample;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buf, pf->timestamp);
 done:
 	iio_trigger_notify_done(indio_dev->trig);
 	return IRQ_HANDLED;
--- linux-ein-5.4.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ linux-ein-5.4.0/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -115,6 +115,7 @@
 		.reg = &reg_set_6050,
 		.config = &chip_config_6050,
 		.fifo_size = 1024,
+		.temp = {INV_MPU6050_TEMP_OFFSET, INV_MPU6050_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU6500_WHOAMI_VALUE,
@@ -122,6 +123,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU6515_WHOAMI_VALUE,
@@ -129,6 +131,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU6000_WHOAMI_VALUE,
@@ -136,6 +139,7 @@
 		.reg = &reg_set_6050,
 		.config = &chip_config_6050,
 		.fifo_size = 1024,
+		.temp = {INV_MPU6050_TEMP_OFFSET, INV_MPU6050_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU9150_WHOAMI_VALUE,
@@ -143,6 +147,7 @@
 		.reg = &reg_set_6050,
 		.config = &chip_config_6050,
 		.fifo_size = 1024,
+		.temp = {INV_MPU6050_TEMP_OFFSET, INV_MPU6050_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU9250_WHOAMI_VALUE,
@@ -150,6 +155,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_MPU9255_WHOAMI_VALUE,
@@ -157,6 +163,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_MPU6500_TEMP_OFFSET, INV_MPU6500_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_ICM20608_WHOAMI_VALUE,
@@ -164,6 +171,7 @@
 		.reg = &reg_set_6500,
 		.config = &chip_config_6050,
 		.fifo_size = 512,
+		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
 	},
 	{
 		.whoami = INV_ICM20602_WHOAMI_VALUE,
@@ -171,6 +179,7 @@
 		.reg = &reg_set_icm20602,
 		.config = &chip_config_6050,
 		.fifo_size = 1008,
+		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
 	},
 };
 
@@ -471,12 +480,8 @@
 
 			return IIO_VAL_INT_PLUS_MICRO;
 		case IIO_TEMP:
-			*val = 0;
-			if (st->chip_type == INV_ICM20602)
-				*val2 = INV_ICM20602_TEMP_SCALE;
-			else
-				*val2 = INV_MPU6050_TEMP_SCALE;
-
+			*val = st->hw->temp.scale / 1000000;
+			*val2 = st->hw->temp.scale % 1000000;
 			return IIO_VAL_INT_PLUS_MICRO;
 		default:
 			return -EINVAL;
@@ -484,11 +489,7 @@
 	case IIO_CHAN_INFO_OFFSET:
 		switch (chan->type) {
 		case IIO_TEMP:
-			if (st->chip_type == INV_ICM20602)
-				*val = INV_ICM20602_TEMP_OFFSET;
-			else
-				*val = INV_MPU6050_TEMP_OFFSET;
-
+			*val = st->hw->temp.offset;
 			return IIO_VAL_INT;
 		default:
 			return -EINVAL;
--- linux-ein-5.4.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+++ linux-ein-5.4.0/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
@@ -101,6 +101,7 @@
  *  @reg:   register map of the chip.
  *  @config:    configuration of the chip.
  *  @fifo_size:	size of the FIFO in bytes.
+ *  @temp:	offset and scale to apply to raw temperature.
  */
 struct inv_mpu6050_hw {
 	u8 whoami;
@@ -108,6 +109,10 @@
 	const struct inv_mpu6050_reg_map *reg;
 	const struct inv_mpu6050_chip_config *config;
 	size_t fifo_size;
+	struct {
+		int offset;
+		int scale;
+	} temp;
 };
 
 /*
@@ -218,16 +223,19 @@
 #define INV_MPU6050_REG_UP_TIME_MIN          5000
 #define INV_MPU6050_REG_UP_TIME_MAX          10000
 
-#define INV_MPU6050_TEMP_OFFSET	             12421
-#define INV_MPU6050_TEMP_SCALE               2941
+#define INV_MPU6050_TEMP_OFFSET	             12420
+#define INV_MPU6050_TEMP_SCALE               2941176
 #define INV_MPU6050_MAX_GYRO_FS_PARAM        3
 #define INV_MPU6050_MAX_ACCL_FS_PARAM        3
 #define INV_MPU6050_THREE_AXIS               3
 #define INV_MPU6050_GYRO_CONFIG_FSR_SHIFT    3
 #define INV_MPU6050_ACCL_CONFIG_FSR_SHIFT    3
 
-#define INV_ICM20602_TEMP_OFFSET	     8170
-#define INV_ICM20602_TEMP_SCALE		     3060
+#define INV_MPU6500_TEMP_OFFSET              7011
+#define INV_MPU6500_TEMP_SCALE               2995178
+
+#define INV_ICM20608_TEMP_OFFSET	     8170
+#define INV_ICM20608_TEMP_SCALE		     3059976
 
 /* 6 + 6 round up and plus 8 */
 #define INV_MPU6050_OUTPUT_DATA_SIZE         24
--- linux-ein-5.4.0.orig/drivers/iio/imu/kmx61.c
+++ linux-ein-5.4.0/drivers/iio/imu/kmx61.c
@@ -1393,7 +1393,7 @@
 	ret = iio_device_register(data->acc_indio_dev);
 	if (ret < 0) {
 		dev_err(&client->dev, "Failed to register acc iio device\n");
-		goto err_buffer_cleanup_mag;
+		goto err_pm_cleanup;
 	}
 
 	ret = iio_device_register(data->mag_indio_dev);
@@ -1406,6 +1406,9 @@
 
 err_iio_unregister_acc:
 	iio_device_unregister(data->acc_indio_dev);
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(&client->dev);
+	pm_runtime_disable(&client->dev);
 err_buffer_cleanup_mag:
 	if (client->irq > 0)
 		iio_triggered_buffer_cleanup(data->mag_indio_dev);
--- linux-ein-5.4.0.orig/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c
+++ linux-ein-5.4.0/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c
@@ -664,13 +664,29 @@
 static irqreturn_t st_lsm6dsx_handler_thread(int irq, void *private)
 {
 	struct st_lsm6dsx_hw *hw = private;
-	int count;
+	int fifo_len = 0, len;
 
-	mutex_lock(&hw->fifo_lock);
-	count = hw->settings->fifo_ops.read_fifo(hw);
-	mutex_unlock(&hw->fifo_lock);
+	/*
+	 * If we are using edge IRQs, new samples can arrive while
+	 * processing current interrupt since there are no hw
+	 * guarantees the irq line stays "low" long enough to properly
+	 * detect the new interrupt. In this case the new sample will
+	 * be missed.
+	 * Polling FIFO status register allow us to read new
+	 * samples even if the interrupt arrives while processing
+	 * previous data and the timeslot where the line is "low" is
+	 * too short to be properly detected.
+	 */
+	do {
+		mutex_lock(&hw->fifo_lock);
+		len = hw->settings->fifo_ops.read_fifo(hw);
+		mutex_unlock(&hw->fifo_lock);
 
-	return count ? IRQ_HANDLED : IRQ_NONE;
+		if (len > 0)
+			fifo_len += len;
+	} while (len > 0);
+
+	return fifo_len ? IRQ_HANDLED : IRQ_NONE;
 }
 
 static int st_lsm6dsx_buffer_preenable(struct iio_dev *iio_dev)
--- linux-ein-5.4.0.orig/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ linux-ein-5.4.0/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -152,9 +152,10 @@
 					.addr = 0x10,
 					.mask = GENMASK(4, 3),
 				},
-				.fs_avl[0] = {  IIO_DEGREE_TO_RAD(245), 0x0 },
-				.fs_avl[1] = {  IIO_DEGREE_TO_RAD(500), 0x1 },
-				.fs_avl[2] = { IIO_DEGREE_TO_RAD(2000), 0x3 },
+
+				.fs_avl[0] = {  IIO_DEGREE_TO_RAD(8750), 0x0 },
+				.fs_avl[1] = { IIO_DEGREE_TO_RAD(17500), 0x1 },
+				.fs_avl[2] = { IIO_DEGREE_TO_RAD(70000), 0x3 },
 				.fs_len = 3,
 			},
 		},
@@ -910,7 +911,8 @@
 
 	for (i = 0; i < ARRAY_SIZE(st_lsm6dsx_sensor_settings); i++) {
 		for (j = 0; j < ST_LSM6DSX_MAX_ID; j++) {
-			if (id == st_lsm6dsx_sensor_settings[i].id[j].hw_id)
+			if (st_lsm6dsx_sensor_settings[i].id[j].name &&
+			    id == st_lsm6dsx_sensor_settings[i].id[j].hw_id)
 				break;
 		}
 		if (j < ST_LSM6DSX_MAX_ID)
@@ -985,8 +987,7 @@
 		return -EINVAL;
 
 	*val = odr_table->odr_avl[i].val;
-
-	return 0;
+	return odr_table->odr_avl[i].hz;
 }
 
 static u16 st_lsm6dsx_check_odr_dependency(struct st_lsm6dsx_hw *hw, u16 odr,
@@ -1014,6 +1015,8 @@
 	int err;
 
 	switch (sensor->id) {
+	case ST_LSM6DSX_ID_GYRO:
+		break;
 	case ST_LSM6DSX_ID_EXT0:
 	case ST_LSM6DSX_ID_EXT1:
 	case ST_LSM6DSX_ID_EXT2:
@@ -1039,8 +1042,8 @@
 		}
 		break;
 	}
-	default:
-		break;
+	default: /* should never occur */
+		return -EINVAL;
 	}
 
 	if (req_odr > 0) {
@@ -1149,8 +1152,10 @@
 	case IIO_CHAN_INFO_SAMP_FREQ: {
 		u8 data;
 
-		err = st_lsm6dsx_check_odr(sensor, val, &data);
-		if (!err)
+		val = st_lsm6dsx_check_odr(sensor, val, &data);
+		if (val < 0)
+			err = val;
+		else
 			sensor->odr = val;
 		break;
 	}
--- linux-ein-5.4.0.orig/drivers/iio/industrialio-buffer.c
+++ linux-ein-5.4.0/drivers/iio/industrialio-buffer.c
@@ -566,7 +566,7 @@
 				const unsigned long *mask, bool timestamp)
 {
 	unsigned bytes = 0;
-	int length, i;
+	int length, i, largest = 0;
 
 	/* How much space will the demuxed element take? */
 	for_each_set_bit(i, mask,
@@ -574,13 +574,17 @@
 		length = iio_storage_bytes_for_si(indio_dev, i);
 		bytes = ALIGN(bytes, length);
 		bytes += length;
+		largest = max(largest, length);
 	}
 
 	if (timestamp) {
 		length = iio_storage_bytes_for_timestamp(indio_dev);
 		bytes = ALIGN(bytes, length);
 		bytes += length;
+		largest = max(largest, length);
 	}
+
+	bytes = ALIGN(bytes, largest);
 	return bytes;
 }
 
@@ -841,12 +845,12 @@
 				       indio_dev->masklength,
 				       in_ind + 1);
 		while (in_ind != out_ind) {
-			in_ind = find_next_bit(indio_dev->active_scan_mask,
-					       indio_dev->masklength,
-					       in_ind + 1);
 			length = iio_storage_bytes_for_si(indio_dev, in_ind);
 			/* Make sure we are aligned */
 			in_loc = roundup(in_loc, length) + length;
+			in_ind = find_next_bit(indio_dev->active_scan_mask,
+					       indio_dev->masklength,
+					       in_ind + 1);
 		}
 		length = iio_storage_bytes_for_si(indio_dev, in_ind);
 		out_loc = roundup(out_loc, length);
--- linux-ein-5.4.0.orig/drivers/iio/industrialio-core.c
+++ linux-ein-5.4.0/drivers/iio/industrialio-core.c
@@ -130,6 +130,8 @@
 	[IIO_MOD_PM2P5] = "pm2p5",
 	[IIO_MOD_PM4] = "pm4",
 	[IIO_MOD_PM10] = "pm10",
+	[IIO_MOD_ETHANOL] = "ethanol",
+	[IIO_MOD_H2] = "h2",
 };
 
 /* relies on pairs of these shared then separate */
--- linux-ein-5.4.0.orig/drivers/iio/industrialio-sw-trigger.c
+++ linux-ein-5.4.0/drivers/iio/industrialio-sw-trigger.c
@@ -58,8 +58,12 @@
 
 	t->group = configfs_register_default_group(iio_triggers_group, t->name,
 						&iio_trigger_type_group_type);
-	if (IS_ERR(t->group))
+	if (IS_ERR(t->group)) {
+		mutex_lock(&iio_trigger_types_lock);
+		list_del(&t->list);
+		mutex_unlock(&iio_trigger_types_lock);
 		ret = PTR_ERR(t->group);
+	}
 
 	return ret;
 }
--- linux-ein-5.4.0.orig/drivers/iio/industrialio-trigger.c
+++ linux-ein-5.4.0/drivers/iio/industrialio-trigger.c
@@ -549,7 +549,6 @@
 		irq_modify_status(trig->subirq_base + i,
 				  IRQ_NOREQUEST | IRQ_NOAUTOEN, IRQ_NOPROBE);
 	}
-	get_device(&trig->dev);
 
 	return trig;
 
--- linux-ein-5.4.0.orig/drivers/iio/inkern.c
+++ linux-ein-5.4.0/drivers/iio/inkern.c
@@ -136,9 +136,10 @@
 
 	idev = bus_find_device(&iio_bus_type, NULL, iiospec.np,
 			       iio_dev_node_match);
-	of_node_put(iiospec.np);
-	if (idev == NULL)
+	if (idev == NULL) {
+		of_node_put(iiospec.np);
 		return -EPROBE_DEFER;
+	}
 
 	indio_dev = dev_to_iio_dev(idev);
 	channel->indio_dev = indio_dev;
@@ -146,6 +147,7 @@
 		index = indio_dev->info->of_xlate(indio_dev, &iiospec);
 	else
 		index = __of_iio_simple_xlate(indio_dev, &iiospec);
+	of_node_put(iiospec.np);
 	if (index < 0)
 		goto err_put;
 	channel->channel = &indio_dev->channels[index];
@@ -588,28 +590,50 @@
 static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
 	int raw, int *processed, unsigned int scale)
 {
-	int scale_type, scale_val, scale_val2, offset;
+	int scale_type, scale_val, scale_val2;
+	int offset_type, offset_val, offset_val2;
 	s64 raw64 = raw;
-	int ret;
 
-	ret = iio_channel_read(chan, &offset, NULL, IIO_CHAN_INFO_OFFSET);
-	if (ret >= 0)
-		raw64 += offset;
+	offset_type = iio_channel_read(chan, &offset_val, &offset_val2,
+				       IIO_CHAN_INFO_OFFSET);
+	if (offset_type >= 0) {
+		switch (offset_type) {
+		case IIO_VAL_INT:
+			break;
+		case IIO_VAL_INT_PLUS_MICRO:
+		case IIO_VAL_INT_PLUS_NANO:
+			/*
+			 * Both IIO_VAL_INT_PLUS_MICRO and IIO_VAL_INT_PLUS_NANO
+			 * implicitely truncate the offset to it's integer form.
+			 */
+			break;
+		case IIO_VAL_FRACTIONAL:
+			offset_val /= offset_val2;
+			break;
+		case IIO_VAL_FRACTIONAL_LOG2:
+			offset_val >>= offset_val2;
+			break;
+		default:
+			return -EINVAL;
+		}
+
+		raw64 += offset_val;
+	}
 
 	scale_type = iio_channel_read(chan, &scale_val, &scale_val2,
 					IIO_CHAN_INFO_SCALE);
 	if (scale_type < 0) {
 		/*
-		 * Just pass raw values as processed if no scaling is
-		 * available.
+		 * If no channel scaling is available apply consumer scale to
+		 * raw value and return.
 		 */
-		*processed = raw;
+		*processed = raw * scale;
 		return 0;
 	}
 
 	switch (scale_type) {
 	case IIO_VAL_INT:
-		*processed = raw64 * scale_val;
+		*processed = raw64 * scale_val * scale;
 		break;
 	case IIO_VAL_INT_PLUS_MICRO:
 		if (scale_val2 < 0)
--- linux-ein-5.4.0.orig/drivers/iio/light/Kconfig
+++ linux-ein-5.4.0/drivers/iio/light/Kconfig
@@ -239,6 +239,8 @@
 	tristate "ROHM RPR0521 ALS and proximity sensor driver"
 	depends on I2C
 	select REGMAP_I2C
+	select IIO_BUFFER
+	select IIO_TRIGGERED_BUFFER
 	help
 	  Say Y here if you want to build support for ROHM's RPR0521
 	  ambient light and proximity sensor device.
@@ -485,6 +487,7 @@
 
 config VCNL4035
 	tristate "VCNL4035 combined ALS and proximity sensor"
+	select IIO_BUFFER
 	select IIO_TRIGGERED_BUFFER
 	select REGMAP_I2C
 	depends on I2C
--- linux-ein-5.4.0.orig/drivers/iio/light/apds9960.c
+++ linux-ein-5.4.0/drivers/iio/light/apds9960.c
@@ -55,9 +55,6 @@
 #define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT	2
 
 #define APDS9960_REG_CONFIG_2	0x90
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK	0x60
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT	5
-
 #define APDS9960_REG_ID		0x92
 
 #define APDS9960_REG_STATUS	0x93
@@ -78,6 +75,9 @@
 #define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT	6
 
 #define APDS9960_REG_GCONF_2	0xa3
+#define APDS9960_REG_GCONF_2_GGAIN_MASK			0x60
+#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT		5
+
 #define APDS9960_REG_GOFFSET_U	0xa4
 #define APDS9960_REG_GOFFSET_D	0xa5
 #define APDS9960_REG_GPULSE	0xa6
@@ -397,9 +397,9 @@
 			}
 
 			ret = regmap_update_bits(data->regmap,
-				APDS9960_REG_CONFIG_2,
-				APDS9960_REG_CONFIG_2_GGAIN_MASK,
-				idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT);
+				APDS9960_REG_GCONF_2,
+				APDS9960_REG_GCONF_2_GGAIN_MASK,
+				idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT);
 			if (!ret)
 				data->pxs_gain = idx;
 			mutex_unlock(&data->lock);
--- linux-ein-5.4.0.orig/drivers/iio/light/bh1750.c
+++ linux-ein-5.4.0/drivers/iio/light/bh1750.c
@@ -59,9 +59,9 @@
 
 	u16 int_time_low_mask;
 	u16 int_time_high_mask;
-}
+};
 
-static const bh1750_chip_info_tbl[] = {
+static const struct bh1750_chip_info bh1750_chip_info_tbl[] = {
 	[BH1710] = { 140, 1022, 300, 400,  250000000, 2, 0x001F, 0x03E0 },
 	[BH1721] = { 140, 1020, 300, 400,  250000000, 2, 0x0010, 0x03E0 },
 	[BH1750] = { 31,  254,  69,  1740, 57500000,  1, 0x001F, 0x00E0 },
--- linux-ein-5.4.0.orig/drivers/iio/light/hid-sensor-prox.c
+++ linux-ein-5.4.0/drivers/iio/light/hid-sensor-prox.c
@@ -25,6 +25,9 @@
 	struct hid_sensor_common common_attributes;
 	struct hid_sensor_hub_attribute_info prox_attr;
 	u32 human_presence;
+	int scale_pre_decml;
+	int scale_post_decml;
+	int scale_precision;
 };
 
 /* Channel definitions */
@@ -95,8 +98,9 @@
 		ret_type = IIO_VAL_INT;
 		break;
 	case IIO_CHAN_INFO_SCALE:
-		*val = prox_state->prox_attr.units;
-		ret_type = IIO_VAL_INT;
+		*val = prox_state->scale_pre_decml;
+		*val2 = prox_state->scale_post_decml;
+		ret_type = prox_state->scale_precision;
 		break;
 	case IIO_CHAN_INFO_OFFSET:
 		*val = hid_sensor_convert_exponent(
@@ -236,6 +240,11 @@
 			HID_USAGE_SENSOR_HUMAN_PRESENCE,
 			&st->common_attributes.sensitivity);
 
+	st->scale_precision = hid_sensor_format_scale(
+				hsdev->usage,
+				&st->prox_attr,
+				&st->scale_pre_decml, &st->scale_post_decml);
+
 	return ret;
 }
 
--- linux-ein-5.4.0.orig/drivers/iio/light/isl29028.c
+++ linux-ein-5.4.0/drivers/iio/light/isl29028.c
@@ -628,7 +628,7 @@
 					 ISL29028_POWER_OFF_DELAY_MS);
 	pm_runtime_use_autosuspend(&client->dev);
 
-	ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev);
+	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(&client->dev,
 			"%s(): iio registration failed with error %d\n",
--- linux-ein-5.4.0.orig/drivers/iio/light/isl29125.c
+++ linux-ein-5.4.0/drivers/iio/light/isl29125.c
@@ -51,7 +51,11 @@
 struct isl29125_data {
 	struct i2c_client *client;
 	u8 conf1;
-	u16 buffer[8]; /* 3x 16-bit, padding, 8 bytes timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u16 chans[3];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 #define ISL29125_CHANNEL(_color, _si) { \
@@ -184,10 +188,10 @@
 		if (ret < 0)
 			goto done;
 
-		data->buffer[j++] = ret;
+		data->scan.chans[j++] = ret;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 		iio_get_time_ns(indio_dev));
 
 done:
--- linux-ein-5.4.0.orig/drivers/iio/light/ltr501.c
+++ linux-ein-5.4.0/drivers/iio/light/ltr501.c
@@ -32,9 +32,12 @@
 #define LTR501_PART_ID 0x86
 #define LTR501_MANUFAC_ID 0x87
 #define LTR501_ALS_DATA1 0x88 /* 16-bit, little endian */
+#define LTR501_ALS_DATA1_UPPER 0x89 /* upper 8 bits of LTR501_ALS_DATA1 */
 #define LTR501_ALS_DATA0 0x8a /* 16-bit, little endian */
+#define LTR501_ALS_DATA0_UPPER 0x8b /* upper 8 bits of LTR501_ALS_DATA0 */
 #define LTR501_ALS_PS_STATUS 0x8c
 #define LTR501_PS_DATA 0x8d /* 16-bit, little endian */
+#define LTR501_PS_DATA_UPPER 0x8e /* upper 8 bits of LTR501_PS_DATA */
 #define LTR501_INTR 0x8f /* output mode, polarity, mode */
 #define LTR501_PS_THRESH_UP 0x90 /* 11 bit, ps upper threshold */
 #define LTR501_PS_THRESH_LOW 0x92 /* 11 bit, ps lower threshold */
@@ -405,18 +408,19 @@
 
 static int ltr501_read_ps(struct ltr501_data *data)
 {
-	int ret, status;
+	__le16 status;
+	int ret;
 
 	ret = ltr501_drdy(data, LTR501_STATUS_PS_RDY);
 	if (ret < 0)
 		return ret;
 
 	ret = regmap_bulk_read(data->regmap, LTR501_PS_DATA,
-			       &status, 2);
+			       &status, sizeof(status));
 	if (ret < 0)
 		return ret;
 
-	return status;
+	return le16_to_cpu(status);
 }
 
 static int ltr501_read_intr_prst(struct ltr501_data *data,
@@ -1204,7 +1208,7 @@
 		.als_gain_tbl_size = ARRAY_SIZE(ltr559_als_gain_tbl),
 		.ps_gain = ltr559_ps_gain_tbl,
 		.ps_gain_tbl_size = ARRAY_SIZE(ltr559_ps_gain_tbl),
-		.als_mode_active = BIT(1),
+		.als_mode_active = BIT(0),
 		.als_gain_mask = BIT(2) | BIT(3) | BIT(4),
 		.als_gain_shift = 2,
 		.info = &ltr501_info,
@@ -1242,13 +1246,16 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ltr501_data *data = iio_priv(indio_dev);
-	u16 buf[8];
+	struct {
+		u16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 	__le16 als_buf[2];
 	u8 mask = 0;
 	int j = 0;
 	int ret, psdata;
 
-	memset(buf, 0, sizeof(buf));
+	memset(&scan, 0, sizeof(scan));
 
 	/* figure out which data needs to be ready */
 	if (test_bit(0, indio_dev->active_scan_mask) ||
@@ -1265,11 +1272,11 @@
 		ret = regmap_bulk_read(data->regmap, LTR501_ALS_DATA1,
 				       (u8 *)als_buf, sizeof(als_buf));
 		if (ret < 0)
-			return ret;
+			goto done;
 		if (test_bit(0, indio_dev->active_scan_mask))
-			buf[j++] = le16_to_cpu(als_buf[1]);
+			scan.channels[j++] = le16_to_cpu(als_buf[1]);
 		if (test_bit(1, indio_dev->active_scan_mask))
-			buf[j++] = le16_to_cpu(als_buf[0]);
+			scan.channels[j++] = le16_to_cpu(als_buf[0]);
 	}
 
 	if (mask & LTR501_STATUS_PS_RDY) {
@@ -1277,10 +1284,10 @@
 				       &psdata, 2);
 		if (ret < 0)
 			goto done;
-		buf[j++] = psdata & LTR501_PS_DATA_MASK;
+		scan.channels[j++] = psdata & LTR501_PS_DATA_MASK;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 
 done:
@@ -1350,9 +1357,12 @@
 {
 	switch (reg) {
 	case LTR501_ALS_DATA1:
+	case LTR501_ALS_DATA1_UPPER:
 	case LTR501_ALS_DATA0:
+	case LTR501_ALS_DATA0_UPPER:
 	case LTR501_ALS_PS_STATUS:
 	case LTR501_PS_DATA:
+	case LTR501_PS_DATA_UPPER:
 		return true;
 	default:
 		return false;
--- linux-ein-5.4.0.orig/drivers/iio/light/max44000.c
+++ linux-ein-5.4.0/drivers/iio/light/max44000.c
@@ -75,6 +75,11 @@
 struct max44000_data {
 	struct mutex lock;
 	struct regmap *regmap;
+	/* Ensure naturally aligned timestamp */
+	struct {
+		u16 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* Default scale is set to the minimum of 0.03125 or 1 / (1 << 5) lux */
@@ -488,7 +493,6 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct max44000_data *data = iio_priv(indio_dev);
-	u16 buf[8]; /* 2x u16 + padding + 8 bytes timestamp */
 	int index = 0;
 	unsigned int regval;
 	int ret;
@@ -498,17 +502,17 @@
 		ret = max44000_read_alsval(data);
 		if (ret < 0)
 			goto out_unlock;
-		buf[index++] = ret;
+		data->scan.channels[index++] = ret;
 	}
 	if (test_bit(MAX44000_SCAN_INDEX_PRX, indio_dev->active_scan_mask)) {
 		ret = regmap_read(data->regmap, MAX44000_REG_PRX_DATA, &regval);
 		if (ret < 0)
 			goto out_unlock;
-		buf[index] = regval;
+		data->scan.channels[index] = regval;
 	}
 	mutex_unlock(&data->lock);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 	iio_trigger_notify_done(indio_dev->trig);
 	return IRQ_HANDLED;
--- linux-ein-5.4.0.orig/drivers/iio/light/max44009.c
+++ linux-ein-5.4.0/drivers/iio/light/max44009.c
@@ -529,6 +529,12 @@
 	return devm_iio_device_register(&client->dev, indio_dev);
 }
 
+static const struct of_device_id max44009_of_match[] = {
+	{ .compatible = "maxim,max44009" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, max44009_of_match);
+
 static const struct i2c_device_id max44009_id[] = {
 	{ "max44009", 0 },
 	{ }
@@ -538,18 +544,13 @@
 static struct i2c_driver max44009_driver = {
 	.driver = {
 		.name = MAX44009_DRV_NAME,
+		.of_match_table = max44009_of_match,
 	},
 	.probe = max44009_probe,
 	.id_table = max44009_id,
 };
 module_i2c_driver(max44009_driver);
 
-static const struct of_device_id max44009_of_match[] = {
-	{ .compatible = "maxim,max44009" },
-	{ }
-};
-MODULE_DEVICE_TABLE(of, max44009_of_match);
-
 MODULE_AUTHOR("Robert Eshleman <bobbyeshleman@gmail.com>");
 MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("MAX44009 ambient light sensor driver");
--- linux-ein-5.4.0.orig/drivers/iio/light/opt3001.c
+++ linux-ein-5.4.0/drivers/iio/light/opt3001.c
@@ -275,6 +275,8 @@
 		ret = wait_event_timeout(opt->result_ready_queue,
 				opt->result_ready,
 				msecs_to_jiffies(OPT3001_RESULT_READY_LONG));
+		if (ret == 0)
+			return -ETIMEDOUT;
 	} else {
 		/* Sleep for result ready time */
 		timeout = (opt->int_time == OPT3001_INT_TIME_SHORT) ?
@@ -311,9 +313,7 @@
 		/* Disallow IRQ to access the device while lock is active */
 		opt->ok_to_ignore_lock = false;
 
-	if (ret == 0)
-		return -ETIMEDOUT;
-	else if (ret < 0)
+	if (ret < 0)
 		return ret;
 
 	if (opt->use_irq) {
--- linux-ein-5.4.0.orig/drivers/iio/light/rpr0521.c
+++ linux-ein-5.4.0/drivers/iio/light/rpr0521.c
@@ -194,6 +194,17 @@
 	bool pxs_need_dis;
 
 	struct regmap *regmap;
+
+	/*
+	 * Ensure correct naturally aligned timestamp.
+	 * Note that the read will put garbage data into
+	 * the padding but this should not be a problem
+	 */
+	struct {
+		__le16 channels[3];
+		u8 garbage;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static IIO_CONST_ATTR(in_intensity_scale_available, RPR0521_ALS_SCALE_AVAIL);
@@ -449,8 +460,6 @@
 	struct rpr0521_data *data = iio_priv(indio_dev);
 	int err;
 
-	u8 buffer[16]; /* 3 16-bit channels + padding + ts */
-
 	/* Use irq timestamp when reasonable. */
 	if (iio_trigger_using_own(indio_dev) && data->irq_timestamp) {
 		pf->timestamp = data->irq_timestamp;
@@ -461,11 +470,11 @@
 		pf->timestamp = iio_get_time_ns(indio_dev);
 
 	err = regmap_bulk_read(data->regmap, RPR0521_REG_PXS_DATA,
-		&buffer,
+		data->scan.channels,
 		(3 * 2) + 1);	/* 3 * 16-bit + (discarded) int clear reg. */
 	if (!err)
 		iio_push_to_buffers_with_timestamp(indio_dev,
-						   buffer, pf->timestamp);
+						   &data->scan, pf->timestamp);
 	else
 		dev_err(&data->client->dev,
 			"Trigger consumer can't read from sensor.\n");
--- linux-ein-5.4.0.orig/drivers/iio/light/si1133.c
+++ linux-ein-5.4.0/drivers/iio/light/si1133.c
@@ -102,6 +102,9 @@
 #define SI1133_INPUT_FRACTION_LOW	15
 #define SI1133_LUX_OUTPUT_FRACTION	12
 #define SI1133_LUX_BUFFER_SIZE		9
+#define SI1133_MEASURE_BUFFER_SIZE	3
+
+#define SI1133_SIGN_BIT_INDEX 23
 
 static const int si1133_scale_available[] = {
 	1, 2, 4, 8, 16, 32, 64, 128};
@@ -234,13 +237,13 @@
 	}
 };
 
-static int si1133_calculate_polynomial_inner(u32 input, u8 fraction, u16 mag,
+static int si1133_calculate_polynomial_inner(s32 input, u8 fraction, u16 mag,
 					     s8 shift)
 {
 	return ((input << fraction) / mag) << shift;
 }
 
-static int si1133_calculate_output(u32 x, u32 y, u8 x_order, u8 y_order,
+static int si1133_calculate_output(s32 x, s32 y, u8 x_order, u8 y_order,
 				   u8 input_fraction, s8 sign,
 				   const struct si1133_coeff *coeffs)
 {
@@ -276,7 +279,7 @@
  * The algorithm is from:
  * https://siliconlabs.github.io/Gecko_SDK_Doc/efm32zg/html/si1133_8c_source.html#l00716
  */
-static int si1133_calc_polynomial(u32 x, u32 y, u8 input_fraction, u8 num_coeff,
+static int si1133_calc_polynomial(s32 x, s32 y, u8 input_fraction, u8 num_coeff,
 				  const struct si1133_coeff *coeffs)
 {
 	u8 x_order, y_order;
@@ -614,7 +617,7 @@
 {
 	int err;
 
-	__be16 resp;
+	u8 buffer[SI1133_MEASURE_BUFFER_SIZE];
 
 	err = si1133_set_adcmux(data, 0, chan->channel);
 	if (err)
@@ -625,12 +628,13 @@
 	if (err)
 		return err;
 
-	err = si1133_bulk_read(data, SI1133_REG_HOSTOUT(0), sizeof(resp),
-			       (u8 *)&resp);
+	err = si1133_bulk_read(data, SI1133_REG_HOSTOUT(0), sizeof(buffer),
+			       buffer);
 	if (err)
 		return err;
 
-	*val = be16_to_cpu(resp);
+	*val = sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
+			     SI1133_SIGN_BIT_INDEX);
 
 	return err;
 }
@@ -704,9 +708,9 @@
 {
 	int err;
 	int lux;
-	u32 high_vis;
-	u32 low_vis;
-	u32 ir;
+	s32 high_vis;
+	s32 low_vis;
+	s32 ir;
 	u8 buffer[SI1133_LUX_BUFFER_SIZE];
 
 	/* Activate lux channels */
@@ -719,9 +723,16 @@
 	if (err)
 		return err;
 
-	high_vis = (buffer[0] << 16) | (buffer[1] << 8) | buffer[2];
-	low_vis = (buffer[3] << 16) | (buffer[4] << 8) | buffer[5];
-	ir = (buffer[6] << 16) | (buffer[7] << 8) | buffer[8];
+	high_vis =
+		sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
+			      SI1133_SIGN_BIT_INDEX);
+
+	low_vis =
+		sign_extend32((buffer[3] << 16) | (buffer[4] << 8) | buffer[5],
+			      SI1133_SIGN_BIT_INDEX);
+
+	ir = sign_extend32((buffer[6] << 16) | (buffer[7] << 8) | buffer[8],
+			   SI1133_SIGN_BIT_INDEX);
 
 	if (high_vis > SI1133_ADC_THRESHOLD || ir > SI1133_ADC_THRESHOLD)
 		lux = si1133_calc_polynomial(high_vis, ir,
--- linux-ein-5.4.0.orig/drivers/iio/light/si1145.c
+++ linux-ein-5.4.0/drivers/iio/light/si1145.c
@@ -169,6 +169,7 @@
  * @part_info:	Part information
  * @trig:	Pointer to iio trigger
  * @meas_rate:	Value of MEAS_RATE register. Only set in HW in auto mode
+ * @buffer:	Used to pack data read from sensor.
  */
 struct si1145_data {
 	struct i2c_client *client;
@@ -180,6 +181,14 @@
 	bool autonomous;
 	struct iio_trigger *trig;
 	int meas_rate;
+	/*
+	 * Ensure timestamp will be naturally aligned if present.
+	 * Maximum buffer size (may be only partly used if not all
+	 * channels are enabled):
+	 *   6*2 bytes channels data + 4 bytes alignment +
+	 *   8 bytes timestamp
+	 */
+	u8 buffer[24] __aligned(8);
 };
 
 /**
@@ -441,12 +450,6 @@
 	struct iio_poll_func *pf = private;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct si1145_data *data = iio_priv(indio_dev);
-	/*
-	 * Maximum buffer size:
-	 *   6*2 bytes channels data + 4 bytes alignment +
-	 *   8 bytes timestamp
-	 */
-	u8 buffer[24];
 	int i, j = 0;
 	int ret;
 	u8 irq_status = 0;
@@ -479,7 +482,7 @@
 
 		ret = i2c_smbus_read_i2c_block_data_or_emulated(
 				data->client, indio_dev->channels[i].address,
-				sizeof(u16) * run, &buffer[j]);
+				sizeof(u16) * run, &data->buffer[j]);
 		if (ret < 0)
 			goto done;
 		j += run * sizeof(u16);
@@ -494,7 +497,7 @@
 			goto done;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
 		iio_get_time_ns(indio_dev));
 
 done:
--- linux-ein-5.4.0.orig/drivers/iio/light/st_uvis25.h
+++ linux-ein-5.4.0/drivers/iio/light/st_uvis25.h
@@ -27,6 +27,11 @@
 	struct iio_trigger *trig;
 	bool enabled;
 	int irq;
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u8 chan;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 extern const struct dev_pm_ops st_uvis25_pm_ops;
--- linux-ein-5.4.0.orig/drivers/iio/light/st_uvis25_core.c
+++ linux-ein-5.4.0/drivers/iio/light/st_uvis25_core.c
@@ -234,17 +234,19 @@
 
 static irqreturn_t st_uvis25_buffer_handler_thread(int irq, void *p)
 {
-	u8 buffer[ALIGN(sizeof(u8), sizeof(s64)) + sizeof(s64)];
 	struct iio_poll_func *pf = p;
 	struct iio_dev *iio_dev = pf->indio_dev;
 	struct st_uvis25_hw *hw = iio_priv(iio_dev);
+	unsigned int val;
 	int err;
 
-	err = regmap_read(hw->regmap, ST_UVIS25_REG_OUT_ADDR, (int *)buffer);
+	err = regmap_read(hw->regmap, ST_UVIS25_REG_OUT_ADDR, &val);
 	if (err < 0)
 		goto out;
 
-	iio_push_to_buffers_with_timestamp(iio_dev, buffer,
+	hw->scan.chan = val;
+
+	iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan,
 					   iio_get_time_ns(iio_dev));
 
 out:
--- linux-ein-5.4.0.orig/drivers/iio/light/stk3310.c
+++ linux-ein-5.4.0/drivers/iio/light/stk3310.c
@@ -544,9 +544,8 @@
 	mutex_lock(&data->lock);
 	ret = regmap_field_read(data->reg_flag_nf, &dir);
 	if (ret < 0) {
-		dev_err(&data->client->dev, "register read failed\n");
-		mutex_unlock(&data->lock);
-		return ret;
+		dev_err(&data->client->dev, "register read failed: %d\n", ret);
+		goto out;
 	}
 	event = IIO_UNMOD_EVENT_CODE(IIO_PROXIMITY, 1,
 				     IIO_EV_TYPE_THRESH,
@@ -558,6 +557,7 @@
 	ret = regmap_field_write(data->reg_flag_psint, 0);
 	if (ret < 0)
 		dev_err(&data->client->dev, "failed to reset interrupts\n");
+out:
 	mutex_unlock(&data->lock);
 
 	return IRQ_HANDLED;
--- linux-ein-5.4.0.orig/drivers/iio/light/tcs3414.c
+++ linux-ein-5.4.0/drivers/iio/light/tcs3414.c
@@ -53,7 +53,11 @@
 	u8 control;
 	u8 gain;
 	u8 timing;
-	u16 buffer[8]; /* 4x 16-bit + 8 bytes timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u16 chans[4];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 #define TCS3414_CHANNEL(_color, _si, _addr) { \
@@ -209,10 +213,10 @@
 		if (ret < 0)
 			goto done;
 
-		data->buffer[j++] = ret;
+		data->scan.chans[j++] = ret;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 		iio_get_time_ns(indio_dev));
 
 done:
--- linux-ein-5.4.0.orig/drivers/iio/light/tcs3472.c
+++ linux-ein-5.4.0/drivers/iio/light/tcs3472.c
@@ -64,7 +64,11 @@
 	u8 control;
 	u8 atime;
 	u8 apers;
-	u16 buffer[8]; /* 4 16-bit channels + 64-bit timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u16 chans[4];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 static const struct iio_event_spec tcs3472_events[] = {
@@ -386,10 +390,10 @@
 		if (ret < 0)
 			goto done;
 
-		data->buffer[j++] = ret;
+		data->scan.chans[j++] = ret;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 		iio_get_time_ns(indio_dev));
 
 done:
@@ -532,7 +536,8 @@
 	return 0;
 
 free_irq:
-	free_irq(client->irq, indio_dev);
+	if (client->irq)
+		free_irq(client->irq, indio_dev);
 buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 	return ret;
@@ -560,7 +565,8 @@
 	struct iio_dev *indio_dev = i2c_get_clientdata(client);
 
 	iio_device_unregister(indio_dev);
-	free_irq(client->irq, indio_dev);
+	if (client->irq)
+		free_irq(client->irq, indio_dev);
 	iio_triggered_buffer_cleanup(indio_dev);
 	tcs3472_powerdown(iio_priv(indio_dev));
 
--- linux-ein-5.4.0.orig/drivers/iio/light/tsl2583.c
+++ linux-ein-5.4.0/drivers/iio/light/tsl2583.c
@@ -341,6 +341,14 @@
 		return lux_val;
 	}
 
+	/* Avoid division by zero of lux_value later on */
+	if (lux_val == 0) {
+		dev_err(&chip->client->dev,
+			"%s: lux_val of 0 will produce out of range trim_value\n",
+			__func__);
+		return -ENODATA;
+	}
+
 	gain_trim_val = (unsigned int)(((chip->als_settings.als_cal_target)
 			* chip->als_settings.als_gain_trim) / lux_val);
 	if ((gain_trim_val < 250) || (gain_trim_val > 4000)) {
@@ -849,7 +857,7 @@
 					 TSL2583_POWER_OFF_DELAY_MS);
 	pm_runtime_use_autosuspend(&clientp->dev);
 
-	ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev);
+	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(&clientp->dev, "%s: iio registration failed\n",
 			__func__);
--- linux-ein-5.4.0.orig/drivers/iio/light/tsl2772.c
+++ linux-ein-5.4.0/drivers/iio/light/tsl2772.c
@@ -606,6 +606,7 @@
 			return -EINVAL;
 		}
 	}
+	chip->settings.prox_diode = prox_diode_mask;
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/iio/light/vcnl4000.c
+++ linux-ein-5.4.0/drivers/iio/light/vcnl4000.c
@@ -163,20 +163,22 @@
 	if (ret < 0)
 		return ret;
 
-	data->al_scale = 24000;
 	data->vcnl4200_al.reg = VCNL4200_AL_DATA;
 	data->vcnl4200_ps.reg = VCNL4200_PS_DATA;
 	switch (id) {
 	case VCNL4200_PROD_ID:
-		/* Integration time is 50ms, but the experiments */
-		/* show 54ms in total. */
-		data->vcnl4200_al.sampling_rate = ktime_set(0, 54000 * 1000);
-		data->vcnl4200_ps.sampling_rate = ktime_set(0, 4200 * 1000);
+		/* Default wait time is 50ms, add 20% tolerance. */
+		data->vcnl4200_al.sampling_rate = ktime_set(0, 60000 * 1000);
+		/* Default wait time is 4.8ms, add 20% tolerance. */
+		data->vcnl4200_ps.sampling_rate = ktime_set(0, 5760 * 1000);
+		data->al_scale = 24000;
 		break;
 	case VCNL4040_PROD_ID:
-		/* Integration time is 80ms, add 10ms. */
-		data->vcnl4200_al.sampling_rate = ktime_set(0, 100000 * 1000);
-		data->vcnl4200_ps.sampling_rate = ktime_set(0, 100000 * 1000);
+		/* Default wait time is 80ms, add 20% tolerance. */
+		data->vcnl4200_al.sampling_rate = ktime_set(0, 96000 * 1000);
+		/* Default wait time is 5ms, add 20% tolerance. */
+		data->vcnl4200_ps.sampling_rate = ktime_set(0, 6000 * 1000);
+		data->al_scale = 120000;
 		break;
 	}
 	data->vcnl4200_al.last_measurement = ktime_set(0, 0);
@@ -191,7 +193,6 @@
 				u8 rdy_mask, u8 data_reg, int *val)
 {
 	int tries = 20;
-	__be16 buf;
 	int ret;
 
 	mutex_lock(&data->vcnl4000_lock);
@@ -218,13 +219,12 @@
 		goto fail;
 	}
 
-	ret = i2c_smbus_read_i2c_block_data(data->client,
-		data_reg, sizeof(buf), (u8 *) &buf);
+	ret = i2c_smbus_read_word_swapped(data->client, data_reg);
 	if (ret < 0)
 		goto fail;
 
 	mutex_unlock(&data->vcnl4000_lock);
-	*val = be16_to_cpu(buf);
+	*val = ret;
 
 	return 0;
 
--- linux-ein-5.4.0.orig/drivers/iio/light/vcnl4035.c
+++ linux-ein-5.4.0/drivers/iio/light/vcnl4035.c
@@ -8,6 +8,7 @@
  * TODO: Proximity
  */
 #include <linux/bitops.h>
+#include <linux/bitfield.h>
 #include <linux/i2c.h>
 #include <linux/module.h>
 #include <linux/pm_runtime.h>
@@ -42,6 +43,7 @@
 #define VCNL4035_ALS_PERS_MASK		GENMASK(3, 2)
 #define VCNL4035_INT_ALS_IF_H_MASK	BIT(12)
 #define VCNL4035_INT_ALS_IF_L_MASK	BIT(13)
+#define VCNL4035_DEV_ID_MASK		GENMASK(7, 0)
 
 /* Default values */
 #define VCNL4035_MODE_ALS_ENABLE	BIT(0)
@@ -102,7 +104,8 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct vcnl4035_data *data = iio_priv(indio_dev);
-	u8 buffer[ALIGN(sizeof(u16), sizeof(s64)) + sizeof(s64)];
+	/* Ensure naturally aligned timestamp */
+	u8 buffer[ALIGN(sizeof(u16), sizeof(s64)) + sizeof(s64)]  __aligned(8);
 	int ret;
 
 	ret = regmap_read(data->regmap, VCNL4035_ALS_DATA, (int *)buffer);
@@ -414,6 +417,7 @@
 		return ret;
 	}
 
+	id = FIELD_GET(VCNL4035_DEV_ID_MASK, id);
 	if (id != VCNL4035_DEV_ID_VAL) {
 		dev_err(&data->client->dev, "Wrong id, got %x, expected %x\n",
 			id, VCNL4035_DEV_ID_VAL);
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/ak8974.c
+++ linux-ein-5.4.0/drivers/iio/magnetometer/ak8974.c
@@ -185,6 +185,11 @@
 	bool drdy_irq;
 	struct completion drdy_complete;
 	bool drdy_active_low;
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		__le16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static const char ak8974_reg_avdd[] = "avdd";
@@ -564,7 +569,7 @@
 		 * We read all axes and discard all but one, for optimized
 		 * reading, use the triggered buffer.
 		 */
-		*val = le16_to_cpu(hw_values[chan->address]);
+		*val = (s16)le16_to_cpu(hw_values[chan->address]);
 
 		ret = IIO_VAL_INT;
 	}
@@ -581,7 +586,6 @@
 {
 	struct ak8974 *ak8974 = iio_priv(indio_dev);
 	int ret;
-	__le16 hw_values[8]; /* Three axes + 64bit padding */
 
 	pm_runtime_get_sync(&ak8974->i2c->dev);
 	mutex_lock(&ak8974->lock);
@@ -591,13 +595,13 @@
 		dev_err(&ak8974->i2c->dev, "error triggering measure\n");
 		goto out_unlock;
 	}
-	ret = ak8974_getresult(ak8974, hw_values);
+	ret = ak8974_getresult(ak8974, ak8974->scan.channels);
 	if (ret) {
 		dev_err(&ak8974->i2c->dev, "error getting measures\n");
 		goto out_unlock;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, hw_values,
+	iio_push_to_buffers_with_timestamp(indio_dev, &ak8974->scan,
 					   iio_get_time_ns(indio_dev));
 
  out_unlock:
@@ -764,19 +768,21 @@
 	ak8974->map = devm_regmap_init_i2c(i2c, &ak8974_regmap_config);
 	if (IS_ERR(ak8974->map)) {
 		dev_err(&i2c->dev, "failed to allocate register map\n");
+		pm_runtime_put_noidle(&i2c->dev);
+		pm_runtime_disable(&i2c->dev);
 		return PTR_ERR(ak8974->map);
 	}
 
 	ret = ak8974_set_power(ak8974, AK8974_PWR_ON);
 	if (ret) {
 		dev_err(&i2c->dev, "could not power on\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
 	ret = ak8974_detect(ak8974);
 	if (ret) {
 		dev_err(&i2c->dev, "neither AK8974 nor AMI30x found\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
 	ret = ak8974_selftest(ak8974);
@@ -786,14 +792,9 @@
 	ret = ak8974_reset(ak8974);
 	if (ret) {
 		dev_err(&i2c->dev, "AK8974 reset failed\n");
-		goto power_off;
+		goto disable_pm;
 	}
 
-	pm_runtime_set_autosuspend_delay(&i2c->dev,
-					 AK8974_AUTOSUSPEND_DELAY);
-	pm_runtime_use_autosuspend(&i2c->dev);
-	pm_runtime_put(&i2c->dev);
-
 	indio_dev->dev.parent = &i2c->dev;
 	indio_dev->channels = ak8974_channels;
 	indio_dev->num_channels = ARRAY_SIZE(ak8974_channels);
@@ -846,6 +847,11 @@
 		goto cleanup_buffer;
 	}
 
+	pm_runtime_set_autosuspend_delay(&i2c->dev,
+					 AK8974_AUTOSUSPEND_DELAY);
+	pm_runtime_use_autosuspend(&i2c->dev);
+	pm_runtime_put(&i2c->dev);
+
 	return 0;
 
 cleanup_buffer:
@@ -854,7 +860,6 @@
 	pm_runtime_put_noidle(&i2c->dev);
 	pm_runtime_disable(&i2c->dev);
 	ak8974_set_power(ak8974, AK8974_PWR_OFF);
-power_off:
 	regulator_bulk_disable(ARRAY_SIZE(ak8974->regs), ak8974->regs);
 
 	return ret;
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/ak8975.c
+++ linux-ein-5.4.0/drivers/iio/magnetometer/ak8975.c
@@ -368,6 +368,12 @@
 	struct iio_mount_matrix orientation;
 	struct regulator	*vdd;
 	struct regulator	*vid;
+
+	/* Ensure natural alignment of timestamp */
+	struct {
+		s16 channels[3];
+		s64 ts __aligned(8);
+	} scan;
 };
 
 /* Enable attached power regulator if any. */
@@ -385,6 +391,7 @@
 	if (ret) {
 		dev_warn(&data->client->dev,
 			 "Failed to enable specified Vid supply\n");
+		regulator_disable(data->vdd);
 		return ret;
 	}
 	/*
@@ -805,7 +812,6 @@
 	const struct i2c_client *client = data->client;
 	const struct ak_def *def = data->def;
 	int ret;
-	s16 buff[8]; /* 3 x 16 bits axis values + 1 aligned 64 bits timestamp */
 	__le16 fval[3];
 
 	mutex_lock(&data->lock);
@@ -828,12 +834,13 @@
 	mutex_unlock(&data->lock);
 
 	/* Clamp to valid range. */
-	buff[0] = clamp_t(s16, le16_to_cpu(fval[0]), -def->range, def->range);
-	buff[1] = clamp_t(s16, le16_to_cpu(fval[1]), -def->range, def->range);
-	buff[2] = clamp_t(s16, le16_to_cpu(fval[2]), -def->range, def->range);
+	data->scan.channels[0] = clamp_t(s16, le16_to_cpu(fval[0]), -def->range, def->range);
+	data->scan.channels[1] = clamp_t(s16, le16_to_cpu(fval[1]), -def->range, def->range);
+	data->scan.channels[2] = clamp_t(s16, le16_to_cpu(fval[2]), -def->range, def->range);
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buff,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
+
 	return;
 
 unlock:
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/bmc150_magn.c
+++ linux-ein-5.4.0/drivers/iio/magnetometer/bmc150_magn.c
@@ -136,8 +136,11 @@
 	struct mutex mutex;
 	struct regmap *regmap;
 	struct iio_mount_matrix orientation;
-	/* 4 x 32 bits for x, y z, 4 bytes align, 64 bits timestamp */
-	s32 buffer[6];
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		s32 chans[3];
+		s64 timestamp __aligned(8);
+	} scan;
 	struct iio_trigger *dready_trig;
 	bool dready_trigger_on;
 	int max_odr;
@@ -260,7 +263,7 @@
 	int ret;
 
 	if (on) {
-		ret = pm_runtime_get_sync(data->dev);
+		ret = pm_runtime_resume_and_get(data->dev);
 	} else {
 		pm_runtime_mark_last_busy(data->dev);
 		ret = pm_runtime_put_autosuspend(data->dev);
@@ -269,9 +272,6 @@
 	if (ret < 0) {
 		dev_err(data->dev,
 			"failed to change power state to %d\n", on);
-		if (on)
-			pm_runtime_put_noidle(data->dev);
-
 		return ret;
 	}
 #endif
@@ -673,11 +673,11 @@
 	int ret;
 
 	mutex_lock(&data->mutex);
-	ret = bmc150_magn_read_xyz(data, data->buffer);
+	ret = bmc150_magn_read_xyz(data, data->scan.chans);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   pf->timestamp);
 
 err:
@@ -944,12 +944,15 @@
 	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(dev, "unable to register iio device\n");
-		goto err_buffer_cleanup;
+		goto err_pm_cleanup;
 	}
 
 	dev_dbg(dev, "Registered device %s\n", name);
 	return 0;
 
+err_pm_cleanup:
+	pm_runtime_dont_use_autosuspend(dev);
+	pm_runtime_disable(dev);
 err_buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);
 err_free_irq:
@@ -973,7 +976,6 @@
 
 	pm_runtime_disable(dev);
 	pm_runtime_set_suspended(dev);
-	pm_runtime_put_noidle(dev);
 
 	iio_triggered_buffer_cleanup(indio_dev);
 
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/hmc5843.h
+++ linux-ein-5.4.0/drivers/iio/magnetometer/hmc5843.h
@@ -33,7 +33,8 @@
  * @lock:		update and read regmap data
  * @regmap:		hardware access register maps
  * @variant:		describe chip variants
- * @buffer:		3x 16-bit channels + padding + 64-bit timestamp
+ * @scan:		buffer to pack data for passing to
+ *			iio_push_to_buffers_with_timestamp()
  */
 struct hmc5843_data {
 	struct device *dev;
@@ -41,7 +42,10 @@
 	struct regmap *regmap;
 	const struct hmc5843_chip_info *variant;
 	struct iio_mount_matrix orientation;
-	__be16 buffer[8];
+	struct {
+		__be16 chans[3];
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/hmc5843_core.c
+++ linux-ein-5.4.0/drivers/iio/magnetometer/hmc5843_core.c
@@ -446,13 +446,13 @@
 	}
 
 	ret = regmap_bulk_read(data->regmap, HMC5843_DATA_OUT_MSB_REGS,
-			       data->buffer, 3 * sizeof(__be16));
+			       data->scan.chans, sizeof(data->scan.chans));
 
 	mutex_unlock(&data->lock);
 	if (ret < 0)
 		goto done;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 					   iio_get_time_ns(indio_dev));
 
 done:
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/mag3110.c
+++ linux-ein-5.4.0/drivers/iio/magnetometer/mag3110.c
@@ -56,6 +56,12 @@
 	int sleep_val;
 	struct regulator *vdd_reg;
 	struct regulator *vddio_reg;
+	/* Ensure natural alignment of timestamp */
+	struct {
+		__be16 channels[3];
+		u8 temperature;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static int mag3110_request(struct mag3110_data *data)
@@ -387,10 +393,9 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mag3110_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 3 16-bit channels + 1 byte temp + padding + ts */
 	int ret;
 
-	ret = mag3110_read(data, (__be16 *) buffer);
+	ret = mag3110_read(data, data->scan.channels);
 	if (ret < 0)
 		goto done;
 
@@ -399,10 +404,10 @@
 			MAG3110_DIE_TEMP);
 		if (ret < 0)
 			goto done;
-		buffer[6] = ret;
+		data->scan.temperature = ret;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 		iio_get_time_ns(indio_dev));
 
 done:
--- linux-ein-5.4.0.orig/drivers/iio/magnetometer/rm3100-core.c
+++ linux-ein-5.4.0/drivers/iio/magnetometer/rm3100-core.c
@@ -76,7 +76,8 @@
 	bool use_interrupt;
 	int conversion_time;
 	int scale;
-	u8 buffer[RM3100_SCAN_BYTES];
+	/* Ensure naturally aligned timestamp */
+	u8 buffer[RM3100_SCAN_BYTES] __aligned(8);
 	struct iio_trigger *drdy_trig;
 
 	/*
--- linux-ein-5.4.0.orig/drivers/iio/potentiostat/lmp91000.c
+++ linux-ein-5.4.0/drivers/iio/potentiostat/lmp91000.c
@@ -71,8 +71,8 @@
 
 	struct completion completion;
 	u8 chan_select;
-
-	u32 buffer[4]; /* 64-bit data + 64-bit timestamp */
+	/* 64-bit data + 64-bit naturally aligned timestamp */
+	u32 buffer[4] __aligned(8);
 };
 
 static const struct iio_chan_spec lmp91000_channels[] = {
--- linux-ein-5.4.0.orig/drivers/iio/pressure/bmp280-core.c
+++ linux-ein-5.4.0/drivers/iio/pressure/bmp280-core.c
@@ -264,6 +264,8 @@
 		+ (s32)2097152) * calib->H2 + 8192) >> 14);
 	var -= ((((var >> 15) * (var >> 15)) >> 7) * (s32)calib->H1) >> 4;
 
+	var = clamp_val(var, 0, 419430400);
+
 	return var >> 12;
 };
 
@@ -706,7 +708,7 @@
 	unsigned int ctrl;
 
 	if (data->use_eoc)
-		init_completion(&data->done);
+		reinit_completion(&data->done);
 
 	ret = regmap_write(data->regmap, BMP280_REG_CTRL_MEAS, ctrl_meas);
 	if (ret)
@@ -962,6 +964,9 @@
 			"trying to enforce it\n");
 		irq_trig = IRQF_TRIGGER_RISING;
 	}
+
+	init_completion(&data->done);
+
 	ret = devm_request_threaded_irq(dev,
 			irq,
 			bmp085_eoc_irq,
@@ -1108,7 +1113,7 @@
 	 * however as it happens, the BMP085 shares the chip ID of BMP180
 	 * so we look for an IRQ if we have that.
 	 */
-	if (irq > 0 || (chip_id  == BMP180_CHIP_ID)) {
+	if (irq > 0 && (chip_id  == BMP180_CHIP_ID)) {
 		ret = bmp085_fetch_eoc_irq(dev, name, irq, data);
 		if (ret)
 			goto out_disable_vdda;
--- linux-ein-5.4.0.orig/drivers/iio/pressure/cros_ec_baro.c
+++ linux-ein-5.4.0/drivers/iio/pressure/cros_ec_baro.c
@@ -114,6 +114,7 @@
 static const struct iio_info cros_ec_baro_info = {
 	.read_raw = &cros_ec_baro_read,
 	.write_raw = &cros_ec_baro_write,
+	.read_avail = &cros_ec_sensors_core_read_avail,
 };
 
 static int cros_ec_baro_probe(struct platform_device *pdev)
@@ -149,6 +150,8 @@
 		BIT(IIO_CHAN_INFO_SCALE) |
 		BIT(IIO_CHAN_INFO_SAMP_FREQ) |
 		BIT(IIO_CHAN_INFO_FREQUENCY);
+	channel->info_mask_shared_by_all_available =
+		BIT(IIO_CHAN_INFO_SAMP_FREQ);
 	channel->scan_type.realbits = CROS_EC_SENSOR_BITS;
 	channel->scan_type.storagebits = CROS_EC_SENSOR_BITS;
 	channel->scan_type.shift = 0;
--- linux-ein-5.4.0.orig/drivers/iio/pressure/dps310.c
+++ linux-ein-5.4.0/drivers/iio/pressure/dps310.c
@@ -57,8 +57,8 @@
 #define  DPS310_RESET_MAGIC	0x09
 #define DPS310_COEF_BASE	0x10
 
-/* Make sure sleep time is <= 20ms for usleep_range */
-#define DPS310_POLL_SLEEP_US(t)		min(20000, (t) / 8)
+/* Make sure sleep time is <= 30ms for usleep_range */
+#define DPS310_POLL_SLEEP_US(t)		min(30000, (t) / 8)
 /* Silently handle error in rate value here */
 #define DPS310_POLL_TIMEOUT_US(rc)	((rc) <= 0 ? 1000000 : 1000000 / (rc))
 
@@ -89,6 +89,7 @@
 	s32 c00, c10, c20, c30, c01, c11, c21;
 	s32 pressure_raw;
 	s32 temp_raw;
+	bool timeout_recovery_failed;
 };
 
 static const struct iio_chan_spec dps310_channels[] = {
@@ -159,6 +160,102 @@
 	return 0;
 }
 
+/*
+ * Some versions of the chip will read temperatures in the ~60C range when
+ * it's actually ~20C. This is the manufacturer recommended workaround
+ * to correct the issue. The registers used below are undocumented.
+ */
+static int dps310_temp_workaround(struct dps310_data *data)
+{
+	int rc;
+	int reg;
+
+	rc = regmap_read(data->regmap, 0x32, &reg);
+	if (rc)
+		return rc;
+
+	/*
+	 * If bit 1 is set then the device is okay, and the workaround does not
+	 * need to be applied
+	 */
+	if (reg & BIT(1))
+		return 0;
+
+	rc = regmap_write(data->regmap, 0x0e, 0xA5);
+	if (rc)
+		return rc;
+
+	rc = regmap_write(data->regmap, 0x0f, 0x96);
+	if (rc)
+		return rc;
+
+	rc = regmap_write(data->regmap, 0x62, 0x02);
+	if (rc)
+		return rc;
+
+	rc = regmap_write(data->regmap, 0x0e, 0x00);
+	if (rc)
+		return rc;
+
+	return regmap_write(data->regmap, 0x0f, 0x00);
+}
+
+static int dps310_startup(struct dps310_data *data)
+{
+	int rc;
+	int ready;
+
+	/*
+	 * Set up pressure sensor in single sample, one measurement per second
+	 * mode
+	 */
+	rc = regmap_write(data->regmap, DPS310_PRS_CFG, 0);
+	if (rc)
+		return rc;
+
+	/*
+	 * Set up external (MEMS) temperature sensor in single sample, one
+	 * measurement per second mode
+	 */
+	rc = regmap_write(data->regmap, DPS310_TMP_CFG, DPS310_TMP_EXT);
+	if (rc)
+		return rc;
+
+	/* Temp and pressure shifts are disabled when PRC <= 8 */
+	rc = regmap_write_bits(data->regmap, DPS310_CFG_REG,
+			       DPS310_PRS_SHIFT_EN | DPS310_TMP_SHIFT_EN, 0);
+	if (rc)
+		return rc;
+
+	/* MEAS_CFG doesn't update correctly unless first written with 0 */
+	rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG,
+			       DPS310_MEAS_CTRL_BITS, 0);
+	if (rc)
+		return rc;
+
+	/* Turn on temperature and pressure measurement in the background */
+	rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG,
+			       DPS310_MEAS_CTRL_BITS, DPS310_PRS_EN |
+			       DPS310_TEMP_EN | DPS310_BACKGROUND);
+	if (rc)
+		return rc;
+
+	/*
+	 * Calibration coefficients required for reporting temperature.
+	 * They are available 40ms after the device has started
+	 */
+	rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready,
+				      ready & DPS310_COEF_RDY, 10000, 40000);
+	if (rc)
+		return rc;
+
+	rc = dps310_get_coefs(data);
+	if (rc)
+		return rc;
+
+	return dps310_temp_workaround(data);
+}
+
 static int dps310_get_pres_precision(struct dps310_data *data)
 {
 	int rc;
@@ -297,11 +394,69 @@
 	return scale_factors[ilog2(rc)];
 }
 
+static int dps310_reset_wait(struct dps310_data *data)
+{
+	int rc;
+
+	rc = regmap_write(data->regmap, DPS310_RESET, DPS310_RESET_MAGIC);
+	if (rc)
+		return rc;
+
+	/* Wait for device chip access: 15ms in specification */
+	usleep_range(15000, 55000);
+	return 0;
+}
+
+static int dps310_reset_reinit(struct dps310_data *data)
+{
+	int rc;
+
+	rc = dps310_reset_wait(data);
+	if (rc)
+		return rc;
+
+	return dps310_startup(data);
+}
+
+static int dps310_ready_status(struct dps310_data *data, int ready_bit, int timeout)
+{
+	int sleep = DPS310_POLL_SLEEP_US(timeout);
+	int ready;
+
+	return regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready, ready & ready_bit,
+					sleep, timeout);
+}
+
+static int dps310_ready(struct dps310_data *data, int ready_bit, int timeout)
+{
+	int rc;
+
+	rc = dps310_ready_status(data, ready_bit, timeout);
+	if (rc) {
+		if (rc == -ETIMEDOUT && !data->timeout_recovery_failed) {
+			/* Reset and reinitialize the chip. */
+			if (dps310_reset_reinit(data)) {
+				data->timeout_recovery_failed = true;
+			} else {
+				/* Try again to get sensor ready status. */
+				if (dps310_ready_status(data, ready_bit, timeout))
+					data->timeout_recovery_failed = true;
+				else
+					return 0;
+			}
+		}
+
+		return rc;
+	}
+
+	data->timeout_recovery_failed = false;
+	return 0;
+}
+
 static int dps310_read_pres_raw(struct dps310_data *data)
 {
 	int rc;
 	int rate;
-	int ready;
 	int timeout;
 	s32 raw;
 	u8 val[3];
@@ -313,9 +468,7 @@
 	timeout = DPS310_POLL_TIMEOUT_US(rate);
 
 	/* Poll for sensor readiness; base the timeout upon the sample rate. */
-	rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready,
-				      ready & DPS310_PRS_RDY,
-				      DPS310_POLL_SLEEP_US(timeout), timeout);
+	rc = dps310_ready(data, DPS310_PRS_RDY, timeout);
 	if (rc)
 		goto done;
 
@@ -352,7 +505,6 @@
 {
 	int rc;
 	int rate;
-	int ready;
 	int timeout;
 
 	if (mutex_lock_interruptible(&data->lock))
@@ -362,10 +514,8 @@
 	timeout = DPS310_POLL_TIMEOUT_US(rate);
 
 	/* Poll for sensor readiness; base the timeout upon the sample rate. */
-	rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready,
-				      ready & DPS310_TMP_RDY,
-				      DPS310_POLL_SLEEP_US(timeout), timeout);
-	if (rc < 0)
+	rc = dps310_ready(data, DPS310_TMP_RDY, timeout);
+	if (rc)
 		goto done;
 
 	rc = dps310_read_temp_ready(data);
@@ -660,7 +810,7 @@
 {
 	struct dps310_data *data = action_data;
 
-	regmap_write(data->regmap, DPS310_RESET, DPS310_RESET_MAGIC);
+	dps310_reset_wait(data);
 }
 
 static const struct regmap_config dps310_regmap_config = {
@@ -677,52 +827,12 @@
 	.write_raw = dps310_write_raw,
 };
 
-/*
- * Some verions of chip will read temperatures in the ~60C range when
- * its actually ~20C. This is the manufacturer recommended workaround
- * to correct the issue. The registers used below are undocumented.
- */
-static int dps310_temp_workaround(struct dps310_data *data)
-{
-	int rc;
-	int reg;
-
-	rc = regmap_read(data->regmap, 0x32, &reg);
-	if (rc < 0)
-		return rc;
-
-	/*
-	 * If bit 1 is set then the device is okay, and the workaround does not
-	 * need to be applied
-	 */
-	if (reg & BIT(1))
-		return 0;
-
-	rc = regmap_write(data->regmap, 0x0e, 0xA5);
-	if (rc < 0)
-		return rc;
-
-	rc = regmap_write(data->regmap, 0x0f, 0x96);
-	if (rc < 0)
-		return rc;
-
-	rc = regmap_write(data->regmap, 0x62, 0x02);
-	if (rc < 0)
-		return rc;
-
-	rc = regmap_write(data->regmap, 0x0e, 0x00);
-	if (rc < 0)
-		return rc;
-
-	return regmap_write(data->regmap, 0x0f, 0x00);
-}
-
 static int dps310_probe(struct i2c_client *client,
 			const struct i2c_device_id *id)
 {
 	struct dps310_data *data;
 	struct iio_dev *iio;
-	int rc, ready;
+	int rc;
 
 	iio = devm_iio_device_alloc(&client->dev,  sizeof(*data));
 	if (!iio)
@@ -748,54 +858,8 @@
 	if (rc)
 		return rc;
 
-	/*
-	 * Set up pressure sensor in single sample, one measurement per second
-	 * mode
-	 */
-	rc = regmap_write(data->regmap, DPS310_PRS_CFG, 0);
-
-	/*
-	 * Set up external (MEMS) temperature sensor in single sample, one
-	 * measurement per second mode
-	 */
-	rc = regmap_write(data->regmap, DPS310_TMP_CFG, DPS310_TMP_EXT);
-	if (rc < 0)
-		return rc;
-
-	/* Temp and pressure shifts are disabled when PRC <= 8 */
-	rc = regmap_write_bits(data->regmap, DPS310_CFG_REG,
-			       DPS310_PRS_SHIFT_EN | DPS310_TMP_SHIFT_EN, 0);
-	if (rc < 0)
-		return rc;
-
-	/* MEAS_CFG doesn't update correctly unless first written with 0 */
-	rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG,
-			       DPS310_MEAS_CTRL_BITS, 0);
-	if (rc < 0)
-		return rc;
-
-	/* Turn on temperature and pressure measurement in the background */
-	rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG,
-			       DPS310_MEAS_CTRL_BITS, DPS310_PRS_EN |
-			       DPS310_TEMP_EN | DPS310_BACKGROUND);
-	if (rc < 0)
-		return rc;
-
-	/*
-	 * Calibration coefficients required for reporting temperature.
-	 * They are available 40ms after the device has started
-	 */
-	rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready,
-				      ready & DPS310_COEF_RDY, 10000, 40000);
-	if (rc < 0)
-		return rc;
-
-	rc = dps310_get_coefs(data);
-	if (rc < 0)
-		return rc;
-
-	rc = dps310_temp_workaround(data);
-	if (rc < 0)
+	rc = dps310_startup(data);
+	if (rc)
 		return rc;
 
 	rc = devm_iio_device_register(&client->dev, iio);
--- linux-ein-5.4.0.orig/drivers/iio/pressure/mpl3115.c
+++ linux-ein-5.4.0/drivers/iio/pressure/mpl3115.c
@@ -144,7 +144,14 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mpl3115_data *data = iio_priv(indio_dev);
-	u8 buffer[16]; /* 32-bit channel + 16-bit channel + padding + ts */
+	/*
+	 * 32-bit channel + 16-bit channel + padding + ts
+	 * Note that it is possible for only one of the first 2
+	 * channels to be enabled. If that happens, the first element
+	 * of the buffer may be either 16 or 32-bits.  As such we cannot
+	 * use a simple structure definition to express this data layout.
+	 */
+	u8 buffer[16] __aligned(8);
 	int ret, pos = 0;
 
 	mutex_lock(&data->lock);
--- linux-ein-5.4.0.orig/drivers/iio/pressure/ms5611.h
+++ linux-ein-5.4.0/drivers/iio/pressure/ms5611.h
@@ -25,13 +25,6 @@
 	MS5607,
 };
 
-struct ms5611_chip_info {
-	u16 prom[MS5611_PROM_WORDS_NB];
-
-	int (*temp_and_pressure_compensate)(struct ms5611_chip_info *chip_info,
-					    s32 *temp, s32 *pressure);
-};
-
 /*
  * OverSampling Rate descriptor.
  * Warning: cmd MUST be kept aligned on a word boundary (see
@@ -50,12 +43,15 @@
 	const struct ms5611_osr *pressure_osr;
 	const struct ms5611_osr *temp_osr;
 
-	int (*reset)(struct device *dev);
-	int (*read_prom_word)(struct device *dev, int index, u16 *word);
-	int (*read_adc_temp_and_pressure)(struct device *dev,
+	u16 prom[MS5611_PROM_WORDS_NB];
+
+	int (*reset)(struct ms5611_state *st);
+	int (*read_prom_word)(struct ms5611_state *st, int index, u16 *word);
+	int (*read_adc_temp_and_pressure)(struct ms5611_state *st,
 					  s32 *temp, s32 *pressure);
 
-	struct ms5611_chip_info *chip_info;
+	int (*compensate_temp_and_pressure)(struct ms5611_state *st, s32 *temp,
+					  s32 *pressure);
 	struct regulator *vdd;
 };
 
--- linux-ein-5.4.0.orig/drivers/iio/pressure/ms5611_core.c
+++ linux-ein-5.4.0/drivers/iio/pressure/ms5611_core.c
@@ -76,7 +76,7 @@
 
 	crc = (crc >> 12) & 0x000F;
 
-	return crc_orig != 0x0000 && crc == crc_orig;
+	return crc == crc_orig;
 }
 
 static int ms5611_read_prom(struct iio_dev *indio_dev)
@@ -85,8 +85,7 @@
 	struct ms5611_state *st = iio_priv(indio_dev);
 
 	for (i = 0; i < MS5611_PROM_WORDS_NB; i++) {
-		ret = st->read_prom_word(&indio_dev->dev,
-					 i, &st->chip_info->prom[i]);
+		ret = st->read_prom_word(st, i, &st->prom[i]);
 		if (ret < 0) {
 			dev_err(&indio_dev->dev,
 				"failed to read prom at %d\n", i);
@@ -94,7 +93,7 @@
 		}
 	}
 
-	if (!ms5611_prom_is_valid(st->chip_info->prom, MS5611_PROM_WORDS_NB)) {
+	if (!ms5611_prom_is_valid(st->prom, MS5611_PROM_WORDS_NB)) {
 		dev_err(&indio_dev->dev, "PROM integrity check failed\n");
 		return -ENODEV;
 	}
@@ -108,28 +107,27 @@
 	int ret;
 	struct ms5611_state *st = iio_priv(indio_dev);
 
-	ret = st->read_adc_temp_and_pressure(&indio_dev->dev, temp, pressure);
+	ret = st->read_adc_temp_and_pressure(st, temp, pressure);
 	if (ret < 0) {
 		dev_err(&indio_dev->dev,
 			"failed to read temperature and pressure\n");
 		return ret;
 	}
 
-	return st->chip_info->temp_and_pressure_compensate(st->chip_info,
-							   temp, pressure);
+	return st->compensate_temp_and_pressure(st, temp, pressure);
 }
 
-static int ms5611_temp_and_pressure_compensate(struct ms5611_chip_info *chip_info,
+static int ms5611_temp_and_pressure_compensate(struct ms5611_state *st,
 					       s32 *temp, s32 *pressure)
 {
 	s32 t = *temp, p = *pressure;
 	s64 off, sens, dt;
 
-	dt = t - (chip_info->prom[5] << 8);
-	off = ((s64)chip_info->prom[2] << 16) + ((chip_info->prom[4] * dt) >> 7);
-	sens = ((s64)chip_info->prom[1] << 15) + ((chip_info->prom[3] * dt) >> 8);
+	dt = t - (st->prom[5] << 8);
+	off = ((s64)st->prom[2] << 16) + ((st->prom[4] * dt) >> 7);
+	sens = ((s64)st->prom[1] << 15) + ((st->prom[3] * dt) >> 8);
 
-	t = 2000 + ((chip_info->prom[6] * dt) >> 23);
+	t = 2000 + ((st->prom[6] * dt) >> 23);
 	if (t < 2000) {
 		s64 off2, sens2, t2;
 
@@ -155,17 +153,17 @@
 	return 0;
 }
 
-static int ms5607_temp_and_pressure_compensate(struct ms5611_chip_info *chip_info,
+static int ms5607_temp_and_pressure_compensate(struct ms5611_state *st,
 					       s32 *temp, s32 *pressure)
 {
 	s32 t = *temp, p = *pressure;
 	s64 off, sens, dt;
 
-	dt = t - (chip_info->prom[5] << 8);
-	off = ((s64)chip_info->prom[2] << 17) + ((chip_info->prom[4] * dt) >> 6);
-	sens = ((s64)chip_info->prom[1] << 16) + ((chip_info->prom[3] * dt) >> 7);
+	dt = t - (st->prom[5] << 8);
+	off = ((s64)st->prom[2] << 17) + ((st->prom[4] * dt) >> 6);
+	sens = ((s64)st->prom[1] << 16) + ((st->prom[3] * dt) >> 7);
 
-	t = 2000 + ((chip_info->prom[6] * dt) >> 23);
+	t = 2000 + ((st->prom[6] * dt) >> 23);
 	if (t < 2000) {
 		s64 off2, sens2, t2, tmp;
 
@@ -196,7 +194,7 @@
 	int ret;
 	struct ms5611_state *st = iio_priv(indio_dev);
 
-	ret = st->reset(&indio_dev->dev);
+	ret = st->reset(st);
 	if (ret < 0) {
 		dev_err(&indio_dev->dev, "failed to reset device\n");
 		return ret;
@@ -212,16 +210,21 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct ms5611_state *st = iio_priv(indio_dev);
-	s32 buf[4]; /* s32 (pressure) + s32 (temp) + 2 * s32 (timestamp) */
+	/* Ensure buffer elements are naturally aligned */
+	struct {
+		s32 channels[2];
+		s64 ts __aligned(8);
+	} scan;
 	int ret;
 
 	mutex_lock(&st->lock);
-	ret = ms5611_read_temp_and_pressure(indio_dev, &buf[1], &buf[0]);
+	ret = ms5611_read_temp_and_pressure(indio_dev, &scan.channels[1],
+					    &scan.channels[0]);
 	mutex_unlock(&st->lock);
 	if (ret < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf,
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan,
 					   iio_get_time_ns(indio_dev));
 
 err:
@@ -338,15 +341,6 @@
 
 static const unsigned long ms5611_scan_masks[] = {0x3, 0};
 
-static struct ms5611_chip_info chip_info_tbl[] = {
-	[MS5611] = {
-		.temp_and_pressure_compensate = ms5611_temp_and_pressure_compensate,
-	},
-	[MS5607] = {
-		.temp_and_pressure_compensate = ms5607_temp_and_pressure_compensate,
-	}
-};
-
 static const struct iio_chan_spec ms5611_channels[] = {
 	{
 		.type = IIO_PRESSURE,
@@ -429,7 +423,20 @@
 	struct ms5611_state *st = iio_priv(indio_dev);
 
 	mutex_init(&st->lock);
-	st->chip_info = &chip_info_tbl[type];
+
+	switch (type) {
+	case MS5611:
+		st->compensate_temp_and_pressure =
+			ms5611_temp_and_pressure_compensate;
+		break;
+	case MS5607:
+		st->compensate_temp_and_pressure =
+			ms5607_temp_and_pressure_compensate;
+		break;
+	default:
+		return -EINVAL;
+	}
+
 	st->temp_osr =
 		&ms5611_avail_temp_osr[ARRAY_SIZE(ms5611_avail_temp_osr) - 1];
 	st->pressure_osr =
--- linux-ein-5.4.0.orig/drivers/iio/pressure/ms5611_i2c.c
+++ linux-ein-5.4.0/drivers/iio/pressure/ms5611_i2c.c
@@ -18,17 +18,15 @@
 
 #include "ms5611.h"
 
-static int ms5611_i2c_reset(struct device *dev)
+static int ms5611_i2c_reset(struct ms5611_state *st)
 {
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
-
 	return i2c_smbus_write_byte(st->client, MS5611_RESET);
 }
 
-static int ms5611_i2c_read_prom_word(struct device *dev, int index, u16 *word)
+static int ms5611_i2c_read_prom_word(struct ms5611_state *st, int index,
+				     u16 *word)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	ret = i2c_smbus_read_word_swapped(st->client,
 			MS5611_READ_PROM_WORD + (index << 1));
@@ -55,11 +53,10 @@
 	return 0;
 }
 
-static int ms5611_i2c_read_adc_temp_and_pressure(struct device *dev,
+static int ms5611_i2c_read_adc_temp_and_pressure(struct ms5611_state *st,
 						 s32 *temp, s32 *pressure)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 	const struct ms5611_osr *osr = st->temp_osr;
 
 	ret = i2c_smbus_write_byte(st->client, osr->cmd);
--- linux-ein-5.4.0.orig/drivers/iio/pressure/ms5611_spi.c
+++ linux-ein-5.4.0/drivers/iio/pressure/ms5611_spi.c
@@ -13,18 +13,17 @@
 
 #include "ms5611.h"
 
-static int ms5611_spi_reset(struct device *dev)
+static int ms5611_spi_reset(struct ms5611_state *st)
 {
 	u8 cmd = MS5611_RESET;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	return spi_write_then_read(st->client, &cmd, 1, NULL, 0);
 }
 
-static int ms5611_spi_read_prom_word(struct device *dev, int index, u16 *word)
+static int ms5611_spi_read_prom_word(struct ms5611_state *st, int index,
+				     u16 *word)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	ret = spi_w8r16be(st->client, MS5611_READ_PROM_WORD + (index << 1));
 	if (ret < 0)
@@ -35,11 +34,10 @@
 	return 0;
 }
 
-static int ms5611_spi_read_adc(struct device *dev, s32 *val)
+static int ms5611_spi_read_adc(struct ms5611_state *st, s32 *val)
 {
 	int ret;
 	u8 buf[3] = { MS5611_READ_ADC };
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	ret = spi_write_then_read(st->client, buf, 1, buf, 3);
 	if (ret < 0)
@@ -50,11 +48,10 @@
 	return 0;
 }
 
-static int ms5611_spi_read_adc_temp_and_pressure(struct device *dev,
+static int ms5611_spi_read_adc_temp_and_pressure(struct ms5611_state *st,
 						 s32 *temp, s32 *pressure)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 	const struct ms5611_osr *osr = st->temp_osr;
 
 	/*
@@ -66,7 +63,7 @@
 		return ret;
 
 	usleep_range(osr->conv_usec, osr->conv_usec + (osr->conv_usec / 10UL));
-	ret = ms5611_spi_read_adc(dev, temp);
+	ret = ms5611_spi_read_adc(st, temp);
 	if (ret < 0)
 		return ret;
 
@@ -76,7 +73,7 @@
 		return ret;
 
 	usleep_range(osr->conv_usec, osr->conv_usec + (osr->conv_usec / 10UL));
-	return ms5611_spi_read_adc(dev, pressure);
+	return ms5611_spi_read_adc(st, pressure);
 }
 
 static int ms5611_spi_probe(struct spi_device *spi)
@@ -92,7 +89,7 @@
 	spi_set_drvdata(spi, indio_dev);
 
 	spi->mode = SPI_MODE_0;
-	spi->max_speed_hz = 20000000;
+	spi->max_speed_hz = min(spi->max_speed_hz, 20000000U);
 	spi->bits_per_word = 8;
 	ret = spi_setup(spi);
 	if (ret < 0)
--- linux-ein-5.4.0.orig/drivers/iio/pressure/zpa2326.c
+++ linux-ein-5.4.0/drivers/iio/pressure/zpa2326.c
@@ -664,8 +664,10 @@
 	int err;
 
 	err = pm_runtime_get_sync(indio_dev->dev.parent);
-	if (err < 0)
+	if (err < 0) {
+		pm_runtime_put(indio_dev->dev.parent);
 		return err;
+	}
 
 	if (err > 0) {
 		/*
--- linux-ein-5.4.0.orig/drivers/iio/proximity/as3935.c
+++ linux-ein-5.4.0/drivers/iio/proximity/as3935.c
@@ -61,7 +61,11 @@
 	unsigned long noise_tripped;
 	u32 tune_cap;
 	u32 nflwdth_reg;
-	u8 buffer[16]; /* 8-bit data + 56-bit padding + 64-bit timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u8 chan;
+		s64 timestamp __aligned(8);
+	} scan;
 	u8 buf[2] ____cacheline_aligned;
 };
 
@@ -227,8 +231,8 @@
 	if (ret)
 		goto err_read;
 
-	st->buffer[0] = val & AS3935_DATA_MASK;
-	iio_push_to_buffers_with_timestamp(indio_dev, &st->buffer,
+	st->scan.chan = val & AS3935_DATA_MASK;
+	iio_push_to_buffers_with_timestamp(indio_dev, &st->scan,
 					   iio_get_time_ns(indio_dev));
 err_read:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/proximity/isl29501.c
+++ linux-ein-5.4.0/drivers/iio/proximity/isl29501.c
@@ -938,7 +938,7 @@
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct isl29501_private *isl29501 = iio_priv(indio_dev);
 	const unsigned long *active_mask = indio_dev->active_scan_mask;
-	u32 buffer[4] = {}; /* 1x16-bit + ts */
+	u32 buffer[4] __aligned(8) = {}; /* 1x16-bit + naturally aligned ts */
 
 	if (test_bit(ISL29501_DISTANCE_SCAN_INDEX, active_mask))
 		isl29501_register_read(isl29501, REG_DISTANCE, buffer);
--- linux-ein-5.4.0.orig/drivers/iio/proximity/mb1232.c
+++ linux-ein-5.4.0/drivers/iio/proximity/mb1232.c
@@ -40,6 +40,11 @@
 	 */
 	struct completion	ranging;
 	int			irqnr;
+	/* Ensure correct alignment of data to push to IIO buffer */
+	struct {
+		s16 distance;
+		s64 ts __aligned(8);
+	} scan;
 };
 
 static irqreturn_t mb1232_handle_irq(int irq, void *dev_id)
@@ -113,17 +118,13 @@
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct mb1232_data *data = iio_priv(indio_dev);
-	/*
-	 * triggered buffer
-	 * 16-bit channel + 48-bit padding + 64-bit timestamp
-	 */
-	s16 buffer[8] = { 0 };
 
-	buffer[0] = mb1232_read_distance(data);
-	if (buffer[0] < 0)
+	data->scan.distance = mb1232_read_distance(data);
+	if (data->scan.distance < 0)
 		goto err;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
+					   pf->timestamp);
 
 err:
 	iio_trigger_notify_done(indio_dev->trig);
--- linux-ein-5.4.0.orig/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
+++ linux-ein-5.4.0/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
@@ -43,7 +43,11 @@
 	int (*xfer)(struct lidar_data *data, u8 reg, u8 *val, int len);
 	int i2c_enabled;
 
-	u16 buffer[8]; /* 2 byte distance + 8 byte timestamp */
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		u16 chan;
+		s64 timestamp __aligned(8);
+	} scan;
 };
 
 static const struct iio_chan_spec lidar_channels[] = {
@@ -158,6 +162,7 @@
 	ret = lidar_write_control(data, LIDAR_REG_CONTROL_ACQUIRE);
 	if (ret < 0) {
 		dev_err(&client->dev, "cannot send start measurement command");
+		pm_runtime_put_noidle(&client->dev);
 		return ret;
 	}
 
@@ -227,9 +232,9 @@
 	struct lidar_data *data = iio_priv(indio_dev);
 	int ret;
 
-	ret = lidar_get_measurement(data, data->buffer);
+	ret = lidar_get_measurement(data, &data->scan.chan);
 	if (!ret) {
-		iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+		iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
 						   iio_get_time_ns(indio_dev));
 	} else if (ret != -EINVAL) {
 		dev_err(&data->client->dev, "cannot read LIDAR measurement");
--- linux-ein-5.4.0.orig/drivers/iio/proximity/srf08.c
+++ linux-ein-5.4.0/drivers/iio/proximity/srf08.c
@@ -63,11 +63,11 @@
 	int			range_mm;
 	struct mutex		lock;
 
-	/*
-	 * triggered buffer
-	 * 1x16-bit channel + 3x16 padding + 4x16 timestamp
-	 */
-	s16			buffer[8];
+	/* Ensure timestamp is naturally aligned */
+	struct {
+		s16 chan;
+		s64 timestamp __aligned(8);
+	} scan;
 
 	/* Sensor-Type */
 	enum srf08_sensor_type	sensor_type;
@@ -190,9 +190,9 @@
 
 	mutex_lock(&data->lock);
 
-	data->buffer[0] = sensor_data;
+	data->scan.chan = sensor_data;
 	iio_push_to_buffers_with_timestamp(indio_dev,
-						data->buffer, pf->timestamp);
+					   &data->scan, pf->timestamp);
 
 	mutex_unlock(&data->lock);
 err:
--- linux-ein-5.4.0.orig/drivers/iio/temperature/hid-sensor-temperature.c
+++ linux-ein-5.4.0/drivers/iio/temperature/hid-sensor-temperature.c
@@ -17,7 +17,10 @@
 struct temperature_state {
 	struct hid_sensor_common common_attributes;
 	struct hid_sensor_hub_attribute_info temperature_attr;
-	s32 temperature_data;
+	struct {
+		s32 temperature_data;
+		u64 timestamp __aligned(8);
+	} scan;
 	int scale_pre_decml;
 	int scale_post_decml;
 	int scale_precision;
@@ -34,7 +37,7 @@
 			BIT(IIO_CHAN_INFO_SAMP_FREQ) |
 			BIT(IIO_CHAN_INFO_HYSTERESIS),
 	},
-	IIO_CHAN_SOFT_TIMESTAMP(3),
+	IIO_CHAN_SOFT_TIMESTAMP(1),
 };
 
 /* Adjust channel real bits based on report descriptor */
@@ -125,9 +128,8 @@
 	struct temperature_state *temp_st = iio_priv(indio_dev);
 
 	if (atomic_read(&temp_st->common_attributes.data_ready))
-		iio_push_to_buffers_with_timestamp(indio_dev,
-				&temp_st->temperature_data,
-				iio_get_time_ns(indio_dev));
+		iio_push_to_buffers_with_timestamp(indio_dev, &temp_st->scan,
+						   iio_get_time_ns(indio_dev));
 
 	return 0;
 }
@@ -142,7 +144,7 @@
 
 	switch (usage_id) {
 	case HID_USAGE_SENSOR_DATA_ENVIRONMENTAL_TEMPERATURE:
-		temp_st->temperature_data = *(s32 *)raw_data;
+		temp_st->scan.temperature_data = *(s32 *)raw_data;
 		return 0;
 	default:
 		return -EINVAL;
--- linux-ein-5.4.0.orig/drivers/iio/temperature/max31856.c
+++ linux-ein-5.4.0/drivers/iio/temperature/max31856.c
@@ -284,6 +284,8 @@
 	spi_set_drvdata(spi, indio_dev);
 
 	indio_dev->info = &max31856_info;
+	indio_dev->dev.parent = &spi->dev;
+	indio_dev->dev.of_node = spi->dev.of_node;
 	indio_dev->name = id->name;
 	indio_dev->modes = INDIO_DIRECT_MODE;
 	indio_dev->channels = max31856_channels;
--- linux-ein-5.4.0.orig/drivers/iio/trigger/iio-trig-hrtimer.c
+++ linux-ein-5.4.0/drivers/iio/trigger/iio-trig-hrtimer.c
@@ -102,7 +102,7 @@
 
 	if (state)
 		hrtimer_start(&trig_info->timer, trig_info->period,
-			      HRTIMER_MODE_REL);
+			      HRTIMER_MODE_REL_HARD);
 	else
 		hrtimer_cancel(&trig_info->timer);
 
@@ -132,7 +132,7 @@
 	trig_info->swt.trigger->ops = &iio_hrtimer_trigger_ops;
 	trig_info->swt.trigger->dev.groups = iio_hrtimer_attr_groups;
 
-	hrtimer_init(&trig_info->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	hrtimer_init(&trig_info->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 	trig_info->timer.function = iio_hrtimer_trig_handler;
 
 	trig_info->sampling_frequency = HRTIMER_DEFAULT_SAMPLING_FREQUENCY;
--- linux-ein-5.4.0.orig/drivers/iio/trigger/iio-trig-sysfs.c
+++ linux-ein-5.4.0/drivers/iio/trigger/iio-trig-sysfs.c
@@ -196,6 +196,7 @@
 	}
 
 	iio_trigger_unregister(t->trig);
+	irq_work_sync(&t->work);
 	iio_trigger_free(t->trig);
 
 	list_del(&t->l);
@@ -208,9 +209,13 @@
 
 static int __init iio_sysfs_trig_init(void)
 {
+	int ret;
 	device_initialize(&iio_sysfs_trig_dev);
 	dev_set_name(&iio_sysfs_trig_dev, "iio_sysfs_trigger");
-	return device_add(&iio_sysfs_trig_dev);
+	ret = device_add(&iio_sysfs_trig_dev);
+	if (ret)
+		put_device(&iio_sysfs_trig_dev);
+	return ret;
 }
 module_init(iio_sysfs_trig_init);
 
--- linux-ein-5.4.0.orig/drivers/iio/trigger/stm32-timer-trigger.c
+++ linux-ein-5.4.0/drivers/iio/trigger/stm32-timer-trigger.c
@@ -161,7 +161,8 @@
 	return 0;
 }
 
-static void stm32_timer_stop(struct stm32_timer_trigger *priv)
+static void stm32_timer_stop(struct stm32_timer_trigger *priv,
+			     struct iio_trigger *trig)
 {
 	u32 ccer, cr1;
 
@@ -179,6 +180,12 @@
 	regmap_write(priv->regmap, TIM_PSC, 0);
 	regmap_write(priv->regmap, TIM_ARR, 0);
 
+	/* Force disable master mode */
+	if (stm32_timer_is_trgo2_name(trig->name))
+		regmap_update_bits(priv->regmap, TIM_CR2, TIM_CR2_MMS2, 0);
+	else
+		regmap_update_bits(priv->regmap, TIM_CR2, TIM_CR2_MMS, 0);
+
 	/* Make sure that registers are updated */
 	regmap_update_bits(priv->regmap, TIM_EGR, TIM_EGR_UG, TIM_EGR_UG);
 }
@@ -197,7 +204,7 @@
 		return ret;
 
 	if (freq == 0) {
-		stm32_timer_stop(priv);
+		stm32_timer_stop(priv, trig);
 	} else {
 		ret = stm32_timer_start(priv, trig, freq);
 		if (ret)
@@ -793,6 +800,6 @@
 };
 module_platform_driver(stm32_timer_trigger_driver);
 
-MODULE_ALIAS("platform: stm32-timer-trigger");
+MODULE_ALIAS("platform:stm32-timer-trigger");
 MODULE_DESCRIPTION("STMicroelectronics STM32 Timer Trigger driver");
 MODULE_LICENSE("GPL v2");
--- linux-ein-5.4.0.orig/drivers/infiniband/Kconfig
+++ linux-ein-5.4.0/drivers/infiniband/Kconfig
@@ -80,6 +80,9 @@
 	  This allows the user to config the default GID type that the CM
 	  uses for each device, when initiaing new connections.
 
+config INFINIBAND_VIRT_DMA
+	def_bool !HIGHMEM
+
 if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
 source "drivers/infiniband/hw/mthca/Kconfig"
 source "drivers/infiniband/hw/qib/Kconfig"
--- linux-ein-5.4.0.orig/drivers/infiniband/core/Makefile
+++ linux-ein-5.4.0/drivers/infiniband/core/Makefile
@@ -11,7 +11,7 @@
 				device.o fmr_pool.o cache.o netlink.o \
 				roce_gid_mgmt.o mr_pool.o addr.o sa_query.o \
 				multicast.o mad.o smi.o agent.o mad_rmpp.o \
-				nldev.o restrack.o counters.o
+				nldev.o restrack.o counters.o ib_core_uverbs.o
 
 ib_core-$(CONFIG_SECURITY_INFINIBAND) += security.o
 ib_core-$(CONFIG_CGROUP_RDMA) += cgroup.o
@@ -34,5 +34,5 @@
 				uverbs_std_types_flow_action.o uverbs_std_types_dm.o \
 				uverbs_std_types_mr.o uverbs_std_types_counters.o \
 				uverbs_uapi.o uverbs_std_types_device.o
-ib_uverbs-$(CONFIG_INFINIBAND_USER_MEM) += umem.o
+ib_uverbs-$(CONFIG_INFINIBAND_USER_MEM) += umem.o peer_mem.o
 ib_uverbs-$(CONFIG_INFINIBAND_ON_DEMAND_PAGING) += umem_odp.o
--- linux-ein-5.4.0.orig/drivers/infiniband/core/addr.c
+++ linux-ein-5.4.0/drivers/infiniband/core/addr.c
@@ -76,7 +76,9 @@
 
 static const struct nla_policy ib_nl_addr_policy[LS_NLA_TYPE_MAX] = {
 	[LS_NLA_TYPE_DGID] = {.type = NLA_BINARY,
-		.len = sizeof(struct rdma_nla_ls_gid)},
+		.len = sizeof(struct rdma_nla_ls_gid),
+		.validation_type = NLA_VALIDATE_MIN,
+		.min = sizeof(struct rdma_nla_ls_gid)},
 };
 
 static inline bool ib_nl_is_good_ip_resp(const struct nlmsghdr *nlh)
@@ -139,7 +141,7 @@
 	if (ib_nl_is_good_ip_resp(nlh))
 		ib_nl_process_good_ip_rsep(nlh);
 
-	return skb->len;
+	return 0;
 }
 
 static int ib_nl_ip_send_msg(struct rdma_dev_addr *dev_addr,
@@ -421,16 +423,15 @@
 				(const struct sockaddr_in6 *)dst_sock;
 	struct flowi6 fl6;
 	struct dst_entry *dst;
-	int ret;
 
 	memset(&fl6, 0, sizeof fl6);
 	fl6.daddr = dst_in->sin6_addr;
 	fl6.saddr = src_in->sin6_addr;
 	fl6.flowi6_oif = addr->bound_dev_if;
 
-	ret = ipv6_stub->ipv6_dst_lookup(addr->net, NULL, &dst, &fl6);
-	if (ret < 0)
-		return ret;
+	dst = ipv6_stub->ipv6_dst_lookup_flow(addr->net, NULL, &fl6, NULL);
+	if (IS_ERR(dst))
+		return PTR_ERR(dst);
 
 	if (ipv6_addr_any(&src_in->sin6_addr))
 		src_in->sin6_addr = fl6.saddr;
@@ -646,13 +647,12 @@
 	req->callback = NULL;
 
 	spin_lock_bh(&lock);
+	/*
+	 * Although the work will normally have been canceled by the workqueue,
+	 * it can still be requeued as long as it is on the req_list.
+	 */
+	cancel_delayed_work(&req->work);
 	if (!list_empty(&req->list)) {
-		/*
-		 * Although the work will normally have been canceled by the
-		 * workqueue, it can still be requeued as long as it is on the
-		 * req_list.
-		 */
-		cancel_delayed_work(&req->work);
 		list_del_init(&req->list);
 		kfree(req);
 	}
--- linux-ein-5.4.0.orig/drivers/infiniband/core/cache.c
+++ linux-ein-5.4.0/drivers/infiniband/core/cache.c
@@ -51,9 +51,8 @@
 
 struct ib_update_work {
 	struct work_struct work;
-	struct ib_device  *device;
-	u8                 port_num;
-	bool		   enforce_security;
+	struct ib_event event;
+	bool enforce_security;
 };
 
 union ib_gid zgid;
@@ -130,7 +129,7 @@
 	event.element.port_num	= port;
 	event.event		= IB_EVENT_GID_CHANGE;
 
-	ib_dispatch_event(&event);
+	ib_dispatch_event_clients(&event);
 }
 
 static const char * const gid_type_str[] = {
@@ -1387,9 +1386,8 @@
 	return ret;
 }
 
-static void ib_cache_update(struct ib_device *device,
-			    u8                port,
-			    bool	      enforce_security)
+static int
+ib_cache_update(struct ib_device *device, u8 port, bool enforce_security)
 {
 	struct ib_port_attr       *tprops = NULL;
 	struct ib_pkey_cache      *pkey_cache = NULL, *old_pkey_cache;
@@ -1397,11 +1395,11 @@
 	int                        ret;
 
 	if (!rdma_is_port_valid(device, port))
-		return;
+		return -EINVAL;
 
 	tprops = kmalloc(sizeof *tprops, GFP_KERNEL);
 	if (!tprops)
-		return;
+		return -ENOMEM;
 
 	ret = ib_query_port(device, port, tprops);
 	if (ret) {
@@ -1419,8 +1417,10 @@
 	pkey_cache = kmalloc(struct_size(pkey_cache, table,
 					 tprops->pkey_tbl_len),
 			     GFP_KERNEL);
-	if (!pkey_cache)
+	if (!pkey_cache) {
+		ret = -ENOMEM;
 		goto err;
+	}
 
 	pkey_cache->table_len = tprops->pkey_tbl_len;
 
@@ -1452,50 +1452,84 @@
 
 	kfree(old_pkey_cache);
 	kfree(tprops);
-	return;
+	return 0;
 
 err:
 	kfree(pkey_cache);
 	kfree(tprops);
+	return ret;
 }
 
-static void ib_cache_task(struct work_struct *_work)
+static void ib_cache_event_task(struct work_struct *_work)
 {
 	struct ib_update_work *work =
 		container_of(_work, struct ib_update_work, work);
+	int ret;
+
+	/* Before distributing the cache update event, first sync
+	 * the cache.
+	 */
+	ret = ib_cache_update(work->event.device, work->event.element.port_num,
+			      work->enforce_security);
+
+	/* GID event is notified already for individual GID entries by
+	 * dispatch_gid_change_event(). Hence, notifiy for rest of the
+	 * events.
+	 */
+	if (!ret && work->event.event != IB_EVENT_GID_CHANGE)
+		ib_dispatch_event_clients(&work->event);
 
-	ib_cache_update(work->device,
-			work->port_num,
-			work->enforce_security);
 	kfree(work);
 }
 
-static void ib_cache_event(struct ib_event_handler *handler,
-			   struct ib_event *event)
+static void ib_generic_event_task(struct work_struct *_work)
+{
+	struct ib_update_work *work =
+		container_of(_work, struct ib_update_work, work);
+
+	ib_dispatch_event_clients(&work->event);
+	kfree(work);
+}
+
+static bool is_cache_update_event(const struct ib_event *event)
+{
+	return (event->event == IB_EVENT_PORT_ERR    ||
+		event->event == IB_EVENT_PORT_ACTIVE ||
+		event->event == IB_EVENT_LID_CHANGE  ||
+		event->event == IB_EVENT_PKEY_CHANGE ||
+		event->event == IB_EVENT_CLIENT_REREGISTER ||
+		event->event == IB_EVENT_GID_CHANGE);
+}
+
+/**
+ * ib_dispatch_event - Dispatch an asynchronous event
+ * @event:Event to dispatch
+ *
+ * Low-level drivers must call ib_dispatch_event() to dispatch the
+ * event to all registered event handlers when an asynchronous event
+ * occurs.
+ */
+void ib_dispatch_event(const struct ib_event *event)
 {
 	struct ib_update_work *work;
 
-	if (event->event == IB_EVENT_PORT_ERR    ||
-	    event->event == IB_EVENT_PORT_ACTIVE ||
-	    event->event == IB_EVENT_LID_CHANGE  ||
-	    event->event == IB_EVENT_PKEY_CHANGE ||
-	    event->event == IB_EVENT_CLIENT_REREGISTER ||
-	    event->event == IB_EVENT_GID_CHANGE) {
-		work = kmalloc(sizeof *work, GFP_ATOMIC);
-		if (work) {
-			INIT_WORK(&work->work, ib_cache_task);
-			work->device   = event->device;
-			work->port_num = event->element.port_num;
-			if (event->event == IB_EVENT_PKEY_CHANGE ||
-			    event->event == IB_EVENT_GID_CHANGE)
-				work->enforce_security = true;
-			else
-				work->enforce_security = false;
+	work = kzalloc(sizeof(*work), GFP_ATOMIC);
+	if (!work)
+		return;
 
-			queue_work(ib_wq, &work->work);
-		}
-	}
+	if (is_cache_update_event(event))
+		INIT_WORK(&work->work, ib_cache_event_task);
+	else
+		INIT_WORK(&work->work, ib_generic_event_task);
+
+	work->event = *event;
+	if (event->event == IB_EVENT_PKEY_CHANGE ||
+	    event->event == IB_EVENT_GID_CHANGE)
+		work->enforce_security = true;
+
+	queue_work(ib_wq, &work->work);
 }
+EXPORT_SYMBOL(ib_dispatch_event);
 
 int ib_cache_setup_one(struct ib_device *device)
 {
@@ -1508,12 +1542,12 @@
 	if (err)
 		return err;
 
-	rdma_for_each_port (device, p)
-		ib_cache_update(device, p, true);
+	rdma_for_each_port (device, p) {
+		err = ib_cache_update(device, p, true);
+		if (err)
+			return err;
+	}
 
-	INIT_IB_EVENT_HANDLER(&device->cache.event_handler,
-			      device, ib_cache_event);
-	ib_register_event_handler(&device->cache.event_handler);
 	return 0;
 }
 
@@ -1535,14 +1569,12 @@
 
 void ib_cache_cleanup_one(struct ib_device *device)
 {
-	/* The cleanup function unregisters the event handler,
-	 * waits for all in-progress workqueue elements and cleans
-	 * up the GID cache. This function should be called after
-	 * the device was removed from the devices list and all
-	 * clients were removed, so the cache exists but is
+	/* The cleanup function waits for all in-progress workqueue
+	 * elements and cleans up the GID cache. This function should be
+	 * called after the device was removed from the devices list and
+	 * all clients were removed, so the cache exists but is
 	 * non-functional and shouldn't be updated anymore.
 	 */
-	ib_unregister_event_handler(&device->cache.event_handler);
 	flush_workqueue(ib_wq);
 	gid_table_cleanup_one(device);
 
--- linux-ein-5.4.0.orig/drivers/infiniband/core/cm.c
+++ linux-ein-5.4.0/drivers/infiniband/core/cm.c
@@ -597,18 +597,6 @@
 	return 0;
 }
 
-static int cm_alloc_id(struct cm_id_private *cm_id_priv)
-{
-	int err;
-	u32 id;
-
-	err = xa_alloc_cyclic_irq(&cm.local_id_table, &id, cm_id_priv,
-			xa_limit_32b, &cm.local_id_next, GFP_KERNEL);
-
-	cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
-	return err;
-}
-
 static u32 cm_local_id(__be32 local_id)
 {
 	return (__force u32) (local_id ^ cm.random_id_operand);
@@ -862,6 +850,7 @@
 				 void *context)
 {
 	struct cm_id_private *cm_id_priv;
+	u32 id;
 	int ret;
 
 	cm_id_priv = kzalloc(sizeof *cm_id_priv, GFP_KERNEL);
@@ -873,9 +862,6 @@
 	cm_id_priv->id.cm_handler = cm_handler;
 	cm_id_priv->id.context = context;
 	cm_id_priv->id.remote_cm_qpn = 1;
-	ret = cm_alloc_id(cm_id_priv);
-	if (ret)
-		goto error;
 
 	spin_lock_init(&cm_id_priv->lock);
 	init_completion(&cm_id_priv->comp);
@@ -884,11 +870,20 @@
 	INIT_LIST_HEAD(&cm_id_priv->altr_list);
 	atomic_set(&cm_id_priv->work_count, -1);
 	atomic_set(&cm_id_priv->refcount, 1);
+
+	ret = xa_alloc_cyclic_irq(&cm.local_id_table, &id, NULL, xa_limit_32b,
+				  &cm.local_id_next, GFP_KERNEL);
+	if (ret < 0)
+		goto error;
+	cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
+	xa_store_irq(&cm.local_id_table, cm_local_id(cm_id_priv->id.local_id),
+		     cm_id_priv, GFP_KERNEL);
+
 	return &cm_id_priv->id;
 
 error:
 	kfree(cm_id_priv);
-	return ERR_PTR(-ENOMEM);
+	return ERR_PTR(ret);
 }
 EXPORT_SYMBOL(ib_create_cm_id);
 
@@ -1097,14 +1092,22 @@
 		break;
 	}
 
-	spin_lock_irq(&cm.lock);
+	spin_lock_irq(&cm_id_priv->lock);
+	spin_lock(&cm.lock);
+	/* Required for cleanup paths related cm_req_handler() */
+	if (cm_id_priv->timewait_info) {
+		cm_cleanup_timewait(cm_id_priv->timewait_info);
+		kfree(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
+	}
 	if (!list_empty(&cm_id_priv->altr_list) &&
 	    (!cm_id_priv->altr_send_port_not_ready))
 		list_del(&cm_id_priv->altr_list);
 	if (!list_empty(&cm_id_priv->prim_list) &&
 	    (!cm_id_priv->prim_send_port_not_ready))
 		list_del(&cm_id_priv->prim_list);
-	spin_unlock_irq(&cm.lock);
+	spin_unlock(&cm.lock);
+	spin_unlock_irq(&cm_id_priv->lock);
 
 	cm_free_id(cm_id->local_id);
 	cm_deref_id(cm_id_priv);
@@ -1228,6 +1231,7 @@
 			/* Sharing an ib_cm_id with different handlers is not
 			 * supported */
 			spin_unlock_irqrestore(&cm.lock, flags);
+			ib_destroy_cm_id(cm_id);
 			return ERR_PTR(-EINVAL);
 		}
 		atomic_inc(&cm_id_priv->refcount);
@@ -1420,7 +1424,7 @@
 	/* Verify that we're not in timewait. */
 	cm_id_priv = container_of(cm_id, struct cm_id_private, id);
 	spin_lock_irqsave(&cm_id_priv->lock, flags);
-	if (cm_id->state != IB_CM_IDLE) {
+	if (cm_id->state != IB_CM_IDLE || WARN_ON(cm_id_priv->timewait_info)) {
 		spin_unlock_irqrestore(&cm_id_priv->lock, flags);
 		ret = -EINVAL;
 		goto out;
@@ -1431,6 +1435,7 @@
 							    id.local_id);
 	if (IS_ERR(cm_id_priv->timewait_info)) {
 		ret = PTR_ERR(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
 		goto out;
 	}
 
@@ -1438,12 +1443,12 @@
 				 param->ppath_sgid_attr, &cm_id_priv->av,
 				 cm_id_priv);
 	if (ret)
-		goto error1;
+		goto out;
 	if (param->alternate_path) {
 		ret = cm_init_av_by_path(param->alternate_path, NULL,
 					 &cm_id_priv->alt_av, cm_id_priv);
 		if (ret)
-			goto error1;
+			goto out;
 	}
 	cm_id->service_id = param->service_id;
 	cm_id->service_mask = ~cpu_to_be64(0);
@@ -1461,7 +1466,7 @@
 
 	ret = cm_alloc_msg(cm_id_priv, &cm_id_priv->msg);
 	if (ret)
-		goto error1;
+		goto out;
 
 	req_msg = (struct cm_req_msg *) cm_id_priv->msg->mad;
 	cm_format_req(req_msg, cm_id_priv, param);
@@ -1484,7 +1489,6 @@
 	return 0;
 
 error2:	cm_free_msg(cm_id_priv->msg);
-error1:	kfree(cm_id_priv->timewait_info);
 out:	return ret;
 }
 EXPORT_SYMBOL(ib_send_cm_req);
@@ -1958,6 +1962,7 @@
 							    id.local_id);
 	if (IS_ERR(cm_id_priv->timewait_info)) {
 		ret = PTR_ERR(cm_id_priv->timewait_info);
+		cm_id_priv->timewait_info = NULL;
 		goto destroy;
 	}
 	cm_id_priv->timewait_info->work.remote_id = req_msg->local_comm_id;
@@ -1969,7 +1974,7 @@
 		pr_debug("%s: local_id %d, no listen_cm_id_priv\n", __func__,
 			 be32_to_cpu(cm_id->local_id));
 		ret = -EINVAL;
-		goto free_timeinfo;
+		goto destroy;
 	}
 
 	cm_id_priv->id.cm_handler = listen_cm_id_priv->id.cm_handler;
@@ -2054,8 +2059,6 @@
 rejected:
 	atomic_dec(&cm_id_priv->refcount);
 	cm_deref_id(listen_cm_id_priv);
-free_timeinfo:
-	kfree(cm_id_priv->timewait_info);
 destroy:
 	ib_destroy_cm_id(cm_id);
 	return ret;
@@ -4333,7 +4336,7 @@
 	unsigned long flags;
 	int ret;
 	int count = 0;
-	u8 i;
+	unsigned int i;
 
 	cm_dev = kzalloc(struct_size(cm_dev, port, ib_device->phys_port_cnt),
 			 GFP_KERNEL);
@@ -4345,7 +4348,7 @@
 	cm_dev->going_down = 0;
 
 	set_bit(IB_MGMT_METHOD_SEND, reg_req.method_mask);
-	for (i = 1; i <= ib_device->phys_port_cnt; i++) {
+	rdma_for_each_port (ib_device, i) {
 		if (!rdma_cap_ib_cm(ib_device, i))
 			continue;
 
@@ -4424,7 +4427,7 @@
 		.clr_port_cap_mask = IB_PORT_CM_SUP
 	};
 	unsigned long flags;
-	int i;
+	unsigned int i;
 
 	if (!cm_dev)
 		return;
@@ -4437,7 +4440,7 @@
 	cm_dev->going_down = 1;
 	spin_unlock_irq(&cm.lock);
 
-	for (i = 1; i <= ib_device->phys_port_cnt; i++) {
+	rdma_for_each_port (ib_device, i) {
 		if (!rdma_cap_ib_cm(ib_device, i))
 			continue;
 
--- linux-ein-5.4.0.orig/drivers/infiniband/core/cma.c
+++ linux-ein-5.4.0/drivers/infiniband/core/cma.c
@@ -530,6 +530,11 @@
 	list_del(&id_priv->list);
 	cma_deref_dev(id_priv->cma_dev);
 	id_priv->cma_dev = NULL;
+	id_priv->id.device = NULL;
+	if (id_priv->id.route.addr.dev_addr.sgid_attr) {
+		rdma_put_gid_attr(id_priv->id.route.addr.dev_addr.sgid_attr);
+		id_priv->id.route.addr.dev_addr.sgid_attr = NULL;
+	}
 	mutex_unlock(&lock);
 }
 
@@ -815,6 +820,7 @@
 	u16 pkey, index;
 	u8 p;
 	enum ib_port_state port_state;
+	int ret;
 	int i;
 
 	cma_dev = NULL;
@@ -833,9 +839,14 @@
 
 			if (ib_get_cached_port_state(cur_dev->device, p, &port_state))
 				continue;
-			for (i = 0; !rdma_query_gid(cur_dev->device,
-						    p, i, &gid);
-			     i++) {
+
+			for (i = 0; i < cur_dev->device->port_data[p].immutable.gid_tbl_len;
+			     ++i) {
+				ret = rdma_query_gid(cur_dev->device, p, i,
+						     &gid);
+				if (ret)
+					continue;
+
 				if (!memcmp(&gid, dgid, sizeof(gid))) {
 					cma_dev = cur_dev;
 					sgid = gid;
@@ -1423,7 +1434,7 @@
 		return false;
 
 	memset(&fl4, 0, sizeof(fl4));
-	fl4.flowi4_iif = net_dev->ifindex;
+	fl4.flowi4_oif = net_dev->ifindex;
 	fl4.daddr = daddr;
 	fl4.saddr = saddr;
 
@@ -1631,6 +1642,8 @@
 {
 	struct rdma_id_private *id_priv, *id_priv_dev;
 
+	lockdep_assert_held(&lock);
+
 	if (!bind_list)
 		return ERR_PTR(-EINVAL);
 
@@ -1677,6 +1690,7 @@
 		}
 	}
 
+	mutex_lock(&lock);
 	/*
 	 * Net namespace might be getting deleted while route lookup,
 	 * cm_id lookup is in progress. Therefore, perform netdevice
@@ -1705,8 +1719,8 @@
 		}
 
 		if (!validate_net_dev(*net_dev,
-				 (struct sockaddr *)&req->listen_addr_storage,
-				 (struct sockaddr *)&req->src_addr_storage)) {
+				 (struct sockaddr *)&req->src_addr_storage,
+				 (struct sockaddr *)&req->listen_addr_storage)) {
 			id_priv = ERR_PTR(-EHOSTUNREACH);
 			goto err;
 		}
@@ -1718,6 +1732,7 @@
 	id_priv = cma_find_listener(bind_list, cm_id, ib_event, req, *net_dev);
 err:
 	rcu_read_unlock();
+	mutex_unlock(&lock);
 	if (IS_ERR(id_priv) && *net_dev) {
 		dev_put(*net_dev);
 		*net_dev = NULL;
@@ -1799,19 +1814,30 @@
 	mutex_unlock(&lock);
 }
 
-static void cma_leave_roce_mc_group(struct rdma_id_private *id_priv,
-				    struct cma_multicast *mc)
+static void destroy_mc(struct rdma_id_private *id_priv,
+		       struct cma_multicast *mc)
 {
-	struct rdma_dev_addr *dev_addr = &id_priv->id.route.addr.dev_addr;
-	struct net_device *ndev = NULL;
+	if (rdma_cap_ib_mcast(id_priv->id.device, id_priv->id.port_num)) {
+		ib_sa_free_multicast(mc->multicast.ib);
+		kfree(mc);
+		return;
+	}
 
-	if (dev_addr->bound_dev_if)
-		ndev = dev_get_by_index(dev_addr->net, dev_addr->bound_dev_if);
-	if (ndev) {
-		cma_igmp_send(ndev, &mc->multicast.ib->rec.mgid, false);
-		dev_put(ndev);
+	if (rdma_protocol_roce(id_priv->id.device,
+				      id_priv->id.port_num)) {
+		struct rdma_dev_addr *dev_addr =
+			&id_priv->id.route.addr.dev_addr;
+		struct net_device *ndev = NULL;
+
+		if (dev_addr->bound_dev_if)
+			ndev = dev_get_by_index(dev_addr->net,
+						dev_addr->bound_dev_if);
+		if (ndev) {
+			cma_igmp_send(ndev, &mc->multicast.ib->rec.mgid, false);
+			dev_put(ndev);
+		}
+		kref_put(&mc->mcref, release_mc);
 	}
-	kref_put(&mc->mcref, release_mc);
 }
 
 static void cma_leave_mc_groups(struct rdma_id_private *id_priv)
@@ -1819,16 +1845,10 @@
 	struct cma_multicast *mc;
 
 	while (!list_empty(&id_priv->mc_list)) {
-		mc = container_of(id_priv->mc_list.next,
-				  struct cma_multicast, list);
+		mc = list_first_entry(&id_priv->mc_list, struct cma_multicast,
+				      list);
 		list_del(&mc->list);
-		if (rdma_cap_ib_mcast(id_priv->cma_dev->device,
-				      id_priv->id.port_num)) {
-			ib_sa_free_multicast(mc->multicast.ib);
-			kfree(mc);
-		} else {
-			cma_leave_roce_mc_group(id_priv, mc);
-		}
+		destroy_mc(id_priv, mc);
 	}
 }
 
@@ -1858,6 +1878,7 @@
 				iw_destroy_cm_id(id_priv->cm_id.iw);
 		}
 		cma_leave_mc_groups(id_priv);
+		rdma_restrack_del(&id_priv->res);
 		cma_release_dev(id_priv);
 	}
 
@@ -1870,9 +1891,6 @@
 
 	kfree(id_priv->id.route.path_rec);
 
-	if (id_priv->id.route.addr.dev_addr.sgid_attr)
-		rdma_put_gid_attr(id_priv->id.route.addr.dev_addr.sgid_attr);
-
 	put_net(id_priv->id.route.addr.dev_addr.net);
 	kfree(id_priv);
 }
@@ -2473,6 +2491,8 @@
 	struct net *net = id_priv->id.route.addr.dev_addr.net;
 	int ret;
 
+	lockdep_assert_held(&lock);
+
 	if (cma_family(id_priv) == AF_IB && !rdma_cap_ib_cm(cma_dev->device, 1))
 		return;
 
@@ -2539,7 +2559,7 @@
 {
 	struct rdma_id_private *id_priv;
 
-	if (id->qp_type != IB_QPT_RC)
+	if (id->qp_type != IB_QPT_RC && id->qp_type != IB_QPT_XRC_INI)
 		return -EINVAL;
 
 	id_priv = container_of(id, struct rdma_id_private, id);
@@ -2705,7 +2725,8 @@
 
 	cma_init_resolve_route_work(work, id_priv);
 
-	route->path_rec = kmalloc(sizeof *route->path_rec, GFP_KERNEL);
+	if (!route->path_rec)
+		route->path_rec = kmalloc(sizeof *route->path_rec, GFP_KERNEL);
 	if (!route->path_rec) {
 		ret = -ENOMEM;
 		goto err1;
@@ -2911,6 +2932,7 @@
 err2:
 	kfree(route->path_rec);
 	route->path_rec = NULL;
+	route->num_paths = 0;
 err1:
 	kfree(work);
 	return ret;
@@ -3091,6 +3113,7 @@
 	rdma_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid);
 	rdma_addr_set_dgid(&id_priv->id.route.addr.dev_addr, &gid);
 
+	atomic_inc(&id_priv->refcount);
 	cma_init_resolve_addr_work(work, id_priv);
 	queue_work(cma_wq, &work->work);
 	return 0;
@@ -3117,6 +3140,7 @@
 	rdma_addr_set_dgid(&id_priv->id.route.addr.dev_addr, (union ib_gid *)
 		&(((struct sockaddr_ib *) &id_priv->id.route.addr.dst_addr)->sib_addr));
 
+	atomic_inc(&id_priv->refcount);
 	cma_init_resolve_addr_work(work, id_priv);
 	queue_work(cma_wq, &work->work);
 	return 0;
@@ -3153,19 +3177,26 @@
 	int ret;
 
 	id_priv = container_of(id, struct rdma_id_private, id);
+	memcpy(cma_dst_addr(id_priv), dst_addr, rdma_addr_size(dst_addr));
 	if (id_priv->state == RDMA_CM_IDLE) {
 		ret = cma_bind_addr(id, src_addr, dst_addr);
-		if (ret)
+		if (ret) {
+			memset(cma_dst_addr(id_priv), 0,
+			       rdma_addr_size(dst_addr));
 			return ret;
+		}
 	}
 
-	if (cma_family(id_priv) != dst_addr->sa_family)
+	if (cma_family(id_priv) != dst_addr->sa_family) {
+		memset(cma_dst_addr(id_priv), 0, rdma_addr_size(dst_addr));
 		return -EINVAL;
+	}
 
-	if (!cma_comp_exch(id_priv, RDMA_CM_ADDR_BOUND, RDMA_CM_ADDR_QUERY))
+	if (!cma_comp_exch(id_priv, RDMA_CM_ADDR_BOUND, RDMA_CM_ADDR_QUERY)) {
+		memset(cma_dst_addr(id_priv), 0, rdma_addr_size(dst_addr));
 		return -EINVAL;
+	}
 
-	memcpy(cma_dst_addr(id_priv), dst_addr, rdma_addr_size(dst_addr));
 	if (cma_any_addr(dst_addr)) {
 		ret = cma_resolve_loopback(id_priv);
 	} else {
@@ -3235,6 +3266,8 @@
 	u64 sid, mask;
 	__be16 port;
 
+	lockdep_assert_held(&lock);
+
 	addr = cma_src_addr(id_priv);
 	port = htons(bind_list->port);
 
@@ -3263,6 +3296,8 @@
 	struct rdma_bind_list *bind_list;
 	int ret;
 
+	lockdep_assert_held(&lock);
+
 	bind_list = kzalloc(sizeof *bind_list, GFP_KERNEL);
 	if (!bind_list)
 		return -ENOMEM;
@@ -3289,6 +3324,8 @@
 	struct sockaddr  *saddr = cma_src_addr(id_priv);
 	__be16 dport = cma_port(daddr);
 
+	lockdep_assert_held(&lock);
+
 	hlist_for_each_entry(cur_id, &bind_list->owners, node) {
 		struct sockaddr  *cur_daddr = cma_dst_addr(cur_id);
 		struct sockaddr  *cur_saddr = cma_src_addr(cur_id);
@@ -3328,6 +3365,8 @@
 	unsigned int rover;
 	struct net *net = id_priv->id.route.addr.dev_addr.net;
 
+	lockdep_assert_held(&lock);
+
 	inet_get_local_port_range(net, &low, &high);
 	remaining = (high - low) + 1;
 	rover = prandom_u32() % remaining + low;
@@ -3375,6 +3414,8 @@
 	struct rdma_id_private *cur_id;
 	struct sockaddr *addr, *cur_addr;
 
+	lockdep_assert_held(&lock);
+
 	addr = cma_src_addr(id_priv);
 	hlist_for_each_entry(cur_id, &bind_list->owners, node) {
 		if (id_priv == cur_id)
@@ -3405,6 +3446,8 @@
 	unsigned short snum;
 	int ret;
 
+	lockdep_assert_held(&lock);
+
 	snum = ntohs(cma_port(cma_src_addr(id_priv)));
 	if (snum < PROT_SOCK && !capable(CAP_NET_BIND_SERVICE))
 		return -EACCES;
@@ -3546,7 +3589,7 @@
 	}
 
 	id_priv->backlog = backlog;
-	if (id->device) {
+	if (id_priv->cma_dev) {
 		if (rdma_cap_ib_cm(id->device, 1)) {
 			ret = cma_ib_listen(id_priv);
 			if (ret)
@@ -4014,14 +4057,15 @@
 int __rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param,
 		  const char *caller)
 {
-	struct rdma_id_private *id_priv;
+	struct rdma_id_private *id_priv =
+		container_of(id, struct rdma_id_private, id);
 	int ret;
 
-	id_priv = container_of(id, struct rdma_id_private, id);
+	lockdep_assert_held(&id_priv->handler_mutex);
 
 	rdma_restrack_set_task(&id_priv->res, caller);
 
-	if (!cma_comp(id_priv, RDMA_CM_CONNECT))
+	if (READ_ONCE(id_priv->state) != RDMA_CM_CONNECT)
 		return -EINVAL;
 
 	if (!id->qp && conn_param) {
@@ -4061,6 +4105,24 @@
 }
 EXPORT_SYMBOL(__rdma_accept);
 
+void rdma_lock_handler(struct rdma_cm_id *id)
+{
+	struct rdma_id_private *id_priv =
+		container_of(id, struct rdma_id_private, id);
+
+	mutex_lock(&id_priv->handler_mutex);
+}
+EXPORT_SYMBOL(rdma_lock_handler);
+
+void rdma_unlock_handler(struct rdma_cm_id *id)
+{
+	struct rdma_id_private *id_priv =
+		container_of(id, struct rdma_id_private, id);
+
+	mutex_unlock(&id_priv->handler_mutex);
+}
+EXPORT_SYMBOL(rdma_unlock_handler);
+
 int rdma_notify(struct rdma_cm_id *id, enum ib_event_type event)
 {
 	struct rdma_id_private *id_priv;
@@ -4154,16 +4216,6 @@
 	else
 		pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to join multicast. status %d\n",
 				     status);
-	mutex_lock(&id_priv->qp_mutex);
-	if (!status && id_priv->id.qp) {
-		status = ib_attach_mcast(id_priv->id.qp, &multicast->rec.mgid,
-					 be16_to_cpu(multicast->rec.mlid));
-		if (status)
-			pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to attach QP. status %d\n",
-					     status);
-	}
-	mutex_unlock(&id_priv->qp_mutex);
-
 	event.status = status;
 	event.param.ud.private_data = mc->context;
 	if (!status) {
@@ -4418,6 +4470,10 @@
 	struct cma_multicast *mc;
 	int ret;
 
+	/* Not supported for kernel QPs */
+	if (WARN_ON(id->qp))
+		return -EINVAL;
+
 	if (!id->device)
 		return -EINVAL;
 
@@ -4468,25 +4524,14 @@
 	id_priv = container_of(id, struct rdma_id_private, id);
 	spin_lock_irq(&id_priv->lock);
 	list_for_each_entry(mc, &id_priv->mc_list, list) {
-		if (!memcmp(&mc->addr, addr, rdma_addr_size(addr))) {
-			list_del(&mc->list);
-			spin_unlock_irq(&id_priv->lock);
-
-			if (id->qp)
-				ib_detach_mcast(id->qp,
-						&mc->multicast.ib->rec.mgid,
-						be16_to_cpu(mc->multicast.ib->rec.mlid));
-
-			BUG_ON(id_priv->cma_dev->device != id->device);
-
-			if (rdma_cap_ib_mcast(id->device, id->port_num)) {
-				ib_sa_free_multicast(mc->multicast.ib);
-				kfree(mc);
-			} else if (rdma_protocol_roce(id->device, id->port_num)) {
-				cma_leave_roce_mc_group(id_priv, mc);
-			}
-			return;
-		}
+		if (memcmp(&mc->addr, addr, rdma_addr_size(addr)) != 0)
+			continue;
+		list_del(&mc->list);
+		spin_unlock_irq(&id_priv->lock);
+
+		WARN_ON(id_priv->cma_dev->device != id->device);
+		destroy_mc(id_priv, mc);
+		return;
 	}
 	spin_unlock_irq(&id_priv->lock);
 }
@@ -4710,6 +4755,19 @@
 {
 	int ret;
 
+	/*
+	 * There is a rare lock ordering dependency in cma_netdev_callback()
+	 * that only happens when bonding is enabled. Teach lockdep that rtnl
+	 * must never be nested under lock so it can find these without having
+	 * to test with bonding.
+	 */
+	if (IS_ENABLED(CONFIG_LOCKDEP)) {
+		rtnl_lock();
+		mutex_lock(&lock);
+		mutex_unlock(&lock);
+		rtnl_unlock();
+	}
+
 	cma_wq = alloc_ordered_workqueue("rdma_cm", WQ_MEM_RECLAIM);
 	if (!cma_wq)
 		return -ENOMEM;
@@ -4736,6 +4794,7 @@
 err:
 	unregister_netdevice_notifier(&cma_nb);
 	ib_sa_unregister_client(&sa_client);
+	unregister_pernet_subsys(&cma_pernet_operations);
 err_wq:
 	destroy_workqueue(cma_wq);
 	return ret;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/cma_configfs.c
+++ linux-ein-5.4.0/drivers/infiniband/core/cma_configfs.c
@@ -218,7 +218,7 @@
 	}
 
 	for (i = 0; i < ports_num; i++) {
-		char port_str[10];
+		char port_str[11];
 
 		ports[i].port_num = i + 1;
 		snprintf(port_str, sizeof(port_str), "%u", i + 1);
@@ -322,8 +322,21 @@
 	return ERR_PTR(err);
 }
 
+static void drop_cma_dev(struct config_group *cgroup, struct config_item *item)
+{
+	struct config_group *group =
+		container_of(item, struct config_group, cg_item);
+	struct cma_dev_group *cma_dev_group =
+		container_of(group, struct cma_dev_group, device_group);
+
+	configfs_remove_default_groups(&cma_dev_group->ports_group);
+	configfs_remove_default_groups(&cma_dev_group->device_group);
+	config_item_put(item);
+}
+
 static struct configfs_group_operations cma_subsys_group_ops = {
 	.make_group	= make_cma_dev,
+	.drop_item	= drop_cma_dev,
 };
 
 static const struct config_item_type cma_subsys_type = {
--- linux-ein-5.4.0.orig/drivers/infiniband/core/core_priv.h
+++ linux-ein-5.4.0/drivers/infiniband/core/core_priv.h
@@ -149,6 +149,7 @@
 int ib_cache_setup_one(struct ib_device *device);
 void ib_cache_cleanup_one(struct ib_device *device);
 void ib_cache_release_one(struct ib_device *device);
+void ib_dispatch_event_clients(struct ib_event *event);
 
 #ifdef CONFIG_CGROUP_RDMA
 void ib_device_register_rdmacg(struct ib_device *device);
@@ -337,6 +338,21 @@
 	qp->pd = pd;
 	qp->uobject = uobj;
 	qp->real_qp = qp;
+
+	qp->qp_type = attr->qp_type;
+	qp->qp_context = attr->qp_context;
+	qp->rwq_ind_tbl = attr->rwq_ind_tbl;
+	qp->send_cq = attr->send_cq;
+	qp->recv_cq = attr->recv_cq;
+	qp->srq = attr->srq;
+	qp->rwq_ind_tbl = attr->rwq_ind_tbl;
+	qp->event_handler = attr->event_handler;
+
+	atomic_set(&qp->usecnt, 0);
+	spin_lock_init(&qp->mr_lock);
+	INIT_LIST_HEAD(&qp->rdma_mrs);
+	INIT_LIST_HEAD(&qp->sig_mrs);
+
 	/*
 	 * We don't track XRC QPs for now, because they don't have PD
 	 * and more importantly they are created internaly by driver,
@@ -388,4 +404,15 @@
 
 int rdma_nl_net_init(struct rdma_dev_net *rnet);
 void rdma_nl_net_exit(struct rdma_dev_net *rnet);
+
+struct rdma_umap_priv {
+	struct vm_area_struct *vma;
+	struct list_head list;
+	struct rdma_user_mmap_entry *entry;
+};
+
+void rdma_umap_priv_init(struct rdma_umap_priv *priv,
+			 struct vm_area_struct *vma,
+			 struct rdma_user_mmap_entry *entry);
+
 #endif /* _CORE_PRIV_H */
--- linux-ein-5.4.0.orig/drivers/infiniband/core/counters.c
+++ linux-ein-5.4.0/drivers/infiniband/core/counters.c
@@ -195,7 +195,7 @@
 	return ret;
 }
 
-static void counter_history_stat_update(const struct rdma_counter *counter)
+static void counter_history_stat_update(struct rdma_counter *counter)
 {
 	struct ib_device *dev = counter->device;
 	struct rdma_port_counter *port_counter;
@@ -205,6 +205,8 @@
 	if (!port_counter->hstats)
 		return;
 
+	rdma_counter_query_stats(counter);
+
 	for (i = 0; i < counter->stats->num_counters; i++)
 		port_counter->hstats->value[i] += counter->stats->value[i];
 }
@@ -282,6 +284,9 @@
 	struct rdma_counter *counter;
 	int ret;
 
+	if (!qp->res.valid || rdma_is_kernel_res(&qp->res))
+		return 0;
+
 	if (!rdma_is_port_valid(dev, port))
 		return -EINVAL;
 
@@ -463,10 +468,15 @@
 int rdma_counter_bind_qpn(struct ib_device *dev, u8 port,
 			  u32 qp_num, u32 counter_id)
 {
+	struct rdma_port_counter *port_counter;
 	struct rdma_counter *counter;
 	struct ib_qp *qp;
 	int ret;
 
+	port_counter = &dev->port_data[port].port_counter;
+	if (port_counter->mode.mode == RDMA_COUNTER_MODE_AUTO)
+		return -EINVAL;
+
 	qp = rdma_counter_get_qp(dev, qp_num);
 	if (!qp)
 		return -ENOENT;
@@ -477,7 +487,7 @@
 		goto err;
 	}
 
-	if (counter->res.task != qp->res.task) {
+	if (rdma_is_kernel_res(&counter->res) != rdma_is_kernel_res(&qp->res)) {
 		ret = -EINVAL;
 		goto err_task;
 	}
@@ -503,6 +513,7 @@
 int rdma_counter_bind_qpn_alloc(struct ib_device *dev, u8 port,
 				u32 qp_num, u32 *counter_id)
 {
+	struct rdma_port_counter *port_counter;
 	struct rdma_counter *counter;
 	struct ib_qp *qp;
 	int ret;
@@ -510,9 +521,13 @@
 	if (!rdma_is_port_valid(dev, port))
 		return -EINVAL;
 
-	if (!dev->port_data[port].port_counter.hstats)
+	port_counter = &dev->port_data[port].port_counter;
+	if (!port_counter->hstats)
 		return -EOPNOTSUPP;
 
+	if (port_counter->mode.mode == RDMA_COUNTER_MODE_AUTO)
+		return -EINVAL;
+
 	qp = rdma_counter_get_qp(dev, qp_num);
 	if (!qp)
 		return -ENOENT;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/device.c
+++ linux-ein-5.4.0/drivers/infiniband/core/device.c
@@ -591,6 +591,7 @@
 
 	INIT_LIST_HEAD(&device->event_handler_list);
 	spin_lock_init(&device->event_handler_lock);
+	init_rwsem(&device->event_handler_rwsem);
 	mutex_init(&device->unregistration_lock);
 	/*
 	 * client_data needs to be alloc because we don't want our mark to be
@@ -898,7 +899,9 @@
 	cdev->dev.parent = device->dev.parent;
 	rdma_init_coredev(cdev, device, read_pnet(&rnet->net));
 	cdev->dev.release = compatdev_release;
-	dev_set_name(&cdev->dev, "%s", dev_name(&device->dev));
+	ret = dev_set_name(&cdev->dev, "%s", dev_name(&device->dev));
+	if (ret)
+		goto add_err;
 
 	ret = device_add(&cdev->dev);
 	if (ret)
@@ -1199,9 +1202,21 @@
 		WARN_ON_ONCE(!parent);
 		device->dma_device = parent;
 	}
-	/* Setup default max segment size for all IB devices */
-	dma_set_max_seg_size(device->dma_device, SZ_2G);
 
+	if (!device->dev.dma_parms) {
+		if (parent) {
+			/*
+			 * The caller did not provide DMA parameters, so
+			 * 'parent' probably represents a PCI device. The PCI
+			 * core sets the maximum segment size to 64
+			 * KB. Increase this parameter to 2 GB.
+			 */
+			device->dev.dma_parms = parent->dma_parms;
+			dma_set_max_seg_size(device->dma_device, SZ_2G);
+		} else {
+			WARN_ON_ONCE(true);
+		}
+	}
 }
 
 /*
@@ -1315,6 +1330,10 @@
 	return ret;
 }
 
+static void prevent_dealloc_device(struct ib_device *ib_dev)
+{
+}
+
 /**
  * ib_register_device - Register an IB device with IB core
  * @device:Device to register
@@ -1368,9 +1387,6 @@
 	}
 
 	ret = enable_device_and_get(device);
-	dev_set_uevent_suppress(&device->dev, false);
-	/* Mark for userspace that device is ready */
-	kobject_uevent(&device->dev.kobj, KOBJ_ADD);
 	if (ret) {
 		void (*dealloc_fn)(struct ib_device *);
 
@@ -1382,16 +1398,20 @@
 		 * possibility for a parallel unregistration along with this
 		 * error flow. Since we have a refcount here we know any
 		 * parallel flow is stopped in disable_device and will see the
-		 * NULL pointers, causing the responsibility to
+		 * special dealloc_driver pointer, causing the responsibility to
 		 * ib_dealloc_device() to revert back to this thread.
 		 */
 		dealloc_fn = device->ops.dealloc_driver;
-		device->ops.dealloc_driver = NULL;
+		device->ops.dealloc_driver = prevent_dealloc_device;
 		ib_device_put(device);
 		__ib_unregister_device(device);
 		device->ops.dealloc_driver = dealloc_fn;
+		dev_set_uevent_suppress(&device->dev, false);
 		return ret;
 	}
+	dev_set_uevent_suppress(&device->dev, false);
+	/* Mark for userspace that device is ready */
+	kobject_uevent(&device->dev.kobj, KOBJ_ADD);
 	ib_device_put(device);
 
 	return 0;
@@ -1434,7 +1454,8 @@
 	 * Drivers using the new flow may not call ib_dealloc_device except
 	 * in error unwind prior to registration success.
 	 */
-	if (ib_dev->ops.dealloc_driver) {
+	if (ib_dev->ops.dealloc_driver &&
+	    ib_dev->ops.dealloc_driver != prevent_dealloc_device) {
 		WARN_ON(kref_read(&ib_dev->dev.kobj.kref) <= 1);
 		ib_dealloc_device(ib_dev);
 	}
@@ -1920,17 +1941,15 @@
  *
  * ib_register_event_handler() registers an event handler that will be
  * called back when asynchronous IB events occur (as defined in
- * chapter 11 of the InfiniBand Architecture Specification).  This
- * callback may occur in interrupt context.
+ * chapter 11 of the InfiniBand Architecture Specification). This
+ * callback occurs in workqueue context.
  */
 void ib_register_event_handler(struct ib_event_handler *event_handler)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&event_handler->device->event_handler_lock, flags);
+	down_write(&event_handler->device->event_handler_rwsem);
 	list_add_tail(&event_handler->list,
 		      &event_handler->device->event_handler_list);
-	spin_unlock_irqrestore(&event_handler->device->event_handler_lock, flags);
+	up_write(&event_handler->device->event_handler_rwsem);
 }
 EXPORT_SYMBOL(ib_register_event_handler);
 
@@ -1943,35 +1962,23 @@
  */
 void ib_unregister_event_handler(struct ib_event_handler *event_handler)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&event_handler->device->event_handler_lock, flags);
+	down_write(&event_handler->device->event_handler_rwsem);
 	list_del(&event_handler->list);
-	spin_unlock_irqrestore(&event_handler->device->event_handler_lock, flags);
+	up_write(&event_handler->device->event_handler_rwsem);
 }
 EXPORT_SYMBOL(ib_unregister_event_handler);
 
-/**
- * ib_dispatch_event - Dispatch an asynchronous event
- * @event:Event to dispatch
- *
- * Low-level drivers must call ib_dispatch_event() to dispatch the
- * event to all registered event handlers when an asynchronous event
- * occurs.
- */
-void ib_dispatch_event(struct ib_event *event)
+void ib_dispatch_event_clients(struct ib_event *event)
 {
-	unsigned long flags;
 	struct ib_event_handler *handler;
 
-	spin_lock_irqsave(&event->device->event_handler_lock, flags);
+	down_read(&event->device->event_handler_rwsem);
 
 	list_for_each_entry(handler, &event->device->event_handler_list, list)
 		handler->handler(handler, event);
 
-	spin_unlock_irqrestore(&event->device->event_handler_lock, flags);
+	up_read(&event->device->event_handler_rwsem);
 }
-EXPORT_SYMBOL(ib_dispatch_event);
 
 static int iw_query_port(struct ib_device *device,
 			   u8 port_num,
@@ -2397,8 +2404,12 @@
 		rc = device->ops.modify_port(device, port_num,
 					     port_modify_mask,
 					     port_modify);
+	else if (rdma_protocol_roce(device, port_num) &&
+		 ((port_modify->set_port_cap_mask & ~IB_PORT_CM_SUP) == 0 ||
+		  (port_modify->clr_port_cap_mask & ~IB_PORT_CM_SUP) == 0))
+		rc = 0;
 	else
-		rc = rdma_protocol_roce(device, port_num) ? 0 : -ENOSYS;
+		rc = -EOPNOTSUPP;
 	return rc;
 }
 EXPORT_SYMBOL(ib_modify_port);
@@ -2427,7 +2438,8 @@
 		     ++i) {
 			ret = rdma_query_gid(device, port, i, &tmp_gid);
 			if (ret)
-				return ret;
+				continue;
+
 			if (!memcmp(&tmp_gid, gid, sizeof *gid)) {
 				*port_num = port;
 				if (index)
@@ -2630,6 +2642,7 @@
 	SET_DEVICE_OP(dev_ops, map_mr_sg_pi);
 	SET_DEVICE_OP(dev_ops, map_phys_fmr);
 	SET_DEVICE_OP(dev_ops, mmap);
+	SET_DEVICE_OP(dev_ops, mmap_free);
 	SET_DEVICE_OP(dev_ops, modify_ah);
 	SET_DEVICE_OP(dev_ops, modify_cq);
 	SET_DEVICE_OP(dev_ops, modify_device);
@@ -2750,10 +2763,18 @@
 
 	nldev_init();
 	rdma_nl_register(RDMA_NL_LS, ibnl_ls_cb_table);
-	roce_gid_mgmt_init();
+	ret = roce_gid_mgmt_init();
+	if (ret) {
+		pr_warn("Couldn't init RoCE GID management\n");
+		goto err_parent;
+	}
 
 	return 0;
 
+err_parent:
+	rdma_nl_unregister(RDMA_NL_LS);
+	nldev_exit();
+	unregister_pernet_device(&rdma_dev_net_ops);
 err_compat:
 	unregister_blocking_lsm_notifier(&ibdev_lsm_nb);
 err_sa:
@@ -2776,8 +2797,8 @@
 static void __exit ib_core_cleanup(void)
 {
 	roce_gid_mgmt_cleanup();
-	nldev_exit();
 	rdma_nl_unregister(RDMA_NL_LS);
+	nldev_exit();
 	unregister_pernet_device(&rdma_dev_net_ops);
 	unregister_blocking_lsm_notifier(&ibdev_lsm_nb);
 	ib_sa_cleanup();
--- linux-ein-5.4.0.orig/drivers/infiniband/core/ib_core_uverbs.c
+++ linux-ein-5.4.0/drivers/infiniband/core/ib_core_uverbs.c
@@ -0,0 +1,335 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
+/*
+ * Copyright (c) 2005 Mellanox Technologies. All rights reserved.
+ * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2019 Marvell. All rights reserved.
+ */
+#include <linux/xarray.h>
+#include "uverbs.h"
+#include "core_priv.h"
+
+/**
+ * rdma_umap_priv_init() - Initialize the private data of a vma
+ *
+ * @priv: The already allocated private data
+ * @vma: The vm area struct that needs private data
+ * @entry: entry into the mmap_xa that needs to be linked with
+ *       this vma
+ *
+ * Each time we map IO memory into user space this keeps track of the
+ * mapping. When the device is hot-unplugged we 'zap' the mmaps in user space
+ * to point to the zero page and allow the hot unplug to proceed.
+ *
+ * This is necessary for cases like PCI physical hot unplug as the actual BAR
+ * memory may vanish after this and access to it from userspace could MCE.
+ *
+ * RDMA drivers supporting disassociation must have their user space designed
+ * to cope in some way with their IO pages going to the zero page.
+ *
+ */
+void rdma_umap_priv_init(struct rdma_umap_priv *priv,
+			 struct vm_area_struct *vma,
+			 struct rdma_user_mmap_entry *entry)
+{
+	struct ib_uverbs_file *ufile = vma->vm_file->private_data;
+
+	priv->vma = vma;
+	if (entry) {
+		kref_get(&entry->ref);
+		priv->entry = entry;
+	}
+	vma->vm_private_data = priv;
+	/* vm_ops is setup in ib_uverbs_mmap() to avoid module dependencies */
+
+	mutex_lock(&ufile->umap_lock);
+	list_add(&priv->list, &ufile->umaps);
+	mutex_unlock(&ufile->umap_lock);
+}
+EXPORT_SYMBOL(rdma_umap_priv_init);
+
+/**
+ * rdma_user_mmap_io() - Map IO memory into a process
+ *
+ * @ucontext: associated user context
+ * @vma: the vma related to the current mmap call
+ * @pfn: pfn to map
+ * @size: size to map
+ * @prot: pgprot to use in remap call
+ * @entry: mmap_entry retrieved from rdma_user_mmap_entry_get(), or NULL
+ *         if mmap_entry is not used by the driver
+ *
+ * This is to be called by drivers as part of their mmap() functions if they
+ * wish to send something like PCI-E BAR memory to userspace.
+ *
+ * Return -EINVAL on wrong flags or size, -EAGAIN on failure to map. 0 on
+ * success.
+ */
+int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma,
+		      unsigned long pfn, unsigned long size, pgprot_t prot,
+		      struct rdma_user_mmap_entry *entry)
+{
+	struct ib_uverbs_file *ufile = ucontext->ufile;
+	struct rdma_umap_priv *priv;
+
+	if (!(vma->vm_flags & VM_SHARED))
+		return -EINVAL;
+
+	if (vma->vm_end - vma->vm_start != size)
+		return -EINVAL;
+
+	/* Driver is using this wrong, must be called by ib_uverbs_mmap */
+	if (WARN_ON(!vma->vm_file ||
+		    vma->vm_file->private_data != ufile))
+		return -EINVAL;
+	lockdep_assert_held(&ufile->device->disassociate_srcu);
+
+	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+	if (!priv)
+		return -ENOMEM;
+
+	vma->vm_page_prot = prot;
+	if (io_remap_pfn_range(vma, vma->vm_start, pfn, size, prot)) {
+		kfree(priv);
+		return -EAGAIN;
+	}
+
+	rdma_umap_priv_init(priv, vma, entry);
+	return 0;
+}
+EXPORT_SYMBOL(rdma_user_mmap_io);
+
+/**
+ * rdma_user_mmap_entry_get_pgoff() - Get an entry from the mmap_xa
+ *
+ * @ucontext: associated user context
+ * @pgoff: The mmap offset >> PAGE_SHIFT
+ *
+ * This function is called when a user tries to mmap with an offset (returned
+ * by rdma_user_mmap_get_offset()) it initially received from the driver. The
+ * rdma_user_mmap_entry was created by the function
+ * rdma_user_mmap_entry_insert().  This function increases the refcnt of the
+ * entry so that it won't be deleted from the xarray in the meantime.
+ *
+ * Return an reference to an entry if exists or NULL if there is no
+ * match. rdma_user_mmap_entry_put() must be called to put the reference.
+ */
+struct rdma_user_mmap_entry *
+rdma_user_mmap_entry_get_pgoff(struct ib_ucontext *ucontext,
+			       unsigned long pgoff)
+{
+	struct rdma_user_mmap_entry *entry;
+
+	if (pgoff > U32_MAX)
+		return NULL;
+
+	xa_lock(&ucontext->mmap_xa);
+
+	entry = xa_load(&ucontext->mmap_xa, pgoff);
+
+	/*
+	 * If refcount is zero, entry is already being deleted, driver_removed
+	 * indicates that the no further mmaps are possible and we waiting for
+	 * the active VMAs to be closed.
+	 */
+	if (!entry || entry->start_pgoff != pgoff || entry->driver_removed ||
+	    !kref_get_unless_zero(&entry->ref))
+		goto err;
+
+	xa_unlock(&ucontext->mmap_xa);
+
+	ibdev_dbg(ucontext->device, "mmap: pgoff[%#lx] npages[%#zx] returned\n",
+		  pgoff, entry->npages);
+
+	return entry;
+
+err:
+	xa_unlock(&ucontext->mmap_xa);
+	return NULL;
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_get_pgoff);
+
+/**
+ * rdma_user_mmap_entry_get() - Get an entry from the mmap_xa
+ *
+ * @ucontext: associated user context
+ * @vma: the vma being mmap'd into
+ *
+ * This function is like rdma_user_mmap_entry_get_pgoff() except that it also
+ * checks that the VMA is correct.
+ */
+struct rdma_user_mmap_entry *
+rdma_user_mmap_entry_get(struct ib_ucontext *ucontext,
+			 struct vm_area_struct *vma)
+{
+	struct rdma_user_mmap_entry *entry;
+
+	if (!(vma->vm_flags & VM_SHARED))
+		return NULL;
+	entry = rdma_user_mmap_entry_get_pgoff(ucontext, vma->vm_pgoff);
+	if (!entry)
+		return NULL;
+	if (entry->npages * PAGE_SIZE != vma->vm_end - vma->vm_start) {
+		rdma_user_mmap_entry_put(entry);
+		return NULL;
+	}
+	return entry;
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_get);
+
+static void rdma_user_mmap_entry_free(struct kref *kref)
+{
+	struct rdma_user_mmap_entry *entry =
+		container_of(kref, struct rdma_user_mmap_entry, ref);
+	struct ib_ucontext *ucontext = entry->ucontext;
+	unsigned long i;
+
+	/*
+	 * Erase all entries occupied by this single entry, this is deferred
+	 * until all VMA are closed so that the mmap offsets remain unique.
+	 */
+	xa_lock(&ucontext->mmap_xa);
+	for (i = 0; i < entry->npages; i++)
+		__xa_erase(&ucontext->mmap_xa, entry->start_pgoff + i);
+	xa_unlock(&ucontext->mmap_xa);
+
+	ibdev_dbg(ucontext->device, "mmap: pgoff[%#lx] npages[%#zx] removed\n",
+		  entry->start_pgoff, entry->npages);
+
+	if (ucontext->device->ops.mmap_free)
+		ucontext->device->ops.mmap_free(entry);
+}
+
+/**
+ * rdma_user_mmap_entry_put() - Drop reference to the mmap entry
+ *
+ * @entry: an entry in the mmap_xa
+ *
+ * This function is called when the mapping is closed if it was
+ * an io mapping or when the driver is done with the entry for
+ * some other reason.
+ * Should be called after rdma_user_mmap_entry_get was called
+ * and entry is no longer needed. This function will erase the
+ * entry and free it if its refcnt reaches zero.
+ */
+void rdma_user_mmap_entry_put(struct rdma_user_mmap_entry *entry)
+{
+	kref_put(&entry->ref, rdma_user_mmap_entry_free);
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_put);
+
+/**
+ * rdma_user_mmap_entry_remove() - Drop reference to entry and
+ *				   mark it as unmmapable
+ *
+ * @entry: the entry to insert into the mmap_xa
+ *
+ * Drivers can call this to prevent userspace from creating more mappings for
+ * entry, however existing mmaps continue to exist and ops->mmap_free() will
+ * not be called until all user mmaps are destroyed.
+ */
+void rdma_user_mmap_entry_remove(struct rdma_user_mmap_entry *entry)
+{
+	if (!entry)
+		return;
+
+	entry->driver_removed = true;
+	kref_put(&entry->ref, rdma_user_mmap_entry_free);
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_remove);
+
+/**
+ * rdma_user_mmap_entry_insert() - Insert an entry to the mmap_xa
+ *
+ * @ucontext: associated user context.
+ * @entry: the entry to insert into the mmap_xa
+ * @length: length of the address that will be mmapped
+ *
+ * This function should be called by drivers that use the rdma_user_mmap
+ * interface for implementing their mmap syscall A database of mmap offsets is
+ * handled in the core and helper functions are provided to insert entries
+ * into the database and extract entries when the user calls mmap with the
+ * given offset.  The function allocates a unique page offset that should be
+ * provided to user, the user will use the offset to retrieve information such
+ * as address to be mapped and how.
+ *
+ * Return: 0 on success and -ENOMEM on failure
+ */
+int rdma_user_mmap_entry_insert(struct ib_ucontext *ucontext,
+				struct rdma_user_mmap_entry *entry,
+				size_t length)
+{
+	struct ib_uverbs_file *ufile = ucontext->ufile;
+	XA_STATE(xas, &ucontext->mmap_xa, 0);
+	u32 xa_first, xa_last, npages;
+	int err;
+	u32 i;
+
+	if (!entry)
+		return -EINVAL;
+
+	kref_init(&entry->ref);
+	entry->ucontext = ucontext;
+
+	/*
+	 * We want the whole allocation to be done without interruption from a
+	 * different thread. The allocation requires finding a free range and
+	 * storing. During the xa_insert the lock could be released, possibly
+	 * allowing another thread to choose the same range.
+	 */
+	mutex_lock(&ufile->umap_lock);
+
+	xa_lock(&ucontext->mmap_xa);
+
+	/* We want to find an empty range */
+	npages = (u32)DIV_ROUND_UP(length, PAGE_SIZE);
+	entry->npages = npages;
+	while (true) {
+		/* First find an empty index */
+		xas_find_marked(&xas, U32_MAX, XA_FREE_MARK);
+		if (xas.xa_node == XAS_RESTART)
+			goto err_unlock;
+
+		xa_first = xas.xa_index;
+
+		/* Is there enough room to have the range? */
+		if (check_add_overflow(xa_first, npages, &xa_last))
+			goto err_unlock;
+
+		/*
+		 * Now look for the next present entry. If an entry doesn't
+		 * exist, we found an empty range and can proceed.
+		 */
+		xas_next_entry(&xas, xa_last - 1);
+		if (xas.xa_node == XAS_BOUNDS || xas.xa_index >= xa_last)
+			break;
+	}
+
+	for (i = xa_first; i < xa_last; i++) {
+		err = __xa_insert(&ucontext->mmap_xa, i, entry, GFP_KERNEL);
+		if (err)
+			goto err_undo;
+	}
+
+	/*
+	 * Internally the kernel uses a page offset, in libc this is a byte
+	 * offset. Drivers should not return pgoff to userspace.
+	 */
+	entry->start_pgoff = xa_first;
+	xa_unlock(&ucontext->mmap_xa);
+	mutex_unlock(&ufile->umap_lock);
+
+	ibdev_dbg(ucontext->device, "mmap: pgoff[%#lx] npages[%#x] inserted\n",
+		  entry->start_pgoff, npages);
+
+	return 0;
+
+err_undo:
+	for (; i > xa_first; i--)
+		__xa_erase(&ucontext->mmap_xa, i - 1);
+
+err_unlock:
+	xa_unlock(&ucontext->mmap_xa);
+	mutex_unlock(&ufile->umap_lock);
+	return -ENOMEM;
+}
+EXPORT_SYMBOL(rdma_user_mmap_entry_insert);
--- linux-ein-5.4.0.orig/drivers/infiniband/core/ib_peer_mem.h
+++ linux-ein-5.4.0/drivers/infiniband/core/ib_peer_mem.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
+/*
+ * Copyright (c) 2014-2020,  Mellanox Technologies. All rights reserved.
+ */
+#ifndef RDMA_IB_PEER_MEM_H
+#define RDMA_IB_PEER_MEM_H
+
+#include <rdma/peer_mem.h>
+#include <linux/kobject.h>
+#include <linux/xarray.h>
+#include <rdma/ib_umem.h>
+
+struct ib_peer_memory_statistics {
+	atomic64_t num_alloc_mrs;
+	atomic64_t num_dealloc_mrs;
+	atomic64_t num_reg_pages;
+	atomic64_t num_dereg_pages;
+	atomic64_t num_reg_bytes;
+	atomic64_t num_dereg_bytes;
+	unsigned long num_free_callbacks;
+};
+
+struct ib_peer_memory_client {
+	struct kobject kobj;
+	refcount_t usecnt;
+	struct completion usecnt_zero;
+	const struct peer_memory_client *peer_mem;
+	struct list_head core_peer_list;
+	struct ib_peer_memory_statistics stats;
+	struct xarray umem_xa;
+	u32 xa_cyclic_next;
+	bool invalidation_required;
+};
+
+enum ib_umem_mapped_state {
+	UMEM_PEER_UNMAPPED,
+	UMEM_PEER_MAPPED,
+	UMEM_PEER_INVALIDATED,
+};
+
+struct ib_umem_peer {
+	struct ib_umem umem;
+	struct kref kref;
+	/* peer memory that manages this umem */
+	struct ib_peer_memory_client *ib_peer_client;
+	void *peer_client_context;
+	umem_invalidate_func_t invalidation_func;
+	void *invalidation_private;
+	struct mutex mapping_lock;
+	enum ib_umem_mapped_state mapped_state;
+	u32 xa_id;
+};
+
+struct ib_umem *ib_peer_umem_get(struct ib_umem *old_umem, int old_ret,
+				 unsigned long peer_mem_flags);
+void ib_peer_umem_release(struct ib_umem *umem);
+
+#endif
--- linux-ein-5.4.0.orig/drivers/infiniband/core/iwcm.c
+++ linux-ein-5.4.0/drivers/infiniband/core/iwcm.c
@@ -159,8 +159,10 @@
 {
 	struct list_head *e, *tmp;
 
-	list_for_each_safe(e, tmp, &cm_id_priv->work_free_list)
+	list_for_each_safe(e, tmp, &cm_id_priv->work_free_list) {
+		list_del(e);
 		kfree(list_entry(e, struct iwcm_work, free_list));
+	}
 }
 
 static int alloc_work_entries(struct iwcm_id_private *cm_id_priv, int count)
@@ -1185,29 +1187,34 @@
 
 	ret = iwpm_init(RDMA_NL_IWCM);
 	if (ret)
-		pr_err("iw_cm: couldn't init iwpm\n");
-	else
-		rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table);
+		return ret;
+
 	iwcm_wq = alloc_ordered_workqueue("iw_cm_wq", 0);
 	if (!iwcm_wq)
-		return -ENOMEM;
+		goto err_alloc;
 
 	iwcm_ctl_table_hdr = register_net_sysctl(&init_net, "net/iw_cm",
 						 iwcm_ctl_table);
 	if (!iwcm_ctl_table_hdr) {
 		pr_err("iw_cm: couldn't register sysctl paths\n");
-		destroy_workqueue(iwcm_wq);
-		return -ENOMEM;
+		goto err_sysctl;
 	}
 
+	rdma_nl_register(RDMA_NL_IWCM, iwcm_nl_cb_table);
 	return 0;
+
+err_sysctl:
+	destroy_workqueue(iwcm_wq);
+err_alloc:
+	iwpm_exit(RDMA_NL_IWCM);
+	return -ENOMEM;
 }
 
 static void __exit iw_cm_cleanup(void)
 {
+	rdma_nl_unregister(RDMA_NL_IWCM);
 	unregister_net_sysctl_table(iwcm_ctl_table_hdr);
 	destroy_workqueue(iwcm_wq);
-	rdma_nl_unregister(RDMA_NL_IWCM);
 	iwpm_exit(RDMA_NL_IWCM);
 }
 
--- linux-ein-5.4.0.orig/drivers/infiniband/core/mad.c
+++ linux-ein-5.4.0/drivers/infiniband/core/mad.c
@@ -639,10 +639,10 @@
 	xa_erase(&ib_mad_clients, mad_agent_priv->agent.hi_tid);
 
 	flush_workqueue(port_priv->wq);
-	ib_cancel_rmpp_recvs(mad_agent_priv);
 
 	deref_mad_agent(mad_agent_priv);
 	wait_for_completion(&mad_agent_priv->comp);
+	ib_cancel_rmpp_recvs(mad_agent_priv);
 
 	ib_mad_agent_security_cleanup(&mad_agent_priv->agent);
 
@@ -2960,6 +2960,7 @@
 						 DMA_FROM_DEVICE);
 		if (unlikely(ib_dma_mapping_error(qp_info->port_priv->device,
 						  sg_list.addr))) {
+			kfree(mad_priv);
 			ret = -ENOMEM;
 			break;
 		}
--- linux-ein-5.4.0.orig/drivers/infiniband/core/nldev.c
+++ linux-ein-5.4.0/drivers/infiniband/core/nldev.c
@@ -493,7 +493,7 @@
 	struct rdma_cm_id *cm_id = &id_priv->id;
 
 	if (port && port != cm_id->port_num)
-		return 0;
+		return -EAGAIN;
 
 	if (cm_id->port_num &&
 	    nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, cm_id->port_num))
@@ -694,6 +694,8 @@
 	int ret = 0;
 
 	table_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_QP);
+	if (!table_attr)
+		return -EMSGSIZE;
 
 	rt = &counter->device->res[RDMA_RESTRACK_QP];
 	xa_lock(&rt->xa);
@@ -702,9 +704,6 @@
 			continue;
 
 		qp = container_of(res, struct ib_qp, res);
-		if (qp->qp_type == IB_QPT_RAW_PACKET && !capable(CAP_NET_RAW))
-			continue;
-
 		if (!qp->counter || (qp->counter->id != counter->id))
 			continue;
 
@@ -863,6 +862,10 @@
 
 		nla_strlcpy(name, tb[RDMA_NLDEV_ATTR_DEV_NAME],
 			    IB_DEVICE_NAME_MAX);
+		if (strlen(name) == 0) {
+			err = -EINVAL;
+			goto done;
+		}
 		err = ib_device_rename(device, name);
 		goto done;
 	}
@@ -1244,10 +1247,10 @@
 
 	has_cap_net_admin = netlink_capable(skb, CAP_NET_ADMIN);
 	ret = fe->fill_res_func(msg, has_cap_net_admin, res, port);
-	rdma_restrack_put(res);
 	if (ret)
 		goto err_free;
 
+	rdma_restrack_put(res);
 	nlmsg_end(msg, nlh);
 	ib_device_put(device);
 	return rdma_nl_unicast(sock_net(skb->sk), msg, NETLINK_CB(skb).portid);
@@ -1468,7 +1471,7 @@
 
 	nla_strlcpy(ibdev_name, tb[RDMA_NLDEV_ATTR_DEV_NAME],
 		    sizeof(ibdev_name));
-	if (strchr(ibdev_name, '%'))
+	if (strchr(ibdev_name, '%') || strlen(ibdev_name) == 0)
 		return -EINVAL;
 
 	nla_strlcpy(type, tb[RDMA_NLDEV_ATTR_LINK_TYPE], sizeof(type));
@@ -1711,6 +1714,8 @@
 		if (ret)
 			goto err_msg;
 	} else {
+		if (!tb[RDMA_NLDEV_ATTR_RES_LQPN])
+			goto err_msg;
 		qpn = nla_get_u32(tb[RDMA_NLDEV_ATTR_RES_LQPN]);
 		if (tb[RDMA_NLDEV_ATTR_STAT_COUNTER_ID]) {
 			cntn = nla_get_u32(tb[RDMA_NLDEV_ATTR_STAT_COUNTER_ID]);
@@ -2075,6 +2080,7 @@
 	},
 	[RDMA_NLDEV_CMD_SYS_SET] = {
 		.doit = nldev_set_sys_set_doit,
+		.flags = RDMA_NL_ADMIN_PERM,
 	},
 	[RDMA_NLDEV_CMD_STAT_SET] = {
 		.doit = nldev_stat_set_doit,
@@ -2095,7 +2101,7 @@
 	rdma_nl_register(RDMA_NL_NLDEV, nldev_cb_table);
 }
 
-void __exit nldev_exit(void)
+void nldev_exit(void)
 {
 	rdma_nl_unregister(RDMA_NL_NLDEV);
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/core/peer_mem.c
+++ linux-ein-5.4.0/drivers/infiniband/core/peer_mem.c
@@ -0,0 +1,559 @@
+// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
+/*
+ * Copyright (c) 2014-2020,  Mellanox Technologies. All rights reserved.
+ */
+#include <rdma/ib_verbs.h>
+#include <rdma/ib_umem.h>
+#include <linux/sched/mm.h>
+#include "ib_peer_mem.h"
+static DEFINE_MUTEX(peer_memory_mutex);
+static LIST_HEAD(peer_memory_list);
+static struct kobject *peers_kobj;
+#define PEER_NO_INVALIDATION_ID U32_MAX
+static int ib_invalidate_peer_memory(void *reg_handle, u64 core_context);
+struct peer_mem_attribute {
+	struct attribute attr;
+	ssize_t (*show)(struct ib_peer_memory_client *ib_peer_client,
+			struct peer_mem_attribute *attr, char *buf);
+	ssize_t (*store)(struct ib_peer_memory_client *ib_peer_client,
+			 struct peer_mem_attribute *attr, const char *buf,
+			 size_t count);
+};
+
+#define PEER_ATTR_RO(_name)                                                    \
+	struct peer_mem_attribute peer_attr_ ## _name = __ATTR_RO(_name)
+
+static ssize_t version_show(struct ib_peer_memory_client *ib_peer_client,
+			    struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(buf, PAGE_SIZE, "%s\n",
+			 ib_peer_client->peer_mem->version);
+}
+
+static PEER_ATTR_RO(version);
+static ssize_t num_alloc_mrs_show(struct ib_peer_memory_client *ib_peer_client,
+				  struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(
+		buf, PAGE_SIZE, "%llu\n",
+		(u64)atomic64_read(&ib_peer_client->stats.num_alloc_mrs));
+}
+
+static PEER_ATTR_RO(num_alloc_mrs);
+static ssize_t
+num_dealloc_mrs_show(struct ib_peer_memory_client *ib_peer_client,
+		     struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(
+		buf, PAGE_SIZE, "%llu\n",
+		(u64)atomic64_read(&ib_peer_client->stats.num_dealloc_mrs));
+}
+
+static PEER_ATTR_RO(num_dealloc_mrs);
+static ssize_t num_reg_pages_show(struct ib_peer_memory_client *ib_peer_client,
+				  struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(
+		buf, PAGE_SIZE, "%llu\n",
+		(u64)atomic64_read(&ib_peer_client->stats.num_reg_pages));
+}
+
+static PEER_ATTR_RO(num_reg_pages);
+static ssize_t
+num_dereg_pages_show(struct ib_peer_memory_client *ib_peer_client,
+		     struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(
+		buf, PAGE_SIZE, "%llu\n",
+		(u64)atomic64_read(&ib_peer_client->stats.num_dereg_pages));
+}
+
+static PEER_ATTR_RO(num_dereg_pages);
+static ssize_t num_reg_bytes_show(struct ib_peer_memory_client *ib_peer_client,
+				  struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(
+		buf, PAGE_SIZE, "%llu\n",
+		(u64)atomic64_read(&ib_peer_client->stats.num_reg_bytes));
+}
+
+static PEER_ATTR_RO(num_reg_bytes);
+static ssize_t
+num_dereg_bytes_show(struct ib_peer_memory_client *ib_peer_client,
+		     struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(
+		buf, PAGE_SIZE, "%llu\n",
+		(u64)atomic64_read(&ib_peer_client->stats.num_dereg_bytes));
+}
+
+static PEER_ATTR_RO(num_dereg_bytes);
+static ssize_t
+num_free_callbacks_show(struct ib_peer_memory_client *ib_peer_client,
+			struct peer_mem_attribute *attr, char *buf)
+{
+	return scnprintf(buf, PAGE_SIZE, "%lu\n",
+			 ib_peer_client->stats.num_free_callbacks);
+}
+
+static PEER_ATTR_RO(num_free_callbacks);
+static struct attribute *peer_mem_attrs[] = {
+			&peer_attr_version.attr,
+			&peer_attr_num_alloc_mrs.attr,
+			&peer_attr_num_dealloc_mrs.attr,
+			&peer_attr_num_reg_pages.attr,
+			&peer_attr_num_dereg_pages.attr,
+			&peer_attr_num_reg_bytes.attr,
+			&peer_attr_num_dereg_bytes.attr,
+			&peer_attr_num_free_callbacks.attr,
+			NULL,
+};
+
+static const struct attribute_group peer_mem_attr_group = {
+	.attrs = peer_mem_attrs,
+};
+
+static ssize_t peer_attr_show(struct kobject *kobj, struct attribute *attr,
+			      char *buf)
+{
+	struct peer_mem_attribute *peer_attr =
+		container_of(attr, struct peer_mem_attribute, attr);
+	if (!peer_attr->show)
+		return -EIO;
+	return peer_attr->show(container_of(kobj, struct ib_peer_memory_client,
+					    kobj),
+			       peer_attr, buf);
+}
+
+static const struct sysfs_ops peer_mem_sysfs_ops = {
+	.show = peer_attr_show,
+};
+
+static void ib_peer_memory_client_release(struct kobject *kobj)
+{
+	struct ib_peer_memory_client *ib_peer_client =
+		container_of(kobj, struct ib_peer_memory_client, kobj);
+	kfree(ib_peer_client);
+}
+
+static struct kobj_type peer_mem_type = {
+	.sysfs_ops = &peer_mem_sysfs_ops,
+	.release = ib_peer_memory_client_release,
+};
+
+static int ib_memory_peer_check_mandatory(const struct peer_memory_client
+						     *peer_client)
+{
+#define PEER_MEM_MANDATORY_FUNC(x) {offsetof(struct peer_memory_client, x), #x}
+	int i;
+	static const struct {
+		size_t offset;
+		char *name;
+	} mandatory_table[] = {
+		PEER_MEM_MANDATORY_FUNC(acquire),
+		PEER_MEM_MANDATORY_FUNC(get_pages),
+		PEER_MEM_MANDATORY_FUNC(put_pages),
+		PEER_MEM_MANDATORY_FUNC(dma_map),
+		PEER_MEM_MANDATORY_FUNC(dma_unmap),
+	};
+	for (i = 0; i < ARRAY_SIZE(mandatory_table); ++i) {
+		if (!*(void **)((void *)peer_client +
+				mandatory_table[i].offset)) {
+			pr_err("Peer memory %s is missing mandatory function %s\n",
+			       peer_client->name, mandatory_table[i].name);
+			return -EINVAL;
+		}
+	}
+	return 0;
+}
+
+void *
+ib_register_peer_memory_client(const struct peer_memory_client *peer_client,
+			       invalidate_peer_memory *invalidate_callback)
+{
+	struct ib_peer_memory_client *ib_peer_client;
+	int ret;
+	if (ib_memory_peer_check_mandatory(peer_client))
+		return NULL;
+	ib_peer_client = kzalloc(sizeof(*ib_peer_client), GFP_KERNEL);
+	if (!ib_peer_client)
+		return NULL;
+	kobject_init(&ib_peer_client->kobj, &peer_mem_type);
+	refcount_set(&ib_peer_client->usecnt, 1);
+	init_completion(&ib_peer_client->usecnt_zero);
+	ib_peer_client->peer_mem = peer_client;
+	xa_init_flags(&ib_peer_client->umem_xa, XA_FLAGS_ALLOC);
+	/*
+	 * If the peer wants the invalidation_callback then all memory users
+	 * linked to that peer must support invalidation.
+	 */
+	if (invalidate_callback) {
+		*invalidate_callback = ib_invalidate_peer_memory;
+		ib_peer_client->invalidation_required = true;
+	}
+	mutex_lock(&peer_memory_mutex);
+	if (!peers_kobj) {
+		/* Created under /sys/kernel/mm */
+		peers_kobj = kobject_create_and_add("memory_peers", mm_kobj);
+		if (!peers_kobj)
+			goto err_unlock;
+	}
+	ret = kobject_add(&ib_peer_client->kobj, peers_kobj, peer_client->name);
+	if (ret)
+		goto err_parent;
+	ret = sysfs_create_group(&ib_peer_client->kobj,
+				 &peer_mem_attr_group);
+	if (ret)
+		goto err_parent;
+	list_add_tail(&ib_peer_client->core_peer_list, &peer_memory_list);
+	mutex_unlock(&peer_memory_mutex);
+	return ib_peer_client;
+err_parent:
+	if (list_empty(&peer_memory_list)) {
+		kobject_put(peers_kobj);
+		peers_kobj = NULL;
+	}
+err_unlock:
+	mutex_unlock(&peer_memory_mutex);
+	kobject_put(&ib_peer_client->kobj);
+	return NULL;
+}
+EXPORT_SYMBOL(ib_register_peer_memory_client);
+
+void ib_unregister_peer_memory_client(void *reg_handle)
+{
+	struct ib_peer_memory_client *ib_peer_client = reg_handle;
+	mutex_lock(&peer_memory_mutex);
+	list_del(&ib_peer_client->core_peer_list);
+	if (list_empty(&peer_memory_list)) {
+		kobject_put(peers_kobj);
+		peers_kobj = NULL;
+	}
+	mutex_unlock(&peer_memory_mutex);
+	/*
+	 * Wait for all umems to be destroyed before returning. Once
+	 * ib_unregister_peer_memory_client() returns no umems will call any
+	 * peer_mem ops.
+	 */
+	if (refcount_dec_and_test(&ib_peer_client->usecnt))
+		complete(&ib_peer_client->usecnt_zero);
+	wait_for_completion(&ib_peer_client->usecnt_zero);
+	kobject_put(&ib_peer_client->kobj);
+}
+EXPORT_SYMBOL(ib_unregister_peer_memory_client);
+
+static struct ib_peer_memory_client *
+ib_get_peer_client(unsigned long addr, size_t size,
+		   unsigned long peer_mem_flags, void **peer_client_context)
+{
+	struct ib_peer_memory_client *ib_peer_client;
+	int ret = 0;
+	mutex_lock(&peer_memory_mutex);
+	list_for_each_entry(ib_peer_client, &peer_memory_list,
+			    core_peer_list) {
+		if (ib_peer_client->invalidation_required &&
+		    (!(peer_mem_flags & IB_PEER_MEM_INVAL_SUPP)))
+			continue;
+		ret = ib_peer_client->peer_mem->acquire(addr, size, NULL, NULL,
+							peer_client_context);
+		if (ret > 0) {
+			refcount_inc(&ib_peer_client->usecnt);
+			mutex_unlock(&peer_memory_mutex);
+			return ib_peer_client;
+		}
+	}
+	mutex_unlock(&peer_memory_mutex);
+	return NULL;
+}
+
+static void ib_put_peer_client(struct ib_peer_memory_client *ib_peer_client,
+			       void *peer_client_context)
+{
+	if (ib_peer_client->peer_mem->release)
+		ib_peer_client->peer_mem->release(peer_client_context);
+	if (refcount_dec_and_test(&ib_peer_client->usecnt))
+		complete(&ib_peer_client->usecnt_zero);
+}
+
+static void ib_peer_umem_kref_release(struct kref *kref)
+{
+	struct ib_umem_peer *umem_p =
+		container_of(kref, struct ib_umem_peer, kref);
+
+	mutex_destroy(&umem_p->mapping_lock);
+	kfree(umem_p);
+}
+
+static void ib_unmap_peer_client(struct ib_umem_peer *umem_p,
+				 enum ib_umem_mapped_state cur_state,
+				 enum ib_umem_mapped_state to_state)
+{
+	struct ib_peer_memory_client *ib_peer_client = umem_p->ib_peer_client;
+	const struct peer_memory_client *peer_mem = ib_peer_client->peer_mem;
+	struct ib_umem *umem = &umem_p->umem;
+
+	if (cur_state == UMEM_PEER_MAPPED &&
+	    (to_state == UMEM_PEER_UNMAPPED ||
+	     to_state == UMEM_PEER_INVALIDATED)) {
+		if (to_state == UMEM_PEER_UNMAPPED) {
+			peer_mem->dma_unmap(&umem_p->umem.sg_head, umem_p->peer_client_context,
+			    umem_p->umem.ibdev->dma_device);
+			peer_mem->put_pages(&umem_p->umem.sg_head, umem_p->peer_client_context);
+		}
+		memset(&umem->sg_head, 0, sizeof(umem->sg_head));
+		atomic64_inc(&ib_peer_client->stats.num_dealloc_mrs);
+	}
+
+	if ((cur_state == UMEM_PEER_MAPPED && to_state == UMEM_PEER_UNMAPPED) ||
+	    (cur_state == UMEM_PEER_INVALIDATED &&
+	     to_state == UMEM_PEER_UNMAPPED)) {
+		atomic64_add(umem->nmap, &ib_peer_client->stats.num_dereg_pages);
+		atomic64_add(umem->length, &ib_peer_client->stats.num_dereg_bytes);
+	}
+
+	umem_p->mapped_state = to_state;
+}
+
+static bool ib_peer_unmap_on_invalidate(struct ib_umem_peer *umem_p)
+{
+	const struct peer_memory_client *peer_mem =
+		umem_p->ib_peer_client->peer_mem;
+	const struct peer_memory_client_ex *peer_mem_ex;
+
+	if (peer_mem->version[IB_PEER_MEMORY_VER_MAX - 1] == 0)
+		return false;
+	peer_mem_ex = container_of(peer_mem, const struct peer_memory_client_ex,
+				   client);
+	if (peer_mem_ex->ex_size <
+	    offsetofend(struct peer_memory_client_ex, flags))
+		return false;
+	return peer_mem_ex->flags & PEER_MEM_INVALIDATE_UNMAPS;
+}
+
+
+static int ib_invalidate_peer_memory(void *reg_handle, u64 core_context)
+{
+	struct ib_peer_memory_client *ib_peer_client = reg_handle;
+	struct ib_umem_peer *umem_p;
+
+	/*
+	 * The client is not required to fence against invalidation during
+	 * put_pages() as that would deadlock when we call put_pages() here.
+	 * Thus the core_context cannot be a umem pointer as we have no control
+	 * over the lifetime. Since we won't change the kABI for this to add a
+	 * proper kref, an xarray is used.
+	 */
+	xa_lock(&ib_peer_client->umem_xa);
+	ib_peer_client->stats.num_free_callbacks += 1;
+	umem_p = xa_load(&ib_peer_client->umem_xa, core_context);
+	if (!umem_p)
+		goto out_unlock;
+	kref_get(&umem_p->kref);
+	xa_unlock(&ib_peer_client->umem_xa);
+	mutex_lock(&umem_p->mapping_lock);
+	/*
+	 * For flows that require invalidation the invalidation_func should not
+	 * be NULL while the device can be doing DMA. The mapping_lock ensures
+	 * that the device is ready to receive an invalidation before one is
+	 * triggered here.
+	 */
+	if (umem_p->mapped_state == UMEM_PEER_MAPPED &&
+	    umem_p->invalidation_func)
+		umem_p->invalidation_func(&umem_p->umem,
+					  umem_p->invalidation_private);
+	if (ib_peer_unmap_on_invalidate(umem_p))
+		ib_unmap_peer_client(umem_p, umem_p->mapped_state,
+				     UMEM_PEER_INVALIDATED);
+	else
+		ib_unmap_peer_client(umem_p, umem_p->mapped_state,
+				     UMEM_PEER_UNMAPPED);
+	mutex_unlock(&umem_p->mapping_lock);
+	kref_put(&umem_p->kref, ib_peer_umem_kref_release);
+	return 0;
+out_unlock:
+	xa_unlock(&ib_peer_client->umem_xa);
+	return 0;
+}
+
+void ib_umem_activate_invalidation_notifier(struct ib_umem *umem,
+					    umem_invalidate_func_t func,
+					    void *priv)
+{
+	struct ib_umem_peer *umem_p =
+		container_of(umem, struct ib_umem_peer, umem);
+
+	if (WARN_ON(!umem->is_peer))
+		return;
+	if (umem_p->xa_id == PEER_NO_INVALIDATION_ID)
+		return;
+
+	umem_p->invalidation_func = func;
+	umem_p->invalidation_private = priv;
+	/* Pairs with the lock in ib_peer_umem_get() */
+	mutex_unlock(&umem_p->mapping_lock);
+
+	/* At this point func can be called asynchronously */
+}
+EXPORT_SYMBOL(ib_umem_activate_invalidation_notifier);
+
+/*
+ * Caller has blocked DMA and will no longer be able to handle invalidate
+ * callbacks. Callers using invalidation must call this function before calling
+ * ib_peer_umem_release(). ib_umem_activate_invalidation_notifier() is optional
+ * before doing this.
+ */
+void ib_umem_stop_invalidation_notifier(struct ib_umem *umem)
+{
+	struct ib_umem_peer *umem_p =
+		container_of(umem, struct ib_umem_peer, umem);
+	bool unmap_on_invalidate = ib_peer_unmap_on_invalidate(umem_p);
+	enum ib_umem_mapped_state cur_state;
+
+	if (umem_p->invalidation_func) {
+		mutex_lock(&umem_p->mapping_lock);
+		umem_p->invalidation_func = NULL;
+	} else if (umem_p->xa_id != PEER_NO_INVALIDATION_ID) {
+		mutex_lock(&umem_p->mapping_lock);
+	} else {
+		/*
+		 * Haven't called ib_umem_activate_invalidation_notifier() yet,
+		 * still have the lock
+		 */
+	}
+
+	if (!unmap_on_invalidate) {
+		ib_unmap_peer_client(umem_p, umem_p->mapped_state,
+				     UMEM_PEER_UNMAPPED);
+	} else {
+		/* Block ib_invalidate_peer_memory() */
+		cur_state = umem_p->mapped_state;
+		umem_p->mapped_state = UMEM_PEER_UNMAPPED;
+	}
+	mutex_unlock(&umem_p->mapping_lock);
+
+	if (unmap_on_invalidate)
+		ib_unmap_peer_client(umem_p, cur_state, UMEM_PEER_UNMAPPED);
+
+}
+EXPORT_SYMBOL(ib_umem_stop_invalidation_notifier);
+
+struct ib_umem *ib_peer_umem_get(struct ib_umem *old_umem, int old_ret,
+				 unsigned long peer_mem_flags)
+{
+	struct ib_peer_memory_client *ib_peer_client;
+	void *peer_client_context;
+	struct ib_umem_peer *umem_p;
+	int ret;
+	ib_peer_client =
+		ib_get_peer_client(old_umem->address, old_umem->length,
+				   peer_mem_flags, &peer_client_context);
+	if (!ib_peer_client)
+		return ERR_PTR(old_ret);
+	umem_p = kzalloc(sizeof(*umem_p), GFP_KERNEL);
+	if (!umem_p) {
+		ret = -ENOMEM;
+		goto err_client;
+	}
+
+	kref_init(&umem_p->kref);
+	umem_p->umem = *old_umem;
+	memset(&umem_p->umem.sg_head, 0, sizeof(umem_p->umem.sg_head));
+	umem_p->umem.is_peer = 1;
+	umem_p->ib_peer_client = ib_peer_client;
+	umem_p->peer_client_context = peer_client_context;
+	mutex_init(&umem_p->mapping_lock);
+	umem_p->xa_id = PEER_NO_INVALIDATION_ID;
+
+	mutex_lock(&umem_p->mapping_lock);
+	if (ib_peer_client->invalidation_required) {
+		ret = xa_alloc_cyclic(&ib_peer_client->umem_xa, &umem_p->xa_id,
+				      umem_p,
+				      XA_LIMIT(0, PEER_NO_INVALIDATION_ID - 1),
+				      &ib_peer_client->xa_cyclic_next,
+				      GFP_KERNEL);
+		if (ret < 0)
+			goto err_umem;
+	}
+
+	/*
+	 * We always request write permissions to the pages, to force breaking
+	 * of any CoW during the registration of the MR. For read-only MRs we
+	 * use the "force" flag to indicate that CoW breaking is required but
+	 * the registration should not fail if referencing read-only areas.
+	 */
+	ret = ib_peer_client->peer_mem->get_pages(umem_p->umem.address,
+						  umem_p->umem.length, 1,
+						  !umem_p->umem.writable, NULL,
+						  peer_client_context,
+						  umem_p->xa_id);
+	if (ret)
+		goto err_xa;
+
+	umem_p->umem.page_shift =
+		ilog2(ib_peer_client->peer_mem->get_page_size(peer_client_context));
+
+	ret = ib_peer_client->peer_mem->dma_map(&umem_p->umem.sg_head,
+						peer_client_context,
+						umem_p->umem.ibdev->dma_device,
+						0, &umem_p->umem.nmap);
+	if (ret)
+		goto err_pages;
+
+	umem_p->mapped_state = UMEM_PEER_MAPPED;
+	atomic64_add(umem_p->umem.nmap, &ib_peer_client->stats.num_reg_pages);
+	atomic64_add(umem_p->umem.length, &ib_peer_client->stats.num_reg_bytes);
+	atomic64_inc(&ib_peer_client->stats.num_alloc_mrs);
+
+	/*
+	 * If invalidation is allowed then the caller must call
+	 * ib_umem_activate_invalidation_notifier() or ib_peer_umem_release() to
+	 * unlock this mutex. The call to  should be done after the last
+	 * read to sg_head, once the caller is ready for the invalidation
+	 * function to be called.
+	 */
+	if (umem_p->xa_id == PEER_NO_INVALIDATION_ID)
+		mutex_unlock(&umem_p->mapping_lock);
+	/*
+	 * On success the old umem is replaced with the new, larger, allocation
+	 */
+	kfree(old_umem);
+	return &umem_p->umem;
+err_pages:
+	ib_peer_client->peer_mem->put_pages(&umem_p->umem.sg_head,
+					    umem_p->peer_client_context);
+err_xa:
+	if (umem_p->xa_id != PEER_NO_INVALIDATION_ID)
+		xa_erase(&umem_p->ib_peer_client->umem_xa, umem_p->xa_id);
+err_umem:
+	mutex_unlock(&umem_p->mapping_lock);
+	kref_put(&umem_p->kref, ib_peer_umem_kref_release);
+err_client:
+	ib_put_peer_client(ib_peer_client, peer_client_context);
+	return ERR_PTR(ret);
+}
+
+void ib_peer_umem_release(struct ib_umem *umem)
+{
+	struct ib_umem_peer *umem_p =
+		container_of(umem, struct ib_umem_peer, umem);
+	/*
+	 * If ib_umem_activate_invalidation_notifier() is called then
+	 * ib_umem_stop_invalidation_notifier() must be called before release.
+	 */
+	WARN_ON(umem_p->invalidation_func);
+
+	/* For no invalidation cases, make sure it is unmapped */
+	ib_unmap_peer_client(umem_p, umem_p->mapped_state, UMEM_PEER_UNMAPPED);
+
+	if (umem_p->xa_id != PEER_NO_INVALIDATION_ID)
+		xa_erase(&umem_p->ib_peer_client->umem_xa, umem_p->xa_id);
+	ib_put_peer_client(umem_p->ib_peer_client, umem_p->peer_client_context);
+	umem_p->ib_peer_client = NULL;
+
+	/* Must match ib_umem_release() */
+	atomic64_sub(ib_umem_num_pages(umem), &umem->owning_mm->pinned_vm);
+	mmdrop(umem->owning_mm);
+
+	kref_put(&umem_p->kref, ib_peer_umem_kref_release);
+}
+
--- linux-ein-5.4.0.orig/drivers/infiniband/core/rdma_core.c
+++ linux-ein-5.4.0/drivers/infiniband/core/rdma_core.c
@@ -160,9 +160,9 @@
 	uobj->context = NULL;
 
 	/*
-	 * For DESTROY the usecnt is held write locked, the caller is expected
-	 * to put it unlock and put the object when done with it. Only DESTROY
-	 * can remove the IDR handle.
+	 * For DESTROY the usecnt is not changed, the caller is expected to
+	 * manage it via uobj_put_destroy(). Only DESTROY can remove the IDR
+	 * handle.
 	 */
 	if (reason != RDMA_REMOVE_DESTROY)
 		atomic_set(&uobj->usecnt, 0);
@@ -194,7 +194,7 @@
 /*
  * This calls uverbs_destroy_uobject() using the RDMA_REMOVE_DESTROY
  * sequence. It should only be used from command callbacks. On success the
- * caller must pair this with rdma_lookup_put_uobject(LOOKUP_WRITE). This
+ * caller must pair this with uobj_put_destroy(). This
  * version requires the caller to have already obtained an
  * LOOKUP_DESTROY uobject kref.
  */
@@ -205,6 +205,13 @@
 
 	down_read(&ufile->hw_destroy_rwsem);
 
+	/*
+	 * Once the uobject is destroyed by RDMA_REMOVE_DESTROY then it is left
+	 * write locked as the callers put it back with UVERBS_LOOKUP_DESTROY.
+	 * This is because any other concurrent thread can still see the object
+	 * in the xarray due to RCU. Leaving it locked ensures nothing else will
+	 * touch it.
+	 */
 	ret = uverbs_try_lock_object(uobj, UVERBS_LOOKUP_WRITE);
 	if (ret)
 		goto out_unlock;
@@ -223,7 +230,7 @@
 /*
  * uobj_get_destroy destroys the HW object and returns a handle to the uobj
  * with a NULL object pointer. The caller must pair this with
- * uverbs_put_destroy.
+ * uobj_put_destroy().
  */
 struct ib_uobject *__uobj_get_destroy(const struct uverbs_api_object *obj,
 				      u32 id, struct uverbs_attr_bundle *attrs)
@@ -257,8 +264,7 @@
 	uobj = __uobj_get_destroy(obj, id, attrs);
 	if (IS_ERR(uobj))
 		return PTR_ERR(uobj);
-
-	rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE);
+	uobj_put_destroy(uobj);
 	return 0;
 }
 
@@ -362,7 +368,7 @@
 	 * and the caller is expected to ensure that uverbs_close_fd is never
 	 * done while a call top lookup is possible.
 	 */
-	if (f->f_op != fd_type->fops) {
+	if (f->f_op != fd_type->fops || uobject->ufile != ufile) {
 		fput(f);
 		return ERR_PTR(-EBADF);
 	}
@@ -689,7 +695,6 @@
 			     enum rdma_lookup_mode mode)
 {
 	assert_uverbs_usecnt(uobj, mode);
-	uobj->uapi_object->type_class->lookup_put(uobj, mode);
 	/*
 	 * In order to unlock an object, either decrease its usecnt for
 	 * read access or zero it in case of exclusive access. See
@@ -706,6 +711,7 @@
 		break;
 	}
 
+	uobj->uapi_object->type_class->lookup_put(uobj, mode);
 	/* Pairs with the kref obtained by type->lookup_get */
 	uverbs_uobject_put(uobj);
 }
@@ -817,6 +823,7 @@
 	rdma_restrack_del(&ucontext->res);
 
 	ib_dev->ops.dealloc_ucontext(ucontext);
+	WARN_ON(!xa_empty(&ucontext->mmap_xa));
 	kfree(ucontext);
 
 	ufile->ucontext = NULL;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/restrack.c
+++ linux-ein-5.4.0/drivers/infiniband/core/restrack.c
@@ -234,6 +234,7 @@
 	} else {
 		ret = xa_alloc_cyclic(&rt->xa, &res->id, res, xa_limit_32b,
 				      &rt->next_id, GFP_KERNEL);
+		ret = (ret < 0) ? ret : 0;
 	}
 
 	if (!ret)
--- linux-ein-5.4.0.orig/drivers/infiniband/core/rw.c
+++ linux-ein-5.4.0/drivers/infiniband/core/rw.c
@@ -268,6 +268,23 @@
 	return 1;
 }
 
+static void rdma_rw_unmap_sg(struct ib_device *dev, struct scatterlist *sg,
+			     u32 sg_cnt, enum dma_data_direction dir)
+{
+	if (is_pci_p2pdma_page(sg_page(sg)))
+		pci_p2pdma_unmap_sg(dev->dma_device, sg, sg_cnt, dir);
+	else
+		ib_dma_unmap_sg(dev, sg, sg_cnt, dir);
+}
+
+static int rdma_rw_map_sg(struct ib_device *dev, struct scatterlist *sg,
+			  u32 sg_cnt, enum dma_data_direction dir)
+{
+	if (is_pci_p2pdma_page(sg_page(sg)))
+		return pci_p2pdma_map_sg(dev->dma_device, sg, sg_cnt, dir);
+	return ib_dma_map_sg(dev, sg, sg_cnt, dir);
+}
+
 /**
  * rdma_rw_ctx_init - initialize a RDMA READ/WRITE context
  * @ctx:	context to initialize
@@ -290,11 +307,7 @@
 	struct ib_device *dev = qp->pd->device;
 	int ret;
 
-	if (is_pci_p2pdma_page(sg_page(sg)))
-		ret = pci_p2pdma_map_sg(dev->dma_device, sg, sg_cnt, dir);
-	else
-		ret = ib_dma_map_sg(dev, sg, sg_cnt, dir);
-
+	ret = rdma_rw_map_sg(dev, sg, sg_cnt, dir);
 	if (!ret)
 		return -ENOMEM;
 	sg_cnt = ret;
@@ -333,7 +346,7 @@
 	return ret;
 
 out_unmap_sg:
-	ib_dma_unmap_sg(dev, sg, sg_cnt, dir);
+	rdma_rw_unmap_sg(dev, sg, sg_cnt, dir);
 	return ret;
 }
 EXPORT_SYMBOL(rdma_rw_ctx_init);
@@ -583,11 +596,7 @@
 		break;
 	}
 
-	if (is_pci_p2pdma_page(sg_page(sg)))
-		pci_p2pdma_unmap_sg(qp->pd->device->dma_device, sg,
-				    sg_cnt, dir);
-	else
-		ib_dma_unmap_sg(qp->pd->device, sg, sg_cnt, dir);
+	rdma_rw_unmap_sg(qp->pd->device, sg, sg_cnt, dir);
 }
 EXPORT_SYMBOL(rdma_rw_ctx_destroy);
 
--- linux-ein-5.4.0.orig/drivers/infiniband/core/sa_query.c
+++ linux-ein-5.4.0/drivers/infiniband/core/sa_query.c
@@ -760,8 +760,9 @@
 
 	/* Construct the family header first */
 	header = skb_put(skb, NLMSG_ALIGN(sizeof(*header)));
-	memcpy(header->device_name, dev_name(&query->port->agent->device->dev),
-	       LS_DEVICE_NAME_MAX);
+	strscpy_pad(header->device_name,
+		    dev_name(&query->port->agent->device->dev),
+		    LS_DEVICE_NAME_MAX);
 	header->port_num = query->port->port_num;
 
 	if ((comp_mask & IB_SA_PATH_REC_REVERSIBLE) &&
@@ -829,13 +830,20 @@
 	return len;
 }
 
-static int ib_nl_send_msg(struct ib_sa_query *query, gfp_t gfp_mask)
+static int ib_nl_make_request(struct ib_sa_query *query, gfp_t gfp_mask)
 {
 	struct sk_buff *skb = NULL;
 	struct nlmsghdr *nlh;
 	void *data;
 	struct ib_sa_mad *mad;
 	int len;
+	unsigned long flags;
+	unsigned long delay;
+	gfp_t gfp_flag;
+	int ret;
+
+	INIT_LIST_HEAD(&query->list);
+	query->seq = (u32)atomic_inc_return(&ib_nl_sa_request_seq);
 
 	mad = query->mad_buf->mad;
 	len = ib_nl_get_path_rec_attrs_len(mad->sa_hdr.comp_mask);
@@ -860,36 +868,25 @@
 	/* Repair the nlmsg header length */
 	nlmsg_end(skb, nlh);
 
-	return rdma_nl_multicast(&init_net, skb, RDMA_NL_GROUP_LS, gfp_mask);
-}
+	gfp_flag = ((gfp_mask & GFP_ATOMIC) == GFP_ATOMIC) ? GFP_ATOMIC :
+		GFP_NOWAIT;
 
-static int ib_nl_make_request(struct ib_sa_query *query, gfp_t gfp_mask)
-{
-	unsigned long flags;
-	unsigned long delay;
-	int ret;
+	spin_lock_irqsave(&ib_nl_request_lock, flags);
+	ret = rdma_nl_multicast(&init_net, skb, RDMA_NL_GROUP_LS, gfp_flag);
 
-	INIT_LIST_HEAD(&query->list);
-	query->seq = (u32)atomic_inc_return(&ib_nl_sa_request_seq);
+	if (ret)
+		goto out;
 
-	/* Put the request on the list first.*/
-	spin_lock_irqsave(&ib_nl_request_lock, flags);
+	/* Put the request on the list.*/
 	delay = msecs_to_jiffies(sa_local_svc_timeout_ms);
 	query->timeout = delay + jiffies;
 	list_add_tail(&query->list, &ib_nl_request_list);
 	/* Start the timeout if this is the only request */
 	if (ib_nl_request_list.next == &query->list)
 		queue_delayed_work(ib_nl_wq, &ib_nl_timed_work, delay);
-	spin_unlock_irqrestore(&ib_nl_request_lock, flags);
 
-	ret = ib_nl_send_msg(query, gfp_mask);
-	if (ret) {
-		ret = -EIO;
-		/* Remove the request */
-		spin_lock_irqsave(&ib_nl_request_lock, flags);
-		list_del(&query->list);
-		spin_unlock_irqrestore(&ib_nl_request_lock, flags);
-	}
+out:
+	spin_unlock_irqrestore(&ib_nl_request_lock, flags);
 
 	return ret;
 }
@@ -1068,7 +1065,7 @@
 	}
 
 settimeout_out:
-	return skb->len;
+	return 0;
 }
 
 static inline int ib_nl_is_good_resolve_resp(const struct nlmsghdr *nlh)
@@ -1139,7 +1136,7 @@
 	}
 
 resp_out:
-	return skb->len;
+	return 0;
 }
 
 static void free_sm_ah(struct kref *kref)
--- linux-ein-5.4.0.orig/drivers/infiniband/core/security.c
+++ linux-ein-5.4.0/drivers/infiniband/core/security.c
@@ -339,27 +339,20 @@
 	if (!new_pps)
 		return NULL;
 
-	if (qp_attr_mask & (IB_QP_PKEY_INDEX | IB_QP_PORT)) {
-		if (!qp_pps) {
-			new_pps->main.port_num = qp_attr->port_num;
-			new_pps->main.pkey_index = qp_attr->pkey_index;
-		} else {
-			new_pps->main.port_num = (qp_attr_mask & IB_QP_PORT) ?
-						  qp_attr->port_num :
-						  qp_pps->main.port_num;
-
-			new_pps->main.pkey_index =
-					(qp_attr_mask & IB_QP_PKEY_INDEX) ?
-					 qp_attr->pkey_index :
-					 qp_pps->main.pkey_index;
-		}
-		new_pps->main.state = IB_PORT_PKEY_VALID;
-	} else if (qp_pps) {
+	if (qp_attr_mask & IB_QP_PORT)
+		new_pps->main.port_num = qp_attr->port_num;
+	else if (qp_pps)
 		new_pps->main.port_num = qp_pps->main.port_num;
+
+	if (qp_attr_mask & IB_QP_PKEY_INDEX)
+		new_pps->main.pkey_index = qp_attr->pkey_index;
+	else if (qp_pps)
 		new_pps->main.pkey_index = qp_pps->main.pkey_index;
-		if (qp_pps->main.state != IB_PORT_PKEY_NOT_VALID)
-			new_pps->main.state = IB_PORT_PKEY_VALID;
-	}
+
+	if (((qp_attr_mask & IB_QP_PKEY_INDEX) &&
+	     (qp_attr_mask & IB_QP_PORT)) ||
+	    (qp_pps && qp_pps->main.state != IB_PORT_PKEY_NOT_VALID))
+		new_pps->main.state = IB_PORT_PKEY_VALID;
 
 	if (qp_attr_mask & IB_QP_ALT_PATH) {
 		new_pps->alt.port_num = qp_attr->alt_port_num;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/sysfs.c
+++ linux-ein-5.4.0/drivers/infiniband/core/sysfs.c
@@ -1060,8 +1060,7 @@
 				   coredev->ports_kobj,
 				   "%d", port_num);
 	if (ret) {
-		kfree(p);
-		return ret;
+		goto err_put;
 	}
 
 	p->gid_attr_group = kzalloc(sizeof(*p->gid_attr_group), GFP_KERNEL);
@@ -1074,8 +1073,7 @@
 	ret = kobject_init_and_add(&p->gid_attr_group->kobj, &gid_attr_type,
 				   &p->kobj, "gid_attrs");
 	if (ret) {
-		kfree(p->gid_attr_group);
-		goto err_put;
+		goto err_put_gid_attrs;
 	}
 
 	if (device->ops.process_mad && is_full_dev) {
@@ -1406,8 +1404,10 @@
 
 		ret = kobject_init_and_add(kobj, ktype, &port->kobj, "%s",
 					   name);
-		if (ret)
+		if (ret) {
+			kobject_put(kobj);
 			return ret;
+		}
 	}
 
 	return 0;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/ucma.c
+++ linux-ein-5.4.0/drivers/infiniband/core/ucma.c
@@ -91,6 +91,7 @@
 
 	struct ucma_file	*file;
 	struct rdma_cm_id	*cm_id;
+	struct mutex		mutex;
 	u64			uid;
 
 	struct list_head	list;
@@ -216,6 +217,7 @@
 	init_completion(&ctx->comp);
 	INIT_LIST_HEAD(&ctx->mc_list);
 	ctx->file = file;
+	mutex_init(&ctx->mutex);
 
 	if (xa_alloc(&ctx_table, &ctx->id, ctx, xa_limit_32b, GFP_KERNEL))
 		goto error;
@@ -543,6 +545,7 @@
 {
 	struct ucma_event *uevent, *tmp;
 
+	rdma_lock_handler(mc->ctx->cm_id);
 	list_for_each_entry_safe(uevent, tmp, &mc->ctx->file->event_list, list) {
 		if (uevent->mc != mc)
 			continue;
@@ -550,6 +553,7 @@
 		list_del(&uevent->list);
 		kfree(uevent);
 	}
+	rdma_unlock_handler(mc->ctx->cm_id);
 }
 
 /*
@@ -579,6 +583,7 @@
 			list_move_tail(&uevent->list, &list);
 	}
 	list_del(&ctx->list);
+	events_reported = ctx->events_reported;
 	mutex_unlock(&ctx->file->mut);
 
 	list_for_each_entry_safe(uevent, tmp, &list, list) {
@@ -588,7 +593,7 @@
 		kfree(uevent);
 	}
 
-	events_reported = ctx->events_reported;
+	mutex_destroy(&ctx->mutex);
 	kfree(ctx);
 	return events_reported;
 }
@@ -658,7 +663,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr);
+	mutex_unlock(&ctx->mutex);
+
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -681,7 +689,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -705,8 +715,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr,
 				(struct sockaddr *) &cmd.dst_addr, cmd.timeout_ms);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -731,8 +743,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr,
 				(struct sockaddr *) &cmd.dst_addr, cmd.timeout_ms);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -752,7 +766,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_resolve_route(ctx->cm_id, cmd.timeout_ms);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -841,6 +857,7 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	memset(&resp, 0, sizeof resp);
 	addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr;
 	memcpy(&resp.src_addr, addr, addr->sa_family == AF_INET ?
@@ -864,6 +881,7 @@
 		ucma_copy_iw_route(&resp, &ctx->cm_id->route);
 
 out:
+	mutex_unlock(&ctx->mutex);
 	if (copy_to_user(u64_to_user_ptr(cmd.response),
 			 &resp, sizeof(resp)))
 		ret = -EFAULT;
@@ -1014,6 +1032,7 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	switch (cmd.option) {
 	case RDMA_USER_CM_QUERY_ADDR:
 		ret = ucma_query_addr(ctx, response, out_len);
@@ -1028,6 +1047,7 @@
 		ret = -ENOSYS;
 		break;
 	}
+	mutex_unlock(&ctx->mutex);
 
 	ucma_put_ctx(ctx);
 	return ret;
@@ -1068,7 +1088,9 @@
 		return PTR_ERR(ctx);
 
 	ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param);
+	mutex_lock(&ctx->mutex);
 	ret = rdma_connect(ctx->cm_id, &conn_param);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1089,7 +1111,9 @@
 
 	ctx->backlog = cmd.backlog > 0 && cmd.backlog < max_backlog ?
 		       cmd.backlog : max_backlog;
+	mutex_lock(&ctx->mutex);
 	ret = rdma_listen(ctx->cm_id, ctx->backlog);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1111,14 +1135,22 @@
 
 	if (cmd.conn_param.valid) {
 		ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param);
-		mutex_lock(&file->mut);
+		mutex_lock(&ctx->mutex);
+		rdma_lock_handler(ctx->cm_id);
 		ret = __rdma_accept(ctx->cm_id, &conn_param, NULL);
-		if (!ret)
+		if (!ret) {
+			/* The uid must be set atomically with the handler */
 			ctx->uid = cmd.uid;
-		mutex_unlock(&file->mut);
-	} else
+		}
+		rdma_unlock_handler(ctx->cm_id);
+		mutex_unlock(&ctx->mutex);
+	} else {
+		mutex_lock(&ctx->mutex);
+		rdma_lock_handler(ctx->cm_id);
 		ret = __rdma_accept(ctx->cm_id, NULL, NULL);
-
+		rdma_unlock_handler(ctx->cm_id);
+		mutex_unlock(&ctx->mutex);
+	}
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1137,7 +1169,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_reject(ctx->cm_id, cmd.private_data, cmd.private_data_len);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1156,7 +1190,9 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	ret = rdma_disconnect(ctx->cm_id);
+	mutex_unlock(&ctx->mutex);
 	ucma_put_ctx(ctx);
 	return ret;
 }
@@ -1187,7 +1223,9 @@
 	resp.qp_attr_mask = 0;
 	memset(&qp_attr, 0, sizeof qp_attr);
 	qp_attr.qp_state = cmd.qp_state;
+	mutex_lock(&ctx->mutex);
 	ret = rdma_init_qp_attr(ctx->cm_id, &qp_attr, &resp.qp_attr_mask);
+	mutex_unlock(&ctx->mutex);
 	if (ret)
 		goto out;
 
@@ -1273,9 +1311,13 @@
 		struct sa_path_rec opa;
 
 		sa_convert_path_ib_to_opa(&opa, &sa_path);
+		mutex_lock(&ctx->mutex);
 		ret = rdma_set_ib_path(ctx->cm_id, &opa);
+		mutex_unlock(&ctx->mutex);
 	} else {
+		mutex_lock(&ctx->mutex);
 		ret = rdma_set_ib_path(ctx->cm_id, &sa_path);
+		mutex_unlock(&ctx->mutex);
 	}
 	if (ret)
 		return ret;
@@ -1308,7 +1350,9 @@
 
 	switch (level) {
 	case RDMA_OPTION_ID:
+		mutex_lock(&ctx->mutex);
 		ret = ucma_set_option_id(ctx, optname, optval, optlen);
+		mutex_unlock(&ctx->mutex);
 		break;
 	case RDMA_OPTION_IB:
 		ret = ucma_set_option_ib(ctx, optname, optval, optlen);
@@ -1368,8 +1412,10 @@
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
+	mutex_lock(&ctx->mutex);
 	if (ctx->cm_id->device)
 		ret = rdma_notify(ctx->cm_id, (enum ib_event_type)cmd.event);
+	mutex_unlock(&ctx->mutex);
 
 	ucma_put_ctx(ctx);
 	return ret;
@@ -1412,8 +1458,10 @@
 	mc->join_state = join_state;
 	mc->uid = cmd->uid;
 	memcpy(&mc->addr, addr, cmd->addr_size);
+	mutex_lock(&ctx->mutex);
 	ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *)&mc->addr,
 				  join_state, mc);
+	mutex_unlock(&ctx->mutex);
 	if (ret)
 		goto err2;
 
@@ -1431,7 +1479,9 @@
 	return 0;
 
 err3:
+	mutex_lock(&ctx->mutex);
 	rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr);
+	mutex_unlock(&ctx->mutex);
 	ucma_cleanup_mc_events(mc);
 err2:
 	xa_erase(&multicast_table, mc->id);
@@ -1500,7 +1550,7 @@
 	mc = xa_load(&multicast_table, cmd.id);
 	if (!mc)
 		mc = ERR_PTR(-ENOENT);
-	else if (mc->ctx->file != file)
+	else if (READ_ONCE(mc->ctx->file) != file)
 		mc = ERR_PTR(-EINVAL);
 	else if (!atomic_inc_not_zero(&mc->ctx->ref))
 		mc = ERR_PTR(-ENXIO);
@@ -1513,7 +1563,10 @@
 		goto out;
 	}
 
+	mutex_lock(&mc->ctx->mutex);
 	rdma_leave_multicast(mc->ctx->cm_id, (struct sockaddr *) &mc->addr);
+	mutex_unlock(&mc->ctx->mutex);
+
 	mutex_lock(&mc->ctx->file->mut);
 	ucma_cleanup_mc_events(mc);
 	list_del(&mc->list);
@@ -1530,45 +1583,15 @@
 	return ret;
 }
 
-static void ucma_lock_files(struct ucma_file *file1, struct ucma_file *file2)
-{
-	/* Acquire mutex's based on pointer comparison to prevent deadlock. */
-	if (file1 < file2) {
-		mutex_lock(&file1->mut);
-		mutex_lock_nested(&file2->mut, SINGLE_DEPTH_NESTING);
-	} else {
-		mutex_lock(&file2->mut);
-		mutex_lock_nested(&file1->mut, SINGLE_DEPTH_NESTING);
-	}
-}
-
-static void ucma_unlock_files(struct ucma_file *file1, struct ucma_file *file2)
-{
-	if (file1 < file2) {
-		mutex_unlock(&file2->mut);
-		mutex_unlock(&file1->mut);
-	} else {
-		mutex_unlock(&file1->mut);
-		mutex_unlock(&file2->mut);
-	}
-}
-
-static void ucma_move_events(struct ucma_context *ctx, struct ucma_file *file)
-{
-	struct ucma_event *uevent, *tmp;
-
-	list_for_each_entry_safe(uevent, tmp, &ctx->file->event_list, list)
-		if (uevent->ctx == ctx)
-			list_move_tail(&uevent->list, &file->event_list);
-}
-
 static ssize_t ucma_migrate_id(struct ucma_file *new_file,
 			       const char __user *inbuf,
 			       int in_len, int out_len)
 {
 	struct rdma_ucm_migrate_id cmd;
 	struct rdma_ucm_migrate_resp resp;
+	struct ucma_event *uevent, *tmp;
 	struct ucma_context *ctx;
+	LIST_HEAD(event_list);
 	struct fd f;
 	struct ucma_file *cur_file;
 	int ret = 0;
@@ -1584,40 +1607,53 @@
 		ret = -EINVAL;
 		goto file_put;
 	}
+	cur_file = f.file->private_data;
 
 	/* Validate current fd and prevent destruction of id. */
-	ctx = ucma_get_ctx(f.file->private_data, cmd.id);
+	ctx = ucma_get_ctx(cur_file, cmd.id);
 	if (IS_ERR(ctx)) {
 		ret = PTR_ERR(ctx);
 		goto file_put;
 	}
 
-	cur_file = ctx->file;
-	if (cur_file == new_file) {
-		resp.events_reported = ctx->events_reported;
-		goto response;
-	}
-
+	rdma_lock_handler(ctx->cm_id);
 	/*
-	 * Migrate events between fd's, maintaining order, and avoiding new
-	 * events being added before existing events.
+	 * ctx->file can only be changed under the handler & xa_lock. xa_load()
+	 * must be checked again to ensure the ctx hasn't begun destruction
+	 * since the ucma_get_ctx().
 	 */
-	ucma_lock_files(cur_file, new_file);
 	xa_lock(&ctx_table);
-
-	list_move_tail(&ctx->list, &new_file->ctx_list);
-	ucma_move_events(ctx, new_file);
+	if (_ucma_find_context(cmd.id, cur_file) != ctx) {
+		xa_unlock(&ctx_table);
+		ret = -ENOENT;
+		goto err_unlock;
+	}
 	ctx->file = new_file;
+	xa_unlock(&ctx_table);
+
+	mutex_lock(&cur_file->mut);
+	list_del(&ctx->list);
+	/*
+	 * At this point lock_handler() prevents addition of new uevents for
+	 * this ctx.
+	 */
+	list_for_each_entry_safe(uevent, tmp, &cur_file->event_list, list)
+		if (uevent->ctx == ctx)
+			list_move_tail(&uevent->list, &event_list);
 	resp.events_reported = ctx->events_reported;
+	mutex_unlock(&cur_file->mut);
 
-	xa_unlock(&ctx_table);
-	ucma_unlock_files(cur_file, new_file);
+	mutex_lock(&new_file->mut);
+	list_add_tail(&ctx->list, &new_file->ctx_list);
+	list_splice_tail(&event_list, &new_file->event_list);
+	mutex_unlock(&new_file->mut);
 
-response:
 	if (copy_to_user(u64_to_user_ptr(cmd.response),
 			 &resp, sizeof(resp)))
 		ret = -EFAULT;
 
+err_unlock:
+	rdma_unlock_handler(ctx->cm_id);
 	ucma_put_ctx(ctx);
 file_put:
 	fdput(f);
--- linux-ein-5.4.0.orig/drivers/infiniband/core/umem.c
+++ linux-ein-5.4.0/drivers/infiniband/core/umem.c
@@ -42,6 +42,7 @@
 #include <rdma/ib_umem_odp.h>
 
 #include "uverbs.h"
+#include "ib_peer_mem.h"
 
 static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int dirty)
 {
@@ -151,13 +152,24 @@
 	dma_addr_t mask;
 	int i;
 
+	/* rdma_for_each_block() has a bug if the page size is smaller than the
+	 * page size used to build the umem. For now prevent smaller page sizes
+	 * from being returned.
+	 */
+	pgsz_bitmap &= GENMASK(BITS_PER_LONG - 1, PAGE_SHIFT);
+
 	/* At minimum, drivers must support PAGE_SIZE or smaller */
 	if (WARN_ON(!(pgsz_bitmap & GENMASK(PAGE_SHIFT, 0))))
 		return 0;
 
 	va = virt;
-	/* max page size not to exceed MR length */
-	mask = roundup_pow_of_two(umem->length);
+	/* The best result is the smallest page size that results in the minimum
+	 * number of required pages. Compute the largest page size that could
+	 * work based on VA address bits that don't change.
+	 */
+	mask = pgsz_bitmap &
+	       GENMASK(BITS_PER_LONG - 1,
+		       bits_per((umem->length - 1 + virt) ^ virt));
 	/* offset into first SGL */
 	pgoff = umem->address & ~PAGE_MASK;
 
@@ -166,10 +178,13 @@
 		 * for any address.
 		 */
 		mask |= (sg_dma_address(sg) + pgoff) ^ va;
-		if (i && i != (umem->nmap - 1))
-			/* restrict by length as well for interior SGEs */
-			mask |= sg_dma_len(sg);
 		va += sg_dma_len(sg) - pgoff;
+		/* Except for the last entry, the ending iova alignment sets
+		 * the maximum possible page size as the low bits of the iova
+		 * must be zero when starting the next chunk.
+		 */
+		if (i != (umem->nmap - 1))
+			mask |= va;
 		pgoff = 0;
 	}
 	best_pg_bit = rdma_find_pg_bit(mask, pgsz_bitmap);
@@ -179,18 +194,18 @@
 EXPORT_SYMBOL(ib_umem_find_best_pgsz);
 
 /**
- * ib_umem_get - Pin and DMA map userspace memory.
+ * __ib_umem_get - Pin and DMA map userspace memory.
  *
- * @udata: userspace context to pin memory for
+ * @device: IB device to connect UMEM
  * @addr: userspace virtual address to start at
  * @size: length of region to pin
  * @access: IB_ACCESS_xxx flags for memory being pinned
- * @dmasync: flush in-flight DMA when the memory region is written
+ * @peer_mem_flags: IB_PEER_MEM_xxx flags for memory being used
  */
-struct ib_umem *ib_umem_get(struct ib_udata *udata, unsigned long addr,
-			    size_t size, int access, int dmasync)
+struct ib_umem *__ib_umem_get(struct ib_device *device,
+			      unsigned long addr, size_t size, int access,
+			      unsigned long peer_mem_flags)
 {
-	struct ib_ucontext *context;
 	struct ib_umem *umem;
 	struct page **page_list;
 	unsigned long lock_limit;
@@ -199,21 +214,9 @@
 	struct mm_struct *mm;
 	unsigned long npages;
 	int ret;
-	unsigned long dma_attrs = 0;
 	struct scatterlist *sg;
 	unsigned int gup_flags = FOLL_WRITE;
 
-	if (!udata)
-		return ERR_PTR(-EIO);
-
-	context = container_of(udata, struct uverbs_attr_bundle, driver_udata)
-			  ->context;
-	if (!context)
-		return ERR_PTR(-EIO);
-
-	if (dmasync)
-		dma_attrs |= DMA_ATTR_WRITE_BARRIER;
-
 	/*
 	 * If the combination of the addr and size requested for this memory
 	 * region causes an integer overflow, return error.
@@ -231,7 +234,7 @@
 	umem = kzalloc(sizeof(*umem), GFP_KERNEL);
 	if (!umem)
 		return ERR_PTR(-ENOMEM);
-	umem->ibdev = context->device;
+	umem->ibdev      = device;
 	umem->length     = size;
 	umem->address    = addr;
 	umem->writable   = ib_access_writable(access);
@@ -286,7 +289,7 @@
 		npages   -= ret;
 
 		sg = ib_umem_add_sg_table(sg, page_list, ret,
-			dma_get_max_seg_size(context->device->dma_device),
+			dma_get_max_seg_size(device->dma_device),
 			&umem->sg_nents);
 
 		up_read(&mm->mmap_sem);
@@ -294,11 +297,10 @@
 
 	sg_mark_end(sg);
 
-	umem->nmap = ib_dma_map_sg_attrs(context->device,
-				  umem->sg_head.sgl,
-				  umem->sg_nents,
-				  DMA_BIDIRECTIONAL,
-				  dma_attrs);
+	umem->nmap = ib_dma_map_sg(device,
+				   umem->sg_head.sgl,
+				   umem->sg_nents,
+				   DMA_BIDIRECTIONAL);
 
 	if (!umem->nmap) {
 		ret = -ENOMEM;
@@ -309,7 +311,25 @@
 	goto out;
 
 umem_release:
-	__ib_umem_release(context->device, umem, 0);
+	__ib_umem_release(device, umem, 0);
+	/*
+	 * If the address belongs to peer memory client, then the first
+	 * call to get_user_pages will fail. In this case, try to get
+	 * these pages from the peers.
+	 */
+	//FIXME: this placement is horrible
+	if (ret < 0 && peer_mem_flags & IB_PEER_MEM_ALLOW) {
+		struct ib_umem *new_umem;
+
+		new_umem = ib_peer_umem_get(umem, ret, peer_mem_flags);
+		if (IS_ERR(new_umem)) {
+			ret = PTR_ERR(new_umem);
+			goto vma;
+		}
+		umem = new_umem;
+		ret = 0;
+		goto out;
+	}
 vma:
 	atomic64_sub(ib_umem_num_pages(umem), &mm->pinned_vm);
 out:
@@ -321,8 +341,23 @@
 	}
 	return ret ? ERR_PTR(ret) : umem;
 }
+
+struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr,
+			    size_t size, int access)
+{
+	return __ib_umem_get(device, addr, size, access, 0);
+}
 EXPORT_SYMBOL(ib_umem_get);
 
+struct ib_umem *ib_umem_get_peer(struct ib_device *device, unsigned long addr,
+				 size_t size, int access,
+				 unsigned long peer_mem_flags)
+{
+	return __ib_umem_get(device, addr, size, access,
+			     IB_PEER_MEM_ALLOW | peer_mem_flags);
+}
+EXPORT_SYMBOL(ib_umem_get_peer);
+
 /**
  * ib_umem_release - release memory pinned with ib_umem_get
  * @umem: umem struct to release
@@ -334,6 +369,8 @@
 	if (umem->is_odp)
 		return ib_umem_odp_release(to_ib_umem_odp(umem));
 
+	if (umem->is_peer)
+		return ib_peer_umem_release(umem);
 	__ib_umem_release(umem->ibdev, umem, 1);
 
 	atomic64_sub(ib_umem_num_pages(umem), &umem->owning_mm->pinned_vm);
--- linux-ein-5.4.0.orig/drivers/infiniband/core/umem_odp.c
+++ linux-ein-5.4.0/drivers/infiniband/core/umem_odp.c
@@ -287,15 +287,12 @@
  * They exist only to hold the per_mm reference to help the driver create
  * children umems.
  *
- * @udata: udata from the syscall being used to create the umem
+ * @device: IB device to create UMEM
  * @access: ib_reg_mr access flags
  */
-struct ib_umem_odp *ib_umem_odp_alloc_implicit(struct ib_udata *udata,
+struct ib_umem_odp *ib_umem_odp_alloc_implicit(struct ib_device *device,
 					       int access)
 {
-	struct ib_ucontext *context =
-		container_of(udata, struct uverbs_attr_bundle, driver_udata)
-			->context;
 	struct ib_umem *umem;
 	struct ib_umem_odp *umem_odp;
 	int ret;
@@ -303,16 +300,14 @@
 	if (access & IB_ACCESS_HUGETLB)
 		return ERR_PTR(-EINVAL);
 
-	if (!context)
-		return ERR_PTR(-EIO);
-	if (WARN_ON_ONCE(!context->device->ops.invalidate_range))
+	if (WARN_ON_ONCE(!device->ops.invalidate_range))
 		return ERR_PTR(-EINVAL);
 
 	umem_odp = kzalloc(sizeof(*umem_odp), GFP_KERNEL);
 	if (!umem_odp)
 		return ERR_PTR(-ENOMEM);
 	umem = &umem_odp->umem;
-	umem->ibdev = context->device;
+	umem->ibdev = device;
 	umem->writable = ib_access_writable(access);
 	umem->owning_mm = current->mm;
 	umem_odp->is_implicit_odp = 1;
@@ -361,19 +356,33 @@
 	umem->owning_mm  = root->umem.owning_mm;
 	odp_data->page_shift = PAGE_SHIFT;
 
-	ret = ib_init_umem_odp(odp_data);
-	if (ret) {
-		kfree(odp_data);
-		return ERR_PTR(ret);
+	/*
+	 * A mmget must be held when registering a notifier, the owming_mm only
+	 * has a mm_grab at this point.
+	 */
+	if (!mmget_not_zero(umem->owning_mm)) {
+		ret = -EFAULT;
+		goto out_free;
 	}
+
+	ret = ib_init_umem_odp(odp_data);
+	if (ret)
+		goto out_mmput;
+	mmput(umem->owning_mm);
 	return odp_data;
+
+out_mmput:
+	mmput(umem->owning_mm);
+out_free:
+	kfree(odp_data);
+	return ERR_PTR(ret);
 }
 EXPORT_SYMBOL(ib_umem_odp_alloc_child);
 
 /**
  * ib_umem_odp_get - Create a umem_odp for a userspace va
  *
- * @udata: userspace context to pin memory for
+ * @device: IB device struct to get UMEM
  * @addr: userspace virtual address to start at
  * @size: length of region to pin
  * @access: IB_ACCESS_xxx flags for memory being pinned
@@ -382,31 +391,23 @@
  * pinning, instead, stores the mm for future page fault handling in
  * conjunction with MMU notifiers.
  */
-struct ib_umem_odp *ib_umem_odp_get(struct ib_udata *udata, unsigned long addr,
-				    size_t size, int access)
+struct ib_umem_odp *ib_umem_odp_get(struct ib_device *device,
+				    unsigned long addr, size_t size,
+				    int access)
 {
 	struct ib_umem_odp *umem_odp;
-	struct ib_ucontext *context;
 	struct mm_struct *mm;
 	int ret;
 
-	if (!udata)
-		return ERR_PTR(-EIO);
-
-	context = container_of(udata, struct uverbs_attr_bundle, driver_udata)
-			  ->context;
-	if (!context)
-		return ERR_PTR(-EIO);
-
 	if (WARN_ON_ONCE(!(access & IB_ACCESS_ON_DEMAND)) ||
-	    WARN_ON_ONCE(!context->device->ops.invalidate_range))
+	    WARN_ON_ONCE(!device->ops.invalidate_range))
 		return ERR_PTR(-EINVAL);
 
 	umem_odp = kzalloc(sizeof(struct ib_umem_odp), GFP_KERNEL);
 	if (!umem_odp)
 		return ERR_PTR(-ENOMEM);
 
-	umem_odp->umem.ibdev = context->device;
+	umem_odp->umem.ibdev = device;
 	umem_odp->umem.length = size;
 	umem_odp->umem.address = addr;
 	umem_odp->umem.writable = ib_access_writable(access);
@@ -632,7 +633,7 @@
 
 	while (bcnt > 0) {
 		const size_t gup_num_pages = min_t(size_t,
-				(bcnt + BIT(page_shift) - 1) >> page_shift,
+				ALIGN(bcnt, PAGE_SIZE) / PAGE_SIZE,
 				PAGE_SIZE / sizeof(struct page *));
 
 		down_read(&owning_mm->mmap_sem);
--- linux-ein-5.4.0.orig/drivers/infiniband/core/user_mad.c
+++ linux-ein-5.4.0/drivers/infiniband/core/user_mad.c
@@ -131,6 +131,11 @@
 	struct ib_user_mad mad;
 };
 
+struct ib_rmpp_mad_hdr {
+	struct ib_mad_hdr	mad_hdr;
+	struct ib_rmpp_hdr      rmpp_hdr;
+} __packed;
+
 #define CREATE_TRACE_POINTS
 #include <trace/events/ib_umad.h>
 
@@ -379,6 +384,11 @@
 
 	mutex_lock(&file->mutex);
 
+	if (file->agents_dead) {
+		mutex_unlock(&file->mutex);
+		return -EIO;
+	}
+
 	while (list_empty(&file->recv_list)) {
 		mutex_unlock(&file->mutex);
 
@@ -392,6 +402,11 @@
 		mutex_lock(&file->mutex);
 	}
 
+	if (file->agents_dead) {
+		mutex_unlock(&file->mutex);
+		return -EIO;
+	}
+
 	packet = list_entry(file->recv_list.next, struct ib_umad_packet, list);
 	list_del(&packet->list);
 
@@ -484,11 +499,11 @@
 			     size_t count, loff_t *pos)
 {
 	struct ib_umad_file *file = filp->private_data;
+	struct ib_rmpp_mad_hdr *rmpp_mad_hdr;
 	struct ib_umad_packet *packet;
 	struct ib_mad_agent *agent;
 	struct rdma_ah_attr ah_attr;
 	struct ib_ah *ah;
-	struct ib_rmpp_mad *rmpp_mad;
 	__be64 *tid;
 	int ret, data_len, hdr_len, copy_offset, rmpp_active;
 	u8 base_version;
@@ -496,7 +511,7 @@
 	if (count < hdr_size(file) + IB_MGMT_RMPP_HDR)
 		return -EINVAL;
 
-	packet = kzalloc(sizeof *packet + IB_MGMT_RMPP_HDR, GFP_KERNEL);
+	packet = kzalloc(sizeof(*packet) + IB_MGMT_RMPP_HDR, GFP_KERNEL);
 	if (!packet)
 		return -ENOMEM;
 
@@ -524,7 +539,7 @@
 
 	agent = __get_agent(file, packet->mad.hdr.id);
 	if (!agent) {
-		ret = -EINVAL;
+		ret = -EIO;
 		goto err_up;
 	}
 
@@ -550,13 +565,13 @@
 		goto err_up;
 	}
 
-	rmpp_mad = (struct ib_rmpp_mad *) packet->mad.data;
-	hdr_len = ib_get_mad_data_offset(rmpp_mad->mad_hdr.mgmt_class);
+	rmpp_mad_hdr = (struct ib_rmpp_mad_hdr *)packet->mad.data;
+	hdr_len = ib_get_mad_data_offset(rmpp_mad_hdr->mad_hdr.mgmt_class);
 
-	if (ib_is_mad_class_rmpp(rmpp_mad->mad_hdr.mgmt_class)
+	if (ib_is_mad_class_rmpp(rmpp_mad_hdr->mad_hdr.mgmt_class)
 	    && ib_mad_kernel_rmpp_agent(agent)) {
 		copy_offset = IB_MGMT_RMPP_HDR;
-		rmpp_active = ib_get_rmpp_flags(&rmpp_mad->rmpp_hdr) &
+		rmpp_active = ib_get_rmpp_flags(&rmpp_mad_hdr->rmpp_hdr) &
 						IB_MGMT_RMPP_FLAG_ACTIVE;
 	} else {
 		copy_offset = IB_MGMT_MAD_HDR;
@@ -605,12 +620,12 @@
 		tid = &((struct ib_mad_hdr *) packet->msg->mad)->tid;
 		*tid = cpu_to_be64(((u64) agent->hi_tid) << 32 |
 				   (be64_to_cpup(tid) & 0xffffffff));
-		rmpp_mad->mad_hdr.tid = *tid;
+		rmpp_mad_hdr->mad_hdr.tid = *tid;
 	}
 
 	if (!ib_mad_kernel_rmpp_agent(agent)
-	   && ib_is_mad_class_rmpp(rmpp_mad->mad_hdr.mgmt_class)
-	   && (ib_get_rmpp_flags(&rmpp_mad->rmpp_hdr) & IB_MGMT_RMPP_FLAG_ACTIVE)) {
+	    && ib_is_mad_class_rmpp(rmpp_mad_hdr->mad_hdr.mgmt_class)
+	    && (ib_get_rmpp_flags(&rmpp_mad_hdr->rmpp_hdr) & IB_MGMT_RMPP_FLAG_ACTIVE)) {
 		spin_lock_irq(&file->send_lock);
 		list_add_tail(&packet->list, &file->send_list);
 		spin_unlock_irq(&file->send_lock);
@@ -653,10 +668,14 @@
 	/* we will always be able to post a MAD send */
 	__poll_t mask = EPOLLOUT | EPOLLWRNORM;
 
+	mutex_lock(&file->mutex);
 	poll_wait(filp, &file->recv_wait, wait);
 
 	if (!list_empty(&file->recv_list))
 		mask |= EPOLLIN | EPOLLRDNORM;
+	if (file->agents_dead)
+		mask = EPOLLERR;
+	mutex_unlock(&file->mutex);
 
 	return mask;
 }
@@ -1129,17 +1148,30 @@
 	.llseek	 = no_llseek,
 };
 
+static struct ib_umad_port *get_port(struct ib_device *ibdev,
+				     struct ib_umad_device *umad_dev,
+				     unsigned int port)
+{
+	if (!umad_dev)
+		return ERR_PTR(-EOPNOTSUPP);
+	if (!rdma_is_port_valid(ibdev, port))
+		return ERR_PTR(-EINVAL);
+	if (!rdma_cap_ib_mad(ibdev, port))
+		return ERR_PTR(-EOPNOTSUPP);
+
+	return &umad_dev->ports[port - rdma_start_port(ibdev)];
+}
+
 static int ib_umad_get_nl_info(struct ib_device *ibdev, void *client_data,
 			       struct ib_client_nl_info *res)
 {
-	struct ib_umad_device *umad_dev = client_data;
+	struct ib_umad_port *port = get_port(ibdev, client_data, res->port);
 
-	if (!rdma_is_port_valid(ibdev, res->port))
-		return -EINVAL;
+	if (IS_ERR(port))
+		return PTR_ERR(port);
 
 	res->abi = IB_USER_MAD_ABI_VERSION;
-	res->cdev = &umad_dev->ports[res->port - rdma_start_port(ibdev)].dev;
-
+	res->cdev = &port->dev;
 	return 0;
 }
 
@@ -1154,15 +1186,13 @@
 static int ib_issm_get_nl_info(struct ib_device *ibdev, void *client_data,
 			       struct ib_client_nl_info *res)
 {
-	struct ib_umad_device *umad_dev =
-		ib_get_client_data(ibdev, &umad_client);
+	struct ib_umad_port *port = get_port(ibdev, client_data, res->port);
 
-	if (!rdma_is_port_valid(ibdev, res->port))
-		return -EINVAL;
+	if (IS_ERR(port))
+		return PTR_ERR(port);
 
 	res->abi = IB_USER_MAD_ABI_VERSION;
-	res->cdev = &umad_dev->ports[res->port - rdma_start_port(ibdev)].sm_dev;
-
+	res->cdev = &port->sm_dev;
 	return 0;
 }
 
@@ -1312,6 +1342,9 @@
 	struct ib_umad_file *file;
 	int id;
 
+	cdev_device_del(&port->sm_cdev, &port->sm_dev);
+	cdev_device_del(&port->cdev, &port->dev);
+
 	mutex_lock(&port->file_mutex);
 
 	/* Mark ib_dev NULL and block ioctl or other file ops to progress
@@ -1322,6 +1355,7 @@
 	list_for_each_entry(file, &port->file_list, port_list) {
 		mutex_lock(&file->mutex);
 		file->agents_dead = 1;
+		wake_up_interruptible(&file->recv_wait);
 		mutex_unlock(&file->mutex);
 
 		for (id = 0; id < IB_UMAD_MAX_AGENTS; ++id)
@@ -1331,8 +1365,6 @@
 
 	mutex_unlock(&port->file_mutex);
 
-	cdev_device_del(&port->sm_cdev, &port->sm_dev);
-	cdev_device_del(&port->cdev, &port->dev);
 	ida_free(&umad_ida, port->dev_num);
 
 	/* balances device_initialize() */
--- linux-ein-5.4.0.orig/drivers/infiniband/core/uverbs_cmd.c
+++ linux-ein-5.4.0/drivers/infiniband/core/uverbs_cmd.c
@@ -252,6 +252,8 @@
 	ucontext->closing = false;
 	ucontext->cleanup_retryable = false;
 
+	xa_init_flags(&ucontext->mmap_xa, XA_FLAGS_ALLOC);
+
 	ret = get_unused_fd_flags(O_CLOEXEC);
 	if (ret < 0)
 		goto err_free;
@@ -757,6 +759,7 @@
 	mr->uobject = uobj;
 	atomic_inc(&pd->usecnt);
 	mr->res.type = RDMA_RESTRACK_MR;
+	mr->iova = cmd.hca_va;
 	rdma_restrack_uadd(&mr->res);
 
 	uobj->object = mr;
@@ -847,6 +850,9 @@
 		atomic_dec(&old_pd->usecnt);
 	}
 
+	if (cmd.flags & IB_MR_REREG_TRANS)
+		mr->iova = cmd.hca_va;
+
 	memset(&resp, 0, sizeof(resp));
 	resp.lkey      = mr->lkey;
 	resp.rkey      = mr->rkey;
@@ -1431,17 +1437,7 @@
 		if (ret)
 			goto err_cb;
 
-		qp->pd		  = pd;
-		qp->send_cq	  = attr.send_cq;
-		qp->recv_cq	  = attr.recv_cq;
-		qp->srq		  = attr.srq;
-		qp->rwq_ind_tbl	  = ind_tbl;
-		qp->event_handler = attr.event_handler;
-		qp->qp_context	  = attr.qp_context;
-		qp->qp_type	  = attr.qp_type;
-		atomic_set(&qp->usecnt, 0);
 		atomic_inc(&pd->usecnt);
-		qp->port = 0;
 		if (attr.send_cq)
 			atomic_inc(&attr.send_cq->usecnt);
 		if (attr.recv_cq)
@@ -1563,7 +1559,7 @@
 	struct ib_uverbs_create_qp_resp resp;
 	struct ib_uqp_object           *obj;
 	struct ib_xrcd		       *xrcd;
-	struct ib_uobject	       *uninitialized_var(xrcd_uobj);
+	struct ib_uobject	       *xrcd_uobj;
 	struct ib_qp                   *qp;
 	struct ib_qp_open_attr          attr;
 	int ret;
@@ -1869,8 +1865,13 @@
 		attr->path_mtu = cmd->base.path_mtu;
 	if (cmd->base.attr_mask & IB_QP_PATH_MIG_STATE)
 		attr->path_mig_state = cmd->base.path_mig_state;
-	if (cmd->base.attr_mask & IB_QP_QKEY)
+	if (cmd->base.attr_mask & IB_QP_QKEY) {
+		if (cmd->base.qkey & IB_QP_SET_QKEY && !capable(CAP_NET_RAW)) {
+			ret = -EPERM;
+			goto release_qp;
+		}
 		attr->qkey = cmd->base.qkey;
+	}
 	if (cmd->base.attr_mask & IB_QP_RQ_PSN)
 		attr->rq_psn = cmd->base.rq_psn;
 	if (cmd->base.attr_mask & IB_QP_SQ_PSN)
@@ -1958,7 +1959,7 @@
 	 * Last bit is reserved for extending the attr_mask by
 	 * using another field.
 	 */
-	BUILD_BUG_ON(IB_USER_LAST_QP_ATTR_MASK == (1 << 31));
+	BUILD_BUG_ON(IB_USER_LAST_QP_ATTR_MASK == (1ULL << 31));
 
 	if (cmd.base.attr_mask &
 	    ~((IB_USER_LAST_QP_ATTR_MASK << 1) - 1))
@@ -2718,12 +2719,6 @@
 	return 0;
 }
 
-static size_t kern_spec_filter_sz(const struct ib_uverbs_flow_spec_hdr *spec)
-{
-	/* Returns user space filter size, includes padding */
-	return (spec->size - sizeof(struct ib_uverbs_flow_spec_hdr)) / 2;
-}
-
 static ssize_t spec_filter_size(const void *kern_spec_filter, u16 kern_filter_size,
 				u16 ib_real_filter_sz)
 {
@@ -2867,11 +2862,16 @@
 static int kern_spec_to_ib_spec_filter(struct ib_uverbs_flow_spec *kern_spec,
 				       union ib_flow_spec *ib_spec)
 {
-	ssize_t kern_filter_sz;
+	size_t kern_filter_sz;
 	void *kern_spec_mask;
 	void *kern_spec_val;
 
-	kern_filter_sz = kern_spec_filter_sz(&kern_spec->hdr);
+	if (check_sub_overflow((size_t)kern_spec->hdr.size,
+			       sizeof(struct ib_uverbs_flow_spec_hdr),
+			       &kern_filter_sz))
+		return -EINVAL;
+
+	kern_filter_sz /= 2;
 
 	kern_spec_val = (void *)kern_spec +
 		sizeof(struct ib_uverbs_flow_spec_hdr);
@@ -3038,12 +3038,29 @@
 	if (!wq)
 		return -EINVAL;
 
-	wq_attr.curr_wq_state = cmd.curr_wq_state;
-	wq_attr.wq_state = cmd.wq_state;
 	if (cmd.attr_mask & IB_WQ_FLAGS) {
 		wq_attr.flags = cmd.flags;
 		wq_attr.flags_mask = cmd.flags_mask;
 	}
+
+	if (cmd.attr_mask & IB_WQ_CUR_STATE) {
+		if (cmd.curr_wq_state > IB_WQS_ERR)
+			return -EINVAL;
+
+		wq_attr.curr_wq_state = cmd.curr_wq_state;
+	} else {
+		wq_attr.curr_wq_state = wq->state;
+	}
+
+	if (cmd.attr_mask & IB_WQ_STATE) {
+		if (cmd.wq_state > IB_WQS_ERR)
+			return -EINVAL;
+
+		wq_attr.wq_state = cmd.wq_state;
+	} else {
+		wq_attr.wq_state = wq_attr.curr_wq_state;
+	}
+
 	ret = wq->device->ops.modify_wq(wq, &wq_attr, cmd.attr_mask,
 					&attrs->driver_udata);
 	uobj_put_obj_read(wq);
@@ -3368,7 +3385,7 @@
 	struct ib_usrq_object           *obj;
 	struct ib_pd                    *pd;
 	struct ib_srq                   *srq;
-	struct ib_uobject               *uninitialized_var(xrcd_uobj);
+	struct ib_uobject               *xrcd_uobj;
 	struct ib_srq_init_attr          attr;
 	int ret;
 	struct ib_device *ib_dev;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/uverbs_main.c
+++ linux-ein-5.4.0/drivers/infiniband/core/uverbs_main.c
@@ -220,7 +220,6 @@
 }
 
 static ssize_t ib_uverbs_event_read(struct ib_uverbs_event_queue *ev_queue,
-				    struct ib_uverbs_file *uverbs_file,
 				    struct file *filp, char __user *buf,
 				    size_t count, loff_t *pos,
 				    size_t eventsz)
@@ -231,25 +230,20 @@
 	spin_lock_irq(&ev_queue->lock);
 
 	while (list_empty(&ev_queue->event_list)) {
-		spin_unlock_irq(&ev_queue->lock);
+		if (ev_queue->is_closed) {
+			spin_unlock_irq(&ev_queue->lock);
+			return -EIO;
+		}
 
+		spin_unlock_irq(&ev_queue->lock);
 		if (filp->f_flags & O_NONBLOCK)
 			return -EAGAIN;
 
 		if (wait_event_interruptible(ev_queue->poll_wait,
 					     (!list_empty(&ev_queue->event_list) ||
-			/* The barriers built into wait_event_interruptible()
-			 * and wake_up() guarentee this will see the null set
-			 * without using RCU
-			 */
-					     !uverbs_file->device->ib_dev)))
+					      ev_queue->is_closed)))
 			return -ERESTARTSYS;
 
-		/* If device was disassociated and no event exists set an error */
-		if (list_empty(&ev_queue->event_list) &&
-		    !uverbs_file->device->ib_dev)
-			return -EIO;
-
 		spin_lock_irq(&ev_queue->lock);
 	}
 
@@ -285,8 +279,7 @@
 {
 	struct ib_uverbs_async_event_file *file = filp->private_data;
 
-	return ib_uverbs_event_read(&file->ev_queue, file->uverbs_file, filp,
-				    buf, count, pos,
+	return ib_uverbs_event_read(&file->ev_queue, filp, buf, count, pos,
 				    sizeof(struct ib_uverbs_async_event_desc));
 }
 
@@ -296,9 +289,8 @@
 	struct ib_uverbs_completion_event_file *comp_ev_file =
 		filp->private_data;
 
-	return ib_uverbs_event_read(&comp_ev_file->ev_queue,
-				    comp_ev_file->uobj.ufile, filp,
-				    buf, count, pos,
+	return ib_uverbs_event_read(&comp_ev_file->ev_queue, filp, buf, count,
+				    pos,
 				    sizeof(struct ib_uverbs_comp_event_desc));
 }
 
@@ -313,6 +305,8 @@
 	spin_lock_irq(&ev_queue->lock);
 	if (!list_empty(&ev_queue->event_list))
 		pollflags = EPOLLIN | EPOLLRDNORM;
+	else if (ev_queue->is_closed)
+		pollflags = EPOLLERR;
 	spin_unlock_irq(&ev_queue->lock);
 
 	return pollflags;
@@ -321,7 +315,9 @@
 static __poll_t ib_uverbs_async_event_poll(struct file *filp,
 					       struct poll_table_struct *wait)
 {
-	return ib_uverbs_event_poll(filp->private_data, filp, wait);
+	struct ib_uverbs_async_event_file *file = filp->private_data;
+
+	return ib_uverbs_event_poll(&file->ev_queue, filp, wait);
 }
 
 static __poll_t ib_uverbs_comp_event_poll(struct file *filp,
@@ -335,9 +331,9 @@
 
 static int ib_uverbs_async_event_fasync(int fd, struct file *filp, int on)
 {
-	struct ib_uverbs_event_queue *ev_queue = filp->private_data;
+	struct ib_uverbs_async_event_file *file = filp->private_data;
 
-	return fasync_helper(fd, filp, on, &ev_queue->async_queue);
+	return fasync_helper(fd, filp, on, &file->ev_queue.async_queue);
 }
 
 static int ib_uverbs_comp_event_fasync(int fd, struct file *filp, int on)
@@ -637,7 +633,7 @@
 	if (hdr->in_words * 4 != count)
 		return -EINVAL;
 
-	if (count < method_elm->req_size + sizeof(hdr)) {
+	if (count < method_elm->req_size + sizeof(*hdr)) {
 		/*
 		 * rdma-core v18 and v19 have a bug where they send DESTROY_CQ
 		 * with a 16 byte write instead of 24. Old kernels didn't
@@ -772,6 +768,8 @@
 	return (ret) ? : count;
 }
 
+static const struct vm_operations_struct rdma_umap_ops;
+
 static int ib_uverbs_mmap(struct file *filp, struct vm_area_struct *vma)
 {
 	struct ib_uverbs_file *file = filp->private_data;
@@ -785,7 +783,7 @@
 		ret = PTR_ERR(ucontext);
 		goto out;
 	}
-
+	vma->vm_ops = &rdma_umap_ops;
 	ret = ucontext->device->ops.mmap(ucontext, vma);
 out:
 	srcu_read_unlock(&file->device->disassociate_srcu, srcu_key);
@@ -793,38 +791,6 @@
 }
 
 /*
- * Each time we map IO memory into user space this keeps track of the mapping.
- * When the device is hot-unplugged we 'zap' the mmaps in user space to point
- * to the zero page and allow the hot unplug to proceed.
- *
- * This is necessary for cases like PCI physical hot unplug as the actual BAR
- * memory may vanish after this and access to it from userspace could MCE.
- *
- * RDMA drivers supporting disassociation must have their user space designed
- * to cope in some way with their IO pages going to the zero page.
- */
-struct rdma_umap_priv {
-	struct vm_area_struct *vma;
-	struct list_head list;
-};
-
-static const struct vm_operations_struct rdma_umap_ops;
-
-static void rdma_umap_priv_init(struct rdma_umap_priv *priv,
-				struct vm_area_struct *vma)
-{
-	struct ib_uverbs_file *ufile = vma->vm_file->private_data;
-
-	priv->vma = vma;
-	vma->vm_private_data = priv;
-	vma->vm_ops = &rdma_umap_ops;
-
-	mutex_lock(&ufile->umap_lock);
-	list_add(&priv->list, &ufile->umaps);
-	mutex_unlock(&ufile->umap_lock);
-}
-
-/*
  * The VMA has been dup'd, initialize the vm_private_data with a new tracking
  * struct
  */
@@ -849,7 +815,7 @@
 	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		goto out_unlock;
-	rdma_umap_priv_init(priv, vma);
+	rdma_umap_priv_init(priv, vma, opriv->entry);
 
 	up_read(&ufile->hw_destroy_rwsem);
 	return;
@@ -880,6 +846,9 @@
 	 * this point.
 	 */
 	mutex_lock(&ufile->umap_lock);
+	if (priv->entry)
+		rdma_user_mmap_entry_put(priv->entry);
+
 	list_del(&priv->list);
 	mutex_unlock(&ufile->umap_lock);
 	kfree(priv);
@@ -931,44 +900,6 @@
 	.fault = rdma_umap_fault,
 };
 
-/*
- * Map IO memory into a process. This is to be called by drivers as part of
- * their mmap() functions if they wish to send something like PCI-E BAR memory
- * to userspace.
- */
-int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma,
-		      unsigned long pfn, unsigned long size, pgprot_t prot)
-{
-	struct ib_uverbs_file *ufile = ucontext->ufile;
-	struct rdma_umap_priv *priv;
-
-	if (!(vma->vm_flags & VM_SHARED))
-		return -EINVAL;
-
-	if (vma->vm_end - vma->vm_start != size)
-		return -EINVAL;
-
-	/* Driver is using this wrong, must be called by ib_uverbs_mmap */
-	if (WARN_ON(!vma->vm_file ||
-		    vma->vm_file->private_data != ufile))
-		return -EINVAL;
-	lockdep_assert_held(&ufile->device->disassociate_srcu);
-
-	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
-
-	vma->vm_page_prot = prot;
-	if (io_remap_pfn_range(vma, vma->vm_start, pfn, size, prot)) {
-		kfree(priv);
-		return -EAGAIN;
-	}
-
-	rdma_umap_priv_init(priv, vma);
-	return 0;
-}
-EXPORT_SYMBOL(rdma_user_mmap_io);
-
 void uverbs_user_mmap_disassociate(struct ib_uverbs_file *ufile)
 {
 	struct rdma_umap_priv *priv, *next_priv;
@@ -1018,6 +949,11 @@
 
 			zap_vma_ptes(vma, vma->vm_start,
 				     vma->vm_end - vma->vm_start);
+
+			if (priv->entry) {
+				rdma_user_mmap_entry_put(priv->entry);
+				priv->entry = NULL;
+			}
 		}
 		mutex_unlock(&ufile->umap_lock);
 	skip_mm:
--- linux-ein-5.4.0.orig/drivers/infiniband/core/uverbs_marshall.c
+++ linux-ein-5.4.0/drivers/infiniband/core/uverbs_marshall.c
@@ -66,7 +66,7 @@
 	struct rdma_ah_attr *src = ah_attr;
 	struct rdma_ah_attr conv_ah;
 
-	memset(&dst->grh.reserved, 0, sizeof(dst->grh.reserved));
+	memset(&dst->grh, 0, sizeof(dst->grh));
 
 	if ((ah_attr->type == RDMA_AH_ATTR_TYPE_OPA) &&
 	    (rdma_ah_get_dlid(ah_attr) > be16_to_cpu(IB_LID_PERMISSIVE)) &&
--- linux-ein-5.4.0.orig/drivers/infiniband/core/uverbs_std_types_counters.c
+++ linux-ein-5.4.0/drivers/infiniband/core/uverbs_std_types_counters.c
@@ -105,6 +105,8 @@
 		return ret;
 
 	uattr = uverbs_attr_get(attrs, UVERBS_ATTR_READ_COUNTERS_BUFF);
+	if (IS_ERR(uattr))
+		return PTR_ERR(uattr);
 	read_attr.ncounters = uattr->ptr_attr.len / sizeof(u64);
 	read_attr.counters_buff = uverbs_zalloc(
 		attrs, array_size(read_attr.ncounters, sizeof(u64)));
--- linux-ein-5.4.0.orig/drivers/infiniband/core/uverbs_std_types_device.c
+++ linux-ein-5.4.0/drivers/infiniband/core/uverbs_std_types_device.c
@@ -110,8 +110,8 @@
 		return ret;
 
 	uapi_object = uapi_get_object(attrs->ufile->device->uapi, object_id);
-	if (!uapi_object)
-		return -EINVAL;
+	if (IS_ERR(uapi_object))
+		return PTR_ERR(uapi_object);
 
 	handles = gather_objects_handle(attrs->ufile, uapi_object, attrs,
 					out_len, &total);
--- linux-ein-5.4.0.orig/drivers/infiniband/core/uverbs_uapi.c
+++ linux-ein-5.4.0/drivers/infiniband/core/uverbs_uapi.c
@@ -450,6 +450,9 @@
 	uapi->num_write_ex = max_write_ex + 1;
 	data = kmalloc_array(uapi->num_write + uapi->num_write_ex,
 			     sizeof(*uapi->write_methods), GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+
 	for (i = 0; i != uapi->num_write + uapi->num_write_ex; i++)
 		data[i] = &uapi->notsupp_method;
 	uapi->write_methods = data;
--- linux-ein-5.4.0.orig/drivers/infiniband/core/verbs.c
+++ linux-ein-5.4.0/drivers/infiniband/core/verbs.c
@@ -521,6 +521,8 @@
 
 	ret = device->ops.create_ah(ah, ah_attr, flags, udata);
 	if (ret) {
+		if (ah->sgid_attr)
+			rdma_put_gid_attr(ah->sgid_attr);
 		kfree(ah);
 		return ERR_PTR(ret);
 	}
@@ -1180,16 +1182,6 @@
 	if (ret)
 		goto err;
 
-	qp->qp_type    = qp_init_attr->qp_type;
-	qp->rwq_ind_tbl = qp_init_attr->rwq_ind_tbl;
-
-	atomic_set(&qp->usecnt, 0);
-	qp->mrs_used = 0;
-	spin_lock_init(&qp->mr_lock);
-	INIT_LIST_HEAD(&qp->rdma_mrs);
-	INIT_LIST_HEAD(&qp->sig_mrs);
-	qp->port = 0;
-
 	if (qp_init_attr->qp_type == IB_QPT_XRC_TGT) {
 		struct ib_qp *xrc_qp =
 			create_xrc_qp_user(qp, qp_init_attr, udata);
@@ -1658,7 +1650,7 @@
 		if (!(rdma_protocol_ib(qp->device,
 				       attr->alt_ah_attr.port_num) &&
 		      rdma_protocol_ib(qp->device, port))) {
-			ret = EINVAL;
+			ret = -EINVAL;
 			goto out;
 		}
 	}
@@ -1759,7 +1751,7 @@
 
 	dev_put(netdev);
 
-	if (!rc) {
+	if (!rc && lksettings.base.speed != (u32)SPEED_UNKNOWN) {
 		netdev_speed = lksettings.base.speed;
 	} else {
 		netdev_speed = SPEED_1000;
@@ -2850,15 +2842,18 @@
 bool __rdma_block_iter_next(struct ib_block_iter *biter)
 {
 	unsigned int block_offset;
+	unsigned int sg_delta;
 
 	if (!biter->__sg_nents || !biter->__sg)
 		return false;
 
 	biter->__dma_addr = sg_dma_address(biter->__sg) + biter->__sg_advance;
 	block_offset = biter->__dma_addr & (BIT_ULL(biter->__pg_bit) - 1);
-	biter->__sg_advance += BIT_ULL(biter->__pg_bit) - block_offset;
+	sg_delta = BIT_ULL(biter->__pg_bit) - block_offset;
 
-	if (biter->__sg_advance >= sg_dma_len(biter->__sg)) {
+	if (sg_dma_len(biter->__sg) - biter->__sg_advance > sg_delta) {
+		biter->__sg_advance += sg_delta;
+	} else {
 		biter->__sg_advance = 0;
 		biter->__sg = sg_next(biter->__sg);
 		biter->__sg_nents--;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/bnxt_re.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/bnxt_re.h
@@ -104,10 +104,19 @@
 	struct bnxt_re_qp *qp1_qp;
 };
 
+#define BNXT_RE_MAX_GSI_SQP_ENTRIES	1024
+struct bnxt_re_gsi_context {
+	struct	bnxt_re_qp *gsi_qp;
+	struct	bnxt_re_qp *gsi_sqp;
+	struct	bnxt_re_ah *gsi_sah;
+	struct	bnxt_re_sqp_entries *sqp_tbl;
+};
+
 #define BNXT_RE_MIN_MSIX		2
 #define BNXT_RE_MAX_MSIX		9
 #define BNXT_RE_AEQ_IDX			0
 #define BNXT_RE_NQ_IDX			1
+#define BNXT_RE_GEN_P5_MAX_VF		64
 
 struct bnxt_re_dev {
 	struct ib_device		ibdev;
@@ -164,10 +173,7 @@
 	u16				cosq[2];
 
 	/* QP for for handling QP1 packets */
-	u32				sqp_id;
-	struct bnxt_re_qp		*qp1_sqp;
-	struct bnxt_re_ah		*sqp_ah;
-	struct bnxt_re_sqp_entries sqp_tbl[1024];
+	struct bnxt_re_gsi_context	gsi_ctx;
 	atomic_t nq_alloc_cnt;
 	u32 is_virtfn;
 	u32 num_vfs;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -330,7 +330,7 @@
 		 */
 		if (ctx->idx == 0 &&
 		    rdma_link_local_addr((struct in6_addr *)gid_to_del) &&
-		    ctx->refcnt == 1 && rdev->qp1_sqp) {
+		    ctx->refcnt == 1 && rdev->gsi_ctx.gsi_sqp) {
 			dev_dbg(rdev_to_dev(rdev),
 				"Trying to delete GID0 while QP1 is alive\n");
 			return -EFAULT;
@@ -760,6 +760,49 @@
 	spin_unlock_irqrestore(&qp->scq->cq_lock, flags);
 }
 
+static int bnxt_re_destroy_gsi_sqp(struct bnxt_re_qp *qp)
+{
+	struct bnxt_re_qp *gsi_sqp;
+	struct bnxt_re_ah *gsi_sah;
+	struct bnxt_re_dev *rdev;
+	int rc = 0;
+
+	rdev = qp->rdev;
+	gsi_sqp = rdev->gsi_ctx.gsi_sqp;
+	gsi_sah = rdev->gsi_ctx.gsi_sah;
+
+	dev_dbg(rdev_to_dev(rdev), "Destroy the shadow AH\n");
+	bnxt_qplib_destroy_ah(&rdev->qplib_res,
+			      &gsi_sah->qplib_ah,
+			      true);
+	bnxt_qplib_clean_qp(&qp->qplib_qp);
+
+	dev_dbg(rdev_to_dev(rdev), "Destroy the shadow QP\n");
+	rc = bnxt_qplib_destroy_qp(&rdev->qplib_res, &gsi_sqp->qplib_qp);
+	if (rc) {
+		dev_err(rdev_to_dev(rdev), "Destroy Shadow QP failed");
+		goto fail;
+	}
+	bnxt_qplib_free_qp_res(&rdev->qplib_res, &gsi_sqp->qplib_qp);
+
+	/* remove from active qp list */
+	mutex_lock(&rdev->qp_lock);
+	list_del(&gsi_sqp->list);
+	mutex_unlock(&rdev->qp_lock);
+	atomic_dec(&rdev->qp_count);
+
+	kfree(rdev->gsi_ctx.sqp_tbl);
+	kfree(gsi_sah);
+	kfree(gsi_sqp);
+	rdev->gsi_ctx.gsi_sqp = NULL;
+	rdev->gsi_ctx.gsi_sah = NULL;
+	rdev->gsi_ctx.sqp_tbl = NULL;
+
+	return 0;
+fail:
+	return rc;
+}
+
 /* Queue Pairs */
 int bnxt_re_destroy_qp(struct ib_qp *ib_qp, struct ib_udata *udata)
 {
@@ -769,6 +812,7 @@
 	int rc;
 
 	bnxt_qplib_flush_cqn_wq(&qp->qplib_qp);
+
 	rc = bnxt_qplib_destroy_qp(&rdev->qplib_res, &qp->qplib_qp);
 	if (rc) {
 		dev_err(rdev_to_dev(rdev), "Failed to destroy HW QP");
@@ -783,40 +827,24 @@
 
 	bnxt_qplib_free_qp_res(&rdev->qplib_res, &qp->qplib_qp);
 
-	if (ib_qp->qp_type == IB_QPT_GSI && rdev->qp1_sqp) {
-		bnxt_qplib_destroy_ah(&rdev->qplib_res, &rdev->sqp_ah->qplib_ah,
-				      false);
-
-		bnxt_qplib_clean_qp(&qp->qplib_qp);
-		rc = bnxt_qplib_destroy_qp(&rdev->qplib_res,
-					   &rdev->qp1_sqp->qplib_qp);
-		if (rc) {
-			dev_err(rdev_to_dev(rdev),
-				"Failed to destroy Shadow QP");
-			return rc;
-		}
-		bnxt_qplib_free_qp_res(&rdev->qplib_res,
-				       &rdev->qp1_sqp->qplib_qp);
-		mutex_lock(&rdev->qp_lock);
-		list_del(&rdev->qp1_sqp->list);
-		atomic_dec(&rdev->qp_count);
-		mutex_unlock(&rdev->qp_lock);
-
-		kfree(rdev->sqp_ah);
-		kfree(rdev->qp1_sqp);
-		rdev->qp1_sqp = NULL;
-		rdev->sqp_ah = NULL;
+	if (ib_qp->qp_type == IB_QPT_GSI && rdev->gsi_ctx.gsi_sqp) {
+		rc = bnxt_re_destroy_gsi_sqp(qp);
+		if (rc)
+			goto sh_fail;
 	}
 
-	ib_umem_release(qp->rumem);
-	ib_umem_release(qp->sumem);
-
 	mutex_lock(&rdev->qp_lock);
 	list_del(&qp->list);
-	atomic_dec(&rdev->qp_count);
 	mutex_unlock(&rdev->qp_lock);
+	atomic_dec(&rdev->qp_count);
+
+	ib_umem_release(qp->rumem);
+	ib_umem_release(qp->sumem);
+
 	kfree(qp);
 	return 0;
+sh_fail:
+	return rc;
 }
 
 static u8 __from_ib_qp_type(enum ib_qp_type type)
@@ -855,7 +883,8 @@
 		bytes += (qplib_qp->sq.max_wqe * psn_sz);
 	}
 	bytes = PAGE_ALIGN(bytes);
-	umem = ib_umem_get(udata, ureq.qpsva, bytes, IB_ACCESS_LOCAL_WRITE, 1);
+	umem = ib_umem_get(&rdev->ibdev, ureq.qpsva, bytes,
+			   IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(umem))
 		return PTR_ERR(umem);
 
@@ -868,8 +897,8 @@
 	if (!qp->qplib_qp.srq) {
 		bytes = (qplib_qp->rq.max_wqe * BNXT_QPLIB_MAX_RQE_ENTRY_SIZE);
 		bytes = PAGE_ALIGN(bytes);
-		umem = ib_umem_get(udata, ureq.qprva, bytes,
-				   IB_ACCESS_LOCAL_WRITE, 1);
+		umem = ib_umem_get(&rdev->ibdev, ureq.qprva, bytes,
+				   IB_ACCESS_LOCAL_WRITE);
 		if (IS_ERR(umem))
 			goto rqfail;
 		qp->rumem = umem;
@@ -984,8 +1013,6 @@
 	if (rc)
 		goto fail;
 
-	rdev->sqp_id = qp->qplib_qp.id;
-
 	spin_lock_init(&qp->sq_lock);
 	INIT_LIST_HEAD(&qp->list);
 	mutex_lock(&rdev->qp_lock);
@@ -998,205 +1025,375 @@
 	return NULL;
 }
 
-struct ib_qp *bnxt_re_create_qp(struct ib_pd *ib_pd,
-				struct ib_qp_init_attr *qp_init_attr,
-				struct ib_udata *udata)
+static int bnxt_re_init_rq_attr(struct bnxt_re_qp *qp,
+				struct ib_qp_init_attr *init_attr)
 {
-	struct bnxt_re_pd *pd = container_of(ib_pd, struct bnxt_re_pd, ib_pd);
-	struct bnxt_re_dev *rdev = pd->rdev;
-	struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr;
-	struct bnxt_re_qp *qp;
-	struct bnxt_re_cq *cq;
-	struct bnxt_re_srq *srq;
-	int rc, entries;
+	struct bnxt_qplib_dev_attr *dev_attr;
+	struct bnxt_qplib_qp *qplqp;
+	struct bnxt_re_dev *rdev;
+	int entries;
 
-	if ((qp_init_attr->cap.max_send_wr > dev_attr->max_qp_wqes) ||
-	    (qp_init_attr->cap.max_recv_wr > dev_attr->max_qp_wqes) ||
-	    (qp_init_attr->cap.max_send_sge > dev_attr->max_qp_sges) ||
-	    (qp_init_attr->cap.max_recv_sge > dev_attr->max_qp_sges) ||
-	    (qp_init_attr->cap.max_inline_data > dev_attr->max_inline_data))
-		return ERR_PTR(-EINVAL);
+	rdev = qp->rdev;
+	qplqp = &qp->qplib_qp;
+	dev_attr = &rdev->dev_attr;
 
-	qp = kzalloc(sizeof(*qp), GFP_KERNEL);
-	if (!qp)
-		return ERR_PTR(-ENOMEM);
+	if (init_attr->srq) {
+		struct bnxt_re_srq *srq;
 
-	qp->rdev = rdev;
-	ether_addr_copy(qp->qplib_qp.smac, rdev->netdev->dev_addr);
-	qp->qplib_qp.pd = &pd->qplib_pd;
-	qp->qplib_qp.qp_handle = (u64)(unsigned long)(&qp->qplib_qp);
-	qp->qplib_qp.type = __from_ib_qp_type(qp_init_attr->qp_type);
+		srq = container_of(init_attr->srq, struct bnxt_re_srq, ib_srq);
+		if (!srq) {
+			dev_err(rdev_to_dev(rdev), "SRQ not found");
+			return -EINVAL;
+		}
+		qplqp->srq = &srq->qplib_srq;
+		qplqp->rq.max_wqe = 0;
+	} else {
+		/* Allocate 1 more than what's provided so posting max doesn't
+		 * mean empty.
+		 */
+		entries = roundup_pow_of_two(init_attr->cap.max_recv_wr + 1);
+		qplqp->rq.max_wqe = min_t(u32, entries,
+					  dev_attr->max_qp_wqes + 1);
 
-	if (qp_init_attr->qp_type == IB_QPT_GSI &&
-	    bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx))
-		qp->qplib_qp.type = CMDQ_CREATE_QP_TYPE_GSI;
-	if (qp->qplib_qp.type == IB_QPT_MAX) {
+		qplqp->rq.q_full_delta = qplqp->rq.max_wqe -
+					 init_attr->cap.max_recv_wr;
+		qplqp->rq.max_sge = init_attr->cap.max_recv_sge;
+		if (qplqp->rq.max_sge > dev_attr->max_qp_sges)
+			qplqp->rq.max_sge = dev_attr->max_qp_sges;
+	}
+
+	return 0;
+}
+
+static void bnxt_re_adjust_gsi_rq_attr(struct bnxt_re_qp *qp)
+{
+	struct bnxt_qplib_dev_attr *dev_attr;
+	struct bnxt_qplib_qp *qplqp;
+	struct bnxt_re_dev *rdev;
+
+	rdev = qp->rdev;
+	qplqp = &qp->qplib_qp;
+	dev_attr = &rdev->dev_attr;
+
+	qplqp->rq.max_sge = dev_attr->max_qp_sges;
+	if (qplqp->rq.max_sge > dev_attr->max_qp_sges)
+		qplqp->rq.max_sge = dev_attr->max_qp_sges;
+}
+
+static void bnxt_re_init_sq_attr(struct bnxt_re_qp *qp,
+				 struct ib_qp_init_attr *init_attr,
+				 struct ib_udata *udata)
+{
+	struct bnxt_qplib_dev_attr *dev_attr;
+	struct bnxt_qplib_qp *qplqp;
+	struct bnxt_re_dev *rdev;
+	int entries;
+
+	rdev = qp->rdev;
+	qplqp = &qp->qplib_qp;
+	dev_attr = &rdev->dev_attr;
+
+	qplqp->sq.max_sge = init_attr->cap.max_send_sge;
+	if (qplqp->sq.max_sge > dev_attr->max_qp_sges)
+		qplqp->sq.max_sge = dev_attr->max_qp_sges;
+	/*
+	 * Change the SQ depth if user has requested minimum using
+	 * configfs. Only supported for kernel consumers
+	 */
+	entries = init_attr->cap.max_send_wr;
+	/* Allocate 128 + 1 more than what's provided */
+	entries = roundup_pow_of_two(entries + BNXT_QPLIB_RESERVED_QP_WRS + 1);
+	qplqp->sq.max_wqe = min_t(u32, entries, dev_attr->max_qp_wqes +
+			BNXT_QPLIB_RESERVED_QP_WRS + 1);
+	qplqp->sq.q_full_delta = BNXT_QPLIB_RESERVED_QP_WRS + 1;
+	/*
+	 * Reserving one slot for Phantom WQE. Application can
+	 * post one extra entry in this case. But allowing this to avoid
+	 * unexpected Queue full condition
+	 */
+	qplqp->sq.q_full_delta -= 1;
+}
+
+static void bnxt_re_adjust_gsi_sq_attr(struct bnxt_re_qp *qp,
+				       struct ib_qp_init_attr *init_attr)
+{
+	struct bnxt_qplib_dev_attr *dev_attr;
+	struct bnxt_qplib_qp *qplqp;
+	struct bnxt_re_dev *rdev;
+	int entries;
+
+	rdev = qp->rdev;
+	qplqp = &qp->qplib_qp;
+	dev_attr = &rdev->dev_attr;
+
+	entries = roundup_pow_of_two(init_attr->cap.max_send_wr + 1);
+	qplqp->sq.max_wqe = min_t(u32, entries, dev_attr->max_qp_wqes + 1);
+	qplqp->sq.q_full_delta = qplqp->sq.max_wqe -
+				 init_attr->cap.max_send_wr;
+	qplqp->sq.max_sge++; /* Need one extra sge to put UD header */
+	if (qplqp->sq.max_sge > dev_attr->max_qp_sges)
+		qplqp->sq.max_sge = dev_attr->max_qp_sges;
+}
+
+static int bnxt_re_init_qp_type(struct bnxt_re_dev *rdev,
+				struct ib_qp_init_attr *init_attr)
+{
+	struct bnxt_qplib_chip_ctx *chip_ctx;
+	int qptype;
+
+	chip_ctx = &rdev->chip_ctx;
+
+	qptype = __from_ib_qp_type(init_attr->qp_type);
+	if (qptype == IB_QPT_MAX) {
 		dev_err(rdev_to_dev(rdev), "QP type 0x%x not supported",
-			qp->qplib_qp.type);
-		rc = -EINVAL;
-		goto fail;
+			qptype);
+		qptype = -EINVAL;
+		goto out;
+	}
+
+	if (bnxt_qplib_is_chip_gen_p5(chip_ctx) &&
+	    init_attr->qp_type == IB_QPT_GSI)
+		qptype = CMDQ_CREATE_QP_TYPE_GSI;
+out:
+	return qptype;
+}
+
+static int bnxt_re_init_qp_attr(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd,
+				struct ib_qp_init_attr *init_attr,
+				struct ib_udata *udata)
+{
+	struct bnxt_qplib_dev_attr *dev_attr;
+	struct bnxt_qplib_qp *qplqp;
+	struct bnxt_re_dev *rdev;
+	struct bnxt_re_cq *cq;
+	int rc = 0, qptype;
+
+	rdev = qp->rdev;
+	qplqp = &qp->qplib_qp;
+	dev_attr = &rdev->dev_attr;
+
+	/* Setup misc params */
+	ether_addr_copy(qplqp->smac, rdev->netdev->dev_addr);
+	qplqp->pd = &pd->qplib_pd;
+	qplqp->qp_handle = (u64)qplqp;
+	qplqp->max_inline_data = init_attr->cap.max_inline_data;
+	qplqp->sig_type = ((init_attr->sq_sig_type == IB_SIGNAL_ALL_WR) ?
+			    true : false);
+	qptype = bnxt_re_init_qp_type(rdev, init_attr);
+	if (qptype < 0) {
+		rc = qptype;
+		goto out;
 	}
+	qplqp->type = (u8)qptype;
 
-	qp->qplib_qp.max_inline_data = qp_init_attr->cap.max_inline_data;
-	qp->qplib_qp.sig_type = ((qp_init_attr->sq_sig_type ==
-				  IB_SIGNAL_ALL_WR) ? true : false);
-
-	qp->qplib_qp.sq.max_sge = qp_init_attr->cap.max_send_sge;
-	if (qp->qplib_qp.sq.max_sge > dev_attr->max_qp_sges)
-		qp->qplib_qp.sq.max_sge = dev_attr->max_qp_sges;
-
-	if (qp_init_attr->send_cq) {
-		cq = container_of(qp_init_attr->send_cq, struct bnxt_re_cq,
-				  ib_cq);
+	if (init_attr->qp_type == IB_QPT_RC) {
+		qplqp->max_rd_atomic = dev_attr->max_qp_rd_atom;
+		qplqp->max_dest_rd_atomic = dev_attr->max_qp_init_rd_atom;
+	}
+	qplqp->mtu = ib_mtu_enum_to_int(iboe_get_mtu(rdev->netdev->mtu));
+	qplqp->dpi = &rdev->dpi_privileged; /* Doorbell page */
+	if (init_attr->create_flags)
+		dev_dbg(rdev_to_dev(rdev),
+			"QP create flags 0x%x not supported",
+			init_attr->create_flags);
+
+	/* Setup CQs */
+	if (init_attr->send_cq) {
+		cq = container_of(init_attr->send_cq, struct bnxt_re_cq, ib_cq);
 		if (!cq) {
 			dev_err(rdev_to_dev(rdev), "Send CQ not found");
 			rc = -EINVAL;
-			goto fail;
+			goto out;
 		}
-		qp->qplib_qp.scq = &cq->qplib_cq;
+		qplqp->scq = &cq->qplib_cq;
 		qp->scq = cq;
 	}
 
-	if (qp_init_attr->recv_cq) {
-		cq = container_of(qp_init_attr->recv_cq, struct bnxt_re_cq,
-				  ib_cq);
+	if (init_attr->recv_cq) {
+		cq = container_of(init_attr->recv_cq, struct bnxt_re_cq, ib_cq);
 		if (!cq) {
 			dev_err(rdev_to_dev(rdev), "Receive CQ not found");
 			rc = -EINVAL;
-			goto fail;
+			goto out;
 		}
-		qp->qplib_qp.rcq = &cq->qplib_cq;
+		qplqp->rcq = &cq->qplib_cq;
 		qp->rcq = cq;
 	}
 
-	if (qp_init_attr->srq) {
-		srq = container_of(qp_init_attr->srq, struct bnxt_re_srq,
-				   ib_srq);
-		if (!srq) {
-			dev_err(rdev_to_dev(rdev), "SRQ not found");
-			rc = -EINVAL;
-			goto fail;
-		}
-		qp->qplib_qp.srq = &srq->qplib_srq;
-		qp->qplib_qp.rq.max_wqe = 0;
-	} else {
-		/* Allocate 1 more than what's provided so posting max doesn't
-		 * mean empty
-		 */
-		entries = roundup_pow_of_two(qp_init_attr->cap.max_recv_wr + 1);
-		qp->qplib_qp.rq.max_wqe = min_t(u32, entries,
-						dev_attr->max_qp_wqes + 1);
+	/* Setup RQ/SRQ */
+	rc = bnxt_re_init_rq_attr(qp, init_attr);
+	if (rc)
+		goto out;
+	if (init_attr->qp_type == IB_QPT_GSI)
+		bnxt_re_adjust_gsi_rq_attr(qp);
 
-		qp->qplib_qp.rq.q_full_delta = qp->qplib_qp.rq.max_wqe -
-						qp_init_attr->cap.max_recv_wr;
+	/* Setup SQ */
+	bnxt_re_init_sq_attr(qp, init_attr, udata);
+	if (init_attr->qp_type == IB_QPT_GSI)
+		bnxt_re_adjust_gsi_sq_attr(qp, init_attr);
 
-		qp->qplib_qp.rq.max_sge = qp_init_attr->cap.max_recv_sge;
-		if (qp->qplib_qp.rq.max_sge > dev_attr->max_qp_sges)
-			qp->qplib_qp.rq.max_sge = dev_attr->max_qp_sges;
+	if (udata) /* This will update DPI and qp_handle */
+		rc = bnxt_re_init_user_qp(rdev, pd, qp, udata);
+out:
+	return rc;
+}
+
+static int bnxt_re_create_shadow_gsi(struct bnxt_re_qp *qp,
+				     struct bnxt_re_pd *pd)
+{
+	struct bnxt_re_sqp_entries *sqp_tbl = NULL;
+	struct bnxt_re_dev *rdev;
+	struct bnxt_re_qp *sqp;
+	struct bnxt_re_ah *sah;
+	int rc = 0;
+
+	rdev = qp->rdev;
+	/* Create a shadow QP to handle the QP1 traffic */
+	sqp_tbl = kzalloc(sizeof(*sqp_tbl) * BNXT_RE_MAX_GSI_SQP_ENTRIES,
+			  GFP_KERNEL);
+	if (!sqp_tbl)
+		return -ENOMEM;
+	rdev->gsi_ctx.sqp_tbl = sqp_tbl;
+
+	sqp = bnxt_re_create_shadow_qp(pd, &rdev->qplib_res, &qp->qplib_qp);
+	if (!sqp) {
+		rc = -ENODEV;
+		dev_err(rdev_to_dev(rdev),
+			"Failed to create Shadow QP for QP1");
+		goto out;
 	}
+	rdev->gsi_ctx.gsi_sqp = sqp;
 
-	qp->qplib_qp.mtu = ib_mtu_enum_to_int(iboe_get_mtu(rdev->netdev->mtu));
+	sqp->rcq = qp->rcq;
+	sqp->scq = qp->scq;
+	sah = bnxt_re_create_shadow_qp_ah(pd, &rdev->qplib_res,
+					  &qp->qplib_qp);
+	if (!sah) {
+		bnxt_qplib_destroy_qp(&rdev->qplib_res,
+				      &sqp->qplib_qp);
+		rc = -ENODEV;
+		dev_err(rdev_to_dev(rdev),
+			"Failed to create AH entry for ShadowQP");
+		goto out;
+	}
+	rdev->gsi_ctx.gsi_sah = sah;
 
-	if (qp_init_attr->qp_type == IB_QPT_GSI &&
-	    !(bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx))) {
-		/* Allocate 1 more than what's provided */
-		entries = roundup_pow_of_two(qp_init_attr->cap.max_send_wr + 1);
-		qp->qplib_qp.sq.max_wqe = min_t(u32, entries,
-						dev_attr->max_qp_wqes + 1);
-		qp->qplib_qp.sq.q_full_delta = qp->qplib_qp.sq.max_wqe -
-						qp_init_attr->cap.max_send_wr;
-		qp->qplib_qp.rq.max_sge = dev_attr->max_qp_sges;
-		if (qp->qplib_qp.rq.max_sge > dev_attr->max_qp_sges)
-			qp->qplib_qp.rq.max_sge = dev_attr->max_qp_sges;
-		qp->qplib_qp.sq.max_sge++;
-		if (qp->qplib_qp.sq.max_sge > dev_attr->max_qp_sges)
-			qp->qplib_qp.sq.max_sge = dev_attr->max_qp_sges;
-
-		qp->qplib_qp.rq_hdr_buf_size =
-					BNXT_QPLIB_MAX_QP1_RQ_HDR_SIZE_V2;
-
-		qp->qplib_qp.sq_hdr_buf_size =
-					BNXT_QPLIB_MAX_QP1_SQ_HDR_SIZE_V2;
-		qp->qplib_qp.dpi = &rdev->dpi_privileged;
-		rc = bnxt_qplib_create_qp1(&rdev->qplib_res, &qp->qplib_qp);
-		if (rc) {
-			dev_err(rdev_to_dev(rdev), "Failed to create HW QP1");
-			goto fail;
-		}
-		/* Create a shadow QP to handle the QP1 traffic */
-		rdev->qp1_sqp = bnxt_re_create_shadow_qp(pd, &rdev->qplib_res,
-							 &qp->qplib_qp);
-		if (!rdev->qp1_sqp) {
-			rc = -EINVAL;
-			dev_err(rdev_to_dev(rdev),
-				"Failed to create Shadow QP for QP1");
-			goto qp_destroy;
-		}
-		rdev->sqp_ah = bnxt_re_create_shadow_qp_ah(pd, &rdev->qplib_res,
-							   &qp->qplib_qp);
-		if (!rdev->sqp_ah) {
-			bnxt_qplib_destroy_qp(&rdev->qplib_res,
-					      &rdev->qp1_sqp->qplib_qp);
-			rc = -EINVAL;
-			dev_err(rdev_to_dev(rdev),
-				"Failed to create AH entry for ShadowQP");
-			goto qp_destroy;
-		}
+	return 0;
+out:
+	kfree(sqp_tbl);
+	return rc;
+}
 
-	} else {
-		/* Allocate 128 + 1 more than what's provided */
-		entries = roundup_pow_of_two(qp_init_attr->cap.max_send_wr +
-					     BNXT_QPLIB_RESERVED_QP_WRS + 1);
-		qp->qplib_qp.sq.max_wqe = min_t(u32, entries,
-						dev_attr->max_qp_wqes +
-						BNXT_QPLIB_RESERVED_QP_WRS + 1);
-		qp->qplib_qp.sq.q_full_delta = BNXT_QPLIB_RESERVED_QP_WRS + 1;
+static int bnxt_re_create_gsi_qp(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd,
+				 struct ib_qp_init_attr *init_attr)
+{
+	struct bnxt_re_dev *rdev;
+	struct bnxt_qplib_qp *qplqp;
+	int rc = 0;
 
-		/*
-		 * Reserving one slot for Phantom WQE. Application can
-		 * post one extra entry in this case. But allowing this to avoid
-		 * unexpected Queue full condition
-		 */
+	rdev = qp->rdev;
+	qplqp = &qp->qplib_qp;
 
-		qp->qplib_qp.sq.q_full_delta -= 1;
+	qplqp->rq_hdr_buf_size = BNXT_QPLIB_MAX_QP1_RQ_HDR_SIZE_V2;
+	qplqp->sq_hdr_buf_size = BNXT_QPLIB_MAX_QP1_SQ_HDR_SIZE_V2;
 
-		qp->qplib_qp.max_rd_atomic = dev_attr->max_qp_rd_atom;
-		qp->qplib_qp.max_dest_rd_atomic = dev_attr->max_qp_init_rd_atom;
-		if (udata) {
-			rc = bnxt_re_init_user_qp(rdev, pd, qp, udata);
-			if (rc)
-				goto fail;
-		} else {
-			qp->qplib_qp.dpi = &rdev->dpi_privileged;
-		}
+	rc = bnxt_qplib_create_qp1(&rdev->qplib_res, qplqp);
+	if (rc) {
+		dev_err(rdev_to_dev(rdev), "create HW QP1 failed!");
+		goto out;
+	}
 
+	rc = bnxt_re_create_shadow_gsi(qp, pd);
+out:
+	return rc;
+}
+
+static bool bnxt_re_test_qp_limits(struct bnxt_re_dev *rdev,
+				   struct ib_qp_init_attr *init_attr,
+				   struct bnxt_qplib_dev_attr *dev_attr)
+{
+	bool rc = true;
+
+	if (init_attr->cap.max_send_wr > dev_attr->max_qp_wqes ||
+	    init_attr->cap.max_recv_wr > dev_attr->max_qp_wqes ||
+	    init_attr->cap.max_send_sge > dev_attr->max_qp_sges ||
+	    init_attr->cap.max_recv_sge > dev_attr->max_qp_sges ||
+	    init_attr->cap.max_inline_data > dev_attr->max_inline_data) {
+		dev_err(rdev_to_dev(rdev),
+			"Create QP failed - max exceeded! 0x%x/0x%x 0x%x/0x%x 0x%x/0x%x 0x%x/0x%x 0x%x/0x%x",
+			init_attr->cap.max_send_wr, dev_attr->max_qp_wqes,
+			init_attr->cap.max_recv_wr, dev_attr->max_qp_wqes,
+			init_attr->cap.max_send_sge, dev_attr->max_qp_sges,
+			init_attr->cap.max_recv_sge, dev_attr->max_qp_sges,
+			init_attr->cap.max_inline_data,
+			dev_attr->max_inline_data);
+		rc = false;
+	}
+	return rc;
+}
+
+struct ib_qp *bnxt_re_create_qp(struct ib_pd *ib_pd,
+				struct ib_qp_init_attr *qp_init_attr,
+				struct ib_udata *udata)
+{
+	struct bnxt_re_pd *pd = container_of(ib_pd, struct bnxt_re_pd, ib_pd);
+	struct bnxt_re_dev *rdev = pd->rdev;
+	struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr;
+	struct bnxt_re_qp *qp;
+	int rc;
+
+	rc = bnxt_re_test_qp_limits(rdev, qp_init_attr, dev_attr);
+	if (!rc) {
+		rc = -EINVAL;
+		goto exit;
+	}
+
+	qp = kzalloc(sizeof(*qp), GFP_KERNEL);
+	if (!qp) {
+		rc = -ENOMEM;
+		goto exit;
+	}
+	qp->rdev = rdev;
+	rc = bnxt_re_init_qp_attr(qp, pd, qp_init_attr, udata);
+	if (rc)
+		goto fail;
+
+	if (qp_init_attr->qp_type == IB_QPT_GSI &&
+	    !(bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx))) {
+		rc = bnxt_re_create_gsi_qp(qp, pd, qp_init_attr);
+		if (rc == -ENODEV)
+			goto qp_destroy;
+		if (rc)
+			goto fail;
+	} else {
 		rc = bnxt_qplib_create_qp(&rdev->qplib_res, &qp->qplib_qp);
 		if (rc) {
 			dev_err(rdev_to_dev(rdev), "Failed to create HW QP");
 			goto free_umem;
 		}
+		if (udata) {
+			struct bnxt_re_qp_resp resp;
+
+			resp.qpid = qp->qplib_qp.id;
+			resp.rsvd = 0;
+			rc = ib_copy_to_udata(udata, &resp, sizeof(resp));
+			if (rc) {
+				dev_err(rdev_to_dev(rdev), "Failed to copy QP udata");
+				goto qp_destroy;
+			}
+		}
 	}
 
 	qp->ib_qp.qp_num = qp->qplib_qp.id;
+	if (qp_init_attr->qp_type == IB_QPT_GSI)
+		rdev->gsi_ctx.gsi_qp = qp;
 	spin_lock_init(&qp->sq_lock);
 	spin_lock_init(&qp->rq_lock);
-
-	if (udata) {
-		struct bnxt_re_qp_resp resp;
-
-		resp.qpid = qp->ib_qp.qp_num;
-		resp.rsvd = 0;
-		rc = ib_copy_to_udata(udata, &resp, sizeof(resp));
-		if (rc) {
-			dev_err(rdev_to_dev(rdev), "Failed to copy QP udata");
-			goto qp_destroy;
-		}
-	}
 	INIT_LIST_HEAD(&qp->list);
 	mutex_lock(&rdev->qp_lock);
 	list_add_tail(&qp->list, &rdev->qp_list);
-	atomic_inc(&rdev->qp_count);
 	mutex_unlock(&rdev->qp_lock);
+	atomic_inc(&rdev->qp_count);
 
 	return &qp->ib_qp;
 qp_destroy:
@@ -1206,6 +1403,7 @@
 	ib_umem_release(qp->sumem);
 fail:
 	kfree(qp);
+exit:
 	return ERR_PTR(rc);
 }
 
@@ -1322,7 +1520,8 @@
 
 	bytes = (qplib_srq->max_wqe * BNXT_QPLIB_MAX_RQE_ENTRY_SIZE);
 	bytes = PAGE_ALIGN(bytes);
-	umem = ib_umem_get(udata, ureq.srqva, bytes, IB_ACCESS_LOCAL_WRITE, 1);
+	umem = ib_umem_get(&rdev->ibdev, ureq.srqva, bytes,
+			   IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(umem))
 		return PTR_ERR(umem);
 
@@ -1404,6 +1603,7 @@
 	if (nq)
 		nq->budget++;
 	atomic_inc(&rdev->srq_count);
+	spin_lock_init(&srq->lock);
 
 	return 0;
 
@@ -1503,7 +1703,7 @@
 				    struct bnxt_re_qp *qp1_qp,
 				    int qp_attr_mask)
 {
-	struct bnxt_re_qp *qp = rdev->qp1_sqp;
+	struct bnxt_re_qp *qp = rdev->gsi_ctx.gsi_sqp;
 	int rc = 0;
 
 	if (qp_attr_mask & IB_QP_STATE) {
@@ -1767,7 +1967,7 @@
 		dev_err(rdev_to_dev(rdev), "Failed to modify HW QP");
 		return rc;
 	}
-	if (ib_qp->qp_type == IB_QPT_GSI && rdev->qp1_sqp)
+	if (ib_qp->qp_type == IB_QPT_GSI && rdev->gsi_ctx.gsi_sqp)
 		rc = bnxt_re_modify_shadow_qp(rdev, qp, qp_attr_mask);
 	return rc;
 }
@@ -1793,6 +1993,7 @@
 		goto out;
 	}
 	qp_attr->qp_state = __to_ib_qp_state(qplib_qp->state);
+	qp_attr->cur_qp_state = __to_ib_qp_state(qplib_qp->cur_qp_state);
 	qp_attr->en_sqd_async_notify = qplib_qp->en_sqd_async_notify ? 1 : 0;
 	qp_attr->qp_access_flags = __to_ib_access_flags(qplib_qp->access);
 	qp_attr->pkey_index = qplib_qp->pkey_index;
@@ -2011,9 +2212,12 @@
 					    struct bnxt_qplib_swqe *wqe,
 					    int payload_size)
 {
+	struct bnxt_re_sqp_entries *sqp_entry;
 	struct bnxt_qplib_sge ref, sge;
+	struct bnxt_re_dev *rdev;
 	u32 rq_prod_index;
-	struct bnxt_re_sqp_entries *sqp_entry;
+
+	rdev = qp->rdev;
 
 	rq_prod_index = bnxt_qplib_get_rq_prod_index(&qp->qplib_qp);
 
@@ -2028,7 +2232,7 @@
 	ref.lkey = wqe->sg_list[0].lkey;
 	ref.size = wqe->sg_list[0].size;
 
-	sqp_entry = &qp->rdev->sqp_tbl[rq_prod_index];
+	sqp_entry = &rdev->gsi_ctx.sqp_tbl[rq_prod_index];
 
 	/* SGE 1 */
 	wqe->sg_list[0].addr = sge.addr;
@@ -2563,9 +2767,9 @@
 			goto fail;
 		}
 
-		cq->umem = ib_umem_get(udata, req.cq_va,
+		cq->umem = ib_umem_get(&rdev->ibdev, req.cq_va,
 				       entries * sizeof(struct cq_base),
-				       IB_ACCESS_LOCAL_WRITE, 1);
+				       IB_ACCESS_LOCAL_WRITE);
 		if (IS_ERR(cq->umem)) {
 			rc = PTR_ERR(cq->umem);
 			goto fail;
@@ -2848,12 +3052,13 @@
 	return rc;
 }
 
-static int bnxt_re_process_raw_qp_pkt_rx(struct bnxt_re_qp *qp1_qp,
+static int bnxt_re_process_raw_qp_pkt_rx(struct bnxt_re_qp *gsi_qp,
 					 struct bnxt_qplib_cqe *cqe)
 {
-	struct bnxt_re_dev *rdev = qp1_qp->rdev;
+	struct bnxt_re_dev *rdev = gsi_qp->rdev;
 	struct bnxt_re_sqp_entries *sqp_entry = NULL;
-	struct bnxt_re_qp *qp = rdev->qp1_sqp;
+	struct bnxt_re_qp *gsi_sqp = rdev->gsi_ctx.gsi_sqp;
+	struct bnxt_re_ah *gsi_sah;
 	struct ib_send_wr *swr;
 	struct ib_ud_wr udwr;
 	struct ib_recv_wr rwr;
@@ -2876,19 +3081,19 @@
 	swr = &udwr.wr;
 	tbl_idx = cqe->wr_id;
 
-	rq_hdr_buf = qp1_qp->qplib_qp.rq_hdr_buf +
-			(tbl_idx * qp1_qp->qplib_qp.rq_hdr_buf_size);
-	rq_hdr_buf_map = bnxt_qplib_get_qp_buf_from_index(&qp1_qp->qplib_qp,
+	rq_hdr_buf = gsi_qp->qplib_qp.rq_hdr_buf +
+			(tbl_idx * gsi_qp->qplib_qp.rq_hdr_buf_size);
+	rq_hdr_buf_map = bnxt_qplib_get_qp_buf_from_index(&gsi_qp->qplib_qp,
 							  tbl_idx);
 
 	/* Shadow QP header buffer */
-	shrq_hdr_buf_map = bnxt_qplib_get_qp_buf_from_index(&qp->qplib_qp,
+	shrq_hdr_buf_map = bnxt_qplib_get_qp_buf_from_index(&gsi_qp->qplib_qp,
 							    tbl_idx);
-	sqp_entry = &rdev->sqp_tbl[tbl_idx];
+	sqp_entry = &rdev->gsi_ctx.sqp_tbl[tbl_idx];
 
 	/* Store this cqe */
 	memcpy(&sqp_entry->cqe, cqe, sizeof(struct bnxt_qplib_cqe));
-	sqp_entry->qp1_qp = qp1_qp;
+	sqp_entry->qp1_qp = gsi_qp;
 
 	/* Find packet type from the cqe */
 
@@ -2942,7 +3147,7 @@
 	rwr.wr_id = tbl_idx;
 	rwr.next = NULL;
 
-	rc = bnxt_re_post_recv_shadow_qp(rdev, qp, &rwr);
+	rc = bnxt_re_post_recv_shadow_qp(rdev, gsi_sqp, &rwr);
 	if (rc) {
 		dev_err(rdev_to_dev(rdev),
 			"Failed to post Rx buffers to shadow QP");
@@ -2954,15 +3159,13 @@
 	swr->wr_id = tbl_idx;
 	swr->opcode = IB_WR_SEND;
 	swr->next = NULL;
-
-	udwr.ah = &rdev->sqp_ah->ib_ah;
-	udwr.remote_qpn = rdev->qp1_sqp->qplib_qp.id;
-	udwr.remote_qkey = rdev->qp1_sqp->qplib_qp.qkey;
+	gsi_sah = rdev->gsi_ctx.gsi_sah;
+	udwr.ah = &gsi_sah->ib_ah;
+	udwr.remote_qpn = gsi_sqp->qplib_qp.id;
+	udwr.remote_qkey = gsi_sqp->qplib_qp.qkey;
 
 	/* post data received  in the send queue */
-	rc = bnxt_re_post_send_shadow_qp(rdev, qp, swr);
-
-	return 0;
+	return bnxt_re_post_send_shadow_qp(rdev, gsi_sqp, swr);
 }
 
 static void bnxt_re_process_res_rawqp1_wc(struct ib_wc *wc,
@@ -2973,6 +3176,19 @@
 	wc->wc_flags |= IB_WC_GRH;
 }
 
+static bool bnxt_re_check_if_vlan_valid(struct bnxt_re_dev *rdev,
+					u16 vlan_id)
+{
+	/*
+	 * Check if the vlan is configured in the host.  If not configured, it
+	 * can be a transparent VLAN. So dont report the vlan id.
+	 */
+	if (!__vlan_find_dev_deep_rcu(rdev->netdev,
+				      htons(ETH_P_8021Q), vlan_id))
+		return false;
+	return true;
+}
+
 static bool bnxt_re_is_vlan_pkt(struct bnxt_qplib_cqe *orig_cqe,
 				u16 *vid, u8 *sl)
 {
@@ -3014,12 +3230,12 @@
 		wc->opcode = IB_WC_RECV_RDMA_WITH_IMM;
 }
 
-static void bnxt_re_process_res_shadow_qp_wc(struct bnxt_re_qp *qp,
+static void bnxt_re_process_res_shadow_qp_wc(struct bnxt_re_qp *gsi_sqp,
 					     struct ib_wc *wc,
 					     struct bnxt_qplib_cqe *cqe)
 {
-	struct bnxt_re_dev *rdev = qp->rdev;
-	struct bnxt_re_qp *qp1_qp = NULL;
+	struct bnxt_re_dev *rdev = gsi_sqp->rdev;
+	struct bnxt_re_qp *gsi_qp = NULL;
 	struct bnxt_qplib_cqe *orig_cqe = NULL;
 	struct bnxt_re_sqp_entries *sqp_entry = NULL;
 	int nw_type;
@@ -3029,21 +3245,23 @@
 
 	tbl_idx = cqe->wr_id;
 
-	sqp_entry = &rdev->sqp_tbl[tbl_idx];
-	qp1_qp = sqp_entry->qp1_qp;
+	sqp_entry = &rdev->gsi_ctx.sqp_tbl[tbl_idx];
+	gsi_qp = sqp_entry->qp1_qp;
 	orig_cqe = &sqp_entry->cqe;
 
 	wc->wr_id = sqp_entry->wrid;
 	wc->byte_len = orig_cqe->length;
-	wc->qp = &qp1_qp->ib_qp;
+	wc->qp = &gsi_qp->ib_qp;
 
 	wc->ex.imm_data = orig_cqe->immdata;
 	wc->src_qp = orig_cqe->src_qp;
 	memcpy(wc->smac, orig_cqe->smac, ETH_ALEN);
 	if (bnxt_re_is_vlan_pkt(orig_cqe, &vlan_id, &sl)) {
-		wc->vlan_id = vlan_id;
-		wc->sl = sl;
-		wc->wc_flags |= IB_WC_WITH_VLAN;
+		if (bnxt_re_check_if_vlan_valid(rdev, vlan_id)) {
+			wc->vlan_id = vlan_id;
+			wc->sl = sl;
+			wc->wc_flags |= IB_WC_WITH_VLAN;
+		}
 	}
 	wc->port_num = 1;
 	wc->vendor_err = orig_cqe->status;
@@ -3064,8 +3282,11 @@
 				      struct ib_wc *wc,
 				      struct bnxt_qplib_cqe *cqe)
 {
+	struct bnxt_re_dev *rdev;
+	u16 vlan_id = 0;
 	u8 nw_type;
 
+	rdev = qp->rdev;
 	wc->opcode = IB_WC_RECV;
 	wc->status = __rc_to_ib_wc_status(cqe->status);
 
@@ -3077,9 +3298,12 @@
 		memcpy(wc->smac, cqe->smac, ETH_ALEN);
 		wc->wc_flags |= IB_WC_WITH_SMAC;
 		if (cqe->flags & CQ_RES_UD_FLAGS_META_FORMAT_VLAN) {
-			wc->vlan_id = (cqe->cfa_meta & 0xFFF);
-			if (wc->vlan_id < 0x1000)
-				wc->wc_flags |= IB_WC_WITH_VLAN;
+			vlan_id = (cqe->cfa_meta & 0xFFF);
+		}
+		/* Mark only if vlan_id is non zero */
+		if (vlan_id && bnxt_re_check_if_vlan_valid(rdev, vlan_id)) {
+			wc->vlan_id = vlan_id;
+			wc->wc_flags |= IB_WC_WITH_VLAN;
 		}
 		nw_type = (cqe->flags & CQ_RES_UD_FLAGS_ROCE_IP_VER_MASK) >>
 			   CQ_RES_UD_FLAGS_ROCE_IP_VER_SFT;
@@ -3114,7 +3338,7 @@
 int bnxt_re_poll_cq(struct ib_cq *ib_cq, int num_entries, struct ib_wc *wc)
 {
 	struct bnxt_re_cq *cq = container_of(ib_cq, struct bnxt_re_cq, ib_cq);
-	struct bnxt_re_qp *qp;
+	struct bnxt_re_qp *qp, *sh_qp;
 	struct bnxt_qplib_cqe *cqe;
 	int i, ncqe, budget;
 	struct bnxt_qplib_q *sq;
@@ -3178,8 +3402,9 @@
 
 			switch (cqe->opcode) {
 			case CQ_BASE_CQE_TYPE_REQ:
-				if (qp->rdev->qp1_sqp && qp->qplib_qp.id ==
-				    qp->rdev->qp1_sqp->qplib_qp.id) {
+				sh_qp = qp->rdev->gsi_ctx.gsi_sqp;
+				if (sh_qp &&
+				    qp->qplib_qp.id == sh_qp->qplib_qp.id) {
 					/* Handle this completion with
 					 * the stored completion
 					 */
@@ -3205,7 +3430,7 @@
 				 * stored in the table
 				 */
 				tbl_idx = cqe->wr_id;
-				sqp_entry = &cq->rdev->sqp_tbl[tbl_idx];
+				sqp_entry = &cq->rdev->gsi_ctx.sqp_tbl[tbl_idx];
 				wc->wr_id = sqp_entry->wrid;
 				bnxt_re_process_res_rawqp1_wc(wc, cqe);
 				break;
@@ -3213,8 +3438,9 @@
 				bnxt_re_process_res_rc_wc(wc, cqe);
 				break;
 			case CQ_BASE_CQE_TYPE_RES_UD:
-				if (qp->rdev->qp1_sqp && qp->qplib_qp.id ==
-				    qp->rdev->qp1_sqp->qplib_qp.id) {
+				sh_qp = qp->rdev->gsi_ctx.gsi_sqp;
+				if (sh_qp &&
+				    qp->qplib_qp.id == sh_qp->qplib_qp.id) {
 					/* Handle this completion with
 					 * the stored completion
 					 */
@@ -3323,8 +3549,10 @@
 	int rc;
 
 	rc = bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr);
-	if (rc)
+	if (rc) {
 		dev_err(rdev_to_dev(rdev), "Dereg MR failed: %#x\n", rc);
+		return rc;
+	}
 
 	if (mr->pages) {
 		rc = bnxt_qplib_free_fast_reg_page_list(&rdev->qplib_res,
@@ -3530,7 +3758,7 @@
 	/* The fixed portion of the rkey is the same as the lkey */
 	mr->ib_mr.rkey = mr->qplib_mr.rkey;
 
-	umem = ib_umem_get(udata, start, length, mr_access_flags, 0);
+	umem = ib_umem_get(&rdev->ibdev, start, length, mr_access_flags);
 	if (IS_ERR(umem)) {
 		dev_err(rdev_to_dev(rdev), "Failed to get umem");
 		rc = -EFAULT;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/main.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/main.c
@@ -119,61 +119,76 @@
  * reserved for the function. The driver may choose to allocate fewer
  * resources than the firmware maximum.
  */
-static void bnxt_re_set_resource_limits(struct bnxt_re_dev *rdev)
+static void bnxt_re_limit_pf_res(struct bnxt_re_dev *rdev)
 {
-	u32 vf_qps = 0, vf_srqs = 0, vf_cqs = 0, vf_mrws = 0, vf_gids = 0;
-	u32 i;
+	struct bnxt_qplib_dev_attr *attr;
+	struct bnxt_qplib_ctx *ctx;
+	int i;
+
+	attr = &rdev->dev_attr;
+	ctx = &rdev->qplib_ctx;
+
+	ctx->qpc_count = min_t(u32, BNXT_RE_MAX_QPC_COUNT,
+			       attr->max_qp);
+	ctx->mrw_count = BNXT_RE_MAX_MRW_COUNT_256K;
+	/* Use max_mr from fw since max_mrw does not get set */
+	ctx->mrw_count = min_t(u32, ctx->mrw_count, attr->max_mr);
+	ctx->srqc_count = min_t(u32, BNXT_RE_MAX_SRQC_COUNT,
+				attr->max_srq);
+	ctx->cq_count = min_t(u32, BNXT_RE_MAX_CQ_COUNT, attr->max_cq);
+	if (!bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx))
+		for (i = 0; i < MAX_TQM_ALLOC_REQ; i++)
+			rdev->qplib_ctx.tqm_count[i] =
+			rdev->dev_attr.tqm_alloc_reqs[i];
+}
+
+static void bnxt_re_limit_vf_res(struct bnxt_qplib_ctx *qplib_ctx, u32 num_vf)
+{
+	struct bnxt_qplib_vf_res *vf_res;
+	u32 mrws = 0;
 	u32 vf_pct;
+	u32 nvfs;
+
+	vf_res = &qplib_ctx->vf_res;
+	/*
+	 * Reserve a set of resources for the PF. Divide the remaining
+	 * resources among the VFs
+	 */
+	vf_pct = 100 - BNXT_RE_PCT_RSVD_FOR_PF;
+	nvfs = num_vf;
+	num_vf = 100 * num_vf;
+	vf_res->max_qp_per_vf = (qplib_ctx->qpc_count * vf_pct) / num_vf;
+	vf_res->max_srq_per_vf = (qplib_ctx->srqc_count * vf_pct) / num_vf;
+	vf_res->max_cq_per_vf = (qplib_ctx->cq_count * vf_pct) / num_vf;
+	/*
+	 * The driver allows many more MRs than other resources. If the
+	 * firmware does also, then reserve a fixed amount for the PF and
+	 * divide the rest among VFs. VFs may use many MRs for NFS
+	 * mounts, ISER, NVME applications, etc. If the firmware severely
+	 * restricts the number of MRs, then let PF have half and divide
+	 * the rest among VFs, as for the other resource types.
+	 */
+	if (qplib_ctx->mrw_count < BNXT_RE_MAX_MRW_COUNT_64K) {
+		mrws = qplib_ctx->mrw_count * vf_pct;
+		nvfs = num_vf;
+	} else {
+		mrws = qplib_ctx->mrw_count - BNXT_RE_RESVD_MR_FOR_PF;
+	}
+	vf_res->max_mrw_per_vf = (mrws / nvfs);
+	vf_res->max_gid_per_vf = BNXT_RE_MAX_GID_PER_VF;
+}
+
+static void bnxt_re_set_resource_limits(struct bnxt_re_dev *rdev)
+{
 	u32 num_vfs;
-	struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr;
 
-	rdev->qplib_ctx.qpc_count = min_t(u32, BNXT_RE_MAX_QPC_COUNT,
-					  dev_attr->max_qp);
+	memset(&rdev->qplib_ctx.vf_res, 0, sizeof(struct bnxt_qplib_vf_res));
+	bnxt_re_limit_pf_res(rdev);
 
-	rdev->qplib_ctx.mrw_count = BNXT_RE_MAX_MRW_COUNT_256K;
-	/* Use max_mr from fw since max_mrw does not get set */
-	rdev->qplib_ctx.mrw_count = min_t(u32, rdev->qplib_ctx.mrw_count,
-					  dev_attr->max_mr);
-	rdev->qplib_ctx.srqc_count = min_t(u32, BNXT_RE_MAX_SRQC_COUNT,
-					   dev_attr->max_srq);
-	rdev->qplib_ctx.cq_count = min_t(u32, BNXT_RE_MAX_CQ_COUNT,
-					 dev_attr->max_cq);
-
-	for (i = 0; i < MAX_TQM_ALLOC_REQ; i++)
-		rdev->qplib_ctx.tqm_count[i] =
-		rdev->dev_attr.tqm_alloc_reqs[i];
-
-	if (rdev->num_vfs) {
-		/*
-		 * Reserve a set of resources for the PF. Divide the remaining
-		 * resources among the VFs
-		 */
-		vf_pct = 100 - BNXT_RE_PCT_RSVD_FOR_PF;
-		num_vfs = 100 * rdev->num_vfs;
-		vf_qps = (rdev->qplib_ctx.qpc_count * vf_pct) / num_vfs;
-		vf_srqs = (rdev->qplib_ctx.srqc_count * vf_pct) / num_vfs;
-		vf_cqs = (rdev->qplib_ctx.cq_count * vf_pct) / num_vfs;
-		/*
-		 * The driver allows many more MRs than other resources. If the
-		 * firmware does also, then reserve a fixed amount for the PF
-		 * and divide the rest among VFs. VFs may use many MRs for NFS
-		 * mounts, ISER, NVME applications, etc. If the firmware
-		 * severely restricts the number of MRs, then let PF have
-		 * half and divide the rest among VFs, as for the other
-		 * resource types.
-		 */
-		if (rdev->qplib_ctx.mrw_count < BNXT_RE_MAX_MRW_COUNT_64K)
-			vf_mrws = rdev->qplib_ctx.mrw_count * vf_pct / num_vfs;
-		else
-			vf_mrws = (rdev->qplib_ctx.mrw_count -
-				   BNXT_RE_RESVD_MR_FOR_PF) / rdev->num_vfs;
-		vf_gids = BNXT_RE_MAX_GID_PER_VF;
-	}
-	rdev->qplib_ctx.vf_res.max_mrw_per_vf = vf_mrws;
-	rdev->qplib_ctx.vf_res.max_gid_per_vf = vf_gids;
-	rdev->qplib_ctx.vf_res.max_qp_per_vf = vf_qps;
-	rdev->qplib_ctx.vf_res.max_srq_per_vf = vf_srqs;
-	rdev->qplib_ctx.vf_res.max_cq_per_vf = vf_cqs;
+	num_vfs =  bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx) ?
+			BNXT_RE_GEN_P5_MAX_VF : rdev->num_vfs;
+	if (num_vfs)
+		bnxt_re_limit_vf_res(&rdev->qplib_ctx, num_vfs);
 }
 
 /* for handling bnxt_en callbacks later */
@@ -193,9 +208,11 @@
 		return;
 
 	rdev->num_vfs = num_vfs;
-	bnxt_re_set_resource_limits(rdev);
-	bnxt_qplib_set_func_resources(&rdev->qplib_res, &rdev->rcfw,
-				      &rdev->qplib_ctx);
+	if (!bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx)) {
+		bnxt_re_set_resource_limits(rdev);
+		bnxt_qplib_set_func_resources(&rdev->qplib_res, &rdev->rcfw,
+					      &rdev->qplib_ctx);
+	}
 }
 
 static void bnxt_re_shutdown(void *p)
@@ -477,6 +494,7 @@
 	bnxt_re_init_hwrm_hdr(rdev, (void *)&req, HWRM_STAT_CTX_ALLOC, -1, -1);
 	req.update_period_ms = cpu_to_le32(1000);
 	req.stats_dma_addr = cpu_to_le64(dma_map);
+	req.stats_dma_length = cpu_to_le16(sizeof(struct ctx_hw_stats_ext));
 	req.stat_ctx_flags = STAT_CTX_ALLOC_REQ_STAT_CTX_FLAGS_ROCE;
 	bnxt_re_fill_fw_msg(&fw_msg, (void *)&req, sizeof(req), (void *)&resp,
 			    sizeof(resp), DFLT_HWRM_CMD_TIMEOUT);
@@ -788,7 +806,8 @@
 	struct ib_event event;
 	unsigned int flags;
 
-	if (qp->qplib_qp.state == CMDQ_MODIFY_QP_NEW_STATE_ERR) {
+	if (qp->qplib_qp.state == CMDQ_MODIFY_QP_NEW_STATE_ERR &&
+	    rdma_is_kernel_res(&qp->ib_qp.res)) {
 		flags = bnxt_re_lock_cqs(qp);
 		bnxt_qplib_add_flush_qp(&qp->qplib_qp);
 		bnxt_re_unlock_cqs(qp, flags);
@@ -895,10 +914,14 @@
 	return 0;
 }
 
+#define BNXT_RE_GEN_P5_PF_NQ_DB		0x10000
+#define BNXT_RE_GEN_P5_VF_NQ_DB		0x4000
 static u32 bnxt_re_get_nqdb_offset(struct bnxt_re_dev *rdev, u16 indx)
 {
 	return bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx) ?
-				0x10000 : rdev->msix_entries[indx].db_offset;
+		(rdev->is_virtfn ? BNXT_RE_GEN_P5_VF_NQ_DB :
+				   BNXT_RE_GEN_P5_PF_NQ_DB) :
+				   rdev->msix_entries[indx].db_offset;
 }
 
 static void bnxt_re_cleanup_res(struct bnxt_re_dev *rdev)
@@ -1104,7 +1127,8 @@
 static bool bnxt_re_is_qp1_or_shadow_qp(struct bnxt_re_dev *rdev,
 					struct bnxt_re_qp *qp)
 {
-	return (qp->ib_qp.qp_type == IB_QPT_GSI) || (qp == rdev->qp1_sqp);
+	return (qp->ib_qp.qp_type == IB_QPT_GSI) ||
+	       (qp == rdev->gsi_ctx.gsi_sqp);
 }
 
 static void bnxt_re_dev_stop(struct bnxt_re_dev *rdev)
@@ -1270,10 +1294,10 @@
 		return;
 	}
 	rdev->qplib_ctx.hwrm_intf_ver =
-		(u64)resp.hwrm_intf_major << 48 |
-		(u64)resp.hwrm_intf_minor << 32 |
-		(u64)resp.hwrm_intf_build << 16 |
-		resp.hwrm_intf_patch;
+		(u64)le16_to_cpu(resp.hwrm_intf_major) << 48 |
+		(u64)le16_to_cpu(resp.hwrm_intf_minor) << 32 |
+		(u64)le16_to_cpu(resp.hwrm_intf_build) << 16 |
+		le16_to_cpu(resp.hwrm_intf_patch);
 }
 
 static void bnxt_re_ib_unreg(struct bnxt_re_dev *rdev)
@@ -1408,8 +1432,8 @@
 				     rdev->is_virtfn);
 	if (rc)
 		goto disable_rcfw;
-	if (!rdev->is_virtfn)
-		bnxt_re_set_resource_limits(rdev);
+
+	bnxt_re_set_resource_limits(rdev);
 
 	rc = bnxt_qplib_alloc_ctx(rdev->en_dev->pdev, &rdev->qplib_ctx, 0,
 				  bnxt_qplib_is_chip_gen_p5(&rdev->chip_ctx));
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -642,12 +642,13 @@
 	int rc = 0;
 
 	RCFW_CMD_PREP(req, QUERY_SRQ, cmd_flags);
-	req.srq_cid = cpu_to_le32(srq->id);
 
 	/* Configure the request */
 	sbuf = bnxt_qplib_rcfw_alloc_sbuf(rcfw, sizeof(*sb));
 	if (!sbuf)
 		return -ENOMEM;
+	req.resp_size = sizeof(*sb) / BNXT_QPLIB_CMDQE_UNITS;
+	req.srq_cid = cpu_to_le32(srq->id);
 	sb = sbuf->sb;
 	rc = bnxt_qplib_rcfw_send_message(rcfw, (void *)&req, (void *)&resp,
 					  (void *)sbuf, 0);
@@ -2283,13 +2284,13 @@
 			/* Add qp to flush list of the CQ */
 			bnxt_qplib_add_flush_qp(qp);
 		} else {
+			/* Before we complete, do WA 9060 */
+			if (do_wa9060(qp, cq, cq_cons, sw_sq_cons,
+				      cqe_sq_cons)) {
+				*lib_qp = qp;
+				goto out;
+			}
 			if (swq->flags & SQ_SEND_FLAGS_SIGNAL_COMP) {
-				/* Before we complete, do WA 9060 */
-				if (do_wa9060(qp, cq, cq_cons, sw_sq_cons,
-					      cqe_sq_cons)) {
-					*lib_qp = qp;
-					goto out;
-				}
 				cqe->status = CQ_REQ_STATUS_OK;
 				cqe++;
 				(*budget)--;
@@ -2605,11 +2606,8 @@
 
 	qp = (struct bnxt_qplib_qp *)((unsigned long)
 				      le64_to_cpu(hwcqe->qp_handle));
-	if (!qp) {
-		dev_err(&cq->hwq.pdev->dev,
-			"FP: CQ Process terminal qp is NULL\n");
+	if (!qp)
 		return -EINVAL;
-	}
 
 	/* Must block new posting of SQ and RQ */
 	qp->state = CMDQ_MODIFY_QP_NEW_STATE_ERR;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
@@ -494,8 +494,10 @@
 	 * shall setup this area for VF. Skipping the
 	 * HW programming
 	 */
-	if (is_virtfn || bnxt_qplib_is_chip_gen_p5(rcfw->res->cctx))
+	if (is_virtfn)
 		goto skip_ctx_setup;
+	if (bnxt_qplib_is_chip_gen_p5(rcfw->res->cctx))
+		goto config_vf_res;
 
 	level = ctx->qpc_tbl.level;
 	req.qpc_pg_size_qpc_lvl = (level << CMDQ_INITIALIZE_FW_QPC_LVL_SFT) |
@@ -540,6 +542,7 @@
 	req.number_of_srq = cpu_to_le32(ctx->srqc_tbl.max_elements);
 	req.number_of_cq = cpu_to_le32(ctx->cq_tbl.max_elements);
 
+config_vf_res:
 	req.max_qp_per_vf = cpu_to_le32(ctx->vf_res.max_qp_per_vf);
 	req.max_mrw_per_vf = cpu_to_le32(ctx->vf_res.max_mrw_per_vf);
 	req.max_srq_per_vf = cpu_to_le32(ctx->vf_res.max_srq_per_vf);
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_res.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_res.c
@@ -736,6 +736,7 @@
 
 unmap_io:
 	pci_iounmap(res->pdev, dpit->dbr_bar_reg_iomem);
+	dpit->dbr_bar_reg_iomem = NULL;
 	return -ENOMEM;
 }
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_res.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_res.h
@@ -186,7 +186,9 @@
 	u8	chip_metal;
 };
 
-#define CHIP_NUM_57500          0x1750
+#define CHIP_NUM_57508		0x1750
+#define CHIP_NUM_57504		0x1751
+#define CHIP_NUM_57502		0x1752
 
 struct bnxt_qplib_res {
 	struct pci_dev			*pdev;
@@ -203,7 +205,9 @@
 
 static inline bool bnxt_qplib_is_chip_gen_p5(struct bnxt_qplib_chip_ctx *cctx)
 {
-	return (cctx->chip_num == CHIP_NUM_57500);
+	return (cctx->chip_num == CHIP_NUM_57508 ||
+		cctx->chip_num == CHIP_NUM_57504 ||
+		cctx->chip_num == CHIP_NUM_57502);
 }
 
 static inline u8 bnxt_qplib_get_hwq_type(struct bnxt_qplib_res *res)
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_sp.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_sp.c
@@ -152,7 +152,7 @@
 	attr->max_inline_data = le32_to_cpu(sb->max_inline_data);
 	attr->l2_db_size = (sb->l2_db_space_size + 1) *
 			    (0x01 << RCFW_DBR_BASE_PAGE_SHIFT);
-	attr->max_sgid = le32_to_cpu(sb->max_gid);
+	attr->max_sgid = BNXT_QPLIB_NUM_GIDS_SUPPORTED;
 
 	bnxt_qplib_query_version(rcfw, attr->fw_ver);
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/bnxt_re/qplib_sp.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/bnxt_re/qplib_sp.h
@@ -47,6 +47,7 @@
 struct bnxt_qplib_dev_attr {
 #define FW_VER_ARR_LEN			4
 	u8				fw_ver[FW_VER_ARR_LEN];
+#define BNXT_QPLIB_NUM_GIDS_SUPPORTED	256
 	u16				max_sgid;
 	u16				max_mrw;
 	u32				max_qp;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -451,7 +451,7 @@
 
 	mhp->rhp = rhp;
 
-	mhp->umem = ib_umem_get(udata, start, length, acc, 0);
+	mhp->umem = ib_umem_get(pd->device, start, length, acc);
 	if (IS_ERR(mhp->umem)) {
 		err = PTR_ERR(mhp->umem);
 		kfree(mhp);
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb4/cm.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb4/cm.c
@@ -1965,6 +1965,9 @@
 	int win;
 
 	skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
 	req = __skb_put_zero(skb, sizeof(*req));
 	req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR));
 	req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16)));
@@ -2891,8 +2894,7 @@
 			srqidx = ABORT_RSS_SRQIDX_G(
 					be32_to_cpu(req->srqidx_status));
 			if (srqidx) {
-				complete_cached_srq_buffers(ep,
-							    req->srqidx_status);
+				complete_cached_srq_buffers(ep, srqidx);
 			} else {
 				/* Hold ep ref until finish_peer_abort() */
 				c4iw_get_ep(&ep->com);
@@ -3036,6 +3038,10 @@
 				       C4IW_QP_ATTR_NEXT_STATE, &attrs, 1);
 		}
 
+		/* As per draft-hilland-iwarp-verbs-v1.0, sec 6.2.3,
+		 * when entering the TERM state the RNIC MUST initiate a CLOSE.
+		 */
+		c4iw_ep_disconnect(ep, 1, GFP_KERNEL);
 		c4iw_put_ep(&ep->com);
 	} else
 		pr_warn("TERM received tid %u no ep/qp\n", tid);
@@ -3279,7 +3285,7 @@
 
 static int pick_local_ip6addrs(struct c4iw_dev *dev, struct iw_cm_id *cm_id)
 {
-	struct in6_addr uninitialized_var(addr);
+	struct in6_addr addr;
 	struct sockaddr_in6 *la6 = (struct sockaddr_in6 *)&cm_id->m_local_addr;
 	struct sockaddr_in6 *ra6 = (struct sockaddr_in6 *)&cm_id->m_remote_addr;
 
@@ -3379,7 +3385,7 @@
 		if (raddr->sin_addr.s_addr == htonl(INADDR_ANY)) {
 			err = pick_local_ipaddrs(dev, cm_id);
 			if (err)
-				goto fail2;
+				goto fail3;
 		}
 
 		/* find a route */
@@ -3401,7 +3407,7 @@
 		if (ipv6_addr_type(&raddr6->sin6_addr) == IPV6_ADDR_ANY) {
 			err = pick_local_ip6addrs(dev, cm_id);
 			if (err)
-				goto fail2;
+				goto fail3;
 		}
 
 		/* find a route */
@@ -3607,13 +3613,14 @@
 	    ep->com.local_addr.ss_family == AF_INET) {
 		err = cxgb4_remove_server_filter(
 			ep->com.dev->rdev.lldi.ports[0], ep->stid,
-			ep->com.dev->rdev.lldi.rxq_ids[0], 0);
+			ep->com.dev->rdev.lldi.rxq_ids[0], false);
 	} else {
 		struct sockaddr_in6 *sin6;
 		c4iw_init_wr_wait(ep->com.wr_waitp);
 		err = cxgb4_remove_server(
 				ep->com.dev->rdev.lldi.ports[0], ep->stid,
-				ep->com.dev->rdev.lldi.rxq_ids[0], 0);
+				ep->com.dev->rdev.lldi.rxq_ids[0],
+				ep->com.local_addr.ss_family == AF_INET6);
 		if (err)
 			goto done;
 		err = c4iw_wait_for_reply(&ep->com.dev->rdev, ep->com.wr_waitp,
@@ -3874,8 +3881,8 @@
 		return 0;
 	}
 
-	ep->srqe_idx = t4_tcb_get_field32(tcb, TCB_RQ_START_W, TCB_RQ_START_W,
-			TCB_RQ_START_S);
+	ep->srqe_idx = t4_tcb_get_field32(tcb, TCB_RQ_START_W, TCB_RQ_START_M,
+					  TCB_RQ_START_S);
 cleanup:
 	pr_debug("ep %p tid %u %016x\n", ep, ep->hwtid, ep->srqe_idx);
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb4/cq.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb4/cq.c
@@ -754,7 +754,7 @@
 static int __c4iw_poll_cq_one(struct c4iw_cq *chp, struct c4iw_qp *qhp,
 			      struct ib_wc *wc, struct c4iw_srq *srq)
 {
-	struct t4_cqe uninitialized_var(cqe);
+	struct t4_cqe cqe;
 	struct t4_wq *wq = qhp ? &qhp->wq : NULL;
 	u32 credit = 0;
 	u8 cqe_flushed;
@@ -1007,6 +1007,9 @@
 	if (attr->flags)
 		return -EINVAL;
 
+	if (entries < 1 || entries > ibdev->attrs.max_cqe)
+		return -EINVAL;
+
 	if (vector >= rhp->rdev.lldi.nciq)
 		return -EINVAL;
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb4/device.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb4/device.c
@@ -953,6 +953,7 @@
 static void c4iw_remove(struct uld_ctx *ctx)
 {
 	pr_debug("c4iw_dev %p\n", ctx->dev);
+	debugfs_remove_recursive(ctx->dev->debugfs_root);
 	c4iw_unregister_device(ctx->dev);
 	c4iw_dealloc(ctx);
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb4/mem.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb4/mem.c
@@ -399,7 +399,6 @@
 	mmid = stag >> 8;
 	mhp->ibmr.rkey = mhp->ibmr.lkey = stag;
 	mhp->ibmr.length = mhp->attr.len;
-	mhp->ibmr.iova = mhp->attr.va_fbo;
 	mhp->ibmr.page_size = 1U << (mhp->attr.page_size + 12);
 	pr_debug("mmid 0x%x mhp %p\n", mmid, mhp);
 	return xa_insert_irq(&mhp->rhp->mrs, mmid, mhp, GFP_KERNEL);
@@ -543,7 +542,7 @@
 
 	mhp->rhp = rhp;
 
-	mhp->umem = ib_umem_get(udata, start, length, acc, 0);
+	mhp->umem = ib_umem_get(pd->device, start, length, acc);
 	if (IS_ERR(mhp->umem))
 		goto err_free_skb;
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb4/qp.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb4/qp.c
@@ -295,6 +295,7 @@
 	if (user && (!wq->sq.bar2_pa || (need_rq && !wq->rq.bar2_pa))) {
 		pr_warn("%s: sqid %u or rqid %u not in BAR2 range\n",
 			pci_name(rdev->lldi.pdev), wq->sq.qid, wq->rq.qid);
+		ret = -EINVAL;
 		goto free_dma;
 	}
 
@@ -1948,10 +1949,10 @@
 			qhp->attr.layer_etype = attrs->layer_etype;
 			qhp->attr.ecode = attrs->ecode;
 			ep = qhp->ep;
-			c4iw_get_ep(&ep->com);
-			disconnect = 1;
 			if (!internal) {
+				c4iw_get_ep(&ep->com);
 				terminate = 1;
+				disconnect = 1;
 			} else {
 				terminate = qhp->attr.send_term;
 				ret = rdma_fini(rhp, qhp, ep);
@@ -2468,10 +2469,11 @@
 	memset(attr, 0, sizeof(*attr));
 	memset(init_attr, 0, sizeof(*init_attr));
 	attr->qp_state = to_ib_qp_state(qhp->attr.state);
+	attr->cur_qp_state = to_ib_qp_state(qhp->attr.state);
 	init_attr->cap.max_send_wr = qhp->attr.sq_num_entries;
 	init_attr->cap.max_recv_wr = qhp->attr.rq_num_entries;
 	init_attr->cap.max_send_sge = qhp->attr.sq_max_sges;
-	init_attr->cap.max_recv_sge = qhp->attr.sq_max_sges;
+	init_attr->cap.max_recv_sge = qhp->attr.rq_max_sges;
 	init_attr->cap.max_inline_data = T4_MAX_SEND_INLINE;
 	init_attr->sq_sig_type = qhp->sq_sig_all ? IB_SIGNAL_ALL_WR : 0;
 	return 0;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/cxgb4/resource.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/cxgb4/resource.c
@@ -216,7 +216,7 @@
 			goto out;
 		entry->qid = qid;
 		list_add_tail(&entry->entry, &uctx->cqids);
-		for (i = qid; i & rdev->qpmask; i++) {
+		for (i = qid + 1; i & rdev->qpmask; i++) {
 			entry = kmalloc(sizeof(*entry), GFP_KERNEL);
 			if (!entry)
 				goto out;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
@@ -579,7 +579,8 @@
 	/* Number of sub-CQs to be created for each CQ */
 	u16 sub_cqs_per_cq;
 
-	u16 reserved;
+	/* Minimum number of WQEs per SQ */
+	u16 min_sq_depth;
 
 	/*
 	 * Maximum number of SGEs (buffs) allowed for a single send work
@@ -604,6 +605,20 @@
 
 	/* The maximum size of LLQ in bytes */
 	u32 max_llq_size;
+
+	/* Maximum number of SGEs for a single RDMA read WQE */
+	u16 max_wr_rdma_sges;
+
+	/*
+	 * Maximum number of bytes that can be written to SQ between two
+	 * consecutive doorbells (in units of 64B). Driver must ensure that only
+	 * complete WQEs are written to queue before issuing a doorbell.
+	 * Examples: max_tx_batch=16 and WQE size = 64B, means up to 16 WQEs can
+	 * be written to SQ between two consecutive doorbells. max_tx_batch=11
+	 * and WQE size = 128B, means up to 5 WQEs can be written to SQ between
+	 * two consecutive doorbells. Zero means unlimited.
+	 */
+	u16 max_tx_batch;
 };
 
 struct efa_admin_feature_aenq_desc {
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/efa/efa_com.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/efa/efa_com.c
@@ -317,6 +317,7 @@
 						       struct efa_admin_acq_entry *comp,
 						       size_t comp_size_in_bytes)
 {
+	struct efa_admin_aq_entry *aqe;
 	struct efa_comp_ctx *comp_ctx;
 	u16 queue_size_mask;
 	u16 cmd_id;
@@ -350,7 +351,9 @@
 
 	reinit_completion(&comp_ctx->wait_event);
 
-	memcpy(&aq->sq.entries[pi], cmd, cmd_size_in_bytes);
+	aqe = &aq->sq.entries[pi];
+	memset(aqe, 0, sizeof(*aqe));
+	memcpy(aqe, cmd, cmd_size_in_bytes);
 
 	aq->sq.pc++;
 	atomic64_inc(&aq->stats.submitted_cmd);
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/efa/efa_com_cmd.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/efa/efa_com_cmd.c
@@ -500,6 +500,8 @@
 	result->max_ah = resp.u.queue_attr.max_ah;
 	result->max_llq_size = resp.u.queue_attr.max_llq_size;
 	result->sub_cqs_per_cq = resp.u.queue_attr.sub_cqs_per_cq;
+	result->max_tx_batch = resp.u.queue_attr.max_tx_batch;
+	result->min_sq_depth = resp.u.queue_attr.min_sq_depth;
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/efa/efa_com_cmd.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/efa/efa_com_cmd.h
@@ -127,6 +127,8 @@
 	u16 sub_cqs_per_cq;
 	u16 max_sq_sge;
 	u16 max_rq_sge;
+	u16 max_tx_batch;
+	u16 min_sq_depth;
 	u8 db_bar;
 };
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/efa/efa_main.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/efa/efa_main.c
@@ -10,10 +10,12 @@
 
 #include "efa.h"
 
-#define PCI_DEV_ID_EFA_VF 0xefa0
+#define PCI_DEV_ID_EFA0_VF 0xefa0
+#define PCI_DEV_ID_EFA1_VF 0xefa1
 
 static const struct pci_device_id efa_pci_tbl[] = {
-	{ PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA_VF) },
+	{ PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA0_VF) },
+	{ PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA1_VF) },
 	{ }
 };
 
@@ -340,6 +342,7 @@
 	}
 
 	if (irq_num != msix_vecs) {
+		efa_disable_msix(dev);
 		dev_err(&dev->pdev->dev,
 			"Allocated %d MSI-X (out of %d requested)\n",
 			irq_num, msix_vecs);
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/efa/efa_verbs.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/efa/efa_verbs.c
@@ -745,7 +745,6 @@
 	rq_entry_inserted = true;
 	qp->qp_handle = create_qp_resp.qp_handle;
 	qp->ibqp.qp_num = create_qp_resp.qp_num;
-	qp->ibqp.qp_type = init_attr->qp_type;
 	qp->max_send_wr = init_attr->cap.max_send_wr;
 	qp->max_recv_wr = init_attr->cap.max_recv_wr;
 	qp->max_send_sge = init_attr->cap.max_send_sge;
@@ -1232,7 +1231,7 @@
  */
 static int pbl_indirect_initialize(struct efa_dev *dev, struct pbl_context *pbl)
 {
-	u32 size_in_pages = DIV_ROUND_UP(pbl->pbl_buf_size_in_bytes, PAGE_SIZE);
+	u32 size_in_pages = DIV_ROUND_UP(pbl->pbl_buf_size_in_bytes, EFA_CHUNK_PAYLOAD_SIZE);
 	struct scatterlist *sgl;
 	int sg_dma_cnt, err;
 
@@ -1423,7 +1422,7 @@
 		goto err_out;
 	}
 
-	mr->umem = ib_umem_get(udata, start, length, access_flags, 0);
+	mr->umem = ib_umem_get(ibpd->device, start, length, access_flags);
 	if (IS_ERR(mr->umem)) {
 		err = PTR_ERR(mr->umem);
 		ibdev_dbg(&dev->ibdev,
@@ -1538,11 +1537,39 @@
 	return efa_com_dealloc_uar(&dev->edev, &params);
 }
 
+#define EFA_CHECK_USER_COMP(_dev, _comp_mask, _attr, _mask, _attr_str) \
+	(_attr_str = (!(_dev)->dev_attr._attr || ((_comp_mask) & (_mask))) ? \
+		     NULL : #_attr)
+
+static int efa_user_comp_handshake(const struct ib_ucontext *ibucontext,
+				   const struct efa_ibv_alloc_ucontext_cmd *cmd)
+{
+	struct efa_dev *dev = to_edev(ibucontext->device);
+	char *attr_str;
+
+	if (EFA_CHECK_USER_COMP(dev, cmd->comp_mask, max_tx_batch,
+				EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH, attr_str))
+		goto err;
+
+	if (EFA_CHECK_USER_COMP(dev, cmd->comp_mask, min_sq_depth,
+				EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR,
+				attr_str))
+		goto err;
+
+	return 0;
+
+err:
+	ibdev_dbg(&dev->ibdev, "Userspace handshake failed for %s attribute\n",
+		  attr_str);
+	return -EOPNOTSUPP;
+}
+
 int efa_alloc_ucontext(struct ib_ucontext *ibucontext, struct ib_udata *udata)
 {
 	struct efa_ucontext *ucontext = to_eucontext(ibucontext);
 	struct efa_dev *dev = to_edev(ibucontext->device);
 	struct efa_ibv_alloc_ucontext_resp resp = {};
+	struct efa_ibv_alloc_ucontext_cmd cmd = {};
 	struct efa_com_alloc_uar_result result;
 	int err;
 
@@ -1551,6 +1578,18 @@
 	 * we will ack input fields in our response.
 	 */
 
+	err = ib_copy_from_udata(&cmd, udata,
+				 min(sizeof(cmd), udata->inlen));
+	if (err) {
+		ibdev_dbg(&dev->ibdev,
+			  "Cannot copy udata for alloc_ucontext\n");
+		goto err_out;
+	}
+
+	err = efa_user_comp_handshake(ibucontext, &cmd);
+	if (err)
+		goto err_out;
+
 	err = efa_com_alloc_uar(&dev->edev, &result);
 	if (err)
 		goto err_out;
@@ -1563,6 +1602,8 @@
 	resp.sub_cqs_per_cq = dev->dev_attr.sub_cqs_per_cq;
 	resp.inline_buf_size = dev->dev_attr.inline_buf_size;
 	resp.max_llq_size = dev->dev_attr.max_llq_size;
+	resp.max_tx_batch = dev->dev_attr.max_tx_batch;
+	resp.min_sq_wr = dev->dev_attr.min_sq_depth;
 
 	if (udata && udata->outlen) {
 		err = ib_copy_to_udata(udata, &resp,
@@ -1612,11 +1653,13 @@
 	switch (entry->mmap_flag) {
 	case EFA_MMAP_IO_NC:
 		err = rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, length,
-					pgprot_noncached(vma->vm_page_prot));
+					pgprot_noncached(vma->vm_page_prot),
+					NULL);
 		break;
 	case EFA_MMAP_IO_WC:
 		err = rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, length,
-					pgprot_writecombine(vma->vm_page_prot));
+					pgprot_writecombine(vma->vm_page_prot),
+					NULL);
 		break;
 	case EFA_MMAP_DMA_PAGE:
 		for (va = vma->vm_start; va < vma->vm_end;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/affinity.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/affinity.c
@@ -218,6 +218,8 @@
 	for (node = 0; node < node_affinity.num_possible_nodes; node++)
 		hfi1_per_node_cntr[node] = 1;
 
+	pci_dev_put(dev);
+
 	return 0;
 }
 
@@ -479,6 +481,8 @@
 			  rvt_get_ibdev_name(&(dd)->verbs_dev.rdi), i, cpu);
 	}
 
+	free_cpumask_var(available_cpus);
+	free_cpumask_var(non_intr_cpus);
 	return 0;
 
 fail:
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/chip.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/chip.c
@@ -1685,6 +1685,14 @@
 	return dd->verbs_dev.n_piodrain;
 }
 
+static u64 access_sw_ctx0_seq_drop(const struct cntr_entry *entry,
+				   void *context, int vl, int mode, u64 data)
+{
+	struct hfi1_devdata *dd = context;
+
+	return dd->ctx0_seq_drop;
+}
+
 static u64 access_sw_vtx_wait(const struct cntr_entry *entry,
 			      void *context, int vl, int mode, u64 data)
 {
@@ -4106,6 +4114,7 @@
 static struct cntr_entry dev_cntrs[DEV_CNTR_LAST] = {
 [C_RCV_OVF] = RXE32_DEV_CNTR_ELEM(RcvOverflow, RCV_BUF_OVFL_CNT, CNTR_SYNTH),
 [C_RX_LEN_ERR] = RXE32_DEV_CNTR_ELEM(RxLenErr, RCV_LENGTH_ERR_CNT, CNTR_SYNTH),
+[C_RX_SHORT_ERR] = RXE32_DEV_CNTR_ELEM(RxShrErr, RCV_SHORT_ERR_CNT, CNTR_SYNTH),
 [C_RX_ICRC_ERR] = RXE32_DEV_CNTR_ELEM(RxICrcErr, RCV_ICRC_ERR_CNT, CNTR_SYNTH),
 [C_RX_EBP] = RXE32_DEV_CNTR_ELEM(RxEbpCnt, RCV_EBP_CNT, CNTR_SYNTH),
 [C_RX_TID_FULL] = RXE32_DEV_CNTR_ELEM(RxTIDFullEr, RCV_TID_FULL_ERR_CNT,
@@ -4249,6 +4258,8 @@
 			    access_sw_cpu_intr),
 [C_SW_CPU_RCV_LIM] = CNTR_ELEM("RcvLimit", 0, 0, CNTR_NORMAL,
 			    access_sw_cpu_rcv_limit),
+[C_SW_CTX0_SEQ_DROP] = CNTR_ELEM("SeqDrop0", 0, 0, CNTR_NORMAL,
+			    access_sw_ctx0_seq_drop),
 [C_SW_VTX_WAIT] = CNTR_ELEM("vTxWait", 0, 0, CNTR_NORMAL,
 			    access_sw_vtx_wait),
 [C_SW_PIO_WAIT] = CNTR_ELEM("PioWait", 0, 0, CNTR_NORMAL,
@@ -12180,6 +12191,7 @@
 
 	if (dd->synth_stats_timer.function)
 		del_timer_sync(&dd->synth_stats_timer);
+	cancel_work_sync(&dd->update_cntr_work);
 	ppd = (struct hfi1_pportdata *)(dd + 1);
 	for (i = 0; i < dd->num_pports; i++, ppd++) {
 		kfree(ppd->cntrs);
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/chip.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/chip.h
@@ -859,6 +859,7 @@
 enum {
 	C_RCV_OVF = 0,
 	C_RX_LEN_ERR,
+	C_RX_SHORT_ERR,
 	C_RX_ICRC_ERR,
 	C_RX_EBP,
 	C_RX_TID_FULL,
@@ -926,6 +927,7 @@
 	C_DC_PG_STS_TX_MBE_CNT,
 	C_SW_CPU_INTR,
 	C_SW_CPU_RCV_LIM,
+	C_SW_CTX0_SEQ_DROP,
 	C_SW_VTX_WAIT,
 	C_SW_PIO_WAIT,
 	C_SW_PIO_DRAIN,
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/chip_registers.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/chip_registers.h
@@ -381,6 +381,7 @@
 #define DC_LCB_STS_LINK_TRANSFER_ACTIVE (DC_LCB_CSRS + 0x000000000468)
 #define DC_LCB_STS_ROUND_TRIP_LTP_CNT (DC_LCB_CSRS + 0x0000000004B0)
 #define RCV_LENGTH_ERR_CNT 0
+#define RCV_SHORT_ERR_CNT 2
 #define RCV_ICRC_ERR_CNT 6
 #define RCV_EBP_CNT 9
 #define RCV_BUF_OVFL_CNT 10
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/debugfs.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/debugfs.c
@@ -985,15 +985,10 @@
 static int __i2c_debugfs_open(struct inode *in, struct file *fp, u32 target)
 {
 	struct hfi1_pportdata *ppd;
-	int ret;
 
 	ppd = private2ppd(fp);
 
-	ret = acquire_chip_resource(ppd->dd, i2c_target(target), 0);
-	if (ret) /* failed - release the module */
-		module_put(THIS_MODULE);
-
-	return ret;
+	return acquire_chip_resource(ppd->dd, i2c_target(target), 0);
 }
 
 static int i2c1_debugfs_open(struct inode *in, struct file *fp)
@@ -1013,7 +1008,6 @@
 	ppd = private2ppd(fp);
 
 	release_chip_resource(ppd->dd, i2c_target(target));
-	module_put(THIS_MODULE);
 
 	return 0;
 }
@@ -1031,18 +1025,10 @@
 static int __qsfp_debugfs_open(struct inode *in, struct file *fp, u32 target)
 {
 	struct hfi1_pportdata *ppd;
-	int ret;
-
-	if (!try_module_get(THIS_MODULE))
-		return -ENODEV;
 
 	ppd = private2ppd(fp);
 
-	ret = acquire_chip_resource(ppd->dd, i2c_target(target), 0);
-	if (ret) /* failed - release the module */
-		module_put(THIS_MODULE);
-
-	return ret;
+	return acquire_chip_resource(ppd->dd, i2c_target(target), 0);
 }
 
 static int qsfp1_debugfs_open(struct inode *in, struct file *fp)
@@ -1062,7 +1048,6 @@
 	ppd = private2ppd(fp);
 
 	release_chip_resource(ppd->dd, i2c_target(target));
-	module_put(THIS_MODULE);
 
 	return 0;
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/driver.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/driver.c
@@ -734,6 +734,7 @@
 {
 	int ret;
 
+	packet->rcd->dd->ctx0_seq_drop++;
 	/* Set up for the next packet */
 	packet->rhqoff += packet->rsize;
 	if (packet->rhqoff >= packet->maxcnt)
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/file_ops.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/file_ops.c
@@ -200,23 +200,24 @@
 
 	fd = kzalloc(sizeof(*fd), GFP_KERNEL);
 
-	if (fd) {
-		fd->rec_cpu_num = -1; /* no cpu affinity by default */
-		fd->mm = current->mm;
-		mmgrab(fd->mm);
-		fd->dd = dd;
-		kobject_get(&fd->dd->kobj);
-		fp->private_data = fd;
-	} else {
-		fp->private_data = NULL;
-
-		if (atomic_dec_and_test(&dd->user_refcount))
-			complete(&dd->user_comp);
-
-		return -ENOMEM;
-	}
-
+	if (!fd || init_srcu_struct(&fd->pq_srcu))
+		goto nomem;
+	spin_lock_init(&fd->pq_rcu_lock);
+	spin_lock_init(&fd->tid_lock);
+	spin_lock_init(&fd->invalid_lock);
+	fd->rec_cpu_num = -1; /* no cpu affinity by default */
+	fd->mm = current->mm;
+	mmgrab(fd->mm);
+	fd->dd = dd;
+	kobject_get(&fd->dd->kobj);
+	fp->private_data = fd;
 	return 0;
+nomem:
+	kfree(fd);
+	fp->private_data = NULL;
+	if (atomic_dec_and_test(&dd->user_refcount))
+		complete(&dd->user_comp);
+	return -ENOMEM;
 }
 
 static long hfi1_file_ioctl(struct file *fp, unsigned int cmd,
@@ -301,21 +302,32 @@
 static ssize_t hfi1_write_iter(struct kiocb *kiocb, struct iov_iter *from)
 {
 	struct hfi1_filedata *fd = kiocb->ki_filp->private_data;
-	struct hfi1_user_sdma_pkt_q *pq = fd->pq;
+	struct hfi1_user_sdma_pkt_q *pq;
 	struct hfi1_user_sdma_comp_q *cq = fd->cq;
 	int done = 0, reqs = 0;
 	unsigned long dim = from->nr_segs;
+	int idx;
 
-	if (!cq || !pq)
+	if (!HFI1_CAP_IS_KSET(SDMA))
+		return -EINVAL;
+	idx = srcu_read_lock(&fd->pq_srcu);
+	pq = srcu_dereference(fd->pq, &fd->pq_srcu);
+	if (!cq || !pq) {
+		srcu_read_unlock(&fd->pq_srcu, idx);
 		return -EIO;
+	}
 
-	if (!iter_is_iovec(from) || !dim)
+	if (!iter_is_iovec(from) || !dim) {
+		srcu_read_unlock(&fd->pq_srcu, idx);
 		return -EINVAL;
+	}
 
 	trace_hfi1_sdma_request(fd->dd, fd->uctxt->ctxt, fd->subctxt, dim);
 
-	if (atomic_read(&pq->n_reqs) == pq->n_max_reqs)
+	if (atomic_read(&pq->n_reqs) == pq->n_max_reqs) {
+		srcu_read_unlock(&fd->pq_srcu, idx);
 		return -ENOSPC;
+	}
 
 	while (dim) {
 		int ret;
@@ -333,6 +345,7 @@
 		reqs++;
 	}
 
+	srcu_read_unlock(&fd->pq_srcu, idx);
 	return reqs;
 }
 
@@ -707,6 +720,7 @@
 	if (atomic_dec_and_test(&dd->user_refcount))
 		complete(&dd->user_comp);
 
+	cleanup_srcu_struct(&fdata->pq_srcu);
 	kfree(fdata);
 	return 0;
 }
@@ -1210,8 +1224,10 @@
 		goto done;
 
 	ret = init_user_ctxt(fd, uctxt);
-	if (ret)
+	if (ret) {
+		hfi1_free_ctxt_rcv_groups(uctxt);
 		goto done;
+	}
 
 	user_init(uctxt);
 
@@ -1347,12 +1363,15 @@
 		addr = arg + offsetof(struct hfi1_tid_info, tidcnt);
 		if (copy_to_user((void __user *)addr, &tinfo.tidcnt,
 				 sizeof(tinfo.tidcnt)))
-			return -EFAULT;
+			ret = -EFAULT;
 
 		addr = arg + offsetof(struct hfi1_tid_info, length);
-		if (copy_to_user((void __user *)addr, &tinfo.length,
+		if (!ret && copy_to_user((void __user *)addr, &tinfo.length,
 				 sizeof(tinfo.length)))
 			ret = -EFAULT;
+
+		if (ret)
+			hfi1_user_exp_rcv_invalid(fd, &tinfo);
 	}
 
 	return ret;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/firmware.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/firmware.c
@@ -1786,6 +1786,7 @@
 
 	if (!dd->platform_config.data) {
 		dd_dev_err(dd, "%s: Missing config file\n", __func__);
+		ret = -EINVAL;
 		goto bail;
 	}
 	ptr = (u32 *)dd->platform_config.data;
@@ -1794,6 +1795,7 @@
 	ptr++;
 	if (magic_num != PLATFORM_CONFIG_MAGIC_NUM) {
 		dd_dev_err(dd, "%s: Bad config file\n", __func__);
+		ret = -EINVAL;
 		goto bail;
 	}
 
@@ -1817,6 +1819,7 @@
 	if (file_length > dd->platform_config.size) {
 		dd_dev_info(dd, "%s:File claims to be larger than read size\n",
 			    __func__);
+		ret = -EINVAL;
 		goto bail;
 	} else if (file_length < dd->platform_config.size) {
 		dd_dev_info(dd,
@@ -1837,6 +1840,7 @@
 			dd_dev_err(dd, "%s: Failed validation at offset %ld\n",
 				   __func__, (ptr - (u32 *)
 					      dd->platform_config.data));
+			ret = -EINVAL;
 			goto bail;
 		}
 
@@ -1883,6 +1887,7 @@
 					   __func__, table_type,
 					   (ptr - (u32 *)
 					    dd->platform_config.data));
+				ret = -EINVAL;
 				goto bail; /* We don't trust this file now */
 			}
 			pcfgcache->config_tables[table_type].table = ptr;
@@ -1907,6 +1912,7 @@
 					   __func__, table_type,
 					   (ptr -
 					    (u32 *)dd->platform_config.data));
+				ret = -EINVAL;
 				goto bail; /* We don't trust this file now */
 			}
 			pcfgcache->config_tables[table_type].table_metadata =
@@ -1924,6 +1930,7 @@
 			dd_dev_err(dd, "%s: Failed CRC check at offset %ld\n",
 				   __func__, (ptr -
 				   (u32 *)dd->platform_config.data));
+			ret = -EINVAL;
 			goto bail;
 		}
 		/* Jump the CRC DWORD */
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/hfi.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/hfi.h
@@ -1153,6 +1153,8 @@
 
 	char *boardname; /* human readable board info */
 
+	u64 ctx0_seq_drop;
+
 	/* reset value */
 	u64 z_int_counter;
 	u64 z_rcv_limit;
@@ -1436,10 +1438,13 @@
 
 /* Private data for file operations */
 struct hfi1_filedata {
+	struct srcu_struct pq_srcu;
 	struct hfi1_devdata *dd;
 	struct hfi1_ctxtdata *uctxt;
 	struct hfi1_user_sdma_comp_q *cq;
-	struct hfi1_user_sdma_pkt_q *pq;
+	/* update side lock for SRCU */
+	spinlock_t pq_rcu_lock;
+	struct hfi1_user_sdma_pkt_q __rcu *pq;
 	u16 subctxt;
 	/* for cpu affinity; -1 if none */
 	int rec_cpu_num;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/init.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/init.c
@@ -543,7 +543,7 @@
 	u16 shift, mult;
 	u64 src;
 	u32 current_egress_rate; /* Mbits /sec */
-	u32 max_pkt_time;
+	u64 max_pkt_time;
 	/*
 	 * max_pkt_time is the maximum packet egress time in units
 	 * of the fabric clock period 1/(805 MHz).
@@ -664,12 +664,7 @@
 
 	ppd->pkeys[default_pkey_idx] = DEFAULT_P_KEY;
 	ppd->part_enforce |= HFI1_PART_ENFORCE_IN;
-
-	if (loopback) {
-		dd_dev_err(dd, "Faking data partition 0x8001 in idx %u\n",
-			   !default_pkey_idx);
-		ppd->pkeys[!default_pkey_idx] = 0x8001;
-	}
+	ppd->pkeys[0] = 0x8001;
 
 	INIT_WORK(&ppd->link_vc_work, handle_verify_cap);
 	INIT_WORK(&ppd->link_up_work, handle_link_up);
@@ -845,6 +840,29 @@
 }
 
 /**
+ * destroy_workqueues - destroy per port workqueues
+ * @dd: the hfi1_ib device
+ */
+static void destroy_workqueues(struct hfi1_devdata *dd)
+{
+	int pidx;
+	struct hfi1_pportdata *ppd;
+
+	for (pidx = 0; pidx < dd->num_pports; ++pidx) {
+		ppd = dd->pport + pidx;
+
+		if (ppd->hfi1_wq) {
+			destroy_workqueue(ppd->hfi1_wq);
+			ppd->hfi1_wq = NULL;
+		}
+		if (ppd->link_wq) {
+			destroy_workqueue(ppd->link_wq);
+			ppd->link_wq = NULL;
+		}
+	}
+}
+
+/**
  * enable_general_intr() - Enable the IRQs that will be handled by the
  * general interrupt handler.
  * @dd: valid devdata
@@ -1117,15 +1135,10 @@
 		 * We can't count on interrupts since we are stopping.
 		 */
 		hfi1_quiet_serdes(ppd);
-
-		if (ppd->hfi1_wq) {
-			destroy_workqueue(ppd->hfi1_wq);
-			ppd->hfi1_wq = NULL;
-		}
-		if (ppd->link_wq) {
-			destroy_workqueue(ppd->link_wq);
-			ppd->link_wq = NULL;
-		}
+		if (ppd->hfi1_wq)
+			flush_workqueue(ppd->hfi1_wq);
+		if (ppd->link_wq)
+			flush_workqueue(ppd->link_wq);
 	}
 	sdma_exit(dd);
 }
@@ -1162,7 +1175,7 @@
 	rcd->egrbufs.rcvtids = NULL;
 
 	for (e = 0; e < rcd->egrbufs.alloced; e++) {
-		if (rcd->egrbufs.buffers[e].dma)
+		if (rcd->egrbufs.buffers[e].addr)
 			dma_free_coherent(&dd->pcidev->dev,
 					  rcd->egrbufs.buffers[e].len,
 					  rcd->egrbufs.buffers[e].addr,
@@ -1814,6 +1827,7 @@
 	 * clear dma engines, etc.
 	 */
 	shutdown_device(dd);
+	destroy_workqueues(dd);
 
 	stop_timers(dd);
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/iowait.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/iowait.c
@@ -81,7 +81,9 @@
 void iowait_cancel_work(struct iowait *w)
 {
 	cancel_work_sync(&iowait_get_ib_work(w)->iowork);
-	cancel_work_sync(&iowait_get_tid_work(w)->iowork);
+	/* Make sure that the iowork for TID RDMA is used */
+	if (iowait_get_tid_work(w)->iowork.func)
+		cancel_work_sync(&iowait_get_tid_work(w)->iowork);
 }
 
 /**
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/mmu_rb.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/mmu_rb.c
@@ -173,7 +173,7 @@
 		goto unlock;
 	}
 	__mmu_int_rb_insert(mnode, &handler->root);
-	list_add(&mnode->list, &handler->lru_list);
+	list_add_tail(&mnode->list, &handler->lru_list);
 
 	ret = handler->ops->insert(handler->ops_arg, mnode);
 	if (ret) {
@@ -220,8 +220,10 @@
 	spin_lock_irqsave(&handler->lock, flags);
 	node = __mmu_rb_search(handler, addr, len);
 	if (node) {
-		if (node->addr == addr && node->len == len)
+		if (node->addr == addr && node->len == len) {
+			list_move_tail(&node->list, &handler->lru_list);
 			goto unlock;
+		}
 		__mmu_int_rb_remove(node, &handler->root);
 		list_del(&node->list); /* remove from LRU list */
 		ret = true;
@@ -242,8 +244,7 @@
 	INIT_LIST_HEAD(&del_list);
 
 	spin_lock_irqsave(&handler->lock, flags);
-	list_for_each_entry_safe_reverse(rbnode, ptr, &handler->lru_list,
-					 list) {
+	list_for_each_entry_safe(rbnode, ptr, &handler->lru_list, list) {
 		if (handler->ops->evict(handler->ops_arg, rbnode, evict_arg,
 					&stop)) {
 			__mmu_int_rb_remove(rbnode, &handler->root);
@@ -255,9 +256,7 @@
 	}
 	spin_unlock_irqrestore(&handler->lock, flags);
 
-	while (!list_empty(&del_list)) {
-		rbnode = list_first_entry(&del_list, struct mmu_rb_node, list);
-		list_del(&rbnode->list);
+	list_for_each_entry_safe(rbnode, ptr, &del_list, list) {
 		handler->ops->remove(handler->ops_arg, rbnode);
 	}
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/pio.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/pio.c
@@ -920,6 +920,7 @@
 {
 	u64 reg;
 	struct pio_buf *pbuf;
+	LIST_HEAD(wake_list);
 
 	if (!sc)
 		return;
@@ -954,19 +955,20 @@
 	spin_unlock(&sc->release_lock);
 
 	write_seqlock(&sc->waitlock);
-	while (!list_empty(&sc->piowait)) {
+	list_splice_init(&sc->piowait, &wake_list);
+	write_sequnlock(&sc->waitlock);
+	while (!list_empty(&wake_list)) {
 		struct iowait *wait;
 		struct rvt_qp *qp;
 		struct hfi1_qp_priv *priv;
 
-		wait = list_first_entry(&sc->piowait, struct iowait, list);
+		wait = list_first_entry(&wake_list, struct iowait, list);
 		qp = iowait_to_qp(wait);
 		priv = qp->priv;
 		list_del_init(&priv->s_iowait.list);
 		priv->s_iowait.lock = NULL;
 		hfi1_qp_wakeup(qp, RVT_S_WAIT_PIO | HFI1_S_WAIT_PIO_DRAIN);
 	}
-	write_sequnlock(&sc->waitlock);
 
 	spin_unlock_irq(&sc->alloc_lock);
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/qp.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/qp.c
@@ -381,7 +381,10 @@
 	struct hfi1_ibport *ibp =
 		to_iport(qp->ibqp.device, qp->port_num);
 	struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
-	struct hfi1_devdata *dd = dd_from_ibdev(qp->ibqp.device);
+	struct hfi1_devdata *dd = ppd->dd;
+
+	if (dd->flags & HFI1_SHUTDOWN)
+		return true;
 
 	return iowait_schedule(&priv->s_iowait, ppd->hfi1_wq,
 			       priv->s_sde ?
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/sdma.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/sdma.c
@@ -1329,11 +1329,13 @@
 		kvfree(sde->tx_ring);
 		sde->tx_ring = NULL;
 	}
-	spin_lock_irq(&dd->sde_map_lock);
-	sdma_map_free(rcu_access_pointer(dd->sdma_map));
-	RCU_INIT_POINTER(dd->sdma_map, NULL);
-	spin_unlock_irq(&dd->sde_map_lock);
-	synchronize_rcu();
+	if (rcu_access_pointer(dd->sdma_map)) {
+		spin_lock_irq(&dd->sde_map_lock);
+		sdma_map_free(rcu_access_pointer(dd->sdma_map));
+		RCU_INIT_POINTER(dd->sdma_map, NULL);
+		spin_unlock_irq(&dd->sde_map_lock);
+		synchronize_rcu();
+	}
 	kfree(dd->per_sdma);
 	dd->per_sdma = NULL;
 
@@ -3056,6 +3058,7 @@
 static int _extend_sdma_tx_descs(struct hfi1_devdata *dd, struct sdma_txreq *tx)
 {
 	int i;
+	struct sdma_desc *descp;
 
 	/* Handle last descriptor */
 	if (unlikely((tx->num_desc == (MAX_DESC - 1)))) {
@@ -3076,12 +3079,10 @@
 	if (unlikely(tx->num_desc == MAX_DESC))
 		goto enomem;
 
-	tx->descp = kmalloc_array(
-			MAX_DESC,
-			sizeof(struct sdma_desc),
-			GFP_ATOMIC);
-	if (!tx->descp)
+	descp = kmalloc_array(MAX_DESC, sizeof(struct sdma_desc), GFP_ATOMIC);
+	if (!descp)
 		goto enomem;
+	tx->descp = descp;
 
 	/* reserve last descriptor for coalescing */
 	tx->desc_limit = MAX_DESC - 1;
@@ -3202,8 +3203,7 @@
 {
 	int rval = 0;
 
-	tx->num_desc++;
-	if ((unlikely(tx->num_desc == tx->desc_limit))) {
+	if ((unlikely(tx->num_desc + 1 == tx->desc_limit))) {
 		rval = _extend_sdma_tx_descs(dd, tx);
 		if (rval) {
 			__sdma_txclean(dd, tx);
@@ -3216,6 +3216,7 @@
 		SDMA_MAP_NONE,
 		dd->sdma_pad_phys,
 		sizeof(u32) - (tx->packet_len & (sizeof(u32) - 1)));
+	tx->num_desc++;
 	_sdma_close_tx(dd, tx);
 	return rval;
 }
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/sdma.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/sdma.h
@@ -672,14 +672,13 @@
 static inline void _sdma_close_tx(struct hfi1_devdata *dd,
 				  struct sdma_txreq *tx)
 {
-	tx->descp[tx->num_desc].qw[0] |=
-		SDMA_DESC0_LAST_DESC_FLAG;
-	tx->descp[tx->num_desc].qw[1] |=
-		dd->default_desc1;
+	u16 last_desc = tx->num_desc - 1;
+
+	tx->descp[last_desc].qw[0] |= SDMA_DESC0_LAST_DESC_FLAG;
+	tx->descp[last_desc].qw[1] |= dd->default_desc1;
 	if (tx->flags & SDMA_TXREQ_F_URGENT)
-		tx->descp[tx->num_desc].qw[1] |=
-			(SDMA_DESC1_HEAD_TO_HOST_FLAG |
-			 SDMA_DESC1_INT_REQ_FLAG);
+		tx->descp[last_desc].qw[1] |= (SDMA_DESC1_HEAD_TO_HOST_FLAG |
+					       SDMA_DESC1_INT_REQ_FLAG);
 }
 
 static inline int _sdma_txadd_daddr(
@@ -696,6 +695,7 @@
 		type,
 		addr, len);
 	WARN_ON(len > tx->tlen);
+	tx->num_desc++;
 	tx->tlen -= len;
 	/* special cases for last */
 	if (!tx->tlen) {
@@ -707,7 +707,6 @@
 			_sdma_close_tx(dd, tx);
 		}
 	}
-	tx->num_desc++;
 	return rval;
 }
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/sysfs.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/sysfs.c
@@ -674,7 +674,11 @@
 		dd_dev_err(dd,
 			   "Skipping sc2vl sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail;
+		/*
+		 * Based on the documentation for kobject_init_and_add(), the
+		 * caller should call kobject_put even if this call fails.
+		 */
+		goto bail_sc2vl;
 	}
 	kobject_uevent(&ppd->sc2vl_kobj, KOBJ_ADD);
 
@@ -684,7 +688,7 @@
 		dd_dev_err(dd,
 			   "Skipping sl2sc sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail_sc2vl;
+		goto bail_sl2sc;
 	}
 	kobject_uevent(&ppd->sl2sc_kobj, KOBJ_ADD);
 
@@ -694,7 +698,7 @@
 		dd_dev_err(dd,
 			   "Skipping vl2mtu sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail_sl2sc;
+		goto bail_vl2mtu;
 	}
 	kobject_uevent(&ppd->vl2mtu_kobj, KOBJ_ADD);
 
@@ -704,7 +708,7 @@
 		dd_dev_err(dd,
 			   "Skipping Congestion Control sysfs info, (err %d) port %u\n",
 			   ret, port_num);
-		goto bail_vl2mtu;
+		goto bail_cc;
 	}
 
 	kobject_uevent(&ppd->pport_cc_kobj, KOBJ_ADD);
@@ -742,7 +746,6 @@
 	kobject_put(&ppd->sl2sc_kobj);
 bail_sc2vl:
 	kobject_put(&ppd->sc2vl_kobj);
-bail:
 	return ret;
 }
 
@@ -853,8 +856,13 @@
 
 	return 0;
 bail:
-	for (i = 0; i < dd->num_sdma; i++)
-		kobject_del(&dd->per_sdma[i].kobj);
+	/*
+	 * The function kobject_put() will call kobject_del() if the kobject
+	 * has been added successfully. The sysfs files created under the
+	 * kobject directory will also be removed during the process.
+	 */
+	for (; i >= 0; i--)
+		kobject_put(&dd->per_sdma[i].kobj);
 
 	return ret;
 }
@@ -867,6 +875,10 @@
 	struct hfi1_pportdata *ppd;
 	int i;
 
+	/* Unwind operations in hfi1_verbs_register_sysfs() */
+	for (i = 0; i < dd->num_sdma; i++)
+		kobject_put(&dd->per_sdma[i].kobj);
+
 	for (i = 0; i < dd->num_pports; i++) {
 		ppd = &dd->pport[i];
 
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/tid_rdma.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/tid_rdma.c
@@ -3215,6 +3215,7 @@
 	case IB_WR_ATOMIC_CMP_AND_SWP:
 	case IB_WR_ATOMIC_FETCH_AND_ADD:
 	case IB_WR_RDMA_WRITE:
+	case IB_WR_RDMA_WRITE_WITH_IMM:
 		switch (prev->wr.opcode) {
 		case IB_WR_TID_RDMA_WRITE:
 			req = wqe_to_tid_req(prev);
@@ -4633,6 +4634,15 @@
 			 */
 			fpsn = full_flow_psn(flow, flow->flow_state.spsn);
 			req->r_ack_psn = psn;
+			/*
+			 * If resync_psn points to the last flow PSN for a
+			 * segment and the new segment (likely from a new
+			 * request) starts with a new generation number, we
+			 * need to adjust resync_psn accordingly.
+			 */
+			if (flow->flow_state.generation !=
+			    (resync_psn >> HFI1_KDETH_BTH_SEQ_SHIFT))
+				resync_psn = mask_psn(fpsn - 1);
 			flow->resync_npkts +=
 				delta_psn(mask_psn(resync_psn + 1), fpsn);
 			/*
@@ -5397,7 +5407,10 @@
 	struct hfi1_ibport *ibp =
 		to_iport(qp->ibqp.device, qp->port_num);
 	struct hfi1_pportdata *ppd = ppd_from_ibp(ibp);
-	struct hfi1_devdata *dd = dd_from_ibdev(qp->ibqp.device);
+	struct hfi1_devdata *dd = ppd->dd;
+
+	if ((dd->flags & HFI1_SHUTDOWN))
+		return true;
 
 	return iowait_tid_schedule(&priv->s_iowait, ppd->hfi1_wq,
 				   priv->s_sde ?
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/user_exp_rcv.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/user_exp_rcv.c
@@ -90,9 +90,6 @@
 	struct hfi1_devdata *dd = uctxt->dd;
 	int ret = 0;
 
-	spin_lock_init(&fd->tid_lock);
-	spin_lock_init(&fd->invalid_lock);
-
 	fd->entry_to_rb = kcalloc(uctxt->expected_count,
 				  sizeof(struct rb_node *),
 				  GFP_KERNEL);
@@ -165,10 +162,12 @@
 	if (fd->handler) {
 		hfi1_mmu_rb_unregister(fd->handler);
 	} else {
+		mutex_lock(&uctxt->exp_mutex);
 		if (!EXP_TID_SET_EMPTY(uctxt->tid_full_list))
 			unlock_exp_tids(uctxt, &uctxt->tid_full_list, fd);
 		if (!EXP_TID_SET_EMPTY(uctxt->tid_used_list))
 			unlock_exp_tids(uctxt, &uctxt->tid_used_list, fd);
+		mutex_unlock(&uctxt->exp_mutex);
 	}
 
 	kfree(fd->invalid_tids);
@@ -216,16 +215,11 @@
 static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf)
 {
 	int pinned;
-	unsigned int npages;
+	unsigned int npages = tidbuf->npages;
 	unsigned long vaddr = tidbuf->vaddr;
 	struct page **pages = NULL;
 	struct hfi1_devdata *dd = fd->uctxt->dd;
 
-	/* Get the number of pages the user buffer spans */
-	npages = num_user_pages(vaddr, tidbuf->length);
-	if (!npages)
-		return -EINVAL;
-
 	if (npages > fd->uctxt->expected_count) {
 		dd_dev_err(dd, "Expected buffer too big\n");
 		return -EINVAL;
@@ -259,7 +253,6 @@
 		return pinned;
 	}
 	tidbuf->pages = pages;
-	tidbuf->npages = npages;
 	fd->tid_n_pinned += pinned;
 	return pinned;
 }
@@ -326,6 +319,8 @@
 
 	if (!PAGE_ALIGNED(tinfo->vaddr))
 		return -EINVAL;
+	if (tinfo->length == 0)
+		return -EINVAL;
 
 	tidbuf = kzalloc(sizeof(*tidbuf), GFP_KERNEL);
 	if (!tidbuf)
@@ -333,43 +328,42 @@
 
 	tidbuf->vaddr = tinfo->vaddr;
 	tidbuf->length = tinfo->length;
+	tidbuf->npages = num_user_pages(tidbuf->vaddr, tidbuf->length);
 	tidbuf->psets = kcalloc(uctxt->expected_count, sizeof(*tidbuf->psets),
 				GFP_KERNEL);
 	if (!tidbuf->psets) {
-		kfree(tidbuf);
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto fail_release_mem;
 	}
 
 	pinned = pin_rcv_pages(fd, tidbuf);
 	if (pinned <= 0) {
-		kfree(tidbuf->psets);
-		kfree(tidbuf);
-		return pinned;
+		ret = (pinned < 0) ? pinned : -ENOSPC;
+		goto fail_unpin;
 	}
 
 	/* Find sets of physically contiguous pages */
 	tidbuf->n_psets = find_phys_blocks(tidbuf, pinned);
 
-	/*
-	 * We don't need to access this under a lock since tid_used is per
-	 * process and the same process cannot be in hfi1_user_exp_rcv_clear()
-	 * and hfi1_user_exp_rcv_setup() at the same time.
-	 */
+	/* Reserve the number of expected tids to be used. */
 	spin_lock(&fd->tid_lock);
 	if (fd->tid_used + tidbuf->n_psets > fd->tid_limit)
 		pageset_count = fd->tid_limit - fd->tid_used;
 	else
 		pageset_count = tidbuf->n_psets;
+	fd->tid_used += pageset_count;
 	spin_unlock(&fd->tid_lock);
 
-	if (!pageset_count)
-		goto bail;
+	if (!pageset_count) {
+		ret = -ENOSPC;
+		goto fail_unreserve;
+	}
 
 	ngroups = pageset_count / dd->rcv_entries.group_size;
 	tidlist = kcalloc(pageset_count, sizeof(*tidlist), GFP_KERNEL);
 	if (!tidlist) {
 		ret = -ENOMEM;
-		goto nomem;
+		goto fail_unreserve;
 	}
 
 	tididx = 0;
@@ -465,43 +459,60 @@
 	}
 unlock:
 	mutex_unlock(&uctxt->exp_mutex);
-nomem:
 	hfi1_cdbg(TID, "total mapped: tidpairs:%u pages:%u (%d)", tididx,
 		  mapped_pages, ret);
-	if (tididx) {
-		spin_lock(&fd->tid_lock);
-		fd->tid_used += tididx;
-		spin_unlock(&fd->tid_lock);
-		tinfo->tidcnt = tididx;
-		tinfo->length = mapped_pages * PAGE_SIZE;
-
-		if (copy_to_user(u64_to_user_ptr(tinfo->tidlist),
-				 tidlist, sizeof(tidlist[0]) * tididx)) {
-			/*
-			 * On failure to copy to the user level, we need to undo
-			 * everything done so far so we don't leak resources.
-			 */
-			tinfo->tidlist = (unsigned long)&tidlist;
-			hfi1_user_exp_rcv_clear(fd, tinfo);
-			tinfo->tidlist = 0;
-			ret = -EFAULT;
-			goto bail;
-		}
+
+	/* fail if nothing was programmed, set error if none provided */
+	if (tididx == 0) {
+		if (ret >= 0)
+			ret = -ENOSPC;
+		goto fail_unreserve;
 	}
 
-	/*
-	 * If not everything was mapped (due to insufficient RcvArray entries,
-	 * for example), unpin all unmapped pages so we can pin them nex time.
-	 */
-	if (mapped_pages != pinned)
-		unpin_rcv_pages(fd, tidbuf, NULL, mapped_pages,
-				(pinned - mapped_pages), false);
-bail:
+	/* adjust reserved tid_used to actual count */
+	spin_lock(&fd->tid_lock);
+	fd->tid_used -= pageset_count - tididx;
+	spin_unlock(&fd->tid_lock);
+
+	/* unpin all pages not covered by a TID */
+	unpin_rcv_pages(fd, tidbuf, NULL, mapped_pages, pinned - mapped_pages,
+			false);
+
+	tinfo->tidcnt = tididx;
+	tinfo->length = mapped_pages * PAGE_SIZE;
+
+	if (copy_to_user(u64_to_user_ptr(tinfo->tidlist),
+			 tidlist, sizeof(tidlist[0]) * tididx)) {
+		ret = -EFAULT;
+		goto fail_unprogram;
+	}
+
+	kfree(tidbuf->pages);
 	kfree(tidbuf->psets);
+	kfree(tidbuf);
 	kfree(tidlist);
+	return 0;
+
+fail_unprogram:
+	/* unprogram, unmap, and unpin all allocated TIDs */
+	tinfo->tidlist = (unsigned long)tidlist;
+	hfi1_user_exp_rcv_clear(fd, tinfo);
+	tinfo->tidlist = 0;
+	pinned = 0;		/* nothing left to unpin */
+	pageset_count = 0;	/* nothing left reserved */
+fail_unreserve:
+	spin_lock(&fd->tid_lock);
+	fd->tid_used -= pageset_count;
+	spin_unlock(&fd->tid_lock);
+fail_unpin:
+	if (pinned > 0)
+		unpin_rcv_pages(fd, tidbuf, NULL, 0, pinned, false);
+fail_release_mem:
 	kfree(tidbuf->pages);
+	kfree(tidbuf->psets);
 	kfree(tidbuf);
-	return ret > 0 ? 0 : ret;
+	kfree(tidlist);
+	return ret;
 }
 
 int hfi1_user_exp_rcv_clear(struct hfi1_filedata *fd,
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/user_sdma.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -141,6 +141,7 @@
 	 */
 	xchg(&pq->state, SDMA_PKT_Q_DEFERRED);
 	if (list_empty(&pq->busy.list)) {
+		pq->busy.lock = &sde->waitlock;
 		iowait_get_priority(&pq->busy);
 		iowait_queue(pkts_sent, &pq->busy, &sde->dmawait);
 	}
@@ -155,6 +156,7 @@
 {
 	struct hfi1_user_sdma_pkt_q *pq =
 		container_of(wait, struct hfi1_user_sdma_pkt_q, busy);
+	pq->busy.lock = NULL;
 	xchg(&pq->state, SDMA_PKT_Q_ACTIVE);
 	wake_up(&wait->wait_dma);
 };
@@ -179,7 +181,6 @@
 	pq = kzalloc(sizeof(*pq), GFP_KERNEL);
 	if (!pq)
 		return -ENOMEM;
-
 	pq->dd = dd;
 	pq->ctxt = uctxt->ctxt;
 	pq->subctxt = fd->subctxt;
@@ -236,7 +237,7 @@
 		goto pq_mmu_fail;
 	}
 
-	fd->pq = pq;
+	rcu_assign_pointer(fd->pq, pq);
 	fd->cq = cq;
 
 	return 0;
@@ -257,6 +258,21 @@
 	return ret;
 }
 
+static void flush_pq_iowait(struct hfi1_user_sdma_pkt_q *pq)
+{
+	unsigned long flags;
+	seqlock_t *lock = pq->busy.lock;
+
+	if (!lock)
+		return;
+	write_seqlock_irqsave(lock, flags);
+	if (!list_empty(&pq->busy.list)) {
+		list_del_init(&pq->busy.list);
+		pq->busy.lock = NULL;
+	}
+	write_sequnlock_irqrestore(lock, flags);
+}
+
 int hfi1_user_sdma_free_queues(struct hfi1_filedata *fd,
 			       struct hfi1_ctxtdata *uctxt)
 {
@@ -264,8 +280,14 @@
 
 	trace_hfi1_sdma_user_free_queues(uctxt->dd, uctxt->ctxt, fd->subctxt);
 
-	pq = fd->pq;
+	spin_lock(&fd->pq_rcu_lock);
+	pq = srcu_dereference_check(fd->pq, &fd->pq_srcu,
+				    lockdep_is_held(&fd->pq_rcu_lock));
 	if (pq) {
+		rcu_assign_pointer(fd->pq, NULL);
+		spin_unlock(&fd->pq_rcu_lock);
+		synchronize_srcu(&fd->pq_srcu);
+		/* at this point there can be no more new requests */
 		if (pq->handler)
 			hfi1_mmu_rb_unregister(pq->handler);
 		iowait_sdma_drain(&pq->busy);
@@ -276,8 +298,10 @@
 		kfree(pq->reqs);
 		kfree(pq->req_in_use);
 		kmem_cache_destroy(pq->txreq_cache);
+		flush_pq_iowait(pq);
 		kfree(pq);
-		fd->pq = NULL;
+	} else {
+		spin_unlock(&fd->pq_rcu_lock);
 	}
 	if (fd->cq) {
 		vfree(fd->cq->comps);
@@ -321,7 +345,8 @@
 {
 	int ret = 0, i;
 	struct hfi1_ctxtdata *uctxt = fd->uctxt;
-	struct hfi1_user_sdma_pkt_q *pq = fd->pq;
+	struct hfi1_user_sdma_pkt_q *pq =
+		srcu_dereference(fd->pq, &fd->pq_srcu);
 	struct hfi1_user_sdma_comp_q *cq = fd->cq;
 	struct hfi1_devdata *dd = pq->dd;
 	unsigned long idx = 0;
@@ -564,10 +589,6 @@
 
 	set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
 	pq->state = SDMA_PKT_Q_ACTIVE;
-	/* Send the first N packets in the request to buy us some time */
-	ret = user_sdma_send_pkts(req, pcount);
-	if (unlikely(ret < 0 && ret != -EBUSY))
-		goto free_req;
 
 	/*
 	 * This is a somewhat blocking send implementation.
@@ -580,11 +601,12 @@
 		if (ret < 0) {
 			if (ret != -EBUSY)
 				goto free_req;
-			wait_event_interruptible_timeout(
+			if (wait_event_interruptible_timeout(
 				pq->busy.wait_dma,
-				(pq->state == SDMA_PKT_Q_ACTIVE),
+				pq->state == SDMA_PKT_Q_ACTIVE,
 				msecs_to_jiffies(
-					SDMA_IOWAIT_TIMEOUT));
+					SDMA_IOWAIT_TIMEOUT)) <= 0)
+				flush_pq_iowait(pq);
 		}
 	}
 	*count += idx;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hfi1/verbs.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hfi1/verbs.c
@@ -515,10 +515,11 @@
 				       opa_get_lid(packet->dlid, 9B));
 		if (!mcast)
 			goto drop;
+		rcu_read_lock();
 		list_for_each_entry_rcu(p, &mcast->qp_list, list) {
 			packet->qp = p->qp;
 			if (hfi1_do_pkey_check(packet))
-				goto drop;
+				goto unlock_drop;
 			spin_lock_irqsave(&packet->qp->r_lock, flags);
 			packet_handler = qp_ok(packet);
 			if (likely(packet_handler))
@@ -527,6 +528,7 @@
 				ibp->rvp.n_pkt_drops++;
 			spin_unlock_irqrestore(&packet->qp->r_lock, flags);
 		}
+		rcu_read_unlock();
 		/*
 		 * Notify rvt_multicast_detach() if it is waiting for us
 		 * to finish.
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hns/Kconfig
+++ linux-ein-5.4.0/drivers/infiniband/hw/hns/Kconfig
@@ -1,23 +1,34 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config INFINIBAND_HNS
-	bool "HNS RoCE Driver"
+	tristate "HNS RoCE Driver"
 	depends on NET_VENDOR_HISILICON
 	depends on ARM64 || (COMPILE_TEST && 64BIT)
+	depends on (HNS_DSAF && HNS_ENET) || HNS3
 	---help---
 	  This is a RoCE/RDMA driver for the Hisilicon RoCE engine. The engine
 	  is used in Hisilicon Hip06 and more further ICT SoC based on
 	  platform device.
 
+	  To compile HIP06 or HIP08 driver as module, choose M here.
+
 config INFINIBAND_HNS_HIP06
-	tristate "Hisilicon Hip06 Family RoCE support"
+	bool "Hisilicon Hip06 Family RoCE support"
 	depends on INFINIBAND_HNS && HNS && HNS_DSAF && HNS_ENET
+	depends on INFINIBAND_HNS=m || (HNS_DSAF=y && HNS_ENET=y)
 	---help---
 	  RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip06 and
 	  Hip07 SoC. These RoCE engines are platform devices.
 
+	  To compile this driver, choose Y here: if INFINIBAND_HNS is m, this
+	  module will be called hns-roce-hw-v1
+
 config INFINIBAND_HNS_HIP08
-	tristate "Hisilicon Hip08 Family RoCE support"
+	bool "Hisilicon Hip08 Family RoCE support"
 	depends on INFINIBAND_HNS && PCI && HNS3
+	depends on INFINIBAND_HNS=m || HNS3=y
 	---help---
 	  RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
 	  The RoCE engine is a PCI device.
+
+	  To compile this driver, choose Y here: if INFINIBAND_HNS is m, this
+	  module will be called hns-roce-hw-v2.
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hns/Makefile
+++ linux-ein-5.4.0/drivers/infiniband/hw/hns/Makefile
@@ -9,8 +9,12 @@
 	hns_roce_ah.o hns_roce_hem.o hns_roce_mr.o hns_roce_qp.o \
 	hns_roce_cq.o hns_roce_alloc.o hns_roce_db.o hns_roce_srq.o hns_roce_restrack.o
 
+ifdef CONFIG_INFINIBAND_HNS_HIP06
 hns-roce-hw-v1-objs := hns_roce_hw_v1.o $(hns-roce-objs)
-obj-$(CONFIG_INFINIBAND_HNS_HIP06) += hns-roce-hw-v1.o
+obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v1.o
+endif
 
+ifdef CONFIG_INFINIBAND_HNS_HIP08
 hns-roce-hw-v2-objs := hns_roce_hw_v2.o hns_roce_hw_v2_dfx.o $(hns-roce-objs)
-obj-$(CONFIG_INFINIBAND_HNS_HIP08) += hns-roce-hw-v2.o
+obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v2.o
+endif
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_ah.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hns/hns_roce_ah.c
@@ -46,32 +46,32 @@
 	const struct ib_gid_attr *gid_attr;
 	struct device *dev = hr_dev->dev;
 	struct hns_roce_ah *ah = to_hr_ah(ibah);
-	u16 vlan_tag = 0xffff;
 	const struct ib_global_route *grh = rdma_ah_read_grh(ah_attr);
+	u16 vlan_id = 0xffff;
 	bool vlan_en = false;
 	int ret;
 
 	gid_attr = ah_attr->grh.sgid_attr;
-	ret = rdma_read_gid_l2_fields(gid_attr, &vlan_tag, NULL);
+	ret = rdma_read_gid_l2_fields(gid_attr, &vlan_id, NULL);
 	if (ret)
 		return ret;
 
 	/* Get mac address */
 	memcpy(ah->av.mac, ah_attr->roce.dmac, ETH_ALEN);
 
-	if (vlan_tag < VLAN_CFI_MASK) {
+	if (vlan_id < VLAN_N_VID) {
 		vlan_en = true;
-		vlan_tag |= (rdma_ah_get_sl(ah_attr) &
+		vlan_id |= (rdma_ah_get_sl(ah_attr) &
 			     HNS_ROCE_VLAN_SL_BIT_MASK) <<
 			     HNS_ROCE_VLAN_SL_SHIFT;
 	}
 
 	ah->av.port = rdma_ah_get_port_num(ah_attr);
 	ah->av.gid_index = grh->sgid_index;
-	ah->av.vlan = vlan_tag;
+	ah->av.vlan_id = vlan_id;
 	ah->av.vlan_en = vlan_en;
-	dev_dbg(dev, "gid_index = 0x%x,vlan = 0x%x\n", ah->av.gid_index,
-		ah->av.vlan);
+	dev_dbg(dev, "gid_index = 0x%x,vlan_id = 0x%x\n", ah->av.gid_index,
+		ah->av.vlan_id);
 
 	if (rdma_ah_get_static_rate(ah_attr))
 		ah->av.stat_rate = IB_RATE_10_GBPS;
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_alloc.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hns/hns_roce_alloc.c
@@ -55,7 +55,7 @@
 			bitmap->last = 0;
 		*obj |= bitmap->top;
 	} else {
-		ret = -1;
+		ret = -EINVAL;
 	}
 
 	spin_unlock(&bitmap->lock);
@@ -100,7 +100,7 @@
 		}
 		*obj |= bitmap->top;
 	} else {
-		ret = -1;
+		ret = -EINVAL;
 	}
 
 	spin_unlock(&bitmap->lock);
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_cmd.h
+++ linux-ein-5.4.0/drivers/infiniband/hw/hns/hns_roce_cmd.h
@@ -115,12 +115,12 @@
 
 enum {
 	/* TPT commands */
-	HNS_ROCE_CMD_SW2HW_MPT		= 0xd,
-	HNS_ROCE_CMD_HW2SW_MPT		= 0xf,
+	HNS_ROCE_CMD_CREATE_MPT		= 0xd,
+	HNS_ROCE_CMD_DESTROY_MPT	= 0xf,
 
 	/* CQ commands */
-	HNS_ROCE_CMD_SW2HW_CQ		= 0x16,
-	HNS_ROCE_CMD_HW2SW_CQ		= 0x17,
+	HNS_ROCE_CMD_CREATE_CQC		= 0x16,
+	HNS_ROCE_CMD_DESTROY_CQC	= 0x17,
 
 	/* QP/EE commands */
 	HNS_ROCE_CMD_RST2INIT_QP	= 0x19,
@@ -129,14 +129,14 @@
 	HNS_ROCE_CMD_RTS2RTS_QP		= 0x1c,
 	HNS_ROCE_CMD_2ERR_QP		= 0x1e,
 	HNS_ROCE_CMD_RTS2SQD_QP		= 0x1f,
-	HNS_ROCE_CMD_SQD2SQD_QP		= 0x38,
 	HNS_ROCE_CMD_SQD2RTS_QP		= 0x20,
 	HNS_ROCE_CMD_2RST_QP		= 0x21,
 	HNS_ROCE_CMD_QUERY_QP		= 0x22,
-	HNS_ROCE_CMD_SW2HW_SRQ		= 0x70,
+	HNS_ROCE_CMD_SQD2SQD_QP		= 0x38,
+	HNS_ROCE_CMD_CREATE_SRQ		= 0x70,
 	HNS_ROCE_CMD_MODIFY_SRQC	= 0x72,
 	HNS_ROCE_CMD_QUERY_SRQC		= 0x73,
-	HNS_ROCE_CMD_HW2SW_SRQ		= 0x74,
+	HNS_ROCE_CMD_DESTROY_SRQ	= 0x74,
 };
 
 int hns_roce_cmd_mbox(struct hns_roce_dev *hr_dev, u64 in_param, u64 out_param,
--- linux-ein-5.4.0.orig/drivers/infiniband/hw/hns/hns_roce_cq.c
+++ linux-ein-5.4.0/drivers/infiniband/hw/hns/hns_roce_cq.c
@@ -39,51 +39,8 @@
 #include <rdma/hns-abi.h>
 #include "hns_roce_common.h"
 
-static void hns_roce_ib_cq_comp(struct hns_roce_cq *hr_cq)
-{
-	struct ib_cq *ibcq = &hr_cq->ib_cq;
-
-	ibcq->comp_handler(ibcq, ibcq->cq_context);
-}
-
-static void hns_roce_ib_cq_event(struct hns_roce_cq *hr_cq,
-				 enum hns_roce_event event_type)
-{
-	struct hns_roce_dev *hr_dev;
-	struct ib_event event;
-	struct ib_cq *ibcq;
-
-	ibcq = &hr_cq->ib_cq;
-	hr_dev = to_hr_dev(ibcq->device);
-
-	if (event_type != HNS_ROCE_EVENT_TYPE_CQ_ID_INVALID &&
-	    event_type != HNS_ROCE_EVENT_TYPE_CQ_ACCESS_ERROR &&
-	    event_type != HNS_ROCE_EVENT_TYPE_CQ_OVERFLOW) {
-		dev_err(hr_dev->dev,
-			"hns_roce_ib: Unexpected event type 0x%x on CQ %06lx\n",
-			event_type, hr_cq->cqn);
-		return;
-	}
-
-	if (ibcq->event_handler) {
-		event.device = ibcq->device;
-		event.event = IB_EVENT_CQ_ERR;
-		event.element.cq = ibcq;
-		ibcq->event_handler(&event, ibcq->cq_context);
-	}
-}
-
-static int hns_roce_sw2hw_cq(struct hns_roce_dev *dev,
-			     struct hns_roce_cmd_mailbox *mailbox,
-			     unsigned long cq_num)
-{
-	return hns_roce_cmd_mbox(dev, mailbox->dma, 0, cq_num, 0,
-			    HNS_ROCE_CMD_SW2HW_CQ, HNS_ROCE_CMD_TIMEOUT_MSECS);
-}
-
-static int hns_roce_cq_alloc(struct hns_roce_dev *hr_dev, int nent,
-			     struct hns_roce_mtt *hr_mtt,
-			     struct hns_roce_cq *hr_cq, int vector)
+static int hns_roce_alloc_cqc(struct hns_roce_dev *hr_dev,
+			      struct hns_roce_cq *hr_cq)
 {
 	struct hns_roce_cmd_mailbox *mailbox;
 	struct hns_roce_hem_table *mtt_table;
@@ -101,35 +58,32 @@
 	else
 		mtt_table = &hr_dev->mr_table.mtt_table;
 
-	mtts = hns_roce_table_find(hr_dev, mtt_table,
-				   hr_mtt->first_seg, &dma_handle);
-	if (!mtts) {
-		dev_err(dev, "CQ alloc.Failed to find cq buf addr.\n");
-		return -EINVAL;
-	}
+	mtts = hns_roce_table_find(hr_dev, mtt_table, hr_cq->mtt.first_seg,
+				   &dma_handle);
 
-	if (vector >= hr_dev->caps.num_comp_vectors) {
-		dev_err(dev, "CQ alloc.Invalid vector.\n");
+	if (!mtts) {
+		dev_err(dev, "Failed to find mtt for CQ buf.\n");
 		return -EINVAL;
 	}
-	hr_cq->vector = vector;
 
 	ret = hns_roce_bitmap_alloc(&cq_table->bitmap, &hr_cq->cqn);
-	if (ret == -1) {
-		dev_err(dev, "CQ alloc.Failed to alloc index.\n");
-		return -ENOMEM;
+	if (ret) {
+		dev_err(dev, "Num of CQ out of range.\n");
+		return ret;
 	}
 
 	/* Get CQC memory HEM(Hardware Entry Memory) table */
 	ret = hns_roce_table_get(hr_dev, &cq_table->table, hr_cq->cqn);
 	if (ret) {
-		dev_err(dev, "CQ alloc.Failed to get context mem.\n");
+		dev_err(dev,
+			"Get context mem failed(%d) when CQ(0x%lx) alloc.\n",
+			ret, hr_cq->cqn);
 		goto err_out;
 	}
 
 	ret = xa_err(xa_store(&cq_table->array, hr_cq->cqn, hr_cq, GFP_KERNEL));
 	if (ret) {
-		dev_err(dev, "CQ alloc failed xa_store.\n");
+		dev_err(dev, "Failed to xa_store CQ.\n");
 		goto err_put;
 	}
 
@@ -140,14 +94,16 @@
 		goto err_xa;
 	}
 
-	hr_dev->hw->write_cqc(hr_dev, hr_cq, mailbox->buf, mtts, dma_handle,
-			      nent, vector);
+	hr_dev->hw->write_cqc(hr_dev, hr_cq, mailbox->buf, mtts, dma_handle);
 
 	/* Send mailbox to hw */
-	ret = hns_roce_sw2hw_cq(hr_dev, mailbox, hr_cq->cqn);
+	ret = hns_roce_cmd_mbox(hr_dev, mailbox->dma, 0, hr_cq->cqn, 0,
+			HNS_ROCE_CMD_CREATE_CQC, HNS_ROCE_CMD_TIMEOUT_MSECS);
 	hns_roce_free_cmd_mailbox(hr_dev, mailbox);
 	if (ret) {
-		dev_err(dev, "CQ alloc.Failed to cmd mailbox.\n");
+		dev_err(dev,
+			"Send cmd mailbox failed(%d) when CQ(0x%lx) alloc.\n",
+			ret, hr_cq->cqn);
 		goto err_xa;
 	}
 
@@ -170,24 +126,17 @@
 	return ret;
 }
 
-static int hns_roce_hw2sw_cq(struct hns_roce_dev *dev,
-			     struct hns_roce_cmd_mailbox *mailbox,
-			     unsigned long cq_num)
-{
-	return hns_roce_cmd_mbox(dev, 0, mailbox ? mailbox->dma : 0, cq_num,
-				 mailbox ? 0 : 1, HNS_ROCE_CMD_HW2SW_CQ,
-				 HNS_ROCE_CMD_TIMEOUT_MSECS);
-}
-
-void hns_roce_free_cq(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq)
+void hns_roce_free_cqc(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq)
 {
 	struct hns_roce_cq_table *cq_table = &hr_dev->cq_table;
 	struct device *dev = hr_dev->dev;
 	int ret;
 
-	ret = hns_roce_hw2sw_cq(hr_dev, NULL, hr_cq->cqn);
+	ret = hns_roce_cmd_mbox(hr_dev, 0, 0, hr_cq->cqn, 1,
+				HNS_ROCE_CMD_DESTROY_CQC,
+				HNS_ROCE_CMD_TIMEOUT_MSECS);
 	if (ret)
-		dev_err(dev, "HW2SW_CQ failed (%d) for CQN %06lx\n", ret,
+		dev_err(dev, "DESTROY_CQ failed (%d) for CQN %06lx\n", ret,
 			hr_cq->cqn);
 
 	xa_erase(&cq_table->array, hr_cq->cqn);
@@ -204,103 +153,91 @@
 	hns_roce_bitmap_free(&cq_table->bitmap, hr_cq->cqn, BITMAP_NO_RR);
 }
 
-static int hns_roce_ib_get_cq_umem(struct hns_roce_dev *hr_dev,
-				   struct ib_udata *udata,
-				   struct hns_roce_cq_buf *buf,
-				   struct ib_umem **umem, u64 buf_addr, int cqe)
-{
-	int ret;
-	u32 page_shift;
+static int get_cq_umem(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq,
+		       struct hns_roce_ib_create_cq ucmd,
+		       struct ib_udata *udata)
+{
+	struct hns_roce_buf *buf = &hr_cq->buf;
+	struct hns_roce_mtt *mtt = &hr_cq->mtt;
+	struct ib_umem **umem = &hr_cq->umem;
 	u32 npages;
+	int ret;
 
-	*umem = ib_umem_get(udata, buf_addr, cqe * hr_dev->caps.cq_entry_sz,
-			    IB_ACCESS_LOCAL_WRITE, 1);
+	*umem = ib_umem_get(&hr_dev->ib_dev, ucmd.buf_addr, buf->size,
+			    IB_ACCESS_LOCAL_WRITE);
 	if (IS_ERR(*umem))
 		return PTR_ERR(*umem);
 
 	if (hns_roce_check_whether_mhop(hr_dev, HEM_TYPE_CQE))
-		buf->hr_mtt.mtt_type = MTT_TYPE_CQE;
+		mtt->mtt_type = MTT_TYPE_CQE;
 	else
-		buf->hr_mtt.mtt_type = MTT_TYPE_WQE;
+		mtt->mtt_type = MTT_TYPE_WQE;
 
-	if (hr_dev->caps.cqe_buf_pg_sz) {
-		npages = (ib_umem_page_count(*umem) +
-			(1 << hr_dev->caps.cqe_buf_pg_sz) - 1) /
-			(1 << hr_dev->caps.cqe_buf_pg_sz);
-		page_shift = PAGE_SHIFT + hr_dev->caps.cqe_buf_pg_sz;
-		ret = hns_roce_mtt_init(hr_dev, npages, page_shift,
-					&buf->hr_mtt);
-	} else {
-		ret = hns_roce_mtt_init(hr_dev, ib_umem_page_count(*umem),
-	
[file cut: first 33554432 bytes kept]
[document cut: first 31244854 of 33554281 characters kept]
